summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex
diff options
context:
space:
mode:
authorTaco Hoekwater <taco@elvenkind.com>2009-08-23 11:11:32 +0000
committerTaco Hoekwater <taco@elvenkind.com>2009-08-23 11:11:32 +0000
commit8fc3039c82d48605b5ca8b2eda3f4fdd755681e1 (patch)
tree3cd9bbdd599bc4d1ac0409e167fee2136e4c0ec9 /Master/texmf-dist/tex
parent850fc99b7cd3ae7a20065531fe866ff7bae642ec (diff)
this is context 2009.08.19 17:10
git-svn-id: svn://tug.org/texlive/trunk@14827 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex')
-rw-r--r--Master/texmf-dist/tex/context/base/anch-bar.mkii194
-rw-r--r--Master/texmf-dist/tex/context/base/anch-bar.mkiv194
-rw-r--r--Master/texmf-dist/tex/context/base/anch-pgr.mkii (renamed from Master/texmf-dist/tex/context/base/core-pgr.tex)102
-rw-r--r--Master/texmf-dist/tex/context/base/anch-pgr.mkiv1723
-rw-r--r--Master/texmf-dist/tex/context/base/anch-pos.lua139
-rw-r--r--Master/texmf-dist/tex/context/base/anch-pos.mkii (renamed from Master/texmf-dist/tex/context/base/core-pos.tex)283
-rw-r--r--Master/texmf-dist/tex/context/base/anch-pos.mkiv784
-rw-r--r--Master/texmf-dist/tex/context/base/anch-snc.mkii (renamed from Master/texmf-dist/tex/context/base/core-snc.tex)10
-rw-r--r--Master/texmf-dist/tex/context/base/anch-snc.mkiv185
-rw-r--r--Master/texmf-dist/tex/context/base/attr-ini.lua1078
-rw-r--r--Master/texmf-dist/tex/context/base/attr-ini.mkiv154
-rw-r--r--Master/texmf-dist/tex/context/base/attr-ini.tex249
-rw-r--r--Master/texmf-dist/tex/context/base/back-ini.lua143
-rw-r--r--Master/texmf-dist/tex/context/base/back-ini.mkiv168
-rw-r--r--Master/texmf-dist/tex/context/base/back-pdf.lua465
-rw-r--r--Master/texmf-dist/tex/context/base/back-pdf.mkiv169
-rw-r--r--Master/texmf-dist/tex/context/base/bibl-bib.lua233
-rw-r--r--Master/texmf-dist/tex/context/base/bibl-bib.mkiv29
-rw-r--r--Master/texmf-dist/tex/context/base/bibl-tst.lua21
-rw-r--r--Master/texmf-dist/tex/context/base/buff-ini.lua592
-rw-r--r--Master/texmf-dist/tex/context/base/buff-ini.mkii348
-rw-r--r--Master/texmf-dist/tex/context/base/buff-ini.mkiv (renamed from Master/texmf-dist/tex/context/base/core-buf.tex)173
-rw-r--r--Master/texmf-dist/tex/context/base/buff-ver.mkii (renamed from Master/texmf-dist/tex/context/base/core-ver.tex)529
-rw-r--r--Master/texmf-dist/tex/context/base/buff-ver.mkiv1127
-rw-r--r--Master/texmf-dist/tex/context/base/catc-act.tex61
-rw-r--r--Master/texmf-dist/tex/context/base/catc-ctx.tex250
-rw-r--r--Master/texmf-dist/tex/context/base/catc-def.tex142
-rw-r--r--Master/texmf-dist/tex/context/base/catc-ini.lua28
-rw-r--r--Master/texmf-dist/tex/context/base/catc-ini.mkii249
-rw-r--r--Master/texmf-dist/tex/context/base/catc-ini.mkiv274
-rw-r--r--Master/texmf-dist/tex/context/base/catc-sym.tex187
-rw-r--r--Master/texmf-dist/tex/context/base/char-act.mkiv125
-rw-r--r--Master/texmf-dist/tex/context/base/char-cmp.lua2
-rw-r--r--Master/texmf-dist/tex/context/base/char-def.lua194788
-rw-r--r--Master/texmf-dist/tex/context/base/char-def.tex50
-rw-r--r--Master/texmf-dist/tex/context/base/char-enc.lua (renamed from Master/texmf-dist/tex/context/base/char-syn.lua)23
-rw-r--r--Master/texmf-dist/tex/context/base/char-enc.mkiv18
-rw-r--r--Master/texmf-dist/tex/context/base/char-ini.lua574
-rw-r--r--Master/texmf-dist/tex/context/base/char-ini.mkiv74
-rw-r--r--Master/texmf-dist/tex/context/base/char-ini.tex29
-rw-r--r--Master/texmf-dist/tex/context/base/char-map.lua19
-rw-r--r--Master/texmf-dist/tex/context/base/char-utf.lua468
-rw-r--r--Master/texmf-dist/tex/context/base/char-utf.mkiv (renamed from Master/texmf-dist/tex/context/base/char-utf.tex)26
-rw-r--r--Master/texmf-dist/tex/context/base/chem-ini.lua74
-rw-r--r--Master/texmf-dist/tex/context/base/chem-ini.mkiv47
-rw-r--r--Master/texmf-dist/tex/context/base/chem-str.lua488
-rw-r--r--Master/texmf-dist/tex/context/base/chem-str.mkiv526
-rw-r--r--Master/texmf-dist/tex/context/base/colo-ext.mkii (renamed from Master/texmf-dist/tex/context/base/colo-ext.tex)2
-rw-r--r--Master/texmf-dist/tex/context/base/colo-ext.mkiv57
-rw-r--r--Master/texmf-dist/tex/context/base/colo-hex.mkii125
-rw-r--r--Master/texmf-dist/tex/context/base/colo-hex.mkiv26
-rw-r--r--Master/texmf-dist/tex/context/base/colo-hex.tex122
-rw-r--r--Master/texmf-dist/tex/context/base/colo-ini.lua407
-rw-r--r--Master/texmf-dist/tex/context/base/colo-ini.mkii (renamed from Master/texmf-dist/tex/context/base/colo-ini.tex)1999
-rw-r--r--Master/texmf-dist/tex/context/base/colo-ini.mkiv1042
-rw-r--r--Master/texmf-dist/tex/context/base/colo-new.lua547
-rw-r--r--Master/texmf-dist/tex/context/base/colo-run.tex29
-rw-r--r--Master/texmf-dist/tex/context/base/cont-cs.tex39
-rw-r--r--Master/texmf-dist/tex/context/base/cont-de.tex18
-rw-r--r--Master/texmf-dist/tex/context/base/cont-en.tex18
-rw-r--r--Master/texmf-dist/tex/context/base/cont-fil.tex8
-rw-r--r--Master/texmf-dist/tex/context/base/cont-fr.tex20
-rw-r--r--Master/texmf-dist/tex/context/base/cont-gb.tex42
-rw-r--r--Master/texmf-dist/tex/context/base/cont-it.tex18
-rw-r--r--Master/texmf-dist/tex/context/base/cont-log.tex139
-rw-r--r--Master/texmf-dist/tex/context/base/cont-new.mkii3
-rw-r--r--Master/texmf-dist/tex/context/base/cont-new.mkiv131
-rw-r--r--Master/texmf-dist/tex/context/base/cont-new.tex863
-rw-r--r--Master/texmf-dist/tex/context/base/cont-nl.tex18
-rw-r--r--Master/texmf-dist/tex/context/base/cont-old.tex4
-rw-r--r--Master/texmf-dist/tex/context/base/cont-pe.tex45
-rw-r--r--Master/texmf-dist/tex/context/base/cont-ro.tex14
-rw-r--r--Master/texmf-dist/tex/context/base/cont-sys.ori9
-rw-r--r--Master/texmf-dist/tex/context/base/cont-usr.ori16
-rw-r--r--Master/texmf-dist/tex/context/base/context-base.lmx38
-rw-r--r--Master/texmf-dist/tex/context/base/context-characters.lmx66
-rw-r--r--Master/texmf-dist/tex/context/base/context-debug.lmx66
-rw-r--r--Master/texmf-dist/tex/context/base/context-error.lmx46
-rw-r--r--Master/texmf-dist/tex/context/base/context-fonttest.lmx47
-rw-r--r--Master/texmf-dist/tex/context/base/context-help.lmx88
-rw-r--r--Master/texmf-dist/tex/context/base/context-timing.lmx52
-rw-r--r--Master/texmf-dist/tex/context/base/context.css15
-rw-r--r--Master/texmf-dist/tex/context/base/context.mkii384
-rw-r--r--Master/texmf-dist/tex/context/base/context.mkiv356
-rw-r--r--Master/texmf-dist/tex/context/base/context.rme85
-rw-r--r--Master/texmf-dist/tex/context/base/context.tex603
-rw-r--r--Master/texmf-dist/tex/context/base/core-buf.lua471
-rw-r--r--Master/texmf-dist/tex/context/base/core-buf.mkii144
-rw-r--r--Master/texmf-dist/tex/context/base/core-buf.mkiv109
-rw-r--r--Master/texmf-dist/tex/context/base/core-con.lua457
-rw-r--r--Master/texmf-dist/tex/context/base/core-con.mkii793
-rw-r--r--Master/texmf-dist/tex/context/base/core-con.mkiv832
-rw-r--r--Master/texmf-dist/tex/context/base/core-con.tex776
-rw-r--r--Master/texmf-dist/tex/context/base/core-ctx.lua94
-rw-r--r--Master/texmf-dist/tex/context/base/core-ctx.mkii (renamed from Master/texmf-dist/tex/context/base/core-ctx.tex)10
-rw-r--r--Master/texmf-dist/tex/context/base/core-ctx.mkiv26
-rw-r--r--Master/texmf-dist/tex/context/base/core-def.mkii84
-rw-r--r--Master/texmf-dist/tex/context/base/core-def.mkiv72
-rw-r--r--Master/texmf-dist/tex/context/base/core-def.tex27
-rw-r--r--Master/texmf-dist/tex/context/base/core-env.mkii543
-rw-r--r--Master/texmf-dist/tex/context/base/core-env.mkiv456
-rw-r--r--Master/texmf-dist/tex/context/base/core-fil.mkii (renamed from Master/texmf-dist/tex/context/base/core-fil.tex)76
-rw-r--r--Master/texmf-dist/tex/context/base/core-fil.mkiv317
-rw-r--r--Master/texmf-dist/tex/context/base/core-fnt.mkii (renamed from Master/texmf-dist/tex/context/base/core-fnt.tex)10
-rw-r--r--Master/texmf-dist/tex/context/base/core-fnt.mkiv470
-rw-r--r--Master/texmf-dist/tex/context/base/core-gen.mkii166
-rw-r--r--Master/texmf-dist/tex/context/base/core-gen.mkiv166
-rw-r--r--Master/texmf-dist/tex/context/base/core-gen.tex211
-rw-r--r--Master/texmf-dist/tex/context/base/core-grd.mkii (renamed from Master/texmf-dist/tex/context/base/core-grd.tex)2
-rw-r--r--Master/texmf-dist/tex/context/base/core-grd.mkiv1074
-rw-r--r--Master/texmf-dist/tex/context/base/core-inc.lua822
-rw-r--r--Master/texmf-dist/tex/context/base/core-inc.tex18
-rw-r--r--Master/texmf-dist/tex/context/base/core-ini.mkii (renamed from Master/texmf-dist/tex/context/base/core-ini.tex)2
-rw-r--r--Master/texmf-dist/tex/context/base/core-ini.mkiv66
-rw-r--r--Master/texmf-dist/tex/context/base/core-job.lua152
-rw-r--r--Master/texmf-dist/tex/context/base/core-job.mkii326
-rw-r--r--Master/texmf-dist/tex/context/base/core-job.mkiv303
-rw-r--r--Master/texmf-dist/tex/context/base/core-job.tex365
-rw-r--r--Master/texmf-dist/tex/context/base/core-lme.tex55
-rw-r--r--Master/texmf-dist/tex/context/base/core-mak.tex84
-rw-r--r--Master/texmf-dist/tex/context/base/core-mis.mkii (renamed from Master/texmf-dist/tex/context/base/core-mis.tex)558
-rw-r--r--Master/texmf-dist/tex/context/base/core-mis.mkiv2466
-rw-r--r--Master/texmf-dist/tex/context/base/core-new.tex309
-rw-r--r--Master/texmf-dist/tex/context/base/core-obj.lua36
-rw-r--r--Master/texmf-dist/tex/context/base/core-obj.mkii74
-rw-r--r--Master/texmf-dist/tex/context/base/core-obj.mkiv55
-rw-r--r--Master/texmf-dist/tex/context/base/core-par.mkii (renamed from Master/texmf-dist/tex/context/base/core-par.tex)2
-rw-r--r--Master/texmf-dist/tex/context/base/core-pos.lua94
-rw-r--r--Master/texmf-dist/tex/context/base/core-pos.mkii184
-rw-r--r--Master/texmf-dist/tex/context/base/core-pos.mkiv65
-rw-r--r--Master/texmf-dist/tex/context/base/core-reg.lua185
-rw-r--r--Master/texmf-dist/tex/context/base/core-reg.mkii33
-rw-r--r--Master/texmf-dist/tex/context/base/core-reg.mkiv57
-rw-r--r--Master/texmf-dist/tex/context/base/core-spa.lua1490
-rw-r--r--Master/texmf-dist/tex/context/base/core-spa.mkii4652
-rw-r--r--Master/texmf-dist/tex/context/base/core-spa.mkiv4256
-rw-r--r--Master/texmf-dist/tex/context/base/core-spa.tex4474
-rw-r--r--Master/texmf-dist/tex/context/base/core-stg.mkii (renamed from Master/texmf-dist/tex/context/base/core-stg.tex)4
-rw-r--r--Master/texmf-dist/tex/context/base/core-syn.lua116
-rw-r--r--Master/texmf-dist/tex/context/base/core-syn.mkii28
-rw-r--r--Master/texmf-dist/tex/context/base/core-syn.mkiv51
-rw-r--r--Master/texmf-dist/tex/context/base/core-sys.mkii384
-rw-r--r--Master/texmf-dist/tex/context/base/core-sys.mkiv410
-rw-r--r--Master/texmf-dist/tex/context/base/core-sys.tex401
-rw-r--r--Master/texmf-dist/tex/context/base/core-two.lua128
-rw-r--r--Master/texmf-dist/tex/context/base/core-two.mkii65
-rw-r--r--Master/texmf-dist/tex/context/base/core-two.mkiv137
-rw-r--r--Master/texmf-dist/tex/context/base/core-two.tex103
-rw-r--r--Master/texmf-dist/tex/context/base/core-uti.lua274
-rw-r--r--Master/texmf-dist/tex/context/base/core-uti.mkii344
-rw-r--r--Master/texmf-dist/tex/context/base/core-uti.mkiv130
-rw-r--r--Master/texmf-dist/tex/context/base/core-uti.tex381
-rw-r--r--Master/texmf-dist/tex/context/base/core-var.mkii286
-rw-r--r--Master/texmf-dist/tex/context/base/core-var.mkiv267
-rw-r--r--Master/texmf-dist/tex/context/base/core-var.tex687
-rw-r--r--Master/texmf-dist/tex/context/base/core-ver.mkii298
-rw-r--r--Master/texmf-dist/tex/context/base/core-ver.mkiv208
-rw-r--r--Master/texmf-dist/tex/context/base/data-aux.lua57
-rw-r--r--Master/texmf-dist/tex/context/base/data-bin.lua26
-rw-r--r--Master/texmf-dist/tex/context/base/data-con.lua122
-rw-r--r--Master/texmf-dist/tex/context/base/data-crl.lua58
-rw-r--r--Master/texmf-dist/tex/context/base/data-ctx.lua29
-rw-r--r--Master/texmf-dist/tex/context/base/data-gen.lua9
-rw-r--r--Master/texmf-dist/tex/context/base/data-inp.lua15
-rw-r--r--Master/texmf-dist/tex/context/base/data-kps.lua101
-rw-r--r--Master/texmf-dist/tex/context/base/data-lst.lua58
-rw-r--r--Master/texmf-dist/tex/context/base/data-lua.lua55
-rw-r--r--Master/texmf-dist/tex/context/base/data-out.lua10
-rw-r--r--Master/texmf-dist/tex/context/base/data-pre.lua90
-rw-r--r--Master/texmf-dist/tex/context/base/data-res.lua2030
-rw-r--r--Master/texmf-dist/tex/context/base/data-tex.lua221
-rw-r--r--Master/texmf-dist/tex/context/base/data-tmf.lua72
-rw-r--r--Master/texmf-dist/tex/context/base/data-tmp.lua176
-rw-r--r--Master/texmf-dist/tex/context/base/data-tre.lua43
-rw-r--r--Master/texmf-dist/tex/context/base/data-use.lua127
-rw-r--r--Master/texmf-dist/tex/context/base/data-zip.lua241
-rw-r--r--Master/texmf-dist/tex/context/base/enco-032.mkii (renamed from Master/texmf-dist/tex/context/base/enco-032.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/enco-037.mkii (renamed from Master/texmf-dist/tex/context/base/enco-037.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/enco-acc.mkii (renamed from Master/texmf-dist/tex/context/base/enco-acc.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/enco-agr.mkii (renamed from Master/texmf-dist/tex/context/base/enco-agr.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/enco-ans.mkii (renamed from Master/texmf-dist/tex/context/base/enco-ans.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/enco-cas.mkii (renamed from Master/texmf-dist/tex/context/base/enco-cas.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/enco-chi.mkii (renamed from Master/texmf-dist/tex/context/base/enco-chi.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/enco-com.mkii (renamed from Master/texmf-dist/tex/context/base/enco-com.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/enco-cyr.mkii (renamed from Master/texmf-dist/tex/context/base/enco-cyr.tex)2
-rw-r--r--Master/texmf-dist/tex/context/base/enco-def.mkii (renamed from Master/texmf-dist/tex/context/base/enco-def.tex)14
-rw-r--r--Master/texmf-dist/tex/context/base/enco-ec.mkii (renamed from Master/texmf-dist/tex/context/base/enco-ec.tex)1
-rw-r--r--Master/texmf-dist/tex/context/base/enco-ecm.mkii (renamed from Master/texmf-dist/tex/context/base/enco-ecm.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/enco-el.mkii (renamed from Master/texmf-dist/tex/context/base/enco-el.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/enco-fde.mkii (renamed from Master/texmf-dist/tex/context/base/enco-fde.tex)2
-rw-r--r--Master/texmf-dist/tex/context/base/enco-ffr.mkii (renamed from Master/texmf-dist/tex/context/base/enco-ffr.tex)2
-rw-r--r--Master/texmf-dist/tex/context/base/enco-fpl.mkii (renamed from Master/texmf-dist/tex/context/base/enco-fpl.tex)2
-rw-r--r--Master/texmf-dist/tex/context/base/enco-fro.mkii (renamed from Master/texmf-dist/tex/context/base/enco-fro.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/enco-fsl.mkii (renamed from Master/texmf-dist/tex/context/base/enco-fsl.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/enco-grk.mkii (renamed from Master/texmf-dist/tex/context/base/enco-grk.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/enco-heb.mkii (renamed from Master/texmf-dist/tex/context/base/enco-heb.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/enco-ibm.mkii (renamed from Master/texmf-dist/tex/context/base/enco-ibm.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/enco-il2.mkii (renamed from Master/texmf-dist/tex/context/base/enco-il2.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/enco-ini.mkii1125
-rw-r--r--Master/texmf-dist/tex/context/base/enco-ini.mkiv524
-rw-r--r--Master/texmf-dist/tex/context/base/enco-ini.tex1228
-rw-r--r--Master/texmf-dist/tex/context/base/enco-lat.mkii (renamed from Master/texmf-dist/tex/context/base/enco-lat.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/enco-mis.mkii (renamed from Master/texmf-dist/tex/context/base/enco-mis.tex)37
-rw-r--r--Master/texmf-dist/tex/context/base/enco-pdf.mkii (renamed from Master/texmf-dist/tex/context/base/enco-pdf.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/enco-pfr.mkii291
-rw-r--r--Master/texmf-dist/tex/context/base/enco-pfr.mkiv22
-rw-r--r--Master/texmf-dist/tex/context/base/enco-pfr.tex303
-rw-r--r--Master/texmf-dist/tex/context/base/enco-pol.mkii (renamed from Master/texmf-dist/tex/context/base/enco-pol.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/enco-qx.mkii (renamed from Master/texmf-dist/tex/context/base/enco-qx.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/enco-raw.mkii (renamed from Master/texmf-dist/tex/context/base/enco-raw.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/enco-run.mkii (renamed from Master/texmf-dist/tex/context/base/enco-run.tex)85
-rw-r--r--Master/texmf-dist/tex/context/base/enco-t5.mkii (renamed from Master/texmf-dist/tex/context/base/enco-t5.tex)4
-rw-r--r--Master/texmf-dist/tex/context/base/enco-tbo.mkii (renamed from Master/texmf-dist/tex/context/base/enco-tbo.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/enco-uc.mkii (renamed from Master/texmf-dist/tex/context/base/enco-uc.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/enco-utf.tex3126
-rw-r--r--Master/texmf-dist/tex/context/base/enco-vis.mkii (renamed from Master/texmf-dist/tex/context/base/enco-vis.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/enco-vna.mkii (renamed from Master/texmf-dist/tex/context/base/enco-vna.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/enco-win.mkii (renamed from Master/texmf-dist/tex/context/base/enco-win.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/enco-x5.mkii (renamed from Master/texmf-dist/tex/context/base/enco-x5.tex)34
-rw-r--r--Master/texmf-dist/tex/context/base/filt-bas.mkii (renamed from Master/texmf-dist/tex/context/base/filt-bas.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/filt-ini.mkii (renamed from Master/texmf-dist/tex/context/base/filt-ini.tex)54
-rw-r--r--Master/texmf-dist/tex/context/base/font-afm.lua941
-rw-r--r--Master/texmf-dist/tex/context/base/font-arb.mkii (renamed from Master/texmf-dist/tex/context/base/font-arb.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/font-bfm.mkii (renamed from Master/texmf-dist/tex/context/base/font-bfm.tex)2
-rw-r--r--Master/texmf-dist/tex/context/base/font-chi.mkii (renamed from Master/texmf-dist/tex/context/base/font-chi.tex)2
-rw-r--r--Master/texmf-dist/tex/context/base/font-chk.lua76
-rw-r--r--Master/texmf-dist/tex/context/base/font-cid.lua144
-rw-r--r--Master/texmf-dist/tex/context/base/font-col.lua215
-rw-r--r--Master/texmf-dist/tex/context/base/font-col.mkiv146
-rw-r--r--Master/texmf-dist/tex/context/base/font-ctx.lua392
-rw-r--r--Master/texmf-dist/tex/context/base/font-def.lua747
-rw-r--r--Master/texmf-dist/tex/context/base/font-dum.lua116
-rw-r--r--Master/texmf-dist/tex/context/base/font-enc.lua18
-rw-r--r--Master/texmf-dist/tex/context/base/font-ext.lua320
-rw-r--r--Master/texmf-dist/tex/context/base/font-fbk.lua260
-rw-r--r--Master/texmf-dist/tex/context/base/font-heb.mkii (renamed from Master/texmf-dist/tex/context/base/font-heb.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/font-ini.lua71
-rw-r--r--Master/texmf-dist/tex/context/base/font-ini.mkii4530
-rw-r--r--Master/texmf-dist/tex/context/base/font-ini.mkiv4011
-rw-r--r--Master/texmf-dist/tex/context/base/font-ini.tex4845
-rw-r--r--Master/texmf-dist/tex/context/base/font-jap.mkii (renamed from Master/texmf-dist/tex/context/base/font-jap.tex)2
-rw-r--r--Master/texmf-dist/tex/context/base/font-log.lua58
-rw-r--r--Master/texmf-dist/tex/context/base/font-map.lua125
-rw-r--r--Master/texmf-dist/tex/context/base/font-mis.lua91
-rw-r--r--Master/texmf-dist/tex/context/base/font-ota.lua320
-rw-r--r--Master/texmf-dist/tex/context/base/font-otb.lua371
-rw-r--r--Master/texmf-dist/tex/context/base/font-otc.lua238
-rw-r--r--Master/texmf-dist/tex/context/base/font-otd.lua78
-rw-r--r--Master/texmf-dist/tex/context/base/font-otf.lua5599
-rw-r--r--Master/texmf-dist/tex/context/base/font-oti.lua57
-rw-r--r--Master/texmf-dist/tex/context/base/font-otn.lua2496
-rw-r--r--Master/texmf-dist/tex/context/base/font-otp.lua420
-rw-r--r--Master/texmf-dist/tex/context/base/font-ott.lua945
-rw-r--r--Master/texmf-dist/tex/context/base/font-pat.lua94
-rw-r--r--Master/texmf-dist/tex/context/base/font-run.mkii (renamed from Master/texmf-dist/tex/context/base/font-run.tex)9
-rw-r--r--Master/texmf-dist/tex/context/base/font-run.mkiv326
-rw-r--r--Master/texmf-dist/tex/context/base/font-syn.lua549
-rw-r--r--Master/texmf-dist/tex/context/base/font-tfm.lua1114
-rw-r--r--Master/texmf-dist/tex/context/base/font-tra.mkiv113
-rw-r--r--Master/texmf-dist/tex/context/base/font-uni.mkii (renamed from Master/texmf-dist/tex/context/base/font-uni.tex)69
-rw-r--r--Master/texmf-dist/tex/context/base/font-uni.mkiv26
-rw-r--r--Master/texmf-dist/tex/context/base/font-unk.mkii (renamed from Master/texmf-dist/tex/context/base/font-unk.tex)4
-rw-r--r--Master/texmf-dist/tex/context/base/font-unk.mkiv162
-rw-r--r--Master/texmf-dist/tex/context/base/font-vf.lua181
-rw-r--r--Master/texmf-dist/tex/context/base/font-xtx.lua115
-rw-r--r--Master/texmf-dist/tex/context/base/font-xtx.mkii357
-rw-r--r--Master/texmf-dist/tex/context/base/grph-fig.mkii (renamed from Master/texmf-dist/tex/context/base/core-fig.tex)68
-rw-r--r--Master/texmf-dist/tex/context/base/grph-fig.mkiv526
-rw-r--r--Master/texmf-dist/tex/context/base/grph-inc.lua883
-rw-r--r--Master/texmf-dist/tex/context/base/grph-inc.mkii (renamed from Master/texmf-dist/tex/context/base/core-inc.mkii)152
-rw-r--r--Master/texmf-dist/tex/context/base/grph-inc.mkiv (renamed from Master/texmf-dist/tex/context/base/core-inc.mkiv)143
-rw-r--r--Master/texmf-dist/tex/context/base/grph-trf.mkii (renamed from Master/texmf-dist/tex/context/base/core-trf.tex)71
-rw-r--r--Master/texmf-dist/tex/context/base/grph-trf.mkiv577
-rw-r--r--Master/texmf-dist/tex/context/base/grph-u3d.lua45
-rw-r--r--Master/texmf-dist/tex/context/base/hand-def.mkii (renamed from Master/texmf-dist/tex/context/base/hand-def.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/hand-ini.mkii261
-rw-r--r--Master/texmf-dist/tex/context/base/hand-ini.mkiv2
-rw-r--r--Master/texmf-dist/tex/context/base/java-fld.tex28
-rw-r--r--Master/texmf-dist/tex/context/base/java-ini.lua119
-rw-r--r--Master/texmf-dist/tex/context/base/java-ini.mkii (renamed from Master/texmf-dist/tex/context/base/java-ini.tex)79
-rw-r--r--Master/texmf-dist/tex/context/base/java-ini.mkiv164
-rw-r--r--Master/texmf-dist/tex/context/base/java-stp.tex16
-rw-r--r--Master/texmf-dist/tex/context/base/l-aux.lua205
-rw-r--r--Master/texmf-dist/tex/context/base/l-boolean.lua23
-rw-r--r--Master/texmf-dist/tex/context/base/l-dimen.lua369
-rw-r--r--Master/texmf-dist/tex/context/base/l-dir.lua513
-rw-r--r--Master/texmf-dist/tex/context/base/l-file.lua280
-rw-r--r--Master/texmf-dist/tex/context/base/l-io.lua218
-rw-r--r--Master/texmf-dist/tex/context/base/l-lpeg.lua78
-rw-r--r--Master/texmf-dist/tex/context/base/l-math.lua32
-rw-r--r--Master/texmf-dist/tex/context/base/l-md5.lua78
-rw-r--r--Master/texmf-dist/tex/context/base/l-number.lua27
-rw-r--r--Master/texmf-dist/tex/context/base/l-os.lua85
-rw-r--r--Master/texmf-dist/tex/context/base/l-set.lua100
-rw-r--r--Master/texmf-dist/tex/context/base/l-string.lua299
-rw-r--r--Master/texmf-dist/tex/context/base/l-table.lua913
-rw-r--r--Master/texmf-dist/tex/context/base/l-tex.lua114
-rw-r--r--Master/texmf-dist/tex/context/base/l-unicode.lua124
-rw-r--r--Master/texmf-dist/tex/context/base/l-url.lua54
-rw-r--r--Master/texmf-dist/tex/context/base/l-utils.lua80
-rw-r--r--Master/texmf-dist/tex/context/base/l-xml-edu.lua381
-rw-r--r--Master/texmf-dist/tex/context/base/l-xml.lua484
-rw-r--r--Master/texmf-dist/tex/context/base/lang-all.xml2
-rw-r--r--Master/texmf-dist/tex/context/base/lang-alt.tex5
-rw-r--r--Master/texmf-dist/tex/context/base/lang-ana.tex6
-rw-r--r--Master/texmf-dist/tex/context/base/lang-ara.mkiv150
-rw-r--r--Master/texmf-dist/tex/context/base/lang-art.tex6
-rw-r--r--Master/texmf-dist/tex/context/base/lang-bal.tex6
-rw-r--r--Master/texmf-dist/tex/context/base/lang-cel.tex6
-rw-r--r--Master/texmf-dist/tex/context/base/lang-chi.mkii (renamed from Master/texmf-dist/tex/context/base/lang-chi.tex)6
-rw-r--r--Master/texmf-dist/tex/context/base/lang-cjk.mkiv328
-rw-r--r--Master/texmf-dist/tex/context/base/lang-ctx.mkii53
-rw-r--r--Master/texmf-dist/tex/context/base/lang-ctx.tex59
-rw-r--r--Master/texmf-dist/tex/context/base/lang-cyr.tex14
-rw-r--r--Master/texmf-dist/tex/context/base/lang-dis.mkii (renamed from Master/texmf-dist/tex/context/base/lang-dis.tex)8
-rw-r--r--Master/texmf-dist/tex/context/base/lang-frq.tex16
-rw-r--r--Master/texmf-dist/tex/context/base/lang-ger.tex308
-rw-r--r--Master/texmf-dist/tex/context/base/lang-grk.tex9
-rw-r--r--Master/texmf-dist/tex/context/base/lang-ind.tex2
-rw-r--r--Master/texmf-dist/tex/context/base/lang-ini.lua307
-rw-r--r--Master/texmf-dist/tex/context/base/lang-ini.mkii601
-rw-r--r--Master/texmf-dist/tex/context/base/lang-ini.mkiv554
-rw-r--r--Master/texmf-dist/tex/context/base/lang-ini.tex679
-rw-r--r--Master/texmf-dist/tex/context/base/lang-ita.tex61
-rw-r--r--Master/texmf-dist/tex/context/base/lang-jap.mkii (renamed from Master/texmf-dist/tex/context/base/lang-jap.tex)5
-rw-r--r--Master/texmf-dist/tex/context/base/lang-lab.mkii (renamed from Master/texmf-dist/tex/context/base/lang-lab.tex)114
-rw-r--r--Master/texmf-dist/tex/context/base/lang-lab.mkiv261
-rw-r--r--Master/texmf-dist/tex/context/base/lang-mis.mkii (renamed from Master/texmf-dist/tex/context/base/lang-mis.tex)26
-rw-r--r--Master/texmf-dist/tex/context/base/lang-mis.mkiv683
-rw-r--r--Master/texmf-dist/tex/context/base/lang-run.mkii (renamed from Master/texmf-dist/tex/context/base/lang-run.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/lang-sla.tex147
-rw-r--r--Master/texmf-dist/tex/context/base/lang-spa.tex2
-rw-r--r--Master/texmf-dist/tex/context/base/lang-spe.mkii (renamed from Master/texmf-dist/tex/context/base/lang-spe.tex)46
-rw-r--r--Master/texmf-dist/tex/context/base/lang-ura.tex6
-rw-r--r--Master/texmf-dist/tex/context/base/lang-url.lua27
-rw-r--r--Master/texmf-dist/tex/context/base/lang-url.mkii74
-rw-r--r--Master/texmf-dist/tex/context/base/lang-url.mkiv58
-rw-r--r--Master/texmf-dist/tex/context/base/lang-url.tex70
-rw-r--r--Master/texmf-dist/tex/context/base/lang-vn.tex93
-rw-r--r--Master/texmf-dist/tex/context/base/lpdf-ano.lua573
-rw-r--r--Master/texmf-dist/tex/context/base/lpdf-col.lua150
-rw-r--r--Master/texmf-dist/tex/context/base/lpdf-fld.lua751
-rw-r--r--Master/texmf-dist/tex/context/base/lpdf-grp.lua70
-rw-r--r--Master/texmf-dist/tex/context/base/lpdf-ini.lua519
-rw-r--r--Master/texmf-dist/tex/context/base/lpdf-ini.mkiv260
-rw-r--r--Master/texmf-dist/tex/context/base/lpdf-mis.lua269
-rw-r--r--Master/texmf-dist/tex/context/base/lpdf-nod.lua53
-rw-r--r--Master/texmf-dist/tex/context/base/lpdf-ren.lua209
-rw-r--r--Master/texmf-dist/tex/context/base/lpdf-u3d.lua427
-rw-r--r--Master/texmf-dist/tex/context/base/lpdf-wid.lua328
-rw-r--r--Master/texmf-dist/tex/context/base/luat-bas.mkiv65
-rw-r--r--Master/texmf-dist/tex/context/base/luat-cbk.lua96
-rw-r--r--Master/texmf-dist/tex/context/base/luat-cnf.lua115
-rw-r--r--Master/texmf-dist/tex/context/base/luat-cod.mkiv161
-rw-r--r--Master/texmf-dist/tex/context/base/luat-crl.lua53
-rw-r--r--Master/texmf-dist/tex/context/base/luat-dum.lua61
-rw-r--r--Master/texmf-dist/tex/context/base/luat-env.lua389
-rw-r--r--Master/texmf-dist/tex/context/base/luat-env.tex172
-rw-r--r--Master/texmf-dist/tex/context/base/luat-exe.lua74
-rw-r--r--Master/texmf-dist/tex/context/base/luat-fio.lua83
-rw-r--r--Master/texmf-dist/tex/context/base/luat-ini.lua130
-rw-r--r--Master/texmf-dist/tex/context/base/luat-ini.mkiv239
-rw-r--r--Master/texmf-dist/tex/context/base/luat-ini.tex103
-rw-r--r--Master/texmf-dist/tex/context/base/luat-inp.lua2262
-rw-r--r--Master/texmf-dist/tex/context/base/luat-iop.lua18
-rw-r--r--Master/texmf-dist/tex/context/base/luat-kps.lua102
-rw-r--r--Master/texmf-dist/tex/context/base/luat-lib.lua160
-rw-r--r--Master/texmf-dist/tex/context/base/luat-lib.mkiv65
-rw-r--r--Master/texmf-dist/tex/context/base/luat-lib.tex90
-rw-r--r--Master/texmf-dist/tex/context/base/luat-log.lua128
-rw-r--r--Master/texmf-dist/tex/context/base/luat-lua.lua42
-rw-r--r--Master/texmf-dist/tex/context/base/luat-run.lua69
-rw-r--r--Master/texmf-dist/tex/context/base/luat-soc.lua11
-rw-r--r--Master/texmf-dist/tex/context/base/luat-sta.lua44
-rw-r--r--Master/texmf-dist/tex/context/base/luat-sto.lua135
-rw-r--r--Master/texmf-dist/tex/context/base/luat-tex.lua516
-rw-r--r--Master/texmf-dist/tex/context/base/luat-tmp.lua408
-rw-r--r--Master/texmf-dist/tex/context/base/luat-tra.lua108
-rw-r--r--Master/texmf-dist/tex/context/base/luat-tre.lua45
-rw-r--r--Master/texmf-dist/tex/context/base/luat-uni.lua23
-rw-r--r--Master/texmf-dist/tex/context/base/luat-uni.tex33
-rw-r--r--Master/texmf-dist/tex/context/base/luat-zip.lua220
-rw-r--r--Master/texmf-dist/tex/context/base/lxml-ent.lua115
-rw-r--r--Master/texmf-dist/tex/context/base/lxml-ini.lua931
-rw-r--r--Master/texmf-dist/tex/context/base/lxml-ini.mkiv408
-rw-r--r--Master/texmf-dist/tex/context/base/lxml-ini.tex304
-rw-r--r--Master/texmf-dist/tex/context/base/lxml-mis.lua106
-rw-r--r--Master/texmf-dist/tex/context/base/lxml-pth.lua1555
-rw-r--r--Master/texmf-dist/tex/context/base/lxml-tab.lua783
-rw-r--r--Master/texmf-dist/tex/context/base/m-arabtex.tex2
-rw-r--r--Master/texmf-dist/tex/context/base/m-chart.tex62
-rw-r--r--Master/texmf-dist/tex/context/base/m-chemic.mkii21
-rw-r--r--Master/texmf-dist/tex/context/base/m-chemic.mkiv19
-rw-r--r--Master/texmf-dist/tex/context/base/m-chemic.tex10
-rw-r--r--Master/texmf-dist/tex/context/base/m-database.tex2
-rw-r--r--Master/texmf-dist/tex/context/base/m-datastrc.tex (renamed from Master/texmf-dist/tex/context/base/core-dat.tex)76
-rw-r--r--Master/texmf-dist/tex/context/base/m-educat.tex33
-rw-r--r--Master/texmf-dist/tex/context/base/m-format.tex409
-rw-r--r--Master/texmf-dist/tex/context/base/m-gamma.tex230
-rw-r--r--Master/texmf-dist/tex/context/base/m-graph.mkii72
-rw-r--r--Master/texmf-dist/tex/context/base/m-graph.mkiv63
-rw-r--r--Master/texmf-dist/tex/context/base/m-graph.tex191
-rw-r--r--Master/texmf-dist/tex/context/base/m-mkii.mkiv21
-rw-r--r--Master/texmf-dist/tex/context/base/m-mkivhacks.tex52
-rw-r--r--Master/texmf-dist/tex/context/base/m-newmat.tex14
-rw-r--r--Master/texmf-dist/tex/context/base/m-pictex.tex11
-rw-r--r--Master/texmf-dist/tex/context/base/m-punk.tex232
-rw-r--r--Master/texmf-dist/tex/context/base/m-subsub.tex47
-rw-r--r--Master/texmf-dist/tex/context/base/m-timing.tex199
-rw-r--r--Master/texmf-dist/tex/context/base/m-track.tex5
-rw-r--r--Master/texmf-dist/tex/context/base/m-translate.tex88
-rw-r--r--Master/texmf-dist/tex/context/base/m-units.tex7
-rw-r--r--Master/texmf-dist/tex/context/base/m-visual.tex47
-rw-r--r--Master/texmf-dist/tex/context/base/math-ali.mkiv1059
-rw-r--r--Master/texmf-dist/tex/context/base/math-ams.mkii (renamed from Master/texmf-dist/tex/context/base/math-ams.tex)4
-rw-r--r--Master/texmf-dist/tex/context/base/math-arr.mkii391
-rw-r--r--Master/texmf-dist/tex/context/base/math-arr.mkiv (renamed from Master/texmf-dist/tex/context/base/math-ext.tex)22
-rw-r--r--Master/texmf-dist/tex/context/base/math-cow.mkii (renamed from Master/texmf-dist/tex/context/base/math-cow.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/math-def.lua3035
-rw-r--r--Master/texmf-dist/tex/context/base/math-def.mkiv338
-rw-r--r--Master/texmf-dist/tex/context/base/math-del.mkiv63
-rw-r--r--Master/texmf-dist/tex/context/base/math-dim.lua310
-rw-r--r--Master/texmf-dist/tex/context/base/math-dis.mkiv20
-rw-r--r--Master/texmf-dist/tex/context/base/math-ent.lua4183
-rw-r--r--Master/texmf-dist/tex/context/base/math-eul.mkii (renamed from Master/texmf-dist/tex/context/base/math-eul.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/math-ext.lua143
-rw-r--r--Master/texmf-dist/tex/context/base/math-for.mkiv73
-rw-r--r--Master/texmf-dist/tex/context/base/math-fou.mkii (renamed from Master/texmf-dist/tex/context/base/math-fou.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/math-frc.mkii66
-rw-r--r--Master/texmf-dist/tex/context/base/math-frc.mkiv209
-rw-r--r--Master/texmf-dist/tex/context/base/math-ini.lua642
-rw-r--r--Master/texmf-dist/tex/context/base/math-ini.mkii679
-rw-r--r--Master/texmf-dist/tex/context/base/math-ini.mkiv574
-rw-r--r--Master/texmf-dist/tex/context/base/math-ini.tex813
-rw-r--r--Master/texmf-dist/tex/context/base/math-inl.mkiv353
-rw-r--r--Master/texmf-dist/tex/context/base/math-int.mkiv87
-rw-r--r--Master/texmf-dist/tex/context/base/math-lbr.mkii (renamed from Master/texmf-dist/tex/context/base/math-lbr.tex)15
-rw-r--r--Master/texmf-dist/tex/context/base/math-map.lua365
-rw-r--r--Master/texmf-dist/tex/context/base/math-mis.tex49
-rw-r--r--Master/texmf-dist/tex/context/base/math-noa.lua331
-rw-r--r--Master/texmf-dist/tex/context/base/math-pln.mkii (renamed from Master/texmf-dist/tex/context/base/math-pln.tex)155
-rw-r--r--Master/texmf-dist/tex/context/base/math-pln.mkiv298
-rw-r--r--Master/texmf-dist/tex/context/base/math-run.mkii (renamed from Master/texmf-dist/tex/context/base/math-run.tex)2
-rw-r--r--Master/texmf-dist/tex/context/base/math-scr.mkiv215
-rw-r--r--Master/texmf-dist/tex/context/base/math-tex.mkii (renamed from Master/texmf-dist/tex/context/base/math-tex.tex)23
-rw-r--r--Master/texmf-dist/tex/context/base/math-tim.mkii (renamed from Master/texmf-dist/tex/context/base/math-tim.tex)106
-rw-r--r--Master/texmf-dist/tex/context/base/math-uni.mkii (renamed from Master/texmf-dist/tex/context/base/math-uni.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/math-vfu.lua1601
-rw-r--r--Master/texmf-dist/tex/context/base/meta-fig.mkiv4
-rw-r--r--Master/texmf-dist/tex/context/base/meta-fig.tex89
-rw-r--r--Master/texmf-dist/tex/context/base/meta-fun.lua55
-rw-r--r--Master/texmf-dist/tex/context/base/meta-fun.mkiv20
-rw-r--r--Master/texmf-dist/tex/context/base/meta-ini.mkii125
-rw-r--r--Master/texmf-dist/tex/context/base/meta-ini.mkiv688
-rw-r--r--Master/texmf-dist/tex/context/base/meta-ini.tex1090
-rw-r--r--Master/texmf-dist/tex/context/base/meta-pag.mkii (renamed from Master/texmf-dist/tex/context/base/meta-pag.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/meta-pag.mkiv223
-rw-r--r--Master/texmf-dist/tex/context/base/meta-pdf.lua841
-rw-r--r--Master/texmf-dist/tex/context/base/meta-pdf.mkii1024
-rw-r--r--Master/texmf-dist/tex/context/base/meta-pdf.mkiv535
-rw-r--r--Master/texmf-dist/tex/context/base/meta-pdf.tex1014
-rw-r--r--Master/texmf-dist/tex/context/base/meta-pdh.lua602
-rw-r--r--Master/texmf-dist/tex/context/base/meta-pdh.mkiv780
-rw-r--r--Master/texmf-dist/tex/context/base/meta-tex.mkii2
-rw-r--r--Master/texmf-dist/tex/context/base/meta-tex.mkiv49
-rw-r--r--Master/texmf-dist/tex/context/base/meta-tex.tex346
-rw-r--r--Master/texmf-dist/tex/context/base/meta-txt.tex3
-rw-r--r--Master/texmf-dist/tex/context/base/metatex.tex141
-rw-r--r--Master/texmf-dist/tex/context/base/mlib-ctx.lua24
-rw-r--r--Master/texmf-dist/tex/context/base/mlib-ctx.mkiv (renamed from Master/texmf-dist/tex/context/base/mlib-ctx.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/mlib-pdf.lua656
-rw-r--r--Master/texmf-dist/tex/context/base/mlib-pdf.mkiv (renamed from Master/texmf-dist/tex/context/base/mlib-pdf.tex)9
-rw-r--r--Master/texmf-dist/tex/context/base/mlib-pps.lua829
-rw-r--r--Master/texmf-dist/tex/context/base/mlib-pps.mkiv47
-rw-r--r--Master/texmf-dist/tex/context/base/mlib-pps.tex61
-rw-r--r--Master/texmf-dist/tex/context/base/mlib-run.lua312
-rw-r--r--Master/texmf-dist/tex/context/base/mtx-context-arrange.tex105
-rw-r--r--Master/texmf-dist/tex/context/base/mtx-context-combine.tex146
-rw-r--r--Master/texmf-dist/tex/context/base/mtx-context-ideas.tex54
-rw-r--r--Master/texmf-dist/tex/context/base/mtx-context-listing.tex76
-rw-r--r--Master/texmf-dist/tex/context/base/mtx-context-timing.tex46
-rw-r--r--Master/texmf-dist/tex/context/base/mult-chk.lua66
-rw-r--r--Master/texmf-dist/tex/context/base/mult-chk.mkii29
-rw-r--r--Master/texmf-dist/tex/context/base/mult-chk.mkiv103
-rw-r--r--Master/texmf-dist/tex/context/base/mult-cld.lua174
-rw-r--r--Master/texmf-dist/tex/context/base/mult-cld.mkiv (renamed from Master/texmf-dist/tex/context/base/hand-ini.tex)12
-rw-r--r--Master/texmf-dist/tex/context/base/mult-com.tex2741
-rw-r--r--Master/texmf-dist/tex/context/base/mult-con.tex3996
-rw-r--r--Master/texmf-dist/tex/context/base/mult-de.tex1636
-rw-r--r--Master/texmf-dist/tex/context/base/mult-def.lua15942
-rw-r--r--Master/texmf-dist/tex/context/base/mult-def.tex35
-rw-r--r--Master/texmf-dist/tex/context/base/mult-en.tex1636
-rw-r--r--Master/texmf-dist/tex/context/base/mult-fr.tex1636
-rw-r--r--Master/texmf-dist/tex/context/base/mult-fst.tex31
-rw-r--r--Master/texmf-dist/tex/context/base/mult-ini.lua50
-rw-r--r--Master/texmf-dist/tex/context/base/mult-ini.mkii810
-rw-r--r--Master/texmf-dist/tex/context/base/mult-ini.mkiv820
-rw-r--r--Master/texmf-dist/tex/context/base/mult-ini.tex1493
-rw-r--r--Master/texmf-dist/tex/context/base/mult-it.tex1636
-rw-r--r--Master/texmf-dist/tex/context/base/mult-mcs.tex198
-rw-r--r--Master/texmf-dist/tex/context/base/mult-mde.tex198
-rw-r--r--Master/texmf-dist/tex/context/base/mult-men.tex198
-rw-r--r--Master/texmf-dist/tex/context/base/mult-mes.lua2005
-rw-r--r--Master/texmf-dist/tex/context/base/mult-mfr.tex198
-rw-r--r--Master/texmf-dist/tex/context/base/mult-mit.tex198
-rw-r--r--Master/texmf-dist/tex/context/base/mult-mnl.tex198
-rw-r--r--Master/texmf-dist/tex/context/base/mult-mno.tex198
-rw-r--r--Master/texmf-dist/tex/context/base/mult-mpe.tex198
-rw-r--r--Master/texmf-dist/tex/context/base/mult-mro.tex198
-rw-r--r--Master/texmf-dist/tex/context/base/mult-nl.tex1636
-rw-r--r--Master/texmf-dist/tex/context/base/mult-ro.tex1636
-rw-r--r--Master/texmf-dist/tex/context/base/mult-sys.tex150
-rw-r--r--Master/texmf-dist/tex/context/base/node-bck.lua116
-rw-r--r--Master/texmf-dist/tex/context/base/node-bck.mkiv163
-rw-r--r--Master/texmf-dist/tex/context/base/node-dum.lua19
-rw-r--r--Master/texmf-dist/tex/context/base/node-ext.lua30
-rw-r--r--Master/texmf-dist/tex/context/base/node-fin.lua444
-rw-r--r--Master/texmf-dist/tex/context/base/node-fin.mkiv72
-rw-r--r--Master/texmf-dist/tex/context/base/node-fnt.lua206
-rw-r--r--Master/texmf-dist/tex/context/base/node-ini.lua1088
-rw-r--r--Master/texmf-dist/tex/context/base/node-ini.mkiv106
-rw-r--r--Master/texmf-dist/tex/context/base/node-ini.tex56
-rw-r--r--Master/texmf-dist/tex/context/base/node-inj.lua417
-rw-r--r--Master/texmf-dist/tex/context/base/node-par.lua43
-rw-r--r--Master/texmf-dist/tex/context/base/node-par.mkiv60
-rw-r--r--Master/texmf-dist/tex/context/base/node-pro.lua151
-rw-r--r--Master/texmf-dist/tex/context/base/node-ref.lua519
-rw-r--r--Master/texmf-dist/tex/context/base/node-res.lua118
-rw-r--r--Master/texmf-dist/tex/context/base/node-seq.lua192
-rw-r--r--Master/texmf-dist/tex/context/base/node-ser.lua274
-rw-r--r--Master/texmf-dist/tex/context/base/node-shp.lua58
-rw-r--r--Master/texmf-dist/tex/context/base/node-tex.lua39
-rw-r--r--Master/texmf-dist/tex/context/base/node-tra.lua416
-rw-r--r--Master/texmf-dist/tex/context/base/node-tsk.lua174
-rw-r--r--Master/texmf-dist/tex/context/base/node-tst.lua119
-rw-r--r--Master/texmf-dist/tex/context/base/norm-alo.tex36
-rw-r--r--Master/texmf-dist/tex/context/base/norm-ctx.tex16
-rw-r--r--Master/texmf-dist/tex/context/base/norm-etx.tex79
-rw-r--r--Master/texmf-dist/tex/context/base/norm-ltx.tex177
-rw-r--r--Master/texmf-dist/tex/context/base/norm-ptx.tex130
-rw-r--r--Master/texmf-dist/tex/context/base/norm-tex.tex351
-rw-r--r--Master/texmf-dist/tex/context/base/norm-xtx.tex18
-rw-r--r--Master/texmf-dist/tex/context/base/pack-bar.mkiv67
-rw-r--r--Master/texmf-dist/tex/context/base/pack-box.mkii954
-rw-r--r--Master/texmf-dist/tex/context/base/pack-box.mkiv949
-rw-r--r--Master/texmf-dist/tex/context/base/pack-lyr.mkii (renamed from Master/texmf-dist/tex/context/base/page-lyr.tex)63
-rw-r--r--Master/texmf-dist/tex/context/base/pack-lyr.mkiv786
-rw-r--r--Master/texmf-dist/tex/context/base/pack-obj.lua54
-rw-r--r--Master/texmf-dist/tex/context/base/pack-obj.mkii (renamed from Master/texmf-dist/tex/context/base/core-obj.tex)128
-rw-r--r--Master/texmf-dist/tex/context/base/pack-obj.mkiv398
-rw-r--r--Master/texmf-dist/tex/context/base/pack-rul.lua53
-rw-r--r--Master/texmf-dist/tex/context/base/pack-rul.mkii (renamed from Master/texmf-dist/tex/context/base/core-rul.tex)411
-rw-r--r--Master/texmf-dist/tex/context/base/pack-rul.mkiv3585
-rw-r--r--Master/texmf-dist/tex/context/base/page-app.mkii (renamed from Master/texmf-dist/tex/context/base/page-app.tex)9
-rw-r--r--Master/texmf-dist/tex/context/base/page-app.mkiv225
-rw-r--r--Master/texmf-dist/tex/context/base/page-bck.mkii (renamed from Master/texmf-dist/tex/context/base/page-bck.tex)52
-rw-r--r--Master/texmf-dist/tex/context/base/page-bck.mkiv563
-rw-r--r--Master/texmf-dist/tex/context/base/page-flw.mkii (renamed from Master/texmf-dist/tex/context/base/page-flw.tex)4
-rw-r--r--Master/texmf-dist/tex/context/base/page-flw.mkiv107
-rw-r--r--Master/texmf-dist/tex/context/base/page-imp.mkii (renamed from Master/texmf-dist/tex/context/base/page-imp.tex)43
-rw-r--r--Master/texmf-dist/tex/context/base/page-imp.mkiv1298
-rw-r--r--Master/texmf-dist/tex/context/base/page-ini.mkii (renamed from Master/texmf-dist/tex/context/base/page-ini.tex)588
-rw-r--r--Master/texmf-dist/tex/context/base/page-ini.mkiv1452
-rw-r--r--Master/texmf-dist/tex/context/base/page-ins.mkii (renamed from Master/texmf-dist/tex/context/base/core-ins.tex)42
-rw-r--r--Master/texmf-dist/tex/context/base/page-ins.mkiv94
-rw-r--r--Master/texmf-dist/tex/context/base/page-lay.mkii (renamed from Master/texmf-dist/tex/context/base/page-lay.tex)136
-rw-r--r--Master/texmf-dist/tex/context/base/page-lay.mkiv1406
-rw-r--r--Master/texmf-dist/tex/context/base/page-lin.lua299
-rw-r--r--Master/texmf-dist/tex/context/base/page-lin.mkii2
-rw-r--r--Master/texmf-dist/tex/context/base/page-lin.mkiv24
-rw-r--r--Master/texmf-dist/tex/context/base/page-lin.tex454
-rw-r--r--Master/texmf-dist/tex/context/base/page-log.mkii (renamed from Master/texmf-dist/tex/context/base/page-log.tex)41
-rw-r--r--Master/texmf-dist/tex/context/base/page-mak.mkii (renamed from Master/texmf-dist/tex/context/base/page-mak.tex)9
-rw-r--r--Master/texmf-dist/tex/context/base/page-mak.mkiv233
-rw-r--r--Master/texmf-dist/tex/context/base/page-mar.mkii (renamed from Master/texmf-dist/tex/context/base/page-mar.tex)14
-rw-r--r--Master/texmf-dist/tex/context/base/page-mar.mkiv827
-rw-r--r--Master/texmf-dist/tex/context/base/page-mis.mkii268
-rw-r--r--Master/texmf-dist/tex/context/base/page-mis.mkiv266
-rw-r--r--Master/texmf-dist/tex/context/base/page-mul.mkii (renamed from Master/texmf-dist/tex/context/base/page-mul.tex)12
-rw-r--r--Master/texmf-dist/tex/context/base/page-mul.mkiv1755
-rw-r--r--Master/texmf-dist/tex/context/base/page-new.tex277
-rw-r--r--Master/texmf-dist/tex/context/base/page-not.mkii (renamed from Master/texmf-dist/tex/context/base/page-not.tex)2
-rw-r--r--Master/texmf-dist/tex/context/base/page-not.mkiv72
-rw-r--r--Master/texmf-dist/tex/context/base/page-one.mkii (renamed from Master/texmf-dist/tex/context/base/page-one.tex)49
-rw-r--r--Master/texmf-dist/tex/context/base/page-one.mkiv654
-rw-r--r--Master/texmf-dist/tex/context/base/page-par.mkii (renamed from Master/texmf-dist/tex/context/base/page-par.tex)4
-rw-r--r--Master/texmf-dist/tex/context/base/page-par.mkiv58
-rw-r--r--Master/texmf-dist/tex/context/base/page-plg.mkii (renamed from Master/texmf-dist/tex/context/base/page-plg.tex)7
-rw-r--r--Master/texmf-dist/tex/context/base/page-plg.mkiv198
-rw-r--r--Master/texmf-dist/tex/context/base/page-run.mkii (renamed from Master/texmf-dist/tex/context/base/page-run.tex)2
-rw-r--r--Master/texmf-dist/tex/context/base/page-run.mkiv382
-rw-r--r--Master/texmf-dist/tex/context/base/page-set.mkii (renamed from Master/texmf-dist/tex/context/base/page-set.tex)440
-rw-r--r--Master/texmf-dist/tex/context/base/page-set.mkiv3108
-rw-r--r--Master/texmf-dist/tex/context/base/page-sid.mkii (renamed from Master/texmf-dist/tex/context/base/page-sid.tex)8
-rw-r--r--Master/texmf-dist/tex/context/base/page-sid.mkiv832
-rw-r--r--Master/texmf-dist/tex/context/base/page-spr.mkii (renamed from Master/texmf-dist/tex/context/base/page-spr.tex)2
-rw-r--r--Master/texmf-dist/tex/context/base/page-spr.mkiv103
-rw-r--r--Master/texmf-dist/tex/context/base/page-str.mkii (renamed from Master/texmf-dist/tex/context/base/page-str.tex)34
-rw-r--r--Master/texmf-dist/tex/context/base/page-str.mkiv380
-rw-r--r--Master/texmf-dist/tex/context/base/page-txt.mkii (renamed from Master/texmf-dist/tex/context/base/page-txt.tex)30
-rw-r--r--Master/texmf-dist/tex/context/base/page-txt.mkiv875
-rw-r--r--Master/texmf-dist/tex/context/base/pdfr-def.mkii (renamed from Master/texmf-dist/tex/context/base/pdfr-def.tex)1273
-rw-r--r--Master/texmf-dist/tex/context/base/pdfr-ec.mkii (renamed from Master/texmf-dist/tex/context/base/pdfr-ec.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/pdfr-il2.mkii233
-rw-r--r--Master/texmf-dist/tex/context/base/ppchtex.mkii (renamed from Master/texmf-dist/tex/context/base/ppchtex.tex)46
-rw-r--r--Master/texmf-dist/tex/context/base/ppchtex.mkiv3359
-rw-r--r--Master/texmf-dist/tex/context/base/pret-lua.lua260
-rw-r--r--Master/texmf-dist/tex/context/base/pret-mp.lua (renamed from Master/texmf-dist/tex/context/base/verb-mp.lua)174
-rw-r--r--Master/texmf-dist/tex/context/base/pret-tex.lua85
-rw-r--r--Master/texmf-dist/tex/context/base/prop-ini.mkii (renamed from Master/texmf-dist/tex/context/base/prop-ini.tex)23
-rw-r--r--Master/texmf-dist/tex/context/base/prop-ini.mkiv150
-rw-r--r--Master/texmf-dist/tex/context/base/prop-lay.mkii (renamed from Master/texmf-dist/tex/context/base/prop-lay.tex)51
-rw-r--r--Master/texmf-dist/tex/context/base/prop-lay.mkiv140
-rw-r--r--Master/texmf-dist/tex/context/base/prop-mis.mkii34
-rw-r--r--Master/texmf-dist/tex/context/base/prop-mis.mkiv34
-rw-r--r--Master/texmf-dist/tex/context/base/prop-mis.tex53
-rw-r--r--Master/texmf-dist/tex/context/base/prop-run.tex39
-rw-r--r--Master/texmf-dist/tex/context/base/regi-8859-1.mkii (renamed from Master/texmf-dist/tex/context/base/regi-8859-1.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/regi-8859-10.mkii (renamed from Master/texmf-dist/tex/context/base/regi-8859-10.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/regi-8859-13.mkii (renamed from Master/texmf-dist/tex/context/base/regi-8859-13.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/regi-8859-15.mkii (renamed from Master/texmf-dist/tex/context/base/regi-8859-15.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/regi-8859-16.mkii (renamed from Master/texmf-dist/tex/context/base/regi-8859-16.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/regi-8859-2.mkii (renamed from Master/texmf-dist/tex/context/base/regi-8859-2.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/regi-8859-3.mkii (renamed from Master/texmf-dist/tex/context/base/regi-8859-3.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/regi-8859-4.mkii (renamed from Master/texmf-dist/tex/context/base/regi-8859-4.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/regi-8859-5.mkii (renamed from Master/texmf-dist/tex/context/base/regi-8859-5.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/regi-8859-7.mkii (renamed from Master/texmf-dist/tex/context/base/regi-8859-7.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/regi-8859-9.mkii (renamed from Master/texmf-dist/tex/context/base/regi-8859-9.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/regi-cp1250.mkii (renamed from Master/texmf-dist/tex/context/base/regi-cp1250.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/regi-cp1251.mkii (renamed from Master/texmf-dist/tex/context/base/regi-cp1251.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/regi-cp1252.mkii (renamed from Master/texmf-dist/tex/context/base/regi-cp1252.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/regi-cp1253.mkii (renamed from Master/texmf-dist/tex/context/base/regi-cp1253.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/regi-cp1254.mkii (renamed from Master/texmf-dist/tex/context/base/regi-cp1254.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/regi-cp1257.mkii (renamed from Master/texmf-dist/tex/context/base/regi-cp1257.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/regi-cyp.mkii (renamed from Master/texmf-dist/tex/context/base/regi-cyp.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/regi-cyr.mkii (renamed from Master/texmf-dist/tex/context/base/regi-cyr.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/regi-def.mkii (renamed from Master/texmf-dist/tex/context/base/regi-def.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/regi-ibm.mkii (renamed from Master/texmf-dist/tex/context/base/regi-ibm.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/regi-ini.lua88
-rw-r--r--Master/texmf-dist/tex/context/base/regi-ini.mkii185
-rw-r--r--Master/texmf-dist/tex/context/base/regi-ini.mkiv52
-rw-r--r--Master/texmf-dist/tex/context/base/regi-ini.tex182
-rw-r--r--Master/texmf-dist/tex/context/base/regi-mac.mkii (renamed from Master/texmf-dist/tex/context/base/regi-mac.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/regi-run.mkii32
-rw-r--r--Master/texmf-dist/tex/context/base/regi-syn.tex2
-rw-r--r--Master/texmf-dist/tex/context/base/regi-uni.mkii (renamed from Master/texmf-dist/tex/context/base/regi-uni.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/regi-utf.mkii (renamed from Master/texmf-dist/tex/context/base/regi-utf.tex)16
-rw-r--r--Master/texmf-dist/tex/context/base/regi-vis.mkii (renamed from Master/texmf-dist/tex/context/base/regi-vis.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/s-abr-01.tex10
-rw-r--r--Master/texmf-dist/tex/context/base/s-fnt-01.tex4
-rw-r--r--Master/texmf-dist/tex/context/base/s-fnt-10.tex162
-rw-r--r--Master/texmf-dist/tex/context/base/s-fnt-11.tex61
-rw-r--r--Master/texmf-dist/tex/context/base/s-fnt-20.tex140
-rw-r--r--Master/texmf-dist/tex/context/base/s-fnt-21.tex46
-rw-r--r--Master/texmf-dist/tex/context/base/s-fnt-23.tex272
-rw-r--r--Master/texmf-dist/tex/context/base/s-fnt-24.tex83
-rw-r--r--Master/texmf-dist/tex/context/base/s-fnt-25.tex162
-rw-r--r--Master/texmf-dist/tex/context/base/s-fnt-30.tex42
-rw-r--r--Master/texmf-dist/tex/context/base/s-mag-01.tex4
-rw-r--r--Master/texmf-dist/tex/context/base/s-map-10.tex5
-rw-r--r--Master/texmf-dist/tex/context/base/s-pre-11.tex220
-rw-r--r--Master/texmf-dist/tex/context/base/s-pre-12.tex226
-rw-r--r--Master/texmf-dist/tex/context/base/s-pre-17.tex399
-rw-r--r--Master/texmf-dist/tex/context/base/s-pre-18.tex177
-rw-r--r--Master/texmf-dist/tex/context/base/s-pre-19.tex5
-rw-r--r--Master/texmf-dist/tex/context/base/s-pre-26.tex255
-rw-r--r--Master/texmf-dist/tex/context/base/s-pre-27.tex181
-rw-r--r--Master/texmf-dist/tex/context/base/s-pre-60.tex46
-rw-r--r--Master/texmf-dist/tex/context/base/s-pre-61.tex16
-rw-r--r--Master/texmf-dist/tex/context/base/s-pre-62.tex20
-rw-r--r--Master/texmf-dist/tex/context/base/s-pre-66.tex133
-rw-r--r--Master/texmf-dist/tex/context/base/s-pre-67.tex144
-rw-r--r--Master/texmf-dist/tex/context/base/s-pre-70.tex170
-rw-r--r--Master/texmf-dist/tex/context/base/s-pre-71.tex210
-rw-r--r--Master/texmf-dist/tex/context/base/s-pre-93.tex210
-rw-r--r--Master/texmf-dist/tex/context/base/s-reg-01.tex50
-rw-r--r--Master/texmf-dist/tex/context/base/scrn-bar.mkiv398
-rw-r--r--Master/texmf-dist/tex/context/base/scrn-but.mkiv126
-rw-r--r--Master/texmf-dist/tex/context/base/scrn-fld.mkii (renamed from Master/texmf-dist/tex/context/base/core-fld.tex)173
-rw-r--r--Master/texmf-dist/tex/context/base/scrn-fld.mkiv703
-rw-r--r--Master/texmf-dist/tex/context/base/scrn-hlp.mkii (renamed from Master/texmf-dist/tex/context/base/core-hlp.tex)6
-rw-r--r--Master/texmf-dist/tex/context/base/scrn-hlp.mkiv171
-rw-r--r--Master/texmf-dist/tex/context/base/scrn-int.lua111
-rw-r--r--Master/texmf-dist/tex/context/base/scrn-int.mkii (renamed from Master/texmf-dist/tex/context/base/core-int.tex)348
-rw-r--r--Master/texmf-dist/tex/context/base/scrn-int.mkiv595
-rw-r--r--Master/texmf-dist/tex/context/base/scrn-men.mkiv616
-rw-r--r--Master/texmf-dist/tex/context/base/scrn-nav.mkii (renamed from Master/texmf-dist/tex/context/base/core-nav.tex)4
-rw-r--r--Master/texmf-dist/tex/context/base/scrn-nav.mkiv232
-rw-r--r--Master/texmf-dist/tex/context/base/scrp-cjk.lua576
-rw-r--r--Master/texmf-dist/tex/context/base/scrp-ini.lua386
-rw-r--r--Master/texmf-dist/tex/context/base/scrp-ini.mkiv91
-rw-r--r--Master/texmf-dist/tex/context/base/sort-def.tex20
-rw-r--r--Master/texmf-dist/tex/context/base/sort-ini.lua196
-rw-r--r--Master/texmf-dist/tex/context/base/sort-ini.mkii32
-rw-r--r--Master/texmf-dist/tex/context/base/sort-ini.mkiv8
-rw-r--r--Master/texmf-dist/tex/context/base/sort-ini.tex32
-rw-r--r--Master/texmf-dist/tex/context/base/sort-lan.lua432
-rw-r--r--Master/texmf-dist/tex/context/base/sort-lan.tex18
-rw-r--r--Master/texmf-dist/tex/context/base/spec-def.mkii1004
-rw-r--r--Master/texmf-dist/tex/context/base/spec-def.mkiv19
-rw-r--r--Master/texmf-dist/tex/context/base/spec-def.tex1011
-rw-r--r--Master/texmf-dist/tex/context/base/spec-dpm.mkii (renamed from Master/texmf-dist/tex/context/base/spec-dpm.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/spec-dpx.mkii (renamed from Master/texmf-dist/tex/context/base/spec-dpx.tex)63
-rw-r--r--Master/texmf-dist/tex/context/base/spec-dvi.mkii (renamed from Master/texmf-dist/tex/context/base/spec-dvi.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/spec-fdf.mkii3308
-rw-r--r--Master/texmf-dist/tex/context/base/spec-fdf.mkiv19
-rw-r--r--Master/texmf-dist/tex/context/base/spec-fdf.tex3314
-rw-r--r--Master/texmf-dist/tex/context/base/spec-ini.mkii (renamed from Master/texmf-dist/tex/context/base/spec-ini.tex)174
-rw-r--r--Master/texmf-dist/tex/context/base/spec-mis.mkii (renamed from Master/texmf-dist/tex/context/base/spec-mis.tex)26
-rw-r--r--Master/texmf-dist/tex/context/base/spec-pdf.lua28
-rw-r--r--Master/texmf-dist/tex/context/base/spec-pdf.mkii (renamed from Master/texmf-dist/tex/context/base/spec-pdf.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/spec-ps.mkii (renamed from Master/texmf-dist/tex/context/base/spec-ps.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/spec-tpd.mkii (renamed from Master/texmf-dist/tex/context/base/spec-tpd.tex)57
-rw-r--r--Master/texmf-dist/tex/context/base/spec-tr.mkii (renamed from Master/texmf-dist/tex/context/base/spec-tr.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/spec-tst.mkii (renamed from Master/texmf-dist/tex/context/base/spec-tst.tex)2
-rw-r--r--Master/texmf-dist/tex/context/base/spec-var.mkii (renamed from Master/texmf-dist/tex/context/base/spec-var.tex)2
-rw-r--r--Master/texmf-dist/tex/context/base/spec-win.mkii (renamed from Master/texmf-dist/tex/context/base/spec-win.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/spec-xet.mkii (renamed from Master/texmf-dist/tex/context/base/spec-xet.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/spec-xtx.mkii (renamed from Master/texmf-dist/tex/context/base/spec-xtx.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/spec-yy.mkii (renamed from Master/texmf-dist/tex/context/base/spec-yy.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/strc-bkm.lua87
-rw-r--r--Master/texmf-dist/tex/context/base/strc-bkm.mkiv92
-rw-r--r--Master/texmf-dist/tex/context/base/strc-blk.lua145
-rw-r--r--Master/texmf-dist/tex/context/base/strc-blk.mkii548
-rw-r--r--Master/texmf-dist/tex/context/base/strc-blk.mkiv110
-rw-r--r--Master/texmf-dist/tex/context/base/strc-def.mkiv306
-rw-r--r--Master/texmf-dist/tex/context/base/strc-des.lua9
-rw-r--r--Master/texmf-dist/tex/context/base/strc-des.mkii (renamed from Master/texmf-dist/tex/context/base/core-des.tex)57
-rw-r--r--Master/texmf-dist/tex/context/base/strc-des.mkiv995
-rw-r--r--Master/texmf-dist/tex/context/base/strc-doc.lua603
-rw-r--r--Master/texmf-dist/tex/context/base/strc-doc.mkiv210
-rw-r--r--Master/texmf-dist/tex/context/base/strc-flt.lua9
-rw-r--r--Master/texmf-dist/tex/context/base/strc-flt.mkii (renamed from Master/texmf-dist/tex/context/base/page-flt.tex)472
-rw-r--r--Master/texmf-dist/tex/context/base/strc-flt.mkiv2129
-rw-r--r--Master/texmf-dist/tex/context/base/strc-ini.lua282
-rw-r--r--Master/texmf-dist/tex/context/base/strc-ini.mkiv88
-rw-r--r--Master/texmf-dist/tex/context/base/strc-itm.lua24
-rw-r--r--Master/texmf-dist/tex/context/base/strc-itm.mkii (renamed from Master/texmf-dist/tex/context/base/core-itm.tex)96
-rw-r--r--Master/texmf-dist/tex/context/base/strc-itm.mkiv1200
-rw-r--r--Master/texmf-dist/tex/context/base/strc-lnt.mkii (renamed from Master/texmf-dist/tex/context/base/core-lnt.tex)6
-rw-r--r--Master/texmf-dist/tex/context/base/strc-lnt.mkiv193
-rw-r--r--Master/texmf-dist/tex/context/base/strc-lst.lua413
-rw-r--r--Master/texmf-dist/tex/context/base/strc-lst.mkii (renamed from Master/texmf-dist/tex/context/base/core-lst.tex)47
-rw-r--r--Master/texmf-dist/tex/context/base/strc-lst.mkiv938
-rw-r--r--Master/texmf-dist/tex/context/base/strc-mar.lua18
-rw-r--r--Master/texmf-dist/tex/context/base/strc-mar.mkii (renamed from Master/texmf-dist/tex/context/base/core-mar.tex)142
-rw-r--r--Master/texmf-dist/tex/context/base/strc-mar.mkiv493
-rw-r--r--Master/texmf-dist/tex/context/base/strc-mat.lua51
-rw-r--r--Master/texmf-dist/tex/context/base/strc-mat.mkii (renamed from Master/texmf-dist/tex/context/base/core-mat.tex)98
-rw-r--r--Master/texmf-dist/tex/context/base/strc-mat.mkiv935
-rw-r--r--Master/texmf-dist/tex/context/base/strc-not.lua299
-rw-r--r--Master/texmf-dist/tex/context/base/strc-not.mkii (renamed from Master/texmf-dist/tex/context/base/core-not.tex)46
-rw-r--r--Master/texmf-dist/tex/context/base/strc-not.mkiv1139
-rw-r--r--Master/texmf-dist/tex/context/base/strc-num.lua477
-rw-r--r--Master/texmf-dist/tex/context/base/strc-num.mkii (renamed from Master/texmf-dist/tex/context/base/core-num.tex)25
-rw-r--r--Master/texmf-dist/tex/context/base/strc-num.mkiv471
-rw-r--r--Master/texmf-dist/tex/context/base/strc-pag.lua207
-rw-r--r--Master/texmf-dist/tex/context/base/strc-pag.mkii (renamed from Master/texmf-dist/tex/context/base/page-num.tex)51
-rw-r--r--Master/texmf-dist/tex/context/base/strc-pag.mkiv463
-rw-r--r--Master/texmf-dist/tex/context/base/strc-prc.lua9
-rw-r--r--Master/texmf-dist/tex/context/base/strc-prc.mkiv84
-rw-r--r--Master/texmf-dist/tex/context/base/strc-ref.lua874
-rw-r--r--Master/texmf-dist/tex/context/base/strc-ref.mkii (renamed from Master/texmf-dist/tex/context/base/core-ref.tex)579
-rw-r--r--Master/texmf-dist/tex/context/base/strc-ref.mkiv1701
-rw-r--r--Master/texmf-dist/tex/context/base/strc-reg.lua632
-rw-r--r--Master/texmf-dist/tex/context/base/strc-reg.mkii (renamed from Master/texmf-dist/tex/context/base/core-reg.tex)61
-rw-r--r--Master/texmf-dist/tex/context/base/strc-reg.mkiv975
-rw-r--r--Master/texmf-dist/tex/context/base/strc-ren.mkiv443
-rw-r--r--Master/texmf-dist/tex/context/base/strc-sbe.mkiv140
-rw-r--r--Master/texmf-dist/tex/context/base/strc-sec.mkii (renamed from Master/texmf-dist/tex/context/base/core-sec.tex)137
-rw-r--r--Master/texmf-dist/tex/context/base/strc-sec.mkiv702
-rw-r--r--Master/texmf-dist/tex/context/base/strc-swd.mkii (renamed from Master/texmf-dist/tex/context/base/core-swd.tex)10
-rw-r--r--Master/texmf-dist/tex/context/base/strc-syn.lua175
-rw-r--r--Master/texmf-dist/tex/context/base/strc-syn.mkii (renamed from Master/texmf-dist/tex/context/base/core-syn.tex)57
-rw-r--r--Master/texmf-dist/tex/context/base/strc-syn.mkiv400
-rw-r--r--Master/texmf-dist/tex/context/base/strc-xml.mkiv134
-rw-r--r--Master/texmf-dist/tex/context/base/supp-box.tex533
-rw-r--r--Master/texmf-dist/tex/context/base/supp-dir.mkii41
-rw-r--r--Master/texmf-dist/tex/context/base/supp-dir.mkiv (renamed from Master/texmf-dist/tex/context/base/supp-ini.tex)10
-rw-r--r--Master/texmf-dist/tex/context/base/supp-dir.tex70
-rw-r--r--Master/texmf-dist/tex/context/base/supp-emp.mkii (renamed from Master/texmf-dist/tex/context/base/supp-emp.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/supp-eps.mkii (renamed from Master/texmf-dist/tex/context/base/supp-eps.tex)2
-rw-r--r--Master/texmf-dist/tex/context/base/supp-fil.lua49
-rw-r--r--Master/texmf-dist/tex/context/base/supp-fil.mkii621
-rw-r--r--Master/texmf-dist/tex/context/base/supp-fil.mkiv595
-rw-r--r--Master/texmf-dist/tex/context/base/supp-fil.tex655
-rw-r--r--Master/texmf-dist/tex/context/base/supp-fun.tex25
-rw-r--r--Master/texmf-dist/tex/context/base/supp-lan.tex1444
-rw-r--r--Master/texmf-dist/tex/context/base/supp-mat.tex15
-rw-r--r--Master/texmf-dist/tex/context/base/supp-mis.mkii (renamed from Master/texmf-dist/tex/context/base/supp-mis.tex)3
-rw-r--r--Master/texmf-dist/tex/context/base/supp-mpe.mkii (renamed from Master/texmf-dist/tex/context/base/supp-mpe.tex)2
-rw-r--r--Master/texmf-dist/tex/context/base/supp-mps.mkii (renamed from Master/texmf-dist/tex/context/base/supp-mps.tex)44
-rw-r--r--Master/texmf-dist/tex/context/base/supp-mrk.mkii (renamed from Master/texmf-dist/tex/context/base/supp-mrk.tex)27
-rw-r--r--Master/texmf-dist/tex/context/base/supp-num.tex38
-rw-r--r--Master/texmf-dist/tex/context/base/supp-pat.mkii (renamed from Master/texmf-dist/tex/context/base/supp-pat.tex)6
-rw-r--r--Master/texmf-dist/tex/context/base/supp-pdf.mkii (renamed from Master/texmf-dist/tex/context/base/supp-pdf.tex)93
-rw-r--r--Master/texmf-dist/tex/context/base/supp-ran.lua46
-rw-r--r--Master/texmf-dist/tex/context/base/supp-ran.mkii (renamed from Master/texmf-dist/tex/context/base/supp-ran.tex)76
-rw-r--r--Master/texmf-dist/tex/context/base/supp-ran.mkiv30
-rw-r--r--Master/texmf-dist/tex/context/base/supp-spe.mkii (renamed from Master/texmf-dist/tex/context/base/supp-spe.tex)94
-rw-r--r--Master/texmf-dist/tex/context/base/supp-tpi.mkii (renamed from Master/texmf-dist/tex/context/base/supp-tpi.tex)18
-rw-r--r--Master/texmf-dist/tex/context/base/supp-vis.tex48
-rw-r--r--Master/texmf-dist/tex/context/base/symb-ini.mkii (renamed from Master/texmf-dist/tex/context/base/symb-ini.tex)57
-rw-r--r--Master/texmf-dist/tex/context/base/symb-ini.mkiv281
-rw-r--r--Master/texmf-dist/tex/context/base/symb-jmn.tex10
-rw-r--r--Master/texmf-dist/tex/context/base/symb-mis.tex7
-rw-r--r--Master/texmf-dist/tex/context/base/symb-nav.tex10
-rw-r--r--Master/texmf-dist/tex/context/base/symb-run.mkii (renamed from Master/texmf-dist/tex/context/base/symb-run.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/symb-run.mkiv54
-rw-r--r--Master/texmf-dist/tex/context/base/syst-aux.mkiv6914
-rw-r--r--Master/texmf-dist/tex/context/base/syst-cat.mkii61
-rw-r--r--Master/texmf-dist/tex/context/base/syst-cat.mkiv120
-rw-r--r--Master/texmf-dist/tex/context/base/syst-cat.tex494
-rw-r--r--Master/texmf-dist/tex/context/base/syst-chr.tex131
-rw-r--r--Master/texmf-dist/tex/context/base/syst-con.lua28
-rw-r--r--Master/texmf-dist/tex/context/base/syst-con.mkii109
-rw-r--r--Master/texmf-dist/tex/context/base/syst-con.mkiv132
-rw-r--r--Master/texmf-dist/tex/context/base/syst-con.tex144
-rw-r--r--Master/texmf-dist/tex/context/base/syst-etx.tex297
-rw-r--r--Master/texmf-dist/tex/context/base/syst-ext.mkii (renamed from Master/texmf-dist/tex/context/base/syst-ext.tex)219
-rw-r--r--Master/texmf-dist/tex/context/base/syst-fnt.mkii46
-rw-r--r--Master/texmf-dist/tex/context/base/syst-fnt.mkiv46
-rw-r--r--Master/texmf-dist/tex/context/base/syst-fnt.tex43
-rw-r--r--Master/texmf-dist/tex/context/base/syst-gen.mkii (renamed from Master/texmf-dist/tex/context/base/syst-gen.tex)480
-rw-r--r--Master/texmf-dist/tex/context/base/syst-ini.tex887
-rw-r--r--Master/texmf-dist/tex/context/base/syst-lua.lua89
-rw-r--r--Master/texmf-dist/tex/context/base/syst-lua.mkiv37
-rw-r--r--Master/texmf-dist/tex/context/base/syst-mtx.tex80
-rw-r--r--Master/texmf-dist/tex/context/base/syst-new.mkii (renamed from Master/texmf-dist/tex/context/base/syst-new.tex)76
-rw-r--r--Master/texmf-dist/tex/context/base/syst-omg.tex79
-rw-r--r--Master/texmf-dist/tex/context/base/syst-pdt.tex50
-rw-r--r--Master/texmf-dist/tex/context/base/syst-pln.tex510
-rw-r--r--Master/texmf-dist/tex/context/base/syst-prm.tex227
-rw-r--r--Master/texmf-dist/tex/context/base/syst-rtp.tex22
-rw-r--r--Master/texmf-dist/tex/context/base/syst-str.mkii7
-rw-r--r--Master/texmf-dist/tex/context/base/syst-str.mkiv15
-rw-r--r--Master/texmf-dist/tex/context/base/syst-str.tex40
-rw-r--r--Master/texmf-dist/tex/context/base/syst-tex.mkii (renamed from Master/texmf-dist/tex/context/base/syst-tex.tex)5
-rw-r--r--Master/texmf-dist/tex/context/base/syst-var.tex18
-rw-r--r--Master/texmf-dist/tex/context/base/syst-xtx.tex36
-rw-r--r--Master/texmf-dist/tex/context/base/tabl-ltb.mkii (renamed from Master/texmf-dist/tex/context/base/core-ltb.tex)18
-rw-r--r--Master/texmf-dist/tex/context/base/tabl-ltb.mkiv866
-rw-r--r--Master/texmf-dist/tex/context/base/tabl-ntb.mkii (renamed from Master/texmf-dist/tex/context/base/core-ntb.tex)59
-rw-r--r--Master/texmf-dist/tex/context/base/tabl-ntb.mkiv1570
-rw-r--r--Master/texmf-dist/tex/context/base/tabl-nte.mkii107
-rw-r--r--Master/texmf-dist/tex/context/base/tabl-nte.mkiv107
-rw-r--r--Master/texmf-dist/tex/context/base/tabl-pln.mkii91
-rw-r--r--Master/texmf-dist/tex/context/base/tabl-pln.mkiv91
-rw-r--r--Master/texmf-dist/tex/context/base/tabl-tab.mkii (renamed from Master/texmf-dist/tex/context/base/core-tab.tex)52
-rw-r--r--Master/texmf-dist/tex/context/base/tabl-tab.mkiv2515
-rw-r--r--Master/texmf-dist/tex/context/base/tabl-tbl.mkii (renamed from Master/texmf-dist/tex/context/base/core-tbl.tex)197
-rw-r--r--Master/texmf-dist/tex/context/base/tabl-tbl.mkiv1480
-rw-r--r--Master/texmf-dist/tex/context/base/tabl-tsp.mkii (renamed from Master/texmf-dist/tex/context/base/core-tsp.tex)12
-rw-r--r--Master/texmf-dist/tex/context/base/tabl-tsp.mkiv427
-rw-r--r--Master/texmf-dist/tex/context/base/task-ini.lua51
-rw-r--r--Master/texmf-dist/tex/context/base/task-ini.mkiv22
-rw-r--r--Master/texmf-dist/tex/context/base/thrd-ran.mkii (renamed from Master/texmf-dist/tex/context/base/thrd-ran.tex)4
-rw-r--r--Master/texmf-dist/tex/context/base/thrd-tab.tex50
-rw-r--r--Master/texmf-dist/tex/context/base/thrd-trg.mkii (renamed from Master/texmf-dist/tex/context/base/thrd-trg.tex)9
-rw-r--r--Master/texmf-dist/tex/context/base/todo-mkii.tex1
-rw-r--r--Master/texmf-dist/tex/context/base/todo-mkiv.tex6
-rw-r--r--Master/texmf-dist/tex/context/base/toks-ini.lua53
-rw-r--r--Master/texmf-dist/tex/context/base/toks-ini.mkiv (renamed from Master/texmf-dist/tex/context/base/toks-ini.tex)6
-rw-r--r--Master/texmf-dist/tex/context/base/trac-deb.lua (renamed from Master/texmf-dist/tex/context/base/luat-deb.lua)70
-rw-r--r--Master/texmf-dist/tex/context/base/trac-deb.mkiv (renamed from Master/texmf-dist/tex/context/base/luat-deb.tex)24
-rw-r--r--Master/texmf-dist/tex/context/base/trac-inf.lua163
-rw-r--r--Master/texmf-dist/tex/context/base/trac-lmx.lua (renamed from Master/texmf-dist/tex/context/base/luat-lmx.lua)81
-rw-r--r--Master/texmf-dist/tex/context/base/trac-lmx.mkiv (renamed from Master/texmf-dist/tex/context/base/luat-lmx.tex)10
-rw-r--r--Master/texmf-dist/tex/context/base/trac-log.lua284
-rw-r--r--Master/texmf-dist/tex/context/base/trac-tex.mkiv36
-rw-r--r--Master/texmf-dist/tex/context/base/trac-tim.lua163
-rw-r--r--Master/texmf-dist/tex/context/base/trac-tra.lua225
-rw-r--r--Master/texmf-dist/tex/context/base/trac-vis.mkii (renamed from Master/texmf-dist/tex/context/base/core-vis.tex)36
-rw-r--r--Master/texmf-dist/tex/context/base/trac-vis.mkiv709
-rw-r--r--Master/texmf-dist/tex/context/base/type-akb.tex253
-rw-r--r--Master/texmf-dist/tex/context/base/type-buy.tex44
-rw-r--r--Master/texmf-dist/tex/context/base/type-cow.tex4
-rw-r--r--Master/texmf-dist/tex/context/base/type-dis.tex241
-rw-r--r--Master/texmf-dist/tex/context/base/type-enc.tex1182
-rw-r--r--Master/texmf-dist/tex/context/base/type-exa.tex27
-rw-r--r--Master/texmf-dist/tex/context/base/type-exp.tex6
-rw-r--r--Master/texmf-dist/tex/context/base/type-ghz.tex4
-rw-r--r--Master/texmf-dist/tex/context/base/type-gyr.tex250
-rw-r--r--Master/texmf-dist/tex/context/base/type-hgz.tex322
-rw-r--r--Master/texmf-dist/tex/context/base/type-ini.mkii (renamed from Master/texmf-dist/tex/context/base/type-ini.tex)168
-rw-r--r--Master/texmf-dist/tex/context/base/type-ini.mkiv634
-rw-r--r--Master/texmf-dist/tex/context/base/type-mac.mkii220
-rw-r--r--Master/texmf-dist/tex/context/base/type-mac.mkiv220
-rw-r--r--Master/texmf-dist/tex/context/base/type-mac.tex434
-rw-r--r--Master/texmf-dist/tex/context/base/type-map.tex197
-rw-r--r--Master/texmf-dist/tex/context/base/type-msw.tex8
-rw-r--r--Master/texmf-dist/tex/context/base/type-old.tex320
-rw-r--r--Master/texmf-dist/tex/context/base/type-omg.tex204
-rw-r--r--Master/texmf-dist/tex/context/base/type-one.mkii1185
-rw-r--r--Master/texmf-dist/tex/context/base/type-one.mkiv (renamed from Master/texmf-dist/tex/context/base/sort-lan.mkiv)10
-rw-r--r--Master/texmf-dist/tex/context/base/type-one.tex1161
-rw-r--r--Master/texmf-dist/tex/context/base/type-otf.mkii535
-rw-r--r--Master/texmf-dist/tex/context/base/type-otf.mkiv502
-rw-r--r--Master/texmf-dist/tex/context/base/type-otf.tex740
-rw-r--r--Master/texmf-dist/tex/context/base/type-run.mkii (renamed from Master/texmf-dist/tex/context/base/type-run.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/type-run.mkiv51
-rw-r--r--Master/texmf-dist/tex/context/base/type-siz.mkii591
-rw-r--r--Master/texmf-dist/tex/context/base/type-siz.mkiv239
-rw-r--r--Master/texmf-dist/tex/context/base/type-siz.tex685
-rw-r--r--Master/texmf-dist/tex/context/base/type-spe.tex49
-rw-r--r--Master/texmf-dist/tex/context/base/type-syn.tex881
-rw-r--r--Master/texmf-dist/tex/context/base/type-tmf.mkii1161
-rw-r--r--Master/texmf-dist/tex/context/base/type-tmf.mkiv933
-rw-r--r--Master/texmf-dist/tex/context/base/type-tmf.tex1076
-rw-r--r--Master/texmf-dist/tex/context/base/type-win.tex120
-rw-r--r--Master/texmf-dist/tex/context/base/type-xtx.tex2
-rw-r--r--Master/texmf-dist/tex/context/base/typo-brk.lua187
-rw-r--r--Master/texmf-dist/tex/context/base/typo-brk.mkiv77
-rw-r--r--Master/texmf-dist/tex/context/base/typo-cap.lua204
-rw-r--r--Master/texmf-dist/tex/context/base/typo-cap.mkiv204
-rw-r--r--Master/texmf-dist/tex/context/base/typo-ini.mkii (renamed from Master/texmf-dist/tex/context/base/typo-ini.tex)2
-rw-r--r--Master/texmf-dist/tex/context/base/typo-ini.mkiv40
-rw-r--r--Master/texmf-dist/tex/context/base/typo-krn.lua219
-rw-r--r--Master/texmf-dist/tex/context/base/typo-krn.mkiv59
-rw-r--r--Master/texmf-dist/tex/context/base/typo-mir.lua410
-rw-r--r--Master/texmf-dist/tex/context/base/typo-mir.mkiv144
-rw-r--r--Master/texmf-dist/tex/context/base/typo-spa.lua150
-rw-r--r--Master/texmf-dist/tex/context/base/typo-spa.mkiv69
-rw-r--r--Master/texmf-dist/tex/context/base/unic-000.mkii (renamed from Master/texmf-dist/tex/context/base/unic-000.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/unic-001.mkii (renamed from Master/texmf-dist/tex/context/base/unic-001.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/unic-002.mkii (renamed from Master/texmf-dist/tex/context/base/unic-002.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/unic-003.mkii (renamed from Master/texmf-dist/tex/context/base/unic-003.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/unic-004.mkii (renamed from Master/texmf-dist/tex/context/base/unic-004.tex)2
-rw-r--r--Master/texmf-dist/tex/context/base/unic-005.mkii (renamed from Master/texmf-dist/tex/context/base/unic-005.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/unic-030.mkii (renamed from Master/texmf-dist/tex/context/base/unic-030.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/unic-031.mkii (renamed from Master/texmf-dist/tex/context/base/unic-031.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/unic-032.mkii (renamed from Master/texmf-dist/tex/context/base/unic-032.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/unic-033.mkii (renamed from Master/texmf-dist/tex/context/base/unic-033.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/unic-034.mkii (renamed from Master/texmf-dist/tex/context/base/unic-034.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/unic-035.mkii32
-rw-r--r--Master/texmf-dist/tex/context/base/unic-037.mkii (renamed from Master/texmf-dist/tex/context/base/unic-037.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/unic-039.mkii (renamed from Master/texmf-dist/tex/context/base/unic-039.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/unic-251.mkii (renamed from Master/texmf-dist/tex/context/base/unic-251.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/unic-cjk.mkii (renamed from Master/texmf-dist/tex/context/base/unic-cjk.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/unic-exp.mkii (renamed from Master/texmf-dist/tex/context/base/unic-exp.tex)4
-rw-r--r--Master/texmf-dist/tex/context/base/unic-ini.mkii109
-rw-r--r--Master/texmf-dist/tex/context/base/unic-ini.mkiv25
-rw-r--r--Master/texmf-dist/tex/context/base/unic-ini.tex785
-rw-r--r--Master/texmf-dist/tex/context/base/unic-run.mkii (renamed from Master/texmf-dist/tex/context/base/unic-run.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/verb-c.mkii (renamed from Master/texmf-dist/tex/context/base/verb-c.tex)2
-rw-r--r--Master/texmf-dist/tex/context/base/verb-eif.mkii (renamed from Master/texmf-dist/tex/context/base/verb-eif.tex)24
-rw-r--r--Master/texmf-dist/tex/context/base/verb-ini.mkii (renamed from Master/texmf-dist/tex/context/base/verb-ini.tex)16
-rw-r--r--Master/texmf-dist/tex/context/base/verb-js.mkii (renamed from Master/texmf-dist/tex/context/base/verb-js.tex)18
-rw-r--r--Master/texmf-dist/tex/context/base/verb-jv.mkii (renamed from Master/texmf-dist/tex/context/base/verb-jv.tex)50
-rw-r--r--Master/texmf-dist/tex/context/base/verb-lua.lua212
-rw-r--r--Master/texmf-dist/tex/context/base/verb-mp.mkii (renamed from Master/texmf-dist/tex/context/base/verb-mp.tex)2
-rw-r--r--Master/texmf-dist/tex/context/base/verb-pas.mkii (renamed from Master/texmf-dist/tex/context/base/verb-pas.tex)6
-rw-r--r--Master/texmf-dist/tex/context/base/verb-pl.mkii (renamed from Master/texmf-dist/tex/context/base/verb-pl.tex)58
-rw-r--r--Master/texmf-dist/tex/context/base/verb-raw.mkii (renamed from Master/texmf-dist/tex/context/base/verb-raw.tex)0
-rw-r--r--Master/texmf-dist/tex/context/base/verb-sql.mkii (renamed from Master/texmf-dist/tex/context/base/verb-sql.tex)2
-rw-r--r--Master/texmf-dist/tex/context/base/verb-tex.lua122
-rw-r--r--Master/texmf-dist/tex/context/base/verb-tex.mkii (renamed from Master/texmf-dist/tex/context/base/verb-tex.tex)6
-rw-r--r--Master/texmf-dist/tex/context/base/verb-xml.mkii (renamed from Master/texmf-dist/tex/context/base/verb-xml.tex)2
-rw-r--r--Master/texmf-dist/tex/context/base/x-calcmath.lua334
-rw-r--r--Master/texmf-dist/tex/context/base/x-calcmath.mkii24
-rw-r--r--Master/texmf-dist/tex/context/base/x-calcmath.mkiv89
-rw-r--r--Master/texmf-dist/tex/context/base/x-cals.mkiv63
-rw-r--r--Master/texmf-dist/tex/context/base/x-chemml.mkii212
-rw-r--r--Master/texmf-dist/tex/context/base/x-chemml.mkiv (renamed from Master/texmf-dist/tex/context/base/x-cml.mkiv)2
-rw-r--r--Master/texmf-dist/tex/context/base/x-chemml.tex198
-rw-r--r--Master/texmf-dist/tex/context/base/x-ct.mkiv2
-rw-r--r--Master/texmf-dist/tex/context/base/x-fo.tex10
-rw-r--r--Master/texmf-dist/tex/context/base/x-ldx.ctx4
-rw-r--r--Master/texmf-dist/tex/context/base/x-ldx.tex282
-rw-r--r--Master/texmf-dist/tex/context/base/x-mathml.lua547
-rw-r--r--Master/texmf-dist/tex/context/base/x-mathml.mkii28
-rw-r--r--Master/texmf-dist/tex/context/base/x-mathml.mkiv (renamed from Master/texmf-dist/tex/context/base/x-mmc.mkiv)1007
-rw-r--r--Master/texmf-dist/tex/context/base/x-mathml.tex16
-rw-r--r--Master/texmf-dist/tex/context/base/x-mmb.mkiv256
-rw-r--r--Master/texmf-dist/tex/context/base/x-mml.mkiv49
-rw-r--r--Master/texmf-dist/tex/context/base/x-mmp.mkiv497
-rw-r--r--Master/texmf-dist/tex/context/base/x-newcml.tex8
-rw-r--r--Master/texmf-dist/tex/context/base/x-newmme.tex4
-rw-r--r--Master/texmf-dist/tex/context/base/x-newmml.mkii2744
-rw-r--r--Master/texmf-dist/tex/context/base/x-newmml.mkiv (renamed from Master/texmf-dist/tex/context/base/sort-def.mkiv)12
-rw-r--r--Master/texmf-dist/tex/context/base/x-newmml.tex2735
-rw-r--r--Master/texmf-dist/tex/context/base/x-newmmo.tex2
-rw-r--r--Master/texmf-dist/tex/context/base/x-newpml.tex2
-rw-r--r--Master/texmf-dist/tex/context/base/x-physml.mkii16
-rw-r--r--Master/texmf-dist/tex/context/base/x-physml.mkiv16
-rw-r--r--Master/texmf-dist/tex/context/base/x-physml.tex2
-rw-r--r--Master/texmf-dist/tex/context/base/x-res-01.tex4
-rw-r--r--Master/texmf-dist/tex/context/base/x-set-01.tex4
-rw-r--r--Master/texmf-dist/tex/context/base/x-set-02.tex9
-rw-r--r--Master/texmf-dist/tex/context/base/x-set-11.mkii2
-rw-r--r--Master/texmf-dist/tex/context/base/x-set-11.mkiv4
-rw-r--r--Master/texmf-dist/tex/context/base/x-set-11.tex2
-rw-r--r--Master/texmf-dist/tex/context/base/x-set-12.tex4
-rw-r--r--Master/texmf-dist/tex/context/base/xetx-chr.mkii1167
-rw-r--r--Master/texmf-dist/tex/context/base/xetx-cls.mkii378
-rw-r--r--Master/texmf-dist/tex/context/base/xetx-ini.mkii132
-rw-r--r--Master/texmf-dist/tex/context/base/xetx-utf.mkii1989
-rw-r--r--Master/texmf-dist/tex/context/base/xtag-cml.tex2
-rw-r--r--Master/texmf-dist/tex/context/base/xtag-ent.tex2
-rw-r--r--Master/texmf-dist/tex/context/base/xtag-exp.tex77
-rw-r--r--Master/texmf-dist/tex/context/base/xtag-ext.tex44
-rw-r--r--Master/texmf-dist/tex/context/base/xtag-hyp.tex28
-rw-r--r--Master/texmf-dist/tex/context/base/xtag-ini.tex73
-rw-r--r--Master/texmf-dist/tex/context/base/xtag-map.tex8
-rw-r--r--Master/texmf-dist/tex/context/base/xtag-mmc.tex8
-rw-r--r--Master/texmf-dist/tex/context/base/xtag-mml.tex8
-rw-r--r--Master/texmf-dist/tex/context/base/xtag-mmp.tex31
-rw-r--r--Master/texmf-dist/tex/context/base/xtag-pml.tex3
-rw-r--r--Master/texmf-dist/tex/context/base/xtag-pmu.tex4
-rw-r--r--Master/texmf-dist/tex/context/base/xtag-pre.tex17
-rw-r--r--Master/texmf-dist/tex/context/base/xtag-prs.tex2
-rw-r--r--Master/texmf-dist/tex/context/base/xtag-raw.tex6
-rw-r--r--Master/texmf-dist/tex/context/base/xtag-rng.tex14
-rw-r--r--Master/texmf-dist/tex/context/base/xtag-run.tex4
-rw-r--r--Master/texmf-dist/tex/context/base/xtag-stk.tex9
-rw-r--r--Master/texmf-dist/tex/context/base/xtag-utf.tex6
-rw-r--r--Master/texmf-dist/tex/context/bib/bibl-ams.tex65
-rw-r--r--Master/texmf-dist/tex/context/bib/bibl-apa-fr.tex2
-rw-r--r--Master/texmf-dist/tex/context/bib/bibl-apa.tex188
-rw-r--r--Master/texmf-dist/tex/context/bib/t-bib.mkii5
-rw-r--r--Master/texmf-dist/tex/context/bib/t-bib.mkiv62
-rw-r--r--Master/texmf-dist/tex/context/bib/t-bib.tex363
-rw-r--r--Master/texmf-dist/tex/context/config/cont-usr.tex16
-rw-r--r--Master/texmf-dist/tex/context/interface/cont-cs.xml10239
-rw-r--r--Master/texmf-dist/tex/context/interface/cont-cz.xml10030
-rw-r--r--Master/texmf-dist/tex/context/interface/cont-de.xml19803
-rw-r--r--Master/texmf-dist/tex/context/interface/cont-en.xml19803
-rw-r--r--Master/texmf-dist/tex/context/interface/cont-fr.xml19801
-rw-r--r--Master/texmf-dist/tex/context/interface/cont-it.xml19801
-rw-r--r--Master/texmf-dist/tex/context/interface/cont-nl.xml19803
-rw-r--r--Master/texmf-dist/tex/context/interface/cont-pe.xml10239
-rw-r--r--Master/texmf-dist/tex/context/interface/cont-ro.xml19803
-rw-r--r--Master/texmf-dist/tex/context/interface/keys-cs.xml1649
-rw-r--r--Master/texmf-dist/tex/context/interface/keys-cz.xml3226
-rw-r--r--Master/texmf-dist/tex/context/interface/keys-de.xml3285
-rw-r--r--Master/texmf-dist/tex/context/interface/keys-en.xml3285
-rw-r--r--Master/texmf-dist/tex/context/interface/keys-fr.xml3284
-rw-r--r--Master/texmf-dist/tex/context/interface/keys-it.xml3285
-rw-r--r--Master/texmf-dist/tex/context/interface/keys-nl.xml3285
-rw-r--r--Master/texmf-dist/tex/context/interface/keys-pe.xml1649
-rw-r--r--Master/texmf-dist/tex/context/interface/keys-ro.xml3285
-rw-r--r--Master/texmf-dist/tex/context/interface/t-bib.xml4
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-bg.hyp8
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-bg.pat1667
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-bg.rme43
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-ca.hyp38
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-ca.pat38
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-ca.rme125
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-cs.hyp12
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-cs.pat (renamed from Master/texmf-dist/tex/context/patterns/lang-cz.pat)51
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-cs.rme85
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-cz.hyp53
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-da.hyp28
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-da.pat151
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-da.rme74
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-de.hyp42
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-de.pat19532
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-de.rme31
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-deo.hyp37
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-deo.pat19207
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-deo.rme31
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-en.hyp42
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-en.pat4966
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-es.hyp34
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-es.pat3442
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-es.rme99
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-et.hyp12
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-et.pat4364
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-et.rme108
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-eu.hyp8
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-eu.pat199
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-eu.rme45
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-fi.hyp47
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-fi.pat49
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-fi.rme78
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-fr.hyp36
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-fr.pat120
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-fr.rme106
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-gb.hyp15
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-gb.pat8534
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-gb.rme60
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-hr.hyp31
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-hr.pat33
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-hr.rme70
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-hu.hyp27
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-hu.pat29
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-hu.rme70
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-il.hyp8
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-il.pat1905
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-il.rme70
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-it.hyp40
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-it.pat67
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-it.rme88
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-la.hyp37
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-la.pat46
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-la.rme105
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-nb.hyp52
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-nb.pat27154
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-nb.rme134
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-nl.hyp38
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-nl.pat38
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-nl.rme98
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-nn.hyp52
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-nn.pat27154
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-nn.rme134
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-pl.hyp30
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-pl.pat30
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-pl.rme88
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-pt.hyp30
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-pt.pat31
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-pt.rme86
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-ro.hyp28
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-ro.pat925
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-ro.rme110
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-ru.hyp14
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-ru.pat329
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-ru.rme77
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-sk.hyp38
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-sk.pat38
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-sk.rme83
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-sl.hyp41
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-sl.pat43
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-sl.rme94
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-sv.hyp31
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-sv.pat33
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-sv.rme112
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-tr.hyp34
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-tr.pat362
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-tr.rme26
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-uk.hyp37
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-uk.pat10453
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-uk.rme70
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-us.hyp14
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-us.pat14
-rw-r--r--Master/texmf-dist/tex/context/patterns/lang-us.rme40
-rw-r--r--Master/texmf-dist/tex/context/sample/demo-cld.cld74
-rw-r--r--Master/texmf-dist/tex/context/sample/sample.tex8
-rw-r--r--Master/texmf-dist/tex/context/test/chem-str-test.tex560
-rw-r--r--Master/texmf-dist/tex/context/test/context-test.tex27
-rw-r--r--Master/texmf-dist/tex/context/test/sort-lan-test.tex38
-rw-r--r--Master/texmf-dist/tex/context/user/cont-sys.rme9
-rw-r--r--Master/texmf-dist/tex/generic/context/luatex-basics.tex21
-rw-r--r--Master/texmf-dist/tex/generic/context/luatex-fonts-merged.lua11248
-rw-r--r--Master/texmf-dist/tex/generic/context/luatex-fonts.lua140
-rw-r--r--Master/texmf-dist/tex/generic/context/luatex-fonts.tex139
-rw-r--r--Master/texmf-dist/tex/generic/context/luatex-mplib.lua469
-rw-r--r--Master/texmf-dist/tex/generic/context/luatex-mplib.tex118
-rw-r--r--Master/texmf-dist/tex/generic/context/luatex-plain.tex25
-rw-r--r--Master/texmf-dist/tex/generic/context/luatex-test.tex47
-rw-r--r--Master/texmf-dist/tex/generic/context/mptopdf.tex9
-rw-r--r--Master/texmf-dist/tex/generic/context/ppchtex.noc8
1151 files changed, 551272 insertions, 289988 deletions
diff --git a/Master/texmf-dist/tex/context/base/anch-bar.mkii b/Master/texmf-dist/tex/context/base/anch-bar.mkii
new file mode 100644
index 00000000000..d08573c0f60
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/anch-bar.mkii
@@ -0,0 +1,194 @@
+%D \module
+%D [ file=anch-bar,
+%D version=2003.03.16,
+%D title=\CONTEXT\ Anchoring Macros,
+%D subtitle=Margin Bars and alike,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA-ADE]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Anchoring Macros / Margin Bars}
+
+\unprotect
+
+%D We will implement a sidebar mechanism using the
+%D functionality from \type {core-pos}.
+%D
+%D \starttyping
+%D \definesidebar[whow][rulecolor=green,distance=]
+%D
+%D \input tufte \par
+%D \startsidebar
+%D \input tufte \par
+%D \input tufte \par
+%D \startsidebar[whow]
+%D \input tufte \par
+%D \input tufte \par
+%D \input tufte
+%D \stopsidebar \par
+%D \input tufte \par
+%D \input tufte
+%D \stopsidebar \par
+%D \input tufte \par
+%D \input tufte \par
+%D \startsidebar
+%D \input tufte \par
+%D \input tufte \par
+%D \input tufte \par
+%D \input tufte \par
+%D \input tufte
+%D \stopsidebar \par
+%D \input tufte \par
+%D \input tufte \par
+%D \startsidebar
+%D \input tufte
+%D \input tufte
+%D \input tufte
+%D \input tufte
+%D \input tufte
+%D \stopsidebar
+%D \stoptyping
+
+\newcount\currentsidebar
+\newdimen\sidebardistance
+
+\def\setupsidebars
+ {\dodoubleargument\dosetupsidebars}
+
+\def\dosetupsidebars[#1][#2]%
+ {\ifsecondargument
+ \getparameters[\??br#1][#2]%
+ \else
+ \getparameters[\??br][#1]%
+ \fi}
+
+% \setupMPvariables
+% [mpos:bar]
+% [linecolor=red,
+% linewidth=2pt,
+% distance=5pt]
+
+\setupsidebars
+ [\c!rulethickness=2pt,
+ \c!rulecolor=red,
+ \c!distance=.5\bodyfontsize]
+
+\def\definesidebar
+ {\dodoubleempty\dodefinesidebar}
+
+\def\dodefinesidebar[#1][#2]%
+ {\copyparameters
+ [\??br#1][\??br]
+ [\c!rulethickness,\c!rulecolor,\c!distance]%
+ \getparameters
+ [\??br#1][#2]}
+
+\def\startsidebar
+ {\dosingleempty\dostartsidebar}
+
+\def\dostartsidebar[#1]%
+ {\bgroup
+ \dontleavehmode
+ \checktextbackgrounds
+ \global\advance\currentsidebar\plusone
+ \doifelsenothing{#1}
+ {\advance\sidebardistance\@@brdistance}
+ {\doifelsevaluenothing{\??br#1\c!distance}
+ {\advance\sidebardistance\@@brdistance}
+ {\sidebardistance\getvalue{\??br#1\c!distance}}}%
+ \startpositionoverlay{text-1}%
+ \expanded{\setMPpositiongraphicrange
+ {b:side:\the\currentsidebar}%
+ {e:side:\the\currentsidebar}%
+ {mpos:bar}%
+ {self=side:\the\currentsidebar,
+ linewidth=\getvalue{\??br#1\c!rulethickness},
+ linecolor=\getvalue{\??br#1\c!rulecolor},
+ distance=\the\sidebardistance}}%
+ \stoppositionoverlay
+ \bpos{side:\the\currentsidebar}\ignorespaces}
+
+% \def\dostopsidebar#1%
+% {\removelastspace\tpos{side:#1}\carryoverpar\egroup}
+
+\def\stopsidebar
+ {\removelastspace\tpos{side:\the\currentsidebar}\carryoverpar\egroup}
+
+\startMPpositionmethod{mpos:bar}
+ \startMPpositiongraphic{mpos:bar}{linecolor,linewidth,distance}%
+ StartPage ;
+ path p ; p :=
+ if \MPp\MPbself=\MPp\MPeself :
+ (xpart ulcorner Field[Text][Text],\MPy\MPbself+\MPh\MPbself) --
+ (xpart llcorner Field[Text][Text],\MPy\MPeself-\MPd\MPeself) ;
+ elseif RealPageNumber=\MPp\MPbself :
+ (xpart ulcorner Field[Text][Text],\MPy\MPbself+\MPh\MPbself) --
+ (llcorner Field[Text][Text]) ;
+ elseif RealPageNumber=\MPp\MPeself :
+ (ulcorner Field[Text][Text]) --
+ (xpart llcorner Field[Text][Text],\MPy\MPeself-\MPd\MPeself) ;
+ else :
+ (ulcorner Field[Text][Text]) --
+ (llcorner Field[Text][Text]) ;
+ fi ;
+ p := p shifted (-llcorner Field[Text][Text]-(\MPvar{distance},0)) ;
+ interim linecap := butt ;
+ draw p
+ withpen pencircle scaled \MPvar{linewidth}
+ withcolor \MPvar{linecolor} ;
+ StopPage ;
+ \stopMPpositiongraphic
+ \MPpositiongraphic{mpos:bar}{}%
+\stopMPpositionmethod
+
+%D We now reimplement the margin rules handler defined in
+%D \type {core-rul}:
+%D
+%D \setupmarginrules[level=5]
+%D
+%D \startmarginrule[1]
+%D First we set the level at~5. Next we typeset this first
+%D paragraph as a level~1 one. As expected no rule show up.
+%D \stopmarginrule
+%D
+%D \startmarginrule[5]
+%D The second paragraph is a level~5 one. As we can see here,
+%D the marginal rule gets a width according to its level.
+%D \stopmarginrule
+%D
+%D \startmarginrule[8]
+%D It will of course be no surprise that this third paragraph
+%D has a even thicker margin rule. This behavior can be
+%D overruled by specifying the width explictly.
+%D \stopmarginrule
+
+\definesidebar
+ [\v!margin]
+ [\c!rulecolor=\s!black,
+ \c!rulethickness=\@@karulethickness,
+ \c!distance=\dimexpr\leftmargindistance-\@@karulethickness/2\relax]
+
+\definecomplexorsimple\startmarginrule
+
+\def\simplestartmarginrule
+ {\complexstartmarginrule[1]}
+
+\def\complexstartmarginrule[#1]%
+ {\bgroup
+ \ifnum#1<\@@kalevel\relax
+ \let\stopmarginrule\egroup
+ \else
+ \def\@@kadefaultwidth{#1}%
+ \let\stopmarginrule\dostopmarginrule
+ \@EA\startsidebar\@EA[\@EA\v!margin\@EA]%
+ \fi}
+
+\def\dostopmarginrule
+ {\stopsidebar
+ \egroup}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/anch-bar.mkiv b/Master/texmf-dist/tex/context/base/anch-bar.mkiv
new file mode 100644
index 00000000000..d08573c0f60
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/anch-bar.mkiv
@@ -0,0 +1,194 @@
+%D \module
+%D [ file=anch-bar,
+%D version=2003.03.16,
+%D title=\CONTEXT\ Anchoring Macros,
+%D subtitle=Margin Bars and alike,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA-ADE]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Anchoring Macros / Margin Bars}
+
+\unprotect
+
+%D We will implement a sidebar mechanism using the
+%D functionality from \type {core-pos}.
+%D
+%D \starttyping
+%D \definesidebar[whow][rulecolor=green,distance=]
+%D
+%D \input tufte \par
+%D \startsidebar
+%D \input tufte \par
+%D \input tufte \par
+%D \startsidebar[whow]
+%D \input tufte \par
+%D \input tufte \par
+%D \input tufte
+%D \stopsidebar \par
+%D \input tufte \par
+%D \input tufte
+%D \stopsidebar \par
+%D \input tufte \par
+%D \input tufte \par
+%D \startsidebar
+%D \input tufte \par
+%D \input tufte \par
+%D \input tufte \par
+%D \input tufte \par
+%D \input tufte
+%D \stopsidebar \par
+%D \input tufte \par
+%D \input tufte \par
+%D \startsidebar
+%D \input tufte
+%D \input tufte
+%D \input tufte
+%D \input tufte
+%D \input tufte
+%D \stopsidebar
+%D \stoptyping
+
+\newcount\currentsidebar
+\newdimen\sidebardistance
+
+\def\setupsidebars
+ {\dodoubleargument\dosetupsidebars}
+
+\def\dosetupsidebars[#1][#2]%
+ {\ifsecondargument
+ \getparameters[\??br#1][#2]%
+ \else
+ \getparameters[\??br][#1]%
+ \fi}
+
+% \setupMPvariables
+% [mpos:bar]
+% [linecolor=red,
+% linewidth=2pt,
+% distance=5pt]
+
+\setupsidebars
+ [\c!rulethickness=2pt,
+ \c!rulecolor=red,
+ \c!distance=.5\bodyfontsize]
+
+\def\definesidebar
+ {\dodoubleempty\dodefinesidebar}
+
+\def\dodefinesidebar[#1][#2]%
+ {\copyparameters
+ [\??br#1][\??br]
+ [\c!rulethickness,\c!rulecolor,\c!distance]%
+ \getparameters
+ [\??br#1][#2]}
+
+\def\startsidebar
+ {\dosingleempty\dostartsidebar}
+
+\def\dostartsidebar[#1]%
+ {\bgroup
+ \dontleavehmode
+ \checktextbackgrounds
+ \global\advance\currentsidebar\plusone
+ \doifelsenothing{#1}
+ {\advance\sidebardistance\@@brdistance}
+ {\doifelsevaluenothing{\??br#1\c!distance}
+ {\advance\sidebardistance\@@brdistance}
+ {\sidebardistance\getvalue{\??br#1\c!distance}}}%
+ \startpositionoverlay{text-1}%
+ \expanded{\setMPpositiongraphicrange
+ {b:side:\the\currentsidebar}%
+ {e:side:\the\currentsidebar}%
+ {mpos:bar}%
+ {self=side:\the\currentsidebar,
+ linewidth=\getvalue{\??br#1\c!rulethickness},
+ linecolor=\getvalue{\??br#1\c!rulecolor},
+ distance=\the\sidebardistance}}%
+ \stoppositionoverlay
+ \bpos{side:\the\currentsidebar}\ignorespaces}
+
+% \def\dostopsidebar#1%
+% {\removelastspace\tpos{side:#1}\carryoverpar\egroup}
+
+\def\stopsidebar
+ {\removelastspace\tpos{side:\the\currentsidebar}\carryoverpar\egroup}
+
+\startMPpositionmethod{mpos:bar}
+ \startMPpositiongraphic{mpos:bar}{linecolor,linewidth,distance}%
+ StartPage ;
+ path p ; p :=
+ if \MPp\MPbself=\MPp\MPeself :
+ (xpart ulcorner Field[Text][Text],\MPy\MPbself+\MPh\MPbself) --
+ (xpart llcorner Field[Text][Text],\MPy\MPeself-\MPd\MPeself) ;
+ elseif RealPageNumber=\MPp\MPbself :
+ (xpart ulcorner Field[Text][Text],\MPy\MPbself+\MPh\MPbself) --
+ (llcorner Field[Text][Text]) ;
+ elseif RealPageNumber=\MPp\MPeself :
+ (ulcorner Field[Text][Text]) --
+ (xpart llcorner Field[Text][Text],\MPy\MPeself-\MPd\MPeself) ;
+ else :
+ (ulcorner Field[Text][Text]) --
+ (llcorner Field[Text][Text]) ;
+ fi ;
+ p := p shifted (-llcorner Field[Text][Text]-(\MPvar{distance},0)) ;
+ interim linecap := butt ;
+ draw p
+ withpen pencircle scaled \MPvar{linewidth}
+ withcolor \MPvar{linecolor} ;
+ StopPage ;
+ \stopMPpositiongraphic
+ \MPpositiongraphic{mpos:bar}{}%
+\stopMPpositionmethod
+
+%D We now reimplement the margin rules handler defined in
+%D \type {core-rul}:
+%D
+%D \setupmarginrules[level=5]
+%D
+%D \startmarginrule[1]
+%D First we set the level at~5. Next we typeset this first
+%D paragraph as a level~1 one. As expected no rule show up.
+%D \stopmarginrule
+%D
+%D \startmarginrule[5]
+%D The second paragraph is a level~5 one. As we can see here,
+%D the marginal rule gets a width according to its level.
+%D \stopmarginrule
+%D
+%D \startmarginrule[8]
+%D It will of course be no surprise that this third paragraph
+%D has a even thicker margin rule. This behavior can be
+%D overruled by specifying the width explictly.
+%D \stopmarginrule
+
+\definesidebar
+ [\v!margin]
+ [\c!rulecolor=\s!black,
+ \c!rulethickness=\@@karulethickness,
+ \c!distance=\dimexpr\leftmargindistance-\@@karulethickness/2\relax]
+
+\definecomplexorsimple\startmarginrule
+
+\def\simplestartmarginrule
+ {\complexstartmarginrule[1]}
+
+\def\complexstartmarginrule[#1]%
+ {\bgroup
+ \ifnum#1<\@@kalevel\relax
+ \let\stopmarginrule\egroup
+ \else
+ \def\@@kadefaultwidth{#1}%
+ \let\stopmarginrule\dostopmarginrule
+ \@EA\startsidebar\@EA[\@EA\v!margin\@EA]%
+ \fi}
+
+\def\dostopmarginrule
+ {\stopsidebar
+ \egroup}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-pgr.tex b/Master/texmf-dist/tex/context/base/anch-pgr.mkii
index 658bd07d1a8..194f1975517 100644
--- a/Master/texmf-dist/tex/context/base/core-pgr.tex
+++ b/Master/texmf-dist/tex/context/base/anch-pgr.mkii
@@ -1,8 +1,8 @@
%D \module
-%D [ file=core-pgr, % split off core-pos
+%D [ file=anch-pgr, % split off core-pos
%D version=1999.08.01,
-%D title=\CONTEXT\ Core Macros,
-%D subtitle=Positioning Support,
+%D title=\CONTEXT\ Anchoring Macros,
+%D subtitle=Positioning Graphics,
%D author=Hans Hagen,
%D date=\currentdate,
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Positioning Grapics}
+\writestatus{loading}{ConTeXt Anchoring Macros / Grapics}
%D Before we come to graphics support, we have to make sure of
%D the reference point on the page. The next macro does so and
@@ -25,7 +25,7 @@
%D The next macros so some housekeeping.
-\def\pageanchor{page:0}
+\def\pageanchor{page:0} % for the moment only one pagesize
\def\textanchor{text:\realfolio}
\def\headanchor{head:\realfolio} % virtual position
\def\tailanchor{tail:\realfolio} % virtual position
@@ -169,8 +169,7 @@
%{\hbox to \overlaywidth{\dopositionaction{#1::\MPanchoridentifier}\hss}}}%
% but this one prevents cyclic runs due to
% rounding errors
- {\setbox\scratchbox\hbox to \overlaywidth
- {\dopositionaction{#1::\MPanchoridentifier}\hss}%
+ {\setbox\scratchbox\hbox to \overlaywidth{\dopositionaction{#1::\MPanchoridentifier}\hss}%
\ht\scratchbox\overlayheight
\dp\scratchbox\zeropoint
\box\scratchbox}}%
@@ -202,7 +201,7 @@
\newtoks\everyinsertpositionaction
\def\cleanuppositionaction#1% not in trialtypesetting
- {\ifundefined{\POSactionprefix#1++}\else
+ {\ifcsname\POSactionprefix#1++\endcsname % \ifundefined{\POSactionprefix#1++}\else
\the\everycleanpositionaction
\iflocalpositioning
\letgvalue{\POSactionprefix#1++}\empty
@@ -211,6 +210,16 @@
\fi
\fi}
+% \def\cleanuppositionaction#1% not in trialtypesetting
+% {\ifcsname\POSactionprefix#1++\endcsname
+% \the\everycleanpositionaction
+% \iflocalpositioning
+% \global\expandafter\let\csname\POSactionprefix#1++\endcsname\empty
+% \else
+% \global\expandafter\let\csname\POSactionprefix#1++\expandafter\endcsname\csname\POSactionprefix#1++\endcsname
+% \fi
+% \fi}
+
\def\handlepositionaction#1\with#2\on#3%
{\bgroup
\ifx\currentpositionoverlay\empty
@@ -232,11 +241,8 @@
{\handlepositionaction\dohandlepositionboxes\with{#1}{#2}{#3}\on{#2}}
\def\doinsertpositionboxes#1#2#3% pos tag setups
- {\ifnum\MPp{#1}=\realpageno\relax
- % \doifdefined{\MPoverlayposprefix#1}
- % {\getvalue{\MPoverlayposprefix#1}{#1}{#2}{#3}}%
- \executeifdefined{\MPoverlayposprefix#1}%
- \gobblethreearguments{#1}{#2}{#3}%
+ {\ifnum\MPp{#1}=\realpageno\relax % can be sped up
+ \executeifdefined{\MPoverlayposprefix#1}\gobblethreearguments{#1}{#2}{#3}%
\fi}
\appendtoks
@@ -267,9 +273,13 @@
\let\stopMPpositiongraphic\relax
+% \def\prepareMPpositionvariables
+% {\ifundefined{\@@meta self}\setvalue{\@@meta self}{\currentposition}\fi
+% \ifundefined{\@@meta from}\setvalue{\@@meta from}{\currentposition}\fi}
+
\def\prepareMPpositionvariables
- {\ifundefined{\@@meta self}\setvalue{\@@meta self}{\currentposition}\fi
- \ifundefined{\@@meta from}\setvalue{\@@meta from}{\currentposition}\fi}
+ {\ifcsname\@@meta self\endcsname\else\setvalue{\@@meta self}{\currentposition}\fi
+ \ifcsname\@@meta from\endcsname\else\setvalue{\@@meta from}{\currentposition}\fi}
\newif\ifcollectMPpositiongraphics \collectMPpositiongraphicstrue
@@ -551,8 +561,7 @@
\startMPpositionmethod{mpos:par} %%%%%%%%%%% will become obsolete
\edef\MPparcounter{\MPv\MPbself{1}{0}}%
\doifpositionelse\MPwself
- {\startMPpositiongraphic{mpos:par}%
- {fillcolor,filloffset,linecolor,gridcolor,linewidth,gridwidth,gridshift,lineradius}
+ {\startMPpositiongraphic{mpos:par}{fillcolor,filloffset,linecolor,gridcolor,linewidth,gridwidth,gridshift,lineradius}
initialize_area_par(\MPpos\MPbself,
\MPpos\MPeself,
\MPpos\MPwself) ;
@@ -561,8 +570,7 @@
\includeMPgraphic{\MPvar{mp}} ;
anchor_par(\MPanchor\MPbself) ;
\stopMPpositiongraphic}
- {\startMPpositiongraphic{mpos:par}%
- {fillcolor,filloffset,linecolor,gridcolor,linewidth,gridwidth,gridshift,lineradius}
+ {\startMPpositiongraphic{mpos:par}{fillcolor,filloffset,linecolor,gridcolor,linewidth,gridwidth,gridshift,lineradius}
initialize_par(\MPpos\MPbself,
\MPpos\MPeself,
\MPpos\textanchor,
@@ -594,9 +602,7 @@
\startMPpositionmethod{mpos:par:columnset}
\edef\MPparcounter{\MPv\MPbself{1}{0}}%
- \startMPpositiongraphic{mpos:par}%
- {fillcolor,filloffset,linecolor,gridcolor,%
- linewidth,gridwidth,lineradius}
+ \startMPpositiongraphic{mpos:par}{fillcolor,filloffset,linecolor,gridcolor,linewidth,gridwidth,gridshift,lineradius}
\includeMPgraphic{mpos:par:setup} ;
\includeMPgraphic{mpos:par:extra} ;
prepare_multi_pars(\MPpos\MPbself,\MPpos\MPeself,\MPpos\MPwself,
@@ -645,8 +651,7 @@
\def\initializeparbackgrounds
{\ifcase\totalnofparbackgrounds\else
- \global\positioningtrue
- \global\positioningpartrue
+ \enableparpositions
\fi}
\unexpanded\def\starttextbackground
@@ -812,13 +817,14 @@
% \endgraf % new
% \getvalue{\??td\currenttextbackground\c!after}}
+\newskip\textbackgroundskip
+
\def\dostarttextbackgroundpar
{\endgraf % new
\textbackgroundparameter\c!before
- \doassignsomeskip\textbackgroundparameter\c!topoffset\to\scratchskip
- \xdef\textbackgroundskip{\the\scratchskip}%
\noindent
\ifgridsnapping
+ \doassignsomeskip\textbackgroundparameter\c!topoffset\to\textbackgroundskip
\ifdim\textbackgroundskip>\zeropoint
\struttedbox{\hbox{\raise\textbackgroundskip\hbox{\fpos\currentparbackground}}}%
\else
@@ -830,10 +836,12 @@
\bgroup
\endgraf % we need a vertical nobreak - 29/06/2004
\nobreak \vskip-\lineheight \nobreak
- \doassignsomeskip\textbackgroundparameter\c!topoffset\to\scratchskip
- \ifgridsnapping \else \ifdim\textbackgroundskip>\zeropoint
- \kern\textbackgroundskip\nobreak
- \fi \fi
+ \ifgridsnapping \else
+ \doassignsomeskip\textbackgroundparameter\c!topoffset\to\textbackgroundskip
+ \ifdim\textbackgroundskip>\zeropoint
+ \kern\textbackgroundskip\nobreak
+ \fi
+ \fi
\dosetleftskipadaption{\textbackgroundparameter\c!leftoffset}%
\advance\leftskip\leftskipadaption
\dosetleftskipadaption{\textbackgroundparameter\c!rightoffset}%
@@ -853,19 +861,19 @@
{\par
\removelastskip % new
\dostopattributes
- \doassignsomeskip\textbackgroundparameter\c!bottomoffset\to\scratchskip
+ \doassignsomeskip\textbackgroundparameter\c!bottomoffset\to\textbackgroundskip
\ifdim\lastskip>\zeropoint
- \advance\scratchskip-\lastskip
+ \advance\textbackgroundskip-\lastskip
\fi
- \xdef\textbackgroundskip{\the\scratchskip}%
\ifgridsnapping \else \ifdim\textbackgroundskip>\zeropoint
- \kern\scratchskip\nobreak
+ \kern\textbackgroundskip\nobreak
\fi \fi
\nobreak \vskip-\lineheight \nobreak
\nowhitespace
\egroup
\bgroup \forgeteverypar % NOT REALLY NEEDED, SAVES HASH/MEM
\nobreak \noindent \strut \hfill \kern\zeropoint
+ \doassignsomeskip\textbackgroundparameter\c!bottomoffset\to\textbackgroundskip
\ifgridsnapping % experimental, pascal (todo: topoffset in same way)
\ifdim\textbackgroundskip>\zeropoint
\struttedbox{\hbox{\lower\textbackgroundskip\hbox{\tpos\currentparbackground}}}%
@@ -889,7 +897,7 @@
\def\calculatenexttextpardimensions
{\docalculatetextpardimensions\nextbtbanchor\nextetbanchor\relax}
-\def\docalculatetextpardimensions#1#2#3%
+\def\docalculatetextpardimensions#1#2#3% todo: dimexpr
{\scratchcounter\MPp#2%\etbanchor
\advance\scratchcounter-\MPp#1%\btanchor
\edef\textparpages{\the\scratchcounter}%
@@ -902,7 +910,7 @@
\scratchdimen \MPy#1%\btanchor
\advance\scratchdimen-\MPy#2%\etbanchor
\advance\scratchdimen-\MPy\textanchor
- \advance\scratchdimen \MPy\textanchor
+ \advance\scratchdimen \MPy\textanchor % - and then + ?
\advance\scratchdimen \MPh\textanchor\relax
\ifcase\scratchcounter>2 \ifnum\scratchcounter<5
% more pages
@@ -1176,7 +1184,7 @@
% \stopbuffer
% \getbuffer \typebuffer \flushstatus \page
-\newdimen\laststackvmove
+\newdimen\laststackvmove % use \scratchdimenone instead of skip
\def\stackeddown
{\bgroup
@@ -1205,7 +1213,7 @@
-\MPd\currentposition % untested
+\MPd\previousposition % untested
+\MPh\currentposition
- \relax
+ \relax\relax % second relax realy needed, forgotten while dimexpressing
% todo: also take depth into account
\ifdim\scratchskip<\scratchdimen
%\registerstatus{no \the\scratchskip}%
@@ -1251,35 +1259,37 @@
{\bgroup
\ifrepositionmarginbox
\global\advance\currentmarginpos\plusone
- \setposition{\s!margin:\number\currentmarginpos}%
+ %\setposition{\s!margin:\number\currentmarginpos}% not always
\ifcase\marginrepositionmethod
% nothing
\or
% nothing
\or
% stack / page check yet untested
+ \setposition{\s!margin:\number\currentmarginpos}%
\scratchdimen\MPy{\s!margin:\number\currentmarginpos}%
\global\advance\currentmarginpos\plusone
\advance\scratchdimen -\MPy{\s!margin:\number\currentmarginpos}%
\advance\scratchdimen -\strutdp
- % new
-% bugged
-% \setbox#1\hbox
-% {\hskip-\MPx{\s!margin:\number\currentmarginpos}%
-% \hskip\MPx{head:\realfolio}%
-% \box#1}%
+ % new but bugged
+ % \setbox#1\hbox
+ % {\hskip-\MPx{\s!margin:\number\currentmarginpos}%
+ % \hskip\MPx{head:\realfolio}%
+ % \box#1}%
% so far
\setbox#1\hbox
{\setposition{\s!margin:\number\currentmarginpos}%
\raise\scratchdimen\box#1}%
\or
% move up
+ \setposition{\s!margin:\number\currentmarginpos}%
\ifnum\MPp{p:\number\parposcounter}=\MPp{\s!margin:\number\currentmarginpos}\relax
\scratchdimen\dimexpr\MPy{p:\number\parposcounter}-\MPy{\s!margin:\number\currentmarginpos}\relax
\expanded{\setbox#1\hbox{\raise\scratchdimen\box#1}\ht#1\the\ht#1\dp#1\the\dp#1}%
\fi
\or
% move up, assume end of par
+ \setposition{\s!margin:\number\currentmarginpos}%
\ifnum\MPp{p:\number\parposcounter}=\MPp{\s!margin:\number\currentmarginpos}\relax
\getnoflines\margincontentheight
\advance\noflines\minusone
@@ -1333,7 +1343,6 @@
{\global\chardef\currentamrealpage0}}% % not found
\expanded
{\doglobal\noexpand\appendtoks
-% #1_menu_button(\currentamposition,\the\currentamrealpage,\noexpand\MPpos{#1:\currentamposition}) ;
#1_menu_button(\currentamposition,\the\currentamrealpage,\MPpos{#1:\currentamposition}) ;
\to \MPmenutoks}%
\hpos{#1:\currentamposition}{#3}}
@@ -1342,6 +1351,7 @@
\def\do@@ammenuposition#1%
{\ifnum\currentamposition>0
\dowithnextbox{\hpos{menu:#1:\realfolio}{\flushnextbox}}\hbox
+ % \hpos{menu:#1:\realfolio} % also ok if we skip over fi
\fi}
%D \macros
diff --git a/Master/texmf-dist/tex/context/base/anch-pgr.mkiv b/Master/texmf-dist/tex/context/base/anch-pgr.mkiv
new file mode 100644
index 00000000000..c558bb04fa8
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/anch-pgr.mkiv
@@ -0,0 +1,1723 @@
+%D \module
+%D [ file=anch-pgr, % split off core-pos
+%D version=1999.08.01,
+%D title=\CONTEXT\ Anchoring Macros,
+%D subtitle=Positioning Graphics,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Anchoring Macros / Grapics}
+
+%D Before we come to graphics support, we have to make sure of
+%D the reference point on the page. The next macro does so and
+%D is hooked into the page building routine.
+
+%D I will speed up this module when I have a proper torture
+%D test file.
+
+\unprotect
+
+% in the future, the depth of tail will reflect page depth
+
+\ifx\textheight\undefined \def\textheight{\vsize} \fi
+
+%D The next macros so some housekeeping.
+
+\def\pageanchor{page:0} % for the moment only one pagesize
+\def\textanchor{text:\the\realpageno}
+\def\headanchor{head:\the\realpageno} % virtual position
+\def\tailanchor{tail:\the\realpageno} % virtual position
+
+%D Anchors:
+
+\def\dopresetpositionanchors % also mkii
+ {\bgroup
+ \!!dimena\ifdim\topskip>\strutht\topskip\else\strutht\fi
+ \!!dimenb\dimexpr\MPy\textanchor+\MPh\textanchor-\!!dimena\relax
+ \!!dimenc\dimexpr\MPy\textanchor+\strutdp\relax
+ \!!dimend\MPx\textanchor
+ \!!dimene\MPw\textanchor
+ \replacepospxywhd\headanchor\realfolio\!!dimend\!!dimenb\!!dimene\!!dimena\strutdp
+ \replacepospxywhd\tailanchor\realfolio\!!dimend\!!dimenc\!!dimene\strutht \strutdp
+ \egroup}
+
+\def\presetpositionanchors% compatibility hack (still needed?)
+ {\ifpositioning
+ \dopresetpositionanchors
+ \fi}
+
+%D The first version of this module implemented head and tail
+%D anchors. Currently we stick to just one anchor and derive
+%D the head and tail anchors from this one.
+
+\def\showanchor#1%
+ {\expanded{\writestatus{#1}
+ {\MPp{#1}\string|\MPx{#1}\string|\MPy{#1}\string|%
+ \MPw{#1}\string|\MPh{#1}\string|\MPd{#1}}}}
+
+%D We set these anchors before and after each page.
+
+\appendtoks \presetpositionanchors \to \beforeeverypage
+\appendtoks \presetpositionanchors \to \aftereverypage
+
+% todo: change with each page size change
+
+\def\registerpageposition#1% this one is flushed first !
+ {\ifpositioning\ifcase\realpageno\or
+ \ifdim\printpaperheight=\paperheight\else
+ \ifdim\printpaperwidth=\paperwidth\else
+ \setbox#1\hbox{\hpos\pageanchor{\box#1}}%
+ \fi
+ \fi
+ \fi\fi}
+
+\def\placepositionanchors % todo : depth pagebox
+ {\ifpositioning
+ \setbox\scratchbox\vbox to \textheight
+ {\simpletopskipcorrection
+ \hbox{\strut\dopositionaction\headanchor}%
+ \vfill
+ \hbox{\strut\dopositionaction\tailanchor}}%
+ \dp\scratchbox\zeropoint
+ \wd\scratchbox\makeupwidth % not \zeropoint, else wrong text backgrounds
+ \hpos\textanchor{\box\scratchbox}%
+ \else
+ \vskip\textheight
+ \fi}
+
+%D \macros
+%D {positionoverlay,startpositionoverlay}
+%D
+%D As long as we're dealing with graphics it makes much sense
+%D to use the available overlay mechanism. For this purpose, we
+%D define some dedicated overlay extensions.
+%D
+%D \startbuffer[sample]
+%D \defineoverlay [sample] [\positionoverlay{sample}]
+%D
+%D \startpositionoverlay{sample}
+%D \setMPpositiongraphic{A-1}{connectcenter}{from=A-1,to=A-2}
+%D \stoppositionoverlay
+%D \stopbuffer
+%D
+%D \typebuffer[sample]
+%D
+%D \startbuffer[graphic]
+%D \startMPpositiongraphic{connectcenter}
+%D path pa, pb ; pair ca, cb ;
+%D initialize_box(\MPpos{\MPvar{from}}) ; pa := pxy ; ca := cxy ;
+%D initialize_box(\MPpos{\MPvar{to}}) ; pb := pxy ; cb := cxy ;
+%D draw pa withcolor red ;
+%D draw pb withcolor red ;
+%D draw ca -- cb withcolor blue ;
+%D anchor_box(\MPanchor{\MPvar{from}}) ;
+%D \stopMPpositiongraphic
+%D \stopbuffer
+%D
+%D We can best demonstrate this in an example, say:
+%D
+%D \startbuffer[text]
+%D \framed
+%D [backgroundachtergrond=sample,align=middle,width=7cm]
+%D {We want to connect \hpos {A-1} {this} word with its
+%D grammatical cousin \hpos {A-2} {that}.}
+%D \stopbuffer
+%D
+%D \typebuffer[text]
+%D
+%D \startlinecorrection
+%D %\getbuffer[graphic,sample,text]
+%D \stoplinecorrection
+%D
+%D The graphic is defined in the following way, using some
+%D macros defined in an auxiliary \METAPOST\ module that is
+%D preloaded.
+%D
+%D \typebuffer[graphic]
+
+\def\MPanchoridentifier{mpa} % {mp-anchor}
+\def\MPoverlayposprefix{MO::}
+
+% obsolete and wrong anyway
+%
+% \long\def\defineMPpositiongraphic#1%
+% {\long\setvalue{\MPoverlayposprefix#1}}
+
+%D The rest of the definitions concerning such overlays may
+%D look complicated,
+
+\let\currentpositionoverlay\empty
+
+%D Position actions are automatically executed when a position
+%D is set.
+
+\let\MPanchornumber\realfolio
+
+\def\positionoverlay#1% the test prevents too many redundant positions
+ {\ifpositioning % in (not used) text* position layers
+ \vbox to \overlayheight
+ {\doifpositionactionelse{#1::\MPanchoridentifier}%
+ {\edef\MPanchorid{#1::\MPanchoridentifier:\MPanchornumber}%
+ \edef\MPanchor##1{\MPpos{\MPanchorid}}%
+ \the\everyinsertpositionaction
+ \copyposition{#1::\MPanchoridentifier}{#1::\MPanchoridentifier:\MPanchornumber}%
+ \hpos
+ {#1::\MPanchoridentifier:\MPanchornumber}%
+ % this is ok
+ %{\hbox to \overlaywidth{\dopositionaction{#1::\MPanchoridentifier}\hss}}}%
+ % but this one prevents cyclic runs due to
+ % rounding errors
+ {\setbox\scratchbox\hbox to \overlaywidth{\dopositionaction{#1::\MPanchoridentifier}\hss}%
+ \ht\scratchbox\overlayheight
+ \dp\scratchbox\zeropoint
+ \box\scratchbox}}%
+ {\hbox to \overlaywidth{\hss}}%
+ \vfill}%
+ \fi}
+
+\def\startpositionoverlay#1%
+ {\iftrialtypesetting % we don't want redundant entries in the list
+ \@EA\gobbleuntil\@EA\stoppositionoverlay
+ \else
+ \def\currentpositionoverlay{#1}%
+ \fi}
+
+\def\stoppositionoverlay
+ {\let\currentpositionoverlay\empty}
+
+\def\resetpositionoverlay#1%
+ {\dosetpositionaction{#1::\MPanchoridentifier::}{}}
+
+%D Here the complication has to do with collecting actions
+%D for later execution. This collection is especially handy
+%D when we want to move actions to a specific layer.
+%D Such series of actions are stored in a macro (the one
+%D with the funny \type {++}) which is cleaned up after each
+%D invocation.
+
+\newtoks\everycleanpositionaction
+\newtoks\everyinsertpositionaction
+
+\def\cleanuppositionaction#1% not in trialtypesetting
+ {\ifcsname\POSactionprefix#1++\endcsname
+ \the\everycleanpositionaction
+ \iflocalpositioning
+ \letgvalue{\POSactionprefix#1++}\empty
+ \else
+ \setxvalue{\POSactionprefix#1++}{\getvalue{\POSactionprefix#1++}}%
+ \fi
+ \fi}
+
+% \def\cleanuppositionaction#1% not in trialtypesetting
+% {\ifcsname\POSactionprefix#1++\endcsname
+% \the\everycleanpositionaction
+% \iflocalpositioning
+% \global\expandafter\let\csname\POSactionprefix#1++\endcsname\empty
+% \else
+% \global\expandafter\let\csname\POSactionprefix#1++\expandafter\endcsname\csname\POSactionprefix#1++\endcsname
+% \fi
+% \fi}
+
+\def\handlepositionaction#1\with#2\on#3%
+ {\bgroup
+ \ifx\currentpositionoverlay\empty
+ \edef\!!stringa{#3}% no layer, just pos itself as anchor
+ \else
+ \edef\!!stringa{\currentpositionoverlay::\MPanchoridentifier}%
+ \fi
+ \edef\!!stringc{\POSactionprefix\!!stringa++}%
+ \expanded{\dosetpositionaction{\!!stringa}{\noexpand\getvalue{\!!stringc}}}%
+ \global\let#1\relax
+ \edef\!!stringb{\executeifdefined\!!stringc\empty}%
+ \setxvalue\!!stringc{\!!stringb#1#2}%
+ \egroup}
+
+%D The indirectness enables us redefine macros for special
+%D purposes, like a cleanup.
+
+\def\handlepositionboxes#1#2#3%
+ {\handlepositionaction\dohandlepositionboxes\with{#1}{#2}{#3}\on{#2}}
+
+\def\doinsertpositionboxes#1#2#3% pos tag setups
+ {\ifnum\MPp{#1}=\realpageno\relax % can be sped up
+ \executeifdefined{\MPoverlayposprefix#1}\gobblethreearguments{#1}{#2}{#3}%
+ \fi}
+
+\appendtoks
+ \let\dohandlepositionboxes\doinsertpositionboxes % was handle ?
+\to \everyinsertpositionaction
+
+\def\docleanpositionboxes#1#2#3% pos tag setups
+ {\ifnum\MPp{#1}<\realpageno \else
+ \noexpand \dohandlepositionboxes{#1}{#2}{#3}% reinsert
+ \fi}
+
+\appendtoks
+ \let\dohandlepositionboxes\docleanpositionboxes
+\to \everycleanpositionaction
+
+%D A position graphic is a normal (non||reused) \METAPOST\
+%D graphic, used immediately, with zero dimensions, so that a
+%D sequence of them does not harm.
+
+\newbox\positiongraphicbox
+
+\def\startMPpositiongraphic % id setups
+ {\dodoublegroupempty\dostartMPpositiongraphic}
+
+\long\def\dostartMPpositiongraphic#1#2#3\stopMPpositiongraphic
+ {\long\setgvalue{MPG:#1}% tag list mpcode
+ {\useMPpositiongraphic{#1}{#2}{#3}}}
+
+\let\stopMPpositiongraphic\relax
+
+\def\prepareMPpositionvariables
+ {\ifcsname\@@meta self\endcsname\else\setvalue{\@@meta self}{\currentposition}\fi
+ \ifcsname\@@meta from\endcsname\else\setvalue{\@@meta from}{\currentposition}\fi}
+
+\long\def\useMPpositiongraphic#1#2#3%
+ {\bgroup
+ \prepareMPvariables{#2}%
+ \prepareMPpositionvariables
+ \enableincludeMPgraphics
+ \startMPcode#3\stopMPcode
+ \egroup}
+
+% Now we need a adapted action handler:
+
+\def\dopositionaction#1% test saves hash entry in etex
+ {\ifcsname\POSactionprefix#1::\endcsname
+ \dodopositionaction{#1}%
+ \fi}
+
+\def\dodopositionaction#1%
+ {\ifnum\MPp{#1}>\zerocount % new
+ \bgroup
+ \setbox\scratchbox\hbox
+ \bgroup
+ \traceposstring\clap\red{<#1>}%
+ \the\everyinsertpositionaction
+ \the\everypositionaction
+ \csname\POSactionprefix#1::\endcsname
+ \cleanuppositionaction{#1}%
+ \egroup % smashed is really needed else
+ \smashedbox\scratchbox % we get problems with too big
+ \egroup % overlays (s-pre-0x.tex)
+ \else
+ % shouldn't happen too often
+ \traceposstring\clap\cyan{<#1>}%
+ \fi}
+
+\def\MPpositiongraphic
+ {\dodoublegroupempty\doMPpositiongraphic}
+
+\def\doMPpositiongraphic#1#2% tag setups
+ {\bgroup
+ \def\@@meta{#1:}%
+ \setupMPvariables[#2]%
+ \prepareMPpositionvariables
+ \MPshiftdrawingtrue
+ \def\doMPpositiongraphic##1##2%
+ {{% new, see (techniek)
+ \def\@@meta{##1:}%
+ \setupMPvariables[#2,##2]%
+ \prepareMPpositionvariables
+ % and needed
+ \getvalue{MPG:##1}}}% temp hack
+ \setbox\positiongraphicbox\hbox
+ {\ignorespaces
+ \executeifdefined{MPM:#1}{\executeifdefined{MPG:#1}\donothing}%
+ \removelastspace}%
+ \smashbox\positiongraphicbox
+ \box\positiongraphicbox
+ \egroup}
+
+\long\def\startMPpositionmethod#1#2\stopMPpositionmethod
+ {\long\setgvalue{MPM:#1}{#2}} % todo: var list here
+
+\let\stopMPpositionmethod\relax
+
+%D Simple one position graphics.
+
+\def\setMPpositiongraphic
+ {\dotriplegroupempty\dosetMPpositiongraphic}
+
+\def\dosetMPpositiongraphic#1#2#3% pos tag vars
+ {\ifx\currentpositionoverlay\empty
+ \dosetpositionaction{#1}{\MPpositiongraphic{#2}{#3}}%
+ \else % silly can be one
+ \handlepositiongraphics{#1}{#2}{#3}%
+ \fi}
+
+\def\handlepositiongraphics#1#2#3% combine with boxes
+ {\handlepositionaction\dohandleMPpositiongraphic\with{#1}{#2}{#3}\on{#2}}
+
+\def\doinsertMPpositiongraphic#1#2#3% pos tag setups
+ {\ifnum\MPp{#1}=\realpageno\relax % extra saveguard
+ \def\currentposition{#1}\MPpositiongraphic{#2}{#3}%
+ \fi}
+
+\appendtoks
+ \let\dohandleMPpositiongraphic\doinsertMPpositiongraphic
+\to \everyinsertpositionaction
+
+\def\docleanMPpositiongraphic#1#2#3% pos tag setups
+ {\ifnum\MPp{#1}<\realpageno \else
+ \noexpand \dohandleMPpositiongraphic{#1}{#2}{#3}%
+ \fi}
+
+\appendtoks
+ \let\dohandleMPpositiongraphic\docleanMPpositiongraphic
+\to \everycleanpositionaction
+
+%D Graphics that span two positions (beware, does not cross pages).
+
+\def\setMPpositiongraphicrange
+ {\doquadruplegroupempty\dosetMPpositiongraphicrange}
+
+\def\dosetMPpositiongraphicrange#1#2#3#4% bpos epos tag vars
+ {\ifx\currentpositionoverlay\empty
+ \dosetpositionaction{#1}{\MPpositiongraphic{#3}{#4}}%
+ \else
+ \handlepositiongraphicsrange{#1}{#2}{#3}{#4}%
+ \fi}
+
+\def\handlepositiongraphicsrange#1#2#3#4%
+ {\handlepositionaction\dohandleMPpositiongraphicrange\with{#1}{#2}{#3}{#4}\on{#2}}
+
+\def\doinsertMPpositiongraphicrange#1#2#3#4% pos pos tag setups
+ {\ifnum\MPp{#1}\MPp{#2}>\zerocount
+ \iflocalpositioning
+ \donetrue
+ \else
+ \donefalse
+ \ifnum\MPp{#1}=\realpageno
+ \donetrue
+ \else\ifnum\MPp{#2}=\realpageno
+ \donetrue
+ \else\ifnum\MPp{#1}<\realpageno\relax\ifnum\MPp{#2}>\realpageno
+ \donetrue
+ \fi\fi\fi\fi
+ \fi
+ \ifdone
+ \def\currentposition{#1}\MPpositiongraphic{#3}{#4}%
+ \fi
+ \fi}
+
+\appendtoks
+ \let\dohandleMPpositiongraphicrange\doinsertMPpositiongraphicrange
+\to \everyinsertpositionaction
+
+\def\docleanMPpositiongraphicrange#1#2#3#4% pos tag setups
+ {\ifnum\MPp{#2}<\realpageno \else
+ \noexpand \dohandleMPpositiongraphicrange{#1}{#2}{#3}{#4}%
+ \fi}
+
+\appendtoks
+ \let\dohandleMPpositiongraphicrange\docleanMPpositiongraphicrange
+\to \everycleanpositionaction
+
+% will be overloaded, and/or code below moved to core-box
+
+\defineoverlay[\v!text-2][\positionoverlay{\v!text-2}]
+\defineoverlay[\v!text-1][\positionoverlay{\v!text-1}]
+\defineoverlay[\v!text+1][\positionoverlay{\v!text+1}]
+\defineoverlay[\v!text+2][\positionoverlay{\v!text+2}]
+
+%D The auxiliary \METAPOST\ macros are defined by default,
+%D by saying:
+
+\startMPextensions
+ if unknown context_core : input mp-core.mp ; fi ;
+\stopMPextensions
+
+%D Some of these macros are pretty clever but too complicated
+%D to be nice. When things are kind of stable I'll clean up
+%D this mess.
+
+%D THIS NEEDS A CLEANUP
+
+\setupMPvariables
+ [mpos:box]
+ [linecolor=blue,
+ linewidth=\linewidth,
+ fillcolor=lightgray,
+ filloffset=\!!zeropoint]
+
+\startMPpositiongraphic{mpos:box}{fillcolor,linecolor,linewidth}
+ initialize_box(\MPpos{\MPvar{self}}) ;
+ boxfillcolor := \MPvar{fillcolor} ;
+ boxlinecolor := \MPvar{linecolor} ;
+ boxlinewidth := \MPvar{linewidth} ;
+ boxfilloffset := \MPvar{filloffset} ;
+ draw_box ;
+ anchor_box(\MPanchor{\MPvar{self}}) ;
+\stopMPpositiongraphic
+
+\setupMPvariables
+ [mpos:area]
+ [linecolor=blue,
+ linewidth=\linewidth,
+ fillcolor=lightgray,
+ filloffset=\!!zeropoint]
+
+\startMPpositiongraphic{mpos:area}{fillcolor,linecolor,linewidth}
+ initialize_area(\MPpos{b:\MPvar{self}},\MPpos{e:\MPvar{self}}) ;
+ boxfillcolor := \MPvar{fillcolor} ;
+ boxlinecolor := \MPvar{linecolor} ;
+ boxlinewidth := \MPvar{linewidth} ;
+ boxfilloffset := \MPvar{filloffset} ;
+ draw_area ;
+ anchor_area(\MPanchor{b:\MPvar{self}}) ;
+\stopMPpositiongraphic
+
+%D This is already cleaned up.
+
+% gridtype = 1 => baseline
+% gridtype = 2 => betweenline
+
+\setupMPvariables
+ [mpos:par]
+ [mp=mpos:par:shape,
+ gridtype=0,
+ linetype=1,
+ filltype=1,
+ dashtype=0, % 1 = dashed, 2 = dashed with background
+ %snaptops=true, % not that nice: true/false
+ gridcolor=red,
+ linecolor=blue,
+ fillcolor=lightgray,
+ filloffset=\!!zeropoint,
+ linewidth=\linewidth,
+ gridwidth=\linewidth,
+ gridshift=\!!zeropoint,
+ lineradius=.5\bodyfontsize,
+ dashtype=1]
+
+\startuseMPgraphic{mpos:par:shape}
+ \iftracepositions show_par \else draw_par \fi ;
+\stopuseMPgraphic
+
+\startuseMPgraphic{mpos:par:setup}
+ boxgridtype := \MPvar{gridtype} ;
+ boxlinetype := \MPvar{linetype} ;
+ boxfilltype := \MPvar{filltype} ;
+ boxdashtype := \MPvar{dashtype} ;
+ boxgridcolor := \MPvar{gridcolor} ;
+ boxlinecolor := \MPvar{linecolor} ;
+ boxfillcolor := \MPvar{fillcolor} ;
+ boxfilloffset := \MPvar{filloffset} ;
+ boxlinewidth := \MPvar{linewidth} ;
+ boxgridwidth := \MPvar{gridwidth} ;
+ boxgridshift := \MPvar{gridshift} ;
+ boxlineradius := \MPvar{lineradius} ;
+ %snap_multi_par_tops := \MPvar{snaptops} ;
+\stopuseMPgraphic
+
+\startuseMPgraphic{mpos:par:extra}
+ % user stuff, like:
+ % snap_multi_par_tops := false ;
+\stopuseMPgraphic
+
+\ifx\MPparcounter\undefined \newcounter\MPparcounter \fi
+
+\def\MPself {\MPvar{self}}
+\def\MPbself {b:\MPself}
+\def\MPeself {e:\MPself}
+\def\MPwself {w:\MPself}
+\def\MPparanchor{p:\MPparcounter}
+
+\def\MPl#1{\MPplus{#1}20}
+\def\MPr#1{\MPplus{#1}30}
+
+\startMPpositionmethod{mpos:par} %%%%%%%%%%% will become obsolete
+ \edef\MPparcounter{\MPv\MPbself{1}{0}}%
+ \doifpositionelse\MPwself
+ {\startMPpositiongraphic{mpos:par}{fillcolor,filloffset,linecolor,gridcolor,linewidth,gridwidth,gridshift,lineradius}
+ initialize_area_par(\MPpos\MPbself,
+ \MPpos\MPeself,
+ \MPpos\MPwself) ;
+ \includeMPgraphic{mpos:par:setup} ;
+ \includeMPgraphic{mpos:par:extra} ;
+ \includeMPgraphic{\MPvar{mp}} ;
+ anchor_par(\MPanchor\MPbself) ;
+ \stopMPpositiongraphic}
+ {\startMPpositiongraphic{mpos:par}{fillcolor,filloffset,linecolor,gridcolor,linewidth,gridwidth,gridshift,lineradius}
+ initialize_par(\MPpos\MPbself,
+ \MPpos\MPeself,
+ \MPpos\textanchor,
+ \MPpos\MPparanchor,
+ \MPvv \MPparanchor{0pt,0pt,0pt,0pt,0,0pt}) ;
+ \includeMPgraphic{mpos:par:setup} ;
+ \includeMPgraphic{mpos:par:extra} ;
+ \includeMPgraphic{\MPvar{mp}} ;
+ anchor_par(\MPanchor\MPbself) ;
+ \stopMPpositiongraphic}%
+ \MPpositiongraphic{mpos:par}{}%
+\stopMPpositionmethod
+
+%D The next alternative works in columnsets :
+
+% \iftracepositions show\else draw\fi_multi_pars ;
+
+\startuseMPgraphic{mpos:par:columnset}
+ \iftracepositions show_multi_pars \else draw_multi_pars \fi ;
+\stopuseMPgraphic
+
+\startuseMPgraphic{mpos:par:sideline}{linecolor,lineoffset}
+ for i=1 upto nofmultipars :
+ fill leftboundary multipars[i]
+ shifted (-\MPvar{lineoffset},0)
+ rightenlarged 1mm withcolor \MPvar{linecolor} ;
+ endfor ;
+\stopuseMPgraphic
+
+\startMPpositionmethod{mpos:par:columnset}
+ \edef\MPparcounter{\MPv\MPbself{1}{0}}%
+ \startMPpositiongraphic{mpos:par}{fillcolor,filloffset,linecolor,gridcolor,linewidth,gridwidth,gridshift,lineradius}
+ \includeMPgraphic{mpos:par:setup} ;
+ \includeMPgraphic{mpos:par:extra} ;
+ prepare_multi_pars(\MPpos\MPbself,\MPpos\MPeself,\MPpos\MPwself,
+ \MPpos\MPparanchor,\MPvv\MPparanchor{0pt,0pt,0pt,0pt,0,0pt}) ;
+ relocate_multipars(-\MPxy\MPanchorid) ; % inside layerpos
+ \includeMPgraphic{\MPvar{mp}} ;
+ \stopMPpositiongraphic
+ \MPpositiongraphic{mpos:par}{}%
+\stopMPpositionmethod
+
+%D \starttyping
+%D \setupbackground
+%D [test]
+%D [mp=mpos:par:columnset,
+%D method=mpos:par:columnset]
+%D \stoptyping
+
+%D We need to treat floats in a special way.
+
+\startMPinitializations
+ local_multi_par_area:=\iflocalpositioning true\else false\fi;
+\stopMPinitializations
+
+\def\textbackgroundoverlay#1%
+ {\iflocalpositioning\v!local\else\v!text\fi#1}
+
+\newcounter\localpositionnumber
+
+\def\MPanchornumber
+ {\iflocalpositioning\localpositionnumber\else\the\realpageno\fi}
+
+%D So far for the trickery.
+
+\newcount\textbackgrounddepth
+
+\ifdefined\nofparbackgrounds\else \newcount\nofparbackgrounds \fi
+
+\ifx\totalnofparbackgrounds\undefined \newcounter\totalnofparbackgrounds \fi
+
+\appendtoks
+ \expanded{\savecurrentvalue\noexpand\totalnofparbackgrounds{\number\nofparbackgrounds}}%
+\to \everybye
+
+% actually we can just ask lua to give us the nofpositions (or a least n<>0)
+
+\appendtoks
+ % a position can be mid paragraph in which case we're behind
+ \initializeparbackgrounds
+\to \everystarttext
+
+\def\initializeparbackgrounds
+ {\ifcase\totalnofparbackgrounds\else
+ \enableparpositions
+ \fi}
+
+\unexpanded\def\starttextbackground
+ {\bgroup
+ \advance\textbackgrounddepth\plusone
+ \dodoubleempty\dostarttextbackground}
+
+\let\dodostarttextbackground\relax
+\let\dodostoptextbackground \relax
+
+\def\currentparbackground{pbg:0}
+\def\nextparbackground {pbg:1}
+
+\def\btbanchor{b:\currentparbackground}
+\def\etbanchor{e:\currentparbackground}
+
+\def\nextbtbanchor{b:\nextparbackground}
+\def\nextetbanchor{e:\nextparbackground}
+
+\def\textbackgroundparameter#1%
+ {\csname\??td\currenttextbackground#1\endcsname}
+
+\let\backgroundvariable\textbackgroundparameter % will become obsolete
+
+% \definetextbackground[more][state=start,backgroundcolor=red] % location=paragraph
+% \definetextbackground[test][state=start,backgroundcolor=green]
+%
+% \page \placefigure[left]{}{}
+%
+% \starttextbackground[test]
+% \readfile{ward}{}{}
+% \starttextbackground[more]
+% \readfile{ward}{}{}
+% \stoptextbackground
+% \readfile{ward}{}{}
+% \stoptextbackground
+%
+% \page \placefigure[right]{}{}
+%
+% \starttextbackground[test]
+% \readfile{ward}{}{}
+% \starttextbackground[more]
+% \readfile{ward}{}{}
+% \stoptextbackground
+% \readfile{ward}{}{}
+% \stoptextbackground
+
+\def\dostarttextbackground[#1][#2]%
+ {\checktextbackgrounds
+ \def\currenttextbackground{#1}%
+ \global\advance\nofparbackgrounds\plusone
+ \edef\currentparbackground{pbg:\number\nofparbackgrounds}%
+ \xdef\nextparbackground{pbg:\number\numexpr\nofparbackgrounds+\plusone\relax}% still xdef ?
+ % todo : \synchonizepositionpage{b:\currentparbackground}{s:\currentparbackground}%
+ \setuptextbackground[#1][#2]%
+ \let\dodostarttextbackground\relax
+ \let\dodostoptextbackground \relax
+ \doif{\textbackgroundparameter\c!state}\v!start{\dopresettextbackground{#1}}%
+ \dodostarttextbackground}
+
+% todo \backgroundvariable\c!variant
+
+\def\dopresettextbackground#1% todo: \backgroundparameter
+ {\normalexpanded{\noexpand\processaction[\textbackgroundparameter\c!location]}
+ [ \v!text=>\let\dodostarttextbackground\dostarttextbackgroundtxt
+ \let\dodostoptextbackground \dostoptextbackgroundtxt,
+ \v!paragraph=>\let\dodostarttextbackground\dostarttextbackgroundpar
+ \let\dodostoptextbackground \dostoptextbackgroundpar,
+ \v!none=>\let\dodostarttextbackground\relax
+ \let\dodostoptextbackground \relax]%
+ \ifx\dodostarttextbackground\dostarttextbackgroundpar % untested
+ \ifnum\textbackgrounddepth>\plusone % new
+ \let\dodostarttextbackground\dostarttextbackgroundtxt
+ \let\dodostoptextbackground \dostoptextbackgroundtxt
+ \fi
+ \fi
+ \doifelse{\textbackgroundparameter\c!frame}\v!on
+ {\doifelse{\textbackgroundparameter\c!corner}\v!round
+ {\setvalue{\??td#1\c!frame}{2}}
+ {\setvalue{\??td#1\c!frame}{1}}}
+ {\setvalue{\??td#1\c!frame}{0}}%
+ \doifelse{\textbackgroundparameter\c!background}\v!color
+ {\setvalue{\??td#1\c!background}{1}}
+ {\setvalue{\??td#1\c!background}{0}}%
+ %\startpositionoverlay{\v!text\getvalue{\??td#1\c!level}}%
+ \startpositionoverlay{\textbackgroundoverlay{\textbackgroundparameter\c!level}}%
+ \expanded
+ {\setMPpositiongraphicrange % moet veel efficienter
+ {\btbanchor}% {b:\currentparbackground}%
+ {\etbanchor}% {e:\currentparbackground}%
+ {\textbackgroundparameter\c!method}%
+ {self=\currentparbackground,
+ mp=\textbackgroundparameter\c!mp,
+ gridtype=\textbackgroundparameter\c!alternative,
+ filltype=\textbackgroundparameter\c!background,
+ linetype=\textbackgroundparameter\c!frame,
+ dashtype=\textbackgroundparameter{dash}, % to be internationalized
+ gridcolor=\textbackgroundparameter\c!framecolor,
+ linecolor=\textbackgroundparameter\c!framecolor,
+ lineoffset=\textbackgroundparameter\c!frameoffset,
+ fillcolor=\textbackgroundparameter\c!backgroundcolor,
+ filloffset=\textbackgroundparameter\c!backgroundoffset,
+ gridwidth=\textbackgroundparameter\c!rulethickness,
+ gridshift=\textbackgroundparameter\c!voffset,
+ linewidth=\textbackgroundparameter\c!rulethickness,
+ lineradius=\textbackgroundparameter\c!radius}}%
+ \stoppositionoverlay}
+
+\def\stoptextbackground
+ {\dodostoptextbackground
+ \carryoverpar\egroup}
+
+\def\starttextbackgroundmanual
+ {\dostartattributes{\??td\currenttextbackground}\c!style\c!color\empty
+ \fpos\currentparbackground\ignorespaces}
+
+\def\stoptextbackgroundmanual
+ {\tpos\currentparbackground
+ \dostopattributes}
+
+\def\dostarttextbackgroundtxt
+ {\ifvmode \dontleavehmode \fi
+ \dostartattributes{\??td\currenttextbackground}\c!style\c!color\empty
+ \fpos\currentparbackground\ignorespaces}
+
+\def\dostoptextbackgroundtxt
+ {\tpos\currentparbackground
+ \dostopattributes}
+
+\newskip\textbackgroundskip
+
+\def\dostarttextbackgroundpar
+ {\endgraf % new
+ \textbackgroundparameter\c!before
+ \noindent
+ \ifgridsnapping
+ \doassignsomeskip\textbackgroundparameter\c!topoffset\to\textbackgroundskip
+ \ifdim\textbackgroundskip>\zeropoint
+ \struttedbox{\hbox{\raise\textbackgroundskip\hbox{\fpos\currentparbackground}}}%
+ \else
+ \fpos\currentparbackground
+ \fi
+ \else
+ \fpos\currentparbackground
+ \fi
+ \bgroup
+ \endgraf % we need a vertical nobreak - 29/06/2004
+ \nobreak \vskip-\lineheight \nobreak
+ \ifgridsnapping \else
+ \doassignsomeskip\textbackgroundparameter\c!topoffset\to\textbackgroundskip
+ \ifdim\textbackgroundskip>\zeropoint
+ \kern\textbackgroundskip\nobreak
+ \fi
+ \fi
+ \dosetleftskipadaption{\textbackgroundparameter\c!leftoffset}%
+ \advance\leftskip\leftskipadaption
+ \dosetleftskipadaption{\textbackgroundparameter\c!rightoffset}%
+ \advance\rightskip\leftskipadaption
+ % new
+ \dosetraggedcommand{\textbackgroundparameter\c!align}%
+ \raggedcommand
+ %
+ \dostartattributes{\??td\currenttextbackground}\c!style\c!color\empty
+ \nowhitespace
+\nobreak % new per 23/04/2006 (else potential break when whitespace)
+ \seteffectivehsize
+ \doinhibitblank % \blank[\v!disable]% new
+ \par}
+
+\def\dostoptextbackgroundpar
+ {\par
+ \removelastskip % new
+ \dostopattributes
+ \doassignsomeskip\textbackgroundparameter\c!bottomoffset\to\textbackgroundskip
+ \ifdim\lastskip>\zeropoint
+ \advance\textbackgroundskip-\lastskip
+ \fi
+ \ifgridsnapping \else \ifdim\textbackgroundskip>\zeropoint
+ \kern\textbackgroundskip\nobreak
+ \fi \fi
+ \nobreak \vskip-\lineheight \nobreak
+ \nowhitespace
+ \egroup
+\bgroup \forgeteverypar % NOT REALLY NEEDED, SAVES HASH/MEM
+ \nobreak \noindent \strut \hfill \kern\zeropoint
+ \doassignsomeskip\textbackgroundparameter\c!bottomoffset\to\textbackgroundskip
+ \ifgridsnapping % experimental, pascal (todo: topoffset in same way)
+ \ifdim\textbackgroundskip>\zeropoint
+ \struttedbox{\hbox{\lower\textbackgroundskip\hbox{\tpos\currentparbackground}}}%
+ \else
+ \tpos\currentparbackground
+ \fi
+ \else
+ \tpos\currentparbackground
+ \fi
+\egroup
+ \endgraf % new
+ \textbackgroundparameter\c!after}
+
+\let\textparpages \!!zeropoint
+\let\textparheight\!!zeropoint
+\let\textparwidth \!!zeropoint
+
+\def\calculatetextpardimensions
+ {\docalculatetextpardimensions\btbanchor\etbanchor\MPparanchor}
+
+\def\calculatenexttextpardimensions
+ {\docalculatetextpardimensions\nextbtbanchor\nextetbanchor\relax}
+
+% \def\docalculatetextpardimensions#1#2#3% #1=\btbanchor #2=\etbanchor
+% {\scratchcounter\numexpr\MPp#2-\MPp#1\relax
+% \edef\textparpages{\the\scratchcounter}%
+% \ifcase\scratchcounter
+% % one page
+% \scratchdimen\dimexpr\MPy#1-\MPy#2\relax
+% \else
+% % two or more pages
+% \ifnum\scratchcounter>2
+% \ifnum\scratchcounter<5
+% % more pages
+% \scratchdimen\textheight
+% \advance\scratchcounter \minusone
+% \multiply\scratchdimen \scratchcounter
+% \else
+% % keep'm small
+% \scratchdimen5\textheight
+% \fi
+% \else
+% \scratchdimen\dimexpr\MPy#1-\MPy#2-\MPy\textanchor+\MPy\textanchor+\MPh\textanchor\relax
+% \fi
+% \fi
+% \edef\textparheight{\the\scratchdimen}%
+% \ifcase\scratchcounter
+% % one page
+% \scratchdimen\dimexpr\MPx#2-\MPx#1\relax
+% \else
+% % two or more pages / maybe also hang
+% \ifx#3\relax
+% \scratchdimen\makeupwidth % \textwidth
+% \else
+% \scratchdimen\dimexpr\MPw\MPparanchor-\MPl\MPparanchor-\MPr\MPparanchor\relax
+% \fi
+% \fi
+% \edef\textparwidth{\the\scratchdimen}}
+
+\def\docalculatetextpardimensions#1#2#3% #1=\btbanchor #2=\etbanchor (adapted 8/6/2009)
+ {\scratchcounter\numexpr\MPp#2-\MPp#1\relax
+ \edef\textparpages
+ {\the\scratchcounter}%
+ \edef\textparheight
+ {\the\dimexpr
+ \ifcase\scratchcounter
+ % one page
+ \MPy#1-\MPy#2%
+ \else
+ % two or more pages
+ \ifnum\scratchcounter>2
+ \ifnum\scratchcounter<5
+ % more pages
+ \textheight*\numexpr\scratchcounter+\minusone
+ \else
+ % keep'm small
+ 5\textheight
+ \fi
+ \else
+ \MPy#1-\MPy#2-\MPy\textanchor+\MPy\textanchor+\MPh\textanchor
+ \fi
+ \fi}%
+ \edef\textparwidth
+ {\the\dimexpr
+ \ifcase\scratchcounter
+ % one page
+ \dimexpr\MPx#2-\MPx#1%
+ \else
+ % two or more pages / maybe also hang
+ \ifx#3\relax
+ \makeupwidth % \textwidth
+ \else
+ \MPw\MPparanchor-\MPl\MPparanchor-\MPr\MPparanchor
+ \fi
+ \fi}}
+
+\def\mintextparheight{4\lineheight}
+
+\def\dontsplitnexttextbackground % dangerous but useful
+ {\ifdim\pagetotal>\textheight \else
+ \ifdim\pagegoal=\maxdimen \else
+ \calculatenexttextpardimensions
+ % too tricky
+ % \scratchdimen=\textparheight
+ % \advance\scratchdimen\pagetotal\relax
+ % \ifdim\scratchdimen>\pagegoal
+ % \page
+ % \fi
+ \ifdim\textparheight>\zeropoint
+ \ifdim\textparheight>\mintextparheight\else
+ \page % option
+ \fi
+ \fi
+ \fi
+ \fi}
+
+\def\definetextbackground
+ {\dodoubleempty\dodefinetextbackground}
+
+\def\dodefinetextbackground[#1][#2]% parent and ..parameter
+ {\ifsecondargument % why ?
+ \copyparameters[\??td#1][\??td]
+ [\c!state,\c!location,\c!alternative,\c!mp,\c!method,
+ \c!background,\c!backgroundcolor,\c!corner,\c!level,
+ \c!backgroundoffset,\c!before,\c!after,\c!align,dash, % dash not yet internationalized
+ \c!radius,\c!frame,\c!framecolor,\c!rulethickness,\c!voffset,\c!frameoffset,
+ \c!leftoffset,\c!rightoffset,\c!topoffset,\c!bottomoffset]%
+ \getparameters[\??td#1][#2]%
+ \doifvalue{\??td#1\c!state}\v!start\checktextbackgrounds
+ \unexpanded\setvalue{#1}%
+ {\groupedcommand{\starttextbackground[#1]}{\stoptextbackground}}%
+ \setvalue{\e!start#1}{\starttextbackground[#1]}%
+ \setvalue{\e!stop #1}{\stoptextbackground}%
+ \fi}
+
+\def\setuptextbackground
+ {\dodoubleargument\dosetuptextbackground}
+
+\def\dosetuptextbackground[#1][#2]%
+ {\ifsecondargument
+ \doifelsenothing{#1}
+ {\dodosetuptextbackground{#2}\empty}
+ {\processcommalist[#1]{\dodosetuptextbackground{#2}}}%
+ \else
+ \dodosetuptextbackground{#1}\empty
+ \fi}
+
+\def\dodosetuptextbackground#1#2%
+ {\getparameters[\??td#2][#1]%
+ \def\currenttextbackground{#2}%
+ \doifvalue{\??td#2\c!state}\v!start\checktextbackgrounds}
+
+\let\currenttextbackground\empty
+
+\def\checktextbackgrounds
+ {\ifproductionrun
+ \enabletextarearegistration
+ \enablehiddenbackground
+ \fi}
+
+\setuptextbackground
+ [\c!mp=mpos:par:columnset, % buggy: mpos:par:shape
+ \c!method=mpos:par:columnset, %
+ \c!state=\v!start,
+ \c!location=\v!text,
+ \c!leftoffset=\!!zeropoint, % 1em,
+ \c!rightoffset=\textbackgroundparameter\c!leftoffset,
+ \c!topoffset=\!!zeropoint, % \v!medium,
+ \c!bottomoffset=\textbackgroundparameter\c!topoffset,
+ \c!level=-1,
+ \c!alternative=0,
+ \c!align=,
+ dash=0, % to be internationalized
+ \c!background=\v!color,
+ \c!backgroundcolor=lightgray,
+ \c!backgroundoffset=\!!zeropoint,
+ \c!corner=\v!rectangular,
+ \c!radius=.5\bodyfontsize,
+ \c!voffset=\!!zeropoint,
+ \c!frame=\v!on,
+ \c!framecolor=blue,
+ \c!rulethickness=\linewidth]
+
+%D As an example we define a grid background:
+
+\definetextbackground
+ [\v!grid]
+ [\c!state=\v!stop,
+ \c!location=\v!paragraph,
+ \c!frame=\v!off,
+ \c!framecolor=red,
+ \c!background=,
+ \c!alternative=1]
+
+\ifx\basegrid\undefined \else \letvalue\v!grid=\basegrid \fi
+
+% lelijk, aanpassen, opties
+
+\setupMPvariables
+ [mpos:connect]
+ [linecolor=red,
+ linewidth=1pt]
+
+\setupMPvariables
+ [mpos:encircle]
+ [fillcolor=lightgray,
+ filloffset=\!!zeropoint,
+ linecolor=blue,
+ linewidth=1pt]
+
+\startuseMPgraphic{mpos:common:ec}
+ path pa ; pair ca ; color lc ; numeric lw ;
+ lw := \MPvar{linewidth} ;
+ lc := \MPvar{linecolor} ;
+ initialize_box(\MPpos{\MPvar{self}}) ;
+ pa := pxy ; ca := cxy ; pa := boundingbox pa enlarged 2lw ;
+ pa := llcorner pa...lrcorner pa...urcorner pa...ulcorner pa...cycle ;
+ drawoptions (withpen pencircle scaled lw withcolor lc) ;
+\stopuseMPgraphic
+
+\startMPpositiongraphic{mpos:encircle}{linecolor,fillcolor,linewidth}
+ \includeMPgraphic{mpos:common:ec}
+ fill pa withcolor \MPvar{fillcolor} ; draw pa ;
+ anchor_box(\MPanchor{\MPvar{self}}) ;
+\stopMPpositiongraphic
+
+\startMPpositiongraphic{mpos:connect}{linecolor,linewidth}
+ path pb, pc ; pair cb, cc ;
+ \includeMPgraphic{mpos:common:ec}
+ initialize_box(\MPpos{\MPvar{to}}) ;
+ pb := pxy ; cb := cxy ; pb := boundingbox pb enlarged 2lw ;
+ pb := llcorner pb...lrcorner pb...urcorner pb...ulcorner pb...cycle ;
+ pc := ca {up} .. {down} cb ;
+ cc := (pc intersection_point pa) ;
+ if intersection_found :
+ pc := pc cutbefore cc ;
+ cc := (pc intersection_point pb) ;
+ if intersection_found :
+ pc := pc cutafter cc ;
+ drawarrow pc ; drawarrow reverse pc ;
+ fi ;
+ fi ;
+ anchor_box(\MPanchor{\MPvar{self}}) ;
+\stopMPpositiongraphic
+
+%D \macros
+%D {stackposdown, stackposup, stackposleft,stackposright}
+%D
+%D A non graphic example of the use of positioning, is to stack
+%D text in for instance the margin.
+%D
+%D \stackposdown \inleft {some text}The text \type {some text}
+%D goes into the left margin, and \stackposdown \inleft {some
+%D more}\type {some more} as well. When they overlap, they
+%D will not touch.
+%D
+%D Here we said \type {\stackposdown \inleft{some text}}. Instead
+%D of \stackposleft \inleft {one}stacking \stackposleft \inleft
+%D {two}vertically, one can stack horizontally by \stackposleft
+%D \inleft {three}using \type {\stackposleft}.
+%D
+%D We can go in all four directions, using \type {\stackposdown},
+%D \type {\stackposup}, \type {\stackposleft} and \type
+%D {\stackposright}.
+
+\def\stackposdistance{.5em}
+
+\newcount\currentautopos
+\newcount\previousautopos
+
+\def\POSstackprefix{stack:}
+
+\def\dostackposbox#1#2%
+ {\dowithnextbox
+ {#2{\previousautopos\currentautopos
+ \global\advance\currentautopos\plusone
+ \edef\currentposition {\POSstackprefix\number\currentautopos}%
+ \edef\previousposition{\POSstackprefix\number\previousautopos}%
+ \hpos\currentposition{\doifoverlappingelse\currentposition\previousposition{#1}{\flushnextbox}}}}%
+ \hbox}
+
+\def\stackposup {\dostackposbox{\raise\lineheight\flushnextbox}}
+\def\stackposdown {\dostackposbox{\lower\lineheight\flushnextbox}}
+\def\stackposleft {\dostackposbox{\copy\nextbox\hskip\nextboxwd\hskip\stackposdistance}}
+\def\stackposright{\dostackposbox{\hskip\stackposdistance\hskip\nextboxwd\flushnextbox}}
+
+%D \macros
+%D {stackeddown}
+%D
+%D However, a better implementation is possible with the
+%D following macro. We now have an extra key \type {stack} for
+%D margin settings. When set to \type {yes}, this macro comes
+%D into action.
+
+% Because there can be many stacked items in a line and successive lines, we
+% play dirty and adapt the position and height of the current node so that
+% this becomes visible to a next pass.
+%
+% \startbuffer
+% \inleft {test 1} test 1 \inleft {test 2} test 2 \endgraf
+% \inleft {test 3} test 3
+% \stopbuffer
+% \getbuffer \typebuffer \flushstatus \page
+%
+% \startbuffer
+% \inleft {test 1} test 1 \inleft {test 2} test 2 \inleft {test 3} test 3 \endgraf
+% \inleft {test 4} test 4
+% \stopbuffer
+% \getbuffer \typebuffer \flushstatus \page
+%
+% \startbuffer
+% \inleft {test 1} test 1 \endgraf
+% \inleft {test 2} test 2 \endgraf
+% \inleft {test 3} test 3
+% \stopbuffer
+% \getbuffer \typebuffer \flushstatus \page
+%
+% \startbuffer
+% \inleft {test 1\\test 1} test 1 \inleft {test 2} test 2 \endgraf
+% \inleft {test 3} test 3
+% \stopbuffer
+% \getbuffer \typebuffer \flushstatus \page
+%
+% \startbuffer
+% \inleft {test 1\\test 1\\test 1\\test 1\\test 1} test 1 \endgraf
+% test 2 \endgraf
+% \inleft {test 3} test 3
+% \stopbuffer
+% \getbuffer \typebuffer \flushstatus \page
+%
+% \startbuffer
+% \inleft{test 1} test \inleft{test 2} test \inleft{test 3\\test 3} test
+% \stopbuffer
+% \getbuffer \typebuffer \flushstatus \page
+%
+% \startbuffer
+% \inleft{test 1\\test 1\\test 1} test \inleft{test 2\\test 2} test \inleft{test 3\\test 3\\test 3} test \endgraf
+% \inleft{test 1\\test 1\\test 1} test \inleft{test 2\\test 2} test \inleft{test 3\\test 3\\test 3} test
+% \stopbuffer
+% \getbuffer \typebuffer \flushstatus \page
+
+\newdimen\laststackvmove % use \scratchdimenone instead of skip
+
+\def\stackeddown
+ {\bgroup
+ % this macro assumes a few things and is meant to work for margin notes
+ \dowithnextbox
+ {\global\advance\currentautopos\plusone
+ \global\laststackvmove\zeropoint
+ \hpos{\POSstackprefix\number\currentautopos}
+ {\edef\next
+ {\nextboxht\the\nextboxht
+ \nextboxdp\the\nextboxdp
+ \nextboxwd\the\nextboxwd}%
+ \previousautopos\currentautopos
+ \scratchdimen\zeropoint
+ \scratchcounter\zerocount
+ \doloop
+ {\advance\previousautopos\minusone
+ \edef\currentposition {\POSstackprefix\number\currentautopos}%
+ \edef\previousposition{\POSstackprefix\number\previousautopos}%
+ \ifnum\MPp\currentposition=\MPp\previousposition\relax
+ %\registerstatus{doing \number\currentautopos/\number\previousautopos}%
+ \doifoverlappingelse\currentposition\previousposition
+ {\scratchskip\dimexpr
+ \MPy\currentposition
+ -\MPy\previousposition
+ -\MPd\currentposition % untested
+ +\MPd\previousposition % untested
+ +\MPh\currentposition
+ \relax\relax % second relax realy needed, forgotten while dimexpressing
+ % todo: also take depth into account
+ \ifdim\scratchskip<\scratchdimen
+ %\registerstatus{no \the\scratchskip}%
+ \else
+ %\registerstatus{yes \the\scratchskip}%
+ \scratchdimen\scratchskip
+ \fi}%
+ \donothing % {\registerstatus{next}}%
+ \ifnum\previousautopos<\zerocount\exitloop\fi
+ \else
+ \exitloop
+ \fi}%
+ \ifdim\scratchdimen=\zeropoint \else
+ \bgroup
+ \edef\currentposition{\POSstackprefix\number\currentautopos}%
+ \scratchskip\scratchdimen
+ \advance\scratchskip\MPh\currentposition
+ \scratchdimen-\scratchdimen
+ \advance\scratchdimen\MPy\currentposition
+ %\registerstatus{old \number\currentautopos: \MPy\currentposition/\MPh\currentposition}%
+ \expanded{\replacepospxywhd
+ {\currentposition}{\MPp\currentposition}{\MPx\currentposition}{\the\scratchdimen}%
+ {\MPw\currentposition}{\the\scratchskip}{\MPd\currentposition}}%
+ %\registerstatus{new \number\currentautopos: \MPy\currentposition/\MPh\currentposition}%
+ \egroup
+ \global\laststackvmove\scratchdimen % new
+ \setbox\nextbox\iftracepositions\@EA\ruledhbox\else\@EA\hbox\fi
+ {\lower\scratchdimen\flushnextbox}%
+ \next
+ %\registerstatus{\strut}%
+ \fi
+ \flushnextbox}%
+ \egroup}}
+
+%D The next hack make sure that margin texts near faulty
+%D strutted lines are handled ok.
+
+\newif\ifrepositionmarginbox \repositionmarginboxtrue
+
+\newcount\currentmarginpos
+
+\def\dopositionmarginbox#1%
+ {\bgroup
+ \ifrepositionmarginbox
+ \global\advance\currentmarginpos\plusone
+ %\setposition{\s!margin:\number\currentmarginpos}% not always
+ \ifcase\marginrepositionmethod
+ % nothing
+ \or
+ % nothing
+ \or
+ % stack / page check yet untested
+ \setposition{\s!margin:\number\currentmarginpos}%
+ \scratchdimen\MPy{\s!margin:\number\currentmarginpos}%
+ \global\advance\currentmarginpos\plusone
+ \advance\scratchdimen -\MPy{\s!margin:\number\currentmarginpos}%
+ \advance\scratchdimen -\strutdp
+ % new but bugged
+ % \setbox#1\hbox
+ % {\hskip-\MPx{\s!margin:\number\currentmarginpos}%
+ % \hskip\MPx{head:\the\realpageno}%
+ % \box#1}%
+ % so far
+ \setbox#1\hbox
+ {\setposition{\s!margin:\number\currentmarginpos}%
+ \raise\scratchdimen\box#1}%
+ \or
+ % move up
+ \setposition{\s!margin:\number\currentmarginpos}%
+ \ifnum\MPp{p:\number\parposcounter}=\MPp{\s!margin:\number\currentmarginpos}\relax
+ \scratchdimen\dimexpr\MPy{p:\number\parposcounter}-\MPy{\s!margin:\number\currentmarginpos}\relax
+ \expanded{\setbox#1\hbox{\raise\scratchdimen\box#1}\ht#1\the\ht#1\dp#1\the\dp#1}%
+ \fi
+ \or
+ % move up, assume end of par
+ \setposition{\s!margin:\number\currentmarginpos}%
+ \ifnum\MPp{p:\number\parposcounter}=\MPp{\s!margin:\number\currentmarginpos}\relax
+ \getnoflines\margincontentheight
+ \advance\noflines\minusone
+ \scratchdimen\noflines\lineheight
+ \else
+ \scratchdimen\dimexpr\MPy{p:\number\parposcounter}-\MPy{\s!margin:\number\currentmarginpos}\relax
+ \fi
+ \expanded{\setbox#1\hbox{\raise\scratchdimen\box#1}\ht#1\the\ht#1\dp#1\the\dp#1}%
+ \fi
+ \dp#1\zeropoint
+ \ht#1\zeropoint
+ \fi
+ \graphicvadjust{\dontleavehmode\box#1}% dontleavehmode is needed to get direction right
+ \egroup}
+
+\chardef\marginrepositionmethod\plusone % sidemethod
+\chardef\margincontentmethod \plusthree % textmethod % beware: 1 = old method
+\chardef\marginpagecheckmethod \plusone % splitmethod
+
+%D For a right menu, a sequence of calls to \type
+%D {right_menu_button} is generated.
+%D
+%D \starttyping
+%D right_menu_button (n, p, s=0/1/2, x, y, w, h, d) ;
+%D \stoptyping
+%D
+%D Here, n is the number of the button, s a status variable,
+%D while the rest is positional info. The status variable is
+%D 0, 1 or~2: not found, found and found but current page.
+
+% 0=not found 1=found 2=current page
+
+% geen leeg
+
+\newtoks\MPmenutoks
+
+\def\MPmenubuttons#1{\the\MPmenutoks}
+
+\appendtoks \global\MPmenutoks\emptytoks \to \everyshipout
+
+% 0=notfound 1=found 2=currentpage
+
+\def\domenuitemposition#1#2#3%
+ {\doifelsevalue{\??am#1\c!position}\v!yes
+ {\doglobal\increment\currentamposition
+ \doifreferencefoundelse{#2}% 0=not found, 1=same page, >1=elsewhere
+ {\chardef\currentamrealpage\ifnum\currentreferencerealpage=\realpageno\plusone\else\plustwo\fi}%
+ {\chardef\currentamrealpage\plustwo}%
+ \expanded
+ {\doglobal\noexpand\appendtoks
+ #1_menu_button(\number\currentamposition,\the\currentamrealpage,\MPpos{#1:\currentamposition}) ;
+ \to \MPmenutoks}%
+ \hpos{#1:\currentamposition}{#3}}
+ {#3}}
+
+\def\dowholemenuposition#1%
+ {\ifnum\currentamposition>0
+ \dowithnextbox{\hpos{menu:#1:\the\realpageno}{\flushnextbox}}\hbox
+ \fi}
+
+%D \macros
+%D {GFC, GTC, GSC}
+%D
+%D The next macros extend tables and tabulation with
+%D backgrounds and position related features. Areas are
+%D specified with symbolic names, and symbolic references to
+%D the graphics involved. Each table has its own namespace.
+
+\newconditional\tablehaspositions
+\newcount\noftabpositions
+\newtoks \posXCtoks
+
+\def\dotablebpos{\bpos}
+\def\dotableepos{\epos}
+
+\def\tbPOSprefix
+ {tbp:\number\noftabpositions:}
+
+% \def\tableposindeed
+% {\scratchtoks\posXCtoks
+% \global\posXCtoks\emptytoks
+% \the\scratchtoks}
+
+\def\tablepos
+ {\normalexpanded{\global\posXCtoks\emptytoks\the\posXCtoks}}
+
+\let\tabulatepos\tablepos
+
+\def\dodododoGSC[#1:#2]%
+ {\remappositionframed{#2}{\tbPOSprefix#1}%
+ \dotablebpos{\tbPOSprefix#1}%
+ \doglobal\appendtoks\@EA\dotableepos\@EA{\tbPOSprefix#1}\to\posXCtoks}
+
+\def\dododoGSC[#1:#2:#3]%
+ {\doglobal\appendtoks\dodododoGSC[#1:#2]\to\posXCtoks\NC}
+
+\def\dodoGSC[#1]%
+ {\def\docommand##1{\dododoGSC[##1:##1]}%
+ \processcommalist[#1]\docommand}
+
+\def\dodododoGFC[#1:#2:#3]%
+ {\remappositionframed{#2}{\tbPOSprefix#1}%
+ \dotablebpos{\tbPOSprefix#1}}
+
+\def\dododoGFC[#1]%
+ {\def\docommand##1{\dodododoGFC[##1:##1]}%
+ \processcommalist[#1]\docommand}
+
+\def\dodoGFC[#1]%
+ {\doglobal\appendtoks\dododoGFC[#1]\to\posXCtoks\NC}
+
+\def\dododododoGTC[#1:#2]%
+ {\dotableepos{\tbPOSprefix#1}}
+
+\def\dodododoGTC[#1]%
+ {\def\docommand##1{\dododododoGTC[##1:##1]}%
+ \processcommalist[#1]\docommand}
+
+\def\dododoGTC[#1]%
+ {\doglobal\appendtoks\dodododoGTC[#1]\to\posXCtoks}
+
+\def\dodoGTC[#1]%
+ {\doglobal\appendtoks\dododoGTC[#1]\to\posXCtoks\NC}
+
+\def\dodododoXC[#1#2]%
+ {\if#1>\dodoGFC [#2:#2]\else
+ \if#1+\dodoGFC [#2:#2]\else
+ \if#1<\dodoGTC [#2:#2]\else
+ \if#1-\dodoGTC [#2:#2]\else
+ \if#1=\dodoGSC [#2:#2]\else
+ \dodoGSC[#1#2:#1#2]\fi\fi\fi\fi\fi}
+
+\def\dododoXC#1%
+ {\dodododoXC[#1]}
+
+\def\dodoXC[#1]%
+ {{\let\NC\relax\processcommalist[#1]\dododoXC}}
+
+\def\@@checktablepositionstate
+ {\iftrialtypesetting
+ \global\settrue\tablehaspositions
+ \firstargumentfalse
+ \fi}
+
+\def\doGSC[#1]{\@@checktablepositionstate\iffirstargument\dodoGSC[#1]\else\expandafter\NC\fi}
+\def\doGFC[#1]{\@@checktablepositionstate\iffirstargument\dodoGFC[#1]\else\expandafter\NC\fi}
+\def\doGTC[#1]{\@@checktablepositionstate\iffirstargument\dodoGTC[#1]\else\expandafter\NC\fi}
+\def\doXC [#1]{\@@checktablepositionstate\iffirstargument\dodoXC [#1]\else\expandafter\fi\NC}
+
+\def\tbGSC{\dosingleempty\doGSC}
+\def\tbGFC{\dosingleempty\doGFC}
+\def\tbGTC{\dosingleempty\doGTC}
+\def\tbXC {\dosingleempty\doXC }
+
+%D The amount of code to support tables and tabulation is
+%D rather minimalistic.
+
+\let\tabulatepos\tablepos
+
+\def\tabulatenormalpos
+ {\iftrialtypesetting
+ % nothing
+ \else\ifconditional\tablehaspositions
+ \hss\tabulatepos\hss
+ \else
+ % nothing
+ \fi\fi}
+
+\def\tabulateequalpos
+ {\iftrialtypesetting
+ \tabulateEQ
+ \else\ifconditional\tablehaspositions
+ \tabulateEQpos
+ \else
+ \tabulateEQ
+ \fi\fi}
+
+\def\tabulateEQpos
+ {\setbox\scratchbox\hbox{\tabulateEQ}%
+ \hbox to \wd\scratchbox{\hss\kern\zeropoint\tabulatepos\hss}%
+ \hskip-\wd\scratchbox
+ \box\scratchbox}
+
+\def\tabulatenormalcolumn#1% overloaded later in node-bck
+ {&\iftabulateequal\tabulateequalpos\else\tabulatenormalpos\fi
+ &\global\chardef\tabulatetype#1&}
+
+\def\tabulateequalcolumn#1% overloaded
+ {&\tabulateequalpos
+ &\global\chardef\tabulatetype#1&}
+
+\appendtoks
+ \global\advance\noftabpositions\plusone
+ \global\setfalse\tablehaspositions
+\to \everytabulate
+
+% We need to handle paragraphs as well.
+
+\let\doflushtabulateepos\relax
+
+\def\dotabulatebpos
+ {\bpos}
+
+\def\dotabulateepos#1%
+ {\ifvoid\tablebox\tabulatecolumn
+ \epos{#1}%
+ \glet\doflushtabulateepos\relax
+ \else
+ \gdef\doflushtabulateepos{\epos{#1}}%
+ \fi}
+
+\def\splitofftabulatebox % overloaded in node-bck
+ {\dontcomplain
+ \global\setbox\tabulatebox % % % global ? % % %
+ \vsplit\tablebox\tabulatecolumn to \lineheight
+ \setbox\tabulatebox\normalvbox
+ {\unvbox\tabulatebox}%
+ \setbox\tabulatebox\hbox to \wd\tabulatebox
+ {\hss\dotabulatehook{\box\tabulatebox}\hss}%
+ \ht\tabulatebox\strutht
+ \dp\tabulatebox\strutdp
+ \box\tabulatebox
+ \iftrialtypesetting\else\ifconditional\tablehaspositions\doflushtabulateepos\fi\fi}
+
+\appendtoks
+ \let\dotablebpos\dotabulatebpos
+ \let\dotableepos\dotabulateepos
+ \glet\doflushtabulateepos\relax
+\to \everytabulate
+
+%D In order to prevent potential clashes with abbreviations,
+%D postpone the mapping.
+
+\appendtoks
+ \let\GSC\tbGSC \let\GFC\tbGFC \let\GTC\tbGTC \let\XC\tbXC
+\to \everytabulate
+
+%D \macros
+%D {definepositionframed}
+%D
+%D The next example show how to provide backgrounds to table
+%D cells. First we define some framed backgrounds.
+%D
+%D \startbuffer
+%D \definepositionframed[x][background=color,backgroundcolor=red]
+%D \definepositionframed[y][background=color,backgroundcolor=green]
+%D \definepositionframed[z][background=color,backgroundcolor=blue]
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D % \getbuffer
+%D
+%D \startbuffer
+%D \starttabulate[|c|c|c|]
+%D \GFC[f:x] this is a small \NC table \NC in which we \NC \FR
+%D \NC will demonstrate \GFC[g:z] that this \GTC[g] positioning \NC \MR
+%D \GSC[e:y] mechanism also \GTC[f] works quite well \NC in tables \NC \LR
+%D \stoptabulate
+%D \stopbuffer
+%D
+%D The table itself defines three areas (a, b and~c) using
+%D these frames.
+%D
+%D \typebuffer
+%D % \getbuffer
+%D
+%D Tables (based on \TABLE) are supported by:
+
+\def\normalTABLEsimplebar {\unskip\!ttRightGlue&\tablepos&} % |
+\def\normalTABLEcomplexbar{\unskip\!ttRightGlue&\omit\tablepos\!ttAlternateVrule} % \|
+\def\normalTABLEquote {\unskip\!ttRightGlue&\omit\tablepos&} % "
+
+\appendtoks
+ \global\advance\noftabpositions\plusone
+ \global\setfalse\tablehaspositions
+\to \everytable
+
+%D Since we don't want nameclashes:
+
+\appendtoks
+ \let\GSC\tbGSC \let\GFC\tbGFC \let\GTC\tbGTC \let\XC\tbXC
+\to \everytable
+
+%D In the previous example, we could have provided an overlay to
+%D the framed definition. A more direct approach is demonstrated
+%D below:
+%D
+%D \startbuffer
+%D \def\cw#1{\color[white]{#1}}
+%D
+%D \startMPpositiongraphic{tableshade}
+%D initialize_area(\MPpos{\MPvar{from}},\MPpos{\MPvar{to}}) ;
+%D color c ; c := \MPvar{color} ;
+%D linear_shade(pxy,0,.4c,.9c) ;
+%D anchor_area(\MPanchor{\MPvar{from}}) ;
+%D \stopMPpositiongraphic
+%D
+%D \setMPpositiongraphic{b:x}{tableshade}{from=b:x,to=e:x,color=red}
+%D \setMPpositiongraphic{b:y}{tableshade}{from=b:y,to=e:y,color=green}
+%D \setMPpositiongraphic{b:z}{tableshade}{from=b:z,to=e:z,color=blue}
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+%D
+%D The definition of the table looks about the same as the
+%D previous one:
+%D
+%D \startbuffer
+%D \starttable[|c|c|c|]
+%D \GFC[b:z] \cw{this is a small} \NC \cw{table} \NC in which we \NC \FR
+%D \NC \cw{will demonstrate} \GFC[c:y] \cw{that this} \GTC[c] \cw{positioning} \NC \MR
+%D \GSC[a:x] \cw{mechanism also} \GTC[b] \cw{works quite well} \NC in tables \NC \LR
+%D \stoptable
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D \getbuffer
+
+% \definepositionframed[w][background=color,backgroundcolor=yellow]
+% \definepositionframed[x][background=color,backgroundcolor=red]
+% \definepositionframed[y][background=color,backgroundcolor=green]
+% \definepositionframed[z][background=color,backgroundcolor=blue]
+%
+% \starttabulate[|c|c|c|]
+% \NC this is a small \NC table \NC in which we \NC \FR
+% \NC will demonstrate \NC that this \NC positioning \NC \MR
+% \NC mechanism also \NC works quite well \NC in tables \NC \LR
+% \stoptabulate
+%
+% \starttabulate[|c|c|c|]
+% \GFC[f:x] this is a small \GTC table \NC in which we \NC \FR
+% \NC will demonstrate \GFC[g:z] that this \GTC[g] positioning \NC \MR
+% \GSC[e:y] mechanism also \GTC[f] works quite well \NC in tables \NC \LR
+% \stoptabulate
+%
+% \starttabulate[|c|c|c|]
+% \GFC[f:x,d:w] this is a small \GTC[d] table \NC in which we \NC \FR
+% \NC will demonstrate \GFC[g:z] that this \GTC[g] positioning \NC \MR
+% \GSC[e:y] mechanism also \GTC[f] works quite well \NC in tables \NC \LR
+% \stoptabulate
+%
+% \starttabulate[|c|c|c|]
+% \XC[+f:x] this is a small \XC table \NC in which we \NC \FR
+% \NC will demonstrate \XC[+g:z] that this \XC[-g] positioning \NC \MR
+% \XC[=e:y] mechanism also \XC[-f] works quite well \NC in tables \NC \LR
+% \stoptabulate
+%
+% \starttabulate[|c|c|c|]
+% \XC[+f:x,+d:w] this is a small \XC[-d] table \NC in which we \NC \FR
+% \NC will demonstrate \XC[+g:z] that this \XC[-g] positioning \NC \MR
+% \XC[=e:y] mechanism also \XC[-f] works quite well \NC in tables \NC \LR
+% \stoptabulate
+
+% evt [b:x]
+%
+% \definepositionframed[x][background=color,fillcolor=red]
+% \definepositionframed[y][background=color,fillcolor=green]
+% \definepositionframed[z][background=color,fillcolor=blue]
+
+\def\remappositionframed#1#2% from to
+ {\copyposition{b:#1}{b:#2}%
+ \copyposition{e:#1}{e:#2}%
+ \dosetpositionaction{b:#2}{\dopositionaction{b:#1}}}
+
+\def\definepositionframed
+ {\dodoubleargument\dodefinepositionframed}
+
+\def\dodefinepositionframed[#1][#2]%
+ {\dosetpositionaction{b:#1}{\dopositionframed[#1][#2]}}
+
+\def\positionframed
+ {\dodoubleempty\dopositionframed}
+
+\def\dopositionframed[#1][#2]%
+ {\bgroup
+ \setbox\scratchbox\hbox
+ {\dimen0=\MPx{e:#1}%
+ \advance\dimen0 -\MPx{b:#1}%
+ \dimen2=\MPy{b:#1}%
+ \advance\dimen2 -\MPy{e:#1}%
+ \advance\dimen2 \MPd{e:#1}%
+ \lower\dimen2\hbox
+ {\advance\dimen2 \MPh{b:#1}%
+ \framed
+ [\c!width=\dimen0,\c!height=\dimen2,
+ \c!offset=\v!overlay,#2]{}}}%
+ \smashedbox\scratchbox
+ \egroup}
+
+% \def\sethdistances#1%
+% {\hbox{\lpos{ml:#1}\hpos{mh:#1}{\strut}\rpos{mr:#1}}}
+%
+% \def\gethdistances#1%
+% {\scratchdimen\MPx{mh:#1}%
+% \advance\scratchdimen -\MPx{ml#1}%
+% \edef\lefthdistance{\the\scratchdimen}%
+% \scratchdimen\MPx{mr:#1}%
+% \advance\scratchdimen -\MPx{mh:#1}%
+% \edef\righthdistance{\the\scratchdimen}}
+
+\protect \endinput
+
+% todo 1: shift down option
+
+% \startuseMPgraphic{mpos:par:columnset}
+% \iftracepositions show_multi_pars \else draw_multi_pars \fi ;
+% path p ; p := boundingbox currentpicture ;
+% currentpicture := currentpicture shifted (0,-StrutDepth/2) ;
+% setbounds currentpicture to p ;
+% \stopuseMPgraphic
+
+\definetextbackground[underline] [location=text,alternative=1,background=,frame=off]
+\definetextbackground[overstrike] [location=text,alternative=2,background=,frame=off]
+\definetextbackground[exlines] [location=text,alternative=3,background=,frame=off]
+\definetextbackground[strikethrough][location=text,alternative=4,background=,frame=off]
+
+\definestartstop [underline]
+ [before={\starttextbackground[underline]},
+ after=\stoptextbackground]
+
+\definestartstop
+ [overstrike]
+ [before={\starttextbackground[overstrike]},
+ after=\stoptextbackground]
+
+\definestartstop
+ [exlines]
+ [before={\starttextbackground[exlines]},
+ after=\stoptextbackground]
+
+\definestartstop
+ [strikethrough]
+ [before={\starttextbackground[strikethrough]},
+ after=\stoptextbackground]
+
+\definetextbackground
+ [sideline]
+ [mp=mpos:par:sideline,
+ location=paragraph,
+ framecolor=red,
+ frameoffset=5mm]
+
+\definestartstop [sideline]
+ [before={\starttextbackground[sideline]},
+ after=\stoptextbackground]
+
+\starttext
+ \startunderline \input tufte \stopunderline \blank
+ \startoverstrike \input tufte \stopoverstrike \blank
+ \startexlines \input tufte \stopexlines \blank
+ \startstrikethrough \input tufte \stopstrikethrough \blank
+ \startsideline \input tufte \stopsideline \blank
+\stoptext
diff --git a/Master/texmf-dist/tex/context/base/anch-pos.lua b/Master/texmf-dist/tex/context/base/anch-pos.lua
new file mode 100644
index 00000000000..b16fac05c9c
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/anch-pos.lua
@@ -0,0 +1,139 @@
+if not modules then modules = { } end modules ['anch-pos'] = {
+ version = 1.001,
+ comment = "companion to anch-pos.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+--[[ldx--
+<p>We save positional information in the main utility table. Not only
+can we store much more information in <l n='lua'/> but it's also
+more efficient.</p>
+--ldx]]--
+
+local texprint, concat, format = tex.print, table.concat, string.format
+
+jobpositions = jobpositions or { }
+jobpositions.collected = jobpositions.collected or { }
+jobpositions.tobesaved = jobpositions.tobesaved or { }
+
+-- these are global since they are used often at the tex end
+
+-- \the\dimexpr #2\ifnum\positionanchormode=\plusone-\MPx\pageanchor\fi\relax
+-- \the\dimexpr #3\ifnum\positionanchormode=\plusone-\MPy\pageanchor\fi\relax
+
+ptbs, pcol = jobpositions.tobesaved, jobpositions.collected -- global
+
+local dx, dy = "0pt", "0pt"
+
+local function initializer()
+ ptbs, pcol = jobpositions.tobesaved, jobpositions.collected
+ local p = pcol["page:0"] -- page:1
+ if p then
+-- to be checked !
+--~ dx, dy = p[2] or "0pt", p[3] or "0pt"
+ end
+end
+
+job.register('jobpositions.collected', jobpositions.tobesaved, initializer)
+
+function jobpositions.copy(target,source)
+ jobpositions.collected[target] = jobpositions.collected[source] or ptbs[source]
+end
+
+function jobpositions.replace(name,...)
+ jobpositions.collected[name] = {...}
+end
+
+function jobpositions.doifelse(name)
+ commands.testcase(jobpositions.collected[name] or ptbs[name])
+end
+
+function jobpositions.MPp(id) local jpi = pcol[id] or ptbs[id] texprint((jpi and jpi[1]) or '0' ) end
+function jobpositions.MPx(id) local jpi = pcol[id] or ptbs[id] texprint((jpi and jpi[2]) or '0pt') end
+function jobpositions.MPy(id) local jpi = pcol[id] or ptbs[id] texprint((jpi and jpi[3]) or '0pt') end
+function jobpositions.MPw(id) local jpi = pcol[id] or ptbs[id] texprint((jpi and jpi[4]) or '0pt') end
+function jobpositions.MPh(id) local jpi = pcol[id] or ptbs[id] texprint((jpi and jpi[5]) or '0pt') end
+function jobpositions.MPd(id) local jpi = pcol[id] or ptbs[id] texprint((jpi and jpi[6]) or '0pt') end
+
+
+ function jobpositions.MPx(id)
+ local jpi = pcol[id] or ptbs[id]
+ local x = jpi and jpi[2]
+ if x then
+ texprint(format('\\the\\dimexpr %s-%s\\relax',x,dx))
+ else
+ texprint('0pt')
+ end
+ end
+ function jobpositions.MPy(id)
+ local jpi = pcol[id] or ptbs[id]
+ local y = jpi and jpi[3]
+ if y then
+ texprint(format('\\the\\dimexpr %s-%s\\relax',y,dy))
+ else
+ texprint('0pt')
+ end
+ end
+
+-- the following are only for MP so there we can leave out the pt
+
+-- can be writes
+
+function jobpositions.MPxy(id)
+ local jpi = pcol[id] or ptbs[id]
+ if jpi then
+ texprint(format('(%s-%s,%s-%s)',jpi[2],dx,jpi[3],dy))
+ else
+ texprint('(0,0)')
+ end
+end
+function jobpositions.MPll(id)
+ local jpi = pcol[id] or ptbs[id]
+ if jpi then
+ texprint(format('(%s-%s,%s-%s-%s)',jpi[2],dx,jpi[3],jpi[6],dy))
+ else
+ texprint('(0,0)')
+ end
+end
+function jobpositions.MPlr(id)
+ local jpi = pcol[id] or ptbs[id]
+ if jpi then
+ texprint(format('(%s+%s-%s,%s-%s-%s)',jpi[2],jpi[4],dx,jpi[3],jpi[6],dy))
+ else
+ texprint('(0,0)')
+ end
+end
+function jobpositions.MPur(id)
+ local jpi = pcol[id] or ptbs[id]
+ if jpi then
+ texprint(format('(%s+%s-%s,%s+%s-%s)',jpi[2],jpi[4],dx,jpi[3],jpi[5],dy))
+ else
+ texprint('(0,0)')
+ end
+end
+function jobpositions.MPul(id)
+ local jpi = pcol[id] or ptbs[id]
+ if jpi then
+ texprint(format('(%s-%s,%s+%s-%s)',jpi[2],dx,jpi[3],jpi[5],dy))
+ else
+ texprint('(0,0)')
+ end
+end
+function jobpositions.MPpos(id)
+ local jpi = pcol[id] or ptbs[id]
+ if jpi then
+ texprint(concat(jpi,',',1,6))
+ else
+ texprint('0,0,0,0,0,0')
+ end
+end
+function jobpositions.MPplus(id,n,default)
+ local jpi = pcol[id] or ptbs[id]
+ texprint((jpi and jpi[6+n]) or default)
+end
+function jobpositions.MPrest(id,default)
+ local jpi = pcol[id] or ptbs[id]
+ texprint((jpi and jpi[7] and concat(jpi,",",7,#jpi)) or default)
+end
diff --git a/Master/texmf-dist/tex/context/base/core-pos.tex b/Master/texmf-dist/tex/context/base/anch-pos.mkii
index bc311dbdae5..589c4aa26d5 100644
--- a/Master/texmf-dist/tex/context/base/core-pos.tex
+++ b/Master/texmf-dist/tex/context/base/anch-pos.mkii
@@ -1,7 +1,7 @@
%D \module
-%D [ file=core-pos,
+%D [ file=anch-pos,
%D version=1999.08.01,
-%D title=\CONTEXT\ Core Macros,
+%D title=\CONTEXT\ Anchoring Macros,
%D subtitle=Positioning Support,
%D author=Hans Hagen,
%D date=\currentdate,
@@ -26,7 +26,7 @@
% 3 -> undef, dus == prev
% 4 -> opslaan
-\writestatus{loading}{Context Positioning Support}
+\writestatus{loading}{ConTeXt Anchoring Macros / Positioning}
% todo: topskip als optie voor eerste regel achtergrond
% todo: build pos layers on top of layers
@@ -92,9 +92,30 @@
\def\POSprefix{POS::}
-\let\setpospx \gobblefourarguments % suppress errors with mkii tuo file
-\let\setpospxywhd \gobblesevenarguments % suppress errors with mkii tuo file
-\let\setpospxyplus\gobbleeightarguments % suppress errors with mkii tuo file
+\def\setpospxy#1#2#3#4%
+ {\@EA\xdef\csname\POSprefix#1\endcsname
+ {\number#2,%
+ \the\dimexpr#3\ifnum\positionanchormode=\plusone-\MPx\pageanchor\fi\relax,%
+ \the\dimexpr#4\ifnum\positionanchormode=\plusone-\MPy\pageanchor\fi\relax}}
+
+\def\setpospxywhd#1#2#3#4#5#6#7%
+ {\@EA\xdef\csname\POSprefix#1\endcsname
+ {\number#2,%
+ \the\dimexpr#3\ifnum\positionanchormode=\plusone-\MPx\pageanchor\fi\relax,%
+ \the\dimexpr#4\ifnum\positionanchormode=\plusone-\MPy\pageanchor\fi\relax,%
+ \the\dimexpr#5\relax,%
+ \the\dimexpr#6\relax,%
+ \the\dimexpr#7\relax}}
+
+\def\setpospxyplus#1#2#3#4#5#6#7#8%
+ {\@EA\xdef\csname\POSprefix#1\endcsname
+ {\number#2,%
+ \the\dimexpr#3\ifnum\positionanchormode=\plusone-\MPx\pageanchor\fi\relax,%
+ \the\dimexpr#4\ifnum\positionanchormode=\plusone-\MPy\pageanchor\fi\relax,%
+ \the\dimexpr#5\relax,%
+ \the\dimexpr#6\relax,%
+ \the\dimexpr#7\relax,%
+ #8}}
%D This is real tricky! The page anchor is applied to the
%D page box and therefore flushed first. So, when present, it
@@ -105,13 +126,36 @@
%D The core set macros.
-\let\pospxy \gobblefourarguments
-\let\pospxywhd \gobblesevenarguments
-\let\pospxyplus\gobbleeightarguments
+\def\pxypos {\pospxy} % obsolete
+\def\pxyposwhd {\pospxywhd} % obsolete
+\def\pxyposplus{\pospxyplus} % obsolete
+
+\def\resetpositions
+ {\let\pospxy \gobblefourarguments
+ \let\pospxywhd \gobblesevenarguments
+ \let\pospxyplus\gobbleeightarguments}
+
+\def\setpositions
+ {\let\pospxy \setpospxy
+ \let\pospxywhd \setpospxywhd
+ \let\pospxyplus\setpospxyplus}
+
+%D We need to initialize.
+
+\resetpositions
+
+\addutilityreset{positions}
%D Sometimes we want to trick the position handler a bit:
-\let\replacepospxywhd\gobbleeightarguments
+\def\replacepospxywhd#1#2#3#4#5#6#7%
+ {\@EA\xdef\csname\POSprefix#1\endcsname
+ {\number#2,%
+ \the\dimexpr#3\relax,%
+ \the\dimexpr#4\relax,%
+ \the\dimexpr#5\relax,%
+ \the\dimexpr#6\relax,%
+ \the\dimexpr#7\relax}}
%D For postprocessing purposes, we save the number of
%D positions.
@@ -163,12 +207,29 @@
%D method is implemented in a special driver. If needed, the
%D driver can fall back on the following macros.
-\let\dolazysaveposition \gobblefourarguments % tag page x y
-\let\dolazysavepositionwhd \gobblesevenarguments % tag page x y w h d
-\let\dolazysavepositionplus\gobbleeightarguments % tag page x y w h d list
-\let\dosaveposition \gobblefourarguments % tag page x y
-\let\dosavepositionwhd \gobblesevenarguments % tag page x y w h d
-\let\dosavepositionplus \gobbleeightarguments % tag page x y w h d list
+\def\dolazysaveposition#1#2#3#4% tag page x y
+ {\expanded{\writeutilitycommand{\noexpand\pospxy
+ {#1}{#2}{#3}{#4}}}}
+
+\def\dolazysavepositionwhd#1#2#3#4#5#6#7% tag page x y w h d
+ {\expanded{\writeutilitycommand{\noexpand\pospxywhd
+ {#1}{#2}{#3}{#4}{#5}{#6}{#7}}}}
+
+\def\dolazysavepositionplus#1#2#3#4#5#6#7#8% tag page x y w h d list
+ {\expanded{\writeutilitycommand{\noexpand\pospxyplus
+ {#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}}}}
+
+\def\dosaveposition#1#2#3#4% tag page x y
+ {\expanded{\immediatewriteutilitycommand{\noexpand\pospxy
+ {#1}{#2}{#3}{#4}}}}
+
+\def\dosavepositionwhd#1#2#3#4#5#6#7% tag page x y w h d
+ {\expanded{\immediatewriteutilitycommand{\noexpand\pospxywhd
+ {#1}{#2}{#3}{#4}{#5}{#6}{#7}}}}
+
+\def\dosavepositionplus#1#2#3#4#5#6#7#8% tag page x y w h d list
+ {\expanded{\immediatewriteutilitycommand{\noexpand\pospxyplus
+ {#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}}}}
%D \macros
%D {MPp, MPx, MPy, MPw, MPh, MPd,
@@ -177,18 +238,38 @@
%D Access to the positional information is provided by macros
%D with short names that are clearly meant for \METAPOST.
-\let\MPp \!!zerocount
-\def\MPx \!!zeropoint
-\def\MPy \!!zeropoint
-\def\MPw \!!zeropoint
-\def\MPh \!!zeropoint
-\def\MPd \!!zeropoint
-\def\MPxy \!!zeropoint
-\def\MPll \!!zeropoint
-\def\MPlr \!!zeropoint
-\def\MPur \!!zeropoint
-\def\MPul \!!zeropoint
-\def\MPpos{\!!zerocount,\!!zeropoint,\!!zeropoint,\!!zeropoint,\!!zeropoint,\!!zeropoint}
+\def\MPp {\doMPxyhdwlr\doMPp }
+\def\MPx {\doMPxyhdwlr\doMPx }
+\def\MPy {\doMPxyhdwlr\doMPy }
+\def\MPw {\doMPxyhdwlr\doMPw }
+\def\MPh {\doMPxyhdwlr\doMPh }
+\def\MPd {\doMPxyhdwlr\doMPd }
+\def\MPxy {\doMPxyhdwlr\doMPxy }
+\def\MPll {\doMPxyhdwlr\doMPll }
+\def\MPlr {\doMPxyhdwlr\doMPlr }
+\def\MPur {\doMPxyhdwlr\doMPur }
+\def\MPul {\doMPxyhdwlr\doMPul }
+\def\MPpos{\doMPxyhdwlr\doMPpos}
+
+\def\doMPp #1,#2,#3,#4,#5,#6,#7\relax{#1}
+\def\doMPx #1,#2,#3,#4,#5,#6,#7\relax{#2}
+\def\doMPy #1,#2,#3,#4,#5,#6,#7\relax{#3}
+\def\doMPw #1,#2,#3,#4,#5,#6,#7\relax{#4}
+\def\doMPh #1,#2,#3,#4,#5,#6,#7\relax{#5}
+\def\doMPd #1,#2,#3,#4,#5,#6,#7\relax{#6}
+\def\doMPxy #1,#2,#3,#4,#5,#6,#7\relax{(#2,#3)}
+\def\doMPll #1,#2,#3,#4,#5,#6,#7\relax{(#2,#3-#6)}
+\def\doMPlr #1,#2,#3,#4,#5,#6,#7\relax{(#2+#4,#3-#6)}
+\def\doMPur #1,#2,#3,#4,#5,#6,#7\relax{(#2+#4,#3+#5)}
+\def\doMPul #1,#2,#3,#4,#5,#6,#7\relax{(#2,#3+#5)}
+\def\doMPpos#1,#2,#3,#4,#5,#6,#7\relax{#1,#2,#3,#4,#5,#6}
+
+\def\doMPxyhdwlr#1#2%
+ {\ifcsname\POSprefix#2\endcsname
+ \@EA\@EA\@EA#1\csname\POSprefix#2\endcsname,0pt,0pt,0pt,0pt\relax
+ \else
+ #10,0pt,0pt,0pt,0pt,0pt,0pt\relax
+ \fi}
%D \macros
%D {MPplus, MPrest, MPv, MPvv}
@@ -210,8 +291,27 @@
%D
%D The extra parameters are not treated.
-\def\MPplus#1#2{\!!zerocount} \def\MPv {\MPplus}
-\def\MPrest#1#2{#2} \def\MPvv{\MPrest}
+\def\MPplus {\MPdoplus\doMPplus}
+\def\MPrest#1{\MPdoplus\doMPrest{#1}{}}
+
+\def\MPdoplus#1#2#3#4%
+ {\ifcsname\POSprefix#2\endcsname
+ \@EA\@EA\@EA#1\csname\POSprefix#2\endcsname,,,,,,,,,\relax{#3}%
+ \else
+ #4%
+ \fi}
+
+\def\doMPplus#1,#2,#3,#4,#5,#6,%
+ {\dodoMPplus}
+
+\def\dodoMPplus#1,#2,#3,#4,#5,#6,#7,#8\relax#9%
+ {\ifcase#9\or#1\or#2\or#3\or#4\or#5\or#6\or#7\else\dododoMPplus#8\relax{#9}\fi}
+
+\def\dododoMPplus#1,#2,#3,#4,#5,#6,#7,#8\relax#9%
+ {\ifcase#9\or\or\or\or\or\or\or\or#1\or#2\or#3\or#4\or#5\or#6\or#7\fi}
+
+\def\doMPrest#1,#2,#3,#4,#5,#6,#7,,#8\relax#9%
+ {#7}
%D \macros
%D {MPanchor}
@@ -350,52 +450,18 @@
\let\cleanuppositionaction\gobbleoneargument
-%D The next one will be overloaded later.
-%D
-%D \starttyping
-%D \def\dopositionaction#1% test saves hash entry in etex
-%D {\ifundefined{\POSactionprefix#1::}\else
-%D \ifnum\MPp{#1}>\zerocount % new
-%D \setbox\scratchbox\hbox \bgroup
-%D \traceposstring\clap\red{<#1>}%
-%D \the\everyinsertpositionaction
-%D \the\everypositionaction
-%D \ifcollectMPpositiongraphics
-%D % can save a lot of run time
-%D \pushMPdrawing
-%D \MPshiftdrawingtrue
-%D \resetMPdrawing
-%D \getvalue{\POSactionprefix#1::}%
-%D \ifMPdrawingdone
-%D \getMPdrawing
-%D \fi
-%D \resetMPdrawing
-%D \popMPdrawing
-%D \else
-%D \getvalue{\POSactionprefix#1::}%
-%D \fi
-%D \cleanuppositionaction{#1}%
-%D \egroup
-%D \smashedbox\scratchbox
-%D \else
-%D % shouldn't happen too often
-%D \traceposstring\clap\cyan{<#1>}%
-%D \fi
-%D \fi}
-%D \stoptyping
-
\def\doifpositionaction#1%
- {\ifundefined{\POSactionprefix#1::}%
- \@EA\gobbleoneargument
- \else
+ {\ifcsname\POSactionprefix#1::\endcsname
\@EA\firstofoneargument
+ \else
+ \@EA\gobbleoneargument
\fi}
\def\doifpositionactionelse#1%
- {\ifundefined{\POSactionprefix#1::}%
- \@EA\secondoftwoarguments
- \else
+ {\ifcsname\POSactionprefix#1::\endcsname
\@EA\firstoftwoarguments
+ \else
+ \@EA\secondoftwoarguments
\fi}
%D We can copy a position with:
@@ -406,7 +472,10 @@
%D
%D Again, this is a global action.
-\let\copyposition\gobbletwoarguments
+\def\copyposition#1#2%
+ {\ifcsname\POSprefix#2\endcsname
+ \global\@EA\let\csname\POSprefix#1\@EA\endcsname\csname\POSprefix#2\endcsname
+ \fi}
%D The fact that handling positions is a two pass operation, is
%D one of the reasons why we need to be able to test for
@@ -416,7 +485,12 @@
%D \doifpositionelse {identifier} {found action} {not found action}
%D \stoptyping
-\let\doifpositionelse\thirdofthreearguments
+\def\doifpositionelse#1%
+ {\ifcsname\POSprefix#1\endcsname
+ \expandafter\firstoftwoarguments
+ \else
+ \expandafter\secondoftwoarguments
+ \fi}
%D We have now arrived at a few macros that would make sense as
%D support macros, but ended up in the core.
@@ -509,6 +583,13 @@
% we can check for used entries, and if not, then not add one
+\def\enableparpositions % global
+ {\global\positioningtrue
+ \global\positioningpartrue}
+
+\def\disableparpositions % local
+ {\positioningparfalse}
+
\def\registerparoptions
{\ifpositioningpar \ifpositioning \iftrialtypesetting \else
\ifinpagebody \else \ifmmode \else \ifinformula \else
@@ -522,27 +603,38 @@
\chardef\parposstrut=1 % 0 => no strut data, so fall backs used
+\newif\iftracepositions
+
+% \def\doregisterparoptions
+% {\global\advance\parposcounter\plusone
+% \begingroup
+% \leftskip 1\leftskip
+% \rightskip1\rightskip
+% \setpositiondataplus
+% {p:\number\parposcounter}% identifier
+% {\the\zeropoint}%
+% {\the\strutht}%
+% {\the\strutdp}%
+% {\the\hsize ,% 1
+% \the\leftskip ,% 2
+% \the\rightskip ,% 3
+% \the\hangindent,% 4
+% \the\hangafter ,% 5 (num)
+% \the\parindent }% 6
+% %\normalhbox{\registerparsymbol}%
+% \registerparsymbol
+% \endgroup}
+
\def\doregisterparoptions
{\global\advance\parposcounter\plusone
- \begingroup
- \leftskip 1\leftskip
- \rightskip1\rightskip
- \setpositiondataplus
- {p:\number\parposcounter}% identifier
- {\the\zeropoint}%
- {\the\strutht}%
- {\the\strutdp}%
- {\the\hsize ,% 1
- \the\leftskip ,% 2
- \the\rightskip ,% 3
- \the\hangindent,% 4
- \the\hangafter ,% 5 (num)
- \the\parindent }% 6
- %\normalhbox{\registerparsymbol}%
- \registerparsymbol
- \endgroup}
-
-\newif\iftracepositions
+ \setpositiondataplus
+ {p:\number\parposcounter}% identifier
+ {\the\zeropoint}%
+ {\the\strutht}%
+ {\the\strutdp}%
+ {\the\hsize,\the\dimexpr\leftskip\relax,\the\dimexpr\rightskip\relax,\the\hangindent,\the\hangafter,\the\parindent}%
+ %\normalhbox{\registerparsymbol}%
+ \iftracepositions\registerparsymbol\fi}
\def\traceposstring#1#2#3%
{\iftracepositions\smashedhbox{#1{\infofont#2#3}}\fi}
@@ -769,16 +861,11 @@
\rawprocesscommalist[#2]\docommand
\ifdone\egroup#3\else\egroup#4\fi}
-\def\doifpositionsonsamepageelse
- {\dodoifpositionsonsamepageelse{0}}
-
-\def\doifpositionsonthispageelse#1#2#3%
- {\dodoifpositionsonsamepageelse\realfolio}
+\def\doifpositionsonsamepageelse{\dodoifpositionsonsamepageelse\!!zerocount}
+\def\doifpositionsonthispageelse{\dodoifpositionsonsamepageelse\realfolio }
%D Plugins:
-\loadmarkfile{core-pos}
-
\let\MPv \MPplus
\let\MPvv\MPrest
diff --git a/Master/texmf-dist/tex/context/base/anch-pos.mkiv b/Master/texmf-dist/tex/context/base/anch-pos.mkiv
new file mode 100644
index 00000000000..0ddda9af40f
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/anch-pos.mkiv
@@ -0,0 +1,784 @@
+%D \module
+%D [ file=anch-pos, % was core-pos
+%D version=1999.08.01,
+%D title=\CONTEXT\ Anchoring Macros,
+%D subtitle=Positioning Support,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+% needs a cleanup, things may change; we also need to move the mp
+% related code to meta-pos
+
+% shorter tags, ..:achtergrond:.. etc in pos actions
+
+% dubbele text- * pos's eruit
+
+% class pos -> als gelijk aan vorige, dan niet niet definieren
+% en erven, maw:
+%
+% 1 -> opslaan
+% 2 -> undef, dus == prev
+% 3 -> undef, dus == prev
+% 4 -> opslaan
+
+\writestatus{loading}{ConTeXt Anchoring Macros / Positioning}
+
+% saveposition : tag page x y
+% savepositionwhd : tag page x y w h d
+% savepositionplus : tag page x y w h d list
+%
+% at some point (when we no longer share code) we will move to numbers
+% do that we have less garbage collection and hashing
+%
+% the global table ptbs is equivalent to jobpositions.tobesaved
+%
+% btw, using a function is more efficient than passing longer code
+% snippets to ctxlua
+
+\registerctxluafile{anch-pos}{1.001}
+
+% todo: topskip als optie voor eerste regel achtergrond
+% todo: build pos layers on top of layers
+% todo: positionlayer pos van text-1 etc delen
+
+%D Although \TEX\ has a rather powerful channel to the outside
+%D world, called \type {\special}, real communication with
+%D other programs is complicated by the fact that no positional
+%D information is available. Mid 1999, I discussed this with
+%D \THANH, the author of \PDFTEX, and after some experiments,
+%D \PDFTEX\ was extended with a simple but effective mechanism,
+%D that provided positional information. The interesting
+%D thought is that, although \TEX\ is frozen, similar
+%D functionality could have been achieved with \type
+%D {\specials} and an additional \DVI\ postprocessor.
+%D
+%D Since we want to be as compatible as can be, \CONTEXT\ will
+%D support both methods, although the development is primarily
+%D driven by the \PDFTEX\ way of doing things. Since the
+%D mechanism is basically not limited to one application, for
+%D the moment we stick to building the functionality around one
+%D \CONTEXT\ special command, but at the same time we keep our
+%D eyes open for extensions in other directions.
+%D
+%D A question that may arise when one reads this module, is to
+%D what extend these macros are generic, in the sense that they
+%D could be collected in a support module instead of a core
+%D module. Since the mechanism described here will closely
+%D cooperate with the \METAPOST\ support built in \CONTEXT,
+%D which in turn will be tightly integrated with the \CONTEXT\
+%D overlay mechanisms, I decided to write a core module instead
+%D of a support one. This makes even more sense, when one takes
+%D into account that this kind of support depends on special
+%D drivers.
+
+\unprotect
+
+%D The first application of positional information was embedded
+%D graphics. Since we are interacting with text, it made sense
+%D to take the current line height and depth into account too.
+%D This is why we have two basic position macros: one for
+%D simple positions, and one for boxes.
+%D
+%D We could have sticked to one special, and actually did so in
+%D earlier experiments, but for convenience, as well for
+%D clearness, we now have two alternatives. This approach will
+%D save us quite some bytes when storing large quantities of
+%D positional information. We save as less information as
+%D needed, that is, we save no dimensions, in a \METAPOST\
+%D friendly way.
+%D
+%D The three specials involved are:
+%D
+%D \starttyping
+%D \dosetposition {identifier}
+%D \dosetpositionwhd {identifier} {width} {height} {depth}
+%D \dosetpositionplus {identifier} {width} {height} {depth} {list}
+%D \dosetpositionpapersize {width} {height}
+%D \stoptyping
+%D
+%D Positions are either generated at a delayed write time
+%D (in \PDFTEX), or derived from the dvi file. The actual
+%D method is implemented in a special driver. If needed, the
+%D driver can fall back on the following macros.
+
+% are the next 6 still used?
+
+\def\dolazysaveposition #1#2#3#4{\normalexpanded{\ctxlatelua{ptbs['#1']={#2,"#3","#4"}}}}
+\def\dolazysavepositionwhd #1#2#3#4#5#6#7{\normalexpanded{\ctxlatelua{ptbs['#1']={#2,"#3","#4","#5","#6","#7"}}}}
+\def\dolazysavepositionplus#1#2#3#4#5#6#7#8{\normalexpanded{\ctxlatelua{ptbs['#1']={#2,"#3","#4","#5","#6","#7","#8"}}}}
+\def\dosaveposition #1#2#3#4{\normalexpanded{\ctxlua {ptbs['#1']={#2,"#3","#4"}}}}
+\def\dosavepositionwhd #1#2#3#4#5#6#7{\normalexpanded{\ctxlua {ptbs['#1']={#2,"#3","#4","#5","#6","#7"}}}}
+\def\dosavepositionplus #1#2#3#4#5#6#7#8{\normalexpanded{\ctxlua {ptbs['#1']={#2,"#3","#4","#5","#6","#7","#8"}}}}
+
+\def\lastsavedpositionx {\the\dimexpr\pdflastxpos\scaledpoint\relax}
+\def\lastsavedpositiony {\the\dimexpr\pdflastypos\scaledpoint\relax}
+\let\savecurrentposition\pdfsavepos
+
+\def\dosetposition#1%
+ {\savecurrentposition
+ \normalexpanded{\ctxlatelua{ptbs['#1']={%
+ \noexpand\realfolio,"\noexpand\lastsavedpositionx","\noexpand\lastsavedpositiony"}}}}
+
+\def\dosetpositionwhd#1#2#3#4%
+ {\savecurrentposition
+ \normalexpanded{\ctxlatelua{ptbs['#1']={%
+ \noexpand\realfolio,"\noexpand\lastsavedpositionx","\noexpand\lastsavedpositiony","#2","#3","#4"}}}}
+
+\def\dosetpositionplus#1#2#3#4#5%
+ {\savecurrentposition
+ \normalexpanded{\ctxlatelua{ptbs['#1']={%
+ \noexpand\realfolio,"\noexpand\lastsavedpositionx","\noexpand\lastsavedpositiony","#2","#3","#4","#5"}}}}
+
+\let\dosetpositionpapersize\gobbletwoarguments
+
+\newbox\positionbox
+\newif \ifpositioning
+
+\def\POSprefix{POS::}
+
+\let\setpospx \gobblefourarguments % suppress errors with mkii tuo file
+\let\setpospxywhd \gobblesevenarguments % suppress errors with mkii tuo file
+\let\setpospxyplus\gobbleeightarguments % suppress errors with mkii tuo file
+
+%D This is real tricky! The page anchor is applied to the
+%D page box and therefore flushed first. So, when present, it
+%D is applied to all positions except itself.
+
+\chardef\positionanchormode=0 % don't relocate page origin
+\chardef\positionanchormode=1 % relocate page origin once
+
+%D The core set macros.
+
+\let\pospxy \gobblefourarguments
+\let\pospxywhd \gobblesevenarguments
+\let\pospxyplus\gobbleeightarguments
+
+%D Sometimes we want to trick the position handler a bit:
+
+\def\replacepospxywhd#1#2#3#4#5#6#7{\ctxlua{jobpositions.replace('#1',\number#2,"\the\dimexpr#3\relax","\the\dimexpr#4\relax","\the\dimexpr#5\relax","\the\dimexpr#6\relax","\the\dimexpr#7\relax")}}
+
+%D For postprocessing purposes, we save the number of
+%D positions.
+
+\newcount\currentpositions % current number of positions
+
+%D The next switch can be used to communicate a special
+%D situation. Positioning and associated actions can be
+%D executed any time. However, in for instance backgrounds
+%D they can be collected in a layer, for instance the text
+%D layer (especially the hidden text layer). In the case of
+%D floats, we run into problems, since the page information is
+%D not applicable when the content floats indeed. In such
+%D situations one can treat positions and graphics local.
+
+\newif\iflocalpositioning
+
+%D Watch out: sometimes a pagebreak occurs inside a float
+%D placement, so there we need to disable local mode.
+
+\appendtoks
+ \localpositioningtrue
+\to \everyinsidefloat
+
+\appendtoks
+ \localpositioningfalse
+\to \everypagebody
+
+%D Since the positional values are to be fully expandable, we
+%D need to preload them as soon as possible, which is why we
+%D load the data when we start a text.
+
+% \appendtoks \checkpositions \to \everystarttext
+
+%D \macros
+%D {MPp, MPx, MPy, MPw, MPh, MPd,
+%D MPxy, MPll, MPlr, MPur, MPul, MPpos}
+%D
+%D Access to the positional information is provided by macros
+%D with short names that are clearly meant for \METAPOST.
+
+% \the\dimexpr\noexpand\lastsavedpositionx\ifnum\positionanchormode=\plusone-\MPx\pageanchor\fi\relax
+% \the\dimexpr\noexpand\lastsavedpositiony\ifnum\positionanchormode=\plusone-\MPx\pageanchor\fi\relax
+
+\def\MPp #1{\ctxlua{jobpositions.MPp("#1")}}
+\def\MPx #1{\ctxlua{jobpositions.MPx("#1")}}
+\def\MPy #1{\ctxlua{jobpositions.MPy("#1")}}
+\def\MPw #1{\ctxlua{jobpositions.MPw("#1")}}
+\def\MPh #1{\ctxlua{jobpositions.MPh("#1")}}
+\def\MPd #1{\ctxlua{jobpositions.MPd("#1")}}
+\def\MPxy #1{\ctxlua{jobpositions.MPxy("#1")}}
+\def\MPll #1{\ctxlua{jobpositions.MPll("#1")}}
+\def\MPlr #1{\ctxlua{jobpositions.MPlr("#1")}}
+\def\MPur #1{\ctxlua{jobpositions.MPur("#1")}}
+\def\MPul #1{\ctxlua{jobpositions.MPul("#1")}}
+\def\MPpos #1{\ctxlua{jobpositions.MPpos("#1")}}
+
+%D \macros
+%D {MPplus, MPrest, MPv, MPvv}
+%D
+%D Since we will probably keep on extending, we provide a
+%D general extension macro. The plus alternative takes an
+%D extra argument, denoting what additional parameter to pick
+%D up. So, the third extra is fetched with,
+%D
+%D \starttyping
+%D \MPplus{identifier}{3}{default}
+%D \stoptyping
+%D
+%D All extras (comma separated) are fetched with:
+%D
+%D \starttyping
+%D \MPrest{identifier}
+%D \stoptyping
+%D
+%D The extra parameters are not treated.
+
+\def\MPplus#1#2#3{\ctxlua{jobpositions.MPplus("#1",#2,"#3")}} \let\MPv \MPplus
+\def\MPrest #1#2{\ctxlua{jobpositions.MPrest("#1","#2")}} \let\MPvv\MPrest
+
+%D \macros
+%D {MPanchor}
+%D
+%D For readability we define a few synonyms:
+
+\def\MPanchor{\MPpos}
+
+%D \macros
+%D {POSp, POSx, POSy, POSh, POSd, POSw}
+%D
+%D and:
+
+\def\POSp{\MPp} \def\POSx{\MPx} \def\POSy{\MPy}
+\def\POSh{\MPh} \def\POSd{\MPd} \def\POSw{\MPw}
+
+%D There are two low level positioning macros. Both store the
+%D position as well as execute an action associated with that
+%D position.
+
+\def\initializenextposition
+ {\ifpositioning \else
+ \global\positioningtrue
+ \dosetpositionpapersize
+ {\printpaperwidth }%
+ {\printpaperheight}%
+ \fi
+ \global\advance\currentpositions\plusone}
+
+\def\setpositiononly#1%
+ {\iftrialtypesetting
+ % nothing
+ \else
+ \initializenextposition
+ \def\currentposition{#1}%
+ \dosetposition\currentposition
+ \fi}
+
+\def\setposition#1%
+ {\iftrialtypesetting
+ % nothing
+ \else
+ \initializenextposition
+ \def\currentposition{#1}%
+ \dosetposition\currentposition
+ \traceposstring\llap\green{\currentposition>}%
+ \dopositionaction\currentposition
+ \fi}
+
+\def\setpositiondata#1#2#3#4%
+ {\iftrialtypesetting \else
+ \initializenextposition
+ \hbox
+ {\def\currentposition{#1}%
+ \dosetpositionwhd\currentposition
+ {\the\dimexpr#2\relax}%
+ {\the\dimexpr#3\relax}%
+ {\the\dimexpr#4\relax}%
+ \traceposstring\llap\green{\currentposition>}%
+ \dopositionaction\currentposition
+ \hss}%
+ \fi}
+
+\def\setpositionbox#1%
+ {\dowithnextbox
+ {\iftrialtypesetting
+ \flushnextbox
+ \else
+ \initializenextposition
+ \hbox to \nextboxwd
+ {\edef\currentposition{#1}%
+ \dosetpositionwhd\currentposition
+ {\the\nextboxwd}%
+ {\the\nextboxht}%
+ {\the\nextboxdp}%
+ \traceposstring\llap\green{\currentposition>}%
+ \setbox\positionbox\flushnextbox
+ \dopositionaction\currentposition
+ \box\positionbox
+ \hss}%
+ \fi}}
+
+\def\setpositiondataplus#1#2#3#4#5%
+ {\iftrialtypesetting \else
+ \initializenextposition
+ \hbox % bug: to \nextboxwd
+ {\edef\currentposition{#1}%
+ \dosetpositionplus\currentposition
+ {\the\dimexpr#2\relax}%
+ {\the\dimexpr#3\relax}%
+ {\the\dimexpr#4\relax}%
+ {#5}%
+ \traceposstring\rlap\magenta{<\currentposition}%
+ \dopositionaction\currentposition
+ \hss}%
+ \fi}
+
+\def\setpositionplus#1#2%
+ {\dowithnextbox
+ {\iftrialtypesetting
+ \flushnextbox
+ \else
+ \initializenextposition
+ \hbox to \nextboxwd
+ {\edef\currentposition{#1}%
+ \dosetpositionplus\currentposition
+ {\the\nextboxwd}%
+ {\the\nextboxht}%
+ {\the\nextboxdp}%
+ {#2}%
+ \traceposstring\rlap\magenta{<\currentposition}%
+ \setbox\positionbox\flushnextbox
+ \dopositionaction\currentposition
+ \box\positionbox
+ \hss}%
+ \fi}}
+
+\let\currentposition\s!unknown
+
+%D A few more low level macros take care of defining and
+%D recalling actions. We could save this information in the
+%D position containers themselves, this would save hash
+%D entries, but at the cost of much more time consuming
+%D expansion. Actions are saved globally!
+
+\newtoks\everypositionaction
+
+\let\POSactionprefix\POSprefix
+
+\def\dosetpositionaction#1%
+ {\setgvalue{\POSactionprefix#1::}}
+
+%D The lists can become quite long (also because there can
+%D be lots of parameters passed on) so we provide a hook
+%D to clean up the list afterwards.
+
+\let\cleanuppositionaction\gobbleoneargument
+
+\def\doifpositionaction#1%
+ {\ifcsname\POSactionprefix#1::\endcsname
+ \@EA\firstofoneargument
+ \else
+ \@EA\gobbleoneargument
+ \fi}
+
+\def\doifpositionactionelse#1%
+ {\ifcsname\POSactionprefix#1::\endcsname
+ \@EA\firstoftwoarguments
+ \else
+ \@EA\secondoftwoarguments
+ \fi}
+
+%D We can copy a position with:
+%D
+%D \starttyping
+%D \copyposition {to} {from}
+%D \stoptyping
+%D
+%D Again, this is a global action.
+
+\def\copyposition#1#2{\ctxlua{jobpositions.copy('#1','#2')}}
+
+%D The fact that handling positions is a two pass operation, is
+%D one of the reasons why we need to be able to test for
+%D existence, using:
+%D
+%D \starttyping
+%D \doifpositionelse {identifier} {found action} {not found action}
+%D \stoptyping
+
+\def\doifpositionelse#1{\ctxlua{jobpositions.doifelse('#1')}}
+
+%D We have now arrived at a few macros that would make sense as
+%D support macros, but ended up in the core.
+
+%D \macros
+%D {xypos}
+%D
+%D We have several macros available to save positions. Later
+%D we will see applications.
+%D
+%D \starttabulate[|l|l||]
+%D \NC \type {\xypos} \NC \NC simple position with no dimensions \NC \NR
+%D \NC \type {\hpos} \NC \NC position and characteristics of a \type {\hbox} \NC \NR
+%D \NC \type {\vpos} \NC \NC position and characteristics of a \type {\vbox} \NC \NR
+%D \NC \type {\bpos} \NC b: \NC begin point in a line \NC \NR
+%D \NC \type {\epos} \NC e: \NC end point in a line \NC \NR
+%D \NC \type {\fpos} \NC f: \NC begin point in a paragraph \NC \NR
+%D \NC \type {\tpos} \NC t: \NC end point in a paragraph \NC \NR
+%D \stoptabulate
+%D
+%D Each macro takes an identifier as argument, and the \type
+%D {\hpos} and \type {\vpos} also expect box content.
+
+% \def\xypos{\initializenextposition\dosetposition}
+
+\let\xypos\setpositiononly
+
+\def\hpos#1{\dontleavehmode\setpositionbox{#1}\hbox}
+\def\vpos#1{\setpositionbox{#1}\vbox}
+
+\def\bpos#1{\hpos{b:#1}{\strut}\ignorespaces}
+\def\epos#1{\removelastspace\hpos{e:#1}{\strut}}
+
+\def\fpos#1%
+ {\setpositionplus{b:#1}{\number\parposcounter}\horizontalstrut
+ \ignorespaces}
+
+\def\tpos#1%
+ {\removelastspace
+ \setpositionplus{e:#1}{\number\parposcounter}\horizontalstrut}
+
+\def\ffpos#1%
+ {\setpositionplus{b:#1}{\number\parposcounter}\horizontalstrut\wpos{#1}%
+ \ignorespaces}
+
+\def\ttpos#1%
+ {\removelastspace
+ \setpositionplus{e:#1}{\number\parposcounter}\horizontalstrut}
+
+\def\wpos#1%
+ {\dontleavehmode\vadjust % may disappear if buried
+ {\setbox0\hbox{\raise\strutdp\hbox{\rawwpos{#1}}}%
+ \rlap{\smashedbox0}}}
+
+\def\wwpos#1% \hsmashed{\llap{\rawwpos{#1}}}
+ {\rlap
+ {\setbox0\hbox{\rawwpos{#1}}%
+ \smashedbox0}}
+
+\def\rawwpos#1%
+ {\hpos{w:#1}
+ {\strut
+ \hskip-\leftskip
+ \hskip\hsize
+ \hskip-\rightskip}}
+
+% the next macro disables par positions (in inner boxes) and
+% only registers the width
+
+\def\setinnerparpositions
+ {\let\fpos\ffpos
+ \let\tpos\ttpos
+ \let\wpos\wwpos}
+
+% example of usage: (see for application "techniek")
+%
+% \appendtoks
+% \setinnerparpositions
+% \to \everytabulate
+
+%D When we want to calculate more complex backgrounds, we
+%D need to know what the current indentation scheme is. At
+%D the cost of many positions and memory, we can keep track
+%D of them. This mechanism is activated automatically
+%D based on information collected in the previous pass.
+
+\newcount\parposcounter
+\newif \ifpositioningpar
+\chardef \parposstrut = 1 % 0 => no strut data, so fall backs used
+\newif \iftracepositions
+
+% we can check for used entries, and if not, then not add one
+
+\def\enableparpositions % global
+ {\global\let\registerparoptions\doregisterparoptions
+ \global\positioningtrue
+ \global\positioningpartrue}
+
+\def\disableparpositions % local
+ {\positioningparfalse}
+
+\let\registerparoptions\relax
+
+\def\doregisterparoptions
+ {\ifpositioningpar \ifpositioning \iftrialtypesetting \else
+ \ifinpagebody \else \ifmmode \else \ifinformula \else
+ \ifprocessingverbatim
+ \iflinepar \dodoregisterparoptions \fi
+ \else
+ \dodoregisterparoptions
+ \fi
+ \fi \fi \fi
+ \fi \fi \fi}
+
+\def\dodoregisterparoptions
+ {\global\advance\parposcounter\plusone
+ \setpositiondataplus
+ {p:\number\parposcounter}% identifier
+ {\the\zeropoint}%
+ {\the\strutht}%
+ {\the\strutdp}%
+ {\the\hsize,\the\dimexpr\leftskip\relax,\the\dimexpr\rightskip\relax,\the\hangindent,\the\hangafter,\the\parindent}%
+ %\normalhbox{\registerparsymbol}%
+ \iftracepositions\registerparsymbol\fi}
+
+\def\traceposstring#1#2#3%
+ {\iftracepositions\smashedhbox{#1{\infofont#2#3}}\fi}
+
+\def\registerparsymbol
+ {\iftracepositions
+ \smashedhbox to \zeropoint
+ {\hss
+ \startcolor[blue]%
+ \llap{\infofont\number\parposcounter}%
+ \scratchdimen\onepoint
+ \vrule
+ \!!width 4\scratchdimen
+ \!!height2\scratchdimen
+ \!!depth 2\scratchdimen
+ \stopcolor
+ \hss}%
+ \fi}
+
+% \appendtoks \registerparoptions \to \everypar
+
+%D Eperimental code, don't use this yet: (must be sped up anyway)
+
+\def\@@noden{node:n:}
+\def\@@nodeo{node:o:}
+\def\@@nodep{node:p:}
+
+\def\doifelsenodelocation#1%
+ {\ifcsname\@@noden#1\endcsname
+ \expandafter\firstoftwoarguments
+ \else
+ \expandafter\secondoftwoarguments
+ \fi}
+
+\def\nextnodelocation#1%
+ {\ifcsname\@@noden#1\endcsname\pluscounter{\@@noden#1}\fi}
+
+\def\newnodelocation#1%
+ {\ifcsname\@@noden#1\endcsname
+ \setcounter{\@@noden#1}\zerocount
+ \letgvalue {\@@nodeo#1}\!!zerocount
+ \fi}
+
+\def\tagnodelocation#1%
+ {\ifcsname\@@noden#1\endcsname\xypos{\@@nodep#1:\countervalue{\@@noden#1}}\fi}
+
+\def\getnodelocationp#1{\MPp{\@@nodep#1:\countervalue{\@@noden#1}}}
+\def\getnodelocationx#1{\MPx{\@@nodep#1:\countervalue{\@@noden#1}}}
+\def\getnodelocationy#1{\MPy{\@@nodep#1:\countervalue{\@@noden#1}}}
+
+\def\numnodelocationp#1#2{\MPp{\@@nodep#1:\number#2}}
+\def\numnodelocationx#1#2{\MPx{\@@nodep#1:\number#2}}
+\def\numnodelocationy#1#2{\MPy{\@@nodep#1:\number#2}}
+
+\def\getnodelocationn#1{\countervalue{\@@noden#1}}
+\def\getnodelocationo#1{\getvalue {\@@nodeo#1}}
+
+\chardef\nodelocationmode\plusone
+
+\def\analyzenodelocation#1%
+ {\ifcsname\@@noden#1\endcsname
+ \doanalyzenodelocation{#1}{\getnodelocationn{#1}}\zerocount
+ \fi}
+
+\def\doanalyzenodelocation#1#2#3% class n default
+ {\begingroup
+ \donefalse
+ \ifcase\nodelocationmode
+ % do nothing
+ \else
+ \edef\nodelocationselfn{#2}%
+ \edef\nodelocationselfp{\numnodelocationp{#1}\nodelocationselfn}%
+ \edef\nodelocationselfx{\numnodelocationx{#1}\nodelocationselfn}%
+ \edef\nodelocationselfy{\numnodelocationy{#1}\nodelocationselfn}%
+ \scratchcounter\plusone
+ \doloop
+ {\ifnum\recurselevel=\nodelocationselfn\relax
+ \donetrue
+ \else
+ \edef\nodelocationotherp{\numnodelocationp{#1}\recurselevel}%
+ \edef\nodelocationotherx{\numnodelocationx{#1}\recurselevel}%
+ \edef\nodelocationothery{\numnodelocationy{#1}\recurselevel}%
+ \ifcase\nodelocationmode
+ \or
+ % ok for single column
+ \ifcase\nodelocationotherp\relax
+ \exitloop
+ \else\ifnum\nodelocationotherp<\nodelocationselfp\relax
+ \donetrue \advance\scratchcounter\plusone
+ \else\ifnum\nodelocationotherp>\nodelocationselfp\relax
+ % skip
+ \else\ifdim\nodelocationothery>\nodelocationselfy\relax
+ \donetrue \advance\scratchcounter\plusone
+ \else\ifdim\nodelocationothery<\nodelocationselfy\relax
+ % skip
+ \else\ifdim\nodelocationotherx<\nodelocationselfx\relax
+ \donetrue \advance\scratchcounter\plusone
+ \fi\fi\fi\fi\fi\fi
+ \or
+ % acceptable for double column
+ \ifcase\nodelocationotherp\relax
+ \exitloop
+ \else\ifnum\nodelocationotherp<\nodelocationselfp\relax
+ \donetrue \advance\scratchcounter\plusone
+ \else\ifnum\nodelocationotherp>\nodelocationselfp\relax
+ % skip
+ \else\ifnum\recurselevel>\nodelocationselfn\relax
+ \donetrue \exitloop
+ \else
+ \donetrue \advance\scratchcounter\plusone
+ \fi\fi\fi\fi
+ \else
+ \exitloop
+ \fi
+ \fi}%
+ \fi
+ \ifdone \else
+ \scratchcounter#3\relax
+ \fi
+ \setxvalue{\@@nodeo#1}{\the\scratchcounter}%
+ \endgroup}
+
+\unexpanded\def\shownodelocation#1%
+ {\ifcsname\@@noden#1\endcsname
+ \analyzenodelocation{#1}%
+ (#1,%
+ n:\getnodelocationn{#1},%
+ p:\getnodelocationp{#1},%
+ x:\getnodelocationx{#1},%
+ y:\getnodelocationy{#1},%
+ o:\getnodelocationo{#1})%
+ \fi}
+
+%D \macros
+%D {doifoverlappingelse}
+%D
+%D A first application of positional information, is to
+%D determine if two boxes do overlap:
+%D
+%D \starttyping
+%D \doifoverlappingelse{point a}{point b}
+%D {action when overlapping}
+%D {action when not overlapping}
+%D \stoptyping
+
+\def\overlappingmargin{-2\scaledpoint}
+
+\def\overlappingcheckone#1#2%
+ {\ifdim#1<\!!dimena \else \ifdim#1>\!!dimenb \else
+ \ifdim#2<\!!dimenc \else \ifdim#2>\!!dimend \else
+ \donetrue
+ \fi\fi
+ \fi\fi}
+
+\def\overlappingchecktwo#1#2%
+ {\ifdim#1<\!!dimene \else \ifdim#1>\!!dimenf \else
+ \ifdim#2<\!!dimeng \else \ifdim#2>\!!dimenh \else
+ \donetrue
+ \fi\fi
+ \fi\fi}
+
+\def\doifoverlappingelse#1#2% maybe do this in lua
+ {\begingroup
+ \donefalse
+ \edef\!!stringa{#1}\edef\!!stringb{#2}%
+ \ifnum\MPp\!!stringa=\MPp\!!stringb\relax
+ \!!dimena\MPx\!!stringa
+ \!!dimenb\dimexpr\MPx\!!stringa+\MPw\!!stringa\relax
+ \!!dimenc\dimexpr\MPy\!!stringa-\MPd\!!stringa\relax
+ \!!dimend\dimexpr\MPy\!!stringa+\MPh\!!stringa\relax
+ \!!dimene\MPx\!!stringb
+ \!!dimenf\dimexpr\MPx\!!stringb+\MPw\!!stringb\relax
+ \!!dimeng\dimexpr\MPy\!!stringb-\MPd\!!stringb\relax
+ \!!dimenh\dimexpr\MPy\!!stringb+\MPh\!!stringb\relax
+ \ifdim\overlappingmargin=\zeropoint\else
+ \advance\!!dimena-\overlappingmargin
+ \advance\!!dimenb+\overlappingmargin
+ \advance\!!dimenc-\overlappingmargin
+ \advance\!!dimend+\overlappingmargin
+ \advance\!!dimene-\overlappingmargin
+ \advance\!!dimenf+\overlappingmargin
+ \advance\!!dimeng-\overlappingmargin
+ \advance\!!dimenh+\overlappingmargin
+ \fi
+ % more often eh fb eg fg
+ \overlappingcheckone\!!dimene\!!dimeng \ifdone \else
+ \overlappingcheckone\!!dimene\!!dimenh \ifdone \else
+ \overlappingcheckone\!!dimenf\!!dimeng \ifdone \else
+ \overlappingcheckone\!!dimenf\!!dimenh \ifdone \else
+ \overlappingchecktwo\!!dimena\!!dimenc \ifdone \else
+ \overlappingchecktwo\!!dimena\!!dimend \ifdone \else
+ \overlappingchecktwo\!!dimenb\!!dimene \ifdone \else
+ \overlappingchecktwo\!!dimenb\!!dimenc \fi \fi \fi \fi \fi \fi \fi
+ \fi
+ \ifdone
+ \endgroup\expandafter\firstoftwoarguments
+ \else
+ \endgroup\expandafter\secondoftwoarguments
+ \fi}
+
+%D \macros
+%D {doifpositionsonsamepageelse,
+%D doifpositionsonthispageelse}
+%D
+%D Instead of letting the user handle fuzzy expansion, we
+%D provide a simple test on positione being on the same page.
+%D
+%D \starttyping
+%D \doifpositionsonsamepageelse{point a}{point b}
+%D {action when on same page}
+%D {action when not on same page}
+%D \doifpositionsonthispageelse{point a}{point b}
+%D {action when on this page}
+%D {action when not on this page}
+%D \stoptyping
+
+\def\dododoifpositionsonsamepageelse#1%
+ {\ifcase\scratchcounter
+ \scratchcounter\MPp{##}\donetrue
+ \else
+ \ifnum\scratchcounter=\MPp{#1}\relax\else\donefalse\fi
+ \fi}%
+
+\def\dodoifpositionsonsamepageelse#1#2%
+ {\begingroup
+ \scratchcounter#1\donefalse
+ \rawprocesscommalist[#2]\dododoifpositionsonsamepageelse
+ \ifdone
+ \endgroup\expandafter\firstoftwoarguments
+ \else
+ \endgroup\expandafter\secondoftwoarguments
+ \fi}
+
+\def\doifpositionsonsamepageelse{\dodoifpositionsonsamepageelse\!!zerocount}
+\def\doifpositionsonthispageelse{\dodoifpositionsonsamepageelse\realfolio }
+
+%D Plugins:
+
+\let\MPv \MPplus
+\let\MPvv\MPrest
+
+\let\MPanchor\MPpos
+
+\let\POSp\MPp \let\POSx\MPx \let\POSy\MPy
+\let\POSh\MPh \let\POSd\MPd \let\POSw\MPw
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-snc.tex b/Master/texmf-dist/tex/context/base/anch-snc.mkii
index ac6960f4d06..cf5b35d6961 100644
--- a/Master/texmf-dist/tex/context/base/core-snc.tex
+++ b/Master/texmf-dist/tex/context/base/anch-snc.mkii
@@ -1,8 +1,8 @@
%D \module
-%D [ file=core-snc,
+%D [ file=anch-snc,
%D version=2003.12.01,
-%D title=\CONTEXT\ Core Macros,
-%D subtitle=Synchronization Support,
+%D title=\CONTEXT\ Anchoring Macros,
+%D subtitle=Synchronization,
%D author=Hans Hagen,
%D date=\currentdate,
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Synchronization}
+\writestatus{loading}{ConTeXt Anchoring Macros / Synchronization}
\unprotect
@@ -143,8 +143,6 @@
\starttext
-\setupcolors[state=start]
-
\definesyncpositions[1]
\startuseMPgraphic{sync}
diff --git a/Master/texmf-dist/tex/context/base/anch-snc.mkiv b/Master/texmf-dist/tex/context/base/anch-snc.mkiv
new file mode 100644
index 00000000000..1f361011102
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/anch-snc.mkiv
@@ -0,0 +1,185 @@
+%D \module
+%D [ file=anch-snc,
+%D version=2003.12.01,
+%D title=\CONTEXT\ Anchoring Macros,
+%D subtitle=Synchronization,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+% this can be optimized (will do when used again)
+
+\writestatus{loading}{ConTeXt Anchoring Macros / Synchronization}
+
+\unprotect
+
+\ifx\s!set \undefined \def\s!set {set} \fi
+\ifx\s!reset \undefined \def\s!reset {reset} \fi
+\ifx\s!preset \undefined \def\s!preset {preset} \fi
+\ifx\s!syncpos\undefined \def\s!syncpos{syncpos} \fi
+
+\def\definesyncpositions[#1]%
+ {\global\let\flushsyncpositions\doflushsyncpositions % only when used
+ \setcounter{\s!num:\s!syncpos:#1}{0}%
+ \doglobal\appendtoksonce\csname\s!reset :\s!syncpos:#1\endcsname\to\resetsyncpositions
+ \doglobal\appendtoksonce\csname\s!preset:\s!syncpos:#1\endcsname\to\presetsyncpositions
+% to be tested:
+% \doglobal\expandafter\appendtoksonce\csname\s!reset :\s!syncpos:#1\endcsname\to\resetsyncpositions
+% \doglobal\expandafter\appendtoksonce\csname\s!preset:\s!syncpos:#1\endcsname\to\presetsyncpositions
+ \setgvalue{\s!syncpos:#1}{sync_n[#1] := 0 ;}%
+ \setgvalue{\s!set:\s!syncpos:#1}{\dosetsyncpositions{#1}}}
+
+\def\syncposition
+ {\dodoubleempty\dosyncposition}
+
+\def\dosyncposition[#1][#2]%
+ {\letgvalue{\s!reset :\s!syncpos:#1}\relax
+ \letgvalue{\s!preset:\s!syncpos:#1}\relax
+ \dontleavehmode
+ \dodosyncposition{#1}{#2}\s!set
+ \ignorespaces}
+
+\def\doifelselastsyncposition#1#2%
+ {\doifelse{\lastsyncclass\lastsyncposition}{#1#2}}
+
+\def\dodosyncposition#1#2#3%
+ {\letgvalue{\s!reset:\s!syncpos:#1}\relax
+ \letgvalue{\s!preset:\s!syncpos:#1}\relax
+ \ifcsname\s!syncpos:#1\endcsname
+ \pluscounter{\s!num:\s!syncpos:#1}%
+ \setsyncpositions{#1}%
+ % option: geen w/h, alleen p 0 0 0 data
+ \setpositionplus
+ {\s!syncpos:#1:\countervalue{\s!num:\s!syncpos:#1}}%
+ {#2}%
+ \hbox{\strut\traceposstring\llap\green{#3/\countervalue{\s!num:\s!syncpos:#1}/#1/#2>>}}%
+ \else
+ \strut
+ \fi}
+
+\def\setsyncpositions#1%
+ {\enabletextarearegistration
+ \getvalue {\s!set:\s!syncpos:#1}%
+ \letgvalue{\s!set:\s!syncpos:#1}\relax}
+
+\def\dosetsyncpositions#1%
+ {\startnointerference % removing out of sync can best be done in mp
+ \!!dimena\maxdimen
+ \!!counta\zerocount
+ \!!countc\zerocount
+ \doloop
+ {\doifpositionelse{\s!syncpos:#1:\recurselevel}
+ {\!!dimenb\MPy{\s!syncpos:#1:\recurselevel}\relax
+ \!!countb\MPp{\s!syncpos:#1:\recurselevel}\relax
+ \ifnum\!!countb=\!!counta % same page
+ \ifdim\!!dimenb>\!!dimena
+ \donefalse % out of order nodes
+ \else
+ \donetrue % nodes in order
+ \fi
+ \else
+ \donetrue % different page
+ \fi
+ \ifdone
+ \!!counta\!!countb
+ \!!dimena\!!dimenb
+ \advance\!!countc\plusone
+ \edef\!!stringa{[#1][\the\!!countc]:=}%
+ \edef\!!stringc{\s!syncpos:#1:\the\!!countc}%
+ \edef\!!stringd{\MPplus\!!stringc{1}{0}}%
+ \setxvalue{\s!syncpos:#1}%
+ {\getsyncpositions{#1}%
+ sync_p \!!stringa \MPp \!!stringc ;
+ sync_xy\!!stringa \MPxy\!!stringc ;
+ sync_w \!!stringa \MPw \!!stringc ;
+ sync_h \!!stringa \MPh \!!stringc ;
+ sync_d \!!stringa \MPd \!!stringc ;
+ \ifx\!!stringd\empty \else sync_t \!!stringa \MPplus\!!stringc{1}{0} ; \fi}%
+ \fi}
+ {\setxvalue{\s!syncpos:#1}%
+ {\getsyncpositions{#1}%
+ sync_n[#1] := \the\!!countc ;}
+ \exitloop}}%
+ \stopnointerference}
+
+\def\getsyncpositions#1%
+ {\getvalue{\s!syncpos:#1}}
+
+\newtoks\resetsyncpositions
+\newtoks\presetsyncpositions
+
+\def\resyncposition {\dodoubleargument\doresyncposition}
+\def\presyncposition{\dodoubleargument\dopresyncposition}
+
+\def\dodoresyncposition #1#2{\dodosyncposition{#1}{#2}\s!reset}
+\def\dodopresyncposition#1#2{\dodosyncposition{#1}{#2}\s!preset}
+
+\def\doresyncposition [#1][#2]{\setxvalue{\s!reset :\s!syncpos:#1}{\noexpand\dodoresyncposition{#1}{#2}}}
+\def\dopresyncposition[#1][#2]{\setxvalue{\s!preset:\s!syncpos:#1}{\noexpand\dodopresyncposition{#1}{#2}}}
+
+\let\flushsyncpositions\relax
+
+\def\doflushsyncpositions % this order !
+ {\begingroup
+ \the\presetsyncpositions
+ \the\resetsyncpositions
+ \endgroup}
+
+\def\flushsyncxxsets#1%
+ {\setbox\scratchbox\hbox{\the#1}%
+ \ifvoid\scratchbox\else
+ \prewordbreak \let\prewordbreak\relax % only once
+ \smashbox\scratchbox
+ \box\scratchbox
+ \fi}
+
+\def\flushsyncresets {\flushsyncxxsets\resetsyncpositions }
+\def\flushsyncpresets{\flushsyncxxsets\presetsyncpositions}
+
+% \appendtoks \flushsyncpositions \to \everypar
+% \appendtoks \flushsyncpositions \to \everyheadstart
+
+% \explicitneverypar -> in grid snapper, eerst testen
+%
+% \appendtoks \flushsyncpositions \to \neverypar
+
+\protect \endinput
+
+\starttext
+
+\definesyncpositions[1]
+
+\startuseMPgraphic{sync}
+ StartPage ;
+ \getsyncpositions{1} ;
+ SyncThreshold := 2LineHeight ;
+ SyncLeftOffset := -.5LeftMarginDistance ;
+ % SetSyncThreshold(1,3,3LineHeight) ;
+ SyncWidth := - (BackSpace + SyncLeftOffset) ;
+ SetSyncColor(1,1,\MPcolor{red}) ;
+ SetSyncColor(1,2,\MPcolor{green}) ;
+ SetSyncColor(1,3,\MPcolor{blue}) ;
+ SetSyncColor(1,4,\MPcolor{yellow}) ;
+ PrepareSyncTasks(1,true,true,false) ;
+ for i = 1 upto NOfSyncPaths :
+ fill SyncPaths[i]
+ withcolor TheSyncColor(CurrentSyncClass,sync_t[CurrentSyncClass][SyncTasks[i]]) ;
+ endfor ;
+ setbounds currentpicture to Page ;
+ StopPage ;
+\stopuseMPgraphic
+
+\defineoverlay[tempoverlay][\useMPgraphic{sync}]
+
+\setupbackgrounds[page][background=tempoverlay]
+
+\syncposition[1][1] \input ward \endgraf
+\syncposition[1][2] \input ward \endgraf
+\syncposition[1][3] \input ward \endgraf
+\syncposition[1][4] \input ward \endgraf
+
+\stoptext
diff --git a/Master/texmf-dist/tex/context/base/attr-ini.lua b/Master/texmf-dist/tex/context/base/attr-ini.lua
index c339d467214..535488c35b1 100644
--- a/Master/texmf-dist/tex/context/base/attr-ini.lua
+++ b/Master/texmf-dist/tex/context/base/attr-ini.lua
@@ -6,505 +6,29 @@ if not modules then modules = { } end modules ['attr-ini'] = {
license = "see context related readme files"
}
--- todo: document this
-
--- nb: attributes: color etc is much slower than normal (marks + literals) but ...
--- nb. too many "0 g"s
-
---
--- nodes
---
-
-nodes = nodes or { }
-
-local format, concat = string.format, table.concat
-
--- This is not the most ideal place, but it will do. Maybe we need to move
--- attributes to node-att.lua.
-
-do
-
- -- just for testing
-
- local reserved = { }
-
- function nodes.register(n)
- reserved[#reserved+1] = n
- end
-
- function nodes.cleanup_reserved(nofboxes) -- todo
- local nr, free = #reserved, node.free
- for i=1,nr do
- free(reserved[i])
- end
- local nl, tb, flush = 0, tex.box, node.flush_list
- if nofboxes then
- for i=1,nofboxes do
- local l = tb[i]
- if l then
- -- flush(l)
- tb[i] = nil
- nl = nl + 1
- end
- end
- end
- reserved = { }
- return nr, nl, nofboxes
- end
-
-end
-
-do
-
- local pdfliteral = node.new("whatsit",8) pdfliteral.next, pdfliteral.prev = nil, nil pdfliteral.mode = 1
- local disc = node.new("disc") disc.next, disc.prev = nil, nil
- local kern = node.new("kern",1) kern.next, kern.prev = nil, nil
- local penalty = node.new("penalty") penalty.next, penalty.prev = nil, nil
- local glue = node.new("glue") glue.next, glue.prev = nil, nil
- local glue_spec = node.new("glue_spec") glue_spec.next, glue_spec.prev = nil, nil
- local glyph = node.new("glyph",0) glyph.next, glyph.prev = nil, nil
-
- nodes.register(pdfliteral)
- nodes.register(disc)
- nodes.register(kern)
- nodes.register(penalty)
- nodes.register(glue)
- nodes.register(glue_spec)
- nodes.register(glyph)
-
- local copy = node.copy
-
- function nodes.glyph(fnt,chr)
- local n = copy(glyph)
- if fnt then n.font = fnt end
- if chr then n.char = chr end
- return n
- end
- function nodes.penalty(p)
- local n = copy(penalty)
- n.penalty = p
- return n
- end
- function nodes.kern(k)
- local n = copy(kern)
- n.kern = k
- return n
- end
- function nodes.glue(width,stretch,shrink)
- local n = copy(glue)
- local s = copy(glue_spec)
- s.width, s.stretch, s.shrink = width, stretch, shrink
- n.spec = s
- return n
- end
- function nodes.glue_spec(width,stretch,shrink)
- local s = copy(glue_spec)
- s.width, s.stretch, s.shrink = width, stretch, shrink
- return s
- end
-
- function nodes.disc()
- return copy(disc)
- end
-
- function nodes.pdfliteral(str)
- local t = copy(pdfliteral)
- t.data = str
- return t
- end
-
-end
-
-function tex.node_mem_status()
- -- todo: lpeg
- local s = status.node_mem_usage
- local t = { }
- for n, tag in s:gmatch("(%d+) ([a-z_]+)") do
- t[tag] = n
- end
- return t
-end
+-- this module is being reconstructed
+-- we can also do the nsnone via a metatable and then also se index 0
---
--- attributes
---
+local type = type
+local format, gmatch = string.format, string.gmatch
+local concat = table.concat
+local texsprint = tex.sprint
-attributes = attributes or { }
+local ctxcatcodes = tex.ctxcatcodes
-attributes.names = attributes.names or { }
-attributes.numbers = attributes.numbers or { }
-attributes.list = attributes.list or { }
+-- todo: document this
-input.storage.register(false,"attributes/names", attributes.names, "attributes.names")
-input.storage.register(false,"attributes/numbers", attributes.numbers, "attributes.numbers")
-input.storage.register(false,"attributes/list", attributes.list, "attributes.list")
+-- nb: attributes: color etc is much slower than normal (marks + literals) but ...
+-- nb. too many "0 g"s
-function attributes.define(name,number)
- attributes.numbers[name], attributes.names[number], attributes.list[number] = number, name, { }
-end
+nodes = nodes or { }
+states = states or { }
+shipouts = shipouts or { }
-- We can distinguish between rules and glyphs but it's not worth the trouble. A
-- first implementation did that and while it saves a bit for glyphs and rules, it
-- costs more resourses for transparencies. So why bother.
--- namespace for all those features / plural becomes singular
-
--- i will do the resource stuff later, when we have an interface to pdf (ok, i can
--- fake it with tokens but it will take some coding
-
-function totokens(str)
- local t = { }
---~ for c in string.bytes(str) do
- for c in str:bytes() do
- t[#t+1] = { 12, c }
- end
- return t
-end
-
--- temp hack, will be proper driver stuff
-
-backends = backends or { }
-backends.pdf = backends.pdf or { }
-backend = backend or backends.pdf
-
-do
-
- local pdfliteral, register = nodes.pdfliteral, nodes.register
-
- function backends.pdf.literal(str)
- local t = pdfliteral(str)
- register(t)
- return t
- end
-
-end
-
--- shipouts
-
-shipouts = shipouts or { }
-shipouts.plugins = shipouts.plugins or { }
-
-do
-
- local pairs = pairs -- in theory faster
-
- local hlist, vlist = node.id('hlist'), node.id('vlist')
-
- local has_attribute = node.has_attribute
-
- nodes.trigger = nodes.trigger or false
- nodes.triggering = nodes.triggering or false
-
- -- we used to do the main processor loop here and call processor for each node
- -- but eventually this was too much a slow down (1 sec on 23 for 120 pages mk)
- -- so that we moved looping to the processor itself; this may lead to a bit of
- -- duplicate code once that we have more state handlers
-
- local starttiming, stoptiming = input.starttiming, input.stoptiming
-
- local function process_attributes(head,plugins)
- if head then -- is already tested
- starttiming(attributes)
- local done, used = false, { }
- local trigger, numbers = nodes.trigger, attributes.numbers
- for name, plugin in pairs(plugins) do
- local attribute = numbers[name]
- if attribute then
- local namespace = plugin.namespace
- if namespace.enabled then
- local initializer = plugin.initializer
- local processor = plugin.processor
- local finalizer = plugin.finalizer
- local resolver = plugin.resolver
- if initializer then
- initializer(namespace,attribute,head)
- end
- if processor then
- local inheritance = (resolver and resolver()) or -1
- local ok -- = false
- head, ok = processor(namespace,attribute,head,inheritance)
- done = done or ok
- end
- if finalizer then -- no need when not ok
- local ok -- = false
- head, ok, used[attribute] = finalizer(namespace,attribute,head)
- done = done or ok
- end
- end
- else
- texio.write_nl(format("undefined attribute %s",name))
- end
- end
- if done then
- for name, plugin in pairs(plugins) do
- local attribute = numbers[name]
- if used[attribute] then
- local namespace = plugin.namespace
- if namespace.enabled then
- local flusher = plugin.flusher
- if flusher then
- local h, d = flusher(namespace,attribute,head,used[attribute])
- head = h
- end
- end
- end
- end
- end
- stoptiming(attributes)
- return head, done
- else
- return head, false
- end
- end
-
- nodes.process_attributes = process_attributes
-
- --~ glyph = 746876
- --~ glue = 376096
- --~ hlist = 152284
- --~ disc = 47224
- --~ kern = 41504
- --~ penalty = 31964
- --~ whatsit = 29048
- --~ vlist = 20136
- --~ rule = 13292
- --~ mark = 4304
- --~ math = 1072
-
- local disc, mark, free = node.id('disc'), node.id('mark'), node.free
-
- local function cleanup_page(head) -- rough
- local prev, start = nil, head
- while start do
- local id, nx = start.id, start.next
- if id == disc or id == mark then
- if prev then
- prev.next = nx
- end
- if start == head then
- head = nx
- end
- local tmp = start
- start = nx
- free(tmp)
- elseif id == hlist or id == vlist then
- local sl = start.list
- if sl then
- start.list = cleanup_page(sl)
- end
- prev, start = start, nx
- else
- prev, start = start, nx
- end
- end
- return head
- end
-
- nodes.cleanup_page = cleanup_page
-
- nodes.cleanup_page_first = false
-
- function nodes.process_page(head)
- if nodes.cleanup_page_first then
- head = cleanup_page(head)
- end
- return process_attributes(head,shipouts.plugins)
- end
-
-end
-
---
--- generic handlers
---
-
-states = { }
-
-do
-
- local glyph, rule, whatsit, hlist, vlist = node.id('glyph'), node.id('rule'), node.id('whatsit'), node.id('hlist'), node.id('vlist')
-
- local has_attribute, copy = node.has_attribute, node.copy
-
- local current, used, done = 0, { }, false
-
- function states.initialize(what, attribute, stack)
- current, used, done = 0, { }, false
- end
-
- local function insert(n,stack,previous,head) -- there is a helper, we need previous because we are not slided
- if n then
- n = copy(n)
- n.next = stack
- if previous then
- previous.next = n
- else
- head = n
- end
- previous = n
- end
- return stack, head
- end
-
- function states.finalize(namespace,attribute,head) -- is this one ok?
- if current > 0 then
- local nn = namespace.none
- if nn then
- local id = head.id
- if id == hlist or id == vlist then
- local list = head.list
- if list then
- local _, h = insert(nn,list,nil,list)
- head.list = h
- end
- else
- stack, head = insert(nn,head,nil,head)
- end
- return head, true, true
- end
- end
- return head, false, false
- end
-
- local function process(namespace,attribute,head,inheritance,default) -- one attribute
- local trigger = namespace.triggering and nodes.triggering and nodes.trigger
- local stack, previous, done = head, nil, false
- local nsdata, nsreviver, nsnone = namespace.data, namespace.reviver, namespace.none
- while stack do
- local id = stack.id
- if id == glyph or id == whatsit or id == rule then -- or disc
- local c = has_attribute(stack,attribute)
- if c then
- if default and c == inheritance then
- if current ~= default then
- local data = nsdata[default] or nsreviver(default)
- stack, head = insert(data,stack,previous,head)
- current, done, used[default] = default, true, true
- end
- elseif current ~= c then
- local data = nsdata[c] or nsreviver(c)
- stack, head = insert(data,stack,previous,head)
- current, done, used[c] = c, true, true
- end
- elseif default and inheritance then
- if current ~= default then
- local data = nsdata[default] or nsreviver(default)
- stack, head = insert(data,stack,previous,head)
- current, done, used[default] = default, true, true
- end
- elseif current > 0 then
- stack, head = insert(nsnone,stack,previous,head)
- current, done, used[0] = 0, true, true
- end
- elseif id == hlist or id == vlist then
- local content = stack.list
- if content then
- local ok = false
- if trigger and has_attribute(stack,trigger) then
- local outer = has_attribute(stack,attribute)
- if outer ~= inheritance then
- stack.list, ok = process(namespace,attribute,content,inheritance,outer)
- else
- stack.list, ok = process(namespace,attribute,content,inheritance,default)
- end
- else
- stack.list, ok = process(namespace,attribute,content,inheritance,default)
- end
- done = done or ok
- end
- end
- previous = stack
- stack = stack.next
- end
- return head, done
- end
-
- states.process = process
-
- -- we can force a selector, e.g. document wide color spaces, saves a little
-
- local function selective(namespace,attribute,head,inheritance,default) -- two attributes
- local trigger = namespace.triggering and nodes.triggering and nodes.trigger
- local stack, previous, done = head, nil, false
- local nsselector, nsforced, nsselector = namespace.default, namespace.forced, namespace.selector
- local nsdata, nsreviver, nsnone = namespace.data, namespace.reviver, namespace.none
- while stack do
- local id = stack.id
- if id == glyph or id == whatsit or id == rule then -- or disc
- -- todo: maybe track two states, also selector
- local c = has_attribute(stack,attribute)
- if c then
- if default and c == inheritance then
- if current ~= default then
- local data = nsdata[default] or nsreviver(default)
- stack, head = insert(data[nsforced or has_attribute(stack,nsselector) or nsselector],stack,previous,head)
- current, done, used[default] = default, true, true
- end
- elseif current ~= c then
- local data = nsdata[c] or nsreviver(c)
- stack, head = insert(data[nsforced or has_attribute(stack,nsselector) or nsselector],stack,previous,head)
- current, done, used[c] = c, true, true
- end
- elseif default and inheritance then
- if current ~= default then
- local data = nsdata[default] or nsreviver(default)
- stack, head = insert(data[nsforced or has_attribute(stack,nsselector) or nsselector],stack,previous,head)
- current, done, used[default] = default, true, true
- end
- elseif current > 0 then
- stack, head = insert(nsnone,stack,previous,head)
- current, done, used[0] = 0, true, true
- end
- elseif id == hlist or id == vlist then
- local content = stack.list
- if content then
- local ok = false
- if trigger and has_attribute(stack,trigger) then
- local outer = has_attribute(stack,attribute)
- if outer ~= inheritance then
- stack.list, ok = selective(namespace,attribute,content,inheritance,outer)
- else
- stack.list, ok = selective(namespace,attribute,content,inheritance,default)
- end
- else
- stack.list, ok = selective(namespace,attribute,content,inheritance,default)
- end
- done = done or ok
- end
- end
- previous = stack
- stack = stack.next
- end
- return head, done
- end
-
- states.selective = selective
-
-end
-
-states = states or { }
-states.collected = states.collected or { }
-
-input.storage.register(false,"states/collected", states.collected, "states.collected")
-
-function states.collect(str)
- local collected = states.collected
- collected[#collected+1] = str
-end
-
-function states.flush()
- local collected = states.collected
- if #collected > 0 then
- for i=1,#collected do
- tex.sprint(tex.ctxcatcodes,collected[i]) -- we're in context mode anyway
- end
- states.collected = { }
- end
-end
-
-function states.check()
- texio.write_nl(concat(states.collected,"\n"))
-end
-
--
-- colors
--
@@ -513,21 +37,9 @@ end
-- at the tex end add 0, 1, 2, but this is not faster and less
-- flexible (since sometimes we freeze color attribute values at
-- the lua end of the game
-
+--
-- we also need to store the colorvalues because we need then in mp
-
-colors = colors or { }
-colors.data = colors.data or { }
-colors.values = colors.values or { }
-colors.registered = colors.registered or { }
-colors.enabled = true
-colors.weightgray = true
-colors.attribute = 0
-colors.selector = 0
-colors.default = 1
-colors.main = nil
-colors.triggering = true
-
+--
-- This is a compromis between speed and simplicity. We used to store the
-- values and data in one array, which made in neccessary to store the
-- converters that need node constructor into strings and evaluate them
@@ -539,21 +51,34 @@ colors.triggering = true
-- colors.strings[color] = "return colors." .. colorspace .. "(" .. concat({...},",") .. ")"
-- end
--
--- input.storage.register(true,"colors/data", colors.strings, "colors.data") -- evaluated
+-- storage.register("colors/data", colors.strings, "colors.data") -- evaluated
--
-- We assume that only processcolors are defined in the format.
-input.storage.register(false,"colors/values", colors.values, "colors.values")
-input.storage.register(false,"colors/registered", colors.registered, "colors.registered")
+colors = colors or { }
+colors.data = colors.data or { }
+colors.values = colors.values or { }
+colors.registered = colors.registered or { }
-colors.stamps = {
+colors.enabled = true
+colors.weightgray = true
+colors.attribute = attributes.private('color')
+colors.selector = attributes.private('colormodel')
+colors.default = 1
+colors.main = nil
+colors.triggering = true
+
+storage.register("colors/values", colors.values, "colors.values")
+storage.register("colors/registered", colors.registered, "colors.registered")
+
+local templates = {
rgb = "r:%s:%s:%s",
cmyk = "c:%s:%s:%s:%s",
gray = "s:%s",
spot = "p:%s:%s:%s:%s"
}
-colors.models = {
+local models = {
all = 1,
gray = 2,
rgb = 3,
@@ -562,324 +87,469 @@ colors.models = {
colors.model = "all"
-do
+local data = colors.data
+local values = colors.values
+local registered = colors.registered
- local min = math.min
- local max = math.max
+local numbers = attributes.numbers
+local list = attributes.list
- local function rgbdata(r,g,b) -- dodo: backends.pdf.rgbdata
- return backends.pdf.literal(format("%s %s %s rg %s %s %s RG",r,g,b,r,g,b))
- end
+local min = math.min
+local max = math.max
- local function cmykdata(c,m,y,k)
- return backends.pdf.literal(format("%s %s %s %s k %s %s %s %s K",c,m,y,k,c,m,y,k))
- end
+local nodeinjections = backends.nodeinjections
+local codeinjections = backends.codeinjections
+local registrations = backends.registrations
- local function graydata(s)
- return backends.pdf.literal(format("%s g %s G",s,s))
- end
+local function rgbtocmyk(r,g,b) -- we could reduce
+ return 1-r, 1-g, 1-b, 0
+end
- local function spotdata(n,f,d,p)
- if type(p) == "string" then
- p = p:gsub(","," ") -- brr misuse of spot
- end
- return backends.pdf.literal(format("/%s cs /%s CS %s SCN %s scn",n,n,p,p))
- end
+local function cmyktorgb(c,m,y,k)
+ return 1.0 - min(1.0,c+k), 1.0 - min(1.0,m+k), 1.0 - min(1.0,y+k)
+end
- local function rgbtocmyk(r,g,b) -- we could reduce
- return 1-r, 1-g, 1-b, 0
+local function rgbtogray(r,g,b)
+ if colors.weightgray then
+ return .30*r+.59*g+.11*b
+ else
+ return r/3+g/3+b/3
end
+end
- local function cmyktorgb(c,m,y,k)
- return 1.0 - min(1.0,c+k), 1.0 - min(1.0,m+k), 1.0 - min(1.0,y+k)
- end
+local function cmyktogray(c,m,y,k)
+ return rgbtogray(cmyktorgb(c,m,y,k))
+end
- local function rgbtogray(r,g,b)
- if colors.weightgray then
- return .30*r+.59*g+.11*b
- else
- return r/3+g/3+b/3
- end
- end
+colors.rgbtocmyk = rgbtocmyk
+colors.rgbtogray = rgbtogray
+colors.cmyktorgb = cmyktorgb
+colors.cmyktogray = cmyktogray
- local function cmyktogray(c,m,y,k)
- return rgbtogray(cmyktorgb(c,m,y,k))
- end
+-- we can share some *data by using s, rgb and cmyk hashes, but
+-- normally the amount of colors is not that large; storing the
+-- components costs a bit of extra runtime, but we expect to gain
+-- some back because we have them at hand; the number indicates the
+-- default color space
- colors.rgbtocmyk = rgbtocmyk
- colors.rgbtogray = rgbtogray
- colors.cmyktorgb = cmyktorgb
- colors.cmyktogray = cmyktogray
+function colors.gray(s)
+ return { 2, s, s, s, s, 0, 0, 0, 1-s }
+end
- -- we can share some *data by using s, rgb and cmyk hashes, but
- -- normally the amount of colors is not that large; storing the
- -- components costs a bit of extra runtime, but we expect to gain
- -- some back because we have them at hand; the number indicates the
- -- default color space
+function colors.rgb(r,g,b)
+ local s = rgbtogray(r,g,b)
+ local c, m, y, k = rgbtocmyk(r,g,b)
+ return { 3, s, r, g, b, c, m, y, k }
+end
- function colors.gray(s)
- return { 2, s, s, s, s, 0, 0, 0, 1-s }
- end
+function colors.cmyk(c,m,y,k)
+ local s = cmyktogray(c,m,y,k)
+ local r, g, b = cmyktorgb(c,m,y,k)
+ return { 4, s, r, g, b, c, m, y, k }
+end
- function colors.rgb(r,g,b)
- local s = rgbtogray(r,g,b)
- local c, m, y, k = rgbtocmyk(r,g,b)
- return { 3, s, r, g, b, c, m, y, k }
- end
+--~ function colors.spot(parent,f,d,p)
+--~ return { 5, .5, .5, .5, .5, 0, 0, 0, .5, parent, f, d, p }
+--~ end
- function colors.cmyk(c,m,y,k)
- local s = cmyktogray(c,m,y,k)
- local r, g, b = cmyktorgb(c,m,y,k)
- return { 4, s, r, g, b, c, m, y, k }
+function colors.spot(parent,f,d,p)
+ if type(p) == "number" then
+ local n = list[numbers.color][parent] -- hard coded ref to color number
+ if n then
+ local v = values[n]
+ if v then
+ -- the via cmyk hack is dirty, but it scales better
+ local c, m, y, k = p*v[6], p*v[7], p*v[8], p*v[8]
+ local r, g, b = cmyktorgb(c,m,y,k)
+ local s = cmyktogray(c,m,y,k)
+ return { 5, s, r, g, b, c, m, y, k, parent, f, d, p }
+ end
+ end
+ else
+ -- todo, multitone (maybe p should be a table)
end
+ return { 5, .5, .5, .5, .5, 0, 0, 0, .5, parent, f, d, p }
+end
- function colors.spot(parent,f,d,p)
---~ if type(p) == "string" and p:find(",") then
---~ -- use converted replacement (combination color)
---~ else
---~ -- todo: map gray, rgb, cmyk onto fraction*parent
---~ end
- return { 5, .5, .5, .5, .5, 0, 0, 0, .5, parent, f, d, p }
- end
+local function graycolor(...) graycolor = nodeinjections.graycolor return graycolor(...) end
+local function rgbcolor (...) rgbcolor = nodeinjections.rgbcolor return rgbcolor (...) end
+local function cmykcolor(...) cmykcolor = nodeinjections.cmykcolor return cmykcolor(...) end
+local function spotcolor(...) spotcolor = nodeinjections.spotcolor return spotcolor(...) end
- function colors.reviver(n)
- local d = colors.data[n]
- if not d then
- local v = colors.values[n]
- if not v then
- local gray = graydata(0)
- d = { gray, gray, gray, gray }
- logs.report("attributes",format("unable to revive color %s",n or "?"))
- else
- local kind, gray, rgb, cmyk = v[1], graydata(v[2]), rgbdata(v[3],v[4],v[5]), cmykdata(v[6],v[7],v[8],v[9])
- if kind == 2 then
- d = { gray, gray, gray, gray }
- elseif kind == 3 then
- d = { rgb, gray, rgb, cmyk }
- elseif kind == 4 then
- d = { cmyk, gray, rgb, cmyk }
- elseif kind == 5 then
- local spot = spotdata(v[10],v[11],v[12],v[13])
- d = { spot, gray, rgb, cmyk }
- end
- end
- colors.data[n] = d
- end
+local function extender(colors,key)
+ if key == "none" then
+ local d = graycolor(0)
+ colors.none = d
return d
end
+end
- function colors.filter(n)
- return concat(colors.data[n],":",5)
+local function reviver(data,n)
+ local v = values[n]
+ local d
+ if not v then
+ local gray = graycolor(0)
+ d = { gray, gray, gray, gray }
+ logs.report("attributes","unable to revive color %s",n or "?")
+ else
+ local kind, gray, rgb, cmyk = v[1], graycolor(v[2]), rgbcolor(v[3],v[4],v[5]), cmykcolor(v[6],v[7],v[8],v[9])
+ if kind == 2 then
+ d = { gray, gray, gray, gray }
+ elseif kind == 3 then
+ d = { rgb, gray, rgb, cmyk }
+ elseif kind == 4 then
+ d = { cmyk, gray, rgb, cmyk }
+ elseif kind == 5 then
+ local spot = spotcolor(v[10],v[11],v[12],v[13])
+ d = { spot, gray, rgb, cmyk }
+ end
end
+ data[n] = d
+ return d
+end
- colors.none = graydata(0)
+setmetatable(colors, { __index = extender })
+setmetatable(colors.data, { __index = reviver })
+function colors.filter(n)
+ return concat(data[n],":",5)
end
-function colors.setmodel(attribute,name)
+function colors.setmodel(name,weightgray)
colors.model = name
- colors.selector = attributes.numbers[attribute]
- colors.default = colors.models[name] or 1
+ colors.default = models[name] or 1
+ colors.weightgray = weightgray ~= false
return colors.default
end
-function colors.register(attribute, name, colorspace, ...) -- passing 9 vars is faster
- local stamp = format(colors.stamps[colorspace], ...)
- local color = colors.registered[stamp]
+function colors.register(name, colorspace, ...) -- passing 9 vars is faster (but not called that often)
+ local stamp = format(templates[colorspace],...)
+ local color = registered[stamp]
if not color then
- color = #colors.values+1
- colors.values[color] = colors[colorspace](...)
- colors.registered[stamp] = color
- colors.reviver(color)
+ color = #values+1
+ values[color] = colors[colorspace](...)
+ registered[stamp] = color
+ -- colors.reviver(color)
end
if name then
- attributes.list[attributes.numbers[attribute]][name] = color -- not grouped, so only global colors
+ list[colors.attribute][name] = color -- not grouped, so only global colors
end
- return colors.registered[stamp]
+ return registered[stamp]
end
function colors.value(id)
- return colors.values[id]
+ return values[id]
end
-shipouts.plugins.color = {
+shipouts.handle_color = nodes.install_attribute_handler {
+ name = "color",
namespace = colors,
initializer = states.initialize,
finalizer = states.finalize,
processor = states.selective,
- resolver = function(...) return colors.main end,
+ resolver = function() return colors.main end,
}
-- transparencies
--- for the moment we manage transparencies in the pdf driver because
--- first we need a nice interface to some pdf things
-
transparencies = transparencies or { }
transparencies.registered = transparencies.registered or { }
transparencies.data = transparencies.data or { }
transparencies.values = transparencies.values or { }
transparencies.enabled = false
-transparencies.template = "%s:%s"
transparencies.triggering = true
+transparencies.attribute = attributes.private('transparency')
+
+storage.register("transparencies/registered", transparencies.registered, "transparencies.registered")
+storage.register("transparencies/values", transparencies.values, "transparencies.values")
-input.storage.register(false, "transparencies/registered", transparencies.registered, "transparencies.registered")
-input.storage.register(false, "transparencies/values", transparencies.values, "transparencies.values")
+local registered = transparencies.registered -- we could use a 2 dimensional table instead
+local data = transparencies.data
+local values = transparencies.values
+local template = "%s:%s"
+
+local function inject_transparency (...)
+ inject_transparency = nodeinjections.transparency
+ return inject_transparency(...)
+end
-function transparencies.reference(n)
- return backends.pdf.literal(format("/Tr%s gs",n))
+local function register_transparency(...)
+ register_transparency = registrations.transparency
+ return register_transparency(...)
end
-function transparencies.register(name,a,t)
- local stamp = format(transparencies.template,a,t)
- local n = transparencies.registered[stamp]
+function transparencies.register(name,a,t,force) -- name is irrelevant here (can even be nil)
+ -- Force needed here for metapost converter. We could always force
+ -- but then we'd end up with transparencies resources even if we
+ -- would not use transparencies (but define them only). This is
+ -- somewhat messy.
+ local stamp = format(template,a,t)
+ local n = registered[stamp]
if not n then
- n = #transparencies.data+1
- transparencies.data[n] = transparencies.reference(n)
- transparencies.values[n] = { a, t }
- transparencies.registered[stamp] = n
- states.collect(format("\\presetPDFtransparencybynumber{%s}{%s}{%s}",n,a,t)) -- too many, but experimental anyway
- end
- return transparencies.registered[stamp]
-end
-
-function transparencies.reviver(n)
- local d = transparencies.data[n]
- if not d then
- local v = transparencies.values[n]
- if not v then
- d = transparencies.reference(0)
- logs.report("attributes",format("unable to revive transparency %s",n or "?"))
- else
- d = transparencies.reference(n)
- states.collect(format("\\presetPDFtransparencybynumber{%s}{%s}{%s}",n,v[1],v[2]))
+ n = #values + 1
+ values[n] = { a, t }
+ registered[stamp] = n
+ if force then
+ register_transparency(n,a,t)
end
- transparencies.data[n] = d
+ elseif force and not data[n] then
+ register_transparency(n,a,t)
end
- return d
+ return registered[stamp]
end
--- check if there is an identity
+local function extender(transparencies,key)
+ if key == "none" then
+ local d = inject_transparency(0)
+ transparencies.none = d
+ return d
+ end
+end
---~ transparencies.none = transparencies.reference(transparencies.register(nil,1,1))
+local function reviver(data,n)
+ local v = values[n]
+ local d
+ if not v then
+ d = inject_transparency(0)
+ else
+ d = inject_transparency(n)
+ register_transparency(n,v[1],v[2])
+ end
+ data[n] = d
+ return d
+end
+
+setmetatable(transparencies, { __index = extender })
+setmetatable(transparencies.data, { __index = reviver }) -- register if used
-transparencies.none = transparencies.reference(0) -- for the moment the pdf backend does this
+-- check if there is an identity
function transparencies.value(id)
- return transparencies.values[id]
+ return values[id]
end
-shipouts.plugins.transparency = {
+shipouts.handle_transparency = nodes.install_attribute_handler {
+ name = "transparency",
namespace = transparencies,
initializer = states.initialize,
- finalizer = states.finalize ,
- processor = states.process ,
+ finalizer = states.finalize,
+ processor = states.process,
}
--- overprint / knockout
-overprints = overprints or { }
-overprints.data = overprints.data or { }
-overprints.enabled = false
-
-overprints.data[1] = backends.pdf.literal(format("/GSoverprint gs"))
-overprints.data[2] = backends.pdf.literal(format("/GSknockout gs"))
-
-overprints.none = overprints.data[1]
+overprints = overprints or { }
+overprints.data = overprints.data or { }
+overprints.enabled = false
+overprints.attribute = attributes.private('overprint')
overprints.registered = {
overprint = 1,
knockout = 2,
}
+local data, registered = overprints.data, overprints.registered
+
+local function extender(overprints,key)
+ if key == "none" then
+ local d = data[2]
+ overprints.none = d
+ return d
+ end
+end
+
+local function reviver(data,n)
+ if n == 1 then
+ local d = nodeinjections.overprint() -- called once
+ data[1] = d
+ return d
+ elseif n == 2 then
+ local d = nodeinjections.knockout() -- called once
+ data[2] = d
+ return d
+ end
+end
+
+setmetatable(overprints, { __index = extender })
+setmetatable(overprints.data, { __index = reviver })
+
function overprints.register(stamp)
--- states.collect(tex.sprint(tex.ctxcatcodes,"\\initializePDFoverprint")) -- to be testd
- return overprints.registered[stamp] or overprints.registered.overprint
+ return registered[stamp] or registered.overprint
end
-shipouts.plugins.overprint = {
+shipouts.handle_overprint = nodes.install_attribute_handler {
+ name = "overprint",
namespace = overprints,
initializer = states.initialize,
- finalizer = states.finalize ,
- processor = states.process ,
+ finalizer = states.finalize,
+ processor = states.process,
}
--- negative / positive
-negatives = netatives or { }
-negatives.data = negatives.data or { }
-negatives.enabled = false
-
-negatives.data[1] = backends.pdf.literal(format("/GSpositive gs"))
-negatives.data[2] = backends.pdf.literal(format("/GSnegative gs"))
-
-negatives.none = negatives.data[1]
+negatives = negatives or { }
+negatives.data = negatives.data or { }
+negatives.enabled = false
+negatives.attribute = attributes.private("negative")
negatives.registered = {
positive = 1,
negative = 2,
}
+local data, registered = negatives.data, negatives.registered
+
+local function extender(negatives,key)
+ if key == "none" then
+ local d = data[1]
+ negatives.none = d
+ return d
+ end
+end
+
+local function reviver(data,n)
+ if n == 1 then
+ local d = nodeinjections.positive() -- called once
+ data[1] = d
+ return d
+ elseif n == 2 then
+ local d = nodeinjections.negative() -- called once
+ data[2] = d
+ return d
+ end
+end
+
+setmetatable(negatives, { __index = extender })
+setmetatable(negatives.data, { __index = reviver })
+
function negatives.register(stamp)
--- states.collect(tex.sprint(tex.ctxcatcodes,"\\initializePDFnegative")) -- to be testd
- return negatives.registered[stamp] or negatives.registered.positive
+ return registered[stamp] or registered.positive
end
-shipouts.plugins.negative = {
+shipouts.handle_negative = nodes.install_attribute_handler {
+ name = "negative",
namespace = negatives,
initializer = states.initialize,
finalizer = states.finalize,
processor = states.process,
}
--- effects
+-- effects -- can be optimized (todo: metatables)
effects = effects or { }
effects.data = effects.data or { }
+effects.values = effects.values or { }
effects.registered = effects.registered or { }
effects.enabled = false
effects.stamp = "%s:%s:%s"
+effects.attribute = attributes.private("effect")
-input.storage.register(false, "effects/registered", effects.registered, "effects.registered")
-input.storage.register(false, "effects/data", effects.data, "effects.data")
+storage.register("effects/registered", effects.registered, "effects.registered")
+storage.register("effects/values", effects.values, "effects.values")
-function effects.register(effect,stretch,rulethickness)
- local stamp = format(effects.stamp,effect,stretch,rulethickness)
- local n = effects.registered[stamp]
- if not n then
- n = #effects.data+1
- effects.data[n] = effects.reference(effect,stretch,rulethickness)
- effects.registered[stamp] = n
- -- states.collect("") -- nothing
+local data, registered, values = effects.data, effects.registered, effects.values
+
+-- valid effects: normal inner outer both hidden (stretch,rulethickness,effect)
+
+local function effect(...) effect = nodeinjections.effect return effect(...) end
+
+local function extender(effects,key)
+ if key == "none" then
+ local d = effect(0,0,0)
+ effects.none = d
+ return d
end
- return effects.registered[stamp]
end
-backends.pdf.effects = {
- normal = 0,
- inner = 0,
- outer = 1,
- both = 2,
- hidden = 3,
-}
-
-function effects.reference(effect,stretch,rulethickness)
- -- always, no zero test (removed)
- rulethickness = number.dimenfactors["bp"]*rulethickness
- effect = backends.pdf.effects[effect] or backends.pdf.effects['normal']
- return backends.pdf.literal(format("%s Tc %s w %s Tr",stretch,rulethickness,effect)) -- watch order
+local function reviver(data,n)
+ local e = values[n] -- we could nil values[n] now but hardly needed
+ local d = effect(v[1],v[2],v[3])
+ data[n] = d
+ return d
end
-effects.none = effects.reference(0,0,0) -- faster: backends.pdf.literal("0 Tc 0 w 0 Tr")
+setmetatable(effects, { __index = extender })
+setmetatable(effects.data, { __index = reviver })
+
+function effects.register(effect,stretch,rulethickness)
+ local stamp = format(effects.stamp,effect,stretch,rulethickness)
+ local n = registered[stamp]
+ if not n then
+ n = #values + 1
+ values[n] = { effect, stretch, rulethickness }
+ registered[stamp] = n
+ end
+ return n
+end
-shipouts.plugins.effect = {
+shipouts.handle_effect = nodes.install_attribute_handler {
+ name = "effect",
namespace = effects,
initializer = states.initialize,
finalizer = states.finalize,
processor = states.process,
}
--- layers
+-- layers (ugly code, due to no grouping and such); currently we use exclusive layers
+-- but when we need it stacked layers might show up too; the next function based
+-- approach can be replaced by static (metatable driven) resolvers
+
+viewerlayers = viewerlayers or { }
+viewerlayers.data = viewerlayers.data or { }
+viewerlayers.registered = viewerlayers.registered or { }
+viewerlayers.values = viewerlayers.values or { }
+viewerlayers.listwise = viewerlayers.listwise or { }
+viewerlayers.enabled = false
+viewerlayers.attribute = attributes.private("viewerlayer")
+
+storage.register("viewerlayers/registered", viewerlayers.registered, "viewerlayers.registered")
+storage.register("viewerlayers/values", viewerlayers.values, "viewerlayers.values")
+
+local data = viewerlayers.data
+local values = viewerlayers.values
+local listwise = viewerlayers.listwise
+local registered = viewerlayers.registered
+local template = "%s"
+
+-- stacked
+
+local function extender(viewerlayers,key)
+ if key == "none" then
+ local d = nodeinjections.stoplayer()
+ viewerlayers.none = d
+ return d
+ end
+end
+
+local function reviver(data,n)
+ local d = nodeinjections.startlayer(values[n])
+ data[n] = d
+ return d
+end
---~ /OC /somename BDC
---~ EMC
+setmetatable(viewerlayers, { __index = extender })
+setmetatable(viewerlayers.data, { __index = reviver })
+
+local function initializer(...)
+ return states.initialize(...)
+end
+
+viewerlayers.register = function(name,lw) -- if not inimode redefine data[n] in first call
+ local stamp = format(template,name)
+ local n = registered[stamp]
+ if not n then
+ n = #values + 1
+ values[n] = name
+ registered[stamp] = n
+ listwise[n] = lw or false
+ end
+ return registered[stamp] -- == n
+end
+
+shipouts.handle_viewerlayer = nodes.install_attribute_handler {
+ name = "viewerlayer",
+ namespace = viewerlayers,
+ initializer = initializer,
+ finalizer = states.finalize,
+ processor = states.stacked,
+}
diff --git a/Master/texmf-dist/tex/context/base/attr-ini.mkiv b/Master/texmf-dist/tex/context/base/attr-ini.mkiv
new file mode 100644
index 00000000000..b90d4976b00
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/attr-ini.mkiv
@@ -0,0 +1,154 @@
+%D \module
+%D [ file=attr-ini,
+%D version=2007.06.06,
+%D title=\CONTEXT\ Attribute Macros,
+%D subtitle=Initialization,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA-ADE]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Attribute Macros / Initialization}
+
+%D Although it's still somewhat experimental, here we introduce code
+%D related to attributes.
+
+\unprotect
+
+\registerctxluafile{attr-ini}{1.001}
+
+\definesystemattribute[state]
+\definesystemattribute[skip]
+\definesystemattribute[penalty]
+\definesystemattribute[colormodel][global] \chardef\colormodelattribute \dogetattributeid{colormodel}
+\definesystemattribute[color] \chardef\colorattribute \dogetattributeid{color}
+\definesystemattribute[transparency] \chardef\transparencyattribute \dogetattributeid{transparency}
+\definesystemattribute[background] \chardef\backgroundattribute \dogetattributeid{background}
+\definesystemattribute[overprint]
+\definesystemattribute[negative]
+\definesystemattribute[effect]
+\definesystemattribute[viewerlayer] \chardef\viewerlayerattribute \dogetattributeid{viewerlayer}
+\definesystemattribute[layoutcomponent] \chardef\layoutcomponentattribute\dogetattributeid{layoutcomponent}
+\definesystemattribute[reference] \chardef\referenceattribute \dogetattributeid{reference}
+\definesystemattribute[destination] \chardef\destinationattribute \dogetattributeid{destination}
+\definesystemattribute[graphicvadjust] \chardef\graphicvadjustattribute \dogetattributeid{graphicvadjust}
+
+% \definesystemattribute[ignore]
+%
+% \edef\startignorecontent{\dosetattribute{ignore}\plusone}
+% \edef\stopignorecontent {\doresetattribute{ignore}}
+
+% todo: no need for 'color' argument, we can set that once at startup; currently
+% a bit inconsistent
+
+% 1=off 2=gray 3=spot 4=rgb 5=cmyk 6=cmy % only 1/2/4/5 are supported
+%
+% We could combine this in one attribute but this is not faster and also
+% less flexible because sometimes we want to freeze the attribute bit.
+%
+% Watch out: real color support will be implemented later.
+
+\newcount\currentcolormodel
+
+\def\setcolormodel#1%
+ {\currentcolormodel\ctxlua{tex.print(colors.setmodel('#1'))}%
+ \dosetattribute{colormodel}{\the\currentcolormodel}}
+
+\setcolormodel{all}
+
+\appendtoks
+ \setcolormodel{all}% redundant?
+\to \everyjob
+
+\def\registerrgbcolor #1#2#3#4{\ctxlua{colors.register('#1','rgb' ,#2,#3,#4)}}
+\def\registercmykcolor#1#2#3#4#5{\ctxlua{colors.register('#1','cmyk',#2,#3,#4,#5)}}
+\def\registergraycolor #1#2{\ctxlua{colors.register('#1','gray',#2)}}
+
+% transparency
+
+\def\registertransparency#1#2#3%
+ {\setevalue{(ts:#1)}{\dosetattribute{transparency}{\ctxlua{tex.print(transparencies.register(#2,#3))}}}}
+
+\def\sometransparencyswitch#1{\csname(ts:#1)\endcsname}
+
+\def\sometransparencyswitch
+ {\ctxlua{transparencies.enabled=true}%
+ \gdef\sometransparencyswitch##1{\csname(ts:##1)\endcsname}%
+ \sometransparencyswitch}
+
+% \registertransparency {one} {1} {.5}
+% \registertransparency {two} {1} {.6}
+
+% overprint
+
+\def\registeroverprint#1#2%
+ {\setevalue{(os:#1)}{\dosetattribute{overprint}{\ctxlua{tex.print(overprints.register('#2'))}}}}
+
+\def\dotriggeroverprint
+ {\ctxlua{overprints.enabled=true}%
+ \gdef\dotriggeroverprint##1{\csname(os:##1)\endcsname}%
+ \dotriggeroverprint}
+
+\registeroverprint{knockout} {knockout}
+\registeroverprint{overprint}{overprint}
+
+% negative
+
+\def\registernegative#1#2%
+ {\setevalue{(ns:#1)}{\dosetattribute{negative}{\ctxlua{tex.print(negatives.register('#2'))}}}}
+
+\def\dotriggernegative
+ {\ctxlua{negatives.enabled=true}%
+ \gdef\dotriggernegative##1{\csname(ns:##1)\endcsname}%
+ \dotriggernegative}
+
+\registernegative{positive}{positive}
+\registernegative{negative}{negative}
+
+% effect
+
+\def\registereffect#1#2#3% #2=stretch #3=rulethickness
+ {\setxvalue{(es:#1:#2:\number\dimexpr#3\relax)}%
+ {\dosetattribute{effect}{\ctxlua{tex.print(effects.register('#1',#2,\number\dimexpr#3\relax))}}}}
+
+\def\dotriggereffect
+ {\ctxlua{effects.enabled=true}%
+ \gdef\dotriggereffect##1##2##3%
+ {\ifcsname(es:##1:##2:\number\dimexpr##3\relax)\endcsname\else\registereffect{##1}{##2}{##3}\fi
+ \csname(es:##1:##2:\number\dimexpr##3\relax)\endcsname}%
+ \dotriggereffect}
+
+% \registereffect{normal}
+% \registereffect{inner}
+% \registereffect{outer}
+% \registereffect{both}
+% \registereffect{hidden}
+
+% viewerlayers (will probably change a bit)
+
+% \def\registerviewerlayer#1#2% global !
+% {\setxvalue{(vl:#1)}{\dosetattribute{viewerlayer}{\ctxlua{tex.print(viewerlayers.register('#2'))}}}}
+%
+% \setevalue{(vl:)}{\doresetattribute{viewerlayer}}
+%
+% needs to work over stopitemize grouping etc
+
+\def\registerviewerlayer#1#2% global !
+ {\setxvalue{(vl:#1)}{\global\dosetattribute{viewerlayer}{\ctxlua{tex.print(viewerlayers.register('#2'))}}}}
+
+\setevalue{(vl:)}{\global\doresetattribute{viewerlayer}}
+
+\def\dotriggerviewerlayer
+ {\ctxlua{viewerlayers.enabled=true}%
+ \gdef\dotriggerviewerlayer##1{\csname(vl:##1)\endcsname}%
+ \dotriggerviewerlayer}
+
+\protect \endinput
+
+% test case
+%
+% {\green \hbox to \hsize{\leaders\hrule \hfill a}\par}
+% {\red \hbox to \hsize{\leaders\hbox{x}\hfill a}\par}
diff --git a/Master/texmf-dist/tex/context/base/attr-ini.tex b/Master/texmf-dist/tex/context/base/attr-ini.tex
deleted file mode 100644
index 5cd49818c27..00000000000
--- a/Master/texmf-dist/tex/context/base/attr-ini.tex
+++ /dev/null
@@ -1,249 +0,0 @@
-%D \module
-%D [ file=attr-ini,
-%D version=2007.06.06,
-%D title=\CONTEXT\ Attribute Macros,
-%D subtitle=Initialization,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright=PRAGMA-ADE]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{Context Attribute Macros / initialization}
-
-%D Although it's still somewhat experimental, here we introduce code
-%D related to attributes.
-
-\unprotect
-
-\registerctxluafile{attr-ini}{1.001}
-
-\newcount\attdefcounter
-
-% \def\newattribute#1%
-% {\global\advance\attdefcounter\plusone
-% \global\attributedef#1\attdefcounter
-% \ctxlua{attributes.define("\strippedcsname#1",\number\attdefcounter)}}
-
-% \newattribute\statusattribute
-% \newattribute\colorattribute
-% \newattribute\skipattribute
-% \newattribute\penaltyattribute
-
-\newtoks \attributesresetlist
-
-\def\defineattribute[#1]% alternatively we can let lua do the housekeeping
- {\global\advance\attdefcounter\plusone
- \expandafter \xdef\csname :attr:#1\endcsname{\number\attdefcounter}%
- \global\expandafter\attributedef\csname @attr@#1\endcsname \attdefcounter
- \writestatus\m!systems{defining attribute #1 with number \the\attdefcounter}%
- \appendetoks\csname @attr@#1\endcsname\minusone\to\attributesresetlist
- \ctxlua{attributes.define("#1",\number\attdefcounter)}}
-
-% expandable so we can \edef them for speed
-
-\def\dosetattribute#1#2{\csname @attr@#1\endcsname#2\relax}
-\def\doresetattribute#1{\csname @attr@#1\endcsname\minusone}
-\def\dogetattribute #1{\number\csname @attr@#1\endcsname}
-\def\dogetattributeid#1{\csname :attr:#1\endcsname}
-
-\let\dompattribute\gobbletwoarguments
-
-\defineattribute[mark]
-% \defineattribute[status] % used ? maybe combine with
-\defineattribute[state]
-\defineattribute[trigger] % feature inheritance
-\defineattribute[skip]
-\defineattribute[penalty]
-
-\startruntimectxluacode
- nodes.trigger = \dogetattributeid{trigger}
-\stopruntimectxluacode
-
-% \defineattribute[ignore]
-%
-% \edef\startignorecontent{\dosetattribute{ignore}\plusone}
-% \edef\stopignorecontent {\doresetattribute{ignore}}
-%
-% \startruntimectxluacode
-% nodes.ignore = \dogetattributeid{ignore}
-% \stopruntimectxluacode
-
-% \dosetattribute{status}{1}
-
-% temp here / will be indirect ! just for testing
-
-\defineattribute[colormodel]
-\defineattribute[color]
-
-% todo: no need for 'color' argument, we can set that once at startup; currently
-% a bit inconsistent
-
-% 1=off 2=gray 3=spot 4=rgb 5=cmyk 6=cmy % only 1/2/4/5 are supported
-%
-% We could combine this in one attribute but this is not faster and also
-% less flexible because sometimes we want to freeze the attribute bit.
-%
-% Watch out: real color support will be implemented later.
-
-\newcount\currentcolormodel
-
-\def\setcolormodel#1%
- {\currentcolormodel\ctxlua{tex.print(colors.setmodel('colormodel','#1'))}%
- \dosetattribute{colormodel}{\the\currentcolormodel}}
-
-\setcolormodel{all}
-
-\appendtoks
- \setcolormodel{all}% redundant?
-\to \everyjob
-
-\def\registerrgbcolor #1#2#3#4{\ctxlua{colors.register('color','#1','rgb' ,#2,#3,#4)}}
-\def\registercmykcolor#1#2#3#4#5{\ctxlua{colors.register('color','#1','cmyk',#2,#3,#4,#5)}}
-\def\registergraycolor #1#2{\ctxlua{colors.register('color','#1','gray',#2)}}
-
-% transparency
-
-\defineattribute[transparency]
-
-\def\registertransparency#1#2#3%
- {\setevalue{(ts:#1)}{\dosetattribute{transparency}{\ctxlua{tex.print(transparencies.register(#2,#3))}}}}
-
-\def\sometransparencyswitch#1{\csname(ts:#1)\endcsname}
-
-\def\sometransparencyswitch
- {\ctxlua{transparencies.enabled=true}%
- \gdef\sometransparencyswitch##1{\csname(ts:##1)\endcsname}%
- \sometransparencyswitch}
-
-% \registertransparency {one} {1} {.5}
-% \registertransparency {two} {1} {.6}
-
-% overprint
-
-\defineattribute[overprint]
-
-\def\registeroverprint#1#2%
- {\initializePDFoverprint % temp here, to be tested in la code (states.collect)
- \setvalue{(os:#1)}{\dosetattribute{overprint}{\ctxlua{tex.print(overprints.register('#2'))}}}}
-
-\def\dotriggeroverprint
- {\ctxlua{overprints.enabled=true}%
- \gdef\dotriggeroverprint##1{\csname(os:##1)\endcsname}%
- \dotriggeroverprint}
-
-% \registeroverprint{knockout} {knockout}
-% \registeroverprint{overprint}{overprint}
-
-% negative
-
-\defineattribute[negative]
-
-\def\registernegative#1#2%
- {\initializePDFnegative % temp here, to be tested in la code (states.collect)
- \setvalue{(ns:#1)}{\dosetattribute{negative}{\ctxlua{tex.print(negatives.register('#2'))}}}}
-
-\def\dotriggernegative
- {\ctxlua{negatives.enabled=true}%
- \gdef\dotriggernegative##1{\csname(ns:##1)\endcsname}%
- \dotriggernegative}
-
-% \registernegative{positive}{positive}
-% \registernegative{negative}{negative}
-
-% effect
-
-\defineattribute[effect]
-
-\def\registereffect#1#2#3% #2=stretch #3=rulethickness
- {\setxvalue{(es:#1:#2:\number\dimexpr#3\relax)}%
- {\dosetattribute{effect}{\ctxlua{tex.print(effects.register('#1',#2,\number\dimexpr#3\relax))}}}}
-
-\def\dotriggereffect
- {\ctxlua{effects.enabled=true}%
- \gdef\dotriggereffect##1##2##3%
- {\ifcsname(es:##1:##2:\number\dimexpr##3\relax)\endcsname\else\registereffect{##1}{##2}{##3}\fi
- \csname(es:##1:##2:\number\dimexpr##3\relax)\endcsname}%
- \dotriggereffect}
-
-% \registereffect{normal}
-% \registereffect{inner}
-% \registereffect{outer}
-% \registereffect{both}
-% \registereffect{hidden}
-
-% ugly solution
-%
-% \def\shipout
-% {%\writestatus{SHIPOUT}{CALLED AT PAGE \realfolio}%
-% \dowithnextbox
-% {\ctxlua{callbacks.push('hpack_filter',nodes.process_page)}%
-% %\writestatus{SHIPOUT}{START PACKAGING}%
-% \setbox\nextbox\hbox{\box\nextbox}%
-% %\writestatus{SHIPOUT}{STOP PACKAGING}%
-% \ctxlua{callbacks.pop('hpack_filter')}%
-% \primitive\shipout\box\nextbox}}
-
-% \def\shipout
-% {\dowithnextbox
-% {\ctxlua{nodes.process_page(tex.box[\number\nextbox])}%
-% \primitive\shipout\box\nextbox}}
-
-% Objects are processed indepently \unknown\ actually we may need a proper callback.
-
-\newbox\finalizedshipoutbox
-
-\def\finalizeobjectbox#1{\ctxlua{nodes.process_page(tex.box[\number#1])}}
-
-\def\finalizeshipoutbox#1% % hack till we have access to pdf backend
- {\global\setbox\finalizedshipoutbox\hbox{#1}%
- \finalizeobjectbox\finalizedshipoutbox
- \hbox{\ctxlua{states.flush()}\box\finalizedshipoutbox}}
-
-\let\normalshipout\shipout
-
-% tricky stuff:
-
-\newcount\attributeboxcount
-
-\edef\startinheritattributes{\dosetattribute {trigger}{1}}
-\edef\stopinheritattributes {\doresetattribute{trigger}}
-
-\def\doattributedcopy {\afterassignment\dodoattributedcopy\attributeboxcount}
-\def\doattributedbox {\afterassignment\dodoattributedbox \attributeboxcount}
-
-\def\dodoattributedcopy
- {\startinheritattributes
- \ifvbox\attributeboxcount
- \vbox{\unvcopy\attributeboxcount}%
- \else
- \hbox{\unhcopy\attributeboxcount}%
- \fi
- \stopinheritattributes}
-
-\def\dodoattributedbox
- {\startinheritattributes
- \ifvbox\attributeboxcount
- \vbox{\unvbox\attributeboxcount}%
- \else
- \hbox{\unhbox\attributeboxcount}%
- \fi
- \stopinheritattributes}
-
-\def\enableattributeinheritance
- {\ctxlua{nodes.triggering=true}%
- \let\attributedcopy\doattributedcopy
- \let\attributedbox \doattributedbox}
-
-\def\disableattributeinheritance
- {\ctxlua{nodes.triggering=false}%
- \let\attributedcopy\copy
- \let\attributedbox \box}
-
-\disableattributeinheritance
-
-% \enableattributeinheritance % will become default
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/back-ini.lua b/Master/texmf-dist/tex/context/base/back-ini.lua
new file mode 100644
index 00000000000..bad6b0282d5
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/back-ini.lua
@@ -0,0 +1,143 @@
+if not modules then modules = { } end modules ['back-ini'] = {
+ version = 1.001,
+ comment = "companion to back-ini.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+backends = backends or { }
+
+local trace_backend = false
+
+local function nothing() return nil end
+
+backends.nothing = nothing
+
+backends.nodeinjections = {
+ rgbcolor = nothing,
+ cmykcolor = nothing,
+ graycolor = nothing,
+ spotcolor = nothing,
+ transparency = nothing,
+ overprint = nothing,
+ knockout = nothing,
+ positive = nothing,
+ negative = nothing,
+ effect = nothing,
+ startlayer = nothing,
+ stoplayer = nothing,
+ switchlayer = nothing,
+
+ reference = nothing,
+ destination = nothing,
+
+}
+
+backends.codeinjections = {
+
+ prerollreference = nothing,
+
+ insertmovie = nothing,
+ insertsound = nothing,
+
+ presetsymbollist = nothing,
+ registersymbol = nothing,
+ registeredsymbol = nothing,
+
+ registercomment = nothing,
+ attachfile = nothing,
+ adddocumentinfo = nothing,
+ setupidentity = nothing,
+ setpagetransition = nothing,
+ defineviewerlayer = nothing,
+ addbookmarks = nothing,
+ addtransparencygroup = nothing,
+
+ typesetfield = nothing,
+ finishfields = nothing,
+ doiffieldelse = nothing,
+ doiffieldgroupelse = nothing,
+ definefield = nothing,
+ clonefield = nothing,
+ definefieldset = nothing,
+ getfieldgroup = nothing,
+ setformsmethod = nothing,
+ getdefaultfieldvalue = nothing,
+
+ setupcanvas = nothing,
+
+ initializepage = nothing,
+ initializedocument = nothing,
+ finalizepage = nothing,
+ finalizedocument = nothing,
+
+ flushpageactions = nothing,
+ flushdocumentactions = nothing,
+
+ insertrenderingwindow = nothing,
+ processrendering = nothing,
+ kindofrendering = nothing,
+ flushrenderingwindow = nothing,
+
+ setfigurecolorspace = nothing,
+ setfigurealternative = nothing,
+
+}
+
+backends.registrations = {
+ grayspotcolor = nothing,
+ rgbspotcolor = nothing,
+ cmykspotcolor = nothing,
+ grayindexcolor = nothing,
+ rgbindexcolor = nothing,
+ cmykindexcolor = nothing,
+ spotcolorname = nothing,
+ transparency = nothing,
+}
+
+local nodeinjections = backends.nodeinjections
+local codeinjections = backends.codeinjections
+local registrations = backends.registrations
+
+backends.current = "unknown"
+
+function backends.install(what)
+ if type(what) == "string" then
+ local backend = backends[what]
+ if backend then
+ if trace_backend then
+ logs.report("backend", "initializing backend %s (%s)",what,backend.comment or "no comment")
+ end
+ backends.current = what
+ for _, category in next, { "nodeinjections", "codeinjections", "registrations"} do
+ local plugin = backend[category]
+ if plugin then
+ local whereto = backends[category]
+ for name, meaning in next, whereto do
+ if plugin[name] then
+ whereto[name] = plugin[name]
+ -- logs.report("backend", "installing function %s in category %s of %s",name,category,what)
+ elseif trace_backend then
+ logs.report("backend", "no function %s in category %s of %s",name,category,what)
+ end
+ end
+ elseif trace_backend then
+ logs.report("backend", "no category %s in %s",category,what)
+ end
+ end
+ backends.helpers = backend.helpers
+ elseif trace_backend then
+ logs.report("backend", "no backend named %s",what)
+ end
+ end
+end
+
+statistics.register("used backend", function()
+ local bc = backends.current
+ if bc ~= "unknown" then
+ return string.format("%s (%s)",bc,backends[bc].comment or "no comment")
+ else
+ return nil
+ end
+end)
diff --git a/Master/texmf-dist/tex/context/base/back-ini.mkiv b/Master/texmf-dist/tex/context/base/back-ini.mkiv
new file mode 100644
index 00000000000..07e9147f259
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/back-ini.mkiv
@@ -0,0 +1,168 @@
+%D \module
+%D [ file=back-ini,
+%D version=2009.04.15,
+%D title=\CONTEXT\ Backend Macros,
+%D subtitle=Initialization,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=\PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D Most will go away here as it is replaced by \LUA\ calls to
+%D backend functions.
+
+\writestatus{loading}{ConTeXt Backend Macros / Initialization}
+
+\registerctxluafile{back-ini}{1.001}
+
+%D We currently have a curious mix between tex and lua backend
+%D handling but eventually most will move to lua.
+
+\unprotect
+
+\ifdefined\everybackendshipout \else \newtoks\everybackendshipout \fi
+\ifdefined\everylastbackendshipout \else \newtoks\everylastbackendshipout \fi
+
+%D Right from the start \CONTEXT\ had a backend system based on
+%D runtime pluggable code. As most backend issues involved specials
+%D and since postprocessors had not that much in common, we ended up
+%D with a system where we could switch backend as well as output code
+%D for multiple backends at the same time.
+%D
+%D Because \LUATEX\ has the backend built in, and since some backend
+%D issues have been moved to the frontend I decided to provide new
+%D backend code for \MKIV, starting with what was actually used.
+%D
+%D At this moment \DVI\ is no longer used for advanced document
+%D output and we therefore dropped support for this format. Future
+%D versions might support more backends again, but this has a low
+%D priority.
+%D
+%D The big question is: what is to be considered a backend issue and
+%D what not. For the moment we treat image inclusion, object reuse,
+%D position tracking and color as frontend issues, if only because we
+%D deal with them via \LUA\ code and as such we don't depend too much
+%D on macro calls that need to inject code for the backend.
+%D
+%D Not everything here makes sense and the content of this file will
+%D definitely change.
+
+\let \dostartrotation \gobbleoneargument
+\let \dostoprotation \donothing
+\let \dostartscaling \gobbletwoarguments
+\let \dostopscaling \donothing
+\let \dostartmirroring \donothing
+\let \dostopmirroring \donothing
+
+%D \macros
+%D {doovalbox}
+%D
+%D When we look at the implementation, this is a complicated
+%D one. There are seven arguments.
+%D
+%D \starttyping
+%D \doovalbox {w} {h} {d} {linewidth} {radius} {stroke} {fill} {variant}
+%D \stoptyping
+%D
+%D This command has to return a \type{\vbox} which can be used
+%D to lay over another one (with text). The radius is in
+%D degrees, the stroke and fill are~\type{1} (true) of~\type{0}
+%D (false).
+
+\let \doovalbox \gobbleeightarguments
+
+%D \macros
+%D {dostartclipping,dostopclipping}
+%D
+%D Clipping is implemented in such a way that an arbitrary code
+%D can be fed.
+%D
+%D \starttyping
+%D \dostartclipping {pathname} {width} {height}
+%D \dostopclipping
+%D \stoptyping
+
+\let \dostartclipping \gobblethreearguments
+\let \dostopclipping \donothing
+
+%D \macros
+%D {dostartobject,
+%D dostopobject,
+%D doresetobjects,
+%D doinsertobject}
+%D
+%D Reuse of object can reduce the output filesize
+%D considerably. Reusable objects are implemented with:
+%D
+%D \starttyping
+%D \dostartobject{class}{name}{width}{height}{depth}
+%D some typeset material
+%D \dostopobject
+%D \stoptyping
+%D
+%D \starttyping
+%D \doinsertobject{class}{name}
+%D \stoptyping
+%D
+%D The savings can be huge in interactive texts. The next macro needs
+%D to be called after a graphic is inserted (in order to clean up
+%D global references).
+%D
+%D \starttyping
+%D \doresetobjects
+%D \stoptyping
+
+\let \dostartobject \gobblefourarguments
+\let \dostopobject \donothing
+\let \doinsertobject \gobbletwoarguments
+\let \doresetobjects \donothing
+
+%D From now on, mapfile loading is also a special; we assume the
+%D more or less standard dvips syntax.
+
+\let \doresetmapfilelist \donothing
+\let \doloadmapfile \gobbletwoarguments % + - = | filename
+\let \doloadmapline \gobbletwoarguments % + - = | fileline
+
+%D \macros
+%D {ifusepagedestinations}
+%D
+%D In \PDF\ version 1.0 only page references were supported,
+%D while in \DVIWINDO\ 1.N only named references were accepted.
+%D Therefore \CONTEXT\ supports both methods of referencing. In
+%D \PDF\ version 1.1 named destinations arrived. Lack of
+%D continuous support of version 1.1 viewers for \MSDOS\
+%D therefore sometimes forces us to prefer page references. As
+%D a bonus, they are faster too and have no limitations. How
+%D fortunate we were having both mechanisms available when the
+%D version 3.0 (\PDF\ version 1.2) viewers proved to be too
+%D bugged to support named destinations.
+
+\newif\ifusepagedestinations % not yet interfaced in mkiv
+
+%D \macros
+%D {jobsuffix}
+%D
+%D By default, \TEX\ produces \DVI\ files which can be
+%D converted to other filetypes. Sometimes it is handy to
+%D know what the target file will be. In other driver
+%D modules we wil set \type {\jobsuffix} to \type {pdf}.
+
+\def\jobsuffix{pdf}
+
+\ifdefined\resetsystemmode \else
+ \let\setsystemmode \gobbleoneargument
+ \let\resetsystemmode\gobbleoneargument
+\fi
+
+\def\setjobsuffix#1%
+ {\resetsystemmode\jobsuffix
+ \edef\jobsuffix{#1}%
+ \setsystemmode\jobsuffix}
+
+\def\setupoutput[#1]{} % will be command line switch
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/back-pdf.lua b/Master/texmf-dist/tex/context/base/back-pdf.lua
new file mode 100644
index 00000000000..908801d8a95
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/back-pdf.lua
@@ -0,0 +1,465 @@
+if not modules then modules = { } end modules ['back-pdf'] = {
+ version = 1.001,
+ comment = "companion to back-pdf.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- we will move code to lpdf-* files (second cleanup stage)
+
+--[[ldx--
+<p>This module implements a couple of cleanup methods. We need these
+in order to meet the <l n='pdf'/> specification. Watch the double
+parenthesis; they are needed because otherwise we would pass more
+than one argument to <l n='tex'/>.</p>
+--ldx]]--
+
+local type, next, tostring = type, next, tostring
+local char, byte, format, gsub, rep, gmatch = string.char, string.byte, string.format, string.gsub, string.rep, string.gmatch
+local concat = table.concat
+local round = math.round
+local utfcharacters, utfvalues = string.utfcharacters, string.utfvalues
+local texsprint, texwrite = tex.sprint, tex.write
+
+ctxcatcodes = tex.ctxcatcodes
+
+local copy_node = node.copy
+
+local nodeinjections = backends.pdf.nodeinjections
+local codeinjections = backends.pdf.codeinjections
+local registrations = backends.pdf.registrations
+
+local pdfliteral, register = nodes.pdfliteral, nodes.register
+
+local pdfconstant = lpdf.constant
+local pdfdictionary = lpdf.dictionary
+local pdfarray = lpdf.array
+local pdfreference = lpdf.reference
+local pdfverbose = lpdf.verbose
+
+local pdfreserveobj = pdf.reserveobj
+local pdfimmediateobj = pdf.immediateobj
+
+function nodeinjections.rgbcolor(r,g,b)
+ return register(pdfliteral(format("%s %s %s rg %s %s %s RG",r,g,b,r,g,b)))
+end
+
+function nodeinjections.cmykcolor(c,m,y,k)
+ return register(pdfliteral(format("%s %s %s %s k %s %s %s %s K",c,m,y,k,c,m,y,k)))
+end
+
+function nodeinjections.graycolor(s) -- caching 0/1 does not pay off
+ return register(pdfliteral(format("%s g %s G",s,s)))
+end
+
+function nodeinjections.spotcolor(n,f,d,p)
+ if type(p) == "string" then
+ p = p:gsub(","," ") -- brr misuse of spot
+ end
+ return register(pdfliteral(format("/%s cs /%s CS %s SCN %s scn",n,n,p,p)))
+end
+
+function nodeinjections.transparency(n)
+ return register(pdfliteral(format("/Tr%s gs",n)))
+end
+
+local effects = {
+ normal = 0,
+ inner = 0,
+ outer = 1,
+ both = 2,
+ hidden = 3,
+}
+
+function nodeinjections.effect(stretch,rulethickness,effect)
+ -- always, no zero test (removed)
+ rulethickness = number.dimenfactors["bp"]*rulethickness
+ effect = effects[effect] or effects['normal']
+ return register(pdfliteral(format("%s Tc %s w %s Tr",stretch,rulethickness,effect))) -- watch order
+end
+
+-- cached ..
+
+local cache = { }
+
+function nodeinjections.startlayer(name)
+ local c = cache[name]
+ if not c then
+ c = register(pdfliteral(format("/OC /%s BDC",name)))
+ cache[name] = c
+ end
+ return copy_node(c)
+end
+
+local stop = register(pdfliteral("EMC"))
+
+function nodeinjections.stoplayer()
+ return copy_node(stop)
+end
+
+local cache = { }
+
+function nodeinjections.switchlayer(name)
+ local c = cache[name]
+ if not c then
+ c = register(pdfliteral(format("EMC /OC /%s BDC",name)))
+ end
+ return copy_node(c)
+end
+
+-- code
+
+function codeinjections.insertmovie(specification)
+ -- managed in figure inclusion: width, height, factor, repeat, controls, preview, label, foundname
+ local width = specification.width
+ local height = specification.height
+ local factor = specification.factor or number.dimenfactors.bp
+ local moviedict = pdfdictionary {
+ F = specification.foundname,
+ Aspect = pdfarray { factor * width, factor * height },
+ Poster = (specification.preview and true) or false,
+ }
+ local controldict = pdfdictionary {
+ ShowControls = (specification.controls and true) or false,
+ Mode = (specification["repeat"] and pdfconstant("Repeat")) or nil,
+ }
+ local action = pdfdictionary {
+ Subtype = pdfconstant("Movie"),
+ Border = pdfarray { 0, 0, 0 },
+ T = format("movie %s",specification.label),
+ Movie = moviedict,
+ A = controldict,
+ }
+ node.write(nodes.pdfannot(width,height,0,action()))
+end
+
+function codeinjections.insertsound(specification)
+ -- rmanaged in interaction: repeat, label, foundname
+ local soundclip = interactions.soundclip(specification.label)
+ if soundclip then
+ local controldict = pdfdictionary {
+ Mode = (specification["repeat"] and pdfconstant("Repeat")) or nil
+ }
+ local sounddict = pdfdictionary {
+ F = soundclip.filename
+ }
+ local action = pdfdictionary {
+ Subtype = pdfconstant("Movie"),
+ Border = pdfarray { 0, 0, 0 },
+ T = format("sound %s",specification.label),
+ Movie = sounddict,
+ A = controldict,
+ }
+ node.write(nodes.pdfannot(0,0,0,action()))
+ end
+end
+
+-- spot- and indexcolors
+
+local pdf_separation = pdfconstant("Separation")
+local pdf_indexed = pdfconstant("Indexed")
+local pdf_device_n = pdfconstant("DeviceN")
+local pdf_device_rgb = pdfconstant("DeviceRGB")
+local pdf_device_cmyk = pdfconstant("DeviceCMYK")
+local pdf_device_gray = pdfconstant("Devicegray")
+local pdf_extgstate = pdfconstant("ExtGState")
+
+local pdf_rbg_range = pdfarray { 0, 1, 0, 1, 0, 1 }
+local pdf_cmyk_range = pdfarray { 0, 1, 0, 1, 0, 1, 0, 1 }
+local pdf_gray_range = pdfarray { 0, 1 }
+
+local rgb_function = "dup %s mul exch dup %s mul exch %s mul"
+local cmyk_function = "dup %s mul exch dup %s mul exch dup %s mul exch %s mul"
+local gray_function = "%s mul"
+
+local documentcolorspaces = pdfdictionary()
+
+local spotcolorhash = { } -- not needed
+local spotcolornames = { }
+local indexcolorhash = { }
+local delayedindexcolors = { }
+
+function registrations.spotcolorname(name,e)
+ spotcolornames[name] = e or name
+end
+
+local function registersomespotcolor(name,noffractions,names,p,colorspace,range,funct)
+ noffractions = tonumber(noffractions) or 1 -- to be checked
+ if noffractions == 0 then
+ -- can't happen
+ elseif noffractions == 1 then
+ local dictionary = pdfdictionary {
+ FunctionType = 4,
+ Domain = { 0, 1 },
+ Range = range,
+ }
+ local n = pdfimmediateobj("stream",format("{ %s }",funct),dictionary())
+ local array = pdfarray {
+ pdf_separation,
+ pdfconstant(spotcolornames[name] or name),
+ colorspace,
+ pdfreference(n),
+ }
+ local m = pdfimmediateobj(tostring(array))
+ local mr = pdfreference(m)
+ spotcolorhash[name] = m
+ documentcolorspaces[name] = mr
+ lpdf.adddocumentcolorspace(name,mr)
+ else
+ local cnames = pdfarray()
+ local domain = pdfarray()
+ for n in gmatch(names,"[^,]+") do
+ cnames[#cnames+1] = pdfconstant(spotcolornames[n] or n)
+ domain[#domain+1] = 0
+ domain[#domain+1] = 1
+ end
+ local dictionary = pdfdictionary {
+ FunctionType = 4,
+ Domain = domain,
+ Range = range,
+ }
+ local n = pdfimmediateobj("stream",format("{ %s %s }",rep("pop ",noffractions),funct),dictionary())
+ local array = pdfarray {
+ pdf_device_n,
+ cnames,
+ colorspace,
+ pdfreference(n),
+ }
+ local m = pdfimmediateobj(tostring(array))
+ local mr = pdfreference(m)
+ spotcolorhash[name] = m
+ documentcolorspaces[name] = mr
+ lpdf.adddocumentcolorspace(name,mr)
+ end
+end
+
+function registersomeindexcolor(name,noffractions,names,p,colorspace,range,funct)
+ noffractions = tonumber(noffractions) or 1 -- to be checked
+ local cnames = pdfarray()
+ local domain = pdfarray()
+ if names == "" then
+ names = name .. ",None"
+ else
+ names = names .. ",None"
+ end
+ for n in gmatch(names,"[^,]+") do
+ cnames[#cnames+1] = pdfconstant(spotcolornames[n] or n)
+ domain[#domain+1] = 0
+ domain[#domain+1] = 1
+ end
+ local dictionary = pdfdictionary {
+ FunctionType = 4,
+ Domain = domain,
+ Range = range,
+ }
+ local n = pdfimmediateobj("stream",format("{ %s %s }",rep("exch pop ",noffractions),funct),dictionary()) -- exch pop
+ local a = pdfarray {
+ pdf_device_n,
+ cnames,
+ colorspace,
+ pdfreference(n),
+ }
+ if p == "" then
+ p = "1"
+ else
+ p = p .. ",1"
+ end
+ local pi = { }
+ for pp in gmatch(p,"[^,]+") do
+ pi[#pi+1] = tonumber(pp)
+ end
+ local vector, set, n = { }, { }, #pi
+ for i=255,0,-1 do
+ for j=1,n do
+ set[j] = format("%02X",round(pi[j]*i))
+ end
+ vector[#vector+1] = concat(set)
+ end
+ vector = pdfverbose { "<", concat(vector, " "), ">" }
+ local n = pdfimmediateobj(tostring(pdfarray{ pdf_indexed, a, 255, vector }))
+ lpdf.adddocumentcolorspace(format("%s_indexed",name),pdfreference(n))
+ return n
+end
+
+-- actually, names (parent) is the hash
+
+local function delayindexcolor(name,names,func)
+ local hash = (names ~= "" and names) or name
+ -- logs.report("index colors","delaying '%s'",name)
+ delayedindexcolors[hash] = func
+end
+
+local function indexcolorref(name) -- actually, names (parent) is the hash
+ if not indexcolorhash[name] then
+ -- logs.report("index colors","registering '%s'",name)
+ local delayedindexcolor = delayedindexcolors[name]
+ if type(delayedindexcolor) == "function" then
+ indexcolorhash[name] = delayedindexcolor()
+ delayedindexcolors[name] = true
+ end
+ end
+ return indexcolorhash[name]
+end
+
+function registrations.rgbspotcolor(name,noffractions,names,p,r,g,b)
+ if noffractions == 1 then
+ registersomespotcolor(name,noffractions,names,p,pdf_device_rgb,pdf_rbg_range,format(rgb_function,r,g,b))
+ else
+ registersomespotcolor(name,noffractions,names,p,pdf_device_rgb,pdf_rbg_range,format("%s %s %s",r,g,b))
+ end
+ delayindexcolor(name,names,function()
+ return registersomeindexcolor(name,noffractions,names,p,pdf_device_rgb,pdf_rgb_range,format(rgb_function,r,g,b))
+ end)
+end
+
+function registrations.cmykspotcolor(name,noffractions,names,p,c,m,y,k)
+ if noffractions == 1 then
+ registersomespotcolor(name,noffractions,names,p,pdf_device_cmyk,pdf_cmyk_range,format(cmyk_function,c,m,y,k))
+ else
+ registersomespotcolor(name,noffractions,names,p,pdf_device_cmyk,pdf_cmyk_range,format("%s %s %s %s",c,m,y,k))
+ end
+ delayindexcolor(name,names,function()
+ return registersomeindexcolor(name,noffractions,names,p,pdf_device_cmyk,pdf_cmyk_range,format(cmyk_function,c,m,y,k))
+ end)
+end
+
+function registrations.grayspotcolor(name,noffractions,names,p,s)
+ if noffractions == 1 then
+ registersomespotcolor(name,noffractions,names,p,pdf_device_gray,pdf_gray_range,format(gray_function,s))
+ else
+ registersomespotcolor(name,noffractions,names,p,pdf_device_gray,pdf_gray_range,s)
+ end
+ delayindexcolor(name,names,function()
+ return registersomeindexcolor(name,noffractions,names,p,pdf_device_gray,pdf_gray_range,format(gray_function,s))
+ end)
+end
+
+function registrations.rgbindexcolor(name,noffractions,names,p,r,g,b)
+ registersomeindexcolor(name,noffractions,names,p,pdf_device_rgb,pdf_rgb_range,format(rgb_function,r,g,b))
+end
+
+function registrations.cmykindexcolor(name,noffractions,names,p,c,m,y,k)
+ registersomeindexcolor(name,noffractions,names,p,pdf_device_cmyk,pdf_cmyk_range,format(cmyk_function,c,m,y,k))
+end
+
+function registrations.grayindexcolor(name,noffractions,names,p,s)
+ registersomeindexcolor(name,noffractions,names,p,pdf_device_gray,pdf_gray_range,gray_function)
+end
+
+function codeinjections.setfigurecolorspace(data,figure)
+ local color = data.request.color
+ if color then
+ local ref = indexcolorref(color)
+ if ref then
+ figure.colorspace = ref
+ data.used.color = color
+ end
+ end
+end
+
+-- transparency
+
+local transparencies = { [0] =
+ pdfconstant("Normal"),
+ pdfconstant("Normal"),
+ pdfconstant("Multiply"),
+ pdfconstant("Screen"),
+ pdfconstant("Overlay"),
+ pdfconstant("SoftLight"),
+ pdfconstant("HardLight"),
+ pdfconstant("ColorDodge"),
+ pdfconstant("ColorBurn"),
+ pdfconstant("Darken"),
+ pdfconstant("Lighten"),
+ pdfconstant("Difference"),
+ pdfconstant("Exclusion"),
+ pdfconstant("Compatible"),
+}
+
+local documenttransparencies = { }
+local transparencyhash = { } -- share objects
+
+local done = false
+
+function registrations.transparency(n,a,t)
+ if not done then
+ local d = pdfdictionary {
+ Type = pdf_extgstate,
+ ca = 1,
+ CA = 1,
+ BM = transparencies[1],
+ AIS = false,
+ }
+ local m = pdfimmediateobj(tostring(d))
+ local mr = pdfreference(m)
+ transparencyhash[0] = m
+ documenttransparencies[0] = mr
+ lpdf.adddocumentextgstate("Tr0",mr)
+ done = true
+ end
+ if n > 0 and not transparencyhash[n] then
+ local d = pdfdictionary {
+ Type = pdf_extgstate,
+ ca = tonumber(t),
+ CA = tonumber(t),
+ BM = transparencies[a] or transparencies[0],
+ AIS = false,
+ }
+ local m = pdfimmediateobj(tostring(d))
+ local mr = pdfreference(m)
+ transparencyhash[n] = m
+ documenttransparencies[n] = mr
+ lpdf.adddocumentextgstate(format("Tr%s",n),mr)
+ end
+end
+
+function codeinjections.adddocumentinfo(key,value)
+ lpdf.addtoinfo(key,lpdf.tosixteen(value))
+end
+
+-- graphics
+
+function codeinjections.setfigurealternative(data,figure)
+ local display = data.request.display
+ if display and display ~= "" then
+ local request = data.request
+ figures.push {
+ name = request.display,
+ page = request.page,
+ size = request.size,
+ prefix = request.prefix,
+ cache = request.cache,
+ width = request.width,
+ height = request.height,
+ }
+ figures.identify()
+ local displayfigure = figures.check()
+ if displayfigure then
+ -- figure.aform = true
+ img.immediatewrite(figure)
+ local a = lpdf.array {
+ lpdf.dictionary {
+ Image = lpdf.reference(figure.objnum),
+ DefaultForPrinting = true,
+ }
+ }
+ local d = lpdf.dictionary {
+ Alternates = lpdf.reference(pdf.immediateobj(tostring(a))),
+ }
+ displayfigure.attr = d()
+ return displayfigure, figures.current()
+ end
+ end
+end
+
+-- eventually we need to load this runtime
+--
+-- backends.install((environment and environment.arguments and environment.arguments.backend) or "pdf")
+--
+-- but now we need to force this as we also load the pdf tex part which hooks into all kind of places
+
+codeinjections.finalizepage = lpdf.finalizepage
+codeinjections.finalizedocument = lpdf.finalizedocument
+
+backends.install("pdf")
diff --git a/Master/texmf-dist/tex/context/base/back-pdf.mkiv b/Master/texmf-dist/tex/context/base/back-pdf.mkiv
new file mode 100644
index 00000000000..2d3ba85248b
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/back-pdf.mkiv
@@ -0,0 +1,169 @@
+%D \module
+%D [ file=back-pdf,
+%D version=2009.04.15,
+%D title=\CONTEXT\ Backend Macros,
+%D subtitle=\PDF,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=\PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Backend Macros / PDF}
+
+\registerctxluafile{back-pdf}{1.001} % this will change
+
+\unprotect
+
+%D We will minimize the number of calls to \PDF\ specific primitives
+%D and delegate all management and injection of code to the backend.
+%D
+%D Here we initialize some internal quantities.
+
+\pdfoutput = 1
+\pdfhorigin = 1 true in
+\pdfvorigin = 1 true in
+\pdfimageresolution = 300
+\pdfpkresolution = 600
+\pdfdecimaldigits = 10
+\pdfinclusionerrorlevel = 0
+\pdfminorversion = 5
+%pdfuniqueresname = 1
+
+%D This one can be consulted by users although the suffix is also
+%D a system mode.
+
+\setjobsuffix{pdf}
+
+%D For the moment we keep these.
+
+\newtoks \pdfbackendeveryximage
+\newtoks \pdfbackendeveryxform
+
+%D These are the only official methods to add stuff to the resources.
+
+\def\pdfbackendsetcatalog #1#2{\ctxlua{lpdf.addtocatalog ("#1",\!!bs#2\!!es)}} \newtoks\pdfcatalog
+\def\pdfbackendsetinfo #1#2{\ctxlua{lpdf.addtoinfo ("#1",\!!bs#2\!!es)}} \newtoks\pdfinfo
+\def\pdfbackendsetname #1#2{\ctxlua{lpdf.addtonames ("#1",\!!bs#2\!!es)}} \newtoks\pdfnames
+
+\def\pdfbackendsetpageattribute #1#2{\ctxlua{lpdf.addtopageattributes ("#1",\!!bs#2\!!es)}} \newtoks\pdfpageresources
+\def\pdfbackendsetpagesattribute#1#2{\ctxlua{lpdf.addtopagesattributes("#1",\!!bs#2\!!es)}} \newtoks\pdfpageattr
+\def\pdfbackendsetpageresource #1#2{\ctxlua{lpdf.addtopageresources ("#1",\!!bs#2\!!es)}} \newtoks\pdfpagesattr
+
+\def\pdfbackendsetextgstate #1#2{\ctxlua{lpdf.adddocumentextgstate ("#1",lpdf.verbose(\!!bs#2\!!es))}}
+\def\pdfbackendsetcolorspace #1#2{\ctxlua{lpdf.adddocumentcolorspace("#1",lpdf.verbose(\!!bs#2\!!es))}}
+\def\pdfbackendsetpattern #1#2{\ctxlua{lpdf.adddocumentpattern ("#1",lpdf.verbose(\!!bs#2\!!es))}}
+\def\pdfbackendsetshade #1#2{\ctxlua{lpdf.adddocumentshade ("#1",lpdf.verbose(\!!bs#2\!!es))}}
+
+\def\pdfbackendcurrentresources {\ctxlua{lpdf.collectedresources()}}
+
+%D An example of usage is:
+
+\appendtoks % will change ...
+ \pdfbackendsetinfo{ConTeXt.Version}{(\contextversion)}%
+ \pdfbackendsetinfo{ConTeXt.Time} {(\number\normalyear.\twodigits\normalmonth.\twodigits\normalday\space \twodigits\currenthour:\twodigits\currentminute)}%
+ \pdfbackendsetinfo{ConTeXt.Jobname}{(\jobname)}%
+ \pdfbackendsetinfo{ConTeXt.Url} {(www.pragma-ade.com)}%
+\to \everylastbackendshipout
+
+%D Unfortunately this is still needed (also for \METAPOST\ to
+%D \PDF\ converter):
+
+\def\doresetmapfilelist
+ {\global\let\doresetmapfilelist\relax
+ \pdfmapfile{original-empty.map}}
+
+\def\doloadmapfile #1#2{\pdfmapfile{#1#2}}
+\def\doloadmapline #1#2{\pdfmapline{#1#2}}
+
+\appendtoksonce \loadallfontmapfiles \to \pdfbackendeveryxform
+\appendtoksonce \loadallfontmapfiles \to \pdfbackendeveryximage
+
+%D Transformations. Some day we will use primitives (once they're fixed).
+
+\def\dostartrotation#1% grouped
+ {\forcecolorhack
+ \pdfliteral{q \ctxlua{lpdf.rotationcm(#1)}}}
+
+\def\dostoprotation
+ {\pdfliteral{Q}}
+
+\def\dostartscaling#1#2% the test is needed because acrobat is bugged!
+ {\forcecolorhack
+ \pdfliteral{q \ifdim#1\points=\zeropoint.0001\else#1\fi\space 0 0
+ \ifdim#2\points=\zeropoint.0001\else#2\fi\space 0 0 cm}}
+
+\def\dostopscaling
+ {\pdfliteral{Q}}
+
+\def\dostartmirroring{\pdfliteral{-1 0 0 1 0 0 cm}}
+\def\dostopmirroring {\pdfliteral{-1 0 0 1 0 0 cm}}
+
+\def\dostartclipping#1#2#3% todo
+ {\PointsToBigPoints{#2}\width
+ \PointsToBigPoints{#3}\height
+ \grabMPclippath{#1}{1}\width\height{0 0 m \width\space 0 l \width \height l 0 \height l}%
+ \pdfliteral{q 0 w \MPclippath\space W n}}
+
+\def\dostopclipping
+ {\pdfliteral{Q n}}
+
+%D The following will move to the backend \LUA\ code:
+
+\appendtoks \ctxlua{backends.codeinjections.finalizepage ()}\to \everybackendshipout % is immediate
+\appendtoks \ctxlua{backends.codeinjections.finalizedocument()}\to \everylastbackendshipout % is immediate
+
+%D Temporary hack, will be removed or improved.
+
+\def\TransparencyHack{\ctxlua{backends.codeinjections.addtransparencygroup()}}
+
+%D \macros
+%D {dostartobject,dostopobject,doinsertobject}
+
+%D This will change:
+
+\newbox\objectbox
+
+\def\dostartobject#1#2#3#4#5%
+ {\bgroup
+ \setbox\objectbox\vbox\bgroup
+ \def\dodostopobject{\egroup\doregisterobject{#1}{#2}}}
+
+\def\dostopobject
+ {\dodostopobject
+ \egroup}
+
+\def\doregisterobject#1#2%
+ {\the\pdfbackendeveryxform
+ \finalizeobjectbox\objectbox
+ \immediate\pdfxform resources {\pdfbackendcurrentresources}\objectbox
+ \dosetobjectreference{#1}{#2}{\the\pdflastxform}}
+
+\def\doresetobjects
+ {}
+
+\def\doinsertobject#1#2%
+ {\begingroup
+ \doifobjectreferencefoundelse{#1}{#2}
+ {\dogetobjectreference{#1}{#2}\PDFobjectreference\pdfrefxform\PDFobjectreference}%
+ \donothing
+ \endgroup}
+
+\def\doPDFgetobjectpage#1#2#3%
+ {\dogetobjectreferencepage{#1}{#2}#3%
+ \ifx#3\empty\def#3{\realfolio}\fi}
+
+\def\doPDFgetobjectpagereference#1#2#3%
+ {\dogetobjectreferencepage{#1}{#2}#3%
+ \doPDFgetpagereference{\ifx#3\empty\realfolio\else#3\fi}#3}
+
+\def\predefinesymbol[#1]%
+ {\begingroup
+ \settightobject{SYM}{#1}\hbox{\symbol[#1]}% to be checked ... maybe only fitting
+ \dogetobjectreference{SYM}{#1}\lastref
+ \ctxlua{backends.codeinjections.registersymbol("#1",\lastref)}%
+ \endgroup}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/bibl-bib.lua b/Master/texmf-dist/tex/context/base/bibl-bib.lua
new file mode 100644
index 00000000000..028202ec22f
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/bibl-bib.lua
@@ -0,0 +1,233 @@
+if not modules then modules = { } end modules ['bibl-bib'] = {
+ version = 1.001,
+ comment = "this module is the basis for the lxml-* ones",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+--[[ldx--
+<p>This is a prelude to integrated bibliography support. This file just loads
+bibtex files and converts them to xml so that the we access the content
+in a convenient way. Actually handling the data takes place elsewhere.</p>
+--ldx]]--
+
+local lower, format = string.lower, string.format
+local next = next
+
+bibtex = bibtex or { }
+
+bibtex.size = 0
+bibtex.definitions = 0
+bibtex.shortcuts = 0
+
+local shortcuts = { }
+local data = { }
+local entries
+
+local function do_shortcut(tag,key,value)
+ bibtex.shortcuts = bibtex.shortcuts + 1
+ if lower(tag) == "@string" then
+ shortcuts[key] = value
+ end
+end
+
+local function do_definition(tag,key,tab) -- maybe check entries here (saves memory)
+ if not entries or entries[key] then
+ bibtex.definitions = bibtex.definitions + 1
+ local t = { }
+ for i=1,#tab,2 do
+ t[tab[i]] = tab[i+1]
+ end
+ local p = data[tag]
+ if not p then
+ data[tag] = { [key] = t }
+ else
+ p[key] = t
+ end
+ end
+end
+
+local function resolve(s)
+ return shortcuts[s] or ""
+end
+
+local percent = lpeg.P("%")
+local start = lpeg.P("@")
+local comma = lpeg.P(",")
+local hash = lpeg.P("#")
+local escape = lpeg.P("\\")
+local single = lpeg.P("'")
+local double = lpeg.P('"')
+local left = lpeg.P('{')
+local right = lpeg.P('}')
+local both = left + right
+local lineending = lpeg.S("\n\r")
+local space = lpeg.S(" \t\n\r\f")
+local spacing = space^0
+local equal = lpeg.P("=")
+local collapsed = (space^1)/ " "
+
+local function add(a,b) if b then return a..b else return a end end
+
+local keyword = lpeg.C((lpeg.R("az","AZ","09") + lpeg.S("@_:-"))^1) -- lpeg.C((1-space)^1)
+local s_quoted = ((escape*single) + collapsed + (1-single))^0
+local d_quoted = ((escape*double) + collapsed + (1-double))^0
+local balanced = lpeg.P {
+ [1] = ((escape * (left+right)) + (1 - (left+right)) + lpeg.V(2))^0,
+ [2] = left * lpeg.V(1) * right
+}
+
+local s_value = (single/"") * s_quoted * (single/"")
+local d_value = (double/"") * d_quoted * (double/"")
+local b_value = (left /"") * balanced * (right /"")
+local r_value = keyword/resolve
+
+local somevalue = s_value + d_value + b_value + r_value
+local value = lpeg.Cs((somevalue * ((spacing * hash * spacing)/"" * somevalue)^0))
+
+local assignment = spacing * keyword * spacing * equal * spacing * value * spacing
+local shortcut = keyword * spacing * left * spacing * (assignment * comma^0)^0 * spacing * right
+local definition = keyword * spacing * left * spacing * keyword * comma * lpeg.Ct((assignment * comma^0)^0) * spacing * right
+local comment = keyword * spacing * left * (1-right)^0 * spacing * right
+local forget = percent^1 * (1-lineending)^0
+
+-- todo \%
+
+local grammar = (space + forget + shortcut/do_shortcut + definition/do_definition + comment + 1)^0
+
+function bibtex.convert(session,content)
+ statistics.starttiming(bibtex)
+ data, shortcuts, entries = session.data, session.shortcuts, session.entries
+ -- session.size = session.size + #content
+ bibtex.size = bibtex.size + #content
+ grammar:match(content or "")
+ statistics.stoptiming(bibtex)
+end
+
+function bibtex.load(session,filename)
+ local filename = resolvers.find_file(filename,"bib")
+ if filename ~= "" then
+ bibtex.convert(session,io.loaddata(filename) or "")
+ end
+end
+
+function bibtex.new()
+ return {
+ data = { },
+ shortcuts = { },
+ xml = xml.convert("<?xml version='1.0' standalone='yes'?>\n<bibtex></bibtex>"),
+ size = 0,
+ entries = nil,
+ }
+end
+
+local escaped_pattern = xml.escaped_pattern
+
+function bibtex.toxml(session)
+ -- we can always speed this up if needed
+ -- format slows down things a bit but who cares
+ statistics.starttiming(bibtex)
+ local result = { }
+ local entries = session.entries
+ result[#result+1] = format("<?xml version='1.0' standalone='yes'?>")
+ result[#result+1] = format("<bibtex>")
+ for id, categories in next, session.data do
+ result[#result+1] = format(" <c n='%s'>",id)
+ for name, entry in next, categories do
+ if not entries or entries[name] then
+ result[#result+1] = format(" <e n='%s'>",name)
+ for key, value in next, entry do
+ value = escaped_pattern:match(value)
+ if value ~= "" then
+ result[#result+1] = format(" <v n='%s'>%s</v>",key,value)
+ end
+ end
+ result[#result+1] = format(" </e>")
+ end
+ end
+ result[#result+1] = format(" </c>")
+ end
+ result[#result+1] = format("</bibtex>")
+ session.xml = xml.convert(table.concat(result,"\n"))
+ statistics.stoptiming(bibtex)
+end
+
+statistics.register("bibtex load time", function()
+ local size = bibtex.size
+ if size > 0 then
+ return format("%s seconds (%s bytes, %s definitions, %s shortcuts)",
+ statistics.elapsedtime(bibtex),size,bibtex.definitions,bibtex.shortcuts)
+ else
+ return nil
+ end
+end)
+
+--~ str = [[
+--~ @COMMENT { CRAP }
+--~ @STRING{ hans = "h a n s" }
+--~ @STRING{ taco = "t a c o" }
+--~ @SOMETHING{ key1, abc = "t a c o" , def = "h a n s" }
+--~ @SOMETHING{ key2, abc = hans # taco }
+--~ @SOMETHING{ key3, abc = "hans" # taco }
+--~ @SOMETHING{ key4, abc = hans # "taco" }
+--~ @SOMETHING{ key5, abc = hans # taco # "hans" # "taco"}
+--~ @SOMETHING{ key6, abc = {oeps {oeps} oeps} }
+--~ ]]
+
+--~ local session = bibtex.new()
+--~ bibtex.convert(session,str)
+--~ bibtex.toxml(session)
+--~ print(session.size,statistics.elapsedtime(bibtex))
+
+--~ local session = bibtex.new()
+--~ bibtex.load(session,"IEEEabrv.bib")
+--~ bibtex.load(session,"IEEEfull.bib")
+--~ bibtex.load(session,"IEEEexample.bib")
+--~ bibtex.toxml(session)
+--~ print(session.size,statistics.elapsedtime(bibtex))
+
+--~ local session = bibtex.new()
+--~ bibtex.load(session,"gut.bib")
+--~ bibtex.load(session,"komoedie.bib")
+--~ bibtex.load(session,"texbook1.bib")
+--~ bibtex.load(session,"texbook2.bib")
+--~ bibtex.load(session,"texbook3.bib")
+--~ bibtex.load(session,"texgraph.bib")
+--~ bibtex.load(session,"texjourn.bib")
+--~ bibtex.load(session,"texnique.bib")
+--~ bibtex.load(session,"tugboat.bib")
+--~ bibtex.toxml(session)
+--~ print(session.size,statistics.elapsedtime(bibtex))
+
+--~ print(table.serialize(session.data))
+--~ print(table.serialize(session.shortcuts))
+--~ print(xml.serialize(session.xml))
+
+-- this will move:
+
+if commands then
+
+ local sessions = { }
+
+ function commands.definebibtexsession(name)
+ sessions[name] = bibtex.new()
+ end
+ function commands.preparebibtexsession(name)
+ bibtex.toxml(sessions[name])
+ lxml.register("bibtex:"..name,sessions[name].xml)
+ end
+ function commands.registerbibtexfile(name,filename)
+ bibtex.load(sessions[name],filename)
+ end
+ function commands.registerbibtexentry(name,entry)
+ local session = sessions[name]
+ local entries = session.entries
+ if not entries then
+ session.entries = { [entry] = true }
+ else
+ entries[entry] = true
+ end
+ end
+
+end
diff --git a/Master/texmf-dist/tex/context/base/bibl-bib.mkiv b/Master/texmf-dist/tex/context/base/bibl-bib.mkiv
new file mode 100644
index 00000000000..51db67ed7da
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/bibl-bib.mkiv
@@ -0,0 +1,29 @@
+%D \module
+%D [ file=bibl-bib,
+%D version=2007.08.17,
+%D title=\CONTEXT\ Bibliography Support,
+%D subtitle=Initialization,
+%D author=Hans Hagen \& Taco Hoekwater,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Bibliography Support / BibTeX}
+
+\registerctxluafile{bibl-bib}{1.001}
+
+\unprotect
+
+\def\definebibtexsession [#1]{\ctxlua{commands.definebibtexsession("#1")}}
+\def\preparebibtexsession [#1]{\ctxlua{commands.preparebibtexsession("#1")}}
+\def\registerbibtexfile {\dodoubleargument\doregisterbibtexfile}
+\def\doregisterbibtexfile [#1][#2]{\ctxlua{commands.registerbibtexfile("#1","#2")}} % also the fast one
+\def\registerbibtexentry {\dodoubleargument\doregisterbibtexentry}
+\def\doregisterbibtexentry [#1][#2]{\ctxlua{commands.registerbibtexentry("#1","#2")}} % also the fast one
+\def\applytobibtexsession {\dodoubleargument\doapplytobibtexsession}
+\def\doapplytobibtexsession[#1][#2]{\xmlprocessregistered{bibtex:#1}{#2}{#2}}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/bibl-tst.lua b/Master/texmf-dist/tex/context/base/bibl-tst.lua
new file mode 100644
index 00000000000..a1b85b0f78b
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/bibl-tst.lua
@@ -0,0 +1,21 @@
+dofile("bibl-bib.lua")
+
+local session = bibtex.new()
+
+bibtex.load(session,"gut.bib")
+bibtex.load(session,"komoedie.bib")
+bibtex.load(session,"texbook1.bib")
+bibtex.load(session,"texbook2.bib")
+bibtex.load(session,"texbook3.bib")
+bibtex.load(session,"texgraph.bib")
+bibtex.load(session,"texjourn.bib")
+bibtex.load(session,"texnique.bib")
+bibtex.load(session,"tugboat.bib")
+bibtex.toxml(session)
+
+print(bibtex.size,statistics.elapsedtime(bibtex))
+
+--~ print(table.serialize(session.data))
+--~ print(table.serialize(session.shortcuts))
+--~ print(xml.serialize(session.xml))
+
diff --git a/Master/texmf-dist/tex/context/base/buff-ini.lua b/Master/texmf-dist/tex/context/base/buff-ini.lua
new file mode 100644
index 00000000000..f02963d6a06
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/buff-ini.lua
@@ -0,0 +1,592 @@
+if not modules then modules = { } end modules ['buff-ini'] = {
+ version = 1.001,
+ comment = "companion to core-buf.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- ctx lua reference model / hooks and such
+-- to be optimized
+
+-- redefine buffers.get
+
+buffers = { }
+buffers.data = { }
+buffers.hooks = { }
+buffers.flags = { }
+buffers.commands = { }
+buffers.visualizers = { }
+
+-- if needed we can make 'm local
+
+local utf = unicode.utf8
+
+local concat, texsprint, texprint, texwrite = table.concat, tex.sprint, tex.print, tex.write
+local utfbyte, utffind, utfgsub = utf.byte, utf.find, utf.gsub
+local type, next = type, next
+local byte, sub, find, char, gsub, rep, lower = string.byte, string.sub, string.find, string.char, string.gsub, string.rep, string.lower
+local utfcharacters, utfvalues = string.utfcharacters, string.utfvalues
+local ctxcatcodes = tex.ctxcatcodes
+
+local data, commands, flags, hooks, visualizers = buffers.data, buffers.commands, buffers.flags, buffers.hooks, buffers.visualizers
+
+function buffers.raw(name)
+ return data[name] or { }
+end
+
+function buffers.erase(name)
+ data[name] = nil
+end
+
+function buffers.set(name, str)
+ data[name] = { str } -- CHECK THIS
+end
+
+function buffers.append(name, str)
+ data[name] = (data[name] or "") .. str
+end
+
+buffers.flags.store_as_table = true
+
+-- to be sorted out: crlf + \ ; slow now
+
+local n = 0
+
+function buffers.grab(name,begintag,endtag,bufferdata)
+ local dn = data[name] or ""
+ if dn == "" then
+ buffers.level = 0
+ end
+ buffers.level = buffers.level + bufferdata:count("\\"..begintag) - bufferdata:count("\\"..endtag)
+ local more = buffers.level > 0
+ if more then
+ dn = dn .. bufferdata .. endtag
+ buffers.level = buffers.level - 1
+ else
+ if dn == "" then
+ dn = bufferdata:sub(1,#bufferdata-1)
+ else
+ dn = dn .. "\n" .. bufferdata:sub(1,#bufferdata-1)
+ end
+ dn = dn:gsub("[\010\013]$","")
+ if flags.store_as_table then
+ dn = dn:splitlines()
+ end
+ end
+ data[name] = dn
+ cs.testcase(more)
+end
+
+function buffers.exists(name)
+ return data[name] ~= nil
+end
+
+function buffers.doifelsebuffer(name)
+ cs.testcase(data[name] ~= nil)
+end
+
+flags.optimize_verbatim = true
+flags.count_empty_lines = false
+
+local no_break_command = "\\doverbatimnobreak"
+local do_break_command = "\\doverbatimgoodbreak"
+local begin_of_line_command = "\\doverbatimbeginofline"
+local end_of_line_command = "\\doverbatimendofline"
+local empty_line_command = "\\doverbatimemptyline"
+
+local begin_of_display_command = "\\doverbatimbeginofdisplay"
+local end_of_display_command = "\\doverbatimendofdisplay"
+local begin_of_inline_command = "\\doverbatimbeginofinline"
+local end_of_inline_command = "\\doverbatimendofinline"
+
+function buffers.verbatimbreak(n,m)
+ if flags.optimize_verbatim then
+ if n == 2 or n == m then
+ texsprint(no_break_command)
+ else
+ texsprint(do_break_command)
+ end
+ end
+end
+
+function buffers.strip(lines)
+ local first, last = 1, #lines
+ for i=first,last do
+ if #lines[i] == 0 then
+ first = first + 1
+ else
+ break
+ end
+ end
+ for i=last,first,-1 do
+ if #lines[i] == 0 then
+ last = last - 1
+ else
+ break
+ end
+ end
+ return first, last, last - first + 1
+end
+
+function buffers.type(name)
+ local lines = data[name]
+ local action = buffers.typeline
+ if lines then
+ if type(lines) == "string" then
+ lines = lines:splitlines()
+ end
+ local line, n = 0, 0
+ local first, last, m = buffers.strip(lines)
+ hooks.begin_of_display()
+ for i=first,last do
+ n, line = action(lines[i], n, m, line)
+ end
+ hooks.end_of_display()
+ end
+end
+
+function buffers.loaddata(filename) -- this one might go away
+ -- this will be cleaned up when we have split supp-fil completely
+ -- instead of half-half
+ local ok, str, n = resolvers.loaders.tex(filename)
+ if not str then
+ ok, str, n = resolvers.loaders.tex(file.addsuffix(filename,'tex'))
+ end
+ return str or ""
+end
+
+function buffers.typefile(name) -- still somewhat messy, since name can be be suffixless
+ local str = buffers.loaddata(name)
+ if str and str~= "" then
+ local lines = str:splitlines()
+ local line, n, action = 0, 0, buffers.typeline
+ local first, last, m = buffers.strip(lines)
+ hooks.begin_of_display()
+ for i=first,last do
+ n, line = action(lines[i], n, m, line)
+ end
+ hooks.end_of_display()
+ end
+end
+
+function buffers.typeline(str,n,m,line)
+ n = n + 1
+ buffers.verbatimbreak(n,m)
+ if str:find("%S") then
+ line = line + 1
+ hooks.begin_of_line(line)
+ hooks.flush_line(hooks.line(str))
+ hooks.end_of_line()
+ else
+ if flags.count_empty_lines then
+ line = line + 1
+ end
+ hooks.empty_line(line)
+ end
+ return n, line
+end
+
+function buffers.save(name,list,encapsulate)
+ if not name or name == "" then
+ name = tex.jobname
+ end
+ if list then
+ -- ok
+ else
+ list = name
+ name = tex.jobname .. "-" .. name .. ".tmp"
+ end
+ local content = buffers.collect(list)
+ if content == "" then
+ content = "empty buffer"
+ end
+ if encapsulate then
+ io.savedata(name, "\\starttext\n"..content.."\n\\stoptext\n")
+ else
+ io.savedata(name, content)
+ end
+end
+
+local printer = (lpeg.linebyline/texprint)^0
+
+function buffers.get(name)
+ local b = buffers.data[name]
+ if b then
+ if type(b) == "table" then
+ for i=1,#b do
+ texprint(b[i])
+ end
+ else
+ printer:match(b)
+ end
+ end
+end
+
+local function content(name,separator) -- no print
+ local b = data[name]
+ if b then
+ if type(b) == "table" then
+ return concat(b,separator or "\n")
+ else
+ return b
+ end
+ else
+ return ""
+ end
+end
+
+buffers.content = content
+
+function buffers.collect(names,separator) -- no print
+ -- maybe we should always store a buffer as table so
+ -- that we can pass if directly
+ local t = { }
+ if type(names) == "table" then
+ for i=1,#names do
+ local c = content(names[i],separator)
+ if c ~= "" then
+ t[#t+1] = c
+ end
+ end
+ else
+ for name in names:gmatch("[^,%s]+") do
+ local c = content(name,separator)
+ if c ~= "" then
+ t[#t+1] = c
+ end
+ end
+ end
+ return concat(t,separator or "\r") -- "\n" is safer due to comments and such
+end
+
+function buffers.feedback(names,separator)
+ -- don't change the texprint into texsprint as it fails on mp buffers
+ -- because (p<nl>enddef) becomes penddef then
+ texprint(ctxcatcodes,string.splitlines(buffers.collect(names,separator)))
+end
+
+local function tobyte(c)
+ return " [" .. utfbyte(c) .. "] "
+end
+
+function buffers.inspect(name)
+ local b = data[name]
+ if b then
+ if type(b) == "table" then
+ for _,v in ipairs(b) do
+ if v == "" then
+ texsprint(ctxcatcodes,"[crlf]\\par ") -- space ?
+ else
+ texsprint(ctxcatcodes,(gsub(b,"(.)",tobyte)),"\\par")
+ end
+ end
+ else
+ texsprint(ctxcatcodes,(gsub(b,"(.)",tobyte)))
+ end
+ end
+end
+
+-- maybe just line(n,str) empty(n,str)
+
+visualizers.handlers = visualizers.handlers or { }
+visualizers.escapetoken = nil
+visualizers.tablength = 7
+visualizers.enabletab = true -- false
+visualizers.enableescape = false
+visualizers.obeyspace = true
+
+local handlers = visualizers.handlers
+
+function buffers.newvisualizer(name)
+ local handler = { }
+ handlers[name] = handler
+ return handler
+end
+
+function buffers.getvisualizer(name)
+ return handlers[name]
+end
+
+local default = buffers.newvisualizer("default")
+
+local currentvisualizer, currenthandler
+
+function buffers.setvisualizer(str)
+ currentvisualizer = lower(str)
+ currenthandler = handlers[currentvisualizer]
+ if not currenthandler then
+ currentvisualizer = 'default'
+ currenthandler = handlers.default
+ end
+ if currenthandler.reset then
+ currenthandler.reset()
+ end
+end
+
+buffers.setvisualizer("default")
+
+function visualizers.reset()
+end
+
+function buffers.doifelsevisualizer(str)
+ cs.testcase((str ~= "") and (handlers[lower(str)] ~= nil))
+end
+
+-- calling routines, don't change
+
+function hooks.begin_of_display()
+ (currenthandler.begin_of_display or default.begin_of_display)(currentvisualizer)
+end
+
+function hooks.end_of_display()
+ (currenthandler.end_of_display or default.end_of_display)()
+end
+
+function hooks.begin_of_inline()
+ (currenthandler.begin_of_inline or default.begin_of_inline)(currentvisualizer)
+end
+
+function hooks.end_of_inline()
+ (currenthandler.end_of_inline or default.end_of_inline)()
+end
+
+
+function hooks.flush_line(str,nesting)
+ str = gsub(str," *[\n\r]+ *"," ") ; -- semi colon needed
+ (currenthandler.flush_line or default.flush_line)(str,nesting)
+end
+
+function hooks.flush_inline(str,nesting)
+ hooks.begin_of_inline()
+ hooks.flush_line(str,nesting)
+ hooks.end_of_inline()
+end
+
+function hooks.begin_of_line(n)
+ (currenthandler.begin_of_line or default.begin_of_line)(n)
+end
+
+function hooks.end_of_line()
+ (currenthandler.end_of_line or default.end_of_line)()
+end
+
+function hooks.empty_line()
+ (currenthandler.empty_line or default.empty_line)()
+end
+
+function hooks.line(str)
+ if visualizers.enabletab then
+ str = string.tabtospace(str,visualizers.tablength)
+ else
+ str = gsub(str,"\t"," ")
+ end
+ return (currenthandler.line or default.line)(str)
+end
+
+-- defaults
+
+function default.begin_of_display(currentvisualizer)
+ texsprint(ctxcatcodes,begin_of_display_command,"{",currentvisualizer,"}")
+end
+
+function default.end_of_display()
+ texsprint(ctxcatcodes,end_of_display_command)
+end
+
+function default.begin_of_inline(currentvisualizer)
+ texsprint(ctxcatcodes,begin_of_inline_command,"{",currentvisualizer,"}")
+end
+
+function default.end_of_inline()
+ texsprint(ctxcatcodes,end_of_inline_command)
+end
+
+function default.begin_of_line(n)
+ texsprint(ctxcatcodes, begin_of_line_command,"{",n,"}")
+end
+
+function default.end_of_line()
+ texsprint(ctxcatcodes,end_of_line_command)
+end
+
+function default.empty_line()
+ texsprint(ctxcatcodes,empty_line_command)
+end
+
+function default.line(str)
+ return str
+end
+
+function default.flush_line(str)
+ str = str:gsub(" *[\n\r]+ *"," ")
+ if visualizers.obeyspace then
+ for c in utfcharacters(str) do
+ if c == " " then
+ texsprint(ctxcatcodes,"\\obs ")
+ else
+ texwrite(c)
+ end
+ end
+ else
+ texwrite(str)
+ end
+end
+
+-- not needed any more
+
+local function escaped_token(c)
+ if utffind(c,"^(%a%d)$") then
+ return c
+ elseif c == " " then
+ return "\\obs "
+ else
+ return "\\char" .. utfbyte(c) .. " "
+ end
+end
+
+buffers.escaped_token = escaped_token
+
+function buffers.escaped(str)
+ -- use the utfcharacters loop
+ return (utfgsub(str,"(.)", escaped_token))
+end
+
+-- special one
+
+commands.nested = "\\switchslantedtype "
+
+-- todo : utf + faster, direct print and such. no \\char, vrb catcodes, see end
+
+function visualizers.flush_nested(str, enable) -- no utf, kind of obsolete mess
+ str = str:gsub(" *[\n\r]+ *"," ")
+ local result, c, nested, i = "", "", 0, 1
+ while i < #str do -- slow
+ c = sub(str,i,i+1)
+ if c == "<<" then
+ nested = nested + 1
+ if enable then
+ result = result .. "{" .. commands.nested
+ else
+ result = result .. "{"
+ end
+ i = i + 2
+ elseif c == ">>" then
+ if nested > 0 then
+ nested = nested - 1
+ result = result .. "}"
+ end
+ i = i + 2
+ else
+ c = sub(str,i,i)
+ if c == " " then
+ result = result .. "\\obs "
+ elseif c:find("%a") then
+ result = result .. c
+ else
+ result = result .. "\\char" .. byte(c) .. " "
+ end
+ i = i + 1
+ end
+ end
+ result = result .. "\\char" .. byte(sub(str,i,i)) .. " " .. rep("}",nested)
+ texsprint(ctxcatcodes,result)
+end
+
+-- handy helpers
+--
+-- \sop[color] switch_of_pretty
+-- \bop[color] begin_of_pretty
+-- \eop end_of_pretty
+-- \obs obeyedspace
+-- \char <n> special characters
+
+buffers.currentcolors = { }
+
+function buffers.change_state(n, state)
+ if n then
+ if state ~= n then
+ if state > 0 then
+ texsprint(ctxcatcodes,"\\sop[",buffers.currentcolors[n],"]")
+ else
+ texsprint(ctxcatcodes,"\\bop[",buffers.currentcolors[n],"]")
+ end
+ return n
+ end
+ elseif state > 0 then
+ texsprint(ctxcatcodes,"\\eop")
+ return 0
+ end
+ return state
+end
+
+function buffers.finish_state(state)
+ if state > 0 then
+ texsprint(ctxcatcodes,"\\eop")
+ return 0
+ else
+ return state
+ end
+end
+
+buffers.open_nested = rep("\\char"..byte('<').." ",2)
+buffers.close_nested = rep("\\char"..byte('>').." ",2)
+
+function buffers.replace_nested(result)
+ result = gsub(result,buffers.open_nested, "{")
+ result = gsub(result,buffers.close_nested,"}")
+ return result
+end
+
+function buffers.flush_result(result,nested)
+ if nested then
+ texsprint(ctxcatcodes,buffers.replace_nested(concat(result,"")))
+ else
+ texsprint(ctxcatcodes,concat(result,""))
+ end
+end
+
+-- THIS WILL BECOME A FRAMEWORK: the problem with prety printing is that
+-- we deal with snippets and therefore we need tolerant parsing
+
+--~ local type = type
+
+--~ visualizers = visualizers or { }
+
+--~ local function fallback(s) return s end
+
+--~ function visualizers.visualize(visualizer,kind,pattern)
+--~ if type(visualizer) == "table" and type(kind) == "string" then
+--~ kind = visualizer[kind] or visualizer.default or fallback
+--~ else
+--~ kind = fallback
+--~ end
+--~ return (lpeg.C(pattern))/kind
+--~ end
+
+--~ local flusher = texio.write
+--~ local format = string.format
+
+--~ local visualizer = {
+--~ word = function(s) return flusher(format("\\bold{%s}",s)) end,
+--~ number = function(s) return flusher(format("\\slanted{%s}",s)) end,
+--~ default = function(s) return flusher(s) end,
+--~ }
+
+--~ local word = lpeg.R("AZ","az")^1
+--~ local number = lpeg.R("09")^1
+--~ local any = lpeg.P(1)
+
+--~ local pattern = lpeg.P { "start",
+--~ start = (
+--~ visualizers.visualize(visualizer,"word",word) +
+--~ visualizers.visualize(visualizer,"number",number) +
+--~ visualizers.visualize(visualizer,"default",any)
+--~ )^1
+--~ }
+
+--~ str = [[test 123 test $oeps$]]
+
+--~ pattern:match(str)
+
+
diff --git a/Master/texmf-dist/tex/context/base/buff-ini.mkii b/Master/texmf-dist/tex/context/base/buff-ini.mkii
new file mode 100644
index 00000000000..0f0655ea126
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/buff-ini.mkii
@@ -0,0 +1,348 @@
+%D \module
+%D [ file=buff-ini, % was core-buf % blocks are moved to core-blk
+%D version=2000.01.05,
+%D title=\CONTEXT\ Buffer Macros,
+%D subtitle=Buffers,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Buffer Macros / Buffers}
+
+\unprotect
+
+% Helpers:
+
+\chardef\buffernestmode\plusone % 0: not nested, 1: startbuffer nested, 2: all buffers nested
+
+\edefconvertedargument\emptybufferline{ }
+
+\ifx\tmpblocks\undefined \newwrite\tmpblocks \fi
+
+\newif\iftmpblockstarted
+
+\long\def\flushbufferline#1%
+ {\iftmpblockstarted
+ \ifsegmentatebuffer
+ \ifemptybufferline
+ \immediate\write\tmpblocks{\string\stopbufferparagraph }%
+ \immediate\write\tmpblocks{\string\startbufferparagraph}%
+ \else
+ \immediate\write\tmpblocks{#1}%
+ \fi
+ \else
+ \immediate\write\tmpblocks{#1}%
+ \fi
+ \else
+ \doifsomething{#1}
+ {\tmpblockstartedtrue
+ \immediate\write\tmpblocks{\string#1}}%
+ \fi}
+
+\long\def\processnextbufferlineA#1%
+ {\relax % checken waarom eerdere macro dit nodig heeft / supp-mps run
+ \defconvertedargument\next{#1 }%
+ \doifinstringelse{\delcharacter\letterpercent}{\delcharacter\next}
+ {\secondoftwoarguments}
+ {\doifincsnameelse\endofblock\next
+ {\ifnum\nestedbufferlevel=\zerocount
+ \expandafter\firstoftwoarguments
+ \else
+ \decrement\nestedbufferlevel\relax
+ \expandafter\secondoftwoarguments
+ \fi}
+ {\doifincsnameelse\beginofblock\next
+ {\increment\nestedbufferlevel\relax
+ \secondoftwoarguments}
+ {\secondoftwoarguments}}}}
+
+\long\def\processnextbufferlineB#1% #2#3%
+ {\defconvertedargument\next{#1 }%
+ \ifx\next\emptybufferline
+ \ifsegmentatebuffer \emptybufferlinetrue \fi
+ \expandafter\secondoftwoarguments% #3%
+ \else
+ \emptybufferlinefalse
+ \doifinstringelse\endofblock\next
+ {\expandafter\firstoftwoarguments }% #2}
+ {\expandafter\secondoftwoarguments}% #3}%
+ \fi}
+
+\bgroup
+\obeylines
+\long\gdef\copybufferline#1
+ {\processnextbufferline{#1}\closebufferfile{\flushbufferline{#1}\copybufferline}}
+\egroup
+
+\newif\ifsegmentatebuffer
+\newif\ifemptybufferline
+
+\def\currentbuffer{\jobname}
+
+\def\setcurrentbuffer#1%
+ {\doifelsenothing{#1}{\edef\currentbuffer{\jobname}}{\edef\currentbuffer{#1}}}
+
+\def\resetbuffer
+ {\dosingleempty\doresetbuffer}
+
+\def\doresetbuffer[#1]%
+ {\begingroup
+ \setcurrentbuffer{#1}%
+ \unlinkfile{\TEXbufferfile\currentbuffer}%
+ \endgroup}
+
+\def\dostartbuffer
+ {\bgroup
+ \obeylines % nodig, anders gaat 't fout als direct \starttable (bv)
+ \doquadrupleempty\dodostartbuffer}
+
+\def\dodostartbuffer[#1][#2][#3][#4]% upward compatible
+ {\iffourthargument
+ \def\next{\dododostartbuffer{#1}{#2}{#3}{#4}}%
+ \else
+ \def\next{\dododostartbuffer {}{#1}{#2}{#3}}%
+ \fi
+ \next}
+
+\def\dododostartbuffer#1#2#3#4%
+ {%\showmessage\m!systems{15}{#2}%
+ \doifelsevalue{\??bu#1\c!paragraph}\v!yes
+ {\segmentatebuffertrue} % todo in mkiv
+ {\doifnumberelse{\getvalue{\??bu#1\c!paragraph}}\segmentatebuffertrue\segmentatebufferfalse}%
+ \doifvalue{\??bu#1\c!local}\v!yes
+ {\chardef\buffernestmode\plustwo}% permit nesting
+ \setcurrentbuffer{#2}%
+ \doifelsenothing{#4}
+ {\letbeundefined{\e!stop\v!buffer}% % \let\stopbuffer=\relax % \undefined
+ \edefconvertedargument\beginofblock{\e!start\v!buffer}%
+ \edefconvertedargument\endofblock {\e!stop \v!buffer}%
+ \ifcase\buffernestmode
+ \let\processnextbufferline\processnextbufferlineB
+ \else
+ \let\processnextbufferline\processnextbufferlineA
+ \fi}
+ {\letbeundefined{#4}% \letvalue{#4}=\relax % \undefined
+ \@EA\defconvertedargument\@EA\beginofblock\@EA{\csname#3\endcsname}% we could use defconvertedcommand here (no \@EA)
+ \@EA\defconvertedargument\@EA\endofblock \@EA{\csname#4\endcsname}% we could use defconvertedcommand here (no \@EA)
+ \ifcase\buffernestmode
+ \let\processnextbufferline\processnextbufferlineB
+ \or
+ \let\processnextbufferline\processnextbufferlineB
+ \else
+ \let\processnextbufferline\processnextbufferlineA
+ \fi}%
+ \def\closebufferfile
+ {\ifsegmentatebuffer
+ \immediate\write\tmpblocks{\string\stopbufferparagraph}%
+ \fi
+ \immediate\closeout\tmpblocks
+ \egroup
+ \getvalue{#4}}%
+ \doifelsenothing{#2}
+ {\edef\bufferfilename{\TEXbufferfile\jobname}}%
+ {\edef\bufferfilename{\TEXbufferfile{#2}}}%
+ \immediate\openout\tmpblocks\bufferfilename
+ \ifsegmentatebuffer
+ \immediate\write\tmpblocks{\string\startbufferparagraph}%
+ \fi
+ \newcounter\nestedbufferlevel
+ \recatcodeuppercharacterstrue
+ \setcatcodetable\vrbcatcodes
+ \obeylines
+ \copybufferline}
+
+\letvalue{\e!start\v!buffer}\dostartbuffer
+
+\let\endbuffer\undefined % to please the dep parser
+
+\def\setbuffer
+ {\dosingleempty\dosetbuffer}
+
+\long\def\dosetbuffer[#1]#2\endbuffer % seldom used so we just pass #2
+ {\begingroup
+ \setcurrentbuffer{#1}%
+ \edef\bufferfilename{\TEXbufferfile{\currentbuffer}}%
+ \immediate\openout\tmpblocks\bufferfilename
+ \defconvertedargument\ascii{#2}%
+ \immediate\write\tmpblocks{\ascii}%
+ \immediate\closeout\tmpblocks
+ \endgroup}
+
+\def\setupbuffer
+ {\dodoubleempty\dosetupbuffer}
+
+\def\dosetupbuffer[#1][#2]%
+ {\ifsecondargument
+ \getparameters[\??bu#1][#2]%
+ \else
+ \getparameters[\??bu][#1]%
+ \fi}
+
+\def\dodefinebuffer[#1][#2]%
+ {\iffirstargument % else problems
+ \doglobal\increment\nofdefinedbuffers
+ \letvalue{\??bu#1\c!number }\nofdefinedbuffers
+ \letvalue{\??bu#1\c!paragraph}\v!no
+ \setevalue{\e!start#1}{\noexpand\dostartbuffer[#1][def-\nofdefinedbuffers][\e!start#1][\e!stop#1]}%
+ \setevalue{\e!get #1}{\noexpand\dogetbuffer [#1][def-\nofdefinedbuffers]}%
+ \setevalue{\e!type #1}{\noexpand\dotypebuffer [#1][def-\nofdefinedbuffers]}%
+ \getparameters[\??bu#1][#2]%
+ \fi}
+
+\def\definebuffer
+ {\dodoubleempty\dodefinebuffer}
+
+\def\getbuffer
+ {\dodoubleempty\dogetbuffer}
+
+\def\dogetbuffer[#1][#2]%
+ {\ifsecondargument
+ \dodogetbuffer[#1][#2]%
+ \else
+ \dodogetbuffer[][#1]%
+ \fi}
+
+\def\dogetbufferasis{\readjobfile{\TEXbufferfile{\currentbuffer}}\donothing\donothing}%
+
+\def\dodogetbuffer[#1][#2]%
+ {\getvalue{\??bu#1\c!before}%
+ \dobuffer{16}{#2}\dogetbufferasis
+ \getvalue{\??bu#1\c!after}}
+
+\def\typebuffer
+ {\dodoubleempty\dotypebuffer}
+
+\def\dogetfilebuffer{\typefile{\TEXbufferfile{\currentbuffer}}}
+
+\def\dotypebuffer[#1][#2]%
+ {\iffirstargument
+ \dobuffer{17}{#1}\dogetfilebuffer
+ \else
+ \dobuffer{17}{#2}\dogetfilebuffer
+ \fi}
+
+\def\dobuffer#1#2#3%
+ {\doifelsenothing{#2}
+ {\dodobuffer#3\jobname}
+ {\processcommalist[#2]{\dodobuffer#3}}}
+
+\def\dodobuffer#1#2% command name
+ {\pushmacro\currentbuffer
+ \edef\currentbuffer{\ifcsname\??bu#2\c!number\endcsname def-\csname\??bu#2\c!number\endcsname\else#2\fi}%
+ \beginrestorecatcodes
+ #1%
+ \endrestorecatcodes
+ \popmacro\currentbuffer}
+
+\def\processTEXbuffer{\getbuffer} % handy
+
+% seldom used, only in a few projects that demanded more speed
+
+\def\dostartmemorybuffer
+ {\dosingleempty\dostartmemorybuffer}
+
+\long\def\dostartmemorybuffer[#1]#2\stopbuffer
+ {\setbuffer[#1]#2\endbuffer}
+
+\let\dostartfilebuffer\startbuffer
+
+\def\usememorybuffers{\let\startbuffer\dostartmemorybuffer}
+\def\usefilebuffers {\let\startbuffer\dostartfilebuffer}
+
+% this features is soldom used (complex examns where we need to fetch
+% special parts of a text
+%
+% this is not yet supported in mkiv (relatively easy to do but there
+% we don't have the par tags but need to grab 'm
+
+\def\skippedbufferparagraphs{0}
+
+\let\startbufferparagraph\relax
+\let\stopbufferparagraph \par % \relax
+
+\newcount\currentbufferparagraph
+
+\def\getbufferparagraphs
+ {\dodoubleempty\dogetbufferparagraphs}
+
+\def\dosetbufferoffset#1%
+ {\doifnumberelse{\getvalue{\??bu#1\c!paragraph}}
+ {\currentbufferparagraph-\getvalue{\??bu#1\c!paragraph}}
+ {\currentbufferparagraph \zerocount}%
+ \relax}
+
+\def\dogetbufferparagraphs[#1][#2]%
+ {\iffirstargument
+ \ifsecondargument
+ \dosetbufferoffset{#1}%
+ \doifelse{#2}\v!all
+ {\def\startbufferparagraph{\normalbufferparagraph{#1}}}
+ {\def\startbufferparagraph{\filterbufferparagraph{#1}{#2}}}%
+ \def\stopbufferparagraph{\dostopbufferparagraph{#1}}%
+ \def\next{\getparagraphedbuffer[#1]}%
+ \else
+ \dosetbufferoffset\empty
+ \def\startbufferparagraph{\filterbufferparagraph{}{#1}}%
+ \def\stopbufferparagraph{\dostopbufferparagraph{}}%
+ \def\next{\getparagraphedbuffer[]}%
+ \fi
+ \else
+ \dosetbufferoffset\empty
+ \def\startbufferparagraph{\normalbufferparagraph{}}%
+ \def\stopbufferparagraph{\dostopbufferparagraph{}}%
+ \def\next{\getparagraphedbuffer[]}%
+ \fi
+ \next}
+
+\def\dogetparagraphbuffer{\readjobfile{\TEXbufferfile{\currentbuffer}}\donothing\donothing}
+
+\def\getparagraphedbuffer[#1]%
+ {\dobuffer{16}{#1}\dogetparagraphbuffer}
+
+\def\dostopbufferparagraph#1%
+ {\getvalue{\??bu#1\c!after}\par}
+
+\def\dostartbufferparagraph#1%
+ {\par\getvalue{\??bu#1\c!before}}
+
+\def\normalbufferparagraph
+ {\advance\currentbufferparagraph \plusone
+ \ifnum\currentbufferparagraph>\zerocount
+ \expandafter\dostartbufferparagraph
+ \else
+ \expandafter\gobbleoneargument
+ \fi}
+
+\def\filterbufferparagraph#1#2%
+ {\advance\currentbufferparagraph \plusone
+ \ifcase\currentbufferparagraph
+ \@EA\gobblebufferparagraph
+ \else
+ \doifinsetelse{\the\currentbufferparagraph}{#2}
+ {\@EA\dostartbufferparagraph}
+ {\@EA\fakebufferparagraph}%
+ \fi
+ {#1}}
+
+\long\def\gobblebufferparagraph#1#2\stopbufferparagraph
+ {}
+
+\def\fakebufferparagraph#1%
+ {\bgroup
+ \def\stopbufferparagraph{\dostopbufferparagraph{#1}\egroup\egroup}%
+ \setbox\scratchbox\vbox\bgroup\dostartbufferparagraph{#1}}
+
+% definitions
+
+\definebuffer[\v!hiding] \setupbuffer[\v!hiding][\c!local=\v!yes]
+
+\setupbuffer
+ [\c!paragraph=\v!no,
+ \c!before=,
+ \c!after=]
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-buf.tex b/Master/texmf-dist/tex/context/base/buff-ini.mkiv
index 46987f1f152..29ce4687de9 100644
--- a/Master/texmf-dist/tex/context/base/core-buf.tex
+++ b/Master/texmf-dist/tex/context/base/buff-ini.mkiv
@@ -1,7 +1,7 @@
%D \module
-%D [ file=core-buf, % blocks are moved to core-blk
+%D [ file=buff-ini, % was core-buf, % blocks are moved to core-blk
%D version=2000.01.05,
-%D title=\CONTEXT\ Core Macros,
+%D title=\CONTEXT\ Buffer Macros,
%D subtitle=Buffers,
%D author=Hans Hagen,
%D date=\currentdate,
@@ -11,18 +11,54 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Core Macros / Buffers}
+\writestatus{loading}{ConTeXt Buffer Macros / Buffers}
-\unprotect
+\registerctxluafile{buff-ini}{1.001}
+
+% todo:
+%
+% \startluacode
+% local locations = { }
+% function document.set_number(name)
+% locations[name] = {
+% line = status.linenumber,
+% file = status.filename
+% }
+% end
+% function document.add_number(name)
+% local b, l = buffers.raw(name), locations[name]
+% if b and l then
+% for i=1,#b do
+% b[i] = string.gsub(b[i],"# line: <number>","# line: " .. l.line + 2)
+% end
+% end
+% end
+% \stopluacode
+%
+% \starttext
+%
+% \ctxlua{document.set_number("oeps")}
+% \startbuffer[oeps]
+% # line: <number>
+%
+% test
+% test
+% \stopbuffer
+% \ctxlua{document.add_number("oeps")}
+%
+% \typebuffer[oeps]
+%
+% \stoptext
+
+\ifdefined\doinitializeverbatim \else% temp hack
+ \ifdefined\mkinitializeverbatim
+ \let\doinitializeverbatim\mkinitializeverbatim
+ \else
+ \def\doinitializeverbatim{\tttf}
+ \fi
+\fi
-\let\mkresetbuffer \donothing
-\let\mksetbuffer \gobbleoneargument
-\let\mkstartbuffer \gobblefivearguments
-\let\mkdobuffer \gobbleoneargument
-\let\mkstartmemorybuffer\startbuffer
-\let\mkstartfilebuffer \startbuffer
-\let\mkgetbuffer \donothing
-\let\mktypebuffer \donothing
+\unprotect
\chardef\buffernestmode\plusone % 0: not nested, 1: startbuffer nested, 2: all buffers nested
@@ -40,7 +76,7 @@
\def\doresetbuffer[#1]%
{\begingroup
\setcurrentbuffer{#1}%
- \mkresetbuffer
+ \ctxlua{buffers.erase("\currentbuffer")}%
\endgroup}
\def\dostartbuffer
@@ -64,19 +100,54 @@
\doifvalue{\??bu#1\c!local}\v!yes
{\chardef\buffernestmode\plustwo}% permit nesting
\setcurrentbuffer{#2}%
- \mkstartbuffer{#1}{#2}{#3}{#4}{\egroup}}
+ \doifelsenothing{#4}
+ {\normalexpanded{\noexpand\setbuffercapsules{\e!start\v!buffer}{\e!stop\v!buffer}}%
+ \letvalue\bufferstop\relax}
+ %{\@EA\setbuffercapsules\@EA{\csname#3\@EA\endcsname\@EA}\@EA{\csname#4\endcsname}}% if we strip later
+ {\setbuffercapsules{#3}{#4}}%
+ \normalexpanded{\noexpand\dodowithbuffer
+ {\currentbuffer}
+ {\bufferstart}
+ {\bufferstop}
+ {\donothing}
+ {\egroup
+ \noexpand\getvalue{\bufferstop}}}}
\letvalue{\e!start\v!buffer}\dostartbuffer
\let\endbuffer\undefined % to please the dep parser
+\def\dowithbuffer#1#2#3% name, startsequence, stopsequence, before, after
+ {\setbuffercapsules{#2}{#3}%
+ \normalexpanded{\noexpand\dodowithbuffer{#1}{\bufferstart}{\bufferstop}}}
+
+\long\def\dodowithbuffer#1#2#3#4#5% name, startsequence, stopsequence, before, after
+ {#4%
+ \bgroup
+ \setcatcodetable \vrbcatcodes
+ \catcode`\\=12
+ \ctxlua{buffers.erase("#1")}%
+ \long\def\nododowithbuffer
+ {\egroup
+ #5}%
+ \long\def\dododowithbuffer##1#3% is detokenize needed? TEST
+ {\ctxlua
+ {buffers.grab("#1","#2","#3",\!!bs\detokenize{##1}\!!es)}
+ \dododowithbuffer
+ \nododowithbuffer}%
+ \dododowithbuffer}
+
+\def\setbuffercapsules#1#2% \scantextokens not needed (had a reason at some point)
+ {\edef\bufferstart{#1}\edef\bufferstart{\scantextokens\expandafter{\bufferstart}}%
+ \edef\bufferstop {#2}\edef\bufferstop {\scantextokens\expandafter{\bufferstop }}}
+
\def\setbuffer
{\dosingleempty\dosetbuffer}
-\def\dosetbuffer[#1]#2\endbuffer % seldom used so we just pass #2
+\long\def\dosetbuffer[#1]#2\endbuffer % seldom used so we just pass #2
{\begingroup
\setcurrentbuffer{#1}%
- \mksetbuffer{#2}%
+ \ctxlua{buffers.set("\currentbuffer", \!!bs\detokenize{#2}\!!es)}%
\endgroup}
\def\setupbuffer
@@ -94,9 +165,9 @@
\doglobal\increment\nofdefinedbuffers
\letvalue{\??bu#1\c!number }\nofdefinedbuffers
\letvalue{\??bu#1\c!paragraph}\v!no
- \setevalue{\e!start#1}{\noexpand\dostartbuffer [#1][def-\nofdefinedbuffers][\e!start#1][\e!stop#1]}%
- \setevalue{\e!get #1}{\noexpand\dodoprocessTEXbuffer[#1][def-\nofdefinedbuffers]}%
- \setevalue{\e!type #1}{\noexpand\dotypebuffer [#1][def-\nofdefinedbuffers]}%
+ \setevalue{\e!start#1}{\noexpand\dostartbuffer[#1][def-\nofdefinedbuffers][\e!start#1][\e!stop#1]}%
+ \setevalue{\e!get #1}{\noexpand\dogetbuffer [#1][def-\nofdefinedbuffers]}%
+ \setevalue{\e!type #1}{\noexpand\dotypebuffer [#1][def-\nofdefinedbuffers]}%
\getparameters[\??bu#1][#2]%
\fi}
@@ -113,19 +184,42 @@
\dodogetbuffer[][#1]%
\fi}
+\def\dogetbufferasis{\ctxlua{buffers.get("\currentbuffer")}}
+
\def\dodogetbuffer[#1][#2]%
{\getvalue{\??bu#1\c!before}%
- \dobuffer{16}{#2}\mkgetbuffer
+ \dobuffer{16}{#2}\dogetbufferasis
\getvalue{\??bu#1\c!after}}
\def\typebuffer
{\dodoubleempty\dotypebuffer}
+\def\doprocessbufferverbatim
+ {\doinitializeverbatim
+ \ctxlua{buffers.type("\currentbuffer")}}
+
+\def\doprocessbufferlinesverbatim#1#2#3%
+ {#2%
+ % todo, set up numbers
+ \doinitializeverbatim
+ \ctxlua{buffers.type("\currentbuffer")}
+ #3}
+
+\def\doifelsebuffer#1%
+ {\ctxlua{buffers.doifelsebuffer("#1")}}
+
+\def\dodotypebuffer#1#2#3% see dodotypefile
+ {\doifelsebuffer{#3}
+ {\dosometyping{#1}{#2}{#3}\doprocessbufferverbatim\doprocessbufferlinesverbatim}
+ {\reporttypingerror{#3}}}
+
+\def\dotypefilebuffer{\dodotypebuffer{\v!file}{}{\currentbuffer}}%
+
\def\dotypebuffer[#1][#2]%
{\iffirstargument
- \dobuffer{17}{#1}\mktypebuffer
+ \dobuffer{17}{#1}\dotypefilebuffer
\else
- \dobuffer{17}{#2}\mktypebuffer
+ \dobuffer{17}{#2}\dotypefilebuffer
\fi}
\def\dobuffer#1#2#3%
@@ -136,15 +230,24 @@
\def\dodobuffer#1#2% command name
{\pushmacro\currentbuffer
\edef\currentbuffer{\ifcsname\??bu#2\c!number\endcsname def-\csname\??bu#2\c!number\endcsname\else#2\fi}%
- \mkdobuffer#1%
+ #1%
\popmacro\currentbuffer}
\def\processTEXbuffer{\getbuffer} % handy
+
+% extras:
+
+\def\inspectbuffer
+ {\dosingleempty\doinspectbuffer}
+
+\def\doinspectbuffer[#1]%
+ {\setcurrentbuffer{#1}%
+ \ctxlua{buffers.inspect("\currentbuffer")}}
% seldom used, only in a few projects that demanded more speed
-\def\usememorybuffers{\let\startbuffer\mkstartmemorybuffer}
-\def\usefilebuffers {\let\startbuffer\mkstartfilebuffer}
+\let\usememorybuffers\relax
+\let\usefilebuffers \relax
% this features is soldom used (complex examns where we need to fetch
% special parts of a text
@@ -191,8 +294,10 @@
\fi
\next}
+\def\dotypeparagraphbuffer{\ctxlua{buffers.get("\currentbuffer")}}
+
\def\getparagraphedbuffer[#1]%
- {\dobuffer{16}{#1}\mkgetbuffer}
+ {\dobuffer{16}{#1}\dotypeparagraphbuffer}
\def\dostopbufferparagraph#1%
{\getvalue{\??bu#1\c!after}\par}
@@ -227,17 +332,6 @@
\def\stopbufferparagraph{\dostopbufferparagraph{#1}\egroup\egroup}%
\setbox\scratchbox\vbox\bgroup\dostartbufferparagraph{#1}}
-% only mkiv
-
-\beginLUATEX
- \def\savebuffer{\dosingleempty\dosavebuffer}
- \def\dosavebuffer[#1]{\ctxlua{buffers.save("#1")}}
-\endLUATEX
-
-% plugins
-
-\loadmarkfile{core-buf}
-
% definitions
\definebuffer[\v!hiding] \setupbuffer[\v!hiding][\c!local=\v!yes]
@@ -247,4 +341,9 @@
\c!before=,
\c!after=]
+% only mkiv:
+
+\def\savebuffer{\dosingleempty\dosavebuffer}
+\def\dosavebuffer[#1]{\ctxlua{buffers.save("#1")}}
+
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-ver.tex b/Master/texmf-dist/tex/context/base/buff-ver.mkii
index 93fa96944c4..6b3817a7028 100644
--- a/Master/texmf-dist/tex/context/base/core-ver.tex
+++ b/Master/texmf-dist/tex/context/base/buff-ver.mkii
@@ -1,7 +1,7 @@
%D \module
-%D [ file=core-ver,
+%D [ file=buff-ver, % was core-ver
%D version=2000.05.09,
-%D title=\CONTEXT\ Core Macros,
+%D title=\CONTEXT\ Buffer Macros,
%D subtitle=Verbatim,
%D author=Hans Hagen,
%D date=\currentdate,
@@ -11,47 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Core Macros / Verbatim}
-
-\startmessages dutch library: verbatims
- title: typen
- 1: file -- bestaat niet
-\stopmessages
-
-\startmessages english library: verbatims
- title: verbatim
- 1: file -- does not exist
-\stopmessages
-
-\startmessages german library: verbatims
- title: verbatim
- 1: Datei -- existiert nicht
-\stopmessages
-
-\startmessages czech library: verbatims
- title: verbatim
- 1: soubor -- neexistuje
-\stopmessages
-
-\startmessages italian library: verbatims
- title: verbatim
- 1: il file -- non esiste
-\stopmessages
-
-\startmessages norwegian library: verbatims
- title: verbatim
- 1: fil -- eksisterer ikke
-\stopmessages
-
-\startmessages romanian library: verbatims
- title: verbatim
- 1: fisierul -- nu exista
-\stopmessages
-
-\startmessages french library: verbatims
- title: verbatim
- 1: le fichier -- n'existe pas
-\stopmessages
+\writestatus{loading}{ConTeXt Buffer Macros / Verbatim}
\unprotect
@@ -95,14 +55,100 @@
\def\setupprettiesintype#1%
{\uppercasestring#1\to\ascii
\edef\prettyidentifier{\executeifdefined{\??ty\??ty\ascii}{TEX}}%
- \mksetupprettiesintype}
+ \doifundefined{setuppretty\prettyidentifier type}%
+ {\startnointerference
+ \restorecatcodes % also needed when loading during \newpretty
+ \startreadingfile % restore < and > if needed
+ \lowercasestring verb-\prettyidentifier\to\filename
+ \readsysfile{\filename.mkii}\donothing\donothing
+ \stopreadingfile
+ \stopnointerference}%
+ \doifdefinedelse{setuppretty\prettyidentifier type}%
+ {\let\uncatcodecharacters\uncatcodeallcharacters % ugly, should be switch / todo
+ \def\dosetupprettytype{\getvalue{setuppretty\prettyidentifier type}}}
+ {\let\dosetupprettytype\relax}}
+
+\def\setupprettytype{\dosetupprettytype}
+
+% \def\setupcommonverbatim
+% {\recatcodeuppercharactersfalse % obey regime / encoding
+% %
+% \let\prettyidentifier\s!default
+% %
+% \doifelse{\typingparameter\c!text}\v!yes
+% \naturaltextexttrue
+% \naturaltextextfalse
+% \def\prettyidentifierfont{\typingparameter\c!icommand}%
+% \def\prettyvariablefont {\typingparameter\c!vcommand}%
+% \def\prettynaturalfont {\typingparameter\c!ccommand}%
+% %
+% \doif{\typingparameter\c!space}\v!on
+% {\def\obeyspaces{\setcontrolspaces}}%
+% \doif{\typingparameter\c!page }\v!no
+% {\def\obeypages {\ignorepages}}%
+% %
+% \doifelse{\typingparameter\c!tab}\v!yes
+% {\def\obeytabs{\settabskips}}%
+% {\doif{\typingparameter\c!tab}\s!ascii
+% {\chardef\tabskipmode\plustwo % quit on >127
+% \def\obeytabs{\settabskips}}}%
+% %
+% \ignorehyphens % default
+% \ExpandFirstAfter\processaction
+% [\typingparameter\c!lines]
+% [ \v!yes=>\obeybreakpoints,
+% \v!hyphenated=>\obeyhyphens]%
+% \processaction
+% [\typingparameter\c!empty]
+% [\v!yes=>\obeyemptylines,
+% \v!all=>\obeyallemptylines]%
+% %
+% \ExpandFirstAfter\processaction
+% [\typingparameter\c!option]
+% [ \v!none=>\let\obeycharacters\relax,
+% \v!color=>\setupprettiesintype{TEX}%
+% \let\obeycharacters\setupprettytype
+% \let\obeytabs\ignoretabs,
+% \v!normal=>\let\obeycharacters\setupgroupedtype,
+% \v!commands=>\def\obeycharacters{\setupcommandsintype}% \let
+% \let\obeytabs\ignoretabs,
+% \v!slanted=>\let\obeycharacters\setupslantedtype
+% \let\obeytabs\ignoretabs,
+% \s!unknown=>\setupprettiesintype{\typingparameter\c!option}%
+% \let\obeycharacters\setupprettytype
+% \let\obeytabs\ignoretabs]%
+% \doifnumberelse{\typingparameter\c!tab}
+% {\def\obeytabs{\setfixedtabskips{\typingparameter\c!tab}}}%
+% \donothing
+% %\def\verbatimfont{\typingparameter\c!style\normalnoligatures\font}%
+% % more generic, but beware of the \redoconvertfont (else no typing in titles and such)
+% \def\verbatimfont{\redoconvertfont\dosetfontattribute{\currenttypingclass\currenttyping}\c!style\normalnoligatures\font}%
+% \setupverbatimcolor}
+
+\setvalue{\??tp:\c!lines:\v!yes }{\obeybreakpoints}
+\setvalue{\??tp:\c!lines:\v!hyphenated}{\obeyhyphens}
+
+\setvalue{\??tp:\c!empty:\v!yes }{\obeyemptylines}
+\setvalue{\??tp:\c!empty:\v!all }{\obeyallemptylines}
+
+\setvalue{\??tp:\c!option:\v!none }{\let\obeycharacters\relax}
+\setvalue{\??tp:\c!option:\v!color }{\setupprettiesintype{TEX}%
+ \let\obeycharacters\setupprettytype
+ \let\obeytabs\ignoretabs}
+\setvalue{\??tp:\c!option:\v!normal }{\let\obeycharacters\setupgroupedtype}
+\setvalue{\??tp:\c!option:\v!commands }{\def\obeycharacters{\setupcommandsintype}%
+ \let\obeytabs\ignoretabs}
+\setvalue{\??tp:\c!option:\v!slanted }{\let\obeycharacters\setupslantedtype
+ \let\obeytabs\ignoretabs}
+\setvalue{\??tp:\c!option:\s!unknown }{\setupprettiesintype{\typingparameter\c!option}%
+ \let\obeycharacters\setupprettytype
+ \let\obeytabs\ignoretabs}
-\def\setupprettytype{\mksetupprettytype}
\def\setupcommonverbatim
{\recatcodeuppercharactersfalse % obey regime / encoding
%
- \def\prettyidentifier{TEX}%
+ \let\prettyidentifier\s!default
%
\doifelse{\typingparameter\c!text}\v!yes
\naturaltextexttrue
@@ -118,34 +164,14 @@
%
\doifelse{\typingparameter\c!tab}\v!yes
{\def\obeytabs{\settabskips}}%
- {\doif{\typingparameter\c!tab}\s!ascii
+ {\doif{\typingparameter\c!tab}\s!ascii % not needed in mkiv
{\chardef\tabskipmode\plustwo % quit on >127
\def\obeytabs{\settabskips}}}%
%
\ignorehyphens % default
- \ExpandFirstAfter\processaction
- [\typingparameter\c!lines]
- [ \v!yes=>\obeybreakpoints,
- \v!hyphenated=>\obeyhyphens]%
- \processaction
- [\typingparameter\c!empty]
- [\v!yes=>\obeyemptylines,
- \v!all=>\obeyallemptylines]%
- %
- \ExpandFirstAfter\processaction
- [\typingparameter\c!option]
- [ \v!none=>\let\obeycharacters\relax,
- \v!color=>\setupprettiesintype{TEX}%
- \let\obeycharacters\setupprettytype
- \let\obeytabs\ignoretabs,
- \v!normal=>\let\obeycharacters\setupgroupedtype,
- \v!commands=>\def\obeycharacters{\setupcommandsintype}% \let
- \let\obeytabs\ignoretabs,
- \v!slanted=>\let\obeycharacters\setupslantedtype
- \let\obeytabs\ignoretabs,
- \s!unknown=>\setupprettiesintype{\typingparameter\c!option}%
- \let\obeycharacters\setupprettytype
- \let\obeytabs\ignoretabs]%
+ \getvalue{\??tp:\c!lines:\typingparameter\c!lines}%
+ \getvalue{\??tp:\c!empty:\typingparameter\c!empty}%
+ \getvalue{\??tp:\c!option:\ifcsname\??tp:\c!option:\typingparameter\c!option\endcsname\typingparameter\c!option\else\s!unknown\fi}%
\doifnumberelse{\typingparameter\c!tab}
{\def\obeytabs{\setfixedtabskips{\typingparameter\c!tab}}}%
\donothing
@@ -164,8 +190,16 @@
% \typeTEX{\example---oeps}. this---ligates---again.
% \type {\example---oeps}. this---ligates---again.
-\def\setupcommandsintype{\mksetupcommandsintype}
-\def\setupslantedtype {\slantedtypepermittedtrue\mksetupslantedtype}
+\def\setupcommandsintype % can also be \string\
+ {\setupgroupedtype
+ \edef\\{\typingparameter\c!escape}%
+ \letvalue{\\}=\\% for instance \/=/
+ \@EA\catcode\@EA`\\=\@@escape
+ \def\BTEX##1\ETEX##2% ##2 gobbles active space
+ {\naturaltextext##1\unskip\relax}}
+
+\def\setupslantedtype
+ {\slantedtypepermittedtrue\setupgroupedtype}
\ifx\setupprettytype \undefined \let\setupprettytype \relax \fi
\ifx\setupslantedtype \undefined \let\setupslantedtype \relax \fi
@@ -253,9 +287,251 @@
%D
%D \typebuffer
-\unexpanded\def\type{\mktype\empty}
+\unexpanded\def\type{\dotype\empty}
+
+% not that fast but catches \type{\command} % nothing more after \command
+%
+% \setupcolors[state=start]
+% \setuptype[option=TEX]
+% \setupcolors[textcolor=red]
+%
+% The options \type{before=\startsolutionbackground } and
+% \type{after=\stopsolutionbackground} take care of putting a frame,
+% which can
+%
+% {\blue The options \type{before=\startsolutionbackground } and
+% \type{after=\stopsolutionbackground} take care of putting a frame,
+% which} can
+
+\def\resumecoloraftergroup
+ {\localstartcolor[\s!black]%
+ \localstartcolor[\maintextcolor]%
+ \aftergroup\localstopcolor
+ \aftergroup\localstopcolor}
+
+% the rather messy \type command
+
+\def\dotype#1% was \dotype
+ {\bgroup
+ \resumecoloraftergroup % a problem is that we can still be in color mode, tricky hack
+ \begstrut % new, enables leading space in \type { abc } at par start / begstrut else no hyphenation
+ \let\currenttypingclass\??ty
+ \edef\currenttyping{#1}%
+ \catcode`\<=\@@other
+ \catcode`\>=\@@other
+ \futurelet\next\dodotype}
+
+\def\dodotypeA
+ {\initializetype
+ \initializetypegrouping
+ \verbatimfont
+ \verbatimcolor
+ \afterassignment\protectfirsttype\let\next=}
+
+\def\dodotypeB
+ {\initializetype
+ \setupnotypegrouping
+ \verbatimfont
+ \verbatimcolor
+ \let\next=}
+
+\def\dodotypeC<#1%
+ {\initializetype
+ \verbatimfont
+ \verbatimcolor
+ \if#1<%
+ \@EA\setupalternativetypegrouping
+ \else
+ \@EA#1%
+ \fi}
+
+\def\dodotypeD#1%
+ {\initializetype
+ \verbatimfont
+ \verbatimcolor
+ \catcode`#1=\@@endgroup}
+
+\def\dodotype
+ {\ifx\next\bgroup
+ \@EA\dodotypeA
+ \else\if\next<%
+ \doifelse{\typingparameter\c!option}\v!none
+ {\@EAEAEA\dodotypeB}{\@EAEAEA\dodotypeC}%
+ \else
+ \@EAEAEA\dodotypeD
+ \fi\fi}
+
+% The next one is safe for: \def\xx#1{\type{#1}} \xx{\ifx}
+
+\let\protectedfirsttype\string % \relax for special cases
+
+\bgroup
+\catcode`\<=\active
+\catcode`\>=\active
+\gdef\doprotectfirsttype
+ {\normalifx\next<%
+ \endrobusttest \let\next\relax
+ \normalelse\normalifx\next\bgroup
+ \endrobusttest \let\next\relax
+ \normalelse\normalifx\next\egroup % takes care of \type{}
+ \endrobusttest \let\next\relax
+ \normalelse\normalifx\next\activeleftargument
+ \endrobusttest \let\next\relax
+ \normalelse
+ \endrobusttest \let\next\protectedfirsttype
+ \normalfi\normalfi\normalfi\normalfi
+ \next}
+\egroup
+
+\def\protectfirsttype
+ {\beginrobusttest
+ \futurelet\next\doprotectfirsttype}
+
+% Verbatim does not work when passed as an argument, so here is a
+% workaround. Beware, spaces are introduced after a \type {\csname}.
+
+\chardef\recodeverbatimmode\zerocount % 0=nothing 1=rescan 2=autorescan
+
+% \appendtoks \chardef\recodeverbatimmode\plustwo \to \everytabulate
+% \appendtoks \chardef\recodeverbatimmode\plustwo \to \everytable
+
+\def\dodotypeA
+ {\initializetype
+ \initializetypegrouping
+ \verbatimfont
+ \verbatimcolor
+ \ifcase\recodeverbatimmode
+ \@EA\dodotypeAA
+ \or
+ \@EA\dodotypeAB
+ \or
+ \ifnum\catcode`\{=\@@active
+ \@EAEAEA\dodotypeAB
+ \else
+ \@EAEAEA\dodotypeAA
+ \fi
+ \else
+ \@EA\dodotypeAA
+ \fi}
+
+\def\dodotypeAA
+ {\afterassignment\protectfirsttype\let\next=}
+
+\def\dodotypeAB
+ {\bgroup
+ \catcode`\}=\@@endgroup
+ \catcode`\{=\@@begingroup
+ \afterassignment\redotypeAB\global\globalscratchtoks}
+
+\def\redotypeAB
+ {\egroup
+ \expandafter\defconvertedargument\expandafter\ascii\expandafter{\the\globalscratchtoks}% == \edefconvertedargument\ascii{\the\globalscratchtoks}%
+ \ifx\scantokens\undefined\ascii\else\everyeof{\hskip-\spaceskip}\scantokens\expandafter{\ascii}\fi
+ \egroup}
+
+\bgroup
+\catcode`\[=\@@begingroup
+\catcode`\]=\@@endgroup
+\catcode`\{=\@@active
+\catcode`\}=\@@active
+\gdef\initializetypegrouping
+ [\ifnum\catcode`\{=\@@active
+ \let\normalactivebgroup{%
+ \let\normalactiveegroup}%
+ \else
+ \catcode`\{=\@@active
+ \catcode`\}=\@@active
+ \let\normalactivebgroup\leftargument
+ \let\normalactiveegroup\rightargument
+ \fi
+ \def\activeleftargument
+ [\bgroup
+ \catcode`\}=\@@active
+ \let}\activerightargument
+ \normalactivebgroup]%
+ \def\activerightargument
+ [\normalactiveegroup
+ \egroup]%
+ \let{=\activeleftargument
+ % not \let}=\egroup, otherwise things go wrong in alignments (???)
+ \catcode`\}=\@@endgroup]
+\egroup
+
+\bgroup
+\catcode`\<=\@@active
+\catcode`\>=\@@active
+\gdef\setupalternativetypegrouping
+ {\catcode`\<=\@@active
+ \catcode`\>=\@@active
+ \def\doless
+ {\ifx<\next
+ \def\next
+ {\bgroup\switchslantedtype
+ \let\next=}%
+ \else
+ \let\next\lesscharacter
+ \fi
+ \next}%
+ \def\domore
+ {\ifx>\next
+ \def\next
+ {\egroup
+ \let\next=}%
+ \else
+ \let\next\morecharacter
+ \fi
+ \next}%
+ \def<{\futurelet\next\doless}%
+ \def>{\futurelet\next\domore}}
+\egroup
+
+\def\setupnotypegrouping
+ {\catcode`\<=\@@begingroup
+ \catcode`\>=\@@endgroup}
+
+\def\doenterdoublelesstype
+ {\ifx\next\egroup
+ \lesscharacter\null\lesscharacter
+ \else
+ \bgroup\switchslantedtype
+ \let\doenterdoublemoretype\egroup
+ \fi}
-\let\mktype\gobbleoneargument
+\def\doenterdoublemoretype
+ {\def\doenterdoubletype
+ {\ifx\next\egroup
+ \morecharacter\null\morecharacter
+ \fi}}
+
+\bgroup
+\catcode`\<=\@@active
+\catcode`\>=\@@active
+\gdef\setupgroupedtype
+ {\catcode`\<=\@@active
+ \catcode`\>=\@@active
+ \def\doless
+ {\ifx<\next
+ \def\next
+ {\def\enterdoubletype{\futurelet\next\doenterdoublelesstype}%
+ \afterassignment\enterdoubletype
+ \let\next=}%
+ \else
+ \let\next\lesscharacter
+ \fi
+ \next}%
+ \def\domore
+ {\ifx>\next
+ \def\next
+ {\def\enterdoubletype{\futurelet\next\doenterdoublemoretype}%
+ \afterassignment\enterdoubletype
+ \let\next=}%
+ \else
+ \let\next\morecharacter
+ \fi
+ \next}%
+ \def<{\futurelet\next\doless}%
+ \def>{\futurelet\next\domore}}
+\egroup
%D The neccessary initializations are done by calling
%D \type{\initializetype} which in return calls for the support
@@ -292,8 +568,8 @@
%D \type{\tt} text will be implemented soon.
\def\obeyhyphens
- {\def\obeyedspace {\hskip\interwordspace}% better than spaceskip
- \def\controlspace{\hskip\zeropoint\hbox{\normalcontrolspace}\hskip\zeropoint}%
+ {\def\obeyedspace {\hskip\interwordspace\relax}% better than spaceskip
+ \def\controlspace{\hskip\zeropoint\hbox{\normalcontrolspace}\hskip\zeropoint\relax}%
\spaceskip.25em\relax} % hm a bit of stretch !
\def\obeybreakpoints
@@ -301,8 +577,9 @@
\veryraggedright}
\def\ignorehyphens
- {\def\obeyedspace {\null\hskip\interwordspace\null}% better than spaceskip
- \def\controlspace{\null\hskip\zeropoint\hbox{\normalcontrolspace}\hskip\zeropoint\null}%
+ {% \language\minusone % extra bonus, the \null should do the job too
+ \def\obeyedspace {\hskip\interwordspace\relax}% better than spaceskip
+ \def\controlspace{\hskip\zeropoint\hbox{\normalcontrolspace}\hskip\zeropoint\relax}%
\spaceskip.5em\relax}
\unexpanded\def\typ
@@ -347,6 +624,8 @@
\def\setgroupedtype
{\let\currenttypingclass\??ty
\initializetype
+ \verbatimcolor
+ %\setcatcodetable \typcatcodesa
\catcode`\{=\@@begingroup
\catcode`\}=\@@endgroup}
@@ -367,16 +646,75 @@
\let\currenttyping \empty
\let\currenttypingclass\??ty % saveguard
+% \def\typingparameter#1%
+% {\executeifdefined
+% {\currenttypingclass\currenttyping#1}%
+% {\executeifdefined{\currenttypingclass#1}\empty}}
+
\def\typingparameter#1%
- {\executeifdefined
- {\currenttypingclass\currenttyping#1}%
- {\executeifdefined{\currenttypingclass#1}\empty}}
+ {\ifcsname\currenttypingclass\currenttyping#1\endcsname
+ \csname\currenttypingclass\currenttyping#1\endcsname
+ \else\ifcsname\currenttypingclass#1\endcsname
+ \csname\currenttypingclass#1\endcsname
+ \fi\fi}
\def\settypingparameter#1#2%
{\setvalue{\currenttypingclass\currenttyping#1}{#2}}
+
\def\setxtypingparameter#1#2%
{\setxvalue{\currenttypingclass\currenttyping#1}{#2}}
+% \def\initializetyping
+% {%\donefalse
+% \switchtobodyfont[\typingparameter\c!bodyfont]%
+% \donefalse
+% \scratchskip\typingparameter\c!oddmargin\relax
+% \ifzeropt\scratchskip\else\donetrue\fi
+% \scratchskip\typingparameter\c!evenmargin\relax
+% \ifzeropt\scratchskip\else\donetrue\fi
+% \ifdone
+% \def\doopenupverbatimline
+% {\getpagestatus
+% \ifrightpage
+% \hskip\typingparameter\c!oddmargin\relax
+% \else
+% \hskip\typingparameter\c!evenmargin\relax
+% \fi}%
+% \else
+% \doadaptleftskip{\typingparameter\c!margin}%
+% \fi
+% \doifdefinedelse{\??bo\typingparameter\c!blank}
+% {\edef\!!stringa{\csname\??bo\typingparameter\c!blank\endcsname}}
+% {\edef\!!stringa{\typingparameter\c!blank}}%
+% \processaction
+% [\!!stringa]
+% [ \v!standard=>\scratchskip\ctxparskip,
+% \v!small=>\scratchskip\blankokleinmaat,
+% \v!medium=>\scratchskip\blankomiddelmaat,
+% \v!big=>\scratchskip\blankogrootmaat,
+% \v!halfline=>\scratchskip.5\baselineskip,
+% \v!line=>\scratchskip\baselineskip,
+% \v!none=>\scratchskip\zeropoint,
+% \s!unknown=>\scratchskip\commalistelement]%
+% \ifgridsnapping
+% \ifdim\scratchskip=.5\baselineskip\relax
+% \edef\verbatimbaselineskip{\the\scratchskip}% new
+% \else
+% \edef\verbatimbaselineskip{\the\baselineskip}%
+% \fi
+% \else
+% \edef\verbatimbaselineskip{\the\scratchskip}%
+% \fi
+% \setupcommonverbatim}
+
+\setvalue{\??tp:\c!blank:\v!standard}{\ctxparskip}
+\setvalue{\??tp:\c!blank:\v!small }{\blankokleinmaat}
+\setvalue{\??tp:\c!blank:\v!medium }{\blankomiddelmaat}
+\setvalue{\??tp:\c!blank:\v!big }{\blankogrootmaat}
+\setvalue{\??tp:\c!blank:\v!halfline}{.5\baselineskip}
+\setvalue{\??tp:\c!blank:\v!line }{\baselineskip}
+\setvalue{\??tp:\c!blank:\v!none }{\zeropoint}
+
\def\initializetyping
{%\donefalse
\switchtobodyfont[\typingparameter\c!bodyfont]%
@@ -396,19 +734,8 @@
\else
\doadaptleftskip{\typingparameter\c!margin}%
\fi
- \doifdefinedelse{\??bo\typingparameter\c!blank}
- {\edef\!!stringa{\csname\??bo\typingparameter\c!blank\endcsname}}
- {\edef\!!stringa{\typingparameter\c!blank}}%
- \processaction
- [\!!stringa]
- [ \v!standard=>\scratchskip\ctxparskip,
- \v!small=>\scratchskip\blankokleinmaat,
- \v!medium=>\scratchskip\blankomiddelmaat,
- \v!big=>\scratchskip\blankogrootmaat,
- \v!halfline=>\scratchskip.5\baselineskip,
- \v!line=>\scratchskip\baselineskip,
- \v!none=>\scratchskip\zeropoint,
- \s!unknown=>\scratchskip\commalistelement]%
+ \edef\!!stringa{\executeifdefined{\??bo\typingparameter\c!blank}{\typingparameter\c!blank}}%
+ \scratchskip\executeifdefined{\??tp:\c!blank:\!!stringa}\!!stringa\relax
\ifgridsnapping
\ifdim\scratchskip=.5\baselineskip\relax
\edef\verbatimbaselineskip{\the\scratchskip}% new
@@ -450,7 +777,7 @@
\dosetuptypelinenumbering{#1}%
\initializetyping
\startverbatimcolor
- \expanded{\mktypeblockverbatim{\s!start\currenttyping}{\s!stop\currenttyping}}}
+ \expanded{\processdisplayverbatim{\s!stop\currenttyping}}}
\def\dostoptyping#1% hm, currenttyping
{\stopverbatimcolor
@@ -512,7 +839,7 @@
{\dodoubleempty\dodefinetype}
\def\dodefinetype[#1][#2]%
- {\unexpanded\setvalue{#1}{\mktype{#1}}%
+ {\unexpanded\setvalue{#1}{\dotype{#1}}%
\getparameters[\??ty#1][#2]}
%D \macros
@@ -803,16 +1130,16 @@
\typingparameter\c!after
\egroup}
-\def\doifelsetypingfile#1% sets \readfilename
+\def\doifelsetypingfile#1% sets \readfilename (we will make this proper mkiv i.e. less messy)
{\doiflocfileelse{#1}
{\firstoftwoarguments}
{\doifinputfileelse{#1}
- {\def\readfilename{\pathplusfile\filepath{#1}}\firstoftwoarguments}
+ {\def\readfilename{\pathplusfile\filepath{#1}}\firstoftwoarguments} % messy, looks wrong too
{\secondoftwoarguments}}}
\def\dodotypefile[#1][#2]#3%
{\doifelsetypingfile{#3}
- {\dosometyping{#1}{#2}{#3}\mktypefileverbatim\mktypefilelinesverbatim}
+ {\dosometyping{#1}{#2}{#3}{\processfileverbatim\readfilename}{\processfilelinesverbatim\readfilename}}
{\reporttypingerror{#3}}}
%D \macros
@@ -837,10 +1164,6 @@
\def\verbatim#1{\defconvertedargument\ascii{#1}\ascii}
-%D Plugins
-
-\loadmarkfile{core-ver}
-
%D The setups for display verbatim and file verbatim are
%D shared. One can adapt the extra defined typing environments,
%D but they also default to the values below. Watch the
diff --git a/Master/texmf-dist/tex/context/base/buff-ver.mkiv b/Master/texmf-dist/tex/context/base/buff-ver.mkiv
new file mode 100644
index 00000000000..28e3e60d501
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/buff-ver.mkiv
@@ -0,0 +1,1127 @@
+%D \module
+%D [ file=buff-ver, % was core-ver
+%D version=2000.05.09,
+%D title=\CONTEXT\ Buffer Macros,
+%D subtitle=Verbatim,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Buffer Macros / Verbatim}
+
+%D We can optimize esp the initializations a bit.
+
+\unprotect
+
+\ifx\startlinenumbering\undefined \let\startlinenumbering\relax \fi
+\ifx\stoplinenumbering \undefined \let\stoplinenumbering\relax \fi
+\ifx\setuplinenumbering\undefined \def\setuplinenumbering[#1]{} \fi
+
+% D \macros
+% D {iflinepar}
+% D
+% D A careful reader will see that \type{\linepar} is reset.
+% D This boolean can be used to determine if the current line is
+% D the first line in a pseudo paragraph and this boolean is set
+% D after each empty line. The \type{\relax} can be used to
+% D determine the end of the line when one implements a scanner
+% D routine.
+%
+% will become obsolete
+
+\newif\iflinepar
+
+% \type{ <crlf> char} geeft bagger
+
+%D We are going to embed the general verbatim support macros in
+%D a proper environment. First we show the common setup
+%D macro, so we know what features are supported. The options
+%D are hooked into the support macros via the \type{\obey}
+%D macros.
+
+\newif\ifslantedtypeactivated
+\newif\ifslantedtypepermitted
+
+\def\switchslantedtype
+ {\ifslantedtypepermitted
+ \ifslantedtypeactivated
+ \slantedtypeactivatedfalse\tttf
+ \else
+ \slantedtypeactivatedtrue\ttsl
+ \fi
+ \fi}
+
+\def\prettyidentifier {TEX}
+\def\prettypalet {}
+
+\def\installprettytype
+ {\dodoubleargument\doinstallprettytype}
+
+\def\doinstallprettytype[#1][#2]% map #1 onto #2
+ {\uppercasestring#1\to\asciia
+ \uppercasestring#2\to\asciib
+ \setevalue{\??ty\??ty\asciia}{\asciib}}
+
+\def\setupprettiesintype#1%
+ {\uppercasestring#1\to\ascii
+ \edef\prettyidentifier{\executeifdefined{\??ty\??ty\ascii}{TEX}}%
+ \begingroup
+ % we can move this to lua
+ \lowercasestring \f!prettyprefix\prettyidentifier\to\filename
+ \doonlyonce\filename{\ctxloadluafile\filename\empty}%
+ \endgroup}
+
+\def\setupprettytype
+ {\processingverbatimtrue % will move
+ \ctxlua{buffers.visualizers.reset()}}
+
+\def\setverbatimspaceskip
+ {\setbox\scratchbox\hbox{x}%
+ \spaceskip\wd\scratchbox
+ \xspaceskip\spaceskip}
+
+\let\obeycharacters\relax
+
+\setvalue{\??tp:\c!lines:\v!yes }{\obeybreakpoints}
+\setvalue{\??tp:\c!lines:\v!hyphenated}{\obeyhyphens}
+
+%setvalue{\??tp:\c!empty:\v!yes }{\obeyemptylines}
+%setvalue{\??tp:\c!empty:\v!all }{\obeyallemptylines}
+
+\setvalue{\??tp:\c!option:\v!none }{\let\obeycharacters\relax}
+\setvalue{\??tp:\c!option:\v!color }{\setupprettiesintype{TEX}%
+ \let\obeycharacters\setupprettytype
+ \let\obeytabs\ignoretabs}
+\setvalue{\??tp:\c!option:\v!normal }{\let\obeycharacters\setupgroupedtype}
+\setvalue{\??tp:\c!option:\v!commands }{\def\obeycharacters{\setupcommandsintype}%
+ \let\obeytabs\ignoretabs}
+\setvalue{\??tp:\c!option:\v!slanted }{\let\obeycharacters\setupslantedtype
+ \let\obeytabs\ignoretabs}
+\setvalue{\??tp:\c!option:\s!unknown }{\setupprettiesintype{\typingparameter\c!option}%
+ \let\obeycharacters\setupprettytype
+ \let\obeytabs\ignoretabs}
+
+\def\dosetverbatimfont
+ {\redoconvertfont\dosetfontattribute{\currenttypingclass\currenttyping}\c!style
+ \normalnoligatures\font}
+
+\def\setupcommonverbatim
+ {\let\prettyidentifier\s!default
+ %
+% \doifelse{\typingparameter\c!text}\v!yes
+% \naturaltextexttrue
+% \naturaltextextfalse
+ \def\prettyidentifierfont{\typingparameter\c!icommand}%
+ \def\prettyvariablefont {\typingparameter\c!vcommand}%
+ \def\prettynaturalfont {\typingparameter\c!ccommand}%
+ %
+ \doif{\typingparameter\c!space}\v!on
+ {\def\obeyspaces{\setcontrolspaces}}%
+ \doif{\typingparameter\c!page }\v!no
+ {\def\obeypages {\ignorepages}}%
+ %
+ \ignorehyphens % default
+ \getvalue{\??tp:\c!lines:\typingparameter\c!lines}%
+ \getvalue{\??tp:\c!empty:\typingparameter\c!empty}%
+ \getvalue{\??tp:\c!option:\ifcsname\??tp:\c!option:\typingparameter\c!option\endcsname\typingparameter\c!option\else\s!unknown\fi}%
+ \doifnumberelse{\typingparameter\c!tab}
+ {\def\obeytabs{\setfixedtabskips{\typingparameter\c!tab}}}%
+ \donothing
+ \setupverbatimcolor}
+
+\newtoks \everyinitializeverbatim
+
+\def\doinitializeverbatim
+ {\ctxlua{buffers.visualizers.reset()}%
+ \def\obs{\obeyedspace}%
+ \ctxlua{buffers.doifelsevisualizer("\prettyidentifier")}
+ {\ctxlua{buffers.setvisualizer("\prettyidentifier")}%
+ \def\bop{\bgroup\beginofpretty}%
+ \def\eop{\endofpretty\egroup}%
+ \def\sop{\endofpretty\egroup\bgroup\beginofpretty}}%
+ {\let\bop\donothing
+ \let\eop\donothing
+ \let\sop\donothing}%
+ \relax\the\everyinitializeverbatim\relax}
+
+\appendtoks
+ \resetfontfeature
+ \resetcharacterspacing
+\to \everyinitializeverbatim
+
+% BEWARE: the noligatures will globally change the verbatim font's behaviour
+
+% test case:
+%
+% \definetype[typeTEX][option=tex]
+%
+% \typeTEX|\example---oeps|. this---ligates---again.
+% \typeTEX{\example---oeps}. this---ligates---again.
+% \type {\example---oeps}. this---ligates---again.
+
+\def\setupcommandsintype % can also be \string\
+ {\ctxlua{
+ buffers.visualizers.enableescape = true
+ buffers.visualizers.escapetoken = \!!bs\typingparameter\c!escape\!!es
+ }%
+ \setevalue{\typingparameter\c!escape}{\typingparameter\c!escape}}
+
+\def\setupslantedtype
+ {\slantedtypepermittedtrue}
+
+\ifx\setupprettytype \undefined \let\setupprettytype \relax \fi
+\ifx\setupslantedtype \undefined \let\setupslantedtype \relax \fi
+\ifx\setupgroupedtype \undefined \let\setupgroupedtype \relax \fi
+\ifx\normalnoligatures\undefined \let\normalnoligatures\gobbleoneargument \fi
+
+%D The verbatim commands have a rather long and turbulent
+%D history. Most users of \CONTEXT\ probably will never use
+%D some of the features, but I've kept in mind that when one is
+%D writing a users manual, about everything can and undoubtly
+%D will be subject to a verbatim treatment.
+%D
+%D Verbatim command are very sensitive to argument processing,
+%D which is a direct result of the \CATCODES\ being fixed at
+%D reading time. With our growing understanding of \TEX,
+%D especially of the mechanism that can be used for looking
+%D ahead and manipulating \CATCODES, the verbatim support
+%D became more and more advanced and natural.
+%D
+%D Typesetting inline verbatim can be accomplished by
+%D \type{\type}, which in this sentence was typeset by saying
+%D just \type{\type{\type}}, which in turn was typeset by
+%D \unknown. Using the normal grouping characters \type{{}} is
+%D the most natural way of using this command.
+%D
+%D A second, more or less redundant, alternative is delimiting
+%D the argument with an own character. This method was
+%D implemented in the context of a publication in the \MAPS,
+%D where this way of delimiting is recognized by \LATEX\ users.
+%D
+%D The third, more original alternative, is the one using
+%D \type{<<} and \type{>>} as delimiters. This alternative can
+%D be used in situations where slanted typeseting is needed.
+
+% todo: we can use \letter... here:
+
+\def\lesscharacter {<}
+\def\morecharacter {>}
+
+\chardef\texescape = `\\
+\chardef\leftargument = `\{
+\chardef\rightargument = `\}
+
+%D \macros
+%D {type}
+%D
+%D We define \type{\type} as a protected command. This command
+%D has several invocations: grouped, wirt boundary characters,
+%D and with font switches.
+
+% \starttyping
+% normal: \par \type{xx<<..xx..<<xx <<xx>> >>..>>xx} \par \type<<....>> \par \type<<..<<xx>>..>> \par
+% normal: \par \type{xx<..xx..<xx <slanted> >..>xx} \par \type{<....>} \par \type{<..<xx>..>}
+% \setuptype[option=slanted]
+% slanted: \par \type{xx<<..sl..<<xx <<sl>> xx>>..sl..>>xx} \par \type<<..xx..>> \par \type<<..<<sl>>..>> \par
+% slanted: \par \type{xx<<..sl..<xx <sl> xx>..sl..>>xx} \par \type<<..xx..>> \par \type<<..<sl>..>> \par
+% \setuptype[option=none]
+% none: \par \type{xx<<..xx..<<xx <<xx>> >>..>>xx} \par \type<<....>> \par \type<<..<<xx>>..>> \par
+% \stoptyping
+
+%D When writing the manual to \CONTEXT\ and documenting this
+%D source we needed to typeset \type{<<} and \type{>>}. Because
+%D we wanted to do this in the natural way, we've adapted the
+%D original definition a bit. This implementation went through
+%D several live cycles. The final implementation looks a bit
+%D further and treats the lone \type{<<} and \type{>>} a bit
+%D different. The \type {\null} prevents ligatures, which
+%D unfortunately turn up in Lucida fonts.
+
+%D The following lines show what happens when we set
+%D \type {option=commands}.
+%D
+%D \startbuffer
+%D \starttyping
+%D test//test test/BTEX \footnote{test test test}/ETEX test
+%D test//test test/BTEX \footnote{test test test}/ETEX test
+%D test test test/BTEX \bf(nota bene)/ETEX test
+%D test test test /BTEX \bf(nota bene)/ETEX test
+%D \stoptyping
+%D \stopbuffer
+%D
+%D % \bgroup\setuptyping[option=commands]\getbuffer\egroup
+%D
+%D this was keyed in as:
+%D
+%D \typebuffer
+
+\unexpanded\def\type{\dotype\empty}
+
+\def\dotype#1% was \dotype
+ {\dontleavehmode \bgroup
+ % new, \strut enables leading space in \type { abc } at par start / begstrut
+ % else no hyphenation (replaced by \dontleavehmode which saves unboxing)
+ % \begstrut
+ \let\currenttypingclass\??ty
+ \edef\currenttyping{#1}%
+ \catcode`\<=\@@other
+ \catcode`\>=\@@other
+ \futurelet\next\dodotype}
+
+% \def\dodotype
+% {\ifx\next\bgroup
+% \@EA\dodotypeA
+% \else\if\next<%
+% \doifelse{\typingparameter\c!option}\v!none{\@EAEAEA\dodotypeB}{\@EAEAEA\dodotypeC}%
+% \else
+% \@EAEAEA\dodotypeD
+% \fi\fi}
+
+\def\dodotype
+ {\ifx\next\bgroup
+ \@EA\dodotypeA
+ \else
+ \@EA\dodotypeAD
+ \fi}
+
+\def\dodotypeAD
+ {\if\next<%
+ \doifelse{\typingparameter\c!option}\v!none{\@EA\dodotypeB}{\@EA\dodotypeC}%
+ \else
+ \@EA\dodotypeD
+ \fi}
+
+\def\dodotypeA
+ {\initializetype % probably too much
+ \verbatimcolor
+ \dosetverbatimfont
+ \setcatcodetable \typcatcodesa
+ \dodotypeAA}
+
+\def\dodotypeAA#1%
+ {\doinitializeverbatim
+ \def\obs{\obeyedspace}%
+ \ctxlua{buffers.hooks.flush_inline(\!!bs\detokenize{#1}\!!es)}%
+ \egroup}
+
+\def\dodotypeB#1%
+ {\initializetype
+ \verbatimcolor
+ \dosetverbatimfont
+ \setcatcodetable \typcatcodesb
+ \dodotypeBB}
+
+\def\dodotypeBB#1%
+ {\doinitializeverbatim
+ \ctxlua{buffers.visualizers.flush_nested(\!!bs\detokenize{#1}\!!es,false)}%
+ \egroup
+ \gobbleoneargument} % grab last >
+
+\def\dodotypeC#1%
+ {\initializetype
+ \verbatimcolor
+ \dosetverbatimfont
+ \setcatcodetable \typcatcodesb
+ \dodotypeCC}
+
+\def\dodotypeCC#1%
+ {\doinitializeverbatim
+ \ifx\obeycharacters\setupprettytype % temp hack, we need a proper signal
+ \ctxlua{buffers.hooks.flush_inline([\!!bs\detokenize{#1}\!!es,true)}%
+ \else
+ \def\obs{\obeyedspace}%
+ \ctxlua{buffers.visualizers.flush_nested(\!!bs\detokenize{#1}\!!es,true)}%
+ \fi
+ \egroup
+ \gobbleoneargument} % grab last >
+
+\def\dodotypeD#1%
+ {\initializetype
+ \verbatimcolor
+ \dosetverbatimfont
+ \setcatcodetable \typcatcodesa
+ \def\dodotypeDD##1#1{\dodotypeAA{##1}}%
+ \dodotypeDD}
+
+\def\dodotypeDD#1%
+ {\doinitializeverbatim
+ \ctxlua{buffers.hooks.flush_inline(\!!bs\detokenize{#1}\!!es,true)}%
+ \egroup
+ \gobbleoneargument} % grab last >
+
+%D The neccessary initializations are done by calling
+%D \type{\initializetype} which in return calls for the support
+%D macro \type{\setupinlineverbatim}.
+
+\def\initializetype
+ {\let\obeylines\ignorelines
+ \setupcommonverbatim
+ %\dosetverbatimfont
+ %\setverbatimspaceskip
+ %\let\obeytabs \ignoretabs % probably not needed
+ %\let\obeylines\ignorelines % probably not needed
+ %\let\obeypages\ignorepages % probably not needed
+ %\setupcopyverbatim % not needed
+ \setcatcodetable\vrbcatcodes
+ }
+
+%D \macros
+%D {setuptype}
+%D
+%D Some characteristics of \type{\type} can be set up by:
+
+\def\setuptype
+ {\dodoubleempty\dosetuptype}
+
+\def\dosetuptype[#1][#2]%
+ {\ifsecondargument
+ \getparameters[\??ty#1][#2]%
+ \else
+ \getparameters[\??ty][#1]%
+ \fi}
+
+%D \macros
+%D {typ,obeyhyphens,obeybreakpoints}
+%D
+%D Although it's not clear from the macros, one character
+%D trait of this macros, which are build on top of the support
+%D module, is that they don't hyphenate. We therefore offer
+%D the alternative \type{\typ}. The current implementation
+%D works all right, but a decent hyphenation support of
+%D \type{\tt} text will be implemented soon.
+
+\def\specialobeyedspace {\hskip\interwordspace\relax} % better than spaceskip
+\def\specialcontrolspace{\hskip\zeropoint\hbox{\normalcontrolspace}\hskip\zeropoint\relax}
+
+\def\obeyhyphens
+ {\let\obeyedspace \specialobeyedspace
+ \let\controlspace\specialcontrolspace
+ \spaceskip.25em\relax} % hm a bit of stretch !
+
+\def\obeybreakpoints
+ {\ignorehyphens
+ \veryraggedright}
+
+\def\ignorehyphens
+ {% \language\minusone % extra bonus, the \null should do the job too
+ \let\obeyedspace \specialobeyedspace
+ \let\controlspace\specialcontrolspace
+ \spaceskip.5em\relax}
+
+\unexpanded\def\typ
+ {\bgroup
+ \let\@@tylines\v!hyphenated
+ \futurelet\next\dodotype}
+
+%D \macros
+%D {tex,arg,mat,dis}
+%D
+%D Sometimes, for instance when we pass verbatim text as an
+%D argument, the fixed \CATCODES\ interfere with our wishes. An
+%D experimental implementation of character by character
+%D processing of verbatim text did overcome this limitation,
+%D but we've decided not to use that slow and sometimes
+%D troublesome solution. Instead we stick to some 'old'
+%D \CONTEXT\ macros for typesetting typical \TEX\ characters.
+%D
+%D The next implementation is more clear but less versatile,
+%D so we treated it for a beter one.
+%D
+%D \starttyping
+%D \def\dospecialtype#1#2%
+%D {\bgroup
+%D \initializetype
+%D \catcode`\{=\@@begingroup
+%D \catcode`\}=\@@endgroup
+%D \def\dospecialtype%
+%D {\def\dospecialtype{#2\egroup}%
+%D \bgroup
+%D \aftergroup\dospecialtype
+%D #1}%
+%D \afterassignment\dospecialtype
+%D \let\next=}
+%D
+%D \unexpanded\def\tex{\dospecialtype\texescape\relax}
+%D \unexpanded\def\arg{\dospecialtype\leftargument\rightargument}
+%D \unexpanded\def\mat{\dospecialtype\$\$}
+%D \unexpanded\def\dis{\dospecialtype{\$\$}{\$\$}}
+%D \stoptyping
+
+\def\setgroupedtype
+ {\let\currenttypingclass\??ty
+ \initializetype
+ \verbatimcolor
+ \dosetverbatimfont
+ %\setcatcodetable \typcatcodesa
+ \catcode`\{=\@@begingroup
+ \catcode`\}=\@@endgroup}
+
+\unexpanded\def\tex{\groupedcommand{\setgroupedtype\texescape}{\relax}}
+\unexpanded\def\arg{\groupedcommand{\setgroupedtype\leftargument}{\rightargument}}
+\unexpanded\def\mat{\groupedcommand{\setgroupedtype\$}{\$}}
+\unexpanded\def\dis{\groupedcommand{\setgroupedtype\$\$}{\$\$}}
+
+%D \macros
+%D {starttyping}
+%D
+%D Display verbatim is realized far more easy, which is mostly
+%D due to the fact that we use \type{\stop...} as delimiter.
+%D The implementation inherits some features, for instance the
+%D support of linenumbering, which can best be studied in the
+%D documented support module.
+
+\let\currenttyping \empty
+\let\currenttypingclass\??ty % saveguard
+
+\def\typingparameter#1%
+ {\ifcsname\currenttypingclass\currenttyping#1\endcsname
+ \csname\currenttypingclass\currenttyping#1\endcsname
+ \else\ifcsname\currenttypingclass#1\endcsname
+ \csname\currenttypingclass#1\endcsname
+ \fi\fi}
+
+\def\settypingparameter#1#2%
+ {\setvalue{\currenttypingclass\currenttyping#1}{#2}}
+
+\def\setxtypingparameter#1#2%
+ {\setxvalue{\currenttypingclass\currenttyping#1}{#2}}
+
+\setvalue{\??tp:\c!blank:\v!standard}{\ctxparskip}
+\setvalue{\??tp:\c!blank:\v!small }{\blankokleinmaat}
+\setvalue{\??tp:\c!blank:\v!medium }{\blankomiddelmaat}
+\setvalue{\??tp:\c!blank:\v!big }{\blankogrootmaat}
+\setvalue{\??tp:\c!blank:\v!halfline}{.5\baselineskip}
+\setvalue{\??tp:\c!blank:\v!line }{\baselineskip}
+\setvalue{\??tp:\c!blank:\v!none }{\zeropoint}
+
+\def\doopenupverbatimlineindeed
+ {\getpagestatus
+ \ifrightpage
+ \hskip\typingparameter\c!oddmargin\relax
+ \else
+ \hskip\typingparameter\c!evenmargin\relax
+ \fi}
+
+\def\initializetyping
+ {%\donefalse
+ \switchtobodyfont[\typingparameter\c!bodyfont]%
+ \donefalse
+ \scratchskip\typingparameter\c!oddmargin\relax
+ \ifzeropt\scratchskip\else\donetrue\fi
+ \scratchskip\typingparameter\c!evenmargin\relax
+ \ifzeropt\scratchskip\else\donetrue\fi
+ \ifdone
+ \let\doopenupverbatimline\doopenupverbatimlineindeed
+ \else
+ \doadaptleftskip{\typingparameter\c!margin}%
+ \fi
+ \edef\!!stringa{\executeifdefined{\??bo\typingparameter\c!blank}{\typingparameter\c!blank}}%
+ \scratchskip\executeifdefined{\??tp:\c!blank:\!!stringa}\!!stringa\relax
+ \ifgridsnapping
+ \ifdim\scratchskip=.5\baselineskip\relax
+ \edef\verbatimbaselineskip{\the\scratchskip}% new
+ \else
+ \edef\verbatimbaselineskip{\the\baselineskip}%
+ \fi
+ \else
+ \edef\verbatimbaselineskip{\the\scratchskip}%
+ \fi
+ \setupcommonverbatim}
+
+%D The basic display verbatim commands are defined in an
+%D indirect way. As we will see, they are a specific case of a
+%D more general mechanism.
+
+\newif\ifoptimizeverbatim \optimizeverbatimtrue
+
+\let \beginofverbatimlines \relax
+\let \endofverbatimlines \relax
+
+\def\doverbatimnobreak
+ {\ifoptimizeverbatim\penalty500 \fi}
+
+\def\doverbatimgoodbreak
+ {\ifoptimizeverbatim\penalty\linepenalty\fi}
+
+% \def\doflushverbatimline
+% {\expandafter\dodoverbatimline\expandafter{\savedverbatimline}}
+% \def\doverbatimbeginofline#1% linenumber (optional provided by mkiv / todo)
+% {\dontleavehmode
+% \strut
+% \the\everyline}
+% \def\doverbatimendofline
+% {\par}
+% \def\doverbatimemptyline
+% {\strut
+% \par}
+% \let\handleverbatimline=\relax
+
+% we need this hack because otherwise verbatim skips
+% the first line (everything after the initial command)
+
+\def\dostarttyping#1% tricky non standard lookahead
+ {\bgroup
+ \let\currenttypingclass\??tp
+ \edef\currenttyping{#1}%
+ \obeylines
+ \futurelet\nexttoken\dodostarttyping}
+
+\def\dodostarttyping
+ {\ifx\nexttoken[%
+ \expandafter\dododostarttyping
+ \else
+ \expandafter\nododostarttyping
+ \fi}
+
+\def\nododostarttyping
+ {\dododostarttyping[]}
+
+\def\dotypefileverbatim
+ {\doinitializeverbatim
+ \ctxlua{buffers.typefile("\readfilename")}}
+
+\def\dotypefilelinesverbatim#1#2%
+ {#1%
+ \doinitializeverbatim
+ \ctxlua{buffers.typefile("\readfilename")}%
+ #2}
+
+\unexpanded\def\dotypeblockverbatim#1#2%
+ {\dowithbuffer{_typing_}{#1}{#2}
+ {}
+ {\doinitializeverbatim
+ \beginofverbatimlines
+ \ctxlua{buffers.type("_typing_")}%
+ \endofverbatimlines
+ \csname#2\endcsname}}
+
+\def\dododostarttyping[#1]%
+ {\typingparameter\c!before
+ \startpacked % includes \bgroup
+ \dosetuptypelinenumbering{#1}%
+ \initializetyping
+ \dosetverbatimfont
+ \startverbatimcolor
+ \normalexpanded{\dotypeblockverbatim{\e!start\currenttyping}{\e!stop\currenttyping}}} % was s!start
+
+\def\dostoptyping#1% hm, currenttyping
+ {\stopverbatimcolor
+ \stoppacked % includes \egroup
+ \typingparameter\c!after
+ \egroup
+ \dochecknextindentation{\??tp#1}%
+ \dorechecknextindentation}
+
+%D Line numbering for files is combined with filtering, while
+%D display verbatim has the ability to continue.
+%D
+%D \starttyping
+%D \typefile[numbering=file,start=10,stop=12]{test.tex}
+%D
+%D \definetyping[code][numbering=line]
+%D
+%D \starttext
+%D \startcode
+%D ...
+%D ...
+%D \stopcode
+%D
+%D \startcode[continue]
+%D ...
+%D ...
+%D \stopcode
+%D
+%D \startcode[start=10]
+%D ...
+%D \stopcode
+%D \stoptyping
+
+%D \macros
+%D {setuptyping}
+%D
+%D The setup of typing accepts two arguments. The optional
+%D first one identifies the user defined ones. If only one
+%D argument is given, the values apply to both the standard
+%D command \type{\starttyping} and \type{\typefile}.
+
+\def\dosetuptyping[#1][#2]%
+ {\ifsecondargument
+ \getparameters[\??tp#1][#2]%
+ \else
+ \getparameters[\??tp][#1]%
+ \fi}
+
+\def\setuptyping
+ {\dodoubleempty\dosetuptyping}
+
+%D \macros
+%D {definetype}
+%D
+%D Specific inline verbatim commands can be defined with the
+%D following command.
+
+\def\definetype
+ {\dodoubleempty\dodefinetype}
+
+\def\dodefinetype[#1][#2]%
+ {\unexpanded\setvalue{#1}{\dotype{#1}}%
+ \getparameters[\??ty#1][#2]}
+
+%D \macros
+%D {definetyping}
+%D
+%D For most users the standard \type{\start}||\type{\stop}||pair
+%D will suffice, but for documentation purposes the next
+%D definition command can be of use:
+%D
+%D \starttyping
+%D \definetyping[extratyping][margin=3em]
+%D
+%D \startextratyping
+%D these extra ones are indented by 1 em
+%D \stopextratyping
+%D \stoptyping
+%D
+%D The definitions default to the standard typing values.
+
+\def\presettyping[#1][#2]%
+ {\copyparameters[\??tp#1][\??tp][\c!color,\c!style]%
+ \getparameters [\??tp#1][#2]}
+
+\def\dodefinetyping[#1][#2]%
+ {\setvalue{\e!start#1}{\dostarttyping{#1}}%
+ \setvalue{\e!stop #1}{\dostoptyping {#1}}%
+ \presettyping[#1][#2]}
+
+\def\definetyping
+ {\dodoubleempty\dodefinetyping}
+
+%D We can use some core color commands. These are faster than
+%D the standard color switching ones and work ok on a line by
+%D line basis.
+%D
+%D \starttyping
+%D \def\setupverbatimcolor%
+%D {\edef\prettypalet{\prettyidentifier\typingparameter\c!palet}%
+%D \def\beginofpretty[##1]{\startcolormode{\prettypalet:##1}}%
+%D \def\endofpretty {\stopcolormode}}
+%D \stoptyping
+%D
+%D Since we support a global color too, the folowing
+%D definition is better:
+
+\def\normalbeginofpretty [#1]{\startcolor[\prettypalet:#1]}%
+\def\normalendofpretty {\stopcolor}
+\def\normalstartverbatimcolor{\startcolor[\typingparameter\c!color]}%
+\def\normalstopverbatimcolor {\stopcolor}
+\def\normalverbatimcolor {\getvalue{\typingparameter\c!color}}% command !
+
+\def\ignorebeginofpretty [#1]{}
+\def\ignoreendofpretty {}
+
+\def\setupnormalprettyverbatim
+ {\edef\prettypalet{\prettyidentifier\prettypalet}%
+ \let\beginofpretty \normalbeginofpretty
+ \let\endofpretty \normalendofpretty
+ \let\startverbatimcolor\normalstartverbatimcolor
+ \let\stopverbatimcolor \normalstopverbatimcolor
+ \let\verbatimcolor \normalverbatimcolor}
+
+\def\setupignoreprettyverbatim
+ {\let\prettypalet \empty
+ \let\beginofpretty \ignorebeginofpretty
+ \let\endofpretty \ignoreendofpretty
+ \let\startverbatimcolor\normalstartverbatimcolor
+ \let\stopverbatimcolor \normalstopverbatimcolor
+ \let\verbatimcolor \normalverbatimcolor}
+
+\def\setupverbatimcolor
+ {\edef\prettypalet{\typingparameter\c!palet}%
+ \ifx\prettypalet\empty
+ \setupignoreprettyverbatim
+ \else
+ \setupnormalprettyverbatim
+ \fi}
+
+\let\beginofpretty \ignorebeginofpretty
+\let\endofpretty \ignoreendofpretty
+\let\prettypalet \empty
+\let\startverbatimcolor\relax
+\let\stopverbatimcolor \relax
+\let\verbatimcolor \relax
+
+%D \macros
+%D {EveryPar, EveryLine, iflinepar}
+%D
+%D One of the features of these commands is the support of
+%D \type{\EveryPar}, \type{\EveryLine} and \type{\iflinepar}.
+%D In the documentation of the verbatim support module we give
+%D some examples of line- and paragraph numbering using these
+%D macros.
+
+%D \macros
+%D {typefile}
+%D
+%D Typesetting files verbatim (for the moment) only supports
+%D colorization of \TEX\ sources as valid option. The other
+%D setup values are inherited from display verbatim.
+%D The implementation of \type{\typefile} is straightforward:
+
+% new feature (not yet 100\% ok)
+%
+% \setuptyping[file][numbering=file]
+%
+% \typefile[start=2,nlines=3]{zapf}
+% \typefile[start=continue,nlines=13]{zapf}
+% \typefile{zapf}
+%
+% \setuptyping[file][numbering=line]
+%
+% \typefile[start=4,step=3]{zapf}
+% \typefile{zapf}
+
+\def\typefile
+ {\dodoubleempty\dotypefile}
+
+\def\dotypefile[#1][#2]#3%
+ {\ifsecondargument
+ \dodotypefile[#1][#2]{#3}%
+ \else\iffirstargument
+ \doifassignmentelse{#1}
+ {\dodotypefile[\v!file][#1]{#3}}
+ {\dodotypefile[#1][]{#3}}%
+ \else
+ \dodotypefile[\v!file][]{#3}%
+ \fi\fi}
+
+\def\dosetuptypelinenumbering#1% fuzzy
+ {\ifcsname\currenttypingclass\currenttyping\c!start\endcsname \else
+ \setuptyping[\currenttyping][\c!start=1,\c!stop=,\c!step=1,\c!nlines=]%
+ \fi
+ \setuptyping[\currenttyping][#1]%
+ \doifelse{\typingparameter\c!numbering}\v!file
+ {% kind of special: filters lines !
+ \setuplinenumbering[\c!method=\v!file]%
+ \donetrue}
+ {\doifelse{\typingparameter\c!numbering}\v!line
+ {% \setuplinenumbering defaults start/step to 1/1, so we need
+ \doifinsetelse\v!continue{#1,\typingparameter\c!start}
+ {\scratchcounter0\typingparameter\c!n
+ \setxtypingparameter\c!start{\ifnum\scratchcounter=0 1\else\number\scratchcounter\fi}}%
+ {\doifnothing{\typingparameter\c!start}{\settypingparameter\c!start{1}}}%
+ \doifnothing{\typingparameter\c!step}{\settypingparameter\c!step{1}}%
+ \setuplinenumbering
+ [\c!method=\v!type,
+ \c!start=\typingparameter\c!start,
+ \c!stop=\typingparameter\c!stop,
+ \c!step=\typingparameter\c!step]%
+ \donetrue}
+ {\donefalse}}%
+ \ifdone
+ \ifx\startlinenumbering\undefined \let\startlinenumbering\relax \fi
+ \ifx\stoplinenumbering \undefined \let\stoplinenumbering \relax \fi
+ \def\beginofverbatimlines{\startlinenumbering}%
+ \def\endofverbatimlines {\stoplinenumbering\setxtypingparameter\c!n{\number\linenumber}}%
+ \fi}
+
+\def\reporttypingerror#1% temp hack
+ {\blank
+ \dontleavehmode\hbox\bgroup
+ \expanded{\defconvertedargument\noexpand\ascii{#1}}%
+ \tttf[\makemessage\m!verbatims1\ascii]%
+ \showmessage\m!verbatims1\ascii
+ \egroup
+ \blank}
+
+\def\dosometyping#1#2#3#4#5%
+ {\bgroup
+ \let\currenttypingclass\??tp
+ \edef\currenttyping{#1}%
+ \typingparameter\c!before
+ \startpacked % includes \bgroup
+ \dosetuptypelinenumbering{#2}%
+ \doifinset{\typingparameter\c!option}{\v!commands,\v!slanted,\v!normal}
+ {\setuptyping[#1][\c!option=\v!none]}%
+ \doif{\typingparameter\c!option}\v!color
+ {\expandafter\aftersplitstring#3\at.\to\prettyidentifier
+ \settypingparameter\c!option{\prettyidentifier}}%
+ \initializetyping
+ \dosetverbatimfont
+ \startverbatimcolor
+ \scratchcounter
+ \ifcsname\currenttypingclass#3\v!global\c!start\endcsname
+ \numexpr\csname\currenttypingclass#3\v!global\c!start\endcsname+\plusone\relax
+ \else
+ \plusone
+ \fi
+ \setxvalue{\currenttypingclass#3\v!global\c!start}{\the\scratchcounter}% no direct setxvalue as it defines beforehand
+ \doifelsenothing{\typingparameter\c!start}
+ {#4}
+ {\doif{\typingparameter\c!start}\v!continue
+ {\setevalue{\currenttypingclass#1\c!start}%
+ {\getvalue{\currenttypingclass#3\v!global\c!start}}}%
+ \doifelsenothing{\typingparameter\c!stop}
+ {\doifelsenothing{\typingparameter\c!nlines}
+ {#4}
+ {\setxvalue{\currenttypingclass#3\v!global\c!start}%
+ {\the\numexpr\typingparameter\c!start+\typingparameter\c!nlines+\minusone\relax}%
+ #5{\typingparameter\c!start}{\getvalue{\currenttypingclass#3\v!global\c!start}}}}%
+ {#5{\typingparameter\c!start}{\typingparameter\c!stop}}}%
+ \stopverbatimcolor
+ \stoppacked
+ \typingparameter\c!after
+ \egroup}
+
+\def\doifelsetypingfile#1% sets \readfilename (we will make this proper mkiv i.e. less messy)
+ {\doiflocfileelse{#1}
+ {\firstoftwoarguments}
+ {\doifinputfileelse{#1}
+ {\def\readfilename{\pathplusfile\filepath{#1}}\firstoftwoarguments} % messy, looks wrong too
+ {\secondoftwoarguments}}}
+
+\def\dodotypefile[#1][#2]#3%
+ {\doifelsetypingfile{#3}
+ {\dosometyping{#1}{#2}{#3}\dotypefileverbatim\dotypefilelinesverbatim}
+ {\reporttypingerror{#3}}}
+
+%D \macros
+%D {filename}
+%D
+%D Typesetting filenames in monospaced fonts is possible with
+%D
+%D \starttyping
+%D \filename{here/there/filename.suffix}
+%D \stoptyping
+%D
+%D The definition is not that spectacular.
+
+\unexpanded\def\filename#1{{\tttf\hyphenatedfilename{#1}}}
+
+%D And a bonus macro:
+
+\def\verbatim#1{\defconvertedargument\ascii{#1}\ascii}
+
+%D The setups for display verbatim and file verbatim are
+%D shared. One can adapt the extra defined typing environments,
+%D but they also default to the values below. Watch the
+%D alternative escape character.
+
+\setuptyping
+ [ \c!before=\blank,
+ \c!after=\blank,
+ \c!bodyfont=,
+ \c!color=,
+ \c!space=\v!off,
+ \c!page=\v!no,
+ \c!tab=\s!ascii,
+ \c!option=\v!none,
+ \c!palet=colorpretty,
+ \c!text=\v!no,
+ \c!style=\tttf,
+ \c!icommand=\ttsl,
+ \c!vcommand=,
+ \c!ccommand=\tttf,
+ \c!indentnext=\v!yes,
+ \c!margin=\!!zeropoint,
+ \c!evenmargin=\!!zeropoint,
+ \c!oddmargin=\!!zeropoint,
+ \c!blank=\v!line,
+ \c!escape=/, % beware \string\ , should also be accepted
+ \c!numbering=\v!no,
+ \c!lines=,
+ \c!empty=,
+ \c!start=1,
+ \c!stop=,
+ \c!step=1,
+ \c!continue=,
+ \c!nlines=]
+
+\definetyping[\v!typing]
+
+\presettyping[\v!file][]
+
+% \setuptyping % not needed
+% [\v!file]
+% [\c!start=1,
+% \c!stop=,
+% \c!step=1,
+% \c!continue=,
+% \c!nlines=]
+
+%D The setups for inline verbatim default to:
+
+\setuptype
+ [ \c!space=\v!off,
+ \c!color=,
+ \c!style=\tt\tf, % \tttf gives problems with {\tx \type...}
+ \c!page=\v!no,
+ \c!tab=\v!yes,
+ \c!palet=colorpretty,
+ \c!option=\v!normal]
+
+%D Beware: only a few are currently (re)implemented in \MKIV.
+
+\definetyping[RAW] [\c!option=RAW]
+\definetyping[MP] [\c!option=MP] % done
+\definetyping[PL] [\c!option=PL]
+\definetyping[PM] [\c!option=PL]
+\definetyping[JS] [\c!option=JS]
+\definetyping[JV] [\c!option=JV]
+\definetyping[SQL] [\c!option=SQL]
+\definetyping[TEX] [\c!option=TEX] % done
+\definetyping[PAS] [\c!option=PAS]
+\definetyping[PASCAL][\c!option=PAS]
+\definetyping[MOD] [\c!option=PAS]
+\definetyping[MODULA][\c!option=PAS]
+\definetyping[DELPHI][\c!option=PAS]
+\definetyping[EIFFEL][\c!option=EIF]
+\definetyping[XML] [\c!option=XML]
+\definetyping[LUA] [\c!option=LUA] % done
+
+\installprettytype [RAW] [RAW]
+
+\installprettytype [TEX] [TEX]
+
+\installprettytype [PERL] [PL]
+\installprettytype [PL] [PL]
+\installprettytype [PM] [PL]
+
+\installprettytype [METAPOST] [MP]
+\installprettytype [METAFONT] [MP]
+\installprettytype [MP] [MP]
+\installprettytype [MF] [MP]
+
+\installprettytype [JAVASCRIPT] [JS]
+\installprettytype [JAVA] [JV]
+\installprettytype [JS] [JS]
+\installprettytype [JV] [JV]
+
+\installprettytype [SQL] [SQL]
+
+\installprettytype [PASCAL] [PAS]
+\installprettytype [PAS] [PAS]
+\installprettytype [MODULA] [PAS]
+\installprettytype [MOD] [PAS]
+
+\installprettytype [EIFFEL] [EIF]
+\installprettytype [EIF] [EIF]
+\installprettytype [E] [EIF]
+
+\installprettytype [XML] [XML]
+
+\installprettytype [LUA] [LUA]
+
+%D We use the \CONTEXT\ color system for switching to and from
+%D color mode. We can always redefine these colors afterwards.
+
+\definecolor [colorprettyone] [r=.9, g=.0, b=.0] % red
+\definecolor [colorprettytwo] [r=.0, g=.8, b=.0] % green
+\definecolor [colorprettythree] [r=.0, g=.0, b=.9] % blue
+\definecolor [colorprettyfour] [r=.8, g=.8, b=.6] % yellow
+
+\definecolor [grayprettyone] [s=.30]
+\definecolor [grayprettytwo] [s=.45]
+\definecolor [grayprettythree] [s=.60]
+\definecolor [grayprettyfour] [s=.75]
+
+\definepalet
+ [colorpretty]
+ [ prettyone=colorprettyone,
+ prettytwo=colorprettytwo,
+ prettythree=colorprettythree,
+ prettyfour=colorprettyfour]
+
+\definepalet
+ [graypretty]
+ [ prettyone=grayprettyone,
+ prettytwo=grayprettytwo,
+ prettythree=grayprettythree,
+ prettyfour=grayprettyfour]
+
+\definepalet [TEXcolorpretty] [colorpretty]
+\definepalet [TEXgraypretty] [graypretty]
+\definepalet [PLcolorpretty] [colorpretty]
+\definepalet [PLgraypretty] [graypretty]
+\definepalet [PMcolorpretty] [colorpretty]
+\definepalet [PMgraypretty] [graypretty]
+\definepalet [MPcolorpretty] [colorpretty]
+\definepalet [MPgraypretty] [graypretty]
+\definepalet [JVcolorpretty] [colorpretty]
+\definepalet [JVgraypretty] [graypretty]
+\definepalet [JScolorpretty] [colorpretty]
+\definepalet [JSgraypretty] [graypretty]
+\definepalet [SQLcolorpretty] [colorpretty]
+\definepalet [SQLgraypretty] [graypretty]
+\definepalet [PAScolorpretty] [colorpretty]
+\definepalet [PASgraypretty] [graypretty]
+\definepalet [EIFcolorpretty] [colorpretty]
+\definepalet [EIFgraypretty] [graypretty]
+\definepalet [XMLcolorpretty] [colorpretty]
+\definepalet [XMLgraypretty] [graypretty]
+\definepalet [LUAcolorpretty] [colorpretty]
+\definepalet [LUAgraypretty] [graypretty]
+
+% patched from verb-ini (todo)
+
+% \let\beginverbatimline\relax
+% \let\endverbatimline \relax
+
+% \appendtoks whatever\par\to\everyverbatimbeginofdisplay
+% \appendtoks whatever\to\everyverbatimendofdisplay
+% \appendtoks [\to\everyverbatimbeginofinline
+% \appendtoks ]\to\everyverbatimendofinline
+
+\let\doopenupverbatimline\empty
+
+\newtoks\everyverbatimbeginofdisplay
+\newtoks\everyverbatimendofdisplay
+\newtoks\everyverbatimbeginofinline
+\newtoks\everyverbatimendofinline
+
+\let\currentverbatimpretty\empty
+
+\def\doverbatimbeginofdisplay#1%
+ {\edef\currentverbatimpretty{#1}%
+ \the\everyverbatimbeginofdisplay}
+
+\def\doverbatimendofdisplay
+ {\the\everyverbatimendofdisplay}
+
+\def\doverbatimbeginofinline#1%
+ {\edef\currentverbatimpretty{#1}%
+ \the\everyverbatimbeginofinline}
+
+\def\doverbatimendofinline
+ {\the\everyverbatimendofinline}
+
+\def\doverbatimbeginofline#1% linenumber
+ {\bgroup % due to pretty status
+ \iflinepar\else\EveryPar{}\fi
+ \noindent % was wrong: \dontleavehmode
+ \xdef\dokeepverbatimlinedata % hm, still needed?
+ {\parindent \the\parindent
+ \hangindent\the\hangindent
+ \hangafter \the\hangafter
+ \leftskip \the\leftskip
+ \rightskip \the\rightskip}%
+ \egroup
+ \dokeepverbatimlinedata
+ \doopenupverbatimline
+ \the\everyline\strut
+ }%\beginverbatimline}
+
+\def\doverbatimendofline
+ {%\endverbatimline
+ \global\lineparfalse
+ \obeyedline\par}
+
+\def\doverbatimemptyline
+ {\strut
+ \par
+ \global\linepartrue}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/catc-act.tex b/Master/texmf-dist/tex/context/base/catc-act.tex
new file mode 100644
index 00000000000..bc24562d7fe
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/catc-act.tex
@@ -0,0 +1,61 @@
+%D \module
+%D [ file=catc-act,
+%D version=2006.09.18,
+%D title=\CONTEXT\ Catcode Macros,
+%D subtitle=Default Catcode Tables,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D This module deals with some active character handling. Use
+%D with care.
+
+%D \macros
+%D {installactivecharacter}
+
+\def\installactivecharacter#1 %
+ {\edef\temp{\detokenize{#1}}%
+ \cctcounterc\expandafter`\temp\relax % relax needed
+ \expandafter\startextendcatcodetable
+ \expandafter\ctxcatcodes\expandafter\catcode\the\cctcounterc\activecatcode
+ \stopextendcatcodetable
+ \letcatcodecommand \ctxcatcodes \cctcounterc \temp \relax
+ \ifnum\currentcatcodetable=\ctxcatcodes \setcatcodetable\ctxcatcodes \fi}
+
+%D \macros
+%D {defineactivecharacter}
+%D
+%D Use this one with care, esp in combination with catcode
+%D vectors. There are better ways now.
+
+\chardef\activehackcode=`~
+
+\def\defineactivecharacter #1#2 #3%
+ {\cctcounterc\uccode\activehackcode
+ \if#1"\uccode\activehackcode\expandafter\doifnumberelse\expandafter{\string#1#2}\empty #1#2\else
+ \uccode\activehackcode\expandafter\doifnumberelse\expandafter{\string#1#2}\empty`#1#2\fi
+ \catcode\uccode\activehackcode\activecatcode
+ \uppercase{\def\next{~}}%
+ \uccode\activehackcode\cctcounterc
+ \expandafter\expandafter\expandafter\def\expandafter\next\expandafter
+ {\expandafter\dohandleactivecharacter\next{#3}}}
+
+\chardef\activecharactermode\plusone % overloading still backward compatible
+
+\def\dodohandleactivecharacter#1#2{#2}
+\def\donthandleactivecharacter#1#2{\noexpand#1}
+
+\def\dohandleactivecharacter
+ {\ifcase\activecharactermode
+ \expandafter\donthandleactivecharacter
+ \else
+ \expandafter\dodohandleactivecharacter
+ \fi}
+
+\def\makecharacteractive #1 {\catcode`#1\active}
+
+\endinput
diff --git a/Master/texmf-dist/tex/context/base/catc-ctx.tex b/Master/texmf-dist/tex/context/base/catc-ctx.tex
new file mode 100644
index 00000000000..83e802e7773
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/catc-ctx.tex
@@ -0,0 +1,250 @@
+%D \module
+%D [ file=catc-cys,
+%D version=2006.09.18,
+%D title=\CONTEXT\ Catcode Macros,
+%D subtitle=Extra Tables,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D We prefer to define relevant catcode tables in this file instead
+%D of everywhere around.
+
+\ifx\ctxcatcodes \undefined \newcatcodetable \ctxcatcodes \fi
+\ifx\mthcatcodes \undefined \newcatcodetable \mthcatcodes \fi % math, not used, too tricky
+\ifx\xmlcatcodesn\undefined \newcatcodetable \xmlcatcodesn \fi % normal
+\ifx\xmlcatcodese\undefined \newcatcodetable \xmlcatcodese \fi % entitle
+\ifx\xmlcatcodesr\undefined \newcatcodetable \xmlcatcodesr \fi % reduce
+\ifx\typcatcodesa\undefined \newcatcodetable \typcatcodesa \fi % { }
+\ifx\typcatcodesb\undefined \newcatcodetable \typcatcodesb \fi % < >
+
+\startcatcodetable \ctxcatcodes
+ \catcode`\^^I = 10
+ \catcode`\^^M = 5
+ % \catcode`\^^J = 10 % new
+ \catcode`\^^L = 5
+ \catcode`\ = 10
+ \catcode`\^^Z = 9
+ \catcode`\\ = 0
+ \catcode`\{ = 1
+ \catcode`\} = 2
+ \catcode`\$ = 3
+ \catcode`\& = 4
+ \catcode`\# = 6
+ \catcode`\^ = 7
+ \catcode`\_ = 8
+ \catcode`\% = 14
+ \catcode`\~ = 13
+ \catcode`\| = 13
+\stopcatcodetable
+
+\startcatcodetable \prtcatcodes
+ \catcode`\^^I = 10
+ \catcode`\^^M = 5
+ \catcode`\^^L = 5
+ \catcode`\ = 10
+ \catcode`\^^Z = 9
+ \catcode`\\ = 0
+ \catcode`\{ = 1
+ \catcode`\} = 2
+ \catcode`\$ = 3
+ \catcode`\& = 4
+ \catcode`\# = 6
+ \catcode`\^ = 7
+ \catcode`\_ = 8
+ \catcode`\% = 14
+ \catcode`\@ = 11
+ \catcode`\! = 11
+ \catcode`\? = 11
+ \catcode`\~ = 13
+ \catcode`\| = 13
+\stopcatcodetable
+
+\startcatcodetable \mthcatcodes
+ \catcode`\^^I = 10
+ \catcode`\^^M = 5
+ %\catcode`\^^J = 10 % new
+ \catcode`\^^L = 5
+ \catcode`\ = 10
+ \catcode`\^^Z = 9
+ \catcode`\\ = 0
+ \catcode`\{ = 1
+ \catcode`\} = 2
+ \catcode`\$ = 3
+ \catcode`\& = 4
+ \catcode`\# = 6
+ \catcode`\^ = 7
+ \catcode`\_ = 8
+ \catcode`\% = 14
+ %\catcode`\~ = 13
+ %\catcode`\| = 13
+\stopcatcodetable
+
+\startcatcodetable \xmlcatcodesn
+ \catcode`\^^I = 10 % ascii tab is a blank space
+ \catcode`\^^M = 5 % ascii return is end-line
+ \catcode`\^^L = 5 % ascii form-feed
+ \catcode`\ = 10 % ascii space is blank space
+ \catcode`\^^Z = 9 % ascii eof is ignored
+ \catcode`\& = 13 % entity
+ \catcode`\< = 13 % element
+ \catcode`\> = 12
+ \catcode`\" = 12 % probably not needed any more
+ \catcode`\/ = 12 % probably not needed any more
+ \catcode`\' = 12 % probably not needed any more
+ \catcode`\~ = 12 % probably not needed any more
+ \catcode`\# = 12 % probably not needed any more
+ \catcode`\\ = 12 % probably not needed any more
+\stopcatcodetable
+
+\startcatcodetable \xmlcatcodese
+ \catcode`\^^I = 10 % ascii tab is a blank space
+ \catcode`\^^M = 5 % ascii return is end-line
+ \catcode`\^^L = 5 % ascii form-feed
+ \catcode`\ = 10 % ascii space is blank space
+ \catcode`\^^Z = 9 % ascii eof is ignored
+ \catcode`\& = 13 % entity
+ \catcode`\< = 13 % element
+ \catcode`\> = 12
+ \catcode`\# = 13
+ \catcode`\$ = 13
+ \catcode`\% = 13
+ \catcode`\\ = 13
+ \catcode`\^ = 13
+ \catcode`\_ = 13
+ \catcode`\{ = 13
+ \catcode`\} = 13
+ \catcode`\| = 13
+ \catcode`\~ = 13
+\stopcatcodetable
+
+\startcatcodetable \xmlcatcodesr
+ \catcode`\^^I = 10 % ascii tab is a blank space
+ \catcode`\^^M = 5 % ascii return is end-line
+ \catcode`\^^L = 5 % ascii form-feed
+ \catcode`\ = 10 % ascii space is blank space
+ \catcode`\^^Z = 9 % ascii eof is ignored
+ \catcode`\& = 13 % entity
+ \catcode`\< = 13 % element
+ \catcode`\> = 12
+ \catcode`\# = 13
+ \catcode`\$ = 13
+ \catcode`\% = 13
+ \catcode`\\ = 13
+ \catcode`\^ = 13
+ \catcode`\_ = 13
+ \catcode`\{ = 13
+ \catcode`\} = 13
+ \catcode`\| = 13
+ \catcode`\~ = 13
+\stopcatcodetable
+
+\startcatcodetable \typcatcodesa
+ \catcode`\^^I = 12
+ \catcode`\^^M = 12
+ \catcode`\^^L = 12
+ \catcode`\ = 12
+ \catcode`\^^Z = 12
+ \catcode`\{ = 1
+ \catcode`\} = 2
+\stopcatcodetable
+
+\startcatcodetable \typcatcodesb
+ \catcode`\^^I = 12
+ \catcode`\^^M = 12
+ \catcode`\^^L = 12
+ \catcode`\ = 12
+ \catcode`\^^Z = 12
+ \catcode`\< = 1
+ \catcode`\> = 2
+\stopcatcodetable
+
+\letcatcodecommand \ctxcatcodes `\| \relax
+\letcatcodecommand \ctxcatcodes `\~ \relax
+
+%letcatcodecommand \prtcatcodes `\| \relax % falls back on ctx
+%letcatcodecommand \prtcatcodes `\~ \relax % falls back on ctx
+
+\letcatcodecommand \xmlcatcodesn `\& \relax
+\letcatcodecommand \xmlcatcodesn `\< \relax
+
+\letcatcodecommand \xmlcatcodese `\& \relax
+\letcatcodecommand \xmlcatcodese `\< \relax
+
+\letcatcodecommand \xmlcatcodesr `\& \relax
+\letcatcodecommand \xmlcatcodesr `\< \relax
+
+\letcatcodecommand \xmlcatcodese `\# \relax
+\letcatcodecommand \xmlcatcodese `\$ \relax
+\letcatcodecommand \xmlcatcodese `\% \relax
+\letcatcodecommand \xmlcatcodese `\\ \relax
+\letcatcodecommand \xmlcatcodese `\^ \relax
+\letcatcodecommand \xmlcatcodese `\_ \relax
+\letcatcodecommand \xmlcatcodese `\{ \relax
+\letcatcodecommand \xmlcatcodese `\} \relax
+\letcatcodecommand \xmlcatcodese `\| \relax
+\letcatcodecommand \xmlcatcodese `\~ \relax
+
+\letcatcodecommand \xmlcatcodesr `\# \relax
+\letcatcodecommand \xmlcatcodesr `\$ \relax
+\letcatcodecommand \xmlcatcodesr `\% \relax
+\letcatcodecommand \xmlcatcodesr `\\ \relax
+\letcatcodecommand \xmlcatcodesr `\^ \relax
+\letcatcodecommand \xmlcatcodesr `\_ \relax
+\letcatcodecommand \xmlcatcodesr `\{ \relax
+\letcatcodecommand \xmlcatcodesr `\} \relax
+\letcatcodecommand \xmlcatcodesr `\| \relax
+\letcatcodecommand \xmlcatcodesr `\~ \relax
+
+ \catcodetable \ctxcatcodes
+\let\defaultcatcodetable\ctxcatcodes
+\let\xmlcatcodes \xmlcatcodesn
+
+\endinput
+
+% under consideration:
+%
+% \newcatcodetable\txtcatcodes
+%
+% \startcatcodetable \txtcatcodes
+% \catcode`\^^I = 10
+% \catcode`\^^M = 5
+% \catcode`\^^L = 5
+% \catcode`\ = 10
+% \catcode`\\ = 0
+% \catcode`\{ = 1
+% \catcode`\} = 2
+% \stopcatcodetable
+%
+% \newcount\relaxedcatcodedepth
+%
+% \def\startrelaxedcatcodes
+% {\global\chardef\relaxedcatcodeparent\catcodetable
+% \global\advance\relaxedcatcodedepth\plusone
+% \nonknuthmode\setcatcodetable\txtcatcodes}
+%
+% \def\stoprelaxedcatcodes
+% {\ifcase\relaxedcatcodedepth
+% % error
+% \or
+% \setcatcodetable\relaxedcatcodeparent
+% \global\relaxedcatcodedepth\zerocount
+% \else
+% \global\advance\relaxedcatcodedepth\minusone
+% \setcatcodetable\txtcatcodes
+% \fi}
+%
+% \starttext
+%
+% \startrelaxedcatcodes
+% \startcomment test \stopcomment
+% test $ test 10% whatever|test \mathematics{x^2=1}
+% \stoprelaxedcatcodes
+%
+% $x^2=1$
+%
+% \stoptext
diff --git a/Master/texmf-dist/tex/context/base/catc-def.tex b/Master/texmf-dist/tex/context/base/catc-def.tex
new file mode 100644
index 00000000000..0346f6dae7a
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/catc-def.tex
@@ -0,0 +1,142 @@
+%D \module
+%D [ file=catc-def,
+%D version=2006.09.18,
+%D title=\CONTEXT\ Catcode Macros,
+%D subtitle=Default Tables,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D The following catcode tables are rather \CONTEXT\ independent.
+
+\ifx\nilcatcodes \undefined \newcatcodetable \nilcatcodes \fi
+\ifx\texcatcodes \undefined \newcatcodetable \texcatcodes \fi
+\ifx\luacatcodes \undefined \newcatcodetable \luacatcodes \fi
+\ifx\notcatcodes \undefined \newcatcodetable \notcatcodes \fi
+\ifx\vrbcatcodes \undefined \newcatcodetable \vrbcatcodes \fi
+\ifx\prtcatcodes \undefined \newcatcodetable \prtcatcodes \fi
+
+\startcatcodetable \nilcatcodes
+ \catcode`\^^I = 10 % ascii tab is a blank space
+ \catcode`\^^M = 5 % ascii return is end-line
+ \catcode`\^^L = 5 % ascii form-feed
+ \catcode`\ = 10 % ascii space is blank space
+ \catcode`\^^Z = 9 % ascii eof is ignored
+\stopcatcodetable
+
+\startcatcodetable \texcatcodes
+ \catcode`\^^I = 10
+ \catcode`\^^M = 5
+ \catcode`\^^L = 5
+ \catcode`\ = 10
+ \catcode`\^^Z = 9
+ \catcode`\\ = 0
+ \catcode`\{ = 1
+ \catcode`\} = 2
+ \catcode`\$ = 3
+ \catcode`\& = 4
+ \catcode`\# = 6
+ \catcode`\^ = 7
+ \catcode`\_ = 8
+ \catcode`\% = 14
+\stopcatcodetable
+
+\startcatcodetable \luacatcodes
+ \catcode`\^^I = 12 % ascii tab is a blank space
+ \catcode`\^^M = 12 % ascii return is end-line
+ \catcode`\^^L = 12 % ascii form-feed
+ \catcode`\ = 12 % ascii space is blank space
+ \catcode`\^^Z = 9 % ascii eof is ignored
+ \catcode`\\ = 0
+ \catcode`\% = 12
+ \catcode`\# = 12
+ \catcode`\_ = 12
+ \catcode`\^ = 12
+ \catcode`\& = 12
+ \catcode`\| = 12
+ \catcode`\{ = 12
+ \catcode`\} = 12
+ \catcode`\~ = 12
+ \catcode`\$ = 12
+\stopcatcodetable
+
+\startcatcodetable \notcatcodes
+ \catcode`\^^I = 10 % ascii tab is a blank space
+ \catcode`\^^M = 5 % ascii return is end-line
+ \catcode`\^^L = 5 % ascii form-feed
+ \catcode`\ = 10 % ascii space is blank space
+ \catcode`\^^Z = 9 % ascii eof is ignored
+ \catcode`\~ = 12
+ \catcode`\# = 12 % probably too much, in principle
+ \catcode`\$ = 12 % nilcatcodes would be ok too
+ \catcode`\% = 12
+ \catcode`\^ = 12
+ \catcode`\& = 12
+ \catcode`\_ = 12
+ \catcode`\< = 12
+ \catcode`\> = 12
+ \catcode`\{ = 12
+ \catcode`\} = 12
+ \catcode`\" = 12
+ \catcode`\' = 12
+ \catcode`\/ = 12
+ \catcode`\\ = 12
+ \catcode`\| = 12
+\stopcatcodetable
+
+\startcatcodetable \vrbcatcodes % probably less needed
+ \catcode`\^^I = 12
+ \catcode`\^^M = 12
+ \catcode`\^^L = 12
+ \catcode`\ = 12
+ \catcode`\^^Z = 12
+\stopcatcodetable
+
+\startcatcodetable \prtcatcodes
+ \catcode`\^^I = 10
+ \catcode`\^^M = 5
+ \catcode`\^^L = 5
+ \catcode`\ = 10
+ \catcode`\^^Z = 9
+ \catcode`\\ = 0
+ \catcode`\{ = 1
+ \catcode`\} = 2
+ \catcode`\$ = 3
+ \catcode`\& = 4
+ \catcode`\# = 6
+ \catcode`\^ = 7
+ \catcode`\_ = 8
+ \catcode`\% = 14
+ \catcode`\@ = 11
+ \catcode`\! = 11
+ \catcode`\? = 11
+ \catcode`\~ = 13
+ \catcode`\| = 13
+\stopcatcodetable
+
+%D Because some characters have a special meaning, we provide
+%D shortcuts to their character representation.
+
+\chardef\%=`\%
+\chardef\&=`\&
+\chardef\#=`\#
+\chardef\$=`\$
+\chardef\{=`\{
+\chardef\}=`\}
+\chardef\\=`\\
+\chardef\^=`\^
+\chardef\_=`\_ % but way too wide in lm, so ... until that's fixed:
+
+%def\_{\leavevmode \kern.06em \vbox{\hrule width.3em}}
+\def\_{\dontleavehmode \kern.06em \vbox{\hrule width.3em}}
+
+%D From now on we can use the protection mechanisms.
+
+\def\unprotect {\pushcatcodetable\setcatcodetable\prtcatcodes}
+\def\protect {\popcatcodetable}
+
+\endinput
diff --git a/Master/texmf-dist/tex/context/base/catc-ini.lua b/Master/texmf-dist/tex/context/base/catc-ini.lua
new file mode 100644
index 00000000000..e1558b459a0
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/catc-ini.lua
@@ -0,0 +1,28 @@
+if not modules then modules = { } end modules ['catc-ini'] = {
+ version = 1.001,
+ comment = "companion to catc-ini.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+catcodes = catcodes or { }
+catcodes.numbers = catcodes.numbers or { }
+catcodes.names = catcodes.names or { }
+
+storage.register("catcodes/numbers", catcodes.numbers, "catcodes.numbers")
+storage.register("catcodes/names", catcodes.names, "catcodes.names")
+
+-- this only happens at initime
+
+function catcodes.register(name,number)
+ catcodes.numbers[name] = number
+ catcodes.names[number] = name
+ tex[name] = number
+end
+
+-- this only happens at runtime
+
+for k, v in next, catcodes.numbers do
+ tex[k] = v
+end
diff --git a/Master/texmf-dist/tex/context/base/catc-ini.mkii b/Master/texmf-dist/tex/context/base/catc-ini.mkii
new file mode 100644
index 00000000000..dee15290ac0
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/catc-ini.mkii
@@ -0,0 +1,249 @@
+%D \module
+%D [ file=catc-ini,
+%D version=2006.09.18,
+%D title=\CONTEXT\ System Macros,
+%D subtitle=Catcode Handling,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D We've split the functionality of syst-cat.* over more files
+%D now so that we can load more selectively.
+
+%D A long standing wish has been the availability of catcode
+%D arrays. Because traditional \TEX\ does ot provide this we
+%D implement a fake method in the Mark II file.
+
+\ifx\zerocount\undefined \chardef \zerocount= 0 \fi
+\ifx\plusone \undefined \chardef \plusone = 1 \fi
+\ifx\minusone \undefined \newcount\minusone \minusone =-1 \fi
+
+\chardef\escapecatcode = 0
+\chardef\begingroupcatcode = 1
+\chardef\endgroupcatcode = 2
+\chardef\mathshiftcatcode = 3
+\chardef\alignmentcatcode = 4
+\chardef\endoflinecatcode = 5
+\chardef\parametercatcode = 6
+\chardef\superscriptcatcode = 7
+\chardef\subscriptcatcode = 8
+\chardef\ignorecatcode = 9
+\chardef\spacecatcode = 10
+\chardef\lettercatcode = 11
+\chardef\othercatcode = 12 \chardef\other = 12
+\chardef\activecatcode = 13 \chardef\active = 13
+\chardef\commentcatcode = 14
+
+\newif \ifrecatcodeuppercharacters % only used in good old tex
+
+% \newcount\cctdefcounter \cctdefcounter\plusone % 0 = signal
+\newcount\cctdefcounter \cctdefcounter\zerocount % 0 = signal, so advance before allocate
+
+\newcount\cctcountera
+\newcount\cctcounterb
+\newcount\cctcounterc
+
+\def\newcatcodetable#1%
+ {\global\advance\cctdefcounter\plusone
+ \global\mathchardef#1\cctdefcounter
+ \expandafter\xdef\csname @@ccn:\number\cctdefcounter\endcsname{\string#1}% logging
+ \expandafter\newtoks\csname @@cct:\number\cctdefcounter\endcsname}
+
+\mathchardef\currentcatcodetable\zerocount
+
+\newtoks \setdefaultlowercatcodes
+\newtoks \setdefaultuppercatcodes
+
+\def\next#1% we don't have a proper loop defined yet
+ {\edef\nextnext{#1{\the#1\catcode\the\cctcountera\space
+ \ifnum\catcode\cctcountera=\lettercatcode \lettercatcode\else\othercatcode\fi}}%
+ \nextnext\ifnum\cctcountera<\cctcounterb \advance\cctcountera\plusone \expandafter\next\expandafter#1\fi}
+
+\cctcountera 0 \cctcounterb 127 \next\setdefaultlowercatcodes
+\cctcountera 128 \cctcounterb 255 \next\setdefaultuppercatcodes
+
+\recatcodeuppercharactersfalse
+
+\def\catcodetable#1%
+ {\mathchardef\currentcatcodetable#1%
+ \the\setdefaultlowercatcodes
+ \ifrecatcodeuppercharacters\the\setdefaultuppercatcodes\fi
+ \the\csname @@cct:\number#1\endcsname}
+
+\long\def\startcatcodetable#1#2\stopcatcodetable
+ {\global\csname @@cct:\number#1\endcsname{#2}}
+
+\long\def\startextendcatcodetable#1#2\stopextendcatcodetable
+ {\global\csname @@cct:\number#1\endcsname\expandafter{\the\csname @@cct:\number#1\endcsname#2}}
+
+%D The next command can be defined in a cleaner way in the
+%D Mk IV file but we want to have a fast one with a minimal
+%D chance for interference.
+
+\chardef\activehackcode=`\~
+
+%D Once a catcode is assigned, the next assignments will happen faster.
+
+% (expandable) let
+
+\def\letcatcodecommand {\afterassignment\letcatcodecommanda\cctcountera}
+\def\letcatcodecommanda{\afterassignment\letcatcodecommandb\cctcounterb}
+
+\def\letcatcodecommandb % each time
+ {\ifcsname CCL:\number\cctcountera:\number\cctcounterb\endcsname
+ \csname CCL:\number\cctcountera:\number\cctcounterb\expandafter\endcsname
+ \else
+ \expandafter\letcatcodecommandc
+ \fi}
+
+\def\letcatcodecommandc % only first time
+ {\expandafter\gdef\csname CCL:\number\cctcountera:\number\cctcounterb\expandafter\endcsname\expandafter
+ {\expandafter\let\csname CCC:\number\cctcountera:\number\cctcounterb\endcsname}%
+ \reinstatecatcodecommanda
+ \csname CCL:\number\cctcountera:\number\cctcounterb\endcsname}
+
+% expandable def
+
+\def\defcatcodecommand {\afterassignment\defcatcodecommanda\cctcountera}
+\def\defcatcodecommanda{\afterassignment\defcatcodecommandb\cctcounterb}
+
+\def\defcatcodecommandb % each time
+ {\ifcsname CCD:\number\cctcountera:\number\cctcounterb\endcsname
+ \csname CCD:\number\cctcountera:\number\cctcounterb\expandafter\endcsname
+ \else
+ \expandafter\defcatcodecommandc
+ \fi}
+
+\def\defcatcodecommandc % only first time
+ {\expandafter\gdef\csname CCD:\number\cctcountera:\number\cctcounterb\expandafter\endcsname
+ \expandafter##\expandafter1\expandafter
+ {\expandafter\def\csname CCC:\number\cctcountera:\number\cctcounterb\endcsname{##1}}%
+ \reinstatecatcodecommanda
+ \csname CCD:\number\cctcountera:\number\cctcounterb\endcsname}
+
+% un expandable def (e.g. used for discretionaries)
+
+\def\uedcatcodecommand {\afterassignment\uedcatcodecommanda\cctcountera}
+\def\uedcatcodecommanda{\afterassignment\uedcatcodecommandb\cctcounterb}
+
+\def\uedcatcodecommandb % each time
+ {\ifcsname CCU:\number\cctcountera:\number\cctcounterb\endcsname
+ \csname CCU:\number\cctcountera:\number\cctcounterb\expandafter\endcsname
+ \else
+ \expandafter\uedcatcodecommandc
+ \fi}
+
+\def\uedcatcodecommandc % only first time
+ {\expandafter\gdef\csname CCU:\number\cctcountera:\number\cctcounterb\expandafter\endcsname
+ \expandafter##\expandafter1\expandafter
+ {\expandafter\unexpanded\expandafter\def\csname CCC:\number\cctcountera:\number\cctcounterb\endcsname{##1}}%
+ \reinstatecatcodecommanda
+ \csname CCU:\number\cctcountera:\number\cctcounterb\endcsname}
+
+\def\reinstatecatcodecommand{\afterassignment\reinstatecatcodecommanda\cctcounterb}
+
+\def\reinstatecatcodecommanda % can be used when a direct definition has been done
+ {\bgroup % and the selector has been lost
+ \uccode\activehackcode\cctcounterb
+ \catcode\uccode\activehackcode\activecatcode
+ \uppercase{\xdef~{\noexpand\catcodecommand{\number\cctcounterb}}}%
+ \egroup}
+
+\chardef\defaultcatcodetable\zerocount
+
+\def\catcodecommand#1%
+ {\csname CCC:\number
+ \ifcsname CCC:\number\currentcatcodetable:\number#1\endcsname
+ \currentcatcodetable \else \defaultcatcodetable
+ \fi
+ :\number#1\endcsname}
+
+%D \macros
+%D {restorecatcodes,
+%D beginrestorecatcodes,endrestorecatcodes}
+%D
+%D We're not finished dealing \CATCODES\ yet. In \CONTEXT\ we
+%D use only one auxiliary file, which deals with tables of
+%D contents, registers, two pass tracking, references etc. This
+%D file, as well as files concerning graphics, is processed when
+%D needed, which can be in the mid of typesetting verbatim.
+%D However, when reading in data in verbatim mode, we should
+%D temporary restore the normal \CATCODES, and that's exactly
+%D what the next macros do. Saving the catcodes can be
+%D disabled by saying \type{\localcatcodestrue}.
+
+\let\savedcatcodetable\relax
+
+\newcount\catcoderestorelevel
+
+\def\pushcatcodetable
+ {\advance\catcoderestorelevel\plusone
+ \tracepushcatcodetable
+ \expandafter\mathchardef\csname scct:\number\catcoderestorelevel\endcsname\currentcatcodetable}
+
+\def\popcatcodetable
+ {\ifcase\catcoderestorelevel
+ \showcatcodenestingerror
+ \else
+ \expandafter\catcodetable\csname scct:\number\catcoderestorelevel\endcsname
+ \tracepopcatcodetable
+ \advance\catcoderestorelevel\minusone
+ \fi}
+
+\def\showcatcodenestingerror % can be overloaded
+ {\immediate\write16{}%
+ \immediate\write16{Fatal error: catcode push/pop mismatch. Fix this!}\wait\end
+ \immediate\write16{}}
+
+\def\restorecatcodes % takes previous level
+ {\ifnum\catcoderestorelevel>\plusone
+ \expandafter\catcodetable\csname scct:\number\numexpr\catcoderestorelevel-1\relax\endcsname
+ \fi}
+
+\newtoks\everycatcodetable
+
+\def\setcatcodetable#1%
+ {\catcodetable#1%
+ \the\everycatcodetable
+ \tracesetcatcodetable}
+
+\def\dotracecatcodetable#1{\immediate\write16{[#1]}}
+
+\def\tracecatcodetables
+ {\def\tracesetcatcodetable {\dotracecatcodetable{set \catcodetablename\space at \number\catcoderestorelevel}}%
+ \def\tracepushcatcodetable{\dotracecatcodetable{push \catcodetablename\space from \catcodetableprev\space at \number\catcoderestorelevel}}%
+ \def\tracepopcatcodetable {\dotracecatcodetable{pop \catcodetablename\space to \catcodetableprev\space at \number\catcoderestorelevel}}}
+
+\def\catcodetableprev
+ {\ifnum\numexpr\catcoderestorelevel-1\relax>\zerocount
+ \csname @@ccn:\number\csname scct:\number\numexpr\catcoderestorelevel-1\relax\endcsname\endcsname
+ \else
+ -%
+ \fi}
+
+\def\catcodetablename
+ {\ifnum\currentcatcodetable>\zerocount
+ \csname @@ccn:\number\currentcatcodetable\endcsname
+ \else
+ -%
+ \fi}
+
+\ifx\empty\undefined \def\empty{} \fi
+
+\let\tracesetcatcodetable \empty
+\let\tracepushcatcodetable\empty
+\let\tracepopcatcodetable \empty
+
+\def\beginrestorecatcodes{\pushcatcodetable}
+\def\endrestorecatcodes {\popcatcodetable}
+
+%D Handy for debugging:
+
+% \tracecatcodetables
+
+\endinput
+
diff --git a/Master/texmf-dist/tex/context/base/catc-ini.mkiv b/Master/texmf-dist/tex/context/base/catc-ini.mkiv
new file mode 100644
index 00000000000..668a55d3bdd
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/catc-ini.mkiv
@@ -0,0 +1,274 @@
+%D \module
+%D [ file=catc-ini,
+%D version=2006.09.18,
+%D title=\CONTEXT\ System Macros,
+%D subtitle=Catcode Handling,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D We've split the functionality of syst-cat.* over more files
+%D now so that we can load more selectively.
+
+\registerctxluafile{catc-ini} {1.001}
+
+%D A long standing wish has been the availability of catcode
+%D arrays. Because traditional \TEX\ does not provide this we
+%D implement a fake method in the \MKII\ file. There is some
+%D overlap in code with \MKII\ but we take that for granted.
+
+\ifx\zerocount\undefined \chardef \zerocount= 0 \fi
+\ifx\plusone \undefined \chardef \plusone = 1 \fi
+\ifx\minusone \undefined \newcount\minusone \minusone =-1 \fi
+
+\chardef\escapecatcode = 0
+\chardef\begingroupcatcode = 1
+\chardef\endgroupcatcode = 2
+\chardef\mathshiftcatcode = 3
+\chardef\alignmentcatcode = 4
+\chardef\endoflinecatcode = 5
+\chardef\parametercatcode = 6
+\chardef\superscriptcatcode = 7
+\chardef\subscriptcatcode = 8
+\chardef\ignorecatcode = 9
+\chardef\spacecatcode = 10
+\chardef\lettercatcode = 11
+\chardef\othercatcode = 12 \chardef\other = 12
+\chardef\activecatcode = 13 \chardef\active = 13
+\chardef\commentcatcode = 14
+
+\ifx\gobbleoneargument\undefined \long\def\gobbleoneargument#1{} \fi
+
+\newif \ifrecatcodeuppercharacters % only used in good old tex
+
+\newcount\cctdefcounter \cctdefcounter\zerocount % 0 = signal, so advance before allocate
+
+\newcount\cctcountera
+\newcount\cctcounterb
+\newcount\cctcounterc
+
+\def\newcatcodetable#1%
+ {\global\advance\cctdefcounter\plusone
+ \expandafter\xdef\csname @@ccn:\number\cctdefcounter\endcsname{\string#1}% logging
+ \global\chardef#1\cctdefcounter
+ \ctxlua{catcodes.register("\expandafter\gobbleoneargument\string#1",\number#1)}%
+ % we have two ways to access catcodetable numbers
+ \startruntimectxluacode tex.\expandafter\gobbleoneargument\string#1 = \number#1 ;\stopruntimectxluacode}
+
+\newcatcodetable \scratchcatcodes \initcatcodetable\scratchcatcodes
+
+\newtoks \setdefaultcatcodes
+
+\setdefaultcatcodes
+ {\catcode`\\ \othercatcode
+ \catcode`\^^M \othercatcode
+ \catcode`\ \othercatcode
+ \catcode`\% \othercatcode
+ \catcode127 \othercatcode}
+
+\long\def\startcatcodetable#1#2\stopcatcodetable
+ {\bgroup
+ \catcodetable\scratchcatcodes
+ \the\setdefaultcatcodes
+ #2%
+ \savecatcodetable#1\relax
+ \egroup}
+
+\newcatcodetable\dummycatcodes
+
+\long\def\startextendcatcodetable#1#2\stopextendcatcodetable
+ {\bgroup
+ \catcodetable#1\relax
+ \globaldefs\plusone
+ #2%
+ \globaldefs\zerocount
+ \egroup}
+
+% ==
+%
+% \long\def\startextendcatcodetable#1#2\stopextendcatcodetable
+% {\bgroup
+% \scratchcounter\the\catcodetable
+% \catcodetable #1 #2
+% \catcodetable\scratchcounter
+% \egroup}
+
+\def\letcatcodecommand
+ {\afterassignment\letcatcodecommanda\cctcountera}
+
+\def\letcatcodecommanda
+ {\afterassignment\letcatcodecommandb\cctcounterb}
+
+\let\currentcatcodetable\catcodetable
+
+%D The next command can be defined in a cleaner way in the
+%D Mk IV file but we want to have a fast one with a minimal
+%D chance for interference.
+
+\chardef\activehackcode=`\~
+
+%D Once a catcode is assigned, the next assignments will happen faster.
+
+% (expandable) let
+
+\def\letcatcodecommand {\afterassignment\letcatcodecommanda\cctcountera}
+\def\letcatcodecommanda{\afterassignment\letcatcodecommandb\cctcounterb}
+
+\def\letcatcodecommandb % each time
+ {\ifcsname CCL:\number\cctcountera:\number\cctcounterb\endcsname
+ \csname CCL:\number\cctcountera:\number\cctcounterb\expandafter\endcsname
+ \else
+ \expandafter\letcatcodecommandc
+ \fi}
+
+\def\letcatcodecommandc % only first time
+ {\expandafter\gdef\csname CCL:\number\cctcountera:\number\cctcounterb\expandafter\endcsname\expandafter
+ {\expandafter\let\csname CCC:\number\cctcountera:\number\cctcounterb\endcsname}%
+ \reinstatecatcodecommanda
+ \csname CCL:\number\cctcountera:\number\cctcounterb\endcsname}
+
+% expandable def
+
+\def\defcatcodecommand {\afterassignment\defcatcodecommanda\cctcountera}
+\def\defcatcodecommanda{\afterassignment\defcatcodecommandb\cctcounterb}
+
+\def\defcatcodecommandb % each time
+ {\ifcsname CCD:\number\cctcountera:\number\cctcounterb\endcsname
+ \csname CCD:\number\cctcountera:\number\cctcounterb\expandafter\endcsname
+ \else
+ \expandafter\defcatcodecommandc
+ \fi}
+
+\def\defcatcodecommandc % only first time (we could use \normalexpanded here)
+ {\expandafter\gdef\csname CCD:\number\cctcountera:\number\cctcounterb\expandafter\endcsname
+ \expandafter##\expandafter1\expandafter
+ {\expandafter\def\csname CCC:\number\cctcountera:\number\cctcounterb\endcsname{##1}}%
+ \reinstatecatcodecommanda
+ \csname CCD:\number\cctcountera:\number\cctcounterb\endcsname}
+
+% unexpandable def (e.g. used for discretionaries)
+
+\def\uedcatcodecommand {\afterassignment\uedcatcodecommanda\cctcountera}
+\def\uedcatcodecommanda{\afterassignment\uedcatcodecommandb\cctcounterb}
+
+\def\uedcatcodecommandb % each time
+ {\ifcsname CCU:\number\cctcountera:\number\cctcounterb\endcsname
+ \csname CCU:\number\cctcountera:\number\cctcounterb\expandafter\endcsname
+ \else
+ \expandafter\uedcatcodecommandc
+ \fi}
+
+\def\uedcatcodecommandc % only first time
+ {\expandafter\gdef\csname CCU:\number\cctcountera:\number\cctcounterb\expandafter\endcsname
+ \expandafter##\expandafter1\expandafter
+ {\expandafter\unexpanded\expandafter\def\csname CCC:\number\cctcountera:\number\cctcounterb\endcsname{##1}}%
+ \reinstatecatcodecommanda
+ \csname CCU:\number\cctcountera:\number\cctcounterb\endcsname}
+
+\def\reinstatecatcodecommand{\afterassignment\reinstatecatcodecommanda\cctcounterb}
+
+\def\reinstatecatcodecommanda % can be used when a direct definition has been done
+ {\bgroup % and the selector has been lost
+ \uccode\activehackcode\cctcounterb
+ \catcode\uccode\activehackcode\activecatcode
+ \uppercase{\xdef~{\noexpand\catcodecommand{\number\cctcounterb}}}%
+ \egroup}
+
+\chardef\defaultcatcodetable\zerocount
+
+\def\catcodecommand#1%
+ {\csname CCC:\number
+ \ifcsname CCC:\number\currentcatcodetable:\number#1\endcsname
+ \currentcatcodetable \else \defaultcatcodetable
+ \fi
+ :\number#1\endcsname}
+
+%D \macros
+%D {restorecatcodes,
+%D beginrestorecatcodes,endrestorecatcodes}
+%D
+%D We're not finished dealing \CATCODES\ yet. In \CONTEXT\ we
+%D use only one auxiliary file, which deals with tables of
+%D contents, registers, two pass tracking, references etc. This
+%D file, as well as files concerning graphics, is processed when
+%D needed, which can be in the mid of typesetting verbatim.
+%D However, when reading in data in verbatim mode, we should
+%D temporary restore the normal \CATCODES, and that's exactly
+%D what the next macros do. Saving the catcodes can be
+%D disabled by saying \type{\localcatcodestrue}.
+
+\let\savedcatcodetable\relax
+
+\newcount\catcoderestorelevel
+
+\def\pushcatcodetable
+ {\advance\catcoderestorelevel\plusone
+ \tracepushcatcodetable
+ \expandafter\chardef\csname scct:\number\catcoderestorelevel\endcsname\currentcatcodetable}
+
+\def\popcatcodetable
+ {\ifcase\catcoderestorelevel
+ \showcatcodenestingerror
+ \else
+ \expandafter\catcodetable\csname scct:\number\catcoderestorelevel\endcsname
+ \tracepopcatcodetable
+ \advance\catcoderestorelevel\minusone
+ \fi}
+
+\def\showcatcodenestingerror % can be overloaded
+ {\immediate\write16{}%
+ \immediate\write16{Fatal error: catcode push/pop mismatch. Fix this!}\wait\end
+ \immediate\write16{}}
+
+\def\restorecatcodes % takes previous level
+ {\ifnum\catcoderestorelevel>\plusone
+ \expandafter\catcodetable\csname scct:\number\numexpr\catcoderestorelevel-1\relax\endcsname
+ \fi}
+
+\newtoks\everycatcodetable
+
+\def\setcatcodetable#1%
+ {\catcodetable#1%
+ \the\everycatcodetable
+ \tracesetcatcodetable}
+
+\def\dotracecatcodetable#1{\immediate\write16{[#1]}}
+
+\def\tracecatcodetables
+ {\def\tracesetcatcodetable {\dotracecatcodetable{set \catcodetablename\space at \number\catcoderestorelevel}}%
+ \def\tracepushcatcodetable{\dotracecatcodetable{push \catcodetablename\space from \catcodetableprev\space at \number\catcoderestorelevel}}%
+ \def\tracepopcatcodetable {\dotracecatcodetable{pop \catcodetablename\space to \catcodetableprev\space at \number\catcoderestorelevel}}}
+
+\def\catcodetableprev
+ {\ifnum\numexpr\catcoderestorelevel-1\relax>\zerocount
+ \csname @@ccn:\number\csname scct:\number\numexpr\catcoderestorelevel-1\relax\endcsname\endcsname
+ \else
+ -%
+ \fi}
+
+\def\catcodetablename
+ {\ifnum\currentcatcodetable>\zerocount
+ \csname @@ccn:\number\currentcatcodetable\endcsname
+ \else
+ -%
+ \fi}
+
+\ifx\empty\undefined \def\empty{} \fi
+
+\let\tracesetcatcodetable \empty
+\let\tracepushcatcodetable\empty
+\let\tracepopcatcodetable \empty
+
+\def\beginrestorecatcodes{\pushcatcodetable}
+\def\endrestorecatcodes {\popcatcodetable}
+
+%D Handy for debugging:
+
+% \tracecatcodetables
+
+\endinput
+
diff --git a/Master/texmf-dist/tex/context/base/catc-sym.tex b/Master/texmf-dist/tex/context/base/catc-sym.tex
new file mode 100644
index 00000000000..067e192c85a
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/catc-sym.tex
@@ -0,0 +1,187 @@
+%D \module
+%D [ file=catc-sym,
+%D version=1997.01.03, % moved code
+%D title=\CONTEXT\ Catcode Macros,
+%D subtitle=Some Handy Constants,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=\PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+% we now have loaded syst-* so we have all @@catcode constants
+
+%D We want to have access to the raw alternatives of the
+%D special characters. We use a \type {\xdef} instead of
+%D \type {\let} because we need an expandable token in a
+%D \type {\write}.
+
+\bgroup
+
+\catcode`B=\begingroupcatcode
+\catcode`E=\endgroupcatcode
+\catcode`.=\escapecatcode
+
+.catcode `.{ 12 .xdef .letteropenbrace B.string{E
+.catcode `.} 12 .xdef .letterclosebrace B.string}E
+.catcode `.& 12 .xdef .letterampersand B.string&E
+.catcode `.< 12 .xdef .letterless B.string<E
+.catcode `.> 12 .xdef .lettermore B.string>E
+.catcode `.# 12 .xdef .letterhash B.string#E
+.catcode `." 12 .xdef .letterdoublequote B.string"E
+.catcode `.' 12 .xdef .lettersinglequote B.string'E
+.catcode `.$ 12 .xdef .letterdollar B.string$E
+.catcode `.% 12 .xdef .letterpercent B.string%E
+.catcode `.^ 12 .xdef .letterhat B.string^E
+.catcode `._ 12 .xdef .letterunderscore B.string_E
+.catcode `.| 12 .xdef .letterbar B.string|E
+.catcode `.~ 12 .xdef .lettertilde B.string~E
+.catcode `.\ 12 .xdef .letterbackslash B.string\E
+.catcode `./ 12 .xdef .letterslash B.string/E
+.catcode `.? 12 .xdef .letterquestionmark B.string?E
+.catcode `.! 12 .xdef .letterexclamationmark B.string!E
+.catcode `.@ 12 .xdef .letterat B.string@E
+.catcode `.: 12 .xdef .lettercolon B.string:E
+
+ .global .let .letterescape .letterbackslash
+ .global .let .letterbgroup .letteropenbrace
+ .global .let .letteregroup .letterclosebrace
+ .global .let .letterleftbrace .letteropenbrace
+ .global .let .letterrightbrace .letterclosebrace
+
+.egroup
+
+%D \macros
+%D {uncatcodespecials,setnaturalcatcodes,setnormalcatcodes,
+%D uncatcodecharacters,uncatcodeallcharacters,
+%D uncatcodespacetokens}
+%D
+%D The following macros are more or less replaced by switching
+%D to a catcode table (which we simulate in \MKII) but we keep
+%D them for convenience and compatibility. Some old engine code
+%D has been removed.
+
+\def\uncatcodespecials {\setcatcodetable\nilcatcodes \uncatcodespacetokens}
+\def\setnaturalcatcodes {\setcatcodetable\nilcatcodes}
+\def\setnormalcatcodes {\setcatcodetable\ctxcatcodes} % maybe \texcatcodes
+\def\uncatcodecharacters {\setcatcodetable\nilcatcodes} % was fast version, gone now
+\def\uncatcodeallcharacters{\setcatcodetable\nilcatcodes} % was slow one, with restore
+
+\def\uncatcodespacetokens
+ {\catcode`\ =\spacecatcode
+ \catcode`\^^L=\ignorecatcode
+ \catcode`\^^M=\endoflinecatcode
+ \catcode`\^^?=\ignorecatcode}
+
+%D \macros
+%D {setverbosecharacter,setverbosecscharacters}
+%D
+%D Next follows a definition that lets some shortcuts expand to
+%D themselves. This macro is meant for \POSTSCRIPT\ and \PDF\
+%D code passed on to the backend.
+
+\newtoks\everyverbosechacters
+
+\def\setverbosecscharacter#1%
+ {\edef#1{\string#1}}
+
+\def\setverbosecscharacters
+ {\the\everyverbosechacters}
+
+\bgroup
+
+ % if used often we can move the code inline
+
+ \catcode`\|=\activecatcode
+ \catcode`\~=\activecatcode
+
+ \global \everyverbosechacters =
+ {\setverbosecscharacter |\setverbosecscharacter ~% context specific
+ \setverbosecscharacter\|\setverbosecscharacter\~%
+ \setverbosecscharacter\:\setverbosecscharacter\;%
+ \setverbosecscharacter\+\setverbosecscharacter\-%
+ \setverbosecscharacter\[\setverbosecscharacter\]%
+ \setverbosecscharacter\.\setverbosecscharacter\\%
+ \setverbosecscharacter\)\setverbosecscharacter\(%
+ \setverbosecscharacter\0\setverbosecscharacter\1%
+ \setverbosecscharacter\2\setverbosecscharacter\3%
+ \setverbosecscharacter\4\setverbosecscharacter\5%
+ \setverbosecscharacter\6\setverbosecscharacter\7%
+ \setverbosecscharacter\8\setverbosecscharacter\9%
+ \setverbosecscharacter\n\setverbosecscharacter\s%
+ \setverbosecscharacter\/}
+
+\egroup
+
+%D (Inspired by a discussion on the \CONTEXT\ mailing list)
+%D
+%D In \TEX\ each character can have one of 16 catcodes. This way the
+%D backslash, dollar, ampersand, hash and some more characters get
+%D their special meaning. If you want to process tokens under a
+%D certain catcode regime, passing arguments can interfere badly.
+%D
+%D \startbuffer[a]
+%D \def\whatever#1{[#1]}
+%D \whatever{whatever \type {\whatever{you want}} $or$ not!}
+%D \stopbuffer
+%D
+%D \typebuffer[a]
+%D
+%D Here we pass an argument to \type {\whatever} but part of that
+%D argument is to be processed under a different catcode regime, i.e.\
+%D all characters that need to be typeset verbatim need to get
+%D the catcode that makes it a letter. This is what we get when we typeset
+%D the text verbatim:
+%D
+%D \starttyping
+%D whatever \type {\whatever{you want}} $or$ not!
+%D \stoptyping
+%D
+%D However, when passed to \type {\whatever} we get:
+%D
+%D \getbuffer[a]
+%D
+%D In \ETEX\ one can use \type {\scantokens} to circumvent this problem.
+%D
+%D \startbuffer[b]
+%D \def\rescan#1{\scantokens{#1}}
+%D \def\whatever#1{[\rescan{#1}]}
+%D \whatever{whatever \type {\whatever{you want}} $or$ not!}
+%D \stopbuffer
+%D
+%D \getbuffer[b] \typebuffer[b]
+%D
+%D This time the \type {\whatever} call gives:
+%D
+%D \getbuffer[b]
+%D
+%D In this example, two spaces have crept in. The first one, after the
+%D macro name, is inserted by \TEX\ and cannot be avoided. The last space
+%D is inserted by \type {\scantokens}, and is the consequence of the fact
+%D that this macro mimics reading from a file. You can avoid the last
+%D space by a slightly different definition:
+%D
+%D \startbuffer[c]
+%D \def\rescan#1{\scantokens{#1\ignorespaces}}
+%D \def\whatever#1{[\rescan{#1}]}
+%D \whatever{whatever \type {\whatever{you want}} $or$ not!}
+%D \stopbuffer
+%D
+%D \typebuffer[c]
+%D
+%D Unfortunately we still keep the first space, but at least it's better than
+%D a failure:
+%D
+%D \getbuffer[c]
+
+\long\def\rescan#1{\scantokens{#1\ignorespaces}}
+\long\def\rescanwithsetup#1#2{\begingroup\directsetup{#1}\scantokens{#2\ignorespaces}\endgroup}
+
+\ifx\scantextokens\undefined \else
+ \long\def\rescan#1{\scantextokens{#1}}
+ \long\def\rescanwithsetup#1#2{\begingroup\directsetup{#1}\scantextokens{#2}\endgroup}
+\fi
+
+\endinput
diff --git a/Master/texmf-dist/tex/context/base/char-act.mkiv b/Master/texmf-dist/tex/context/base/char-act.mkiv
new file mode 100644
index 00000000000..34358784a2a
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/char-act.mkiv
@@ -0,0 +1,125 @@
+%D \module
+%D [ file=char-act,
+%D version=2006.12.05,
+%D title=\CONTEXT\ Character Support,
+%D subtitle=Active,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Character Support / Active}
+
+\unprotect
+
+%D \macros
+%D {processingverbatim}
+%D
+%D Typesetting a file in most cases results in more than one
+%D page. Because we don't want problems with files that are
+%D read in during the construction of the page, we set \type
+%D {\ifprocessingverbatim}, so the output routine can adapt
+%D its behavior. Originally we used \type {\scratchread}, but
+%D because we want to support nesting, we decided to use a
+%D separate input file.
+
+\newif\ifprocessingverbatim
+
+%D \macros
+%D {obeyedspace, obeyedtab, obeyedline, obeyedpage}
+%D
+%D We have followed Knuth in naming macros that make \SPACE,
+%D \NEWLINE\ and \NEWPAGE\ active and assigning them
+%D \type{\obeysomething}, but first we set some default values.
+
+\def\obeyedspace {\ifprocessingverbatim\hbox{ }\else\space\fi}
+\def\obeyedtab {\obeyedspace}
+\def\obeyedline {\par}
+\def\obeyedpage {\vfill\eject}
+
+%D \macros
+%D {controlspace,setcontrolspaces}
+%D
+%D First we define \type{\obeyspaces}. When we want visible
+%D spaces (control spaces) we only have to adapt the definition
+%D of \type{\obeyedspace} to:
+
+\def\controlspace{\hbox{\char32}} % rather tex
+\def\normalspace { }
+\def\normalspaces{\catcode`\ =\@@space}
+
+\bgroup
+\catcode`\ =\@@active
+\gdef\obeyspaces{\catcode`\ =\@@active\def {\obeyedspace}}
+\gdef\setcontrolspaces{\catcode`\ =\@@active\def {\controlspace}}
+\egroup
+
+%D \macros
+%D {obeytabs, obeylines, obeypages,ignoretabs, ignorelines, ignorepages}
+%D
+%D Next we take care of \NEWLINE\ and \NEWPAGE\ and because we
+%D want to be able to typeset listings that contain \TAB, we
+%D have to handle those too. Because we have to redefine the
+%D \NEWPAGE\ character locally, we redefine the meaning of
+%D this (often already) active character.
+
+\catcode`\^^L=\@@active \def^^L{\par}
+
+%D The following indirect definitions enable us to implement
+%D all kind of \type{\obeyed} handlers.
+
+\bgroup
+
+\catcode`\^^I=\@@active
+\catcode`\^^M=\@@active
+\catcode`\^^L=\@@active
+
+\gdef\obeytabs {\catcode`\^^I=\@@active\def^^I{\obeyedtab}}
+\gdef\obeylines {\catcode`\^^M=\@@active\def^^M{\obeyedline}}
+\gdef\obeypages {\catcode`\^^L=\@@active\def^^L{\obeyedpage}}
+
+\gdef\ignoretabs {\catcode`\^^I=\@@active\def^^I{\obeyedspace}}
+\gdef\ignorelines {\catcode`\^^M=\@@active\def^^M{\obeyedspace}}
+\gdef\ignorepages {\catcode`\^^L=\@@ignore} % \@@active\def^^L{\obeyedline}}
+\gdef\ignoreeofs {\catcode`\^^Z=\@@ignore}
+
+\egroup
+
+%D \macros
+%D {naturaltextext}
+%D
+%D When one uses \ETEX, switching to normal \TEX\ is possible
+%D too. We also introduce a switch that can be used in the
+%D drivers and set in higher level shell macros.
+
+\def\naturaltextext#1\relax
+ {\bgroup
+ \def\ascii{#1}%
+ \setcatcodetable\ctxcatcodes
+ \prettynaturalfont{\scantextokens\expandafter{\ascii}\ifhmode\unskip\fi}%
+ \egroup}
+
+\endinput \protect
+
+% obsolete (old hack for idris)
+
+%D This is a hack, and only meant for special situations. We don't
+%D support this in for instance verbatim. The active characters map
+%D onto the \CONTEXT\ names and font handling etc. is up to the user.
+
+%D This feature is obsolete.
+
+\registerctxluafile{char-act}{1.001}
+
+\def\enableactiveutf {\ctxlua{characters.active.enable()}}
+\def\disableactiveutf{\ctxlua{characters.active.disable()}}
+\def\testactiveutf #1{\ctxlua{characters.active.test("#1")}}
+
+%D Usage:
+%D
+%D \starttyping
+%D \enableactiveutf \testactiveutf{eacute}
+%D \stoptyping
diff --git a/Master/texmf-dist/tex/context/base/char-cmp.lua b/Master/texmf-dist/tex/context/base/char-cmp.lua
index e995f510fe3..bd33604996a 100644
--- a/Master/texmf-dist/tex/context/base/char-cmp.lua
+++ b/Master/texmf-dist/tex/context/base/char-cmp.lua
@@ -6,6 +6,8 @@ if not modules then modules = { } end modules ['char-cmp'] = {
license = "see context related readme files"
}
+local utf = unicode.utf8
+
characters = characters or { }
characters.uncomposed = characters.uncomposed or { }
diff --git a/Master/texmf-dist/tex/context/base/char-def.lua b/Master/texmf-dist/tex/context/base/char-def.lua
index 35bb99a98fc..665572ee81f 100644
--- a/Master/texmf-dist/tex/context/base/char-def.lua
+++ b/Master/texmf-dist/tex/context/base/char-def.lua
@@ -1,122169 +1,141107 @@
--- filename : char-def.lua
--- comment : companion to char-def.tex (in ConTeXt)
--- author : Hans Hagen, PRAGMA-ADE, Hasselt NL
--- copyright: PRAGMA ADE / ConTeXt Development Team
--- license : see context related readme files
-
--- remark : compact version
+if not modules then modules = { } end modules ['char-def'] = {
+ version = 1.001,
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
--- 0x2061 FUNCTION APPLICATION -> relax
+--[[
+The first version of this table was generated from unicode tables
+but after that was mostly updated manual using data present in
+ConTeXt and elsewhere. I did my best to make this table as complete
+as needed for proper use in ConTeXt MkIV. All errors are mine. If
+you find an error or ommision, just let me know.
+]]--
-if not versions then versions = { } end versions['char-def'] = 1.001
-if not characters then characters = { } end
+characters = characters or { }
characters.data={
[0x0000]={
- ["category"]="cc",
- ["description"]="NULL",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0000,
- },
- {
- ["category"]="cc",
- ["description"]="START OF HEADING",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0001,
- },
- {
- ["category"]="cc",
- ["description"]="START OF TEXT",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0002,
- },
- {
- ["category"]="cc",
- ["description"]="END OF TEXT",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0003,
- },
- {
- ["category"]="cc",
- ["description"]="END OF TRANSMISSION",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0004,
- },
- {
- ["category"]="cc",
- ["description"]="ENQUIRY",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0005,
- },
- {
- ["category"]="cc",
- ["description"]="ACKNOWLEDGE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0006,
- },
- {
- ["category"]="cc",
- ["description"]="BELL",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0007,
- },
- {
- ["category"]="cc",
- ["description"]="BACKSPACE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0008,
- },
- {
- ["category"]="cc",
- ["description"]="CHARACTER TABULATION",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x0009, --
- },
- {
- ["category"]="cc",
- ["description"]="LINE FEED (LF)",
- ["linebreak"]="lf",
- ["unicodeslot"]=0x000A, --
-
- },
- {
- ["category"]="cc",
- ["description"]="LINE TABULATION",
- ["linebreak"]="bk",
- ["unicodeslot"]=0x000B,
- },
- {
- ["category"]="cc",
- ["description"]="FORM FEED (FF)",
- ["linebreak"]="bk",
- ["unicodeslot"]=0x000C,
- },
- {
- ["category"]="cc",
- ["description"]="CARRIAGE RETURN (CR)",
- ["linebreak"]="cr",
- ["unicodeslot"]=0x000D, --
- },
- {
- ["category"]="cc",
- ["description"]="SHIFT OUT",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x000E,
- },
- {
- ["category"]="cc",
- ["description"]="SHIFT IN",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x000F,
- },
- {
- ["category"]="cc",
- ["description"]="DATA LINK ESCAPE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0010,
- },
- {
- ["category"]="cc",
- ["description"]="DEVICE CONTROL ONE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0011,
- },
- {
- ["category"]="cc",
- ["description"]="DEVICE CONTROL TWO",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0012,
- },
- {
- ["category"]="cc",
- ["description"]="DEVICE CONTROL THREE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0013,
- },
- {
- ["category"]="cc",
- ["description"]="DEVICE CONTROL FOUR",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0014,
- },
- {
- ["category"]="cc",
- ["description"]="NEGATIVE ACKNOWLEDGE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0015,
- },
- {
- ["category"]="cc",
- ["description"]="SYNCHRONOUS IDLE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0016,
- },
- {
- ["category"]="cc",
- ["description"]="END OF TRANSMISSION BLOCK",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0017,
- },
- {
- ["category"]="cc",
- ["description"]="CANCEL",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0018,
- },
- {
- ["category"]="cc",
- ["description"]="END OF MEDIUM",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0019,
- },
- {
- ["category"]="cc",
- ["description"]="SUBSTITUTE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x001A,
- },
- {
- ["category"]="cc",
- ["description"]="ESCAPE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x001B,
- },
- {
- ["category"]="cc",
- ["description"]="INFORMATION SEPARATOR FOUR",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x001C,
- },
- {
- ["category"]="cc",
- ["description"]="INFORMATION SEPARATOR THREE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x001D,
- },
- {
- ["category"]="cc",
- ["description"]="INFORMATION SEPARATOR TWO",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x001E,
- },
- {
- ["category"]="cc",
- ["description"]="INFORMATION SEPARATOR ONE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x001F,
- },
- {
- ["adobename"]="space",
- ["category"]="zs",
- ["cjkwd"]="na",
- ["description"]="SPACE",
- ["linebreak"]="sp",
- ["unicodeslot"]=0x0020, --
- },
- {
- ["adobename"]="exclam",
- ["category"]="po",
- ["cjkwd"]="na",
- ["description"]="EXCLAMATION MARK",
- ["linebreak"]="ex",
- ["mathclass"]="close",
- ["unicodeslot"]=0x0021, -- !
- },
- {
- ["adobename"]="quotedbl",
- ["category"]="po",
- ["cjkwd"]="na",
- ["contextname"]="quotedbl",
- ["description"]="QUOTATION MARK",
- ["linebreak"]="qu",
- ["unicodeslot"]=0x0022, -- "
- },
- {
- ["adobename"]="numbersign",
- ["category"]="po",
- ["cjkwd"]="na",
- ["description"]="NUMBER SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0023, -- #
- },
- {
- ["adobename"]="dollar",
- ["category"]="sc",
- ["cjkwd"]="na",
- ["description"]="DOLLAR SIGN",
- ["linebreak"]="pr",
- ["unicodeslot"]=0x0024, -- $
- },
- {
- ["adobename"]="percent",
- ["category"]="po",
- ["cjkwd"]="na",
- ["contextname"]="percent",
- ["description"]="PERCENT SIGN",
- ["linebreak"]="po",
- ["unicodeslot"]=0x0025, -- %
- },
- {
- ["adobename"]="ampersand",
- ["category"]="po",
- ["cjkwd"]="na",
- ["description"]="AMPERSAND",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0026, -- &
- },
- {
- ["adobename"]="quotesingle",
- ["category"]="po",
- ["cjkwd"]="na",
- ["description"]="APOSTROPHE",
- ["linebreak"]="qu",
- ["unicodeslot"]=0x0027, -- '
- },
- {
- ["adobename"]="parenleft",
- ["category"]="ps",
- ["cjkwd"]="na",
- ["description"]="LEFT PARENTHESIS",
- ["linebreak"]="op",
- ["mathclass"]="open",
- ["mathname"]="lparent",
- ["unicodeslot"]=0x0028, -- (
- },
- {
- ["adobename"]="parenright",
- ["category"]="pe",
- ["cjkwd"]="na",
- ["description"]="RIGHT PARENTHESIS",
- ["linebreak"]="cl",
- ["mathclass"]="close",
- ["mathname"]="rparent",
- ["unicodeslot"]=0x0029, -- )
- },
- {
- ["adobename"]="asterisk",
- ["category"]="po",
- ["cjkwd"]="na",
- ["description"]="ASTERISK",
- ["linebreak"]="al",
- ["mathclass"]="binary",
- ["unicodeslot"]=0x002A, -- *
- },
- {
- ["adobename"]="plus",
- ["category"]="sm",
- ["cjkwd"]="na",
- ["description"]="PLUS SIGN",
- ["linebreak"]="pr",
- ["mathclass"]="binary",
- ["unicodeslot"]=0x002B, -- +
- },
- {
- ["adobename"]="comma",
- ["category"]="po",
- ["cjkwd"]="na",
- ["description"]="COMMA",
- ["linebreak"]="is",
- ["mathclass"]="punctuation",
- ["unicodeslot"]=0x002C, -- ,
- },
- {
- ["adobename"]="hyphen",
- ["category"]="pd",
- ["cjkwd"]="na",
- ["description"]="HYPHEN-MINUS",
- ["linebreak"]="hy",
- ["mathclass"]="binary",
- ["unicodeslot"]=0x002D, -- -
- },
- {
- ["adobename"]="period",
- ["category"]="po",
- ["cjkwd"]="na",
- ["description"]="FULL STOP",
- ["linebreak"]="is",
- ["mathclass"]="punctuation",
- ["unicodeslot"]=0x002E, -- .
- },
- {
- ["adobename"]="slash",
- ["category"]="po",
- ["cjkwd"]="na",
- ["description"]="SOLIDUS",
- ["linebreak"]="sy",
- ["mathclass"]="binary",
- ["unicodeslot"]=0x002F, -- /
- },
- {
- ["adobename"]="zero",
- ["category"]="nd",
- ["cjkwd"]="na",
- ["description"]="DIGIT ZERO",
- ["linebreak"]="nu",
- ["mathclass"]="number",
- ["unicodeslot"]=0x0030, -- 0x0000
- },
- {
- ["adobename"]="one",
- ["category"]="nd",
- ["cjkwd"]="na",
- ["description"]="DIGIT ONE",
- ["linebreak"]="nu",
- ["mathclass"]="number",
- ["unicodeslot"]=0x0031, -- 0x0001
- },
- {
- ["adobename"]="two",
- ["category"]="nd",
- ["cjkwd"]="na",
- ["description"]="DIGIT TWO",
- ["linebreak"]="nu",
- ["mathclass"]="number",
- ["unicodeslot"]=0x0032, -- 0x0002
- },
- {
- ["adobename"]="three",
- ["category"]="nd",
- ["cjkwd"]="na",
- ["description"]="DIGIT THREE",
- ["linebreak"]="nu",
- ["mathclass"]="number",
- ["unicodeslot"]=0x0033, -- 0x0003
- },
- {
- ["adobename"]="four",
- ["category"]="nd",
- ["cjkwd"]="na",
- ["description"]="DIGIT FOUR",
- ["linebreak"]="nu",
- ["mathclass"]="number",
- ["unicodeslot"]=0x0034, -- 0x0004
- },
- {
- ["adobename"]="five",
- ["category"]="nd",
- ["cjkwd"]="na",
- ["description"]="DIGIT FIVE",
- ["linebreak"]="nu",
- ["mathclass"]="number",
- ["unicodeslot"]=0x0035, -- 0x0005
- },
- {
- ["adobename"]="six",
- ["category"]="nd",
- ["cjkwd"]="na",
- ["description"]="DIGIT SIX",
- ["linebreak"]="nu",
- ["mathclass"]="number",
- ["unicodeslot"]=0x0036, -- 0x0006
- },
- {
- ["adobename"]="seven",
- ["category"]="nd",
- ["cjkwd"]="na",
- ["description"]="DIGIT SEVEN",
- ["linebreak"]="nu",
- ["mathclass"]="number",
- ["unicodeslot"]=0x0037, -- 0x0007
- },
- {
- ["adobename"]="eight",
- ["category"]="nd",
- ["cjkwd"]="na",
- ["description"]="DIGIT EIGHT",
- ["linebreak"]="nu",
- ["mathclass"]="number",
- ["unicodeslot"]=0x0038, -- 0x0008
- },
- {
- ["adobename"]="nine",
- ["category"]="nd",
- ["cjkwd"]="na",
- ["description"]="DIGIT NINE",
- ["linebreak"]="nu",
- ["mathclass"]="number",
- ["unicodeslot"]=0x0039, -- 0x0009
- },
- {
- ["adobename"]="colon",
- ["category"]="po",
- ["cjkwd"]="na",
- ["description"]="COLON",
- ["linebreak"]="is",
- ["mathclass"]="punctuation",
- ["unicodeslot"]=0x003A, -- :
- },
- {
- ["adobename"]="semicolon",
- ["category"]="po",
- ["cjkwd"]="na",
- ["description"]="SEMICOLON",
- ["linebreak"]="is",
- ["mathclass"]="punctuation",
- ["unicodeslot"]=0x003B, -- ;
- },
- {
- ["adobename"]="less",
- ["category"]="sm",
- ["cjkwd"]="na",
- ["description"]="LESS-THAN SIGN",
- ["linebreak"]="al",
- ["mathclass"]="binary",
- ["mathname"]="lt",
- ["unicodeslot"]=0x003C, -- <
- },
- {
- ["adobename"]="equal",
- ["category"]="sm",
- ["cjkwd"]="na",
- ["description"]="EQUALS SIGN",
- ["linebreak"]="al",
- ["mathclass"]="binary",
- ["mathname"]="eq",
- ["unicodeslot"]=0x003D, -- =
- },
- {
- ["adobename"]="greater",
- ["category"]="sm",
- ["cjkwd"]="na",
- ["description"]="GREATER-THAN SIGN",
- ["linebreak"]="al",
- ["mathclass"]="binary",
- ["mathname"]="gt",
- ["unicodeslot"]=0x003E, -- >
- },
- {
- ["adobename"]="question",
- ["category"]="po",
- ["cjkwd"]="na",
- ["description"]="QUESTION MARK",
- ["linebreak"]="ex",
- ["mathclass"]="close",
- ["unicodeslot"]=0x003F, -- ?
- },
- {
- ["adobename"]="at",
- ["category"]="po",
- ["cjkwd"]="na",
- ["description"]="COMMERCIAL AT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0040, -- @
- },
- {
- ["adobename"]="A",
- ["category"]="lu",
- ["cjkwd"]="na",
- ["description"]="LATIN CAPITAL LETTER A",
- ["lccode"]=0x0061,
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["unicodeslot"]=0x0041, -- A
- },
- {
- ["adobename"]="B",
- ["category"]="lu",
- ["cjkwd"]="na",
- ["description"]="LATIN CAPITAL LETTER B",
- ["lccode"]=0x0062,
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["unicodeslot"]=0x0042, -- B
- },
- {
- ["adobename"]="C",
- ["category"]="lu",
- ["cjkwd"]="na",
- ["description"]="LATIN CAPITAL LETTER C",
- ["lccode"]=0x0063,
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["unicodeslot"]=0x0043, -- C
- },
- {
- ["adobename"]="D",
- ["category"]="lu",
- ["cjkwd"]="na",
- ["description"]="LATIN CAPITAL LETTER D",
- ["lccode"]=0x0064,
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["unicodeslot"]=0x0044, -- D
- },
- {
- ["adobename"]="E",
- ["category"]="lu",
- ["cjkwd"]="na",
- ["description"]="LATIN CAPITAL LETTER E",
- ["lccode"]=0x0065,
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["unicodeslot"]=0x0045, -- E
- },
- {
- ["adobename"]="F",
- ["category"]="lu",
- ["cjkwd"]="na",
- ["description"]="LATIN CAPITAL LETTER F",
- ["lccode"]=0x0066,
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["unicodeslot"]=0x0046, -- F
- },
- {
- ["adobename"]="G",
- ["category"]="lu",
- ["cjkwd"]="na",
- ["description"]="LATIN CAPITAL LETTER G",
- ["lccode"]=0x0067,
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["unicodeslot"]=0x0047, -- G
- },
- {
- ["adobename"]="H",
- ["category"]="lu",
- ["cjkwd"]="na",
- ["description"]="LATIN CAPITAL LETTER H",
- ["lccode"]=0x0068,
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["unicodeslot"]=0x0048, -- H
- },
- {
- ["adobename"]="I",
- ["category"]="lu",
- ["cjkwd"]="na",
- ["description"]="LATIN CAPITAL LETTER I",
- ["lccode"]=0x0069,
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["unicodeslot"]=0x0049, -- I
- },
- {
- ["adobename"]="J",
- ["category"]="lu",
- ["cjkwd"]="na",
- ["description"]="LATIN CAPITAL LETTER J",
- ["lccode"]=0x006A,
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["unicodeslot"]=0x004A, -- J
- },
- {
- ["adobename"]="K",
- ["category"]="lu",
- ["cjkwd"]="na",
- ["description"]="LATIN CAPITAL LETTER K",
- ["lccode"]=0x006B,
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["unicodeslot"]=0x004B, -- K
- },
- {
- ["adobename"]="L",
- ["category"]="lu",
- ["cjkwd"]="na",
- ["description"]="LATIN CAPITAL LETTER L",
- ["lccode"]=0x006C,
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["unicodeslot"]=0x004C, -- L
- },
- {
- ["adobename"]="M",
- ["category"]="lu",
- ["cjkwd"]="na",
- ["description"]="LATIN CAPITAL LETTER M",
- ["lccode"]=0x006D,
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["unicodeslot"]=0x004D, -- M
- },
- {
- ["adobename"]="N",
- ["category"]="lu",
- ["cjkwd"]="na",
- ["description"]="LATIN CAPITAL LETTER N",
- ["lccode"]=0x006E,
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["unicodeslot"]=0x004E, -- N
- },
- {
- ["adobename"]="O",
- ["category"]="lu",
- ["cjkwd"]="na",
- ["description"]="LATIN CAPITAL LETTER O",
- ["lccode"]=0x006F,
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["unicodeslot"]=0x004F, -- O
- },
- {
- ["adobename"]="P",
- ["category"]="lu",
- ["cjkwd"]="na",
- ["description"]="LATIN CAPITAL LETTER P",
- ["lccode"]=0x0070,
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["unicodeslot"]=0x0050, -- P
- },
- {
- ["adobename"]="Q",
- ["category"]="lu",
- ["cjkwd"]="na",
- ["description"]="LATIN CAPITAL LETTER Q",
- ["lccode"]=0x0071,
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["unicodeslot"]=0x0051, -- Q
- },
- {
- ["adobename"]="R",
- ["category"]="lu",
- ["cjkwd"]="na",
- ["description"]="LATIN CAPITAL LETTER R",
- ["lccode"]=0x0072,
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["unicodeslot"]=0x0052, -- R
- },
- {
- ["adobename"]="S",
- ["category"]="lu",
- ["cjkwd"]="na",
- ["description"]="LATIN CAPITAL LETTER S",
- ["lccode"]=0x0073,
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["unicodeslot"]=0x0053, -- S
- },
- {
- ["adobename"]="T",
- ["category"]="lu",
- ["cjkwd"]="na",
- ["description"]="LATIN CAPITAL LETTER T",
- ["lccode"]=0x0074,
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["unicodeslot"]=0x0054, -- T
- },
- {
- ["adobename"]="U",
- ["category"]="lu",
- ["cjkwd"]="na",
- ["description"]="LATIN CAPITAL LETTER U",
- ["lccode"]=0x0075,
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["unicodeslot"]=0x0055, -- U
- },
- {
- ["adobename"]="V",
- ["category"]="lu",
- ["cjkwd"]="na",
- ["description"]="LATIN CAPITAL LETTER V",
- ["lccode"]=0x0076,
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["unicodeslot"]=0x0056, -- V
- },
- {
- ["adobename"]="W",
- ["category"]="lu",
- ["cjkwd"]="na",
- ["description"]="LATIN CAPITAL LETTER W",
- ["lccode"]=0x0077,
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["unicodeslot"]=0x0057, -- W
- },
- {
- ["adobename"]="X",
- ["category"]="lu",
- ["cjkwd"]="na",
- ["description"]="LATIN CAPITAL LETTER X",
- ["lccode"]=0x0078,
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["unicodeslot"]=0x0058, -- X
- },
- {
- ["adobename"]="Y",
- ["category"]="lu",
- ["cjkwd"]="na",
- ["description"]="LATIN CAPITAL LETTER Y",
- ["lccode"]=0x0079,
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["unicodeslot"]=0x0059, -- Y
- },
- {
- ["adobename"]="Z",
- ["category"]="lu",
- ["cjkwd"]="na",
- ["description"]="LATIN CAPITAL LETTER Z",
- ["lccode"]=0x007A,
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["unicodeslot"]=0x005A, -- Z
- },
- {
- ["adobename"]="bracketleft",
- ["category"]="ps",
- ["cjkwd"]="na",
- ["description"]="LEFT SQUARE BRACKET",
- ["linebreak"]="op",
- ["mathclass"]="open",
- ["unicodeslot"]=0x005B, -- [
- },
- {
- ["adobename"]="backslash",
- ["category"]="po",
- ["cjkwd"]="na",
- ["contextname"]="textbackslash",
- ["description"]="REVERSE SOLIDUS",
- ["linebreak"]="pr",
- ["mathclass"]="binary",
- ["unicodeslot"]=0x005C, -- \
- },
- {
- ["adobename"]="bracketright",
- ["category"]="pe",
- ["cjkwd"]="na",
- ["description"]="RIGHT SQUARE BRACKET",
- ["linebreak"]="cl",
- ["mathclass"]="close",
- ["unicodeslot"]=0x005D, -- ]
- },
- {
- ["adobename"]="asciicircum",
- ["category"]="sk",
- ["cjkwd"]="na",
- ["contextname"]="textasciicircum",
- ["description"]="CIRCUMFLEX ACCENT",
- ["mathclass"]="accent",
- ["mathname"]="widehat",
- ["linebreak"]="al",
- ["unicodeslot"]=0x005E, -- ^
- },
- {
- ["adobename"]="underscore",
- ["category"]="pc",
- ["cjkwd"]="na",
- ["contextname"]="textunderscore",
- ["description"]="LOW LINE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x005F, -- _
- },
- {
- ["adobename"]="grave",
- ["category"]="sk",
- ["cjkwd"]="na",
- ["contextname"]="textgrave",
- ["description"]="GRAVE ACCENT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0060, -- `
- },
- {
- ["adobename"]="a",
- ["category"]="ll",
- ["cjkwd"]="na",
- ["description"]="LATIN SMALL LETTER A",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["uccode"]=0x0041,
- ["unicodeslot"]=0x0061, -- a
- },
- {
- ["adobename"]="b",
- ["category"]="ll",
- ["cjkwd"]="na",
- ["description"]="LATIN SMALL LETTER B",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["uccode"]=0x0042,
- ["unicodeslot"]=0x0062, -- b
- },
- {
- ["adobename"]="c",
- ["category"]="ll",
- ["cjkwd"]="na",
- ["description"]="LATIN SMALL LETTER C",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["uccode"]=0x0043,
- ["unicodeslot"]=0x0063, -- c
- },
- {
- ["adobename"]="d",
- ["category"]="ll",
- ["cjkwd"]="na",
- ["description"]="LATIN SMALL LETTER D",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["uccode"]=0x0044,
- ["unicodeslot"]=0x0064, -- d
- },
- {
- ["adobename"]="e",
- ["category"]="ll",
- ["cjkwd"]="na",
- ["description"]="LATIN SMALL LETTER E",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["uccode"]=0x0045,
- ["unicodeslot"]=0x0065, -- e
- },
- {
- ["adobename"]="f",
- ["category"]="ll",
- ["cjkwd"]="na",
- ["description"]="LATIN SMALL LETTER F",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["uccode"]=0x0046,
- ["unicodeslot"]=0x0066, -- f
- },
- {
- ["adobename"]="g",
- ["category"]="ll",
- ["cjkwd"]="na",
- ["description"]="LATIN SMALL LETTER G",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["uccode"]=0x0047,
- ["unicodeslot"]=0x0067, -- g
- },
- {
- ["adobename"]="h",
- ["category"]="ll",
- ["cjkwd"]="na",
- ["description"]="LATIN SMALL LETTER H",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["uccode"]=0x0048,
- ["unicodeslot"]=0x0068, -- h
- },
- {
- ["adobename"]="i",
- ["category"]="ll",
- ["cjkwd"]="na",
- ["description"]="LATIN SMALL LETTER I",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["uccode"]=0x0049,
- ["unicodeslot"]=0x0069, -- i
- },
- {
- ["adobename"]="j",
- ["category"]="ll",
- ["cjkwd"]="na",
- ["description"]="LATIN SMALL LETTER J",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["uccode"]=0x004A,
- ["unicodeslot"]=0x006A, -- j
- },
- {
- ["adobename"]="k",
- ["category"]="ll",
- ["cjkwd"]="na",
- ["description"]="LATIN SMALL LETTER K",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["uccode"]=0x004B,
- ["unicodeslot"]=0x006B, -- k
- },
- {
- ["adobename"]="l",
- ["category"]="ll",
- ["cjkwd"]="na",
- ["description"]="LATIN SMALL LETTER L",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["uccode"]=0x004C,
- ["unicodeslot"]=0x006C, -- l
- },
- {
- ["adobename"]="m",
- ["category"]="ll",
- ["cjkwd"]="na",
- ["description"]="LATIN SMALL LETTER M",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["uccode"]=0x004D,
- ["unicodeslot"]=0x006D, -- m
- },
- {
- ["adobename"]="n",
- ["category"]="ll",
- ["cjkwd"]="na",
- ["description"]="LATIN SMALL LETTER N",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["uccode"]=0x004E,
- ["unicodeslot"]=0x006E, -- n
- },
- {
- ["adobename"]="o",
- ["category"]="ll",
- ["cjkwd"]="na",
- ["description"]="LATIN SMALL LETTER O",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["uccode"]=0x004F,
- ["unicodeslot"]=0x006F, -- o
- },
- {
- ["adobename"]="p",
- ["category"]="ll",
- ["cjkwd"]="na",
- ["description"]="LATIN SMALL LETTER P",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["uccode"]=0x0050,
- ["unicodeslot"]=0x0070, -- p
- },
- {
- ["adobename"]="q",
- ["category"]="ll",
- ["cjkwd"]="na",
- ["description"]="LATIN SMALL LETTER Q",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["uccode"]=0x0051,
- ["unicodeslot"]=0x0071, -- q
- },
- {
- ["adobename"]="r",
- ["category"]="ll",
- ["cjkwd"]="na",
- ["description"]="LATIN SMALL LETTER R",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["uccode"]=0x0052,
- ["unicodeslot"]=0x0072, -- r
- },
- {
- ["adobename"]="s",
- ["category"]="ll",
- ["cjkwd"]="na",
- ["description"]="LATIN SMALL LETTER S",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["uccode"]=0x0053,
- ["unicodeslot"]=0x0073, -- s
- },
- {
- ["adobename"]="t",
- ["category"]="ll",
- ["cjkwd"]="na",
- ["description"]="LATIN SMALL LETTER T",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["uccode"]=0x0054,
- ["unicodeslot"]=0x0074, -- t
- },
- {
- ["adobename"]="u",
- ["category"]="ll",
- ["cjkwd"]="na",
- ["description"]="LATIN SMALL LETTER U",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["uccode"]=0x0055,
- ["unicodeslot"]=0x0075, -- u
- },
- {
- ["adobename"]="v",
- ["category"]="ll",
- ["cjkwd"]="na",
- ["description"]="LATIN SMALL LETTER V",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["uccode"]=0x0056,
- ["unicodeslot"]=0x0076, -- v
- },
- {
- ["adobename"]="w",
- ["category"]="ll",
- ["cjkwd"]="na",
- ["description"]="LATIN SMALL LETTER W",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["uccode"]=0x0057,
- ["unicodeslot"]=0x0077, -- w
- },
- {
- ["adobename"]="x",
- ["category"]="ll",
- ["cjkwd"]="na",
- ["description"]="LATIN SMALL LETTER X",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["uccode"]=0x0058,
- ["unicodeslot"]=0x0078, -- x
- },
- {
- ["adobename"]="y",
- ["category"]="ll",
- ["cjkwd"]="na",
- ["description"]="LATIN SMALL LETTER Y",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["uccode"]=0x0059,
- ["unicodeslot"]=0x0079, -- y
- },
- {
- ["adobename"]="z",
- ["category"]="ll",
- ["cjkwd"]="na",
- ["description"]="LATIN SMALL LETTER Z",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["uccode"]=0x005A,
- ["unicodeslot"]=0x007A, -- z
- },
- {
- ["adobename"]="braceleft",
- ["category"]="ps",
- ["cjkwd"]="na",
- ["contextname"]="textbraceleft",
- ["description"]="LEFT CURLY BRACKET",
- ["linebreak"]="op",
- ["mathclass"]="open",
- ["mathname"]="lbrace",
- ["unicodeslot"]=0x007B, -- {
- },
- {
- ["adobename"]="bar",
- ["category"]="sm",
- ["cjkwd"]="na",
- ["contextname"]="textbar",
- ["description"]="VERTICAL LINE",
- ["linebreak"]="ba",
- ["mathclass"]="binary",
- ["mathname"]="bar",
- ["unicodeslot"]=0x007C, -- |
- },
- {
- ["adobename"]="braceright",
- ["category"]="pe",
- ["cjkwd"]="na",
- ["contextname"]="textbraceright",
- ["description"]="RIGHT CURLY BRACKET",
- ["linebreak"]="cl",
- ["mathclass"]="close",
- ["mathname"]="rbrace",
- ["unicodeslot"]=0x007D, -- }
- },
- {
- ["adobename"]="asciitilde",
- ["category"]="sm",
- ["cjkwd"]="na",
- ["contextname"]="textasciitilde",
- ["description"]="TILDE",
- ["linebreak"]="al",
- ["mathclass"]="accent",
- ["mathname"]="widetilde",
- ["unicodeslot"]=0x007E, -- ~
- },
- {
- ["category"]="cc",
- ["description"]="DELETE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x007F, -- 
- },
- {
- ["category"]="cc",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0080, -- €
- },
- {
- ["category"]="cc",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0081, -- 
- },
- {
- ["category"]="cc",
- ["description"]="BREAK PERMITTED HERE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0082, -- ‚
- },
- {
- ["category"]="cc",
- ["description"]="NO BREAK HERE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0083, -- ƒ
- },
- {
- ["category"]="cc",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0084, -- „
- },
- {
- ["category"]="cc",
- ["description"]="NEXT LINE (NEL)",
- ["linebreak"]="nl",
- ["unicodeslot"]=0x0085, -- …
- },
- {
- ["category"]="cc",
- ["description"]="START OF SELECTED AREA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0086, -- †
- },
- {
- ["category"]="cc",
- ["description"]="END OF SELECTED AREA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0087, -- ‡
- },
- {
- ["category"]="cc",
- ["description"]="CHARACTER TABULATION SET",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0088, -- ˆ
- },
- {
- ["category"]="cc",
- ["description"]="CHARACTER TABULATION WITH JUSTIFICATION",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0089, -- ‰
- },
- {
- ["category"]="cc",
- ["description"]="LINE TABULATION SET",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x008A, -- Š
- },
- {
- ["category"]="cc",
- ["description"]="PARTIAL LINE FORWARD",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x008B, -- ‹
- },
- {
- ["category"]="cc",
- ["description"]="PARTIAL LINE BACKWARD",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x008C, -- Œ
- },
- {
- ["category"]="cc",
- ["description"]="REVERSE LINE FEED",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x008D, -- 
- },
- {
- ["category"]="cc",
- ["description"]="SINGLE SHIFT TWO",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x008E, -- Ž
- },
- {
- ["category"]="cc",
- ["description"]="SINGLE SHIFT THREE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x008F, -- 
- },
- {
- ["category"]="cc",
- ["description"]="DEVICE CONTROL STRING",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0090, -- 
- },
- {
- ["category"]="cc",
- ["description"]="PRIVATE USE ONE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0091, -- ‘
- },
- {
- ["category"]="cc",
- ["description"]="PRIVATE USE TWO",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0092, -- ’
- },
- {
- ["category"]="cc",
- ["description"]="SET TRANSMIT STATE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0093, -- “
- },
- {
- ["category"]="cc",
- ["description"]="CANCEL CHARACTER",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0094, -- ”
- },
- {
- ["category"]="cc",
- ["description"]="MESSAGE WAITING",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0095, -- •
- },
- {
- ["category"]="cc",
- ["description"]="START OF GUARDED AREA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0096, -- –
- },
- {
- ["category"]="cc",
- ["description"]="END OF GUARDED AREA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0097, -- —
- },
- {
- ["category"]="cc",
- ["description"]="START OF STRING",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0098, -- ˜
- },
- {
- ["category"]="cc",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0099, -- ™
- },
- {
- ["category"]="cc",
- ["description"]="SINGLE CHARACTER INTRODUCER",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x009A, -- š
- },
- {
- ["category"]="cc",
- ["description"]="CONTROL SEQUENCE INTRODUCER",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x009B, -- ›
- },
- {
- ["category"]="cc",
- ["description"]="STRING TERMINATOR",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x009C, -- œ
- },
- {
- ["category"]="cc",
- ["description"]="OPERATING SYSTEM COMMAND",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x009D, -- 
- },
- {
- ["category"]="cc",
- ["description"]="PRIVACY MESSAGE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x009E, -- ž
- },
- {
- ["category"]="cc",
- ["description"]="APPLICATION PROGRAM COMMAND",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x009F, -- Ÿ
- },
- {
- ["category"]="zs",
- ["contextname"]="nonbreakablespace",
- ["description"]="NO-BREAK SPACE",
- ["linebreak"]="gl",
- ["specials"]={ "nobreak", 0x0020 },
- ["unicodeslot"]=0x00A0, --  
- },
- {
- ["adobename"]="exclamdown",
- ["category"]="po",
- ["cjkwd"]="a",
- ["contextname"]="exclamdown",
- ["description"]="INVERTED EXCLAMATION MARK",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x00A1, -- ¡
- },
- {
- ["adobename"]="cent",
- ["category"]="sc",
- ["cjkwd"]="na",
- ["contextname"]="textcent",
- ["description"]="CENT SIGN",
- ["linebreak"]="po",
- ["unicodeslot"]=0x00A2, -- ¢
- },
- {
- ["adobename"]="sterling",
- ["category"]="sc",
- ["cjkwd"]="na",
- ["contextname"]="textsterling",
- ["description"]="POUND SIGN",
- ["linebreak"]="pr",
- ["unicodeslot"]=0x00A3, -- £
- },
- {
- ["adobename"]="currency",
- ["category"]="sc",
- ["cjkwd"]="a",
- ["contextname"]="textcurrency",
- ["description"]="CURRENCY SIGN",
- ["linebreak"]="pr",
- ["unicodeslot"]=0x00A4, -- ¤
- },
- {
- ["adobename"]="yen",
- ["category"]="sc",
- ["cjkwd"]="na",
- ["contextname"]="textyen",
- ["description"]="YEN SIGN",
- ["linebreak"]="pr",
- ["unicodeslot"]=0x00A5, -- ¥
- },
- {
- ["adobename"]="brokenbar",
- ["category"]="so",
- ["cjkwd"]="na",
- ["contextname"]="textbrokenbar",
- ["description"]="BROKEN BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x00A6, -- ¦
- },
- {
- ["adobename"]="section",
- ["category"]="so",
- ["cjkwd"]="a",
- ["contextname"]="sectionmark",
- ["description"]="SECTION SIGN",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x00A7, -- §
- },
- {
- ["adobename"]="dieresis",
- ["category"]="sk",
- ["cjkwd"]="a",
- ["contextname"]="textdiaeresis",
- ["description"]="DIAERESIS",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0020, 0x0308 },
- ["unicodeslot"]=0x00A8, -- ¨
- },
- {
- ["adobename"]="copyright",
- ["category"]="so",
- ["contextname"]="copyright",
- ["description"]="COPYRIGHT SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x00A9, -- ©
- },
- {
- ["adobename"]="ordfeminine",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="ordfeminine",
- ["description"]="FEMININE ORDINAL INDICATOR",
- ["linebreak"]="ai",
- ["specials"]={ "super", 0x0061 },
- ["unicodeslot"]=0x00AA, -- ª
- },
- {
- ["adobename"]="guillemotleft",
- ["category"]="pi",
- ["contextname"]="leftguillemot",
- ["description"]="LEFT-POINTING DOUBLE ANGLE QUOTATION MARK",
- ["linebreak"]="qu",
- ["unicodeslot"]=0x00AB, -- «
- },
- {
- ["adobename"]="logicalnot",
- ["category"]="sm",
- ["cjkwd"]="na",
- ["contextname"]="textlognot",
- ["description"]="NOT SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x00AC, -- ¬
- },
- {
- ["category"]="cf",
- ["cjkwd"]="a",
- ["contextname"]="softhyphen",
- ["description"]="SOFT HYPHEN",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x00AD, -- ­
- },
- {
- ["adobename"]="registered",
- ["category"]="so",
- ["cjkwd"]="a",
- ["contextname"]="registered",
- ["description"]="REGISTERED SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x00AE, -- ®
- },
- {
- ["adobename"]="macron",
- ["category"]="sk",
- ["cjkwd"]="na",
- ["contextname"]="textmacron",
- ["description"]="MACRON",
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x0020, 0x0304 },
- ["unicodeslot"]=0x00AF, -- ¯
- },
- {
- ["adobename"]="degree",
- ["category"]="so",
- ["cjkwd"]="a",
- ["contextname"]="textdegree",
- ["description"]="DEGREE SIGN",
- ["linebreak"]="po",
- ["unicodeslot"]=0x00B0, -- °
- },
- {
- ["adobename"]="plusminus",
- ["category"]="sm",
- ["cjkwd"]="a",
- ["contextname"]="textpm",
- ["description"]="PLUS-MINUS SIGN",
- ["linebreak"]="pr",
- ["mathclass"]="binary",
- ["mathname"]="pm",
- ["unicodeslot"]=0x00B1, -- ±
- },
- {
- ["category"]="no",
- ["cjkwd"]="a",
- ["contextname"]="twosuperior",
- ["description"]="SUPERSCRIPT TWO",
- ["linebreak"]="ai",
- ["specials"]={ "super", 0x0032 },
- ["unicodeslot"]=0x00B2, -- ²
- },
- {
- ["category"]="no",
- ["cjkwd"]="a",
- ["contextname"]="threesuperior",
- ["description"]="SUPERSCRIPT THREE",
- ["linebreak"]="ai",
- ["specials"]={ "super", 0x0033 },
- ["unicodeslot"]=0x00B3, -- ³
- },
- {
- ["adobename"]="acute",
- ["category"]="sk",
- ["cjkwd"]="a",
- ["contextname"]="textacute",
- ["description"]="ACUTE ACCENT",
- ["linebreak"]="bb",
- ["specials"]={ "compat", 0x0020, 0x0301 },
- ["unicodeslot"]=0x00B4, -- ´
- },
- {
- ["adobename"]="mu",
- ["category"]="ll",
- ["contextname"]="textmu",
- ["description"]="MICRO SIGN",
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x03BC },
- ["uccode"]=0x039C,
- ["unicodeslot"]=0x00B5, -- µ
- },
- {
- ["adobename"]="paragraph",
- ["category"]="so",
- ["cjkwd"]="a",
- ["contextname"]="paragraphmark",
- ["description"]="PILCROW SIGN",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x00B6, -- ¶
- },
- {
- ["adobename"]="periodcentered",
- ["category"]="po",
- ["cjkwd"]="a",
- ["contextname"]="periodcentered",
- ["description"]="MIDDLE DOT",
- ["linebreak"]="ai",
- ["mathclass"]="binary",
- ["unicodeslot"]=0x00B7, -- ·
- },
- {
- ["adobename"]="cedilla",
- ["category"]="sk",
- ["cjkwd"]="a",
- ["contextname"]="textcedilla",
- ["description"]="CEDILLA",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0020, 0x0327 },
- ["unicodeslot"]=0x00B8, -- ¸
- },
- {
- ["category"]="no",
- ["cjkwd"]="a",
- ["contextname"]="onesuperior",
- ["description"]="SUPERSCRIPT ONE",
- ["linebreak"]="ai",
- ["specials"]={ "super", 0x0031 },
- ["unicodeslot"]=0x00B9, -- ¹
- },
- {
- ["adobename"]="ordmasculine",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="ordmasculine",
- ["description"]="MASCULINE ORDINAL INDICATOR",
- ["linebreak"]="ai",
- ["specials"]={ "super", 0x006F },
- ["unicodeslot"]=0x00BA, -- º
- },
- {
- ["adobename"]="guillemotright",
- ["category"]="pf",
- ["contextname"]="rightguillemot",
- ["description"]="RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK",
- ["linebreak"]="qu",
- ["unicodeslot"]=0x00BB, -- »
- },
- {
- ["adobename"]="onequarter",
- ["category"]="no",
- ["cjkwd"]="a",
- ["contextname"]="onequarter",
- ["description"]="VULGAR FRACTION ONE QUARTER",
- ["linebreak"]="ai",
- ["specials"]={ "fraction", 0x0031, 0x2044, 0x0034 },
- ["unicodeslot"]=0x00BC, -- ¼
- },
- {
- ["adobename"]="onehalf",
- ["category"]="no",
- ["cjkwd"]="a",
- ["contextname"]="onehalf",
- ["description"]="VULGAR FRACTION ONE HALF",
- ["linebreak"]="ai",
- ["specials"]={ "fraction", 0x0031, 0x2044, 0x0032 },
- ["unicodeslot"]=0x00BD, -- ½
- },
- {
- ["adobename"]="threequarters",
- ["category"]="no",
- ["cjkwd"]="a",
- ["contextname"]="threequarter",
- ["description"]="VULGAR FRACTION THREE QUARTERS",
- ["linebreak"]="ai",
- ["specials"]={ "fraction", 0x0033, 0x2044, 0x0034 },
- ["unicodeslot"]=0x00BE, -- ¾
- },
- {
- ["adobename"]="questiondown",
- ["category"]="po",
- ["cjkwd"]="a",
- ["contextname"]="questiondown",
- ["description"]="INVERTED QUESTION MARK",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x00BF, -- ¿
- },
- {
- ["adobename"]="Agrave",
- ["category"]="lu",
- ["contextname"]="Agrave",
- ["description"]="LATIN CAPITAL LETTER A WITH GRAVE",
- ["lccode"]=0x00E0,
- ["linebreak"]="al",
- ["shcode"]=0x0041,
- ["specials"]={ "char", 0x0041, 0x0300 },
- ["unicodeslot"]=0x00C0, -- À
- },
- {
- ["adobename"]="Aacute",
- ["category"]="lu",
- ["contextname"]="Aacute",
- ["description"]="LATIN CAPITAL LETTER A WITH ACUTE",
- ["lccode"]=0x00E1,
- ["linebreak"]="al",
- ["shcode"]=0x0041,
- ["specials"]={ "char", 0x0041, 0x0301 },
- ["unicodeslot"]=0x00C1, -- Á
- },
- {
- ["adobename"]="Acircumflex",
- ["category"]="lu",
- ["contextname"]="Acircumflex",
- ["description"]="LATIN CAPITAL LETTER A WITH CIRCUMFLEX",
- ["lccode"]=0x00E2,
- ["linebreak"]="al",
- ["shcode"]=0x0041,
- ["specials"]={ "char", 0x0041, 0x0302 },
- ["unicodeslot"]=0x00C2, -- Â
- },
- {
- ["adobename"]="Atilde",
- ["category"]="lu",
- ["contextname"]="Atilde",
- ["description"]="LATIN CAPITAL LETTER A WITH TILDE",
- ["lccode"]=0x00E3,
- ["linebreak"]="al",
- ["shcode"]=0x0041,
- ["specials"]={ "char", 0x0041, 0x0303 },
- ["unicodeslot"]=0x00C3, -- Ã
- },
- {
- ["adobename"]="Adieresis",
- ["category"]="lu",
- ["contextname"]="Adiaeresis",
- ["description"]="LATIN CAPITAL LETTER A WITH DIAERESIS",
- ["lccode"]=0x00E4,
- ["linebreak"]="al",
- ["shcode"]=0x0041,
- ["specials"]={ "char", 0x0041, 0x0308 },
- ["unicodeslot"]=0x00C4, -- Ä
- },
- {
- ["adobename"]="Aring",
- ["category"]="lu",
- ["contextname"]="Aring",
- ["description"]="LATIN CAPITAL LETTER A WITH RING ABOVE",
- ["lccode"]=0x00E5,
- ["linebreak"]="al",
- ["shcode"]=0x0041,
- ["specials"]={ "char", 0x0041, 0x030A },
- ["unicodeslot"]=0x00C5, -- Å
- },
- {
- ["adobename"]="AE",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="AEligature",
- ["description"]="LATIN CAPITAL LETTER AE",
- ["lccode"]=0x00E6,
- ["linebreak"]="al",
- ["shcode"]= { 0x0041, 0x0045 },
- ["unicodeslot"]=0x00C6, -- Æ
- },
- {
- ["adobename"]="Ccedilla",
- ["category"]="lu",
- ["contextname"]="Ccedilla",
- ["description"]="LATIN CAPITAL LETTER C WITH CEDILLA",
- ["lccode"]=0x00E7,
- ["linebreak"]="al",
- ["shcode"]=0x0043,
- ["specials"]={ "char", 0x0043, 0x0327 },
- ["unicodeslot"]=0x00C7, -- Ç
- },
- {
- ["adobename"]="Egrave",
- ["category"]="lu",
- ["contextname"]="Egrave",
- ["description"]="LATIN CAPITAL LETTER E WITH GRAVE",
- ["lccode"]=0x00E8,
- ["linebreak"]="al",
- ["shcode"]=0x0045,
- ["specials"]={ "char", 0x0045, 0x0300 },
- ["unicodeslot"]=0x00C8, -- È
- },
- {
- ["adobename"]="Eacute",
- ["category"]="lu",
- ["contextname"]="Eacute",
- ["description"]="LATIN CAPITAL LETTER E WITH ACUTE",
- ["lccode"]=0x00E9,
- ["linebreak"]="al",
- ["shcode"]=0x0045,
- ["specials"]={ "char", 0x0045, 0x0301 },
- ["unicodeslot"]=0x00C9, -- É
- },
- {
- ["adobename"]="Ecircumflex",
- ["category"]="lu",
- ["contextname"]="Ecircumflex",
- ["description"]="LATIN CAPITAL LETTER E WITH CIRCUMFLEX",
- ["lccode"]=0x00EA,
- ["linebreak"]="al",
- ["shcode"]=0x0045,
- ["specials"]={ "char", 0x0045, 0x0302 },
- ["unicodeslot"]=0x00CA, -- Ê
- },
- {
- ["adobename"]="Edieresis",
- ["category"]="lu",
- ["contextname"]="Ediaeresis",
- ["description"]="LATIN CAPITAL LETTER E WITH DIAERESIS",
- ["lccode"]=0x00EB,
- ["linebreak"]="al",
- ["shcode"]=0x0045,
- ["specials"]={ "char", 0x0045, 0x0308 },
- ["unicodeslot"]=0x00CB, -- Ë
- },
- {
- ["adobename"]="Igrave",
- ["category"]="lu",
- ["contextname"]="Igrave",
- ["description"]="LATIN CAPITAL LETTER I WITH GRAVE",
- ["lccode"]=0x00EC,
- ["linebreak"]="al",
- ["shcode"]=0x0049,
- ["specials"]={ "char", 0x0049, 0x0300 },
- ["unicodeslot"]=0x00CC, -- Ì
- },
- {
- ["adobename"]="Iacute",
- ["category"]="lu",
- ["contextname"]="Iacute",
- ["description"]="LATIN CAPITAL LETTER I WITH ACUTE",
- ["lccode"]=0x00ED,
- ["linebreak"]="al",
- ["shcode"]=0x0049,
- ["specials"]={ "char", 0x0049, 0x0301 },
- ["unicodeslot"]=0x00CD, -- Í
- },
- {
- ["adobename"]="Icircumflex",
- ["category"]="lu",
- ["contextname"]="Icircumflex",
- ["description"]="LATIN CAPITAL LETTER I WITH CIRCUMFLEX",
- ["lccode"]=0x00EE,
- ["linebreak"]="al",
- ["shcode"]=0x0049,
- ["specials"]={ "char", 0x0049, 0x0302 },
- ["unicodeslot"]=0x00CE, -- Î
- },
- {
- ["adobename"]="Idieresis",
- ["category"]="lu",
- ["contextname"]="Idiaeresis",
- ["description"]="LATIN CAPITAL LETTER I WITH DIAERESIS",
- ["lccode"]=0x00EF,
- ["linebreak"]="al",
- ["shcode"]=0x0049,
- ["specials"]={ "char", 0x0049, 0x0308 },
- ["unicodeslot"]=0x00CF, -- Ï
- },
- {
- ["adobename"]="Eth",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="Eth",
- ["description"]="LATIN CAPITAL LETTER ETH",
- ["lccode"]=0x00F0,
- ["linebreak"]="al",
- ["unicodeslot"]=0x00D0, -- Ð
- },
- {
- ["adobename"]="Ntilde",
- ["category"]="lu",
- ["contextname"]="Ntilde",
- ["description"]="LATIN CAPITAL LETTER N WITH TILDE",
- ["lccode"]=0x00F1,
- ["linebreak"]="al",
- ["shcode"]=0x004E,
- ["specials"]={ "char", 0x004E, 0x0303 },
- ["unicodeslot"]=0x00D1, -- Ñ
- },
- {
- ["adobename"]="Ograve",
- ["category"]="lu",
- ["contextname"]="Ograve",
- ["description"]="LATIN CAPITAL LETTER O WITH GRAVE",
- ["lccode"]=0x00F2,
- ["linebreak"]="al",
- ["shcode"]=0x004F,
- ["specials"]={ "char", 0x004F, 0x0300 },
- ["unicodeslot"]=0x00D2, -- Ò
- },
- {
- ["adobename"]="Oacute",
- ["category"]="lu",
- ["contextname"]="Oacute",
- ["description"]="LATIN CAPITAL LETTER O WITH ACUTE",
- ["lccode"]=0x00F3,
- ["linebreak"]="al",
- ["shcode"]=0x004F,
- ["specials"]={ "char", 0x004F, 0x0301 },
- ["unicodeslot"]=0x00D3, -- Ó
- },
- {
- ["adobename"]="Ocircumflex",
- ["category"]="lu",
- ["contextname"]="Ocircumflex",
- ["description"]="LATIN CAPITAL LETTER O WITH CIRCUMFLEX",
- ["lccode"]=0x00F4,
- ["linebreak"]="al",
- ["shcode"]=0x004F,
- ["specials"]={ "char", 0x004F, 0x0302 },
- ["unicodeslot"]=0x00D4, -- Ô
- },
- {
- ["adobename"]="Otilde",
- ["category"]="lu",
- ["contextname"]="Otilde",
- ["description"]="LATIN CAPITAL LETTER O WITH TILDE",
- ["lccode"]=0x00F5,
- ["linebreak"]="al",
- ["shcode"]=0x004F,
- ["specials"]={ "char", 0x004F, 0x0303 },
- ["unicodeslot"]=0x00D5, -- Õ
- },
- {
- ["adobename"]="Odieresis",
- ["category"]="lu",
- ["contextname"]="Odiaeresis",
- ["description"]="LATIN CAPITAL LETTER O WITH DIAERESIS",
- ["lccode"]=0x00F6,
- ["linebreak"]="al",
- ["shcode"]=0x004F,
- ["specials"]={ "char", 0x004F, 0x0308 },
- ["unicodeslot"]=0x00D6, -- Ö
- },
- {
- ["adobename"]="multiply",
- ["category"]="sm",
- ["cjkwd"]="a",
- ["contextname"]="textmultiply",
- ["description"]="MULTIPLICATION SIGN",
- ["linebreak"]="ai",
- ["mathclass"]="binary",
- ["mathname"]="times",
- ["unicodeslot"]=0x00D7, -- ×
- },
- {
- ["adobename"]="Oslash",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="Ostroke",
- ["description"]="LATIN CAPITAL LETTER O WITH STROKE",
- ["lccode"]=0x00F8,
- ["linebreak"]="al",
- ["shcode"]=0x004F,
- ["unicodeslot"]=0x00D8, -- Ø
- },
- {
- ["adobename"]="Ugrave",
- ["category"]="lu",
- ["contextname"]="Ugrave",
- ["description"]="LATIN CAPITAL LETTER U WITH GRAVE",
- ["lccode"]=0x00F9,
- ["linebreak"]="al",
- ["shcode"]=0x0055,
- ["specials"]={ "char", 0x0055, 0x0300 },
- ["unicodeslot"]=0x00D9, -- Ù
- },
- {
- ["adobename"]="Uacute",
- ["category"]="lu",
- ["contextname"]="Uacute",
- ["description"]="LATIN CAPITAL LETTER U WITH ACUTE",
- ["lccode"]=0x00FA,
- ["linebreak"]="al",
- ["shcode"]=0x0055,
- ["specials"]={ "char", 0x0055, 0x0301 },
- ["unicodeslot"]=0x00DA, -- Ú
- },
- {
- ["adobename"]="Ucircumflex",
- ["category"]="lu",
- ["contextname"]="Ucircumflex",
- ["description"]="LATIN CAPITAL LETTER U WITH CIRCUMFLEX",
- ["lccode"]=0x00FB,
- ["linebreak"]="al",
- ["shcode"]=0x0055,
- ["specials"]={ "char", 0x0055, 0x0302 },
- ["unicodeslot"]=0x00DB, -- Û
- },
- {
- ["adobename"]="Udieresis",
- ["category"]="lu",
- ["contextname"]="Udiaeresis",
- ["description"]="LATIN CAPITAL LETTER U WITH DIAERESIS",
- ["lccode"]=0x00FC,
- ["linebreak"]="al",
- ["shcode"]=0x0055,
- ["specials"]={ "char", 0x0055, 0x0308 },
- ["unicodeslot"]=0x00DC, -- Ü
- },
- {
- ["adobename"]="Yacute",
- ["category"]="lu",
- ["contextname"]="Yacute",
- ["description"]="LATIN CAPITAL LETTER Y WITH ACUTE",
- ["lccode"]=0x00FD,
- ["linebreak"]="al",
- ["shcode"]=0x0059,
- ["specials"]={ "char", 0x0059, 0x0301 },
- ["unicodeslot"]=0x00DD, -- Ý
- },
- {
- ["adobename"]="Thorn",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="Thorn",
- ["description"]="LATIN CAPITAL LETTER THORN",
- ["lccode"]=0x00FE,
- ["linebreak"]="al",
- ["unicodeslot"]=0x00DE, -- Þ
- },
- {
- ["adobename"]="germandbls",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="ssharp",
- ["description"]="LATIN SMALL LETTER SHARP S",
- ["linebreak"]="al",
- ["unicodeslot"]=0x00DF, -- ß
- ["uccodes"]={0x0053,0x0053},
- },
- {
- ["adobename"]="agrave",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="agrave",
- ["description"]="LATIN SMALL LETTER A WITH GRAVE",
- ["linebreak"]="al",
- ["shcode"]=0x0061,
- ["specials"]={ "char", 0x0061, 0x0300 },
- ["uccode"]=0x00C0,
- ["unicodeslot"]=0x00E0, -- à
- },
- {
- ["adobename"]="aacute",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="aacute",
- ["description"]="LATIN SMALL LETTER A WITH ACUTE",
- ["linebreak"]="al",
- ["shcode"]=0x0061,
- ["specials"]={ "char", 0x0061, 0x0301 },
- ["uccode"]=0x00C1,
- ["unicodeslot"]=0x00E1, -- á
- },
- {
- ["adobename"]="acircumflex",
- ["category"]="ll",
- ["contextname"]="acircumflex",
- ["description"]="LATIN SMALL LETTER A WITH CIRCUMFLEX",
- ["linebreak"]="al",
- ["shcode"]=0x0061,
- ["specials"]={ "char", 0x0061, 0x0302 },
- ["uccode"]=0x00C2,
- ["unicodeslot"]=0x00E2, -- â
- },
- {
- ["adobename"]="atilde",
- ["category"]="ll",
- ["contextname"]="atilde",
- ["description"]="LATIN SMALL LETTER A WITH TILDE",
- ["linebreak"]="al",
- ["shcode"]=0x0061,
- ["specials"]={ "char", 0x0061, 0x0303 },
- ["uccode"]=0x00C3,
- ["unicodeslot"]=0x00E3, -- ã
- },
- {
- ["adobename"]="adieresis",
- ["category"]="ll",
- ["contextname"]="adiaeresis",
- ["description"]="LATIN SMALL LETTER A WITH DIAERESIS",
- ["linebreak"]="al",
- ["shcode"]=0x0061,
- ["specials"]={ "char", 0x0061, 0x0308 },
- ["uccode"]=0x00C4,
- ["unicodeslot"]=0x00E4, -- ä
- },
- {
- ["adobename"]="aring",
- ["category"]="ll",
- ["contextname"]="aring",
- ["description"]="LATIN SMALL LETTER A WITH RING ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0061,
- ["specials"]={ "char", 0x0061, 0x030A },
- ["uccode"]=0x00C5,
- ["unicodeslot"]=0x00E5, -- å
- },
- {
- ["adobename"]="ae",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="aeligature",
- ["description"]="LATIN SMALL LETTER AE",
- ["linebreak"]="al",
- ["shcode"]= { 0x00E6, 0x00EA },
- ["uccode"]=0x00C6,
- ["unicodeslot"]=0x00E6, -- æ
- },
- {
- ["adobename"]="ccedilla",
- ["category"]="ll",
- ["contextname"]="ccedilla",
- ["description"]="LATIN SMALL LETTER C WITH CEDILLA",
- ["linebreak"]="al",
- ["shcode"]=0x0063,
- ["specials"]={ "char", 0x0063, 0x0327 },
- ["uccode"]=0x00C7,
- ["unicodeslot"]=0x00E7, -- ç
- },
- {
- ["adobename"]="egrave",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="egrave",
- ["description"]="LATIN SMALL LETTER E WITH GRAVE",
- ["linebreak"]="al",
- ["shcode"]=0x0065,
- ["specials"]={ "char", 0x0065, 0x0300 },
- ["uccode"]=0x00C8,
- ["unicodeslot"]=0x00E8, -- è
- },
- {
- ["adobename"]="eacute",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="eacute",
- ["description"]="LATIN SMALL LETTER E WITH ACUTE",
- ["linebreak"]="al",
- ["shcode"]=0x0065,
- ["specials"]={ "char", 0x0065, 0x0301 },
- ["uccode"]=0x00C9,
- ["unicodeslot"]=0x00E9, -- é
- },
- {
- ["adobename"]="ecircumflex",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="ecircumflex",
- ["description"]="LATIN SMALL LETTER E WITH CIRCUMFLEX",
- ["linebreak"]="al",
- ["shcode"]=0x0065,
- ["specials"]={ "char", 0x0065, 0x0302 },
- ["uccode"]=0x00CA,
- ["unicodeslot"]=0x00EA, -- ê
- },
- {
- ["adobename"]="edieresis",
- ["category"]="ll",
- ["contextname"]="ediaeresis",
- ["description"]="LATIN SMALL LETTER E WITH DIAERESIS",
- ["linebreak"]="al",
- ["shcode"]=0x0065,
- ["specials"]={ "char", 0x0065, 0x0308 },
- ["uccode"]=0x00CB,
- ["unicodeslot"]=0x00EB, -- ë
- },
- {
- ["adobename"]="igrave",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="igrave",
- ["description"]="LATIN SMALL LETTER I WITH GRAVE",
- ["linebreak"]="al",
- ["shcode"]=0x0069,
- ["specials"]={ "char", 0x0069, 0x0300 },
- ["uccode"]=0x00CC,
- ["unicodeslot"]=0x00EC, -- ì
- },
- {
- ["adobename"]="iacute",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="iacute",
- ["description"]="LATIN SMALL LETTER I WITH ACUTE",
- ["linebreak"]="al",
- ["shcode"]=0x0069,
- ["specials"]={ "char", 0x0069, 0x0301 },
- ["uccode"]=0x00CD,
- ["unicodeslot"]=0x00ED, -- í
- },
- {
- ["adobename"]="icircumflex",
- ["category"]="ll",
- ["contextname"]="icircumflex",
- ["description"]="LATIN SMALL LETTER I WITH CIRCUMFLEX",
- ["linebreak"]="al",
- ["shcode"]=0x0069,
- ["specials"]={ "char", 0x0069, 0x0302 },
- ["uccode"]=0x00CE,
- ["unicodeslot"]=0x00EE, -- î
- },
- {
- ["adobename"]="idieresis",
- ["category"]="ll",
- ["contextname"]="idiaeresis",
- ["description"]="LATIN SMALL LETTER I WITH DIAERESIS",
- ["linebreak"]="al",
- ["shcode"]=0x0069,
- ["specials"]={ "char", 0x0069, 0x0308 },
- ["uccode"]=0x00CF,
- ["unicodeslot"]=0x00EF, -- ï
- },
- {
- ["adobename"]="eth",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="eth",
- ["description"]="LATIN SMALL LETTER ETH",
- ["linebreak"]="al",
- ["uccode"]=0x00D0,
- ["unicodeslot"]=0x00F0, -- ð
- },
- {
- ["adobename"]="ntilde",
- ["category"]="ll",
- ["contextname"]="ntilde",
- ["description"]="LATIN SMALL LETTER N WITH TILDE",
- ["linebreak"]="al",
- ["shcode"]=0x006E,
- ["specials"]={ "char", 0x006E, 0x0303 },
- ["uccode"]=0x00D1,
- ["unicodeslot"]=0x00F1, -- ñ
- },
- {
- ["adobename"]="ograve",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="ograve",
- ["description"]="LATIN SMALL LETTER O WITH GRAVE",
- ["linebreak"]="al",
- ["shcode"]=0x006F,
- ["specials"]={ "char", 0x006F, 0x0300 },
- ["uccode"]=0x00D2,
- ["unicodeslot"]=0x00F2, -- ò
- },
- {
- ["adobename"]="oacute",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="oacute",
- ["description"]="LATIN SMALL LETTER O WITH ACUTE",
- ["linebreak"]="al",
- ["shcode"]=0x006F,
- ["specials"]={ "char", 0x006F, 0x0301 },
- ["uccode"]=0x00D3,
- ["unicodeslot"]=0x00F3, -- ó
- },
- {
- ["adobename"]="ocircumflex",
- ["category"]="ll",
- ["contextname"]="ocircumflex",
- ["description"]="LATIN SMALL LETTER O WITH CIRCUMFLEX",
- ["linebreak"]="al",
- ["shcode"]=0x006F,
- ["specials"]={ "char", 0x006F, 0x0302 },
- ["uccode"]=0x00D4,
- ["unicodeslot"]=0x00F4, -- ô
- },
- {
- ["adobename"]="otilde",
- ["category"]="ll",
- ["contextname"]="otilde",
- ["description"]="LATIN SMALL LETTER O WITH TILDE",
- ["linebreak"]="al",
- ["shcode"]=0x006F,
- ["specials"]={ "char", 0x006F, 0x0303 },
- ["uccode"]=0x00D5,
- ["unicodeslot"]=0x00F5, -- õ
- },
- {
- ["adobename"]="odieresis",
- ["category"]="ll",
- ["contextname"]="odiaeresis",
- ["description"]="LATIN SMALL LETTER O WITH DIAERESIS",
- ["linebreak"]="al",
- ["shcode"]=0x006F,
- ["specials"]={ "char", 0x006F, 0x0308 },
- ["uccode"]=0x00D6,
- ["unicodeslot"]=0x00F6, -- ö
- },
- {
- ["adobename"]="divide",
- ["category"]="sm",
- ["cjkwd"]="a",
- ["contextname"]="textdiv",
- ["description"]="DIVISION SIGN",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x00F7, -- ÷
- },
- {
- ["adobename"]="oslash",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="ostroke",
- ["description"]="LATIN SMALL LETTER O WITH STROKE",
- ["linebreak"]="al",
- ["shcode"]=0x006F,
- ["uccode"]=0x00D8,
- ["unicodeslot"]=0x00F8, -- ø
- },
- {
- ["adobename"]="ugrave",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="ugrave",
- ["description"]="LATIN SMALL LETTER U WITH GRAVE",
- ["linebreak"]="al",
- ["shcode"]=0x0075,
- ["specials"]={ "char", 0x0075, 0x0300 },
- ["uccode"]=0x00D9,
- ["unicodeslot"]=0x00F9, -- ù
- },
- {
- ["adobename"]="uacute",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="uacute",
- ["description"]="LATIN SMALL LETTER U WITH ACUTE",
- ["linebreak"]="al",
- ["shcode"]=0x0075,
- ["specials"]={ "char", 0x0075, 0x0301 },
- ["uccode"]=0x00DA,
- ["unicodeslot"]=0x00FA, -- ú
- },
- {
- ["adobename"]="ucircumflex",
- ["category"]="ll",
- ["contextname"]="ucircumflex",
- ["description"]="LATIN SMALL LETTER U WITH CIRCUMFLEX",
- ["linebreak"]="al",
- ["shcode"]=0x0075,
- ["specials"]={ "char", 0x0075, 0x0302 },
- ["uccode"]=0x00DB,
- ["unicodeslot"]=0x00FB, -- û
- },
- {
- ["adobename"]="udieresis",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="udiaeresis",
- ["description"]="LATIN SMALL LETTER U WITH DIAERESIS",
- ["linebreak"]="al",
- ["shcode"]=0x0075,
- ["specials"]={ "char", 0x0075, 0x0308 },
- ["uccode"]=0x00DC,
- ["unicodeslot"]=0x00FC, -- ü
- },
- {
- ["adobename"]="yacute",
- ["category"]="ll",
- ["contextname"]="yacute",
- ["description"]="LATIN SMALL LETTER Y WITH ACUTE",
- ["linebreak"]="al",
- ["shcode"]=0x0079,
- ["specials"]={ "char", 0x0079, 0x0301 },
- ["uccode"]=0x00DD,
- ["unicodeslot"]=0x00FD, -- ý
- },
- {
- ["adobename"]="thorn",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="thorn",
- ["description"]="LATIN SMALL LETTER THORN",
- ["linebreak"]="al",
- ["uccode"]=0x00DE,
- ["unicodeslot"]=0x00FE, -- þ
- },
- {
- ["adobename"]="ydieresis",
- ["category"]="ll",
- ["contextname"]="ydiaeresis",
- ["description"]="LATIN SMALL LETTER Y WITH DIAERESIS",
- ["linebreak"]="al",
- ["shcode"]=0x0079,
- ["specials"]={ "char", 0x0079, 0x0308 },
- ["uccode"]=0x0178,
- ["unicodeslot"]=0x00FF, -- ÿ
- },
- {
- ["adobename"]="Amacron",
- ["category"]="lu",
- ["contextname"]="Amacron",
- ["description"]="LATIN CAPITAL LETTER A WITH MACRON",
- ["lccode"]=0x0101,
- ["linebreak"]="al",
- ["shcode"]=0x0041,
- ["specials"]={ "char", 0x0041, 0x0304 },
- ["unicodeslot"]=0x0100, -- Ā
- },
- {
- ["adobename"]="amacron",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="amacron",
- ["description"]="LATIN SMALL LETTER A WITH MACRON",
- ["linebreak"]="al",
- ["shcode"]=0x0061,
- ["specials"]={ "char", 0x0061, 0x0304 },
- ["uccode"]=0x0100,
- ["unicodeslot"]=0x0101, -- ā
- },
- {
- ["adobename"]="Abreve",
- ["category"]="lu",
- ["contextname"]="Abreve",
- ["description"]="LATIN CAPITAL LETTER A WITH BREVE",
- ["lccode"]=0x0103,
- ["linebreak"]="al",
- ["shcode"]=0x0041,
- ["specials"]={ "char", 0x0041, 0x0306 },
- ["unicodeslot"]=0x0102, -- Ă
- },
- {
- ["adobename"]="abreve",
- ["category"]="ll",
- ["contextname"]="abreve",
- ["description"]="LATIN SMALL LETTER A WITH BREVE",
- ["linebreak"]="al",
- ["shcode"]=0x0061,
- ["specials"]={ "char", 0x0061, 0x0306 },
- ["uccode"]=0x0102,
- ["unicodeslot"]=0x0103, -- ă
- },
- {
- ["adobename"]="Aogonek",
- ["category"]="lu",
- ["contextname"]="Aogonek",
- ["description"]="LATIN CAPITAL LETTER A WITH OGONEK",
- ["lccode"]=0x0105,
- ["linebreak"]="al",
- ["shcode"]=0x0041,
- ["specials"]={ "char", 0x0041, 0x0328 },
- ["unicodeslot"]=0x0104, -- Ą
- },
- {
- ["adobename"]="aogonek",
- ["category"]="ll",
- ["contextname"]="aogonek",
- ["description"]="LATIN SMALL LETTER A WITH OGONEK",
- ["linebreak"]="al",
- ["shcode"]=0x0061,
- ["specials"]={ "char", 0x0061, 0x0328 },
- ["uccode"]=0x0104,
- ["unicodeslot"]=0x0105, -- ą
- },
- {
- ["adobename"]="Cacute",
- ["category"]="lu",
- ["contextname"]="Cacute",
- ["description"]="LATIN CAPITAL LETTER C WITH ACUTE",
- ["lccode"]=0x0107,
- ["linebreak"]="al",
- ["shcode"]=0x0043,
- ["specials"]={ "char", 0x0043, 0x0301 },
- ["unicodeslot"]=0x0106, -- Ć
- },
- {
- ["adobename"]="cacute",
- ["category"]="ll",
- ["contextname"]="cacute",
- ["description"]="LATIN SMALL LETTER C WITH ACUTE",
- ["linebreak"]="al",
- ["shcode"]=0x0063,
- ["specials"]={ "char", 0x0063, 0x0301 },
- ["uccode"]=0x0106,
- ["unicodeslot"]=0x0107, -- ć
- },
- {
- ["adobename"]="Ccircumflex",
- ["category"]="lu",
- ["contextname"]="Ccircumflex",
- ["description"]="LATIN CAPITAL LETTER C WITH CIRCUMFLEX",
- ["lccode"]=0x0109,
- ["linebreak"]="al",
- ["shcode"]=0x0043,
- ["specials"]={ "char", 0x0043, 0x0302 },
- ["unicodeslot"]=0x0108, -- Ĉ
- },
- {
- ["adobename"]="ccircumflex",
- ["category"]="ll",
- ["contextname"]="ccircumflex",
- ["description"]="LATIN SMALL LETTER C WITH CIRCUMFLEX",
- ["linebreak"]="al",
- ["shcode"]=0x0063,
- ["specials"]={ "char", 0x0063, 0x0302 },
- ["uccode"]=0x0108,
- ["unicodeslot"]=0x0109, -- ĉ
- },
- {
- ["adobename"]="Cdotaccent",
- ["category"]="lu",
- ["contextname"]="Cdotaccent",
- ["description"]="LATIN CAPITAL LETTER C WITH DOT ABOVE",
- ["lccode"]=0x010B,
- ["linebreak"]="al",
- ["shcode"]=0x0043,
- ["specials"]={ "char", 0x0043, 0x0307 },
- ["unicodeslot"]=0x010A, -- Ċ
- },
- {
- ["adobename"]="cdotaccent",
- ["category"]="ll",
- ["contextname"]="cdotaccent",
- ["description"]="LATIN SMALL LETTER C WITH DOT ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0063,
- ["specials"]={ "char", 0x0063, 0x0307 },
- ["uccode"]=0x010A,
- ["unicodeslot"]=0x010B, -- ċ
- },
- {
- ["adobename"]="Ccaron",
- ["category"]="lu",
- ["contextname"]="Ccaron",
- ["description"]="LATIN CAPITAL LETTER C WITH CARON",
- ["lccode"]=0x010D,
- ["linebreak"]="al",
- ["shcode"]=0x0043,
- ["specials"]={ "char", 0x0043, 0x030C },
- ["unicodeslot"]=0x010C, -- Č
- },
- {
- ["adobename"]="ccaron",
- ["category"]="ll",
- ["contextname"]="ccaron",
- ["description"]="LATIN SMALL LETTER C WITH CARON",
- ["linebreak"]="al",
- ["shcode"]=0x0063,
- ["specials"]={ "char", 0x0063, 0x030C },
- ["uccode"]=0x010C,
- ["unicodeslot"]=0x010D, -- č
- },
- {
- ["adobename"]="Dcaron",
- ["category"]="lu",
- ["contextname"]="Dcaron",
- ["description"]="LATIN CAPITAL LETTER D WITH CARON",
- ["lccode"]=0x010F,
- ["linebreak"]="al",
- ["shcode"]=0x0044,
- ["specials"]={ "char", 0x0044, 0x030C },
- ["unicodeslot"]=0x010E, -- Ď
- },
- {
- ["adobename"]="dcaron",
- ["category"]="ll",
- ["contextname"]="dcaron",
- ["description"]="LATIN SMALL LETTER D WITH CARON",
- ["linebreak"]="al",
- ["shcode"]=0x0064,
- ["specials"]={ "char", 0x0064, 0x030C },
- ["uccode"]=0x010E,
- ["unicodeslot"]=0x010F, -- ď
- },
- {
- ["adobename"]="Dcroat",
- ["category"]="lu",
- ["contextname"]="Dstroke",
- ["description"]="LATIN CAPITAL LETTER D WITH STROKE",
- ["lccode"]=0x0111,
- ["linebreak"]="al",
- ["shcode"]=0x0044,
- ["unicodeslot"]=0x0110, -- Đ
- },
- {
- ["adobename"]="dcroat",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="dstroke",
- ["description"]="LATIN SMALL LETTER D WITH STROKE",
- ["linebreak"]="al",
- ["shcode"]=0x0064,
- ["uccode"]=0x0110,
- ["unicodeslot"]=0x0111, -- đ
- },
- {
- ["adobename"]="Emacron",
- ["category"]="lu",
- ["contextname"]="Emacron",
- ["description"]="LATIN CAPITAL LETTER E WITH MACRON",
- ["lccode"]=0x0113,
- ["linebreak"]="al",
- ["shcode"]=0x0045,
- ["specials"]={ "char", 0x0045, 0x0304 },
- ["unicodeslot"]=0x0112, -- Ē
- },
- {
- ["adobename"]="emacron",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="emacron",
- ["description"]="LATIN SMALL LETTER E WITH MACRON",
- ["linebreak"]="al",
- ["shcode"]=0x0065,
- ["specials"]={ "char", 0x0065, 0x0304 },
- ["uccode"]=0x0112,
- ["unicodeslot"]=0x0113, -- ē
- },
- {
- ["adobename"]="Ebreve",
- ["category"]="lu",
- ["contextname"]="Ebreve",
- ["description"]="LATIN CAPITAL LETTER E WITH BREVE",
- ["lccode"]=0x0115,
- ["linebreak"]="al",
- ["shcode"]=0x0045,
- ["specials"]={ "char", 0x0045, 0x0306 },
- ["unicodeslot"]=0x0114, -- Ĕ
- },
- {
- ["adobename"]="ebreve",
- ["category"]="ll",
- ["contextname"]="ebreve",
- ["description"]="LATIN SMALL LETTER E WITH BREVE",
- ["linebreak"]="al",
- ["shcode"]=0x0065,
- ["specials"]={ "char", 0x0065, 0x0306 },
- ["uccode"]=0x0114,
- ["unicodeslot"]=0x0115, -- ĕ
- },
- {
- ["adobename"]="Edotaccent",
- ["category"]="lu",
- ["contextname"]="Edotaccent",
- ["description"]="LATIN CAPITAL LETTER E WITH DOT ABOVE",
- ["lccode"]=0x0117,
- ["linebreak"]="al",
- ["shcode"]=0x0045,
- ["specials"]={ "char", 0x0045, 0x0307 },
- ["unicodeslot"]=0x0116, -- Ė
- },
- {
- ["adobename"]="edotaccent",
- ["category"]="ll",
- ["contextname"]="edotaccent",
- ["description"]="LATIN SMALL LETTER E WITH DOT ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0065,
- ["specials"]={ "char", 0x0065, 0x0307 },
- ["uccode"]=0x0116,
- ["unicodeslot"]=0x0117, -- ė
- },
- {
- ["adobename"]="Eogonek",
- ["category"]="lu",
- ["contextname"]="Eogonek",
- ["description"]="LATIN CAPITAL LETTER E WITH OGONEK",
- ["lccode"]=0x0119,
- ["linebreak"]="al",
- ["shcode"]=0x0045,
- ["specials"]={ "char", 0x0045, 0x0328 },
- ["unicodeslot"]=0x0118, -- Ę
- },
- {
- ["adobename"]="eogonek",
- ["category"]="ll",
- ["contextname"]="eogonek",
- ["description"]="LATIN SMALL LETTER E WITH OGONEK",
- ["linebreak"]="al",
- ["shcode"]=0x0065,
- ["specials"]={ "char", 0x0065, 0x0328 },
- ["uccode"]=0x0118,
- ["unicodeslot"]=0x0119, -- ę
- },
- {
- ["adobename"]="Ecaron",
- ["category"]="lu",
- ["contextname"]="Ecaron",
- ["description"]="LATIN CAPITAL LETTER E WITH CARON",
- ["lccode"]=0x011B,
- ["linebreak"]="al",
- ["shcode"]=0x0045,
- ["specials"]={ "char", 0x0045, 0x030C },
- ["unicodeslot"]=0x011A, -- Ě
- },
- {
- ["adobename"]="ecaron",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="ecaron",
- ["description"]="LATIN SMALL LETTER E WITH CARON",
- ["linebreak"]="al",
- ["shcode"]=0x0065,
- ["specials"]={ "char", 0x0065, 0x030C },
- ["uccode"]=0x011A,
- ["unicodeslot"]=0x011B, -- ě
- },
- {
- ["adobename"]="Gcircumflex",
- ["category"]="lu",
- ["contextname"]="Gcircumflex",
- ["description"]="LATIN CAPITAL LETTER G WITH CIRCUMFLEX",
- ["lccode"]=0x011D,
- ["linebreak"]="al",
- ["shcode"]=0x0047,
- ["specials"]={ "char", 0x0047, 0x0302 },
- ["unicodeslot"]=0x011C, -- Ĝ
- },
- {
- ["adobename"]="gcircumflex",
- ["category"]="ll",
- ["contextname"]="gcircumflex",
- ["description"]="LATIN SMALL LETTER G WITH CIRCUMFLEX",
- ["linebreak"]="al",
- ["shcode"]=0x0067,
- ["specials"]={ "char", 0x0067, 0x0302 },
- ["uccode"]=0x011C,
- ["unicodeslot"]=0x011D, -- ĝ
- },
- {
- ["adobename"]="Gbreve",
- ["category"]="lu",
- ["contextname"]="Gbreve",
- ["description"]="LATIN CAPITAL LETTER G WITH BREVE",
- ["lccode"]=0x011F,
- ["linebreak"]="al",
- ["shcode"]=0x0047,
- ["specials"]={ "char", 0x0047, 0x0306 },
- ["unicodeslot"]=0x011E, -- Ğ
- },
- {
- ["adobename"]="gbreve",
- ["category"]="ll",
- ["contextname"]="gbreve",
- ["description"]="LATIN SMALL LETTER G WITH BREVE",
- ["linebreak"]="al",
- ["shcode"]=0x0067,
- ["specials"]={ "char", 0x0067, 0x0306 },
- ["uccode"]=0x011E,
- ["unicodeslot"]=0x011F, -- ğ
- },
- {
- ["adobename"]="Gdotaccent",
- ["category"]="lu",
- ["contextname"]="Gdotaccent",
- ["description"]="LATIN CAPITAL LETTER G WITH DOT ABOVE",
- ["lccode"]=0x0121,
- ["linebreak"]="al",
- ["shcode"]=0x0047,
- ["specials"]={ "char", 0x0047, 0x0307 },
- ["unicodeslot"]=0x0120, -- Ġ
- },
- {
- ["adobename"]="gdotaccent",
- ["category"]="ll",
- ["contextname"]="gdotaccent",
- ["description"]="LATIN SMALL LETTER G WITH DOT ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0067,
- ["specials"]={ "char", 0x0067, 0x0307 },
- ["uccode"]=0x0120,
- ["unicodeslot"]=0x0121, -- ġ
- },
- {
- ["adobename"]="Gcommaaccent",
- ["category"]="lu",
- ["contextname"]="Gcommaaccent",
- ["description"]="LATIN CAPITAL LETTER G WITH CEDILLA",
- ["lccode"]=0x0123,
- ["linebreak"]="al",
- ["shcode"]=0x0047,
- ["specials"]={ "char", 0x0047, 0x0327 },
- ["unicodeslot"]=0x0122, -- Ģ
- },
- {
- ["adobename"]="gcommaaccent",
- ["category"]="ll",
- ["contextname"]="gcommaaccent",
- ["description"]="LATIN SMALL LETTER G WITH CEDILLA",
- ["linebreak"]="al",
- ["shcode"]=0x0067,
- ["specials"]={ "char", 0x0067, 0x0327 },
- ["uccode"]=0x0122,
- ["unicodeslot"]=0x0123, -- ģ
- },
- {
- ["adobename"]="Hcircumflex",
- ["category"]="lu",
- ["contextname"]="Hcircumflex",
- ["description"]="LATIN CAPITAL LETTER H WITH CIRCUMFLEX",
- ["lccode"]=0x0125,
- ["linebreak"]="al",
- ["shcode"]=0x0048,
- ["specials"]={ "char", 0x0048, 0x0302 },
- ["unicodeslot"]=0x0124, -- Ĥ
- },
- {
- ["adobename"]="hcircumflex",
- ["category"]="ll",
- ["contextname"]="hcircumflex",
- ["description"]="LATIN SMALL LETTER H WITH CIRCUMFLEX",
- ["linebreak"]="al",
- ["shcode"]=0x0068,
- ["specials"]={ "char", 0x0068, 0x0302 },
- ["uccode"]=0x0124,
- ["unicodeslot"]=0x0125, -- ĥ
- },
- {
- ["adobename"]="Hbar",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="Hstroke",
- ["description"]="LATIN CAPITAL LETTER H WITH STROKE",
- ["lccode"]=0x0127,
- ["linebreak"]="al",
- ["shcode"]=0x0048,
- ["unicodeslot"]=0x0126, -- Ħ
- },
- {
- ["adobename"]="hbar",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="hstroke",
- ["description"]="LATIN SMALL LETTER H WITH STROKE",
- ["linebreak"]="al",
- ["shcode"]=0x0068,
- ["uccode"]=0x0126,
- ["unicodeslot"]=0x0127, -- ħ
- },
- {
- ["adobename"]="Itilde",
- ["category"]="lu",
- ["contextname"]="Itilde",
- ["description"]="LATIN CAPITAL LETTER I WITH TILDE",
- ["lccode"]=0x0129,
- ["linebreak"]="al",
- ["shcode"]=0x0049,
- ["specials"]={ "char", 0x0049, 0x0303 },
- ["unicodeslot"]=0x0128, -- Ĩ
- },
- {
- ["adobename"]="itilde",
- ["category"]="ll",
- ["contextname"]="itilde",
- ["description"]="LATIN SMALL LETTER I WITH TILDE",
- ["linebreak"]="al",
- ["shcode"]=0x0069,
- ["specials"]={ "char", 0x0069, 0x0303 },
- ["uccode"]=0x0128,
- ["unicodeslot"]=0x0129, -- ĩ
- },
- {
- ["adobename"]="Imacron",
- ["category"]="lu",
- ["contextname"]="Imacron",
- ["description"]="LATIN CAPITAL LETTER I WITH MACRON",
- ["lccode"]=0x012B,
- ["linebreak"]="al",
- ["shcode"]=0x0049,
- ["specials"]={ "char", 0x0049, 0x0304 },
- ["unicodeslot"]=0x012A, -- Ī
- },
- {
- ["adobename"]="imacron",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="imacron",
- ["description"]="LATIN SMALL LETTER I WITH MACRON",
- ["linebreak"]="al",
- ["shcode"]=0x0069,
- ["specials"]={ "char", 0x0069, 0x0304 },
- ["uccode"]=0x012A,
- ["unicodeslot"]=0x012B, -- ī
- },
- {
- ["adobename"]="Ibreve",
- ["category"]="lu",
- ["contextname"]="Ibreve",
- ["description"]="LATIN CAPITAL LETTER I WITH BREVE",
- ["lccode"]=0x012D,
- ["linebreak"]="al",
- ["shcode"]=0x0049,
- ["specials"]={ "char", 0x0049, 0x0306 },
- ["unicodeslot"]=0x012C, -- Ĭ
- },
- {
- ["adobename"]="ibreve",
- ["category"]="ll",
- ["contextname"]="ibreve",
- ["description"]="LATIN SMALL LETTER I WITH BREVE",
- ["linebreak"]="al",
- ["shcode"]=0x0069,
- ["specials"]={ "char", 0x0069, 0x0306 },
- ["uccode"]=0x012C,
- ["unicodeslot"]=0x012D, -- ĭ
- },
- {
- ["adobename"]="Iogonek",
- ["category"]="lu",
- ["contextname"]="Iogonek",
- ["description"]="LATIN CAPITAL LETTER I WITH OGONEK",
- ["lccode"]=0x012F,
- ["linebreak"]="al",
- ["shcode"]=0x0049,
- ["specials"]={ "char", 0x0049, 0x0328 },
- ["unicodeslot"]=0x012E, -- Į
- },
- {
- ["adobename"]="iogonek",
- ["category"]="ll",
- ["contextname"]="iogonek",
- ["description"]="LATIN SMALL LETTER I WITH OGONEK",
- ["linebreak"]="al",
- ["shcode"]=0x0069,
- ["specials"]={ "char", 0x0069, 0x0328 },
- ["uccode"]=0x012E,
- ["unicodeslot"]=0x012F, -- į
- },
- {
- ["adobename"]="Idotaccent",
- ["category"]="lu",
- ["contextname"]="Idotaccent",
- ["description"]="LATIN CAPITAL LETTER I WITH DOT ABOVE",
- ["lccode"]=0x0069,
- ["linebreak"]="al",
- ["shcode"]=0x0049,
- ["specials"]={ "char", 0x0049, 0x0307 },
- ["unicodeslot"]=0x0130, -- İ
- },
- {
- ["adobename"]="dotlessi",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="dotlessi",
- ["description"]="LATIN SMALL LETTER DOTLESS I",
- ["linebreak"]="al",
- ["uccode"]=0x0049,
- ["unicodeslot"]=0x0131, -- ı
- },
- {
- ["adobename"]="IJ",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="IJligature",
- ["description"]="LATIN CAPITAL LIGATURE IJ",
- ["lccode"]=0x0133,
- ["linebreak"]="al",
- ["shcode"]={ 0x0049, 0x004A },
- ["specials"]={ "compat", 0x0049, 0x004A },
- ["unicodeslot"]=0x0132, -- IJ
- },
- {
- ["adobename"]="ij",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="ijligature",
- ["description"]="LATIN SMALL LIGATURE IJ",
- ["linebreak"]="al",
- ["shcode"]={ 0x0069, 0x006A },
- ["specials"]={ "compat", 0x0069, 0x006A },
- ["uccode"]=0x0132,
- ["unicodeslot"]=0x0133, -- ij
- },
- {
- ["adobename"]="Jcircumflex",
- ["category"]="lu",
- ["contextname"]="Jcircumflex",
- ["description"]="LATIN CAPITAL LETTER J WITH CIRCUMFLEX",
- ["lccode"]=0x0135,
- ["linebreak"]="al",
- ["shcode"]=0x004A,
- ["specials"]={ "char", 0x004A, 0x0302 },
- ["unicodeslot"]=0x0134, -- Ĵ
- },
- {
- ["adobename"]="jcircumflex",
- ["category"]="ll",
- ["contextname"]="jcircumflex",
- ["description"]="LATIN SMALL LETTER J WITH CIRCUMFLEX",
- ["linebreak"]="al",
- ["shcode"]=0x006A,
- ["specials"]={ "char", 0x006A, 0x0302 },
- ["uccode"]=0x0134,
- ["unicodeslot"]=0x0135, -- ĵ
- },
- {
- ["adobename"]="Kcommaaccent",
- ["category"]="lu",
- ["contextname"]="Kcommaaccent",
- ["description"]="LATIN CAPITAL LETTER K WITH CEDILLA",
- ["lccode"]=0x0137,
- ["linebreak"]="al",
- ["shcode"]=0x004B,
- ["specials"]={ "char", 0x004B, 0x0327 },
- ["unicodeslot"]=0x0136, -- Ķ
- },
- {
- ["adobename"]="kcommaaccent",
- ["category"]="ll",
- ["contextname"]="kcommaaccent",
- ["description"]="LATIN SMALL LETTER K WITH CEDILLA",
- ["linebreak"]="al",
- ["shcode"]=0x006B,
- ["specials"]={ "char", 0x006B, 0x0327 },
- ["uccode"]=0x0136,
- ["unicodeslot"]=0x0137, -- ķ
- },
- {
- ["adobename"]="kgreenlandic",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="kkra",
- ["description"]="LATIN SMALL LETTER KRA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0138, -- ĸ
- },
- {
- ["adobename"]="Lacute",
- ["category"]="lu",
- ["contextname"]="Lacute",
- ["description"]="LATIN CAPITAL LETTER L WITH ACUTE",
- ["lccode"]=0x013A,
- ["linebreak"]="al",
- ["shcode"]=0x004C,
- ["specials"]={ "char", 0x004C, 0x0301 },
- ["unicodeslot"]=0x0139, -- Ĺ
- },
- {
- ["adobename"]="lacute",
- ["category"]="ll",
- ["contextname"]="lacute",
- ["description"]="LATIN SMALL LETTER L WITH ACUTE",
- ["linebreak"]="al",
- ["shcode"]=0x006C,
- ["specials"]={ "char", 0x006C, 0x0301 },
- ["uccode"]=0x0139,
- ["unicodeslot"]=0x013A, -- ĺ
- },
- {
- ["adobename"]="Lcommaaccent",
- ["category"]="lu",
- ["contextname"]="Lcommaaccent",
- ["description"]="LATIN CAPITAL LETTER L WITH CEDILLA",
- ["lccode"]=0x013C,
- ["linebreak"]="al",
- ["shcode"]=0x004C,
- ["specials"]={ "char", 0x004C, 0x0327 },
- ["unicodeslot"]=0x013B, -- Ļ
- },
- {
- ["adobename"]="lcommaaccent",
- ["category"]="ll",
- ["contextname"]="lcommaaccent",
- ["description"]="LATIN SMALL LETTER L WITH CEDILLA",
- ["linebreak"]="al",
- ["shcode"]=0x006C,
- ["specials"]={ "char", 0x006C, 0x0327 },
- ["uccode"]=0x013B,
- ["unicodeslot"]=0x013C, -- ļ
- },
- {
- ["adobename"]="Lcaron",
- ["category"]="lu",
- ["contextname"]="Lcaron",
- ["description"]="LATIN CAPITAL LETTER L WITH CARON",
- ["lccode"]=0x013E,
- ["linebreak"]="al",
- ["shcode"]=0x004C,
- ["specials"]={ "char", 0x004C, 0x030C },
- ["unicodeslot"]=0x013D, -- Ľ
- },
- {
- ["adobename"]="lcaron",
- ["category"]="ll",
- ["contextname"]="lcaron",
- ["description"]="LATIN SMALL LETTER L WITH CARON",
- ["linebreak"]="al",
- ["shcode"]=0x006C,
- ["specials"]={ "char", 0x006C, 0x030C },
- ["uccode"]=0x013D,
- ["unicodeslot"]=0x013E, -- ľ
- },
- {
- ["adobename"]="Ldot",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="Ldotmiddle",
- ["description"]="LATIN CAPITAL LETTER L WITH MIDDLE DOT",
- ["lccode"]=0x0140,
- ["linebreak"]="al",
- ["shcode"]=0x004C,
- ["specials"]={ "compat", 0x004C, 0x00B7 },
- ["unicodeslot"]=0x013F, -- Ŀ
- },
- {
- ["adobename"]="ldot",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="ldotmiddle",
- ["description"]="LATIN SMALL LETTER L WITH MIDDLE DOT",
- ["linebreak"]="al",
- ["shcode"]=0x006C,
- ["specials"]={ "compat", 0x006C, 0x00B7 },
- ["uccode"]=0x013F,
- ["unicodeslot"]=0x0140, -- ŀ
- },
- {
- ["adobename"]="Lslash",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="Lstroke",
- ["description"]="LATIN CAPITAL LETTER L WITH STROKE",
- ["lccode"]=0x0142,
- ["linebreak"]="al",
- ["shcode"]=0x004C,
- ["unicodeslot"]=0x0141, -- Ł
- },
- {
- ["adobename"]="lslash",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="lstroke",
- ["description"]="LATIN SMALL LETTER L WITH STROKE",
- ["linebreak"]="al",
- ["shcode"]=0x006C,
- ["uccode"]=0x0141,
- ["unicodeslot"]=0x0142, -- ł
- },
- {
- ["adobename"]="Nacute",
- ["category"]="lu",
- ["contextname"]="Nacute",
- ["description"]="LATIN CAPITAL LETTER N WITH ACUTE",
- ["lccode"]=0x0144,
- ["linebreak"]="al",
- ["shcode"]=0x004E,
- ["specials"]={ "char", 0x004E, 0x0301 },
- ["unicodeslot"]=0x0143, -- Ń
- },
- {
- ["adobename"]="nacute",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="nacute",
- ["description"]="LATIN SMALL LETTER N WITH ACUTE",
- ["linebreak"]="al",
- ["shcode"]=0x006E,
- ["specials"]={ "char", 0x006E, 0x0301 },
- ["uccode"]=0x0143,
- ["unicodeslot"]=0x0144, -- ń
- },
- {
- ["adobename"]="Ncommaaccent",
- ["category"]="lu",
- ["contextname"]="Ncommaaccent",
- ["description"]="LATIN CAPITAL LETTER N WITH CEDILLA",
- ["lccode"]=0x0146,
- ["linebreak"]="al",
- ["shcode"]=0x004E,
- ["specials"]={ "char", 0x004E, 0x0327 },
- ["unicodeslot"]=0x0145, -- Ņ
- },
- {
- ["adobename"]="ncommaaccent",
- ["category"]="ll",
- ["contextname"]="ncommaaccent",
- ["description"]="LATIN SMALL LETTER N WITH CEDILLA",
- ["linebreak"]="al",
- ["shcode"]=0x006E,
- ["specials"]={ "char", 0x006E, 0x0327 },
- ["uccode"]=0x0145,
- ["unicodeslot"]=0x0146, -- ņ
- },
- {
- ["adobename"]="Ncaron",
- ["category"]="lu",
- ["contextname"]="Ncaron",
- ["description"]="LATIN CAPITAL LETTER N WITH CARON",
- ["lccode"]=0x0148,
- ["linebreak"]="al",
- ["shcode"]=0x004E,
- ["specials"]={ "char", 0x004E, 0x030C },
- ["unicodeslot"]=0x0147, -- Ň
- },
- {
- ["adobename"]="ncaron",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="ncaron",
- ["description"]="LATIN SMALL LETTER N WITH CARON",
- ["linebreak"]="al",
- ["shcode"]=0x006E,
- ["specials"]={ "char", 0x006E, 0x030C },
- ["uccode"]=0x0147,
- ["unicodeslot"]=0x0148, -- ň
- },
- {
- ["adobename"]="napostrophe",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="napostrophe",
- ["description"]="LATIN SMALL LETTER N PRECEDED BY APOSTROPHE",
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x02BC, 0x006E },
- ["unicodeslot"]=0x0149, -- ʼn
- },
- {
- ["adobename"]="Eng",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="Neng",
- ["description"]="LATIN CAPITAL LETTER ENG",
- ["lccode"]=0x014B,
- ["linebreak"]="al",
- ["unicodeslot"]=0x014A, -- Ŋ
- },
- {
- ["adobename"]="eng",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="neng",
- ["description"]="LATIN SMALL LETTER ENG",
- ["linebreak"]="al",
- ["uccode"]=0x014A,
- ["unicodeslot"]=0x014B, -- ŋ
- },
- {
- ["adobename"]="Omacron",
- ["category"]="lu",
- ["contextname"]="Omacron",
- ["description"]="LATIN CAPITAL LETTER O WITH MACRON",
- ["lccode"]=0x014D,
- ["linebreak"]="al",
- ["shcode"]=0x004F,
- ["specials"]={ "char", 0x004F, 0x0304 },
- ["unicodeslot"]=0x014C, -- Ō
- },
- {
- ["adobename"]="omacron",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="omacron",
- ["description"]="LATIN SMALL LETTER O WITH MACRON",
- ["linebreak"]="al",
- ["shcode"]=0x006F,
- ["specials"]={ "char", 0x006F, 0x0304 },
- ["uccode"]=0x014C,
- ["unicodeslot"]=0x014D, -- ō
- },
- {
- ["adobename"]="Obreve",
- ["category"]="lu",
- ["contextname"]="Obreve",
- ["description"]="LATIN CAPITAL LETTER O WITH BREVE",
- ["lccode"]=0x014F,
- ["linebreak"]="al",
- ["shcode"]=0x004F,
- ["specials"]={ "char", 0x004F, 0x0306 },
- ["unicodeslot"]=0x014E, -- Ŏ
- },
- {
- ["adobename"]="obreve",
- ["category"]="ll",
- ["contextname"]="obreve",
- ["description"]="LATIN SMALL LETTER O WITH BREVE",
- ["linebreak"]="al",
- ["shcode"]=0x006F,
- ["specials"]={ "char", 0x006F, 0x0306 },
- ["uccode"]=0x014E,
- ["unicodeslot"]=0x014F, -- ŏ
- },
- {
- ["adobename"]="Ohungarumlaut",
- ["category"]="lu",
- ["contextname"]="Ohungarumlaut",
- ["description"]="LATIN CAPITAL LETTER O WITH DOUBLE ACUTE",
- ["lccode"]=0x0151,
- ["linebreak"]="al",
- ["shcode"]=0x004F,
- ["specials"]={ "char", 0x004F, 0x030B },
- ["unicodeslot"]=0x0150, -- Ő
- },
- {
- ["adobename"]="ohungarumlaut",
- ["category"]="ll",
- ["contextname"]="ohungarumlaut",
- ["description"]="LATIN SMALL LETTER O WITH DOUBLE ACUTE",
- ["linebreak"]="al",
- ["shcode"]=0x006F,
- ["specials"]={ "char", 0x006F, 0x030B },
- ["uccode"]=0x0150,
- ["unicodeslot"]=0x0151, -- ő
- },
- {
- ["adobename"]="OE",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="OEligature",
- ["description"]="LATIN CAPITAL LIGATURE OE",
- ["lccode"]=0x0153,
- ["linebreak"]="al",
- ["shcode"]={ 0x004F, 0x0045 },
- ["unicodeslot"]=0x0152, -- Œ
- },
- {
- ["adobename"]="oe",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="oeligature",
- ["description"]="LATIN SMALL LIGATURE OE",
- ["linebreak"]="al",
- ["shcode"]={ 0x006F, 0x0065 },
- ["uccode"]=0x0152,
- ["unicodeslot"]=0x0153, -- œ
- },
- {
- ["adobename"]="Racute",
- ["category"]="lu",
- ["contextname"]="Racute",
- ["description"]="LATIN CAPITAL LETTER R WITH ACUTE",
- ["lccode"]=0x0155,
- ["linebreak"]="al",
- ["shcode"]=0x0052,
- ["specials"]={ "char", 0x0052, 0x0301 },
- ["unicodeslot"]=0x0154, -- Ŕ
- },
- {
- ["adobename"]="racute",
- ["category"]="ll",
- ["contextname"]="racute",
- ["description"]="LATIN SMALL LETTER R WITH ACUTE",
- ["linebreak"]="al",
- ["shcode"]=0x0072,
- ["specials"]={ "char", 0x0072, 0x0301 },
- ["uccode"]=0x0154,
- ["unicodeslot"]=0x0155, -- ŕ
- },
- {
- ["adobename"]="Rcommaaccent",
- ["category"]="lu",
- ["contextname"]="Rcommaaccent",
- ["description"]="LATIN CAPITAL LETTER R WITH CEDILLA",
- ["lccode"]=0x0157,
- ["linebreak"]="al",
- ["shcode"]=0x0052,
- ["specials"]={ "char", 0x0052, 0x0327 },
- ["unicodeslot"]=0x0156, -- Ŗ
- },
- {
- ["adobename"]="rcommaaccent",
- ["category"]="ll",
- ["contextname"]="rcommaaccent",
- ["description"]="LATIN SMALL LETTER R WITH CEDILLA",
- ["linebreak"]="al",
- ["shcode"]=0x0072,
- ["specials"]={ "char", 0x0072, 0x0327 },
- ["uccode"]=0x0156,
- ["unicodeslot"]=0x0157, -- ŗ
- },
- {
- ["adobename"]="Rcaron",
- ["category"]="lu",
- ["contextname"]="Rcaron",
- ["description"]="LATIN CAPITAL LETTER R WITH CARON",
- ["lccode"]=0x0159,
- ["linebreak"]="al",
- ["shcode"]=0x0052,
- ["specials"]={ "char", 0x0052, 0x030C },
- ["unicodeslot"]=0x0158, -- Ř
- },
- {
- ["adobename"]="rcaron",
- ["category"]="ll",
- ["contextname"]="rcaron",
- ["description"]="LATIN SMALL LETTER R WITH CARON",
- ["linebreak"]="al",
- ["shcode"]=0x0072,
- ["specials"]={ "char", 0x0072, 0x030C },
- ["uccode"]=0x0158,
- ["unicodeslot"]=0x0159, -- ř
- },
- {
- ["adobename"]="Sacute",
- ["category"]="lu",
- ["contextname"]="Sacute",
- ["description"]="LATIN CAPITAL LETTER S WITH ACUTE",
- ["lccode"]=0x015B,
- ["linebreak"]="al",
- ["shcode"]=0x0053,
- ["specials"]={ "char", 0x0053, 0x0301 },
- ["unicodeslot"]=0x015A, -- Ś
- },
- {
- ["adobename"]="sacute",
- ["category"]="ll",
- ["contextname"]="sacute",
- ["description"]="LATIN SMALL LETTER S WITH ACUTE",
- ["linebreak"]="al",
- ["shcode"]=0x0073,
- ["specials"]={ "char", 0x0073, 0x0301 },
- ["uccode"]=0x015A,
- ["unicodeslot"]=0x015B, -- ś
- },
- {
- ["adobename"]="Scircumflex",
- ["category"]="lu",
- ["contextname"]="Scircumflex",
- ["description"]="LATIN CAPITAL LETTER S WITH CIRCUMFLEX",
- ["lccode"]=0x015D,
- ["linebreak"]="al",
- ["shcode"]=0x0053,
- ["specials"]={ "char", 0x0053, 0x0302 },
- ["unicodeslot"]=0x015C, -- Ŝ
- },
- {
- ["adobename"]="scircumflex",
- ["category"]="ll",
- ["contextname"]="scircumflex",
- ["description"]="LATIN SMALL LETTER S WITH CIRCUMFLEX",
- ["linebreak"]="al",
- ["shcode"]=0x0073,
- ["specials"]={ "char", 0x0073, 0x0302 },
- ["uccode"]=0x015C,
- ["unicodeslot"]=0x015D, -- ŝ
- },
- {
- ["adobename"]="Scedilla",
- ["category"]="lu",
- ["contextname"]="Scedilla",
- ["description"]="LATIN CAPITAL LETTER S WITH CEDILLA",
- ["lccode"]=0x015F,
- ["linebreak"]="al",
- ["shcode"]=0x0053,
- ["specials"]={ "char", 0x0053, 0x0327 },
- ["unicodeslot"]=0x015E, -- Ş
- },
- {
- ["adobename"]="scedilla",
- ["category"]="ll",
- ["contextname"]="scedilla",
- ["description"]="LATIN SMALL LETTER S WITH CEDILLA",
- ["linebreak"]="al",
- ["shcode"]=0x0073,
- ["specials"]={ "char", 0x0073, 0x0327 },
- ["uccode"]=0x015E,
- ["unicodeslot"]=0x015F, -- ş
- },
- {
- ["adobename"]="Scaron",
- ["category"]="lu",
- ["contextname"]="Scaron",
- ["description"]="LATIN CAPITAL LETTER S WITH CARON",
- ["lccode"]=0x0161,
- ["linebreak"]="al",
- ["shcode"]=0x0053,
- ["specials"]={ "char", 0x0053, 0x030C },
- ["unicodeslot"]=0x0160, -- Š
- },
- {
- ["adobename"]="scaron",
- ["category"]="ll",
- ["contextname"]="scaron",
- ["description"]="LATIN SMALL LETTER S WITH CARON",
- ["linebreak"]="al",
- ["shcode"]=0x0073,
- ["specials"]={ "char", 0x0073, 0x030C },
- ["uccode"]=0x0160,
- ["unicodeslot"]=0x0161, -- š
- },
- {
- ["adobename"]="Tcommaaccent",
- ["category"]="lu",
- ["contextname"]="Tcedilla",
- ["description"]="LATIN CAPITAL LETTER T WITH CEDILLA",
- ["lccode"]=0x0163,
- ["linebreak"]="al",
- ["shcode"]=0x0054,
- ["specials"]={ "char", 0x0054, 0x0327 },
- ["unicodeslot"]=0x0162, -- Ţ
- },
- {
- ["adobename"]="tcommaaccent",
- ["category"]="ll",
- ["contextname"]="tcedilla",
- ["description"]="LATIN SMALL LETTER T WITH CEDILLA",
- ["linebreak"]="al",
- ["shcode"]=0x0074,
- ["specials"]={ "char", 0x0074, 0x0327 },
- ["uccode"]=0x0162,
- ["unicodeslot"]=0x0163, -- ţ
- },
- {
- ["adobename"]="Tcaron",
- ["category"]="lu",
- ["contextname"]="Tcaron",
- ["description"]="LATIN CAPITAL LETTER T WITH CARON",
- ["lccode"]=0x0165,
- ["linebreak"]="al",
- ["shcode"]=0x0054,
- ["specials"]={ "char", 0x0054, 0x030C },
- ["unicodeslot"]=0x0164, -- Ť
- },
- {
- ["adobename"]="tcaron",
- ["category"]="ll",
- ["contextname"]="tcaron",
- ["description"]="LATIN SMALL LETTER T WITH CARON",
- ["linebreak"]="al",
- ["shcode"]=0x0074,
- ["specials"]={ "char", 0x0074, 0x030C },
- ["uccode"]=0x0164,
- ["unicodeslot"]=0x0165, -- ť
- },
- {
- ["adobename"]="Tbar",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="Tstroke",
- ["description"]="LATIN CAPITAL LETTER T WITH STROKE",
- ["lccode"]=0x0167,
- ["linebreak"]="al",
- ["shcode"]=0x0054,
- ["unicodeslot"]=0x0166, -- Ŧ
- },
- {
- ["adobename"]="tbar",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="tstroke",
- ["description"]="LATIN SMALL LETTER T WITH STROKE",
- ["linebreak"]="al",
- ["shcode"]=0x0074,
- ["uccode"]=0x0166,
- ["unicodeslot"]=0x0167, -- ŧ
- },
- {
- ["adobename"]="Utilde",
- ["category"]="lu",
- ["contextname"]="Utilde",
- ["description"]="LATIN CAPITAL LETTER U WITH TILDE",
- ["lccode"]=0x0169,
- ["linebreak"]="al",
- ["shcode"]=0x0055,
- ["specials"]={ "char", 0x0055, 0x0303 },
- ["unicodeslot"]=0x0168, -- Ũ
- },
- {
- ["adobename"]="utilde",
- ["category"]="ll",
- ["contextname"]="utilde",
- ["description"]="LATIN SMALL LETTER U WITH TILDE",
- ["linebreak"]="al",
- ["shcode"]=0x0075,
- ["specials"]={ "char", 0x0075, 0x0303 },
- ["uccode"]=0x0168,
- ["unicodeslot"]=0x0169, -- ũ
- },
- {
- ["adobename"]="Umacron",
- ["category"]="lu",
- ["contextname"]="Umacron",
- ["description"]="LATIN CAPITAL LETTER U WITH MACRON",
- ["lccode"]=0x016B,
- ["linebreak"]="al",
- ["shcode"]=0x0055,
- ["specials"]={ "char", 0x0055, 0x0304 },
- ["unicodeslot"]=0x016A, -- Ū
- },
- {
- ["adobename"]="umacron",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="umacron",
- ["description"]="LATIN SMALL LETTER U WITH MACRON",
- ["linebreak"]="al",
- ["shcode"]=0x0075,
- ["specials"]={ "char", 0x0075, 0x0304 },
- ["uccode"]=0x016A,
- ["unicodeslot"]=0x016B, -- ū
- },
- {
- ["adobename"]="Ubreve",
- ["category"]="lu",
- ["contextname"]="Ubreve",
- ["description"]="LATIN CAPITAL LETTER U WITH BREVE",
- ["lccode"]=0x016D,
- ["linebreak"]="al",
- ["shcode"]=0x0055,
- ["specials"]={ "char", 0x0055, 0x0306 },
- ["unicodeslot"]=0x016C, -- Ŭ
- },
- {
- ["adobename"]="ubreve",
- ["category"]="ll",
- ["contextname"]="ubreve",
- ["description"]="LATIN SMALL LETTER U WITH BREVE",
- ["linebreak"]="al",
- ["shcode"]=0x0075,
- ["specials"]={ "char", 0x0075, 0x0306 },
- ["uccode"]=0x016C,
- ["unicodeslot"]=0x016D, -- ŭ
- },
- {
- ["adobename"]="Uring",
- ["category"]="lu",
- ["contextname"]="Uring",
- ["description"]="LATIN CAPITAL LETTER U WITH RING ABOVE",
- ["lccode"]=0x016F,
- ["linebreak"]="al",
- ["shcode"]=0x0055,
- ["specials"]={ "char", 0x0055, 0x030A },
- ["unicodeslot"]=0x016E, -- Ů
- },
- {
- ["adobename"]="uring",
- ["category"]="ll",
- ["contextname"]="uring",
- ["description"]="LATIN SMALL LETTER U WITH RING ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0075,
- ["specials"]={ "char", 0x0075, 0x030A },
- ["uccode"]=0x016E,
- ["unicodeslot"]=0x016F, -- ů
- },
- {
- ["adobename"]="Uhungarumlaut",
- ["category"]="lu",
- ["contextname"]="Uhungarumlaut",
- ["description"]="LATIN CAPITAL LETTER U WITH DOUBLE ACUTE",
- ["lccode"]=0x0171,
- ["linebreak"]="al",
- ["shcode"]=0x0055,
- ["specials"]={ "char", 0x0055, 0x030B },
- ["unicodeslot"]=0x0170, -- Ű
- },
- {
- ["adobename"]="uhungarumlaut",
- ["category"]="ll",
- ["contextname"]="uhungarumlaut",
- ["description"]="LATIN SMALL LETTER U WITH DOUBLE ACUTE",
- ["linebreak"]="al",
- ["shcode"]=0x0075,
- ["specials"]={ "char", 0x0075, 0x030B },
- ["uccode"]=0x0170,
- ["unicodeslot"]=0x0171, -- ű
- },
- {
- ["adobename"]="Uogonek",
- ["category"]="lu",
- ["contextname"]="Uogonek",
- ["description"]="LATIN CAPITAL LETTER U WITH OGONEK",
- ["lccode"]=0x0173,
- ["linebreak"]="al",
- ["shcode"]=0x0055,
- ["specials"]={ "char", 0x0055, 0x0328 },
- ["unicodeslot"]=0x0172, -- Ų
- },
- {
- ["adobename"]="uogonek",
- ["category"]="ll",
- ["contextname"]="uogonek",
- ["description"]="LATIN SMALL LETTER U WITH OGONEK",
- ["linebreak"]="al",
- ["shcode"]=0x0075,
- ["specials"]={ "char", 0x0075, 0x0328 },
- ["uccode"]=0x0172,
- ["unicodeslot"]=0x0173, -- ų
- },
- {
- ["adobename"]="Wcircumflex",
- ["category"]="lu",
- ["contextname"]="Wcircumflex",
- ["description"]="LATIN CAPITAL LETTER W WITH CIRCUMFLEX",
- ["lccode"]=0x0175,
- ["linebreak"]="al",
- ["shcode"]=0x0057,
- ["specials"]={ "char", 0x0057, 0x0302 },
- ["unicodeslot"]=0x0174, -- Ŵ
- },
- {
- ["adobename"]="wcircumflex",
- ["category"]="ll",
- ["contextname"]="wcircumflex",
- ["description"]="LATIN SMALL LETTER W WITH CIRCUMFLEX",
- ["linebreak"]="al",
- ["shcode"]=0x0077,
- ["specials"]={ "char", 0x0077, 0x0302 },
- ["uccode"]=0x0174,
- ["unicodeslot"]=0x0175, -- ŵ
- },
- {
- ["adobename"]="Ycircumflex",
- ["category"]="lu",
- ["contextname"]="Ycircumflex",
- ["description"]="LATIN CAPITAL LETTER Y WITH CIRCUMFLEX",
- ["lccode"]=0x0177,
- ["linebreak"]="al",
- ["shcode"]=0x0059,
- ["specials"]={ "char", 0x0059, 0x0302 },
- ["unicodeslot"]=0x0176, -- Ŷ
- },
- {
- ["adobename"]="ycircumflex",
- ["category"]="ll",
- ["contextname"]="ycircumflex",
- ["description"]="LATIN SMALL LETTER Y WITH CIRCUMFLEX",
- ["linebreak"]="al",
- ["shcode"]=0x0079,
- ["specials"]={ "char", 0x0079, 0x0302 },
- ["uccode"]=0x0176,
- ["unicodeslot"]=0x0177, -- ŷ
- },
- {
- ["adobename"]="Ydieresis",
- ["category"]="lu",
- ["contextname"]="Ydiaeresis",
- ["description"]="LATIN CAPITAL LETTER Y WITH DIAERESIS",
- ["lccode"]=0x00FF,
- ["linebreak"]="al",
- ["shcode"]=0x0059,
- ["specials"]={ "char", 0x0059, 0x0308 },
- ["unicodeslot"]=0x0178, -- Ÿ
- },
- {
- ["adobename"]="Zacute",
- ["category"]="lu",
- ["contextname"]="Zacute",
- ["description"]="LATIN CAPITAL LETTER Z WITH ACUTE",
- ["lccode"]=0x017A,
- ["linebreak"]="al",
- ["shcode"]=0x005A,
- ["specials"]={ "char", 0x005A, 0x0301 },
- ["unicodeslot"]=0x0179, -- Ź
- },
- {
- ["adobename"]="zacute",
- ["category"]="ll",
- ["contextname"]="zacute",
- ["description"]="LATIN SMALL LETTER Z WITH ACUTE",
- ["linebreak"]="al",
- ["shcode"]=0x007A,
- ["specials"]={ "char", 0x007A, 0x0301 },
- ["uccode"]=0x0179,
- ["unicodeslot"]=0x017A, -- ź
- },
- {
- ["adobename"]="Zdotaccent",
- ["category"]="lu",
- ["contextname"]="Zdotaccent",
- ["description"]="LATIN CAPITAL LETTER Z WITH DOT ABOVE",
- ["lccode"]=0x017C,
- ["linebreak"]="al",
- ["shcode"]=0x005A,
- ["specials"]={ "char", 0x005A, 0x0307 },
- ["unicodeslot"]=0x017B, -- Ż
- },
- {
- ["adobename"]="zdotaccent",
- ["category"]="ll",
- ["contextname"]="zdotaccent",
- ["description"]="LATIN SMALL LETTER Z WITH DOT ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x007A,
- ["specials"]={ "char", 0x007A, 0x0307 },
- ["uccode"]=0x017B,
- ["unicodeslot"]=0x017C, -- ż
- },
- {
- ["adobename"]="Zcaron",
- ["category"]="lu",
- ["contextname"]="Zcaron",
- ["description"]="LATIN CAPITAL LETTER Z WITH CARON",
- ["lccode"]=0x017E,
- ["linebreak"]="al",
- ["shcode"]=0x005A,
- ["specials"]={ "char", 0x005A, 0x030C },
- ["unicodeslot"]=0x017D, -- Ž
- },
- {
- ["adobename"]="zcaron",
- ["category"]="ll",
- ["contextname"]="zcaron",
- ["description"]="LATIN SMALL LETTER Z WITH CARON",
- ["linebreak"]="al",
- ["shcode"]=0x007A,
- ["specials"]={ "char", 0x007A, 0x030C },
- ["uccode"]=0x017D,
- ["unicodeslot"]=0x017E, -- ž
- },
- {
- ["adobename"]="longs",
- ["category"]="ll",
- ["contextname"]="slong",
- ["description"]="LATIN SMALL LETTER LONG S",
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x0073 },
- ["uccode"]=0x0053,
- ["unicodeslot"]=0x017F, -- ſ
- },
- {
- ["category"]="ll",
- ["contextname"]="bstroke",
- ["description"]="LATIN SMALL LETTER B WITH STROKE",
- ["linebreak"]="al",
- ["shcode"]=0x0062,
- ["uccode"]=0x0243,
- ["unicodeslot"]=0x0180, -- ƀ
- },
- {
- ["category"]="lu",
- ["contextname"]="Bhook",
- ["description"]="LATIN CAPITAL LETTER B WITH HOOK",
- ["lccode"]=0x0253,
- ["linebreak"]="al",
- ["shcode"]=0x0042,
- ["unicodeslot"]=0x0181, -- Ɓ
- },
- {
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER B WITH TOPBAR",
- ["lccode"]=0x0183,
- ["linebreak"]="al",
- ["shcode"]=0x0042,
- ["unicodeslot"]=0x0182, -- Ƃ
- },
- {
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER B WITH TOPBAR",
- ["linebreak"]="al",
- ["shcode"]=0x0062,
- ["uccode"]=0x0182,
- ["unicodeslot"]=0x0183, -- ƃ
- },
- {
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER TONE SIX",
- ["lccode"]=0x0185,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0184, -- Ƅ
- },
- {
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER TONE SIX",
- ["linebreak"]="al",
- ["uccode"]=0x0184,
- ["unicodeslot"]=0x0185, -- ƅ
- },
- {
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER OPEN O",
- ["lccode"]=0x0254,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0186, -- Ɔ
- },
- {
- ["category"]="lu",
- ["contextname"]="Chook",
- ["description"]="LATIN CAPITAL LETTER C WITH HOOK",
- ["lccode"]=0x0188,
- ["linebreak"]="al",
- ["shcode"]=0x0043,
- ["unicodeslot"]=0x0187, -- Ƈ
- },
- {
- ["category"]="ll",
- ["contextname"]="chook",
- ["description"]="LATIN SMALL LETTER C WITH HOOK",
- ["linebreak"]="al",
- ["shcode"]=0x0063,
- ["uccode"]=0x0187,
- ["unicodeslot"]=0x0188, -- ƈ
- },
- {
- ["category"]="lu",
- ["contextname"]="Dafrican",
- ["description"]="LATIN CAPITAL LETTER AFRICAN D",
- ["lccode"]=0x0256,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0189, -- Ɖ
- },
- {
- ["category"]="lu",
- ["contextname"]="Dhook",
- ["description"]="LATIN CAPITAL LETTER D WITH HOOK",
- ["lccode"]=0x0257,
- ["linebreak"]="al",
- ["shcode"]=0x0044,
- ["unicodeslot"]=0x018A, -- Ɗ
- },
- {
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER D WITH TOPBAR",
- ["lccode"]=0x018C,
- ["linebreak"]="al",
- ["shcode"]=0x0044,
- ["unicodeslot"]=0x018B, -- Ƌ
- },
- {
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER D WITH TOPBAR",
- ["linebreak"]="al",
- ["shcode"]=0x0064,
- ["uccode"]=0x018B,
- ["unicodeslot"]=0x018C, -- ƌ
- },
- {
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER TURNED DELTA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x018D, -- ƍ
- },
- {
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER REVERSED E",
- ["lccode"]=0x01DD,
- ["linebreak"]="al",
- ["unicodeslot"]=0x018E, -- Ǝ
- },
- {
- ["category"]="lu",
- ["contextname"]="Schwa",
- ["description"]="LATIN CAPITAL LETTER SCHWA",
- ["lccode"]=0x0259,
- ["linebreak"]="al",
- ["unicodeslot"]=0x018F, -- Ə
- },
- {
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER OPEN E",
- ["lccode"]=0x025B,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0190, -- Ɛ
- },
- {
- ["category"]="lu",
- ["contextname"]="Fhook",
- ["description"]="LATIN CAPITAL LETTER F WITH HOOK",
- ["lccode"]=0x0192,
- ["linebreak"]="al",
- ["shcode"]=0x0046,
- ["unicodeslot"]=0x0191, -- Ƒ
- },
- {
- ["adobename"]="florin",
- ["category"]="ll",
- ["contextname"]="fhook",
- ["description"]="LATIN SMALL LETTER F WITH HOOK",
- ["linebreak"]="al",
- ["shcode"]=0x0066,
- ["uccode"]=0x0191,
- ["unicodeslot"]=0x0192, -- ƒ
- },
- {
- ["category"]="lu",
- ["contextname"]="Ghook",
- ["description"]="LATIN CAPITAL LETTER G WITH HOOK",
- ["lccode"]=0x0260,
- ["linebreak"]="al",
- ["shcode"]=0x0047,
- ["unicodeslot"]=0x0193, -- Ɠ
- },
- {
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER GAMMA",
- ["lccode"]=0x0263,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0194, -- Ɣ
- },
- {
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER HV",
- ["linebreak"]="al",
- ["uccode"]=0x01F6,
- ["unicodeslot"]=0x0195, -- ƕ
- },
- {
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER IOTA",
- ["lccode"]=0x0269,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0196, -- Ɩ
- },
- {
- ["category"]="lu",
- ["contextname"]="Istroke",
- ["description"]="LATIN CAPITAL LETTER I WITH STROKE",
- ["lccode"]=0x0268,
- ["linebreak"]="al",
- ["shcode"]=0x0049,
- ["unicodeslot"]=0x0197, -- Ɨ
- },
- {
- ["category"]="lu",
- ["contextname"]="Khook",
- ["description"]="LATIN CAPITAL LETTER K WITH HOOK",
- ["lccode"]=0x0199,
- ["linebreak"]="al",
- ["shcode"]=0x004B,
- ["unicodeslot"]=0x0198, -- Ƙ
- },
- {
- ["category"]="ll",
- ["contextname"]="khook",
- ["description"]="LATIN SMALL LETTER K WITH HOOK",
- ["linebreak"]="al",
- ["shcode"]=0x006B,
- ["uccode"]=0x0198,
- ["unicodeslot"]=0x0199, -- ƙ
- },
- {
- ["category"]="ll",
- ["contextname"]="lbar",
- ["description"]="LATIN SMALL LETTER L WITH BAR",
- ["linebreak"]="al",
- ["shcode"]=0x006C,
- ["uccode"]=0x023D,
- ["unicodeslot"]=0x019A, -- ƚ
- },
- {
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER LAMBDA WITH STROKE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x019B, -- ƛ
- },
- {
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER TURNED M",
- ["lccode"]=0x026F,
- ["linebreak"]="al",
- ["unicodeslot"]=0x019C, -- Ɯ
- },
- {
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER N WITH LEFT HOOK",
- ["lccode"]=0x0272,
- ["linebreak"]="al",
- ["shcode"]=0x004E,
- ["unicodeslot"]=0x019D, -- Ɲ
- },
- {
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER N WITH LONG RIGHT LEG",
- ["linebreak"]="al",
- ["shcode"]=0x006E,
- ["uccode"]=0x0220,
- ["unicodeslot"]=0x019E, -- ƞ
- },
- {
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER O WITH MIDDLE TILDE",
- ["lccode"]=0x0275,
- ["linebreak"]="al",
- ["shcode"]=0x004F,
- ["unicodeslot"]=0x019F, -- Ɵ
- },
- {
- ["adobename"]="Ohorn",
- ["category"]="lu",
- ["contextname"]="Ohorn",
- ["description"]="LATIN CAPITAL LETTER O WITH HORN",
- ["lccode"]=0x01A1,
- ["linebreak"]="al",
- ["shcode"]=0x004F,
- ["specials"]={ "char", 0x004F, 0x031B },
- ["unicodeslot"]=0x01A0, -- Ơ
- },
- {
- ["adobename"]="ohorn",
- ["category"]="ll",
- ["contextname"]="ohorn",
- ["description"]="LATIN SMALL LETTER O WITH HORN",
- ["linebreak"]="al",
- ["shcode"]=0x006F,
- ["specials"]={ "char", 0x006F, 0x031B },
- ["uccode"]=0x01A0,
- ["unicodeslot"]=0x01A1, -- ơ
- },
- {
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER OI",
- ["lccode"]=0x01A3,
- ["linebreak"]="al",
- ["unicodeslot"]=0x01A2, -- Ƣ
- },
- {
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER OI",
- ["linebreak"]="al",
- ["uccode"]=0x01A2,
- ["unicodeslot"]=0x01A3, -- ƣ
- },
- {
- ["category"]="lu",
- ["contextname"]="Phook",
- ["description"]="LATIN CAPITAL LETTER P WITH HOOK",
- ["lccode"]=0x01A5,
- ["linebreak"]="al",
- ["shcode"]=0x0050,
- ["unicodeslot"]=0x01A4, -- Ƥ
- },
- {
- ["category"]="ll",
- ["contextname"]="phook",
- ["description"]="LATIN SMALL LETTER P WITH HOOK",
- ["linebreak"]="al",
- ["shcode"]=0x0070,
- ["uccode"]=0x01A4,
- ["unicodeslot"]=0x01A5, -- ƥ
- },
- {
- ["category"]="lu",
- ["description"]="LATIN LETTER YR",
- ["lccode"]=0x0280,
- ["linebreak"]="al",
- ["unicodeslot"]=0x01A6, -- Ʀ
- },
- {
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER TONE TWO",
- ["lccode"]=0x01A8,
- ["linebreak"]="al",
- ["unicodeslot"]=0x01A7, -- Ƨ
- },
- {
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER TONE TWO",
- ["linebreak"]="al",
- ["uccode"]=0x01A7,
- ["unicodeslot"]=0x01A8, -- ƨ
- },
- {
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER ESH",
- ["lccode"]=0x0283,
- ["linebreak"]="al",
- ["unicodeslot"]=0x01A9, -- Ʃ
- },
- {
- ["category"]="ll",
- ["description"]="LATIN LETTER REVERSED ESH LOOP",
- ["linebreak"]="al",
- ["unicodeslot"]=0x01AA, -- ƪ
- },
- {
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER T WITH PALATAL HOOK",
- ["linebreak"]="al",
- ["shcode"]=0x0074,
- ["unicodeslot"]=0x01AB, -- ƫ
- },
- {
- ["category"]="lu",
- ["contextname"]="Thook",
- ["description"]="LATIN CAPITAL LETTER T WITH HOOK",
- ["lccode"]=0x01AD,
- ["linebreak"]="al",
- ["shcode"]=0x0054,
- ["unicodeslot"]=0x01AC, -- Ƭ
- },
- {
- ["category"]="ll",
- ["contextname"]="thook",
- ["description"]="LATIN SMALL LETTER T WITH HOOK",
- ["linebreak"]="al",
- ["shcode"]=0x0074,
- ["uccode"]=0x01AC,
- ["unicodeslot"]=0x01AD, -- ƭ
- },
- {
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER T WITH RETROFLEX HOOK",
- ["lccode"]=0x0288,
- ["linebreak"]="al",
- ["shcode"]=0x0054,
- ["unicodeslot"]=0x01AE, -- Ʈ
- },
- {
- ["adobename"]="Uhorn",
- ["category"]="lu",
- ["contextname"]="Uhorn",
- ["description"]="LATIN CAPITAL LETTER U WITH HORN",
- ["lccode"]=0x01B0,
- ["linebreak"]="al",
- ["shcode"]=0x0055,
- ["specials"]={ "char", 0x0055, 0x031B },
- ["unicodeslot"]=0x01AF, -- Ư
- },
- {
- ["adobename"]="uhorn",
- ["category"]="ll",
- ["contextname"]="uhorn",
- ["description"]="LATIN SMALL LETTER U WITH HORN",
- ["linebreak"]="al",
- ["shcode"]=0x0075,
- ["specials"]={ "char", 0x0075, 0x031B },
- ["uccode"]=0x01AF,
- ["unicodeslot"]=0x01B0, -- ư
- },
- {
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER UPSILON",
- ["lccode"]=0x028A,
- ["linebreak"]="al",
- ["unicodeslot"]=0x01B1, -- Ʊ
+ category="cc",
+ description="NULL",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x0000,
},
{
- ["category"]="lu",
- ["contextname"]="Uhook",
- ["description"]="LATIN CAPITAL LETTER V WITH HOOK",
- ["lccode"]=0x028B,
- ["linebreak"]="al",
- ["shcode"]=0x0056,
- ["unicodeslot"]=0x01B2, -- Ʋ
+ category="cc",
+ description="START OF HEADING",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x0001,
},
{
- ["category"]="lu",
- ["contextname"]="Yhook",
- ["description"]="LATIN CAPITAL LETTER Y WITH HOOK",
- ["lccode"]=0x01B4,
- ["linebreak"]="al",
- ["shcode"]=0x0059,
- ["unicodeslot"]=0x01B3, -- Ƴ
+ category="cc",
+ description="START OF TEXT",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x0002,
},
{
- ["category"]="ll",
- ["contextname"]="yhook",
- ["description"]="LATIN SMALL LETTER Y WITH HOOK",
- ["linebreak"]="al",
- ["shcode"]=0x0079,
- ["uccode"]=0x01B3,
- ["unicodeslot"]=0x01B4, -- ƴ
+ category="cc",
+ description="END OF TEXT",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x0003,
},
{
- ["category"]="lu",
- ["contextname"]="Zstroke",
- ["description"]="LATIN CAPITAL LETTER Z WITH STROKE",
- ["lccode"]=0x01B6,
- ["linebreak"]="al",
- ["shcode"]=0x005A,
- ["unicodeslot"]=0x01B5, -- Ƶ
+ category="cc",
+ description="END OF TRANSMISSION",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x0004,
},
{
- ["category"]="ll",
- ["contextname"]="zstroke",
- ["description"]="LATIN SMALL LETTER Z WITH STROKE",
- ["linebreak"]="al",
- ["shcode"]=0x007A,
- ["uccode"]=0x01B5,
- ["unicodeslot"]=0x01B6, -- ƶ
+ category="cc",
+ description="ENQUIRY",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x0005,
},
{
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER EZH",
- ["lccode"]=0x0292,
- ["linebreak"]="al",
- ["unicodeslot"]=0x01B7, -- Ʒ
+ category="cc",
+ description="ACKNOWLEDGE",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x0006,
},
{
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER EZH REVERSED",
- ["lccode"]=0x01B9,
- ["linebreak"]="al",
- ["unicodeslot"]=0x01B8, -- Ƹ
+ category="cc",
+ description="BELL",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x0007,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER EZH REVERSED",
- ["linebreak"]="al",
- ["uccode"]=0x01B8,
- ["unicodeslot"]=0x01B9, -- ƹ
+ category="cc",
+ description="BACKSPACE",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x0008,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER EZH WITH TAIL",
- ["linebreak"]="al",
- ["shcode"]=0x0292,
- ["unicodeslot"]=0x01BA, -- ƺ
- },
- {
- ["category"]="lo",
- ["description"]="LATIN LETTER TWO WITH STROKE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x01BB, -- ƻ
- },
- {
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER TONE FIVE",
- ["lccode"]=0x01BD,
- ["linebreak"]="al",
- ["unicodeslot"]=0x01BC, -- Ƽ
- },
- {
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER TONE FIVE",
- ["linebreak"]="al",
- ["uccode"]=0x01BC,
- ["unicodeslot"]=0x01BD, -- ƽ
- },
- {
- ["category"]="ll",
- ["description"]="LATIN LETTER INVERTED GLOTTAL STOP WITH STROKE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x01BE, -- ƾ
- },
- {
- ["category"]="ll",
- ["description"]="LATIN LETTER WYNN",
- ["linebreak"]="al",
- ["uccode"]=0x01F7,
- ["unicodeslot"]=0x01BF, -- ƿ
- },
- {
- ["category"]="lo",
- ["description"]="LATIN LETTER DENTAL CLICK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x01C0, -- ǀ
- },
- {
- ["category"]="lo",
- ["description"]="LATIN LETTER LATERAL CLICK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x01C1, -- ǁ
- },
- {
- ["category"]="lo",
- ["description"]="LATIN LETTER ALVEOLAR CLICK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x01C2, -- ǂ
- },
- {
- ["category"]="lo",
- ["description"]="LATIN LETTER RETROFLEX CLICK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x01C3, -- ǃ
- },
- {
- ["category"]="lu",
- ["contextname"]="DZcaronligature",
- ["description"]="LATIN CAPITAL LETTER DZ WITH CARON",
- ["lccode"]=0x01C6,
- ["linebreak"]="al",
- ["shcode"]=0x01F1,
- ["specials"]={ "compat", 0x0044, 0x017D },
- ["uccode"]=0x01C5,
- ["unicodeslot"]=0x01C4, -- DŽ
- },
- {
- ["category"]="lt",
- ["contextname"]="Dzcaronligature",
- ["description"]="LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON",
- ["lccode"]=0x01C6,
- ["linebreak"]="al",
- ["shcode"]=0x01F2,
- ["specials"]={ "compat", 0x0044, 0x017E },
- ["uccode"]=0x01C4,
- ["unicodeslot"]=0x01C5, -- Dž
- },
- {
- ["category"]="ll",
- ["contextname"]="dzcaronligature",
- ["description"]="LATIN SMALL LETTER DZ WITH CARON",
- ["linebreak"]="al",
- ["shcode"]=0x01F3,
- ["specials"]={ "compat", 0x0064, 0x017E },
- ["uccode"]=0x01C4,
- ["unicodeslot"]=0x01C6, -- dž
- },
- {
- ["category"]="lu",
- ["contextname"]="LJligature",
- ["description"]="LATIN CAPITAL LETTER LJ",
- ["lccode"]=0x01C9,
- ["linebreak"]="al",
- ["shcode"]={ 0x004C, 0x004A },
- ["specials"]={ "compat", 0x004C, 0x004A },
- ["uccode"]=0x01C8,
- ["unicodeslot"]=0x01C7, -- LJ
- },
- {
- ["category"]="lt",
- ["contextname"]="Ljligature",
- ["description"]="LATIN CAPITAL LETTER L WITH SMALL LETTER J",
- ["lccode"]=0x01C9,
- ["linebreak"]="al",
- ["shcode"]={ 0x004C, 0x006A },
- ["specials"]={ "compat", 0x004C, 0x006A },
- ["uccode"]=0x01C7,
- ["unicodeslot"]=0x01C8, -- Lj
- },
- {
- ["category"]="ll",
- ["contextname"]="ljligature",
- ["description"]="LATIN SMALL LETTER LJ",
- ["linebreak"]="al",
- ["shcode"]={ 0x006C, 0x006A },
- ["specials"]={ "compat", 0x006C, 0x006A },
- ["uccode"]=0x01C7,
- ["unicodeslot"]=0x01C9, -- lj
- },
- {
- ["category"]="lu",
- ["contextname"]="NJligature",
- ["description"]="LATIN CAPITAL LETTER NJ",
- ["lccode"]=0x01CC,
- ["linebreak"]="al",
- ["shcode"]={ 0x004E, 0x004A },
- ["specials"]={ "compat", 0x004E, 0x004A },
- ["uccode"]=0x01CB,
- ["unicodeslot"]=0x01CA, -- NJ
- },
- {
- ["category"]="lt",
- ["contextname"]="Njligature",
- ["description"]="LATIN CAPITAL LETTER N WITH SMALL LETTER J",
- ["lccode"]=0x01CC,
- ["linebreak"]="al",
- ["shcode"]={ 0x004E, 0x006A },
- ["shcode"]=0x004E,
- ["specials"]={ "compat", 0x004E, 0x006A },
- ["uccode"]=0x01CA,
- ["unicodeslot"]=0x01CB, -- Nj
- },
- {
- ["category"]="ll",
- ["contextname"]="njligature",
- ["description"]="LATIN SMALL LETTER NJ",
- ["linebreak"]="al",
- ["shcode"]={ 0x006E, 0x006A },
- ["specials"]={ "compat", 0x006E, 0x006A },
- ["uccode"]=0x01CA,
- ["unicodeslot"]=0x01CC, -- nj
- },
- {
- ["category"]="lu",
- ["contextname"]="Acaron",
- ["description"]="LATIN CAPITAL LETTER A WITH CARON",
- ["lccode"]=0x01CE,
- ["linebreak"]="al",
- ["shcode"]=0x0041,
- ["specials"]={ "char", 0x0041, 0x030C },
- ["unicodeslot"]=0x01CD, -- Ǎ
- },
- {
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="acaron",
- ["description"]="LATIN SMALL LETTER A WITH CARON",
- ["linebreak"]="al",
- ["shcode"]=0x0061,
- ["specials"]={ "char", 0x0061, 0x030C },
- ["uccode"]=0x01CD,
- ["unicodeslot"]=0x01CE, -- ǎ
- },
- {
- ["category"]="lu",
- ["contextname"]="Icaron",
- ["description"]="LATIN CAPITAL LETTER I WITH CARON",
- ["lccode"]=0x01D0,
- ["linebreak"]="al",
- ["shcode"]=0x0049,
- ["specials"]={ "char", 0x0049, 0x030C },
- ["unicodeslot"]=0x01CF, -- Ǐ
- },
- {
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="icaron",
- ["description"]="LATIN SMALL LETTER I WITH CARON",
- ["linebreak"]="al",
- ["shcode"]=0x0069,
- ["specials"]={ "char", 0x0069, 0x030C },
- ["uccode"]=0x01CF,
- ["unicodeslot"]=0x01D0, -- ǐ
- },
- {
- ["category"]="lu",
- ["contextname"]="Ocaron",
- ["description"]="LATIN CAPITAL LETTER O WITH CARON",
- ["lccode"]=0x01D2,
- ["linebreak"]="al",
- ["shcode"]=0x004F,
- ["specials"]={ "char", 0x004F, 0x030C },
- ["unicodeslot"]=0x01D1, -- Ǒ
- },
- {
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="ocaron",
- ["description"]="LATIN SMALL LETTER O WITH CARON",
- ["linebreak"]="al",
- ["shcode"]=0x006F,
- ["specials"]={ "char", 0x006F, 0x030C },
- ["uccode"]=0x01D1,
- ["unicodeslot"]=0x01D2, -- ǒ
- },
- {
- ["category"]="lu",
- ["contextname"]="Ucaron",
- ["description"]="LATIN CAPITAL LETTER U WITH CARON",
- ["lccode"]=0x01D4,
- ["linebreak"]="al",
- ["shcode"]=0x0055,
- ["specials"]={ "char", 0x0055, 0x030C },
- ["unicodeslot"]=0x01D3, -- Ǔ
- },
- {
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="ucaron",
- ["description"]="LATIN SMALL LETTER U WITH CARON",
- ["linebreak"]="al",
- ["shcode"]=0x0075,
- ["specials"]={ "char", 0x0075, 0x030C },
- ["uccode"]=0x01D3,
- ["unicodeslot"]=0x01D4, -- ǔ
- },
- {
- ["category"]="lu",
- ["contextname"]="Udiaeresismacron",
- ["description"]="LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON",
- ["lccode"]=0x01D6,
- ["linebreak"]="al",
- ["shcode"]=0x0055,
- ["specials"]={ "char", 0x00DC, 0x0304 },
- ["unicodeslot"]=0x01D5, -- Ǖ
- },
- {
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="udiaeresismacron",
- ["description"]="LATIN SMALL LETTER U WITH DIAERESIS AND MACRON",
- ["linebreak"]="al",
- ["shcode"]=0x0075,
- ["specials"]={ "char", 0x00FC, 0x0304 },
- ["uccode"]=0x01D5,
- ["unicodeslot"]=0x01D6, -- ǖ
- },
- {
- ["category"]="lu",
- ["contextname"]="Udiaeresisacute",
- ["description"]="LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE",
- ["lccode"]=0x01D8,
- ["linebreak"]="al",
- ["shcode"]=0x0055,
- ["specials"]={ "char", 0x00DC, 0x0301 },
- ["unicodeslot"]=0x01D7, -- Ǘ
- },
- {
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="udiaeresisacute",
- ["description"]="LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE",
- ["linebreak"]="al",
- ["shcode"]=0x0075,
- ["specials"]={ "char", 0x00FC, 0x0301 },
- ["uccode"]=0x01D7,
- ["unicodeslot"]=0x01D8, -- ǘ
- },
- {
- ["category"]="lu",
- ["contextname"]="Udiaeresiscaron",
- ["description"]="LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON",
- ["lccode"]=0x01DA,
- ["linebreak"]="al",
- ["shcode"]=0x0055,
- ["specials"]={ "char", 0x00DC, 0x030C },
- ["unicodeslot"]=0x01D9, -- Ǚ
- },
- {
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="udiaeresiscaron",
- ["description"]="LATIN SMALL LETTER U WITH DIAERESIS AND CARON",
- ["linebreak"]="al",
- ["shcode"]=0x0075,
- ["specials"]={ "char", 0x00FC, 0x030C },
- ["uccode"]=0x01D9,
- ["unicodeslot"]=0x01DA, -- ǚ
- },
- {
- ["category"]="lu",
- ["contextname"]="Udiaeresisgrave",
- ["description"]="LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE",
- ["lccode"]=0x01DC,
- ["linebreak"]="al",
- ["shcode"]=0x0055,
- ["specials"]={ "char", 0x00DC, 0x0300 },
- ["unicodeslot"]=0x01DB, -- Ǜ
- },
- {
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="udiaeresisgrave",
- ["description"]="LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE",
- ["linebreak"]="al",
- ["shcode"]=0x0075,
- ["specials"]={ "char", 0x00FC, 0x0300 },
- ["uccode"]=0x01DB,
- ["unicodeslot"]=0x01DC, -- ǜ
- },
- {
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER TURNED E",
- ["linebreak"]="al",
- ["uccode"]=0x018E,
- ["unicodeslot"]=0x01DD, -- ǝ
- },
- {
- ["category"]="lu",
- ["contextname"]="Adiaeresismacron",
- ["description"]="LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON",
- ["lccode"]=0x01DF,
- ["linebreak"]="al",
- ["shcode"]=0x0041,
- ["specials"]={ "char", 0x00C4, 0x0304 },
- ["unicodeslot"]=0x01DE, -- Ǟ
- },
- {
- ["category"]="ll",
- ["contextname"]="adiaeresismacron",
- ["description"]="LATIN SMALL LETTER A WITH DIAERESIS AND MACRON",
- ["linebreak"]="al",
- ["shcode"]=0x0061,
- ["specials"]={ "char", 0x00E4, 0x0304 },
- ["uccode"]=0x01DE,
- ["unicodeslot"]=0x01DF, -- ǟ
- },
- {
- ["category"]="lu",
- ["contextname"]="Adotaccentmacron",
- ["description"]="LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON",
- ["lccode"]=0x01E1,
- ["linebreak"]="al",
- ["shcode"]=0x0041,
- ["specials"]={ "char", 0x0226, 0x0304 },
- ["unicodeslot"]=0x01E0, -- Ǡ
- },
- {
- ["category"]="ll",
- ["contextname"]="adotaccentmacron",
- ["description"]="LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON",
- ["linebreak"]="al",
- ["shcode"]=0x0061,
- ["specials"]={ "char", 0x0227, 0x0304 },
- ["uccode"]=0x01E0,
- ["unicodeslot"]=0x01E1, -- ǡ
- },
- {
- ["category"]="lu",
- ["contextname"]="AEmacron",
- ["description"]="LATIN CAPITAL LETTER AE WITH MACRON",
- ["lccode"]=0x01E3,
- ["linebreak"]="al",
- ["shcode"]=0x00C6,
- ["specials"]={ "char", 0x00C6, 0x0304 },
- ["unicodeslot"]=0x01E2, -- Ǣ
- },
- {
- ["category"]="ll",
- ["contextname"]="aemacron",
- ["description"]="LATIN SMALL LETTER AE WITH MACRON",
- ["linebreak"]="al",
- ["shcode"]=0x00E6,
- ["specials"]={ "char", 0x00E6, 0x0304 },
- ["uccode"]=0x01E2,
- ["unicodeslot"]=0x01E3, -- ǣ
- },
- {
- ["category"]="lu",
- ["contextname"]="Gstroke",
- ["description"]="LATIN CAPITAL LETTER G WITH STROKE",
- ["lccode"]=0x01E5,
- ["linebreak"]="al",
- ["shcode"]=0x0047,
- ["unicodeslot"]=0x01E4, -- Ǥ
- },
- {
- ["category"]="ll",
- ["contextname"]="gstroke",
- ["description"]="LATIN SMALL LETTER G WITH STROKE",
- ["linebreak"]="al",
- ["shcode"]=0x0067,
- ["uccode"]=0x01E4,
- ["unicodeslot"]=0x01E5, -- ǥ
- },
- {
- ["adobename"]="Gcaron",
- ["category"]="lu",
- ["contextname"]="Gcaron",
- ["description"]="LATIN CAPITAL LETTER G WITH CARON",
- ["lccode"]=0x01E7,
- ["linebreak"]="al",
- ["shcode"]=0x0047,
- ["specials"]={ "char", 0x0047, 0x030C },
- ["unicodeslot"]=0x01E6, -- Ǧ
- },
- {
- ["adobename"]="gcaron",
- ["category"]="ll",
- ["contextname"]="gcaron",
- ["description"]="LATIN SMALL LETTER G WITH CARON",
- ["linebreak"]="al",
- ["shcode"]=0x0067,
- ["specials"]={ "char", 0x0067, 0x030C },
- ["uccode"]=0x01E6,
- ["unicodeslot"]=0x01E7, -- ǧ
- },
- {
- ["category"]="lu",
- ["contextname"]="Kcaron",
- ["description"]="LATIN CAPITAL LETTER K WITH CARON",
- ["lccode"]=0x01E9,
- ["linebreak"]="al",
- ["shcode"]=0x004B,
- ["specials"]={ "char", 0x004B, 0x030C },
- ["unicodeslot"]=0x01E8, -- Ǩ
- },
- {
- ["category"]="ll",
- ["contextname"]="kcaron",
- ["description"]="LATIN SMALL LETTER K WITH CARON",
- ["linebreak"]="al",
- ["shcode"]=0x006B,
- ["specials"]={ "char", 0x006B, 0x030C },
- ["uccode"]=0x01E8,
- ["unicodeslot"]=0x01E9, -- ǩ
- },
- {
- ["category"]="lu",
- ["contextname"]="Oogonek",
- ["description"]="LATIN CAPITAL LETTER O WITH OGONEK",
- ["lccode"]=0x01EB,
- ["linebreak"]="al",
- ["shcode"]=0x004F,
- ["specials"]={ "char", 0x004F, 0x0328 },
- ["unicodeslot"]=0x01EA, -- Ǫ
- },
- {
- ["category"]="ll",
- ["contextname"]="oogonek",
- ["description"]="LATIN SMALL LETTER O WITH OGONEK",
- ["linebreak"]="al",
- ["shcode"]=0x006F,
- ["specials"]={ "char", 0x006F, 0x0328 },
- ["uccode"]=0x01EA,
- ["unicodeslot"]=0x01EB, -- ǫ
- },
- {
- ["category"]="lu",
- ["contextname"]="Oogonekmacron",
- ["description"]="LATIN CAPITAL LETTER O WITH OGONEK AND MACRON",
- ["lccode"]=0x01ED,
- ["linebreak"]="al",
- ["shcode"]=0x004F,
- ["specials"]={ "char", 0x01EA, 0x0304 },
- ["unicodeslot"]=0x01EC, -- Ǭ
- },
- {
- ["category"]="ll",
- ["contextname"]="oogonekmacron",
- ["description"]="LATIN SMALL LETTER O WITH OGONEK AND MACRON",
- ["linebreak"]="al",
- ["shcode"]=0x006F,
- ["specials"]={ "char", 0x01EB, 0x0304 },
- ["uccode"]=0x01EC,
- ["unicodeslot"]=0x01ED, -- ǭ
- },
- {
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER EZH WITH CARON",
- ["lccode"]=0x01EF,
- ["linebreak"]="al",
- ["shcode"]=0x01B7,
- ["specials"]={ "char", 0x01B7, 0x030C },
- ["unicodeslot"]=0x01EE, -- Ǯ
- },
- {
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER EZH WITH CARON",
- ["linebreak"]="al",
- ["shcode"]=0x0292,
- ["specials"]={ "char", 0x0292, 0x030C },
- ["uccode"]=0x01EE,
- ["unicodeslot"]=0x01EF, -- ǯ
- },
- {
- ["category"]="ll",
- ["contextname"]="jcaron",
- ["description"]="LATIN SMALL LETTER J WITH CARON",
- ["linebreak"]="al",
- ["shcode"]=0x006A,
- ["specials"]={ "char", 0x006A, 0x030C },
- ["unicodeslot"]=0x01F0, -- ǰ
- },
- {
- ["category"]="lu",
- ["contextname"]="DZligature",
- ["description"]="LATIN CAPITAL LETTER DZ",
- ["lccode"]=0x01F3,
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x0044, 0x005A },
- ["uccode"]=0x01F2,
- ["unicodeslot"]=0x01F1, -- DZ
- },
- {
- ["category"]="lt",
- ["contextname"]="Dzligature",
- ["description"]="LATIN CAPITAL LETTER D WITH SMALL LETTER Z",
- ["lccode"]=0x01F3,
- ["linebreak"]="al",
- ["shcode"]=0x0044,
- ["specials"]={ "compat", 0x0044, 0x007A },
- ["uccode"]=0x01F1,
- ["unicodeslot"]=0x01F2, -- Dz
- },
- {
- ["category"]="ll",
- ["contextname"]="dzligature",
- ["description"]="LATIN SMALL LETTER DZ",
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x0064, 0x007A },
- ["uccode"]=0x01F1,
- ["unicodeslot"]=0x01F3, -- dz
- },
- {
- ["category"]="lu",
- ["contextname"]="Gacute",
- ["description"]="LATIN CAPITAL LETTER G WITH ACUTE",
- ["lccode"]=0x01F5,
- ["linebreak"]="al",
- ["shcode"]=0x0047,
- ["specials"]={ "char", 0x0047, 0x0301 },
- ["unicodeslot"]=0x01F4, -- Ǵ
- },
- {
- ["category"]="ll",
- ["contextname"]="gacute",
- ["description"]="LATIN SMALL LETTER G WITH ACUTE",
- ["linebreak"]="al",
- ["shcode"]=0x0067,
- ["specials"]={ "char", 0x0067, 0x0301 },
- ["uccode"]=0x01F4,
- ["unicodeslot"]=0x01F5, -- ǵ
- },
- {
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER HWAIR",
- ["lccode"]=0x0195,
- ["linebreak"]="al",
- ["unicodeslot"]=0x01F6, -- Ƕ
- },
- {
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER WYNN",
- ["lccode"]=0x01BF,
- ["linebreak"]="al",
- ["unicodeslot"]=0x01F7, -- Ƿ
- },
- {
- ["category"]="lu",
- ["contextname"]="Ngrave",
- ["description"]="LATIN CAPITAL LETTER N WITH GRAVE",
- ["lccode"]=0x01F9,
- ["linebreak"]="al",
- ["shcode"]=0x004E,
- ["specials"]={ "char", 0x004E, 0x0300 },
- ["unicodeslot"]=0x01F8, -- Ǹ
- },
- {
- ["category"]="ll",
- ["contextname"]="ngrave",
- ["description"]="LATIN SMALL LETTER N WITH GRAVE",
- ["linebreak"]="al",
- ["shcode"]=0x006E,
- ["specials"]={ "char", 0x006E, 0x0300 },
- ["uccode"]=0x01F8,
- ["unicodeslot"]=0x01F9, -- ǹ
- },
- {
- ["adobename"]="Aringacute",
- ["category"]="lu",
- ["contextname"]="Aringacute",
- ["description"]="LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE",
- ["lccode"]=0x01FB,
- ["linebreak"]="al",
- ["shcode"]=0x0041,
- ["specials"]={ "char", 0x00C5, 0x0301 },
- ["unicodeslot"]=0x01FA, -- Ǻ
- },
- {
- ["adobename"]="aringacute",
- ["category"]="ll",
- ["contextname"]="aringacute",
- ["description"]="LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE",
- ["linebreak"]="al",
- ["shcode"]=0x0061,
- ["specials"]={ "char", 0x00E5, 0x0301 },
- ["uccode"]=0x01FA,
- ["unicodeslot"]=0x01FB, -- ǻ
- },
- {
- ["adobename"]="AEacute",
- ["category"]="lu",
- ["contextname"]="AEacute",
- ["description"]="LATIN CAPITAL LETTER AE WITH ACUTE",
- ["lccode"]=0x01FD,
- ["linebreak"]="al",
- ["shcode"]=0x00C6,
- ["specials"]={ "char", 0x00C6, 0x0301 },
- ["unicodeslot"]=0x01FC, -- Ǽ
- },
- {
- ["adobename"]="aeacute",
- ["category"]="ll",
- ["contextname"]="aeacute",
- ["description"]="LATIN SMALL LETTER AE WITH ACUTE",
- ["linebreak"]="al",
- ["shcode"]=0x00E6,
- ["specials"]={ "char", 0x00E6, 0x0301 },
- ["uccode"]=0x01FC,
- ["unicodeslot"]=0x01FD, -- ǽ
- },
- {
- ["adobename"]="Oslashacute",
- ["category"]="lu",
- ["contextname"]="Ostrokeacute",
- ["description"]="LATIN CAPITAL LETTER O WITH STROKE AND ACUTE",
- ["lccode"]=0x01FF,
- ["linebreak"]="al",
- ["shcode"]=0x004F,
- ["specials"]={ "char", 0x00D8, 0x0301 },
- ["unicodeslot"]=0x01FE, -- Ǿ
- },
- {
- ["adobename"]="oslashacute",
- ["category"]="ll",
- ["contextname"]="ostrokeacute",
- ["description"]="LATIN SMALL LETTER O WITH STROKE AND ACUTE",
- ["linebreak"]="al",
- ["shcode"]=0x006F,
- ["specials"]={ "char", 0x00F8, 0x0301 },
- ["uccode"]=0x01FE,
- ["unicodeslot"]=0x01FF, -- ǿ
- },
- {
- ["category"]="lu",
- ["contextname"]="Adoublegrave",
- ["description"]="LATIN CAPITAL LETTER A WITH DOUBLE GRAVE",
- ["lccode"]=0x0201,
- ["linebreak"]="al",
- ["shcode"]=0x0041,
- ["specials"]={ "char", 0x0041, 0x030F },
- ["unicodeslot"]=0x0200, -- Ȁ
- },
- {
- ["category"]="ll",
- ["contextname"]="adoublegrave",
- ["description"]="LATIN SMALL LETTER A WITH DOUBLE GRAVE",
- ["linebreak"]="al",
- ["shcode"]=0x0061,
- ["specials"]={ "char", 0x0061, 0x030F },
- ["uccode"]=0x0200,
- ["unicodeslot"]=0x0201, -- ȁ
- },
- {
- ["category"]="lu",
- ["contextname"]="Ainvertedbreve",
- ["description"]="LATIN CAPITAL LETTER A WITH INVERTED BREVE",
- ["lccode"]=0x0203,
- ["linebreak"]="al",
- ["shcode"]=0x0041,
- ["specials"]={ "char", 0x0041, 0x0311 },
- ["unicodeslot"]=0x0202, -- Ȃ
- },
- {
- ["category"]="ll",
- ["contextname"]="ainvertedbreve",
- ["description"]="LATIN SMALL LETTER A WITH INVERTED BREVE",
- ["linebreak"]="al",
- ["shcode"]=0x0061,
- ["specials"]={ "char", 0x0061, 0x0311 },
- ["uccode"]=0x0202,
- ["unicodeslot"]=0x0203, -- ȃ
- },
- {
- ["category"]="lu",
- ["contextname"]="Edoublegrave",
- ["description"]="LATIN CAPITAL LETTER E WITH DOUBLE GRAVE",
- ["lccode"]=0x0205,
- ["linebreak"]="al",
- ["shcode"]=0x0045,
- ["specials"]={ "char", 0x0045, 0x030F },
- ["unicodeslot"]=0x0204, -- Ȅ
- },
- {
- ["category"]="ll",
- ["contextname"]="edoublegrave",
- ["description"]="LATIN SMALL LETTER E WITH DOUBLE GRAVE",
- ["linebreak"]="al",
- ["shcode"]=0x0065,
- ["specials"]={ "char", 0x0065, 0x030F },
- ["uccode"]=0x0204,
- ["unicodeslot"]=0x0205, -- ȅ
- },
- {
- ["category"]="lu",
- ["contextname"]="Einvertedbreve",
- ["description"]="LATIN CAPITAL LETTER E WITH INVERTED BREVE",
- ["lccode"]=0x0207,
- ["linebreak"]="al",
- ["shcode"]=0x0045,
- ["specials"]={ "char", 0x0045, 0x0311 },
- ["unicodeslot"]=0x0206, -- Ȇ
- },
- {
- ["category"]="ll",
- ["contextname"]="einvertedbreve",
- ["description"]="LATIN SMALL LETTER E WITH INVERTED BREVE",
- ["linebreak"]="al",
- ["shcode"]=0x0065,
- ["specials"]={ "char", 0x0065, 0x0311 },
- ["uccode"]=0x0206,
- ["unicodeslot"]=0x0207, -- ȇ
- },
- {
- ["category"]="lu",
- ["contextname"]="Idoublegrave",
- ["description"]="LATIN CAPITAL LETTER I WITH DOUBLE GRAVE",
- ["lccode"]=0x0209,
- ["linebreak"]="al",
- ["shcode"]=0x0049,
- ["specials"]={ "char", 0x0049, 0x030F },
- ["unicodeslot"]=0x0208, -- Ȉ
- },
- {
- ["category"]="ll",
- ["contextname"]="idoublegrave",
- ["description"]="LATIN SMALL LETTER I WITH DOUBLE GRAVE",
- ["linebreak"]="al",
- ["shcode"]=0x0069,
- ["specials"]={ "char", 0x0069, 0x030F },
- ["uccode"]=0x0208,
- ["unicodeslot"]=0x0209, -- ȉ
- },
- {
- ["category"]="lu",
- ["contextname"]="Iinvertedbreve",
- ["description"]="LATIN CAPITAL LETTER I WITH INVERTED BREVE",
- ["lccode"]=0x020B,
- ["linebreak"]="al",
- ["shcode"]=0x0049,
- ["specials"]={ "char", 0x0049, 0x0311 },
- ["unicodeslot"]=0x020A, -- Ȋ
- },
- {
- ["category"]="ll",
- ["contextname"]="iinvertedbreve",
- ["description"]="LATIN SMALL LETTER I WITH INVERTED BREVE",
- ["linebreak"]="al",
- ["shcode"]=0x0069,
- ["specials"]={ "char", 0x0069, 0x0311 },
- ["uccode"]=0x020A,
- ["unicodeslot"]=0x020B, -- ȋ
- },
- {
- ["category"]="lu",
- ["contextname"]="Odoublegrave",
- ["description"]="LATIN CAPITAL LETTER O WITH DOUBLE GRAVE",
- ["lccode"]=0x020D,
- ["linebreak"]="al",
- ["shcode"]=0x004F,
- ["specials"]={ "char", 0x004F, 0x030F },
- ["unicodeslot"]=0x020C, -- Ȍ
- },
- {
- ["category"]="ll",
- ["contextname"]="odoublegrave",
- ["description"]="LATIN SMALL LETTER O WITH DOUBLE GRAVE",
- ["linebreak"]="al",
- ["shcode"]=0x006F,
- ["specials"]={ "char", 0x006F, 0x030F },
- ["uccode"]=0x020C,
- ["unicodeslot"]=0x020D, -- ȍ
- },
- {
- ["category"]="lu",
- ["contextname"]="Oinvertedbreve",
- ["description"]="LATIN CAPITAL LETTER O WITH INVERTED BREVE",
- ["lccode"]=0x020F,
- ["linebreak"]="al",
- ["shcode"]=0x004F,
- ["specials"]={ "char", 0x004F, 0x0311 },
- ["unicodeslot"]=0x020E, -- Ȏ
- },
- {
- ["category"]="ll",
- ["contextname"]="oinvertedbreve",
- ["description"]="LATIN SMALL LETTER O WITH INVERTED BREVE",
- ["linebreak"]="al",
- ["shcode"]=0x006F,
- ["specials"]={ "char", 0x006F, 0x0311 },
- ["uccode"]=0x020E,
- ["unicodeslot"]=0x020F, -- ȏ
- },
- {
- ["category"]="lu",
- ["contextname"]="Rdoublegrave",
- ["description"]="LATIN CAPITAL LETTER R WITH DOUBLE GRAVE",
- ["lccode"]=0x0211,
- ["linebreak"]="al",
- ["shcode"]=0x0052,
- ["specials"]={ "char", 0x0052, 0x030F },
- ["unicodeslot"]=0x0210, -- Ȑ
- },
- {
- ["category"]="ll",
- ["contextname"]="rdoublegrave",
- ["description"]="LATIN SMALL LETTER R WITH DOUBLE GRAVE",
- ["linebreak"]="al",
- ["shcode"]=0x0072,
- ["specials"]={ "char", 0x0072, 0x030F },
- ["uccode"]=0x0210,
- ["unicodeslot"]=0x0211, -- ȑ
- },
- {
- ["category"]="lu",
- ["contextname"]="Rinvertedbreve",
- ["description"]="LATIN CAPITAL LETTER R WITH INVERTED BREVE",
- ["lccode"]=0x0213,
- ["linebreak"]="al",
- ["shcode"]=0x0052,
- ["specials"]={ "char", 0x0052, 0x0311 },
- ["unicodeslot"]=0x0212, -- Ȓ
- },
- {
- ["category"]="ll",
- ["contextname"]="rinvertedbreve",
- ["description"]="LATIN SMALL LETTER R WITH INVERTED BREVE",
- ["linebreak"]="al",
- ["shcode"]=0x0072,
- ["specials"]={ "char", 0x0072, 0x0311 },
- ["uccode"]=0x0212,
- ["unicodeslot"]=0x0213, -- ȓ
- },
- {
- ["category"]="lu",
- ["contextname"]="Udoublegrave",
- ["description"]="LATIN CAPITAL LETTER U WITH DOUBLE GRAVE",
- ["lccode"]=0x0215,
- ["linebreak"]="al",
- ["shcode"]=0x0055,
- ["specials"]={ "char", 0x0055, 0x030F },
- ["unicodeslot"]=0x0214, -- Ȕ
- },
- {
- ["category"]="ll",
- ["contextname"]="udoublegrave",
- ["description"]="LATIN SMALL LETTER U WITH DOUBLE GRAVE",
- ["linebreak"]="al",
- ["shcode"]=0x0075,
- ["specials"]={ "char", 0x0075, 0x030F },
- ["uccode"]=0x0214,
- ["unicodeslot"]=0x0215, -- ȕ
- },
- {
- ["category"]="lu",
- ["contextname"]="Uinvertedbreve",
- ["description"]="LATIN CAPITAL LETTER U WITH INVERTED BREVE",
- ["lccode"]=0x0217,
- ["linebreak"]="al",
- ["shcode"]=0x0055,
- ["specials"]={ "char", 0x0055, 0x0311 },
- ["unicodeslot"]=0x0216, -- Ȗ
- },
- {
- ["category"]="ll",
- ["contextname"]="uinvertedbreve",
- ["description"]="LATIN SMALL LETTER U WITH INVERTED BREVE",
- ["linebreak"]="al",
- ["shcode"]=0x0075,
- ["specials"]={ "char", 0x0075, 0x0311 },
- ["uccode"]=0x0216,
- ["unicodeslot"]=0x0217, -- ȗ
- },
- {
- ["adobename"]="Scommaaccent",
- ["category"]="lu",
- ["contextname"]="Scommaaccent",
- ["description"]="LATIN CAPITAL LETTER S WITH COMMA BELOW",
- ["lccode"]=0x0219,
- ["linebreak"]="al",
- ["shcode"]=0x0053,
- ["specials"]={ "char", 0x0053, 0x0326 },
- ["unicodeslot"]=0x0218, -- Ș
- },
- {
- ["adobename"]="scommaaccent",
- ["category"]="ll",
- ["contextname"]="scommaaccent",
- ["description"]="LATIN SMALL LETTER S WITH COMMA BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x0073,
- ["specials"]={ "char", 0x0073, 0x0326 },
- ["uccode"]=0x0218,
- ["unicodeslot"]=0x0219, -- ș
- },
- {
- ["category"]="lu",
- ["contextname"]="Tcommaaccent",
- ["description"]="LATIN CAPITAL LETTER T WITH COMMA BELOW",
- ["lccode"]=0x021B,
- ["linebreak"]="al",
- ["shcode"]=0x0054,
- ["specials"]={ "char", 0x0054, 0x0326 },
- ["unicodeslot"]=0x021A, -- Ț
- },
- {
- ["category"]="ll",
- ["contextname"]="tcommaaccent",
- ["description"]="LATIN SMALL LETTER T WITH COMMA BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x0074,
- ["specials"]={ "char", 0x0074, 0x0326 },
- ["uccode"]=0x021A,
- ["unicodeslot"]=0x021B, -- ț
- },
- {
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER YOGH",
- ["lccode"]=0x021D,
- ["linebreak"]="al",
- ["unicodeslot"]=0x021C, -- Ȝ
- },
- {
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER YOGH",
- ["linebreak"]="al",
- ["uccode"]=0x021C,
- ["unicodeslot"]=0x021D, -- ȝ
- },
- {
- ["category"]="lu",
- ["contextname"]="Hcaron",
- ["description"]="LATIN CAPITAL LETTER H WITH CARON",
- ["lccode"]=0x021F,
- ["linebreak"]="al",
- ["shcode"]=0x0048,
- ["specials"]={ "char", 0x0048, 0x030C },
- ["unicodeslot"]=0x021E, -- Ȟ
- },
- {
- ["category"]="ll",
- ["contextname"]="hcaron",
- ["description"]="LATIN SMALL LETTER H WITH CARON",
- ["linebreak"]="al",
- ["shcode"]=0x0068,
- ["specials"]={ "char", 0x0068, 0x030C },
- ["uccode"]=0x021E,
- ["unicodeslot"]=0x021F, -- ȟ
- },
- {
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER N WITH LONG RIGHT LEG",
- ["lccode"]=0x019E,
- ["linebreak"]="al",
- ["shcode"]=0x004E,
- ["unicodeslot"]=0x0220, -- Ƞ
- },
- {
- ["category"]="ll",
- ["contextname"]="dcurl",
- ["description"]="LATIN SMALL LETTER D WITH CURL",
- ["linebreak"]="al",
- ["shcode"]=0x0064,
- ["unicodeslot"]=0x0221, -- ȡ
- },
- {
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER OU",
- ["lccode"]=0x0223,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0222, -- Ȣ
- },
- {
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER OU",
- ["linebreak"]="al",
- ["uccode"]=0x0222,
- ["unicodeslot"]=0x0223, -- ȣ
- },
- {
- ["category"]="lu",
- ["contextname"]="Zhook",
- ["description"]="LATIN CAPITAL LETTER Z WITH HOOK",
- ["lccode"]=0x0225,
- ["linebreak"]="al",
- ["shcode"]=0x005A,
- ["unicodeslot"]=0x0224, -- Ȥ
- },
- {
- ["category"]="ll",
- ["contextname"]="zhook",
- ["description"]="LATIN SMALL LETTER Z WITH HOOK",
- ["linebreak"]="al",
- ["shcode"]=0x007A,
- ["uccode"]=0x0224,
- ["unicodeslot"]=0x0225, -- ȥ
- },
- {
- ["category"]="lu",
- ["contextname"]="Adotaccent",
- ["description"]="LATIN CAPITAL LETTER A WITH DOT ABOVE",
- ["lccode"]=0x0227,
- ["linebreak"]="al",
- ["shcode"]=0x0041,
- ["specials"]={ "char", 0x0041, 0x0307 },
- ["unicodeslot"]=0x0226, -- Ȧ
- },
- {
- ["category"]="ll",
- ["contextname"]="adotaccent",
- ["description"]="LATIN SMALL LETTER A WITH DOT ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0061,
- ["specials"]={ "char", 0x0061, 0x0307 },
- ["uccode"]=0x0226,
- ["unicodeslot"]=0x0227, -- ȧ
- },
- {
- ["category"]="lu",
- ["contextname"]="Ecedilla",
- ["description"]="LATIN CAPITAL LETTER E WITH CEDILLA",
- ["lccode"]=0x0229,
- ["linebreak"]="al",
- ["shcode"]=0x0045,
- ["specials"]={ "char", 0x0045, 0x0327 },
- ["unicodeslot"]=0x0228, -- Ȩ
- },
- {
- ["category"]="ll",
- ["contextname"]="ecedilla",
- ["description"]="LATIN SMALL LETTER E WITH CEDILLA",
- ["linebreak"]="al",
- ["shcode"]=0x0065,
- ["specials"]={ "char", 0x0065, 0x0327 },
- ["uccode"]=0x0228,
- ["unicodeslot"]=0x0229, -- ȩ
- },
- {
- ["category"]="lu",
- ["contextname"]="Odiaeresismacron",
- ["description"]="LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON",
- ["lccode"]=0x022B,
- ["linebreak"]="al",
- ["shcode"]=0x004F,
- ["specials"]={ "char", 0x00D6, 0x0304 },
- ["unicodeslot"]=0x022A, -- Ȫ
- },
- {
- ["category"]="ll",
- ["contextname"]="odiaeresismacron",
- ["description"]="LATIN SMALL LETTER O WITH DIAERESIS AND MACRON",
- ["linebreak"]="al",
- ["shcode"]=0x006F,
- ["specials"]={ "char", 0x00F6, 0x0304 },
- ["uccode"]=0x022A,
- ["unicodeslot"]=0x022B, -- ȫ
- },
- {
- ["category"]="lu",
- ["contextname"]="Otildemacron",
- ["description"]="LATIN CAPITAL LETTER O WITH TILDE AND MACRON",
- ["lccode"]=0x022D,
- ["linebreak"]="al",
- ["shcode"]=0x004F,
- ["specials"]={ "char", 0x00D5, 0x0304 },
- ["unicodeslot"]=0x022C, -- Ȭ
- },
- {
- ["category"]="ll",
- ["contextname"]="otildemacron",
- ["description"]="LATIN SMALL LETTER O WITH TILDE AND MACRON",
- ["linebreak"]="al",
- ["shcode"]=0x006F,
- ["specials"]={ "char", 0x00F5, 0x0304 },
- ["uccode"]=0x022C,
- ["unicodeslot"]=0x022D, -- ȭ
- },
- {
- ["category"]="lu",
- ["contextname"]="Odotaccent",
- ["description"]="LATIN CAPITAL LETTER O WITH DOT ABOVE",
- ["lccode"]=0x022F,
- ["linebreak"]="al",
- ["shcode"]=0x004F,
- ["specials"]={ "char", 0x004F, 0x0307 },
- ["unicodeslot"]=0x022E, -- Ȯ
- },
- {
- ["category"]="ll",
- ["contextname"]="odotaccent",
- ["description"]="LATIN SMALL LETTER O WITH DOT ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x006F,
- ["specials"]={ "char", 0x006F, 0x0307 },
- ["uccode"]=0x022E,
- ["unicodeslot"]=0x022F, -- ȯ
- },
- {
- ["category"]="lu",
- ["contextname"]="Odotaccentmacron",
- ["description"]="LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON",
- ["lccode"]=0x0231,
- ["linebreak"]="al",
- ["shcode"]=0x004F,
- ["specials"]={ "char", 0x022E, 0x0304 },
- ["unicodeslot"]=0x0230, -- Ȱ
- },
- {
- ["category"]="ll",
- ["contextname"]="odotaccentmacron",
- ["description"]="LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON",
- ["linebreak"]="al",
- ["shcode"]=0x006F,
- ["specials"]={ "char", 0x022F, 0x0304 },
- ["uccode"]=0x0230,
- ["unicodeslot"]=0x0231, -- ȱ
- },
- {
- ["category"]="lu",
- ["contextname"]="Ymacron",
- ["description"]="LATIN CAPITAL LETTER Y WITH MACRON",
- ["lccode"]=0x0233,
- ["linebreak"]="al",
- ["shcode"]=0x0059,
- ["specials"]={ "char", 0x0059, 0x0304 },
- ["unicodeslot"]=0x0232, -- Ȳ
- },
- {
- ["category"]="ll",
- ["contextname"]="ymacron",
- ["description"]="LATIN SMALL LETTER Y WITH MACRON",
- ["linebreak"]="al",
- ["shcode"]=0x0079,
- ["specials"]={ "char", 0x0079, 0x0304 },
- ["uccode"]=0x0232,
- ["unicodeslot"]=0x0233, -- ȳ
- },
- {
- ["category"]="ll",
- ["contextname"]="lcurl",
- ["description"]="LATIN SMALL LETTER L WITH CURL",
- ["linebreak"]="al",
- ["shcode"]=0x006C,
- ["unicodeslot"]=0x0234, -- ȴ
- },
- {
- ["category"]="ll",
- ["contextname"]="ncurl",
- ["description"]="LATIN SMALL LETTER N WITH CURL",
- ["linebreak"]="al",
- ["shcode"]=0x006E,
- ["unicodeslot"]=0x0235, -- ȵ
- },
- {
- ["category"]="ll",
- ["contextname"]="tcurl",
- ["description"]="LATIN SMALL LETTER T WITH CURL",
- ["linebreak"]="al",
- ["shcode"]=0x0074,
- ["unicodeslot"]=0x0236, -- ȶ
- },
- {
- ["category"]="ll",
- ["contextname"]="dotlessj",
- ["description"]="LATIN SMALL LETTER DOTLESS J",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0237, -- ȷ
- },
- {
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER DB DIGRAPH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0238, -- ȸ
- },
- {
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER QP DIGRAPH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0239, -- ȹ
- },
- {
- ["category"]="lu",
- ["contextname"]="Astroke",
- ["description"]="LATIN CAPITAL LETTER A WITH STROKE",
- ["lccode"]=0x2C65,
- ["linebreak"]="al",
- ["shcode"]=0x0041,
- ["unicodeslot"]=0x023A, -- Ⱥ
- },
- {
- ["category"]="lu",
- ["contextname"]="Cstroke",
- ["description"]="LATIN CAPITAL LETTER C WITH STROKE",
- ["lccode"]=0x023C,
- ["linebreak"]="al",
- ["shcode"]=0x0043,
- ["unicodeslot"]=0x023B, -- Ȼ
- },
- {
- ["category"]="ll",
- ["contextname"]="cstroke",
- ["description"]="LATIN SMALL LETTER C WITH STROKE",
- ["linebreak"]="al",
- ["shcode"]=0x0063,
- ["uccode"]=0x023B,
- ["unicodeslot"]=0x023C, -- ȼ
- },
- {
- ["category"]="lu",
- ["contextname"]="Lbar",
- ["description"]="LATIN CAPITAL LETTER L WITH BAR",
- ["lccode"]=0x019A,
- ["linebreak"]="al",
- ["shcode"]=0x004C,
- ["unicodeslot"]=0x023D, -- Ƚ
- },
- {
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER T WITH DIAGONAL STROKE",
- ["lccode"]=0x2C66,
- ["linebreak"]="al",
- ["shcode"]=0x0054,
- ["unicodeslot"]=0x023E, -- Ⱦ
- },
- {
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER S WITH SWASH TAIL",
- ["linebreak"]="al",
- ["shcode"]=0x0073,
- ["unicodeslot"]=0x023F, -- ȿ
- },
- {
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER Z WITH SWASH TAIL",
- ["linebreak"]="al",
- ["shcode"]=0x007A,
- ["unicodeslot"]=0x0240, -- ɀ
- },
- {
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER GLOTTAL STOP",
- ["lccode"]=0x0242,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0241, -- Ɂ
- },
- {
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER GLOTTAL STOP",
- ["linebreak"]="al",
- ["uccode"]=0x0241,
- ["unicodeslot"]=0x0242, -- ɂ
- },
- {
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER B WITH STROKE",
- ["lccode"]=0x0180,
- ["linebreak"]="al",
- ["shcode"]=0x0042,
- ["unicodeslot"]=0x0243, -- Ƀ
- },
- {
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER U BAR",
- ["lccode"]=0x0289,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0244, -- Ʉ
- },
- {
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER TURNED V",
- ["lccode"]=0x028C,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0245, -- Ʌ
- },
- {
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER E WITH STROKE",
- ["lccode"]=0x0247,
- ["linebreak"]="al",
- ["shcode"]=0x0045,
- ["unicodeslot"]=0x0246, -- Ɇ
- },
- {
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER E WITH STROKE",
- ["linebreak"]="al",
- ["shcode"]=0x0065,
- ["uccode"]=0x0246,
- ["unicodeslot"]=0x0247, -- ɇ
- },
- {
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER J WITH STROKE",
- ["lccode"]=0x0249,
- ["linebreak"]="al",
- ["shcode"]=0x004A,
- ["unicodeslot"]=0x0248, -- Ɉ
- },
- {
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER J WITH STROKE",
- ["linebreak"]="al",
- ["shcode"]=0x006A,
- ["uccode"]=0x0248,
- ["unicodeslot"]=0x0249, -- ɉ
- },
- {
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL",
- ["lccode"]=0x024B,
- ["linebreak"]="al",
- ["unicodeslot"]=0x024A, -- Ɋ
- },
- {
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER Q WITH HOOK TAIL",
- ["linebreak"]="al",
- ["shcode"]=0x0071,
- ["uccode"]=0x024A,
- ["unicodeslot"]=0x024B, -- ɋ
- },
- {
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER R WITH STROKE",
- ["lccode"]=0x024D,
- ["linebreak"]="al",
- ["shcode"]=0x0052,
- ["unicodeslot"]=0x024C, -- Ɍ
- },
- {
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER R WITH STROKE",
- ["linebreak"]="al",
- ["shcode"]=0x0072,
- ["uccode"]=0x024C,
- ["unicodeslot"]=0x024D, -- ɍ
- },
- {
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER Y WITH STROKE",
- ["lccode"]=0x024F,
- ["linebreak"]="al",
- ["shcode"]=0x0059,
- ["unicodeslot"]=0x024E, -- Ɏ
- },
- {
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER Y WITH STROKE",
- ["linebreak"]="al",
- ["shcode"]=0x0079,
- ["uccode"]=0x024E,
- ["unicodeslot"]=0x024F, -- ɏ
- },
- {
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER TURNED A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0250, -- ɐ
+ category="cc",
+ description="CHARACTER TABULATION",
+ direction="s",
+ linebreak="ba",
+ unicodeslot=0x0009,
},
{
- ["category"]="ll",
- ["cjkwd"]="a",
- ["description"]="LATIN SMALL LETTER ALPHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0251, -- ɑ
+ category="cc",
+ description="LINE FEED (LF)",
+ direction="b",
+ linebreak="lf",
+ unicodeslot=0x000A,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER TURNED ALPHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0252, -- ɒ
+ category="cc",
+ description="LINE TABULATION",
+ direction="s",
+ linebreak="bk",
+ unicodeslot=0x000B,
},
{
- ["category"]="ll",
- ["contextname"]="bhook",
- ["description"]="LATIN SMALL LETTER B WITH HOOK",
- ["linebreak"]="al",
- ["shcode"]=0x0062,
- ["uccode"]=0x0181,
- ["unicodeslot"]=0x0253, -- ɓ
+ category="cc",
+ description="FORM FEED (FF)",
+ direction="ws",
+ linebreak="bk",
+ unicodeslot=0x000C,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER OPEN O",
- ["linebreak"]="al",
- ["uccode"]=0x0186,
- ["unicodeslot"]=0x0254, -- ɔ
+ category="cc",
+ description="CARRIAGE RETURN (CR)",
+ direction="b",
+ linebreak="cr",
+ unicodeslot=0x000D,
},
{
- ["category"]="ll",
- ["contextname"]="ccurl",
- ["description"]="LATIN SMALL LETTER C WITH CURL",
- ["linebreak"]="al",
- ["shcode"]=0x0063,
- ["unicodeslot"]=0x0255, -- ɕ
+ category="cc",
+ description="SHIFT OUT",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x000E,
},
{
- ["category"]="ll",
- ["contextname"]="dtail",
- ["description"]="LATIN SMALL LETTER D WITH TAIL",
- ["linebreak"]="al",
- ["shcode"]=0x0064,
- ["uccode"]=0x0189,
- ["unicodeslot"]=0x0256, -- ɖ
+ category="cc",
+ description="SHIFT IN",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x000F,
},
{
- ["category"]="ll",
- ["contextname"]="dhook",
- ["description"]="LATIN SMALL LETTER D WITH HOOK",
- ["linebreak"]="al",
- ["shcode"]=0x0064,
- ["uccode"]=0x018A,
- ["unicodeslot"]=0x0257, -- ɗ
+ category="cc",
+ description="DATA LINK ESCAPE",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x0010,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER REVERSED E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0258, -- ɘ
+ category="cc",
+ description="DEVICE CONTROL ONE",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x0011,
},
{
- ["category"]="ll",
- ["contextname"]="schwa",
- ["description"]="LATIN SMALL LETTER SCHWA",
- ["linebreak"]="al",
- ["uccode"]=0x018F,
- ["unicodeslot"]=0x0259, -- ə
+ category="cc",
+ description="DEVICE CONTROL TWO",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x0012,
},
{
- ["category"]="ll",
- ["contextname"]="schwahook",
- ["description"]="LATIN SMALL LETTER SCHWA WITH HOOK",
- ["linebreak"]="al",
- ["shcode"]=0x0259,
- ["unicodeslot"]=0x025A, -- ɚ
+ category="cc",
+ description="DEVICE CONTROL THREE",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x0013,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER OPEN E",
- ["linebreak"]="al",
- ["uccode"]=0x0190,
- ["unicodeslot"]=0x025B, -- ɛ
+ category="cc",
+ description="DEVICE CONTROL FOUR",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x0014,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER REVERSED OPEN E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x025C, -- ɜ
+ category="cc",
+ description="NEGATIVE ACKNOWLEDGE",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x0015,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER REVERSED OPEN E WITH HOOK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x025D, -- ɝ
+ category="cc",
+ description="SYNCHRONOUS IDLE",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x0016,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER CLOSED REVERSED OPEN E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x025E, -- ɞ
+ category="cc",
+ description="END OF TRANSMISSION BLOCK",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x0017,
},
{
- ["category"]="ll",
- ["contextname"]="dotlessjstroke",
- ["description"]="LATIN SMALL LETTER DOTLESS J WITH STROKE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x025F, -- ɟ
+ category="cc",
+ description="CANCEL",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x0018,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER G WITH HOOK",
- ["linebreak"]="al",
- ["shcode"]=0x0067,
- ["uccode"]=0x0193,
- ["unicodeslot"]=0x0260, -- ɠ
+ category="cc",
+ description="END OF MEDIUM",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x0019,
},
{
- ["category"]="ll",
- ["cjkwd"]="a",
- ["description"]="LATIN SMALL LETTER SCRIPT G",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0261, -- ɡ
+ category="cc",
+ description="SUBSTITUTE",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x001A,
},
{
- ["category"]="ll",
- ["description"]="LATIN LETTER SMALL CAPITAL G",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0262, -- ɢ
+ category="cc",
+ description="ESCAPE",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x001B,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER GAMMA",
- ["linebreak"]="al",
- ["uccode"]=0x0194,
- ["unicodeslot"]=0x0263, -- ɣ
+ category="cc",
+ description="INFORMATION SEPARATOR FOUR",
+ direction="b",
+ linebreak="cm",
+ unicodeslot=0x001C,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER RAMS HORN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0264, -- ɤ
+ category="cc",
+ description="INFORMATION SEPARATOR THREE",
+ direction="b",
+ linebreak="cm",
+ unicodeslot=0x001D,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER TURNED H",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0265, -- ɥ
+ category="cc",
+ description="INFORMATION SEPARATOR TWO",
+ direction="b",
+ linebreak="cm",
+ unicodeslot=0x001E,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER H WITH HOOK",
- ["linebreak"]="al",
- ["shcode"]=0x0068,
- ["unicodeslot"]=0x0266, -- ɦ
+ category="cc",
+ description="INFORMATION SEPARATOR ONE",
+ direction="s",
+ linebreak="cm",
+ unicodeslot=0x001F,
+ },
+ {
+ adobename="space",
+ category="zs",
+ cjkwd="na",
+ description="SPACE",
+ direction="ws",
+ linebreak="sp",
+ unicodeslot=0x0020,
+ },
+ {
+ adobename="exclam",
+ category="po",
+ cjkwd="na",
+ description="EXCLAMATION MARK",
+ direction="on",
+ linebreak="ex",
+ mathclass="close",
+ unicodeslot=0x0021,
+ },
+ {
+ adobename="quotedbl",
+ category="po",
+ cjkwd="na",
+ contextname="quotedbl",
+ description="QUOTATION MARK",
+ direction="on",
+ mathclass="default",
+ linebreak="qu",
+ unicodeslot=0x0022,
+ },
+ {
+ adobename="numbersign",
+ category="po",
+ cjkwd="na",
+ description="NUMBER SIGN",
+ direction="et",
+ linebreak="al",
+ unicodeslot=0x0023,
+ },
+ {
+ adobename="dollar",
+ category="sc",
+ cjkwd="na",
+ contextname="textdollar",
+ description="DOLLAR SIGN",
+ direction="et",
+ linebreak="pr",
+ unicodeslot=0x0024,
+ },
+ {
+ adobename="percent",
+ category="po",
+ cjkwd="na",
+ contextname="percent",
+ description="PERCENT SIGN",
+ direction="et",
+ linebreak="po",
+ unicodeslot=0x0025,
+ },
+ {
+ adobename="ampersand",
+ category="po",
+ cjkwd="na",
+ description="AMPERSAND",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x0026,
+ },
+ {
+ adobename="quotesingle",
+ category="po",
+ cjkwd="na",
+ contextname="quotesingle",
+ description="APOSTROPHE",
+ direction="on",
+ linebreak="qu",
+ mathclass="default",
+ unicodeslot=0x0027,
+ },
+ {
+ adobename="parenleft",
+ category="ps",
+ cjkwd="na",
+ description="LEFT PARENTHESIS",
+ direction="on",
+ linebreak="op",
+ mathclass="open",
+ mathname="lparent",
+ mirror=0x0029,
+ unicodeslot=0x0028,
+ },
+ {
+ adobename="parenright",
+ category="pe",
+ cjkwd="na",
+ description="RIGHT PARENTHESIS",
+ direction="on",
+ linebreak="cl",
+ mathclass="close",
+ mathname="rparent",
+ mirror=0x0028,
+ unicodeslot=0x0029,
+ },
+ {
+ adobename="asterisk",
+ category="po",
+ cjkwd="na",
+ description="ASTERISK",
+ direction="on",
+ linebreak="al",
+ mathclass="binary",
+ mathname="ast",
+ unicodeslot=0x002A,
+ },
+ {
+ adobename="plus",
+ category="sm",
+ cjkwd="na",
+ description="PLUS SIGN",
+ direction="es",
+ linebreak="pr",
+ mathclass="binary",
+ unicodeslot=0x002B,
+ },
+ {
+ adobename="comma",
+ category="po",
+ cjkwd="na",
+ description="COMMA",
+ direction="cs",
+ linebreak="is",
+ mathclass="punctuation",
+ mathspec={
+ { class="punctuation", name="textcomma" },
+ { class="ord", name="mathcomma" },
+ },
+ unicodeslot=0x002C,
+ },
+ {
+ adobename="hyphen",
+ category="pd",
+ cjkwd="na",
+ description="HYPHEN-MINUS",
+ direction="es",
+ linebreak="hy",
+ mathsymbol=0x2212,
+ unicodeslot=0x002D,
+ },
+ {
+ adobename="period",
+ category="po",
+ cjkwd="na",
+ description="FULL STOP",
+ direction="cs",
+ linebreak="is",
+ mathclass="ord",
+ mathspec={
+ { class="ord", name="mathperiod" },
+ { class="punctuation", name="textperiod" },
+ { class="punctuation", name="ldotp" },
+ },
+ unicodeslot=0x002E,
+ },
+ {
+ adobename="slash",
+ category="po",
+ cjkwd="na",
+ contextname="textslash",
+ description="SOLIDUS",
+ direction="cs",
+ linebreak="sy",
+ mathsymbol=0x2044,
+ unicodeslot=0x002F,
+ },
+ {
+ adobename="zero",
+ category="nd",
+ cjkwd="na",
+ description="DIGIT ZERO",
+ direction="en",
+ linebreak="nu",
+ mathclass="number",
+ unicodeslot=0x0030,
+ },
+ {
+ adobename="one",
+ category="nd",
+ cjkwd="na",
+ description="DIGIT ONE",
+ direction="en",
+ linebreak="nu",
+ mathclass="number",
+ unicodeslot=0x0031,
+ },
+ {
+ adobename="two",
+ category="nd",
+ cjkwd="na",
+ description="DIGIT TWO",
+ direction="en",
+ linebreak="nu",
+ mathclass="number",
+ unicodeslot=0x0032,
+ },
+ {
+ adobename="three",
+ category="nd",
+ cjkwd="na",
+ description="DIGIT THREE",
+ direction="en",
+ linebreak="nu",
+ mathclass="number",
+ unicodeslot=0x0033,
+ },
+ {
+ adobename="four",
+ category="nd",
+ cjkwd="na",
+ description="DIGIT FOUR",
+ direction="en",
+ linebreak="nu",
+ mathclass="number",
+ unicodeslot=0x0034,
+ },
+ {
+ adobename="five",
+ category="nd",
+ cjkwd="na",
+ description="DIGIT FIVE",
+ direction="en",
+ linebreak="nu",
+ mathclass="number",
+ unicodeslot=0x0035,
+ },
+ {
+ adobename="six",
+ category="nd",
+ cjkwd="na",
+ description="DIGIT SIX",
+ direction="en",
+ linebreak="nu",
+ mathclass="number",
+ unicodeslot=0x0036,
+ },
+ {
+ adobename="seven",
+ category="nd",
+ cjkwd="na",
+ description="DIGIT SEVEN",
+ direction="en",
+ linebreak="nu",
+ mathclass="number",
+ unicodeslot=0x0037,
+ },
+ {
+ adobename="eight",
+ category="nd",
+ cjkwd="na",
+ description="DIGIT EIGHT",
+ direction="en",
+ linebreak="nu",
+ mathclass="number",
+ unicodeslot=0x0038,
+ },
+ {
+ adobename="nine",
+ category="nd",
+ cjkwd="na",
+ description="DIGIT NINE",
+ direction="en",
+ linebreak="nu",
+ mathclass="number",
+ unicodeslot=0x0039,
+ },
+ {
+ adobename="colon",
+ category="po",
+ cjkwd="na",
+ description="COLON",
+ direction="cs",
+ linebreak="is",
+--~ mathclass="punctuation",
+ mathclass="relation",
+-- mathname="colon",
+ unicodeslot=0x003A,
+ },
+ {
+ adobename="semicolon",
+ category="po",
+ cjkwd="na",
+ description="SEMICOLON",
+ direction="on",
+ linebreak="is",
+ mathclass="punctuation",
+ unicodeslot=0x003B,
+ },
+ {
+ adobename="less",
+ category="sm",
+ cjkwd="na",
+ description="LESS-THAN SIGN",
+ direction="on",
+ linebreak="al",
+ mathclass="binary",
+ mathname="lt",
+ mirror=0x003E,
+ unicodeslot=0x003C,
+ },
+ {
+ adobename="equal",
+ category="sm",
+ cjkwd="na",
+ description="EQUALS SIGN",
+ direction="on",
+ linebreak="al",
+--~ mathclass="binary",
+ mathclass="relation",
+ mathname="eq",
+ unicodeslot=0x003D,
+ },
+ {
+ adobename="greater",
+ category="sm",
+ cjkwd="na",
+ description="GREATER-THAN SIGN",
+ direction="on",
+ linebreak="al",
+ mathclass="binary",
+ mathname="gt",
+ mirror=0x003C,
+ unicodeslot=0x003E,
+ },
+ {
+ adobename="question",
+ category="po",
+ cjkwd="na",
+ description="QUESTION MARK",
+ direction="on",
+ linebreak="ex",
+ mathclass="close",
+ unicodeslot=0x003F,
+ },
+ {
+ adobename="at",
+ category="po",
+ cjkwd="na",
+ description="COMMERCIAL AT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x0040,
+ },
+ {
+ adobename="A",
+ category="lu",
+ cjkwd="na",
+ description="LATIN CAPITAL LETTER A",
+ direction="l",
+ lccode=0x0061,
+ linebreak="al",
+ mathclass="variable",
+ unicodeslot=0x0041,
+ },
+ {
+ adobename="B",
+ category="lu",
+ cjkwd="na",
+ description="LATIN CAPITAL LETTER B",
+ direction="l",
+ lccode=0x0062,
+ linebreak="al",
+ mathclass="variable",
+ unicodeslot=0x0042,
+ },
+ {
+ adobename="C",
+ category="lu",
+ cjkwd="na",
+ description="LATIN CAPITAL LETTER C",
+ direction="l",
+ lccode=0x0063,
+ linebreak="al",
+ mathclass="variable",
+ unicodeslot=0x0043,
+ },
+ {
+ adobename="D",
+ category="lu",
+ cjkwd="na",
+ description="LATIN CAPITAL LETTER D",
+ direction="l",
+ lccode=0x0064,
+ linebreak="al",
+ mathclass="variable",
+ unicodeslot=0x0044,
+ },
+ {
+ adobename="E",
+ category="lu",
+ cjkwd="na",
+ description="LATIN CAPITAL LETTER E",
+ direction="l",
+ lccode=0x0065,
+ linebreak="al",
+ mathclass="variable",
+ unicodeslot=0x0045,
+ },
+ {
+ adobename="F",
+ category="lu",
+ cjkwd="na",
+ description="LATIN CAPITAL LETTER F",
+ direction="l",
+ lccode=0x0066,
+ linebreak="al",
+ mathclass="variable",
+ unicodeslot=0x0046,
+ },
+ {
+ adobename="G",
+ category="lu",
+ cjkwd="na",
+ description="LATIN CAPITAL LETTER G",
+ direction="l",
+ lccode=0x0067,
+ linebreak="al",
+ mathclass="variable",
+ unicodeslot=0x0047,
+ },
+ {
+ adobename="H",
+ category="lu",
+ cjkwd="na",
+ description="LATIN CAPITAL LETTER H",
+ direction="l",
+ lccode=0x0068,
+ linebreak="al",
+ mathclass="variable",
+ unicodeslot=0x0048,
+ },
+ {
+ adobename="I",
+ category="lu",
+ cjkwd="na",
+ description="LATIN CAPITAL LETTER I",
+ direction="l",
+ lccode=0x0069,
+ linebreak="al",
+ mathclass="variable",
+ unicodeslot=0x0049,
+ },
+ {
+ adobename="J",
+ category="lu",
+ cjkwd="na",
+ description="LATIN CAPITAL LETTER J",
+ direction="l",
+ lccode=0x006A,
+ linebreak="al",
+ mathclass="variable",
+ unicodeslot=0x004A,
+ },
+ {
+ adobename="K",
+ category="lu",
+ cjkwd="na",
+ description="LATIN CAPITAL LETTER K",
+ direction="l",
+ lccode=0x006B,
+ linebreak="al",
+ mathclass="variable",
+ unicodeslot=0x004B,
+ },
+ {
+ adobename="L",
+ category="lu",
+ cjkwd="na",
+ description="LATIN CAPITAL LETTER L",
+ direction="l",
+ lccode=0x006C,
+ linebreak="al",
+ mathclass="variable",
+ unicodeslot=0x004C,
+ },
+ {
+ adobename="M",
+ category="lu",
+ cjkwd="na",
+ description="LATIN CAPITAL LETTER M",
+ direction="l",
+ lccode=0x006D,
+ linebreak="al",
+ mathclass="variable",
+ unicodeslot=0x004D,
+ },
+ {
+ adobename="N",
+ category="lu",
+ cjkwd="na",
+ description="LATIN CAPITAL LETTER N",
+ direction="l",
+ lccode=0x006E,
+ linebreak="al",
+ mathclass="variable",
+ unicodeslot=0x004E,
+ },
+ {
+ adobename="O",
+ category="lu",
+ cjkwd="na",
+ description="LATIN CAPITAL LETTER O",
+ direction="l",
+ lccode=0x006F,
+ linebreak="al",
+ mathclass="variable",
+ unicodeslot=0x004F,
+ },
+ {
+ adobename="P",
+ category="lu",
+ cjkwd="na",
+ description="LATIN CAPITAL LETTER P",
+ direction="l",
+ lccode=0x0070,
+ linebreak="al",
+ mathclass="variable",
+ unicodeslot=0x0050,
+ },
+ {
+ adobename="Q",
+ category="lu",
+ cjkwd="na",
+ description="LATIN CAPITAL LETTER Q",
+ direction="l",
+ lccode=0x0071,
+ linebreak="al",
+ mathclass="variable",
+ unicodeslot=0x0051,
+ },
+ {
+ adobename="R",
+ category="lu",
+ cjkwd="na",
+ description="LATIN CAPITAL LETTER R",
+ direction="l",
+ lccode=0x0072,
+ linebreak="al",
+ mathclass="variable",
+ unicodeslot=0x0052,
+ },
+ {
+ adobename="S",
+ category="lu",
+ cjkwd="na",
+ description="LATIN CAPITAL LETTER S",
+ direction="l",
+ lccode=0x0073,
+ linebreak="al",
+ mathclass="variable",
+ unicodeslot=0x0053,
+ },
+ {
+ adobename="T",
+ category="lu",
+ cjkwd="na",
+ description="LATIN CAPITAL LETTER T",
+ direction="l",
+ lccode=0x0074,
+ linebreak="al",
+ mathclass="variable",
+ unicodeslot=0x0054,
+ },
+ {
+ adobename="U",
+ category="lu",
+ cjkwd="na",
+ description="LATIN CAPITAL LETTER U",
+ direction="l",
+ lccode=0x0075,
+ linebreak="al",
+ mathclass="variable",
+ unicodeslot=0x0055,
+ },
+ {
+ adobename="V",
+ category="lu",
+ cjkwd="na",
+ description="LATIN CAPITAL LETTER V",
+ direction="l",
+ lccode=0x0076,
+ linebreak="al",
+ mathclass="variable",
+ unicodeslot=0x0056,
+ },
+ {
+ adobename="W",
+ category="lu",
+ cjkwd="na",
+ description="LATIN CAPITAL LETTER W",
+ direction="l",
+ lccode=0x0077,
+ linebreak="al",
+ mathclass="variable",
+ unicodeslot=0x0057,
+ },
+ {
+ adobename="X",
+ category="lu",
+ cjkwd="na",
+ description="LATIN CAPITAL LETTER X",
+ direction="l",
+ lccode=0x0078,
+ linebreak="al",
+ mathclass="variable",
+ unicodeslot=0x0058,
+ },
+ {
+ adobename="Y",
+ category="lu",
+ cjkwd="na",
+ description="LATIN CAPITAL LETTER Y",
+ direction="l",
+ lccode=0x0079,
+ linebreak="al",
+ mathclass="variable",
+ unicodeslot=0x0059,
+ },
+ {
+ adobename="Z",
+ category="lu",
+ cjkwd="na",
+ description="LATIN CAPITAL LETTER Z",
+ direction="l",
+ lccode=0x007A,
+ linebreak="al",
+ mathclass="variable",
+ unicodeslot=0x005A,
+ },
+ {
+ adobename="bracketleft",
+ category="ps",
+ cjkwd="na",
+ description="LEFT SQUARE BRACKET",
+ direction="on",
+ linebreak="op",
+ mathclass="open",
+ mathname="lbracket",
+ mirror=0x005D,
+ unicodeslot=0x005B,
+ },
+ {
+ adobename="backslash",
+ category="po",
+ cjkwd="na",
+ contextname="textbackslash",
+ description="REVERSE SOLIDUS",
+ direction="on",
+ linebreak="pr",
+ mathclass="nothing",
+ mathname="backslash",
+ unicodeslot=0x005C,
+ },
+ {
+ adobename="bracketright",
+ category="pe",
+ cjkwd="na",
+ description="RIGHT SQUARE BRACKET",
+ direction="on",
+ linebreak="cl",
+ mathclass="close",
+ mathname="rbracket",
+ mirror=0x005B,
+ unicodeslot=0x005D,
+ },
+ {
+ adobename="asciicircum",
+ category="sk",
+ cjkwd="na",
+ contextname="textasciicircum",
+ description="CIRCUMFLEX ACCENT",
+ direction="on",
+ linebreak="al",
+ mathclass="accent",
+ unicodeslot=0x005E,
+ },
+ {
+ adobename="underscore",
+ category="pc",
+ cjkwd="na",
+ contextname="textunderscore",
+ description="LOW LINE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x005F,
+ },
+ {
+ adobename="grave",
+ category="sk",
+ cjkwd="na",
+ contextname="textgrave",
+ description="GRAVE ACCENT",
+ mathclass="accent",
+ mathname="grave",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x0060,
+ },
+ {
+ adobename="a",
+ category="ll",
+ cjkwd="na",
+ description="LATIN SMALL LETTER A",
+ direction="l",
+ linebreak="al",
+ mathclass="variable",
+ uccode=0x0041,
+ unicodeslot=0x0061,
+ },
+ {
+ adobename="b",
+ category="ll",
+ cjkwd="na",
+ description="LATIN SMALL LETTER B",
+ direction="l",
+ linebreak="al",
+ mathclass="variable",
+ uccode=0x0042,
+ unicodeslot=0x0062,
+ },
+ {
+ adobename="c",
+ category="ll",
+ cjkwd="na",
+ description="LATIN SMALL LETTER C",
+ direction="l",
+ linebreak="al",
+ mathclass="variable",
+ uccode=0x0043,
+ unicodeslot=0x0063,
+ },
+ {
+ adobename="d",
+ category="ll",
+ cjkwd="na",
+ description="LATIN SMALL LETTER D",
+ direction="l",
+ linebreak="al",
+ mathclass="variable",
+ uccode=0x0044,
+ unicodeslot=0x0064,
+ },
+ {
+ adobename="e",
+ category="ll",
+ cjkwd="na",
+ description="LATIN SMALL LETTER E",
+ direction="l",
+ linebreak="al",
+ mathclass="variable",
+ uccode=0x0045,
+ unicodeslot=0x0065,
+ },
+ {
+ adobename="f",
+ category="ll",
+ cjkwd="na",
+ description="LATIN SMALL LETTER F",
+ direction="l",
+ linebreak="al",
+ mathclass="variable",
+ uccode=0x0046,
+ unicodeslot=0x0066,
+ },
+ {
+ adobename="g",
+ category="ll",
+ cjkwd="na",
+ description="LATIN SMALL LETTER G",
+ direction="l",
+ linebreak="al",
+ mathclass="variable",
+ uccode=0x0047,
+ unicodeslot=0x0067,
+ },
+ {
+ adobename="h",
+ category="ll",
+ cjkwd="na",
+ description="LATIN SMALL LETTER H",
+ direction="l",
+ linebreak="al",
+ mathclass="variable",
+ uccode=0x0048,
+ unicodeslot=0x0068,
+ },
+ {
+ adobename="i",
+ category="ll",
+ cjkwd="na",
+ contextname="idotaccent",
+ description="LATIN SMALL LETTER I",
+ direction="l",
+ linebreak="al",
+ mathclass="variable",
+ uccode=0x0049,
+ unicodeslot=0x0069,
+ },
+ {
+ adobename="j",
+ category="ll",
+ cjkwd="na",
+ description="LATIN SMALL LETTER J",
+ direction="l",
+ linebreak="al",
+ mathclass="variable",
+ uccode=0x004A,
+ unicodeslot=0x006A,
+ },
+ {
+ adobename="k",
+ category="ll",
+ cjkwd="na",
+ description="LATIN SMALL LETTER K",
+ direction="l",
+ linebreak="al",
+ mathclass="variable",
+ uccode=0x004B,
+ unicodeslot=0x006B,
+ },
+ {
+ adobename="l",
+ category="ll",
+ cjkwd="na",
+ description="LATIN SMALL LETTER L",
+ direction="l",
+ linebreak="al",
+ mathclass="variable",
+ uccode=0x004C,
+ unicodeslot=0x006C,
+ },
+ {
+ adobename="m",
+ category="ll",
+ cjkwd="na",
+ description="LATIN SMALL LETTER M",
+ direction="l",
+ linebreak="al",
+ mathclass="variable",
+ uccode=0x004D,
+ unicodeslot=0x006D,
+ },
+ {
+ adobename="n",
+ category="ll",
+ cjkwd="na",
+ description="LATIN SMALL LETTER N",
+ direction="l",
+ linebreak="al",
+ mathclass="variable",
+ uccode=0x004E,
+ unicodeslot=0x006E,
+ },
+ {
+ adobename="o",
+ category="ll",
+ cjkwd="na",
+ description="LATIN SMALL LETTER O",
+ direction="l",
+ linebreak="al",
+ mathclass="variable",
+ uccode=0x004F,
+ unicodeslot=0x006F,
+ },
+ {
+ adobename="p",
+ category="ll",
+ cjkwd="na",
+ description="LATIN SMALL LETTER P",
+ direction="l",
+ linebreak="al",
+ mathclass="variable",
+ uccode=0x0050,
+ unicodeslot=0x0070,
+ },
+ {
+ adobename="q",
+ category="ll",
+ cjkwd="na",
+ description="LATIN SMALL LETTER Q",
+ direction="l",
+ linebreak="al",
+ mathclass="variable",
+ uccode=0x0051,
+ unicodeslot=0x0071,
+ },
+ {
+ adobename="r",
+ category="ll",
+ cjkwd="na",
+ description="LATIN SMALL LETTER R",
+ direction="l",
+ linebreak="al",
+ mathclass="variable",
+ uccode=0x0052,
+ unicodeslot=0x0072,
+ },
+ {
+ adobename="s",
+ category="ll",
+ cjkwd="na",
+ description="LATIN SMALL LETTER S",
+ direction="l",
+ linebreak="al",
+ mathclass="variable",
+ uccode=0x0053,
+ unicodeslot=0x0073,
+ },
+ {
+ adobename="t",
+ category="ll",
+ cjkwd="na",
+ description="LATIN SMALL LETTER T",
+ direction="l",
+ linebreak="al",
+ mathclass="variable",
+ uccode=0x0054,
+ unicodeslot=0x0074,
+ },
+ {
+ adobename="u",
+ category="ll",
+ cjkwd="na",
+ description="LATIN SMALL LETTER U",
+ direction="l",
+ linebreak="al",
+ mathclass="variable",
+ uccode=0x0055,
+ unicodeslot=0x0075,
+ },
+ {
+ adobename="v",
+ category="ll",
+ cjkwd="na",
+ description="LATIN SMALL LETTER V",
+ direction="l",
+ linebreak="al",
+ mathclass="variable",
+ uccode=0x0056,
+ unicodeslot=0x0076,
+ },
+ {
+ adobename="w",
+ category="ll",
+ cjkwd="na",
+ description="LATIN SMALL LETTER W",
+ direction="l",
+ linebreak="al",
+ mathclass="variable",
+ uccode=0x0057,
+ unicodeslot=0x0077,
+ },
+ {
+ adobename="x",
+ category="ll",
+ cjkwd="na",
+ description="LATIN SMALL LETTER X",
+ direction="l",
+ linebreak="al",
+ mathclass="variable",
+ uccode=0x0058,
+ unicodeslot=0x0078,
+ },
+ {
+ adobename="y",
+ category="ll",
+ cjkwd="na",
+ description="LATIN SMALL LETTER Y",
+ direction="l",
+ linebreak="al",
+ mathclass="variable",
+ uccode=0x0059,
+ unicodeslot=0x0079,
+ },
+ {
+ adobename="z",
+ category="ll",
+ cjkwd="na",
+ description="LATIN SMALL LETTER Z",
+ direction="l",
+ linebreak="al",
+ mathclass="variable",
+ uccode=0x005A,
+ unicodeslot=0x007A,
+ },
+ {
+ adobename="braceleft",
+ category="ps",
+ cjkwd="na",
+ contextname="textbraceleft",
+ description="LEFT CURLY BRACKET",
+ direction="on",
+ linebreak="op",
+ mathclass="open",
+ mathname="lbrace", -- was false
+ mirror=0x007D,
+ unicodeslot=0x007B,
+ },
+ {
+ adobename="bar",
+ category="sm",
+ cjkwd="na",
+ contextname="textbar",
+ description="VERTICAL LINE",
+ direction="on",
+ linebreak="ba",
+ mathspec={
+-- { class="binary", name="bar" },
+ { class="nothing", name="arrowvert" },
+ { class="delimiter", name="vert" },
+ { class="open", name="lvert" },
+ { class="close", name="rvert" },
+ { class="relation", name="mid" },
+ },
+ unicodeslot=0x007C,
+ },
+ {
+ adobename="braceright",
+ category="pe",
+ cjkwd="na",
+ contextname="textbraceright",
+ description="RIGHT CURLY BRACKET",
+ direction="on",
+ linebreak="cl",
+ mathclass="close",
+ mathname="rbrace", -- was false
+ mirror=0x007B,
+ unicodeslot=0x007D,
+ },
+ {
+ adobename="asciitilde",
+ category="sm",
+ cjkwd="na",
+ contextname="textasciitilde",
+ description="TILDE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x007E,
+ },
+ {
+ category="cc",
+ description="DELETE",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x007F,
+ },
+ {
+ category="cc",
+ description="NONE",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x0080,
+ },
+ {
+ category="cc",
+ description="NONE",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x0081,
+ },
+ {
+ category="cc",
+ description="BREAK PERMITTED HERE",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x0082,
+ },
+ {
+ category="cc",
+ description="NO BREAK HERE",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x0083,
},
- {
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER HENG WITH HOOK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0267, -- ɧ
+ {
+ category="cc",
+ description="NONE",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x0084,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER I WITH STROKE",
- ["linebreak"]="al",
- ["shcode"]=0x0069,
- ["uccode"]=0x0197,
- ["unicodeslot"]=0x0268, -- ɨ
+ category="cc",
+ description="NEXT LINE (NEL)",
+ direction="b",
+ linebreak="nl",
+ unicodeslot=0x0085,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER IOTA",
- ["linebreak"]="al",
- ["uccode"]=0x0196,
- ["unicodeslot"]=0x0269, -- ɩ
+ category="cc",
+ description="START OF SELECTED AREA",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x0086,
},
{
- ["category"]="ll",
- ["description"]="LATIN LETTER SMALL CAPITAL I",
- ["linebreak"]="al",
- ["unicodeslot"]=0x026A, -- ɪ
+ category="cc",
+ description="END OF SELECTED AREA",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x0087,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER L WITH MIDDLE TILDE",
- ["linebreak"]="al",
- ["shcode"]=0x006C,
- ["uccode"]=0x2C62,
- ["unicodeslot"]=0x026B, -- ɫ
+ category="cc",
+ description="CHARACTER TABULATION SET",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x0088,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER L WITH BELT",
- ["linebreak"]="al",
- ["shcode"]=0x006C,
- ["unicodeslot"]=0x026C, -- ɬ
+ category="cc",
+ description="CHARACTER TABULATION WITH JUSTIFICATION",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x0089,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER L WITH RETROFLEX HOOK",
- ["linebreak"]="al",
- ["shcode"]=0x006C,
- ["unicodeslot"]=0x026D, -- ɭ
+ category="cc",
+ description="LINE TABULATION SET",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x008A,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER LEZH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x026E, -- ɮ
+ category="cc",
+ description="PARTIAL LINE FORWARD",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x008B,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER TURNED M",
- ["linebreak"]="al",
- ["uccode"]=0x019C,
- ["unicodeslot"]=0x026F, -- ɯ
+ category="cc",
+ description="PARTIAL LINE BACKWARD",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x008C,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER TURNED M WITH LONG LEG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0270, -- ɰ
+ category="cc",
+ description="REVERSE LINE FEED",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x008D,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER M WITH HOOK",
- ["linebreak"]="al",
- ["shcode"]=0x006D,
- ["unicodeslot"]=0x0271, -- ɱ
+ category="cc",
+ description="SINGLE SHIFT TWO",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x008E,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER N WITH LEFT HOOK",
- ["linebreak"]="al",
- ["shcode"]=0x006E,
- ["uccode"]=0x019D,
- ["unicodeslot"]=0x0272, -- ɲ
+ category="cc",
+ description="SINGLE SHIFT THREE",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x008F,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER N WITH RETROFLEX HOOK",
- ["linebreak"]="al",
- ["shcode"]=0x006E,
- ["unicodeslot"]=0x0273, -- ɳ
+ category="cc",
+ description="DEVICE CONTROL STRING",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x0090,
},
{
- ["category"]="ll",
- ["description"]="LATIN LETTER SMALL CAPITAL N",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0274, -- ɴ
+ category="cc",
+ description="PRIVATE USE ONE",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x0091,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER BARRED O",
- ["linebreak"]="al",
- ["uccode"]=0x019F,
- ["unicodeslot"]=0x0275, -- ɵ
+ category="cc",
+ description="PRIVATE USE TWO",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x0092,
},
{
- ["category"]="ll",
- ["description"]="LATIN LETTER SMALL CAPITAL OE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0276, -- ɶ
+ category="cc",
+ description="SET TRANSMIT STATE",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x0093,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER CLOSED OMEGA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0277, -- ɷ
+ category="cc",
+ description="CANCEL CHARACTER",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x0094,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER PHI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0278, -- ɸ
+ category="cc",
+ description="MESSAGE WAITING",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x0095,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER TURNED R",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0279, -- ɹ
+ category="cc",
+ description="START OF GUARDED AREA",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x0096,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER TURNED R WITH LONG LEG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x027A, -- ɺ
+ category="cc",
+ description="END OF GUARDED AREA",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x0097,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER TURNED R WITH HOOK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x027B, -- ɻ
+ category="cc",
+ description="START OF STRING",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x0098,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER R WITH LONG LEG",
- ["linebreak"]="al",
- ["shcode"]=0x0072,
- ["unicodeslot"]=0x027C, -- ɼ
+ category="cc",
+ description="NONE",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x0099,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER R WITH TAIL",
- ["linebreak"]="al",
- ["shcode"]=0x0072,
- ["uccode"]=0x2C64,
- ["unicodeslot"]=0x027D, -- ɽ
+ category="cc",
+ description="SINGLE CHARACTER INTRODUCER",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x009A,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER R WITH FISHHOOK",
- ["linebreak"]="al",
- ["shcode"]=0x0072,
- ["unicodeslot"]=0x027E, -- ɾ
+ category="cc",
+ description="CONTROL SEQUENCE INTRODUCER",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x009B,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER REVERSED R WITH FISHHOOK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x027F, -- ɿ
+ category="cc",
+ description="STRING TERMINATOR",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x009C,
},
{
- ["category"]="ll",
- ["description"]="LATIN LETTER SMALL CAPITAL R",
- ["linebreak"]="al",
- ["uccode"]=0x01A6,
- ["unicodeslot"]=0x0280, -- ʀ
+ category="cc",
+ description="OPERATING SYSTEM COMMAND",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x009D,
},
{
- ["category"]="ll",
- ["description"]="LATIN LETTER SMALL CAPITAL INVERTED R",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0281, -- ʁ
- },
+ category="cc",
+ description="PRIVACY MESSAGE",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x009E,
+ },
+ {
+ category="cc",
+ description="APPLICATION PROGRAM COMMAND",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x009F,
+ },
+ {
+ category="zs",
+ contextname="nobreakspace",
+ description="NO-BREAK SPACE",
+ direction="cs",
+ linebreak="gl",
+ specials={ "nobreak", 0x0020 },
+ unicodeslot=0x00A0,
+ },
+ {
+ adobename="exclamdown",
+ category="po",
+ cjkwd="a",
+ contextname="exclamdown",
+ description="INVERTED EXCLAMATION MARK",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x00A1,
+ },
+ {
+ adobename="cent",
+ category="sc",
+ cjkwd="na",
+ contextname="textcent",
+ description="CENT SIGN",
+ direction="et",
+ linebreak="po",
+ unicodeslot=0x00A2,
+ },
+ {
+ adobename="sterling",
+ category="sc",
+ cjkwd="na",
+ contextname="textsterling",
+ description="POUND SIGN",
+ direction="et",
+ linebreak="pr",
+ unicodeslot=0x00A3,
+ },
+ {
+ adobename="currency",
+ category="sc",
+ cjkwd="a",
+ contextname="textcurrency",
+ description="CURRENCY SIGN",
+ direction="et",
+ linebreak="pr",
+ unicodeslot=0x00A4,
+ },
+ {
+ adobename="yen",
+ category="sc",
+ cjkwd="na",
+ contextname="textyen",
+ description="YEN SIGN",
+ direction="et",
+ linebreak="pr",
+ mathclass="nothing",
+ mathname="yen",
+ unicodeslot=0x00A5,
+ },
+ {
+ adobename="brokenbar",
+ category="so",
+ cjkwd="na",
+ contextname="textbrokenbar",
+ description="BROKEN BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x00A6,
+ },
+ {
+ adobename="section",
+ category="so",
+ cjkwd="a",
+ contextname="sectionmark",
+ description="SECTION SIGN",
+ direction="on",
+ linebreak="ai",
+ mathclass="box",
+ mathname="S",
+ unicodeslot=0x00A7,
+ },
+ {
+ adobename="dieresis",
+ category="sk",
+ cjkwd="a",
+ contextname="textdiaeresis",
+ description="DIAERESIS",
+ direction="on",
+ linebreak="ai",
+ mathclass="accent",
+ mathname="ddot",
+ specials={ "compat", 0x0020, 0x0308 },
+ unicodeslot=0x00A8,
+ },
+ {
+ adobename="copyright",
+ category="so",
+ contextname="copyright",
+ description="COPYRIGHT SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x00A9,
+ },
+ {
+ adobename="ordfeminine",
+ category="ll",
+ cjkwd="a",
+ contextname="ordfeminine",
+ description="FEMININE ORDINAL INDICATOR",
+ direction="l",
+ linebreak="ai",
+ specials={ "super", 0x0061 },
+ unicodeslot=0x00AA,
+ },
+ {
+ adobename="guillemotleft",
+ category="pi",
+ contextname="leftguillemot",
+ description="LEFT-POINTING DOUBLE ANGLE QUOTATION MARK",
+ direction="on",
+ linebreak="qu",
+ mirror=0x00BB,
+ unicodeslot=0x00AB,
+ },
+ {
+ adobename="logicalnot",
+ category="sm",
+ cjkwd="na",
+ contextname="textlognot",
+ description="NOT SIGN",
+ direction="on",
+ linebreak="al",
+ mathspec={
+ { class="ord", name="lnot" },
+ { class="ord", name="neg" },
+ },
+ unicodeslot=0x00AC,
+ },
+ {
+ category="cf",
+ cjkwd="a",
+ contextname="softhyphen",
+ description="SOFT HYPHEN",
+ direction="bn",
+ linebreak="ba",
+ unicodeslot=0x00AD,
+ },
+ {
+ adobename="registered",
+ category="so",
+ cjkwd="a",
+ contextname="registered",
+ description="REGISTERED SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x00AE,
+ },
+ {
+ adobename="macron",
+ category="sk",
+ cjkwd="na",
+ contextname="textmacron",
+ description="MACRON",
+ direction="on",
+ linebreak="al",
+ mathclass="accent",
+ mathname="bar",
+ specials={ "compat", 0x0020, 0x0304 },
+ unicodeslot=0x00AF,
+ },
+ {
+ adobename="degree",
+ category="so",
+ cjkwd="a",
+ contextname="textdegree",
+ description="DEGREE SIGN",
+ direction="et",
+ linebreak="po",
+ unicodeslot=0x00B0,
+ },
+ {
+ adobename="plusminus",
+ category="sm",
+ cjkwd="a",
+ contextname="textpm",
+ description="PLUS-MINUS SIGN",
+ direction="et",
+ linebreak="pr",
+ mathclass="binary",
+ mathname="pm",
+ unicodeslot=0x00B1,
+ },
+ {
+ category="no",
+ cjkwd="a",
+ contextname="twosuperior",
+ description="SUPERSCRIPT TWO",
+ direction="en",
+ linebreak="ai",
+ specials={ "super", 0x0032 },
+ unicodeslot=0x00B2,
+ },
+ {
+ category="no",
+ cjkwd="a",
+ contextname="threesuperior",
+ description="SUPERSCRIPT THREE",
+ direction="en",
+ linebreak="ai",
+ specials={ "super", 0x0033 },
+ unicodeslot=0x00B3,
+ },
+ {
+ adobename="acute",
+ category="sk",
+ cjkwd="a",
+ contextname="textacute",
+ description="ACUTE ACCENT",
+ direction="on",
+ linebreak="bb",
+ mathclass="accent",
+ mathname="acute",
+ specials={ "compat", 0x0020, 0x0301 },
+ unicodeslot=0x00B4,
+ },
+ {
+ adobename="mu",
+ category="ll",
+ contextname="textmu",
+ description="MICRO SIGN",
+ direction="l",
+ linebreak="al",
+ specials={ "compat", 0x03BC },
+ uccode=0x039C,
+ unicodeslot=0x00B5,
+ },
+ {
+ adobename="paragraph",
+ category="so",
+ cjkwd="a",
+ contextname="paragraphmark",
+ description="PILCROW SIGN",
+ direction="on",
+ linebreak="ai",
+ mathclass="box",
+ mathname="P",
+ unicodeslot=0x00B6,
+ },
+ {
+ adobename="periodcentered",
+ category="po",
+ cjkwd="a",
+ contextname="periodcentered",
+ description="MIDDLE DOT",
+ direction="on",
+ linebreak="ai",
+ mathclass="binary",
+ mathname="centerdot",
+ unicodeslot=0x00B7,
+ },
+ {
+ adobename="cedilla",
+ category="sk",
+ cjkwd="a",
+ contextname="textcedilla",
+ description="CEDILLA",
+ direction="on",
+ linebreak="ai",
+ specials={ "compat", 0x0020, 0x0327 },
+ unicodeslot=0x00B8,
+ },
+ {
+ category="no",
+ cjkwd="a",
+ contextname="onesuperior",
+ description="SUPERSCRIPT ONE",
+ direction="en",
+ linebreak="ai",
+ specials={ "super", 0x0031 },
+ unicodeslot=0x00B9,
+ },
+ {
+ adobename="ordmasculine",
+ category="ll",
+ cjkwd="a",
+ contextname="ordmasculine",
+ description="MASCULINE ORDINAL INDICATOR",
+ direction="l",
+ linebreak="ai",
+ specials={ "super", 0x006F },
+ unicodeslot=0x00BA,
+ },
+ {
+ adobename="guillemotright",
+ category="pf",
+ contextname="rightguillemot",
+ description="RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK",
+ direction="on",
+ linebreak="qu",
+ mirror=0x00AB,
+ unicodeslot=0x00BB,
+ },
+ {
+ adobename="onequarter",
+ category="no",
+ cjkwd="a",
+ contextname="onequarter",
+ description="VULGAR FRACTION ONE QUARTER",
+ direction="on",
+ linebreak="ai",
+ specials={ "fraction", 0x0031, 0x2044, 0x0034 },
+ unicodeslot=0x00BC,
+ },
+ {
+ adobename="onehalf",
+ category="no",
+ cjkwd="a",
+ contextname="onehalf",
+ description="VULGAR FRACTION ONE HALF",
+ direction="on",
+ linebreak="ai",
+ specials={ "fraction", 0x0031, 0x2044, 0x0032 },
+ unicodeslot=0x00BD,
+ },
+ {
+ adobename="threequarters",
+ category="no",
+ cjkwd="a",
+ contextname="threequarter",
+ description="VULGAR FRACTION THREE QUARTERS",
+ direction="on",
+ linebreak="ai",
+ specials={ "fraction", 0x0033, 0x2044, 0x0034 },
+ unicodeslot=0x00BE,
+ },
+ {
+ adobename="questiondown",
+ category="po",
+ cjkwd="a",
+ contextname="questiondown",
+ description="INVERTED QUESTION MARK",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x00BF,
+ },
+ {
+ adobename="Agrave",
+ category="lu",
+ contextname="Agrave",
+ description="LATIN CAPITAL LETTER A WITH GRAVE",
+ direction="l",
+ lccode=0x00E0,
+ linebreak="al",
+ shcode=0x0041,
+ specials={ "char", 0x0041, 0x0300 },
+ unicodeslot=0x00C0,
+ },
+ {
+ adobename="Aacute",
+ category="lu",
+ contextname="Aacute",
+ description="LATIN CAPITAL LETTER A WITH ACUTE",
+ direction="l",
+ lccode=0x00E1,
+ linebreak="al",
+ shcode=0x0041,
+ specials={ "char", 0x0041, 0x0301 },
+ unicodeslot=0x00C1,
+ },
+ {
+ adobename="Acircumflex",
+ category="lu",
+ contextname="Acircumflex",
+ description="LATIN CAPITAL LETTER A WITH CIRCUMFLEX",
+ direction="l",
+ lccode=0x00E2,
+ linebreak="al",
+ shcode=0x0041,
+ specials={ "char", 0x0041, 0x0302 },
+ unicodeslot=0x00C2,
+ },
+ {
+ adobename="Atilde",
+ category="lu",
+ contextname="Atilde",
+ description="LATIN CAPITAL LETTER A WITH TILDE",
+ direction="l",
+ lccode=0x00E3,
+ linebreak="al",
+ shcode=0x0041,
+ specials={ "char", 0x0041, 0x0303 },
+ unicodeslot=0x00C3,
+ },
+ {
+ adobename="Adieresis",
+ category="lu",
+ contextname="Adiaeresis",
+ description="LATIN CAPITAL LETTER A WITH DIAERESIS",
+ direction="l",
+ lccode=0x00E4,
+ linebreak="al",
+ shcode=0x0041,
+ specials={ "char", 0x0041, 0x0308 },
+ unicodeslot=0x00C4,
+ },
+ {
+ adobename="Aring",
+ category="lu",
+ contextname="Aring",
+ description="LATIN CAPITAL LETTER A WITH RING ABOVE",
+ direction="l",
+ lccode=0x00E5,
+ linebreak="al",
+ shcode=0x0041,
+ specials={ "char", 0x0041, 0x030A },
+ unicodeslot=0x00C5,
+ },
+ {
+ adobename="AE",
+ category="lu",
+ cjkwd="a",
+ contextname="AEligature",
+ description="LATIN CAPITAL LETTER AE",
+ direction="l",
+ lccode=0x00E6,
+ linebreak="al",
+ shcode={ 0x0041, 0x0045 },
+ unicodeslot=0x00C6,
+ },
+ {
+ adobename="Ccedilla",
+ category="lu",
+ contextname="Ccedilla",
+ description="LATIN CAPITAL LETTER C WITH CEDILLA",
+ direction="l",
+ lccode=0x00E7,
+ linebreak="al",
+ shcode=0x0043,
+ specials={ "char", 0x0043, 0x0327 },
+ unicodeslot=0x00C7,
+ },
+ {
+ adobename="Egrave",
+ category="lu",
+ contextname="Egrave",
+ description="LATIN CAPITAL LETTER E WITH GRAVE",
+ direction="l",
+ lccode=0x00E8,
+ linebreak="al",
+ shcode=0x0045,
+ specials={ "char", 0x0045, 0x0300 },
+ unicodeslot=0x00C8,
+ },
+ {
+ adobename="Eacute",
+ category="lu",
+ contextname="Eacute",
+ description="LATIN CAPITAL LETTER E WITH ACUTE",
+ direction="l",
+ lccode=0x00E9,
+ linebreak="al",
+ shcode=0x0045,
+ specials={ "char", 0x0045, 0x0301 },
+ unicodeslot=0x00C9,
+ },
+ {
+ adobename="Ecircumflex",
+ category="lu",
+ contextname="Ecircumflex",
+ description="LATIN CAPITAL LETTER E WITH CIRCUMFLEX",
+ direction="l",
+ lccode=0x00EA,
+ linebreak="al",
+ shcode=0x0045,
+ specials={ "char", 0x0045, 0x0302 },
+ unicodeslot=0x00CA,
+ },
+ {
+ adobename="Edieresis",
+ category="lu",
+ contextname="Ediaeresis",
+ description="LATIN CAPITAL LETTER E WITH DIAERESIS",
+ direction="l",
+ lccode=0x00EB,
+ linebreak="al",
+ shcode=0x0045,
+ specials={ "char", 0x0045, 0x0308 },
+ unicodeslot=0x00CB,
+ },
+ {
+ adobename="Igrave",
+ category="lu",
+ contextname="Igrave",
+ description="LATIN CAPITAL LETTER I WITH GRAVE",
+ direction="l",
+ lccode=0x00EC,
+ linebreak="al",
+ shcode=0x0049,
+ specials={ "char", 0x0049, 0x0300 },
+ unicodeslot=0x00CC,
+ },
+ {
+ adobename="Iacute",
+ category="lu",
+ contextname="Iacute",
+ description="LATIN CAPITAL LETTER I WITH ACUTE",
+ direction="l",
+ lccode=0x00ED,
+ linebreak="al",
+ shcode=0x0049,
+ specials={ "char", 0x0049, 0x0301 },
+ unicodeslot=0x00CD,
+ },
+ {
+ adobename="Icircumflex",
+ category="lu",
+ contextname="Icircumflex",
+ description="LATIN CAPITAL LETTER I WITH CIRCUMFLEX",
+ direction="l",
+ lccode=0x00EE,
+ linebreak="al",
+ shcode=0x0049,
+ specials={ "char", 0x0049, 0x0302 },
+ unicodeslot=0x00CE,
+ },
+ {
+ adobename="Idieresis",
+ category="lu",
+ contextname="Idiaeresis",
+ description="LATIN CAPITAL LETTER I WITH DIAERESIS",
+ direction="l",
+ lccode=0x00EF,
+ linebreak="al",
+ shcode=0x0049,
+ specials={ "char", 0x0049, 0x0308 },
+ unicodeslot=0x00CF,
+ },
+ {
+ adobename="Eth",
+ category="lu",
+ cjkwd="a",
+ contextname="Eth",
+ description="LATIN CAPITAL LETTER ETH",
+ direction="l",
+ lccode=0x00F0,
+ linebreak="al",
+ unicodeslot=0x00D0,
+ },
+ {
+ adobename="Ntilde",
+ category="lu",
+ contextname="Ntilde",
+ description="LATIN CAPITAL LETTER N WITH TILDE",
+ direction="l",
+ lccode=0x00F1,
+ linebreak="al",
+ shcode=0x004E,
+ specials={ "char", 0x004E, 0x0303 },
+ unicodeslot=0x00D1,
+ },
+ {
+ adobename="Ograve",
+ category="lu",
+ contextname="Ograve",
+ description="LATIN CAPITAL LETTER O WITH GRAVE",
+ direction="l",
+ lccode=0x00F2,
+ linebreak="al",
+ shcode=0x004F,
+ specials={ "char", 0x004F, 0x0300 },
+ unicodeslot=0x00D2,
+ },
+ {
+ adobename="Oacute",
+ category="lu",
+ contextname="Oacute",
+ description="LATIN CAPITAL LETTER O WITH ACUTE",
+ direction="l",
+ lccode=0x00F3,
+ linebreak="al",
+ shcode=0x004F,
+ specials={ "char", 0x004F, 0x0301 },
+ unicodeslot=0x00D3,
+ },
+ {
+ adobename="Ocircumflex",
+ category="lu",
+ contextname="Ocircumflex",
+ description="LATIN CAPITAL LETTER O WITH CIRCUMFLEX",
+ direction="l",
+ lccode=0x00F4,
+ linebreak="al",
+ shcode=0x004F,
+ specials={ "char", 0x004F, 0x0302 },
+ unicodeslot=0x00D4,
+ },
+ {
+ adobename="Otilde",
+ category="lu",
+ contextname="Otilde",
+ description="LATIN CAPITAL LETTER O WITH TILDE",
+ direction="l",
+ lccode=0x00F5,
+ linebreak="al",
+ shcode=0x004F,
+ specials={ "char", 0x004F, 0x0303 },
+ unicodeslot=0x00D5,
+ },
+ {
+ adobename="Odieresis",
+ category="lu",
+ contextname="Odiaeresis",
+ description="LATIN CAPITAL LETTER O WITH DIAERESIS",
+ direction="l",
+ lccode=0x00F6,
+ linebreak="al",
+ shcode=0x004F,
+ specials={ "char", 0x004F, 0x0308 },
+ unicodeslot=0x00D6,
+ },
+ {
+ adobename="multiply",
+ category="sm",
+ cjkwd="a",
+ contextname="textmultiply",
+ description="MULTIPLICATION SIGN",
+ direction="on",
+ linebreak="ai",
+ mathclass="binary",
+ mathname="times",
+ unicodeslot=0x00D7,
+ },
+ {
+ adobename="Oslash",
+ category="lu",
+ cjkwd="a",
+ contextname="Ostroke",
+ description="LATIN CAPITAL LETTER O WITH STROKE",
+ direction="l",
+ lccode=0x00F8,
+ linebreak="al",
+ shcode=0x004F,
+ unicodeslot=0x00D8,
+ },
+ {
+ adobename="Ugrave",
+ category="lu",
+ contextname="Ugrave",
+ description="LATIN CAPITAL LETTER U WITH GRAVE",
+ direction="l",
+ lccode=0x00F9,
+ linebreak="al",
+ shcode=0x0055,
+ specials={ "char", 0x0055, 0x0300 },
+ unicodeslot=0x00D9,
+ },
+ {
+ adobename="Uacute",
+ category="lu",
+ contextname="Uacute",
+ description="LATIN CAPITAL LETTER U WITH ACUTE",
+ direction="l",
+ lccode=0x00FA,
+ linebreak="al",
+ shcode=0x0055,
+ specials={ "char", 0x0055, 0x0301 },
+ unicodeslot=0x00DA,
+ },
+ {
+ adobename="Ucircumflex",
+ category="lu",
+ contextname="Ucircumflex",
+ description="LATIN CAPITAL LETTER U WITH CIRCUMFLEX",
+ direction="l",
+ lccode=0x00FB,
+ linebreak="al",
+ shcode=0x0055,
+ specials={ "char", 0x0055, 0x0302 },
+ unicodeslot=0x00DB,
+ },
+ {
+ adobename="Udieresis",
+ category="lu",
+ contextname="Udiaeresis",
+ description="LATIN CAPITAL LETTER U WITH DIAERESIS",
+ direction="l",
+ lccode=0x00FC,
+ linebreak="al",
+ shcode=0x0055,
+ specials={ "char", 0x0055, 0x0308 },
+ unicodeslot=0x00DC,
+ },
+ {
+ adobename="Yacute",
+ category="lu",
+ contextname="Yacute",
+ description="LATIN CAPITAL LETTER Y WITH ACUTE",
+ direction="l",
+ lccode=0x00FD,
+ linebreak="al",
+ shcode=0x0059,
+ specials={ "char", 0x0059, 0x0301 },
+ unicodeslot=0x00DD,
+ },
+ {
+ adobename="Thorn",
+ category="lu",
+ cjkwd="a",
+ contextname="Thorn",
+ description="LATIN CAPITAL LETTER THORN",
+ direction="l",
+ lccode=0x00FE,
+ linebreak="al",
+ unicodeslot=0x00DE,
+ },
+ {
+ adobename="germandbls",
+ category="ll",
+ cjkwd="a",
+ contextname="ssharp",
+ description="LATIN SMALL LETTER SHARP S",
+ direction="l",
+ linebreak="al",
+ uccodes={ 0x0053, 0x0053 },
+ unicodeslot=0x00DF,
+ },
+ {
+ adobename="agrave",
+ category="ll",
+ cjkwd="a",
+ contextname="agrave",
+ description="LATIN SMALL LETTER A WITH GRAVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0061,
+ specials={ "char", 0x0061, 0x0300 },
+ uccode=0x00C0,
+ unicodeslot=0x00E0,
+ },
+ {
+ adobename="aacute",
+ category="ll",
+ cjkwd="a",
+ contextname="aacute",
+ description="LATIN SMALL LETTER A WITH ACUTE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0061,
+ specials={ "char", 0x0061, 0x0301 },
+ uccode=0x00C1,
+ unicodeslot=0x00E1,
+ },
+ {
+ adobename="acircumflex",
+ category="ll",
+ contextname="acircumflex",
+ description="LATIN SMALL LETTER A WITH CIRCUMFLEX",
+ direction="l",
+ linebreak="al",
+ shcode=0x0061,
+ specials={ "char", 0x0061, 0x0302 },
+ uccode=0x00C2,
+ unicodeslot=0x00E2,
+ },
+ {
+ adobename="atilde",
+ category="ll",
+ contextname="atilde",
+ description="LATIN SMALL LETTER A WITH TILDE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0061,
+ specials={ "char", 0x0061, 0x0303 },
+ uccode=0x00C3,
+ unicodeslot=0x00E3,
+ },
+ {
+ adobename="adieresis",
+ category="ll",
+ contextname="adiaeresis",
+ description="LATIN SMALL LETTER A WITH DIAERESIS",
+ direction="l",
+ linebreak="al",
+ shcode=0x0061,
+ specials={ "char", 0x0061, 0x0308 },
+ uccode=0x00C4,
+ unicodeslot=0x00E4,
+ },
+ {
+ adobename="aring",
+ category="ll",
+ contextname="aring",
+ description="LATIN SMALL LETTER A WITH RING ABOVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0061,
+ specials={ "char", 0x0061, 0x030A },
+ uccode=0x00C5,
+ unicodeslot=0x00E5,
+ },
+ {
+ adobename="ae",
+ category="ll",
+ cjkwd="a",
+ contextname="aeligature",
+ description="LATIN SMALL LETTER AE",
+ direction="l",
+ linebreak="al",
+ shcode={ 0x00E6, 0x00EA },
+ uccode=0x00C6,
+ unicodeslot=0x00E6,
+ },
+ {
+ adobename="ccedilla",
+ category="ll",
+ contextname="ccedilla",
+ description="LATIN SMALL LETTER C WITH CEDILLA",
+ direction="l",
+ linebreak="al",
+ shcode=0x0063,
+ specials={ "char", 0x0063, 0x0327 },
+ uccode=0x00C7,
+ unicodeslot=0x00E7,
+ },
+ {
+ adobename="egrave",
+ category="ll",
+ cjkwd="a",
+ contextname="egrave",
+ description="LATIN SMALL LETTER E WITH GRAVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0065,
+ specials={ "char", 0x0065, 0x0300 },
+ uccode=0x00C8,
+ unicodeslot=0x00E8,
+ },
+ {
+ adobename="eacute",
+ category="ll",
+ cjkwd="a",
+ contextname="eacute",
+ description="LATIN SMALL LETTER E WITH ACUTE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0065,
+ specials={ "char", 0x0065, 0x0301 },
+ uccode=0x00C9,
+ unicodeslot=0x00E9,
+ },
+ {
+ adobename="ecircumflex",
+ category="ll",
+ cjkwd="a",
+ contextname="ecircumflex",
+ description="LATIN SMALL LETTER E WITH CIRCUMFLEX",
+ direction="l",
+ linebreak="al",
+ shcode=0x0065,
+ specials={ "char", 0x0065, 0x0302 },
+ uccode=0x00CA,
+ unicodeslot=0x00EA,
+ },
+ {
+ adobename="edieresis",
+ category="ll",
+ contextname="ediaeresis",
+ description="LATIN SMALL LETTER E WITH DIAERESIS",
+ direction="l",
+ linebreak="al",
+ shcode=0x0065,
+ specials={ "char", 0x0065, 0x0308 },
+ uccode=0x00CB,
+ unicodeslot=0x00EB,
+ },
+ {
+ adobename="igrave",
+ category="ll",
+ cjkwd="a",
+ contextname="igrave",
+ description="LATIN SMALL LETTER I WITH GRAVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0069,
+ specials={ "char", 0x0069, 0x0300 },
+ uccode=0x00CC,
+ unicodeslot=0x00EC,
+ },
+ {
+ adobename="iacute",
+ category="ll",
+ cjkwd="a",
+ contextname="iacute",
+ description="LATIN SMALL LETTER I WITH ACUTE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0069,
+ specials={ "char", 0x0069, 0x0301 },
+ uccode=0x00CD,
+ unicodeslot=0x00ED,
+ },
+ {
+ adobename="icircumflex",
+ category="ll",
+ contextname="icircumflex",
+ description="LATIN SMALL LETTER I WITH CIRCUMFLEX",
+ direction="l",
+ linebreak="al",
+ shcode=0x0069,
+ specials={ "char", 0x0069, 0x0302 },
+ uccode=0x00CE,
+ unicodeslot=0x00EE,
+ },
+ {
+ adobename="idieresis",
+ category="ll",
+ contextname="idiaeresis",
+ description="LATIN SMALL LETTER I WITH DIAERESIS",
+ direction="l",
+ linebreak="al",
+ shcode=0x0069,
+ specials={ "char", 0x0069, 0x0308 },
+ uccode=0x00CF,
+ unicodeslot=0x00EF,
+ },
+ {
+ adobename="eth",
+ category="ll",
+ cjkwd="a",
+ --~ contextname="eth", -- AM: Should this be defined in text mode?
+ description="LATIN SMALL LETTER ETH",
+ direction="l",
+ linebreak="al",
+ mathclass="ord",
+ mathname="eth",
+ uccode=0x00D0,
+ unicodeslot=0x00F0,
+ },
+ {
+ adobename="ntilde",
+ category="ll",
+ contextname="ntilde",
+ description="LATIN SMALL LETTER N WITH TILDE",
+ direction="l",
+ linebreak="al",
+ shcode=0x006E,
+ specials={ "char", 0x006E, 0x0303 },
+ uccode=0x00D1,
+ unicodeslot=0x00F1,
+ },
+ {
+ adobename="ograve",
+ category="ll",
+ cjkwd="a",
+ contextname="ograve",
+ description="LATIN SMALL LETTER O WITH GRAVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x006F,
+ specials={ "char", 0x006F, 0x0300 },
+ uccode=0x00D2,
+ unicodeslot=0x00F2,
+ },
+ {
+ adobename="oacute",
+ category="ll",
+ cjkwd="a",
+ contextname="oacute",
+ description="LATIN SMALL LETTER O WITH ACUTE",
+ direction="l",
+ linebreak="al",
+ shcode=0x006F,
+ specials={ "char", 0x006F, 0x0301 },
+ uccode=0x00D3,
+ unicodeslot=0x00F3,
+ },
+ {
+ adobename="ocircumflex",
+ category="ll",
+ contextname="ocircumflex",
+ description="LATIN SMALL LETTER O WITH CIRCUMFLEX",
+ direction="l",
+ linebreak="al",
+ shcode=0x006F,
+ specials={ "char", 0x006F, 0x0302 },
+ uccode=0x00D4,
+ unicodeslot=0x00F4,
+ },
+ {
+ adobename="otilde",
+ category="ll",
+ contextname="otilde",
+ description="LATIN SMALL LETTER O WITH TILDE",
+ direction="l",
+ linebreak="al",
+ shcode=0x006F,
+ specials={ "char", 0x006F, 0x0303 },
+ uccode=0x00D5,
+ unicodeslot=0x00F5,
+ },
+ {
+ adobename="odieresis",
+ category="ll",
+ contextname="odiaeresis",
+ description="LATIN SMALL LETTER O WITH DIAERESIS",
+ direction="l",
+ linebreak="al",
+ shcode=0x006F,
+ specials={ "char", 0x006F, 0x0308 },
+ uccode=0x00D6,
+ unicodeslot=0x00F6,
+ },
+ {
+ adobename="divide",
+ category="sm",
+ cjkwd="a",
+ contextname="textdiv",
+ description="DIVISION SIGN",
+ direction="on",
+ linebreak="ai",
+ mathclass="binary",
+ mathname="div",
+ unicodeslot=0x00F7,
+ },
+ {
+ adobename="oslash",
+ category="ll",
+ cjkwd="a",
+ contextname="ostroke",
+ description="LATIN SMALL LETTER O WITH STROKE",
+ direction="l",
+ linebreak="al",
+ shcode=0x006F,
+ uccode=0x00D8,
+ unicodeslot=0x00F8,
+ },
+ {
+ adobename="ugrave",
+ category="ll",
+ cjkwd="a",
+ contextname="ugrave",
+ description="LATIN SMALL LETTER U WITH GRAVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0075,
+ specials={ "char", 0x0075, 0x0300 },
+ uccode=0x00D9,
+ unicodeslot=0x00F9,
+ },
+ {
+ adobename="uacute",
+ category="ll",
+ cjkwd="a",
+ contextname="uacute",
+ description="LATIN SMALL LETTER U WITH ACUTE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0075,
+ specials={ "char", 0x0075, 0x0301 },
+ uccode=0x00DA,
+ unicodeslot=0x00FA,
+ },
+ {
+ adobename="ucircumflex",
+ category="ll",
+ contextname="ucircumflex",
+ description="LATIN SMALL LETTER U WITH CIRCUMFLEX",
+ direction="l",
+ linebreak="al",
+ shcode=0x0075,
+ specials={ "char", 0x0075, 0x0302 },
+ uccode=0x00DB,
+ unicodeslot=0x00FB,
+ },
+ {
+ adobename="udieresis",
+ category="ll",
+ cjkwd="a",
+ contextname="udiaeresis",
+ description="LATIN SMALL LETTER U WITH DIAERESIS",
+ direction="l",
+ linebreak="al",
+ shcode=0x0075,
+ specials={ "char", 0x0075, 0x0308 },
+ uccode=0x00DC,
+ unicodeslot=0x00FC,
+ },
+ {
+ adobename="yacute",
+ category="ll",
+ contextname="yacute",
+ description="LATIN SMALL LETTER Y WITH ACUTE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0079,
+ specials={ "char", 0x0079, 0x0301 },
+ uccode=0x00DD,
+ unicodeslot=0x00FD,
+ },
+ {
+ adobename="thorn",
+ category="ll",
+ cjkwd="a",
+ contextname="thorn",
+ description="LATIN SMALL LETTER THORN",
+ direction="l",
+ linebreak="al",
+ uccode=0x00DE,
+ unicodeslot=0x00FE,
+ },
+ {
+ adobename="ydieresis",
+ category="ll",
+ contextname="ydiaeresis",
+ description="LATIN SMALL LETTER Y WITH DIAERESIS",
+ direction="l",
+ linebreak="al",
+ shcode=0x0079,
+ specials={ "char", 0x0079, 0x0308 },
+ uccode=0x0178,
+ unicodeslot=0x00FF,
+ },
+ {
+ adobename="Amacron",
+ category="lu",
+ contextname="Amacron",
+ description="LATIN CAPITAL LETTER A WITH MACRON",
+ direction="l",
+ lccode=0x0101,
+ linebreak="al",
+ shcode=0x0041,
+ specials={ "char", 0x0041, 0x0304 },
+ unicodeslot=0x0100,
+ },
+ {
+ adobename="amacron",
+ category="ll",
+ cjkwd="a",
+ contextname="amacron",
+ description="LATIN SMALL LETTER A WITH MACRON",
+ direction="l",
+ linebreak="al",
+ shcode=0x0061,
+ specials={ "char", 0x0061, 0x0304 },
+ uccode=0x0100,
+ unicodeslot=0x0101,
+ },
+ {
+ adobename="Abreve",
+ category="lu",
+ contextname="Abreve",
+ description="LATIN CAPITAL LETTER A WITH BREVE",
+ direction="l",
+ lccode=0x0103,
+ linebreak="al",
+ shcode=0x0041,
+ specials={ "char", 0x0041, 0x0306 },
+ unicodeslot=0x0102,
+ },
+ {
+ adobename="abreve",
+ category="ll",
+ contextname="abreve",
+ description="LATIN SMALL LETTER A WITH BREVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0061,
+ specials={ "char", 0x0061, 0x0306 },
+ uccode=0x0102,
+ unicodeslot=0x0103,
+ },
+ {
+ adobename="Aogonek",
+ category="lu",
+ contextname="Aogonek",
+ description="LATIN CAPITAL LETTER A WITH OGONEK",
+ direction="l",
+ lccode=0x0105,
+ linebreak="al",
+ shcode=0x0041,
+ specials={ "char", 0x0041, 0x0328 },
+ unicodeslot=0x0104,
+ },
+ {
+ adobename="aogonek",
+ category="ll",
+ contextname="aogonek",
+ description="LATIN SMALL LETTER A WITH OGONEK",
+ direction="l",
+ linebreak="al",
+ shcode=0x0061,
+ specials={ "char", 0x0061, 0x0328 },
+ uccode=0x0104,
+ unicodeslot=0x0105,
+ },
+ {
+ adobename="Cacute",
+ category="lu",
+ contextname="Cacute",
+ description="LATIN CAPITAL LETTER C WITH ACUTE",
+ direction="l",
+ lccode=0x0107,
+ linebreak="al",
+ shcode=0x0043,
+ specials={ "char", 0x0043, 0x0301 },
+ unicodeslot=0x0106,
+ },
+ {
+ adobename="cacute",
+ category="ll",
+ contextname="cacute",
+ description="LATIN SMALL LETTER C WITH ACUTE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0063,
+ specials={ "char", 0x0063, 0x0301 },
+ uccode=0x0106,
+ unicodeslot=0x0107,
+ },
+ {
+ adobename="Ccircumflex",
+ category="lu",
+ contextname="Ccircumflex",
+ description="LATIN CAPITAL LETTER C WITH CIRCUMFLEX",
+ direction="l",
+ lccode=0x0109,
+ linebreak="al",
+ shcode=0x0043,
+ specials={ "char", 0x0043, 0x0302 },
+ unicodeslot=0x0108,
+ },
+ {
+ adobename="ccircumflex",
+ category="ll",
+ contextname="ccircumflex",
+ description="LATIN SMALL LETTER C WITH CIRCUMFLEX",
+ direction="l",
+ linebreak="al",
+ shcode=0x0063,
+ specials={ "char", 0x0063, 0x0302 },
+ uccode=0x0108,
+ unicodeslot=0x0109,
+ },
+ {
+ adobename="Cdotaccent",
+ category="lu",
+ contextname="Cdotaccent",
+ description="LATIN CAPITAL LETTER C WITH DOT ABOVE",
+ direction="l",
+ lccode=0x010B,
+ linebreak="al",
+ shcode=0x0043,
+ specials={ "char", 0x0043, 0x0307 },
+ unicodeslot=0x010A,
+ },
+ {
+ adobename="cdotaccent",
+ category="ll",
+ contextname="cdotaccent",
+ description="LATIN SMALL LETTER C WITH DOT ABOVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0063,
+ specials={ "char", 0x0063, 0x0307 },
+ uccode=0x010A,
+ unicodeslot=0x010B,
+ },
+ {
+ adobename="Ccaron",
+ category="lu",
+ contextname="Ccaron",
+ description="LATIN CAPITAL LETTER C WITH CARON",
+ direction="l",
+ lccode=0x010D,
+ linebreak="al",
+ shcode=0x0043,
+ specials={ "char", 0x0043, 0x030C },
+ unicodeslot=0x010C,
+ },
+ {
+ adobename="ccaron",
+ category="ll",
+ contextname="ccaron",
+ description="LATIN SMALL LETTER C WITH CARON",
+ direction="l",
+ linebreak="al",
+ shcode=0x0063,
+ specials={ "char", 0x0063, 0x030C },
+ uccode=0x010C,
+ unicodeslot=0x010D,
+ },
+ {
+ adobename="Dcaron",
+ category="lu",
+ contextname="Dcaron",
+ description="LATIN CAPITAL LETTER D WITH CARON",
+ direction="l",
+ lccode=0x010F,
+ linebreak="al",
+ shcode=0x0044,
+ specials={ "char", 0x0044, 0x030C },
+ unicodeslot=0x010E,
+ },
+ {
+ adobename="dcaron",
+ category="ll",
+ contextname="dcaron",
+ description="LATIN SMALL LETTER D WITH CARON",
+ direction="l",
+ linebreak="al",
+ shcode=0x0064,
+ specials={ "char", 0x0064, 0x030C },
+ uccode=0x010E,
+ unicodeslot=0x010F,
+ },
+ {
+ adobename="Dcroat",
+ category="lu",
+ contextname="Dstroke",
+ description="LATIN CAPITAL LETTER D WITH STROKE",
+ direction="l",
+ lccode=0x0111,
+ linebreak="al",
+ shcode=0x0044,
+ unicodeslot=0x0110,
+ },
+ {
+ adobename="dcroat",
+ category="ll",
+ cjkwd="a",
+ contextname="dstroke",
+ description="LATIN SMALL LETTER D WITH STROKE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0064,
+ uccode=0x0110,
+ unicodeslot=0x0111,
+ },
+ {
+ adobename="Emacron",
+ category="lu",
+ contextname="Emacron",
+ description="LATIN CAPITAL LETTER E WITH MACRON",
+ direction="l",
+ lccode=0x0113,
+ linebreak="al",
+ shcode=0x0045,
+ specials={ "char", 0x0045, 0x0304 },
+ unicodeslot=0x0112,
+ },
+ {
+ adobename="emacron",
+ category="ll",
+ cjkwd="a",
+ contextname="emacron",
+ description="LATIN SMALL LETTER E WITH MACRON",
+ direction="l",
+ linebreak="al",
+ shcode=0x0065,
+ specials={ "char", 0x0065, 0x0304 },
+ uccode=0x0112,
+ unicodeslot=0x0113,
+ },
+ {
+ adobename="Ebreve",
+ category="lu",
+ contextname="Ebreve",
+ description="LATIN CAPITAL LETTER E WITH BREVE",
+ direction="l",
+ lccode=0x0115,
+ linebreak="al",
+ shcode=0x0045,
+ specials={ "char", 0x0045, 0x0306 },
+ unicodeslot=0x0114,
+ },
+ {
+ adobename="ebreve",
+ category="ll",
+ contextname="ebreve",
+ description="LATIN SMALL LETTER E WITH BREVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0065,
+ specials={ "char", 0x0065, 0x0306 },
+ uccode=0x0114,
+ unicodeslot=0x0115,
+ },
+ {
+ adobename="Edotaccent",
+ category="lu",
+ contextname="Edotaccent",
+ description="LATIN CAPITAL LETTER E WITH DOT ABOVE",
+ direction="l",
+ lccode=0x0117,
+ linebreak="al",
+ shcode=0x0045,
+ specials={ "char", 0x0045, 0x0307 },
+ unicodeslot=0x0116,
+ },
+ {
+ adobename="edotaccent",
+ category="ll",
+ contextname="edotaccent",
+ description="LATIN SMALL LETTER E WITH DOT ABOVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0065,
+ specials={ "char", 0x0065, 0x0307 },
+ uccode=0x0116,
+ unicodeslot=0x0117,
+ },
+ {
+ adobename="Eogonek",
+ category="lu",
+ contextname="Eogonek",
+ description="LATIN CAPITAL LETTER E WITH OGONEK",
+ direction="l",
+ lccode=0x0119,
+ linebreak="al",
+ shcode=0x0045,
+ specials={ "char", 0x0045, 0x0328 },
+ unicodeslot=0x0118,
+ },
+ {
+ adobename="eogonek",
+ category="ll",
+ contextname="eogonek",
+ description="LATIN SMALL LETTER E WITH OGONEK",
+ direction="l",
+ linebreak="al",
+ shcode=0x0065,
+ specials={ "char", 0x0065, 0x0328 },
+ uccode=0x0118,
+ unicodeslot=0x0119,
+ },
+ {
+ adobename="Ecaron",
+ category="lu",
+ contextname="Ecaron",
+ description="LATIN CAPITAL LETTER E WITH CARON",
+ direction="l",
+ lccode=0x011B,
+ linebreak="al",
+ shcode=0x0045,
+ specials={ "char", 0x0045, 0x030C },
+ unicodeslot=0x011A,
+ },
+ {
+ adobename="ecaron",
+ category="ll",
+ cjkwd="a",
+ contextname="ecaron",
+ description="LATIN SMALL LETTER E WITH CARON",
+ direction="l",
+ linebreak="al",
+ shcode=0x0065,
+ specials={ "char", 0x0065, 0x030C },
+ uccode=0x011A,
+ unicodeslot=0x011B,
+ },
+ {
+ adobename="Gcircumflex",
+ category="lu",
+ contextname="Gcircumflex",
+ description="LATIN CAPITAL LETTER G WITH CIRCUMFLEX",
+ direction="l",
+ lccode=0x011D,
+ linebreak="al",
+ shcode=0x0047,
+ specials={ "char", 0x0047, 0x0302 },
+ unicodeslot=0x011C,
+ },
+ {
+ adobename="gcircumflex",
+ category="ll",
+ contextname="gcircumflex",
+ description="LATIN SMALL LETTER G WITH CIRCUMFLEX",
+ direction="l",
+ linebreak="al",
+ shcode=0x0067,
+ specials={ "char", 0x0067, 0x0302 },
+ uccode=0x011C,
+ unicodeslot=0x011D,
+ },
+ {
+ adobename="Gbreve",
+ category="lu",
+ contextname="Gbreve",
+ description="LATIN CAPITAL LETTER G WITH BREVE",
+ direction="l",
+ lccode=0x011F,
+ linebreak="al",
+ shcode=0x0047,
+ specials={ "char", 0x0047, 0x0306 },
+ unicodeslot=0x011E,
+ },
+ {
+ adobename="gbreve",
+ category="ll",
+ contextname="gbreve",
+ description="LATIN SMALL LETTER G WITH BREVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0067,
+ specials={ "char", 0x0067, 0x0306 },
+ uccode=0x011E,
+ unicodeslot=0x011F,
+ },
+ {
+ adobename="Gdotaccent",
+ category="lu",
+ contextname="Gdotaccent",
+ description="LATIN CAPITAL LETTER G WITH DOT ABOVE",
+ direction="l",
+ lccode=0x0121,
+ linebreak="al",
+ shcode=0x0047,
+ specials={ "char", 0x0047, 0x0307 },
+ unicodeslot=0x0120,
+ },
+ {
+ adobename="gdotaccent",
+ category="ll",
+ contextname="gdotaccent",
+ description="LATIN SMALL LETTER G WITH DOT ABOVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0067,
+ specials={ "char", 0x0067, 0x0307 },
+ uccode=0x0120,
+ unicodeslot=0x0121,
+ },
+ {
+ adobename="Gcommaaccent",
+ category="lu",
+ contextname="Gcommaaccent",
+ description="LATIN CAPITAL LETTER G WITH CEDILLA",
+ direction="l",
+ lccode=0x0123,
+ linebreak="al",
+ shcode=0x0047,
+ specials={ "char", 0x0047, 0x0327 },
+ unicodeslot=0x0122,
+ },
+ {
+ adobename="gcommaaccent",
+ category="ll",
+ contextname="gcommaaccent",
+ description="LATIN SMALL LETTER G WITH CEDILLA",
+ direction="l",
+ linebreak="al",
+ shcode=0x0067,
+ specials={ "char", 0x0067, 0x0327 },
+ uccode=0x0122,
+ unicodeslot=0x0123,
+ },
+ {
+ adobename="Hcircumflex",
+ category="lu",
+ contextname="Hcircumflex",
+ description="LATIN CAPITAL LETTER H WITH CIRCUMFLEX",
+ direction="l",
+ lccode=0x0125,
+ linebreak="al",
+ shcode=0x0048,
+ specials={ "char", 0x0048, 0x0302 },
+ unicodeslot=0x0124,
+ },
+ {
+ adobename="hcircumflex",
+ category="ll",
+ contextname="hcircumflex",
+ description="LATIN SMALL LETTER H WITH CIRCUMFLEX",
+ direction="l",
+ linebreak="al",
+ shcode=0x0068,
+ specials={ "char", 0x0068, 0x0302 },
+ uccode=0x0124,
+ unicodeslot=0x0125,
+ },
+ {
+ adobename="Hbar",
+ category="lu",
+ cjkwd="a",
+ contextname="Hstroke",
+ description="LATIN CAPITAL LETTER H WITH STROKE",
+ direction="l",
+ lccode=0x0127,
+ linebreak="al",
+ shcode=0x0048,
+ unicodeslot=0x0126,
+ },
+ {
+ adobename="hbar",
+ category="ll",
+ cjkwd="a",
+ contextname="hstroke",
+ description="LATIN SMALL LETTER H WITH STROKE",
+ direction="l",
+ linebreak="al",
+ mathclass="ord",
+ mathname="hbar",
+ shcode=0x0068,
+ uccode=0x0126,
+ unicodeslot=0x0127,
+ },
+ {
+ adobename="Itilde",
+ category="lu",
+ contextname="Itilde",
+ description="LATIN CAPITAL LETTER I WITH TILDE",
+ direction="l",
+ lccode=0x0129,
+ linebreak="al",
+ shcode=0x0049,
+ specials={ "char", 0x0049, 0x0303 },
+ unicodeslot=0x0128,
+ },
+ {
+ adobename="itilde",
+ category="ll",
+ contextname="itilde",
+ description="LATIN SMALL LETTER I WITH TILDE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0069,
+ specials={ "char", 0x0069, 0x0303 },
+ uccode=0x0128,
+ unicodeslot=0x0129,
+ },
+ {
+ adobename="Imacron",
+ category="lu",
+ contextname="Imacron",
+ description="LATIN CAPITAL LETTER I WITH MACRON",
+ direction="l",
+ lccode=0x012B,
+ linebreak="al",
+ shcode=0x0049,
+ specials={ "char", 0x0049, 0x0304 },
+ unicodeslot=0x012A,
+ },
+ {
+ adobename="imacron",
+ category="ll",
+ cjkwd="a",
+ contextname="imacron",
+ description="LATIN SMALL LETTER I WITH MACRON",
+ direction="l",
+ linebreak="al",
+ shcode=0x0069,
+ specials={ "char", 0x0069, 0x0304 },
+ uccode=0x012A,
+ unicodeslot=0x012B,
+ },
+ {
+ adobename="Ibreve",
+ category="lu",
+ contextname="Ibreve",
+ description="LATIN CAPITAL LETTER I WITH BREVE",
+ direction="l",
+ lccode=0x012D,
+ linebreak="al",
+ shcode=0x0049,
+ specials={ "char", 0x0049, 0x0306 },
+ unicodeslot=0x012C,
+ },
+ {
+ adobename="ibreve",
+ category="ll",
+ contextname="ibreve",
+ description="LATIN SMALL LETTER I WITH BREVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0069,
+ specials={ "char", 0x0069, 0x0306 },
+ uccode=0x012C,
+ unicodeslot=0x012D,
+ },
+ {
+ adobename="Iogonek",
+ category="lu",
+ contextname="Iogonek",
+ description="LATIN CAPITAL LETTER I WITH OGONEK",
+ direction="l",
+ lccode=0x012F,
+ linebreak="al",
+ shcode=0x0049,
+ specials={ "char", 0x0049, 0x0328 },
+ unicodeslot=0x012E,
+ },
+ {
+ adobename="iogonek",
+ category="ll",
+ contextname="iogonek",
+ description="LATIN SMALL LETTER I WITH OGONEK",
+ direction="l",
+ linebreak="al",
+ shcode=0x0069,
+ specials={ "char", 0x0069, 0x0328 },
+ uccode=0x012E,
+ unicodeslot=0x012F,
+ },
+ {
+ adobename="Idotaccent",
+ category="lu",
+ contextname="Idotaccent",
+ description="LATIN CAPITAL LETTER I WITH DOT ABOVE",
+ direction="l",
+ lccode=0x0069,
+ linebreak="al",
+ shcode=0x0049,
+ specials={ "char", 0x0049, 0x0307 },
+ unicodeslot=0x0130,
+ },
+ {
+ adobename="dotlessi",
+ category="ll",
+ cjkwd="a",
+ contextname="dotlessi",
+ description="LATIN SMALL LETTER DOTLESS I",
+ direction="l",
+ linebreak="al",
+ uccode=0x0049,
+ unicodeslot=0x0131,
+ },
+ {
+ adobename="IJ",
+ category="lu",
+ cjkwd="a",
+ contextname="IJligature",
+ description="LATIN CAPITAL LIGATURE IJ",
+ direction="l",
+ lccode=0x0133,
+ linebreak="al",
+ shcode={ 0x0049, 0x004A },
+ specials={ "compat", 0x0049, 0x004A },
+ unicodeslot=0x0132,
+ },
+ {
+ adobename="ij",
+ category="ll",
+ cjkwd="a",
+ contextname="ijligature",
+ description="LATIN SMALL LIGATURE IJ",
+ direction="l",
+ linebreak="al",
+ shcode={ 0x0069, 0x006A },
+ specials={ "compat", 0x0069, 0x006A },
+ uccode=0x0132,
+ unicodeslot=0x0133,
+ },
+ {
+ adobename="Jcircumflex",
+ category="lu",
+ contextname="Jcircumflex",
+ description="LATIN CAPITAL LETTER J WITH CIRCUMFLEX",
+ direction="l",
+ lccode=0x0135,
+ linebreak="al",
+ shcode=0x004A,
+ specials={ "char", 0x004A, 0x0302 },
+ unicodeslot=0x0134,
+ },
+ {
+ adobename="jcircumflex",
+ category="ll",
+ contextname="jcircumflex",
+ description="LATIN SMALL LETTER J WITH CIRCUMFLEX",
+ direction="l",
+ linebreak="al",
+ shcode=0x006A,
+ specials={ "char", 0x006A, 0x0302 },
+ uccode=0x0134,
+ unicodeslot=0x0135,
+ },
+ {
+ adobename="Kcommaaccent",
+ category="lu",
+ contextname="Kcommaaccent",
+ description="LATIN CAPITAL LETTER K WITH CEDILLA",
+ direction="l",
+ lccode=0x0137,
+ linebreak="al",
+ shcode=0x004B,
+ specials={ "char", 0x004B, 0x0327 },
+ unicodeslot=0x0136,
+ },
+ {
+ adobename="kcommaaccent",
+ category="ll",
+ contextname="kcommaaccent",
+ description="LATIN SMALL LETTER K WITH CEDILLA",
+ direction="l",
+ linebreak="al",
+ shcode=0x006B,
+ specials={ "char", 0x006B, 0x0327 },
+ uccode=0x0136,
+ unicodeslot=0x0137,
+ },
+ {
+ adobename="kgreenlandic",
+ category="ll",
+ cjkwd="a",
+ contextname="kkra",
+ description="LATIN SMALL LETTER KRA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0138,
+ },
+ {
+ adobename="Lacute",
+ category="lu",
+ contextname="Lacute",
+ description="LATIN CAPITAL LETTER L WITH ACUTE",
+ direction="l",
+ lccode=0x013A,
+ linebreak="al",
+ shcode=0x004C,
+ specials={ "char", 0x004C, 0x0301 },
+ unicodeslot=0x0139,
+ },
+ {
+ adobename="lacute",
+ category="ll",
+ contextname="lacute",
+ description="LATIN SMALL LETTER L WITH ACUTE",
+ direction="l",
+ linebreak="al",
+ shcode=0x006C,
+ specials={ "char", 0x006C, 0x0301 },
+ uccode=0x0139,
+ unicodeslot=0x013A,
+ },
+ {
+ adobename="Lcommaaccent",
+ category="lu",
+ contextname="Lcommaaccent",
+ description="LATIN CAPITAL LETTER L WITH CEDILLA",
+ direction="l",
+ lccode=0x013C,
+ linebreak="al",
+ shcode=0x004C,
+ specials={ "char", 0x004C, 0x0327 },
+ unicodeslot=0x013B,
+ },
+ {
+ adobename="lcommaaccent",
+ category="ll",
+ contextname="lcommaaccent",
+ description="LATIN SMALL LETTER L WITH CEDILLA",
+ direction="l",
+ linebreak="al",
+ shcode=0x006C,
+ specials={ "char", 0x006C, 0x0327 },
+ uccode=0x013B,
+ unicodeslot=0x013C,
+ },
+ {
+ adobename="Lcaron",
+ category="lu",
+ contextname="Lcaron",
+ description="LATIN CAPITAL LETTER L WITH CARON",
+ direction="l",
+ lccode=0x013E,
+ linebreak="al",
+ shcode=0x004C,
+ specials={ "char", 0x004C, 0x030C },
+ unicodeslot=0x013D,
+ },
+ {
+ adobename="lcaron",
+ category="ll",
+ contextname="lcaron",
+ description="LATIN SMALL LETTER L WITH CARON",
+ direction="l",
+ linebreak="al",
+ shcode=0x006C,
+ specials={ "char", 0x006C, 0x030C },
+ uccode=0x013D,
+ unicodeslot=0x013E,
+ },
+ {
+ adobename="Ldot",
+ category="lu",
+ cjkwd="a",
+ contextname="Ldotmiddle",
+ description="LATIN CAPITAL LETTER L WITH MIDDLE DOT",
+ direction="l",
+ lccode=0x0140,
+ linebreak="al",
+ shcode=0x004C,
+ specials={ "compat", 0x004C, 0x00B7 },
+ unicodeslot=0x013F,
+ },
+ {
+ adobename="ldot",
+ category="ll",
+ cjkwd="a",
+ contextname="ldotmiddle",
+ description="LATIN SMALL LETTER L WITH MIDDLE DOT",
+ direction="l",
+ linebreak="al",
+ shcode=0x006C,
+ specials={ "compat", 0x006C, 0x00B7 },
+ uccode=0x013F,
+ unicodeslot=0x0140,
+ },
+ {
+ adobename="Lslash",
+ category="lu",
+ cjkwd="a",
+ contextname="Lstroke",
+ description="LATIN CAPITAL LETTER L WITH STROKE",
+ direction="l",
+ lccode=0x0142,
+ linebreak="al",
+ shcode=0x004C,
+ unicodeslot=0x0141,
+ },
+ {
+ adobename="lslash",
+ category="ll",
+ cjkwd="a",
+ contextname="lstroke",
+ description="LATIN SMALL LETTER L WITH STROKE",
+ direction="l",
+ linebreak="al",
+ shcode=0x006C,
+ uccode=0x0141,
+ unicodeslot=0x0142,
+ },
+ {
+ adobename="Nacute",
+ category="lu",
+ contextname="Nacute",
+ description="LATIN CAPITAL LETTER N WITH ACUTE",
+ direction="l",
+ lccode=0x0144,
+ linebreak="al",
+ shcode=0x004E,
+ specials={ "char", 0x004E, 0x0301 },
+ unicodeslot=0x0143,
+ },
+ {
+ adobename="nacute",
+ category="ll",
+ cjkwd="a",
+ contextname="nacute",
+ description="LATIN SMALL LETTER N WITH ACUTE",
+ direction="l",
+ linebreak="al",
+ shcode=0x006E,
+ specials={ "char", 0x006E, 0x0301 },
+ uccode=0x0143,
+ unicodeslot=0x0144,
+ },
+ {
+ adobename="Ncommaaccent",
+ category="lu",
+ contextname="Ncommaaccent",
+ description="LATIN CAPITAL LETTER N WITH CEDILLA",
+ direction="l",
+ lccode=0x0146,
+ linebreak="al",
+ shcode=0x004E,
+ specials={ "char", 0x004E, 0x0327 },
+ unicodeslot=0x0145,
+ },
+ {
+ adobename="ncommaaccent",
+ category="ll",
+ contextname="ncommaaccent",
+ description="LATIN SMALL LETTER N WITH CEDILLA",
+ direction="l",
+ linebreak="al",
+ shcode=0x006E,
+ specials={ "char", 0x006E, 0x0327 },
+ uccode=0x0145,
+ unicodeslot=0x0146,
+ },
+ {
+ adobename="Ncaron",
+ category="lu",
+ contextname="Ncaron",
+ description="LATIN CAPITAL LETTER N WITH CARON",
+ direction="l",
+ lccode=0x0148,
+ linebreak="al",
+ shcode=0x004E,
+ specials={ "char", 0x004E, 0x030C },
+ unicodeslot=0x0147,
+ },
+ {
+ adobename="ncaron",
+ category="ll",
+ cjkwd="a",
+ contextname="ncaron",
+ description="LATIN SMALL LETTER N WITH CARON",
+ direction="l",
+ linebreak="al",
+ shcode=0x006E,
+ specials={ "char", 0x006E, 0x030C },
+ uccode=0x0147,
+ unicodeslot=0x0148,
+ },
+ {
+ adobename="napostrophe",
+ category="ll",
+ cjkwd="a",
+ contextname="napostrophe",
+ description="LATIN SMALL LETTER N PRECEDED BY APOSTROPHE",
+ direction="l",
+ linebreak="al",
+ specials={ "compat", 0x02BC, 0x006E },
+ unicodeslot=0x0149,
+ },
+ {
+ adobename="Eng",
+ category="lu",
+ cjkwd="a",
+ contextname="Neng",
+ description="LATIN CAPITAL LETTER ENG",
+ direction="l",
+ lccode=0x014B,
+ linebreak="al",
+ unicodeslot=0x014A,
+ },
+ {
+ adobename="eng",
+ category="ll",
+ cjkwd="a",
+ contextname="neng",
+ description="LATIN SMALL LETTER ENG",
+ direction="l",
+ linebreak="al",
+ uccode=0x014A,
+ unicodeslot=0x014B,
+ },
+ {
+ adobename="Omacron",
+ category="lu",
+ contextname="Omacron",
+ description="LATIN CAPITAL LETTER O WITH MACRON",
+ direction="l",
+ lccode=0x014D,
+ linebreak="al",
+ shcode=0x004F,
+ specials={ "char", 0x004F, 0x0304 },
+ unicodeslot=0x014C,
+ },
+ {
+ adobename="omacron",
+ category="ll",
+ cjkwd="a",
+ contextname="omacron",
+ description="LATIN SMALL LETTER O WITH MACRON",
+ direction="l",
+ linebreak="al",
+ shcode=0x006F,
+ specials={ "char", 0x006F, 0x0304 },
+ uccode=0x014C,
+ unicodeslot=0x014D,
+ },
+ {
+ adobename="Obreve",
+ category="lu",
+ contextname="Obreve",
+ description="LATIN CAPITAL LETTER O WITH BREVE",
+ direction="l",
+ lccode=0x014F,
+ linebreak="al",
+ shcode=0x004F,
+ specials={ "char", 0x004F, 0x0306 },
+ unicodeslot=0x014E,
+ },
+ {
+ adobename="obreve",
+ category="ll",
+ contextname="obreve",
+ description="LATIN SMALL LETTER O WITH BREVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x006F,
+ specials={ "char", 0x006F, 0x0306 },
+ uccode=0x014E,
+ unicodeslot=0x014F,
+ },
+ {
+ adobename="Ohungarumlaut",
+ category="lu",
+ contextname="Ohungarumlaut",
+ description="LATIN CAPITAL LETTER O WITH DOUBLE ACUTE",
+ direction="l",
+ lccode=0x0151,
+ linebreak="al",
+ shcode=0x004F,
+ specials={ "char", 0x004F, 0x030B },
+ unicodeslot=0x0150,
+ },
+ {
+ adobename="ohungarumlaut",
+ category="ll",
+ contextname="ohungarumlaut",
+ description="LATIN SMALL LETTER O WITH DOUBLE ACUTE",
+ direction="l",
+ linebreak="al",
+ shcode=0x006F,
+ specials={ "char", 0x006F, 0x030B },
+ uccode=0x0150,
+ unicodeslot=0x0151,
+ },
+ {
+ adobename="OE",
+ category="lu",
+ cjkwd="a",
+ contextname="OEligature",
+ description="LATIN CAPITAL LIGATURE OE",
+ direction="l",
+ lccode=0x0153,
+ linebreak="al",
+ shcode={ 0x004F, 0x0045 },
+ unicodeslot=0x0152,
+ },
+ {
+ adobename="oe",
+ category="ll",
+ cjkwd="a",
+ contextname="oeligature",
+ description="LATIN SMALL LIGATURE OE",
+ direction="l",
+ linebreak="al",
+ shcode={ 0x006F, 0x0065 },
+ uccode=0x0152,
+ unicodeslot=0x0153,
+ },
+ {
+ adobename="Racute",
+ category="lu",
+ contextname="Racute",
+ description="LATIN CAPITAL LETTER R WITH ACUTE",
+ direction="l",
+ lccode=0x0155,
+ linebreak="al",
+ shcode=0x0052,
+ specials={ "char", 0x0052, 0x0301 },
+ unicodeslot=0x0154,
+ },
+ {
+ adobename="racute",
+ category="ll",
+ contextname="racute",
+ description="LATIN SMALL LETTER R WITH ACUTE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0072,
+ specials={ "char", 0x0072, 0x0301 },
+ uccode=0x0154,
+ unicodeslot=0x0155,
+ },
+ {
+ adobename="Rcommaaccent",
+ category="lu",
+ contextname="Rcommaaccent",
+ description="LATIN CAPITAL LETTER R WITH CEDILLA",
+ direction="l",
+ lccode=0x0157,
+ linebreak="al",
+ shcode=0x0052,
+ specials={ "char", 0x0052, 0x0327 },
+ unicodeslot=0x0156,
+ },
+ {
+ adobename="rcommaaccent",
+ category="ll",
+ contextname="rcommaaccent",
+ description="LATIN SMALL LETTER R WITH CEDILLA",
+ direction="l",
+ linebreak="al",
+ shcode=0x0072,
+ specials={ "char", 0x0072, 0x0327 },
+ uccode=0x0156,
+ unicodeslot=0x0157,
+ },
+ {
+ adobename="Rcaron",
+ category="lu",
+ contextname="Rcaron",
+ description="LATIN CAPITAL LETTER R WITH CARON",
+ direction="l",
+ lccode=0x0159,
+ linebreak="al",
+ shcode=0x0052,
+ specials={ "char", 0x0052, 0x030C },
+ unicodeslot=0x0158,
+ },
+ {
+ adobename="rcaron",
+ category="ll",
+ contextname="rcaron",
+ description="LATIN SMALL LETTER R WITH CARON",
+ direction="l",
+ linebreak="al",
+ shcode=0x0072,
+ specials={ "char", 0x0072, 0x030C },
+ uccode=0x0158,
+ unicodeslot=0x0159,
+ },
+ {
+ adobename="Sacute",
+ category="lu",
+ contextname="Sacute",
+ description="LATIN CAPITAL LETTER S WITH ACUTE",
+ direction="l",
+ lccode=0x015B,
+ linebreak="al",
+ shcode=0x0053,
+ specials={ "char", 0x0053, 0x0301 },
+ unicodeslot=0x015A,
+ },
+ {
+ adobename="sacute",
+ category="ll",
+ contextname="sacute",
+ description="LATIN SMALL LETTER S WITH ACUTE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0073,
+ specials={ "char", 0x0073, 0x0301 },
+ uccode=0x015A,
+ unicodeslot=0x015B,
+ },
+ {
+ adobename="Scircumflex",
+ category="lu",
+ contextname="Scircumflex",
+ description="LATIN CAPITAL LETTER S WITH CIRCUMFLEX",
+ direction="l",
+ lccode=0x015D,
+ linebreak="al",
+ shcode=0x0053,
+ specials={ "char", 0x0053, 0x0302 },
+ unicodeslot=0x015C,
+ },
+ {
+ adobename="scircumflex",
+ category="ll",
+ contextname="scircumflex",
+ description="LATIN SMALL LETTER S WITH CIRCUMFLEX",
+ direction="l",
+ linebreak="al",
+ shcode=0x0073,
+ specials={ "char", 0x0073, 0x0302 },
+ uccode=0x015C,
+ unicodeslot=0x015D,
+ },
+ {
+ adobename="Scedilla",
+ category="lu",
+ contextname="Scedilla",
+ description="LATIN CAPITAL LETTER S WITH CEDILLA",
+ direction="l",
+ lccode=0x015F,
+ linebreak="al",
+ shcode=0x0053,
+ specials={ "char", 0x0053, 0x0327 },
+ unicodeslot=0x015E,
+ },
+ {
+ adobename="scedilla",
+ category="ll",
+ contextname="scedilla",
+ description="LATIN SMALL LETTER S WITH CEDILLA",
+ direction="l",
+ linebreak="al",
+ shcode=0x0073,
+ specials={ "char", 0x0073, 0x0327 },
+ uccode=0x015E,
+ unicodeslot=0x015F,
+ },
+ {
+ adobename="Scaron",
+ category="lu",
+ contextname="Scaron",
+ description="LATIN CAPITAL LETTER S WITH CARON",
+ direction="l",
+ lccode=0x0161,
+ linebreak="al",
+ shcode=0x0053,
+ specials={ "char", 0x0053, 0x030C },
+ unicodeslot=0x0160,
+ },
+ {
+ adobename="scaron",
+ category="ll",
+ contextname="scaron",
+ description="LATIN SMALL LETTER S WITH CARON",
+ direction="l",
+ linebreak="al",
+ shcode=0x0073,
+ specials={ "char", 0x0073, 0x030C },
+ uccode=0x0160,
+ unicodeslot=0x0161,
+ },
+ {
+ adobename="Tcommaaccent",
+ category="lu",
+ contextname="Tcedilla",
+ description="LATIN CAPITAL LETTER T WITH CEDILLA",
+ direction="l",
+ lccode=0x0163,
+ linebreak="al",
+ shcode=0x0054,
+ specials={ "char", 0x0054, 0x0327 },
+ unicodeslot=0x0162,
+ },
+ {
+ adobename="tcommaaccent",
+ category="ll",
+ contextname="tcedilla",
+ description="LATIN SMALL LETTER T WITH CEDILLA",
+ direction="l",
+ linebreak="al",
+ shcode=0x0074,
+ specials={ "char", 0x0074, 0x0327 },
+ uccode=0x0162,
+ unicodeslot=0x0163,
+ },
+ {
+ adobename="Tcaron",
+ category="lu",
+ contextname="Tcaron",
+ description="LATIN CAPITAL LETTER T WITH CARON",
+ direction="l",
+ lccode=0x0165,
+ linebreak="al",
+ shcode=0x0054,
+ specials={ "char", 0x0054, 0x030C },
+ unicodeslot=0x0164,
+ },
+ {
+ adobename="tcaron",
+ category="ll",
+ contextname="tcaron",
+ description="LATIN SMALL LETTER T WITH CARON",
+ direction="l",
+ linebreak="al",
+ shcode=0x0074,
+ specials={ "char", 0x0074, 0x030C },
+ uccode=0x0164,
+ unicodeslot=0x0165,
+ },
+ {
+ adobename="Tbar",
+ category="lu",
+ cjkwd="a",
+ contextname="Tstroke",
+ description="LATIN CAPITAL LETTER T WITH STROKE",
+ direction="l",
+ lccode=0x0167,
+ linebreak="al",
+ shcode=0x0054,
+ unicodeslot=0x0166,
+ },
+ {
+ adobename="tbar",
+ category="ll",
+ cjkwd="a",
+ contextname="tstroke",
+ description="LATIN SMALL LETTER T WITH STROKE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0074,
+ uccode=0x0166,
+ unicodeslot=0x0167,
+ },
+ {
+ adobename="Utilde",
+ category="lu",
+ contextname="Utilde",
+ description="LATIN CAPITAL LETTER U WITH TILDE",
+ direction="l",
+ lccode=0x0169,
+ linebreak="al",
+ shcode=0x0055,
+ specials={ "char", 0x0055, 0x0303 },
+ unicodeslot=0x0168,
+ },
+ {
+ adobename="utilde",
+ category="ll",
+ contextname="utilde",
+ description="LATIN SMALL LETTER U WITH TILDE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0075,
+ specials={ "char", 0x0075, 0x0303 },
+ uccode=0x0168,
+ unicodeslot=0x0169,
+ },
+ {
+ adobename="Umacron",
+ category="lu",
+ contextname="Umacron",
+ description="LATIN CAPITAL LETTER U WITH MACRON",
+ direction="l",
+ lccode=0x016B,
+ linebreak="al",
+ shcode=0x0055,
+ specials={ "char", 0x0055, 0x0304 },
+ unicodeslot=0x016A,
+ },
+ {
+ adobename="umacron",
+ category="ll",
+ cjkwd="a",
+ contextname="umacron",
+ description="LATIN SMALL LETTER U WITH MACRON",
+ direction="l",
+ linebreak="al",
+ shcode=0x0075,
+ specials={ "char", 0x0075, 0x0304 },
+ uccode=0x016A,
+ unicodeslot=0x016B,
+ },
+ {
+ adobename="Ubreve",
+ category="lu",
+ contextname="Ubreve",
+ description="LATIN CAPITAL LETTER U WITH BREVE",
+ direction="l",
+ lccode=0x016D,
+ linebreak="al",
+ shcode=0x0055,
+ specials={ "char", 0x0055, 0x0306 },
+ unicodeslot=0x016C,
+ },
+ {
+ adobename="ubreve",
+ category="ll",
+ contextname="ubreve",
+ description="LATIN SMALL LETTER U WITH BREVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0075,
+ specials={ "char", 0x0075, 0x0306 },
+ uccode=0x016C,
+ unicodeslot=0x016D,
+ },
+ {
+ adobename="Uring",
+ category="lu",
+ contextname="Uring",
+ description="LATIN CAPITAL LETTER U WITH RING ABOVE",
+ direction="l",
+ lccode=0x016F,
+ linebreak="al",
+ shcode=0x0055,
+ specials={ "char", 0x0055, 0x030A },
+ unicodeslot=0x016E,
+ },
+ {
+ adobename="uring",
+ category="ll",
+ contextname="uring",
+ description="LATIN SMALL LETTER U WITH RING ABOVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0075,
+ specials={ "char", 0x0075, 0x030A },
+ uccode=0x016E,
+ unicodeslot=0x016F,
+ },
+ {
+ adobename="Uhungarumlaut",
+ category="lu",
+ contextname="Uhungarumlaut",
+ description="LATIN CAPITAL LETTER U WITH DOUBLE ACUTE",
+ direction="l",
+ lccode=0x0171,
+ linebreak="al",
+ shcode=0x0055,
+ specials={ "char", 0x0055, 0x030B },
+ unicodeslot=0x0170,
+ },
+ {
+ adobename="uhungarumlaut",
+ category="ll",
+ contextname="uhungarumlaut",
+ description="LATIN SMALL LETTER U WITH DOUBLE ACUTE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0075,
+ specials={ "char", 0x0075, 0x030B },
+ uccode=0x0170,
+ unicodeslot=0x0171,
+ },
+ {
+ adobename="Uogonek",
+ category="lu",
+ contextname="Uogonek",
+ description="LATIN CAPITAL LETTER U WITH OGONEK",
+ direction="l",
+ lccode=0x0173,
+ linebreak="al",
+ shcode=0x0055,
+ specials={ "char", 0x0055, 0x0328 },
+ unicodeslot=0x0172,
+ },
+ {
+ adobename="uogonek",
+ category="ll",
+ contextname="uogonek",
+ description="LATIN SMALL LETTER U WITH OGONEK",
+ direction="l",
+ linebreak="al",
+ shcode=0x0075,
+ specials={ "char", 0x0075, 0x0328 },
+ uccode=0x0172,
+ unicodeslot=0x0173,
+ },
+ {
+ adobename="Wcircumflex",
+ category="lu",
+ contextname="Wcircumflex",
+ description="LATIN CAPITAL LETTER W WITH CIRCUMFLEX",
+ direction="l",
+ lccode=0x0175,
+ linebreak="al",
+ shcode=0x0057,
+ specials={ "char", 0x0057, 0x0302 },
+ unicodeslot=0x0174,
+ },
+ {
+ adobename="wcircumflex",
+ category="ll",
+ contextname="wcircumflex",
+ description="LATIN SMALL LETTER W WITH CIRCUMFLEX",
+ direction="l",
+ linebreak="al",
+ shcode=0x0077,
+ specials={ "char", 0x0077, 0x0302 },
+ uccode=0x0174,
+ unicodeslot=0x0175,
+ },
+ {
+ adobename="Ycircumflex",
+ category="lu",
+ contextname="Ycircumflex",
+ description="LATIN CAPITAL LETTER Y WITH CIRCUMFLEX",
+ direction="l",
+ lccode=0x0177,
+ linebreak="al",
+ shcode=0x0059,
+ specials={ "char", 0x0059, 0x0302 },
+ unicodeslot=0x0176,
+ },
+ {
+ adobename="ycircumflex",
+ category="ll",
+ contextname="ycircumflex",
+ description="LATIN SMALL LETTER Y WITH CIRCUMFLEX",
+ direction="l",
+ linebreak="al",
+ shcode=0x0079,
+ specials={ "char", 0x0079, 0x0302 },
+ uccode=0x0176,
+ unicodeslot=0x0177,
+ },
+ {
+ adobename="Ydieresis",
+ category="lu",
+ contextname="Ydiaeresis",
+ description="LATIN CAPITAL LETTER Y WITH DIAERESIS",
+ direction="l",
+ lccode=0x00FF,
+ linebreak="al",
+ shcode=0x0059,
+ specials={ "char", 0x0059, 0x0308 },
+ unicodeslot=0x0178,
+ },
+ {
+ adobename="Zacute",
+ category="lu",
+ contextname="Zacute",
+ description="LATIN CAPITAL LETTER Z WITH ACUTE",
+ direction="l",
+ lccode=0x017A,
+ linebreak="al",
+ shcode=0x005A,
+ specials={ "char", 0x005A, 0x0301 },
+ unicodeslot=0x0179,
+ },
+ {
+ adobename="zacute",
+ category="ll",
+ contextname="zacute",
+ description="LATIN SMALL LETTER Z WITH ACUTE",
+ direction="l",
+ linebreak="al",
+ shcode=0x007A,
+ specials={ "char", 0x007A, 0x0301 },
+ uccode=0x0179,
+ unicodeslot=0x017A,
+ },
+ {
+ adobename="Zdotaccent",
+ category="lu",
+ contextname="Zdotaccent",
+ description="LATIN CAPITAL LETTER Z WITH DOT ABOVE",
+ direction="l",
+ lccode=0x017C,
+ linebreak="al",
+ shcode=0x005A,
+ specials={ "char", 0x005A, 0x0307 },
+ unicodeslot=0x017B,
+ },
+ {
+ adobename="zdotaccent",
+ category="ll",
+ contextname="zdotaccent",
+ description="LATIN SMALL LETTER Z WITH DOT ABOVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x007A,
+ specials={ "char", 0x007A, 0x0307 },
+ uccode=0x017B,
+ unicodeslot=0x017C,
+ },
+ {
+ adobename="Zcaron",
+ category="lu",
+ contextname="Zcaron",
+ description="LATIN CAPITAL LETTER Z WITH CARON",
+ direction="l",
+ lccode=0x017E,
+ linebreak="al",
+ shcode=0x005A,
+ specials={ "char", 0x005A, 0x030C },
+ unicodeslot=0x017D,
+ },
+ {
+ adobename="zcaron",
+ category="ll",
+ contextname="zcaron",
+ description="LATIN SMALL LETTER Z WITH CARON",
+ direction="l",
+ linebreak="al",
+ shcode=0x007A,
+ specials={ "char", 0x007A, 0x030C },
+ uccode=0x017D,
+ unicodeslot=0x017E,
+ },
+ {
+ adobename="longs",
+ category="ll",
+ contextname="slong",
+ description="LATIN SMALL LETTER LONG S",
+ direction="l",
+ linebreak="al",
+ specials={ "compat", 0x0073 },
+ uccode=0x0053,
+ unicodeslot=0x017F,
+ },
+ {
+ category="ll",
+ contextname="bstroke",
+ description="LATIN SMALL LETTER B WITH STROKE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0062,
+ uccode=0x0243,
+ unicodeslot=0x0180,
+ },
+ {
+ category="lu",
+ contextname="Bhook",
+ description="LATIN CAPITAL LETTER B WITH HOOK",
+ direction="l",
+ lccode=0x0253,
+ linebreak="al",
+ shcode=0x0042,
+ unicodeslot=0x0181,
+ },
+ {
+ category="lu",
+ description="LATIN CAPITAL LETTER B WITH TOPBAR",
+ direction="l",
+ lccode=0x0183,
+ linebreak="al",
+ shcode=0x0042,
+ unicodeslot=0x0182,
+ },
+ {
+ category="ll",
+ description="LATIN SMALL LETTER B WITH TOPBAR",
+ direction="l",
+ linebreak="al",
+ shcode=0x0062,
+ uccode=0x0182,
+ unicodeslot=0x0183,
+ },
+ {
+ category="lu",
+ description="LATIN CAPITAL LETTER TONE SIX",
+ direction="l",
+ lccode=0x0185,
+ linebreak="al",
+ unicodeslot=0x0184,
+ },
+ {
+ category="ll",
+ description="LATIN SMALL LETTER TONE SIX",
+ direction="l",
+ linebreak="al",
+ uccode=0x0184,
+ unicodeslot=0x0185,
+ },
+ {
+ category="lu",
+ description="LATIN CAPITAL LETTER OPEN O",
+ direction="l",
+ lccode=0x0254,
+ linebreak="al",
+ unicodeslot=0x0186,
+ },
+ {
+ category="lu",
+ contextname="Chook",
+ description="LATIN CAPITAL LETTER C WITH HOOK",
+ direction="l",
+ lccode=0x0188,
+ linebreak="al",
+ shcode=0x0043,
+ unicodeslot=0x0187,
+ },
+ {
+ category="ll",
+ contextname="chook",
+ description="LATIN SMALL LETTER C WITH HOOK",
+ direction="l",
+ linebreak="al",
+ shcode=0x0063,
+ uccode=0x0187,
+ unicodeslot=0x0188,
+ },
+ {
+ category="lu",
+ contextname="Dafrican",
+ description="LATIN CAPITAL LETTER AFRICAN D",
+ direction="l",
+ lccode=0x0256,
+ linebreak="al",
+ unicodeslot=0x0189,
+ },
+ {
+ category="lu",
+ contextname="Dhook",
+ description="LATIN CAPITAL LETTER D WITH HOOK",
+ direction="l",
+ lccode=0x0257,
+ linebreak="al",
+ shcode=0x0044,
+ unicodeslot=0x018A,
+ },
+ {
+ category="lu",
+ description="LATIN CAPITAL LETTER D WITH TOPBAR",
+ direction="l",
+ lccode=0x018C,
+ linebreak="al",
+ shcode=0x0044,
+ unicodeslot=0x018B,
+ },
+ {
+ category="ll",
+ description="LATIN SMALL LETTER D WITH TOPBAR",
+ direction="l",
+ linebreak="al",
+ shcode=0x0064,
+ uccode=0x018B,
+ unicodeslot=0x018C,
+ },
+ {
+ category="ll",
+ description="LATIN SMALL LETTER TURNED DELTA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x018D,
+ },
+ {
+ category="lu",
+ description="LATIN CAPITAL LETTER REVERSED E",
+ direction="l",
+ lccode=0x01DD,
+ linebreak="al",
+ unicodeslot=0x018E,
+ },
+ {
+ category="lu",
+ contextname="Schwa",
+ description="LATIN CAPITAL LETTER SCHWA",
+ direction="l",
+ lccode=0x0259,
+ linebreak="al",
+ unicodeslot=0x018F,
+ },
+ {
+ category="lu",
+ description="LATIN CAPITAL LETTER OPEN E",
+ direction="l",
+ lccode=0x025B,
+ linebreak="al",
+ unicodeslot=0x0190,
+ },
+ {
+ category="lu",
+ contextname="Fhook",
+ description="LATIN CAPITAL LETTER F WITH HOOK",
+ direction="l",
+ lccode=0x0192,
+ linebreak="al",
+ shcode=0x0046,
+ unicodeslot=0x0191,
+ },
+ {
+ adobename="florin",
+ category="ll",
+ contextname="fhook",
+ description="LATIN SMALL LETTER F WITH HOOK",
+ direction="l",
+ linebreak="al",
+ shcode=0x0066,
+ uccode=0x0191,
+ unicodeslot=0x0192,
+ },
+ {
+ category="lu",
+ contextname="Ghook",
+ description="LATIN CAPITAL LETTER G WITH HOOK",
+ direction="l",
+ lccode=0x0260,
+ linebreak="al",
+ shcode=0x0047,
+ unicodeslot=0x0193,
+ },
+ {
+ category="lu",
+ description="LATIN CAPITAL LETTER GAMMA",
+ direction="l",
+ lccode=0x0263,
+ linebreak="al",
+ unicodeslot=0x0194,
+ },
+ {
+ category="ll",
+ description="LATIN SMALL LETTER HV",
+ direction="l",
+ linebreak="al",
+ uccode=0x01F6,
+ unicodeslot=0x0195,
+ },
+ {
+ category="lu",
+ description="LATIN CAPITAL LETTER IOTA",
+ direction="l",
+ lccode=0x0269,
+ linebreak="al",
+ unicodeslot=0x0196,
+ },
+ {
+ category="lu",
+ contextname="Istroke",
+ description="LATIN CAPITAL LETTER I WITH STROKE",
+ direction="l",
+ lccode=0x0268,
+ linebreak="al",
+ shcode=0x0049,
+ unicodeslot=0x0197,
+ },
+ {
+ category="lu",
+ contextname="Khook",
+ description="LATIN CAPITAL LETTER K WITH HOOK",
+ direction="l",
+ lccode=0x0199,
+ linebreak="al",
+ shcode=0x004B,
+ unicodeslot=0x0198,
+ },
+ {
+ category="ll",
+ contextname="khook",
+ description="LATIN SMALL LETTER K WITH HOOK",
+ direction="l",
+ linebreak="al",
+ shcode=0x006B,
+ uccode=0x0198,
+ unicodeslot=0x0199,
+ },
+ {
+ category="ll",
+ contextname="lbar",
+ description="LATIN SMALL LETTER L WITH BAR",
+ direction="l",
+ linebreak="al",
+ shcode=0x006C,
+ uccode=0x023D,
+ unicodeslot=0x019A,
+ },
+ {
+ category="ll",
+ description="LATIN SMALL LETTER LAMBDA WITH STROKE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x019B,
+ },
+ {
+ category="lu",
+ description="LATIN CAPITAL LETTER TURNED M",
+ direction="l",
+ lccode=0x026F,
+ linebreak="al",
+ unicodeslot=0x019C,
+ },
+ {
+ category="lu",
+ description="LATIN CAPITAL LETTER N WITH LEFT HOOK",
+ direction="l",
+ lccode=0x0272,
+ linebreak="al",
+ shcode=0x004E,
+ unicodeslot=0x019D,
+ },
+ {
+ category="ll",
+ description="LATIN SMALL LETTER N WITH LONG RIGHT LEG",
+ direction="l",
+ linebreak="al",
+ shcode=0x006E,
+ uccode=0x0220,
+ unicodeslot=0x019E,
+ },
+ {
+ category="lu",
+ description="LATIN CAPITAL LETTER O WITH MIDDLE TILDE",
+ direction="l",
+ lccode=0x0275,
+ linebreak="al",
+ shcode=0x004F,
+ unicodeslot=0x019F,
+ },
+ {
+ adobename="Ohorn",
+ category="lu",
+ contextname="Ohorn",
+ description="LATIN CAPITAL LETTER O WITH HORN",
+ direction="l",
+ lccode=0x01A1,
+ linebreak="al",
+ shcode=0x004F,
+ specials={ "char", 0x004F, 0x031B },
+ unicodeslot=0x01A0,
+ },
+ {
+ adobename="ohorn",
+ category="ll",
+ contextname="ohorn",
+ description="LATIN SMALL LETTER O WITH HORN",
+ direction="l",
+ linebreak="al",
+ shcode=0x006F,
+ specials={ "char", 0x006F, 0x031B },
+ uccode=0x01A0,
+ unicodeslot=0x01A1,
+ },
+ {
+ category="lu",
+ description="LATIN CAPITAL LETTER OI",
+ direction="l",
+ lccode=0x01A3,
+ linebreak="al",
+ unicodeslot=0x01A2,
+ },
+ {
+ category="ll",
+ description="LATIN SMALL LETTER OI",
+ direction="l",
+ linebreak="al",
+ uccode=0x01A2,
+ unicodeslot=0x01A3,
+ },
+ {
+ category="lu",
+ contextname="Phook",
+ description="LATIN CAPITAL LETTER P WITH HOOK",
+ direction="l",
+ lccode=0x01A5,
+ linebreak="al",
+ shcode=0x0050,
+ unicodeslot=0x01A4,
+ },
+ {
+ category="ll",
+ contextname="phook",
+ description="LATIN SMALL LETTER P WITH HOOK",
+ direction="l",
+ linebreak="al",
+ shcode=0x0070,
+ uccode=0x01A4,
+ unicodeslot=0x01A5,
+ },
+ {
+ category="lu",
+ description="LATIN LETTER YR",
+ direction="l",
+ lccode=0x0280,
+ linebreak="al",
+ unicodeslot=0x01A6,
+ },
+ {
+ category="lu",
+ description="LATIN CAPITAL LETTER TONE TWO",
+ direction="l",
+ lccode=0x01A8,
+ linebreak="al",
+ unicodeslot=0x01A7,
+ },
+ {
+ category="ll",
+ description="LATIN SMALL LETTER TONE TWO",
+ direction="l",
+ linebreak="al",
+ uccode=0x01A7,
+ unicodeslot=0x01A8,
+ },
+ {
+ category="lu",
+ description="LATIN CAPITAL LETTER ESH",
+ direction="l",
+ lccode=0x0283,
+ linebreak="al",
+ unicodeslot=0x01A9,
+ },
+ {
+ category="ll",
+ description="LATIN LETTER REVERSED ESH LOOP",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x01AA,
+ },
+ {
+ category="ll",
+ description="LATIN SMALL LETTER T WITH PALATAL HOOK",
+ direction="l",
+ linebreak="al",
+ shcode=0x0074,
+ unicodeslot=0x01AB,
+ },
+ {
+ category="lu",
+ contextname="Thook",
+ description="LATIN CAPITAL LETTER T WITH HOOK",
+ direction="l",
+ lccode=0x01AD,
+ linebreak="al",
+ shcode=0x0054,
+ unicodeslot=0x01AC,
+ },
+ {
+ category="ll",
+ contextname="thook",
+ description="LATIN SMALL LETTER T WITH HOOK",
+ direction="l",
+ linebreak="al",
+ shcode=0x0074,
+ uccode=0x01AC,
+ unicodeslot=0x01AD,
+ },
+ {
+ category="lu",
+ description="LATIN CAPITAL LETTER T WITH RETROFLEX HOOK",
+ direction="l",
+ lccode=0x0288,
+ linebreak="al",
+ shcode=0x0054,
+ unicodeslot=0x01AE,
+ },
+ {
+ adobename="Uhorn",
+ category="lu",
+ contextname="Uhorn",
+ description="LATIN CAPITAL LETTER U WITH HORN",
+ direction="l",
+ lccode=0x01B0,
+ linebreak="al",
+ shcode=0x0055,
+ specials={ "char", 0x0055, 0x031B },
+ unicodeslot=0x01AF,
+ },
+ {
+ adobename="uhorn",
+ category="ll",
+ contextname="uhorn",
+ description="LATIN SMALL LETTER U WITH HORN",
+ direction="l",
+ linebreak="al",
+ shcode=0x0075,
+ specials={ "char", 0x0075, 0x031B },
+ uccode=0x01AF,
+ unicodeslot=0x01B0,
+ },
+ {
+ category="lu",
+ description="LATIN CAPITAL LETTER UPSILON",
+ direction="l",
+ lccode=0x028A,
+ linebreak="al",
+ unicodeslot=0x01B1,
+ },
+ {
+ category="lu",
+ contextname="Uhook",
+ description="LATIN CAPITAL LETTER V WITH HOOK",
+ direction="l",
+ lccode=0x028B,
+ linebreak="al",
+ shcode=0x0056,
+ unicodeslot=0x01B2,
+ },
+ {
+ category="lu",
+ contextname="Yhook",
+ description="LATIN CAPITAL LETTER Y WITH HOOK",
+ direction="l",
+ lccode=0x01B4,
+ linebreak="al",
+ shcode=0x0059,
+ unicodeslot=0x01B3,
+ },
+ {
+ category="ll",
+ contextname="yhook",
+ description="LATIN SMALL LETTER Y WITH HOOK",
+ direction="l",
+ linebreak="al",
+ shcode=0x0079,
+ uccode=0x01B3,
+ unicodeslot=0x01B4,
+ },
+ {
+ category="lu",
+ contextname="Zstroke",
+ description="LATIN CAPITAL LETTER Z WITH STROKE",
+ direction="l",
+ lccode=0x01B6,
+ linebreak="al",
+ shcode=0x005A,
+ unicodeslot=0x01B5,
+ },
+ {
+ category="ll",
+ contextname="zstroke",
+ description="LATIN SMALL LETTER Z WITH STROKE",
+ direction="l",
+ linebreak="al",
+ shcode=0x007A,
+ uccode=0x01B5,
+ unicodeslot=0x01B6,
+ },
+ {
+ category="lu",
+ description="LATIN CAPITAL LETTER EZH",
+ direction="l",
+ lccode=0x0292,
+ linebreak="al",
+ unicodeslot=0x01B7,
+ },
+ {
+ category="lu",
+ description="LATIN CAPITAL LETTER EZH REVERSED",
+ direction="l",
+ lccode=0x01B9,
+ linebreak="al",
+ unicodeslot=0x01B8,
+ },
+ {
+ category="ll",
+ description="LATIN SMALL LETTER EZH REVERSED",
+ direction="l",
+ linebreak="al",
+ uccode=0x01B8,
+ unicodeslot=0x01B9,
+ },
+ {
+ category="ll",
+ description="LATIN SMALL LETTER EZH WITH TAIL",
+ direction="l",
+ linebreak="al",
+ shcode=0x0292,
+ unicodeslot=0x01BA,
+ },
+ {
+ category="lo",
+ description="LATIN LETTER TWO WITH STROKE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x01BB,
+ },
+ {
+ category="lu",
+ description="LATIN CAPITAL LETTER TONE FIVE",
+ direction="l",
+ lccode=0x01BD,
+ linebreak="al",
+ unicodeslot=0x01BC,
+ },
+ {
+ category="ll",
+ description="LATIN SMALL LETTER TONE FIVE",
+ direction="l",
+ linebreak="al",
+ uccode=0x01BC,
+ unicodeslot=0x01BD,
+ },
+ {
+ category="ll",
+ description="LATIN LETTER INVERTED GLOTTAL STOP WITH STROKE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x01BE,
+ },
+ {
+ category="ll",
+ description="LATIN LETTER WYNN",
+ direction="l",
+ linebreak="al",
+ uccode=0x01F7,
+ unicodeslot=0x01BF,
+ },
+ {
+ category="lo",
+ description="LATIN LETTER DENTAL CLICK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x01C0,
+ },
+ {
+ category="lo",
+ description="LATIN LETTER LATERAL CLICK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x01C1,
+ },
+ {
+ category="lo",
+ description="LATIN LETTER ALVEOLAR CLICK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x01C2,
+ },
+ {
+ category="lo",
+ description="LATIN LETTER RETROFLEX CLICK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x01C3,
+ },
+ {
+ category="lu",
+ contextname="DZcaronligature",
+ description="LATIN CAPITAL LETTER DZ WITH CARON",
+ direction="l",
+ lccode=0x01C6,
+ linebreak="al",
+ shcode=0x01F1,
+ specials={ "compat", 0x0044, 0x017D },
+ uccode=0x01C5,
+ unicodeslot=0x01C4,
+ },
+ {
+ category="lt",
+ contextname="Dzcaronligature",
+ description="LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON",
+ direction="l",
+ lccode=0x01C6,
+ linebreak="al",
+ shcode=0x01F2,
+ specials={ "compat", 0x0044, 0x017E },
+ uccode=0x01C4,
+ unicodeslot=0x01C5,
+ },
+ {
+ category="ll",
+ contextname="dzcaronligature",
+ description="LATIN SMALL LETTER DZ WITH CARON",
+ direction="l",
+ linebreak="al",
+ shcode=0x01F3,
+ specials={ "compat", 0x0064, 0x017E },
+ uccode=0x01C4,
+ unicodeslot=0x01C6,
+ },
+ {
+ category="lu",
+ contextname="LJligature",
+ description="LATIN CAPITAL LETTER LJ",
+ direction="l",
+ lccode=0x01C9,
+ linebreak="al",
+ shcode={ 0x004C, 0x004A },
+ specials={ "compat", 0x004C, 0x004A },
+ uccode=0x01C8,
+ unicodeslot=0x01C7,
+ },
+ {
+ category="lt",
+ contextname="Ljligature",
+ description="LATIN CAPITAL LETTER L WITH SMALL LETTER J",
+ direction="l",
+ lccode=0x01C9,
+ linebreak="al",
+ shcode={ 0x004C, 0x006A },
+ specials={ "compat", 0x004C, 0x006A },
+ uccode=0x01C7,
+ unicodeslot=0x01C8,
+ },
+ {
+ category="ll",
+ contextname="ljligature",
+ description="LATIN SMALL LETTER LJ",
+ direction="l",
+ linebreak="al",
+ shcode={ 0x006C, 0x006A },
+ specials={ "compat", 0x006C, 0x006A },
+ uccode=0x01C7,
+ unicodeslot=0x01C9,
+ },
+ {
+ category="lu",
+ contextname="NJligature",
+ description="LATIN CAPITAL LETTER NJ",
+ direction="l",
+ lccode=0x01CC,
+ linebreak="al",
+ shcode={ 0x004E, 0x004A },
+ specials={ "compat", 0x004E, 0x004A },
+ uccode=0x01CB,
+ unicodeslot=0x01CA,
+ },
+ {
+ category="lt",
+ contextname="Njligature",
+ description="LATIN CAPITAL LETTER N WITH SMALL LETTER J",
+ direction="l",
+ lccode=0x01CC,
+ linebreak="al",
+ shcode=0x004E,
+ specials={ "compat", 0x004E, 0x006A },
+ uccode=0x01CA,
+ unicodeslot=0x01CB,
+ },
+ {
+ category="ll",
+ contextname="njligature",
+ description="LATIN SMALL LETTER NJ",
+ direction="l",
+ linebreak="al",
+ shcode={ 0x006E, 0x006A },
+ specials={ "compat", 0x006E, 0x006A },
+ uccode=0x01CA,
+ unicodeslot=0x01CC,
+ },
+ {
+ category="lu",
+ contextname="Acaron",
+ description="LATIN CAPITAL LETTER A WITH CARON",
+ direction="l",
+ lccode=0x01CE,
+ linebreak="al",
+ shcode=0x0041,
+ specials={ "char", 0x0041, 0x030C },
+ unicodeslot=0x01CD,
+ },
+ {
+ category="ll",
+ cjkwd="a",
+ contextname="acaron",
+ description="LATIN SMALL LETTER A WITH CARON",
+ direction="l",
+ linebreak="al",
+ shcode=0x0061,
+ specials={ "char", 0x0061, 0x030C },
+ uccode=0x01CD,
+ unicodeslot=0x01CE,
+ },
+ {
+ category="lu",
+ contextname="Icaron",
+ description="LATIN CAPITAL LETTER I WITH CARON",
+ direction="l",
+ lccode=0x01D0,
+ linebreak="al",
+ shcode=0x0049,
+ specials={ "char", 0x0049, 0x030C },
+ unicodeslot=0x01CF,
+ },
+ {
+ category="ll",
+ cjkwd="a",
+ contextname="icaron",
+ description="LATIN SMALL LETTER I WITH CARON",
+ direction="l",
+ linebreak="al",
+ shcode=0x0069,
+ specials={ "char", 0x0069, 0x030C },
+ uccode=0x01CF,
+ unicodeslot=0x01D0,
+ },
+ {
+ category="lu",
+ contextname="Ocaron",
+ description="LATIN CAPITAL LETTER O WITH CARON",
+ direction="l",
+ lccode=0x01D2,
+ linebreak="al",
+ shcode=0x004F,
+ specials={ "char", 0x004F, 0x030C },
+ unicodeslot=0x01D1,
+ },
+ {
+ category="ll",
+ cjkwd="a",
+ contextname="ocaron",
+ description="LATIN SMALL LETTER O WITH CARON",
+ direction="l",
+ linebreak="al",
+ shcode=0x006F,
+ specials={ "char", 0x006F, 0x030C },
+ uccode=0x01D1,
+ unicodeslot=0x01D2,
+ },
+ {
+ category="lu",
+ contextname="Ucaron",
+ description="LATIN CAPITAL LETTER U WITH CARON",
+ direction="l",
+ lccode=0x01D4,
+ linebreak="al",
+ shcode=0x0055,
+ specials={ "char", 0x0055, 0x030C },
+ unicodeslot=0x01D3,
+ },
+ {
+ category="ll",
+ cjkwd="a",
+ contextname="ucaron",
+ description="LATIN SMALL LETTER U WITH CARON",
+ direction="l",
+ linebreak="al",
+ shcode=0x0075,
+ specials={ "char", 0x0075, 0x030C },
+ uccode=0x01D3,
+ unicodeslot=0x01D4,
+ },
+ {
+ category="lu",
+ contextname="Udiaeresismacron",
+ description="LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON",
+ direction="l",
+ lccode=0x01D6,
+ linebreak="al",
+ shcode=0x0055,
+ specials={ "char", 0x00DC, 0x0304 },
+ unicodeslot=0x01D5,
+ },
+ {
+ category="ll",
+ cjkwd="a",
+ contextname="udiaeresismacron",
+ description="LATIN SMALL LETTER U WITH DIAERESIS AND MACRON",
+ direction="l",
+ linebreak="al",
+ shcode=0x0075,
+ specials={ "char", 0x00FC, 0x0304 },
+ uccode=0x01D5,
+ unicodeslot=0x01D6,
+ },
+ {
+ category="lu",
+ contextname="Udiaeresisacute",
+ description="LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE",
+ direction="l",
+ lccode=0x01D8,
+ linebreak="al",
+ shcode=0x0055,
+ specials={ "char", 0x00DC, 0x0301 },
+ unicodeslot=0x01D7,
+ },
+ {
+ category="ll",
+ cjkwd="a",
+ contextname="udiaeresisacute",
+ description="LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0075,
+ specials={ "char", 0x00FC, 0x0301 },
+ uccode=0x01D7,
+ unicodeslot=0x01D8,
+ },
+ {
+ category="lu",
+ contextname="Udiaeresiscaron",
+ description="LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON",
+ direction="l",
+ lccode=0x01DA,
+ linebreak="al",
+ shcode=0x0055,
+ specials={ "char", 0x00DC, 0x030C },
+ unicodeslot=0x01D9,
+ },
+ {
+ category="ll",
+ cjkwd="a",
+ contextname="udiaeresiscaron",
+ description="LATIN SMALL LETTER U WITH DIAERESIS AND CARON",
+ direction="l",
+ linebreak="al",
+ shcode=0x0075,
+ specials={ "char", 0x00FC, 0x030C },
+ uccode=0x01D9,
+ unicodeslot=0x01DA,
+ },
+ {
+ category="lu",
+ contextname="Udiaeresisgrave",
+ description="LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE",
+ direction="l",
+ lccode=0x01DC,
+ linebreak="al",
+ shcode=0x0055,
+ specials={ "char", 0x00DC, 0x0300 },
+ unicodeslot=0x01DB,
+ },
+ {
+ category="ll",
+ cjkwd="a",
+ contextname="udiaeresisgrave",
+ description="LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0075,
+ specials={ "char", 0x00FC, 0x0300 },
+ uccode=0x01DB,
+ unicodeslot=0x01DC,
+ },
+ {
+ category="ll",
+ description="LATIN SMALL LETTER TURNED E",
+ direction="l",
+ linebreak="al",
+ uccode=0x018E,
+ unicodeslot=0x01DD,
+ },
+ {
+ category="lu",
+ contextname="Adiaeresismacron",
+ description="LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON",
+ direction="l",
+ lccode=0x01DF,
+ linebreak="al",
+ shcode=0x0041,
+ specials={ "char", 0x00C4, 0x0304 },
+ unicodeslot=0x01DE,
+ },
+ {
+ category="ll",
+ contextname="adiaeresismacron",
+ description="LATIN SMALL LETTER A WITH DIAERESIS AND MACRON",
+ direction="l",
+ linebreak="al",
+ shcode=0x0061,
+ specials={ "char", 0x00E4, 0x0304 },
+ uccode=0x01DE,
+ unicodeslot=0x01DF,
+ },
+ {
+ category="lu",
+ contextname="Adotaccentmacron",
+ description="LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON",
+ direction="l",
+ lccode=0x01E1,
+ linebreak="al",
+ shcode=0x0041,
+ specials={ "char", 0x0226, 0x0304 },
+ unicodeslot=0x01E0,
+ },
+ {
+ category="ll",
+ contextname="adotaccentmacron",
+ description="LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON",
+ direction="l",
+ linebreak="al",
+ shcode=0x0061,
+ specials={ "char", 0x0227, 0x0304 },
+ uccode=0x01E0,
+ unicodeslot=0x01E1,
+ },
+ {
+ category="lu",
+ contextname="AEmacron",
+ description="LATIN CAPITAL LETTER AE WITH MACRON",
+ direction="l",
+ lccode=0x01E3,
+ linebreak="al",
+ shcode=0x00C6,
+ specials={ "char", 0x00C6, 0x0304 },
+ unicodeslot=0x01E2,
+ },
+ {
+ category="ll",
+ contextname="aemacron",
+ description="LATIN SMALL LETTER AE WITH MACRON",
+ direction="l",
+ linebreak="al",
+ shcode=0x00E6,
+ specials={ "char", 0x00E6, 0x0304 },
+ uccode=0x01E2,
+ unicodeslot=0x01E3,
+ },
+ {
+ category="lu",
+ contextname="Gstroke",
+ description="LATIN CAPITAL LETTER G WITH STROKE",
+ direction="l",
+ lccode=0x01E5,
+ linebreak="al",
+ shcode=0x0047,
+ unicodeslot=0x01E4,
+ },
+ {
+ category="ll",
+ contextname="gstroke",
+ description="LATIN SMALL LETTER G WITH STROKE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0067,
+ uccode=0x01E4,
+ unicodeslot=0x01E5,
+ },
+ {
+ adobename="Gcaron",
+ category="lu",
+ contextname="Gcaron",
+ description="LATIN CAPITAL LETTER G WITH CARON",
+ direction="l",
+ lccode=0x01E7,
+ linebreak="al",
+ shcode=0x0047,
+ specials={ "char", 0x0047, 0x030C },
+ unicodeslot=0x01E6,
+ },
+ {
+ adobename="gcaron",
+ category="ll",
+ contextname="gcaron",
+ description="LATIN SMALL LETTER G WITH CARON",
+ direction="l",
+ linebreak="al",
+ shcode=0x0067,
+ specials={ "char", 0x0067, 0x030C },
+ uccode=0x01E6,
+ unicodeslot=0x01E7,
+ },
+ {
+ category="lu",
+ contextname="Kcaron",
+ description="LATIN CAPITAL LETTER K WITH CARON",
+ direction="l",
+ lccode=0x01E9,
+ linebreak="al",
+ shcode=0x004B,
+ specials={ "char", 0x004B, 0x030C },
+ unicodeslot=0x01E8,
+ },
+ {
+ category="ll",
+ contextname="kcaron",
+ description="LATIN SMALL LETTER K WITH CARON",
+ direction="l",
+ linebreak="al",
+ shcode=0x006B,
+ specials={ "char", 0x006B, 0x030C },
+ uccode=0x01E8,
+ unicodeslot=0x01E9,
+ },
+ {
+ category="lu",
+ contextname="Oogonek",
+ description="LATIN CAPITAL LETTER O WITH OGONEK",
+ direction="l",
+ lccode=0x01EB,
+ linebreak="al",
+ shcode=0x004F,
+ specials={ "char", 0x004F, 0x0328 },
+ unicodeslot=0x01EA,
+ },
+ {
+ category="ll",
+ contextname="oogonek",
+ description="LATIN SMALL LETTER O WITH OGONEK",
+ direction="l",
+ linebreak="al",
+ shcode=0x006F,
+ specials={ "char", 0x006F, 0x0328 },
+ uccode=0x01EA,
+ unicodeslot=0x01EB,
+ },
+ {
+ category="lu",
+ contextname="Oogonekmacron",
+ description="LATIN CAPITAL LETTER O WITH OGONEK AND MACRON",
+ direction="l",
+ lccode=0x01ED,
+ linebreak="al",
+ shcode=0x004F,
+ specials={ "char", 0x01EA, 0x0304 },
+ unicodeslot=0x01EC,
+ },
+ {
+ category="ll",
+ contextname="oogonekmacron",
+ description="LATIN SMALL LETTER O WITH OGONEK AND MACRON",
+ direction="l",
+ linebreak="al",
+ shcode=0x006F,
+ specials={ "char", 0x01EB, 0x0304 },
+ uccode=0x01EC,
+ unicodeslot=0x01ED,
+ },
+ {
+ category="lu",
+ description="LATIN CAPITAL LETTER EZH WITH CARON",
+ direction="l",
+ lccode=0x01EF,
+ linebreak="al",
+ shcode=0x01B7,
+ specials={ "char", 0x01B7, 0x030C },
+ unicodeslot=0x01EE,
+ },
+ {
+ category="ll",
+ description="LATIN SMALL LETTER EZH WITH CARON",
+ direction="l",
+ linebreak="al",
+ shcode=0x0292,
+ specials={ "char", 0x0292, 0x030C },
+ uccode=0x01EE,
+ unicodeslot=0x01EF,
+ },
+ {
+ category="ll",
+ contextname="jcaron",
+ description="LATIN SMALL LETTER J WITH CARON",
+ direction="l",
+ linebreak="al",
+ shcode=0x006A,
+ specials={ "char", 0x006A, 0x030C },
+ unicodeslot=0x01F0,
+ },
+ {
+ category="lu",
+ contextname="DZligature",
+ description="LATIN CAPITAL LETTER DZ",
+ direction="l",
+ lccode=0x01F3,
+ linebreak="al",
+ specials={ "compat", 0x0044, 0x005A },
+ uccode=0x01F2,
+ unicodeslot=0x01F1,
+ },
+ {
+ category="lt",
+ contextname="Dzligature",
+ description="LATIN CAPITAL LETTER D WITH SMALL LETTER Z",
+ direction="l",
+ lccode=0x01F3,
+ linebreak="al",
+ shcode=0x0044,
+ specials={ "compat", 0x0044, 0x007A },
+ uccode=0x01F1,
+ unicodeslot=0x01F2,
+ },
+ {
+ category="ll",
+ contextname="dzligature",
+ description="LATIN SMALL LETTER DZ",
+ direction="l",
+ linebreak="al",
+ specials={ "compat", 0x0064, 0x007A },
+ uccode=0x01F1,
+ unicodeslot=0x01F3,
+ },
+ {
+ category="lu",
+ contextname="Gacute",
+ description="LATIN CAPITAL LETTER G WITH ACUTE",
+ direction="l",
+ lccode=0x01F5,
+ linebreak="al",
+ shcode=0x0047,
+ specials={ "char", 0x0047, 0x0301 },
+ unicodeslot=0x01F4,
+ },
+ {
+ category="ll",
+ contextname="gacute",
+ description="LATIN SMALL LETTER G WITH ACUTE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0067,
+ specials={ "char", 0x0067, 0x0301 },
+ uccode=0x01F4,
+ unicodeslot=0x01F5,
+ },
+ {
+ category="lu",
+ description="LATIN CAPITAL LETTER HWAIR",
+ direction="l",
+ lccode=0x0195,
+ linebreak="al",
+ unicodeslot=0x01F6,
+ },
+ {
+ category="lu",
+ description="LATIN CAPITAL LETTER WYNN",
+ direction="l",
+ lccode=0x01BF,
+ linebreak="al",
+ unicodeslot=0x01F7,
+ },
+ {
+ category="lu",
+ contextname="Ngrave",
+ description="LATIN CAPITAL LETTER N WITH GRAVE",
+ direction="l",
+ lccode=0x01F9,
+ linebreak="al",
+ shcode=0x004E,
+ specials={ "char", 0x004E, 0x0300 },
+ unicodeslot=0x01F8,
+ },
+ {
+ category="ll",
+ contextname="ngrave",
+ description="LATIN SMALL LETTER N WITH GRAVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x006E,
+ specials={ "char", 0x006E, 0x0300 },
+ uccode=0x01F8,
+ unicodeslot=0x01F9,
+ },
+ {
+ adobename="Aringacute",
+ category="lu",
+ contextname="Aringacute",
+ description="LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE",
+ direction="l",
+ lccode=0x01FB,
+ linebreak="al",
+ shcode=0x0041,
+ specials={ "char", 0x00C5, 0x0301 },
+ unicodeslot=0x01FA,
+ },
+ {
+ adobename="aringacute",
+ category="ll",
+ contextname="aringacute",
+ description="LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0061,
+ specials={ "char", 0x00E5, 0x0301 },
+ uccode=0x01FA,
+ unicodeslot=0x01FB,
+ },
+ {
+ adobename="AEacute",
+ category="lu",
+ contextname="AEacute",
+ description="LATIN CAPITAL LETTER AE WITH ACUTE",
+ direction="l",
+ lccode=0x01FD,
+ linebreak="al",
+ shcode=0x00C6,
+ specials={ "char", 0x00C6, 0x0301 },
+ unicodeslot=0x01FC,
+ },
+ {
+ adobename="aeacute",
+ category="ll",
+ contextname="aeacute",
+ description="LATIN SMALL LETTER AE WITH ACUTE",
+ direction="l",
+ linebreak="al",
+ shcode=0x00E6,
+ specials={ "char", 0x00E6, 0x0301 },
+ uccode=0x01FC,
+ unicodeslot=0x01FD,
+ },
+ {
+ adobename="Oslashacute",
+ category="lu",
+ contextname="Ostrokeacute",
+ description="LATIN CAPITAL LETTER O WITH STROKE AND ACUTE",
+ direction="l",
+ lccode=0x01FF,
+ linebreak="al",
+ shcode=0x004F,
+ specials={ "char", 0x00D8, 0x0301 },
+ unicodeslot=0x01FE,
+ },
+ {
+ adobename="oslashacute",
+ category="ll",
+ contextname="ostrokeacute",
+ description="LATIN SMALL LETTER O WITH STROKE AND ACUTE",
+ direction="l",
+ linebreak="al",
+ shcode=0x006F,
+ specials={ "char", 0x00F8, 0x0301 },
+ uccode=0x01FE,
+ unicodeslot=0x01FF,
+ },
+ {
+ category="lu",
+ contextname="Adoublegrave",
+ description="LATIN CAPITAL LETTER A WITH DOUBLE GRAVE",
+ direction="l",
+ lccode=0x0201,
+ linebreak="al",
+ shcode=0x0041,
+ specials={ "char", 0x0041, 0x030F },
+ unicodeslot=0x0200,
+ },
+ {
+ category="ll",
+ contextname="adoublegrave",
+ description="LATIN SMALL LETTER A WITH DOUBLE GRAVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0061,
+ specials={ "char", 0x0061, 0x030F },
+ uccode=0x0200,
+ unicodeslot=0x0201,
+ },
+ {
+ category="lu",
+ contextname="Ainvertedbreve",
+ description="LATIN CAPITAL LETTER A WITH INVERTED BREVE",
+ direction="l",
+ lccode=0x0203,
+ linebreak="al",
+ shcode=0x0041,
+ specials={ "char", 0x0041, 0x0311 },
+ unicodeslot=0x0202,
+ },
+ {
+ category="ll",
+ contextname="ainvertedbreve",
+ description="LATIN SMALL LETTER A WITH INVERTED BREVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0061,
+ specials={ "char", 0x0061, 0x0311 },
+ uccode=0x0202,
+ unicodeslot=0x0203,
+ },
+ {
+ category="lu",
+ contextname="Edoublegrave",
+ description="LATIN CAPITAL LETTER E WITH DOUBLE GRAVE",
+ direction="l",
+ lccode=0x0205,
+ linebreak="al",
+ shcode=0x0045,
+ specials={ "char", 0x0045, 0x030F },
+ unicodeslot=0x0204,
+ },
+ {
+ category="ll",
+ contextname="edoublegrave",
+ description="LATIN SMALL LETTER E WITH DOUBLE GRAVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0065,
+ specials={ "char", 0x0065, 0x030F },
+ uccode=0x0204,
+ unicodeslot=0x0205,
+ },
+ {
+ category="lu",
+ contextname="Einvertedbreve",
+ description="LATIN CAPITAL LETTER E WITH INVERTED BREVE",
+ direction="l",
+ lccode=0x0207,
+ linebreak="al",
+ shcode=0x0045,
+ specials={ "char", 0x0045, 0x0311 },
+ unicodeslot=0x0206,
+ },
+ {
+ category="ll",
+ contextname="einvertedbreve",
+ description="LATIN SMALL LETTER E WITH INVERTED BREVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0065,
+ specials={ "char", 0x0065, 0x0311 },
+ uccode=0x0206,
+ unicodeslot=0x0207,
+ },
+ {
+ category="lu",
+ contextname="Idoublegrave",
+ description="LATIN CAPITAL LETTER I WITH DOUBLE GRAVE",
+ direction="l",
+ lccode=0x0209,
+ linebreak="al",
+ shcode=0x0049,
+ specials={ "char", 0x0049, 0x030F },
+ unicodeslot=0x0208,
+ },
+ {
+ category="ll",
+ contextname="idoublegrave",
+ description="LATIN SMALL LETTER I WITH DOUBLE GRAVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0069,
+ specials={ "char", 0x0069, 0x030F },
+ uccode=0x0208,
+ unicodeslot=0x0209,
+ },
+ {
+ category="lu",
+ contextname="Iinvertedbreve",
+ description="LATIN CAPITAL LETTER I WITH INVERTED BREVE",
+ direction="l",
+ lccode=0x020B,
+ linebreak="al",
+ shcode=0x0049,
+ specials={ "char", 0x0049, 0x0311 },
+ unicodeslot=0x020A,
+ },
+ {
+ category="ll",
+ contextname="iinvertedbreve",
+ description="LATIN SMALL LETTER I WITH INVERTED BREVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0069,
+ specials={ "char", 0x0069, 0x0311 },
+ uccode=0x020A,
+ unicodeslot=0x020B,
+ },
+ {
+ category="lu",
+ contextname="Odoublegrave",
+ description="LATIN CAPITAL LETTER O WITH DOUBLE GRAVE",
+ direction="l",
+ lccode=0x020D,
+ linebreak="al",
+ shcode=0x004F,
+ specials={ "char", 0x004F, 0x030F },
+ unicodeslot=0x020C,
+ },
+ {
+ category="ll",
+ contextname="odoublegrave",
+ description="LATIN SMALL LETTER O WITH DOUBLE GRAVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x006F,
+ specials={ "char", 0x006F, 0x030F },
+ uccode=0x020C,
+ unicodeslot=0x020D,
+ },
+ {
+ category="lu",
+ contextname="Oinvertedbreve",
+ description="LATIN CAPITAL LETTER O WITH INVERTED BREVE",
+ direction="l",
+ lccode=0x020F,
+ linebreak="al",
+ shcode=0x004F,
+ specials={ "char", 0x004F, 0x0311 },
+ unicodeslot=0x020E,
+ },
+ {
+ category="ll",
+ contextname="oinvertedbreve",
+ description="LATIN SMALL LETTER O WITH INVERTED BREVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x006F,
+ specials={ "char", 0x006F, 0x0311 },
+ uccode=0x020E,
+ unicodeslot=0x020F,
+ },
+ {
+ category="lu",
+ contextname="Rdoublegrave",
+ description="LATIN CAPITAL LETTER R WITH DOUBLE GRAVE",
+ direction="l",
+ lccode=0x0211,
+ linebreak="al",
+ shcode=0x0052,
+ specials={ "char", 0x0052, 0x030F },
+ unicodeslot=0x0210,
+ },
+ {
+ category="ll",
+ contextname="rdoublegrave",
+ description="LATIN SMALL LETTER R WITH DOUBLE GRAVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0072,
+ specials={ "char", 0x0072, 0x030F },
+ uccode=0x0210,
+ unicodeslot=0x0211,
+ },
+ {
+ category="lu",
+ contextname="Rinvertedbreve",
+ description="LATIN CAPITAL LETTER R WITH INVERTED BREVE",
+ direction="l",
+ lccode=0x0213,
+ linebreak="al",
+ shcode=0x0052,
+ specials={ "char", 0x0052, 0x0311 },
+ unicodeslot=0x0212,
+ },
+ {
+ category="ll",
+ contextname="rinvertedbreve",
+ description="LATIN SMALL LETTER R WITH INVERTED BREVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0072,
+ specials={ "char", 0x0072, 0x0311 },
+ uccode=0x0212,
+ unicodeslot=0x0213,
+ },
+ {
+ category="lu",
+ contextname="Udoublegrave",
+ description="LATIN CAPITAL LETTER U WITH DOUBLE GRAVE",
+ direction="l",
+ lccode=0x0215,
+ linebreak="al",
+ shcode=0x0055,
+ specials={ "char", 0x0055, 0x030F },
+ unicodeslot=0x0214,
+ },
+ {
+ category="ll",
+ contextname="udoublegrave",
+ description="LATIN SMALL LETTER U WITH DOUBLE GRAVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0075,
+ specials={ "char", 0x0075, 0x030F },
+ uccode=0x0214,
+ unicodeslot=0x0215,
+ },
+ {
+ category="lu",
+ contextname="Uinvertedbreve",
+ description="LATIN CAPITAL LETTER U WITH INVERTED BREVE",
+ direction="l",
+ lccode=0x0217,
+ linebreak="al",
+ shcode=0x0055,
+ specials={ "char", 0x0055, 0x0311 },
+ unicodeslot=0x0216,
+ },
+ {
+ category="ll",
+ contextname="uinvertedbreve",
+ description="LATIN SMALL LETTER U WITH INVERTED BREVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0075,
+ specials={ "char", 0x0075, 0x0311 },
+ uccode=0x0216,
+ unicodeslot=0x0217,
+ },
+ {
+ adobename="Scommaaccent",
+ category="lu",
+ contextname="Scommaaccent",
+ description="LATIN CAPITAL LETTER S WITH COMMA BELOW",
+ direction="l",
+ lccode=0x0219,
+ linebreak="al",
+ shcode=0x0053,
+ specials={ "char", 0x0053, 0x0326 },
+ unicodeslot=0x0218,
+ },
+ {
+ adobename="scommaaccent",
+ category="ll",
+ contextname="scommaaccent",
+ description="LATIN SMALL LETTER S WITH COMMA BELOW",
+ direction="l",
+ linebreak="al",
+ shcode=0x0073,
+ specials={ "char", 0x0073, 0x0326 },
+ uccode=0x0218,
+ unicodeslot=0x0219,
+ },
+ {
+ category="lu",
+ contextname="Tcommaaccent",
+ description="LATIN CAPITAL LETTER T WITH COMMA BELOW",
+ direction="l",
+ lccode=0x021B,
+ linebreak="al",
+ shcode=0x0054,
+ specials={ "char", 0x0054, 0x0326 },
+ unicodeslot=0x021A,
+ },
+ {
+ category="ll",
+ contextname="tcommaaccent",
+ description="LATIN SMALL LETTER T WITH COMMA BELOW",
+ direction="l",
+ linebreak="al",
+ shcode=0x0074,
+ specials={ "char", 0x0074, 0x0326 },
+ uccode=0x021A,
+ unicodeslot=0x021B,
+ },
+ {
+ category="lu",
+ description="LATIN CAPITAL LETTER YOGH",
+ direction="l",
+ lccode=0x021D,
+ linebreak="al",
+ unicodeslot=0x021C,
+ },
+ {
+ category="ll",
+ description="LATIN SMALL LETTER YOGH",
+ direction="l",
+ linebreak="al",
+ uccode=0x021C,
+ unicodeslot=0x021D,
+ },
+ {
+ category="lu",
+ contextname="Hcaron",
+ description="LATIN CAPITAL LETTER H WITH CARON",
+ direction="l",
+ lccode=0x021F,
+ linebreak="al",
+ shcode=0x0048,
+ specials={ "char", 0x0048, 0x030C },
+ unicodeslot=0x021E,
+ },
+ {
+ category="ll",
+ contextname="hcaron",
+ description="LATIN SMALL LETTER H WITH CARON",
+ direction="l",
+ linebreak="al",
+ shcode=0x0068,
+ specials={ "char", 0x0068, 0x030C },
+ uccode=0x021E,
+ unicodeslot=0x021F,
+ },
+ {
+ category="lu",
+ description="LATIN CAPITAL LETTER N WITH LONG RIGHT LEG",
+ direction="l",
+ lccode=0x019E,
+ linebreak="al",
+ shcode=0x004E,
+ unicodeslot=0x0220,
+ },
+ {
+ category="ll",
+ contextname="dcurl",
+ description="LATIN SMALL LETTER D WITH CURL",
+ direction="l",
+ linebreak="al",
+ shcode=0x0064,
+ unicodeslot=0x0221,
+ },
+ {
+ category="lu",
+ description="LATIN CAPITAL LETTER OU",
+ direction="l",
+ lccode=0x0223,
+ linebreak="al",
+ unicodeslot=0x0222,
+ },
+ {
+ category="ll",
+ description="LATIN SMALL LETTER OU",
+ direction="l",
+ linebreak="al",
+ uccode=0x0222,
+ unicodeslot=0x0223,
+ },
+ {
+ category="lu",
+ contextname="Zhook",
+ description="LATIN CAPITAL LETTER Z WITH HOOK",
+ direction="l",
+ lccode=0x0225,
+ linebreak="al",
+ shcode=0x005A,
+ unicodeslot=0x0224,
+ },
+ {
+ category="ll",
+ contextname="zhook",
+ description="LATIN SMALL LETTER Z WITH HOOK",
+ direction="l",
+ linebreak="al",
+ shcode=0x007A,
+ uccode=0x0224,
+ unicodeslot=0x0225,
+ },
+ {
+ category="lu",
+ contextname="Adotaccent",
+ description="LATIN CAPITAL LETTER A WITH DOT ABOVE",
+ direction="l",
+ lccode=0x0227,
+ linebreak="al",
+ shcode=0x0041,
+ specials={ "char", 0x0041, 0x0307 },
+ unicodeslot=0x0226,
+ },
+ {
+ category="ll",
+ contextname="adotaccent",
+ description="LATIN SMALL LETTER A WITH DOT ABOVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0061,
+ specials={ "char", 0x0061, 0x0307 },
+ uccode=0x0226,
+ unicodeslot=0x0227,
+ },
+ {
+ category="lu",
+ contextname="Ecedilla",
+ description="LATIN CAPITAL LETTER E WITH CEDILLA",
+ direction="l",
+ lccode=0x0229,
+ linebreak="al",
+ shcode=0x0045,
+ specials={ "char", 0x0045, 0x0327 },
+ unicodeslot=0x0228,
+ },
+ {
+ category="ll",
+ contextname="ecedilla",
+ description="LATIN SMALL LETTER E WITH CEDILLA",
+ direction="l",
+ linebreak="al",
+ shcode=0x0065,
+ specials={ "char", 0x0065, 0x0327 },
+ uccode=0x0228,
+ unicodeslot=0x0229,
+ },
+ {
+ category="lu",
+ contextname="Odiaeresismacron",
+ description="LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON",
+ direction="l",
+ lccode=0x022B,
+ linebreak="al",
+ shcode=0x004F,
+ specials={ "char", 0x00D6, 0x0304 },
+ unicodeslot=0x022A,
+ },
+ {
+ category="ll",
+ contextname="odiaeresismacron",
+ description="LATIN SMALL LETTER O WITH DIAERESIS AND MACRON",
+ direction="l",
+ linebreak="al",
+ shcode=0x006F,
+ specials={ "char", 0x00F6, 0x0304 },
+ uccode=0x022A,
+ unicodeslot=0x022B,
+ },
+ {
+ category="lu",
+ contextname="Otildemacron",
+ description="LATIN CAPITAL LETTER O WITH TILDE AND MACRON",
+ direction="l",
+ lccode=0x022D,
+ linebreak="al",
+ shcode=0x004F,
+ specials={ "char", 0x00D5, 0x0304 },
+ unicodeslot=0x022C,
+ },
+ {
+ category="ll",
+ contextname="otildemacron",
+ description="LATIN SMALL LETTER O WITH TILDE AND MACRON",
+ direction="l",
+ linebreak="al",
+ shcode=0x006F,
+ specials={ "char", 0x00F5, 0x0304 },
+ uccode=0x022C,
+ unicodeslot=0x022D,
+ },
+ {
+ category="lu",
+ contextname="Odotaccent",
+ description="LATIN CAPITAL LETTER O WITH DOT ABOVE",
+ direction="l",
+ lccode=0x022F,
+ linebreak="al",
+ shcode=0x004F,
+ specials={ "char", 0x004F, 0x0307 },
+ unicodeslot=0x022E,
+ },
+ {
+ category="ll",
+ contextname="odotaccent",
+ description="LATIN SMALL LETTER O WITH DOT ABOVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x006F,
+ specials={ "char", 0x006F, 0x0307 },
+ uccode=0x022E,
+ unicodeslot=0x022F,
+ },
+ {
+ category="lu",
+ contextname="Odotaccentmacron",
+ description="LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON",
+ direction="l",
+ lccode=0x0231,
+ linebreak="al",
+ shcode=0x004F,
+ specials={ "char", 0x022E, 0x0304 },
+ unicodeslot=0x0230,
+ },
+ {
+ category="ll",
+ contextname="odotaccentmacron",
+ description="LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON",
+ direction="l",
+ linebreak="al",
+ shcode=0x006F,
+ specials={ "char", 0x022F, 0x0304 },
+ uccode=0x0230,
+ unicodeslot=0x0231,
+ },
+ {
+ category="lu",
+ contextname="Ymacron",
+ description="LATIN CAPITAL LETTER Y WITH MACRON",
+ direction="l",
+ lccode=0x0233,
+ linebreak="al",
+ shcode=0x0059,
+ specials={ "char", 0x0059, 0x0304 },
+ unicodeslot=0x0232,
+ },
+ {
+ category="ll",
+ contextname="ymacron",
+ description="LATIN SMALL LETTER Y WITH MACRON",
+ direction="l",
+ linebreak="al",
+ shcode=0x0079,
+ specials={ "char", 0x0079, 0x0304 },
+ uccode=0x0232,
+ unicodeslot=0x0233,
+ },
+ {
+ category="ll",
+ contextname="lcurl",
+ description="LATIN SMALL LETTER L WITH CURL",
+ direction="l",
+ linebreak="al",
+ shcode=0x006C,
+ unicodeslot=0x0234,
+ },
+ {
+ category="ll",
+ contextname="ncurl",
+ description="LATIN SMALL LETTER N WITH CURL",
+ direction="l",
+ linebreak="al",
+ shcode=0x006E,
+ unicodeslot=0x0235,
+ },
+ {
+ category="ll",
+ contextname="tcurl",
+ description="LATIN SMALL LETTER T WITH CURL",
+ direction="l",
+ linebreak="al",
+ shcode=0x0074,
+ unicodeslot=0x0236,
+ },
+ {
+ category="ll",
+ contextname="dotlessj",
+ description="LATIN SMALL LETTER DOTLESS J",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0237,
+ },
+ {
+ category="ll",
+ description="LATIN SMALL LETTER DB DIGRAPH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0238,
+ },
+ {
+ category="ll",
+ description="LATIN SMALL LETTER QP DIGRAPH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0239,
+ },
+ {
+ category="lu",
+ contextname="Astroke",
+ description="LATIN CAPITAL LETTER A WITH STROKE",
+ direction="l",
+ lccode=0x2C65,
+ linebreak="al",
+ shcode=0x0041,
+ unicodeslot=0x023A,
+ },
+ {
+ category="lu",
+ contextname="Cstroke",
+ description="LATIN CAPITAL LETTER C WITH STROKE",
+ direction="l",
+ lccode=0x023C,
+ linebreak="al",
+ shcode=0x0043,
+ unicodeslot=0x023B,
+ },
+ {
+ category="ll",
+ contextname="cstroke",
+ description="LATIN SMALL LETTER C WITH STROKE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0063,
+ uccode=0x023B,
+ unicodeslot=0x023C,
+ },
+ {
+ category="lu",
+ contextname="Lbar",
+ description="LATIN CAPITAL LETTER L WITH BAR",
+ direction="l",
+ lccode=0x019A,
+ linebreak="al",
+ shcode=0x004C,
+ unicodeslot=0x023D,
+ },
+ {
+ category="lu",
+ description="LATIN CAPITAL LETTER T WITH DIAGONAL STROKE",
+ direction="l",
+ lccode=0x2C66,
+ linebreak="al",
+ shcode=0x0054,
+ unicodeslot=0x023E,
+ },
+ {
+ category="ll",
+ description="LATIN SMALL LETTER S WITH SWASH TAIL",
+ direction="l",
+ linebreak="al",
+ shcode=0x0073,
+ unicodeslot=0x023F,
+ },
+ {
+ category="ll",
+ description="LATIN SMALL LETTER Z WITH SWASH TAIL",
+ direction="l",
+ linebreak="al",
+ shcode=0x007A,
+ unicodeslot=0x0240,
+ },
+ {
+ category="lu",
+ description="LATIN CAPITAL LETTER GLOTTAL STOP",
+ direction="l",
+ lccode=0x0242,
+ linebreak="al",
+ unicodeslot=0x0241,
+ },
+ {
+ category="ll",
+ description="LATIN SMALL LETTER GLOTTAL STOP",
+ direction="l",
+ linebreak="al",
+ uccode=0x0241,
+ unicodeslot=0x0242,
+ },
+ {
+ category="lu",
+ description="LATIN CAPITAL LETTER B WITH STROKE",
+ direction="l",
+ lccode=0x0180,
+ linebreak="al",
+ shcode=0x0042,
+ unicodeslot=0x0243,
+ },
+ {
+ category="lu",
+ description="LATIN CAPITAL LETTER U BAR",
+ direction="l",
+ lccode=0x0289,
+ linebreak="al",
+ unicodeslot=0x0244,
+ },
+ {
+ category="lu",
+ description="LATIN CAPITAL LETTER TURNED V",
+ direction="l",
+ lccode=0x028C,
+ linebreak="al",
+ unicodeslot=0x0245,
+ },
+ {
+ category="lu",
+ description="LATIN CAPITAL LETTER E WITH STROKE",
+ direction="l",
+ lccode=0x0247,
+ linebreak="al",
+ shcode=0x0045,
+ unicodeslot=0x0246,
+ },
+ {
+ category="ll",
+ description="LATIN SMALL LETTER E WITH STROKE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0065,
+ uccode=0x0246,
+ unicodeslot=0x0247,
+ },
+ {
+ category="lu",
+ description="LATIN CAPITAL LETTER J WITH STROKE",
+ direction="l",
+ lccode=0x0249,
+ linebreak="al",
+ shcode=0x004A,
+ unicodeslot=0x0248,
+ },
+ {
+ category="ll",
+ description="LATIN SMALL LETTER J WITH STROKE",
+ direction="l",
+ linebreak="al",
+ shcode=0x006A,
+ uccode=0x0248,
+ unicodeslot=0x0249,
+ },
+ {
+ category="lu",
+ description="LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL",
+ direction="l",
+ lccode=0x024B,
+ linebreak="al",
+ unicodeslot=0x024A,
+ },
+ {
+ category="ll",
+ description="LATIN SMALL LETTER Q WITH HOOK TAIL",
+ direction="l",
+ linebreak="al",
+ shcode=0x0071,
+ uccode=0x024A,
+ unicodeslot=0x024B,
+ },
+ {
+ category="lu",
+ description="LATIN CAPITAL LETTER R WITH STROKE",
+ direction="l",
+ lccode=0x024D,
+ linebreak="al",
+ shcode=0x0052,
+ unicodeslot=0x024C,
+ },
+ {
+ category="ll",
+ description="LATIN SMALL LETTER R WITH STROKE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0072,
+ uccode=0x024C,
+ unicodeslot=0x024D,
+ },
+ {
+ category="lu",
+ description="LATIN CAPITAL LETTER Y WITH STROKE",
+ direction="l",
+ lccode=0x024F,
+ linebreak="al",
+ shcode=0x0059,
+ unicodeslot=0x024E,
+ },
+ {
+ category="ll",
+ description="LATIN SMALL LETTER Y WITH STROKE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0079,
+ uccode=0x024E,
+ unicodeslot=0x024F,
+ },
+ {
+ category="ll",
+ description="LATIN SMALL LETTER TURNED A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0250,
+ },
+ {
+ category="ll",
+ cjkwd="a",
+ description="LATIN SMALL LETTER ALPHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0251,
+ },
+ {
+ category="ll",
+ description="LATIN SMALL LETTER TURNED ALPHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0252,
+ },
+ {
+ category="ll",
+ contextname="bhook",
+ description="LATIN SMALL LETTER B WITH HOOK",
+ direction="l",
+ linebreak="al",
+ shcode=0x0062,
+ uccode=0x0181,
+ unicodeslot=0x0253,
+ },
+ {
+ category="ll",
+ description="LATIN SMALL LETTER OPEN O",
+ direction="l",
+ linebreak="al",
+ uccode=0x0186,
+ unicodeslot=0x0254,
+ },
+ {
+ category="ll",
+ contextname="ccurl",
+ description="LATIN SMALL LETTER C WITH CURL",
+ direction="l",
+ linebreak="al",
+ shcode=0x0063,
+ unicodeslot=0x0255,
+ },
+ {
+ category="ll",
+ contextname="dtail",
+ description="LATIN SMALL LETTER D WITH TAIL",
+ direction="l",
+ linebreak="al",
+ shcode=0x0064,
+ uccode=0x0189,
+ unicodeslot=0x0256,
+ },
+ {
+ category="ll",
+ contextname="dhook",
+ description="LATIN SMALL LETTER D WITH HOOK",
+ direction="l",
+ linebreak="al",
+ shcode=0x0064,
+ uccode=0x018A,
+ unicodeslot=0x0257,
+ },
+ {
+ category="ll",
+ description="LATIN SMALL LETTER REVERSED E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0258,
+ },
+ {
+ category="ll",
+ contextname="schwa",
+ description="LATIN SMALL LETTER SCHWA",
+ direction="l",
+ linebreak="al",
+ uccode=0x018F,
+ unicodeslot=0x0259,
+ },
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER S WITH HOOK",
- ["linebreak"]="al",
- ["shcode"]=0x0073,
- ["unicodeslot"]=0x0282, -- ʂ
+ category="ll",
+ contextname="schwahook",
+ description="LATIN SMALL LETTER SCHWA WITH HOOK",
+ direction="l",
+ linebreak="al",
+ shcode=0x0259,
+ unicodeslot=0x025A,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER ESH",
- ["linebreak"]="al",
- ["uccode"]=0x01A9,
- ["unicodeslot"]=0x0283, -- ʃ
+ category="ll",
+ description="LATIN SMALL LETTER OPEN E",
+ direction="l",
+ linebreak="al",
+ uccode=0x0190,
+ unicodeslot=0x025B,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0284, -- ʄ
- },
+ category="ll",
+ description="LATIN SMALL LETTER REVERSED OPEN E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x025C,
+ },
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER SQUAT REVERSED ESH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0285, -- ʅ
+ category="ll",
+ description="LATIN SMALL LETTER REVERSED OPEN E WITH HOOK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x025D,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER ESH WITH CURL",
- ["linebreak"]="al",
- ["shcode"]=0x0283,
- ["unicodeslot"]=0x0286, -- ʆ
+ category="ll",
+ description="LATIN SMALL LETTER CLOSED REVERSED OPEN E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x025E,
+ },
+ {
+ category="ll",
+ contextname="dotlessjstroke",
+ description="LATIN SMALL LETTER DOTLESS J WITH STROKE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x025F,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER TURNED T",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0287, -- ʇ
+ category="ll",
+ description="LATIN SMALL LETTER G WITH HOOK",
+ direction="l",
+ linebreak="al",
+ shcode=0x0067,
+ uccode=0x0193,
+ unicodeslot=0x0260,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER T WITH RETROFLEX HOOK",
- ["linebreak"]="al",
- ["shcode"]=0x0074,
- ["uccode"]=0x01AE,
- ["unicodeslot"]=0x0288, -- ʈ
+ category="ll",
+ cjkwd="a",
+ description="LATIN SMALL LETTER SCRIPT G",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0261,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER U BAR",
- ["linebreak"]="al",
- ["uccode"]=0x0244,
- ["unicodeslot"]=0x0289, -- ʉ
+ category="ll",
+ description="LATIN LETTER SMALL CAPITAL G",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0262,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER UPSILON",
- ["linebreak"]="al",
- ["uccode"]=0x01B1,
- ["unicodeslot"]=0x028A, -- ʊ
+ category="ll",
+ description="LATIN SMALL LETTER GAMMA",
+ direction="l",
+ linebreak="al",
+ uccode=0x0194,
+ unicodeslot=0x0263,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER V WITH HOOK",
- ["linebreak"]="al",
- ["shcode"]=0x0076,
- ["uccode"]=0x01B2,
- ["unicodeslot"]=0x028B, -- ʋ
+ category="ll",
+ description="LATIN SMALL LETTER RAMS HORN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0264,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER TURNED V",
- ["linebreak"]="al",
- ["uccode"]=0x0245,
- ["unicodeslot"]=0x028C, -- ʌ
+ category="ll",
+ description="LATIN SMALL LETTER TURNED H",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0265,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER TURNED W",
- ["linebreak"]="al",
- ["unicodeslot"]=0x028D, -- ʍ
+ category="ll",
+ description="LATIN SMALL LETTER H WITH HOOK",
+ direction="l",
+ linebreak="al",
+ shcode=0x0068,
+ unicodeslot=0x0266,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER TURNED Y",
- ["linebreak"]="al",
- ["unicodeslot"]=0x028E, -- ʎ
+ category="ll",
+ description="LATIN SMALL LETTER HENG WITH HOOK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0267,
},
{
- ["category"]="ll",
- ["description"]="LATIN LETTER SMALL CAPITAL Y",
- ["linebreak"]="al",
- ["unicodeslot"]=0x028F, -- ʏ
+ category="ll",
+ description="LATIN SMALL LETTER I WITH STROKE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0069,
+ uccode=0x0197,
+ unicodeslot=0x0268,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER Z WITH RETROFLEX HOOK",
- ["linebreak"]="al",
- ["shcode"]=0x007A,
- ["unicodeslot"]=0x0290, -- ʐ
+ category="ll",
+ description="LATIN SMALL LETTER IOTA",
+ direction="l",
+ linebreak="al",
+ uccode=0x0196,
+ unicodeslot=0x0269,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER Z WITH CURL",
- ["linebreak"]="al",
- ["shcode"]=0x007A,
- ["unicodeslot"]=0x0291, -- ʑ
+ category="ll",
+ description="LATIN LETTER SMALL CAPITAL I",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x026A,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER EZH",
- ["linebreak"]="al",
- ["uccode"]=0x01B7,
- ["unicodeslot"]=0x0292, -- ʒ
+ category="ll",
+ description="LATIN SMALL LETTER L WITH MIDDLE TILDE",
+ direction="l",
+ linebreak="al",
+ shcode=0x006C,
+ uccode=0x2C62,
+ unicodeslot=0x026B,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER EZH WITH CURL",
- ["linebreak"]="al",
- ["shcode"]=0x0292,
- ["unicodeslot"]=0x0293, -- ʓ
+ category="ll",
+ description="LATIN SMALL LETTER L WITH BELT",
+ direction="l",
+ linebreak="al",
+ shcode=0x006C,
+ unicodeslot=0x026C,
},
{
- ["category"]="lo",
- ["description"]="LATIN LETTER GLOTTAL STOP",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0294, -- ʔ
+ category="ll",
+ description="LATIN SMALL LETTER L WITH RETROFLEX HOOK",
+ direction="l",
+ linebreak="al",
+ shcode=0x006C,
+ unicodeslot=0x026D,
},
{
- ["category"]="ll",
- ["description"]="LATIN LETTER PHARYNGEAL VOICED FRICATIVE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0295, -- ʕ
+ category="ll",
+ description="LATIN SMALL LETTER LEZH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x026E,
},
{
- ["category"]="ll",
- ["description"]="LATIN LETTER INVERTED GLOTTAL STOP",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0296, -- ʖ
+ category="ll",
+ description="LATIN SMALL LETTER TURNED M",
+ direction="l",
+ linebreak="al",
+ uccode=0x019C,
+ unicodeslot=0x026F,
},
{
- ["category"]="ll",
- ["description"]="LATIN LETTER STRETCHED C",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0297, -- ʗ
+ category="ll",
+ description="LATIN SMALL LETTER TURNED M WITH LONG LEG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0270,
},
{
- ["category"]="ll",
- ["description"]="LATIN LETTER BILABIAL CLICK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0298, -- ʘ
+ category="ll",
+ description="LATIN SMALL LETTER M WITH HOOK",
+ direction="l",
+ linebreak="al",
+ shcode=0x006D,
+ unicodeslot=0x0271,
},
{
- ["category"]="ll",
- ["description"]="LATIN LETTER SMALL CAPITAL B",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0299, -- ʙ
+ category="ll",
+ description="LATIN SMALL LETTER N WITH LEFT HOOK",
+ direction="l",
+ linebreak="al",
+ shcode=0x006E,
+ uccode=0x019D,
+ unicodeslot=0x0272,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER CLOSED OPEN E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x029A, -- ʚ
+ category="ll",
+ description="LATIN SMALL LETTER N WITH RETROFLEX HOOK",
+ direction="l",
+ linebreak="al",
+ shcode=0x006E,
+ unicodeslot=0x0273,
},
{
- ["category"]="ll",
- ["description"]="LATIN LETTER SMALL CAPITAL G WITH HOOK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x029B, -- ʛ
+ category="ll",
+ description="LATIN LETTER SMALL CAPITAL N",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0274,
},
{
- ["category"]="ll",
- ["description"]="LATIN LETTER SMALL CAPITAL H",
- ["linebreak"]="al",
- ["unicodeslot"]=0x029C, -- ʜ
+ category="ll",
+ description="LATIN SMALL LETTER BARRED O",
+ direction="l",
+ linebreak="al",
+ uccode=0x019F,
+ unicodeslot=0x0275,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER J WITH CROSSED-TAIL",
- ["linebreak"]="al",
- ["shcode"]=0x006A,
- ["unicodeslot"]=0x029D, -- ʝ
+ category="ll",
+ description="LATIN LETTER SMALL CAPITAL OE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0276,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER TURNED K",
- ["linebreak"]="al",
- ["unicodeslot"]=0x029E, -- ʞ
+ category="ll",
+ description="LATIN SMALL LETTER CLOSED OMEGA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0277,
},
{
- ["category"]="ll",
- ["description"]="LATIN LETTER SMALL CAPITAL L",
- ["linebreak"]="al",
- ["unicodeslot"]=0x029F, -- ʟ
+ category="ll",
+ description="LATIN SMALL LETTER PHI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0278,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER Q WITH HOOK",
- ["linebreak"]="al",
- ["shcode"]=0x0071,
- ["unicodeslot"]=0x02A0, -- ʠ
+ category="ll",
+ description="LATIN SMALL LETTER TURNED R",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0279,
},
{
- ["category"]="ll",
- ["description"]="LATIN LETTER GLOTTAL STOP WITH STROKE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02A1, -- ʡ
+ category="ll",
+ description="LATIN SMALL LETTER TURNED R WITH LONG LEG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x027A,
},
{
- ["category"]="ll",
- ["description"]="LATIN LETTER REVERSED GLOTTAL STOP WITH STROKE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02A2, -- ʢ
+ category="ll",
+ description="LATIN SMALL LETTER TURNED R WITH HOOK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x027B,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER DZ DIGRAPH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02A3, -- ʣ
+ category="ll",
+ description="LATIN SMALL LETTER R WITH LONG LEG",
+ direction="l",
+ linebreak="al",
+ shcode=0x0072,
+ unicodeslot=0x027C,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER DEZH DIGRAPH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02A4, -- ʤ
+ category="ll",
+ description="LATIN SMALL LETTER R WITH TAIL",
+ direction="l",
+ linebreak="al",
+ shcode=0x0072,
+ uccode=0x2C64,
+ unicodeslot=0x027D,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER DZ DIGRAPH WITH CURL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02A5, -- ʥ
+ category="ll",
+ description="LATIN SMALL LETTER R WITH FISHHOOK",
+ direction="l",
+ linebreak="al",
+ shcode=0x0072,
+ unicodeslot=0x027E,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER TS DIGRAPH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02A6, -- ʦ
+ category="ll",
+ description="LATIN SMALL LETTER REVERSED R WITH FISHHOOK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x027F,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER TESH DIGRAPH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02A7, -- ʧ
+ category="ll",
+ description="LATIN LETTER SMALL CAPITAL R",
+ direction="l",
+ linebreak="al",
+ uccode=0x01A6,
+ unicodeslot=0x0280,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER TC DIGRAPH WITH CURL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02A8, -- ʨ
+ category="ll",
+ description="LATIN LETTER SMALL CAPITAL INVERTED R",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0281,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER FENG DIGRAPH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02A9, -- ʩ
+ category="ll",
+ description="LATIN SMALL LETTER S WITH HOOK",
+ direction="l",
+ linebreak="al",
+ shcode=0x0073,
+ unicodeslot=0x0282,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER LS DIGRAPH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02AA, -- ʪ
+ category="ll",
+ description="LATIN SMALL LETTER ESH",
+ direction="l",
+ linebreak="al",
+ uccode=0x01A9,
+ unicodeslot=0x0283,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER LZ DIGRAPH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02AB, -- ʫ
+ category="ll",
+ description="LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0284,
},
{
- ["category"]="ll",
- ["description"]="LATIN LETTER BILABIAL PERCUSSIVE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02AC, -- ʬ
+ category="ll",
+ description="LATIN SMALL LETTER SQUAT REVERSED ESH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0285,
},
{
- ["category"]="ll",
- ["description"]="LATIN LETTER BIDENTAL PERCUSSIVE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02AD, -- ʭ
+ category="ll",
+ description="LATIN SMALL LETTER ESH WITH CURL",
+ direction="l",
+ linebreak="al",
+ shcode=0x0283,
+ unicodeslot=0x0286,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER TURNED H WITH FISHHOOK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02AE, -- ʮ
+ category="ll",
+ description="LATIN SMALL LETTER TURNED T",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0287,
},
{
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02AF, -- ʯ
+ category="ll",
+ description="LATIN SMALL LETTER T WITH RETROFLEX HOOK",
+ direction="l",
+ linebreak="al",
+ shcode=0x0074,
+ uccode=0x01AE,
+ unicodeslot=0x0288,
},
{
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL H",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0068 },
- ["unicodeslot"]=0x02B0, -- ʰ
+ category="ll",
+ description="LATIN SMALL LETTER U BAR",
+ direction="l",
+ linebreak="al",
+ uccode=0x0244,
+ unicodeslot=0x0289,
},
{
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL H WITH HOOK",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0266 },
- ["unicodeslot"]=0x02B1, -- ʱ
+ category="ll",
+ description="LATIN SMALL LETTER UPSILON",
+ direction="l",
+ linebreak="al",
+ uccode=0x01B1,
+ unicodeslot=0x028A,
},
{
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL J",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x006A },
- ["unicodeslot"]=0x02B2, -- ʲ
+ category="ll",
+ description="LATIN SMALL LETTER V WITH HOOK",
+ direction="l",
+ linebreak="al",
+ shcode=0x0076,
+ uccode=0x01B2,
+ unicodeslot=0x028B,
},
{
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL R",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0072 },
- ["unicodeslot"]=0x02B3, -- ʳ
+ category="ll",
+ description="LATIN SMALL LETTER TURNED V",
+ direction="l",
+ linebreak="al",
+ uccode=0x0245,
+ unicodeslot=0x028C,
},
{
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL TURNED R",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0279 },
- ["unicodeslot"]=0x02B4, -- ʴ
+ category="ll",
+ description="LATIN SMALL LETTER TURNED W",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x028D,
},
{
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL TURNED R WITH HOOK",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x027B },
- ["unicodeslot"]=0x02B5, -- ʵ
+ category="ll",
+ description="LATIN SMALL LETTER TURNED Y",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x028E,
},
{
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL CAPITAL INVERTED R",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0281 },
- ["unicodeslot"]=0x02B6, -- ʶ
+ category="ll",
+ description="LATIN LETTER SMALL CAPITAL Y",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x028F,
},
{
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL W",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0077 },
- ["unicodeslot"]=0x02B7, -- ʷ
+ category="ll",
+ description="LATIN SMALL LETTER Z WITH RETROFLEX HOOK",
+ direction="l",
+ linebreak="al",
+ shcode=0x007A,
+ unicodeslot=0x0290,
},
{
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL Y",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0079 },
- ["unicodeslot"]=0x02B8, -- ʸ
+ category="ll",
+ description="LATIN SMALL LETTER Z WITH CURL",
+ direction="l",
+ linebreak="al",
+ shcode=0x007A,
+ unicodeslot=0x0291,
},
{
- ["category"]="lm",
- ["description"]="MODIFIER LETTER PRIME",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02B9, -- ʹ
+ category="ll",
+ description="LATIN SMALL LETTER EZH",
+ direction="l",
+ linebreak="al",
+ uccode=0x01B7,
+ unicodeslot=0x0292,
},
{
- ["category"]="lm",
- ["description"]="MODIFIER LETTER DOUBLE PRIME",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02BA, -- ʺ
+ category="ll",
+ description="LATIN SMALL LETTER EZH WITH CURL",
+ direction="l",
+ linebreak="al",
+ shcode=0x0292,
+ unicodeslot=0x0293,
},
{
- ["category"]="lm",
- ["description"]="MODIFIER LETTER TURNED COMMA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02BB, -- ʻ
+ category="lo",
+ description="LATIN LETTER GLOTTAL STOP",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0294,
},
{
- ["adobename"]="afii57929",
- ["category"]="lm",
- ["description"]="MODIFIER LETTER APOSTROPHE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02BC, -- ʼ
+ category="ll",
+ description="LATIN LETTER PHARYNGEAL VOICED FRICATIVE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0295,
},
{
- ["adobename"]="afii64937",
- ["category"]="lm",
- ["description"]="MODIFIER LETTER REVERSED COMMA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02BD, -- ʽ
+ category="ll",
+ description="LATIN LETTER INVERTED GLOTTAL STOP",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0296,
},
{
- ["category"]="lm",
- ["description"]="MODIFIER LETTER RIGHT HALF RING",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02BE, -- ʾ
+ category="ll",
+ description="LATIN LETTER STRETCHED C",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0297,
},
{
- ["category"]="lm",
- ["description"]="MODIFIER LETTER LEFT HALF RING",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02BF, -- ʿ
+ category="ll",
+ description="LATIN LETTER BILABIAL CLICK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0298,
},
{
- ["category"]="lm",
- ["description"]="MODIFIER LETTER GLOTTAL STOP",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02C0, -- ˀ
+ category="ll",
+ description="LATIN LETTER SMALL CAPITAL B",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0299,
},
{
- ["category"]="lm",
- ["description"]="MODIFIER LETTER REVERSED GLOTTAL STOP",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02C1, -- ˁ
+ category="ll",
+ description="LATIN SMALL LETTER CLOSED OPEN E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x029A,
},
{
- ["category"]="sk",
- ["description"]="MODIFIER LETTER LEFT ARROWHEAD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02C2, -- ˂
+ category="ll",
+ description="LATIN LETTER SMALL CAPITAL G WITH HOOK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x029B,
},
{
- ["category"]="sk",
- ["description"]="MODIFIER LETTER RIGHT ARROWHEAD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02C3, -- ˃
+ category="ll",
+ description="LATIN LETTER SMALL CAPITAL H",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x029C,
},
{
- ["category"]="sk",
- ["cjkwd"]="a",
- ["description"]="MODIFIER LETTER UP ARROWHEAD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02C4, -- ˄
+ category="ll",
+ description="LATIN SMALL LETTER J WITH CROSSED-TAIL",
+ direction="l",
+ linebreak="al",
+ shcode=0x006A,
+ unicodeslot=0x029D,
},
{
- ["category"]="sk",
- ["description"]="MODIFIER LETTER DOWN ARROWHEAD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02C5, -- ˅
+ category="ll",
+ description="LATIN SMALL LETTER TURNED K",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x029E,
},
{
- ["adobename"]="circumflex",
- ["category"]="lm",
- ["contextname"]="textcircumflex",
- ["description"]="MODIFIER LETTER CIRCUMFLEX ACCENT",
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x0020, 0x0302 }, -- added by hh
- ["unicodeslot"]=0x02C6, -- ˆ
+ category="ll",
+ description="LATIN LETTER SMALL CAPITAL L",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x029F,
},
{
- ["adobename"]="caron",
- ["category"]="lm",
- ["cjkwd"]="a",
- ["contextname"]="textcaron",
- ["description"]="CARON",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0020, 0x030C }, -- added by hh
- ["unicodeslot"]=0x02C7, -- ˇ
+ category="ll",
+ description="LATIN SMALL LETTER Q WITH HOOK",
+ direction="l",
+ linebreak="al",
+ shcode=0x0071,
+ unicodeslot=0x02A0,
},
{
- ["category"]="lm",
- ["description"]="MODIFIER LETTER VERTICAL LINE",
- ["linebreak"]="bb",
- ["unicodeslot"]=0x02C8, -- ˈ
+ category="ll",
+ description="LATIN LETTER GLOTTAL STOP WITH STROKE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x02A1,
},
{
- ["category"]="lm",
- ["cjkwd"]="a",
- ["description"]="MODIFIER LETTER MACRON",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x02C9, -- ˉ
+ category="ll",
+ description="LATIN LETTER REVERSED GLOTTAL STOP WITH STROKE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x02A2,
},
{
- ["category"]="lm",
- ["cjkwd"]="a",
- ["description"]="MODIFIER LETTER ACUTE ACCENT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x02CA, -- ˊ
+ category="ll",
+ description="LATIN SMALL LETTER DZ DIGRAPH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x02A3,
},
{
- ["category"]="lm",
- ["cjkwd"]="a",
- ["description"]="MODIFIER LETTER GRAVE ACCENT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x02CB, -- ˋ
+ category="ll",
+ description="LATIN SMALL LETTER DEZH DIGRAPH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x02A4,
},
{
- ["category"]="lm",
- ["description"]="MODIFIER LETTER LOW VERTICAL LINE",
- ["linebreak"]="bb",
- ["unicodeslot"]=0x02CC, -- ˌ
+ category="ll",
+ description="LATIN SMALL LETTER DZ DIGRAPH WITH CURL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x02A5,
},
{
- ["category"]="lm",
- ["cjkwd"]="a",
- ["description"]="MODIFIER LETTER LOW MACRON",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x02CD, -- ˍ
+ category="ll",
+ description="LATIN SMALL LETTER TS DIGRAPH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x02A6,
},
{
- ["category"]="lm",
- ["description"]="MODIFIER LETTER LOW GRAVE ACCENT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02CE, -- ˎ
+ category="ll",
+ description="LATIN SMALL LETTER TESH DIGRAPH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x02A7,
},
{
- ["category"]="lm",
- ["description"]="MODIFIER LETTER LOW ACUTE ACCENT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02CF, -- ˏ
+ category="ll",
+ description="LATIN SMALL LETTER TC DIGRAPH WITH CURL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x02A8,
},
{
- ["category"]="lm",
- ["cjkwd"]="a",
- ["description"]="MODIFIER LETTER TRIANGULAR COLON",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x02D0, -- ː
+ category="ll",
+ description="LATIN SMALL LETTER FENG DIGRAPH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x02A9,
},
{
- ["category"]="lm",
- ["description"]="MODIFIER LETTER HALF TRIANGULAR COLON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02D1, -- ˑ
+ category="ll",
+ description="LATIN SMALL LETTER LS DIGRAPH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x02AA,
},
{
- ["category"]="sk",
- ["description"]="MODIFIER LETTER CENTRED RIGHT HALF RING",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02D2, -- ˒
+ category="ll",
+ description="LATIN SMALL LETTER LZ DIGRAPH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x02AB,
},
{
- ["category"]="sk",
- ["description"]="MODIFIER LETTER CENTRED LEFT HALF RING",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02D3, -- ˓
+ category="ll",
+ description="LATIN LETTER BILABIAL PERCUSSIVE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x02AC,
},
{
- ["category"]="sk",
- ["description"]="MODIFIER LETTER UP TACK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02D4, -- ˔
+ category="ll",
+ description="LATIN LETTER BIDENTAL PERCUSSIVE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x02AD,
},
{
- ["category"]="sk",
- ["description"]="MODIFIER LETTER DOWN TACK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02D5, -- ˕
+ category="ll",
+ description="LATIN SMALL LETTER TURNED H WITH FISHHOOK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x02AE,
},
{
- ["category"]="sk",
- ["description"]="MODIFIER LETTER PLUS SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02D6, -- ˖
+ category="ll",
+ description="LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x02AF,
},
{
- ["category"]="sk",
- ["description"]="MODIFIER LETTER MINUS SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02D7, -- ˗
+ category="lm",
+ description="MODIFIER LETTER SMALL H",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x0068 },
+ unicodeslot=0x02B0,
},
{
- ["adobename"]="breve",
- ["category"]="sk",
- ["cjkwd"]="a",
- ["contextname"]="textbreve",
- ["description"]="BREVE",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0020, 0x0306 },
- ["unicodeslot"]=0x02D8, -- ˘
+ category="lm",
+ description="MODIFIER LETTER SMALL H WITH HOOK",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x0266 },
+ unicodeslot=0x02B1,
},
{
- ["adobename"]="dotaccent",
- ["category"]="sk",
- ["cjkwd"]="a",
- ["contextname"]="textdotaccent",
- ["description"]="DOT ABOVE",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0020, 0x0307 },
- ["unicodeslot"]=0x02D9, -- ˙
+ category="lm",
+ description="MODIFIER LETTER SMALL J",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x006A },
+ unicodeslot=0x02B2,
},
{
- ["adobename"]="ring",
- ["category"]="sk",
- ["cjkwd"]="a",
- ["contextname"]="textring",
- ["description"]="RING ABOVE",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0020, 0x030A },
- ["unicodeslot"]=0x02DA, -- ˚
+ category="lm",
+ description="MODIFIER LETTER SMALL R",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x0072 },
+ unicodeslot=0x02B3,
},
{
- ["adobename"]="ogonek",
- ["category"]="sk",
- ["cjkwd"]="a",
- ["contextname"]="textogonek",
- ["description"]="OGONEK",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0020, 0x0328 },
- ["unicodeslot"]=0x02DB, -- ˛
+ category="lm",
+ description="MODIFIER LETTER SMALL TURNED R",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x0279 },
+ unicodeslot=0x02B4,
},
{
- ["adobename"]="tilde",
- ["category"]="sk",
- ["contextname"]="texttilde",
- ["description"]="SMALL TILDE",
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x0020, 0x0303 },
- ["unicodeslot"]=0x02DC, -- ˜
+ category="lm",
+ description="MODIFIER LETTER SMALL TURNED R WITH HOOK",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x027B },
+ unicodeslot=0x02B5,
},
{
- ["adobename"]="hungarumlaut",
- ["category"]="sk",
- ["cjkwd"]="a",
- ["contextname"]="texthungarumlaut",
- ["description"]="DOUBLE ACUTE ACCENT",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0020, 0x030B },
- ["unicodeslot"]=0x02DD, -- ˝
+ category="lm",
+ description="MODIFIER LETTER SMALL CAPITAL INVERTED R",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x0281 },
+ unicodeslot=0x02B6,
},
{
- ["category"]="sk",
- ["description"]="MODIFIER LETTER RHOTIC HOOK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02DE, -- ˞
+ category="lm",
+ description="MODIFIER LETTER SMALL W",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x0077 },
+ unicodeslot=0x02B7,
},
{
- ["category"]="sk",
- ["cjkwd"]="a",
- ["description"]="MODIFIER LETTER CROSS ACCENT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02DF, -- ˟
+ category="lm",
+ description="MODIFIER LETTER SMALL Y",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x0079 },
+ unicodeslot=0x02B8,
},
{
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL GAMMA",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0263 },
- ["unicodeslot"]=0x02E0, -- ˠ
+ category="lm",
+ description="MODIFIER LETTER PRIME",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x02B9,
},
{
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL L",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x006C },
- ["unicodeslot"]=0x02E1, -- ˡ
+ category="lm",
+ description="MODIFIER LETTER DOUBLE PRIME",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x02BA,
},
{
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL S",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0073 },
- ["unicodeslot"]=0x02E2, -- ˢ
+ category="lm",
+ description="MODIFIER LETTER TURNED COMMA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x02BB,
},
{
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL X",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0078 },
- ["unicodeslot"]=0x02E3, -- ˣ
+ adobename="afii57929",
+ category="lm",
+ description="MODIFIER LETTER APOSTROPHE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x02BC,
},
{
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL REVERSED GLOTTAL STOP",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0295 },
- ["unicodeslot"]=0x02E4, -- ˤ
+ adobename="afii64937",
+ category="lm",
+ description="MODIFIER LETTER REVERSED COMMA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x02BD,
},
{
- ["category"]="sk",
- ["description"]="MODIFIER LETTER EXTRA-HIGH TONE BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02E5, -- ˥
+ category="lm",
+ description="MODIFIER LETTER RIGHT HALF RING",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x02BE,
},
{
- ["category"]="sk",
- ["description"]="MODIFIER LETTER HIGH TONE BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02E6, -- ˦
+ category="lm",
+ description="MODIFIER LETTER LEFT HALF RING",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x02BF,
},
{
- ["category"]="sk",
- ["description"]="MODIFIER LETTER MID TONE BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02E7, -- ˧
+ category="lm",
+ description="MODIFIER LETTER GLOTTAL STOP",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x02C0,
},
{
- ["category"]="sk",
- ["description"]="MODIFIER LETTER LOW TONE BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02E8, -- ˨
+ category="lm",
+ description="MODIFIER LETTER REVERSED GLOTTAL STOP",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x02C1,
},
{
- ["category"]="sk",
- ["description"]="MODIFIER LETTER EXTRA-LOW TONE BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02E9, -- ˩
+ category="sk",
+ description="MODIFIER LETTER LEFT ARROWHEAD",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x02C2,
},
{
- ["category"]="sk",
- ["description"]="MODIFIER LETTER YIN DEPARTING TONE MARK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02EA, -- ˪
+ category="sk",
+ description="MODIFIER LETTER RIGHT ARROWHEAD",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x02C3,
},
{
- ["category"]="sk",
- ["description"]="MODIFIER LETTER YANG DEPARTING TONE MARK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02EB, -- ˫
+ category="sk",
+ cjkwd="a",
+ description="MODIFIER LETTER UP ARROWHEAD",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x02C4,
},
{
- ["category"]="sk",
- ["description"]="MODIFIER LETTER VOICING",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02EC, -- ˬ
+ category="sk",
+ description="MODIFIER LETTER DOWN ARROWHEAD",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x02C5,
},
{
- ["category"]="sk",
- ["description"]="MODIFIER LETTER UNASPIRATED",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02ED, -- ˭
+ adobename="circumflex",
+ category="lm",
+ contextname="textcircumflex",
+ description="MODIFIER LETTER CIRCUMFLEX ACCENT",
+ direction="on",
+ linebreak="al",
+ mathclass="accent",
+ mathname="hat",
+ specials={ "compat", 0x0020, 0x0302 },
+ unicodeslot=0x02C6,
},
{
- ["category"]="lm",
- ["description"]="MODIFIER LETTER DOUBLE APOSTROPHE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02EE, -- ˮ
+ adobename="caron",
+ category="lm",
+ cjkwd="a",
+ contextname="textcaron",
+ description="CARON",
+ direction="on",
+ linebreak="ai",
+ mathclass="accent",
+ mathname="check",
+ specials={ "compat", 0x0020, 0x030C },
+ unicodeslot=0x02C7,
},
{
- ["category"]="sk",
- ["description"]="MODIFIER LETTER LOW DOWN ARROWHEAD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02EF, -- ˯
+ category="lm",
+ description="MODIFIER LETTER VERTICAL LINE",
+ direction="on",
+ linebreak="bb",
+ unicodeslot=0x02C8,
},
{
- ["category"]="sk",
- ["description"]="MODIFIER LETTER LOW UP ARROWHEAD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02F0, -- ˰
+ category="lm",
+ cjkwd="a",
+ description="MODIFIER LETTER MACRON",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x02C9,
},
{
- ["category"]="sk",
- ["description"]="MODIFIER LETTER LOW LEFT ARROWHEAD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02F1, -- ˱
+ category="lm",
+ cjkwd="a",
+ description="MODIFIER LETTER ACUTE ACCENT",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x02CA,
},
{
- ["category"]="sk",
- ["description"]="MODIFIER LETTER LOW RIGHT ARROWHEAD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02F2, -- ˲
+ category="lm",
+ cjkwd="a",
+ description="MODIFIER LETTER GRAVE ACCENT",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x02CB,
},
{
- ["category"]="sk",
- ["description"]="MODIFIER LETTER LOW RING",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02F3, -- ˳
+ category="lm",
+ description="MODIFIER LETTER LOW VERTICAL LINE",
+ direction="on",
+ linebreak="bb",
+ unicodeslot=0x02CC,
},
{
- ["category"]="sk",
- ["description"]="MODIFIER LETTER MIDDLE GRAVE ACCENT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02F4, -- ˴
+ category="lm",
+ cjkwd="a",
+ description="MODIFIER LETTER LOW MACRON",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x02CD,
+ },
+ {
+ category="lm",
+ description="MODIFIER LETTER LOW GRAVE ACCENT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x02CE,
+ },
+ {
+ category="lm",
+ description="MODIFIER LETTER LOW ACUTE ACCENT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x02CF,
+ },
+ {
+ category="lm",
+ cjkwd="a",
+ description="MODIFIER LETTER TRIANGULAR COLON",
+ direction="l",
+ linebreak="ai",
+ unicodeslot=0x02D0,
+ },
+ {
+ category="lm",
+ description="MODIFIER LETTER HALF TRIANGULAR COLON",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x02D1,
+ },
+ {
+ category="sk",
+ description="MODIFIER LETTER CENTRED RIGHT HALF RING",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x02D2,
+ },
+ {
+ category="sk",
+ description="MODIFIER LETTER CENTRED LEFT HALF RING",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x02D3,
+ },
+ {
+ category="sk",
+ description="MODIFIER LETTER UP TACK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x02D4,
+ },
+ {
+ category="sk",
+ description="MODIFIER LETTER DOWN TACK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x02D5,
+ },
+ {
+ category="sk",
+ description="MODIFIER LETTER PLUS SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x02D6,
+ },
+ {
+ category="sk",
+ description="MODIFIER LETTER MINUS SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x02D7,
+ },
+ {
+ adobename="breve",
+ category="sk",
+ cjkwd="a",
+ contextname="textbreve",
+ description="BREVE",
+ direction="on",
+ linebreak="ai",
+ mathclass="accent",
+ mathname="breve",
+ specials={ "compat", 0x0020, 0x0306 },
+ unicodeslot=0x02D8,
+ },
+ {
+ adobename="dotaccent",
+ category="sk",
+ cjkwd="a",
+ contextname="textdotaccent",
+ description="DOT ABOVE",
+ direction="on",
+ linebreak="ai",
+ mathclass="accent",
+ mathname="dot",
+ specials={ "compat", 0x0020, 0x0307 },
+ unicodeslot=0x02D9,
+ },
+ {
+ adobename="ring",
+ category="sk",
+ cjkwd="a",
+ contextname="textring",
+ description="RING ABOVE",
+ direction="on",
+ linebreak="ai",
+ mathclass="accent",
+ mathname="mathring",
+ specials={ "compat", 0x0020, 0x030A },
+ unicodeslot=0x02DA,
+ },
+ {
+ adobename="ogonek",
+ category="sk",
+ cjkwd="a",
+ contextname="textogonek",
+ description="OGONEK",
+ direction="on",
+ linebreak="ai",
+ specials={ "compat", 0x0020, 0x0328 },
+ unicodeslot=0x02DB,
+ },
+ {
+ adobename="tilde",
+ category="sk",
+ contextname="texttilde",
+ description="SMALL TILDE",
+ direction="on",
+ linebreak="al",
+ mathclass="accent",
+ mathname="tilde",
+ specials={ "compat", 0x0020, 0x0303 },
+ unicodeslot=0x02DC,
+ },
+ {
+ adobename="hungarumlaut",
+ category="sk",
+ cjkwd="a",
+ contextname="texthungarumlaut",
+ description="DOUBLE ACUTE ACCENT",
+ direction="on",
+ linebreak="ai",
+ specials={ "compat", 0x0020, 0x030B },
+ unicodeslot=0x02DD,
+ },
+ {
+ category="sk",
+ description="MODIFIER LETTER RHOTIC HOOK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x02DE,
+ },
+ {
+ category="sk",
+ cjkwd="a",
+ description="MODIFIER LETTER CROSS ACCENT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x02DF,
+ },
+ {
+ category="lm",
+ description="MODIFIER LETTER SMALL GAMMA",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x0263 },
+ unicodeslot=0x02E0,
+ },
+ {
+ category="lm",
+ description="MODIFIER LETTER SMALL L",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x006C },
+ unicodeslot=0x02E1,
+ },
+ {
+ category="lm",
+ description="MODIFIER LETTER SMALL S",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x0073 },
+ unicodeslot=0x02E2,
},
{
- ["category"]="sk",
- ["description"]="MODIFIER LETTER MIDDLE DOUBLE GRAVE ACCENT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02F5, -- ˵
+ category="lm",
+ description="MODIFIER LETTER SMALL X",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x0078 },
+ unicodeslot=0x02E3,
},
{
- ["category"]="sk",
- ["description"]="MODIFIER LETTER MIDDLE DOUBLE ACUTE ACCENT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02F6, -- ˶
+ category="lm",
+ description="MODIFIER LETTER SMALL REVERSED GLOTTAL STOP",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x0295 },
+ unicodeslot=0x02E4,
},
{
- ["category"]="sk",
- ["description"]="MODIFIER LETTER LOW TILDE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02F7, -- ˷
+ category="sk",
+ description="MODIFIER LETTER EXTRA-HIGH TONE BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x02E5,
},
{
- ["category"]="sk",
- ["description"]="MODIFIER LETTER RAISED COLON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02F8, -- ˸
+ category="sk",
+ description="MODIFIER LETTER HIGH TONE BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x02E6,
},
{
- ["category"]="sk",
- ["description"]="MODIFIER LETTER BEGIN HIGH TONE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02F9, -- ˹
+ category="sk",
+ description="MODIFIER LETTER MID TONE BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x02E7,
},
{
- ["category"]="sk",
- ["description"]="MODIFIER LETTER END HIGH TONE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02FA, -- ˺
+ category="sk",
+ description="MODIFIER LETTER LOW TONE BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x02E8,
},
{
- ["category"]="sk",
- ["description"]="MODIFIER LETTER BEGIN LOW TONE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02FB, -- ˻
+ category="sk",
+ description="MODIFIER LETTER EXTRA-LOW TONE BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x02E9,
},
{
- ["category"]="sk",
- ["description"]="MODIFIER LETTER END LOW TONE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02FC, -- ˼
+ category="sk",
+ description="MODIFIER LETTER YIN DEPARTING TONE MARK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x02EA,
},
{
- ["category"]="sk",
- ["description"]="MODIFIER LETTER SHELF",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02FD, -- ˽
+ category="sk",
+ description="MODIFIER LETTER YANG DEPARTING TONE MARK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x02EB,
},
{
- ["category"]="sk",
- ["description"]="MODIFIER LETTER OPEN SHELF",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02FE, -- ˾
+ category="sk",
+ description="MODIFIER LETTER VOICING",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x02EC,
},
{
- ["category"]="sk",
- ["description"]="MODIFIER LETTER LOW LEFT ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x02FF, -- ˿
+ category="sk",
+ description="MODIFIER LETTER UNASPIRATED",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x02ED,
},
{
- ["adobename"]="gravecomb",
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING GRAVE ACCENT",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0300, -- ̀
+ category="lm",
+ description="MODIFIER LETTER DOUBLE APOSTROPHE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x02EE,
},
{
- ["adobename"]="acutecomb",
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING ACUTE ACCENT",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0301, -- ́
+ category="sk",
+ description="MODIFIER LETTER LOW DOWN ARROWHEAD",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x02EF,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING CIRCUMFLEX ACCENT",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0302, -- ̂
+ category="sk",
+ description="MODIFIER LETTER LOW UP ARROWHEAD",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x02F0,
},
{
- ["adobename"]="tildecomb",
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING TILDE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0303, -- ̃
+ category="sk",
+ description="MODIFIER LETTER LOW LEFT ARROWHEAD",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x02F1,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING MACRON",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0304, -- ̄
+ category="sk",
+ description="MODIFIER LETTER LOW RIGHT ARROWHEAD",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x02F2,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING OVERLINE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0305, -- ̅
+ category="sk",
+ description="MODIFIER LETTER LOW RING",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x02F3,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING BREVE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0306, -- ̆
+ category="sk",
+ description="MODIFIER LETTER MIDDLE GRAVE ACCENT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x02F4,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING DOT ABOVE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0307, -- ̇
+ category="sk",
+ description="MODIFIER LETTER MIDDLE DOUBLE GRAVE ACCENT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x02F5,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING DIAERESIS",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0308, -- ̈
+ category="sk",
+ description="MODIFIER LETTER MIDDLE DOUBLE ACUTE ACCENT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x02F6,
},
{
- ["adobename"]="hookabovecomb",
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING HOOK ABOVE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0309, -- ̉
+ category="sk",
+ description="MODIFIER LETTER LOW TILDE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x02F7,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING RING ABOVE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x030A, -- ̊
+ category="sk",
+ description="MODIFIER LETTER RAISED COLON",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x02F8,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING DOUBLE ACUTE ACCENT",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x030B, -- ̋
+ category="sk",
+ description="MODIFIER LETTER BEGIN HIGH TONE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x02F9,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING CARON",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x030C, -- ̌
+ category="sk",
+ description="MODIFIER LETTER END HIGH TONE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x02FA,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING VERTICAL LINE ABOVE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x030D, -- ̍
+ category="sk",
+ description="MODIFIER LETTER BEGIN LOW TONE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x02FB,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING DOUBLE VERTICAL LINE ABOVE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x030E, -- ̎
+ category="sk",
+ description="MODIFIER LETTER END LOW TONE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x02FC,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING DOUBLE GRAVE ACCENT",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x030F, -- ̏
+ category="sk",
+ description="MODIFIER LETTER SHELF",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x02FD,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING CANDRABINDU",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0310, -- ̐
+ category="sk",
+ description="MODIFIER LETTER OPEN SHELF",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x02FE,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING INVERTED BREVE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0311, -- ̑
+ category="sk",
+ description="MODIFIER LETTER LOW LEFT ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x02FF,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING TURNED COMMA ABOVE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0312, -- ̒
+ adobename="gravecomb",
+ category="mn",
+ cjkwd="a",
+ description="COMBINING GRAVE ACCENT",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0300,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING COMMA ABOVE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0313, -- ̓
+ adobename="acutecomb",
+ category="mn",
+ cjkwd="a",
+ description="COMBINING ACUTE ACCENT",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0301,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING REVERSED COMMA ABOVE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0314, -- ̔
+ category="mn",
+ cjkwd="a",
+ description="COMBINING CIRCUMFLEX ACCENT",
+ direction="nsm",
+ linebreak="cm",
+ mathstretch="h",
+ unicodeslot=0x0302,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING COMMA ABOVE RIGHT",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0315, -- ̕
+ adobename="tildecomb",
+ category="mn",
+ cjkwd="a",
+ description="COMBINING TILDE",
+ direction="nsm",
+ linebreak="cm",
+ mathstretch="h",
+ unicodeslot=0x0303,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING GRAVE ACCENT BELOW",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0316, -- ̖
+ category="mn",
+ cjkwd="a",
+ description="COMBINING MACRON",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0304,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING ACUTE ACCENT BELOW",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0317, -- ̗
+ category="mn",
+ cjkwd="a",
+ description="COMBINING OVERLINE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0305,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING LEFT TACK BELOW",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0318, -- ̘
+ category="mn",
+ cjkwd="a",
+ description="COMBINING BREVE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0306,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING RIGHT TACK BELOW",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0319, -- ̙
+ category="mn",
+ cjkwd="a",
+ description="COMBINING DOT ABOVE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0307,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING LEFT ANGLE ABOVE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x031A, -- ̚
+ category="mn",
+ cjkwd="a",
+ description="COMBINING DIAERESIS",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0308,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING HORN",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x031B, -- ̛
+ adobename="hookabovecomb",
+ category="mn",
+ cjkwd="a",
+ description="COMBINING HOOK ABOVE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0309,
},
- {
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING LEFT HALF RING BELOW",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x031C, -- ̜
+ {
+ category="mn",
+ cjkwd="a",
+ description="COMBINING RING ABOVE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x030A,
+ },
+ {
+ category="mn",
+ cjkwd="a",
+ description="COMBINING DOUBLE ACUTE ACCENT",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x030B,
+ },
+ {
+ category="mn",
+ cjkwd="a",
+ description="COMBINING CARON",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x030C,
+ },
+ {
+ category="mn",
+ cjkwd="a",
+ description="COMBINING VERTICAL LINE ABOVE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x030D,
},
- {
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING UP TACK BELOW",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x031D, -- ̝
- },
- {
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING DOWN TACK BELOW",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x031E, -- ̞
+ {
+ category="mn",
+ cjkwd="a",
+ description="COMBINING DOUBLE VERTICAL LINE ABOVE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x030E,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING PLUS SIGN BELOW",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x031F, -- ̟
+ category="mn",
+ cjkwd="a",
+ description="COMBINING DOUBLE GRAVE ACCENT",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x030F,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING MINUS SIGN BELOW",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0320, -- ̠
+ category="mn",
+ cjkwd="a",
+ description="COMBINING CANDRABINDU",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0310,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING PALATALIZED HOOK BELOW",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0321, -- ̡
+ category="mn",
+ cjkwd="a",
+ description="COMBINING INVERTED BREVE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0311,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING RETROFLEX HOOK BELOW",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0322, -- ̢
+ category="mn",
+ cjkwd="a",
+ description="COMBINING TURNED COMMA ABOVE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0312,
},
{
- ["adobename"]="dotbelowcomb",
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING DOT BELOW",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0323, -- ̣
+ category="mn",
+ cjkwd="a",
+ description="COMBINING COMMA ABOVE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0313,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING DIAERESIS BELOW",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0324, -- ̤
+ category="mn",
+ cjkwd="a",
+ description="COMBINING REVERSED COMMA ABOVE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0314,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING RING BELOW",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0325, -- ̥
+ category="mn",
+ cjkwd="a",
+ description="COMBINING COMMA ABOVE RIGHT",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0315,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING COMMA BELOW",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0326, -- ̦
+ category="mn",
+ cjkwd="a",
+ description="COMBINING GRAVE ACCENT BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0316,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING CEDILLA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0327, -- ̧
+ category="mn",
+ cjkwd="a",
+ description="COMBINING ACUTE ACCENT BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0317,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING OGONEK",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0328, -- ̨
+ category="mn",
+ cjkwd="a",
+ description="COMBINING LEFT TACK BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0318,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING VERTICAL LINE BELOW",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0329, -- ̩
+ category="mn",
+ cjkwd="a",
+ description="COMBINING RIGHT TACK BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0319,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING BRIDGE BELOW",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x032A, -- ̪
+ category="mn",
+ cjkwd="a",
+ description="COMBINING LEFT ANGLE ABOVE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x031A,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING INVERTED DOUBLE ARCH BELOW",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x032B, -- ̫
+ category="mn",
+ cjkwd="a",
+ description="COMBINING HORN",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x031B,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING CARON BELOW",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x032C, -- ̬
+ category="mn",
+ cjkwd="a",
+ description="COMBINING LEFT HALF RING BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x031C,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING CIRCUMFLEX ACCENT BELOW",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x032D, -- ̭
+ category="mn",
+ cjkwd="a",
+ description="COMBINING UP TACK BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x031D,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING BREVE BELOW",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x032E, -- ̮
+ category="mn",
+ cjkwd="a",
+ description="COMBINING DOWN TACK BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x031E,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING INVERTED BREVE BELOW",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x032F, -- ̯
+ category="mn",
+ cjkwd="a",
+ description="COMBINING PLUS SIGN BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x031F,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING TILDE BELOW",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0330, -- ̰
+ category="mn",
+ cjkwd="a",
+ description="COMBINING MINUS SIGN BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0320,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING MACRON BELOW",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0331, -- ̱
+ category="mn",
+ cjkwd="a",
+ description="COMBINING PALATALIZED HOOK BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0321,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING LOW LINE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0332, -- ̲
+ category="mn",
+ cjkwd="a",
+ description="COMBINING RETROFLEX HOOK BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0322,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING DOUBLE LOW LINE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0333, -- ̳
+ adobename="dotbelowcomb",
+ category="mn",
+ cjkwd="a",
+ contextname="textbottomdot",
+ description="COMBINING DOT BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0323,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING TILDE OVERLAY",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0334, -- ̴
+ category="mn",
+ cjkwd="a",
+ description="COMBINING DIAERESIS BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0324,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING SHORT STROKE OVERLAY",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0335, -- ̵
+ category="mn",
+ cjkwd="a",
+ description="COMBINING RING BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0325,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING LONG STROKE OVERLAY",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0336, -- ̶
+ category="mn",
+ cjkwd="a",
+ contextname="textbottomcomma",
+ description="COMBINING COMMA BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0326,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING SHORT SOLIDUS OVERLAY",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0337, -- ̷
+ category="mn",
+ cjkwd="a",
+ description="COMBINING CEDILLA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0327,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING LONG SOLIDUS OVERLAY",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0338, -- ̸
+ category="mn",
+ cjkwd="a",
+ description="COMBINING OGONEK",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0328,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING RIGHT HALF RING BELOW",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0339, -- ̹
+ category="mn",
+ cjkwd="a",
+ description="COMBINING VERTICAL LINE BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0329,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING INVERTED BRIDGE BELOW",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x033A, -- ̺
+ category="mn",
+ cjkwd="a",
+ description="COMBINING BRIDGE BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x032A,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING SQUARE BELOW",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x033B, -- ̻
+ category="mn",
+ cjkwd="a",
+ description="COMBINING INVERTED DOUBLE ARCH BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x032B,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING SEAGULL BELOW",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x033C, -- ̼
+ category="mn",
+ cjkwd="a",
+ description="COMBINING CARON BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x032C,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING X ABOVE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x033D, -- ̽
+ category="mn",
+ cjkwd="a",
+ description="COMBINING CIRCUMFLEX ACCENT BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x032D,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING VERTICAL TILDE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x033E, -- ̾
+ category="mn",
+ cjkwd="a",
+ description="COMBINING BREVE BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x032E,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING DOUBLE OVERLINE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x033F, -- ̿
+ category="mn",
+ cjkwd="a",
+ description="COMBINING INVERTED BREVE BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x032F,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING GRAVE TONE MARK",
- ["linebreak"]="cm",
- ["specials"]={ "char", 0x0300 },
- ["unicodeslot"]=0x0340, -- ̀
+ category="mn",
+ cjkwd="a",
+ description="COMBINING TILDE BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0330,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING ACUTE TONE MARK",
- ["linebreak"]="cm",
- ["specials"]={ "char", 0x0301 },
- ["unicodeslot"]=0x0341, -- ́
+ category="mn",
+ cjkwd="a",
+ description="COMBINING MACRON BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0331,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING GREEK PERISPOMENI",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0342, -- ͂
+ category="mn",
+ cjkwd="a",
+ description="COMBINING LOW LINE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0332,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING GREEK KORONIS",
- ["linebreak"]="cm",
- ["specials"]={ "char", 0x0313 },
- ["unicodeslot"]=0x0343, -- ̓
+ category="mn",
+ cjkwd="a",
+ description="COMBINING DOUBLE LOW LINE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0333,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING GREEK DIALYTIKA TONOS",
- ["linebreak"]="cm",
- ["specials"]={ "char", 0x0308, 0x0301 },
- ["unicodeslot"]=0x0344, -- ̈́
+ category="mn",
+ cjkwd="a",
+ description="COMBINING TILDE OVERLAY",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0334,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING GREEK YPOGEGRAMMENI",
- ["linebreak"]="cm",
- ["uccode"]=0x0399,
- ["unicodeslot"]=0x0345, -- ͅ
- },
+ category="mn",
+ cjkwd="a",
+ description="COMBINING SHORT STROKE OVERLAY",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0335,
+ },
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING BRIDGE ABOVE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0346, -- ͆
- },
+ category="mn",
+ cjkwd="a",
+ description="COMBINING LONG STROKE OVERLAY",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0336,
+ },
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING EQUALS SIGN BELOW",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0347, -- ͇
- },
+ category="mn",
+ cjkwd="a",
+ description="COMBINING SHORT SOLIDUS OVERLAY",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0337,
+ },
+ {
+ category="mn",
+ cjkwd="a",
+ description="COMBINING LONG SOLIDUS OVERLAY",
+ direction="nsm",
+ linebreak="cm",
+ mathclass="relation",
+ mathname="not",
+ unicodeslot=0x0338,
+ },
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING DOUBLE VERTICAL LINE BELOW",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0348, -- ͈
- },
+ category="mn",
+ cjkwd="a",
+ description="COMBINING RIGHT HALF RING BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0339,
+ },
+ {
+ category="mn",
+ cjkwd="a",
+ description="COMBINING INVERTED BRIDGE BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x033A,
+ },
+ {
+ category="mn",
+ cjkwd="a",
+ description="COMBINING SQUARE BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x033B,
+ },
+ {
+ category="mn",
+ cjkwd="a",
+ description="COMBINING SEAGULL BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x033C,
+ },
+ {
+ category="mn",
+ cjkwd="a",
+ description="COMBINING X ABOVE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x033D,
+ },
+ {
+ category="mn",
+ cjkwd="a",
+ description="COMBINING VERTICAL TILDE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x033E,
+ },
+ {
+ category="mn",
+ cjkwd="a",
+ description="COMBINING DOUBLE OVERLINE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x033F,
+ },
+ {
+ category="mn",
+ cjkwd="a",
+ description="COMBINING GRAVE TONE MARK",
+ direction="nsm",
+ linebreak="cm",
+ specials={ "char", 0x0300 },
+ unicodeslot=0x0340,
+ },
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING LEFT ANGLE BELOW",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0349, -- ͉
+ category="mn",
+ cjkwd="a",
+ description="COMBINING ACUTE TONE MARK",
+ direction="nsm",
+ linebreak="cm",
+ specials={ "char", 0x0301 },
+ unicodeslot=0x0341,
},
- {
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING NOT TILDE ABOVE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x034A, -- ͊
+ {
+ category="mn",
+ cjkwd="a",
+ description="COMBINING GREEK PERISPOMENI",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0342,
},
- {
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING HOMOTHETIC ABOVE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x034B, -- ͋
+ {
+ category="mn",
+ cjkwd="a",
+ description="COMBINING GREEK KORONIS",
+ direction="nsm",
+ linebreak="cm",
+ specials={ "char", 0x0313 },
+ unicodeslot=0x0343,
+ },
+ {
+ category="mn",
+ cjkwd="a",
+ description="COMBINING GREEK DIALYTIKA TONOS",
+ direction="nsm",
+ linebreak="cm",
+ specials={ "char", 0x0308, 0x0301 },
+ unicodeslot=0x0344,
},
- {
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING ALMOST EQUAL TO ABOVE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x034C, -- ͌
+ {
+ category="mn",
+ cjkwd="a",
+ description="COMBINING GREEK YPOGEGRAMMENI",
+ direction="nsm",
+ linebreak="cm",
+ uccode=0x0399,
+ unicodeslot=0x0345,
+ },
+ {
+ category="mn",
+ cjkwd="a",
+ description="COMBINING BRIDGE ABOVE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0346,
+ },
+ {
+ category="mn",
+ cjkwd="a",
+ description="COMBINING EQUALS SIGN BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0347,
+ },
+ {
+ category="mn",
+ cjkwd="a",
+ description="COMBINING DOUBLE VERTICAL LINE BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0348,
+ },
+ {
+ category="mn",
+ cjkwd="a",
+ description="COMBINING LEFT ANGLE BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0349,
+ },
+ {
+ category="mn",
+ cjkwd="a",
+ description="COMBINING NOT TILDE ABOVE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x034A,
+ },
+ {
+ category="mn",
+ cjkwd="a",
+ description="COMBINING HOMOTHETIC ABOVE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x034B,
+ },
+ {
+ category="mn",
+ cjkwd="a",
+ description="COMBINING ALMOST EQUAL TO ABOVE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x034C,
},
- {
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING LEFT RIGHT ARROW BELOW",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x034D, -- ͍
+ {
+ category="mn",
+ cjkwd="a",
+ description="COMBINING LEFT RIGHT ARROW BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x034D,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING UPWARDS ARROW BELOW",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x034E, -- ͎
+ category="mn",
+ cjkwd="a",
+ description="COMBINING UPWARDS ARROW BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x034E,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING GRAPHEME JOINER",
- ["linebreak"]="gl",
- ["unicodeslot"]=0x034F, -- ͏
+ category="mn",
+ cjkwd="a",
+ description="COMBINING GRAPHEME JOINER",
+ direction="nsm",
+ linebreak="gl",
+ unicodeslot=0x034F,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING RIGHT ARROWHEAD ABOVE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0350, -- ͐
+ category="mn",
+ cjkwd="a",
+ description="COMBINING RIGHT ARROWHEAD ABOVE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0350,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING LEFT HALF RING ABOVE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0351, -- ͑
+ category="mn",
+ cjkwd="a",
+ description="COMBINING LEFT HALF RING ABOVE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0351,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING FERMATA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0352, -- ͒
+ category="mn",
+ cjkwd="a",
+ description="COMBINING FERMATA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0352,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING X BELOW",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0353, -- ͓
+ category="mn",
+ cjkwd="a",
+ description="COMBINING X BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0353,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING LEFT ARROWHEAD BELOW",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0354, -- ͔
+ category="mn",
+ cjkwd="a",
+ description="COMBINING LEFT ARROWHEAD BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0354,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING RIGHT ARROWHEAD BELOW",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0355, -- ͕
+ category="mn",
+ cjkwd="a",
+ description="COMBINING RIGHT ARROWHEAD BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0355,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING RIGHT ARROWHEAD AND UP ARROWHEAD BELOW",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0356, -- ͖
+ category="mn",
+ cjkwd="a",
+ description="COMBINING RIGHT ARROWHEAD AND UP ARROWHEAD BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0356,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING RIGHT HALF RING ABOVE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0357, -- ͗
+ category="mn",
+ cjkwd="a",
+ description="COMBINING RIGHT HALF RING ABOVE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0357,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING DOT ABOVE RIGHT",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0358, -- ͘
+ category="mn",
+ cjkwd="a",
+ description="COMBINING DOT ABOVE RIGHT",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0358,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING ASTERISK BELOW",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0359, -- ͙
+ category="mn",
+ cjkwd="a",
+ description="COMBINING ASTERISK BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0359,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING DOUBLE RING BELOW",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x035A, -- ͚
+ category="mn",
+ cjkwd="a",
+ description="COMBINING DOUBLE RING BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x035A,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING ZIGZAG ABOVE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x035B, -- ͛
+ category="mn",
+ cjkwd="a",
+ description="COMBINING ZIGZAG ABOVE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x035B,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING DOUBLE BREVE BELOW",
- ["linebreak"]="gl",
- ["unicodeslot"]=0x035C, -- ͜
+ category="mn",
+ cjkwd="a",
+ description="COMBINING DOUBLE BREVE BELOW",
+ direction="nsm",
+ linebreak="gl",
+ unicodeslot=0x035C,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING DOUBLE BREVE",
- ["linebreak"]="gl",
- ["unicodeslot"]=0x035D, -- ͝
+ category="mn",
+ cjkwd="a",
+ description="COMBINING DOUBLE BREVE",
+ direction="nsm",
+ linebreak="gl",
+ unicodeslot=0x035D,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING DOUBLE MACRON",
- ["linebreak"]="gl",
- ["unicodeslot"]=0x035E, -- ͞
+ category="mn",
+ cjkwd="a",
+ description="COMBINING DOUBLE MACRON",
+ direction="nsm",
+ linebreak="gl",
+ unicodeslot=0x035E,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING DOUBLE MACRON BELOW",
- ["linebreak"]="gl",
- ["unicodeslot"]=0x035F, -- ͟
+ category="mn",
+ cjkwd="a",
+ description="COMBINING DOUBLE MACRON BELOW",
+ direction="nsm",
+ linebreak="gl",
+ unicodeslot=0x035F,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING DOUBLE TILDE",
- ["linebreak"]="gl",
- ["unicodeslot"]=0x0360, -- ͠
+ category="mn",
+ cjkwd="a",
+ description="COMBINING DOUBLE TILDE",
+ direction="nsm",
+ linebreak="gl",
+ unicodeslot=0x0360,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING DOUBLE INVERTED BREVE",
- ["linebreak"]="gl",
- ["unicodeslot"]=0x0361, -- ͡
+ category="mn",
+ cjkwd="a",
+ description="COMBINING DOUBLE INVERTED BREVE",
+ direction="nsm",
+ linebreak="gl",
+ unicodeslot=0x0361,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING DOUBLE RIGHTWARDS ARROW BELOW",
- ["linebreak"]="gl",
- ["unicodeslot"]=0x0362, -- ͢
+ category="mn",
+ cjkwd="a",
+ description="COMBINING DOUBLE RIGHTWARDS ARROW BELOW",
+ direction="nsm",
+ linebreak="gl",
+ unicodeslot=0x0362,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING LATIN SMALL LETTER A",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0363, -- ͣ
+ category="mn",
+ cjkwd="a",
+ description="COMBINING LATIN SMALL LETTER A",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0363,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING LATIN SMALL LETTER E",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0364, -- ͤ
+ category="mn",
+ cjkwd="a",
+ description="COMBINING LATIN SMALL LETTER E",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0364,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING LATIN SMALL LETTER I",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0365, -- ͥ
+ category="mn",
+ cjkwd="a",
+ description="COMBINING LATIN SMALL LETTER I",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0365,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING LATIN SMALL LETTER O",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0366, -- ͦ
+ category="mn",
+ cjkwd="a",
+ description="COMBINING LATIN SMALL LETTER O",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0366,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING LATIN SMALL LETTER U",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0367, -- ͧ
+ category="mn",
+ cjkwd="a",
+ description="COMBINING LATIN SMALL LETTER U",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0367,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING LATIN SMALL LETTER C",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0368, -- ͨ
+ category="mn",
+ cjkwd="a",
+ description="COMBINING LATIN SMALL LETTER C",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0368,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING LATIN SMALL LETTER D",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0369, -- ͩ
+ category="mn",
+ cjkwd="a",
+ description="COMBINING LATIN SMALL LETTER D",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0369,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING LATIN SMALL LETTER H",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x036A, -- ͪ
+ category="mn",
+ cjkwd="a",
+ description="COMBINING LATIN SMALL LETTER H",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x036A,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING LATIN SMALL LETTER M",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x036B, -- ͫ
+ category="mn",
+ cjkwd="a",
+ description="COMBINING LATIN SMALL LETTER M",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x036B,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING LATIN SMALL LETTER R",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x036C, -- ͬ
+ category="mn",
+ cjkwd="a",
+ description="COMBINING LATIN SMALL LETTER R",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x036C,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING LATIN SMALL LETTER T",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x036D, -- ͭ
+ category="mn",
+ cjkwd="a",
+ description="COMBINING LATIN SMALL LETTER T",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x036D,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING LATIN SMALL LETTER V",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x036E, -- ͮ
+ category="mn",
+ cjkwd="a",
+ description="COMBINING LATIN SMALL LETTER V",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x036E,
},
{
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="COMBINING LATIN SMALL LETTER X",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x036F, -- ͯ
+ category="mn",
+ cjkwd="a",
+ description="COMBINING LATIN SMALL LETTER X",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x036F,
},
[0x0374]={
- ["category"]="sk",
- ["description"]="GREEK NUMERAL SIGN",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x02B9 },
- ["unicodeslot"]=0x0374, -- ʹ
+ category="sk",
+ description="GREEK NUMERAL SIGN",
+ direction="on",
+ linebreak="al",
+ specials={ "char", 0x02B9 },
+ unicodeslot=0x0374,
},
[0x0375]={
- ["category"]="sk",
- ["description"]="GREEK LOWER NUMERAL SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0375, -- ͵
+ category="sk",
+ description="GREEK LOWER NUMERAL SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x0375,
},
[0x037A]={
- ["category"]="lm",
- ["description"]="GREEK YPOGEGRAMMENI",
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x0020, 0x0345 },
- ["unicodeslot"]=0x037A, -- ͺ
+ category="lm",
+ description="GREEK YPOGEGRAMMENI",
+ direction="l",
+ linebreak="al",
+ specials={ "compat", 0x0020, 0x0345 },
+ unicodeslot=0x037A,
},
[0x037B]={
- ["category"]="ll",
- ["description"]="GREEK SMALL REVERSED LUNATE SIGMA SYMBOL",
- ["linebreak"]="al",
- ["uccode"]=0x03FD,
- ["unicodeslot"]=0x037B, -- ͻ
+ category="ll",
+ description="GREEK SMALL REVERSED LUNATE SIGMA SYMBOL",
+ direction="l",
+ linebreak="al",
+ uccode=0x03FD,
+ unicodeslot=0x037B,
},
[0x037C]={
- ["category"]="ll",
- ["description"]="GREEK SMALL DOTTED LUNATE SIGMA SYMBOL",
- ["linebreak"]="al",
- ["uccode"]=0x03FE,
- ["unicodeslot"]=0x037C, -- ͼ
+ category="ll",
+ description="GREEK SMALL DOTTED LUNATE SIGMA SYMBOL",
+ direction="l",
+ linebreak="al",
+ uccode=0x03FE,
+ unicodeslot=0x037C,
},
[0x037D]={
- ["category"]="ll",
- ["description"]="GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL",
- ["linebreak"]="al",
- ["uccode"]=0x03FF,
- ["unicodeslot"]=0x037D, -- ͽ
+ category="ll",
+ description="GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL",
+ direction="l",
+ linebreak="al",
+ uccode=0x03FF,
+ unicodeslot=0x037D,
},
[0x037E]={
- ["category"]="po",
- ["description"]="GREEK QUESTION MARK",
- ["linebreak"]="is",
- ["specials"]={ "char", 0x003B },
- ["unicodeslot"]=0x037E, -- ;
+ category="po",
+ description="GREEK QUESTION MARK",
+ direction="on",
+ linebreak="is",
+ specials={ "char", 0x003B },
+ unicodeslot=0x037E,
},
[0x0384]={
- ["adobename"]="tonos",
- ["category"]="sk",
- ["contextname"]="greektonos",
- ["description"]="GREEK TONOS",
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x0020, 0x0301 },
- ["unicodeslot"]=0x0384, -- ΄
+ adobename="tonos",
+ category="sk",
+ contextname="greektonos",
+ description="GREEK TONOS",
+ direction="on",
+ linebreak="al",
+ specials={ "compat", 0x0020, 0x0301 },
+ unicodeslot=0x0384,
},
[0x0385]={
- ["adobename"]="dieresistonos",
- ["category"]="sk",
- ["contextname"]="greekdialytikatonos",
- ["description"]="GREEK DIALYTIKA TONOS",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x00A8, 0x0301 },
- ["unicodeslot"]=0x0385, -- ΅
+ adobename="dieresistonos",
+ category="sk",
+ contextname="greekdialytikatonos",
+ description="GREEK DIALYTIKA TONOS",
+ direction="on",
+ linebreak="al",
+ specials={ "char", 0x00A8, 0x0301 },
+ unicodeslot=0x0385,
},
[0x0386]={
- ["adobename"]="Alphatonos",
- ["category"]="lu",
- ["contextname"]="greekAlphatonos",
- ["description"]="GREEK CAPITAL LETTER ALPHA WITH TONOS",
- ["lccode"]=0x03AC,
- ["linebreak"]="al",
- ["shcode"]=0x0391,
- ["specials"]={ "char", 0x0391, 0x0301 },
- ["unicodeslot"]=0x0386, -- Ά
+ adobename="Alphatonos",
+ category="lu",
+ contextname="greekAlphatonos",
+ description="GREEK CAPITAL LETTER ALPHA WITH TONOS",
+ direction="l",
+ lccode=0x03AC,
+ linebreak="al",
+ shcode=0x0391,
+ specials={ "char", 0x0391, 0x0301 },
+ unicodeslot=0x0386,
},
[0x0387]={
- ["adobename"]="anoteleia",
- ["category"]="po",
- ["description"]="GREEK ANO TELEIA",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x00B7 },
- ["unicodeslot"]=0x0387, -- ·
+ adobename="anoteleia",
+ category="po",
+ description="GREEK ANO TELEIA",
+ direction="on",
+ linebreak="al",
+ specials={ "char", 0x00B7 },
+ unicodeslot=0x0387,
},
[0x0388]={
- ["adobename"]="Epsilontonos",
- ["category"]="lu",
- ["contextname"]="greekEpsilontonos",
- ["description"]="GREEK CAPITAL LETTER EPSILON WITH TONOS",
- ["lccode"]=0x03AD,
- ["linebreak"]="al",
- ["shcode"]=0x0395,
- ["specials"]={ "char", 0x0395, 0x0301 },
- ["unicodeslot"]=0x0388, -- Έ
+ adobename="Epsilontonos",
+ category="lu",
+ contextname="greekEpsilontonos",
+ description="GREEK CAPITAL LETTER EPSILON WITH TONOS",
+ direction="l",
+ lccode=0x03AD,
+ linebreak="al",
+ shcode=0x0395,
+ specials={ "char", 0x0395, 0x0301 },
+ unicodeslot=0x0388,
},
[0x0389]={
- ["adobename"]="Etatonos",
- ["category"]="lu",
- ["contextname"]="greekEtatonos",
- ["description"]="GREEK CAPITAL LETTER ETA WITH TONOS",
- ["lccode"]=0x03AE,
- ["linebreak"]="al",
- ["shcode"]=0x0397,
- ["specials"]={ "char", 0x0397, 0x0301 },
- ["unicodeslot"]=0x0389, -- Ή
+ adobename="Etatonos",
+ category="lu",
+ contextname="greekEtatonos",
+ description="GREEK CAPITAL LETTER ETA WITH TONOS",
+ direction="l",
+ lccode=0x03AE,
+ linebreak="al",
+ shcode=0x0397,
+ specials={ "char", 0x0397, 0x0301 },
+ unicodeslot=0x0389,
},
[0x038A]={
- ["adobename"]="Iotatonos",
- ["category"]="lu",
- ["contextname"]="greekIotatonos",
- ["description"]="GREEK CAPITAL LETTER IOTA WITH TONOS",
- ["lccode"]=0x03AF,
- ["linebreak"]="al",
- ["shcode"]=0x0399,
- ["specials"]={ "char", 0x0399, 0x0301 },
- ["unicodeslot"]=0x038A, -- Ί
+ adobename="Iotatonos",
+ category="lu",
+ contextname="greekIotatonos",
+ description="GREEK CAPITAL LETTER IOTA WITH TONOS",
+ direction="l",
+ lccode=0x03AF,
+ linebreak="al",
+ shcode=0x0399,
+ specials={ "char", 0x0399, 0x0301 },
+ unicodeslot=0x038A,
},
[0x038C]={
- ["adobename"]="Omicrontonos",
- ["category"]="lu",
- ["contextname"]="greekOmicrontonos",
- ["description"]="GREEK CAPITAL LETTER OMICRON WITH TONOS",
- ["lccode"]=0x03CC,
- ["linebreak"]="al",
- ["shcode"]=0x039F,
- ["specials"]={ "char", 0x039F, 0x0301 },
- ["unicodeslot"]=0x038C, -- Ό
+ adobename="Omicrontonos",
+ category="lu",
+ contextname="greekOmicrontonos",
+ description="GREEK CAPITAL LETTER OMICRON WITH TONOS",
+ direction="l",
+ lccode=0x03CC,
+ linebreak="al",
+ shcode=0x039F,
+ specials={ "char", 0x039F, 0x0301 },
+ unicodeslot=0x038C,
},
[0x038E]={
- ["adobename"]="Upsilontonos",
- ["category"]="lu",
- ["contextname"]="greekUpsilontonos",
- ["description"]="GREEK CAPITAL LETTER UPSILON WITH TONOS",
- ["lccode"]=0x03CD,
- ["linebreak"]="al",
- ["shcode"]=0x03A5,
- ["specials"]={ "char", 0x03A5, 0x0301 },
- ["unicodeslot"]=0x038E, -- Ύ
+ adobename="Upsilontonos",
+ category="lu",
+ contextname="greekUpsilontonos",
+ description="GREEK CAPITAL LETTER UPSILON WITH TONOS",
+ direction="l",
+ lccode=0x03CD,
+ linebreak="al",
+ shcode=0x03A5,
+ specials={ "char", 0x03A5, 0x0301 },
+ unicodeslot=0x038E,
},
[0x038F]={
- ["adobename"]="Omegatonos",
- ["category"]="lu",
- ["contextname"]="greekOmegatonos",
- ["description"]="GREEK CAPITAL LETTER OMEGA WITH TONOS",
- ["lccode"]=0x03CE,
- ["linebreak"]="al",
- ["shcode"]=0x03A9,
- ["specials"]={ "char", 0x03A9, 0x0301 },
- ["unicodeslot"]=0x038F, -- Ώ
+ adobename="Omegatonos",
+ category="lu",
+ contextname="greekOmegatonos",
+ description="GREEK CAPITAL LETTER OMEGA WITH TONOS",
+ direction="l",
+ lccode=0x03CE,
+ linebreak="al",
+ shcode=0x03A9,
+ specials={ "char", 0x03A9, 0x0301 },
+ unicodeslot=0x038F,
},
[0x0390]={
- ["adobename"]="iotadieresistonos",
- ["category"]="ll",
- ["contextname"]="greekiotadialytikatonos",
- ["description"]="GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS",
- ["linebreak"]="al",
- ["shcode"]=0x03B9,
- ["specials"]={ "char", 0x03CA, 0x0301 },
- ["unicodeslot"]=0x0390, -- ΐ
+ adobename="iotadieresistonos",
+ category="ll",
+ contextname="greekiotadialytikatonos",
+ description="GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B9,
+ specials={ "char", 0x03CA, 0x0301 },
+ unicodeslot=0x0390,
},
[0x0391]={
- ["adobename"]="Alpha",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="greekAlpha",
- ["description"]="GREEK CAPITAL LETTER ALPHA",
- ["lccode"]=0x03B1,
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["mathname"]="Alpha",
- ["unicodeslot"]=0x0391, -- Α
+ adobename="Alpha",
+ category="lu",
+ cjkwd="a",
+ contextname="greekAlpha",
+ description="GREEK CAPITAL LETTER ALPHA",
+ direction="l",
+ lccode=0x03B1,
+ linebreak="al",
+ unicodeslot=0x0391,
},
[0x0392]={
- ["adobename"]="Beta",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="greekBeta",
- ["description"]="GREEK CAPITAL LETTER BETA",
- ["lccode"]=0x03B2,
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["mathname"]="Beta",
- ["unicodeslot"]=0x0392, -- Β
+ adobename="Beta",
+ category="lu",
+ cjkwd="a",
+ contextname="greekBeta",
+ description="GREEK CAPITAL LETTER BETA",
+ direction="l",
+ lccode=0x03B2,
+ linebreak="al",
+ unicodeslot=0x0392,
},
[0x0393]={
- ["adobename"]="Gamma",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="greekGamma",
- ["description"]="GREEK CAPITAL LETTER GAMMA",
- ["lccode"]=0x03B3,
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["mathname"]="Gamma",
- ["unicodeslot"]=0x0393, -- Γ
+ adobename="Gamma",
+ category="lu",
+ cjkwd="a",
+ contextname="greekGamma",
+ description="GREEK CAPITAL LETTER GAMMA",
+ direction="l",
+ lccode=0x03B3,
+ linebreak="al",
+ unicodeslot=0x0393,
},
[0x0394]={
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="greekDelta",
- ["description"]="GREEK CAPITAL LETTER DELTA",
- ["lccode"]=0x03B4,
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["mathname"]="Delta",
- ["unicodeslot"]=0x0394, -- Δ
+ category="lu",
+ cjkwd="a",
+ contextname="greekDelta",
+ description="GREEK CAPITAL LETTER DELTA",
+ direction="l",
+ lccode=0x03B4,
+ linebreak="al",
+ unicodeslot=0x0394,
},
[0x0395]={
- ["adobename"]="Epsilon",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="greekEpsilon",
- ["description"]="GREEK CAPITAL LETTER EPSILON",
- ["lccode"]=0x03B5,
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["mathname"]="Epsilon",
- ["unicodeslot"]=0x0395, -- Ε
+ adobename="Epsilon",
+ category="lu",
+ cjkwd="a",
+ contextname="greekEpsilon",
+ description="GREEK CAPITAL LETTER EPSILON",
+ direction="l",
+ lccode=0x03B5,
+ linebreak="al",
+ unicodeslot=0x0395,
},
[0x0396]={
- ["adobename"]="Zeta",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="greekZeta",
- ["description"]="GREEK CAPITAL LETTER ZETA",
- ["lccode"]=0x03B6,
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["mathname"]="Zeta",
- ["unicodeslot"]=0x0396, -- Ζ
+ adobename="Zeta",
+ category="lu",
+ cjkwd="a",
+ contextname="greekZeta",
+ description="GREEK CAPITAL LETTER ZETA",
+ direction="l",
+ lccode=0x03B6,
+ linebreak="al",
+ unicodeslot=0x0396,
},
[0x0397]={
- ["adobename"]="Eta",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="greekEta",
- ["description"]="GREEK CAPITAL LETTER ETA",
- ["lccode"]=0x03B7,
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["mathname"]="Eta",
- ["unicodeslot"]=0x0397, -- Η
+ adobename="Eta",
+ category="lu",
+ cjkwd="a",
+ contextname="greekEta",
+ description="GREEK CAPITAL LETTER ETA",
+ direction="l",
+ lccode=0x03B7,
+ linebreak="al",
+ unicodeslot=0x0397,
},
[0x0398]={
- ["adobename"]="Theta",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="greekTheta",
- ["description"]="GREEK CAPITAL LETTER THETA",
- ["lccode"]=0x03B8,
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["mathname"]="Theta",
- ["unicodeslot"]=0x0398, -- Θ
+ adobename="Theta",
+ category="lu",
+ cjkwd="a",
+ contextname="greekTheta",
+ description="GREEK CAPITAL LETTER THETA",
+ direction="l",
+ lccode=0x03B8,
+ linebreak="al",
+ unicodeslot=0x0398,
},
[0x0399]={
- ["adobename"]="Iota",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="greekIota",
- ["description"]="GREEK CAPITAL LETTER IOTA",
- ["lccode"]=0x03B9,
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["mathname"]="Iota",
- ["unicodeslot"]=0x0399, -- Ι
+ adobename="Iota",
+ category="lu",
+ cjkwd="a",
+ contextname="greekIota",
+ description="GREEK CAPITAL LETTER IOTA",
+ direction="l",
+ lccode=0x03B9,
+ linebreak="al",
+ unicodeslot=0x0399,
},
[0x039A]={
- ["adobename"]="Kappa",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="greekKappa",
- ["description"]="GREEK CAPITAL LETTER KAPPA",
- ["lccode"]=0x03BA,
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["mathname"]="Kappa",
- ["unicodeslot"]=0x039A, -- Κ
+ adobename="Kappa",
+ category="lu",
+ cjkwd="a",
+ contextname="greekKappa",
+ description="GREEK CAPITAL LETTER KAPPA",
+ direction="l",
+ lccode=0x03BA,
+ linebreak="al",
+ unicodeslot=0x039A,
},
[0x039B]={
- ["adobename"]="Lambda",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="greekLambda",
- ["description"]="GREEK CAPITAL LETTER LAMDA",
- ["lccode"]=0x03BB,
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["mathname"]="Lambda",
- ["unicodeslot"]=0x039B, -- Λ
+ adobename="Lambda",
+ category="lu",
+ cjkwd="a",
+ contextname="greekLambda",
+ description="GREEK CAPITAL LETTER LAMDA",
+ direction="l",
+ lccode=0x03BB,
+ linebreak="al",
+ unicodeslot=0x039B,
},
[0x039C]={
- ["adobename"]="Mu",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="greekMu",
- ["description"]="GREEK CAPITAL LETTER MU",
- ["lccode"]=0x03BC,
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["mathname"]="Mu",
- ["unicodeslot"]=0x039C, -- Μ
+ adobename="Mu",
+ category="lu",
+ cjkwd="a",
+ contextname="greekMu",
+ description="GREEK CAPITAL LETTER MU",
+ direction="l",
+ lccode=0x03BC,
+ linebreak="al",
+ unicodeslot=0x039C,
},
[0x039D]={
- ["adobename"]="Nu",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="greekNu",
- ["description"]="GREEK CAPITAL LETTER NU",
- ["lccode"]=0x03BD,
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["mathname"]="Nu",
- ["unicodeslot"]=0x039D, -- Ν
+ adobename="Nu",
+ category="lu",
+ cjkwd="a",
+ contextname="greekNu",
+ description="GREEK CAPITAL LETTER NU",
+ direction="l",
+ lccode=0x03BD,
+ linebreak="al",
+ unicodeslot=0x039D,
},
[0x039E]={
- ["adobename"]="Xi",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="greekXi",
- ["description"]="GREEK CAPITAL LETTER XI",
- ["lccode"]=0x03BE,
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["mathname"]="Xi",
- ["unicodeslot"]=0x039E, -- Ξ
+ adobename="Xi",
+ category="lu",
+ cjkwd="a",
+ contextname="greekXi",
+ description="GREEK CAPITAL LETTER XI",
+ direction="l",
+ lccode=0x03BE,
+ linebreak="al",
+ unicodeslot=0x039E,
},
[0x039F]={
- ["adobename"]="Omicron",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="greekOmicron",
- ["description"]="GREEK CAPITAL LETTER OMICRON",
- ["lccode"]=0x03BF,
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["mathname"]="Omicron",
- ["unicodeslot"]=0x039F, -- Ο
+ adobename="Omicron",
+ category="lu",
+ cjkwd="a",
+ contextname="greekOmicron",
+ description="GREEK CAPITAL LETTER OMICRON",
+ direction="l",
+ lccode=0x03BF,
+ linebreak="al",
+ unicodeslot=0x039F,
},
[0x03A0]={
- ["adobename"]="Pi",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="greekPi",
- ["description"]="GREEK CAPITAL LETTER PI",
- ["lccode"]=0x03C0,
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["mathname"]="Pi",
- ["unicodeslot"]=0x03A0, -- Π
+ adobename="Pi",
+ category="lu",
+ cjkwd="a",
+ contextname="greekPi",
+ description="GREEK CAPITAL LETTER PI",
+ direction="l",
+ lccode=0x03C0,
+ linebreak="al",
+ unicodeslot=0x03A0,
},
[0x03A1]={
- ["adobename"]="Rho",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="greekRho",
- ["description"]="GREEK CAPITAL LETTER RHO",
- ["lccode"]=0x03C1,
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["mathname"]="Rho",
- ["unicodeslot"]=0x03A1, -- Ρ
+ adobename="Rho",
+ category="lu",
+ cjkwd="a",
+ contextname="greekRho",
+ description="GREEK CAPITAL LETTER RHO",
+ direction="l",
+ lccode=0x03C1,
+ linebreak="al",
+ unicodeslot=0x03A1,
},
[0x03A3]={
- ["adobename"]="Sigma",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="greekSigma",
- ["description"]="GREEK CAPITAL LETTER SIGMA",
- ["lccode"]=0x03C3,
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["mathname"]="Sigma",
- ["unicodeslot"]=0x03A3, -- Σ
+ adobename="Sigma",
+ category="lu",
+ cjkwd="a",
+ contextname="greekSigma",
+ description="GREEK CAPITAL LETTER SIGMA",
+ direction="l",
+ lccode=0x03C3,
+ linebreak="al",
+ unicodeslot=0x03A3,
},
[0x03A4]={
- ["adobename"]="Tau",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="greekTau",
- ["description"]="GREEK CAPITAL LETTER TAU",
- ["lccode"]=0x03C4,
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["mathname"]="Tau",
- ["unicodeslot"]=0x03A4, -- Τ
+ adobename="Tau",
+ category="lu",
+ cjkwd="a",
+ contextname="greekTau",
+ description="GREEK CAPITAL LETTER TAU",
+ direction="l",
+ lccode=0x03C4,
+ linebreak="al",
+ unicodeslot=0x03A4,
},
[0x03A5]={
- ["adobename"]="Upsilon",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="greekUpsilon",
- ["description"]="GREEK CAPITAL LETTER UPSILON",
- ["lccode"]=0x03C5,
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["mathname"]="Upsilon",
- ["unicodeslot"]=0x03A5, -- Υ
+ adobename="Upsilon",
+ category="lu",
+ cjkwd="a",
+ contextname="greekUpsilon",
+ description="GREEK CAPITAL LETTER UPSILON",
+ direction="l",
+ lccode=0x03C5,
+ linebreak="al",
+ unicodeslot=0x03A5,
},
[0x03A6]={
- ["adobename"]="Phi",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="greekPhi",
- ["description"]="GREEK CAPITAL LETTER PHI",
- ["lccode"]=0x03C6,
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["mathname"]="Phi",
- ["unicodeslot"]=0x03A6, -- Φ
+ adobename="Phi",
+ category="lu",
+ cjkwd="a",
+ contextname="greekPhi",
+ description="GREEK CAPITAL LETTER PHI",
+ direction="l",
+ lccode=0x03C6,
+ linebreak="al",
+ unicodeslot=0x03A6,
},
[0x03A7]={
- ["adobename"]="Chi",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="greekChi",
- ["description"]="GREEK CAPITAL LETTER CHI",
- ["lccode"]=0x03C7,
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["mathname"]="Chi",
- ["unicodeslot"]=0x03A7, -- Χ
+ adobename="Chi",
+ category="lu",
+ cjkwd="a",
+ contextname="greekChi",
+ description="GREEK CAPITAL LETTER CHI",
+ direction="l",
+ lccode=0x03C7,
+ linebreak="al",
+ unicodeslot=0x03A7,
},
[0x03A8]={
- ["adobename"]="Psi",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="greekPsi",
- ["description"]="GREEK CAPITAL LETTER PSI",
- ["lccode"]=0x03C8,
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["mathname"]="Psi",
- ["unicodeslot"]=0x03A8, -- Ψ
+ adobename="Psi",
+ category="lu",
+ cjkwd="a",
+ contextname="greekPsi",
+ description="GREEK CAPITAL LETTER PSI",
+ direction="l",
+ lccode=0x03C8,
+ linebreak="al",
+ unicodeslot=0x03A8,
},
[0x03A9]={
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="greekOmega",
- ["description"]="GREEK CAPITAL LETTER OMEGA",
- ["lccode"]=0x03C9,
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["mathname"]="Omega",
- ["unicodeslot"]=0x03A9, -- Ω
+ category="lu",
+ cjkwd="a",
+ contextname="greekOmega",
+ description="GREEK CAPITAL LETTER OMEGA",
+ direction="l",
+ lccode=0x03C9,
+ linebreak="al",
+ unicodeslot=0x03A9,
},
[0x03AA]={
- ["adobename"]="Iotadieresis",
- ["category"]="lu",
- ["contextname"]="greekIotadialytika",
- ["description"]="GREEK CAPITAL LETTER IOTA WITH DIALYTIKA",
- ["lccode"]=0x03CA,
- ["linebreak"]="al",
- ["shcode"]=0x0399,
- ["specials"]={ "char", 0x0399, 0x0308 },
- ["unicodeslot"]=0x03AA, -- Ϊ
+ adobename="Iotadieresis",
+ category="lu",
+ contextname="greekIotadialytika",
+ description="GREEK CAPITAL LETTER IOTA WITH DIALYTIKA",
+ direction="l",
+ lccode=0x03CA,
+ linebreak="al",
+ shcode=0x0399,
+ specials={ "char", 0x0399, 0x0308 },
+ unicodeslot=0x03AA,
},
[0x03AB]={
- ["adobename"]="Upsilondieresis",
- ["category"]="lu",
- ["contextname"]="greekUpsilondialytika",
- ["description"]="GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA",
- ["lccode"]=0x03CB,
- ["linebreak"]="al",
- ["shcode"]=0x03A5,
- ["specials"]={ "char", 0x03A5, 0x0308 },
- ["unicodeslot"]=0x03AB, -- Ϋ
+ adobename="Upsilondieresis",
+ category="lu",
+ contextname="greekUpsilondialytika",
+ description="GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA",
+ direction="l",
+ lccode=0x03CB,
+ linebreak="al",
+ shcode=0x03A5,
+ specials={ "char", 0x03A5, 0x0308 },
+ unicodeslot=0x03AB,
},
[0x03AC]={
- ["adobename"]="alphatonos",
- ["category"]="ll",
- ["contextname"]="greekalphatonos",
- ["description"]="GREEK SMALL LETTER ALPHA WITH TONOS",
- ["linebreak"]="al",
- ["shcode"]=0x03B1,
- ["specials"]={ "char", 0x03B1, 0x0301 },
- ["uccode"]=0x0386,
- ["unicodeslot"]=0x03AC, -- ά
+ adobename="alphatonos",
+ category="ll",
+ contextname="greekalphatonos",
+ description="GREEK SMALL LETTER ALPHA WITH TONOS",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B1,
+ specials={ "char", 0x03B1, 0x0301 },
+ uccode=0x0386,
+ unicodeslot=0x03AC,
},
[0x03AD]={
- ["adobename"]="epsilontonos",
- ["category"]="ll",
- ["contextname"]="greekepsilontonos",
- ["description"]="GREEK SMALL LETTER EPSILON WITH TONOS",
- ["linebreak"]="al",
- ["shcode"]=0x03B5,
- ["specials"]={ "char", 0x03B5, 0x0301 },
- ["uccode"]=0x0388,
- ["unicodeslot"]=0x03AD, -- έ
+ adobename="epsilontonos",
+ category="ll",
+ contextname="greekepsilontonos",
+ description="GREEK SMALL LETTER EPSILON WITH TONOS",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B5,
+ specials={ "char", 0x03B5, 0x0301 },
+ uccode=0x0388,
+ unicodeslot=0x03AD,
},
[0x03AE]={
- ["adobename"]="etatonos",
- ["category"]="ll",
- ["contextname"]="greeketatonos",
- ["description"]="GREEK SMALL LETTER ETA WITH TONOS",
- ["linebreak"]="al",
- ["shcode"]=0x03B7,
- ["specials"]={ "char", 0x03B7, 0x0301 },
- ["uccode"]=0x0389,
- ["unicodeslot"]=0x03AE, -- ή
+ adobename="etatonos",
+ category="ll",
+ contextname="greeketatonos",
+ description="GREEK SMALL LETTER ETA WITH TONOS",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B7,
+ specials={ "char", 0x03B7, 0x0301 },
+ uccode=0x0389,
+ unicodeslot=0x03AE,
},
[0x03AF]={
- ["adobename"]="iotatonos",
- ["category"]="ll",
- ["contextname"]="greekiotatonos",
- ["description"]="GREEK SMALL LETTER IOTA WITH TONOS",
- ["linebreak"]="al",
- ["shcode"]=0x03B9,
- ["specials"]={ "char", 0x03B9, 0x0301 },
- ["uccode"]=0x038A,
- ["unicodeslot"]=0x03AF, -- ί
+ adobename="iotatonos",
+ category="ll",
+ contextname="greekiotatonos",
+ description="GREEK SMALL LETTER IOTA WITH TONOS",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B9,
+ specials={ "char", 0x03B9, 0x0301 },
+ uccode=0x038A,
+ unicodeslot=0x03AF,
},
[0x03B0]={
- ["adobename"]="upsilondieresistonos",
- ["category"]="ll",
- ["contextname"]="greekupsilondialytikatonos",
- ["description"]="GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS",
- ["linebreak"]="al",
- ["shcode"]=0x03C5,
- ["specials"]={ "char", 0x03CB, 0x0301 },
- ["unicodeslot"]=0x03B0, -- ΰ
+ adobename="upsilondieresistonos",
+ category="ll",
+ contextname="greekupsilondialytikatonos",
+ description="GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS",
+ direction="l",
+ linebreak="al",
+ shcode=0x03C5,
+ specials={ "char", 0x03CB, 0x0301 },
+ unicodeslot=0x03B0,
},
[0x03B1]={
- ["adobename"]="alpha",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="greekalpha",
- ["description"]="GREEK SMALL LETTER ALPHA",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["mathname"]="alpha",
- ["uccode"]=0x0391,
- ["unicodeslot"]=0x03B1, -- α
+ adobename="alpha",
+ category="ll",
+ cjkwd="a",
+ contextname="greekalpha",
+ description="GREEK SMALL LETTER ALPHA",
+ direction="l",
+ linebreak="al",
+ uccode=0x0391,
+ unicodeslot=0x03B1,
},
[0x03B2]={
- ["adobename"]="beta",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="greekbeta",
- ["description"]="GREEK SMALL LETTER BETA",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["mathname"]="beta",
- ["uccode"]=0x0392,
- ["unicodeslot"]=0x03B2, -- β
+ adobename="beta",
+ category="ll",
+ cjkwd="a",
+ contextname="greekbeta",
+ description="GREEK SMALL LETTER BETA",
+ direction="l",
+ linebreak="al",
+ uccode=0x0392,
+ unicodeslot=0x03B2,
},
[0x03B3]={
- ["adobename"]="gamma",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="greekgamma",
- ["description"]="GREEK SMALL LETTER GAMMA",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["mathname"]="gamma",
- ["uccode"]=0x0393,
- ["unicodeslot"]=0x03B3, -- γ
+ adobename="gamma",
+ category="ll",
+ cjkwd="a",
+ contextname="greekgamma",
+ description="GREEK SMALL LETTER GAMMA",
+ direction="l",
+ linebreak="al",
+ uccode=0x0393,
+ unicodeslot=0x03B3,
},
[0x03B4]={
- ["adobename"]="delta",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="greekdelta",
- ["description"]="GREEK SMALL LETTER DELTA",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["mathname"]="delta",
- ["uccode"]=0x0394,
- ["unicodeslot"]=0x03B4, -- δ
+ adobename="delta",
+ category="ll",
+ cjkwd="a",
+ contextname="greekdelta",
+ description="GREEK SMALL LETTER DELTA",
+ direction="l",
+ linebreak="al",
+ uccode=0x0394,
+ unicodeslot=0x03B4,
},
[0x03B5]={
- ["adobename"]="epsilon",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="greekepsilon",
- ["description"]="GREEK SMALL LETTER EPSILON",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["mathname"]="epsilon",
- ["uccode"]=0x0395,
- ["unicodeslot"]=0x03B5, -- ε
+ adobename="epsilon",
+ category="ll",
+ cjkwd="a",
+ contextname="greekepsilon",
+ description="GREEK SMALL LETTER EPSILON",
+ direction="l",
+ linebreak="al",
+ uccode=0x0395,
+ unicodeslot=0x03B5,
},
[0x03B6]={
- ["adobename"]="zeta",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="greekzeta",
- ["description"]="GREEK SMALL LETTER ZETA",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["mathname"]="zeta",
- ["uccode"]=0x0396,
- ["unicodeslot"]=0x03B6, -- ζ
+ adobename="zeta",
+ category="ll",
+ cjkwd="a",
+ contextname="greekzeta",
+ description="GREEK SMALL LETTER ZETA",
+ direction="l",
+ linebreak="al",
+ uccode=0x0396,
+ unicodeslot=0x03B6,
},
[0x03B7]={
- ["adobename"]="eta",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="greeketa",
- ["description"]="GREEK SMALL LETTER ETA",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["mathname"]="eta",
- ["uccode"]=0x0397,
- ["unicodeslot"]=0x03B7, -- η
+ adobename="eta",
+ category="ll",
+ cjkwd="a",
+ contextname="greeketa",
+ description="GREEK SMALL LETTER ETA",
+ direction="l",
+ linebreak="al",
+ uccode=0x0397,
+ unicodeslot=0x03B7,
},
[0x03B8]={
- ["adobename"]="theta",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="greektheta",
- ["description"]="GREEK SMALL LETTER THETA",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["mathname"]="theta",
- ["uccode"]=0x0398,
- ["unicodeslot"]=0x03B8, -- θ
+ adobename="theta",
+ category="ll",
+ cjkwd="a",
+ contextname="greektheta",
+ description="GREEK SMALL LETTER THETA",
+ direction="l",
+ linebreak="al",
+ uccode=0x0398,
+ unicodeslot=0x03B8,
},
[0x03B9]={
- ["adobename"]="iota",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="greekiota",
- ["description"]="GREEK SMALL LETTER IOTA",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["mathname"]="iota",
- ["uccode"]=0x0399,
- ["unicodeslot"]=0x03B9, -- ι
+ adobename="iota",
+ category="ll",
+ cjkwd="a",
+ contextname="greekiota",
+ description="GREEK SMALL LETTER IOTA",
+ direction="l",
+ linebreak="al",
+ uccode=0x0399,
+ unicodeslot=0x03B9,
},
[0x03BA]={
- ["adobename"]="kappa",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="greekkappa",
- ["description"]="GREEK SMALL LETTER KAPPA",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["mathname"]="kappa",
- ["uccode"]=0x039A,
- ["unicodeslot"]=0x03BA, -- κ
+ adobename="kappa",
+ category="ll",
+ cjkwd="a",
+ contextname="greekkappa",
+ description="GREEK SMALL LETTER KAPPA",
+ direction="l",
+ linebreak="al",
+ uccode=0x039A,
+ unicodeslot=0x03BA,
},
[0x03BB]={
- ["adobename"]="lambda",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="greeklambda",
- ["description"]="GREEK SMALL LETTER LAMDA",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["mathname"]="lambda",
- ["uccode"]=0x039B,
- ["unicodeslot"]=0x03BB, -- λ
+ adobename="lambda",
+ category="ll",
+ cjkwd="a",
+ contextname="greeklambda",
+ description="GREEK SMALL LETTER LAMDA",
+ direction="l",
+ linebreak="al",
+ uccode=0x039B,
+ unicodeslot=0x03BB,
},
[0x03BC]={
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="greekmu",
- ["description"]="GREEK SMALL LETTER MU",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["mathname"]="mu",
- ["uccode"]=0x039C,
- ["unicodeslot"]=0x03BC, -- μ
+ category="ll",
+ cjkwd="a",
+ contextname="greekmu",
+ description="GREEK SMALL LETTER MU",
+ direction="l",
+ linebreak="al",
+ uccode=0x039C,
+ unicodeslot=0x03BC,
},
[0x03BD]={
- ["adobename"]="nu",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="greeknu",
- ["description"]="GREEK SMALL LETTER NU",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["mathname"]="nu",
- ["uccode"]=0x039D,
- ["unicodeslot"]=0x03BD, -- ν
+ adobename="nu",
+ category="ll",
+ cjkwd="a",
+ contextname="greeknu",
+ description="GREEK SMALL LETTER NU",
+ direction="l",
+ linebreak="al",
+ uccode=0x039D,
+ unicodeslot=0x03BD,
},
[0x03BE]={
- ["adobename"]="xi",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="greekxi",
- ["description"]="GREEK SMALL LETTER XI",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["mathname"]="xi",
- ["uccode"]=0x039E,
- ["unicodeslot"]=0x03BE, -- ξ
+ adobename="xi",
+ category="ll",
+ cjkwd="a",
+ contextname="greekxi",
+ description="GREEK SMALL LETTER XI",
+ direction="l",
+ linebreak="al",
+ uccode=0x039E,
+ unicodeslot=0x03BE,
},
[0x03BF]={
- ["adobename"]="omicron",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="greekomicron",
- ["description"]="GREEK SMALL LETTER OMICRON",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["mathname"]="omicron",
- ["uccode"]=0x039F,
- ["unicodeslot"]=0x03BF, -- ο
+ adobename="omicron",
+ category="ll",
+ cjkwd="a",
+ contextname="greekomicron",
+ description="GREEK SMALL LETTER OMICRON",
+ direction="l",
+ linebreak="al",
+ uccode=0x039F,
+ unicodeslot=0x03BF,
},
[0x03C0]={
- ["adobename"]="pi",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="greekpi",
- ["description"]="GREEK SMALL LETTER PI",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["mathname"]="pi",
- ["uccode"]=0x03A0,
- ["unicodeslot"]=0x03C0, -- π
+ adobename="pi",
+ category="ll",
+ cjkwd="a",
+ contextname="greekpi",
+ description="GREEK SMALL LETTER PI",
+ direction="l",
+ linebreak="al",
+ uccode=0x03A0,
+ unicodeslot=0x03C0,
},
[0x03C1]={
- ["adobename"]="rho",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="greekrho",
- ["description"]="GREEK SMALL LETTER RHO",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["mathname"]="rho",
- ["uccode"]=0x03A1,
- ["unicodeslot"]=0x03C1, -- ρ
+ adobename="rho",
+ category="ll",
+ cjkwd="a",
+ contextname="greekrho",
+ description="GREEK SMALL LETTER RHO",
+ direction="l",
+ linebreak="al",
+ uccode=0x03A1,
+ unicodeslot=0x03C1,
},
[0x03C2]={
- ["adobename"]="sigma1",
- ["category"]="ll",
- ["contextname"]="greekfinalsigma",
- ["description"]="GREEK SMALL LETTER FINAL SIGMA",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["mathname"]="varsigma",
- ["uccode"]=0x03A3,
- ["unicodeslot"]=0x03C2, -- ς
+ adobename="sigma1",
+ category="ll",
+ contextname="greekfinalsigma",
+ description="GREEK SMALL LETTER FINAL SIGMA",
+ direction="l",
+ linebreak="al",
+ uccode=0x03A3,
+ unicodeslot=0x03C2,
},
[0x03C3]={
- ["adobename"]="sigma",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="greeksigma",
- ["description"]="GREEK SMALL LETTER SIGMA",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["mathname"]="sigma",
- ["uccode"]=0x03A3,
- ["unicodeslot"]=0x03C3, -- σ
+ adobename="sigma",
+ category="ll",
+ cjkwd="a",
+ contextname="greeksigma",
+ description="GREEK SMALL LETTER SIGMA",
+ direction="l",
+ linebreak="al",
+ uccode=0x03A3,
+ unicodeslot=0x03C3,
},
[0x03C4]={
- ["adobename"]="tau",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="greektau",
- ["description"]="GREEK SMALL LETTER TAU",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["mathname"]="tau",
- ["uccode"]=0x03A4,
- ["unicodeslot"]=0x03C4, -- τ
+ adobename="tau",
+ category="ll",
+ cjkwd="a",
+ contextname="greektau",
+ description="GREEK SMALL LETTER TAU",
+ direction="l",
+ linebreak="al",
+ uccode=0x03A4,
+ unicodeslot=0x03C4,
},
[0x03C5]={
- ["adobename"]="upsilon",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="greekupsilon",
- ["description"]="GREEK SMALL LETTER UPSILON",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["mathname"]="upsilon",
- ["uccode"]=0x03A5,
- ["unicodeslot"]=0x03C5, -- υ
+ adobename="upsilon",
+ category="ll",
+ cjkwd="a",
+ contextname="greekupsilon",
+ description="GREEK SMALL LETTER UPSILON",
+ direction="l",
+ linebreak="al",
+ uccode=0x03A5,
+ unicodeslot=0x03C5,
},
[0x03C6]={
- ["adobename"]="phi",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="greekphi",
- ["description"]="GREEK SMALL LETTER PHI",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["mathname"]="varphi",
- ["uccode"]=0x03A6,
- ["unicodeslot"]=0x03C6, -- φ
+ adobename="phi",
+ category="ll",
+ cjkwd="a",
+ contextname="greekphi",
+ description="GREEK SMALL LETTER PHI",
+ direction="l",
+ linebreak="al",
+ uccode=0x03A6,
+ unicodeslot=0x03C6,
},
[0x03C7]={
- ["adobename"]="chi",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="greekchi",
- ["description"]="GREEK SMALL LETTER CHI",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["mathname"]="chi",
- ["uccode"]=0x03A7,
- ["unicodeslot"]=0x03C7, -- χ
+ adobename="chi",
+ category="ll",
+ cjkwd="a",
+ contextname="greekchi",
+ description="GREEK SMALL LETTER CHI",
+ direction="l",
+ linebreak="al",
+ uccode=0x03A7,
+ unicodeslot=0x03C7,
},
[0x03C8]={
- ["adobename"]="psi",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="greekpsi",
- ["description"]="GREEK SMALL LETTER PSI",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["mathname"]="psi",
- ["uccode"]=0x03A8,
- ["unicodeslot"]=0x03C8, -- ψ
+ adobename="psi",
+ category="ll",
+ cjkwd="a",
+ contextname="greekpsi",
+ description="GREEK SMALL LETTER PSI",
+ direction="l",
+ linebreak="al",
+ uccode=0x03A8,
+ unicodeslot=0x03C8,
},
[0x03C9]={
- ["adobename"]="omega",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="greekomega",
- ["description"]="GREEK SMALL LETTER OMEGA",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["mathname"]="omega",
- ["uccode"]=0x03A9,
- ["unicodeslot"]=0x03C9, -- ω
+ adobename="omega",
+ category="ll",
+ cjkwd="a",
+ contextname="greekomega",
+ description="GREEK SMALL LETTER OMEGA",
+ direction="l",
+ linebreak="al",
+ uccode=0x03A9,
+ unicodeslot=0x03C9,
},
[0x03CA]={
- ["adobename"]="iotadieresis",
- ["category"]="ll",
- ["contextname"]="greekiotadialytika",
- ["description"]="GREEK SMALL LETTER IOTA WITH DIALYTIKA",
- ["linebreak"]="al",
- ["shcode"]=0x03B9,
- ["specials"]={ "char", 0x03B9, 0x0308 },
- ["uccode"]=0x03AA,
- ["unicodeslot"]=0x03CA, -- ϊ
+ adobename="iotadieresis",
+ category="ll",
+ contextname="greekiotadialytika",
+ description="GREEK SMALL LETTER IOTA WITH DIALYTIKA",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B9,
+ specials={ "char", 0x03B9, 0x0308 },
+ uccode=0x03AA,
+ unicodeslot=0x03CA,
},
[0x03CB]={
- ["adobename"]="upsilondieresis",
- ["category"]="ll",
- ["contextname"]="greekupsilondiaeresis",
- ["description"]="GREEK SMALL LETTER UPSILON WITH DIALYTIKA",
- ["linebreak"]="al",
- ["shcode"]=0x03C5,
- ["specials"]={ "char", 0x03C5, 0x0308 },
- ["uccode"]=0x03AB,
- ["unicodeslot"]=0x03CB, -- ϋ
+ adobename="upsilondieresis",
+ category="ll",
+ contextname="greekupsilondiaeresis",
+ description="GREEK SMALL LETTER UPSILON WITH DIALYTIKA",
+ direction="l",
+ linebreak="al",
+ shcode=0x03C5,
+ specials={ "char", 0x03C5, 0x0308 },
+ uccode=0x03AB,
+ unicodeslot=0x03CB,
},
[0x03CC]={
- ["adobename"]="omicrontonos",
- ["category"]="ll",
- ["contextname"]="greekomicrontonos",
- ["description"]="GREEK SMALL LETTER OMICRON WITH TONOS",
- ["linebreak"]="al",
- ["shcode"]=0x03BF,
- ["specials"]={ "char", 0x03BF, 0x0301 },
- ["uccode"]=0x038C,
- ["unicodeslot"]=0x03CC, -- ό
+ adobename="omicrontonos",
+ category="ll",
+ contextname="greekomicrontonos",
+ description="GREEK SMALL LETTER OMICRON WITH TONOS",
+ direction="l",
+ linebreak="al",
+ shcode=0x03BF,
+ specials={ "char", 0x03BF, 0x0301 },
+ uccode=0x038C,
+ unicodeslot=0x03CC,
},
[0x03CD]={
- ["adobename"]="upsilontonos",
- ["category"]="ll",
- ["contextname"]="greekupsilontonos",
- ["description"]="GREEK SMALL LETTER UPSILON WITH TONOS",
- ["linebreak"]="al",
- ["shcode"]=0x03C5,
- ["specials"]={ "char", 0x03C5, 0x0301 },
- ["uccode"]=0x038E,
- ["unicodeslot"]=0x03CD, -- ύ
+ adobename="upsilontonos",
+ category="ll",
+ contextname="greekupsilontonos",
+ description="GREEK SMALL LETTER UPSILON WITH TONOS",
+ direction="l",
+ linebreak="al",
+ shcode=0x03C5,
+ specials={ "char", 0x03C5, 0x0301 },
+ uccode=0x038E,
+ unicodeslot=0x03CD,
},
[0x03CE]={
- ["adobename"]="omegatonos",
- ["category"]="ll",
- ["contextname"]="greekomegatonos",
- ["description"]="GREEK SMALL LETTER OMEGA WITH TONOS",
- ["linebreak"]="al",
- ["shcode"]=0x03C9,
- ["specials"]={ "char", 0x03C9, 0x0301 },
- ["uccode"]=0x038F,
- ["unicodeslot"]=0x03CE, -- ώ
+ adobename="omegatonos",
+ category="ll",
+ contextname="greekomegatonos",
+ description="GREEK SMALL LETTER OMEGA WITH TONOS",
+ direction="l",
+ linebreak="al",
+ shcode=0x03C9,
+ specials={ "char", 0x03C9, 0x0301 },
+ uccode=0x038F,
+ unicodeslot=0x03CE,
},
[0x03D0]={
- ["category"]="ll",
- ["description"]="GREEK BETA SYMBOL",
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x03B2 },
- ["uccode"]=0x0392,
- ["unicodeslot"]=0x03D0, -- ϐ
+ category="ll",
+ description="GREEK BETA SYMBOL",
+ direction="l",
+ linebreak="al",
+ specials={ "compat", 0x03B2 },
+ uccode=0x0392,
+ unicodeslot=0x03D0,
},
[0x03D1]={
- ["adobename"]="theta1",
- ["category"]="ll",
- ["contextname"]="greekthetaalt",
- ["description"]="GREEK THETA SYMBOL",
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x03B8 },
- ["mathclass"]="variable",
- ["mathname"]="vartheta",
- ["uccode"]=0x0398,
- ["unicodeslot"]=0x03D1, -- ϑ
+ adobename="theta1",
+ category="ll",
+ contextname="greekthetaalt",
+ description="GREEK THETA SYMBOL",
+ direction="l",
+ linebreak="al",
+ specials={ "compat", 0x03B8 },
+ uccode=0x0398,
+ unicodeslot=0x03D1,
},
[0x03D2]={
- ["adobename"]="Upsilon1",
- ["category"]="lu",
- ["description"]="GREEK UPSILON WITH HOOK SYMBOL",
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x03A5 },
- ["unicodeslot"]=0x03D2, -- ϒ
+ adobename="Upsilon1",
+ category="lu",
+ description="GREEK UPSILON WITH HOOK SYMBOL",
+ direction="l",
+ linebreak="al",
+ specials={ "compat", 0x03A5 },
+ unicodeslot=0x03D2,
},
[0x03D3]={
- ["category"]="lu",
- ["description"]="GREEK UPSILON WITH ACUTE AND HOOK SYMBOL",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x03D2, 0x0301 },
- ["unicodeslot"]=0x03D3, -- ϓ
+ category="lu",
+ description="GREEK UPSILON WITH ACUTE AND HOOK SYMBOL",
+ direction="l",
+ linebreak="al",
+ specials={ "char", 0x03D2, 0x0301 },
+ unicodeslot=0x03D3,
},
[0x03D4]={
- ["category"]="lu",
- ["description"]="GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x03D2, 0x0308 },
- ["unicodeslot"]=0x03D4, -- ϔ
+ category="lu",
+ description="GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL",
+ direction="l",
+ linebreak="al",
+ specials={ "char", 0x03D2, 0x0308 },
+ unicodeslot=0x03D4,
},
[0x03D5]={
- ["adobename"]="phi1",
- ["category"]="ll",
- ["contextname"]="greekphialt",
- ["description"]="GREEK PHI SYMBOL",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["mathname"]="phi",
- ["specials"]={ "compat", 0x03C6 },
- ["uccode"]=0x03A6,
- ["unicodeslot"]=0x03D5, -- ϕ
+ adobename="phi1",
+ category="ll",
+ contextname="greekphialt",
+ description="GREEK PHI SYMBOL",
+ direction="l",
+ linebreak="al",
+ specials={ "compat", 0x03C6 },
+ uccode=0x03A6,
+ unicodeslot=0x03D5,
},
[0x03D6]={
- ["adobename"]="omega1",
- ["category"]="ll",
- ["contextname"]="greekpialt",
- ["description"]="GREEK PI SYMBOL",
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x03C0 },
- ["mathclass"]="variable",
- ["mathname"]="varpi",
- ["uccode"]=0x03A0,
- ["unicodeslot"]=0x03D6, -- ϖ
+ adobename="omega1",
+ category="ll",
+ contextname="greekpialt",
+ description="GREEK PI SYMBOL",
+ direction="l",
+ linebreak="al",
+ specials={ "compat", 0x03C0 },
+ uccode=0x03A0,
+ unicodeslot=0x03D6,
},
[0x03D7]={
- ["category"]="ll",
- ["description"]="GREEK KAI SYMBOL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x03D7, -- ϗ
+ category="ll",
+ description="GREEK KAI SYMBOL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x03D7,
},
[0x03D8]={
- ["category"]="lu",
- ["description"]="GREEK LETTER ARCHAIC KOPPA",
- ["lccode"]=0x03D9,
- ["linebreak"]="al",
- ["unicodeslot"]=0x03D8, -- Ϙ
+ category="lu",
+ description="GREEK LETTER ARCHAIC KOPPA",
+ direction="l",
+ lccode=0x03D9,
+ linebreak="al",
+ unicodeslot=0x03D8,
},
[0x03D9]={
- ["category"]="ll",
- ["contextname"]="greekkoppa",
- ["description"]="GREEK SMALL LETTER ARCHAIC KOPPA",
- ["linebreak"]="al",
- ["uccode"]=0x03D8,
- ["unicodeslot"]=0x03D9, -- ϙ
+ category="ll",
+ contextname="greekkoppa",
+ description="GREEK SMALL LETTER ARCHAIC KOPPA",
+ direction="l",
+ linebreak="al",
+ uccode=0x03D8,
+ unicodeslot=0x03D9,
},
[0x03DA]={
- ["category"]="lu",
- ["description"]="GREEK LETTER STIGMA",
- ["lccode"]=0x03DB,
- ["linebreak"]="al",
- ["unicodeslot"]=0x03DA, -- Ϛ
+ category="lu",
+ description="GREEK LETTER STIGMA",
+ direction="l",
+ lccode=0x03DB,
+ linebreak="al",
+ unicodeslot=0x03DA,
},
[0x03DB]={
- ["category"]="ll",
- ["contextname"]="greekstigma",
- ["description"]="GREEK SMALL LETTER STIGMA",
- ["linebreak"]="al",
- ["uccode"]=0x03DA,
- ["unicodeslot"]=0x03DB, -- ϛ
+ category="ll",
+ contextname="greekstigma",
+ description="GREEK SMALL LETTER STIGMA",
+ direction="l",
+ linebreak="al",
+ uccode=0x03DA,
+ unicodeslot=0x03DB,
},
[0x03DC]={
- ["category"]="lu",
- ["description"]="GREEK LETTER DIGAMMA",
- ["lccode"]=0x03DD,
- ["linebreak"]="al",
- ["unicodeslot"]=0x03DC, -- Ϝ
+ category="lu",
+ description="GREEK LETTER DIGAMMA",
+ direction="l",
+ lccode=0x03DD,
+ linebreak="al",
+ mathclass="variable",
+ mathname="digamma",
+ unicodeslot=0x03DC,
},
[0x03DD]={
- ["category"]="ll",
- ["contextname"]="greekdigamma",
- ["description"]="GREEK SMALL LETTER DIGAMMA",
- ["linebreak"]="al",
- ["uccode"]=0x03DC,
- ["unicodeslot"]=0x03DD, -- ϝ
+ category="ll",
+ contextname="greekdigamma",
+ description="GREEK SMALL LETTER DIGAMMA",
+ direction="l",
+ linebreak="al",
+ uccode=0x03DC,
+ unicodeslot=0x03DD,
},
[0x03DE]={
- ["category"]="lu",
- ["description"]="GREEK LETTER KOPPA",
- ["lccode"]=0x03DF,
- ["linebreak"]="al",
- ["unicodeslot"]=0x03DE, -- Ϟ
+ category="lu",
+ description="GREEK LETTER KOPPA",
+ direction="l",
+ lccode=0x03DF,
+ linebreak="al",
+ unicodeslot=0x03DE,
},
[0x03DF]={
- ["category"]="ll",
- ["contextname"]="greeknumkoppa",
- ["description"]="GREEK SMALL LETTER KOPPA",
- ["linebreak"]="al",
- ["uccode"]=0x03DE,
- ["unicodeslot"]=0x03DF, -- ϟ
+ category="ll",
+ contextname="greeknumkoppa",
+ description="GREEK SMALL LETTER KOPPA",
+ direction="l",
+ linebreak="al",
+ uccode=0x03DE,
+ unicodeslot=0x03DF,
},
[0x03E0]={
- ["category"]="lu",
- ["description"]="GREEK LETTER SAMPI",
- ["lccode"]=0x03E1,
- ["linebreak"]="al",
- ["unicodeslot"]=0x03E0, -- Ϡ
+ category="lu",
+ description="GREEK LETTER SAMPI",
+ direction="l",
+ lccode=0x03E1,
+ linebreak="al",
+ unicodeslot=0x03E0,
},
[0x03E1]={
- ["category"]="ll",
- ["contextname"]="greeksampi",
- ["description"]="GREEK SMALL LETTER SAMPI",
- ["linebreak"]="al",
- ["uccode"]=0x03E0,
- ["unicodeslot"]=0x03E1, -- ϡ
+ category="ll",
+ contextname="greeksampi",
+ description="GREEK SMALL LETTER SAMPI",
+ direction="l",
+ linebreak="al",
+ uccode=0x03E0,
+ unicodeslot=0x03E1,
},
[0x03E2]={
- ["category"]="lu",
- ["description"]="COPTIC CAPITAL LETTER SHEI",
- ["lccode"]=0x03E3,
- ["linebreak"]="al",
- ["unicodeslot"]=0x03E2, -- Ϣ
+ category="lu",
+ description="COPTIC CAPITAL LETTER SHEI",
+ direction="l",
+ lccode=0x03E3,
+ linebreak="al",
+ unicodeslot=0x03E2,
},
[0x03E3]={
- ["category"]="ll",
- ["description"]="COPTIC SMALL LETTER SHEI",
- ["linebreak"]="al",
- ["uccode"]=0x03E2,
- ["unicodeslot"]=0x03E3, -- ϣ
+ category="ll",
+ description="COPTIC SMALL LETTER SHEI",
+ direction="l",
+ linebreak="al",
+ uccode=0x03E2,
+ unicodeslot=0x03E3,
},
[0x03E4]={
- ["category"]="lu",
- ["description"]="COPTIC CAPITAL LETTER FEI",
- ["lccode"]=0x03E5,
- ["linebreak"]="al",
- ["unicodeslot"]=0x03E4, -- Ϥ
+ category="lu",
+ description="COPTIC CAPITAL LETTER FEI",
+ direction="l",
+ lccode=0x03E5,
+ linebreak="al",
+ unicodeslot=0x03E4,
},
[0x03E5]={
- ["category"]="ll",
- ["description"]="COPTIC SMALL LETTER FEI",
- ["linebreak"]="al",
- ["uccode"]=0x03E4,
- ["unicodeslot"]=0x03E5, -- ϥ
+ category="ll",
+ description="COPTIC SMALL LETTER FEI",
+ direction="l",
+ linebreak="al",
+ uccode=0x03E4,
+ unicodeslot=0x03E5,
},
[0x03E6]={
- ["category"]="lu",
- ["description"]="COPTIC CAPITAL LETTER KHEI",
- ["lccode"]=0x03E7,
- ["linebreak"]="al",
- ["unicodeslot"]=0x03E6, -- Ϧ
+ category="lu",
+ description="COPTIC CAPITAL LETTER KHEI",
+ direction="l",
+ lccode=0x03E7,
+ linebreak="al",
+ unicodeslot=0x03E6,
},
[0x03E7]={
- ["category"]="ll",
- ["description"]="COPTIC SMALL LETTER KHEI",
- ["linebreak"]="al",
- ["uccode"]=0x03E6,
- ["unicodeslot"]=0x03E7, -- ϧ
+ category="ll",
+ description="COPTIC SMALL LETTER KHEI",
+ direction="l",
+ linebreak="al",
+ uccode=0x03E6,
+ unicodeslot=0x03E7,
},
[0x03E8]={
- ["category"]="lu",
- ["description"]="COPTIC CAPITAL LETTER HORI",
- ["lccode"]=0x03E9,
- ["linebreak"]="al",
- ["unicodeslot"]=0x03E8, -- Ϩ
+ category="lu",
+ description="COPTIC CAPITAL LETTER HORI",
+ direction="l",
+ lccode=0x03E9,
+ linebreak="al",
+ unicodeslot=0x03E8,
},
[0x03E9]={
- ["category"]="ll",
- ["description"]="COPTIC SMALL LETTER HORI",
- ["linebreak"]="al",
- ["uccode"]=0x03E8,
- ["unicodeslot"]=0x03E9, -- ϩ
+ category="ll",
+ description="COPTIC SMALL LETTER HORI",
+ direction="l",
+ linebreak="al",
+ uccode=0x03E8,
+ unicodeslot=0x03E9,
},
[0x03EA]={
- ["category"]="lu",
- ["description"]="COPTIC CAPITAL LETTER GANGIA",
- ["lccode"]=0x03EB,
- ["linebreak"]="al",
- ["unicodeslot"]=0x03EA, -- Ϫ
+ category="lu",
+ description="COPTIC CAPITAL LETTER GANGIA",
+ direction="l",
+ lccode=0x03EB,
+ linebreak="al",
+ unicodeslot=0x03EA,
},
[0x03EB]={
- ["category"]="ll",
- ["description"]="COPTIC SMALL LETTER GANGIA",
- ["linebreak"]="al",
- ["uccode"]=0x03EA,
- ["unicodeslot"]=0x03EB, -- ϫ
+ category="ll",
+ description="COPTIC SMALL LETTER GANGIA",
+ direction="l",
+ linebreak="al",
+ uccode=0x03EA,
+ unicodeslot=0x03EB,
},
[0x03EC]={
- ["category"]="lu",
- ["description"]="COPTIC CAPITAL LETTER SHIMA",
- ["lccode"]=0x03ED,
- ["linebreak"]="al",
- ["unicodeslot"]=0x03EC, -- Ϭ
+ category="lu",
+ description="COPTIC CAPITAL LETTER SHIMA",
+ direction="l",
+ lccode=0x03ED,
+ linebreak="al",
+ unicodeslot=0x03EC,
},
[0x03ED]={
- ["category"]="ll",
- ["description"]="COPTIC SMALL LETTER SHIMA",
- ["linebreak"]="al",
- ["uccode"]=0x03EC,
- ["unicodeslot"]=0x03ED, -- ϭ
+ category="ll",
+ description="COPTIC SMALL LETTER SHIMA",
+ direction="l",
+ linebreak="al",
+ uccode=0x03EC,
+ unicodeslot=0x03ED,
},
[0x03EE]={
- ["category"]="lu",
- ["description"]="COPTIC CAPITAL LETTER DEI",
- ["lccode"]=0x03EF,
- ["linebreak"]="al",
- ["unicodeslot"]=0x03EE, -- Ϯ
+ category="lu",
+ description="COPTIC CAPITAL LETTER DEI",
+ direction="l",
+ lccode=0x03EF,
+ linebreak="al",
+ unicodeslot=0x03EE,
},
[0x03EF]={
- ["category"]="ll",
- ["description"]="COPTIC SMALL LETTER DEI",
- ["linebreak"]="al",
- ["uccode"]=0x03EE,
- ["unicodeslot"]=0x03EF, -- ϯ
+ category="ll",
+ description="COPTIC SMALL LETTER DEI",
+ direction="l",
+ linebreak="al",
+ uccode=0x03EE,
+ unicodeslot=0x03EF,
},
[0x03F0]={
- ["category"]="ll",
- ["description"]="GREEK KAPPA SYMBOL",
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x03BA },
- ["uccode"]=0x039A,
- ["unicodeslot"]=0x03F0, -- ϰ
+ category="ll",
+ description="GREEK KAPPA SYMBOL",
+ direction="l",
+ linebreak="al",
+ specials={ "compat", 0x03BA },
+ mathclass="ord",
+ mathname="varkappa",
+ uccode=0x039A,
+ unicodeslot=0x03F0,
},
[0x03F1]={
- ["category"]="ll",
- ["contextname"]="greekrhoalt",
- ["description"]="GREEK RHO SYMBOL",
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x03C1 },
- ["mathclass"]="variable",
- ["mathname"]="varrho",
- ["uccode"]=0x03A1,
- ["unicodeslot"]=0x03F1, -- ϱ
+ category="ll",
+ contextname="greekrhoalt",
+ description="GREEK RHO SYMBOL",
+ direction="l",
+ linebreak="al",
+ specials={ "compat", 0x03C1 },
+ uccode=0x03A1,
+ unicodeslot=0x03F1,
},
[0x03F2]={
- ["category"]="ll",
- ["contextname"]="greeksigmalunate",
- ["description"]="GREEK LUNATE SIGMA SYMBOL",
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x03C2 },
- ["uccode"]=0x03F9,
- ["unicodeslot"]=0x03F2, -- ϲ
+ category="ll",
+ contextname="greeksigmalunate",
+ description="GREEK LUNATE SIGMA SYMBOL",
+ direction="l",
+ linebreak="al",
+ specials={ "compat", 0x03C2 },
+ uccode=0x03F9,
+ unicodeslot=0x03F2,
},
[0x03F3]={
- ["category"]="ll",
- ["description"]="GREEK LETTER YOT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x03F3, -- ϳ
+ category="ll",
+ description="GREEK LETTER YOT",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x03F3,
},
[0x03F4]={
- ["category"]="lu",
- ["description"]="GREEK CAPITAL THETA SYMBOL",
- ["lccode"]=0x03B8,
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x0398 },
- ["unicodeslot"]=0x03F4, -- ϴ
+ category="lu",
+ description="GREEK CAPITAL THETA SYMBOL",
+ direction="l",
+ lccode=0x03B8,
+ linebreak="al",
+ specials={ "compat", 0x0398 },
+ unicodeslot=0x03F4,
},
[0x03F5]={
- ["category"]="ll",
- ["contextname"]="greekepsilonalt",
- ["description"]="GREEK LUNATE EPSILON SYMBOL",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["mathname"]="varepsilon",
- ["specials"]={ "compat", 0x03B5 },
- ["uccode"]=0x0395,
- ["unicodeslot"]=0x03F5, -- ϵ
+ category="ll",
+ contextname="greekepsilonalt",
+ description="GREEK LUNATE EPSILON SYMBOL",
+ direction="l",
+ linebreak="al",
+ specials={ "compat", 0x03B5 },
+ uccode=0x0395,
+ unicodeslot=0x03F5,
},
[0x03F6]={
- ["category"]="sm",
- ["description"]="GREEK REVERSED LUNATE EPSILON SYMBOL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x03F6, -- ϶
+ category="sm",
+ description="GREEK REVERSED LUNATE EPSILON SYMBOL",
+ direction="on",
+ linebreak="al",
+ mathclass="variable",
+ mathname="backepsilon",
+ unicodeslot=0x03F6,
},
[0x03F7]={
- ["category"]="lu",
- ["description"]="GREEK CAPITAL LETTER SHO",
- ["lccode"]=0x03F8,
- ["linebreak"]="al",
- ["unicodeslot"]=0x03F7, -- Ϸ
+ category="lu",
+ description="GREEK CAPITAL LETTER SHO",
+ direction="l",
+ lccode=0x03F8,
+ linebreak="al",
+ unicodeslot=0x03F7,
},
[0x03F8]={
- ["category"]="ll",
- ["description"]="GREEK SMALL LETTER SHO",
- ["linebreak"]="al",
- ["uccode"]=0x03F7,
- ["unicodeslot"]=0x03F8, -- ϸ
+ category="ll",
+ description="GREEK SMALL LETTER SHO",
+ direction="l",
+ linebreak="al",
+ uccode=0x03F7,
+ unicodeslot=0x03F8,
},
[0x03F9]={
- ["category"]="lu",
- ["contextname"]="greekSigmalunate",
- ["description"]="GREEK CAPITAL LUNATE SIGMA SYMBOL",
- ["lccode"]=0x03F2,
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x03A3 },
- ["unicodeslot"]=0x03F9, -- Ϲ
+ category="lu",
+ contextname="greekSigmalunate",
+ description="GREEK CAPITAL LUNATE SIGMA SYMBOL",
+ direction="l",
+ lccode=0x03F2,
+ linebreak="al",
+ specials={ "compat", 0x03A3 },
+ unicodeslot=0x03F9,
},
[0x03FA]={
- ["category"]="lu",
- ["description"]="GREEK CAPITAL LETTER SAN",
- ["lccode"]=0x03FB,
- ["linebreak"]="al",
- ["unicodeslot"]=0x03FA, -- Ϻ
+ category="lu",
+ description="GREEK CAPITAL LETTER SAN",
+ direction="l",
+ lccode=0x03FB,
+ linebreak="al",
+ unicodeslot=0x03FA,
},
[0x03FB]={
- ["category"]="ll",
- ["description"]="GREEK SMALL LETTER SAN",
- ["linebreak"]="al",
- ["uccode"]=0x03FA,
- ["unicodeslot"]=0x03FB, -- ϻ
+ category="ll",
+ description="GREEK SMALL LETTER SAN",
+ direction="l",
+ linebreak="al",
+ uccode=0x03FA,
+ unicodeslot=0x03FB,
},
[0x03FC]={
- ["category"]="ll",
- ["description"]="GREEK RHO WITH STROKE SYMBOL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x03FC, -- ϼ
+ category="ll",
+ description="GREEK RHO WITH STROKE SYMBOL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x03FC,
},
[0x03FD]={
- ["category"]="lu",
- ["description"]="GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL",
- ["lccode"]=0x037B,
- ["linebreak"]="al",
- ["unicodeslot"]=0x03FD, -- Ͻ
+ category="lu",
+ description="GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL",
+ direction="l",
+ lccode=0x037B,
+ linebreak="al",
+ unicodeslot=0x03FD,
},
[0x03FE]={
- ["category"]="lu",
- ["description"]="GREEK CAPITAL DOTTED LUNATE SIGMA SYMBOL",
- ["lccode"]=0x037C,
- ["linebreak"]="al",
- ["unicodeslot"]=0x03FE, -- Ͼ
+ category="lu",
+ description="GREEK CAPITAL DOTTED LUNATE SIGMA SYMBOL",
+ direction="l",
+ lccode=0x037C,
+ linebreak="al",
+ unicodeslot=0x03FE,
},
[0x03FF]={
- ["category"]="lu",
- ["description"]="GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL",
- ["lccode"]=0x037D,
- ["linebreak"]="al",
- ["unicodeslot"]=0x03FF, -- Ͽ
+ category="lu",
+ description="GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL",
+ direction="l",
+ lccode=0x037D,
+ linebreak="al",
+ unicodeslot=0x03FF,
},
[0x0400]={
- ["category"]="lu",
- ["contextname"]="cyrillicEgrave",
- ["description"]="CYRILLIC CAPITAL LETTER IE WITH GRAVE",
- ["lccode"]=0x0450,
- ["linebreak"]="al",
- ["shcode"]=0x0415,
- ["specials"]={ "char", 0x0415, 0x0300 },
- ["unicodeslot"]=0x0400, -- Ѐ
+ category="lu",
+ contextname="cyrillicEgrave",
+ description="CYRILLIC CAPITAL LETTER IE WITH GRAVE",
+ direction="l",
+ lccode=0x0450,
+ linebreak="al",
+ shcode=0x0415,
+ specials={ "char", 0x0415, 0x0300 },
+ unicodeslot=0x0400,
},
[0x0401]={
- ["adobename"]="afii10023",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="cyrillicYO",
- ["description"]="CYRILLIC CAPITAL LETTER IO",
- ["lccode"]=0x0451,
- ["linebreak"]="al",
- ["specials"]={ "char", 0x0415, 0x0308 },
- ["unicodeslot"]=0x0401, -- Ё
+ adobename="afii10023",
+ category="lu",
+ cjkwd="a",
+ contextname="cyrillicYO",
+ description="CYRILLIC CAPITAL LETTER IO",
+ direction="l",
+ lccode=0x0451,
+ linebreak="al",
+ specials={ "char", 0x0415, 0x0308 },
+ unicodeslot=0x0401,
},
[0x0402]={
- ["adobename"]="afii10051",
- ["category"]="lu",
- ["contextname"]="cyrillicDJE",
- ["description"]="CYRILLIC CAPITAL LETTER DJE",
- ["lccode"]=0x0452,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0402, -- Ђ
+ adobename="afii10051",
+ category="lu",
+ contextname="cyrillicDJE",
+ description="CYRILLIC CAPITAL LETTER DJE",
+ direction="l",
+ lccode=0x0452,
+ linebreak="al",
+ unicodeslot=0x0402,
},
[0x0403]={
- ["adobename"]="afii10052",
- ["category"]="lu",
- ["contextname"]="cyrillicGJE",
- ["description"]="CYRILLIC CAPITAL LETTER GJE",
- ["lccode"]=0x0453,
- ["linebreak"]="al",
- ["specials"]={ "char", 0x0413, 0x0301 },
- ["unicodeslot"]=0x0403, -- Ѓ
+ adobename="afii10052",
+ category="lu",
+ contextname="cyrillicGJE",
+ description="CYRILLIC CAPITAL LETTER GJE",
+ direction="l",
+ lccode=0x0453,
+ linebreak="al",
+ specials={ "char", 0x0413, 0x0301 },
+ unicodeslot=0x0403,
},
[0x0404]={
- ["adobename"]="afii10053",
- ["category"]="lu",
- ["contextname"]="cyrillicIE",
- ["description"]="CYRILLIC CAPITAL LETTER UKRAINIAN IE",
- ["lccode"]=0x0454,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0404, -- Є
+ adobename="afii10053",
+ category="lu",
+ contextname="cyrillicIE",
+ description="CYRILLIC CAPITAL LETTER UKRAINIAN IE",
+ direction="l",
+ lccode=0x0454,
+ linebreak="al",
+ unicodeslot=0x0404,
},
[0x0405]={
- ["adobename"]="afii10054",
- ["category"]="lu",
- ["contextname"]="cyrillicDZE",
- ["description"]="CYRILLIC CAPITAL LETTER DZE",
- ["lccode"]=0x0455,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0405, -- Ѕ
+ adobename="afii10054",
+ category="lu",
+ contextname="cyrillicDZE",
+ description="CYRILLIC CAPITAL LETTER DZE",
+ direction="l",
+ lccode=0x0455,
+ linebreak="al",
+ unicodeslot=0x0405,
},
[0x0406]={
- ["adobename"]="afii10055",
- ["category"]="lu",
- ["contextname"]="cyrillicII",
- ["description"]="CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I",
- ["lccode"]=0x0456,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0406, -- І
+ adobename="afii10055",
+ category="lu",
+ contextname="cyrillicII",
+ description="CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I",
+ direction="l",
+ lccode=0x0456,
+ linebreak="al",
+ unicodeslot=0x0406,
},
[0x0407]={
- ["adobename"]="afii10056",
- ["category"]="lu",
- ["contextname"]="cyrillicYI",
- ["description"]="CYRILLIC CAPITAL LETTER YI",
- ["lccode"]=0x0457,
- ["linebreak"]="al",
- ["specials"]={ "char", 0x0406, 0x0308 },
- ["unicodeslot"]=0x0407, -- Ї
+ adobename="afii10056",
+ category="lu",
+ contextname="cyrillicYI",
+ description="CYRILLIC CAPITAL LETTER YI",
+ direction="l",
+ lccode=0x0457,
+ linebreak="al",
+ specials={ "char", 0x0406, 0x0308 },
+ unicodeslot=0x0407,
},
[0x0408]={
- ["adobename"]="afii10057",
- ["category"]="lu",
- ["contextname"]="cyrillicJE",
- ["description"]="CYRILLIC CAPITAL LETTER JE",
- ["lccode"]=0x0458,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0408, -- Ј
+ adobename="afii10057",
+ category="lu",
+ contextname="cyrillicJE",
+ description="CYRILLIC CAPITAL LETTER JE",
+ direction="l",
+ lccode=0x0458,
+ linebreak="al",
+ unicodeslot=0x0408,
},
[0x0409]={
- ["adobename"]="afii10058",
- ["category"]="lu",
- ["contextname"]="cyrillicLJE",
- ["description"]="CYRILLIC CAPITAL LETTER LJE",
- ["lccode"]=0x0459,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0409, -- Љ
+ adobename="afii10058",
+ category="lu",
+ contextname="cyrillicLJE",
+ description="CYRILLIC CAPITAL LETTER LJE",
+ direction="l",
+ lccode=0x0459,
+ linebreak="al",
+ unicodeslot=0x0409,
},
[0x040A]={
- ["adobename"]="afii10059",
- ["category"]="lu",
- ["contextname"]="cyrillicNJE",
- ["description"]="CYRILLIC CAPITAL LETTER NJE",
- ["lccode"]=0x045A,
- ["linebreak"]="al",
- ["unicodeslot"]=0x040A, -- Њ
+ adobename="afii10059",
+ category="lu",
+ contextname="cyrillicNJE",
+ description="CYRILLIC CAPITAL LETTER NJE",
+ direction="l",
+ lccode=0x045A,
+ linebreak="al",
+ unicodeslot=0x040A,
},
[0x040B]={
- ["adobename"]="afii10060",
- ["category"]="lu",
- ["contextname"]="cyrillicTSHE",
- ["description"]="CYRILLIC CAPITAL LETTER TSHE",
- ["lccode"]=0x045B,
- ["linebreak"]="al",
- ["unicodeslot"]=0x040B, -- Ћ
+ adobename="afii10060",
+ category="lu",
+ contextname="cyrillicTSHE",
+ description="CYRILLIC CAPITAL LETTER TSHE",
+ direction="l",
+ lccode=0x045B,
+ linebreak="al",
+ unicodeslot=0x040B,
},
[0x040C]={
- ["adobename"]="afii10061",
- ["category"]="lu",
- ["contextname"]="cyrillicKJE",
- ["description"]="CYRILLIC CAPITAL LETTER KJE",
- ["lccode"]=0x045C,
- ["linebreak"]="al",
- ["specials"]={ "char", 0x041A, 0x0301 },
- ["unicodeslot"]=0x040C, -- Ќ
+ adobename="afii10061",
+ category="lu",
+ contextname="cyrillicKJE",
+ description="CYRILLIC CAPITAL LETTER KJE",
+ direction="l",
+ lccode=0x045C,
+ linebreak="al",
+ specials={ "char", 0x041A, 0x0301 },
+ unicodeslot=0x040C,
},
[0x040D]={
- ["category"]="lu",
- ["contextname"]="cyrillicIgrave",
- ["description"]="CYRILLIC CAPITAL LETTER I WITH GRAVE",
- ["lccode"]=0x045D,
- ["linebreak"]="al",
- ["shcode"]=0x0418,
- ["specials"]={ "char", 0x0418, 0x0300 },
- ["unicodeslot"]=0x040D, -- Ѝ
+ category="lu",
+ contextname="cyrillicIgrave",
+ description="CYRILLIC CAPITAL LETTER I WITH GRAVE",
+ direction="l",
+ lccode=0x045D,
+ linebreak="al",
+ shcode=0x0418,
+ specials={ "char", 0x0418, 0x0300 },
+ unicodeslot=0x040D,
},
[0x040E]={
- ["adobename"]="afii10062",
- ["category"]="lu",
- ["contextname"]="cyrillicUSHRT",
- ["description"]="CYRILLIC CAPITAL LETTER SHORT U",
- ["lccode"]=0x045E,
- ["linebreak"]="al",
- ["specials"]={ "char", 0x0423, 0x0306 },
- ["unicodeslot"]=0x040E, -- Ў
+ adobename="afii10062",
+ category="lu",
+ contextname="cyrillicUSHRT",
+ description="CYRILLIC CAPITAL LETTER SHORT U",
+ direction="l",
+ lccode=0x045E,
+ linebreak="al",
+ specials={ "char", 0x0423, 0x0306 },
+ unicodeslot=0x040E,
},
[0x040F]={
- ["adobename"]="afii10145",
- ["category"]="lu",
- ["contextname"]="cyrillicDZHE",
- ["description"]="CYRILLIC CAPITAL LETTER DZHE",
- ["lccode"]=0x045F,
- ["linebreak"]="al",
- ["unicodeslot"]=0x040F, -- Џ
+ adobename="afii10145",
+ category="lu",
+ contextname="cyrillicDZHE",
+ description="CYRILLIC CAPITAL LETTER DZHE",
+ direction="l",
+ lccode=0x045F,
+ linebreak="al",
+ unicodeslot=0x040F,
},
[0x0410]={
- ["adobename"]="afii10017",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="cyrillicA",
- ["description"]="CYRILLIC CAPITAL LETTER A",
- ["lccode"]=0x0430,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0410, -- А
+ adobename="afii10017",
+ category="lu",
+ cjkwd="a",
+ contextname="cyrillicA",
+ description="CYRILLIC CAPITAL LETTER A",
+ direction="l",
+ lccode=0x0430,
+ linebreak="al",
+ unicodeslot=0x0410,
},
[0x0411]={
- ["adobename"]="afii10018",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="cyrillicB",
- ["description"]="CYRILLIC CAPITAL LETTER BE",
- ["lccode"]=0x0431,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0411, -- Б
+ adobename="afii10018",
+ category="lu",
+ cjkwd="a",
+ contextname="cyrillicB",
+ description="CYRILLIC CAPITAL LETTER BE",
+ direction="l",
+ lccode=0x0431,
+ linebreak="al",
+ unicodeslot=0x0411,
},
[0x0412]={
- ["adobename"]="afii10019",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="cyrillicV",
- ["description"]="CYRILLIC CAPITAL LETTER VE",
- ["lccode"]=0x0432,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0412, -- В
+ adobename="afii10019",
+ category="lu",
+ cjkwd="a",
+ contextname="cyrillicV",
+ description="CYRILLIC CAPITAL LETTER VE",
+ direction="l",
+ lccode=0x0432,
+ linebreak="al",
+ unicodeslot=0x0412,
},
[0x0413]={
- ["adobename"]="afii10020",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="cyrillicG",
- ["description"]="CYRILLIC CAPITAL LETTER GHE",
- ["lccode"]=0x0433,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0413, -- Г
+ adobename="afii10020",
+ category="lu",
+ cjkwd="a",
+ contextname="cyrillicG",
+ description="CYRILLIC CAPITAL LETTER GHE",
+ direction="l",
+ lccode=0x0433,
+ linebreak="al",
+ unicodeslot=0x0413,
},
[0x0414]={
- ["adobename"]="afii10021",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="cyrillicD",
- ["description"]="CYRILLIC CAPITAL LETTER DE",
- ["lccode"]=0x0434,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0414, -- Д
+ adobename="afii10021",
+ category="lu",
+ cjkwd="a",
+ contextname="cyrillicD",
+ description="CYRILLIC CAPITAL LETTER DE",
+ direction="l",
+ lccode=0x0434,
+ linebreak="al",
+ unicodeslot=0x0414,
},
[0x0415]={
- ["adobename"]="afii10022",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="cyrillicE",
- ["description"]="CYRILLIC CAPITAL LETTER IE",
- ["lccode"]=0x0435,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0415, -- Е
+ adobename="afii10022",
+ category="lu",
+ cjkwd="a",
+ contextname="cyrillicE",
+ description="CYRILLIC CAPITAL LETTER IE",
+ direction="l",
+ lccode=0x0435,
+ linebreak="al",
+ unicodeslot=0x0415,
},
[0x0416]={
- ["adobename"]="afii10024",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="cyrillicZH",
- ["description"]="CYRILLIC CAPITAL LETTER ZHE",
- ["lccode"]=0x0436,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0416, -- Ж
+ adobename="afii10024",
+ category="lu",
+ cjkwd="a",
+ contextname="cyrillicZH",
+ description="CYRILLIC CAPITAL LETTER ZHE",
+ direction="l",
+ lccode=0x0436,
+ linebreak="al",
+ unicodeslot=0x0416,
},
[0x0417]={
- ["adobename"]="afii10025",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="cyrillicZ",
- ["description"]="CYRILLIC CAPITAL LETTER ZE",
- ["lccode"]=0x0437,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0417, -- З
+ adobename="afii10025",
+ category="lu",
+ cjkwd="a",
+ contextname="cyrillicZ",
+ description="CYRILLIC CAPITAL LETTER ZE",
+ direction="l",
+ lccode=0x0437,
+ linebreak="al",
+ unicodeslot=0x0417,
},
[0x0418]={
- ["adobename"]="afii10026",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="cyrillicI",
- ["description"]="CYRILLIC CAPITAL LETTER I",
- ["lccode"]=0x0438,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0418, -- И
+ adobename="afii10026",
+ category="lu",
+ cjkwd="a",
+ contextname="cyrillicI",
+ description="CYRILLIC CAPITAL LETTER I",
+ direction="l",
+ lccode=0x0438,
+ linebreak="al",
+ unicodeslot=0x0418,
},
[0x0419]={
- ["adobename"]="afii10027",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="cyrillicISHRT",
- ["description"]="CYRILLIC CAPITAL LETTER SHORT I",
- ["lccode"]=0x0439,
- ["linebreak"]="al",
- ["specials"]={ "char", 0x0418, 0x0306 },
- ["unicodeslot"]=0x0419, -- Й
+ adobename="afii10027",
+ category="lu",
+ cjkwd="a",
+ contextname="cyrillicISHRT",
+ description="CYRILLIC CAPITAL LETTER SHORT I",
+ direction="l",
+ lccode=0x0439,
+ linebreak="al",
+ specials={ "char", 0x0418, 0x0306 },
+ unicodeslot=0x0419,
},
[0x041A]={
- ["adobename"]="afii10028",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="cyrillicK",
- ["description"]="CYRILLIC CAPITAL LETTER KA",
- ["lccode"]=0x043A,
- ["linebreak"]="al",
- ["unicodeslot"]=0x041A, -- К
+ adobename="afii10028",
+ category="lu",
+ cjkwd="a",
+ contextname="cyrillicK",
+ description="CYRILLIC CAPITAL LETTER KA",
+ direction="l",
+ lccode=0x043A,
+ linebreak="al",
+ unicodeslot=0x041A,
},
[0x041B]={
- ["adobename"]="afii10029",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="cyrillicL",
- ["description"]="CYRILLIC CAPITAL LETTER EL",
- ["lccode"]=0x043B,
- ["linebreak"]="al",
- ["unicodeslot"]=0x041B, -- Л
+ adobename="afii10029",
+ category="lu",
+ cjkwd="a",
+ contextname="cyrillicL",
+ description="CYRILLIC CAPITAL LETTER EL",
+ direction="l",
+ lccode=0x043B,
+ linebreak="al",
+ unicodeslot=0x041B,
},
[0x041C]={
- ["adobename"]="afii10030",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="cyrillicM",
- ["description"]="CYRILLIC CAPITAL LETTER EM",
- ["lccode"]=0x043C,
- ["linebreak"]="al",
- ["unicodeslot"]=0x041C, -- М
+ adobename="afii10030",
+ category="lu",
+ cjkwd="a",
+ contextname="cyrillicM",
+ description="CYRILLIC CAPITAL LETTER EM",
+ direction="l",
+ lccode=0x043C,
+ linebreak="al",
+ unicodeslot=0x041C,
},
[0x041D]={
- ["adobename"]="afii10031",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="cyrillicN",
- ["description"]="CYRILLIC CAPITAL LETTER EN",
- ["lccode"]=0x043D,
- ["linebreak"]="al",
- ["unicodeslot"]=0x041D, -- Н
+ adobename="afii10031",
+ category="lu",
+ cjkwd="a",
+ contextname="cyrillicN",
+ description="CYRILLIC CAPITAL LETTER EN",
+ direction="l",
+ lccode=0x043D,
+ linebreak="al",
+ unicodeslot=0x041D,
},
[0x041E]={
- ["adobename"]="afii10032",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="cyrillicO",
- ["description"]="CYRILLIC CAPITAL LETTER O",
- ["lccode"]=0x043E,
- ["linebreak"]="al",
- ["unicodeslot"]=0x041E, -- О
+ adobename="afii10032",
+ category="lu",
+ cjkwd="a",
+ contextname="cyrillicO",
+ description="CYRILLIC CAPITAL LETTER O",
+ direction="l",
+ lccode=0x043E,
+ linebreak="al",
+ unicodeslot=0x041E,
},
[0x041F]={
- ["adobename"]="afii10033",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="cyrillicP",
- ["description"]="CYRILLIC CAPITAL LETTER PE",
- ["lccode"]=0x043F,
- ["linebreak"]="al",
- ["unicodeslot"]=0x041F, -- П
+ adobename="afii10033",
+ category="lu",
+ cjkwd="a",
+ contextname="cyrillicP",
+ description="CYRILLIC CAPITAL LETTER PE",
+ direction="l",
+ lccode=0x043F,
+ linebreak="al",
+ unicodeslot=0x041F,
},
[0x0420]={
- ["adobename"]="afii10034",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="cyrillicR",
- ["description"]="CYRILLIC CAPITAL LETTER ER",
- ["lccode"]=0x0440,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0420, -- Р
+ adobename="afii10034",
+ category="lu",
+ cjkwd="a",
+ contextname="cyrillicR",
+ description="CYRILLIC CAPITAL LETTER ER",
+ direction="l",
+ lccode=0x0440,
+ linebreak="al",
+ unicodeslot=0x0420,
},
[0x0421]={
- ["adobename"]="afii10035",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="cyrillicS",
- ["description"]="CYRILLIC CAPITAL LETTER ES",
- ["lccode"]=0x0441,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0421, -- С
+ adobename="afii10035",
+ category="lu",
+ cjkwd="a",
+ contextname="cyrillicS",
+ description="CYRILLIC CAPITAL LETTER ES",
+ direction="l",
+ lccode=0x0441,
+ linebreak="al",
+ unicodeslot=0x0421,
},
[0x0422]={
- ["adobename"]="afii10036",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="cyrillicT",
- ["description"]="CYRILLIC CAPITAL LETTER TE",
- ["lccode"]=0x0442,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0422, -- Т
+ adobename="afii10036",
+ category="lu",
+ cjkwd="a",
+ contextname="cyrillicT",
+ description="CYRILLIC CAPITAL LETTER TE",
+ direction="l",
+ lccode=0x0442,
+ linebreak="al",
+ unicodeslot=0x0422,
},
[0x0423]={
- ["adobename"]="afii10037",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="cyrillicU",
- ["description"]="CYRILLIC CAPITAL LETTER U",
- ["lccode"]=0x0443,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0423, -- У
+ adobename="afii10037",
+ category="lu",
+ cjkwd="a",
+ contextname="cyrillicU",
+ description="CYRILLIC CAPITAL LETTER U",
+ direction="l",
+ lccode=0x0443,
+ linebreak="al",
+ unicodeslot=0x0423,
},
[0x0424]={
- ["adobename"]="afii10038",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="cyrillicF",
- ["description"]="CYRILLIC CAPITAL LETTER EF",
- ["lccode"]=0x0444,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0424, -- Ф
+ adobename="afii10038",
+ category="lu",
+ cjkwd="a",
+ contextname="cyrillicF",
+ description="CYRILLIC CAPITAL LETTER EF",
+ direction="l",
+ lccode=0x0444,
+ linebreak="al",
+ unicodeslot=0x0424,
},
[0x0425]={
- ["adobename"]="afii10039",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="cyrillicH",
- ["description"]="CYRILLIC CAPITAL LETTER HA",
- ["lccode"]=0x0445,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0425, -- Х
+ adobename="afii10039",
+ category="lu",
+ cjkwd="a",
+ contextname="cyrillicH",
+ description="CYRILLIC CAPITAL LETTER HA",
+ direction="l",
+ lccode=0x0445,
+ linebreak="al",
+ unicodeslot=0x0425,
},
[0x0426]={
- ["adobename"]="afii10040",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="cyrillicC",
- ["description"]="CYRILLIC CAPITAL LETTER TSE",
- ["lccode"]=0x0446,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0426, -- Ц
+ adobename="afii10040",
+ category="lu",
+ cjkwd="a",
+ contextname="cyrillicC",
+ description="CYRILLIC CAPITAL LETTER TSE",
+ direction="l",
+ lccode=0x0446,
+ linebreak="al",
+ unicodeslot=0x0426,
},
[0x0427]={
- ["adobename"]="afii10041",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="cyrillicCH",
- ["description"]="CYRILLIC CAPITAL LETTER CHE",
- ["lccode"]=0x0447,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0427, -- Ч
+ adobename="afii10041",
+ category="lu",
+ cjkwd="a",
+ contextname="cyrillicCH",
+ description="CYRILLIC CAPITAL LETTER CHE",
+ direction="l",
+ lccode=0x0447,
+ linebreak="al",
+ unicodeslot=0x0427,
},
[0x0428]={
- ["adobename"]="afii10042",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="cyrillicSH",
- ["description"]="CYRILLIC CAPITAL LETTER SHA",
- ["lccode"]=0x0448,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0428, -- Ш
+ adobename="afii10042",
+ category="lu",
+ cjkwd="a",
+ contextname="cyrillicSH",
+ description="CYRILLIC CAPITAL LETTER SHA",
+ direction="l",
+ lccode=0x0448,
+ linebreak="al",
+ unicodeslot=0x0428,
},
[0x0429]={
- ["adobename"]="afii10043",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="cyrillicSHCH",
- ["description"]="CYRILLIC CAPITAL LETTER SHCHA",
- ["lccode"]=0x0449,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0429, -- Щ
+ adobename="afii10043",
+ category="lu",
+ cjkwd="a",
+ contextname="cyrillicSHCH",
+ description="CYRILLIC CAPITAL LETTER SHCHA",
+ direction="l",
+ lccode=0x0449,
+ linebreak="al",
+ unicodeslot=0x0429,
},
[0x042A]={
- ["adobename"]="afii10044",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="cyrillicHRDSN",
- ["description"]="CYRILLIC CAPITAL LETTER HARD SIGN",
- ["lccode"]=0x044A,
- ["linebreak"]="al",
- ["unicodeslot"]=0x042A, -- Ъ
+ adobename="afii10044",
+ category="lu",
+ cjkwd="a",
+ contextname="cyrillicHRDSN",
+ description="CYRILLIC CAPITAL LETTER HARD SIGN",
+ direction="l",
+ lccode=0x044A,
+ linebreak="al",
+ unicodeslot=0x042A,
},
[0x042B]={
- ["adobename"]="afii10045",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="cyrillicERY",
- ["description"]="CYRILLIC CAPITAL LETTER YERU",
- ["lccode"]=0x044B,
- ["linebreak"]="al",
- ["unicodeslot"]=0x042B, -- Ы
+ adobename="afii10045",
+ category="lu",
+ cjkwd="a",
+ contextname="cyrillicERY",
+ description="CYRILLIC CAPITAL LETTER YERU",
+ direction="l",
+ lccode=0x044B,
+ linebreak="al",
+ unicodeslot=0x042B,
},
[0x042C]={
- ["adobename"]="afii10046",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="cyrillicSFTSN",
- ["description"]="CYRILLIC CAPITAL LETTER SOFT SIGN",
- ["lccode"]=0x044C,
- ["linebreak"]="al",
- ["unicodeslot"]=0x042C, -- Ь
+ adobename="afii10046",
+ category="lu",
+ cjkwd="a",
+ contextname="cyrillicSFTSN",
+ description="CYRILLIC CAPITAL LETTER SOFT SIGN",
+ direction="l",
+ lccode=0x044C,
+ linebreak="al",
+ unicodeslot=0x042C,
},
[0x042D]={
- ["adobename"]="afii10047",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="cyrillicEREV",
- ["description"]="CYRILLIC CAPITAL LETTER E",
- ["lccode"]=0x044D,
- ["linebreak"]="al",
- ["unicodeslot"]=0x042D, -- Э
+ adobename="afii10047",
+ category="lu",
+ cjkwd="a",
+ contextname="cyrillicEREV",
+ description="CYRILLIC CAPITAL LETTER E",
+ direction="l",
+ lccode=0x044D,
+ linebreak="al",
+ unicodeslot=0x042D,
},
[0x042E]={
- ["adobename"]="afii10048",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="cyrillicYU",
- ["description"]="CYRILLIC CAPITAL LETTER YU",
- ["lccode"]=0x044E,
- ["linebreak"]="al",
- ["unicodeslot"]=0x042E, -- Ю
+ adobename="afii10048",
+ category="lu",
+ cjkwd="a",
+ contextname="cyrillicYU",
+ description="CYRILLIC CAPITAL LETTER YU",
+ direction="l",
+ lccode=0x044E,
+ linebreak="al",
+ unicodeslot=0x042E,
},
[0x042F]={
- ["adobename"]="afii10049",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["contextname"]="cyrillicYA",
- ["description"]="CYRILLIC CAPITAL LETTER YA",
- ["lccode"]=0x044F,
- ["linebreak"]="al",
- ["unicodeslot"]=0x042F, -- Я
+ adobename="afii10049",
+ category="lu",
+ cjkwd="a",
+ contextname="cyrillicYA",
+ description="CYRILLIC CAPITAL LETTER YA",
+ direction="l",
+ lccode=0x044F,
+ linebreak="al",
+ unicodeslot=0x042F,
},
[0x0430]={
- ["adobename"]="afii10065",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="cyrillica",
- ["description"]="CYRILLIC SMALL LETTER A",
- ["linebreak"]="al",
- ["uccode"]=0x0410,
- ["unicodeslot"]=0x0430, -- а
+ adobename="afii10065",
+ category="ll",
+ cjkwd="a",
+ contextname="cyrillica",
+ description="CYRILLIC SMALL LETTER A",
+ direction="l",
+ linebreak="al",
+ uccode=0x0410,
+ unicodeslot=0x0430,
},
[0x0431]={
- ["adobename"]="afii10066",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="cyrillicb",
- ["description"]="CYRILLIC SMALL LETTER BE",
- ["linebreak"]="al",
- ["uccode"]=0x0411,
- ["unicodeslot"]=0x0431, -- б
+ adobename="afii10066",
+ category="ll",
+ cjkwd="a",
+ contextname="cyrillicb",
+ description="CYRILLIC SMALL LETTER BE",
+ direction="l",
+ linebreak="al",
+ uccode=0x0411,
+ unicodeslot=0x0431,
},
[0x0432]={
- ["adobename"]="afii10067",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="cyrillicv",
- ["description"]="CYRILLIC SMALL LETTER VE",
- ["linebreak"]="al",
- ["uccode"]=0x0412,
- ["unicodeslot"]=0x0432, -- в
+ adobename="afii10067",
+ category="ll",
+ cjkwd="a",
+ contextname="cyrillicv",
+ description="CYRILLIC SMALL LETTER VE",
+ direction="l",
+ linebreak="al",
+ uccode=0x0412,
+ unicodeslot=0x0432,
},
[0x0433]={
- ["adobename"]="afii10068",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="cyrillicg",
- ["description"]="CYRILLIC SMALL LETTER GHE",
- ["linebreak"]="al",
- ["uccode"]=0x0413,
- ["unicodeslot"]=0x0433, -- г
+ adobename="afii10068",
+ category="ll",
+ cjkwd="a",
+ contextname="cyrillicg",
+ description="CYRILLIC SMALL LETTER GHE",
+ direction="l",
+ linebreak="al",
+ uccode=0x0413,
+ unicodeslot=0x0433,
},
[0x0434]={
- ["adobename"]="afii10069",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="cyrillicd",
- ["description"]="CYRILLIC SMALL LETTER DE",
- ["linebreak"]="al",
- ["uccode"]=0x0414,
- ["unicodeslot"]=0x0434, -- д
+ adobename="afii10069",
+ category="ll",
+ cjkwd="a",
+ contextname="cyrillicd",
+ description="CYRILLIC SMALL LETTER DE",
+ direction="l",
+ linebreak="al",
+ uccode=0x0414,
+ unicodeslot=0x0434,
},
[0x0435]={
- ["adobename"]="afii10070",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="cyrillice",
- ["description"]="CYRILLIC SMALL LETTER IE",
- ["linebreak"]="al",
- ["uccode"]=0x0415,
- ["unicodeslot"]=0x0435, -- е
+ adobename="afii10070",
+ category="ll",
+ cjkwd="a",
+ contextname="cyrillice",
+ description="CYRILLIC SMALL LETTER IE",
+ direction="l",
+ linebreak="al",
+ uccode=0x0415,
+ unicodeslot=0x0435,
},
[0x0436]={
- ["adobename"]="afii10072",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="cyrilliczh",
- ["description"]="CYRILLIC SMALL LETTER ZHE",
- ["linebreak"]="al",
- ["uccode"]=0x0416,
- ["unicodeslot"]=0x0436, -- ж
+ adobename="afii10072",
+ category="ll",
+ cjkwd="a",
+ contextname="cyrilliczh",
+ description="CYRILLIC SMALL LETTER ZHE",
+ direction="l",
+ linebreak="al",
+ uccode=0x0416,
+ unicodeslot=0x0436,
},
[0x0437]={
- ["adobename"]="afii10073",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="cyrillicz",
- ["description"]="CYRILLIC SMALL LETTER ZE",
- ["linebreak"]="al",
- ["uccode"]=0x0417,
- ["unicodeslot"]=0x0437, -- з
+ adobename="afii10073",
+ category="ll",
+ cjkwd="a",
+ contextname="cyrillicz",
+ description="CYRILLIC SMALL LETTER ZE",
+ direction="l",
+ linebreak="al",
+ uccode=0x0417,
+ unicodeslot=0x0437,
},
[0x0438]={
- ["adobename"]="afii10074",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="cyrillici",
- ["description"]="CYRILLIC SMALL LETTER I",
- ["linebreak"]="al",
- ["uccode"]=0x0418,
- ["unicodeslot"]=0x0438, -- и
+ adobename="afii10074",
+ category="ll",
+ cjkwd="a",
+ contextname="cyrillici",
+ description="CYRILLIC SMALL LETTER I",
+ direction="l",
+ linebreak="al",
+ uccode=0x0418,
+ unicodeslot=0x0438,
},
[0x0439]={
- ["adobename"]="afii10075",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="cyrillicishrt",
- ["description"]="CYRILLIC SMALL LETTER SHORT I",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x0438, 0x0306 },
- ["uccode"]=0x0419,
- ["unicodeslot"]=0x0439, -- й
+ adobename="afii10075",
+ category="ll",
+ cjkwd="a",
+ contextname="cyrillicishrt",
+ description="CYRILLIC SMALL LETTER SHORT I",
+ direction="l",
+ linebreak="al",
+ specials={ "char", 0x0438, 0x0306 },
+ uccode=0x0419,
+ unicodeslot=0x0439,
},
[0x043A]={
- ["adobename"]="afii10076",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="cyrillick",
- ["description"]="CYRILLIC SMALL LETTER KA",
- ["linebreak"]="al",
- ["uccode"]=0x041A,
- ["unicodeslot"]=0x043A, -- к
+ adobename="afii10076",
+ category="ll",
+ cjkwd="a",
+ contextname="cyrillick",
+ description="CYRILLIC SMALL LETTER KA",
+ direction="l",
+ linebreak="al",
+ uccode=0x041A,
+ unicodeslot=0x043A,
},
[0x043B]={
- ["adobename"]="afii10077",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="cyrillicl",
- ["description"]="CYRILLIC SMALL LETTER EL",
- ["linebreak"]="al",
- ["uccode"]=0x041B,
- ["unicodeslot"]=0x043B, -- л
+ adobename="afii10077",
+ category="ll",
+ cjkwd="a",
+ contextname="cyrillicl",
+ description="CYRILLIC SMALL LETTER EL",
+ direction="l",
+ linebreak="al",
+ uccode=0x041B,
+ unicodeslot=0x043B,
},
[0x043C]={
- ["adobename"]="afii10078",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="cyrillicm",
- ["description"]="CYRILLIC SMALL LETTER EM",
- ["linebreak"]="al",
- ["uccode"]=0x041C,
- ["unicodeslot"]=0x043C, -- м
+ adobename="afii10078",
+ category="ll",
+ cjkwd="a",
+ contextname="cyrillicm",
+ description="CYRILLIC SMALL LETTER EM",
+ direction="l",
+ linebreak="al",
+ uccode=0x041C,
+ unicodeslot=0x043C,
},
[0x043D]={
- ["adobename"]="afii10079",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="cyrillicn",
- ["description"]="CYRILLIC SMALL LETTER EN",
- ["linebreak"]="al",
- ["uccode"]=0x041D,
- ["unicodeslot"]=0x043D, -- н
+ adobename="afii10079",
+ category="ll",
+ cjkwd="a",
+ contextname="cyrillicn",
+ description="CYRILLIC SMALL LETTER EN",
+ direction="l",
+ linebreak="al",
+ uccode=0x041D,
+ unicodeslot=0x043D,
},
[0x043E]={
- ["adobename"]="afii10080",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="cyrillico",
- ["description"]="CYRILLIC SMALL LETTER O",
- ["linebreak"]="al",
- ["uccode"]=0x041E,
- ["unicodeslot"]=0x043E, -- о
+ adobename="afii10080",
+ category="ll",
+ cjkwd="a",
+ contextname="cyrillico",
+ description="CYRILLIC SMALL LETTER O",
+ direction="l",
+ linebreak="al",
+ uccode=0x041E,
+ unicodeslot=0x043E,
},
[0x043F]={
- ["adobename"]="afii10081",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="cyrillicp",
- ["description"]="CYRILLIC SMALL LETTER PE",
- ["linebreak"]="al",
- ["uccode"]=0x041F,
- ["unicodeslot"]=0x043F, -- п
+ adobename="afii10081",
+ category="ll",
+ cjkwd="a",
+ contextname="cyrillicp",
+ description="CYRILLIC SMALL LETTER PE",
+ direction="l",
+ linebreak="al",
+ uccode=0x041F,
+ unicodeslot=0x043F,
},
[0x0440]={
- ["adobename"]="afii10082",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="cyrillicr",
- ["description"]="CYRILLIC SMALL LETTER ER",
- ["linebreak"]="al",
- ["uccode"]=0x0420,
- ["unicodeslot"]=0x0440, -- р
+ adobename="afii10082",
+ category="ll",
+ cjkwd="a",
+ contextname="cyrillicr",
+ description="CYRILLIC SMALL LETTER ER",
+ direction="l",
+ linebreak="al",
+ uccode=0x0420,
+ unicodeslot=0x0440,
},
[0x0441]={
- ["adobename"]="afii10083",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="cyrillics",
- ["description"]="CYRILLIC SMALL LETTER ES",
- ["linebreak"]="al",
- ["uccode"]=0x0421,
- ["unicodeslot"]=0x0441, -- с
+ adobename="afii10083",
+ category="ll",
+ cjkwd="a",
+ contextname="cyrillics",
+ description="CYRILLIC SMALL LETTER ES",
+ direction="l",
+ linebreak="al",
+ uccode=0x0421,
+ unicodeslot=0x0441,
},
[0x0442]={
- ["adobename"]="afii10084",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="cyrillict",
- ["description"]="CYRILLIC SMALL LETTER TE",
- ["linebreak"]="al",
- ["uccode"]=0x0422,
- ["unicodeslot"]=0x0442, -- т
+ adobename="afii10084",
+ category="ll",
+ cjkwd="a",
+ contextname="cyrillict",
+ description="CYRILLIC SMALL LETTER TE",
+ direction="l",
+ linebreak="al",
+ uccode=0x0422,
+ unicodeslot=0x0442,
},
[0x0443]={
- ["adobename"]="afii10085",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="cyrillicu",
- ["description"]="CYRILLIC SMALL LETTER U",
- ["linebreak"]="al",
- ["uccode"]=0x0423,
- ["unicodeslot"]=0x0443, -- у
+ adobename="afii10085",
+ category="ll",
+ cjkwd="a",
+ contextname="cyrillicu",
+ description="CYRILLIC SMALL LETTER U",
+ direction="l",
+ linebreak="al",
+ uccode=0x0423,
+ unicodeslot=0x0443,
},
[0x0444]={
- ["adobename"]="afii10086",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="cyrillicf",
- ["description"]="CYRILLIC SMALL LETTER EF",
- ["linebreak"]="al",
- ["uccode"]=0x0424,
- ["unicodeslot"]=0x0444, -- ф
+ adobename="afii10086",
+ category="ll",
+ cjkwd="a",
+ contextname="cyrillicf",
+ description="CYRILLIC SMALL LETTER EF",
+ direction="l",
+ linebreak="al",
+ uccode=0x0424,
+ unicodeslot=0x0444,
},
[0x0445]={
- ["adobename"]="afii10087",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="cyrillich",
- ["description"]="CYRILLIC SMALL LETTER HA",
- ["linebreak"]="al",
- ["uccode"]=0x0425,
- ["unicodeslot"]=0x0445, -- х
+ adobename="afii10087",
+ category="ll",
+ cjkwd="a",
+ contextname="cyrillich",
+ description="CYRILLIC SMALL LETTER HA",
+ direction="l",
+ linebreak="al",
+ uccode=0x0425,
+ unicodeslot=0x0445,
},
[0x0446]={
- ["adobename"]="afii10088",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="cyrillicc",
- ["description"]="CYRILLIC SMALL LETTER TSE",
- ["linebreak"]="al",
- ["uccode"]=0x0426,
- ["unicodeslot"]=0x0446, -- ц
+ adobename="afii10088",
+ category="ll",
+ cjkwd="a",
+ contextname="cyrillicc",
+ description="CYRILLIC SMALL LETTER TSE",
+ direction="l",
+ linebreak="al",
+ uccode=0x0426,
+ unicodeslot=0x0446,
},
[0x0447]={
- ["adobename"]="afii10089",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="cyrillicch",
- ["description"]="CYRILLIC SMALL LETTER CHE",
- ["linebreak"]="al",
- ["uccode"]=0x0427,
- ["unicodeslot"]=0x0447, -- ч
+ adobename="afii10089",
+ category="ll",
+ cjkwd="a",
+ contextname="cyrillicch",
+ description="CYRILLIC SMALL LETTER CHE",
+ direction="l",
+ linebreak="al",
+ uccode=0x0427,
+ unicodeslot=0x0447,
},
[0x0448]={
- ["adobename"]="afii10090",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="cyrillicsh",
- ["description"]="CYRILLIC SMALL LETTER SHA",
- ["linebreak"]="al",
- ["uccode"]=0x0428,
- ["unicodeslot"]=0x0448, -- ш
+ adobename="afii10090",
+ category="ll",
+ cjkwd="a",
+ contextname="cyrillicsh",
+ description="CYRILLIC SMALL LETTER SHA",
+ direction="l",
+ linebreak="al",
+ uccode=0x0428,
+ unicodeslot=0x0448,
},
[0x0449]={
- ["adobename"]="afii10091",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="cyrillicshch",
- ["description"]="CYRILLIC SMALL LETTER SHCHA",
- ["linebreak"]="al",
- ["uccode"]=0x0429,
- ["unicodeslot"]=0x0449, -- щ
+ adobename="afii10091",
+ category="ll",
+ cjkwd="a",
+ contextname="cyrillicshch",
+ description="CYRILLIC SMALL LETTER SHCHA",
+ direction="l",
+ linebreak="al",
+ uccode=0x0429,
+ unicodeslot=0x0449,
},
[0x044A]={
- ["adobename"]="afii10092",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="cyrillichrdsn",
- ["description"]="CYRILLIC SMALL LETTER HARD SIGN",
- ["linebreak"]="al",
- ["uccode"]=0x042A,
- ["unicodeslot"]=0x044A, -- ъ
+ adobename="afii10092",
+ category="ll",
+ cjkwd="a",
+ contextname="cyrillichrdsn",
+ description="CYRILLIC SMALL LETTER HARD SIGN",
+ direction="l",
+ linebreak="al",
+ uccode=0x042A,
+ unicodeslot=0x044A,
},
[0x044B]={
- ["adobename"]="afii10093",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="cyrillicery",
- ["description"]="CYRILLIC SMALL LETTER YERU",
- ["linebreak"]="al",
- ["uccode"]=0x042B,
- ["unicodeslot"]=0x044B, -- ы
+ adobename="afii10093",
+ category="ll",
+ cjkwd="a",
+ contextname="cyrillicery",
+ description="CYRILLIC SMALL LETTER YERU",
+ direction="l",
+ linebreak="al",
+ uccode=0x042B,
+ unicodeslot=0x044B,
},
[0x044C]={
- ["adobename"]="afii10094",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="cyrillicsftsn",
- ["description"]="CYRILLIC SMALL LETTER SOFT SIGN",
- ["linebreak"]="al",
- ["uccode"]=0x042C,
- ["unicodeslot"]=0x044C, -- ь
+ adobename="afii10094",
+ category="ll",
+ cjkwd="a",
+ contextname="cyrillicsftsn",
+ description="CYRILLIC SMALL LETTER SOFT SIGN",
+ direction="l",
+ linebreak="al",
+ uccode=0x042C,
+ unicodeslot=0x044C,
},
[0x044D]={
- ["adobename"]="afii10095",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="cyrillicerev",
- ["description"]="CYRILLIC SMALL LETTER E",
- ["linebreak"]="al",
- ["uccode"]=0x042D,
- ["unicodeslot"]=0x044D, -- э
+ adobename="afii10095",
+ category="ll",
+ cjkwd="a",
+ contextname="cyrillicerev",
+ description="CYRILLIC SMALL LETTER E",
+ direction="l",
+ linebreak="al",
+ uccode=0x042D,
+ unicodeslot=0x044D,
},
[0x044E]={
- ["adobename"]="afii10096",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="cyrillicyu",
- ["description"]="CYRILLIC SMALL LETTER YU",
- ["linebreak"]="al",
- ["uccode"]=0x042E,
- ["unicodeslot"]=0x044E, -- ю
+ adobename="afii10096",
+ category="ll",
+ cjkwd="a",
+ contextname="cyrillicyu",
+ description="CYRILLIC SMALL LETTER YU",
+ direction="l",
+ linebreak="al",
+ uccode=0x042E,
+ unicodeslot=0x044E,
},
[0x044F]={
- ["adobename"]="afii10097",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="cyrillicya",
- ["description"]="CYRILLIC SMALL LETTER YA",
- ["linebreak"]="al",
- ["uccode"]=0x042F,
- ["unicodeslot"]=0x044F, -- я
+ adobename="afii10097",
+ category="ll",
+ cjkwd="a",
+ contextname="cyrillicya",
+ description="CYRILLIC SMALL LETTER YA",
+ direction="l",
+ linebreak="al",
+ uccode=0x042F,
+ unicodeslot=0x044F,
},
[0x0450]={
- ["category"]="ll",
- ["contextname"]="cyrillicegrave",
- ["description"]="CYRILLIC SMALL LETTER IE WITH GRAVE",
- ["linebreak"]="al",
- ["shcode"]=0x0435,
- ["specials"]={ "char", 0x0435, 0x0300 },
- ["uccode"]=0x0400,
- ["unicodeslot"]=0x0450, -- ѐ
+ category="ll",
+ contextname="cyrillicegrave",
+ description="CYRILLIC SMALL LETTER IE WITH GRAVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0435,
+ specials={ "char", 0x0435, 0x0300 },
+ uccode=0x0400,
+ unicodeslot=0x0450,
},
[0x0451]={
- ["adobename"]="afii10071",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["contextname"]="cyrillicyo",
- ["description"]="CYRILLIC SMALL LETTER IO",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x0435, 0x0308 },
- ["uccode"]=0x0401,
- ["unicodeslot"]=0x0451, -- ё
+ adobename="afii10071",
+ category="ll",
+ cjkwd="a",
+ contextname="cyrillicyo",
+ description="CYRILLIC SMALL LETTER IO",
+ direction="l",
+ linebreak="al",
+ specials={ "char", 0x0435, 0x0308 },
+ uccode=0x0401,
+ unicodeslot=0x0451,
},
[0x0452]={
- ["adobename"]="afii10099",
- ["category"]="ll",
- ["contextname"]="cyrillicdje",
- ["description"]="CYRILLIC SMALL LETTER DJE",
- ["linebreak"]="al",
- ["uccode"]=0x0402,
- ["unicodeslot"]=0x0452, -- ђ
+ adobename="afii10099",
+ category="ll",
+ contextname="cyrillicdje",
+ description="CYRILLIC SMALL LETTER DJE",
+ direction="l",
+ linebreak="al",
+ uccode=0x0402,
+ unicodeslot=0x0452,
},
[0x0453]={
- ["adobename"]="afii10100",
- ["category"]="ll",
- ["contextname"]="cyrillicgje",
- ["description"]="CYRILLIC SMALL LETTER GJE",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x0433, 0x0301 },
- ["uccode"]=0x0403,
- ["unicodeslot"]=0x0453, -- ѓ
+ adobename="afii10100",
+ category="ll",
+ contextname="cyrillicgje",
+ description="CYRILLIC SMALL LETTER GJE",
+ direction="l",
+ linebreak="al",
+ specials={ "char", 0x0433, 0x0301 },
+ uccode=0x0403,
+ unicodeslot=0x0453,
},
[0x0454]={
- ["adobename"]="afii10101",
- ["category"]="ll",
- ["contextname"]="cyrillicie",
- ["description"]="CYRILLIC SMALL LETTER UKRAINIAN IE",
- ["linebreak"]="al",
- ["uccode"]=0x0404,
- ["unicodeslot"]=0x0454, -- є
+ adobename="afii10101",
+ category="ll",
+ contextname="cyrillicie",
+ description="CYRILLIC SMALL LETTER UKRAINIAN IE",
+ direction="l",
+ linebreak="al",
+ uccode=0x0404,
+ unicodeslot=0x0454,
},
[0x0455]={
- ["adobename"]="afii10102",
- ["category"]="ll",
- ["contextname"]="cyrillicdze",
- ["description"]="CYRILLIC SMALL LETTER DZE",
- ["linebreak"]="al",
- ["uccode"]=0x0405,
- ["unicodeslot"]=0x0455, -- ѕ
+ adobename="afii10102",
+ category="ll",
+ contextname="cyrillicdze",
+ description="CYRILLIC SMALL LETTER DZE",
+ direction="l",
+ linebreak="al",
+ uccode=0x0405,
+ unicodeslot=0x0455,
},
[0x0456]={
- ["adobename"]="afii10103",
- ["category"]="ll",
- ["contextname"]="cyrillicii",
- ["description"]="CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I",
- ["linebreak"]="al",
- ["uccode"]=0x0406,
- ["unicodeslot"]=0x0456, -- і
+ adobename="afii10103",
+ category="ll",
+ contextname="cyrillicii",
+ description="CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I",
+ direction="l",
+ linebreak="al",
+ uccode=0x0406,
+ unicodeslot=0x0456,
},
[0x0457]={
- ["adobename"]="afii10104",
- ["category"]="ll",
- ["contextname"]="cyrillicyi",
- ["description"]="CYRILLIC SMALL LETTER YI",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x0456, 0x0308 },
- ["uccode"]=0x0407,
- ["unicodeslot"]=0x0457, -- ї
+ adobename="afii10104",
+ category="ll",
+ contextname="cyrillicyi",
+ description="CYRILLIC SMALL LETTER YI",
+ direction="l",
+ linebreak="al",
+ specials={ "char", 0x0456, 0x0308 },
+ uccode=0x0407,
+ unicodeslot=0x0457,
},
[0x0458]={
- ["adobename"]="afii10105",
- ["category"]="ll",
- ["contextname"]="cyrillicje",
- ["description"]="CYRILLIC SMALL LETTER JE",
- ["linebreak"]="al",
- ["uccode"]=0x0408,
- ["unicodeslot"]=0x0458, -- ј
+ adobename="afii10105",
+ category="ll",
+ contextname="cyrillicje",
+ description="CYRILLIC SMALL LETTER JE",
+ direction="l",
+ linebreak="al",
+ uccode=0x0408,
+ unicodeslot=0x0458,
},
[0x0459]={
- ["adobename"]="afii10106",
- ["category"]="ll",
- ["contextname"]="cyrilliclje",
- ["description"]="CYRILLIC SMALL LETTER LJE",
- ["linebreak"]="al",
- ["uccode"]=0x0409,
- ["unicodeslot"]=0x0459, -- љ
+ adobename="afii10106",
+ category="ll",
+ contextname="cyrilliclje",
+ description="CYRILLIC SMALL LETTER LJE",
+ direction="l",
+ linebreak="al",
+ uccode=0x0409,
+ unicodeslot=0x0459,
},
[0x045A]={
- ["adobename"]="afii10107",
- ["category"]="ll",
- ["contextname"]="cyrillicnje",
- ["description"]="CYRILLIC SMALL LETTER NJE",
- ["linebreak"]="al",
- ["uccode"]=0x040A,
- ["unicodeslot"]=0x045A, -- њ
+ adobename="afii10107",
+ category="ll",
+ contextname="cyrillicnje",
+ description="CYRILLIC SMALL LETTER NJE",
+ direction="l",
+ linebreak="al",
+ uccode=0x040A,
+ unicodeslot=0x045A,
},
[0x045B]={
- ["adobename"]="afii10108",
- ["category"]="ll",
- ["contextname"]="cyrillictshe",
- ["description"]="CYRILLIC SMALL LETTER TSHE",
- ["linebreak"]="al",
- ["uccode"]=0x040B,
- ["unicodeslot"]=0x045B, -- ћ
+ adobename="afii10108",
+ category="ll",
+ contextname="cyrillictshe",
+ description="CYRILLIC SMALL LETTER TSHE",
+ direction="l",
+ linebreak="al",
+ uccode=0x040B,
+ unicodeslot=0x045B,
},
[0x045C]={
- ["adobename"]="afii10109",
- ["category"]="ll",
- ["contextname"]="cyrillickje",
- ["description"]="CYRILLIC SMALL LETTER KJE",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x043A, 0x0301 },
- ["uccode"]=0x040C,
- ["unicodeslot"]=0x045C, -- ќ
+ adobename="afii10109",
+ category="ll",
+ contextname="cyrillickje",
+ description="CYRILLIC SMALL LETTER KJE",
+ direction="l",
+ linebreak="al",
+ specials={ "char", 0x043A, 0x0301 },
+ uccode=0x040C,
+ unicodeslot=0x045C,
},
[0x045D]={
- ["category"]="ll",
- ["contextname"]="cyrillicigrave",
- ["description"]="CYRILLIC SMALL LETTER I WITH GRAVE",
- ["linebreak"]="al",
- ["shcode"]=0x0438,
- ["specials"]={ "char", 0x0438, 0x0300 },
- ["uccode"]=0x040D,
- ["unicodeslot"]=0x045D, -- ѝ
+ category="ll",
+ contextname="cyrillicigrave",
+ description="CYRILLIC SMALL LETTER I WITH GRAVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0438,
+ specials={ "char", 0x0438, 0x0300 },
+ uccode=0x040D,
+ unicodeslot=0x045D,
},
[0x045E]={
- ["adobename"]="afii10110",
- ["category"]="ll",
- ["contextname"]="cyrillicushrt",
- ["description"]="CYRILLIC SMALL LETTER SHORT U",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x0443, 0x0306 },
- ["uccode"]=0x040E,
- ["unicodeslot"]=0x045E, -- ў
+ adobename="afii10110",
+ category="ll",
+ contextname="cyrillicushrt",
+ description="CYRILLIC SMALL LETTER SHORT U",
+ direction="l",
+ linebreak="al",
+ specials={ "char", 0x0443, 0x0306 },
+ uccode=0x040E,
+ unicodeslot=0x045E,
},
[0x045F]={
- ["adobename"]="afii10193",
- ["category"]="ll",
- ["contextname"]="cyrillicdzhe",
- ["description"]="CYRILLIC SMALL LETTER DZHE",
- ["linebreak"]="al",
- ["uccode"]=0x040F,
- ["unicodeslot"]=0x045F, -- џ
+ adobename="afii10193",
+ category="ll",
+ contextname="cyrillicdzhe",
+ description="CYRILLIC SMALL LETTER DZHE",
+ direction="l",
+ linebreak="al",
+ uccode=0x040F,
+ unicodeslot=0x045F,
},
[0x0460]={
- ["category"]="lu",
- ["contextname"]="cyrillicOMEGA",
- ["description"]="CYRILLIC CAPITAL LETTER OMEGA",
- ["lccode"]=0x0461,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0460, -- Ѡ
+ category="lu",
+ contextname="cyrillicOMEGA",
+ description="CYRILLIC CAPITAL LETTER OMEGA",
+ direction="l",
+ lccode=0x0461,
+ linebreak="al",
+ unicodeslot=0x0460,
},
[0x0461]={
- ["category"]="ll",
- ["contextname"]="cyrillicomega",
- ["description"]="CYRILLIC SMALL LETTER OMEGA",
- ["linebreak"]="al",
- ["uccode"]=0x0460,
- ["unicodeslot"]=0x0461, -- ѡ
+ category="ll",
+ contextname="cyrillicomega",
+ description="CYRILLIC SMALL LETTER OMEGA",
+ direction="l",
+ linebreak="al",
+ uccode=0x0460,
+ unicodeslot=0x0461,
},
[0x0462]={
- ["adobename"]="afii10146",
- ["category"]="lu",
- ["contextname"]="cyrillicYAT",
- ["description"]="CYRILLIC CAPITAL LETTER YAT",
- ["lccode"]=0x0463,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0462, -- Ѣ
+ adobename="afii10146",
+ category="lu",
+ contextname="cyrillicYAT",
+ description="CYRILLIC CAPITAL LETTER YAT",
+ direction="l",
+ lccode=0x0463,
+ linebreak="al",
+ unicodeslot=0x0462,
},
[0x0463]={
- ["adobename"]="afii10194",
- ["category"]="ll",
- ["contextname"]="cyrillicyat",
- ["description"]="CYRILLIC SMALL LETTER YAT",
- ["linebreak"]="al",
- ["uccode"]=0x0462,
- ["unicodeslot"]=0x0463, -- ѣ
+ adobename="afii10194",
+ category="ll",
+ contextname="cyrillicyat",
+ description="CYRILLIC SMALL LETTER YAT",
+ direction="l",
+ linebreak="al",
+ uccode=0x0462,
+ unicodeslot=0x0463,
},
[0x0464]={
- ["category"]="lu",
- ["contextname"]="cyrillicEiotified",
- ["description"]="CYRILLIC CAPITAL LETTER IOTIFIED E",
- ["lccode"]=0x0465,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0464, -- Ѥ
+ category="lu",
+ contextname="cyrillicEiotified",
+ description="CYRILLIC CAPITAL LETTER IOTIFIED E",
+ direction="l",
+ lccode=0x0465,
+ linebreak="al",
+ unicodeslot=0x0464,
},
[0x0465]={
- ["category"]="ll",
- ["contextname"]="cyrilliceiotified",
- ["description"]="CYRILLIC SMALL LETTER IOTIFIED E",
- ["linebreak"]="al",
- ["uccode"]=0x0464,
- ["unicodeslot"]=0x0465, -- ѥ
+ category="ll",
+ contextname="cyrilliceiotified",
+ description="CYRILLIC SMALL LETTER IOTIFIED E",
+ direction="l",
+ linebreak="al",
+ uccode=0x0464,
+ unicodeslot=0x0465,
},
[0x0466]={
- ["category"]="lu",
- ["contextname"]="cyrillicLITTLEYUS",
- ["description"]="CYRILLIC CAPITAL LETTER LITTLE YUS",
- ["lccode"]=0x0467,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0466, -- Ѧ
+ category="lu",
+ contextname="cyrillicLITTLEYUS",
+ description="CYRILLIC CAPITAL LETTER LITTLE YUS",
+ direction="l",
+ lccode=0x0467,
+ linebreak="al",
+ unicodeslot=0x0466,
},
[0x0467]={
- ["category"]="ll",
- ["contextname"]="cyrilliclittleyus",
- ["description"]="CYRILLIC SMALL LETTER LITTLE YUS",
- ["linebreak"]="al",
- ["uccode"]=0x0466,
- ["unicodeslot"]=0x0467, -- ѧ
+ category="ll",
+ contextname="cyrilliclittleyus",
+ description="CYRILLIC SMALL LETTER LITTLE YUS",
+ direction="l",
+ linebreak="al",
+ uccode=0x0466,
+ unicodeslot=0x0467,
},
[0x0468]={
- ["category"]="lu",
- ["contextname"]="cyrillicLITTLEYUSiotified",
- ["description"]="CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS",
- ["lccode"]=0x0469,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0468, -- Ѩ
+ category="lu",
+ contextname="cyrillicLITTLEYUSiotified",
+ description="CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS",
+ direction="l",
+ lccode=0x0469,
+ linebreak="al",
+ unicodeslot=0x0468,
},
[0x0469]={
- ["category"]="ll",
- ["contextname"]="cyrilliclittleyusiotified",
- ["description"]="CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS",
- ["linebreak"]="al",
- ["uccode"]=0x0468,
- ["unicodeslot"]=0x0469, -- ѩ
+ category="ll",
+ contextname="cyrilliclittleyusiotified",
+ description="CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS",
+ direction="l",
+ linebreak="al",
+ uccode=0x0468,
+ unicodeslot=0x0469,
},
[0x046A]={
- ["category"]="lu",
- ["contextname"]="cyrillicBIGYUS",
- ["description"]="CYRILLIC CAPITAL LETTER BIG YUS",
- ["lccode"]=0x046B,
- ["linebreak"]="al",
- ["unicodeslot"]=0x046A, -- Ѫ
+ category="lu",
+ contextname="cyrillicBIGYUS",
+ description="CYRILLIC CAPITAL LETTER BIG YUS",
+ direction="l",
+ lccode=0x046B,
+ linebreak="al",
+ unicodeslot=0x046A,
},
[0x046B]={
- ["category"]="ll",
- ["contextname"]="cyrillicbigyus",
- ["description"]="CYRILLIC SMALL LETTER BIG YUS",
- ["linebreak"]="al",
- ["uccode"]=0x046A,
- ["unicodeslot"]=0x046B, -- ѫ
+ category="ll",
+ contextname="cyrillicbigyus",
+ description="CYRILLIC SMALL LETTER BIG YUS",
+ direction="l",
+ linebreak="al",
+ uccode=0x046A,
+ unicodeslot=0x046B,
},
[0x046C]={
- ["category"]="lu",
- ["contextname"]="cyrillicBIGYUSiotified",
- ["description"]="CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS",
- ["lccode"]=0x046D,
- ["linebreak"]="al",
- ["unicodeslot"]=0x046C, -- Ѭ
+ category="lu",
+ contextname="cyrillicBIGYUSiotified",
+ description="CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS",
+ direction="l",
+ lccode=0x046D,
+ linebreak="al",
+ unicodeslot=0x046C,
},
[0x046D]={
- ["category"]="ll",
- ["contextname"]="cyrillicbigyusiotified",
- ["description"]="CYRILLIC SMALL LETTER IOTIFIED BIG YUS",
- ["linebreak"]="al",
- ["uccode"]=0x046C,
- ["unicodeslot"]=0x046D, -- ѭ
+ category="ll",
+ contextname="cyrillicbigyusiotified",
+ description="CYRILLIC SMALL LETTER IOTIFIED BIG YUS",
+ direction="l",
+ linebreak="al",
+ uccode=0x046C,
+ unicodeslot=0x046D,
},
[0x046E]={
- ["category"]="lu",
- ["contextname"]="cyrillicKSI",
- ["description"]="CYRILLIC CAPITAL LETTER KSI",
- ["lccode"]=0x046F,
- ["linebreak"]="al",
- ["unicodeslot"]=0x046E, -- Ѯ
+ category="lu",
+ contextname="cyrillicKSI",
+ description="CYRILLIC CAPITAL LETTER KSI",
+ direction="l",
+ lccode=0x046F,
+ linebreak="al",
+ unicodeslot=0x046E,
},
[0x046F]={
- ["category"]="ll",
- ["contextname"]="cyrillicksi",
- ["description"]="CYRILLIC SMALL LETTER KSI",
- ["linebreak"]="al",
- ["uccode"]=0x046E,
- ["unicodeslot"]=0x046F, -- ѯ
+ category="ll",
+ contextname="cyrillicksi",
+ description="CYRILLIC SMALL LETTER KSI",
+ direction="l",
+ linebreak="al",
+ uccode=0x046E,
+ unicodeslot=0x046F,
},
[0x0470]={
- ["category"]="lu",
- ["contextname"]="cyrillicPSI",
- ["description"]="CYRILLIC CAPITAL LETTER PSI",
- ["lccode"]=0x0471,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0470, -- Ѱ
+ category="lu",
+ contextname="cyrillicPSI",
+ description="CYRILLIC CAPITAL LETTER PSI",
+ direction="l",
+ lccode=0x0471,
+ linebreak="al",
+ unicodeslot=0x0470,
},
[0x0471]={
- ["category"]="ll",
- ["contextname"]="cyrillicpsi",
- ["description"]="CYRILLIC SMALL LETTER PSI",
- ["linebreak"]="al",
- ["uccode"]=0x0470,
- ["unicodeslot"]=0x0471, -- ѱ
+ category="ll",
+ contextname="cyrillicpsi",
+ description="CYRILLIC SMALL LETTER PSI",
+ direction="l",
+ linebreak="al",
+ uccode=0x0470,
+ unicodeslot=0x0471,
},
[0x0472]={
- ["adobename"]="afii10147",
- ["category"]="lu",
- ["contextname"]="cyrillicFITA",
- ["description"]="CYRILLIC CAPITAL LETTER FITA",
- ["lccode"]=0x0473,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0472, -- Ѳ
+ adobename="afii10147",
+ category="lu",
+ contextname="cyrillicFITA",
+ description="CYRILLIC CAPITAL LETTER FITA",
+ direction="l",
+ lccode=0x0473,
+ linebreak="al",
+ unicodeslot=0x0472,
},
[0x0473]={
- ["adobename"]="afii10195",
- ["category"]="ll",
- ["contextname"]="cyrillicfita",
- ["description"]="CYRILLIC SMALL LETTER FITA",
- ["linebreak"]="al",
- ["uccode"]=0x0472,
- ["unicodeslot"]=0x0473, -- ѳ
+ adobename="afii10195",
+ category="ll",
+ contextname="cyrillicfita",
+ description="CYRILLIC SMALL LETTER FITA",
+ direction="l",
+ linebreak="al",
+ uccode=0x0472,
+ unicodeslot=0x0473,
},
[0x0474]={
- ["adobename"]="afii10148",
- ["category"]="lu",
- ["contextname"]="cyrillicIZHITSA",
- ["description"]="CYRILLIC CAPITAL LETTER IZHITSA",
- ["lccode"]=0x0475,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0474, -- Ѵ
+ adobename="afii10148",
+ category="lu",
+ contextname="cyrillicIZHITSA",
+ description="CYRILLIC CAPITAL LETTER IZHITSA",
+ direction="l",
+ lccode=0x0475,
+ linebreak="al",
+ unicodeslot=0x0474,
},
[0x0475]={
- ["adobename"]="afii10196",
- ["category"]="ll",
- ["contextname"]="cyrillicizhitsa",
- ["description"]="CYRILLIC SMALL LETTER IZHITSA",
- ["linebreak"]="al",
- ["uccode"]=0x0474,
- ["unicodeslot"]=0x0475, -- ѵ
+ adobename="afii10196",
+ category="ll",
+ contextname="cyrillicizhitsa",
+ description="CYRILLIC SMALL LETTER IZHITSA",
+ direction="l",
+ linebreak="al",
+ uccode=0x0474,
+ unicodeslot=0x0475,
},
[0x0476]={
- ["category"]="lu",
- ["contextname"]="cyrillicIZHITSAdoublegrave",
- ["description"]="CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT",
- ["lccode"]=0x0477,
- ["linebreak"]="al",
- ["shcode"]=0x0474,
- ["specials"]={ "char", 0x0474, 0x030F },
- ["unicodeslot"]=0x0476, -- Ѷ
+ category="lu",
+ contextname="cyrillicIZHITSAdoublegrave",
+ description="CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT",
+ direction="l",
+ lccode=0x0477,
+ linebreak="al",
+ shcode=0x0474,
+ specials={ "char", 0x0474, 0x030F },
+ unicodeslot=0x0476,
},
[0x0477]={
- ["category"]="ll",
- ["contextname"]="cyrillicizhitsadoublegrave",
- ["description"]="CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT",
- ["linebreak"]="al",
- ["shcode"]=0x0475,
- ["specials"]={ "char", 0x0475, 0x030F },
- ["uccode"]=0x0476,
- ["unicodeslot"]=0x0477, -- ѷ
+ category="ll",
+ contextname="cyrillicizhitsadoublegrave",
+ description="CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT",
+ direction="l",
+ linebreak="al",
+ shcode=0x0475,
+ specials={ "char", 0x0475, 0x030F },
+ uccode=0x0476,
+ unicodeslot=0x0477,
},
[0x0478]={
- ["category"]="lu",
- ["contextname"]="cyrillicUK",
- ["description"]="CYRILLIC CAPITAL LETTER UK",
- ["lccode"]=0x0479,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0478, -- Ѹ
+ category="lu",
+ contextname="cyrillicUK",
+ description="CYRILLIC CAPITAL LETTER UK",
+ direction="l",
+ lccode=0x0479,
+ linebreak="al",
+ unicodeslot=0x0478,
},
[0x0479]={
- ["category"]="ll",
- ["contextname"]="cyrillicuk",
- ["description"]="CYRILLIC SMALL LETTER UK",
- ["linebreak"]="al",
- ["uccode"]=0x0478,
- ["unicodeslot"]=0x0479, -- ѹ
+ category="ll",
+ contextname="cyrillicuk",
+ description="CYRILLIC SMALL LETTER UK",
+ direction="l",
+ linebreak="al",
+ uccode=0x0478,
+ unicodeslot=0x0479,
},
[0x047A]={
- ["category"]="lu",
- ["contextname"]="cyrillicOMEGAround",
- ["description"]="CYRILLIC CAPITAL LETTER ROUND OMEGA",
- ["lccode"]=0x047B,
- ["linebreak"]="al",
- ["unicodeslot"]=0x047A, -- Ѻ
+ category="lu",
+ contextname="cyrillicOMEGAround",
+ description="CYRILLIC CAPITAL LETTER ROUND OMEGA",
+ direction="l",
+ lccode=0x047B,
+ linebreak="al",
+ unicodeslot=0x047A,
},
[0x047B]={
- ["category"]="ll",
- ["contextname"]="cyrillicomegaround",
- ["description"]="CYRILLIC SMALL LETTER ROUND OMEGA",
- ["linebreak"]="al",
- ["uccode"]=0x047A,
- ["unicodeslot"]=0x047B, -- ѻ
+ category="ll",
+ contextname="cyrillicomegaround",
+ description="CYRILLIC SMALL LETTER ROUND OMEGA",
+ direction="l",
+ linebreak="al",
+ uccode=0x047A,
+ unicodeslot=0x047B,
},
[0x047C]={
- ["category"]="lu",
- ["contextname"]="cyrillicOMEGAtitlo",
- ["description"]="CYRILLIC CAPITAL LETTER OMEGA WITH TITLO",
- ["lccode"]=0x047D,
- ["linebreak"]="al",
- ["shcode"]=0x0460,
- ["unicodeslot"]=0x047C, -- Ѽ
+ category="lu",
+ contextname="cyrillicOMEGAtitlo",
+ description="CYRILLIC CAPITAL LETTER OMEGA WITH TITLO",
+ direction="l",
+ lccode=0x047D,
+ linebreak="al",
+ shcode=0x0460,
+ unicodeslot=0x047C,
},
[0x047D]={
- ["category"]="ll",
- ["contextname"]="cyrillicomegatitlo",
- ["description"]="CYRILLIC SMALL LETTER OMEGA WITH TITLO",
- ["linebreak"]="al",
- ["shcode"]=0x0461,
- ["uccode"]=0x047C,
- ["unicodeslot"]=0x047D, -- ѽ
+ category="ll",
+ contextname="cyrillicomegatitlo",
+ description="CYRILLIC SMALL LETTER OMEGA WITH TITLO",
+ direction="l",
+ linebreak="al",
+ shcode=0x0461,
+ uccode=0x047C,
+ unicodeslot=0x047D,
},
[0x047E]={
- ["category"]="lu",
- ["contextname"]="cyrillicOT",
- ["description"]="CYRILLIC CAPITAL LETTER OT",
- ["lccode"]=0x047F,
- ["linebreak"]="al",
- ["unicodeslot"]=0x047E, -- Ѿ
+ category="lu",
+ contextname="cyrillicOT",
+ description="CYRILLIC CAPITAL LETTER OT",
+ direction="l",
+ lccode=0x047F,
+ linebreak="al",
+ unicodeslot=0x047E,
},
[0x047F]={
- ["category"]="ll",
- ["contextname"]="cyrillicot",
- ["description"]="CYRILLIC SMALL LETTER OT",
- ["linebreak"]="al",
- ["uccode"]=0x047E,
- ["unicodeslot"]=0x047F, -- ѿ
+ category="ll",
+ contextname="cyrillicot",
+ description="CYRILLIC SMALL LETTER OT",
+ direction="l",
+ linebreak="al",
+ uccode=0x047E,
+ unicodeslot=0x047F,
},
[0x0480]={
- ["category"]="lu",
- ["contextname"]="cyrillicKOPPA",
- ["description"]="CYRILLIC CAPITAL LETTER KOPPA",
- ["lccode"]=0x0481,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0480, -- Ҁ
+ category="lu",
+ contextname="cyrillicKOPPA",
+ description="CYRILLIC CAPITAL LETTER KOPPA",
+ direction="l",
+ lccode=0x0481,
+ linebreak="al",
+ unicodeslot=0x0480,
},
[0x0481]={
- ["category"]="ll",
- ["contextname"]="cyrillickoppa",
- ["description"]="CYRILLIC SMALL LETTER KOPPA",
- ["linebreak"]="al",
- ["uccode"]=0x0480,
- ["unicodeslot"]=0x0481, -- ҁ
+ category="ll",
+ contextname="cyrillickoppa",
+ description="CYRILLIC SMALL LETTER KOPPA",
+ direction="l",
+ linebreak="al",
+ uccode=0x0480,
+ unicodeslot=0x0481,
},
[0x0482]={
- ["category"]="so",
- ["description"]="CYRILLIC THOUSANDS SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0482, -- ҂
+ category="so",
+ description="CYRILLIC THOUSANDS SIGN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0482,
},
[0x0483]={
- ["category"]="mn",
- ["contextname"]="cyrillicTITLO",
- ["description"]="COMBINING CYRILLIC TITLO",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0483, -- ҃
+ category="mn",
+ contextname="cyrillicTITLO",
+ description="COMBINING CYRILLIC TITLO",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0483,
},
[0x0484]={
- ["category"]="mn",
- ["contextname"]="cyrillicPALATALIZATION",
- ["description"]="COMBINING CYRILLIC PALATALIZATION",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0484, -- ҄
+ category="mn",
+ contextname="cyrillicPALATALIZATION",
+ description="COMBINING CYRILLIC PALATALIZATION",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0484,
},
[0x0485]={
- ["category"]="mn",
- ["contextname"]="cyrillicDASIAPNEUMATA",
- ["description"]="COMBINING CYRILLIC DASIA PNEUMATA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0485, -- ҅
+ category="mn",
+ contextname="cyrillicDASIAPNEUMATA",
+ description="COMBINING CYRILLIC DASIA PNEUMATA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0485,
},
[0x0486]={
- ["category"]="mn",
- ["contextname"]="cyrillicPSILIPNEUMATA",
- ["description"]="COMBINING CYRILLIC PSILI PNEUMATA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0486, -- ҆
+ category="mn",
+ contextname="cyrillicPSILIPNEUMATA",
+ description="COMBINING CYRILLIC PSILI PNEUMATA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0486,
},
[0x0488]={
- ["category"]="me",
- ["description"]="COMBINING CYRILLIC HUNDRED THOUSANDS SIGN",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0488, -- ҈
+ category="me",
+ description="COMBINING CYRILLIC HUNDRED THOUSANDS SIGN",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0488,
},
[0x0489]={
- ["category"]="me",
- ["description"]="COMBINING CYRILLIC MILLIONS SIGN",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0489, -- ҉
+ category="me",
+ description="COMBINING CYRILLIC MILLIONS SIGN",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0489,
},
[0x048A]={
- ["category"]="lu",
- ["contextname"]="cyrillicISHRTtail",
- ["description"]="CYRILLIC CAPITAL LETTER SHORT I WITH TAIL",
- ["lccode"]=0x048B,
- ["linebreak"]="al",
- ["unicodeslot"]=0x048A, -- Ҋ
+ category="lu",
+ contextname="cyrillicISHRTtail",
+ description="CYRILLIC CAPITAL LETTER SHORT I WITH TAIL",
+ direction="l",
+ lccode=0x048B,
+ linebreak="al",
+ unicodeslot=0x048A,
},
[0x048B]={
- ["category"]="ll",
- ["contextname"]="cyrillicishrttail",
- ["description"]="CYRILLIC SMALL LETTER SHORT I WITH TAIL",
- ["linebreak"]="al",
- ["uccode"]=0x048A,
- ["unicodeslot"]=0x048B, -- ҋ
+ category="ll",
+ contextname="cyrillicishrttail",
+ description="CYRILLIC SMALL LETTER SHORT I WITH TAIL",
+ direction="l",
+ linebreak="al",
+ uccode=0x048A,
+ unicodeslot=0x048B,
},
[0x048C]={
- ["category"]="lu",
- ["contextname"]="cyrillicSEMISOFT",
- ["description"]="CYRILLIC CAPITAL LETTER SEMISOFT SIGN",
- ["lccode"]=0x048D,
- ["linebreak"]="al",
- ["unicodeslot"]=0x048C, -- Ҍ
+ category="lu",
+ contextname="cyrillicSEMISOFT",
+ description="CYRILLIC CAPITAL LETTER SEMISOFT SIGN",
+ direction="l",
+ lccode=0x048D,
+ linebreak="al",
+ unicodeslot=0x048C,
},
[0x048D]={
- ["category"]="ll",
- ["contextname"]="cyrillicsemisoft",
- ["description"]="CYRILLIC SMALL LETTER SEMISOFT SIGN",
- ["linebreak"]="al",
- ["uccode"]=0x048C,
- ["unicodeslot"]=0x048D, -- ҍ
+ category="ll",
+ contextname="cyrillicsemisoft",
+ description="CYRILLIC SMALL LETTER SEMISOFT SIGN",
+ direction="l",
+ linebreak="al",
+ uccode=0x048C,
+ unicodeslot=0x048D,
},
[0x048E]={
- ["category"]="lu",
- ["contextname"]="cyrillicERtick",
- ["description"]="CYRILLIC CAPITAL LETTER ER WITH TICK",
- ["lccode"]=0x048F,
- ["linebreak"]="al",
- ["shcode"]=0x0420,
- ["unicodeslot"]=0x048E, -- Ҏ
+ category="lu",
+ contextname="cyrillicERtick",
+ description="CYRILLIC CAPITAL LETTER ER WITH TICK",
+ direction="l",
+ lccode=0x048F,
+ linebreak="al",
+ shcode=0x0420,
+ unicodeslot=0x048E,
},
[0x048F]={
- ["category"]="ll",
- ["contextname"]="cyrillicertick",
- ["description"]="CYRILLIC SMALL LETTER ER WITH TICK",
- ["linebreak"]="al",
- ["shcode"]=0x0440,
- ["uccode"]=0x048E,
- ["unicodeslot"]=0x048F, -- ҏ
+ category="ll",
+ contextname="cyrillicertick",
+ description="CYRILLIC SMALL LETTER ER WITH TICK",
+ direction="l",
+ linebreak="al",
+ shcode=0x0440,
+ uccode=0x048E,
+ unicodeslot=0x048F,
},
[0x0490]={
- ["adobename"]="afii10050",
- ["category"]="lu",
- ["contextname"]="cyrillicGHEupturn",
- ["description"]="CYRILLIC CAPITAL LETTER GHE WITH UPTURN",
- ["lccode"]=0x0491,
- ["linebreak"]="al",
- ["shcode"]=0x0413,
- ["unicodeslot"]=0x0490, -- Ґ
+ adobename="afii10050",
+ category="lu",
+ contextname="cyrillicGHEupturn",
+ description="CYRILLIC CAPITAL LETTER GHE WITH UPTURN",
+ direction="l",
+ lccode=0x0491,
+ linebreak="al",
+ shcode=0x0413,
+ unicodeslot=0x0490,
},
[0x0491]={
- ["adobename"]="afii10098",
- ["category"]="ll",
- ["contextname"]="cyrillicgheupturn",
- ["description"]="CYRILLIC SMALL LETTER GHE WITH UPTURN",
- ["linebreak"]="al",
- ["shcode"]=0x0433,
- ["uccode"]=0x0490,
- ["unicodeslot"]=0x0491, -- ґ
+ adobename="afii10098",
+ category="ll",
+ contextname="cyrillicgheupturn",
+ description="CYRILLIC SMALL LETTER GHE WITH UPTURN",
+ direction="l",
+ linebreak="al",
+ shcode=0x0433,
+ uccode=0x0490,
+ unicodeslot=0x0491,
},
[0x0492]={
- ["category"]="lu",
- ["contextname"]="cyrillicGHEstroke",
- ["description"]="CYRILLIC CAPITAL LETTER GHE WITH STROKE",
- ["lccode"]=0x0493,
- ["linebreak"]="al",
- ["shcode"]=0x0413,
- ["unicodeslot"]=0x0492, -- Ғ
+ category="lu",
+ contextname="cyrillicGHEstroke",
+ description="CYRILLIC CAPITAL LETTER GHE WITH STROKE",
+ direction="l",
+ lccode=0x0493,
+ linebreak="al",
+ shcode=0x0413,
+ unicodeslot=0x0492,
},
[0x0493]={
- ["category"]="ll",
- ["contextname"]="cyrillicghestroke",
- ["description"]="CYRILLIC SMALL LETTER GHE WITH STROKE",
- ["linebreak"]="al",
- ["shcode"]=0x0433,
- ["uccode"]=0x0492,
- ["unicodeslot"]=0x0493, -- ғ
+ category="ll",
+ contextname="cyrillicghestroke",
+ description="CYRILLIC SMALL LETTER GHE WITH STROKE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0433,
+ uccode=0x0492,
+ unicodeslot=0x0493,
},
[0x0494]={
- ["category"]="lu",
- ["contextname"]="cyrillicGHEmidhook",
- ["description"]="CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK",
- ["lccode"]=0x0495,
- ["linebreak"]="al",
- ["shcode"]=0x0413,
- ["unicodeslot"]=0x0494, -- Ҕ
+ category="lu",
+ contextname="cyrillicGHEmidhook",
+ description="CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK",
+ direction="l",
+ lccode=0x0495,
+ linebreak="al",
+ shcode=0x0413,
+ unicodeslot=0x0494,
},
[0x0495]={
- ["category"]="ll",
- ["contextname"]="cyrillicghemidhook",
- ["description"]="CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK",
- ["linebreak"]="al",
- ["shcode"]=0x0433,
- ["uccode"]=0x0494,
- ["unicodeslot"]=0x0495, -- ҕ
+ category="ll",
+ contextname="cyrillicghemidhook",
+ description="CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK",
+ direction="l",
+ linebreak="al",
+ shcode=0x0433,
+ uccode=0x0494,
+ unicodeslot=0x0495,
},
[0x0496]={
- ["category"]="lu",
- ["contextname"]="cyrillicZHEdescender",
- ["description"]="CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER",
- ["lccode"]=0x0497,
- ["linebreak"]="al",
- ["shcode"]=0x0416,
- ["unicodeslot"]=0x0496, -- Җ
+ category="lu",
+ contextname="cyrillicZHEdescender",
+ description="CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER",
+ direction="l",
+ lccode=0x0497,
+ linebreak="al",
+ shcode=0x0416,
+ unicodeslot=0x0496,
},
[0x0497]={
- ["category"]="ll",
- ["contextname"]="cyrilliczhedescender",
- ["description"]="CYRILLIC SMALL LETTER ZHE WITH DESCENDER",
- ["linebreak"]="al",
- ["shcode"]=0x0436,
- ["uccode"]=0x0496,
- ["unicodeslot"]=0x0497, -- җ
+ category="ll",
+ contextname="cyrilliczhedescender",
+ description="CYRILLIC SMALL LETTER ZHE WITH DESCENDER",
+ direction="l",
+ linebreak="al",
+ shcode=0x0436,
+ uccode=0x0496,
+ unicodeslot=0x0497,
},
[0x0498]={
- ["category"]="lu",
- ["contextname"]="cyrillicZDSC",
- ["description"]="CYRILLIC CAPITAL LETTER ZE WITH DESCENDER",
- ["lccode"]=0x0499,
- ["linebreak"]="al",
- ["shcode"]=0x0417,
- ["unicodeslot"]=0x0498, -- Ҙ
+ category="lu",
+ contextname="cyrillicZDSC",
+ description="CYRILLIC CAPITAL LETTER ZE WITH DESCENDER",
+ direction="l",
+ lccode=0x0499,
+ linebreak="al",
+ shcode=0x0417,
+ unicodeslot=0x0498,
},
[0x0499]={
- ["category"]="ll",
- ["contextname"]="cyrilliczdsc",
- ["description"]="CYRILLIC SMALL LETTER ZE WITH DESCENDER",
- ["linebreak"]="al",
- ["shcode"]=0x0437,
- ["uccode"]=0x0498,
- ["unicodeslot"]=0x0499, -- ҙ
+ category="ll",
+ contextname="cyrilliczdsc",
+ description="CYRILLIC SMALL LETTER ZE WITH DESCENDER",
+ direction="l",
+ linebreak="al",
+ shcode=0x0437,
+ uccode=0x0498,
+ unicodeslot=0x0499,
},
[0x049A]={
- ["category"]="lu",
- ["contextname"]="cyrillicKADC",
- ["description"]="CYRILLIC CAPITAL LETTER KA WITH DESCENDER",
- ["lccode"]=0x049B,
- ["linebreak"]="al",
- ["shcode"]=0x041A,
- ["unicodeslot"]=0x049A, -- Қ
+ category="lu",
+ contextname="cyrillicKADC",
+ description="CYRILLIC CAPITAL LETTER KA WITH DESCENDER",
+ direction="l",
+ lccode=0x049B,
+ linebreak="al",
+ shcode=0x041A,
+ unicodeslot=0x049A,
},
[0x049B]={
- ["category"]="ll",
- ["contextname"]="cyrillickadc",
- ["description"]="CYRILLIC SMALL LETTER KA WITH DESCENDER",
- ["linebreak"]="al",
- ["shcode"]=0x043A,
- ["uccode"]=0x049A,
- ["unicodeslot"]=0x049B, -- қ
+ category="ll",
+ contextname="cyrillickadc",
+ description="CYRILLIC SMALL LETTER KA WITH DESCENDER",
+ direction="l",
+ linebreak="al",
+ shcode=0x043A,
+ uccode=0x049A,
+ unicodeslot=0x049B,
},
[0x049C]={
- ["category"]="lu",
- ["contextname"]="cyrillicKAvertstroke",
- ["description"]="CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE",
- ["lccode"]=0x049D,
- ["linebreak"]="al",
- ["shcode"]=0x041A,
- ["unicodeslot"]=0x049C, -- Ҝ
+ category="lu",
+ contextname="cyrillicKAvertstroke",
+ description="CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE",
+ direction="l",
+ lccode=0x049D,
+ linebreak="al",
+ shcode=0x041A,
+ unicodeslot=0x049C,
},
[0x049D]={
- ["category"]="ll",
- ["contextname"]="cyrillickavertstroke",
- ["description"]="CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE",
- ["linebreak"]="al",
- ["shcode"]=0x043A,
- ["uccode"]=0x049C,
- ["unicodeslot"]=0x049D, -- ҝ
+ category="ll",
+ contextname="cyrillickavertstroke",
+ description="CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE",
+ direction="l",
+ linebreak="al",
+ shcode=0x043A,
+ uccode=0x049C,
+ unicodeslot=0x049D,
},
[0x049E]={
- ["category"]="lu",
- ["contextname"]="cyrillicKAstroke",
- ["description"]="CYRILLIC CAPITAL LETTER KA WITH STROKE",
- ["lccode"]=0x049F,
- ["linebreak"]="al",
- ["shcode"]=0x041A,
- ["unicodeslot"]=0x049E, -- Ҟ
+ category="lu",
+ contextname="cyrillicKAstroke",
+ description="CYRILLIC CAPITAL LETTER KA WITH STROKE",
+ direction="l",
+ lccode=0x049F,
+ linebreak="al",
+ shcode=0x041A,
+ unicodeslot=0x049E,
},
[0x049F]={
- ["category"]="ll",
- ["contextname"]="cyrillickastroke",
- ["description"]="CYRILLIC SMALL LETTER KA WITH STROKE",
- ["linebreak"]="al",
- ["shcode"]=0x043A,
- ["uccode"]=0x049E,
- ["unicodeslot"]=0x049F, -- ҟ
+ category="ll",
+ contextname="cyrillickastroke",
+ description="CYRILLIC SMALL LETTER KA WITH STROKE",
+ direction="l",
+ linebreak="al",
+ shcode=0x043A,
+ uccode=0x049E,
+ unicodeslot=0x049F,
},
[0x04A0]={
- ["category"]="lu",
- ["contextname"]="cyrillicKAbashkir",
- ["description"]="CYRILLIC CAPITAL LETTER BASHKIR KA",
- ["lccode"]=0x04A1,
- ["linebreak"]="al",
- ["unicodeslot"]=0x04A0, -- Ҡ
+ category="lu",
+ contextname="cyrillicKAbashkir",
+ description="CYRILLIC CAPITAL LETTER BASHKIR KA",
+ direction="l",
+ lccode=0x04A1,
+ linebreak="al",
+ unicodeslot=0x04A0,
},
[0x04A1]={
- ["category"]="ll",
- ["contextname"]="cyrillickabashkir",
- ["description"]="CYRILLIC SMALL LETTER BASHKIR KA",
- ["linebreak"]="al",
- ["uccode"]=0x04A0,
- ["unicodeslot"]=0x04A1, -- ҡ
+ category="ll",
+ contextname="cyrillickabashkir",
+ description="CYRILLIC SMALL LETTER BASHKIR KA",
+ direction="l",
+ linebreak="al",
+ uccode=0x04A0,
+ unicodeslot=0x04A1,
},
[0x04A2]={
- ["category"]="lu",
- ["contextname"]="cyrillicENDC",
- ["description"]="CYRILLIC CAPITAL LETTER EN WITH DESCENDER",
- ["lccode"]=0x04A3,
- ["linebreak"]="al",
- ["shcode"]=0x041D,
- ["unicodeslot"]=0x04A2, -- Ң
+ category="lu",
+ contextname="cyrillicENDC",
+ description="CYRILLIC CAPITAL LETTER EN WITH DESCENDER",
+ direction="l",
+ lccode=0x04A3,
+ linebreak="al",
+ shcode=0x041D,
+ unicodeslot=0x04A2,
},
[0x04A3]={
- ["category"]="ll",
- ["contextname"]="cyrillicendc",
- ["description"]="CYRILLIC SMALL LETTER EN WITH DESCENDER",
- ["linebreak"]="al",
- ["shcode"]=0x043D,
- ["uccode"]=0x04A2,
- ["unicodeslot"]=0x04A3, -- ң
+ category="ll",
+ contextname="cyrillicendc",
+ description="CYRILLIC SMALL LETTER EN WITH DESCENDER",
+ direction="l",
+ linebreak="al",
+ shcode=0x043D,
+ uccode=0x04A2,
+ unicodeslot=0x04A3,
},
[0x04A4]={
- ["category"]="lu",
- ["contextname"]="cyrillicENGHE",
- ["description"]="CYRILLIC CAPITAL LIGATURE EN GHE",
- ["lccode"]=0x04A5,
- ["linebreak"]="al",
- ["unicodeslot"]=0x04A4, -- Ҥ
+ category="lu",
+ contextname="cyrillicENGHE",
+ description="CYRILLIC CAPITAL LIGATURE EN GHE",
+ direction="l",
+ lccode=0x04A5,
+ linebreak="al",
+ unicodeslot=0x04A4,
},
[0x04A5]={
- ["category"]="ll",
- ["contextname"]="cyrillicenghe",
- ["description"]="CYRILLIC SMALL LIGATURE EN GHE",
- ["linebreak"]="al",
- ["uccode"]=0x04A4,
- ["unicodeslot"]=0x04A5, -- ҥ
+ category="ll",
+ contextname="cyrillicenghe",
+ description="CYRILLIC SMALL LIGATURE EN GHE",
+ direction="l",
+ linebreak="al",
+ uccode=0x04A4,
+ unicodeslot=0x04A5,
},
[0x04A6]={
- ["category"]="lu",
- ["contextname"]="cyrillicPEmidhook",
- ["description"]="CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK",
- ["lccode"]=0x04A7,
- ["linebreak"]="al",
- ["shcode"]=0x041F,
- ["unicodeslot"]=0x04A6, -- Ҧ
+ category="lu",
+ contextname="cyrillicPEmidhook",
+ description="CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK",
+ direction="l",
+ lccode=0x04A7,
+ linebreak="al",
+ shcode=0x041F,
+ unicodeslot=0x04A6,
},
[0x04A7]={
- ["category"]="ll",
- ["contextname"]="cyrillicpemidhook",
- ["description"]="CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK",
- ["linebreak"]="al",
- ["shcode"]=0x043F,
- ["uccode"]=0x04A6,
- ["unicodeslot"]=0x04A7, -- ҧ
+ category="ll",
+ contextname="cyrillicpemidhook",
+ description="CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK",
+ direction="l",
+ linebreak="al",
+ shcode=0x043F,
+ uccode=0x04A6,
+ unicodeslot=0x04A7,
},
[0x04A8]={
- ["category"]="lu",
- ["contextname"]="cyrillicHA",
- ["description"]="CYRILLIC CAPITAL LETTER ABKHASIAN HA",
- ["lccode"]=0x04A9,
- ["linebreak"]="al",
- ["unicodeslot"]=0x04A8, -- Ҩ
+ category="lu",
+ contextname="cyrillicHA",
+ description="CYRILLIC CAPITAL LETTER ABKHASIAN HA",
+ direction="l",
+ lccode=0x04A9,
+ linebreak="al",
+ unicodeslot=0x04A8,
},
[0x04A9]={
- ["category"]="ll",
- ["contextname"]="cyrillicha",
- ["description"]="CYRILLIC SMALL LETTER ABKHASIAN HA",
- ["linebreak"]="al",
- ["uccode"]=0x04A8,
- ["unicodeslot"]=0x04A9, -- ҩ
+ category="ll",
+ contextname="cyrillicha",
+ description="CYRILLIC SMALL LETTER ABKHASIAN HA",
+ direction="l",
+ linebreak="al",
+ uccode=0x04A8,
+ unicodeslot=0x04A9,
},
[0x04AA]={
- ["category"]="lu",
- ["contextname"]="cyrillicSDSC",
- ["description"]="CYRILLIC CAPITAL LETTER ES WITH DESCENDER",
- ["lccode"]=0x04AB,
- ["linebreak"]="al",
- ["shcode"]=0x0421,
- ["unicodeslot"]=0x04AA, -- Ҫ
+ category="lu",
+ contextname="cyrillicSDSC",
+ description="CYRILLIC CAPITAL LETTER ES WITH DESCENDER",
+ direction="l",
+ lccode=0x04AB,
+ linebreak="al",
+ shcode=0x0421,
+ unicodeslot=0x04AA,
},
[0x04AB]={
- ["category"]="ll",
- ["contextname"]="cyrillicsdsc",
- ["description"]="CYRILLIC SMALL LETTER ES WITH DESCENDER",
- ["linebreak"]="al",
- ["shcode"]=0x0441,
- ["uccode"]=0x04AA,
- ["unicodeslot"]=0x04AB, -- ҫ
+ category="ll",
+ contextname="cyrillicsdsc",
+ description="CYRILLIC SMALL LETTER ES WITH DESCENDER",
+ direction="l",
+ linebreak="al",
+ shcode=0x0441,
+ uccode=0x04AA,
+ unicodeslot=0x04AB,
},
[0x04AC]={
- ["category"]="lu",
- ["contextname"]="cyrillicTEDC",
- ["description"]="CYRILLIC CAPITAL LETTER TE WITH DESCENDER",
- ["lccode"]=0x04AD,
- ["linebreak"]="al",
- ["shcode"]=0x0422,
- ["unicodeslot"]=0x04AC, -- Ҭ
+ category="lu",
+ contextname="cyrillicTEDC",
+ description="CYRILLIC CAPITAL LETTER TE WITH DESCENDER",
+ direction="l",
+ lccode=0x04AD,
+ linebreak="al",
+ shcode=0x0422,
+ unicodeslot=0x04AC,
},
[0x04AD]={
- ["category"]="ll",
- ["contextname"]="cyrillictedc",
- ["description"]="CYRILLIC SMALL LETTER TE WITH DESCENDER",
- ["linebreak"]="al",
- ["shcode"]=0x0442,
- ["uccode"]=0x04AC,
- ["unicodeslot"]=0x04AD, -- ҭ
+ category="ll",
+ contextname="cyrillictedc",
+ description="CYRILLIC SMALL LETTER TE WITH DESCENDER",
+ direction="l",
+ linebreak="al",
+ shcode=0x0442,
+ uccode=0x04AC,
+ unicodeslot=0x04AD,
},
[0x04AE]={
- ["category"]="lu",
- ["contextname"]="cyrillicYstr",
- ["description"]="CYRILLIC CAPITAL LETTER STRAIGHT U",
- ["lccode"]=0x04AF,
- ["linebreak"]="al",
- ["unicodeslot"]=0x04AE, -- Ү
+ category="lu",
+ contextname="cyrillicYstr",
+ description="CYRILLIC CAPITAL LETTER STRAIGHT U",
+ direction="l",
+ lccode=0x04AF,
+ linebreak="al",
+ unicodeslot=0x04AE,
},
[0x04AF]={
- ["category"]="ll",
- ["contextname"]="cyrillicystr",
- ["description"]="CYRILLIC SMALL LETTER STRAIGHT U",
- ["linebreak"]="al",
- ["uccode"]=0x04AE,
- ["unicodeslot"]=0x04AF, -- ү
+ category="ll",
+ contextname="cyrillicystr",
+ description="CYRILLIC SMALL LETTER STRAIGHT U",
+ direction="l",
+ linebreak="al",
+ uccode=0x04AE,
+ unicodeslot=0x04AF,
},
[0x04B0]={
- ["category"]="lu",
- ["contextname"]="cyrillicYstrstroke",
- ["description"]="CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE",
- ["lccode"]=0x04B1,
- ["linebreak"]="al",
- ["unicodeslot"]=0x04B0, -- Ұ
+ category="lu",
+ contextname="cyrillicYstrstroke",
+ description="CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE",
+ direction="l",
+ lccode=0x04B1,
+ linebreak="al",
+ unicodeslot=0x04B0,
},
[0x04B1]={
- ["category"]="ll",
- ["contextname"]="cyrillicystrstroke",
- ["description"]="CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE",
- ["linebreak"]="al",
- ["uccode"]=0x04B0,
- ["unicodeslot"]=0x04B1, -- ұ
+ category="ll",
+ contextname="cyrillicystrstroke",
+ description="CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE",
+ direction="l",
+ linebreak="al",
+ uccode=0x04B0,
+ unicodeslot=0x04B1,
},
[0x04B2]={
- ["category"]="lu",
- ["contextname"]="cyrillicHADC",
- ["description"]="CYRILLIC CAPITAL LETTER HA WITH DESCENDER",
- ["lccode"]=0x04B3,
- ["linebreak"]="al",
- ["shcode"]=0x0425,
- ["unicodeslot"]=0x04B2, -- Ҳ
+ category="lu",
+ contextname="cyrillicHADC",
+ description="CYRILLIC CAPITAL LETTER HA WITH DESCENDER",
+ direction="l",
+ lccode=0x04B3,
+ linebreak="al",
+ shcode=0x0425,
+ unicodeslot=0x04B2,
},
[0x04B3]={
- ["category"]="ll",
- ["contextname"]="cyrillichadc",
- ["description"]="CYRILLIC SMALL LETTER HA WITH DESCENDER",
- ["linebreak"]="al",
- ["shcode"]=0x0445,
- ["uccode"]=0x04B2,
- ["unicodeslot"]=0x04B3, -- ҳ
+ category="ll",
+ contextname="cyrillichadc",
+ description="CYRILLIC SMALL LETTER HA WITH DESCENDER",
+ direction="l",
+ linebreak="al",
+ shcode=0x0445,
+ uccode=0x04B2,
+ unicodeslot=0x04B3,
},
[0x04B4]={
- ["category"]="lu",
- ["contextname"]="cyrillicTETSE",
- ["description"]="CYRILLIC CAPITAL LIGATURE TE TSE",
- ["lccode"]=0x04B5,
- ["linebreak"]="al",
- ["unicodeslot"]=0x04B4, -- Ҵ
+ category="lu",
+ contextname="cyrillicTETSE",
+ description="CYRILLIC CAPITAL LIGATURE TE TSE",
+ direction="l",
+ lccode=0x04B5,
+ linebreak="al",
+ unicodeslot=0x04B4,
},
[0x04B5]={
- ["category"]="ll",
- ["contextname"]="cyrillictetse",
- ["description"]="CYRILLIC SMALL LIGATURE TE TSE",
- ["linebreak"]="al",
- ["uccode"]=0x04B4,
- ["unicodeslot"]=0x04B5, -- ҵ
+ category="ll",
+ contextname="cyrillictetse",
+ description="CYRILLIC SMALL LIGATURE TE TSE",
+ direction="l",
+ linebreak="al",
+ uccode=0x04B4,
+ unicodeslot=0x04B5,
},
[0x04B6]={
- ["category"]="lu",
- ["contextname"]="cyrillicCHEDC",
- ["description"]="CYRILLIC CAPITAL LETTER CHE WITH DESCENDER",
- ["lccode"]=0x04B7,
- ["linebreak"]="al",
- ["shcode"]=0x0427,
- ["unicodeslot"]=0x04B6, -- Ҷ
+ category="lu",
+ contextname="cyrillicCHEDC",
+ description="CYRILLIC CAPITAL LETTER CHE WITH DESCENDER",
+ direction="l",
+ lccode=0x04B7,
+ linebreak="al",
+ shcode=0x0427,
+ unicodeslot=0x04B6,
},
[0x04B7]={
- ["category"]="ll",
- ["contextname"]="cyrillicchedc",
- ["description"]="CYRILLIC SMALL LETTER CHE WITH DESCENDER",
- ["linebreak"]="al",
- ["shcode"]=0x0447,
- ["uccode"]=0x04B6,
- ["unicodeslot"]=0x04B7, -- ҷ
+ category="ll",
+ contextname="cyrillicchedc",
+ description="CYRILLIC SMALL LETTER CHE WITH DESCENDER",
+ direction="l",
+ linebreak="al",
+ shcode=0x0447,
+ uccode=0x04B6,
+ unicodeslot=0x04B7,
},
[0x04B8]={
- ["category"]="lu",
- ["contextname"]="cyrillicCHEvertstroke",
- ["description"]="CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE",
- ["lccode"]=0x04B9,
- ["linebreak"]="al",
- ["shcode"]=0x0427,
- ["unicodeslot"]=0x04B8, -- Ҹ
+ category="lu",
+ contextname="cyrillicCHEvertstroke",
+ description="CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE",
+ direction="l",
+ lccode=0x04B9,
+ linebreak="al",
+ shcode=0x0427,
+ unicodeslot=0x04B8,
},
[0x04B9]={
- ["category"]="ll",
- ["contextname"]="cyrillicchevertstroke",
- ["description"]="CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE",
- ["linebreak"]="al",
- ["shcode"]=0x0447,
- ["uccode"]=0x04B8,
- ["unicodeslot"]=0x04B9, -- ҹ
+ category="ll",
+ contextname="cyrillicchevertstroke",
+ description="CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0447,
+ uccode=0x04B8,
+ unicodeslot=0x04B9,
},
[0x04BA]={
- ["category"]="lu",
- ["contextname"]="cyrillicSHHA",
- ["description"]="CYRILLIC CAPITAL LETTER SHHA",
- ["lccode"]=0x04BB,
- ["linebreak"]="al",
- ["unicodeslot"]=0x04BA, -- Һ
+ category="lu",
+ contextname="cyrillicSHHA",
+ description="CYRILLIC CAPITAL LETTER SHHA",
+ direction="l",
+ lccode=0x04BB,
+ linebreak="al",
+ unicodeslot=0x04BA,
},
[0x04BB]={
- ["category"]="ll",
- ["contextname"]="cyrillicshha",
- ["description"]="CYRILLIC SMALL LETTER SHHA",
- ["linebreak"]="al",
- ["uccode"]=0x04BA,
- ["unicodeslot"]=0x04BB, -- һ
+ category="ll",
+ contextname="cyrillicshha",
+ description="CYRILLIC SMALL LETTER SHHA",
+ direction="l",
+ linebreak="al",
+ uccode=0x04BA,
+ unicodeslot=0x04BB,
},
[0x04BC]={
- ["category"]="lu",
- ["contextname"]="cyrillicCHEabkhasian",
- ["description"]="CYRILLIC CAPITAL LETTER ABKHASIAN CHE",
- ["lccode"]=0x04BD,
- ["linebreak"]="al",
- ["unicodeslot"]=0x04BC, -- Ҽ
+ category="lu",
+ contextname="cyrillicCHEabkhasian",
+ description="CYRILLIC CAPITAL LETTER ABKHASIAN CHE",
+ direction="l",
+ lccode=0x04BD,
+ linebreak="al",
+ unicodeslot=0x04BC,
},
[0x04BD]={
- ["category"]="ll",
- ["contextname"]="cyrilliccheabkhasian",
- ["description"]="CYRILLIC SMALL LETTER ABKHASIAN CHE",
- ["linebreak"]="al",
- ["uccode"]=0x04BC,
- ["unicodeslot"]=0x04BD, -- ҽ
+ category="ll",
+ contextname="cyrilliccheabkhasian",
+ description="CYRILLIC SMALL LETTER ABKHASIAN CHE",
+ direction="l",
+ linebreak="al",
+ uccode=0x04BC,
+ unicodeslot=0x04BD,
},
[0x04BE]={
- ["category"]="lu",
- ["contextname"]="cyrillicCHEDCabkhasian",
- ["description"]="CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER",
- ["lccode"]=0x04BF,
- ["linebreak"]="al",
- ["unicodeslot"]=0x04BE, -- Ҿ
+ category="lu",
+ contextname="cyrillicCHEDCabkhasian",
+ description="CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER",
+ direction="l",
+ lccode=0x04BF,
+ linebreak="al",
+ unicodeslot=0x04BE,
},
[0x04BF]={
- ["category"]="ll",
- ["contextname"]="cyrillicchedcabkhasian",
- ["description"]="CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER",
- ["linebreak"]="al",
- ["uccode"]=0x04BE,
- ["unicodeslot"]=0x04BF, -- ҿ
+ category="ll",
+ contextname="cyrillicchedcabkhasian",
+ description="CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER",
+ direction="l",
+ linebreak="al",
+ uccode=0x04BE,
+ unicodeslot=0x04BF,
},
[0x04C0]={
- ["category"]="lu",
- ["contextname"]="cyrillicPALOCHKA",
- ["description"]="CYRILLIC LETTER PALOCHKA",
- ["lccode"]=0x04CF,
- ["linebreak"]="al",
- ["unicodeslot"]=0x04C0, -- Ӏ
+ category="lu",
+ contextname="cyrillicPALOCHKA",
+ description="CYRILLIC LETTER PALOCHKA",
+ direction="l",
+ lccode=0x04CF,
+ linebreak="al",
+ unicodeslot=0x04C0,
},
[0x04C1]={
- ["category"]="lu",
- ["contextname"]="cyrillicZHEbreve",
- ["description"]="CYRILLIC CAPITAL LETTER ZHE WITH BREVE",
- ["lccode"]=0x04C2,
- ["linebreak"]="al",
- ["shcode"]=0x0416,
- ["specials"]={ "char", 0x0416, 0x0306 },
- ["unicodeslot"]=0x04C1, -- Ӂ
+ category="lu",
+ contextname="cyrillicZHEbreve",
+ description="CYRILLIC CAPITAL LETTER ZHE WITH BREVE",
+ direction="l",
+ lccode=0x04C2,
+ linebreak="al",
+ shcode=0x0416,
+ specials={ "char", 0x0416, 0x0306 },
+ unicodeslot=0x04C1,
},
[0x04C2]={
- ["category"]="ll",
- ["contextname"]="cyrilliczhebreve",
- ["description"]="CYRILLIC SMALL LETTER ZHE WITH BREVE",
- ["linebreak"]="al",
- ["shcode"]=0x0436,
- ["specials"]={ "char", 0x0436, 0x0306 },
- ["uccode"]=0x04C1,
- ["unicodeslot"]=0x04C2, -- ӂ
+ category="ll",
+ contextname="cyrilliczhebreve",
+ description="CYRILLIC SMALL LETTER ZHE WITH BREVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0436,
+ specials={ "char", 0x0436, 0x0306 },
+ uccode=0x04C1,
+ unicodeslot=0x04C2,
},
[0x04C3]={
- ["category"]="lu",
- ["contextname"]="cyrillicKAhook",
- ["description"]="CYRILLIC CAPITAL LETTER KA WITH HOOK",
- ["lccode"]=0x04C4,
- ["linebreak"]="al",
- ["shcode"]=0x041A,
- ["unicodeslot"]=0x04C3, -- Ӄ
+ category="lu",
+ contextname="cyrillicKAhook",
+ description="CYRILLIC CAPITAL LETTER KA WITH HOOK",
+ direction="l",
+ lccode=0x04C4,
+ linebreak="al",
+ shcode=0x041A,
+ unicodeslot=0x04C3,
},
[0x04C4]={
- ["category"]="ll",
- ["contextname"]="cyrillickahook",
- ["description"]="CYRILLIC SMALL LETTER KA WITH HOOK",
- ["linebreak"]="al",
- ["shcode"]=0x043A,
- ["uccode"]=0x04C3,
- ["unicodeslot"]=0x04C4, -- ӄ
+ category="ll",
+ contextname="cyrillickahook",
+ description="CYRILLIC SMALL LETTER KA WITH HOOK",
+ direction="l",
+ linebreak="al",
+ shcode=0x043A,
+ uccode=0x04C3,
+ unicodeslot=0x04C4,
},
[0x04C5]={
- ["category"]="lu",
- ["contextname"]="cyrillicELtail",
- ["description"]="CYRILLIC CAPITAL LETTER EL WITH TAIL",
- ["lccode"]=0x04C6,
- ["linebreak"]="al",
- ["shcode"]=0x041B,
- ["unicodeslot"]=0x04C5, -- Ӆ
+ category="lu",
+ contextname="cyrillicELtail",
+ description="CYRILLIC CAPITAL LETTER EL WITH TAIL",
+ direction="l",
+ lccode=0x04C6,
+ linebreak="al",
+ shcode=0x041B,
+ unicodeslot=0x04C5,
},
[0x04C6]={
- ["category"]="ll",
- ["contextname"]="cyrilliceltail",
- ["description"]="CYRILLIC SMALL LETTER EL WITH TAIL",
- ["linebreak"]="al",
- ["shcode"]=0x043B,
- ["uccode"]=0x04C5,
- ["unicodeslot"]=0x04C6, -- ӆ
+ category="ll",
+ contextname="cyrilliceltail",
+ description="CYRILLIC SMALL LETTER EL WITH TAIL",
+ direction="l",
+ linebreak="al",
+ shcode=0x043B,
+ uccode=0x04C5,
+ unicodeslot=0x04C6,
},
[0x04C7]={
- ["category"]="lu",
- ["contextname"]="cyrillicENhook",
- ["description"]="CYRILLIC CAPITAL LETTER EN WITH HOOK",
- ["lccode"]=0x04C8,
- ["linebreak"]="al",
- ["shcode"]=0x041D,
- ["unicodeslot"]=0x04C7, -- Ӈ
+ category="lu",
+ contextname="cyrillicENhook",
+ description="CYRILLIC CAPITAL LETTER EN WITH HOOK",
+ direction="l",
+ lccode=0x04C8,
+ linebreak="al",
+ shcode=0x041D,
+ unicodeslot=0x04C7,
},
[0x04C8]={
- ["category"]="ll",
- ["contextname"]="cyrillicenhook",
- ["description"]="CYRILLIC SMALL LETTER EN WITH HOOK",
- ["linebreak"]="al",
- ["shcode"]=0x043D,
- ["uccode"]=0x04C7,
- ["unicodeslot"]=0x04C8, -- ӈ
+ category="ll",
+ contextname="cyrillicenhook",
+ description="CYRILLIC SMALL LETTER EN WITH HOOK",
+ direction="l",
+ linebreak="al",
+ shcode=0x043D,
+ uccode=0x04C7,
+ unicodeslot=0x04C8,
},
[0x04C9]={
- ["category"]="lu",
- ["contextname"]="cyrillicENtail",
- ["description"]="CYRILLIC CAPITAL LETTER EN WITH TAIL",
- ["lccode"]=0x04CA,
- ["linebreak"]="al",
- ["shcode"]=0x041D,
- ["unicodeslot"]=0x04C9, -- Ӊ
+ category="lu",
+ contextname="cyrillicENtail",
+ description="CYRILLIC CAPITAL LETTER EN WITH TAIL",
+ direction="l",
+ lccode=0x04CA,
+ linebreak="al",
+ shcode=0x041D,
+ unicodeslot=0x04C9,
},
[0x04CA]={
- ["category"]="ll",
- ["contextname"]="cyrillicentail",
- ["description"]="CYRILLIC SMALL LETTER EN WITH TAIL",
- ["linebreak"]="al",
- ["shcode"]=0x043D,
- ["uccode"]=0x04C9,
- ["unicodeslot"]=0x04CA, -- ӊ
+ category="ll",
+ contextname="cyrillicentail",
+ description="CYRILLIC SMALL LETTER EN WITH TAIL",
+ direction="l",
+ linebreak="al",
+ shcode=0x043D,
+ uccode=0x04C9,
+ unicodeslot=0x04CA,
},
[0x04CB]={
- ["category"]="lu",
- ["contextname"]="cyrillicCHEkhakassian",
- ["description"]="CYRILLIC CAPITAL LETTER KHAKASSIAN CHE",
- ["lccode"]=0x04CC,
- ["linebreak"]="al",
- ["unicodeslot"]=0x04CB, -- Ӌ
+ category="lu",
+ contextname="cyrillicCHEkhakassian",
+ description="CYRILLIC CAPITAL LETTER KHAKASSIAN CHE",
+ direction="l",
+ lccode=0x04CC,
+ linebreak="al",
+ unicodeslot=0x04CB,
},
[0x04CC]={
- ["category"]="ll",
- ["contextname"]="cyrillicchekhakassian",
- ["description"]="CYRILLIC SMALL LETTER KHAKASSIAN CHE",
- ["linebreak"]="al",
- ["uccode"]=0x04CB,
- ["unicodeslot"]=0x04CC, -- ӌ
+ category="ll",
+ contextname="cyrillicchekhakassian",
+ description="CYRILLIC SMALL LETTER KHAKASSIAN CHE",
+ direction="l",
+ linebreak="al",
+ uccode=0x04CB,
+ unicodeslot=0x04CC,
},
[0x04CD]={
- ["category"]="lu",
- ["contextname"]="cyrillicEMtail",
- ["description"]="CYRILLIC CAPITAL LETTER EM WITH TAIL",
- ["lccode"]=0x04CE,
- ["linebreak"]="al",
- ["shcode"]=0x041C,
- ["unicodeslot"]=0x04CD, -- Ӎ
+ category="lu",
+ contextname="cyrillicEMtail",
+ description="CYRILLIC CAPITAL LETTER EM WITH TAIL",
+ direction="l",
+ lccode=0x04CE,
+ linebreak="al",
+ shcode=0x041C,
+ unicodeslot=0x04CD,
},
[0x04CE]={
- ["category"]="ll",
- ["contextname"]="cyrillicemtail",
- ["description"]="CYRILLIC SMALL LETTER EM WITH TAIL",
- ["linebreak"]="al",
- ["shcode"]=0x043C,
- ["uccode"]=0x04CD,
- ["unicodeslot"]=0x04CE, -- ӎ
+ category="ll",
+ contextname="cyrillicemtail",
+ description="CYRILLIC SMALL LETTER EM WITH TAIL",
+ direction="l",
+ linebreak="al",
+ shcode=0x043C,
+ uccode=0x04CD,
+ unicodeslot=0x04CE,
},
[0x04CF]={
- ["category"]="ll",
- ["description"]="CYRILLIC SMALL LETTER PALOCHKA",
- ["linebreak"]="al",
- ["uccode"]=0x04C0,
- ["unicodeslot"]=0x04CF, -- ӏ
+ category="ll",
+ description="CYRILLIC SMALL LETTER PALOCHKA",
+ direction="l",
+ linebreak="al",
+ uccode=0x04C0,
+ unicodeslot=0x04CF,
},
[0x04D0]={
- ["category"]="lu",
- ["contextname"]="cyrillicAbreve",
- ["description"]="CYRILLIC CAPITAL LETTER A WITH BREVE",
- ["lccode"]=0x04D1,
- ["linebreak"]="al",
- ["shcode"]=0x0410,
- ["specials"]={ "char", 0x0410, 0x0306 },
- ["unicodeslot"]=0x04D0, -- Ӑ
+ category="lu",
+ contextname="cyrillicAbreve",
+ description="CYRILLIC CAPITAL LETTER A WITH BREVE",
+ direction="l",
+ lccode=0x04D1,
+ linebreak="al",
+ shcode=0x0410,
+ specials={ "char", 0x0410, 0x0306 },
+ unicodeslot=0x04D0,
},
[0x04D1]={
- ["category"]="ll",
- ["contextname"]="cyrillicabreve",
- ["description"]="CYRILLIC SMALL LETTER A WITH BREVE",
- ["linebreak"]="al",
- ["shcode"]=0x0430,
- ["specials"]={ "char", 0x0430, 0x0306 },
- ["uccode"]=0x04D0,
- ["unicodeslot"]=0x04D1, -- ӑ
+ category="ll",
+ contextname="cyrillicabreve",
+ description="CYRILLIC SMALL LETTER A WITH BREVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0430,
+ specials={ "char", 0x0430, 0x0306 },
+ uccode=0x04D0,
+ unicodeslot=0x04D1,
},
[0x04D2]={
- ["category"]="lu",
- ["contextname"]="cyrillicAdiaeresis",
- ["description"]="CYRILLIC CAPITAL LETTER A WITH DIAERESIS",
- ["lccode"]=0x04D3,
- ["linebreak"]="al",
- ["shcode"]=0x0410,
- ["specials"]={ "char", 0x0410, 0x0308 },
- ["unicodeslot"]=0x04D2, -- Ӓ
+ category="lu",
+ contextname="cyrillicAdiaeresis",
+ description="CYRILLIC CAPITAL LETTER A WITH DIAERESIS",
+ direction="l",
+ lccode=0x04D3,
+ linebreak="al",
+ shcode=0x0410,
+ specials={ "char", 0x0410, 0x0308 },
+ unicodeslot=0x04D2,
},
[0x04D3]={
- ["category"]="ll",
- ["contextname"]="cyrillicadiaeresis",
- ["description"]="CYRILLIC SMALL LETTER A WITH DIAERESIS",
- ["linebreak"]="al",
- ["shcode"]=0x0430,
- ["specials"]={ "char", 0x0430, 0x0308 },
- ["uccode"]=0x04D2,
- ["unicodeslot"]=0x04D3, -- ӓ
+ category="ll",
+ contextname="cyrillicadiaeresis",
+ description="CYRILLIC SMALL LETTER A WITH DIAERESIS",
+ direction="l",
+ linebreak="al",
+ shcode=0x0430,
+ specials={ "char", 0x0430, 0x0308 },
+ uccode=0x04D2,
+ unicodeslot=0x04D3,
},
[0x04D4]={
- ["category"]="lu",
- ["contextname"]="cyrillicAE",
- ["description"]="CYRILLIC CAPITAL LIGATURE A IE",
- ["lccode"]=0x04D5,
- ["linebreak"]="al",
- ["unicodeslot"]=0x04D4, -- Ӕ
+ category="lu",
+ contextname="cyrillicAE",
+ description="CYRILLIC CAPITAL LIGATURE A IE",
+ direction="l",
+ lccode=0x04D5,
+ linebreak="al",
+ unicodeslot=0x04D4,
},
[0x04D5]={
- ["category"]="ll",
- ["contextname"]="cyrillicae",
- ["description"]="CYRILLIC SMALL LIGATURE A IE",
- ["linebreak"]="al",
- ["uccode"]=0x04D4,
- ["unicodeslot"]=0x04D5, -- ӕ
+ category="ll",
+ contextname="cyrillicae",
+ description="CYRILLIC SMALL LIGATURE A IE",
+ direction="l",
+ linebreak="al",
+ uccode=0x04D4,
+ unicodeslot=0x04D5,
},
[0x04D6]={
- ["category"]="lu",
- ["contextname"]="cyrillicEbreve",
- ["description"]="CYRILLIC CAPITAL LETTER IE WITH BREVE",
- ["lccode"]=0x04D7,
- ["linebreak"]="al",
- ["shcode"]=0x0415,
- ["specials"]={ "char", 0x0415, 0x0306 },
- ["unicodeslot"]=0x04D6, -- Ӗ
+ category="lu",
+ contextname="cyrillicEbreve",
+ description="CYRILLIC CAPITAL LETTER IE WITH BREVE",
+ direction="l",
+ lccode=0x04D7,
+ linebreak="al",
+ shcode=0x0415,
+ specials={ "char", 0x0415, 0x0306 },
+ unicodeslot=0x04D6,
},
[0x04D7]={
- ["category"]="ll",
- ["contextname"]="cyrillicebreve",
- ["description"]="CYRILLIC SMALL LETTER IE WITH BREVE",
- ["linebreak"]="al",
- ["shcode"]=0x0435,
- ["specials"]={ "char", 0x0435, 0x0306 },
- ["uccode"]=0x04D6,
- ["unicodeslot"]=0x04D7, -- ӗ
+ category="ll",
+ contextname="cyrillicebreve",
+ description="CYRILLIC SMALL LETTER IE WITH BREVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0435,
+ specials={ "char", 0x0435, 0x0306 },
+ uccode=0x04D6,
+ unicodeslot=0x04D7,
},
[0x04D8]={
- ["category"]="lu",
- ["contextname"]="cyrillicSCHWA",
- ["description"]="CYRILLIC CAPITAL LETTER SCHWA",
- ["lccode"]=0x04D9,
- ["linebreak"]="al",
- ["unicodeslot"]=0x04D8, -- Ә
+ category="lu",
+ contextname="cyrillicSCHWA",
+ description="CYRILLIC CAPITAL LETTER SCHWA",
+ direction="l",
+ lccode=0x04D9,
+ linebreak="al",
+ unicodeslot=0x04D8,
},
[0x04D9]={
- ["adobename"]="afii10846",
- ["category"]="ll",
- ["contextname"]="cyrillicschwa",
- ["description"]="CYRILLIC SMALL LETTER SCHWA",
- ["linebreak"]="al",
- ["uccode"]=0x04D8,
- ["unicodeslot"]=0x04D9, -- ә
+ adobename="afii10846",
+ category="ll",
+ contextname="cyrillicschwa",
+ description="CYRILLIC SMALL LETTER SCHWA",
+ direction="l",
+ linebreak="al",
+ uccode=0x04D8,
+ unicodeslot=0x04D9,
},
[0x04DA]={
- ["category"]="lu",
- ["contextname"]="cyrillicSCHWAdiaeresis",
- ["description"]="CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS",
- ["lccode"]=0x04DB,
- ["linebreak"]="al",
- ["shcode"]=0x04D8,
- ["specials"]={ "char", 0x04D8, 0x0308 },
- ["unicodeslot"]=0x04DA, -- Ӛ
+ category="lu",
+ contextname="cyrillicSCHWAdiaeresis",
+ description="CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS",
+ direction="l",
+ lccode=0x04DB,
+ linebreak="al",
+ shcode=0x04D8,
+ specials={ "char", 0x04D8, 0x0308 },
+ unicodeslot=0x04DA,
},
[0x04DB]={
- ["category"]="ll",
- ["contextname"]="cyrillicschwadiaeresis",
- ["description"]="CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS",
- ["linebreak"]="al",
- ["shcode"]=0x04D9,
- ["specials"]={ "char", 0x04D9, 0x0308 },
- ["uccode"]=0x04DA,
- ["unicodeslot"]=0x04DB, -- ӛ
+ category="ll",
+ contextname="cyrillicschwadiaeresis",
+ description="CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS",
+ direction="l",
+ linebreak="al",
+ shcode=0x04D9,
+ specials={ "char", 0x04D9, 0x0308 },
+ uccode=0x04DA,
+ unicodeslot=0x04DB,
},
[0x04DC]={
- ["category"]="lu",
- ["contextname"]="cyrillicZHEdiaeresis",
- ["description"]="CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS",
- ["lccode"]=0x04DD,
- ["linebreak"]="al",
- ["shcode"]=0x0416,
- ["specials"]={ "char", 0x0416, 0x0308 },
- ["unicodeslot"]=0x04DC, -- Ӝ
+ category="lu",
+ contextname="cyrillicZHEdiaeresis",
+ description="CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS",
+ direction="l",
+ lccode=0x04DD,
+ linebreak="al",
+ shcode=0x0416,
+ specials={ "char", 0x0416, 0x0308 },
+ unicodeslot=0x04DC,
},
[0x04DD]={
- ["category"]="ll",
- ["contextname"]="cyrilliczhediaeresis",
- ["description"]="CYRILLIC SMALL LETTER ZHE WITH DIAERESIS",
- ["linebreak"]="al",
- ["shcode"]=0x0436,
- ["specials"]={ "char", 0x0436, 0x0308 },
- ["uccode"]=0x04DC,
- ["unicodeslot"]=0x04DD, -- ӝ
+ category="ll",
+ contextname="cyrilliczhediaeresis",
+ description="CYRILLIC SMALL LETTER ZHE WITH DIAERESIS",
+ direction="l",
+ linebreak="al",
+ shcode=0x0436,
+ specials={ "char", 0x0436, 0x0308 },
+ uccode=0x04DC,
+ unicodeslot=0x04DD,
},
[0x04DE]={
- ["category"]="lu",
- ["contextname"]="cyrillicZEdiaeresis",
- ["description"]="CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS",
- ["lccode"]=0x04DF,
- ["linebreak"]="al",
- ["shcode"]=0x0417,
- ["specials"]={ "char", 0x0417, 0x0308 },
- ["unicodeslot"]=0x04DE, -- Ӟ
+ category="lu",
+ contextname="cyrillicZEdiaeresis",
+ description="CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS",
+ direction="l",
+ lccode=0x04DF,
+ linebreak="al",
+ shcode=0x0417,
+ specials={ "char", 0x0417, 0x0308 },
+ unicodeslot=0x04DE,
},
[0x04DF]={
- ["category"]="ll",
- ["contextname"]="cyrilliczediaeresis",
- ["description"]="CYRILLIC SMALL LETTER ZE WITH DIAERESIS",
- ["linebreak"]="al",
- ["shcode"]=0x0437,
- ["specials"]={ "char", 0x0437, 0x0308 },
- ["uccode"]=0x04DE,
- ["unicodeslot"]=0x04DF, -- ӟ
+ category="ll",
+ contextname="cyrilliczediaeresis",
+ description="CYRILLIC SMALL LETTER ZE WITH DIAERESIS",
+ direction="l",
+ linebreak="al",
+ shcode=0x0437,
+ specials={ "char", 0x0437, 0x0308 },
+ uccode=0x04DE,
+ unicodeslot=0x04DF,
},
[0x04E0]={
- ["category"]="lu",
- ["contextname"]="cyrillicDZEabkhasian",
- ["description"]="CYRILLIC CAPITAL LETTER ABKHASIAN DZE",
- ["lccode"]=0x04E1,
- ["linebreak"]="al",
- ["unicodeslot"]=0x04E0, -- Ӡ
+ category="lu",
+ contextname="cyrillicDZEabkhasian",
+ description="CYRILLIC CAPITAL LETTER ABKHASIAN DZE",
+ direction="l",
+ lccode=0x04E1,
+ linebreak="al",
+ unicodeslot=0x04E0,
},
[0x04E1]={
- ["category"]="ll",
- ["contextname"]="cyrillicdzeabkhasian",
- ["description"]="CYRILLIC SMALL LETTER ABKHASIAN DZE",
- ["linebreak"]="al",
- ["uccode"]=0x04E0,
- ["unicodeslot"]=0x04E1, -- ӡ
+ category="ll",
+ contextname="cyrillicdzeabkhasian",
+ description="CYRILLIC SMALL LETTER ABKHASIAN DZE",
+ direction="l",
+ linebreak="al",
+ uccode=0x04E0,
+ unicodeslot=0x04E1,
},
[0x04E2]={
- ["category"]="lu",
- ["contextname"]="cyrillicImacron",
- ["description"]="CYRILLIC CAPITAL LETTER I WITH MACRON",
- ["lccode"]=0x04E3,
- ["linebreak"]="al",
- ["shcode"]=0x0418,
- ["specials"]={ "char", 0x0418, 0x0304 },
- ["unicodeslot"]=0x04E2, -- Ӣ
+ category="lu",
+ contextname="cyrillicImacron",
+ description="CYRILLIC CAPITAL LETTER I WITH MACRON",
+ direction="l",
+ lccode=0x04E3,
+ linebreak="al",
+ shcode=0x0418,
+ specials={ "char", 0x0418, 0x0304 },
+ unicodeslot=0x04E2,
},
[0x04E3]={
- ["category"]="ll",
- ["contextname"]="cyrillicimacron",
- ["description"]="CYRILLIC SMALL LETTER I WITH MACRON",
- ["linebreak"]="al",
- ["shcode"]=0x0438,
- ["specials"]={ "char", 0x0438, 0x0304 },
- ["uccode"]=0x04E2,
- ["unicodeslot"]=0x04E3, -- ӣ
+ category="ll",
+ contextname="cyrillicimacron",
+ description="CYRILLIC SMALL LETTER I WITH MACRON",
+ direction="l",
+ linebreak="al",
+ shcode=0x0438,
+ specials={ "char", 0x0438, 0x0304 },
+ uccode=0x04E2,
+ unicodeslot=0x04E3,
},
[0x04E4]={
- ["category"]="lu",
- ["contextname"]="cyrillicIdiaeresis",
- ["description"]="CYRILLIC CAPITAL LETTER I WITH DIAERESIS",
- ["lccode"]=0x04E5,
- ["linebreak"]="al",
- ["shcode"]=0x0418,
- ["specials"]={ "char", 0x0418, 0x0308 },
- ["unicodeslot"]=0x04E4, -- Ӥ
+ category="lu",
+ contextname="cyrillicIdiaeresis",
+ description="CYRILLIC CAPITAL LETTER I WITH DIAERESIS",
+ direction="l",
+ lccode=0x04E5,
+ linebreak="al",
+ shcode=0x0418,
+ specials={ "char", 0x0418, 0x0308 },
+ unicodeslot=0x04E4,
},
[0x04E5]={
- ["category"]="ll",
- ["contextname"]="cyrillicidiaeresis",
- ["description"]="CYRILLIC SMALL LETTER I WITH DIAERESIS",
- ["linebreak"]="al",
- ["shcode"]=0x0438,
- ["specials"]={ "char", 0x0438, 0x0308 },
- ["uccode"]=0x04E4,
- ["unicodeslot"]=0x04E5, -- ӥ
+ category="ll",
+ contextname="cyrillicidiaeresis",
+ description="CYRILLIC SMALL LETTER I WITH DIAERESIS",
+ direction="l",
+ linebreak="al",
+ shcode=0x0438,
+ specials={ "char", 0x0438, 0x0308 },
+ uccode=0x04E4,
+ unicodeslot=0x04E5,
},
[0x04E6]={
- ["category"]="lu",
- ["contextname"]="cyrillicOdiaeresis",
- ["description"]="CYRILLIC CAPITAL LETTER O WITH DIAERESIS",
- ["lccode"]=0x04E7,
- ["linebreak"]="al",
- ["shcode"]=0x041E,
- ["specials"]={ "char", 0x041E, 0x0308 },
- ["unicodeslot"]=0x04E6, -- Ӧ
+ category="lu",
+ contextname="cyrillicOdiaeresis",
+ description="CYRILLIC CAPITAL LETTER O WITH DIAERESIS",
+ direction="l",
+ lccode=0x04E7,
+ linebreak="al",
+ shcode=0x041E,
+ specials={ "char", 0x041E, 0x0308 },
+ unicodeslot=0x04E6,
},
[0x04E7]={
- ["category"]="ll",
- ["contextname"]="cyrillicodiaeresis",
- ["description"]="CYRILLIC SMALL LETTER O WITH DIAERESIS",
- ["linebreak"]="al",
- ["shcode"]=0x043E,
- ["specials"]={ "char", 0x043E, 0x0308 },
- ["uccode"]=0x04E6,
- ["unicodeslot"]=0x04E7, -- ӧ
+ category="ll",
+ contextname="cyrillicodiaeresis",
+ description="CYRILLIC SMALL LETTER O WITH DIAERESIS",
+ direction="l",
+ linebreak="al",
+ shcode=0x043E,
+ specials={ "char", 0x043E, 0x0308 },
+ uccode=0x04E6,
+ unicodeslot=0x04E7,
},
[0x04E8]={
- ["category"]="lu",
- ["contextname"]="cyrillicObarred",
- ["description"]="CYRILLIC CAPITAL LETTER BARRED O",
- ["lccode"]=0x04E9,
- ["linebreak"]="al",
- ["unicodeslot"]=0x04E8, -- Ө
+ category="lu",
+ contextname="cyrillicObarred",
+ description="CYRILLIC CAPITAL LETTER BARRED O",
+ direction="l",
+ lccode=0x04E9,
+ linebreak="al",
+ unicodeslot=0x04E8,
},
[0x04E9]={
- ["category"]="ll",
- ["contextname"]="cyrillicobarred",
- ["description"]="CYRILLIC SMALL LETTER BARRED O",
- ["linebreak"]="al",
- ["uccode"]=0x04E8,
- ["unicodeslot"]=0x04E9, -- ө
+ category="ll",
+ contextname="cyrillicobarred",
+ description="CYRILLIC SMALL LETTER BARRED O",
+ direction="l",
+ linebreak="al",
+ uccode=0x04E8,
+ unicodeslot=0x04E9,
},
[0x04EA]={
- ["category"]="lu",
- ["contextname"]="cyrillicObarreddiaeresis",
- ["description"]="CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS",
- ["lccode"]=0x04EB,
- ["linebreak"]="al",
- ["specials"]={ "char", 0x04E8, 0x0308 },
- ["unicodeslot"]=0x04EA, -- Ӫ
+ category="lu",
+ contextname="cyrillicObarreddiaeresis",
+ description="CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS",
+ direction="l",
+ lccode=0x04EB,
+ linebreak="al",
+ specials={ "char", 0x04E8, 0x0308 },
+ unicodeslot=0x04EA,
},
[0x04EB]={
- ["category"]="ll",
- ["contextname"]="cyrillicobarreddiaeresis",
- ["description"]="CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x04E9, 0x0308 },
- ["uccode"]=0x04EA,
- ["unicodeslot"]=0x04EB, -- ӫ
+ category="ll",
+ contextname="cyrillicobarreddiaeresis",
+ description="CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS",
+ direction="l",
+ linebreak="al",
+ specials={ "char", 0x04E9, 0x0308 },
+ uccode=0x04EA,
+ unicodeslot=0x04EB,
},
[0x04EC]={
- ["category"]="lu",
- ["contextname"]="cyrillicEdiaeresis",
- ["description"]="CYRILLIC CAPITAL LETTER E WITH DIAERESIS",
- ["lccode"]=0x04ED,
- ["linebreak"]="al",
- ["shcode"]=0x042D,
- ["specials"]={ "char", 0x042D, 0x0308 },
- ["unicodeslot"]=0x04EC, -- Ӭ
+ category="lu",
+ contextname="cyrillicEdiaeresis",
+ description="CYRILLIC CAPITAL LETTER E WITH DIAERESIS",
+ direction="l",
+ lccode=0x04ED,
+ linebreak="al",
+ shcode=0x042D,
+ specials={ "char", 0x042D, 0x0308 },
+ unicodeslot=0x04EC,
},
[0x04ED]={
- ["category"]="ll",
- ["contextname"]="cyrillicediaeresis",
- ["description"]="CYRILLIC SMALL LETTER E WITH DIAERESIS",
- ["linebreak"]="al",
- ["shcode"]=0x044D,
- ["specials"]={ "char", 0x044D, 0x0308 },
- ["uccode"]=0x04EC,
- ["unicodeslot"]=0x04ED, -- ӭ
+ category="ll",
+ contextname="cyrillicediaeresis",
+ description="CYRILLIC SMALL LETTER E WITH DIAERESIS",
+ direction="l",
+ linebreak="al",
+ shcode=0x044D,
+ specials={ "char", 0x044D, 0x0308 },
+ uccode=0x04EC,
+ unicodeslot=0x04ED,
},
[0x04EE]={
- ["category"]="lu",
- ["contextname"]="cyrillicUmacron",
- ["description"]="CYRILLIC CAPITAL LETTER U WITH MACRON",
- ["lccode"]=0x04EF,
- ["linebreak"]="al",
- ["shcode"]=0x0423,
- ["specials"]={ "char", 0x0423, 0x0304 },
- ["unicodeslot"]=0x04EE, -- Ӯ
+ category="lu",
+ contextname="cyrillicUmacron",
+ description="CYRILLIC CAPITAL LETTER U WITH MACRON",
+ direction="l",
+ lccode=0x04EF,
+ linebreak="al",
+ shcode=0x0423,
+ specials={ "char", 0x0423, 0x0304 },
+ unicodeslot=0x04EE,
},
[0x04EF]={
- ["category"]="ll",
- ["contextname"]="cyrillicumacron",
- ["description"]="CYRILLIC SMALL LETTER U WITH MACRON",
- ["linebreak"]="al",
- ["shcode"]=0x0443,
- ["specials"]={ "char", 0x0443, 0x0304 },
- ["uccode"]=0x04EE,
- ["unicodeslot"]=0x04EF, -- ӯ
+ category="ll",
+ contextname="cyrillicumacron",
+ description="CYRILLIC SMALL LETTER U WITH MACRON",
+ direction="l",
+ linebreak="al",
+ shcode=0x0443,
+ specials={ "char", 0x0443, 0x0304 },
+ uccode=0x04EE,
+ unicodeslot=0x04EF,
},
[0x04F0]={
- ["category"]="lu",
- ["contextname"]="cyrillicUdiaeresis",
- ["description"]="CYRILLIC CAPITAL LETTER U WITH DIAERESIS",
- ["lccode"]=0x04F1,
- ["linebreak"]="al",
- ["shcode"]=0x0423,
- ["specials"]={ "char", 0x0423, 0x0308 },
- ["unicodeslot"]=0x04F0, -- Ӱ
+ category="lu",
+ contextname="cyrillicUdiaeresis",
+ description="CYRILLIC CAPITAL LETTER U WITH DIAERESIS",
+ direction="l",
+ lccode=0x04F1,
+ linebreak="al",
+ shcode=0x0423,
+ specials={ "char", 0x0423, 0x0308 },
+ unicodeslot=0x04F0,
},
[0x04F1]={
- ["category"]="ll",
- ["contextname"]="cyrillicudiaeresis",
- ["description"]="CYRILLIC SMALL LETTER U WITH DIAERESIS",
- ["linebreak"]="al",
- ["shcode"]=0x0443,
- ["specials"]={ "char", 0x0443, 0x0308 },
- ["uccode"]=0x04F0,
- ["unicodeslot"]=0x04F1, -- ӱ
+ category="ll",
+ contextname="cyrillicudiaeresis",
+ description="CYRILLIC SMALL LETTER U WITH DIAERESIS",
+ direction="l",
+ linebreak="al",
+ shcode=0x0443,
+ specials={ "char", 0x0443, 0x0308 },
+ uccode=0x04F0,
+ unicodeslot=0x04F1,
},
[0x04F2]={
- ["category"]="lu",
- ["contextname"]="cyrillicUdoubleacute",
- ["description"]="CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE",
- ["lccode"]=0x04F3,
- ["linebreak"]="al",
- ["shcode"]=0x0423,
- ["specials"]={ "char", 0x0423, 0x030B },
- ["unicodeslot"]=0x04F2, -- Ӳ
+ category="lu",
+ contextname="cyrillicUdoubleacute",
+ description="CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE",
+ direction="l",
+ lccode=0x04F3,
+ linebreak="al",
+ shcode=0x0423,
+ specials={ "char", 0x0423, 0x030B },
+ unicodeslot=0x04F2,
},
[0x04F3]={
- ["category"]="ll",
- ["contextname"]="cyrillicudoubleacute",
- ["description"]="CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE",
- ["linebreak"]="al",
- ["shcode"]=0x0443,
- ["specials"]={ "char", 0x0443, 0x030B },
- ["uccode"]=0x04F2,
- ["unicodeslot"]=0x04F3, -- ӳ
+ category="ll",
+ contextname="cyrillicudoubleacute",
+ description="CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0443,
+ specials={ "char", 0x0443, 0x030B },
+ uccode=0x04F2,
+ unicodeslot=0x04F3,
},
[0x04F4]={
- ["category"]="lu",
- ["contextname"]="cyrillicCHEdiaeresis",
- ["description"]="CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS",
- ["lccode"]=0x04F5,
- ["linebreak"]="al",
- ["shcode"]=0x0427,
- ["specials"]={ "char", 0x0427, 0x0308 },
- ["unicodeslot"]=0x04F4, -- Ӵ
+ category="lu",
+ contextname="cyrillicCHEdiaeresis",
+ description="CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS",
+ direction="l",
+ lccode=0x04F5,
+ linebreak="al",
+ shcode=0x0427,
+ specials={ "char", 0x0427, 0x0308 },
+ unicodeslot=0x04F4,
},
[0x04F5]={
- ["category"]="ll",
- ["contextname"]="cyrillicchediaeresis",
- ["description"]="CYRILLIC SMALL LETTER CHE WITH DIAERESIS",
- ["linebreak"]="al",
- ["shcode"]=0x0447,
- ["specials"]={ "char", 0x0447, 0x0308 },
- ["uccode"]=0x04F4,
- ["unicodeslot"]=0x04F5, -- ӵ
+ category="ll",
+ contextname="cyrillicchediaeresis",
+ description="CYRILLIC SMALL LETTER CHE WITH DIAERESIS",
+ direction="l",
+ linebreak="al",
+ shcode=0x0447,
+ specials={ "char", 0x0447, 0x0308 },
+ uccode=0x04F4,
+ unicodeslot=0x04F5,
},
[0x04F6]={
- ["category"]="lu",
- ["description"]="CYRILLIC CAPITAL LETTER GHE WITH DESCENDER",
- ["lccode"]=0x04F7,
- ["linebreak"]="al",
- ["shcode"]=0x0413,
- ["unicodeslot"]=0x04F6, -- Ӷ
+ category="lu",
+ description="CYRILLIC CAPITAL LETTER GHE WITH DESCENDER",
+ direction="l",
+ lccode=0x04F7,
+ linebreak="al",
+ shcode=0x0413,
+ unicodeslot=0x04F6,
},
[0x04F7]={
- ["category"]="ll",
- ["description"]="CYRILLIC SMALL LETTER GHE WITH DESCENDER",
- ["linebreak"]="al",
- ["shcode"]=0x0433,
- ["uccode"]=0x04F6,
- ["unicodeslot"]=0x04F7, -- ӷ
+ category="ll",
+ description="CYRILLIC SMALL LETTER GHE WITH DESCENDER",
+ direction="l",
+ linebreak="al",
+ shcode=0x0433,
+ uccode=0x04F6,
+ unicodeslot=0x04F7,
},
[0x04F8]={
- ["category"]="lu",
- ["contextname"]="cyrillicYERUdiaeresis",
- ["description"]="CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS",
- ["lccode"]=0x04F9,
- ["linebreak"]="al",
- ["shcode"]=0x042B,
- ["specials"]={ "char", 0x042B, 0x0308 },
- ["unicodeslot"]=0x04F8, -- Ӹ
+ category="lu",
+ contextname="cyrillicYERUdiaeresis",
+ description="CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS",
+ direction="l",
+ lccode=0x04F9,
+ linebreak="al",
+ shcode=0x042B,
+ specials={ "char", 0x042B, 0x0308 },
+ unicodeslot=0x04F8,
},
[0x04F9]={
- ["category"]="ll",
- ["contextname"]="cyrillicyerudiaeresis",
- ["description"]="CYRILLIC SMALL LETTER YERU WITH DIAERESIS",
- ["linebreak"]="al",
- ["shcode"]=0x044B,
- ["specials"]={ "char", 0x044B, 0x0308 },
- ["uccode"]=0x04F8,
- ["unicodeslot"]=0x04F9, -- ӹ
+ category="ll",
+ contextname="cyrillicyerudiaeresis",
+ description="CYRILLIC SMALL LETTER YERU WITH DIAERESIS",
+ direction="l",
+ linebreak="al",
+ shcode=0x044B,
+ specials={ "char", 0x044B, 0x0308 },
+ uccode=0x04F8,
+ unicodeslot=0x04F9,
},
[0x04FA]={
- ["category"]="lu",
- ["description"]="CYRILLIC CAPITAL LETTER GHE WITH STROKE AND HOOK",
- ["lccode"]=0x04FB,
- ["linebreak"]="al",
- ["shcode"]=0x0413,
- ["unicodeslot"]=0x04FA, -- Ӻ
+ category="lu",
+ description="CYRILLIC CAPITAL LETTER GHE WITH STROKE AND HOOK",
+ direction="l",
+ lccode=0x04FB,
+ linebreak="al",
+ shcode=0x0413,
+ unicodeslot=0x04FA,
},
[0x04FB]={
- ["category"]="ll",
- ["description"]="CYRILLIC SMALL LETTER GHE WITH STROKE AND HOOK",
- ["linebreak"]="al",
- ["shcode"]=0x0433,
- ["uccode"]=0x04FA,
- ["unicodeslot"]=0x04FB, -- ӻ
+ category="ll",
+ description="CYRILLIC SMALL LETTER GHE WITH STROKE AND HOOK",
+ direction="l",
+ linebreak="al",
+ shcode=0x0433,
+ uccode=0x04FA,
+ unicodeslot=0x04FB,
},
[0x04FC]={
- ["category"]="lu",
- ["description"]="CYRILLIC CAPITAL LETTER HA WITH HOOK",
- ["lccode"]=0x04FD,
- ["linebreak"]="al",
- ["shcode"]=0x0425,
- ["unicodeslot"]=0x04FC, -- Ӽ
+ category="lu",
+ description="CYRILLIC CAPITAL LETTER HA WITH HOOK",
+ direction="l",
+ lccode=0x04FD,
+ linebreak="al",
+ shcode=0x0425,
+ unicodeslot=0x04FC,
},
[0x04FD]={
- ["category"]="ll",
- ["description"]="CYRILLIC SMALL LETTER HA WITH HOOK",
- ["linebreak"]="al",
- ["shcode"]=0x0445,
- ["uccode"]=0x04FC,
- ["unicodeslot"]=0x04FD, -- ӽ
+ category="ll",
+ description="CYRILLIC SMALL LETTER HA WITH HOOK",
+ direction="l",
+ linebreak="al",
+ shcode=0x0445,
+ uccode=0x04FC,
+ unicodeslot=0x04FD,
},
[0x04FE]={
- ["category"]="lu",
- ["description"]="CYRILLIC CAPITAL LETTER HA WITH STROKE",
- ["lccode"]=0x04FF,
- ["linebreak"]="al",
- ["shcode"]=0x0425,
- ["unicodeslot"]=0x04FE, -- Ӿ
+ category="lu",
+ description="CYRILLIC CAPITAL LETTER HA WITH STROKE",
+ direction="l",
+ lccode=0x04FF,
+ linebreak="al",
+ shcode=0x0425,
+ unicodeslot=0x04FE,
},
[0x04FF]={
- ["category"]="ll",
- ["description"]="CYRILLIC SMALL LETTER HA WITH STROKE",
- ["linebreak"]="al",
- ["shcode"]=0x0445,
- ["uccode"]=0x04FE,
- ["unicodeslot"]=0x04FF, -- ӿ
+ category="ll",
+ description="CYRILLIC SMALL LETTER HA WITH STROKE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0445,
+ uccode=0x04FE,
+ unicodeslot=0x04FF,
},
[0x0500]={
- ["category"]="lu",
- ["description"]="CYRILLIC CAPITAL LETTER KOMI DE",
- ["lccode"]=0x0501,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0500, -- Ԁ
+ category="lu",
+ description="CYRILLIC CAPITAL LETTER KOMI DE",
+ direction="l",
+ lccode=0x0501,
+ linebreak="al",
+ unicodeslot=0x0500,
},
[0x0501]={
- ["category"]="ll",
- ["description"]="CYRILLIC SMALL LETTER KOMI DE",
- ["linebreak"]="al",
- ["uccode"]=0x0500,
- ["unicodeslot"]=0x0501, -- ԁ
+ category="ll",
+ description="CYRILLIC SMALL LETTER KOMI DE",
+ direction="l",
+ linebreak="al",
+ uccode=0x0500,
+ unicodeslot=0x0501,
},
[0x0502]={
- ["category"]="lu",
- ["description"]="CYRILLIC CAPITAL LETTER KOMI DJE",
- ["lccode"]=0x0503,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0502, -- Ԃ
+ category="lu",
+ description="CYRILLIC CAPITAL LETTER KOMI DJE",
+ direction="l",
+ lccode=0x0503,
+ linebreak="al",
+ unicodeslot=0x0502,
},
[0x0503]={
- ["category"]="ll",
- ["description"]="CYRILLIC SMALL LETTER KOMI DJE",
- ["linebreak"]="al",
- ["uccode"]=0x0502,
- ["unicodeslot"]=0x0503, -- ԃ
+ category="ll",
+ description="CYRILLIC SMALL LETTER KOMI DJE",
+ direction="l",
+ linebreak="al",
+ uccode=0x0502,
+ unicodeslot=0x0503,
},
[0x0504]={
- ["category"]="lu",
- ["description"]="CYRILLIC CAPITAL LETTER KOMI ZJE",
- ["lccode"]=0x0505,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0504, -- Ԅ
+ category="lu",
+ description="CYRILLIC CAPITAL LETTER KOMI ZJE",
+ direction="l",
+ lccode=0x0505,
+ linebreak="al",
+ unicodeslot=0x0504,
},
[0x0505]={
- ["category"]="ll",
- ["description"]="CYRILLIC SMALL LETTER KOMI ZJE",
- ["linebreak"]="al",
- ["uccode"]=0x0504,
- ["unicodeslot"]=0x0505, -- ԅ
+ category="ll",
+ description="CYRILLIC SMALL LETTER KOMI ZJE",
+ direction="l",
+ linebreak="al",
+ uccode=0x0504,
+ unicodeslot=0x0505,
},
[0x0506]={
- ["category"]="lu",
- ["description"]="CYRILLIC CAPITAL LETTER KOMI DZJE",
- ["lccode"]=0x0507,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0506, -- Ԇ
+ category="lu",
+ description="CYRILLIC CAPITAL LETTER KOMI DZJE",
+ direction="l",
+ lccode=0x0507,
+ linebreak="al",
+ unicodeslot=0x0506,
},
[0x0507]={
- ["category"]="ll",
- ["description"]="CYRILLIC SMALL LETTER KOMI DZJE",
- ["linebreak"]="al",
- ["uccode"]=0x0506,
- ["unicodeslot"]=0x0507, -- ԇ
+ category="ll",
+ description="CYRILLIC SMALL LETTER KOMI DZJE",
+ direction="l",
+ linebreak="al",
+ uccode=0x0506,
+ unicodeslot=0x0507,
},
[0x0508]={
- ["category"]="lu",
- ["description"]="CYRILLIC CAPITAL LETTER KOMI LJE",
- ["lccode"]=0x0509,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0508, -- Ԉ
+ category="lu",
+ description="CYRILLIC CAPITAL LETTER KOMI LJE",
+ direction="l",
+ lccode=0x0509,
+ linebreak="al",
+ unicodeslot=0x0508,
},
[0x0509]={
- ["category"]="ll",
- ["description"]="CYRILLIC SMALL LETTER KOMI LJE",
- ["linebreak"]="al",
- ["uccode"]=0x0508,
- ["unicodeslot"]=0x0509, -- ԉ
+ category="ll",
+ description="CYRILLIC SMALL LETTER KOMI LJE",
+ direction="l",
+ linebreak="al",
+ uccode=0x0508,
+ unicodeslot=0x0509,
},
[0x050A]={
- ["category"]="lu",
- ["description"]="CYRILLIC CAPITAL LETTER KOMI NJE",
- ["lccode"]=0x050B,
- ["linebreak"]="al",
- ["unicodeslot"]=0x050A, -- Ԋ
+ category="lu",
+ description="CYRILLIC CAPITAL LETTER KOMI NJE",
+ direction="l",
+ lccode=0x050B,
+ linebreak="al",
+ unicodeslot=0x050A,
},
[0x050B]={
- ["category"]="ll",
- ["description"]="CYRILLIC SMALL LETTER KOMI NJE",
- ["linebreak"]="al",
- ["uccode"]=0x050A,
- ["unicodeslot"]=0x050B, -- ԋ
+ category="ll",
+ description="CYRILLIC SMALL LETTER KOMI NJE",
+ direction="l",
+ linebreak="al",
+ uccode=0x050A,
+ unicodeslot=0x050B,
},
[0x050C]={
- ["category"]="lu",
- ["description"]="CYRILLIC CAPITAL LETTER KOMI SJE",
- ["lccode"]=0x050D,
- ["linebreak"]="al",
- ["unicodeslot"]=0x050C, -- Ԍ
+ category="lu",
+ description="CYRILLIC CAPITAL LETTER KOMI SJE",
+ direction="l",
+ lccode=0x050D,
+ linebreak="al",
+ unicodeslot=0x050C,
},
[0x050D]={
- ["category"]="ll",
- ["description"]="CYRILLIC SMALL LETTER KOMI SJE",
- ["linebreak"]="al",
- ["uccode"]=0x050C,
- ["unicodeslot"]=0x050D, -- ԍ
+ category="ll",
+ description="CYRILLIC SMALL LETTER KOMI SJE",
+ direction="l",
+ linebreak="al",
+ uccode=0x050C,
+ unicodeslot=0x050D,
},
[0x050E]={
- ["category"]="lu",
- ["description"]="CYRILLIC CAPITAL LETTER KOMI TJE",
- ["lccode"]=0x050F,
- ["linebreak"]="al",
- ["unicodeslot"]=0x050E, -- Ԏ
+ category="lu",
+ description="CYRILLIC CAPITAL LETTER KOMI TJE",
+ direction="l",
+ lccode=0x050F,
+ linebreak="al",
+ unicodeslot=0x050E,
},
[0x050F]={
- ["category"]="ll",
- ["description"]="CYRILLIC SMALL LETTER KOMI TJE",
- ["linebreak"]="al",
- ["uccode"]=0x050E,
- ["unicodeslot"]=0x050F, -- ԏ
+ category="ll",
+ description="CYRILLIC SMALL LETTER KOMI TJE",
+ direction="l",
+ linebreak="al",
+ uccode=0x050E,
+ unicodeslot=0x050F,
},
[0x0510]={
- ["category"]="lu",
- ["description"]="CYRILLIC CAPITAL LETTER REVERSED ZE",
- ["lccode"]=0x0511,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0510, -- Ԑ
+ category="lu",
+ description="CYRILLIC CAPITAL LETTER REVERSED ZE",
+ direction="l",
+ lccode=0x0511,
+ linebreak="al",
+ unicodeslot=0x0510,
},
[0x0511]={
- ["category"]="ll",
- ["description"]="CYRILLIC SMALL LETTER REVERSED ZE",
- ["linebreak"]="al",
- ["uccode"]=0x0510,
- ["unicodeslot"]=0x0511, -- ԑ
+ category="ll",
+ description="CYRILLIC SMALL LETTER REVERSED ZE",
+ direction="l",
+ linebreak="al",
+ uccode=0x0510,
+ unicodeslot=0x0511,
},
[0x0512]={
- ["category"]="lu",
- ["description"]="CYRILLIC CAPITAL LETTER EL WITH HOOK",
- ["lccode"]=0x0513,
- ["linebreak"]="al",
- ["shcode"]=0x041B,
- ["unicodeslot"]=0x0512, -- Ԓ
+ category="lu",
+ description="CYRILLIC CAPITAL LETTER EL WITH HOOK",
+ direction="l",
+ lccode=0x0513,
+ linebreak="al",
+ shcode=0x041B,
+ unicodeslot=0x0512,
},
[0x0513]={
- ["category"]="ll",
- ["description"]="CYRILLIC SMALL LETTER EL WITH HOOK",
- ["linebreak"]="al",
- ["shcode"]=0x043B,
- ["uccode"]=0x0512,
- ["unicodeslot"]=0x0513, -- ԓ
+ category="ll",
+ description="CYRILLIC SMALL LETTER EL WITH HOOK",
+ direction="l",
+ linebreak="al",
+ shcode=0x043B,
+ uccode=0x0512,
+ unicodeslot=0x0513,
},
[0x0531]={
- ["category"]="lu",
- ["description"]="ARMENIAN CAPITAL LETTER AYB",
- ["lccode"]=0x0561,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0531, -- Ա
+ category="lu",
+ description="ARMENIAN CAPITAL LETTER AYB",
+ direction="l",
+ lccode=0x0561,
+ linebreak="al",
+ unicodeslot=0x0531,
},
[0x0532]={
- ["category"]="lu",
- ["description"]="ARMENIAN CAPITAL LETTER BEN",
- ["lccode"]=0x0562,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0532, -- Բ
+ category="lu",
+ description="ARMENIAN CAPITAL LETTER BEN",
+ direction="l",
+ lccode=0x0562,
+ linebreak="al",
+ unicodeslot=0x0532,
},
[0x0533]={
- ["category"]="lu",
- ["description"]="ARMENIAN CAPITAL LETTER GIM",
- ["lccode"]=0x0563,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0533, -- Գ
+ category="lu",
+ description="ARMENIAN CAPITAL LETTER GIM",
+ direction="l",
+ lccode=0x0563,
+ linebreak="al",
+ unicodeslot=0x0533,
},
[0x0534]={
- ["category"]="lu",
- ["description"]="ARMENIAN CAPITAL LETTER DA",
- ["lccode"]=0x0564,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0534, -- Դ
+ category="lu",
+ description="ARMENIAN CAPITAL LETTER DA",
+ direction="l",
+ lccode=0x0564,
+ linebreak="al",
+ unicodeslot=0x0534,
},
[0x0535]={
- ["category"]="lu",
- ["description"]="ARMENIAN CAPITAL LETTER ECH",
- ["lccode"]=0x0565,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0535, -- Ե
+ category="lu",
+ description="ARMENIAN CAPITAL LETTER ECH",
+ direction="l",
+ lccode=0x0565,
+ linebreak="al",
+ unicodeslot=0x0535,
},
[0x0536]={
- ["category"]="lu",
- ["description"]="ARMENIAN CAPITAL LETTER ZA",
- ["lccode"]=0x0566,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0536, -- Զ
+ category="lu",
+ description="ARMENIAN CAPITAL LETTER ZA",
+ direction="l",
+ lccode=0x0566,
+ linebreak="al",
+ unicodeslot=0x0536,
},
[0x0537]={
- ["category"]="lu",
- ["description"]="ARMENIAN CAPITAL LETTER EH",
- ["lccode"]=0x0567,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0537, -- Է
+ category="lu",
+ description="ARMENIAN CAPITAL LETTER EH",
+ direction="l",
+ lccode=0x0567,
+ linebreak="al",
+ unicodeslot=0x0537,
},
[0x0538]={
- ["category"]="lu",
- ["description"]="ARMENIAN CAPITAL LETTER ET",
- ["lccode"]=0x0568,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0538, -- Ը
+ category="lu",
+ description="ARMENIAN CAPITAL LETTER ET",
+ direction="l",
+ lccode=0x0568,
+ linebreak="al",
+ unicodeslot=0x0538,
},
[0x0539]={
- ["category"]="lu",
- ["description"]="ARMENIAN CAPITAL LETTER TO",
- ["lccode"]=0x0569,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0539, -- Թ
+ category="lu",
+ description="ARMENIAN CAPITAL LETTER TO",
+ direction="l",
+ lccode=0x0569,
+ linebreak="al",
+ unicodeslot=0x0539,
},
[0x053A]={
- ["category"]="lu",
- ["description"]="ARMENIAN CAPITAL LETTER ZHE",
- ["lccode"]=0x056A,
- ["linebreak"]="al",
- ["unicodeslot"]=0x053A, -- Ժ
+ category="lu",
+ description="ARMENIAN CAPITAL LETTER ZHE",
+ direction="l",
+ lccode=0x056A,
+ linebreak="al",
+ unicodeslot=0x053A,
},
[0x053B]={
- ["category"]="lu",
- ["description"]="ARMENIAN CAPITAL LETTER INI",
- ["lccode"]=0x056B,
- ["linebreak"]="al",
- ["unicodeslot"]=0x053B, -- Ի
+ category="lu",
+ description="ARMENIAN CAPITAL LETTER INI",
+ direction="l",
+ lccode=0x056B,
+ linebreak="al",
+ unicodeslot=0x053B,
},
[0x053C]={
- ["category"]="lu",
- ["description"]="ARMENIAN CAPITAL LETTER LIWN",
- ["lccode"]=0x056C,
- ["linebreak"]="al",
- ["unicodeslot"]=0x053C, -- Լ
+ category="lu",
+ description="ARMENIAN CAPITAL LETTER LIWN",
+ direction="l",
+ lccode=0x056C,
+ linebreak="al",
+ unicodeslot=0x053C,
},
[0x053D]={
- ["category"]="lu",
- ["description"]="ARMENIAN CAPITAL LETTER XEH",
- ["lccode"]=0x056D,
- ["linebreak"]="al",
- ["unicodeslot"]=0x053D, -- Խ
+ category="lu",
+ description="ARMENIAN CAPITAL LETTER XEH",
+ direction="l",
+ lccode=0x056D,
+ linebreak="al",
+ unicodeslot=0x053D,
},
[0x053E]={
- ["category"]="lu",
- ["description"]="ARMENIAN CAPITAL LETTER CA",
- ["lccode"]=0x056E,
- ["linebreak"]="al",
- ["unicodeslot"]=0x053E, -- Ծ
+ category="lu",
+ description="ARMENIAN CAPITAL LETTER CA",
+ direction="l",
+ lccode=0x056E,
+ linebreak="al",
+ unicodeslot=0x053E,
},
[0x053F]={
- ["category"]="lu",
- ["description"]="ARMENIAN CAPITAL LETTER KEN",
- ["lccode"]=0x056F,
- ["linebreak"]="al",
- ["unicodeslot"]=0x053F, -- Կ
+ category="lu",
+ description="ARMENIAN CAPITAL LETTER KEN",
+ direction="l",
+ lccode=0x056F,
+ linebreak="al",
+ unicodeslot=0x053F,
},
[0x0540]={
- ["category"]="lu",
- ["description"]="ARMENIAN CAPITAL LETTER HO",
- ["lccode"]=0x0570,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0540, -- Հ
+ category="lu",
+ description="ARMENIAN CAPITAL LETTER HO",
+ direction="l",
+ lccode=0x0570,
+ linebreak="al",
+ unicodeslot=0x0540,
},
[0x0541]={
- ["category"]="lu",
- ["description"]="ARMENIAN CAPITAL LETTER JA",
- ["lccode"]=0x0571,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0541, -- Ձ
+ category="lu",
+ description="ARMENIAN CAPITAL LETTER JA",
+ direction="l",
+ lccode=0x0571,
+ linebreak="al",
+ unicodeslot=0x0541,
},
[0x0542]={
- ["category"]="lu",
- ["description"]="ARMENIAN CAPITAL LETTER GHAD",
- ["lccode"]=0x0572,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0542, -- Ղ
+ category="lu",
+ description="ARMENIAN CAPITAL LETTER GHAD",
+ direction="l",
+ lccode=0x0572,
+ linebreak="al",
+ unicodeslot=0x0542,
},
[0x0543]={
- ["category"]="lu",
- ["description"]="ARMENIAN CAPITAL LETTER CHEH",
- ["lccode"]=0x0573,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0543, -- Ճ
+ category="lu",
+ description="ARMENIAN CAPITAL LETTER CHEH",
+ direction="l",
+ lccode=0x0573,
+ linebreak="al",
+ unicodeslot=0x0543,
},
[0x0544]={
- ["category"]="lu",
- ["description"]="ARMENIAN CAPITAL LETTER MEN",
- ["lccode"]=0x0574,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0544, -- Մ
+ category="lu",
+ description="ARMENIAN CAPITAL LETTER MEN",
+ direction="l",
+ lccode=0x0574,
+ linebreak="al",
+ unicodeslot=0x0544,
},
[0x0545]={
- ["category"]="lu",
- ["description"]="ARMENIAN CAPITAL LETTER YI",
- ["lccode"]=0x0575,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0545, -- Յ
+ category="lu",
+ description="ARMENIAN CAPITAL LETTER YI",
+ direction="l",
+ lccode=0x0575,
+ linebreak="al",
+ unicodeslot=0x0545,
},
[0x0546]={
- ["category"]="lu",
- ["description"]="ARMENIAN CAPITAL LETTER NOW",
- ["lccode"]=0x0576,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0546, -- Ն
+ category="lu",
+ description="ARMENIAN CAPITAL LETTER NOW",
+ direction="l",
+ lccode=0x0576,
+ linebreak="al",
+ unicodeslot=0x0546,
},
[0x0547]={
- ["category"]="lu",
- ["description"]="ARMENIAN CAPITAL LETTER SHA",
- ["lccode"]=0x0577,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0547, -- Շ
+ category="lu",
+ description="ARMENIAN CAPITAL LETTER SHA",
+ direction="l",
+ lccode=0x0577,
+ linebreak="al",
+ unicodeslot=0x0547,
},
[0x0548]={
- ["category"]="lu",
- ["description"]="ARMENIAN CAPITAL LETTER VO",
- ["lccode"]=0x0578,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0548, -- Ո
+ category="lu",
+ description="ARMENIAN CAPITAL LETTER VO",
+ direction="l",
+ lccode=0x0578,
+ linebreak="al",
+ unicodeslot=0x0548,
},
[0x0549]={
- ["category"]="lu",
- ["description"]="ARMENIAN CAPITAL LETTER CHA",
- ["lccode"]=0x0579,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0549, -- Չ
+ category="lu",
+ description="ARMENIAN CAPITAL LETTER CHA",
+ direction="l",
+ lccode=0x0579,
+ linebreak="al",
+ unicodeslot=0x0549,
},
[0x054A]={
- ["category"]="lu",
- ["description"]="ARMENIAN CAPITAL LETTER PEH",
- ["lccode"]=0x057A,
- ["linebreak"]="al",
- ["unicodeslot"]=0x054A, -- Պ
+ category="lu",
+ description="ARMENIAN CAPITAL LETTER PEH",
+ direction="l",
+ lccode=0x057A,
+ linebreak="al",
+ unicodeslot=0x054A,
},
[0x054B]={
- ["category"]="lu",
- ["description"]="ARMENIAN CAPITAL LETTER JHEH",
- ["lccode"]=0x057B,
- ["linebreak"]="al",
- ["unicodeslot"]=0x054B, -- Ջ
+ category="lu",
+ description="ARMENIAN CAPITAL LETTER JHEH",
+ direction="l",
+ lccode=0x057B,
+ linebreak="al",
+ unicodeslot=0x054B,
},
[0x054C]={
- ["category"]="lu",
- ["description"]="ARMENIAN CAPITAL LETTER RA",
- ["lccode"]=0x057C,
- ["linebreak"]="al",
- ["unicodeslot"]=0x054C, -- Ռ
+ category="lu",
+ description="ARMENIAN CAPITAL LETTER RA",
+ direction="l",
+ lccode=0x057C,
+ linebreak="al",
+ unicodeslot=0x054C,
},
[0x054D]={
- ["category"]="lu",
- ["description"]="ARMENIAN CAPITAL LETTER SEH",
- ["lccode"]=0x057D,
- ["linebreak"]="al",
- ["unicodeslot"]=0x054D, -- Ս
+ category="lu",
+ description="ARMENIAN CAPITAL LETTER SEH",
+ direction="l",
+ lccode=0x057D,
+ linebreak="al",
+ unicodeslot=0x054D,
},
[0x054E]={
- ["category"]="lu",
- ["description"]="ARMENIAN CAPITAL LETTER VEW",
- ["lccode"]=0x057E,
- ["linebreak"]="al",
- ["unicodeslot"]=0x054E, -- Վ
+ category="lu",
+ description="ARMENIAN CAPITAL LETTER VEW",
+ direction="l",
+ lccode=0x057E,
+ linebreak="al",
+ unicodeslot=0x054E,
},
[0x054F]={
- ["category"]="lu",
- ["description"]="ARMENIAN CAPITAL LETTER TIWN",
- ["lccode"]=0x057F,
- ["linebreak"]="al",
- ["unicodeslot"]=0x054F, -- Տ
+ category="lu",
+ description="ARMENIAN CAPITAL LETTER TIWN",
+ direction="l",
+ lccode=0x057F,
+ linebreak="al",
+ unicodeslot=0x054F,
},
[0x0550]={
- ["category"]="lu",
- ["description"]="ARMENIAN CAPITAL LETTER REH",
- ["lccode"]=0x0580,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0550, -- Ր
+ category="lu",
+ description="ARMENIAN CAPITAL LETTER REH",
+ direction="l",
+ lccode=0x0580,
+ linebreak="al",
+ unicodeslot=0x0550,
},
[0x0551]={
- ["category"]="lu",
- ["description"]="ARMENIAN CAPITAL LETTER CO",
- ["lccode"]=0x0581,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0551, -- Ց
+ category="lu",
+ description="ARMENIAN CAPITAL LETTER CO",
+ direction="l",
+ lccode=0x0581,
+ linebreak="al",
+ unicodeslot=0x0551,
},
[0x0552]={
- ["category"]="lu",
- ["description"]="ARMENIAN CAPITAL LETTER YIWN",
- ["lccode"]=0x0582,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0552, -- Ւ
+ category="lu",
+ description="ARMENIAN CAPITAL LETTER YIWN",
+ direction="l",
+ lccode=0x0582,
+ linebreak="al",
+ unicodeslot=0x0552,
},
[0x0553]={
- ["category"]="lu",
- ["description"]="ARMENIAN CAPITAL LETTER PIWR",
- ["lccode"]=0x0583,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0553, -- Փ
+ category="lu",
+ description="ARMENIAN CAPITAL LETTER PIWR",
+ direction="l",
+ lccode=0x0583,
+ linebreak="al",
+ unicodeslot=0x0553,
},
[0x0554]={
- ["category"]="lu",
- ["description"]="ARMENIAN CAPITAL LETTER KEH",
- ["lccode"]=0x0584,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0554, -- Ք
+ category="lu",
+ description="ARMENIAN CAPITAL LETTER KEH",
+ direction="l",
+ lccode=0x0584,
+ linebreak="al",
+ unicodeslot=0x0554,
},
[0x0555]={
- ["category"]="lu",
- ["description"]="ARMENIAN CAPITAL LETTER OH",
- ["lccode"]=0x0585,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0555, -- Օ
+ category="lu",
+ description="ARMENIAN CAPITAL LETTER OH",
+ direction="l",
+ lccode=0x0585,
+ linebreak="al",
+ unicodeslot=0x0555,
},
[0x0556]={
- ["category"]="lu",
- ["description"]="ARMENIAN CAPITAL LETTER FEH",
- ["lccode"]=0x0586,
- ["linebreak"]="al",
- ["unicodeslot"]=0x0556, -- Ֆ
+ category="lu",
+ description="ARMENIAN CAPITAL LETTER FEH",
+ direction="l",
+ lccode=0x0586,
+ linebreak="al",
+ unicodeslot=0x0556,
},
[0x0559]={
- ["category"]="lm",
- ["description"]="ARMENIAN MODIFIER LETTER LEFT HALF RING",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0559, -- ՙ
+ category="lm",
+ description="ARMENIAN MODIFIER LETTER LEFT HALF RING",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0559,
},
[0x055A]={
- ["category"]="po",
- ["description"]="ARMENIAN APOSTROPHE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x055A, -- ՚
+ category="po",
+ description="ARMENIAN APOSTROPHE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x055A,
},
[0x055B]={
- ["category"]="po",
- ["description"]="ARMENIAN EMPHASIS MARK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x055B, -- ՛
+ category="po",
+ description="ARMENIAN EMPHASIS MARK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x055B,
},
[0x055C]={
- ["category"]="po",
- ["description"]="ARMENIAN EXCLAMATION MARK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x055C, -- ՜
+ category="po",
+ description="ARMENIAN EXCLAMATION MARK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x055C,
},
[0x055D]={
- ["category"]="po",
- ["description"]="ARMENIAN COMMA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x055D, -- ՝
+ category="po",
+ description="ARMENIAN COMMA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x055D,
},
[0x055E]={
- ["category"]="po",
- ["description"]="ARMENIAN QUESTION MARK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x055E, -- ՞
+ category="po",
+ description="ARMENIAN QUESTION MARK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x055E,
},
[0x055F]={
- ["category"]="po",
- ["description"]="ARMENIAN ABBREVIATION MARK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x055F, -- ՟
+ category="po",
+ description="ARMENIAN ABBREVIATION MARK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x055F,
},
[0x0561]={
- ["category"]="ll",
- ["description"]="ARMENIAN SMALL LETTER AYB",
- ["linebreak"]="al",
- ["uccode"]=0x0531,
- ["unicodeslot"]=0x0561, -- ա
+ category="ll",
+ description="ARMENIAN SMALL LETTER AYB",
+ direction="l",
+ linebreak="al",
+ uccode=0x0531,
+ unicodeslot=0x0561,
},
[0x0562]={
- ["category"]="ll",
- ["description"]="ARMENIAN SMALL LETTER BEN",
- ["linebreak"]="al",
- ["uccode"]=0x0532,
- ["unicodeslot"]=0x0562, -- բ
+ category="ll",
+ description="ARMENIAN SMALL LETTER BEN",
+ direction="l",
+ linebreak="al",
+ uccode=0x0532,
+ unicodeslot=0x0562,
},
[0x0563]={
- ["category"]="ll",
- ["description"]="ARMENIAN SMALL LETTER GIM",
- ["linebreak"]="al",
- ["uccode"]=0x0533,
- ["unicodeslot"]=0x0563, -- գ
+ category="ll",
+ description="ARMENIAN SMALL LETTER GIM",
+ direction="l",
+ linebreak="al",
+ uccode=0x0533,
+ unicodeslot=0x0563,
},
[0x0564]={
- ["category"]="ll",
- ["description"]="ARMENIAN SMALL LETTER DA",
- ["linebreak"]="al",
- ["uccode"]=0x0534,
- ["unicodeslot"]=0x0564, -- դ
+ category="ll",
+ description="ARMENIAN SMALL LETTER DA",
+ direction="l",
+ linebreak="al",
+ uccode=0x0534,
+ unicodeslot=0x0564,
},
[0x0565]={
- ["category"]="ll",
- ["description"]="ARMENIAN SMALL LETTER ECH",
- ["linebreak"]="al",
- ["uccode"]=0x0535,
- ["unicodeslot"]=0x0565, -- ե
+ category="ll",
+ description="ARMENIAN SMALL LETTER ECH",
+ direction="l",
+ linebreak="al",
+ uccode=0x0535,
+ unicodeslot=0x0565,
},
[0x0566]={
- ["category"]="ll",
- ["description"]="ARMENIAN SMALL LETTER ZA",
- ["linebreak"]="al",
- ["uccode"]=0x0536,
- ["unicodeslot"]=0x0566, -- զ
+ category="ll",
+ description="ARMENIAN SMALL LETTER ZA",
+ direction="l",
+ linebreak="al",
+ uccode=0x0536,
+ unicodeslot=0x0566,
},
[0x0567]={
- ["category"]="ll",
- ["description"]="ARMENIAN SMALL LETTER EH",
- ["linebreak"]="al",
- ["uccode"]=0x0537,
- ["unicodeslot"]=0x0567, -- է
+ category="ll",
+ description="ARMENIAN SMALL LETTER EH",
+ direction="l",
+ linebreak="al",
+ uccode=0x0537,
+ unicodeslot=0x0567,
},
[0x0568]={
- ["category"]="ll",
- ["description"]="ARMENIAN SMALL LETTER ET",
- ["linebreak"]="al",
- ["uccode"]=0x0538,
- ["unicodeslot"]=0x0568, -- ը
+ category="ll",
+ description="ARMENIAN SMALL LETTER ET",
+ direction="l",
+ linebreak="al",
+ uccode=0x0538,
+ unicodeslot=0x0568,
},
[0x0569]={
- ["category"]="ll",
- ["description"]="ARMENIAN SMALL LETTER TO",
- ["linebreak"]="al",
- ["uccode"]=0x0539,
- ["unicodeslot"]=0x0569, -- թ
+ category="ll",
+ description="ARMENIAN SMALL LETTER TO",
+ direction="l",
+ linebreak="al",
+ uccode=0x0539,
+ unicodeslot=0x0569,
},
[0x056A]={
- ["category"]="ll",
- ["description"]="ARMENIAN SMALL LETTER ZHE",
- ["linebreak"]="al",
- ["uccode"]=0x053A,
- ["unicodeslot"]=0x056A, -- ժ
+ category="ll",
+ description="ARMENIAN SMALL LETTER ZHE",
+ direction="l",
+ linebreak="al",
+ uccode=0x053A,
+ unicodeslot=0x056A,
},
[0x056B]={
- ["category"]="ll",
- ["description"]="ARMENIAN SMALL LETTER INI",
- ["linebreak"]="al",
- ["uccode"]=0x053B,
- ["unicodeslot"]=0x056B, -- ի
+ category="ll",
+ description="ARMENIAN SMALL LETTER INI",
+ direction="l",
+ linebreak="al",
+ uccode=0x053B,
+ unicodeslot=0x056B,
},
[0x056C]={
- ["category"]="ll",
- ["description"]="ARMENIAN SMALL LETTER LIWN",
- ["linebreak"]="al",
- ["uccode"]=0x053C,
- ["unicodeslot"]=0x056C, -- լ
+ category="ll",
+ description="ARMENIAN SMALL LETTER LIWN",
+ direction="l",
+ linebreak="al",
+ uccode=0x053C,
+ unicodeslot=0x056C,
},
[0x056D]={
- ["category"]="ll",
- ["description"]="ARMENIAN SMALL LETTER XEH",
- ["linebreak"]="al",
- ["uccode"]=0x053D,
- ["unicodeslot"]=0x056D, -- խ
+ category="ll",
+ description="ARMENIAN SMALL LETTER XEH",
+ direction="l",
+ linebreak="al",
+ uccode=0x053D,
+ unicodeslot=0x056D,
},
[0x056E]={
- ["category"]="ll",
- ["description"]="ARMENIAN SMALL LETTER CA",
- ["linebreak"]="al",
- ["uccode"]=0x053E,
- ["unicodeslot"]=0x056E, -- ծ
+ category="ll",
+ description="ARMENIAN SMALL LETTER CA",
+ direction="l",
+ linebreak="al",
+ uccode=0x053E,
+ unicodeslot=0x056E,
},
[0x056F]={
- ["category"]="ll",
- ["description"]="ARMENIAN SMALL LETTER KEN",
- ["linebreak"]="al",
- ["uccode"]=0x053F,
- ["unicodeslot"]=0x056F, -- կ
+ category="ll",
+ description="ARMENIAN SMALL LETTER KEN",
+ direction="l",
+ linebreak="al",
+ uccode=0x053F,
+ unicodeslot=0x056F,
},
[0x0570]={
- ["category"]="ll",
- ["description"]="ARMENIAN SMALL LETTER HO",
- ["linebreak"]="al",
- ["uccode"]=0x0540,
- ["unicodeslot"]=0x0570, -- հ
+ category="ll",
+ description="ARMENIAN SMALL LETTER HO",
+ direction="l",
+ linebreak="al",
+ uccode=0x0540,
+ unicodeslot=0x0570,
},
[0x0571]={
- ["category"]="ll",
- ["description"]="ARMENIAN SMALL LETTER JA",
- ["linebreak"]="al",
- ["uccode"]=0x0541,
- ["unicodeslot"]=0x0571, -- ձ
+ category="ll",
+ description="ARMENIAN SMALL LETTER JA",
+ direction="l",
+ linebreak="al",
+ uccode=0x0541,
+ unicodeslot=0x0571,
},
[0x0572]={
- ["category"]="ll",
- ["description"]="ARMENIAN SMALL LETTER GHAD",
- ["linebreak"]="al",
- ["uccode"]=0x0542,
- ["unicodeslot"]=0x0572, -- ղ
+ category="ll",
+ description="ARMENIAN SMALL LETTER GHAD",
+ direction="l",
+ linebreak="al",
+ uccode=0x0542,
+ unicodeslot=0x0572,
},
[0x0573]={
- ["category"]="ll",
- ["description"]="ARMENIAN SMALL LETTER CHEH",
- ["linebreak"]="al",
- ["uccode"]=0x0543,
- ["unicodeslot"]=0x0573, -- ճ
+ category="ll",
+ description="ARMENIAN SMALL LETTER CHEH",
+ direction="l",
+ linebreak="al",
+ uccode=0x0543,
+ unicodeslot=0x0573,
},
[0x0574]={
- ["category"]="ll",
- ["description"]="ARMENIAN SMALL LETTER MEN",
- ["linebreak"]="al",
- ["uccode"]=0x0544,
- ["unicodeslot"]=0x0574, -- մ
+ category="ll",
+ description="ARMENIAN SMALL LETTER MEN",
+ direction="l",
+ linebreak="al",
+ uccode=0x0544,
+ unicodeslot=0x0574,
},
[0x0575]={
- ["category"]="ll",
- ["description"]="ARMENIAN SMALL LETTER YI",
- ["linebreak"]="al",
- ["uccode"]=0x0545,
- ["unicodeslot"]=0x0575, -- յ
+ category="ll",
+ description="ARMENIAN SMALL LETTER YI",
+ direction="l",
+ linebreak="al",
+ uccode=0x0545,
+ unicodeslot=0x0575,
},
[0x0576]={
- ["category"]="ll",
- ["description"]="ARMENIAN SMALL LETTER NOW",
- ["linebreak"]="al",
- ["uccode"]=0x0546,
- ["unicodeslot"]=0x0576, -- ն
+ category="ll",
+ description="ARMENIAN SMALL LETTER NOW",
+ direction="l",
+ linebreak="al",
+ uccode=0x0546,
+ unicodeslot=0x0576,
},
[0x0577]={
- ["category"]="ll",
- ["description"]="ARMENIAN SMALL LETTER SHA",
- ["linebreak"]="al",
- ["uccode"]=0x0547,
- ["unicodeslot"]=0x0577, -- շ
+ category="ll",
+ description="ARMENIAN SMALL LETTER SHA",
+ direction="l",
+ linebreak="al",
+ uccode=0x0547,
+ unicodeslot=0x0577,
},
[0x0578]={
- ["category"]="ll",
- ["description"]="ARMENIAN SMALL LETTER VO",
- ["linebreak"]="al",
- ["uccode"]=0x0548,
- ["unicodeslot"]=0x0578, -- ո
+ category="ll",
+ description="ARMENIAN SMALL LETTER VO",
+ direction="l",
+ linebreak="al",
+ uccode=0x0548,
+ unicodeslot=0x0578,
},
[0x0579]={
- ["category"]="ll",
- ["description"]="ARMENIAN SMALL LETTER CHA",
- ["linebreak"]="al",
- ["uccode"]=0x0549,
- ["unicodeslot"]=0x0579, -- չ
+ category="ll",
+ description="ARMENIAN SMALL LETTER CHA",
+ direction="l",
+ linebreak="al",
+ uccode=0x0549,
+ unicodeslot=0x0579,
},
[0x057A]={
- ["category"]="ll",
- ["description"]="ARMENIAN SMALL LETTER PEH",
- ["linebreak"]="al",
- ["uccode"]=0x054A,
- ["unicodeslot"]=0x057A, -- պ
+ category="ll",
+ description="ARMENIAN SMALL LETTER PEH",
+ direction="l",
+ linebreak="al",
+ uccode=0x054A,
+ unicodeslot=0x057A,
},
[0x057B]={
- ["category"]="ll",
- ["description"]="ARMENIAN SMALL LETTER JHEH",
- ["linebreak"]="al",
- ["uccode"]=0x054B,
- ["unicodeslot"]=0x057B, -- ջ
+ category="ll",
+ description="ARMENIAN SMALL LETTER JHEH",
+ direction="l",
+ linebreak="al",
+ uccode=0x054B,
+ unicodeslot=0x057B,
},
[0x057C]={
- ["category"]="ll",
- ["description"]="ARMENIAN SMALL LETTER RA",
- ["linebreak"]="al",
- ["uccode"]=0x054C,
- ["unicodeslot"]=0x057C, -- ռ
+ category="ll",
+ description="ARMENIAN SMALL LETTER RA",
+ direction="l",
+ linebreak="al",
+ uccode=0x054C,
+ unicodeslot=0x057C,
},
[0x057D]={
- ["category"]="ll",
- ["description"]="ARMENIAN SMALL LETTER SEH",
- ["linebreak"]="al",
- ["uccode"]=0x054D,
- ["unicodeslot"]=0x057D, -- ս
+ category="ll",
+ description="ARMENIAN SMALL LETTER SEH",
+ direction="l",
+ linebreak="al",
+ uccode=0x054D,
+ unicodeslot=0x057D,
},
[0x057E]={
- ["category"]="ll",
- ["description"]="ARMENIAN SMALL LETTER VEW",
- ["linebreak"]="al",
- ["uccode"]=0x054E,
- ["unicodeslot"]=0x057E, -- վ
+ category="ll",
+ description="ARMENIAN SMALL LETTER VEW",
+ direction="l",
+ linebreak="al",
+ uccode=0x054E,
+ unicodeslot=0x057E,
},
[0x057F]={
- ["category"]="ll",
- ["description"]="ARMENIAN SMALL LETTER TIWN",
- ["linebreak"]="al",
- ["uccode"]=0x054F,
- ["unicodeslot"]=0x057F, -- տ
+ category="ll",
+ description="ARMENIAN SMALL LETTER TIWN",
+ direction="l",
+ linebreak="al",
+ uccode=0x054F,
+ unicodeslot=0x057F,
},
[0x0580]={
- ["category"]="ll",
- ["description"]="ARMENIAN SMALL LETTER REH",
- ["linebreak"]="al",
- ["uccode"]=0x0550,
- ["unicodeslot"]=0x0580, -- ր
+ category="ll",
+ description="ARMENIAN SMALL LETTER REH",
+ direction="l",
+ linebreak="al",
+ uccode=0x0550,
+ unicodeslot=0x0580,
},
[0x0581]={
- ["category"]="ll",
- ["description"]="ARMENIAN SMALL LETTER CO",
- ["linebreak"]="al",
- ["uccode"]=0x0551,
- ["unicodeslot"]=0x0581, -- ց
+ category="ll",
+ description="ARMENIAN SMALL LETTER CO",
+ direction="l",
+ linebreak="al",
+ uccode=0x0551,
+ unicodeslot=0x0581,
},
[0x0582]={
- ["category"]="ll",
- ["description"]="ARMENIAN SMALL LETTER YIWN",
- ["linebreak"]="al",
- ["uccode"]=0x0552,
- ["unicodeslot"]=0x0582, -- ւ
+ category="ll",
+ description="ARMENIAN SMALL LETTER YIWN",
+ direction="l",
+ linebreak="al",
+ uccode=0x0552,
+ unicodeslot=0x0582,
},
[0x0583]={
- ["category"]="ll",
- ["description"]="ARMENIAN SMALL LETTER PIWR",
- ["linebreak"]="al",
- ["uccode"]=0x0553,
- ["unicodeslot"]=0x0583, -- փ
+ category="ll",
+ description="ARMENIAN SMALL LETTER PIWR",
+ direction="l",
+ linebreak="al",
+ uccode=0x0553,
+ unicodeslot=0x0583,
},
[0x0584]={
- ["category"]="ll",
- ["description"]="ARMENIAN SMALL LETTER KEH",
- ["linebreak"]="al",
- ["uccode"]=0x0554,
- ["unicodeslot"]=0x0584, -- ք
+ category="ll",
+ description="ARMENIAN SMALL LETTER KEH",
+ direction="l",
+ linebreak="al",
+ uccode=0x0554,
+ unicodeslot=0x0584,
},
[0x0585]={
- ["category"]="ll",
- ["description"]="ARMENIAN SMALL LETTER OH",
- ["linebreak"]="al",
- ["uccode"]=0x0555,
- ["unicodeslot"]=0x0585, -- օ
+ category="ll",
+ description="ARMENIAN SMALL LETTER OH",
+ direction="l",
+ linebreak="al",
+ uccode=0x0555,
+ unicodeslot=0x0585,
},
[0x0586]={
- ["category"]="ll",
- ["description"]="ARMENIAN SMALL LETTER FEH",
- ["linebreak"]="al",
- ["uccode"]=0x0556,
- ["unicodeslot"]=0x0586, -- ֆ
+ category="ll",
+ description="ARMENIAN SMALL LETTER FEH",
+ direction="l",
+ linebreak="al",
+ uccode=0x0556,
+ unicodeslot=0x0586,
},
[0x0587]={
- ["category"]="ll",
- ["description"]="ARMENIAN SMALL LIGATURE ECH YIWN",
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x0565, 0x0582 },
- ["unicodeslot"]=0x0587, -- և
+ category="ll",
+ description="ARMENIAN SMALL LIGATURE ECH YIWN",
+ direction="l",
+ linebreak="al",
+ specials={ "compat", 0x0565, 0x0582 },
+ unicodeslot=0x0587,
},
[0x0589]={
- ["category"]="po",
- ["description"]="ARMENIAN FULL STOP",
- ["linebreak"]="is",
- ["unicodeslot"]=0x0589, -- ։
+ category="po",
+ description="ARMENIAN FULL STOP",
+ direction="l",
+ linebreak="is",
+ unicodeslot=0x0589,
},
[0x058A]={
- ["category"]="pd",
- ["description"]="ARMENIAN HYPHEN",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x058A, -- ֊
+ category="pd",
+ description="ARMENIAN HYPHEN",
+ direction="on",
+ linebreak="ba",
+ unicodeslot=0x058A,
},
[0x0591]={
- ["category"]="mn",
- ["description"]="HEBREW ACCENT ETNAHTA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0591, -- ֑
+ category="mn",
+ description="HEBREW ACCENT ETNAHTA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0591,
},
[0x0592]={
- ["category"]="mn",
- ["description"]="HEBREW ACCENT SEGOL",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0592, -- ֒
+ category="mn",
+ description="HEBREW ACCENT SEGOL",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0592,
},
[0x0593]={
- ["category"]="mn",
- ["description"]="HEBREW ACCENT SHALSHELET",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0593, -- ֓
+ category="mn",
+ description="HEBREW ACCENT SHALSHELET",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0593,
},
[0x0594]={
- ["category"]="mn",
- ["description"]="HEBREW ACCENT ZAQEF QATAN",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0594, -- ֔
+ category="mn",
+ description="HEBREW ACCENT ZAQEF QATAN",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0594,
},
[0x0595]={
- ["category"]="mn",
- ["description"]="HEBREW ACCENT ZAQEF GADOL",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0595, -- ֕
+ category="mn",
+ description="HEBREW ACCENT ZAQEF GADOL",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0595,
},
[0x0596]={
- ["category"]="mn",
- ["description"]="HEBREW ACCENT TIPEHA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0596, -- ֖
+ category="mn",
+ description="HEBREW ACCENT TIPEHA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0596,
},
[0x0597]={
- ["category"]="mn",
- ["description"]="HEBREW ACCENT REVIA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0597, -- ֗
+ category="mn",
+ description="HEBREW ACCENT REVIA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0597,
},
[0x0598]={
- ["category"]="mn",
- ["description"]="HEBREW ACCENT ZARQA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0598, -- ֘
+ category="mn",
+ description="HEBREW ACCENT ZARQA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0598,
},
[0x0599]={
- ["category"]="mn",
- ["description"]="HEBREW ACCENT PASHTA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0599, -- ֙
+ category="mn",
+ description="HEBREW ACCENT PASHTA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0599,
},
[0x059A]={
- ["category"]="mn",
- ["description"]="HEBREW ACCENT YETIV",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x059A, -- ֚
+ category="mn",
+ description="HEBREW ACCENT YETIV",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x059A,
},
[0x059B]={
- ["category"]="mn",
- ["description"]="HEBREW ACCENT TEVIR",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x059B, -- ֛
+ category="mn",
+ description="HEBREW ACCENT TEVIR",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x059B,
},
[0x059C]={
- ["category"]="mn",
- ["description"]="HEBREW ACCENT GERESH",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x059C, -- ֜
+ category="mn",
+ description="HEBREW ACCENT GERESH",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x059C,
},
[0x059D]={
- ["category"]="mn",
- ["description"]="HEBREW ACCENT GERESH MUQDAM",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x059D, -- ֝
+ category="mn",
+ description="HEBREW ACCENT GERESH MUQDAM",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x059D,
},
[0x059E]={
- ["category"]="mn",
- ["description"]="HEBREW ACCENT GERSHAYIM",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x059E, -- ֞
+ category="mn",
+ description="HEBREW ACCENT GERSHAYIM",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x059E,
},
[0x059F]={
- ["category"]="mn",
- ["description"]="HEBREW ACCENT QARNEY PARA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x059F, -- ֟
+ category="mn",
+ description="HEBREW ACCENT QARNEY PARA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x059F,
},
[0x05A0]={
- ["category"]="mn",
- ["description"]="HEBREW ACCENT TELISHA GEDOLA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x05A0, -- ֠
+ category="mn",
+ description="HEBREW ACCENT TELISHA GEDOLA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x05A0,
},
[0x05A1]={
- ["category"]="mn",
- ["description"]="HEBREW ACCENT PAZER",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x05A1, -- ֡
+ category="mn",
+ description="HEBREW ACCENT PAZER",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x05A1,
},
[0x05A2]={
- ["category"]="mn",
- ["description"]="HEBREW ACCENT ATNAH HAFUKH",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x05A2, -- ֢
+ category="mn",
+ description="HEBREW ACCENT ATNAH HAFUKH",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x05A2,
},
[0x05A3]={
- ["category"]="mn",
- ["description"]="HEBREW ACCENT MUNAH",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x05A3, -- ֣
+ category="mn",
+ description="HEBREW ACCENT MUNAH",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x05A3,
},
[0x05A4]={
- ["category"]="mn",
- ["description"]="HEBREW ACCENT MAHAPAKH",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x05A4, -- ֤
+ category="mn",
+ description="HEBREW ACCENT MAHAPAKH",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x05A4,
},
[0x05A5]={
- ["category"]="mn",
- ["description"]="HEBREW ACCENT MERKHA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x05A5, -- ֥
+ category="mn",
+ description="HEBREW ACCENT MERKHA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x05A5,
},
[0x05A6]={
- ["category"]="mn",
- ["description"]="HEBREW ACCENT MERKHA KEFULA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x05A6, -- ֦
+ category="mn",
+ description="HEBREW ACCENT MERKHA KEFULA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x05A6,
},
[0x05A7]={
- ["category"]="mn",
- ["description"]="HEBREW ACCENT DARGA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x05A7, -- ֧
+ category="mn",
+ description="HEBREW ACCENT DARGA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x05A7,
},
[0x05A8]={
- ["category"]="mn",
- ["description"]="HEBREW ACCENT QADMA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x05A8, -- ֨
+ category="mn",
+ description="HEBREW ACCENT QADMA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x05A8,
},
[0x05A9]={
- ["category"]="mn",
- ["description"]="HEBREW ACCENT TELISHA QETANA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x05A9, -- ֩
+ category="mn",
+ description="HEBREW ACCENT TELISHA QETANA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x05A9,
},
[0x05AA]={
- ["category"]="mn",
- ["description"]="HEBREW ACCENT YERAH BEN YOMO",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x05AA, -- ֪
+ category="mn",
+ description="HEBREW ACCENT YERAH BEN YOMO",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x05AA,
},
[0x05AB]={
- ["category"]="mn",
- ["description"]="HEBREW ACCENT OLE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x05AB, -- ֫
+ category="mn",
+ description="HEBREW ACCENT OLE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x05AB,
},
[0x05AC]={
- ["category"]="mn",
- ["description"]="HEBREW ACCENT ILUY",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x05AC, -- ֬
+ category="mn",
+ description="HEBREW ACCENT ILUY",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x05AC,
},
[0x05AD]={
- ["category"]="mn",
- ["description"]="HEBREW ACCENT DEHI",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x05AD, -- ֭
+ category="mn",
+ description="HEBREW ACCENT DEHI",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x05AD,
},
[0x05AE]={
- ["category"]="mn",
- ["description"]="HEBREW ACCENT ZINOR",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x05AE, -- ֮
+ category="mn",
+ description="HEBREW ACCENT ZINOR",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x05AE,
},
[0x05AF]={
- ["category"]="mn",
- ["description"]="HEBREW MARK MASORA CIRCLE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x05AF, -- ֯
+ category="mn",
+ description="HEBREW MARK MASORA CIRCLE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x05AF,
},
[0x05B0]={
- ["adobename"]="afii57799",
- ["category"]="mn",
- ["description"]="HEBREW POINT SHEVA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x05B0, -- ְ
+ adobename="afii57799",
+ category="mn",
+ description="HEBREW POINT SHEVA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x05B0,
},
[0x05B1]={
- ["adobename"]="afii57801",
- ["category"]="mn",
- ["description"]="HEBREW POINT HATAF SEGOL",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x05B1, -- ֱ
+ adobename="afii57801",
+ category="mn",
+ description="HEBREW POINT HATAF SEGOL",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x05B1,
},
[0x05B2]={
- ["adobename"]="afii57800",
- ["category"]="mn",
- ["description"]="HEBREW POINT HATAF PATAH",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x05B2, -- ֲ
+ adobename="afii57800",
+ category="mn",
+ description="HEBREW POINT HATAF PATAH",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x05B2,
},
[0x05B3]={
- ["adobename"]="afii57802",
- ["category"]="mn",
- ["description"]="HEBREW POINT HATAF QAMATS",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x05B3, -- ֳ
+ adobename="afii57802",
+ category="mn",
+ description="HEBREW POINT HATAF QAMATS",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x05B3,
},
[0x05B4]={
- ["adobename"]="afii57793",
- ["category"]="mn",
- ["description"]="HEBREW POINT HIRIQ",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x05B4, -- ִ
+ adobename="afii57793",
+ category="mn",
+ description="HEBREW POINT HIRIQ",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x05B4,
},
[0x05B5]={
- ["adobename"]="afii57794",
- ["category"]="mn",
- ["description"]="HEBREW POINT TSERE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x05B5, -- ֵ
+ adobename="afii57794",
+ category="mn",
+ description="HEBREW POINT TSERE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x05B5,
},
[0x05B6]={
- ["adobename"]="afii57795",
- ["category"]="mn",
- ["description"]="HEBREW POINT SEGOL",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x05B6, -- ֶ
+ adobename="afii57795",
+ category="mn",
+ description="HEBREW POINT SEGOL",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x05B6,
},
[0x05B7]={
- ["adobename"]="afii57798",
- ["category"]="mn",
- ["description"]="HEBREW POINT PATAH",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x05B7, -- ַ
+ adobename="afii57798",
+ category="mn",
+ description="HEBREW POINT PATAH",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x05B7,
},
[0x05B8]={
- ["adobename"]="afii57797",
- ["category"]="mn",
- ["description"]="HEBREW POINT QAMATS",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x05B8, -- ָ
+ adobename="afii57797",
+ category="mn",
+ description="HEBREW POINT QAMATS",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x05B8,
},
[0x05B9]={
- ["adobename"]="afii57806",
- ["category"]="mn",
- ["description"]="HEBREW POINT HOLAM",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x05B9, -- ֹ
+ adobename="afii57806",
+ category="mn",
+ description="HEBREW POINT HOLAM",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x05B9,
},
[0x05BA]={
- ["category"]="mn",
- ["description"]="HEBREW POINT HOLAM HASER FOR VAV",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x05BA, -- ֺ
+ category="mn",
+ description="HEBREW POINT HOLAM HASER FOR VAV",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x05BA,
},
[0x05BB]={
- ["adobename"]="afii57796",
- ["category"]="mn",
- ["description"]="HEBREW POINT QUBUTS",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x05BB, -- ֻ
+ adobename="afii57796",
+ category="mn",
+ description="HEBREW POINT QUBUTS",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x05BB,
},
[0x05BC]={
- ["adobename"]="afii57807",
- ["category"]="mn",
- ["description"]="HEBREW POINT DAGESH OR MAPIQ",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x05BC, -- ּ
+ adobename="afii57807",
+ category="mn",
+ description="HEBREW POINT DAGESH OR MAPIQ",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x05BC,
},
[0x05BD]={
- ["adobename"]="afii57839",
- ["category"]="mn",
- ["description"]="HEBREW POINT METEG",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x05BD, -- ֽ
+ adobename="afii57839",
+ category="mn",
+ description="HEBREW POINT METEG",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x05BD,
},
[0x05BE]={
- ["adobename"]="afii57645",
- ["category"]="po",
- ["description"]="HEBREW PUNCTUATION MAQAF",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x05BE, -- ־
+ adobename="afii57645",
+ category="po",
+ description="HEBREW PUNCTUATION MAQAF",
+ direction="r",
+ linebreak="ba",
+ unicodeslot=0x05BE,
},
[0x05BF]={
- ["adobename"]="afii57841",
- ["category"]="mn",
- ["description"]="HEBREW POINT RAFE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x05BF, -- ֿ
+ adobename="afii57841",
+ category="mn",
+ description="HEBREW POINT RAFE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x05BF,
},
[0x05C0]={
- ["adobename"]="afii57842",
- ["category"]="po",
- ["description"]="HEBREW PUNCTUATION PASEQ",
- ["linebreak"]="al",
- ["unicodeslot"]=0x05C0, -- ׀
+ adobename="afii57842",
+ category="po",
+ description="HEBREW PUNCTUATION PASEQ",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x05C0,
},
[0x05C1]={
- ["adobename"]="afii57804",
- ["category"]="mn",
- ["description"]="HEBREW POINT SHIN DOT",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x05C1, -- ׁ
+ adobename="afii57804",
+ category="mn",
+ description="HEBREW POINT SHIN DOT",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x05C1,
},
[0x05C2]={
- ["adobename"]="afii57803",
- ["category"]="mn",
- ["description"]="HEBREW POINT SIN DOT",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x05C2, -- ׂ
+ adobename="afii57803",
+ category="mn",
+ description="HEBREW POINT SIN DOT",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x05C2,
},
[0x05C3]={
- ["adobename"]="afii57658",
- ["category"]="po",
- ["description"]="HEBREW PUNCTUATION SOF PASUQ",
- ["linebreak"]="al",
- ["unicodeslot"]=0x05C3, -- ׃
+ adobename="afii57658",
+ category="po",
+ description="HEBREW PUNCTUATION SOF PASUQ",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x05C3,
},
[0x05C4]={
- ["category"]="mn",
- ["description"]="HEBREW MARK UPPER DOT",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x05C4, -- ׄ
+ category="mn",
+ description="HEBREW MARK UPPER DOT",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x05C4,
},
[0x05C5]={
- ["category"]="mn",
- ["description"]="HEBREW MARK LOWER DOT",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x05C5, -- ׅ
+ category="mn",
+ description="HEBREW MARK LOWER DOT",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x05C5,
},
[0x05C6]={
- ["category"]="po",
- ["description"]="HEBREW PUNCTUATION NUN HAFUKHA",
- ["linebreak"]="ex",
- ["unicodeslot"]=0x05C6, -- ׆
+ category="po",
+ description="HEBREW PUNCTUATION NUN HAFUKHA",
+ direction="r",
+ linebreak="ex",
+ unicodeslot=0x05C6,
},
[0x05C7]={
- ["category"]="mn",
- ["description"]="HEBREW POINT QAMATS QATAN",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x05C7, -- ׇ
+ category="mn",
+ description="HEBREW POINT QAMATS QATAN",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x05C7,
},
[0x05D0]={
- ["adobename"]="afii57664",
- ["category"]="lo",
- ["contextname"]="hebrewAlef",
- ["description"]="HEBREW LETTER ALEF",
- ["linebreak"]="al",
- ["unicodeslot"]=0x05D0, -- א
+ adobename="afii57664",
+ category="lo",
+ contextname="hebrewAlef",
+ description="HEBREW LETTER ALEF",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x05D0,
},
[0x05D1]={
- ["adobename"]="afii57665",
- ["category"]="lo",
- ["contextname"]="hebrewBet",
- ["description"]="HEBREW LETTER BET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x05D1, -- ב
+ adobename="afii57665",
+ category="lo",
+ contextname="hebrewBet",
+ description="HEBREW LETTER BET",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x05D1,
},
[0x05D2]={
- ["adobename"]="afii57666",
- ["category"]="lo",
- ["contextname"]="hebrewGimel",
- ["description"]="HEBREW LETTER GIMEL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x05D2, -- ג
+ adobename="afii57666",
+ category="lo",
+ contextname="hebrewGimel",
+ description="HEBREW LETTER GIMEL",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x05D2,
},
[0x05D3]={
- ["adobename"]="afii57667",
- ["category"]="lo",
- ["contextname"]="hebrewDalet",
- ["description"]="HEBREW LETTER DALET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x05D3, -- ד
+ adobename="afii57667",
+ category="lo",
+ contextname="hebrewDalet",
+ description="HEBREW LETTER DALET",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x05D3,
},
[0x05D4]={
- ["adobename"]="afii57668",
- ["category"]="lo",
- ["contextname"]="hebrewHe",
- ["description"]="HEBREW LETTER HE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x05D4, -- ה
+ adobename="afii57668",
+ category="lo",
+ contextname="hebrewHe",
+ description="HEBREW LETTER HE",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x05D4,
},
[0x05D5]={
- ["adobename"]="afii57669",
- ["category"]="lo",
- ["contextname"]="hebrewVav",
- ["description"]="HEBREW LETTER VAV",
- ["linebreak"]="al",
- ["unicodeslot"]=0x05D5, -- ו
+ adobename="afii57669",
+ category="lo",
+ contextname="hebrewVav",
+ description="HEBREW LETTER VAV",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x05D5,
},
[0x05D6]={
- ["adobename"]="afii57670",
- ["category"]="lo",
- ["contextname"]="hebrewZayin",
- ["description"]="HEBREW LETTER ZAYIN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x05D6, -- ז
+ adobename="afii57670",
+ category="lo",
+ contextname="hebrewZayin",
+ description="HEBREW LETTER ZAYIN",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x05D6,
},
[0x05D7]={
- ["adobename"]="afii57671",
- ["category"]="lo",
- ["contextname"]="hebrewHet",
- ["description"]="HEBREW LETTER HET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x05D7, -- ח
+ adobename="afii57671",
+ category="lo",
+ contextname="hebrewHet",
+ description="HEBREW LETTER HET",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x05D7,
},
[0x05D8]={
- ["adobename"]="afii57672",
- ["category"]="lo",
- ["contextname"]="hebrewTet",
- ["description"]="HEBREW LETTER TET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x05D8, -- ט
+ adobename="afii57672",
+ category="lo",
+ contextname="hebrewTet",
+ description="HEBREW LETTER TET",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x05D8,
},
[0x05D9]={
- ["adobename"]="afii57673",
- ["category"]="lo",
- ["contextname"]="hebrewYod",
- ["description"]="HEBREW LETTER YOD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x05D9, -- י
+ adobename="afii57673",
+ category="lo",
+ contextname="hebrewYod",
+ description="HEBREW LETTER YOD",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x05D9,
},
[0x05DA]={
- ["adobename"]="afii57674",
- ["category"]="lo",
- ["contextname"]="hebrewKaffinal",
- ["description"]="HEBREW LETTER FINAL KAF",
- ["linebreak"]="al",
- ["unicodeslot"]=0x05DA, -- ך
+ adobename="afii57674",
+ category="lo",
+ contextname="hebrewKaffinal",
+ description="HEBREW LETTER FINAL KAF",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x05DA,
},
[0x05DB]={
- ["adobename"]="afii57675",
- ["category"]="lo",
- ["contextname"]="hebrewKaf",
- ["description"]="HEBREW LETTER KAF",
- ["linebreak"]="al",
- ["unicodeslot"]=0x05DB, -- כ
+ adobename="afii57675",
+ category="lo",
+ contextname="hebrewKaf",
+ description="HEBREW LETTER KAF",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x05DB,
},
[0x05DC]={
- ["adobename"]="afii57676",
- ["category"]="lo",
- ["contextname"]="hebrewLamed",
- ["description"]="HEBREW LETTER LAMED",
- ["linebreak"]="al",
- ["unicodeslot"]=0x05DC, -- ל
+ adobename="afii57676",
+ category="lo",
+ contextname="hebrewLamed",
+ description="HEBREW LETTER LAMED",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x05DC,
},
[0x05DD]={
- ["adobename"]="afii57677",
- ["category"]="lo",
- ["contextname"]="hebrewMemfinal",
- ["description"]="HEBREW LETTER FINAL MEM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x05DD, -- ם
+ adobename="afii57677",
+ category="lo",
+ contextname="hebrewMemfinal",
+ description="HEBREW LETTER FINAL MEM",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x05DD,
},
[0x05DE]={
- ["adobename"]="afii57678",
- ["category"]="lo",
- ["contextname"]="hebrewMem",
- ["description"]="HEBREW LETTER MEM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x05DE, -- מ
+ adobename="afii57678",
+ category="lo",
+ contextname="hebrewMem",
+ description="HEBREW LETTER MEM",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x05DE,
},
[0x05DF]={
- ["adobename"]="afii57679",
- ["category"]="lo",
- ["contextname"]="hebrewNunfinal",
- ["description"]="HEBREW LETTER FINAL NUN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x05DF, -- ן
+ adobename="afii57679",
+ category="lo",
+ contextname="hebrewNunfinal",
+ description="HEBREW LETTER FINAL NUN",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x05DF,
},
[0x05E0]={
- ["adobename"]="afii57680",
- ["category"]="lo",
- ["contextname"]="hebrewNun",
- ["description"]="HEBREW LETTER NUN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x05E0, -- נ
+ adobename="afii57680",
+ category="lo",
+ contextname="hebrewNun",
+ description="HEBREW LETTER NUN",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x05E0,
},
[0x05E1]={
- ["adobename"]="afii57681",
- ["category"]="lo",
- ["contextname"]="hebrewSamekh",
- ["description"]="HEBREW LETTER SAMEKH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x05E1, -- ס
+ adobename="afii57681",
+ category="lo",
+ contextname="hebrewSamekh",
+ description="HEBREW LETTER SAMEKH",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x05E1,
},
[0x05E2]={
- ["adobename"]="afii57682",
- ["category"]="lo",
- ["contextname"]="hebrewAyin",
- ["description"]="HEBREW LETTER AYIN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x05E2, -- ע
+ adobename="afii57682",
+ category="lo",
+ contextname="hebrewAyin",
+ description="HEBREW LETTER AYIN",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x05E2,
},
[0x05E3]={
- ["adobename"]="afii57683",
- ["category"]="lo",
- ["contextname"]="hebrewPefinal",
- ["description"]="HEBREW LETTER FINAL PE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x05E3, -- ף
+ adobename="afii57683",
+ category="lo",
+ contextname="hebrewPefinal",
+ description="HEBREW LETTER FINAL PE",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x05E3,
},
[0x05E4]={
- ["adobename"]="afii57684",
- ["category"]="lo",
- ["contextname"]="hebrewPe",
- ["description"]="HEBREW LETTER PE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x05E4, -- פ
+ adobename="afii57684",
+ category="lo",
+ contextname="hebrewPe",
+ description="HEBREW LETTER PE",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x05E4,
},
[0x05E5]={
- ["adobename"]="afii57685",
- ["category"]="lo",
- ["contextname"]="hebrewTsadifinal",
- ["description"]="HEBREW LETTER FINAL TSADI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x05E5, -- ץ
+ adobename="afii57685",
+ category="lo",
+ contextname="hebrewTsadifinal",
+ description="HEBREW LETTER FINAL TSADI",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x05E5,
},
[0x05E6]={
- ["adobename"]="afii57686",
- ["category"]="lo",
- ["contextname"]="hebrewTsadi",
- ["description"]="HEBREW LETTER TSADI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x05E6, -- צ
+ adobename="afii57686",
+ category="lo",
+ contextname="hebrewTsadi",
+ description="HEBREW LETTER TSADI",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x05E6,
},
[0x05E7]={
- ["adobename"]="afii57687",
- ["category"]="lo",
- ["contextname"]="hebrewQof",
- ["description"]="HEBREW LETTER QOF",
- ["linebreak"]="al",
- ["unicodeslot"]=0x05E7, -- ק
+ adobename="afii57687",
+ category="lo",
+ contextname="hebrewQof",
+ description="HEBREW LETTER QOF",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x05E7,
},
[0x05E8]={
- ["adobename"]="afii57688",
- ["category"]="lo",
- ["contextname"]="hebrewResh",
- ["description"]="HEBREW LETTER RESH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x05E8, -- ר
+ adobename="afii57688",
+ category="lo",
+ contextname="hebrewResh",
+ description="HEBREW LETTER RESH",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x05E8,
},
[0x05E9]={
- ["adobename"]="afii57689",
- ["category"]="lo",
- ["contextname"]="hebrewShin",
- ["description"]="HEBREW LETTER SHIN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x05E9, -- ש
+ adobename="afii57689",
+ category="lo",
+ contextname="hebrewShin",
+ description="HEBREW LETTER SHIN",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x05E9,
},
[0x05EA]={
- ["adobename"]="afii57690",
- ["category"]="lo",
- ["contextname"]="hebrewTav",
- ["description"]="HEBREW LETTER TAV",
- ["linebreak"]="al",
- ["unicodeslot"]=0x05EA, -- ת
+ adobename="afii57690",
+ category="lo",
+ contextname="hebrewTav",
+ description="HEBREW LETTER TAV",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x05EA,
},
[0x05F0]={
- ["adobename"]="afii57716",
- ["category"]="lo",
- ["description"]="HEBREW LIGATURE YIDDISH DOUBLE VAV",
- ["linebreak"]="al",
- ["unicodeslot"]=0x05F0, -- װ
+ adobename="afii57716",
+ category="lo",
+ description="HEBREW LIGATURE YIDDISH DOUBLE VAV",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x05F0,
},
[0x05F1]={
- ["adobename"]="afii57717",
- ["category"]="lo",
- ["description"]="HEBREW LIGATURE YIDDISH VAV YOD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x05F1, -- ױ
+ adobename="afii57717",
+ category="lo",
+ description="HEBREW LIGATURE YIDDISH VAV YOD",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x05F1,
},
[0x05F2]={
- ["adobename"]="afii57718",
- ["category"]="lo",
- ["description"]="HEBREW LIGATURE YIDDISH DOUBLE YOD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x05F2, -- ײ
+ adobename="afii57718",
+ category="lo",
+ description="HEBREW LIGATURE YIDDISH DOUBLE YOD",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x05F2,
},
[0x05F3]={
- ["category"]="po",
- ["description"]="HEBREW PUNCTUATION GERESH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x05F3, -- ׳
+ category="po",
+ description="HEBREW PUNCTUATION GERESH",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x05F3,
},
[0x05F4]={
- ["category"]="po",
- ["description"]="HEBREW PUNCTUATION GERSHAYIM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x05F4, -- ״
+ category="po",
+ description="HEBREW PUNCTUATION GERSHAYIM",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x05F4,
},
[0x0600]={
- ["category"]="cf",
- ["description"]="ARABIC NUMBER SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0600, -- ؀
+ category="cf",
+ description="ARABIC NUMBER SIGN",
+ direction="an",
+ linebreak="al",
+ unicodeslot=0x0600,
},
[0x0601]={
- ["category"]="cf",
- ["description"]="ARABIC SIGN SANAH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0601, -- ؁
+ category="cf",
+ description="ARABIC SIGN SANAH",
+ direction="an",
+ linebreak="al",
+ unicodeslot=0x0601,
},
[0x0602]={
- ["category"]="cf",
- ["description"]="ARABIC FOOTNOTE MARKER",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0602, -- ؂
+ category="cf",
+ description="ARABIC FOOTNOTE MARKER",
+ direction="an",
+ linebreak="al",
+ unicodeslot=0x0602,
},
[0x0603]={
- ["category"]="cf",
- ["description"]="ARABIC SIGN SAFHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0603, -- ؃
+ category="cf",
+ description="ARABIC SIGN SAFHA",
+ direction="an",
+ linebreak="al",
+ unicodeslot=0x0603,
},
[0x060B]={
- ["category"]="sc",
- ["description"]="AFGHANI SIGN",
- ["linebreak"]="po",
- ["unicodeslot"]=0x060B, -- ؋
+ category="sc",
+ description="AFGHANI SIGN",
+ direction="al",
+ linebreak="po",
+ unicodeslot=0x060B,
},
[0x060C]={
- ["adobename"]="afii57388",
- ["category"]="po",
- ["description"]="ARABIC COMMA",
- ["linebreak"]="ex",
- ["unicodeslot"]=0x060C, -- ،
+ adobename="afii57388",
+ category="po",
+ description="ARABIC COMMA",
+ direction="cs",
+ linebreak="ex",
+ unicodeslot=0x060C,
},
[0x060D]={
- ["category"]="po",
- ["description"]="ARABIC DATE SEPARATOR",
- ["linebreak"]="is",
- ["unicodeslot"]=0x060D, -- ؍
+ category="po",
+ description="ARABIC DATE SEPARATOR",
+ direction="al",
+ linebreak="is",
+ unicodeslot=0x060D,
},
[0x060E]={
- ["category"]="so",
- ["description"]="ARABIC POETIC VERSE SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x060E, -- ؎
+ category="so",
+ description="ARABIC POETIC VERSE SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x060E,
},
[0x060F]={
- ["category"]="so",
- ["description"]="ARABIC SIGN MISRA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x060F, -- ؏
+ category="so",
+ description="ARABIC SIGN MISRA",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x060F,
},
[0x0610]={
- ["category"]="mn",
- ["description"]="ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0610, -- ؐ
+ category="mn",
+ description="ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0610,
},
[0x0611]={
- ["category"]="mn",
- ["description"]="ARABIC SIGN ALAYHE ASSALLAM",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0611, -- ؑ
+ category="mn",
+ description="ARABIC SIGN ALAYHE ASSALLAM",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0611,
},
[0x0612]={
- ["category"]="mn",
- ["description"]="ARABIC SIGN RAHMATULLAH ALAYHE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0612, -- ؒ
+ category="mn",
+ description="ARABIC SIGN RAHMATULLAH ALAYHE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0612,
},
[0x0613]={
- ["category"]="mn",
- ["description"]="ARABIC SIGN RADI ALLAHOU ANHU",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0613, -- ؓ
+ category="mn",
+ description="ARABIC SIGN RADI ALLAHOU ANHU",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0613,
},
[0x0614]={
- ["category"]="mn",
- ["description"]="ARABIC SIGN TAKHALLUS",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0614, -- ؔ
+ category="mn",
+ description="ARABIC SIGN TAKHALLUS",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0614,
},
[0x0615]={
- ["category"]="mn",
- ["description"]="ARABIC SMALL HIGH TAH",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0615, -- ؕ
+ category="mn",
+ description="ARABIC SMALL HIGH TAH",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0615,
},
[0x061B]={
- ["adobename"]="afii57403",
- ["category"]="po",
- ["description"]="ARABIC SEMICOLON",
- ["linebreak"]="ex",
- ["unicodeslot"]=0x061B, -- ؛
+ adobename="afii57403",
+ category="po",
+ description="ARABIC SEMICOLON",
+ direction="al",
+ linebreak="ex",
+ unicodeslot=0x061B,
},
[0x061E]={
- ["category"]="po",
- ["description"]="ARABIC TRIPLE DOT PUNCTUATION MARK",
- ["linebreak"]="ex",
- ["unicodeslot"]=0x061E, -- ؞
+ category="po",
+ description="ARABIC TRIPLE DOT PUNCTUATION MARK",
+ direction="al",
+ linebreak="ex",
+ unicodeslot=0x061E,
},
[0x061F]={
- ["adobename"]="afii57407",
- ["category"]="po",
- ["description"]="ARABIC QUESTION MARK",
- ["linebreak"]="ex",
- ["unicodeslot"]=0x061F, -- ؟
+ adobename="afii57407",
+ category="po",
+ description="ARABIC QUESTION MARK",
+ direction="al",
+ linebreak="ex",
+ unicodeslot=0x061F,
},
[0x0621]={
- ["adobename"]="afii57409",
- ["category"]="lo",
- ["description"]="ARABIC LETTER HAMZA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0621, -- ء
+ adobename="afii57409",
+ category="lo",
+ description="ARABIC LETTER HAMZA",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0621,
},
[0x0622]={
- ["adobename"]="afii57410",
- ["category"]="lo",
- ["description"]="ARABIC LETTER ALEF WITH MADDA ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0627,
- ["specials"]={ "char", 0x0627, 0x0653 },
- ["unicodeslot"]=0x0622, -- آ
+ adobename="afii57410",
+ category="lo",
+ description="ARABIC LETTER ALEF WITH MADDA ABOVE",
+ direction="al",
+ linebreak="al",
+ shcode=0x0627,
+ specials={ "char", 0x0627, 0x0653 },
+ unicodeslot=0x0622,
},
[0x0623]={
- ["adobename"]="afii57411",
- ["category"]="lo",
- ["description"]="ARABIC LETTER ALEF WITH HAMZA ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0627,
- ["specials"]={ "char", 0x0627, 0x0654 },
- ["unicodeslot"]=0x0623, -- أ
+ adobename="afii57411",
+ category="lo",
+ description="ARABIC LETTER ALEF WITH HAMZA ABOVE",
+ direction="al",
+ linebreak="al",
+ shcode=0x0627,
+ specials={ "char", 0x0627, 0x0654 },
+ unicodeslot=0x0623,
},
[0x0624]={
- ["adobename"]="afii57412",
- ["category"]="lo",
- ["description"]="ARABIC LETTER WAW WITH HAMZA ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0648,
- ["specials"]={ "char", 0x0648, 0x0654 },
- ["unicodeslot"]=0x0624, -- ؤ
+ adobename="afii57412",
+ category="lo",
+ description="ARABIC LETTER WAW WITH HAMZA ABOVE",
+ direction="al",
+ linebreak="al",
+ shcode=0x0648,
+ specials={ "char", 0x0648, 0x0654 },
+ unicodeslot=0x0624,
},
[0x0625]={
- ["adobename"]="afii57413",
- ["category"]="lo",
- ["description"]="ARABIC LETTER ALEF WITH HAMZA BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x0627,
- ["specials"]={ "char", 0x0627, 0x0655 },
- ["unicodeslot"]=0x0625, -- إ
+ adobename="afii57413",
+ category="lo",
+ description="ARABIC LETTER ALEF WITH HAMZA BELOW",
+ direction="al",
+ linebreak="al",
+ shcode=0x0627,
+ specials={ "char", 0x0627, 0x0655 },
+ unicodeslot=0x0625,
},
[0x0626]={
- ["adobename"]="afii57414",
- ["category"]="lo",
- ["description"]="ARABIC LETTER YEH WITH HAMZA ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x064A,
- ["specials"]={ "char", 0x064A, 0x0654 },
- ["unicodeslot"]=0x0626, -- ئ
+ adobename="afii57414",
+ category="lo",
+ description="ARABIC LETTER YEH WITH HAMZA ABOVE",
+ direction="al",
+ linebreak="al",
+ shcode=0x064A,
+ specials={ "char", 0x064A, 0x0654 },
+ unicodeslot=0x0626,
},
[0x0627]={
- ["adobename"]="afii57415",
- ["category"]="lo",
- ["description"]="ARABIC LETTER ALEF",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0627, -- ا
+ adobename="afii57415",
+ category="lo",
+ description="ARABIC LETTER ALEF",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0627,
},
[0x0628]={
- ["adobename"]="afii57416",
- ["category"]="lo",
- ["description"]="ARABIC LETTER BEH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0628, -- ب
+ adobename="afii57416",
+ category="lo",
+ description="ARABIC LETTER BEH",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0628,
},
[0x0629]={
- ["adobename"]="afii57417",
- ["category"]="lo",
- ["description"]="ARABIC LETTER TEH MARBUTA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0629, -- ة
+ adobename="afii57417",
+ category="lo",
+ description="ARABIC LETTER TEH MARBUTA",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0629,
},
[0x062A]={
- ["adobename"]="afii57418",
- ["category"]="lo",
- ["description"]="ARABIC LETTER TEH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x062A, -- ت
+ adobename="afii57418",
+ category="lo",
+ description="ARABIC LETTER TEH",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x062A,
},
[0x062B]={
- ["adobename"]="afii57419",
- ["category"]="lo",
- ["description"]="ARABIC LETTER THEH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x062B, -- ث
+ adobename="afii57419",
+ category="lo",
+ description="ARABIC LETTER THEH",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x062B,
},
[0x062C]={
- ["adobename"]="afii57420",
- ["category"]="lo",
- ["description"]="ARABIC LETTER JEEM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x062C, -- ج
+ adobename="afii57420",
+ category="lo",
+ description="ARABIC LETTER JEEM",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x062C,
},
[0x062D]={
- ["adobename"]="afii57421",
- ["category"]="lo",
- ["description"]="ARABIC LETTER HAH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x062D, -- ح
+ adobename="afii57421",
+ category="lo",
+ description="ARABIC LETTER HAH",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x062D,
},
[0x062E]={
- ["adobename"]="afii57422",
- ["category"]="lo",
- ["description"]="ARABIC LETTER KHAH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x062E, -- خ
+ adobename="afii57422",
+ category="lo",
+ description="ARABIC LETTER KHAH",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x062E,
},
[0x062F]={
- ["adobename"]="afii57423",
- ["category"]="lo",
- ["description"]="ARABIC LETTER DAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x062F, -- د
+ adobename="afii57423",
+ category="lo",
+ description="ARABIC LETTER DAL",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x062F,
},
[0x0630]={
- ["adobename"]="afii57424",
- ["category"]="lo",
- ["description"]="ARABIC LETTER THAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0630, -- ذ
+ adobename="afii57424",
+ category="lo",
+ description="ARABIC LETTER THAL",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0630,
},
[0x0631]={
- ["adobename"]="afii57425",
- ["category"]="lo",
- ["description"]="ARABIC LETTER REH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0631, -- ر
+ adobename="afii57425",
+ category="lo",
+ description="ARABIC LETTER REH",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0631,
},
[0x0632]={
- ["adobename"]="afii57426",
- ["category"]="lo",
- ["description"]="ARABIC LETTER ZAIN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0632, -- ز
+ adobename="afii57426",
+ category="lo",
+ description="ARABIC LETTER ZAIN",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0632,
},
[0x0633]={
- ["adobename"]="afii57427",
- ["category"]="lo",
- ["description"]="ARABIC LETTER SEEN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0633, -- س
+ adobename="afii57427",
+ category="lo",
+ description="ARABIC LETTER SEEN",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0633,
},
[0x0634]={
- ["adobename"]="afii57428",
- ["category"]="lo",
- ["description"]="ARABIC LETTER SHEEN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0634, -- ش
+ adobename="afii57428",
+ category="lo",
+ description="ARABIC LETTER SHEEN",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0634,
},
[0x0635]={
- ["adobename"]="afii57429",
- ["category"]="lo",
- ["description"]="ARABIC LETTER SAD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0635, -- ص
+ adobename="afii57429",
+ category="lo",
+ description="ARABIC LETTER SAD",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0635,
},
[0x0636]={
- ["adobename"]="afii57430",
- ["category"]="lo",
- ["description"]="ARABIC LETTER DAD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0636, -- ض
+ adobename="afii57430",
+ category="lo",
+ description="ARABIC LETTER DAD",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0636,
},
[0x0637]={
- ["adobename"]="afii57431",
- ["category"]="lo",
- ["description"]="ARABIC LETTER TAH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0637, -- ط
+ adobename="afii57431",
+ category="lo",
+ description="ARABIC LETTER TAH",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0637,
},
[0x0638]={
- ["adobename"]="afii57432",
- ["category"]="lo",
- ["description"]="ARABIC LETTER ZAH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0638, -- ظ
+ adobename="afii57432",
+ category="lo",
+ description="ARABIC LETTER ZAH",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0638,
},
[0x0639]={
- ["adobename"]="afii57433",
- ["category"]="lo",
- ["description"]="ARABIC LETTER AIN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0639, -- ع
+ adobename="afii57433",
+ category="lo",
+ description="ARABIC LETTER AIN",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0639,
},
[0x063A]={
- ["adobename"]="afii57434",
- ["category"]="lo",
- ["description"]="ARABIC LETTER GHAIN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x063A, -- غ
+ adobename="afii57434",
+ category="lo",
+ description="ARABIC LETTER GHAIN",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x063A,
},
[0x0640]={
- ["adobename"]="afii57440",
- ["category"]="lm",
- ["description"]="ARABIC TATWEEL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0640, -- ـ
+ adobename="afii57440",
+ category="lm",
+ description="ARABIC TATWEEL",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0640,
},
[0x0641]={
- ["adobename"]="afii57441",
- ["category"]="lo",
- ["description"]="ARABIC LETTER FEH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0641, -- ف
+ adobename="afii57441",
+ category="lo",
+ description="ARABIC LETTER FEH",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0641,
},
[0x0642]={
- ["adobename"]="afii57442",
- ["category"]="lo",
- ["description"]="ARABIC LETTER QAF",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0642, -- ق
+ adobename="afii57442",
+ category="lo",
+ description="ARABIC LETTER QAF",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0642,
},
[0x0643]={
- ["adobename"]="afii57443",
- ["category"]="lo",
- ["description"]="ARABIC LETTER KAF",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0643, -- ك
+ adobename="afii57443",
+ category="lo",
+ description="ARABIC LETTER KAF",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0643,
},
[0x0644]={
- ["adobename"]="afii57444",
- ["category"]="lo",
- ["description"]="ARABIC LETTER LAM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0644, -- ل
+ adobename="afii57444",
+ category="lo",
+ description="ARABIC LETTER LAM",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0644,
},
[0x0645]={
- ["adobename"]="afii57445",
- ["category"]="lo",
- ["description"]="ARABIC LETTER MEEM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0645, -- م
+ adobename="afii57445",
+ category="lo",
+ description="ARABIC LETTER MEEM",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0645,
},
[0x0646]={
- ["adobename"]="afii57446",
- ["category"]="lo",
- ["description"]="ARABIC LETTER NOON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0646, -- ن
+ adobename="afii57446",
+ category="lo",
+ description="ARABIC LETTER NOON",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0646,
},
[0x0647]={
- ["adobename"]="afii57470",
- ["category"]="lo",
- ["description"]="ARABIC LETTER HEH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0647, -- ه
+ adobename="afii57470",
+ category="lo",
+ description="ARABIC LETTER HEH",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0647,
},
[0x0648]={
- ["adobename"]="afii57448",
- ["category"]="lo",
- ["description"]="ARABIC LETTER WAW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0648, -- و
+ adobename="afii57448",
+ category="lo",
+ description="ARABIC LETTER WAW",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0648,
},
[0x0649]={
- ["adobename"]="afii57449",
- ["category"]="lo",
- ["description"]="ARABIC LETTER ALEF MAKSURA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0649, -- ى
+ adobename="afii57449",
+ category="lo",
+ description="ARABIC LETTER ALEF MAKSURA",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0649,
},
[0x064A]={
- ["adobename"]="afii57450",
- ["category"]="lo",
- ["description"]="ARABIC LETTER YEH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x064A, -- ي
+ adobename="afii57450",
+ category="lo",
+ description="ARABIC LETTER YEH",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x064A,
},
[0x064B]={
- ["adobename"]="afii57451",
- ["category"]="mn",
- ["description"]="ARABIC FATHATAN",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x064B, -- ً
+ adobename="afii57451",
+ category="mn",
+ description="ARABIC FATHATAN",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x064B,
},
[0x064C]={
- ["adobename"]="afii57452",
- ["category"]="mn",
- ["description"]="ARABIC DAMMATAN",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x064C, -- ٌ
+ adobename="afii57452",
+ category="mn",
+ description="ARABIC DAMMATAN",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x064C,
},
[0x064D]={
- ["adobename"]="afii57453",
- ["category"]="mn",
- ["description"]="ARABIC KASRATAN",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x064D, -- ٍ
+ adobename="afii57453",
+ category="mn",
+ description="ARABIC KASRATAN",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x064D,
},
[0x064E]={
- ["adobename"]="afii57454",
- ["category"]="mn",
- ["description"]="ARABIC FATHA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x064E, -- َ
+ adobename="afii57454",
+ category="mn",
+ description="ARABIC FATHA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x064E,
},
[0x064F]={
- ["adobename"]="afii57455",
- ["category"]="mn",
- ["description"]="ARABIC DAMMA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x064F, -- ُ
+ adobename="afii57455",
+ category="mn",
+ description="ARABIC DAMMA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x064F,
},
[0x0650]={
- ["adobename"]="afii57456",
- ["category"]="mn",
- ["description"]="ARABIC KASRA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0650, -- ِ
+ adobename="afii57456",
+ category="mn",
+ description="ARABIC KASRA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0650,
},
[0x0651]={
- ["adobename"]="afii57457",
- ["category"]="mn",
- ["description"]="ARABIC SHADDA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0651, -- ّ
+ adobename="afii57457",
+ category="mn",
+ description="ARABIC SHADDA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0651,
},
[0x0652]={
- ["adobename"]="afii57458",
- ["category"]="mn",
- ["description"]="ARABIC SUKUN",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0652, -- ْ
+ adobename="afii57458",
+ category="mn",
+ description="ARABIC SUKUN",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0652,
},
[0x0653]={
- ["category"]="mn",
- ["description"]="ARABIC MADDAH ABOVE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0653, -- ٓ
+ category="mn",
+ description="ARABIC MADDAH ABOVE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0653,
},
[0x0654]={
- ["category"]="mn",
- ["description"]="ARABIC HAMZA ABOVE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0654, -- ٔ
+ category="mn",
+ description="ARABIC HAMZA ABOVE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0654,
},
[0x0655]={
- ["category"]="mn",
- ["description"]="ARABIC HAMZA BELOW",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0655, -- ٕ
+ category="mn",
+ description="ARABIC HAMZA BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0655,
},
[0x0656]={
- ["category"]="mn",
- ["description"]="ARABIC SUBSCRIPT ALEF",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0656, -- ٖ
+ category="mn",
+ description="ARABIC SUBSCRIPT ALEF",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0656,
},
[0x0657]={
- ["category"]="mn",
- ["description"]="ARABIC INVERTED DAMMA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0657, -- ٗ
+ category="mn",
+ description="ARABIC INVERTED DAMMA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0657,
},
[0x0658]={
- ["category"]="mn",
- ["description"]="ARABIC MARK NOON GHUNNA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0658, -- ٘
+ category="mn",
+ description="ARABIC MARK NOON GHUNNA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0658,
},
[0x0659]={
- ["category"]="mn",
- ["description"]="ARABIC ZWARAKAY",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0659, -- ٙ
+ category="mn",
+ description="ARABIC ZWARAKAY",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0659,
},
[0x065A]={
- ["category"]="mn",
- ["description"]="ARABIC VOWEL SIGN SMALL V ABOVE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x065A, -- ٚ
+ category="mn",
+ description="ARABIC VOWEL SIGN SMALL V ABOVE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x065A,
},
[0x065B]={
- ["category"]="mn",
- ["description"]="ARABIC VOWEL SIGN INVERTED SMALL V ABOVE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x065B, -- ٛ
+ category="mn",
+ description="ARABIC VOWEL SIGN INVERTED SMALL V ABOVE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x065B,
},
[0x065C]={
- ["category"]="mn",
- ["description"]="ARABIC VOWEL SIGN DOT BELOW",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x065C, -- ٜ
+ category="mn",
+ description="ARABIC VOWEL SIGN DOT BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x065C,
},
[0x065D]={
- ["category"]="mn",
- ["description"]="ARABIC REVERSED DAMMA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x065D, -- ٝ
+ category="mn",
+ description="ARABIC REVERSED DAMMA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x065D,
},
[0x065E]={
- ["category"]="mn",
- ["description"]="ARABIC FATHA WITH TWO DOTS",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x065E, -- ٞ
+ category="mn",
+ description="ARABIC FATHA WITH TWO DOTS",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x065E,
},
[0x0660]={
- ["adobename"]="afii57392",
- ["category"]="nd",
- ["description"]="ARABIC-INDIC DIGIT ZERO",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0660, -- ٠
+ adobename="afii57392",
+ category="nd",
+ description="ARABIC-INDIC DIGIT ZERO",
+ direction="an",
+ linebreak="nu",
+ unicodeslot=0x0660,
},
[0x0661]={
- ["adobename"]="afii57393",
- ["category"]="nd",
- ["description"]="ARABIC-INDIC DIGIT ONE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0661, -- ١
+ adobename="afii57393",
+ category="nd",
+ description="ARABIC-INDIC DIGIT ONE",
+ direction="an",
+ linebreak="nu",
+ unicodeslot=0x0661,
},
[0x0662]={
- ["adobename"]="afii57394",
- ["category"]="nd",
- ["description"]="ARABIC-INDIC DIGIT TWO",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0662, -- ٢
+ adobename="afii57394",
+ category="nd",
+ description="ARABIC-INDIC DIGIT TWO",
+ direction="an",
+ linebreak="nu",
+ unicodeslot=0x0662,
},
[0x0663]={
- ["adobename"]="afii57395",
- ["category"]="nd",
- ["description"]="ARABIC-INDIC DIGIT THREE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0663, -- ٣
+ adobename="afii57395",
+ category="nd",
+ description="ARABIC-INDIC DIGIT THREE",
+ direction="an",
+ linebreak="nu",
+ unicodeslot=0x0663,
},
[0x0664]={
- ["adobename"]="afii57396",
- ["category"]="nd",
- ["description"]="ARABIC-INDIC DIGIT FOUR",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0664, -- ٤
+ adobename="afii57396",
+ category="nd",
+ description="ARABIC-INDIC DIGIT FOUR",
+ direction="an",
+ linebreak="nu",
+ unicodeslot=0x0664,
},
[0x0665]={
- ["adobename"]="afii57397",
- ["category"]="nd",
- ["description"]="ARABIC-INDIC DIGIT FIVE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0665, -- ٥
+ adobename="afii57397",
+ category="nd",
+ description="ARABIC-INDIC DIGIT FIVE",
+ direction="an",
+ linebreak="nu",
+ unicodeslot=0x0665,
},
[0x0666]={
- ["adobename"]="afii57398",
- ["category"]="nd",
- ["description"]="ARABIC-INDIC DIGIT SIX",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0666, -- ٦
+ adobename="afii57398",
+ category="nd",
+ description="ARABIC-INDIC DIGIT SIX",
+ direction="an",
+ linebreak="nu",
+ unicodeslot=0x0666,
},
[0x0667]={
- ["adobename"]="afii57399",
- ["category"]="nd",
- ["description"]="ARABIC-INDIC DIGIT SEVEN",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0667, -- ٧
+ adobename="afii57399",
+ category="nd",
+ description="ARABIC-INDIC DIGIT SEVEN",
+ direction="an",
+ linebreak="nu",
+ unicodeslot=0x0667,
},
[0x0668]={
- ["adobename"]="afii57400",
- ["category"]="nd",
- ["description"]="ARABIC-INDIC DIGIT EIGHT",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0668, -- ٨
+ adobename="afii57400",
+ category="nd",
+ description="ARABIC-INDIC DIGIT EIGHT",
+ direction="an",
+ linebreak="nu",
+ unicodeslot=0x0668,
},
[0x0669]={
- ["adobename"]="afii57401",
- ["category"]="nd",
- ["description"]="ARABIC-INDIC DIGIT NINE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0669, -- ٩
+ adobename="afii57401",
+ category="nd",
+ description="ARABIC-INDIC DIGIT NINE",
+ direction="an",
+ linebreak="nu",
+ unicodeslot=0x0669,
},
[0x066A]={
- ["adobename"]="afii57381",
- ["category"]="po",
- ["description"]="ARABIC PERCENT SIGN",
- ["linebreak"]="ex",
- ["unicodeslot"]=0x066A, -- ٪
+ adobename="afii57381",
+ category="po",
+ description="ARABIC PERCENT SIGN",
+ direction="et",
+ linebreak="ex",
+ unicodeslot=0x066A,
},
[0x066B]={
- ["category"]="po",
- ["description"]="ARABIC DECIMAL SEPARATOR",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x066B, -- ٫
+ category="po",
+ description="ARABIC DECIMAL SEPARATOR",
+ direction="an",
+ linebreak="nu",
+ unicodeslot=0x066B,
},
[0x066C]={
- ["category"]="po",
- ["description"]="ARABIC THOUSANDS SEPARATOR",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x066C, -- ٬
+ category="po",
+ description="ARABIC THOUSANDS SEPARATOR",
+ direction="an",
+ linebreak="nu",
+ unicodeslot=0x066C,
},
[0x066D]={
- ["adobename"]="afii63167",
- ["category"]="po",
- ["description"]="ARABIC FIVE POINTED STAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x066D, -- ٭
+ adobename="afii63167",
+ category="po",
+ description="ARABIC FIVE POINTED STAR",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x066D,
},
[0x066E]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER DOTLESS BEH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x066E, -- ٮ
+ category="lo",
+ description="ARABIC LETTER DOTLESS BEH",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x066E,
},
[0x066F]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER DOTLESS QAF",
- ["linebreak"]="al",
- ["unicodeslot"]=0x066F, -- ٯ
+ category="lo",
+ description="ARABIC LETTER DOTLESS QAF",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x066F,
},
[0x0670]={
- ["category"]="mn",
- ["description"]="ARABIC LETTER SUPERSCRIPT ALEF",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0670, -- ٰ
+ category="mn",
+ description="ARABIC LETTER SUPERSCRIPT ALEF",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0670,
},
[0x0671]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER ALEF WASLA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0671, -- ٱ
+ category="lo",
+ description="ARABIC LETTER ALEF WASLA",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0671,
},
[0x0672]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER ALEF WITH WAVY HAMZA ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0627,
- ["unicodeslot"]=0x0672, -- ٲ
+ category="lo",
+ description="ARABIC LETTER ALEF WITH WAVY HAMZA ABOVE",
+ direction="al",
+ linebreak="al",
+ shcode=0x0627,
+ unicodeslot=0x0672,
},
[0x0673]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER ALEF WITH WAVY HAMZA BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x0627,
- ["unicodeslot"]=0x0673, -- ٳ
+ category="lo",
+ description="ARABIC LETTER ALEF WITH WAVY HAMZA BELOW",
+ direction="al",
+ linebreak="al",
+ shcode=0x0627,
+ unicodeslot=0x0673,
},
[0x0674]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER HIGH HAMZA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0674, -- ٴ
+ category="lo",
+ description="ARABIC LETTER HIGH HAMZA",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0674,
},
[0x0675]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER HIGH HAMZA ALEF",
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x0627, 0x0674 },
- ["unicodeslot"]=0x0675, -- ٵ
+ category="lo",
+ description="ARABIC LETTER HIGH HAMZA ALEF",
+ direction="al",
+ linebreak="al",
+ specials={ "compat", 0x0627, 0x0674 },
+ unicodeslot=0x0675,
},
[0x0676]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER HIGH HAMZA WAW",
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x0648, 0x0674 },
- ["unicodeslot"]=0x0676, -- ٶ
+ category="lo",
+ description="ARABIC LETTER HIGH HAMZA WAW",
+ direction="al",
+ linebreak="al",
+ specials={ "compat", 0x0648, 0x0674 },
+ unicodeslot=0x0676,
},
[0x0677]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER U WITH HAMZA ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x06C7,
- ["specials"]={ "compat", 0x06C7, 0x0674 },
- ["unicodeslot"]=0x0677, -- ٷ
+ category="lo",
+ description="ARABIC LETTER U WITH HAMZA ABOVE",
+ direction="al",
+ linebreak="al",
+ shcode=0x06C7,
+ specials={ "compat", 0x06C7, 0x0674 },
+ unicodeslot=0x0677,
},
[0x0678]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER HIGH HAMZA YEH",
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x064A, 0x0674 },
- ["unicodeslot"]=0x0678, -- ٸ
+ category="lo",
+ description="ARABIC LETTER HIGH HAMZA YEH",
+ direction="al",
+ linebreak="al",
+ specials={ "compat", 0x064A, 0x0674 },
+ unicodeslot=0x0678,
},
[0x0679]={
- ["adobename"]="afii57511",
- ["category"]="lo",
- ["description"]="ARABIC LETTER TTEH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0679, -- ٹ
+ adobename="afii57511",
+ category="lo",
+ description="ARABIC LETTER TTEH",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0679,
},
[0x067A]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER TTEHEH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x067A, -- ٺ
+ category="lo",
+ description="ARABIC LETTER TTEHEH",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x067A,
},
[0x067B]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER BEEH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x067B, -- ٻ
+ category="lo",
+ description="ARABIC LETTER BEEH",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x067B,
},
[0x067C]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER TEH WITH RING",
- ["linebreak"]="al",
- ["shcode"]=0x062A,
- ["unicodeslot"]=0x067C, -- ټ
+ category="lo",
+ description="ARABIC LETTER TEH WITH RING",
+ direction="al",
+ linebreak="al",
+ shcode=0x062A,
+ unicodeslot=0x067C,
},
[0x067D]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER TEH WITH THREE DOTS ABOVE DOWNWARDS",
- ["linebreak"]="al",
- ["shcode"]=0x062A,
- ["unicodeslot"]=0x067D, -- ٽ
+ category="lo",
+ description="ARABIC LETTER TEH WITH THREE DOTS ABOVE DOWNWARDS",
+ direction="al",
+ linebreak="al",
+ shcode=0x062A,
+ unicodeslot=0x067D,
},
[0x067E]={
- ["adobename"]="afii57506",
- ["category"]="lo",
- ["description"]="ARABIC LETTER PEH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x067E, -- پ
+ adobename="afii57506",
+ category="lo",
+ description="ARABIC LETTER PEH",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x067E,
},
[0x067F]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER TEHEH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x067F, -- ٿ
+ category="lo",
+ description="ARABIC LETTER TEHEH",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x067F,
},
[0x0680]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER BEHEH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0680, -- ڀ
+ category="lo",
+ description="ARABIC LETTER BEHEH",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0680,
},
[0x0681]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER HAH WITH HAMZA ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x062D,
- ["unicodeslot"]=0x0681, -- ځ
+ category="lo",
+ description="ARABIC LETTER HAH WITH HAMZA ABOVE",
+ direction="al",
+ linebreak="al",
+ shcode=0x062D,
+ unicodeslot=0x0681,
},
[0x0682]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER HAH WITH TWO DOTS VERTICAL ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x062D,
- ["unicodeslot"]=0x0682, -- ڂ
+ category="lo",
+ description="ARABIC LETTER HAH WITH TWO DOTS VERTICAL ABOVE",
+ direction="al",
+ linebreak="al",
+ shcode=0x062D,
+ unicodeslot=0x0682,
},
[0x0683]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER NYEH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0683, -- ڃ
+ category="lo",
+ description="ARABIC LETTER NYEH",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0683,
},
[0x0684]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER DYEH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0684, -- ڄ
+ category="lo",
+ description="ARABIC LETTER DYEH",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0684,
},
[0x0685]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER HAH WITH THREE DOTS ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x062D,
- ["unicodeslot"]=0x0685, -- څ
+ category="lo",
+ description="ARABIC LETTER HAH WITH THREE DOTS ABOVE",
+ direction="al",
+ linebreak="al",
+ shcode=0x062D,
+ unicodeslot=0x0685,
},
[0x0686]={
- ["adobename"]="afii57507",
- ["category"]="lo",
- ["description"]="ARABIC LETTER TCHEH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0686, -- چ
+ adobename="afii57507",
+ category="lo",
+ description="ARABIC LETTER TCHEH",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0686,
},
[0x0687]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER TCHEHEH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0687, -- ڇ
+ category="lo",
+ description="ARABIC LETTER TCHEHEH",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0687,
},
[0x0688]={
- ["adobename"]="afii57512",
- ["category"]="lo",
- ["description"]="ARABIC LETTER DDAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0688, -- ڈ
+ adobename="afii57512",
+ category="lo",
+ description="ARABIC LETTER DDAL",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0688,
},
[0x0689]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER DAL WITH RING",
- ["linebreak"]="al",
- ["shcode"]=0x062F,
- ["unicodeslot"]=0x0689, -- ډ
+ category="lo",
+ description="ARABIC LETTER DAL WITH RING",
+ direction="al",
+ linebreak="al",
+ shcode=0x062F,
+ unicodeslot=0x0689,
},
[0x068A]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER DAL WITH DOT BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x062F,
- ["unicodeslot"]=0x068A, -- ڊ
+ category="lo",
+ description="ARABIC LETTER DAL WITH DOT BELOW",
+ direction="al",
+ linebreak="al",
+ shcode=0x062F,
+ unicodeslot=0x068A,
},
[0x068B]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER DAL WITH DOT BELOW AND SMALL TAH",
- ["linebreak"]="al",
- ["shcode"]=0x062F,
- ["unicodeslot"]=0x068B, -- ڋ
+ category="lo",
+ description="ARABIC LETTER DAL WITH DOT BELOW AND SMALL TAH",
+ direction="al",
+ linebreak="al",
+ shcode=0x062F,
+ unicodeslot=0x068B,
},
[0x068C]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER DAHAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x068C, -- ڌ
+ category="lo",
+ description="ARABIC LETTER DAHAL",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x068C,
},
[0x068D]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER DDAHAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x068D, -- ڍ
+ category="lo",
+ description="ARABIC LETTER DDAHAL",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x068D,
},
[0x068E]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER DUL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x068E, -- ڎ
+ category="lo",
+ description="ARABIC LETTER DUL",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x068E,
},
[0x068F]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER DAL WITH THREE DOTS ABOVE DOWNWARDS",
- ["linebreak"]="al",
- ["shcode"]=0x062F,
- ["unicodeslot"]=0x068F, -- ڏ
+ category="lo",
+ description="ARABIC LETTER DAL WITH THREE DOTS ABOVE DOWNWARDS",
+ direction="al",
+ linebreak="al",
+ shcode=0x062F,
+ unicodeslot=0x068F,
},
[0x0690]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER DAL WITH FOUR DOTS ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x062F,
- ["unicodeslot"]=0x0690, -- ڐ
+ category="lo",
+ description="ARABIC LETTER DAL WITH FOUR DOTS ABOVE",
+ direction="al",
+ linebreak="al",
+ shcode=0x062F,
+ unicodeslot=0x0690,
},
[0x0691]={
- ["adobename"]="afii57513",
- ["category"]="lo",
- ["description"]="ARABIC LETTER RREH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0691, -- ڑ
+ adobename="afii57513",
+ category="lo",
+ description="ARABIC LETTER RREH",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0691,
},
[0x0692]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER REH WITH SMALL V",
- ["linebreak"]="al",
- ["shcode"]=0x0631,
- ["unicodeslot"]=0x0692, -- ڒ
+ category="lo",
+ description="ARABIC LETTER REH WITH SMALL V",
+ direction="al",
+ linebreak="al",
+ shcode=0x0631,
+ unicodeslot=0x0692,
},
[0x0693]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER REH WITH RING",
- ["linebreak"]="al",
- ["shcode"]=0x0631,
- ["unicodeslot"]=0x0693, -- ړ
+ category="lo",
+ description="ARABIC LETTER REH WITH RING",
+ direction="al",
+ linebreak="al",
+ shcode=0x0631,
+ unicodeslot=0x0693,
},
[0x0694]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER REH WITH DOT BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x0631,
- ["unicodeslot"]=0x0694, -- ڔ
+ category="lo",
+ description="ARABIC LETTER REH WITH DOT BELOW",
+ direction="al",
+ linebreak="al",
+ shcode=0x0631,
+ unicodeslot=0x0694,
},
[0x0695]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER REH WITH SMALL V BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x0631,
- ["unicodeslot"]=0x0695, -- ڕ
+ category="lo",
+ description="ARABIC LETTER REH WITH SMALL V BELOW",
+ direction="al",
+ linebreak="al",
+ shcode=0x0631,
+ unicodeslot=0x0695,
},
[0x0696]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER REH WITH DOT BELOW AND DOT ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0631,
- ["unicodeslot"]=0x0696, -- ږ
+ category="lo",
+ description="ARABIC LETTER REH WITH DOT BELOW AND DOT ABOVE",
+ direction="al",
+ linebreak="al",
+ shcode=0x0631,
+ unicodeslot=0x0696,
},
[0x0697]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER REH WITH TWO DOTS ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0631,
- ["unicodeslot"]=0x0697, -- ڗ
+ category="lo",
+ description="ARABIC LETTER REH WITH TWO DOTS ABOVE",
+ direction="al",
+ linebreak="al",
+ shcode=0x0631,
+ unicodeslot=0x0697,
},
[0x0698]={
- ["adobename"]="afii57508",
- ["category"]="lo",
- ["description"]="ARABIC LETTER JEH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0698, -- ژ
+ adobename="afii57508",
+ category="lo",
+ description="ARABIC LETTER JEH",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0698,
},
[0x0699]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER REH WITH FOUR DOTS ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0631,
- ["unicodeslot"]=0x0699, -- ڙ
+ category="lo",
+ description="ARABIC LETTER REH WITH FOUR DOTS ABOVE",
+ direction="al",
+ linebreak="al",
+ shcode=0x0631,
+ unicodeslot=0x0699,
},
[0x069A]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER SEEN WITH DOT BELOW AND DOT ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0633,
- ["unicodeslot"]=0x069A, -- ښ
+ category="lo",
+ description="ARABIC LETTER SEEN WITH DOT BELOW AND DOT ABOVE",
+ direction="al",
+ linebreak="al",
+ shcode=0x0633,
+ unicodeslot=0x069A,
},
[0x069B]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER SEEN WITH THREE DOTS BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x0633,
- ["unicodeslot"]=0x069B, -- ڛ
+ category="lo",
+ description="ARABIC LETTER SEEN WITH THREE DOTS BELOW",
+ direction="al",
+ linebreak="al",
+ shcode=0x0633,
+ unicodeslot=0x069B,
},
[0x069C]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER SEEN WITH THREE DOTS BELOW AND THREE DOTS ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0633,
- ["unicodeslot"]=0x069C, -- ڜ
+ category="lo",
+ description="ARABIC LETTER SEEN WITH THREE DOTS BELOW AND THREE DOTS ABOVE",
+ direction="al",
+ linebreak="al",
+ shcode=0x0633,
+ unicodeslot=0x069C,
},
[0x069D]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER SAD WITH TWO DOTS BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x0635,
- ["unicodeslot"]=0x069D, -- ڝ
+ category="lo",
+ description="ARABIC LETTER SAD WITH TWO DOTS BELOW",
+ direction="al",
+ linebreak="al",
+ shcode=0x0635,
+ unicodeslot=0x069D,
},
[0x069E]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER SAD WITH THREE DOTS ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0635,
- ["unicodeslot"]=0x069E, -- ڞ
+ category="lo",
+ description="ARABIC LETTER SAD WITH THREE DOTS ABOVE",
+ direction="al",
+ linebreak="al",
+ shcode=0x0635,
+ unicodeslot=0x069E,
},
[0x069F]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER TAH WITH THREE DOTS ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0637,
- ["unicodeslot"]=0x069F, -- ڟ
+ category="lo",
+ description="ARABIC LETTER TAH WITH THREE DOTS ABOVE",
+ direction="al",
+ linebreak="al",
+ shcode=0x0637,
+ unicodeslot=0x069F,
},
[0x06A0]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER AIN WITH THREE DOTS ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0639,
- ["unicodeslot"]=0x06A0, -- ڠ
+ category="lo",
+ description="ARABIC LETTER AIN WITH THREE DOTS ABOVE",
+ direction="al",
+ linebreak="al",
+ shcode=0x0639,
+ unicodeslot=0x06A0,
},
[0x06A1]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER DOTLESS FEH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x06A1, -- ڡ
+ category="lo",
+ description="ARABIC LETTER DOTLESS FEH",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x06A1,
},
[0x06A2]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER FEH WITH DOT MOVED BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x0641,
- ["unicodeslot"]=0x06A2, -- ڢ
+ category="lo",
+ description="ARABIC LETTER FEH WITH DOT MOVED BELOW",
+ direction="al",
+ linebreak="al",
+ shcode=0x0641,
+ unicodeslot=0x06A2,
},
[0x06A3]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER FEH WITH DOT BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x0641,
- ["unicodeslot"]=0x06A3, -- ڣ
+ category="lo",
+ description="ARABIC LETTER FEH WITH DOT BELOW",
+ direction="al",
+ linebreak="al",
+ shcode=0x0641,
+ unicodeslot=0x06A3,
},
[0x06A4]={
- ["adobename"]="afii57505",
- ["category"]="lo",
- ["description"]="ARABIC LETTER VEH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x06A4, -- ڤ
+ adobename="afii57505",
+ category="lo",
+ description="ARABIC LETTER VEH",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x06A4,
},
[0x06A5]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER FEH WITH THREE DOTS BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x0641,
- ["unicodeslot"]=0x06A5, -- ڥ
+ category="lo",
+ description="ARABIC LETTER FEH WITH THREE DOTS BELOW",
+ direction="al",
+ linebreak="al",
+ shcode=0x0641,
+ unicodeslot=0x06A5,
},
[0x06A6]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER PEHEH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x06A6, -- ڦ
+ category="lo",
+ description="ARABIC LETTER PEHEH",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x06A6,
},
[0x06A7]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER QAF WITH DOT ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0642,
- ["unicodeslot"]=0x06A7, -- ڧ
+ category="lo",
+ description="ARABIC LETTER QAF WITH DOT ABOVE",
+ direction="al",
+ linebreak="al",
+ shcode=0x0642,
+ unicodeslot=0x06A7,
},
[0x06A8]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER QAF WITH THREE DOTS ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0642,
- ["unicodeslot"]=0x06A8, -- ڨ
+ category="lo",
+ description="ARABIC LETTER QAF WITH THREE DOTS ABOVE",
+ direction="al",
+ linebreak="al",
+ shcode=0x0642,
+ unicodeslot=0x06A8,
},
[0x06A9]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER KEHEH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x06A9, -- ک
+ category="lo",
+ description="ARABIC LETTER KEHEH",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x06A9,
},
[0x06AA]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER SWASH KAF",
- ["linebreak"]="al",
- ["unicodeslot"]=0x06AA, -- ڪ
+ category="lo",
+ description="ARABIC LETTER SWASH KAF",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x06AA,
},
[0x06AB]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER KAF WITH RING",
- ["linebreak"]="al",
- ["shcode"]=0x0643,
- ["unicodeslot"]=0x06AB, -- ګ
+ category="lo",
+ description="ARABIC LETTER KAF WITH RING",
+ direction="al",
+ linebreak="al",
+ shcode=0x0643,
+ unicodeslot=0x06AB,
},
[0x06AC]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER KAF WITH DOT ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0643,
- ["unicodeslot"]=0x06AC, -- ڬ
+ category="lo",
+ description="ARABIC LETTER KAF WITH DOT ABOVE",
+ direction="al",
+ linebreak="al",
+ shcode=0x0643,
+ unicodeslot=0x06AC,
},
[0x06AD]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER NG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x06AD, -- ڭ
+ category="lo",
+ description="ARABIC LETTER NG",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x06AD,
},
[0x06AE]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER KAF WITH THREE DOTS BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x0643,
- ["unicodeslot"]=0x06AE, -- ڮ
+ category="lo",
+ description="ARABIC LETTER KAF WITH THREE DOTS BELOW",
+ direction="al",
+ linebreak="al",
+ shcode=0x0643,
+ unicodeslot=0x06AE,
},
[0x06AF]={
- ["adobename"]="afii57509",
- ["category"]="lo",
- ["description"]="ARABIC LETTER GAF",
- ["linebreak"]="al",
- ["unicodeslot"]=0x06AF, -- گ
+ adobename="afii57509",
+ category="lo",
+ description="ARABIC LETTER GAF",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x06AF,
},
[0x06B0]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER GAF WITH RING",
- ["linebreak"]="al",
- ["shcode"]=0x06AF,
- ["unicodeslot"]=0x06B0, -- ڰ
+ category="lo",
+ description="ARABIC LETTER GAF WITH RING",
+ direction="al",
+ linebreak="al",
+ shcode=0x06AF,
+ unicodeslot=0x06B0,
},
[0x06B1]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER NGOEH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x06B1, -- ڱ
+ category="lo",
+ description="ARABIC LETTER NGOEH",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x06B1,
},
[0x06B2]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER GAF WITH TWO DOTS BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x06AF,
- ["unicodeslot"]=0x06B2, -- ڲ
+ category="lo",
+ description="ARABIC LETTER GAF WITH TWO DOTS BELOW",
+ direction="al",
+ linebreak="al",
+ shcode=0x06AF,
+ unicodeslot=0x06B2,
},
[0x06B3]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER GUEH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x06B3, -- ڳ
+ category="lo",
+ description="ARABIC LETTER GUEH",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x06B3,
},
[0x06B4]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER GAF WITH THREE DOTS ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x06AF,
- ["unicodeslot"]=0x06B4, -- ڴ
+ category="lo",
+ description="ARABIC LETTER GAF WITH THREE DOTS ABOVE",
+ direction="al",
+ linebreak="al",
+ shcode=0x06AF,
+ unicodeslot=0x06B4,
},
[0x06B5]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER LAM WITH SMALL V",
- ["linebreak"]="al",
- ["shcode"]=0x0644,
- ["unicodeslot"]=0x06B5, -- ڵ
+ category="lo",
+ description="ARABIC LETTER LAM WITH SMALL V",
+ direction="al",
+ linebreak="al",
+ shcode=0x0644,
+ unicodeslot=0x06B5,
},
[0x06B6]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER LAM WITH DOT ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0644,
- ["unicodeslot"]=0x06B6, -- ڶ
+ category="lo",
+ description="ARABIC LETTER LAM WITH DOT ABOVE",
+ direction="al",
+ linebreak="al",
+ shcode=0x0644,
+ unicodeslot=0x06B6,
},
[0x06B7]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER LAM WITH THREE DOTS ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0644,
- ["unicodeslot"]=0x06B7, -- ڷ
+ category="lo",
+ description="ARABIC LETTER LAM WITH THREE DOTS ABOVE",
+ direction="al",
+ linebreak="al",
+ shcode=0x0644,
+ unicodeslot=0x06B7,
},
[0x06B8]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER LAM WITH THREE DOTS BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x0644,
- ["unicodeslot"]=0x06B8, -- ڸ
+ category="lo",
+ description="ARABIC LETTER LAM WITH THREE DOTS BELOW",
+ direction="al",
+ linebreak="al",
+ shcode=0x0644,
+ unicodeslot=0x06B8,
},
[0x06B9]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER NOON WITH DOT BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x0646,
- ["unicodeslot"]=0x06B9, -- ڹ
+ category="lo",
+ description="ARABIC LETTER NOON WITH DOT BELOW",
+ direction="al",
+ linebreak="al",
+ shcode=0x0646,
+ unicodeslot=0x06B9,
},
[0x06BA]={
- ["adobename"]="afii57514",
- ["category"]="lo",
- ["description"]="ARABIC LETTER NOON GHUNNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x06BA, -- ں
+ adobename="afii57514",
+ category="lo",
+ description="ARABIC LETTER NOON GHUNNA",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x06BA,
},
[0x06BB]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER RNOON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x06BB, -- ڻ
+ category="lo",
+ description="ARABIC LETTER RNOON",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x06BB,
},
[0x06BC]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER NOON WITH RING",
- ["linebreak"]="al",
- ["shcode"]=0x0646,
- ["unicodeslot"]=0x06BC, -- ڼ
+ category="lo",
+ description="ARABIC LETTER NOON WITH RING",
+ direction="al",
+ linebreak="al",
+ shcode=0x0646,
+ unicodeslot=0x06BC,
},
[0x06BD]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER NOON WITH THREE DOTS ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0646,
- ["unicodeslot"]=0x06BD, -- ڽ
+ category="lo",
+ description="ARABIC LETTER NOON WITH THREE DOTS ABOVE",
+ direction="al",
+ linebreak="al",
+ shcode=0x0646,
+ unicodeslot=0x06BD,
},
[0x06BE]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER HEH DOACHASHMEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x06BE, -- ھ
+ category="lo",
+ description="ARABIC LETTER HEH DOACHASHMEE",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x06BE,
},
[0x06BF]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER TCHEH WITH DOT ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0686,
- ["unicodeslot"]=0x06BF, -- ڿ
+ category="lo",
+ description="ARABIC LETTER TCHEH WITH DOT ABOVE",
+ direction="al",
+ linebreak="al",
+ shcode=0x0686,
+ unicodeslot=0x06BF,
},
[0x06C0]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER HEH WITH YEH ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0647,
- ["specials"]={ "char", 0x06D5, 0x0654 },
- ["unicodeslot"]=0x06C0, -- ۀ
+ category="lo",
+ description="ARABIC LETTER HEH WITH YEH ABOVE",
+ direction="al",
+ linebreak="al",
+ shcode=0x0647,
+ specials={ "char", 0x06D5, 0x0654 },
+ unicodeslot=0x06C0,
},
[0x06C1]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER HEH GOAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x06C1, -- ہ
+ category="lo",
+ description="ARABIC LETTER HEH GOAL",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x06C1,
},
[0x06C2]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER HEH GOAL WITH HAMZA ABOVE",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x06C1, 0x0654 },
- ["unicodeslot"]=0x06C2, -- ۂ
+ category="lo",
+ description="ARABIC LETTER HEH GOAL WITH HAMZA ABOVE",
+ direction="al",
+ linebreak="al",
+ specials={ "char", 0x06C1, 0x0654 },
+ unicodeslot=0x06C2,
},
[0x06C3]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER TEH MARBUTA GOAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x06C3, -- ۃ
+ category="lo",
+ description="ARABIC LETTER TEH MARBUTA GOAL",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x06C3,
},
[0x06C4]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER WAW WITH RING",
- ["linebreak"]="al",
- ["shcode"]=0x0648,
- ["unicodeslot"]=0x06C4, -- ۄ
+ category="lo",
+ description="ARABIC LETTER WAW WITH RING",
+ direction="al",
+ linebreak="al",
+ shcode=0x0648,
+ unicodeslot=0x06C4,
},
[0x06C5]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER KIRGHIZ OE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x06C5, -- ۅ
+ category="lo",
+ description="ARABIC LETTER KIRGHIZ OE",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x06C5,
},
[0x06C6]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER OE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x06C6, -- ۆ
+ category="lo",
+ description="ARABIC LETTER OE",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x06C6,
},
[0x06C7]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER U",
- ["linebreak"]="al",
- ["unicodeslot"]=0x06C7, -- ۇ
+ category="lo",
+ description="ARABIC LETTER U",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x06C7,
},
[0x06C8]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER YU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x06C8, -- ۈ
+ category="lo",
+ description="ARABIC LETTER YU",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x06C8,
},
[0x06C9]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER KIRGHIZ YU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x06C9, -- ۉ
+ category="lo",
+ description="ARABIC LETTER KIRGHIZ YU",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x06C9,
},
[0x06CA]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER WAW WITH TWO DOTS ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0648,
- ["unicodeslot"]=0x06CA, -- ۊ
+ category="lo",
+ description="ARABIC LETTER WAW WITH TWO DOTS ABOVE",
+ direction="al",
+ linebreak="al",
+ shcode=0x0648,
+ unicodeslot=0x06CA,
},
[0x06CB]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER VE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x06CB, -- ۋ
+ category="lo",
+ description="ARABIC LETTER VE",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x06CB,
},
[0x06CC]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER FARSI YEH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x06CC, -- ی
+ category="lo",
+ description="ARABIC LETTER FARSI YEH",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x06CC,
},
[0x06CD]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER YEH WITH TAIL",
- ["linebreak"]="al",
- ["shcode"]=0x064A,
- ["unicodeslot"]=0x06CD, -- ۍ
+ category="lo",
+ description="ARABIC LETTER YEH WITH TAIL",
+ direction="al",
+ linebreak="al",
+ shcode=0x064A,
+ unicodeslot=0x06CD,
},
[0x06CE]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER YEH WITH SMALL V",
- ["linebreak"]="al",
- ["shcode"]=0x064A,
- ["unicodeslot"]=0x06CE, -- ێ
+ category="lo",
+ description="ARABIC LETTER YEH WITH SMALL V",
+ direction="al",
+ linebreak="al",
+ shcode=0x064A,
+ unicodeslot=0x06CE,
},
[0x06CF]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER WAW WITH DOT ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0648,
- ["unicodeslot"]=0x06CF, -- ۏ
+ category="lo",
+ description="ARABIC LETTER WAW WITH DOT ABOVE",
+ direction="al",
+ linebreak="al",
+ shcode=0x0648,
+ unicodeslot=0x06CF,
},
[0x06D0]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x06D0, -- ې
+ category="lo",
+ description="ARABIC LETTER E",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x06D0,
},
[0x06D1]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER YEH WITH THREE DOTS BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x064A,
- ["unicodeslot"]=0x06D1, -- ۑ
+ category="lo",
+ description="ARABIC LETTER YEH WITH THREE DOTS BELOW",
+ direction="al",
+ linebreak="al",
+ shcode=0x064A,
+ unicodeslot=0x06D1,
},
[0x06D2]={
- ["adobename"]="afii57519",
- ["category"]="lo",
- ["description"]="ARABIC LETTER YEH BARREE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x06D2, -- ے
+ adobename="afii57519",
+ category="lo",
+ description="ARABIC LETTER YEH BARREE",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x06D2,
},
[0x06D3]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER YEH BARREE WITH HAMZA ABOVE",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x06D2, 0x0654 },
- ["unicodeslot"]=0x06D3, -- ۓ
+ category="lo",
+ description="ARABIC LETTER YEH BARREE WITH HAMZA ABOVE",
+ direction="al",
+ linebreak="al",
+ specials={ "char", 0x06D2, 0x0654 },
+ unicodeslot=0x06D3,
},
[0x06D4]={
- ["category"]="po",
- ["description"]="ARABIC FULL STOP",
- ["linebreak"]="ex",
- ["unicodeslot"]=0x06D4, -- ۔
+ category="po",
+ description="ARABIC FULL STOP",
+ direction="al",
+ linebreak="ex",
+ unicodeslot=0x06D4,
},
[0x06D5]={
- ["adobename"]="afii57534",
- ["category"]="lo",
- ["description"]="ARABIC LETTER AE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x06D5, -- ە
+ adobename="afii57534",
+ category="lo",
+ description="ARABIC LETTER AE",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x06D5,
},
[0x06D6]={
- ["category"]="mn",
- ["description"]="ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x06D6, -- ۖ
+ category="mn",
+ description="ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x06D6,
},
[0x06D7]={
- ["category"]="mn",
- ["description"]="ARABIC SMALL HIGH LIGATURE QAF WITH LAM WITH ALEF MAKSURA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x06D7, -- ۗ
+ category="mn",
+ description="ARABIC SMALL HIGH LIGATURE QAF WITH LAM WITH ALEF MAKSURA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x06D7,
},
[0x06D8]={
- ["category"]="mn",
- ["description"]="ARABIC SMALL HIGH MEEM INITIAL FORM",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x06D8, -- ۘ
+ category="mn",
+ description="ARABIC SMALL HIGH MEEM INITIAL FORM",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x06D8,
},
[0x06D9]={
- ["category"]="mn",
- ["description"]="ARABIC SMALL HIGH LAM ALEF",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x06D9, -- ۙ
+ category="mn",
+ description="ARABIC SMALL HIGH LAM ALEF",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x06D9,
},
[0x06DA]={
- ["category"]="mn",
- ["description"]="ARABIC SMALL HIGH JEEM",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x06DA, -- ۚ
+ category="mn",
+ description="ARABIC SMALL HIGH JEEM",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x06DA,
},
[0x06DB]={
- ["category"]="mn",
- ["description"]="ARABIC SMALL HIGH THREE DOTS",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x06DB, -- ۛ
+ category="mn",
+ description="ARABIC SMALL HIGH THREE DOTS",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x06DB,
},
[0x06DC]={
- ["category"]="mn",
- ["description"]="ARABIC SMALL HIGH SEEN",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x06DC, -- ۜ
+ category="mn",
+ description="ARABIC SMALL HIGH SEEN",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x06DC,
},
[0x06DD]={
- ["category"]="cf",
- ["description"]="ARABIC END OF AYAH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x06DD, -- ۝
+ category="cf",
+ description="ARABIC END OF AYAH",
+ direction="an",
+ linebreak="al",
+ unicodeslot=0x06DD,
},
[0x06DE]={
- ["category"]="me",
- ["description"]="ARABIC START OF RUB EL HIZB",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x06DE, -- ۞
+ category="me",
+ description="ARABIC START OF RUB EL HIZB",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x06DE,
},
[0x06DF]={
- ["category"]="mn",
- ["description"]="ARABIC SMALL HIGH ROUNDED ZERO",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x06DF, -- ۟
+ category="mn",
+ description="ARABIC SMALL HIGH ROUNDED ZERO",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x06DF,
},
[0x06E0]={
- ["category"]="mn",
- ["description"]="ARABIC SMALL HIGH UPRIGHT RECTANGULAR ZERO",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x06E0, -- ۠
+ category="mn",
+ description="ARABIC SMALL HIGH UPRIGHT RECTANGULAR ZERO",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x06E0,
},
[0x06E1]={
- ["category"]="mn",
- ["description"]="ARABIC SMALL HIGH DOTLESS HEAD OF KHAH",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x06E1, -- ۡ
+ category="mn",
+ description="ARABIC SMALL HIGH DOTLESS HEAD OF KHAH",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x06E1,
},
[0x06E2]={
- ["category"]="mn",
- ["description"]="ARABIC SMALL HIGH MEEM ISOLATED FORM",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x06E2, -- ۢ
+ category="mn",
+ description="ARABIC SMALL HIGH MEEM ISOLATED FORM",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x06E2,
},
[0x06E3]={
- ["category"]="mn",
- ["description"]="ARABIC SMALL LOW SEEN",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x06E3, -- ۣ
+ category="mn",
+ description="ARABIC SMALL LOW SEEN",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x06E3,
},
[0x06E4]={
- ["category"]="mn",
- ["description"]="ARABIC SMALL HIGH MADDA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x06E4, -- ۤ
+ category="mn",
+ description="ARABIC SMALL HIGH MADDA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x06E4,
},
[0x06E5]={
- ["category"]="lm",
- ["description"]="ARABIC SMALL WAW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x06E5, -- ۥ
+ category="lm",
+ description="ARABIC SMALL WAW",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x06E5,
},
[0x06E6]={
- ["category"]="lm",
- ["description"]="ARABIC SMALL YEH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x06E6, -- ۦ
+ category="lm",
+ description="ARABIC SMALL YEH",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x06E6,
},
[0x06E7]={
- ["category"]="mn",
- ["description"]="ARABIC SMALL HIGH YEH",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x06E7, -- ۧ
+ category="mn",
+ description="ARABIC SMALL HIGH YEH",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x06E7,
},
[0x06E8]={
- ["category"]="mn",
- ["description"]="ARABIC SMALL HIGH NOON",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x06E8, -- ۨ
+ category="mn",
+ description="ARABIC SMALL HIGH NOON",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x06E8,
},
[0x06E9]={
- ["category"]="so",
- ["description"]="ARABIC PLACE OF SAJDAH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x06E9, -- ۩
+ category="so",
+ description="ARABIC PLACE OF SAJDAH",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x06E9,
},
[0x06EA]={
- ["category"]="mn",
- ["description"]="ARABIC EMPTY CENTRE LOW STOP",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x06EA, -- ۪
+ category="mn",
+ description="ARABIC EMPTY CENTRE LOW STOP",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x06EA,
},
[0x06EB]={
- ["category"]="mn",
- ["description"]="ARABIC EMPTY CENTRE HIGH STOP",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x06EB, -- ۫
+ category="mn",
+ description="ARABIC EMPTY CENTRE HIGH STOP",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x06EB,
},
[0x06EC]={
- ["category"]="mn",
- ["description"]="ARABIC ROUNDED HIGH STOP WITH FILLED CENTRE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x06EC, -- ۬
+ category="mn",
+ description="ARABIC ROUNDED HIGH STOP WITH FILLED CENTRE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x06EC,
},
[0x06ED]={
- ["category"]="mn",
- ["description"]="ARABIC SMALL LOW MEEM",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x06ED, -- ۭ
+ category="mn",
+ description="ARABIC SMALL LOW MEEM",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x06ED,
},
[0x06EE]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER DAL WITH INVERTED V",
- ["linebreak"]="al",
- ["shcode"]=0x062F,
- ["unicodeslot"]=0x06EE, -- ۮ
+ category="lo",
+ description="ARABIC LETTER DAL WITH INVERTED V",
+ direction="al",
+ linebreak="al",
+ shcode=0x062F,
+ unicodeslot=0x06EE,
},
[0x06EF]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER REH WITH INVERTED V",
- ["linebreak"]="al",
- ["shcode"]=0x0631,
- ["unicodeslot"]=0x06EF, -- ۯ
+ category="lo",
+ description="ARABIC LETTER REH WITH INVERTED V",
+ direction="al",
+ linebreak="al",
+ shcode=0x0631,
+ unicodeslot=0x06EF,
},
[0x06F0]={
- ["category"]="nd",
- ["description"]="EXTENDED ARABIC-INDIC DIGIT ZERO",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x06F0, -- ۰
+ category="nd",
+ description="EXTENDED ARABIC-INDIC DIGIT ZERO",
+ direction="en",
+ linebreak="nu",
+ unicodeslot=0x06F0,
},
[0x06F1]={
- ["category"]="nd",
- ["description"]="EXTENDED ARABIC-INDIC DIGIT ONE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x06F1, -- ۱
+ category="nd",
+ description="EXTENDED ARABIC-INDIC DIGIT ONE",
+ direction="en",
+ linebreak="nu",
+ unicodeslot=0x06F1,
},
[0x06F2]={
- ["category"]="nd",
- ["description"]="EXTENDED ARABIC-INDIC DIGIT TWO",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x06F2, -- ۲
+ category="nd",
+ description="EXTENDED ARABIC-INDIC DIGIT TWO",
+ direction="en",
+ linebreak="nu",
+ unicodeslot=0x06F2,
},
[0x06F3]={
- ["category"]="nd",
- ["description"]="EXTENDED ARABIC-INDIC DIGIT THREE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x06F3, -- ۳
+ category="nd",
+ description="EXTENDED ARABIC-INDIC DIGIT THREE",
+ direction="en",
+ linebreak="nu",
+ unicodeslot=0x06F3,
},
[0x06F4]={
- ["category"]="nd",
- ["description"]="EXTENDED ARABIC-INDIC DIGIT FOUR",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x06F4, -- ۴
+ category="nd",
+ description="EXTENDED ARABIC-INDIC DIGIT FOUR",
+ direction="en",
+ linebreak="nu",
+ unicodeslot=0x06F4,
},
[0x06F5]={
- ["category"]="nd",
- ["description"]="EXTENDED ARABIC-INDIC DIGIT FIVE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x06F5, -- ۵
+ category="nd",
+ description="EXTENDED ARABIC-INDIC DIGIT FIVE",
+ direction="en",
+ linebreak="nu",
+ unicodeslot=0x06F5,
},
[0x06F6]={
- ["category"]="nd",
- ["description"]="EXTENDED ARABIC-INDIC DIGIT SIX",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x06F6, -- ۶
+ category="nd",
+ description="EXTENDED ARABIC-INDIC DIGIT SIX",
+ direction="en",
+ linebreak="nu",
+ unicodeslot=0x06F6,
},
[0x06F7]={
- ["category"]="nd",
- ["description"]="EXTENDED ARABIC-INDIC DIGIT SEVEN",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x06F7, -- ۷
+ category="nd",
+ description="EXTENDED ARABIC-INDIC DIGIT SEVEN",
+ direction="en",
+ linebreak="nu",
+ unicodeslot=0x06F7,
},
[0x06F8]={
- ["category"]="nd",
- ["description"]="EXTENDED ARABIC-INDIC DIGIT EIGHT",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x06F8, -- ۸
+ category="nd",
+ description="EXTENDED ARABIC-INDIC DIGIT EIGHT",
+ direction="en",
+ linebreak="nu",
+ unicodeslot=0x06F8,
},
[0x06F9]={
- ["category"]="nd",
- ["description"]="EXTENDED ARABIC-INDIC DIGIT NINE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x06F9, -- ۹
+ category="nd",
+ description="EXTENDED ARABIC-INDIC DIGIT NINE",
+ direction="en",
+ linebreak="nu",
+ unicodeslot=0x06F9,
},
[0x06FA]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER SHEEN WITH DOT BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x0634,
- ["unicodeslot"]=0x06FA, -- ۺ
+ category="lo",
+ description="ARABIC LETTER SHEEN WITH DOT BELOW",
+ direction="al",
+ linebreak="al",
+ shcode=0x0634,
+ unicodeslot=0x06FA,
},
[0x06FB]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER DAD WITH DOT BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x0636,
- ["unicodeslot"]=0x06FB, -- ۻ
+ category="lo",
+ description="ARABIC LETTER DAD WITH DOT BELOW",
+ direction="al",
+ linebreak="al",
+ shcode=0x0636,
+ unicodeslot=0x06FB,
},
[0x06FC]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER GHAIN WITH DOT BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x063A,
- ["unicodeslot"]=0x06FC, -- ۼ
+ category="lo",
+ description="ARABIC LETTER GHAIN WITH DOT BELOW",
+ direction="al",
+ linebreak="al",
+ shcode=0x063A,
+ unicodeslot=0x06FC,
},
[0x06FD]={
- ["category"]="so",
- ["description"]="ARABIC SIGN SINDHI AMPERSAND",
- ["linebreak"]="al",
- ["unicodeslot"]=0x06FD, -- ۽
+ category="so",
+ description="ARABIC SIGN SINDHI AMPERSAND",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x06FD,
},
[0x06FE]={
- ["category"]="so",
- ["description"]="ARABIC SIGN SINDHI POSTPOSITION MEN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x06FE, -- ۾
+ category="so",
+ description="ARABIC SIGN SINDHI POSTPOSITION MEN",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x06FE,
},
[0x06FF]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER HEH WITH INVERTED V",
- ["linebreak"]="al",
- ["shcode"]=0x0647,
- ["unicodeslot"]=0x06FF, -- ۿ
+ category="lo",
+ description="ARABIC LETTER HEH WITH INVERTED V",
+ direction="al",
+ linebreak="al",
+ shcode=0x0647,
+ unicodeslot=0x06FF,
},
[0x0700]={
- ["category"]="po",
- ["description"]="SYRIAC END OF PARAGRAPH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0700, -- ܀
+ category="po",
+ description="SYRIAC END OF PARAGRAPH",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0700,
},
[0x0701]={
- ["category"]="po",
- ["description"]="SYRIAC SUPRALINEAR FULL STOP",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0701, -- ܁
+ category="po",
+ description="SYRIAC SUPRALINEAR FULL STOP",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0701,
},
[0x0702]={
- ["category"]="po",
- ["description"]="SYRIAC SUBLINEAR FULL STOP",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0702, -- ܂
+ category="po",
+ description="SYRIAC SUBLINEAR FULL STOP",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0702,
},
[0x0703]={
- ["category"]="po",
- ["description"]="SYRIAC SUPRALINEAR COLON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0703, -- ܃
+ category="po",
+ description="SYRIAC SUPRALINEAR COLON",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0703,
},
[0x0704]={
- ["category"]="po",
- ["description"]="SYRIAC SUBLINEAR COLON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0704, -- ܄
+ category="po",
+ description="SYRIAC SUBLINEAR COLON",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0704,
},
[0x0705]={
- ["category"]="po",
- ["description"]="SYRIAC HORIZONTAL COLON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0705, -- ܅
+ category="po",
+ description="SYRIAC HORIZONTAL COLON",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0705,
},
[0x0706]={
- ["category"]="po",
- ["description"]="SYRIAC COLON SKEWED LEFT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0706, -- ܆
+ category="po",
+ description="SYRIAC COLON SKEWED LEFT",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0706,
},
[0x0707]={
- ["category"]="po",
- ["description"]="SYRIAC COLON SKEWED RIGHT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0707, -- ܇
+ category="po",
+ description="SYRIAC COLON SKEWED RIGHT",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0707,
},
[0x0708]={
- ["category"]="po",
- ["description"]="SYRIAC SUPRALINEAR COLON SKEWED LEFT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0708, -- ܈
+ category="po",
+ description="SYRIAC SUPRALINEAR COLON SKEWED LEFT",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0708,
},
[0x0709]={
- ["category"]="po",
- ["description"]="SYRIAC SUBLINEAR COLON SKEWED RIGHT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0709, -- ܉
+ category="po",
+ description="SYRIAC SUBLINEAR COLON SKEWED RIGHT",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0709,
},
[0x070A]={
- ["category"]="po",
- ["description"]="SYRIAC CONTRACTION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x070A, -- ܊
+ category="po",
+ description="SYRIAC CONTRACTION",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x070A,
},
[0x070B]={
- ["category"]="po",
- ["description"]="SYRIAC HARKLEAN OBELUS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x070B, -- ܋
+ category="po",
+ description="SYRIAC HARKLEAN OBELUS",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x070B,
},
[0x070C]={
- ["category"]="po",
- ["description"]="SYRIAC HARKLEAN METOBELUS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x070C, -- ܌
+ category="po",
+ description="SYRIAC HARKLEAN METOBELUS",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x070C,
},
[0x070D]={
- ["category"]="po",
- ["description"]="SYRIAC HARKLEAN ASTERISCUS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x070D, -- ܍
+ category="po",
+ description="SYRIAC HARKLEAN ASTERISCUS",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x070D,
},
[0x070F]={
- ["category"]="cf",
- ["description"]="SYRIAC ABBREVIATION MARK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x070F, -- ܏
+ category="cf",
+ description="SYRIAC ABBREVIATION MARK",
+ direction="bn",
+ linebreak="al",
+ unicodeslot=0x070F,
},
[0x0710]={
- ["category"]="lo",
- ["description"]="SYRIAC LETTER ALAPH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0710, -- ܐ
+ category="lo",
+ description="SYRIAC LETTER ALAPH",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0710,
},
[0x0711]={
- ["category"]="mn",
- ["description"]="SYRIAC LETTER SUPERSCRIPT ALAPH",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0711, -- ܑ
+ category="mn",
+ description="SYRIAC LETTER SUPERSCRIPT ALAPH",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0711,
},
[0x0712]={
- ["category"]="lo",
- ["description"]="SYRIAC LETTER BETH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0712, -- ܒ
+ category="lo",
+ description="SYRIAC LETTER BETH",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0712,
},
[0x0713]={
- ["category"]="lo",
- ["description"]="SYRIAC LETTER GAMAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0713, -- ܓ
+ category="lo",
+ description="SYRIAC LETTER GAMAL",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0713,
},
[0x0714]={
- ["category"]="lo",
- ["description"]="SYRIAC LETTER GAMAL GARSHUNI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0714, -- ܔ
+ category="lo",
+ description="SYRIAC LETTER GAMAL GARSHUNI",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0714,
},
[0x0715]={
- ["category"]="lo",
- ["description"]="SYRIAC LETTER DALATH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0715, -- ܕ
+ category="lo",
+ description="SYRIAC LETTER DALATH",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0715,
},
[0x0716]={
- ["category"]="lo",
- ["description"]="SYRIAC LETTER DOTLESS DALATH RISH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0716, -- ܖ
+ category="lo",
+ description="SYRIAC LETTER DOTLESS DALATH RISH",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0716,
},
[0x0717]={
- ["category"]="lo",
- ["description"]="SYRIAC LETTER HE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0717, -- ܗ
+ category="lo",
+ description="SYRIAC LETTER HE",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0717,
},
[0x0718]={
- ["category"]="lo",
- ["description"]="SYRIAC LETTER WAW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0718, -- ܘ
+ category="lo",
+ description="SYRIAC LETTER WAW",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0718,
},
[0x0719]={
- ["category"]="lo",
- ["description"]="SYRIAC LETTER ZAIN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0719, -- ܙ
+ category="lo",
+ description="SYRIAC LETTER ZAIN",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0719,
},
[0x071A]={
- ["category"]="lo",
- ["description"]="SYRIAC LETTER HETH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x071A, -- ܚ
+ category="lo",
+ description="SYRIAC LETTER HETH",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x071A,
},
[0x071B]={
- ["category"]="lo",
- ["description"]="SYRIAC LETTER TETH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x071B, -- ܛ
+ category="lo",
+ description="SYRIAC LETTER TETH",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x071B,
},
[0x071C]={
- ["category"]="lo",
- ["description"]="SYRIAC LETTER TETH GARSHUNI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x071C, -- ܜ
+ category="lo",
+ description="SYRIAC LETTER TETH GARSHUNI",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x071C,
},
[0x071D]={
- ["category"]="lo",
- ["description"]="SYRIAC LETTER YUDH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x071D, -- ܝ
+ category="lo",
+ description="SYRIAC LETTER YUDH",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x071D,
},
[0x071E]={
- ["category"]="lo",
- ["description"]="SYRIAC LETTER YUDH HE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x071E, -- ܞ
+ category="lo",
+ description="SYRIAC LETTER YUDH HE",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x071E,
},
[0x071F]={
- ["category"]="lo",
- ["description"]="SYRIAC LETTER KAPH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x071F, -- ܟ
+ category="lo",
+ description="SYRIAC LETTER KAPH",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x071F,
},
[0x0720]={
- ["category"]="lo",
- ["description"]="SYRIAC LETTER LAMADH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0720, -- ܠ
+ category="lo",
+ description="SYRIAC LETTER LAMADH",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0720,
},
[0x0721]={
- ["category"]="lo",
- ["description"]="SYRIAC LETTER MIM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0721, -- ܡ
+ category="lo",
+ description="SYRIAC LETTER MIM",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0721,
},
[0x0722]={
- ["category"]="lo",
- ["description"]="SYRIAC LETTER NUN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0722, -- ܢ
+ category="lo",
+ description="SYRIAC LETTER NUN",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0722,
},
[0x0723]={
- ["category"]="lo",
- ["description"]="SYRIAC LETTER SEMKATH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0723, -- ܣ
+ category="lo",
+ description="SYRIAC LETTER SEMKATH",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0723,
},
[0x0724]={
- ["category"]="lo",
- ["description"]="SYRIAC LETTER FINAL SEMKATH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0724, -- ܤ
+ category="lo",
+ description="SYRIAC LETTER FINAL SEMKATH",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0724,
},
[0x0725]={
- ["category"]="lo",
- ["description"]="SYRIAC LETTER E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0725, -- ܥ
+ category="lo",
+ description="SYRIAC LETTER E",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0725,
},
[0x0726]={
- ["category"]="lo",
- ["description"]="SYRIAC LETTER PE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0726, -- ܦ
+ category="lo",
+ description="SYRIAC LETTER PE",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0726,
},
[0x0727]={
- ["category"]="lo",
- ["description"]="SYRIAC LETTER REVERSED PE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0727, -- ܧ
+ category="lo",
+ description="SYRIAC LETTER REVERSED PE",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0727,
},
[0x0728]={
- ["category"]="lo",
- ["description"]="SYRIAC LETTER SADHE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0728, -- ܨ
+ category="lo",
+ description="SYRIAC LETTER SADHE",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0728,
},
[0x0729]={
- ["category"]="lo",
- ["description"]="SYRIAC LETTER QAPH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0729, -- ܩ
+ category="lo",
+ description="SYRIAC LETTER QAPH",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0729,
},
[0x072A]={
- ["category"]="lo",
- ["description"]="SYRIAC LETTER RISH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x072A, -- ܪ
+ category="lo",
+ description="SYRIAC LETTER RISH",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x072A,
},
[0x072B]={
- ["category"]="lo",
- ["description"]="SYRIAC LETTER SHIN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x072B, -- ܫ
+ category="lo",
+ description="SYRIAC LETTER SHIN",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x072B,
},
[0x072C]={
- ["category"]="lo",
- ["description"]="SYRIAC LETTER TAW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x072C, -- ܬ
+ category="lo",
+ description="SYRIAC LETTER TAW",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x072C,
},
[0x072D]={
- ["category"]="lo",
- ["description"]="SYRIAC LETTER PERSIAN BHETH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x072D, -- ܭ
+ category="lo",
+ description="SYRIAC LETTER PERSIAN BHETH",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x072D,
},
[0x072E]={
- ["category"]="lo",
- ["description"]="SYRIAC LETTER PERSIAN GHAMAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x072E, -- ܮ
+ category="lo",
+ description="SYRIAC LETTER PERSIAN GHAMAL",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x072E,
},
[0x072F]={
- ["category"]="lo",
- ["description"]="SYRIAC LETTER PERSIAN DHALATH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x072F, -- ܯ
+ category="lo",
+ description="SYRIAC LETTER PERSIAN DHALATH",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x072F,
},
[0x0730]={
- ["category"]="mn",
- ["description"]="SYRIAC PTHAHA ABOVE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0730, -- ܰ
+ category="mn",
+ description="SYRIAC PTHAHA ABOVE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0730,
},
[0x0731]={
- ["category"]="mn",
- ["description"]="SYRIAC PTHAHA BELOW",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0731, -- ܱ
+ category="mn",
+ description="SYRIAC PTHAHA BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0731,
},
[0x0732]={
- ["category"]="mn",
- ["description"]="SYRIAC PTHAHA DOTTED",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0732, -- ܲ
+ category="mn",
+ description="SYRIAC PTHAHA DOTTED",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0732,
},
[0x0733]={
- ["category"]="mn",
- ["description"]="SYRIAC ZQAPHA ABOVE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0733, -- ܳ
+ category="mn",
+ description="SYRIAC ZQAPHA ABOVE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0733,
},
[0x0734]={
- ["category"]="mn",
- ["description"]="SYRIAC ZQAPHA BELOW",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0734, -- ܴ
+ category="mn",
+ description="SYRIAC ZQAPHA BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0734,
},
[0x0735]={
- ["category"]="mn",
- ["description"]="SYRIAC ZQAPHA DOTTED",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0735, -- ܵ
+ category="mn",
+ description="SYRIAC ZQAPHA DOTTED",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0735,
},
[0x0736]={
- ["category"]="mn",
- ["description"]="SYRIAC RBASA ABOVE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0736, -- ܶ
+ category="mn",
+ description="SYRIAC RBASA ABOVE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0736,
},
[0x0737]={
- ["category"]="mn",
- ["description"]="SYRIAC RBASA BELOW",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0737, -- ܷ
+ category="mn",
+ description="SYRIAC RBASA BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0737,
},
[0x0738]={
- ["category"]="mn",
- ["description"]="SYRIAC DOTTED ZLAMA HORIZONTAL",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0738, -- ܸ
+ category="mn",
+ description="SYRIAC DOTTED ZLAMA HORIZONTAL",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0738,
},
[0x0739]={
- ["category"]="mn",
- ["description"]="SYRIAC DOTTED ZLAMA ANGULAR",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0739, -- ܹ
+ category="mn",
+ description="SYRIAC DOTTED ZLAMA ANGULAR",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0739,
},
[0x073A]={
- ["category"]="mn",
- ["description"]="SYRIAC HBASA ABOVE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x073A, -- ܺ
+ category="mn",
+ description="SYRIAC HBASA ABOVE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x073A,
},
[0x073B]={
- ["category"]="mn",
- ["description"]="SYRIAC HBASA BELOW",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x073B, -- ܻ
+ category="mn",
+ description="SYRIAC HBASA BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x073B,
},
[0x073C]={
- ["category"]="mn",
- ["description"]="SYRIAC HBASA-ESASA DOTTED",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x073C, -- ܼ
+ category="mn",
+ description="SYRIAC HBASA-ESASA DOTTED",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x073C,
},
[0x073D]={
- ["category"]="mn",
- ["description"]="SYRIAC ESASA ABOVE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x073D, -- ܽ
+ category="mn",
+ description="SYRIAC ESASA ABOVE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x073D,
},
[0x073E]={
- ["category"]="mn",
- ["description"]="SYRIAC ESASA BELOW",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x073E, -- ܾ
+ category="mn",
+ description="SYRIAC ESASA BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x073E,
},
[0x073F]={
- ["category"]="mn",
- ["description"]="SYRIAC RWAHA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x073F, -- ܿ
+ category="mn",
+ description="SYRIAC RWAHA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x073F,
},
[0x0740]={
- ["category"]="mn",
- ["description"]="SYRIAC FEMININE DOT",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0740, -- ݀
+ category="mn",
+ description="SYRIAC FEMININE DOT",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0740,
},
[0x0741]={
- ["category"]="mn",
- ["description"]="SYRIAC QUSHSHAYA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0741, -- ݁
+ category="mn",
+ description="SYRIAC QUSHSHAYA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0741,
},
[0x0742]={
- ["category"]="mn",
- ["description"]="SYRIAC RUKKAKHA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0742, -- ݂
+ category="mn",
+ description="SYRIAC RUKKAKHA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0742,
},
[0x0743]={
- ["category"]="mn",
- ["description"]="SYRIAC TWO VERTICAL DOTS ABOVE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0743, -- ݃
+ category="mn",
+ description="SYRIAC TWO VERTICAL DOTS ABOVE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0743,
},
[0x0744]={
- ["category"]="mn",
- ["description"]="SYRIAC TWO VERTICAL DOTS BELOW",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0744, -- ݄
+ category="mn",
+ description="SYRIAC TWO VERTICAL DOTS BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0744,
},
[0x0745]={
- ["category"]="mn",
- ["description"]="SYRIAC THREE DOTS ABOVE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0745, -- ݅
+ category="mn",
+ description="SYRIAC THREE DOTS ABOVE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0745,
},
[0x0746]={
- ["category"]="mn",
- ["description"]="SYRIAC THREE DOTS BELOW",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0746, -- ݆
+ category="mn",
+ description="SYRIAC THREE DOTS BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0746,
},
[0x0747]={
- ["category"]="mn",
- ["description"]="SYRIAC OBLIQUE LINE ABOVE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0747, -- ݇
+ category="mn",
+ description="SYRIAC OBLIQUE LINE ABOVE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0747,
},
[0x0748]={
- ["category"]="mn",
- ["description"]="SYRIAC OBLIQUE LINE BELOW",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0748, -- ݈
+ category="mn",
+ description="SYRIAC OBLIQUE LINE BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0748,
},
[0x0749]={
- ["category"]="mn",
- ["description"]="SYRIAC MUSIC",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0749, -- ݉
+ category="mn",
+ description="SYRIAC MUSIC",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0749,
},
[0x074A]={
- ["category"]="mn",
- ["description"]="SYRIAC BARREKH",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x074A, -- ݊
+ category="mn",
+ description="SYRIAC BARREKH",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x074A,
},
[0x074D]={
- ["category"]="lo",
- ["description"]="SYRIAC LETTER SOGDIAN ZHAIN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x074D, -- ݍ
+ category="lo",
+ description="SYRIAC LETTER SOGDIAN ZHAIN",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x074D,
},
[0x074E]={
- ["category"]="lo",
- ["description"]="SYRIAC LETTER SOGDIAN KHAPH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x074E, -- ݎ
+ category="lo",
+ description="SYRIAC LETTER SOGDIAN KHAPH",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x074E,
},
[0x074F]={
- ["category"]="lo",
- ["description"]="SYRIAC LETTER SOGDIAN FE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x074F, -- ݏ
+ category="lo",
+ description="SYRIAC LETTER SOGDIAN FE",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x074F,
},
[0x0750]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER BEH WITH THREE DOTS HORIZONTALLY BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x0628,
- ["unicodeslot"]=0x0750, -- ݐ
+ category="lo",
+ description="ARABIC LETTER BEH WITH THREE DOTS HORIZONTALLY BELOW",
+ direction="al",
+ linebreak="al",
+ shcode=0x0628,
+ unicodeslot=0x0750,
},
[0x0751]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER BEH WITH DOT BELOW AND THREE DOTS ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0628,
- ["unicodeslot"]=0x0751, -- ݑ
+ category="lo",
+ description="ARABIC LETTER BEH WITH DOT BELOW AND THREE DOTS ABOVE",
+ direction="al",
+ linebreak="al",
+ shcode=0x0628,
+ unicodeslot=0x0751,
},
[0x0752]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER BEH WITH THREE DOTS POINTING UPWARDS BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x0628,
- ["unicodeslot"]=0x0752, -- ݒ
+ category="lo",
+ description="ARABIC LETTER BEH WITH THREE DOTS POINTING UPWARDS BELOW",
+ direction="al",
+ linebreak="al",
+ shcode=0x0628,
+ unicodeslot=0x0752,
},
[0x0753]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER BEH WITH THREE DOTS POINTING UPWARDS BELOW AND TWO DOTS ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0628,
- ["unicodeslot"]=0x0753, -- ݓ
+ category="lo",
+ description="ARABIC LETTER BEH WITH THREE DOTS POINTING UPWARDS BELOW AND TWO DOTS ABOVE",
+ direction="al",
+ linebreak="al",
+ shcode=0x0628,
+ unicodeslot=0x0753,
},
[0x0754]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER BEH WITH TWO DOTS BELOW AND DOT ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0628,
- ["unicodeslot"]=0x0754, -- ݔ
+ category="lo",
+ description="ARABIC LETTER BEH WITH TWO DOTS BELOW AND DOT ABOVE",
+ direction="al",
+ linebreak="al",
+ shcode=0x0628,
+ unicodeslot=0x0754,
},
[0x0755]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER BEH WITH INVERTED SMALL V BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x0628,
- ["unicodeslot"]=0x0755, -- ݕ
+ category="lo",
+ description="ARABIC LETTER BEH WITH INVERTED SMALL V BELOW",
+ direction="al",
+ linebreak="al",
+ shcode=0x0628,
+ unicodeslot=0x0755,
},
[0x0756]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER BEH WITH SMALL V",
- ["linebreak"]="al",
- ["shcode"]=0x0628,
- ["unicodeslot"]=0x0756, -- ݖ
+ category="lo",
+ description="ARABIC LETTER BEH WITH SMALL V",
+ direction="al",
+ linebreak="al",
+ shcode=0x0628,
+ unicodeslot=0x0756,
},
[0x0757]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER HAH WITH TWO DOTS ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x062D,
- ["unicodeslot"]=0x0757, -- ݗ
+ category="lo",
+ description="ARABIC LETTER HAH WITH TWO DOTS ABOVE",
+ direction="al",
+ linebreak="al",
+ shcode=0x062D,
+ unicodeslot=0x0757,
},
[0x0758]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER HAH WITH THREE DOTS POINTING UPWARDS BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x062D,
- ["unicodeslot"]=0x0758, -- ݘ
+ category="lo",
+ description="ARABIC LETTER HAH WITH THREE DOTS POINTING UPWARDS BELOW",
+ direction="al",
+ linebreak="al",
+ shcode=0x062D,
+ unicodeslot=0x0758,
},
[0x0759]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER DAL WITH TWO DOTS VERTICALLY BELOW AND SMALL TAH",
- ["linebreak"]="al",
- ["shcode"]=0x062F,
- ["unicodeslot"]=0x0759, -- ݙ
+ category="lo",
+ description="ARABIC LETTER DAL WITH TWO DOTS VERTICALLY BELOW AND SMALL TAH",
+ direction="al",
+ linebreak="al",
+ shcode=0x062F,
+ unicodeslot=0x0759,
},
[0x075A]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER DAL WITH INVERTED SMALL V BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x062F,
- ["unicodeslot"]=0x075A, -- ݚ
+ category="lo",
+ description="ARABIC LETTER DAL WITH INVERTED SMALL V BELOW",
+ direction="al",
+ linebreak="al",
+ shcode=0x062F,
+ unicodeslot=0x075A,
},
[0x075B]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER REH WITH STROKE",
- ["linebreak"]="al",
- ["shcode"]=0x0631,
- ["unicodeslot"]=0x075B, -- ݛ
+ category="lo",
+ description="ARABIC LETTER REH WITH STROKE",
+ direction="al",
+ linebreak="al",
+ shcode=0x0631,
+ unicodeslot=0x075B,
},
[0x075C]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER SEEN WITH FOUR DOTS ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0633,
- ["unicodeslot"]=0x075C, -- ݜ
+ category="lo",
+ description="ARABIC LETTER SEEN WITH FOUR DOTS ABOVE",
+ direction="al",
+ linebreak="al",
+ shcode=0x0633,
+ unicodeslot=0x075C,
},
[0x075D]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER AIN WITH TWO DOTS ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0639,
- ["unicodeslot"]=0x075D, -- ݝ
+ category="lo",
+ description="ARABIC LETTER AIN WITH TWO DOTS ABOVE",
+ direction="al",
+ linebreak="al",
+ shcode=0x0639,
+ unicodeslot=0x075D,
},
[0x075E]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER AIN WITH THREE DOTS POINTING DOWNWARDS ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0639,
- ["unicodeslot"]=0x075E, -- ݞ
+ category="lo",
+ description="ARABIC LETTER AIN WITH THREE DOTS POINTING DOWNWARDS ABOVE",
+ direction="al",
+ linebreak="al",
+ shcode=0x0639,
+ unicodeslot=0x075E,
},
[0x075F]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER AIN WITH TWO DOTS VERTICALLY ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0639,
- ["unicodeslot"]=0x075F, -- ݟ
+ category="lo",
+ description="ARABIC LETTER AIN WITH TWO DOTS VERTICALLY ABOVE",
+ direction="al",
+ linebreak="al",
+ shcode=0x0639,
+ unicodeslot=0x075F,
},
[0x0760]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER FEH WITH TWO DOTS BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x0641,
- ["unicodeslot"]=0x0760, -- ݠ
+ category="lo",
+ description="ARABIC LETTER FEH WITH TWO DOTS BELOW",
+ direction="al",
+ linebreak="al",
+ shcode=0x0641,
+ unicodeslot=0x0760,
},
[0x0761]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER FEH WITH THREE DOTS POINTING UPWARDS BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x0641,
- ["unicodeslot"]=0x0761, -- ݡ
+ category="lo",
+ description="ARABIC LETTER FEH WITH THREE DOTS POINTING UPWARDS BELOW",
+ direction="al",
+ linebreak="al",
+ shcode=0x0641,
+ unicodeslot=0x0761,
},
[0x0762]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER KEHEH WITH DOT ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x06A9,
- ["unicodeslot"]=0x0762, -- ݢ
+ category="lo",
+ description="ARABIC LETTER KEHEH WITH DOT ABOVE",
+ direction="al",
+ linebreak="al",
+ shcode=0x06A9,
+ unicodeslot=0x0762,
},
[0x0763]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER KEHEH WITH THREE DOTS ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x06A9,
- ["unicodeslot"]=0x0763, -- ݣ
+ category="lo",
+ description="ARABIC LETTER KEHEH WITH THREE DOTS ABOVE",
+ direction="al",
+ linebreak="al",
+ shcode=0x06A9,
+ unicodeslot=0x0763,
},
[0x0764]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER KEHEH WITH THREE DOTS POINTING UPWARDS BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x06A9,
- ["unicodeslot"]=0x0764, -- ݤ
+ category="lo",
+ description="ARABIC LETTER KEHEH WITH THREE DOTS POINTING UPWARDS BELOW",
+ direction="al",
+ linebreak="al",
+ shcode=0x06A9,
+ unicodeslot=0x0764,
},
[0x0765]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER MEEM WITH DOT ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0645,
- ["unicodeslot"]=0x0765, -- ݥ
+ category="lo",
+ description="ARABIC LETTER MEEM WITH DOT ABOVE",
+ direction="al",
+ linebreak="al",
+ shcode=0x0645,
+ unicodeslot=0x0765,
},
[0x0766]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER MEEM WITH DOT BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x0645,
- ["unicodeslot"]=0x0766, -- ݦ
+ category="lo",
+ description="ARABIC LETTER MEEM WITH DOT BELOW",
+ direction="al",
+ linebreak="al",
+ shcode=0x0645,
+ unicodeslot=0x0766,
},
[0x0767]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER NOON WITH TWO DOTS BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x0646,
- ["unicodeslot"]=0x0767, -- ݧ
+ category="lo",
+ description="ARABIC LETTER NOON WITH TWO DOTS BELOW",
+ direction="al",
+ linebreak="al",
+ shcode=0x0646,
+ unicodeslot=0x0767,
},
[0x0768]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER NOON WITH SMALL TAH",
- ["linebreak"]="al",
- ["shcode"]=0x0646,
- ["unicodeslot"]=0x0768, -- ݨ
+ category="lo",
+ description="ARABIC LETTER NOON WITH SMALL TAH",
+ direction="al",
+ linebreak="al",
+ shcode=0x0646,
+ unicodeslot=0x0768,
},
[0x0769]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER NOON WITH SMALL V",
- ["linebreak"]="al",
- ["shcode"]=0x0646,
- ["unicodeslot"]=0x0769, -- ݩ
+ category="lo",
+ description="ARABIC LETTER NOON WITH SMALL V",
+ direction="al",
+ linebreak="al",
+ shcode=0x0646,
+ unicodeslot=0x0769,
},
[0x076A]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER LAM WITH BAR",
- ["linebreak"]="al",
- ["shcode"]=0x0644,
- ["unicodeslot"]=0x076A, -- ݪ
+ category="lo",
+ description="ARABIC LETTER LAM WITH BAR",
+ direction="al",
+ linebreak="al",
+ shcode=0x0644,
+ unicodeslot=0x076A,
},
[0x076B]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER REH WITH TWO DOTS VERTICALLY ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0631,
- ["unicodeslot"]=0x076B, -- ݫ
+ category="lo",
+ description="ARABIC LETTER REH WITH TWO DOTS VERTICALLY ABOVE",
+ direction="al",
+ linebreak="al",
+ shcode=0x0631,
+ unicodeslot=0x076B,
},
[0x076C]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER REH WITH HAMZA ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0631,
- ["unicodeslot"]=0x076C, -- ݬ
+ category="lo",
+ description="ARABIC LETTER REH WITH HAMZA ABOVE",
+ direction="al",
+ linebreak="al",
+ shcode=0x0631,
+ unicodeslot=0x076C,
},
[0x076D]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER SEEN WITH TWO DOTS VERTICALLY ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0633,
- ["unicodeslot"]=0x076D, -- ݭ
+ category="lo",
+ description="ARABIC LETTER SEEN WITH TWO DOTS VERTICALLY ABOVE",
+ direction="al",
+ linebreak="al",
+ shcode=0x0633,
+ unicodeslot=0x076D,
},
[0x0780]={
- ["category"]="lo",
- ["description"]="THAANA LETTER HAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0780, -- ހ
+ category="lo",
+ description="THAANA LETTER HAA",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0780,
},
[0x0781]={
- ["category"]="lo",
- ["description"]="THAANA LETTER SHAVIYANI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0781, -- ށ
+ category="lo",
+ description="THAANA LETTER SHAVIYANI",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0781,
},
[0x0782]={
- ["category"]="lo",
- ["description"]="THAANA LETTER NOONU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0782, -- ނ
+ category="lo",
+ description="THAANA LETTER NOONU",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0782,
},
[0x0783]={
- ["category"]="lo",
- ["description"]="THAANA LETTER RAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0783, -- ރ
+ category="lo",
+ description="THAANA LETTER RAA",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0783,
},
[0x0784]={
- ["category"]="lo",
- ["description"]="THAANA LETTER BAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0784, -- ބ
+ category="lo",
+ description="THAANA LETTER BAA",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0784,
},
[0x0785]={
- ["category"]="lo",
- ["description"]="THAANA LETTER LHAVIYANI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0785, -- ޅ
+ category="lo",
+ description="THAANA LETTER LHAVIYANI",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0785,
},
[0x0786]={
- ["category"]="lo",
- ["description"]="THAANA LETTER KAAFU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0786, -- ކ
+ category="lo",
+ description="THAANA LETTER KAAFU",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0786,
},
[0x0787]={
- ["category"]="lo",
- ["description"]="THAANA LETTER ALIFU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0787, -- އ
+ category="lo",
+ description="THAANA LETTER ALIFU",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0787,
},
[0x0788]={
- ["category"]="lo",
- ["description"]="THAANA LETTER VAAVU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0788, -- ވ
+ category="lo",
+ description="THAANA LETTER VAAVU",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0788,
},
[0x0789]={
- ["category"]="lo",
- ["description"]="THAANA LETTER MEEMU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0789, -- މ
+ category="lo",
+ description="THAANA LETTER MEEMU",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0789,
},
[0x078A]={
- ["category"]="lo",
- ["description"]="THAANA LETTER FAAFU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x078A, -- ފ
+ category="lo",
+ description="THAANA LETTER FAAFU",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x078A,
},
[0x078B]={
- ["category"]="lo",
- ["description"]="THAANA LETTER DHAALU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x078B, -- ދ
+ category="lo",
+ description="THAANA LETTER DHAALU",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x078B,
},
[0x078C]={
- ["category"]="lo",
- ["description"]="THAANA LETTER THAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x078C, -- ތ
+ category="lo",
+ description="THAANA LETTER THAA",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x078C,
},
[0x078D]={
- ["category"]="lo",
- ["description"]="THAANA LETTER LAAMU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x078D, -- ލ
+ category="lo",
+ description="THAANA LETTER LAAMU",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x078D,
},
[0x078E]={
- ["category"]="lo",
- ["description"]="THAANA LETTER GAAFU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x078E, -- ގ
+ category="lo",
+ description="THAANA LETTER GAAFU",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x078E,
},
[0x078F]={
- ["category"]="lo",
- ["description"]="THAANA LETTER GNAVIYANI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x078F, -- ޏ
+ category="lo",
+ description="THAANA LETTER GNAVIYANI",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x078F,
},
[0x0790]={
- ["category"]="lo",
- ["description"]="THAANA LETTER SEENU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0790, -- ސ
+ category="lo",
+ description="THAANA LETTER SEENU",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0790,
},
[0x0791]={
- ["category"]="lo",
- ["description"]="THAANA LETTER DAVIYANI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0791, -- ޑ
+ category="lo",
+ description="THAANA LETTER DAVIYANI",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0791,
},
[0x0792]={
- ["category"]="lo",
- ["description"]="THAANA LETTER ZAVIYANI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0792, -- ޒ
+ category="lo",
+ description="THAANA LETTER ZAVIYANI",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0792,
},
[0x0793]={
- ["category"]="lo",
- ["description"]="THAANA LETTER TAVIYANI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0793, -- ޓ
+ category="lo",
+ description="THAANA LETTER TAVIYANI",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0793,
},
[0x0794]={
- ["category"]="lo",
- ["description"]="THAANA LETTER YAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0794, -- ޔ
+ category="lo",
+ description="THAANA LETTER YAA",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0794,
},
[0x0795]={
- ["category"]="lo",
- ["description"]="THAANA LETTER PAVIYANI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0795, -- ޕ
+ category="lo",
+ description="THAANA LETTER PAVIYANI",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0795,
},
[0x0796]={
- ["category"]="lo",
- ["description"]="THAANA LETTER JAVIYANI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0796, -- ޖ
+ category="lo",
+ description="THAANA LETTER JAVIYANI",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0796,
},
[0x0797]={
- ["category"]="lo",
- ["description"]="THAANA LETTER CHAVIYANI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0797, -- ޗ
+ category="lo",
+ description="THAANA LETTER CHAVIYANI",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0797,
},
[0x0798]={
- ["category"]="lo",
- ["description"]="THAANA LETTER TTAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0798, -- ޘ
+ category="lo",
+ description="THAANA LETTER TTAA",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0798,
},
[0x0799]={
- ["category"]="lo",
- ["description"]="THAANA LETTER HHAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0799, -- ޙ
+ category="lo",
+ description="THAANA LETTER HHAA",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x0799,
},
[0x079A]={
- ["category"]="lo",
- ["description"]="THAANA LETTER KHAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x079A, -- ޚ
+ category="lo",
+ description="THAANA LETTER KHAA",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x079A,
},
[0x079B]={
- ["category"]="lo",
- ["description"]="THAANA LETTER THAALU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x079B, -- ޛ
+ category="lo",
+ description="THAANA LETTER THAALU",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x079B,
},
[0x079C]={
- ["category"]="lo",
- ["description"]="THAANA LETTER ZAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x079C, -- ޜ
+ category="lo",
+ description="THAANA LETTER ZAA",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x079C,
},
[0x079D]={
- ["category"]="lo",
- ["description"]="THAANA LETTER SHEENU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x079D, -- ޝ
+ category="lo",
+ description="THAANA LETTER SHEENU",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x079D,
},
[0x079E]={
- ["category"]="lo",
- ["description"]="THAANA LETTER SAADHU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x079E, -- ޞ
+ category="lo",
+ description="THAANA LETTER SAADHU",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x079E,
},
[0x079F]={
- ["category"]="lo",
- ["description"]="THAANA LETTER DAADHU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x079F, -- ޟ
+ category="lo",
+ description="THAANA LETTER DAADHU",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x079F,
},
[0x07A0]={
- ["category"]="lo",
- ["description"]="THAANA LETTER TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x07A0, -- ޠ
+ category="lo",
+ description="THAANA LETTER TO",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x07A0,
},
[0x07A1]={
- ["category"]="lo",
- ["description"]="THAANA LETTER ZO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x07A1, -- ޡ
+ category="lo",
+ description="THAANA LETTER ZO",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x07A1,
},
[0x07A2]={
- ["category"]="lo",
- ["description"]="THAANA LETTER AINU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x07A2, -- ޢ
+ category="lo",
+ description="THAANA LETTER AINU",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x07A2,
},
[0x07A3]={
- ["category"]="lo",
- ["description"]="THAANA LETTER GHAINU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x07A3, -- ޣ
+ category="lo",
+ description="THAANA LETTER GHAINU",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x07A3,
},
[0x07A4]={
- ["category"]="lo",
- ["description"]="THAANA LETTER QAAFU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x07A4, -- ޤ
+ category="lo",
+ description="THAANA LETTER QAAFU",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x07A4,
},
[0x07A5]={
- ["category"]="lo",
- ["description"]="THAANA LETTER WAAVU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x07A5, -- ޥ
+ category="lo",
+ description="THAANA LETTER WAAVU",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x07A5,
},
[0x07A6]={
- ["category"]="mn",
- ["description"]="THAANA ABAFILI",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x07A6, -- ަ
+ category="mn",
+ description="THAANA ABAFILI",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x07A6,
},
[0x07A7]={
- ["category"]="mn",
- ["description"]="THAANA AABAAFILI",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x07A7, -- ާ
+ category="mn",
+ description="THAANA AABAAFILI",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x07A7,
},
[0x07A8]={
- ["category"]="mn",
- ["description"]="THAANA IBIFILI",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x07A8, -- ި
+ category="mn",
+ description="THAANA IBIFILI",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x07A8,
},
[0x07A9]={
- ["category"]="mn",
- ["description"]="THAANA EEBEEFILI",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x07A9, -- ީ
+ category="mn",
+ description="THAANA EEBEEFILI",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x07A9,
},
[0x07AA]={
- ["category"]="mn",
- ["description"]="THAANA UBUFILI",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x07AA, -- ު
+ category="mn",
+ description="THAANA UBUFILI",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x07AA,
},
[0x07AB]={
- ["category"]="mn",
- ["description"]="THAANA OOBOOFILI",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x07AB, -- ޫ
+ category="mn",
+ description="THAANA OOBOOFILI",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x07AB,
},
[0x07AC]={
- ["category"]="mn",
- ["description"]="THAANA EBEFILI",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x07AC, -- ެ
+ category="mn",
+ description="THAANA EBEFILI",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x07AC,
},
[0x07AD]={
- ["category"]="mn",
- ["description"]="THAANA EYBEYFILI",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x07AD, -- ޭ
+ category="mn",
+ description="THAANA EYBEYFILI",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x07AD,
},
[0x07AE]={
- ["category"]="mn",
- ["description"]="THAANA OBOFILI",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x07AE, -- ޮ
+ category="mn",
+ description="THAANA OBOFILI",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x07AE,
},
[0x07AF]={
- ["category"]="mn",
- ["description"]="THAANA OABOAFILI",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x07AF, -- ޯ
+ category="mn",
+ description="THAANA OABOAFILI",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x07AF,
},
[0x07B0]={
- ["category"]="mn",
- ["description"]="THAANA SUKUN",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x07B0, -- ް
+ category="mn",
+ description="THAANA SUKUN",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x07B0,
},
[0x07B1]={
- ["category"]="lo",
- ["description"]="THAANA LETTER NAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x07B1, -- ޱ
+ category="lo",
+ description="THAANA LETTER NAA",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x07B1,
},
[0x07C0]={
- ["category"]="nd",
- ["description"]="NKO DIGIT ZERO",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x07C0, -- ߀
+ category="nd",
+ description="NKO DIGIT ZERO",
+ direction="r",
+ linebreak="nu",
+ unicodeslot=0x07C0,
},
[0x07C1]={
- ["category"]="nd",
- ["description"]="NKO DIGIT ONE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x07C1, -- ߁
+ category="nd",
+ description="NKO DIGIT ONE",
+ direction="r",
+ linebreak="nu",
+ unicodeslot=0x07C1,
},
[0x07C2]={
- ["category"]="nd",
- ["description"]="NKO DIGIT TWO",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x07C2, -- ߂
+ category="nd",
+ description="NKO DIGIT TWO",
+ direction="r",
+ linebreak="nu",
+ unicodeslot=0x07C2,
},
[0x07C3]={
- ["category"]="nd",
- ["description"]="NKO DIGIT THREE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x07C3, -- ߃
+ category="nd",
+ description="NKO DIGIT THREE",
+ direction="r",
+ linebreak="nu",
+ unicodeslot=0x07C3,
},
[0x07C4]={
- ["category"]="nd",
- ["description"]="NKO DIGIT FOUR",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x07C4, -- ߄
+ category="nd",
+ description="NKO DIGIT FOUR",
+ direction="r",
+ linebreak="nu",
+ unicodeslot=0x07C4,
},
[0x07C5]={
- ["category"]="nd",
- ["description"]="NKO DIGIT FIVE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x07C5, -- ߅
+ category="nd",
+ description="NKO DIGIT FIVE",
+ direction="r",
+ linebreak="nu",
+ unicodeslot=0x07C5,
},
[0x07C6]={
- ["category"]="nd",
- ["description"]="NKO DIGIT SIX",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x07C6, -- ߆
+ category="nd",
+ description="NKO DIGIT SIX",
+ direction="r",
+ linebreak="nu",
+ unicodeslot=0x07C6,
},
[0x07C7]={
- ["category"]="nd",
- ["description"]="NKO DIGIT SEVEN",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x07C7, -- ߇
+ category="nd",
+ description="NKO DIGIT SEVEN",
+ direction="r",
+ linebreak="nu",
+ unicodeslot=0x07C7,
},
[0x07C8]={
- ["category"]="nd",
- ["description"]="NKO DIGIT EIGHT",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x07C8, -- ߈
+ category="nd",
+ description="NKO DIGIT EIGHT",
+ direction="r",
+ linebreak="nu",
+ unicodeslot=0x07C8,
},
[0x07C9]={
- ["category"]="nd",
- ["description"]="NKO DIGIT NINE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x07C9, -- ߉
+ category="nd",
+ description="NKO DIGIT NINE",
+ direction="r",
+ linebreak="nu",
+ unicodeslot=0x07C9,
},
[0x07CA]={
- ["category"]="lo",
- ["description"]="NKO LETTER A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x07CA, -- ߊ
+ category="lo",
+ description="NKO LETTER A",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x07CA,
},
[0x07CB]={
- ["category"]="lo",
- ["description"]="NKO LETTER EE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x07CB, -- ߋ
+ category="lo",
+ description="NKO LETTER EE",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x07CB,
},
[0x07CC]={
- ["category"]="lo",
- ["description"]="NKO LETTER I",
- ["linebreak"]="al",
- ["unicodeslot"]=0x07CC, -- ߌ
+ category="lo",
+ description="NKO LETTER I",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x07CC,
},
[0x07CD]={
- ["category"]="lo",
- ["description"]="NKO LETTER E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x07CD, -- ߍ
+ category="lo",
+ description="NKO LETTER E",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x07CD,
},
[0x07CE]={
- ["category"]="lo",
- ["description"]="NKO LETTER U",
- ["linebreak"]="al",
- ["unicodeslot"]=0x07CE, -- ߎ
+ category="lo",
+ description="NKO LETTER U",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x07CE,
},
[0x07CF]={
- ["category"]="lo",
- ["description"]="NKO LETTER OO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x07CF, -- ߏ
+ category="lo",
+ description="NKO LETTER OO",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x07CF,
},
[0x07D0]={
- ["category"]="lo",
- ["description"]="NKO LETTER O",
- ["linebreak"]="al",
- ["unicodeslot"]=0x07D0, -- ߐ
+ category="lo",
+ description="NKO LETTER O",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x07D0,
},
[0x07D1]={
- ["category"]="lo",
- ["description"]="NKO LETTER DAGBASINNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x07D1, -- ߑ
+ category="lo",
+ description="NKO LETTER DAGBASINNA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x07D1,
},
[0x07D2]={
- ["category"]="lo",
- ["description"]="NKO LETTER N",
- ["linebreak"]="al",
- ["unicodeslot"]=0x07D2, -- ߒ
+ category="lo",
+ description="NKO LETTER N",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x07D2,
},
[0x07D3]={
- ["category"]="lo",
- ["description"]="NKO LETTER BA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x07D3, -- ߓ
+ category="lo",
+ description="NKO LETTER BA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x07D3,
},
[0x07D4]={
- ["category"]="lo",
- ["description"]="NKO LETTER PA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x07D4, -- ߔ
+ category="lo",
+ description="NKO LETTER PA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x07D4,
},
[0x07D5]={
- ["category"]="lo",
- ["description"]="NKO LETTER TA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x07D5, -- ߕ
+ category="lo",
+ description="NKO LETTER TA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x07D5,
},
[0x07D6]={
- ["category"]="lo",
- ["description"]="NKO LETTER JA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x07D6, -- ߖ
+ category="lo",
+ description="NKO LETTER JA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x07D6,
},
[0x07D7]={
- ["category"]="lo",
- ["description"]="NKO LETTER CHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x07D7, -- ߗ
+ category="lo",
+ description="NKO LETTER CHA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x07D7,
},
[0x07D8]={
- ["category"]="lo",
- ["description"]="NKO LETTER DA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x07D8, -- ߘ
+ category="lo",
+ description="NKO LETTER DA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x07D8,
},
[0x07D9]={
- ["category"]="lo",
- ["description"]="NKO LETTER RA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x07D9, -- ߙ
+ category="lo",
+ description="NKO LETTER RA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x07D9,
},
[0x07DA]={
- ["category"]="lo",
- ["description"]="NKO LETTER RRA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x07DA, -- ߚ
+ category="lo",
+ description="NKO LETTER RRA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x07DA,
},
[0x07DB]={
- ["category"]="lo",
- ["description"]="NKO LETTER SA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x07DB, -- ߛ
+ category="lo",
+ description="NKO LETTER SA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x07DB,
},
[0x07DC]={
- ["category"]="lo",
- ["description"]="NKO LETTER GBA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x07DC, -- ߜ
+ category="lo",
+ description="NKO LETTER GBA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x07DC,
},
[0x07DD]={
- ["category"]="lo",
- ["description"]="NKO LETTER FA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x07DD, -- ߝ
+ category="lo",
+ description="NKO LETTER FA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x07DD,
},
[0x07DE]={
- ["category"]="lo",
- ["description"]="NKO LETTER KA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x07DE, -- ߞ
+ category="lo",
+ description="NKO LETTER KA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x07DE,
},
[0x07DF]={
- ["category"]="lo",
- ["description"]="NKO LETTER LA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x07DF, -- ߟ
+ category="lo",
+ description="NKO LETTER LA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x07DF,
},
[0x07E0]={
- ["category"]="lo",
- ["description"]="NKO LETTER NA WOLOSO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x07E0, -- ߠ
+ category="lo",
+ description="NKO LETTER NA WOLOSO",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x07E0,
},
[0x07E1]={
- ["category"]="lo",
- ["description"]="NKO LETTER MA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x07E1, -- ߡ
+ category="lo",
+ description="NKO LETTER MA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x07E1,
},
[0x07E2]={
- ["category"]="lo",
- ["description"]="NKO LETTER NYA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x07E2, -- ߢ
+ category="lo",
+ description="NKO LETTER NYA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x07E2,
},
[0x07E3]={
- ["category"]="lo",
- ["description"]="NKO LETTER NA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x07E3, -- ߣ
+ category="lo",
+ description="NKO LETTER NA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x07E3,
},
[0x07E4]={
- ["category"]="lo",
- ["description"]="NKO LETTER HA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x07E4, -- ߤ
+ category="lo",
+ description="NKO LETTER HA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x07E4,
},
[0x07E5]={
- ["category"]="lo",
- ["description"]="NKO LETTER WA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x07E5, -- ߥ
+ category="lo",
+ description="NKO LETTER WA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x07E5,
},
[0x07E6]={
- ["category"]="lo",
- ["description"]="NKO LETTER YA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x07E6, -- ߦ
+ category="lo",
+ description="NKO LETTER YA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x07E6,
},
[0x07E7]={
- ["category"]="lo",
- ["description"]="NKO LETTER NYA WOLOSO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x07E7, -- ߧ
+ category="lo",
+ description="NKO LETTER NYA WOLOSO",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x07E7,
},
[0x07E8]={
- ["category"]="lo",
- ["description"]="NKO LETTER JONA JA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x07E8, -- ߨ
+ category="lo",
+ description="NKO LETTER JONA JA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x07E8,
},
[0x07E9]={
- ["category"]="lo",
- ["description"]="NKO LETTER JONA CHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x07E9, -- ߩ
+ category="lo",
+ description="NKO LETTER JONA CHA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x07E9,
},
[0x07EA]={
- ["category"]="lo",
- ["description"]="NKO LETTER JONA RA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x07EA, -- ߪ
+ category="lo",
+ description="NKO LETTER JONA RA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x07EA,
},
[0x07EB]={
- ["category"]="mn",
- ["description"]="NKO COMBINING SHORT HIGH TONE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x07EB, -- ߫
+ category="mn",
+ description="NKO COMBINING SHORT HIGH TONE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x07EB,
},
[0x07EC]={
- ["category"]="mn",
- ["description"]="NKO COMBINING SHORT LOW TONE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x07EC, -- ߬
+ category="mn",
+ description="NKO COMBINING SHORT LOW TONE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x07EC,
},
[0x07ED]={
- ["category"]="mn",
- ["description"]="NKO COMBINING SHORT RISING TONE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x07ED, -- ߭
+ category="mn",
+ description="NKO COMBINING SHORT RISING TONE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x07ED,
},
[0x07EE]={
- ["category"]="mn",
- ["description"]="NKO COMBINING LONG DESCENDING TONE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x07EE, -- ߮
+ category="mn",
+ description="NKO COMBINING LONG DESCENDING TONE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x07EE,
},
[0x07EF]={
- ["category"]="mn",
- ["description"]="NKO COMBINING LONG HIGH TONE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x07EF, -- ߯
+ category="mn",
+ description="NKO COMBINING LONG HIGH TONE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x07EF,
},
[0x07F0]={
- ["category"]="mn",
- ["description"]="NKO COMBINING LONG LOW TONE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x07F0, -- ߰
+ category="mn",
+ description="NKO COMBINING LONG LOW TONE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x07F0,
},
[0x07F1]={
- ["category"]="mn",
- ["description"]="NKO COMBINING LONG RISING TONE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x07F1, -- ߱
+ category="mn",
+ description="NKO COMBINING LONG RISING TONE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x07F1,
},
[0x07F2]={
- ["category"]="mn",
- ["description"]="NKO COMBINING NASALIZATION MARK",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x07F2, -- ߲
+ category="mn",
+ description="NKO COMBINING NASALIZATION MARK",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x07F2,
},
[0x07F3]={
- ["category"]="mn",
- ["description"]="NKO COMBINING DOUBLE DOT ABOVE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x07F3, -- ߳
+ category="mn",
+ description="NKO COMBINING DOUBLE DOT ABOVE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x07F3,
},
[0x07F4]={
- ["category"]="lm",
- ["description"]="NKO HIGH TONE APOSTROPHE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x07F4, -- ߴ
+ category="lm",
+ description="NKO HIGH TONE APOSTROPHE",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x07F4,
},
[0x07F5]={
- ["category"]="lm",
- ["description"]="NKO LOW TONE APOSTROPHE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x07F5, -- ߵ
+ category="lm",
+ description="NKO LOW TONE APOSTROPHE",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x07F5,
},
[0x07F6]={
- ["category"]="so",
- ["description"]="NKO SYMBOL OO DENNEN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x07F6, -- ߶
+ category="so",
+ description="NKO SYMBOL OO DENNEN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x07F6,
},
[0x07F7]={
- ["category"]="po",
- ["description"]="NKO SYMBOL GBAKURUNEN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x07F7, -- ߷
+ category="po",
+ description="NKO SYMBOL GBAKURUNEN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x07F7,
},
[0x07F8]={
- ["category"]="po",
- ["description"]="NKO COMMA",
- ["linebreak"]="is",
- ["unicodeslot"]=0x07F8, -- ߸
+ category="po",
+ description="NKO COMMA",
+ direction="on",
+ linebreak="is",
+ unicodeslot=0x07F8,
},
[0x07F9]={
- ["category"]="po",
- ["description"]="NKO EXCLAMATION MARK",
- ["linebreak"]="ex",
- ["unicodeslot"]=0x07F9, -- ߹
+ category="po",
+ description="NKO EXCLAMATION MARK",
+ direction="on",
+ linebreak="ex",
+ unicodeslot=0x07F9,
},
[0x07FA]={
- ["category"]="lm",
- ["description"]="NKO LAJANYALAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x07FA, -- ߺ
+ category="lm",
+ description="NKO LAJANYALAN",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x07FA,
},
[0x0901]={
- ["category"]="mn",
- ["description"]="DEVANAGARI SIGN CANDRABINDU",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0901, -- ँ
+ category="mn",
+ description="DEVANAGARI SIGN CANDRABINDU",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0901,
},
[0x0902]={
- ["category"]="mn",
- ["description"]="DEVANAGARI SIGN ANUSVARA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0902, -- ं
+ category="mn",
+ description="DEVANAGARI SIGN ANUSVARA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0902,
},
[0x0903]={
- ["category"]="mc",
- ["description"]="DEVANAGARI SIGN VISARGA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0903, -- ः
+ category="mc",
+ description="DEVANAGARI SIGN VISARGA",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0903,
},
[0x0904]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER SHORT A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0904, -- ऄ
+ category="lo",
+ description="DEVANAGARI LETTER SHORT A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0904,
},
[0x0905]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0905, -- अ
+ category="lo",
+ description="DEVANAGARI LETTER A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0905,
},
[0x0906]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER AA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0906, -- आ
+ category="lo",
+ description="DEVANAGARI LETTER AA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0906,
},
[0x0907]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER I",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0907, -- इ
+ category="lo",
+ description="DEVANAGARI LETTER I",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0907,
},
[0x0908]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER II",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0908, -- ई
+ category="lo",
+ description="DEVANAGARI LETTER II",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0908,
},
[0x0909]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER U",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0909, -- उ
+ category="lo",
+ description="DEVANAGARI LETTER U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0909,
},
[0x090A]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER UU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x090A, -- ऊ
+ category="lo",
+ description="DEVANAGARI LETTER UU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x090A,
},
[0x090B]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER VOCALIC R",
- ["linebreak"]="al",
- ["unicodeslot"]=0x090B, -- ऋ
+ category="lo",
+ description="DEVANAGARI LETTER VOCALIC R",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x090B,
},
[0x090C]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER VOCALIC L",
- ["linebreak"]="al",
- ["unicodeslot"]=0x090C, -- ऌ
+ category="lo",
+ description="DEVANAGARI LETTER VOCALIC L",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x090C,
},
[0x090D]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER CANDRA E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x090D, -- ऍ
+ category="lo",
+ description="DEVANAGARI LETTER CANDRA E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x090D,
},
[0x090E]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER SHORT E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x090E, -- ऎ
+ category="lo",
+ description="DEVANAGARI LETTER SHORT E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x090E,
},
[0x090F]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x090F, -- ए
+ category="lo",
+ description="DEVANAGARI LETTER E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x090F,
},
[0x0910]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER AI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0910, -- ऐ
+ category="lo",
+ description="DEVANAGARI LETTER AI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0910,
},
[0x0911]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER CANDRA O",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0911, -- ऑ
+ category="lo",
+ description="DEVANAGARI LETTER CANDRA O",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0911,
},
[0x0912]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER SHORT O",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0912, -- ऒ
+ category="lo",
+ description="DEVANAGARI LETTER SHORT O",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0912,
},
[0x0913]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER O",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0913, -- ओ
+ category="lo",
+ description="DEVANAGARI LETTER O",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0913,
},
[0x0914]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER AU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0914, -- औ
+ category="lo",
+ description="DEVANAGARI LETTER AU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0914,
},
[0x0915]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER KA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0915, -- क
+ category="lo",
+ description="DEVANAGARI LETTER KA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0915,
},
[0x0916]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER KHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0916, -- ख
+ category="lo",
+ description="DEVANAGARI LETTER KHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0916,
},
[0x0917]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER GA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0917, -- ग
+ category="lo",
+ description="DEVANAGARI LETTER GA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0917,
},
[0x0918]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER GHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0918, -- घ
+ category="lo",
+ description="DEVANAGARI LETTER GHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0918,
},
[0x0919]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER NGA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0919, -- ङ
+ category="lo",
+ description="DEVANAGARI LETTER NGA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0919,
},
[0x091A]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER CA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x091A, -- च
+ category="lo",
+ description="DEVANAGARI LETTER CA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x091A,
},
[0x091B]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER CHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x091B, -- छ
+ category="lo",
+ description="DEVANAGARI LETTER CHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x091B,
},
[0x091C]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER JA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x091C, -- ज
+ category="lo",
+ description="DEVANAGARI LETTER JA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x091C,
},
[0x091D]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER JHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x091D, -- झ
+ category="lo",
+ description="DEVANAGARI LETTER JHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x091D,
},
[0x091E]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER NYA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x091E, -- ञ
+ category="lo",
+ description="DEVANAGARI LETTER NYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x091E,
},
[0x091F]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER TTA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x091F, -- ट
+ category="lo",
+ description="DEVANAGARI LETTER TTA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x091F,
},
[0x0920]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER TTHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0920, -- ठ
+ category="lo",
+ description="DEVANAGARI LETTER TTHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0920,
},
[0x0921]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER DDA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0921, -- ड
+ category="lo",
+ description="DEVANAGARI LETTER DDA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0921,
},
[0x0922]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER DDHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0922, -- ढ
+ category="lo",
+ description="DEVANAGARI LETTER DDHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0922,
},
[0x0923]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER NNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0923, -- ण
+ category="lo",
+ description="DEVANAGARI LETTER NNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0923,
},
[0x0924]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER TA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0924, -- त
+ category="lo",
+ description="DEVANAGARI LETTER TA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0924,
},
[0x0925]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER THA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0925, -- थ
+ category="lo",
+ description="DEVANAGARI LETTER THA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0925,
},
[0x0926]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER DA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0926, -- द
+ category="lo",
+ description="DEVANAGARI LETTER DA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0926,
},
[0x0927]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER DHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0927, -- ध
+ category="lo",
+ description="DEVANAGARI LETTER DHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0927,
},
[0x0928]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER NA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0928, -- न
+ category="lo",
+ description="DEVANAGARI LETTER NA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0928,
},
[0x0929]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER NNNA",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x0928, 0x093C },
- ["unicodeslot"]=0x0929, -- ऩ
+ category="lo",
+ description="DEVANAGARI LETTER NNNA",
+ direction="l",
+ linebreak="al",
+ specials={ "char", 0x0928, 0x093C },
+ unicodeslot=0x0929,
},
[0x092A]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER PA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x092A, -- प
+ category="lo",
+ description="DEVANAGARI LETTER PA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x092A,
},
[0x092B]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER PHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x092B, -- फ
+ category="lo",
+ description="DEVANAGARI LETTER PHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x092B,
},
[0x092C]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER BA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x092C, -- ब
+ category="lo",
+ description="DEVANAGARI LETTER BA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x092C,
},
[0x092D]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER BHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x092D, -- भ
+ category="lo",
+ description="DEVANAGARI LETTER BHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x092D,
},
[0x092E]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER MA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x092E, -- म
+ category="lo",
+ description="DEVANAGARI LETTER MA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x092E,
},
[0x092F]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER YA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x092F, -- य
+ category="lo",
+ description="DEVANAGARI LETTER YA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x092F,
},
[0x0930]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER RA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0930, -- र
+ category="lo",
+ description="DEVANAGARI LETTER RA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0930,
},
[0x0931]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER RRA",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x0930, 0x093C },
- ["unicodeslot"]=0x0931, -- ऱ
+ category="lo",
+ description="DEVANAGARI LETTER RRA",
+ direction="l",
+ linebreak="al",
+ specials={ "char", 0x0930, 0x093C },
+ unicodeslot=0x0931,
},
[0x0932]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER LA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0932, -- ल
+ category="lo",
+ description="DEVANAGARI LETTER LA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0932,
},
[0x0933]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER LLA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0933, -- ळ
+ category="lo",
+ description="DEVANAGARI LETTER LLA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0933,
},
[0x0934]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER LLLA",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x0933, 0x093C },
- ["unicodeslot"]=0x0934, -- ऴ
+ category="lo",
+ description="DEVANAGARI LETTER LLLA",
+ direction="l",
+ linebreak="al",
+ specials={ "char", 0x0933, 0x093C },
+ unicodeslot=0x0934,
},
[0x0935]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER VA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0935, -- व
+ category="lo",
+ description="DEVANAGARI LETTER VA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0935,
},
[0x0936]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER SHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0936, -- श
+ category="lo",
+ description="DEVANAGARI LETTER SHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0936,
},
[0x0937]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER SSA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0937, -- ष
+ category="lo",
+ description="DEVANAGARI LETTER SSA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0937,
},
[0x0938]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER SA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0938, -- स
+ category="lo",
+ description="DEVANAGARI LETTER SA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0938,
},
[0x0939]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER HA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0939, -- ह
+ category="lo",
+ description="DEVANAGARI LETTER HA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0939,
},
[0x093C]={
- ["category"]="mn",
- ["description"]="DEVANAGARI SIGN NUKTA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x093C, -- ़
+ category="mn",
+ description="DEVANAGARI SIGN NUKTA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x093C,
},
[0x093D]={
- ["category"]="lo",
- ["description"]="DEVANAGARI SIGN AVAGRAHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x093D, -- ऽ
+ category="lo",
+ description="DEVANAGARI SIGN AVAGRAHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x093D,
},
[0x093E]={
- ["category"]="mc",
- ["description"]="DEVANAGARI VOWEL SIGN AA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x093E, -- ा
+ category="mc",
+ description="DEVANAGARI VOWEL SIGN AA",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x093E,
},
[0x093F]={
- ["category"]="mc",
- ["description"]="DEVANAGARI VOWEL SIGN I",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x093F, -- ि
+ category="mc",
+ description="DEVANAGARI VOWEL SIGN I",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x093F,
},
[0x0940]={
- ["category"]="mc",
- ["description"]="DEVANAGARI VOWEL SIGN II",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0940, -- ी
+ category="mc",
+ description="DEVANAGARI VOWEL SIGN II",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0940,
},
[0x0941]={
- ["category"]="mn",
- ["description"]="DEVANAGARI VOWEL SIGN U",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0941, -- ु
+ category="mn",
+ description="DEVANAGARI VOWEL SIGN U",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0941,
},
[0x0942]={
- ["category"]="mn",
- ["description"]="DEVANAGARI VOWEL SIGN UU",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0942, -- ू
+ category="mn",
+ description="DEVANAGARI VOWEL SIGN UU",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0942,
},
[0x0943]={
- ["category"]="mn",
- ["description"]="DEVANAGARI VOWEL SIGN VOCALIC R",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0943, -- ृ
+ category="mn",
+ description="DEVANAGARI VOWEL SIGN VOCALIC R",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0943,
},
[0x0944]={
- ["category"]="mn",
- ["description"]="DEVANAGARI VOWEL SIGN VOCALIC RR",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0944, -- ॄ
+ category="mn",
+ description="DEVANAGARI VOWEL SIGN VOCALIC RR",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0944,
},
[0x0945]={
- ["category"]="mn",
- ["description"]="DEVANAGARI VOWEL SIGN CANDRA E",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0945, -- ॅ
+ category="mn",
+ description="DEVANAGARI VOWEL SIGN CANDRA E",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0945,
},
[0x0946]={
- ["category"]="mn",
- ["description"]="DEVANAGARI VOWEL SIGN SHORT E",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0946, -- ॆ
+ category="mn",
+ description="DEVANAGARI VOWEL SIGN SHORT E",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0946,
},
[0x0947]={
- ["category"]="mn",
- ["description"]="DEVANAGARI VOWEL SIGN E",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0947, -- े
+ category="mn",
+ description="DEVANAGARI VOWEL SIGN E",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0947,
},
[0x0948]={
- ["category"]="mn",
- ["description"]="DEVANAGARI VOWEL SIGN AI",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0948, -- ै
+ category="mn",
+ description="DEVANAGARI VOWEL SIGN AI",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0948,
},
[0x0949]={
- ["category"]="mc",
- ["description"]="DEVANAGARI VOWEL SIGN CANDRA O",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0949, -- ॉ
+ category="mc",
+ description="DEVANAGARI VOWEL SIGN CANDRA O",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0949,
},
[0x094A]={
- ["category"]="mc",
- ["description"]="DEVANAGARI VOWEL SIGN SHORT O",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x094A, -- ॊ
+ category="mc",
+ description="DEVANAGARI VOWEL SIGN SHORT O",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x094A,
},
[0x094B]={
- ["category"]="mc",
- ["description"]="DEVANAGARI VOWEL SIGN O",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x094B, -- ो
+ category="mc",
+ description="DEVANAGARI VOWEL SIGN O",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x094B,
},
[0x094C]={
- ["category"]="mc",
- ["description"]="DEVANAGARI VOWEL SIGN AU",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x094C, -- ौ
+ category="mc",
+ description="DEVANAGARI VOWEL SIGN AU",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x094C,
},
[0x094D]={
- ["category"]="mn",
- ["description"]="DEVANAGARI SIGN VIRAMA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x094D, -- ्
+ category="mn",
+ description="DEVANAGARI SIGN VIRAMA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x094D,
},
[0x0950]={
- ["category"]="lo",
- ["description"]="DEVANAGARI OM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0950, -- ॐ
+ category="lo",
+ description="DEVANAGARI OM",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0950,
},
[0x0951]={
- ["category"]="mn",
- ["description"]="DEVANAGARI STRESS SIGN UDATTA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0951, -- ॑
+ category="mn",
+ description="DEVANAGARI STRESS SIGN UDATTA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0951,
},
[0x0952]={
- ["category"]="mn",
- ["description"]="DEVANAGARI STRESS SIGN ANUDATTA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0952, -- ॒
+ category="mn",
+ description="DEVANAGARI STRESS SIGN ANUDATTA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0952,
},
[0x0953]={
- ["category"]="mn",
- ["description"]="DEVANAGARI GRAVE ACCENT",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0953, -- ॓
+ category="mn",
+ description="DEVANAGARI GRAVE ACCENT",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0953,
},
[0x0954]={
- ["category"]="mn",
- ["description"]="DEVANAGARI ACUTE ACCENT",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0954, -- ॔
+ category="mn",
+ description="DEVANAGARI ACUTE ACCENT",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0954,
},
[0x0958]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER QA",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x0915, 0x093C },
- ["unicodeslot"]=0x0958, -- क़
+ category="lo",
+ description="DEVANAGARI LETTER QA",
+ direction="l",
+ linebreak="al",
+ specials={ "char", 0x0915, 0x093C },
+ unicodeslot=0x0958,
},
[0x0959]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER KHHA",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x0916, 0x093C },
- ["unicodeslot"]=0x0959, -- ख़
+ category="lo",
+ description="DEVANAGARI LETTER KHHA",
+ direction="l",
+ linebreak="al",
+ specials={ "char", 0x0916, 0x093C },
+ unicodeslot=0x0959,
},
[0x095A]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER GHHA",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x0917, 0x093C },
- ["unicodeslot"]=0x095A, -- ग़
+ category="lo",
+ description="DEVANAGARI LETTER GHHA",
+ direction="l",
+ linebreak="al",
+ specials={ "char", 0x0917, 0x093C },
+ unicodeslot=0x095A,
},
[0x095B]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER ZA",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x091C, 0x093C },
- ["unicodeslot"]=0x095B, -- ज़
+ category="lo",
+ description="DEVANAGARI LETTER ZA",
+ direction="l",
+ linebreak="al",
+ specials={ "char", 0x091C, 0x093C },
+ unicodeslot=0x095B,
},
[0x095C]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER DDDHA",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x0921, 0x093C },
- ["unicodeslot"]=0x095C, -- ड़
+ category="lo",
+ description="DEVANAGARI LETTER DDDHA",
+ direction="l",
+ linebreak="al",
+ specials={ "char", 0x0921, 0x093C },
+ unicodeslot=0x095C,
},
[0x095D]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER RHA",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x0922, 0x093C },
- ["unicodeslot"]=0x095D, -- ढ़
+ category="lo",
+ description="DEVANAGARI LETTER RHA",
+ direction="l",
+ linebreak="al",
+ specials={ "char", 0x0922, 0x093C },
+ unicodeslot=0x095D,
},
[0x095E]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER FA",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x092B, 0x093C },
- ["unicodeslot"]=0x095E, -- फ़
+ category="lo",
+ description="DEVANAGARI LETTER FA",
+ direction="l",
+ linebreak="al",
+ specials={ "char", 0x092B, 0x093C },
+ unicodeslot=0x095E,
},
[0x095F]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER YYA",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x092F, 0x093C },
- ["unicodeslot"]=0x095F, -- य़
+ category="lo",
+ description="DEVANAGARI LETTER YYA",
+ direction="l",
+ linebreak="al",
+ specials={ "char", 0x092F, 0x093C },
+ unicodeslot=0x095F,
},
[0x0960]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER VOCALIC RR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0960, -- ॠ
+ category="lo",
+ description="DEVANAGARI LETTER VOCALIC RR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0960,
},
[0x0961]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER VOCALIC LL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0961, -- ॡ
+ category="lo",
+ description="DEVANAGARI LETTER VOCALIC LL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0961,
},
[0x0962]={
- ["category"]="mn",
- ["description"]="DEVANAGARI VOWEL SIGN VOCALIC L",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0962, -- ॢ
+ category="mn",
+ description="DEVANAGARI VOWEL SIGN VOCALIC L",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0962,
},
[0x0963]={
- ["category"]="mn",
- ["description"]="DEVANAGARI VOWEL SIGN VOCALIC LL",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0963, -- ॣ
+ category="mn",
+ description="DEVANAGARI VOWEL SIGN VOCALIC LL",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0963,
},
[0x0964]={
- ["category"]="po",
- ["description"]="DEVANAGARI DANDA",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x0964, -- ।
+ category="po",
+ description="DEVANAGARI DANDA",
+ direction="l",
+ linebreak="ba",
+ unicodeslot=0x0964,
},
[0x0965]={
- ["category"]="po",
- ["description"]="DEVANAGARI DOUBLE DANDA",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x0965, -- ॥
+ category="po",
+ description="DEVANAGARI DOUBLE DANDA",
+ direction="l",
+ linebreak="ba",
+ unicodeslot=0x0965,
},
[0x0966]={
- ["category"]="nd",
- ["description"]="DEVANAGARI DIGIT ZERO",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0966, -- ०
+ category="nd",
+ description="DEVANAGARI DIGIT ZERO",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0966,
},
[0x0967]={
- ["category"]="nd",
- ["description"]="DEVANAGARI DIGIT ONE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0967, -- १
+ category="nd",
+ description="DEVANAGARI DIGIT ONE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0967,
},
[0x0968]={
- ["category"]="nd",
- ["description"]="DEVANAGARI DIGIT TWO",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0968, -- २
+ category="nd",
+ description="DEVANAGARI DIGIT TWO",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0968,
},
[0x0969]={
- ["category"]="nd",
- ["description"]="DEVANAGARI DIGIT THREE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0969, -- ३
+ category="nd",
+ description="DEVANAGARI DIGIT THREE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0969,
},
[0x096A]={
- ["category"]="nd",
- ["description"]="DEVANAGARI DIGIT FOUR",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x096A, -- ४
+ category="nd",
+ description="DEVANAGARI DIGIT FOUR",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x096A,
},
[0x096B]={
- ["category"]="nd",
- ["description"]="DEVANAGARI DIGIT FIVE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x096B, -- ५
+ category="nd",
+ description="DEVANAGARI DIGIT FIVE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x096B,
},
[0x096C]={
- ["category"]="nd",
- ["description"]="DEVANAGARI DIGIT SIX",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x096C, -- ६
+ category="nd",
+ description="DEVANAGARI DIGIT SIX",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x096C,
},
[0x096D]={
- ["category"]="nd",
- ["description"]="DEVANAGARI DIGIT SEVEN",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x096D, -- ७
+ category="nd",
+ description="DEVANAGARI DIGIT SEVEN",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x096D,
},
[0x096E]={
- ["category"]="nd",
- ["description"]="DEVANAGARI DIGIT EIGHT",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x096E, -- ८
+ category="nd",
+ description="DEVANAGARI DIGIT EIGHT",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x096E,
},
[0x096F]={
- ["category"]="nd",
- ["description"]="DEVANAGARI DIGIT NINE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x096F, -- ९
+ category="nd",
+ description="DEVANAGARI DIGIT NINE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x096F,
},
[0x0970]={
- ["category"]="po",
- ["description"]="DEVANAGARI ABBREVIATION SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0970, -- ॰
+ category="po",
+ description="DEVANAGARI ABBREVIATION SIGN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0970,
},
[0x097B]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER GGA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x097B, -- ॻ
+ category="lo",
+ description="DEVANAGARI LETTER GGA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x097B,
},
[0x097C]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER JJA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x097C, -- ॼ
+ category="lo",
+ description="DEVANAGARI LETTER JJA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x097C,
},
[0x097D]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER GLOTTAL STOP",
- ["linebreak"]="al",
- ["unicodeslot"]=0x097D, -- ॽ
+ category="lo",
+ description="DEVANAGARI LETTER GLOTTAL STOP",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x097D,
},
[0x097E]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER DDDA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x097E, -- ॾ
+ category="lo",
+ description="DEVANAGARI LETTER DDDA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x097E,
},
[0x097F]={
- ["category"]="lo",
- ["description"]="DEVANAGARI LETTER BBA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x097F, -- ॿ
+ category="lo",
+ description="DEVANAGARI LETTER BBA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x097F,
},
[0x0981]={
- ["category"]="mn",
- ["description"]="BENGALI SIGN CANDRABINDU",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0981, -- ঁ
+ category="mn",
+ description="BENGALI SIGN CANDRABINDU",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0981,
},
[0x0982]={
- ["category"]="mc",
- ["description"]="BENGALI SIGN ANUSVARA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0982, -- ং
+ category="mc",
+ description="BENGALI SIGN ANUSVARA",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0982,
},
[0x0983]={
- ["category"]="mc",
- ["description"]="BENGALI SIGN VISARGA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0983, -- ঃ
+ category="mc",
+ description="BENGALI SIGN VISARGA",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0983,
},
[0x0985]={
- ["category"]="lo",
- ["description"]="BENGALI LETTER A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0985, -- অ
+ category="lo",
+ description="BENGALI LETTER A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0985,
},
[0x0986]={
- ["category"]="lo",
- ["description"]="BENGALI LETTER AA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0986, -- আ
+ category="lo",
+ description="BENGALI LETTER AA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0986,
},
[0x0987]={
- ["category"]="lo",
- ["description"]="BENGALI LETTER I",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0987, -- ই
+ category="lo",
+ description="BENGALI LETTER I",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0987,
},
[0x0988]={
- ["category"]="lo",
- ["description"]="BENGALI LETTER II",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0988, -- ঈ
+ category="lo",
+ description="BENGALI LETTER II",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0988,
},
[0x0989]={
- ["category"]="lo",
- ["description"]="BENGALI LETTER U",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0989, -- উ
+ category="lo",
+ description="BENGALI LETTER U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0989,
},
[0x098A]={
- ["category"]="lo",
- ["description"]="BENGALI LETTER UU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x098A, -- ঊ
+ category="lo",
+ description="BENGALI LETTER UU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x098A,
},
[0x098B]={
- ["category"]="lo",
- ["description"]="BENGALI LETTER VOCALIC R",
- ["linebreak"]="al",
- ["unicodeslot"]=0x098B, -- ঋ
+ category="lo",
+ description="BENGALI LETTER VOCALIC R",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x098B,
},
[0x098C]={
- ["category"]="lo",
- ["description"]="BENGALI LETTER VOCALIC L",
- ["linebreak"]="al",
- ["unicodeslot"]=0x098C, -- ঌ
+ category="lo",
+ description="BENGALI LETTER VOCALIC L",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x098C,
},
[0x098F]={
- ["category"]="lo",
- ["description"]="BENGALI LETTER E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x098F, -- এ
+ category="lo",
+ description="BENGALI LETTER E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x098F,
},
[0x0990]={
- ["category"]="lo",
- ["description"]="BENGALI LETTER AI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0990, -- ঐ
+ category="lo",
+ description="BENGALI LETTER AI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0990,
},
[0x0993]={
- ["category"]="lo",
- ["description"]="BENGALI LETTER O",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0993, -- ও
+ category="lo",
+ description="BENGALI LETTER O",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0993,
},
[0x0994]={
- ["category"]="lo",
- ["description"]="BENGALI LETTER AU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0994, -- ঔ
+ category="lo",
+ description="BENGALI LETTER AU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0994,
},
[0x0995]={
- ["category"]="lo",
- ["description"]="BENGALI LETTER KA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0995, -- ক
+ category="lo",
+ description="BENGALI LETTER KA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0995,
},
[0x0996]={
- ["category"]="lo",
- ["description"]="BENGALI LETTER KHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0996, -- খ
+ category="lo",
+ description="BENGALI LETTER KHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0996,
},
[0x0997]={
- ["category"]="lo",
- ["description"]="BENGALI LETTER GA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0997, -- গ
+ category="lo",
+ description="BENGALI LETTER GA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0997,
},
[0x0998]={
- ["category"]="lo",
- ["description"]="BENGALI LETTER GHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0998, -- ঘ
+ category="lo",
+ description="BENGALI LETTER GHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0998,
},
[0x0999]={
- ["category"]="lo",
- ["description"]="BENGALI LETTER NGA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0999, -- ঙ
+ category="lo",
+ description="BENGALI LETTER NGA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0999,
},
[0x099A]={
- ["category"]="lo",
- ["description"]="BENGALI LETTER CA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x099A, -- চ
+ category="lo",
+ description="BENGALI LETTER CA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x099A,
},
[0x099B]={
- ["category"]="lo",
- ["description"]="BENGALI LETTER CHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x099B, -- ছ
+ category="lo",
+ description="BENGALI LETTER CHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x099B,
},
[0x099C]={
- ["category"]="lo",
- ["description"]="BENGALI LETTER JA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x099C, -- জ
+ category="lo",
+ description="BENGALI LETTER JA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x099C,
},
[0x099D]={
- ["category"]="lo",
- ["description"]="BENGALI LETTER JHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x099D, -- ঝ
+ category="lo",
+ description="BENGALI LETTER JHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x099D,
},
[0x099E]={
- ["category"]="lo",
- ["description"]="BENGALI LETTER NYA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x099E, -- ঞ
+ category="lo",
+ description="BENGALI LETTER NYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x099E,
},
[0x099F]={
- ["category"]="lo",
- ["description"]="BENGALI LETTER TTA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x099F, -- ট
+ category="lo",
+ description="BENGALI LETTER TTA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x099F,
},
[0x09A0]={
- ["category"]="lo",
- ["description"]="BENGALI LETTER TTHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x09A0, -- ঠ
+ category="lo",
+ description="BENGALI LETTER TTHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x09A0,
},
[0x09A1]={
- ["category"]="lo",
- ["description"]="BENGALI LETTER DDA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x09A1, -- ড
+ category="lo",
+ description="BENGALI LETTER DDA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x09A1,
},
[0x09A2]={
- ["category"]="lo",
- ["description"]="BENGALI LETTER DDHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x09A2, -- ঢ
+ category="lo",
+ description="BENGALI LETTER DDHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x09A2,
},
[0x09A3]={
- ["category"]="lo",
- ["description"]="BENGALI LETTER NNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x09A3, -- ণ
+ category="lo",
+ description="BENGALI LETTER NNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x09A3,
},
[0x09A4]={
- ["category"]="lo",
- ["description"]="BENGALI LETTER TA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x09A4, -- ত
+ category="lo",
+ description="BENGALI LETTER TA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x09A4,
},
[0x09A5]={
- ["category"]="lo",
- ["description"]="BENGALI LETTER THA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x09A5, -- থ
+ category="lo",
+ description="BENGALI LETTER THA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x09A5,
},
[0x09A6]={
- ["category"]="lo",
- ["description"]="BENGALI LETTER DA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x09A6, -- দ
+ category="lo",
+ description="BENGALI LETTER DA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x09A6,
},
[0x09A7]={
- ["category"]="lo",
- ["description"]="BENGALI LETTER DHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x09A7, -- ধ
+ category="lo",
+ description="BENGALI LETTER DHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x09A7,
},
[0x09A8]={
- ["category"]="lo",
- ["description"]="BENGALI LETTER NA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x09A8, -- ন
+ category="lo",
+ description="BENGALI LETTER NA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x09A8,
},
[0x09AA]={
- ["category"]="lo",
- ["description"]="BENGALI LETTER PA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x09AA, -- প
+ category="lo",
+ description="BENGALI LETTER PA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x09AA,
},
[0x09AB]={
- ["category"]="lo",
- ["description"]="BENGALI LETTER PHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x09AB, -- ফ
+ category="lo",
+ description="BENGALI LETTER PHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x09AB,
},
[0x09AC]={
- ["category"]="lo",
- ["description"]="BENGALI LETTER BA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x09AC, -- ব
+ category="lo",
+ description="BENGALI LETTER BA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x09AC,
},
[0x09AD]={
- ["category"]="lo",
- ["description"]="BENGALI LETTER BHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x09AD, -- ভ
+ category="lo",
+ description="BENGALI LETTER BHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x09AD,
},
[0x09AE]={
- ["category"]="lo",
- ["description"]="BENGALI LETTER MA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x09AE, -- ম
+ category="lo",
+ description="BENGALI LETTER MA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x09AE,
},
[0x09AF]={
- ["category"]="lo",
- ["description"]="BENGALI LETTER YA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x09AF, -- য
+ category="lo",
+ description="BENGALI LETTER YA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x09AF,
},
[0x09B0]={
- ["category"]="lo",
- ["description"]="BENGALI LETTER RA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x09B0, -- র
+ category="lo",
+ description="BENGALI LETTER RA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x09B0,
},
[0x09B2]={
- ["category"]="lo",
- ["description"]="BENGALI LETTER LA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x09B2, -- ল
+ category="lo",
+ description="BENGALI LETTER LA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x09B2,
},
[0x09B6]={
- ["category"]="lo",
- ["description"]="BENGALI LETTER SHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x09B6, -- শ
+ category="lo",
+ description="BENGALI LETTER SHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x09B6,
},
[0x09B7]={
- ["category"]="lo",
- ["description"]="BENGALI LETTER SSA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x09B7, -- ষ
+ category="lo",
+ description="BENGALI LETTER SSA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x09B7,
},
[0x09B8]={
- ["category"]="lo",
- ["description"]="BENGALI LETTER SA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x09B8, -- স
+ category="lo",
+ description="BENGALI LETTER SA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x09B8,
},
[0x09B9]={
- ["category"]="lo",
- ["description"]="BENGALI LETTER HA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x09B9, -- হ
+ category="lo",
+ description="BENGALI LETTER HA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x09B9,
},
[0x09BC]={
- ["category"]="mn",
- ["description"]="BENGALI SIGN NUKTA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x09BC, -- ়
+ category="mn",
+ description="BENGALI SIGN NUKTA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x09BC,
},
[0x09BD]={
- ["category"]="lo",
- ["description"]="BENGALI SIGN AVAGRAHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x09BD, -- ঽ
+ category="lo",
+ description="BENGALI SIGN AVAGRAHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x09BD,
},
[0x09BE]={
- ["category"]="mc",
- ["description"]="BENGALI VOWEL SIGN AA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x09BE, -- া
+ category="mc",
+ description="BENGALI VOWEL SIGN AA",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x09BE,
},
[0x09BF]={
- ["category"]="mc",
- ["description"]="BENGALI VOWEL SIGN I",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x09BF, -- ি
+ category="mc",
+ description="BENGALI VOWEL SIGN I",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x09BF,
},
[0x09C0]={
- ["category"]="mc",
- ["description"]="BENGALI VOWEL SIGN II",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x09C0, -- ী
+ category="mc",
+ description="BENGALI VOWEL SIGN II",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x09C0,
},
[0x09C1]={
- ["category"]="mn",
- ["description"]="BENGALI VOWEL SIGN U",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x09C1, -- ু
+ category="mn",
+ description="BENGALI VOWEL SIGN U",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x09C1,
},
[0x09C2]={
- ["category"]="mn",
- ["description"]="BENGALI VOWEL SIGN UU",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x09C2, -- ূ
+ category="mn",
+ description="BENGALI VOWEL SIGN UU",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x09C2,
},
[0x09C3]={
- ["category"]="mn",
- ["description"]="BENGALI VOWEL SIGN VOCALIC R",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x09C3, -- ৃ
+ category="mn",
+ description="BENGALI VOWEL SIGN VOCALIC R",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x09C3,
},
[0x09C4]={
- ["category"]="mn",
- ["description"]="BENGALI VOWEL SIGN VOCALIC RR",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x09C4, -- ৄ
+ category="mn",
+ description="BENGALI VOWEL SIGN VOCALIC RR",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x09C4,
},
[0x09C7]={
- ["category"]="mc",
- ["description"]="BENGALI VOWEL SIGN E",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x09C7, -- ে
+ category="mc",
+ description="BENGALI VOWEL SIGN E",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x09C7,
},
[0x09C8]={
- ["category"]="mc",
- ["description"]="BENGALI VOWEL SIGN AI",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x09C8, -- ৈ
+ category="mc",
+ description="BENGALI VOWEL SIGN AI",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x09C8,
},
[0x09CB]={
- ["category"]="mc",
- ["description"]="BENGALI VOWEL SIGN O",
- ["linebreak"]="cm",
- ["specials"]={ "char", 0x09C7, 0x09BE },
- ["unicodeslot"]=0x09CB, -- ো
+ category="mc",
+ description="BENGALI VOWEL SIGN O",
+ direction="l",
+ linebreak="cm",
+ specials={ "char", 0x09C7, 0x09BE },
+ unicodeslot=0x09CB,
},
[0x09CC]={
- ["category"]="mc",
- ["description"]="BENGALI VOWEL SIGN AU",
- ["linebreak"]="cm",
- ["specials"]={ "char", 0x09C7, 0x09D7 },
- ["unicodeslot"]=0x09CC, -- ৌ
+ category="mc",
+ description="BENGALI VOWEL SIGN AU",
+ direction="l",
+ linebreak="cm",
+ specials={ "char", 0x09C7, 0x09D7 },
+ unicodeslot=0x09CC,
},
[0x09CD]={
- ["category"]="mn",
- ["description"]="BENGALI SIGN VIRAMA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x09CD, -- ্
+ category="mn",
+ description="BENGALI SIGN VIRAMA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x09CD,
},
[0x09CE]={
- ["category"]="lo",
- ["description"]="BENGALI LETTER KHANDA TA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x09CE, -- ৎ
+ category="lo",
+ description="BENGALI LETTER KHANDA TA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x09CE,
},
[0x09D7]={
- ["category"]="mc",
- ["description"]="BENGALI AU LENGTH MARK",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x09D7, -- ৗ
+ category="mc",
+ description="BENGALI AU LENGTH MARK",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x09D7,
},
[0x09DC]={
- ["category"]="lo",
- ["description"]="BENGALI LETTER RRA",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x09A1, 0x09BC },
- ["unicodeslot"]=0x09DC, -- ড়
+ category="lo",
+ description="BENGALI LETTER RRA",
+ direction="l",
+ linebreak="al",
+ specials={ "char", 0x09A1, 0x09BC },
+ unicodeslot=0x09DC,
},
[0x09DD]={
- ["category"]="lo",
- ["description"]="BENGALI LETTER RHA",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x09A2, 0x09BC },
- ["unicodeslot"]=0x09DD, -- ঢ়
+ category="lo",
+ description="BENGALI LETTER RHA",
+ direction="l",
+ linebreak="al",
+ specials={ "char", 0x09A2, 0x09BC },
+ unicodeslot=0x09DD,
},
[0x09DF]={
- ["category"]="lo",
- ["description"]="BENGALI LETTER YYA",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x09AF, 0x09BC },
- ["unicodeslot"]=0x09DF, -- য়
+ category="lo",
+ description="BENGALI LETTER YYA",
+ direction="l",
+ linebreak="al",
+ specials={ "char", 0x09AF, 0x09BC },
+ unicodeslot=0x09DF,
},
[0x09E0]={
- ["category"]="lo",
- ["description"]="BENGALI LETTER VOCALIC RR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x09E0, -- ৠ
+ category="lo",
+ description="BENGALI LETTER VOCALIC RR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x09E0,
},
[0x09E1]={
- ["category"]="lo",
- ["description"]="BENGALI LETTER VOCALIC LL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x09E1, -- ৡ
+ category="lo",
+ description="BENGALI LETTER VOCALIC LL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x09E1,
},
[0x09E2]={
- ["category"]="mn",
- ["description"]="BENGALI VOWEL SIGN VOCALIC L",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x09E2, -- ৢ
+ category="mn",
+ description="BENGALI VOWEL SIGN VOCALIC L",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x09E2,
},
[0x09E3]={
- ["category"]="mn",
- ["description"]="BENGALI VOWEL SIGN VOCALIC LL",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x09E3, -- ৣ
+ category="mn",
+ description="BENGALI VOWEL SIGN VOCALIC LL",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x09E3,
},
[0x09E6]={
- ["category"]="nd",
- ["description"]="BENGALI DIGIT ZERO",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x09E6, -- ০
+ category="nd",
+ description="BENGALI DIGIT ZERO",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x09E6,
},
[0x09E7]={
- ["category"]="nd",
- ["description"]="BENGALI DIGIT ONE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x09E7, -- ১
+ category="nd",
+ description="BENGALI DIGIT ONE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x09E7,
},
[0x09E8]={
- ["category"]="nd",
- ["description"]="BENGALI DIGIT TWO",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x09E8, -- ২
+ category="nd",
+ description="BENGALI DIGIT TWO",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x09E8,
},
[0x09E9]={
- ["category"]="nd",
- ["description"]="BENGALI DIGIT THREE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x09E9, -- ৩
+ category="nd",
+ description="BENGALI DIGIT THREE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x09E9,
},
[0x09EA]={
- ["category"]="nd",
- ["description"]="BENGALI DIGIT FOUR",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x09EA, -- ৪
+ category="nd",
+ description="BENGALI DIGIT FOUR",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x09EA,
},
[0x09EB]={
- ["category"]="nd",
- ["description"]="BENGALI DIGIT FIVE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x09EB, -- ৫
+ category="nd",
+ description="BENGALI DIGIT FIVE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x09EB,
},
[0x09EC]={
- ["category"]="nd",
- ["description"]="BENGALI DIGIT SIX",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x09EC, -- ৬
+ category="nd",
+ description="BENGALI DIGIT SIX",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x09EC,
},
[0x09ED]={
- ["category"]="nd",
- ["description"]="BENGALI DIGIT SEVEN",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x09ED, -- ৭
+ category="nd",
+ description="BENGALI DIGIT SEVEN",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x09ED,
},
[0x09EE]={
- ["category"]="nd",
- ["description"]="BENGALI DIGIT EIGHT",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x09EE, -- ৮
+ category="nd",
+ description="BENGALI DIGIT EIGHT",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x09EE,
},
[0x09EF]={
- ["category"]="nd",
- ["description"]="BENGALI DIGIT NINE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x09EF, -- ৯
+ category="nd",
+ description="BENGALI DIGIT NINE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x09EF,
},
[0x09F0]={
- ["category"]="lo",
- ["description"]="BENGALI LETTER RA WITH MIDDLE DIAGONAL",
- ["linebreak"]="al",
- ["shcode"]=0x09B0,
- ["unicodeslot"]=0x09F0, -- ৰ
+ category="lo",
+ description="BENGALI LETTER RA WITH MIDDLE DIAGONAL",
+ direction="l",
+ linebreak="al",
+ shcode=0x09B0,
+ unicodeslot=0x09F0,
},
[0x09F1]={
- ["category"]="lo",
- ["description"]="BENGALI LETTER RA WITH LOWER DIAGONAL",
- ["linebreak"]="al",
- ["shcode"]=0x09B0,
- ["unicodeslot"]=0x09F1, -- ৱ
+ category="lo",
+ description="BENGALI LETTER RA WITH LOWER DIAGONAL",
+ direction="l",
+ linebreak="al",
+ shcode=0x09B0,
+ unicodeslot=0x09F1,
},
[0x09F2]={
- ["category"]="sc",
- ["description"]="BENGALI RUPEE MARK",
- ["linebreak"]="pr",
- ["unicodeslot"]=0x09F2, -- ৲
+ category="sc",
+ description="BENGALI RUPEE MARK",
+ direction="et",
+ linebreak="pr",
+ unicodeslot=0x09F2,
},
[0x09F3]={
- ["category"]="sc",
- ["description"]="BENGALI RUPEE SIGN",
- ["linebreak"]="pr",
- ["unicodeslot"]=0x09F3, -- ৳
+ category="sc",
+ description="BENGALI RUPEE SIGN",
+ direction="et",
+ linebreak="pr",
+ unicodeslot=0x09F3,
},
[0x09F4]={
- ["category"]="no",
- ["description"]="BENGALI CURRENCY NUMERATOR ONE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x09F4, -- ৴
+ category="no",
+ description="BENGALI CURRENCY NUMERATOR ONE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x09F4,
},
[0x09F5]={
- ["category"]="no",
- ["description"]="BENGALI CURRENCY NUMERATOR TWO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x09F5, -- ৵
+ category="no",
+ description="BENGALI CURRENCY NUMERATOR TWO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x09F5,
},
[0x09F6]={
- ["category"]="no",
- ["description"]="BENGALI CURRENCY NUMERATOR THREE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x09F6, -- ৶
+ category="no",
+ description="BENGALI CURRENCY NUMERATOR THREE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x09F6,
},
[0x09F7]={
- ["category"]="no",
- ["description"]="BENGALI CURRENCY NUMERATOR FOUR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x09F7, -- ৷
+ category="no",
+ description="BENGALI CURRENCY NUMERATOR FOUR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x09F7,
},
[0x09F8]={
- ["category"]="no",
- ["description"]="BENGALI CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x09F8, -- ৸
+ category="no",
+ description="BENGALI CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x09F8,
},
[0x09F9]={
- ["category"]="no",
- ["description"]="BENGALI CURRENCY DENOMINATOR SIXTEEN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x09F9, -- ৹
+ category="no",
+ description="BENGALI CURRENCY DENOMINATOR SIXTEEN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x09F9,
},
[0x09FA]={
- ["category"]="so",
- ["description"]="BENGALI ISSHAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x09FA, -- ৺
+ category="so",
+ description="BENGALI ISSHAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x09FA,
},
[0x0A01]={
- ["category"]="mn",
- ["description"]="GURMUKHI SIGN ADAK BINDI",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0A01, -- ਁ
+ category="mn",
+ description="GURMUKHI SIGN ADAK BINDI",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0A01,
},
[0x0A02]={
- ["category"]="mn",
- ["description"]="GURMUKHI SIGN BINDI",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0A02, -- ਂ
+ category="mn",
+ description="GURMUKHI SIGN BINDI",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0A02,
},
[0x0A03]={
- ["category"]="mc",
- ["description"]="GURMUKHI SIGN VISARGA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0A03, -- ਃ
+ category="mc",
+ description="GURMUKHI SIGN VISARGA",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0A03,
},
[0x0A05]={
- ["category"]="lo",
- ["description"]="GURMUKHI LETTER A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A05, -- ਅ
+ category="lo",
+ description="GURMUKHI LETTER A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A05,
},
[0x0A06]={
- ["category"]="lo",
- ["description"]="GURMUKHI LETTER AA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A06, -- ਆ
+ category="lo",
+ description="GURMUKHI LETTER AA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A06,
},
[0x0A07]={
- ["category"]="lo",
- ["description"]="GURMUKHI LETTER I",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A07, -- ਇ
+ category="lo",
+ description="GURMUKHI LETTER I",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A07,
},
[0x0A08]={
- ["category"]="lo",
- ["description"]="GURMUKHI LETTER II",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A08, -- ਈ
+ category="lo",
+ description="GURMUKHI LETTER II",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A08,
},
[0x0A09]={
- ["category"]="lo",
- ["description"]="GURMUKHI LETTER U",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A09, -- ਉ
+ category="lo",
+ description="GURMUKHI LETTER U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A09,
},
[0x0A0A]={
- ["category"]="lo",
- ["description"]="GURMUKHI LETTER UU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A0A, -- ਊ
+ category="lo",
+ description="GURMUKHI LETTER UU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A0A,
},
[0x0A0F]={
- ["category"]="lo",
- ["description"]="GURMUKHI LETTER EE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A0F, -- ਏ
+ category="lo",
+ description="GURMUKHI LETTER EE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A0F,
},
[0x0A10]={
- ["category"]="lo",
- ["description"]="GURMUKHI LETTER AI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A10, -- ਐ
+ category="lo",
+ description="GURMUKHI LETTER AI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A10,
},
[0x0A13]={
- ["category"]="lo",
- ["description"]="GURMUKHI LETTER OO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A13, -- ਓ
+ category="lo",
+ description="GURMUKHI LETTER OO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A13,
},
[0x0A14]={
- ["category"]="lo",
- ["description"]="GURMUKHI LETTER AU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A14, -- ਔ
+ category="lo",
+ description="GURMUKHI LETTER AU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A14,
},
[0x0A15]={
- ["category"]="lo",
- ["description"]="GURMUKHI LETTER KA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A15, -- ਕ
+ category="lo",
+ description="GURMUKHI LETTER KA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A15,
},
[0x0A16]={
- ["category"]="lo",
- ["description"]="GURMUKHI LETTER KHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A16, -- ਖ
+ category="lo",
+ description="GURMUKHI LETTER KHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A16,
},
[0x0A17]={
- ["category"]="lo",
- ["description"]="GURMUKHI LETTER GA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A17, -- ਗ
+ category="lo",
+ description="GURMUKHI LETTER GA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A17,
},
[0x0A18]={
- ["category"]="lo",
- ["description"]="GURMUKHI LETTER GHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A18, -- ਘ
+ category="lo",
+ description="GURMUKHI LETTER GHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A18,
},
[0x0A19]={
- ["category"]="lo",
- ["description"]="GURMUKHI LETTER NGA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A19, -- ਙ
+ category="lo",
+ description="GURMUKHI LETTER NGA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A19,
},
[0x0A1A]={
- ["category"]="lo",
- ["description"]="GURMUKHI LETTER CA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A1A, -- ਚ
+ category="lo",
+ description="GURMUKHI LETTER CA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A1A,
},
[0x0A1B]={
- ["category"]="lo",
- ["description"]="GURMUKHI LETTER CHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A1B, -- ਛ
+ category="lo",
+ description="GURMUKHI LETTER CHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A1B,
},
[0x0A1C]={
- ["category"]="lo",
- ["description"]="GURMUKHI LETTER JA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A1C, -- ਜ
+ category="lo",
+ description="GURMUKHI LETTER JA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A1C,
},
[0x0A1D]={
- ["category"]="lo",
- ["description"]="GURMUKHI LETTER JHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A1D, -- ਝ
+ category="lo",
+ description="GURMUKHI LETTER JHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A1D,
},
[0x0A1E]={
- ["category"]="lo",
- ["description"]="GURMUKHI LETTER NYA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A1E, -- ਞ
+ category="lo",
+ description="GURMUKHI LETTER NYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A1E,
},
[0x0A1F]={
- ["category"]="lo",
- ["description"]="GURMUKHI LETTER TTA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A1F, -- ਟ
+ category="lo",
+ description="GURMUKHI LETTER TTA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A1F,
},
[0x0A20]={
- ["category"]="lo",
- ["description"]="GURMUKHI LETTER TTHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A20, -- ਠ
+ category="lo",
+ description="GURMUKHI LETTER TTHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A20,
},
[0x0A21]={
- ["category"]="lo",
- ["description"]="GURMUKHI LETTER DDA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A21, -- ਡ
+ category="lo",
+ description="GURMUKHI LETTER DDA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A21,
},
[0x0A22]={
- ["category"]="lo",
- ["description"]="GURMUKHI LETTER DDHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A22, -- ਢ
+ category="lo",
+ description="GURMUKHI LETTER DDHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A22,
},
[0x0A23]={
- ["category"]="lo",
- ["description"]="GURMUKHI LETTER NNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A23, -- ਣ
+ category="lo",
+ description="GURMUKHI LETTER NNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A23,
},
[0x0A24]={
- ["category"]="lo",
- ["description"]="GURMUKHI LETTER TA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A24, -- ਤ
+ category="lo",
+ description="GURMUKHI LETTER TA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A24,
},
[0x0A25]={
- ["category"]="lo",
- ["description"]="GURMUKHI LETTER THA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A25, -- ਥ
+ category="lo",
+ description="GURMUKHI LETTER THA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A25,
},
[0x0A26]={
- ["category"]="lo",
- ["description"]="GURMUKHI LETTER DA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A26, -- ਦ
+ category="lo",
+ description="GURMUKHI LETTER DA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A26,
},
[0x0A27]={
- ["category"]="lo",
- ["description"]="GURMUKHI LETTER DHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A27, -- ਧ
+ category="lo",
+ description="GURMUKHI LETTER DHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A27,
},
[0x0A28]={
- ["category"]="lo",
- ["description"]="GURMUKHI LETTER NA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A28, -- ਨ
+ category="lo",
+ description="GURMUKHI LETTER NA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A28,
},
[0x0A2A]={
- ["category"]="lo",
- ["description"]="GURMUKHI LETTER PA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A2A, -- ਪ
+ category="lo",
+ description="GURMUKHI LETTER PA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A2A,
},
[0x0A2B]={
- ["category"]="lo",
- ["description"]="GURMUKHI LETTER PHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A2B, -- ਫ
+ category="lo",
+ description="GURMUKHI LETTER PHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A2B,
},
[0x0A2C]={
- ["category"]="lo",
- ["description"]="GURMUKHI LETTER BA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A2C, -- ਬ
+ category="lo",
+ description="GURMUKHI LETTER BA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A2C,
},
[0x0A2D]={
- ["category"]="lo",
- ["description"]="GURMUKHI LETTER BHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A2D, -- ਭ
+ category="lo",
+ description="GURMUKHI LETTER BHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A2D,
},
[0x0A2E]={
- ["category"]="lo",
- ["description"]="GURMUKHI LETTER MA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A2E, -- ਮ
+ category="lo",
+ description="GURMUKHI LETTER MA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A2E,
},
[0x0A2F]={
- ["category"]="lo",
- ["description"]="GURMUKHI LETTER YA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A2F, -- ਯ
+ category="lo",
+ description="GURMUKHI LETTER YA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A2F,
},
[0x0A30]={
- ["category"]="lo",
- ["description"]="GURMUKHI LETTER RA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A30, -- ਰ
+ category="lo",
+ description="GURMUKHI LETTER RA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A30,
},
[0x0A32]={
- ["category"]="lo",
- ["description"]="GURMUKHI LETTER LA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A32, -- ਲ
+ category="lo",
+ description="GURMUKHI LETTER LA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A32,
},
[0x0A33]={
- ["category"]="lo",
- ["description"]="GURMUKHI LETTER LLA",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x0A32, 0x0A3C },
- ["unicodeslot"]=0x0A33, -- ਲ਼
+ category="lo",
+ description="GURMUKHI LETTER LLA",
+ direction="l",
+ linebreak="al",
+ specials={ "char", 0x0A32, 0x0A3C },
+ unicodeslot=0x0A33,
},
[0x0A35]={
- ["category"]="lo",
- ["description"]="GURMUKHI LETTER VA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A35, -- ਵ
+ category="lo",
+ description="GURMUKHI LETTER VA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A35,
},
[0x0A36]={
- ["category"]="lo",
- ["description"]="GURMUKHI LETTER SHA",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x0A38, 0x0A3C },
- ["unicodeslot"]=0x0A36, -- ਸ਼
+ category="lo",
+ description="GURMUKHI LETTER SHA",
+ direction="l",
+ linebreak="al",
+ specials={ "char", 0x0A38, 0x0A3C },
+ unicodeslot=0x0A36,
},
[0x0A38]={
- ["category"]="lo",
- ["description"]="GURMUKHI LETTER SA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A38, -- ਸ
+ category="lo",
+ description="GURMUKHI LETTER SA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A38,
},
[0x0A39]={
- ["category"]="lo",
- ["description"]="GURMUKHI LETTER HA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A39, -- ਹ
+ category="lo",
+ description="GURMUKHI LETTER HA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A39,
},
[0x0A3C]={
- ["category"]="mn",
- ["description"]="GURMUKHI SIGN NUKTA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0A3C, -- ਼
+ category="mn",
+ description="GURMUKHI SIGN NUKTA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0A3C,
},
[0x0A3E]={
- ["category"]="mc",
- ["description"]="GURMUKHI VOWEL SIGN AA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0A3E, -- ਾ
+ category="mc",
+ description="GURMUKHI VOWEL SIGN AA",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0A3E,
},
[0x0A3F]={
- ["category"]="mc",
- ["description"]="GURMUKHI VOWEL SIGN I",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0A3F, -- ਿ
+ category="mc",
+ description="GURMUKHI VOWEL SIGN I",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0A3F,
},
[0x0A40]={
- ["category"]="mc",
- ["description"]="GURMUKHI VOWEL SIGN II",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0A40, -- ੀ
+ category="mc",
+ description="GURMUKHI VOWEL SIGN II",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0A40,
},
[0x0A41]={
- ["category"]="mn",
- ["description"]="GURMUKHI VOWEL SIGN U",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0A41, -- ੁ
+ category="mn",
+ description="GURMUKHI VOWEL SIGN U",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0A41,
},
[0x0A42]={
- ["category"]="mn",
- ["description"]="GURMUKHI VOWEL SIGN UU",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0A42, -- ੂ
+ category="mn",
+ description="GURMUKHI VOWEL SIGN UU",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0A42,
},
[0x0A47]={
- ["category"]="mn",
- ["description"]="GURMUKHI VOWEL SIGN EE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0A47, -- ੇ
+ category="mn",
+ description="GURMUKHI VOWEL SIGN EE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0A47,
},
[0x0A48]={
- ["category"]="mn",
- ["description"]="GURMUKHI VOWEL SIGN AI",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0A48, -- ੈ
+ category="mn",
+ description="GURMUKHI VOWEL SIGN AI",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0A48,
},
[0x0A4B]={
- ["category"]="mn",
- ["description"]="GURMUKHI VOWEL SIGN OO",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0A4B, -- ੋ
+ category="mn",
+ description="GURMUKHI VOWEL SIGN OO",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0A4B,
},
[0x0A4C]={
- ["category"]="mn",
- ["description"]="GURMUKHI VOWEL SIGN AU",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0A4C, -- ੌ
+ category="mn",
+ description="GURMUKHI VOWEL SIGN AU",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0A4C,
},
[0x0A4D]={
- ["category"]="mn",
- ["description"]="GURMUKHI SIGN VIRAMA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0A4D, -- ੍
+ category="mn",
+ description="GURMUKHI SIGN VIRAMA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0A4D,
},
[0x0A59]={
- ["category"]="lo",
- ["description"]="GURMUKHI LETTER KHHA",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x0A16, 0x0A3C },
- ["unicodeslot"]=0x0A59, -- ਖ਼
+ category="lo",
+ description="GURMUKHI LETTER KHHA",
+ direction="l",
+ linebreak="al",
+ specials={ "char", 0x0A16, 0x0A3C },
+ unicodeslot=0x0A59,
},
[0x0A5A]={
- ["category"]="lo",
- ["description"]="GURMUKHI LETTER GHHA",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x0A17, 0x0A3C },
- ["unicodeslot"]=0x0A5A, -- ਗ਼
+ category="lo",
+ description="GURMUKHI LETTER GHHA",
+ direction="l",
+ linebreak="al",
+ specials={ "char", 0x0A17, 0x0A3C },
+ unicodeslot=0x0A5A,
},
[0x0A5B]={
- ["category"]="lo",
- ["description"]="GURMUKHI LETTER ZA",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x0A1C, 0x0A3C },
- ["unicodeslot"]=0x0A5B, -- ਜ਼
+ category="lo",
+ description="GURMUKHI LETTER ZA",
+ direction="l",
+ linebreak="al",
+ specials={ "char", 0x0A1C, 0x0A3C },
+ unicodeslot=0x0A5B,
},
[0x0A5C]={
- ["category"]="lo",
- ["description"]="GURMUKHI LETTER RRA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A5C, -- ੜ
+ category="lo",
+ description="GURMUKHI LETTER RRA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A5C,
},
[0x0A5E]={
- ["category"]="lo",
- ["description"]="GURMUKHI LETTER FA",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x0A2B, 0x0A3C },
- ["unicodeslot"]=0x0A5E, -- ਫ਼
+ category="lo",
+ description="GURMUKHI LETTER FA",
+ direction="l",
+ linebreak="al",
+ specials={ "char", 0x0A2B, 0x0A3C },
+ unicodeslot=0x0A5E,
},
[0x0A66]={
- ["category"]="nd",
- ["description"]="GURMUKHI DIGIT ZERO",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0A66, -- ੦
+ category="nd",
+ description="GURMUKHI DIGIT ZERO",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0A66,
},
[0x0A67]={
- ["category"]="nd",
- ["description"]="GURMUKHI DIGIT ONE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0A67, -- ੧
+ category="nd",
+ description="GURMUKHI DIGIT ONE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0A67,
},
[0x0A68]={
- ["category"]="nd",
- ["description"]="GURMUKHI DIGIT TWO",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0A68, -- ੨
+ category="nd",
+ description="GURMUKHI DIGIT TWO",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0A68,
},
[0x0A69]={
- ["category"]="nd",
- ["description"]="GURMUKHI DIGIT THREE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0A69, -- ੩
+ category="nd",
+ description="GURMUKHI DIGIT THREE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0A69,
},
[0x0A6A]={
- ["category"]="nd",
- ["description"]="GURMUKHI DIGIT FOUR",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0A6A, -- ੪
+ category="nd",
+ description="GURMUKHI DIGIT FOUR",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0A6A,
},
[0x0A6B]={
- ["category"]="nd",
- ["description"]="GURMUKHI DIGIT FIVE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0A6B, -- ੫
+ category="nd",
+ description="GURMUKHI DIGIT FIVE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0A6B,
},
[0x0A6C]={
- ["category"]="nd",
- ["description"]="GURMUKHI DIGIT SIX",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0A6C, -- ੬
+ category="nd",
+ description="GURMUKHI DIGIT SIX",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0A6C,
},
[0x0A6D]={
- ["category"]="nd",
- ["description"]="GURMUKHI DIGIT SEVEN",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0A6D, -- ੭
+ category="nd",
+ description="GURMUKHI DIGIT SEVEN",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0A6D,
},
[0x0A6E]={
- ["category"]="nd",
- ["description"]="GURMUKHI DIGIT EIGHT",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0A6E, -- ੮
+ category="nd",
+ description="GURMUKHI DIGIT EIGHT",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0A6E,
},
[0x0A6F]={
- ["category"]="nd",
- ["description"]="GURMUKHI DIGIT NINE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0A6F, -- ੯
+ category="nd",
+ description="GURMUKHI DIGIT NINE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0A6F,
},
[0x0A70]={
- ["category"]="mn",
- ["description"]="GURMUKHI TIPPI",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0A70, -- ੰ
+ category="mn",
+ description="GURMUKHI TIPPI",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0A70,
},
[0x0A71]={
- ["category"]="mn",
- ["description"]="GURMUKHI ADDAK",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0A71, -- ੱ
+ category="mn",
+ description="GURMUKHI ADDAK",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0A71,
},
[0x0A72]={
- ["category"]="lo",
- ["description"]="GURMUKHI IRI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A72, -- ੲ
+ category="lo",
+ description="GURMUKHI IRI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A72,
},
[0x0A73]={
- ["category"]="lo",
- ["description"]="GURMUKHI URA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A73, -- ੳ
+ category="lo",
+ description="GURMUKHI URA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A73,
},
[0x0A74]={
- ["category"]="lo",
- ["description"]="GURMUKHI EK ONKAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A74, -- ੴ
+ category="lo",
+ description="GURMUKHI EK ONKAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A74,
},
[0x0A81]={
- ["category"]="mn",
- ["description"]="GUJARATI SIGN CANDRABINDU",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0A81, -- ઁ
+ category="mn",
+ description="GUJARATI SIGN CANDRABINDU",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0A81,
},
[0x0A82]={
- ["category"]="mn",
- ["description"]="GUJARATI SIGN ANUSVARA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0A82, -- ં
+ category="mn",
+ description="GUJARATI SIGN ANUSVARA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0A82,
},
[0x0A83]={
- ["category"]="mc",
- ["description"]="GUJARATI SIGN VISARGA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0A83, -- ઃ
+ category="mc",
+ description="GUJARATI SIGN VISARGA",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0A83,
},
[0x0A85]={
- ["category"]="lo",
- ["description"]="GUJARATI LETTER A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A85, -- અ
+ category="lo",
+ description="GUJARATI LETTER A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A85,
},
[0x0A86]={
- ["category"]="lo",
- ["description"]="GUJARATI LETTER AA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A86, -- આ
+ category="lo",
+ description="GUJARATI LETTER AA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A86,
},
[0x0A87]={
- ["category"]="lo",
- ["description"]="GUJARATI LETTER I",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A87, -- ઇ
+ category="lo",
+ description="GUJARATI LETTER I",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A87,
},
[0x0A88]={
- ["category"]="lo",
- ["description"]="GUJARATI LETTER II",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A88, -- ઈ
+ category="lo",
+ description="GUJARATI LETTER II",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A88,
},
[0x0A89]={
- ["category"]="lo",
- ["description"]="GUJARATI LETTER U",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A89, -- ઉ
+ category="lo",
+ description="GUJARATI LETTER U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A89,
},
[0x0A8A]={
- ["category"]="lo",
- ["description"]="GUJARATI LETTER UU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A8A, -- ઊ
+ category="lo",
+ description="GUJARATI LETTER UU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A8A,
},
[0x0A8B]={
- ["category"]="lo",
- ["description"]="GUJARATI LETTER VOCALIC R",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A8B, -- ઋ
+ category="lo",
+ description="GUJARATI LETTER VOCALIC R",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A8B,
},
[0x0A8C]={
- ["category"]="lo",
- ["description"]="GUJARATI LETTER VOCALIC L",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A8C, -- ઌ
+ category="lo",
+ description="GUJARATI LETTER VOCALIC L",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A8C,
},
[0x0A8D]={
- ["category"]="lo",
- ["description"]="GUJARATI VOWEL CANDRA E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A8D, -- ઍ
+ category="lo",
+ description="GUJARATI VOWEL CANDRA E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A8D,
},
[0x0A8F]={
- ["category"]="lo",
- ["description"]="GUJARATI LETTER E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A8F, -- એ
+ category="lo",
+ description="GUJARATI LETTER E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A8F,
},
[0x0A90]={
- ["category"]="lo",
- ["description"]="GUJARATI LETTER AI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A90, -- ઐ
+ category="lo",
+ description="GUJARATI LETTER AI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A90,
},
[0x0A91]={
- ["category"]="lo",
- ["description"]="GUJARATI VOWEL CANDRA O",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A91, -- ઑ
+ category="lo",
+ description="GUJARATI VOWEL CANDRA O",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A91,
},
[0x0A93]={
- ["category"]="lo",
- ["description"]="GUJARATI LETTER O",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A93, -- ઓ
+ category="lo",
+ description="GUJARATI LETTER O",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A93,
},
[0x0A94]={
- ["category"]="lo",
- ["description"]="GUJARATI LETTER AU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A94, -- ઔ
+ category="lo",
+ description="GUJARATI LETTER AU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A94,
},
[0x0A95]={
- ["category"]="lo",
- ["description"]="GUJARATI LETTER KA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A95, -- ક
+ category="lo",
+ description="GUJARATI LETTER KA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A95,
},
[0x0A96]={
- ["category"]="lo",
- ["description"]="GUJARATI LETTER KHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A96, -- ખ
+ category="lo",
+ description="GUJARATI LETTER KHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A96,
},
[0x0A97]={
- ["category"]="lo",
- ["description"]="GUJARATI LETTER GA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A97, -- ગ
+ category="lo",
+ description="GUJARATI LETTER GA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A97,
},
[0x0A98]={
- ["category"]="lo",
- ["description"]="GUJARATI LETTER GHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A98, -- ઘ
+ category="lo",
+ description="GUJARATI LETTER GHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A98,
},
[0x0A99]={
- ["category"]="lo",
- ["description"]="GUJARATI LETTER NGA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A99, -- ઙ
+ category="lo",
+ description="GUJARATI LETTER NGA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A99,
},
[0x0A9A]={
- ["category"]="lo",
- ["description"]="GUJARATI LETTER CA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A9A, -- ચ
+ category="lo",
+ description="GUJARATI LETTER CA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A9A,
},
[0x0A9B]={
- ["category"]="lo",
- ["description"]="GUJARATI LETTER CHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A9B, -- છ
+ category="lo",
+ description="GUJARATI LETTER CHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A9B,
},
[0x0A9C]={
- ["category"]="lo",
- ["description"]="GUJARATI LETTER JA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A9C, -- જ
+ category="lo",
+ description="GUJARATI LETTER JA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A9C,
},
[0x0A9D]={
- ["category"]="lo",
- ["description"]="GUJARATI LETTER JHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A9D, -- ઝ
+ category="lo",
+ description="GUJARATI LETTER JHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A9D,
},
[0x0A9E]={
- ["category"]="lo",
- ["description"]="GUJARATI LETTER NYA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A9E, -- ઞ
+ category="lo",
+ description="GUJARATI LETTER NYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A9E,
},
[0x0A9F]={
- ["category"]="lo",
- ["description"]="GUJARATI LETTER TTA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0A9F, -- ટ
+ category="lo",
+ description="GUJARATI LETTER TTA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0A9F,
},
[0x0AA0]={
- ["category"]="lo",
- ["description"]="GUJARATI LETTER TTHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0AA0, -- ઠ
+ category="lo",
+ description="GUJARATI LETTER TTHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0AA0,
},
[0x0AA1]={
- ["category"]="lo",
- ["description"]="GUJARATI LETTER DDA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0AA1, -- ડ
+ category="lo",
+ description="GUJARATI LETTER DDA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0AA1,
},
[0x0AA2]={
- ["category"]="lo",
- ["description"]="GUJARATI LETTER DDHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0AA2, -- ઢ
+ category="lo",
+ description="GUJARATI LETTER DDHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0AA2,
},
[0x0AA3]={
- ["category"]="lo",
- ["description"]="GUJARATI LETTER NNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0AA3, -- ણ
+ category="lo",
+ description="GUJARATI LETTER NNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0AA3,
},
[0x0AA4]={
- ["category"]="lo",
- ["description"]="GUJARATI LETTER TA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0AA4, -- ત
+ category="lo",
+ description="GUJARATI LETTER TA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0AA4,
},
[0x0AA5]={
- ["category"]="lo",
- ["description"]="GUJARATI LETTER THA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0AA5, -- થ
+ category="lo",
+ description="GUJARATI LETTER THA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0AA5,
},
[0x0AA6]={
- ["category"]="lo",
- ["description"]="GUJARATI LETTER DA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0AA6, -- દ
+ category="lo",
+ description="GUJARATI LETTER DA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0AA6,
},
[0x0AA7]={
- ["category"]="lo",
- ["description"]="GUJARATI LETTER DHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0AA7, -- ધ
+ category="lo",
+ description="GUJARATI LETTER DHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0AA7,
},
[0x0AA8]={
- ["category"]="lo",
- ["description"]="GUJARATI LETTER NA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0AA8, -- ન
+ category="lo",
+ description="GUJARATI LETTER NA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0AA8,
},
[0x0AAA]={
- ["category"]="lo",
- ["description"]="GUJARATI LETTER PA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0AAA, -- પ
+ category="lo",
+ description="GUJARATI LETTER PA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0AAA,
},
[0x0AAB]={
- ["category"]="lo",
- ["description"]="GUJARATI LETTER PHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0AAB, -- ફ
+ category="lo",
+ description="GUJARATI LETTER PHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0AAB,
},
[0x0AAC]={
- ["category"]="lo",
- ["description"]="GUJARATI LETTER BA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0AAC, -- બ
+ category="lo",
+ description="GUJARATI LETTER BA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0AAC,
},
[0x0AAD]={
- ["category"]="lo",
- ["description"]="GUJARATI LETTER BHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0AAD, -- ભ
+ category="lo",
+ description="GUJARATI LETTER BHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0AAD,
},
[0x0AAE]={
- ["category"]="lo",
- ["description"]="GUJARATI LETTER MA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0AAE, -- મ
+ category="lo",
+ description="GUJARATI LETTER MA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0AAE,
},
[0x0AAF]={
- ["category"]="lo",
- ["description"]="GUJARATI LETTER YA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0AAF, -- ય
+ category="lo",
+ description="GUJARATI LETTER YA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0AAF,
},
[0x0AB0]={
- ["category"]="lo",
- ["description"]="GUJARATI LETTER RA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0AB0, -- ર
+ category="lo",
+ description="GUJARATI LETTER RA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0AB0,
},
[0x0AB2]={
- ["category"]="lo",
- ["description"]="GUJARATI LETTER LA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0AB2, -- લ
+ category="lo",
+ description="GUJARATI LETTER LA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0AB2,
},
[0x0AB3]={
- ["category"]="lo",
- ["description"]="GUJARATI LETTER LLA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0AB3, -- ળ
+ category="lo",
+ description="GUJARATI LETTER LLA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0AB3,
},
[0x0AB5]={
- ["category"]="lo",
- ["description"]="GUJARATI LETTER VA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0AB5, -- વ
+ category="lo",
+ description="GUJARATI LETTER VA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0AB5,
},
[0x0AB6]={
- ["category"]="lo",
- ["description"]="GUJARATI LETTER SHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0AB6, -- શ
+ category="lo",
+ description="GUJARATI LETTER SHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0AB6,
},
[0x0AB7]={
- ["category"]="lo",
- ["description"]="GUJARATI LETTER SSA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0AB7, -- ષ
+ category="lo",
+ description="GUJARATI LETTER SSA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0AB7,
},
[0x0AB8]={
- ["category"]="lo",
- ["description"]="GUJARATI LETTER SA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0AB8, -- સ
+ category="lo",
+ description="GUJARATI LETTER SA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0AB8,
},
[0x0AB9]={
- ["category"]="lo",
- ["description"]="GUJARATI LETTER HA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0AB9, -- હ
+ category="lo",
+ description="GUJARATI LETTER HA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0AB9,
},
[0x0ABC]={
- ["category"]="mn",
- ["description"]="GUJARATI SIGN NUKTA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0ABC, -- ઼
+ category="mn",
+ description="GUJARATI SIGN NUKTA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0ABC,
},
[0x0ABD]={
- ["category"]="lo",
- ["description"]="GUJARATI SIGN AVAGRAHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0ABD, -- ઽ
+ category="lo",
+ description="GUJARATI SIGN AVAGRAHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0ABD,
},
[0x0ABE]={
- ["category"]="mc",
- ["description"]="GUJARATI VOWEL SIGN AA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0ABE, -- ા
+ category="mc",
+ description="GUJARATI VOWEL SIGN AA",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0ABE,
},
[0x0ABF]={
- ["category"]="mc",
- ["description"]="GUJARATI VOWEL SIGN I",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0ABF, -- િ
+ category="mc",
+ description="GUJARATI VOWEL SIGN I",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0ABF,
},
[0x0AC0]={
- ["category"]="mc",
- ["description"]="GUJARATI VOWEL SIGN II",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0AC0, -- ી
+ category="mc",
+ description="GUJARATI VOWEL SIGN II",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0AC0,
},
[0x0AC1]={
- ["category"]="mn",
- ["description"]="GUJARATI VOWEL SIGN U",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0AC1, -- ુ
+ category="mn",
+ description="GUJARATI VOWEL SIGN U",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0AC1,
},
[0x0AC2]={
- ["category"]="mn",
- ["description"]="GUJARATI VOWEL SIGN UU",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0AC2, -- ૂ
+ category="mn",
+ description="GUJARATI VOWEL SIGN UU",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0AC2,
},
[0x0AC3]={
- ["category"]="mn",
- ["description"]="GUJARATI VOWEL SIGN VOCALIC R",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0AC3, -- ૃ
+ category="mn",
+ description="GUJARATI VOWEL SIGN VOCALIC R",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0AC3,
},
[0x0AC4]={
- ["category"]="mn",
- ["description"]="GUJARATI VOWEL SIGN VOCALIC RR",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0AC4, -- ૄ
+ category="mn",
+ description="GUJARATI VOWEL SIGN VOCALIC RR",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0AC4,
},
[0x0AC5]={
- ["category"]="mn",
- ["description"]="GUJARATI VOWEL SIGN CANDRA E",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0AC5, -- ૅ
+ category="mn",
+ description="GUJARATI VOWEL SIGN CANDRA E",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0AC5,
},
[0x0AC7]={
- ["category"]="mn",
- ["description"]="GUJARATI VOWEL SIGN E",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0AC7, -- ે
+ category="mn",
+ description="GUJARATI VOWEL SIGN E",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0AC7,
},
[0x0AC8]={
- ["category"]="mn",
- ["description"]="GUJARATI VOWEL SIGN AI",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0AC8, -- ૈ
+ category="mn",
+ description="GUJARATI VOWEL SIGN AI",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0AC8,
},
[0x0AC9]={
- ["category"]="mc",
- ["description"]="GUJARATI VOWEL SIGN CANDRA O",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0AC9, -- ૉ
+ category="mc",
+ description="GUJARATI VOWEL SIGN CANDRA O",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0AC9,
},
[0x0ACB]={
- ["category"]="mc",
- ["description"]="GUJARATI VOWEL SIGN O",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0ACB, -- ો
+ category="mc",
+ description="GUJARATI VOWEL SIGN O",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0ACB,
},
[0x0ACC]={
- ["category"]="mc",
- ["description"]="GUJARATI VOWEL SIGN AU",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0ACC, -- ૌ
+ category="mc",
+ description="GUJARATI VOWEL SIGN AU",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0ACC,
},
[0x0ACD]={
- ["category"]="mn",
- ["description"]="GUJARATI SIGN VIRAMA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0ACD, -- ્
+ category="mn",
+ description="GUJARATI SIGN VIRAMA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0ACD,
},
[0x0AD0]={
- ["category"]="lo",
- ["description"]="GUJARATI OM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0AD0, -- ૐ
+ category="lo",
+ description="GUJARATI OM",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0AD0,
},
[0x0AE0]={
- ["category"]="lo",
- ["description"]="GUJARATI LETTER VOCALIC RR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0AE0, -- ૠ
+ category="lo",
+ description="GUJARATI LETTER VOCALIC RR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0AE0,
},
[0x0AE1]={
- ["category"]="lo",
- ["description"]="GUJARATI LETTER VOCALIC LL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0AE1, -- ૡ
+ category="lo",
+ description="GUJARATI LETTER VOCALIC LL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0AE1,
},
[0x0AE2]={
- ["category"]="mn",
- ["description"]="GUJARATI VOWEL SIGN VOCALIC L",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0AE2, -- ૢ
+ category="mn",
+ description="GUJARATI VOWEL SIGN VOCALIC L",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0AE2,
},
[0x0AE3]={
- ["category"]="mn",
- ["description"]="GUJARATI VOWEL SIGN VOCALIC LL",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0AE3, -- ૣ
+ category="mn",
+ description="GUJARATI VOWEL SIGN VOCALIC LL",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0AE3,
},
[0x0AE6]={
- ["category"]="nd",
- ["description"]="GUJARATI DIGIT ZERO",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0AE6, -- ૦
+ category="nd",
+ description="GUJARATI DIGIT ZERO",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0AE6,
},
[0x0AE7]={
- ["category"]="nd",
- ["description"]="GUJARATI DIGIT ONE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0AE7, -- ૧
+ category="nd",
+ description="GUJARATI DIGIT ONE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0AE7,
},
[0x0AE8]={
- ["category"]="nd",
- ["description"]="GUJARATI DIGIT TWO",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0AE8, -- ૨
+ category="nd",
+ description="GUJARATI DIGIT TWO",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0AE8,
},
[0x0AE9]={
- ["category"]="nd",
- ["description"]="GUJARATI DIGIT THREE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0AE9, -- ૩
+ category="nd",
+ description="GUJARATI DIGIT THREE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0AE9,
},
[0x0AEA]={
- ["category"]="nd",
- ["description"]="GUJARATI DIGIT FOUR",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0AEA, -- ૪
+ category="nd",
+ description="GUJARATI DIGIT FOUR",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0AEA,
},
[0x0AEB]={
- ["category"]="nd",
- ["description"]="GUJARATI DIGIT FIVE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0AEB, -- ૫
+ category="nd",
+ description="GUJARATI DIGIT FIVE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0AEB,
},
[0x0AEC]={
- ["category"]="nd",
- ["description"]="GUJARATI DIGIT SIX",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0AEC, -- ૬
+ category="nd",
+ description="GUJARATI DIGIT SIX",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0AEC,
},
[0x0AED]={
- ["category"]="nd",
- ["description"]="GUJARATI DIGIT SEVEN",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0AED, -- ૭
+ category="nd",
+ description="GUJARATI DIGIT SEVEN",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0AED,
},
[0x0AEE]={
- ["category"]="nd",
- ["description"]="GUJARATI DIGIT EIGHT",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0AEE, -- ૮
+ category="nd",
+ description="GUJARATI DIGIT EIGHT",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0AEE,
},
[0x0AEF]={
- ["category"]="nd",
- ["description"]="GUJARATI DIGIT NINE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0AEF, -- ૯
+ category="nd",
+ description="GUJARATI DIGIT NINE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0AEF,
},
[0x0AF1]={
- ["category"]="sc",
- ["description"]="GUJARATI RUPEE SIGN",
- ["linebreak"]="pr",
- ["unicodeslot"]=0x0AF1, -- ૱
+ category="sc",
+ description="GUJARATI RUPEE SIGN",
+ direction="et",
+ linebreak="pr",
+ unicodeslot=0x0AF1,
},
[0x0B01]={
- ["category"]="mn",
- ["description"]="ORIYA SIGN CANDRABINDU",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0B01, -- ଁ
+ category="mn",
+ description="ORIYA SIGN CANDRABINDU",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0B01,
},
[0x0B02]={
- ["category"]="mc",
- ["description"]="ORIYA SIGN ANUSVARA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0B02, -- ଂ
+ category="mc",
+ description="ORIYA SIGN ANUSVARA",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0B02,
},
[0x0B03]={
- ["category"]="mc",
- ["description"]="ORIYA SIGN VISARGA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0B03, -- ଃ
+ category="mc",
+ description="ORIYA SIGN VISARGA",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0B03,
},
[0x0B05]={
- ["category"]="lo",
- ["description"]="ORIYA LETTER A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B05, -- ଅ
+ category="lo",
+ description="ORIYA LETTER A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B05,
},
[0x0B06]={
- ["category"]="lo",
- ["description"]="ORIYA LETTER AA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B06, -- ଆ
+ category="lo",
+ description="ORIYA LETTER AA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B06,
},
[0x0B07]={
- ["category"]="lo",
- ["description"]="ORIYA LETTER I",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B07, -- ଇ
+ category="lo",
+ description="ORIYA LETTER I",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B07,
},
[0x0B08]={
- ["category"]="lo",
- ["description"]="ORIYA LETTER II",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B08, -- ଈ
+ category="lo",
+ description="ORIYA LETTER II",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B08,
},
[0x0B09]={
- ["category"]="lo",
- ["description"]="ORIYA LETTER U",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B09, -- ଉ
+ category="lo",
+ description="ORIYA LETTER U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B09,
},
[0x0B0A]={
- ["category"]="lo",
- ["description"]="ORIYA LETTER UU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B0A, -- ଊ
+ category="lo",
+ description="ORIYA LETTER UU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B0A,
},
[0x0B0B]={
- ["category"]="lo",
- ["description"]="ORIYA LETTER VOCALIC R",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B0B, -- ଋ
+ category="lo",
+ description="ORIYA LETTER VOCALIC R",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B0B,
},
[0x0B0C]={
- ["category"]="lo",
- ["description"]="ORIYA LETTER VOCALIC L",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B0C, -- ଌ
+ category="lo",
+ description="ORIYA LETTER VOCALIC L",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B0C,
},
[0x0B0F]={
- ["category"]="lo",
- ["description"]="ORIYA LETTER E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B0F, -- ଏ
+ category="lo",
+ description="ORIYA LETTER E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B0F,
},
[0x0B10]={
- ["category"]="lo",
- ["description"]="ORIYA LETTER AI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B10, -- ଐ
+ category="lo",
+ description="ORIYA LETTER AI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B10,
},
[0x0B13]={
- ["category"]="lo",
- ["description"]="ORIYA LETTER O",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B13, -- ଓ
+ category="lo",
+ description="ORIYA LETTER O",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B13,
},
[0x0B14]={
- ["category"]="lo",
- ["description"]="ORIYA LETTER AU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B14, -- ଔ
+ category="lo",
+ description="ORIYA LETTER AU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B14,
},
[0x0B15]={
- ["category"]="lo",
- ["description"]="ORIYA LETTER KA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B15, -- କ
+ category="lo",
+ description="ORIYA LETTER KA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B15,
},
[0x0B16]={
- ["category"]="lo",
- ["description"]="ORIYA LETTER KHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B16, -- ଖ
+ category="lo",
+ description="ORIYA LETTER KHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B16,
},
[0x0B17]={
- ["category"]="lo",
- ["description"]="ORIYA LETTER GA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B17, -- ଗ
+ category="lo",
+ description="ORIYA LETTER GA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B17,
},
[0x0B18]={
- ["category"]="lo",
- ["description"]="ORIYA LETTER GHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B18, -- ଘ
+ category="lo",
+ description="ORIYA LETTER GHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B18,
},
[0x0B19]={
- ["category"]="lo",
- ["description"]="ORIYA LETTER NGA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B19, -- ଙ
+ category="lo",
+ description="ORIYA LETTER NGA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B19,
},
[0x0B1A]={
- ["category"]="lo",
- ["description"]="ORIYA LETTER CA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B1A, -- ଚ
+ category="lo",
+ description="ORIYA LETTER CA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B1A,
},
[0x0B1B]={
- ["category"]="lo",
- ["description"]="ORIYA LETTER CHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B1B, -- ଛ
+ category="lo",
+ description="ORIYA LETTER CHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B1B,
},
[0x0B1C]={
- ["category"]="lo",
- ["description"]="ORIYA LETTER JA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B1C, -- ଜ
+ category="lo",
+ description="ORIYA LETTER JA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B1C,
},
[0x0B1D]={
- ["category"]="lo",
- ["description"]="ORIYA LETTER JHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B1D, -- ଝ
+ category="lo",
+ description="ORIYA LETTER JHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B1D,
},
[0x0B1E]={
- ["category"]="lo",
- ["description"]="ORIYA LETTER NYA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B1E, -- ଞ
+ category="lo",
+ description="ORIYA LETTER NYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B1E,
},
[0x0B1F]={
- ["category"]="lo",
- ["description"]="ORIYA LETTER TTA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B1F, -- ଟ
+ category="lo",
+ description="ORIYA LETTER TTA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B1F,
},
[0x0B20]={
- ["category"]="lo",
- ["description"]="ORIYA LETTER TTHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B20, -- ଠ
+ category="lo",
+ description="ORIYA LETTER TTHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B20,
},
[0x0B21]={
- ["category"]="lo",
- ["description"]="ORIYA LETTER DDA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B21, -- ଡ
+ category="lo",
+ description="ORIYA LETTER DDA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B21,
},
[0x0B22]={
- ["category"]="lo",
- ["description"]="ORIYA LETTER DDHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B22, -- ଢ
+ category="lo",
+ description="ORIYA LETTER DDHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B22,
},
[0x0B23]={
- ["category"]="lo",
- ["description"]="ORIYA LETTER NNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B23, -- ଣ
+ category="lo",
+ description="ORIYA LETTER NNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B23,
},
[0x0B24]={
- ["category"]="lo",
- ["description"]="ORIYA LETTER TA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B24, -- ତ
+ category="lo",
+ description="ORIYA LETTER TA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B24,
},
[0x0B25]={
- ["category"]="lo",
- ["description"]="ORIYA LETTER THA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B25, -- ଥ
+ category="lo",
+ description="ORIYA LETTER THA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B25,
},
[0x0B26]={
- ["category"]="lo",
- ["description"]="ORIYA LETTER DA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B26, -- ଦ
+ category="lo",
+ description="ORIYA LETTER DA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B26,
},
[0x0B27]={
- ["category"]="lo",
- ["description"]="ORIYA LETTER DHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B27, -- ଧ
+ category="lo",
+ description="ORIYA LETTER DHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B27,
},
[0x0B28]={
- ["category"]="lo",
- ["description"]="ORIYA LETTER NA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B28, -- ନ
+ category="lo",
+ description="ORIYA LETTER NA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B28,
},
[0x0B2A]={
- ["category"]="lo",
- ["description"]="ORIYA LETTER PA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B2A, -- ପ
+ category="lo",
+ description="ORIYA LETTER PA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B2A,
},
[0x0B2B]={
- ["category"]="lo",
- ["description"]="ORIYA LETTER PHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B2B, -- ଫ
+ category="lo",
+ description="ORIYA LETTER PHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B2B,
},
[0x0B2C]={
- ["category"]="lo",
- ["description"]="ORIYA LETTER BA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B2C, -- ବ
+ category="lo",
+ description="ORIYA LETTER BA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B2C,
},
[0x0B2D]={
- ["category"]="lo",
- ["description"]="ORIYA LETTER BHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B2D, -- ଭ
+ category="lo",
+ description="ORIYA LETTER BHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B2D,
},
[0x0B2E]={
- ["category"]="lo",
- ["description"]="ORIYA LETTER MA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B2E, -- ମ
+ category="lo",
+ description="ORIYA LETTER MA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B2E,
},
[0x0B2F]={
- ["category"]="lo",
- ["description"]="ORIYA LETTER YA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B2F, -- ଯ
+ category="lo",
+ description="ORIYA LETTER YA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B2F,
},
[0x0B30]={
- ["category"]="lo",
- ["description"]="ORIYA LETTER RA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B30, -- ର
+ category="lo",
+ description="ORIYA LETTER RA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B30,
},
[0x0B32]={
- ["category"]="lo",
- ["description"]="ORIYA LETTER LA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B32, -- ଲ
+ category="lo",
+ description="ORIYA LETTER LA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B32,
},
[0x0B33]={
- ["category"]="lo",
- ["description"]="ORIYA LETTER LLA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B33, -- ଳ
+ category="lo",
+ description="ORIYA LETTER LLA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B33,
},
[0x0B35]={
- ["category"]="lo",
- ["description"]="ORIYA LETTER VA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B35, -- ଵ
+ category="lo",
+ description="ORIYA LETTER VA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B35,
},
[0x0B36]={
- ["category"]="lo",
- ["description"]="ORIYA LETTER SHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B36, -- ଶ
+ category="lo",
+ description="ORIYA LETTER SHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B36,
},
[0x0B37]={
- ["category"]="lo",
- ["description"]="ORIYA LETTER SSA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B37, -- ଷ
+ category="lo",
+ description="ORIYA LETTER SSA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B37,
},
[0x0B38]={
- ["category"]="lo",
- ["description"]="ORIYA LETTER SA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B38, -- ସ
+ category="lo",
+ description="ORIYA LETTER SA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B38,
},
[0x0B39]={
- ["category"]="lo",
- ["description"]="ORIYA LETTER HA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B39, -- ହ
+ category="lo",
+ description="ORIYA LETTER HA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B39,
},
[0x0B3C]={
- ["category"]="mn",
- ["description"]="ORIYA SIGN NUKTA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0B3C, -- ଼
+ category="mn",
+ description="ORIYA SIGN NUKTA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0B3C,
},
[0x0B3D]={
- ["category"]="lo",
- ["description"]="ORIYA SIGN AVAGRAHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B3D, -- ଽ
+ category="lo",
+ description="ORIYA SIGN AVAGRAHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B3D,
},
[0x0B3E]={
- ["category"]="mc",
- ["description"]="ORIYA VOWEL SIGN AA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0B3E, -- ା
+ category="mc",
+ description="ORIYA VOWEL SIGN AA",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0B3E,
},
[0x0B3F]={
- ["category"]="mn",
- ["description"]="ORIYA VOWEL SIGN I",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0B3F, -- ି
+ category="mn",
+ description="ORIYA VOWEL SIGN I",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0B3F,
},
[0x0B40]={
- ["category"]="mc",
- ["description"]="ORIYA VOWEL SIGN II",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0B40, -- ୀ
+ category="mc",
+ description="ORIYA VOWEL SIGN II",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0B40,
},
[0x0B41]={
- ["category"]="mn",
- ["description"]="ORIYA VOWEL SIGN U",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0B41, -- ୁ
+ category="mn",
+ description="ORIYA VOWEL SIGN U",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0B41,
},
[0x0B42]={
- ["category"]="mn",
- ["description"]="ORIYA VOWEL SIGN UU",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0B42, -- ୂ
+ category="mn",
+ description="ORIYA VOWEL SIGN UU",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0B42,
},
[0x0B43]={
- ["category"]="mn",
- ["description"]="ORIYA VOWEL SIGN VOCALIC R",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0B43, -- ୃ
+ category="mn",
+ description="ORIYA VOWEL SIGN VOCALIC R",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0B43,
},
[0x0B47]={
- ["category"]="mc",
- ["description"]="ORIYA VOWEL SIGN E",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0B47, -- େ
+ category="mc",
+ description="ORIYA VOWEL SIGN E",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0B47,
},
[0x0B48]={
- ["category"]="mc",
- ["description"]="ORIYA VOWEL SIGN AI",
- ["linebreak"]="cm",
- ["specials"]={ "char", 0x0B47, 0x0B56 },
- ["unicodeslot"]=0x0B48, -- ୈ
+ category="mc",
+ description="ORIYA VOWEL SIGN AI",
+ direction="l",
+ linebreak="cm",
+ specials={ "char", 0x0B47, 0x0B56 },
+ unicodeslot=0x0B48,
},
[0x0B4B]={
- ["category"]="mc",
- ["description"]="ORIYA VOWEL SIGN O",
- ["linebreak"]="cm",
- ["specials"]={ "char", 0x0B47, 0x0B3E },
- ["unicodeslot"]=0x0B4B, -- ୋ
+ category="mc",
+ description="ORIYA VOWEL SIGN O",
+ direction="l",
+ linebreak="cm",
+ specials={ "char", 0x0B47, 0x0B3E },
+ unicodeslot=0x0B4B,
},
[0x0B4C]={
- ["category"]="mc",
- ["description"]="ORIYA VOWEL SIGN AU",
- ["linebreak"]="cm",
- ["specials"]={ "char", 0x0B47, 0x0B57 },
- ["unicodeslot"]=0x0B4C, -- ୌ
+ category="mc",
+ description="ORIYA VOWEL SIGN AU",
+ direction="l",
+ linebreak="cm",
+ specials={ "char", 0x0B47, 0x0B57 },
+ unicodeslot=0x0B4C,
},
[0x0B4D]={
- ["category"]="mn",
- ["description"]="ORIYA SIGN VIRAMA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0B4D, -- ୍
+ category="mn",
+ description="ORIYA SIGN VIRAMA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0B4D,
},
[0x0B56]={
- ["category"]="mn",
- ["description"]="ORIYA AI LENGTH MARK",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0B56, -- ୖ
+ category="mn",
+ description="ORIYA AI LENGTH MARK",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0B56,
},
[0x0B57]={
- ["category"]="mc",
- ["description"]="ORIYA AU LENGTH MARK",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0B57, -- ୗ
+ category="mc",
+ description="ORIYA AU LENGTH MARK",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0B57,
},
[0x0B5C]={
- ["category"]="lo",
- ["description"]="ORIYA LETTER RRA",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x0B21, 0x0B3C },
- ["unicodeslot"]=0x0B5C, -- ଡ଼
+ category="lo",
+ description="ORIYA LETTER RRA",
+ direction="l",
+ linebreak="al",
+ specials={ "char", 0x0B21, 0x0B3C },
+ unicodeslot=0x0B5C,
},
[0x0B5D]={
- ["category"]="lo",
- ["description"]="ORIYA LETTER RHA",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x0B22, 0x0B3C },
- ["unicodeslot"]=0x0B5D, -- ଢ଼
+ category="lo",
+ description="ORIYA LETTER RHA",
+ direction="l",
+ linebreak="al",
+ specials={ "char", 0x0B22, 0x0B3C },
+ unicodeslot=0x0B5D,
},
[0x0B5F]={
- ["category"]="lo",
- ["description"]="ORIYA LETTER YYA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B5F, -- ୟ
+ category="lo",
+ description="ORIYA LETTER YYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B5F,
},
[0x0B60]={
- ["category"]="lo",
- ["description"]="ORIYA LETTER VOCALIC RR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B60, -- ୠ
+ category="lo",
+ description="ORIYA LETTER VOCALIC RR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B60,
},
[0x0B61]={
- ["category"]="lo",
- ["description"]="ORIYA LETTER VOCALIC LL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B61, -- ୡ
+ category="lo",
+ description="ORIYA LETTER VOCALIC LL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B61,
},
[0x0B66]={
- ["category"]="nd",
- ["description"]="ORIYA DIGIT ZERO",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0B66, -- ୦
+ category="nd",
+ description="ORIYA DIGIT ZERO",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0B66,
},
[0x0B67]={
- ["category"]="nd",
- ["description"]="ORIYA DIGIT ONE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0B67, -- ୧
+ category="nd",
+ description="ORIYA DIGIT ONE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0B67,
},
[0x0B68]={
- ["category"]="nd",
- ["description"]="ORIYA DIGIT TWO",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0B68, -- ୨
+ category="nd",
+ description="ORIYA DIGIT TWO",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0B68,
},
[0x0B69]={
- ["category"]="nd",
- ["description"]="ORIYA DIGIT THREE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0B69, -- ୩
+ category="nd",
+ description="ORIYA DIGIT THREE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0B69,
},
[0x0B6A]={
- ["category"]="nd",
- ["description"]="ORIYA DIGIT FOUR",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0B6A, -- ୪
+ category="nd",
+ description="ORIYA DIGIT FOUR",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0B6A,
},
[0x0B6B]={
- ["category"]="nd",
- ["description"]="ORIYA DIGIT FIVE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0B6B, -- ୫
+ category="nd",
+ description="ORIYA DIGIT FIVE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0B6B,
},
[0x0B6C]={
- ["category"]="nd",
- ["description"]="ORIYA DIGIT SIX",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0B6C, -- ୬
+ category="nd",
+ description="ORIYA DIGIT SIX",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0B6C,
},
[0x0B6D]={
- ["category"]="nd",
- ["description"]="ORIYA DIGIT SEVEN",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0B6D, -- ୭
+ category="nd",
+ description="ORIYA DIGIT SEVEN",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0B6D,
},
[0x0B6E]={
- ["category"]="nd",
- ["description"]="ORIYA DIGIT EIGHT",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0B6E, -- ୮
+ category="nd",
+ description="ORIYA DIGIT EIGHT",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0B6E,
},
[0x0B6F]={
- ["category"]="nd",
- ["description"]="ORIYA DIGIT NINE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0B6F, -- ୯
+ category="nd",
+ description="ORIYA DIGIT NINE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0B6F,
},
[0x0B70]={
- ["category"]="so",
- ["description"]="ORIYA ISSHAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B70, -- ୰
+ category="so",
+ description="ORIYA ISSHAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B70,
},
[0x0B71]={
- ["category"]="lo",
- ["description"]="ORIYA LETTER WA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B71, -- ୱ
+ category="lo",
+ description="ORIYA LETTER WA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B71,
},
[0x0B82]={
- ["category"]="mn",
- ["description"]="TAMIL SIGN ANUSVARA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0B82, -- ஂ
+ category="mn",
+ description="TAMIL SIGN ANUSVARA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0B82,
},
[0x0B83]={
- ["category"]="lo",
- ["description"]="TAMIL SIGN VISARGA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B83, -- ஃ
+ category="lo",
+ description="TAMIL SIGN VISARGA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B83,
},
[0x0B85]={
- ["category"]="lo",
- ["description"]="TAMIL LETTER A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B85, -- அ
+ category="lo",
+ description="TAMIL LETTER A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B85,
},
[0x0B86]={
- ["category"]="lo",
- ["description"]="TAMIL LETTER AA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B86, -- ஆ
+ category="lo",
+ description="TAMIL LETTER AA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B86,
},
[0x0B87]={
- ["category"]="lo",
- ["description"]="TAMIL LETTER I",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B87, -- இ
+ category="lo",
+ description="TAMIL LETTER I",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B87,
},
[0x0B88]={
- ["category"]="lo",
- ["description"]="TAMIL LETTER II",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B88, -- ஈ
+ category="lo",
+ description="TAMIL LETTER II",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B88,
},
[0x0B89]={
- ["category"]="lo",
- ["description"]="TAMIL LETTER U",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B89, -- உ
+ category="lo",
+ description="TAMIL LETTER U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B89,
},
[0x0B8A]={
- ["category"]="lo",
- ["description"]="TAMIL LETTER UU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B8A, -- ஊ
+ category="lo",
+ description="TAMIL LETTER UU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B8A,
},
[0x0B8E]={
- ["category"]="lo",
- ["description"]="TAMIL LETTER E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B8E, -- எ
+ category="lo",
+ description="TAMIL LETTER E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B8E,
},
[0x0B8F]={
- ["category"]="lo",
- ["description"]="TAMIL LETTER EE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B8F, -- ஏ
+ category="lo",
+ description="TAMIL LETTER EE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B8F,
},
[0x0B90]={
- ["category"]="lo",
- ["description"]="TAMIL LETTER AI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B90, -- ஐ
+ category="lo",
+ description="TAMIL LETTER AI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B90,
},
[0x0B92]={
- ["category"]="lo",
- ["description"]="TAMIL LETTER O",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B92, -- ஒ
+ category="lo",
+ description="TAMIL LETTER O",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B92,
},
[0x0B93]={
- ["category"]="lo",
- ["description"]="TAMIL LETTER OO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B93, -- ஓ
+ category="lo",
+ description="TAMIL LETTER OO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B93,
},
[0x0B94]={
- ["category"]="lo",
- ["description"]="TAMIL LETTER AU",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x0B92, 0x0BD7 },
- ["unicodeslot"]=0x0B94, -- ஔ
+ category="lo",
+ description="TAMIL LETTER AU",
+ direction="l",
+ linebreak="al",
+ specials={ "char", 0x0B92, 0x0BD7 },
+ unicodeslot=0x0B94,
},
[0x0B95]={
- ["category"]="lo",
- ["description"]="TAMIL LETTER KA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B95, -- க
+ category="lo",
+ description="TAMIL LETTER KA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B95,
},
[0x0B99]={
- ["category"]="lo",
- ["description"]="TAMIL LETTER NGA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B99, -- ங
+ category="lo",
+ description="TAMIL LETTER NGA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B99,
},
[0x0B9A]={
- ["category"]="lo",
- ["description"]="TAMIL LETTER CA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B9A, -- ச
+ category="lo",
+ description="TAMIL LETTER CA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B9A,
},
[0x0B9C]={
- ["category"]="lo",
- ["description"]="TAMIL LETTER JA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B9C, -- ஜ
+ category="lo",
+ description="TAMIL LETTER JA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B9C,
},
[0x0B9E]={
- ["category"]="lo",
- ["description"]="TAMIL LETTER NYA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B9E, -- ஞ
+ category="lo",
+ description="TAMIL LETTER NYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B9E,
},
[0x0B9F]={
- ["category"]="lo",
- ["description"]="TAMIL LETTER TTA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0B9F, -- ட
+ category="lo",
+ description="TAMIL LETTER TTA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0B9F,
},
[0x0BA3]={
- ["category"]="lo",
- ["description"]="TAMIL LETTER NNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0BA3, -- ண
+ category="lo",
+ description="TAMIL LETTER NNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0BA3,
},
[0x0BA4]={
- ["category"]="lo",
- ["description"]="TAMIL LETTER TA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0BA4, -- த
+ category="lo",
+ description="TAMIL LETTER TA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0BA4,
},
[0x0BA8]={
- ["category"]="lo",
- ["description"]="TAMIL LETTER NA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0BA8, -- ந
+ category="lo",
+ description="TAMIL LETTER NA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0BA8,
},
[0x0BA9]={
- ["category"]="lo",
- ["description"]="TAMIL LETTER NNNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0BA9, -- ன
+ category="lo",
+ description="TAMIL LETTER NNNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0BA9,
},
[0x0BAA]={
- ["category"]="lo",
- ["description"]="TAMIL LETTER PA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0BAA, -- ப
+ category="lo",
+ description="TAMIL LETTER PA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0BAA,
},
[0x0BAE]={
- ["category"]="lo",
- ["description"]="TAMIL LETTER MA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0BAE, -- ம
+ category="lo",
+ description="TAMIL LETTER MA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0BAE,
},
[0x0BAF]={
- ["category"]="lo",
- ["description"]="TAMIL LETTER YA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0BAF, -- ய
+ category="lo",
+ description="TAMIL LETTER YA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0BAF,
},
[0x0BB0]={
- ["category"]="lo",
- ["description"]="TAMIL LETTER RA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0BB0, -- ர
+ category="lo",
+ description="TAMIL LETTER RA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0BB0,
},
[0x0BB1]={
- ["category"]="lo",
- ["description"]="TAMIL LETTER RRA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0BB1, -- ற
+ category="lo",
+ description="TAMIL LETTER RRA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0BB1,
},
[0x0BB2]={
- ["category"]="lo",
- ["description"]="TAMIL LETTER LA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0BB2, -- ல
+ category="lo",
+ description="TAMIL LETTER LA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0BB2,
},
[0x0BB3]={
- ["category"]="lo",
- ["description"]="TAMIL LETTER LLA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0BB3, -- ள
+ category="lo",
+ description="TAMIL LETTER LLA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0BB3,
},
[0x0BB4]={
- ["category"]="lo",
- ["description"]="TAMIL LETTER LLLA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0BB4, -- ழ
+ category="lo",
+ description="TAMIL LETTER LLLA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0BB4,
},
[0x0BB5]={
- ["category"]="lo",
- ["description"]="TAMIL LETTER VA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0BB5, -- வ
+ category="lo",
+ description="TAMIL LETTER VA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0BB5,
},
[0x0BB6]={
- ["category"]="lo",
- ["description"]="TAMIL LETTER SHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0BB6, -- ஶ
+ category="lo",
+ description="TAMIL LETTER SHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0BB6,
},
[0x0BB7]={
- ["category"]="lo",
- ["description"]="TAMIL LETTER SSA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0BB7, -- ஷ
+ category="lo",
+ description="TAMIL LETTER SSA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0BB7,
},
[0x0BB8]={
- ["category"]="lo",
- ["description"]="TAMIL LETTER SA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0BB8, -- ஸ
+ category="lo",
+ description="TAMIL LETTER SA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0BB8,
},
[0x0BB9]={
- ["category"]="lo",
- ["description"]="TAMIL LETTER HA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0BB9, -- ஹ
+ category="lo",
+ description="TAMIL LETTER HA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0BB9,
},
[0x0BBE]={
- ["category"]="mc",
- ["description"]="TAMIL VOWEL SIGN AA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0BBE, -- ா
+ category="mc",
+ description="TAMIL VOWEL SIGN AA",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0BBE,
},
[0x0BBF]={
- ["category"]="mc",
- ["description"]="TAMIL VOWEL SIGN I",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0BBF, -- ி
+ category="mc",
+ description="TAMIL VOWEL SIGN I",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0BBF,
},
[0x0BC0]={
- ["category"]="mn",
- ["description"]="TAMIL VOWEL SIGN II",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0BC0, -- ீ
+ category="mn",
+ description="TAMIL VOWEL SIGN II",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0BC0,
},
[0x0BC1]={
- ["category"]="mc",
- ["description"]="TAMIL VOWEL SIGN U",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0BC1, -- ு
+ category="mc",
+ description="TAMIL VOWEL SIGN U",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0BC1,
},
[0x0BC2]={
- ["category"]="mc",
- ["description"]="TAMIL VOWEL SIGN UU",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0BC2, -- ூ
+ category="mc",
+ description="TAMIL VOWEL SIGN UU",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0BC2,
},
[0x0BC6]={
- ["category"]="mc",
- ["description"]="TAMIL VOWEL SIGN E",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0BC6, -- ெ
+ category="mc",
+ description="TAMIL VOWEL SIGN E",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0BC6,
},
[0x0BC7]={
- ["category"]="mc",
- ["description"]="TAMIL VOWEL SIGN EE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0BC7, -- ே
+ category="mc",
+ description="TAMIL VOWEL SIGN EE",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0BC7,
},
[0x0BC8]={
- ["category"]="mc",
- ["description"]="TAMIL VOWEL SIGN AI",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0BC8, -- ை
+ category="mc",
+ description="TAMIL VOWEL SIGN AI",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0BC8,
},
[0x0BCA]={
- ["category"]="mc",
- ["description"]="TAMIL VOWEL SIGN O",
- ["linebreak"]="cm",
- ["specials"]={ "char", 0x0BC6, 0x0BBE },
- ["unicodeslot"]=0x0BCA, -- ொ
+ category="mc",
+ description="TAMIL VOWEL SIGN O",
+ direction="l",
+ linebreak="cm",
+ specials={ "char", 0x0BC6, 0x0BBE },
+ unicodeslot=0x0BCA,
},
[0x0BCB]={
- ["category"]="mc",
- ["description"]="TAMIL VOWEL SIGN OO",
- ["linebreak"]="cm",
- ["specials"]={ "char", 0x0BC7, 0x0BBE },
- ["unicodeslot"]=0x0BCB, -- ோ
+ category="mc",
+ description="TAMIL VOWEL SIGN OO",
+ direction="l",
+ linebreak="cm",
+ specials={ "char", 0x0BC7, 0x0BBE },
+ unicodeslot=0x0BCB,
},
[0x0BCC]={
- ["category"]="mc",
- ["description"]="TAMIL VOWEL SIGN AU",
- ["linebreak"]="cm",
- ["specials"]={ "char", 0x0BC6, 0x0BD7 },
- ["unicodeslot"]=0x0BCC, -- ௌ
+ category="mc",
+ description="TAMIL VOWEL SIGN AU",
+ direction="l",
+ linebreak="cm",
+ specials={ "char", 0x0BC6, 0x0BD7 },
+ unicodeslot=0x0BCC,
},
[0x0BCD]={
- ["category"]="mn",
- ["description"]="TAMIL SIGN VIRAMA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0BCD, -- ்
+ category="mn",
+ description="TAMIL SIGN VIRAMA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0BCD,
},
[0x0BD7]={
- ["category"]="mc",
- ["description"]="TAMIL AU LENGTH MARK",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0BD7, -- ௗ
+ category="mc",
+ description="TAMIL AU LENGTH MARK",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0BD7,
},
[0x0BE6]={
- ["category"]="nd",
- ["description"]="TAMIL DIGIT ZERO",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0BE6, -- ௦
+ category="nd",
+ description="TAMIL DIGIT ZERO",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0BE6,
},
[0x0BE7]={
- ["category"]="nd",
- ["description"]="TAMIL DIGIT ONE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0BE7, -- ௧
+ category="nd",
+ description="TAMIL DIGIT ONE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0BE7,
},
[0x0BE8]={
- ["category"]="nd",
- ["description"]="TAMIL DIGIT TWO",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0BE8, -- ௨
+ category="nd",
+ description="TAMIL DIGIT TWO",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0BE8,
},
[0x0BE9]={
- ["category"]="nd",
- ["description"]="TAMIL DIGIT THREE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0BE9, -- ௩
+ category="nd",
+ description="TAMIL DIGIT THREE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0BE9,
},
[0x0BEA]={
- ["category"]="nd",
- ["description"]="TAMIL DIGIT FOUR",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0BEA, -- ௪
+ category="nd",
+ description="TAMIL DIGIT FOUR",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0BEA,
},
[0x0BEB]={
- ["category"]="nd",
- ["description"]="TAMIL DIGIT FIVE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0BEB, -- ௫
+ category="nd",
+ description="TAMIL DIGIT FIVE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0BEB,
},
[0x0BEC]={
- ["category"]="nd",
- ["description"]="TAMIL DIGIT SIX",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0BEC, -- ௬
+ category="nd",
+ description="TAMIL DIGIT SIX",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0BEC,
},
[0x0BED]={
- ["category"]="nd",
- ["description"]="TAMIL DIGIT SEVEN",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0BED, -- ௭
+ category="nd",
+ description="TAMIL DIGIT SEVEN",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0BED,
},
[0x0BEE]={
- ["category"]="nd",
- ["description"]="TAMIL DIGIT EIGHT",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0BEE, -- ௮
+ category="nd",
+ description="TAMIL DIGIT EIGHT",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0BEE,
},
[0x0BEF]={
- ["category"]="nd",
- ["description"]="TAMIL DIGIT NINE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0BEF, -- ௯
+ category="nd",
+ description="TAMIL DIGIT NINE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0BEF,
},
[0x0BF0]={
- ["category"]="no",
- ["description"]="TAMIL NUMBER TEN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0BF0, -- ௰
+ category="no",
+ description="TAMIL NUMBER TEN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0BF0,
},
[0x0BF1]={
- ["category"]="no",
- ["description"]="TAMIL NUMBER ONE HUNDRED",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0BF1, -- ௱
+ category="no",
+ description="TAMIL NUMBER ONE HUNDRED",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0BF1,
},
[0x0BF2]={
- ["category"]="no",
- ["description"]="TAMIL NUMBER ONE THOUSAND",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0BF2, -- ௲
+ category="no",
+ description="TAMIL NUMBER ONE THOUSAND",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0BF2,
},
[0x0BF3]={
- ["category"]="so",
- ["description"]="TAMIL DAY SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0BF3, -- ௳
+ category="so",
+ description="TAMIL DAY SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x0BF3,
},
[0x0BF4]={
- ["category"]="so",
- ["description"]="TAMIL MONTH SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0BF4, -- ௴
+ category="so",
+ description="TAMIL MONTH SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x0BF4,
},
[0x0BF5]={
- ["category"]="so",
- ["description"]="TAMIL YEAR SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0BF5, -- ௵
+ category="so",
+ description="TAMIL YEAR SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x0BF5,
},
[0x0BF6]={
- ["category"]="so",
- ["description"]="TAMIL DEBIT SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0BF6, -- ௶
+ category="so",
+ description="TAMIL DEBIT SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x0BF6,
},
[0x0BF7]={
- ["category"]="so",
- ["description"]="TAMIL CREDIT SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0BF7, -- ௷
+ category="so",
+ description="TAMIL CREDIT SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x0BF7,
},
[0x0BF8]={
- ["category"]="so",
- ["description"]="TAMIL AS ABOVE SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0BF8, -- ௸
+ category="so",
+ description="TAMIL AS ABOVE SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x0BF8,
},
[0x0BF9]={
- ["category"]="sc",
- ["description"]="TAMIL RUPEE SIGN",
- ["linebreak"]="pr",
- ["unicodeslot"]=0x0BF9, -- ௹
+ category="sc",
+ description="TAMIL RUPEE SIGN",
+ direction="et",
+ linebreak="pr",
+ unicodeslot=0x0BF9,
},
[0x0BFA]={
- ["category"]="so",
- ["description"]="TAMIL NUMBER SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0BFA, -- ௺
+ category="so",
+ description="TAMIL NUMBER SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x0BFA,
},
[0x0C01]={
- ["category"]="mc",
- ["description"]="TELUGU SIGN CANDRABINDU",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0C01, -- ఁ
+ category="mc",
+ description="TELUGU SIGN CANDRABINDU",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0C01,
},
[0x0C02]={
- ["category"]="mc",
- ["description"]="TELUGU SIGN ANUSVARA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0C02, -- ం
+ category="mc",
+ description="TELUGU SIGN ANUSVARA",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0C02,
},
[0x0C03]={
- ["category"]="mc",
- ["description"]="TELUGU SIGN VISARGA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0C03, -- ః
+ category="mc",
+ description="TELUGU SIGN VISARGA",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0C03,
},
[0x0C05]={
- ["category"]="lo",
- ["description"]="TELUGU LETTER A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C05, -- అ
+ category="lo",
+ description="TELUGU LETTER A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C05,
},
[0x0C06]={
- ["category"]="lo",
- ["description"]="TELUGU LETTER AA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C06, -- ఆ
+ category="lo",
+ description="TELUGU LETTER AA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C06,
},
[0x0C07]={
- ["category"]="lo",
- ["description"]="TELUGU LETTER I",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C07, -- ఇ
+ category="lo",
+ description="TELUGU LETTER I",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C07,
},
[0x0C08]={
- ["category"]="lo",
- ["description"]="TELUGU LETTER II",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C08, -- ఈ
+ category="lo",
+ description="TELUGU LETTER II",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C08,
},
[0x0C09]={
- ["category"]="lo",
- ["description"]="TELUGU LETTER U",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C09, -- ఉ
+ category="lo",
+ description="TELUGU LETTER U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C09,
},
[0x0C0A]={
- ["category"]="lo",
- ["description"]="TELUGU LETTER UU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C0A, -- ఊ
+ category="lo",
+ description="TELUGU LETTER UU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C0A,
},
[0x0C0B]={
- ["category"]="lo",
- ["description"]="TELUGU LETTER VOCALIC R",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C0B, -- ఋ
+ category="lo",
+ description="TELUGU LETTER VOCALIC R",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C0B,
},
[0x0C0C]={
- ["category"]="lo",
- ["description"]="TELUGU LETTER VOCALIC L",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C0C, -- ఌ
+ category="lo",
+ description="TELUGU LETTER VOCALIC L",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C0C,
},
[0x0C0E]={
- ["category"]="lo",
- ["description"]="TELUGU LETTER E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C0E, -- ఎ
+ category="lo",
+ description="TELUGU LETTER E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C0E,
},
[0x0C0F]={
- ["category"]="lo",
- ["description"]="TELUGU LETTER EE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C0F, -- ఏ
+ category="lo",
+ description="TELUGU LETTER EE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C0F,
},
[0x0C10]={
- ["category"]="lo",
- ["description"]="TELUGU LETTER AI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C10, -- ఐ
+ category="lo",
+ description="TELUGU LETTER AI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C10,
},
[0x0C12]={
- ["category"]="lo",
- ["description"]="TELUGU LETTER O",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C12, -- ఒ
+ category="lo",
+ description="TELUGU LETTER O",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C12,
},
[0x0C13]={
- ["category"]="lo",
- ["description"]="TELUGU LETTER OO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C13, -- ఓ
+ category="lo",
+ description="TELUGU LETTER OO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C13,
},
[0x0C14]={
- ["category"]="lo",
- ["description"]="TELUGU LETTER AU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C14, -- ఔ
+ category="lo",
+ description="TELUGU LETTER AU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C14,
},
[0x0C15]={
- ["category"]="lo",
- ["description"]="TELUGU LETTER KA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C15, -- క
+ category="lo",
+ description="TELUGU LETTER KA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C15,
},
[0x0C16]={
- ["category"]="lo",
- ["description"]="TELUGU LETTER KHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C16, -- ఖ
+ category="lo",
+ description="TELUGU LETTER KHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C16,
},
[0x0C17]={
- ["category"]="lo",
- ["description"]="TELUGU LETTER GA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C17, -- గ
+ category="lo",
+ description="TELUGU LETTER GA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C17,
},
[0x0C18]={
- ["category"]="lo",
- ["description"]="TELUGU LETTER GHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C18, -- ఘ
+ category="lo",
+ description="TELUGU LETTER GHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C18,
},
[0x0C19]={
- ["category"]="lo",
- ["description"]="TELUGU LETTER NGA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C19, -- ఙ
+ category="lo",
+ description="TELUGU LETTER NGA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C19,
},
[0x0C1A]={
- ["category"]="lo",
- ["description"]="TELUGU LETTER CA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C1A, -- చ
+ category="lo",
+ description="TELUGU LETTER CA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C1A,
},
[0x0C1B]={
- ["category"]="lo",
- ["description"]="TELUGU LETTER CHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C1B, -- ఛ
+ category="lo",
+ description="TELUGU LETTER CHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C1B,
},
[0x0C1C]={
- ["category"]="lo",
- ["description"]="TELUGU LETTER JA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C1C, -- జ
+ category="lo",
+ description="TELUGU LETTER JA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C1C,
},
[0x0C1D]={
- ["category"]="lo",
- ["description"]="TELUGU LETTER JHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C1D, -- ఝ
+ category="lo",
+ description="TELUGU LETTER JHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C1D,
},
[0x0C1E]={
- ["category"]="lo",
- ["description"]="TELUGU LETTER NYA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C1E, -- ఞ
+ category="lo",
+ description="TELUGU LETTER NYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C1E,
},
[0x0C1F]={
- ["category"]="lo",
- ["description"]="TELUGU LETTER TTA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C1F, -- ట
+ category="lo",
+ description="TELUGU LETTER TTA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C1F,
},
[0x0C20]={
- ["category"]="lo",
- ["description"]="TELUGU LETTER TTHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C20, -- ఠ
+ category="lo",
+ description="TELUGU LETTER TTHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C20,
},
[0x0C21]={
- ["category"]="lo",
- ["description"]="TELUGU LETTER DDA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C21, -- డ
+ category="lo",
+ description="TELUGU LETTER DDA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C21,
},
[0x0C22]={
- ["category"]="lo",
- ["description"]="TELUGU LETTER DDHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C22, -- ఢ
+ category="lo",
+ description="TELUGU LETTER DDHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C22,
},
[0x0C23]={
- ["category"]="lo",
- ["description"]="TELUGU LETTER NNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C23, -- ణ
+ category="lo",
+ description="TELUGU LETTER NNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C23,
},
[0x0C24]={
- ["category"]="lo",
- ["description"]="TELUGU LETTER TA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C24, -- త
+ category="lo",
+ description="TELUGU LETTER TA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C24,
},
[0x0C25]={
- ["category"]="lo",
- ["description"]="TELUGU LETTER THA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C25, -- థ
+ category="lo",
+ description="TELUGU LETTER THA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C25,
},
[0x0C26]={
- ["category"]="lo",
- ["description"]="TELUGU LETTER DA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C26, -- ద
+ category="lo",
+ description="TELUGU LETTER DA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C26,
},
[0x0C27]={
- ["category"]="lo",
- ["description"]="TELUGU LETTER DHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C27, -- ధ
+ category="lo",
+ description="TELUGU LETTER DHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C27,
},
[0x0C28]={
- ["category"]="lo",
- ["description"]="TELUGU LETTER NA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C28, -- న
+ category="lo",
+ description="TELUGU LETTER NA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C28,
},
[0x0C2A]={
- ["category"]="lo",
- ["description"]="TELUGU LETTER PA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C2A, -- ప
+ category="lo",
+ description="TELUGU LETTER PA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C2A,
},
[0x0C2B]={
- ["category"]="lo",
- ["description"]="TELUGU LETTER PHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C2B, -- ఫ
+ category="lo",
+ description="TELUGU LETTER PHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C2B,
},
[0x0C2C]={
- ["category"]="lo",
- ["description"]="TELUGU LETTER BA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C2C, -- బ
+ category="lo",
+ description="TELUGU LETTER BA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C2C,
},
[0x0C2D]={
- ["category"]="lo",
- ["description"]="TELUGU LETTER BHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C2D, -- భ
+ category="lo",
+ description="TELUGU LETTER BHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C2D,
},
[0x0C2E]={
- ["category"]="lo",
- ["description"]="TELUGU LETTER MA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C2E, -- మ
+ category="lo",
+ description="TELUGU LETTER MA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C2E,
},
[0x0C2F]={
- ["category"]="lo",
- ["description"]="TELUGU LETTER YA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C2F, -- య
+ category="lo",
+ description="TELUGU LETTER YA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C2F,
},
[0x0C30]={
- ["category"]="lo",
- ["description"]="TELUGU LETTER RA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C30, -- ర
+ category="lo",
+ description="TELUGU LETTER RA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C30,
},
[0x0C31]={
- ["category"]="lo",
- ["description"]="TELUGU LETTER RRA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C31, -- ఱ
+ category="lo",
+ description="TELUGU LETTER RRA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C31,
},
[0x0C32]={
- ["category"]="lo",
- ["description"]="TELUGU LETTER LA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C32, -- ల
+ category="lo",
+ description="TELUGU LETTER LA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C32,
},
[0x0C33]={
- ["category"]="lo",
- ["description"]="TELUGU LETTER LLA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C33, -- ళ
+ category="lo",
+ description="TELUGU LETTER LLA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C33,
},
[0x0C35]={
- ["category"]="lo",
- ["description"]="TELUGU LETTER VA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C35, -- వ
+ category="lo",
+ description="TELUGU LETTER VA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C35,
},
[0x0C36]={
- ["category"]="lo",
- ["description"]="TELUGU LETTER SHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C36, -- శ
+ category="lo",
+ description="TELUGU LETTER SHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C36,
},
[0x0C37]={
- ["category"]="lo",
- ["description"]="TELUGU LETTER SSA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C37, -- ష
+ category="lo",
+ description="TELUGU LETTER SSA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C37,
},
[0x0C38]={
- ["category"]="lo",
- ["description"]="TELUGU LETTER SA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C38, -- స
+ category="lo",
+ description="TELUGU LETTER SA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C38,
},
[0x0C39]={
- ["category"]="lo",
- ["description"]="TELUGU LETTER HA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C39, -- హ
+ category="lo",
+ description="TELUGU LETTER HA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C39,
},
[0x0C3E]={
- ["category"]="mn",
- ["description"]="TELUGU VOWEL SIGN AA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0C3E, -- ా
+ category="mn",
+ description="TELUGU VOWEL SIGN AA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0C3E,
},
[0x0C3F]={
- ["category"]="mn",
- ["description"]="TELUGU VOWEL SIGN I",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0C3F, -- ి
+ category="mn",
+ description="TELUGU VOWEL SIGN I",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0C3F,
},
[0x0C40]={
- ["category"]="mn",
- ["description"]="TELUGU VOWEL SIGN II",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0C40, -- ీ
+ category="mn",
+ description="TELUGU VOWEL SIGN II",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0C40,
},
[0x0C41]={
- ["category"]="mc",
- ["description"]="TELUGU VOWEL SIGN U",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0C41, -- ు
+ category="mc",
+ description="TELUGU VOWEL SIGN U",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0C41,
},
[0x0C42]={
- ["category"]="mc",
- ["description"]="TELUGU VOWEL SIGN UU",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0C42, -- ూ
+ category="mc",
+ description="TELUGU VOWEL SIGN UU",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0C42,
},
[0x0C43]={
- ["category"]="mc",
- ["description"]="TELUGU VOWEL SIGN VOCALIC R",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0C43, -- ృ
+ category="mc",
+ description="TELUGU VOWEL SIGN VOCALIC R",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0C43,
},
[0x0C44]={
- ["category"]="mc",
- ["description"]="TELUGU VOWEL SIGN VOCALIC RR",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0C44, -- ౄ
+ category="mc",
+ description="TELUGU VOWEL SIGN VOCALIC RR",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0C44,
},
[0x0C46]={
- ["category"]="mn",
- ["description"]="TELUGU VOWEL SIGN E",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0C46, -- ె
+ category="mn",
+ description="TELUGU VOWEL SIGN E",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0C46,
},
[0x0C47]={
- ["category"]="mn",
- ["description"]="TELUGU VOWEL SIGN EE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0C47, -- ే
+ category="mn",
+ description="TELUGU VOWEL SIGN EE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0C47,
},
[0x0C48]={
- ["category"]="mn",
- ["description"]="TELUGU VOWEL SIGN AI",
- ["linebreak"]="cm",
- ["specials"]={ "char", 0x0C46, 0x0C56 },
- ["unicodeslot"]=0x0C48, -- ై
+ category="mn",
+ description="TELUGU VOWEL SIGN AI",
+ direction="nsm",
+ linebreak="cm",
+ specials={ "char", 0x0C46, 0x0C56 },
+ unicodeslot=0x0C48,
},
[0x0C4A]={
- ["category"]="mn",
- ["description"]="TELUGU VOWEL SIGN O",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0C4A, -- ొ
+ category="mn",
+ description="TELUGU VOWEL SIGN O",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0C4A,
},
[0x0C4B]={
- ["category"]="mn",
- ["description"]="TELUGU VOWEL SIGN OO",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0C4B, -- ో
+ category="mn",
+ description="TELUGU VOWEL SIGN OO",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0C4B,
},
[0x0C4C]={
- ["category"]="mn",
- ["description"]="TELUGU VOWEL SIGN AU",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0C4C, -- ౌ
+ category="mn",
+ description="TELUGU VOWEL SIGN AU",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0C4C,
},
[0x0C4D]={
- ["category"]="mn",
- ["description"]="TELUGU SIGN VIRAMA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0C4D, -- ్
+ category="mn",
+ description="TELUGU SIGN VIRAMA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0C4D,
},
[0x0C55]={
- ["category"]="mn",
- ["description"]="TELUGU LENGTH MARK",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0C55, -- ౕ
+ category="mn",
+ description="TELUGU LENGTH MARK",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0C55,
},
[0x0C56]={
- ["category"]="mn",
- ["description"]="TELUGU AI LENGTH MARK",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0C56, -- ౖ
+ category="mn",
+ description="TELUGU AI LENGTH MARK",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0C56,
},
[0x0C60]={
- ["category"]="lo",
- ["description"]="TELUGU LETTER VOCALIC RR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C60, -- ౠ
+ category="lo",
+ description="TELUGU LETTER VOCALIC RR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C60,
},
[0x0C61]={
- ["category"]="lo",
- ["description"]="TELUGU LETTER VOCALIC LL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C61, -- ౡ
+ category="lo",
+ description="TELUGU LETTER VOCALIC LL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C61,
},
[0x0C66]={
- ["category"]="nd",
- ["description"]="TELUGU DIGIT ZERO",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0C66, -- ౦
+ category="nd",
+ description="TELUGU DIGIT ZERO",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0C66,
},
[0x0C67]={
- ["category"]="nd",
- ["description"]="TELUGU DIGIT ONE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0C67, -- ౧
+ category="nd",
+ description="TELUGU DIGIT ONE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0C67,
},
[0x0C68]={
- ["category"]="nd",
- ["description"]="TELUGU DIGIT TWO",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0C68, -- ౨
+ category="nd",
+ description="TELUGU DIGIT TWO",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0C68,
},
[0x0C69]={
- ["category"]="nd",
- ["description"]="TELUGU DIGIT THREE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0C69, -- ౩
+ category="nd",
+ description="TELUGU DIGIT THREE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0C69,
},
[0x0C6A]={
- ["category"]="nd",
- ["description"]="TELUGU DIGIT FOUR",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0C6A, -- ౪
+ category="nd",
+ description="TELUGU DIGIT FOUR",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0C6A,
},
[0x0C6B]={
- ["category"]="nd",
- ["description"]="TELUGU DIGIT FIVE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0C6B, -- ౫
+ category="nd",
+ description="TELUGU DIGIT FIVE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0C6B,
},
[0x0C6C]={
- ["category"]="nd",
- ["description"]="TELUGU DIGIT SIX",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0C6C, -- ౬
+ category="nd",
+ description="TELUGU DIGIT SIX",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0C6C,
},
[0x0C6D]={
- ["category"]="nd",
- ["description"]="TELUGU DIGIT SEVEN",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0C6D, -- ౭
+ category="nd",
+ description="TELUGU DIGIT SEVEN",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0C6D,
},
[0x0C6E]={
- ["category"]="nd",
- ["description"]="TELUGU DIGIT EIGHT",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0C6E, -- ౮
+ category="nd",
+ description="TELUGU DIGIT EIGHT",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0C6E,
},
[0x0C6F]={
- ["category"]="nd",
- ["description"]="TELUGU DIGIT NINE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0C6F, -- ౯
+ category="nd",
+ description="TELUGU DIGIT NINE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0C6F,
},
[0x0C82]={
- ["category"]="mc",
- ["description"]="KANNADA SIGN ANUSVARA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0C82, -- ಂ
+ category="mc",
+ description="KANNADA SIGN ANUSVARA",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0C82,
},
[0x0C83]={
- ["category"]="mc",
- ["description"]="KANNADA SIGN VISARGA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0C83, -- ಃ
+ category="mc",
+ description="KANNADA SIGN VISARGA",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0C83,
},
[0x0C85]={
- ["category"]="lo",
- ["description"]="KANNADA LETTER A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C85, -- ಅ
+ category="lo",
+ description="KANNADA LETTER A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C85,
},
[0x0C86]={
- ["category"]="lo",
- ["description"]="KANNADA LETTER AA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C86, -- ಆ
+ category="lo",
+ description="KANNADA LETTER AA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C86,
},
[0x0C87]={
- ["category"]="lo",
- ["description"]="KANNADA LETTER I",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C87, -- ಇ
+ category="lo",
+ description="KANNADA LETTER I",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C87,
},
[0x0C88]={
- ["category"]="lo",
- ["description"]="KANNADA LETTER II",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C88, -- ಈ
+ category="lo",
+ description="KANNADA LETTER II",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C88,
},
[0x0C89]={
- ["category"]="lo",
- ["description"]="KANNADA LETTER U",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C89, -- ಉ
+ category="lo",
+ description="KANNADA LETTER U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C89,
},
[0x0C8A]={
- ["category"]="lo",
- ["description"]="KANNADA LETTER UU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C8A, -- ಊ
+ category="lo",
+ description="KANNADA LETTER UU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C8A,
},
[0x0C8B]={
- ["category"]="lo",
- ["description"]="KANNADA LETTER VOCALIC R",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C8B, -- ಋ
+ category="lo",
+ description="KANNADA LETTER VOCALIC R",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C8B,
},
[0x0C8C]={
- ["category"]="lo",
- ["description"]="KANNADA LETTER VOCALIC L",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C8C, -- ಌ
+ category="lo",
+ description="KANNADA LETTER VOCALIC L",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C8C,
},
[0x0C8E]={
- ["category"]="lo",
- ["description"]="KANNADA LETTER E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C8E, -- ಎ
+ category="lo",
+ description="KANNADA LETTER E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C8E,
},
[0x0C8F]={
- ["category"]="lo",
- ["description"]="KANNADA LETTER EE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C8F, -- ಏ
+ category="lo",
+ description="KANNADA LETTER EE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C8F,
},
[0x0C90]={
- ["category"]="lo",
- ["description"]="KANNADA LETTER AI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C90, -- ಐ
+ category="lo",
+ description="KANNADA LETTER AI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C90,
},
[0x0C92]={
- ["category"]="lo",
- ["description"]="KANNADA LETTER O",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C92, -- ಒ
+ category="lo",
+ description="KANNADA LETTER O",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C92,
},
[0x0C93]={
- ["category"]="lo",
- ["description"]="KANNADA LETTER OO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C93, -- ಓ
+ category="lo",
+ description="KANNADA LETTER OO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C93,
},
[0x0C94]={
- ["category"]="lo",
- ["description"]="KANNADA LETTER AU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C94, -- ಔ
+ category="lo",
+ description="KANNADA LETTER AU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C94,
},
[0x0C95]={
- ["category"]="lo",
- ["description"]="KANNADA LETTER KA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C95, -- ಕ
+ category="lo",
+ description="KANNADA LETTER KA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C95,
},
[0x0C96]={
- ["category"]="lo",
- ["description"]="KANNADA LETTER KHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C96, -- ಖ
+ category="lo",
+ description="KANNADA LETTER KHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C96,
},
[0x0C97]={
- ["category"]="lo",
- ["description"]="KANNADA LETTER GA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C97, -- ಗ
+ category="lo",
+ description="KANNADA LETTER GA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C97,
},
[0x0C98]={
- ["category"]="lo",
- ["description"]="KANNADA LETTER GHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C98, -- ಘ
+ category="lo",
+ description="KANNADA LETTER GHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C98,
},
[0x0C99]={
- ["category"]="lo",
- ["description"]="KANNADA LETTER NGA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C99, -- ಙ
+ category="lo",
+ description="KANNADA LETTER NGA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C99,
},
[0x0C9A]={
- ["category"]="lo",
- ["description"]="KANNADA LETTER CA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C9A, -- ಚ
+ category="lo",
+ description="KANNADA LETTER CA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C9A,
},
[0x0C9B]={
- ["category"]="lo",
- ["description"]="KANNADA LETTER CHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C9B, -- ಛ
+ category="lo",
+ description="KANNADA LETTER CHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C9B,
},
[0x0C9C]={
- ["category"]="lo",
- ["description"]="KANNADA LETTER JA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C9C, -- ಜ
+ category="lo",
+ description="KANNADA LETTER JA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C9C,
},
[0x0C9D]={
- ["category"]="lo",
- ["description"]="KANNADA LETTER JHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C9D, -- ಝ
+ category="lo",
+ description="KANNADA LETTER JHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C9D,
},
[0x0C9E]={
- ["category"]="lo",
- ["description"]="KANNADA LETTER NYA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C9E, -- ಞ
+ category="lo",
+ description="KANNADA LETTER NYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C9E,
},
[0x0C9F]={
- ["category"]="lo",
- ["description"]="KANNADA LETTER TTA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0C9F, -- ಟ
+ category="lo",
+ description="KANNADA LETTER TTA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0C9F,
},
[0x0CA0]={
- ["category"]="lo",
- ["description"]="KANNADA LETTER TTHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0CA0, -- ಠ
+ category="lo",
+ description="KANNADA LETTER TTHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0CA0,
},
[0x0CA1]={
- ["category"]="lo",
- ["description"]="KANNADA LETTER DDA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0CA1, -- ಡ
+ category="lo",
+ description="KANNADA LETTER DDA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0CA1,
},
[0x0CA2]={
- ["category"]="lo",
- ["description"]="KANNADA LETTER DDHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0CA2, -- ಢ
+ category="lo",
+ description="KANNADA LETTER DDHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0CA2,
},
[0x0CA3]={
- ["category"]="lo",
- ["description"]="KANNADA LETTER NNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0CA3, -- ಣ
+ category="lo",
+ description="KANNADA LETTER NNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0CA3,
},
[0x0CA4]={
- ["category"]="lo",
- ["description"]="KANNADA LETTER TA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0CA4, -- ತ
+ category="lo",
+ description="KANNADA LETTER TA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0CA4,
},
[0x0CA5]={
- ["category"]="lo",
- ["description"]="KANNADA LETTER THA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0CA5, -- ಥ
+ category="lo",
+ description="KANNADA LETTER THA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0CA5,
},
[0x0CA6]={
- ["category"]="lo",
- ["description"]="KANNADA LETTER DA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0CA6, -- ದ
+ category="lo",
+ description="KANNADA LETTER DA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0CA6,
},
[0x0CA7]={
- ["category"]="lo",
- ["description"]="KANNADA LETTER DHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0CA7, -- ಧ
+ category="lo",
+ description="KANNADA LETTER DHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0CA7,
},
[0x0CA8]={
- ["category"]="lo",
- ["description"]="KANNADA LETTER NA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0CA8, -- ನ
+ category="lo",
+ description="KANNADA LETTER NA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0CA8,
},
[0x0CAA]={
- ["category"]="lo",
- ["description"]="KANNADA LETTER PA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0CAA, -- ಪ
+ category="lo",
+ description="KANNADA LETTER PA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0CAA,
},
[0x0CAB]={
- ["category"]="lo",
- ["description"]="KANNADA LETTER PHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0CAB, -- ಫ
+ category="lo",
+ description="KANNADA LETTER PHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0CAB,
},
[0x0CAC]={
- ["category"]="lo",
- ["description"]="KANNADA LETTER BA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0CAC, -- ಬ
+ category="lo",
+ description="KANNADA LETTER BA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0CAC,
},
[0x0CAD]={
- ["category"]="lo",
- ["description"]="KANNADA LETTER BHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0CAD, -- ಭ
+ category="lo",
+ description="KANNADA LETTER BHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0CAD,
},
[0x0CAE]={
- ["category"]="lo",
- ["description"]="KANNADA LETTER MA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0CAE, -- ಮ
+ category="lo",
+ description="KANNADA LETTER MA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0CAE,
},
[0x0CAF]={
- ["category"]="lo",
- ["description"]="KANNADA LETTER YA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0CAF, -- ಯ
+ category="lo",
+ description="KANNADA LETTER YA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0CAF,
},
[0x0CB0]={
- ["category"]="lo",
- ["description"]="KANNADA LETTER RA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0CB0, -- ರ
+ category="lo",
+ description="KANNADA LETTER RA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0CB0,
},
[0x0CB1]={
- ["category"]="lo",
- ["description"]="KANNADA LETTER RRA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0CB1, -- ಱ
+ category="lo",
+ description="KANNADA LETTER RRA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0CB1,
},
[0x0CB2]={
- ["category"]="lo",
- ["description"]="KANNADA LETTER LA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0CB2, -- ಲ
+ category="lo",
+ description="KANNADA LETTER LA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0CB2,
},
[0x0CB3]={
- ["category"]="lo",
- ["description"]="KANNADA LETTER LLA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0CB3, -- ಳ
+ category="lo",
+ description="KANNADA LETTER LLA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0CB3,
},
[0x0CB5]={
- ["category"]="lo",
- ["description"]="KANNADA LETTER VA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0CB5, -- ವ
+ category="lo",
+ description="KANNADA LETTER VA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0CB5,
},
[0x0CB6]={
- ["category"]="lo",
- ["description"]="KANNADA LETTER SHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0CB6, -- ಶ
+ category="lo",
+ description="KANNADA LETTER SHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0CB6,
},
[0x0CB7]={
- ["category"]="lo",
- ["description"]="KANNADA LETTER SSA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0CB7, -- ಷ
+ category="lo",
+ description="KANNADA LETTER SSA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0CB7,
},
[0x0CB8]={
- ["category"]="lo",
- ["description"]="KANNADA LETTER SA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0CB8, -- ಸ
+ category="lo",
+ description="KANNADA LETTER SA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0CB8,
},
[0x0CB9]={
- ["category"]="lo",
- ["description"]="KANNADA LETTER HA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0CB9, -- ಹ
+ category="lo",
+ description="KANNADA LETTER HA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0CB9,
},
[0x0CBC]={
- ["category"]="mn",
- ["description"]="KANNADA SIGN NUKTA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0CBC, -- ಼
+ category="mn",
+ description="KANNADA SIGN NUKTA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0CBC,
},
[0x0CBD]={
- ["category"]="lo",
- ["description"]="KANNADA SIGN AVAGRAHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0CBD, -- ಽ
+ category="lo",
+ description="KANNADA SIGN AVAGRAHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0CBD,
},
[0x0CBE]={
- ["category"]="mc",
- ["description"]="KANNADA VOWEL SIGN AA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0CBE, -- ಾ
+ category="mc",
+ description="KANNADA VOWEL SIGN AA",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0CBE,
},
[0x0CBF]={
- ["category"]="mn",
- ["description"]="KANNADA VOWEL SIGN I",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0CBF, -- ಿ
+ category="mn",
+ description="KANNADA VOWEL SIGN I",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0CBF,
},
[0x0CC0]={
- ["category"]="mc",
- ["description"]="KANNADA VOWEL SIGN II",
- ["linebreak"]="cm",
- ["specials"]={ "char", 0x0CBF, 0x0CD5 },
- ["unicodeslot"]=0x0CC0, -- ೀ
+ category="mc",
+ description="KANNADA VOWEL SIGN II",
+ direction="l",
+ linebreak="cm",
+ specials={ "char", 0x0CBF, 0x0CD5 },
+ unicodeslot=0x0CC0,
},
[0x0CC1]={
- ["category"]="mc",
- ["description"]="KANNADA VOWEL SIGN U",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0CC1, -- ು
+ category="mc",
+ description="KANNADA VOWEL SIGN U",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0CC1,
},
[0x0CC2]={
- ["category"]="mc",
- ["description"]="KANNADA VOWEL SIGN UU",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0CC2, -- ೂ
+ category="mc",
+ description="KANNADA VOWEL SIGN UU",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0CC2,
},
[0x0CC3]={
- ["category"]="mc",
- ["description"]="KANNADA VOWEL SIGN VOCALIC R",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0CC3, -- ೃ
+ category="mc",
+ description="KANNADA VOWEL SIGN VOCALIC R",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0CC3,
},
[0x0CC4]={
- ["category"]="mc",
- ["description"]="KANNADA VOWEL SIGN VOCALIC RR",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0CC4, -- ೄ
+ category="mc",
+ description="KANNADA VOWEL SIGN VOCALIC RR",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0CC4,
},
[0x0CC6]={
- ["category"]="mn",
- ["description"]="KANNADA VOWEL SIGN E",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0CC6, -- ೆ
+ category="mn",
+ description="KANNADA VOWEL SIGN E",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0CC6,
},
[0x0CC7]={
- ["category"]="mc",
- ["description"]="KANNADA VOWEL SIGN EE",
- ["linebreak"]="cm",
- ["specials"]={ "char", 0x0CC6, 0x0CD5 },
- ["unicodeslot"]=0x0CC7, -- ೇ
+ category="mc",
+ description="KANNADA VOWEL SIGN EE",
+ direction="l",
+ linebreak="cm",
+ specials={ "char", 0x0CC6, 0x0CD5 },
+ unicodeslot=0x0CC7,
},
[0x0CC8]={
- ["category"]="mc",
- ["description"]="KANNADA VOWEL SIGN AI",
- ["linebreak"]="cm",
- ["specials"]={ "char", 0x0CC6, 0x0CD6 },
- ["unicodeslot"]=0x0CC8, -- ೈ
+ category="mc",
+ description="KANNADA VOWEL SIGN AI",
+ direction="l",
+ linebreak="cm",
+ specials={ "char", 0x0CC6, 0x0CD6 },
+ unicodeslot=0x0CC8,
},
[0x0CCA]={
- ["category"]="mc",
- ["description"]="KANNADA VOWEL SIGN O",
- ["linebreak"]="cm",
- ["specials"]={ "char", 0x0CC6, 0x0CC2 },
- ["unicodeslot"]=0x0CCA, -- ೊ
+ category="mc",
+ description="KANNADA VOWEL SIGN O",
+ direction="l",
+ linebreak="cm",
+ specials={ "char", 0x0CC6, 0x0CC2 },
+ unicodeslot=0x0CCA,
},
[0x0CCB]={
- ["category"]="mc",
- ["description"]="KANNADA VOWEL SIGN OO",
- ["linebreak"]="cm",
- ["specials"]={ "char", 0x0CCA, 0x0CD5 },
- ["unicodeslot"]=0x0CCB, -- ೋ
+ category="mc",
+ description="KANNADA VOWEL SIGN OO",
+ direction="l",
+ linebreak="cm",
+ specials={ "char", 0x0CCA, 0x0CD5 },
+ unicodeslot=0x0CCB,
},
[0x0CCC]={
- ["category"]="mn",
- ["description"]="KANNADA VOWEL SIGN AU",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0CCC, -- ೌ
+ category="mn",
+ description="KANNADA VOWEL SIGN AU",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0CCC,
},
[0x0CCD]={
- ["category"]="mn",
- ["description"]="KANNADA SIGN VIRAMA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0CCD, -- ್
+ category="mn",
+ description="KANNADA SIGN VIRAMA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0CCD,
},
[0x0CD5]={
- ["category"]="mc",
- ["description"]="KANNADA LENGTH MARK",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0CD5, -- ೕ
+ category="mc",
+ description="KANNADA LENGTH MARK",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0CD5,
},
[0x0CD6]={
- ["category"]="mc",
- ["description"]="KANNADA AI LENGTH MARK",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0CD6, -- ೖ
+ category="mc",
+ description="KANNADA AI LENGTH MARK",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0CD6,
},
[0x0CDE]={
- ["category"]="lo",
- ["description"]="KANNADA LETTER FA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0CDE, -- ೞ
+ category="lo",
+ description="KANNADA LETTER FA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0CDE,
},
[0x0CE0]={
- ["category"]="lo",
- ["description"]="KANNADA LETTER VOCALIC RR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0CE0, -- ೠ
+ category="lo",
+ description="KANNADA LETTER VOCALIC RR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0CE0,
},
[0x0CE1]={
- ["category"]="lo",
- ["description"]="KANNADA LETTER VOCALIC LL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0CE1, -- ೡ
+ category="lo",
+ description="KANNADA LETTER VOCALIC LL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0CE1,
},
[0x0CE2]={
- ["category"]="mn",
- ["description"]="KANNADA VOWEL SIGN VOCALIC L",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0CE2, -- ೢ
+ category="mn",
+ description="KANNADA VOWEL SIGN VOCALIC L",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0CE2,
},
[0x0CE3]={
- ["category"]="mn",
- ["description"]="KANNADA VOWEL SIGN VOCALIC LL",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0CE3, -- ೣ
+ category="mn",
+ description="KANNADA VOWEL SIGN VOCALIC LL",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0CE3,
},
[0x0CE6]={
- ["category"]="nd",
- ["description"]="KANNADA DIGIT ZERO",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0CE6, -- ೦
+ category="nd",
+ description="KANNADA DIGIT ZERO",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0CE6,
},
[0x0CE7]={
- ["category"]="nd",
- ["description"]="KANNADA DIGIT ONE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0CE7, -- ೧
+ category="nd",
+ description="KANNADA DIGIT ONE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0CE7,
},
[0x0CE8]={
- ["category"]="nd",
- ["description"]="KANNADA DIGIT TWO",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0CE8, -- ೨
+ category="nd",
+ description="KANNADA DIGIT TWO",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0CE8,
},
[0x0CE9]={
- ["category"]="nd",
- ["description"]="KANNADA DIGIT THREE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0CE9, -- ೩
+ category="nd",
+ description="KANNADA DIGIT THREE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0CE9,
},
[0x0CEA]={
- ["category"]="nd",
- ["description"]="KANNADA DIGIT FOUR",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0CEA, -- ೪
+ category="nd",
+ description="KANNADA DIGIT FOUR",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0CEA,
},
[0x0CEB]={
- ["category"]="nd",
- ["description"]="KANNADA DIGIT FIVE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0CEB, -- ೫
+ category="nd",
+ description="KANNADA DIGIT FIVE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0CEB,
},
[0x0CEC]={
- ["category"]="nd",
- ["description"]="KANNADA DIGIT SIX",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0CEC, -- ೬
+ category="nd",
+ description="KANNADA DIGIT SIX",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0CEC,
},
[0x0CED]={
- ["category"]="nd",
- ["description"]="KANNADA DIGIT SEVEN",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0CED, -- ೭
+ category="nd",
+ description="KANNADA DIGIT SEVEN",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0CED,
},
[0x0CEE]={
- ["category"]="nd",
- ["description"]="KANNADA DIGIT EIGHT",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0CEE, -- ೮
+ category="nd",
+ description="KANNADA DIGIT EIGHT",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0CEE,
},
[0x0CEF]={
- ["category"]="nd",
- ["description"]="KANNADA DIGIT NINE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0CEF, -- ೯
+ category="nd",
+ description="KANNADA DIGIT NINE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0CEF,
},
[0x0CF1]={
- ["category"]="so",
- ["description"]="KANNADA SIGN JIHVAMULIYA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0CF1, -- ೱ
+ category="so",
+ description="KANNADA SIGN JIHVAMULIYA",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x0CF1,
},
[0x0CF2]={
- ["category"]="so",
- ["description"]="KANNADA SIGN UPADHMANIYA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0CF2, -- ೲ
+ category="so",
+ description="KANNADA SIGN UPADHMANIYA",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x0CF2,
},
[0x0D02]={
- ["category"]="mc",
- ["description"]="MALAYALAM SIGN ANUSVARA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0D02, -- ം
+ category="mc",
+ description="MALAYALAM SIGN ANUSVARA",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0D02,
},
[0x0D03]={
- ["category"]="mc",
- ["description"]="MALAYALAM SIGN VISARGA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0D03, -- ഃ
+ category="mc",
+ description="MALAYALAM SIGN VISARGA",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0D03,
},
[0x0D05]={
- ["category"]="lo",
- ["description"]="MALAYALAM LETTER A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D05, -- അ
+ category="lo",
+ description="MALAYALAM LETTER A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D05,
},
[0x0D06]={
- ["category"]="lo",
- ["description"]="MALAYALAM LETTER AA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D06, -- ആ
+ category="lo",
+ description="MALAYALAM LETTER AA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D06,
},
[0x0D07]={
- ["category"]="lo",
- ["description"]="MALAYALAM LETTER I",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D07, -- ഇ
+ category="lo",
+ description="MALAYALAM LETTER I",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D07,
},
[0x0D08]={
- ["category"]="lo",
- ["description"]="MALAYALAM LETTER II",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D08, -- ഈ
+ category="lo",
+ description="MALAYALAM LETTER II",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D08,
},
[0x0D09]={
- ["category"]="lo",
- ["description"]="MALAYALAM LETTER U",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D09, -- ഉ
+ category="lo",
+ description="MALAYALAM LETTER U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D09,
},
[0x0D0A]={
- ["category"]="lo",
- ["description"]="MALAYALAM LETTER UU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D0A, -- ഊ
+ category="lo",
+ description="MALAYALAM LETTER UU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D0A,
},
[0x0D0B]={
- ["category"]="lo",
- ["description"]="MALAYALAM LETTER VOCALIC R",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D0B, -- ഋ
+ category="lo",
+ description="MALAYALAM LETTER VOCALIC R",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D0B,
},
[0x0D0C]={
- ["category"]="lo",
- ["description"]="MALAYALAM LETTER VOCALIC L",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D0C, -- ഌ
+ category="lo",
+ description="MALAYALAM LETTER VOCALIC L",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D0C,
},
[0x0D0E]={
- ["category"]="lo",
- ["description"]="MALAYALAM LETTER E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D0E, -- എ
+ category="lo",
+ description="MALAYALAM LETTER E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D0E,
},
[0x0D0F]={
- ["category"]="lo",
- ["description"]="MALAYALAM LETTER EE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D0F, -- ഏ
+ category="lo",
+ description="MALAYALAM LETTER EE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D0F,
},
[0x0D10]={
- ["category"]="lo",
- ["description"]="MALAYALAM LETTER AI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D10, -- ഐ
+ category="lo",
+ description="MALAYALAM LETTER AI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D10,
},
[0x0D12]={
- ["category"]="lo",
- ["description"]="MALAYALAM LETTER O",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D12, -- ഒ
+ category="lo",
+ description="MALAYALAM LETTER O",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D12,
},
[0x0D13]={
- ["category"]="lo",
- ["description"]="MALAYALAM LETTER OO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D13, -- ഓ
+ category="lo",
+ description="MALAYALAM LETTER OO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D13,
},
[0x0D14]={
- ["category"]="lo",
- ["description"]="MALAYALAM LETTER AU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D14, -- ഔ
+ category="lo",
+ description="MALAYALAM LETTER AU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D14,
},
[0x0D15]={
- ["category"]="lo",
- ["description"]="MALAYALAM LETTER KA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D15, -- ക
+ category="lo",
+ description="MALAYALAM LETTER KA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D15,
},
[0x0D16]={
- ["category"]="lo",
- ["description"]="MALAYALAM LETTER KHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D16, -- ഖ
+ category="lo",
+ description="MALAYALAM LETTER KHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D16,
},
[0x0D17]={
- ["category"]="lo",
- ["description"]="MALAYALAM LETTER GA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D17, -- ഗ
+ category="lo",
+ description="MALAYALAM LETTER GA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D17,
},
[0x0D18]={
- ["category"]="lo",
- ["description"]="MALAYALAM LETTER GHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D18, -- ഘ
+ category="lo",
+ description="MALAYALAM LETTER GHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D18,
},
[0x0D19]={
- ["category"]="lo",
- ["description"]="MALAYALAM LETTER NGA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D19, -- ങ
+ category="lo",
+ description="MALAYALAM LETTER NGA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D19,
},
[0x0D1A]={
- ["category"]="lo",
- ["description"]="MALAYALAM LETTER CA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D1A, -- ച
+ category="lo",
+ description="MALAYALAM LETTER CA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D1A,
},
[0x0D1B]={
- ["category"]="lo",
- ["description"]="MALAYALAM LETTER CHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D1B, -- ഛ
+ category="lo",
+ description="MALAYALAM LETTER CHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D1B,
},
[0x0D1C]={
- ["category"]="lo",
- ["description"]="MALAYALAM LETTER JA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D1C, -- ജ
+ category="lo",
+ description="MALAYALAM LETTER JA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D1C,
},
[0x0D1D]={
- ["category"]="lo",
- ["description"]="MALAYALAM LETTER JHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D1D, -- ഝ
+ category="lo",
+ description="MALAYALAM LETTER JHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D1D,
},
[0x0D1E]={
- ["category"]="lo",
- ["description"]="MALAYALAM LETTER NYA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D1E, -- ഞ
+ category="lo",
+ description="MALAYALAM LETTER NYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D1E,
},
[0x0D1F]={
- ["category"]="lo",
- ["description"]="MALAYALAM LETTER TTA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D1F, -- ട
+ category="lo",
+ description="MALAYALAM LETTER TTA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D1F,
},
[0x0D20]={
- ["category"]="lo",
- ["description"]="MALAYALAM LETTER TTHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D20, -- ഠ
+ category="lo",
+ description="MALAYALAM LETTER TTHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D20,
},
[0x0D21]={
- ["category"]="lo",
- ["description"]="MALAYALAM LETTER DDA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D21, -- ഡ
+ category="lo",
+ description="MALAYALAM LETTER DDA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D21,
},
[0x0D22]={
- ["category"]="lo",
- ["description"]="MALAYALAM LETTER DDHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D22, -- ഢ
+ category="lo",
+ description="MALAYALAM LETTER DDHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D22,
},
[0x0D23]={
- ["category"]="lo",
- ["description"]="MALAYALAM LETTER NNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D23, -- ണ
+ category="lo",
+ description="MALAYALAM LETTER NNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D23,
},
[0x0D24]={
- ["category"]="lo",
- ["description"]="MALAYALAM LETTER TA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D24, -- ത
+ category="lo",
+ description="MALAYALAM LETTER TA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D24,
},
[0x0D25]={
- ["category"]="lo",
- ["description"]="MALAYALAM LETTER THA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D25, -- ഥ
+ category="lo",
+ description="MALAYALAM LETTER THA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D25,
},
[0x0D26]={
- ["category"]="lo",
- ["description"]="MALAYALAM LETTER DA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D26, -- ദ
+ category="lo",
+ description="MALAYALAM LETTER DA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D26,
},
[0x0D27]={
- ["category"]="lo",
- ["description"]="MALAYALAM LETTER DHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D27, -- ധ
+ category="lo",
+ description="MALAYALAM LETTER DHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D27,
},
[0x0D28]={
- ["category"]="lo",
- ["description"]="MALAYALAM LETTER NA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D28, -- ന
+ category="lo",
+ description="MALAYALAM LETTER NA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D28,
},
[0x0D2A]={
- ["category"]="lo",
- ["description"]="MALAYALAM LETTER PA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D2A, -- പ
+ category="lo",
+ description="MALAYALAM LETTER PA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D2A,
},
[0x0D2B]={
- ["category"]="lo",
- ["description"]="MALAYALAM LETTER PHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D2B, -- ഫ
+ category="lo",
+ description="MALAYALAM LETTER PHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D2B,
},
[0x0D2C]={
- ["category"]="lo",
- ["description"]="MALAYALAM LETTER BA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D2C, -- ബ
+ category="lo",
+ description="MALAYALAM LETTER BA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D2C,
},
[0x0D2D]={
- ["category"]="lo",
- ["description"]="MALAYALAM LETTER BHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D2D, -- ഭ
+ category="lo",
+ description="MALAYALAM LETTER BHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D2D,
},
[0x0D2E]={
- ["category"]="lo",
- ["description"]="MALAYALAM LETTER MA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D2E, -- മ
+ category="lo",
+ description="MALAYALAM LETTER MA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D2E,
},
[0x0D2F]={
- ["category"]="lo",
- ["description"]="MALAYALAM LETTER YA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D2F, -- യ
+ category="lo",
+ description="MALAYALAM LETTER YA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D2F,
},
[0x0D30]={
- ["category"]="lo",
- ["description"]="MALAYALAM LETTER RA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D30, -- ര
+ category="lo",
+ description="MALAYALAM LETTER RA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D30,
},
[0x0D31]={
- ["category"]="lo",
- ["description"]="MALAYALAM LETTER RRA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D31, -- റ
+ category="lo",
+ description="MALAYALAM LETTER RRA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D31,
},
[0x0D32]={
- ["category"]="lo",
- ["description"]="MALAYALAM LETTER LA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D32, -- ല
+ category="lo",
+ description="MALAYALAM LETTER LA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D32,
},
[0x0D33]={
- ["category"]="lo",
- ["description"]="MALAYALAM LETTER LLA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D33, -- ള
+ category="lo",
+ description="MALAYALAM LETTER LLA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D33,
},
[0x0D34]={
- ["category"]="lo",
- ["description"]="MALAYALAM LETTER LLLA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D34, -- ഴ
+ category="lo",
+ description="MALAYALAM LETTER LLLA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D34,
},
[0x0D35]={
- ["category"]="lo",
- ["description"]="MALAYALAM LETTER VA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D35, -- വ
+ category="lo",
+ description="MALAYALAM LETTER VA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D35,
},
[0x0D36]={
- ["category"]="lo",
- ["description"]="MALAYALAM LETTER SHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D36, -- ശ
+ category="lo",
+ description="MALAYALAM LETTER SHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D36,
},
[0x0D37]={
- ["category"]="lo",
- ["description"]="MALAYALAM LETTER SSA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D37, -- ഷ
+ category="lo",
+ description="MALAYALAM LETTER SSA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D37,
},
[0x0D38]={
- ["category"]="lo",
- ["description"]="MALAYALAM LETTER SA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D38, -- സ
+ category="lo",
+ description="MALAYALAM LETTER SA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D38,
},
[0x0D39]={
- ["category"]="lo",
- ["description"]="MALAYALAM LETTER HA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D39, -- ഹ
+ category="lo",
+ description="MALAYALAM LETTER HA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D39,
},
[0x0D3E]={
- ["category"]="mc",
- ["description"]="MALAYALAM VOWEL SIGN AA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0D3E, -- ാ
+ category="mc",
+ description="MALAYALAM VOWEL SIGN AA",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0D3E,
},
[0x0D3F]={
- ["category"]="mc",
- ["description"]="MALAYALAM VOWEL SIGN I",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0D3F, -- ി
+ category="mc",
+ description="MALAYALAM VOWEL SIGN I",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0D3F,
},
[0x0D40]={
- ["category"]="mc",
- ["description"]="MALAYALAM VOWEL SIGN II",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0D40, -- ീ
+ category="mc",
+ description="MALAYALAM VOWEL SIGN II",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0D40,
},
[0x0D41]={
- ["category"]="mn",
- ["description"]="MALAYALAM VOWEL SIGN U",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0D41, -- ു
+ category="mn",
+ description="MALAYALAM VOWEL SIGN U",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0D41,
},
[0x0D42]={
- ["category"]="mn",
- ["description"]="MALAYALAM VOWEL SIGN UU",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0D42, -- ൂ
+ category="mn",
+ description="MALAYALAM VOWEL SIGN UU",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0D42,
},
[0x0D43]={
- ["category"]="mn",
- ["description"]="MALAYALAM VOWEL SIGN VOCALIC R",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0D43, -- ൃ
+ category="mn",
+ description="MALAYALAM VOWEL SIGN VOCALIC R",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0D43,
},
[0x0D46]={
- ["category"]="mc",
- ["description"]="MALAYALAM VOWEL SIGN E",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0D46, -- െ
+ category="mc",
+ description="MALAYALAM VOWEL SIGN E",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0D46,
},
[0x0D47]={
- ["category"]="mc",
- ["description"]="MALAYALAM VOWEL SIGN EE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0D47, -- േ
+ category="mc",
+ description="MALAYALAM VOWEL SIGN EE",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0D47,
},
[0x0D48]={
- ["category"]="mc",
- ["description"]="MALAYALAM VOWEL SIGN AI",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0D48, -- ൈ
+ category="mc",
+ description="MALAYALAM VOWEL SIGN AI",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0D48,
},
[0x0D4A]={
- ["category"]="mc",
- ["description"]="MALAYALAM VOWEL SIGN O",
- ["linebreak"]="cm",
- ["specials"]={ "char", 0x0D46, 0x0D3E },
- ["unicodeslot"]=0x0D4A, -- ൊ
+ category="mc",
+ description="MALAYALAM VOWEL SIGN O",
+ direction="l",
+ linebreak="cm",
+ specials={ "char", 0x0D46, 0x0D3E },
+ unicodeslot=0x0D4A,
},
[0x0D4B]={
- ["category"]="mc",
- ["description"]="MALAYALAM VOWEL SIGN OO",
- ["linebreak"]="cm",
- ["specials"]={ "char", 0x0D47, 0x0D3E },
- ["unicodeslot"]=0x0D4B, -- ോ
+ category="mc",
+ description="MALAYALAM VOWEL SIGN OO",
+ direction="l",
+ linebreak="cm",
+ specials={ "char", 0x0D47, 0x0D3E },
+ unicodeslot=0x0D4B,
},
[0x0D4C]={
- ["category"]="mc",
- ["description"]="MALAYALAM VOWEL SIGN AU",
- ["linebreak"]="cm",
- ["specials"]={ "char", 0x0D46, 0x0D57 },
- ["unicodeslot"]=0x0D4C, -- ൌ
+ category="mc",
+ description="MALAYALAM VOWEL SIGN AU",
+ direction="l",
+ linebreak="cm",
+ specials={ "char", 0x0D46, 0x0D57 },
+ unicodeslot=0x0D4C,
},
[0x0D4D]={
- ["category"]="mn",
- ["description"]="MALAYALAM SIGN VIRAMA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0D4D, -- ്
+ category="mn",
+ description="MALAYALAM SIGN VIRAMA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0D4D,
},
[0x0D57]={
- ["category"]="mc",
- ["description"]="MALAYALAM AU LENGTH MARK",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0D57, -- ൗ
+ category="mc",
+ description="MALAYALAM AU LENGTH MARK",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0D57,
},
[0x0D60]={
- ["category"]="lo",
- ["description"]="MALAYALAM LETTER VOCALIC RR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D60, -- ൠ
+ category="lo",
+ description="MALAYALAM LETTER VOCALIC RR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D60,
},
[0x0D61]={
- ["category"]="lo",
- ["description"]="MALAYALAM LETTER VOCALIC LL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D61, -- ൡ
+ category="lo",
+ description="MALAYALAM LETTER VOCALIC LL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D61,
},
[0x0D66]={
- ["category"]="nd",
- ["description"]="MALAYALAM DIGIT ZERO",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0D66, -- ൦
+ category="nd",
+ description="MALAYALAM DIGIT ZERO",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0D66,
},
[0x0D67]={
- ["category"]="nd",
- ["description"]="MALAYALAM DIGIT ONE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0D67, -- ൧
+ category="nd",
+ description="MALAYALAM DIGIT ONE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0D67,
},
[0x0D68]={
- ["category"]="nd",
- ["description"]="MALAYALAM DIGIT TWO",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0D68, -- ൨
+ category="nd",
+ description="MALAYALAM DIGIT TWO",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0D68,
},
[0x0D69]={
- ["category"]="nd",
- ["description"]="MALAYALAM DIGIT THREE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0D69, -- ൩
+ category="nd",
+ description="MALAYALAM DIGIT THREE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0D69,
},
[0x0D6A]={
- ["category"]="nd",
- ["description"]="MALAYALAM DIGIT FOUR",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0D6A, -- ൪
+ category="nd",
+ description="MALAYALAM DIGIT FOUR",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0D6A,
},
[0x0D6B]={
- ["category"]="nd",
- ["description"]="MALAYALAM DIGIT FIVE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0D6B, -- ൫
+ category="nd",
+ description="MALAYALAM DIGIT FIVE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0D6B,
},
[0x0D6C]={
- ["category"]="nd",
- ["description"]="MALAYALAM DIGIT SIX",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0D6C, -- ൬
+ category="nd",
+ description="MALAYALAM DIGIT SIX",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0D6C,
},
[0x0D6D]={
- ["category"]="nd",
- ["description"]="MALAYALAM DIGIT SEVEN",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0D6D, -- ൭
+ category="nd",
+ description="MALAYALAM DIGIT SEVEN",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0D6D,
},
[0x0D6E]={
- ["category"]="nd",
- ["description"]="MALAYALAM DIGIT EIGHT",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0D6E, -- ൮
+ category="nd",
+ description="MALAYALAM DIGIT EIGHT",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0D6E,
},
[0x0D6F]={
- ["category"]="nd",
- ["description"]="MALAYALAM DIGIT NINE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0D6F, -- ൯
+ category="nd",
+ description="MALAYALAM DIGIT NINE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0D6F,
},
[0x0D82]={
- ["category"]="mc",
- ["description"]="SINHALA SIGN ANUSVARAYA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0D82, -- ං
+ category="mc",
+ description="SINHALA SIGN ANUSVARAYA",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0D82,
},
[0x0D83]={
- ["category"]="mc",
- ["description"]="SINHALA SIGN VISARGAYA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0D83, -- ඃ
+ category="mc",
+ description="SINHALA SIGN VISARGAYA",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0D83,
},
[0x0D85]={
- ["category"]="lo",
- ["description"]="SINHALA LETTER AYANNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D85, -- අ
+ category="lo",
+ description="SINHALA LETTER AYANNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D85,
},
[0x0D86]={
- ["category"]="lo",
- ["description"]="SINHALA LETTER AAYANNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D86, -- ආ
+ category="lo",
+ description="SINHALA LETTER AAYANNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D86,
},
[0x0D87]={
- ["category"]="lo",
- ["description"]="SINHALA LETTER AEYANNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D87, -- ඇ
+ category="lo",
+ description="SINHALA LETTER AEYANNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D87,
},
[0x0D88]={
- ["category"]="lo",
- ["description"]="SINHALA LETTER AEEYANNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D88, -- ඈ
+ category="lo",
+ description="SINHALA LETTER AEEYANNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D88,
},
[0x0D89]={
- ["category"]="lo",
- ["description"]="SINHALA LETTER IYANNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D89, -- ඉ
+ category="lo",
+ description="SINHALA LETTER IYANNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D89,
},
[0x0D8A]={
- ["category"]="lo",
- ["description"]="SINHALA LETTER IIYANNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D8A, -- ඊ
+ category="lo",
+ description="SINHALA LETTER IIYANNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D8A,
},
[0x0D8B]={
- ["category"]="lo",
- ["description"]="SINHALA LETTER UYANNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D8B, -- උ
+ category="lo",
+ description="SINHALA LETTER UYANNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D8B,
},
[0x0D8C]={
- ["category"]="lo",
- ["description"]="SINHALA LETTER UUYANNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D8C, -- ඌ
+ category="lo",
+ description="SINHALA LETTER UUYANNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D8C,
},
[0x0D8D]={
- ["category"]="lo",
- ["description"]="SINHALA LETTER IRUYANNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D8D, -- ඍ
+ category="lo",
+ description="SINHALA LETTER IRUYANNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D8D,
},
[0x0D8E]={
- ["category"]="lo",
- ["description"]="SINHALA LETTER IRUUYANNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D8E, -- ඎ
+ category="lo",
+ description="SINHALA LETTER IRUUYANNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D8E,
},
[0x0D8F]={
- ["category"]="lo",
- ["description"]="SINHALA LETTER ILUYANNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D8F, -- ඏ
+ category="lo",
+ description="SINHALA LETTER ILUYANNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D8F,
},
[0x0D90]={
- ["category"]="lo",
- ["description"]="SINHALA LETTER ILUUYANNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D90, -- ඐ
+ category="lo",
+ description="SINHALA LETTER ILUUYANNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D90,
},
[0x0D91]={
- ["category"]="lo",
- ["description"]="SINHALA LETTER EYANNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D91, -- එ
+ category="lo",
+ description="SINHALA LETTER EYANNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D91,
},
[0x0D92]={
- ["category"]="lo",
- ["description"]="SINHALA LETTER EEYANNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D92, -- ඒ
+ category="lo",
+ description="SINHALA LETTER EEYANNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D92,
},
[0x0D93]={
- ["category"]="lo",
- ["description"]="SINHALA LETTER AIYANNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D93, -- ඓ
+ category="lo",
+ description="SINHALA LETTER AIYANNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D93,
},
[0x0D94]={
- ["category"]="lo",
- ["description"]="SINHALA LETTER OYANNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D94, -- ඔ
+ category="lo",
+ description="SINHALA LETTER OYANNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D94,
},
[0x0D95]={
- ["category"]="lo",
- ["description"]="SINHALA LETTER OOYANNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D95, -- ඕ
+ category="lo",
+ description="SINHALA LETTER OOYANNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D95,
},
[0x0D96]={
- ["category"]="lo",
- ["description"]="SINHALA LETTER AUYANNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D96, -- ඖ
+ category="lo",
+ description="SINHALA LETTER AUYANNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D96,
},
[0x0D9A]={
- ["category"]="lo",
- ["description"]="SINHALA LETTER ALPAPRAANA KAYANNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D9A, -- ක
+ category="lo",
+ description="SINHALA LETTER ALPAPRAANA KAYANNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D9A,
},
[0x0D9B]={
- ["category"]="lo",
- ["description"]="SINHALA LETTER MAHAAPRAANA KAYANNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D9B, -- ඛ
+ category="lo",
+ description="SINHALA LETTER MAHAAPRAANA KAYANNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D9B,
},
[0x0D9C]={
- ["category"]="lo",
- ["description"]="SINHALA LETTER ALPAPRAANA GAYANNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D9C, -- ග
+ category="lo",
+ description="SINHALA LETTER ALPAPRAANA GAYANNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D9C,
},
[0x0D9D]={
- ["category"]="lo",
- ["description"]="SINHALA LETTER MAHAAPRAANA GAYANNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D9D, -- ඝ
+ category="lo",
+ description="SINHALA LETTER MAHAAPRAANA GAYANNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D9D,
},
[0x0D9E]={
- ["category"]="lo",
- ["description"]="SINHALA LETTER KANTAJA NAASIKYAYA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D9E, -- ඞ
+ category="lo",
+ description="SINHALA LETTER KANTAJA NAASIKYAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D9E,
},
[0x0D9F]={
- ["category"]="lo",
- ["description"]="SINHALA LETTER SANYAKA GAYANNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0D9F, -- ඟ
+ category="lo",
+ description="SINHALA LETTER SANYAKA GAYANNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0D9F,
},
[0x0DA0]={
- ["category"]="lo",
- ["description"]="SINHALA LETTER ALPAPRAANA CAYANNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0DA0, -- ච
+ category="lo",
+ description="SINHALA LETTER ALPAPRAANA CAYANNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0DA0,
},
[0x0DA1]={
- ["category"]="lo",
- ["description"]="SINHALA LETTER MAHAAPRAANA CAYANNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0DA1, -- ඡ
+ category="lo",
+ description="SINHALA LETTER MAHAAPRAANA CAYANNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0DA1,
},
[0x0DA2]={
- ["category"]="lo",
- ["description"]="SINHALA LETTER ALPAPRAANA JAYANNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0DA2, -- ජ
+ category="lo",
+ description="SINHALA LETTER ALPAPRAANA JAYANNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0DA2,
},
[0x0DA3]={
- ["category"]="lo",
- ["description"]="SINHALA LETTER MAHAAPRAANA JAYANNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0DA3, -- ඣ
+ category="lo",
+ description="SINHALA LETTER MAHAAPRAANA JAYANNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0DA3,
},
[0x0DA4]={
- ["category"]="lo",
- ["description"]="SINHALA LETTER TAALUJA NAASIKYAYA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0DA4, -- ඤ
+ category="lo",
+ description="SINHALA LETTER TAALUJA NAASIKYAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0DA4,
},
[0x0DA5]={
- ["category"]="lo",
- ["description"]="SINHALA LETTER TAALUJA SANYOOGA NAAKSIKYAYA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0DA5, -- ඥ
+ category="lo",
+ description="SINHALA LETTER TAALUJA SANYOOGA NAAKSIKYAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0DA5,
},
[0x0DA6]={
- ["category"]="lo",
- ["description"]="SINHALA LETTER SANYAKA JAYANNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0DA6, -- ඦ
+ category="lo",
+ description="SINHALA LETTER SANYAKA JAYANNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0DA6,
},
[0x0DA7]={
- ["category"]="lo",
- ["description"]="SINHALA LETTER ALPAPRAANA TTAYANNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0DA7, -- ට
+ category="lo",
+ description="SINHALA LETTER ALPAPRAANA TTAYANNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0DA7,
},
[0x0DA8]={
- ["category"]="lo",
- ["description"]="SINHALA LETTER MAHAAPRAANA TTAYANNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0DA8, -- ඨ
+ category="lo",
+ description="SINHALA LETTER MAHAAPRAANA TTAYANNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0DA8,
},
[0x0DA9]={
- ["category"]="lo",
- ["description"]="SINHALA LETTER ALPAPRAANA DDAYANNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0DA9, -- ඩ
+ category="lo",
+ description="SINHALA LETTER ALPAPRAANA DDAYANNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0DA9,
},
[0x0DAA]={
- ["category"]="lo",
- ["description"]="SINHALA LETTER MAHAAPRAANA DDAYANNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0DAA, -- ඪ
+ category="lo",
+ description="SINHALA LETTER MAHAAPRAANA DDAYANNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0DAA,
},
[0x0DAB]={
- ["category"]="lo",
- ["description"]="SINHALA LETTER MUURDHAJA NAYANNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0DAB, -- ණ
+ category="lo",
+ description="SINHALA LETTER MUURDHAJA NAYANNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0DAB,
},
[0x0DAC]={
- ["category"]="lo",
- ["description"]="SINHALA LETTER SANYAKA DDAYANNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0DAC, -- ඬ
+ category="lo",
+ description="SINHALA LETTER SANYAKA DDAYANNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0DAC,
},
[0x0DAD]={
- ["category"]="lo",
- ["description"]="SINHALA LETTER ALPAPRAANA TAYANNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0DAD, -- ත
+ category="lo",
+ description="SINHALA LETTER ALPAPRAANA TAYANNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0DAD,
},
[0x0DAE]={
- ["category"]="lo",
- ["description"]="SINHALA LETTER MAHAAPRAANA TAYANNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0DAE, -- ථ
+ category="lo",
+ description="SINHALA LETTER MAHAAPRAANA TAYANNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0DAE,
},
[0x0DAF]={
- ["category"]="lo",
- ["description"]="SINHALA LETTER ALPAPRAANA DAYANNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0DAF, -- ද
+ category="lo",
+ description="SINHALA LETTER ALPAPRAANA DAYANNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0DAF,
},
[0x0DB0]={
- ["category"]="lo",
- ["description"]="SINHALA LETTER MAHAAPRAANA DAYANNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0DB0, -- ධ
+ category="lo",
+ description="SINHALA LETTER MAHAAPRAANA DAYANNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0DB0,
},
[0x0DB1]={
- ["category"]="lo",
- ["description"]="SINHALA LETTER DANTAJA NAYANNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0DB1, -- න
+ category="lo",
+ description="SINHALA LETTER DANTAJA NAYANNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0DB1,
},
[0x0DB3]={
- ["category"]="lo",
- ["description"]="SINHALA LETTER SANYAKA DAYANNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0DB3, -- ඳ
+ category="lo",
+ description="SINHALA LETTER SANYAKA DAYANNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0DB3,
},
[0x0DB4]={
- ["category"]="lo",
- ["description"]="SINHALA LETTER ALPAPRAANA PAYANNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0DB4, -- ප
+ category="lo",
+ description="SINHALA LETTER ALPAPRAANA PAYANNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0DB4,
},
[0x0DB5]={
- ["category"]="lo",
- ["description"]="SINHALA LETTER MAHAAPRAANA PAYANNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0DB5, -- ඵ
+ category="lo",
+ description="SINHALA LETTER MAHAAPRAANA PAYANNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0DB5,
},
[0x0DB6]={
- ["category"]="lo",
- ["description"]="SINHALA LETTER ALPAPRAANA BAYANNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0DB6, -- බ
+ category="lo",
+ description="SINHALA LETTER ALPAPRAANA BAYANNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0DB6,
},
[0x0DB7]={
- ["category"]="lo",
- ["description"]="SINHALA LETTER MAHAAPRAANA BAYANNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0DB7, -- භ
+ category="lo",
+ description="SINHALA LETTER MAHAAPRAANA BAYANNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0DB7,
},
[0x0DB8]={
- ["category"]="lo",
- ["description"]="SINHALA LETTER MAYANNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0DB8, -- ම
+ category="lo",
+ description="SINHALA LETTER MAYANNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0DB8,
},
[0x0DB9]={
- ["category"]="lo",
- ["description"]="SINHALA LETTER AMBA BAYANNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0DB9, -- ඹ
+ category="lo",
+ description="SINHALA LETTER AMBA BAYANNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0DB9,
},
[0x0DBA]={
- ["category"]="lo",
- ["description"]="SINHALA LETTER YAYANNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0DBA, -- ය
+ category="lo",
+ description="SINHALA LETTER YAYANNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0DBA,
},
[0x0DBB]={
- ["category"]="lo",
- ["description"]="SINHALA LETTER RAYANNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0DBB, -- ර
+ category="lo",
+ description="SINHALA LETTER RAYANNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0DBB,
},
[0x0DBD]={
- ["category"]="lo",
- ["description"]="SINHALA LETTER DANTAJA LAYANNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0DBD, -- ල
+ category="lo",
+ description="SINHALA LETTER DANTAJA LAYANNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0DBD,
},
[0x0DC0]={
- ["category"]="lo",
- ["description"]="SINHALA LETTER VAYANNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0DC0, -- ව
+ category="lo",
+ description="SINHALA LETTER VAYANNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0DC0,
},
[0x0DC1]={
- ["category"]="lo",
- ["description"]="SINHALA LETTER TAALUJA SAYANNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0DC1, -- ශ
+ category="lo",
+ description="SINHALA LETTER TAALUJA SAYANNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0DC1,
},
[0x0DC2]={
- ["category"]="lo",
- ["description"]="SINHALA LETTER MUURDHAJA SAYANNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0DC2, -- ෂ
+ category="lo",
+ description="SINHALA LETTER MUURDHAJA SAYANNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0DC2,
},
[0x0DC3]={
- ["category"]="lo",
- ["description"]="SINHALA LETTER DANTAJA SAYANNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0DC3, -- ස
+ category="lo",
+ description="SINHALA LETTER DANTAJA SAYANNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0DC3,
},
[0x0DC4]={
- ["category"]="lo",
- ["description"]="SINHALA LETTER HAYANNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0DC4, -- හ
+ category="lo",
+ description="SINHALA LETTER HAYANNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0DC4,
},
[0x0DC5]={
- ["category"]="lo",
- ["description"]="SINHALA LETTER MUURDHAJA LAYANNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0DC5, -- ළ
+ category="lo",
+ description="SINHALA LETTER MUURDHAJA LAYANNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0DC5,
},
[0x0DC6]={
- ["category"]="lo",
- ["description"]="SINHALA LETTER FAYANNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0DC6, -- ෆ
+ category="lo",
+ description="SINHALA LETTER FAYANNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0DC6,
},
[0x0DCA]={
- ["category"]="mn",
- ["description"]="SINHALA SIGN AL-LAKUNA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0DCA, -- ්
+ category="mn",
+ description="SINHALA SIGN AL-LAKUNA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0DCA,
},
[0x0DCF]={
- ["category"]="mc",
- ["description"]="SINHALA VOWEL SIGN AELA-PILLA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0DCF, -- ා
+ category="mc",
+ description="SINHALA VOWEL SIGN AELA-PILLA",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0DCF,
},
[0x0DD0]={
- ["category"]="mc",
- ["description"]="SINHALA VOWEL SIGN KETTI AEDA-PILLA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0DD0, -- ැ
+ category="mc",
+ description="SINHALA VOWEL SIGN KETTI AEDA-PILLA",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0DD0,
},
[0x0DD1]={
- ["category"]="mc",
- ["description"]="SINHALA VOWEL SIGN DIGA AEDA-PILLA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0DD1, -- ෑ
+ category="mc",
+ description="SINHALA VOWEL SIGN DIGA AEDA-PILLA",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0DD1,
},
[0x0DD2]={
- ["category"]="mn",
- ["description"]="SINHALA VOWEL SIGN KETTI IS-PILLA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0DD2, -- ි
+ category="mn",
+ description="SINHALA VOWEL SIGN KETTI IS-PILLA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0DD2,
},
[0x0DD3]={
- ["category"]="mn",
- ["description"]="SINHALA VOWEL SIGN DIGA IS-PILLA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0DD3, -- ී
+ category="mn",
+ description="SINHALA VOWEL SIGN DIGA IS-PILLA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0DD3,
},
[0x0DD4]={
- ["category"]="mn",
- ["description"]="SINHALA VOWEL SIGN KETTI PAA-PILLA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0DD4, -- ු
+ category="mn",
+ description="SINHALA VOWEL SIGN KETTI PAA-PILLA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0DD4,
},
[0x0DD6]={
- ["category"]="mn",
- ["description"]="SINHALA VOWEL SIGN DIGA PAA-PILLA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0DD6, -- ූ
+ category="mn",
+ description="SINHALA VOWEL SIGN DIGA PAA-PILLA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0DD6,
},
[0x0DD8]={
- ["category"]="mc",
- ["description"]="SINHALA VOWEL SIGN GAETTA-PILLA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0DD8, -- ෘ
+ category="mc",
+ description="SINHALA VOWEL SIGN GAETTA-PILLA",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0DD8,
},
[0x0DD9]={
- ["category"]="mc",
- ["description"]="SINHALA VOWEL SIGN KOMBUVA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0DD9, -- ෙ
+ category="mc",
+ description="SINHALA VOWEL SIGN KOMBUVA",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0DD9,
},
[0x0DDA]={
- ["category"]="mc",
- ["description"]="SINHALA VOWEL SIGN DIGA KOMBUVA",
- ["linebreak"]="cm",
- ["specials"]={ "char", 0x0DD9, 0x0DCA },
- ["unicodeslot"]=0x0DDA, -- ේ
+ category="mc",
+ description="SINHALA VOWEL SIGN DIGA KOMBUVA",
+ direction="l",
+ linebreak="cm",
+ specials={ "char", 0x0DD9, 0x0DCA },
+ unicodeslot=0x0DDA,
},
[0x0DDB]={
- ["category"]="mc",
- ["description"]="SINHALA VOWEL SIGN KOMBU DEKA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0DDB, -- ෛ
+ category="mc",
+ description="SINHALA VOWEL SIGN KOMBU DEKA",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0DDB,
},
[0x0DDC]={
- ["category"]="mc",
- ["description"]="SINHALA VOWEL SIGN KOMBUVA HAA AELA-PILLA",
- ["linebreak"]="cm",
- ["specials"]={ "char", 0x0DD9, 0x0DCF },
- ["unicodeslot"]=0x0DDC, -- ො
+ category="mc",
+ description="SINHALA VOWEL SIGN KOMBUVA HAA AELA-PILLA",
+ direction="l",
+ linebreak="cm",
+ specials={ "char", 0x0DD9, 0x0DCF },
+ unicodeslot=0x0DDC,
},
[0x0DDD]={
- ["category"]="mc",
- ["description"]="SINHALA VOWEL SIGN KOMBUVA HAA DIGA AELA-PILLA",
- ["linebreak"]="cm",
- ["specials"]={ "char", 0x0DDC, 0x0DCA },
- ["unicodeslot"]=0x0DDD, -- ෝ
+ category="mc",
+ description="SINHALA VOWEL SIGN KOMBUVA HAA DIGA AELA-PILLA",
+ direction="l",
+ linebreak="cm",
+ specials={ "char", 0x0DDC, 0x0DCA },
+ unicodeslot=0x0DDD,
},
[0x0DDE]={
- ["category"]="mc",
- ["description"]="SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA",
- ["linebreak"]="cm",
- ["specials"]={ "char", 0x0DD9, 0x0DDF },
- ["unicodeslot"]=0x0DDE, -- ෞ
+ category="mc",
+ description="SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA",
+ direction="l",
+ linebreak="cm",
+ specials={ "char", 0x0DD9, 0x0DDF },
+ unicodeslot=0x0DDE,
},
[0x0DDF]={
- ["category"]="mc",
- ["description"]="SINHALA VOWEL SIGN GAYANUKITTA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0DDF, -- ෟ
+ category="mc",
+ description="SINHALA VOWEL SIGN GAYANUKITTA",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0DDF,
},
[0x0DF2]={
- ["category"]="mc",
- ["description"]="SINHALA VOWEL SIGN DIGA GAETTA-PILLA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0DF2, -- ෲ
+ category="mc",
+ description="SINHALA VOWEL SIGN DIGA GAETTA-PILLA",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0DF2,
},
[0x0DF3]={
- ["category"]="mc",
- ["description"]="SINHALA VOWEL SIGN DIGA GAYANUKITTA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0DF3, -- ෳ
+ category="mc",
+ description="SINHALA VOWEL SIGN DIGA GAYANUKITTA",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0DF3,
},
[0x0DF4]={
- ["category"]="po",
- ["description"]="SINHALA PUNCTUATION KUNDDALIYA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0DF4, -- ෴
+ category="po",
+ description="SINHALA PUNCTUATION KUNDDALIYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0DF4,
},
[0x0E01]={
- ["category"]="lo",
- ["description"]="THAI CHARACTER KO KAI",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E01, -- ก
+ category="lo",
+ description="THAI CHARACTER KO KAI",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E01,
},
[0x0E02]={
- ["category"]="lo",
- ["description"]="THAI CHARACTER KHO KHAI",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E02, -- ข
+ category="lo",
+ description="THAI CHARACTER KHO KHAI",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E02,
},
[0x0E03]={
- ["category"]="lo",
- ["description"]="THAI CHARACTER KHO KHUAT",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E03, -- ฃ
+ category="lo",
+ description="THAI CHARACTER KHO KHUAT",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E03,
},
[0x0E04]={
- ["category"]="lo",
- ["description"]="THAI CHARACTER KHO KHWAI",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E04, -- ค
+ category="lo",
+ description="THAI CHARACTER KHO KHWAI",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E04,
},
[0x0E05]={
- ["category"]="lo",
- ["description"]="THAI CHARACTER KHO KHON",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E05, -- ฅ
+ category="lo",
+ description="THAI CHARACTER KHO KHON",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E05,
},
[0x0E06]={
- ["category"]="lo",
- ["description"]="THAI CHARACTER KHO RAKHANG",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E06, -- ฆ
+ category="lo",
+ description="THAI CHARACTER KHO RAKHANG",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E06,
},
[0x0E07]={
- ["category"]="lo",
- ["description"]="THAI CHARACTER NGO NGU",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E07, -- ง
+ category="lo",
+ description="THAI CHARACTER NGO NGU",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E07,
},
[0x0E08]={
- ["category"]="lo",
- ["description"]="THAI CHARACTER CHO CHAN",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E08, -- จ
+ category="lo",
+ description="THAI CHARACTER CHO CHAN",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E08,
},
[0x0E09]={
- ["category"]="lo",
- ["description"]="THAI CHARACTER CHO CHING",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E09, -- ฉ
+ category="lo",
+ description="THAI CHARACTER CHO CHING",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E09,
},
[0x0E0A]={
- ["category"]="lo",
- ["description"]="THAI CHARACTER CHO CHANG",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E0A, -- ช
+ category="lo",
+ description="THAI CHARACTER CHO CHANG",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E0A,
},
[0x0E0B]={
- ["category"]="lo",
- ["description"]="THAI CHARACTER SO SO",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E0B, -- ซ
+ category="lo",
+ description="THAI CHARACTER SO SO",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E0B,
},
[0x0E0C]={
- ["category"]="lo",
- ["description"]="THAI CHARACTER CHO CHOE",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E0C, -- ฌ
+ category="lo",
+ description="THAI CHARACTER CHO CHOE",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E0C,
},
[0x0E0D]={
- ["category"]="lo",
- ["description"]="THAI CHARACTER YO YING",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E0D, -- ญ
+ category="lo",
+ description="THAI CHARACTER YO YING",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E0D,
},
[0x0E0E]={
- ["category"]="lo",
- ["description"]="THAI CHARACTER DO CHADA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E0E, -- ฎ
+ category="lo",
+ description="THAI CHARACTER DO CHADA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E0E,
},
[0x0E0F]={
- ["category"]="lo",
- ["description"]="THAI CHARACTER TO PATAK",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E0F, -- ฏ
+ category="lo",
+ description="THAI CHARACTER TO PATAK",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E0F,
},
[0x0E10]={
- ["category"]="lo",
- ["description"]="THAI CHARACTER THO THAN",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E10, -- ฐ
+ category="lo",
+ description="THAI CHARACTER THO THAN",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E10,
},
[0x0E11]={
- ["category"]="lo",
- ["description"]="THAI CHARACTER THO NANGMONTHO",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E11, -- ฑ
+ category="lo",
+ description="THAI CHARACTER THO NANGMONTHO",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E11,
},
[0x0E12]={
- ["category"]="lo",
- ["description"]="THAI CHARACTER THO PHUTHAO",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E12, -- ฒ
+ category="lo",
+ description="THAI CHARACTER THO PHUTHAO",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E12,
},
[0x0E13]={
- ["category"]="lo",
- ["description"]="THAI CHARACTER NO NEN",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E13, -- ณ
+ category="lo",
+ description="THAI CHARACTER NO NEN",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E13,
},
[0x0E14]={
- ["category"]="lo",
- ["description"]="THAI CHARACTER DO DEK",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E14, -- ด
+ category="lo",
+ description="THAI CHARACTER DO DEK",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E14,
},
[0x0E15]={
- ["category"]="lo",
- ["description"]="THAI CHARACTER TO TAO",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E15, -- ต
+ category="lo",
+ description="THAI CHARACTER TO TAO",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E15,
},
[0x0E16]={
- ["category"]="lo",
- ["description"]="THAI CHARACTER THO THUNG",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E16, -- ถ
+ category="lo",
+ description="THAI CHARACTER THO THUNG",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E16,
},
[0x0E17]={
- ["category"]="lo",
- ["description"]="THAI CHARACTER THO THAHAN",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E17, -- ท
+ category="lo",
+ description="THAI CHARACTER THO THAHAN",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E17,
},
[0x0E18]={
- ["category"]="lo",
- ["description"]="THAI CHARACTER THO THONG",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E18, -- ธ
+ category="lo",
+ description="THAI CHARACTER THO THONG",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E18,
},
[0x0E19]={
- ["category"]="lo",
- ["description"]="THAI CHARACTER NO NU",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E19, -- น
+ category="lo",
+ description="THAI CHARACTER NO NU",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E19,
},
[0x0E1A]={
- ["category"]="lo",
- ["description"]="THAI CHARACTER BO BAIMAI",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E1A, -- บ
+ category="lo",
+ description="THAI CHARACTER BO BAIMAI",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E1A,
},
[0x0E1B]={
- ["category"]="lo",
- ["description"]="THAI CHARACTER PO PLA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E1B, -- ป
+ category="lo",
+ description="THAI CHARACTER PO PLA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E1B,
},
[0x0E1C]={
- ["category"]="lo",
- ["description"]="THAI CHARACTER PHO PHUNG",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E1C, -- ผ
+ category="lo",
+ description="THAI CHARACTER PHO PHUNG",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E1C,
},
[0x0E1D]={
- ["category"]="lo",
- ["description"]="THAI CHARACTER FO FA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E1D, -- ฝ
+ category="lo",
+ description="THAI CHARACTER FO FA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E1D,
},
[0x0E1E]={
- ["category"]="lo",
- ["description"]="THAI CHARACTER PHO PHAN",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E1E, -- พ
+ category="lo",
+ description="THAI CHARACTER PHO PHAN",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E1E,
},
[0x0E1F]={
- ["category"]="lo",
- ["description"]="THAI CHARACTER FO FAN",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E1F, -- ฟ
+ category="lo",
+ description="THAI CHARACTER FO FAN",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E1F,
},
[0x0E20]={
- ["category"]="lo",
- ["description"]="THAI CHARACTER PHO SAMPHAO",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E20, -- ภ
+ category="lo",
+ description="THAI CHARACTER PHO SAMPHAO",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E20,
},
[0x0E21]={
- ["category"]="lo",
- ["description"]="THAI CHARACTER MO MA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E21, -- ม
+ category="lo",
+ description="THAI CHARACTER MO MA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E21,
},
[0x0E22]={
- ["category"]="lo",
- ["description"]="THAI CHARACTER YO YAK",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E22, -- ย
+ category="lo",
+ description="THAI CHARACTER YO YAK",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E22,
},
[0x0E23]={
- ["category"]="lo",
- ["description"]="THAI CHARACTER RO RUA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E23, -- ร
+ category="lo",
+ description="THAI CHARACTER RO RUA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E23,
},
[0x0E24]={
- ["category"]="lo",
- ["description"]="THAI CHARACTER RU",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E24, -- ฤ
+ category="lo",
+ description="THAI CHARACTER RU",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E24,
},
[0x0E25]={
- ["category"]="lo",
- ["description"]="THAI CHARACTER LO LING",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E25, -- ล
+ category="lo",
+ description="THAI CHARACTER LO LING",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E25,
},
[0x0E26]={
- ["category"]="lo",
- ["description"]="THAI CHARACTER LU",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E26, -- ฦ
+ category="lo",
+ description="THAI CHARACTER LU",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E26,
},
[0x0E27]={
- ["category"]="lo",
- ["description"]="THAI CHARACTER WO WAEN",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E27, -- ว
+ category="lo",
+ description="THAI CHARACTER WO WAEN",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E27,
},
[0x0E28]={
- ["category"]="lo",
- ["description"]="THAI CHARACTER SO SALA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E28, -- ศ
+ category="lo",
+ description="THAI CHARACTER SO SALA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E28,
},
[0x0E29]={
- ["category"]="lo",
- ["description"]="THAI CHARACTER SO RUSI",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E29, -- ษ
+ category="lo",
+ description="THAI CHARACTER SO RUSI",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E29,
},
[0x0E2A]={
- ["category"]="lo",
- ["description"]="THAI CHARACTER SO SUA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E2A, -- ส
+ category="lo",
+ description="THAI CHARACTER SO SUA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E2A,
},
[0x0E2B]={
- ["category"]="lo",
- ["description"]="THAI CHARACTER HO HIP",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E2B, -- ห
+ category="lo",
+ description="THAI CHARACTER HO HIP",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E2B,
},
[0x0E2C]={
- ["category"]="lo",
- ["description"]="THAI CHARACTER LO CHULA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E2C, -- ฬ
+ category="lo",
+ description="THAI CHARACTER LO CHULA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E2C,
},
[0x0E2D]={
- ["category"]="lo",
- ["description"]="THAI CHARACTER O ANG",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E2D, -- อ
+ category="lo",
+ description="THAI CHARACTER O ANG",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E2D,
},
[0x0E2E]={
- ["category"]="lo",
- ["description"]="THAI CHARACTER HO NOKHUK",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E2E, -- ฮ
+ category="lo",
+ description="THAI CHARACTER HO NOKHUK",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E2E,
},
[0x0E2F]={
- ["category"]="lo",
- ["description"]="THAI CHARACTER PAIYANNOI",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E2F, -- ฯ
+ category="lo",
+ description="THAI CHARACTER PAIYANNOI",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E2F,
},
[0x0E30]={
- ["category"]="lo",
- ["description"]="THAI CHARACTER SARA A",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E30, -- ะ
+ category="lo",
+ description="THAI CHARACTER SARA A",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E30,
},
[0x0E31]={
- ["category"]="mn",
- ["description"]="THAI CHARACTER MAI HAN-AKAT",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E31, -- ั
+ category="mn",
+ description="THAI CHARACTER MAI HAN-AKAT",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x0E31,
},
[0x0E32]={
- ["category"]="lo",
- ["description"]="THAI CHARACTER SARA AA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E32, -- า
+ category="lo",
+ description="THAI CHARACTER SARA AA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E32,
},
[0x0E33]={
- ["category"]="lo",
- ["description"]="THAI CHARACTER SARA AM",
- ["linebreak"]="sa",
- ["specials"]={ "compat", 0x0E4D, 0x0E32 },
- ["unicodeslot"]=0x0E33, -- ำ
+ category="lo",
+ description="THAI CHARACTER SARA AM",
+ direction="l",
+ linebreak="sa",
+ specials={ "compat", 0x0E4D, 0x0E32 },
+ unicodeslot=0x0E33,
},
[0x0E34]={
- ["category"]="mn",
- ["description"]="THAI CHARACTER SARA I",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E34, -- ิ
+ category="mn",
+ description="THAI CHARACTER SARA I",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x0E34,
},
[0x0E35]={
- ["category"]="mn",
- ["description"]="THAI CHARACTER SARA II",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E35, -- ี
+ category="mn",
+ description="THAI CHARACTER SARA II",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x0E35,
},
[0x0E36]={
- ["category"]="mn",
- ["description"]="THAI CHARACTER SARA UE",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E36, -- ึ
+ category="mn",
+ description="THAI CHARACTER SARA UE",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x0E36,
},
[0x0E37]={
- ["category"]="mn",
- ["description"]="THAI CHARACTER SARA UEE",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E37, -- ื
+ category="mn",
+ description="THAI CHARACTER SARA UEE",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x0E37,
},
[0x0E38]={
- ["category"]="mn",
- ["description"]="THAI CHARACTER SARA U",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E38, -- ุ
+ category="mn",
+ description="THAI CHARACTER SARA U",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x0E38,
},
[0x0E39]={
- ["category"]="mn",
- ["description"]="THAI CHARACTER SARA UU",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E39, -- ู
+ category="mn",
+ description="THAI CHARACTER SARA UU",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x0E39,
},
[0x0E3A]={
- ["category"]="mn",
- ["description"]="THAI CHARACTER PHINTHU",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E3A, -- ฺ
+ category="mn",
+ description="THAI CHARACTER PHINTHU",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x0E3A,
},
[0x0E3F]={
- ["category"]="sc",
- ["description"]="THAI CURRENCY SYMBOL BAHT",
- ["linebreak"]="pr",
- ["unicodeslot"]=0x0E3F, -- ฿
+ category="sc",
+ description="THAI CURRENCY SYMBOL BAHT",
+ direction="et",
+ linebreak="pr",
+ unicodeslot=0x0E3F,
},
[0x0E40]={
- ["category"]="lo",
- ["description"]="THAI CHARACTER SARA E",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E40, -- เ
+ category="lo",
+ description="THAI CHARACTER SARA E",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E40,
},
[0x0E41]={
- ["category"]="lo",
- ["description"]="THAI CHARACTER SARA AE",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E41, -- แ
+ category="lo",
+ description="THAI CHARACTER SARA AE",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E41,
},
[0x0E42]={
- ["category"]="lo",
- ["description"]="THAI CHARACTER SARA O",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E42, -- โ
+ category="lo",
+ description="THAI CHARACTER SARA O",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E42,
},
[0x0E43]={
- ["category"]="lo",
- ["description"]="THAI CHARACTER SARA AI MAIMUAN",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E43, -- ใ
+ category="lo",
+ description="THAI CHARACTER SARA AI MAIMUAN",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E43,
},
[0x0E44]={
- ["category"]="lo",
- ["description"]="THAI CHARACTER SARA AI MAIMALAI",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E44, -- ไ
+ category="lo",
+ description="THAI CHARACTER SARA AI MAIMALAI",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E44,
},
[0x0E45]={
- ["category"]="lo",
- ["description"]="THAI CHARACTER LAKKHANGYAO",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E45, -- ๅ
+ category="lo",
+ description="THAI CHARACTER LAKKHANGYAO",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E45,
},
[0x0E46]={
- ["category"]="lm",
- ["description"]="THAI CHARACTER MAIYAMOK",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E46, -- ๆ
+ category="lm",
+ description="THAI CHARACTER MAIYAMOK",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E46,
},
[0x0E47]={
- ["category"]="mn",
- ["description"]="THAI CHARACTER MAITAIKHU",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E47, -- ็
+ category="mn",
+ description="THAI CHARACTER MAITAIKHU",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x0E47,
},
[0x0E48]={
- ["category"]="mn",
- ["description"]="THAI CHARACTER MAI EK",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E48, -- ่
+ category="mn",
+ description="THAI CHARACTER MAI EK",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x0E48,
},
[0x0E49]={
- ["category"]="mn",
- ["description"]="THAI CHARACTER MAI THO",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E49, -- ้
+ category="mn",
+ description="THAI CHARACTER MAI THO",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x0E49,
},
[0x0E4A]={
- ["category"]="mn",
- ["description"]="THAI CHARACTER MAI TRI",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E4A, -- ๊
+ category="mn",
+ description="THAI CHARACTER MAI TRI",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x0E4A,
},
[0x0E4B]={
- ["category"]="mn",
- ["description"]="THAI CHARACTER MAI CHATTAWA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E4B, -- ๋
+ category="mn",
+ description="THAI CHARACTER MAI CHATTAWA",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x0E4B,
},
[0x0E4C]={
- ["category"]="mn",
- ["description"]="THAI CHARACTER THANTHAKHAT",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E4C, -- ์
+ category="mn",
+ description="THAI CHARACTER THANTHAKHAT",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x0E4C,
},
[0x0E4D]={
- ["category"]="mn",
- ["description"]="THAI CHARACTER NIKHAHIT",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E4D, -- ํ
+ category="mn",
+ description="THAI CHARACTER NIKHAHIT",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x0E4D,
},
[0x0E4E]={
- ["category"]="mn",
- ["description"]="THAI CHARACTER YAMAKKAN",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E4E, -- ๎
+ category="mn",
+ description="THAI CHARACTER YAMAKKAN",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x0E4E,
},
[0x0E4F]={
- ["category"]="po",
- ["description"]="THAI CHARACTER FONGMAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0E4F, -- ๏
+ category="po",
+ description="THAI CHARACTER FONGMAN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0E4F,
},
[0x0E50]={
- ["category"]="nd",
- ["description"]="THAI DIGIT ZERO",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0E50, -- ๐
+ category="nd",
+ description="THAI DIGIT ZERO",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0E50,
},
[0x0E51]={
- ["category"]="nd",
- ["description"]="THAI DIGIT ONE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0E51, -- ๑
+ category="nd",
+ description="THAI DIGIT ONE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0E51,
},
[0x0E52]={
- ["category"]="nd",
- ["description"]="THAI DIGIT TWO",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0E52, -- ๒
+ category="nd",
+ description="THAI DIGIT TWO",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0E52,
},
[0x0E53]={
- ["category"]="nd",
- ["description"]="THAI DIGIT THREE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0E53, -- ๓
+ category="nd",
+ description="THAI DIGIT THREE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0E53,
},
[0x0E54]={
- ["category"]="nd",
- ["description"]="THAI DIGIT FOUR",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0E54, -- ๔
+ category="nd",
+ description="THAI DIGIT FOUR",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0E54,
},
[0x0E55]={
- ["category"]="nd",
- ["description"]="THAI DIGIT FIVE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0E55, -- ๕
+ category="nd",
+ description="THAI DIGIT FIVE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0E55,
},
[0x0E56]={
- ["category"]="nd",
- ["description"]="THAI DIGIT SIX",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0E56, -- ๖
+ category="nd",
+ description="THAI DIGIT SIX",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0E56,
},
[0x0E57]={
- ["category"]="nd",
- ["description"]="THAI DIGIT SEVEN",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0E57, -- ๗
+ category="nd",
+ description="THAI DIGIT SEVEN",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0E57,
},
[0x0E58]={
- ["category"]="nd",
- ["description"]="THAI DIGIT EIGHT",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0E58, -- ๘
+ category="nd",
+ description="THAI DIGIT EIGHT",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0E58,
},
[0x0E59]={
- ["category"]="nd",
- ["description"]="THAI DIGIT NINE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0E59, -- ๙
+ category="nd",
+ description="THAI DIGIT NINE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0E59,
},
[0x0E5A]={
- ["category"]="po",
- ["description"]="THAI CHARACTER ANGKHANKHU",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x0E5A, -- ๚
+ category="po",
+ description="THAI CHARACTER ANGKHANKHU",
+ direction="l",
+ linebreak="ba",
+ unicodeslot=0x0E5A,
},
[0x0E5B]={
- ["category"]="po",
- ["description"]="THAI CHARACTER KHOMUT",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x0E5B, -- ๛
+ category="po",
+ description="THAI CHARACTER KHOMUT",
+ direction="l",
+ linebreak="ba",
+ unicodeslot=0x0E5B,
},
[0x0E81]={
- ["category"]="lo",
- ["description"]="LAO LETTER KO",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E81, -- ກ
+ category="lo",
+ description="LAO LETTER KO",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E81,
},
[0x0E82]={
- ["category"]="lo",
- ["description"]="LAO LETTER KHO SUNG",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E82, -- ຂ
+ category="lo",
+ description="LAO LETTER KHO SUNG",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E82,
},
[0x0E84]={
- ["category"]="lo",
- ["description"]="LAO LETTER KHO TAM",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E84, -- ຄ
+ category="lo",
+ description="LAO LETTER KHO TAM",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E84,
},
[0x0E87]={
- ["category"]="lo",
- ["description"]="LAO LETTER NGO",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E87, -- ງ
+ category="lo",
+ description="LAO LETTER NGO",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E87,
},
[0x0E88]={
- ["category"]="lo",
- ["description"]="LAO LETTER CO",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E88, -- ຈ
+ category="lo",
+ description="LAO LETTER CO",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E88,
},
[0x0E8A]={
- ["category"]="lo",
- ["description"]="LAO LETTER SO TAM",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E8A, -- ຊ
+ category="lo",
+ description="LAO LETTER SO TAM",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E8A,
},
[0x0E8D]={
- ["category"]="lo",
- ["description"]="LAO LETTER NYO",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E8D, -- ຍ
+ category="lo",
+ description="LAO LETTER NYO",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E8D,
},
[0x0E94]={
- ["category"]="lo",
- ["description"]="LAO LETTER DO",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E94, -- ດ
+ category="lo",
+ description="LAO LETTER DO",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E94,
},
[0x0E95]={
- ["category"]="lo",
- ["description"]="LAO LETTER TO",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E95, -- ຕ
+ category="lo",
+ description="LAO LETTER TO",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E95,
},
[0x0E96]={
- ["category"]="lo",
- ["description"]="LAO LETTER THO SUNG",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E96, -- ຖ
+ category="lo",
+ description="LAO LETTER THO SUNG",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E96,
},
[0x0E97]={
- ["category"]="lo",
- ["description"]="LAO LETTER THO TAM",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E97, -- ທ
+ category="lo",
+ description="LAO LETTER THO TAM",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E97,
},
[0x0E99]={
- ["category"]="lo",
- ["description"]="LAO LETTER NO",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E99, -- ນ
+ category="lo",
+ description="LAO LETTER NO",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E99,
},
[0x0E9A]={
- ["category"]="lo",
- ["description"]="LAO LETTER BO",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E9A, -- ບ
+ category="lo",
+ description="LAO LETTER BO",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E9A,
},
[0x0E9B]={
- ["category"]="lo",
- ["description"]="LAO LETTER PO",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E9B, -- ປ
+ category="lo",
+ description="LAO LETTER PO",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E9B,
},
[0x0E9C]={
- ["category"]="lo",
- ["description"]="LAO LETTER PHO SUNG",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E9C, -- ຜ
+ category="lo",
+ description="LAO LETTER PHO SUNG",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E9C,
},
[0x0E9D]={
- ["category"]="lo",
- ["description"]="LAO LETTER FO TAM",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E9D, -- ຝ
+ category="lo",
+ description="LAO LETTER FO TAM",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E9D,
},
[0x0E9E]={
- ["category"]="lo",
- ["description"]="LAO LETTER PHO TAM",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E9E, -- ພ
+ category="lo",
+ description="LAO LETTER PHO TAM",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E9E,
},
[0x0E9F]={
- ["category"]="lo",
- ["description"]="LAO LETTER FO SUNG",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0E9F, -- ຟ
+ category="lo",
+ description="LAO LETTER FO SUNG",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0E9F,
},
[0x0EA1]={
- ["category"]="lo",
- ["description"]="LAO LETTER MO",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0EA1, -- ມ
+ category="lo",
+ description="LAO LETTER MO",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0EA1,
},
[0x0EA2]={
- ["category"]="lo",
- ["description"]="LAO LETTER YO",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0EA2, -- ຢ
+ category="lo",
+ description="LAO LETTER YO",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0EA2,
},
[0x0EA3]={
- ["category"]="lo",
- ["description"]="LAO LETTER LO LING",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0EA3, -- ຣ
+ category="lo",
+ description="LAO LETTER LO LING",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0EA3,
},
[0x0EA5]={
- ["category"]="lo",
- ["description"]="LAO LETTER LO LOOT",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0EA5, -- ລ
+ category="lo",
+ description="LAO LETTER LO LOOT",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0EA5,
},
[0x0EA7]={
- ["category"]="lo",
- ["description"]="LAO LETTER WO",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0EA7, -- ວ
+ category="lo",
+ description="LAO LETTER WO",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0EA7,
},
[0x0EAA]={
- ["category"]="lo",
- ["description"]="LAO LETTER SO SUNG",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0EAA, -- ສ
+ category="lo",
+ description="LAO LETTER SO SUNG",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0EAA,
},
[0x0EAB]={
- ["category"]="lo",
- ["description"]="LAO LETTER HO SUNG",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0EAB, -- ຫ
+ category="lo",
+ description="LAO LETTER HO SUNG",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0EAB,
},
[0x0EAD]={
- ["category"]="lo",
- ["description"]="LAO LETTER O",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0EAD, -- ອ
+ category="lo",
+ description="LAO LETTER O",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0EAD,
},
[0x0EAE]={
- ["category"]="lo",
- ["description"]="LAO LETTER HO TAM",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0EAE, -- ຮ
+ category="lo",
+ description="LAO LETTER HO TAM",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0EAE,
},
[0x0EAF]={
- ["category"]="lo",
- ["description"]="LAO ELLIPSIS",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0EAF, -- ຯ
+ category="lo",
+ description="LAO ELLIPSIS",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0EAF,
},
[0x0EB0]={
- ["category"]="lo",
- ["description"]="LAO VOWEL SIGN A",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0EB0, -- ະ
+ category="lo",
+ description="LAO VOWEL SIGN A",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0EB0,
},
[0x0EB1]={
- ["category"]="mn",
- ["description"]="LAO VOWEL SIGN MAI KAN",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0EB1, -- ັ
+ category="mn",
+ description="LAO VOWEL SIGN MAI KAN",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x0EB1,
},
[0x0EB2]={
- ["category"]="lo",
- ["description"]="LAO VOWEL SIGN AA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0EB2, -- າ
+ category="lo",
+ description="LAO VOWEL SIGN AA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0EB2,
},
[0x0EB3]={
- ["category"]="lo",
- ["description"]="LAO VOWEL SIGN AM",
- ["linebreak"]="sa",
- ["specials"]={ "compat", 0x0ECD, 0x0EB2 },
- ["unicodeslot"]=0x0EB3, -- ຳ
+ category="lo",
+ description="LAO VOWEL SIGN AM",
+ direction="l",
+ linebreak="sa",
+ specials={ "compat", 0x0ECD, 0x0EB2 },
+ unicodeslot=0x0EB3,
},
[0x0EB4]={
- ["category"]="mn",
- ["description"]="LAO VOWEL SIGN I",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0EB4, -- ິ
+ category="mn",
+ description="LAO VOWEL SIGN I",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x0EB4,
},
[0x0EB5]={
- ["category"]="mn",
- ["description"]="LAO VOWEL SIGN II",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0EB5, -- ີ
+ category="mn",
+ description="LAO VOWEL SIGN II",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x0EB5,
},
[0x0EB6]={
- ["category"]="mn",
- ["description"]="LAO VOWEL SIGN Y",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0EB6, -- ຶ
+ category="mn",
+ description="LAO VOWEL SIGN Y",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x0EB6,
},
[0x0EB7]={
- ["category"]="mn",
- ["description"]="LAO VOWEL SIGN YY",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0EB7, -- ື
+ category="mn",
+ description="LAO VOWEL SIGN YY",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x0EB7,
},
[0x0EB8]={
- ["category"]="mn",
- ["description"]="LAO VOWEL SIGN U",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0EB8, -- ຸ
+ category="mn",
+ description="LAO VOWEL SIGN U",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x0EB8,
},
[0x0EB9]={
- ["category"]="mn",
- ["description"]="LAO VOWEL SIGN UU",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0EB9, -- ູ
+ category="mn",
+ description="LAO VOWEL SIGN UU",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x0EB9,
},
[0x0EBB]={
- ["category"]="mn",
- ["description"]="LAO VOWEL SIGN MAI KON",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0EBB, -- ົ
+ category="mn",
+ description="LAO VOWEL SIGN MAI KON",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x0EBB,
},
[0x0EBC]={
- ["category"]="mn",
- ["description"]="LAO SEMIVOWEL SIGN LO",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0EBC, -- ຼ
+ category="mn",
+ description="LAO SEMIVOWEL SIGN LO",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x0EBC,
},
[0x0EBD]={
- ["category"]="lo",
- ["description"]="LAO SEMIVOWEL SIGN NYO",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0EBD, -- ຽ
+ category="lo",
+ description="LAO SEMIVOWEL SIGN NYO",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0EBD,
},
[0x0EC0]={
- ["category"]="lo",
- ["description"]="LAO VOWEL SIGN E",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0EC0, -- ເ
+ category="lo",
+ description="LAO VOWEL SIGN E",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0EC0,
},
[0x0EC1]={
- ["category"]="lo",
- ["description"]="LAO VOWEL SIGN EI",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0EC1, -- ແ
+ category="lo",
+ description="LAO VOWEL SIGN EI",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0EC1,
},
[0x0EC2]={
- ["category"]="lo",
- ["description"]="LAO VOWEL SIGN O",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0EC2, -- ໂ
+ category="lo",
+ description="LAO VOWEL SIGN O",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0EC2,
},
[0x0EC3]={
- ["category"]="lo",
- ["description"]="LAO VOWEL SIGN AY",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0EC3, -- ໃ
+ category="lo",
+ description="LAO VOWEL SIGN AY",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0EC3,
},
[0x0EC4]={
- ["category"]="lo",
- ["description"]="LAO VOWEL SIGN AI",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0EC4, -- ໄ
+ category="lo",
+ description="LAO VOWEL SIGN AI",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0EC4,
},
[0x0EC6]={
- ["category"]="lm",
- ["description"]="LAO KO LA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0EC6, -- ໆ
+ category="lm",
+ description="LAO KO LA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x0EC6,
},
[0x0EC8]={
- ["category"]="mn",
- ["description"]="LAO TONE MAI EK",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0EC8, -- ່
+ category="mn",
+ description="LAO TONE MAI EK",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x0EC8,
},
[0x0EC9]={
- ["category"]="mn",
- ["description"]="LAO TONE MAI THO",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0EC9, -- ້
+ category="mn",
+ description="LAO TONE MAI THO",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x0EC9,
},
[0x0ECA]={
- ["category"]="mn",
- ["description"]="LAO TONE MAI TI",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0ECA, -- ໊
+ category="mn",
+ description="LAO TONE MAI TI",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x0ECA,
},
[0x0ECB]={
- ["category"]="mn",
- ["description"]="LAO TONE MAI CATAWA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0ECB, -- ໋
+ category="mn",
+ description="LAO TONE MAI CATAWA",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x0ECB,
},
[0x0ECC]={
- ["category"]="mn",
- ["description"]="LAO CANCELLATION MARK",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0ECC, -- ໌
+ category="mn",
+ description="LAO CANCELLATION MARK",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x0ECC,
},
[0x0ECD]={
- ["category"]="mn",
- ["description"]="LAO NIGGAHITA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x0ECD, -- ໍ
+ category="mn",
+ description="LAO NIGGAHITA",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x0ECD,
},
[0x0ED0]={
- ["category"]="nd",
- ["description"]="LAO DIGIT ZERO",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0ED0, -- ໐
+ category="nd",
+ description="LAO DIGIT ZERO",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0ED0,
},
[0x0ED1]={
- ["category"]="nd",
- ["description"]="LAO DIGIT ONE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0ED1, -- ໑
+ category="nd",
+ description="LAO DIGIT ONE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0ED1,
},
[0x0ED2]={
- ["category"]="nd",
- ["description"]="LAO DIGIT TWO",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0ED2, -- ໒
+ category="nd",
+ description="LAO DIGIT TWO",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0ED2,
},
[0x0ED3]={
- ["category"]="nd",
- ["description"]="LAO DIGIT THREE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0ED3, -- ໓
+ category="nd",
+ description="LAO DIGIT THREE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0ED3,
},
[0x0ED4]={
- ["category"]="nd",
- ["description"]="LAO DIGIT FOUR",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0ED4, -- ໔
+ category="nd",
+ description="LAO DIGIT FOUR",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0ED4,
},
[0x0ED5]={
- ["category"]="nd",
- ["description"]="LAO DIGIT FIVE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0ED5, -- ໕
+ category="nd",
+ description="LAO DIGIT FIVE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0ED5,
},
[0x0ED6]={
- ["category"]="nd",
- ["description"]="LAO DIGIT SIX",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0ED6, -- ໖
+ category="nd",
+ description="LAO DIGIT SIX",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0ED6,
},
[0x0ED7]={
- ["category"]="nd",
- ["description"]="LAO DIGIT SEVEN",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0ED7, -- ໗
+ category="nd",
+ description="LAO DIGIT SEVEN",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0ED7,
},
[0x0ED8]={
- ["category"]="nd",
- ["description"]="LAO DIGIT EIGHT",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0ED8, -- ໘
+ category="nd",
+ description="LAO DIGIT EIGHT",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0ED8,
},
[0x0ED9]={
- ["category"]="nd",
- ["description"]="LAO DIGIT NINE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0ED9, -- ໙
+ category="nd",
+ description="LAO DIGIT NINE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0ED9,
},
[0x0EDC]={
- ["category"]="lo",
- ["description"]="LAO HO NO",
- ["linebreak"]="sa",
- ["specials"]={ "compat", 0x0EAB, 0x0E99 },
- ["unicodeslot"]=0x0EDC, -- ໜ
+ category="lo",
+ description="LAO HO NO",
+ direction="l",
+ linebreak="sa",
+ specials={ "compat", 0x0EAB, 0x0E99 },
+ unicodeslot=0x0EDC,
},
[0x0EDD]={
- ["category"]="lo",
- ["description"]="LAO HO MO",
- ["linebreak"]="sa",
- ["specials"]={ "compat", 0x0EAB, 0x0EA1 },
- ["unicodeslot"]=0x0EDD, -- ໝ
+ category="lo",
+ description="LAO HO MO",
+ direction="l",
+ linebreak="sa",
+ specials={ "compat", 0x0EAB, 0x0EA1 },
+ unicodeslot=0x0EDD,
},
[0x0F00]={
- ["category"]="lo",
- ["description"]="TIBETAN SYLLABLE OM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F00, -- ༀ
+ category="lo",
+ description="TIBETAN SYLLABLE OM",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F00,
},
[0x0F01]={
- ["category"]="so",
- ["description"]="TIBETAN MARK GTER YIG MGO TRUNCATED A",
- ["linebreak"]="bb",
- ["unicodeslot"]=0x0F01, -- ༁
+ category="so",
+ description="TIBETAN MARK GTER YIG MGO TRUNCATED A",
+ direction="l",
+ linebreak="bb",
+ unicodeslot=0x0F01,
},
[0x0F02]={
- ["category"]="so",
- ["description"]="TIBETAN MARK GTER YIG MGO -UM RNAM BCAD MA",
- ["linebreak"]="bb",
- ["unicodeslot"]=0x0F02, -- ༂
+ category="so",
+ description="TIBETAN MARK GTER YIG MGO -UM RNAM BCAD MA",
+ direction="l",
+ linebreak="bb",
+ unicodeslot=0x0F02,
},
[0x0F03]={
- ["category"]="so",
- ["description"]="TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA",
- ["linebreak"]="bb",
- ["unicodeslot"]=0x0F03, -- ༃
+ category="so",
+ description="TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA",
+ direction="l",
+ linebreak="bb",
+ unicodeslot=0x0F03,
},
[0x0F04]={
- ["category"]="po",
- ["description"]="TIBETAN MARK INITIAL YIG MGO MDUN MA",
- ["linebreak"]="bb",
- ["unicodeslot"]=0x0F04, -- ༄
+ category="po",
+ description="TIBETAN MARK INITIAL YIG MGO MDUN MA",
+ direction="l",
+ linebreak="bb",
+ unicodeslot=0x0F04,
},
[0x0F05]={
- ["category"]="po",
- ["description"]="TIBETAN MARK CLOSING YIG MGO SGAB MA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F05, -- ༅
+ category="po",
+ description="TIBETAN MARK CLOSING YIG MGO SGAB MA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F05,
},
[0x0F06]={
- ["category"]="po",
- ["description"]="TIBETAN MARK CARET YIG MGO PHUR SHAD MA",
- ["linebreak"]="bb",
- ["unicodeslot"]=0x0F06, -- ༆
+ category="po",
+ description="TIBETAN MARK CARET YIG MGO PHUR SHAD MA",
+ direction="l",
+ linebreak="bb",
+ unicodeslot=0x0F06,
},
[0x0F07]={
- ["category"]="po",
- ["description"]="TIBETAN MARK YIG MGO TSHEG SHAD MA",
- ["linebreak"]="bb",
- ["unicodeslot"]=0x0F07, -- ༇
+ category="po",
+ description="TIBETAN MARK YIG MGO TSHEG SHAD MA",
+ direction="l",
+ linebreak="bb",
+ unicodeslot=0x0F07,
},
[0x0F08]={
- ["category"]="po",
- ["description"]="TIBETAN MARK SBRUL SHAD",
- ["linebreak"]="gl",
- ["unicodeslot"]=0x0F08, -- ༈
+ category="po",
+ description="TIBETAN MARK SBRUL SHAD",
+ direction="l",
+ linebreak="gl",
+ unicodeslot=0x0F08,
},
[0x0F09]={
- ["category"]="po",
- ["description"]="TIBETAN MARK BSKUR YIG MGO",
- ["linebreak"]="bb",
- ["unicodeslot"]=0x0F09, -- ༉
+ category="po",
+ description="TIBETAN MARK BSKUR YIG MGO",
+ direction="l",
+ linebreak="bb",
+ unicodeslot=0x0F09,
},
[0x0F0A]={
- ["category"]="po",
- ["description"]="TIBETAN MARK BKA- SHOG YIG MGO",
- ["linebreak"]="bb",
- ["unicodeslot"]=0x0F0A, -- ༊
+ category="po",
+ description="TIBETAN MARK BKA- SHOG YIG MGO",
+ direction="l",
+ linebreak="bb",
+ unicodeslot=0x0F0A,
},
[0x0F0B]={
- ["category"]="po",
- ["description"]="TIBETAN MARK INTERSYLLABIC TSHEG",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x0F0B, -- ་
+ category="po",
+ description="TIBETAN MARK INTERSYLLABIC TSHEG",
+ direction="l",
+ linebreak="ba",
+ unicodeslot=0x0F0B,
},
[0x0F0C]={
- ["category"]="po",
- ["description"]="TIBETAN MARK DELIMITER TSHEG BSTAR",
- ["linebreak"]="gl",
- ["specials"]={ "nobreak", 0x0F0B },
- ["unicodeslot"]=0x0F0C, -- ༌
+ category="po",
+ description="TIBETAN MARK DELIMITER TSHEG BSTAR",
+ direction="l",
+ linebreak="gl",
+ specials={ "nobreak", 0x0F0B },
+ unicodeslot=0x0F0C,
},
[0x0F0D]={
- ["category"]="po",
- ["description"]="TIBETAN MARK SHAD",
- ["linebreak"]="ex",
- ["unicodeslot"]=0x0F0D, -- །
+ category="po",
+ description="TIBETAN MARK SHAD",
+ direction="l",
+ linebreak="ex",
+ unicodeslot=0x0F0D,
},
[0x0F0E]={
- ["category"]="po",
- ["description"]="TIBETAN MARK NYIS SHAD",
- ["linebreak"]="ex",
- ["unicodeslot"]=0x0F0E, -- ༎
+ category="po",
+ description="TIBETAN MARK NYIS SHAD",
+ direction="l",
+ linebreak="ex",
+ unicodeslot=0x0F0E,
},
[0x0F0F]={
- ["category"]="po",
- ["description"]="TIBETAN MARK TSHEG SHAD",
- ["linebreak"]="ex",
- ["unicodeslot"]=0x0F0F, -- ༏
+ category="po",
+ description="TIBETAN MARK TSHEG SHAD",
+ direction="l",
+ linebreak="ex",
+ unicodeslot=0x0F0F,
},
[0x0F10]={
- ["category"]="po",
- ["description"]="TIBETAN MARK NYIS TSHEG SHAD",
- ["linebreak"]="ex",
- ["unicodeslot"]=0x0F10, -- ༐
+ category="po",
+ description="TIBETAN MARK NYIS TSHEG SHAD",
+ direction="l",
+ linebreak="ex",
+ unicodeslot=0x0F10,
},
[0x0F11]={
- ["category"]="po",
- ["description"]="TIBETAN MARK RIN CHEN SPUNGS SHAD",
- ["linebreak"]="ex",
- ["unicodeslot"]=0x0F11, -- ༑
+ category="po",
+ description="TIBETAN MARK RIN CHEN SPUNGS SHAD",
+ direction="l",
+ linebreak="ex",
+ unicodeslot=0x0F11,
},
[0x0F12]={
- ["category"]="po",
- ["description"]="TIBETAN MARK RGYA GRAM SHAD",
- ["linebreak"]="gl",
- ["unicodeslot"]=0x0F12, -- ༒
+ category="po",
+ description="TIBETAN MARK RGYA GRAM SHAD",
+ direction="l",
+ linebreak="gl",
+ unicodeslot=0x0F12,
},
[0x0F13]={
- ["category"]="so",
- ["description"]="TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F13, -- ༓
+ category="so",
+ description="TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F13,
},
[0x0F14]={
- ["category"]="so",
- ["description"]="TIBETAN MARK GTER TSHEG",
- ["linebreak"]="ex",
- ["unicodeslot"]=0x0F14, -- ༔
+ category="so",
+ description="TIBETAN MARK GTER TSHEG",
+ direction="l",
+ linebreak="ex",
+ unicodeslot=0x0F14,
},
[0x0F15]={
- ["category"]="so",
- ["description"]="TIBETAN LOGOTYPE SIGN CHAD RTAGS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F15, -- ༕
+ category="so",
+ description="TIBETAN LOGOTYPE SIGN CHAD RTAGS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F15,
},
[0x0F16]={
- ["category"]="so",
- ["description"]="TIBETAN LOGOTYPE SIGN LHAG RTAGS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F16, -- ༖
+ category="so",
+ description="TIBETAN LOGOTYPE SIGN LHAG RTAGS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F16,
},
[0x0F17]={
- ["category"]="so",
- ["description"]="TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F17, -- ༗
+ category="so",
+ description="TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F17,
},
[0x0F18]={
- ["category"]="mn",
- ["description"]="TIBETAN ASTROLOGICAL SIGN -KHYUD PA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0F18, -- ༘
+ category="mn",
+ description="TIBETAN ASTROLOGICAL SIGN -KHYUD PA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0F18,
},
[0x0F19]={
- ["category"]="mn",
- ["description"]="TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0F19, -- ༙
+ category="mn",
+ description="TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0F19,
},
[0x0F1A]={
- ["category"]="so",
- ["description"]="TIBETAN SIGN RDEL DKAR GCIG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F1A, -- ༚
+ category="so",
+ description="TIBETAN SIGN RDEL DKAR GCIG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F1A,
},
[0x0F1B]={
- ["category"]="so",
- ["description"]="TIBETAN SIGN RDEL DKAR GNYIS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F1B, -- ༛
+ category="so",
+ description="TIBETAN SIGN RDEL DKAR GNYIS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F1B,
},
[0x0F1C]={
- ["category"]="so",
- ["description"]="TIBETAN SIGN RDEL DKAR GSUM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F1C, -- ༜
+ category="so",
+ description="TIBETAN SIGN RDEL DKAR GSUM",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F1C,
},
[0x0F1D]={
- ["category"]="so",
- ["description"]="TIBETAN SIGN RDEL NAG GCIG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F1D, -- ༝
+ category="so",
+ description="TIBETAN SIGN RDEL NAG GCIG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F1D,
},
[0x0F1E]={
- ["category"]="so",
- ["description"]="TIBETAN SIGN RDEL NAG GNYIS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F1E, -- ༞
+ category="so",
+ description="TIBETAN SIGN RDEL NAG GNYIS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F1E,
},
[0x0F1F]={
- ["category"]="so",
- ["description"]="TIBETAN SIGN RDEL DKAR RDEL NAG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F1F, -- ༟
+ category="so",
+ description="TIBETAN SIGN RDEL DKAR RDEL NAG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F1F,
},
[0x0F20]={
- ["category"]="nd",
- ["description"]="TIBETAN DIGIT ZERO",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0F20, -- ༠
+ category="nd",
+ description="TIBETAN DIGIT ZERO",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0F20,
},
[0x0F21]={
- ["category"]="nd",
- ["description"]="TIBETAN DIGIT ONE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0F21, -- ༡
+ category="nd",
+ description="TIBETAN DIGIT ONE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0F21,
},
[0x0F22]={
- ["category"]="nd",
- ["description"]="TIBETAN DIGIT TWO",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0F22, -- ༢
+ category="nd",
+ description="TIBETAN DIGIT TWO",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0F22,
},
[0x0F23]={
- ["category"]="nd",
- ["description"]="TIBETAN DIGIT THREE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0F23, -- ༣
+ category="nd",
+ description="TIBETAN DIGIT THREE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0F23,
},
[0x0F24]={
- ["category"]="nd",
- ["description"]="TIBETAN DIGIT FOUR",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0F24, -- ༤
+ category="nd",
+ description="TIBETAN DIGIT FOUR",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0F24,
},
[0x0F25]={
- ["category"]="nd",
- ["description"]="TIBETAN DIGIT FIVE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0F25, -- ༥
+ category="nd",
+ description="TIBETAN DIGIT FIVE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0F25,
},
[0x0F26]={
- ["category"]="nd",
- ["description"]="TIBETAN DIGIT SIX",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0F26, -- ༦
+ category="nd",
+ description="TIBETAN DIGIT SIX",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0F26,
},
[0x0F27]={
- ["category"]="nd",
- ["description"]="TIBETAN DIGIT SEVEN",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0F27, -- ༧
+ category="nd",
+ description="TIBETAN DIGIT SEVEN",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0F27,
},
[0x0F28]={
- ["category"]="nd",
- ["description"]="TIBETAN DIGIT EIGHT",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0F28, -- ༨
+ category="nd",
+ description="TIBETAN DIGIT EIGHT",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0F28,
},
[0x0F29]={
- ["category"]="nd",
- ["description"]="TIBETAN DIGIT NINE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x0F29, -- ༩
+ category="nd",
+ description="TIBETAN DIGIT NINE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x0F29,
},
[0x0F2A]={
- ["category"]="no",
- ["description"]="TIBETAN DIGIT HALF ONE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F2A, -- ༪
+ category="no",
+ description="TIBETAN DIGIT HALF ONE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F2A,
},
[0x0F2B]={
- ["category"]="no",
- ["description"]="TIBETAN DIGIT HALF TWO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F2B, -- ༫
+ category="no",
+ description="TIBETAN DIGIT HALF TWO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F2B,
},
[0x0F2C]={
- ["category"]="no",
- ["description"]="TIBETAN DIGIT HALF THREE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F2C, -- ༬
+ category="no",
+ description="TIBETAN DIGIT HALF THREE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F2C,
},
[0x0F2D]={
- ["category"]="no",
- ["description"]="TIBETAN DIGIT HALF FOUR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F2D, -- ༭
+ category="no",
+ description="TIBETAN DIGIT HALF FOUR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F2D,
},
[0x0F2E]={
- ["category"]="no",
- ["description"]="TIBETAN DIGIT HALF FIVE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F2E, -- ༮
+ category="no",
+ description="TIBETAN DIGIT HALF FIVE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F2E,
},
[0x0F2F]={
- ["category"]="no",
- ["description"]="TIBETAN DIGIT HALF SIX",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F2F, -- ༯
+ category="no",
+ description="TIBETAN DIGIT HALF SIX",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F2F,
},
[0x0F30]={
- ["category"]="no",
- ["description"]="TIBETAN DIGIT HALF SEVEN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F30, -- ༰
+ category="no",
+ description="TIBETAN DIGIT HALF SEVEN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F30,
},
[0x0F31]={
- ["category"]="no",
- ["description"]="TIBETAN DIGIT HALF EIGHT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F31, -- ༱
+ category="no",
+ description="TIBETAN DIGIT HALF EIGHT",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F31,
},
[0x0F32]={
- ["category"]="no",
- ["description"]="TIBETAN DIGIT HALF NINE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F32, -- ༲
+ category="no",
+ description="TIBETAN DIGIT HALF NINE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F32,
},
[0x0F33]={
- ["category"]="no",
- ["description"]="TIBETAN DIGIT HALF ZERO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F33, -- ༳
+ category="no",
+ description="TIBETAN DIGIT HALF ZERO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F33,
},
[0x0F34]={
- ["category"]="so",
- ["description"]="TIBETAN MARK BSDUS RTAGS",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x0F34, -- ༴
+ category="so",
+ description="TIBETAN MARK BSDUS RTAGS",
+ direction="l",
+ linebreak="ba",
+ unicodeslot=0x0F34,
},
[0x0F35]={
- ["category"]="mn",
- ["description"]="TIBETAN MARK NGAS BZUNG NYI ZLA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0F35, -- ༵
+ category="mn",
+ description="TIBETAN MARK NGAS BZUNG NYI ZLA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0F35,
},
[0x0F36]={
- ["category"]="so",
- ["description"]="TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F36, -- ༶
+ category="so",
+ description="TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F36,
},
[0x0F37]={
- ["category"]="mn",
- ["description"]="TIBETAN MARK NGAS BZUNG SGOR RTAGS",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0F37, -- ༷
+ category="mn",
+ description="TIBETAN MARK NGAS BZUNG SGOR RTAGS",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0F37,
},
[0x0F38]={
- ["category"]="so",
- ["description"]="TIBETAN MARK CHE MGO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F38, -- ༸
+ category="so",
+ description="TIBETAN MARK CHE MGO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F38,
},
[0x0F39]={
- ["category"]="mn",
- ["description"]="TIBETAN MARK TSA -PHRU",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0F39, -- ༹
+ category="mn",
+ description="TIBETAN MARK TSA -PHRU",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0F39,
},
[0x0F3A]={
- ["category"]="ps",
- ["description"]="TIBETAN MARK GUG RTAGS GYON",
- ["linebreak"]="op",
- ["unicodeslot"]=0x0F3A, -- ༺
+ category="ps",
+ description="TIBETAN MARK GUG RTAGS GYON",
+ direction="on",
+ linebreak="op",
+ mirror=0x0F3B,
+ unicodeslot=0x0F3A,
},
[0x0F3B]={
- ["category"]="pe",
- ["description"]="TIBETAN MARK GUG RTAGS GYAS",
- ["linebreak"]="cl",
- ["unicodeslot"]=0x0F3B, -- ༻
+ category="pe",
+ description="TIBETAN MARK GUG RTAGS GYAS",
+ direction="on",
+ linebreak="cl",
+ mirror=0x0F3A,
+ unicodeslot=0x0F3B,
},
[0x0F3C]={
- ["category"]="ps",
- ["description"]="TIBETAN MARK ANG KHANG GYON",
- ["linebreak"]="op",
- ["unicodeslot"]=0x0F3C, -- ༼
+ category="ps",
+ description="TIBETAN MARK ANG KHANG GYON",
+ direction="on",
+ linebreak="op",
+ mirror=0x0F3D,
+ unicodeslot=0x0F3C,
},
[0x0F3D]={
- ["category"]="pe",
- ["description"]="TIBETAN MARK ANG KHANG GYAS",
- ["linebreak"]="cl",
- ["unicodeslot"]=0x0F3D, -- ༽
+ category="pe",
+ description="TIBETAN MARK ANG KHANG GYAS",
+ direction="on",
+ linebreak="cl",
+ mirror=0x0F3C,
+ unicodeslot=0x0F3D,
},
[0x0F3E]={
- ["category"]="mc",
- ["description"]="TIBETAN SIGN YAR TSHES",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0F3E, -- ༾
+ category="mc",
+ description="TIBETAN SIGN YAR TSHES",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0F3E,
},
[0x0F3F]={
- ["category"]="mc",
- ["description"]="TIBETAN SIGN MAR TSHES",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0F3F, -- ༿
+ category="mc",
+ description="TIBETAN SIGN MAR TSHES",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x0F3F,
},
[0x0F40]={
- ["category"]="lo",
- ["description"]="TIBETAN LETTER KA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F40, -- ཀ
+ category="lo",
+ description="TIBETAN LETTER KA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F40,
},
[0x0F41]={
- ["category"]="lo",
- ["description"]="TIBETAN LETTER KHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F41, -- ཁ
+ category="lo",
+ description="TIBETAN LETTER KHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F41,
},
[0x0F42]={
- ["category"]="lo",
- ["description"]="TIBETAN LETTER GA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F42, -- ག
+ category="lo",
+ description="TIBETAN LETTER GA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F42,
},
[0x0F43]={
- ["category"]="lo",
- ["description"]="TIBETAN LETTER GHA",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x0F42, 0x0FB7 },
- ["unicodeslot"]=0x0F43, -- གྷ
+ category="lo",
+ description="TIBETAN LETTER GHA",
+ direction="l",
+ linebreak="al",
+ specials={ "char", 0x0F42, 0x0FB7 },
+ unicodeslot=0x0F43,
},
[0x0F44]={
- ["category"]="lo",
- ["description"]="TIBETAN LETTER NGA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F44, -- ང
+ category="lo",
+ description="TIBETAN LETTER NGA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F44,
},
[0x0F45]={
- ["category"]="lo",
- ["description"]="TIBETAN LETTER CA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F45, -- ཅ
+ category="lo",
+ description="TIBETAN LETTER CA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F45,
},
[0x0F46]={
- ["category"]="lo",
- ["description"]="TIBETAN LETTER CHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F46, -- ཆ
+ category="lo",
+ description="TIBETAN LETTER CHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F46,
},
[0x0F47]={
- ["category"]="lo",
- ["description"]="TIBETAN LETTER JA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F47, -- ཇ
+ category="lo",
+ description="TIBETAN LETTER JA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F47,
},
[0x0F49]={
- ["category"]="lo",
- ["description"]="TIBETAN LETTER NYA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F49, -- ཉ
+ category="lo",
+ description="TIBETAN LETTER NYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F49,
},
[0x0F4A]={
- ["category"]="lo",
- ["description"]="TIBETAN LETTER TTA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F4A, -- ཊ
+ category="lo",
+ description="TIBETAN LETTER TTA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F4A,
},
[0x0F4B]={
- ["category"]="lo",
- ["description"]="TIBETAN LETTER TTHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F4B, -- ཋ
+ category="lo",
+ description="TIBETAN LETTER TTHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F4B,
},
[0x0F4C]={
- ["category"]="lo",
- ["description"]="TIBETAN LETTER DDA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F4C, -- ཌ
+ category="lo",
+ description="TIBETAN LETTER DDA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F4C,
},
[0x0F4D]={
- ["category"]="lo",
- ["description"]="TIBETAN LETTER DDHA",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x0F4C, 0x0FB7 },
- ["unicodeslot"]=0x0F4D, -- ཌྷ
+ category="lo",
+ description="TIBETAN LETTER DDHA",
+ direction="l",
+ linebreak="al",
+ specials={ "char", 0x0F4C, 0x0FB7 },
+ unicodeslot=0x0F4D,
},
[0x0F4E]={
- ["category"]="lo",
- ["description"]="TIBETAN LETTER NNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F4E, -- ཎ
+ category="lo",
+ description="TIBETAN LETTER NNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F4E,
},
[0x0F4F]={
- ["category"]="lo",
- ["description"]="TIBETAN LETTER TA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F4F, -- ཏ
+ category="lo",
+ description="TIBETAN LETTER TA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F4F,
},
[0x0F50]={
- ["category"]="lo",
- ["description"]="TIBETAN LETTER THA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F50, -- ཐ
+ category="lo",
+ description="TIBETAN LETTER THA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F50,
},
[0x0F51]={
- ["category"]="lo",
- ["description"]="TIBETAN LETTER DA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F51, -- ད
+ category="lo",
+ description="TIBETAN LETTER DA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F51,
},
[0x0F52]={
- ["category"]="lo",
- ["description"]="TIBETAN LETTER DHA",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x0F51, 0x0FB7 },
- ["unicodeslot"]=0x0F52, -- དྷ
+ category="lo",
+ description="TIBETAN LETTER DHA",
+ direction="l",
+ linebreak="al",
+ specials={ "char", 0x0F51, 0x0FB7 },
+ unicodeslot=0x0F52,
},
[0x0F53]={
- ["category"]="lo",
- ["description"]="TIBETAN LETTER NA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F53, -- ན
+ category="lo",
+ description="TIBETAN LETTER NA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F53,
},
[0x0F54]={
- ["category"]="lo",
- ["description"]="TIBETAN LETTER PA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F54, -- པ
+ category="lo",
+ description="TIBETAN LETTER PA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F54,
},
[0x0F55]={
- ["category"]="lo",
- ["description"]="TIBETAN LETTER PHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F55, -- ཕ
+ category="lo",
+ description="TIBETAN LETTER PHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F55,
},
[0x0F56]={
- ["category"]="lo",
- ["description"]="TIBETAN LETTER BA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F56, -- བ
+ category="lo",
+ description="TIBETAN LETTER BA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F56,
},
[0x0F57]={
- ["category"]="lo",
- ["description"]="TIBETAN LETTER BHA",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x0F56, 0x0FB7 },
- ["unicodeslot"]=0x0F57, -- བྷ
+ category="lo",
+ description="TIBETAN LETTER BHA",
+ direction="l",
+ linebreak="al",
+ specials={ "char", 0x0F56, 0x0FB7 },
+ unicodeslot=0x0F57,
},
[0x0F58]={
- ["category"]="lo",
- ["description"]="TIBETAN LETTER MA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F58, -- མ
+ category="lo",
+ description="TIBETAN LETTER MA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F58,
},
[0x0F59]={
- ["category"]="lo",
- ["description"]="TIBETAN LETTER TSA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F59, -- ཙ
+ category="lo",
+ description="TIBETAN LETTER TSA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F59,
},
[0x0F5A]={
- ["category"]="lo",
- ["description"]="TIBETAN LETTER TSHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F5A, -- ཚ
+ category="lo",
+ description="TIBETAN LETTER TSHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F5A,
},
[0x0F5B]={
- ["category"]="lo",
- ["description"]="TIBETAN LETTER DZA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F5B, -- ཛ
+ category="lo",
+ description="TIBETAN LETTER DZA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F5B,
},
[0x0F5C]={
- ["category"]="lo",
- ["description"]="TIBETAN LETTER DZHA",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x0F5B, 0x0FB7 },
- ["unicodeslot"]=0x0F5C, -- ཛྷ
+ category="lo",
+ description="TIBETAN LETTER DZHA",
+ direction="l",
+ linebreak="al",
+ specials={ "char", 0x0F5B, 0x0FB7 },
+ unicodeslot=0x0F5C,
},
[0x0F5D]={
- ["category"]="lo",
- ["description"]="TIBETAN LETTER WA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F5D, -- ཝ
+ category="lo",
+ description="TIBETAN LETTER WA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F5D,
},
[0x0F5E]={
- ["category"]="lo",
- ["description"]="TIBETAN LETTER ZHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F5E, -- ཞ
+ category="lo",
+ description="TIBETAN LETTER ZHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F5E,
},
[0x0F5F]={
- ["category"]="lo",
- ["description"]="TIBETAN LETTER ZA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F5F, -- ཟ
+ category="lo",
+ description="TIBETAN LETTER ZA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F5F,
},
[0x0F60]={
- ["category"]="lo",
- ["description"]="TIBETAN LETTER -A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F60, -- འ
+ category="lo",
+ description="TIBETAN LETTER -A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F60,
},
[0x0F61]={
- ["category"]="lo",
- ["description"]="TIBETAN LETTER YA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F61, -- ཡ
+ category="lo",
+ description="TIBETAN LETTER YA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F61,
},
[0x0F62]={
- ["category"]="lo",
- ["description"]="TIBETAN LETTER RA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F62, -- ར
+ category="lo",
+ description="TIBETAN LETTER RA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F62,
},
[0x0F63]={
- ["category"]="lo",
- ["description"]="TIBETAN LETTER LA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F63, -- ལ
+ category="lo",
+ description="TIBETAN LETTER LA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F63,
},
[0x0F64]={
- ["category"]="lo",
- ["description"]="TIBETAN LETTER SHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F64, -- ཤ
+ category="lo",
+ description="TIBETAN LETTER SHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F64,
},
[0x0F65]={
- ["category"]="lo",
- ["description"]="TIBETAN LETTER SSA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F65, -- ཥ
+ category="lo",
+ description="TIBETAN LETTER SSA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F65,
},
[0x0F66]={
- ["category"]="lo",
- ["description"]="TIBETAN LETTER SA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F66, -- ས
+ category="lo",
+ description="TIBETAN LETTER SA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F66,
},
[0x0F67]={
- ["category"]="lo",
- ["description"]="TIBETAN LETTER HA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F67, -- ཧ
+ category="lo",
+ description="TIBETAN LETTER HA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F67,
},
[0x0F68]={
- ["category"]="lo",
- ["description"]="TIBETAN LETTER A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F68, -- ཨ
+ category="lo",
+ description="TIBETAN LETTER A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F68,
},
[0x0F69]={
- ["category"]="lo",
- ["description"]="TIBETAN LETTER KSSA",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x0F40, 0x0FB5 },
- ["unicodeslot"]=0x0F69, -- ཀྵ
+ category="lo",
+ description="TIBETAN LETTER KSSA",
+ direction="l",
+ linebreak="al",
+ specials={ "char", 0x0F40, 0x0FB5 },
+ unicodeslot=0x0F69,
},
[0x0F6A]={
- ["category"]="lo",
- ["description"]="TIBETAN LETTER FIXED-FORM RA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F6A, -- ཪ
+ category="lo",
+ description="TIBETAN LETTER FIXED-FORM RA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F6A,
},
[0x0F71]={
- ["category"]="mn",
- ["description"]="TIBETAN VOWEL SIGN AA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0F71, -- ཱ
+ category="mn",
+ description="TIBETAN VOWEL SIGN AA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0F71,
},
[0x0F72]={
- ["category"]="mn",
- ["description"]="TIBETAN VOWEL SIGN I",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0F72, -- ི
+ category="mn",
+ description="TIBETAN VOWEL SIGN I",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0F72,
},
[0x0F73]={
- ["category"]="mn",
- ["description"]="TIBETAN VOWEL SIGN II",
- ["linebreak"]="cm",
- ["specials"]={ "char", 0x0F71, 0x0F72 },
- ["unicodeslot"]=0x0F73, -- ཱི
+ category="mn",
+ description="TIBETAN VOWEL SIGN II",
+ direction="nsm",
+ linebreak="cm",
+ specials={ "char", 0x0F71, 0x0F72 },
+ unicodeslot=0x0F73,
},
[0x0F74]={
- ["category"]="mn",
- ["description"]="TIBETAN VOWEL SIGN U",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0F74, -- ུ
+ category="mn",
+ description="TIBETAN VOWEL SIGN U",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0F74,
},
[0x0F75]={
- ["category"]="mn",
- ["description"]="TIBETAN VOWEL SIGN UU",
- ["linebreak"]="cm",
- ["specials"]={ "char", 0x0F71, 0x0F74 },
- ["unicodeslot"]=0x0F75, -- ཱུ
+ category="mn",
+ description="TIBETAN VOWEL SIGN UU",
+ direction="nsm",
+ linebreak="cm",
+ specials={ "char", 0x0F71, 0x0F74 },
+ unicodeslot=0x0F75,
},
[0x0F76]={
- ["category"]="mn",
- ["description"]="TIBETAN VOWEL SIGN VOCALIC R",
- ["linebreak"]="cm",
- ["specials"]={ "char", 0x0FB2, 0x0F80 },
- ["unicodeslot"]=0x0F76, -- ྲྀ
+ category="mn",
+ description="TIBETAN VOWEL SIGN VOCALIC R",
+ direction="nsm",
+ linebreak="cm",
+ specials={ "char", 0x0FB2, 0x0F80 },
+ unicodeslot=0x0F76,
},
[0x0F77]={
- ["category"]="mn",
- ["description"]="TIBETAN VOWEL SIGN VOCALIC RR",
- ["linebreak"]="cm",
- ["specials"]={ "compat", 0x0FB2, 0x0F81 },
- ["unicodeslot"]=0x0F77, -- ཷ
+ category="mn",
+ description="TIBETAN VOWEL SIGN VOCALIC RR",
+ direction="nsm",
+ linebreak="cm",
+ specials={ "compat", 0x0FB2, 0x0F81 },
+ unicodeslot=0x0F77,
},
[0x0F78]={
- ["category"]="mn",
- ["description"]="TIBETAN VOWEL SIGN VOCALIC L",
- ["linebreak"]="cm",
- ["specials"]={ "char", 0x0FB3, 0x0F80 },
- ["unicodeslot"]=0x0F78, -- ླྀ
+ category="mn",
+ description="TIBETAN VOWEL SIGN VOCALIC L",
+ direction="nsm",
+ linebreak="cm",
+ specials={ "char", 0x0FB3, 0x0F80 },
+ unicodeslot=0x0F78,
},
[0x0F79]={
- ["category"]="mn",
- ["description"]="TIBETAN VOWEL SIGN VOCALIC LL",
- ["linebreak"]="cm",
- ["specials"]={ "compat", 0x0FB3, 0x0F81 },
- ["unicodeslot"]=0x0F79, -- ཹ
+ category="mn",
+ description="TIBETAN VOWEL SIGN VOCALIC LL",
+ direction="nsm",
+ linebreak="cm",
+ specials={ "compat", 0x0FB3, 0x0F81 },
+ unicodeslot=0x0F79,
},
[0x0F7A]={
- ["category"]="mn",
- ["description"]="TIBETAN VOWEL SIGN E",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0F7A, -- ེ
+ category="mn",
+ description="TIBETAN VOWEL SIGN E",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0F7A,
},
[0x0F7B]={
- ["category"]="mn",
- ["description"]="TIBETAN VOWEL SIGN EE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0F7B, -- ཻ
+ category="mn",
+ description="TIBETAN VOWEL SIGN EE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0F7B,
},
[0x0F7C]={
- ["category"]="mn",
- ["description"]="TIBETAN VOWEL SIGN O",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0F7C, -- ོ
+ category="mn",
+ description="TIBETAN VOWEL SIGN O",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0F7C,
},
[0x0F7D]={
- ["category"]="mn",
- ["description"]="TIBETAN VOWEL SIGN OO",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0F7D, -- ཽ
+ category="mn",
+ description="TIBETAN VOWEL SIGN OO",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0F7D,
},
[0x0F7E]={
- ["category"]="mn",
- ["description"]="TIBETAN SIGN RJES SU NGA RO",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0F7E, -- ཾ
+ category="mn",
+ description="TIBETAN SIGN RJES SU NGA RO",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0F7E,
},
[0x0F7F]={
- ["category"]="mc",
- ["description"]="TIBETAN SIGN RNAM BCAD",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x0F7F, -- ཿ
+ category="mc",
+ description="TIBETAN SIGN RNAM BCAD",
+ direction="l",
+ linebreak="ba",
+ unicodeslot=0x0F7F,
},
[0x0F80]={
- ["category"]="mn",
- ["description"]="TIBETAN VOWEL SIGN REVERSED I",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0F80, -- ྀ
+ category="mn",
+ description="TIBETAN VOWEL SIGN REVERSED I",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0F80,
},
[0x0F81]={
- ["category"]="mn",
- ["description"]="TIBETAN VOWEL SIGN REVERSED II",
- ["linebreak"]="cm",
- ["specials"]={ "char", 0x0F71, 0x0F80 },
- ["unicodeslot"]=0x0F81, -- ཱྀ
+ category="mn",
+ description="TIBETAN VOWEL SIGN REVERSED II",
+ direction="nsm",
+ linebreak="cm",
+ specials={ "char", 0x0F71, 0x0F80 },
+ unicodeslot=0x0F81,
},
[0x0F82]={
- ["category"]="mn",
- ["description"]="TIBETAN SIGN NYI ZLA NAA DA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0F82, -- ྂ
+ category="mn",
+ description="TIBETAN SIGN NYI ZLA NAA DA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0F82,
},
[0x0F83]={
- ["category"]="mn",
- ["description"]="TIBETAN SIGN SNA LDAN",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0F83, -- ྃ
+ category="mn",
+ description="TIBETAN SIGN SNA LDAN",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0F83,
},
[0x0F84]={
- ["category"]="mn",
- ["description"]="TIBETAN MARK HALANTA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0F84, -- ྄
+ category="mn",
+ description="TIBETAN MARK HALANTA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0F84,
},
[0x0F85]={
- ["category"]="po",
- ["description"]="TIBETAN MARK PALUTA",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x0F85, -- ྅
+ category="po",
+ description="TIBETAN MARK PALUTA",
+ direction="l",
+ linebreak="ba",
+ unicodeslot=0x0F85,
},
[0x0F86]={
- ["category"]="mn",
- ["description"]="TIBETAN SIGN LCI RTAGS",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0F86, -- ྆
+ category="mn",
+ description="TIBETAN SIGN LCI RTAGS",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0F86,
},
[0x0F87]={
- ["category"]="mn",
- ["description"]="TIBETAN SIGN YANG RTAGS",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0F87, -- ྇
+ category="mn",
+ description="TIBETAN SIGN YANG RTAGS",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0F87,
},
[0x0F88]={
- ["category"]="lo",
- ["description"]="TIBETAN SIGN LCE TSA CAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F88, -- ྈ
+ category="lo",
+ description="TIBETAN SIGN LCE TSA CAN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F88,
},
[0x0F89]={
- ["category"]="lo",
- ["description"]="TIBETAN SIGN MCHU CAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F89, -- ྉ
+ category="lo",
+ description="TIBETAN SIGN MCHU CAN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F89,
},
[0x0F8A]={
- ["category"]="lo",
- ["description"]="TIBETAN SIGN GRU CAN RGYINGS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F8A, -- ྊ
+ category="lo",
+ description="TIBETAN SIGN GRU CAN RGYINGS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F8A,
},
[0x0F8B]={
- ["category"]="lo",
- ["description"]="TIBETAN SIGN GRU MED RGYINGS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0F8B, -- ྋ
+ category="lo",
+ description="TIBETAN SIGN GRU MED RGYINGS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0F8B,
},
[0x0F90]={
- ["category"]="mn",
- ["description"]="TIBETAN SUBJOINED LETTER KA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0F90, -- ྐ
+ category="mn",
+ description="TIBETAN SUBJOINED LETTER KA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0F90,
},
[0x0F91]={
- ["category"]="mn",
- ["description"]="TIBETAN SUBJOINED LETTER KHA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0F91, -- ྑ
+ category="mn",
+ description="TIBETAN SUBJOINED LETTER KHA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0F91,
},
[0x0F92]={
- ["category"]="mn",
- ["description"]="TIBETAN SUBJOINED LETTER GA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0F92, -- ྒ
+ category="mn",
+ description="TIBETAN SUBJOINED LETTER GA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0F92,
},
[0x0F93]={
- ["category"]="mn",
- ["description"]="TIBETAN SUBJOINED LETTER GHA",
- ["linebreak"]="cm",
- ["specials"]={ "char", 0x0F92, 0x0FB7 },
- ["unicodeslot"]=0x0F93, -- ྒྷ
+ category="mn",
+ description="TIBETAN SUBJOINED LETTER GHA",
+ direction="nsm",
+ linebreak="cm",
+ specials={ "char", 0x0F92, 0x0FB7 },
+ unicodeslot=0x0F93,
},
[0x0F94]={
- ["category"]="mn",
- ["description"]="TIBETAN SUBJOINED LETTER NGA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0F94, -- ྔ
+ category="mn",
+ description="TIBETAN SUBJOINED LETTER NGA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0F94,
},
[0x0F95]={
- ["category"]="mn",
- ["description"]="TIBETAN SUBJOINED LETTER CA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0F95, -- ྕ
+ category="mn",
+ description="TIBETAN SUBJOINED LETTER CA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0F95,
},
[0x0F96]={
- ["category"]="mn",
- ["description"]="TIBETAN SUBJOINED LETTER CHA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0F96, -- ྖ
+ category="mn",
+ description="TIBETAN SUBJOINED LETTER CHA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0F96,
},
[0x0F97]={
- ["category"]="mn",
- ["description"]="TIBETAN SUBJOINED LETTER JA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0F97, -- ྗ
+ category="mn",
+ description="TIBETAN SUBJOINED LETTER JA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0F97,
},
[0x0F99]={
- ["category"]="mn",
- ["description"]="TIBETAN SUBJOINED LETTER NYA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0F99, -- ྙ
+ category="mn",
+ description="TIBETAN SUBJOINED LETTER NYA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0F99,
},
[0x0F9A]={
- ["category"]="mn",
- ["description"]="TIBETAN SUBJOINED LETTER TTA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0F9A, -- ྚ
+ category="mn",
+ description="TIBETAN SUBJOINED LETTER TTA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0F9A,
},
[0x0F9B]={
- ["category"]="mn",
- ["description"]="TIBETAN SUBJOINED LETTER TTHA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0F9B, -- ྛ
+ category="mn",
+ description="TIBETAN SUBJOINED LETTER TTHA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0F9B,
},
[0x0F9C]={
- ["category"]="mn",
- ["description"]="TIBETAN SUBJOINED LETTER DDA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0F9C, -- ྜ
+ category="mn",
+ description="TIBETAN SUBJOINED LETTER DDA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0F9C,
},
[0x0F9D]={
- ["category"]="mn",
- ["description"]="TIBETAN SUBJOINED LETTER DDHA",
- ["linebreak"]="cm",
- ["specials"]={ "char", 0x0F9C, 0x0FB7 },
- ["unicodeslot"]=0x0F9D, -- ྜྷ
+ category="mn",
+ description="TIBETAN SUBJOINED LETTER DDHA",
+ direction="nsm",
+ linebreak="cm",
+ specials={ "char", 0x0F9C, 0x0FB7 },
+ unicodeslot=0x0F9D,
},
[0x0F9E]={
- ["category"]="mn",
- ["description"]="TIBETAN SUBJOINED LETTER NNA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0F9E, -- ྞ
+ category="mn",
+ description="TIBETAN SUBJOINED LETTER NNA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0F9E,
},
[0x0F9F]={
- ["category"]="mn",
- ["description"]="TIBETAN SUBJOINED LETTER TA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0F9F, -- ྟ
+ category="mn",
+ description="TIBETAN SUBJOINED LETTER TA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0F9F,
},
[0x0FA0]={
- ["category"]="mn",
- ["description"]="TIBETAN SUBJOINED LETTER THA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0FA0, -- ྠ
+ category="mn",
+ description="TIBETAN SUBJOINED LETTER THA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0FA0,
},
[0x0FA1]={
- ["category"]="mn",
- ["description"]="TIBETAN SUBJOINED LETTER DA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0FA1, -- ྡ
+ category="mn",
+ description="TIBETAN SUBJOINED LETTER DA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0FA1,
},
[0x0FA2]={
- ["category"]="mn",
- ["description"]="TIBETAN SUBJOINED LETTER DHA",
- ["linebreak"]="cm",
- ["specials"]={ "char", 0x0FA1, 0x0FB7 },
- ["unicodeslot"]=0x0FA2, -- ྡྷ
+ category="mn",
+ description="TIBETAN SUBJOINED LETTER DHA",
+ direction="nsm",
+ linebreak="cm",
+ specials={ "char", 0x0FA1, 0x0FB7 },
+ unicodeslot=0x0FA2,
},
[0x0FA3]={
- ["category"]="mn",
- ["description"]="TIBETAN SUBJOINED LETTER NA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0FA3, -- ྣ
+ category="mn",
+ description="TIBETAN SUBJOINED LETTER NA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0FA3,
},
[0x0FA4]={
- ["category"]="mn",
- ["description"]="TIBETAN SUBJOINED LETTER PA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0FA4, -- ྤ
+ category="mn",
+ description="TIBETAN SUBJOINED LETTER PA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0FA4,
},
[0x0FA5]={
- ["category"]="mn",
- ["description"]="TIBETAN SUBJOINED LETTER PHA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0FA5, -- ྥ
+ category="mn",
+ description="TIBETAN SUBJOINED LETTER PHA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0FA5,
},
[0x0FA6]={
- ["category"]="mn",
- ["description"]="TIBETAN SUBJOINED LETTER BA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0FA6, -- ྦ
+ category="mn",
+ description="TIBETAN SUBJOINED LETTER BA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0FA6,
},
[0x0FA7]={
- ["category"]="mn",
- ["description"]="TIBETAN SUBJOINED LETTER BHA",
- ["linebreak"]="cm",
- ["specials"]={ "char", 0x0FA6, 0x0FB7 },
- ["unicodeslot"]=0x0FA7, -- ྦྷ
+ category="mn",
+ description="TIBETAN SUBJOINED LETTER BHA",
+ direction="nsm",
+ linebreak="cm",
+ specials={ "char", 0x0FA6, 0x0FB7 },
+ unicodeslot=0x0FA7,
},
[0x0FA8]={
- ["category"]="mn",
- ["description"]="TIBETAN SUBJOINED LETTER MA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0FA8, -- ྨ
+ category="mn",
+ description="TIBETAN SUBJOINED LETTER MA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0FA8,
},
[0x0FA9]={
- ["category"]="mn",
- ["description"]="TIBETAN SUBJOINED LETTER TSA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0FA9, -- ྩ
+ category="mn",
+ description="TIBETAN SUBJOINED LETTER TSA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0FA9,
},
[0x0FAA]={
- ["category"]="mn",
- ["description"]="TIBETAN SUBJOINED LETTER TSHA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0FAA, -- ྪ
+ category="mn",
+ description="TIBETAN SUBJOINED LETTER TSHA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0FAA,
},
[0x0FAB]={
- ["category"]="mn",
- ["description"]="TIBETAN SUBJOINED LETTER DZA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0FAB, -- ྫ
+ category="mn",
+ description="TIBETAN SUBJOINED LETTER DZA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0FAB,
},
[0x0FAC]={
- ["category"]="mn",
- ["description"]="TIBETAN SUBJOINED LETTER DZHA",
- ["linebreak"]="cm",
- ["specials"]={ "char", 0x0FAB, 0x0FB7 },
- ["unicodeslot"]=0x0FAC, -- ྫྷ
+ category="mn",
+ description="TIBETAN SUBJOINED LETTER DZHA",
+ direction="nsm",
+ linebreak="cm",
+ specials={ "char", 0x0FAB, 0x0FB7 },
+ unicodeslot=0x0FAC,
},
[0x0FAD]={
- ["category"]="mn",
- ["description"]="TIBETAN SUBJOINED LETTER WA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0FAD, -- ྭ
+ category="mn",
+ description="TIBETAN SUBJOINED LETTER WA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0FAD,
},
[0x0FAE]={
- ["category"]="mn",
- ["description"]="TIBETAN SUBJOINED LETTER ZHA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0FAE, -- ྮ
+ category="mn",
+ description="TIBETAN SUBJOINED LETTER ZHA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0FAE,
},
[0x0FAF]={
- ["category"]="mn",
- ["description"]="TIBETAN SUBJOINED LETTER ZA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0FAF, -- ྯ
+ category="mn",
+ description="TIBETAN SUBJOINED LETTER ZA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0FAF,
},
[0x0FB0]={
- ["category"]="mn",
- ["description"]="TIBETAN SUBJOINED LETTER -A",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0FB0, -- ྰ
+ category="mn",
+ description="TIBETAN SUBJOINED LETTER -A",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0FB0,
},
[0x0FB1]={
- ["category"]="mn",
- ["description"]="TIBETAN SUBJOINED LETTER YA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0FB1, -- ྱ
+ category="mn",
+ description="TIBETAN SUBJOINED LETTER YA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0FB1,
},
[0x0FB2]={
- ["category"]="mn",
- ["description"]="TIBETAN SUBJOINED LETTER RA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0FB2, -- ྲ
+ category="mn",
+ description="TIBETAN SUBJOINED LETTER RA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0FB2,
},
[0x0FB3]={
- ["category"]="mn",
- ["description"]="TIBETAN SUBJOINED LETTER LA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0FB3, -- ླ
+ category="mn",
+ description="TIBETAN SUBJOINED LETTER LA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0FB3,
},
[0x0FB4]={
- ["category"]="mn",
- ["description"]="TIBETAN SUBJOINED LETTER SHA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0FB4, -- ྴ
+ category="mn",
+ description="TIBETAN SUBJOINED LETTER SHA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0FB4,
},
[0x0FB5]={
- ["category"]="mn",
- ["description"]="TIBETAN SUBJOINED LETTER SSA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0FB5, -- ྵ
+ category="mn",
+ description="TIBETAN SUBJOINED LETTER SSA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0FB5,
},
[0x0FB6]={
- ["category"]="mn",
- ["description"]="TIBETAN SUBJOINED LETTER SA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0FB6, -- ྶ
+ category="mn",
+ description="TIBETAN SUBJOINED LETTER SA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0FB6,
},
[0x0FB7]={
- ["category"]="mn",
- ["description"]="TIBETAN SUBJOINED LETTER HA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0FB7, -- ྷ
+ category="mn",
+ description="TIBETAN SUBJOINED LETTER HA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0FB7,
},
[0x0FB8]={
- ["category"]="mn",
- ["description"]="TIBETAN SUBJOINED LETTER A",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0FB8, -- ྸ
+ category="mn",
+ description="TIBETAN SUBJOINED LETTER A",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0FB8,
},
[0x0FB9]={
- ["category"]="mn",
- ["description"]="TIBETAN SUBJOINED LETTER KSSA",
- ["linebreak"]="cm",
- ["specials"]={ "char", 0x0F90, 0x0FB5 },
- ["unicodeslot"]=0x0FB9, -- ྐྵ
+ category="mn",
+ description="TIBETAN SUBJOINED LETTER KSSA",
+ direction="nsm",
+ linebreak="cm",
+ specials={ "char", 0x0F90, 0x0FB5 },
+ unicodeslot=0x0FB9,
},
[0x0FBA]={
- ["category"]="mn",
- ["description"]="TIBETAN SUBJOINED LETTER FIXED-FORM WA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0FBA, -- ྺ
+ category="mn",
+ description="TIBETAN SUBJOINED LETTER FIXED-FORM WA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0FBA,
},
[0x0FBB]={
- ["category"]="mn",
- ["description"]="TIBETAN SUBJOINED LETTER FIXED-FORM YA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0FBB, -- ྻ
+ category="mn",
+ description="TIBETAN SUBJOINED LETTER FIXED-FORM YA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0FBB,
},
[0x0FBC]={
- ["category"]="mn",
- ["description"]="TIBETAN SUBJOINED LETTER FIXED-FORM RA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0FBC, -- ྼ
+ category="mn",
+ description="TIBETAN SUBJOINED LETTER FIXED-FORM RA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0FBC,
},
[0x0FBE]={
- ["category"]="so",
- ["description"]="TIBETAN KU RU KHA",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x0FBE, -- ྾
+ category="so",
+ description="TIBETAN KU RU KHA",
+ direction="l",
+ linebreak="ba",
+ unicodeslot=0x0FBE,
},
[0x0FBF]={
- ["category"]="so",
- ["description"]="TIBETAN KU RU KHA BZHI MIG CAN",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x0FBF, -- ྿
+ category="so",
+ description="TIBETAN KU RU KHA BZHI MIG CAN",
+ direction="l",
+ linebreak="ba",
+ unicodeslot=0x0FBF,
},
[0x0FC0]={
- ["category"]="so",
- ["description"]="TIBETAN CANTILLATION SIGN HEAVY BEAT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0FC0, -- ࿀
+ category="so",
+ description="TIBETAN CANTILLATION SIGN HEAVY BEAT",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0FC0,
},
[0x0FC1]={
- ["category"]="so",
- ["description"]="TIBETAN CANTILLATION SIGN LIGHT BEAT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0FC1, -- ࿁
+ category="so",
+ description="TIBETAN CANTILLATION SIGN LIGHT BEAT",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0FC1,
},
[0x0FC2]={
- ["category"]="so",
- ["description"]="TIBETAN CANTILLATION SIGN CANG TE-U",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0FC2, -- ࿂
+ category="so",
+ description="TIBETAN CANTILLATION SIGN CANG TE-U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0FC2,
},
[0x0FC3]={
- ["category"]="so",
- ["description"]="TIBETAN CANTILLATION SIGN SBUB -CHAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0FC3, -- ࿃
+ category="so",
+ description="TIBETAN CANTILLATION SIGN SBUB -CHAL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0FC3,
},
[0x0FC4]={
- ["category"]="so",
- ["description"]="TIBETAN SYMBOL DRIL BU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0FC4, -- ࿄
+ category="so",
+ description="TIBETAN SYMBOL DRIL BU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0FC4,
},
[0x0FC5]={
- ["category"]="so",
- ["description"]="TIBETAN SYMBOL RDO RJE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0FC5, -- ࿅
+ category="so",
+ description="TIBETAN SYMBOL RDO RJE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0FC5,
},
[0x0FC6]={
- ["category"]="mn",
- ["description"]="TIBETAN SYMBOL PADMA GDAN",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x0FC6, -- ࿆
+ category="mn",
+ description="TIBETAN SYMBOL PADMA GDAN",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x0FC6,
},
[0x0FC7]={
- ["category"]="so",
- ["description"]="TIBETAN SYMBOL RDO RJE RGYA GRAM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0FC7, -- ࿇
+ category="so",
+ description="TIBETAN SYMBOL RDO RJE RGYA GRAM",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0FC7,
},
[0x0FC8]={
- ["category"]="so",
- ["description"]="TIBETAN SYMBOL PHUR PA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0FC8, -- ࿈
+ category="so",
+ description="TIBETAN SYMBOL PHUR PA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0FC8,
},
[0x0FC9]={
- ["category"]="so",
- ["description"]="TIBETAN SYMBOL NOR BU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0FC9, -- ࿉
+ category="so",
+ description="TIBETAN SYMBOL NOR BU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0FC9,
},
[0x0FCA]={
- ["category"]="so",
- ["description"]="TIBETAN SYMBOL NOR BU NYIS -KHYIL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0FCA, -- ࿊
+ category="so",
+ description="TIBETAN SYMBOL NOR BU NYIS -KHYIL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0FCA,
},
[0x0FCB]={
- ["category"]="so",
- ["description"]="TIBETAN SYMBOL NOR BU GSUM -KHYIL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0FCB, -- ࿋
+ category="so",
+ description="TIBETAN SYMBOL NOR BU GSUM -KHYIL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0FCB,
},
[0x0FCC]={
- ["category"]="so",
- ["description"]="TIBETAN SYMBOL NOR BU BZHI -KHYIL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0FCC, -- ࿌
+ category="so",
+ description="TIBETAN SYMBOL NOR BU BZHI -KHYIL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0FCC,
},
[0x0FCF]={
- ["category"]="so",
- ["description"]="TIBETAN SIGN RDEL NAG GSUM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x0FCF, -- ࿏
+ category="so",
+ description="TIBETAN SIGN RDEL NAG GSUM",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x0FCF,
},
[0x0FD0]={
- ["category"]="po",
- ["description"]="TIBETAN MARK BSKA- SHOG GI MGO RGYAN",
- ["linebreak"]="bb",
- ["unicodeslot"]=0x0FD0, -- ࿐
+ category="po",
+ description="TIBETAN MARK BSKA- SHOG GI MGO RGYAN",
+ direction="l",
+ linebreak="bb",
+ unicodeslot=0x0FD0,
},
[0x0FD1]={
- ["category"]="po",
- ["description"]="TIBETAN MARK MNYAM YIG GI MGO RGYAN",
- ["linebreak"]="bb",
- ["unicodeslot"]=0x0FD1, -- ࿑
+ category="po",
+ description="TIBETAN MARK MNYAM YIG GI MGO RGYAN",
+ direction="l",
+ linebreak="bb",
+ unicodeslot=0x0FD1,
},
[0x1000]={
- ["category"]="lo",
- ["description"]="MYANMAR LETTER KA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1000, -- က
+ category="lo",
+ description="MYANMAR LETTER KA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1000,
},
[0x1001]={
- ["category"]="lo",
- ["description"]="MYANMAR LETTER KHA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1001, -- ခ
+ category="lo",
+ description="MYANMAR LETTER KHA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1001,
},
[0x1002]={
- ["category"]="lo",
- ["description"]="MYANMAR LETTER GA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1002, -- ဂ
+ category="lo",
+ description="MYANMAR LETTER GA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1002,
},
[0x1003]={
- ["category"]="lo",
- ["description"]="MYANMAR LETTER GHA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1003, -- ဃ
+ category="lo",
+ description="MYANMAR LETTER GHA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1003,
},
[0x1004]={
- ["category"]="lo",
- ["description"]="MYANMAR LETTER NGA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1004, -- င
+ category="lo",
+ description="MYANMAR LETTER NGA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1004,
},
[0x1005]={
- ["category"]="lo",
- ["description"]="MYANMAR LETTER CA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1005, -- စ
+ category="lo",
+ description="MYANMAR LETTER CA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1005,
},
[0x1006]={
- ["category"]="lo",
- ["description"]="MYANMAR LETTER CHA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1006, -- ဆ
+ category="lo",
+ description="MYANMAR LETTER CHA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1006,
},
[0x1007]={
- ["category"]="lo",
- ["description"]="MYANMAR LETTER JA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1007, -- ဇ
+ category="lo",
+ description="MYANMAR LETTER JA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1007,
},
[0x1008]={
- ["category"]="lo",
- ["description"]="MYANMAR LETTER JHA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1008, -- ဈ
+ category="lo",
+ description="MYANMAR LETTER JHA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1008,
},
[0x1009]={
- ["category"]="lo",
- ["description"]="MYANMAR LETTER NYA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1009, -- ဉ
+ category="lo",
+ description="MYANMAR LETTER NYA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1009,
},
[0x100A]={
- ["category"]="lo",
- ["description"]="MYANMAR LETTER NNYA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x100A, -- ည
+ category="lo",
+ description="MYANMAR LETTER NNYA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x100A,
},
[0x100B]={
- ["category"]="lo",
- ["description"]="MYANMAR LETTER TTA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x100B, -- ဋ
+ category="lo",
+ description="MYANMAR LETTER TTA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x100B,
},
[0x100C]={
- ["category"]="lo",
- ["description"]="MYANMAR LETTER TTHA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x100C, -- ဌ
+ category="lo",
+ description="MYANMAR LETTER TTHA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x100C,
},
[0x100D]={
- ["category"]="lo",
- ["description"]="MYANMAR LETTER DDA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x100D, -- ဍ
+ category="lo",
+ description="MYANMAR LETTER DDA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x100D,
},
[0x100E]={
- ["category"]="lo",
- ["description"]="MYANMAR LETTER DDHA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x100E, -- ဎ
+ category="lo",
+ description="MYANMAR LETTER DDHA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x100E,
},
[0x100F]={
- ["category"]="lo",
- ["description"]="MYANMAR LETTER NNA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x100F, -- ဏ
+ category="lo",
+ description="MYANMAR LETTER NNA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x100F,
},
[0x1010]={
- ["category"]="lo",
- ["description"]="MYANMAR LETTER TA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1010, -- တ
+ category="lo",
+ description="MYANMAR LETTER TA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1010,
},
[0x1011]={
- ["category"]="lo",
- ["description"]="MYANMAR LETTER THA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1011, -- ထ
+ category="lo",
+ description="MYANMAR LETTER THA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1011,
},
[0x1012]={
- ["category"]="lo",
- ["description"]="MYANMAR LETTER DA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1012, -- ဒ
+ category="lo",
+ description="MYANMAR LETTER DA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1012,
},
[0x1013]={
- ["category"]="lo",
- ["description"]="MYANMAR LETTER DHA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1013, -- ဓ
+ category="lo",
+ description="MYANMAR LETTER DHA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1013,
},
[0x1014]={
- ["category"]="lo",
- ["description"]="MYANMAR LETTER NA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1014, -- န
+ category="lo",
+ description="MYANMAR LETTER NA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1014,
},
[0x1015]={
- ["category"]="lo",
- ["description"]="MYANMAR LETTER PA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1015, -- ပ
+ category="lo",
+ description="MYANMAR LETTER PA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1015,
},
[0x1016]={
- ["category"]="lo",
- ["description"]="MYANMAR LETTER PHA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1016, -- ဖ
+ category="lo",
+ description="MYANMAR LETTER PHA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1016,
},
[0x1017]={
- ["category"]="lo",
- ["description"]="MYANMAR LETTER BA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1017, -- ဗ
+ category="lo",
+ description="MYANMAR LETTER BA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1017,
},
[0x1018]={
- ["category"]="lo",
- ["description"]="MYANMAR LETTER BHA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1018, -- ဘ
+ category="lo",
+ description="MYANMAR LETTER BHA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1018,
},
[0x1019]={
- ["category"]="lo",
- ["description"]="MYANMAR LETTER MA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1019, -- မ
+ category="lo",
+ description="MYANMAR LETTER MA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1019,
},
[0x101A]={
- ["category"]="lo",
- ["description"]="MYANMAR LETTER YA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x101A, -- ယ
+ category="lo",
+ description="MYANMAR LETTER YA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x101A,
},
[0x101B]={
- ["category"]="lo",
- ["description"]="MYANMAR LETTER RA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x101B, -- ရ
+ category="lo",
+ description="MYANMAR LETTER RA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x101B,
},
[0x101C]={
- ["category"]="lo",
- ["description"]="MYANMAR LETTER LA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x101C, -- လ
+ category="lo",
+ description="MYANMAR LETTER LA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x101C,
},
[0x101D]={
- ["category"]="lo",
- ["description"]="MYANMAR LETTER WA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x101D, -- ဝ
+ category="lo",
+ description="MYANMAR LETTER WA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x101D,
},
[0x101E]={
- ["category"]="lo",
- ["description"]="MYANMAR LETTER SA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x101E, -- သ
+ category="lo",
+ description="MYANMAR LETTER SA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x101E,
},
[0x101F]={
- ["category"]="lo",
- ["description"]="MYANMAR LETTER HA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x101F, -- ဟ
+ category="lo",
+ description="MYANMAR LETTER HA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x101F,
},
[0x1020]={
- ["category"]="lo",
- ["description"]="MYANMAR LETTER LLA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1020, -- ဠ
+ category="lo",
+ description="MYANMAR LETTER LLA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1020,
},
[0x1021]={
- ["category"]="lo",
- ["description"]="MYANMAR LETTER A",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1021, -- အ
+ category="lo",
+ description="MYANMAR LETTER A",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1021,
},
[0x1023]={
- ["category"]="lo",
- ["description"]="MYANMAR LETTER I",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1023, -- ဣ
+ category="lo",
+ description="MYANMAR LETTER I",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1023,
},
[0x1024]={
- ["category"]="lo",
- ["description"]="MYANMAR LETTER II",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1024, -- ဤ
+ category="lo",
+ description="MYANMAR LETTER II",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1024,
},
[0x1025]={
- ["category"]="lo",
- ["description"]="MYANMAR LETTER U",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1025, -- ဥ
+ category="lo",
+ description="MYANMAR LETTER U",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1025,
},
[0x1026]={
- ["category"]="lo",
- ["description"]="MYANMAR LETTER UU",
- ["linebreak"]="sa",
- ["specials"]={ "char", 0x1025, 0x102E },
- ["unicodeslot"]=0x1026, -- ဦ
+ category="lo",
+ description="MYANMAR LETTER UU",
+ direction="l",
+ linebreak="sa",
+ specials={ "char", 0x1025, 0x102E },
+ unicodeslot=0x1026,
},
[0x1027]={
- ["category"]="lo",
- ["description"]="MYANMAR LETTER E",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1027, -- ဧ
+ category="lo",
+ description="MYANMAR LETTER E",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1027,
},
[0x1029]={
- ["category"]="lo",
- ["description"]="MYANMAR LETTER O",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1029, -- ဩ
+ category="lo",
+ description="MYANMAR LETTER O",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1029,
},
[0x102A]={
- ["category"]="lo",
- ["description"]="MYANMAR LETTER AU",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x102A, -- ဪ
+ category="lo",
+ description="MYANMAR LETTER AU",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x102A,
},
[0x102C]={
- ["category"]="mc",
- ["description"]="MYANMAR VOWEL SIGN AA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x102C, -- ာ
+ category="mc",
+ description="MYANMAR VOWEL SIGN AA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x102C,
},
[0x102D]={
- ["category"]="mn",
- ["description"]="MYANMAR VOWEL SIGN I",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x102D, -- ိ
+ category="mn",
+ description="MYANMAR VOWEL SIGN I",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x102D,
},
[0x102E]={
- ["category"]="mn",
- ["description"]="MYANMAR VOWEL SIGN II",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x102E, -- ီ
+ category="mn",
+ description="MYANMAR VOWEL SIGN II",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x102E,
},
[0x102F]={
- ["category"]="mn",
- ["description"]="MYANMAR VOWEL SIGN U",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x102F, -- ု
+ category="mn",
+ description="MYANMAR VOWEL SIGN U",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x102F,
},
[0x1030]={
- ["category"]="mn",
- ["description"]="MYANMAR VOWEL SIGN UU",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1030, -- ူ
+ category="mn",
+ description="MYANMAR VOWEL SIGN UU",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x1030,
},
[0x1031]={
- ["category"]="mc",
- ["description"]="MYANMAR VOWEL SIGN E",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1031, -- ေ
+ category="mc",
+ description="MYANMAR VOWEL SIGN E",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1031,
},
[0x1032]={
- ["category"]="mn",
- ["description"]="MYANMAR VOWEL SIGN AI",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1032, -- ဲ
+ category="mn",
+ description="MYANMAR VOWEL SIGN AI",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x1032,
},
[0x1036]={
- ["category"]="mn",
- ["description"]="MYANMAR SIGN ANUSVARA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1036, -- ံ
+ category="mn",
+ description="MYANMAR SIGN ANUSVARA",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x1036,
},
[0x1037]={
- ["category"]="mn",
- ["description"]="MYANMAR SIGN DOT BELOW",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1037, -- ့
+ category="mn",
+ description="MYANMAR SIGN DOT BELOW",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x1037,
},
[0x1038]={
- ["category"]="mc",
- ["description"]="MYANMAR SIGN VISARGA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1038, -- း
+ category="mc",
+ description="MYANMAR SIGN VISARGA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1038,
},
[0x1039]={
- ["category"]="mn",
- ["description"]="MYANMAR SIGN VIRAMA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1039, -- ္
+ category="mn",
+ description="MYANMAR SIGN VIRAMA",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x1039,
},
[0x1040]={
- ["category"]="nd",
- ["description"]="MYANMAR DIGIT ZERO",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x1040, -- ၀
+ category="nd",
+ description="MYANMAR DIGIT ZERO",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x1040,
},
[0x1041]={
- ["category"]="nd",
- ["description"]="MYANMAR DIGIT ONE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x1041, -- ၁
+ category="nd",
+ description="MYANMAR DIGIT ONE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x1041,
},
[0x1042]={
- ["category"]="nd",
- ["description"]="MYANMAR DIGIT TWO",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x1042, -- ၂
+ category="nd",
+ description="MYANMAR DIGIT TWO",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x1042,
},
[0x1043]={
- ["category"]="nd",
- ["description"]="MYANMAR DIGIT THREE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x1043, -- ၃
+ category="nd",
+ description="MYANMAR DIGIT THREE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x1043,
},
[0x1044]={
- ["category"]="nd",
- ["description"]="MYANMAR DIGIT FOUR",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x1044, -- ၄
+ category="nd",
+ description="MYANMAR DIGIT FOUR",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x1044,
},
[0x1045]={
- ["category"]="nd",
- ["description"]="MYANMAR DIGIT FIVE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x1045, -- ၅
+ category="nd",
+ description="MYANMAR DIGIT FIVE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x1045,
},
[0x1046]={
- ["category"]="nd",
- ["description"]="MYANMAR DIGIT SIX",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x1046, -- ၆
+ category="nd",
+ description="MYANMAR DIGIT SIX",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x1046,
},
[0x1047]={
- ["category"]="nd",
- ["description"]="MYANMAR DIGIT SEVEN",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x1047, -- ၇
+ category="nd",
+ description="MYANMAR DIGIT SEVEN",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x1047,
},
[0x1048]={
- ["category"]="nd",
- ["description"]="MYANMAR DIGIT EIGHT",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x1048, -- ၈
+ category="nd",
+ description="MYANMAR DIGIT EIGHT",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x1048,
},
[0x1049]={
- ["category"]="nd",
- ["description"]="MYANMAR DIGIT NINE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x1049, -- ၉
+ category="nd",
+ description="MYANMAR DIGIT NINE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x1049,
},
[0x104A]={
- ["category"]="po",
- ["description"]="MYANMAR SIGN LITTLE SECTION",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x104A, -- ၊
+ category="po",
+ description="MYANMAR SIGN LITTLE SECTION",
+ direction="l",
+ linebreak="ba",
+ unicodeslot=0x104A,
},
[0x104B]={
- ["category"]="po",
- ["description"]="MYANMAR SIGN SECTION",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x104B, -- ။
+ category="po",
+ description="MYANMAR SIGN SECTION",
+ direction="l",
+ linebreak="ba",
+ unicodeslot=0x104B,
},
[0x104C]={
- ["category"]="po",
- ["description"]="MYANMAR SYMBOL LOCATIVE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x104C, -- ၌
+ category="po",
+ description="MYANMAR SYMBOL LOCATIVE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x104C,
},
[0x104D]={
- ["category"]="po",
- ["description"]="MYANMAR SYMBOL COMPLETED",
- ["linebreak"]="al",
- ["unicodeslot"]=0x104D, -- ၍
+ category="po",
+ description="MYANMAR SYMBOL COMPLETED",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x104D,
},
[0x104E]={
- ["category"]="po",
- ["description"]="MYANMAR SYMBOL AFOREMENTIONED",
- ["linebreak"]="al",
- ["unicodeslot"]=0x104E, -- ၎
+ category="po",
+ description="MYANMAR SYMBOL AFOREMENTIONED",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x104E,
},
[0x104F]={
- ["category"]="po",
- ["description"]="MYANMAR SYMBOL GENITIVE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x104F, -- ၏
+ category="po",
+ description="MYANMAR SYMBOL GENITIVE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x104F,
},
[0x1050]={
- ["category"]="lo",
- ["description"]="MYANMAR LETTER SHA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1050, -- ၐ
+ category="lo",
+ description="MYANMAR LETTER SHA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1050,
},
[0x1051]={
- ["category"]="lo",
- ["description"]="MYANMAR LETTER SSA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1051, -- ၑ
+ category="lo",
+ description="MYANMAR LETTER SSA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1051,
},
[0x1052]={
- ["category"]="lo",
- ["description"]="MYANMAR LETTER VOCALIC R",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1052, -- ၒ
+ category="lo",
+ description="MYANMAR LETTER VOCALIC R",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1052,
},
[0x1053]={
- ["category"]="lo",
- ["description"]="MYANMAR LETTER VOCALIC RR",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1053, -- ၓ
+ category="lo",
+ description="MYANMAR LETTER VOCALIC RR",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1053,
},
[0x1054]={
- ["category"]="lo",
- ["description"]="MYANMAR LETTER VOCALIC L",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1054, -- ၔ
+ category="lo",
+ description="MYANMAR LETTER VOCALIC L",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1054,
},
[0x1055]={
- ["category"]="lo",
- ["description"]="MYANMAR LETTER VOCALIC LL",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1055, -- ၕ
+ category="lo",
+ description="MYANMAR LETTER VOCALIC LL",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1055,
},
[0x1056]={
- ["category"]="mc",
- ["description"]="MYANMAR VOWEL SIGN VOCALIC R",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1056, -- ၖ
+ category="mc",
+ description="MYANMAR VOWEL SIGN VOCALIC R",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1056,
},
[0x1057]={
- ["category"]="mc",
- ["description"]="MYANMAR VOWEL SIGN VOCALIC RR",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1057, -- ၗ
+ category="mc",
+ description="MYANMAR VOWEL SIGN VOCALIC RR",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1057,
},
[0x1058]={
- ["category"]="mn",
- ["description"]="MYANMAR VOWEL SIGN VOCALIC L",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1058, -- ၘ
+ category="mn",
+ description="MYANMAR VOWEL SIGN VOCALIC L",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x1058,
},
[0x1059]={
- ["category"]="mn",
- ["description"]="MYANMAR VOWEL SIGN VOCALIC LL",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1059, -- ၙ
+ category="mn",
+ description="MYANMAR VOWEL SIGN VOCALIC LL",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x1059,
},
[0x10A0]={
- ["category"]="lu",
- ["description"]="GEORGIAN CAPITAL LETTER AN",
- ["lccode"]=0x2D00,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10A0, -- Ⴀ
+ category="lu",
+ description="GEORGIAN CAPITAL LETTER AN",
+ direction="l",
+ lccode=0x2D00,
+ linebreak="al",
+ unicodeslot=0x10A0,
},
[0x10A1]={
- ["category"]="lu",
- ["description"]="GEORGIAN CAPITAL LETTER BAN",
- ["lccode"]=0x2D01,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10A1, -- Ⴁ
+ category="lu",
+ description="GEORGIAN CAPITAL LETTER BAN",
+ direction="l",
+ lccode=0x2D01,
+ linebreak="al",
+ unicodeslot=0x10A1,
},
[0x10A2]={
- ["category"]="lu",
- ["description"]="GEORGIAN CAPITAL LETTER GAN",
- ["lccode"]=0x2D02,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10A2, -- Ⴂ
+ category="lu",
+ description="GEORGIAN CAPITAL LETTER GAN",
+ direction="l",
+ lccode=0x2D02,
+ linebreak="al",
+ unicodeslot=0x10A2,
},
[0x10A3]={
- ["category"]="lu",
- ["description"]="GEORGIAN CAPITAL LETTER DON",
- ["lccode"]=0x2D03,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10A3, -- Ⴃ
+ category="lu",
+ description="GEORGIAN CAPITAL LETTER DON",
+ direction="l",
+ lccode=0x2D03,
+ linebreak="al",
+ unicodeslot=0x10A3,
},
[0x10A4]={
- ["category"]="lu",
- ["description"]="GEORGIAN CAPITAL LETTER EN",
- ["lccode"]=0x2D04,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10A4, -- Ⴄ
+ category="lu",
+ description="GEORGIAN CAPITAL LETTER EN",
+ direction="l",
+ lccode=0x2D04,
+ linebreak="al",
+ unicodeslot=0x10A4,
},
[0x10A5]={
- ["category"]="lu",
- ["description"]="GEORGIAN CAPITAL LETTER VIN",
- ["lccode"]=0x2D05,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10A5, -- Ⴅ
+ category="lu",
+ description="GEORGIAN CAPITAL LETTER VIN",
+ direction="l",
+ lccode=0x2D05,
+ linebreak="al",
+ unicodeslot=0x10A5,
},
[0x10A6]={
- ["category"]="lu",
- ["description"]="GEORGIAN CAPITAL LETTER ZEN",
- ["lccode"]=0x2D06,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10A6, -- Ⴆ
+ category="lu",
+ description="GEORGIAN CAPITAL LETTER ZEN",
+ direction="l",
+ lccode=0x2D06,
+ linebreak="al",
+ unicodeslot=0x10A6,
},
[0x10A7]={
- ["category"]="lu",
- ["description"]="GEORGIAN CAPITAL LETTER TAN",
- ["lccode"]=0x2D07,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10A7, -- Ⴇ
+ category="lu",
+ description="GEORGIAN CAPITAL LETTER TAN",
+ direction="l",
+ lccode=0x2D07,
+ linebreak="al",
+ unicodeslot=0x10A7,
},
[0x10A8]={
- ["category"]="lu",
- ["description"]="GEORGIAN CAPITAL LETTER IN",
- ["lccode"]=0x2D08,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10A8, -- Ⴈ
+ category="lu",
+ description="GEORGIAN CAPITAL LETTER IN",
+ direction="l",
+ lccode=0x2D08,
+ linebreak="al",
+ unicodeslot=0x10A8,
},
[0x10A9]={
- ["category"]="lu",
- ["description"]="GEORGIAN CAPITAL LETTER KAN",
- ["lccode"]=0x2D09,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10A9, -- Ⴉ
+ category="lu",
+ description="GEORGIAN CAPITAL LETTER KAN",
+ direction="l",
+ lccode=0x2D09,
+ linebreak="al",
+ unicodeslot=0x10A9,
},
[0x10AA]={
- ["category"]="lu",
- ["description"]="GEORGIAN CAPITAL LETTER LAS",
- ["lccode"]=0x2D0A,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10AA, -- Ⴊ
+ category="lu",
+ description="GEORGIAN CAPITAL LETTER LAS",
+ direction="l",
+ lccode=0x2D0A,
+ linebreak="al",
+ unicodeslot=0x10AA,
},
[0x10AB]={
- ["category"]="lu",
- ["description"]="GEORGIAN CAPITAL LETTER MAN",
- ["lccode"]=0x2D0B,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10AB, -- Ⴋ
+ category="lu",
+ description="GEORGIAN CAPITAL LETTER MAN",
+ direction="l",
+ lccode=0x2D0B,
+ linebreak="al",
+ unicodeslot=0x10AB,
},
[0x10AC]={
- ["category"]="lu",
- ["description"]="GEORGIAN CAPITAL LETTER NAR",
- ["lccode"]=0x2D0C,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10AC, -- Ⴌ
+ category="lu",
+ description="GEORGIAN CAPITAL LETTER NAR",
+ direction="l",
+ lccode=0x2D0C,
+ linebreak="al",
+ unicodeslot=0x10AC,
},
[0x10AD]={
- ["category"]="lu",
- ["description"]="GEORGIAN CAPITAL LETTER ON",
- ["lccode"]=0x2D0D,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10AD, -- Ⴍ
+ category="lu",
+ description="GEORGIAN CAPITAL LETTER ON",
+ direction="l",
+ lccode=0x2D0D,
+ linebreak="al",
+ unicodeslot=0x10AD,
},
[0x10AE]={
- ["category"]="lu",
- ["description"]="GEORGIAN CAPITAL LETTER PAR",
- ["lccode"]=0x2D0E,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10AE, -- Ⴎ
+ category="lu",
+ description="GEORGIAN CAPITAL LETTER PAR",
+ direction="l",
+ lccode=0x2D0E,
+ linebreak="al",
+ unicodeslot=0x10AE,
},
[0x10AF]={
- ["category"]="lu",
- ["description"]="GEORGIAN CAPITAL LETTER ZHAR",
- ["lccode"]=0x2D0F,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10AF, -- Ⴏ
+ category="lu",
+ description="GEORGIAN CAPITAL LETTER ZHAR",
+ direction="l",
+ lccode=0x2D0F,
+ linebreak="al",
+ unicodeslot=0x10AF,
},
[0x10B0]={
- ["category"]="lu",
- ["description"]="GEORGIAN CAPITAL LETTER RAE",
- ["lccode"]=0x2D10,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10B0, -- Ⴐ
+ category="lu",
+ description="GEORGIAN CAPITAL LETTER RAE",
+ direction="l",
+ lccode=0x2D10,
+ linebreak="al",
+ unicodeslot=0x10B0,
},
[0x10B1]={
- ["category"]="lu",
- ["description"]="GEORGIAN CAPITAL LETTER SAN",
- ["lccode"]=0x2D11,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10B1, -- Ⴑ
+ category="lu",
+ description="GEORGIAN CAPITAL LETTER SAN",
+ direction="l",
+ lccode=0x2D11,
+ linebreak="al",
+ unicodeslot=0x10B1,
},
[0x10B2]={
- ["category"]="lu",
- ["description"]="GEORGIAN CAPITAL LETTER TAR",
- ["lccode"]=0x2D12,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10B2, -- Ⴒ
+ category="lu",
+ description="GEORGIAN CAPITAL LETTER TAR",
+ direction="l",
+ lccode=0x2D12,
+ linebreak="al",
+ unicodeslot=0x10B2,
},
[0x10B3]={
- ["category"]="lu",
- ["description"]="GEORGIAN CAPITAL LETTER UN",
- ["lccode"]=0x2D13,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10B3, -- Ⴓ
+ category="lu",
+ description="GEORGIAN CAPITAL LETTER UN",
+ direction="l",
+ lccode=0x2D13,
+ linebreak="al",
+ unicodeslot=0x10B3,
},
[0x10B4]={
- ["category"]="lu",
- ["description"]="GEORGIAN CAPITAL LETTER PHAR",
- ["lccode"]=0x2D14,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10B4, -- Ⴔ
+ category="lu",
+ description="GEORGIAN CAPITAL LETTER PHAR",
+ direction="l",
+ lccode=0x2D14,
+ linebreak="al",
+ unicodeslot=0x10B4,
},
[0x10B5]={
- ["category"]="lu",
- ["description"]="GEORGIAN CAPITAL LETTER KHAR",
- ["lccode"]=0x2D15,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10B5, -- Ⴕ
+ category="lu",
+ description="GEORGIAN CAPITAL LETTER KHAR",
+ direction="l",
+ lccode=0x2D15,
+ linebreak="al",
+ unicodeslot=0x10B5,
},
[0x10B6]={
- ["category"]="lu",
- ["description"]="GEORGIAN CAPITAL LETTER GHAN",
- ["lccode"]=0x2D16,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10B6, -- Ⴖ
+ category="lu",
+ description="GEORGIAN CAPITAL LETTER GHAN",
+ direction="l",
+ lccode=0x2D16,
+ linebreak="al",
+ unicodeslot=0x10B6,
},
[0x10B7]={
- ["category"]="lu",
- ["description"]="GEORGIAN CAPITAL LETTER QAR",
- ["lccode"]=0x2D17,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10B7, -- Ⴗ
+ category="lu",
+ description="GEORGIAN CAPITAL LETTER QAR",
+ direction="l",
+ lccode=0x2D17,
+ linebreak="al",
+ unicodeslot=0x10B7,
},
[0x10B8]={
- ["category"]="lu",
- ["description"]="GEORGIAN CAPITAL LETTER SHIN",
- ["lccode"]=0x2D18,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10B8, -- Ⴘ
+ category="lu",
+ description="GEORGIAN CAPITAL LETTER SHIN",
+ direction="l",
+ lccode=0x2D18,
+ linebreak="al",
+ unicodeslot=0x10B8,
},
[0x10B9]={
- ["category"]="lu",
- ["description"]="GEORGIAN CAPITAL LETTER CHIN",
- ["lccode"]=0x2D19,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10B9, -- Ⴙ
+ category="lu",
+ description="GEORGIAN CAPITAL LETTER CHIN",
+ direction="l",
+ lccode=0x2D19,
+ linebreak="al",
+ unicodeslot=0x10B9,
},
[0x10BA]={
- ["category"]="lu",
- ["description"]="GEORGIAN CAPITAL LETTER CAN",
- ["lccode"]=0x2D1A,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10BA, -- Ⴚ
+ category="lu",
+ description="GEORGIAN CAPITAL LETTER CAN",
+ direction="l",
+ lccode=0x2D1A,
+ linebreak="al",
+ unicodeslot=0x10BA,
},
[0x10BB]={
- ["category"]="lu",
- ["description"]="GEORGIAN CAPITAL LETTER JIL",
- ["lccode"]=0x2D1B,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10BB, -- Ⴛ
+ category="lu",
+ description="GEORGIAN CAPITAL LETTER JIL",
+ direction="l",
+ lccode=0x2D1B,
+ linebreak="al",
+ unicodeslot=0x10BB,
},
[0x10BC]={
- ["category"]="lu",
- ["description"]="GEORGIAN CAPITAL LETTER CIL",
- ["lccode"]=0x2D1C,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10BC, -- Ⴜ
+ category="lu",
+ description="GEORGIAN CAPITAL LETTER CIL",
+ direction="l",
+ lccode=0x2D1C,
+ linebreak="al",
+ unicodeslot=0x10BC,
},
[0x10BD]={
- ["category"]="lu",
- ["description"]="GEORGIAN CAPITAL LETTER CHAR",
- ["lccode"]=0x2D1D,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10BD, -- Ⴝ
+ category="lu",
+ description="GEORGIAN CAPITAL LETTER CHAR",
+ direction="l",
+ lccode=0x2D1D,
+ linebreak="al",
+ unicodeslot=0x10BD,
},
[0x10BE]={
- ["category"]="lu",
- ["description"]="GEORGIAN CAPITAL LETTER XAN",
- ["lccode"]=0x2D1E,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10BE, -- Ⴞ
+ category="lu",
+ description="GEORGIAN CAPITAL LETTER XAN",
+ direction="l",
+ lccode=0x2D1E,
+ linebreak="al",
+ unicodeslot=0x10BE,
},
[0x10BF]={
- ["category"]="lu",
- ["description"]="GEORGIAN CAPITAL LETTER JHAN",
- ["lccode"]=0x2D1F,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10BF, -- Ⴟ
+ category="lu",
+ description="GEORGIAN CAPITAL LETTER JHAN",
+ direction="l",
+ lccode=0x2D1F,
+ linebreak="al",
+ unicodeslot=0x10BF,
},
[0x10C0]={
- ["category"]="lu",
- ["description"]="GEORGIAN CAPITAL LETTER HAE",
- ["lccode"]=0x2D20,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10C0, -- Ⴠ
+ category="lu",
+ description="GEORGIAN CAPITAL LETTER HAE",
+ direction="l",
+ lccode=0x2D20,
+ linebreak="al",
+ unicodeslot=0x10C0,
},
[0x10C1]={
- ["category"]="lu",
- ["description"]="GEORGIAN CAPITAL LETTER HE",
- ["lccode"]=0x2D21,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10C1, -- Ⴡ
+ category="lu",
+ description="GEORGIAN CAPITAL LETTER HE",
+ direction="l",
+ lccode=0x2D21,
+ linebreak="al",
+ unicodeslot=0x10C1,
},
[0x10C2]={
- ["category"]="lu",
- ["description"]="GEORGIAN CAPITAL LETTER HIE",
- ["lccode"]=0x2D22,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10C2, -- Ⴢ
+ category="lu",
+ description="GEORGIAN CAPITAL LETTER HIE",
+ direction="l",
+ lccode=0x2D22,
+ linebreak="al",
+ unicodeslot=0x10C2,
},
[0x10C3]={
- ["category"]="lu",
- ["description"]="GEORGIAN CAPITAL LETTER WE",
- ["lccode"]=0x2D23,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10C3, -- Ⴣ
+ category="lu",
+ description="GEORGIAN CAPITAL LETTER WE",
+ direction="l",
+ lccode=0x2D23,
+ linebreak="al",
+ unicodeslot=0x10C3,
},
[0x10C4]={
- ["category"]="lu",
- ["description"]="GEORGIAN CAPITAL LETTER HAR",
- ["lccode"]=0x2D24,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10C4, -- Ⴤ
+ category="lu",
+ description="GEORGIAN CAPITAL LETTER HAR",
+ direction="l",
+ lccode=0x2D24,
+ linebreak="al",
+ unicodeslot=0x10C4,
},
[0x10C5]={
- ["category"]="lu",
- ["description"]="GEORGIAN CAPITAL LETTER HOE",
- ["lccode"]=0x2D25,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10C5, -- Ⴥ
+ category="lu",
+ description="GEORGIAN CAPITAL LETTER HOE",
+ direction="l",
+ lccode=0x2D25,
+ linebreak="al",
+ unicodeslot=0x10C5,
},
[0x10D0]={
- ["category"]="lo",
- ["description"]="GEORGIAN LETTER AN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10D0, -- ა
+ category="lo",
+ description="GEORGIAN LETTER AN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10D0,
},
[0x10D1]={
- ["category"]="lo",
- ["description"]="GEORGIAN LETTER BAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10D1, -- ბ
+ category="lo",
+ description="GEORGIAN LETTER BAN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10D1,
},
[0x10D2]={
- ["category"]="lo",
- ["description"]="GEORGIAN LETTER GAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10D2, -- გ
+ category="lo",
+ description="GEORGIAN LETTER GAN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10D2,
},
[0x10D3]={
- ["category"]="lo",
- ["description"]="GEORGIAN LETTER DON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10D3, -- დ
+ category="lo",
+ description="GEORGIAN LETTER DON",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10D3,
},
[0x10D4]={
- ["category"]="lo",
- ["description"]="GEORGIAN LETTER EN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10D4, -- ე
+ category="lo",
+ description="GEORGIAN LETTER EN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10D4,
},
[0x10D5]={
- ["category"]="lo",
- ["description"]="GEORGIAN LETTER VIN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10D5, -- ვ
+ category="lo",
+ description="GEORGIAN LETTER VIN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10D5,
},
[0x10D6]={
- ["category"]="lo",
- ["description"]="GEORGIAN LETTER ZEN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10D6, -- ზ
+ category="lo",
+ description="GEORGIAN LETTER ZEN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10D6,
},
[0x10D7]={
- ["category"]="lo",
- ["description"]="GEORGIAN LETTER TAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10D7, -- თ
+ category="lo",
+ description="GEORGIAN LETTER TAN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10D7,
},
[0x10D8]={
- ["category"]="lo",
- ["description"]="GEORGIAN LETTER IN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10D8, -- ი
+ category="lo",
+ description="GEORGIAN LETTER IN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10D8,
},
[0x10D9]={
- ["category"]="lo",
- ["description"]="GEORGIAN LETTER KAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10D9, -- კ
+ category="lo",
+ description="GEORGIAN LETTER KAN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10D9,
},
[0x10DA]={
- ["category"]="lo",
- ["description"]="GEORGIAN LETTER LAS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10DA, -- ლ
+ category="lo",
+ description="GEORGIAN LETTER LAS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10DA,
},
[0x10DB]={
- ["category"]="lo",
- ["description"]="GEORGIAN LETTER MAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10DB, -- მ
+ category="lo",
+ description="GEORGIAN LETTER MAN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10DB,
},
[0x10DC]={
- ["category"]="lo",
- ["description"]="GEORGIAN LETTER NAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10DC, -- ნ
+ category="lo",
+ description="GEORGIAN LETTER NAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10DC,
},
[0x10DD]={
- ["category"]="lo",
- ["description"]="GEORGIAN LETTER ON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10DD, -- ო
+ category="lo",
+ description="GEORGIAN LETTER ON",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10DD,
},
[0x10DE]={
- ["category"]="lo",
- ["description"]="GEORGIAN LETTER PAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10DE, -- პ
+ category="lo",
+ description="GEORGIAN LETTER PAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10DE,
},
[0x10DF]={
- ["category"]="lo",
- ["description"]="GEORGIAN LETTER ZHAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10DF, -- ჟ
+ category="lo",
+ description="GEORGIAN LETTER ZHAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10DF,
},
[0x10E0]={
- ["category"]="lo",
- ["description"]="GEORGIAN LETTER RAE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10E0, -- რ
+ category="lo",
+ description="GEORGIAN LETTER RAE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10E0,
},
[0x10E1]={
- ["category"]="lo",
- ["description"]="GEORGIAN LETTER SAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10E1, -- ს
+ category="lo",
+ description="GEORGIAN LETTER SAN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10E1,
},
[0x10E2]={
- ["category"]="lo",
- ["description"]="GEORGIAN LETTER TAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10E2, -- ტ
+ category="lo",
+ description="GEORGIAN LETTER TAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10E2,
},
[0x10E3]={
- ["category"]="lo",
- ["description"]="GEORGIAN LETTER UN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10E3, -- უ
+ category="lo",
+ description="GEORGIAN LETTER UN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10E3,
},
[0x10E4]={
- ["category"]="lo",
- ["description"]="GEORGIAN LETTER PHAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10E4, -- ფ
+ category="lo",
+ description="GEORGIAN LETTER PHAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10E4,
},
[0x10E5]={
- ["category"]="lo",
- ["description"]="GEORGIAN LETTER KHAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10E5, -- ქ
+ category="lo",
+ description="GEORGIAN LETTER KHAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10E5,
},
[0x10E6]={
- ["category"]="lo",
- ["description"]="GEORGIAN LETTER GHAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10E6, -- ღ
+ category="lo",
+ description="GEORGIAN LETTER GHAN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10E6,
},
[0x10E7]={
- ["category"]="lo",
- ["description"]="GEORGIAN LETTER QAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10E7, -- ყ
+ category="lo",
+ description="GEORGIAN LETTER QAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10E7,
},
[0x10E8]={
- ["category"]="lo",
- ["description"]="GEORGIAN LETTER SHIN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10E8, -- შ
+ category="lo",
+ description="GEORGIAN LETTER SHIN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10E8,
},
[0x10E9]={
- ["category"]="lo",
- ["description"]="GEORGIAN LETTER CHIN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10E9, -- ჩ
+ category="lo",
+ description="GEORGIAN LETTER CHIN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10E9,
},
[0x10EA]={
- ["category"]="lo",
- ["description"]="GEORGIAN LETTER CAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10EA, -- ც
+ category="lo",
+ description="GEORGIAN LETTER CAN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10EA,
},
[0x10EB]={
- ["category"]="lo",
- ["description"]="GEORGIAN LETTER JIL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10EB, -- ძ
+ category="lo",
+ description="GEORGIAN LETTER JIL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10EB,
},
[0x10EC]={
- ["category"]="lo",
- ["description"]="GEORGIAN LETTER CIL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10EC, -- წ
+ category="lo",
+ description="GEORGIAN LETTER CIL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10EC,
},
[0x10ED]={
- ["category"]="lo",
- ["description"]="GEORGIAN LETTER CHAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10ED, -- ჭ
+ category="lo",
+ description="GEORGIAN LETTER CHAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10ED,
},
[0x10EE]={
- ["category"]="lo",
- ["description"]="GEORGIAN LETTER XAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10EE, -- ხ
+ category="lo",
+ description="GEORGIAN LETTER XAN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10EE,
},
[0x10EF]={
- ["category"]="lo",
- ["description"]="GEORGIAN LETTER JHAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10EF, -- ჯ
+ category="lo",
+ description="GEORGIAN LETTER JHAN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10EF,
},
[0x10F0]={
- ["category"]="lo",
- ["description"]="GEORGIAN LETTER HAE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10F0, -- ჰ
+ category="lo",
+ description="GEORGIAN LETTER HAE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10F0,
},
[0x10F1]={
- ["category"]="lo",
- ["description"]="GEORGIAN LETTER HE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10F1, -- ჱ
+ category="lo",
+ description="GEORGIAN LETTER HE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10F1,
},
[0x10F2]={
- ["category"]="lo",
- ["description"]="GEORGIAN LETTER HIE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10F2, -- ჲ
+ category="lo",
+ description="GEORGIAN LETTER HIE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10F2,
},
[0x10F3]={
- ["category"]="lo",
- ["description"]="GEORGIAN LETTER WE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10F3, -- ჳ
+ category="lo",
+ description="GEORGIAN LETTER WE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10F3,
},
[0x10F4]={
- ["category"]="lo",
- ["description"]="GEORGIAN LETTER HAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10F4, -- ჴ
+ category="lo",
+ description="GEORGIAN LETTER HAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10F4,
},
[0x10F5]={
- ["category"]="lo",
- ["description"]="GEORGIAN LETTER HOE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10F5, -- ჵ
+ category="lo",
+ description="GEORGIAN LETTER HOE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10F5,
},
[0x10F6]={
- ["category"]="lo",
- ["description"]="GEORGIAN LETTER FI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10F6, -- ჶ
+ category="lo",
+ description="GEORGIAN LETTER FI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10F6,
},
[0x10F7]={
- ["category"]="lo",
- ["description"]="GEORGIAN LETTER YN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10F7, -- ჷ
+ category="lo",
+ description="GEORGIAN LETTER YN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10F7,
},
[0x10F8]={
- ["category"]="lo",
- ["description"]="GEORGIAN LETTER ELIFI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10F8, -- ჸ
+ category="lo",
+ description="GEORGIAN LETTER ELIFI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10F8,
},
[0x10F9]={
- ["category"]="lo",
- ["description"]="GEORGIAN LETTER TURNED GAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10F9, -- ჹ
+ category="lo",
+ description="GEORGIAN LETTER TURNED GAN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10F9,
},
[0x10FA]={
- ["category"]="lo",
- ["description"]="GEORGIAN LETTER AIN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10FA, -- ჺ
+ category="lo",
+ description="GEORGIAN LETTER AIN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10FA,
},
[0x10FB]={
- ["category"]="po",
- ["description"]="GEORGIAN PARAGRAPH SEPARATOR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10FB, -- ჻
+ category="po",
+ description="GEORGIAN PARAGRAPH SEPARATOR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10FB,
},
[0x10FC]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER GEORGIAN NAR",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x10DC },
- ["unicodeslot"]=0x10FC, -- ჼ
+ category="lm",
+ description="MODIFIER LETTER GEORGIAN NAR",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x10DC },
+ unicodeslot=0x10FC,
},
[0x1100]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG KIYEOK",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x1100, -- ᄀ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG KIYEOK",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x1100,
},
[0x1101]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG SSANGKIYEOK",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x1101, -- ᄁ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG SSANGKIYEOK",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x1101,
},
[0x1102]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG NIEUN",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x1102, -- ᄂ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG NIEUN",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x1102,
},
[0x1103]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG TIKEUT",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x1103, -- ᄃ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG TIKEUT",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x1103,
},
[0x1104]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG SSANGTIKEUT",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x1104, -- ᄄ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG SSANGTIKEUT",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x1104,
},
[0x1105]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG RIEUL",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x1105, -- ᄅ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG RIEUL",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x1105,
},
[0x1106]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG MIEUM",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x1106, -- ᄆ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG MIEUM",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x1106,
},
[0x1107]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG PIEUP",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x1107, -- ᄇ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG PIEUP",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x1107,
},
[0x1108]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG SSANGPIEUP",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x1108, -- ᄈ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG SSANGPIEUP",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x1108,
},
[0x1109]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG SIOS",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x1109, -- ᄉ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG SIOS",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x1109,
},
[0x110A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG SSANGSIOS",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x110A, -- ᄊ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG SSANGSIOS",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x110A,
},
[0x110B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG IEUNG",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x110B, -- ᄋ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG IEUNG",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x110B,
},
[0x110C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG CIEUC",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x110C, -- ᄌ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG CIEUC",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x110C,
},
[0x110D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG SSANGCIEUC",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x110D, -- ᄍ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG SSANGCIEUC",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x110D,
},
[0x110E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG CHIEUCH",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x110E, -- ᄎ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG CHIEUCH",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x110E,
},
[0x110F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG KHIEUKH",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x110F, -- ᄏ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG KHIEUKH",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x110F,
},
[0x1110]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG THIEUTH",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x1110, -- ᄐ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG THIEUTH",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x1110,
},
[0x1111]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG PHIEUPH",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x1111, -- ᄑ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG PHIEUPH",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x1111,
},
[0x1112]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG HIEUH",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x1112, -- ᄒ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG HIEUH",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x1112,
},
[0x1113]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG NIEUN-KIYEOK",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x1113, -- ᄓ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG NIEUN-KIYEOK",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x1113,
},
[0x1114]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG SSANGNIEUN",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x1114, -- ᄔ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG SSANGNIEUN",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x1114,
},
[0x1115]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG NIEUN-TIKEUT",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x1115, -- ᄕ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG NIEUN-TIKEUT",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x1115,
},
[0x1116]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG NIEUN-PIEUP",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x1116, -- ᄖ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG NIEUN-PIEUP",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x1116,
},
[0x1117]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG TIKEUT-KIYEOK",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x1117, -- ᄗ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG TIKEUT-KIYEOK",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x1117,
},
[0x1118]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG RIEUL-NIEUN",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x1118, -- ᄘ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG RIEUL-NIEUN",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x1118,
},
[0x1119]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG SSANGRIEUL",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x1119, -- ᄙ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG SSANGRIEUL",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x1119,
},
[0x111A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG RIEUL-HIEUH",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x111A, -- ᄚ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG RIEUL-HIEUH",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x111A,
},
[0x111B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG KAPYEOUNRIEUL",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x111B, -- ᄛ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG KAPYEOUNRIEUL",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x111B,
},
[0x111C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG MIEUM-PIEUP",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x111C, -- ᄜ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG MIEUM-PIEUP",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x111C,
},
[0x111D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG KAPYEOUNMIEUM",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x111D, -- ᄝ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG KAPYEOUNMIEUM",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x111D,
},
[0x111E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG PIEUP-KIYEOK",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x111E, -- ᄞ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG PIEUP-KIYEOK",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x111E,
},
[0x111F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG PIEUP-NIEUN",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x111F, -- ᄟ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG PIEUP-NIEUN",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x111F,
},
[0x1120]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG PIEUP-TIKEUT",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x1120, -- ᄠ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG PIEUP-TIKEUT",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x1120,
},
[0x1121]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG PIEUP-SIOS",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x1121, -- ᄡ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG PIEUP-SIOS",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x1121,
},
[0x1122]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG PIEUP-SIOS-KIYEOK",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x1122, -- ᄢ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG PIEUP-SIOS-KIYEOK",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x1122,
},
[0x1123]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG PIEUP-SIOS-TIKEUT",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x1123, -- ᄣ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG PIEUP-SIOS-TIKEUT",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x1123,
},
[0x1124]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG PIEUP-SIOS-PIEUP",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x1124, -- ᄤ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG PIEUP-SIOS-PIEUP",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x1124,
},
[0x1125]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG PIEUP-SSANGSIOS",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x1125, -- ᄥ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG PIEUP-SSANGSIOS",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x1125,
},
[0x1126]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG PIEUP-SIOS-CIEUC",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x1126, -- ᄦ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG PIEUP-SIOS-CIEUC",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x1126,
},
[0x1127]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG PIEUP-CIEUC",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x1127, -- ᄧ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG PIEUP-CIEUC",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x1127,
},
[0x1128]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG PIEUP-CHIEUCH",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x1128, -- ᄨ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG PIEUP-CHIEUCH",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x1128,
},
[0x1129]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG PIEUP-THIEUTH",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x1129, -- ᄩ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG PIEUP-THIEUTH",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x1129,
},
[0x112A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG PIEUP-PHIEUPH",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x112A, -- ᄪ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG PIEUP-PHIEUPH",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x112A,
},
[0x112B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG KAPYEOUNPIEUP",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x112B, -- ᄫ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG KAPYEOUNPIEUP",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x112B,
},
[0x112C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG KAPYEOUNSSANGPIEUP",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x112C, -- ᄬ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG KAPYEOUNSSANGPIEUP",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x112C,
},
[0x112D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG SIOS-KIYEOK",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x112D, -- ᄭ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG SIOS-KIYEOK",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x112D,
},
[0x112E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG SIOS-NIEUN",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x112E, -- ᄮ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG SIOS-NIEUN",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x112E,
},
[0x112F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG SIOS-TIKEUT",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x112F, -- ᄯ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG SIOS-TIKEUT",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x112F,
},
[0x1130]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG SIOS-RIEUL",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x1130, -- ᄰ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG SIOS-RIEUL",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x1130,
},
[0x1131]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG SIOS-MIEUM",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x1131, -- ᄱ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG SIOS-MIEUM",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x1131,
},
[0x1132]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG SIOS-PIEUP",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x1132, -- ᄲ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG SIOS-PIEUP",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x1132,
},
[0x1133]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG SIOS-PIEUP-KIYEOK",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x1133, -- ᄳ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG SIOS-PIEUP-KIYEOK",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x1133,
},
[0x1134]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG SIOS-SSANGSIOS",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x1134, -- ᄴ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG SIOS-SSANGSIOS",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x1134,
},
[0x1135]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG SIOS-IEUNG",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x1135, -- ᄵ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG SIOS-IEUNG",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x1135,
},
[0x1136]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG SIOS-CIEUC",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x1136, -- ᄶ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG SIOS-CIEUC",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x1136,
},
[0x1137]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG SIOS-CHIEUCH",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x1137, -- ᄷ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG SIOS-CHIEUCH",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x1137,
},
[0x1138]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG SIOS-KHIEUKH",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x1138, -- ᄸ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG SIOS-KHIEUKH",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x1138,
},
[0x1139]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG SIOS-THIEUTH",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x1139, -- ᄹ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG SIOS-THIEUTH",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x1139,
},
[0x113A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG SIOS-PHIEUPH",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x113A, -- ᄺ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG SIOS-PHIEUPH",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x113A,
},
[0x113B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG SIOS-HIEUH",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x113B, -- ᄻ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG SIOS-HIEUH",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x113B,
},
[0x113C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG CHITUEUMSIOS",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x113C, -- ᄼ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG CHITUEUMSIOS",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x113C,
},
[0x113D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG CHITUEUMSSANGSIOS",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x113D, -- ᄽ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG CHITUEUMSSANGSIOS",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x113D,
},
[0x113E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG CEONGCHIEUMSIOS",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x113E, -- ᄾ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG CEONGCHIEUMSIOS",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x113E,
},
[0x113F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG CEONGCHIEUMSSANGSIOS",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x113F, -- ᄿ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG CEONGCHIEUMSSANGSIOS",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x113F,
},
[0x1140]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG PANSIOS",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x1140, -- ᅀ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG PANSIOS",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x1140,
},
[0x1141]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG IEUNG-KIYEOK",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x1141, -- ᅁ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG IEUNG-KIYEOK",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x1141,
},
[0x1142]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG IEUNG-TIKEUT",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x1142, -- ᅂ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG IEUNG-TIKEUT",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x1142,
},
[0x1143]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG IEUNG-MIEUM",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x1143, -- ᅃ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG IEUNG-MIEUM",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x1143,
},
[0x1144]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG IEUNG-PIEUP",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x1144, -- ᅄ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG IEUNG-PIEUP",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x1144,
},
[0x1145]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG IEUNG-SIOS",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x1145, -- ᅅ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG IEUNG-SIOS",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x1145,
},
[0x1146]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG IEUNG-PANSIOS",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x1146, -- ᅆ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG IEUNG-PANSIOS",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x1146,
},
[0x1147]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG SSANGIEUNG",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x1147, -- ᅇ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG SSANGIEUNG",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x1147,
},
[0x1148]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG IEUNG-CIEUC",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x1148, -- ᅈ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG IEUNG-CIEUC",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x1148,
},
[0x1149]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG IEUNG-CHIEUCH",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x1149, -- ᅉ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG IEUNG-CHIEUCH",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x1149,
},
[0x114A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG IEUNG-THIEUTH",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x114A, -- ᅊ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG IEUNG-THIEUTH",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x114A,
},
[0x114B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG IEUNG-PHIEUPH",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x114B, -- ᅋ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG IEUNG-PHIEUPH",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x114B,
},
[0x114C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG YESIEUNG",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x114C, -- ᅌ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG YESIEUNG",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x114C,
},
[0x114D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG CIEUC-IEUNG",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x114D, -- ᅍ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG CIEUC-IEUNG",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x114D,
},
[0x114E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG CHITUEUMCIEUC",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x114E, -- ᅎ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG CHITUEUMCIEUC",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x114E,
},
[0x114F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG CHITUEUMSSANGCIEUC",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x114F, -- ᅏ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG CHITUEUMSSANGCIEUC",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x114F,
},
[0x1150]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG CEONGCHIEUMCIEUC",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x1150, -- ᅐ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG CEONGCHIEUMCIEUC",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x1150,
},
[0x1151]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG CEONGCHIEUMSSANGCIEUC",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x1151, -- ᅑ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG CEONGCHIEUMSSANGCIEUC",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x1151,
},
[0x1152]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG CHIEUCH-KHIEUKH",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x1152, -- ᅒ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG CHIEUCH-KHIEUKH",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x1152,
},
[0x1153]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG CHIEUCH-HIEUH",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x1153, -- ᅓ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG CHIEUCH-HIEUH",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x1153,
},
[0x1154]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG CHITUEUMCHIEUCH",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x1154, -- ᅔ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG CHITUEUMCHIEUCH",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x1154,
},
[0x1155]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG CEONGCHIEUMCHIEUCH",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x1155, -- ᅕ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG CEONGCHIEUMCHIEUCH",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x1155,
},
[0x1156]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG PHIEUPH-PIEUP",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x1156, -- ᅖ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG PHIEUPH-PIEUP",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x1156,
},
[0x1157]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG KAPYEOUNPHIEUPH",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x1157, -- ᅗ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG KAPYEOUNPHIEUPH",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x1157,
},
[0x1158]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG SSANGHIEUH",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x1158, -- ᅘ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG SSANGHIEUH",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x1158,
},
[0x1159]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG YEORINHIEUH",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x1159, -- ᅙ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG YEORINHIEUH",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x1159,
},
[0x115F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL CHOSEONG FILLER",
- ["linebreak"]="jl",
- ["unicodeslot"]=0x115F, -- ᅟ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL CHOSEONG FILLER",
+ direction="l",
+ linebreak="jl",
+ unicodeslot=0x115F,
},
[0x1160]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG FILLER",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x1160, -- ᅠ
+ category="lo",
+ description="HANGUL JUNGSEONG FILLER",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x1160,
},
[0x1161]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG A",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x1161, -- ᅡ
+ category="lo",
+ description="HANGUL JUNGSEONG A",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x1161,
},
[0x1162]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG AE",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x1162, -- ᅢ
+ category="lo",
+ description="HANGUL JUNGSEONG AE",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x1162,
},
[0x1163]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG YA",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x1163, -- ᅣ
+ category="lo",
+ description="HANGUL JUNGSEONG YA",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x1163,
},
[0x1164]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG YAE",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x1164, -- ᅤ
+ category="lo",
+ description="HANGUL JUNGSEONG YAE",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x1164,
},
[0x1165]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG EO",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x1165, -- ᅥ
+ category="lo",
+ description="HANGUL JUNGSEONG EO",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x1165,
},
[0x1166]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG E",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x1166, -- ᅦ
+ category="lo",
+ description="HANGUL JUNGSEONG E",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x1166,
},
[0x1167]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG YEO",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x1167, -- ᅧ
+ category="lo",
+ description="HANGUL JUNGSEONG YEO",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x1167,
},
[0x1168]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG YE",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x1168, -- ᅨ
+ category="lo",
+ description="HANGUL JUNGSEONG YE",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x1168,
},
[0x1169]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG O",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x1169, -- ᅩ
+ category="lo",
+ description="HANGUL JUNGSEONG O",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x1169,
},
[0x116A]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG WA",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x116A, -- ᅪ
+ category="lo",
+ description="HANGUL JUNGSEONG WA",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x116A,
},
[0x116B]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG WAE",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x116B, -- ᅫ
+ category="lo",
+ description="HANGUL JUNGSEONG WAE",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x116B,
},
[0x116C]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG OE",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x116C, -- ᅬ
+ category="lo",
+ description="HANGUL JUNGSEONG OE",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x116C,
},
[0x116D]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG YO",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x116D, -- ᅭ
+ category="lo",
+ description="HANGUL JUNGSEONG YO",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x116D,
},
[0x116E]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG U",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x116E, -- ᅮ
+ category="lo",
+ description="HANGUL JUNGSEONG U",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x116E,
},
[0x116F]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG WEO",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x116F, -- ᅯ
+ category="lo",
+ description="HANGUL JUNGSEONG WEO",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x116F,
},
[0x1170]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG WE",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x1170, -- ᅰ
+ category="lo",
+ description="HANGUL JUNGSEONG WE",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x1170,
},
[0x1171]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG WI",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x1171, -- ᅱ
+ category="lo",
+ description="HANGUL JUNGSEONG WI",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x1171,
},
[0x1172]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG YU",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x1172, -- ᅲ
+ category="lo",
+ description="HANGUL JUNGSEONG YU",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x1172,
},
[0x1173]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG EU",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x1173, -- ᅳ
+ category="lo",
+ description="HANGUL JUNGSEONG EU",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x1173,
},
[0x1174]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG YI",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x1174, -- ᅴ
+ category="lo",
+ description="HANGUL JUNGSEONG YI",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x1174,
},
[0x1175]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG I",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x1175, -- ᅵ
+ category="lo",
+ description="HANGUL JUNGSEONG I",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x1175,
},
[0x1176]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG A-O",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x1176, -- ᅶ
+ category="lo",
+ description="HANGUL JUNGSEONG A-O",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x1176,
},
[0x1177]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG A-U",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x1177, -- ᅷ
+ category="lo",
+ description="HANGUL JUNGSEONG A-U",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x1177,
},
[0x1178]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG YA-O",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x1178, -- ᅸ
+ category="lo",
+ description="HANGUL JUNGSEONG YA-O",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x1178,
},
[0x1179]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG YA-YO",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x1179, -- ᅹ
+ category="lo",
+ description="HANGUL JUNGSEONG YA-YO",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x1179,
},
[0x117A]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG EO-O",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x117A, -- ᅺ
+ category="lo",
+ description="HANGUL JUNGSEONG EO-O",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x117A,
},
[0x117B]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG EO-U",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x117B, -- ᅻ
+ category="lo",
+ description="HANGUL JUNGSEONG EO-U",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x117B,
},
[0x117C]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG EO-EU",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x117C, -- ᅼ
+ category="lo",
+ description="HANGUL JUNGSEONG EO-EU",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x117C,
},
[0x117D]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG YEO-O",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x117D, -- ᅽ
+ category="lo",
+ description="HANGUL JUNGSEONG YEO-O",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x117D,
},
[0x117E]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG YEO-U",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x117E, -- ᅾ
+ category="lo",
+ description="HANGUL JUNGSEONG YEO-U",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x117E,
},
[0x117F]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG O-EO",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x117F, -- ᅿ
+ category="lo",
+ description="HANGUL JUNGSEONG O-EO",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x117F,
},
[0x1180]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG O-E",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x1180, -- ᆀ
+ category="lo",
+ description="HANGUL JUNGSEONG O-E",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x1180,
},
[0x1181]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG O-YE",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x1181, -- ᆁ
+ category="lo",
+ description="HANGUL JUNGSEONG O-YE",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x1181,
},
[0x1182]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG O-O",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x1182, -- ᆂ
+ category="lo",
+ description="HANGUL JUNGSEONG O-O",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x1182,
},
[0x1183]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG O-U",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x1183, -- ᆃ
+ category="lo",
+ description="HANGUL JUNGSEONG O-U",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x1183,
},
[0x1184]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG YO-YA",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x1184, -- ᆄ
+ category="lo",
+ description="HANGUL JUNGSEONG YO-YA",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x1184,
},
[0x1185]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG YO-YAE",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x1185, -- ᆅ
+ category="lo",
+ description="HANGUL JUNGSEONG YO-YAE",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x1185,
},
[0x1186]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG YO-YEO",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x1186, -- ᆆ
+ category="lo",
+ description="HANGUL JUNGSEONG YO-YEO",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x1186,
},
[0x1187]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG YO-O",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x1187, -- ᆇ
+ category="lo",
+ description="HANGUL JUNGSEONG YO-O",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x1187,
},
[0x1188]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG YO-I",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x1188, -- ᆈ
+ category="lo",
+ description="HANGUL JUNGSEONG YO-I",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x1188,
},
[0x1189]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG U-A",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x1189, -- ᆉ
+ category="lo",
+ description="HANGUL JUNGSEONG U-A",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x1189,
},
[0x118A]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG U-AE",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x118A, -- ᆊ
+ category="lo",
+ description="HANGUL JUNGSEONG U-AE",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x118A,
},
[0x118B]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG U-EO-EU",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x118B, -- ᆋ
+ category="lo",
+ description="HANGUL JUNGSEONG U-EO-EU",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x118B,
},
[0x118C]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG U-YE",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x118C, -- ᆌ
+ category="lo",
+ description="HANGUL JUNGSEONG U-YE",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x118C,
},
[0x118D]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG U-U",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x118D, -- ᆍ
+ category="lo",
+ description="HANGUL JUNGSEONG U-U",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x118D,
},
[0x118E]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG YU-A",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x118E, -- ᆎ
+ category="lo",
+ description="HANGUL JUNGSEONG YU-A",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x118E,
},
[0x118F]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG YU-EO",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x118F, -- ᆏ
+ category="lo",
+ description="HANGUL JUNGSEONG YU-EO",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x118F,
},
[0x1190]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG YU-E",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x1190, -- ᆐ
+ category="lo",
+ description="HANGUL JUNGSEONG YU-E",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x1190,
},
[0x1191]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG YU-YEO",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x1191, -- ᆑ
+ category="lo",
+ description="HANGUL JUNGSEONG YU-YEO",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x1191,
},
[0x1192]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG YU-YE",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x1192, -- ᆒ
+ category="lo",
+ description="HANGUL JUNGSEONG YU-YE",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x1192,
},
[0x1193]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG YU-U",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x1193, -- ᆓ
+ category="lo",
+ description="HANGUL JUNGSEONG YU-U",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x1193,
},
[0x1194]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG YU-I",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x1194, -- ᆔ
+ category="lo",
+ description="HANGUL JUNGSEONG YU-I",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x1194,
},
[0x1195]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG EU-U",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x1195, -- ᆕ
+ category="lo",
+ description="HANGUL JUNGSEONG EU-U",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x1195,
},
[0x1196]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG EU-EU",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x1196, -- ᆖ
+ category="lo",
+ description="HANGUL JUNGSEONG EU-EU",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x1196,
},
[0x1197]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG YI-U",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x1197, -- ᆗ
+ category="lo",
+ description="HANGUL JUNGSEONG YI-U",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x1197,
},
[0x1198]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG I-A",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x1198, -- ᆘ
+ category="lo",
+ description="HANGUL JUNGSEONG I-A",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x1198,
},
[0x1199]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG I-YA",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x1199, -- ᆙ
+ category="lo",
+ description="HANGUL JUNGSEONG I-YA",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x1199,
},
[0x119A]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG I-O",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x119A, -- ᆚ
+ category="lo",
+ description="HANGUL JUNGSEONG I-O",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x119A,
},
[0x119B]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG I-U",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x119B, -- ᆛ
+ category="lo",
+ description="HANGUL JUNGSEONG I-U",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x119B,
},
[0x119C]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG I-EU",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x119C, -- ᆜ
+ category="lo",
+ description="HANGUL JUNGSEONG I-EU",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x119C,
},
[0x119D]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG I-ARAEA",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x119D, -- ᆝ
+ category="lo",
+ description="HANGUL JUNGSEONG I-ARAEA",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x119D,
},
[0x119E]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG ARAEA",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x119E, -- ᆞ
+ category="lo",
+ description="HANGUL JUNGSEONG ARAEA",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x119E,
},
[0x119F]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG ARAEA-EO",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x119F, -- ᆟ
+ category="lo",
+ description="HANGUL JUNGSEONG ARAEA-EO",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x119F,
},
[0x11A0]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG ARAEA-U",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x11A0, -- ᆠ
+ category="lo",
+ description="HANGUL JUNGSEONG ARAEA-U",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x11A0,
},
[0x11A1]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG ARAEA-I",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x11A1, -- ᆡ
+ category="lo",
+ description="HANGUL JUNGSEONG ARAEA-I",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x11A1,
},
[0x11A2]={
- ["category"]="lo",
- ["description"]="HANGUL JUNGSEONG SSANGARAEA",
- ["linebreak"]="jv",
- ["unicodeslot"]=0x11A2, -- ᆢ
+ category="lo",
+ description="HANGUL JUNGSEONG SSANGARAEA",
+ direction="l",
+ linebreak="jv",
+ unicodeslot=0x11A2,
},
[0x11A8]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG KIYEOK",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11A8, -- ᆨ
+ category="lo",
+ description="HANGUL JONGSEONG KIYEOK",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11A8,
},
[0x11A9]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG SSANGKIYEOK",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11A9, -- ᆩ
+ category="lo",
+ description="HANGUL JONGSEONG SSANGKIYEOK",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11A9,
},
[0x11AA]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG KIYEOK-SIOS",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11AA, -- ᆪ
+ category="lo",
+ description="HANGUL JONGSEONG KIYEOK-SIOS",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11AA,
},
[0x11AB]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG NIEUN",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11AB, -- ᆫ
+ category="lo",
+ description="HANGUL JONGSEONG NIEUN",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11AB,
},
[0x11AC]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG NIEUN-CIEUC",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11AC, -- ᆬ
+ category="lo",
+ description="HANGUL JONGSEONG NIEUN-CIEUC",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11AC,
},
[0x11AD]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG NIEUN-HIEUH",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11AD, -- ᆭ
+ category="lo",
+ description="HANGUL JONGSEONG NIEUN-HIEUH",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11AD,
},
[0x11AE]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG TIKEUT",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11AE, -- ᆮ
+ category="lo",
+ description="HANGUL JONGSEONG TIKEUT",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11AE,
},
[0x11AF]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG RIEUL",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11AF, -- ᆯ
+ category="lo",
+ description="HANGUL JONGSEONG RIEUL",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11AF,
},
[0x11B0]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG RIEUL-KIYEOK",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11B0, -- ᆰ
+ category="lo",
+ description="HANGUL JONGSEONG RIEUL-KIYEOK",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11B0,
},
[0x11B1]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG RIEUL-MIEUM",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11B1, -- ᆱ
+ category="lo",
+ description="HANGUL JONGSEONG RIEUL-MIEUM",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11B1,
},
[0x11B2]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG RIEUL-PIEUP",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11B2, -- ᆲ
+ category="lo",
+ description="HANGUL JONGSEONG RIEUL-PIEUP",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11B2,
},
[0x11B3]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG RIEUL-SIOS",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11B3, -- ᆳ
+ category="lo",
+ description="HANGUL JONGSEONG RIEUL-SIOS",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11B3,
},
[0x11B4]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG RIEUL-THIEUTH",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11B4, -- ᆴ
+ category="lo",
+ description="HANGUL JONGSEONG RIEUL-THIEUTH",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11B4,
},
[0x11B5]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG RIEUL-PHIEUPH",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11B5, -- ᆵ
+ category="lo",
+ description="HANGUL JONGSEONG RIEUL-PHIEUPH",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11B5,
},
[0x11B6]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG RIEUL-HIEUH",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11B6, -- ᆶ
+ category="lo",
+ description="HANGUL JONGSEONG RIEUL-HIEUH",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11B6,
},
[0x11B7]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG MIEUM",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11B7, -- ᆷ
+ category="lo",
+ description="HANGUL JONGSEONG MIEUM",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11B7,
},
[0x11B8]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG PIEUP",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11B8, -- ᆸ
+ category="lo",
+ description="HANGUL JONGSEONG PIEUP",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11B8,
},
[0x11B9]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG PIEUP-SIOS",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11B9, -- ᆹ
+ category="lo",
+ description="HANGUL JONGSEONG PIEUP-SIOS",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11B9,
},
[0x11BA]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG SIOS",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11BA, -- ᆺ
+ category="lo",
+ description="HANGUL JONGSEONG SIOS",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11BA,
},
[0x11BB]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG SSANGSIOS",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11BB, -- ᆻ
+ category="lo",
+ description="HANGUL JONGSEONG SSANGSIOS",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11BB,
},
[0x11BC]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG IEUNG",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11BC, -- ᆼ
+ category="lo",
+ description="HANGUL JONGSEONG IEUNG",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11BC,
},
[0x11BD]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG CIEUC",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11BD, -- ᆽ
+ category="lo",
+ description="HANGUL JONGSEONG CIEUC",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11BD,
},
[0x11BE]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG CHIEUCH",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11BE, -- ᆾ
+ category="lo",
+ description="HANGUL JONGSEONG CHIEUCH",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11BE,
},
[0x11BF]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG KHIEUKH",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11BF, -- ᆿ
+ category="lo",
+ description="HANGUL JONGSEONG KHIEUKH",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11BF,
},
[0x11C0]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG THIEUTH",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11C0, -- ᇀ
+ category="lo",
+ description="HANGUL JONGSEONG THIEUTH",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11C0,
},
[0x11C1]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG PHIEUPH",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11C1, -- ᇁ
+ category="lo",
+ description="HANGUL JONGSEONG PHIEUPH",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11C1,
},
[0x11C2]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG HIEUH",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11C2, -- ᇂ
+ category="lo",
+ description="HANGUL JONGSEONG HIEUH",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11C2,
},
[0x11C3]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG KIYEOK-RIEUL",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11C3, -- ᇃ
+ category="lo",
+ description="HANGUL JONGSEONG KIYEOK-RIEUL",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11C3,
},
[0x11C4]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG KIYEOK-SIOS-KIYEOK",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11C4, -- ᇄ
+ category="lo",
+ description="HANGUL JONGSEONG KIYEOK-SIOS-KIYEOK",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11C4,
},
[0x11C5]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG NIEUN-KIYEOK",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11C5, -- ᇅ
+ category="lo",
+ description="HANGUL JONGSEONG NIEUN-KIYEOK",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11C5,
},
[0x11C6]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG NIEUN-TIKEUT",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11C6, -- ᇆ
+ category="lo",
+ description="HANGUL JONGSEONG NIEUN-TIKEUT",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11C6,
},
[0x11C7]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG NIEUN-SIOS",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11C7, -- ᇇ
+ category="lo",
+ description="HANGUL JONGSEONG NIEUN-SIOS",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11C7,
},
[0x11C8]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG NIEUN-PANSIOS",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11C8, -- ᇈ
+ category="lo",
+ description="HANGUL JONGSEONG NIEUN-PANSIOS",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11C8,
},
[0x11C9]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG NIEUN-THIEUTH",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11C9, -- ᇉ
+ category="lo",
+ description="HANGUL JONGSEONG NIEUN-THIEUTH",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11C9,
},
[0x11CA]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG TIKEUT-KIYEOK",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11CA, -- ᇊ
+ category="lo",
+ description="HANGUL JONGSEONG TIKEUT-KIYEOK",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11CA,
},
[0x11CB]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG TIKEUT-RIEUL",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11CB, -- ᇋ
+ category="lo",
+ description="HANGUL JONGSEONG TIKEUT-RIEUL",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11CB,
},
[0x11CC]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG RIEUL-KIYEOK-SIOS",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11CC, -- ᇌ
+ category="lo",
+ description="HANGUL JONGSEONG RIEUL-KIYEOK-SIOS",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11CC,
},
[0x11CD]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG RIEUL-NIEUN",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11CD, -- ᇍ
+ category="lo",
+ description="HANGUL JONGSEONG RIEUL-NIEUN",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11CD,
},
[0x11CE]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG RIEUL-TIKEUT",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11CE, -- ᇎ
+ category="lo",
+ description="HANGUL JONGSEONG RIEUL-TIKEUT",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11CE,
},
[0x11CF]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG RIEUL-TIKEUT-HIEUH",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11CF, -- ᇏ
+ category="lo",
+ description="HANGUL JONGSEONG RIEUL-TIKEUT-HIEUH",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11CF,
},
[0x11D0]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG SSANGRIEUL",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11D0, -- ᇐ
+ category="lo",
+ description="HANGUL JONGSEONG SSANGRIEUL",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11D0,
},
[0x11D1]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG RIEUL-MIEUM-KIYEOK",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11D1, -- ᇑ
+ category="lo",
+ description="HANGUL JONGSEONG RIEUL-MIEUM-KIYEOK",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11D1,
},
[0x11D2]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG RIEUL-MIEUM-SIOS",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11D2, -- ᇒ
+ category="lo",
+ description="HANGUL JONGSEONG RIEUL-MIEUM-SIOS",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11D2,
},
[0x11D3]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG RIEUL-PIEUP-SIOS",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11D3, -- ᇓ
+ category="lo",
+ description="HANGUL JONGSEONG RIEUL-PIEUP-SIOS",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11D3,
},
[0x11D4]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG RIEUL-PIEUP-HIEUH",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11D4, -- ᇔ
+ category="lo",
+ description="HANGUL JONGSEONG RIEUL-PIEUP-HIEUH",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11D4,
},
[0x11D5]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG RIEUL-KAPYEOUNPIEUP",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11D5, -- ᇕ
+ category="lo",
+ description="HANGUL JONGSEONG RIEUL-KAPYEOUNPIEUP",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11D5,
},
[0x11D6]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG RIEUL-SSANGSIOS",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11D6, -- ᇖ
+ category="lo",
+ description="HANGUL JONGSEONG RIEUL-SSANGSIOS",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11D6,
},
[0x11D7]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG RIEUL-PANSIOS",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11D7, -- ᇗ
+ category="lo",
+ description="HANGUL JONGSEONG RIEUL-PANSIOS",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11D7,
},
[0x11D8]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG RIEUL-KHIEUKH",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11D8, -- ᇘ
+ category="lo",
+ description="HANGUL JONGSEONG RIEUL-KHIEUKH",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11D8,
},
[0x11D9]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG RIEUL-YEORINHIEUH",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11D9, -- ᇙ
+ category="lo",
+ description="HANGUL JONGSEONG RIEUL-YEORINHIEUH",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11D9,
},
[0x11DA]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG MIEUM-KIYEOK",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11DA, -- ᇚ
+ category="lo",
+ description="HANGUL JONGSEONG MIEUM-KIYEOK",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11DA,
},
[0x11DB]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG MIEUM-RIEUL",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11DB, -- ᇛ
+ category="lo",
+ description="HANGUL JONGSEONG MIEUM-RIEUL",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11DB,
},
[0x11DC]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG MIEUM-PIEUP",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11DC, -- ᇜ
+ category="lo",
+ description="HANGUL JONGSEONG MIEUM-PIEUP",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11DC,
},
[0x11DD]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG MIEUM-SIOS",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11DD, -- ᇝ
+ category="lo",
+ description="HANGUL JONGSEONG MIEUM-SIOS",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11DD,
},
[0x11DE]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG MIEUM-SSANGSIOS",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11DE, -- ᇞ
+ category="lo",
+ description="HANGUL JONGSEONG MIEUM-SSANGSIOS",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11DE,
},
[0x11DF]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG MIEUM-PANSIOS",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11DF, -- ᇟ
+ category="lo",
+ description="HANGUL JONGSEONG MIEUM-PANSIOS",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11DF,
},
[0x11E0]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG MIEUM-CHIEUCH",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11E0, -- ᇠ
+ category="lo",
+ description="HANGUL JONGSEONG MIEUM-CHIEUCH",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11E0,
},
[0x11E1]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG MIEUM-HIEUH",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11E1, -- ᇡ
+ category="lo",
+ description="HANGUL JONGSEONG MIEUM-HIEUH",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11E1,
},
[0x11E2]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG KAPYEOUNMIEUM",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11E2, -- ᇢ
+ category="lo",
+ description="HANGUL JONGSEONG KAPYEOUNMIEUM",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11E2,
},
[0x11E3]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG PIEUP-RIEUL",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11E3, -- ᇣ
+ category="lo",
+ description="HANGUL JONGSEONG PIEUP-RIEUL",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11E3,
},
[0x11E4]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG PIEUP-PHIEUPH",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11E4, -- ᇤ
+ category="lo",
+ description="HANGUL JONGSEONG PIEUP-PHIEUPH",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11E4,
},
[0x11E5]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG PIEUP-HIEUH",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11E5, -- ᇥ
+ category="lo",
+ description="HANGUL JONGSEONG PIEUP-HIEUH",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11E5,
},
[0x11E6]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG KAPYEOUNPIEUP",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11E6, -- ᇦ
+ category="lo",
+ description="HANGUL JONGSEONG KAPYEOUNPIEUP",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11E6,
},
[0x11E7]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG SIOS-KIYEOK",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11E7, -- ᇧ
+ category="lo",
+ description="HANGUL JONGSEONG SIOS-KIYEOK",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11E7,
},
[0x11E8]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG SIOS-TIKEUT",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11E8, -- ᇨ
+ category="lo",
+ description="HANGUL JONGSEONG SIOS-TIKEUT",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11E8,
},
[0x11E9]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG SIOS-RIEUL",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11E9, -- ᇩ
+ category="lo",
+ description="HANGUL JONGSEONG SIOS-RIEUL",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11E9,
},
[0x11EA]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG SIOS-PIEUP",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11EA, -- ᇪ
+ category="lo",
+ description="HANGUL JONGSEONG SIOS-PIEUP",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11EA,
},
[0x11EB]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG PANSIOS",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11EB, -- ᇫ
+ category="lo",
+ description="HANGUL JONGSEONG PANSIOS",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11EB,
},
[0x11EC]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG IEUNG-KIYEOK",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11EC, -- ᇬ
+ category="lo",
+ description="HANGUL JONGSEONG IEUNG-KIYEOK",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11EC,
},
[0x11ED]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG IEUNG-SSANGKIYEOK",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11ED, -- ᇭ
+ category="lo",
+ description="HANGUL JONGSEONG IEUNG-SSANGKIYEOK",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11ED,
},
[0x11EE]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG SSANGIEUNG",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11EE, -- ᇮ
+ category="lo",
+ description="HANGUL JONGSEONG SSANGIEUNG",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11EE,
},
[0x11EF]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG IEUNG-KHIEUKH",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11EF, -- ᇯ
+ category="lo",
+ description="HANGUL JONGSEONG IEUNG-KHIEUKH",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11EF,
},
[0x11F0]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG YESIEUNG",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11F0, -- ᇰ
+ category="lo",
+ description="HANGUL JONGSEONG YESIEUNG",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11F0,
},
[0x11F1]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG YESIEUNG-SIOS",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11F1, -- ᇱ
+ category="lo",
+ description="HANGUL JONGSEONG YESIEUNG-SIOS",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11F1,
},
[0x11F2]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG YESIEUNG-PANSIOS",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11F2, -- ᇲ
+ category="lo",
+ description="HANGUL JONGSEONG YESIEUNG-PANSIOS",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11F2,
},
[0x11F3]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG PHIEUPH-PIEUP",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11F3, -- ᇳ
+ category="lo",
+ description="HANGUL JONGSEONG PHIEUPH-PIEUP",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11F3,
},
[0x11F4]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG KAPYEOUNPHIEUPH",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11F4, -- ᇴ
+ category="lo",
+ description="HANGUL JONGSEONG KAPYEOUNPHIEUPH",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11F4,
},
[0x11F5]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG HIEUH-NIEUN",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11F5, -- ᇵ
+ category="lo",
+ description="HANGUL JONGSEONG HIEUH-NIEUN",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11F5,
},
[0x11F6]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG HIEUH-RIEUL",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11F6, -- ᇶ
+ category="lo",
+ description="HANGUL JONGSEONG HIEUH-RIEUL",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11F6,
},
[0x11F7]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG HIEUH-MIEUM",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11F7, -- ᇷ
+ category="lo",
+ description="HANGUL JONGSEONG HIEUH-MIEUM",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11F7,
},
[0x11F8]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG HIEUH-PIEUP",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11F8, -- ᇸ
+ category="lo",
+ description="HANGUL JONGSEONG HIEUH-PIEUP",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11F8,
},
[0x11F9]={
- ["category"]="lo",
- ["description"]="HANGUL JONGSEONG YEORINHIEUH",
- ["linebreak"]="jt",
- ["unicodeslot"]=0x11F9, -- ᇹ
+ category="lo",
+ description="HANGUL JONGSEONG YEORINHIEUH",
+ direction="l",
+ linebreak="jt",
+ unicodeslot=0x11F9,
},
[0x1200]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE HA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1200, -- ሀ
+ category="lo",
+ description="ETHIOPIC SYLLABLE HA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1200,
},
[0x1201]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE HU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1201, -- ሁ
+ category="lo",
+ description="ETHIOPIC SYLLABLE HU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1201,
},
[0x1202]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE HI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1202, -- ሂ
+ category="lo",
+ description="ETHIOPIC SYLLABLE HI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1202,
},
[0x1203]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE HAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1203, -- ሃ
+ category="lo",
+ description="ETHIOPIC SYLLABLE HAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1203,
},
[0x1204]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE HEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1204, -- ሄ
+ category="lo",
+ description="ETHIOPIC SYLLABLE HEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1204,
},
[0x1205]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE HE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1205, -- ህ
+ category="lo",
+ description="ETHIOPIC SYLLABLE HE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1205,
},
[0x1206]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE HO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1206, -- ሆ
+ category="lo",
+ description="ETHIOPIC SYLLABLE HO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1206,
},
[0x1207]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE HOA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1207, -- ሇ
+ category="lo",
+ description="ETHIOPIC SYLLABLE HOA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1207,
},
[0x1208]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE LA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1208, -- ለ
+ category="lo",
+ description="ETHIOPIC SYLLABLE LA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1208,
},
[0x1209]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE LU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1209, -- ሉ
+ category="lo",
+ description="ETHIOPIC SYLLABLE LU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1209,
},
[0x120A]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE LI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120A, -- ሊ
+ category="lo",
+ description="ETHIOPIC SYLLABLE LI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120A,
},
[0x120B]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE LAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120B, -- ላ
+ category="lo",
+ description="ETHIOPIC SYLLABLE LAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120B,
},
[0x120C]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE LEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120C, -- ሌ
+ category="lo",
+ description="ETHIOPIC SYLLABLE LEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120C,
},
[0x120D]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE LE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120D, -- ል
+ category="lo",
+ description="ETHIOPIC SYLLABLE LE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120D,
},
[0x120E]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE LO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120E, -- ሎ
+ category="lo",
+ description="ETHIOPIC SYLLABLE LO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120E,
},
[0x120F]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE LWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120F, -- ሏ
+ category="lo",
+ description="ETHIOPIC SYLLABLE LWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120F,
},
[0x1210]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE HHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1210, -- ሐ
+ category="lo",
+ description="ETHIOPIC SYLLABLE HHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1210,
},
[0x1211]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE HHU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1211, -- ሑ
+ category="lo",
+ description="ETHIOPIC SYLLABLE HHU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1211,
},
[0x1212]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE HHI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1212, -- ሒ
+ category="lo",
+ description="ETHIOPIC SYLLABLE HHI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1212,
},
[0x1213]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE HHAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1213, -- ሓ
+ category="lo",
+ description="ETHIOPIC SYLLABLE HHAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1213,
},
[0x1214]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE HHEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1214, -- ሔ
+ category="lo",
+ description="ETHIOPIC SYLLABLE HHEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1214,
},
[0x1215]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE HHE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1215, -- ሕ
+ category="lo",
+ description="ETHIOPIC SYLLABLE HHE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1215,
},
[0x1216]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE HHO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1216, -- ሖ
+ category="lo",
+ description="ETHIOPIC SYLLABLE HHO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1216,
},
[0x1217]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE HHWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1217, -- ሗ
+ category="lo",
+ description="ETHIOPIC SYLLABLE HHWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1217,
},
[0x1218]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE MA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1218, -- መ
+ category="lo",
+ description="ETHIOPIC SYLLABLE MA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1218,
},
[0x1219]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE MU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1219, -- ሙ
+ category="lo",
+ description="ETHIOPIC SYLLABLE MU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1219,
},
[0x121A]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE MI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121A, -- ሚ
+ category="lo",
+ description="ETHIOPIC SYLLABLE MI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121A,
},
[0x121B]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE MAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121B, -- ማ
+ category="lo",
+ description="ETHIOPIC SYLLABLE MAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121B,
},
[0x121C]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE MEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121C, -- ሜ
+ category="lo",
+ description="ETHIOPIC SYLLABLE MEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121C,
},
[0x121D]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE ME",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121D, -- ም
+ category="lo",
+ description="ETHIOPIC SYLLABLE ME",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121D,
},
[0x121E]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE MO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121E, -- ሞ
+ category="lo",
+ description="ETHIOPIC SYLLABLE MO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121E,
},
[0x121F]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE MWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121F, -- ሟ
+ category="lo",
+ description="ETHIOPIC SYLLABLE MWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121F,
},
[0x1220]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE SZA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1220, -- ሠ
+ category="lo",
+ description="ETHIOPIC SYLLABLE SZA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1220,
},
[0x1221]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE SZU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1221, -- ሡ
+ category="lo",
+ description="ETHIOPIC SYLLABLE SZU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1221,
},
[0x1222]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE SZI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1222, -- ሢ
+ category="lo",
+ description="ETHIOPIC SYLLABLE SZI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1222,
},
[0x1223]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE SZAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1223, -- ሣ
+ category="lo",
+ description="ETHIOPIC SYLLABLE SZAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1223,
},
[0x1224]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE SZEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1224, -- ሤ
+ category="lo",
+ description="ETHIOPIC SYLLABLE SZEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1224,
},
[0x1225]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE SZE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1225, -- ሥ
+ category="lo",
+ description="ETHIOPIC SYLLABLE SZE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1225,
},
[0x1226]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE SZO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1226, -- ሦ
+ category="lo",
+ description="ETHIOPIC SYLLABLE SZO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1226,
},
[0x1227]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE SZWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1227, -- ሧ
+ category="lo",
+ description="ETHIOPIC SYLLABLE SZWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1227,
},
[0x1228]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE RA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1228, -- ረ
+ category="lo",
+ description="ETHIOPIC SYLLABLE RA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1228,
},
[0x1229]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE RU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1229, -- ሩ
+ category="lo",
+ description="ETHIOPIC SYLLABLE RU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1229,
},
[0x122A]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE RI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122A, -- ሪ
+ category="lo",
+ description="ETHIOPIC SYLLABLE RI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122A,
},
[0x122B]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE RAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122B, -- ራ
+ category="lo",
+ description="ETHIOPIC SYLLABLE RAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122B,
},
[0x122C]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE REE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122C, -- ሬ
+ category="lo",
+ description="ETHIOPIC SYLLABLE REE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122C,
},
[0x122D]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE RE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122D, -- ር
+ category="lo",
+ description="ETHIOPIC SYLLABLE RE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122D,
},
[0x122E]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE RO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122E, -- ሮ
+ category="lo",
+ description="ETHIOPIC SYLLABLE RO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122E,
},
[0x122F]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE RWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122F, -- ሯ
+ category="lo",
+ description="ETHIOPIC SYLLABLE RWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122F,
},
[0x1230]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE SA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1230, -- ሰ
+ category="lo",
+ description="ETHIOPIC SYLLABLE SA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1230,
},
[0x1231]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE SU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1231, -- ሱ
+ category="lo",
+ description="ETHIOPIC SYLLABLE SU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1231,
},
[0x1232]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE SI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1232, -- ሲ
+ category="lo",
+ description="ETHIOPIC SYLLABLE SI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1232,
},
[0x1233]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE SAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1233, -- ሳ
+ category="lo",
+ description="ETHIOPIC SYLLABLE SAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1233,
},
[0x1234]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE SEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1234, -- ሴ
+ category="lo",
+ description="ETHIOPIC SYLLABLE SEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1234,
},
[0x1235]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE SE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1235, -- ስ
+ category="lo",
+ description="ETHIOPIC SYLLABLE SE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1235,
},
[0x1236]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE SO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1236, -- ሶ
+ category="lo",
+ description="ETHIOPIC SYLLABLE SO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1236,
},
[0x1237]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE SWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1237, -- ሷ
+ category="lo",
+ description="ETHIOPIC SYLLABLE SWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1237,
},
[0x1238]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE SHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1238, -- ሸ
+ category="lo",
+ description="ETHIOPIC SYLLABLE SHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1238,
},
[0x1239]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE SHU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1239, -- ሹ
+ category="lo",
+ description="ETHIOPIC SYLLABLE SHU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1239,
},
[0x123A]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE SHI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x123A, -- ሺ
+ category="lo",
+ description="ETHIOPIC SYLLABLE SHI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x123A,
},
[0x123B]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE SHAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x123B, -- ሻ
+ category="lo",
+ description="ETHIOPIC SYLLABLE SHAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x123B,
},
[0x123C]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE SHEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x123C, -- ሼ
+ category="lo",
+ description="ETHIOPIC SYLLABLE SHEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x123C,
},
[0x123D]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE SHE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x123D, -- ሽ
+ category="lo",
+ description="ETHIOPIC SYLLABLE SHE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x123D,
},
[0x123E]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE SHO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x123E, -- ሾ
+ category="lo",
+ description="ETHIOPIC SYLLABLE SHO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x123E,
},
[0x123F]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE SHWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x123F, -- ሿ
+ category="lo",
+ description="ETHIOPIC SYLLABLE SHWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x123F,
},
[0x1240]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE QA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1240, -- ቀ
+ category="lo",
+ description="ETHIOPIC SYLLABLE QA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1240,
},
[0x1241]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE QU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1241, -- ቁ
+ category="lo",
+ description="ETHIOPIC SYLLABLE QU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1241,
},
[0x1242]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE QI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1242, -- ቂ
+ category="lo",
+ description="ETHIOPIC SYLLABLE QI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1242,
},
[0x1243]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE QAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1243, -- ቃ
+ category="lo",
+ description="ETHIOPIC SYLLABLE QAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1243,
},
[0x1244]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE QEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1244, -- ቄ
+ category="lo",
+ description="ETHIOPIC SYLLABLE QEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1244,
},
[0x1245]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE QE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1245, -- ቅ
+ category="lo",
+ description="ETHIOPIC SYLLABLE QE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1245,
},
[0x1246]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE QO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1246, -- ቆ
+ category="lo",
+ description="ETHIOPIC SYLLABLE QO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1246,
},
[0x1247]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE QOA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1247, -- ቇ
+ category="lo",
+ description="ETHIOPIC SYLLABLE QOA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1247,
},
[0x1248]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE QWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1248, -- ቈ
+ category="lo",
+ description="ETHIOPIC SYLLABLE QWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1248,
},
[0x124A]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE QWI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x124A, -- ቊ
+ category="lo",
+ description="ETHIOPIC SYLLABLE QWI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x124A,
},
[0x124B]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE QWAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x124B, -- ቋ
+ category="lo",
+ description="ETHIOPIC SYLLABLE QWAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x124B,
},
[0x124C]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE QWEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x124C, -- ቌ
+ category="lo",
+ description="ETHIOPIC SYLLABLE QWEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x124C,
},
[0x124D]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE QWE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x124D, -- ቍ
+ category="lo",
+ description="ETHIOPIC SYLLABLE QWE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x124D,
},
[0x1250]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE QHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1250, -- ቐ
+ category="lo",
+ description="ETHIOPIC SYLLABLE QHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1250,
},
[0x1251]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE QHU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1251, -- ቑ
+ category="lo",
+ description="ETHIOPIC SYLLABLE QHU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1251,
},
[0x1252]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE QHI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1252, -- ቒ
+ category="lo",
+ description="ETHIOPIC SYLLABLE QHI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1252,
},
[0x1253]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE QHAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1253, -- ቓ
+ category="lo",
+ description="ETHIOPIC SYLLABLE QHAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1253,
},
[0x1254]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE QHEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1254, -- ቔ
+ category="lo",
+ description="ETHIOPIC SYLLABLE QHEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1254,
},
[0x1255]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE QHE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1255, -- ቕ
+ category="lo",
+ description="ETHIOPIC SYLLABLE QHE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1255,
},
[0x1256]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE QHO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1256, -- ቖ
+ category="lo",
+ description="ETHIOPIC SYLLABLE QHO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1256,
},
[0x1258]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE QHWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1258, -- ቘ
+ category="lo",
+ description="ETHIOPIC SYLLABLE QHWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1258,
},
[0x125A]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE QHWI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x125A, -- ቚ
+ category="lo",
+ description="ETHIOPIC SYLLABLE QHWI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x125A,
},
[0x125B]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE QHWAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x125B, -- ቛ
+ category="lo",
+ description="ETHIOPIC SYLLABLE QHWAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x125B,
},
[0x125C]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE QHWEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x125C, -- ቜ
+ category="lo",
+ description="ETHIOPIC SYLLABLE QHWEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x125C,
},
[0x125D]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE QHWE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x125D, -- ቝ
+ category="lo",
+ description="ETHIOPIC SYLLABLE QHWE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x125D,
},
[0x1260]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE BA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1260, -- በ
+ category="lo",
+ description="ETHIOPIC SYLLABLE BA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1260,
},
[0x1261]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE BU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1261, -- ቡ
+ category="lo",
+ description="ETHIOPIC SYLLABLE BU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1261,
},
[0x1262]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE BI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1262, -- ቢ
+ category="lo",
+ description="ETHIOPIC SYLLABLE BI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1262,
},
[0x1263]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE BAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1263, -- ባ
+ category="lo",
+ description="ETHIOPIC SYLLABLE BAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1263,
},
[0x1264]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE BEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1264, -- ቤ
+ category="lo",
+ description="ETHIOPIC SYLLABLE BEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1264,
},
[0x1265]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE BE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1265, -- ብ
+ category="lo",
+ description="ETHIOPIC SYLLABLE BE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1265,
},
[0x1266]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE BO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1266, -- ቦ
+ category="lo",
+ description="ETHIOPIC SYLLABLE BO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1266,
},
[0x1267]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE BWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1267, -- ቧ
+ category="lo",
+ description="ETHIOPIC SYLLABLE BWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1267,
},
[0x1268]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE VA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1268, -- ቨ
+ category="lo",
+ description="ETHIOPIC SYLLABLE VA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1268,
},
[0x1269]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE VU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1269, -- ቩ
+ category="lo",
+ description="ETHIOPIC SYLLABLE VU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1269,
},
[0x126A]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE VI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x126A, -- ቪ
+ category="lo",
+ description="ETHIOPIC SYLLABLE VI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x126A,
},
[0x126B]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE VAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x126B, -- ቫ
+ category="lo",
+ description="ETHIOPIC SYLLABLE VAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x126B,
},
[0x126C]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE VEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x126C, -- ቬ
+ category="lo",
+ description="ETHIOPIC SYLLABLE VEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x126C,
},
[0x126D]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE VE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x126D, -- ቭ
+ category="lo",
+ description="ETHIOPIC SYLLABLE VE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x126D,
},
[0x126E]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE VO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x126E, -- ቮ
+ category="lo",
+ description="ETHIOPIC SYLLABLE VO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x126E,
},
[0x126F]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE VWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x126F, -- ቯ
+ category="lo",
+ description="ETHIOPIC SYLLABLE VWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x126F,
},
[0x1270]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE TA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1270, -- ተ
+ category="lo",
+ description="ETHIOPIC SYLLABLE TA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1270,
},
[0x1271]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE TU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1271, -- ቱ
+ category="lo",
+ description="ETHIOPIC SYLLABLE TU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1271,
},
[0x1272]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE TI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1272, -- ቲ
+ category="lo",
+ description="ETHIOPIC SYLLABLE TI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1272,
},
[0x1273]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE TAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1273, -- ታ
+ category="lo",
+ description="ETHIOPIC SYLLABLE TAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1273,
},
[0x1274]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE TEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1274, -- ቴ
+ category="lo",
+ description="ETHIOPIC SYLLABLE TEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1274,
},
[0x1275]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE TE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1275, -- ት
+ category="lo",
+ description="ETHIOPIC SYLLABLE TE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1275,
},
[0x1276]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1276, -- ቶ
+ category="lo",
+ description="ETHIOPIC SYLLABLE TO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1276,
},
[0x1277]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE TWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1277, -- ቷ
+ category="lo",
+ description="ETHIOPIC SYLLABLE TWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1277,
},
[0x1278]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE CA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1278, -- ቸ
+ category="lo",
+ description="ETHIOPIC SYLLABLE CA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1278,
},
[0x1279]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE CU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1279, -- ቹ
+ category="lo",
+ description="ETHIOPIC SYLLABLE CU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1279,
},
[0x127A]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE CI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x127A, -- ቺ
+ category="lo",
+ description="ETHIOPIC SYLLABLE CI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x127A,
},
[0x127B]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE CAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x127B, -- ቻ
+ category="lo",
+ description="ETHIOPIC SYLLABLE CAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x127B,
},
[0x127C]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE CEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x127C, -- ቼ
+ category="lo",
+ description="ETHIOPIC SYLLABLE CEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x127C,
},
[0x127D]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE CE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x127D, -- ች
+ category="lo",
+ description="ETHIOPIC SYLLABLE CE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x127D,
},
[0x127E]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE CO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x127E, -- ቾ
+ category="lo",
+ description="ETHIOPIC SYLLABLE CO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x127E,
},
[0x127F]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE CWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x127F, -- ቿ
+ category="lo",
+ description="ETHIOPIC SYLLABLE CWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x127F,
},
[0x1280]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE XA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1280, -- ኀ
+ category="lo",
+ description="ETHIOPIC SYLLABLE XA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1280,
},
[0x1281]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE XU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1281, -- ኁ
+ category="lo",
+ description="ETHIOPIC SYLLABLE XU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1281,
},
[0x1282]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE XI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1282, -- ኂ
+ category="lo",
+ description="ETHIOPIC SYLLABLE XI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1282,
},
[0x1283]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE XAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1283, -- ኃ
+ category="lo",
+ description="ETHIOPIC SYLLABLE XAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1283,
},
[0x1284]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE XEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1284, -- ኄ
+ category="lo",
+ description="ETHIOPIC SYLLABLE XEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1284,
},
[0x1285]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE XE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1285, -- ኅ
+ category="lo",
+ description="ETHIOPIC SYLLABLE XE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1285,
},
[0x1286]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE XO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1286, -- ኆ
+ category="lo",
+ description="ETHIOPIC SYLLABLE XO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1286,
},
[0x1287]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE XOA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1287, -- ኇ
+ category="lo",
+ description="ETHIOPIC SYLLABLE XOA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1287,
},
[0x1288]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE XWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1288, -- ኈ
+ category="lo",
+ description="ETHIOPIC SYLLABLE XWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1288,
},
[0x128A]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE XWI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x128A, -- ኊ
+ category="lo",
+ description="ETHIOPIC SYLLABLE XWI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x128A,
},
[0x128B]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE XWAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x128B, -- ኋ
+ category="lo",
+ description="ETHIOPIC SYLLABLE XWAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x128B,
},
[0x128C]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE XWEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x128C, -- ኌ
+ category="lo",
+ description="ETHIOPIC SYLLABLE XWEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x128C,
},
[0x128D]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE XWE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x128D, -- ኍ
+ category="lo",
+ description="ETHIOPIC SYLLABLE XWE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x128D,
},
[0x1290]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE NA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1290, -- ነ
+ category="lo",
+ description="ETHIOPIC SYLLABLE NA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1290,
},
[0x1291]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE NU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1291, -- ኑ
+ category="lo",
+ description="ETHIOPIC SYLLABLE NU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1291,
},
[0x1292]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE NI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1292, -- ኒ
+ category="lo",
+ description="ETHIOPIC SYLLABLE NI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1292,
},
[0x1293]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE NAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1293, -- ና
+ category="lo",
+ description="ETHIOPIC SYLLABLE NAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1293,
},
[0x1294]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE NEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1294, -- ኔ
+ category="lo",
+ description="ETHIOPIC SYLLABLE NEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1294,
},
[0x1295]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE NE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1295, -- ን
+ category="lo",
+ description="ETHIOPIC SYLLABLE NE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1295,
},
[0x1296]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE NO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1296, -- ኖ
+ category="lo",
+ description="ETHIOPIC SYLLABLE NO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1296,
},
[0x1297]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE NWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1297, -- ኗ
+ category="lo",
+ description="ETHIOPIC SYLLABLE NWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1297,
},
[0x1298]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE NYA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1298, -- ኘ
+ category="lo",
+ description="ETHIOPIC SYLLABLE NYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1298,
},
[0x1299]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE NYU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1299, -- ኙ
+ category="lo",
+ description="ETHIOPIC SYLLABLE NYU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1299,
},
[0x129A]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE NYI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x129A, -- ኚ
+ category="lo",
+ description="ETHIOPIC SYLLABLE NYI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x129A,
},
[0x129B]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE NYAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x129B, -- ኛ
+ category="lo",
+ description="ETHIOPIC SYLLABLE NYAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x129B,
},
[0x129C]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE NYEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x129C, -- ኜ
+ category="lo",
+ description="ETHIOPIC SYLLABLE NYEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x129C,
},
[0x129D]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE NYE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x129D, -- ኝ
+ category="lo",
+ description="ETHIOPIC SYLLABLE NYE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x129D,
},
[0x129E]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE NYO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x129E, -- ኞ
+ category="lo",
+ description="ETHIOPIC SYLLABLE NYO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x129E,
},
[0x129F]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE NYWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x129F, -- ኟ
+ category="lo",
+ description="ETHIOPIC SYLLABLE NYWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x129F,
},
[0x12A0]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE GLOTTAL A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12A0, -- አ
+ category="lo",
+ description="ETHIOPIC SYLLABLE GLOTTAL A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12A0,
},
[0x12A1]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE GLOTTAL U",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12A1, -- ኡ
+ category="lo",
+ description="ETHIOPIC SYLLABLE GLOTTAL U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12A1,
},
[0x12A2]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE GLOTTAL I",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12A2, -- ኢ
+ category="lo",
+ description="ETHIOPIC SYLLABLE GLOTTAL I",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12A2,
},
[0x12A3]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE GLOTTAL AA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12A3, -- ኣ
+ category="lo",
+ description="ETHIOPIC SYLLABLE GLOTTAL AA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12A3,
},
[0x12A4]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE GLOTTAL EE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12A4, -- ኤ
+ category="lo",
+ description="ETHIOPIC SYLLABLE GLOTTAL EE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12A4,
},
[0x12A5]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE GLOTTAL E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12A5, -- እ
+ category="lo",
+ description="ETHIOPIC SYLLABLE GLOTTAL E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12A5,
},
[0x12A6]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE GLOTTAL O",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12A6, -- ኦ
+ category="lo",
+ description="ETHIOPIC SYLLABLE GLOTTAL O",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12A6,
},
[0x12A7]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE GLOTTAL WA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12A7, -- ኧ
+ category="lo",
+ description="ETHIOPIC SYLLABLE GLOTTAL WA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12A7,
},
[0x12A8]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE KA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12A8, -- ከ
+ category="lo",
+ description="ETHIOPIC SYLLABLE KA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12A8,
},
[0x12A9]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE KU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12A9, -- ኩ
+ category="lo",
+ description="ETHIOPIC SYLLABLE KU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12A9,
},
[0x12AA]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE KI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12AA, -- ኪ
+ category="lo",
+ description="ETHIOPIC SYLLABLE KI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12AA,
},
[0x12AB]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE KAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12AB, -- ካ
+ category="lo",
+ description="ETHIOPIC SYLLABLE KAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12AB,
},
[0x12AC]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE KEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12AC, -- ኬ
+ category="lo",
+ description="ETHIOPIC SYLLABLE KEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12AC,
},
[0x12AD]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE KE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12AD, -- ክ
+ category="lo",
+ description="ETHIOPIC SYLLABLE KE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12AD,
},
[0x12AE]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE KO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12AE, -- ኮ
+ category="lo",
+ description="ETHIOPIC SYLLABLE KO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12AE,
},
[0x12AF]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE KOA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12AF, -- ኯ
+ category="lo",
+ description="ETHIOPIC SYLLABLE KOA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12AF,
},
[0x12B0]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE KWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12B0, -- ኰ
+ category="lo",
+ description="ETHIOPIC SYLLABLE KWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12B0,
},
[0x12B2]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE KWI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12B2, -- ኲ
+ category="lo",
+ description="ETHIOPIC SYLLABLE KWI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12B2,
},
[0x12B3]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE KWAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12B3, -- ኳ
+ category="lo",
+ description="ETHIOPIC SYLLABLE KWAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12B3,
},
[0x12B4]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE KWEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12B4, -- ኴ
+ category="lo",
+ description="ETHIOPIC SYLLABLE KWEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12B4,
},
[0x12B5]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE KWE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12B5, -- ኵ
+ category="lo",
+ description="ETHIOPIC SYLLABLE KWE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12B5,
},
[0x12B8]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE KXA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12B8, -- ኸ
+ category="lo",
+ description="ETHIOPIC SYLLABLE KXA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12B8,
},
[0x12B9]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE KXU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12B9, -- ኹ
+ category="lo",
+ description="ETHIOPIC SYLLABLE KXU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12B9,
},
[0x12BA]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE KXI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12BA, -- ኺ
+ category="lo",
+ description="ETHIOPIC SYLLABLE KXI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12BA,
},
[0x12BB]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE KXAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12BB, -- ኻ
+ category="lo",
+ description="ETHIOPIC SYLLABLE KXAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12BB,
},
[0x12BC]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE KXEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12BC, -- ኼ
+ category="lo",
+ description="ETHIOPIC SYLLABLE KXEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12BC,
},
[0x12BD]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE KXE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12BD, -- ኽ
+ category="lo",
+ description="ETHIOPIC SYLLABLE KXE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12BD,
},
[0x12BE]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE KXO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12BE, -- ኾ
+ category="lo",
+ description="ETHIOPIC SYLLABLE KXO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12BE,
},
[0x12C0]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE KXWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12C0, -- ዀ
+ category="lo",
+ description="ETHIOPIC SYLLABLE KXWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12C0,
},
[0x12C2]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE KXWI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12C2, -- ዂ
+ category="lo",
+ description="ETHIOPIC SYLLABLE KXWI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12C2,
},
[0x12C3]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE KXWAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12C3, -- ዃ
+ category="lo",
+ description="ETHIOPIC SYLLABLE KXWAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12C3,
},
[0x12C4]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE KXWEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12C4, -- ዄ
+ category="lo",
+ description="ETHIOPIC SYLLABLE KXWEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12C4,
},
[0x12C5]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE KXWE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12C5, -- ዅ
+ category="lo",
+ description="ETHIOPIC SYLLABLE KXWE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12C5,
},
[0x12C8]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE WA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12C8, -- ወ
+ category="lo",
+ description="ETHIOPIC SYLLABLE WA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12C8,
},
[0x12C9]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE WU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12C9, -- ዉ
+ category="lo",
+ description="ETHIOPIC SYLLABLE WU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12C9,
},
[0x12CA]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE WI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12CA, -- ዊ
+ category="lo",
+ description="ETHIOPIC SYLLABLE WI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12CA,
},
[0x12CB]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE WAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12CB, -- ዋ
+ category="lo",
+ description="ETHIOPIC SYLLABLE WAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12CB,
},
[0x12CC]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE WEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12CC, -- ዌ
+ category="lo",
+ description="ETHIOPIC SYLLABLE WEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12CC,
},
[0x12CD]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE WE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12CD, -- ው
+ category="lo",
+ description="ETHIOPIC SYLLABLE WE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12CD,
},
[0x12CE]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE WO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12CE, -- ዎ
+ category="lo",
+ description="ETHIOPIC SYLLABLE WO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12CE,
},
[0x12CF]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE WOA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12CF, -- ዏ
+ category="lo",
+ description="ETHIOPIC SYLLABLE WOA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12CF,
},
[0x12D0]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE PHARYNGEAL A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12D0, -- ዐ
+ category="lo",
+ description="ETHIOPIC SYLLABLE PHARYNGEAL A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12D0,
},
[0x12D1]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE PHARYNGEAL U",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12D1, -- ዑ
+ category="lo",
+ description="ETHIOPIC SYLLABLE PHARYNGEAL U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12D1,
},
[0x12D2]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE PHARYNGEAL I",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12D2, -- ዒ
+ category="lo",
+ description="ETHIOPIC SYLLABLE PHARYNGEAL I",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12D2,
},
[0x12D3]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE PHARYNGEAL AA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12D3, -- ዓ
+ category="lo",
+ description="ETHIOPIC SYLLABLE PHARYNGEAL AA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12D3,
},
[0x12D4]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE PHARYNGEAL EE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12D4, -- ዔ
+ category="lo",
+ description="ETHIOPIC SYLLABLE PHARYNGEAL EE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12D4,
},
[0x12D5]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE PHARYNGEAL E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12D5, -- ዕ
+ category="lo",
+ description="ETHIOPIC SYLLABLE PHARYNGEAL E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12D5,
},
[0x12D6]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE PHARYNGEAL O",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12D6, -- ዖ
+ category="lo",
+ description="ETHIOPIC SYLLABLE PHARYNGEAL O",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12D6,
},
[0x12D8]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE ZA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12D8, -- ዘ
+ category="lo",
+ description="ETHIOPIC SYLLABLE ZA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12D8,
},
[0x12D9]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE ZU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12D9, -- ዙ
+ category="lo",
+ description="ETHIOPIC SYLLABLE ZU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12D9,
},
[0x12DA]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE ZI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12DA, -- ዚ
+ category="lo",
+ description="ETHIOPIC SYLLABLE ZI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12DA,
},
[0x12DB]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE ZAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12DB, -- ዛ
+ category="lo",
+ description="ETHIOPIC SYLLABLE ZAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12DB,
},
[0x12DC]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE ZEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12DC, -- ዜ
+ category="lo",
+ description="ETHIOPIC SYLLABLE ZEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12DC,
},
[0x12DD]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE ZE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12DD, -- ዝ
+ category="lo",
+ description="ETHIOPIC SYLLABLE ZE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12DD,
},
[0x12DE]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE ZO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12DE, -- ዞ
+ category="lo",
+ description="ETHIOPIC SYLLABLE ZO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12DE,
},
[0x12DF]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE ZWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12DF, -- ዟ
+ category="lo",
+ description="ETHIOPIC SYLLABLE ZWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12DF,
},
[0x12E0]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE ZHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12E0, -- ዠ
+ category="lo",
+ description="ETHIOPIC SYLLABLE ZHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12E0,
},
[0x12E1]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE ZHU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12E1, -- ዡ
+ category="lo",
+ description="ETHIOPIC SYLLABLE ZHU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12E1,
},
[0x12E2]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE ZHI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12E2, -- ዢ
+ category="lo",
+ description="ETHIOPIC SYLLABLE ZHI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12E2,
},
[0x12E3]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE ZHAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12E3, -- ዣ
+ category="lo",
+ description="ETHIOPIC SYLLABLE ZHAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12E3,
},
[0x12E4]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE ZHEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12E4, -- ዤ
+ category="lo",
+ description="ETHIOPIC SYLLABLE ZHEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12E4,
},
[0x12E5]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE ZHE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12E5, -- ዥ
+ category="lo",
+ description="ETHIOPIC SYLLABLE ZHE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12E5,
},
[0x12E6]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE ZHO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12E6, -- ዦ
+ category="lo",
+ description="ETHIOPIC SYLLABLE ZHO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12E6,
},
[0x12E7]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE ZHWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12E7, -- ዧ
+ category="lo",
+ description="ETHIOPIC SYLLABLE ZHWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12E7,
},
[0x12E8]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE YA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12E8, -- የ
+ category="lo",
+ description="ETHIOPIC SYLLABLE YA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12E8,
},
[0x12E9]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE YU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12E9, -- ዩ
+ category="lo",
+ description="ETHIOPIC SYLLABLE YU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12E9,
},
[0x12EA]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE YI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12EA, -- ዪ
+ category="lo",
+ description="ETHIOPIC SYLLABLE YI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12EA,
},
[0x12EB]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE YAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12EB, -- ያ
+ category="lo",
+ description="ETHIOPIC SYLLABLE YAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12EB,
},
[0x12EC]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE YEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12EC, -- ዬ
+ category="lo",
+ description="ETHIOPIC SYLLABLE YEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12EC,
},
[0x12ED]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE YE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12ED, -- ይ
+ category="lo",
+ description="ETHIOPIC SYLLABLE YE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12ED,
},
[0x12EE]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE YO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12EE, -- ዮ
+ category="lo",
+ description="ETHIOPIC SYLLABLE YO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12EE,
},
[0x12EF]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE YOA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12EF, -- ዯ
+ category="lo",
+ description="ETHIOPIC SYLLABLE YOA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12EF,
},
[0x12F0]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE DA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12F0, -- ደ
+ category="lo",
+ description="ETHIOPIC SYLLABLE DA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12F0,
},
[0x12F1]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE DU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12F1, -- ዱ
+ category="lo",
+ description="ETHIOPIC SYLLABLE DU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12F1,
},
[0x12F2]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE DI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12F2, -- ዲ
+ category="lo",
+ description="ETHIOPIC SYLLABLE DI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12F2,
},
[0x12F3]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE DAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12F3, -- ዳ
+ category="lo",
+ description="ETHIOPIC SYLLABLE DAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12F3,
},
[0x12F4]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE DEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12F4, -- ዴ
+ category="lo",
+ description="ETHIOPIC SYLLABLE DEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12F4,
},
[0x12F5]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE DE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12F5, -- ድ
+ category="lo",
+ description="ETHIOPIC SYLLABLE DE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12F5,
},
[0x12F6]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE DO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12F6, -- ዶ
+ category="lo",
+ description="ETHIOPIC SYLLABLE DO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12F6,
},
[0x12F7]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE DWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12F7, -- ዷ
+ category="lo",
+ description="ETHIOPIC SYLLABLE DWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12F7,
},
[0x12F8]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE DDA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12F8, -- ዸ
+ category="lo",
+ description="ETHIOPIC SYLLABLE DDA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12F8,
},
[0x12F9]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE DDU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12F9, -- ዹ
+ category="lo",
+ description="ETHIOPIC SYLLABLE DDU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12F9,
},
[0x12FA]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE DDI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12FA, -- ዺ
+ category="lo",
+ description="ETHIOPIC SYLLABLE DDI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FA,
},
[0x12FB]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE DDAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12FB, -- ዻ
+ category="lo",
+ description="ETHIOPIC SYLLABLE DDAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FB,
},
[0x12FC]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE DDEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12FC, -- ዼ
+ category="lo",
+ description="ETHIOPIC SYLLABLE DDEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FC,
},
[0x12FD]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE DDE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12FD, -- ዽ
+ category="lo",
+ description="ETHIOPIC SYLLABLE DDE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FD,
},
[0x12FE]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE DDO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12FE, -- ዾ
+ category="lo",
+ description="ETHIOPIC SYLLABLE DDO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FE,
},
[0x12FF]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE DDWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12FF, -- ዿ
+ category="lo",
+ description="ETHIOPIC SYLLABLE DDWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FF,
},
[0x1300]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE JA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1300, -- ጀ
+ category="lo",
+ description="ETHIOPIC SYLLABLE JA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1300,
},
[0x1301]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE JU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1301, -- ጁ
+ category="lo",
+ description="ETHIOPIC SYLLABLE JU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1301,
},
[0x1302]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE JI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1302, -- ጂ
+ category="lo",
+ description="ETHIOPIC SYLLABLE JI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1302,
},
[0x1303]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE JAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1303, -- ጃ
+ category="lo",
+ description="ETHIOPIC SYLLABLE JAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1303,
},
[0x1304]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE JEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1304, -- ጄ
+ category="lo",
+ description="ETHIOPIC SYLLABLE JEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1304,
},
[0x1305]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE JE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1305, -- ጅ
+ category="lo",
+ description="ETHIOPIC SYLLABLE JE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1305,
},
[0x1306]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE JO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1306, -- ጆ
+ category="lo",
+ description="ETHIOPIC SYLLABLE JO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1306,
},
[0x1307]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE JWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1307, -- ጇ
+ category="lo",
+ description="ETHIOPIC SYLLABLE JWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1307,
},
[0x1308]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE GA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1308, -- ገ
+ category="lo",
+ description="ETHIOPIC SYLLABLE GA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1308,
},
[0x1309]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE GU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1309, -- ጉ
+ category="lo",
+ description="ETHIOPIC SYLLABLE GU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1309,
},
[0x130A]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE GI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x130A, -- ጊ
+ category="lo",
+ description="ETHIOPIC SYLLABLE GI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x130A,
},
[0x130B]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE GAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x130B, -- ጋ
+ category="lo",
+ description="ETHIOPIC SYLLABLE GAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x130B,
},
[0x130C]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE GEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x130C, -- ጌ
+ category="lo",
+ description="ETHIOPIC SYLLABLE GEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x130C,
},
[0x130D]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE GE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x130D, -- ግ
+ category="lo",
+ description="ETHIOPIC SYLLABLE GE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x130D,
},
[0x130E]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE GO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x130E, -- ጎ
+ category="lo",
+ description="ETHIOPIC SYLLABLE GO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x130E,
},
[0x130F]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE GOA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x130F, -- ጏ
+ category="lo",
+ description="ETHIOPIC SYLLABLE GOA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x130F,
},
[0x1310]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE GWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1310, -- ጐ
+ category="lo",
+ description="ETHIOPIC SYLLABLE GWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1310,
},
[0x1312]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE GWI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1312, -- ጒ
+ category="lo",
+ description="ETHIOPIC SYLLABLE GWI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1312,
},
[0x1313]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE GWAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1313, -- ጓ
+ category="lo",
+ description="ETHIOPIC SYLLABLE GWAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1313,
},
[0x1314]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE GWEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1314, -- ጔ
+ category="lo",
+ description="ETHIOPIC SYLLABLE GWEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1314,
},
[0x1315]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE GWE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1315, -- ጕ
+ category="lo",
+ description="ETHIOPIC SYLLABLE GWE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1315,
},
[0x1318]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE GGA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1318, -- ጘ
+ category="lo",
+ description="ETHIOPIC SYLLABLE GGA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1318,
},
[0x1319]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE GGU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1319, -- ጙ
+ category="lo",
+ description="ETHIOPIC SYLLABLE GGU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1319,
},
[0x131A]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE GGI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x131A, -- ጚ
+ category="lo",
+ description="ETHIOPIC SYLLABLE GGI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x131A,
},
[0x131B]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE GGAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x131B, -- ጛ
+ category="lo",
+ description="ETHIOPIC SYLLABLE GGAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x131B,
},
[0x131C]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE GGEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x131C, -- ጜ
+ category="lo",
+ description="ETHIOPIC SYLLABLE GGEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x131C,
},
[0x131D]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE GGE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x131D, -- ጝ
+ category="lo",
+ description="ETHIOPIC SYLLABLE GGE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x131D,
},
[0x131E]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE GGO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x131E, -- ጞ
+ category="lo",
+ description="ETHIOPIC SYLLABLE GGO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x131E,
},
[0x131F]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE GGWAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x131F, -- ጟ
+ category="lo",
+ description="ETHIOPIC SYLLABLE GGWAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x131F,
},
[0x1320]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE THA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1320, -- ጠ
+ category="lo",
+ description="ETHIOPIC SYLLABLE THA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1320,
},
[0x1321]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE THU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1321, -- ጡ
+ category="lo",
+ description="ETHIOPIC SYLLABLE THU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1321,
},
[0x1322]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE THI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1322, -- ጢ
+ category="lo",
+ description="ETHIOPIC SYLLABLE THI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1322,
},
[0x1323]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE THAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1323, -- ጣ
+ category="lo",
+ description="ETHIOPIC SYLLABLE THAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1323,
},
[0x1324]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE THEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1324, -- ጤ
+ category="lo",
+ description="ETHIOPIC SYLLABLE THEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1324,
},
[0x1325]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE THE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1325, -- ጥ
+ category="lo",
+ description="ETHIOPIC SYLLABLE THE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1325,
},
[0x1326]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE THO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1326, -- ጦ
+ category="lo",
+ description="ETHIOPIC SYLLABLE THO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1326,
},
[0x1327]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE THWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1327, -- ጧ
+ category="lo",
+ description="ETHIOPIC SYLLABLE THWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1327,
},
[0x1328]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE CHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1328, -- ጨ
+ category="lo",
+ description="ETHIOPIC SYLLABLE CHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1328,
},
[0x1329]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE CHU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1329, -- ጩ
+ category="lo",
+ description="ETHIOPIC SYLLABLE CHU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1329,
},
[0x132A]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE CHI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x132A, -- ጪ
+ category="lo",
+ description="ETHIOPIC SYLLABLE CHI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x132A,
},
[0x132B]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE CHAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x132B, -- ጫ
+ category="lo",
+ description="ETHIOPIC SYLLABLE CHAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x132B,
},
[0x132C]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE CHEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x132C, -- ጬ
+ category="lo",
+ description="ETHIOPIC SYLLABLE CHEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x132C,
},
[0x132D]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE CHE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x132D, -- ጭ
+ category="lo",
+ description="ETHIOPIC SYLLABLE CHE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x132D,
},
[0x132E]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE CHO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x132E, -- ጮ
+ category="lo",
+ description="ETHIOPIC SYLLABLE CHO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x132E,
},
[0x132F]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE CHWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x132F, -- ጯ
+ category="lo",
+ description="ETHIOPIC SYLLABLE CHWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x132F,
},
[0x1330]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE PHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1330, -- ጰ
+ category="lo",
+ description="ETHIOPIC SYLLABLE PHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1330,
},
[0x1331]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE PHU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1331, -- ጱ
+ category="lo",
+ description="ETHIOPIC SYLLABLE PHU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1331,
},
[0x1332]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE PHI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1332, -- ጲ
+ category="lo",
+ description="ETHIOPIC SYLLABLE PHI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1332,
},
[0x1333]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE PHAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1333, -- ጳ
+ category="lo",
+ description="ETHIOPIC SYLLABLE PHAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1333,
},
[0x1334]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE PHEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1334, -- ጴ
+ category="lo",
+ description="ETHIOPIC SYLLABLE PHEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1334,
},
[0x1335]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE PHE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1335, -- ጵ
+ category="lo",
+ description="ETHIOPIC SYLLABLE PHE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1335,
},
[0x1336]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE PHO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1336, -- ጶ
+ category="lo",
+ description="ETHIOPIC SYLLABLE PHO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1336,
},
[0x1337]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE PHWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1337, -- ጷ
+ category="lo",
+ description="ETHIOPIC SYLLABLE PHWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1337,
},
[0x1338]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE TSA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1338, -- ጸ
+ category="lo",
+ description="ETHIOPIC SYLLABLE TSA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1338,
},
[0x1339]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE TSU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1339, -- ጹ
+ category="lo",
+ description="ETHIOPIC SYLLABLE TSU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1339,
},
[0x133A]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE TSI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x133A, -- ጺ
+ category="lo",
+ description="ETHIOPIC SYLLABLE TSI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x133A,
},
[0x133B]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE TSAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x133B, -- ጻ
+ category="lo",
+ description="ETHIOPIC SYLLABLE TSAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x133B,
},
[0x133C]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE TSEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x133C, -- ጼ
+ category="lo",
+ description="ETHIOPIC SYLLABLE TSEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x133C,
},
[0x133D]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE TSE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x133D, -- ጽ
+ category="lo",
+ description="ETHIOPIC SYLLABLE TSE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x133D,
},
[0x133E]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE TSO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x133E, -- ጾ
+ category="lo",
+ description="ETHIOPIC SYLLABLE TSO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x133E,
},
[0x133F]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE TSWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x133F, -- ጿ
+ category="lo",
+ description="ETHIOPIC SYLLABLE TSWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x133F,
},
[0x1340]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE TZA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1340, -- ፀ
+ category="lo",
+ description="ETHIOPIC SYLLABLE TZA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1340,
},
[0x1341]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE TZU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1341, -- ፁ
+ category="lo",
+ description="ETHIOPIC SYLLABLE TZU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1341,
},
[0x1342]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE TZI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1342, -- ፂ
+ category="lo",
+ description="ETHIOPIC SYLLABLE TZI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1342,
},
[0x1343]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE TZAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1343, -- ፃ
+ category="lo",
+ description="ETHIOPIC SYLLABLE TZAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1343,
},
[0x1344]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE TZEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1344, -- ፄ
+ category="lo",
+ description="ETHIOPIC SYLLABLE TZEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1344,
},
[0x1345]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE TZE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1345, -- ፅ
+ category="lo",
+ description="ETHIOPIC SYLLABLE TZE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1345,
},
[0x1346]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE TZO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1346, -- ፆ
+ category="lo",
+ description="ETHIOPIC SYLLABLE TZO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1346,
},
[0x1347]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE TZOA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1347, -- ፇ
+ category="lo",
+ description="ETHIOPIC SYLLABLE TZOA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1347,
},
[0x1348]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE FA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1348, -- ፈ
+ category="lo",
+ description="ETHIOPIC SYLLABLE FA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1348,
},
[0x1349]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE FU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1349, -- ፉ
+ category="lo",
+ description="ETHIOPIC SYLLABLE FU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1349,
},
[0x134A]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE FI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x134A, -- ፊ
+ category="lo",
+ description="ETHIOPIC SYLLABLE FI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x134A,
},
[0x134B]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE FAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x134B, -- ፋ
+ category="lo",
+ description="ETHIOPIC SYLLABLE FAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x134B,
},
[0x134C]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE FEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x134C, -- ፌ
+ category="lo",
+ description="ETHIOPIC SYLLABLE FEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x134C,
},
[0x134D]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE FE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x134D, -- ፍ
+ category="lo",
+ description="ETHIOPIC SYLLABLE FE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x134D,
},
[0x134E]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE FO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x134E, -- ፎ
+ category="lo",
+ description="ETHIOPIC SYLLABLE FO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x134E,
},
[0x134F]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE FWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x134F, -- ፏ
+ category="lo",
+ description="ETHIOPIC SYLLABLE FWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x134F,
},
[0x1350]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE PA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1350, -- ፐ
+ category="lo",
+ description="ETHIOPIC SYLLABLE PA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1350,
},
[0x1351]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE PU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1351, -- ፑ
+ category="lo",
+ description="ETHIOPIC SYLLABLE PU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1351,
},
[0x1352]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE PI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1352, -- ፒ
+ category="lo",
+ description="ETHIOPIC SYLLABLE PI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1352,
},
[0x1353]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE PAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1353, -- ፓ
+ category="lo",
+ description="ETHIOPIC SYLLABLE PAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1353,
},
[0x1354]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE PEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1354, -- ፔ
+ category="lo",
+ description="ETHIOPIC SYLLABLE PEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1354,
},
[0x1355]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE PE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1355, -- ፕ
+ category="lo",
+ description="ETHIOPIC SYLLABLE PE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1355,
},
[0x1356]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE PO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1356, -- ፖ
+ category="lo",
+ description="ETHIOPIC SYLLABLE PO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1356,
},
[0x1357]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE PWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1357, -- ፗ
+ category="lo",
+ description="ETHIOPIC SYLLABLE PWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1357,
},
[0x1358]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE RYA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1358, -- ፘ
+ category="lo",
+ description="ETHIOPIC SYLLABLE RYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1358,
},
[0x1359]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE MYA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1359, -- ፙ
+ category="lo",
+ description="ETHIOPIC SYLLABLE MYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1359,
},
[0x135A]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE FYA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x135A, -- ፚ
+ category="lo",
+ description="ETHIOPIC SYLLABLE FYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x135A,
},
[0x135F]={
- ["category"]="mn",
- ["description"]="ETHIOPIC COMBINING GEMINATION MARK",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x135F, -- ፟
+ category="mn",
+ description="ETHIOPIC COMBINING GEMINATION MARK",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x135F,
},
[0x1360]={
- ["category"]="so",
- ["description"]="ETHIOPIC SECTION MARK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1360, -- ፠
+ category="so",
+ description="ETHIOPIC SECTION MARK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1360,
},
[0x1361]={
- ["category"]="po",
- ["description"]="ETHIOPIC WORDSPACE",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x1361, -- ፡
+ category="po",
+ description="ETHIOPIC WORDSPACE",
+ direction="l",
+ linebreak="ba",
+ unicodeslot=0x1361,
},
[0x1362]={
- ["category"]="po",
- ["description"]="ETHIOPIC FULL STOP",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1362, -- ።
+ category="po",
+ description="ETHIOPIC FULL STOP",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1362,
},
[0x1363]={
- ["category"]="po",
- ["description"]="ETHIOPIC COMMA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1363, -- ፣
+ category="po",
+ description="ETHIOPIC COMMA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1363,
},
[0x1364]={
- ["category"]="po",
- ["description"]="ETHIOPIC SEMICOLON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1364, -- ፤
+ category="po",
+ description="ETHIOPIC SEMICOLON",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1364,
},
[0x1365]={
- ["category"]="po",
- ["description"]="ETHIOPIC COLON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1365, -- ፥
+ category="po",
+ description="ETHIOPIC COLON",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1365,
},
[0x1366]={
- ["category"]="po",
- ["description"]="ETHIOPIC PREFACE COLON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1366, -- ፦
+ category="po",
+ description="ETHIOPIC PREFACE COLON",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1366,
},
[0x1367]={
- ["category"]="po",
- ["description"]="ETHIOPIC QUESTION MARK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1367, -- ፧
+ category="po",
+ description="ETHIOPIC QUESTION MARK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1367,
},
[0x1368]={
- ["category"]="po",
- ["description"]="ETHIOPIC PARAGRAPH SEPARATOR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1368, -- ፨
+ category="po",
+ description="ETHIOPIC PARAGRAPH SEPARATOR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1368,
},
[0x1369]={
- ["category"]="no",
- ["description"]="ETHIOPIC DIGIT ONE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1369, -- ፩
+ category="no",
+ description="ETHIOPIC DIGIT ONE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1369,
},
[0x136A]={
- ["category"]="no",
- ["description"]="ETHIOPIC DIGIT TWO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x136A, -- ፪
+ category="no",
+ description="ETHIOPIC DIGIT TWO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x136A,
},
[0x136B]={
- ["category"]="no",
- ["description"]="ETHIOPIC DIGIT THREE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x136B, -- ፫
+ category="no",
+ description="ETHIOPIC DIGIT THREE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x136B,
},
[0x136C]={
- ["category"]="no",
- ["description"]="ETHIOPIC DIGIT FOUR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x136C, -- ፬
+ category="no",
+ description="ETHIOPIC DIGIT FOUR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x136C,
},
[0x136D]={
- ["category"]="no",
- ["description"]="ETHIOPIC DIGIT FIVE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x136D, -- ፭
+ category="no",
+ description="ETHIOPIC DIGIT FIVE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x136D,
},
[0x136E]={
- ["category"]="no",
- ["description"]="ETHIOPIC DIGIT SIX",
- ["linebreak"]="al",
- ["unicodeslot"]=0x136E, -- ፮
+ category="no",
+ description="ETHIOPIC DIGIT SIX",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x136E,
},
[0x136F]={
- ["category"]="no",
- ["description"]="ETHIOPIC DIGIT SEVEN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x136F, -- ፯
+ category="no",
+ description="ETHIOPIC DIGIT SEVEN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x136F,
},
[0x1370]={
- ["category"]="no",
- ["description"]="ETHIOPIC DIGIT EIGHT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1370, -- ፰
+ category="no",
+ description="ETHIOPIC DIGIT EIGHT",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1370,
},
[0x1371]={
- ["category"]="no",
- ["description"]="ETHIOPIC DIGIT NINE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1371, -- ፱
+ category="no",
+ description="ETHIOPIC DIGIT NINE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1371,
},
[0x1372]={
- ["category"]="no",
- ["description"]="ETHIOPIC NUMBER TEN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1372, -- ፲
+ category="no",
+ description="ETHIOPIC NUMBER TEN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1372,
},
[0x1373]={
- ["category"]="no",
- ["description"]="ETHIOPIC NUMBER TWENTY",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1373, -- ፳
+ category="no",
+ description="ETHIOPIC NUMBER TWENTY",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1373,
},
[0x1374]={
- ["category"]="no",
- ["description"]="ETHIOPIC NUMBER THIRTY",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1374, -- ፴
+ category="no",
+ description="ETHIOPIC NUMBER THIRTY",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1374,
},
[0x1375]={
- ["category"]="no",
- ["description"]="ETHIOPIC NUMBER FORTY",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1375, -- ፵
+ category="no",
+ description="ETHIOPIC NUMBER FORTY",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1375,
},
[0x1376]={
- ["category"]="no",
- ["description"]="ETHIOPIC NUMBER FIFTY",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1376, -- ፶
+ category="no",
+ description="ETHIOPIC NUMBER FIFTY",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1376,
},
[0x1377]={
- ["category"]="no",
- ["description"]="ETHIOPIC NUMBER SIXTY",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1377, -- ፷
+ category="no",
+ description="ETHIOPIC NUMBER SIXTY",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1377,
},
[0x1378]={
- ["category"]="no",
- ["description"]="ETHIOPIC NUMBER SEVENTY",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1378, -- ፸
+ category="no",
+ description="ETHIOPIC NUMBER SEVENTY",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1378,
},
[0x1379]={
- ["category"]="no",
- ["description"]="ETHIOPIC NUMBER EIGHTY",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1379, -- ፹
+ category="no",
+ description="ETHIOPIC NUMBER EIGHTY",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1379,
},
[0x137A]={
- ["category"]="no",
- ["description"]="ETHIOPIC NUMBER NINETY",
- ["linebreak"]="al",
- ["unicodeslot"]=0x137A, -- ፺
+ category="no",
+ description="ETHIOPIC NUMBER NINETY",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x137A,
},
[0x137B]={
- ["category"]="no",
- ["description"]="ETHIOPIC NUMBER HUNDRED",
- ["linebreak"]="al",
- ["unicodeslot"]=0x137B, -- ፻
+ category="no",
+ description="ETHIOPIC NUMBER HUNDRED",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x137B,
},
[0x137C]={
- ["category"]="no",
- ["description"]="ETHIOPIC NUMBER TEN THOUSAND",
- ["linebreak"]="al",
- ["unicodeslot"]=0x137C, -- ፼
+ category="no",
+ description="ETHIOPIC NUMBER TEN THOUSAND",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x137C,
},
[0x1380]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE SEBATBEIT MWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1380, -- ᎀ
+ category="lo",
+ description="ETHIOPIC SYLLABLE SEBATBEIT MWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1380,
},
[0x1381]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE MWI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1381, -- ᎁ
+ category="lo",
+ description="ETHIOPIC SYLLABLE MWI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1381,
},
[0x1382]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE MWEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1382, -- ᎂ
+ category="lo",
+ description="ETHIOPIC SYLLABLE MWEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1382,
},
[0x1383]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE MWE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1383, -- ᎃ
+ category="lo",
+ description="ETHIOPIC SYLLABLE MWE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1383,
},
[0x1384]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE SEBATBEIT BWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1384, -- ᎄ
+ category="lo",
+ description="ETHIOPIC SYLLABLE SEBATBEIT BWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1384,
},
[0x1385]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE BWI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1385, -- ᎅ
+ category="lo",
+ description="ETHIOPIC SYLLABLE BWI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1385,
},
[0x1386]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE BWEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1386, -- ᎆ
+ category="lo",
+ description="ETHIOPIC SYLLABLE BWEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1386,
},
[0x1387]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE BWE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1387, -- ᎇ
+ category="lo",
+ description="ETHIOPIC SYLLABLE BWE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1387,
},
[0x1388]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE SEBATBEIT FWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1388, -- ᎈ
+ category="lo",
+ description="ETHIOPIC SYLLABLE SEBATBEIT FWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1388,
},
[0x1389]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE FWI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1389, -- ᎉ
+ category="lo",
+ description="ETHIOPIC SYLLABLE FWI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1389,
},
[0x138A]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE FWEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x138A, -- ᎊ
+ category="lo",
+ description="ETHIOPIC SYLLABLE FWEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x138A,
},
[0x138B]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE FWE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x138B, -- ᎋ
+ category="lo",
+ description="ETHIOPIC SYLLABLE FWE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x138B,
},
[0x138C]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE SEBATBEIT PWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x138C, -- ᎌ
+ category="lo",
+ description="ETHIOPIC SYLLABLE SEBATBEIT PWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x138C,
},
[0x138D]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE PWI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x138D, -- ᎍ
+ category="lo",
+ description="ETHIOPIC SYLLABLE PWI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x138D,
},
[0x138E]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE PWEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x138E, -- ᎎ
+ category="lo",
+ description="ETHIOPIC SYLLABLE PWEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x138E,
},
[0x138F]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE PWE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x138F, -- ᎏ
+ category="lo",
+ description="ETHIOPIC SYLLABLE PWE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x138F,
},
[0x1390]={
- ["category"]="so",
- ["description"]="ETHIOPIC TONAL MARK YIZET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1390, -- ᎐
+ category="so",
+ description="ETHIOPIC TONAL MARK YIZET",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1390,
},
[0x1391]={
- ["category"]="so",
- ["description"]="ETHIOPIC TONAL MARK DERET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1391, -- ᎑
+ category="so",
+ description="ETHIOPIC TONAL MARK DERET",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1391,
},
[0x1392]={
- ["category"]="so",
- ["description"]="ETHIOPIC TONAL MARK RIKRIK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1392, -- ᎒
+ category="so",
+ description="ETHIOPIC TONAL MARK RIKRIK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1392,
},
[0x1393]={
- ["category"]="so",
- ["description"]="ETHIOPIC TONAL MARK SHORT RIKRIK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1393, -- ᎓
+ category="so",
+ description="ETHIOPIC TONAL MARK SHORT RIKRIK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1393,
},
[0x1394]={
- ["category"]="so",
- ["description"]="ETHIOPIC TONAL MARK DIFAT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1394, -- ᎔
+ category="so",
+ description="ETHIOPIC TONAL MARK DIFAT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1394,
},
[0x1395]={
- ["category"]="so",
- ["description"]="ETHIOPIC TONAL MARK KENAT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1395, -- ᎕
+ category="so",
+ description="ETHIOPIC TONAL MARK KENAT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1395,
},
[0x1396]={
- ["category"]="so",
- ["description"]="ETHIOPIC TONAL MARK CHIRET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1396, -- ᎖
+ category="so",
+ description="ETHIOPIC TONAL MARK CHIRET",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1396,
},
[0x1397]={
- ["category"]="so",
- ["description"]="ETHIOPIC TONAL MARK HIDET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1397, -- ᎗
+ category="so",
+ description="ETHIOPIC TONAL MARK HIDET",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1397,
},
[0x1398]={
- ["category"]="so",
- ["description"]="ETHIOPIC TONAL MARK DERET-HIDET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1398, -- ᎘
+ category="so",
+ description="ETHIOPIC TONAL MARK DERET-HIDET",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1398,
},
[0x1399]={
- ["category"]="so",
- ["description"]="ETHIOPIC TONAL MARK KURT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1399, -- ᎙
+ category="so",
+ description="ETHIOPIC TONAL MARK KURT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1399,
},
[0x13A0]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13A0, -- Ꭰ
+ category="lo",
+ description="CHEROKEE LETTER A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13A0,
},
[0x13A1]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13A1, -- Ꭱ
+ category="lo",
+ description="CHEROKEE LETTER E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13A1,
},
[0x13A2]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER I",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13A2, -- Ꭲ
+ category="lo",
+ description="CHEROKEE LETTER I",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13A2,
},
[0x13A3]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER O",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13A3, -- Ꭳ
+ category="lo",
+ description="CHEROKEE LETTER O",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13A3,
},
[0x13A4]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER U",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13A4, -- Ꭴ
+ category="lo",
+ description="CHEROKEE LETTER U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13A4,
},
[0x13A5]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER V",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13A5, -- Ꭵ
+ category="lo",
+ description="CHEROKEE LETTER V",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13A5,
},
[0x13A6]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER GA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13A6, -- Ꭶ
+ category="lo",
+ description="CHEROKEE LETTER GA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13A6,
},
[0x13A7]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER KA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13A7, -- Ꭷ
+ category="lo",
+ description="CHEROKEE LETTER KA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13A7,
},
[0x13A8]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER GE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13A8, -- Ꭸ
+ category="lo",
+ description="CHEROKEE LETTER GE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13A8,
},
[0x13A9]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER GI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13A9, -- Ꭹ
+ category="lo",
+ description="CHEROKEE LETTER GI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13A9,
},
[0x13AA]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER GO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13AA, -- Ꭺ
+ category="lo",
+ description="CHEROKEE LETTER GO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13AA,
},
[0x13AB]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER GU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13AB, -- Ꭻ
+ category="lo",
+ description="CHEROKEE LETTER GU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13AB,
},
[0x13AC]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER GV",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13AC, -- Ꭼ
+ category="lo",
+ description="CHEROKEE LETTER GV",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13AC,
},
[0x13AD]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER HA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13AD, -- Ꭽ
+ category="lo",
+ description="CHEROKEE LETTER HA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13AD,
},
[0x13AE]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER HE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13AE, -- Ꭾ
+ category="lo",
+ description="CHEROKEE LETTER HE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13AE,
},
[0x13AF]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER HI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13AF, -- Ꭿ
+ category="lo",
+ description="CHEROKEE LETTER HI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13AF,
},
[0x13B0]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER HO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13B0, -- Ꮀ
+ category="lo",
+ description="CHEROKEE LETTER HO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13B0,
},
[0x13B1]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER HU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13B1, -- Ꮁ
+ category="lo",
+ description="CHEROKEE LETTER HU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13B1,
},
[0x13B2]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER HV",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13B2, -- Ꮂ
+ category="lo",
+ description="CHEROKEE LETTER HV",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13B2,
},
[0x13B3]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER LA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13B3, -- Ꮃ
+ category="lo",
+ description="CHEROKEE LETTER LA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13B3,
},
[0x13B4]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER LE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13B4, -- Ꮄ
+ category="lo",
+ description="CHEROKEE LETTER LE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13B4,
},
[0x13B5]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER LI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13B5, -- Ꮅ
+ category="lo",
+ description="CHEROKEE LETTER LI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13B5,
},
[0x13B6]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER LO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13B6, -- Ꮆ
+ category="lo",
+ description="CHEROKEE LETTER LO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13B6,
},
[0x13B7]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER LU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13B7, -- Ꮇ
+ category="lo",
+ description="CHEROKEE LETTER LU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13B7,
},
[0x13B8]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER LV",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13B8, -- Ꮈ
+ category="lo",
+ description="CHEROKEE LETTER LV",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13B8,
},
[0x13B9]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER MA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13B9, -- Ꮉ
+ category="lo",
+ description="CHEROKEE LETTER MA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13B9,
},
[0x13BA]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER ME",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13BA, -- Ꮊ
+ category="lo",
+ description="CHEROKEE LETTER ME",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13BA,
},
[0x13BB]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER MI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13BB, -- Ꮋ
+ category="lo",
+ description="CHEROKEE LETTER MI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13BB,
},
[0x13BC]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER MO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13BC, -- Ꮌ
+ category="lo",
+ description="CHEROKEE LETTER MO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13BC,
},
[0x13BD]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER MU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13BD, -- Ꮍ
+ category="lo",
+ description="CHEROKEE LETTER MU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13BD,
},
[0x13BE]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER NA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13BE, -- Ꮎ
+ category="lo",
+ description="CHEROKEE LETTER NA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13BE,
},
[0x13BF]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER HNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13BF, -- Ꮏ
+ category="lo",
+ description="CHEROKEE LETTER HNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13BF,
},
[0x13C0]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER NAH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13C0, -- Ꮐ
+ category="lo",
+ description="CHEROKEE LETTER NAH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13C0,
},
[0x13C1]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER NE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13C1, -- Ꮑ
+ category="lo",
+ description="CHEROKEE LETTER NE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13C1,
},
[0x13C2]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER NI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13C2, -- Ꮒ
+ category="lo",
+ description="CHEROKEE LETTER NI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13C2,
},
[0x13C3]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER NO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13C3, -- Ꮓ
+ category="lo",
+ description="CHEROKEE LETTER NO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13C3,
},
[0x13C4]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER NU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13C4, -- Ꮔ
+ category="lo",
+ description="CHEROKEE LETTER NU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13C4,
},
[0x13C5]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER NV",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13C5, -- Ꮕ
+ category="lo",
+ description="CHEROKEE LETTER NV",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13C5,
},
[0x13C6]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER QUA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13C6, -- Ꮖ
+ category="lo",
+ description="CHEROKEE LETTER QUA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13C6,
},
[0x13C7]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER QUE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13C7, -- Ꮗ
+ category="lo",
+ description="CHEROKEE LETTER QUE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13C7,
},
[0x13C8]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER QUI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13C8, -- Ꮘ
+ category="lo",
+ description="CHEROKEE LETTER QUI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13C8,
},
[0x13C9]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER QUO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13C9, -- Ꮙ
+ category="lo",
+ description="CHEROKEE LETTER QUO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13C9,
},
[0x13CA]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER QUU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13CA, -- Ꮚ
+ category="lo",
+ description="CHEROKEE LETTER QUU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13CA,
},
[0x13CB]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER QUV",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13CB, -- Ꮛ
+ category="lo",
+ description="CHEROKEE LETTER QUV",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13CB,
},
[0x13CC]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER SA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13CC, -- Ꮜ
+ category="lo",
+ description="CHEROKEE LETTER SA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13CC,
},
[0x13CD]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER S",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13CD, -- Ꮝ
+ category="lo",
+ description="CHEROKEE LETTER S",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13CD,
},
[0x13CE]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER SE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13CE, -- Ꮞ
+ category="lo",
+ description="CHEROKEE LETTER SE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13CE,
},
[0x13CF]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER SI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13CF, -- Ꮟ
+ category="lo",
+ description="CHEROKEE LETTER SI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13CF,
},
[0x13D0]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER SO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13D0, -- Ꮠ
+ category="lo",
+ description="CHEROKEE LETTER SO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13D0,
},
[0x13D1]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER SU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13D1, -- Ꮡ
+ category="lo",
+ description="CHEROKEE LETTER SU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13D1,
},
[0x13D2]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER SV",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13D2, -- Ꮢ
+ category="lo",
+ description="CHEROKEE LETTER SV",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13D2,
},
[0x13D3]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER DA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13D3, -- Ꮣ
+ category="lo",
+ description="CHEROKEE LETTER DA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13D3,
},
[0x13D4]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER TA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13D4, -- Ꮤ
+ category="lo",
+ description="CHEROKEE LETTER TA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13D4,
},
[0x13D5]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER DE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13D5, -- Ꮥ
+ category="lo",
+ description="CHEROKEE LETTER DE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13D5,
},
[0x13D6]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER TE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13D6, -- Ꮦ
+ category="lo",
+ description="CHEROKEE LETTER TE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13D6,
},
[0x13D7]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER DI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13D7, -- Ꮧ
+ category="lo",
+ description="CHEROKEE LETTER DI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13D7,
},
[0x13D8]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER TI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13D8, -- Ꮨ
+ category="lo",
+ description="CHEROKEE LETTER TI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13D8,
},
[0x13D9]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER DO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13D9, -- Ꮩ
+ category="lo",
+ description="CHEROKEE LETTER DO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13D9,
},
[0x13DA]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER DU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13DA, -- Ꮪ
+ category="lo",
+ description="CHEROKEE LETTER DU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13DA,
},
[0x13DB]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER DV",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13DB, -- Ꮫ
+ category="lo",
+ description="CHEROKEE LETTER DV",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13DB,
},
[0x13DC]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER DLA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13DC, -- Ꮬ
+ category="lo",
+ description="CHEROKEE LETTER DLA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13DC,
},
[0x13DD]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER TLA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13DD, -- Ꮭ
+ category="lo",
+ description="CHEROKEE LETTER TLA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13DD,
},
[0x13DE]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER TLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13DE, -- Ꮮ
+ category="lo",
+ description="CHEROKEE LETTER TLE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13DE,
},
[0x13DF]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER TLI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13DF, -- Ꮯ
+ category="lo",
+ description="CHEROKEE LETTER TLI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13DF,
},
[0x13E0]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER TLO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13E0, -- Ꮰ
+ category="lo",
+ description="CHEROKEE LETTER TLO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13E0,
},
[0x13E1]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER TLU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13E1, -- Ꮱ
+ category="lo",
+ description="CHEROKEE LETTER TLU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13E1,
},
[0x13E2]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER TLV",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13E2, -- Ꮲ
+ category="lo",
+ description="CHEROKEE LETTER TLV",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13E2,
},
[0x13E3]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER TSA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13E3, -- Ꮳ
+ category="lo",
+ description="CHEROKEE LETTER TSA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13E3,
},
[0x13E4]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER TSE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13E4, -- Ꮴ
+ category="lo",
+ description="CHEROKEE LETTER TSE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13E4,
},
[0x13E5]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER TSI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13E5, -- Ꮵ
+ category="lo",
+ description="CHEROKEE LETTER TSI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13E5,
},
[0x13E6]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER TSO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13E6, -- Ꮶ
+ category="lo",
+ description="CHEROKEE LETTER TSO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13E6,
},
[0x13E7]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER TSU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13E7, -- Ꮷ
+ category="lo",
+ description="CHEROKEE LETTER TSU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13E7,
},
[0x13E8]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER TSV",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13E8, -- Ꮸ
+ category="lo",
+ description="CHEROKEE LETTER TSV",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13E8,
},
[0x13E9]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER WA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13E9, -- Ꮹ
+ category="lo",
+ description="CHEROKEE LETTER WA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13E9,
},
[0x13EA]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER WE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13EA, -- Ꮺ
+ category="lo",
+ description="CHEROKEE LETTER WE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13EA,
},
[0x13EB]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER WI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13EB, -- Ꮻ
+ category="lo",
+ description="CHEROKEE LETTER WI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13EB,
},
[0x13EC]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER WO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13EC, -- Ꮼ
+ category="lo",
+ description="CHEROKEE LETTER WO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13EC,
},
[0x13ED]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER WU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13ED, -- Ꮽ
+ category="lo",
+ description="CHEROKEE LETTER WU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13ED,
},
[0x13EE]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER WV",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13EE, -- Ꮾ
+ category="lo",
+ description="CHEROKEE LETTER WV",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13EE,
},
[0x13EF]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER YA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13EF, -- Ꮿ
+ category="lo",
+ description="CHEROKEE LETTER YA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13EF,
},
[0x13F0]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER YE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13F0, -- Ᏸ
+ category="lo",
+ description="CHEROKEE LETTER YE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13F0,
},
[0x13F1]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER YI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13F1, -- Ᏹ
+ category="lo",
+ description="CHEROKEE LETTER YI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13F1,
},
[0x13F2]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER YO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13F2, -- Ᏺ
+ category="lo",
+ description="CHEROKEE LETTER YO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13F2,
},
[0x13F3]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER YU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13F3, -- Ᏻ
+ category="lo",
+ description="CHEROKEE LETTER YU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13F3,
},
[0x13F4]={
- ["category"]="lo",
- ["description"]="CHEROKEE LETTER YV",
- ["linebreak"]="al",
- ["unicodeslot"]=0x13F4, -- Ᏼ
+ category="lo",
+ description="CHEROKEE LETTER YV",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13F4,
},
[0x1401]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1401, -- ᐁ
+ category="lo",
+ description="CANADIAN SYLLABICS E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1401,
},
[0x1402]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS AAI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1402, -- ᐂ
+ category="lo",
+ description="CANADIAN SYLLABICS AAI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1402,
},
[0x1403]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS I",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1403, -- ᐃ
+ category="lo",
+ description="CANADIAN SYLLABICS I",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1403,
},
[0x1404]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS II",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1404, -- ᐄ
+ category="lo",
+ description="CANADIAN SYLLABICS II",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1404,
},
[0x1405]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS O",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1405, -- ᐅ
+ category="lo",
+ description="CANADIAN SYLLABICS O",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1405,
},
[0x1406]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS OO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1406, -- ᐆ
+ category="lo",
+ description="CANADIAN SYLLABICS OO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1406,
},
[0x1407]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS Y-CREE OO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1407, -- ᐇ
+ category="lo",
+ description="CANADIAN SYLLABICS Y-CREE OO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1407,
},
[0x1408]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER EE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1408, -- ᐈ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER EE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1408,
},
[0x1409]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER I",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1409, -- ᐉ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER I",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1409,
},
[0x140A]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x140A, -- ᐊ
+ category="lo",
+ description="CANADIAN SYLLABICS A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x140A,
},
[0x140B]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS AA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x140B, -- ᐋ
+ category="lo",
+ description="CANADIAN SYLLABICS AA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x140B,
},
[0x140C]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x140C, -- ᐌ
+ category="lo",
+ description="CANADIAN SYLLABICS WE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x140C,
},
[0x140D]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE WE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x140D, -- ᐍ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE WE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x140D,
},
[0x140E]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x140E, -- ᐎ
+ category="lo",
+ description="CANADIAN SYLLABICS WI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x140E,
},
[0x140F]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE WI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x140F, -- ᐏ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE WI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x140F,
},
[0x1410]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WII",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1410, -- ᐐ
+ category="lo",
+ description="CANADIAN SYLLABICS WII",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1410,
},
[0x1411]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE WII",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1411, -- ᐑ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE WII",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1411,
},
[0x1412]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1412, -- ᐒ
+ category="lo",
+ description="CANADIAN SYLLABICS WO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1412,
},
[0x1413]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE WO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1413, -- ᐓ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE WO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1413,
},
[0x1414]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WOO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1414, -- ᐔ
+ category="lo",
+ description="CANADIAN SYLLABICS WOO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1414,
},
[0x1415]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE WOO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1415, -- ᐕ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE WOO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1415,
},
[0x1416]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS NASKAPI WOO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1416, -- ᐖ
+ category="lo",
+ description="CANADIAN SYLLABICS NASKAPI WOO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1416,
},
[0x1417]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1417, -- ᐗ
+ category="lo",
+ description="CANADIAN SYLLABICS WA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1417,
},
[0x1418]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE WA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1418, -- ᐘ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE WA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1418,
},
[0x1419]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1419, -- ᐙ
+ category="lo",
+ description="CANADIAN SYLLABICS WAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1419,
},
[0x141A]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE WAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x141A, -- ᐚ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE WAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x141A,
},
[0x141B]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS NASKAPI WAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x141B, -- ᐛ
+ category="lo",
+ description="CANADIAN SYLLABICS NASKAPI WAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x141B,
},
[0x141C]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS AI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x141C, -- ᐜ
+ category="lo",
+ description="CANADIAN SYLLABICS AI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x141C,
},
[0x141D]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS Y-CREE W",
- ["linebreak"]="al",
- ["unicodeslot"]=0x141D, -- ᐝ
+ category="lo",
+ description="CANADIAN SYLLABICS Y-CREE W",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x141D,
},
[0x141E]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS GLOTTAL STOP",
- ["linebreak"]="al",
- ["unicodeslot"]=0x141E, -- ᐞ
+ category="lo",
+ description="CANADIAN SYLLABICS GLOTTAL STOP",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x141E,
},
[0x141F]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS FINAL ACUTE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x141F, -- ᐟ
+ category="lo",
+ description="CANADIAN SYLLABICS FINAL ACUTE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x141F,
},
[0x1420]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS FINAL GRAVE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1420, -- ᐠ
+ category="lo",
+ description="CANADIAN SYLLABICS FINAL GRAVE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1420,
},
[0x1421]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS FINAL BOTTOM HALF RING",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1421, -- ᐡ
+ category="lo",
+ description="CANADIAN SYLLABICS FINAL BOTTOM HALF RING",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1421,
},
[0x1422]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS FINAL TOP HALF RING",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1422, -- ᐢ
+ category="lo",
+ description="CANADIAN SYLLABICS FINAL TOP HALF RING",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1422,
},
[0x1423]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS FINAL RIGHT HALF RING",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1423, -- ᐣ
+ category="lo",
+ description="CANADIAN SYLLABICS FINAL RIGHT HALF RING",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1423,
},
[0x1424]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS FINAL RING",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1424, -- ᐤ
+ category="lo",
+ description="CANADIAN SYLLABICS FINAL RING",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1424,
},
[0x1425]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS FINAL DOUBLE ACUTE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1425, -- ᐥ
+ category="lo",
+ description="CANADIAN SYLLABICS FINAL DOUBLE ACUTE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1425,
},
[0x1426]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS FINAL DOUBLE SHORT VERTICAL STROKES",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1426, -- ᐦ
+ category="lo",
+ description="CANADIAN SYLLABICS FINAL DOUBLE SHORT VERTICAL STROKES",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1426,
},
[0x1427]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS FINAL MIDDLE DOT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1427, -- ᐧ
+ category="lo",
+ description="CANADIAN SYLLABICS FINAL MIDDLE DOT",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1427,
},
[0x1428]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS FINAL SHORT HORIZONTAL STROKE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1428, -- ᐨ
+ category="lo",
+ description="CANADIAN SYLLABICS FINAL SHORT HORIZONTAL STROKE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1428,
},
[0x1429]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS FINAL PLUS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1429, -- ᐩ
+ category="lo",
+ description="CANADIAN SYLLABICS FINAL PLUS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1429,
},
[0x142A]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS FINAL DOWN TACK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x142A, -- ᐪ
+ category="lo",
+ description="CANADIAN SYLLABICS FINAL DOWN TACK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x142A,
},
[0x142B]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS EN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x142B, -- ᐫ
+ category="lo",
+ description="CANADIAN SYLLABICS EN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x142B,
},
[0x142C]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS IN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x142C, -- ᐬ
+ category="lo",
+ description="CANADIAN SYLLABICS IN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x142C,
},
[0x142D]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS ON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x142D, -- ᐭ
+ category="lo",
+ description="CANADIAN SYLLABICS ON",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x142D,
},
[0x142E]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS AN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x142E, -- ᐮ
+ category="lo",
+ description="CANADIAN SYLLABICS AN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x142E,
},
[0x142F]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS PE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x142F, -- ᐯ
+ category="lo",
+ description="CANADIAN SYLLABICS PE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x142F,
},
[0x1430]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS PAAI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1430, -- ᐰ
+ category="lo",
+ description="CANADIAN SYLLABICS PAAI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1430,
},
[0x1431]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS PI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1431, -- ᐱ
+ category="lo",
+ description="CANADIAN SYLLABICS PI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1431,
},
[0x1432]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS PII",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1432, -- ᐲ
+ category="lo",
+ description="CANADIAN SYLLABICS PII",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1432,
},
[0x1433]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS PO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1433, -- ᐳ
+ category="lo",
+ description="CANADIAN SYLLABICS PO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1433,
},
[0x1434]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS POO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1434, -- ᐴ
+ category="lo",
+ description="CANADIAN SYLLABICS POO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1434,
},
[0x1435]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS Y-CREE POO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1435, -- ᐵ
+ category="lo",
+ description="CANADIAN SYLLABICS Y-CREE POO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1435,
},
[0x1436]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER HEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1436, -- ᐶ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER HEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1436,
},
[0x1437]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER HI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1437, -- ᐷ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER HI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1437,
},
[0x1438]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS PA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1438, -- ᐸ
+ category="lo",
+ description="CANADIAN SYLLABICS PA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1438,
},
[0x1439]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS PAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1439, -- ᐹ
+ category="lo",
+ description="CANADIAN SYLLABICS PAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1439,
},
[0x143A]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS PWE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x143A, -- ᐺ
+ category="lo",
+ description="CANADIAN SYLLABICS PWE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x143A,
},
[0x143B]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE PWE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x143B, -- ᐻ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE PWE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x143B,
},
[0x143C]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS PWI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x143C, -- ᐼ
+ category="lo",
+ description="CANADIAN SYLLABICS PWI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x143C,
},
[0x143D]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE PWI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x143D, -- ᐽ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE PWI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x143D,
},
[0x143E]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS PWII",
- ["linebreak"]="al",
- ["unicodeslot"]=0x143E, -- ᐾ
+ category="lo",
+ description="CANADIAN SYLLABICS PWII",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x143E,
},
[0x143F]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE PWII",
- ["linebreak"]="al",
- ["unicodeslot"]=0x143F, -- ᐿ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE PWII",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x143F,
},
[0x1440]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS PWO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1440, -- ᑀ
+ category="lo",
+ description="CANADIAN SYLLABICS PWO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1440,
},
[0x1441]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE PWO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1441, -- ᑁ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE PWO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1441,
},
[0x1442]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS PWOO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1442, -- ᑂ
+ category="lo",
+ description="CANADIAN SYLLABICS PWOO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1442,
},
[0x1443]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE PWOO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1443, -- ᑃ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE PWOO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1443,
},
[0x1444]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS PWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1444, -- ᑄ
+ category="lo",
+ description="CANADIAN SYLLABICS PWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1444,
},
[0x1445]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE PWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1445, -- ᑅ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE PWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1445,
},
[0x1446]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS PWAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1446, -- ᑆ
+ category="lo",
+ description="CANADIAN SYLLABICS PWAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1446,
},
[0x1447]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE PWAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1447, -- ᑇ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE PWAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1447,
},
[0x1448]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS Y-CREE PWAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1448, -- ᑈ
+ category="lo",
+ description="CANADIAN SYLLABICS Y-CREE PWAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1448,
},
[0x1449]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS P",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1449, -- ᑉ
+ category="lo",
+ description="CANADIAN SYLLABICS P",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1449,
},
[0x144A]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE P",
- ["linebreak"]="al",
- ["unicodeslot"]=0x144A, -- ᑊ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE P",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x144A,
},
[0x144B]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER H",
- ["linebreak"]="al",
- ["unicodeslot"]=0x144B, -- ᑋ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER H",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x144B,
},
[0x144C]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS TE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x144C, -- ᑌ
+ category="lo",
+ description="CANADIAN SYLLABICS TE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x144C,
},
[0x144D]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS TAAI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x144D, -- ᑍ
+ category="lo",
+ description="CANADIAN SYLLABICS TAAI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x144D,
},
[0x144E]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS TI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x144E, -- ᑎ
+ category="lo",
+ description="CANADIAN SYLLABICS TI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x144E,
},
[0x144F]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS TII",
- ["linebreak"]="al",
- ["unicodeslot"]=0x144F, -- ᑏ
+ category="lo",
+ description="CANADIAN SYLLABICS TII",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x144F,
},
[0x1450]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1450, -- ᑐ
+ category="lo",
+ description="CANADIAN SYLLABICS TO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1450,
},
[0x1451]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS TOO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1451, -- ᑑ
+ category="lo",
+ description="CANADIAN SYLLABICS TOO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1451,
},
[0x1452]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS Y-CREE TOO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1452, -- ᑒ
+ category="lo",
+ description="CANADIAN SYLLABICS Y-CREE TOO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1452,
},
[0x1453]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER DEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1453, -- ᑓ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER DEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1453,
},
[0x1454]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER DI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1454, -- ᑔ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER DI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1454,
},
[0x1455]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS TA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1455, -- ᑕ
+ category="lo",
+ description="CANADIAN SYLLABICS TA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1455,
},
[0x1456]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS TAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1456, -- ᑖ
+ category="lo",
+ description="CANADIAN SYLLABICS TAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1456,
},
[0x1457]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS TWE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1457, -- ᑗ
+ category="lo",
+ description="CANADIAN SYLLABICS TWE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1457,
},
[0x1458]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE TWE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1458, -- ᑘ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE TWE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1458,
},
[0x1459]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS TWI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1459, -- ᑙ
+ category="lo",
+ description="CANADIAN SYLLABICS TWI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1459,
},
[0x145A]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE TWI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x145A, -- ᑚ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE TWI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x145A,
},
[0x145B]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS TWII",
- ["linebreak"]="al",
- ["unicodeslot"]=0x145B, -- ᑛ
+ category="lo",
+ description="CANADIAN SYLLABICS TWII",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x145B,
},
[0x145C]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE TWII",
- ["linebreak"]="al",
- ["unicodeslot"]=0x145C, -- ᑜ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE TWII",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x145C,
},
[0x145D]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS TWO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x145D, -- ᑝ
+ category="lo",
+ description="CANADIAN SYLLABICS TWO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x145D,
},
[0x145E]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE TWO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x145E, -- ᑞ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE TWO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x145E,
},
[0x145F]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS TWOO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x145F, -- ᑟ
+ category="lo",
+ description="CANADIAN SYLLABICS TWOO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x145F,
},
[0x1460]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE TWOO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1460, -- ᑠ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE TWOO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1460,
},
[0x1461]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS TWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1461, -- ᑡ
+ category="lo",
+ description="CANADIAN SYLLABICS TWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1461,
},
[0x1462]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE TWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1462, -- ᑢ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE TWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1462,
},
[0x1463]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS TWAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1463, -- ᑣ
+ category="lo",
+ description="CANADIAN SYLLABICS TWAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1463,
},
[0x1464]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE TWAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1464, -- ᑤ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE TWAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1464,
},
[0x1465]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS NASKAPI TWAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1465, -- ᑥ
+ category="lo",
+ description="CANADIAN SYLLABICS NASKAPI TWAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1465,
},
[0x1466]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS T",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1466, -- ᑦ
+ category="lo",
+ description="CANADIAN SYLLABICS T",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1466,
},
[0x1467]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS TTE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1467, -- ᑧ
+ category="lo",
+ description="CANADIAN SYLLABICS TTE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1467,
},
[0x1468]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS TTI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1468, -- ᑨ
+ category="lo",
+ description="CANADIAN SYLLABICS TTI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1468,
},
[0x1469]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS TTO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1469, -- ᑩ
+ category="lo",
+ description="CANADIAN SYLLABICS TTO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1469,
},
[0x146A]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS TTA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x146A, -- ᑪ
+ category="lo",
+ description="CANADIAN SYLLABICS TTA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x146A,
},
[0x146B]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS KE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x146B, -- ᑫ
+ category="lo",
+ description="CANADIAN SYLLABICS KE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x146B,
},
[0x146C]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS KAAI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x146C, -- ᑬ
+ category="lo",
+ description="CANADIAN SYLLABICS KAAI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x146C,
},
[0x146D]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS KI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x146D, -- ᑭ
+ category="lo",
+ description="CANADIAN SYLLABICS KI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x146D,
},
[0x146E]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS KII",
- ["linebreak"]="al",
- ["unicodeslot"]=0x146E, -- ᑮ
+ category="lo",
+ description="CANADIAN SYLLABICS KII",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x146E,
},
[0x146F]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS KO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x146F, -- ᑯ
+ category="lo",
+ description="CANADIAN SYLLABICS KO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x146F,
},
[0x1470]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS KOO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1470, -- ᑰ
+ category="lo",
+ description="CANADIAN SYLLABICS KOO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1470,
},
[0x1471]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS Y-CREE KOO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1471, -- ᑱ
+ category="lo",
+ description="CANADIAN SYLLABICS Y-CREE KOO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1471,
},
[0x1472]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS KA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1472, -- ᑲ
+ category="lo",
+ description="CANADIAN SYLLABICS KA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1472,
},
[0x1473]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS KAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1473, -- ᑳ
+ category="lo",
+ description="CANADIAN SYLLABICS KAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1473,
},
[0x1474]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS KWE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1474, -- ᑴ
+ category="lo",
+ description="CANADIAN SYLLABICS KWE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1474,
},
[0x1475]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE KWE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1475, -- ᑵ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE KWE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1475,
},
[0x1476]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS KWI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1476, -- ᑶ
+ category="lo",
+ description="CANADIAN SYLLABICS KWI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1476,
},
[0x1477]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE KWI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1477, -- ᑷ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE KWI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1477,
},
[0x1478]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS KWII",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1478, -- ᑸ
+ category="lo",
+ description="CANADIAN SYLLABICS KWII",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1478,
},
[0x1479]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE KWII",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1479, -- ᑹ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE KWII",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1479,
},
[0x147A]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS KWO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x147A, -- ᑺ
+ category="lo",
+ description="CANADIAN SYLLABICS KWO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x147A,
},
[0x147B]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE KWO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x147B, -- ᑻ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE KWO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x147B,
},
[0x147C]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS KWOO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x147C, -- ᑼ
+ category="lo",
+ description="CANADIAN SYLLABICS KWOO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x147C,
},
[0x147D]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE KWOO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x147D, -- ᑽ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE KWOO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x147D,
},
[0x147E]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS KWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x147E, -- ᑾ
+ category="lo",
+ description="CANADIAN SYLLABICS KWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x147E,
},
[0x147F]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE KWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x147F, -- ᑿ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE KWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x147F,
},
[0x1480]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS KWAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1480, -- ᒀ
+ category="lo",
+ description="CANADIAN SYLLABICS KWAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1480,
},
[0x1481]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE KWAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1481, -- ᒁ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE KWAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1481,
},
[0x1482]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS NASKAPI KWAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1482, -- ᒂ
+ category="lo",
+ description="CANADIAN SYLLABICS NASKAPI KWAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1482,
},
[0x1483]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS K",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1483, -- ᒃ
+ category="lo",
+ description="CANADIAN SYLLABICS K",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1483,
},
[0x1484]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS KW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1484, -- ᒄ
+ category="lo",
+ description="CANADIAN SYLLABICS KW",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1484,
},
[0x1485]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS SOUTH-SLAVEY KEH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1485, -- ᒅ
+ category="lo",
+ description="CANADIAN SYLLABICS SOUTH-SLAVEY KEH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1485,
},
[0x1486]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS SOUTH-SLAVEY KIH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1486, -- ᒆ
+ category="lo",
+ description="CANADIAN SYLLABICS SOUTH-SLAVEY KIH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1486,
},
[0x1487]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS SOUTH-SLAVEY KOH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1487, -- ᒇ
+ category="lo",
+ description="CANADIAN SYLLABICS SOUTH-SLAVEY KOH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1487,
},
[0x1488]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS SOUTH-SLAVEY KAH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1488, -- ᒈ
+ category="lo",
+ description="CANADIAN SYLLABICS SOUTH-SLAVEY KAH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1488,
},
[0x1489]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1489, -- ᒉ
+ category="lo",
+ description="CANADIAN SYLLABICS CE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1489,
},
[0x148A]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CAAI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x148A, -- ᒊ
+ category="lo",
+ description="CANADIAN SYLLABICS CAAI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x148A,
},
[0x148B]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x148B, -- ᒋ
+ category="lo",
+ description="CANADIAN SYLLABICS CI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x148B,
},
[0x148C]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CII",
- ["linebreak"]="al",
- ["unicodeslot"]=0x148C, -- ᒌ
+ category="lo",
+ description="CANADIAN SYLLABICS CII",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x148C,
},
[0x148D]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x148D, -- ᒍ
+ category="lo",
+ description="CANADIAN SYLLABICS CO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x148D,
},
[0x148E]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS COO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x148E, -- ᒎ
+ category="lo",
+ description="CANADIAN SYLLABICS COO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x148E,
},
[0x148F]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS Y-CREE COO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x148F, -- ᒏ
+ category="lo",
+ description="CANADIAN SYLLABICS Y-CREE COO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x148F,
},
[0x1490]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1490, -- ᒐ
+ category="lo",
+ description="CANADIAN SYLLABICS CA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1490,
},
[0x1491]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1491, -- ᒑ
+ category="lo",
+ description="CANADIAN SYLLABICS CAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1491,
},
[0x1492]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CWE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1492, -- ᒒ
+ category="lo",
+ description="CANADIAN SYLLABICS CWE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1492,
},
[0x1493]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE CWE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1493, -- ᒓ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE CWE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1493,
},
[0x1494]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CWI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1494, -- ᒔ
+ category="lo",
+ description="CANADIAN SYLLABICS CWI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1494,
},
[0x1495]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE CWI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1495, -- ᒕ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE CWI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1495,
},
[0x1496]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CWII",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1496, -- ᒖ
+ category="lo",
+ description="CANADIAN SYLLABICS CWII",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1496,
},
[0x1497]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE CWII",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1497, -- ᒗ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE CWII",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1497,
},
[0x1498]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CWO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1498, -- ᒘ
+ category="lo",
+ description="CANADIAN SYLLABICS CWO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1498,
},
[0x1499]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE CWO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1499, -- ᒙ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE CWO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1499,
},
[0x149A]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CWOO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x149A, -- ᒚ
+ category="lo",
+ description="CANADIAN SYLLABICS CWOO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x149A,
},
[0x149B]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE CWOO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x149B, -- ᒛ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE CWOO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x149B,
},
[0x149C]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x149C, -- ᒜ
+ category="lo",
+ description="CANADIAN SYLLABICS CWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x149C,
},
[0x149D]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE CWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x149D, -- ᒝ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE CWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x149D,
},
[0x149E]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CWAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x149E, -- ᒞ
+ category="lo",
+ description="CANADIAN SYLLABICS CWAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x149E,
},
[0x149F]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE CWAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x149F, -- ᒟ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE CWAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x149F,
},
[0x14A0]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS NASKAPI CWAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14A0, -- ᒠ
+ category="lo",
+ description="CANADIAN SYLLABICS NASKAPI CWAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14A0,
},
[0x14A1]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS C",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14A1, -- ᒡ
+ category="lo",
+ description="CANADIAN SYLLABICS C",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14A1,
},
[0x14A2]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS SAYISI TH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14A2, -- ᒢ
+ category="lo",
+ description="CANADIAN SYLLABICS SAYISI TH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14A2,
},
[0x14A3]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS ME",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14A3, -- ᒣ
+ category="lo",
+ description="CANADIAN SYLLABICS ME",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14A3,
},
[0x14A4]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS MAAI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14A4, -- ᒤ
+ category="lo",
+ description="CANADIAN SYLLABICS MAAI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14A4,
},
[0x14A5]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS MI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14A5, -- ᒥ
+ category="lo",
+ description="CANADIAN SYLLABICS MI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14A5,
},
[0x14A6]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS MII",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14A6, -- ᒦ
+ category="lo",
+ description="CANADIAN SYLLABICS MII",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14A6,
},
[0x14A7]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS MO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14A7, -- ᒧ
+ category="lo",
+ description="CANADIAN SYLLABICS MO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14A7,
},
[0x14A8]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS MOO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14A8, -- ᒨ
+ category="lo",
+ description="CANADIAN SYLLABICS MOO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14A8,
},
[0x14A9]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS Y-CREE MOO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14A9, -- ᒩ
+ category="lo",
+ description="CANADIAN SYLLABICS Y-CREE MOO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14A9,
},
[0x14AA]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS MA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14AA, -- ᒪ
+ category="lo",
+ description="CANADIAN SYLLABICS MA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14AA,
},
[0x14AB]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS MAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14AB, -- ᒫ
+ category="lo",
+ description="CANADIAN SYLLABICS MAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14AB,
},
[0x14AC]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS MWE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14AC, -- ᒬ
+ category="lo",
+ description="CANADIAN SYLLABICS MWE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14AC,
},
[0x14AD]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE MWE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14AD, -- ᒭ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE MWE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14AD,
},
[0x14AE]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS MWI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14AE, -- ᒮ
+ category="lo",
+ description="CANADIAN SYLLABICS MWI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14AE,
},
[0x14AF]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE MWI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14AF, -- ᒯ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE MWI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14AF,
},
[0x14B0]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS MWII",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14B0, -- ᒰ
+ category="lo",
+ description="CANADIAN SYLLABICS MWII",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14B0,
},
[0x14B1]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE MWII",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14B1, -- ᒱ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE MWII",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14B1,
},
[0x14B2]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS MWO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14B2, -- ᒲ
+ category="lo",
+ description="CANADIAN SYLLABICS MWO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14B2,
},
[0x14B3]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE MWO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14B3, -- ᒳ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE MWO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14B3,
},
[0x14B4]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS MWOO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14B4, -- ᒴ
+ category="lo",
+ description="CANADIAN SYLLABICS MWOO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14B4,
},
[0x14B5]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE MWOO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14B5, -- ᒵ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE MWOO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14B5,
},
[0x14B6]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS MWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14B6, -- ᒶ
+ category="lo",
+ description="CANADIAN SYLLABICS MWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14B6,
},
[0x14B7]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE MWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14B7, -- ᒷ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE MWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14B7,
},
[0x14B8]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS MWAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14B8, -- ᒸ
+ category="lo",
+ description="CANADIAN SYLLABICS MWAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14B8,
},
[0x14B9]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE MWAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14B9, -- ᒹ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE MWAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14B9,
},
[0x14BA]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS NASKAPI MWAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14BA, -- ᒺ
+ category="lo",
+ description="CANADIAN SYLLABICS NASKAPI MWAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14BA,
},
[0x14BB]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS M",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14BB, -- ᒻ
+ category="lo",
+ description="CANADIAN SYLLABICS M",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14BB,
},
[0x14BC]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE M",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14BC, -- ᒼ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE M",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14BC,
},
[0x14BD]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS MH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14BD, -- ᒽ
+ category="lo",
+ description="CANADIAN SYLLABICS MH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14BD,
},
[0x14BE]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS ATHAPASCAN M",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14BE, -- ᒾ
+ category="lo",
+ description="CANADIAN SYLLABICS ATHAPASCAN M",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14BE,
},
[0x14BF]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS SAYISI M",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14BF, -- ᒿ
+ category="lo",
+ description="CANADIAN SYLLABICS SAYISI M",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14BF,
},
[0x14C0]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS NE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14C0, -- ᓀ
+ category="lo",
+ description="CANADIAN SYLLABICS NE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14C0,
},
[0x14C1]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS NAAI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14C1, -- ᓁ
+ category="lo",
+ description="CANADIAN SYLLABICS NAAI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14C1,
},
[0x14C2]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS NI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14C2, -- ᓂ
+ category="lo",
+ description="CANADIAN SYLLABICS NI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14C2,
},
[0x14C3]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS NII",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14C3, -- ᓃ
+ category="lo",
+ description="CANADIAN SYLLABICS NII",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14C3,
},
[0x14C4]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS NO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14C4, -- ᓄ
+ category="lo",
+ description="CANADIAN SYLLABICS NO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14C4,
},
[0x14C5]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS NOO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14C5, -- ᓅ
+ category="lo",
+ description="CANADIAN SYLLABICS NOO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14C5,
},
[0x14C6]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS Y-CREE NOO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14C6, -- ᓆ
+ category="lo",
+ description="CANADIAN SYLLABICS Y-CREE NOO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14C6,
},
[0x14C7]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS NA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14C7, -- ᓇ
+ category="lo",
+ description="CANADIAN SYLLABICS NA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14C7,
},
[0x14C8]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS NAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14C8, -- ᓈ
+ category="lo",
+ description="CANADIAN SYLLABICS NAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14C8,
},
[0x14C9]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS NWE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14C9, -- ᓉ
+ category="lo",
+ description="CANADIAN SYLLABICS NWE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14C9,
},
[0x14CA]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE NWE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14CA, -- ᓊ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE NWE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14CA,
},
[0x14CB]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS NWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14CB, -- ᓋ
+ category="lo",
+ description="CANADIAN SYLLABICS NWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14CB,
},
[0x14CC]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE NWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14CC, -- ᓌ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE NWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14CC,
},
[0x14CD]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS NWAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14CD, -- ᓍ
+ category="lo",
+ description="CANADIAN SYLLABICS NWAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14CD,
},
[0x14CE]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE NWAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14CE, -- ᓎ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE NWAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14CE,
},
[0x14CF]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS NASKAPI NWAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14CF, -- ᓏ
+ category="lo",
+ description="CANADIAN SYLLABICS NASKAPI NWAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14CF,
},
[0x14D0]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS N",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14D0, -- ᓐ
+ category="lo",
+ description="CANADIAN SYLLABICS N",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14D0,
},
[0x14D1]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER NG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14D1, -- ᓑ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER NG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14D1,
},
[0x14D2]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS NH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14D2, -- ᓒ
+ category="lo",
+ description="CANADIAN SYLLABICS NH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14D2,
},
[0x14D3]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS LE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14D3, -- ᓓ
+ category="lo",
+ description="CANADIAN SYLLABICS LE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14D3,
},
[0x14D4]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS LAAI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14D4, -- ᓔ
+ category="lo",
+ description="CANADIAN SYLLABICS LAAI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14D4,
},
[0x14D5]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS LI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14D5, -- ᓕ
+ category="lo",
+ description="CANADIAN SYLLABICS LI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14D5,
},
[0x14D6]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS LII",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14D6, -- ᓖ
+ category="lo",
+ description="CANADIAN SYLLABICS LII",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14D6,
},
[0x14D7]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS LO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14D7, -- ᓗ
+ category="lo",
+ description="CANADIAN SYLLABICS LO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14D7,
},
[0x14D8]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS LOO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14D8, -- ᓘ
+ category="lo",
+ description="CANADIAN SYLLABICS LOO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14D8,
},
[0x14D9]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS Y-CREE LOO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14D9, -- ᓙ
+ category="lo",
+ description="CANADIAN SYLLABICS Y-CREE LOO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14D9,
},
[0x14DA]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS LA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14DA, -- ᓚ
+ category="lo",
+ description="CANADIAN SYLLABICS LA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14DA,
},
[0x14DB]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS LAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14DB, -- ᓛ
+ category="lo",
+ description="CANADIAN SYLLABICS LAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14DB,
},
[0x14DC]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS LWE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14DC, -- ᓜ
+ category="lo",
+ description="CANADIAN SYLLABICS LWE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14DC,
},
[0x14DD]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE LWE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14DD, -- ᓝ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE LWE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14DD,
},
[0x14DE]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS LWI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14DE, -- ᓞ
+ category="lo",
+ description="CANADIAN SYLLABICS LWI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14DE,
},
[0x14DF]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE LWI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14DF, -- ᓟ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE LWI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14DF,
},
[0x14E0]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS LWII",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14E0, -- ᓠ
+ category="lo",
+ description="CANADIAN SYLLABICS LWII",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14E0,
},
[0x14E1]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE LWII",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14E1, -- ᓡ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE LWII",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14E1,
},
[0x14E2]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS LWO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14E2, -- ᓢ
+ category="lo",
+ description="CANADIAN SYLLABICS LWO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14E2,
},
[0x14E3]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE LWO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14E3, -- ᓣ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE LWO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14E3,
},
[0x14E4]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS LWOO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14E4, -- ᓤ
+ category="lo",
+ description="CANADIAN SYLLABICS LWOO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14E4,
},
[0x14E5]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE LWOO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14E5, -- ᓥ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE LWOO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14E5,
},
[0x14E6]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS LWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14E6, -- ᓦ
+ category="lo",
+ description="CANADIAN SYLLABICS LWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14E6,
},
[0x14E7]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE LWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14E7, -- ᓧ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE LWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14E7,
},
[0x14E8]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS LWAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14E8, -- ᓨ
+ category="lo",
+ description="CANADIAN SYLLABICS LWAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14E8,
},
[0x14E9]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE LWAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14E9, -- ᓩ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE LWAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14E9,
},
[0x14EA]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS L",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14EA, -- ᓪ
+ category="lo",
+ description="CANADIAN SYLLABICS L",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14EA,
},
[0x14EB]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE L",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14EB, -- ᓫ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE L",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14EB,
},
[0x14EC]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS MEDIAL L",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14EC, -- ᓬ
+ category="lo",
+ description="CANADIAN SYLLABICS MEDIAL L",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14EC,
},
[0x14ED]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS SE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14ED, -- ᓭ
+ category="lo",
+ description="CANADIAN SYLLABICS SE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14ED,
},
[0x14EE]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS SAAI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14EE, -- ᓮ
+ category="lo",
+ description="CANADIAN SYLLABICS SAAI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14EE,
},
[0x14EF]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS SI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14EF, -- ᓯ
+ category="lo",
+ description="CANADIAN SYLLABICS SI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14EF,
},
[0x14F0]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS SII",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14F0, -- ᓰ
+ category="lo",
+ description="CANADIAN SYLLABICS SII",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14F0,
},
[0x14F1]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS SO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14F1, -- ᓱ
+ category="lo",
+ description="CANADIAN SYLLABICS SO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14F1,
},
[0x14F2]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS SOO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14F2, -- ᓲ
+ category="lo",
+ description="CANADIAN SYLLABICS SOO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14F2,
},
[0x14F3]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS Y-CREE SOO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14F3, -- ᓳ
+ category="lo",
+ description="CANADIAN SYLLABICS Y-CREE SOO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14F3,
},
[0x14F4]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS SA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14F4, -- ᓴ
+ category="lo",
+ description="CANADIAN SYLLABICS SA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14F4,
},
[0x14F5]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS SAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14F5, -- ᓵ
+ category="lo",
+ description="CANADIAN SYLLABICS SAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14F5,
},
[0x14F6]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS SWE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14F6, -- ᓶ
+ category="lo",
+ description="CANADIAN SYLLABICS SWE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14F6,
},
[0x14F7]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE SWE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14F7, -- ᓷ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE SWE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14F7,
},
[0x14F8]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS SWI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14F8, -- ᓸ
+ category="lo",
+ description="CANADIAN SYLLABICS SWI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14F8,
},
[0x14F9]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE SWI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14F9, -- ᓹ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE SWI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14F9,
},
[0x14FA]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS SWII",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14FA, -- ᓺ
+ category="lo",
+ description="CANADIAN SYLLABICS SWII",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14FA,
},
[0x14FB]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE SWII",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14FB, -- ᓻ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE SWII",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14FB,
},
[0x14FC]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS SWO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14FC, -- ᓼ
+ category="lo",
+ description="CANADIAN SYLLABICS SWO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14FC,
},
[0x14FD]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE SWO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14FD, -- ᓽ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE SWO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14FD,
},
[0x14FE]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS SWOO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14FE, -- ᓾ
+ category="lo",
+ description="CANADIAN SYLLABICS SWOO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14FE,
},
[0x14FF]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE SWOO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x14FF, -- ᓿ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE SWOO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x14FF,
},
[0x1500]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS SWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1500, -- ᔀ
+ category="lo",
+ description="CANADIAN SYLLABICS SWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1500,
},
[0x1501]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE SWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1501, -- ᔁ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE SWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1501,
},
[0x1502]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS SWAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1502, -- ᔂ
+ category="lo",
+ description="CANADIAN SYLLABICS SWAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1502,
},
[0x1503]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE SWAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1503, -- ᔃ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE SWAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1503,
},
[0x1504]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS NASKAPI SWAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1504, -- ᔄ
+ category="lo",
+ description="CANADIAN SYLLABICS NASKAPI SWAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1504,
},
[0x1505]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS S",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1505, -- ᔅ
+ category="lo",
+ description="CANADIAN SYLLABICS S",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1505,
},
[0x1506]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS ATHAPASCAN S",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1506, -- ᔆ
+ category="lo",
+ description="CANADIAN SYLLABICS ATHAPASCAN S",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1506,
},
[0x1507]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS SW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1507, -- ᔇ
+ category="lo",
+ description="CANADIAN SYLLABICS SW",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1507,
},
[0x1508]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS BLACKFOOT S",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1508, -- ᔈ
+ category="lo",
+ description="CANADIAN SYLLABICS BLACKFOOT S",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1508,
},
[0x1509]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS MOOSE-CREE SK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1509, -- ᔉ
+ category="lo",
+ description="CANADIAN SYLLABICS MOOSE-CREE SK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1509,
},
[0x150A]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS NASKAPI SKW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x150A, -- ᔊ
+ category="lo",
+ description="CANADIAN SYLLABICS NASKAPI SKW",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x150A,
},
[0x150B]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS NASKAPI S-W",
- ["linebreak"]="al",
- ["unicodeslot"]=0x150B, -- ᔋ
+ category="lo",
+ description="CANADIAN SYLLABICS NASKAPI S-W",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x150B,
},
[0x150C]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS NASKAPI SPWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x150C, -- ᔌ
+ category="lo",
+ description="CANADIAN SYLLABICS NASKAPI SPWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x150C,
},
[0x150D]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS NASKAPI STWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x150D, -- ᔍ
+ category="lo",
+ description="CANADIAN SYLLABICS NASKAPI STWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x150D,
},
[0x150E]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS NASKAPI SKWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x150E, -- ᔎ
+ category="lo",
+ description="CANADIAN SYLLABICS NASKAPI SKWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x150E,
},
[0x150F]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS NASKAPI SCWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x150F, -- ᔏ
+ category="lo",
+ description="CANADIAN SYLLABICS NASKAPI SCWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x150F,
},
[0x1510]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS SHE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1510, -- ᔐ
+ category="lo",
+ description="CANADIAN SYLLABICS SHE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1510,
},
[0x1511]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS SHI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1511, -- ᔑ
+ category="lo",
+ description="CANADIAN SYLLABICS SHI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1511,
},
[0x1512]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS SHII",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1512, -- ᔒ
+ category="lo",
+ description="CANADIAN SYLLABICS SHII",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1512,
},
[0x1513]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS SHO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1513, -- ᔓ
+ category="lo",
+ description="CANADIAN SYLLABICS SHO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1513,
},
[0x1514]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS SHOO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1514, -- ᔔ
+ category="lo",
+ description="CANADIAN SYLLABICS SHOO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1514,
},
[0x1515]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS SHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1515, -- ᔕ
+ category="lo",
+ description="CANADIAN SYLLABICS SHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1515,
},
[0x1516]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS SHAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1516, -- ᔖ
+ category="lo",
+ description="CANADIAN SYLLABICS SHAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1516,
},
[0x1517]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS SHWE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1517, -- ᔗ
+ category="lo",
+ description="CANADIAN SYLLABICS SHWE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1517,
},
[0x1518]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE SHWE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1518, -- ᔘ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE SHWE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1518,
},
[0x1519]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS SHWI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1519, -- ᔙ
+ category="lo",
+ description="CANADIAN SYLLABICS SHWI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1519,
},
[0x151A]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE SHWI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x151A, -- ᔚ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE SHWI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x151A,
},
[0x151B]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS SHWII",
- ["linebreak"]="al",
- ["unicodeslot"]=0x151B, -- ᔛ
+ category="lo",
+ description="CANADIAN SYLLABICS SHWII",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x151B,
},
[0x151C]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE SHWII",
- ["linebreak"]="al",
- ["unicodeslot"]=0x151C, -- ᔜ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE SHWII",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x151C,
},
[0x151D]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS SHWO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x151D, -- ᔝ
+ category="lo",
+ description="CANADIAN SYLLABICS SHWO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x151D,
},
[0x151E]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE SHWO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x151E, -- ᔞ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE SHWO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x151E,
},
[0x151F]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS SHWOO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x151F, -- ᔟ
+ category="lo",
+ description="CANADIAN SYLLABICS SHWOO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x151F,
},
[0x1520]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE SHWOO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1520, -- ᔠ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE SHWOO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1520,
},
[0x1521]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS SHWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1521, -- ᔡ
+ category="lo",
+ description="CANADIAN SYLLABICS SHWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1521,
},
[0x1522]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE SHWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1522, -- ᔢ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE SHWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1522,
},
[0x1523]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS SHWAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1523, -- ᔣ
+ category="lo",
+ description="CANADIAN SYLLABICS SHWAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1523,
},
[0x1524]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE SHWAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1524, -- ᔤ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE SHWAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1524,
},
[0x1525]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS SH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1525, -- ᔥ
+ category="lo",
+ description="CANADIAN SYLLABICS SH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1525,
},
[0x1526]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS YE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1526, -- ᔦ
+ category="lo",
+ description="CANADIAN SYLLABICS YE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1526,
},
[0x1527]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS YAAI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1527, -- ᔧ
+ category="lo",
+ description="CANADIAN SYLLABICS YAAI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1527,
},
[0x1528]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS YI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1528, -- ᔨ
+ category="lo",
+ description="CANADIAN SYLLABICS YI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1528,
},
[0x1529]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS YII",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1529, -- ᔩ
+ category="lo",
+ description="CANADIAN SYLLABICS YII",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1529,
},
[0x152A]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS YO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x152A, -- ᔪ
+ category="lo",
+ description="CANADIAN SYLLABICS YO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x152A,
},
[0x152B]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS YOO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x152B, -- ᔫ
+ category="lo",
+ description="CANADIAN SYLLABICS YOO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x152B,
},
[0x152C]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS Y-CREE YOO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x152C, -- ᔬ
+ category="lo",
+ description="CANADIAN SYLLABICS Y-CREE YOO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x152C,
},
[0x152D]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS YA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x152D, -- ᔭ
+ category="lo",
+ description="CANADIAN SYLLABICS YA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x152D,
},
[0x152E]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS YAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x152E, -- ᔮ
+ category="lo",
+ description="CANADIAN SYLLABICS YAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x152E,
},
[0x152F]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS YWE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x152F, -- ᔯ
+ category="lo",
+ description="CANADIAN SYLLABICS YWE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x152F,
},
[0x1530]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE YWE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1530, -- ᔰ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE YWE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1530,
},
[0x1531]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS YWI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1531, -- ᔱ
+ category="lo",
+ description="CANADIAN SYLLABICS YWI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1531,
},
[0x1532]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE YWI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1532, -- ᔲ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE YWI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1532,
},
[0x1533]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS YWII",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1533, -- ᔳ
+ category="lo",
+ description="CANADIAN SYLLABICS YWII",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1533,
},
[0x1534]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE YWII",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1534, -- ᔴ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE YWII",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1534,
},
[0x1535]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS YWO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1535, -- ᔵ
+ category="lo",
+ description="CANADIAN SYLLABICS YWO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1535,
},
[0x1536]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE YWO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1536, -- ᔶ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE YWO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1536,
},
[0x1537]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS YWOO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1537, -- ᔷ
+ category="lo",
+ description="CANADIAN SYLLABICS YWOO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1537,
},
[0x1538]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE YWOO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1538, -- ᔸ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE YWOO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1538,
},
[0x1539]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS YWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1539, -- ᔹ
+ category="lo",
+ description="CANADIAN SYLLABICS YWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1539,
},
[0x153A]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE YWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x153A, -- ᔺ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE YWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x153A,
},
[0x153B]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS YWAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x153B, -- ᔻ
+ category="lo",
+ description="CANADIAN SYLLABICS YWAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x153B,
},
[0x153C]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE YWAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x153C, -- ᔼ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE YWAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x153C,
},
[0x153D]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS NASKAPI YWAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x153D, -- ᔽ
+ category="lo",
+ description="CANADIAN SYLLABICS NASKAPI YWAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x153D,
},
[0x153E]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS Y",
- ["linebreak"]="al",
- ["unicodeslot"]=0x153E, -- ᔾ
+ category="lo",
+ description="CANADIAN SYLLABICS Y",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x153E,
},
[0x153F]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS BIBLE-CREE Y",
- ["linebreak"]="al",
- ["unicodeslot"]=0x153F, -- ᔿ
+ category="lo",
+ description="CANADIAN SYLLABICS BIBLE-CREE Y",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x153F,
},
[0x1540]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE Y",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1540, -- ᕀ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE Y",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1540,
},
[0x1541]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS SAYISI YI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1541, -- ᕁ
+ category="lo",
+ description="CANADIAN SYLLABICS SAYISI YI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1541,
},
[0x1542]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS RE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1542, -- ᕂ
+ category="lo",
+ description="CANADIAN SYLLABICS RE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1542,
},
[0x1543]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS R-CREE RE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1543, -- ᕃ
+ category="lo",
+ description="CANADIAN SYLLABICS R-CREE RE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1543,
},
[0x1544]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE LE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1544, -- ᕄ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE LE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1544,
},
[0x1545]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS RAAI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1545, -- ᕅ
+ category="lo",
+ description="CANADIAN SYLLABICS RAAI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1545,
},
[0x1546]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS RI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1546, -- ᕆ
+ category="lo",
+ description="CANADIAN SYLLABICS RI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1546,
},
[0x1547]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS RII",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1547, -- ᕇ
+ category="lo",
+ description="CANADIAN SYLLABICS RII",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1547,
},
[0x1548]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS RO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1548, -- ᕈ
+ category="lo",
+ description="CANADIAN SYLLABICS RO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1548,
},
[0x1549]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS ROO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1549, -- ᕉ
+ category="lo",
+ description="CANADIAN SYLLABICS ROO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1549,
},
[0x154A]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE LO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x154A, -- ᕊ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE LO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x154A,
},
[0x154B]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS RA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x154B, -- ᕋ
+ category="lo",
+ description="CANADIAN SYLLABICS RA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x154B,
},
[0x154C]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS RAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x154C, -- ᕌ
+ category="lo",
+ description="CANADIAN SYLLABICS RAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x154C,
},
[0x154D]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE LA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x154D, -- ᕍ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE LA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x154D,
},
[0x154E]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS RWAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x154E, -- ᕎ
+ category="lo",
+ description="CANADIAN SYLLABICS RWAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x154E,
},
[0x154F]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE RWAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x154F, -- ᕏ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE RWAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x154F,
},
[0x1550]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS R",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1550, -- ᕐ
+ category="lo",
+ description="CANADIAN SYLLABICS R",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1550,
},
[0x1551]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE R",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1551, -- ᕑ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE R",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1551,
},
[0x1552]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS MEDIAL R",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1552, -- ᕒ
+ category="lo",
+ description="CANADIAN SYLLABICS MEDIAL R",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1552,
},
[0x1553]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS FE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1553, -- ᕓ
+ category="lo",
+ description="CANADIAN SYLLABICS FE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1553,
},
[0x1554]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS FAAI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1554, -- ᕔ
+ category="lo",
+ description="CANADIAN SYLLABICS FAAI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1554,
},
[0x1555]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS FI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1555, -- ᕕ
+ category="lo",
+ description="CANADIAN SYLLABICS FI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1555,
},
[0x1556]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS FII",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1556, -- ᕖ
+ category="lo",
+ description="CANADIAN SYLLABICS FII",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1556,
},
[0x1557]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS FO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1557, -- ᕗ
+ category="lo",
+ description="CANADIAN SYLLABICS FO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1557,
},
[0x1558]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS FOO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1558, -- ᕘ
+ category="lo",
+ description="CANADIAN SYLLABICS FOO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1558,
},
[0x1559]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS FA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1559, -- ᕙ
+ category="lo",
+ description="CANADIAN SYLLABICS FA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1559,
},
[0x155A]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS FAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x155A, -- ᕚ
+ category="lo",
+ description="CANADIAN SYLLABICS FAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x155A,
},
[0x155B]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS FWAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x155B, -- ᕛ
+ category="lo",
+ description="CANADIAN SYLLABICS FWAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x155B,
},
[0x155C]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE FWAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x155C, -- ᕜ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE FWAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x155C,
},
[0x155D]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS F",
- ["linebreak"]="al",
- ["unicodeslot"]=0x155D, -- ᕝ
+ category="lo",
+ description="CANADIAN SYLLABICS F",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x155D,
},
[0x155E]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS THE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x155E, -- ᕞ
+ category="lo",
+ description="CANADIAN SYLLABICS THE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x155E,
},
[0x155F]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS N-CREE THE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x155F, -- ᕟ
+ category="lo",
+ description="CANADIAN SYLLABICS N-CREE THE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x155F,
},
[0x1560]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS THI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1560, -- ᕠ
+ category="lo",
+ description="CANADIAN SYLLABICS THI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1560,
},
[0x1561]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS N-CREE THI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1561, -- ᕡ
+ category="lo",
+ description="CANADIAN SYLLABICS N-CREE THI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1561,
},
[0x1562]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS THII",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1562, -- ᕢ
+ category="lo",
+ description="CANADIAN SYLLABICS THII",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1562,
},
[0x1563]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS N-CREE THII",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1563, -- ᕣ
+ category="lo",
+ description="CANADIAN SYLLABICS N-CREE THII",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1563,
},
[0x1564]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS THO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1564, -- ᕤ
+ category="lo",
+ description="CANADIAN SYLLABICS THO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1564,
},
[0x1565]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS THOO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1565, -- ᕥ
+ category="lo",
+ description="CANADIAN SYLLABICS THOO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1565,
},
[0x1566]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS THA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1566, -- ᕦ
+ category="lo",
+ description="CANADIAN SYLLABICS THA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1566,
},
[0x1567]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS THAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1567, -- ᕧ
+ category="lo",
+ description="CANADIAN SYLLABICS THAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1567,
},
[0x1568]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS THWAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1568, -- ᕨ
+ category="lo",
+ description="CANADIAN SYLLABICS THWAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1568,
},
[0x1569]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE THWAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1569, -- ᕩ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE THWAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1569,
},
[0x156A]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS TH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x156A, -- ᕪ
+ category="lo",
+ description="CANADIAN SYLLABICS TH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x156A,
},
[0x156B]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS TTHE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x156B, -- ᕫ
+ category="lo",
+ description="CANADIAN SYLLABICS TTHE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x156B,
},
[0x156C]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS TTHI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x156C, -- ᕬ
+ category="lo",
+ description="CANADIAN SYLLABICS TTHI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x156C,
},
[0x156D]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS TTHO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x156D, -- ᕭ
+ category="lo",
+ description="CANADIAN SYLLABICS TTHO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x156D,
},
[0x156E]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS TTHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x156E, -- ᕮ
+ category="lo",
+ description="CANADIAN SYLLABICS TTHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x156E,
},
[0x156F]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS TTH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x156F, -- ᕯ
+ category="lo",
+ description="CANADIAN SYLLABICS TTH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x156F,
},
[0x1570]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS TYE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1570, -- ᕰ
+ category="lo",
+ description="CANADIAN SYLLABICS TYE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1570,
},
[0x1571]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS TYI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1571, -- ᕱ
+ category="lo",
+ description="CANADIAN SYLLABICS TYI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1571,
},
[0x1572]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS TYO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1572, -- ᕲ
+ category="lo",
+ description="CANADIAN SYLLABICS TYO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1572,
},
[0x1573]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS TYA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1573, -- ᕳ
+ category="lo",
+ description="CANADIAN SYLLABICS TYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1573,
},
[0x1574]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS NUNAVIK HE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1574, -- ᕴ
+ category="lo",
+ description="CANADIAN SYLLABICS NUNAVIK HE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1574,
},
[0x1575]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS NUNAVIK HI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1575, -- ᕵ
+ category="lo",
+ description="CANADIAN SYLLABICS NUNAVIK HI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1575,
},
[0x1576]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS NUNAVIK HII",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1576, -- ᕶ
+ category="lo",
+ description="CANADIAN SYLLABICS NUNAVIK HII",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1576,
},
[0x1577]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS NUNAVIK HO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1577, -- ᕷ
+ category="lo",
+ description="CANADIAN SYLLABICS NUNAVIK HO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1577,
},
[0x1578]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS NUNAVIK HOO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1578, -- ᕸ
+ category="lo",
+ description="CANADIAN SYLLABICS NUNAVIK HOO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1578,
},
[0x1579]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS NUNAVIK HA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1579, -- ᕹ
+ category="lo",
+ description="CANADIAN SYLLABICS NUNAVIK HA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1579,
},
[0x157A]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS NUNAVIK HAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x157A, -- ᕺ
+ category="lo",
+ description="CANADIAN SYLLABICS NUNAVIK HAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x157A,
},
[0x157B]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS NUNAVIK H",
- ["linebreak"]="al",
- ["unicodeslot"]=0x157B, -- ᕻ
+ category="lo",
+ description="CANADIAN SYLLABICS NUNAVIK H",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x157B,
},
[0x157C]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS NUNAVUT H",
- ["linebreak"]="al",
- ["unicodeslot"]=0x157C, -- ᕼ
+ category="lo",
+ description="CANADIAN SYLLABICS NUNAVUT H",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x157C,
},
[0x157D]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS HK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x157D, -- ᕽ
+ category="lo",
+ description="CANADIAN SYLLABICS HK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x157D,
},
[0x157E]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS QAAI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x157E, -- ᕾ
+ category="lo",
+ description="CANADIAN SYLLABICS QAAI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x157E,
},
[0x157F]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS QI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x157F, -- ᕿ
+ category="lo",
+ description="CANADIAN SYLLABICS QI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x157F,
},
[0x1580]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS QII",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1580, -- ᖀ
+ category="lo",
+ description="CANADIAN SYLLABICS QII",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1580,
},
[0x1581]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS QO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1581, -- ᖁ
+ category="lo",
+ description="CANADIAN SYLLABICS QO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1581,
},
[0x1582]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS QOO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1582, -- ᖂ
+ category="lo",
+ description="CANADIAN SYLLABICS QOO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1582,
},
[0x1583]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS QA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1583, -- ᖃ
+ category="lo",
+ description="CANADIAN SYLLABICS QA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1583,
},
[0x1584]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS QAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1584, -- ᖄ
+ category="lo",
+ description="CANADIAN SYLLABICS QAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1584,
},
[0x1585]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS Q",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1585, -- ᖅ
+ category="lo",
+ description="CANADIAN SYLLABICS Q",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1585,
},
[0x1586]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS TLHE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1586, -- ᖆ
+ category="lo",
+ description="CANADIAN SYLLABICS TLHE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1586,
},
[0x1587]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS TLHI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1587, -- ᖇ
+ category="lo",
+ description="CANADIAN SYLLABICS TLHI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1587,
},
[0x1588]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS TLHO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1588, -- ᖈ
+ category="lo",
+ description="CANADIAN SYLLABICS TLHO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1588,
},
[0x1589]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS TLHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1589, -- ᖉ
+ category="lo",
+ description="CANADIAN SYLLABICS TLHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1589,
},
[0x158A]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE RE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x158A, -- ᖊ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE RE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x158A,
},
[0x158B]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE RI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x158B, -- ᖋ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE RI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x158B,
},
[0x158C]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE RO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x158C, -- ᖌ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE RO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x158C,
},
[0x158D]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WEST-CREE RA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x158D, -- ᖍ
+ category="lo",
+ description="CANADIAN SYLLABICS WEST-CREE RA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x158D,
},
[0x158E]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS NGAAI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x158E, -- ᖎ
+ category="lo",
+ description="CANADIAN SYLLABICS NGAAI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x158E,
},
[0x158F]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS NGI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x158F, -- ᖏ
+ category="lo",
+ description="CANADIAN SYLLABICS NGI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x158F,
},
[0x1590]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS NGII",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1590, -- ᖐ
+ category="lo",
+ description="CANADIAN SYLLABICS NGII",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1590,
},
[0x1591]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS NGO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1591, -- ᖑ
+ category="lo",
+ description="CANADIAN SYLLABICS NGO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1591,
},
[0x1592]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS NGOO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1592, -- ᖒ
+ category="lo",
+ description="CANADIAN SYLLABICS NGOO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1592,
},
[0x1593]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS NGA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1593, -- ᖓ
+ category="lo",
+ description="CANADIAN SYLLABICS NGA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1593,
},
[0x1594]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS NGAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1594, -- ᖔ
+ category="lo",
+ description="CANADIAN SYLLABICS NGAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1594,
},
[0x1595]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS NG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1595, -- ᖕ
+ category="lo",
+ description="CANADIAN SYLLABICS NG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1595,
},
[0x1596]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS NNG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1596, -- ᖖ
+ category="lo",
+ description="CANADIAN SYLLABICS NNG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1596,
},
[0x1597]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS SAYISI SHE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1597, -- ᖗ
+ category="lo",
+ description="CANADIAN SYLLABICS SAYISI SHE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1597,
},
[0x1598]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS SAYISI SHI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1598, -- ᖘ
+ category="lo",
+ description="CANADIAN SYLLABICS SAYISI SHI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1598,
},
[0x1599]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS SAYISI SHO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1599, -- ᖙ
+ category="lo",
+ description="CANADIAN SYLLABICS SAYISI SHO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1599,
},
[0x159A]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS SAYISI SHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x159A, -- ᖚ
+ category="lo",
+ description="CANADIAN SYLLABICS SAYISI SHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x159A,
},
[0x159B]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WOODS-CREE THE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x159B, -- ᖛ
+ category="lo",
+ description="CANADIAN SYLLABICS WOODS-CREE THE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x159B,
},
[0x159C]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WOODS-CREE THI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x159C, -- ᖜ
+ category="lo",
+ description="CANADIAN SYLLABICS WOODS-CREE THI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x159C,
},
[0x159D]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WOODS-CREE THO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x159D, -- ᖝ
+ category="lo",
+ description="CANADIAN SYLLABICS WOODS-CREE THO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x159D,
},
[0x159E]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WOODS-CREE THA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x159E, -- ᖞ
+ category="lo",
+ description="CANADIAN SYLLABICS WOODS-CREE THA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x159E,
},
[0x159F]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS WOODS-CREE TH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x159F, -- ᖟ
+ category="lo",
+ description="CANADIAN SYLLABICS WOODS-CREE TH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x159F,
},
[0x15A0]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS LHI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15A0, -- ᖠ
+ category="lo",
+ description="CANADIAN SYLLABICS LHI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15A0,
},
[0x15A1]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS LHII",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15A1, -- ᖡ
+ category="lo",
+ description="CANADIAN SYLLABICS LHII",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15A1,
},
[0x15A2]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS LHO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15A2, -- ᖢ
+ category="lo",
+ description="CANADIAN SYLLABICS LHO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15A2,
},
[0x15A3]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS LHOO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15A3, -- ᖣ
+ category="lo",
+ description="CANADIAN SYLLABICS LHOO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15A3,
},
[0x15A4]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS LHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15A4, -- ᖤ
+ category="lo",
+ description="CANADIAN SYLLABICS LHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15A4,
},
[0x15A5]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS LHAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15A5, -- ᖥ
+ category="lo",
+ description="CANADIAN SYLLABICS LHAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15A5,
},
[0x15A6]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS LH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15A6, -- ᖦ
+ category="lo",
+ description="CANADIAN SYLLABICS LH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15A6,
},
[0x15A7]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS TH-CREE THE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15A7, -- ᖧ
+ category="lo",
+ description="CANADIAN SYLLABICS TH-CREE THE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15A7,
},
[0x15A8]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS TH-CREE THI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15A8, -- ᖨ
+ category="lo",
+ description="CANADIAN SYLLABICS TH-CREE THI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15A8,
},
[0x15A9]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS TH-CREE THII",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15A9, -- ᖩ
+ category="lo",
+ description="CANADIAN SYLLABICS TH-CREE THII",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15A9,
},
[0x15AA]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS TH-CREE THO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15AA, -- ᖪ
+ category="lo",
+ description="CANADIAN SYLLABICS TH-CREE THO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15AA,
},
[0x15AB]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS TH-CREE THOO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15AB, -- ᖫ
+ category="lo",
+ description="CANADIAN SYLLABICS TH-CREE THOO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15AB,
},
[0x15AC]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS TH-CREE THA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15AC, -- ᖬ
+ category="lo",
+ description="CANADIAN SYLLABICS TH-CREE THA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15AC,
},
[0x15AD]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS TH-CREE THAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15AD, -- ᖭ
+ category="lo",
+ description="CANADIAN SYLLABICS TH-CREE THAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15AD,
},
[0x15AE]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS TH-CREE TH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15AE, -- ᖮ
+ category="lo",
+ description="CANADIAN SYLLABICS TH-CREE TH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15AE,
},
[0x15AF]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS AIVILIK B",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15AF, -- ᖯ
+ category="lo",
+ description="CANADIAN SYLLABICS AIVILIK B",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15AF,
},
[0x15B0]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS BLACKFOOT E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15B0, -- ᖰ
+ category="lo",
+ description="CANADIAN SYLLABICS BLACKFOOT E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15B0,
},
[0x15B1]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS BLACKFOOT I",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15B1, -- ᖱ
+ category="lo",
+ description="CANADIAN SYLLABICS BLACKFOOT I",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15B1,
},
[0x15B2]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS BLACKFOOT O",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15B2, -- ᖲ
+ category="lo",
+ description="CANADIAN SYLLABICS BLACKFOOT O",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15B2,
},
[0x15B3]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS BLACKFOOT A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15B3, -- ᖳ
+ category="lo",
+ description="CANADIAN SYLLABICS BLACKFOOT A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15B3,
},
[0x15B4]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS BLACKFOOT WE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15B4, -- ᖴ
+ category="lo",
+ description="CANADIAN SYLLABICS BLACKFOOT WE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15B4,
},
[0x15B5]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS BLACKFOOT WI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15B5, -- ᖵ
+ category="lo",
+ description="CANADIAN SYLLABICS BLACKFOOT WI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15B5,
},
[0x15B6]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS BLACKFOOT WO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15B6, -- ᖶ
+ category="lo",
+ description="CANADIAN SYLLABICS BLACKFOOT WO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15B6,
},
[0x15B7]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS BLACKFOOT WA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15B7, -- ᖷ
+ category="lo",
+ description="CANADIAN SYLLABICS BLACKFOOT WA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15B7,
},
[0x15B8]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS BLACKFOOT NE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15B8, -- ᖸ
+ category="lo",
+ description="CANADIAN SYLLABICS BLACKFOOT NE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15B8,
},
[0x15B9]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS BLACKFOOT NI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15B9, -- ᖹ
+ category="lo",
+ description="CANADIAN SYLLABICS BLACKFOOT NI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15B9,
},
[0x15BA]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS BLACKFOOT NO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15BA, -- ᖺ
+ category="lo",
+ description="CANADIAN SYLLABICS BLACKFOOT NO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15BA,
},
[0x15BB]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS BLACKFOOT NA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15BB, -- ᖻ
+ category="lo",
+ description="CANADIAN SYLLABICS BLACKFOOT NA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15BB,
},
[0x15BC]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS BLACKFOOT KE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15BC, -- ᖼ
+ category="lo",
+ description="CANADIAN SYLLABICS BLACKFOOT KE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15BC,
},
[0x15BD]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS BLACKFOOT KI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15BD, -- ᖽ
+ category="lo",
+ description="CANADIAN SYLLABICS BLACKFOOT KI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15BD,
},
[0x15BE]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS BLACKFOOT KO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15BE, -- ᖾ
+ category="lo",
+ description="CANADIAN SYLLABICS BLACKFOOT KO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15BE,
},
[0x15BF]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS BLACKFOOT KA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15BF, -- ᖿ
+ category="lo",
+ description="CANADIAN SYLLABICS BLACKFOOT KA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15BF,
},
[0x15C0]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS SAYISI HE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15C0, -- ᗀ
+ category="lo",
+ description="CANADIAN SYLLABICS SAYISI HE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15C0,
},
[0x15C1]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS SAYISI HI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15C1, -- ᗁ
+ category="lo",
+ description="CANADIAN SYLLABICS SAYISI HI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15C1,
},
[0x15C2]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS SAYISI HO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15C2, -- ᗂ
+ category="lo",
+ description="CANADIAN SYLLABICS SAYISI HO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15C2,
},
[0x15C3]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS SAYISI HA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15C3, -- ᗃ
+ category="lo",
+ description="CANADIAN SYLLABICS SAYISI HA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15C3,
},
[0x15C4]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER GHU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15C4, -- ᗄ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER GHU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15C4,
},
[0x15C5]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER GHO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15C5, -- ᗅ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER GHO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15C5,
},
[0x15C6]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER GHE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15C6, -- ᗆ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER GHE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15C6,
},
[0x15C7]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER GHEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15C7, -- ᗇ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER GHEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15C7,
},
[0x15C8]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER GHI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15C8, -- ᗈ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER GHI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15C8,
},
[0x15C9]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER GHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15C9, -- ᗉ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER GHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15C9,
},
[0x15CA]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER RU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15CA, -- ᗊ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER RU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15CA,
},
[0x15CB]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER RO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15CB, -- ᗋ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER RO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15CB,
},
[0x15CC]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER RE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15CC, -- ᗌ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER RE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15CC,
},
[0x15CD]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER REE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15CD, -- ᗍ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER REE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15CD,
},
[0x15CE]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER RI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15CE, -- ᗎ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER RI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15CE,
},
[0x15CF]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER RA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15CF, -- ᗏ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER RA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15CF,
},
[0x15D0]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER WU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15D0, -- ᗐ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER WU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15D0,
},
[0x15D1]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER WO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15D1, -- ᗑ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER WO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15D1,
},
[0x15D2]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER WE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15D2, -- ᗒ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER WE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15D2,
},
[0x15D3]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER WEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15D3, -- ᗓ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER WEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15D3,
},
[0x15D4]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER WI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15D4, -- ᗔ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER WI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15D4,
},
[0x15D5]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER WA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15D5, -- ᗕ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER WA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15D5,
},
[0x15D6]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER HWU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15D6, -- ᗖ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER HWU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15D6,
},
[0x15D7]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER HWO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15D7, -- ᗗ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER HWO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15D7,
},
[0x15D8]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER HWE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15D8, -- ᗘ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER HWE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15D8,
},
[0x15D9]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER HWEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15D9, -- ᗙ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER HWEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15D9,
},
[0x15DA]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER HWI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15DA, -- ᗚ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER HWI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15DA,
},
[0x15DB]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER HWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15DB, -- ᗛ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER HWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15DB,
},
[0x15DC]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER THU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15DC, -- ᗜ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER THU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15DC,
},
[0x15DD]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER THO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15DD, -- ᗝ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER THO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15DD,
},
[0x15DE]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER THE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15DE, -- ᗞ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER THE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15DE,
},
[0x15DF]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER THEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15DF, -- ᗟ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER THEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15DF,
},
[0x15E0]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER THI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15E0, -- ᗠ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER THI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15E0,
},
[0x15E1]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER THA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15E1, -- ᗡ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER THA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15E1,
},
[0x15E2]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER TTU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15E2, -- ᗢ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER TTU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15E2,
},
[0x15E3]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER TTO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15E3, -- ᗣ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER TTO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15E3,
},
[0x15E4]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER TTE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15E4, -- ᗤ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER TTE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15E4,
},
[0x15E5]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER TTEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15E5, -- ᗥ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER TTEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15E5,
},
[0x15E6]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER TTI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15E6, -- ᗦ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER TTI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15E6,
},
[0x15E7]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER TTA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15E7, -- ᗧ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER TTA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15E7,
},
[0x15E8]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER PU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15E8, -- ᗨ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER PU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15E8,
},
[0x15E9]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER PO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15E9, -- ᗩ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER PO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15E9,
},
[0x15EA]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER PE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15EA, -- ᗪ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER PE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15EA,
},
[0x15EB]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER PEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15EB, -- ᗫ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER PEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15EB,
},
[0x15EC]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER PI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15EC, -- ᗬ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER PI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15EC,
},
[0x15ED]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER PA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15ED, -- ᗭ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER PA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15ED,
},
[0x15EE]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER P",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15EE, -- ᗮ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER P",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15EE,
},
[0x15EF]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER GU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15EF, -- ᗯ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER GU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15EF,
},
[0x15F0]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER GO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15F0, -- ᗰ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER GO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15F0,
},
[0x15F1]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER GE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15F1, -- ᗱ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER GE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15F1,
},
[0x15F2]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER GEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15F2, -- ᗲ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER GEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15F2,
},
[0x15F3]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER GI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15F3, -- ᗳ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER GI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15F3,
},
[0x15F4]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER GA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15F4, -- ᗴ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER GA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15F4,
},
[0x15F5]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER KHU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15F5, -- ᗵ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER KHU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15F5,
},
[0x15F6]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER KHO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15F6, -- ᗶ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER KHO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15F6,
},
[0x15F7]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER KHE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15F7, -- ᗷ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER KHE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15F7,
},
[0x15F8]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER KHEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15F8, -- ᗸ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER KHEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15F8,
},
[0x15F9]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER KHI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15F9, -- ᗹ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER KHI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15F9,
},
[0x15FA]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER KHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15FA, -- ᗺ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER KHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15FA,
},
[0x15FB]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER KKU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15FB, -- ᗻ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER KKU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15FB,
},
[0x15FC]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER KKO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15FC, -- ᗼ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER KKO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15FC,
},
[0x15FD]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER KKE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15FD, -- ᗽ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER KKE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15FD,
},
[0x15FE]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER KKEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15FE, -- ᗾ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER KKEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15FE,
},
[0x15FF]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER KKI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x15FF, -- ᗿ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER KKI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x15FF,
},
[0x1600]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER KKA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1600, -- ᘀ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER KKA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1600,
},
[0x1601]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER KK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1601, -- ᘁ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER KK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1601,
},
[0x1602]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER NU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1602, -- ᘂ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER NU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1602,
},
[0x1603]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER NO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1603, -- ᘃ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER NO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1603,
},
[0x1604]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER NE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1604, -- ᘄ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER NE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1604,
},
[0x1605]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER NEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1605, -- ᘅ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER NEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1605,
},
[0x1606]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER NI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1606, -- ᘆ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER NI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1606,
},
[0x1607]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER NA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1607, -- ᘇ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER NA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1607,
},
[0x1608]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER MU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1608, -- ᘈ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER MU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1608,
},
[0x1609]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER MO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1609, -- ᘉ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER MO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1609,
},
[0x160A]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER ME",
- ["linebreak"]="al",
- ["unicodeslot"]=0x160A, -- ᘊ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER ME",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x160A,
},
[0x160B]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER MEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x160B, -- ᘋ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER MEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x160B,
},
[0x160C]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER MI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x160C, -- ᘌ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER MI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x160C,
},
[0x160D]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER MA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x160D, -- ᘍ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER MA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x160D,
},
[0x160E]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER YU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x160E, -- ᘎ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER YU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x160E,
},
[0x160F]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER YO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x160F, -- ᘏ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER YO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x160F,
},
[0x1610]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER YE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1610, -- ᘐ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER YE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1610,
},
[0x1611]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER YEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1611, -- ᘑ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER YEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1611,
},
[0x1612]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER YI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1612, -- ᘒ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER YI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1612,
},
[0x1613]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER YA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1613, -- ᘓ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER YA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1613,
},
[0x1614]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER JU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1614, -- ᘔ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER JU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1614,
},
[0x1615]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS SAYISI JU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1615, -- ᘕ
+ category="lo",
+ description="CANADIAN SYLLABICS SAYISI JU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1615,
},
[0x1616]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER JO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1616, -- ᘖ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER JO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1616,
},
[0x1617]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER JE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1617, -- ᘗ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER JE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1617,
},
[0x1618]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER JEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1618, -- ᘘ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER JEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1618,
},
[0x1619]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER JI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1619, -- ᘙ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER JI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1619,
},
[0x161A]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS SAYISI JI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x161A, -- ᘚ
+ category="lo",
+ description="CANADIAN SYLLABICS SAYISI JI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x161A,
},
[0x161B]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER JA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x161B, -- ᘛ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER JA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x161B,
},
[0x161C]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER JJU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x161C, -- ᘜ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER JJU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x161C,
},
[0x161D]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER JJO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x161D, -- ᘝ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER JJO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x161D,
},
[0x161E]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER JJE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x161E, -- ᘞ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER JJE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x161E,
},
[0x161F]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER JJEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x161F, -- ᘟ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER JJEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x161F,
},
[0x1620]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER JJI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1620, -- ᘠ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER JJI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1620,
},
[0x1621]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER JJA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1621, -- ᘡ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER JJA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1621,
},
[0x1622]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER LU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1622, -- ᘢ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER LU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1622,
},
[0x1623]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER LO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1623, -- ᘣ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER LO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1623,
},
[0x1624]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER LE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1624, -- ᘤ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER LE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1624,
},
[0x1625]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER LEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1625, -- ᘥ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER LEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1625,
},
[0x1626]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER LI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1626, -- ᘦ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER LI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1626,
},
[0x1627]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER LA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1627, -- ᘧ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER LA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1627,
},
[0x1628]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER DLU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1628, -- ᘨ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER DLU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1628,
},
[0x1629]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER DLO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1629, -- ᘩ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER DLO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1629,
},
[0x162A]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER DLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x162A, -- ᘪ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER DLE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x162A,
},
[0x162B]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER DLEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x162B, -- ᘫ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER DLEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x162B,
},
[0x162C]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER DLI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x162C, -- ᘬ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER DLI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x162C,
},
[0x162D]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER DLA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x162D, -- ᘭ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER DLA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x162D,
},
[0x162E]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER LHU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x162E, -- ᘮ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER LHU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x162E,
},
[0x162F]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER LHO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x162F, -- ᘯ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER LHO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x162F,
},
[0x1630]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER LHE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1630, -- ᘰ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER LHE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1630,
},
[0x1631]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER LHEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1631, -- ᘱ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER LHEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1631,
},
[0x1632]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER LHI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1632, -- ᘲ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER LHI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1632,
},
[0x1633]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER LHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1633, -- ᘳ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER LHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1633,
},
[0x1634]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER TLHU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1634, -- ᘴ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER TLHU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1634,
},
[0x1635]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER TLHO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1635, -- ᘵ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER TLHO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1635,
},
[0x1636]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER TLHE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1636, -- ᘶ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER TLHE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1636,
},
[0x1637]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER TLHEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1637, -- ᘷ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER TLHEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1637,
},
[0x1638]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER TLHI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1638, -- ᘸ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER TLHI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1638,
},
[0x1639]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER TLHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1639, -- ᘹ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER TLHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1639,
},
[0x163A]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER TLU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x163A, -- ᘺ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER TLU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x163A,
},
[0x163B]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER TLO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x163B, -- ᘻ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER TLO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x163B,
},
[0x163C]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER TLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x163C, -- ᘼ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER TLE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x163C,
},
[0x163D]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER TLEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x163D, -- ᘽ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER TLEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x163D,
},
[0x163E]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER TLI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x163E, -- ᘾ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER TLI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x163E,
},
[0x163F]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER TLA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x163F, -- ᘿ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER TLA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x163F,
},
[0x1640]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER ZU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1640, -- ᙀ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER ZU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1640,
},
[0x1641]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER ZO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1641, -- ᙁ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER ZO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1641,
},
[0x1642]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER ZE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1642, -- ᙂ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER ZE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1642,
},
[0x1643]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER ZEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1643, -- ᙃ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER ZEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1643,
},
[0x1644]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER ZI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1644, -- ᙄ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER ZI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1644,
},
[0x1645]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER ZA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1645, -- ᙅ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER ZA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1645,
},
[0x1646]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER Z",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1646, -- ᙆ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER Z",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1646,
},
[0x1647]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER INITIAL Z",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1647, -- ᙇ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER INITIAL Z",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1647,
},
[0x1648]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER DZU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1648, -- ᙈ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER DZU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1648,
},
[0x1649]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER DZO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1649, -- ᙉ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER DZO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1649,
},
[0x164A]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER DZE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x164A, -- ᙊ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER DZE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x164A,
},
[0x164B]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER DZEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x164B, -- ᙋ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER DZEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x164B,
},
[0x164C]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER DZI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x164C, -- ᙌ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER DZI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x164C,
},
[0x164D]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER DZA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x164D, -- ᙍ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER DZA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x164D,
},
[0x164E]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER SU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x164E, -- ᙎ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER SU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x164E,
},
[0x164F]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER SO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x164F, -- ᙏ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER SO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x164F,
},
[0x1650]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER SE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1650, -- ᙐ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER SE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1650,
},
[0x1651]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER SEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1651, -- ᙑ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER SEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1651,
},
[0x1652]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER SI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1652, -- ᙒ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER SI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1652,
},
[0x1653]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER SA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1653, -- ᙓ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER SA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1653,
},
[0x1654]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER SHU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1654, -- ᙔ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER SHU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1654,
},
[0x1655]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER SHO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1655, -- ᙕ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER SHO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1655,
},
[0x1656]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER SHE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1656, -- ᙖ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER SHE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1656,
},
[0x1657]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER SHEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1657, -- ᙗ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER SHEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1657,
},
[0x1658]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER SHI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1658, -- ᙘ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER SHI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1658,
},
[0x1659]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER SHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1659, -- ᙙ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER SHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1659,
},
[0x165A]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER SH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x165A, -- ᙚ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER SH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x165A,
},
[0x165B]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER TSU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x165B, -- ᙛ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER TSU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x165B,
},
[0x165C]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER TSO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x165C, -- ᙜ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER TSO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x165C,
},
[0x165D]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER TSE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x165D, -- ᙝ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER TSE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x165D,
},
[0x165E]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER TSEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x165E, -- ᙞ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER TSEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x165E,
},
[0x165F]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER TSI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x165F, -- ᙟ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER TSI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x165F,
},
[0x1660]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER TSA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1660, -- ᙠ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER TSA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1660,
},
[0x1661]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER CHU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1661, -- ᙡ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER CHU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1661,
},
[0x1662]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER CHO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1662, -- ᙢ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER CHO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1662,
},
[0x1663]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER CHE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1663, -- ᙣ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER CHE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1663,
},
[0x1664]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER CHEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1664, -- ᙤ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER CHEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1664,
},
[0x1665]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER CHI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1665, -- ᙥ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER CHI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1665,
},
[0x1666]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER CHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1666, -- ᙦ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER CHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1666,
},
[0x1667]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER TTSU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1667, -- ᙧ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER TTSU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1667,
},
[0x1668]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER TTSO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1668, -- ᙨ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER TTSO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1668,
},
[0x1669]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER TTSE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1669, -- ᙩ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER TTSE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1669,
},
[0x166A]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER TTSEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x166A, -- ᙪ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER TTSEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x166A,
},
[0x166B]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER TTSI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x166B, -- ᙫ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER TTSI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x166B,
},
[0x166C]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS CARRIER TTSA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x166C, -- ᙬ
+ category="lo",
+ description="CANADIAN SYLLABICS CARRIER TTSA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x166C,
},
[0x166D]={
- ["category"]="po",
- ["description"]="CANADIAN SYLLABICS CHI SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x166D, -- ᙭
+ category="po",
+ description="CANADIAN SYLLABICS CHI SIGN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x166D,
},
[0x166E]={
- ["category"]="po",
- ["description"]="CANADIAN SYLLABICS FULL STOP",
- ["linebreak"]="al",
- ["unicodeslot"]=0x166E, -- ᙮
+ category="po",
+ description="CANADIAN SYLLABICS FULL STOP",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x166E,
},
[0x166F]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS QAI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x166F, -- ᙯ
+ category="lo",
+ description="CANADIAN SYLLABICS QAI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x166F,
},
[0x1670]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS NGAI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1670, -- ᙰ
+ category="lo",
+ description="CANADIAN SYLLABICS NGAI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1670,
},
[0x1671]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS NNGI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1671, -- ᙱ
+ category="lo",
+ description="CANADIAN SYLLABICS NNGI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1671,
},
[0x1672]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS NNGII",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1672, -- ᙲ
+ category="lo",
+ description="CANADIAN SYLLABICS NNGII",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1672,
},
[0x1673]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS NNGO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1673, -- ᙳ
+ category="lo",
+ description="CANADIAN SYLLABICS NNGO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1673,
},
[0x1674]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS NNGOO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1674, -- ᙴ
+ category="lo",
+ description="CANADIAN SYLLABICS NNGOO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1674,
},
[0x1675]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS NNGA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1675, -- ᙵ
+ category="lo",
+ description="CANADIAN SYLLABICS NNGA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1675,
},
[0x1676]={
- ["category"]="lo",
- ["description"]="CANADIAN SYLLABICS NNGAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1676, -- ᙶ
+ category="lo",
+ description="CANADIAN SYLLABICS NNGAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1676,
},
[0x1680]={
- ["category"]="zs",
- ["description"]="OGHAM SPACE MARK",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x1680, --  
+ category="zs",
+ description="OGHAM SPACE MARK",
+ direction="ws",
+ linebreak="ba",
+ unicodeslot=0x1680,
},
[0x1681]={
- ["category"]="lo",
- ["description"]="OGHAM LETTER BEITH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1681, -- ᚁ
+ category="lo",
+ description="OGHAM LETTER BEITH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1681,
},
[0x1682]={
- ["category"]="lo",
- ["description"]="OGHAM LETTER LUIS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1682, -- ᚂ
+ category="lo",
+ description="OGHAM LETTER LUIS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1682,
},
[0x1683]={
- ["category"]="lo",
- ["description"]="OGHAM LETTER FEARN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1683, -- ᚃ
+ category="lo",
+ description="OGHAM LETTER FEARN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1683,
},
[0x1684]={
- ["category"]="lo",
- ["description"]="OGHAM LETTER SAIL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1684, -- ᚄ
+ category="lo",
+ description="OGHAM LETTER SAIL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1684,
},
[0x1685]={
- ["category"]="lo",
- ["description"]="OGHAM LETTER NION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1685, -- ᚅ
+ category="lo",
+ description="OGHAM LETTER NION",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1685,
},
[0x1686]={
- ["category"]="lo",
- ["description"]="OGHAM LETTER UATH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1686, -- ᚆ
+ category="lo",
+ description="OGHAM LETTER UATH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1686,
},
[0x1687]={
- ["category"]="lo",
- ["description"]="OGHAM LETTER DAIR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1687, -- ᚇ
+ category="lo",
+ description="OGHAM LETTER DAIR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1687,
},
[0x1688]={
- ["category"]="lo",
- ["description"]="OGHAM LETTER TINNE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1688, -- ᚈ
+ category="lo",
+ description="OGHAM LETTER TINNE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1688,
},
[0x1689]={
- ["category"]="lo",
- ["description"]="OGHAM LETTER COLL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1689, -- ᚉ
+ category="lo",
+ description="OGHAM LETTER COLL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1689,
},
[0x168A]={
- ["category"]="lo",
- ["description"]="OGHAM LETTER CEIRT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x168A, -- ᚊ
+ category="lo",
+ description="OGHAM LETTER CEIRT",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x168A,
},
[0x168B]={
- ["category"]="lo",
- ["description"]="OGHAM LETTER MUIN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x168B, -- ᚋ
+ category="lo",
+ description="OGHAM LETTER MUIN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x168B,
},
[0x168C]={
- ["category"]="lo",
- ["description"]="OGHAM LETTER GORT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x168C, -- ᚌ
+ category="lo",
+ description="OGHAM LETTER GORT",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x168C,
},
[0x168D]={
- ["category"]="lo",
- ["description"]="OGHAM LETTER NGEADAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x168D, -- ᚍ
+ category="lo",
+ description="OGHAM LETTER NGEADAL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x168D,
},
[0x168E]={
- ["category"]="lo",
- ["description"]="OGHAM LETTER STRAIF",
- ["linebreak"]="al",
- ["unicodeslot"]=0x168E, -- ᚎ
+ category="lo",
+ description="OGHAM LETTER STRAIF",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x168E,
},
[0x168F]={
- ["category"]="lo",
- ["description"]="OGHAM LETTER RUIS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x168F, -- ᚏ
+ category="lo",
+ description="OGHAM LETTER RUIS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x168F,
},
[0x1690]={
- ["category"]="lo",
- ["description"]="OGHAM LETTER AILM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1690, -- ᚐ
+ category="lo",
+ description="OGHAM LETTER AILM",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1690,
},
[0x1691]={
- ["category"]="lo",
- ["description"]="OGHAM LETTER ONN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1691, -- ᚑ
+ category="lo",
+ description="OGHAM LETTER ONN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1691,
},
[0x1692]={
- ["category"]="lo",
- ["description"]="OGHAM LETTER UR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1692, -- ᚒ
+ category="lo",
+ description="OGHAM LETTER UR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1692,
},
[0x1693]={
- ["category"]="lo",
- ["description"]="OGHAM LETTER EADHADH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1693, -- ᚓ
+ category="lo",
+ description="OGHAM LETTER EADHADH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1693,
},
[0x1694]={
- ["category"]="lo",
- ["description"]="OGHAM LETTER IODHADH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1694, -- ᚔ
+ category="lo",
+ description="OGHAM LETTER IODHADH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1694,
},
[0x1695]={
- ["category"]="lo",
- ["description"]="OGHAM LETTER EABHADH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1695, -- ᚕ
+ category="lo",
+ description="OGHAM LETTER EABHADH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1695,
},
[0x1696]={
- ["category"]="lo",
- ["description"]="OGHAM LETTER OR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1696, -- ᚖ
+ category="lo",
+ description="OGHAM LETTER OR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1696,
},
[0x1697]={
- ["category"]="lo",
- ["description"]="OGHAM LETTER UILLEANN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1697, -- ᚗ
+ category="lo",
+ description="OGHAM LETTER UILLEANN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1697,
},
[0x1698]={
- ["category"]="lo",
- ["description"]="OGHAM LETTER IFIN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1698, -- ᚘ
+ category="lo",
+ description="OGHAM LETTER IFIN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1698,
},
[0x1699]={
- ["category"]="lo",
- ["description"]="OGHAM LETTER EAMHANCHOLL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1699, -- ᚙ
+ category="lo",
+ description="OGHAM LETTER EAMHANCHOLL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1699,
},
[0x169A]={
- ["category"]="lo",
- ["description"]="OGHAM LETTER PEITH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x169A, -- ᚚ
+ category="lo",
+ description="OGHAM LETTER PEITH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x169A,
},
[0x169B]={
- ["category"]="ps",
- ["description"]="OGHAM FEATHER MARK",
- ["linebreak"]="op",
- ["unicodeslot"]=0x169B, -- ᚛
+ category="ps",
+ description="OGHAM FEATHER MARK",
+ direction="on",
+ linebreak="op",
+ mirror=0x169C,
+ unicodeslot=0x169B,
},
[0x169C]={
- ["category"]="pe",
- ["description"]="OGHAM REVERSED FEATHER MARK",
- ["linebreak"]="cl",
- ["unicodeslot"]=0x169C, -- ᚜
+ category="pe",
+ description="OGHAM REVERSED FEATHER MARK",
+ direction="on",
+ linebreak="cl",
+ mirror=0x169B,
+ unicodeslot=0x169C,
},
[0x16A0]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER FEHU FEOH FE F",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16A0, -- ᚠ
+ category="lo",
+ description="RUNIC LETTER FEHU FEOH FE F",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16A0,
},
[0x16A1]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER V",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16A1, -- ᚡ
+ category="lo",
+ description="RUNIC LETTER V",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16A1,
},
[0x16A2]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER URUZ UR U",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16A2, -- ᚢ
+ category="lo",
+ description="RUNIC LETTER URUZ UR U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16A2,
},
[0x16A3]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER YR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16A3, -- ᚣ
+ category="lo",
+ description="RUNIC LETTER YR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16A3,
},
[0x16A4]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER Y",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16A4, -- ᚤ
+ category="lo",
+ description="RUNIC LETTER Y",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16A4,
},
[0x16A5]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER W",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16A5, -- ᚥ
+ category="lo",
+ description="RUNIC LETTER W",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16A5,
},
[0x16A6]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER THURISAZ THURS THORN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16A6, -- ᚦ
+ category="lo",
+ description="RUNIC LETTER THURISAZ THURS THORN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16A6,
},
[0x16A7]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER ETH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16A7, -- ᚧ
+ category="lo",
+ description="RUNIC LETTER ETH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16A7,
},
[0x16A8]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER ANSUZ A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16A8, -- ᚨ
+ category="lo",
+ description="RUNIC LETTER ANSUZ A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16A8,
},
[0x16A9]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER OS O",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16A9, -- ᚩ
+ category="lo",
+ description="RUNIC LETTER OS O",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16A9,
},
[0x16AA]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER AC A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16AA, -- ᚪ
+ category="lo",
+ description="RUNIC LETTER AC A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16AA,
},
[0x16AB]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER AESC",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16AB, -- ᚫ
+ category="lo",
+ description="RUNIC LETTER AESC",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16AB,
},
[0x16AC]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER LONG-BRANCH-OSS O",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16AC, -- ᚬ
+ category="lo",
+ description="RUNIC LETTER LONG-BRANCH-OSS O",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16AC,
},
[0x16AD]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER SHORT-TWIG-OSS O",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16AD, -- ᚭ
+ category="lo",
+ description="RUNIC LETTER SHORT-TWIG-OSS O",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16AD,
},
[0x16AE]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER O",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16AE, -- ᚮ
+ category="lo",
+ description="RUNIC LETTER O",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16AE,
},
[0x16AF]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER OE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16AF, -- ᚯ
+ category="lo",
+ description="RUNIC LETTER OE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16AF,
},
[0x16B0]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER ON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16B0, -- ᚰ
+ category="lo",
+ description="RUNIC LETTER ON",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16B0,
},
[0x16B1]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER RAIDO RAD REID R",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16B1, -- ᚱ
+ category="lo",
+ description="RUNIC LETTER RAIDO RAD REID R",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16B1,
},
[0x16B2]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER KAUNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16B2, -- ᚲ
+ category="lo",
+ description="RUNIC LETTER KAUNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16B2,
},
[0x16B3]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER CEN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16B3, -- ᚳ
+ category="lo",
+ description="RUNIC LETTER CEN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16B3,
},
[0x16B4]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER KAUN K",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16B4, -- ᚴ
+ category="lo",
+ description="RUNIC LETTER KAUN K",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16B4,
},
[0x16B5]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER G",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16B5, -- ᚵ
+ category="lo",
+ description="RUNIC LETTER G",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16B5,
},
[0x16B6]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER ENG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16B6, -- ᚶ
+ category="lo",
+ description="RUNIC LETTER ENG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16B6,
},
[0x16B7]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER GEBO GYFU G",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16B7, -- ᚷ
+ category="lo",
+ description="RUNIC LETTER GEBO GYFU G",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16B7,
},
[0x16B8]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER GAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16B8, -- ᚸ
+ category="lo",
+ description="RUNIC LETTER GAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16B8,
},
[0x16B9]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER WUNJO WYNN W",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16B9, -- ᚹ
+ category="lo",
+ description="RUNIC LETTER WUNJO WYNN W",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16B9,
},
[0x16BA]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER HAGLAZ H",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16BA, -- ᚺ
+ category="lo",
+ description="RUNIC LETTER HAGLAZ H",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16BA,
},
[0x16BB]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER HAEGL H",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16BB, -- ᚻ
+ category="lo",
+ description="RUNIC LETTER HAEGL H",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16BB,
},
[0x16BC]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER LONG-BRANCH-HAGALL H",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16BC, -- ᚼ
+ category="lo",
+ description="RUNIC LETTER LONG-BRANCH-HAGALL H",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16BC,
},
[0x16BD]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER SHORT-TWIG-HAGALL H",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16BD, -- ᚽ
+ category="lo",
+ description="RUNIC LETTER SHORT-TWIG-HAGALL H",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16BD,
},
[0x16BE]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER NAUDIZ NYD NAUD N",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16BE, -- ᚾ
+ category="lo",
+ description="RUNIC LETTER NAUDIZ NYD NAUD N",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16BE,
},
[0x16BF]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER SHORT-TWIG-NAUD N",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16BF, -- ᚿ
+ category="lo",
+ description="RUNIC LETTER SHORT-TWIG-NAUD N",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16BF,
},
[0x16C0]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER DOTTED-N",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16C0, -- ᛀ
+ category="lo",
+ description="RUNIC LETTER DOTTED-N",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16C0,
},
[0x16C1]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER ISAZ IS ISS I",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16C1, -- ᛁ
+ category="lo",
+ description="RUNIC LETTER ISAZ IS ISS I",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16C1,
},
[0x16C2]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16C2, -- ᛂ
+ category="lo",
+ description="RUNIC LETTER E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16C2,
},
[0x16C3]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER JERAN J",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16C3, -- ᛃ
+ category="lo",
+ description="RUNIC LETTER JERAN J",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16C3,
},
[0x16C4]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER GER",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16C4, -- ᛄ
+ category="lo",
+ description="RUNIC LETTER GER",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16C4,
},
[0x16C5]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER LONG-BRANCH-AR AE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16C5, -- ᛅ
+ category="lo",
+ description="RUNIC LETTER LONG-BRANCH-AR AE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16C5,
},
[0x16C6]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER SHORT-TWIG-AR A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16C6, -- ᛆ
+ category="lo",
+ description="RUNIC LETTER SHORT-TWIG-AR A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16C6,
},
[0x16C7]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER IWAZ EOH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16C7, -- ᛇ
+ category="lo",
+ description="RUNIC LETTER IWAZ EOH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16C7,
},
[0x16C8]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER PERTHO PEORTH P",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16C8, -- ᛈ
+ category="lo",
+ description="RUNIC LETTER PERTHO PEORTH P",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16C8,
},
[0x16C9]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER ALGIZ EOLHX",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16C9, -- ᛉ
+ category="lo",
+ description="RUNIC LETTER ALGIZ EOLHX",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16C9,
},
[0x16CA]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER SOWILO S",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16CA, -- ᛊ
+ category="lo",
+ description="RUNIC LETTER SOWILO S",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16CA,
},
[0x16CB]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER SIGEL LONG-BRANCH-SOL S",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16CB, -- ᛋ
+ category="lo",
+ description="RUNIC LETTER SIGEL LONG-BRANCH-SOL S",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16CB,
},
[0x16CC]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER SHORT-TWIG-SOL S",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16CC, -- ᛌ
+ category="lo",
+ description="RUNIC LETTER SHORT-TWIG-SOL S",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16CC,
},
[0x16CD]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER C",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16CD, -- ᛍ
+ category="lo",
+ description="RUNIC LETTER C",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16CD,
},
[0x16CE]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER Z",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16CE, -- ᛎ
+ category="lo",
+ description="RUNIC LETTER Z",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16CE,
},
[0x16CF]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER TIWAZ TIR TYR T",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16CF, -- ᛏ
+ category="lo",
+ description="RUNIC LETTER TIWAZ TIR TYR T",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16CF,
},
[0x16D0]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER SHORT-TWIG-TYR T",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16D0, -- ᛐ
+ category="lo",
+ description="RUNIC LETTER SHORT-TWIG-TYR T",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16D0,
},
[0x16D1]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER D",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16D1, -- ᛑ
+ category="lo",
+ description="RUNIC LETTER D",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16D1,
},
[0x16D2]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER BERKANAN BEORC BJARKAN B",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16D2, -- ᛒ
+ category="lo",
+ description="RUNIC LETTER BERKANAN BEORC BJARKAN B",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16D2,
},
[0x16D3]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER SHORT-TWIG-BJARKAN B",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16D3, -- ᛓ
+ category="lo",
+ description="RUNIC LETTER SHORT-TWIG-BJARKAN B",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16D3,
},
[0x16D4]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER DOTTED-P",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16D4, -- ᛔ
+ category="lo",
+ description="RUNIC LETTER DOTTED-P",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16D4,
},
[0x16D5]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER OPEN-P",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16D5, -- ᛕ
+ category="lo",
+ description="RUNIC LETTER OPEN-P",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16D5,
},
[0x16D6]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER EHWAZ EH E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16D6, -- ᛖ
+ category="lo",
+ description="RUNIC LETTER EHWAZ EH E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16D6,
},
[0x16D7]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER MANNAZ MAN M",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16D7, -- ᛗ
+ category="lo",
+ description="RUNIC LETTER MANNAZ MAN M",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16D7,
},
[0x16D8]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER LONG-BRANCH-MADR M",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16D8, -- ᛘ
+ category="lo",
+ description="RUNIC LETTER LONG-BRANCH-MADR M",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16D8,
},
[0x16D9]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER SHORT-TWIG-MADR M",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16D9, -- ᛙ
+ category="lo",
+ description="RUNIC LETTER SHORT-TWIG-MADR M",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16D9,
},
[0x16DA]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER LAUKAZ LAGU LOGR L",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16DA, -- ᛚ
+ category="lo",
+ description="RUNIC LETTER LAUKAZ LAGU LOGR L",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16DA,
},
[0x16DB]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER DOTTED-L",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16DB, -- ᛛ
+ category="lo",
+ description="RUNIC LETTER DOTTED-L",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16DB,
},
[0x16DC]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER INGWAZ",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16DC, -- ᛜ
+ category="lo",
+ description="RUNIC LETTER INGWAZ",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16DC,
},
[0x16DD]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER ING",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16DD, -- ᛝ
+ category="lo",
+ description="RUNIC LETTER ING",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16DD,
},
[0x16DE]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER DAGAZ DAEG D",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16DE, -- ᛞ
+ category="lo",
+ description="RUNIC LETTER DAGAZ DAEG D",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16DE,
},
[0x16DF]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER OTHALAN ETHEL O",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16DF, -- ᛟ
+ category="lo",
+ description="RUNIC LETTER OTHALAN ETHEL O",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16DF,
},
[0x16E0]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER EAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16E0, -- ᛠ
+ category="lo",
+ description="RUNIC LETTER EAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16E0,
},
[0x16E1]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER IOR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16E1, -- ᛡ
+ category="lo",
+ description="RUNIC LETTER IOR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16E1,
},
[0x16E2]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER CWEORTH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16E2, -- ᛢ
+ category="lo",
+ description="RUNIC LETTER CWEORTH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16E2,
},
[0x16E3]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER CALC",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16E3, -- ᛣ
+ category="lo",
+ description="RUNIC LETTER CALC",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16E3,
},
[0x16E4]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER CEALC",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16E4, -- ᛤ
+ category="lo",
+ description="RUNIC LETTER CEALC",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16E4,
},
[0x16E5]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER STAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16E5, -- ᛥ
+ category="lo",
+ description="RUNIC LETTER STAN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16E5,
},
[0x16E6]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER LONG-BRANCH-YR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16E6, -- ᛦ
+ category="lo",
+ description="RUNIC LETTER LONG-BRANCH-YR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16E6,
},
[0x16E7]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER SHORT-TWIG-YR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16E7, -- ᛧ
+ category="lo",
+ description="RUNIC LETTER SHORT-TWIG-YR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16E7,
},
[0x16E8]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER ICELANDIC-YR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16E8, -- ᛨ
+ category="lo",
+ description="RUNIC LETTER ICELANDIC-YR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16E8,
},
[0x16E9]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER Q",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16E9, -- ᛩ
+ category="lo",
+ description="RUNIC LETTER Q",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16E9,
},
[0x16EA]={
- ["category"]="lo",
- ["description"]="RUNIC LETTER X",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16EA, -- ᛪ
+ category="lo",
+ description="RUNIC LETTER X",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16EA,
},
[0x16EB]={
- ["category"]="po",
- ["description"]="RUNIC SINGLE PUNCTUATION",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x16EB, -- ᛫
+ category="po",
+ description="RUNIC SINGLE PUNCTUATION",
+ direction="l",
+ linebreak="ba",
+ unicodeslot=0x16EB,
},
[0x16EC]={
- ["category"]="po",
- ["description"]="RUNIC MULTIPLE PUNCTUATION",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x16EC, -- ᛬
+ category="po",
+ description="RUNIC MULTIPLE PUNCTUATION",
+ direction="l",
+ linebreak="ba",
+ unicodeslot=0x16EC,
},
[0x16ED]={
- ["category"]="po",
- ["description"]="RUNIC CROSS PUNCTUATION",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x16ED, -- ᛭
+ category="po",
+ description="RUNIC CROSS PUNCTUATION",
+ direction="l",
+ linebreak="ba",
+ unicodeslot=0x16ED,
},
[0x16EE]={
- ["category"]="nl",
- ["description"]="RUNIC ARLAUG SYMBOL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16EE, -- ᛮ
+ category="nl",
+ description="RUNIC ARLAUG SYMBOL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16EE,
},
[0x16EF]={
- ["category"]="nl",
- ["description"]="RUNIC TVIMADUR SYMBOL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16EF, -- ᛯ
+ category="nl",
+ description="RUNIC TVIMADUR SYMBOL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16EF,
},
[0x16F0]={
- ["category"]="nl",
- ["description"]="RUNIC BELGTHOR SYMBOL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x16F0, -- ᛰ
+ category="nl",
+ description="RUNIC BELGTHOR SYMBOL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16F0,
},
[0x1700]={
- ["category"]="lo",
- ["description"]="TAGALOG LETTER A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1700, -- ᜀ
+ category="lo",
+ description="TAGALOG LETTER A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1700,
},
[0x1701]={
- ["category"]="lo",
- ["description"]="TAGALOG LETTER I",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1701, -- ᜁ
+ category="lo",
+ description="TAGALOG LETTER I",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1701,
},
[0x1702]={
- ["category"]="lo",
- ["description"]="TAGALOG LETTER U",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1702, -- ᜂ
+ category="lo",
+ description="TAGALOG LETTER U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1702,
},
[0x1703]={
- ["category"]="lo",
- ["description"]="TAGALOG LETTER KA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1703, -- ᜃ
+ category="lo",
+ description="TAGALOG LETTER KA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1703,
},
[0x1704]={
- ["category"]="lo",
- ["description"]="TAGALOG LETTER GA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1704, -- ᜄ
+ category="lo",
+ description="TAGALOG LETTER GA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1704,
},
[0x1705]={
- ["category"]="lo",
- ["description"]="TAGALOG LETTER NGA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1705, -- ᜅ
+ category="lo",
+ description="TAGALOG LETTER NGA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1705,
},
[0x1706]={
- ["category"]="lo",
- ["description"]="TAGALOG LETTER TA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1706, -- ᜆ
+ category="lo",
+ description="TAGALOG LETTER TA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1706,
},
[0x1707]={
- ["category"]="lo",
- ["description"]="TAGALOG LETTER DA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1707, -- ᜇ
+ category="lo",
+ description="TAGALOG LETTER DA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1707,
},
[0x1708]={
- ["category"]="lo",
- ["description"]="TAGALOG LETTER NA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1708, -- ᜈ
+ category="lo",
+ description="TAGALOG LETTER NA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1708,
},
[0x1709]={
- ["category"]="lo",
- ["description"]="TAGALOG LETTER PA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1709, -- ᜉ
+ category="lo",
+ description="TAGALOG LETTER PA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1709,
},
[0x170A]={
- ["category"]="lo",
- ["description"]="TAGALOG LETTER BA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x170A, -- ᜊ
+ category="lo",
+ description="TAGALOG LETTER BA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x170A,
},
[0x170B]={
- ["category"]="lo",
- ["description"]="TAGALOG LETTER MA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x170B, -- ᜋ
+ category="lo",
+ description="TAGALOG LETTER MA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x170B,
},
[0x170C]={
- ["category"]="lo",
- ["description"]="TAGALOG LETTER YA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x170C, -- ᜌ
+ category="lo",
+ description="TAGALOG LETTER YA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x170C,
},
[0x170E]={
- ["category"]="lo",
- ["description"]="TAGALOG LETTER LA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x170E, -- ᜎ
+ category="lo",
+ description="TAGALOG LETTER LA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x170E,
},
[0x170F]={
- ["category"]="lo",
- ["description"]="TAGALOG LETTER WA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x170F, -- ᜏ
+ category="lo",
+ description="TAGALOG LETTER WA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x170F,
},
[0x1710]={
- ["category"]="lo",
- ["description"]="TAGALOG LETTER SA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1710, -- ᜐ
+ category="lo",
+ description="TAGALOG LETTER SA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1710,
},
[0x1711]={
- ["category"]="lo",
- ["description"]="TAGALOG LETTER HA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1711, -- ᜑ
+ category="lo",
+ description="TAGALOG LETTER HA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1711,
},
[0x1712]={
- ["category"]="mn",
- ["description"]="TAGALOG VOWEL SIGN I",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1712, -- ᜒ
+ category="mn",
+ description="TAGALOG VOWEL SIGN I",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1712,
},
[0x1713]={
- ["category"]="mn",
- ["description"]="TAGALOG VOWEL SIGN U",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1713, -- ᜓ
+ category="mn",
+ description="TAGALOG VOWEL SIGN U",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1713,
},
[0x1714]={
- ["category"]="mn",
- ["description"]="TAGALOG SIGN VIRAMA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1714, -- ᜔
+ category="mn",
+ description="TAGALOG SIGN VIRAMA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1714,
},
[0x1720]={
- ["category"]="lo",
- ["description"]="HANUNOO LETTER A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1720, -- ᜠ
+ category="lo",
+ description="HANUNOO LETTER A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1720,
},
[0x1721]={
- ["category"]="lo",
- ["description"]="HANUNOO LETTER I",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1721, -- ᜡ
+ category="lo",
+ description="HANUNOO LETTER I",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1721,
},
[0x1722]={
- ["category"]="lo",
- ["description"]="HANUNOO LETTER U",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1722, -- ᜢ
+ category="lo",
+ description="HANUNOO LETTER U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1722,
},
[0x1723]={
- ["category"]="lo",
- ["description"]="HANUNOO LETTER KA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1723, -- ᜣ
+ category="lo",
+ description="HANUNOO LETTER KA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1723,
},
[0x1724]={
- ["category"]="lo",
- ["description"]="HANUNOO LETTER GA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1724, -- ᜤ
+ category="lo",
+ description="HANUNOO LETTER GA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1724,
},
[0x1725]={
- ["category"]="lo",
- ["description"]="HANUNOO LETTER NGA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1725, -- ᜥ
+ category="lo",
+ description="HANUNOO LETTER NGA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1725,
},
[0x1726]={
- ["category"]="lo",
- ["description"]="HANUNOO LETTER TA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1726, -- ᜦ
+ category="lo",
+ description="HANUNOO LETTER TA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1726,
},
[0x1727]={
- ["category"]="lo",
- ["description"]="HANUNOO LETTER DA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1727, -- ᜧ
+ category="lo",
+ description="HANUNOO LETTER DA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1727,
},
[0x1728]={
- ["category"]="lo",
- ["description"]="HANUNOO LETTER NA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1728, -- ᜨ
+ category="lo",
+ description="HANUNOO LETTER NA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1728,
},
[0x1729]={
- ["category"]="lo",
- ["description"]="HANUNOO LETTER PA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1729, -- ᜩ
+ category="lo",
+ description="HANUNOO LETTER PA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1729,
},
[0x172A]={
- ["category"]="lo",
- ["description"]="HANUNOO LETTER BA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x172A, -- ᜪ
+ category="lo",
+ description="HANUNOO LETTER BA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x172A,
},
[0x172B]={
- ["category"]="lo",
- ["description"]="HANUNOO LETTER MA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x172B, -- ᜫ
+ category="lo",
+ description="HANUNOO LETTER MA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x172B,
},
[0x172C]={
- ["category"]="lo",
- ["description"]="HANUNOO LETTER YA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x172C, -- ᜬ
+ category="lo",
+ description="HANUNOO LETTER YA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x172C,
},
[0x172D]={
- ["category"]="lo",
- ["description"]="HANUNOO LETTER RA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x172D, -- ᜭ
+ category="lo",
+ description="HANUNOO LETTER RA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x172D,
},
[0x172E]={
- ["category"]="lo",
- ["description"]="HANUNOO LETTER LA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x172E, -- ᜮ
+ category="lo",
+ description="HANUNOO LETTER LA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x172E,
},
[0x172F]={
- ["category"]="lo",
- ["description"]="HANUNOO LETTER WA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x172F, -- ᜯ
+ category="lo",
+ description="HANUNOO LETTER WA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x172F,
},
[0x1730]={
- ["category"]="lo",
- ["description"]="HANUNOO LETTER SA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1730, -- ᜰ
+ category="lo",
+ description="HANUNOO LETTER SA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1730,
},
[0x1731]={
- ["category"]="lo",
- ["description"]="HANUNOO LETTER HA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1731, -- ᜱ
+ category="lo",
+ description="HANUNOO LETTER HA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1731,
},
[0x1732]={
- ["category"]="mn",
- ["description"]="HANUNOO VOWEL SIGN I",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1732, -- ᜲ
+ category="mn",
+ description="HANUNOO VOWEL SIGN I",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1732,
},
[0x1733]={
- ["category"]="mn",
- ["description"]="HANUNOO VOWEL SIGN U",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1733, -- ᜳ
+ category="mn",
+ description="HANUNOO VOWEL SIGN U",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1733,
},
[0x1734]={
- ["category"]="mn",
- ["description"]="HANUNOO SIGN PAMUDPOD",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1734, -- ᜴
+ category="mn",
+ description="HANUNOO SIGN PAMUDPOD",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1734,
},
[0x1735]={
- ["category"]="po",
- ["description"]="PHILIPPINE SINGLE PUNCTUATION",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x1735, -- ᜵
+ category="po",
+ description="PHILIPPINE SINGLE PUNCTUATION",
+ direction="l",
+ linebreak="ba",
+ unicodeslot=0x1735,
},
[0x1736]={
- ["category"]="po",
- ["description"]="PHILIPPINE DOUBLE PUNCTUATION",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x1736, -- ᜶
+ category="po",
+ description="PHILIPPINE DOUBLE PUNCTUATION",
+ direction="l",
+ linebreak="ba",
+ unicodeslot=0x1736,
},
[0x1740]={
- ["category"]="lo",
- ["description"]="BUHID LETTER A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1740, -- ᝀ
+ category="lo",
+ description="BUHID LETTER A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1740,
},
[0x1741]={
- ["category"]="lo",
- ["description"]="BUHID LETTER I",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1741, -- ᝁ
+ category="lo",
+ description="BUHID LETTER I",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1741,
},
[0x1742]={
- ["category"]="lo",
- ["description"]="BUHID LETTER U",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1742, -- ᝂ
+ category="lo",
+ description="BUHID LETTER U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1742,
},
[0x1743]={
- ["category"]="lo",
- ["description"]="BUHID LETTER KA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1743, -- ᝃ
+ category="lo",
+ description="BUHID LETTER KA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1743,
},
[0x1744]={
- ["category"]="lo",
- ["description"]="BUHID LETTER GA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1744, -- ᝄ
+ category="lo",
+ description="BUHID LETTER GA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1744,
},
[0x1745]={
- ["category"]="lo",
- ["description"]="BUHID LETTER NGA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1745, -- ᝅ
+ category="lo",
+ description="BUHID LETTER NGA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1745,
},
[0x1746]={
- ["category"]="lo",
- ["description"]="BUHID LETTER TA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1746, -- ᝆ
+ category="lo",
+ description="BUHID LETTER TA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1746,
},
[0x1747]={
- ["category"]="lo",
- ["description"]="BUHID LETTER DA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1747, -- ᝇ
+ category="lo",
+ description="BUHID LETTER DA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1747,
},
[0x1748]={
- ["category"]="lo",
- ["description"]="BUHID LETTER NA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1748, -- ᝈ
+ category="lo",
+ description="BUHID LETTER NA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1748,
},
[0x1749]={
- ["category"]="lo",
- ["description"]="BUHID LETTER PA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1749, -- ᝉ
+ category="lo",
+ description="BUHID LETTER PA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1749,
},
[0x174A]={
- ["category"]="lo",
- ["description"]="BUHID LETTER BA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x174A, -- ᝊ
+ category="lo",
+ description="BUHID LETTER BA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x174A,
},
[0x174B]={
- ["category"]="lo",
- ["description"]="BUHID LETTER MA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x174B, -- ᝋ
+ category="lo",
+ description="BUHID LETTER MA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x174B,
},
[0x174C]={
- ["category"]="lo",
- ["description"]="BUHID LETTER YA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x174C, -- ᝌ
+ category="lo",
+ description="BUHID LETTER YA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x174C,
},
[0x174D]={
- ["category"]="lo",
- ["description"]="BUHID LETTER RA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x174D, -- ᝍ
+ category="lo",
+ description="BUHID LETTER RA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x174D,
},
[0x174E]={
- ["category"]="lo",
- ["description"]="BUHID LETTER LA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x174E, -- ᝎ
+ category="lo",
+ description="BUHID LETTER LA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x174E,
},
[0x174F]={
- ["category"]="lo",
- ["description"]="BUHID LETTER WA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x174F, -- ᝏ
+ category="lo",
+ description="BUHID LETTER WA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x174F,
},
[0x1750]={
- ["category"]="lo",
- ["description"]="BUHID LETTER SA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1750, -- ᝐ
+ category="lo",
+ description="BUHID LETTER SA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1750,
},
[0x1751]={
- ["category"]="lo",
- ["description"]="BUHID LETTER HA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1751, -- ᝑ
+ category="lo",
+ description="BUHID LETTER HA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1751,
},
[0x1752]={
- ["category"]="mn",
- ["description"]="BUHID VOWEL SIGN I",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1752, -- ᝒ
+ category="mn",
+ description="BUHID VOWEL SIGN I",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1752,
},
[0x1753]={
- ["category"]="mn",
- ["description"]="BUHID VOWEL SIGN U",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1753, -- ᝓ
+ category="mn",
+ description="BUHID VOWEL SIGN U",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1753,
},
[0x1760]={
- ["category"]="lo",
- ["description"]="TAGBANWA LETTER A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1760, -- ᝠ
+ category="lo",
+ description="TAGBANWA LETTER A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1760,
},
[0x1761]={
- ["category"]="lo",
- ["description"]="TAGBANWA LETTER I",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1761, -- ᝡ
+ category="lo",
+ description="TAGBANWA LETTER I",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1761,
},
[0x1762]={
- ["category"]="lo",
- ["description"]="TAGBANWA LETTER U",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1762, -- ᝢ
+ category="lo",
+ description="TAGBANWA LETTER U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1762,
},
[0x1763]={
- ["category"]="lo",
- ["description"]="TAGBANWA LETTER KA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1763, -- ᝣ
+ category="lo",
+ description="TAGBANWA LETTER KA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1763,
},
[0x1764]={
- ["category"]="lo",
- ["description"]="TAGBANWA LETTER GA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1764, -- ᝤ
+ category="lo",
+ description="TAGBANWA LETTER GA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1764,
},
[0x1765]={
- ["category"]="lo",
- ["description"]="TAGBANWA LETTER NGA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1765, -- ᝥ
+ category="lo",
+ description="TAGBANWA LETTER NGA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1765,
},
[0x1766]={
- ["category"]="lo",
- ["description"]="TAGBANWA LETTER TA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1766, -- ᝦ
+ category="lo",
+ description="TAGBANWA LETTER TA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1766,
},
[0x1767]={
- ["category"]="lo",
- ["description"]="TAGBANWA LETTER DA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1767, -- ᝧ
+ category="lo",
+ description="TAGBANWA LETTER DA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1767,
},
[0x1768]={
- ["category"]="lo",
- ["description"]="TAGBANWA LETTER NA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1768, -- ᝨ
+ category="lo",
+ description="TAGBANWA LETTER NA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1768,
},
[0x1769]={
- ["category"]="lo",
- ["description"]="TAGBANWA LETTER PA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1769, -- ᝩ
+ category="lo",
+ description="TAGBANWA LETTER PA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1769,
},
[0x176A]={
- ["category"]="lo",
- ["description"]="TAGBANWA LETTER BA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x176A, -- ᝪ
+ category="lo",
+ description="TAGBANWA LETTER BA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x176A,
},
[0x176B]={
- ["category"]="lo",
- ["description"]="TAGBANWA LETTER MA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x176B, -- ᝫ
+ category="lo",
+ description="TAGBANWA LETTER MA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x176B,
},
[0x176C]={
- ["category"]="lo",
- ["description"]="TAGBANWA LETTER YA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x176C, -- ᝬ
+ category="lo",
+ description="TAGBANWA LETTER YA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x176C,
},
[0x176E]={
- ["category"]="lo",
- ["description"]="TAGBANWA LETTER LA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x176E, -- ᝮ
+ category="lo",
+ description="TAGBANWA LETTER LA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x176E,
},
[0x176F]={
- ["category"]="lo",
- ["description"]="TAGBANWA LETTER WA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x176F, -- ᝯ
+ category="lo",
+ description="TAGBANWA LETTER WA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x176F,
},
[0x1770]={
- ["category"]="lo",
- ["description"]="TAGBANWA LETTER SA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1770, -- ᝰ
+ category="lo",
+ description="TAGBANWA LETTER SA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1770,
},
[0x1772]={
- ["category"]="mn",
- ["description"]="TAGBANWA VOWEL SIGN I",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1772, -- ᝲ
+ category="mn",
+ description="TAGBANWA VOWEL SIGN I",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1772,
},
[0x1773]={
- ["category"]="mn",
- ["description"]="TAGBANWA VOWEL SIGN U",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1773, -- ᝳ
+ category="mn",
+ description="TAGBANWA VOWEL SIGN U",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1773,
},
[0x1780]={
- ["category"]="lo",
- ["description"]="KHMER LETTER KA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1780, -- ក
+ category="lo",
+ description="KHMER LETTER KA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1780,
},
[0x1781]={
- ["category"]="lo",
- ["description"]="KHMER LETTER KHA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1781, -- ខ
+ category="lo",
+ description="KHMER LETTER KHA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1781,
},
[0x1782]={
- ["category"]="lo",
- ["description"]="KHMER LETTER KO",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1782, -- គ
+ category="lo",
+ description="KHMER LETTER KO",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1782,
},
[0x1783]={
- ["category"]="lo",
- ["description"]="KHMER LETTER KHO",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1783, -- ឃ
+ category="lo",
+ description="KHMER LETTER KHO",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1783,
},
[0x1784]={
- ["category"]="lo",
- ["description"]="KHMER LETTER NGO",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1784, -- ង
+ category="lo",
+ description="KHMER LETTER NGO",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1784,
},
[0x1785]={
- ["category"]="lo",
- ["description"]="KHMER LETTER CA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1785, -- ច
+ category="lo",
+ description="KHMER LETTER CA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1785,
},
[0x1786]={
- ["category"]="lo",
- ["description"]="KHMER LETTER CHA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1786, -- ឆ
+ category="lo",
+ description="KHMER LETTER CHA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1786,
},
[0x1787]={
- ["category"]="lo",
- ["description"]="KHMER LETTER CO",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1787, -- ជ
+ category="lo",
+ description="KHMER LETTER CO",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1787,
},
[0x1788]={
- ["category"]="lo",
- ["description"]="KHMER LETTER CHO",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1788, -- ឈ
+ category="lo",
+ description="KHMER LETTER CHO",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1788,
},
[0x1789]={
- ["category"]="lo",
- ["description"]="KHMER LETTER NYO",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1789, -- ញ
+ category="lo",
+ description="KHMER LETTER NYO",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1789,
},
[0x178A]={
- ["category"]="lo",
- ["description"]="KHMER LETTER DA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x178A, -- ដ
+ category="lo",
+ description="KHMER LETTER DA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x178A,
},
[0x178B]={
- ["category"]="lo",
- ["description"]="KHMER LETTER TTHA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x178B, -- ឋ
+ category="lo",
+ description="KHMER LETTER TTHA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x178B,
},
[0x178C]={
- ["category"]="lo",
- ["description"]="KHMER LETTER DO",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x178C, -- ឌ
+ category="lo",
+ description="KHMER LETTER DO",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x178C,
},
[0x178D]={
- ["category"]="lo",
- ["description"]="KHMER LETTER TTHO",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x178D, -- ឍ
+ category="lo",
+ description="KHMER LETTER TTHO",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x178D,
},
[0x178E]={
- ["category"]="lo",
- ["description"]="KHMER LETTER NNO",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x178E, -- ណ
+ category="lo",
+ description="KHMER LETTER NNO",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x178E,
},
[0x178F]={
- ["category"]="lo",
- ["description"]="KHMER LETTER TA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x178F, -- ត
+ category="lo",
+ description="KHMER LETTER TA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x178F,
},
[0x1790]={
- ["category"]="lo",
- ["description"]="KHMER LETTER THA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1790, -- ថ
+ category="lo",
+ description="KHMER LETTER THA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1790,
},
[0x1791]={
- ["category"]="lo",
- ["description"]="KHMER LETTER TO",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1791, -- ទ
+ category="lo",
+ description="KHMER LETTER TO",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1791,
},
[0x1792]={
- ["category"]="lo",
- ["description"]="KHMER LETTER THO",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1792, -- ធ
+ category="lo",
+ description="KHMER LETTER THO",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1792,
},
[0x1793]={
- ["category"]="lo",
- ["description"]="KHMER LETTER NO",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1793, -- ន
+ category="lo",
+ description="KHMER LETTER NO",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1793,
},
[0x1794]={
- ["category"]="lo",
- ["description"]="KHMER LETTER BA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1794, -- ប
+ category="lo",
+ description="KHMER LETTER BA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1794,
},
[0x1795]={
- ["category"]="lo",
- ["description"]="KHMER LETTER PHA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1795, -- ផ
+ category="lo",
+ description="KHMER LETTER PHA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1795,
},
[0x1796]={
- ["category"]="lo",
- ["description"]="KHMER LETTER PO",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1796, -- ព
+ category="lo",
+ description="KHMER LETTER PO",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1796,
},
[0x1797]={
- ["category"]="lo",
- ["description"]="KHMER LETTER PHO",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1797, -- ភ
+ category="lo",
+ description="KHMER LETTER PHO",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1797,
},
[0x1798]={
- ["category"]="lo",
- ["description"]="KHMER LETTER MO",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1798, -- ម
+ category="lo",
+ description="KHMER LETTER MO",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1798,
},
[0x1799]={
- ["category"]="lo",
- ["description"]="KHMER LETTER YO",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1799, -- យ
+ category="lo",
+ description="KHMER LETTER YO",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1799,
},
[0x179A]={
- ["category"]="lo",
- ["description"]="KHMER LETTER RO",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x179A, -- រ
+ category="lo",
+ description="KHMER LETTER RO",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x179A,
},
[0x179B]={
- ["category"]="lo",
- ["description"]="KHMER LETTER LO",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x179B, -- ល
+ category="lo",
+ description="KHMER LETTER LO",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x179B,
},
[0x179C]={
- ["category"]="lo",
- ["description"]="KHMER LETTER VO",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x179C, -- វ
+ category="lo",
+ description="KHMER LETTER VO",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x179C,
},
[0x179D]={
- ["category"]="lo",
- ["description"]="KHMER LETTER SHA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x179D, -- ឝ
+ category="lo",
+ description="KHMER LETTER SHA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x179D,
},
[0x179E]={
- ["category"]="lo",
- ["description"]="KHMER LETTER SSO",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x179E, -- ឞ
+ category="lo",
+ description="KHMER LETTER SSO",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x179E,
},
[0x179F]={
- ["category"]="lo",
- ["description"]="KHMER LETTER SA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x179F, -- ស
+ category="lo",
+ description="KHMER LETTER SA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x179F,
},
[0x17A0]={
- ["category"]="lo",
- ["description"]="KHMER LETTER HA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x17A0, -- ហ
+ category="lo",
+ description="KHMER LETTER HA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x17A0,
},
[0x17A1]={
- ["category"]="lo",
- ["description"]="KHMER LETTER LA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x17A1, -- ឡ
+ category="lo",
+ description="KHMER LETTER LA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x17A1,
},
[0x17A2]={
- ["category"]="lo",
- ["description"]="KHMER LETTER QA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x17A2, -- អ
+ category="lo",
+ description="KHMER LETTER QA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x17A2,
},
[0x17A3]={
- ["category"]="lo",
- ["description"]="KHMER INDEPENDENT VOWEL QAQ",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x17A3, -- ឣ
+ category="lo",
+ description="KHMER INDEPENDENT VOWEL QAQ",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x17A3,
},
[0x17A4]={
- ["category"]="lo",
- ["description"]="KHMER INDEPENDENT VOWEL QAA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x17A4, -- ឤ
+ category="lo",
+ description="KHMER INDEPENDENT VOWEL QAA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x17A4,
},
[0x17A5]={
- ["category"]="lo",
- ["description"]="KHMER INDEPENDENT VOWEL QI",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x17A5, -- ឥ
+ category="lo",
+ description="KHMER INDEPENDENT VOWEL QI",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x17A5,
},
[0x17A6]={
- ["category"]="lo",
- ["description"]="KHMER INDEPENDENT VOWEL QII",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x17A6, -- ឦ
+ category="lo",
+ description="KHMER INDEPENDENT VOWEL QII",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x17A6,
},
[0x17A7]={
- ["category"]="lo",
- ["description"]="KHMER INDEPENDENT VOWEL QU",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x17A7, -- ឧ
+ category="lo",
+ description="KHMER INDEPENDENT VOWEL QU",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x17A7,
},
[0x17A8]={
- ["category"]="lo",
- ["description"]="KHMER INDEPENDENT VOWEL QUK",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x17A8, -- ឨ
+ category="lo",
+ description="KHMER INDEPENDENT VOWEL QUK",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x17A8,
},
[0x17A9]={
- ["category"]="lo",
- ["description"]="KHMER INDEPENDENT VOWEL QUU",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x17A9, -- ឩ
+ category="lo",
+ description="KHMER INDEPENDENT VOWEL QUU",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x17A9,
},
[0x17AA]={
- ["category"]="lo",
- ["description"]="KHMER INDEPENDENT VOWEL QUUV",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x17AA, -- ឪ
+ category="lo",
+ description="KHMER INDEPENDENT VOWEL QUUV",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x17AA,
},
[0x17AB]={
- ["category"]="lo",
- ["description"]="KHMER INDEPENDENT VOWEL RY",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x17AB, -- ឫ
+ category="lo",
+ description="KHMER INDEPENDENT VOWEL RY",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x17AB,
},
[0x17AC]={
- ["category"]="lo",
- ["description"]="KHMER INDEPENDENT VOWEL RYY",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x17AC, -- ឬ
+ category="lo",
+ description="KHMER INDEPENDENT VOWEL RYY",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x17AC,
},
[0x17AD]={
- ["category"]="lo",
- ["description"]="KHMER INDEPENDENT VOWEL LY",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x17AD, -- ឭ
+ category="lo",
+ description="KHMER INDEPENDENT VOWEL LY",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x17AD,
},
[0x17AE]={
- ["category"]="lo",
- ["description"]="KHMER INDEPENDENT VOWEL LYY",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x17AE, -- ឮ
+ category="lo",
+ description="KHMER INDEPENDENT VOWEL LYY",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x17AE,
},
[0x17AF]={
- ["category"]="lo",
- ["description"]="KHMER INDEPENDENT VOWEL QE",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x17AF, -- ឯ
+ category="lo",
+ description="KHMER INDEPENDENT VOWEL QE",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x17AF,
},
[0x17B0]={
- ["category"]="lo",
- ["description"]="KHMER INDEPENDENT VOWEL QAI",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x17B0, -- ឰ
+ category="lo",
+ description="KHMER INDEPENDENT VOWEL QAI",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x17B0,
},
[0x17B1]={
- ["category"]="lo",
- ["description"]="KHMER INDEPENDENT VOWEL QOO TYPE ONE",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x17B1, -- ឱ
+ category="lo",
+ description="KHMER INDEPENDENT VOWEL QOO TYPE ONE",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x17B1,
},
[0x17B2]={
- ["category"]="lo",
- ["description"]="KHMER INDEPENDENT VOWEL QOO TYPE TWO",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x17B2, -- ឲ
+ category="lo",
+ description="KHMER INDEPENDENT VOWEL QOO TYPE TWO",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x17B2,
},
[0x17B3]={
- ["category"]="lo",
- ["description"]="KHMER INDEPENDENT VOWEL QAU",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x17B3, -- ឳ
+ category="lo",
+ description="KHMER INDEPENDENT VOWEL QAU",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x17B3,
},
[0x17B4]={
- ["category"]="cf",
- ["description"]="KHMER VOWEL INHERENT AQ",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x17B4, -- ឴
+ category="cf",
+ description="KHMER VOWEL INHERENT AQ",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x17B4,
},
[0x17B5]={
- ["category"]="cf",
- ["description"]="KHMER VOWEL INHERENT AA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x17B5, -- ឵
+ category="cf",
+ description="KHMER VOWEL INHERENT AA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x17B5,
},
[0x17B6]={
- ["category"]="mc",
- ["description"]="KHMER VOWEL SIGN AA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x17B6, -- ា
+ category="mc",
+ description="KHMER VOWEL SIGN AA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x17B6,
},
[0x17B7]={
- ["category"]="mn",
- ["description"]="KHMER VOWEL SIGN I",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x17B7, -- ិ
+ category="mn",
+ description="KHMER VOWEL SIGN I",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x17B7,
},
[0x17B8]={
- ["category"]="mn",
- ["description"]="KHMER VOWEL SIGN II",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x17B8, -- ី
+ category="mn",
+ description="KHMER VOWEL SIGN II",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x17B8,
},
[0x17B9]={
- ["category"]="mn",
- ["description"]="KHMER VOWEL SIGN Y",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x17B9, -- ឹ
+ category="mn",
+ description="KHMER VOWEL SIGN Y",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x17B9,
},
[0x17BA]={
- ["category"]="mn",
- ["description"]="KHMER VOWEL SIGN YY",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x17BA, -- ឺ
+ category="mn",
+ description="KHMER VOWEL SIGN YY",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x17BA,
},
[0x17BB]={
- ["category"]="mn",
- ["description"]="KHMER VOWEL SIGN U",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x17BB, -- ុ
+ category="mn",
+ description="KHMER VOWEL SIGN U",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x17BB,
},
[0x17BC]={
- ["category"]="mn",
- ["description"]="KHMER VOWEL SIGN UU",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x17BC, -- ូ
+ category="mn",
+ description="KHMER VOWEL SIGN UU",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x17BC,
},
[0x17BD]={
- ["category"]="mn",
- ["description"]="KHMER VOWEL SIGN UA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x17BD, -- ួ
+ category="mn",
+ description="KHMER VOWEL SIGN UA",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x17BD,
},
[0x17BE]={
- ["category"]="mc",
- ["description"]="KHMER VOWEL SIGN OE",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x17BE, -- ើ
+ category="mc",
+ description="KHMER VOWEL SIGN OE",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x17BE,
},
[0x17BF]={
- ["category"]="mc",
- ["description"]="KHMER VOWEL SIGN YA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x17BF, -- ឿ
+ category="mc",
+ description="KHMER VOWEL SIGN YA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x17BF,
},
[0x17C0]={
- ["category"]="mc",
- ["description"]="KHMER VOWEL SIGN IE",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x17C0, -- ៀ
+ category="mc",
+ description="KHMER VOWEL SIGN IE",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x17C0,
},
[0x17C1]={
- ["category"]="mc",
- ["description"]="KHMER VOWEL SIGN E",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x17C1, -- េ
+ category="mc",
+ description="KHMER VOWEL SIGN E",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x17C1,
},
[0x17C2]={
- ["category"]="mc",
- ["description"]="KHMER VOWEL SIGN AE",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x17C2, -- ែ
+ category="mc",
+ description="KHMER VOWEL SIGN AE",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x17C2,
},
[0x17C3]={
- ["category"]="mc",
- ["description"]="KHMER VOWEL SIGN AI",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x17C3, -- ៃ
+ category="mc",
+ description="KHMER VOWEL SIGN AI",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x17C3,
},
[0x17C4]={
- ["category"]="mc",
- ["description"]="KHMER VOWEL SIGN OO",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x17C4, -- ោ
+ category="mc",
+ description="KHMER VOWEL SIGN OO",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x17C4,
},
[0x17C5]={
- ["category"]="mc",
- ["description"]="KHMER VOWEL SIGN AU",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x17C5, -- ៅ
+ category="mc",
+ description="KHMER VOWEL SIGN AU",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x17C5,
},
[0x17C6]={
- ["category"]="mn",
- ["description"]="KHMER SIGN NIKAHIT",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x17C6, -- ំ
+ category="mn",
+ description="KHMER SIGN NIKAHIT",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x17C6,
},
[0x17C7]={
- ["category"]="mc",
- ["description"]="KHMER SIGN REAHMUK",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x17C7, -- ះ
+ category="mc",
+ description="KHMER SIGN REAHMUK",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x17C7,
},
[0x17C8]={
- ["category"]="mc",
- ["description"]="KHMER SIGN YUUKALEAPINTU",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x17C8, -- ៈ
+ category="mc",
+ description="KHMER SIGN YUUKALEAPINTU",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x17C8,
},
[0x17C9]={
- ["category"]="mn",
- ["description"]="KHMER SIGN MUUSIKATOAN",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x17C9, -- ៉
+ category="mn",
+ description="KHMER SIGN MUUSIKATOAN",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x17C9,
},
[0x17CA]={
- ["category"]="mn",
- ["description"]="KHMER SIGN TRIISAP",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x17CA, -- ៊
+ category="mn",
+ description="KHMER SIGN TRIISAP",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x17CA,
},
[0x17CB]={
- ["category"]="mn",
- ["description"]="KHMER SIGN BANTOC",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x17CB, -- ់
+ category="mn",
+ description="KHMER SIGN BANTOC",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x17CB,
},
[0x17CC]={
- ["category"]="mn",
- ["description"]="KHMER SIGN ROBAT",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x17CC, -- ៌
+ category="mn",
+ description="KHMER SIGN ROBAT",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x17CC,
},
[0x17CD]={
- ["category"]="mn",
- ["description"]="KHMER SIGN TOANDAKHIAT",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x17CD, -- ៍
+ category="mn",
+ description="KHMER SIGN TOANDAKHIAT",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x17CD,
},
[0x17CE]={
- ["category"]="mn",
- ["description"]="KHMER SIGN KAKABAT",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x17CE, -- ៎
+ category="mn",
+ description="KHMER SIGN KAKABAT",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x17CE,
},
[0x17CF]={
- ["category"]="mn",
- ["description"]="KHMER SIGN AHSDA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x17CF, -- ៏
+ category="mn",
+ description="KHMER SIGN AHSDA",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x17CF,
},
[0x17D0]={
- ["category"]="mn",
- ["description"]="KHMER SIGN SAMYOK SANNYA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x17D0, -- ័
+ category="mn",
+ description="KHMER SIGN SAMYOK SANNYA",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x17D0,
},
[0x17D1]={
- ["category"]="mn",
- ["description"]="KHMER SIGN VIRIAM",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x17D1, -- ៑
+ category="mn",
+ description="KHMER SIGN VIRIAM",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x17D1,
},
[0x17D2]={
- ["category"]="mn",
- ["description"]="KHMER SIGN COENG",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x17D2, -- ្
+ category="mn",
+ description="KHMER SIGN COENG",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x17D2,
},
[0x17D3]={
- ["category"]="mn",
- ["description"]="KHMER SIGN BATHAMASAT",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x17D3, -- ៓
+ category="mn",
+ description="KHMER SIGN BATHAMASAT",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x17D3,
},
[0x17D4]={
- ["category"]="po",
- ["description"]="KHMER SIGN KHAN",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x17D4, -- ។
+ category="po",
+ description="KHMER SIGN KHAN",
+ direction="l",
+ linebreak="ba",
+ unicodeslot=0x17D4,
},
[0x17D5]={
- ["category"]="po",
- ["description"]="KHMER SIGN BARIYOOSAN",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x17D5, -- ៕
+ category="po",
+ description="KHMER SIGN BARIYOOSAN",
+ direction="l",
+ linebreak="ba",
+ unicodeslot=0x17D5,
},
[0x17D6]={
- ["category"]="po",
- ["description"]="KHMER SIGN CAMNUC PII KUUH",
- ["linebreak"]="ns",
- ["unicodeslot"]=0x17D6, -- ៖
+ category="po",
+ description="KHMER SIGN CAMNUC PII KUUH",
+ direction="l",
+ linebreak="ns",
+ unicodeslot=0x17D6,
},
[0x17D7]={
- ["category"]="lm",
- ["description"]="KHMER SIGN LEK TOO",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x17D7, -- ៗ
+ category="lm",
+ description="KHMER SIGN LEK TOO",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x17D7,
},
[0x17D8]={
- ["category"]="po",
- ["description"]="KHMER SIGN BEYYAL",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x17D8, -- ៘
+ category="po",
+ description="KHMER SIGN BEYYAL",
+ direction="l",
+ linebreak="ba",
+ unicodeslot=0x17D8,
},
[0x17D9]={
- ["category"]="po",
- ["description"]="KHMER SIGN PHNAEK MUAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x17D9, -- ៙
+ category="po",
+ description="KHMER SIGN PHNAEK MUAN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x17D9,
},
[0x17DA]={
- ["category"]="po",
- ["description"]="KHMER SIGN KOOMUUT",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x17DA, -- ៚
+ category="po",
+ description="KHMER SIGN KOOMUUT",
+ direction="l",
+ linebreak="ba",
+ unicodeslot=0x17DA,
},
[0x17DB]={
- ["category"]="sc",
- ["description"]="KHMER CURRENCY SYMBOL RIEL",
- ["linebreak"]="pr",
- ["unicodeslot"]=0x17DB, -- ៛
+ category="sc",
+ description="KHMER CURRENCY SYMBOL RIEL",
+ direction="et",
+ linebreak="pr",
+ unicodeslot=0x17DB,
},
[0x17DC]={
- ["category"]="lo",
- ["description"]="KHMER SIGN AVAKRAHASANYA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x17DC, -- ៜ
+ category="lo",
+ description="KHMER SIGN AVAKRAHASANYA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x17DC,
},
[0x17DD]={
- ["category"]="mn",
- ["description"]="KHMER SIGN ATTHACAN",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x17DD, -- ៝
+ category="mn",
+ description="KHMER SIGN ATTHACAN",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0x17DD,
},
[0x17E0]={
- ["category"]="nd",
- ["description"]="KHMER DIGIT ZERO",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x17E0, -- ០
+ category="nd",
+ description="KHMER DIGIT ZERO",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x17E0,
},
[0x17E1]={
- ["category"]="nd",
- ["description"]="KHMER DIGIT ONE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x17E1, -- ១
+ category="nd",
+ description="KHMER DIGIT ONE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x17E1,
},
[0x17E2]={
- ["category"]="nd",
- ["description"]="KHMER DIGIT TWO",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x17E2, -- ២
+ category="nd",
+ description="KHMER DIGIT TWO",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x17E2,
},
[0x17E3]={
- ["category"]="nd",
- ["description"]="KHMER DIGIT THREE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x17E3, -- ៣
+ category="nd",
+ description="KHMER DIGIT THREE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x17E3,
},
[0x17E4]={
- ["category"]="nd",
- ["description"]="KHMER DIGIT FOUR",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x17E4, -- ៤
+ category="nd",
+ description="KHMER DIGIT FOUR",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x17E4,
},
[0x17E5]={
- ["category"]="nd",
- ["description"]="KHMER DIGIT FIVE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x17E5, -- ៥
+ category="nd",
+ description="KHMER DIGIT FIVE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x17E5,
},
[0x17E6]={
- ["category"]="nd",
- ["description"]="KHMER DIGIT SIX",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x17E6, -- ៦
+ category="nd",
+ description="KHMER DIGIT SIX",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x17E6,
},
[0x17E7]={
- ["category"]="nd",
- ["description"]="KHMER DIGIT SEVEN",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x17E7, -- ៧
+ category="nd",
+ description="KHMER DIGIT SEVEN",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x17E7,
},
[0x17E8]={
- ["category"]="nd",
- ["description"]="KHMER DIGIT EIGHT",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x17E8, -- ៨
+ category="nd",
+ description="KHMER DIGIT EIGHT",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x17E8,
},
[0x17E9]={
- ["category"]="nd",
- ["description"]="KHMER DIGIT NINE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x17E9, -- ៩
+ category="nd",
+ description="KHMER DIGIT NINE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x17E9,
},
[0x17F0]={
- ["category"]="no",
- ["description"]="KHMER SYMBOL LEK ATTAK SON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x17F0, -- ៰
+ category="no",
+ description="KHMER SYMBOL LEK ATTAK SON",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x17F0,
},
[0x17F1]={
- ["category"]="no",
- ["description"]="KHMER SYMBOL LEK ATTAK MUOY",
- ["linebreak"]="al",
- ["unicodeslot"]=0x17F1, -- ៱
+ category="no",
+ description="KHMER SYMBOL LEK ATTAK MUOY",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x17F1,
},
[0x17F2]={
- ["category"]="no",
- ["description"]="KHMER SYMBOL LEK ATTAK PII",
- ["linebreak"]="al",
- ["unicodeslot"]=0x17F2, -- ៲
+ category="no",
+ description="KHMER SYMBOL LEK ATTAK PII",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x17F2,
},
[0x17F3]={
- ["category"]="no",
- ["description"]="KHMER SYMBOL LEK ATTAK BEI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x17F3, -- ៳
+ category="no",
+ description="KHMER SYMBOL LEK ATTAK BEI",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x17F3,
},
[0x17F4]={
- ["category"]="no",
- ["description"]="KHMER SYMBOL LEK ATTAK BUON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x17F4, -- ៴
+ category="no",
+ description="KHMER SYMBOL LEK ATTAK BUON",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x17F4,
},
[0x17F5]={
- ["category"]="no",
- ["description"]="KHMER SYMBOL LEK ATTAK PRAM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x17F5, -- ៵
+ category="no",
+ description="KHMER SYMBOL LEK ATTAK PRAM",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x17F5,
},
[0x17F6]={
- ["category"]="no",
- ["description"]="KHMER SYMBOL LEK ATTAK PRAM-MUOY",
- ["linebreak"]="al",
- ["unicodeslot"]=0x17F6, -- ៶
+ category="no",
+ description="KHMER SYMBOL LEK ATTAK PRAM-MUOY",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x17F6,
},
[0x17F7]={
- ["category"]="no",
- ["description"]="KHMER SYMBOL LEK ATTAK PRAM-PII",
- ["linebreak"]="al",
- ["unicodeslot"]=0x17F7, -- ៷
+ category="no",
+ description="KHMER SYMBOL LEK ATTAK PRAM-PII",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x17F7,
},
[0x17F8]={
- ["category"]="no",
- ["description"]="KHMER SYMBOL LEK ATTAK PRAM-BEI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x17F8, -- ៸
+ category="no",
+ description="KHMER SYMBOL LEK ATTAK PRAM-BEI",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x17F8,
},
[0x17F9]={
- ["category"]="no",
- ["description"]="KHMER SYMBOL LEK ATTAK PRAM-BUON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x17F9, -- ៹
+ category="no",
+ description="KHMER SYMBOL LEK ATTAK PRAM-BUON",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x17F9,
},
[0x1800]={
- ["category"]="po",
- ["description"]="MONGOLIAN BIRGA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1800, -- ᠀
+ category="po",
+ description="MONGOLIAN BIRGA",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1800,
},
[0x1801]={
- ["category"]="po",
- ["description"]="MONGOLIAN ELLIPSIS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1801, -- ᠁
+ category="po",
+ description="MONGOLIAN ELLIPSIS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1801,
},
[0x1802]={
- ["category"]="po",
- ["description"]="MONGOLIAN COMMA",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x1802, -- ᠂
+ category="po",
+ description="MONGOLIAN COMMA",
+ direction="on",
+ linebreak="ba",
+ unicodeslot=0x1802,
},
[0x1803]={
- ["category"]="po",
- ["description"]="MONGOLIAN FULL STOP",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x1803, -- ᠃
+ category="po",
+ description="MONGOLIAN FULL STOP",
+ direction="on",
+ linebreak="ba",
+ unicodeslot=0x1803,
},
[0x1804]={
- ["category"]="po",
- ["description"]="MONGOLIAN COLON",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x1804, -- ᠄
+ category="po",
+ description="MONGOLIAN COLON",
+ direction="on",
+ linebreak="ba",
+ unicodeslot=0x1804,
},
[0x1805]={
- ["category"]="po",
- ["description"]="MONGOLIAN FOUR DOTS",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x1805, -- ᠅
+ category="po",
+ description="MONGOLIAN FOUR DOTS",
+ direction="on",
+ linebreak="ba",
+ unicodeslot=0x1805,
},
[0x1806]={
- ["category"]="pd",
- ["description"]="MONGOLIAN TODO SOFT HYPHEN",
- ["linebreak"]="bb",
- ["unicodeslot"]=0x1806, -- ᠆
+ category="pd",
+ description="MONGOLIAN TODO SOFT HYPHEN",
+ direction="on",
+ linebreak="bb",
+ unicodeslot=0x1806,
},
[0x1807]={
- ["category"]="po",
- ["description"]="MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1807, -- ᠇
+ category="po",
+ description="MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1807,
},
[0x1808]={
- ["category"]="po",
- ["description"]="MONGOLIAN MANCHU COMMA",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x1808, -- ᠈
+ category="po",
+ description="MONGOLIAN MANCHU COMMA",
+ direction="on",
+ linebreak="ba",
+ unicodeslot=0x1808,
},
[0x1809]={
- ["category"]="po",
- ["description"]="MONGOLIAN MANCHU FULL STOP",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x1809, -- ᠉
+ category="po",
+ description="MONGOLIAN MANCHU FULL STOP",
+ direction="on",
+ linebreak="ba",
+ unicodeslot=0x1809,
},
[0x180A]={
- ["category"]="po",
- ["description"]="MONGOLIAN NIRUGU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x180A, -- ᠊
+ category="po",
+ description="MONGOLIAN NIRUGU",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x180A,
},
[0x180B]={
- ["category"]="mn",
- ["description"]="MONGOLIAN FREE VARIATION SELECTOR ONE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x180B, -- ᠋
+ category="mn",
+ description="MONGOLIAN FREE VARIATION SELECTOR ONE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x180B,
},
[0x180C]={
- ["category"]="mn",
- ["description"]="MONGOLIAN FREE VARIATION SELECTOR TWO",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x180C, -- ᠌
+ category="mn",
+ description="MONGOLIAN FREE VARIATION SELECTOR TWO",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x180C,
},
[0x180D]={
- ["category"]="mn",
- ["description"]="MONGOLIAN FREE VARIATION SELECTOR THREE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x180D, -- ᠍
+ category="mn",
+ description="MONGOLIAN FREE VARIATION SELECTOR THREE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x180D,
},
[0x180E]={
- ["category"]="zs",
- ["description"]="MONGOLIAN VOWEL SEPARATOR",
- ["linebreak"]="gl",
- ["unicodeslot"]=0x180E, -- ᠎
+ category="zs",
+ description="MONGOLIAN VOWEL SEPARATOR",
+ direction="ws",
+ linebreak="gl",
+ unicodeslot=0x180E,
},
[0x1810]={
- ["category"]="nd",
- ["description"]="MONGOLIAN DIGIT ZERO",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x1810, -- ᠐
+ category="nd",
+ description="MONGOLIAN DIGIT ZERO",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x1810,
},
[0x1811]={
- ["category"]="nd",
- ["description"]="MONGOLIAN DIGIT ONE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x1811, -- ᠑
+ category="nd",
+ description="MONGOLIAN DIGIT ONE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x1811,
},
[0x1812]={
- ["category"]="nd",
- ["description"]="MONGOLIAN DIGIT TWO",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x1812, -- ᠒
+ category="nd",
+ description="MONGOLIAN DIGIT TWO",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x1812,
},
[0x1813]={
- ["category"]="nd",
- ["description"]="MONGOLIAN DIGIT THREE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x1813, -- ᠓
+ category="nd",
+ description="MONGOLIAN DIGIT THREE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x1813,
},
[0x1814]={
- ["category"]="nd",
- ["description"]="MONGOLIAN DIGIT FOUR",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x1814, -- ᠔
+ category="nd",
+ description="MONGOLIAN DIGIT FOUR",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x1814,
},
[0x1815]={
- ["category"]="nd",
- ["description"]="MONGOLIAN DIGIT FIVE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x1815, -- ᠕
+ category="nd",
+ description="MONGOLIAN DIGIT FIVE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x1815,
},
[0x1816]={
- ["category"]="nd",
- ["description"]="MONGOLIAN DIGIT SIX",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x1816, -- ᠖
+ category="nd",
+ description="MONGOLIAN DIGIT SIX",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x1816,
},
[0x1817]={
- ["category"]="nd",
- ["description"]="MONGOLIAN DIGIT SEVEN",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x1817, -- ᠗
+ category="nd",
+ description="MONGOLIAN DIGIT SEVEN",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x1817,
},
[0x1818]={
- ["category"]="nd",
- ["description"]="MONGOLIAN DIGIT EIGHT",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x1818, -- ᠘
+ category="nd",
+ description="MONGOLIAN DIGIT EIGHT",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x1818,
},
[0x1819]={
- ["category"]="nd",
- ["description"]="MONGOLIAN DIGIT NINE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x1819, -- ᠙
+ category="nd",
+ description="MONGOLIAN DIGIT NINE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x1819,
},
[0x1820]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1820, -- ᠠ
+ category="lo",
+ description="MONGOLIAN LETTER A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1820,
},
[0x1821]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1821, -- ᠡ
+ category="lo",
+ description="MONGOLIAN LETTER E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1821,
},
[0x1822]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER I",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1822, -- ᠢ
+ category="lo",
+ description="MONGOLIAN LETTER I",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1822,
},
[0x1823]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER O",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1823, -- ᠣ
+ category="lo",
+ description="MONGOLIAN LETTER O",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1823,
},
[0x1824]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER U",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1824, -- ᠤ
+ category="lo",
+ description="MONGOLIAN LETTER U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1824,
},
[0x1825]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER OE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1825, -- ᠥ
+ category="lo",
+ description="MONGOLIAN LETTER OE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1825,
},
[0x1826]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER UE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1826, -- ᠦ
+ category="lo",
+ description="MONGOLIAN LETTER UE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1826,
},
[0x1827]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER EE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1827, -- ᠧ
+ category="lo",
+ description="MONGOLIAN LETTER EE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1827,
},
[0x1828]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER NA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1828, -- ᠨ
+ category="lo",
+ description="MONGOLIAN LETTER NA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1828,
},
[0x1829]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER ANG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1829, -- ᠩ
+ category="lo",
+ description="MONGOLIAN LETTER ANG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1829,
},
[0x182A]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER BA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x182A, -- ᠪ
+ category="lo",
+ description="MONGOLIAN LETTER BA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x182A,
},
[0x182B]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER PA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x182B, -- ᠫ
+ category="lo",
+ description="MONGOLIAN LETTER PA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x182B,
},
[0x182C]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER QA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x182C, -- ᠬ
+ category="lo",
+ description="MONGOLIAN LETTER QA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x182C,
},
[0x182D]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER GA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x182D, -- ᠭ
+ category="lo",
+ description="MONGOLIAN LETTER GA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x182D,
},
[0x182E]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER MA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x182E, -- ᠮ
+ category="lo",
+ description="MONGOLIAN LETTER MA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x182E,
},
[0x182F]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER LA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x182F, -- ᠯ
+ category="lo",
+ description="MONGOLIAN LETTER LA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x182F,
},
[0x1830]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER SA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1830, -- ᠰ
+ category="lo",
+ description="MONGOLIAN LETTER SA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1830,
},
[0x1831]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER SHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1831, -- ᠱ
+ category="lo",
+ description="MONGOLIAN LETTER SHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1831,
},
[0x1832]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER TA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1832, -- ᠲ
+ category="lo",
+ description="MONGOLIAN LETTER TA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1832,
},
[0x1833]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER DA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1833, -- ᠳ
+ category="lo",
+ description="MONGOLIAN LETTER DA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1833,
},
[0x1834]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER CHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1834, -- ᠴ
+ category="lo",
+ description="MONGOLIAN LETTER CHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1834,
},
[0x1835]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER JA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1835, -- ᠵ
+ category="lo",
+ description="MONGOLIAN LETTER JA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1835,
},
[0x1836]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER YA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1836, -- ᠶ
+ category="lo",
+ description="MONGOLIAN LETTER YA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1836,
},
[0x1837]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER RA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1837, -- ᠷ
+ category="lo",
+ description="MONGOLIAN LETTER RA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1837,
},
[0x1838]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER WA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1838, -- ᠸ
+ category="lo",
+ description="MONGOLIAN LETTER WA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1838,
},
[0x1839]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER FA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1839, -- ᠹ
+ category="lo",
+ description="MONGOLIAN LETTER FA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1839,
},
[0x183A]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER KA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x183A, -- ᠺ
+ category="lo",
+ description="MONGOLIAN LETTER KA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x183A,
},
[0x183B]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER KHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x183B, -- ᠻ
+ category="lo",
+ description="MONGOLIAN LETTER KHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x183B,
},
[0x183C]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER TSA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x183C, -- ᠼ
+ category="lo",
+ description="MONGOLIAN LETTER TSA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x183C,
},
[0x183D]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER ZA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x183D, -- ᠽ
+ category="lo",
+ description="MONGOLIAN LETTER ZA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x183D,
},
[0x183E]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER HAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x183E, -- ᠾ
+ category="lo",
+ description="MONGOLIAN LETTER HAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x183E,
},
[0x183F]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER ZRA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x183F, -- ᠿ
+ category="lo",
+ description="MONGOLIAN LETTER ZRA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x183F,
},
[0x1840]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER LHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1840, -- ᡀ
+ category="lo",
+ description="MONGOLIAN LETTER LHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1840,
},
[0x1841]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER ZHI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1841, -- ᡁ
+ category="lo",
+ description="MONGOLIAN LETTER ZHI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1841,
},
[0x1842]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER CHI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1842, -- ᡂ
+ category="lo",
+ description="MONGOLIAN LETTER CHI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1842,
},
[0x1843]={
- ["category"]="lm",
- ["description"]="MONGOLIAN LETTER TODO LONG VOWEL SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1843, -- ᡃ
+ category="lm",
+ description="MONGOLIAN LETTER TODO LONG VOWEL SIGN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1843,
},
[0x1844]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER TODO E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1844, -- ᡄ
+ category="lo",
+ description="MONGOLIAN LETTER TODO E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1844,
},
[0x1845]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER TODO I",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1845, -- ᡅ
+ category="lo",
+ description="MONGOLIAN LETTER TODO I",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1845,
},
[0x1846]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER TODO O",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1846, -- ᡆ
+ category="lo",
+ description="MONGOLIAN LETTER TODO O",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1846,
},
[0x1847]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER TODO U",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1847, -- ᡇ
+ category="lo",
+ description="MONGOLIAN LETTER TODO U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1847,
},
[0x1848]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER TODO OE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1848, -- ᡈ
+ category="lo",
+ description="MONGOLIAN LETTER TODO OE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1848,
},
[0x1849]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER TODO UE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1849, -- ᡉ
+ category="lo",
+ description="MONGOLIAN LETTER TODO UE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1849,
},
[0x184A]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER TODO ANG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x184A, -- ᡊ
+ category="lo",
+ description="MONGOLIAN LETTER TODO ANG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x184A,
},
[0x184B]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER TODO BA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x184B, -- ᡋ
+ category="lo",
+ description="MONGOLIAN LETTER TODO BA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x184B,
},
[0x184C]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER TODO PA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x184C, -- ᡌ
+ category="lo",
+ description="MONGOLIAN LETTER TODO PA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x184C,
},
[0x184D]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER TODO QA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x184D, -- ᡍ
+ category="lo",
+ description="MONGOLIAN LETTER TODO QA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x184D,
},
[0x184E]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER TODO GA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x184E, -- ᡎ
+ category="lo",
+ description="MONGOLIAN LETTER TODO GA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x184E,
},
[0x184F]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER TODO MA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x184F, -- ᡏ
+ category="lo",
+ description="MONGOLIAN LETTER TODO MA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x184F,
},
[0x1850]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER TODO TA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1850, -- ᡐ
+ category="lo",
+ description="MONGOLIAN LETTER TODO TA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1850,
},
[0x1851]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER TODO DA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1851, -- ᡑ
+ category="lo",
+ description="MONGOLIAN LETTER TODO DA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1851,
},
[0x1852]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER TODO CHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1852, -- ᡒ
+ category="lo",
+ description="MONGOLIAN LETTER TODO CHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1852,
},
[0x1853]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER TODO JA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1853, -- ᡓ
+ category="lo",
+ description="MONGOLIAN LETTER TODO JA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1853,
},
[0x1854]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER TODO TSA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1854, -- ᡔ
+ category="lo",
+ description="MONGOLIAN LETTER TODO TSA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1854,
},
[0x1855]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER TODO YA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1855, -- ᡕ
+ category="lo",
+ description="MONGOLIAN LETTER TODO YA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1855,
},
[0x1856]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER TODO WA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1856, -- ᡖ
+ category="lo",
+ description="MONGOLIAN LETTER TODO WA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1856,
},
[0x1857]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER TODO KA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1857, -- ᡗ
+ category="lo",
+ description="MONGOLIAN LETTER TODO KA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1857,
},
[0x1858]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER TODO GAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1858, -- ᡘ
+ category="lo",
+ description="MONGOLIAN LETTER TODO GAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1858,
},
[0x1859]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER TODO HAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1859, -- ᡙ
+ category="lo",
+ description="MONGOLIAN LETTER TODO HAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1859,
},
[0x185A]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER TODO JIA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x185A, -- ᡚ
+ category="lo",
+ description="MONGOLIAN LETTER TODO JIA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x185A,
},
[0x185B]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER TODO NIA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x185B, -- ᡛ
+ category="lo",
+ description="MONGOLIAN LETTER TODO NIA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x185B,
},
[0x185C]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER TODO DZA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x185C, -- ᡜ
+ category="lo",
+ description="MONGOLIAN LETTER TODO DZA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x185C,
},
[0x185D]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER SIBE E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x185D, -- ᡝ
+ category="lo",
+ description="MONGOLIAN LETTER SIBE E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x185D,
},
[0x185E]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER SIBE I",
- ["linebreak"]="al",
- ["unicodeslot"]=0x185E, -- ᡞ
+ category="lo",
+ description="MONGOLIAN LETTER SIBE I",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x185E,
},
[0x185F]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER SIBE IY",
- ["linebreak"]="al",
- ["unicodeslot"]=0x185F, -- ᡟ
+ category="lo",
+ description="MONGOLIAN LETTER SIBE IY",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x185F,
},
[0x1860]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER SIBE UE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1860, -- ᡠ
+ category="lo",
+ description="MONGOLIAN LETTER SIBE UE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1860,
},
[0x1861]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER SIBE U",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1861, -- ᡡ
+ category="lo",
+ description="MONGOLIAN LETTER SIBE U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1861,
},
[0x1862]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER SIBE ANG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1862, -- ᡢ
+ category="lo",
+ description="MONGOLIAN LETTER SIBE ANG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1862,
},
[0x1863]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER SIBE KA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1863, -- ᡣ
+ category="lo",
+ description="MONGOLIAN LETTER SIBE KA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1863,
},
[0x1864]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER SIBE GA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1864, -- ᡤ
+ category="lo",
+ description="MONGOLIAN LETTER SIBE GA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1864,
},
[0x1865]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER SIBE HA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1865, -- ᡥ
+ category="lo",
+ description="MONGOLIAN LETTER SIBE HA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1865,
},
[0x1866]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER SIBE PA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1866, -- ᡦ
+ category="lo",
+ description="MONGOLIAN LETTER SIBE PA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1866,
},
[0x1867]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER SIBE SHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1867, -- ᡧ
+ category="lo",
+ description="MONGOLIAN LETTER SIBE SHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1867,
},
[0x1868]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER SIBE TA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1868, -- ᡨ
+ category="lo",
+ description="MONGOLIAN LETTER SIBE TA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1868,
},
[0x1869]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER SIBE DA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1869, -- ᡩ
+ category="lo",
+ description="MONGOLIAN LETTER SIBE DA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1869,
},
[0x186A]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER SIBE JA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x186A, -- ᡪ
+ category="lo",
+ description="MONGOLIAN LETTER SIBE JA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x186A,
},
[0x186B]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER SIBE FA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x186B, -- ᡫ
+ category="lo",
+ description="MONGOLIAN LETTER SIBE FA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x186B,
},
[0x186C]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER SIBE GAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x186C, -- ᡬ
+ category="lo",
+ description="MONGOLIAN LETTER SIBE GAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x186C,
},
[0x186D]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER SIBE HAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x186D, -- ᡭ
+ category="lo",
+ description="MONGOLIAN LETTER SIBE HAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x186D,
},
[0x186E]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER SIBE TSA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x186E, -- ᡮ
+ category="lo",
+ description="MONGOLIAN LETTER SIBE TSA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x186E,
},
[0x186F]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER SIBE ZA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x186F, -- ᡯ
+ category="lo",
+ description="MONGOLIAN LETTER SIBE ZA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x186F,
},
[0x1870]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER SIBE RAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1870, -- ᡰ
+ category="lo",
+ description="MONGOLIAN LETTER SIBE RAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1870,
},
[0x1871]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER SIBE CHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1871, -- ᡱ
+ category="lo",
+ description="MONGOLIAN LETTER SIBE CHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1871,
},
[0x1872]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER SIBE ZHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1872, -- ᡲ
+ category="lo",
+ description="MONGOLIAN LETTER SIBE ZHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1872,
},
[0x1873]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER MANCHU I",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1873, -- ᡳ
+ category="lo",
+ description="MONGOLIAN LETTER MANCHU I",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1873,
},
[0x1874]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER MANCHU KA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1874, -- ᡴ
+ category="lo",
+ description="MONGOLIAN LETTER MANCHU KA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1874,
},
[0x1875]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER MANCHU RA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1875, -- ᡵ
+ category="lo",
+ description="MONGOLIAN LETTER MANCHU RA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1875,
},
[0x1876]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER MANCHU FA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1876, -- ᡶ
+ category="lo",
+ description="MONGOLIAN LETTER MANCHU FA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1876,
},
[0x1877]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER MANCHU ZHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1877, -- ᡷ
+ category="lo",
+ description="MONGOLIAN LETTER MANCHU ZHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1877,
},
[0x1880]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER ALI GALI ANUSVARA ONE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1880, -- ᢀ
+ category="lo",
+ description="MONGOLIAN LETTER ALI GALI ANUSVARA ONE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1880,
},
[0x1881]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER ALI GALI VISARGA ONE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1881, -- ᢁ
+ category="lo",
+ description="MONGOLIAN LETTER ALI GALI VISARGA ONE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1881,
},
[0x1882]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER ALI GALI DAMARU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1882, -- ᢂ
+ category="lo",
+ description="MONGOLIAN LETTER ALI GALI DAMARU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1882,
},
[0x1883]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER ALI GALI UBADAMA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1883, -- ᢃ
+ category="lo",
+ description="MONGOLIAN LETTER ALI GALI UBADAMA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1883,
},
[0x1884]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER ALI GALI INVERTED UBADAMA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1884, -- ᢄ
+ category="lo",
+ description="MONGOLIAN LETTER ALI GALI INVERTED UBADAMA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1884,
},
[0x1885]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER ALI GALI BALUDA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1885, -- ᢅ
+ category="lo",
+ description="MONGOLIAN LETTER ALI GALI BALUDA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1885,
},
[0x1886]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER ALI GALI THREE BALUDA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1886, -- ᢆ
+ category="lo",
+ description="MONGOLIAN LETTER ALI GALI THREE BALUDA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1886,
},
[0x1887]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER ALI GALI A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1887, -- ᢇ
+ category="lo",
+ description="MONGOLIAN LETTER ALI GALI A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1887,
},
[0x1888]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER ALI GALI I",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1888, -- ᢈ
+ category="lo",
+ description="MONGOLIAN LETTER ALI GALI I",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1888,
},
[0x1889]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER ALI GALI KA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1889, -- ᢉ
+ category="lo",
+ description="MONGOLIAN LETTER ALI GALI KA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1889,
},
[0x188A]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER ALI GALI NGA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x188A, -- ᢊ
+ category="lo",
+ description="MONGOLIAN LETTER ALI GALI NGA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x188A,
},
[0x188B]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER ALI GALI CA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x188B, -- ᢋ
+ category="lo",
+ description="MONGOLIAN LETTER ALI GALI CA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x188B,
},
[0x188C]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER ALI GALI TTA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x188C, -- ᢌ
+ category="lo",
+ description="MONGOLIAN LETTER ALI GALI TTA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x188C,
},
[0x188D]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER ALI GALI TTHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x188D, -- ᢍ
+ category="lo",
+ description="MONGOLIAN LETTER ALI GALI TTHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x188D,
},
[0x188E]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER ALI GALI DDA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x188E, -- ᢎ
+ category="lo",
+ description="MONGOLIAN LETTER ALI GALI DDA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x188E,
},
[0x188F]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER ALI GALI NNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x188F, -- ᢏ
+ category="lo",
+ description="MONGOLIAN LETTER ALI GALI NNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x188F,
},
[0x1890]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER ALI GALI TA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1890, -- ᢐ
+ category="lo",
+ description="MONGOLIAN LETTER ALI GALI TA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1890,
},
[0x1891]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER ALI GALI DA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1891, -- ᢑ
+ category="lo",
+ description="MONGOLIAN LETTER ALI GALI DA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1891,
},
[0x1892]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER ALI GALI PA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1892, -- ᢒ
+ category="lo",
+ description="MONGOLIAN LETTER ALI GALI PA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1892,
},
[0x1893]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER ALI GALI PHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1893, -- ᢓ
+ category="lo",
+ description="MONGOLIAN LETTER ALI GALI PHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1893,
},
[0x1894]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER ALI GALI SSA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1894, -- ᢔ
+ category="lo",
+ description="MONGOLIAN LETTER ALI GALI SSA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1894,
},
[0x1895]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER ALI GALI ZHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1895, -- ᢕ
+ category="lo",
+ description="MONGOLIAN LETTER ALI GALI ZHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1895,
},
[0x1896]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER ALI GALI ZA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1896, -- ᢖ
+ category="lo",
+ description="MONGOLIAN LETTER ALI GALI ZA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1896,
},
[0x1897]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER ALI GALI AH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1897, -- ᢗ
+ category="lo",
+ description="MONGOLIAN LETTER ALI GALI AH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1897,
},
[0x1898]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER TODO ALI GALI TA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1898, -- ᢘ
+ category="lo",
+ description="MONGOLIAN LETTER TODO ALI GALI TA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1898,
},
[0x1899]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER TODO ALI GALI ZHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1899, -- ᢙ
+ category="lo",
+ description="MONGOLIAN LETTER TODO ALI GALI ZHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1899,
},
[0x189A]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER MANCHU ALI GALI GHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x189A, -- ᢚ
+ category="lo",
+ description="MONGOLIAN LETTER MANCHU ALI GALI GHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x189A,
},
[0x189B]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER MANCHU ALI GALI NGA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x189B, -- ᢛ
+ category="lo",
+ description="MONGOLIAN LETTER MANCHU ALI GALI NGA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x189B,
},
[0x189C]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER MANCHU ALI GALI CA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x189C, -- ᢜ
+ category="lo",
+ description="MONGOLIAN LETTER MANCHU ALI GALI CA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x189C,
},
[0x189D]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER MANCHU ALI GALI JHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x189D, -- ᢝ
+ category="lo",
+ description="MONGOLIAN LETTER MANCHU ALI GALI JHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x189D,
},
[0x189E]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER MANCHU ALI GALI TTA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x189E, -- ᢞ
+ category="lo",
+ description="MONGOLIAN LETTER MANCHU ALI GALI TTA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x189E,
},
[0x189F]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER MANCHU ALI GALI DDHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x189F, -- ᢟ
+ category="lo",
+ description="MONGOLIAN LETTER MANCHU ALI GALI DDHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x189F,
},
[0x18A0]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER MANCHU ALI GALI TA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x18A0, -- ᢠ
+ category="lo",
+ description="MONGOLIAN LETTER MANCHU ALI GALI TA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x18A0,
},
[0x18A1]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER MANCHU ALI GALI DHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x18A1, -- ᢡ
+ category="lo",
+ description="MONGOLIAN LETTER MANCHU ALI GALI DHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x18A1,
},
[0x18A2]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER MANCHU ALI GALI SSA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x18A2, -- ᢢ
+ category="lo",
+ description="MONGOLIAN LETTER MANCHU ALI GALI SSA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x18A2,
},
[0x18A3]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER MANCHU ALI GALI CYA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x18A3, -- ᢣ
+ category="lo",
+ description="MONGOLIAN LETTER MANCHU ALI GALI CYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x18A3,
},
[0x18A4]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER MANCHU ALI GALI ZHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x18A4, -- ᢤ
+ category="lo",
+ description="MONGOLIAN LETTER MANCHU ALI GALI ZHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x18A4,
},
[0x18A5]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER MANCHU ALI GALI ZA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x18A5, -- ᢥ
+ category="lo",
+ description="MONGOLIAN LETTER MANCHU ALI GALI ZA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x18A5,
},
[0x18A6]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER ALI GALI HALF U",
- ["linebreak"]="al",
- ["unicodeslot"]=0x18A6, -- ᢦ
+ category="lo",
+ description="MONGOLIAN LETTER ALI GALI HALF U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x18A6,
},
[0x18A7]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER ALI GALI HALF YA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x18A7, -- ᢧ
+ category="lo",
+ description="MONGOLIAN LETTER ALI GALI HALF YA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x18A7,
},
[0x18A8]={
- ["category"]="lo",
- ["description"]="MONGOLIAN LETTER MANCHU ALI GALI BHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x18A8, -- ᢨ
+ category="lo",
+ description="MONGOLIAN LETTER MANCHU ALI GALI BHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x18A8,
},
[0x18A9]={
- ["category"]="mn",
- ["description"]="MONGOLIAN LETTER ALI GALI DAGALGA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x18A9, -- ᢩ
+ category="mn",
+ description="MONGOLIAN LETTER ALI GALI DAGALGA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x18A9,
},
[0x1900]={
- ["category"]="lo",
- ["description"]="LIMBU VOWEL-CARRIER LETTER",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1900, -- ᤀ
+ category="lo",
+ description="LIMBU VOWEL-CARRIER LETTER",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1900,
},
[0x1901]={
- ["category"]="lo",
- ["description"]="LIMBU LETTER KA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1901, -- ᤁ
+ category="lo",
+ description="LIMBU LETTER KA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1901,
},
[0x1902]={
- ["category"]="lo",
- ["description"]="LIMBU LETTER KHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1902, -- ᤂ
+ category="lo",
+ description="LIMBU LETTER KHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1902,
},
[0x1903]={
- ["category"]="lo",
- ["description"]="LIMBU LETTER GA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1903, -- ᤃ
+ category="lo",
+ description="LIMBU LETTER GA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1903,
},
[0x1904]={
- ["category"]="lo",
- ["description"]="LIMBU LETTER GHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1904, -- ᤄ
+ category="lo",
+ description="LIMBU LETTER GHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1904,
},
[0x1905]={
- ["category"]="lo",
- ["description"]="LIMBU LETTER NGA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1905, -- ᤅ
+ category="lo",
+ description="LIMBU LETTER NGA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1905,
},
[0x1906]={
- ["category"]="lo",
- ["description"]="LIMBU LETTER CA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1906, -- ᤆ
+ category="lo",
+ description="LIMBU LETTER CA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1906,
},
[0x1907]={
- ["category"]="lo",
- ["description"]="LIMBU LETTER CHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1907, -- ᤇ
+ category="lo",
+ description="LIMBU LETTER CHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1907,
},
[0x1908]={
- ["category"]="lo",
- ["description"]="LIMBU LETTER JA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1908, -- ᤈ
+ category="lo",
+ description="LIMBU LETTER JA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1908,
},
[0x1909]={
- ["category"]="lo",
- ["description"]="LIMBU LETTER JHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1909, -- ᤉ
+ category="lo",
+ description="LIMBU LETTER JHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1909,
},
[0x190A]={
- ["category"]="lo",
- ["description"]="LIMBU LETTER YAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x190A, -- ᤊ
+ category="lo",
+ description="LIMBU LETTER YAN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x190A,
},
[0x190B]={
- ["category"]="lo",
- ["description"]="LIMBU LETTER TA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x190B, -- ᤋ
+ category="lo",
+ description="LIMBU LETTER TA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x190B,
},
[0x190C]={
- ["category"]="lo",
- ["description"]="LIMBU LETTER THA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x190C, -- ᤌ
+ category="lo",
+ description="LIMBU LETTER THA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x190C,
},
[0x190D]={
- ["category"]="lo",
- ["description"]="LIMBU LETTER DA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x190D, -- ᤍ
+ category="lo",
+ description="LIMBU LETTER DA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x190D,
},
[0x190E]={
- ["category"]="lo",
- ["description"]="LIMBU LETTER DHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x190E, -- ᤎ
+ category="lo",
+ description="LIMBU LETTER DHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x190E,
},
[0x190F]={
- ["category"]="lo",
- ["description"]="LIMBU LETTER NA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x190F, -- ᤏ
+ category="lo",
+ description="LIMBU LETTER NA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x190F,
},
[0x1910]={
- ["category"]="lo",
- ["description"]="LIMBU LETTER PA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1910, -- ᤐ
+ category="lo",
+ description="LIMBU LETTER PA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1910,
},
[0x1911]={
- ["category"]="lo",
- ["description"]="LIMBU LETTER PHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1911, -- ᤑ
+ category="lo",
+ description="LIMBU LETTER PHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1911,
},
[0x1912]={
- ["category"]="lo",
- ["description"]="LIMBU LETTER BA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1912, -- ᤒ
+ category="lo",
+ description="LIMBU LETTER BA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1912,
},
[0x1913]={
- ["category"]="lo",
- ["description"]="LIMBU LETTER BHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1913, -- ᤓ
+ category="lo",
+ description="LIMBU LETTER BHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1913,
},
[0x1914]={
- ["category"]="lo",
- ["description"]="LIMBU LETTER MA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1914, -- ᤔ
+ category="lo",
+ description="LIMBU LETTER MA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1914,
},
[0x1915]={
- ["category"]="lo",
- ["description"]="LIMBU LETTER YA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1915, -- ᤕ
+ category="lo",
+ description="LIMBU LETTER YA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1915,
},
[0x1916]={
- ["category"]="lo",
- ["description"]="LIMBU LETTER RA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1916, -- ᤖ
+ category="lo",
+ description="LIMBU LETTER RA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1916,
},
[0x1917]={
- ["category"]="lo",
- ["description"]="LIMBU LETTER LA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1917, -- ᤗ
+ category="lo",
+ description="LIMBU LETTER LA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1917,
},
[0x1918]={
- ["category"]="lo",
- ["description"]="LIMBU LETTER WA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1918, -- ᤘ
+ category="lo",
+ description="LIMBU LETTER WA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1918,
},
[0x1919]={
- ["category"]="lo",
- ["description"]="LIMBU LETTER SHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1919, -- ᤙ
+ category="lo",
+ description="LIMBU LETTER SHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1919,
},
[0x191A]={
- ["category"]="lo",
- ["description"]="LIMBU LETTER SSA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x191A, -- ᤚ
+ category="lo",
+ description="LIMBU LETTER SSA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x191A,
},
[0x191B]={
- ["category"]="lo",
- ["description"]="LIMBU LETTER SA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x191B, -- ᤛ
+ category="lo",
+ description="LIMBU LETTER SA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x191B,
},
[0x191C]={
- ["category"]="lo",
- ["description"]="LIMBU LETTER HA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x191C, -- ᤜ
+ category="lo",
+ description="LIMBU LETTER HA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x191C,
},
[0x1920]={
- ["category"]="mn",
- ["description"]="LIMBU VOWEL SIGN A",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1920, -- ᤠ
+ category="mn",
+ description="LIMBU VOWEL SIGN A",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1920,
},
[0x1921]={
- ["category"]="mn",
- ["description"]="LIMBU VOWEL SIGN I",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1921, -- ᤡ
+ category="mn",
+ description="LIMBU VOWEL SIGN I",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1921,
},
[0x1922]={
- ["category"]="mn",
- ["description"]="LIMBU VOWEL SIGN U",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1922, -- ᤢ
+ category="mn",
+ description="LIMBU VOWEL SIGN U",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1922,
},
[0x1923]={
- ["category"]="mc",
- ["description"]="LIMBU VOWEL SIGN EE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1923, -- ᤣ
+ category="mc",
+ description="LIMBU VOWEL SIGN EE",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x1923,
},
[0x1924]={
- ["category"]="mc",
- ["description"]="LIMBU VOWEL SIGN AI",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1924, -- ᤤ
+ category="mc",
+ description="LIMBU VOWEL SIGN AI",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x1924,
},
[0x1925]={
- ["category"]="mc",
- ["description"]="LIMBU VOWEL SIGN OO",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1925, -- ᤥ
+ category="mc",
+ description="LIMBU VOWEL SIGN OO",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x1925,
},
[0x1926]={
- ["category"]="mc",
- ["description"]="LIMBU VOWEL SIGN AU",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1926, -- ᤦ
+ category="mc",
+ description="LIMBU VOWEL SIGN AU",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x1926,
},
[0x1927]={
- ["category"]="mn",
- ["description"]="LIMBU VOWEL SIGN E",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1927, -- ᤧ
+ category="mn",
+ description="LIMBU VOWEL SIGN E",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1927,
},
[0x1928]={
- ["category"]="mn",
- ["description"]="LIMBU VOWEL SIGN O",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1928, -- ᤨ
+ category="mn",
+ description="LIMBU VOWEL SIGN O",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1928,
},
[0x1929]={
- ["category"]="mc",
- ["description"]="LIMBU SUBJOINED LETTER YA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1929, -- ᤩ
+ category="mc",
+ description="LIMBU SUBJOINED LETTER YA",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x1929,
},
[0x192A]={
- ["category"]="mc",
- ["description"]="LIMBU SUBJOINED LETTER RA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x192A, -- ᤪ
+ category="mc",
+ description="LIMBU SUBJOINED LETTER RA",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x192A,
},
[0x192B]={
- ["category"]="mc",
- ["description"]="LIMBU SUBJOINED LETTER WA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x192B, -- ᤫ
+ category="mc",
+ description="LIMBU SUBJOINED LETTER WA",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x192B,
},
[0x1930]={
- ["category"]="mc",
- ["description"]="LIMBU SMALL LETTER KA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1930, -- ᤰ
+ category="mc",
+ description="LIMBU SMALL LETTER KA",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x1930,
},
[0x1931]={
- ["category"]="mc",
- ["description"]="LIMBU SMALL LETTER NGA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1931, -- ᤱ
+ category="mc",
+ description="LIMBU SMALL LETTER NGA",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x1931,
},
[0x1932]={
- ["category"]="mn",
- ["description"]="LIMBU SMALL LETTER ANUSVARA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1932, -- ᤲ
+ category="mn",
+ description="LIMBU SMALL LETTER ANUSVARA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1932,
},
[0x1933]={
- ["category"]="mc",
- ["description"]="LIMBU SMALL LETTER TA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1933, -- ᤳ
+ category="mc",
+ description="LIMBU SMALL LETTER TA",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x1933,
},
[0x1934]={
- ["category"]="mc",
- ["description"]="LIMBU SMALL LETTER NA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1934, -- ᤴ
+ category="mc",
+ description="LIMBU SMALL LETTER NA",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x1934,
},
[0x1935]={
- ["category"]="mc",
- ["description"]="LIMBU SMALL LETTER PA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1935, -- ᤵ
+ category="mc",
+ description="LIMBU SMALL LETTER PA",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x1935,
},
[0x1936]={
- ["category"]="mc",
- ["description"]="LIMBU SMALL LETTER MA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1936, -- ᤶ
+ category="mc",
+ description="LIMBU SMALL LETTER MA",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x1936,
},
[0x1937]={
- ["category"]="mc",
- ["description"]="LIMBU SMALL LETTER RA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1937, -- ᤷ
+ category="mc",
+ description="LIMBU SMALL LETTER RA",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x1937,
},
[0x1938]={
- ["category"]="mc",
- ["description"]="LIMBU SMALL LETTER LA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1938, -- ᤸ
+ category="mc",
+ description="LIMBU SMALL LETTER LA",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x1938,
},
[0x1939]={
- ["category"]="mn",
- ["description"]="LIMBU SIGN MUKPHRENG",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1939, -- ᤹
+ category="mn",
+ description="LIMBU SIGN MUKPHRENG",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1939,
},
[0x193A]={
- ["category"]="mn",
- ["description"]="LIMBU SIGN KEMPHRENG",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x193A, -- ᤺
+ category="mn",
+ description="LIMBU SIGN KEMPHRENG",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x193A,
},
[0x193B]={
- ["category"]="mn",
- ["description"]="LIMBU SIGN SA-I",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x193B, -- ᤻
+ category="mn",
+ description="LIMBU SIGN SA-I",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x193B,
},
[0x1940]={
- ["category"]="so",
- ["description"]="LIMBU SIGN LOO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1940, -- ᥀
+ category="so",
+ description="LIMBU SIGN LOO",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1940,
},
[0x1944]={
- ["category"]="po",
- ["description"]="LIMBU EXCLAMATION MARK",
- ["linebreak"]="ex",
- ["unicodeslot"]=0x1944, -- ᥄
+ category="po",
+ description="LIMBU EXCLAMATION MARK",
+ direction="on",
+ linebreak="ex",
+ unicodeslot=0x1944,
},
[0x1945]={
- ["category"]="po",
- ["description"]="LIMBU QUESTION MARK",
- ["linebreak"]="ex",
- ["unicodeslot"]=0x1945, -- ᥅
+ category="po",
+ description="LIMBU QUESTION MARK",
+ direction="on",
+ linebreak="ex",
+ unicodeslot=0x1945,
},
[0x1946]={
- ["category"]="nd",
- ["description"]="LIMBU DIGIT ZERO",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x1946, -- ᥆
+ category="nd",
+ description="LIMBU DIGIT ZERO",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x1946,
},
[0x1947]={
- ["category"]="nd",
- ["description"]="LIMBU DIGIT ONE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x1947, -- ᥇
+ category="nd",
+ description="LIMBU DIGIT ONE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x1947,
},
[0x1948]={
- ["category"]="nd",
- ["description"]="LIMBU DIGIT TWO",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x1948, -- ᥈
+ category="nd",
+ description="LIMBU DIGIT TWO",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x1948,
},
[0x1949]={
- ["category"]="nd",
- ["description"]="LIMBU DIGIT THREE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x1949, -- ᥉
+ category="nd",
+ description="LIMBU DIGIT THREE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x1949,
},
[0x194A]={
- ["category"]="nd",
- ["description"]="LIMBU DIGIT FOUR",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x194A, -- ᥊
+ category="nd",
+ description="LIMBU DIGIT FOUR",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x194A,
},
[0x194B]={
- ["category"]="nd",
- ["description"]="LIMBU DIGIT FIVE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x194B, -- ᥋
+ category="nd",
+ description="LIMBU DIGIT FIVE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x194B,
},
[0x194C]={
- ["category"]="nd",
- ["description"]="LIMBU DIGIT SIX",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x194C, -- ᥌
+ category="nd",
+ description="LIMBU DIGIT SIX",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x194C,
},
[0x194D]={
- ["category"]="nd",
- ["description"]="LIMBU DIGIT SEVEN",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x194D, -- ᥍
+ category="nd",
+ description="LIMBU DIGIT SEVEN",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x194D,
},
[0x194E]={
- ["category"]="nd",
- ["description"]="LIMBU DIGIT EIGHT",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x194E, -- ᥎
+ category="nd",
+ description="LIMBU DIGIT EIGHT",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x194E,
},
[0x194F]={
- ["category"]="nd",
- ["description"]="LIMBU DIGIT NINE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x194F, -- ᥏
+ category="nd",
+ description="LIMBU DIGIT NINE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x194F,
},
[0x1950]={
- ["category"]="lo",
- ["description"]="TAI LE LETTER KA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1950, -- ᥐ
+ category="lo",
+ description="TAI LE LETTER KA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1950,
},
[0x1951]={
- ["category"]="lo",
- ["description"]="TAI LE LETTER XA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1951, -- ᥑ
+ category="lo",
+ description="TAI LE LETTER XA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1951,
},
[0x1952]={
- ["category"]="lo",
- ["description"]="TAI LE LETTER NGA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1952, -- ᥒ
+ category="lo",
+ description="TAI LE LETTER NGA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1952,
},
[0x1953]={
- ["category"]="lo",
- ["description"]="TAI LE LETTER TSA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1953, -- ᥓ
+ category="lo",
+ description="TAI LE LETTER TSA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1953,
},
[0x1954]={
- ["category"]="lo",
- ["description"]="TAI LE LETTER SA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1954, -- ᥔ
+ category="lo",
+ description="TAI LE LETTER SA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1954,
},
[0x1955]={
- ["category"]="lo",
- ["description"]="TAI LE LETTER YA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1955, -- ᥕ
+ category="lo",
+ description="TAI LE LETTER YA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1955,
},
[0x1956]={
- ["category"]="lo",
- ["description"]="TAI LE LETTER TA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1956, -- ᥖ
+ category="lo",
+ description="TAI LE LETTER TA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1956,
},
[0x1957]={
- ["category"]="lo",
- ["description"]="TAI LE LETTER THA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1957, -- ᥗ
+ category="lo",
+ description="TAI LE LETTER THA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1957,
},
[0x1958]={
- ["category"]="lo",
- ["description"]="TAI LE LETTER LA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1958, -- ᥘ
+ category="lo",
+ description="TAI LE LETTER LA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1958,
},
[0x1959]={
- ["category"]="lo",
- ["description"]="TAI LE LETTER PA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1959, -- ᥙ
+ category="lo",
+ description="TAI LE LETTER PA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1959,
},
[0x195A]={
- ["category"]="lo",
- ["description"]="TAI LE LETTER PHA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x195A, -- ᥚ
+ category="lo",
+ description="TAI LE LETTER PHA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x195A,
},
[0x195B]={
- ["category"]="lo",
- ["description"]="TAI LE LETTER MA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x195B, -- ᥛ
+ category="lo",
+ description="TAI LE LETTER MA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x195B,
},
[0x195C]={
- ["category"]="lo",
- ["description"]="TAI LE LETTER FA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x195C, -- ᥜ
+ category="lo",
+ description="TAI LE LETTER FA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x195C,
},
[0x195D]={
- ["category"]="lo",
- ["description"]="TAI LE LETTER VA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x195D, -- ᥝ
+ category="lo",
+ description="TAI LE LETTER VA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x195D,
},
[0x195E]={
- ["category"]="lo",
- ["description"]="TAI LE LETTER HA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x195E, -- ᥞ
+ category="lo",
+ description="TAI LE LETTER HA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x195E,
},
[0x195F]={
- ["category"]="lo",
- ["description"]="TAI LE LETTER QA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x195F, -- ᥟ
+ category="lo",
+ description="TAI LE LETTER QA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x195F,
},
[0x1960]={
- ["category"]="lo",
- ["description"]="TAI LE LETTER KHA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1960, -- ᥠ
+ category="lo",
+ description="TAI LE LETTER KHA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1960,
},
[0x1961]={
- ["category"]="lo",
- ["description"]="TAI LE LETTER TSHA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1961, -- ᥡ
+ category="lo",
+ description="TAI LE LETTER TSHA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1961,
},
[0x1962]={
- ["category"]="lo",
- ["description"]="TAI LE LETTER NA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1962, -- ᥢ
+ category="lo",
+ description="TAI LE LETTER NA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1962,
},
[0x1963]={
- ["category"]="lo",
- ["description"]="TAI LE LETTER A",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1963, -- ᥣ
+ category="lo",
+ description="TAI LE LETTER A",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1963,
},
[0x1964]={
- ["category"]="lo",
- ["description"]="TAI LE LETTER I",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1964, -- ᥤ
+ category="lo",
+ description="TAI LE LETTER I",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1964,
},
[0x1965]={
- ["category"]="lo",
- ["description"]="TAI LE LETTER EE",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1965, -- ᥥ
+ category="lo",
+ description="TAI LE LETTER EE",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1965,
},
[0x1966]={
- ["category"]="lo",
- ["description"]="TAI LE LETTER EH",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1966, -- ᥦ
+ category="lo",
+ description="TAI LE LETTER EH",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1966,
},
[0x1967]={
- ["category"]="lo",
- ["description"]="TAI LE LETTER U",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1967, -- ᥧ
+ category="lo",
+ description="TAI LE LETTER U",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1967,
},
[0x1968]={
- ["category"]="lo",
- ["description"]="TAI LE LETTER OO",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1968, -- ᥨ
+ category="lo",
+ description="TAI LE LETTER OO",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1968,
},
[0x1969]={
- ["category"]="lo",
- ["description"]="TAI LE LETTER O",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1969, -- ᥩ
+ category="lo",
+ description="TAI LE LETTER O",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1969,
},
[0x196A]={
- ["category"]="lo",
- ["description"]="TAI LE LETTER UE",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x196A, -- ᥪ
+ category="lo",
+ description="TAI LE LETTER UE",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x196A,
},
[0x196B]={
- ["category"]="lo",
- ["description"]="TAI LE LETTER E",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x196B, -- ᥫ
+ category="lo",
+ description="TAI LE LETTER E",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x196B,
},
[0x196C]={
- ["category"]="lo",
- ["description"]="TAI LE LETTER AUE",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x196C, -- ᥬ
+ category="lo",
+ description="TAI LE LETTER AUE",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x196C,
},
[0x196D]={
- ["category"]="lo",
- ["description"]="TAI LE LETTER AI",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x196D, -- ᥭ
+ category="lo",
+ description="TAI LE LETTER AI",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x196D,
},
[0x1970]={
- ["category"]="lo",
- ["description"]="TAI LE LETTER TONE-0x0002",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1970, -- ᥰ
+ category="lo",
+ description="TAI LE LETTER TONE-0x0002",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1970,
},
[0x1971]={
- ["category"]="lo",
- ["description"]="TAI LE LETTER TONE-0x0003",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1971, -- ᥱ
+ category="lo",
+ description="TAI LE LETTER TONE-0x0003",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1971,
},
[0x1972]={
- ["category"]="lo",
- ["description"]="TAI LE LETTER TONE-0x0004",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1972, -- ᥲ
+ category="lo",
+ description="TAI LE LETTER TONE-0x0004",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1972,
},
[0x1973]={
- ["category"]="lo",
- ["description"]="TAI LE LETTER TONE-0x0005",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1973, -- ᥳ
+ category="lo",
+ description="TAI LE LETTER TONE-0x0005",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1973,
},
[0x1974]={
- ["category"]="lo",
- ["description"]="TAI LE LETTER TONE-0x0006",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1974, -- ᥴ
+ category="lo",
+ description="TAI LE LETTER TONE-0x0006",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1974,
},
[0x1980]={
- ["category"]="lo",
- ["description"]="NEW TAI LUE LETTER HIGH QA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1980, -- ᦀ
+ category="lo",
+ description="NEW TAI LUE LETTER HIGH QA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1980,
},
[0x1981]={
- ["category"]="lo",
- ["description"]="NEW TAI LUE LETTER LOW QA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1981, -- ᦁ
+ category="lo",
+ description="NEW TAI LUE LETTER LOW QA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1981,
},
[0x1982]={
- ["category"]="lo",
- ["description"]="NEW TAI LUE LETTER HIGH KA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1982, -- ᦂ
+ category="lo",
+ description="NEW TAI LUE LETTER HIGH KA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1982,
},
[0x1983]={
- ["category"]="lo",
- ["description"]="NEW TAI LUE LETTER HIGH XA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1983, -- ᦃ
+ category="lo",
+ description="NEW TAI LUE LETTER HIGH XA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1983,
},
[0x1984]={
- ["category"]="lo",
- ["description"]="NEW TAI LUE LETTER HIGH NGA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1984, -- ᦄ
+ category="lo",
+ description="NEW TAI LUE LETTER HIGH NGA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1984,
},
[0x1985]={
- ["category"]="lo",
- ["description"]="NEW TAI LUE LETTER LOW KA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1985, -- ᦅ
+ category="lo",
+ description="NEW TAI LUE LETTER LOW KA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1985,
},
[0x1986]={
- ["category"]="lo",
- ["description"]="NEW TAI LUE LETTER LOW XA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1986, -- ᦆ
+ category="lo",
+ description="NEW TAI LUE LETTER LOW XA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1986,
},
[0x1987]={
- ["category"]="lo",
- ["description"]="NEW TAI LUE LETTER LOW NGA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1987, -- ᦇ
+ category="lo",
+ description="NEW TAI LUE LETTER LOW NGA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1987,
},
[0x1988]={
- ["category"]="lo",
- ["description"]="NEW TAI LUE LETTER HIGH TSA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1988, -- ᦈ
+ category="lo",
+ description="NEW TAI LUE LETTER HIGH TSA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1988,
},
[0x1989]={
- ["category"]="lo",
- ["description"]="NEW TAI LUE LETTER HIGH SA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1989, -- ᦉ
+ category="lo",
+ description="NEW TAI LUE LETTER HIGH SA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1989,
},
[0x198A]={
- ["category"]="lo",
- ["description"]="NEW TAI LUE LETTER HIGH YA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x198A, -- ᦊ
+ category="lo",
+ description="NEW TAI LUE LETTER HIGH YA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x198A,
},
[0x198B]={
- ["category"]="lo",
- ["description"]="NEW TAI LUE LETTER LOW TSA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x198B, -- ᦋ
+ category="lo",
+ description="NEW TAI LUE LETTER LOW TSA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x198B,
},
[0x198C]={
- ["category"]="lo",
- ["description"]="NEW TAI LUE LETTER LOW SA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x198C, -- ᦌ
+ category="lo",
+ description="NEW TAI LUE LETTER LOW SA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x198C,
},
[0x198D]={
- ["category"]="lo",
- ["description"]="NEW TAI LUE LETTER LOW YA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x198D, -- ᦍ
+ category="lo",
+ description="NEW TAI LUE LETTER LOW YA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x198D,
},
[0x198E]={
- ["category"]="lo",
- ["description"]="NEW TAI LUE LETTER HIGH TA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x198E, -- ᦎ
+ category="lo",
+ description="NEW TAI LUE LETTER HIGH TA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x198E,
},
[0x198F]={
- ["category"]="lo",
- ["description"]="NEW TAI LUE LETTER HIGH THA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x198F, -- ᦏ
+ category="lo",
+ description="NEW TAI LUE LETTER HIGH THA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x198F,
},
[0x1990]={
- ["category"]="lo",
- ["description"]="NEW TAI LUE LETTER HIGH NA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1990, -- ᦐ
+ category="lo",
+ description="NEW TAI LUE LETTER HIGH NA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1990,
},
[0x1991]={
- ["category"]="lo",
- ["description"]="NEW TAI LUE LETTER LOW TA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1991, -- ᦑ
+ category="lo",
+ description="NEW TAI LUE LETTER LOW TA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1991,
},
[0x1992]={
- ["category"]="lo",
- ["description"]="NEW TAI LUE LETTER LOW THA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1992, -- ᦒ
+ category="lo",
+ description="NEW TAI LUE LETTER LOW THA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1992,
},
[0x1993]={
- ["category"]="lo",
- ["description"]="NEW TAI LUE LETTER LOW NA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1993, -- ᦓ
+ category="lo",
+ description="NEW TAI LUE LETTER LOW NA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1993,
},
[0x1994]={
- ["category"]="lo",
- ["description"]="NEW TAI LUE LETTER HIGH PA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1994, -- ᦔ
+ category="lo",
+ description="NEW TAI LUE LETTER HIGH PA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1994,
},
[0x1995]={
- ["category"]="lo",
- ["description"]="NEW TAI LUE LETTER HIGH PHA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1995, -- ᦕ
+ category="lo",
+ description="NEW TAI LUE LETTER HIGH PHA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1995,
},
[0x1996]={
- ["category"]="lo",
- ["description"]="NEW TAI LUE LETTER HIGH MA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1996, -- ᦖ
+ category="lo",
+ description="NEW TAI LUE LETTER HIGH MA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1996,
},
[0x1997]={
- ["category"]="lo",
- ["description"]="NEW TAI LUE LETTER LOW PA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1997, -- ᦗ
+ category="lo",
+ description="NEW TAI LUE LETTER LOW PA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1997,
},
[0x1998]={
- ["category"]="lo",
- ["description"]="NEW TAI LUE LETTER LOW PHA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1998, -- ᦘ
+ category="lo",
+ description="NEW TAI LUE LETTER LOW PHA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1998,
},
[0x1999]={
- ["category"]="lo",
- ["description"]="NEW TAI LUE LETTER LOW MA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x1999, -- ᦙ
+ category="lo",
+ description="NEW TAI LUE LETTER LOW MA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x1999,
},
[0x199A]={
- ["category"]="lo",
- ["description"]="NEW TAI LUE LETTER HIGH FA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x199A, -- ᦚ
+ category="lo",
+ description="NEW TAI LUE LETTER HIGH FA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x199A,
},
[0x199B]={
- ["category"]="lo",
- ["description"]="NEW TAI LUE LETTER HIGH VA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x199B, -- ᦛ
+ category="lo",
+ description="NEW TAI LUE LETTER HIGH VA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x199B,
},
[0x199C]={
- ["category"]="lo",
- ["description"]="NEW TAI LUE LETTER HIGH LA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x199C, -- ᦜ
+ category="lo",
+ description="NEW TAI LUE LETTER HIGH LA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x199C,
},
[0x199D]={
- ["category"]="lo",
- ["description"]="NEW TAI LUE LETTER LOW FA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x199D, -- ᦝ
+ category="lo",
+ description="NEW TAI LUE LETTER LOW FA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x199D,
},
[0x199E]={
- ["category"]="lo",
- ["description"]="NEW TAI LUE LETTER LOW VA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x199E, -- ᦞ
+ category="lo",
+ description="NEW TAI LUE LETTER LOW VA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x199E,
},
[0x199F]={
- ["category"]="lo",
- ["description"]="NEW TAI LUE LETTER LOW LA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x199F, -- ᦟ
+ category="lo",
+ description="NEW TAI LUE LETTER LOW LA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x199F,
},
[0x19A0]={
- ["category"]="lo",
- ["description"]="NEW TAI LUE LETTER HIGH HA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x19A0, -- ᦠ
+ category="lo",
+ description="NEW TAI LUE LETTER HIGH HA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x19A0,
},
[0x19A1]={
- ["category"]="lo",
- ["description"]="NEW TAI LUE LETTER HIGH DA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x19A1, -- ᦡ
+ category="lo",
+ description="NEW TAI LUE LETTER HIGH DA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x19A1,
},
[0x19A2]={
- ["category"]="lo",
- ["description"]="NEW TAI LUE LETTER HIGH BA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x19A2, -- ᦢ
+ category="lo",
+ description="NEW TAI LUE LETTER HIGH BA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x19A2,
},
[0x19A3]={
- ["category"]="lo",
- ["description"]="NEW TAI LUE LETTER LOW HA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x19A3, -- ᦣ
+ category="lo",
+ description="NEW TAI LUE LETTER LOW HA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x19A3,
},
[0x19A4]={
- ["category"]="lo",
- ["description"]="NEW TAI LUE LETTER LOW DA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x19A4, -- ᦤ
+ category="lo",
+ description="NEW TAI LUE LETTER LOW DA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x19A4,
},
[0x19A5]={
- ["category"]="lo",
- ["description"]="NEW TAI LUE LETTER LOW BA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x19A5, -- ᦥ
+ category="lo",
+ description="NEW TAI LUE LETTER LOW BA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x19A5,
},
[0x19A6]={
- ["category"]="lo",
- ["description"]="NEW TAI LUE LETTER HIGH KVA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x19A6, -- ᦦ
+ category="lo",
+ description="NEW TAI LUE LETTER HIGH KVA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x19A6,
},
[0x19A7]={
- ["category"]="lo",
- ["description"]="NEW TAI LUE LETTER HIGH XVA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x19A7, -- ᦧ
+ category="lo",
+ description="NEW TAI LUE LETTER HIGH XVA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x19A7,
},
[0x19A8]={
- ["category"]="lo",
- ["description"]="NEW TAI LUE LETTER LOW KVA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x19A8, -- ᦨ
+ category="lo",
+ description="NEW TAI LUE LETTER LOW KVA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x19A8,
},
[0x19A9]={
- ["category"]="lo",
- ["description"]="NEW TAI LUE LETTER LOW XVA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x19A9, -- ᦩ
+ category="lo",
+ description="NEW TAI LUE LETTER LOW XVA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x19A9,
},
[0x19B0]={
- ["category"]="mc",
- ["description"]="NEW TAI LUE VOWEL SIGN VOWEL SHORTENER",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x19B0, -- ᦰ
+ category="mc",
+ description="NEW TAI LUE VOWEL SIGN VOWEL SHORTENER",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x19B0,
},
[0x19B1]={
- ["category"]="mc",
- ["description"]="NEW TAI LUE VOWEL SIGN AA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x19B1, -- ᦱ
+ category="mc",
+ description="NEW TAI LUE VOWEL SIGN AA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x19B1,
},
[0x19B2]={
- ["category"]="mc",
- ["description"]="NEW TAI LUE VOWEL SIGN II",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x19B2, -- ᦲ
+ category="mc",
+ description="NEW TAI LUE VOWEL SIGN II",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x19B2,
},
[0x19B3]={
- ["category"]="mc",
- ["description"]="NEW TAI LUE VOWEL SIGN U",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x19B3, -- ᦳ
+ category="mc",
+ description="NEW TAI LUE VOWEL SIGN U",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x19B3,
},
[0x19B4]={
- ["category"]="mc",
- ["description"]="NEW TAI LUE VOWEL SIGN UU",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x19B4, -- ᦴ
+ category="mc",
+ description="NEW TAI LUE VOWEL SIGN UU",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x19B4,
},
[0x19B5]={
- ["category"]="mc",
- ["description"]="NEW TAI LUE VOWEL SIGN E",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x19B5, -- ᦵ
+ category="mc",
+ description="NEW TAI LUE VOWEL SIGN E",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x19B5,
},
[0x19B6]={
- ["category"]="mc",
- ["description"]="NEW TAI LUE VOWEL SIGN AE",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x19B6, -- ᦶ
+ category="mc",
+ description="NEW TAI LUE VOWEL SIGN AE",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x19B6,
},
[0x19B7]={
- ["category"]="mc",
- ["description"]="NEW TAI LUE VOWEL SIGN O",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x19B7, -- ᦷ
+ category="mc",
+ description="NEW TAI LUE VOWEL SIGN O",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x19B7,
},
[0x19B8]={
- ["category"]="mc",
- ["description"]="NEW TAI LUE VOWEL SIGN OA",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x19B8, -- ᦸ
+ category="mc",
+ description="NEW TAI LUE VOWEL SIGN OA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x19B8,
},
[0x19B9]={
- ["category"]="mc",
- ["description"]="NEW TAI LUE VOWEL SIGN UE",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x19B9, -- ᦹ
+ category="mc",
+ description="NEW TAI LUE VOWEL SIGN UE",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x19B9,
},
[0x19BA]={
- ["category"]="mc",
- ["description"]="NEW TAI LUE VOWEL SIGN AY",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x19BA, -- ᦺ
+ category="mc",
+ description="NEW TAI LUE VOWEL SIGN AY",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x19BA,
},
[0x19BB]={
- ["category"]="mc",
- ["description"]="NEW TAI LUE VOWEL SIGN AAY",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x19BB, -- ᦻ
+ category="mc",
+ description="NEW TAI LUE VOWEL SIGN AAY",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x19BB,
},
[0x19BC]={
- ["category"]="mc",
- ["description"]="NEW TAI LUE VOWEL SIGN UY",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x19BC, -- ᦼ
+ category="mc",
+ description="NEW TAI LUE VOWEL SIGN UY",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x19BC,
},
[0x19BD]={
- ["category"]="mc",
- ["description"]="NEW TAI LUE VOWEL SIGN OY",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x19BD, -- ᦽ
+ category="mc",
+ description="NEW TAI LUE VOWEL SIGN OY",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x19BD,
},
[0x19BE]={
- ["category"]="mc",
- ["description"]="NEW TAI LUE VOWEL SIGN OAY",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x19BE, -- ᦾ
+ category="mc",
+ description="NEW TAI LUE VOWEL SIGN OAY",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x19BE,
},
[0x19BF]={
- ["category"]="mc",
- ["description"]="NEW TAI LUE VOWEL SIGN UEY",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x19BF, -- ᦿ
+ category="mc",
+ description="NEW TAI LUE VOWEL SIGN UEY",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x19BF,
},
[0x19C0]={
- ["category"]="mc",
- ["description"]="NEW TAI LUE VOWEL SIGN IY",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x19C0, -- ᧀ
+ category="mc",
+ description="NEW TAI LUE VOWEL SIGN IY",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x19C0,
},
[0x19C1]={
- ["category"]="lo",
- ["description"]="NEW TAI LUE LETTER FINAL V",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x19C1, -- ᧁ
+ category="lo",
+ description="NEW TAI LUE LETTER FINAL V",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x19C1,
},
[0x19C2]={
- ["category"]="lo",
- ["description"]="NEW TAI LUE LETTER FINAL NG",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x19C2, -- ᧂ
+ category="lo",
+ description="NEW TAI LUE LETTER FINAL NG",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x19C2,
},
[0x19C3]={
- ["category"]="lo",
- ["description"]="NEW TAI LUE LETTER FINAL N",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x19C3, -- ᧃ
+ category="lo",
+ description="NEW TAI LUE LETTER FINAL N",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x19C3,
},
[0x19C4]={
- ["category"]="lo",
- ["description"]="NEW TAI LUE LETTER FINAL M",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x19C4, -- ᧄ
+ category="lo",
+ description="NEW TAI LUE LETTER FINAL M",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x19C4,
},
[0x19C5]={
- ["category"]="lo",
- ["description"]="NEW TAI LUE LETTER FINAL K",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x19C5, -- ᧅ
+ category="lo",
+ description="NEW TAI LUE LETTER FINAL K",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x19C5,
},
[0x19C6]={
- ["category"]="lo",
- ["description"]="NEW TAI LUE LETTER FINAL D",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x19C6, -- ᧆ
+ category="lo",
+ description="NEW TAI LUE LETTER FINAL D",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x19C6,
},
[0x19C7]={
- ["category"]="lo",
- ["description"]="NEW TAI LUE LETTER FINAL B",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x19C7, -- ᧇ
+ category="lo",
+ description="NEW TAI LUE LETTER FINAL B",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x19C7,
},
[0x19C8]={
- ["category"]="mc",
- ["description"]="NEW TAI LUE TONE MARK-0x0001",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x19C8, -- ᧈ
+ category="mc",
+ description="NEW TAI LUE TONE MARK-0x0001",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x19C8,
},
[0x19C9]={
- ["category"]="mc",
- ["description"]="NEW TAI LUE TONE MARK-0x0002",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x19C9, -- ᧉ
+ category="mc",
+ description="NEW TAI LUE TONE MARK-0x0002",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x19C9,
},
[0x19D0]={
- ["category"]="nd",
- ["description"]="NEW TAI LUE DIGIT ZERO",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x19D0, -- ᧐
+ category="nd",
+ description="NEW TAI LUE DIGIT ZERO",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x19D0,
},
[0x19D1]={
- ["category"]="nd",
- ["description"]="NEW TAI LUE DIGIT ONE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x19D1, -- ᧑
+ category="nd",
+ description="NEW TAI LUE DIGIT ONE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x19D1,
},
[0x19D2]={
- ["category"]="nd",
- ["description"]="NEW TAI LUE DIGIT TWO",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x19D2, -- ᧒
+ category="nd",
+ description="NEW TAI LUE DIGIT TWO",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x19D2,
},
[0x19D3]={
- ["category"]="nd",
- ["description"]="NEW TAI LUE DIGIT THREE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x19D3, -- ᧓
+ category="nd",
+ description="NEW TAI LUE DIGIT THREE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x19D3,
},
[0x19D4]={
- ["category"]="nd",
- ["description"]="NEW TAI LUE DIGIT FOUR",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x19D4, -- ᧔
+ category="nd",
+ description="NEW TAI LUE DIGIT FOUR",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x19D4,
},
[0x19D5]={
- ["category"]="nd",
- ["description"]="NEW TAI LUE DIGIT FIVE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x19D5, -- ᧕
+ category="nd",
+ description="NEW TAI LUE DIGIT FIVE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x19D5,
},
[0x19D6]={
- ["category"]="nd",
- ["description"]="NEW TAI LUE DIGIT SIX",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x19D6, -- ᧖
+ category="nd",
+ description="NEW TAI LUE DIGIT SIX",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x19D6,
},
[0x19D7]={
- ["category"]="nd",
- ["description"]="NEW TAI LUE DIGIT SEVEN",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x19D7, -- ᧗
+ category="nd",
+ description="NEW TAI LUE DIGIT SEVEN",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x19D7,
},
[0x19D8]={
- ["category"]="nd",
- ["description"]="NEW TAI LUE DIGIT EIGHT",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x19D8, -- ᧘
+ category="nd",
+ description="NEW TAI LUE DIGIT EIGHT",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x19D8,
},
[0x19D9]={
- ["category"]="nd",
- ["description"]="NEW TAI LUE DIGIT NINE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x19D9, -- ᧙
+ category="nd",
+ description="NEW TAI LUE DIGIT NINE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x19D9,
},
[0x19DE]={
- ["category"]="po",
- ["description"]="NEW TAI LUE SIGN LAE",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x19DE, -- ᧞
+ category="po",
+ description="NEW TAI LUE SIGN LAE",
+ direction="on",
+ linebreak="sa",
+ unicodeslot=0x19DE,
},
[0x19DF]={
- ["category"]="po",
- ["description"]="NEW TAI LUE SIGN LAEV",
- ["linebreak"]="sa",
- ["unicodeslot"]=0x19DF, -- ᧟
+ category="po",
+ description="NEW TAI LUE SIGN LAEV",
+ direction="on",
+ linebreak="sa",
+ unicodeslot=0x19DF,
},
[0x19E0]={
- ["category"]="so",
- ["description"]="KHMER SYMBOL PATHAMASAT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x19E0, -- ᧠
+ category="so",
+ description="KHMER SYMBOL PATHAMASAT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x19E0,
},
[0x19E1]={
- ["category"]="so",
- ["description"]="KHMER SYMBOL MUOY KOET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x19E1, -- ᧡
+ category="so",
+ description="KHMER SYMBOL MUOY KOET",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x19E1,
},
[0x19E2]={
- ["category"]="so",
- ["description"]="KHMER SYMBOL PII KOET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x19E2, -- ᧢
+ category="so",
+ description="KHMER SYMBOL PII KOET",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x19E2,
},
[0x19E3]={
- ["category"]="so",
- ["description"]="KHMER SYMBOL BEI KOET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x19E3, -- ᧣
+ category="so",
+ description="KHMER SYMBOL BEI KOET",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x19E3,
},
[0x19E4]={
- ["category"]="so",
- ["description"]="KHMER SYMBOL BUON KOET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x19E4, -- ᧤
+ category="so",
+ description="KHMER SYMBOL BUON KOET",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x19E4,
},
[0x19E5]={
- ["category"]="so",
- ["description"]="KHMER SYMBOL PRAM KOET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x19E5, -- ᧥
+ category="so",
+ description="KHMER SYMBOL PRAM KOET",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x19E5,
},
[0x19E6]={
- ["category"]="so",
- ["description"]="KHMER SYMBOL PRAM-MUOY KOET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x19E6, -- ᧦
+ category="so",
+ description="KHMER SYMBOL PRAM-MUOY KOET",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x19E6,
},
[0x19E7]={
- ["category"]="so",
- ["description"]="KHMER SYMBOL PRAM-PII KOET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x19E7, -- ᧧
+ category="so",
+ description="KHMER SYMBOL PRAM-PII KOET",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x19E7,
},
[0x19E8]={
- ["category"]="so",
- ["description"]="KHMER SYMBOL PRAM-BEI KOET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x19E8, -- ᧨
+ category="so",
+ description="KHMER SYMBOL PRAM-BEI KOET",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x19E8,
},
[0x19E9]={
- ["category"]="so",
- ["description"]="KHMER SYMBOL PRAM-BUON KOET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x19E9, -- ᧩
+ category="so",
+ description="KHMER SYMBOL PRAM-BUON KOET",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x19E9,
},
[0x19EA]={
- ["category"]="so",
- ["description"]="KHMER SYMBOL DAP KOET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x19EA, -- ᧪
+ category="so",
+ description="KHMER SYMBOL DAP KOET",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x19EA,
},
[0x19EB]={
- ["category"]="so",
- ["description"]="KHMER SYMBOL DAP-MUOY KOET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x19EB, -- ᧫
+ category="so",
+ description="KHMER SYMBOL DAP-MUOY KOET",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x19EB,
},
[0x19EC]={
- ["category"]="so",
- ["description"]="KHMER SYMBOL DAP-PII KOET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x19EC, -- ᧬
+ category="so",
+ description="KHMER SYMBOL DAP-PII KOET",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x19EC,
},
[0x19ED]={
- ["category"]="so",
- ["description"]="KHMER SYMBOL DAP-BEI KOET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x19ED, -- ᧭
+ category="so",
+ description="KHMER SYMBOL DAP-BEI KOET",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x19ED,
},
[0x19EE]={
- ["category"]="so",
- ["description"]="KHMER SYMBOL DAP-BUON KOET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x19EE, -- ᧮
+ category="so",
+ description="KHMER SYMBOL DAP-BUON KOET",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x19EE,
},
[0x19EF]={
- ["category"]="so",
- ["description"]="KHMER SYMBOL DAP-PRAM KOET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x19EF, -- ᧯
+ category="so",
+ description="KHMER SYMBOL DAP-PRAM KOET",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x19EF,
},
[0x19F0]={
- ["category"]="so",
- ["description"]="KHMER SYMBOL TUTEYASAT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x19F0, -- ᧰
+ category="so",
+ description="KHMER SYMBOL TUTEYASAT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x19F0,
},
[0x19F1]={
- ["category"]="so",
- ["description"]="KHMER SYMBOL MUOY ROC",
- ["linebreak"]="al",
- ["unicodeslot"]=0x19F1, -- ᧱
+ category="so",
+ description="KHMER SYMBOL MUOY ROC",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x19F1,
},
[0x19F2]={
- ["category"]="so",
- ["description"]="KHMER SYMBOL PII ROC",
- ["linebreak"]="al",
- ["unicodeslot"]=0x19F2, -- ᧲
+ category="so",
+ description="KHMER SYMBOL PII ROC",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x19F2,
},
[0x19F3]={
- ["category"]="so",
- ["description"]="KHMER SYMBOL BEI ROC",
- ["linebreak"]="al",
- ["unicodeslot"]=0x19F3, -- ᧳
+ category="so",
+ description="KHMER SYMBOL BEI ROC",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x19F3,
},
[0x19F4]={
- ["category"]="so",
- ["description"]="KHMER SYMBOL BUON ROC",
- ["linebreak"]="al",
- ["unicodeslot"]=0x19F4, -- ᧴
+ category="so",
+ description="KHMER SYMBOL BUON ROC",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x19F4,
},
[0x19F5]={
- ["category"]="so",
- ["description"]="KHMER SYMBOL PRAM ROC",
- ["linebreak"]="al",
- ["unicodeslot"]=0x19F5, -- ᧵
+ category="so",
+ description="KHMER SYMBOL PRAM ROC",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x19F5,
},
[0x19F6]={
- ["category"]="so",
- ["description"]="KHMER SYMBOL PRAM-MUOY ROC",
- ["linebreak"]="al",
- ["unicodeslot"]=0x19F6, -- ᧶
+ category="so",
+ description="KHMER SYMBOL PRAM-MUOY ROC",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x19F6,
},
[0x19F7]={
- ["category"]="so",
- ["description"]="KHMER SYMBOL PRAM-PII ROC",
- ["linebreak"]="al",
- ["unicodeslot"]=0x19F7, -- ᧷
+ category="so",
+ description="KHMER SYMBOL PRAM-PII ROC",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x19F7,
},
[0x19F8]={
- ["category"]="so",
- ["description"]="KHMER SYMBOL PRAM-BEI ROC",
- ["linebreak"]="al",
- ["unicodeslot"]=0x19F8, -- ᧸
+ category="so",
+ description="KHMER SYMBOL PRAM-BEI ROC",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x19F8,
},
[0x19F9]={
- ["category"]="so",
- ["description"]="KHMER SYMBOL PRAM-BUON ROC",
- ["linebreak"]="al",
- ["unicodeslot"]=0x19F9, -- ᧹
+ category="so",
+ description="KHMER SYMBOL PRAM-BUON ROC",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x19F9,
},
[0x19FA]={
- ["category"]="so",
- ["description"]="KHMER SYMBOL DAP ROC",
- ["linebreak"]="al",
- ["unicodeslot"]=0x19FA, -- ᧺
+ category="so",
+ description="KHMER SYMBOL DAP ROC",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x19FA,
},
[0x19FB]={
- ["category"]="so",
- ["description"]="KHMER SYMBOL DAP-MUOY ROC",
- ["linebreak"]="al",
- ["unicodeslot"]=0x19FB, -- ᧻
+ category="so",
+ description="KHMER SYMBOL DAP-MUOY ROC",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x19FB,
},
[0x19FC]={
- ["category"]="so",
- ["description"]="KHMER SYMBOL DAP-PII ROC",
- ["linebreak"]="al",
- ["unicodeslot"]=0x19FC, -- ᧼
+ category="so",
+ description="KHMER SYMBOL DAP-PII ROC",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x19FC,
},
[0x19FD]={
- ["category"]="so",
- ["description"]="KHMER SYMBOL DAP-BEI ROC",
- ["linebreak"]="al",
- ["unicodeslot"]=0x19FD, -- ᧽
+ category="so",
+ description="KHMER SYMBOL DAP-BEI ROC",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x19FD,
},
[0x19FE]={
- ["category"]="so",
- ["description"]="KHMER SYMBOL DAP-BUON ROC",
- ["linebreak"]="al",
- ["unicodeslot"]=0x19FE, -- ᧾
+ category="so",
+ description="KHMER SYMBOL DAP-BUON ROC",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x19FE,
},
[0x19FF]={
- ["category"]="so",
- ["description"]="KHMER SYMBOL DAP-PRAM ROC",
- ["linebreak"]="al",
- ["unicodeslot"]=0x19FF, -- ᧿
+ category="so",
+ description="KHMER SYMBOL DAP-PRAM ROC",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x19FF,
},
[0x1A00]={
- ["category"]="lo",
- ["description"]="BUGINESE LETTER KA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1A00, -- ᨀ
+ category="lo",
+ description="BUGINESE LETTER KA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1A00,
},
[0x1A01]={
- ["category"]="lo",
- ["description"]="BUGINESE LETTER GA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1A01, -- ᨁ
+ category="lo",
+ description="BUGINESE LETTER GA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1A01,
},
[0x1A02]={
- ["category"]="lo",
- ["description"]="BUGINESE LETTER NGA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1A02, -- ᨂ
+ category="lo",
+ description="BUGINESE LETTER NGA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1A02,
},
[0x1A03]={
- ["category"]="lo",
- ["description"]="BUGINESE LETTER NGKA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1A03, -- ᨃ
+ category="lo",
+ description="BUGINESE LETTER NGKA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1A03,
},
[0x1A04]={
- ["category"]="lo",
- ["description"]="BUGINESE LETTER PA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1A04, -- ᨄ
+ category="lo",
+ description="BUGINESE LETTER PA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1A04,
},
[0x1A05]={
- ["category"]="lo",
- ["description"]="BUGINESE LETTER BA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1A05, -- ᨅ
+ category="lo",
+ description="BUGINESE LETTER BA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1A05,
},
[0x1A06]={
- ["category"]="lo",
- ["description"]="BUGINESE LETTER MA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1A06, -- ᨆ
+ category="lo",
+ description="BUGINESE LETTER MA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1A06,
},
[0x1A07]={
- ["category"]="lo",
- ["description"]="BUGINESE LETTER MPA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1A07, -- ᨇ
+ category="lo",
+ description="BUGINESE LETTER MPA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1A07,
},
[0x1A08]={
- ["category"]="lo",
- ["description"]="BUGINESE LETTER TA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1A08, -- ᨈ
+ category="lo",
+ description="BUGINESE LETTER TA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1A08,
},
[0x1A09]={
- ["category"]="lo",
- ["description"]="BUGINESE LETTER DA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1A09, -- ᨉ
+ category="lo",
+ description="BUGINESE LETTER DA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1A09,
},
[0x1A0A]={
- ["category"]="lo",
- ["description"]="BUGINESE LETTER NA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1A0A, -- ᨊ
+ category="lo",
+ description="BUGINESE LETTER NA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1A0A,
},
[0x1A0B]={
- ["category"]="lo",
- ["description"]="BUGINESE LETTER NRA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1A0B, -- ᨋ
+ category="lo",
+ description="BUGINESE LETTER NRA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1A0B,
},
[0x1A0C]={
- ["category"]="lo",
- ["description"]="BUGINESE LETTER CA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1A0C, -- ᨌ
+ category="lo",
+ description="BUGINESE LETTER CA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1A0C,
},
[0x1A0D]={
- ["category"]="lo",
- ["description"]="BUGINESE LETTER JA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1A0D, -- ᨍ
+ category="lo",
+ description="BUGINESE LETTER JA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1A0D,
},
[0x1A0E]={
- ["category"]="lo",
- ["description"]="BUGINESE LETTER NYA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1A0E, -- ᨎ
+ category="lo",
+ description="BUGINESE LETTER NYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1A0E,
},
[0x1A0F]={
- ["category"]="lo",
- ["description"]="BUGINESE LETTER NYCA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1A0F, -- ᨏ
+ category="lo",
+ description="BUGINESE LETTER NYCA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1A0F,
},
[0x1A10]={
- ["category"]="lo",
- ["description"]="BUGINESE LETTER YA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1A10, -- ᨐ
+ category="lo",
+ description="BUGINESE LETTER YA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1A10,
},
[0x1A11]={
- ["category"]="lo",
- ["description"]="BUGINESE LETTER RA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1A11, -- ᨑ
+ category="lo",
+ description="BUGINESE LETTER RA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1A11,
},
[0x1A12]={
- ["category"]="lo",
- ["description"]="BUGINESE LETTER LA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1A12, -- ᨒ
+ category="lo",
+ description="BUGINESE LETTER LA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1A12,
},
[0x1A13]={
- ["category"]="lo",
- ["description"]="BUGINESE LETTER VA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1A13, -- ᨓ
+ category="lo",
+ description="BUGINESE LETTER VA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1A13,
},
[0x1A14]={
- ["category"]="lo",
- ["description"]="BUGINESE LETTER SA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1A14, -- ᨔ
+ category="lo",
+ description="BUGINESE LETTER SA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1A14,
},
[0x1A15]={
- ["category"]="lo",
- ["description"]="BUGINESE LETTER A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1A15, -- ᨕ
+ category="lo",
+ description="BUGINESE LETTER A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1A15,
},
[0x1A16]={
- ["category"]="lo",
- ["description"]="BUGINESE LETTER HA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1A16, -- ᨖ
+ category="lo",
+ description="BUGINESE LETTER HA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1A16,
},
[0x1A17]={
- ["category"]="mn",
- ["description"]="BUGINESE VOWEL SIGN I",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1A17, -- ᨗ
+ category="mn",
+ description="BUGINESE VOWEL SIGN I",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1A17,
},
[0x1A18]={
- ["category"]="mn",
- ["description"]="BUGINESE VOWEL SIGN U",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1A18, -- ᨘ
+ category="mn",
+ description="BUGINESE VOWEL SIGN U",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1A18,
},
[0x1A19]={
- ["category"]="mc",
- ["description"]="BUGINESE VOWEL SIGN E",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1A19, -- ᨙ
+ category="mc",
+ description="BUGINESE VOWEL SIGN E",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x1A19,
},
[0x1A1A]={
- ["category"]="mc",
- ["description"]="BUGINESE VOWEL SIGN O",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1A1A, -- ᨚ
+ category="mc",
+ description="BUGINESE VOWEL SIGN O",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x1A1A,
},
[0x1A1B]={
- ["category"]="mc",
- ["description"]="BUGINESE VOWEL SIGN AE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1A1B, -- ᨛ
+ category="mc",
+ description="BUGINESE VOWEL SIGN AE",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x1A1B,
},
[0x1A1E]={
- ["category"]="po",
- ["description"]="BUGINESE PALLAWA",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x1A1E, -- ᨞
+ category="po",
+ description="BUGINESE PALLAWA",
+ direction="l",
+ linebreak="ba",
+ unicodeslot=0x1A1E,
},
[0x1A1F]={
- ["category"]="po",
- ["description"]="BUGINESE END OF SECTION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1A1F, -- ᨟
+ category="po",
+ description="BUGINESE END OF SECTION",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1A1F,
},
[0x1B00]={
- ["category"]="mn",
- ["description"]="BALINESE SIGN ULU RICEM",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1B00, -- ᬀ
+ category="mn",
+ description="BALINESE SIGN ULU RICEM",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1B00,
},
[0x1B01]={
- ["category"]="mn",
- ["description"]="BALINESE SIGN ULU CANDRA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1B01, -- ᬁ
+ category="mn",
+ description="BALINESE SIGN ULU CANDRA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1B01,
},
[0x1B02]={
- ["category"]="mn",
- ["description"]="BALINESE SIGN CECEK",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1B02, -- ᬂ
+ category="mn",
+ description="BALINESE SIGN CECEK",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1B02,
},
[0x1B03]={
- ["category"]="mn",
- ["description"]="BALINESE SIGN SURANG",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1B03, -- ᬃ
+ category="mn",
+ description="BALINESE SIGN SURANG",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1B03,
},
[0x1B04]={
- ["category"]="mc",
- ["description"]="BALINESE SIGN BISAH",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1B04, -- ᬄ
+ category="mc",
+ description="BALINESE SIGN BISAH",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x1B04,
},
[0x1B05]={
- ["category"]="lo",
- ["description"]="BALINESE LETTER AKARA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B05, -- ᬅ
+ category="lo",
+ description="BALINESE LETTER AKARA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B05,
},
[0x1B06]={
- ["category"]="lo",
- ["description"]="BALINESE LETTER AKARA TEDUNG",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x1B05, 0x1B35 },
- ["unicodeslot"]=0x1B06, -- ᬆ
+ category="lo",
+ description="BALINESE LETTER AKARA TEDUNG",
+ direction="l",
+ linebreak="al",
+ specials={ "char", 0x1B05, 0x1B35 },
+ unicodeslot=0x1B06,
},
[0x1B07]={
- ["category"]="lo",
- ["description"]="BALINESE LETTER IKARA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B07, -- ᬇ
+ category="lo",
+ description="BALINESE LETTER IKARA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B07,
},
[0x1B08]={
- ["category"]="lo",
- ["description"]="BALINESE LETTER IKARA TEDUNG",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x1B07, 0x1B35 },
- ["unicodeslot"]=0x1B08, -- ᬈ
+ category="lo",
+ description="BALINESE LETTER IKARA TEDUNG",
+ direction="l",
+ linebreak="al",
+ specials={ "char", 0x1B07, 0x1B35 },
+ unicodeslot=0x1B08,
},
[0x1B09]={
- ["category"]="lo",
- ["description"]="BALINESE LETTER UKARA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B09, -- ᬉ
+ category="lo",
+ description="BALINESE LETTER UKARA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B09,
},
[0x1B0A]={
- ["category"]="lo",
- ["description"]="BALINESE LETTER UKARA TEDUNG",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x1B09, 0x1B35 },
- ["unicodeslot"]=0x1B0A, -- ᬊ
+ category="lo",
+ description="BALINESE LETTER UKARA TEDUNG",
+ direction="l",
+ linebreak="al",
+ specials={ "char", 0x1B09, 0x1B35 },
+ unicodeslot=0x1B0A,
},
[0x1B0B]={
- ["category"]="lo",
- ["description"]="BALINESE LETTER RA REPA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B0B, -- ᬋ
+ category="lo",
+ description="BALINESE LETTER RA REPA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B0B,
},
[0x1B0C]={
- ["category"]="lo",
- ["description"]="BALINESE LETTER RA REPA TEDUNG",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x1B0B, 0x1B35 },
- ["unicodeslot"]=0x1B0C, -- ᬌ
+ category="lo",
+ description="BALINESE LETTER RA REPA TEDUNG",
+ direction="l",
+ linebreak="al",
+ specials={ "char", 0x1B0B, 0x1B35 },
+ unicodeslot=0x1B0C,
},
[0x1B0D]={
- ["category"]="lo",
- ["description"]="BALINESE LETTER LA LENGA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B0D, -- ᬍ
+ category="lo",
+ description="BALINESE LETTER LA LENGA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B0D,
},
[0x1B0E]={
- ["category"]="lo",
- ["description"]="BALINESE LETTER LA LENGA TEDUNG",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x1B0D, 0x1B35 },
- ["unicodeslot"]=0x1B0E, -- ᬎ
+ category="lo",
+ description="BALINESE LETTER LA LENGA TEDUNG",
+ direction="l",
+ linebreak="al",
+ specials={ "char", 0x1B0D, 0x1B35 },
+ unicodeslot=0x1B0E,
},
[0x1B0F]={
- ["category"]="lo",
- ["description"]="BALINESE LETTER EKARA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B0F, -- ᬏ
+ category="lo",
+ description="BALINESE LETTER EKARA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B0F,
},
[0x1B10]={
- ["category"]="lo",
- ["description"]="BALINESE LETTER AIKARA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B10, -- ᬐ
+ category="lo",
+ description="BALINESE LETTER AIKARA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B10,
},
[0x1B11]={
- ["category"]="lo",
- ["description"]="BALINESE LETTER OKARA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B11, -- ᬑ
+ category="lo",
+ description="BALINESE LETTER OKARA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B11,
},
[0x1B12]={
- ["category"]="lo",
- ["description"]="BALINESE LETTER OKARA TEDUNG",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x1B11, 0x1B35 },
- ["unicodeslot"]=0x1B12, -- ᬒ
+ category="lo",
+ description="BALINESE LETTER OKARA TEDUNG",
+ direction="l",
+ linebreak="al",
+ specials={ "char", 0x1B11, 0x1B35 },
+ unicodeslot=0x1B12,
},
[0x1B13]={
- ["category"]="lo",
- ["description"]="BALINESE LETTER KA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B13, -- ᬓ
+ category="lo",
+ description="BALINESE LETTER KA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B13,
},
[0x1B14]={
- ["category"]="lo",
- ["description"]="BALINESE LETTER KA MAHAPRANA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B14, -- ᬔ
+ category="lo",
+ description="BALINESE LETTER KA MAHAPRANA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B14,
},
[0x1B15]={
- ["category"]="lo",
- ["description"]="BALINESE LETTER GA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B15, -- ᬕ
+ category="lo",
+ description="BALINESE LETTER GA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B15,
},
[0x1B16]={
- ["category"]="lo",
- ["description"]="BALINESE LETTER GA GORA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B16, -- ᬖ
+ category="lo",
+ description="BALINESE LETTER GA GORA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B16,
},
[0x1B17]={
- ["category"]="lo",
- ["description"]="BALINESE LETTER NGA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B17, -- ᬗ
+ category="lo",
+ description="BALINESE LETTER NGA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B17,
},
[0x1B18]={
- ["category"]="lo",
- ["description"]="BALINESE LETTER CA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B18, -- ᬘ
+ category="lo",
+ description="BALINESE LETTER CA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B18,
},
[0x1B19]={
- ["category"]="lo",
- ["description"]="BALINESE LETTER CA LACA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B19, -- ᬙ
+ category="lo",
+ description="BALINESE LETTER CA LACA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B19,
},
[0x1B1A]={
- ["category"]="lo",
- ["description"]="BALINESE LETTER JA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B1A, -- ᬚ
+ category="lo",
+ description="BALINESE LETTER JA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B1A,
},
[0x1B1B]={
- ["category"]="lo",
- ["description"]="BALINESE LETTER JA JERA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B1B, -- ᬛ
+ category="lo",
+ description="BALINESE LETTER JA JERA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B1B,
},
[0x1B1C]={
- ["category"]="lo",
- ["description"]="BALINESE LETTER NYA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B1C, -- ᬜ
+ category="lo",
+ description="BALINESE LETTER NYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B1C,
},
[0x1B1D]={
- ["category"]="lo",
- ["description"]="BALINESE LETTER TA LATIK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B1D, -- ᬝ
+ category="lo",
+ description="BALINESE LETTER TA LATIK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B1D,
},
[0x1B1E]={
- ["category"]="lo",
- ["description"]="BALINESE LETTER TA MURDA MAHAPRANA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B1E, -- ᬞ
+ category="lo",
+ description="BALINESE LETTER TA MURDA MAHAPRANA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B1E,
},
[0x1B1F]={
- ["category"]="lo",
- ["description"]="BALINESE LETTER DA MURDA ALPAPRANA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B1F, -- ᬟ
+ category="lo",
+ description="BALINESE LETTER DA MURDA ALPAPRANA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B1F,
},
[0x1B20]={
- ["category"]="lo",
- ["description"]="BALINESE LETTER DA MURDA MAHAPRANA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B20, -- ᬠ
+ category="lo",
+ description="BALINESE LETTER DA MURDA MAHAPRANA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B20,
},
[0x1B21]={
- ["category"]="lo",
- ["description"]="BALINESE LETTER NA RAMBAT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B21, -- ᬡ
+ category="lo",
+ description="BALINESE LETTER NA RAMBAT",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B21,
},
[0x1B22]={
- ["category"]="lo",
- ["description"]="BALINESE LETTER TA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B22, -- ᬢ
+ category="lo",
+ description="BALINESE LETTER TA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B22,
},
[0x1B23]={
- ["category"]="lo",
- ["description"]="BALINESE LETTER TA TAWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B23, -- ᬣ
+ category="lo",
+ description="BALINESE LETTER TA TAWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B23,
},
[0x1B24]={
- ["category"]="lo",
- ["description"]="BALINESE LETTER DA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B24, -- ᬤ
+ category="lo",
+ description="BALINESE LETTER DA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B24,
},
[0x1B25]={
- ["category"]="lo",
- ["description"]="BALINESE LETTER DA MADU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B25, -- ᬥ
+ category="lo",
+ description="BALINESE LETTER DA MADU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B25,
},
[0x1B26]={
- ["category"]="lo",
- ["description"]="BALINESE LETTER NA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B26, -- ᬦ
+ category="lo",
+ description="BALINESE LETTER NA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B26,
},
[0x1B27]={
- ["category"]="lo",
- ["description"]="BALINESE LETTER PA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B27, -- ᬧ
+ category="lo",
+ description="BALINESE LETTER PA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B27,
},
[0x1B28]={
- ["category"]="lo",
- ["description"]="BALINESE LETTER PA KAPAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B28, -- ᬨ
+ category="lo",
+ description="BALINESE LETTER PA KAPAL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B28,
},
[0x1B29]={
- ["category"]="lo",
- ["description"]="BALINESE LETTER BA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B29, -- ᬩ
+ category="lo",
+ description="BALINESE LETTER BA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B29,
},
[0x1B2A]={
- ["category"]="lo",
- ["description"]="BALINESE LETTER BA KEMBANG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B2A, -- ᬪ
+ category="lo",
+ description="BALINESE LETTER BA KEMBANG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B2A,
},
[0x1B2B]={
- ["category"]="lo",
- ["description"]="BALINESE LETTER MA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B2B, -- ᬫ
+ category="lo",
+ description="BALINESE LETTER MA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B2B,
},
[0x1B2C]={
- ["category"]="lo",
- ["description"]="BALINESE LETTER YA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B2C, -- ᬬ
+ category="lo",
+ description="BALINESE LETTER YA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B2C,
},
[0x1B2D]={
- ["category"]="lo",
- ["description"]="BALINESE LETTER RA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B2D, -- ᬭ
+ category="lo",
+ description="BALINESE LETTER RA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B2D,
},
[0x1B2E]={
- ["category"]="lo",
- ["description"]="BALINESE LETTER LA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B2E, -- ᬮ
+ category="lo",
+ description="BALINESE LETTER LA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B2E,
},
[0x1B2F]={
- ["category"]="lo",
- ["description"]="BALINESE LETTER WA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B2F, -- ᬯ
+ category="lo",
+ description="BALINESE LETTER WA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B2F,
},
[0x1B30]={
- ["category"]="lo",
- ["description"]="BALINESE LETTER SA SAGA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B30, -- ᬰ
+ category="lo",
+ description="BALINESE LETTER SA SAGA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B30,
},
[0x1B31]={
- ["category"]="lo",
- ["description"]="BALINESE LETTER SA SAPA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B31, -- ᬱ
+ category="lo",
+ description="BALINESE LETTER SA SAPA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B31,
},
[0x1B32]={
- ["category"]="lo",
- ["description"]="BALINESE LETTER SA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B32, -- ᬲ
+ category="lo",
+ description="BALINESE LETTER SA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B32,
},
[0x1B33]={
- ["category"]="lo",
- ["description"]="BALINESE LETTER HA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B33, -- ᬳ
+ category="lo",
+ description="BALINESE LETTER HA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B33,
},
[0x1B34]={
- ["category"]="mn",
- ["description"]="BALINESE SIGN REREKAN",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1B34, -- ᬴
+ category="mn",
+ description="BALINESE SIGN REREKAN",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1B34,
},
[0x1B35]={
- ["category"]="mc",
- ["description"]="BALINESE VOWEL SIGN TEDUNG",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1B35, -- ᬵ
+ category="mc",
+ description="BALINESE VOWEL SIGN TEDUNG",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x1B35,
},
[0x1B36]={
- ["category"]="mn",
- ["description"]="BALINESE VOWEL SIGN ULU",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1B36, -- ᬶ
+ category="mn",
+ description="BALINESE VOWEL SIGN ULU",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1B36,
},
[0x1B37]={
- ["category"]="mn",
- ["description"]="BALINESE VOWEL SIGN ULU SARI",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1B37, -- ᬷ
+ category="mn",
+ description="BALINESE VOWEL SIGN ULU SARI",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1B37,
},
[0x1B38]={
- ["category"]="mn",
- ["description"]="BALINESE VOWEL SIGN SUKU",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1B38, -- ᬸ
+ category="mn",
+ description="BALINESE VOWEL SIGN SUKU",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1B38,
},
[0x1B39]={
- ["category"]="mn",
- ["description"]="BALINESE VOWEL SIGN SUKU ILUT",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1B39, -- ᬹ
+ category="mn",
+ description="BALINESE VOWEL SIGN SUKU ILUT",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1B39,
},
[0x1B3A]={
- ["category"]="mn",
- ["description"]="BALINESE VOWEL SIGN RA REPA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1B3A, -- ᬺ
+ category="mn",
+ description="BALINESE VOWEL SIGN RA REPA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1B3A,
},
[0x1B3B]={
- ["category"]="mc",
- ["description"]="BALINESE VOWEL SIGN RA REPA TEDUNG",
- ["linebreak"]="cm",
- ["specials"]={ "char", 0x1B3A, 0x1B35 },
- ["unicodeslot"]=0x1B3B, -- ᬻ
+ category="mc",
+ description="BALINESE VOWEL SIGN RA REPA TEDUNG",
+ direction="l",
+ linebreak="cm",
+ specials={ "char", 0x1B3A, 0x1B35 },
+ unicodeslot=0x1B3B,
},
[0x1B3C]={
- ["category"]="mn",
- ["description"]="BALINESE VOWEL SIGN LA LENGA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1B3C, -- ᬼ
+ category="mn",
+ description="BALINESE VOWEL SIGN LA LENGA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1B3C,
},
[0x1B3D]={
- ["category"]="mc",
- ["description"]="BALINESE VOWEL SIGN LA LENGA TEDUNG",
- ["linebreak"]="cm",
- ["specials"]={ "char", 0x1B3C, 0x1B35 },
- ["unicodeslot"]=0x1B3D, -- ᬽ
+ category="mc",
+ description="BALINESE VOWEL SIGN LA LENGA TEDUNG",
+ direction="l",
+ linebreak="cm",
+ specials={ "char", 0x1B3C, 0x1B35 },
+ unicodeslot=0x1B3D,
},
[0x1B3E]={
- ["category"]="mc",
- ["description"]="BALINESE VOWEL SIGN TALING",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1B3E, -- ᬾ
+ category="mc",
+ description="BALINESE VOWEL SIGN TALING",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x1B3E,
},
[0x1B3F]={
- ["category"]="mc",
- ["description"]="BALINESE VOWEL SIGN TALING REPA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1B3F, -- ᬿ
+ category="mc",
+ description="BALINESE VOWEL SIGN TALING REPA",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x1B3F,
},
[0x1B40]={
- ["category"]="mc",
- ["description"]="BALINESE VOWEL SIGN TALING TEDUNG",
- ["linebreak"]="cm",
- ["specials"]={ "char", 0x1B3E, 0x1B35 },
- ["unicodeslot"]=0x1B40, -- ᭀ
+ category="mc",
+ description="BALINESE VOWEL SIGN TALING TEDUNG",
+ direction="l",
+ linebreak="cm",
+ specials={ "char", 0x1B3E, 0x1B35 },
+ unicodeslot=0x1B40,
},
[0x1B41]={
- ["category"]="mc",
- ["description"]="BALINESE VOWEL SIGN TALING REPA TEDUNG",
- ["linebreak"]="cm",
- ["specials"]={ "char", 0x1B3F, 0x1B35 },
- ["unicodeslot"]=0x1B41, -- ᭁ
+ category="mc",
+ description="BALINESE VOWEL SIGN TALING REPA TEDUNG",
+ direction="l",
+ linebreak="cm",
+ specials={ "char", 0x1B3F, 0x1B35 },
+ unicodeslot=0x1B41,
},
[0x1B42]={
- ["category"]="mn",
- ["description"]="BALINESE VOWEL SIGN PEPET",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1B42, -- ᭂ
+ category="mn",
+ description="BALINESE VOWEL SIGN PEPET",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1B42,
},
[0x1B43]={
- ["category"]="mc",
- ["description"]="BALINESE VOWEL SIGN PEPET TEDUNG",
- ["linebreak"]="cm",
- ["specials"]={ "char", 0x1B42, 0x1B35 },
- ["unicodeslot"]=0x1B43, -- ᭃ
+ category="mc",
+ description="BALINESE VOWEL SIGN PEPET TEDUNG",
+ direction="l",
+ linebreak="cm",
+ specials={ "char", 0x1B42, 0x1B35 },
+ unicodeslot=0x1B43,
},
[0x1B44]={
- ["category"]="mc",
- ["description"]="BALINESE ADEG ADEG",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1B44, -- ᭄
+ category="mc",
+ description="BALINESE ADEG ADEG",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x1B44,
},
[0x1B45]={
- ["category"]="lo",
- ["description"]="BALINESE LETTER KAF SASAK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B45, -- ᭅ
+ category="lo",
+ description="BALINESE LETTER KAF SASAK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B45,
},
[0x1B46]={
- ["category"]="lo",
- ["description"]="BALINESE LETTER KHOT SASAK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B46, -- ᭆ
+ category="lo",
+ description="BALINESE LETTER KHOT SASAK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B46,
},
[0x1B47]={
- ["category"]="lo",
- ["description"]="BALINESE LETTER TZIR SASAK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B47, -- ᭇ
+ category="lo",
+ description="BALINESE LETTER TZIR SASAK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B47,
},
[0x1B48]={
- ["category"]="lo",
- ["description"]="BALINESE LETTER EF SASAK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B48, -- ᭈ
+ category="lo",
+ description="BALINESE LETTER EF SASAK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B48,
},
[0x1B49]={
- ["category"]="lo",
- ["description"]="BALINESE LETTER VE SASAK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B49, -- ᭉ
+ category="lo",
+ description="BALINESE LETTER VE SASAK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B49,
},
[0x1B4A]={
- ["category"]="lo",
- ["description"]="BALINESE LETTER ZAL SASAK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B4A, -- ᭊ
+ category="lo",
+ description="BALINESE LETTER ZAL SASAK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B4A,
},
[0x1B4B]={
- ["category"]="lo",
- ["description"]="BALINESE LETTER ASYURA SASAK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B4B, -- ᭋ
+ category="lo",
+ description="BALINESE LETTER ASYURA SASAK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B4B,
},
[0x1B50]={
- ["category"]="nd",
- ["description"]="BALINESE DIGIT ZERO",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x1B50, -- ᭐
+ category="nd",
+ description="BALINESE DIGIT ZERO",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x1B50,
},
[0x1B51]={
- ["category"]="nd",
- ["description"]="BALINESE DIGIT ONE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x1B51, -- ᭑
+ category="nd",
+ description="BALINESE DIGIT ONE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x1B51,
},
[0x1B52]={
- ["category"]="nd",
- ["description"]="BALINESE DIGIT TWO",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x1B52, -- ᭒
+ category="nd",
+ description="BALINESE DIGIT TWO",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x1B52,
},
[0x1B53]={
- ["category"]="nd",
- ["description"]="BALINESE DIGIT THREE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x1B53, -- ᭓
+ category="nd",
+ description="BALINESE DIGIT THREE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x1B53,
},
[0x1B54]={
- ["category"]="nd",
- ["description"]="BALINESE DIGIT FOUR",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x1B54, -- ᭔
+ category="nd",
+ description="BALINESE DIGIT FOUR",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x1B54,
},
[0x1B55]={
- ["category"]="nd",
- ["description"]="BALINESE DIGIT FIVE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x1B55, -- ᭕
+ category="nd",
+ description="BALINESE DIGIT FIVE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x1B55,
},
[0x1B56]={
- ["category"]="nd",
- ["description"]="BALINESE DIGIT SIX",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x1B56, -- ᭖
+ category="nd",
+ description="BALINESE DIGIT SIX",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x1B56,
},
[0x1B57]={
- ["category"]="nd",
- ["description"]="BALINESE DIGIT SEVEN",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x1B57, -- ᭗
+ category="nd",
+ description="BALINESE DIGIT SEVEN",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x1B57,
},
[0x1B58]={
- ["category"]="nd",
- ["description"]="BALINESE DIGIT EIGHT",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x1B58, -- ᭘
+ category="nd",
+ description="BALINESE DIGIT EIGHT",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x1B58,
},
[0x1B59]={
- ["category"]="nd",
- ["description"]="BALINESE DIGIT NINE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x1B59, -- ᭙
+ category="nd",
+ description="BALINESE DIGIT NINE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x1B59,
},
[0x1B5A]={
- ["category"]="po",
- ["description"]="BALINESE PANTI",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x1B5A, -- ᭚
+ category="po",
+ description="BALINESE PANTI",
+ direction="l",
+ linebreak="ba",
+ unicodeslot=0x1B5A,
},
[0x1B5B]={
- ["category"]="po",
- ["description"]="BALINESE PAMADA",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x1B5B, -- ᭛
+ category="po",
+ description="BALINESE PAMADA",
+ direction="l",
+ linebreak="ba",
+ unicodeslot=0x1B5B,
},
[0x1B5C]={
- ["category"]="po",
- ["description"]="BALINESE WINDU",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x1B5C, -- ᭜
+ category="po",
+ description="BALINESE WINDU",
+ direction="l",
+ linebreak="ba",
+ unicodeslot=0x1B5C,
},
[0x1B5D]={
- ["category"]="po",
- ["description"]="BALINESE CARIK PAMUNGKAH",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x1B5D, -- ᭝
+ category="po",
+ description="BALINESE CARIK PAMUNGKAH",
+ direction="l",
+ linebreak="ba",
+ unicodeslot=0x1B5D,
},
[0x1B5E]={
- ["category"]="po",
- ["description"]="BALINESE CARIK SIKI",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x1B5E, -- ᭞
+ category="po",
+ description="BALINESE CARIK SIKI",
+ direction="l",
+ linebreak="ba",
+ unicodeslot=0x1B5E,
},
[0x1B5F]={
- ["category"]="po",
- ["description"]="BALINESE CARIK PAREREN",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x1B5F, -- ᭟
+ category="po",
+ description="BALINESE CARIK PAREREN",
+ direction="l",
+ linebreak="ba",
+ unicodeslot=0x1B5F,
},
[0x1B60]={
- ["category"]="po",
- ["description"]="BALINESE PAMENENG",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x1B60, -- ᭠
+ category="po",
+ description="BALINESE PAMENENG",
+ direction="l",
+ linebreak="ba",
+ unicodeslot=0x1B60,
},
[0x1B61]={
- ["category"]="so",
- ["description"]="BALINESE MUSICAL SYMBOL DONG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B61, -- ᭡
+ category="so",
+ description="BALINESE MUSICAL SYMBOL DONG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B61,
},
[0x1B62]={
- ["category"]="so",
- ["description"]="BALINESE MUSICAL SYMBOL DENG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B62, -- ᭢
+ category="so",
+ description="BALINESE MUSICAL SYMBOL DENG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B62,
},
[0x1B63]={
- ["category"]="so",
- ["description"]="BALINESE MUSICAL SYMBOL DUNG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B63, -- ᭣
+ category="so",
+ description="BALINESE MUSICAL SYMBOL DUNG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B63,
},
[0x1B64]={
- ["category"]="so",
- ["description"]="BALINESE MUSICAL SYMBOL DANG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B64, -- ᭤
+ category="so",
+ description="BALINESE MUSICAL SYMBOL DANG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B64,
},
[0x1B65]={
- ["category"]="so",
- ["description"]="BALINESE MUSICAL SYMBOL DANG SURANG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B65, -- ᭥
+ category="so",
+ description="BALINESE MUSICAL SYMBOL DANG SURANG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B65,
},
[0x1B66]={
- ["category"]="so",
- ["description"]="BALINESE MUSICAL SYMBOL DING",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B66, -- ᭦
+ category="so",
+ description="BALINESE MUSICAL SYMBOL DING",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B66,
},
[0x1B67]={
- ["category"]="so",
- ["description"]="BALINESE MUSICAL SYMBOL DAENG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B67, -- ᭧
+ category="so",
+ description="BALINESE MUSICAL SYMBOL DAENG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B67,
},
[0x1B68]={
- ["category"]="so",
- ["description"]="BALINESE MUSICAL SYMBOL DEUNG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B68, -- ᭨
+ category="so",
+ description="BALINESE MUSICAL SYMBOL DEUNG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B68,
},
[0x1B69]={
- ["category"]="so",
- ["description"]="BALINESE MUSICAL SYMBOL DAING",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B69, -- ᭩
+ category="so",
+ description="BALINESE MUSICAL SYMBOL DAING",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B69,
},
[0x1B6A]={
- ["category"]="so",
- ["description"]="BALINESE MUSICAL SYMBOL DANG GEDE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B6A, -- ᭪
+ category="so",
+ description="BALINESE MUSICAL SYMBOL DANG GEDE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B6A,
},
[0x1B6B]={
- ["category"]="mn",
- ["description"]="BALINESE MUSICAL SYMBOL COMBINING TEGEH",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1B6B, -- ᭫
+ category="mn",
+ description="BALINESE MUSICAL SYMBOL COMBINING TEGEH",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1B6B,
},
[0x1B6C]={
- ["category"]="mn",
- ["description"]="BALINESE MUSICAL SYMBOL COMBINING ENDEP",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1B6C, -- ᭬
+ category="mn",
+ description="BALINESE MUSICAL SYMBOL COMBINING ENDEP",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1B6C,
},
[0x1B6D]={
- ["category"]="mn",
- ["description"]="BALINESE MUSICAL SYMBOL COMBINING KEMPUL",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1B6D, -- ᭭
+ category="mn",
+ description="BALINESE MUSICAL SYMBOL COMBINING KEMPUL",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1B6D,
},
[0x1B6E]={
- ["category"]="mn",
- ["description"]="BALINESE MUSICAL SYMBOL COMBINING KEMPLI",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1B6E, -- ᭮
+ category="mn",
+ description="BALINESE MUSICAL SYMBOL COMBINING KEMPLI",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1B6E,
},
[0x1B6F]={
- ["category"]="mn",
- ["description"]="BALINESE MUSICAL SYMBOL COMBINING JEGOGAN",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1B6F, -- ᭯
+ category="mn",
+ description="BALINESE MUSICAL SYMBOL COMBINING JEGOGAN",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1B6F,
},
[0x1B70]={
- ["category"]="mn",
- ["description"]="BALINESE MUSICAL SYMBOL COMBINING KEMPUL WITH JEGOGAN",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1B70, -- ᭰
+ category="mn",
+ description="BALINESE MUSICAL SYMBOL COMBINING KEMPUL WITH JEGOGAN",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1B70,
},
[0x1B71]={
- ["category"]="mn",
- ["description"]="BALINESE MUSICAL SYMBOL COMBINING KEMPLI WITH JEGOGAN",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1B71, -- ᭱
+ category="mn",
+ description="BALINESE MUSICAL SYMBOL COMBINING KEMPLI WITH JEGOGAN",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1B71,
},
[0x1B72]={
- ["category"]="mn",
- ["description"]="BALINESE MUSICAL SYMBOL COMBINING BENDE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1B72, -- ᭲
+ category="mn",
+ description="BALINESE MUSICAL SYMBOL COMBINING BENDE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1B72,
},
[0x1B73]={
- ["category"]="mn",
- ["description"]="BALINESE MUSICAL SYMBOL COMBINING GONG",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1B73, -- ᭳
+ category="mn",
+ description="BALINESE MUSICAL SYMBOL COMBINING GONG",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1B73,
},
[0x1B74]={
- ["category"]="so",
- ["description"]="BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DUG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B74, -- ᭴
+ category="so",
+ description="BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DUG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B74,
},
[0x1B75]={
- ["category"]="so",
- ["description"]="BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DAG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B75, -- ᭵
+ category="so",
+ description="BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DAG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B75,
},
[0x1B76]={
- ["category"]="so",
- ["description"]="BALINESE MUSICAL SYMBOL RIGHT-HAND CLOSED TUK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B76, -- ᭶
+ category="so",
+ description="BALINESE MUSICAL SYMBOL RIGHT-HAND CLOSED TUK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B76,
},
[0x1B77]={
- ["category"]="so",
- ["description"]="BALINESE MUSICAL SYMBOL RIGHT-HAND CLOSED TAK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B77, -- ᭷
+ category="so",
+ description="BALINESE MUSICAL SYMBOL RIGHT-HAND CLOSED TAK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B77,
},
[0x1B78]={
- ["category"]="so",
- ["description"]="BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PANG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B78, -- ᭸
+ category="so",
+ description="BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PANG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B78,
},
[0x1B79]={
- ["category"]="so",
- ["description"]="BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PUNG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B79, -- ᭹
+ category="so",
+ description="BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PUNG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B79,
},
[0x1B7A]={
- ["category"]="so",
- ["description"]="BALINESE MUSICAL SYMBOL LEFT-HAND CLOSED PLAK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B7A, -- ᭺
+ category="so",
+ description="BALINESE MUSICAL SYMBOL LEFT-HAND CLOSED PLAK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B7A,
},
[0x1B7B]={
- ["category"]="so",
- ["description"]="BALINESE MUSICAL SYMBOL LEFT-HAND CLOSED PLUK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B7B, -- ᭻
+ category="so",
+ description="BALINESE MUSICAL SYMBOL LEFT-HAND CLOSED PLUK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B7B,
},
[0x1B7C]={
- ["category"]="so",
- ["description"]="BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1B7C, -- ᭼
+ category="so",
+ description="BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B7C,
},
[0x1D00]={
- ["category"]="ll",
- ["description"]="LATIN LETTER SMALL CAPITAL A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D00, -- ᴀ
+ category="ll",
+ description="LATIN LETTER SMALL CAPITAL A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D00,
},
[0x1D01]={
- ["category"]="ll",
- ["description"]="LATIN LETTER SMALL CAPITAL AE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D01, -- ᴁ
+ category="ll",
+ description="LATIN LETTER SMALL CAPITAL AE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D01,
},
[0x1D02]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER TURNED AE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D02, -- ᴂ
+ category="ll",
+ description="LATIN SMALL LETTER TURNED AE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D02,
},
[0x1D03]={
- ["category"]="ll",
- ["description"]="LATIN LETTER SMALL CAPITAL BARRED B",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D03, -- ᴃ
+ category="ll",
+ description="LATIN LETTER SMALL CAPITAL BARRED B",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D03,
},
[0x1D04]={
- ["category"]="ll",
- ["description"]="LATIN LETTER SMALL CAPITAL C",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D04, -- ᴄ
+ category="ll",
+ description="LATIN LETTER SMALL CAPITAL C",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D04,
},
[0x1D05]={
- ["category"]="ll",
- ["description"]="LATIN LETTER SMALL CAPITAL D",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D05, -- ᴅ
+ category="ll",
+ description="LATIN LETTER SMALL CAPITAL D",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D05,
},
[0x1D06]={
- ["category"]="ll",
- ["description"]="LATIN LETTER SMALL CAPITAL ETH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D06, -- ᴆ
+ category="ll",
+ description="LATIN LETTER SMALL CAPITAL ETH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D06,
},
[0x1D07]={
- ["category"]="ll",
- ["description"]="LATIN LETTER SMALL CAPITAL E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D07, -- ᴇ
+ category="ll",
+ description="LATIN LETTER SMALL CAPITAL E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D07,
},
[0x1D08]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER TURNED OPEN E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D08, -- ᴈ
+ category="ll",
+ description="LATIN SMALL LETTER TURNED OPEN E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D08,
},
[0x1D09]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER TURNED I",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D09, -- ᴉ
+ category="ll",
+ description="LATIN SMALL LETTER TURNED I",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D09,
},
[0x1D0A]={
- ["category"]="ll",
- ["description"]="LATIN LETTER SMALL CAPITAL J",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0A, -- ᴊ
+ category="ll",
+ description="LATIN LETTER SMALL CAPITAL J",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0A,
},
[0x1D0B]={
- ["category"]="ll",
- ["description"]="LATIN LETTER SMALL CAPITAL K",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0B, -- ᴋ
+ category="ll",
+ description="LATIN LETTER SMALL CAPITAL K",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0B,
},
[0x1D0C]={
- ["category"]="ll",
- ["description"]="LATIN LETTER SMALL CAPITAL L WITH STROKE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0C, -- ᴌ
+ category="ll",
+ description="LATIN LETTER SMALL CAPITAL L WITH STROKE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0C,
},
[0x1D0D]={
- ["category"]="ll",
- ["description"]="LATIN LETTER SMALL CAPITAL M",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0D, -- ᴍ
+ category="ll",
+ description="LATIN LETTER SMALL CAPITAL M",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0D,
},
[0x1D0E]={
- ["category"]="ll",
- ["description"]="LATIN LETTER SMALL CAPITAL REVERSED N",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0E, -- ᴎ
+ category="ll",
+ description="LATIN LETTER SMALL CAPITAL REVERSED N",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0E,
},
[0x1D0F]={
- ["category"]="ll",
- ["description"]="LATIN LETTER SMALL CAPITAL O",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0F, -- ᴏ
+ category="ll",
+ description="LATIN LETTER SMALL CAPITAL O",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0F,
},
[0x1D10]={
- ["category"]="ll",
- ["description"]="LATIN LETTER SMALL CAPITAL OPEN O",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D10, -- ᴐ
+ category="ll",
+ description="LATIN LETTER SMALL CAPITAL OPEN O",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D10,
},
[0x1D11]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER SIDEWAYS O",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D11, -- ᴑ
+ category="ll",
+ description="LATIN SMALL LETTER SIDEWAYS O",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D11,
},
[0x1D12]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER SIDEWAYS OPEN O",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D12, -- ᴒ
+ category="ll",
+ description="LATIN SMALL LETTER SIDEWAYS OPEN O",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D12,
},
[0x1D13]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER SIDEWAYS O WITH STROKE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D13, -- ᴓ
+ category="ll",
+ description="LATIN SMALL LETTER SIDEWAYS O WITH STROKE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D13,
},
[0x1D14]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER TURNED OE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D14, -- ᴔ
+ category="ll",
+ description="LATIN SMALL LETTER TURNED OE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D14,
},
[0x1D15]={
- ["category"]="ll",
- ["description"]="LATIN LETTER SMALL CAPITAL OU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D15, -- ᴕ
+ category="ll",
+ description="LATIN LETTER SMALL CAPITAL OU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D15,
},
[0x1D16]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER TOP HALF O",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D16, -- ᴖ
+ category="ll",
+ description="LATIN SMALL LETTER TOP HALF O",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D16,
},
[0x1D17]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER BOTTOM HALF O",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D17, -- ᴗ
+ category="ll",
+ description="LATIN SMALL LETTER BOTTOM HALF O",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D17,
},
[0x1D18]={
- ["category"]="ll",
- ["description"]="LATIN LETTER SMALL CAPITAL P",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D18, -- ᴘ
+ category="ll",
+ description="LATIN LETTER SMALL CAPITAL P",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D18,
},
[0x1D19]={
- ["category"]="ll",
- ["description"]="LATIN LETTER SMALL CAPITAL REVERSED R",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D19, -- ᴙ
+ category="ll",
+ description="LATIN LETTER SMALL CAPITAL REVERSED R",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D19,
},
[0x1D1A]={
- ["category"]="ll",
- ["description"]="LATIN LETTER SMALL CAPITAL TURNED R",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D1A, -- ᴚ
+ category="ll",
+ description="LATIN LETTER SMALL CAPITAL TURNED R",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D1A,
},
[0x1D1B]={
- ["category"]="ll",
- ["description"]="LATIN LETTER SMALL CAPITAL T",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D1B, -- ᴛ
+ category="ll",
+ description="LATIN LETTER SMALL CAPITAL T",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D1B,
},
[0x1D1C]={
- ["category"]="ll",
- ["description"]="LATIN LETTER SMALL CAPITAL U",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D1C, -- ᴜ
+ category="ll",
+ description="LATIN LETTER SMALL CAPITAL U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D1C,
},
[0x1D1D]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER SIDEWAYS U",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D1D, -- ᴝ
+ category="ll",
+ description="LATIN SMALL LETTER SIDEWAYS U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D1D,
},
[0x1D1E]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER SIDEWAYS DIAERESIZED U",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D1E, -- ᴞ
+ category="ll",
+ description="LATIN SMALL LETTER SIDEWAYS DIAERESIZED U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D1E,
},
[0x1D1F]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER SIDEWAYS TURNED M",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D1F, -- ᴟ
+ category="ll",
+ description="LATIN SMALL LETTER SIDEWAYS TURNED M",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D1F,
},
[0x1D20]={
- ["category"]="ll",
- ["description"]="LATIN LETTER SMALL CAPITAL V",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D20, -- ᴠ
+ category="ll",
+ description="LATIN LETTER SMALL CAPITAL V",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D20,
},
[0x1D21]={
- ["category"]="ll",
- ["description"]="LATIN LETTER SMALL CAPITAL W",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D21, -- ᴡ
+ category="ll",
+ description="LATIN LETTER SMALL CAPITAL W",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D21,
},
[0x1D22]={
- ["category"]="ll",
- ["description"]="LATIN LETTER SMALL CAPITAL Z",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D22, -- ᴢ
+ category="ll",
+ description="LATIN LETTER SMALL CAPITAL Z",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D22,
},
[0x1D23]={
- ["category"]="ll",
- ["description"]="LATIN LETTER SMALL CAPITAL EZH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D23, -- ᴣ
+ category="ll",
+ description="LATIN LETTER SMALL CAPITAL EZH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D23,
},
[0x1D24]={
- ["category"]="ll",
- ["description"]="LATIN LETTER VOICED LARYNGEAL SPIRANT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D24, -- ᴤ
+ category="ll",
+ description="LATIN LETTER VOICED LARYNGEAL SPIRANT",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D24,
},
[0x1D25]={
- ["category"]="ll",
- ["description"]="LATIN LETTER AIN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D25, -- ᴥ
+ category="ll",
+ description="LATIN LETTER AIN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D25,
},
[0x1D26]={
- ["category"]="ll",
- ["description"]="GREEK LETTER SMALL CAPITAL GAMMA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D26, -- ᴦ
+ category="ll",
+ description="GREEK LETTER SMALL CAPITAL GAMMA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D26,
},
[0x1D27]={
- ["category"]="ll",
- ["description"]="GREEK LETTER SMALL CAPITAL LAMDA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D27, -- ᴧ
+ category="ll",
+ description="GREEK LETTER SMALL CAPITAL LAMDA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D27,
},
[0x1D28]={
- ["category"]="ll",
- ["description"]="GREEK LETTER SMALL CAPITAL PI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D28, -- ᴨ
+ category="ll",
+ description="GREEK LETTER SMALL CAPITAL PI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D28,
},
[0x1D29]={
- ["category"]="ll",
- ["description"]="GREEK LETTER SMALL CAPITAL RHO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D29, -- ᴩ
+ category="ll",
+ description="GREEK LETTER SMALL CAPITAL RHO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D29,
},
[0x1D2A]={
- ["category"]="ll",
- ["description"]="GREEK LETTER SMALL CAPITAL PSI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D2A, -- ᴪ
+ category="ll",
+ description="GREEK LETTER SMALL CAPITAL PSI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D2A,
},
[0x1D2B]={
- ["category"]="ll",
- ["description"]="CYRILLIC LETTER SMALL CAPITAL EL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D2B, -- ᴫ
+ category="ll",
+ description="CYRILLIC LETTER SMALL CAPITAL EL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D2B,
},
[0x1D2C]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER CAPITAL A",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0041 },
- ["unicodeslot"]=0x1D2C, -- ᴬ
+ category="lm",
+ description="MODIFIER LETTER CAPITAL A",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x0041 },
+ unicodeslot=0x1D2C,
},
[0x1D2D]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER CAPITAL AE",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x00C6 },
- ["unicodeslot"]=0x1D2D, -- ᴭ
+ category="lm",
+ description="MODIFIER LETTER CAPITAL AE",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x00C6 },
+ unicodeslot=0x1D2D,
},
[0x1D2E]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER CAPITAL B",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0042 },
- ["unicodeslot"]=0x1D2E, -- ᴮ
+ category="lm",
+ description="MODIFIER LETTER CAPITAL B",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x0042 },
+ unicodeslot=0x1D2E,
},
[0x1D2F]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER CAPITAL BARRED B",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D2F, -- ᴯ
+ category="lm",
+ description="MODIFIER LETTER CAPITAL BARRED B",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D2F,
},
[0x1D30]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER CAPITAL D",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0044 },
- ["unicodeslot"]=0x1D30, -- ᴰ
+ category="lm",
+ description="MODIFIER LETTER CAPITAL D",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x0044 },
+ unicodeslot=0x1D30,
},
[0x1D31]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER CAPITAL E",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0045 },
- ["unicodeslot"]=0x1D31, -- ᴱ
+ category="lm",
+ description="MODIFIER LETTER CAPITAL E",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x0045 },
+ unicodeslot=0x1D31,
},
[0x1D32]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER CAPITAL REVERSED E",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x018E },
- ["unicodeslot"]=0x1D32, -- ᴲ
+ category="lm",
+ description="MODIFIER LETTER CAPITAL REVERSED E",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x018E },
+ unicodeslot=0x1D32,
},
[0x1D33]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER CAPITAL G",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0047 },
- ["unicodeslot"]=0x1D33, -- ᴳ
+ category="lm",
+ description="MODIFIER LETTER CAPITAL G",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x0047 },
+ unicodeslot=0x1D33,
},
[0x1D34]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER CAPITAL H",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0048 },
- ["unicodeslot"]=0x1D34, -- ᴴ
+ category="lm",
+ description="MODIFIER LETTER CAPITAL H",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x0048 },
+ unicodeslot=0x1D34,
},
[0x1D35]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER CAPITAL I",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0049 },
- ["unicodeslot"]=0x1D35, -- ᴵ
+ category="lm",
+ description="MODIFIER LETTER CAPITAL I",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x0049 },
+ unicodeslot=0x1D35,
},
[0x1D36]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER CAPITAL J",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x004A },
- ["unicodeslot"]=0x1D36, -- ᴶ
+ category="lm",
+ description="MODIFIER LETTER CAPITAL J",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x004A },
+ unicodeslot=0x1D36,
},
[0x1D37]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER CAPITAL K",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x004B },
- ["unicodeslot"]=0x1D37, -- ᴷ
+ category="lm",
+ description="MODIFIER LETTER CAPITAL K",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x004B },
+ unicodeslot=0x1D37,
},
[0x1D38]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER CAPITAL L",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x004C },
- ["unicodeslot"]=0x1D38, -- ᴸ
+ category="lm",
+ description="MODIFIER LETTER CAPITAL L",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x004C },
+ unicodeslot=0x1D38,
},
[0x1D39]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER CAPITAL M",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x004D },
- ["unicodeslot"]=0x1D39, -- ᴹ
+ category="lm",
+ description="MODIFIER LETTER CAPITAL M",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x004D },
+ unicodeslot=0x1D39,
},
[0x1D3A]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER CAPITAL N",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x004E },
- ["unicodeslot"]=0x1D3A, -- ᴺ
+ category="lm",
+ description="MODIFIER LETTER CAPITAL N",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x004E },
+ unicodeslot=0x1D3A,
},
[0x1D3B]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER CAPITAL REVERSED N",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D3B, -- ᴻ
+ category="lm",
+ description="MODIFIER LETTER CAPITAL REVERSED N",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D3B,
},
[0x1D3C]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER CAPITAL O",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x004F },
- ["unicodeslot"]=0x1D3C, -- ᴼ
+ category="lm",
+ description="MODIFIER LETTER CAPITAL O",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x004F },
+ unicodeslot=0x1D3C,
},
[0x1D3D]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER CAPITAL OU",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0222 },
- ["unicodeslot"]=0x1D3D, -- ᴽ
+ category="lm",
+ description="MODIFIER LETTER CAPITAL OU",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x0222 },
+ unicodeslot=0x1D3D,
},
[0x1D3E]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER CAPITAL P",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0050 },
- ["unicodeslot"]=0x1D3E, -- ᴾ
+ category="lm",
+ description="MODIFIER LETTER CAPITAL P",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x0050 },
+ unicodeslot=0x1D3E,
},
[0x1D3F]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER CAPITAL R",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0052 },
- ["unicodeslot"]=0x1D3F, -- ᴿ
+ category="lm",
+ description="MODIFIER LETTER CAPITAL R",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x0052 },
+ unicodeslot=0x1D3F,
},
[0x1D40]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER CAPITAL T",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0054 },
- ["unicodeslot"]=0x1D40, -- ᵀ
+ category="lm",
+ description="MODIFIER LETTER CAPITAL T",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x0054 },
+ unicodeslot=0x1D40,
},
[0x1D41]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER CAPITAL U",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0055 },
- ["unicodeslot"]=0x1D41, -- ᵁ
+ category="lm",
+ description="MODIFIER LETTER CAPITAL U",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x0055 },
+ unicodeslot=0x1D41,
},
[0x1D42]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER CAPITAL W",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0057 },
- ["unicodeslot"]=0x1D42, -- ᵂ
+ category="lm",
+ description="MODIFIER LETTER CAPITAL W",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x0057 },
+ unicodeslot=0x1D42,
},
[0x1D43]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL A",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0061 },
- ["unicodeslot"]=0x1D43, -- ᵃ
+ category="lm",
+ description="MODIFIER LETTER SMALL A",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x0061 },
+ unicodeslot=0x1D43,
},
[0x1D44]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL TURNED A",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0250 },
- ["unicodeslot"]=0x1D44, -- ᵄ
+ category="lm",
+ description="MODIFIER LETTER SMALL TURNED A",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x0250 },
+ unicodeslot=0x1D44,
},
[0x1D45]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL ALPHA",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0251 },
- ["unicodeslot"]=0x1D45, -- ᵅ
+ category="lm",
+ description="MODIFIER LETTER SMALL ALPHA",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x0251 },
+ unicodeslot=0x1D45,
},
[0x1D46]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL TURNED AE",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x1D02 },
- ["unicodeslot"]=0x1D46, -- ᵆ
+ category="lm",
+ description="MODIFIER LETTER SMALL TURNED AE",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x1D02 },
+ unicodeslot=0x1D46,
},
[0x1D47]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL B",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0062 },
- ["unicodeslot"]=0x1D47, -- ᵇ
+ category="lm",
+ description="MODIFIER LETTER SMALL B",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x0062 },
+ unicodeslot=0x1D47,
},
[0x1D48]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL D",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0064 },
- ["unicodeslot"]=0x1D48, -- ᵈ
+ category="lm",
+ description="MODIFIER LETTER SMALL D",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x0064 },
+ unicodeslot=0x1D48,
},
[0x1D49]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL E",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0065 },
- ["unicodeslot"]=0x1D49, -- ᵉ
+ category="lm",
+ description="MODIFIER LETTER SMALL E",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x0065 },
+ unicodeslot=0x1D49,
},
[0x1D4A]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL SCHWA",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0259 },
- ["unicodeslot"]=0x1D4A, -- ᵊ
+ category="lm",
+ description="MODIFIER LETTER SMALL SCHWA",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x0259 },
+ unicodeslot=0x1D4A,
},
[0x1D4B]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL OPEN E",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x025B },
- ["unicodeslot"]=0x1D4B, -- ᵋ
+ category="lm",
+ description="MODIFIER LETTER SMALL OPEN E",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x025B },
+ unicodeslot=0x1D4B,
},
[0x1D4C]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL TURNED OPEN E",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x025C },
- ["unicodeslot"]=0x1D4C, -- ᵌ
+ category="lm",
+ description="MODIFIER LETTER SMALL TURNED OPEN E",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x025C },
+ unicodeslot=0x1D4C,
},
[0x1D4D]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL G",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0067 },
- ["unicodeslot"]=0x1D4D, -- ᵍ
+ category="lm",
+ description="MODIFIER LETTER SMALL G",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x0067 },
+ unicodeslot=0x1D4D,
},
[0x1D4E]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL TURNED I",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D4E, -- ᵎ
+ category="lm",
+ description="MODIFIER LETTER SMALL TURNED I",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D4E,
},
[0x1D4F]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL K",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x006B },
- ["unicodeslot"]=0x1D4F, -- ᵏ
+ category="lm",
+ description="MODIFIER LETTER SMALL K",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x006B },
+ unicodeslot=0x1D4F,
},
[0x1D50]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL M",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x006D },
- ["unicodeslot"]=0x1D50, -- ᵐ
+ category="lm",
+ description="MODIFIER LETTER SMALL M",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x006D },
+ unicodeslot=0x1D50,
},
[0x1D51]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL ENG",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x014B },
- ["unicodeslot"]=0x1D51, -- ᵑ
+ category="lm",
+ description="MODIFIER LETTER SMALL ENG",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x014B },
+ unicodeslot=0x1D51,
},
[0x1D52]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL O",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x006F },
- ["unicodeslot"]=0x1D52, -- ᵒ
+ category="lm",
+ description="MODIFIER LETTER SMALL O",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x006F },
+ unicodeslot=0x1D52,
},
[0x1D53]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL OPEN O",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0254 },
- ["unicodeslot"]=0x1D53, -- ᵓ
+ category="lm",
+ description="MODIFIER LETTER SMALL OPEN O",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x0254 },
+ unicodeslot=0x1D53,
},
[0x1D54]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL TOP HALF O",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x1D16 },
- ["unicodeslot"]=0x1D54, -- ᵔ
+ category="lm",
+ description="MODIFIER LETTER SMALL TOP HALF O",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x1D16 },
+ unicodeslot=0x1D54,
},
[0x1D55]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL BOTTOM HALF O",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x1D17 },
- ["unicodeslot"]=0x1D55, -- ᵕ
+ category="lm",
+ description="MODIFIER LETTER SMALL BOTTOM HALF O",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x1D17 },
+ unicodeslot=0x1D55,
},
[0x1D56]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL P",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0070 },
- ["unicodeslot"]=0x1D56, -- ᵖ
+ category="lm",
+ description="MODIFIER LETTER SMALL P",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x0070 },
+ unicodeslot=0x1D56,
},
[0x1D57]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL T",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0074 },
- ["unicodeslot"]=0x1D57, -- ᵗ
+ category="lm",
+ description="MODIFIER LETTER SMALL T",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x0074 },
+ unicodeslot=0x1D57,
},
[0x1D58]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL U",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0075 },
- ["unicodeslot"]=0x1D58, -- ᵘ
+ category="lm",
+ description="MODIFIER LETTER SMALL U",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x0075 },
+ unicodeslot=0x1D58,
},
[0x1D59]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL SIDEWAYS U",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x1D1D },
- ["unicodeslot"]=0x1D59, -- ᵙ
+ category="lm",
+ description="MODIFIER LETTER SMALL SIDEWAYS U",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x1D1D },
+ unicodeslot=0x1D59,
},
[0x1D5A]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL TURNED M",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x026F },
- ["unicodeslot"]=0x1D5A, -- ᵚ
+ category="lm",
+ description="MODIFIER LETTER SMALL TURNED M",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x026F },
+ unicodeslot=0x1D5A,
},
[0x1D5B]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL V",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0076 },
- ["unicodeslot"]=0x1D5B, -- ᵛ
+ category="lm",
+ description="MODIFIER LETTER SMALL V",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x0076 },
+ unicodeslot=0x1D5B,
},
[0x1D5C]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL AIN",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x1D25 },
- ["unicodeslot"]=0x1D5C, -- ᵜ
+ category="lm",
+ description="MODIFIER LETTER SMALL AIN",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x1D25 },
+ unicodeslot=0x1D5C,
},
[0x1D5D]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL BETA",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x03B2 },
- ["unicodeslot"]=0x1D5D, -- ᵝ
+ category="lm",
+ description="MODIFIER LETTER SMALL BETA",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x03B2 },
+ unicodeslot=0x1D5D,
},
[0x1D5E]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL GREEK GAMMA",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x03B3 },
- ["unicodeslot"]=0x1D5E, -- ᵞ
+ category="lm",
+ description="MODIFIER LETTER SMALL GREEK GAMMA",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x03B3 },
+ unicodeslot=0x1D5E,
},
[0x1D5F]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL DELTA",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x03B4 },
- ["unicodeslot"]=0x1D5F, -- ᵟ
+ category="lm",
+ description="MODIFIER LETTER SMALL DELTA",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x03B4 },
+ unicodeslot=0x1D5F,
},
[0x1D60]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL GREEK PHI",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x03C6 },
- ["unicodeslot"]=0x1D60, -- ᵠ
+ category="lm",
+ description="MODIFIER LETTER SMALL GREEK PHI",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x03C6 },
+ unicodeslot=0x1D60,
},
[0x1D61]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL CHI",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x03C7 },
- ["unicodeslot"]=0x1D61, -- ᵡ
+ category="lm",
+ description="MODIFIER LETTER SMALL CHI",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x03C7 },
+ unicodeslot=0x1D61,
},
[0x1D62]={
- ["category"]="ll",
- ["description"]="LATIN SUBSCRIPT SMALL LETTER I",
- ["linebreak"]="al",
- ["specials"]={ "sub", 0x0069 },
- ["unicodeslot"]=0x1D62, -- ᵢ
+ category="ll",
+ description="LATIN SUBSCRIPT SMALL LETTER I",
+ direction="l",
+ linebreak="al",
+ specials={ "sub", 0x0069 },
+ unicodeslot=0x1D62,
},
[0x1D63]={
- ["category"]="ll",
- ["description"]="LATIN SUBSCRIPT SMALL LETTER R",
- ["linebreak"]="al",
- ["specials"]={ "sub", 0x0072 },
- ["unicodeslot"]=0x1D63, -- ᵣ
+ category="ll",
+ description="LATIN SUBSCRIPT SMALL LETTER R",
+ direction="l",
+ linebreak="al",
+ specials={ "sub", 0x0072 },
+ unicodeslot=0x1D63,
},
[0x1D64]={
- ["category"]="ll",
- ["description"]="LATIN SUBSCRIPT SMALL LETTER U",
- ["linebreak"]="al",
- ["specials"]={ "sub", 0x0075 },
- ["unicodeslot"]=0x1D64, -- ᵤ
+ category="ll",
+ description="LATIN SUBSCRIPT SMALL LETTER U",
+ direction="l",
+ linebreak="al",
+ specials={ "sub", 0x0075 },
+ unicodeslot=0x1D64,
},
[0x1D65]={
- ["category"]="ll",
- ["description"]="LATIN SUBSCRIPT SMALL LETTER V",
- ["linebreak"]="al",
- ["specials"]={ "sub", 0x0076 },
- ["unicodeslot"]=0x1D65, -- ᵥ
+ category="ll",
+ description="LATIN SUBSCRIPT SMALL LETTER V",
+ direction="l",
+ linebreak="al",
+ specials={ "sub", 0x0076 },
+ unicodeslot=0x1D65,
},
[0x1D66]={
- ["category"]="ll",
- ["description"]="GREEK SUBSCRIPT SMALL LETTER BETA",
- ["linebreak"]="al",
- ["specials"]={ "sub", 0x03B2 },
- ["unicodeslot"]=0x1D66, -- ᵦ
+ category="ll",
+ description="GREEK SUBSCRIPT SMALL LETTER BETA",
+ direction="l",
+ linebreak="al",
+ specials={ "sub", 0x03B2 },
+ unicodeslot=0x1D66,
},
[0x1D67]={
- ["category"]="ll",
- ["description"]="GREEK SUBSCRIPT SMALL LETTER GAMMA",
- ["linebreak"]="al",
- ["specials"]={ "sub", 0x03B3 },
- ["unicodeslot"]=0x1D67, -- ᵧ
+ category="ll",
+ description="GREEK SUBSCRIPT SMALL LETTER GAMMA",
+ direction="l",
+ linebreak="al",
+ specials={ "sub", 0x03B3 },
+ unicodeslot=0x1D67,
},
[0x1D68]={
- ["category"]="ll",
- ["description"]="GREEK SUBSCRIPT SMALL LETTER RHO",
- ["linebreak"]="al",
- ["specials"]={ "sub", 0x03C1 },
- ["unicodeslot"]=0x1D68, -- ᵨ
+ category="ll",
+ description="GREEK SUBSCRIPT SMALL LETTER RHO",
+ direction="l",
+ linebreak="al",
+ specials={ "sub", 0x03C1 },
+ unicodeslot=0x1D68,
},
[0x1D69]={
- ["category"]="ll",
- ["description"]="GREEK SUBSCRIPT SMALL LETTER PHI",
- ["linebreak"]="al",
- ["specials"]={ "sub", 0x03C6 },
- ["unicodeslot"]=0x1D69, -- ᵩ
+ category="ll",
+ description="GREEK SUBSCRIPT SMALL LETTER PHI",
+ direction="l",
+ linebreak="al",
+ specials={ "sub", 0x03C6 },
+ unicodeslot=0x1D69,
},
[0x1D6A]={
- ["category"]="ll",
- ["description"]="GREEK SUBSCRIPT SMALL LETTER CHI",
- ["linebreak"]="al",
- ["specials"]={ "sub", 0x03C7 },
- ["unicodeslot"]=0x1D6A, -- ᵪ
+ category="ll",
+ description="GREEK SUBSCRIPT SMALL LETTER CHI",
+ direction="l",
+ linebreak="al",
+ specials={ "sub", 0x03C7 },
+ unicodeslot=0x1D6A,
},
[0x1D6B]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER UE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D6B, -- ᵫ
+ category="ll",
+ description="LATIN SMALL LETTER UE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D6B,
},
[0x1D6C]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER B WITH MIDDLE TILDE",
- ["linebreak"]="al",
- ["shcode"]=0x0062,
- ["unicodeslot"]=0x1D6C, -- ᵬ
+ category="ll",
+ description="LATIN SMALL LETTER B WITH MIDDLE TILDE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0062,
+ unicodeslot=0x1D6C,
},
[0x1D6D]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER D WITH MIDDLE TILDE",
- ["linebreak"]="al",
- ["shcode"]=0x0064,
- ["unicodeslot"]=0x1D6D, -- ᵭ
+ category="ll",
+ description="LATIN SMALL LETTER D WITH MIDDLE TILDE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0064,
+ unicodeslot=0x1D6D,
},
[0x1D6E]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER F WITH MIDDLE TILDE",
- ["linebreak"]="al",
- ["shcode"]=0x0066,
- ["unicodeslot"]=0x1D6E, -- ᵮ
+ category="ll",
+ description="LATIN SMALL LETTER F WITH MIDDLE TILDE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0066,
+ unicodeslot=0x1D6E,
},
[0x1D6F]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER M WITH MIDDLE TILDE",
- ["linebreak"]="al",
- ["shcode"]=0x006D,
- ["unicodeslot"]=0x1D6F, -- ᵯ
+ category="ll",
+ description="LATIN SMALL LETTER M WITH MIDDLE TILDE",
+ direction="l",
+ linebreak="al",
+ shcode=0x006D,
+ unicodeslot=0x1D6F,
},
[0x1D70]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER N WITH MIDDLE TILDE",
- ["linebreak"]="al",
- ["shcode"]=0x006E,
- ["unicodeslot"]=0x1D70, -- ᵰ
+ category="ll",
+ description="LATIN SMALL LETTER N WITH MIDDLE TILDE",
+ direction="l",
+ linebreak="al",
+ shcode=0x006E,
+ unicodeslot=0x1D70,
},
[0x1D71]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER P WITH MIDDLE TILDE",
- ["linebreak"]="al",
- ["shcode"]=0x0070,
- ["unicodeslot"]=0x1D71, -- ᵱ
+ category="ll",
+ description="LATIN SMALL LETTER P WITH MIDDLE TILDE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0070,
+ unicodeslot=0x1D71,
},
[0x1D72]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER R WITH MIDDLE TILDE",
- ["linebreak"]="al",
- ["shcode"]=0x0072,
- ["unicodeslot"]=0x1D72, -- ᵲ
+ category="ll",
+ description="LATIN SMALL LETTER R WITH MIDDLE TILDE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0072,
+ unicodeslot=0x1D72,
},
[0x1D73]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER R WITH FISHHOOK AND MIDDLE TILDE",
- ["linebreak"]="al",
- ["shcode"]=0x0072,
- ["unicodeslot"]=0x1D73, -- ᵳ
+ category="ll",
+ description="LATIN SMALL LETTER R WITH FISHHOOK AND MIDDLE TILDE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0072,
+ unicodeslot=0x1D73,
},
[0x1D74]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER S WITH MIDDLE TILDE",
- ["linebreak"]="al",
- ["shcode"]=0x0073,
- ["unicodeslot"]=0x1D74, -- ᵴ
+ category="ll",
+ description="LATIN SMALL LETTER S WITH MIDDLE TILDE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0073,
+ unicodeslot=0x1D74,
},
[0x1D75]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER T WITH MIDDLE TILDE",
- ["linebreak"]="al",
- ["shcode"]=0x0074,
- ["unicodeslot"]=0x1D75, -- ᵵ
+ category="ll",
+ description="LATIN SMALL LETTER T WITH MIDDLE TILDE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0074,
+ unicodeslot=0x1D75,
},
[0x1D76]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER Z WITH MIDDLE TILDE",
- ["linebreak"]="al",
- ["shcode"]=0x007A,
- ["unicodeslot"]=0x1D76, -- ᵶ
+ category="ll",
+ description="LATIN SMALL LETTER Z WITH MIDDLE TILDE",
+ direction="l",
+ linebreak="al",
+ shcode=0x007A,
+ unicodeslot=0x1D76,
},
[0x1D77]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER TURNED G",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D77, -- ᵷ
+ category="ll",
+ description="LATIN SMALL LETTER TURNED G",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D77,
},
[0x1D78]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER CYRILLIC EN",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x043D },
- ["unicodeslot"]=0x1D78, -- ᵸ
+ category="lm",
+ description="MODIFIER LETTER CYRILLIC EN",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x043D },
+ unicodeslot=0x1D78,
},
[0x1D79]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER INSULAR G",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D79, -- ᵹ
+ category="ll",
+ description="LATIN SMALL LETTER INSULAR G",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D79,
},
[0x1D7A]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER TH WITH STRIKETHROUGH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D7A, -- ᵺ
+ category="ll",
+ description="LATIN SMALL LETTER TH WITH STRIKETHROUGH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D7A,
},
[0x1D7B]={
- ["category"]="ll",
- ["description"]="LATIN SMALL CAPITAL LETTER I WITH STROKE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D7B, -- ᵻ
+ category="ll",
+ description="LATIN SMALL CAPITAL LETTER I WITH STROKE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D7B,
},
[0x1D7C]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER IOTA WITH STROKE",
- ["linebreak"]="al",
- ["shcode"]=0x0269,
- ["unicodeslot"]=0x1D7C, -- ᵼ
+ category="ll",
+ description="LATIN SMALL LETTER IOTA WITH STROKE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0269,
+ unicodeslot=0x1D7C,
},
[0x1D7D]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER P WITH STROKE",
- ["linebreak"]="al",
- ["shcode"]=0x0070,
- ["uccode"]=0x2C63,
- ["unicodeslot"]=0x1D7D, -- ᵽ
+ category="ll",
+ description="LATIN SMALL LETTER P WITH STROKE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0070,
+ uccode=0x2C63,
+ unicodeslot=0x1D7D,
},
[0x1D7E]={
- ["category"]="ll",
- ["description"]="LATIN SMALL CAPITAL LETTER U WITH STROKE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D7E, -- ᵾ
+ category="ll",
+ description="LATIN SMALL CAPITAL LETTER U WITH STROKE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D7E,
},
[0x1D7F]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER UPSILON WITH STROKE",
- ["linebreak"]="al",
- ["shcode"]=0x028A,
- ["unicodeslot"]=0x1D7F, -- ᵿ
+ category="ll",
+ description="LATIN SMALL LETTER UPSILON WITH STROKE",
+ direction="l",
+ linebreak="al",
+ shcode=0x028A,
+ unicodeslot=0x1D7F,
},
[0x1D80]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER B WITH PALATAL HOOK",
- ["linebreak"]="al",
- ["shcode"]=0x0062,
- ["unicodeslot"]=0x1D80, -- ᶀ
+ category="ll",
+ description="LATIN SMALL LETTER B WITH PALATAL HOOK",
+ direction="l",
+ linebreak="al",
+ shcode=0x0062,
+ unicodeslot=0x1D80,
},
[0x1D81]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER D WITH PALATAL HOOK",
- ["linebreak"]="al",
- ["shcode"]=0x0064,
- ["unicodeslot"]=0x1D81, -- ᶁ
+ category="ll",
+ description="LATIN SMALL LETTER D WITH PALATAL HOOK",
+ direction="l",
+ linebreak="al",
+ shcode=0x0064,
+ unicodeslot=0x1D81,
},
[0x1D82]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER F WITH PALATAL HOOK",
- ["linebreak"]="al",
- ["shcode"]=0x0066,
- ["unicodeslot"]=0x1D82, -- ᶂ
+ category="ll",
+ description="LATIN SMALL LETTER F WITH PALATAL HOOK",
+ direction="l",
+ linebreak="al",
+ shcode=0x0066,
+ unicodeslot=0x1D82,
},
[0x1D83]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER G WITH PALATAL HOOK",
- ["linebreak"]="al",
- ["shcode"]=0x0067,
- ["unicodeslot"]=0x1D83, -- ᶃ
+ category="ll",
+ description="LATIN SMALL LETTER G WITH PALATAL HOOK",
+ direction="l",
+ linebreak="al",
+ shcode=0x0067,
+ unicodeslot=0x1D83,
},
[0x1D84]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER K WITH PALATAL HOOK",
- ["linebreak"]="al",
- ["shcode"]=0x006B,
- ["unicodeslot"]=0x1D84, -- ᶄ
+ category="ll",
+ description="LATIN SMALL LETTER K WITH PALATAL HOOK",
+ direction="l",
+ linebreak="al",
+ shcode=0x006B,
+ unicodeslot=0x1D84,
},
[0x1D85]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER L WITH PALATAL HOOK",
- ["linebreak"]="al",
- ["shcode"]=0x006C,
- ["unicodeslot"]=0x1D85, -- ᶅ
+ category="ll",
+ description="LATIN SMALL LETTER L WITH PALATAL HOOK",
+ direction="l",
+ linebreak="al",
+ shcode=0x006C,
+ unicodeslot=0x1D85,
},
[0x1D86]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER M WITH PALATAL HOOK",
- ["linebreak"]="al",
- ["shcode"]=0x006D,
- ["unicodeslot"]=0x1D86, -- ᶆ
+ category="ll",
+ description="LATIN SMALL LETTER M WITH PALATAL HOOK",
+ direction="l",
+ linebreak="al",
+ shcode=0x006D,
+ unicodeslot=0x1D86,
},
[0x1D87]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER N WITH PALATAL HOOK",
- ["linebreak"]="al",
- ["shcode"]=0x006E,
- ["unicodeslot"]=0x1D87, -- ᶇ
+ category="ll",
+ description="LATIN SMALL LETTER N WITH PALATAL HOOK",
+ direction="l",
+ linebreak="al",
+ shcode=0x006E,
+ unicodeslot=0x1D87,
},
[0x1D88]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER P WITH PALATAL HOOK",
- ["linebreak"]="al",
- ["shcode"]=0x0070,
- ["unicodeslot"]=0x1D88, -- ᶈ
+ category="ll",
+ description="LATIN SMALL LETTER P WITH PALATAL HOOK",
+ direction="l",
+ linebreak="al",
+ shcode=0x0070,
+ unicodeslot=0x1D88,
},
[0x1D89]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER R WITH PALATAL HOOK",
- ["linebreak"]="al",
- ["shcode"]=0x0072,
- ["unicodeslot"]=0x1D89, -- ᶉ
+ category="ll",
+ description="LATIN SMALL LETTER R WITH PALATAL HOOK",
+ direction="l",
+ linebreak="al",
+ shcode=0x0072,
+ unicodeslot=0x1D89,
},
[0x1D8A]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER S WITH PALATAL HOOK",
- ["linebreak"]="al",
- ["shcode"]=0x0073,
- ["unicodeslot"]=0x1D8A, -- ᶊ
+ category="ll",
+ description="LATIN SMALL LETTER S WITH PALATAL HOOK",
+ direction="l",
+ linebreak="al",
+ shcode=0x0073,
+ unicodeslot=0x1D8A,
},
[0x1D8B]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER ESH WITH PALATAL HOOK",
- ["linebreak"]="al",
- ["shcode"]=0x0283,
- ["unicodeslot"]=0x1D8B, -- ᶋ
+ category="ll",
+ description="LATIN SMALL LETTER ESH WITH PALATAL HOOK",
+ direction="l",
+ linebreak="al",
+ shcode=0x0283,
+ unicodeslot=0x1D8B,
},
[0x1D8C]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER V WITH PALATAL HOOK",
- ["linebreak"]="al",
- ["shcode"]=0x0076,
- ["unicodeslot"]=0x1D8C, -- ᶌ
+ category="ll",
+ description="LATIN SMALL LETTER V WITH PALATAL HOOK",
+ direction="l",
+ linebreak="al",
+ shcode=0x0076,
+ unicodeslot=0x1D8C,
},
[0x1D8D]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER X WITH PALATAL HOOK",
- ["linebreak"]="al",
- ["shcode"]=0x0078,
- ["unicodeslot"]=0x1D8D, -- ᶍ
+ category="ll",
+ description="LATIN SMALL LETTER X WITH PALATAL HOOK",
+ direction="l",
+ linebreak="al",
+ shcode=0x0078,
+ unicodeslot=0x1D8D,
},
[0x1D8E]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER Z WITH PALATAL HOOK",
- ["linebreak"]="al",
- ["shcode"]=0x007A,
- ["unicodeslot"]=0x1D8E, -- ᶎ
+ category="ll",
+ description="LATIN SMALL LETTER Z WITH PALATAL HOOK",
+ direction="l",
+ linebreak="al",
+ shcode=0x007A,
+ unicodeslot=0x1D8E,
},
[0x1D8F]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER A WITH RETROFLEX HOOK",
- ["linebreak"]="al",
- ["shcode"]=0x0061,
- ["unicodeslot"]=0x1D8F, -- ᶏ
+ category="ll",
+ description="LATIN SMALL LETTER A WITH RETROFLEX HOOK",
+ direction="l",
+ linebreak="al",
+ shcode=0x0061,
+ unicodeslot=0x1D8F,
},
[0x1D90]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER ALPHA WITH RETROFLEX HOOK",
- ["linebreak"]="al",
- ["shcode"]=0x0251,
- ["unicodeslot"]=0x1D90, -- ᶐ
+ category="ll",
+ description="LATIN SMALL LETTER ALPHA WITH RETROFLEX HOOK",
+ direction="l",
+ linebreak="al",
+ shcode=0x0251,
+ unicodeslot=0x1D90,
},
[0x1D91]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER D WITH HOOK AND TAIL",
- ["linebreak"]="al",
- ["shcode"]=0x0064,
- ["unicodeslot"]=0x1D91, -- ᶑ
+ category="ll",
+ description="LATIN SMALL LETTER D WITH HOOK AND TAIL",
+ direction="l",
+ linebreak="al",
+ shcode=0x0064,
+ unicodeslot=0x1D91,
},
[0x1D92]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER E WITH RETROFLEX HOOK",
- ["linebreak"]="al",
- ["shcode"]=0x0065,
- ["unicodeslot"]=0x1D92, -- ᶒ
+ category="ll",
+ description="LATIN SMALL LETTER E WITH RETROFLEX HOOK",
+ direction="l",
+ linebreak="al",
+ shcode=0x0065,
+ unicodeslot=0x1D92,
},
[0x1D93]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER OPEN E WITH RETROFLEX HOOK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D93, -- ᶓ
+ category="ll",
+ description="LATIN SMALL LETTER OPEN E WITH RETROFLEX HOOK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D93,
},
[0x1D94]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER REVERSED OPEN E WITH RETROFLEX HOOK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D94, -- ᶔ
+ category="ll",
+ description="LATIN SMALL LETTER REVERSED OPEN E WITH RETROFLEX HOOK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D94,
},
[0x1D95]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER SCHWA WITH RETROFLEX HOOK",
- ["linebreak"]="al",
- ["shcode"]=0x0259,
- ["unicodeslot"]=0x1D95, -- ᶕ
+ category="ll",
+ description="LATIN SMALL LETTER SCHWA WITH RETROFLEX HOOK",
+ direction="l",
+ linebreak="al",
+ shcode=0x0259,
+ unicodeslot=0x1D95,
},
[0x1D96]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER I WITH RETROFLEX HOOK",
- ["linebreak"]="al",
- ["shcode"]=0x0069,
- ["unicodeslot"]=0x1D96, -- ᶖ
+ category="ll",
+ description="LATIN SMALL LETTER I WITH RETROFLEX HOOK",
+ direction="l",
+ linebreak="al",
+ shcode=0x0069,
+ unicodeslot=0x1D96,
},
[0x1D97]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER OPEN O WITH RETROFLEX HOOK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D97, -- ᶗ
+ category="ll",
+ description="LATIN SMALL LETTER OPEN O WITH RETROFLEX HOOK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D97,
},
[0x1D98]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER ESH WITH RETROFLEX HOOK",
- ["linebreak"]="al",
- ["shcode"]=0x0283,
- ["unicodeslot"]=0x1D98, -- ᶘ
+ category="ll",
+ description="LATIN SMALL LETTER ESH WITH RETROFLEX HOOK",
+ direction="l",
+ linebreak="al",
+ shcode=0x0283,
+ unicodeslot=0x1D98,
},
[0x1D99]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER U WITH RETROFLEX HOOK",
- ["linebreak"]="al",
- ["shcode"]=0x0075,
- ["unicodeslot"]=0x1D99, -- ᶙ
+ category="ll",
+ description="LATIN SMALL LETTER U WITH RETROFLEX HOOK",
+ direction="l",
+ linebreak="al",
+ shcode=0x0075,
+ unicodeslot=0x1D99,
},
[0x1D9A]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER EZH WITH RETROFLEX HOOK",
- ["linebreak"]="al",
- ["shcode"]=0x0292,
- ["unicodeslot"]=0x1D9A, -- ᶚ
+ category="ll",
+ description="LATIN SMALL LETTER EZH WITH RETROFLEX HOOK",
+ direction="l",
+ linebreak="al",
+ shcode=0x0292,
+ unicodeslot=0x1D9A,
},
[0x1D9B]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL TURNED ALPHA",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0252 },
- ["unicodeslot"]=0x1D9B, -- ᶛ
+ category="lm",
+ description="MODIFIER LETTER SMALL TURNED ALPHA",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x0252 },
+ unicodeslot=0x1D9B,
},
[0x1D9C]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL C",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0063 },
- ["unicodeslot"]=0x1D9C, -- ᶜ
+ category="lm",
+ description="MODIFIER LETTER SMALL C",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x0063 },
+ unicodeslot=0x1D9C,
},
[0x1D9D]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL C WITH CURL",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0255 },
- ["unicodeslot"]=0x1D9D, -- ᶝ
+ category="lm",
+ description="MODIFIER LETTER SMALL C WITH CURL",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x0255 },
+ unicodeslot=0x1D9D,
},
[0x1D9E]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL ETH",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x00F0 },
- ["unicodeslot"]=0x1D9E, -- ᶞ
+ category="lm",
+ description="MODIFIER LETTER SMALL ETH",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x00F0 },
+ unicodeslot=0x1D9E,
},
[0x1D9F]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL REVERSED OPEN E",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x025C },
- ["unicodeslot"]=0x1D9F, -- ᶟ
+ category="lm",
+ description="MODIFIER LETTER SMALL REVERSED OPEN E",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x025C },
+ unicodeslot=0x1D9F,
},
[0x1DA0]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL F",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0066 },
- ["unicodeslot"]=0x1DA0, -- ᶠ
+ category="lm",
+ description="MODIFIER LETTER SMALL F",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x0066 },
+ unicodeslot=0x1DA0,
},
[0x1DA1]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL DOTLESS J WITH STROKE",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x025F },
- ["unicodeslot"]=0x1DA1, -- ᶡ
+ category="lm",
+ description="MODIFIER LETTER SMALL DOTLESS J WITH STROKE",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x025F },
+ unicodeslot=0x1DA1,
},
[0x1DA2]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL SCRIPT G",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0261 },
- ["unicodeslot"]=0x1DA2, -- ᶢ
+ category="lm",
+ description="MODIFIER LETTER SMALL SCRIPT G",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x0261 },
+ unicodeslot=0x1DA2,
},
[0x1DA3]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL TURNED H",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0265 },
- ["unicodeslot"]=0x1DA3, -- ᶣ
+ category="lm",
+ description="MODIFIER LETTER SMALL TURNED H",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x0265 },
+ unicodeslot=0x1DA3,
},
[0x1DA4]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL I WITH STROKE",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0268 },
- ["unicodeslot"]=0x1DA4, -- ᶤ
+ category="lm",
+ description="MODIFIER LETTER SMALL I WITH STROKE",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x0268 },
+ unicodeslot=0x1DA4,
},
[0x1DA5]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL IOTA",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0269 },
- ["unicodeslot"]=0x1DA5, -- ᶥ
+ category="lm",
+ description="MODIFIER LETTER SMALL IOTA",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x0269 },
+ unicodeslot=0x1DA5,
},
[0x1DA6]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL CAPITAL I",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x026A },
- ["unicodeslot"]=0x1DA6, -- ᶦ
+ category="lm",
+ description="MODIFIER LETTER SMALL CAPITAL I",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x026A },
+ unicodeslot=0x1DA6,
},
[0x1DA7]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL CAPITAL I WITH STROKE",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x1D7B },
- ["unicodeslot"]=0x1DA7, -- ᶧ
+ category="lm",
+ description="MODIFIER LETTER SMALL CAPITAL I WITH STROKE",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x1D7B },
+ unicodeslot=0x1DA7,
},
[0x1DA8]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL J WITH CROSSED-TAIL",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x029D },
- ["unicodeslot"]=0x1DA8, -- ᶨ
+ category="lm",
+ description="MODIFIER LETTER SMALL J WITH CROSSED-TAIL",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x029D },
+ unicodeslot=0x1DA8,
},
[0x1DA9]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL L WITH RETROFLEX HOOK",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x026D },
- ["unicodeslot"]=0x1DA9, -- ᶩ
+ category="lm",
+ description="MODIFIER LETTER SMALL L WITH RETROFLEX HOOK",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x026D },
+ unicodeslot=0x1DA9,
},
[0x1DAA]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL L WITH PALATAL HOOK",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x1D85 },
- ["unicodeslot"]=0x1DAA, -- ᶪ
+ category="lm",
+ description="MODIFIER LETTER SMALL L WITH PALATAL HOOK",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x1D85 },
+ unicodeslot=0x1DAA,
},
[0x1DAB]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL CAPITAL L",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x029F },
- ["unicodeslot"]=0x1DAB, -- ᶫ
+ category="lm",
+ description="MODIFIER LETTER SMALL CAPITAL L",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x029F },
+ unicodeslot=0x1DAB,
},
[0x1DAC]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL M WITH HOOK",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0271 },
- ["unicodeslot"]=0x1DAC, -- ᶬ
+ category="lm",
+ description="MODIFIER LETTER SMALL M WITH HOOK",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x0271 },
+ unicodeslot=0x1DAC,
},
[0x1DAD]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL TURNED M WITH LONG LEG",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0270 },
- ["unicodeslot"]=0x1DAD, -- ᶭ
+ category="lm",
+ description="MODIFIER LETTER SMALL TURNED M WITH LONG LEG",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x0270 },
+ unicodeslot=0x1DAD,
},
[0x1DAE]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL N WITH LEFT HOOK",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0272 },
- ["unicodeslot"]=0x1DAE, -- ᶮ
+ category="lm",
+ description="MODIFIER LETTER SMALL N WITH LEFT HOOK",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x0272 },
+ unicodeslot=0x1DAE,
},
[0x1DAF]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL N WITH RETROFLEX HOOK",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0273 },
- ["unicodeslot"]=0x1DAF, -- ᶯ
+ category="lm",
+ description="MODIFIER LETTER SMALL N WITH RETROFLEX HOOK",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x0273 },
+ unicodeslot=0x1DAF,
},
[0x1DB0]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL CAPITAL N",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0274 },
- ["unicodeslot"]=0x1DB0, -- ᶰ
+ category="lm",
+ description="MODIFIER LETTER SMALL CAPITAL N",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x0274 },
+ unicodeslot=0x1DB0,
},
[0x1DB1]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL BARRED O",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0275 },
- ["unicodeslot"]=0x1DB1, -- ᶱ
+ category="lm",
+ description="MODIFIER LETTER SMALL BARRED O",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x0275 },
+ unicodeslot=0x1DB1,
},
[0x1DB2]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL PHI",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0278 },
- ["unicodeslot"]=0x1DB2, -- ᶲ
+ category="lm",
+ description="MODIFIER LETTER SMALL PHI",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x0278 },
+ unicodeslot=0x1DB2,
},
[0x1DB3]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL S WITH HOOK",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0282 },
- ["unicodeslot"]=0x1DB3, -- ᶳ
+ category="lm",
+ description="MODIFIER LETTER SMALL S WITH HOOK",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x0282 },
+ unicodeslot=0x1DB3,
},
[0x1DB4]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL ESH",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0283 },
- ["unicodeslot"]=0x1DB4, -- ᶴ
+ category="lm",
+ description="MODIFIER LETTER SMALL ESH",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x0283 },
+ unicodeslot=0x1DB4,
},
[0x1DB5]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL T WITH PALATAL HOOK",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x01AB },
- ["unicodeslot"]=0x1DB5, -- ᶵ
+ category="lm",
+ description="MODIFIER LETTER SMALL T WITH PALATAL HOOK",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x01AB },
+ unicodeslot=0x1DB5,
},
[0x1DB6]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL U BAR",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0289 },
- ["unicodeslot"]=0x1DB6, -- ᶶ
+ category="lm",
+ description="MODIFIER LETTER SMALL U BAR",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x0289 },
+ unicodeslot=0x1DB6,
},
[0x1DB7]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL UPSILON",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x028A },
- ["unicodeslot"]=0x1DB7, -- ᶷ
+ category="lm",
+ description="MODIFIER LETTER SMALL UPSILON",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x028A },
+ unicodeslot=0x1DB7,
},
[0x1DB8]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL CAPITAL U",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x1D1C },
- ["unicodeslot"]=0x1DB8, -- ᶸ
+ category="lm",
+ description="MODIFIER LETTER SMALL CAPITAL U",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x1D1C },
+ unicodeslot=0x1DB8,
},
[0x1DB9]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL V WITH HOOK",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x028B },
- ["unicodeslot"]=0x1DB9, -- ᶹ
+ category="lm",
+ description="MODIFIER LETTER SMALL V WITH HOOK",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x028B },
+ unicodeslot=0x1DB9,
},
[0x1DBA]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL TURNED V",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x028C },
- ["unicodeslot"]=0x1DBA, -- ᶺ
+ category="lm",
+ description="MODIFIER LETTER SMALL TURNED V",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x028C },
+ unicodeslot=0x1DBA,
},
[0x1DBB]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL Z",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x007A },
- ["unicodeslot"]=0x1DBB, -- ᶻ
+ category="lm",
+ description="MODIFIER LETTER SMALL Z",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x007A },
+ unicodeslot=0x1DBB,
},
[0x1DBC]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL Z WITH RETROFLEX HOOK",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0290 },
- ["unicodeslot"]=0x1DBC, -- ᶼ
+ category="lm",
+ description="MODIFIER LETTER SMALL Z WITH RETROFLEX HOOK",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x0290 },
+ unicodeslot=0x1DBC,
},
[0x1DBD]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL Z WITH CURL",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0291 },
- ["unicodeslot"]=0x1DBD, -- ᶽ
+ category="lm",
+ description="MODIFIER LETTER SMALL Z WITH CURL",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x0291 },
+ unicodeslot=0x1DBD,
},
[0x1DBE]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL EZH",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0292 },
- ["unicodeslot"]=0x1DBE, -- ᶾ
+ category="lm",
+ description="MODIFIER LETTER SMALL EZH",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x0292 },
+ unicodeslot=0x1DBE,
},
[0x1DBF]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER SMALL THETA",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x03B8 },
- ["unicodeslot"]=0x1DBF, -- ᶿ
+ category="lm",
+ description="MODIFIER LETTER SMALL THETA",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x03B8 },
+ unicodeslot=0x1DBF,
},
[0x1DC0]={
- ["category"]="mn",
- ["description"]="COMBINING DOTTED GRAVE ACCENT",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1DC0, -- ᷀
+ category="mn",
+ description="COMBINING DOTTED GRAVE ACCENT",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1DC0,
},
[0x1DC1]={
- ["category"]="mn",
- ["description"]="COMBINING DOTTED ACUTE ACCENT",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1DC1, -- ᷁
+ category="mn",
+ description="COMBINING DOTTED ACUTE ACCENT",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1DC1,
},
[0x1DC2]={
- ["category"]="mn",
- ["description"]="COMBINING SNAKE BELOW",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1DC2, -- ᷂
+ category="mn",
+ description="COMBINING SNAKE BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1DC2,
},
[0x1DC3]={
- ["category"]="mn",
- ["description"]="COMBINING SUSPENSION MARK",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1DC3, -- ᷃
+ category="mn",
+ description="COMBINING SUSPENSION MARK",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1DC3,
},
[0x1DC4]={
- ["category"]="mn",
- ["description"]="COMBINING MACRON-ACUTE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1DC4, -- ᷄
+ category="mn",
+ description="COMBINING MACRON-ACUTE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1DC4,
},
[0x1DC5]={
- ["category"]="mn",
- ["description"]="COMBINING GRAVE-MACRON",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1DC5, -- ᷅
+ category="mn",
+ description="COMBINING GRAVE-MACRON",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1DC5,
},
[0x1DC6]={
- ["category"]="mn",
- ["description"]="COMBINING MACRON-GRAVE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1DC6, -- ᷆
+ category="mn",
+ description="COMBINING MACRON-GRAVE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1DC6,
},
[0x1DC7]={
- ["category"]="mn",
- ["description"]="COMBINING ACUTE-MACRON",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1DC7, -- ᷇
+ category="mn",
+ description="COMBINING ACUTE-MACRON",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1DC7,
},
[0x1DC8]={
- ["category"]="mn",
- ["description"]="COMBINING GRAVE-ACUTE-GRAVE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1DC8, -- ᷈
+ category="mn",
+ description="COMBINING GRAVE-ACUTE-GRAVE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1DC8,
},
[0x1DC9]={
- ["category"]="mn",
- ["description"]="COMBINING ACUTE-GRAVE-ACUTE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1DC9, -- ᷉
+ category="mn",
+ description="COMBINING ACUTE-GRAVE-ACUTE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1DC9,
},
[0x1DCA]={
- ["category"]="mn",
- ["description"]="COMBINING LATIN SMALL LETTER R BELOW",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1DCA, -- ᷊
+ category="mn",
+ description="COMBINING LATIN SMALL LETTER R BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1DCA,
},
[0x1DFE]={
- ["category"]="mn",
- ["description"]="COMBINING LEFT ARROWHEAD ABOVE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1DFE, -- ᷾
+ category="mn",
+ description="COMBINING LEFT ARROWHEAD ABOVE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1DFE,
},
[0x1DFF]={
- ["category"]="mn",
- ["description"]="COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1DFF, -- ᷿
+ category="mn",
+ description="COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1DFF,
},
[0x1E00]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER A WITH RING BELOW",
- ["lccode"]=0x1E01,
- ["linebreak"]="al",
- ["shcode"]=0x0041,
- ["specials"]={ "char", 0x0041, 0x0325 },
- ["unicodeslot"]=0x1E00, -- Ḁ
+ category="lu",
+ description="LATIN CAPITAL LETTER A WITH RING BELOW",
+ direction="l",
+ lccode=0x1E01,
+ linebreak="al",
+ shcode=0x0041,
+ specials={ "char", 0x0041, 0x0325 },
+ unicodeslot=0x1E00,
},
[0x1E01]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER A WITH RING BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x0061,
- ["specials"]={ "char", 0x0061, 0x0325 },
- ["uccode"]=0x1E00,
- ["unicodeslot"]=0x1E01, -- ḁ
+ category="ll",
+ description="LATIN SMALL LETTER A WITH RING BELOW",
+ direction="l",
+ linebreak="al",
+ shcode=0x0061,
+ specials={ "char", 0x0061, 0x0325 },
+ uccode=0x1E00,
+ unicodeslot=0x1E01,
},
[0x1E02]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER B WITH DOT ABOVE",
- ["lccode"]=0x1E03,
- ["linebreak"]="al",
- ["shcode"]=0x0042,
- ["specials"]={ "char", 0x0042, 0x0307 },
- ["unicodeslot"]=0x1E02, -- Ḃ
+ category="lu",
+ description="LATIN CAPITAL LETTER B WITH DOT ABOVE",
+ direction="l",
+ lccode=0x1E03,
+ linebreak="al",
+ shcode=0x0042,
+ specials={ "char", 0x0042, 0x0307 },
+ unicodeslot=0x1E02,
},
[0x1E03]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER B WITH DOT ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0062,
- ["specials"]={ "char", 0x0062, 0x0307 },
- ["uccode"]=0x1E02,
- ["unicodeslot"]=0x1E03, -- ḃ
+ category="ll",
+ description="LATIN SMALL LETTER B WITH DOT ABOVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0062,
+ specials={ "char", 0x0062, 0x0307 },
+ uccode=0x1E02,
+ unicodeslot=0x1E03,
},
[0x1E04]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER B WITH DOT BELOW",
- ["lccode"]=0x1E05,
- ["linebreak"]="al",
- ["shcode"]=0x0042,
- ["specials"]={ "char", 0x0042, 0x0323 },
- ["unicodeslot"]=0x1E04, -- Ḅ
+ category="lu",
+ description="LATIN CAPITAL LETTER B WITH DOT BELOW",
+ direction="l",
+ lccode=0x1E05,
+ linebreak="al",
+ shcode=0x0042,
+ specials={ "char", 0x0042, 0x0323 },
+ unicodeslot=0x1E04,
},
[0x1E05]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER B WITH DOT BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x0062,
- ["specials"]={ "char", 0x0062, 0x0323 },
- ["uccode"]=0x1E04,
- ["unicodeslot"]=0x1E05, -- ḅ
+ category="ll",
+ description="LATIN SMALL LETTER B WITH DOT BELOW",
+ direction="l",
+ linebreak="al",
+ shcode=0x0062,
+ specials={ "char", 0x0062, 0x0323 },
+ uccode=0x1E04,
+ unicodeslot=0x1E05,
},
[0x1E06]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER B WITH LINE BELOW",
- ["lccode"]=0x1E07,
- ["linebreak"]="al",
- ["shcode"]=0x0042,
- ["specials"]={ "char", 0x0042, 0x0331 },
- ["unicodeslot"]=0x1E06, -- Ḇ
+ category="lu",
+ description="LATIN CAPITAL LETTER B WITH LINE BELOW",
+ direction="l",
+ lccode=0x1E07,
+ linebreak="al",
+ shcode=0x0042,
+ specials={ "char", 0x0042, 0x0331 },
+ unicodeslot=0x1E06,
},
[0x1E07]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER B WITH LINE BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x0062,
- ["specials"]={ "char", 0x0062, 0x0331 },
- ["uccode"]=0x1E06,
- ["unicodeslot"]=0x1E07, -- ḇ
+ category="ll",
+ description="LATIN SMALL LETTER B WITH LINE BELOW",
+ direction="l",
+ linebreak="al",
+ shcode=0x0062,
+ specials={ "char", 0x0062, 0x0331 },
+ uccode=0x1E06,
+ unicodeslot=0x1E07,
},
[0x1E08]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE",
- ["lccode"]=0x1E09,
- ["linebreak"]="al",
- ["shcode"]=0x0043,
- ["specials"]={ "char", 0x00C7, 0x0301 },
- ["unicodeslot"]=0x1E08, -- Ḉ
+ category="lu",
+ description="LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE",
+ direction="l",
+ lccode=0x1E09,
+ linebreak="al",
+ shcode=0x0043,
+ specials={ "char", 0x00C7, 0x0301 },
+ unicodeslot=0x1E08,
},
[0x1E09]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER C WITH CEDILLA AND ACUTE",
- ["linebreak"]="al",
- ["shcode"]=0x0063,
- ["specials"]={ "char", 0x00E7, 0x0301 },
- ["uccode"]=0x1E08,
- ["unicodeslot"]=0x1E09, -- ḉ
+ category="ll",
+ description="LATIN SMALL LETTER C WITH CEDILLA AND ACUTE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0063,
+ specials={ "char", 0x00E7, 0x0301 },
+ uccode=0x1E08,
+ unicodeslot=0x1E09,
},
[0x1E0A]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER D WITH DOT ABOVE",
- ["lccode"]=0x1E0B,
- ["linebreak"]="al",
- ["shcode"]=0x0044,
- ["specials"]={ "char", 0x0044, 0x0307 },
- ["unicodeslot"]=0x1E0A, -- Ḋ
+ category="lu",
+ description="LATIN CAPITAL LETTER D WITH DOT ABOVE",
+ direction="l",
+ lccode=0x1E0B,
+ linebreak="al",
+ shcode=0x0044,
+ specials={ "char", 0x0044, 0x0307 },
+ unicodeslot=0x1E0A,
},
[0x1E0B]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER D WITH DOT ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0064,
- ["specials"]={ "char", 0x0064, 0x0307 },
- ["uccode"]=0x1E0A,
- ["unicodeslot"]=0x1E0B, -- ḋ
+ category="ll",
+ description="LATIN SMALL LETTER D WITH DOT ABOVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0064,
+ specials={ "char", 0x0064, 0x0307 },
+ uccode=0x1E0A,
+ unicodeslot=0x1E0B,
},
[0x1E0C]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER D WITH DOT BELOW",
- ["lccode"]=0x1E0D,
- ["linebreak"]="al",
- ["shcode"]=0x0044,
- ["specials"]={ "char", 0x0044, 0x0323 },
- ["unicodeslot"]=0x1E0C, -- Ḍ
+ category="lu",
+ description="LATIN CAPITAL LETTER D WITH DOT BELOW",
+ direction="l",
+ lccode=0x1E0D,
+ linebreak="al",
+ shcode=0x0044,
+ specials={ "char", 0x0044, 0x0323 },
+ unicodeslot=0x1E0C,
},
[0x1E0D]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER D WITH DOT BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x0064,
- ["specials"]={ "char", 0x0064, 0x0323 },
- ["uccode"]=0x1E0C,
- ["unicodeslot"]=0x1E0D, -- ḍ
+ category="ll",
+ description="LATIN SMALL LETTER D WITH DOT BELOW",
+ direction="l",
+ linebreak="al",
+ shcode=0x0064,
+ specials={ "char", 0x0064, 0x0323 },
+ uccode=0x1E0C,
+ unicodeslot=0x1E0D,
},
[0x1E0E]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER D WITH LINE BELOW",
- ["lccode"]=0x1E0F,
- ["linebreak"]="al",
- ["shcode"]=0x0044,
- ["specials"]={ "char", 0x0044, 0x0331 },
- ["unicodeslot"]=0x1E0E, -- Ḏ
+ category="lu",
+ description="LATIN CAPITAL LETTER D WITH LINE BELOW",
+ direction="l",
+ lccode=0x1E0F,
+ linebreak="al",
+ shcode=0x0044,
+ specials={ "char", 0x0044, 0x0331 },
+ unicodeslot=0x1E0E,
},
[0x1E0F]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER D WITH LINE BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x0064,
- ["specials"]={ "char", 0x0064, 0x0331 },
- ["uccode"]=0x1E0E,
- ["unicodeslot"]=0x1E0F, -- ḏ
+ category="ll",
+ description="LATIN SMALL LETTER D WITH LINE BELOW",
+ direction="l",
+ linebreak="al",
+ shcode=0x0064,
+ specials={ "char", 0x0064, 0x0331 },
+ uccode=0x1E0E,
+ unicodeslot=0x1E0F,
},
[0x1E10]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER D WITH CEDILLA",
- ["lccode"]=0x1E11,
- ["linebreak"]="al",
- ["shcode"]=0x0044,
- ["specials"]={ "char", 0x0044, 0x0327 },
- ["unicodeslot"]=0x1E10, -- Ḑ
+ category="lu",
+ description="LATIN CAPITAL LETTER D WITH CEDILLA",
+ direction="l",
+ lccode=0x1E11,
+ linebreak="al",
+ shcode=0x0044,
+ specials={ "char", 0x0044, 0x0327 },
+ unicodeslot=0x1E10,
},
[0x1E11]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER D WITH CEDILLA",
- ["linebreak"]="al",
- ["shcode"]=0x0064,
- ["specials"]={ "char", 0x0064, 0x0327 },
- ["uccode"]=0x1E10,
- ["unicodeslot"]=0x1E11, -- ḑ
+ category="ll",
+ description="LATIN SMALL LETTER D WITH CEDILLA",
+ direction="l",
+ linebreak="al",
+ shcode=0x0064,
+ specials={ "char", 0x0064, 0x0327 },
+ uccode=0x1E10,
+ unicodeslot=0x1E11,
},
[0x1E12]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW",
- ["lccode"]=0x1E13,
- ["linebreak"]="al",
- ["shcode"]=0x0044,
- ["specials"]={ "char", 0x0044, 0x032D },
- ["unicodeslot"]=0x1E12, -- Ḓ
+ category="lu",
+ description="LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW",
+ direction="l",
+ lccode=0x1E13,
+ linebreak="al",
+ shcode=0x0044,
+ specials={ "char", 0x0044, 0x032D },
+ unicodeslot=0x1E12,
},
[0x1E13]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x0064,
- ["specials"]={ "char", 0x0064, 0x032D },
- ["uccode"]=0x1E12,
- ["unicodeslot"]=0x1E13, -- ḓ
+ category="ll",
+ description="LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW",
+ direction="l",
+ linebreak="al",
+ shcode=0x0064,
+ specials={ "char", 0x0064, 0x032D },
+ uccode=0x1E12,
+ unicodeslot=0x1E13,
},
[0x1E14]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER E WITH MACRON AND GRAVE",
- ["lccode"]=0x1E15,
- ["linebreak"]="al",
- ["shcode"]=0x0045,
- ["specials"]={ "char", 0x0112, 0x0300 },
- ["unicodeslot"]=0x1E14, -- Ḕ
+ category="lu",
+ description="LATIN CAPITAL LETTER E WITH MACRON AND GRAVE",
+ direction="l",
+ lccode=0x1E15,
+ linebreak="al",
+ shcode=0x0045,
+ specials={ "char", 0x0112, 0x0300 },
+ unicodeslot=0x1E14,
},
[0x1E15]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER E WITH MACRON AND GRAVE",
- ["linebreak"]="al",
- ["shcode"]=0x0065,
- ["specials"]={ "char", 0x0113, 0x0300 },
- ["uccode"]=0x1E14,
- ["unicodeslot"]=0x1E15, -- ḕ
+ category="ll",
+ description="LATIN SMALL LETTER E WITH MACRON AND GRAVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0065,
+ specials={ "char", 0x0113, 0x0300 },
+ uccode=0x1E14,
+ unicodeslot=0x1E15,
},
[0x1E16]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER E WITH MACRON AND ACUTE",
- ["lccode"]=0x1E17,
- ["linebreak"]="al",
- ["shcode"]=0x0045,
- ["specials"]={ "char", 0x0112, 0x0301 },
- ["unicodeslot"]=0x1E16, -- Ḗ
+ category="lu",
+ description="LATIN CAPITAL LETTER E WITH MACRON AND ACUTE",
+ direction="l",
+ lccode=0x1E17,
+ linebreak="al",
+ shcode=0x0045,
+ specials={ "char", 0x0112, 0x0301 },
+ unicodeslot=0x1E16,
},
[0x1E17]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER E WITH MACRON AND ACUTE",
- ["linebreak"]="al",
- ["shcode"]=0x0065,
- ["specials"]={ "char", 0x0113, 0x0301 },
- ["uccode"]=0x1E16,
- ["unicodeslot"]=0x1E17, -- ḗ
+ category="ll",
+ description="LATIN SMALL LETTER E WITH MACRON AND ACUTE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0065,
+ specials={ "char", 0x0113, 0x0301 },
+ uccode=0x1E16,
+ unicodeslot=0x1E17,
},
[0x1E18]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW",
- ["lccode"]=0x1E19,
- ["linebreak"]="al",
- ["shcode"]=0x0045,
- ["specials"]={ "char", 0x0045, 0x032D },
- ["unicodeslot"]=0x1E18, -- Ḙ
+ category="lu",
+ description="LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW",
+ direction="l",
+ lccode=0x1E19,
+ linebreak="al",
+ shcode=0x0045,
+ specials={ "char", 0x0045, 0x032D },
+ unicodeslot=0x1E18,
},
[0x1E19]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x0065,
- ["specials"]={ "char", 0x0065, 0x032D },
- ["uccode"]=0x1E18,
- ["unicodeslot"]=0x1E19, -- ḙ
+ category="ll",
+ description="LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW",
+ direction="l",
+ linebreak="al",
+ shcode=0x0065,
+ specials={ "char", 0x0065, 0x032D },
+ uccode=0x1E18,
+ unicodeslot=0x1E19,
},
[0x1E1A]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER E WITH TILDE BELOW",
- ["lccode"]=0x1E1B,
- ["linebreak"]="al",
- ["shcode"]=0x0045,
- ["specials"]={ "char", 0x0045, 0x0330 },
- ["unicodeslot"]=0x1E1A, -- Ḛ
+ category="lu",
+ description="LATIN CAPITAL LETTER E WITH TILDE BELOW",
+ direction="l",
+ lccode=0x1E1B,
+ linebreak="al",
+ shcode=0x0045,
+ specials={ "char", 0x0045, 0x0330 },
+ unicodeslot=0x1E1A,
},
[0x1E1B]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER E WITH TILDE BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x0065,
- ["specials"]={ "char", 0x0065, 0x0330 },
- ["uccode"]=0x1E1A,
- ["unicodeslot"]=0x1E1B, -- ḛ
+ category="ll",
+ description="LATIN SMALL LETTER E WITH TILDE BELOW",
+ direction="l",
+ linebreak="al",
+ shcode=0x0065,
+ specials={ "char", 0x0065, 0x0330 },
+ uccode=0x1E1A,
+ unicodeslot=0x1E1B,
},
[0x1E1C]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE",
- ["lccode"]=0x1E1D,
- ["linebreak"]="al",
- ["shcode"]=0x0045,
- ["specials"]={ "char", 0x0228, 0x0306 },
- ["unicodeslot"]=0x1E1C, -- Ḝ
+ category="lu",
+ description="LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE",
+ direction="l",
+ lccode=0x1E1D,
+ linebreak="al",
+ shcode=0x0045,
+ specials={ "char", 0x0228, 0x0306 },
+ unicodeslot=0x1E1C,
},
[0x1E1D]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER E WITH CEDILLA AND BREVE",
- ["linebreak"]="al",
- ["shcode"]=0x0065,
- ["specials"]={ "char", 0x0229, 0x0306 },
- ["uccode"]=0x1E1C,
- ["unicodeslot"]=0x1E1D, -- ḝ
+ category="ll",
+ description="LATIN SMALL LETTER E WITH CEDILLA AND BREVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0065,
+ specials={ "char", 0x0229, 0x0306 },
+ uccode=0x1E1C,
+ unicodeslot=0x1E1D,
},
[0x1E1E]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER F WITH DOT ABOVE",
- ["lccode"]=0x1E1F,
- ["linebreak"]="al",
- ["shcode"]=0x0046,
- ["specials"]={ "char", 0x0046, 0x0307 },
- ["unicodeslot"]=0x1E1E, -- Ḟ
+ category="lu",
+ description="LATIN CAPITAL LETTER F WITH DOT ABOVE",
+ direction="l",
+ lccode=0x1E1F,
+ linebreak="al",
+ shcode=0x0046,
+ specials={ "char", 0x0046, 0x0307 },
+ unicodeslot=0x1E1E,
},
[0x1E1F]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER F WITH DOT ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0066,
- ["specials"]={ "char", 0x0066, 0x0307 },
- ["uccode"]=0x1E1E,
- ["unicodeslot"]=0x1E1F, -- ḟ
+ category="ll",
+ description="LATIN SMALL LETTER F WITH DOT ABOVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0066,
+ specials={ "char", 0x0066, 0x0307 },
+ uccode=0x1E1E,
+ unicodeslot=0x1E1F,
},
[0x1E20]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER G WITH MACRON",
- ["lccode"]=0x1E21,
- ["linebreak"]="al",
- ["shcode"]=0x0047,
- ["specials"]={ "char", 0x0047, 0x0304 },
- ["unicodeslot"]=0x1E20, -- Ḡ
+ category="lu",
+ description="LATIN CAPITAL LETTER G WITH MACRON",
+ direction="l",
+ lccode=0x1E21,
+ linebreak="al",
+ shcode=0x0047,
+ specials={ "char", 0x0047, 0x0304 },
+ unicodeslot=0x1E20,
},
[0x1E21]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER G WITH MACRON",
- ["linebreak"]="al",
- ["shcode"]=0x0067,
- ["specials"]={ "char", 0x0067, 0x0304 },
- ["uccode"]=0x1E20,
- ["unicodeslot"]=0x1E21, -- ḡ
+ category="ll",
+ description="LATIN SMALL LETTER G WITH MACRON",
+ direction="l",
+ linebreak="al",
+ shcode=0x0067,
+ specials={ "char", 0x0067, 0x0304 },
+ uccode=0x1E20,
+ unicodeslot=0x1E21,
},
[0x1E22]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER H WITH DOT ABOVE",
- ["lccode"]=0x1E23,
- ["linebreak"]="al",
- ["shcode"]=0x0048,
- ["specials"]={ "char", 0x0048, 0x0307 },
- ["unicodeslot"]=0x1E22, -- Ḣ
+ category="lu",
+ description="LATIN CAPITAL LETTER H WITH DOT ABOVE",
+ direction="l",
+ lccode=0x1E23,
+ linebreak="al",
+ shcode=0x0048,
+ specials={ "char", 0x0048, 0x0307 },
+ unicodeslot=0x1E22,
},
[0x1E23]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER H WITH DOT ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0068,
- ["specials"]={ "char", 0x0068, 0x0307 },
- ["uccode"]=0x1E22,
- ["unicodeslot"]=0x1E23, -- ḣ
+ category="ll",
+ description="LATIN SMALL LETTER H WITH DOT ABOVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0068,
+ specials={ "char", 0x0068, 0x0307 },
+ uccode=0x1E22,
+ unicodeslot=0x1E23,
},
[0x1E24]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER H WITH DOT BELOW",
- ["lccode"]=0x1E25,
- ["linebreak"]="al",
- ["shcode"]=0x0048,
- ["specials"]={ "char", 0x0048, 0x0323 },
- ["unicodeslot"]=0x1E24, -- Ḥ
+ category="lu",
+ description="LATIN CAPITAL LETTER H WITH DOT BELOW",
+ direction="l",
+ lccode=0x1E25,
+ linebreak="al",
+ shcode=0x0048,
+ specials={ "char", 0x0048, 0x0323 },
+ unicodeslot=0x1E24,
},
[0x1E25]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER H WITH DOT BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x0068,
- ["specials"]={ "char", 0x0068, 0x0323 },
- ["uccode"]=0x1E24,
- ["unicodeslot"]=0x1E25, -- ḥ
+ category="ll",
+ description="LATIN SMALL LETTER H WITH DOT BELOW",
+ direction="l",
+ linebreak="al",
+ shcode=0x0068,
+ specials={ "char", 0x0068, 0x0323 },
+ uccode=0x1E24,
+ unicodeslot=0x1E25,
},
[0x1E26]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER H WITH DIAERESIS",
- ["lccode"]=0x1E27,
- ["linebreak"]="al",
- ["shcode"]=0x0048,
- ["specials"]={ "char", 0x0048, 0x0308 },
- ["unicodeslot"]=0x1E26, -- Ḧ
+ category="lu",
+ description="LATIN CAPITAL LETTER H WITH DIAERESIS",
+ direction="l",
+ lccode=0x1E27,
+ linebreak="al",
+ shcode=0x0048,
+ specials={ "char", 0x0048, 0x0308 },
+ unicodeslot=0x1E26,
},
[0x1E27]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER H WITH DIAERESIS",
- ["linebreak"]="al",
- ["shcode"]=0x0068,
- ["specials"]={ "char", 0x0068, 0x0308 },
- ["uccode"]=0x1E26,
- ["unicodeslot"]=0x1E27, -- ḧ
+ category="ll",
+ description="LATIN SMALL LETTER H WITH DIAERESIS",
+ direction="l",
+ linebreak="al",
+ shcode=0x0068,
+ specials={ "char", 0x0068, 0x0308 },
+ uccode=0x1E26,
+ unicodeslot=0x1E27,
},
[0x1E28]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER H WITH CEDILLA",
- ["lccode"]=0x1E29,
- ["linebreak"]="al",
- ["shcode"]=0x0048,
- ["specials"]={ "char", 0x0048, 0x0327 },
- ["unicodeslot"]=0x1E28, -- Ḩ
+ category="lu",
+ description="LATIN CAPITAL LETTER H WITH CEDILLA",
+ direction="l",
+ lccode=0x1E29,
+ linebreak="al",
+ shcode=0x0048,
+ specials={ "char", 0x0048, 0x0327 },
+ unicodeslot=0x1E28,
},
[0x1E29]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER H WITH CEDILLA",
- ["linebreak"]="al",
- ["shcode"]=0x0068,
- ["specials"]={ "char", 0x0068, 0x0327 },
- ["uccode"]=0x1E28,
- ["unicodeslot"]=0x1E29, -- ḩ
+ category="ll",
+ description="LATIN SMALL LETTER H WITH CEDILLA",
+ direction="l",
+ linebreak="al",
+ shcode=0x0068,
+ specials={ "char", 0x0068, 0x0327 },
+ uccode=0x1E28,
+ unicodeslot=0x1E29,
},
[0x1E2A]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER H WITH BREVE BELOW",
- ["lccode"]=0x1E2B,
- ["linebreak"]="al",
- ["shcode"]=0x0048,
- ["specials"]={ "char", 0x0048, 0x032E },
- ["unicodeslot"]=0x1E2A, -- Ḫ
+ category="lu",
+ description="LATIN CAPITAL LETTER H WITH BREVE BELOW",
+ direction="l",
+ lccode=0x1E2B,
+ linebreak="al",
+ shcode=0x0048,
+ specials={ "char", 0x0048, 0x032E },
+ unicodeslot=0x1E2A,
},
[0x1E2B]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER H WITH BREVE BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x0068,
- ["specials"]={ "char", 0x0068, 0x032E },
- ["uccode"]=0x1E2A,
- ["unicodeslot"]=0x1E2B, -- ḫ
+ category="ll",
+ description="LATIN SMALL LETTER H WITH BREVE BELOW",
+ direction="l",
+ linebreak="al",
+ shcode=0x0068,
+ specials={ "char", 0x0068, 0x032E },
+ uccode=0x1E2A,
+ unicodeslot=0x1E2B,
},
[0x1E2C]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER I WITH TILDE BELOW",
- ["lccode"]=0x1E2D,
- ["linebreak"]="al",
- ["shcode"]=0x0049,
- ["specials"]={ "char", 0x0049, 0x0330 },
- ["unicodeslot"]=0x1E2C, -- Ḭ
+ category="lu",
+ description="LATIN CAPITAL LETTER I WITH TILDE BELOW",
+ direction="l",
+ lccode=0x1E2D,
+ linebreak="al",
+ shcode=0x0049,
+ specials={ "char", 0x0049, 0x0330 },
+ unicodeslot=0x1E2C,
},
[0x1E2D]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER I WITH TILDE BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x0069,
- ["specials"]={ "char", 0x0069, 0x0330 },
- ["uccode"]=0x1E2C,
- ["unicodeslot"]=0x1E2D, -- ḭ
+ category="ll",
+ description="LATIN SMALL LETTER I WITH TILDE BELOW",
+ direction="l",
+ linebreak="al",
+ shcode=0x0069,
+ specials={ "char", 0x0069, 0x0330 },
+ uccode=0x1E2C,
+ unicodeslot=0x1E2D,
},
[0x1E2E]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE",
- ["lccode"]=0x1E2F,
- ["linebreak"]="al",
- ["shcode"]=0x0049,
- ["specials"]={ "char", 0x00CF, 0x0301 },
- ["unicodeslot"]=0x1E2E, -- Ḯ
+ category="lu",
+ description="LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE",
+ direction="l",
+ lccode=0x1E2F,
+ linebreak="al",
+ shcode=0x0049,
+ specials={ "char", 0x00CF, 0x0301 },
+ unicodeslot=0x1E2E,
},
[0x1E2F]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE",
- ["linebreak"]="al",
- ["shcode"]=0x0069,
- ["specials"]={ "char", 0x00EF, 0x0301 },
- ["uccode"]=0x1E2E,
- ["unicodeslot"]=0x1E2F, -- ḯ
+ category="ll",
+ description="LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0069,
+ specials={ "char", 0x00EF, 0x0301 },
+ uccode=0x1E2E,
+ unicodeslot=0x1E2F,
},
[0x1E30]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER K WITH ACUTE",
- ["lccode"]=0x1E31,
- ["linebreak"]="al",
- ["shcode"]=0x004B,
- ["specials"]={ "char", 0x004B, 0x0301 },
- ["unicodeslot"]=0x1E30, -- Ḱ
+ category="lu",
+ description="LATIN CAPITAL LETTER K WITH ACUTE",
+ direction="l",
+ lccode=0x1E31,
+ linebreak="al",
+ shcode=0x004B,
+ specials={ "char", 0x004B, 0x0301 },
+ unicodeslot=0x1E30,
},
[0x1E31]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER K WITH ACUTE",
- ["linebreak"]="al",
- ["shcode"]=0x006B,
- ["specials"]={ "char", 0x006B, 0x0301 },
- ["uccode"]=0x1E30,
- ["unicodeslot"]=0x1E31, -- ḱ
+ category="ll",
+ description="LATIN SMALL LETTER K WITH ACUTE",
+ direction="l",
+ linebreak="al",
+ shcode=0x006B,
+ specials={ "char", 0x006B, 0x0301 },
+ uccode=0x1E30,
+ unicodeslot=0x1E31,
},
[0x1E32]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER K WITH DOT BELOW",
- ["lccode"]=0x1E33,
- ["linebreak"]="al",
- ["shcode"]=0x004B,
- ["specials"]={ "char", 0x004B, 0x0323 },
- ["unicodeslot"]=0x1E32, -- Ḳ
+ category="lu",
+ description="LATIN CAPITAL LETTER K WITH DOT BELOW",
+ direction="l",
+ lccode=0x1E33,
+ linebreak="al",
+ shcode=0x004B,
+ specials={ "char", 0x004B, 0x0323 },
+ unicodeslot=0x1E32,
},
[0x1E33]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER K WITH DOT BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x006B,
- ["specials"]={ "char", 0x006B, 0x0323 },
- ["uccode"]=0x1E32,
- ["unicodeslot"]=0x1E33, -- ḳ
+ category="ll",
+ description="LATIN SMALL LETTER K WITH DOT BELOW",
+ direction="l",
+ linebreak="al",
+ shcode=0x006B,
+ specials={ "char", 0x006B, 0x0323 },
+ uccode=0x1E32,
+ unicodeslot=0x1E33,
},
[0x1E34]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER K WITH LINE BELOW",
- ["lccode"]=0x1E35,
- ["linebreak"]="al",
- ["shcode"]=0x004B,
- ["specials"]={ "char", 0x004B, 0x0331 },
- ["unicodeslot"]=0x1E34, -- Ḵ
+ category="lu",
+ description="LATIN CAPITAL LETTER K WITH LINE BELOW",
+ direction="l",
+ lccode=0x1E35,
+ linebreak="al",
+ shcode=0x004B,
+ specials={ "char", 0x004B, 0x0331 },
+ unicodeslot=0x1E34,
},
[0x1E35]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER K WITH LINE BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x006B,
- ["specials"]={ "char", 0x006B, 0x0331 },
- ["uccode"]=0x1E34,
- ["unicodeslot"]=0x1E35, -- ḵ
+ category="ll",
+ description="LATIN SMALL LETTER K WITH LINE BELOW",
+ direction="l",
+ linebreak="al",
+ shcode=0x006B,
+ specials={ "char", 0x006B, 0x0331 },
+ uccode=0x1E34,
+ unicodeslot=0x1E35,
},
[0x1E36]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER L WITH DOT BELOW",
- ["lccode"]=0x1E37,
- ["linebreak"]="al",
- ["shcode"]=0x004C,
- ["specials"]={ "char", 0x004C, 0x0323 },
- ["unicodeslot"]=0x1E36, -- Ḷ
+ category="lu",
+ description="LATIN CAPITAL LETTER L WITH DOT BELOW",
+ direction="l",
+ lccode=0x1E37,
+ linebreak="al",
+ shcode=0x004C,
+ specials={ "char", 0x004C, 0x0323 },
+ unicodeslot=0x1E36,
},
[0x1E37]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER L WITH DOT BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x006C,
- ["specials"]={ "char", 0x006C, 0x0323 },
- ["uccode"]=0x1E36,
- ["unicodeslot"]=0x1E37, -- ḷ
+ category="ll",
+ description="LATIN SMALL LETTER L WITH DOT BELOW",
+ direction="l",
+ linebreak="al",
+ shcode=0x006C,
+ specials={ "char", 0x006C, 0x0323 },
+ uccode=0x1E36,
+ unicodeslot=0x1E37,
},
[0x1E38]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON",
- ["lccode"]=0x1E39,
- ["linebreak"]="al",
- ["shcode"]=0x004C,
- ["specials"]={ "char", 0x1E36, 0x0304 },
- ["unicodeslot"]=0x1E38, -- Ḹ
+ category="lu",
+ description="LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON",
+ direction="l",
+ lccode=0x1E39,
+ linebreak="al",
+ shcode=0x004C,
+ specials={ "char", 0x1E36, 0x0304 },
+ unicodeslot=0x1E38,
},
[0x1E39]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER L WITH DOT BELOW AND MACRON",
- ["linebreak"]="al",
- ["shcode"]=0x006C,
- ["specials"]={ "char", 0x1E37, 0x0304 },
- ["uccode"]=0x1E38,
- ["unicodeslot"]=0x1E39, -- ḹ
+ category="ll",
+ description="LATIN SMALL LETTER L WITH DOT BELOW AND MACRON",
+ direction="l",
+ linebreak="al",
+ shcode=0x006C,
+ specials={ "char", 0x1E37, 0x0304 },
+ uccode=0x1E38,
+ unicodeslot=0x1E39,
},
[0x1E3A]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER L WITH LINE BELOW",
- ["lccode"]=0x1E3B,
- ["linebreak"]="al",
- ["shcode"]=0x004C,
- ["specials"]={ "char", 0x004C, 0x0331 },
- ["unicodeslot"]=0x1E3A, -- Ḻ
+ category="lu",
+ description="LATIN CAPITAL LETTER L WITH LINE BELOW",
+ direction="l",
+ lccode=0x1E3B,
+ linebreak="al",
+ shcode=0x004C,
+ specials={ "char", 0x004C, 0x0331 },
+ unicodeslot=0x1E3A,
},
[0x1E3B]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER L WITH LINE BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x006C,
- ["specials"]={ "char", 0x006C, 0x0331 },
- ["uccode"]=0x1E3A,
- ["unicodeslot"]=0x1E3B, -- ḻ
+ category="ll",
+ description="LATIN SMALL LETTER L WITH LINE BELOW",
+ direction="l",
+ linebreak="al",
+ shcode=0x006C,
+ specials={ "char", 0x006C, 0x0331 },
+ uccode=0x1E3A,
+ unicodeslot=0x1E3B,
},
[0x1E3C]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW",
- ["lccode"]=0x1E3D,
- ["linebreak"]="al",
- ["shcode"]=0x004C,
- ["specials"]={ "char", 0x004C, 0x032D },
- ["unicodeslot"]=0x1E3C, -- Ḽ
+ category="lu",
+ description="LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW",
+ direction="l",
+ lccode=0x1E3D,
+ linebreak="al",
+ shcode=0x004C,
+ specials={ "char", 0x004C, 0x032D },
+ unicodeslot=0x1E3C,
},
[0x1E3D]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x006C,
- ["specials"]={ "char", 0x006C, 0x032D },
- ["uccode"]=0x1E3C,
- ["unicodeslot"]=0x1E3D, -- ḽ
+ category="ll",
+ description="LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW",
+ direction="l",
+ linebreak="al",
+ shcode=0x006C,
+ specials={ "char", 0x006C, 0x032D },
+ uccode=0x1E3C,
+ unicodeslot=0x1E3D,
},
[0x1E3E]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER M WITH ACUTE",
- ["lccode"]=0x1E3F,
- ["linebreak"]="al",
- ["shcode"]=0x004D,
- ["specials"]={ "char", 0x004D, 0x0301 },
- ["unicodeslot"]=0x1E3E, -- Ḿ
+ category="lu",
+ description="LATIN CAPITAL LETTER M WITH ACUTE",
+ direction="l",
+ lccode=0x1E3F,
+ linebreak="al",
+ shcode=0x004D,
+ specials={ "char", 0x004D, 0x0301 },
+ unicodeslot=0x1E3E,
},
[0x1E3F]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER M WITH ACUTE",
- ["linebreak"]="al",
- ["shcode"]=0x006D,
- ["specials"]={ "char", 0x006D, 0x0301 },
- ["uccode"]=0x1E3E,
- ["unicodeslot"]=0x1E3F, -- ḿ
+ category="ll",
+ description="LATIN SMALL LETTER M WITH ACUTE",
+ direction="l",
+ linebreak="al",
+ shcode=0x006D,
+ specials={ "char", 0x006D, 0x0301 },
+ uccode=0x1E3E,
+ unicodeslot=0x1E3F,
},
[0x1E40]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER M WITH DOT ABOVE",
- ["lccode"]=0x1E41,
- ["linebreak"]="al",
- ["shcode"]=0x004D,
- ["specials"]={ "char", 0x004D, 0x0307 },
- ["unicodeslot"]=0x1E40, -- Ṁ
+ category="lu",
+ description="LATIN CAPITAL LETTER M WITH DOT ABOVE",
+ direction="l",
+ lccode=0x1E41,
+ linebreak="al",
+ shcode=0x004D,
+ specials={ "char", 0x004D, 0x0307 },
+ unicodeslot=0x1E40,
},
[0x1E41]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER M WITH DOT ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x006D,
- ["specials"]={ "char", 0x006D, 0x0307 },
- ["uccode"]=0x1E40,
- ["unicodeslot"]=0x1E41, -- ṁ
+ category="ll",
+ description="LATIN SMALL LETTER M WITH DOT ABOVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x006D,
+ specials={ "char", 0x006D, 0x0307 },
+ uccode=0x1E40,
+ unicodeslot=0x1E41,
},
[0x1E42]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER M WITH DOT BELOW",
- ["lccode"]=0x1E43,
- ["linebreak"]="al",
- ["shcode"]=0x004D,
- ["specials"]={ "char", 0x004D, 0x0323 },
- ["unicodeslot"]=0x1E42, -- Ṃ
+ category="lu",
+ description="LATIN CAPITAL LETTER M WITH DOT BELOW",
+ direction="l",
+ lccode=0x1E43,
+ linebreak="al",
+ shcode=0x004D,
+ specials={ "char", 0x004D, 0x0323 },
+ unicodeslot=0x1E42,
},
[0x1E43]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER M WITH DOT BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x006D,
- ["specials"]={ "char", 0x006D, 0x0323 },
- ["uccode"]=0x1E42,
- ["unicodeslot"]=0x1E43, -- ṃ
+ category="ll",
+ description="LATIN SMALL LETTER M WITH DOT BELOW",
+ direction="l",
+ linebreak="al",
+ shcode=0x006D,
+ specials={ "char", 0x006D, 0x0323 },
+ uccode=0x1E42,
+ unicodeslot=0x1E43,
},
[0x1E44]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER N WITH DOT ABOVE",
- ["lccode"]=0x1E45,
- ["linebreak"]="al",
- ["shcode"]=0x004E,
- ["specials"]={ "char", 0x004E, 0x0307 },
- ["unicodeslot"]=0x1E44, -- Ṅ
+ category="lu",
+ description="LATIN CAPITAL LETTER N WITH DOT ABOVE",
+ direction="l",
+ lccode=0x1E45,
+ linebreak="al",
+ shcode=0x004E,
+ specials={ "char", 0x004E, 0x0307 },
+ unicodeslot=0x1E44,
},
[0x1E45]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER N WITH DOT ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x006E,
- ["specials"]={ "char", 0x006E, 0x0307 },
- ["uccode"]=0x1E44,
- ["unicodeslot"]=0x1E45, -- ṅ
+ category="ll",
+ description="LATIN SMALL LETTER N WITH DOT ABOVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x006E,
+ specials={ "char", 0x006E, 0x0307 },
+ uccode=0x1E44,
+ unicodeslot=0x1E45,
},
[0x1E46]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER N WITH DOT BELOW",
- ["lccode"]=0x1E47,
- ["linebreak"]="al",
- ["shcode"]=0x004E,
- ["specials"]={ "char", 0x004E, 0x0323 },
- ["unicodeslot"]=0x1E46, -- Ṇ
+ category="lu",
+ description="LATIN CAPITAL LETTER N WITH DOT BELOW",
+ direction="l",
+ lccode=0x1E47,
+ linebreak="al",
+ shcode=0x004E,
+ specials={ "char", 0x004E, 0x0323 },
+ unicodeslot=0x1E46,
},
[0x1E47]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER N WITH DOT BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x006E,
- ["specials"]={ "char", 0x006E, 0x0323 },
- ["uccode"]=0x1E46,
- ["unicodeslot"]=0x1E47, -- ṇ
+ category="ll",
+ description="LATIN SMALL LETTER N WITH DOT BELOW",
+ direction="l",
+ linebreak="al",
+ shcode=0x006E,
+ specials={ "char", 0x006E, 0x0323 },
+ uccode=0x1E46,
+ unicodeslot=0x1E47,
},
[0x1E48]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER N WITH LINE BELOW",
- ["lccode"]=0x1E49,
- ["linebreak"]="al",
- ["shcode"]=0x004E,
- ["specials"]={ "char", 0x004E, 0x0331 },
- ["unicodeslot"]=0x1E48, -- Ṉ
+ category="lu",
+ description="LATIN CAPITAL LETTER N WITH LINE BELOW",
+ direction="l",
+ lccode=0x1E49,
+ linebreak="al",
+ shcode=0x004E,
+ specials={ "char", 0x004E, 0x0331 },
+ unicodeslot=0x1E48,
},
[0x1E49]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER N WITH LINE BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x006E,
- ["specials"]={ "char", 0x006E, 0x0331 },
- ["uccode"]=0x1E48,
- ["unicodeslot"]=0x1E49, -- ṉ
+ category="ll",
+ description="LATIN SMALL LETTER N WITH LINE BELOW",
+ direction="l",
+ linebreak="al",
+ shcode=0x006E,
+ specials={ "char", 0x006E, 0x0331 },
+ uccode=0x1E48,
+ unicodeslot=0x1E49,
},
[0x1E4A]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW",
- ["lccode"]=0x1E4B,
- ["linebreak"]="al",
- ["shcode"]=0x004E,
- ["specials"]={ "char", 0x004E, 0x032D },
- ["unicodeslot"]=0x1E4A, -- Ṋ
+ category="lu",
+ description="LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW",
+ direction="l",
+ lccode=0x1E4B,
+ linebreak="al",
+ shcode=0x004E,
+ specials={ "char", 0x004E, 0x032D },
+ unicodeslot=0x1E4A,
},
[0x1E4B]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x006E,
- ["specials"]={ "char", 0x006E, 0x032D },
- ["uccode"]=0x1E4A,
- ["unicodeslot"]=0x1E4B, -- ṋ
+ category="ll",
+ description="LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW",
+ direction="l",
+ linebreak="al",
+ shcode=0x006E,
+ specials={ "char", 0x006E, 0x032D },
+ uccode=0x1E4A,
+ unicodeslot=0x1E4B,
},
[0x1E4C]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER O WITH TILDE AND ACUTE",
- ["lccode"]=0x1E4D,
- ["linebreak"]="al",
- ["shcode"]=0x004F,
- ["specials"]={ "char", 0x00D5, 0x0301 },
- ["unicodeslot"]=0x1E4C, -- Ṍ
+ category="lu",
+ description="LATIN CAPITAL LETTER O WITH TILDE AND ACUTE",
+ direction="l",
+ lccode=0x1E4D,
+ linebreak="al",
+ shcode=0x004F,
+ specials={ "char", 0x00D5, 0x0301 },
+ unicodeslot=0x1E4C,
},
[0x1E4D]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER O WITH TILDE AND ACUTE",
- ["linebreak"]="al",
- ["shcode"]=0x006F,
- ["specials"]={ "char", 0x00F5, 0x0301 },
- ["uccode"]=0x1E4C,
- ["unicodeslot"]=0x1E4D, -- ṍ
+ category="ll",
+ description="LATIN SMALL LETTER O WITH TILDE AND ACUTE",
+ direction="l",
+ linebreak="al",
+ shcode=0x006F,
+ specials={ "char", 0x00F5, 0x0301 },
+ uccode=0x1E4C,
+ unicodeslot=0x1E4D,
},
[0x1E4E]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS",
- ["lccode"]=0x1E4F,
- ["linebreak"]="al",
- ["shcode"]=0x004F,
- ["specials"]={ "char", 0x00D5, 0x0308 },
- ["unicodeslot"]=0x1E4E, -- Ṏ
+ category="lu",
+ description="LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS",
+ direction="l",
+ lccode=0x1E4F,
+ linebreak="al",
+ shcode=0x004F,
+ specials={ "char", 0x00D5, 0x0308 },
+ unicodeslot=0x1E4E,
},
[0x1E4F]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER O WITH TILDE AND DIAERESIS",
- ["linebreak"]="al",
- ["shcode"]=0x006F,
- ["specials"]={ "char", 0x00F5, 0x0308 },
- ["uccode"]=0x1E4E,
- ["unicodeslot"]=0x1E4F, -- ṏ
+ category="ll",
+ description="LATIN SMALL LETTER O WITH TILDE AND DIAERESIS",
+ direction="l",
+ linebreak="al",
+ shcode=0x006F,
+ specials={ "char", 0x00F5, 0x0308 },
+ uccode=0x1E4E,
+ unicodeslot=0x1E4F,
},
[0x1E50]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER O WITH MACRON AND GRAVE",
- ["lccode"]=0x1E51,
- ["linebreak"]="al",
- ["shcode"]=0x004F,
- ["specials"]={ "char", 0x014C, 0x0300 },
- ["unicodeslot"]=0x1E50, -- Ṑ
+ category="lu",
+ description="LATIN CAPITAL LETTER O WITH MACRON AND GRAVE",
+ direction="l",
+ lccode=0x1E51,
+ linebreak="al",
+ shcode=0x004F,
+ specials={ "char", 0x014C, 0x0300 },
+ unicodeslot=0x1E50,
},
[0x1E51]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER O WITH MACRON AND GRAVE",
- ["linebreak"]="al",
- ["shcode"]=0x006F,
- ["specials"]={ "char", 0x014D, 0x0300 },
- ["uccode"]=0x1E50,
- ["unicodeslot"]=0x1E51, -- ṑ
+ category="ll",
+ description="LATIN SMALL LETTER O WITH MACRON AND GRAVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x006F,
+ specials={ "char", 0x014D, 0x0300 },
+ uccode=0x1E50,
+ unicodeslot=0x1E51,
},
[0x1E52]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER O WITH MACRON AND ACUTE",
- ["lccode"]=0x1E53,
- ["linebreak"]="al",
- ["shcode"]=0x004F,
- ["specials"]={ "char", 0x014C, 0x0301 },
- ["unicodeslot"]=0x1E52, -- Ṓ
+ category="lu",
+ description="LATIN CAPITAL LETTER O WITH MACRON AND ACUTE",
+ direction="l",
+ lccode=0x1E53,
+ linebreak="al",
+ shcode=0x004F,
+ specials={ "char", 0x014C, 0x0301 },
+ unicodeslot=0x1E52,
},
[0x1E53]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER O WITH MACRON AND ACUTE",
- ["linebreak"]="al",
- ["shcode"]=0x006F,
- ["specials"]={ "char", 0x014D, 0x0301 },
- ["uccode"]=0x1E52,
- ["unicodeslot"]=0x1E53, -- ṓ
+ category="ll",
+ description="LATIN SMALL LETTER O WITH MACRON AND ACUTE",
+ direction="l",
+ linebreak="al",
+ shcode=0x006F,
+ specials={ "char", 0x014D, 0x0301 },
+ uccode=0x1E52,
+ unicodeslot=0x1E53,
},
[0x1E54]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER P WITH ACUTE",
- ["lccode"]=0x1E55,
- ["linebreak"]="al",
- ["shcode"]=0x0050,
- ["specials"]={ "char", 0x0050, 0x0301 },
- ["unicodeslot"]=0x1E54, -- Ṕ
+ category="lu",
+ description="LATIN CAPITAL LETTER P WITH ACUTE",
+ direction="l",
+ lccode=0x1E55,
+ linebreak="al",
+ shcode=0x0050,
+ specials={ "char", 0x0050, 0x0301 },
+ unicodeslot=0x1E54,
},
[0x1E55]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER P WITH ACUTE",
- ["linebreak"]="al",
- ["shcode"]=0x0070,
- ["specials"]={ "char", 0x0070, 0x0301 },
- ["uccode"]=0x1E54,
- ["unicodeslot"]=0x1E55, -- ṕ
+ category="ll",
+ description="LATIN SMALL LETTER P WITH ACUTE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0070,
+ specials={ "char", 0x0070, 0x0301 },
+ uccode=0x1E54,
+ unicodeslot=0x1E55,
},
[0x1E56]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER P WITH DOT ABOVE",
- ["lccode"]=0x1E57,
- ["linebreak"]="al",
- ["shcode"]=0x0050,
- ["specials"]={ "char", 0x0050, 0x0307 },
- ["unicodeslot"]=0x1E56, -- Ṗ
+ category="lu",
+ description="LATIN CAPITAL LETTER P WITH DOT ABOVE",
+ direction="l",
+ lccode=0x1E57,
+ linebreak="al",
+ shcode=0x0050,
+ specials={ "char", 0x0050, 0x0307 },
+ unicodeslot=0x1E56,
},
[0x1E57]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER P WITH DOT ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0070,
- ["specials"]={ "char", 0x0070, 0x0307 },
- ["uccode"]=0x1E56,
- ["unicodeslot"]=0x1E57, -- ṗ
+ category="ll",
+ description="LATIN SMALL LETTER P WITH DOT ABOVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0070,
+ specials={ "char", 0x0070, 0x0307 },
+ uccode=0x1E56,
+ unicodeslot=0x1E57,
},
[0x1E58]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER R WITH DOT ABOVE",
- ["lccode"]=0x1E59,
- ["linebreak"]="al",
- ["shcode"]=0x0052,
- ["specials"]={ "char", 0x0052, 0x0307 },
- ["unicodeslot"]=0x1E58, -- Ṙ
+ category="lu",
+ description="LATIN CAPITAL LETTER R WITH DOT ABOVE",
+ direction="l",
+ lccode=0x1E59,
+ linebreak="al",
+ shcode=0x0052,
+ specials={ "char", 0x0052, 0x0307 },
+ unicodeslot=0x1E58,
},
[0x1E59]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER R WITH DOT ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0072,
- ["specials"]={ "char", 0x0072, 0x0307 },
- ["uccode"]=0x1E58,
- ["unicodeslot"]=0x1E59, -- ṙ
+ category="ll",
+ description="LATIN SMALL LETTER R WITH DOT ABOVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0072,
+ specials={ "char", 0x0072, 0x0307 },
+ uccode=0x1E58,
+ unicodeslot=0x1E59,
},
[0x1E5A]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER R WITH DOT BELOW",
- ["lccode"]=0x1E5B,
- ["linebreak"]="al",
- ["shcode"]=0x0052,
- ["specials"]={ "char", 0x0052, 0x0323 },
- ["unicodeslot"]=0x1E5A, -- Ṛ
+ category="lu",
+ description="LATIN CAPITAL LETTER R WITH DOT BELOW",
+ direction="l",
+ lccode=0x1E5B,
+ linebreak="al",
+ shcode=0x0052,
+ specials={ "char", 0x0052, 0x0323 },
+ unicodeslot=0x1E5A,
},
[0x1E5B]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER R WITH DOT BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x0072,
- ["specials"]={ "char", 0x0072, 0x0323 },
- ["uccode"]=0x1E5A,
- ["unicodeslot"]=0x1E5B, -- ṛ
+ category="ll",
+ description="LATIN SMALL LETTER R WITH DOT BELOW",
+ direction="l",
+ linebreak="al",
+ shcode=0x0072,
+ specials={ "char", 0x0072, 0x0323 },
+ uccode=0x1E5A,
+ unicodeslot=0x1E5B,
},
[0x1E5C]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON",
- ["lccode"]=0x1E5D,
- ["linebreak"]="al",
- ["shcode"]=0x0052,
- ["specials"]={ "char", 0x1E5A, 0x0304 },
- ["unicodeslot"]=0x1E5C, -- Ṝ
+ category="lu",
+ description="LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON",
+ direction="l",
+ lccode=0x1E5D,
+ linebreak="al",
+ shcode=0x0052,
+ specials={ "char", 0x1E5A, 0x0304 },
+ unicodeslot=0x1E5C,
},
[0x1E5D]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER R WITH DOT BELOW AND MACRON",
- ["linebreak"]="al",
- ["shcode"]=0x0072,
- ["specials"]={ "char", 0x1E5B, 0x0304 },
- ["uccode"]=0x1E5C,
- ["unicodeslot"]=0x1E5D, -- ṝ
+ category="ll",
+ description="LATIN SMALL LETTER R WITH DOT BELOW AND MACRON",
+ direction="l",
+ linebreak="al",
+ shcode=0x0072,
+ specials={ "char", 0x1E5B, 0x0304 },
+ uccode=0x1E5C,
+ unicodeslot=0x1E5D,
},
[0x1E5E]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER R WITH LINE BELOW",
- ["lccode"]=0x1E5F,
- ["linebreak"]="al",
- ["shcode"]=0x0052,
- ["specials"]={ "char", 0x0052, 0x0331 },
- ["unicodeslot"]=0x1E5E, -- Ṟ
+ category="lu",
+ description="LATIN CAPITAL LETTER R WITH LINE BELOW",
+ direction="l",
+ lccode=0x1E5F,
+ linebreak="al",
+ shcode=0x0052,
+ specials={ "char", 0x0052, 0x0331 },
+ unicodeslot=0x1E5E,
},
[0x1E5F]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER R WITH LINE BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x0072,
- ["specials"]={ "char", 0x0072, 0x0331 },
- ["uccode"]=0x1E5E,
- ["unicodeslot"]=0x1E5F, -- ṟ
+ category="ll",
+ description="LATIN SMALL LETTER R WITH LINE BELOW",
+ direction="l",
+ linebreak="al",
+ shcode=0x0072,
+ specials={ "char", 0x0072, 0x0331 },
+ uccode=0x1E5E,
+ unicodeslot=0x1E5F,
},
[0x1E60]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER S WITH DOT ABOVE",
- ["lccode"]=0x1E61,
- ["linebreak"]="al",
- ["shcode"]=0x0053,
- ["specials"]={ "char", 0x0053, 0x0307 },
- ["unicodeslot"]=0x1E60, -- Ṡ
+ category="lu",
+ description="LATIN CAPITAL LETTER S WITH DOT ABOVE",
+ direction="l",
+ lccode=0x1E61,
+ linebreak="al",
+ shcode=0x0053,
+ specials={ "char", 0x0053, 0x0307 },
+ unicodeslot=0x1E60,
},
[0x1E61]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER S WITH DOT ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0073,
- ["specials"]={ "char", 0x0073, 0x0307 },
- ["uccode"]=0x1E60,
- ["unicodeslot"]=0x1E61, -- ṡ
+ category="ll",
+ description="LATIN SMALL LETTER S WITH DOT ABOVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0073,
+ specials={ "char", 0x0073, 0x0307 },
+ uccode=0x1E60,
+ unicodeslot=0x1E61,
},
[0x1E62]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER S WITH DOT BELOW",
- ["lccode"]=0x1E63,
- ["linebreak"]="al",
- ["shcode"]=0x0053,
- ["specials"]={ "char", 0x0053, 0x0323 },
- ["unicodeslot"]=0x1E62, -- Ṣ
+ category="lu",
+ description="LATIN CAPITAL LETTER S WITH DOT BELOW",
+ direction="l",
+ lccode=0x1E63,
+ linebreak="al",
+ shcode=0x0053,
+ specials={ "char", 0x0053, 0x0323 },
+ unicodeslot=0x1E62,
},
[0x1E63]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER S WITH DOT BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x0073,
- ["specials"]={ "char", 0x0073, 0x0323 },
- ["uccode"]=0x1E62,
- ["unicodeslot"]=0x1E63, -- ṣ
+ category="ll",
+ description="LATIN SMALL LETTER S WITH DOT BELOW",
+ direction="l",
+ linebreak="al",
+ shcode=0x0073,
+ specials={ "char", 0x0073, 0x0323 },
+ uccode=0x1E62,
+ unicodeslot=0x1E63,
},
[0x1E64]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE",
- ["lccode"]=0x1E65,
- ["linebreak"]="al",
- ["shcode"]=0x0053,
- ["specials"]={ "char", 0x015A, 0x0307 },
- ["unicodeslot"]=0x1E64, -- Ṥ
+ category="lu",
+ description="LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE",
+ direction="l",
+ lccode=0x1E65,
+ linebreak="al",
+ shcode=0x0053,
+ specials={ "char", 0x015A, 0x0307 },
+ unicodeslot=0x1E64,
},
[0x1E65]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0073,
- ["specials"]={ "char", 0x015B, 0x0307 },
- ["uccode"]=0x1E64,
- ["unicodeslot"]=0x1E65, -- ṥ
+ category="ll",
+ description="LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0073,
+ specials={ "char", 0x015B, 0x0307 },
+ uccode=0x1E64,
+ unicodeslot=0x1E65,
},
[0x1E66]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE",
- ["lccode"]=0x1E67,
- ["linebreak"]="al",
- ["shcode"]=0x0053,
- ["specials"]={ "char", 0x0160, 0x0307 },
- ["unicodeslot"]=0x1E66, -- Ṧ
+ category="lu",
+ description="LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE",
+ direction="l",
+ lccode=0x1E67,
+ linebreak="al",
+ shcode=0x0053,
+ specials={ "char", 0x0160, 0x0307 },
+ unicodeslot=0x1E66,
},
[0x1E67]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER S WITH CARON AND DOT ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0073,
- ["specials"]={ "char", 0x0161, 0x0307 },
- ["uccode"]=0x1E66,
- ["unicodeslot"]=0x1E67, -- ṧ
+ category="ll",
+ description="LATIN SMALL LETTER S WITH CARON AND DOT ABOVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0073,
+ specials={ "char", 0x0161, 0x0307 },
+ uccode=0x1E66,
+ unicodeslot=0x1E67,
},
[0x1E68]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE",
- ["lccode"]=0x1E69,
- ["linebreak"]="al",
- ["shcode"]=0x0053,
- ["specials"]={ "char", 0x1E62, 0x0307 },
- ["unicodeslot"]=0x1E68, -- Ṩ
+ category="lu",
+ description="LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE",
+ direction="l",
+ lccode=0x1E69,
+ linebreak="al",
+ shcode=0x0053,
+ specials={ "char", 0x1E62, 0x0307 },
+ unicodeslot=0x1E68,
},
[0x1E69]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0073,
- ["specials"]={ "char", 0x1E63, 0x0307 },
- ["uccode"]=0x1E68,
- ["unicodeslot"]=0x1E69, -- ṩ
+ category="ll",
+ description="LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0073,
+ specials={ "char", 0x1E63, 0x0307 },
+ uccode=0x1E68,
+ unicodeslot=0x1E69,
},
[0x1E6A]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER T WITH DOT ABOVE",
- ["lccode"]=0x1E6B,
- ["linebreak"]="al",
- ["shcode"]=0x0054,
- ["specials"]={ "char", 0x0054, 0x0307 },
- ["unicodeslot"]=0x1E6A, -- Ṫ
+ category="lu",
+ description="LATIN CAPITAL LETTER T WITH DOT ABOVE",
+ direction="l",
+ lccode=0x1E6B,
+ linebreak="al",
+ shcode=0x0054,
+ specials={ "char", 0x0054, 0x0307 },
+ unicodeslot=0x1E6A,
},
[0x1E6B]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER T WITH DOT ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0074,
- ["specials"]={ "char", 0x0074, 0x0307 },
- ["uccode"]=0x1E6A,
- ["unicodeslot"]=0x1E6B, -- ṫ
+ category="ll",
+ description="LATIN SMALL LETTER T WITH DOT ABOVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0074,
+ specials={ "char", 0x0074, 0x0307 },
+ uccode=0x1E6A,
+ unicodeslot=0x1E6B,
},
[0x1E6C]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER T WITH DOT BELOW",
- ["lccode"]=0x1E6D,
- ["linebreak"]="al",
- ["shcode"]=0x0054,
- ["specials"]={ "char", 0x0054, 0x0323 },
- ["unicodeslot"]=0x1E6C, -- Ṭ
+ category="lu",
+ description="LATIN CAPITAL LETTER T WITH DOT BELOW",
+ direction="l",
+ lccode=0x1E6D,
+ linebreak="al",
+ shcode=0x0054,
+ specials={ "char", 0x0054, 0x0323 },
+ unicodeslot=0x1E6C,
},
[0x1E6D]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER T WITH DOT BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x0074,
- ["specials"]={ "char", 0x0074, 0x0323 },
- ["uccode"]=0x1E6C,
- ["unicodeslot"]=0x1E6D, -- ṭ
+ category="ll",
+ description="LATIN SMALL LETTER T WITH DOT BELOW",
+ direction="l",
+ linebreak="al",
+ shcode=0x0074,
+ specials={ "char", 0x0074, 0x0323 },
+ uccode=0x1E6C,
+ unicodeslot=0x1E6D,
},
[0x1E6E]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER T WITH LINE BELOW",
- ["lccode"]=0x1E6F,
- ["linebreak"]="al",
- ["shcode"]=0x0054,
- ["specials"]={ "char", 0x0054, 0x0331 },
- ["unicodeslot"]=0x1E6E, -- Ṯ
+ category="lu",
+ description="LATIN CAPITAL LETTER T WITH LINE BELOW",
+ direction="l",
+ lccode=0x1E6F,
+ linebreak="al",
+ shcode=0x0054,
+ specials={ "char", 0x0054, 0x0331 },
+ unicodeslot=0x1E6E,
},
[0x1E6F]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER T WITH LINE BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x0074,
- ["specials"]={ "char", 0x0074, 0x0331 },
- ["uccode"]=0x1E6E,
- ["unicodeslot"]=0x1E6F, -- ṯ
+ category="ll",
+ description="LATIN SMALL LETTER T WITH LINE BELOW",
+ direction="l",
+ linebreak="al",
+ shcode=0x0074,
+ specials={ "char", 0x0074, 0x0331 },
+ uccode=0x1E6E,
+ unicodeslot=0x1E6F,
},
[0x1E70]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW",
- ["lccode"]=0x1E71,
- ["linebreak"]="al",
- ["shcode"]=0x0054,
- ["specials"]={ "char", 0x0054, 0x032D },
- ["unicodeslot"]=0x1E70, -- Ṱ
+ category="lu",
+ description="LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW",
+ direction="l",
+ lccode=0x1E71,
+ linebreak="al",
+ shcode=0x0054,
+ specials={ "char", 0x0054, 0x032D },
+ unicodeslot=0x1E70,
},
[0x1E71]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x0074,
- ["specials"]={ "char", 0x0074, 0x032D },
- ["uccode"]=0x1E70,
- ["unicodeslot"]=0x1E71, -- ṱ
+ category="ll",
+ description="LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW",
+ direction="l",
+ linebreak="al",
+ shcode=0x0074,
+ specials={ "char", 0x0074, 0x032D },
+ uccode=0x1E70,
+ unicodeslot=0x1E71,
},
[0x1E72]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER U WITH DIAERESIS BELOW",
- ["lccode"]=0x1E73,
- ["linebreak"]="al",
- ["shcode"]=0x0055,
- ["specials"]={ "char", 0x0055, 0x0324 },
- ["unicodeslot"]=0x1E72, -- Ṳ
+ category="lu",
+ description="LATIN CAPITAL LETTER U WITH DIAERESIS BELOW",
+ direction="l",
+ lccode=0x1E73,
+ linebreak="al",
+ shcode=0x0055,
+ specials={ "char", 0x0055, 0x0324 },
+ unicodeslot=0x1E72,
},
[0x1E73]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER U WITH DIAERESIS BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x0075,
- ["specials"]={ "char", 0x0075, 0x0324 },
- ["uccode"]=0x1E72,
- ["unicodeslot"]=0x1E73, -- ṳ
+ category="ll",
+ description="LATIN SMALL LETTER U WITH DIAERESIS BELOW",
+ direction="l",
+ linebreak="al",
+ shcode=0x0075,
+ specials={ "char", 0x0075, 0x0324 },
+ uccode=0x1E72,
+ unicodeslot=0x1E73,
},
[0x1E74]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER U WITH TILDE BELOW",
- ["lccode"]=0x1E75,
- ["linebreak"]="al",
- ["shcode"]=0x0055,
- ["specials"]={ "char", 0x0055, 0x0330 },
- ["unicodeslot"]=0x1E74, -- Ṵ
+ category="lu",
+ description="LATIN CAPITAL LETTER U WITH TILDE BELOW",
+ direction="l",
+ lccode=0x1E75,
+ linebreak="al",
+ shcode=0x0055,
+ specials={ "char", 0x0055, 0x0330 },
+ unicodeslot=0x1E74,
},
[0x1E75]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER U WITH TILDE BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x0075,
- ["specials"]={ "char", 0x0075, 0x0330 },
- ["uccode"]=0x1E74,
- ["unicodeslot"]=0x1E75, -- ṵ
+ category="ll",
+ description="LATIN SMALL LETTER U WITH TILDE BELOW",
+ direction="l",
+ linebreak="al",
+ shcode=0x0075,
+ specials={ "char", 0x0075, 0x0330 },
+ uccode=0x1E74,
+ unicodeslot=0x1E75,
},
[0x1E76]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW",
- ["lccode"]=0x1E77,
- ["linebreak"]="al",
- ["shcode"]=0x0055,
- ["specials"]={ "char", 0x0055, 0x032D },
- ["unicodeslot"]=0x1E76, -- Ṷ
+ category="lu",
+ description="LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW",
+ direction="l",
+ lccode=0x1E77,
+ linebreak="al",
+ shcode=0x0055,
+ specials={ "char", 0x0055, 0x032D },
+ unicodeslot=0x1E76,
},
[0x1E77]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x0075,
- ["specials"]={ "char", 0x0075, 0x032D },
- ["uccode"]=0x1E76,
- ["unicodeslot"]=0x1E77, -- ṷ
+ category="ll",
+ description="LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW",
+ direction="l",
+ linebreak="al",
+ shcode=0x0075,
+ specials={ "char", 0x0075, 0x032D },
+ uccode=0x1E76,
+ unicodeslot=0x1E77,
},
[0x1E78]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER U WITH TILDE AND ACUTE",
- ["lccode"]=0x1E79,
- ["linebreak"]="al",
- ["shcode"]=0x0055,
- ["specials"]={ "char", 0x0168, 0x0301 },
- ["unicodeslot"]=0x1E78, -- Ṹ
+ category="lu",
+ description="LATIN CAPITAL LETTER U WITH TILDE AND ACUTE",
+ direction="l",
+ lccode=0x1E79,
+ linebreak="al",
+ shcode=0x0055,
+ specials={ "char", 0x0168, 0x0301 },
+ unicodeslot=0x1E78,
},
[0x1E79]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER U WITH TILDE AND ACUTE",
- ["linebreak"]="al",
- ["shcode"]=0x0075,
- ["specials"]={ "char", 0x0169, 0x0301 },
- ["uccode"]=0x1E78,
- ["unicodeslot"]=0x1E79, -- ṹ
+ category="ll",
+ description="LATIN SMALL LETTER U WITH TILDE AND ACUTE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0075,
+ specials={ "char", 0x0169, 0x0301 },
+ uccode=0x1E78,
+ unicodeslot=0x1E79,
},
[0x1E7A]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS",
- ["lccode"]=0x1E7B,
- ["linebreak"]="al",
- ["shcode"]=0x0055,
- ["specials"]={ "char", 0x016A, 0x0308 },
- ["unicodeslot"]=0x1E7A, -- Ṻ
+ category="lu",
+ description="LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS",
+ direction="l",
+ lccode=0x1E7B,
+ linebreak="al",
+ shcode=0x0055,
+ specials={ "char", 0x016A, 0x0308 },
+ unicodeslot=0x1E7A,
},
[0x1E7B]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER U WITH MACRON AND DIAERESIS",
- ["linebreak"]="al",
- ["shcode"]=0x0075,
- ["specials"]={ "char", 0x016B, 0x0308 },
- ["uccode"]=0x1E7A,
- ["unicodeslot"]=0x1E7B, -- ṻ
+ category="ll",
+ description="LATIN SMALL LETTER U WITH MACRON AND DIAERESIS",
+ direction="l",
+ linebreak="al",
+ shcode=0x0075,
+ specials={ "char", 0x016B, 0x0308 },
+ uccode=0x1E7A,
+ unicodeslot=0x1E7B,
},
[0x1E7C]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER V WITH TILDE",
- ["lccode"]=0x1E7D,
- ["linebreak"]="al",
- ["shcode"]=0x0056,
- ["specials"]={ "char", 0x0056, 0x0303 },
- ["unicodeslot"]=0x1E7C, -- Ṽ
+ category="lu",
+ description="LATIN CAPITAL LETTER V WITH TILDE",
+ direction="l",
+ lccode=0x1E7D,
+ linebreak="al",
+ shcode=0x0056,
+ specials={ "char", 0x0056, 0x0303 },
+ unicodeslot=0x1E7C,
},
[0x1E7D]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER V WITH TILDE",
- ["linebreak"]="al",
- ["shcode"]=0x0076,
- ["specials"]={ "char", 0x0076, 0x0303 },
- ["uccode"]=0x1E7C,
- ["unicodeslot"]=0x1E7D, -- ṽ
+ category="ll",
+ description="LATIN SMALL LETTER V WITH TILDE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0076,
+ specials={ "char", 0x0076, 0x0303 },
+ uccode=0x1E7C,
+ unicodeslot=0x1E7D,
},
[0x1E7E]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER V WITH DOT BELOW",
- ["lccode"]=0x1E7F,
- ["linebreak"]="al",
- ["shcode"]=0x0056,
- ["specials"]={ "char", 0x0056, 0x0323 },
- ["unicodeslot"]=0x1E7E, -- Ṿ
+ category="lu",
+ description="LATIN CAPITAL LETTER V WITH DOT BELOW",
+ direction="l",
+ lccode=0x1E7F,
+ linebreak="al",
+ shcode=0x0056,
+ specials={ "char", 0x0056, 0x0323 },
+ unicodeslot=0x1E7E,
},
[0x1E7F]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER V WITH DOT BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x0076,
- ["specials"]={ "char", 0x0076, 0x0323 },
- ["uccode"]=0x1E7E,
- ["unicodeslot"]=0x1E7F, -- ṿ
+ category="ll",
+ description="LATIN SMALL LETTER V WITH DOT BELOW",
+ direction="l",
+ linebreak="al",
+ shcode=0x0076,
+ specials={ "char", 0x0076, 0x0323 },
+ uccode=0x1E7E,
+ unicodeslot=0x1E7F,
},
[0x1E80]={
- ["adobename"]="Wgrave",
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER W WITH GRAVE",
- ["lccode"]=0x1E81,
- ["linebreak"]="al",
- ["shcode"]=0x0057,
- ["specials"]={ "char", 0x0057, 0x0300 },
- ["unicodeslot"]=0x1E80, -- Ẁ
+ adobename="Wgrave",
+ category="lu",
+ description="LATIN CAPITAL LETTER W WITH GRAVE",
+ direction="l",
+ lccode=0x1E81,
+ linebreak="al",
+ shcode=0x0057,
+ specials={ "char", 0x0057, 0x0300 },
+ unicodeslot=0x1E80,
},
[0x1E81]={
- ["adobename"]="wgrave",
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER W WITH GRAVE",
- ["linebreak"]="al",
- ["shcode"]=0x0077,
- ["specials"]={ "char", 0x0077, 0x0300 },
- ["uccode"]=0x1E80,
- ["unicodeslot"]=0x1E81, -- ẁ
+ adobename="wgrave",
+ category="ll",
+ description="LATIN SMALL LETTER W WITH GRAVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0077,
+ specials={ "char", 0x0077, 0x0300 },
+ uccode=0x1E80,
+ unicodeslot=0x1E81,
},
[0x1E82]={
- ["adobename"]="Wacute",
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER W WITH ACUTE",
- ["lccode"]=0x1E83,
- ["linebreak"]="al",
- ["shcode"]=0x0057,
- ["specials"]={ "char", 0x0057, 0x0301 },
- ["unicodeslot"]=0x1E82, -- Ẃ
+ adobename="Wacute",
+ category="lu",
+ description="LATIN CAPITAL LETTER W WITH ACUTE",
+ direction="l",
+ lccode=0x1E83,
+ linebreak="al",
+ shcode=0x0057,
+ specials={ "char", 0x0057, 0x0301 },
+ unicodeslot=0x1E82,
},
[0x1E83]={
- ["adobename"]="wacute",
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER W WITH ACUTE",
- ["linebreak"]="al",
- ["shcode"]=0x0077,
- ["specials"]={ "char", 0x0077, 0x0301 },
- ["uccode"]=0x1E82,
- ["unicodeslot"]=0x1E83, -- ẃ
+ adobename="wacute",
+ category="ll",
+ description="LATIN SMALL LETTER W WITH ACUTE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0077,
+ specials={ "char", 0x0077, 0x0301 },
+ uccode=0x1E82,
+ unicodeslot=0x1E83,
},
[0x1E84]={
- ["adobename"]="Wdieresis",
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER W WITH DIAERESIS",
- ["lccode"]=0x1E85,
- ["linebreak"]="al",
- ["shcode"]=0x0057,
- ["specials"]={ "char", 0x0057, 0x0308 },
- ["unicodeslot"]=0x1E84, -- Ẅ
+ adobename="Wdieresis",
+ category="lu",
+ description="LATIN CAPITAL LETTER W WITH DIAERESIS",
+ direction="l",
+ lccode=0x1E85,
+ linebreak="al",
+ shcode=0x0057,
+ specials={ "char", 0x0057, 0x0308 },
+ unicodeslot=0x1E84,
},
[0x1E85]={
- ["adobename"]="wdieresis",
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER W WITH DIAERESIS",
- ["linebreak"]="al",
- ["shcode"]=0x0077,
- ["specials"]={ "char", 0x0077, 0x0308 },
- ["uccode"]=0x1E84,
- ["unicodeslot"]=0x1E85, -- ẅ
+ adobename="wdieresis",
+ category="ll",
+ description="LATIN SMALL LETTER W WITH DIAERESIS",
+ direction="l",
+ linebreak="al",
+ shcode=0x0077,
+ specials={ "char", 0x0077, 0x0308 },
+ uccode=0x1E84,
+ unicodeslot=0x1E85,
},
[0x1E86]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER W WITH DOT ABOVE",
- ["lccode"]=0x1E87,
- ["linebreak"]="al",
- ["shcode"]=0x0057,
- ["specials"]={ "char", 0x0057, 0x0307 },
- ["unicodeslot"]=0x1E86, -- Ẇ
+ category="lu",
+ description="LATIN CAPITAL LETTER W WITH DOT ABOVE",
+ direction="l",
+ lccode=0x1E87,
+ linebreak="al",
+ shcode=0x0057,
+ specials={ "char", 0x0057, 0x0307 },
+ unicodeslot=0x1E86,
},
[0x1E87]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER W WITH DOT ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0077,
- ["specials"]={ "char", 0x0077, 0x0307 },
- ["uccode"]=0x1E86,
- ["unicodeslot"]=0x1E87, -- ẇ
+ category="ll",
+ description="LATIN SMALL LETTER W WITH DOT ABOVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0077,
+ specials={ "char", 0x0077, 0x0307 },
+ uccode=0x1E86,
+ unicodeslot=0x1E87,
},
[0x1E88]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER W WITH DOT BELOW",
- ["lccode"]=0x1E89,
- ["linebreak"]="al",
- ["shcode"]=0x0057,
- ["specials"]={ "char", 0x0057, 0x0323 },
- ["unicodeslot"]=0x1E88, -- Ẉ
+ category="lu",
+ description="LATIN CAPITAL LETTER W WITH DOT BELOW",
+ direction="l",
+ lccode=0x1E89,
+ linebreak="al",
+ shcode=0x0057,
+ specials={ "char", 0x0057, 0x0323 },
+ unicodeslot=0x1E88,
},
[0x1E89]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER W WITH DOT BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x0077,
- ["specials"]={ "char", 0x0077, 0x0323 },
- ["uccode"]=0x1E88,
- ["unicodeslot"]=0x1E89, -- ẉ
+ category="ll",
+ description="LATIN SMALL LETTER W WITH DOT BELOW",
+ direction="l",
+ linebreak="al",
+ shcode=0x0077,
+ specials={ "char", 0x0077, 0x0323 },
+ uccode=0x1E88,
+ unicodeslot=0x1E89,
},
[0x1E8A]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER X WITH DOT ABOVE",
- ["lccode"]=0x1E8B,
- ["linebreak"]="al",
- ["shcode"]=0x0058,
- ["specials"]={ "char", 0x0058, 0x0307 },
- ["unicodeslot"]=0x1E8A, -- Ẋ
+ category="lu",
+ description="LATIN CAPITAL LETTER X WITH DOT ABOVE",
+ direction="l",
+ lccode=0x1E8B,
+ linebreak="al",
+ shcode=0x0058,
+ specials={ "char", 0x0058, 0x0307 },
+ unicodeslot=0x1E8A,
},
[0x1E8B]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER X WITH DOT ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0078,
- ["specials"]={ "char", 0x0078, 0x0307 },
- ["uccode"]=0x1E8A,
- ["unicodeslot"]=0x1E8B, -- ẋ
+ category="ll",
+ description="LATIN SMALL LETTER X WITH DOT ABOVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0078,
+ specials={ "char", 0x0078, 0x0307 },
+ uccode=0x1E8A,
+ unicodeslot=0x1E8B,
},
[0x1E8C]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER X WITH DIAERESIS",
- ["lccode"]=0x1E8D,
- ["linebreak"]="al",
- ["shcode"]=0x0058,
- ["specials"]={ "char", 0x0058, 0x0308 },
- ["unicodeslot"]=0x1E8C, -- Ẍ
+ category="lu",
+ description="LATIN CAPITAL LETTER X WITH DIAERESIS",
+ direction="l",
+ lccode=0x1E8D,
+ linebreak="al",
+ shcode=0x0058,
+ specials={ "char", 0x0058, 0x0308 },
+ unicodeslot=0x1E8C,
},
[0x1E8D]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER X WITH DIAERESIS",
- ["linebreak"]="al",
- ["shcode"]=0x0078,
- ["specials"]={ "char", 0x0078, 0x0308 },
- ["uccode"]=0x1E8C,
- ["unicodeslot"]=0x1E8D, -- ẍ
+ category="ll",
+ description="LATIN SMALL LETTER X WITH DIAERESIS",
+ direction="l",
+ linebreak="al",
+ shcode=0x0078,
+ specials={ "char", 0x0078, 0x0308 },
+ uccode=0x1E8C,
+ unicodeslot=0x1E8D,
},
[0x1E8E]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER Y WITH DOT ABOVE",
- ["lccode"]=0x1E8F,
- ["linebreak"]="al",
- ["shcode"]=0x0059,
- ["specials"]={ "char", 0x0059, 0x0307 },
- ["unicodeslot"]=0x1E8E, -- Ẏ
+ category="lu",
+ description="LATIN CAPITAL LETTER Y WITH DOT ABOVE",
+ direction="l",
+ lccode=0x1E8F,
+ linebreak="al",
+ shcode=0x0059,
+ specials={ "char", 0x0059, 0x0307 },
+ unicodeslot=0x1E8E,
},
[0x1E8F]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER Y WITH DOT ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0079,
- ["specials"]={ "char", 0x0079, 0x0307 },
- ["uccode"]=0x1E8E,
- ["unicodeslot"]=0x1E8F, -- ẏ
+ category="ll",
+ description="LATIN SMALL LETTER Y WITH DOT ABOVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0079,
+ specials={ "char", 0x0079, 0x0307 },
+ uccode=0x1E8E,
+ unicodeslot=0x1E8F,
},
[0x1E90]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER Z WITH CIRCUMFLEX",
- ["lccode"]=0x1E91,
- ["linebreak"]="al",
- ["shcode"]=0x005A,
- ["specials"]={ "char", 0x005A, 0x0302 },
- ["unicodeslot"]=0x1E90, -- Ẑ
+ category="lu",
+ description="LATIN CAPITAL LETTER Z WITH CIRCUMFLEX",
+ direction="l",
+ lccode=0x1E91,
+ linebreak="al",
+ shcode=0x005A,
+ specials={ "char", 0x005A, 0x0302 },
+ unicodeslot=0x1E90,
},
[0x1E91]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER Z WITH CIRCUMFLEX",
- ["linebreak"]="al",
- ["shcode"]=0x007A,
- ["specials"]={ "char", 0x007A, 0x0302 },
- ["uccode"]=0x1E90,
- ["unicodeslot"]=0x1E91, -- ẑ
+ category="ll",
+ description="LATIN SMALL LETTER Z WITH CIRCUMFLEX",
+ direction="l",
+ linebreak="al",
+ shcode=0x007A,
+ specials={ "char", 0x007A, 0x0302 },
+ uccode=0x1E90,
+ unicodeslot=0x1E91,
},
[0x1E92]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER Z WITH DOT BELOW",
- ["lccode"]=0x1E93,
- ["linebreak"]="al",
- ["shcode"]=0x005A,
- ["specials"]={ "char", 0x005A, 0x0323 },
- ["unicodeslot"]=0x1E92, -- Ẓ
+ category="lu",
+ description="LATIN CAPITAL LETTER Z WITH DOT BELOW",
+ direction="l",
+ lccode=0x1E93,
+ linebreak="al",
+ shcode=0x005A,
+ specials={ "char", 0x005A, 0x0323 },
+ unicodeslot=0x1E92,
},
[0x1E93]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER Z WITH DOT BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x007A,
- ["specials"]={ "char", 0x007A, 0x0323 },
- ["uccode"]=0x1E92,
- ["unicodeslot"]=0x1E93, -- ẓ
+ category="ll",
+ description="LATIN SMALL LETTER Z WITH DOT BELOW",
+ direction="l",
+ linebreak="al",
+ shcode=0x007A,
+ specials={ "char", 0x007A, 0x0323 },
+ uccode=0x1E92,
+ unicodeslot=0x1E93,
},
[0x1E94]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER Z WITH LINE BELOW",
- ["lccode"]=0x1E95,
- ["linebreak"]="al",
- ["shcode"]=0x005A,
- ["specials"]={ "char", 0x005A, 0x0331 },
- ["unicodeslot"]=0x1E94, -- Ẕ
+ category="lu",
+ description="LATIN CAPITAL LETTER Z WITH LINE BELOW",
+ direction="l",
+ lccode=0x1E95,
+ linebreak="al",
+ shcode=0x005A,
+ specials={ "char", 0x005A, 0x0331 },
+ unicodeslot=0x1E94,
},
[0x1E95]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER Z WITH LINE BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x007A,
- ["specials"]={ "char", 0x007A, 0x0331 },
- ["uccode"]=0x1E94,
- ["unicodeslot"]=0x1E95, -- ẕ
+ category="ll",
+ description="LATIN SMALL LETTER Z WITH LINE BELOW",
+ direction="l",
+ linebreak="al",
+ shcode=0x007A,
+ specials={ "char", 0x007A, 0x0331 },
+ uccode=0x1E94,
+ unicodeslot=0x1E95,
},
[0x1E96]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER H WITH LINE BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x0068,
- ["specials"]={ "char", 0x0068, 0x0331 },
- ["unicodeslot"]=0x1E96, -- ẖ
+ category="ll",
+ description="LATIN SMALL LETTER H WITH LINE BELOW",
+ direction="l",
+ linebreak="al",
+ shcode=0x0068,
+ specials={ "char", 0x0068, 0x0331 },
+ unicodeslot=0x1E96,
},
[0x1E97]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER T WITH DIAERESIS",
- ["linebreak"]="al",
- ["shcode"]=0x0074,
- ["specials"]={ "char", 0x0074, 0x0308 },
- ["unicodeslot"]=0x1E97, -- ẗ
+ category="ll",
+ description="LATIN SMALL LETTER T WITH DIAERESIS",
+ direction="l",
+ linebreak="al",
+ shcode=0x0074,
+ specials={ "char", 0x0074, 0x0308 },
+ unicodeslot=0x1E97,
},
[0x1E98]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER W WITH RING ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0077,
- ["specials"]={ "char", 0x0077, 0x030A },
- ["unicodeslot"]=0x1E98, -- ẘ
+ category="ll",
+ description="LATIN SMALL LETTER W WITH RING ABOVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0077,
+ specials={ "char", 0x0077, 0x030A },
+ unicodeslot=0x1E98,
},
[0x1E99]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER Y WITH RING ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0079,
- ["specials"]={ "char", 0x0079, 0x030A },
- ["unicodeslot"]=0x1E99, -- ẙ
+ category="ll",
+ description="LATIN SMALL LETTER Y WITH RING ABOVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0079,
+ specials={ "char", 0x0079, 0x030A },
+ unicodeslot=0x1E99,
},
[0x1E9A]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER A WITH RIGHT HALF RING",
- ["linebreak"]="al",
- ["shcode"]=0x0061,
- ["specials"]={ "compat", 0x0061, 0x02BE },
- ["unicodeslot"]=0x1E9A, -- ẚ
+ category="ll",
+ description="LATIN SMALL LETTER A WITH RIGHT HALF RING",
+ direction="l",
+ linebreak="al",
+ shcode=0x0061,
+ specials={ "compat", 0x0061, 0x02BE },
+ unicodeslot=0x1E9A,
},
[0x1E9B]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER LONG S WITH DOT ABOVE",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x017F, 0x0307 },
- ["uccode"]=0x1E60,
- ["unicodeslot"]=0x1E9B, -- ẛ
+ category="ll",
+ description="LATIN SMALL LETTER LONG S WITH DOT ABOVE",
+ direction="l",
+ linebreak="al",
+ specials={ "char", 0x017F, 0x0307 },
+ uccode=0x1E60,
+ unicodeslot=0x1E9B,
},
[0x1EA0]={
- ["category"]="lu",
- ["contextname"]="Adotbelow",
- ["description"]="LATIN CAPITAL LETTER A WITH DOT BELOW",
- ["lccode"]=0x1EA1,
- ["linebreak"]="al",
- ["shcode"]=0x0041,
- ["specials"]={ "char", 0x0041, 0x0323 },
- ["unicodeslot"]=0x1EA0, -- Ạ
+ category="lu",
+ contextname="Adotbelow",
+ description="LATIN CAPITAL LETTER A WITH DOT BELOW",
+ direction="l",
+ lccode=0x1EA1,
+ linebreak="al",
+ shcode=0x0041,
+ specials={ "char", 0x0041, 0x0323 },
+ unicodeslot=0x1EA0,
},
[0x1EA1]={
- ["category"]="ll",
- ["contextname"]="adotbelow",
- ["description"]="LATIN SMALL LETTER A WITH DOT BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x0061,
- ["specials"]={ "char", 0x0061, 0x0323 },
- ["uccode"]=0x1EA0,
- ["unicodeslot"]=0x1EA1, -- ạ
+ category="ll",
+ contextname="adotbelow",
+ description="LATIN SMALL LETTER A WITH DOT BELOW",
+ direction="l",
+ linebreak="al",
+ shcode=0x0061,
+ specials={ "char", 0x0061, 0x0323 },
+ uccode=0x1EA0,
+ unicodeslot=0x1EA1,
},
[0x1EA2]={
- ["category"]="lu",
- ["contextname"]="Ahook",
- ["description"]="LATIN CAPITAL LETTER A WITH HOOK ABOVE",
- ["lccode"]=0x1EA3,
- ["linebreak"]="al",
- ["shcode"]=0x0041,
- ["specials"]={ "char", 0x0041, 0x0309 },
- ["unicodeslot"]=0x1EA2, -- Ả
+ category="lu",
+ contextname="Ahook",
+ description="LATIN CAPITAL LETTER A WITH HOOK ABOVE",
+ direction="l",
+ lccode=0x1EA3,
+ linebreak="al",
+ shcode=0x0041,
+ specials={ "char", 0x0041, 0x0309 },
+ unicodeslot=0x1EA2,
},
[0x1EA3]={
- ["category"]="ll",
- ["contextname"]="ahook",
- ["description"]="LATIN SMALL LETTER A WITH HOOK ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0061,
- ["specials"]={ "char", 0x0061, 0x0309 },
- ["uccode"]=0x1EA2,
- ["unicodeslot"]=0x1EA3, -- ả
+ category="ll",
+ contextname="ahook",
+ description="LATIN SMALL LETTER A WITH HOOK ABOVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0061,
+ specials={ "char", 0x0061, 0x0309 },
+ uccode=0x1EA2,
+ unicodeslot=0x1EA3,
},
[0x1EA4]={
- ["category"]="lu",
- ["contextname"]="Acircumflexacute",
- ["description"]="LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE",
- ["lccode"]=0x1EA5,
- ["linebreak"]="al",
- ["shcode"]=0x0041,
- ["specials"]={ "char", 0x00C2, 0x0301 },
- ["unicodeslot"]=0x1EA4, -- Ấ
+ category="lu",
+ contextname="Acircumflexacute",
+ description="LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE",
+ direction="l",
+ lccode=0x1EA5,
+ linebreak="al",
+ shcode=0x0041,
+ specials={ "char", 0x00C2, 0x0301 },
+ unicodeslot=0x1EA4,
},
[0x1EA5]={
- ["category"]="ll",
- ["contextname"]="acircumflexacute",
- ["description"]="LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE",
- ["linebreak"]="al",
- ["shcode"]=0x0061,
- ["specials"]={ "char", 0x00E2, 0x0301 },
- ["uccode"]=0x1EA4,
- ["unicodeslot"]=0x1EA5, -- ấ
+ category="ll",
+ contextname="acircumflexacute",
+ description="LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0061,
+ specials={ "char", 0x00E2, 0x0301 },
+ uccode=0x1EA4,
+ unicodeslot=0x1EA5,
},
[0x1EA6]={
- ["category"]="lu",
- ["contextname"]="Acircumflexgrave",
- ["description"]="LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE",
- ["lccode"]=0x1EA7,
- ["linebreak"]="al",
- ["shcode"]=0x0041,
- ["specials"]={ "char", 0x00C2, 0x0300 },
- ["unicodeslot"]=0x1EA6, -- Ầ
+ category="lu",
+ contextname="Acircumflexgrave",
+ description="LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE",
+ direction="l",
+ lccode=0x1EA7,
+ linebreak="al",
+ shcode=0x0041,
+ specials={ "char", 0x00C2, 0x0300 },
+ unicodeslot=0x1EA6,
},
[0x1EA7]={
- ["category"]="ll",
- ["contextname"]="acircumflexgrave",
- ["description"]="LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE",
- ["linebreak"]="al",
- ["shcode"]=0x0061,
- ["specials"]={ "char", 0x00E2, 0x0300 },
- ["uccode"]=0x1EA6,
- ["unicodeslot"]=0x1EA7, -- ầ
+ category="ll",
+ contextname="acircumflexgrave",
+ description="LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0061,
+ specials={ "char", 0x00E2, 0x0300 },
+ uccode=0x1EA6,
+ unicodeslot=0x1EA7,
},
[0x1EA8]={
- ["category"]="lu",
- ["contextname"]="Acircumflexhook",
- ["description"]="LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE",
- ["lccode"]=0x1EA9,
- ["linebreak"]="al",
- ["shcode"]=0x0041,
- ["specials"]={ "char", 0x00C2, 0x0309 },
- ["unicodeslot"]=0x1EA8, -- Ẩ
+ category="lu",
+ contextname="Acircumflexhook",
+ description="LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE",
+ direction="l",
+ lccode=0x1EA9,
+ linebreak="al",
+ shcode=0x0041,
+ specials={ "char", 0x00C2, 0x0309 },
+ unicodeslot=0x1EA8,
},
[0x1EA9]={
- ["category"]="ll",
- ["contextname"]="acircumflexhook",
- ["description"]="LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0061,
- ["specials"]={ "char", 0x00E2, 0x0309 },
- ["uccode"]=0x1EA8,
- ["unicodeslot"]=0x1EA9, -- ẩ
+ category="ll",
+ contextname="acircumflexhook",
+ description="LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0061,
+ specials={ "char", 0x00E2, 0x0309 },
+ uccode=0x1EA8,
+ unicodeslot=0x1EA9,
},
[0x1EAA]={
- ["category"]="lu",
- ["contextname"]="Acircumflextilde",
- ["description"]="LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE",
- ["lccode"]=0x1EAB,
- ["linebreak"]="al",
- ["shcode"]=0x0041,
- ["specials"]={ "char", 0x00C2, 0x0303 },
- ["unicodeslot"]=0x1EAA, -- Ẫ
+ category="lu",
+ contextname="Acircumflextilde",
+ description="LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE",
+ direction="l",
+ lccode=0x1EAB,
+ linebreak="al",
+ shcode=0x0041,
+ specials={ "char", 0x00C2, 0x0303 },
+ unicodeslot=0x1EAA,
},
[0x1EAB]={
- ["category"]="ll",
- ["contextname"]="acircumflextilde",
- ["description"]="LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE",
- ["linebreak"]="al",
- ["shcode"]=0x0061,
- ["specials"]={ "char", 0x00E2, 0x0303 },
- ["uccode"]=0x1EAA,
- ["unicodeslot"]=0x1EAB, -- ẫ
+ category="ll",
+ contextname="acircumflextilde",
+ description="LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0061,
+ specials={ "char", 0x00E2, 0x0303 },
+ uccode=0x1EAA,
+ unicodeslot=0x1EAB,
},
[0x1EAC]={
- ["category"]="lu",
- ["contextname"]="Acircumflexdotbelow",
- ["description"]="LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW",
- ["lccode"]=0x1EAD,
- ["linebreak"]="al",
- ["shcode"]=0x0041,
- ["specials"]={ "char", 0x1EA0, 0x0302 },
- ["unicodeslot"]=0x1EAC, -- Ậ
+ category="lu",
+ contextname="Acircumflexdotbelow",
+ description="LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW",
+ direction="l",
+ lccode=0x1EAD,
+ linebreak="al",
+ shcode=0x0041,
+ specials={ "char", 0x1EA0, 0x0302 },
+ unicodeslot=0x1EAC,
},
[0x1EAD]={
- ["category"]="ll",
- ["contextname"]="acircumflexdotbelow",
- ["description"]="LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x0061,
- ["specials"]={ "char", 0x1EA1, 0x0302 },
- ["uccode"]=0x1EAC,
- ["unicodeslot"]=0x1EAD, -- ậ
+ category="ll",
+ contextname="acircumflexdotbelow",
+ description="LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW",
+ direction="l",
+ linebreak="al",
+ shcode=0x0061,
+ specials={ "char", 0x1EA1, 0x0302 },
+ uccode=0x1EAC,
+ unicodeslot=0x1EAD,
},
[0x1EAE]={
- ["category"]="lu",
- ["contextname"]="Abreveacute",
- ["description"]="LATIN CAPITAL LETTER A WITH BREVE AND ACUTE",
- ["lccode"]=0x1EAF,
- ["linebreak"]="al",
- ["shcode"]=0x0041,
- ["specials"]={ "char", 0x0102, 0x0301 },
- ["unicodeslot"]=0x1EAE, -- Ắ
+ category="lu",
+ contextname="Abreveacute",
+ description="LATIN CAPITAL LETTER A WITH BREVE AND ACUTE",
+ direction="l",
+ lccode=0x1EAF,
+ linebreak="al",
+ shcode=0x0041,
+ specials={ "char", 0x0102, 0x0301 },
+ unicodeslot=0x1EAE,
},
[0x1EAF]={
- ["category"]="ll",
- ["contextname"]="abreveacute",
- ["description"]="LATIN SMALL LETTER A WITH BREVE AND ACUTE",
- ["linebreak"]="al",
- ["shcode"]=0x0061,
- ["specials"]={ "char", 0x0103, 0x0301 },
- ["uccode"]=0x1EAE,
- ["unicodeslot"]=0x1EAF, -- ắ
+ category="ll",
+ contextname="abreveacute",
+ description="LATIN SMALL LETTER A WITH BREVE AND ACUTE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0061,
+ specials={ "char", 0x0103, 0x0301 },
+ uccode=0x1EAE,
+ unicodeslot=0x1EAF,
},
[0x1EB0]={
- ["category"]="lu",
- ["contextname"]="Abrevegrave",
- ["description"]="LATIN CAPITAL LETTER A WITH BREVE AND GRAVE",
- ["lccode"]=0x1EB1,
- ["linebreak"]="al",
- ["shcode"]=0x0041,
- ["specials"]={ "char", 0x0102, 0x0300 },
- ["unicodeslot"]=0x1EB0, -- Ằ
+ category="lu",
+ contextname="Abrevegrave",
+ description="LATIN CAPITAL LETTER A WITH BREVE AND GRAVE",
+ direction="l",
+ lccode=0x1EB1,
+ linebreak="al",
+ shcode=0x0041,
+ specials={ "char", 0x0102, 0x0300 },
+ unicodeslot=0x1EB0,
},
[0x1EB1]={
- ["category"]="ll",
- ["contextname"]="abrevegrave",
- ["description"]="LATIN SMALL LETTER A WITH BREVE AND GRAVE",
- ["linebreak"]="al",
- ["shcode"]=0x0061,
- ["specials"]={ "char", 0x0103, 0x0300 },
- ["uccode"]=0x1EB0,
- ["unicodeslot"]=0x1EB1, -- ằ
+ category="ll",
+ contextname="abrevegrave",
+ description="LATIN SMALL LETTER A WITH BREVE AND GRAVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0061,
+ specials={ "char", 0x0103, 0x0300 },
+ uccode=0x1EB0,
+ unicodeslot=0x1EB1,
},
[0x1EB2]={
- ["category"]="lu",
- ["contextname"]="Abrevehook",
- ["description"]="LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE",
- ["lccode"]=0x1EB3,
- ["linebreak"]="al",
- ["shcode"]=0x0041,
- ["specials"]={ "char", 0x0102, 0x0309 },
- ["unicodeslot"]=0x1EB2, -- Ẳ
+ category="lu",
+ contextname="Abrevehook",
+ description="LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE",
+ direction="l",
+ lccode=0x1EB3,
+ linebreak="al",
+ shcode=0x0041,
+ specials={ "char", 0x0102, 0x0309 },
+ unicodeslot=0x1EB2,
},
[0x1EB3]={
- ["category"]="ll",
- ["contextname"]="abrevehook",
- ["description"]="LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0061,
- ["specials"]={ "char", 0x0103, 0x0309 },
- ["uccode"]=0x1EB2,
- ["unicodeslot"]=0x1EB3, -- ẳ
+ category="ll",
+ contextname="abrevehook",
+ description="LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0061,
+ specials={ "char", 0x0103, 0x0309 },
+ uccode=0x1EB2,
+ unicodeslot=0x1EB3,
},
[0x1EB4]={
- ["category"]="lu",
- ["contextname"]="Abrevetilde",
- ["description"]="LATIN CAPITAL LETTER A WITH BREVE AND TILDE",
- ["lccode"]=0x1EB5,
- ["linebreak"]="al",
- ["shcode"]=0x0041,
- ["specials"]={ "char", 0x0102, 0x0303 },
- ["unicodeslot"]=0x1EB4, -- Ẵ
+ category="lu",
+ contextname="Abrevetilde",
+ description="LATIN CAPITAL LETTER A WITH BREVE AND TILDE",
+ direction="l",
+ lccode=0x1EB5,
+ linebreak="al",
+ shcode=0x0041,
+ specials={ "char", 0x0102, 0x0303 },
+ unicodeslot=0x1EB4,
},
[0x1EB5]={
- ["category"]="ll",
- ["contextname"]="abrevetilde",
- ["description"]="LATIN SMALL LETTER A WITH BREVE AND TILDE",
- ["linebreak"]="al",
- ["shcode"]=0x0061,
- ["specials"]={ "char", 0x0103, 0x0303 },
- ["uccode"]=0x1EB4,
- ["unicodeslot"]=0x1EB5, -- ẵ
+ category="ll",
+ contextname="abrevetilde",
+ description="LATIN SMALL LETTER A WITH BREVE AND TILDE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0061,
+ specials={ "char", 0x0103, 0x0303 },
+ uccode=0x1EB4,
+ unicodeslot=0x1EB5,
},
[0x1EB6]={
- ["category"]="lu",
- ["contextname"]="Abrevedotbelow",
- ["description"]="LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW",
- ["lccode"]=0x1EB7,
- ["linebreak"]="al",
- ["shcode"]=0x0041,
- ["specials"]={ "char", 0x1EA0, 0x0306 },
- ["unicodeslot"]=0x1EB6, -- Ặ
+ category="lu",
+ contextname="Abrevedotbelow",
+ description="LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW",
+ direction="l",
+ lccode=0x1EB7,
+ linebreak="al",
+ shcode=0x0041,
+ specials={ "char", 0x1EA0, 0x0306 },
+ unicodeslot=0x1EB6,
},
[0x1EB7]={
- ["category"]="ll",
- ["contextname"]="abrevedotbelow",
- ["description"]="LATIN SMALL LETTER A WITH BREVE AND DOT BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x0061,
- ["specials"]={ "char", 0x1EA1, 0x0306 },
- ["uccode"]=0x1EB6,
- ["unicodeslot"]=0x1EB7, -- ặ
+ category="ll",
+ contextname="abrevedotbelow",
+ description="LATIN SMALL LETTER A WITH BREVE AND DOT BELOW",
+ direction="l",
+ linebreak="al",
+ shcode=0x0061,
+ specials={ "char", 0x1EA1, 0x0306 },
+ uccode=0x1EB6,
+ unicodeslot=0x1EB7,
},
[0x1EB8]={
- ["category"]="lu",
- ["contextname"]="Edotbelow",
- ["description"]="LATIN CAPITAL LETTER E WITH DOT BELOW",
- ["lccode"]=0x1EB9,
- ["linebreak"]="al",
- ["shcode"]=0x0045,
- ["specials"]={ "char", 0x0045, 0x0323 },
- ["unicodeslot"]=0x1EB8, -- Ẹ
+ category="lu",
+ contextname="Edotbelow",
+ description="LATIN CAPITAL LETTER E WITH DOT BELOW",
+ direction="l",
+ lccode=0x1EB9,
+ linebreak="al",
+ shcode=0x0045,
+ specials={ "char", 0x0045, 0x0323 },
+ unicodeslot=0x1EB8,
},
[0x1EB9]={
- ["category"]="ll",
- ["contextname"]="edotbelow",
- ["description"]="LATIN SMALL LETTER E WITH DOT BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x0065,
- ["specials"]={ "char", 0x0065, 0x0323 },
- ["uccode"]=0x1EB8,
- ["unicodeslot"]=0x1EB9, -- ẹ
+ category="ll",
+ contextname="edotbelow",
+ description="LATIN SMALL LETTER E WITH DOT BELOW",
+ direction="l",
+ linebreak="al",
+ shcode=0x0065,
+ specials={ "char", 0x0065, 0x0323 },
+ uccode=0x1EB8,
+ unicodeslot=0x1EB9,
},
[0x1EBA]={
- ["category"]="lu",
- ["contextname"]="Ehook",
- ["description"]="LATIN CAPITAL LETTER E WITH HOOK ABOVE",
- ["lccode"]=0x1EBB,
- ["linebreak"]="al",
- ["shcode"]=0x0045,
- ["specials"]={ "char", 0x0045, 0x0309 },
- ["unicodeslot"]=0x1EBA, -- Ẻ
+ category="lu",
+ contextname="Ehook",
+ description="LATIN CAPITAL LETTER E WITH HOOK ABOVE",
+ direction="l",
+ lccode=0x1EBB,
+ linebreak="al",
+ shcode=0x0045,
+ specials={ "char", 0x0045, 0x0309 },
+ unicodeslot=0x1EBA,
},
[0x1EBB]={
- ["category"]="ll",
- ["contextname"]="ehook",
- ["description"]="LATIN SMALL LETTER E WITH HOOK ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0065,
- ["specials"]={ "char", 0x0065, 0x0309 },
- ["uccode"]=0x1EBA,
- ["unicodeslot"]=0x1EBB, -- ẻ
+ category="ll",
+ contextname="ehook",
+ description="LATIN SMALL LETTER E WITH HOOK ABOVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0065,
+ specials={ "char", 0x0065, 0x0309 },
+ uccode=0x1EBA,
+ unicodeslot=0x1EBB,
},
[0x1EBC]={
- ["category"]="lu",
- ["contextname"]="Etilde",
- ["description"]="LATIN CAPITAL LETTER E WITH TILDE",
- ["lccode"]=0x1EBD,
- ["linebreak"]="al",
- ["shcode"]=0x0045,
- ["specials"]={ "char", 0x0045, 0x0303 },
- ["unicodeslot"]=0x1EBC, -- Ẽ
+ category="lu",
+ contextname="Etilde",
+ description="LATIN CAPITAL LETTER E WITH TILDE",
+ direction="l",
+ lccode=0x1EBD,
+ linebreak="al",
+ shcode=0x0045,
+ specials={ "char", 0x0045, 0x0303 },
+ unicodeslot=0x1EBC,
},
[0x1EBD]={
- ["category"]="ll",
- ["contextname"]="etilde",
- ["description"]="LATIN SMALL LETTER E WITH TILDE",
- ["linebreak"]="al",
- ["shcode"]=0x0065,
- ["specials"]={ "char", 0x0065, 0x0303 },
- ["uccode"]=0x1EBC,
- ["unicodeslot"]=0x1EBD, -- ẽ
+ category="ll",
+ contextname="etilde",
+ description="LATIN SMALL LETTER E WITH TILDE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0065,
+ specials={ "char", 0x0065, 0x0303 },
+ uccode=0x1EBC,
+ unicodeslot=0x1EBD,
},
[0x1EBE]={
- ["category"]="lu",
- ["contextname"]="Ecircumflexacute",
- ["description"]="LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE",
- ["lccode"]=0x1EBF,
- ["linebreak"]="al",
- ["shcode"]=0x0045,
- ["specials"]={ "char", 0x00CA, 0x0301 },
- ["unicodeslot"]=0x1EBE, -- Ế
+ category="lu",
+ contextname="Ecircumflexacute",
+ description="LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE",
+ direction="l",
+ lccode=0x1EBF,
+ linebreak="al",
+ shcode=0x0045,
+ specials={ "char", 0x00CA, 0x0301 },
+ unicodeslot=0x1EBE,
},
[0x1EBF]={
- ["category"]="ll",
- ["contextname"]="ecircumflexacute",
- ["description"]="LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE",
- ["linebreak"]="al",
- ["shcode"]=0x0065,
- ["specials"]={ "char", 0x00EA, 0x0301 },
- ["uccode"]=0x1EBE,
- ["unicodeslot"]=0x1EBF, -- ế
+ category="ll",
+ contextname="ecircumflexacute",
+ description="LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0065,
+ specials={ "char", 0x00EA, 0x0301 },
+ uccode=0x1EBE,
+ unicodeslot=0x1EBF,
},
[0x1EC0]={
- ["category"]="lu",
- ["contextname"]="Ecircumflexgrave",
- ["description"]="LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE",
- ["lccode"]=0x1EC1,
- ["linebreak"]="al",
- ["shcode"]=0x0045,
- ["specials"]={ "char", 0x00CA, 0x0300 },
- ["unicodeslot"]=0x1EC0, -- Ề
+ category="lu",
+ contextname="Ecircumflexgrave",
+ description="LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE",
+ direction="l",
+ lccode=0x1EC1,
+ linebreak="al",
+ shcode=0x0045,
+ specials={ "char", 0x00CA, 0x0300 },
+ unicodeslot=0x1EC0,
},
[0x1EC1]={
- ["category"]="ll",
- ["contextname"]="ecircumflexgrave",
- ["description"]="LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE",
- ["linebreak"]="al",
- ["shcode"]=0x0065,
- ["specials"]={ "char", 0x00EA, 0x0300 },
- ["uccode"]=0x1EC0,
- ["unicodeslot"]=0x1EC1, -- ề
+ category="ll",
+ contextname="ecircumflexgrave",
+ description="LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0065,
+ specials={ "char", 0x00EA, 0x0300 },
+ uccode=0x1EC0,
+ unicodeslot=0x1EC1,
},
[0x1EC2]={
- ["category"]="lu",
- ["contextname"]="Ecircumflexhook",
- ["description"]="LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE",
- ["lccode"]=0x1EC3,
- ["linebreak"]="al",
- ["shcode"]=0x0045,
- ["specials"]={ "char", 0x00CA, 0x0309 },
- ["unicodeslot"]=0x1EC2, -- Ể
+ category="lu",
+ contextname="Ecircumflexhook",
+ description="LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE",
+ direction="l",
+ lccode=0x1EC3,
+ linebreak="al",
+ shcode=0x0045,
+ specials={ "char", 0x00CA, 0x0309 },
+ unicodeslot=0x1EC2,
},
[0x1EC3]={
- ["category"]="ll",
- ["contextname"]="ecircumflexhook",
- ["description"]="LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0065,
- ["specials"]={ "char", 0x00EA, 0x0309 },
- ["uccode"]=0x1EC2,
- ["unicodeslot"]=0x1EC3, -- ể
+ category="ll",
+ contextname="ecircumflexhook",
+ description="LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0065,
+ specials={ "char", 0x00EA, 0x0309 },
+ uccode=0x1EC2,
+ unicodeslot=0x1EC3,
},
[0x1EC4]={
- ["category"]="lu",
- ["contextname"]="Ecircumflextilde",
- ["description"]="LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE",
- ["lccode"]=0x1EC5,
- ["linebreak"]="al",
- ["shcode"]=0x0045,
- ["specials"]={ "char", 0x00CA, 0x0303 },
- ["unicodeslot"]=0x1EC4, -- Ễ
+ category="lu",
+ contextname="Ecircumflextilde",
+ description="LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE",
+ direction="l",
+ lccode=0x1EC5,
+ linebreak="al",
+ shcode=0x0045,
+ specials={ "char", 0x00CA, 0x0303 },
+ unicodeslot=0x1EC4,
},
[0x1EC5]={
- ["category"]="ll",
- ["contextname"]="ecircumflextilde",
- ["description"]="LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE",
- ["linebreak"]="al",
- ["shcode"]=0x0065,
- ["specials"]={ "char", 0x00EA, 0x0303 },
- ["uccode"]=0x1EC4,
- ["unicodeslot"]=0x1EC5, -- ễ
+ category="ll",
+ contextname="ecircumflextilde",
+ description="LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0065,
+ specials={ "char", 0x00EA, 0x0303 },
+ uccode=0x1EC4,
+ unicodeslot=0x1EC5,
},
[0x1EC6]={
- ["category"]="lu",
- ["contextname"]="Ecircumflexdotbelow",
- ["description"]="LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW",
- ["lccode"]=0x1EC7,
- ["linebreak"]="al",
- ["shcode"]=0x0045,
- ["specials"]={ "char", 0x1EB8, 0x0302 },
- ["unicodeslot"]=0x1EC6, -- Ệ
+ category="lu",
+ contextname="Ecircumflexdotbelow",
+ description="LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW",
+ direction="l",
+ lccode=0x1EC7,
+ linebreak="al",
+ shcode=0x0045,
+ specials={ "char", 0x1EB8, 0x0302 },
+ unicodeslot=0x1EC6,
},
[0x1EC7]={
- ["category"]="ll",
- ["contextname"]="ecircumflexdotbelow",
- ["description"]="LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x0065,
- ["specials"]={ "char", 0x1EB9, 0x0302 },
- ["uccode"]=0x1EC6,
- ["unicodeslot"]=0x1EC7, -- ệ
+ category="ll",
+ contextname="ecircumflexdotbelow",
+ description="LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW",
+ direction="l",
+ linebreak="al",
+ shcode=0x0065,
+ specials={ "char", 0x1EB9, 0x0302 },
+ uccode=0x1EC6,
+ unicodeslot=0x1EC7,
},
[0x1EC8]={
- ["category"]="lu",
- ["contextname"]="Ihook",
- ["description"]="LATIN CAPITAL LETTER I WITH HOOK ABOVE",
- ["lccode"]=0x1EC9,
- ["linebreak"]="al",
- ["shcode"]=0x0049,
- ["specials"]={ "char", 0x0049, 0x0309 },
- ["unicodeslot"]=0x1EC8, -- Ỉ
+ category="lu",
+ contextname="Ihook",
+ description="LATIN CAPITAL LETTER I WITH HOOK ABOVE",
+ direction="l",
+ lccode=0x1EC9,
+ linebreak="al",
+ shcode=0x0049,
+ specials={ "char", 0x0049, 0x0309 },
+ unicodeslot=0x1EC8,
},
[0x1EC9]={
- ["category"]="ll",
- ["contextname"]="ihook",
- ["description"]="LATIN SMALL LETTER I WITH HOOK ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0069,
- ["specials"]={ "char", 0x0069, 0x0309 },
- ["uccode"]=0x1EC8,
- ["unicodeslot"]=0x1EC9, -- ỉ
+ category="ll",
+ contextname="ihook",
+ description="LATIN SMALL LETTER I WITH HOOK ABOVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0069,
+ specials={ "char", 0x0069, 0x0309 },
+ uccode=0x1EC8,
+ unicodeslot=0x1EC9,
},
[0x1ECA]={
- ["category"]="lu",
- ["contextname"]="Idotbelow",
- ["description"]="LATIN CAPITAL LETTER I WITH DOT BELOW",
- ["lccode"]=0x1ECB,
- ["linebreak"]="al",
- ["shcode"]=0x0049,
- ["specials"]={ "char", 0x0049, 0x0323 },
- ["unicodeslot"]=0x1ECA, -- Ị
+ category="lu",
+ contextname="Idotbelow",
+ description="LATIN CAPITAL LETTER I WITH DOT BELOW",
+ direction="l",
+ lccode=0x1ECB,
+ linebreak="al",
+ shcode=0x0049,
+ specials={ "char", 0x0049, 0x0323 },
+ unicodeslot=0x1ECA,
},
[0x1ECB]={
- ["category"]="ll",
- ["contextname"]="idotbelow",
- ["description"]="LATIN SMALL LETTER I WITH DOT BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x0069,
- ["specials"]={ "char", 0x0069, 0x0323 },
- ["uccode"]=0x1ECA,
- ["unicodeslot"]=0x1ECB, -- ị
+ category="ll",
+ contextname="idotbelow",
+ description="LATIN SMALL LETTER I WITH DOT BELOW",
+ direction="l",
+ linebreak="al",
+ shcode=0x0069,
+ specials={ "char", 0x0069, 0x0323 },
+ uccode=0x1ECA,
+ unicodeslot=0x1ECB,
},
[0x1ECC]={
- ["category"]="lu",
- ["contextname"]="Odotbelow",
- ["description"]="LATIN CAPITAL LETTER O WITH DOT BELOW",
- ["lccode"]=0x1ECD,
- ["linebreak"]="al",
- ["shcode"]=0x004F,
- ["specials"]={ "char", 0x004F, 0x0323 },
- ["unicodeslot"]=0x1ECC, -- Ọ
+ category="lu",
+ contextname="Odotbelow",
+ description="LATIN CAPITAL LETTER O WITH DOT BELOW",
+ direction="l",
+ lccode=0x1ECD,
+ linebreak="al",
+ shcode=0x004F,
+ specials={ "char", 0x004F, 0x0323 },
+ unicodeslot=0x1ECC,
},
[0x1ECD]={
- ["category"]="ll",
- ["contextname"]="odotbelow",
- ["description"]="LATIN SMALL LETTER O WITH DOT BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x006F,
- ["specials"]={ "char", 0x006F, 0x0323 },
- ["uccode"]=0x1ECC,
- ["unicodeslot"]=0x1ECD, -- ọ
+ category="ll",
+ contextname="odotbelow",
+ description="LATIN SMALL LETTER O WITH DOT BELOW",
+ direction="l",
+ linebreak="al",
+ shcode=0x006F,
+ specials={ "char", 0x006F, 0x0323 },
+ uccode=0x1ECC,
+ unicodeslot=0x1ECD,
},
[0x1ECE]={
- ["category"]="lu",
- ["contextname"]="Ohook",
- ["description"]="LATIN CAPITAL LETTER O WITH HOOK ABOVE",
- ["lccode"]=0x1ECF,
- ["linebreak"]="al",
- ["shcode"]=0x004F,
- ["specials"]={ "char", 0x004F, 0x0309 },
- ["unicodeslot"]=0x1ECE, -- Ỏ
+ category="lu",
+ contextname="Ohook",
+ description="LATIN CAPITAL LETTER O WITH HOOK ABOVE",
+ direction="l",
+ lccode=0x1ECF,
+ linebreak="al",
+ shcode=0x004F,
+ specials={ "char", 0x004F, 0x0309 },
+ unicodeslot=0x1ECE,
},
[0x1ECF]={
- ["category"]="ll",
- ["contextname"]="ohook",
- ["description"]="LATIN SMALL LETTER O WITH HOOK ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x006F,
- ["specials"]={ "char", 0x006F, 0x0309 },
- ["uccode"]=0x1ECE,
- ["unicodeslot"]=0x1ECF, -- ỏ
+ category="ll",
+ contextname="ohook",
+ description="LATIN SMALL LETTER O WITH HOOK ABOVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x006F,
+ specials={ "char", 0x006F, 0x0309 },
+ uccode=0x1ECE,
+ unicodeslot=0x1ECF,
},
[0x1ED0]={
- ["category"]="lu",
- ["contextname"]="Ocircumflexacute",
- ["description"]="LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE",
- ["lccode"]=0x1ED1,
- ["linebreak"]="al",
- ["shcode"]=0x004F,
- ["specials"]={ "char", 0x00D4, 0x0301 },
- ["unicodeslot"]=0x1ED0, -- Ố
+ category="lu",
+ contextname="Ocircumflexacute",
+ description="LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE",
+ direction="l",
+ lccode=0x1ED1,
+ linebreak="al",
+ shcode=0x004F,
+ specials={ "char", 0x00D4, 0x0301 },
+ unicodeslot=0x1ED0,
},
[0x1ED1]={
- ["category"]="ll",
- ["contextname"]="ocircumflexacute",
- ["description"]="LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE",
- ["linebreak"]="al",
- ["shcode"]=0x006F,
- ["specials"]={ "char", 0x00F4, 0x0301 },
- ["uccode"]=0x1ED0,
- ["unicodeslot"]=0x1ED1, -- ố
+ category="ll",
+ contextname="ocircumflexacute",
+ description="LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE",
+ direction="l",
+ linebreak="al",
+ shcode=0x006F,
+ specials={ "char", 0x00F4, 0x0301 },
+ uccode=0x1ED0,
+ unicodeslot=0x1ED1,
},
[0x1ED2]={
- ["category"]="lu",
- ["contextname"]="Ocircumflexgrave",
- ["description"]="LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE",
- ["lccode"]=0x1ED3,
- ["linebreak"]="al",
- ["shcode"]=0x004F,
- ["specials"]={ "char", 0x00D4, 0x0300 },
- ["unicodeslot"]=0x1ED2, -- Ồ
+ category="lu",
+ contextname="Ocircumflexgrave",
+ description="LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE",
+ direction="l",
+ lccode=0x1ED3,
+ linebreak="al",
+ shcode=0x004F,
+ specials={ "char", 0x00D4, 0x0300 },
+ unicodeslot=0x1ED2,
},
[0x1ED3]={
- ["category"]="ll",
- ["contextname"]="ocircumflexgrave",
- ["description"]="LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE",
- ["linebreak"]="al",
- ["shcode"]=0x006F,
- ["specials"]={ "char", 0x00F4, 0x0300 },
- ["uccode"]=0x1ED2,
- ["unicodeslot"]=0x1ED3, -- ồ
+ category="ll",
+ contextname="ocircumflexgrave",
+ description="LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x006F,
+ specials={ "char", 0x00F4, 0x0300 },
+ uccode=0x1ED2,
+ unicodeslot=0x1ED3,
},
[0x1ED4]={
- ["category"]="lu",
- ["contextname"]="Ocircumflexhook",
- ["description"]="LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE",
- ["lccode"]=0x1ED5,
- ["linebreak"]="al",
- ["shcode"]=0x004F,
- ["specials"]={ "char", 0x00D4, 0x0309 },
- ["unicodeslot"]=0x1ED4, -- Ổ
+ category="lu",
+ contextname="Ocircumflexhook",
+ description="LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE",
+ direction="l",
+ lccode=0x1ED5,
+ linebreak="al",
+ shcode=0x004F,
+ specials={ "char", 0x00D4, 0x0309 },
+ unicodeslot=0x1ED4,
},
[0x1ED5]={
- ["category"]="ll",
- ["contextname"]="ocircumflexhook",
- ["description"]="LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x006F,
- ["specials"]={ "char", 0x00F4, 0x0309 },
- ["uccode"]=0x1ED4,
- ["unicodeslot"]=0x1ED5, -- ổ
+ category="ll",
+ contextname="ocircumflexhook",
+ description="LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x006F,
+ specials={ "char", 0x00F4, 0x0309 },
+ uccode=0x1ED4,
+ unicodeslot=0x1ED5,
},
[0x1ED6]={
- ["category"]="lu",
- ["contextname"]="Ocircumflextilde",
- ["description"]="LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE",
- ["lccode"]=0x1ED7,
- ["linebreak"]="al",
- ["shcode"]=0x004F,
- ["specials"]={ "char", 0x00D4, 0x0303 },
- ["unicodeslot"]=0x1ED6, -- Ỗ
+ category="lu",
+ contextname="Ocircumflextilde",
+ description="LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE",
+ direction="l",
+ lccode=0x1ED7,
+ linebreak="al",
+ shcode=0x004F,
+ specials={ "char", 0x00D4, 0x0303 },
+ unicodeslot=0x1ED6,
},
[0x1ED7]={
- ["category"]="ll",
- ["contextname"]="ocircumflextilde",
- ["description"]="LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE",
- ["linebreak"]="al",
- ["shcode"]=0x006F,
- ["specials"]={ "char", 0x00F4, 0x0303 },
- ["uccode"]=0x1ED6,
- ["unicodeslot"]=0x1ED7, -- ỗ
+ category="ll",
+ contextname="ocircumflextilde",
+ description="LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE",
+ direction="l",
+ linebreak="al",
+ shcode=0x006F,
+ specials={ "char", 0x00F4, 0x0303 },
+ uccode=0x1ED6,
+ unicodeslot=0x1ED7,
},
[0x1ED8]={
- ["category"]="lu",
- ["contextname"]="Ocircumflexdotbelow",
- ["description"]="LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW",
- ["lccode"]=0x1ED9,
- ["linebreak"]="al",
- ["shcode"]=0x004F,
- ["specials"]={ "char", 0x1ECC, 0x0302 },
- ["unicodeslot"]=0x1ED8, -- Ộ
+ category="lu",
+ contextname="Ocircumflexdotbelow",
+ description="LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW",
+ direction="l",
+ lccode=0x1ED9,
+ linebreak="al",
+ shcode=0x004F,
+ specials={ "char", 0x1ECC, 0x0302 },
+ unicodeslot=0x1ED8,
},
[0x1ED9]={
- ["category"]="ll",
- ["contextname"]="ocircumflexdotbelow",
- ["description"]="LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x006F,
- ["specials"]={ "char", 0x1ECD, 0x0302 },
- ["uccode"]=0x1ED8,
- ["unicodeslot"]=0x1ED9, -- ộ
+ category="ll",
+ contextname="ocircumflexdotbelow",
+ description="LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW",
+ direction="l",
+ linebreak="al",
+ shcode=0x006F,
+ specials={ "char", 0x1ECD, 0x0302 },
+ uccode=0x1ED8,
+ unicodeslot=0x1ED9,
},
[0x1EDA]={
- ["category"]="lu",
- ["contextname"]="Ohornacute",
- ["description"]="LATIN CAPITAL LETTER O WITH HORN AND ACUTE",
- ["lccode"]=0x1EDB,
- ["linebreak"]="al",
- ["shcode"]=0x004F,
- ["specials"]={ "char", 0x01A0, 0x0301 },
- ["unicodeslot"]=0x1EDA, -- Ớ
+ category="lu",
+ contextname="Ohornacute",
+ description="LATIN CAPITAL LETTER O WITH HORN AND ACUTE",
+ direction="l",
+ lccode=0x1EDB,
+ linebreak="al",
+ shcode=0x004F,
+ specials={ "char", 0x01A0, 0x0301 },
+ unicodeslot=0x1EDA,
},
[0x1EDB]={
- ["category"]="ll",
- ["contextname"]="ohornacute",
- ["description"]="LATIN SMALL LETTER O WITH HORN AND ACUTE",
- ["linebreak"]="al",
- ["shcode"]=0x006F,
- ["specials"]={ "char", 0x01A1, 0x0301 },
- ["uccode"]=0x1EDA,
- ["unicodeslot"]=0x1EDB, -- ớ
+ category="ll",
+ contextname="ohornacute",
+ description="LATIN SMALL LETTER O WITH HORN AND ACUTE",
+ direction="l",
+ linebreak="al",
+ shcode=0x006F,
+ specials={ "char", 0x01A1, 0x0301 },
+ uccode=0x1EDA,
+ unicodeslot=0x1EDB,
},
[0x1EDC]={
- ["category"]="lu",
- ["contextname"]="Ohorngrave",
- ["description"]="LATIN CAPITAL LETTER O WITH HORN AND GRAVE",
- ["lccode"]=0x1EDD,
- ["linebreak"]="al",
- ["shcode"]=0x004F,
- ["specials"]={ "char", 0x01A0, 0x0300 },
- ["unicodeslot"]=0x1EDC, -- Ờ
+ category="lu",
+ contextname="Ohorngrave",
+ description="LATIN CAPITAL LETTER O WITH HORN AND GRAVE",
+ direction="l",
+ lccode=0x1EDD,
+ linebreak="al",
+ shcode=0x004F,
+ specials={ "char", 0x01A0, 0x0300 },
+ unicodeslot=0x1EDC,
},
[0x1EDD]={
- ["category"]="ll",
- ["contextname"]="ohorngrave",
- ["description"]="LATIN SMALL LETTER O WITH HORN AND GRAVE",
- ["linebreak"]="al",
- ["shcode"]=0x006F,
- ["specials"]={ "char", 0x01A1, 0x0300 },
- ["uccode"]=0x1EDC,
- ["unicodeslot"]=0x1EDD, -- ờ
+ category="ll",
+ contextname="ohorngrave",
+ description="LATIN SMALL LETTER O WITH HORN AND GRAVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x006F,
+ specials={ "char", 0x01A1, 0x0300 },
+ uccode=0x1EDC,
+ unicodeslot=0x1EDD,
},
[0x1EDE]={
- ["category"]="lu",
- ["contextname"]="Ohornhook",
- ["description"]="LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE",
- ["lccode"]=0x1EDF,
- ["linebreak"]="al",
- ["shcode"]=0x004F,
- ["specials"]={ "char", 0x01A0, 0x0309 },
- ["unicodeslot"]=0x1EDE, -- Ở
+ category="lu",
+ contextname="Ohornhook",
+ description="LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE",
+ direction="l",
+ lccode=0x1EDF,
+ linebreak="al",
+ shcode=0x004F,
+ specials={ "char", 0x01A0, 0x0309 },
+ unicodeslot=0x1EDE,
},
[0x1EDF]={
- ["category"]="ll",
- ["contextname"]="ohornhook",
- ["description"]="LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x006F,
- ["specials"]={ "char", 0x01A1, 0x0309 },
- ["uccode"]=0x1EDE,
- ["unicodeslot"]=0x1EDF, -- ở
+ category="ll",
+ contextname="ohornhook",
+ description="LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x006F,
+ specials={ "char", 0x01A1, 0x0309 },
+ uccode=0x1EDE,
+ unicodeslot=0x1EDF,
},
[0x1EE0]={
- ["category"]="lu",
- ["contextname"]="Ohorntilde",
- ["description"]="LATIN CAPITAL LETTER O WITH HORN AND TILDE",
- ["lccode"]=0x1EE1,
- ["linebreak"]="al",
- ["shcode"]=0x004F,
- ["specials"]={ "char", 0x01A0, 0x0303 },
- ["unicodeslot"]=0x1EE0, -- Ỡ
+ category="lu",
+ contextname="Ohorntilde",
+ description="LATIN CAPITAL LETTER O WITH HORN AND TILDE",
+ direction="l",
+ lccode=0x1EE1,
+ linebreak="al",
+ shcode=0x004F,
+ specials={ "char", 0x01A0, 0x0303 },
+ unicodeslot=0x1EE0,
},
[0x1EE1]={
- ["category"]="ll",
- ["contextname"]="ohorntilde",
- ["description"]="LATIN SMALL LETTER O WITH HORN AND TILDE",
- ["linebreak"]="al",
- ["shcode"]=0x006F,
- ["specials"]={ "char", 0x01A1, 0x0303 },
- ["uccode"]=0x1EE0,
- ["unicodeslot"]=0x1EE1, -- ỡ
+ category="ll",
+ contextname="ohorntilde",
+ description="LATIN SMALL LETTER O WITH HORN AND TILDE",
+ direction="l",
+ linebreak="al",
+ shcode=0x006F,
+ specials={ "char", 0x01A1, 0x0303 },
+ uccode=0x1EE0,
+ unicodeslot=0x1EE1,
},
[0x1EE2]={
- ["category"]="lu",
- ["contextname"]="Ohorndotbelow",
- ["description"]="LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW",
- ["lccode"]=0x1EE3,
- ["linebreak"]="al",
- ["shcode"]=0x004F,
- ["specials"]={ "char", 0x01A0, 0x0323 },
- ["unicodeslot"]=0x1EE2, -- Ợ
+ category="lu",
+ contextname="Ohorndotbelow",
+ description="LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW",
+ direction="l",
+ lccode=0x1EE3,
+ linebreak="al",
+ shcode=0x004F,
+ specials={ "char", 0x01A0, 0x0323 },
+ unicodeslot=0x1EE2,
},
[0x1EE3]={
- ["category"]="ll",
- ["contextname"]="ohorndotbelow",
- ["description"]="LATIN SMALL LETTER O WITH HORN AND DOT BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x006F,
- ["specials"]={ "char", 0x01A1, 0x0323 },
- ["uccode"]=0x1EE2,
- ["unicodeslot"]=0x1EE3, -- ợ
+ category="ll",
+ contextname="ohorndotbelow",
+ description="LATIN SMALL LETTER O WITH HORN AND DOT BELOW",
+ direction="l",
+ linebreak="al",
+ shcode=0x006F,
+ specials={ "char", 0x01A1, 0x0323 },
+ uccode=0x1EE2,
+ unicodeslot=0x1EE3,
},
[0x1EE4]={
- ["category"]="lu",
- ["contextname"]="Udotbelow",
- ["description"]="LATIN CAPITAL LETTER U WITH DOT BELOW",
- ["lccode"]=0x1EE5,
- ["linebreak"]="al",
- ["shcode"]=0x0055,
- ["specials"]={ "char", 0x0055, 0x0323 },
- ["unicodeslot"]=0x1EE4, -- Ụ
+ category="lu",
+ contextname="Udotbelow",
+ description="LATIN CAPITAL LETTER U WITH DOT BELOW",
+ direction="l",
+ lccode=0x1EE5,
+ linebreak="al",
+ shcode=0x0055,
+ specials={ "char", 0x0055, 0x0323 },
+ unicodeslot=0x1EE4,
},
[0x1EE5]={
- ["category"]="ll",
- ["contextname"]="udotbelow",
- ["description"]="LATIN SMALL LETTER U WITH DOT BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x0075,
- ["specials"]={ "char", 0x0075, 0x0323 },
- ["uccode"]=0x1EE4,
- ["unicodeslot"]=0x1EE5, -- ụ
+ category="ll",
+ contextname="udotbelow",
+ description="LATIN SMALL LETTER U WITH DOT BELOW",
+ direction="l",
+ linebreak="al",
+ shcode=0x0075,
+ specials={ "char", 0x0075, 0x0323 },
+ uccode=0x1EE4,
+ unicodeslot=0x1EE5,
},
[0x1EE6]={
- ["category"]="lu",
- ["contextname"]="Uhook",
- ["description"]="LATIN CAPITAL LETTER U WITH HOOK ABOVE",
- ["lccode"]=0x1EE7,
- ["linebreak"]="al",
- ["shcode"]=0x0055,
- ["specials"]={ "char", 0x0055, 0x0309 },
- ["unicodeslot"]=0x1EE6, -- Ủ
+ category="lu",
+ contextname="Uhook",
+ description="LATIN CAPITAL LETTER U WITH HOOK ABOVE",
+ direction="l",
+ lccode=0x1EE7,
+ linebreak="al",
+ shcode=0x0055,
+ specials={ "char", 0x0055, 0x0309 },
+ unicodeslot=0x1EE6,
},
[0x1EE7]={
- ["category"]="ll",
- ["contextname"]="uhook",
- ["description"]="LATIN SMALL LETTER U WITH HOOK ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0075,
- ["specials"]={ "char", 0x0075, 0x0309 },
- ["uccode"]=0x1EE6,
- ["unicodeslot"]=0x1EE7, -- ủ
+ category="ll",
+ contextname="uhook",
+ description="LATIN SMALL LETTER U WITH HOOK ABOVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0075,
+ specials={ "char", 0x0075, 0x0309 },
+ uccode=0x1EE6,
+ unicodeslot=0x1EE7,
},
[0x1EE8]={
- ["category"]="lu",
- ["contextname"]="Uhornacute",
- ["description"]="LATIN CAPITAL LETTER U WITH HORN AND ACUTE",
- ["lccode"]=0x1EE9,
- ["linebreak"]="al",
- ["shcode"]=0x0055,
- ["specials"]={ "char", 0x01AF, 0x0301 },
- ["unicodeslot"]=0x1EE8, -- Ứ
+ category="lu",
+ contextname="Uhornacute",
+ description="LATIN CAPITAL LETTER U WITH HORN AND ACUTE",
+ direction="l",
+ lccode=0x1EE9,
+ linebreak="al",
+ shcode=0x0055,
+ specials={ "char", 0x01AF, 0x0301 },
+ unicodeslot=0x1EE8,
},
[0x1EE9]={
- ["category"]="ll",
- ["contextname"]="uhornacute",
- ["description"]="LATIN SMALL LETTER U WITH HORN AND ACUTE",
- ["linebreak"]="al",
- ["shcode"]=0x0075,
- ["specials"]={ "char", 0x01B0, 0x0301 },
- ["uccode"]=0x1EE8,
- ["unicodeslot"]=0x1EE9, -- ứ
+ category="ll",
+ contextname="uhornacute",
+ description="LATIN SMALL LETTER U WITH HORN AND ACUTE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0075,
+ specials={ "char", 0x01B0, 0x0301 },
+ uccode=0x1EE8,
+ unicodeslot=0x1EE9,
},
[0x1EEA]={
- ["category"]="lu",
- ["contextname"]="Uhorngrave",
- ["description"]="LATIN CAPITAL LETTER U WITH HORN AND GRAVE",
- ["lccode"]=0x1EEB,
- ["linebreak"]="al",
- ["shcode"]=0x0055,
- ["specials"]={ "char", 0x01AF, 0x0300 },
- ["unicodeslot"]=0x1EEA, -- Ừ
+ category="lu",
+ contextname="Uhorngrave",
+ description="LATIN CAPITAL LETTER U WITH HORN AND GRAVE",
+ direction="l",
+ lccode=0x1EEB,
+ linebreak="al",
+ shcode=0x0055,
+ specials={ "char", 0x01AF, 0x0300 },
+ unicodeslot=0x1EEA,
},
[0x1EEB]={
- ["category"]="ll",
- ["contextname"]="uhorngrave",
- ["description"]="LATIN SMALL LETTER U WITH HORN AND GRAVE",
- ["linebreak"]="al",
- ["shcode"]=0x0075,
- ["specials"]={ "char", 0x01B0, 0x0300 },
- ["uccode"]=0x1EEA,
- ["unicodeslot"]=0x1EEB, -- ừ
+ category="ll",
+ contextname="uhorngrave",
+ description="LATIN SMALL LETTER U WITH HORN AND GRAVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0075,
+ specials={ "char", 0x01B0, 0x0300 },
+ uccode=0x1EEA,
+ unicodeslot=0x1EEB,
},
[0x1EEC]={
- ["category"]="lu",
- ["contextname"]="Uhornhook",
- ["description"]="LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE",
- ["lccode"]=0x1EED,
- ["linebreak"]="al",
- ["shcode"]=0x0055,
- ["specials"]={ "char", 0x01AF, 0x0309 },
- ["unicodeslot"]=0x1EEC, -- Ử
+ category="lu",
+ contextname="Uhornhook",
+ description="LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE",
+ direction="l",
+ lccode=0x1EED,
+ linebreak="al",
+ shcode=0x0055,
+ specials={ "char", 0x01AF, 0x0309 },
+ unicodeslot=0x1EEC,
},
[0x1EED]={
- ["category"]="ll",
- ["contextname"]="uhornhook",
- ["description"]="LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0075,
- ["specials"]={ "char", 0x01B0, 0x0309 },
- ["uccode"]=0x1EEC,
- ["unicodeslot"]=0x1EED, -- ử
+ category="ll",
+ contextname="uhornhook",
+ description="LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0075,
+ specials={ "char", 0x01B0, 0x0309 },
+ uccode=0x1EEC,
+ unicodeslot=0x1EED,
},
[0x1EEE]={
- ["category"]="lu",
- ["contextname"]="Uhorntilde",
- ["description"]="LATIN CAPITAL LETTER U WITH HORN AND TILDE",
- ["lccode"]=0x1EEF,
- ["linebreak"]="al",
- ["shcode"]=0x0055,
- ["specials"]={ "char", 0x01AF, 0x0303 },
- ["unicodeslot"]=0x1EEE, -- Ữ
+ category="lu",
+ contextname="Uhorntilde",
+ description="LATIN CAPITAL LETTER U WITH HORN AND TILDE",
+ direction="l",
+ lccode=0x1EEF,
+ linebreak="al",
+ shcode=0x0055,
+ specials={ "char", 0x01AF, 0x0303 },
+ unicodeslot=0x1EEE,
},
[0x1EEF]={
- ["category"]="ll",
- ["contextname"]="uhorntilde",
- ["description"]="LATIN SMALL LETTER U WITH HORN AND TILDE",
- ["linebreak"]="al",
- ["shcode"]=0x0075,
- ["specials"]={ "char", 0x01B0, 0x0303 },
- ["uccode"]=0x1EEE,
- ["unicodeslot"]=0x1EEF, -- ữ
+ category="ll",
+ contextname="uhorntilde",
+ description="LATIN SMALL LETTER U WITH HORN AND TILDE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0075,
+ specials={ "char", 0x01B0, 0x0303 },
+ uccode=0x1EEE,
+ unicodeslot=0x1EEF,
},
[0x1EF0]={
- ["category"]="lu",
- ["contextname"]="Uhorndotbelow",
- ["description"]="LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW",
- ["lccode"]=0x1EF1,
- ["linebreak"]="al",
- ["shcode"]=0x0055,
- ["specials"]={ "char", 0x01AF, 0x0323 },
- ["unicodeslot"]=0x1EF0, -- Ự
+ category="lu",
+ contextname="Uhorndotbelow",
+ description="LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW",
+ direction="l",
+ lccode=0x1EF1,
+ linebreak="al",
+ shcode=0x0055,
+ specials={ "char", 0x01AF, 0x0323 },
+ unicodeslot=0x1EF0,
},
[0x1EF1]={
- ["category"]="ll",
- ["contextname"]="uhorndotbelow",
- ["description"]="LATIN SMALL LETTER U WITH HORN AND DOT BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x0075,
- ["specials"]={ "char", 0x01B0, 0x0323 },
- ["uccode"]=0x1EF0,
- ["unicodeslot"]=0x1EF1, -- ự
+ category="ll",
+ contextname="uhorndotbelow",
+ description="LATIN SMALL LETTER U WITH HORN AND DOT BELOW",
+ direction="l",
+ linebreak="al",
+ shcode=0x0075,
+ specials={ "char", 0x01B0, 0x0323 },
+ uccode=0x1EF0,
+ unicodeslot=0x1EF1,
},
[0x1EF2]={
- ["adobename"]="Ygrave",
- ["category"]="lu",
- ["contextname"]="Ygrave",
- ["description"]="LATIN CAPITAL LETTER Y WITH GRAVE",
- ["lccode"]=0x1EF3,
- ["linebreak"]="al",
- ["shcode"]=0x0059,
- ["specials"]={ "char", 0x0059, 0x0300 },
- ["unicodeslot"]=0x1EF2, -- Ỳ
+ adobename="Ygrave",
+ category="lu",
+ contextname="Ygrave",
+ description="LATIN CAPITAL LETTER Y WITH GRAVE",
+ direction="l",
+ lccode=0x1EF3,
+ linebreak="al",
+ shcode=0x0059,
+ specials={ "char", 0x0059, 0x0300 },
+ unicodeslot=0x1EF2,
},
[0x1EF3]={
- ["adobename"]="ygrave",
- ["category"]="ll",
- ["contextname"]="ygrave",
- ["description"]="LATIN SMALL LETTER Y WITH GRAVE",
- ["linebreak"]="al",
- ["shcode"]=0x0079,
- ["specials"]={ "char", 0x0079, 0x0300 },
- ["uccode"]=0x1EF2,
- ["unicodeslot"]=0x1EF3, -- ỳ
+ adobename="ygrave",
+ category="ll",
+ contextname="ygrave",
+ description="LATIN SMALL LETTER Y WITH GRAVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0079,
+ specials={ "char", 0x0079, 0x0300 },
+ uccode=0x1EF2,
+ unicodeslot=0x1EF3,
},
[0x1EF4]={
- ["category"]="lu",
- ["contextname"]="Ydotbelow",
- ["description"]="LATIN CAPITAL LETTER Y WITH DOT BELOW",
- ["lccode"]=0x1EF5,
- ["linebreak"]="al",
- ["shcode"]=0x0059,
- ["specials"]={ "char", 0x0059, 0x0323 },
- ["unicodeslot"]=0x1EF4, -- Ỵ
+ category="lu",
+ contextname="Ydotbelow",
+ description="LATIN CAPITAL LETTER Y WITH DOT BELOW",
+ direction="l",
+ lccode=0x1EF5,
+ linebreak="al",
+ shcode=0x0059,
+ specials={ "char", 0x0059, 0x0323 },
+ unicodeslot=0x1EF4,
},
[0x1EF5]={
- ["category"]="ll",
- ["contextname"]="ydotbelow",
- ["description"]="LATIN SMALL LETTER Y WITH DOT BELOW",
- ["linebreak"]="al",
- ["shcode"]=0x0079,
- ["specials"]={ "char", 0x0079, 0x0323 },
- ["uccode"]=0x1EF4,
- ["unicodeslot"]=0x1EF5, -- ỵ
+ category="ll",
+ contextname="ydotbelow",
+ description="LATIN SMALL LETTER Y WITH DOT BELOW",
+ direction="l",
+ linebreak="al",
+ shcode=0x0079,
+ specials={ "char", 0x0079, 0x0323 },
+ uccode=0x1EF4,
+ unicodeslot=0x1EF5,
},
[0x1EF6]={
- ["category"]="lu",
- ["contextname"]="Yhook",
- ["description"]="LATIN CAPITAL LETTER Y WITH HOOK ABOVE",
- ["lccode"]=0x1EF7,
- ["linebreak"]="al",
- ["shcode"]=0x0059,
- ["specials"]={ "char", 0x0059, 0x0309 },
- ["unicodeslot"]=0x1EF6, -- Ỷ
+ category="lu",
+ contextname="Yhook",
+ description="LATIN CAPITAL LETTER Y WITH HOOK ABOVE",
+ direction="l",
+ lccode=0x1EF7,
+ linebreak="al",
+ shcode=0x0059,
+ specials={ "char", 0x0059, 0x0309 },
+ unicodeslot=0x1EF6,
},
[0x1EF7]={
- ["category"]="ll",
- ["contextname"]="yhook",
- ["description"]="LATIN SMALL LETTER Y WITH HOOK ABOVE",
- ["linebreak"]="al",
- ["shcode"]=0x0079,
- ["specials"]={ "char", 0x0079, 0x0309 },
- ["uccode"]=0x1EF6,
- ["unicodeslot"]=0x1EF7, -- ỷ
+ category="ll",
+ contextname="yhook",
+ description="LATIN SMALL LETTER Y WITH HOOK ABOVE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0079,
+ specials={ "char", 0x0079, 0x0309 },
+ uccode=0x1EF6,
+ unicodeslot=0x1EF7,
},
[0x1EF8]={
- ["category"]="lu",
- ["contextname"]="Ytilde",
- ["description"]="LATIN CAPITAL LETTER Y WITH TILDE",
- ["lccode"]=0x1EF9,
- ["linebreak"]="al",
- ["shcode"]=0x0059,
- ["specials"]={ "char", 0x0059, 0x0303 },
- ["unicodeslot"]=0x1EF8, -- Ỹ
+ category="lu",
+ contextname="Ytilde",
+ description="LATIN CAPITAL LETTER Y WITH TILDE",
+ direction="l",
+ lccode=0x1EF9,
+ linebreak="al",
+ shcode=0x0059,
+ specials={ "char", 0x0059, 0x0303 },
+ unicodeslot=0x1EF8,
},
[0x1EF9]={
- ["category"]="ll",
- ["contextname"]="ytilde",
- ["description"]="LATIN SMALL LETTER Y WITH TILDE",
- ["linebreak"]="al",
- ["shcode"]=0x0079,
- ["specials"]={ "char", 0x0079, 0x0303 },
- ["uccode"]=0x1EF8,
- ["unicodeslot"]=0x1EF9, -- ỹ
+ category="ll",
+ contextname="ytilde",
+ description="LATIN SMALL LETTER Y WITH TILDE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0079,
+ specials={ "char", 0x0079, 0x0303 },
+ uccode=0x1EF8,
+ unicodeslot=0x1EF9,
},
[0x1F00]={
- ["category"]="ll",
- ["contextname"]="greekalphapsili",
- ["description"]="GREEK SMALL LETTER ALPHA WITH PSILI",
- ["linebreak"]="al",
- ["shcode"]=0x03B1,
- ["specials"]={ "char", 0x03B1, 0x0313 },
- ["uccode"]=0x1F08,
- ["unicodeslot"]=0x1F00, -- ἀ
+ category="ll",
+ contextname="greekalphapsili",
+ description="GREEK SMALL LETTER ALPHA WITH PSILI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B1,
+ specials={ "char", 0x03B1, 0x0313 },
+ uccode=0x1F08,
+ unicodeslot=0x1F00,
},
[0x1F01]={
- ["category"]="ll",
- ["contextname"]="greekalphadasia",
- ["description"]="GREEK SMALL LETTER ALPHA WITH DASIA",
- ["linebreak"]="al",
- ["shcode"]=0x03B1,
- ["specials"]={ "char", 0x03B1, 0x0314 },
- ["uccode"]=0x1F09,
- ["unicodeslot"]=0x1F01, -- ἁ
+ category="ll",
+ contextname="greekalphadasia",
+ description="GREEK SMALL LETTER ALPHA WITH DASIA",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B1,
+ specials={ "char", 0x03B1, 0x0314 },
+ uccode=0x1F09,
+ unicodeslot=0x1F01,
},
[0x1F02]={
- ["category"]="ll",
- ["contextname"]="greekalphapsilivaria",
- ["description"]="GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA",
- ["linebreak"]="al",
- ["shcode"]=0x03B1,
- ["specials"]={ "char", 0x1F00, 0x0300 },
- ["uccode"]=0x1F0A,
- ["unicodeslot"]=0x1F02, -- ἂ
+ category="ll",
+ contextname="greekalphapsilivaria",
+ description="GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B1,
+ specials={ "char", 0x1F00, 0x0300 },
+ uccode=0x1F0A,
+ unicodeslot=0x1F02,
},
[0x1F03]={
- ["category"]="ll",
- ["contextname"]="greekalphadasiavaria",
- ["description"]="GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA",
- ["linebreak"]="al",
- ["shcode"]=0x03B1,
- ["specials"]={ "char", 0x1F01, 0x0300 },
- ["uccode"]=0x1F0B,
- ["unicodeslot"]=0x1F03, -- ἃ
+ category="ll",
+ contextname="greekalphadasiavaria",
+ description="GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B1,
+ specials={ "char", 0x1F01, 0x0300 },
+ uccode=0x1F0B,
+ unicodeslot=0x1F03,
},
[0x1F04]={
- ["category"]="ll",
- ["contextname"]="greekalphapsilitonos",
- ["description"]="GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA",
- ["linebreak"]="al",
- ["shcode"]=0x03B1,
- ["specials"]={ "char", 0x1F00, 0x0301 },
- ["uccode"]=0x1F0C,
- ["unicodeslot"]=0x1F04, -- ἄ
+ category="ll",
+ contextname="greekalphapsilitonos",
+ description="GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B1,
+ specials={ "char", 0x1F00, 0x0301 },
+ uccode=0x1F0C,
+ unicodeslot=0x1F04,
},
[0x1F05]={
- ["category"]="ll",
- ["contextname"]="greekalphadasiatonos",
- ["description"]="GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA",
- ["linebreak"]="al",
- ["shcode"]=0x03B1,
- ["specials"]={ "char", 0x1F01, 0x0301 },
- ["uccode"]=0x1F0D,
- ["unicodeslot"]=0x1F05, -- ἅ
+ category="ll",
+ contextname="greekalphadasiatonos",
+ description="GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B1,
+ specials={ "char", 0x1F01, 0x0301 },
+ uccode=0x1F0D,
+ unicodeslot=0x1F05,
},
[0x1F06]={
- ["category"]="ll",
- ["contextname"]="greekalphapsiliperispomeni",
- ["description"]="GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI",
- ["linebreak"]="al",
- ["shcode"]=0x03B1,
- ["specials"]={ "char", 0x1F00, 0x0342 },
- ["uccode"]=0x1F0E,
- ["unicodeslot"]=0x1F06, -- ἆ
+ category="ll",
+ contextname="greekalphapsiliperispomeni",
+ description="GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B1,
+ specials={ "char", 0x1F00, 0x0342 },
+ uccode=0x1F0E,
+ unicodeslot=0x1F06,
},
[0x1F07]={
- ["category"]="ll",
- ["contextname"]="greekalphadasiaperispomeni",
- ["description"]="GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI",
- ["linebreak"]="al",
- ["shcode"]=0x03B1,
- ["specials"]={ "char", 0x1F01, 0x0342 },
- ["uccode"]=0x1F0F,
- ["unicodeslot"]=0x1F07, -- ἇ
+ category="ll",
+ contextname="greekalphadasiaperispomeni",
+ description="GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B1,
+ specials={ "char", 0x1F01, 0x0342 },
+ uccode=0x1F0F,
+ unicodeslot=0x1F07,
},
[0x1F08]={
- ["category"]="lu",
- ["contextname"]="greekAlphapsili",
- ["description"]="GREEK CAPITAL LETTER ALPHA WITH PSILI",
- ["lccode"]=0x1F00,
- ["linebreak"]="al",
- ["shcode"]=0x0391,
- ["specials"]={ "char", 0x0391, 0x0313 },
- ["unicodeslot"]=0x1F08, -- Ἀ
+ category="lu",
+ contextname="greekAlphapsili",
+ description="GREEK CAPITAL LETTER ALPHA WITH PSILI",
+ direction="l",
+ lccode=0x1F00,
+ linebreak="al",
+ shcode=0x0391,
+ specials={ "char", 0x0391, 0x0313 },
+ unicodeslot=0x1F08,
},
[0x1F09]={
- ["category"]="lu",
- ["contextname"]="greekAlphadasia",
- ["description"]="GREEK CAPITAL LETTER ALPHA WITH DASIA",
- ["lccode"]=0x1F01,
- ["linebreak"]="al",
- ["shcode"]=0x0391,
- ["specials"]={ "char", 0x0391, 0x0314 },
- ["unicodeslot"]=0x1F09, -- Ἁ
+ category="lu",
+ contextname="greekAlphadasia",
+ description="GREEK CAPITAL LETTER ALPHA WITH DASIA",
+ direction="l",
+ lccode=0x1F01,
+ linebreak="al",
+ shcode=0x0391,
+ specials={ "char", 0x0391, 0x0314 },
+ unicodeslot=0x1F09,
},
[0x1F0A]={
- ["category"]="lu",
- ["contextname"]="greekAlphapsilivaria",
- ["description"]="GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA",
- ["lccode"]=0x1F02,
- ["linebreak"]="al",
- ["shcode"]=0x0391,
- ["specials"]={ "char", 0x1F08, 0x0300 },
- ["unicodeslot"]=0x1F0A, -- Ἂ
+ category="lu",
+ contextname="greekAlphapsilivaria",
+ description="GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA",
+ direction="l",
+ lccode=0x1F02,
+ linebreak="al",
+ shcode=0x0391,
+ specials={ "char", 0x1F08, 0x0300 },
+ unicodeslot=0x1F0A,
},
[0x1F0B]={
- ["category"]="lu",
- ["contextname"]="greekAlphadasiavaria",
- ["description"]="GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA",
- ["lccode"]=0x1F03,
- ["linebreak"]="al",
- ["shcode"]=0x0391,
- ["specials"]={ "char", 0x1F09, 0x0300 },
- ["unicodeslot"]=0x1F0B, -- Ἃ
+ category="lu",
+ contextname="greekAlphadasiavaria",
+ description="GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA",
+ direction="l",
+ lccode=0x1F03,
+ linebreak="al",
+ shcode=0x0391,
+ specials={ "char", 0x1F09, 0x0300 },
+ unicodeslot=0x1F0B,
},
[0x1F0C]={
- ["category"]="lu",
- ["contextname"]="greekAlphapsilitonos",
- ["description"]="GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA",
- ["lccode"]=0x1F04,
- ["linebreak"]="al",
- ["shcode"]=0x0391,
- ["specials"]={ "char", 0x1F08, 0x0301 },
- ["unicodeslot"]=0x1F0C, -- Ἄ
+ category="lu",
+ contextname="greekAlphapsilitonos",
+ description="GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA",
+ direction="l",
+ lccode=0x1F04,
+ linebreak="al",
+ shcode=0x0391,
+ specials={ "char", 0x1F08, 0x0301 },
+ unicodeslot=0x1F0C,
},
[0x1F0D]={
- ["category"]="lu",
- ["contextname"]="greekAlphadasiatonos",
- ["description"]="GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA",
- ["lccode"]=0x1F05,
- ["linebreak"]="al",
- ["shcode"]=0x0391,
- ["specials"]={ "char", 0x1F09, 0x0301 },
- ["unicodeslot"]=0x1F0D, -- Ἅ
+ category="lu",
+ contextname="greekAlphadasiatonos",
+ description="GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA",
+ direction="l",
+ lccode=0x1F05,
+ linebreak="al",
+ shcode=0x0391,
+ specials={ "char", 0x1F09, 0x0301 },
+ unicodeslot=0x1F0D,
},
[0x1F0E]={
- ["category"]="lu",
- ["contextname"]="greekAlphapsiliperispomeni",
- ["description"]="GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI",
- ["lccode"]=0x1F06,
- ["linebreak"]="al",
- ["shcode"]=0x0391,
- ["specials"]={ "char", 0x1F08, 0x0342 },
- ["unicodeslot"]=0x1F0E, -- Ἆ
+ category="lu",
+ contextname="greekAlphapsiliperispomeni",
+ description="GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI",
+ direction="l",
+ lccode=0x1F06,
+ linebreak="al",
+ shcode=0x0391,
+ specials={ "char", 0x1F08, 0x0342 },
+ unicodeslot=0x1F0E,
},
[0x1F0F]={
- ["category"]="lu",
- ["contextname"]="greekAlphadasiaperispomeni",
- ["description"]="GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI",
- ["lccode"]=0x1F07,
- ["linebreak"]="al",
- ["shcode"]=0x0391,
- ["specials"]={ "char", 0x1F09, 0x0342 },
- ["unicodeslot"]=0x1F0F, -- Ἇ
+ category="lu",
+ contextname="greekAlphadasiaperispomeni",
+ description="GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI",
+ direction="l",
+ lccode=0x1F07,
+ linebreak="al",
+ shcode=0x0391,
+ specials={ "char", 0x1F09, 0x0342 },
+ unicodeslot=0x1F0F,
},
[0x1F10]={
- ["category"]="ll",
- ["contextname"]="greekepsilonpsili",
- ["description"]="GREEK SMALL LETTER EPSILON WITH PSILI",
- ["linebreak"]="al",
- ["shcode"]=0x03B5,
- ["specials"]={ "char", 0x03B5, 0x0313 },
- ["uccode"]=0x1F18,
- ["unicodeslot"]=0x1F10, -- ἐ
+ category="ll",
+ contextname="greekepsilonpsili",
+ description="GREEK SMALL LETTER EPSILON WITH PSILI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B5,
+ specials={ "char", 0x03B5, 0x0313 },
+ uccode=0x1F18,
+ unicodeslot=0x1F10,
},
[0x1F11]={
- ["category"]="ll",
- ["contextname"]="greekepsilondasia",
- ["description"]="GREEK SMALL LETTER EPSILON WITH DASIA",
- ["linebreak"]="al",
- ["shcode"]=0x03B5,
- ["specials"]={ "char", 0x03B5, 0x0314 },
- ["uccode"]=0x1F19,
- ["unicodeslot"]=0x1F11, -- ἑ
+ category="ll",
+ contextname="greekepsilondasia",
+ description="GREEK SMALL LETTER EPSILON WITH DASIA",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B5,
+ specials={ "char", 0x03B5, 0x0314 },
+ uccode=0x1F19,
+ unicodeslot=0x1F11,
},
[0x1F12]={
- ["category"]="ll",
- ["contextname"]="greekepsilonpsilivaria",
- ["description"]="GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA",
- ["linebreak"]="al",
- ["shcode"]=0x03B5,
- ["specials"]={ "char", 0x1F10, 0x0300 },
- ["uccode"]=0x1F1A,
- ["unicodeslot"]=0x1F12, -- ἒ
+ category="ll",
+ contextname="greekepsilonpsilivaria",
+ description="GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B5,
+ specials={ "char", 0x1F10, 0x0300 },
+ uccode=0x1F1A,
+ unicodeslot=0x1F12,
},
[0x1F13]={
- ["category"]="ll",
- ["contextname"]="greekepsilondasiavaria",
- ["description"]="GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA",
- ["linebreak"]="al",
- ["shcode"]=0x03B5,
- ["specials"]={ "char", 0x1F11, 0x0300 },
- ["uccode"]=0x1F1B,
- ["unicodeslot"]=0x1F13, -- ἓ
+ category="ll",
+ contextname="greekepsilondasiavaria",
+ description="GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B5,
+ specials={ "char", 0x1F11, 0x0300 },
+ uccode=0x1F1B,
+ unicodeslot=0x1F13,
},
[0x1F14]={
- ["category"]="ll",
- ["contextname"]="greekepsilonpsilitonos",
- ["description"]="GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA",
- ["linebreak"]="al",
- ["shcode"]=0x03B5,
- ["specials"]={ "char", 0x1F10, 0x0301 },
- ["uccode"]=0x1F1C,
- ["unicodeslot"]=0x1F14, -- ἔ
+ category="ll",
+ contextname="greekepsilonpsilitonos",
+ description="GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B5,
+ specials={ "char", 0x1F10, 0x0301 },
+ uccode=0x1F1C,
+ unicodeslot=0x1F14,
},
[0x1F15]={
- ["category"]="ll",
- ["contextname"]="greekepsilondasiatonos",
- ["description"]="GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA",
- ["linebreak"]="al",
- ["shcode"]=0x03B5,
- ["specials"]={ "char", 0x1F11, 0x0301 },
- ["uccode"]=0x1F1D,
- ["unicodeslot"]=0x1F15, -- ἕ
+ category="ll",
+ contextname="greekepsilondasiatonos",
+ description="GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B5,
+ specials={ "char", 0x1F11, 0x0301 },
+ uccode=0x1F1D,
+ unicodeslot=0x1F15,
},
[0x1F18]={
- ["category"]="lu",
- ["contextname"]="greekEpsilonpsili",
- ["description"]="GREEK CAPITAL LETTER EPSILON WITH PSILI",
- ["lccode"]=0x1F10,
- ["linebreak"]="al",
- ["shcode"]=0x0395,
- ["specials"]={ "char", 0x0395, 0x0313 },
- ["unicodeslot"]=0x1F18, -- Ἐ
+ category="lu",
+ contextname="greekEpsilonpsili",
+ description="GREEK CAPITAL LETTER EPSILON WITH PSILI",
+ direction="l",
+ lccode=0x1F10,
+ linebreak="al",
+ shcode=0x0395,
+ specials={ "char", 0x0395, 0x0313 },
+ unicodeslot=0x1F18,
},
[0x1F19]={
- ["category"]="lu",
- ["contextname"]="greekEpsilondasia",
- ["description"]="GREEK CAPITAL LETTER EPSILON WITH DASIA",
- ["lccode"]=0x1F11,
- ["linebreak"]="al",
- ["shcode"]=0x0395,
- ["specials"]={ "char", 0x0395, 0x0314 },
- ["unicodeslot"]=0x1F19, -- Ἑ
+ category="lu",
+ contextname="greekEpsilondasia",
+ description="GREEK CAPITAL LETTER EPSILON WITH DASIA",
+ direction="l",
+ lccode=0x1F11,
+ linebreak="al",
+ shcode=0x0395,
+ specials={ "char", 0x0395, 0x0314 },
+ unicodeslot=0x1F19,
},
[0x1F1A]={
- ["category"]="lu",
- ["contextname"]="greekEpsilonpsilivaria",
- ["description"]="GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA",
- ["lccode"]=0x1F12,
- ["linebreak"]="al",
- ["shcode"]=0x0395,
- ["specials"]={ "char", 0x1F18, 0x0300 },
- ["unicodeslot"]=0x1F1A, -- Ἒ
+ category="lu",
+ contextname="greekEpsilonpsilivaria",
+ description="GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA",
+ direction="l",
+ lccode=0x1F12,
+ linebreak="al",
+ shcode=0x0395,
+ specials={ "char", 0x1F18, 0x0300 },
+ unicodeslot=0x1F1A,
},
[0x1F1B]={
- ["category"]="lu",
- ["contextname"]="greekEpsilondasiavaria",
- ["description"]="GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA",
- ["lccode"]=0x1F13,
- ["linebreak"]="al",
- ["shcode"]=0x0395,
- ["specials"]={ "char", 0x1F19, 0x0300 },
- ["unicodeslot"]=0x1F1B, -- Ἓ
+ category="lu",
+ contextname="greekEpsilondasiavaria",
+ description="GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA",
+ direction="l",
+ lccode=0x1F13,
+ linebreak="al",
+ shcode=0x0395,
+ specials={ "char", 0x1F19, 0x0300 },
+ unicodeslot=0x1F1B,
},
[0x1F1C]={
- ["category"]="lu",
- ["contextname"]="greekEpsilonpsilitonos",
- ["description"]="GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA",
- ["lccode"]=0x1F14,
- ["linebreak"]="al",
- ["shcode"]=0x0395,
- ["specials"]={ "char", 0x1F18, 0x0301 },
- ["unicodeslot"]=0x1F1C, -- Ἔ
+ category="lu",
+ contextname="greekEpsilonpsilitonos",
+ description="GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA",
+ direction="l",
+ lccode=0x1F14,
+ linebreak="al",
+ shcode=0x0395,
+ specials={ "char", 0x1F18, 0x0301 },
+ unicodeslot=0x1F1C,
},
[0x1F1D]={
- ["category"]="lu",
- ["contextname"]="greekEpsilondasiatonos",
- ["description"]="GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA",
- ["lccode"]=0x1F15,
- ["linebreak"]="al",
- ["shcode"]=0x0395,
- ["specials"]={ "char", 0x1F19, 0x0301 },
- ["unicodeslot"]=0x1F1D, -- Ἕ
+ category="lu",
+ contextname="greekEpsilondasiatonos",
+ description="GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA",
+ direction="l",
+ lccode=0x1F15,
+ linebreak="al",
+ shcode=0x0395,
+ specials={ "char", 0x1F19, 0x0301 },
+ unicodeslot=0x1F1D,
},
[0x1F20]={
- ["category"]="ll",
- ["contextname"]="greeketapsili",
- ["description"]="GREEK SMALL LETTER ETA WITH PSILI",
- ["linebreak"]="al",
- ["shcode"]=0x03B7,
- ["specials"]={ "char", 0x03B7, 0x0313 },
- ["uccode"]=0x1F28,
- ["unicodeslot"]=0x1F20, -- ἠ
+ category="ll",
+ contextname="greeketapsili",
+ description="GREEK SMALL LETTER ETA WITH PSILI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B7,
+ specials={ "char", 0x03B7, 0x0313 },
+ uccode=0x1F28,
+ unicodeslot=0x1F20,
},
[0x1F21]={
- ["category"]="ll",
- ["contextname"]="greeketadasia",
- ["description"]="GREEK SMALL LETTER ETA WITH DASIA",
- ["linebreak"]="al",
- ["shcode"]=0x03B7,
- ["specials"]={ "char", 0x03B7, 0x0314 },
- ["uccode"]=0x1F29,
- ["unicodeslot"]=0x1F21, -- ἡ
+ category="ll",
+ contextname="greeketadasia",
+ description="GREEK SMALL LETTER ETA WITH DASIA",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B7,
+ specials={ "char", 0x03B7, 0x0314 },
+ uccode=0x1F29,
+ unicodeslot=0x1F21,
},
[0x1F22]={
- ["category"]="ll",
- ["contextname"]="greeketapsilivaria",
- ["description"]="GREEK SMALL LETTER ETA WITH PSILI AND VARIA",
- ["linebreak"]="al",
- ["shcode"]=0x03B7,
- ["specials"]={ "char", 0x1F20, 0x0300 },
- ["uccode"]=0x1F2A,
- ["unicodeslot"]=0x1F22, -- ἢ
+ category="ll",
+ contextname="greeketapsilivaria",
+ description="GREEK SMALL LETTER ETA WITH PSILI AND VARIA",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B7,
+ specials={ "char", 0x1F20, 0x0300 },
+ uccode=0x1F2A,
+ unicodeslot=0x1F22,
},
[0x1F23]={
- ["category"]="ll",
- ["contextname"]="greeketadasiavaria",
- ["description"]="GREEK SMALL LETTER ETA WITH DASIA AND VARIA",
- ["linebreak"]="al",
- ["shcode"]=0x03B7,
- ["specials"]={ "char", 0x1F21, 0x0300 },
- ["uccode"]=0x1F2B,
- ["unicodeslot"]=0x1F23, -- ἣ
+ category="ll",
+ contextname="greeketadasiavaria",
+ description="GREEK SMALL LETTER ETA WITH DASIA AND VARIA",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B7,
+ specials={ "char", 0x1F21, 0x0300 },
+ uccode=0x1F2B,
+ unicodeslot=0x1F23,
},
[0x1F24]={
- ["category"]="ll",
- ["contextname"]="greeketapsilitonos",
- ["description"]="GREEK SMALL LETTER ETA WITH PSILI AND OXIA",
- ["linebreak"]="al",
- ["shcode"]=0x03B7,
- ["specials"]={ "char", 0x1F20, 0x0301 },
- ["uccode"]=0x1F2C,
- ["unicodeslot"]=0x1F24, -- ἤ
+ category="ll",
+ contextname="greeketapsilitonos",
+ description="GREEK SMALL LETTER ETA WITH PSILI AND OXIA",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B7,
+ specials={ "char", 0x1F20, 0x0301 },
+ uccode=0x1F2C,
+ unicodeslot=0x1F24,
},
[0x1F25]={
- ["category"]="ll",
- ["contextname"]="greeketadasiatonos",
- ["description"]="GREEK SMALL LETTER ETA WITH DASIA AND OXIA",
- ["linebreak"]="al",
- ["shcode"]=0x03B7,
- ["specials"]={ "char", 0x1F21, 0x0301 },
- ["uccode"]=0x1F2D,
- ["unicodeslot"]=0x1F25, -- ἥ
+ category="ll",
+ contextname="greeketadasiatonos",
+ description="GREEK SMALL LETTER ETA WITH DASIA AND OXIA",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B7,
+ specials={ "char", 0x1F21, 0x0301 },
+ uccode=0x1F2D,
+ unicodeslot=0x1F25,
},
[0x1F26]={
- ["category"]="ll",
- ["contextname"]="greeketapsiliperispomeni",
- ["description"]="GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI",
- ["linebreak"]="al",
- ["shcode"]=0x03B7,
- ["specials"]={ "char", 0x1F20, 0x0342 },
- ["uccode"]=0x1F2E,
- ["unicodeslot"]=0x1F26, -- ἦ
+ category="ll",
+ contextname="greeketapsiliperispomeni",
+ description="GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B7,
+ specials={ "char", 0x1F20, 0x0342 },
+ uccode=0x1F2E,
+ unicodeslot=0x1F26,
},
[0x1F27]={
- ["category"]="ll",
- ["contextname"]="greeketadasiaperispomeni",
- ["description"]="GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI",
- ["linebreak"]="al",
- ["shcode"]=0x03B7,
- ["specials"]={ "char", 0x1F21, 0x0342 },
- ["uccode"]=0x1F2F,
- ["unicodeslot"]=0x1F27, -- ἧ
+ category="ll",
+ contextname="greeketadasiaperispomeni",
+ description="GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B7,
+ specials={ "char", 0x1F21, 0x0342 },
+ uccode=0x1F2F,
+ unicodeslot=0x1F27,
},
[0x1F28]={
- ["category"]="lu",
- ["contextname"]="greekEtapsili",
- ["description"]="GREEK CAPITAL LETTER ETA WITH PSILI",
- ["lccode"]=0x1F20,
- ["linebreak"]="al",
- ["shcode"]=0x0397,
- ["specials"]={ "char", 0x0397, 0x0313 },
- ["unicodeslot"]=0x1F28, -- Ἠ
+ category="lu",
+ contextname="greekEtapsili",
+ description="GREEK CAPITAL LETTER ETA WITH PSILI",
+ direction="l",
+ lccode=0x1F20,
+ linebreak="al",
+ shcode=0x0397,
+ specials={ "char", 0x0397, 0x0313 },
+ unicodeslot=0x1F28,
},
[0x1F29]={
- ["category"]="lu",
- ["contextname"]="greekEtadasia",
- ["description"]="GREEK CAPITAL LETTER ETA WITH DASIA",
- ["lccode"]=0x1F21,
- ["linebreak"]="al",
- ["shcode"]=0x0397,
- ["specials"]={ "char", 0x0397, 0x0314 },
- ["unicodeslot"]=0x1F29, -- Ἡ
+ category="lu",
+ contextname="greekEtadasia",
+ description="GREEK CAPITAL LETTER ETA WITH DASIA",
+ direction="l",
+ lccode=0x1F21,
+ linebreak="al",
+ shcode=0x0397,
+ specials={ "char", 0x0397, 0x0314 },
+ unicodeslot=0x1F29,
},
[0x1F2A]={
- ["category"]="lu",
- ["contextname"]="greekEtapsilivaria",
- ["description"]="GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA",
- ["lccode"]=0x1F22,
- ["linebreak"]="al",
- ["shcode"]=0x0397,
- ["specials"]={ "char", 0x1F28, 0x0300 },
- ["unicodeslot"]=0x1F2A, -- Ἢ
+ category="lu",
+ contextname="greekEtapsilivaria",
+ description="GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA",
+ direction="l",
+ lccode=0x1F22,
+ linebreak="al",
+ shcode=0x0397,
+ specials={ "char", 0x1F28, 0x0300 },
+ unicodeslot=0x1F2A,
},
[0x1F2B]={
- ["category"]="lu",
- ["contextname"]="greekEtadasiavaria",
- ["description"]="GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA",
- ["lccode"]=0x1F23,
- ["linebreak"]="al",
- ["shcode"]=0x0397,
- ["specials"]={ "char", 0x1F29, 0x0300 },
- ["unicodeslot"]=0x1F2B, -- Ἣ
+ category="lu",
+ contextname="greekEtadasiavaria",
+ description="GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA",
+ direction="l",
+ lccode=0x1F23,
+ linebreak="al",
+ shcode=0x0397,
+ specials={ "char", 0x1F29, 0x0300 },
+ unicodeslot=0x1F2B,
},
[0x1F2C]={
- ["category"]="lu",
- ["contextname"]="greekEtapsilitonos",
- ["description"]="GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA",
- ["lccode"]=0x1F24,
- ["linebreak"]="al",
- ["shcode"]=0x0397,
- ["specials"]={ "char", 0x1F28, 0x0301 },
- ["unicodeslot"]=0x1F2C, -- Ἤ
+ category="lu",
+ contextname="greekEtapsilitonos",
+ description="GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA",
+ direction="l",
+ lccode=0x1F24,
+ linebreak="al",
+ shcode=0x0397,
+ specials={ "char", 0x1F28, 0x0301 },
+ unicodeslot=0x1F2C,
},
[0x1F2D]={
- ["category"]="lu",
- ["contextname"]="greekEtadasiatonos",
- ["description"]="GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA",
- ["lccode"]=0x1F25,
- ["linebreak"]="al",
- ["shcode"]=0x0397,
- ["specials"]={ "char", 0x1F29, 0x0301 },
- ["unicodeslot"]=0x1F2D, -- Ἥ
+ category="lu",
+ contextname="greekEtadasiatonos",
+ description="GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA",
+ direction="l",
+ lccode=0x1F25,
+ linebreak="al",
+ shcode=0x0397,
+ specials={ "char", 0x1F29, 0x0301 },
+ unicodeslot=0x1F2D,
},
[0x1F2E]={
- ["category"]="lu",
- ["contextname"]="greekEtapsiliperispomeni",
- ["description"]="GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI",
- ["lccode"]=0x1F26,
- ["linebreak"]="al",
- ["shcode"]=0x0397,
- ["specials"]={ "char", 0x1F28, 0x0342 },
- ["unicodeslot"]=0x1F2E, -- Ἦ
+ category="lu",
+ contextname="greekEtapsiliperispomeni",
+ description="GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI",
+ direction="l",
+ lccode=0x1F26,
+ linebreak="al",
+ shcode=0x0397,
+ specials={ "char", 0x1F28, 0x0342 },
+ unicodeslot=0x1F2E,
},
[0x1F2F]={
- ["category"]="lu",
- ["contextname"]="greekEtadasiaperispomeni",
- ["description"]="GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI",
- ["lccode"]=0x1F27,
- ["linebreak"]="al",
- ["shcode"]=0x0397,
- ["specials"]={ "char", 0x1F29, 0x0342 },
- ["unicodeslot"]=0x1F2F, -- Ἧ
+ category="lu",
+ contextname="greekEtadasiaperispomeni",
+ description="GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI",
+ direction="l",
+ lccode=0x1F27,
+ linebreak="al",
+ shcode=0x0397,
+ specials={ "char", 0x1F29, 0x0342 },
+ unicodeslot=0x1F2F,
},
[0x1F30]={
- ["category"]="ll",
- ["contextname"]="greekiotapsili",
- ["description"]="GREEK SMALL LETTER IOTA WITH PSILI",
- ["linebreak"]="al",
- ["shcode"]=0x03B9,
- ["specials"]={ "char", 0x03B9, 0x0313 },
- ["uccode"]=0x1F38,
- ["unicodeslot"]=0x1F30, -- ἰ
+ category="ll",
+ contextname="greekiotapsili",
+ description="GREEK SMALL LETTER IOTA WITH PSILI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B9,
+ specials={ "char", 0x03B9, 0x0313 },
+ uccode=0x1F38,
+ unicodeslot=0x1F30,
},
[0x1F31]={
- ["category"]="ll",
- ["contextname"]="greekiotadasia",
- ["description"]="GREEK SMALL LETTER IOTA WITH DASIA",
- ["linebreak"]="al",
- ["shcode"]=0x03B9,
- ["specials"]={ "char", 0x03B9, 0x0314 },
- ["uccode"]=0x1F39,
- ["unicodeslot"]=0x1F31, -- ἱ
+ category="ll",
+ contextname="greekiotadasia",
+ description="GREEK SMALL LETTER IOTA WITH DASIA",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B9,
+ specials={ "char", 0x03B9, 0x0314 },
+ uccode=0x1F39,
+ unicodeslot=0x1F31,
},
[0x1F32]={
- ["category"]="ll",
- ["contextname"]="greekiotapsilivaria",
- ["description"]="GREEK SMALL LETTER IOTA WITH PSILI AND VARIA",
- ["linebreak"]="al",
- ["shcode"]=0x03B9,
- ["specials"]={ "char", 0x1F30, 0x0300 },
- ["uccode"]=0x1F3A,
- ["unicodeslot"]=0x1F32, -- ἲ
+ category="ll",
+ contextname="greekiotapsilivaria",
+ description="GREEK SMALL LETTER IOTA WITH PSILI AND VARIA",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B9,
+ specials={ "char", 0x1F30, 0x0300 },
+ uccode=0x1F3A,
+ unicodeslot=0x1F32,
},
[0x1F33]={
- ["category"]="ll",
- ["contextname"]="greekiotadasiavaria",
- ["description"]="GREEK SMALL LETTER IOTA WITH DASIA AND VARIA",
- ["linebreak"]="al",
- ["shcode"]=0x03B9,
- ["specials"]={ "char", 0x1F31, 0x0300 },
- ["uccode"]=0x1F3B,
- ["unicodeslot"]=0x1F33, -- ἳ
+ category="ll",
+ contextname="greekiotadasiavaria",
+ description="GREEK SMALL LETTER IOTA WITH DASIA AND VARIA",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B9,
+ specials={ "char", 0x1F31, 0x0300 },
+ uccode=0x1F3B,
+ unicodeslot=0x1F33,
},
[0x1F34]={
- ["category"]="ll",
- ["contextname"]="greekiotapsilitonos",
- ["description"]="GREEK SMALL LETTER IOTA WITH PSILI AND OXIA",
- ["linebreak"]="al",
- ["shcode"]=0x03B9,
- ["specials"]={ "char", 0x1F30, 0x0301 },
- ["uccode"]=0x1F3C,
- ["unicodeslot"]=0x1F34, -- ἴ
+ category="ll",
+ contextname="greekiotapsilitonos",
+ description="GREEK SMALL LETTER IOTA WITH PSILI AND OXIA",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B9,
+ specials={ "char", 0x1F30, 0x0301 },
+ uccode=0x1F3C,
+ unicodeslot=0x1F34,
},
[0x1F35]={
- ["category"]="ll",
- ["contextname"]="greekiotadasiatonos",
- ["description"]="GREEK SMALL LETTER IOTA WITH DASIA AND OXIA",
- ["linebreak"]="al",
- ["shcode"]=0x03B9,
- ["specials"]={ "char", 0x1F31, 0x0301 },
- ["uccode"]=0x1F3D,
- ["unicodeslot"]=0x1F35, -- ἵ
+ category="ll",
+ contextname="greekiotadasiatonos",
+ description="GREEK SMALL LETTER IOTA WITH DASIA AND OXIA",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B9,
+ specials={ "char", 0x1F31, 0x0301 },
+ uccode=0x1F3D,
+ unicodeslot=0x1F35,
},
[0x1F36]={
- ["category"]="ll",
- ["contextname"]="greekiotapsiliperispomeni",
- ["description"]="GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI",
- ["linebreak"]="al",
- ["shcode"]=0x03B9,
- ["specials"]={ "char", 0x1F30, 0x0342 },
- ["uccode"]=0x1F3E,
- ["unicodeslot"]=0x1F36, -- ἶ
+ category="ll",
+ contextname="greekiotapsiliperispomeni",
+ description="GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B9,
+ specials={ "char", 0x1F30, 0x0342 },
+ uccode=0x1F3E,
+ unicodeslot=0x1F36,
},
[0x1F37]={
- ["category"]="ll",
- ["contextname"]="greekiotadasiaperispomeni",
- ["description"]="GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI",
- ["linebreak"]="al",
- ["shcode"]=0x03B9,
- ["specials"]={ "char", 0x1F31, 0x0342 },
- ["uccode"]=0x1F3F,
- ["unicodeslot"]=0x1F37, -- ἷ
+ category="ll",
+ contextname="greekiotadasiaperispomeni",
+ description="GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B9,
+ specials={ "char", 0x1F31, 0x0342 },
+ uccode=0x1F3F,
+ unicodeslot=0x1F37,
},
[0x1F38]={
- ["category"]="lu",
- ["contextname"]="greekIotapsili",
- ["description"]="GREEK CAPITAL LETTER IOTA WITH PSILI",
- ["lccode"]=0x1F30,
- ["linebreak"]="al",
- ["shcode"]=0x0399,
- ["specials"]={ "char", 0x0399, 0x0313 },
- ["unicodeslot"]=0x1F38, -- Ἰ
+ category="lu",
+ contextname="greekIotapsili",
+ description="GREEK CAPITAL LETTER IOTA WITH PSILI",
+ direction="l",
+ lccode=0x1F30,
+ linebreak="al",
+ shcode=0x0399,
+ specials={ "char", 0x0399, 0x0313 },
+ unicodeslot=0x1F38,
},
[0x1F39]={
- ["category"]="lu",
- ["contextname"]="greekIotadasia",
- ["description"]="GREEK CAPITAL LETTER IOTA WITH DASIA",
- ["lccode"]=0x1F31,
- ["linebreak"]="al",
- ["shcode"]=0x0399,
- ["specials"]={ "char", 0x0399, 0x0314 },
- ["unicodeslot"]=0x1F39, -- Ἱ
+ category="lu",
+ contextname="greekIotadasia",
+ description="GREEK CAPITAL LETTER IOTA WITH DASIA",
+ direction="l",
+ lccode=0x1F31,
+ linebreak="al",
+ shcode=0x0399,
+ specials={ "char", 0x0399, 0x0314 },
+ unicodeslot=0x1F39,
},
[0x1F3A]={
- ["category"]="lu",
- ["contextname"]="greekIotapsilivaria",
- ["description"]="GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA",
- ["lccode"]=0x1F32,
- ["linebreak"]="al",
- ["shcode"]=0x0399,
- ["specials"]={ "char", 0x1F38, 0x0300 },
- ["unicodeslot"]=0x1F3A, -- Ἲ
+ category="lu",
+ contextname="greekIotapsilivaria",
+ description="GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA",
+ direction="l",
+ lccode=0x1F32,
+ linebreak="al",
+ shcode=0x0399,
+ specials={ "char", 0x1F38, 0x0300 },
+ unicodeslot=0x1F3A,
},
[0x1F3B]={
- ["category"]="lu",
- ["contextname"]="greekIotadasiavaria",
- ["description"]="GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA",
- ["lccode"]=0x1F33,
- ["linebreak"]="al",
- ["shcode"]=0x0399,
- ["specials"]={ "char", 0x1F39, 0x0300 },
- ["unicodeslot"]=0x1F3B, -- Ἳ
+ category="lu",
+ contextname="greekIotadasiavaria",
+ description="GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA",
+ direction="l",
+ lccode=0x1F33,
+ linebreak="al",
+ shcode=0x0399,
+ specials={ "char", 0x1F39, 0x0300 },
+ unicodeslot=0x1F3B,
},
[0x1F3C]={
- ["category"]="lu",
- ["contextname"]="greekIotapsilitonos",
- ["description"]="GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA",
- ["lccode"]=0x1F34,
- ["linebreak"]="al",
- ["shcode"]=0x0399,
- ["specials"]={ "char", 0x1F38, 0x0301 },
- ["unicodeslot"]=0x1F3C, -- Ἴ
+ category="lu",
+ contextname="greekIotapsilitonos",
+ description="GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA",
+ direction="l",
+ lccode=0x1F34,
+ linebreak="al",
+ shcode=0x0399,
+ specials={ "char", 0x1F38, 0x0301 },
+ unicodeslot=0x1F3C,
},
[0x1F3D]={
- ["category"]="lu",
- ["contextname"]="greekIotadasiatonos",
- ["description"]="GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA",
- ["lccode"]=0x1F35,
- ["linebreak"]="al",
- ["shcode"]=0x0399,
- ["specials"]={ "char", 0x1F39, 0x0301 },
- ["unicodeslot"]=0x1F3D, -- Ἵ
+ category="lu",
+ contextname="greekIotadasiatonos",
+ description="GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA",
+ direction="l",
+ lccode=0x1F35,
+ linebreak="al",
+ shcode=0x0399,
+ specials={ "char", 0x1F39, 0x0301 },
+ unicodeslot=0x1F3D,
},
[0x1F3E]={
- ["category"]="lu",
- ["contextname"]="greekIotapsiliperispomeni",
- ["description"]="GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI",
- ["lccode"]=0x1F36,
- ["linebreak"]="al",
- ["shcode"]=0x0399,
- ["specials"]={ "char", 0x1F38, 0x0342 },
- ["unicodeslot"]=0x1F3E, -- Ἶ
+ category="lu",
+ contextname="greekIotapsiliperispomeni",
+ description="GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI",
+ direction="l",
+ lccode=0x1F36,
+ linebreak="al",
+ shcode=0x0399,
+ specials={ "char", 0x1F38, 0x0342 },
+ unicodeslot=0x1F3E,
},
[0x1F3F]={
- ["category"]="lu",
- ["contextname"]="greekIotadasiaperispomeni",
- ["description"]="GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI",
- ["lccode"]=0x1F37,
- ["linebreak"]="al",
- ["shcode"]=0x0399,
- ["specials"]={ "char", 0x1F39, 0x0342 },
- ["unicodeslot"]=0x1F3F, -- Ἷ
+ category="lu",
+ contextname="greekIotadasiaperispomeni",
+ description="GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI",
+ direction="l",
+ lccode=0x1F37,
+ linebreak="al",
+ shcode=0x0399,
+ specials={ "char", 0x1F39, 0x0342 },
+ unicodeslot=0x1F3F,
},
[0x1F40]={
- ["category"]="ll",
- ["contextname"]="greekomicronpsili",
- ["description"]="GREEK SMALL LETTER OMICRON WITH PSILI",
- ["linebreak"]="al",
- ["shcode"]=0x03BF,
- ["specials"]={ "char", 0x03BF, 0x0313 },
- ["uccode"]=0x1F48,
- ["unicodeslot"]=0x1F40, -- ὀ
+ category="ll",
+ contextname="greekomicronpsili",
+ description="GREEK SMALL LETTER OMICRON WITH PSILI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03BF,
+ specials={ "char", 0x03BF, 0x0313 },
+ uccode=0x1F48,
+ unicodeslot=0x1F40,
},
[0x1F41]={
- ["category"]="ll",
- ["contextname"]="greekomicrondasia",
- ["description"]="GREEK SMALL LETTER OMICRON WITH DASIA",
- ["linebreak"]="al",
- ["shcode"]=0x03BF,
- ["specials"]={ "char", 0x03BF, 0x0314 },
- ["uccode"]=0x1F49,
- ["unicodeslot"]=0x1F41, -- ὁ
+ category="ll",
+ contextname="greekomicrondasia",
+ description="GREEK SMALL LETTER OMICRON WITH DASIA",
+ direction="l",
+ linebreak="al",
+ shcode=0x03BF,
+ specials={ "char", 0x03BF, 0x0314 },
+ uccode=0x1F49,
+ unicodeslot=0x1F41,
},
[0x1F42]={
- ["category"]="ll",
- ["contextname"]="greekomicronpsilivaria",
- ["description"]="GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA",
- ["linebreak"]="al",
- ["shcode"]=0x03BF,
- ["specials"]={ "char", 0x1F40, 0x0300 },
- ["uccode"]=0x1F4A,
- ["unicodeslot"]=0x1F42, -- ὂ
+ category="ll",
+ contextname="greekomicronpsilivaria",
+ description="GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA",
+ direction="l",
+ linebreak="al",
+ shcode=0x03BF,
+ specials={ "char", 0x1F40, 0x0300 },
+ uccode=0x1F4A,
+ unicodeslot=0x1F42,
},
[0x1F43]={
- ["category"]="ll",
- ["contextname"]="greekomicrondasiavaria",
- ["description"]="GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA",
- ["linebreak"]="al",
- ["shcode"]=0x03BF,
- ["specials"]={ "char", 0x1F41, 0x0300 },
- ["uccode"]=0x1F4B,
- ["unicodeslot"]=0x1F43, -- ὃ
+ category="ll",
+ contextname="greekomicrondasiavaria",
+ description="GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA",
+ direction="l",
+ linebreak="al",
+ shcode=0x03BF,
+ specials={ "char", 0x1F41, 0x0300 },
+ uccode=0x1F4B,
+ unicodeslot=0x1F43,
},
[0x1F44]={
- ["category"]="ll",
- ["contextname"]="greekomicronpsilitonos",
- ["description"]="GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA",
- ["linebreak"]="al",
- ["shcode"]=0x03BF,
- ["specials"]={ "char", 0x1F40, 0x0301 },
- ["uccode"]=0x1F4C,
- ["unicodeslot"]=0x1F44, -- ὄ
+ category="ll",
+ contextname="greekomicronpsilitonos",
+ description="GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA",
+ direction="l",
+ linebreak="al",
+ shcode=0x03BF,
+ specials={ "char", 0x1F40, 0x0301 },
+ uccode=0x1F4C,
+ unicodeslot=0x1F44,
},
[0x1F45]={
- ["category"]="ll",
- ["contextname"]="greekomicrondasiatonos",
- ["description"]="GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA",
- ["linebreak"]="al",
- ["shcode"]=0x03BF,
- ["specials"]={ "char", 0x1F41, 0x0301 },
- ["uccode"]=0x1F4D,
- ["unicodeslot"]=0x1F45, -- ὅ
+ category="ll",
+ contextname="greekomicrondasiatonos",
+ description="GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA",
+ direction="l",
+ linebreak="al",
+ shcode=0x03BF,
+ specials={ "char", 0x1F41, 0x0301 },
+ uccode=0x1F4D,
+ unicodeslot=0x1F45,
},
[0x1F48]={
- ["category"]="lu",
- ["contextname"]="greekOmicronpsili",
- ["description"]="GREEK CAPITAL LETTER OMICRON WITH PSILI",
- ["lccode"]=0x1F40,
- ["linebreak"]="al",
- ["shcode"]=0x039F,
- ["specials"]={ "char", 0x039F, 0x0313 },
- ["unicodeslot"]=0x1F48, -- Ὀ
+ category="lu",
+ contextname="greekOmicronpsili",
+ description="GREEK CAPITAL LETTER OMICRON WITH PSILI",
+ direction="l",
+ lccode=0x1F40,
+ linebreak="al",
+ shcode=0x039F,
+ specials={ "char", 0x039F, 0x0313 },
+ unicodeslot=0x1F48,
},
[0x1F49]={
- ["category"]="lu",
- ["contextname"]="greekOmicrondasia",
- ["description"]="GREEK CAPITAL LETTER OMICRON WITH DASIA",
- ["lccode"]=0x1F41,
- ["linebreak"]="al",
- ["shcode"]=0x039F,
- ["specials"]={ "char", 0x039F, 0x0314 },
- ["unicodeslot"]=0x1F49, -- Ὁ
+ category="lu",
+ contextname="greekOmicrondasia",
+ description="GREEK CAPITAL LETTER OMICRON WITH DASIA",
+ direction="l",
+ lccode=0x1F41,
+ linebreak="al",
+ shcode=0x039F,
+ specials={ "char", 0x039F, 0x0314 },
+ unicodeslot=0x1F49,
},
[0x1F4A]={
- ["category"]="lu",
- ["contextname"]="greekOmicronpsilivaria",
- ["description"]="GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA",
- ["lccode"]=0x1F42,
- ["linebreak"]="al",
- ["shcode"]=0x039F,
- ["specials"]={ "char", 0x1F48, 0x0300 },
- ["unicodeslot"]=0x1F4A, -- Ὂ
+ category="lu",
+ contextname="greekOmicronpsilivaria",
+ description="GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA",
+ direction="l",
+ lccode=0x1F42,
+ linebreak="al",
+ shcode=0x039F,
+ specials={ "char", 0x1F48, 0x0300 },
+ unicodeslot=0x1F4A,
},
[0x1F4B]={
- ["category"]="lu",
- ["contextname"]="greekOmicrondasiavaria",
- ["description"]="GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA",
- ["lccode"]=0x1F43,
- ["linebreak"]="al",
- ["shcode"]=0x039F,
- ["specials"]={ "char", 0x1F49, 0x0300 },
- ["unicodeslot"]=0x1F4B, -- Ὃ
+ category="lu",
+ contextname="greekOmicrondasiavaria",
+ description="GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA",
+ direction="l",
+ lccode=0x1F43,
+ linebreak="al",
+ shcode=0x039F,
+ specials={ "char", 0x1F49, 0x0300 },
+ unicodeslot=0x1F4B,
},
[0x1F4C]={
- ["category"]="lu",
- ["contextname"]="greekOmicronpsilitonos",
- ["description"]="GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA",
- ["lccode"]=0x1F44,
- ["linebreak"]="al",
- ["shcode"]=0x039F,
- ["specials"]={ "char", 0x1F48, 0x0301 },
- ["unicodeslot"]=0x1F4C, -- Ὄ
+ category="lu",
+ contextname="greekOmicronpsilitonos",
+ description="GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA",
+ direction="l",
+ lccode=0x1F44,
+ linebreak="al",
+ shcode=0x039F,
+ specials={ "char", 0x1F48, 0x0301 },
+ unicodeslot=0x1F4C,
},
[0x1F4D]={
- ["category"]="lu",
- ["contextname"]="greekOmicrondasiatonos",
- ["description"]="GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA",
- ["lccode"]=0x1F45,
- ["linebreak"]="al",
- ["shcode"]=0x039F,
- ["specials"]={ "char", 0x1F49, 0x0301 },
- ["unicodeslot"]=0x1F4D, -- Ὅ
+ category="lu",
+ contextname="greekOmicrondasiatonos",
+ description="GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA",
+ direction="l",
+ lccode=0x1F45,
+ linebreak="al",
+ shcode=0x039F,
+ specials={ "char", 0x1F49, 0x0301 },
+ unicodeslot=0x1F4D,
},
[0x1F50]={
- ["category"]="ll",
- ["contextname"]="greekupsilonpsili",
- ["description"]="GREEK SMALL LETTER UPSILON WITH PSILI",
- ["linebreak"]="al",
- ["shcode"]=0x03C5,
- ["specials"]={ "char", 0x03C5, 0x0313 },
- ["unicodeslot"]=0x1F50, -- ὐ
+ category="ll",
+ contextname="greekupsilonpsili",
+ description="GREEK SMALL LETTER UPSILON WITH PSILI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03C5,
+ specials={ "char", 0x03C5, 0x0313 },
+ unicodeslot=0x1F50,
},
[0x1F51]={
- ["category"]="ll",
- ["contextname"]="greekupsilondasia",
- ["description"]="GREEK SMALL LETTER UPSILON WITH DASIA",
- ["linebreak"]="al",
- ["shcode"]=0x03C5,
- ["specials"]={ "char", 0x03C5, 0x0314 },
- ["uccode"]=0x1F59,
- ["unicodeslot"]=0x1F51, -- ὑ
+ category="ll",
+ contextname="greekupsilondasia",
+ description="GREEK SMALL LETTER UPSILON WITH DASIA",
+ direction="l",
+ linebreak="al",
+ shcode=0x03C5,
+ specials={ "char", 0x03C5, 0x0314 },
+ uccode=0x1F59,
+ unicodeslot=0x1F51,
},
[0x1F52]={
- ["category"]="ll",
- ["contextname"]="greekupsilonpsilivaria",
- ["description"]="GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA",
- ["linebreak"]="al",
- ["shcode"]=0x03C5,
- ["specials"]={ "char", 0x1F50, 0x0300 },
- ["unicodeslot"]=0x1F52, -- ὒ
+ category="ll",
+ contextname="greekupsilonpsilivaria",
+ description="GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA",
+ direction="l",
+ linebreak="al",
+ shcode=0x03C5,
+ specials={ "char", 0x1F50, 0x0300 },
+ unicodeslot=0x1F52,
},
[0x1F53]={
- ["category"]="ll",
- ["contextname"]="greekupsilondasiavaria",
- ["description"]="GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA",
- ["linebreak"]="al",
- ["shcode"]=0x03C5,
- ["specials"]={ "char", 0x1F51, 0x0300 },
- ["uccode"]=0x1F5B,
- ["unicodeslot"]=0x1F53, -- ὓ
+ category="ll",
+ contextname="greekupsilondasiavaria",
+ description="GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA",
+ direction="l",
+ linebreak="al",
+ shcode=0x03C5,
+ specials={ "char", 0x1F51, 0x0300 },
+ uccode=0x1F5B,
+ unicodeslot=0x1F53,
},
[0x1F54]={
- ["category"]="ll",
- ["contextname"]="greekupsilonpsilitonos",
- ["description"]="GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA",
- ["linebreak"]="al",
- ["shcode"]=0x03C5,
- ["specials"]={ "char", 0x1F50, 0x0301 },
- ["unicodeslot"]=0x1F54, -- ὔ
+ category="ll",
+ contextname="greekupsilonpsilitonos",
+ description="GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA",
+ direction="l",
+ linebreak="al",
+ shcode=0x03C5,
+ specials={ "char", 0x1F50, 0x0301 },
+ unicodeslot=0x1F54,
},
[0x1F55]={
- ["category"]="ll",
- ["contextname"]="greekupsilondasiatonos",
- ["description"]="GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA",
- ["linebreak"]="al",
- ["shcode"]=0x03C5,
- ["specials"]={ "char", 0x1F51, 0x0301 },
- ["uccode"]=0x1F5D,
- ["unicodeslot"]=0x1F55, -- ὕ
+ category="ll",
+ contextname="greekupsilondasiatonos",
+ description="GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA",
+ direction="l",
+ linebreak="al",
+ shcode=0x03C5,
+ specials={ "char", 0x1F51, 0x0301 },
+ uccode=0x1F5D,
+ unicodeslot=0x1F55,
},
[0x1F56]={
- ["category"]="ll",
- ["contextname"]="greekupsilonpsiliperispomeni",
- ["description"]="GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI",
- ["linebreak"]="al",
- ["shcode"]=0x03C5,
- ["specials"]={ "char", 0x1F50, 0x0342 },
- ["unicodeslot"]=0x1F56, -- ὖ
+ category="ll",
+ contextname="greekupsilonpsiliperispomeni",
+ description="GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03C5,
+ specials={ "char", 0x1F50, 0x0342 },
+ unicodeslot=0x1F56,
},
[0x1F57]={
- ["category"]="ll",
- ["contextname"]="greekupsilondasiaperispomeni",
- ["description"]="GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI",
- ["linebreak"]="al",
- ["shcode"]=0x03C5,
- ["specials"]={ "char", 0x1F51, 0x0342 },
- ["uccode"]=0x1F5F,
- ["unicodeslot"]=0x1F57, -- ὗ
+ category="ll",
+ contextname="greekupsilondasiaperispomeni",
+ description="GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03C5,
+ specials={ "char", 0x1F51, 0x0342 },
+ uccode=0x1F5F,
+ unicodeslot=0x1F57,
},
[0x1F59]={
- ["category"]="lu",
- ["contextname"]="greekUpsilondasia",
- ["description"]="GREEK CAPITAL LETTER UPSILON WITH DASIA",
- ["lccode"]=0x1F51,
- ["linebreak"]="al",
- ["shcode"]=0x03A5,
- ["specials"]={ "char", 0x03A5, 0x0314 },
- ["unicodeslot"]=0x1F59, -- Ὑ
+ category="lu",
+ contextname="greekUpsilondasia",
+ description="GREEK CAPITAL LETTER UPSILON WITH DASIA",
+ direction="l",
+ lccode=0x1F51,
+ linebreak="al",
+ shcode=0x03A5,
+ specials={ "char", 0x03A5, 0x0314 },
+ unicodeslot=0x1F59,
},
[0x1F5B]={
- ["category"]="lu",
- ["contextname"]="greekUpsilondasiavaria",
- ["description"]="GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA",
- ["lccode"]=0x1F53,
- ["linebreak"]="al",
- ["shcode"]=0x03A5,
- ["specials"]={ "char", 0x1F59, 0x0300 },
- ["unicodeslot"]=0x1F5B, -- Ὓ
+ category="lu",
+ contextname="greekUpsilondasiavaria",
+ description="GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA",
+ direction="l",
+ lccode=0x1F53,
+ linebreak="al",
+ shcode=0x03A5,
+ specials={ "char", 0x1F59, 0x0300 },
+ unicodeslot=0x1F5B,
},
[0x1F5D]={
- ["category"]="lu",
- ["contextname"]="greekUpsilondasiatonos",
- ["description"]="GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA",
- ["lccode"]=0x1F55,
- ["linebreak"]="al",
- ["shcode"]=0x03A5,
- ["specials"]={ "char", 0x1F59, 0x0301 },
- ["unicodeslot"]=0x1F5D, -- Ὕ
+ category="lu",
+ contextname="greekUpsilondasiatonos",
+ description="GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA",
+ direction="l",
+ lccode=0x1F55,
+ linebreak="al",
+ shcode=0x03A5,
+ specials={ "char", 0x1F59, 0x0301 },
+ unicodeslot=0x1F5D,
},
[0x1F5F]={
- ["category"]="lu",
- ["contextname"]="greekUpsilondasiaperispomeni",
- ["description"]="GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI",
- ["lccode"]=0x1F57,
- ["linebreak"]="al",
- ["shcode"]=0x03A5,
- ["specials"]={ "char", 0x1F59, 0x0342 },
- ["unicodeslot"]=0x1F5F, -- Ὗ
+ category="lu",
+ contextname="greekUpsilondasiaperispomeni",
+ description="GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI",
+ direction="l",
+ lccode=0x1F57,
+ linebreak="al",
+ shcode=0x03A5,
+ specials={ "char", 0x1F59, 0x0342 },
+ unicodeslot=0x1F5F,
},
[0x1F60]={
- ["category"]="ll",
- ["contextname"]="greekomegapsili",
- ["description"]="GREEK SMALL LETTER OMEGA WITH PSILI",
- ["linebreak"]="al",
- ["shcode"]=0x03C9,
- ["specials"]={ "char", 0x03C9, 0x0313 },
- ["uccode"]=0x1F68,
- ["unicodeslot"]=0x1F60, -- ὠ
+ category="ll",
+ contextname="greekomegapsili",
+ description="GREEK SMALL LETTER OMEGA WITH PSILI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03C9,
+ specials={ "char", 0x03C9, 0x0313 },
+ uccode=0x1F68,
+ unicodeslot=0x1F60,
},
[0x1F61]={
- ["category"]="ll",
- ["contextname"]="greekomegadasia",
- ["description"]="GREEK SMALL LETTER OMEGA WITH DASIA",
- ["linebreak"]="al",
- ["shcode"]=0x03C9,
- ["specials"]={ "char", 0x03C9, 0x0314 },
- ["uccode"]=0x1F69,
- ["unicodeslot"]=0x1F61, -- ὡ
+ category="ll",
+ contextname="greekomegadasia",
+ description="GREEK SMALL LETTER OMEGA WITH DASIA",
+ direction="l",
+ linebreak="al",
+ shcode=0x03C9,
+ specials={ "char", 0x03C9, 0x0314 },
+ uccode=0x1F69,
+ unicodeslot=0x1F61,
},
[0x1F62]={
- ["category"]="ll",
- ["contextname"]="greekomegapsilivaria",
- ["description"]="GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA",
- ["linebreak"]="al",
- ["shcode"]=0x03C9,
- ["specials"]={ "char", 0x1F60, 0x0300 },
- ["uccode"]=0x1F6A,
- ["unicodeslot"]=0x1F62, -- ὢ
+ category="ll",
+ contextname="greekomegapsilivaria",
+ description="GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA",
+ direction="l",
+ linebreak="al",
+ shcode=0x03C9,
+ specials={ "char", 0x1F60, 0x0300 },
+ uccode=0x1F6A,
+ unicodeslot=0x1F62,
},
[0x1F63]={
- ["category"]="ll",
- ["contextname"]="greekomegadasiavaria",
- ["description"]="GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA",
- ["linebreak"]="al",
- ["shcode"]=0x03C9,
- ["specials"]={ "char", 0x1F61, 0x0300 },
- ["uccode"]=0x1F6B,
- ["unicodeslot"]=0x1F63, -- ὣ
+ category="ll",
+ contextname="greekomegadasiavaria",
+ description="GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA",
+ direction="l",
+ linebreak="al",
+ shcode=0x03C9,
+ specials={ "char", 0x1F61, 0x0300 },
+ uccode=0x1F6B,
+ unicodeslot=0x1F63,
},
[0x1F64]={
- ["category"]="ll",
- ["contextname"]="greekomegapsilitonos",
- ["description"]="GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA",
- ["linebreak"]="al",
- ["shcode"]=0x03C9,
- ["specials"]={ "char", 0x1F60, 0x0301 },
- ["uccode"]=0x1F6C,
- ["unicodeslot"]=0x1F64, -- ὤ
+ category="ll",
+ contextname="greekomegapsilitonos",
+ description="GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA",
+ direction="l",
+ linebreak="al",
+ shcode=0x03C9,
+ specials={ "char", 0x1F60, 0x0301 },
+ uccode=0x1F6C,
+ unicodeslot=0x1F64,
},
[0x1F65]={
- ["category"]="ll",
- ["contextname"]="greekomegadasiatonos",
- ["description"]="GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA",
- ["linebreak"]="al",
- ["shcode"]=0x03C9,
- ["specials"]={ "char", 0x1F61, 0x0301 },
- ["uccode"]=0x1F6D,
- ["unicodeslot"]=0x1F65, -- ὥ
+ category="ll",
+ contextname="greekomegadasiatonos",
+ description="GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA",
+ direction="l",
+ linebreak="al",
+ shcode=0x03C9,
+ specials={ "char", 0x1F61, 0x0301 },
+ uccode=0x1F6D,
+ unicodeslot=0x1F65,
},
[0x1F66]={
- ["category"]="ll",
- ["contextname"]="greekomegapsiliperispomeni",
- ["description"]="GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI",
- ["linebreak"]="al",
- ["shcode"]=0x03C9,
- ["specials"]={ "char", 0x1F60, 0x0342 },
- ["uccode"]=0x1F6E,
- ["unicodeslot"]=0x1F66, -- ὦ
+ category="ll",
+ contextname="greekomegapsiliperispomeni",
+ description="GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03C9,
+ specials={ "char", 0x1F60, 0x0342 },
+ uccode=0x1F6E,
+ unicodeslot=0x1F66,
},
[0x1F67]={
- ["category"]="ll",
- ["contextname"]="greekomegadasiaperispomeni",
- ["description"]="GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI",
- ["linebreak"]="al",
- ["shcode"]=0x03C9,
- ["specials"]={ "char", 0x1F61, 0x0342 },
- ["uccode"]=0x1F6F,
- ["unicodeslot"]=0x1F67, -- ὧ
+ category="ll",
+ contextname="greekomegadasiaperispomeni",
+ description="GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03C9,
+ specials={ "char", 0x1F61, 0x0342 },
+ uccode=0x1F6F,
+ unicodeslot=0x1F67,
},
[0x1F68]={
- ["category"]="lu",
- ["contextname"]="greekOmegapsili",
- ["description"]="GREEK CAPITAL LETTER OMEGA WITH PSILI",
- ["lccode"]=0x1F60,
- ["linebreak"]="al",
- ["shcode"]=0x03A9,
- ["specials"]={ "char", 0x03A9, 0x0313 },
- ["unicodeslot"]=0x1F68, -- Ὠ
+ category="lu",
+ contextname="greekOmegapsili",
+ description="GREEK CAPITAL LETTER OMEGA WITH PSILI",
+ direction="l",
+ lccode=0x1F60,
+ linebreak="al",
+ shcode=0x03A9,
+ specials={ "char", 0x03A9, 0x0313 },
+ unicodeslot=0x1F68,
},
[0x1F69]={
- ["category"]="lu",
- ["contextname"]="greekOmegadasia",
- ["description"]="GREEK CAPITAL LETTER OMEGA WITH DASIA",
- ["lccode"]=0x1F61,
- ["linebreak"]="al",
- ["shcode"]=0x03A9,
- ["specials"]={ "char", 0x03A9, 0x0314 },
- ["unicodeslot"]=0x1F69, -- Ὡ
+ category="lu",
+ contextname="greekOmegadasia",
+ description="GREEK CAPITAL LETTER OMEGA WITH DASIA",
+ direction="l",
+ lccode=0x1F61,
+ linebreak="al",
+ shcode=0x03A9,
+ specials={ "char", 0x03A9, 0x0314 },
+ unicodeslot=0x1F69,
},
[0x1F6A]={
- ["category"]="lu",
- ["contextname"]="greekOmegapsilivaria",
- ["description"]="GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA",
- ["lccode"]=0x1F62,
- ["linebreak"]="al",
- ["shcode"]=0x03A9,
- ["specials"]={ "char", 0x1F68, 0x0300 },
- ["unicodeslot"]=0x1F6A, -- Ὢ
+ category="lu",
+ contextname="greekOmegapsilivaria",
+ description="GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA",
+ direction="l",
+ lccode=0x1F62,
+ linebreak="al",
+ shcode=0x03A9,
+ specials={ "char", 0x1F68, 0x0300 },
+ unicodeslot=0x1F6A,
},
[0x1F6B]={
- ["category"]="lu",
- ["contextname"]="greekOmegadasiavaria",
- ["description"]="GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA",
- ["lccode"]=0x1F63,
- ["linebreak"]="al",
- ["shcode"]=0x03A9,
- ["specials"]={ "char", 0x1F69, 0x0300 },
- ["unicodeslot"]=0x1F6B, -- Ὣ
+ category="lu",
+ contextname="greekOmegadasiavaria",
+ description="GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA",
+ direction="l",
+ lccode=0x1F63,
+ linebreak="al",
+ shcode=0x03A9,
+ specials={ "char", 0x1F69, 0x0300 },
+ unicodeslot=0x1F6B,
},
[0x1F6C]={
- ["category"]="lu",
- ["contextname"]="greekOmegapsilitonos",
- ["description"]="GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA",
- ["lccode"]=0x1F64,
- ["linebreak"]="al",
- ["shcode"]=0x03A9,
- ["specials"]={ "char", 0x1F68, 0x0301 },
- ["unicodeslot"]=0x1F6C, -- Ὤ
+ category="lu",
+ contextname="greekOmegapsilitonos",
+ description="GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA",
+ direction="l",
+ lccode=0x1F64,
+ linebreak="al",
+ shcode=0x03A9,
+ specials={ "char", 0x1F68, 0x0301 },
+ unicodeslot=0x1F6C,
},
[0x1F6D]={
- ["category"]="lu",
- ["contextname"]="greekOmegadasiatonos",
- ["description"]="GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA",
- ["lccode"]=0x1F65,
- ["linebreak"]="al",
- ["shcode"]=0x03A9,
- ["specials"]={ "char", 0x1F69, 0x0301 },
- ["unicodeslot"]=0x1F6D, -- Ὥ
+ category="lu",
+ contextname="greekOmegadasiatonos",
+ description="GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA",
+ direction="l",
+ lccode=0x1F65,
+ linebreak="al",
+ shcode=0x03A9,
+ specials={ "char", 0x1F69, 0x0301 },
+ unicodeslot=0x1F6D,
},
[0x1F6E]={
- ["category"]="lu",
- ["contextname"]="greekOmegapsiliperispomeni",
- ["description"]="GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI",
- ["lccode"]=0x1F66,
- ["linebreak"]="al",
- ["shcode"]=0x03A9,
- ["specials"]={ "char", 0x1F68, 0x0342 },
- ["unicodeslot"]=0x1F6E, -- Ὦ
+ category="lu",
+ contextname="greekOmegapsiliperispomeni",
+ description="GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI",
+ direction="l",
+ lccode=0x1F66,
+ linebreak="al",
+ shcode=0x03A9,
+ specials={ "char", 0x1F68, 0x0342 },
+ unicodeslot=0x1F6E,
},
[0x1F6F]={
- ["category"]="lu",
- ["contextname"]="greekOmegadasiaperispomeni",
- ["description"]="GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI",
- ["lccode"]=0x1F67,
- ["linebreak"]="al",
- ["shcode"]=0x03A9,
- ["specials"]={ "char", 0x1F69, 0x0342 },
- ["unicodeslot"]=0x1F6F, -- Ὧ
+ category="lu",
+ contextname="greekOmegadasiaperispomeni",
+ description="GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI",
+ direction="l",
+ lccode=0x1F67,
+ linebreak="al",
+ shcode=0x03A9,
+ specials={ "char", 0x1F69, 0x0342 },
+ unicodeslot=0x1F6F,
},
[0x1F70]={
- ["category"]="ll",
- ["contextname"]="greekalphavaria",
- ["description"]="GREEK SMALL LETTER ALPHA WITH VARIA",
- ["linebreak"]="al",
- ["shcode"]=0x03B1,
- ["specials"]={ "char", 0x03B1, 0x0300 },
- ["uccode"]=0x1FBA,
- ["unicodeslot"]=0x1F70, -- ὰ
+ category="ll",
+ contextname="greekalphavaria",
+ description="GREEK SMALL LETTER ALPHA WITH VARIA",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B1,
+ specials={ "char", 0x03B1, 0x0300 },
+ uccode=0x1FBA,
+ unicodeslot=0x1F70,
},
[0x1F71]={
- ["category"]="ll",
- ["contextname"]="greekalphaoxia",
- ["description"]="GREEK SMALL LETTER ALPHA WITH OXIA",
- ["linebreak"]="al",
- ["shcode"]=0x03B1,
- ["specials"]={ "char", 0x03AC },
- ["uccode"]=0x1FBB,
- ["unicodeslot"]=0x1F71, -- ά
+ category="ll",
+ contextname="greekalphaoxia",
+ description="GREEK SMALL LETTER ALPHA WITH OXIA",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B1,
+ specials={ "char", 0x03AC },
+ uccode=0x1FBB,
+ unicodeslot=0x1F71,
},
[0x1F72]={
- ["category"]="ll",
- ["contextname"]="greekepsilonvaria",
- ["description"]="GREEK SMALL LETTER EPSILON WITH VARIA",
- ["linebreak"]="al",
- ["shcode"]=0x03B5,
- ["specials"]={ "char", 0x03B5, 0x0300 },
- ["uccode"]=0x1FC8,
- ["unicodeslot"]=0x1F72, -- ὲ
+ category="ll",
+ contextname="greekepsilonvaria",
+ description="GREEK SMALL LETTER EPSILON WITH VARIA",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B5,
+ specials={ "char", 0x03B5, 0x0300 },
+ uccode=0x1FC8,
+ unicodeslot=0x1F72,
},
[0x1F73]={
- ["category"]="ll",
- ["contextname"]="greekepsilonoxia",
- ["description"]="GREEK SMALL LETTER EPSILON WITH OXIA",
- ["linebreak"]="al",
- ["shcode"]=0x03B5,
- ["specials"]={ "char", 0x03AD },
- ["uccode"]=0x1FC9,
- ["unicodeslot"]=0x1F73, -- έ
+ category="ll",
+ contextname="greekepsilonoxia",
+ description="GREEK SMALL LETTER EPSILON WITH OXIA",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B5,
+ specials={ "char", 0x03AD },
+ uccode=0x1FC9,
+ unicodeslot=0x1F73,
},
[0x1F74]={
- ["category"]="ll",
- ["contextname"]="greeketavaria",
- ["description"]="GREEK SMALL LETTER ETA WITH VARIA",
- ["linebreak"]="al",
- ["shcode"]=0x03B7,
- ["specials"]={ "char", 0x03B7, 0x0300 },
- ["uccode"]=0x1FCA,
- ["unicodeslot"]=0x1F74, -- ὴ
+ category="ll",
+ contextname="greeketavaria",
+ description="GREEK SMALL LETTER ETA WITH VARIA",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B7,
+ specials={ "char", 0x03B7, 0x0300 },
+ uccode=0x1FCA,
+ unicodeslot=0x1F74,
},
[0x1F75]={
- ["category"]="ll",
- ["contextname"]="greeketaoxia",
- ["description"]="GREEK SMALL LETTER ETA WITH OXIA",
- ["linebreak"]="al",
- ["shcode"]=0x03B7,
- ["specials"]={ "char", 0x03AE },
- ["uccode"]=0x1FCB,
- ["unicodeslot"]=0x1F75, -- ή
+ category="ll",
+ contextname="greeketaoxia",
+ description="GREEK SMALL LETTER ETA WITH OXIA",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B7,
+ specials={ "char", 0x03AE },
+ uccode=0x1FCB,
+ unicodeslot=0x1F75,
},
[0x1F76]={
- ["category"]="ll",
- ["contextname"]="greekiotavaria",
- ["description"]="GREEK SMALL LETTER IOTA WITH VARIA",
- ["linebreak"]="al",
- ["shcode"]=0x03B9,
- ["specials"]={ "char", 0x03B9, 0x0300 },
- ["uccode"]=0x1FDA,
- ["unicodeslot"]=0x1F76, -- ὶ
+ category="ll",
+ contextname="greekiotavaria",
+ description="GREEK SMALL LETTER IOTA WITH VARIA",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B9,
+ specials={ "char", 0x03B9, 0x0300 },
+ uccode=0x1FDA,
+ unicodeslot=0x1F76,
},
[0x1F77]={
- ["category"]="ll",
- ["contextname"]="greekiotaoxia",
- ["description"]="GREEK SMALL LETTER IOTA WITH OXIA",
- ["linebreak"]="al",
- ["shcode"]=0x03B9,
- ["specials"]={ "char", 0x03AF },
- ["uccode"]=0x1FDB,
- ["unicodeslot"]=0x1F77, -- ί
+ category="ll",
+ contextname="greekiotaoxia",
+ description="GREEK SMALL LETTER IOTA WITH OXIA",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B9,
+ specials={ "char", 0x03AF },
+ uccode=0x1FDB,
+ unicodeslot=0x1F77,
},
[0x1F78]={
- ["category"]="ll",
- ["contextname"]="greekomicronvaria",
- ["description"]="GREEK SMALL LETTER OMICRON WITH VARIA",
- ["linebreak"]="al",
- ["shcode"]=0x03BF,
- ["specials"]={ "char", 0x03BF, 0x0300 },
- ["uccode"]=0x1FF8,
- ["unicodeslot"]=0x1F78, -- ὸ
+ category="ll",
+ contextname="greekomicronvaria",
+ description="GREEK SMALL LETTER OMICRON WITH VARIA",
+ direction="l",
+ linebreak="al",
+ shcode=0x03BF,
+ specials={ "char", 0x03BF, 0x0300 },
+ uccode=0x1FF8,
+ unicodeslot=0x1F78,
},
[0x1F79]={
- ["category"]="ll",
- ["contextname"]="greekomicronoxia",
- ["description"]="GREEK SMALL LETTER OMICRON WITH OXIA",
- ["linebreak"]="al",
- ["shcode"]=0x03BF,
- ["specials"]={ "char", 0x03CC },
- ["uccode"]=0x1FF9,
- ["unicodeslot"]=0x1F79, -- ό
+ category="ll",
+ contextname="greekomicronoxia",
+ description="GREEK SMALL LETTER OMICRON WITH OXIA",
+ direction="l",
+ linebreak="al",
+ shcode=0x03BF,
+ specials={ "char", 0x03CC },
+ uccode=0x1FF9,
+ unicodeslot=0x1F79,
},
[0x1F7A]={
- ["category"]="ll",
- ["contextname"]="greekupsilonvaria",
- ["description"]="GREEK SMALL LETTER UPSILON WITH VARIA",
- ["linebreak"]="al",
- ["shcode"]=0x03C5,
- ["specials"]={ "char", 0x03C5, 0x0300 },
- ["uccode"]=0x1FEA,
- ["unicodeslot"]=0x1F7A, -- ὺ
+ category="ll",
+ contextname="greekupsilonvaria",
+ description="GREEK SMALL LETTER UPSILON WITH VARIA",
+ direction="l",
+ linebreak="al",
+ shcode=0x03C5,
+ specials={ "char", 0x03C5, 0x0300 },
+ uccode=0x1FEA,
+ unicodeslot=0x1F7A,
},
[0x1F7B]={
- ["category"]="ll",
- ["contextname"]="greekupsilonoxia",
- ["description"]="GREEK SMALL LETTER UPSILON WITH OXIA",
- ["linebreak"]="al",
- ["shcode"]=0x03C5,
- ["specials"]={ "char", 0x03CD },
- ["uccode"]=0x1FEB,
- ["unicodeslot"]=0x1F7B, -- ύ
+ category="ll",
+ contextname="greekupsilonoxia",
+ description="GREEK SMALL LETTER UPSILON WITH OXIA",
+ direction="l",
+ linebreak="al",
+ shcode=0x03C5,
+ specials={ "char", 0x03CD },
+ uccode=0x1FEB,
+ unicodeslot=0x1F7B,
},
[0x1F7C]={
- ["category"]="ll",
- ["contextname"]="greekomegavaria",
- ["description"]="GREEK SMALL LETTER OMEGA WITH VARIA",
- ["linebreak"]="al",
- ["shcode"]=0x03C9,
- ["specials"]={ "char", 0x03C9, 0x0300 },
- ["uccode"]=0x1FFA,
- ["unicodeslot"]=0x1F7C, -- ὼ
+ category="ll",
+ contextname="greekomegavaria",
+ description="GREEK SMALL LETTER OMEGA WITH VARIA",
+ direction="l",
+ linebreak="al",
+ shcode=0x03C9,
+ specials={ "char", 0x03C9, 0x0300 },
+ uccode=0x1FFA,
+ unicodeslot=0x1F7C,
},
[0x1F7D]={
- ["category"]="ll",
- ["contextname"]="greekomegaoxia",
- ["description"]="GREEK SMALL LETTER OMEGA WITH OXIA",
- ["linebreak"]="al",
- ["shcode"]=0x03C9,
- ["specials"]={ "char", 0x03CE },
- ["uccode"]=0x1FFB,
- ["unicodeslot"]=0x1F7D, -- ώ
+ category="ll",
+ contextname="greekomegaoxia",
+ description="GREEK SMALL LETTER OMEGA WITH OXIA",
+ direction="l",
+ linebreak="al",
+ shcode=0x03C9,
+ specials={ "char", 0x03CE },
+ uccode=0x1FFB,
+ unicodeslot=0x1F7D,
},
[0x1F80]={
- ["category"]="ll",
- ["contextname"]="greekalphaiotasubpsili",
- ["description"]="GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI",
- ["linebreak"]="al",
- ["shcode"]=0x03B1,
- ["specials"]={ "char", 0x1F00, 0x0345 },
- ["uccode"]=0x1F88,
- ["unicodeslot"]=0x1F80, -- ᾀ
+ category="ll",
+ contextname="greekalphaiotasubpsili",
+ description="GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B1,
+ specials={ "char", 0x1F00, 0x0345 },
+ uccode=0x1F88,
+ unicodeslot=0x1F80,
},
[0x1F81]={
- ["category"]="ll",
- ["contextname"]="greekalphaiotasubdasia",
- ["description"]="GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI",
- ["linebreak"]="al",
- ["shcode"]=0x03B1,
- ["specials"]={ "char", 0x1F01, 0x0345 },
- ["uccode"]=0x1F89,
- ["unicodeslot"]=0x1F81, -- ᾁ
+ category="ll",
+ contextname="greekalphaiotasubdasia",
+ description="GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B1,
+ specials={ "char", 0x1F01, 0x0345 },
+ uccode=0x1F89,
+ unicodeslot=0x1F81,
},
[0x1F82]={
- ["category"]="ll",
- ["contextname"]="greekalphaiotasubpsilivaria",
- ["description"]="GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI",
- ["linebreak"]="al",
- ["shcode"]=0x03B1,
- ["specials"]={ "char", 0x1F02, 0x0345 },
- ["uccode"]=0x1F8A,
- ["unicodeslot"]=0x1F82, -- ᾂ
+ category="ll",
+ contextname="greekalphaiotasubpsilivaria",
+ description="GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B1,
+ specials={ "char", 0x1F02, 0x0345 },
+ uccode=0x1F8A,
+ unicodeslot=0x1F82,
},
[0x1F83]={
- ["category"]="ll",
- ["contextname"]="greekalphaiotasubdasiavaria",
- ["description"]="GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI",
- ["linebreak"]="al",
- ["shcode"]=0x03B1,
- ["specials"]={ "char", 0x1F03, 0x0345 },
- ["uccode"]=0x1F8B,
- ["unicodeslot"]=0x1F83, -- ᾃ
+ category="ll",
+ contextname="greekalphaiotasubdasiavaria",
+ description="GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B1,
+ specials={ "char", 0x1F03, 0x0345 },
+ uccode=0x1F8B,
+ unicodeslot=0x1F83,
},
[0x1F84]={
- ["category"]="ll",
- ["contextname"]="greekalphaiotasubpsilitonos",
- ["description"]="GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI",
- ["linebreak"]="al",
- ["shcode"]=0x03B1,
- ["specials"]={ "char", 0x1F04, 0x0345 },
- ["uccode"]=0x1F8C,
- ["unicodeslot"]=0x1F84, -- ᾄ
+ category="ll",
+ contextname="greekalphaiotasubpsilitonos",
+ description="GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B1,
+ specials={ "char", 0x1F04, 0x0345 },
+ uccode=0x1F8C,
+ unicodeslot=0x1F84,
},
[0x1F85]={
- ["category"]="ll",
- ["contextname"]="greekalphaiotasubdasiatonos",
- ["description"]="GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI",
- ["linebreak"]="al",
- ["shcode"]=0x03B1,
- ["specials"]={ "char", 0x1F05, 0x0345 },
- ["uccode"]=0x1F8D,
- ["unicodeslot"]=0x1F85, -- ᾅ
+ category="ll",
+ contextname="greekalphaiotasubdasiatonos",
+ description="GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B1,
+ specials={ "char", 0x1F05, 0x0345 },
+ uccode=0x1F8D,
+ unicodeslot=0x1F85,
},
[0x1F86]={
- ["category"]="ll",
- ["contextname"]="greekalphaiotasubpsiliperispomeni",
- ["description"]="GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI",
- ["linebreak"]="al",
- ["shcode"]=0x03B1,
- ["specials"]={ "char", 0x1F06, 0x0345 },
- ["uccode"]=0x1F8E,
- ["unicodeslot"]=0x1F86, -- ᾆ
+ category="ll",
+ contextname="greekalphaiotasubpsiliperispomeni",
+ description="GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B1,
+ specials={ "char", 0x1F06, 0x0345 },
+ uccode=0x1F8E,
+ unicodeslot=0x1F86,
},
[0x1F87]={
- ["category"]="ll",
- ["contextname"]="greekalphaiotasubdasiaperispomeni",
- ["description"]="GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI",
- ["linebreak"]="al",
- ["shcode"]=0x03B1,
- ["specials"]={ "char", 0x1F07, 0x0345 },
- ["uccode"]=0x1F8F,
- ["unicodeslot"]=0x1F87, -- ᾇ
+ category="ll",
+ contextname="greekalphaiotasubdasiaperispomeni",
+ description="GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B1,
+ specials={ "char", 0x1F07, 0x0345 },
+ uccode=0x1F8F,
+ unicodeslot=0x1F87,
},
[0x1F88]={
- ["category"]="lt",
- ["contextname"]="greekAlphaiotasubpsili",
- ["description"]="GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI",
- ["lccode"]=0x1F80,
- ["linebreak"]="al",
- ["shcode"]=0x0391,
- ["specials"]={ "char", 0x1F08, 0x0345 },
- ["unicodeslot"]=0x1F88, -- ᾈ
+ category="lt",
+ contextname="greekAlphaiotasubpsili",
+ description="GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI",
+ direction="l",
+ lccode=0x1F80,
+ linebreak="al",
+ shcode=0x0391,
+ specials={ "char", 0x1F08, 0x0345 },
+ unicodeslot=0x1F88,
},
[0x1F89]={
- ["category"]="lt",
- ["contextname"]="greekAlphaiotasubdasia",
- ["description"]="GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI",
- ["lccode"]=0x1F81,
- ["linebreak"]="al",
- ["shcode"]=0x0391,
- ["specials"]={ "char", 0x1F09, 0x0345 },
- ["unicodeslot"]=0x1F89, -- ᾉ
+ category="lt",
+ contextname="greekAlphaiotasubdasia",
+ description="GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI",
+ direction="l",
+ lccode=0x1F81,
+ linebreak="al",
+ shcode=0x0391,
+ specials={ "char", 0x1F09, 0x0345 },
+ unicodeslot=0x1F89,
},
[0x1F8A]={
- ["category"]="lt",
- ["contextname"]="greekAlphaiotasubpsilivaria",
- ["description"]="GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI",
- ["lccode"]=0x1F82,
- ["linebreak"]="al",
- ["shcode"]=0x0391,
- ["specials"]={ "char", 0x1F0A, 0x0345 },
- ["unicodeslot"]=0x1F8A, -- ᾊ
+ category="lt",
+ contextname="greekAlphaiotasubpsilivaria",
+ description="GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI",
+ direction="l",
+ lccode=0x1F82,
+ linebreak="al",
+ shcode=0x0391,
+ specials={ "char", 0x1F0A, 0x0345 },
+ unicodeslot=0x1F8A,
},
[0x1F8B]={
- ["category"]="lt",
- ["contextname"]="greekAlphaiotasubdasiavaria",
- ["description"]="GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI",
- ["lccode"]=0x1F83,
- ["linebreak"]="al",
- ["shcode"]=0x0391,
- ["specials"]={ "char", 0x1F0B, 0x0345 },
- ["unicodeslot"]=0x1F8B, -- ᾋ
+ category="lt",
+ contextname="greekAlphaiotasubdasiavaria",
+ description="GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI",
+ direction="l",
+ lccode=0x1F83,
+ linebreak="al",
+ shcode=0x0391,
+ specials={ "char", 0x1F0B, 0x0345 },
+ unicodeslot=0x1F8B,
},
[0x1F8C]={
- ["category"]="lt",
- ["contextname"]="greekAlphaiotasubpsilitonos",
- ["description"]="GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI",
- ["lccode"]=0x1F84,
- ["linebreak"]="al",
- ["shcode"]=0x0391,
- ["specials"]={ "char", 0x1F0C, 0x0345 },
- ["unicodeslot"]=0x1F8C, -- ᾌ
+ category="lt",
+ contextname="greekAlphaiotasubpsilitonos",
+ description="GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI",
+ direction="l",
+ lccode=0x1F84,
+ linebreak="al",
+ shcode=0x0391,
+ specials={ "char", 0x1F0C, 0x0345 },
+ unicodeslot=0x1F8C,
},
[0x1F8D]={
- ["category"]="lt",
- ["contextname"]="greekAlphaiotasubdasiatonos",
- ["description"]="GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI",
- ["lccode"]=0x1F85,
- ["linebreak"]="al",
- ["shcode"]=0x0391,
- ["specials"]={ "char", 0x1F0D, 0x0345 },
- ["unicodeslot"]=0x1F8D, -- ᾍ
+ category="lt",
+ contextname="greekAlphaiotasubdasiatonos",
+ description="GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI",
+ direction="l",
+ lccode=0x1F85,
+ linebreak="al",
+ shcode=0x0391,
+ specials={ "char", 0x1F0D, 0x0345 },
+ unicodeslot=0x1F8D,
},
[0x1F8E]={
- ["category"]="lt",
- ["contextname"]="greekAlphaiotasubpsiliperispomeni",
- ["description"]="GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI",
- ["lccode"]=0x1F86,
- ["linebreak"]="al",
- ["shcode"]=0x0391,
- ["specials"]={ "char", 0x1F0E, 0x0345 },
- ["unicodeslot"]=0x1F8E, -- ᾎ
+ category="lt",
+ contextname="greekAlphaiotasubpsiliperispomeni",
+ description="GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI",
+ direction="l",
+ lccode=0x1F86,
+ linebreak="al",
+ shcode=0x0391,
+ specials={ "char", 0x1F0E, 0x0345 },
+ unicodeslot=0x1F8E,
},
[0x1F8F]={
- ["category"]="lt",
- ["contextname"]="greekAlphaiotasubdasiaperispomeni",
- ["description"]="GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI",
- ["lccode"]=0x1F87,
- ["linebreak"]="al",
- ["shcode"]=0x0391,
- ["specials"]={ "char", 0x1F0F, 0x0345 },
- ["unicodeslot"]=0x1F8F, -- ᾏ
+ category="lt",
+ contextname="greekAlphaiotasubdasiaperispomeni",
+ description="GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI",
+ direction="l",
+ lccode=0x1F87,
+ linebreak="al",
+ shcode=0x0391,
+ specials={ "char", 0x1F0F, 0x0345 },
+ unicodeslot=0x1F8F,
},
[0x1F90]={
- ["category"]="ll",
- ["contextname"]="greeketaiotasubpsili",
- ["description"]="GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI",
- ["linebreak"]="al",
- ["shcode"]=0x03B7,
- ["specials"]={ "char", 0x1F20, 0x0345 },
- ["uccode"]=0x1F98,
- ["unicodeslot"]=0x1F90, -- ᾐ
+ category="ll",
+ contextname="greeketaiotasubpsili",
+ description="GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B7,
+ specials={ "char", 0x1F20, 0x0345 },
+ uccode=0x1F98,
+ unicodeslot=0x1F90,
},
[0x1F91]={
- ["category"]="ll",
- ["contextname"]="greeketaiotasubdasia",
- ["description"]="GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI",
- ["linebreak"]="al",
- ["shcode"]=0x03B7,
- ["specials"]={ "char", 0x1F21, 0x0345 },
- ["uccode"]=0x1F99,
- ["unicodeslot"]=0x1F91, -- ᾑ
+ category="ll",
+ contextname="greeketaiotasubdasia",
+ description="GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B7,
+ specials={ "char", 0x1F21, 0x0345 },
+ uccode=0x1F99,
+ unicodeslot=0x1F91,
},
[0x1F92]={
- ["category"]="ll",
- ["contextname"]="greeketaiotasubpsilivaria",
- ["description"]="GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI",
- ["linebreak"]="al",
- ["shcode"]=0x03B7,
- ["specials"]={ "char", 0x1F22, 0x0345 },
- ["uccode"]=0x1F9A,
- ["unicodeslot"]=0x1F92, -- ᾒ
+ category="ll",
+ contextname="greeketaiotasubpsilivaria",
+ description="GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B7,
+ specials={ "char", 0x1F22, 0x0345 },
+ uccode=0x1F9A,
+ unicodeslot=0x1F92,
},
[0x1F93]={
- ["category"]="ll",
- ["contextname"]="greeketaiotasubdasiavaria",
- ["description"]="GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI",
- ["linebreak"]="al",
- ["shcode"]=0x03B7,
- ["specials"]={ "char", 0x1F23, 0x0345 },
- ["uccode"]=0x1F9B,
- ["unicodeslot"]=0x1F93, -- ᾓ
+ category="ll",
+ contextname="greeketaiotasubdasiavaria",
+ description="GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B7,
+ specials={ "char", 0x1F23, 0x0345 },
+ uccode=0x1F9B,
+ unicodeslot=0x1F93,
},
[0x1F94]={
- ["category"]="ll",
- ["contextname"]="greeketaiotasubpsilitonos",
- ["description"]="GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI",
- ["linebreak"]="al",
- ["shcode"]=0x03B7,
- ["specials"]={ "char", 0x1F24, 0x0345 },
- ["uccode"]=0x1F9C,
- ["unicodeslot"]=0x1F94, -- ᾔ
+ category="ll",
+ contextname="greeketaiotasubpsilitonos",
+ description="GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B7,
+ specials={ "char", 0x1F24, 0x0345 },
+ uccode=0x1F9C,
+ unicodeslot=0x1F94,
},
[0x1F95]={
- ["category"]="ll",
- ["contextname"]="greeketaiotasubdasiatonos",
- ["description"]="GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI",
- ["linebreak"]="al",
- ["shcode"]=0x03B7,
- ["specials"]={ "char", 0x1F25, 0x0345 },
- ["uccode"]=0x1F9D,
- ["unicodeslot"]=0x1F95, -- ᾕ
+ category="ll",
+ contextname="greeketaiotasubdasiatonos",
+ description="GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B7,
+ specials={ "char", 0x1F25, 0x0345 },
+ uccode=0x1F9D,
+ unicodeslot=0x1F95,
},
[0x1F96]={
- ["category"]="ll",
- ["contextname"]="greeketaiotasubpsiliperispomeni",
- ["description"]="GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI",
- ["linebreak"]="al",
- ["shcode"]=0x03B7,
- ["specials"]={ "char", 0x1F26, 0x0345 },
- ["uccode"]=0x1F9E,
- ["unicodeslot"]=0x1F96, -- ᾖ
+ category="ll",
+ contextname="greeketaiotasubpsiliperispomeni",
+ description="GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B7,
+ specials={ "char", 0x1F26, 0x0345 },
+ uccode=0x1F9E,
+ unicodeslot=0x1F96,
},
[0x1F97]={
- ["category"]="ll",
- ["contextname"]="greeketaiotasubdasiaperispomeni",
- ["description"]="GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI",
- ["linebreak"]="al",
- ["shcode"]=0x03B7,
- ["specials"]={ "char", 0x1F27, 0x0345 },
- ["uccode"]=0x1F9F,
- ["unicodeslot"]=0x1F97, -- ᾗ
+ category="ll",
+ contextname="greeketaiotasubdasiaperispomeni",
+ description="GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B7,
+ specials={ "char", 0x1F27, 0x0345 },
+ uccode=0x1F9F,
+ unicodeslot=0x1F97,
},
[0x1F98]={
- ["category"]="lt",
- ["contextname"]="greekEtaiotasubpsili",
- ["description"]="GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI",
- ["lccode"]=0x1F90,
- ["linebreak"]="al",
- ["shcode"]=0x0397,
- ["specials"]={ "char", 0x1F28, 0x0345 },
- ["unicodeslot"]=0x1F98, -- ᾘ
+ category="lt",
+ contextname="greekEtaiotasubpsili",
+ description="GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI",
+ direction="l",
+ lccode=0x1F90,
+ linebreak="al",
+ shcode=0x0397,
+ specials={ "char", 0x1F28, 0x0345 },
+ unicodeslot=0x1F98,
},
[0x1F99]={
- ["category"]="lt",
- ["contextname"]="greekEtaiotasubdasia",
- ["description"]="GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI",
- ["lccode"]=0x1F91,
- ["linebreak"]="al",
- ["shcode"]=0x0397,
- ["specials"]={ "char", 0x1F29, 0x0345 },
- ["unicodeslot"]=0x1F99, -- ᾙ
+ category="lt",
+ contextname="greekEtaiotasubdasia",
+ description="GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI",
+ direction="l",
+ lccode=0x1F91,
+ linebreak="al",
+ shcode=0x0397,
+ specials={ "char", 0x1F29, 0x0345 },
+ unicodeslot=0x1F99,
},
[0x1F9A]={
- ["category"]="lt",
- ["contextname"]="greekEtaiotasubpsilivaria",
- ["description"]="GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI",
- ["lccode"]=0x1F92,
- ["linebreak"]="al",
- ["shcode"]=0x0397,
- ["specials"]={ "char", 0x1F2A, 0x0345 },
- ["unicodeslot"]=0x1F9A, -- ᾚ
+ category="lt",
+ contextname="greekEtaiotasubpsilivaria",
+ description="GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI",
+ direction="l",
+ lccode=0x1F92,
+ linebreak="al",
+ shcode=0x0397,
+ specials={ "char", 0x1F2A, 0x0345 },
+ unicodeslot=0x1F9A,
},
[0x1F9B]={
- ["category"]="lt",
- ["contextname"]="greekEtaiotasubdasiavaria",
- ["description"]="GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI",
- ["lccode"]=0x1F93,
- ["linebreak"]="al",
- ["shcode"]=0x0397,
- ["specials"]={ "char", 0x1F2B, 0x0345 },
- ["unicodeslot"]=0x1F9B, -- ᾛ
+ category="lt",
+ contextname="greekEtaiotasubdasiavaria",
+ description="GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI",
+ direction="l",
+ lccode=0x1F93,
+ linebreak="al",
+ shcode=0x0397,
+ specials={ "char", 0x1F2B, 0x0345 },
+ unicodeslot=0x1F9B,
},
[0x1F9C]={
- ["category"]="lt",
- ["contextname"]="greekEtaiotasubpsilitonos",
- ["description"]="GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI",
- ["lccode"]=0x1F94,
- ["linebreak"]="al",
- ["shcode"]=0x0397,
- ["specials"]={ "char", 0x1F2C, 0x0345 },
- ["unicodeslot"]=0x1F9C, -- ᾜ
+ category="lt",
+ contextname="greekEtaiotasubpsilitonos",
+ description="GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI",
+ direction="l",
+ lccode=0x1F94,
+ linebreak="al",
+ shcode=0x0397,
+ specials={ "char", 0x1F2C, 0x0345 },
+ unicodeslot=0x1F9C,
},
[0x1F9D]={
- ["category"]="lt",
- ["contextname"]="greekEtaiotasubdasiatonos",
- ["description"]="GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI",
- ["lccode"]=0x1F95,
- ["linebreak"]="al",
- ["shcode"]=0x0397,
- ["specials"]={ "char", 0x1F2D, 0x0345 },
- ["unicodeslot"]=0x1F9D, -- ᾝ
+ category="lt",
+ contextname="greekEtaiotasubdasiatonos",
+ description="GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI",
+ direction="l",
+ lccode=0x1F95,
+ linebreak="al",
+ shcode=0x0397,
+ specials={ "char", 0x1F2D, 0x0345 },
+ unicodeslot=0x1F9D,
},
[0x1F9E]={
- ["category"]="lt",
- ["contextname"]="greekEtaiotasubpsiliperispomeni",
- ["description"]="GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI",
- ["lccode"]=0x1F96,
- ["linebreak"]="al",
- ["shcode"]=0x0397,
- ["specials"]={ "char", 0x1F2E, 0x0345 },
- ["unicodeslot"]=0x1F9E, -- ᾞ
+ category="lt",
+ contextname="greekEtaiotasubpsiliperispomeni",
+ description="GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI",
+ direction="l",
+ lccode=0x1F96,
+ linebreak="al",
+ shcode=0x0397,
+ specials={ "char", 0x1F2E, 0x0345 },
+ unicodeslot=0x1F9E,
},
[0x1F9F]={
- ["category"]="lt",
- ["contextname"]="greekEtaiotasubdasiaperispomeni",
- ["description"]="GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI",
- ["lccode"]=0x1F97,
- ["linebreak"]="al",
- ["shcode"]=0x0397,
- ["specials"]={ "char", 0x1F2F, 0x0345 },
- ["unicodeslot"]=0x1F9F, -- ᾟ
+ category="lt",
+ contextname="greekEtaiotasubdasiaperispomeni",
+ description="GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI",
+ direction="l",
+ lccode=0x1F97,
+ linebreak="al",
+ shcode=0x0397,
+ specials={ "char", 0x1F2F, 0x0345 },
+ unicodeslot=0x1F9F,
},
[0x1FA0]={
- ["category"]="ll",
- ["contextname"]="greekomegaiotasubpsili",
- ["description"]="GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI",
- ["linebreak"]="al",
- ["shcode"]=0x03C9,
- ["specials"]={ "char", 0x1F60, 0x0345 },
- ["uccode"]=0x1FA8,
- ["unicodeslot"]=0x1FA0, -- ᾠ
+ category="ll",
+ contextname="greekomegaiotasubpsili",
+ description="GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03C9,
+ specials={ "char", 0x1F60, 0x0345 },
+ uccode=0x1FA8,
+ unicodeslot=0x1FA0,
},
[0x1FA1]={
- ["category"]="ll",
- ["contextname"]="greekomegaiotasubdasia",
- ["description"]="GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI",
- ["linebreak"]="al",
- ["shcode"]=0x03C9,
- ["specials"]={ "char", 0x1F61, 0x0345 },
- ["uccode"]=0x1FA9,
- ["unicodeslot"]=0x1FA1, -- ᾡ
+ category="ll",
+ contextname="greekomegaiotasubdasia",
+ description="GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03C9,
+ specials={ "char", 0x1F61, 0x0345 },
+ uccode=0x1FA9,
+ unicodeslot=0x1FA1,
},
[0x1FA2]={
- ["category"]="ll",
- ["contextname"]="greekomegaiotasubpsilivaria",
- ["description"]="GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI",
- ["linebreak"]="al",
- ["shcode"]=0x03C9,
- ["specials"]={ "char", 0x1F62, 0x0345 },
- ["uccode"]=0x1FAA,
- ["unicodeslot"]=0x1FA2, -- ᾢ
+ category="ll",
+ contextname="greekomegaiotasubpsilivaria",
+ description="GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03C9,
+ specials={ "char", 0x1F62, 0x0345 },
+ uccode=0x1FAA,
+ unicodeslot=0x1FA2,
},
[0x1FA3]={
- ["category"]="ll",
- ["contextname"]="greekomegaiotasubdasiavaria",
- ["description"]="GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI",
- ["linebreak"]="al",
- ["shcode"]=0x03C9,
- ["specials"]={ "char", 0x1F63, 0x0345 },
- ["uccode"]=0x1FAB,
- ["unicodeslot"]=0x1FA3, -- ᾣ
+ category="ll",
+ contextname="greekomegaiotasubdasiavaria",
+ description="GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03C9,
+ specials={ "char", 0x1F63, 0x0345 },
+ uccode=0x1FAB,
+ unicodeslot=0x1FA3,
},
[0x1FA4]={
- ["category"]="ll",
- ["contextname"]="greekomegaiotasubpsilitonos",
- ["description"]="GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI",
- ["linebreak"]="al",
- ["shcode"]=0x03C9,
- ["specials"]={ "char", 0x1F64, 0x0345 },
- ["uccode"]=0x1FAC,
- ["unicodeslot"]=0x1FA4, -- ᾤ
+ category="ll",
+ contextname="greekomegaiotasubpsilitonos",
+ description="GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03C9,
+ specials={ "char", 0x1F64, 0x0345 },
+ uccode=0x1FAC,
+ unicodeslot=0x1FA4,
},
[0x1FA5]={
- ["category"]="ll",
- ["contextname"]="greekomegaiotasubdasiatonos",
- ["description"]="GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI",
- ["linebreak"]="al",
- ["shcode"]=0x03C9,
- ["specials"]={ "char", 0x1F65, 0x0345 },
- ["uccode"]=0x1FAD,
- ["unicodeslot"]=0x1FA5, -- ᾥ
+ category="ll",
+ contextname="greekomegaiotasubdasiatonos",
+ description="GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03C9,
+ specials={ "char", 0x1F65, 0x0345 },
+ uccode=0x1FAD,
+ unicodeslot=0x1FA5,
},
[0x1FA6]={
- ["category"]="ll",
- ["contextname"]="greekomegaiotasubpsiliperispomeni",
- ["description"]="GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI",
- ["linebreak"]="al",
- ["shcode"]=0x03C9,
- ["specials"]={ "char", 0x1F66, 0x0345 },
- ["uccode"]=0x1FAE,
- ["unicodeslot"]=0x1FA6, -- ᾦ
+ category="ll",
+ contextname="greekomegaiotasubpsiliperispomeni",
+ description="GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03C9,
+ specials={ "char", 0x1F66, 0x0345 },
+ uccode=0x1FAE,
+ unicodeslot=0x1FA6,
},
[0x1FA7]={
- ["category"]="ll",
- ["contextname"]="greekomegaiotasubdasiaperispomeni",
- ["description"]="GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI",
- ["linebreak"]="al",
- ["shcode"]=0x03C9,
- ["specials"]={ "char", 0x1F67, 0x0345 },
- ["uccode"]=0x1FAF,
- ["unicodeslot"]=0x1FA7, -- ᾧ
+ category="ll",
+ contextname="greekomegaiotasubdasiaperispomeni",
+ description="GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03C9,
+ specials={ "char", 0x1F67, 0x0345 },
+ uccode=0x1FAF,
+ unicodeslot=0x1FA7,
},
[0x1FA8]={
- ["category"]="lt",
- ["contextname"]="greekOmegaiotasubpsili",
- ["description"]="GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI",
- ["lccode"]=0x1FA0,
- ["linebreak"]="al",
- ["shcode"]=0x03A9,
- ["specials"]={ "char", 0x1F68, 0x0345 },
- ["unicodeslot"]=0x1FA8, -- ᾨ
+ category="lt",
+ contextname="greekOmegaiotasubpsili",
+ description="GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI",
+ direction="l",
+ lccode=0x1FA0,
+ linebreak="al",
+ shcode=0x03A9,
+ specials={ "char", 0x1F68, 0x0345 },
+ unicodeslot=0x1FA8,
},
[0x1FA9]={
- ["category"]="lt",
- ["contextname"]="greekOmegaiotasubdasia",
- ["description"]="GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI",
- ["lccode"]=0x1FA1,
- ["linebreak"]="al",
- ["shcode"]=0x03A9,
- ["specials"]={ "char", 0x1F69, 0x0345 },
- ["unicodeslot"]=0x1FA9, -- ᾩ
+ category="lt",
+ contextname="greekOmegaiotasubdasia",
+ description="GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI",
+ direction="l",
+ lccode=0x1FA1,
+ linebreak="al",
+ shcode=0x03A9,
+ specials={ "char", 0x1F69, 0x0345 },
+ unicodeslot=0x1FA9,
},
[0x1FAA]={
- ["category"]="lt",
- ["contextname"]="greekOmegaiotasubpsilivaria",
- ["description"]="GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI",
- ["lccode"]=0x1FA2,
- ["linebreak"]="al",
- ["shcode"]=0x03A9,
- ["specials"]={ "char", 0x1F6A, 0x0345 },
- ["unicodeslot"]=0x1FAA, -- ᾪ
+ category="lt",
+ contextname="greekOmegaiotasubpsilivaria",
+ description="GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI",
+ direction="l",
+ lccode=0x1FA2,
+ linebreak="al",
+ shcode=0x03A9,
+ specials={ "char", 0x1F6A, 0x0345 },
+ unicodeslot=0x1FAA,
},
[0x1FAB]={
- ["category"]="lt",
- ["contextname"]="greekOmegaiotasubdasiavaria",
- ["description"]="GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI",
- ["lccode"]=0x1FA3,
- ["linebreak"]="al",
- ["shcode"]=0x03A9,
- ["specials"]={ "char", 0x1F6B, 0x0345 },
- ["unicodeslot"]=0x1FAB, -- ᾫ
+ category="lt",
+ contextname="greekOmegaiotasubdasiavaria",
+ description="GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI",
+ direction="l",
+ lccode=0x1FA3,
+ linebreak="al",
+ shcode=0x03A9,
+ specials={ "char", 0x1F6B, 0x0345 },
+ unicodeslot=0x1FAB,
},
[0x1FAC]={
- ["category"]="lt",
- ["contextname"]="greekOmegaiotasubpsilitonos",
- ["description"]="GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI",
- ["lccode"]=0x1FA4,
- ["linebreak"]="al",
- ["shcode"]=0x03A9,
- ["specials"]={ "char", 0x1F6C, 0x0345 },
- ["unicodeslot"]=0x1FAC, -- ᾬ
+ category="lt",
+ contextname="greekOmegaiotasubpsilitonos",
+ description="GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI",
+ direction="l",
+ lccode=0x1FA4,
+ linebreak="al",
+ shcode=0x03A9,
+ specials={ "char", 0x1F6C, 0x0345 },
+ unicodeslot=0x1FAC,
},
[0x1FAD]={
- ["category"]="lt",
- ["contextname"]="greekOmegaiotasubdasiatonos",
- ["description"]="GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI",
- ["lccode"]=0x1FA5,
- ["linebreak"]="al",
- ["shcode"]=0x03A9,
- ["specials"]={ "char", 0x1F6D, 0x0345 },
- ["unicodeslot"]=0x1FAD, -- ᾭ
+ category="lt",
+ contextname="greekOmegaiotasubdasiatonos",
+ description="GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI",
+ direction="l",
+ lccode=0x1FA5,
+ linebreak="al",
+ shcode=0x03A9,
+ specials={ "char", 0x1F6D, 0x0345 },
+ unicodeslot=0x1FAD,
},
[0x1FAE]={
- ["category"]="lt",
- ["contextname"]="greekOmegaiotasubpsiliperispomeni",
- ["description"]="GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI",
- ["lccode"]=0x1FA6,
- ["linebreak"]="al",
- ["shcode"]=0x03A9,
- ["specials"]={ "char", 0x1F6E, 0x0345 },
- ["unicodeslot"]=0x1FAE, -- ᾮ
+ category="lt",
+ contextname="greekOmegaiotasubpsiliperispomeni",
+ description="GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI",
+ direction="l",
+ lccode=0x1FA6,
+ linebreak="al",
+ shcode=0x03A9,
+ specials={ "char", 0x1F6E, 0x0345 },
+ unicodeslot=0x1FAE,
},
[0x1FAF]={
- ["category"]="lt",
- ["contextname"]="greekOmegaiotasubdasiaperispomeni",
- ["description"]="GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI",
- ["lccode"]=0x1FA7,
- ["linebreak"]="al",
- ["shcode"]=0x03A9,
- ["specials"]={ "char", 0x1F6F, 0x0345 },
- ["unicodeslot"]=0x1FAF, -- ᾯ
+ category="lt",
+ contextname="greekOmegaiotasubdasiaperispomeni",
+ description="GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI",
+ direction="l",
+ lccode=0x1FA7,
+ linebreak="al",
+ shcode=0x03A9,
+ specials={ "char", 0x1F6F, 0x0345 },
+ unicodeslot=0x1FAF,
},
[0x1FB0]={
- ["category"]="ll",
- ["contextname"]="greekalphavrachy",
- ["description"]="GREEK SMALL LETTER ALPHA WITH VRACHY",
- ["linebreak"]="al",
- ["shcode"]=0x03B1,
- ["specials"]={ "char", 0x03B1, 0x0306 },
- ["uccode"]=0x1FB8,
- ["unicodeslot"]=0x1FB0, -- ᾰ
+ category="ll",
+ contextname="greekalphavrachy",
+ description="GREEK SMALL LETTER ALPHA WITH VRACHY",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B1,
+ specials={ "char", 0x03B1, 0x0306 },
+ uccode=0x1FB8,
+ unicodeslot=0x1FB0,
},
[0x1FB1]={
- ["category"]="ll",
- ["contextname"]="greekalphamacron",
- ["description"]="GREEK SMALL LETTER ALPHA WITH MACRON",
- ["linebreak"]="al",
- ["shcode"]=0x03B1,
- ["specials"]={ "char", 0x03B1, 0x0304 },
- ["uccode"]=0x1FB9,
- ["unicodeslot"]=0x1FB1, -- ᾱ
+ category="ll",
+ contextname="greekalphamacron",
+ description="GREEK SMALL LETTER ALPHA WITH MACRON",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B1,
+ specials={ "char", 0x03B1, 0x0304 },
+ uccode=0x1FB9,
+ unicodeslot=0x1FB1,
},
[0x1FB2]={
- ["category"]="ll",
- ["contextname"]="greekalphaiotasubvaria",
- ["description"]="GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI",
- ["linebreak"]="al",
- ["shcode"]=0x03B1,
- ["specials"]={ "char", 0x1F70, 0x0345 },
- ["unicodeslot"]=0x1FB2, -- ᾲ
+ category="ll",
+ contextname="greekalphaiotasubvaria",
+ description="GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B1,
+ specials={ "char", 0x1F70, 0x0345 },
+ unicodeslot=0x1FB2,
},
[0x1FB3]={
- ["category"]="ll",
- ["contextname"]="greekalphaiotasub",
- ["description"]="GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI",
- ["linebreak"]="al",
- ["shcode"]=0x03B1,
- ["specials"]={ "char", 0x03B1, 0x0345 },
- ["uccode"]=0x1FBC,
- ["unicodeslot"]=0x1FB3, -- ᾳ
+ category="ll",
+ contextname="greekalphaiotasub",
+ description="GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B1,
+ specials={ "char", 0x03B1, 0x0345 },
+ uccode=0x1FBC,
+ unicodeslot=0x1FB3,
},
[0x1FB4]={
- ["category"]="ll",
- ["contextname"]="greekalphaiotasubtonos",
- ["description"]="GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI",
- ["linebreak"]="al",
- ["shcode"]=0x03B1,
- ["specials"]={ "char", 0x03AC, 0x0345 },
- ["unicodeslot"]=0x1FB4, -- ᾴ
+ category="ll",
+ contextname="greekalphaiotasubtonos",
+ description="GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B1,
+ specials={ "char", 0x03AC, 0x0345 },
+ unicodeslot=0x1FB4,
},
[0x1FB6]={
- ["category"]="ll",
- ["contextname"]="greekalphaperispomeni",
- ["description"]="GREEK SMALL LETTER ALPHA WITH PERISPOMENI",
- ["linebreak"]="al",
- ["shcode"]=0x03B1,
- ["specials"]={ "char", 0x03B1, 0x0342 },
- ["unicodeslot"]=0x1FB6, -- ᾶ
+ category="ll",
+ contextname="greekalphaperispomeni",
+ description="GREEK SMALL LETTER ALPHA WITH PERISPOMENI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B1,
+ specials={ "char", 0x03B1, 0x0342 },
+ unicodeslot=0x1FB6,
},
[0x1FB7]={
- ["category"]="ll",
- ["contextname"]="greekalphaiotasubperispomeni",
- ["description"]="GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI",
- ["linebreak"]="al",
- ["shcode"]=0x03B1,
- ["specials"]={ "char", 0x1FB6, 0x0345 },
- ["unicodeslot"]=0x1FB7, -- ᾷ
+ category="ll",
+ contextname="greekalphaiotasubperispomeni",
+ description="GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B1,
+ specials={ "char", 0x1FB6, 0x0345 },
+ unicodeslot=0x1FB7,
},
[0x1FB8]={
- ["category"]="lu",
- ["contextname"]="greekAlphavrachy",
- ["description"]="GREEK CAPITAL LETTER ALPHA WITH VRACHY",
- ["lccode"]=0x1FB0,
- ["linebreak"]="al",
- ["shcode"]=0x0391,
- ["specials"]={ "char", 0x0391, 0x0306 },
- ["unicodeslot"]=0x1FB8, -- Ᾰ
+ category="lu",
+ contextname="greekAlphavrachy",
+ description="GREEK CAPITAL LETTER ALPHA WITH VRACHY",
+ direction="l",
+ lccode=0x1FB0,
+ linebreak="al",
+ shcode=0x0391,
+ specials={ "char", 0x0391, 0x0306 },
+ unicodeslot=0x1FB8,
},
[0x1FB9]={
- ["category"]="lu",
- ["contextname"]="greekAlphamacron",
- ["description"]="GREEK CAPITAL LETTER ALPHA WITH MACRON",
- ["lccode"]=0x1FB1,
- ["linebreak"]="al",
- ["shcode"]=0x0391,
- ["specials"]={ "char", 0x0391, 0x0304 },
- ["unicodeslot"]=0x1FB9, -- Ᾱ
+ category="lu",
+ contextname="greekAlphamacron",
+ description="GREEK CAPITAL LETTER ALPHA WITH MACRON",
+ direction="l",
+ lccode=0x1FB1,
+ linebreak="al",
+ shcode=0x0391,
+ specials={ "char", 0x0391, 0x0304 },
+ unicodeslot=0x1FB9,
},
[0x1FBA]={
- ["category"]="lu",
- ["contextname"]="greekAlphavaria",
- ["description"]="GREEK CAPITAL LETTER ALPHA WITH VARIA",
- ["lccode"]=0x1F70,
- ["linebreak"]="al",
- ["shcode"]=0x0391,
- ["specials"]={ "char", 0x0391, 0x0300 },
- ["unicodeslot"]=0x1FBA, -- Ὰ
+ category="lu",
+ contextname="greekAlphavaria",
+ description="GREEK CAPITAL LETTER ALPHA WITH VARIA",
+ direction="l",
+ lccode=0x1F70,
+ linebreak="al",
+ shcode=0x0391,
+ specials={ "char", 0x0391, 0x0300 },
+ unicodeslot=0x1FBA,
},
[0x1FBB]={
- ["category"]="lu",
- ["contextname"]="greekAlphatonos",
- ["description"]="GREEK CAPITAL LETTER ALPHA WITH OXIA",
- ["lccode"]=0x1F71,
- ["linebreak"]="al",
- ["shcode"]=0x0391,
- ["specials"]={ "char", 0x0386 },
- ["unicodeslot"]=0x1FBB, -- Ά
+ category="lu",
+ contextname="greekAlphatonos",
+ description="GREEK CAPITAL LETTER ALPHA WITH OXIA",
+ direction="l",
+ lccode=0x1F71,
+ linebreak="al",
+ shcode=0x0391,
+ specials={ "char", 0x0386 },
+ unicodeslot=0x1FBB,
},
[0x1FBC]={
- ["category"]="lt",
- ["contextname"]="greekAlphaiotasub",
- ["description"]="GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI",
- ["lccode"]=0x1FB3,
- ["linebreak"]="al",
- ["shcode"]=0x0391,
- ["specials"]={ "char", 0x0391, 0x0345 },
- ["unicodeslot"]=0x1FBC, -- ᾼ
+ category="lt",
+ contextname="greekAlphaiotasub",
+ description="GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI",
+ direction="l",
+ lccode=0x1FB3,
+ linebreak="al",
+ shcode=0x0391,
+ specials={ "char", 0x0391, 0x0345 },
+ unicodeslot=0x1FBC,
},
[0x1FBD]={
- ["category"]="sk",
- ["contextname"]="greekCoronis",
- ["description"]="GREEK KORONIS",
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x0020, 0x0313 },
- ["unicodeslot"]=0x1FBD, -- ᾽
+ category="sk",
+ contextname="greekCoronis",
+ description="GREEK KORONIS",
+ direction="on",
+ linebreak="al",
+ specials={ "compat", 0x0020, 0x0313 },
+ unicodeslot=0x1FBD,
},
[0x1FBE]={
- ["category"]="ll",
- ["contextname"]="greekprosgegrammeni",
- ["description"]="GREEK PROSGEGRAMMENI",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x03B9 },
- ["uccode"]=0x0399,
- ["unicodeslot"]=0x1FBE, -- ι
+ category="ll",
+ contextname="greekprosgegrammeni",
+ description="GREEK PROSGEGRAMMENI",
+ direction="l",
+ linebreak="al",
+ specials={ "char", 0x03B9 },
+ uccode=0x0399,
+ unicodeslot=0x1FBE,
},
[0x1FBF]={
- ["category"]="sk",
- ["contextname"]="greekpsili",
- ["description"]="GREEK PSILI",
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x0020, 0x0313 },
- ["unicodeslot"]=0x1FBF, -- ᾿
+ category="sk",
+ contextname="greekpsili",
+ description="GREEK PSILI",
+ direction="on",
+ linebreak="al",
+ specials={ "compat", 0x0020, 0x0313 },
+ unicodeslot=0x1FBF,
},
[0x1FC0]={
- ["category"]="sk",
- ["contextname"]="greekperispomeni",
- ["description"]="GREEK PERISPOMENI",
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x0020, 0x0342 },
- ["unicodeslot"]=0x1FC0, -- ῀
+ category="sk",
+ contextname="greekperispomeni",
+ description="GREEK PERISPOMENI",
+ direction="on",
+ linebreak="al",
+ specials={ "compat", 0x0020, 0x0342 },
+ unicodeslot=0x1FC0,
},
[0x1FC1]={
- ["category"]="sk",
- ["contextname"]="greekdialytikaperispomeni",
- ["description"]="GREEK DIALYTIKA AND PERISPOMENI",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x00A8, 0x0342 },
- ["unicodeslot"]=0x1FC1, -- ῁
+ category="sk",
+ contextname="greekdialytikaperispomeni",
+ description="GREEK DIALYTIKA AND PERISPOMENI",
+ direction="on",
+ linebreak="al",
+ specials={ "char", 0x00A8, 0x0342 },
+ unicodeslot=0x1FC1,
},
[0x1FC2]={
- ["category"]="ll",
- ["contextname"]="greeketaiotasubvaria",
- ["description"]="GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI",
- ["linebreak"]="al",
- ["shcode"]=0x03B7,
- ["specials"]={ "char", 0x1F74, 0x0345 },
- ["unicodeslot"]=0x1FC2, -- ῂ
+ category="ll",
+ contextname="greeketaiotasubvaria",
+ description="GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B7,
+ specials={ "char", 0x1F74, 0x0345 },
+ unicodeslot=0x1FC2,
},
[0x1FC3]={
- ["category"]="ll",
- ["contextname"]="greeketaiotasub",
- ["description"]="GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI",
- ["linebreak"]="al",
- ["shcode"]=0x03B7,
- ["specials"]={ "char", 0x03B7, 0x0345 },
- ["uccode"]=0x1FCC,
- ["unicodeslot"]=0x1FC3, -- ῃ
+ category="ll",
+ contextname="greeketaiotasub",
+ description="GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B7,
+ specials={ "char", 0x03B7, 0x0345 },
+ uccode=0x1FCC,
+ unicodeslot=0x1FC3,
},
[0x1FC4]={
- ["category"]="ll",
- ["contextname"]="greeketaiotasubtonos",
- ["description"]="GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI",
- ["linebreak"]="al",
- ["shcode"]=0x03B7,
- ["specials"]={ "char", 0x03AE, 0x0345 },
- ["unicodeslot"]=0x1FC4, -- ῄ
+ category="ll",
+ contextname="greeketaiotasubtonos",
+ description="GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B7,
+ specials={ "char", 0x03AE, 0x0345 },
+ unicodeslot=0x1FC4,
},
[0x1FC6]={
- ["category"]="ll",
- ["contextname"]="greeketaperispomeni",
- ["description"]="GREEK SMALL LETTER ETA WITH PERISPOMENI",
- ["linebreak"]="al",
- ["shcode"]=0x03B7,
- ["specials"]={ "char", 0x03B7, 0x0342 },
- ["unicodeslot"]=0x1FC6, -- ῆ
+ category="ll",
+ contextname="greeketaperispomeni",
+ description="GREEK SMALL LETTER ETA WITH PERISPOMENI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B7,
+ specials={ "char", 0x03B7, 0x0342 },
+ unicodeslot=0x1FC6,
},
[0x1FC7]={
- ["category"]="ll",
- ["contextname"]="greeketaiotasubperispomeni",
- ["description"]="GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI",
- ["linebreak"]="al",
- ["shcode"]=0x03B7,
- ["specials"]={ "char", 0x1FC6, 0x0345 },
- ["unicodeslot"]=0x1FC7, -- ῇ
+ category="ll",
+ contextname="greeketaiotasubperispomeni",
+ description="GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B7,
+ specials={ "char", 0x1FC6, 0x0345 },
+ unicodeslot=0x1FC7,
},
[0x1FC8]={
- ["category"]="lu",
- ["contextname"]="greekEpsilonvaria",
- ["description"]="GREEK CAPITAL LETTER EPSILON WITH VARIA",
- ["lccode"]=0x1F72,
- ["linebreak"]="al",
- ["shcode"]=0x0395,
- ["specials"]={ "char", 0x0395, 0x0300 },
- ["unicodeslot"]=0x1FC8, -- Ὲ
+ category="lu",
+ contextname="greekEpsilonvaria",
+ description="GREEK CAPITAL LETTER EPSILON WITH VARIA",
+ direction="l",
+ lccode=0x1F72,
+ linebreak="al",
+ shcode=0x0395,
+ specials={ "char", 0x0395, 0x0300 },
+ unicodeslot=0x1FC8,
},
[0x1FC9]={
- ["category"]="lu",
- ["contextname"]="greekEpsilontonos",
- ["description"]="GREEK CAPITAL LETTER EPSILON WITH OXIA",
- ["lccode"]=0x1F73,
- ["linebreak"]="al",
- ["shcode"]=0x0395,
- ["specials"]={ "char", 0x0388 },
- ["unicodeslot"]=0x1FC9, -- Έ
+ category="lu",
+ contextname="greekEpsilontonos",
+ description="GREEK CAPITAL LETTER EPSILON WITH OXIA",
+ direction="l",
+ lccode=0x1F73,
+ linebreak="al",
+ shcode=0x0395,
+ specials={ "char", 0x0388 },
+ unicodeslot=0x1FC9,
},
[0x1FCA]={
- ["category"]="lu",
- ["contextname"]="greekEtavaria",
- ["description"]="GREEK CAPITAL LETTER ETA WITH VARIA",
- ["lccode"]=0x1F74,
- ["linebreak"]="al",
- ["shcode"]=0x0397,
- ["specials"]={ "char", 0x0397, 0x0300 },
- ["unicodeslot"]=0x1FCA, -- Ὴ
+ category="lu",
+ contextname="greekEtavaria",
+ description="GREEK CAPITAL LETTER ETA WITH VARIA",
+ direction="l",
+ lccode=0x1F74,
+ linebreak="al",
+ shcode=0x0397,
+ specials={ "char", 0x0397, 0x0300 },
+ unicodeslot=0x1FCA,
},
[0x1FCB]={
- ["category"]="lu",
- ["contextname"]="greekEtatonos",
- ["description"]="GREEK CAPITAL LETTER ETA WITH OXIA",
- ["lccode"]=0x1F75,
- ["linebreak"]="al",
- ["shcode"]=0x0397,
- ["specials"]={ "char", 0x0389 },
- ["unicodeslot"]=0x1FCB, -- Ή
+ category="lu",
+ contextname="greekEtatonos",
+ description="GREEK CAPITAL LETTER ETA WITH OXIA",
+ direction="l",
+ lccode=0x1F75,
+ linebreak="al",
+ shcode=0x0397,
+ specials={ "char", 0x0389 },
+ unicodeslot=0x1FCB,
},
[0x1FCC]={
- ["category"]="lt",
- ["contextname"]="greekEtaiotasub",
- ["description"]="GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI",
- ["lccode"]=0x1FC3,
- ["linebreak"]="al",
- ["shcode"]=0x0397,
- ["specials"]={ "char", 0x0397, 0x0345 },
- ["unicodeslot"]=0x1FCC, -- ῌ
+ category="lt",
+ contextname="greekEtaiotasub",
+ description="GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI",
+ direction="l",
+ lccode=0x1FC3,
+ linebreak="al",
+ shcode=0x0397,
+ specials={ "char", 0x0397, 0x0345 },
+ unicodeslot=0x1FCC,
},
[0x1FCD]={
- ["category"]="sk",
- ["contextname"]="greekpsilivaria",
- ["description"]="GREEK PSILI AND VARIA",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x1FBF, 0x0300 },
- ["unicodeslot"]=0x1FCD, -- ῍
+ category="sk",
+ contextname="greekpsilivaria",
+ description="GREEK PSILI AND VARIA",
+ direction="on",
+ linebreak="al",
+ specials={ "char", 0x1FBF, 0x0300 },
+ unicodeslot=0x1FCD,
},
[0x1FCE]={
- ["category"]="sk",
- ["contextname"]="greekpsilitonos",
- ["description"]="GREEK PSILI AND OXIA",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x1FBF, 0x0301 },
- ["unicodeslot"]=0x1FCE, -- ῎
+ category="sk",
+ contextname="greekpsilitonos",
+ description="GREEK PSILI AND OXIA",
+ direction="on",
+ linebreak="al",
+ specials={ "char", 0x1FBF, 0x0301 },
+ unicodeslot=0x1FCE,
},
[0x1FCF]={
- ["category"]="sk",
- ["contextname"]="greekpsiliperispomeni",
- ["description"]="GREEK PSILI AND PERISPOMENI",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x1FBF, 0x0342 },
- ["unicodeslot"]=0x1FCF, -- ῏
+ category="sk",
+ contextname="greekpsiliperispomeni",
+ description="GREEK PSILI AND PERISPOMENI",
+ direction="on",
+ linebreak="al",
+ specials={ "char", 0x1FBF, 0x0342 },
+ unicodeslot=0x1FCF,
},
[0x1FD0]={
- ["category"]="ll",
- ["contextname"]="greekiotavrachy",
- ["description"]="GREEK SMALL LETTER IOTA WITH VRACHY",
- ["linebreak"]="al",
- ["shcode"]=0x03B9,
- ["specials"]={ "char", 0x03B9, 0x0306 },
- ["uccode"]=0x1FD8,
- ["unicodeslot"]=0x1FD0, -- ῐ
+ category="ll",
+ contextname="greekiotavrachy",
+ description="GREEK SMALL LETTER IOTA WITH VRACHY",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B9,
+ specials={ "char", 0x03B9, 0x0306 },
+ uccode=0x1FD8,
+ unicodeslot=0x1FD0,
},
[0x1FD1]={
- ["category"]="ll",
- ["contextname"]="greekiotamacron",
- ["description"]="GREEK SMALL LETTER IOTA WITH MACRON",
- ["linebreak"]="al",
- ["shcode"]=0x03B9,
- ["specials"]={ "char", 0x03B9, 0x0304 },
- ["uccode"]=0x1FD9,
- ["unicodeslot"]=0x1FD1, -- ῑ
+ category="ll",
+ contextname="greekiotamacron",
+ description="GREEK SMALL LETTER IOTA WITH MACRON",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B9,
+ specials={ "char", 0x03B9, 0x0304 },
+ uccode=0x1FD9,
+ unicodeslot=0x1FD1,
},
[0x1FD2]={
- ["category"]="ll",
- ["contextname"]="greekiotadialytikavaria",
- ["description"]="GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA",
- ["linebreak"]="al",
- ["shcode"]=0x03B9,
- ["specials"]={ "char", 0x03CA, 0x0300 },
- ["unicodeslot"]=0x1FD2, -- ῒ
+ category="ll",
+ contextname="greekiotadialytikavaria",
+ description="GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B9,
+ specials={ "char", 0x03CA, 0x0300 },
+ unicodeslot=0x1FD2,
},
[0x1FD3]={
- ["category"]="ll",
- ["contextname"]="greekiotadialytikatonos",
- ["description"]="GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA",
- ["linebreak"]="al",
- ["shcode"]=0x03B9,
- ["specials"]={ "char", 0x0390 },
- ["unicodeslot"]=0x1FD3, -- ΐ
+ category="ll",
+ contextname="greekiotadialytikatonos",
+ description="GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B9,
+ specials={ "char", 0x0390 },
+ unicodeslot=0x1FD3,
},
[0x1FD6]={
- ["category"]="ll",
- ["contextname"]="greekiotaperispomeni",
- ["description"]="GREEK SMALL LETTER IOTA WITH PERISPOMENI",
- ["linebreak"]="al",
- ["shcode"]=0x03B9,
- ["specials"]={ "char", 0x03B9, 0x0342 },
- ["unicodeslot"]=0x1FD6, -- ῖ
+ category="ll",
+ contextname="greekiotaperispomeni",
+ description="GREEK SMALL LETTER IOTA WITH PERISPOMENI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B9,
+ specials={ "char", 0x03B9, 0x0342 },
+ unicodeslot=0x1FD6,
},
[0x1FD7]={
- ["category"]="ll",
- ["contextname"]="greekiotadialytikaperispomeni",
- ["description"]="GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI",
- ["linebreak"]="al",
- ["shcode"]=0x03B9,
- ["specials"]={ "char", 0x03CA, 0x0342 },
- ["unicodeslot"]=0x1FD7, -- ῗ
+ category="ll",
+ contextname="greekiotadialytikaperispomeni",
+ description="GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03B9,
+ specials={ "char", 0x03CA, 0x0342 },
+ unicodeslot=0x1FD7,
},
[0x1FD8]={
- ["category"]="lu",
- ["contextname"]="greekIotavrachy",
- ["description"]="GREEK CAPITAL LETTER IOTA WITH VRACHY",
- ["lccode"]=0x1FD0,
- ["linebreak"]="al",
- ["shcode"]=0x0399,
- ["specials"]={ "char", 0x0399, 0x0306 },
- ["unicodeslot"]=0x1FD8, -- Ῐ
+ category="lu",
+ contextname="greekIotavrachy",
+ description="GREEK CAPITAL LETTER IOTA WITH VRACHY",
+ direction="l",
+ lccode=0x1FD0,
+ linebreak="al",
+ shcode=0x0399,
+ specials={ "char", 0x0399, 0x0306 },
+ unicodeslot=0x1FD8,
},
[0x1FD9]={
- ["category"]="lu",
- ["contextname"]="greekIotamacron",
- ["description"]="GREEK CAPITAL LETTER IOTA WITH MACRON",
- ["lccode"]=0x1FD1,
- ["linebreak"]="al",
- ["shcode"]=0x0399,
- ["specials"]={ "char", 0x0399, 0x0304 },
- ["unicodeslot"]=0x1FD9, -- Ῑ
+ category="lu",
+ contextname="greekIotamacron",
+ description="GREEK CAPITAL LETTER IOTA WITH MACRON",
+ direction="l",
+ lccode=0x1FD1,
+ linebreak="al",
+ shcode=0x0399,
+ specials={ "char", 0x0399, 0x0304 },
+ unicodeslot=0x1FD9,
},
[0x1FDA]={
- ["category"]="lu",
- ["contextname"]="greekIotavaria",
- ["description"]="GREEK CAPITAL LETTER IOTA WITH VARIA",
- ["lccode"]=0x1F76,
- ["linebreak"]="al",
- ["shcode"]=0x0399,
- ["specials"]={ "char", 0x0399, 0x0300 },
- ["unicodeslot"]=0x1FDA, -- Ὶ
+ category="lu",
+ contextname="greekIotavaria",
+ description="GREEK CAPITAL LETTER IOTA WITH VARIA",
+ direction="l",
+ lccode=0x1F76,
+ linebreak="al",
+ shcode=0x0399,
+ specials={ "char", 0x0399, 0x0300 },
+ unicodeslot=0x1FDA,
},
[0x1FDB]={
- ["category"]="lu",
- ["contextname"]="greekIotatonos",
- ["description"]="GREEK CAPITAL LETTER IOTA WITH OXIA",
- ["lccode"]=0x1F77,
- ["linebreak"]="al",
- ["shcode"]=0x0399,
- ["specials"]={ "char", 0x038A },
- ["unicodeslot"]=0x1FDB, -- Ί
+ category="lu",
+ contextname="greekIotatonos",
+ description="GREEK CAPITAL LETTER IOTA WITH OXIA",
+ direction="l",
+ lccode=0x1F77,
+ linebreak="al",
+ shcode=0x0399,
+ specials={ "char", 0x038A },
+ unicodeslot=0x1FDB,
},
[0x1FDD]={
- ["category"]="sk",
- ["contextname"]="greekdasiavaria",
- ["description"]="GREEK DASIA AND VARIA",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x1FFE, 0x0300 },
- ["unicodeslot"]=0x1FDD, -- ῝
+ category="sk",
+ contextname="greekdasiavaria",
+ description="GREEK DASIA AND VARIA",
+ direction="on",
+ linebreak="al",
+ specials={ "char", 0x1FFE, 0x0300 },
+ unicodeslot=0x1FDD,
},
[0x1FDE]={
- ["category"]="sk",
- ["contextname"]="greekdasiatonos",
- ["description"]="GREEK DASIA AND OXIA",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x1FFE, 0x0301 },
- ["unicodeslot"]=0x1FDE, -- ῞
+ category="sk",
+ contextname="greekdasiatonos",
+ description="GREEK DASIA AND OXIA",
+ direction="on",
+ linebreak="al",
+ specials={ "char", 0x1FFE, 0x0301 },
+ unicodeslot=0x1FDE,
},
[0x1FDF]={
- ["category"]="sk",
- ["contextname"]="greekdasiaperispomeni",
- ["description"]="GREEK DASIA AND PERISPOMENI",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x1FFE, 0x0342 },
- ["unicodeslot"]=0x1FDF, -- ῟
+ category="sk",
+ contextname="greekdasiaperispomeni",
+ description="GREEK DASIA AND PERISPOMENI",
+ direction="on",
+ linebreak="al",
+ specials={ "char", 0x1FFE, 0x0342 },
+ unicodeslot=0x1FDF,
},
[0x1FE0]={
- ["category"]="ll",
- ["contextname"]="greekupsilonvrachy",
- ["description"]="GREEK SMALL LETTER UPSILON WITH VRACHY",
- ["linebreak"]="al",
- ["shcode"]=0x03C5,
- ["specials"]={ "char", 0x03C5, 0x0306 },
- ["uccode"]=0x1FE8,
- ["unicodeslot"]=0x1FE0, -- ῠ
+ category="ll",
+ contextname="greekupsilonvrachy",
+ description="GREEK SMALL LETTER UPSILON WITH VRACHY",
+ direction="l",
+ linebreak="al",
+ shcode=0x03C5,
+ specials={ "char", 0x03C5, 0x0306 },
+ uccode=0x1FE8,
+ unicodeslot=0x1FE0,
},
[0x1FE1]={
- ["category"]="ll",
- ["contextname"]="greekupsilonmacron",
- ["description"]="GREEK SMALL LETTER UPSILON WITH MACRON",
- ["linebreak"]="al",
- ["shcode"]=0x03C5,
- ["specials"]={ "char", 0x03C5, 0x0304 },
- ["uccode"]=0x1FE9,
- ["unicodeslot"]=0x1FE1, -- ῡ
+ category="ll",
+ contextname="greekupsilonmacron",
+ description="GREEK SMALL LETTER UPSILON WITH MACRON",
+ direction="l",
+ linebreak="al",
+ shcode=0x03C5,
+ specials={ "char", 0x03C5, 0x0304 },
+ uccode=0x1FE9,
+ unicodeslot=0x1FE1,
},
[0x1FE2]={
- ["category"]="ll",
- ["contextname"]="greekupsilondialytikavaria",
- ["description"]="GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA",
- ["linebreak"]="al",
- ["shcode"]=0x03C5,
- ["specials"]={ "char", 0x03CB, 0x0300 },
- ["unicodeslot"]=0x1FE2, -- ῢ
+ category="ll",
+ contextname="greekupsilondialytikavaria",
+ description="GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA",
+ direction="l",
+ linebreak="al",
+ shcode=0x03C5,
+ specials={ "char", 0x03CB, 0x0300 },
+ unicodeslot=0x1FE2,
},
[0x1FE3]={
- ["category"]="ll",
- ["contextname"]="greekupsilondialytikatonos",
- ["description"]="GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA",
- ["linebreak"]="al",
- ["shcode"]=0x03C5,
- ["specials"]={ "char", 0x03B0 },
- ["unicodeslot"]=0x1FE3, -- ΰ
+ category="ll",
+ contextname="greekupsilondialytikatonos",
+ description="GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA",
+ direction="l",
+ linebreak="al",
+ shcode=0x03C5,
+ specials={ "char", 0x03B0 },
+ unicodeslot=0x1FE3,
},
[0x1FE4]={
- ["category"]="ll",
- ["contextname"]="greekrhopsili",
- ["description"]="GREEK SMALL LETTER RHO WITH PSILI",
- ["linebreak"]="al",
- ["shcode"]=0x03C1,
- ["specials"]={ "char", 0x03C1, 0x0313 },
- ["unicodeslot"]=0x1FE4, -- ῤ
+ category="ll",
+ contextname="greekrhopsili",
+ description="GREEK SMALL LETTER RHO WITH PSILI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03C1,
+ specials={ "char", 0x03C1, 0x0313 },
+ unicodeslot=0x1FE4,
},
[0x1FE5]={
- ["category"]="ll",
- ["contextname"]="greekrhodasia",
- ["description"]="GREEK SMALL LETTER RHO WITH DASIA",
- ["linebreak"]="al",
- ["shcode"]=0x03C1,
- ["specials"]={ "char", 0x03C1, 0x0314 },
- ["uccode"]=0x1FEC,
- ["unicodeslot"]=0x1FE5, -- ῥ
+ category="ll",
+ contextname="greekrhodasia",
+ description="GREEK SMALL LETTER RHO WITH DASIA",
+ direction="l",
+ linebreak="al",
+ shcode=0x03C1,
+ specials={ "char", 0x03C1, 0x0314 },
+ uccode=0x1FEC,
+ unicodeslot=0x1FE5,
},
[0x1FE6]={
- ["category"]="ll",
- ["contextname"]="greekupsilonperispomeni",
- ["description"]="GREEK SMALL LETTER UPSILON WITH PERISPOMENI",
- ["linebreak"]="al",
- ["shcode"]=0x03C5,
- ["specials"]={ "char", 0x03C5, 0x0342 },
- ["unicodeslot"]=0x1FE6, -- ῦ
+ category="ll",
+ contextname="greekupsilonperispomeni",
+ description="GREEK SMALL LETTER UPSILON WITH PERISPOMENI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03C5,
+ specials={ "char", 0x03C5, 0x0342 },
+ unicodeslot=0x1FE6,
},
[0x1FE7]={
- ["category"]="ll",
- ["contextname"]="greekupsilondialytikaperispomeni",
- ["description"]="GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI",
- ["linebreak"]="al",
- ["shcode"]=0x03C5,
- ["specials"]={ "char", 0x03CB, 0x0342 },
- ["unicodeslot"]=0x1FE7, -- ῧ
+ category="ll",
+ contextname="greekupsilondialytikaperispomeni",
+ description="GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03C5,
+ specials={ "char", 0x03CB, 0x0342 },
+ unicodeslot=0x1FE7,
},
[0x1FE8]={
- ["category"]="lu",
- ["contextname"]="greekUpsilonvrachy",
- ["description"]="GREEK CAPITAL LETTER UPSILON WITH VRACHY",
- ["lccode"]=0x1FE0,
- ["linebreak"]="al",
- ["shcode"]=0x03A5,
- ["specials"]={ "char", 0x03A5, 0x0306 },
- ["unicodeslot"]=0x1FE8, -- Ῠ
+ category="lu",
+ contextname="greekUpsilonvrachy",
+ description="GREEK CAPITAL LETTER UPSILON WITH VRACHY",
+ direction="l",
+ lccode=0x1FE0,
+ linebreak="al",
+ shcode=0x03A5,
+ specials={ "char", 0x03A5, 0x0306 },
+ unicodeslot=0x1FE8,
},
[0x1FE9]={
- ["category"]="lu",
- ["contextname"]="greekUpsilonmacron",
- ["description"]="GREEK CAPITAL LETTER UPSILON WITH MACRON",
- ["lccode"]=0x1FE1,
- ["linebreak"]="al",
- ["shcode"]=0x03A5,
- ["specials"]={ "char", 0x03A5, 0x0304 },
- ["unicodeslot"]=0x1FE9, -- Ῡ
+ category="lu",
+ contextname="greekUpsilonmacron",
+ description="GREEK CAPITAL LETTER UPSILON WITH MACRON",
+ direction="l",
+ lccode=0x1FE1,
+ linebreak="al",
+ shcode=0x03A5,
+ specials={ "char", 0x03A5, 0x0304 },
+ unicodeslot=0x1FE9,
},
[0x1FEA]={
- ["category"]="lu",
- ["contextname"]="greekUpsilonvaria",
- ["description"]="GREEK CAPITAL LETTER UPSILON WITH VARIA",
- ["lccode"]=0x1F7A,
- ["linebreak"]="al",
- ["shcode"]=0x03A5,
- ["specials"]={ "char", 0x03A5, 0x0300 },
- ["unicodeslot"]=0x1FEA, -- Ὺ
+ category="lu",
+ contextname="greekUpsilonvaria",
+ description="GREEK CAPITAL LETTER UPSILON WITH VARIA",
+ direction="l",
+ lccode=0x1F7A,
+ linebreak="al",
+ shcode=0x03A5,
+ specials={ "char", 0x03A5, 0x0300 },
+ unicodeslot=0x1FEA,
},
[0x1FEB]={
- ["category"]="lu",
- ["contextname"]="greekUpsilontonos",
- ["description"]="GREEK CAPITAL LETTER UPSILON WITH OXIA",
- ["lccode"]=0x1F7B,
- ["linebreak"]="al",
- ["shcode"]=0x03A5,
- ["specials"]={ "char", 0x038E },
- ["unicodeslot"]=0x1FEB, -- Ύ
+ category="lu",
+ contextname="greekUpsilontonos",
+ description="GREEK CAPITAL LETTER UPSILON WITH OXIA",
+ direction="l",
+ lccode=0x1F7B,
+ linebreak="al",
+ shcode=0x03A5,
+ specials={ "char", 0x038E },
+ unicodeslot=0x1FEB,
},
[0x1FEC]={
- ["category"]="lu",
- ["contextname"]="greekRhodasia",
- ["description"]="GREEK CAPITAL LETTER RHO WITH DASIA",
- ["lccode"]=0x1FE5,
- ["linebreak"]="al",
- ["shcode"]=0x03A1,
- ["specials"]={ "char", 0x03A1, 0x0314 },
- ["unicodeslot"]=0x1FEC, -- Ῥ
+ category="lu",
+ contextname="greekRhodasia",
+ description="GREEK CAPITAL LETTER RHO WITH DASIA",
+ direction="l",
+ lccode=0x1FE5,
+ linebreak="al",
+ shcode=0x03A1,
+ specials={ "char", 0x03A1, 0x0314 },
+ unicodeslot=0x1FEC,
},
[0x1FED]={
- ["category"]="sk",
- ["contextname"]="greekdialytikavaria",
- ["description"]="GREEK DIALYTIKA AND VARIA",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x00A8, 0x0300 },
- ["unicodeslot"]=0x1FED, -- ῭
+ category="sk",
+ contextname="greekdialytikavaria",
+ description="GREEK DIALYTIKA AND VARIA",
+ direction="on",
+ linebreak="al",
+ specials={ "char", 0x00A8, 0x0300 },
+ unicodeslot=0x1FED,
},
[0x1FEE]={
- ["category"]="sk",
- ["contextname"]="greekdialytikatonos",
- ["description"]="GREEK DIALYTIKA AND OXIA",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x0385 },
- ["unicodeslot"]=0x1FEE, -- ΅
+ category="sk",
+ contextname="greekdialytikatonos",
+ description="GREEK DIALYTIKA AND OXIA",
+ direction="on",
+ linebreak="al",
+ specials={ "char", 0x0385 },
+ unicodeslot=0x1FEE,
},
[0x1FEF]={
- ["category"]="sk",
- ["contextname"]="greekvaria",
- ["description"]="GREEK VARIA",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x0060 },
- ["unicodeslot"]=0x1FEF, -- `
+ category="sk",
+ contextname="greekvaria",
+ description="GREEK VARIA",
+ direction="on",
+ linebreak="al",
+ specials={ "char", 0x0060 },
+ unicodeslot=0x1FEF,
},
[0x1FF2]={
- ["category"]="ll",
- ["contextname"]="greekomegaiotasubvaria",
- ["description"]="GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI",
- ["linebreak"]="al",
- ["shcode"]=0x03C9,
- ["specials"]={ "char", 0x1F7C, 0x0345 },
- ["unicodeslot"]=0x1FF2, -- ῲ
+ category="ll",
+ contextname="greekomegaiotasubvaria",
+ description="GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03C9,
+ specials={ "char", 0x1F7C, 0x0345 },
+ unicodeslot=0x1FF2,
},
[0x1FF3]={
- ["category"]="ll",
- ["contextname"]="greekomegaiotasub",
- ["description"]="GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI",
- ["linebreak"]="al",
- ["shcode"]=0x03C9,
- ["specials"]={ "char", 0x03C9, 0x0345 },
- ["uccode"]=0x1FFC,
- ["unicodeslot"]=0x1FF3, -- ῳ
+ category="ll",
+ contextname="greekomegaiotasub",
+ description="GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03C9,
+ specials={ "char", 0x03C9, 0x0345 },
+ uccode=0x1FFC,
+ unicodeslot=0x1FF3,
},
[0x1FF4]={
- ["category"]="ll",
- ["contextname"]="greekomegaiotasubtonos",
- ["description"]="GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI",
- ["linebreak"]="al",
- ["shcode"]=0x03C9,
- ["specials"]={ "char", 0x03CE, 0x0345 },
- ["unicodeslot"]=0x1FF4, -- ῴ
+ category="ll",
+ contextname="greekomegaiotasubtonos",
+ description="GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03C9,
+ specials={ "char", 0x03CE, 0x0345 },
+ unicodeslot=0x1FF4,
},
[0x1FF6]={
- ["category"]="ll",
- ["contextname"]="greekomegaperispomeni",
- ["description"]="GREEK SMALL LETTER OMEGA WITH PERISPOMENI",
- ["linebreak"]="al",
- ["shcode"]=0x03C9,
- ["specials"]={ "char", 0x03C9, 0x0342 },
- ["unicodeslot"]=0x1FF6, -- ῶ
+ category="ll",
+ contextname="greekomegaperispomeni",
+ description="GREEK SMALL LETTER OMEGA WITH PERISPOMENI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03C9,
+ specials={ "char", 0x03C9, 0x0342 },
+ unicodeslot=0x1FF6,
},
[0x1FF7]={
- ["category"]="ll",
- ["contextname"]="greekomegaiotasubperispomeni",
- ["description"]="GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI",
- ["linebreak"]="al",
- ["shcode"]=0x03C9,
- ["specials"]={ "char", 0x1FF6, 0x0345 },
- ["unicodeslot"]=0x1FF7, -- ῷ
+ category="ll",
+ contextname="greekomegaiotasubperispomeni",
+ description="GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI",
+ direction="l",
+ linebreak="al",
+ shcode=0x03C9,
+ specials={ "char", 0x1FF6, 0x0345 },
+ unicodeslot=0x1FF7,
},
[0x1FF8]={
- ["category"]="lu",
- ["contextname"]="greekOmicronvaria",
- ["description"]="GREEK CAPITAL LETTER OMICRON WITH VARIA",
- ["lccode"]=0x1F78,
- ["linebreak"]="al",
- ["shcode"]=0x039F,
- ["specials"]={ "char", 0x039F, 0x0300 },
- ["unicodeslot"]=0x1FF8, -- Ὸ
+ category="lu",
+ contextname="greekOmicronvaria",
+ description="GREEK CAPITAL LETTER OMICRON WITH VARIA",
+ direction="l",
+ lccode=0x1F78,
+ linebreak="al",
+ shcode=0x039F,
+ specials={ "char", 0x039F, 0x0300 },
+ unicodeslot=0x1FF8,
},
[0x1FF9]={
- ["category"]="lu",
- ["contextname"]="greekOmicrontonos",
- ["description"]="GREEK CAPITAL LETTER OMICRON WITH OXIA",
- ["lccode"]=0x1F79,
- ["linebreak"]="al",
- ["shcode"]=0x039F,
- ["specials"]={ "char", 0x038C },
- ["unicodeslot"]=0x1FF9, -- Ό
+ category="lu",
+ contextname="greekOmicrontonos",
+ description="GREEK CAPITAL LETTER OMICRON WITH OXIA",
+ direction="l",
+ lccode=0x1F79,
+ linebreak="al",
+ shcode=0x039F,
+ specials={ "char", 0x038C },
+ unicodeslot=0x1FF9,
},
[0x1FFA]={
- ["category"]="lu",
- ["contextname"]="greekOmegavaria",
- ["description"]="GREEK CAPITAL LETTER OMEGA WITH VARIA",
- ["lccode"]=0x1F7C,
- ["linebreak"]="al",
- ["shcode"]=0x03A9,
- ["specials"]={ "char", 0x03A9, 0x0300 },
- ["unicodeslot"]=0x1FFA, -- Ὼ
+ category="lu",
+ contextname="greekOmegavaria",
+ description="GREEK CAPITAL LETTER OMEGA WITH VARIA",
+ direction="l",
+ lccode=0x1F7C,
+ linebreak="al",
+ shcode=0x03A9,
+ specials={ "char", 0x03A9, 0x0300 },
+ unicodeslot=0x1FFA,
},
[0x1FFB]={
- ["category"]="lu",
- ["contextname"]="greekOmegatonos",
- ["description"]="GREEK CAPITAL LETTER OMEGA WITH OXIA",
- ["lccode"]=0x1F7D,
- ["linebreak"]="al",
- ["shcode"]=0x03A9,
- ["specials"]={ "char", 0x038F },
- ["unicodeslot"]=0x1FFB, -- Ώ
+ category="lu",
+ contextname="greekOmegatonos",
+ description="GREEK CAPITAL LETTER OMEGA WITH OXIA",
+ direction="l",
+ lccode=0x1F7D,
+ linebreak="al",
+ shcode=0x03A9,
+ specials={ "char", 0x038F },
+ unicodeslot=0x1FFB,
},
[0x1FFC]={
- ["category"]="lt",
- ["contextname"]="greekOmegaiotasub",
- ["description"]="GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI",
- ["lccode"]=0x1FF3,
- ["linebreak"]="al",
- ["shcode"]=0x03A9,
- ["specials"]={ "char", 0x03A9, 0x0345 },
- ["unicodeslot"]=0x1FFC, -- ῼ
+ category="lt",
+ contextname="greekOmegaiotasub",
+ description="GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI",
+ direction="l",
+ lccode=0x1FF3,
+ linebreak="al",
+ shcode=0x03A9,
+ specials={ "char", 0x03A9, 0x0345 },
+ unicodeslot=0x1FFC,
},
[0x1FFD]={
- ["category"]="sk",
- ["contextname"]="greekoxia",
- ["description"]="GREEK OXIA",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x00B4 },
- ["unicodeslot"]=0x1FFD, -- ´
+ category="sk",
+ contextname="greekoxia",
+ description="GREEK OXIA",
+ direction="on",
+ linebreak="al",
+ specials={ "char", 0x00B4 },
+ unicodeslot=0x1FFD,
},
[0x1FFE]={
- ["category"]="sk",
- ["contextname"]="greekdasia",
- ["description"]="GREEK DASIA",
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x0020, 0x0314 },
- ["unicodeslot"]=0x1FFE, -- ῾
+ category="sk",
+ contextname="greekdasia",
+ description="GREEK DASIA",
+ direction="on",
+ linebreak="al",
+ specials={ "compat", 0x0020, 0x0314 },
+ unicodeslot=0x1FFE,
},
[0x2000]={
- ["category"]="zs",
- ["description"]="EN QUAD",
- ["linebreak"]="ba",
- ["specials"]={ "char", 0x2002 },
- ["unicodeslot"]=0x2000, --  
+ category="zs",
+ description="EN QUAD",
+ direction="ws",
+ linebreak="ba",
+ specials={ "char", 0x2002 },
+ unicodeslot=0x2000,
},
[0x2001]={
- ["category"]="zs",
- ["description"]="EM QUAD",
- ["linebreak"]="ba",
- ["specials"]={ "char", 0x2003 },
- ["unicodeslot"]=0x2001, --  
+ category="zs",
+ description="EM QUAD",
+ direction="ws",
+ linebreak="ba",
+ specials={ "char", 0x2003 },
+ unicodeslot=0x2001,
},
[0x2002]={
- ["category"]="zs",
- ["contextname"]="enspace",
- ["description"]="EN SPACE",
- ["linebreak"]="ba",
- ["specials"]={ "compat", 0x0020 },
- ["unicodeslot"]=0x2002, --  
+ category="zs",
+ contextname="enspace",
+ description="EN SPACE",
+ direction="ws",
+ linebreak="ba",
+ specials={ "compat", 0x0020 },
+ unicodeslot=0x2002,
},
[0x2003]={
- ["category"]="zs",
- ["contextname"]="emspace",
- ["description"]="EM SPACE",
- ["linebreak"]="ba",
- ["specials"]={ "compat", 0x0020 },
- ["unicodeslot"]=0x2003, --  
+ category="zs",
+ contextname="emspace",
+ description="EM SPACE",
+ direction="ws",
+ linebreak="ba",
+ specials={ "compat", 0x0020 },
+ unicodeslot=0x2003,
},
[0x2004]={
- ["category"]="zs",
- ["description"]="THREE-PER-EM SPACE",
- ["linebreak"]="ba",
- ["specials"]={ "compat", 0x0020 },
- ["unicodeslot"]=0x2004, --  
+ category="zs",
+ contextname="threeperemspace",
+ description="THREE-PER-EM SPACE",
+ direction="ws",
+ linebreak="ba",
+ specials={ "compat", 0x0020 },
+ unicodeslot=0x2004,
},
[0x2005]={
- ["category"]="zs",
- ["description"]="FOUR-PER-EM SPACE",
- ["linebreak"]="ba",
- ["specials"]={ "compat", 0x0020 },
- ["unicodeslot"]=0x2005, --  
+ category="zs",
+ contextname="fourperemspace",
+ description="FOUR-PER-EM SPACE",
+ direction="ws",
+ linebreak="ba",
+ specials={ "compat", 0x0020 },
+ unicodeslot=0x2005,
},
[0x2006]={
- ["category"]="zs",
- ["description"]="SIX-PER-EM SPACE",
- ["linebreak"]="ba",
- ["specials"]={ "compat", 0x0020 },
- ["unicodeslot"]=0x2006, --  
+ category="zs",
+ contextname="sixperemspace",
+ description="SIX-PER-EM SPACE",
+ direction="ws",
+ linebreak="ba",
+ specials={ "compat", 0x0020 },
+ unicodeslot=0x2006,
},
[0x2007]={
- ["category"]="zs",
- ["description"]="FIGURE SPACE",
- ["linebreak"]="gl",
- ["specials"]={ "nobreak", 0x0020 },
- ["unicodeslot"]=0x2007, --  
+ category="zs",
+ contextname="figurespace",
+ description="FIGURE SPACE",
+ direction="ws",
+ linebreak="gl",
+ specials={ "nobreak", 0x0020 },
+ unicodeslot=0x2007,
},
[0x2008]={
- ["category"]="zs",
- ["description"]="PUNCTUATION SPACE",
- ["linebreak"]="ba",
- ["specials"]={ "compat", 0x0020 },
- ["unicodeslot"]=0x2008, --  
+ category="zs",
+ contextname="punctuationspace",
+ description="PUNCTUATION SPACE",
+ direction="ws",
+ linebreak="ba",
+ specials={ "compat", 0x0020 },
+ unicodeslot=0x2008,
},
[0x2009]={
- ["category"]="zs",
- ["contextname"]="thinspace",
- ["description"]="THIN SPACE",
- ["linebreak"]="ba",
- ["specials"]={ "compat", 0x0020 },
- ["unicodeslot"]=0x2009, --  
+ category="zs",
+ contextname="breakablethinspace",
+ description="THIN SPACE",
+ direction="ws",
+ linebreak="ba",
+ specials={ "compat", 0x0020 },
+ unicodeslot=0x2009,
},
[0x200A]={
- ["category"]="zs",
- ["contextname"]="hairspace",
- ["description"]="HAIR SPACE",
- ["linebreak"]="ba",
- ["specials"]={ "compat", 0x0020 },
- ["unicodeslot"]=0x200A, --  
+ category="zs",
+ contextname="figurespace",
+ description="HAIR SPACE",
+ direction="ws",
+ linebreak="ba",
+ specials={ "compat", 0x0020 },
+ unicodeslot=0x200A,
},
[0x200B]={
- ["category"]="cf",
- ["description"]="ZERO WIDTH SPACE",
- ["linebreak"]="zw",
- ["unicodeslot"]=0x200B, -- ​
+ category="cf",
+ contextname="zerowidthspace",
+ description="ZERO WIDTH SPACE",
+ direction="bn",
+ linebreak="zw",
+ unicodeslot=0x200B,
},
[0x200C]={
- ["adobename"]="afii61664",
- ["category"]="cf",
- ["description"]="ZERO WIDTH NON-JOINER",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x200C, -- ‌
+ adobename="afii61664",
+ category="cf",
+ description="ZERO WIDTH NON-JOINER",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x200C,
},
[0x200D]={
- ["adobename"]="afii301",
- ["category"]="cf",
- ["description"]="ZERO WIDTH JOINER",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x200D, -- ‍
+ adobename="afii301",
+ category="cf",
+ description="ZERO WIDTH JOINER",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x200D,
},
[0x200E]={
- ["adobename"]="afii299",
- ["category"]="cf",
- ["description"]="LEFT-TO-RIGHT MARK",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x200E, -- ‎
+ adobename="afii299",
+ category="cf",
+ description="LEFT-TO-RIGHT MARK",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x200E,
},
[0x200F]={
- ["adobename"]="afii300",
- ["category"]="cf",
- ["description"]="RIGHT-TO-LEFT MARK",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x200F, -- ‏
+ adobename="afii300",
+ category="cf",
+ description="RIGHT-TO-LEFT MARK",
+ direction="r",
+ linebreak="cm",
+ unicodeslot=0x200F,
},
[0x2010]={
- ["category"]="pd",
- ["cjkwd"]="a",
- ["description"]="HYPHEN",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x2010, -- ‐
+ category="pd",
+ cjkwd="a",
+ description="HYPHEN",
+ direction="on",
+ linebreak="ba",
+ unicodeslot=0x2010,
},
[0x2011]={
- ["category"]="pd",
- ["description"]="NON-BREAKING HYPHEN",
- ["linebreak"]="gl",
- ["specials"]={ "nobreak", 0x2010 },
- ["unicodeslot"]=0x2011, -- ‑
+ category="pd",
+ description="NON-BREAKING HYPHEN",
+ direction="on",
+ linebreak="gl",
+ specials={ "nobreak", 0x2010 },
+ unicodeslot=0x2011,
},
[0x2012]={
- ["adobename"]="figuredash",
- ["category"]="pd",
- ["contextname"]="textminus",
- ["description"]="FIGURE DASH",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x2012, -- ‒
+ adobename="figuredash",
+ category="pd",
+ contextname="textminus",
+ description="FIGURE DASH",
+ direction="on",
+ linebreak="ba",
+ unicodeslot=0x2012,
},
[0x2013]={
- ["adobename"]="endash",
- ["category"]="pd",
- ["cjkwd"]="a",
- ["contextname"]="endash",
- ["description"]="EN DASH",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x2013, -- –
+ adobename="endash",
+ category="pd",
+ cjkwd="a",
+ contextname="endash",
+ description="EN DASH",
+ direction="on",
+ linebreak="ba",
+ unicodeslot=0x2013,
},
[0x2014]={
- ["adobename"]="emdash",
- ["category"]="pd",
- ["cjkwd"]="a",
- ["contextname"]="emdash",
- ["description"]="EM DASH",
- ["linebreak"]="b2",
- ["unicodeslot"]=0x2014, -- —
+ adobename="emdash",
+ category="pd",
+ cjkwd="a",
+ contextname="emdash",
+ description="EM DASH",
+ direction="on",
+ linebreak="b2",
+ unicodeslot=0x2014,
},
[0x2015]={
- ["adobename"]="afii208",
- ["category"]="pd",
- ["cjkwd"]="a",
- ["contextname"]="texthorizontalbar",
- ["description"]="HORIZONTAL BAR",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2015, -- ―
+ adobename="afii208",
+ category="pd",
+ cjkwd="a",
+ contextname="texthorizontalbar",
+ description="HORIZONTAL BAR",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2015,
},
[0x2016]={
- ["category"]="po",
- ["cjkwd"]="a",
- ["description"]="DOUBLE VERTICAL LINE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2016, -- ‖
+ category="po",
+ cjkwd="a",
+ description="DOUBLE VERTICAL LINE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2016,
},
[0x2017]={
- ["adobename"]="underscoredbl",
- ["category"]="po",
- ["description"]="DOUBLE LOW LINE",
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x0020, 0x0333 },
- ["unicodeslot"]=0x2017, -- ‗
+ adobename="underscoredbl",
+ category="po",
+ description="DOUBLE LOW LINE",
+ direction="on",
+ linebreak="al",
+ specials={ "compat", 0x0020, 0x0333 },
+ unicodeslot=0x2017,
},
[0x2018]={
- ["adobename"]="quoteleft",
- ["category"]="pi",
- ["cjkwd"]="a",
- ["contextname"]="quoteleft",
- ["description"]="LEFT SINGLE QUOTATION MARK",
- ["linebreak"]="qu",
- ["unicodeslot"]=0x2018, -- ‘
+ adobename="quoteleft",
+ category="pi",
+ cjkwd="a",
+ contextname="quoteleft",
+ description="LEFT SINGLE QUOTATION MARK",
+ direction="on",
+ linebreak="qu",
+ unicodeslot=0x2018,
},
[0x2019]={
- ["adobename"]="quoteright",
- ["category"]="pf",
- ["cjkwd"]="a",
- ["contextname"]="quoteright",
- ["description"]="RIGHT SINGLE QUOTATION MARK",
- ["linebreak"]="qu",
- ["unicodeslot"]=0x2019, -- ’
+ adobename="quoteright",
+ category="pf",
+ cjkwd="a",
+ contextname="quoteright",
+ description="RIGHT SINGLE QUOTATION MARK",
+ direction="on",
+ linebreak="qu",
+ unicodeslot=0x2019,
},
[0x201A]={
- ["adobename"]="quotesinglbase",
- ["category"]="ps",
- ["contextname"]="quotesinglebase",
- ["description"]="SINGLE LOW-0x0009 QUOTATION MARK",
- ["linebreak"]="op",
- ["unicodeslot"]=0x201A, -- ‚
+ adobename="quotesinglbase",
+ category="ps",
+ contextname="quotesinglebase",
+ description="SINGLE LOW-0x0009 QUOTATION MARK",
+ direction="on",
+ linebreak="op",
+ unicodeslot=0x201A,
},
[0x201B]={
- ["adobename"]="quotereversed",
- ["category"]="pi",
- ["description"]="SINGLE HIGH-REVERSED-0x0009 QUOTATION MARK",
- ["linebreak"]="qu",
- ["unicodeslot"]=0x201B, -- ‛
+ adobename="quotereversed",
+ category="pi",
+ description="SINGLE HIGH-REVERSED-0x0009 QUOTATION MARK",
+ direction="on",
+ linebreak="qu",
+ unicodeslot=0x201B,
},
[0x201C]={
- ["adobename"]="quotedblleft",
- ["category"]="pi",
- ["cjkwd"]="a",
- ["contextname"]="quotedblleft",
- ["description"]="LEFT DOUBLE QUOTATION MARK",
- ["linebreak"]="qu",
- ["unicodeslot"]=0x201C, -- “
+ adobename="quotedblleft",
+ category="pi",
+ cjkwd="a",
+ contextname="quotedblleft",
+ description="LEFT DOUBLE QUOTATION MARK",
+ direction="on",
+ linebreak="qu",
+ unicodeslot=0x201C,
},
[0x201D]={
- ["adobename"]="quotedblright",
- ["category"]="pf",
- ["cjkwd"]="a",
- ["contextname"]="quotedblright",
- ["description"]="RIGHT DOUBLE QUOTATION MARK",
- ["linebreak"]="qu",
- ["unicodeslot"]=0x201D, -- ”
+ adobename="quotedblright",
+ category="pf",
+ cjkwd="a",
+ contextname="quotedblright",
+ description="RIGHT DOUBLE QUOTATION MARK",
+ direction="on",
+ linebreak="qu",
+ unicodeslot=0x201D,
},
[0x201E]={
- ["adobename"]="quotedblbase",
- ["category"]="ps",
- ["contextname"]="quotedblbase",
- ["description"]="DOUBLE LOW-0x0009 QUOTATION MARK",
- ["linebreak"]="op",
- ["unicodeslot"]=0x201E, -- „
+ adobename="quotedblbase",
+ category="ps",
+ contextname="quotedblbase",
+ description="DOUBLE LOW-0x0009 QUOTATION MARK",
+ direction="on",
+ linebreak="op",
+ unicodeslot=0x201E,
},
[0x201F]={
- ["category"]="pi",
- ["description"]="DOUBLE HIGH-REVERSED-0x0009 QUOTATION MARK",
- ["linebreak"]="qu",
- ["unicodeslot"]=0x201F, -- ‟
+ category="pi",
+ description="DOUBLE HIGH-REVERSED-0x0009 QUOTATION MARK",
+ direction="on",
+ linebreak="qu",
+ unicodeslot=0x201F,
},
[0x2020]={
- ["adobename"]="dagger",
- ["category"]="po",
- ["cjkwd"]="a",
- ["contextname"]="textdag",
- ["description"]="DAGGER",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2020, -- †
+ adobename="dagger",
+ category="po",
+ cjkwd="a",
+ contextname="textdag",
+ description="DAGGER",
+ direction="on",
+ linebreak="ai",
+ mathspec={
+ { class="binary", name="dagger" },
+ { class="box", name="dag" },
+ },
+ unicodeslot=0x2020,
},
[0x2021]={
- ["adobename"]="daggerdbl",
- ["category"]="po",
- ["cjkwd"]="a",
- ["contextname"]="textddag",
- ["description"]="DOUBLE DAGGER",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2021, -- ‡
+ adobename="daggerdbl",
+ category="po",
+ cjkwd="a",
+ contextname="textddag",
+ description="DOUBLE DAGGER",
+ direction="on",
+ linebreak="ai",
+ mathspec={
+ { class="binary", name="ddagger" },
+ { class="box", name="ddag" },
+ },
+ unicodeslot=0x2021,
},
[0x2022]={
- ["adobename"]="bullet",
- ["category"]="po",
- ["cjkwd"]="a",
- ["contextname"]="textbullet",
- ["mathclass"]="binary", -- ok? AM: yes
- ["mathname"] = "bullet",
- ["description"]="BULLET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2022, -- •
+ adobename="bullet",
+ category="po",
+ cjkwd="a",
+ contextname="textbullet",
+ description="BULLET",
+ direction="on",
+ linebreak="al",
+ mathclass="binary",
+ mathname="bullet",
+ unicodeslot=0x2022,
},
[0x2023]={
- ["category"]="po",
- ["description"]="TRIANGULAR BULLET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2023, -- ‣
+ category="po",
+ description="TRIANGULAR BULLET",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2023,
},
[0x2024]={
- ["adobename"]="onedotenleader",
- ["category"]="po",
- ["cjkwd"]="a",
- ["description"]="ONE DOT LEADER",
- ["linebreak"]="in",
- ["specials"]={ "compat", 0x002E },
- ["unicodeslot"]=0x2024, -- ․
+ adobename="onedotenleader",
+ category="po",
+ cjkwd="a",
+ description="ONE DOT LEADER",
+ direction="on",
+ linebreak="in",
+ specials={ "compat", 0x002E },
+ unicodeslot=0x2024,
},
[0x2025]={
- ["adobename"]="twodotenleader",
- ["category"]="po",
- ["cjkwd"]="a",
- ["description"]="TWO DOT LEADER",
- ["linebreak"]="in",
- ["specials"]={ "compat", 0x002E, 0x002E },
- ["unicodeslot"]=0x2025, -- ‥
+ adobename="twodotenleader",
+ category="po",
+ cjkwd="a",
+ description="TWO DOT LEADER",
+ direction="on",
+ linebreak="in",
+ specials={ "compat", 0x002E, 0x002E },
+ unicodeslot=0x2025,
},
[0x2026]={
- ["adobename"]="ellipsis",
- ["category"]="po",
- ["cjkwd"]="a",
- ["contextname"]="textellipsis",
- ["description"]="HORIZONTAL ELLIPSIS",
- ["linebreak"]="in",
- ["specials"]={ "compat", 0x002E, 0x002E, 0x002E },
- ["unicodeslot"]=0x2026, -- …
+ adobename="ellipsis",
+ category="po",
+ cjkwd="a",
+ contextname="textellipsis",
+ description="HORIZONTAL ELLIPSIS",
+ direction="on",
+ linebreak="in",
+ mathclass="inner",
+ mathname="ldots",
+ specials={ "compat", 0x002E, 0x002E, 0x002E },
+ unicodeslot=0x2026,
},
[0x2027]={
- ["category"]="po",
- ["cjkwd"]="a",
- ["description"]="HYPHENATION POINT",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x2027, -- ‧
+ category="po",
+ cjkwd="a",
+ description="HYPHENATION POINT",
+ direction="on",
+ linebreak="ba",
+ unicodeslot=0x2027,
},
[0x2028]={
- ["category"]="zl",
- ["description"]="LINE SEPARATOR",
- ["linebreak"]="bk",
- ["unicodeslot"]=0x2028, -- 

+ category="zl",
+ description="LINE SEPARATOR",
+ direction="ws",
+ linebreak="bk",
+ unicodeslot=0x2028,
},
[0x2029]={
- ["category"]="zp",
- ["description"]="PARAGRAPH SEPARATOR",
- ["linebreak"]="bk",
- ["unicodeslot"]=0x2029, -- 

+ category="zp",
+ description="PARAGRAPH SEPARATOR",
+ direction="b",
+ linebreak="bk",
+ unicodeslot=0x2029,
},
[0x202A]={
- ["category"]="cf",
- ["description"]="LEFT-TO-RIGHT EMBEDDING",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x202A, -- ‪
+ category="cf",
+ description="LEFT-TO-RIGHT EMBEDDING",
+ direction="lre",
+ linebreak="cm",
+ unicodeslot=0x202A,
},
[0x202B]={
- ["category"]="cf",
- ["description"]="RIGHT-TO-LEFT EMBEDDING",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x202B, -- ‫
+ category="cf",
+ description="RIGHT-TO-LEFT EMBEDDING",
+ direction="rle",
+ linebreak="cm",
+ unicodeslot=0x202B,
},
[0x202C]={
- ["adobename"]="afii61573",
- ["category"]="cf",
- ["description"]="POP DIRECTIONAL FORMATTING",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x202C, -- ‬
+ adobename="afii61573",
+ category="cf",
+ description="POP DIRECTIONAL FORMATTING",
+ direction="pdf",
+ linebreak="cm",
+ unicodeslot=0x202C,
},
[0x202D]={
- ["adobename"]="afii61574",
- ["category"]="cf",
- ["description"]="LEFT-TO-RIGHT OVERRIDE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x202D, -- ‭
+ adobename="afii61574",
+ category="cf",
+ description="LEFT-TO-RIGHT OVERRIDE",
+ direction="lro",
+ linebreak="cm",
+ unicodeslot=0x202D,
},
[0x202E]={
- ["adobename"]="afii61575",
- ["category"]="cf",
- ["description"]="RIGHT-TO-LEFT OVERRIDE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x202E, -- ‮
+ adobename="afii61575",
+ category="cf",
+ description="RIGHT-TO-LEFT OVERRIDE",
+ direction="rlo",
+ linebreak="cm",
+ unicodeslot=0x202E,
},
[0x202F]={
- ["category"]="zs",
- ["description"]="NARROW NO-BREAK SPACE",
- ["linebreak"]="gl",
- ["specials"]={ "nobreak", 0x0020 },
- ["unicodeslot"]=0x202F, --  
+ category="zs",
+ contextname="narrownobreakspace",
+ description="NARROW NO-BREAK SPACE",
+ direction="cs",
+ linebreak="gl",
+ specials={ "nobreak", 0x0020 },
+ unicodeslot=0x202F,
},
[0x2030]={
- ["adobename"]="perthousand",
- ["category"]="po",
- ["cjkwd"]="a",
- ["contextname"]="perthousand",
- ["description"]="PER MILLE SIGN",
- ["linebreak"]="po",
- ["unicodeslot"]=0x2030, -- ‰
+ adobename="perthousand",
+ category="po",
+ cjkwd="a",
+ contextname="perthousand",
+ description="PER MILLE SIGN",
+ direction="et",
+ linebreak="po",
+ unicodeslot=0x2030,
},
[0x2031]={
- ["category"]="po",
- ["description"]="PER TEN THOUSAND SIGN",
- ["linebreak"]="po",
- ["unicodeslot"]=0x2031, -- ‱
+ category="po",
+ description="PER TEN THOUSAND SIGN",
+ direction="et",
+ linebreak="po",
+ unicodeslot=0x2031,
},
[0x2032]={
- ["adobename"]="minute",
- ["category"]="po",
- ["cjkwd"]="a",
- ["description"]="PRIME",
- ["linebreak"]="po",
- ["unicodeslot"]=0x2032, -- ′
+ adobename="minute",
+ category="po",
+ cjkwd="a",
+ description="PRIME",
+ direction="et",
+ linebreak="po",
+ mathclass="nothing",
+ mathname="prime",
+ unicodeslot=0x2032,
},
[0x2033]={
- ["adobename"]="second",
- ["category"]="po",
- ["cjkwd"]="a",
- ["description"]="DOUBLE PRIME",
- ["linebreak"]="po",
- ["specials"]={ "compat", 0x2032, 0x2032 },
- ["unicodeslot"]=0x2033, -- ″
+ adobename="second",
+ category="po",
+ cjkwd="a",
+ description="DOUBLE PRIME",
+ direction="et",
+ linebreak="po",
+ specials={ "compat", 0x2032, 0x2032 },
+ unicodeslot=0x2033,
},
[0x2034]={
- ["category"]="po",
- ["description"]="TRIPLE PRIME",
- ["linebreak"]="po",
- ["specials"]={ "compat", 0x2032, 0x2032, 0x2032 },
- ["unicodeslot"]=0x2034, -- ‴
+ category="po",
+ description="TRIPLE PRIME",
+ direction="et",
+ linebreak="po",
+ specials={ "compat", 0x2032, 0x2032, 0x2032 },
+ unicodeslot=0x2034,
},
[0x2035]={
- ["category"]="po",
- ["cjkwd"]="a",
- ["description"]="REVERSED PRIME",
- ["linebreak"]="po",
- ["unicodeslot"]=0x2035, -- ‵
+ category="po",
+ cjkwd="a",
+ description="REVERSED PRIME",
+ direction="on",
+ linebreak="po",
+ unicodeslot=0x2035,
},
[0x2036]={
- ["category"]="po",
- ["description"]="REVERSED DOUBLE PRIME",
- ["linebreak"]="po",
- ["specials"]={ "compat", 0x2035, 0x2035 },
- ["unicodeslot"]=0x2036, -- ‶
+ category="po",
+ description="REVERSED DOUBLE PRIME",
+ direction="on",
+ linebreak="po",
+ specials={ "compat", 0x2035, 0x2035 },
+ unicodeslot=0x2036,
},
[0x2037]={
- ["category"]="po",
- ["description"]="REVERSED TRIPLE PRIME",
- ["linebreak"]="po",
- ["specials"]={ "compat", 0x2035, 0x2035, 0x2035 },
- ["unicodeslot"]=0x2037, -- ‷
+ category="po",
+ description="REVERSED TRIPLE PRIME",
+ direction="on",
+ linebreak="po",
+ specials={ "compat", 0x2035, 0x2035, 0x2035 },
+ unicodeslot=0x2037,
},
[0x2038]={
- ["category"]="po",
- ["description"]="CARET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2038, -- ‸
+ category="po",
+ description="CARET",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2038,
},
[0x2039]={
- ["adobename"]="guilsinglleft",
- ["category"]="pi",
- ["contextname"]="guilsingleleft",
- ["description"]="SINGLE LEFT-POINTING ANGLE QUOTATION MARK",
- ["linebreak"]="qu",
- ["unicodeslot"]=0x2039, -- ‹
+ adobename="guilsinglleft",
+ category="pi",
+ contextname="guilsingleleft",
+ description="SINGLE LEFT-POINTING ANGLE QUOTATION MARK",
+ direction="on",
+ linebreak="qu",
+ mirror=0x203A,
+ unicodeslot=0x2039,
},
[0x203A]={
- ["adobename"]="guilsinglright",
- ["category"]="pf",
- ["contextname"]="guilsingleright",
- ["description"]="SINGLE RIGHT-POINTING ANGLE QUOTATION MARK",
- ["linebreak"]="qu",
- ["unicodeslot"]=0x203A, -- ›
+ adobename="guilsinglright",
+ category="pf",
+ contextname="guilsingleright",
+ description="SINGLE RIGHT-POINTING ANGLE QUOTATION MARK",
+ direction="on",
+ linebreak="qu",
+ mirror=0x2039,
+ unicodeslot=0x203A,
},
[0x203B]={
- ["category"]="po",
- ["cjkwd"]="a",
- ["description"]="REFERENCE MARK",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x203B, -- ※
+ category="po",
+ cjkwd="a",
+ description="REFERENCE MARK",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x203B,
},
[0x203C]={
- ["adobename"]="exclamdbl",
- ["category"]="po",
- ["description"]="DOUBLE EXCLAMATION MARK",
- ["linebreak"]="ns",
- ["specials"]={ "compat", 0x0021, 0x0021 },
- ["unicodeslot"]=0x203C, -- ‼
+ adobename="exclamdbl",
+ category="po",
+ description="DOUBLE EXCLAMATION MARK",
+ direction="on",
+ linebreak="ns",
+ specials={ "compat", 0x0021, 0x0021 },
+ unicodeslot=0x203C,
},
[0x203D]={
- ["category"]="po",
- ["description"]="INTERROBANG",
- ["linebreak"]="ns",
- ["unicodeslot"]=0x203D, -- ‽
+ category="po",
+ description="INTERROBANG",
+ direction="on",
+ linebreak="ns",
+ unicodeslot=0x203D,
},
[0x203E]={
- ["category"]="po",
- ["cjkwd"]="a",
- ["description"]="OVERLINE",
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x0020, 0x0305 },
- ["unicodeslot"]=0x203E, -- ‾
+ category="po",
+ cjkwd="a",
+ description="OVERLINE",
+ direction="on",
+ linebreak="al",
+ specials={ "compat", 0x0020, 0x0305 },
+ unicodeslot=0x203E,
},
[0x203F]={
- ["category"]="pc",
- ["description"]="UNDERTIE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x203F, -- ‿
+ category="pc",
+ description="UNDERTIE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x203F,
},
[0x2040]={
- ["category"]="pc",
- ["description"]="CHARACTER TIE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2040, -- ⁀
+ category="pc",
+ description="CHARACTER TIE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2040,
},
[0x2041]={
- ["category"]="po",
- ["description"]="CARET INSERTION POINT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2041, -- ⁁
+ category="po",
+ description="CARET INSERTION POINT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2041,
},
[0x2042]={
- ["category"]="po",
- ["description"]="ASTERISM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2042, -- ⁂
+ category="po",
+ description="ASTERISM",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2042,
},
[0x2043]={
- ["category"]="po",
- ["description"]="HYPHEN BULLET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2043, -- ⁃
+ category="po",
+ description="HYPHEN BULLET",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2043,
},
[0x2044]={
- ["adobename"]="fraction",
- ["category"]="sm",
- ["description"]="FRACTION SLASH",
- ["linebreak"]="is",
- ["unicodeslot"]=0x2044, -- ⁄
+ adobename="fraction",
+ category="sm",
+ contextname="textfraction",
+ description="FRACTION SLASH",
+ direction="cs",
+ linebreak="is",
+ mathspec={
+ { class="binary", name="slash" },
+ { class="close", name="solidus" },
+ },
+ unicodeslot=0x2044,
},
[0x2045]={
- ["category"]="ps",
- ["description"]="LEFT SQUARE BRACKET WITH QUILL",
- ["linebreak"]="op",
- ["unicodeslot"]=0x2045, -- ⁅
+ category="ps",
+ description="LEFT SQUARE BRACKET WITH QUILL",
+ direction="on",
+ linebreak="op",
+ mirror=0x2046,
+ unicodeslot=0x2045,
},
[0x2046]={
- ["category"]="pe",
- ["description"]="RIGHT SQUARE BRACKET WITH QUILL",
- ["linebreak"]="cl",
- ["unicodeslot"]=0x2046, -- ⁆
+ category="pe",
+ description="RIGHT SQUARE BRACKET WITH QUILL",
+ direction="on",
+ linebreak="cl",
+ mirror=0x2045,
+ unicodeslot=0x2046,
},
[0x2047]={
- ["category"]="po",
- ["description"]="DOUBLE QUESTION MARK",
- ["linebreak"]="ns",
- ["specials"]={ "compat", 0x003F, 0x003F },
- ["unicodeslot"]=0x2047, -- ⁇
+ category="po",
+ description="DOUBLE QUESTION MARK",
+ direction="on",
+ linebreak="ns",
+ specials={ "compat", 0x003F, 0x003F },
+ unicodeslot=0x2047,
},
[0x2048]={
- ["category"]="po",
- ["description"]="QUESTION EXCLAMATION MARK",
- ["linebreak"]="ns",
- ["specials"]={ "compat", 0x003F, 0x0021 },
- ["unicodeslot"]=0x2048, -- ⁈
+ category="po",
+ description="QUESTION EXCLAMATION MARK",
+ direction="on",
+ linebreak="ns",
+ specials={ "compat", 0x003F, 0x0021 },
+ unicodeslot=0x2048,
},
[0x2049]={
- ["category"]="po",
- ["description"]="EXCLAMATION QUESTION MARK",
- ["linebreak"]="ns",
- ["specials"]={ "compat", 0x0021, 0x003F },
- ["unicodeslot"]=0x2049, -- ⁉
+ category="po",
+ description="EXCLAMATION QUESTION MARK",
+ direction="on",
+ linebreak="ns",
+ specials={ "compat", 0x0021, 0x003F },
+ unicodeslot=0x2049,
},
[0x204A]={
- ["category"]="po",
- ["description"]="TIRONIAN SIGN ET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x204A, -- ⁊
+ category="po",
+ description="TIRONIAN SIGN ET",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x204A,
},
[0x204B]={
- ["category"]="po",
- ["description"]="REVERSED PILCROW SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x204B, -- ⁋
+ category="po",
+ description="REVERSED PILCROW SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x204B,
},
[0x204C]={
- ["category"]="po",
- ["description"]="BLACK LEFTWARDS BULLET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x204C, -- ⁌
+ category="po",
+ description="BLACK LEFTWARDS BULLET",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x204C,
},
[0x204D]={
- ["category"]="po",
- ["description"]="BLACK RIGHTWARDS BULLET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x204D, -- ⁍
+ category="po",
+ description="BLACK RIGHTWARDS BULLET",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x204D,
},
[0x204E]={
- ["category"]="po",
- ["description"]="LOW ASTERISK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x204E, -- ⁎
+ category="po",
+ description="LOW ASTERISK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x204E,
},
[0x204F]={
- ["category"]="po",
- ["description"]="REVERSED SEMICOLON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x204F, -- ⁏
+ category="po",
+ description="REVERSED SEMICOLON",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x204F,
},
[0x2050]={
- ["category"]="po",
- ["description"]="CLOSE UP",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2050, -- ⁐
+ category="po",
+ description="CLOSE UP",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2050,
},
[0x2051]={
- ["category"]="po",
- ["description"]="TWO ASTERISKS ALIGNED VERTICALLY",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2051, -- ⁑
+ category="po",
+ description="TWO ASTERISKS ALIGNED VERTICALLY",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2051,
},
[0x2052]={
- ["category"]="sm",
- ["description"]="COMMERCIAL MINUS SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2052, -- ⁒
+ category="sm",
+ description="COMMERCIAL MINUS SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2052,
},
[0x2053]={
- ["category"]="po",
- ["description"]="SWUNG DASH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2053, -- ⁓
+ category="po",
+ description="SWUNG DASH",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2053,
},
[0x2054]={
- ["category"]="pc",
- ["description"]="INVERTED UNDERTIE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2054, -- ⁔
+ category="pc",
+ description="INVERTED UNDERTIE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2054,
},
[0x2055]={
- ["category"]="po",
- ["description"]="FLOWER PUNCTUATION MARK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2055, -- ⁕
+ category="po",
+ description="FLOWER PUNCTUATION MARK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2055,
},
[0x2056]={
- ["category"]="po",
- ["description"]="THREE DOT PUNCTUATION",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x2056, -- ⁖
+ category="po",
+ description="THREE DOT PUNCTUATION",
+ direction="on",
+ linebreak="ba",
+ unicodeslot=0x2056,
},
[0x2057]={
- ["category"]="po",
- ["description"]="QUADRUPLE PRIME",
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x2032, 0x2032, 0x2032, 0x2032 },
- ["unicodeslot"]=0x2057, -- ⁗
+ category="po",
+ description="QUADRUPLE PRIME",
+ direction="on",
+ linebreak="al",
+ specials={ "compat", 0x2032, 0x2032, 0x2032, 0x2032 },
+ unicodeslot=0x2057,
},
[0x2058]={
- ["category"]="po",
- ["description"]="FOUR DOT PUNCTUATION",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x2058, -- ⁘
+ category="po",
+ description="FOUR DOT PUNCTUATION",
+ direction="on",
+ linebreak="ba",
+ unicodeslot=0x2058,
},
[0x2059]={
- ["category"]="po",
- ["description"]="FIVE DOT PUNCTUATION",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x2059, -- ⁙
+ category="po",
+ description="FIVE DOT PUNCTUATION",
+ direction="on",
+ linebreak="ba",
+ unicodeslot=0x2059,
},
[0x205A]={
- ["category"]="po",
- ["description"]="TWO DOT PUNCTUATION",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x205A, -- ⁚
+ category="po",
+ description="TWO DOT PUNCTUATION",
+ direction="on",
+ linebreak="ba",
+ unicodeslot=0x205A,
},
[0x205B]={
- ["category"]="po",
- ["description"]="FOUR DOT MARK",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x205B, -- ⁛
+ category="po",
+ description="FOUR DOT MARK",
+ direction="on",
+ linebreak="ba",
+ unicodeslot=0x205B,
},
[0x205C]={
- ["category"]="po",
- ["description"]="DOTTED CROSS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x205C, -- ⁜
+ category="po",
+ description="DOTTED CROSS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x205C,
},
[0x205D]={
- ["category"]="po",
- ["description"]="TRICOLON",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x205D, -- ⁝
+ category="po",
+ description="TRICOLON",
+ direction="on",
+ linebreak="ba",
+ unicodeslot=0x205D,
},
[0x205E]={
- ["category"]="po",
- ["description"]="VERTICAL FOUR DOTS",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x205E, -- ⁞
+ category="po",
+ description="VERTICAL FOUR DOTS",
+ direction="on",
+ linebreak="ba",
+ unicodeslot=0x205E,
},
[0x205F]={
- ["category"]="zs",
- ["description"]="MEDIUM MATHEMATICAL SPACE",
- ["linebreak"]="ba",
- ["specials"]={ "compat", 0x0020 },
- ["unicodeslot"]=0x205F, --  
+ category="zs",
+ contextname="medspace",
+ description="MEDIUM MATHEMATICAL SPACE",
+ direction="ws",
+ linebreak="ba",
+ specials={ "compat", 0x0020 },
+ unicodeslot=0x205F,
},
[0x2060]={
- ["category"]="cf",
- ["description"]="WORD JOINER",
- ["linebreak"]="wj",
- ["unicodeslot"]=0x2060, -- ⁠
+ category="cf",
+ description="WORD JOINER",
+ direction="bn",
+ linebreak="wj",
+ unicodeslot=0x2060,
},
[0x2061]={
- ["category"]="cf",
- ["contextcommand"]="relax",
- ["comment"]="maybe: nulloperator",
- ["description"]="FUNCTION APPLICATION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2061, -- ⁡
+ category="cf",
+ comment="maybe: nulloperator",
+ contextcommand="relax",
+ description="FUNCTION APPLICATION",
+ direction="bn",
+ linebreak="al",
+ unicodeslot=0x2061,
},
[0x2062]={
- ["category"]="cf",
- ["description"]="INVISIBLE TIMES",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2062, -- ⁢
+ category="cf",
+ description="INVISIBLE TIMES",
+ direction="bn",
+ linebreak="al",
+ unicodeslot=0x2062,
},
[0x2063]={
- ["category"]="cf",
- ["description"]="INVISIBLE SEPARATOR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2063, -- ⁣
+ category="cf",
+ description="INVISIBLE SEPARATOR",
+ direction="bn",
+ linebreak="al",
+ unicodeslot=0x2063,
},
[0x206A]={
- ["category"]="cf",
- ["description"]="INHIBIT SYMMETRIC SWAPPING",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x206A, -- 
+ category="cf",
+ description="INHIBIT SYMMETRIC SWAPPING",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x206A,
},
[0x206B]={
- ["category"]="cf",
- ["description"]="ACTIVATE SYMMETRIC SWAPPING",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x206B, -- 
+ category="cf",
+ description="ACTIVATE SYMMETRIC SWAPPING",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x206B,
},
[0x206C]={
- ["category"]="cf",
- ["description"]="INHIBIT ARABIC FORM SHAPING",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x206C, -- 
+ category="cf",
+ description="INHIBIT ARABIC FORM SHAPING",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x206C,
},
[0x206D]={
- ["category"]="cf",
- ["description"]="ACTIVATE ARABIC FORM SHAPING",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x206D, -- 
+ category="cf",
+ description="ACTIVATE ARABIC FORM SHAPING",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x206D,
},
[0x206E]={
- ["category"]="cf",
- ["description"]="NATIONAL DIGIT SHAPES",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x206E, -- 
+ category="cf",
+ description="NATIONAL DIGIT SHAPES",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x206E,
},
[0x206F]={
- ["category"]="cf",
- ["description"]="NOMINAL DIGIT SHAPES",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x206F, -- 
+ category="cf",
+ description="NOMINAL DIGIT SHAPES",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x206F,
},
[0x2070]={
- ["category"]="no",
- ["description"]="SUPERSCRIPT ZERO",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0030 },
- ["unicodeslot"]=0x2070, -- ⁰
+ category="no",
+ description="SUPERSCRIPT ZERO",
+ direction="en",
+ linebreak="al",
+ specials={ "super", 0x0030 },
+ unicodeslot=0x2070,
},
[0x2071]={
- ["category"]="ll",
- ["description"]="SUPERSCRIPT LATIN SMALL LETTER I",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0069 },
- ["unicodeslot"]=0x2071, -- ⁱ
+ category="ll",
+ description="SUPERSCRIPT LATIN SMALL LETTER I",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x0069 },
+ unicodeslot=0x2071,
},
[0x2074]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="SUPERSCRIPT FOUR",
- ["linebreak"]="ai",
- ["specials"]={ "super", 0x0034 },
- ["unicodeslot"]=0x2074, -- ⁴
+ category="no",
+ cjkwd="a",
+ description="SUPERSCRIPT FOUR",
+ direction="en",
+ linebreak="ai",
+ specials={ "super", 0x0034 },
+ unicodeslot=0x2074,
},
[0x2075]={
- ["category"]="no",
- ["description"]="SUPERSCRIPT FIVE",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0035 },
- ["unicodeslot"]=0x2075, -- ⁵
+ category="no",
+ description="SUPERSCRIPT FIVE",
+ direction="en",
+ linebreak="al",
+ specials={ "super", 0x0035 },
+ unicodeslot=0x2075,
},
[0x2076]={
- ["category"]="no",
- ["description"]="SUPERSCRIPT SIX",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0036 },
- ["unicodeslot"]=0x2076, -- ⁶
+ category="no",
+ description="SUPERSCRIPT SIX",
+ direction="en",
+ linebreak="al",
+ specials={ "super", 0x0036 },
+ unicodeslot=0x2076,
},
[0x2077]={
- ["category"]="no",
- ["description"]="SUPERSCRIPT SEVEN",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0037 },
- ["unicodeslot"]=0x2077, -- ⁷
+ category="no",
+ description="SUPERSCRIPT SEVEN",
+ direction="en",
+ linebreak="al",
+ specials={ "super", 0x0037 },
+ unicodeslot=0x2077,
},
[0x2078]={
- ["category"]="no",
- ["description"]="SUPERSCRIPT EIGHT",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0038 },
- ["unicodeslot"]=0x2078, -- ⁸
+ category="no",
+ description="SUPERSCRIPT EIGHT",
+ direction="en",
+ linebreak="al",
+ specials={ "super", 0x0038 },
+ unicodeslot=0x2078,
},
[0x2079]={
- ["category"]="no",
- ["description"]="SUPERSCRIPT NINE",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0039 },
- ["unicodeslot"]=0x2079, -- ⁹
+ category="no",
+ description="SUPERSCRIPT NINE",
+ direction="en",
+ linebreak="al",
+ specials={ "super", 0x0039 },
+ unicodeslot=0x2079,
},
[0x207A]={
- ["category"]="sm",
- ["description"]="SUPERSCRIPT PLUS SIGN",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x002B },
- ["unicodeslot"]=0x207A, -- ⁺
+ category="sm",
+ description="SUPERSCRIPT PLUS SIGN",
+ direction="es",
+ linebreak="al",
+ specials={ "super", 0x002B },
+ unicodeslot=0x207A,
},
[0x207B]={
- ["category"]="sm",
- ["description"]="SUPERSCRIPT MINUS",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x2212 },
- ["unicodeslot"]=0x207B, -- ⁻
+ category="sm",
+ description="SUPERSCRIPT MINUS",
+ direction="es",
+ linebreak="al",
+ specials={ "super", 0x2212 },
+ unicodeslot=0x207B,
},
[0x207C]={
- ["category"]="sm",
- ["description"]="SUPERSCRIPT EQUALS SIGN",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x003D },
- ["unicodeslot"]=0x207C, -- ⁼
+ category="sm",
+ description="SUPERSCRIPT EQUALS SIGN",
+ direction="on",
+ linebreak="al",
+ specials={ "super", 0x003D },
+ unicodeslot=0x207C,
},
[0x207D]={
- ["category"]="ps",
- ["description"]="SUPERSCRIPT LEFT PARENTHESIS",
- ["linebreak"]="op",
- ["specials"]={ "super", 0x0028 },
- ["unicodeslot"]=0x207D, -- ⁽
+ category="ps",
+ description="SUPERSCRIPT LEFT PARENTHESIS",
+ direction="on",
+ linebreak="op",
+ mirror=0x207E,
+ specials={ "super", 0x0028 },
+ unicodeslot=0x207D,
},
[0x207E]={
- ["category"]="pe",
- ["description"]="SUPERSCRIPT RIGHT PARENTHESIS",
- ["linebreak"]="cl",
- ["specials"]={ "super", 0x0029 },
- ["unicodeslot"]=0x207E, -- ⁾
+ category="pe",
+ description="SUPERSCRIPT RIGHT PARENTHESIS",
+ direction="on",
+ linebreak="cl",
+ mirror=0x207D,
+ specials={ "super", 0x0029 },
+ unicodeslot=0x207E,
},
[0x207F]={
- ["category"]="ll",
- ["cjkwd"]="a",
- ["description"]="SUPERSCRIPT LATIN SMALL LETTER N",
- ["linebreak"]="ai",
- ["specials"]={ "super", 0x006E },
- ["unicodeslot"]=0x207F, -- ⁿ
+ category="ll",
+ cjkwd="a",
+ description="SUPERSCRIPT LATIN SMALL LETTER N",
+ direction="l",
+ linebreak="ai",
+ specials={ "super", 0x006E },
+ unicodeslot=0x207F,
},
[0x2080]={
- ["category"]="no",
- ["description"]="SUBSCRIPT ZERO",
- ["linebreak"]="al",
- ["specials"]={ "sub", 0x0030 },
- ["unicodeslot"]=0x2080, -- ₀
+ category="no",
+ description="SUBSCRIPT ZERO",
+ direction="en",
+ linebreak="al",
+ specials={ "sub", 0x0030 },
+ unicodeslot=0x2080,
},
[0x2081]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="SUBSCRIPT ONE",
- ["linebreak"]="ai",
- ["specials"]={ "sub", 0x0031 },
- ["unicodeslot"]=0x2081, -- ₁
+ category="no",
+ cjkwd="a",
+ description="SUBSCRIPT ONE",
+ direction="en",
+ linebreak="ai",
+ specials={ "sub", 0x0031 },
+ unicodeslot=0x2081,
},
[0x2082]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="SUBSCRIPT TWO",
- ["linebreak"]="ai",
- ["specials"]={ "sub", 0x0032 },
- ["unicodeslot"]=0x2082, -- ₂
+ category="no",
+ cjkwd="a",
+ description="SUBSCRIPT TWO",
+ direction="en",
+ linebreak="ai",
+ specials={ "sub", 0x0032 },
+ unicodeslot=0x2082,
},
[0x2083]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="SUBSCRIPT THREE",
- ["linebreak"]="ai",
- ["specials"]={ "sub", 0x0033 },
- ["unicodeslot"]=0x2083, -- ₃
+ category="no",
+ cjkwd="a",
+ description="SUBSCRIPT THREE",
+ direction="en",
+ linebreak="ai",
+ specials={ "sub", 0x0033 },
+ unicodeslot=0x2083,
},
[0x2084]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="SUBSCRIPT FOUR",
- ["linebreak"]="ai",
- ["specials"]={ "sub", 0x0034 },
- ["unicodeslot"]=0x2084, -- ₄
+ category="no",
+ cjkwd="a",
+ description="SUBSCRIPT FOUR",
+ direction="en",
+ linebreak="ai",
+ specials={ "sub", 0x0034 },
+ unicodeslot=0x2084,
},
[0x2085]={
- ["category"]="no",
- ["description"]="SUBSCRIPT FIVE",
- ["linebreak"]="al",
- ["specials"]={ "sub", 0x0035 },
- ["unicodeslot"]=0x2085, -- ₅
+ category="no",
+ description="SUBSCRIPT FIVE",
+ direction="en",
+ linebreak="al",
+ specials={ "sub", 0x0035 },
+ unicodeslot=0x2085,
},
[0x2086]={
- ["category"]="no",
- ["description"]="SUBSCRIPT SIX",
- ["linebreak"]="al",
- ["specials"]={ "sub", 0x0036 },
- ["unicodeslot"]=0x2086, -- ₆
+ category="no",
+ description="SUBSCRIPT SIX",
+ direction="en",
+ linebreak="al",
+ specials={ "sub", 0x0036 },
+ unicodeslot=0x2086,
},
[0x2087]={
- ["category"]="no",
- ["description"]="SUBSCRIPT SEVEN",
- ["linebreak"]="al",
- ["specials"]={ "sub", 0x0037 },
- ["unicodeslot"]=0x2087, -- ₇
+ category="no",
+ description="SUBSCRIPT SEVEN",
+ direction="en",
+ linebreak="al",
+ specials={ "sub", 0x0037 },
+ unicodeslot=0x2087,
},
[0x2088]={
- ["category"]="no",
- ["description"]="SUBSCRIPT EIGHT",
- ["linebreak"]="al",
- ["specials"]={ "sub", 0x0038 },
- ["unicodeslot"]=0x2088, -- ₈
+ category="no",
+ description="SUBSCRIPT EIGHT",
+ direction="en",
+ linebreak="al",
+ specials={ "sub", 0x0038 },
+ unicodeslot=0x2088,
},
[0x2089]={
- ["category"]="no",
- ["description"]="SUBSCRIPT NINE",
- ["linebreak"]="al",
- ["specials"]={ "sub", 0x0039 },
- ["unicodeslot"]=0x2089, -- ₉
+ category="no",
+ description="SUBSCRIPT NINE",
+ direction="en",
+ linebreak="al",
+ specials={ "sub", 0x0039 },
+ unicodeslot=0x2089,
},
[0x208A]={
- ["category"]="sm",
- ["description"]="SUBSCRIPT PLUS SIGN",
- ["linebreak"]="al",
- ["specials"]={ "sub", 0x002B },
- ["unicodeslot"]=0x208A, -- ₊
+ category="sm",
+ description="SUBSCRIPT PLUS SIGN",
+ direction="es",
+ linebreak="al",
+ specials={ "sub", 0x002B },
+ unicodeslot=0x208A,
},
[0x208B]={
- ["category"]="sm",
- ["description"]="SUBSCRIPT MINUS",
- ["linebreak"]="al",
- ["specials"]={ "sub", 0x2212 },
- ["unicodeslot"]=0x208B, -- ₋
+ category="sm",
+ description="SUBSCRIPT MINUS",
+ direction="es",
+ linebreak="al",
+ specials={ "sub", 0x2212 },
+ unicodeslot=0x208B,
},
[0x208C]={
- ["category"]="sm",
- ["description"]="SUBSCRIPT EQUALS SIGN",
- ["linebreak"]="al",
- ["specials"]={ "sub", 0x003D },
- ["unicodeslot"]=0x208C, -- ₌
+ category="sm",
+ description="SUBSCRIPT EQUALS SIGN",
+ direction="on",
+ linebreak="al",
+ specials={ "sub", 0x003D },
+ unicodeslot=0x208C,
},
[0x208D]={
- ["category"]="ps",
- ["description"]="SUBSCRIPT LEFT PARENTHESIS",
- ["linebreak"]="op",
- ["specials"]={ "sub", 0x0028 },
- ["unicodeslot"]=0x208D, -- ₍
+ category="ps",
+ description="SUBSCRIPT LEFT PARENTHESIS",
+ direction="on",
+ linebreak="op",
+ mirror=0x208E,
+ specials={ "sub", 0x0028 },
+ unicodeslot=0x208D,
},
[0x208E]={
- ["category"]="pe",
- ["description"]="SUBSCRIPT RIGHT PARENTHESIS",
- ["linebreak"]="cl",
- ["specials"]={ "sub", 0x0029 },
- ["unicodeslot"]=0x208E, -- ₎
+ category="pe",
+ description="SUBSCRIPT RIGHT PARENTHESIS",
+ direction="on",
+ linebreak="cl",
+ mirror=0x208D,
+ specials={ "sub", 0x0029 },
+ unicodeslot=0x208E,
},
[0x2090]={
- ["category"]="lm",
- ["description"]="LATIN SUBSCRIPT SMALL LETTER A",
- ["linebreak"]="al",
- ["specials"]={ "sub", 0x0061 },
- ["unicodeslot"]=0x2090, -- ₐ
+ category="lm",
+ description="LATIN SUBSCRIPT SMALL LETTER A",
+ direction="l",
+ linebreak="al",
+ specials={ "sub", 0x0061 },
+ unicodeslot=0x2090,
},
[0x2091]={
- ["category"]="lm",
- ["description"]="LATIN SUBSCRIPT SMALL LETTER E",
- ["linebreak"]="al",
- ["specials"]={ "sub", 0x0065 },
- ["unicodeslot"]=0x2091, -- ₑ
+ category="lm",
+ description="LATIN SUBSCRIPT SMALL LETTER E",
+ direction="l",
+ linebreak="al",
+ specials={ "sub", 0x0065 },
+ unicodeslot=0x2091,
},
[0x2092]={
- ["category"]="lm",
- ["description"]="LATIN SUBSCRIPT SMALL LETTER O",
- ["linebreak"]="al",
- ["specials"]={ "sub", 0x006F },
- ["unicodeslot"]=0x2092, -- ₒ
+ category="lm",
+ description="LATIN SUBSCRIPT SMALL LETTER O",
+ direction="l",
+ linebreak="al",
+ specials={ "sub", 0x006F },
+ unicodeslot=0x2092,
},
[0x2093]={
- ["category"]="lm",
- ["description"]="LATIN SUBSCRIPT SMALL LETTER X",
- ["linebreak"]="al",
- ["specials"]={ "sub", 0x0078 },
- ["unicodeslot"]=0x2093, -- ₓ
+ category="lm",
+ description="LATIN SUBSCRIPT SMALL LETTER X",
+ direction="l",
+ linebreak="al",
+ specials={ "sub", 0x0078 },
+ unicodeslot=0x2093,
},
[0x2094]={
- ["category"]="lm",
- ["description"]="LATIN SUBSCRIPT SMALL LETTER SCHWA",
- ["linebreak"]="al",
- ["specials"]={ "sub", 0x0259 },
- ["unicodeslot"]=0x2094, -- ₔ
+ category="lm",
+ description="LATIN SUBSCRIPT SMALL LETTER SCHWA",
+ direction="l",
+ linebreak="al",
+ specials={ "sub", 0x0259 },
+ unicodeslot=0x2094,
},
[0x20A0]={
- ["category"]="sc",
- ["description"]="EURO-CURRENCY SIGN",
- ["linebreak"]="pr",
- ["unicodeslot"]=0x20A0, -- ₠
+ category="sc",
+ description="EURO-CURRENCY SIGN",
+ direction="et",
+ linebreak="pr",
+ unicodeslot=0x20A0,
},
[0x20A1]={
- ["adobename"]="colonmonetary",
- ["category"]="sc",
- ["description"]="COLON SIGN",
- ["linebreak"]="pr",
- ["unicodeslot"]=0x20A1, -- ₡
+ adobename="colonmonetary",
+ category="sc",
+ description="COLON SIGN",
+ direction="et",
+ linebreak="pr",
+ unicodeslot=0x20A1,
},
[0x20A2]={
- ["category"]="sc",
- ["description"]="CRUZEIRO SIGN",
- ["linebreak"]="pr",
- ["unicodeslot"]=0x20A2, -- ₢
+ category="sc",
+ description="CRUZEIRO SIGN",
+ direction="et",
+ linebreak="pr",
+ unicodeslot=0x20A2,
},
[0x20A3]={
- ["adobename"]="franc",
- ["category"]="sc",
- ["description"]="FRENCH FRANC SIGN",
- ["linebreak"]="pr",
- ["unicodeslot"]=0x20A3, -- ₣
+ adobename="franc",
+ category="sc",
+ description="FRENCH FRANC SIGN",
+ direction="et",
+ linebreak="pr",
+ unicodeslot=0x20A3,
},
[0x20A4]={
- ["adobename"]="lira",
- ["category"]="sc",
- ["description"]="LIRA SIGN",
- ["linebreak"]="pr",
- ["unicodeslot"]=0x20A4, -- ₤
+ adobename="lira",
+ category="sc",
+ description="LIRA SIGN",
+ direction="et",
+ linebreak="pr",
+ unicodeslot=0x20A4,
},
[0x20A5]={
- ["category"]="sc",
- ["description"]="MILL SIGN",
- ["linebreak"]="pr",
- ["unicodeslot"]=0x20A5, -- ₥
+ category="sc",
+ description="MILL SIGN",
+ direction="et",
+ linebreak="pr",
+ unicodeslot=0x20A5,
},
[0x20A6]={
- ["category"]="sc",
- ["description"]="NAIRA SIGN",
- ["linebreak"]="pr",
- ["unicodeslot"]=0x20A6, -- ₦
+ category="sc",
+ description="NAIRA SIGN",
+ direction="et",
+ linebreak="pr",
+ unicodeslot=0x20A6,
},
[0x20A7]={
- ["adobename"]="peseta",
- ["category"]="sc",
- ["description"]="PESETA SIGN",
- ["linebreak"]="po",
- ["unicodeslot"]=0x20A7, -- ₧
+ adobename="peseta",
+ category="sc",
+ description="PESETA SIGN",
+ direction="et",
+ linebreak="po",
+ unicodeslot=0x20A7,
},
[0x20A8]={
- ["category"]="sc",
- ["description"]="RUPEE SIGN",
- ["linebreak"]="pr",
- ["specials"]={ "compat", 0x0052, 0x0073 },
- ["unicodeslot"]=0x20A8, -- ₨
+ category="sc",
+ description="RUPEE SIGN",
+ direction="et",
+ linebreak="pr",
+ specials={ "compat", 0x0052, 0x0073 },
+ unicodeslot=0x20A8,
},
[0x20A9]={
- ["category"]="sc",
- ["cjkwd"]="h",
- ["description"]="WON SIGN",
- ["linebreak"]="pr",
- ["unicodeslot"]=0x20A9, -- ₩
+ category="sc",
+ cjkwd="h",
+ description="WON SIGN",
+ direction="et",
+ linebreak="pr",
+ unicodeslot=0x20A9,
},
[0x20AA]={
- ["adobename"]="afii57636",
- ["category"]="sc",
- ["description"]="NEW SHEQEL SIGN",
- ["linebreak"]="pr",
- ["unicodeslot"]=0x20AA, -- ₪
+ adobename="afii57636",
+ category="sc",
+ description="NEW SHEQEL SIGN",
+ direction="et",
+ linebreak="pr",
+ unicodeslot=0x20AA,
},
[0x20AB]={
- ["adobename"]="dong",
- ["category"]="sc",
- ["contextname"]="textdong",
- ["description"]="DONG SIGN",
- ["linebreak"]="pr",
- ["unicodeslot"]=0x20AB, -- ₫
+ adobename="dong",
+ category="sc",
+ contextname="textdong",
+ description="DONG SIGN",
+ direction="et",
+ linebreak="pr",
+ unicodeslot=0x20AB,
},
[0x20AC]={
- ["adobename"]="Euro",
- ["category"]="sc",
- ["cjkwd"]="a",
- ["contextname"]="texteuro",
- ["description"]="EURO SIGN",
- ["linebreak"]="pr",
- ["unicodeslot"]=0x20AC, -- €
+ adobename="Euro",
+ category="sc",
+ cjkwd="a",
+ contextname="texteuro",
+ description="EURO SIGN",
+ direction="et",
+ linebreak="pr",
+ unicodeslot=0x20AC,
},
[0x20AD]={
- ["category"]="sc",
- ["description"]="KIP SIGN",
- ["linebreak"]="pr",
- ["unicodeslot"]=0x20AD, -- ₭
+ category="sc",
+ description="KIP SIGN",
+ direction="et",
+ linebreak="pr",
+ unicodeslot=0x20AD,
},
[0x20AE]={
- ["category"]="sc",
- ["description"]="TUGRIK SIGN",
- ["linebreak"]="pr",
- ["unicodeslot"]=0x20AE, -- ₮
+ category="sc",
+ description="TUGRIK SIGN",
+ direction="et",
+ linebreak="pr",
+ unicodeslot=0x20AE,
},
[0x20AF]={
- ["category"]="sc",
- ["description"]="DRACHMA SIGN",
- ["linebreak"]="pr",
- ["unicodeslot"]=0x20AF, -- ₯
+ category="sc",
+ description="DRACHMA SIGN",
+ direction="et",
+ linebreak="pr",
+ unicodeslot=0x20AF,
},
[0x20B0]={
- ["category"]="sc",
- ["description"]="GERMAN PENNY SIGN",
- ["linebreak"]="pr",
- ["unicodeslot"]=0x20B0, -- ₰
+ category="sc",
+ description="GERMAN PENNY SIGN",
+ direction="et",
+ linebreak="pr",
+ unicodeslot=0x20B0,
},
[0x20B1]={
- ["category"]="sc",
- ["description"]="PESO SIGN",
- ["linebreak"]="pr",
- ["unicodeslot"]=0x20B1, -- ₱
+ category="sc",
+ description="PESO SIGN",
+ direction="et",
+ linebreak="pr",
+ unicodeslot=0x20B1,
},
[0x20B2]={
- ["category"]="sc",
- ["description"]="GUARANI SIGN",
- ["linebreak"]="pr",
- ["unicodeslot"]=0x20B2, -- ₲
+ category="sc",
+ description="GUARANI SIGN",
+ direction="et",
+ linebreak="pr",
+ unicodeslot=0x20B2,
},
[0x20B3]={
- ["category"]="sc",
- ["description"]="AUSTRAL SIGN",
- ["linebreak"]="pr",
- ["unicodeslot"]=0x20B3, -- ₳
+ category="sc",
+ description="AUSTRAL SIGN",
+ direction="et",
+ linebreak="pr",
+ unicodeslot=0x20B3,
},
[0x20B4]={
- ["category"]="sc",
- ["description"]="HRYVNIA SIGN",
- ["linebreak"]="pr",
- ["unicodeslot"]=0x20B4, -- ₴
+ category="sc",
+ description="HRYVNIA SIGN",
+ direction="et",
+ linebreak="pr",
+ unicodeslot=0x20B4,
},
[0x20B5]={
- ["category"]="sc",
- ["description"]="CEDI SIGN",
- ["linebreak"]="pr",
- ["unicodeslot"]=0x20B5, -- ₵
+ category="sc",
+ description="CEDI SIGN",
+ direction="et",
+ linebreak="pr",
+ unicodeslot=0x20B5,
},
[0x20D0]={
- ["category"]="mn",
- ["description"]="COMBINING LEFT HARPOON ABOVE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x20D0, -- ⃐
+ category="mn",
+ description="COMBINING LEFT HARPOON ABOVE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x20D0,
},
[0x20D1]={
- ["category"]="mn",
- ["description"]="COMBINING RIGHT HARPOON ABOVE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x20D1, -- ⃑
+ category="mn",
+ description="COMBINING RIGHT HARPOON ABOVE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x20D1,
},
[0x20D2]={
- ["category"]="mn",
- ["description"]="COMBINING LONG VERTICAL LINE OVERLAY",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x20D2, -- ⃒
+ category="mn",
+ description="COMBINING LONG VERTICAL LINE OVERLAY",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x20D2,
},
[0x20D3]={
- ["category"]="mn",
- ["description"]="COMBINING SHORT VERTICAL LINE OVERLAY",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x20D3, -- ⃓
+ category="mn",
+ description="COMBINING SHORT VERTICAL LINE OVERLAY",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x20D3,
},
[0x20D4]={
- ["category"]="mn",
- ["description"]="COMBINING ANTICLOCKWISE ARROW ABOVE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x20D4, -- ⃔
+ category="mn",
+ description="COMBINING ANTICLOCKWISE ARROW ABOVE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x20D4,
},
[0x20D5]={
- ["category"]="mn",
- ["description"]="COMBINING CLOCKWISE ARROW ABOVE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x20D5, -- ⃕
+ category="mn",
+ description="COMBINING CLOCKWISE ARROW ABOVE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x20D5,
},
[0x20D6]={
- ["category"]="mn",
- ["description"]="COMBINING LEFT ARROW ABOVE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x20D6, -- ⃖
+ category="mn",
+ description="COMBINING LEFT ARROW ABOVE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x20D6,
},
[0x20D7]={
- ["category"]="mn",
- ["description"]="COMBINING RIGHT ARROW ABOVE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x20D7, -- ⃗
+ category="mn",
+ description="COMBINING RIGHT ARROW ABOVE",
+ direction="nsm",
+ linebreak="cm",
+ mathclass="accent",
+ mathname="vec",
+ unicodeslot=0x20D7,
},
[0x20D8]={
- ["category"]="mn",
- ["description"]="COMBINING RING OVERLAY",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x20D8, -- ⃘
+ category="mn",
+ description="COMBINING RING OVERLAY",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x20D8,
},
[0x20D9]={
- ["category"]="mn",
- ["description"]="COMBINING CLOCKWISE RING OVERLAY",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x20D9, -- ⃙
+ category="mn",
+ description="COMBINING CLOCKWISE RING OVERLAY",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x20D9,
},
[0x20DA]={
- ["category"]="mn",
- ["description"]="COMBINING ANTICLOCKWISE RING OVERLAY",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x20DA, -- ⃚
+ category="mn",
+ description="COMBINING ANTICLOCKWISE RING OVERLAY",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x20DA,
},
[0x20DB]={
- ["category"]="mn",
- ["description"]="COMBINING THREE DOTS ABOVE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x20DB, -- ⃛
+ category="mn",
+ description="COMBINING THREE DOTS ABOVE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x20DB,
},
[0x20DC]={
- ["category"]="mn",
- ["description"]="COMBINING FOUR DOTS ABOVE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x20DC, -- ⃜
+ category="mn",
+ description="COMBINING FOUR DOTS ABOVE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x20DC,
},
[0x20DD]={
- ["category"]="me",
- ["description"]="COMBINING ENCLOSING CIRCLE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x20DD, -- ⃝
+ category="me",
+ description="COMBINING ENCLOSING CIRCLE",
+ direction="nsm",
+ linebreak="cm",
+ mathspec={
+ { class="default",name="bigcircle" },
+ { class="binary",name="bigcircle" },
+ },
+ unicodeslot=0x20DD,
},
[0x20DE]={
- ["category"]="me",
- ["description"]="COMBINING ENCLOSING SQUARE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x20DE, -- ⃞
+ category="me",
+ description="COMBINING ENCLOSING SQUARE",
+ direction="nsm",
+ linebreak="cm",
+ mathclass="default",
+ mathname="bigsquare",
+ unicodeslot=0x20DE,
},
[0x20DF]={
- ["category"]="me",
- ["description"]="COMBINING ENCLOSING DIAMOND",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x20DF, -- ⃟
+ category="me",
+ description="COMBINING ENCLOSING DIAMOND",
+ direction="nsm",
+ linebreak="cm",
+ mathclass="default",
+ mathname="bigdiamond",
+ unicodeslot=0x20DF,
},
[0x20E0]={
- ["category"]="me",
- ["description"]="COMBINING ENCLOSING CIRCLE BACKSLASH",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x20E0, -- ⃠
+ category="me",
+ description="COMBINING ENCLOSING CIRCLE BACKSLASH",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x20E0,
},
[0x20E1]={
- ["category"]="mn",
- ["description"]="COMBINING LEFT RIGHT ARROW ABOVE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x20E1, -- ⃡
+ category="mn",
+ description="COMBINING LEFT RIGHT ARROW ABOVE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x20E1,
},
[0x20E2]={
- ["category"]="me",
- ["description"]="COMBINING ENCLOSING SCREEN",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x20E2, -- ⃢
+ category="me",
+ description="COMBINING ENCLOSING SCREEN",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x20E2,
},
[0x20E3]={
- ["category"]="me",
- ["description"]="COMBINING ENCLOSING KEYCAP",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x20E3, -- ⃣
+ category="me",
+ description="COMBINING ENCLOSING KEYCAP",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x20E3,
},
[0x20E4]={
- ["category"]="me",
- ["description"]="COMBINING ENCLOSING UPWARD POINTING TRIANGLE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x20E4, -- ⃤
+ category="me",
+ description="COMBINING ENCLOSING UPWARD POINTING TRIANGLE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x20E4,
},
[0x20E5]={
- ["category"]="mn",
- ["description"]="COMBINING REVERSE SOLIDUS OVERLAY",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x20E5, -- ⃥
+ category="mn",
+ description="COMBINING REVERSE SOLIDUS OVERLAY",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x20E5,
},
[0x20E6]={
- ["category"]="mn",
- ["description"]="COMBINING DOUBLE VERTICAL STROKE OVERLAY",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x20E6, -- ⃦
+ category="mn",
+ description="COMBINING DOUBLE VERTICAL STROKE OVERLAY",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x20E6,
},
[0x20E7]={
- ["category"]="mn",
- ["description"]="COMBINING ANNUITY SYMBOL",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x20E7, -- ⃧
+ category="mn",
+ description="COMBINING ANNUITY SYMBOL",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x20E7,
},
[0x20E8]={
- ["category"]="mn",
- ["description"]="COMBINING TRIPLE UNDERDOT",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x20E8, -- ⃨
+ category="mn",
+ description="COMBINING TRIPLE UNDERDOT",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x20E8,
},
[0x20E9]={
- ["category"]="mn",
- ["description"]="COMBINING WIDE BRIDGE ABOVE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x20E9, -- ⃩
+ category="mn",
+ description="COMBINING WIDE BRIDGE ABOVE",
+ direction="nsm",
+ linebreak="cm",
+ mathclass="accent",
+ unicodeslot=0x20E9,
},
[0x20EA]={
- ["category"]="mn",
- ["description"]="COMBINING LEFTWARDS ARROW OVERLAY",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x20EA, -- ⃪
+ category="mn",
+ description="COMBINING LEFTWARDS ARROW OVERLAY",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x20EA,
},
[0x20EB]={
- ["category"]="mn",
- ["description"]="COMBINING LONG DOUBLE SOLIDUS OVERLAY",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x20EB, -- ⃫
+ category="mn",
+ description="COMBINING LONG DOUBLE SOLIDUS OVERLAY",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x20EB,
},
[0x20EC]={
- ["category"]="mn",
- ["description"]="COMBINING RIGHTWARDS HARPOON WITH BARB DOWNWARDS",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x20EC, -- ⃬
+ category="mn",
+ description="COMBINING RIGHTWARDS HARPOON WITH BARB DOWNWARDS",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x20EC,
},
[0x20ED]={
- ["category"]="mn",
- ["description"]="COMBINING LEFTWARDS HARPOON WITH BARB DOWNWARDS",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x20ED, -- ⃭
+ category="mn",
+ description="COMBINING LEFTWARDS HARPOON WITH BARB DOWNWARDS",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x20ED,
},
[0x20EE]={
- ["category"]="mn",
- ["description"]="COMBINING LEFT ARROW BELOW",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x20EE, -- ⃮
+ category="mn",
+ description="COMBINING LEFT ARROW BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x20EE,
},
[0x20EF]={
- ["category"]="mn",
- ["description"]="COMBINING RIGHT ARROW BELOW",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x20EF, -- ⃯
+ category="mn",
+ description="COMBINING RIGHT ARROW BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x20EF,
},
[0x2100]={
- ["category"]="so",
- ["description"]="ACCOUNT OF",
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x0061, 0x002F, 0x0063 },
- ["unicodeslot"]=0x2100, -- ℀
+ category="so",
+ description="ACCOUNT OF",
+ direction="on",
+ linebreak="al",
+ specials={ "compat", 0x0061, 0x002F, 0x0063 },
+ unicodeslot=0x2100,
},
[0x2101]={
- ["category"]="so",
- ["description"]="ADDRESSED TO THE SUBJECT",
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x0061, 0x002F, 0x0073 },
- ["unicodeslot"]=0x2101, -- ℁
+ category="so",
+ description="ADDRESSED TO THE SUBJECT",
+ direction="on",
+ linebreak="al",
+ specials={ "compat", 0x0061, 0x002F, 0x0073 },
+ unicodeslot=0x2101,
},
[0x2102]={
- ["category"]="lu",
- ["description"]="DOUBLE-STRUCK CAPITAL C",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0043 },
- ["unicodeslot"]=0x2102, -- ℂ
+ category="lu",
+ description="DOUBLE-STRUCK CAPITAL C",
+ direction="l",
+ linebreak="al",
+ mathclass="variable",
+ mathname="complexes",
+ specials={ "font", 0x0043 },
+ unicodeslot=0x2102,
},
[0x2103]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="DEGREE CELSIUS",
- ["linebreak"]="po",
- ["specials"]={ "compat", 0x00B0, 0x0043 },
- ["unicodeslot"]=0x2103, -- ℃
+ category="so",
+ cjkwd="a",
+ description="DEGREE CELSIUS",
+ contextname="textcelsius",
+ direction="on",
+ linebreak="po",
+ specials={ "compat", 0x00B0, 0x0043 },
+ unicodeslot=0x2103,
},
[0x2104]={
- ["category"]="so",
- ["description"]="CENTRE LINE SYMBOL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2104, -- ℄
+ category="so",
+ description="CENTRE LINE SYMBOL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2104,
},
[0x2105]={
- ["adobename"]="afii61248",
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="CARE OF",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0063, 0x002F, 0x006F },
- ["unicodeslot"]=0x2105, -- ℅
+ adobename="afii61248",
+ category="so",
+ cjkwd="a",
+ description="CARE OF",
+ direction="on",
+ linebreak="ai",
+ specials={ "compat", 0x0063, 0x002F, 0x006F },
+ unicodeslot=0x2105,
},
[0x2106]={
- ["category"]="so",
- ["description"]="CADA UNA",
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x0063, 0x002F, 0x0075 },
- ["unicodeslot"]=0x2106, -- ℆
+ category="so",
+ description="CADA UNA",
+ direction="on",
+ linebreak="al",
+ specials={ "compat", 0x0063, 0x002F, 0x0075 },
+ unicodeslot=0x2106,
},
[0x2107]={
- ["category"]="lu",
- ["description"]="EULER CONSTANT",
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x0190 },
- ["unicodeslot"]=0x2107, -- ℇ
+ category="lu",
+ description="EULER CONSTANT",
+ direction="l",
+ linebreak="al",
+ specials={ "compat", 0x0190 },
+ unicodeslot=0x2107,
},
[0x2108]={
- ["category"]="so",
- ["description"]="SCRUPLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2108, -- ℈
+ category="so",
+ description="SCRUPLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2108,
},
[0x2109]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="DEGREE FAHRENHEIT",
- ["linebreak"]="po",
- ["specials"]={ "compat", 0x00B0, 0x0046 },
- ["unicodeslot"]=0x2109, -- ℉
+ category="so",
+ cjkwd="a",
+ description="DEGREE FAHRENHEIT",
+ direction="on",
+ linebreak="po",
+ specials={ "compat", 0x00B0, 0x0046 },
+ unicodeslot=0x2109,
},
[0x210A]={
- ["category"]="ll",
- ["description"]="SCRIPT SMALL G",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0067 },
- ["unicodeslot"]=0x210A, -- ℊ
+ category="ll",
+ description="SCRIPT SMALL G",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0067 },
+ unicodeslot=0x210A,
},
[0x210B]={
- ["category"]="lu",
- ["description"]="SCRIPT CAPITAL H",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0048 },
- ["unicodeslot"]=0x210B, -- ℋ
+ category="lu",
+ description="SCRIPT CAPITAL H",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0048 },
+ unicodeslot=0x210B,
},
[0x210C]={
- ["category"]="lu",
- ["description"]="BLACK-LETTER CAPITAL H",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0048 },
- ["unicodeslot"]=0x210C, -- ℌ
+ category="lu",
+ description="BLACK-LETTER CAPITAL H",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0048 },
+ unicodeslot=0x210C,
},
[0x210D]={
- ["category"]="lu",
- ["description"]="DOUBLE-STRUCK CAPITAL H",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0048 },
- ["unicodeslot"]=0x210D, -- ℍ
+ category="lu",
+ description="DOUBLE-STRUCK CAPITAL H",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0048 },
+ unicodeslot=0x210D,
},
[0x210E]={
- ["category"]="ll",
- ["description"]="PLANCK CONSTANT",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0068 },
- ["unicodeslot"]=0x210E, -- ℎ
+ category="ll",
+ description="PLANCK CONSTANT",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0068 },
+ unicodeslot=0x210E,
},
[0x210F]={
- ["category"]="ll",
- ["description"]="PLANCK CONSTANT OVER TWO PI",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0127 },
- ["unicodeslot"]=0x210F, -- ℏ
+ category="ll",
+ description="PLANCK CONSTANT OVER TWO PI",
+ direction="l",
+ linebreak="al",
+ mathclass="variable",
+ mathname="hslash",
+ specials={ "font", 0x0127 },
+ unicodeslot=0x210F,
},
[0x2110]={
- ["category"]="lu",
- ["description"]="SCRIPT CAPITAL I",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0049 },
- ["unicodeslot"]=0x2110, -- ℐ
+ category="lu",
+ description="SCRIPT CAPITAL I",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0049 },
+ unicodeslot=0x2110,
},
[0x2111]={
- ["adobename"]="Ifraktur",
- ["category"]="lu",
- ["description"]="BLACK-LETTER CAPITAL I",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["mathname"]="Im",
- ["specials"]={ "font", 0x0049 },
- ["unicodeslot"]=0x2111, -- ℑ
+ adobename="Ifraktur",
+ category="lu",
+ description="BLACK-LETTER CAPITAL I",
+ direction="l",
+ linebreak="al",
+ mathclass="default",
+ mathname="Im",
+ specials={ "font", 0x0049 },
+ unicodeslot=0x2111,
},
[0x2112]={
- ["category"]="lu",
- ["description"]="SCRIPT CAPITAL L",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004C },
- ["unicodeslot"]=0x2112, -- ℒ
+ category="lu",
+ description="SCRIPT CAPITAL L",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004C },
+ unicodeslot=0x2112,
},
[0x2113]={
- ["adobename"]="afii61289",
- ["category"]="ll",
- ["cjkwd"]="a",
- ["description"]="SCRIPT SMALL L",
- ["linebreak"]="ai",
- ["mathclass"]="variable",
- ["mathname"]="ell",
- ["specials"]={ "font", 0x006C },
- ["unicodeslot"]=0x2113, -- ℓ
+ adobename="afii61289",
+ category="ll",
+ cjkwd="a",
+ description="SCRIPT SMALL L",
+ direction="l",
+ linebreak="ai",
+ mathclass="default",
+ mathname="ell",
+ specials={ "font", 0x006C },
+ unicodeslot=0x2113,
},
[0x2114]={
- ["category"]="so",
- ["description"]="L B BAR SYMBOL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2114, -- ℔
+ category="so",
+ description="L B BAR SYMBOL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2114,
},
[0x2115]={
- ["category"]="lu",
- ["description"]="DOUBLE-STRUCK CAPITAL N",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004E },
- ["unicodeslot"]=0x2115, -- ℕ
+ category="lu",
+ description="DOUBLE-STRUCK CAPITAL N",
+ direction="l",
+ linebreak="al",
+ mathclass="variable",
+ mathname="naturalnumbers",
+ specials={ "font", 0x004E },
+ unicodeslot=0x2115,
},
[0x2116]={
- ["adobename"]="afii61352",
- ["category"]="so",
- ["cjkwd"]="a",
- ["contextname"]="textnumero",
- ["description"]="NUMERO SIGN",
- ["linebreak"]="pr",
- ["specials"]={ "compat", 0x004E, 0x006F },
- ["unicodeslot"]=0x2116, -- №
+ adobename="afii61352",
+ category="so",
+ cjkwd="a",
+ contextname="textnumero",
+ description="NUMERO SIGN",
+ direction="on",
+ linebreak="pr",
+ specials={ "compat", 0x004E, 0x006F },
+ unicodeslot=0x2116,
},
[0x2117]={
- ["category"]="so",
- ["description"]="SOUND RECORDING COPYRIGHT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2117, -- ℗
+ category="so",
+ contextname="textcircledP",
+ description="SOUND RECORDING COPYRIGHT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2117,
},
[0x2118]={
- ["adobename"]="weierstrass",
- ["category"]="so",
- ["description"]="SCRIPT CAPITAL P",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["mathname"]="wp",
- ["unicodeslot"]=0x2118, -- ℘
+ adobename="weierstrass",
+ category="so",
+ description="SCRIPT CAPITAL P",
+ direction="on",
+ linebreak="al",
+ mathclass="default",
+ mathname="wp",
+ unicodeslot=0x2118,
},
[0x2119]={
- ["category"]="lu",
- ["description"]="DOUBLE-STRUCK CAPITAL P",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0050 },
- ["unicodeslot"]=0x2119, -- ℙ
+ category="lu",
+ description="DOUBLE-STRUCK CAPITAL P",
+ direction="l",
+ linebreak="al",
+ mathclass="variable",
+ mathname="primes",
+ specials={ "font", 0x0050 },
+ unicodeslot=0x2119,
},
[0x211A]={
- ["category"]="lu",
- ["description"]="DOUBLE-STRUCK CAPITAL Q",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0051 },
- ["unicodeslot"]=0x211A, -- ℚ
+ category="lu",
+ description="DOUBLE-STRUCK CAPITAL Q",
+ direction="l",
+ linebreak="al",
+ mathclass="variable",
+ mathname="rationals",
+ specials={ "font", 0x0051 },
+ unicodeslot=0x211A,
},
[0x211B]={
- ["category"]="lu",
- ["description"]="SCRIPT CAPITAL R",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0052 },
- ["unicodeslot"]=0x211B, -- ℛ
+ category="lu",
+ description="SCRIPT CAPITAL R",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0052 },
+ unicodeslot=0x211B,
},
[0x211C]={
- ["adobename"]="Rfraktur",
- ["category"]="lu",
- ["description"]="BLACK-LETTER CAPITAL R",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["mathname"]="Re",
- ["specials"]={ "font", 0x0052 },
- ["unicodeslot"]=0x211C, -- ℜ
+ adobename="Rfraktur",
+ category="lu",
+ description="BLACK-LETTER CAPITAL R",
+ direction="l",
+ linebreak="al",
+ mathclass="default",
+ mathname="Re",
+ specials={ "font", 0x0052 },
+ unicodeslot=0x211C,
},
[0x211D]={
- ["category"]="lu",
- ["description"]="DOUBLE-STRUCK CAPITAL R",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0052 },
- ["unicodeslot"]=0x211D, -- ℝ
+ category="lu",
+ description="DOUBLE-STRUCK CAPITAL R",
+ direction="l",
+ linebreak="al",
+ mathclass="variable",
+ mathname="reals",
+ specials={ "font", 0x0052 },
+ unicodeslot=0x211D,
},
[0x211E]={
- ["adobename"]="prescription",
- ["category"]="so",
- ["description"]="PRESCRIPTION TAKE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x211E, -- ℞
+ adobename="prescription",
+ category="so",
+ description="PRESCRIPTION TAKE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x211E,
},
[0x211F]={
- ["category"]="so",
- ["description"]="RESPONSE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x211F, -- ℟
+ category="so",
+ description="RESPONSE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x211F,
},
[0x2120]={
- ["category"]="so",
- ["description"]="SERVICE MARK",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x0053, 0x004D },
- ["unicodeslot"]=0x2120, -- ℠
+ category="so",
+ description="SERVICE MARK",
+ direction="on",
+ linebreak="al",
+ specials={ "super", 0x0053, 0x004D },
+ unicodeslot=0x2120,
},
[0x2121]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="TELEPHONE SIGN",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0054, 0x0045, 0x004C },
- ["unicodeslot"]=0x2121, -- ℡
+ category="so",
+ cjkwd="a",
+ description="TELEPHONE SIGN",
+ direction="on",
+ linebreak="ai",
+ specials={ "compat", 0x0054, 0x0045, 0x004C },
+ unicodeslot=0x2121,
},
[0x2122]={
- ["adobename"]="trademark",
- ["category"]="so",
- ["cjkwd"]="a",
- ["contextname"]="trademark",
- ["description"]="TRADE MARK SIGN",
- ["linebreak"]="ai",
- ["specials"]={ "super", 0x0054, 0x004D },
- ["unicodeslot"]=0x2122, -- ™
+ adobename="trademark",
+ category="so",
+ cjkwd="a",
+ contextname="trademark",
+ description="TRADE MARK SIGN",
+ direction="on",
+ linebreak="ai",
+ specials={ "super", 0x0054, 0x004D },
+ unicodeslot=0x2122,
},
[0x2123]={
- ["category"]="so",
- ["description"]="VERSICLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2123, -- ℣
+ category="so",
+ description="VERSICLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2123,
},
[0x2124]={
- ["category"]="lu",
- ["description"]="DOUBLE-STRUCK CAPITAL Z",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x005A },
- ["unicodeslot"]=0x2124, -- ℤ
+ category="lu",
+ description="DOUBLE-STRUCK CAPITAL Z",
+ direction="l",
+ linebreak="al",
+ mathclass="variable",
+ mathname="integers",
+ specials={ "font", 0x005A },
+ unicodeslot=0x2124,
},
[0x2125]={
- ["category"]="so",
- ["description"]="OUNCE SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2125, -- ℥
+ category="so",
+ contextname="textounce",
+ description="OUNCE SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2125,
},
[0x2126]={
- ["adobename"]="Omega",
- ["category"]="lu",
- ["cjkwd"]="a",
- ["description"]="OHM SIGN",
- ["lccode"]=0x03C9,
- ["linebreak"]="al",
- ["specials"]={ "char", 0x03A9 },
- ["unicodeslot"]=0x2126, -- Ω
+ adobename="Omega",
+ category="lu",
+ cjkwd="a",
+ description="OHM SIGN",
+ contextname="textohm",
+ direction="l",
+ lccode=0x03C9, --AM: Not sure?
+ linebreak="al",
+ mathclass="variable",
+ mathname="ohm", --AM: Should we do this or does specials take care of it
+ specials={ "char", 0x03A9 },
+ unicodeslot=0x2126,
},
[0x2127]={
- ["category"]="so",
- ["description"]="INVERTED OHM SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2127, -- ℧
+ category="so",
+ description="INVERTED OHM SIGN",
+ contextname="textmho",
+ direction="on",
+ linebreak="al",
+ mathclass="variable",
+ mathname="mho",
+ unicodeslot=0x2127,
},
[0x2128]={
- ["category"]="lu",
- ["description"]="BLACK-LETTER CAPITAL Z",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x005A },
- ["unicodeslot"]=0x2128, -- ℨ
+ category="lu",
+ description="BLACK-LETTER CAPITAL Z",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x005A },
+ unicodeslot=0x2128,
},
[0x2129]={
- ["category"]="so",
- ["description"]="TURNED GREEK SMALL LETTER IOTA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2129, -- ℩
+ category="so",
+ description="TURNED GREEK SMALL LETTER IOTA",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2129,
},
[0x212A]={
- ["category"]="lu",
- ["description"]="KELVIN SIGN",
- ["lccode"]=0x006B,
- ["linebreak"]="al",
- ["specials"]={ "char", 0x004B },
- ["unicodeslot"]=0x212A, -- K
+ category="lu",
+ description="KELVIN SIGN",
+ direction="l",
+ contextname="textkelvin",
+ lccode=0x006B,
+ linebreak="al",
+ specials={ "char", 0x004B },
+ unicodeslot=0x212A,
},
[0x212B]={
- ["category"]="lu",
- ["cjkwd"]="a",
- ["description"]="ANGSTROM SIGN",
- ["lccode"]=0x00E5,
- ["linebreak"]="ai",
- ["specials"]={ "char", 0x00C5 },
- ["unicodeslot"]=0x212B, -- Å
+ category="lu",
+ cjkwd="a",
+ description="ANGSTROM SIGN",
+ direction="l",
+ contextname="textAngstrom",
+ lccode=0x00E5,
+ linebreak="ai",
+ mathclass="variable",
+ mathname="Angstrom",
+ specials={ "char", 0x00C5 },
+ unicodeslot=0x212B,
},
[0x212C]={
- ["category"]="lu",
- ["description"]="SCRIPT CAPITAL B",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0042 },
- ["unicodeslot"]=0x212C, -- ℬ
+ category="lu",
+ description="SCRIPT CAPITAL B",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0042 },
+ unicodeslot=0x212C,
},
[0x212D]={
- ["category"]="lu",
- ["description"]="BLACK-LETTER CAPITAL C",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0043 },
- ["unicodeslot"]=0x212D, -- ℭ
+ category="lu",
+ description="BLACK-LETTER CAPITAL C",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0043 },
+ unicodeslot=0x212D,
},
[0x212E]={
- ["adobename"]="estimated",
- ["category"]="so",
- ["description"]="ESTIMATED SYMBOL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x212E, -- ℮
+ adobename="estimated",
+ category="so",
+ description="ESTIMATED SYMBOL",
+ direction="et",
+ linebreak="al",
+ unicodeslot=0x212E,
},
[0x212F]={
- ["category"]="ll",
- ["description"]="SCRIPT SMALL E",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0065 },
- ["unicodeslot"]=0x212F, -- ℯ
+ category="ll",
+ description="SCRIPT SMALL E",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0065 },
+ unicodeslot=0x212F,
},
[0x2130]={
- ["category"]="lu",
- ["description"]="SCRIPT CAPITAL E",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0045 },
- ["unicodeslot"]=0x2130, -- ℰ
+ category="lu",
+ description="SCRIPT CAPITAL E",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0045 },
+ unicodeslot=0x2130,
},
[0x2131]={
- ["category"]="lu",
- ["description"]="SCRIPT CAPITAL F",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0046 },
- ["unicodeslot"]=0x2131, -- ℱ
+ category="lu",
+ description="SCRIPT CAPITAL F",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0046 },
+ unicodeslot=0x2131,
},
[0x2132]={
- ["category"]="lu",
- ["description"]="TURNED CAPITAL F",
- ["lccode"]=0x214E,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2132, -- Ⅎ
+ category="lu",
+ description="TURNED CAPITAL F",
+ direction="l",
+ lccode=0x214E,
+ linebreak="al",
+ mathclass="ord",
+ mathname="Finv",
+ unicodeslot=0x2132,
},
[0x2133]={
- ["category"]="lu",
- ["description"]="SCRIPT CAPITAL M",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004D },
- ["unicodeslot"]=0x2133, -- ℳ
+ category="lu",
+ description="SCRIPT CAPITAL M",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004D },
+ unicodeslot=0x2133,
},
[0x2134]={
- ["category"]="ll",
- ["description"]="SCRIPT SMALL O",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006F },
- ["unicodeslot"]=0x2134, -- ℴ
+ category="ll",
+ description="SCRIPT SMALL O",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006F },
+ unicodeslot=0x2134,
},
[0x2135]={
- ["adobename"]="aleph",
- ["category"]="lo",
- ["description"]="ALEF SYMBOL",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["mathname"]="aleph",
- ["specials"]={ "compat", 0x05D0 },
- ["unicodeslot"]=0x2135, -- ℵ
+ adobename="aleph",
+ category="lo",
+ description="ALEF SYMBOL",
+ direction="l",
+ linebreak="al",
+ mathclass="default",
+ mathname="aleph",
+ specials={ "compat", 0x05D0 },
+ unicodeslot=0x2135,
},
[0x2136]={
- ["category"]="lo",
- ["description"]="BET SYMBOL",
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x05D1 },
- ["unicodeslot"]=0x2136, -- ℶ
+ category="lo",
+ description="BET SYMBOL",
+ direction="l",
+ linebreak="al",
+ mathclass="ord",
+ mathname="beth",
+ specials={ "compat", 0x05D1 },
+ unicodeslot=0x2136,
},
[0x2137]={
- ["category"]="lo",
- ["description"]="GIMEL SYMBOL",
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x05D2 },
- ["unicodeslot"]=0x2137, -- ℷ
+ category="lo",
+ description="GIMEL SYMBOL",
+ direction="l",
+ linebreak="al",
+ mathclass="ord",
+ mathname="gimel",
+ specials={ "compat", 0x05D2 },
+ unicodeslot=0x2137,
},
[0x2138]={
- ["category"]="lo",
- ["description"]="DALET SYMBOL",
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x05D3 },
- ["unicodeslot"]=0x2138, -- ℸ
+ category="lo",
+ description="DALET SYMBOL",
+ direction="l",
+ linebreak="al",
+ mathclass="ord",
+ mathname="daleth",
+ specials={ "compat", 0x05D3 },
+ unicodeslot=0x2138,
},
[0x2139]={
- ["category"]="ll",
- ["description"]="INFORMATION SOURCE",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0069 },
- ["unicodeslot"]=0x2139, -- ℹ
+ category="ll",
+ description="INFORMATION SOURCE",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0069 },
+ unicodeslot=0x2139,
},
[0x213A]={
- ["category"]="so",
- ["description"]="ROTATED CAPITAL Q",
- ["linebreak"]="al",
- ["unicodeslot"]=0x213A, -- ℺
+ category="so",
+ description="ROTATED CAPITAL Q",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x213A,
},
[0x213B]={
- ["category"]="so",
- ["description"]="FACSIMILE SIGN",
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x0046, 0x0041, 0x0058 },
- ["unicodeslot"]=0x213B, -- ℻
+ category="so",
+ description="FACSIMILE SIGN",
+ direction="on",
+ linebreak="al",
+ specials={ "compat", 0x0046, 0x0041, 0x0058 },
+ unicodeslot=0x213B,
},
[0x213C]={
- ["category"]="ll",
- ["description"]="DOUBLE-STRUCK SMALL PI",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03C0 },
- ["unicodeslot"]=0x213C, -- ℼ
+ category="ll",
+ description="DOUBLE-STRUCK SMALL PI",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03C0 },
+ unicodeslot=0x213C,
},
[0x213D]={
- ["category"]="ll",
- ["description"]="DOUBLE-STRUCK SMALL GAMMA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03B3 },
- ["unicodeslot"]=0x213D, -- ℽ
+ category="ll",
+ description="DOUBLE-STRUCK SMALL GAMMA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03B3 },
+ unicodeslot=0x213D,
},
[0x213E]={
- ["category"]="lu",
- ["description"]="DOUBLE-STRUCK CAPITAL GAMMA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0393 },
- ["unicodeslot"]=0x213E, -- ℾ
+ category="lu",
+ description="DOUBLE-STRUCK CAPITAL GAMMA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0393 },
+ unicodeslot=0x213E,
},
[0x213F]={
- ["category"]="lu",
- ["description"]="DOUBLE-STRUCK CAPITAL PI",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03A0 },
- ["unicodeslot"]=0x213F, -- ℿ
+ category="lu",
+ description="DOUBLE-STRUCK CAPITAL PI",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03A0 },
+ unicodeslot=0x213F,
},
[0x2140]={
- ["category"]="sm",
- ["description"]="DOUBLE-STRUCK N-ARY SUMMATION",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x2211 },
- ["unicodeslot"]=0x2140, -- ⅀
+ category="sm",
+ description="DOUBLE-STRUCK N-ARY SUMMATION",
+ direction="on",
+ linebreak="al",
+ specials={ "font", 0x2211 },
+ unicodeslot=0x2140,
},
[0x2141]={
- ["category"]="sm",
- ["description"]="TURNED SANS-SERIF CAPITAL G",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2141, -- ⅁
+ category="sm",
+ description="TURNED SANS-SERIF CAPITAL G",
+ direction="on",
+ linebreak="al",
+ mathclass="ord",
+ mathname="Game",
+ unicodeslot=0x2141,
},
[0x2142]={
- ["category"]="sm",
- ["description"]="TURNED SANS-SERIF CAPITAL L",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2142, -- ⅂
+ category="sm",
+ description="TURNED SANS-SERIF CAPITAL L",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2142,
},
[0x2143]={
- ["category"]="sm",
- ["description"]="REVERSED SANS-SERIF CAPITAL L",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2143, -- ⅃
+ category="sm",
+ description="REVERSED SANS-SERIF CAPITAL L",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2143,
},
[0x2144]={
- ["category"]="sm",
- ["description"]="TURNED SANS-SERIF CAPITAL Y",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2144, -- ⅄
+ category="sm",
+ description="TURNED SANS-SERIF CAPITAL Y",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2144,
},
[0x2145]={
- ["category"]="lu",
- ["description"]="DOUBLE-STRUCK ITALIC CAPITAL D",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0044 },
- ["unicodeslot"]=0x2145, -- ⅅ
+ category="lu",
+ description="DOUBLE-STRUCK ITALIC CAPITAL D",
+ direction="l",
+ linebreak="al",
+ mathclass="nothing",
+ mathname="differentialD",
+ specials={ "font", 0x0044 },
+ unicodeslot=0x2145,
},
[0x2146]={
- ["category"]="ll",
- ["description"]="DOUBLE-STRUCK ITALIC SMALL D",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0064 },
- ["unicodeslot"]=0x2146, -- ⅆ
+ category="ll",
+ description="DOUBLE-STRUCK ITALIC SMALL D",
+ direction="l",
+ linebreak="al",
+ mathclass="nothing",
+ mathname="differentiald",
+ specials={ "font", 0x0064 },
+ unicodeslot=0x2146,
},
[0x2147]={
- ["category"]="ll",
- ["description"]="DOUBLE-STRUCK ITALIC SMALL E",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0065 },
- ["unicodeslot"]=0x2147, -- ⅇ
+ category="ll",
+ description="DOUBLE-STRUCK ITALIC SMALL E",
+ direction="l",
+ linebreak="al",
+ mathclass="nothing",
+ mathname="exponentiale",
+ specials={ "font", 0x0065 },
+ unicodeslot=0x2147,
},
[0x2148]={
- ["category"]="ll",
- ["description"]="DOUBLE-STRUCK ITALIC SMALL I",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0069 },
- ["unicodeslot"]=0x2148, -- ⅈ
+ category="ll",
+ description="DOUBLE-STRUCK ITALIC SMALL I",
+ direction="l",
+ linebreak="al",
+ mathclass="nothing",
+ mathname="imaginaryi",
+ specials={ "font", 0x0069 },
+ unicodeslot=0x2148,
},
[0x2149]={
- ["category"]="ll",
- ["description"]="DOUBLE-STRUCK ITALIC SMALL J",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006A },
- ["unicodeslot"]=0x2149, -- ⅉ
+ category="ll",
+ description="DOUBLE-STRUCK ITALIC SMALL J",
+ direction="l",
+ linebreak="al",
+ mathclass="nothing",
+ mathname="imaginaryj",
+ specials={ "font", 0x006A },
+ unicodeslot=0x2149,
},
[0x214A]={
- ["category"]="so",
- ["description"]="PROPERTY LINE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x214A, -- ⅊
+ category="so",
+ description="PROPERTY LINE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x214A,
},
[0x214B]={
- ["category"]="sm",
- ["description"]="TURNED AMPERSAND",
- ["linebreak"]="al",
- ["unicodeslot"]=0x214B, -- ⅋
+ category="sm",
+ description="TURNED AMPERSAND",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x214B,
},
[0x214C]={
- ["category"]="so",
- ["description"]="PER SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x214C, -- ⅌
+ category="so",
+ description="PER SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x214C,
},
[0x214D]={
- ["category"]="so",
- ["description"]="AKTIESELSKAB",
- ["linebreak"]="al",
- ["unicodeslot"]=0x214D, -- ⅍
+ category="so",
+ description="AKTIESELSKAB",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x214D,
},
[0x214E]={
- ["category"]="ll",
- ["description"]="TURNED SMALL F",
- ["linebreak"]="al",
- ["uccode"]=0x2132,
- ["unicodeslot"]=0x214E, -- ⅎ
+ category="ll",
+ description="TURNED SMALL F",
+ direction="l",
+ linebreak="al",
+ uccode=0x2132,
+ unicodeslot=0x214E,
},
[0x2153]={
- ["adobename"]="onethird",
- ["category"]="no",
- ["cjkwd"]="a",
- ["contextname"]="onethird",
- ["description"]="VULGAR FRACTION ONE THIRD",
- ["linebreak"]="al",
- ["specials"]={ "fraction", 0x0031, 0x2044, 0x0033 },
- ["unicodeslot"]=0x2153, -- ⅓
+ adobename="onethird",
+ category="no",
+ cjkwd="a",
+ contextname="onethird",
+ description="VULGAR FRACTION ONE THIRD",
+ direction="on",
+ linebreak="al",
+ specials={ "fraction", 0x0031, 0x2044, 0x0033 },
+ unicodeslot=0x2153,
},
[0x2154]={
- ["adobename"]="twothirds",
- ["category"]="no",
- ["cjkwd"]="a",
- ["contextname"]="twothirds",
- ["description"]="VULGAR FRACTION TWO THIRDS",
- ["linebreak"]="ai",
- ["specials"]={ "fraction", 0x0032, 0x2044, 0x0033 },
- ["unicodeslot"]=0x2154, -- ⅔
+ adobename="twothirds",
+ category="no",
+ cjkwd="a",
+ contextname="twothirds",
+ description="VULGAR FRACTION TWO THIRDS",
+ direction="on",
+ linebreak="ai",
+ specials={ "fraction", 0x0032, 0x2044, 0x0033 },
+ unicodeslot=0x2154,
},
[0x2155]={
- ["category"]="no",
- ["contextname"]="onefifth",
- ["description"]="VULGAR FRACTION ONE FIFTH",
- ["linebreak"]="ai",
- ["specials"]={ "fraction", 0x0031, 0x2044, 0x0035 },
- ["unicodeslot"]=0x2155, -- ⅕
+ category="no",
+ contextname="onefifth",
+ description="VULGAR FRACTION ONE FIFTH",
+ direction="on",
+ linebreak="ai",
+ specials={ "fraction", 0x0031, 0x2044, 0x0035 },
+ unicodeslot=0x2155,
},
[0x2156]={
- ["category"]="no",
- ["contextname"]="twofifths",
- ["description"]="VULGAR FRACTION TWO FIFTHS",
- ["linebreak"]="al",
- ["specials"]={ "fraction", 0x0032, 0x2044, 0x0035 },
- ["unicodeslot"]=0x2156, -- ⅖
+ category="no",
+ contextname="twofifths",
+ description="VULGAR FRACTION TWO FIFTHS",
+ direction="on",
+ linebreak="al",
+ specials={ "fraction", 0x0032, 0x2044, 0x0035 },
+ unicodeslot=0x2156,
},
[0x2157]={
- ["category"]="no",
- ["contextname"]="threefifths",
- ["description"]="VULGAR FRACTION THREE FIFTHS",
- ["linebreak"]="al",
- ["specials"]={ "fraction", 0x0033, 0x2044, 0x0035 },
- ["unicodeslot"]=0x2157, -- ⅗
+ category="no",
+ contextname="threefifths",
+ description="VULGAR FRACTION THREE FIFTHS",
+ direction="on",
+ linebreak="al",
+ specials={ "fraction", 0x0033, 0x2044, 0x0035 },
+ unicodeslot=0x2157,
},
[0x2158]={
- ["category"]="no",
- ["contextname"]="fourfifths",
- ["description"]="VULGAR FRACTION FOUR FIFTHS",
- ["linebreak"]="al",
- ["specials"]={ "fraction", 0x0034, 0x2044, 0x0035 },
- ["unicodeslot"]=0x2158, -- ⅘
+ category="no",
+ contextname="fourfifths",
+ description="VULGAR FRACTION FOUR FIFTHS",
+ direction="on",
+ linebreak="al",
+ specials={ "fraction", 0x0034, 0x2044, 0x0035 },
+ unicodeslot=0x2158,
},
[0x2159]={
- ["category"]="no",
- ["contextname"]="onesixth",
- ["description"]="VULGAR FRACTION ONE SIXTH",
- ["linebreak"]="al",
- ["specials"]={ "fraction", 0x0031, 0x2044, 0x0036 },
- ["unicodeslot"]=0x2159, -- ⅙
+ category="no",
+ contextname="onesixth",
+ description="VULGAR FRACTION ONE SIXTH",
+ direction="on",
+ linebreak="al",
+ specials={ "fraction", 0x0031, 0x2044, 0x0036 },
+ unicodeslot=0x2159,
},
[0x215A]={
- ["category"]="no",
- ["contextname"]="fivesixths",
- ["description"]="VULGAR FRACTION FIVE SIXTHS",
- ["linebreak"]="al",
- ["specials"]={ "fraction", 0x0035, 0x2044, 0x0036 },
- ["unicodeslot"]=0x215A, -- ⅚
+ category="no",
+ contextname="fivesixths",
+ description="VULGAR FRACTION FIVE SIXTHS",
+ direction="on",
+ linebreak="al",
+ specials={ "fraction", 0x0035, 0x2044, 0x0036 },
+ unicodeslot=0x215A,
},
[0x215B]={
- ["adobename"]="oneeighth",
- ["category"]="no",
- ["cjkwd"]="a",
- ["contextname"]="oneeighth",
- ["description"]="VULGAR FRACTION ONE EIGHTH",
- ["linebreak"]="ai",
- ["specials"]={ "fraction", 0x0031, 0x2044, 0x0038 },
- ["unicodeslot"]=0x215B, -- ⅛
+ adobename="oneeighth",
+ category="no",
+ cjkwd="a",
+ contextname="oneeighth",
+ description="VULGAR FRACTION ONE EIGHTH",
+ direction="on",
+ linebreak="ai",
+ specials={ "fraction", 0x0031, 0x2044, 0x0038 },
+ unicodeslot=0x215B,
},
[0x215C]={
- ["adobename"]="threeeighths",
- ["category"]="no",
- ["cjkwd"]="a",
- ["contextname"]="threeeighths",
- ["description"]="VULGAR FRACTION THREE EIGHTHS",
- ["linebreak"]="al",
- ["specials"]={ "fraction", 0x0033, 0x2044, 0x0038 },
- ["unicodeslot"]=0x215C, -- ⅜
+ adobename="threeeighths",
+ category="no",
+ cjkwd="a",
+ contextname="threeeighths",
+ description="VULGAR FRACTION THREE EIGHTHS",
+ direction="on",
+ linebreak="al",
+ specials={ "fraction", 0x0033, 0x2044, 0x0038 },
+ unicodeslot=0x215C,
},
[0x215D]={
- ["adobename"]="fiveeighths",
- ["category"]="no",
- ["cjkwd"]="a",
- ["contextname"]="fiveeighths",
- ["description"]="VULGAR FRACTION FIVE EIGHTHS",
- ["linebreak"]="al",
- ["specials"]={ "fraction", 0x0035, 0x2044, 0x0038 },
- ["unicodeslot"]=0x215D, -- ⅝
+ adobename="fiveeighths",
+ category="no",
+ cjkwd="a",
+ contextname="fiveeighths",
+ description="VULGAR FRACTION FIVE EIGHTHS",
+ direction="on",
+ linebreak="al",
+ specials={ "fraction", 0x0035, 0x2044, 0x0038 },
+ unicodeslot=0x215D,
},
[0x215E]={
- ["adobename"]="seveneighths",
- ["category"]="no",
- ["cjkwd"]="a",
- ["contextname"]="seveneighths",
- ["description"]="VULGAR FRACTION SEVEN EIGHTHS",
- ["linebreak"]="ai",
- ["specials"]={ "fraction", 0x0037, 0x2044, 0x0038 },
- ["unicodeslot"]=0x215E, -- ⅞
+ adobename="seveneighths",
+ category="no",
+ cjkwd="a",
+ contextname="seveneighths",
+ description="VULGAR FRACTION SEVEN EIGHTHS",
+ direction="on",
+ linebreak="ai",
+ specials={ "fraction", 0x0037, 0x2044, 0x0038 },
+ unicodeslot=0x215E,
},
[0x215F]={
- ["category"]="no",
- ["description"]="FRACTION NUMERATOR ONE",
- ["linebreak"]="al",
- ["specials"]={ "fraction", 0x0031, 0x2044 },
- ["unicodeslot"]=0x215F, -- ⅟
+ category="no",
+ description="FRACTION NUMERATOR ONE",
+ direction="on",
+ linebreak="al",
+ specials={ "fraction", 0x0031, 0x2044 },
+ unicodeslot=0x215F,
},
[0x2160]={
- ["category"]="nl",
- ["cjkwd"]="a",
- ["contextname"]="romanI",
- ["description"]="ROMAN NUMERAL ONE",
- ["lccode"]=0x2170,
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0049 },
- ["unicodeslot"]=0x2160, -- Ⅰ
+ category="nl",
+ cjkwd="a",
+ contextname="romanI",
+ description="ROMAN NUMERAL ONE",
+ direction="l",
+ lccode=0x2170,
+ linebreak="ai",
+ specials={ "compat", 0x0049 },
+ unicodeslot=0x2160,
},
[0x2161]={
- ["category"]="nl",
- ["cjkwd"]="a",
- ["contextname"]="romanII",
- ["description"]="ROMAN NUMERAL TWO",
- ["lccode"]=0x2171,
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0049, 0x0049 },
- ["unicodeslot"]=0x2161, -- Ⅱ
+ category="nl",
+ cjkwd="a",
+ contextname="romanII",
+ description="ROMAN NUMERAL TWO",
+ direction="l",
+ lccode=0x2171,
+ linebreak="ai",
+ specials={ "compat", 0x0049, 0x0049 },
+ unicodeslot=0x2161,
},
[0x2162]={
- ["category"]="nl",
- ["cjkwd"]="a",
- ["contextname"]="romanIII",
- ["description"]="ROMAN NUMERAL THREE",
- ["lccode"]=0x2172,
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0049, 0x0049, 0x0049 },
- ["unicodeslot"]=0x2162, -- Ⅲ
+ category="nl",
+ cjkwd="a",
+ contextname="romanIII",
+ description="ROMAN NUMERAL THREE",
+ direction="l",
+ lccode=0x2172,
+ linebreak="ai",
+ specials={ "compat", 0x0049, 0x0049, 0x0049 },
+ unicodeslot=0x2162,
},
[0x2163]={
- ["category"]="nl",
- ["cjkwd"]="a",
- ["contextname"]="romanIV",
- ["description"]="ROMAN NUMERAL FOUR",
- ["lccode"]=0x2173,
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0049, 0x0056 },
- ["unicodeslot"]=0x2163, -- Ⅳ
+ category="nl",
+ cjkwd="a",
+ contextname="romanIV",
+ description="ROMAN NUMERAL FOUR",
+ direction="l",
+ lccode=0x2173,
+ linebreak="ai",
+ specials={ "compat", 0x0049, 0x0056 },
+ unicodeslot=0x2163,
},
[0x2164]={
- ["category"]="nl",
- ["cjkwd"]="a",
- ["contextname"]="romanV",
- ["description"]="ROMAN NUMERAL FIVE",
- ["lccode"]=0x2174,
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0056 },
- ["unicodeslot"]=0x2164, -- Ⅴ
+ category="nl",
+ cjkwd="a",
+ contextname="romanV",
+ description="ROMAN NUMERAL FIVE",
+ direction="l",
+ lccode=0x2174,
+ linebreak="ai",
+ specials={ "compat", 0x0056 },
+ unicodeslot=0x2164,
},
[0x2165]={
- ["category"]="nl",
- ["cjkwd"]="a",
- ["contextname"]="romanVI",
- ["description"]="ROMAN NUMERAL SIX",
- ["lccode"]=0x2175,
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0056, 0x0049 },
- ["unicodeslot"]=0x2165, -- Ⅵ
+ category="nl",
+ cjkwd="a",
+ contextname="romanVI",
+ description="ROMAN NUMERAL SIX",
+ direction="l",
+ lccode=0x2175,
+ linebreak="ai",
+ specials={ "compat", 0x0056, 0x0049 },
+ unicodeslot=0x2165,
},
[0x2166]={
- ["category"]="nl",
- ["cjkwd"]="a",
- ["contextname"]="romanVII",
- ["description"]="ROMAN NUMERAL SEVEN",
- ["lccode"]=0x2176,
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0056, 0x0049, 0x0049 },
- ["unicodeslot"]=0x2166, -- Ⅶ
+ category="nl",
+ cjkwd="a",
+ contextname="romanVII",
+ description="ROMAN NUMERAL SEVEN",
+ direction="l",
+ lccode=0x2176,
+ linebreak="ai",
+ specials={ "compat", 0x0056, 0x0049, 0x0049 },
+ unicodeslot=0x2166,
},
[0x2167]={
- ["category"]="nl",
- ["cjkwd"]="a",
- ["contextname"]="romanVIII",
- ["description"]="ROMAN NUMERAL EIGHT",
- ["lccode"]=0x2177,
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0056, 0x0049, 0x0049, 0x0049 },
- ["unicodeslot"]=0x2167, -- Ⅷ
+ category="nl",
+ cjkwd="a",
+ contextname="romanVIII",
+ description="ROMAN NUMERAL EIGHT",
+ direction="l",
+ lccode=0x2177,
+ linebreak="ai",
+ specials={ "compat", 0x0056, 0x0049, 0x0049, 0x0049 },
+ unicodeslot=0x2167,
},
[0x2168]={
- ["category"]="nl",
- ["cjkwd"]="a",
- ["contextname"]="romanIX",
- ["description"]="ROMAN NUMERAL NINE",
- ["lccode"]=0x2178,
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0049, 0x0058 },
- ["unicodeslot"]=0x2168, -- Ⅸ
+ category="nl",
+ cjkwd="a",
+ contextname="romanIX",
+ description="ROMAN NUMERAL NINE",
+ direction="l",
+ lccode=0x2178,
+ linebreak="ai",
+ specials={ "compat", 0x0049, 0x0058 },
+ unicodeslot=0x2168,
},
[0x2169]={
- ["category"]="nl",
- ["cjkwd"]="a",
- ["contextname"]="romanX",
- ["description"]="ROMAN NUMERAL TEN",
- ["lccode"]=0x2179,
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0058 },
- ["unicodeslot"]=0x2169, -- Ⅹ
+ category="nl",
+ cjkwd="a",
+ contextname="romanX",
+ description="ROMAN NUMERAL TEN",
+ direction="l",
+ lccode=0x2179,
+ linebreak="ai",
+ specials={ "compat", 0x0058 },
+ unicodeslot=0x2169,
},
[0x216A]={
- ["category"]="nl",
- ["cjkwd"]="a",
- ["contextname"]="romanXI",
- ["description"]="ROMAN NUMERAL ELEVEN",
- ["lccode"]=0x217A,
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0058, 0x0049 },
- ["unicodeslot"]=0x216A, -- Ⅺ
+ category="nl",
+ cjkwd="a",
+ contextname="romanXI",
+ description="ROMAN NUMERAL ELEVEN",
+ direction="l",
+ lccode=0x217A,
+ linebreak="ai",
+ specials={ "compat", 0x0058, 0x0049 },
+ unicodeslot=0x216A,
},
[0x216B]={
- ["category"]="nl",
- ["cjkwd"]="a",
- ["contextname"]="romanXII",
- ["description"]="ROMAN NUMERAL TWELVE",
- ["lccode"]=0x217B,
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0058, 0x0049, 0x0049 },
- ["unicodeslot"]=0x216B, -- Ⅻ
+ category="nl",
+ cjkwd="a",
+ contextname="romanXII",
+ description="ROMAN NUMERAL TWELVE",
+ direction="l",
+ lccode=0x217B,
+ linebreak="ai",
+ specials={ "compat", 0x0058, 0x0049, 0x0049 },
+ unicodeslot=0x216B,
},
[0x216C]={
- ["category"]="nl",
- ["contextname"]="romanL",
- ["description"]="ROMAN NUMERAL FIFTY",
- ["lccode"]=0x217C,
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x004C },
- ["unicodeslot"]=0x216C, -- Ⅼ
+ category="nl",
+ contextname="romanL",
+ description="ROMAN NUMERAL FIFTY",
+ direction="l",
+ lccode=0x217C,
+ linebreak="al",
+ specials={ "compat", 0x004C },
+ unicodeslot=0x216C,
},
[0x216D]={
- ["category"]="nl",
- ["contextname"]="romanC",
- ["description"]="ROMAN NUMERAL ONE HUNDRED",
- ["lccode"]=0x217D,
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x0043 },
- ["unicodeslot"]=0x216D, -- Ⅽ
+ category="nl",
+ contextname="romanC",
+ description="ROMAN NUMERAL ONE HUNDRED",
+ direction="l",
+ lccode=0x217D,
+ linebreak="al",
+ specials={ "compat", 0x0043 },
+ unicodeslot=0x216D,
},
[0x216E]={
- ["category"]="nl",
- ["contextname"]="romanD",
- ["description"]="ROMAN NUMERAL FIVE HUNDRED",
- ["lccode"]=0x217E,
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x0044 },
- ["unicodeslot"]=0x216E, -- Ⅾ
+ category="nl",
+ contextname="romanD",
+ description="ROMAN NUMERAL FIVE HUNDRED",
+ direction="l",
+ lccode=0x217E,
+ linebreak="al",
+ specials={ "compat", 0x0044 },
+ unicodeslot=0x216E,
},
[0x216F]={
- ["category"]="nl",
- ["contextname"]="romanM",
- ["description"]="ROMAN NUMERAL ONE THOUSAND",
- ["lccode"]=0x217F,
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x004D },
- ["unicodeslot"]=0x216F, -- Ⅿ
+ category="nl",
+ contextname="romanM",
+ description="ROMAN NUMERAL ONE THOUSAND",
+ direction="l",
+ lccode=0x217F,
+ linebreak="al",
+ specials={ "compat", 0x004D },
+ unicodeslot=0x216F,
},
[0x2170]={
- ["category"]="nl",
- ["cjkwd"]="a",
- ["contextname"]="romani",
- ["description"]="SMALL ROMAN NUMERAL ONE",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0069 },
- ["uccode"]=0x2160,
- ["unicodeslot"]=0x2170, -- ⅰ
+ category="nl",
+ cjkwd="a",
+ contextname="romani",
+ description="SMALL ROMAN NUMERAL ONE",
+ direction="l",
+ linebreak="ai",
+ specials={ "compat", 0x0069 },
+ uccode=0x2160,
+ unicodeslot=0x2170,
},
[0x2171]={
- ["category"]="nl",
- ["cjkwd"]="a",
- ["contextname"]="romanii",
- ["description"]="SMALL ROMAN NUMERAL TWO",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0069, 0x0069 },
- ["uccode"]=0x2161,
- ["unicodeslot"]=0x2171, -- ⅱ
+ category="nl",
+ cjkwd="a",
+ contextname="romanii",
+ description="SMALL ROMAN NUMERAL TWO",
+ direction="l",
+ linebreak="ai",
+ specials={ "compat", 0x0069, 0x0069 },
+ uccode=0x2161,
+ unicodeslot=0x2171,
},
[0x2172]={
- ["category"]="nl",
- ["cjkwd"]="a",
- ["contextname"]="romaniii",
- ["description"]="SMALL ROMAN NUMERAL THREE",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0069, 0x0069, 0x0069 },
- ["uccode"]=0x2162,
- ["unicodeslot"]=0x2172, -- ⅲ
+ category="nl",
+ cjkwd="a",
+ contextname="romaniii",
+ description="SMALL ROMAN NUMERAL THREE",
+ direction="l",
+ linebreak="ai",
+ specials={ "compat", 0x0069, 0x0069, 0x0069 },
+ uccode=0x2162,
+ unicodeslot=0x2172,
},
[0x2173]={
- ["category"]="nl",
- ["cjkwd"]="a",
- ["contextname"]="romaniv",
- ["description"]="SMALL ROMAN NUMERAL FOUR",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0069, 0x0076 },
- ["uccode"]=0x2163,
- ["unicodeslot"]=0x2173, -- ⅳ
+ category="nl",
+ cjkwd="a",
+ contextname="romaniv",
+ description="SMALL ROMAN NUMERAL FOUR",
+ direction="l",
+ linebreak="ai",
+ specials={ "compat", 0x0069, 0x0076 },
+ uccode=0x2163,
+ unicodeslot=0x2173,
},
[0x2174]={
- ["category"]="nl",
- ["cjkwd"]="a",
- ["contextname"]="romanv",
- ["description"]="SMALL ROMAN NUMERAL FIVE",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0076 },
- ["uccode"]=0x2164,
- ["unicodeslot"]=0x2174, -- ⅴ
+ category="nl",
+ cjkwd="a",
+ contextname="romanv",
+ description="SMALL ROMAN NUMERAL FIVE",
+ direction="l",
+ linebreak="ai",
+ specials={ "compat", 0x0076 },
+ uccode=0x2164,
+ unicodeslot=0x2174,
},
[0x2175]={
- ["category"]="nl",
- ["cjkwd"]="a",
- ["contextname"]="romanvi",
- ["description"]="SMALL ROMAN NUMERAL SIX",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0076, 0x0069 },
- ["uccode"]=0x2165,
- ["unicodeslot"]=0x2175, -- ⅵ
+ category="nl",
+ cjkwd="a",
+ contextname="romanvi",
+ description="SMALL ROMAN NUMERAL SIX",
+ direction="l",
+ linebreak="ai",
+ specials={ "compat", 0x0076, 0x0069 },
+ uccode=0x2165,
+ unicodeslot=0x2175,
},
[0x2176]={
- ["category"]="nl",
- ["cjkwd"]="a",
- ["contextname"]="romanvii",
- ["description"]="SMALL ROMAN NUMERAL SEVEN",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0076, 0x0069, 0x0069 },
- ["uccode"]=0x2166,
- ["unicodeslot"]=0x2176, -- ⅶ
+ category="nl",
+ cjkwd="a",
+ contextname="romanvii",
+ description="SMALL ROMAN NUMERAL SEVEN",
+ direction="l",
+ linebreak="ai",
+ specials={ "compat", 0x0076, 0x0069, 0x0069 },
+ uccode=0x2166,
+ unicodeslot=0x2176,
},
[0x2177]={
- ["category"]="nl",
- ["cjkwd"]="a",
- ["contextname"]="romanviii",
- ["description"]="SMALL ROMAN NUMERAL EIGHT",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0076, 0x0069, 0x0069, 0x0069 },
- ["uccode"]=0x2167,
- ["unicodeslot"]=0x2177, -- ⅷ
+ category="nl",
+ cjkwd="a",
+ contextname="romanviii",
+ description="SMALL ROMAN NUMERAL EIGHT",
+ direction="l",
+ linebreak="ai",
+ specials={ "compat", 0x0076, 0x0069, 0x0069, 0x0069 },
+ uccode=0x2167,
+ unicodeslot=0x2177,
},
[0x2178]={
- ["category"]="nl",
- ["cjkwd"]="a",
- ["contextname"]="romanix",
- ["description"]="SMALL ROMAN NUMERAL NINE",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0069, 0x0078 },
- ["uccode"]=0x2168,
- ["unicodeslot"]=0x2178, -- ⅸ
+ category="nl",
+ cjkwd="a",
+ contextname="romanix",
+ description="SMALL ROMAN NUMERAL NINE",
+ direction="l",
+ linebreak="ai",
+ specials={ "compat", 0x0069, 0x0078 },
+ uccode=0x2168,
+ unicodeslot=0x2178,
},
[0x2179]={
- ["category"]="nl",
- ["cjkwd"]="a",
- ["contextname"]="romanx",
- ["description"]="SMALL ROMAN NUMERAL TEN",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0078 },
- ["uccode"]=0x2169,
- ["unicodeslot"]=0x2179, -- ⅹ
+ category="nl",
+ cjkwd="a",
+ contextname="romanx",
+ description="SMALL ROMAN NUMERAL TEN",
+ direction="l",
+ linebreak="ai",
+ specials={ "compat", 0x0078 },
+ uccode=0x2169,
+ unicodeslot=0x2179,
},
[0x217A]={
- ["category"]="nl",
- ["contextname"]="romanxi",
- ["description"]="SMALL ROMAN NUMERAL ELEVEN",
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x0078, 0x0069 },
- ["uccode"]=0x216A,
- ["unicodeslot"]=0x217A, -- ⅺ
+ category="nl",
+ contextname="romanxi",
+ description="SMALL ROMAN NUMERAL ELEVEN",
+ direction="l",
+ linebreak="al",
+ specials={ "compat", 0x0078, 0x0069 },
+ uccode=0x216A,
+ unicodeslot=0x217A,
},
[0x217B]={
- ["category"]="nl",
- ["contextname"]="romanxii",
- ["description"]="SMALL ROMAN NUMERAL TWELVE",
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x0078, 0x0069, 0x0069 },
- ["uccode"]=0x216B,
- ["unicodeslot"]=0x217B, -- ⅻ
+ category="nl",
+ contextname="romanxii",
+ description="SMALL ROMAN NUMERAL TWELVE",
+ direction="l",
+ linebreak="al",
+ specials={ "compat", 0x0078, 0x0069, 0x0069 },
+ uccode=0x216B,
+ unicodeslot=0x217B,
},
[0x217C]={
- ["category"]="nl",
- ["contextname"]="romanl",
- ["description"]="SMALL ROMAN NUMERAL FIFTY",
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x006C },
- ["uccode"]=0x216C,
- ["unicodeslot"]=0x217C, -- ⅼ
+ category="nl",
+ contextname="romanl",
+ description="SMALL ROMAN NUMERAL FIFTY",
+ direction="l",
+ linebreak="al",
+ specials={ "compat", 0x006C },
+ uccode=0x216C,
+ unicodeslot=0x217C,
},
[0x217D]={
- ["category"]="nl",
- ["contextname"]="romanc",
- ["description"]="SMALL ROMAN NUMERAL ONE HUNDRED",
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x0063 },
- ["uccode"]=0x216D,
- ["unicodeslot"]=0x217D, -- ⅽ
+ category="nl",
+ contextname="romanc",
+ description="SMALL ROMAN NUMERAL ONE HUNDRED",
+ direction="l",
+ linebreak="al",
+ specials={ "compat", 0x0063 },
+ uccode=0x216D,
+ unicodeslot=0x217D,
},
[0x217E]={
- ["category"]="nl",
- ["contextname"]="romand",
- ["description"]="SMALL ROMAN NUMERAL FIVE HUNDRED",
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x0064 },
- ["uccode"]=0x216E,
- ["unicodeslot"]=0x217E, -- ⅾ
+ category="nl",
+ contextname="romand",
+ description="SMALL ROMAN NUMERAL FIVE HUNDRED",
+ direction="l",
+ linebreak="al",
+ specials={ "compat", 0x0064 },
+ uccode=0x216E,
+ unicodeslot=0x217E,
},
[0x217F]={
- ["category"]="nl",
- ["contextname"]="romanm",
- ["description"]="SMALL ROMAN NUMERAL ONE THOUSAND",
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x006D },
- ["uccode"]=0x216F,
- ["unicodeslot"]=0x217F, -- ⅿ
+ category="nl",
+ contextname="romanm",
+ description="SMALL ROMAN NUMERAL ONE THOUSAND",
+ direction="l",
+ linebreak="al",
+ specials={ "compat", 0x006D },
+ uccode=0x216F,
+ unicodeslot=0x217F,
},
[0x2180]={
- ["category"]="nl",
- ["description"]="ROMAN NUMERAL ONE THOUSAND C D",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2180, -- ↀ
+ category="nl",
+ description="ROMAN NUMERAL ONE THOUSAND C D",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2180,
},
[0x2181]={
- ["category"]="nl",
- ["description"]="ROMAN NUMERAL FIVE THOUSAND",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2181, -- ↁ
+ category="nl",
+ description="ROMAN NUMERAL FIVE THOUSAND",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2181,
},
[0x2182]={
- ["category"]="nl",
- ["description"]="ROMAN NUMERAL TEN THOUSAND",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2182, -- ↂ
+ category="nl",
+ description="ROMAN NUMERAL TEN THOUSAND",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2182,
},
[0x2183]={
- ["category"]="lu",
- ["description"]="ROMAN NUMERAL REVERSED ONE HUNDRED",
- ["lccode"]=0x2184,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2183, -- Ↄ
+ category="lu",
+ description="ROMAN NUMERAL REVERSED ONE HUNDRED",
+ direction="l",
+ lccode=0x2184,
+ linebreak="al",
+ unicodeslot=0x2183,
},
[0x2184]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER REVERSED C",
- ["linebreak"]="al",
- ["uccode"]=0x2183,
- ["unicodeslot"]=0x2184, -- ↄ
+ category="ll",
+ description="LATIN SMALL LETTER REVERSED C",
+ direction="l",
+ linebreak="al",
+ uccode=0x2183,
+ unicodeslot=0x2184,
},
[0x2190]={
- ["adobename"]="arrowleft",
- ["category"]="sm",
- ["cjkwd"]="a",
- ["description"]="LEFTWARDS ARROW",
- ["linebreak"]="ai",
- ["mathclass"]="relation",
- ["mathname"]="leftarrow",
- ["unicodeslot"]=0x2190, -- ←
+ adobename="arrowleft",
+ category="sm",
+ cjkwd="a",
+ description="LEFTWARDS ARROW",
+ direction="on",
+ linebreak="ai",
+ mathspec={
+ { class="relation", name="leftarrow" },
+ { class="relation", name="gets" },
+ { class="under", name="underleftarrow" },
+ { class="over", name="overleftarrow" },
+ },
+ mathstretch="h",
+ unicodeslot=0x2190,
},
[0x2191]={
- ["adobename"]="arrowup",
- ["category"]="sm",
- ["cjkwd"]="a",
- ["description"]="UPWARDS ARROW",
- ["linebreak"]="ai",
- ["mathclass"]="relation",
- ["mathname"]="uparraow",
- ["unicodeslot"]=0x2191, -- ↑
+ adobename="arrowup",
+ category="sm",
+ cjkwd="a",
+ description="UPWARDS ARROW",
+ direction="on",
+ linebreak="ai",
+ mathclass="relation",
+ mathname="uparrow",
+ unicodeslot=0x2191,
},
[0x2192]={
- ["adobename"]="arrowright",
- ["category"]="sm",
- ["cjkwd"]="a",
- ["description"]="RIGHTWARDS ARROW",
- ["linebreak"]="ai",
- ["mathclass"]="relation",
- ["mathname"]="rightarrow",
- ["unicodeslot"]=0x2192, -- →
+ adobename="arrowright",
+ category="sm",
+ cjkwd="a",
+ description="RIGHTWARDS ARROW",
+ direction="on",
+ linebreak="ai",
+ mathspec={
+ { class="relation",name="rightarrow" },
+ { class="relation",name="to" },
+ { class="under", name="underrightarrow" },
+ { class="over", name="overrightarrow" },
+ },
+ mathstretch="h",
+ unicodeslot=0x2192,
},
[0x2193]={
- ["adobename"]="arrowdown",
- ["category"]="sm",
- ["cjkwd"]="a",
- ["description"]="DOWNWARDS ARROW",
- ["linebreak"]="ai",
- ["mathclass"]="relation",
- ["mathname"]="downarrow",
- ["unicodeslot"]=0x2193, -- ↓
+ adobename="arrowdown",
+ category="sm",
+ cjkwd="a",
+ description="DOWNWARDS ARROW",
+ direction="on",
+ linebreak="ai",
+ mathclass="relation",
+ mathname="downarrow",
+ unicodeslot=0x2193,
},
[0x2194]={
- ["adobename"]="arrowboth",
- ["category"]="sm",
- ["cjkwd"]="a",
- ["description"]="LEFT RIGHT ARROW",
- ["linebreak"]="ai",
- ["mathclass"]="relation",
- ["mathname"]="leftrightarrow",
- ["unicodeslot"]=0x2194, -- ↔
+ adobename="arrowboth",
+ category="sm",
+ cjkwd="a",
+ description="LEFT RIGHT ARROW",
+ direction="on",
+ linebreak="ai",
+ mathclass="relation",
+ mathname="leftrightarrow",
+ unicodeslot=0x2194,
},
[0x2195]={
- ["adobename"]="arrowupdn",
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="UP DOWN ARROW",
- ["linebreak"]="ai",
- ["mathclass"]="relation",
- ["mathname"]="updownarrow",
- ["unicodeslot"]=0x2195, -- ↕
+ adobename="arrowupdn",
+ category="so",
+ cjkwd="a",
+ description="UP DOWN ARROW",
+ direction="on",
+ linebreak="ai",
+ mathclass="relation",
+ mathname="updownarrow",
+ unicodeslot=0x2195,
},
[0x2196]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="NORTH WEST ARROW",
- ["linebreak"]="ai",
- ["mathclass"]="relation",
- ["mathname"]="nwarrow",
- ["unicodeslot"]=0x2196, -- ↖
+ category="so",
+ cjkwd="a",
+ description="NORTH WEST ARROW",
+ direction="on",
+ linebreak="ai",
+ mathclass="relation",
+ mathname="nwarrow",
+ unicodeslot=0x2196,
},
[0x2197]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="NORTH EAST ARROW",
- ["linebreak"]="ai",
- ["mathclass"]="relation",
- ["mathname"]="nearrow",
- ["unicodeslot"]=0x2197, -- ↗
+ category="so",
+ cjkwd="a",
+ description="NORTH EAST ARROW",
+ direction="on",
+ linebreak="ai",
+ mathclass="relation",
+ mathname="nearrow",
+ unicodeslot=0x2197,
},
[0x2198]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="SOUTH EAST ARROW",
- ["linebreak"]="ai",
- ["mathclass"]="relation",
- ["mathname"]="searrow",
- ["unicodeslot"]=0x2198, -- ↘
+ category="so",
+ cjkwd="a",
+ description="SOUTH EAST ARROW",
+ direction="on",
+ linebreak="ai",
+ mathclass="relation",
+ mathname="searrow",
+ unicodeslot=0x2198,
},
[0x2199]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="SOUTH WEST ARROW",
- ["linebreak"]="ai",
- ["mathclass"]="relation",
- ["mathname"]="swarrow",
- ["unicodeslot"]=0x2199, -- ↙
+ category="so",
+ cjkwd="a",
+ description="SOUTH WEST ARROW",
+ direction="on",
+ linebreak="ai",
+ mathclass="relation",
+ mathname="swarrow",
+ unicodeslot=0x2199,
},
[0x219A]={
- ["category"]="sm",
- ["description"]="LEFTWARDS ARROW WITH STROKE",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x2190, 0x0338 },
- ["unicodeslot"]=0x219A, -- ↚
+ category="sm",
+ description="LEFTWARDS ARROW WITH STROKE",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="nleftarrow",
+ specials={ "char", 0x2190, 0x0338 },
+ unicodeslot=0x219A,
},
[0x219B]={
- ["category"]="sm",
- ["description"]="RIGHTWARDS ARROW WITH STROKE",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x2192, 0x0338 },
- ["unicodeslot"]=0x219B, -- ↛
+ category="sm",
+ description="RIGHTWARDS ARROW WITH STROKE",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="nrightarrow",
+ specials={ "char", 0x2192, 0x0338 },
+ unicodeslot=0x219B,
},
[0x219C]={
- ["category"]="so",
- ["description"]="LEFTWARDS WAVE ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x219C, -- ↜
+ category="so",
+ description="LEFTWARDS WAVE ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x219C,
},
[0x219D]={
- ["category"]="so",
- ["description"]="RIGHTWARDS WAVE ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x219D, -- ↝
+ category="so",
+ description="RIGHTWARDS WAVE ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x219D,
},
[0x219E]={
- ["category"]="so",
- ["description"]="LEFTWARDS TWO HEADED ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x219E, -- ↞
+ category="so",
+ description="LEFTWARDS TWO HEADED ARROW",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="twoheadleftarrow",
+ unicodeslot=0x219E,
},
[0x219F]={
- ["category"]="so",
- ["description"]="UPWARDS TWO HEADED ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x219F, -- ↟
+ category="so",
+ description="UPWARDS TWO HEADED ARROW",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="twoheadupleftarrow",
+ unicodeslot=0x219F,
},
[0x21A0]={
- ["category"]="sm",
- ["description"]="RIGHTWARDS TWO HEADED ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21A0, -- ↠
+ category="sm",
+ description="RIGHTWARDS TWO HEADED ARROW",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="twoheadrightarrow",
+ unicodeslot=0x21A0,
},
[0x21A1]={
- ["category"]="so",
- ["description"]="DOWNWARDS TWO HEADED ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21A1, -- ↡
+ category="so",
+ description="DOWNWARDS TWO HEADED ARROW",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="twoheaddownleftarrow",
+ unicodeslot=0x21A1,
},
[0x21A2]={
- ["category"]="so",
- ["description"]="LEFTWARDS ARROW WITH TAIL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21A2, -- ↢
+ category="so",
+ description="LEFTWARDS ARROW WITH TAIL",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="leftarrowtail",
+ unicodeslot=0x21A2,
},
[0x21A3]={
- ["category"]="sm",
- ["description"]="RIGHTWARDS ARROW WITH TAIL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21A3, -- ↣
+ category="sm",
+ description="RIGHTWARDS ARROW WITH TAIL",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="rightarrowtail",
+ unicodeslot=0x21A3,
},
[0x21A4]={
- ["category"]="so",
- ["description"]="LEFTWARDS ARROW FROM BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21A4, -- ↤
+ category="so",
+ description="LEFTWARDS ARROW FROM BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x21A4,
},
[0x21A5]={
- ["category"]="so",
- ["description"]="UPWARDS ARROW FROM BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21A5, -- ↥
+ category="so",
+ description="UPWARDS ARROW FROM BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x21A5,
},
[0x21A6]={
- ["category"]="sm",
- ["description"]="RIGHTWARDS ARROW FROM BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21A6, -- ↦
+ category="sm",
+ description="RIGHTWARDS ARROW FROM BAR",
+ direction="on",
+ linebreak="al",
+ fallback=[[\mapstochar\rightarrow]],
+ mathclass="relation",
+ mathname="mapsto",
+ unicodeslot=0x21A6,
},
[0x21A7]={
- ["category"]="so",
- ["description"]="DOWNWARDS ARROW FROM BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21A7, -- ↧
+ category="so",
+ description="DOWNWARDS ARROW FROM BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x21A7,
},
[0x21A8]={
- ["adobename"]="arrowupdnbse",
- ["category"]="so",
- ["description"]="UP DOWN ARROW WITH BASE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21A8, -- ↨
+ adobename="arrowupdnbse",
+ category="so",
+ description="UP DOWN ARROW WITH BASE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x21A8,
},
[0x21A9]={
- ["category"]="so",
- ["description"]="LEFTWARDS ARROW WITH HOOK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21A9, -- ↩
+ category="so",
+ description="LEFTWARDS ARROW WITH HOOK",
+ direction="on",
+ linebreak="al",
+ fallback=[[\leftarrow\joinrel\rhook]],
+ mathclass="relation",
+ mathname="hookleftarrow",
+ unicodeslot=0x21A9,
},
[0x21AA]={
- ["category"]="so",
- ["description"]="RIGHTWARDS ARROW WITH HOOK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21AA, -- ↪
+ category="so",
+ description="RIGHTWARDS ARROW WITH HOOK",
+ direction="on",
+ linebreak="al",
+ fallback=[[\lhook\joinrel\rightarrow]],
+ mathclass="relation",
+ mathname="hookrightarrow",
+ unicodeslot=0x21AA,
},
[0x21AB]={
- ["category"]="so",
- ["description"]="LEFTWARDS ARROW WITH LOOP",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21AB, -- ↫
+ category="so",
+ description="LEFTWARDS ARROW WITH LOOP",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="looparrowleft",
+ unicodeslot=0x21AB,
},
[0x21AC]={
- ["category"]="so",
- ["description"]="RIGHTWARDS ARROW WITH LOOP",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21AC, -- ↬
+ category="so",
+ description="RIGHTWARDS ARROW WITH LOOP",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="looparrowright",
+ unicodeslot=0x21AC,
},
[0x21AD]={
- ["category"]="so",
- ["description"]="LEFT RIGHT WAVE ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21AD, -- ↭
+ category="so",
+ description="LEFT RIGHT WAVE ARROW",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="leftrightsquigarrow",
+ unicodeslot=0x21AD,
},
[0x21AE]={
- ["category"]="sm",
- ["description"]="LEFT RIGHT ARROW WITH STROKE",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x2194, 0x0338 },
- ["unicodeslot"]=0x21AE, -- ↮
+ category="sm",
+ description="LEFT RIGHT ARROW WITH STROKE",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="nleftrightarrow",
+ specials={ "char", 0x2194, 0x0338 },
+ unicodeslot=0x21AE,
},
[0x21AF]={
- ["category"]="so",
- ["description"]="DOWNWARDS ZIGZAG ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21AF, -- ↯
+ category="so",
+ description="DOWNWARDS ZIGZAG ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x21AF,
},
[0x21B0]={
- ["category"]="so",
- ["description"]="UPWARDS ARROW WITH TIP LEFTWARDS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21B0, -- ↰
+ category="so",
+ description="UPWARDS ARROW WITH TIP LEFTWARDS",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="Lsh",
+ unicodeslot=0x21B0,
},
[0x21B1]={
- ["category"]="so",
- ["description"]="UPWARDS ARROW WITH TIP RIGHTWARDS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21B1, -- ↱
+ category="so",
+ description="UPWARDS ARROW WITH TIP RIGHTWARDS",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="Rsh",
+ unicodeslot=0x21B1,
},
[0x21B2]={
- ["category"]="so",
- ["description"]="DOWNWARDS ARROW WITH TIP LEFTWARDS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21B2, -- ↲
+ category="so",
+ description="DOWNWARDS ARROW WITH TIP LEFTWARDS",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="dlsh", -- from mathabx
+ unicodeslot=0x21B2,
},
[0x21B3]={
- ["category"]="so",
- ["description"]="DOWNWARDS ARROW WITH TIP RIGHTWARDS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21B3, -- ↳
+ category="so",
+ description="DOWNWARDS ARROW WITH TIP RIGHTWARDS",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="drsh", -- from mathabx
+ unicodeslot=0x21B3,
},
[0x21B4]={
- ["category"]="so",
- ["description"]="RIGHTWARDS ARROW WITH CORNER DOWNWARDS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21B4, -- ↴
+ category="so",
+ description="RIGHTWARDS ARROW WITH CORNER DOWNWARDS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x21B4,
},
[0x21B5]={
- ["adobename"]="carriagereturn",
- ["category"]="so",
- ["description"]="DOWNWARDS ARROW WITH CORNER LEFTWARDS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21B5, -- ↵
+ adobename="carriagereturn",
+ contextname="carriagereturn",
+ category="so",
+ description="DOWNWARDS ARROW WITH CORNER LEFTWARDS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x21B5,
},
[0x21B6]={
- ["category"]="so",
- ["description"]="ANTICLOCKWISE TOP SEMICIRCLE ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21B6, -- ↶
+ category="so",
+ description="ANTICLOCKWISE TOP SEMICIRCLE ARROW",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="curvearrowleft",
+ unicodeslot=0x21B6,
},
[0x21B7]={
- ["category"]="so",
- ["description"]="CLOCKWISE TOP SEMICIRCLE ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21B7, -- ↷
+ category="so",
+ description="CLOCKWISE TOP SEMICIRCLE ARROW",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="curvearrowright",
+ unicodeslot=0x21B7,
},
[0x21B8]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="NORTH WEST ARROW TO LONG BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21B8, -- ↸
+ category="so",
+ cjkwd="a",
+ description="NORTH WEST ARROW TO LONG BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x21B8,
},
[0x21B9]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21B9, -- ↹
+ category="so",
+ cjkwd="a",
+ description="LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x21B9,
},
[0x21BA]={
- ["category"]="so",
- ["description"]="ANTICLOCKWISE OPEN CIRCLE ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21BA, -- ↺
+ category="so",
+ description="ANTICLOCKWISE OPEN CIRCLE ARROW",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="circlearrowright",
+ unicodeslot=0x21BA,
},
[0x21BB]={
- ["category"]="so",
- ["description"]="CLOCKWISE OPEN CIRCLE ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21BB, -- ↻
+ category="so",
+ description="CLOCKWISE OPEN CIRCLE ARROW",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="circlearrowleft",
+ unicodeslot=0x21BB,
},
[0x21BC]={
- ["category"]="so",
- ["description"]="LEFTWARDS HARPOON WITH BARB UPWARDS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21BC, -- ↼
+ category="so",
+ description="LEFTWARDS HARPOON WITH BARB UPWARDS",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="leftharpoonup",
+ unicodeslot=0x21BC,
},
[0x21BD]={
- ["category"]="so",
- ["description"]="LEFTWARDS HARPOON WITH BARB DOWNWARDS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21BD, -- ↽
+ category="so",
+ description="LEFTWARDS HARPOON WITH BARB DOWNWARDS",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="leftharpoondown",
+ unicodeslot=0x21BD,
},
[0x21BE]={
- ["category"]="so",
- ["description"]="UPWARDS HARPOON WITH BARB RIGHTWARDS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21BE, -- ↾
+ category="so",
+ description="UPWARDS HARPOON WITH BARB RIGHTWARDS",
+ direction="on",
+ linebreak="al",
+ mathspec={
+ { class="relation", name="upharpoonright" },
+ { class="relation", name="restriction" },
+ },
+ unicodeslot=0x21BE,
},
[0x21BF]={
- ["category"]="so",
- ["description"]="UPWARDS HARPOON WITH BARB LEFTWARDS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21BF, -- ↿
+ category="so",
+ description="UPWARDS HARPOON WITH BARB LEFTWARDS",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="upharpoonleft",
+ unicodeslot=0x21BF,
},
[0x21C0]={
- ["category"]="so",
- ["description"]="RIGHTWARDS HARPOON WITH BARB UPWARDS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21C0, -- ⇀
+ category="so",
+ description="RIGHTWARDS HARPOON WITH BARB UPWARDS",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="rightharpoonup",
+ unicodeslot=0x21C0,
},
[0x21C1]={
- ["category"]="so",
- ["description"]="RIGHTWARDS HARPOON WITH BARB DOWNWARDS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21C1, -- ⇁
+ category="so",
+ description="RIGHTWARDS HARPOON WITH BARB DOWNWARDS",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="rightharpoondown",
+ unicodeslot=0x21C1,
},
[0x21C2]={
- ["category"]="so",
- ["description"]="DOWNWARDS HARPOON WITH BARB RIGHTWARDS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21C2, -- ⇂
+ category="so",
+ description="DOWNWARDS HARPOON WITH BARB RIGHTWARDS",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="downharpoonright",
+ unicodeslot=0x21C2,
},
[0x21C3]={
- ["category"]="so",
- ["description"]="DOWNWARDS HARPOON WITH BARB LEFTWARDS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21C3, -- ⇃
+ category="so",
+ description="DOWNWARDS HARPOON WITH BARB LEFTWARDS",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="downharpoonleft",
+ unicodeslot=0x21C3,
},
[0x21C4]={
- ["category"]="so",
- ["description"]="RIGHTWARDS ARROW OVER LEFTWARDS ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21C4, -- ⇄
+ category="so",
+ description="RIGHTWARDS ARROW OVER LEFTWARDS ARROW",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="rightleftarrows",
+ unicodeslot=0x21C4,
},
[0x21C5]={
- ["category"]="so",
- ["description"]="UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21C5, -- ⇅
+ category="so",
+ description="UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="updownarrows",
+ unicodeslot=0x21C5,
},
[0x21C6]={
- ["category"]="so",
- ["description"]="LEFTWARDS ARROW OVER RIGHTWARDS ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21C6, -- ⇆
+ category="so",
+ description="LEFTWARDS ARROW OVER RIGHTWARDS ARROW",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="leftrightarrows",
+ unicodeslot=0x21C6,
},
[0x21C7]={
- ["category"]="so",
- ["description"]="LEFTWARDS PAIRED ARROWS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21C7, -- ⇇
+ category="so",
+ description="LEFTWARDS PAIRED ARROWS",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="leftleftarrows",
+ unicodeslot=0x21C7,
},
[0x21C8]={
- ["category"]="so",
- ["description"]="UPWARDS PAIRED ARROWS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21C8, -- ⇈
+ category="so",
+ description="UPWARDS PAIRED ARROWS",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="upuparrows",
+ unicodeslot=0x21C8,
},
[0x21C9]={
- ["category"]="so",
- ["description"]="RIGHTWARDS PAIRED ARROWS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21C9, -- ⇉
+ category="so",
+ description="RIGHTWARDS PAIRED ARROWS",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="rightrightarrows",
+ unicodeslot=0x21C9,
},
[0x21CA]={
- ["category"]="so",
- ["description"]="DOWNWARDS PAIRED ARROWS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21CA, -- ⇊
+ category="so",
+ description="DOWNWARDS PAIRED ARROWS",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="downdownarrows",
+ unicodeslot=0x21CA,
},
[0x21CB]={
- ["category"]="so",
- ["description"]="LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21CB, -- ⇋
+ category="so",
+ description="LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="leftrightharpoons",
+ unicodeslot=0x21CB,
},
[0x21CC]={
- ["category"]="so",
- ["description"]="RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21CC, -- ⇌
+ category="so",
+ description="RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="rightleftharpoons",
+ unicodeslot=0x21CC,
},
[0x21CD]={
- ["category"]="so",
- ["description"]="LEFTWARDS DOUBLE ARROW WITH STROKE",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x21D0, 0x0338 },
- ["unicodeslot"]=0x21CD, -- ⇍
+ category="so",
+ description="LEFTWARDS DOUBLE ARROW WITH STROKE",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="nLeftarrow",
+ specials={ "char", 0x21D0, 0x0338 },
+ unicodeslot=0x21CD,
},
[0x21CE]={
- ["category"]="sm",
- ["description"]="LEFT RIGHT DOUBLE ARROW WITH STROKE",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x21D4, 0x0338 },
- ["unicodeslot"]=0x21CE, -- ⇎
+ category="sm",
+ description="LEFT RIGHT DOUBLE ARROW WITH STROKE",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="nLeftrightarrow",
+ specials={ "char", 0x21D4, 0x0338 },
+ unicodeslot=0x21CE,
},
[0x21CF]={
- ["category"]="sm",
- ["description"]="RIGHTWARDS DOUBLE ARROW WITH STROKE",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x21D2, 0x0338 },
- ["unicodeslot"]=0x21CF, -- ⇏
+ category="sm",
+ description="RIGHTWARDS DOUBLE ARROW WITH STROKE",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="nRightarrow",
+ specials={ "char", 0x21D2, 0x0338 },
+ unicodeslot=0x21CF,
},
[0x21D0]={
- ["adobename"]="arrowdblleft",
- ["category"]="so",
- ["description"]="LEFTWARDS DOUBLE ARROW",
- ["linebreak"]="al",
- ["mathclass"]="relation",
- ["mathname"]="Leftarrow",
- ["unicodeslot"]=0x21D0, -- ⇐
+ adobename="arrowdblleft",
+ category="so",
+ description="LEFTWARDS DOUBLE ARROW",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="Leftarrow",
+ unicodeslot=0x21D0,
},
[0x21D1]={
- ["adobename"]="arrowdblup",
- ["category"]="so",
- ["description"]="UPWARDS DOUBLE ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21D1, -- ⇑
+ adobename="arrowdblup",
+ category="so",
+ description="UPWARDS DOUBLE ARROW",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="Uparrow",
+ unicodeslot=0x21D1,
},
[0x21D2]={
- ["adobename"]="arrowdblright",
- ["category"]="sm",
- ["cjkwd"]="a",
- ["description"]="RIGHTWARDS DOUBLE ARROW",
- ["linebreak"]="ai",
- ["mathclass"]="relation",
- ["mathname"]="Rightarrow",
- ["unicodeslot"]=0x21D2, -- ⇒
+ adobename="arrowdblright",
+ category="sm",
+ cjkwd="a",
+ description="RIGHTWARDS DOUBLE ARROW",
+ direction="on",
+ linebreak="ai",
+ mathclass="relation",
+ mathname="Rightarrow",
+ unicodeslot=0x21D2,
},
[0x21D3]={
- ["adobename"]="arrowdbldown",
- ["category"]="so",
- ["description"]="DOWNWARDS DOUBLE ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21D3, -- ⇓
+ adobename="arrowdbldown",
+ category="so",
+ description="DOWNWARDS DOUBLE ARROW",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="Downarrow",
+ unicodeslot=0x21D3,
},
[0x21D4]={
- ["adobename"]="arrowdblboth",
- ["category"]="sm",
- ["cjkwd"]="a",
- ["description"]="LEFT RIGHT DOUBLE ARROW",
- ["linebreak"]="ai",
- ["mathclass"]="relation",
- ["mathname"]="Leftrightarrow",
- ["unicodeslot"]=0x21D4, -- ⇔
+ adobename="arrowdblboth",
+ category="sm",
+ cjkwd="a",
+ description="LEFT RIGHT DOUBLE ARROW",
+ direction="on",
+ linebreak="ai",
+ mathclass="relation",
+ mathname="Leftrightarrow",
+ unicodeslot=0x21D4,
},
[0x21D5]={
- ["category"]="so",
- ["description"]="UP DOWN DOUBLE ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21D5, -- ⇕
+ category="so",
+ description="UP DOWN DOUBLE ARROW",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="Updownarrow",
+ unicodeslot=0x21D5,
},
[0x21D6]={
- ["category"]="so",
- ["description"]="NORTH WEST DOUBLE ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21D6, -- ⇖
+ category="so",
+ description="NORTH WEST DOUBLE ARROW",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="Nwarrow",
+ unicodeslot=0x21D6,
},
[0x21D7]={
- ["category"]="so",
- ["description"]="NORTH EAST DOUBLE ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21D7, -- ⇗
+ category="so",
+ description="NORTH EAST DOUBLE ARROW",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="Nearrow",
+ unicodeslot=0x21D7,
},
[0x21D8]={
- ["category"]="so",
- ["description"]="SOUTH EAST DOUBLE ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21D8, -- ⇘
+ category="so",
+ description="SOUTH EAST DOUBLE ARROW",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="Searrow",
+ unicodeslot=0x21D8,
},
[0x21D9]={
- ["category"]="so",
- ["description"]="SOUTH WEST DOUBLE ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21D9, -- ⇙
+ category="so",
+ description="SOUTH WEST DOUBLE ARROW",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="Swarrow",
+ unicodeslot=0x21D9,
},
[0x21DA]={
- ["category"]="so",
- ["description"]="LEFTWARDS TRIPLE ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21DA, -- ⇚
+ category="so",
+ description="LEFTWARDS TRIPLE ARROW",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="Lleftarrow",
+ unicodeslot=0x21DA,
},
[0x21DB]={
- ["category"]="so",
- ["description"]="RIGHTWARDS TRIPLE ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21DB, -- ⇛
+ category="so",
+ description="RIGHTWARDS TRIPLE ARROW",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="Rrightarrow",
+ unicodeslot=0x21DB,
},
[0x21DC]={
- ["category"]="so",
- ["description"]="LEFTWARDS SQUIGGLE ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21DC, -- ⇜
+ category="so",
+ description="LEFTWARDS SQUIGGLE ARROW",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="leftsquigarrow",
+ unicodeslot=0x21DC,
},
[0x21DD]={
- ["category"]="so",
- ["description"]="RIGHTWARDS SQUIGGLE ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21DD, -- ⇝
+ category="so",
+ description="RIGHTWARDS SQUIGGLE ARROW",
+ direction="on",
+ linebreak="al",
+ mathspec={
+ { class="relation",name="rightsquigarrow" },
+ { class="relation",name="leadsto" },
+ },
+ unicodeslot=0x21DD,
},
[0x21DE]={
- ["category"]="so",
- ["description"]="UPWARDS ARROW WITH DOUBLE STROKE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21DE, -- ⇞
+ category="so",
+ description="UPWARDS ARROW WITH DOUBLE STROKE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x21DE,
},
[0x21DF]={
- ["category"]="so",
- ["description"]="DOWNWARDS ARROW WITH DOUBLE STROKE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21DF, -- ⇟
+ category="so",
+ description="DOWNWARDS ARROW WITH DOUBLE STROKE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x21DF,
},
[0x21E0]={
- ["category"]="so",
- ["description"]="LEFTWARDS DASHED ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21E0, -- ⇠
+ category="so",
+ description="LEFTWARDS DASHED ARROW",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="dashleftarrow",
+ unicodeslot=0x21E0,
},
[0x21E1]={
- ["category"]="so",
- ["description"]="UPWARDS DASHED ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21E1, -- ⇡
+ category="so",
+ description="UPWARDS DASHED ARROW",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="dashuparrow",
+ unicodeslot=0x21E1,
},
[0x21E2]={
- ["category"]="so",
- ["description"]="RIGHTWARDS DASHED ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21E2, -- ⇢
+ category="so",
+ description="RIGHTWARDS DASHED ARROW",
+ direction="on",
+ linebreak="al",
+ mathspec={
+ { class="relation", name="dashrightarrow" } ,
+ { class="relation", name="dasharrow" } ,
+ },
+ unicodeslot=0x21E2,
},
[0x21E3]={
- ["category"]="so",
- ["description"]="DOWNWARDS DASHED ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21E3, -- ⇣
+ category="so",
+ description="DOWNWARDS DASHED ARROW",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="dashdownarrow",
+ unicodeslot=0x21E3,
},
[0x21E4]={
- ["category"]="so",
- ["description"]="LEFTWARDS ARROW TO BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21E4, -- ⇤
+ category="so",
+ description="LEFTWARDS ARROW TO BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x21E4,
},
[0x21E5]={
- ["category"]="so",
- ["description"]="RIGHTWARDS ARROW TO BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21E5, -- ⇥
+ category="so",
+ description="RIGHTWARDS ARROW TO BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x21E5,
},
[0x21E6]={
- ["category"]="so",
- ["description"]="LEFTWARDS WHITE ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21E6, -- ⇦
+ category="so",
+ description="LEFTWARDS WHITE ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x21E6,
},
[0x21E7]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="UPWARDS WHITE ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21E7, -- ⇧
+ category="so",
+ cjkwd="a",
+ description="UPWARDS WHITE ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x21E7,
},
[0x21E8]={
- ["category"]="so",
- ["description"]="RIGHTWARDS WHITE ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21E8, -- ⇨
+ category="so",
+ description="RIGHTWARDS WHITE ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x21E8,
},
[0x21E9]={
- ["category"]="so",
- ["description"]="DOWNWARDS WHITE ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21E9, -- ⇩
+ category="so",
+ description="DOWNWARDS WHITE ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x21E9,
},
[0x21EA]={
- ["category"]="so",
- ["description"]="UPWARDS WHITE ARROW FROM BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21EA, -- ⇪
+ category="so",
+ description="UPWARDS WHITE ARROW FROM BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x21EA,
},
[0x21EB]={
- ["category"]="so",
- ["description"]="UPWARDS WHITE ARROW ON PEDESTAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21EB, -- ⇫
+ category="so",
+ description="UPWARDS WHITE ARROW ON PEDESTAL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x21EB,
},
[0x21EC]={
- ["category"]="so",
- ["description"]="UPWARDS WHITE ARROW ON PEDESTAL WITH HORIZONTAL BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21EC, -- ⇬
+ category="so",
+ description="UPWARDS WHITE ARROW ON PEDESTAL WITH HORIZONTAL BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x21EC,
},
[0x21ED]={
- ["category"]="so",
- ["description"]="UPWARDS WHITE ARROW ON PEDESTAL WITH VERTICAL BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21ED, -- ⇭
+ category="so",
+ description="UPWARDS WHITE ARROW ON PEDESTAL WITH VERTICAL BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x21ED,
},
[0x21EE]={
- ["category"]="so",
- ["description"]="UPWARDS WHITE DOUBLE ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21EE, -- ⇮
+ category="so",
+ description="UPWARDS WHITE DOUBLE ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x21EE,
},
[0x21EF]={
- ["category"]="so",
- ["description"]="UPWARDS WHITE DOUBLE ARROW ON PEDESTAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21EF, -- ⇯
+ category="so",
+ description="UPWARDS WHITE DOUBLE ARROW ON PEDESTAL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x21EF,
},
[0x21F0]={
- ["category"]="so",
- ["description"]="RIGHTWARDS WHITE ARROW FROM WALL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21F0, -- ⇰
+ category="so",
+ description="RIGHTWARDS WHITE ARROW FROM WALL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x21F0,
},
[0x21F1]={
- ["category"]="so",
- ["description"]="NORTH WEST ARROW TO CORNER",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21F1, -- ⇱
+ category="so",
+ description="NORTH WEST ARROW TO CORNER",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x21F1,
},
[0x21F2]={
- ["category"]="so",
- ["description"]="SOUTH EAST ARROW TO CORNER",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21F2, -- ⇲
+ category="so",
+ description="SOUTH EAST ARROW TO CORNER",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x21F2,
},
[0x21F3]={
- ["category"]="so",
- ["description"]="UP DOWN WHITE ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21F3, -- ⇳
+ category="so",
+ description="UP DOWN WHITE ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x21F3,
},
[0x21F4]={
- ["category"]="sm",
- ["description"]="RIGHT ARROW WITH SMALL CIRCLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21F4, -- ⇴
+ category="sm",
+ description="RIGHT ARROW WITH SMALL CIRCLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x21F4,
},
[0x21F5]={
- ["category"]="sm",
- ["description"]="DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21F5, -- ⇵
+ category="sm",
+ description="DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x21F5,
},
[0x21F6]={
- ["category"]="sm",
- ["description"]="THREE RIGHTWARDS ARROWS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21F6, -- ⇶
+ category="sm",
+ description="THREE RIGHTWARDS ARROWS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x21F6,
},
[0x21F7]={
- ["category"]="sm",
- ["description"]="LEFTWARDS ARROW WITH VERTICAL STROKE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21F7, -- ⇷
+ category="sm",
+ description="LEFTWARDS ARROW WITH VERTICAL STROKE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x21F7,
},
[0x21F8]={
- ["category"]="sm",
- ["description"]="RIGHTWARDS ARROW WITH VERTICAL STROKE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21F8, -- ⇸
+ category="sm",
+ description="RIGHTWARDS ARROW WITH VERTICAL STROKE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x21F8,
},
[0x21F9]={
- ["category"]="sm",
- ["description"]="LEFT RIGHT ARROW WITH VERTICAL STROKE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21F9, -- ⇹
+ category="sm",
+ description="LEFT RIGHT ARROW WITH VERTICAL STROKE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x21F9,
},
[0x21FA]={
- ["category"]="sm",
- ["description"]="LEFTWARDS ARROW WITH DOUBLE VERTICAL STROKE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21FA, -- ⇺
+ category="sm",
+ description="LEFTWARDS ARROW WITH DOUBLE VERTICAL STROKE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x21FA,
},
[0x21FB]={
- ["category"]="sm",
- ["description"]="RIGHTWARDS ARROW WITH DOUBLE VERTICAL STROKE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21FB, -- ⇻
+ category="sm",
+ description="RIGHTWARDS ARROW WITH DOUBLE VERTICAL STROKE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x21FB,
},
[0x21FC]={
- ["category"]="sm",
- ["description"]="LEFT RIGHT ARROW WITH DOUBLE VERTICAL STROKE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21FC, -- ⇼
+ category="sm",
+ description="LEFT RIGHT ARROW WITH DOUBLE VERTICAL STROKE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x21FC,
},
[0x21FD]={
- ["category"]="sm",
- ["description"]="LEFTWARDS OPEN-HEADED ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21FD, -- ⇽
+ category="sm",
+ description="LEFTWARDS OPEN-HEADED ARROW",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="leftarrowtriangle",
+ unicodeslot=0x21FD,
},
[0x21FE]={
- ["category"]="sm",
- ["description"]="RIGHTWARDS OPEN-HEADED ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21FE, -- ⇾
+ category="sm",
+ description="RIGHTWARDS OPEN-HEADED ARROW",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="rightarrowtriangle",
+ unicodeslot=0x21FE,
},
[0x21FF]={
- ["category"]="sm",
- ["description"]="LEFT RIGHT OPEN-HEADED ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x21FF, -- ⇿
+ category="sm",
+ description="LEFT RIGHT OPEN-HEADED ARROW",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="leftrightarrowtriangle",
+ unicodeslot=0x21FF,
},
[0x2200]={
- ["adobename"]="universal",
- ["category"]="sm",
- ["cjkwd"]="a",
- ["description"]="FOR ALL",
- ["mathclass"]="ord",
- ["mathname"]="forall",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2200, -- ∀
+ adobename="universal",
+ category="sm",
+ cjkwd="a",
+ description="FOR ALL",
+ direction="on",
+ linebreak="ai",
+ mathclass="ord",
+ mathname="forall",
+ unicodeslot=0x2200,
},
[0x2201]={
- ["category"]="sm",
- ["description"]="COMPLEMENT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2201, -- ∁
+ category="sm",
+ description="COMPLEMENT",
+ direction="on",
+ linebreak="al",
+ mathclass="ord",
+ mathname="complement",
+ unicodeslot=0x2201,
},
[0x2202]={
- ["adobename"]="partialdiff",
- ["category"]="sm",
- ["cjkwd"]="a",
- ["description"]="PARTIAL DIFFERENTIAL",
- ["linebreak"]="ai",
- ["mathclass"]="variable",
- ["mathname"]="partial",
- ["unicodeslot"]=0x2202, -- ∂
+ adobename="partialdiff",
+ category="sm",
+ cjkwd="a",
+ description="PARTIAL DIFFERENTIAL",
+ direction="on",
+ linebreak="ai",
+ mathclass="default",
+ mathname="partial",
+ unicodeslot=0x2202,
},
[0x2203]={
- ["adobename"]="existential",
- ["category"]="sm",
- ["cjkwd"]="a",
- ["description"]="THERE EXISTS",
- ["linebreak"]="ai",
- ["mathclass"]="ord",
- ["mathname"]="exists",
- ["unicodeslot"]=0x2203, -- ∃
+ adobename="existential",
+ category="sm",
+ cjkwd="a",
+ description="THERE EXISTS",
+ direction="on",
+ linebreak="ai",
+ mathclass="ord",
+ mathname="exists",
+ unicodeslot=0x2203,
},
[0x2204]={
- ["category"]="sm",
- ["description"]="THERE DOES NOT EXIST",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x2203, 0x0338 },
- ["unicodeslot"]=0x2204, -- ∄
+ category="sm",
+ description="THERE DOES NOT EXIST",
+ direction="on",
+ linebreak="al",
+ mathclass="ord",
+ mathname="nexists",
+ specials={ "char", 0x2203, 0x0338 },
+ unicodeslot=0x2204,
},
[0x2205]={
- ["adobename"]="emptyset",
- ["category"]="sm",
- ["description"]="EMPTY SET",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["mathname"]="emptyset",
- ["unicodeslot"]=0x2205, -- ∅
+ adobename="emptyset",
+ category="sm",
+ description="EMPTY SET",
+ direction="on",
+ linebreak="al",
+ mathclass="default",
+ mathname="emptyset",
+ unicodeslot=0x2205,
},
[0x2206]={
- ["adobename"]="Delta",
- ["category"]="sm",
- ["description"]="INCREMENT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2206, -- ∆
+ adobename="Delta",
+ category="sm",
+ description="INCREMENT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2206,
},
[0x2207]={
- ["adobename"]="gradient",
- ["category"]="sm",
- ["cjkwd"]="a",
- ["description"]="NABLA",
- ["mathclass"]="variable",
- ["mathname"]="nabla",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2207, -- ∇
+ adobename="gradient",
+ category="sm",
+ cjkwd="a",
+ description="NABLA",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2207,
},
[0x2208]={
- ["adobename"]="element",
- ["category"]="sm",
- ["cjkwd"]="a",
- ["description"]="ELEMENT OF",
- ["linebreak"]="ai",
- ["mathclass"]="relation",
- ["mathname"]=false, -- "in"
- ["unicodeslot"]=0x2208, -- ∈
+ adobename="element",
+ category="sm",
+ cjkwd="a",
+ description="ELEMENT OF",
+ direction="on",
+ linebreak="ai",
+ mathclass="relation",
+ mathname="in",
+ mirror=0x220B,
+ unicodeslot=0x2208,
},
[0x2209]={
- ["adobename"]="notelement",
- ["category"]="sm",
- ["description"]="NOT AN ELEMENT OF",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x2208, 0x0338 },
- ["mathclass"]="relation",
- ["mathname"]="ni",
- ["unicodeslot"]=0x2209, -- ∉
+ adobename="notelement",
+ category="sm",
+ description="NOT AN ELEMENT OF",
+ direction="on",
+ linebreak="al",
+ mirror=0x220C,
+ mathclass="relation",
+ mathname="nin",
+ specials={ "char", 0x2208, 0x0338 },
+ unicodeslot=0x2209,
},
[0x220A]={
- ["category"]="sm",
- ["description"]="SMALL ELEMENT OF",
- ["linebreak"]="al",
- ["unicodeslot"]=0x220A, -- ∊
+ category="sm",
+ description="SMALL ELEMENT OF",
+ direction="on",
+ linebreak="al",
+ mirror=0x220D,
+ unicodeslot=0x220A,
},
[0x220B]={
- ["adobename"]="suchthat",
- ["category"]="sm",
- ["cjkwd"]="a",
- ["description"]="CONTAINS AS MEMBER",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x220B, -- ∋
+ adobename="suchthat",
+ category="sm",
+ cjkwd="a",
+ description="CONTAINS AS MEMBER",
+ direction="on",
+ linebreak="ai",
+ mathspec={
+ { class="relation", name="ni" },
+ { class="relation", name="owns" },
+ },
+ mirror=0x2208,
+ unicodeslot=0x220B,
},
[0x220C]={
- ["category"]="sm",
- ["description"]="DOES NOT CONTAIN AS MEMBER",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x220B, 0x0338 },
- ["unicodeslot"]=0x220C, -- ∌
+ category="sm",
+ description="DOES NOT CONTAIN AS MEMBER",
+ direction="on",
+ linebreak="al",
+ mirror=0x2209,
+ specials={ "char", 0x220B, 0x0338 },
+ mathspec={
+ { class="relation", name="nni" },
+ { class="relation", name="nowns" },
+ },
+ unicodeslot=0x220C,
},
[0x220D]={
- ["category"]="sm",
- ["description"]="SMALL CONTAINS AS MEMBER",
- ["linebreak"]="al",
- ["unicodeslot"]=0x220D, -- ∍
+ category="sm",
+ description="SMALL CONTAINS AS MEMBER",
+ direction="on",
+ linebreak="al",
+ mirror=0x220A,
+ unicodeslot=0x220D,
},
[0x220E]={
- ["category"]="sm",
- ["description"]="END OF PROOF",
- ["linebreak"]="al",
- ["unicodeslot"]=0x220E, -- ∎
+ category="sm",
+ description="END OF PROOF",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x220E,
},
[0x220F]={
- ["adobename"]="product",
- ["category"]="sm",
- ["cjkwd"]="a",
- ["description"]="N-ARY PRODUCT",
- ["linebreak"]="ai",
- ["mathclass"]="limop",
- ["mathname"]="prod",
- ["unicodeslot"]=0x220F, -- ∏
- },
- [0x2210]={
- ["category"]="sm",
- ["description"]="N-ARY COPRODUCT",
- ["linebreak"]="al",
- ["mathclass"]="relation",
- ["mathname"]="coprod",
- ["unicodeslot"]=0x2210, -- ∐
+ adobename="product",
+ category="sm",
+ cjkwd="a",
+ description="N-ARY PRODUCT",
+ direction="on",
+ linebreak="ai",
+ mathclass="limop",
+ mathname="prod",
+ unicodeslot=0x220F,
+ },
+[0x2210]={
+ category="sm",
+ description="N-ARY COPRODUCT",
+ direction="on",
+ linebreak="al",
+ mathclass="limop",
+ mathname="coprod",
+ unicodeslot=0x2210,
},
[0x2211]={
- ["adobename"]="summation",
- ["category"]="sm",
- ["cjkwd"]="a",
- ["description"]="N-ARY SUMMATION",
- ["linebreak"]="ai",
- ["mathclass"]="limop",
- ["mathname"]="sum",
- ["unicodeslot"]=0x2211, -- ∑
+ adobename="summation",
+ category="sm",
+ cjkwd="a",
+ description="N-ARY SUMMATION",
+ direction="on",
+ linebreak="ai",
+ mathclass="limop",
+ mathname="sum",
+ unicodeslot=0x2211,
},
[0x2212]={
- ["adobename"]="minus",
- ["category"]="sm",
- ["description"]="MINUS SIGN",
- ["linebreak"]="pr",
- ["unicodeslot"]=0x2212, -- −
- ["mathclass"]="binary",
+ adobename="minus",
+ category="sm",
+ description="MINUS SIGN",
+ direction="es",
+ linebreak="pr",
+ mathclass="binary",
+ unicodeslot=0x2212,
},
[0x2213]={
- ["category"]="sm",
- ["description"]="MINUS-OR-PLUS SIGN",
- ["linebreak"]="pr",
- ["mathclass"]="binary",
- ["mathname"]="mp",
- ["unicodeslot"]=0x2213, -- ∓
+ category="sm",
+ description="MINUS-OR-PLUS SIGN",
+ direction="et",
+ linebreak="pr",
+ mathclass="binary",
+ mathname="mp",
+ unicodeslot=0x2213,
},
[0x2214]={
- ["category"]="sm",
- ["description"]="DOT PLUS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2214, -- ∔
+ category="sm",
+ description="DOT PLUS",
+ direction="on",
+ linebreak="al",
+ mathclass="binary",
+ mathname="dotplus",
+ unicodeslot=0x2214,
},
[0x2215]={
- ["category"]="sm",
- ["cjkwd"]="a",
- ["description"]="DIVISION SLASH",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2215, -- ∕
- },
+ category="sm",
+ cjkwd="a",
+ description="DIVISION SLASH",
+ direction="on",
+ linebreak="ai",
+ --~ mathclass="ord",
+ --~ mathname="diagup",
+ mirror=0x29F5,
+ unicodeslot=0x2215,
+ },
+ -- AM: diagup and diagdown are mapped to 2215 and 2216 by Tralics,
+ -- but ams uses different symbols for setminus and diagdown.
[0x2216]={
- ["category"]="sm",
- ["description"]="SET MINUS",
- ["linebreak"]="al",
- ["mathclass"]="binary",
- ["mathname"]="setminus",
- ["unicodeslot"]=0x2216, -- ∖
+ category="sm",
+ description="SET MINUS",
+ direction="on",
+ linebreak="al",
+ mathspec={
+ { class="binary", name="setminus" },
+ --~ { class="ord", name="diagdown" },
+ },
+ unicodeslot=0x2216,
},
[0x2217]={
- ["adobename"]="asteriskmath",
- ["category"]="sm",
- ["description"]="ASTERISK OPERATOR",
- ["linebreak"]="al",
- ["mathclass"]="binary",
- ["mathname"]="ast",
- ["unicodeslot"]=0x2217, -- ∗
+ adobename="asteriskmath",
+ category="sm",
+ description="ASTERISK OPERATOR",
+ direction="on",
+ linebreak="al",
+ mathclass="binary",
+ mathname="ast",
+ unicodeslot=0x2217,
},
[0x2218]={
- ["category"]="sm",
- ["description"]="RING OPERATOR",
- ["linebreak"]="al",
- ["mathclass"]="binary",
- ["mathname"]="circ",
- ["unicodeslot"]=0x2218, -- ∘
+ category="sm",
+ description="RING OPERATOR",
+ direction="on",
+ linebreak="al",
+ mathclass="binary",
+ mathname="circ",
+ unicodeslot=0x2218,
},
[0x2219]={
- ["category"]="sm",
- ["description"]="BULLET OPERATOR",
- ["linebreak"]="al",
- ["mathclass"]="binary",
- ["mathname"]="bullet",
- ["unicodeslot"]=0x2219, -- ∙
+ category="sm",
+ description="BULLET OPERATOR",
+ direction="on",
+ linebreak="al",
+ mathclass="binary",
+ mathname="bullet",
+ unicodeslot=0x2219,
},
[0x221A]={
- ["adobename"]="radical",
- ["category"]="sm",
- ["cjkwd"]="a",
- ["description"]="SQUARE ROOT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x221A, -- √
+ adobename="radical",
+ category="sm",
+ cjkwd="a",
+ description="SQUARE ROOT",
+ direction="on",
+ linebreak="ai",
+ mathclass="radical",
+ mathname="surd",
+ unicodeslot=0x221A,
},
[0x221B]={
- ["category"]="sm",
- ["description"]="CUBE ROOT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x221B, -- ∛
+ category="sm",
+ description="CUBE ROOT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x221B,
},
[0x221C]={
- ["category"]="sm",
- ["description"]="FOURTH ROOT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x221C, -- ∜
+ category="sm",
+ description="FOURTH ROOT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x221C,
},
[0x221D]={
- ["adobename"]="proportional",
- ["category"]="sm",
- ["cjkwd"]="a",
- ["description"]="PROPORTIONAL TO",
- ["mathclass"]="relation",
- ["mathname"]="propto",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x221D, -- ∝
+ adobename="proportional",
+ category="sm",
+ cjkwd="a",
+ description="PROPORTIONAL TO",
+ direction="on",
+ linebreak="ai",
+ mathclass="relation",
+ mathname="propto",
+ unicodeslot=0x221D,
},
[0x221E]={
- ["adobename"]="infinity",
- ["category"]="sm",
- ["cjkwd"]="a",
- ["description"]="INFINITY",
- ["linebreak"]="ai",
- ["mathclass"]="variable",
- ["mathname"]="infty",
- ["unicodeslot"]=0x221E, -- ∞
+ adobename="infinity",
+ category="sm",
+ cjkwd="a",
+ description="INFINITY",
+ direction="on",
+ linebreak="ai",
+ mathclass="default",
+ mathname="infty",
+ unicodeslot=0x221E,
},
[0x221F]={
- ["adobename"]="orthogonal",
- ["category"]="sm",
- ["cjkwd"]="a",
- ["description"]="RIGHT ANGLE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x221F, -- ∟
+ adobename="orthogonal",
+ category="sm",
+ cjkwd="a",
+ description="RIGHT ANGLE",
+ direction="on",
+ mathclass="ord",
+ mathname="rightangle",
+ linebreak="ai",
+ unicodeslot=0x221F,
},
[0x2220]={
- ["adobename"]="angle",
- ["category"]="sm",
- ["cjkwd"]="a",
- ["description"]="ANGLE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2220, -- ∠
+ adobename="angle",
+ category="sm",
+ cjkwd="a",
+ description="ANGLE",
+ direction="on",
+ linebreak="ai",
+ mathclass="ord",
+ mathname="angle",
+ unicodeslot=0x2220,
},
[0x2221]={
- ["category"]="sm",
- ["description"]="MEASURED ANGLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2221, -- ∡
+ category="sm",
+ description="MEASURED ANGLE",
+ direction="on",
+ linebreak="al",
+ mathclass="ord",
+ mathname="measuredangle",
+ unicodeslot=0x2221,
},
[0x2222]={
- ["category"]="sm",
- ["description"]="SPHERICAL ANGLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2222, -- ∢
+ category="sm",
+ description="SPHERICAL ANGLE",
+ direction="on",
+ linebreak="al",
+ mathclass="ord",
+ mathname="sphericalangle",
+ unicodeslot=0x2222,
},
[0x2223]={
- ["category"]="sm",
- ["cjkwd"]="a",
- ["description"]="DIVIDES",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2223, -- ∣
+ category="sm",
+ cjkwd="a",
+ description="DIVIDES",
+ direction="on",
+ linebreak="ai",
+ mathclass="binary",
+ mathname="divides",
+ unicodeslot=0x2223,
},
[0x2224]={
- ["category"]="sm",
- ["description"]="DOES NOT DIVIDE",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x2223, 0x0338 },
- ["unicodeslot"]=0x2224, -- ∤
+ category="sm",
+ description="DOES NOT DIVIDE",
+ direction="on",
+ linebreak="al",
+ specials={ "char", 0x2223, 0x0338 },
+ mathspec={
+ { class="binary", name="ndivides", },
+ { class="relation", name="nmid", },
+ },
+ unicodeslot=0x2224,
},
[0x2225]={
- ["category"]="sm",
- ["cjkwd"]="a",
- ["description"]="PARALLEL TO",
- ["linebreak"]="ai",
- ["mathclass"]="relation",
- ["mathname"]="parallel",
- ["unicodeslot"]=0x2225, -- ∥
+ category="sm",
+ cjkwd="a",
+ description="PARALLEL TO",
+ direction="on",
+ linebreak="ai",
+ mathspec={
+ { class="relation", name="parallel" },
+ { class="delimiter", name="Vert" },
+ { class="nothing", name="Arrowvert" },
+ { class="open", name="lVert" },
+ { class="close", name="rVert" },
+ },
+ unicodeslot=0x2225,
},
[0x2226]={
- ["category"]="sm",
- ["description"]="NOT PARALLEL TO",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x2225, 0x0338 },
- ["unicodeslot"]=0x2226, -- ∦
+ category="sm",
+ description="NOT PARALLEL TO",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="nparallel",
+ specials={ "char", 0x2225, 0x0338 },
+ unicodeslot=0x2226,
},
[0x2227]={
- ["adobename"]="logicaland",
- ["category"]="sm",
- ["cjkwd"]="a",
- ["description"]="LOGICAL AND",
- ["linebreak"]="ai",
- ["mathclass"]="limop",
- ["mathname"]="wedge",
- ["unicodeslot"]=0x2227, -- ∧
+ adobename="logicaland",
+ category="sm",
+ cjkwd="a",
+ description="LOGICAL AND",
+ direction="on",
+ linebreak="ai",
+ mathspec={
+ { class="binary", name="wedge" },
+ { class="binary", name="land" },
+ },
+ unicodeslot=0x2227,
},
[0x2228]={
- ["adobename"]="logicalor",
- ["category"]="sm",
- ["cjkwd"]="a",
- ["description"]="LOGICAL OR",
- ["linebreak"]="ai",
- ["mathclass"]="limop",
- ["mathname"]="vee",
- ["unicodeslot"]=0x2228, -- ∨
+ adobename="logicalor",
+ category="sm",
+ cjkwd="a",
+ description="LOGICAL OR",
+ direction="on",
+ linebreak="ai",
+ mathspec={
+ { class="bin",name="vee" },
+ { class="bin",name="lor" },
+ },
+ unicodeslot=0x2228,
},
[0x2229]={
- ["adobename"]="intersection",
- ["category"]="sm",
- ["cjkwd"]="a",
- ["description"]="INTERSECTION",
- ["linebreak"]="ai",
- ["mathclass"]="limop",
- ["mathname"]="cap",
- ["unicodeslot"]=0x2229, -- ∩
+ adobename="intersection",
+ category="sm",
+ cjkwd="a",
+ description="INTERSECTION",
+ direction="on",
+ linebreak="ai",
+ mathclass="binary",
+ mathname="cap",
+ unicodeslot=0x2229,
},
[0x222A]={
- ["adobename"]="union",
- ["category"]="sm",
- ["cjkwd"]="a",
- ["description"]="UNION",
- ["linebreak"]="ai",
- ["mathclass"]="limop",
- ["mathname"]="cup",
- ["unicodeslot"]=0x222A, -- ∪
+ adobename="union",
+ category="sm",
+ cjkwd="a",
+ description="UNION",
+ direction="on",
+ linebreak="ai",
+ mathclass="binary",
+ mathname="cup",
+ unicodeslot=0x222A,
},
[0x222B]={
- ["adobename"]="integral",
- ["category"]="sm",
- ["cjkwd"]="a",
- ["description"]="INTEGRAL",
- ["linebreak"]="ai",
- ["mathclass"]="limop",
- ["mathname"]="intop",
- ["unicodeslot"]=0x222B, -- ∫
+ adobename="integral",
+ category="sm",
+ cjkwd="a",
+ description="INTEGRAL",
+ direction="on",
+ linebreak="ai",
+ mathspec={
+ { class="nothing", name="intop" },
+ { class="limop" , name="int" },
+ },
+ unicodeslot=0x222B,
},
[0x222C]={
- ["category"]="sm",
- ["cjkwd"]="a",
- ["description"]="DOUBLE INTEGRAL",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x222B, 0x222B },
- ["unicodeslot"]=0x222C, -- ∬
+ category="sm",
+ cjkwd="a",
+ description="DOUBLE INTEGRAL",
+ direction="on",
+ linebreak="ai",
+ specials={ "compat", 0x222B, 0x222B },
+ mathspec={
+ { class="nothing", name="iintop" },
+ { class="limop" , name="iint" },
+ },
+ unicodeslot=0x222C,
},
[0x222D]={
- ["category"]="sm",
- ["description"]="TRIPLE INTEGRAL",
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x222B, 0x222B, 0x222B },
- ["unicodeslot"]=0x222D, -- ∭
+ category="sm",
+ description="TRIPLE INTEGRAL",
+ direction="on",
+ linebreak="al",
+ specials={ "compat", 0x222B, 0x222B, 0x222B },
+ mathspec={
+ { class="nothing", name="iiintop" },
+ { class="limop" , name="iiint" },
+ },
+ unicodeslot=0x222D,
},
[0x222E]={
- ["category"]="sm",
- ["cjkwd"]="a",
- ["description"]="CONTOUR INTEGRAL",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x222E, -- ∮
+ category="sm",
+ cjkwd="a",
+ description="CONTOUR INTEGRAL",
+ direction="on",
+ linebreak="ai",
+ mathclass="limop",
+ mathname="oint",
+ unicodeslot=0x222E,
},
[0x222F]={
- ["category"]="sm",
- ["description"]="SURFACE INTEGRAL",
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x222E, 0x222E },
- ["unicodeslot"]=0x222F, -- ∯
+ category="sm",
+ description="SURFACE INTEGRAL",
+ direction="on",
+ linebreak="al",
+ mathclass="limop",
+ mathname="oiint",
+ specials={ "compat", 0x222E, 0x222E },
+ unicodeslot=0x222F,
},
[0x2230]={
- ["category"]="sm",
- ["description"]="VOLUME INTEGRAL",
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x222E, 0x222E, 0x222E },
- ["unicodeslot"]=0x2230, -- ∰
+ category="sm",
+ description="VOLUME INTEGRAL",
+ direction="on",
+ linebreak="al",
+ mathclass="limop",
+ mathname="oiiint",
+ specials={ "compat", 0x222E, 0x222E, 0x222E },
+ unicodeslot=0x2230,
},
[0x2231]={
- ["category"]="sm",
- ["description"]="CLOCKWISE INTEGRAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2231, -- ∱
+ category="sm",
+ description="CLOCKWISE INTEGRAL",
+ direction="on",
+ linebreak="al",
+ mathclass="limop",
+ mathname="intclockwise",
+ unicodeslot=0x2231,
},
[0x2232]={
- ["category"]="sm",
- ["description"]="CLOCKWISE CONTOUR INTEGRAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2232, -- ∲
+ category="sm",
+ description="CLOCKWISE CONTOUR INTEGRAL",
+ direction="on",
+ linebreak="al",
+ mathclass="limop",
+ mathname="ointclockwise",
+ unicodeslot=0x2232,
},
[0x2233]={
- ["category"]="sm",
- ["description"]="ANTICLOCKWISE CONTOUR INTEGRAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2233, -- ∳
+ category="sm",
+ description="ANTICLOCKWISE CONTOUR INTEGRAL",
+ direction="on",
+ linebreak="al",
+ mathclass="limop",
+ mathname="ointctrclockwise",
+ unicodeslot=0x2233,
},
[0x2234]={
- ["adobename"]="therefore",
- ["category"]="sm",
- ["cjkwd"]="a",
- ["description"]="THEREFORE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2234, -- ∴
+ adobename="therefore",
+ category="sm",
+ cjkwd="a",
+ description="THEREFORE",
+ direction="on",
+ linebreak="ai",
+ mathclass="relation",
+ mathname="therefore",
+ unicodeslot=0x2234,
},
[0x2235]={
- ["category"]="sm",
- ["cjkwd"]="a",
- ["description"]="BECAUSE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2235, -- ∵
+ category="sm",
+ cjkwd="a",
+ description="BECAUSE",
+ direction="on",
+ linebreak="ai",
+ mathclass="relation",
+ mathname="because",
+ unicodeslot=0x2235,
},
[0x2236]={
- ["category"]="sm",
- ["cjkwd"]="a",
- ["description"]="RATIO",
- ["linebreak"]="ai",
- ["mathclass"]="punctuation", -- AM: Not sure
- ["mathname"]="colon",
- ["unicodeslot"]=0x2236, -- ∶
+ category="sm",
+ cjkwd="a",
+ description="RATIO",
+ direction="on",
+ linebreak="ai",
+ mathclass="punctuation",
+ mathname="colon",
+ unicodeslot=0x2236,
},
[0x2237]={
- ["category"]="sm",
- ["cjkwd"]="a",
- ["description"]="PROPORTION",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2237, -- ∷
+ category="sm",
+ cjkwd="a",
+ description="PROPORTION",
+ direction="on",
+ linebreak="ai",
+ mathclass="relation",
+ mathname="squaredots",
+ unicodeslot=0x2237,
},
[0x2238]={
- ["category"]="sm",
- ["description"]="DOT MINUS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2238, -- ∸
+ category="sm",
+ description="DOT MINUS",
+ direction="on",
+ linebreak="al",
+ mathclass="binary",
+ mathname="dotminus",
+ unicodeslot=0x2238,
},
[0x2239]={
- ["category"]="sm",
- ["description"]="EXCESS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2239, -- ∹
+ category="sm",
+ description="EXCESS",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="minuscolon",
+ unicodeslot=0x2239,
},
[0x223A]={
- ["category"]="sm",
- ["description"]="GEOMETRIC PROPORTION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x223A, -- ∺
+ category="sm",
+ description="GEOMETRIC PROPORTION",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x223A,
},
[0x223B]={
- ["category"]="sm",
- ["description"]="HOMOTHETIC",
- ["linebreak"]="al",
- ["unicodeslot"]=0x223B, -- ∻
+ category="sm",
+ description="HOMOTHETIC",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x223B,
},
[0x223C]={
- ["adobename"]="similar",
- ["category"]="sm",
- ["cjkwd"]="a",
- ["description"]="TILDE OPERATOR",
- ["linebreak"]="ai",
- ["mathclass"]="relation",
- ["mathname"]="sim",
- ["unicodeslot"]=0x223C, -- ∼
+ adobename="similar",
+ category="sm",
+ cjkwd="a",
+ description="TILDE OPERATOR",
+ direction="on",
+ linebreak="ai",
+ mathclass="relation",
+ mathname="sim",
+ mirror=0x223D,
+ unicodeslot=0x223C,
},
[0x223D]={
- ["category"]="sm",
- ["cjkwd"]="a",
- ["description"]="REVERSED TILDE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x223D, -- ∽
+ category="sm",
+ cjkwd="a",
+ description="REVERSED TILDE",
+ direction="on",
+ linebreak="ai",
+ mathclass="relation",
+ mathname="backsim",
+ mirror=0x223C,
+ unicodeslot=0x223D,
},
[0x223E]={
- ["category"]="sm",
- ["description"]="INVERTED LAZY S",
- ["linebreak"]="al",
- ["unicodeslot"]=0x223E, -- ∾
+ category="sm",
+ description="INVERTED LAZY S",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x223E,
},
[0x223F]={
- ["category"]="sm",
- ["description"]="SINE WAVE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x223F, -- ∿
+ category="sm",
+ description="SINE WAVE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x223F,
},
[0x2240]={
- ["category"]="sm",
- ["description"]="WREATH PRODUCT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2240, -- ≀
+ category="sm",
+ description="WREATH PRODUCT",
+ direction="on",
+ linebreak="al",
+ mathclass="binary",
+ mathname="wr",
+ unicodeslot=0x2240,
},
[0x2241]={
- ["category"]="sm",
- ["description"]="NOT TILDE",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x223C, 0x0338 },
- ["unicodeslot"]=0x2241, -- ≁
+ category="sm",
+ description="NOT TILDE",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="nsim",
+ specials={ "char", 0x223C, 0x0338 },
+ unicodeslot=0x2241,
},
[0x2242]={
- ["category"]="sm",
- ["description"]="MINUS TILDE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2242, -- ≂
+ category="sm",
+ description="MINUS TILDE",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="eqsim",
+ unicodeslot=0x2242,
},
[0x2243]={
- ["category"]="sm",
- ["description"]="ASYMPTOTICALLY EQUAL TO",
- ["linebreak"]="al",
- ["mathclass"]="relation",
- ["mathname"]="simeq",
- ["unicodeslot"]=0x2243, -- ≃
+ category="sm",
+ description="ASYMPTOTICALLY EQUAL TO",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="simeq",
+ mirror=0x22CD,
+ unicodeslot=0x2243,
},
[0x2244]={
- ["category"]="sm",
- ["description"]="NOT ASYMPTOTICALLY EQUAL TO",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x2243, 0x0338 },
- ["unicodeslot"]=0x2244, -- ≄
+ category="sm",
+ description="NOT ASYMPTOTICALLY EQUAL TO",
+ direction="on",
+ linebreak="al",
+ specials={ "char", 0x2243, 0x0338 },
+ mathclass="relation",
+ mathname="nsimeq",
+ unicodeslot=0x2244,
},
[0x2245]={
- ["adobename"]="congruent",
- ["category"]="sm",
- ["description"]="APPROXIMATELY EQUAL TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2245, -- ≅
+ adobename="congruent",
+ category="sm",
+ description="APPROXIMATELY EQUAL TO",
+ direction="on",
+ linebreak="al",
+ mathspec={
+ { class="relation", name="approxEq"},
+ { class="relation", name="cong"},
+ },
+ unicodeslot=0x2245,
},
[0x2246]={
- ["category"]="sm",
- ["description"]="APPROXIMATELY BUT NOT ACTUALLY EQUAL TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2246, -- ≆
+ category="sm",
+ description="APPROXIMATELY BUT NOT ACTUALLY EQUAL TO",
+ direction="on",
+ linebreak="al",
+ mathspec={
+ { class="relation", name="napproxEq"},
+ { class="relation", name="ncong"},
+ },
+ unicodeslot=0x2246,
},
[0x2247]={
- ["category"]="sm",
- ["description"]="NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x2245, 0x0338 },
- ["unicodeslot"]=0x2247, -- ≇
+ category="sm",
+ description="NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="approxnEq",
+ specials={ "char", 0x2245, 0x0338 },
+ unicodeslot=0x2247,
},
[0x2248]={
- ["adobename"]="approxequal",
- ["category"]="sm",
- ["cjkwd"]="a",
- ["description"]="ALMOST EQUAL TO",
- ["linebreak"]="ai",
- ["mathclass"]="relation",
- ["mathname"]="approx",
- ["unicodeslot"]=0x2248, -- ≈
+ adobename="approxequal",
+ category="sm",
+ cjkwd="a",
+ description="ALMOST EQUAL TO",
+ direction="on",
+ linebreak="ai",
+ mathclass="relation",
+ mathname="approx",
+ unicodeslot=0x2248,
},
[0x2249]={
- ["category"]="sm",
- ["description"]="NOT ALMOST EQUAL TO",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x2248, 0x0338 },
- ["unicodeslot"]=0x2249, -- ≉
+ category="sm",
+ description="NOT ALMOST EQUAL TO",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="napprox",
+ specials={ "char", 0x2248, 0x0338 },
+ unicodeslot=0x2249,
},
[0x224A]={
- ["category"]="sm",
- ["description"]="ALMOST EQUAL OR EQUAL TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x224A, -- ≊
+ category="sm",
+ description="ALMOST EQUAL OR EQUAL TO",
+ direction="on",
+ mathclass="relation",
+ mathname="approxeq",
+ linebreak="al",
+ unicodeslot=0x224A,
},
[0x224B]={
- ["category"]="sm",
- ["description"]="TRIPLE TILDE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x224B, -- ≋
+ category="sm",
+ description="TRIPLE TILDE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x224B,
},
[0x224C]={
- ["category"]="sm",
- ["cjkwd"]="a",
- ["description"]="ALL EQUAL TO",
- ["linebreak"]="ai",
- ["mathclass"]="relation",
- ["mathname"]="equiv",
- ["unicodeslot"]=0x224C, -- ≌
+ category="sm",
+ cjkwd="a",
+ description="ALL EQUAL TO",
+ direction="on",
+ linebreak="ai",
+ mathclass="relation",
+ unicodeslot=0x224C,
},
[0x224D]={
- ["category"]="sm",
- ["description"]="EQUIVALENT TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x224D, -- ≍
+ category="sm",
+ description="EQUIVALENT TO",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="asymp",
+ unicodeslot=0x224D,
},
[0x224E]={
- ["category"]="sm",
- ["description"]="GEOMETRICALLY EQUIVALENT TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x224E, -- ≎
+ category="sm",
+ description="GEOMETRICALLY EQUIVALENT TO",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="Bumpeq",
+ unicodeslot=0x224E,
},
[0x224F]={
- ["category"]="sm",
- ["description"]="DIFFERENCE BETWEEN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x224F, -- ≏
+ category="sm",
+ description="DIFFERENCE BETWEEN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x224F,
},
[0x2250]={
- ["category"]="sm",
- ["description"]="APPROACHES THE LIMIT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2250, -- ≐
+ category="sm",
+ description="APPROACHES THE LIMIT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2250,
},
[0x2251]={
- ["category"]="sm",
- ["description"]="GEOMETRICALLY EQUAL TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2251, -- ≑
+ category="sm",
+ description="GEOMETRICALLY EQUAL TO",
+ direction="on",
+ linebreak="al",
+ mathspec={
+ { class="relation", name="doteqdot" },
+ { class="relation", name="Doteq" },
+ },
+ unicodeslot=0x2251,
},
[0x2252]={
- ["category"]="sm",
- ["cjkwd"]="a",
- ["description"]="APPROXIMATELY EQUAL TO OR THE IMAGE OF",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2252, -- ≒
+ category="sm",
+ cjkwd="a",
+ description="APPROXIMATELY EQUAL TO OR THE IMAGE OF",
+ direction="on",
+ linebreak="ai",
+ mirror=0x2253,
+ mathclass="relation",
+ mathname="fallingdotseq",
+ unicodeslot=0x2252,
},
[0x2253]={
- ["category"]="sm",
- ["description"]="IMAGE OF OR APPROXIMATELY EQUAL TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2253, -- ≓
+ category="sm",
+ description="IMAGE OF OR APPROXIMATELY EQUAL TO",
+ direction="on",
+ linebreak="al",
+ mirror=0x2252,
+ mathclass="relation",
+ mathname="risingdotseq",
+ unicodeslot=0x2253,
},
[0x2254]={
- ["category"]="sm",
- ["description"]="COLON EQUALS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2254, -- ≔
+ category="sm",
+ description="COLON EQUALS",
+ direction="on",
+ linebreak="al",
+ mirror=0x2255,
+ mathclass="relation",
+ mathname="colonequals",
+ unicodeslot=0x2254,
},
[0x2255]={
- ["category"]="sm",
- ["description"]="EQUALS COLON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2255, -- ≕
+ category="sm",
+ description="EQUALS COLON",
+ direction="on",
+ linebreak="al",
+ mirror=0x2254,
+ mathclass="relation",
+ mathname="equalscolon",
+ unicodeslot=0x2255,
},
[0x2256]={
- ["category"]="sm",
- ["description"]="RING IN EQUAL TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2256, -- ≖
+ category="sm",
+ description="RING IN EQUAL TO",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="eqcirc",
+ unicodeslot=0x2256,
},
[0x2257]={
- ["category"]="sm",
- ["description"]="RING EQUAL TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2257, -- ≗
+ category="sm",
+ description="RING EQUAL TO",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="circeq",
+ unicodeslot=0x2257,
},
[0x2258]={
- ["category"]="sm",
- ["description"]="CORRESPONDS TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2258, -- ≘
+ category="sm",
+ description="CORRESPONDS TO",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2258,
},
[0x2259]={
- ["category"]="sm",
- ["description"]="ESTIMATES",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2259, -- ≙
+ category="sm",
+ description="ESTIMATES",
+ direction="on",
+ fallback=[[\buildrel\wedge\over=]],
+ linebreak="al",
+ unicodeslot=0x2259,
+ mathclass="relation",
+ mathname="wedgeeq",
},
[0x225A]={
- ["category"]="sm",
- ["description"]="EQUIANGULAR TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x225A, -- ≚
+ category="sm",
+ description="EQUIANGULAR TO",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="veeeq",
+ unicodeslot=0x225A,
},
[0x225B]={
- ["category"]="sm",
- ["description"]="STAR EQUALS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x225B, -- ≛
+ category="sm",
+ description="STAR EQUALS",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="stareq",
+ unicodeslot=0x225B,
},
[0x225C]={
- ["category"]="sm",
- ["description"]="DELTA EQUAL TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x225C, -- ≜
+ category="sm",
+ description="DELTA EQUAL TO",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="triangleq",
+ unicodeslot=0x225C,
},
[0x225D]={
- ["category"]="sm",
- ["description"]="EQUAL TO BY DEFINITION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x225D, -- ≝
+ category="sm",
+ description="EQUAL TO BY DEFINITION",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="definedeq",
+ unicodeslot=0x225D,
},
[0x225E]={
- ["category"]="sm",
- ["description"]="MEASURED BY",
- ["linebreak"]="al",
- ["unicodeslot"]=0x225E, -- ≞
+ category="sm",
+ description="MEASURED BY",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="measuredeq",
+ unicodeslot=0x225E,
},
[0x225F]={
- ["category"]="sm",
- ["description"]="QUESTIONED EQUAL TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x225F, -- ≟
+ category="sm",
+ description="QUESTIONED EQUAL TO",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="questionedeq",
+ unicodeslot=0x225F,
},
[0x2260]={
- ["adobename"]="notequal",
- ["category"]="sm",
- ["cjkwd"]="a",
- ["description"]="NOT EQUAL TO",
- ["linebreak"]="ai",
- ["specials"]={ "char", 0x003D, 0x0338 },
- ["unicodeslot"]=0x2260, -- ≠
+ adobename="notequal",
+ category="sm",
+ cjkwd="a",
+ description="NOT EQUAL TO",
+ direction="on",
+ linebreak="ai",
+ mathspec={
+ { class="relation", name="neq" },
+ { class="relation", name="ne" },
+ },
+ specials={ "char", 0x003D, 0x0338 },
+ unicodeslot=0x2260,
},
[0x2261]={
- ["adobename"]="equivalence",
- ["category"]="sm",
- ["cjkwd"]="a",
- ["description"]="IDENTICAL TO",
- ["linebreak"]="ai",
- ["mathclass"]="relation",
- ["mathname"]="equiv",
- ["unicodeslot"]=0x2261, -- ≡
+ adobename="equivalence",
+ category="sm",
+ cjkwd="a",
+ description="IDENTICAL TO",
+ direction="on",
+ linebreak="ai",
+ mathclass="relation",
+ mathname="equiv",
+ unicodeslot=0x2261,
},
[0x2262]={
- ["category"]="sm",
- ["description"]="NOT IDENTICAL TO",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x2261, 0x0338 },
- ["unicodeslot"]=0x2262, -- ≢
+ category="sm",
+ description="NOT IDENTICAL TO",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="nequiv",
+ specials={ "char", 0x2261, 0x0338 },
+ unicodeslot=0x2262,
},
[0x2263]={
- ["category"]="sm",
- ["description"]="STRICTLY EQUIVALENT TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2263, -- ≣
+ category="sm",
+ description="STRICTLY EQUIVALENT TO",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2263,
},
[0x2264]={
- ["adobename"]="lessequal",
- ["category"]="sm",
- ["cjkwd"]="a",
- ["description"]="LESS-THAN OR EQUAL TO",
- ["linebreak"]="ai",
- ["mathclass"]="relation",
- ["mathname"]="leq",
- ["unicodeslot"]=0x2264, -- ≤
+ adobename="lessequal",
+ category="sm",
+ cjkwd="a",
+ description="LESS-THAN OR EQUAL TO",
+ direction="on",
+ linebreak="ai",
+ mathspec={
+ { class="relation", name="leq" },
+ { class="relation", name="le" },
+ },
+ mirror=0x2265,
+ unicodeslot=0x2264,
},
[0x2265]={
- ["adobename"]="greaterequal",
- ["category"]="sm",
- ["cjkwd"]="a",
- ["description"]="GREATER-THAN OR EQUAL TO",
- ["linebreak"]="ai",
- ["mathclass"]="relation",
- ["mathname"]="geq",
- ["unicodeslot"]=0x2265, -- ≥
+ adobename="greaterequal",
+ category="sm",
+ cjkwd="a",
+ description="GREATER-THAN OR EQUAL TO",
+ direction="on",
+ linebreak="ai",
+ mathspec={
+ { class="relation", name="geq" },
+ { class="relation", name="ge" },
+ },
+ mirror=0x2264,
+ unicodeslot=0x2265,
},
[0x2266]={
- ["category"]="sm",
- ["cjkwd"]="a",
- ["description"]="LESS-THAN OVER EQUAL TO",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2266, -- ≦
+ category="sm",
+ cjkwd="a",
+ description="LESS-THAN OVER EQUAL TO",
+ direction="on",
+ linebreak="ai",
+ mathclass="relation",
+ mathname="leqq",
+ mirror=0x2267,
+ unicodeslot=0x2266,
},
[0x2267]={
- ["category"]="sm",
- ["cjkwd"]="a",
- ["description"]="GREATER-THAN OVER EQUAL TO",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2267, -- ≧
+ category="sm",
+ cjkwd="a",
+ description="GREATER-THAN OVER EQUAL TO",
+ direction="on",
+ linebreak="ai",
+ mathclass="relation",
+ mathname="geqq",
+ mirror=0x2266,
+ unicodeslot=0x2267,
},
[0x2268]={
- ["category"]="sm",
- ["description"]="LESS-THAN BUT NOT EQUAL TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2268, -- ≨
+ category="sm",
+ description="LESS-THAN BUT NOT EQUAL TO",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="lneqq",
+ mirror=0x2269,
+ unicodeslot=0x2268,
},
[0x2269]={
- ["category"]="sm",
- ["description"]="GREATER-THAN BUT NOT EQUAL TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2269, -- ≩
+ category="sm",
+ description="GREATER-THAN BUT NOT EQUAL TO",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="gneqq",
+ mirror=0x2268,
+ unicodeslot=0x2269,
},
[0x226A]={
- ["category"]="sm",
- ["cjkwd"]="a",
- ["description"]="MUCH LESS-THAN",
- ["linebreak"]="ai",
- ["mathclass"]="relation",
- ["mathname"]="ll",
- ["unicodeslot"]=0x226A, -- ≪
+ category="sm",
+ cjkwd="a",
+ description="MUCH LESS-THAN",
+ direction="on",
+ linebreak="ai",
+ mathclass="relation",
+ mathname="ll",
+ mirror=0x226B,
+ unicodeslot=0x226A,
},
[0x226B]={
- ["category"]="sm",
- ["cjkwd"]="a",
- ["description"]="MUCH GREATER-THAN",
- ["linebreak"]="ai",
- ["mathclass"]="relation",
- ["mathname"]="gg",
- ["unicodeslot"]=0x226B, -- ≫
+ category="sm",
+ cjkwd="a",
+ description="MUCH GREATER-THAN",
+ direction="on",
+ linebreak="ai",
+ mathclass="relation",
+ mathname="gg",
+ mirror=0x226A,
+ unicodeslot=0x226B,
},
[0x226C]={
- ["category"]="sm",
- ["description"]="BETWEEN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x226C, -- ≬
+ category="sm",
+ description="BETWEEN",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="between",
+ unicodeslot=0x226C,
},
[0x226D]={
- ["category"]="sm",
- ["description"]="NOT EQUIVALENT TO",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x224D, 0x0338 },
- ["unicodeslot"]=0x226D, -- ≭
+ category="sm",
+ description="NOT EQUIVALENT TO",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="nasymp",
+ specials={ "char", 0x224D, 0x0338 },
+ unicodeslot=0x226D,
},
[0x226E]={
- ["category"]="sm",
- ["cjkwd"]="a",
- ["description"]="NOT LESS-THAN",
- ["linebreak"]="ai",
- ["specials"]={ "char", 0x003C, 0x0338 },
- ["unicodeslot"]=0x226E, -- ≮
+ category="sm",
+ cjkwd="a",
+ description="NOT LESS-THAN",
+ direction="on",
+ linebreak="ai",
+ mathclass="relation",
+ mathname="nless",
+ mirror=0x226F,
+ specials={ "char", 0x003C, 0x0338 },
+ unicodeslot=0x226E,
},
[0x226F]={
- ["category"]="sm",
- ["cjkwd"]="a",
- ["description"]="NOT GREATER-THAN",
- ["linebreak"]="ai",
- ["specials"]={ "char", 0x003E, 0x0338 },
- ["unicodeslot"]=0x226F, -- ≯
+ category="sm",
+ cjkwd="a",
+ description="NOT GREATER-THAN",
+ direction="on",
+ linebreak="ai",
+ mathclass="relation",
+ mathname="ngtr",
+ mirror=0x226E,
+ specials={ "char", 0x003E, 0x0338 },
+ unicodeslot=0x226F,
},
[0x2270]={
- ["category"]="sm",
- ["description"]="NEITHER LESS-THAN NOR EQUAL TO",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x2264, 0x0338 },
- ["unicodeslot"]=0x2270, -- ≰
+ category="sm",
+ description="NEITHER LESS-THAN NOR EQUAL TO",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="nleq",
+ mirror=0x2271,
+ specials={ "char", 0x2264, 0x0338 },
+ unicodeslot=0x2270,
},
[0x2271]={
- ["category"]="sm",
- ["description"]="NEITHER GREATER-THAN NOR EQUAL TO",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x2265, 0x0338 },
- ["unicodeslot"]=0x2271, -- ≱
+ category="sm",
+ description="NEITHER GREATER-THAN NOR EQUAL TO",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="ngeq",
+ mirror=0x2270,
+ specials={ "char", 0x2265, 0x0338 },
+ unicodeslot=0x2271,
},
[0x2272]={
- ["category"]="sm",
- ["description"]="LESS-THAN OR EQUIVALENT TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2272, -- ≲
+ category="sm",
+ description="LESS-THAN OR EQUIVALENT TO",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="lesssim",
+ mirror=0x2273,
+ unicodeslot=0x2272,
},
[0x2273]={
- ["category"]="sm",
- ["description"]="GREATER-THAN OR EQUIVALENT TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2273, -- ≳
+ category="sm",
+ description="GREATER-THAN OR EQUIVALENT TO",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="gtrsim",
+ mirror=0x2272,
+ unicodeslot=0x2273,
},
[0x2274]={
- ["category"]="sm",
- ["description"]="NEITHER LESS-THAN NOR EQUIVALENT TO",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x2272, 0x0338 },
- ["unicodeslot"]=0x2274, -- ≴
+ category="sm",
+ description="NEITHER LESS-THAN NOR EQUIVALENT TO",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="nlesssim",
+ mirror=0x2275,
+ specials={ "char", 0x2272, 0x0338 },
+ unicodeslot=0x2274,
},
[0x2275]={
- ["category"]="sm",
- ["description"]="NEITHER GREATER-THAN NOR EQUIVALENT TO",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x2273, 0x0338 },
- ["unicodeslot"]=0x2275, -- ≵
+ category="sm",
+ description="NEITHER GREATER-THAN NOR EQUIVALENT TO",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="ngtrsim",
+ mirror=0x2274,
+ specials={ "char", 0x2273, 0x0338 },
+ unicodeslot=0x2275,
},
[0x2276]={
- ["category"]="sm",
- ["description"]="LESS-THAN OR GREATER-THAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2276, -- ≶
+ category="sm",
+ description="LESS-THAN OR GREATER-THAN",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="lessgtr",
+ mirror=0x2277,
+ unicodeslot=0x2276,
},
[0x2277]={
- ["category"]="sm",
- ["description"]="GREATER-THAN OR LESS-THAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2277, -- ≷
+ category="sm",
+ description="GREATER-THAN OR LESS-THAN",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="gtrless",
+ mirror=0x2276,
+ unicodeslot=0x2277,
},
[0x2278]={
- ["category"]="sm",
- ["description"]="NEITHER LESS-THAN NOR GREATER-THAN",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x2276, 0x0338 },
- ["unicodeslot"]=0x2278, -- ≸
+ category="sm",
+ description="NEITHER LESS-THAN NOR GREATER-THAN",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="nlessgtr",
+ mirror=0x2279,
+ specials={ "char", 0x2276, 0x0338 },
+ unicodeslot=0x2278,
},
[0x2279]={
- ["category"]="sm",
- ["description"]="NEITHER GREATER-THAN NOR LESS-THAN",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x2277, 0x0338 },
- ["unicodeslot"]=0x2279, -- ≹
+ category="sm",
+ description="NEITHER GREATER-THAN NOR LESS-THAN",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="ngtrless",
+ mirror=0x2278,
+ specials={ "char", 0x2277, 0x0338 },
+ unicodeslot=0x2279,
},
[0x227A]={
- ["category"]="sm",
- ["description"]="PRECEDES",
- ["mathclass"]="relation",
- ["mathname"]="prec",
- ["linebreak"]="al",
- ["mathclass"]="relation",
- ["mathname"]="prec",
- ["unicodeslot"]=0x227A, -- ≺
+ category="sm",
+ description="PRECEDES",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="prec",
+ mirror=0x227B,
+ unicodeslot=0x227A,
},
[0x227B]={
- ["category"]="sm",
- ["description"]="SUCCEEDS",
- ["mathclass"]="relation",
- ["mathname"]="succ",
- ["linebreak"]="al",
- ["mathclass"]="relation",
- ["mathname"]="succ",
- ["unicodeslot"]=0x227B, -- ≻
+ category="sm",
+ description="SUCCEEDS",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="succ",
+ mirror=0x227A,
+ unicodeslot=0x227B,
},
[0x227C]={
- ["category"]="sm",
- ["description"]="PRECEDES OR EQUAL TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x227C, -- ≼
+ category="sm",
+ description="PRECEDES OR EQUAL TO",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="preccurlyeq",
+ mirror=0x227D,
+ unicodeslot=0x227C,
},
[0x227D]={
- ["category"]="sm",
- ["description"]="SUCCEEDS OR EQUAL TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x227D, -- ≽
+ category="sm",
+ description="SUCCEEDS OR EQUAL TO",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="succcurlyeq",
+ mirror=0x227C,
+ unicodeslot=0x227D,
},
[0x227E]={
- ["category"]="sm",
- ["description"]="PRECEDES OR EQUIVALENT TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x227E, -- ≾
+ category="sm",
+ description="PRECEDES OR EQUIVALENT TO",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="precsim",
+ mirror=0x227F,
+ unicodeslot=0x227E,
},
[0x227F]={
- ["category"]="sm",
- ["description"]="SUCCEEDS OR EQUIVALENT TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x227F, -- ≿
+ category="sm",
+ description="SUCCEEDS OR EQUIVALENT TO",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="succsim",
+ mirror=0x227E,
+ unicodeslot=0x227F,
},
[0x2280]={
- ["category"]="sm",
- ["description"]="DOES NOT PRECEDE",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x227A, 0x0338 },
- ["unicodeslot"]=0x2280, -- ⊀
+ category="sm",
+ description="DOES NOT PRECEDE",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="nprec",
+ mirror=0x2281,
+ specials={ "char", 0x227A, 0x0338 },
+ unicodeslot=0x2280,
},
[0x2281]={
- ["category"]="sm",
- ["description"]="DOES NOT SUCCEED",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x227B, 0x0338 },
- ["unicodeslot"]=0x2281, -- ⊁
+ category="sm",
+ description="DOES NOT SUCCEED",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="nsucc",
+ mirror=0x2280,
+ specials={ "char", 0x227B, 0x0338 },
+ unicodeslot=0x2281,
},
[0x2282]={
- ["adobename"]="propersubset",
- ["category"]="sm",
- ["cjkwd"]="a",
- ["description"]="SUBSET OF",
- ["linebreak"]="ai",
- ["mathclass"]="relation",
- ["mathname"]="subset",
- ["unicodeslot"]=0x2282, -- ⊂
+ adobename="propersubset",
+ category="sm",
+ cjkwd="a",
+ description="SUBSET OF",
+ direction="on",
+ linebreak="ai",
+ mathclass="relation",
+ mathname="subset", -- Subset
+ mirror=0x2283,
+ unicodeslot=0x2282,
},
[0x2283]={
- ["adobename"]="propersuperset",
- ["category"]="sm",
- ["cjkwd"]="a",
- ["description"]="SUPERSET OF",
- ["linebreak"]="ai",
- ["mathclass"]="relation",
- ["mathname"]="supset",
- ["unicodeslot"]=0x2283, -- ⊃
+ adobename="propersuperset",
+ category="sm",
+ cjkwd="a",
+ description="SUPERSET OF",
+ direction="on",
+ linebreak="ai",
+ mathclass="relation",
+ mathname="supset",
+ mirror=0x2282,
+ unicodeslot=0x2283,
},
[0x2284]={
- ["adobename"]="notsubset",
- ["category"]="sm",
- ["description"]="NOT A SUBSET OF",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x2282, 0x0338 },
- ["unicodeslot"]=0x2284, -- ⊄
+ adobename="notsubset",
+ category="sm",
+ description="NOT A SUBSET OF",
+ direction="on",
+ fallback=[[\not\subset]],
+ mathclass="relation",
+ mathname="nsubset",
+ linebreak="al",
+ mirror=0x2285,
+ specials={ "char", 0x2282, 0x0338 },
+ unicodeslot=0x2284,
},
[0x2285]={
- ["category"]="sm",
- ["description"]="NOT A SUPERSET OF",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x2283, 0x0338 },
- ["unicodeslot"]=0x2285, -- ⊅
+ category="sm",
+ description="NOT A SUPERSET OF",
+ direction="on",
+ fallback=[[\not\supset]],
+ linebreak="al",
+ mathclass="relation",
+ mathname="nsupset",
+ mirror=0x2284,
+ specials={ "char", 0x2283, 0x0338 },
+ unicodeslot=0x2285,
},
[0x2286]={
- ["adobename"]="reflexsubset",
- ["category"]="sm",
- ["cjkwd"]="a",
- ["description"]="SUBSET OF OR EQUAL TO",
- ["linebreak"]="ai",
- ["mathclass"]="relation",
- ["mathname"]="subseteq",
- ["unicodeslot"]=0x2286, -- ⊆
+ adobename="reflexsubset",
+ category="sm",
+ cjkwd="a",
+ description="SUBSET OF OR EQUAL TO",
+ direction="on",
+ linebreak="ai",
+ mathclass="relation",
+ mathname="subseteq",
+ mirror=0x2287,
+ unicodeslot=0x2286,
},
[0x2287]={
- ["adobename"]="reflexsuperset",
- ["category"]="sm",
- ["cjkwd"]="a",
- ["description"]="SUPERSET OF OR EQUAL TO",
- ["linebreak"]="ai",
- ["mathclass"]="relation",
- ["mathname"]="supseteq",
- ["unicodeslot"]=0x2287, -- ⊇
+ adobename="reflexsuperset",
+ category="sm",
+ cjkwd="a",
+ description="SUPERSET OF OR EQUAL TO",
+ direction="on",
+ linebreak="ai",
+ mathclass="relation",
+ mathname="supseteq",
+ mirror=0x2286,
+ unicodeslot=0x2287,
},
[0x2288]={
- ["category"]="sm",
- ["description"]="NEITHER A SUBSET OF NOR EQUAL TO",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x2286, 0x0338 },
- ["unicodeslot"]=0x2288, -- ⊈
+ category="sm",
+ description="NEITHER A SUBSET OF NOR EQUAL TO",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="nsubseteq",
+ mirror=0x2289,
+ specials={ "char", 0x2286, 0x0338 },
+ unicodeslot=0x2288,
},
[0x2289]={
- ["category"]="sm",
- ["description"]="NEITHER A SUPERSET OF NOR EQUAL TO",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x2287, 0x0338 },
- ["unicodeslot"]=0x2289, -- ⊉
+ category="sm",
+ description="NEITHER A SUPERSET OF NOR EQUAL TO",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="nsupseteq",
+ mirror=0x2288,
+ specials={ "char", 0x2287, 0x0338 },
+ unicodeslot=0x2289,
},
[0x228A]={
- ["category"]="sm",
- ["description"]="SUBSET OF WITH NOT EQUAL TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x228A, -- ⊊
+ category="sm",
+ description="SUBSET OF WITH NOT EQUAL TO",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="subsetneq",
+ mirror=0x228B,
+ unicodeslot=0x228A,
},
[0x228B]={
- ["category"]="sm",
- ["description"]="SUPERSET OF WITH NOT EQUAL TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x228B, -- ⊋
+ category="sm",
+ description="SUPERSET OF WITH NOT EQUAL TO",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="supsetneq",
+ mirror=0x228A,
+ unicodeslot=0x228B,
},
[0x228C]={
- ["category"]="sm",
- ["description"]="MULTISET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x228C, -- ⊌
+ category="sm",
+ description="MULTISET",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x228C,
},
[0x228D]={
- ["category"]="sm",
- ["description"]="MULTISET MULTIPLICATION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x228D, -- ⊍
+ category="sm",
+ description="MULTISET MULTIPLICATION",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x228D,
},
[0x228E]={
- ["category"]="sm",
- ["description"]="MULTISET UNION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x228E, -- ⊎
+ category="sm",
+ description="MULTISET UNION",
+ direction="on",
+ linebreak="al",
+ mathclass="binary",
+ mathname="uplus",
+ unicodeslot=0x228E,
},
[0x228F]={
- ["category"]="sm",
- ["description"]="SQUARE IMAGE OF",
- ["linebreak"]="al",
- ["unicodeslot"]=0x228F, -- ⊏
+ category="sm",
+ description="SQUARE IMAGE OF",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="sqsubset",
+ mirror=0x2290,
+ unicodeslot=0x228F,
},
[0x2290]={
- ["category"]="sm",
- ["description"]="SQUARE ORIGINAL OF",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2290, -- ⊐
+ category="sm",
+ description="SQUARE ORIGINAL OF",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="sqsupset",
+ mirror=0x228F,
+ unicodeslot=0x2290,
},
[0x2291]={
- ["category"]="sm",
- ["description"]="SQUARE IMAGE OF OR EQUAL TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2291, -- ⊑
+ category="sm",
+ description="SQUARE IMAGE OF OR EQUAL TO",
+ direction="on",
+ linebreak="al",
+ mathclass="binary",
+ mathname="sqsubseteq",
+ mirror=0x2292,
+ unicodeslot=0x2291,
},
[0x2292]={
- ["category"]="sm",
- ["description"]="SQUARE ORIGINAL OF OR EQUAL TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2292, -- ⊒
+ category="sm",
+ description="SQUARE ORIGINAL OF OR EQUAL TO",
+ direction="on",
+ linebreak="al",
+ mathclass="binary",
+ mathname="sqsupseteq",
+ mirror=0x2291,
+ unicodeslot=0x2292,
},
[0x2293]={
- ["category"]="sm",
- ["description"]="SQUARE CAP",
- ["linebreak"]="al",
- ["mathclass"]="relation",
- ["mathname"]="sqcap",
- ["unicodeslot"]=0x2293, -- ⊓
+ category="sm",
+ description="SQUARE CAP",
+ direction="on",
+ linebreak="al",
+ mathclass="binary",
+ mathname="sqcap",
+ unicodeslot=0x2293,
},
[0x2294]={
- ["category"]="sm",
- ["description"]="SQUARE CUP",
- ["linebreak"]="al",
- ["mathclass"]="relation",
- ["mathname"]="sqcup",
- ["unicodeslot"]=0x2294, -- ⊔
+ category="sm",
+ description="SQUARE CUP",
+ direction="on",
+ linebreak="al",
+ mathclass="binary",
+ mathname="sqcup",
+ unicodeslot=0x2294,
},
[0x2295]={
- ["adobename"]="circleplus",
- ["category"]="sm",
- ["cjkwd"]="a",
- ["description"]="CIRCLED PLUS",
- ["linebreak"]="ai",
- ["mathclass"]="binary",
- ["mathname"]="oplus",
- ["unicodeslot"]=0x2295, -- ⊕
+ adobename="circleplus",
+ category="sm",
+ cjkwd="a",
+ description="CIRCLED PLUS",
+ direction="on",
+ linebreak="ai",
+ mathclass="binary",
+ mathname="oplus",
+ unicodeslot=0x2295,
},
[0x2296]={
- ["category"]="sm",
- ["description"]="CIRCLED MINUS",
- ["linebreak"]="al",
- ["mathclass"]="binary",
- ["mathname"]="ominus",
- ["unicodeslot"]=0x2296, -- ⊖
+ category="sm",
+ description="CIRCLED MINUS",
+ direction="on",
+ linebreak="al",
+ mathclass="binary",
+ mathname="ominus",
+ unicodeslot=0x2296,
},
[0x2297]={
- ["adobename"]="circlemultiply",
- ["category"]="sm",
- ["description"]="CIRCLED TIMES",
- ["linebreak"]="al",
- ["mathclass"]="binary",
- ["mathname"]="otimes",
- ["unicodeslot"]=0x2297, -- ⊗
+ adobename="circlemultiply",
+ category="sm",
+ description="CIRCLED TIMES",
+ direction="on",
+ linebreak="al",
+ mathclass="binary",
+ mathname="otimes",
+ unicodeslot=0x2297,
},
[0x2298]={
- ["category"]="sm",
- ["description"]="CIRCLED DIVISION SLASH",
- ["linebreak"]="al",
- ["mathclass"]="binary",
- ["mathname"]="oslash",
- ["unicodeslot"]=0x2298, -- ⊘
+ category="sm",
+ description="CIRCLED DIVISION SLASH",
+ direction="on",
+ linebreak="al",
+ mathclass="binary",
+ mathname="oslash",
+ mirror=0x29B8,
+ unicodeslot=0x2298,
},
[0x2299]={
- ["category"]="sm",
- ["cjkwd"]="a",
- ["description"]="CIRCLED DOT OPERATOR",
- ["linebreak"]="ai",
- ["mathclass"]="binary",
- ["mathname"]="odot",
- ["unicodeslot"]=0x2299, -- ⊙
+ category="sm",
+ cjkwd="a",
+ description="CIRCLED DOT OPERATOR",
+ direction="on",
+ linebreak="ai",
+ mathclass="binary",
+ mathname="odot",
+ unicodeslot=0x2299,
},
[0x229A]={
- ["category"]="sm",
- ["description"]="CIRCLED RING OPERATOR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x229A, -- ⊚
+ category="sm",
+ description="CIRCLED RING OPERATOR",
+ direction="on",
+ linebreak="al",
+ mathclass="binary",
+ mathname="circledcirc",
+ unicodeslot=0x229A,
},
[0x229B]={
- ["category"]="sm",
- ["description"]="CIRCLED ASTERISK OPERATOR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x229B, -- ⊛
+ category="sm",
+ description="CIRCLED ASTERISK OPERATOR",
+ direction="on",
+ linebreak="al",
+ mathclass="binary",
+ mathname="circledast",
+ unicodeslot=0x229B,
},
[0x229C]={
- ["category"]="sm",
- ["description"]="CIRCLED EQUALS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x229C, -- ⊜
+ category="sm",
+ description="CIRCLED EQUALS",
+ direction="on",
+ linebreak="al",
+ mathclass="binary",
+ mathname="circledequals",
+ unicodeslot=0x229C,
},
[0x229D]={
- ["category"]="sm",
- ["description"]="CIRCLED DASH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x229D, -- ⊝
+ category="sm",
+ description="CIRCLED DASH",
+ direction="on",
+ linebreak="al",
+ mathclass="binary",
+ mathname="circleddash",
+ unicodeslot=0x229D,
},
[0x229E]={
- ["category"]="sm",
- ["description"]="SQUARED PLUS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x229E, -- ⊞
+ category="sm",
+ description="SQUARED PLUS",
+ direction="on",
+ linebreak="al",
+ mathclass="binary",
+ mathname="boxplus",
+ unicodeslot=0x229E,
},
[0x229F]={
- ["category"]="sm",
- ["description"]="SQUARED MINUS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x229F, -- ⊟
+ category="sm",
+ description="SQUARED MINUS",
+ direction="on",
+ linebreak="al",
+ mathclass="binary",
+ mathname="boxminus",
+ unicodeslot=0x229F,
},
[0x22A0]={
- ["category"]="sm",
- ["description"]="SQUARED TIMES",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22A0, -- ⊠
+ category="sm",
+ description="SQUARED TIMES",
+ direction="on",
+ linebreak="al",
+ mathclass="binary",
+ mathname="boxtimes",
+ unicodeslot=0x22A0,
},
[0x22A1]={
- ["category"]="sm",
- ["description"]="SQUARED DOT OPERATOR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22A1, -- ⊡
+ category="sm",
+ description="SQUARED DOT OPERATOR",
+ direction="on",
+ linebreak="al",
+ mathclass="binary",
+ mathname="boxdot",
+ unicodeslot=0x22A1,
},
[0x22A2]={
- ["category"]="sm",
- ["description"]="RIGHT TACK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22A2, -- ⊢
+ category="sm",
+ description="RIGHT TACK",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="vdash",
+ mirror=0x22A3,
+ unicodeslot=0x22A2,
},
[0x22A3]={
- ["category"]="sm",
- ["description"]="LEFT TACK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22A3, -- ⊣
+ category="sm",
+ description="LEFT TACK",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="dashv",
+ mirror=0x22A2,
+ unicodeslot=0x22A3,
},
[0x22A4]={
- ["category"]="sm",
- ["description"]="DOWN TACK",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["mathname"]="bot",
- ["unicodeslot"]=0x22A4, -- ⊤
+ category="sm",
+ description="DOWN TACK",
+ direction="on",
+ linebreak="al",
+ mathclass="default",
+ mathname="top",
+ unicodeslot=0x22A4,
},
[0x22A5]={
- ["adobename"]="perpendicular",
- ["category"]="sm",
- ["cjkwd"]="a",
- ["description"]="UP TACK",
- ["linebreak"]="ai",
- ["mathclass"]="variable",
- ["mathname"]="top",
- ["unicodeslot"]=0x22A5, -- ⊥
+ adobename="perpendicular",
+ category="sm",
+ cjkwd="a",
+ description="UP TACK",
+ direction="on",
+ linebreak="ai",
+ mathspec={
+ { class="default", name="bot" },
+ { class="relation", name="perp" },
+ },
+ unicodeslot=0x22A5,
},
[0x22A6]={
- ["category"]="sm",
- ["description"]="ASSERTION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22A6, -- ⊦
+ category="sm",
+ description="ASSERTION",
+ direction="on",
+ linebreak="al",
+ mirror=0x2ADE,
+ unicodeslot=0x22A6,
},
[0x22A7]={
- ["category"]="sm",
- ["description"]="MODELS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22A7, -- ⊧
+ category="sm",
+ description="MODELS",
+ direction="on",
+ linebreak="al",
+ fallback=[[\mathrel|\joinrel=]],
+ mathclass="relation",
+ mathname="models",
+ unicodeslot=0x22A7,
},
[0x22A8]={
- ["category"]="sm",
- ["description"]="TRUE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22A8, -- ⊨
+ category="sm",
+ description="TRUE",
+ direction="on",
+ linebreak="al",
+ mirror=0x2AE4,
+ mathclass="relation",
+ mathname="vDash",
+ unicodeslot=0x22A8,
},
[0x22A9]={
- ["category"]="sm",
- ["description"]="FORCES",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22A9, -- ⊩
+ category="sm",
+ description="FORCES",
+ direction="on",
+ linebreak="al",
+ mirror=0x2AE3,
+ mathclass="relation",
+ mathname="Vdash",
+ unicodeslot=0x22A9,
},
[0x22AA]={
- ["category"]="sm",
- ["description"]="TRIPLE VERTICAL BAR RIGHT TURNSTILE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22AA, -- ⊪
+ category="sm",
+ description="TRIPLE VERTICAL BAR RIGHT TURNSTILE",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="Vvdash",
+ unicodeslot=0x22AA,
},
[0x22AB]={
- ["category"]="sm",
- ["description"]="DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22AB, -- ⊫
+ category="sm",
+ description="DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE",
+ direction="on",
+ linebreak="al",
+ mirror=0x2AE5,
+ mathclass="relation",
+ mathname="VDash",
+ unicodeslot=0x22AB,
},
[0x22AC]={
- ["category"]="sm",
- ["description"]="DOES NOT PROVE",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x22A2, 0x0338 },
- ["unicodeslot"]=0x22AC, -- ⊬
+ category="sm",
+ description="DOES NOT PROVE",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="nvdash",
+ specials={ "char", 0x22A2, 0x0338 },
+ unicodeslot=0x22AC,
},
[0x22AD]={
- ["category"]="sm",
- ["description"]="NOT TRUE",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x22A8, 0x0338 },
- ["unicodeslot"]=0x22AD, -- ⊭
+ category="sm",
+ description="NOT TRUE",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="nvDash",
+ specials={ "char", 0x22A8, 0x0338 },
+ unicodeslot=0x22AD,
},
[0x22AE]={
- ["category"]="sm",
- ["description"]="DOES NOT FORCE",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x22A9, 0x0338 },
- ["unicodeslot"]=0x22AE, -- ⊮
+ category="sm",
+ description="DOES NOT FORCE",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="nVdash",
+ specials={ "char", 0x22A9, 0x0338 },
+ unicodeslot=0x22AE,
},
[0x22AF]={
- ["category"]="sm",
- ["description"]="NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x22AB, 0x0338 },
- ["unicodeslot"]=0x22AF, -- ⊯
+ category="sm",
+ description="NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="nVDash",
+ specials={ "char", 0x22AB, 0x0338 },
+ unicodeslot=0x22AF,
},
[0x22B0]={
- ["category"]="sm",
- ["description"]="PRECEDES UNDER RELATION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22B0, -- ⊰
+ category="sm",
+ description="PRECEDES UNDER RELATION",
+ direction="on",
+ linebreak="al",
+ mirror=0x22B1,
+ unicodeslot=0x22B0,
},
[0x22B1]={
- ["category"]="sm",
- ["description"]="SUCCEEDS UNDER RELATION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22B1, -- ⊱
+ category="sm",
+ description="SUCCEEDS UNDER RELATION",
+ direction="on",
+ linebreak="al",
+ mirror=0x22B0,
+ unicodeslot=0x22B1,
},
[0x22B2]={
- ["category"]="sm",
- ["description"]="NORMAL SUBGROUP OF",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22B2, -- ⊲
+ category="sm",
+ description="NORMAL SUBGROUP OF",
+ direction="on",
+ linebreak="al",
+ mathclass="bin",
+ mathname="triangleleft",
+ mirror=0x22B3,
+ unicodeslot=0x22B2,
},
[0x22B3]={
- ["category"]="sm",
- ["description"]="CONTAINS AS NORMAL SUBGROUP",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22B3, -- ⊳
+ category="sm",
+ description="CONTAINS AS NORMAL SUBGROUP",
+ direction="on",
+ linebreak="al",
+ mathclass="bin",
+ mathname="triangleright",
+ mirror=0x22B2,
+ unicodeslot=0x22B3,
},
[0x22B4]={
- ["category"]="sm",
- ["description"]="NORMAL SUBGROUP OF OR EQUAL TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22B4, -- ⊴
+ category="sm",
+ description="NORMAL SUBGROUP OF OR EQUAL TO",
+ direction="on",
+ linebreak="al",
+ mirror=0x22B5,
+ unicodeslot=0x22B4,
},
[0x22B5]={
- ["category"]="sm",
- ["description"]="CONTAINS AS NORMAL SUBGROUP OR EQUAL TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22B5, -- ⊵
+ category="sm",
+ description="CONTAINS AS NORMAL SUBGROUP OR EQUAL TO",
+ direction="on",
+ linebreak="al",
+ mirror=0x22B4,
+ unicodeslot=0x22B5,
},
[0x22B6]={
- ["category"]="sm",
- ["description"]="ORIGINAL OF",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22B6, -- ⊶
+ category="sm",
+ description="ORIGINAL OF",
+ direction="on",
+ linebreak="al",
+ mirror=0x22B7,
+ unicodeslot=0x22B6,
},
[0x22B7]={
- ["category"]="sm",
- ["description"]="IMAGE OF",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22B7, -- ⊷
+ category="sm",
+ description="IMAGE OF",
+ direction="on",
+ linebreak="al",
+ mirror=0x22B6,
+ unicodeslot=0x22B7,
},
[0x22B8]={
- ["category"]="sm",
- ["description"]="MULTIMAP",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22B8, -- ⊸
+ category="sm",
+ description="MULTIMAP",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="multimap",
+ unicodeslot=0x22B8,
},
[0x22B9]={
- ["category"]="sm",
- ["description"]="HERMITIAN CONJUGATE MATRIX",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22B9, -- ⊹
+ category="sm",
+ description="HERMITIAN CONJUGATE MATRIX",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x22B9,
},
[0x22BA]={
- ["category"]="sm",
- ["description"]="INTERCALATE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22BA, -- ⊺
+ category="sm",
+ description="INTERCALATE",
+ direction="on",
+ linebreak="al",
+ mathclass="binary",
+ mathname="intercal",
+ unicodeslot=0x22BA,
},
[0x22BB]={
- ["category"]="sm",
- ["description"]="XOR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22BB, -- ⊻
+ category="sm",
+ description="XOR",
+ direction="on",
+ linebreak="al",
+ mathclass="binary",
+ mathname="veebar",
+ unicodeslot=0x22BB,
},
[0x22BC]={
- ["category"]="sm",
- ["description"]="NAND",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22BC, -- ⊼
+ category="sm",
+ description="NAND",
+ direction="on",
+ linebreak="al",
+ mathclass="binary",
+ mathname="barwedge",
+ unicodeslot=0x22BC,
},
[0x22BD]={
- ["category"]="sm",
- ["description"]="NOR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22BD, -- ⊽
+ category="sm",
+ description="NOR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x22BD,
},
[0x22BE]={
- ["category"]="sm",
- ["description"]="RIGHT ANGLE WITH ARC",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22BE, -- ⊾
+ category="sm",
+ description="RIGHT ANGLE WITH ARC",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x22BE,
},
[0x22BF]={
- ["category"]="sm",
- ["cjkwd"]="a",
- ["description"]="RIGHT TRIANGLE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x22BF, -- ⊿
+ category="sm",
+ cjkwd="a",
+ description="RIGHT TRIANGLE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x22BF,
},
[0x22C0]={
- ["category"]="sm",
- ["description"]="N-ARY LOGICAL AND",
- ["linebreak"]="al",
- ["mathclass"]="limop",
- ["mathname"]="bigwedge",
- ["unicodeslot"]=0x22C0, -- ⋀
+ category="sm",
+ description="N-ARY LOGICAL AND",
+ direction="on",
+ linebreak="al",
+ mathclass="limop",
+ mathname="bigwedge",
+ unicodeslot=0x22C0,
},
[0x22C1]={
- ["category"]="sm",
- ["description"]="N-ARY LOGICAL OR",
- ["linebreak"]="al",
- ["mathclass"]="limop",
- ["mathname"]="bigvee",
- ["unicodeslot"]=0x22C1, -- ⋁
+ category="sm",
+ description="N-ARY LOGICAL OR",
+ direction="on",
+ linebreak="al",
+ mathclass="limop",
+ mathname="bigvee",
+ unicodeslot=0x22C1,
},
[0x22C2]={
- ["category"]="sm",
- ["description"]="N-ARY INTERSECTION",
- ["linebreak"]="al",
- ["mathclass"]="limop",
- ["mathname"]="bigcap",
- ["unicodeslot"]=0x22C2, -- ⋂
+ category="sm",
+ description="N-ARY INTERSECTION",
+ direction="on",
+ linebreak="al",
+ mathclass="limop",
+ mathname="bigcap",
+ unicodeslot=0x22C2,
},
[0x22C3]={
- ["category"]="sm",
- ["description"]="N-ARY UNION",
- ["linebreak"]="al",
- ["mathclass"]="limop",
- ["mathname"]="bigcup",
- ["unicodeslot"]=0x22C3, -- ⋃
+ category="sm",
+ description="N-ARY UNION",
+ direction="on",
+ linebreak="al",
+ mathclass="limop",
+ mathname="bigcup",
+ unicodeslot=0x22C3,
},
[0x22C4]={
- ["category"]="sm",
- ["description"]="DIAMOND OPERATOR",
- ["linebreak"]="al",
- ["mathclass"]="binary",
- ["mathname"]="diamond",
- ["unicodeslot"]=0x22C4, -- ⋄
+ category="sm",
+ description="DIAMOND OPERATOR",
+ direction="on",
+ linebreak="al",
+ mathclass="binary",
+ mathname="diamond",
+ unicodeslot=0x22C4,
},
[0x22C5]={
- ["adobename"]="dotmath",
- ["category"]="sm",
- ["description"]="DOT OPERATOR",
- ["linebreak"]="al",
- ["mathclass"]="binary",
- ["mathname"]="cdot",
- ["unicodeslot"]=0x22C5, -- ⋅
+ adobename="dotmath",
+ category="sm",
+ description="DOT OPERATOR",
+ direction="on",
+ linebreak="al",
+ mathspec={
+ { class="binary", name="cdot" },
+ { class="punctuation", name="cdotp" },
+ },
+ unicodeslot=0x22C5,
},
[0x22C6]={
- ["category"]="sm",
- ["description"]="STAR OPERATOR",
- ["linebreak"]="al",
- ["mathclass"]="binary",
- ["mathname"]="star",
- ["unicodeslot"]=0x22C6, -- ⋆
+ category="sm",
+ description="STAR OPERATOR",
+ direction="on",
+ linebreak="al",
+ mathclass="binary",
+ mathname="star",
+ unicodeslot=0x22C6,
},
[0x22C7]={
- ["category"]="sm",
- ["description"]="DIVISION TIMES",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22C7, -- ⋇
+ category="sm",
+ description="DIVISION TIMES",
+ direction="on",
+ linebreak="al",
+ mathclass="binary",
+ mathname="divideontimes",
+ unicodeslot=0x22C7,
},
[0x22C8]={
- ["category"]="sm",
- ["description"]="BOWTIE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22C8, -- ⋈
+ category="sm",
+ description="BOWTIE",
+ direction="on",
+ linebreak="al",
+ fallback=[[\mathrel\triangleright\joinrel\mathrel\triangleleft]],
+ mathspec={
+ { class="relation", name="bowtie" },
+ { class="relation", name="Join" }, -- AM: Maybe wrong
+ },
+ unicodeslot=0x22C8,
},
[0x22C9]={
- ["category"]="sm",
- ["description"]="LEFT NORMAL FACTOR SEMIDIRECT PRODUCT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22C9, -- ⋉
+ category="sm",
+ description="LEFT NORMAL FACTOR SEMIDIRECT PRODUCT",
+ direction="on",
+ linebreak="al",
+ mathclass="binary",
+ mathname="ltimes",
+ mirror=0x22CA,
+ unicodeslot=0x22C9,
},
[0x22CA]={
- ["category"]="sm",
- ["description"]="RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22CA, -- ⋊
+ category="sm",
+ description="RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT",
+ direction="on",
+ linebreak="al",
+ mathclass="binary",
+ mathname="rtimes",
+ mirror=0x22C9,
+ unicodeslot=0x22CA,
},
[0x22CB]={
- ["category"]="sm",
- ["description"]="LEFT SEMIDIRECT PRODUCT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22CB, -- ⋋
+ category="sm",
+ description="LEFT SEMIDIRECT PRODUCT",
+ direction="on",
+ linebreak="al",
+ mathclass="binary",
+ mathname="leftthreetimes",
+ mirror=0x22CC,
+ unicodeslot=0x22CB,
},
[0x22CC]={
- ["category"]="sm",
- ["description"]="RIGHT SEMIDIRECT PRODUCT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22CC, -- ⋌
+ category="sm",
+ description="RIGHT SEMIDIRECT PRODUCT",
+ direction="on",
+ linebreak="al",
+ mathclass="binary",
+ mathname="rightthreetimes",
+ mirror=0x22CB,
+ unicodeslot=0x22CC,
},
[0x22CD]={
- ["category"]="sm",
- ["description"]="REVERSED TILDE EQUALS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22CD, -- ⋍
+ category="sm",
+ description="REVERSED TILDE EQUALS",
+ direction="on",
+ linebreak="al",
+ mirror=0x2243,
+ unicodeslot=0x22CD,
},
[0x22CE]={
- ["category"]="sm",
- ["description"]="CURLY LOGICAL OR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22CE, -- ⋎
+ category="sm",
+ description="CURLY LOGICAL OR",
+ direction="on",
+ linebreak="al",
+ mathclass="binary",
+ mathname="curlyvee",
+ unicodeslot=0x22CE,
},
[0x22CF]={
- ["category"]="sm",
- ["description"]="CURLY LOGICAL AND",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22CF, -- ⋏
+ category="sm",
+ description="CURLY LOGICAL AND",
+ direction="on",
+ linebreak="al",
+ mathclass="binary",
+ mathname="curlywedge",
+ unicodeslot=0x22CF,
},
[0x22D0]={
- ["category"]="sm",
- ["description"]="DOUBLE SUBSET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22D0, -- ⋐
+ category="sm",
+ description="DOUBLE SUBSET",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="Subset",
+ mirror=0x22D1,
+ unicodeslot=0x22D0,
},
[0x22D1]={
- ["category"]="sm",
- ["description"]="DOUBLE SUPERSET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22D1, -- ⋑
+ category="sm",
+ description="DOUBLE SUPERSET",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="Supset",
+ mirror=0x22D0,
+ unicodeslot=0x22D1,
},
[0x22D2]={
- ["category"]="sm",
- ["description"]="DOUBLE INTERSECTION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22D2, -- ⋒
+ category="sm",
+ description="DOUBLE INTERSECTION",
+ direction="on",
+ linebreak="al",
+ mathspec={
+ { class="binary", name="Cap" },
+ { class="binary", name="doublecap"},
+ },
+ unicodeslot=0x22D2,
},
[0x22D3]={
- ["category"]="sm",
- ["description"]="DOUBLE UNION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22D3, -- ⋓
+ category="sm",
+ description="DOUBLE UNION",
+ direction="on",
+ linebreak="al",
+ mathspec={
+ { class="binary", name="Cup" },
+ { class="binary", name="doublecup"},
+ },
+ unicodeslot=0x22D3,
},
[0x22D4]={
- ["category"]="sm",
- ["description"]="PITCHFORK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22D4, -- ⋔
+ category="sm",
+ description="PITCHFORK",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="pitchfork",
+ unicodeslot=0x22D4,
},
[0x22D5]={
- ["category"]="sm",
- ["description"]="EQUAL AND PARALLEL TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22D5, -- ⋕
+ category="sm",
+ description="EQUAL AND PARALLEL TO",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x22D5,
},
[0x22D6]={
- ["category"]="sm",
- ["description"]="LESS-THAN WITH DOT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22D6, -- ⋖
+ category="sm",
+ description="LESS-THAN WITH DOT",
+ direction="on",
+ linebreak="al",
+ mathclass="binary",
+ mathname="lessdot",
+ mirror=0x22D7,
+ unicodeslot=0x22D6,
},
[0x22D7]={
- ["category"]="sm",
- ["description"]="GREATER-THAN WITH DOT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22D7, -- ⋗
+ category="sm",
+ description="GREATER-THAN WITH DOT",
+ direction="on",
+ linebreak="al",
+ mathclass="binary",
+ mathname="gtrdot",
+ mirror=0x22D6,
+ unicodeslot=0x22D7,
},
[0x22D8]={
- ["category"]="sm",
- ["description"]="VERY MUCH LESS-THAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22D8, -- ⋘
+ category="sm",
+ description="VERY MUCH LESS-THAN",
+ direction="on",
+ linebreak="al",
+ mathspec={
+ { class="relation", name="lll"},
+ { class="relation", name="llless"},
+ },
+ mirror=0x22D9,
+ unicodeslot=0x22D8,
},
[0x22D9]={
- ["category"]="sm",
- ["description"]="VERY MUCH GREATER-THAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22D9, -- ⋙
+ category="sm",
+ description="VERY MUCH GREATER-THAN",
+ direction="on",
+ linebreak="al",
+ mathspec={
+ { class="relation", name="ggg"},
+ { class="relation", name="gggtr"},
+ },
+ mirror=0x22D8,
+ unicodeslot=0x22D9,
},
[0x22DA]={
- ["category"]="sm",
- ["description"]="LESS-THAN EQUAL TO OR GREATER-THAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22DA, -- ⋚
+ category="sm",
+ description="LESS-THAN EQUAL TO OR GREATER-THAN",
+ direction="on",
+ linebreak="al",
+ mirror=0x22DB,
+ mathclass="relation",
+ mathname="lesseqgtr",
+ unicodeslot=0x22DA,
},
[0x22DB]={
- ["category"]="sm",
- ["description"]="GREATER-THAN EQUAL TO OR LESS-THAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22DB, -- ⋛
+ category="sm",
+ description="GREATER-THAN EQUAL TO OR LESS-THAN",
+ direction="on",
+ linebreak="al",
+ mirror=0x22DA,
+ mathclass="relation",
+ mathname="gtreqless",
+ unicodeslot=0x22DB,
},
[0x22DC]={
- ["category"]="sm",
- ["description"]="EQUAL TO OR LESS-THAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22DC, -- ⋜
+ category="sm",
+ description="EQUAL TO OR LESS-THAN",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="eqless",
+ mirror=0x22DD,
+ unicodeslot=0x22DC,
},
[0x22DD]={
- ["category"]="sm",
- ["description"]="EQUAL TO OR GREATER-THAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22DD, -- ⋝
+ category="sm",
+ description="EQUAL TO OR GREATER-THAN",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="eqgtr",
+ mirror=0x22DC,
+ unicodeslot=0x22DD,
},
[0x22DE]={
- ["category"]="sm",
- ["description"]="EQUAL TO OR PRECEDES",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22DE, -- ⋞
+ category="sm",
+ description="EQUAL TO OR PRECEDES",
+ direction="on",
+ linebreak="al",
+ mirror=0x22DF,
+ mathclass="relation",
+ mathname="curlyeqprec",
+ unicodeslot=0x22DE,
},
[0x22DF]={
- ["category"]="sm",
- ["description"]="EQUAL TO OR SUCCEEDS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22DF, -- ⋟
+ category="sm",
+ description="EQUAL TO OR SUCCEEDS",
+ direction="on",
+ linebreak="al",
+ mirror=0x22DE,
+ mathclass="relation",
+ mathname="curlyeqsucc",
+ unicodeslot=0x22DF,
},
[0x22E0]={
- ["category"]="sm",
- ["description"]="DOES NOT PRECEDE OR EQUAL",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x227C, 0x0338 },
- ["unicodeslot"]=0x22E0, -- ⋠
+ category="sm",
+ description="DOES NOT PRECEDE OR EQUAL",
+ direction="on",
+ linebreak="al",
+ mirror=0x22E1,
+ mathclass="relation",
+ mathname="npreccurlyeq",
+ specials={ "char", 0x227C, 0x0338 },
+ unicodeslot=0x22E0,
},
[0x22E1]={
- ["category"]="sm",
- ["description"]="DOES NOT SUCCEED OR EQUAL",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x227D, 0x0338 },
- ["unicodeslot"]=0x22E1, -- ⋡
+ category="sm",
+ description="DOES NOT SUCCEED OR EQUAL",
+ direction="on",
+ linebreak="al",
+ mirror=0x22E0,
+ mathclass="relation",
+ mathname="nsucccurlyeq",
+ specials={ "char", 0x227D, 0x0338 },
+ unicodeslot=0x22E1,
},
[0x22E2]={
- ["category"]="sm",
- ["description"]="NOT SQUARE IMAGE OF OR EQUAL TO",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x2291, 0x0338 },
- ["unicodeslot"]=0x22E2, -- ⋢
+ category="sm",
+ description="NOT SQUARE IMAGE OF OR EQUAL TO",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="nsqsubseteq",
+ mirror=0x22E3,
+ specials={ "char", 0x2291, 0x0338 },
+ unicodeslot=0x22E2,
},
[0x22E3]={
- ["category"]="sm",
- ["description"]="NOT SQUARE ORIGINAL OF OR EQUAL TO",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x2292, 0x0338 },
- ["unicodeslot"]=0x22E3, -- ⋣
+ category="sm",
+ description="NOT SQUARE ORIGINAL OF OR EQUAL TO",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="nsqsupseteq",
+ mirror=0x22E2,
+ specials={ "char", 0x2292, 0x0338 },
+ unicodeslot=0x22E3,
},
[0x22E4]={
- ["category"]="sm",
- ["description"]="SQUARE IMAGE OF OR NOT EQUAL TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22E4, -- ⋤
+ category="sm",
+ description="SQUARE IMAGE OF OR NOT EQUAL TO",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="sqsubsetneq",
+ mirror=0x22E5,
+ unicodeslot=0x22E4,
},
[0x22E5]={
- ["category"]="sm",
- ["description"]="SQUARE ORIGINAL OF OR NOT EQUAL TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22E5, -- ⋥
+ category="sm",
+ description="SQUARE ORIGINAL OF OR NOT EQUAL TO",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="sqsupsetneq",
+ mirror=0x22E4,
+ unicodeslot=0x22E5,
},
[0x22E6]={
- ["category"]="sm",
- ["description"]="LESS-THAN BUT NOT EQUIVALENT TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22E6, -- ⋦
+ category="sm",
+ description="LESS-THAN BUT NOT EQUIVALENT TO",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="lnsim",
+ mirror=0x22E7,
+ unicodeslot=0x22E6,
},
[0x22E7]={
- ["category"]="sm",
- ["description"]="GREATER-THAN BUT NOT EQUIVALENT TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22E7, -- ⋧
+ category="sm",
+ description="GREATER-THAN BUT NOT EQUIVALENT TO",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="gnsim",
+ mirror=0x22E6,
+ unicodeslot=0x22E7,
},
[0x22E8]={
- ["category"]="sm",
- ["description"]="PRECEDES BUT NOT EQUIVALENT TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22E8, -- ⋨
+ category="sm",
+ description="PRECEDES BUT NOT EQUIVALENT TO",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="precnsim",
+ mirror=0x22E9,
+ unicodeslot=0x22E8,
},
[0x22E9]={
- ["category"]="sm",
- ["description"]="SUCCEEDS BUT NOT EQUIVALENT TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22E9, -- ⋩
+ category="sm",
+ description="SUCCEEDS BUT NOT EQUIVALENT TO",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="succnsim",
+ mirror=0x22E8,
+ unicodeslot=0x22E9,
},
[0x22EA]={
- ["category"]="sm",
- ["description"]="NOT NORMAL SUBGROUP OF",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x22B2, 0x0338 },
- ["unicodeslot"]=0x22EA, -- ⋪
+ category="sm",
+ description="NOT NORMAL SUBGROUP OF",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="ntriangleright",
+ mirror=0x22EB,
+ specials={ "char", 0x22B2, 0x0338 },
+ unicodeslot=0x22EA,
},
[0x22EB]={
- ["category"]="sm",
- ["description"]="DOES NOT CONTAIN AS NORMAL SUBGROUP",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x22B3, 0x0338 },
- ["unicodeslot"]=0x22EB, -- ⋫
+ category="sm",
+ description="DOES NOT CONTAIN AS NORMAL SUBGROUP",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="ntriangleleft",
+ mirror=0x22EA,
+ specials={ "char", 0x22B3, 0x0338 },
+ unicodeslot=0x22EB,
},
[0x22EC]={
- ["category"]="sm",
- ["description"]="NOT NORMAL SUBGROUP OF OR EQUAL TO",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x22B4, 0x0338 },
- ["unicodeslot"]=0x22EC, -- ⋬
+ category="sm",
+ description="NOT NORMAL SUBGROUP OF OR EQUAL TO",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="ntrianglelefteq",
+ mirror=0x22ED,
+ specials={ "char", 0x22B4, 0x0338 },
+ unicodeslot=0x22EC,
},
[0x22ED]={
- ["category"]="sm",
- ["description"]="DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x22B5, 0x0338 },
- ["unicodeslot"]=0x22ED, -- ⋭
+ category="sm",
+ description="DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="ntrianglerighteq",
+ mirror=0x22EC,
+ specials={ "char", 0x22B5, 0x0338 },
+ unicodeslot=0x22ED,
},
[0x22EE]={
- ["category"]="sm",
- ["description"]="VERTICAL ELLIPSIS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22EE, -- ⋮
+ category="sm",
+ description="VERTICAL ELLIPSIS",
+ direction="on",
+ linebreak="al",
+ mathclass="inner",
+ mathname="vdots",
+ unicodeslot=0x22EE,
},
[0x22EF]={
- ["category"]="sm",
- ["description"]="MIDLINE HORIZONTAL ELLIPSIS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22EF, -- ⋯
+ category="sm",
+ description="MIDLINE HORIZONTAL ELLIPSIS",
+ direction="on",
+ linebreak="al",
+ mathclass="inner",
+ mathname="cdots",
+ unicodeslot=0x22EF,
},
[0x22F0]={
- ["category"]="sm",
- ["description"]="UP RIGHT DIAGONAL ELLIPSIS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22F0, -- ⋰
+ category="sm",
+ description="UP RIGHT DIAGONAL ELLIPSIS",
+ direction="on",
+ linebreak="al",
+ mathclass="inner",
+ mathname="udots",
+ mirror=0x22F1,
+ unicodeslot=0x22F0,
},
[0x22F1]={
- ["category"]="sm",
- ["description"]="DOWN RIGHT DIAGONAL ELLIPSIS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22F1, -- ⋱
+ category="sm",
+ description="DOWN RIGHT DIAGONAL ELLIPSIS",
+ direction="on",
+ linebreak="al",
+ mathclass="inner",
+ mathname="ddots",
+ mirror=0x22F0,
+ unicodeslot=0x22F1,
},
[0x22F2]={
- ["category"]="sm",
- ["description"]="ELEMENT OF WITH LONG HORIZONTAL STROKE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22F2, -- ⋲
+ category="sm",
+ description="ELEMENT OF WITH LONG HORIZONTAL STROKE",
+ direction="on",
+ linebreak="al",
+ mirror=0x22FA,
+ unicodeslot=0x22F2,
},
[0x22F3]={
- ["category"]="sm",
- ["description"]="ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22F3, -- ⋳
+ category="sm",
+ description="ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE",
+ direction="on",
+ linebreak="al",
+ mirror=0x22FB,
+ unicodeslot=0x22F3,
},
[0x22F4]={
- ["category"]="sm",
- ["description"]="SMALL ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22F4, -- ⋴
+ category="sm",
+ description="SMALL ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE",
+ direction="on",
+ linebreak="al",
+ mirror=0x22FC,
+ unicodeslot=0x22F4,
},
[0x22F5]={
- ["category"]="sm",
- ["description"]="ELEMENT OF WITH DOT ABOVE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22F5, -- ⋵
+ category="sm",
+ description="ELEMENT OF WITH DOT ABOVE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x22F5,
},
[0x22F6]={
- ["category"]="sm",
- ["description"]="ELEMENT OF WITH OVERBAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22F6, -- ⋶
+ category="sm",
+ description="ELEMENT OF WITH OVERBAR",
+ direction="on",
+ linebreak="al",
+ mirror=0x22FD,
+ unicodeslot=0x22F6,
},
[0x22F7]={
- ["category"]="sm",
- ["description"]="SMALL ELEMENT OF WITH OVERBAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22F7, -- ⋷
+ category="sm",
+ description="SMALL ELEMENT OF WITH OVERBAR",
+ direction="on",
+ linebreak="al",
+ mirror=0x22FE,
+ unicodeslot=0x22F7,
},
[0x22F8]={
- ["category"]="sm",
- ["description"]="ELEMENT OF WITH UNDERBAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22F8, -- ⋸
+ category="sm",
+ description="ELEMENT OF WITH UNDERBAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x22F8,
},
[0x22F9]={
- ["category"]="sm",
- ["description"]="ELEMENT OF WITH TWO HORIZONTAL STROKES",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22F9, -- ⋹
+ category="sm",
+ description="ELEMENT OF WITH TWO HORIZONTAL STROKES",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x22F9,
},
[0x22FA]={
- ["category"]="sm",
- ["description"]="CONTAINS WITH LONG HORIZONTAL STROKE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22FA, -- ⋺
+ category="sm",
+ description="CONTAINS WITH LONG HORIZONTAL STROKE",
+ direction="on",
+ linebreak="al",
+ mirror=0x22F2,
+ unicodeslot=0x22FA,
},
[0x22FB]={
- ["category"]="sm",
- ["description"]="CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22FB, -- ⋻
+ category="sm",
+ description="CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE",
+ direction="on",
+ linebreak="al",
+ mirror=0x22F3,
+ unicodeslot=0x22FB,
},
[0x22FC]={
- ["category"]="sm",
- ["description"]="SMALL CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22FC, -- ⋼
+ category="sm",
+ description="SMALL CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE",
+ direction="on",
+ linebreak="al",
+ mirror=0x22F4,
+ unicodeslot=0x22FC,
},
[0x22FD]={
- ["category"]="sm",
- ["description"]="CONTAINS WITH OVERBAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22FD, -- ⋽
+ category="sm",
+ description="CONTAINS WITH OVERBAR",
+ direction="on",
+ linebreak="al",
+ mirror=0x22F6,
+ unicodeslot=0x22FD,
},
[0x22FE]={
- ["category"]="sm",
- ["description"]="SMALL CONTAINS WITH OVERBAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22FE, -- ⋾
+ category="sm",
+ description="SMALL CONTAINS WITH OVERBAR",
+ direction="on",
+ linebreak="al",
+ mirror=0x22F7,
+ unicodeslot=0x22FE,
},
[0x22FF]={
- ["category"]="sm",
- ["description"]="Z NOTATION BAG MEMBERSHIP",
- ["linebreak"]="al",
- ["unicodeslot"]=0x22FF, -- ⋿
+ category="sm",
+ description="Z NOTATION BAG MEMBERSHIP",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x22FF,
},
[0x2300]={
- ["category"]="so",
- ["description"]="DIAMETER SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2300, -- ⌀
+ category="so",
+ description="DIAMETER SIGN",
+ direction="on",
+ linebreak="al",
+ mathclass="ord",
+ mathname="varnothing",
+ unicodeslot=0x2300,
},
[0x2301]={
- ["category"]="so",
- ["description"]="ELECTRIC ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2301, -- ⌁
+ category="so",
+ description="ELECTRIC ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2301,
},
[0x2302]={
- ["adobename"]="house",
- ["category"]="so",
- ["description"]="HOUSE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2302, -- ⌂
+ adobename="house",
+ category="so",
+ description="HOUSE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2302,
},
[0x2303]={
- ["category"]="so",
- ["description"]="UP ARROWHEAD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2303, -- ⌃
+ category="so",
+ description="UP ARROWHEAD",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2303,
},
[0x2304]={
- ["category"]="so",
- ["description"]="DOWN ARROWHEAD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2304, -- ⌄
+ category="so",
+ description="DOWN ARROWHEAD",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2304,
},
[0x2305]={
- ["category"]="so",
- ["description"]="PROJECTIVE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2305, -- ⌅
+ category="so",
+ description="PROJECTIVE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2305,
},
[0x2306]={
- ["category"]="so",
- ["description"]="PERSPECTIVE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2306, -- ⌆
+ category="so",
+ description="PERSPECTIVE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2306,
},
[0x2307]={
- ["category"]="so",
- ["description"]="WAVY LINE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2307, -- ⌇
+ category="so",
+ description="WAVY LINE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2307,
},
[0x2308]={
- ["category"]="sm",
- ["description"]="LEFT CEILING",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2308, -- ⌈
+ category="sm",
+ description="LEFT CEILING",
+ direction="on",
+ linebreak="al",
+ mathclass="open",
+ mathname="lceil",
+ mirror=0x2309,
+ unicodeslot=0x2308,
},
[0x2309]={
- ["category"]="sm",
- ["description"]="RIGHT CEILING",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2309, -- ⌉
+ category="sm",
+ description="RIGHT CEILING",
+ direction="on",
+ linebreak="al",
+ mathclass="close",
+ mathname="rceil",
+ mirror=0x2308,
+ unicodeslot=0x2309,
},
[0x230A]={
- ["category"]="sm",
- ["description"]="LEFT FLOOR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x230A, -- ⌊
+ category="sm",
+ description="LEFT FLOOR",
+ direction="on",
+ linebreak="al",
+ mathclass="open",
+ mathname="lfloor",
+ mirror=0x230B,
+ unicodeslot=0x230A,
},
[0x230B]={
- ["category"]="sm",
- ["description"]="RIGHT FLOOR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x230B, -- ⌋
+ category="sm",
+ description="RIGHT FLOOR",
+ direction="on",
+ linebreak="al",
+ mathclass="close",
+ mathname="rfloor",
+ mirror=0x230A,
+ unicodeslot=0x230B,
},
[0x230C]={
- ["category"]="so",
- ["description"]="BOTTOM RIGHT CROP",
- ["linebreak"]="al",
- ["unicodeslot"]=0x230C, -- ⌌
+ category="so",
+ description="BOTTOM RIGHT CROP",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x230C,
},
[0x230D]={
- ["category"]="so",
- ["description"]="BOTTOM LEFT CROP",
- ["linebreak"]="al",
- ["unicodeslot"]=0x230D, -- ⌍
+ category="so",
+ description="BOTTOM LEFT CROP",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x230D,
},
[0x230E]={
- ["category"]="so",
- ["description"]="TOP RIGHT CROP",
- ["linebreak"]="al",
- ["unicodeslot"]=0x230E, -- ⌎
+ category="so",
+ description="TOP RIGHT CROP",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x230E,
},
[0x230F]={
- ["category"]="so",
- ["description"]="TOP LEFT CROP",
- ["linebreak"]="al",
- ["unicodeslot"]=0x230F, -- ⌏
+ category="so",
+ description="TOP LEFT CROP",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x230F,
},
[0x2310]={
- ["adobename"]="revlogicalnot",
- ["category"]="so",
- ["description"]="REVERSED NOT SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2310, -- ⌐
+ adobename="revlogicalnot",
+ category="so",
+ description="REVERSED NOT SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2310,
},
[0x2311]={
- ["category"]="so",
- ["description"]="SQUARE LOZENGE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2311, -- ⌑
+ category="so",
+ description="SQUARE LOZENGE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2311,
},
[0x2312]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="ARC",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2312, -- ⌒
+ category="so",
+ cjkwd="a",
+ description="ARC",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2312,
},
[0x2313]={
- ["category"]="so",
- ["description"]="SEGMENT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2313, -- ⌓
+ category="so",
+ description="SEGMENT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2313,
},
[0x2314]={
- ["category"]="so",
- ["description"]="SECTOR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2314, -- ⌔
+ category="so",
+ description="SECTOR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2314,
},
[0x2315]={
- ["category"]="so",
- ["description"]="TELEPHONE RECORDER",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2315, -- ⌕
+ category="so",
+ description="TELEPHONE RECORDER",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2315,
},
[0x2316]={
- ["category"]="so",
- ["description"]="POSITION INDICATOR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2316, -- ⌖
+ category="so",
+ description="POSITION INDICATOR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2316,
},
[0x2317]={
- ["category"]="so",
- ["description"]="VIEWDATA SQUARE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2317, -- ⌗
+ category="so",
+ description="VIEWDATA SQUARE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2317,
},
[0x2318]={
- ["category"]="so",
- ["description"]="PLACE OF INTEREST SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2318, -- ⌘
+ category="so",
+ description="PLACE OF INTEREST SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2318,
},
[0x2319]={
- ["category"]="so",
- ["description"]="TURNED NOT SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2319, -- ⌙
+ category="so",
+ description="TURNED NOT SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2319,
},
[0x231A]={
- ["category"]="so",
- ["description"]="WATCH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x231A, -- ⌚
+ category="so",
+ description="WATCH",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x231A,
},
[0x231B]={
- ["category"]="so",
- ["description"]="HOURGLASS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x231B, -- ⌛
+ category="so",
+ description="HOURGLASS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x231B,
},
[0x231C]={
- ["category"]="so",
- ["description"]="TOP LEFT CORNER",
- ["linebreak"]="al",
- ["unicodeslot"]=0x231C, -- ⌜
+ category="so",
+ description="TOP LEFT CORNER",
+ direction="on",
+ linebreak="al",
+ mathclass="open",
+ mathname="ulcorner",
+ unicodeslot=0x231C,
},
[0x231D]={
- ["category"]="so",
- ["description"]="TOP RIGHT CORNER",
- ["linebreak"]="al",
- ["unicodeslot"]=0x231D, -- ⌝
+ category="so",
+ description="TOP RIGHT CORNER",
+ direction="on",
+ linebreak="al",
+ mathclass="close",
+ mathname="urcorner",
+ unicodeslot=0x231D,
},
[0x231E]={
- ["category"]="so",
- ["description"]="BOTTOM LEFT CORNER",
- ["linebreak"]="al",
- ["unicodeslot"]=0x231E, -- ⌞
+ category="so",
+ description="BOTTOM LEFT CORNER",
+ direction="on",
+ linebreak="al",
+ mathclass="open",
+ mathname="llcorner",
+ unicodeslot=0x231E,
},
[0x231F]={
- ["category"]="so",
- ["description"]="BOTTOM RIGHT CORNER",
- ["linebreak"]="al",
- ["unicodeslot"]=0x231F, -- ⌟
+ category="so",
+ description="BOTTOM RIGHT CORNER",
+ direction="on",
+ linebreak="al",
+ mathclass="close",
+ mathname="lrcorner",
+ unicodeslot=0x231F,
},
[0x2320]={
- ["adobename"]="integraltp",
- ["category"]="sm",
- ["description"]="TOP HALF INTEGRAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2320, -- ⌠
+ adobename="integraltp",
+ category="sm",
+ description="TOP HALF INTEGRAL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2320,
},
[0x2321]={
- ["adobename"]="integralbt",
- ["category"]="sm",
- ["description"]="BOTTOM HALF INTEGRAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2321, -- ⌡
+ adobename="integralbt",
+ category="sm",
+ description="BOTTOM HALF INTEGRAL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2321,
},
[0x2322]={
- ["category"]="so",
- ["description"]="FROWN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2322, -- ⌢
+ category="so",
+ description="FROWN",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="frown",
+ unicodeslot=0x2322,
},
[0x2323]={
- ["category"]="so",
- ["description"]="SMILE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2323, -- ⌣
+ category="so",
+ description="SMILE",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="smile",
+ unicodeslot=0x2323,
},
[0x2324]={
- ["category"]="so",
- ["description"]="UP ARROWHEAD BETWEEN TWO HORIZONTAL BARS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2324, -- ⌤
+ category="so",
+ description="UP ARROWHEAD BETWEEN TWO HORIZONTAL BARS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2324,
},
[0x2325]={
- ["category"]="so",
- ["description"]="OPTION KEY",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2325, -- ⌥
+ category="so",
+ description="OPTION KEY",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2325,
},
[0x2326]={
- ["category"]="so",
- ["description"]="ERASE TO THE RIGHT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2326, -- ⌦
+ category="so",
+ description="ERASE TO THE RIGHT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2326,
},
[0x2327]={
- ["category"]="so",
- ["description"]="X IN A RECTANGLE BOX",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2327, -- ⌧
+ category="so",
+ description="X IN A RECTANGLE BOX",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2327,
},
[0x2328]={
- ["category"]="so",
- ["description"]="KEYBOARD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2328, -- ⌨
+ category="so",
+ description="KEYBOARD",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2328,
},
[0x2329]={
- ["adobename"]="angleleft",
- ["category"]="ps",
- ["cjkwd"]="w",
- ["description"]="LEFT-POINTING ANGLE BRACKET",
- ["linebreak"]="op",
- ["specials"]={ "char", 0x3008 },
- ["unicodeslot"]=0x2329, -- 〈
+ adobename="angleleft",
+ category="ps",
+ cjkwd="w",
+ description="LEFT-POINTING ANGLE BRACKET",
+ direction="on",
+ linebreak="op",
+ mirror=0x232A,
+ specials={ "char", 0x3008 },
+ unicodeslot=0x2329,
},
[0x232A]={
- ["adobename"]="angleright",
- ["category"]="pe",
- ["cjkwd"]="w",
- ["description"]="RIGHT-POINTING ANGLE BRACKET",
- ["linebreak"]="cl",
- ["specials"]={ "char", 0x3009 },
- ["unicodeslot"]=0x232A, -- 〉
+ adobename="angleright",
+ category="pe",
+ cjkwd="w",
+ description="RIGHT-POINTING ANGLE BRACKET",
+ direction="on",
+ linebreak="cl",
+ mirror=0x2329,
+ specials={ "char", 0x3009 },
+ unicodeslot=0x232A,
},
[0x232B]={
- ["category"]="so",
- ["description"]="ERASE TO THE LEFT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x232B, -- ⌫
+ category="so",
+ description="ERASE TO THE LEFT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x232B,
},
[0x232C]={
- ["category"]="so",
- ["description"]="BENZENE RING",
- ["linebreak"]="al",
- ["unicodeslot"]=0x232C, -- ⌬
+ category="so",
+ description="BENZENE RING",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x232C,
},
[0x232D]={
- ["category"]="so",
- ["description"]="CYLINDRICITY",
- ["linebreak"]="al",
- ["unicodeslot"]=0x232D, -- ⌭
+ category="so",
+ description="CYLINDRICITY",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x232D,
},
[0x232E]={
- ["category"]="so",
- ["description"]="ALL AROUND-PROFILE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x232E, -- ⌮
+ category="so",
+ description="ALL AROUND-PROFILE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x232E,
},
[0x232F]={
- ["category"]="so",
- ["description"]="SYMMETRY",
- ["linebreak"]="al",
- ["unicodeslot"]=0x232F, -- ⌯
+ category="so",
+ description="SYMMETRY",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x232F,
},
[0x2330]={
- ["category"]="so",
- ["description"]="TOTAL RUNOUT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2330, -- ⌰
+ category="so",
+ description="TOTAL RUNOUT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2330,
},
[0x2331]={
- ["category"]="so",
- ["description"]="DIMENSION ORIGIN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2331, -- ⌱
+ category="so",
+ description="DIMENSION ORIGIN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2331,
},
[0x2332]={
- ["category"]="so",
- ["description"]="CONICAL TAPER",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2332, -- ⌲
+ category="so",
+ description="CONICAL TAPER",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2332,
},
[0x2333]={
- ["category"]="so",
- ["description"]="SLOPE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2333, -- ⌳
+ category="so",
+ description="SLOPE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2333,
},
[0x2334]={
- ["category"]="so",
- ["description"]="COUNTERBORE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2334, -- ⌴
+ category="so",
+ description="COUNTERBORE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2334,
},
[0x2335]={
- ["category"]="so",
- ["description"]="COUNTERSINK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2335, -- ⌵
+ category="so",
+ description="COUNTERSINK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2335,
},
[0x2336]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL I-BEAM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2336, -- ⌶
+ category="so",
+ description="APL FUNCTIONAL SYMBOL I-BEAM",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2336,
},
[0x2337]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL SQUISH QUAD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2337, -- ⌷
+ category="so",
+ description="APL FUNCTIONAL SYMBOL SQUISH QUAD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2337,
},
[0x2338]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL QUAD EQUAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2338, -- ⌸
+ category="so",
+ description="APL FUNCTIONAL SYMBOL QUAD EQUAL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2338,
},
[0x2339]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL QUAD DIVIDE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2339, -- ⌹
+ category="so",
+ description="APL FUNCTIONAL SYMBOL QUAD DIVIDE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2339,
},
[0x233A]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL QUAD DIAMOND",
- ["linebreak"]="al",
- ["unicodeslot"]=0x233A, -- ⌺
+ category="so",
+ description="APL FUNCTIONAL SYMBOL QUAD DIAMOND",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x233A,
},
[0x233B]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL QUAD JOT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x233B, -- ⌻
+ category="so",
+ description="APL FUNCTIONAL SYMBOL QUAD JOT",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x233B,
},
[0x233C]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL QUAD CIRCLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x233C, -- ⌼
+ category="so",
+ description="APL FUNCTIONAL SYMBOL QUAD CIRCLE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x233C,
},
[0x233D]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL CIRCLE STILE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x233D, -- ⌽
+ category="so",
+ description="APL FUNCTIONAL SYMBOL CIRCLE STILE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x233D,
},
[0x233E]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL CIRCLE JOT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x233E, -- ⌾
+ category="so",
+ description="APL FUNCTIONAL SYMBOL CIRCLE JOT",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x233E,
},
[0x233F]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL SLASH BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x233F, -- ⌿
+ category="so",
+ description="APL FUNCTIONAL SYMBOL SLASH BAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x233F,
},
[0x2340]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL BACKSLASH BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2340, -- ⍀
+ category="so",
+ description="APL FUNCTIONAL SYMBOL BACKSLASH BAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2340,
},
[0x2341]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL QUAD SLASH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2341, -- ⍁
+ category="so",
+ description="APL FUNCTIONAL SYMBOL QUAD SLASH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2341,
},
[0x2342]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL QUAD BACKSLASH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2342, -- ⍂
+ category="so",
+ description="APL FUNCTIONAL SYMBOL QUAD BACKSLASH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2342,
},
[0x2343]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL QUAD LESS-THAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2343, -- ⍃
+ category="so",
+ description="APL FUNCTIONAL SYMBOL QUAD LESS-THAN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2343,
},
[0x2344]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL QUAD GREATER-THAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2344, -- ⍄
+ category="so",
+ description="APL FUNCTIONAL SYMBOL QUAD GREATER-THAN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2344,
},
[0x2345]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL LEFTWARDS VANE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2345, -- ⍅
+ category="so",
+ description="APL FUNCTIONAL SYMBOL LEFTWARDS VANE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2345,
},
[0x2346]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL RIGHTWARDS VANE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2346, -- ⍆
+ category="so",
+ description="APL FUNCTIONAL SYMBOL RIGHTWARDS VANE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2346,
},
[0x2347]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL QUAD LEFTWARDS ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2347, -- ⍇
+ category="so",
+ description="APL FUNCTIONAL SYMBOL QUAD LEFTWARDS ARROW",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2347,
},
[0x2348]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL QUAD RIGHTWARDS ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2348, -- ⍈
+ category="so",
+ description="APL FUNCTIONAL SYMBOL QUAD RIGHTWARDS ARROW",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2348,
},
[0x2349]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL CIRCLE BACKSLASH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2349, -- ⍉
+ category="so",
+ description="APL FUNCTIONAL SYMBOL CIRCLE BACKSLASH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2349,
},
[0x234A]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL DOWN TACK UNDERBAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x234A, -- ⍊
+ category="so",
+ description="APL FUNCTIONAL SYMBOL DOWN TACK UNDERBAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x234A,
},
[0x234B]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL DELTA STILE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x234B, -- ⍋
+ category="so",
+ description="APL FUNCTIONAL SYMBOL DELTA STILE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x234B,
},
[0x234C]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL QUAD DOWN CARET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x234C, -- ⍌
+ category="so",
+ description="APL FUNCTIONAL SYMBOL QUAD DOWN CARET",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x234C,
},
[0x234D]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL QUAD DELTA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x234D, -- ⍍
+ category="so",
+ description="APL FUNCTIONAL SYMBOL QUAD DELTA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x234D,
},
[0x234E]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL DOWN TACK JOT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x234E, -- ⍎
+ category="so",
+ description="APL FUNCTIONAL SYMBOL DOWN TACK JOT",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x234E,
},
[0x234F]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL UPWARDS VANE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x234F, -- ⍏
+ category="so",
+ description="APL FUNCTIONAL SYMBOL UPWARDS VANE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x234F,
},
[0x2350]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL QUAD UPWARDS ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2350, -- ⍐
+ category="so",
+ description="APL FUNCTIONAL SYMBOL QUAD UPWARDS ARROW",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2350,
},
[0x2351]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL UP TACK OVERBAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2351, -- ⍑
+ category="so",
+ description="APL FUNCTIONAL SYMBOL UP TACK OVERBAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2351,
},
[0x2352]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL DEL STILE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2352, -- ⍒
+ category="so",
+ description="APL FUNCTIONAL SYMBOL DEL STILE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2352,
},
[0x2353]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL QUAD UP CARET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2353, -- ⍓
+ category="so",
+ description="APL FUNCTIONAL SYMBOL QUAD UP CARET",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2353,
},
[0x2354]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL QUAD DEL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2354, -- ⍔
+ category="so",
+ description="APL FUNCTIONAL SYMBOL QUAD DEL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2354,
},
[0x2355]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL UP TACK JOT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2355, -- ⍕
+ category="so",
+ description="APL FUNCTIONAL SYMBOL UP TACK JOT",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2355,
},
[0x2356]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL DOWNWARDS VANE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2356, -- ⍖
+ category="so",
+ description="APL FUNCTIONAL SYMBOL DOWNWARDS VANE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2356,
},
[0x2357]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL QUAD DOWNWARDS ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2357, -- ⍗
+ category="so",
+ description="APL FUNCTIONAL SYMBOL QUAD DOWNWARDS ARROW",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2357,
},
[0x2358]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL QUOTE UNDERBAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2358, -- ⍘
+ category="so",
+ description="APL FUNCTIONAL SYMBOL QUOTE UNDERBAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2358,
},
[0x2359]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL DELTA UNDERBAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2359, -- ⍙
+ category="so",
+ description="APL FUNCTIONAL SYMBOL DELTA UNDERBAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2359,
},
[0x235A]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL DIAMOND UNDERBAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x235A, -- ⍚
+ category="so",
+ description="APL FUNCTIONAL SYMBOL DIAMOND UNDERBAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x235A,
},
[0x235B]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL JOT UNDERBAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x235B, -- ⍛
+ category="so",
+ description="APL FUNCTIONAL SYMBOL JOT UNDERBAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x235B,
},
[0x235C]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL CIRCLE UNDERBAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x235C, -- ⍜
+ category="so",
+ description="APL FUNCTIONAL SYMBOL CIRCLE UNDERBAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x235C,
},
[0x235D]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL UP SHOE JOT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x235D, -- ⍝
+ category="so",
+ description="APL FUNCTIONAL SYMBOL UP SHOE JOT",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x235D,
},
[0x235E]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL QUOTE QUAD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x235E, -- ⍞
+ category="so",
+ description="APL FUNCTIONAL SYMBOL QUOTE QUAD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x235E,
},
[0x235F]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL CIRCLE STAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x235F, -- ⍟
+ category="so",
+ description="APL FUNCTIONAL SYMBOL CIRCLE STAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x235F,
},
[0x2360]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL QUAD COLON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2360, -- ⍠
+ category="so",
+ description="APL FUNCTIONAL SYMBOL QUAD COLON",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2360,
},
[0x2361]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL UP TACK DIAERESIS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2361, -- ⍡
+ category="so",
+ description="APL FUNCTIONAL SYMBOL UP TACK DIAERESIS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2361,
},
[0x2362]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL DEL DIAERESIS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2362, -- ⍢
+ category="so",
+ description="APL FUNCTIONAL SYMBOL DEL DIAERESIS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2362,
},
[0x2363]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL STAR DIAERESIS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2363, -- ⍣
+ category="so",
+ description="APL FUNCTIONAL SYMBOL STAR DIAERESIS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2363,
},
[0x2364]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL JOT DIAERESIS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2364, -- ⍤
+ category="so",
+ description="APL FUNCTIONAL SYMBOL JOT DIAERESIS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2364,
},
[0x2365]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL CIRCLE DIAERESIS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2365, -- ⍥
+ category="so",
+ description="APL FUNCTIONAL SYMBOL CIRCLE DIAERESIS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2365,
},
[0x2366]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL DOWN SHOE STILE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2366, -- ⍦
+ category="so",
+ description="APL FUNCTIONAL SYMBOL DOWN SHOE STILE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2366,
},
[0x2367]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL LEFT SHOE STILE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2367, -- ⍧
+ category="so",
+ description="APL FUNCTIONAL SYMBOL LEFT SHOE STILE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2367,
},
[0x2368]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL TILDE DIAERESIS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2368, -- ⍨
+ category="so",
+ description="APL FUNCTIONAL SYMBOL TILDE DIAERESIS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2368,
},
[0x2369]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL GREATER-THAN DIAERESIS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2369, -- ⍩
+ category="so",
+ description="APL FUNCTIONAL SYMBOL GREATER-THAN DIAERESIS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2369,
},
[0x236A]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL COMMA BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x236A, -- ⍪
+ category="so",
+ description="APL FUNCTIONAL SYMBOL COMMA BAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x236A,
},
[0x236B]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL DEL TILDE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x236B, -- ⍫
+ category="so",
+ description="APL FUNCTIONAL SYMBOL DEL TILDE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x236B,
},
[0x236C]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL ZILDE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x236C, -- ⍬
+ category="so",
+ description="APL FUNCTIONAL SYMBOL ZILDE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x236C,
},
[0x236D]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL STILE TILDE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x236D, -- ⍭
+ category="so",
+ description="APL FUNCTIONAL SYMBOL STILE TILDE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x236D,
},
[0x236E]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL SEMICOLON UNDERBAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x236E, -- ⍮
+ category="so",
+ description="APL FUNCTIONAL SYMBOL SEMICOLON UNDERBAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x236E,
},
[0x236F]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL QUAD NOT EQUAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x236F, -- ⍯
+ category="so",
+ description="APL FUNCTIONAL SYMBOL QUAD NOT EQUAL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x236F,
},
[0x2370]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL QUAD QUESTION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2370, -- ⍰
+ category="so",
+ description="APL FUNCTIONAL SYMBOL QUAD QUESTION",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2370,
},
[0x2371]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL DOWN CARET TILDE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2371, -- ⍱
+ category="so",
+ description="APL FUNCTIONAL SYMBOL DOWN CARET TILDE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2371,
},
[0x2372]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL UP CARET TILDE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2372, -- ⍲
+ category="so",
+ description="APL FUNCTIONAL SYMBOL UP CARET TILDE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2372,
},
[0x2373]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL IOTA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2373, -- ⍳
+ category="so",
+ description="APL FUNCTIONAL SYMBOL IOTA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2373,
},
[0x2374]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL RHO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2374, -- ⍴
+ category="so",
+ description="APL FUNCTIONAL SYMBOL RHO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2374,
},
[0x2375]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL OMEGA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2375, -- ⍵
+ category="so",
+ description="APL FUNCTIONAL SYMBOL OMEGA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2375,
},
[0x2376]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL ALPHA UNDERBAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2376, -- ⍶
+ category="so",
+ description="APL FUNCTIONAL SYMBOL ALPHA UNDERBAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2376,
},
[0x2377]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL EPSILON UNDERBAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2377, -- ⍷
+ category="so",
+ description="APL FUNCTIONAL SYMBOL EPSILON UNDERBAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2377,
},
[0x2378]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL IOTA UNDERBAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2378, -- ⍸
+ category="so",
+ description="APL FUNCTIONAL SYMBOL IOTA UNDERBAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2378,
},
[0x2379]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL OMEGA UNDERBAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2379, -- ⍹
+ category="so",
+ description="APL FUNCTIONAL SYMBOL OMEGA UNDERBAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2379,
},
[0x237A]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL ALPHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x237A, -- ⍺
+ category="so",
+ description="APL FUNCTIONAL SYMBOL ALPHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x237A,
},
[0x237B]={
- ["category"]="so",
- ["description"]="NOT CHECK MARK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x237B, -- ⍻
+ category="so",
+ description="NOT CHECK MARK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x237B,
},
[0x237C]={
- ["category"]="sm",
- ["description"]="RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x237C, -- ⍼
+ category="sm",
+ description="RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x237C,
},
[0x237D]={
- ["category"]="so",
- ["description"]="SHOULDERED OPEN BOX",
- ["linebreak"]="al",
- ["unicodeslot"]=0x237D, -- ⍽
+ category="so",
+ description="SHOULDERED OPEN BOX",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x237D,
},
[0x237E]={
- ["category"]="so",
- ["description"]="BELL SYMBOL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x237E, -- ⍾
+ category="so",
+ description="BELL SYMBOL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x237E,
},
[0x237F]={
- ["category"]="so",
- ["description"]="VERTICAL LINE WITH MIDDLE DOT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x237F, -- ⍿
+ category="so",
+ description="VERTICAL LINE WITH MIDDLE DOT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x237F,
},
[0x2380]={
- ["category"]="so",
- ["description"]="INSERTION SYMBOL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2380, -- ⎀
+ category="so",
+ description="INSERTION SYMBOL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2380,
},
[0x2381]={
- ["category"]="so",
- ["description"]="CONTINUOUS UNDERLINE SYMBOL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2381, -- ⎁
+ category="so",
+ description="CONTINUOUS UNDERLINE SYMBOL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2381,
},
[0x2382]={
- ["category"]="so",
- ["description"]="DISCONTINUOUS UNDERLINE SYMBOL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2382, -- ⎂
+ category="so",
+ description="DISCONTINUOUS UNDERLINE SYMBOL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2382,
},
[0x2383]={
- ["category"]="so",
- ["description"]="EMPHASIS SYMBOL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2383, -- ⎃
+ category="so",
+ description="EMPHASIS SYMBOL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2383,
},
[0x2384]={
- ["category"]="so",
- ["description"]="COMPOSITION SYMBOL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2384, -- ⎄
+ category="so",
+ description="COMPOSITION SYMBOL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2384,
},
[0x2385]={
- ["category"]="so",
- ["description"]="WHITE SQUARE WITH CENTRE VERTICAL LINE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2385, -- ⎅
+ category="so",
+ description="WHITE SQUARE WITH CENTRE VERTICAL LINE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2385,
},
[0x2386]={
- ["category"]="so",
- ["description"]="ENTER SYMBOL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2386, -- ⎆
+ category="so",
+ description="ENTER SYMBOL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2386,
},
[0x2387]={
- ["category"]="so",
- ["description"]="ALTERNATIVE KEY SYMBOL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2387, -- ⎇
+ category="so",
+ description="ALTERNATIVE KEY SYMBOL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2387,
},
[0x2388]={
- ["category"]="so",
- ["description"]="HELM SYMBOL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2388, -- ⎈
+ category="so",
+ description="HELM SYMBOL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2388,
},
[0x2389]={
- ["category"]="so",
- ["description"]="CIRCLED HORIZONTAL BAR WITH NOTCH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2389, -- ⎉
+ category="so",
+ description="CIRCLED HORIZONTAL BAR WITH NOTCH",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2389,
},
[0x238A]={
- ["category"]="so",
- ["description"]="CIRCLED TRIANGLE DOWN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x238A, -- ⎊
+ category="so",
+ description="CIRCLED TRIANGLE DOWN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x238A,
},
[0x238B]={
- ["category"]="so",
- ["description"]="BROKEN CIRCLE WITH NORTHWEST ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x238B, -- ⎋
+ category="so",
+ description="BROKEN CIRCLE WITH NORTHWEST ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x238B,
},
[0x238C]={
- ["category"]="so",
- ["description"]="UNDO SYMBOL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x238C, -- ⎌
+ category="so",
+ description="UNDO SYMBOL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x238C,
},
[0x238D]={
- ["category"]="so",
- ["description"]="MONOSTABLE SYMBOL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x238D, -- ⎍
+ category="so",
+ description="MONOSTABLE SYMBOL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x238D,
},
[0x238E]={
- ["category"]="so",
- ["description"]="HYSTERESIS SYMBOL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x238E, -- ⎎
+ category="so",
+ description="HYSTERESIS SYMBOL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x238E,
},
[0x238F]={
- ["category"]="so",
- ["description"]="OPEN-CIRCUIT-OUTPUT H-TYPE SYMBOL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x238F, -- ⎏
+ category="so",
+ description="OPEN-CIRCUIT-OUTPUT H-TYPE SYMBOL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x238F,
},
[0x2390]={
- ["category"]="so",
- ["description"]="OPEN-CIRCUIT-OUTPUT L-TYPE SYMBOL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2390, -- ⎐
+ category="so",
+ description="OPEN-CIRCUIT-OUTPUT L-TYPE SYMBOL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2390,
},
[0x2391]={
- ["category"]="so",
- ["description"]="PASSIVE-PULL-DOWN-OUTPUT SYMBOL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2391, -- ⎑
+ category="so",
+ description="PASSIVE-PULL-DOWN-OUTPUT SYMBOL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2391,
},
[0x2392]={
- ["category"]="so",
- ["description"]="PASSIVE-PULL-UP-OUTPUT SYMBOL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2392, -- ⎒
+ category="so",
+ description="PASSIVE-PULL-UP-OUTPUT SYMBOL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2392,
},
[0x2393]={
- ["category"]="so",
- ["description"]="DIRECT CURRENT SYMBOL FORM TWO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2393, -- ⎓
+ category="so",
+ description="DIRECT CURRENT SYMBOL FORM TWO",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2393,
},
[0x2394]={
- ["category"]="so",
- ["description"]="SOFTWARE-FUNCTION SYMBOL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2394, -- ⎔
+ category="so",
+ description="SOFTWARE-FUNCTION SYMBOL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2394,
},
[0x2395]={
- ["category"]="so",
- ["description"]="APL FUNCTIONAL SYMBOL QUAD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2395, -- ⎕
+ category="so",
+ description="APL FUNCTIONAL SYMBOL QUAD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2395,
},
[0x2396]={
- ["category"]="so",
- ["description"]="DECIMAL SEPARATOR KEY SYMBOL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2396, -- ⎖
+ category="so",
+ description="DECIMAL SEPARATOR KEY SYMBOL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2396,
},
[0x2397]={
- ["category"]="so",
- ["description"]="PREVIOUS PAGE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2397, -- ⎗
+ category="so",
+ description="PREVIOUS PAGE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2397,
},
[0x2398]={
- ["category"]="so",
- ["description"]="NEXT PAGE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2398, -- ⎘
+ category="so",
+ description="NEXT PAGE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2398,
},
[0x2399]={
- ["category"]="so",
- ["description"]="PRINT SCREEN SYMBOL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2399, -- ⎙
+ category="so",
+ description="PRINT SCREEN SYMBOL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2399,
},
[0x239A]={
- ["category"]="so",
- ["description"]="CLEAR SCREEN SYMBOL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x239A, -- ⎚
+ category="so",
+ description="CLEAR SCREEN SYMBOL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x239A,
},
[0x239B]={
- ["category"]="sm",
- ["description"]="LEFT PARENTHESIS UPPER HOOK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x239B, -- ⎛
+ category="sm",
+ description="LEFT PARENTHESIS UPPER HOOK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x239B,
},
[0x239C]={
- ["category"]="sm",
- ["description"]="LEFT PARENTHESIS EXTENSION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x239C, -- ⎜
+ category="sm",
+ description="LEFT PARENTHESIS EXTENSION",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x239C,
},
[0x239D]={
- ["category"]="sm",
- ["description"]="LEFT PARENTHESIS LOWER HOOK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x239D, -- ⎝
+ category="sm",
+ description="LEFT PARENTHESIS LOWER HOOK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x239D,
},
[0x239E]={
- ["category"]="sm",
- ["description"]="RIGHT PARENTHESIS UPPER HOOK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x239E, -- ⎞
+ category="sm",
+ description="RIGHT PARENTHESIS UPPER HOOK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x239E,
},
[0x239F]={
- ["category"]="sm",
- ["description"]="RIGHT PARENTHESIS EXTENSION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x239F, -- ⎟
+ category="sm",
+ description="RIGHT PARENTHESIS EXTENSION",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x239F,
},
[0x23A0]={
- ["category"]="sm",
- ["description"]="RIGHT PARENTHESIS LOWER HOOK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23A0, -- ⎠
+ category="sm",
+ description="RIGHT PARENTHESIS LOWER HOOK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23A0,
},
[0x23A1]={
- ["category"]="sm",
- ["description"]="LEFT SQUARE BRACKET UPPER CORNER",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23A1, -- ⎡
+ category="sm",
+ description="LEFT SQUARE BRACKET UPPER CORNER",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23A1,
},
[0x23A2]={
- ["category"]="sm",
- ["description"]="LEFT SQUARE BRACKET EXTENSION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23A2, -- ⎢
+ category="sm",
+ description="LEFT SQUARE BRACKET EXTENSION",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23A2,
},
[0x23A3]={
- ["category"]="sm",
- ["description"]="LEFT SQUARE BRACKET LOWER CORNER",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23A3, -- ⎣
+ category="sm",
+ description="LEFT SQUARE BRACKET LOWER CORNER",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23A3,
},
[0x23A4]={
- ["category"]="sm",
- ["description"]="RIGHT SQUARE BRACKET UPPER CORNER",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23A4, -- ⎤
+ category="sm",
+ description="RIGHT SQUARE BRACKET UPPER CORNER",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23A4,
},
[0x23A5]={
- ["category"]="sm",
- ["description"]="RIGHT SQUARE BRACKET EXTENSION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23A5, -- ⎥
+ category="sm",
+ description="RIGHT SQUARE BRACKET EXTENSION",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23A5,
},
[0x23A6]={
- ["category"]="sm",
- ["description"]="RIGHT SQUARE BRACKET LOWER CORNER",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23A6, -- ⎦
+ category="sm",
+ description="RIGHT SQUARE BRACKET LOWER CORNER",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23A6,
},
[0x23A7]={
- ["category"]="sm",
- ["description"]="LEFT CURLY BRACKET UPPER HOOK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23A7, -- ⎧
+ category="sm",
+ description="LEFT CURLY BRACKET UPPER HOOK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23A7,
},
[0x23A8]={
- ["category"]="sm",
- ["description"]="LEFT CURLY BRACKET MIDDLE PIECE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23A8, -- ⎨
+ category="sm",
+ description="LEFT CURLY BRACKET MIDDLE PIECE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23A8,
},
[0x23A9]={
- ["category"]="sm",
- ["description"]="LEFT CURLY BRACKET LOWER HOOK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23A9, -- ⎩
+ category="sm",
+ description="LEFT CURLY BRACKET LOWER HOOK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23A9,
},
[0x23AA]={
- ["category"]="sm",
- ["description"]="CURLY BRACKET EXTENSION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23AA, -- ⎪
+ category="sm",
+ description="CURLY BRACKET EXTENSION",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23AA,
},
[0x23AB]={
- ["category"]="sm",
- ["description"]="RIGHT CURLY BRACKET UPPER HOOK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23AB, -- ⎫
+ category="sm",
+ description="RIGHT CURLY BRACKET UPPER HOOK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23AB,
},
[0x23AC]={
- ["category"]="sm",
- ["description"]="RIGHT CURLY BRACKET MIDDLE PIECE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23AC, -- ⎬
+ category="sm",
+ description="RIGHT CURLY BRACKET MIDDLE PIECE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23AC,
},
[0x23AD]={
- ["category"]="sm",
- ["description"]="RIGHT CURLY BRACKET LOWER HOOK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23AD, -- ⎭
+ category="sm",
+ description="RIGHT CURLY BRACKET LOWER HOOK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23AD,
},
[0x23AE]={
- ["category"]="sm",
- ["description"]="INTEGRAL EXTENSION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23AE, -- ⎮
+ category="sm",
+ description="INTEGRAL EXTENSION",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23AE,
},
[0x23AF]={
- ["category"]="sm",
- ["description"]="HORIZONTAL LINE EXTENSION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23AF, -- ⎯
+ category="sm",
+ description="HORIZONTAL LINE EXTENSION",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23AF,
},
[0x23B0]={
- ["category"]="sm",
- ["description"]="UPPER LEFT OR LOWER RIGHT CURLY BRACKET SECTION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23B0, -- ⎰
+ category="sm",
+ description="UPPER LEFT OR LOWER RIGHT CURLY BRACKET SECTION",
+ direction="on",
+ linebreak="al",
+ mathclass="open",
+ mathname="lmoustache",
+ unicodeslot=0x23B0,
},
[0x23B1]={
- ["category"]="sm",
- ["description"]="UPPER RIGHT OR LOWER LEFT CURLY BRACKET SECTION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23B1, -- ⎱
+ category="sm",
+ description="UPPER RIGHT OR LOWER LEFT CURLY BRACKET SECTION",
+ direction="on",
+ linebreak="al",
+ mathclass="close",
+ mathname="rmoustache",
+ unicodeslot=0x23B1,
},
[0x23B2]={
- ["category"]="sm",
- ["description"]="SUMMATION TOP",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23B2, -- ⎲
+ category="sm",
+ description="SUMMATION TOP",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23B2,
},
[0x23B3]={
- ["category"]="sm",
- ["description"]="SUMMATION BOTTOM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23B3, -- ⎳
+ category="sm",
+ description="SUMMATION BOTTOM",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23B3,
},
[0x23B4]={
- ["category"]="so",
- ["description"]="TOP SQUARE BRACKET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23B4, -- ⎴
+ category="so",
+ description="TOP SQUARE BRACKET",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23B4,
},
[0x23B5]={
- ["category"]="so",
- ["description"]="BOTTOM SQUARE BRACKET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23B5, -- ⎵
+ category="so",
+ description="BOTTOM SQUARE BRACKET",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23B5,
},
[0x23B6]={
- ["category"]="so",
- ["description"]="BOTTOM SQUARE BRACKET OVER TOP SQUARE BRACKET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23B6, -- ⎶
+ category="so",
+ description="BOTTOM SQUARE BRACKET OVER TOP SQUARE BRACKET",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23B6,
},
[0x23B7]={
- ["category"]="so",
- ["description"]="RADICAL SYMBOL BOTTOM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23B7, -- ⎷
+ category="so",
+ description="RADICAL SYMBOL BOTTOM",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23B7,
},
[0x23B8]={
- ["category"]="so",
- ["description"]="LEFT VERTICAL BOX LINE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23B8, -- ⎸
+ category="so",
+ description="LEFT VERTICAL BOX LINE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23B8,
},
[0x23B9]={
- ["category"]="so",
- ["description"]="RIGHT VERTICAL BOX LINE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23B9, -- ⎹
+ category="so",
+ description="RIGHT VERTICAL BOX LINE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23B9,
},
[0x23BA]={
- ["category"]="so",
- ["description"]="HORIZONTAL SCAN LINE-0x0001",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23BA, -- ⎺
+ category="so",
+ description="HORIZONTAL SCAN LINE-0x0001",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23BA,
},
[0x23BB]={
- ["category"]="so",
- ["description"]="HORIZONTAL SCAN LINE-0x0003",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23BB, -- ⎻
+ category="so",
+ description="HORIZONTAL SCAN LINE-0x0003",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23BB,
},
[0x23BC]={
- ["category"]="so",
- ["description"]="HORIZONTAL SCAN LINE-0x0007",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23BC, -- ⎼
+ category="so",
+ description="HORIZONTAL SCAN LINE-0x0007",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23BC,
},
[0x23BD]={
- ["category"]="so",
- ["description"]="HORIZONTAL SCAN LINE-0x0009",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23BD, -- ⎽
+ category="so",
+ description="HORIZONTAL SCAN LINE-0x0009",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23BD,
},
[0x23BE]={
- ["category"]="so",
- ["description"]="DENTISTRY SYMBOL LIGHT VERTICAL AND TOP RIGHT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23BE, -- ⎾
+ category="so",
+ description="DENTISTRY SYMBOL LIGHT VERTICAL AND TOP RIGHT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23BE,
},
[0x23BF]={
- ["category"]="so",
- ["description"]="DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM RIGHT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23BF, -- ⎿
+ category="so",
+ description="DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM RIGHT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23BF,
},
[0x23C0]={
- ["category"]="so",
- ["description"]="DENTISTRY SYMBOL LIGHT VERTICAL WITH CIRCLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23C0, -- ⏀
+ category="so",
+ description="DENTISTRY SYMBOL LIGHT VERTICAL WITH CIRCLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23C0,
},
[0x23C1]={
- ["category"]="so",
- ["description"]="DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH CIRCLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23C1, -- ⏁
+ category="so",
+ description="DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH CIRCLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23C1,
},
[0x23C2]={
- ["category"]="so",
- ["description"]="DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH CIRCLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23C2, -- ⏂
+ category="so",
+ description="DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH CIRCLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23C2,
},
[0x23C3]={
- ["category"]="so",
- ["description"]="DENTISTRY SYMBOL LIGHT VERTICAL WITH TRIANGLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23C3, -- ⏃
+ category="so",
+ description="DENTISTRY SYMBOL LIGHT VERTICAL WITH TRIANGLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23C3,
},
[0x23C4]={
- ["category"]="so",
- ["description"]="DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH TRIANGLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23C4, -- ⏄
+ category="so",
+ description="DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH TRIANGLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23C4,
},
[0x23C5]={
- ["category"]="so",
- ["description"]="DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH TRIANGLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23C5, -- ⏅
+ category="so",
+ description="DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH TRIANGLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23C5,
},
[0x23C6]={
- ["category"]="so",
- ["description"]="DENTISTRY SYMBOL LIGHT VERTICAL AND WAVE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23C6, -- ⏆
+ category="so",
+ description="DENTISTRY SYMBOL LIGHT VERTICAL AND WAVE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23C6,
},
[0x23C7]={
- ["category"]="so",
- ["description"]="DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH WAVE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23C7, -- ⏇
+ category="so",
+ description="DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH WAVE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23C7,
},
[0x23C8]={
- ["category"]="so",
- ["description"]="DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH WAVE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23C8, -- ⏈
+ category="so",
+ description="DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH WAVE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23C8,
},
[0x23C9]={
- ["category"]="so",
- ["description"]="DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23C9, -- ⏉
+ category="so",
+ description="DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23C9,
},
[0x23CA]={
- ["category"]="so",
- ["description"]="DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23CA, -- ⏊
+ category="so",
+ description="DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23CA,
},
[0x23CB]={
- ["category"]="so",
- ["description"]="DENTISTRY SYMBOL LIGHT VERTICAL AND TOP LEFT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23CB, -- ⏋
+ category="so",
+ description="DENTISTRY SYMBOL LIGHT VERTICAL AND TOP LEFT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23CB,
},
[0x23CC]={
- ["category"]="so",
- ["description"]="DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM LEFT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23CC, -- ⏌
+ category="so",
+ description="DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM LEFT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23CC,
},
[0x23CD]={
- ["category"]="so",
- ["description"]="SQUARE FOOT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23CD, -- ⏍
+ category="so",
+ description="SQUARE FOOT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23CD,
},
[0x23CE]={
- ["category"]="so",
- ["description"]="RETURN SYMBOL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23CE, -- ⏎
+ category="so",
+ description="RETURN SYMBOL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23CE,
},
[0x23CF]={
- ["category"]="so",
- ["description"]="EJECT SYMBOL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23CF, -- ⏏
+ category="so",
+ description="EJECT SYMBOL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23CF,
},
[0x23D0]={
- ["category"]="so",
- ["description"]="VERTICAL LINE EXTENSION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23D0, -- ⏐
+ category="so",
+ description="VERTICAL LINE EXTENSION",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23D0,
},
[0x23D1]={
- ["category"]="so",
- ["description"]="METRICAL BREVE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23D1, -- ⏑
+ category="so",
+ description="METRICAL BREVE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23D1,
},
[0x23D2]={
- ["category"]="so",
- ["description"]="METRICAL LONG OVER SHORT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23D2, -- ⏒
+ category="so",
+ description="METRICAL LONG OVER SHORT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23D2,
},
[0x23D3]={
- ["category"]="so",
- ["description"]="METRICAL SHORT OVER LONG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23D3, -- ⏓
+ category="so",
+ description="METRICAL SHORT OVER LONG",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23D3,
},
[0x23D4]={
- ["category"]="so",
- ["description"]="METRICAL LONG OVER TWO SHORTS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23D4, -- ⏔
+ category="so",
+ description="METRICAL LONG OVER TWO SHORTS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23D4,
},
[0x23D5]={
- ["category"]="so",
- ["description"]="METRICAL TWO SHORTS OVER LONG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23D5, -- ⏕
+ category="so",
+ description="METRICAL TWO SHORTS OVER LONG",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23D5,
},
[0x23D6]={
- ["category"]="so",
- ["description"]="METRICAL TWO SHORTS JOINED",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23D6, -- ⏖
+ category="so",
+ description="METRICAL TWO SHORTS JOINED",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23D6,
},
[0x23D7]={
- ["category"]="so",
- ["description"]="METRICAL TRISEME",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23D7, -- ⏗
+ category="so",
+ description="METRICAL TRISEME",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23D7,
},
[0x23D8]={
- ["category"]="so",
- ["description"]="METRICAL TETRASEME",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23D8, -- ⏘
+ category="so",
+ description="METRICAL TETRASEME",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23D8,
},
[0x23D9]={
- ["category"]="so",
- ["description"]="METRICAL PENTASEME",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23D9, -- ⏙
+ category="so",
+ description="METRICAL PENTASEME",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23D9,
},
[0x23DA]={
- ["category"]="so",
- ["description"]="EARTH GROUND",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23DA, -- ⏚
+ category="so",
+ description="EARTH GROUND",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23DA,
},
[0x23DB]={
- ["category"]="so",
- ["description"]="FUSE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23DB, -- ⏛
+ category="so",
+ description="FUSE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23DB,
},
[0x23DC]={
- ["category"]="sm",
- ["description"]="TOP PARENTHESIS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23DC, -- ⏜
+ category="sm",
+ description="TOP PARENTHESIS",
+ direction="on",
+ linebreak="al",
+ mathclass="topaccent",
+ mathname="overparent",
+ unicodeslot=0x23DC,
},
[0x23DD]={
- ["category"]="sm",
- ["description"]="BOTTOM PARENTHESIS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23DD, -- ⏝
+ category="sm",
+ description="BOTTOM PARENTHESIS",
+ direction="on",
+ linebreak="al",
+ mathclass="botaccent",
+ mathname="underparent",
+ unicodeslot=0x23DD,
},
[0x23DE]={
- ["category"]="sm",
- ["description"]="TOP CURLY BRACKET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23DE, -- ⏞
+ category="sm",
+ description="TOP CURLY BRACKET",
+ direction="on",
+ linebreak="al",
+ mathclass="topaccent",
+ mathname="overbrace",
+ unicodeslot=0x23DE,
},
[0x23DF]={
- ["category"]="sm",
- ["description"]="BOTTOM CURLY BRACKET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23DF, -- ⏟
+ category="sm",
+ description="BOTTOM CURLY BRACKET",
+ direction="on",
+ linebreak="al",
+ mathclass="botaccent",
+ mathname="underbrace",
+ unicodeslot=0x23DF,
},
[0x23E0]={
- ["category"]="sm",
- ["description"]="TOP TORTOISE SHELL BRACKET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23E0, -- ⏠
+ category="sm",
+ description="TOP TORTOISE SHELL BRACKET",
+ direction="on",
+ linebreak="al",
+ mathclass="accent",
+ unicodeslot=0x23E0,
},
[0x23E1]={
- ["category"]="sm",
- ["description"]="BOTTOM TORTOISE SHELL BRACKET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23E1, -- ⏡
+ category="sm",
+ description="BOTTOM TORTOISE SHELL BRACKET",
+ direction="on",
+ linebreak="al",
+ mathclass="accent",
+ unicodeslot=0x23E1,
},
[0x23E2]={
- ["category"]="so",
- ["description"]="WHITE TRAPEZIUM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23E2, -- ⏢
+ category="so",
+ description="WHITE TRAPEZIUM",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23E2,
},
[0x23E3]={
- ["category"]="so",
- ["description"]="BENZENE RING WITH CIRCLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23E3, -- ⏣
+ category="so",
+ description="BENZENE RING WITH CIRCLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23E3,
},
[0x23E4]={
- ["category"]="so",
- ["description"]="STRAIGHTNESS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23E4, -- ⏤
+ category="so",
+ description="STRAIGHTNESS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23E4,
},
[0x23E5]={
- ["category"]="so",
- ["description"]="FLATNESS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23E5, -- ⏥
+ category="so",
+ description="FLATNESS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23E5,
},
[0x23E6]={
- ["category"]="so",
- ["description"]="AC CURRENT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23E6, -- ⏦
+ category="so",
+ description="AC CURRENT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23E6,
},
[0x23E7]={
- ["category"]="so",
- ["description"]="ELECTRICAL INTERSECTION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x23E7, -- ⏧
+ category="so",
+ description="ELECTRICAL INTERSECTION",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x23E7,
},
[0x2400]={
- ["category"]="so",
- ["description"]="SYMBOL FOR NULL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2400, -- ␀
+ category="so",
+ description="SYMBOL FOR NULL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2400,
},
[0x2401]={
- ["category"]="so",
- ["description"]="SYMBOL FOR START OF HEADING",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2401, -- ␁
+ category="so",
+ description="SYMBOL FOR START OF HEADING",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2401,
},
[0x2402]={
- ["category"]="so",
- ["description"]="SYMBOL FOR START OF TEXT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2402, -- ␂
+ category="so",
+ description="SYMBOL FOR START OF TEXT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2402,
},
[0x2403]={
- ["category"]="so",
- ["description"]="SYMBOL FOR END OF TEXT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2403, -- ␃
+ category="so",
+ description="SYMBOL FOR END OF TEXT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2403,
},
[0x2404]={
- ["category"]="so",
- ["description"]="SYMBOL FOR END OF TRANSMISSION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2404, -- ␄
+ category="so",
+ description="SYMBOL FOR END OF TRANSMISSION",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2404,
},
[0x2405]={
- ["category"]="so",
- ["description"]="SYMBOL FOR ENQUIRY",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2405, -- ␅
+ category="so",
+ description="SYMBOL FOR ENQUIRY",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2405,
},
[0x2406]={
- ["category"]="so",
- ["description"]="SYMBOL FOR ACKNOWLEDGE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2406, -- ␆
+ category="so",
+ description="SYMBOL FOR ACKNOWLEDGE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2406,
},
[0x2407]={
- ["category"]="so",
- ["description"]="SYMBOL FOR BELL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2407, -- ␇
+ category="so",
+ description="SYMBOL FOR BELL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2407,
},
[0x2408]={
- ["category"]="so",
- ["description"]="SYMBOL FOR BACKSPACE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2408, -- ␈
+ category="so",
+ description="SYMBOL FOR BACKSPACE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2408,
},
[0x2409]={
- ["category"]="so",
- ["description"]="SYMBOL FOR HORIZONTAL TABULATION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2409, -- ␉
+ category="so",
+ description="SYMBOL FOR HORIZONTAL TABULATION",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2409,
},
[0x240A]={
- ["category"]="so",
- ["description"]="SYMBOL FOR LINE FEED",
- ["linebreak"]="al",
- ["unicodeslot"]=0x240A, -- ␊
+ category="so",
+ description="SYMBOL FOR LINE FEED",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x240A,
},
[0x240B]={
- ["category"]="so",
- ["description"]="SYMBOL FOR VERTICAL TABULATION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x240B, -- ␋
+ category="so",
+ description="SYMBOL FOR VERTICAL TABULATION",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x240B,
},
[0x240C]={
- ["category"]="so",
- ["description"]="SYMBOL FOR FORM FEED",
- ["linebreak"]="al",
- ["unicodeslot"]=0x240C, -- ␌
+ category="so",
+ description="SYMBOL FOR FORM FEED",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x240C,
},
[0x240D]={
- ["category"]="so",
- ["description"]="SYMBOL FOR CARRIAGE RETURN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x240D, -- ␍
+ category="so",
+ description="SYMBOL FOR CARRIAGE RETURN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x240D,
},
[0x240E]={
- ["category"]="so",
- ["description"]="SYMBOL FOR SHIFT OUT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x240E, -- ␎
+ category="so",
+ description="SYMBOL FOR SHIFT OUT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x240E,
},
[0x240F]={
- ["category"]="so",
- ["description"]="SYMBOL FOR SHIFT IN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x240F, -- ␏
+ category="so",
+ description="SYMBOL FOR SHIFT IN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x240F,
},
[0x2410]={
- ["category"]="so",
- ["description"]="SYMBOL FOR DATA LINK ESCAPE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2410, -- ␐
+ category="so",
+ description="SYMBOL FOR DATA LINK ESCAPE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2410,
},
[0x2411]={
- ["category"]="so",
- ["description"]="SYMBOL FOR DEVICE CONTROL ONE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2411, -- ␑
+ category="so",
+ description="SYMBOL FOR DEVICE CONTROL ONE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2411,
},
[0x2412]={
- ["category"]="so",
- ["description"]="SYMBOL FOR DEVICE CONTROL TWO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2412, -- ␒
+ category="so",
+ description="SYMBOL FOR DEVICE CONTROL TWO",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2412,
},
[0x2413]={
- ["category"]="so",
- ["description"]="SYMBOL FOR DEVICE CONTROL THREE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2413, -- ␓
+ category="so",
+ description="SYMBOL FOR DEVICE CONTROL THREE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2413,
},
[0x2414]={
- ["category"]="so",
- ["description"]="SYMBOL FOR DEVICE CONTROL FOUR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2414, -- ␔
+ category="so",
+ description="SYMBOL FOR DEVICE CONTROL FOUR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2414,
},
[0x2415]={
- ["category"]="so",
- ["description"]="SYMBOL FOR NEGATIVE ACKNOWLEDGE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2415, -- ␕
+ category="so",
+ description="SYMBOL FOR NEGATIVE ACKNOWLEDGE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2415,
},
[0x2416]={
- ["category"]="so",
- ["description"]="SYMBOL FOR SYNCHRONOUS IDLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2416, -- ␖
+ category="so",
+ description="SYMBOL FOR SYNCHRONOUS IDLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2416,
},
[0x2417]={
- ["category"]="so",
- ["description"]="SYMBOL FOR END OF TRANSMISSION BLOCK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2417, -- ␗
+ category="so",
+ description="SYMBOL FOR END OF TRANSMISSION BLOCK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2417,
},
[0x2418]={
- ["category"]="so",
- ["description"]="SYMBOL FOR CANCEL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2418, -- ␘
+ category="so",
+ description="SYMBOL FOR CANCEL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2418,
},
[0x2419]={
- ["category"]="so",
- ["description"]="SYMBOL FOR END OF MEDIUM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2419, -- ␙
+ category="so",
+ description="SYMBOL FOR END OF MEDIUM",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2419,
},
[0x241A]={
- ["category"]="so",
- ["description"]="SYMBOL FOR SUBSTITUTE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x241A, -- ␚
+ category="so",
+ description="SYMBOL FOR SUBSTITUTE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x241A,
},
[0x241B]={
- ["category"]="so",
- ["description"]="SYMBOL FOR ESCAPE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x241B, -- ␛
+ category="so",
+ description="SYMBOL FOR ESCAPE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x241B,
},
[0x241C]={
- ["category"]="so",
- ["description"]="SYMBOL FOR FILE SEPARATOR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x241C, -- ␜
+ category="so",
+ description="SYMBOL FOR FILE SEPARATOR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x241C,
},
[0x241D]={
- ["category"]="so",
- ["description"]="SYMBOL FOR GROUP SEPARATOR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x241D, -- ␝
+ category="so",
+ description="SYMBOL FOR GROUP SEPARATOR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x241D,
},
[0x241E]={
- ["category"]="so",
- ["description"]="SYMBOL FOR RECORD SEPARATOR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x241E, -- ␞
+ category="so",
+ description="SYMBOL FOR RECORD SEPARATOR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x241E,
},
[0x241F]={
- ["category"]="so",
- ["description"]="SYMBOL FOR UNIT SEPARATOR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x241F, -- ␟
+ category="so",
+ description="SYMBOL FOR UNIT SEPARATOR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x241F,
},
[0x2420]={
- ["category"]="so",
- ["description"]="SYMBOL FOR SPACE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2420, -- ␠
+ category="so",
+ description="SYMBOL FOR SPACE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2420,
},
[0x2421]={
- ["category"]="so",
- ["description"]="SYMBOL FOR DELETE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2421, -- ␡
+ category="so",
+ description="SYMBOL FOR DELETE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2421,
},
[0x2422]={
- ["category"]="so",
- ["description"]="BLANK SYMBOL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2422, -- ␢
+ category="so",
+ description="BLANK SYMBOL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2422,
},
[0x2423]={
- ["category"]="so",
- ["description"]="OPEN BOX",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2423, -- ␣
+ category="so",
+ description="OPEN BOX",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2423,
},
[0x2424]={
- ["category"]="so",
- ["description"]="SYMBOL FOR NEWLINE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2424, -- ␤
+ category="so",
+ description="SYMBOL FOR NEWLINE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2424,
},
[0x2425]={
- ["category"]="so",
- ["description"]="SYMBOL FOR DELETE FORM TWO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2425, -- ␥
+ category="so",
+ description="SYMBOL FOR DELETE FORM TWO",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2425,
},
[0x2426]={
- ["category"]="so",
- ["description"]="SYMBOL FOR SUBSTITUTE FORM TWO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2426, -- ␦
+ category="so",
+ description="SYMBOL FOR SUBSTITUTE FORM TWO",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2426,
},
[0x2440]={
- ["category"]="so",
- ["description"]="OCR HOOK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2440, -- ⑀
+ category="so",
+ description="OCR HOOK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2440,
},
[0x2441]={
- ["category"]="so",
- ["description"]="OCR CHAIR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2441, -- ⑁
+ category="so",
+ description="OCR CHAIR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2441,
},
[0x2442]={
- ["category"]="so",
- ["description"]="OCR FORK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2442, -- ⑂
+ category="so",
+ description="OCR FORK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2442,
},
[0x2443]={
- ["category"]="so",
- ["description"]="OCR INVERTED FORK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2443, -- ⑃
+ category="so",
+ description="OCR INVERTED FORK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2443,
},
[0x2444]={
- ["category"]="so",
- ["description"]="OCR BELT BUCKLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2444, -- ⑄
+ category="so",
+ description="OCR BELT BUCKLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2444,
},
[0x2445]={
- ["category"]="so",
- ["description"]="OCR BOW TIE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2445, -- ⑅
+ category="so",
+ description="OCR BOW TIE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2445,
},
[0x2446]={
- ["category"]="so",
- ["description"]="OCR BRANCH BANK IDENTIFICATION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2446, -- ⑆
+ category="so",
+ description="OCR BRANCH BANK IDENTIFICATION",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2446,
},
[0x2447]={
- ["category"]="so",
- ["description"]="OCR AMOUNT OF CHECK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2447, -- ⑇
+ category="so",
+ description="OCR AMOUNT OF CHECK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2447,
},
[0x2448]={
- ["category"]="so",
- ["description"]="OCR DASH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2448, -- ⑈
+ category="so",
+ description="OCR DASH",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2448,
},
[0x2449]={
- ["category"]="so",
- ["description"]="OCR CUSTOMER ACCOUNT NUMBER",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2449, -- ⑉
+ category="so",
+ description="OCR CUSTOMER ACCOUNT NUMBER",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2449,
},
[0x244A]={
- ["category"]="so",
- ["description"]="OCR DOUBLE BACKSLASH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x244A, -- ⑊
+ category="so",
+ description="OCR DOUBLE BACKSLASH",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x244A,
},
[0x2460]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="CIRCLED DIGIT ONE",
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x0031 },
- ["unicodeslot"]=0x2460, -- ①
+ category="no",
+ cjkwd="a",
+ description="CIRCLED DIGIT ONE",
+ direction="on",
+ linebreak="ai",
+ specials={ "circle", 0x0031 },
+ unicodeslot=0x2460,
},
[0x2461]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="CIRCLED DIGIT TWO",
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x0032 },
- ["unicodeslot"]=0x2461, -- ②
+ category="no",
+ cjkwd="a",
+ description="CIRCLED DIGIT TWO",
+ direction="on",
+ linebreak="ai",
+ specials={ "circle", 0x0032 },
+ unicodeslot=0x2461,
},
[0x2462]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="CIRCLED DIGIT THREE",
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x0033 },
- ["unicodeslot"]=0x2462, -- ③
+ category="no",
+ cjkwd="a",
+ description="CIRCLED DIGIT THREE",
+ direction="on",
+ linebreak="ai",
+ specials={ "circle", 0x0033 },
+ unicodeslot=0x2462,
},
[0x2463]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="CIRCLED DIGIT FOUR",
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x0034 },
- ["unicodeslot"]=0x2463, -- ④
+ category="no",
+ cjkwd="a",
+ description="CIRCLED DIGIT FOUR",
+ direction="on",
+ linebreak="ai",
+ specials={ "circle", 0x0034 },
+ unicodeslot=0x2463,
},
[0x2464]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="CIRCLED DIGIT FIVE",
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x0035 },
- ["unicodeslot"]=0x2464, -- ⑤
+ category="no",
+ cjkwd="a",
+ description="CIRCLED DIGIT FIVE",
+ direction="on",
+ linebreak="ai",
+ specials={ "circle", 0x0035 },
+ unicodeslot=0x2464,
},
[0x2465]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="CIRCLED DIGIT SIX",
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x0036 },
- ["unicodeslot"]=0x2465, -- ⑥
+ category="no",
+ cjkwd="a",
+ description="CIRCLED DIGIT SIX",
+ direction="on",
+ linebreak="ai",
+ specials={ "circle", 0x0036 },
+ unicodeslot=0x2465,
},
[0x2466]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="CIRCLED DIGIT SEVEN",
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x0037 },
- ["unicodeslot"]=0x2466, -- ⑦
+ category="no",
+ cjkwd="a",
+ description="CIRCLED DIGIT SEVEN",
+ direction="on",
+ linebreak="ai",
+ specials={ "circle", 0x0037 },
+ unicodeslot=0x2466,
},
[0x2467]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="CIRCLED DIGIT EIGHT",
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x0038 },
- ["unicodeslot"]=0x2467, -- ⑧
+ category="no",
+ cjkwd="a",
+ description="CIRCLED DIGIT EIGHT",
+ direction="on",
+ linebreak="ai",
+ specials={ "circle", 0x0038 },
+ unicodeslot=0x2467,
},
[0x2468]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="CIRCLED DIGIT NINE",
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x0039 },
- ["unicodeslot"]=0x2468, -- ⑨
+ category="no",
+ cjkwd="a",
+ description="CIRCLED DIGIT NINE",
+ direction="on",
+ linebreak="ai",
+ specials={ "circle", 0x0039 },
+ unicodeslot=0x2468,
},
[0x2469]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="CIRCLED NUMBER TEN",
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x0031, 0x0030 },
- ["unicodeslot"]=0x2469, -- ⑩
+ category="no",
+ cjkwd="a",
+ description="CIRCLED NUMBER TEN",
+ direction="on",
+ linebreak="ai",
+ specials={ "circle", 0x0031, 0x0030 },
+ unicodeslot=0x2469,
},
[0x246A]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="CIRCLED NUMBER ELEVEN",
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x0031, 0x0031 },
- ["unicodeslot"]=0x246A, -- ⑪
+ category="no",
+ cjkwd="a",
+ description="CIRCLED NUMBER ELEVEN",
+ direction="on",
+ linebreak="ai",
+ specials={ "circle", 0x0031, 0x0031 },
+ unicodeslot=0x246A,
},
[0x246B]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="CIRCLED NUMBER TWELVE",
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x0031, 0x0032 },
- ["unicodeslot"]=0x246B, -- ⑫
+ category="no",
+ cjkwd="a",
+ description="CIRCLED NUMBER TWELVE",
+ direction="on",
+ linebreak="ai",
+ specials={ "circle", 0x0031, 0x0032 },
+ unicodeslot=0x246B,
},
[0x246C]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="CIRCLED NUMBER THIRTEEN",
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x0031, 0x0033 },
- ["unicodeslot"]=0x246C, -- ⑬
+ category="no",
+ cjkwd="a",
+ description="CIRCLED NUMBER THIRTEEN",
+ direction="on",
+ linebreak="ai",
+ specials={ "circle", 0x0031, 0x0033 },
+ unicodeslot=0x246C,
},
[0x246D]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="CIRCLED NUMBER FOURTEEN",
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x0031, 0x0034 },
- ["unicodeslot"]=0x246D, -- ⑭
+ category="no",
+ cjkwd="a",
+ description="CIRCLED NUMBER FOURTEEN",
+ direction="on",
+ linebreak="ai",
+ specials={ "circle", 0x0031, 0x0034 },
+ unicodeslot=0x246D,
},
[0x246E]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="CIRCLED NUMBER FIFTEEN",
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x0031, 0x0035 },
- ["unicodeslot"]=0x246E, -- ⑮
+ category="no",
+ cjkwd="a",
+ description="CIRCLED NUMBER FIFTEEN",
+ direction="on",
+ linebreak="ai",
+ specials={ "circle", 0x0031, 0x0035 },
+ unicodeslot=0x246E,
},
[0x246F]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="CIRCLED NUMBER SIXTEEN",
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x0031, 0x0036 },
- ["unicodeslot"]=0x246F, -- ⑯
+ category="no",
+ cjkwd="a",
+ description="CIRCLED NUMBER SIXTEEN",
+ direction="on",
+ linebreak="ai",
+ specials={ "circle", 0x0031, 0x0036 },
+ unicodeslot=0x246F,
},
[0x2470]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="CIRCLED NUMBER SEVENTEEN",
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x0031, 0x0037 },
- ["unicodeslot"]=0x2470, -- ⑰
+ category="no",
+ cjkwd="a",
+ description="CIRCLED NUMBER SEVENTEEN",
+ direction="on",
+ linebreak="ai",
+ specials={ "circle", 0x0031, 0x0037 },
+ unicodeslot=0x2470,
},
[0x2471]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="CIRCLED NUMBER EIGHTEEN",
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x0031, 0x0038 },
- ["unicodeslot"]=0x2471, -- ⑱
+ category="no",
+ cjkwd="a",
+ description="CIRCLED NUMBER EIGHTEEN",
+ direction="on",
+ linebreak="ai",
+ specials={ "circle", 0x0031, 0x0038 },
+ unicodeslot=0x2471,
},
[0x2472]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="CIRCLED NUMBER NINETEEN",
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x0031, 0x0039 },
- ["unicodeslot"]=0x2472, -- ⑲
+ category="no",
+ cjkwd="a",
+ description="CIRCLED NUMBER NINETEEN",
+ direction="on",
+ linebreak="ai",
+ specials={ "circle", 0x0031, 0x0039 },
+ unicodeslot=0x2472,
},
[0x2473]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="CIRCLED NUMBER TWENTY",
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x0032, 0x0030 },
- ["unicodeslot"]=0x2473, -- ⑳
+ category="no",
+ cjkwd="a",
+ description="CIRCLED NUMBER TWENTY",
+ direction="on",
+ linebreak="ai",
+ specials={ "circle", 0x0032, 0x0030 },
+ unicodeslot=0x2473,
},
[0x2474]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="PARENTHESIZED DIGIT ONE",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0028, 0x0031, 0x0029 },
- ["unicodeslot"]=0x2474, -- ⑴
+ category="no",
+ cjkwd="a",
+ description="PARENTHESIZED DIGIT ONE",
+ direction="on",
+ linebreak="ai",
+ specials={ "compat", 0x0028, 0x0031, 0x0029 },
+ unicodeslot=0x2474,
},
[0x2475]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="PARENTHESIZED DIGIT TWO",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0028, 0x0032, 0x0029 },
- ["unicodeslot"]=0x2475, -- ⑵
+ category="no",
+ cjkwd="a",
+ description="PARENTHESIZED DIGIT TWO",
+ direction="on",
+ linebreak="ai",
+ specials={ "compat", 0x0028, 0x0032, 0x0029 },
+ unicodeslot=0x2475,
},
[0x2476]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="PARENTHESIZED DIGIT THREE",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0028, 0x0033, 0x0029 },
- ["unicodeslot"]=0x2476, -- ⑶
+ category="no",
+ cjkwd="a",
+ description="PARENTHESIZED DIGIT THREE",
+ direction="on",
+ linebreak="ai",
+ specials={ "compat", 0x0028, 0x0033, 0x0029 },
+ unicodeslot=0x2476,
},
[0x2477]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="PARENTHESIZED DIGIT FOUR",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0028, 0x0034, 0x0029 },
- ["unicodeslot"]=0x2477, -- ⑷
+ category="no",
+ cjkwd="a",
+ description="PARENTHESIZED DIGIT FOUR",
+ direction="on",
+ linebreak="ai",
+ specials={ "compat", 0x0028, 0x0034, 0x0029 },
+ unicodeslot=0x2477,
},
[0x2478]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="PARENTHESIZED DIGIT FIVE",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0028, 0x0035, 0x0029 },
- ["unicodeslot"]=0x2478, -- ⑸
+ category="no",
+ cjkwd="a",
+ description="PARENTHESIZED DIGIT FIVE",
+ direction="on",
+ linebreak="ai",
+ specials={ "compat", 0x0028, 0x0035, 0x0029 },
+ unicodeslot=0x2478,
},
[0x2479]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="PARENTHESIZED DIGIT SIX",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0028, 0x0036, 0x0029 },
- ["unicodeslot"]=0x2479, -- ⑹
+ category="no",
+ cjkwd="a",
+ description="PARENTHESIZED DIGIT SIX",
+ direction="on",
+ linebreak="ai",
+ specials={ "compat", 0x0028, 0x0036, 0x0029 },
+ unicodeslot=0x2479,
},
[0x247A]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="PARENTHESIZED DIGIT SEVEN",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0028, 0x0037, 0x0029 },
- ["unicodeslot"]=0x247A, -- ⑺
+ category="no",
+ cjkwd="a",
+ description="PARENTHESIZED DIGIT SEVEN",
+ direction="on",
+ linebreak="ai",
+ specials={ "compat", 0x0028, 0x0037, 0x0029 },
+ unicodeslot=0x247A,
},
[0x247B]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="PARENTHESIZED DIGIT EIGHT",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0028, 0x0038, 0x0029 },
- ["unicodeslot"]=0x247B, -- ⑻
+ category="no",
+ cjkwd="a",
+ description="PARENTHESIZED DIGIT EIGHT",
+ direction="on",
+ linebreak="ai",
+ specials={ "compat", 0x0028, 0x0038, 0x0029 },
+ unicodeslot=0x247B,
},
[0x247C]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="PARENTHESIZED DIGIT NINE",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0028, 0x0039, 0x0029 },
- ["unicodeslot"]=0x247C, -- ⑼
+ category="no",
+ cjkwd="a",
+ description="PARENTHESIZED DIGIT NINE",
+ direction="on",
+ linebreak="ai",
+ specials={ "compat", 0x0028, 0x0039, 0x0029 },
+ unicodeslot=0x247C,
},
[0x247D]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="PARENTHESIZED NUMBER TEN",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0028, 0x0031, 0x0030, 0x0029 },
- ["unicodeslot"]=0x247D, -- ⑽
+ category="no",
+ cjkwd="a",
+ description="PARENTHESIZED NUMBER TEN",
+ direction="on",
+ linebreak="ai",
+ specials={ "compat", 0x0028, 0x0031, 0x0030, 0x0029 },
+ unicodeslot=0x247D,
},
[0x247E]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="PARENTHESIZED NUMBER ELEVEN",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0028, 0x0031, 0x0031, 0x0029 },
- ["unicodeslot"]=0x247E, -- ⑾
+ category="no",
+ cjkwd="a",
+ description="PARENTHESIZED NUMBER ELEVEN",
+ direction="on",
+ linebreak="ai",
+ specials={ "compat", 0x0028, 0x0031, 0x0031, 0x0029 },
+ unicodeslot=0x247E,
},
[0x247F]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="PARENTHESIZED NUMBER TWELVE",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0028, 0x0031, 0x0032, 0x0029 },
- ["unicodeslot"]=0x247F, -- ⑿
+ category="no",
+ cjkwd="a",
+ description="PARENTHESIZED NUMBER TWELVE",
+ direction="on",
+ linebreak="ai",
+ specials={ "compat", 0x0028, 0x0031, 0x0032, 0x0029 },
+ unicodeslot=0x247F,
},
[0x2480]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="PARENTHESIZED NUMBER THIRTEEN",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0028, 0x0031, 0x0033, 0x0029 },
- ["unicodeslot"]=0x2480, -- ⒀
+ category="no",
+ cjkwd="a",
+ description="PARENTHESIZED NUMBER THIRTEEN",
+ direction="on",
+ linebreak="ai",
+ specials={ "compat", 0x0028, 0x0031, 0x0033, 0x0029 },
+ unicodeslot=0x2480,
},
[0x2481]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="PARENTHESIZED NUMBER FOURTEEN",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0028, 0x0031, 0x0034, 0x0029 },
- ["unicodeslot"]=0x2481, -- ⒁
+ category="no",
+ cjkwd="a",
+ description="PARENTHESIZED NUMBER FOURTEEN",
+ direction="on",
+ linebreak="ai",
+ specials={ "compat", 0x0028, 0x0031, 0x0034, 0x0029 },
+ unicodeslot=0x2481,
},
[0x2482]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="PARENTHESIZED NUMBER FIFTEEN",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0028, 0x0031, 0x0035, 0x0029 },
- ["unicodeslot"]=0x2482, -- ⒂
+ category="no",
+ cjkwd="a",
+ description="PARENTHESIZED NUMBER FIFTEEN",
+ direction="on",
+ linebreak="ai",
+ specials={ "compat", 0x0028, 0x0031, 0x0035, 0x0029 },
+ unicodeslot=0x2482,
},
[0x2483]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="PARENTHESIZED NUMBER SIXTEEN",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0028, 0x0031, 0x0036, 0x0029 },
- ["unicodeslot"]=0x2483, -- ⒃
+ category="no",
+ cjkwd="a",
+ description="PARENTHESIZED NUMBER SIXTEEN",
+ direction="on",
+ linebreak="ai",
+ specials={ "compat", 0x0028, 0x0031, 0x0036, 0x0029 },
+ unicodeslot=0x2483,
},
[0x2484]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="PARENTHESIZED NUMBER SEVENTEEN",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0028, 0x0031, 0x0037, 0x0029 },
- ["unicodeslot"]=0x2484, -- ⒄
+ category="no",
+ cjkwd="a",
+ description="PARENTHESIZED NUMBER SEVENTEEN",
+ direction="on",
+ linebreak="ai",
+ specials={ "compat", 0x0028, 0x0031, 0x0037, 0x0029 },
+ unicodeslot=0x2484,
},
[0x2485]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="PARENTHESIZED NUMBER EIGHTEEN",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0028, 0x0031, 0x0038, 0x0029 },
- ["unicodeslot"]=0x2485, -- ⒅
+ category="no",
+ cjkwd="a",
+ description="PARENTHESIZED NUMBER EIGHTEEN",
+ direction="on",
+ linebreak="ai",
+ specials={ "compat", 0x0028, 0x0031, 0x0038, 0x0029 },
+ unicodeslot=0x2485,
},
[0x2486]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="PARENTHESIZED NUMBER NINETEEN",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0028, 0x0031, 0x0039, 0x0029 },
- ["unicodeslot"]=0x2486, -- ⒆
+ category="no",
+ cjkwd="a",
+ description="PARENTHESIZED NUMBER NINETEEN",
+ direction="on",
+ linebreak="ai",
+ specials={ "compat", 0x0028, 0x0031, 0x0039, 0x0029 },
+ unicodeslot=0x2486,
},
[0x2487]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="PARENTHESIZED NUMBER TWENTY",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0028, 0x0032, 0x0030, 0x0029 },
- ["unicodeslot"]=0x2487, -- ⒇
+ category="no",
+ cjkwd="a",
+ description="PARENTHESIZED NUMBER TWENTY",
+ direction="on",
+ linebreak="ai",
+ specials={ "compat", 0x0028, 0x0032, 0x0030, 0x0029 },
+ unicodeslot=0x2487,
},
[0x2488]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="DIGIT ONE FULL STOP",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0031, 0x002E },
- ["unicodeslot"]=0x2488, -- ⒈
+ category="no",
+ cjkwd="a",
+ description="DIGIT ONE FULL STOP",
+ direction="en",
+ linebreak="ai",
+ specials={ "compat", 0x0031, 0x002E },
+ unicodeslot=0x2488,
},
[0x2489]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="DIGIT TWO FULL STOP",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0032, 0x002E },
- ["unicodeslot"]=0x2489, -- ⒉
+ category="no",
+ cjkwd="a",
+ description="DIGIT TWO FULL STOP",
+ direction="en",
+ linebreak="ai",
+ specials={ "compat", 0x0032, 0x002E },
+ unicodeslot=0x2489,
},
[0x248A]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="DIGIT THREE FULL STOP",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0033, 0x002E },
- ["unicodeslot"]=0x248A, -- ⒊
+ category="no",
+ cjkwd="a",
+ description="DIGIT THREE FULL STOP",
+ direction="en",
+ linebreak="ai",
+ specials={ "compat", 0x0033, 0x002E },
+ unicodeslot=0x248A,
},
[0x248B]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="DIGIT FOUR FULL STOP",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0034, 0x002E },
- ["unicodeslot"]=0x248B, -- ⒋
+ category="no",
+ cjkwd="a",
+ description="DIGIT FOUR FULL STOP",
+ direction="en",
+ linebreak="ai",
+ specials={ "compat", 0x0034, 0x002E },
+ unicodeslot=0x248B,
},
[0x248C]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="DIGIT FIVE FULL STOP",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0035, 0x002E },
- ["unicodeslot"]=0x248C, -- ⒌
+ category="no",
+ cjkwd="a",
+ description="DIGIT FIVE FULL STOP",
+ direction="en",
+ linebreak="ai",
+ specials={ "compat", 0x0035, 0x002E },
+ unicodeslot=0x248C,
},
[0x248D]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="DIGIT SIX FULL STOP",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0036, 0x002E },
- ["unicodeslot"]=0x248D, -- ⒍
+ category="no",
+ cjkwd="a",
+ description="DIGIT SIX FULL STOP",
+ direction="en",
+ linebreak="ai",
+ specials={ "compat", 0x0036, 0x002E },
+ unicodeslot=0x248D,
},
[0x248E]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="DIGIT SEVEN FULL STOP",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0037, 0x002E },
- ["unicodeslot"]=0x248E, -- ⒎
+ category="no",
+ cjkwd="a",
+ description="DIGIT SEVEN FULL STOP",
+ direction="en",
+ linebreak="ai",
+ specials={ "compat", 0x0037, 0x002E },
+ unicodeslot=0x248E,
},
[0x248F]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="DIGIT EIGHT FULL STOP",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0038, 0x002E },
- ["unicodeslot"]=0x248F, -- ⒏
+ category="no",
+ cjkwd="a",
+ description="DIGIT EIGHT FULL STOP",
+ direction="en",
+ linebreak="ai",
+ specials={ "compat", 0x0038, 0x002E },
+ unicodeslot=0x248F,
},
[0x2490]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="DIGIT NINE FULL STOP",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0039, 0x002E },
- ["unicodeslot"]=0x2490, -- ⒐
+ category="no",
+ cjkwd="a",
+ description="DIGIT NINE FULL STOP",
+ direction="en",
+ linebreak="ai",
+ specials={ "compat", 0x0039, 0x002E },
+ unicodeslot=0x2490,
},
[0x2491]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="NUMBER TEN FULL STOP",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0031, 0x0030, 0x002E },
- ["unicodeslot"]=0x2491, -- ⒑
+ category="no",
+ cjkwd="a",
+ description="NUMBER TEN FULL STOP",
+ direction="en",
+ linebreak="ai",
+ specials={ "compat", 0x0031, 0x0030, 0x002E },
+ unicodeslot=0x2491,
},
[0x2492]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="NUMBER ELEVEN FULL STOP",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0031, 0x0031, 0x002E },
- ["unicodeslot"]=0x2492, -- ⒒
+ category="no",
+ cjkwd="a",
+ description="NUMBER ELEVEN FULL STOP",
+ direction="en",
+ linebreak="ai",
+ specials={ "compat", 0x0031, 0x0031, 0x002E },
+ unicodeslot=0x2492,
},
[0x2493]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="NUMBER TWELVE FULL STOP",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0031, 0x0032, 0x002E },
- ["unicodeslot"]=0x2493, -- ⒓
+ category="no",
+ cjkwd="a",
+ description="NUMBER TWELVE FULL STOP",
+ direction="en",
+ linebreak="ai",
+ specials={ "compat", 0x0031, 0x0032, 0x002E },
+ unicodeslot=0x2493,
},
[0x2494]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="NUMBER THIRTEEN FULL STOP",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0031, 0x0033, 0x002E },
- ["unicodeslot"]=0x2494, -- ⒔
+ category="no",
+ cjkwd="a",
+ description="NUMBER THIRTEEN FULL STOP",
+ direction="en",
+ linebreak="ai",
+ specials={ "compat", 0x0031, 0x0033, 0x002E },
+ unicodeslot=0x2494,
},
[0x2495]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="NUMBER FOURTEEN FULL STOP",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0031, 0x0034, 0x002E },
- ["unicodeslot"]=0x2495, -- ⒕
+ category="no",
+ cjkwd="a",
+ description="NUMBER FOURTEEN FULL STOP",
+ direction="en",
+ linebreak="ai",
+ specials={ "compat", 0x0031, 0x0034, 0x002E },
+ unicodeslot=0x2495,
},
[0x2496]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="NUMBER FIFTEEN FULL STOP",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0031, 0x0035, 0x002E },
- ["unicodeslot"]=0x2496, -- ⒖
+ category="no",
+ cjkwd="a",
+ description="NUMBER FIFTEEN FULL STOP",
+ direction="en",
+ linebreak="ai",
+ specials={ "compat", 0x0031, 0x0035, 0x002E },
+ unicodeslot=0x2496,
},
[0x2497]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="NUMBER SIXTEEN FULL STOP",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0031, 0x0036, 0x002E },
- ["unicodeslot"]=0x2497, -- ⒗
+ category="no",
+ cjkwd="a",
+ description="NUMBER SIXTEEN FULL STOP",
+ direction="en",
+ linebreak="ai",
+ specials={ "compat", 0x0031, 0x0036, 0x002E },
+ unicodeslot=0x2497,
},
[0x2498]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="NUMBER SEVENTEEN FULL STOP",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0031, 0x0037, 0x002E },
- ["unicodeslot"]=0x2498, -- ⒘
+ category="no",
+ cjkwd="a",
+ description="NUMBER SEVENTEEN FULL STOP",
+ direction="en",
+ linebreak="ai",
+ specials={ "compat", 0x0031, 0x0037, 0x002E },
+ unicodeslot=0x2498,
},
[0x2499]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="NUMBER EIGHTEEN FULL STOP",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0031, 0x0038, 0x002E },
- ["unicodeslot"]=0x2499, -- ⒙
+ category="no",
+ cjkwd="a",
+ description="NUMBER EIGHTEEN FULL STOP",
+ direction="en",
+ linebreak="ai",
+ specials={ "compat", 0x0031, 0x0038, 0x002E },
+ unicodeslot=0x2499,
},
[0x249A]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="NUMBER NINETEEN FULL STOP",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0031, 0x0039, 0x002E },
- ["unicodeslot"]=0x249A, -- ⒚
+ category="no",
+ cjkwd="a",
+ description="NUMBER NINETEEN FULL STOP",
+ direction="en",
+ linebreak="ai",
+ specials={ "compat", 0x0031, 0x0039, 0x002E },
+ unicodeslot=0x249A,
},
[0x249B]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="NUMBER TWENTY FULL STOP",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0032, 0x0030, 0x002E },
- ["unicodeslot"]=0x249B, -- ⒛
+ category="no",
+ cjkwd="a",
+ description="NUMBER TWENTY FULL STOP",
+ direction="en",
+ linebreak="ai",
+ specials={ "compat", 0x0032, 0x0030, 0x002E },
+ unicodeslot=0x249B,
},
[0x249C]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="PARENTHESIZED LATIN SMALL LETTER A",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0028, 0x0061, 0x0029 },
- ["unicodeslot"]=0x249C, -- ⒜
+ category="so",
+ cjkwd="a",
+ description="PARENTHESIZED LATIN SMALL LETTER A",
+ direction="l",
+ linebreak="ai",
+ specials={ "compat", 0x0028, 0x0061, 0x0029 },
+ unicodeslot=0x249C,
},
[0x249D]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="PARENTHESIZED LATIN SMALL LETTER B",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0028, 0x0062, 0x0029 },
- ["unicodeslot"]=0x249D, -- ⒝
+ category="so",
+ cjkwd="a",
+ description="PARENTHESIZED LATIN SMALL LETTER B",
+ direction="l",
+ linebreak="ai",
+ specials={ "compat", 0x0028, 0x0062, 0x0029 },
+ unicodeslot=0x249D,
},
[0x249E]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="PARENTHESIZED LATIN SMALL LETTER C",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0028, 0x0063, 0x0029 },
- ["unicodeslot"]=0x249E, -- ⒞
+ category="so",
+ cjkwd="a",
+ description="PARENTHESIZED LATIN SMALL LETTER C",
+ direction="l",
+ linebreak="ai",
+ specials={ "compat", 0x0028, 0x0063, 0x0029 },
+ unicodeslot=0x249E,
},
[0x249F]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="PARENTHESIZED LATIN SMALL LETTER D",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0028, 0x0064, 0x0029 },
- ["unicodeslot"]=0x249F, -- ⒟
+ category="so",
+ cjkwd="a",
+ description="PARENTHESIZED LATIN SMALL LETTER D",
+ direction="l",
+ linebreak="ai",
+ specials={ "compat", 0x0028, 0x0064, 0x0029 },
+ unicodeslot=0x249F,
},
[0x24A0]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="PARENTHESIZED LATIN SMALL LETTER E",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0028, 0x0065, 0x0029 },
- ["unicodeslot"]=0x24A0, -- ⒠
+ category="so",
+ cjkwd="a",
+ description="PARENTHESIZED LATIN SMALL LETTER E",
+ direction="l",
+ linebreak="ai",
+ specials={ "compat", 0x0028, 0x0065, 0x0029 },
+ unicodeslot=0x24A0,
},
[0x24A1]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="PARENTHESIZED LATIN SMALL LETTER F",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0028, 0x0066, 0x0029 },
- ["unicodeslot"]=0x24A1, -- ⒡
+ category="so",
+ cjkwd="a",
+ description="PARENTHESIZED LATIN SMALL LETTER F",
+ direction="l",
+ linebreak="ai",
+ specials={ "compat", 0x0028, 0x0066, 0x0029 },
+ unicodeslot=0x24A1,
},
[0x24A2]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="PARENTHESIZED LATIN SMALL LETTER G",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0028, 0x0067, 0x0029 },
- ["unicodeslot"]=0x24A2, -- ⒢
+ category="so",
+ cjkwd="a",
+ description="PARENTHESIZED LATIN SMALL LETTER G",
+ direction="l",
+ linebreak="ai",
+ specials={ "compat", 0x0028, 0x0067, 0x0029 },
+ unicodeslot=0x24A2,
},
[0x24A3]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="PARENTHESIZED LATIN SMALL LETTER H",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0028, 0x0068, 0x0029 },
- ["unicodeslot"]=0x24A3, -- ⒣
+ category="so",
+ cjkwd="a",
+ description="PARENTHESIZED LATIN SMALL LETTER H",
+ direction="l",
+ linebreak="ai",
+ specials={ "compat", 0x0028, 0x0068, 0x0029 },
+ unicodeslot=0x24A3,
},
[0x24A4]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="PARENTHESIZED LATIN SMALL LETTER I",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0028, 0x0069, 0x0029 },
- ["unicodeslot"]=0x24A4, -- ⒤
+ category="so",
+ cjkwd="a",
+ description="PARENTHESIZED LATIN SMALL LETTER I",
+ direction="l",
+ linebreak="ai",
+ specials={ "compat", 0x0028, 0x0069, 0x0029 },
+ unicodeslot=0x24A4,
},
[0x24A5]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="PARENTHESIZED LATIN SMALL LETTER J",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0028, 0x006A, 0x0029 },
- ["unicodeslot"]=0x24A5, -- ⒥
+ category="so",
+ cjkwd="a",
+ description="PARENTHESIZED LATIN SMALL LETTER J",
+ direction="l",
+ linebreak="ai",
+ specials={ "compat", 0x0028, 0x006A, 0x0029 },
+ unicodeslot=0x24A5,
},
[0x24A6]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="PARENTHESIZED LATIN SMALL LETTER K",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0028, 0x006B, 0x0029 },
- ["unicodeslot"]=0x24A6, -- ⒦
+ category="so",
+ cjkwd="a",
+ description="PARENTHESIZED LATIN SMALL LETTER K",
+ direction="l",
+ linebreak="ai",
+ specials={ "compat", 0x0028, 0x006B, 0x0029 },
+ unicodeslot=0x24A6,
},
[0x24A7]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="PARENTHESIZED LATIN SMALL LETTER L",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0028, 0x006C, 0x0029 },
- ["unicodeslot"]=0x24A7, -- ⒧
+ category="so",
+ cjkwd="a",
+ description="PARENTHESIZED LATIN SMALL LETTER L",
+ direction="l",
+ linebreak="ai",
+ specials={ "compat", 0x0028, 0x006C, 0x0029 },
+ unicodeslot=0x24A7,
},
[0x24A8]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="PARENTHESIZED LATIN SMALL LETTER M",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0028, 0x006D, 0x0029 },
- ["unicodeslot"]=0x24A8, -- ⒨
+ category="so",
+ cjkwd="a",
+ description="PARENTHESIZED LATIN SMALL LETTER M",
+ direction="l",
+ linebreak="ai",
+ specials={ "compat", 0x0028, 0x006D, 0x0029 },
+ unicodeslot=0x24A8,
},
[0x24A9]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="PARENTHESIZED LATIN SMALL LETTER N",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0028, 0x006E, 0x0029 },
- ["unicodeslot"]=0x24A9, -- ⒩
+ category="so",
+ cjkwd="a",
+ description="PARENTHESIZED LATIN SMALL LETTER N",
+ direction="l",
+ linebreak="ai",
+ specials={ "compat", 0x0028, 0x006E, 0x0029 },
+ unicodeslot=0x24A9,
},
[0x24AA]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="PARENTHESIZED LATIN SMALL LETTER O",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0028, 0x006F, 0x0029 },
- ["unicodeslot"]=0x24AA, -- ⒪
+ category="so",
+ cjkwd="a",
+ description="PARENTHESIZED LATIN SMALL LETTER O",
+ direction="l",
+ linebreak="ai",
+ specials={ "compat", 0x0028, 0x006F, 0x0029 },
+ unicodeslot=0x24AA,
},
[0x24AB]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="PARENTHESIZED LATIN SMALL LETTER P",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0028, 0x0070, 0x0029 },
- ["unicodeslot"]=0x24AB, -- ⒫
+ category="so",
+ cjkwd="a",
+ description="PARENTHESIZED LATIN SMALL LETTER P",
+ direction="l",
+ linebreak="ai",
+ specials={ "compat", 0x0028, 0x0070, 0x0029 },
+ unicodeslot=0x24AB,
},
[0x24AC]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="PARENTHESIZED LATIN SMALL LETTER Q",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0028, 0x0071, 0x0029 },
- ["unicodeslot"]=0x24AC, -- ⒬
+ category="so",
+ cjkwd="a",
+ description="PARENTHESIZED LATIN SMALL LETTER Q",
+ direction="l",
+ linebreak="ai",
+ specials={ "compat", 0x0028, 0x0071, 0x0029 },
+ unicodeslot=0x24AC,
},
[0x24AD]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="PARENTHESIZED LATIN SMALL LETTER R",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0028, 0x0072, 0x0029 },
- ["unicodeslot"]=0x24AD, -- ⒭
+ category="so",
+ cjkwd="a",
+ description="PARENTHESIZED LATIN SMALL LETTER R",
+ direction="l",
+ linebreak="ai",
+ specials={ "compat", 0x0028, 0x0072, 0x0029 },
+ unicodeslot=0x24AD,
},
[0x24AE]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="PARENTHESIZED LATIN SMALL LETTER S",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0028, 0x0073, 0x0029 },
- ["unicodeslot"]=0x24AE, -- ⒮
+ category="so",
+ cjkwd="a",
+ description="PARENTHESIZED LATIN SMALL LETTER S",
+ direction="l",
+ linebreak="ai",
+ specials={ "compat", 0x0028, 0x0073, 0x0029 },
+ unicodeslot=0x24AE,
},
[0x24AF]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="PARENTHESIZED LATIN SMALL LETTER T",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0028, 0x0074, 0x0029 },
- ["unicodeslot"]=0x24AF, -- ⒯
+ category="so",
+ cjkwd="a",
+ description="PARENTHESIZED LATIN SMALL LETTER T",
+ direction="l",
+ linebreak="ai",
+ specials={ "compat", 0x0028, 0x0074, 0x0029 },
+ unicodeslot=0x24AF,
},
[0x24B0]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="PARENTHESIZED LATIN SMALL LETTER U",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0028, 0x0075, 0x0029 },
- ["unicodeslot"]=0x24B0, -- ⒰
+ category="so",
+ cjkwd="a",
+ description="PARENTHESIZED LATIN SMALL LETTER U",
+ direction="l",
+ linebreak="ai",
+ specials={ "compat", 0x0028, 0x0075, 0x0029 },
+ unicodeslot=0x24B0,
},
[0x24B1]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="PARENTHESIZED LATIN SMALL LETTER V",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0028, 0x0076, 0x0029 },
- ["unicodeslot"]=0x24B1, -- ⒱
+ category="so",
+ cjkwd="a",
+ description="PARENTHESIZED LATIN SMALL LETTER V",
+ direction="l",
+ linebreak="ai",
+ specials={ "compat", 0x0028, 0x0076, 0x0029 },
+ unicodeslot=0x24B1,
},
[0x24B2]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="PARENTHESIZED LATIN SMALL LETTER W",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0028, 0x0077, 0x0029 },
- ["unicodeslot"]=0x24B2, -- ⒲
+ category="so",
+ cjkwd="a",
+ description="PARENTHESIZED LATIN SMALL LETTER W",
+ direction="l",
+ linebreak="ai",
+ specials={ "compat", 0x0028, 0x0077, 0x0029 },
+ unicodeslot=0x24B2,
},
[0x24B3]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="PARENTHESIZED LATIN SMALL LETTER X",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0028, 0x0078, 0x0029 },
- ["unicodeslot"]=0x24B3, -- ⒳
+ category="so",
+ cjkwd="a",
+ description="PARENTHESIZED LATIN SMALL LETTER X",
+ direction="l",
+ linebreak="ai",
+ specials={ "compat", 0x0028, 0x0078, 0x0029 },
+ unicodeslot=0x24B3,
},
[0x24B4]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="PARENTHESIZED LATIN SMALL LETTER Y",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0028, 0x0079, 0x0029 },
- ["unicodeslot"]=0x24B4, -- ⒴
+ category="so",
+ cjkwd="a",
+ description="PARENTHESIZED LATIN SMALL LETTER Y",
+ direction="l",
+ linebreak="ai",
+ specials={ "compat", 0x0028, 0x0079, 0x0029 },
+ unicodeslot=0x24B4,
},
[0x24B5]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="PARENTHESIZED LATIN SMALL LETTER Z",
- ["linebreak"]="ai",
- ["specials"]={ "compat", 0x0028, 0x007A, 0x0029 },
- ["unicodeslot"]=0x24B5, -- ⒵
+ category="so",
+ cjkwd="a",
+ description="PARENTHESIZED LATIN SMALL LETTER Z",
+ direction="l",
+ linebreak="ai",
+ specials={ "compat", 0x0028, 0x007A, 0x0029 },
+ unicodeslot=0x24B5,
},
[0x24B6]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="CIRCLED LATIN CAPITAL LETTER A",
- ["lccode"]=0x24D0,
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x0041 },
- ["unicodeslot"]=0x24B6, -- Ⓐ
+ category="so",
+ cjkwd="a",
+ description="CIRCLED LATIN CAPITAL LETTER A",
+ direction="l",
+ lccode=0x24D0,
+ linebreak="ai",
+ specials={ "circle", 0x0041 },
+ unicodeslot=0x24B6,
},
[0x24B7]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="CIRCLED LATIN CAPITAL LETTER B",
- ["lccode"]=0x24D1,
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x0042 },
- ["unicodeslot"]=0x24B7, -- Ⓑ
+ category="so",
+ cjkwd="a",
+ description="CIRCLED LATIN CAPITAL LETTER B",
+ direction="l",
+ lccode=0x24D1,
+ linebreak="ai",
+ specials={ "circle", 0x0042 },
+ unicodeslot=0x24B7,
},
[0x24B8]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="CIRCLED LATIN CAPITAL LETTER C",
- ["lccode"]=0x24D2,
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x0043 },
- ["unicodeslot"]=0x24B8, -- Ⓒ
+ category="so",
+ cjkwd="a",
+ description="CIRCLED LATIN CAPITAL LETTER C",
+ direction="l",
+ lccode=0x24D2,
+ linebreak="ai",
+ specials={ "circle", 0x0043 },
+ unicodeslot=0x24B8,
},
[0x24B9]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="CIRCLED LATIN CAPITAL LETTER D",
- ["lccode"]=0x24D3,
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x0044 },
- ["unicodeslot"]=0x24B9, -- Ⓓ
+ category="so",
+ cjkwd="a",
+ description="CIRCLED LATIN CAPITAL LETTER D",
+ direction="l",
+ lccode=0x24D3,
+ linebreak="ai",
+ specials={ "circle", 0x0044 },
+ unicodeslot=0x24B9,
},
[0x24BA]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="CIRCLED LATIN CAPITAL LETTER E",
- ["lccode"]=0x24D4,
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x0045 },
- ["unicodeslot"]=0x24BA, -- Ⓔ
+ category="so",
+ cjkwd="a",
+ description="CIRCLED LATIN CAPITAL LETTER E",
+ direction="l",
+ lccode=0x24D4,
+ linebreak="ai",
+ specials={ "circle", 0x0045 },
+ unicodeslot=0x24BA,
},
[0x24BB]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="CIRCLED LATIN CAPITAL LETTER F",
- ["lccode"]=0x24D5,
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x0046 },
- ["unicodeslot"]=0x24BB, -- Ⓕ
+ category="so",
+ cjkwd="a",
+ description="CIRCLED LATIN CAPITAL LETTER F",
+ direction="l",
+ lccode=0x24D5,
+ linebreak="ai",
+ specials={ "circle", 0x0046 },
+ unicodeslot=0x24BB,
},
[0x24BC]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="CIRCLED LATIN CAPITAL LETTER G",
- ["lccode"]=0x24D6,
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x0047 },
- ["unicodeslot"]=0x24BC, -- Ⓖ
+ category="so",
+ cjkwd="a",
+ description="CIRCLED LATIN CAPITAL LETTER G",
+ direction="l",
+ lccode=0x24D6,
+ linebreak="ai",
+ specials={ "circle", 0x0047 },
+ unicodeslot=0x24BC,
},
[0x24BD]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="CIRCLED LATIN CAPITAL LETTER H",
- ["lccode"]=0x24D7,
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x0048 },
- ["unicodeslot"]=0x24BD, -- Ⓗ
+ category="so",
+ cjkwd="a",
+ description="CIRCLED LATIN CAPITAL LETTER H",
+ direction="l",
+ lccode=0x24D7,
+ linebreak="ai",
+ specials={ "circle", 0x0048 },
+ unicodeslot=0x24BD,
},
[0x24BE]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="CIRCLED LATIN CAPITAL LETTER I",
- ["lccode"]=0x24D8,
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x0049 },
- ["unicodeslot"]=0x24BE, -- Ⓘ
+ category="so",
+ cjkwd="a",
+ description="CIRCLED LATIN CAPITAL LETTER I",
+ direction="l",
+ lccode=0x24D8,
+ linebreak="ai",
+ specials={ "circle", 0x0049 },
+ unicodeslot=0x24BE,
},
[0x24BF]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="CIRCLED LATIN CAPITAL LETTER J",
- ["lccode"]=0x24D9,
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x004A },
- ["unicodeslot"]=0x24BF, -- Ⓙ
+ category="so",
+ cjkwd="a",
+ description="CIRCLED LATIN CAPITAL LETTER J",
+ direction="l",
+ lccode=0x24D9,
+ linebreak="ai",
+ specials={ "circle", 0x004A },
+ unicodeslot=0x24BF,
},
[0x24C0]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="CIRCLED LATIN CAPITAL LETTER K",
- ["lccode"]=0x24DA,
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x004B },
- ["unicodeslot"]=0x24C0, -- Ⓚ
+ category="so",
+ cjkwd="a",
+ description="CIRCLED LATIN CAPITAL LETTER K",
+ direction="l",
+ lccode=0x24DA,
+ linebreak="ai",
+ specials={ "circle", 0x004B },
+ unicodeslot=0x24C0,
},
[0x24C1]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="CIRCLED LATIN CAPITAL LETTER L",
- ["lccode"]=0x24DB,
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x004C },
- ["unicodeslot"]=0x24C1, -- Ⓛ
+ category="so",
+ cjkwd="a",
+ description="CIRCLED LATIN CAPITAL LETTER L",
+ direction="l",
+ lccode=0x24DB,
+ linebreak="ai",
+ specials={ "circle", 0x004C },
+ unicodeslot=0x24C1,
},
[0x24C2]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="CIRCLED LATIN CAPITAL LETTER M",
- ["lccode"]=0x24DC,
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x004D },
- ["unicodeslot"]=0x24C2, -- Ⓜ
+ category="so",
+ cjkwd="a",
+ description="CIRCLED LATIN CAPITAL LETTER M",
+ direction="l",
+ lccode=0x24DC,
+ linebreak="ai",
+ specials={ "circle", 0x004D },
+ unicodeslot=0x24C2,
},
[0x24C3]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="CIRCLED LATIN CAPITAL LETTER N",
- ["lccode"]=0x24DD,
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x004E },
- ["unicodeslot"]=0x24C3, -- Ⓝ
+ category="so",
+ cjkwd="a",
+ description="CIRCLED LATIN CAPITAL LETTER N",
+ direction="l",
+ lccode=0x24DD,
+ linebreak="ai",
+ specials={ "circle", 0x004E },
+ unicodeslot=0x24C3,
},
[0x24C4]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="CIRCLED LATIN CAPITAL LETTER O",
- ["lccode"]=0x24DE,
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x004F },
- ["unicodeslot"]=0x24C4, -- Ⓞ
+ category="so",
+ cjkwd="a",
+ description="CIRCLED LATIN CAPITAL LETTER O",
+ direction="l",
+ lccode=0x24DE,
+ linebreak="ai",
+ specials={ "circle", 0x004F },
+ unicodeslot=0x24C4,
},
[0x24C5]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="CIRCLED LATIN CAPITAL LETTER P",
- ["lccode"]=0x24DF,
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x0050 },
- ["unicodeslot"]=0x24C5, -- Ⓟ
+ category="so",
+ cjkwd="a",
+ description="CIRCLED LATIN CAPITAL LETTER P",
+ direction="l",
+ lccode=0x24DF,
+ linebreak="ai",
+ specials={ "circle", 0x0050 },
+ unicodeslot=0x24C5,
},
[0x24C6]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="CIRCLED LATIN CAPITAL LETTER Q",
- ["lccode"]=0x24E0,
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x0051 },
- ["unicodeslot"]=0x24C6, -- Ⓠ
+ category="so",
+ cjkwd="a",
+ description="CIRCLED LATIN CAPITAL LETTER Q",
+ direction="l",
+ lccode=0x24E0,
+ linebreak="ai",
+ specials={ "circle", 0x0051 },
+ unicodeslot=0x24C6,
},
[0x24C7]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="CIRCLED LATIN CAPITAL LETTER R",
- ["lccode"]=0x24E1,
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x0052 },
- ["unicodeslot"]=0x24C7, -- Ⓡ
+ category="so",
+ cjkwd="a",
+ description="CIRCLED LATIN CAPITAL LETTER R",
+ direction="l",
+ lccode=0x24E1,
+ linebreak="ai",
+ mathclass="ord",
+ mathname="circledR",
+ specials={ "circle", 0x0052 },
+ unicodeslot=0x24C7,
},
[0x24C8]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="CIRCLED LATIN CAPITAL LETTER S",
- ["lccode"]=0x24E2,
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x0053 },
- ["unicodeslot"]=0x24C8, -- Ⓢ
+ category="so",
+ cjkwd="a",
+ description="CIRCLED LATIN CAPITAL LETTER S",
+ direction="l",
+ lccode=0x24E2,
+ linebreak="ai",
+ mathclass="ord",
+ mathname="circledS",
+ specials={ "circle", 0x0053 },
+ unicodeslot=0x24C8,
},
[0x24C9]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="CIRCLED LATIN CAPITAL LETTER T",
- ["lccode"]=0x24E3,
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x0054 },
- ["unicodeslot"]=0x24C9, -- Ⓣ
+ category="so",
+ cjkwd="a",
+ description="CIRCLED LATIN CAPITAL LETTER T",
+ direction="l",
+ lccode=0x24E3,
+ linebreak="ai",
+ specials={ "circle", 0x0054 },
+ unicodeslot=0x24C9,
},
[0x24CA]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="CIRCLED LATIN CAPITAL LETTER U",
- ["lccode"]=0x24E4,
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x0055 },
- ["unicodeslot"]=0x24CA, -- Ⓤ
+ category="so",
+ cjkwd="a",
+ description="CIRCLED LATIN CAPITAL LETTER U",
+ direction="l",
+ lccode=0x24E4,
+ linebreak="ai",
+ specials={ "circle", 0x0055 },
+ unicodeslot=0x24CA,
},
[0x24CB]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="CIRCLED LATIN CAPITAL LETTER V",
- ["lccode"]=0x24E5,
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x0056 },
- ["unicodeslot"]=0x24CB, -- Ⓥ
+ category="so",
+ cjkwd="a",
+ description="CIRCLED LATIN CAPITAL LETTER V",
+ direction="l",
+ lccode=0x24E5,
+ linebreak="ai",
+ specials={ "circle", 0x0056 },
+ unicodeslot=0x24CB,
},
[0x24CC]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="CIRCLED LATIN CAPITAL LETTER W",
- ["lccode"]=0x24E6,
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x0057 },
- ["unicodeslot"]=0x24CC, -- Ⓦ
+ category="so",
+ cjkwd="a",
+ description="CIRCLED LATIN CAPITAL LETTER W",
+ direction="l",
+ lccode=0x24E6,
+ linebreak="ai",
+ specials={ "circle", 0x0057 },
+ unicodeslot=0x24CC,
},
[0x24CD]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="CIRCLED LATIN CAPITAL LETTER X",
- ["lccode"]=0x24E7,
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x0058 },
- ["unicodeslot"]=0x24CD, -- Ⓧ
+ category="so",
+ cjkwd="a",
+ description="CIRCLED LATIN CAPITAL LETTER X",
+ direction="l",
+ lccode=0x24E7,
+ linebreak="ai",
+ specials={ "circle", 0x0058 },
+ unicodeslot=0x24CD,
},
[0x24CE]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="CIRCLED LATIN CAPITAL LETTER Y",
- ["lccode"]=0x24E8,
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x0059 },
- ["unicodeslot"]=0x24CE, -- Ⓨ
+ category="so",
+ cjkwd="a",
+ description="CIRCLED LATIN CAPITAL LETTER Y",
+ direction="l",
+ lccode=0x24E8,
+ linebreak="ai",
+ specials={ "circle", 0x0059 },
+ unicodeslot=0x24CE,
},
[0x24CF]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="CIRCLED LATIN CAPITAL LETTER Z",
- ["lccode"]=0x24E9,
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x005A },
- ["unicodeslot"]=0x24CF, -- Ⓩ
+ category="so",
+ cjkwd="a",
+ description="CIRCLED LATIN CAPITAL LETTER Z",
+ direction="l",
+ lccode=0x24E9,
+ linebreak="ai",
+ specials={ "circle", 0x005A },
+ unicodeslot=0x24CF,
},
[0x24D0]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="CIRCLED LATIN SMALL LETTER A",
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x0061 },
- ["uccode"]=0x24B6,
- ["unicodeslot"]=0x24D0, -- ⓐ
+ category="so",
+ cjkwd="a",
+ description="CIRCLED LATIN SMALL LETTER A",
+ direction="l",
+ linebreak="ai",
+ specials={ "circle", 0x0061 },
+ uccode=0x24B6,
+ unicodeslot=0x24D0,
},
[0x24D1]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="CIRCLED LATIN SMALL LETTER B",
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x0062 },
- ["uccode"]=0x24B7,
- ["unicodeslot"]=0x24D1, -- ⓑ
+ category="so",
+ cjkwd="a",
+ description="CIRCLED LATIN SMALL LETTER B",
+ direction="l",
+ linebreak="ai",
+ specials={ "circle", 0x0062 },
+ uccode=0x24B7,
+ unicodeslot=0x24D1,
},
[0x24D2]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="CIRCLED LATIN SMALL LETTER C",
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x0063 },
- ["uccode"]=0x24B8,
- ["unicodeslot"]=0x24D2, -- ⓒ
+ category="so",
+ cjkwd="a",
+ description="CIRCLED LATIN SMALL LETTER C",
+ direction="l",
+ linebreak="ai",
+ specials={ "circle", 0x0063 },
+ uccode=0x24B8,
+ unicodeslot=0x24D2,
},
[0x24D3]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="CIRCLED LATIN SMALL LETTER D",
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x0064 },
- ["uccode"]=0x24B9,
- ["unicodeslot"]=0x24D3, -- ⓓ
+ category="so",
+ cjkwd="a",
+ description="CIRCLED LATIN SMALL LETTER D",
+ direction="l",
+ linebreak="ai",
+ specials={ "circle", 0x0064 },
+ uccode=0x24B9,
+ unicodeslot=0x24D3,
},
[0x24D4]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="CIRCLED LATIN SMALL LETTER E",
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x0065 },
- ["uccode"]=0x24BA,
- ["unicodeslot"]=0x24D4, -- ⓔ
+ category="so",
+ cjkwd="a",
+ description="CIRCLED LATIN SMALL LETTER E",
+ direction="l",
+ linebreak="ai",
+ specials={ "circle", 0x0065 },
+ uccode=0x24BA,
+ unicodeslot=0x24D4,
},
[0x24D5]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="CIRCLED LATIN SMALL LETTER F",
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x0066 },
- ["uccode"]=0x24BB,
- ["unicodeslot"]=0x24D5, -- ⓕ
+ category="so",
+ cjkwd="a",
+ description="CIRCLED LATIN SMALL LETTER F",
+ direction="l",
+ linebreak="ai",
+ specials={ "circle", 0x0066 },
+ uccode=0x24BB,
+ unicodeslot=0x24D5,
},
[0x24D6]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="CIRCLED LATIN SMALL LETTER G",
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x0067 },
- ["uccode"]=0x24BC,
- ["unicodeslot"]=0x24D6, -- ⓖ
+ category="so",
+ cjkwd="a",
+ description="CIRCLED LATIN SMALL LETTER G",
+ direction="l",
+ linebreak="ai",
+ specials={ "circle", 0x0067 },
+ uccode=0x24BC,
+ unicodeslot=0x24D6,
},
[0x24D7]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="CIRCLED LATIN SMALL LETTER H",
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x0068 },
- ["uccode"]=0x24BD,
- ["unicodeslot"]=0x24D7, -- ⓗ
+ category="so",
+ cjkwd="a",
+ description="CIRCLED LATIN SMALL LETTER H",
+ direction="l",
+ linebreak="ai",
+ specials={ "circle", 0x0068 },
+ uccode=0x24BD,
+ unicodeslot=0x24D7,
},
[0x24D8]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="CIRCLED LATIN SMALL LETTER I",
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x0069 },
- ["uccode"]=0x24BE,
- ["unicodeslot"]=0x24D8, -- ⓘ
+ category="so",
+ cjkwd="a",
+ description="CIRCLED LATIN SMALL LETTER I",
+ direction="l",
+ linebreak="ai",
+ specials={ "circle", 0x0069 },
+ uccode=0x24BE,
+ unicodeslot=0x24D8,
},
[0x24D9]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="CIRCLED LATIN SMALL LETTER J",
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x006A },
- ["uccode"]=0x24BF,
- ["unicodeslot"]=0x24D9, -- ⓙ
+ category="so",
+ cjkwd="a",
+ description="CIRCLED LATIN SMALL LETTER J",
+ direction="l",
+ linebreak="ai",
+ specials={ "circle", 0x006A },
+ uccode=0x24BF,
+ unicodeslot=0x24D9,
},
[0x24DA]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="CIRCLED LATIN SMALL LETTER K",
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x006B },
- ["uccode"]=0x24C0,
- ["unicodeslot"]=0x24DA, -- ⓚ
+ category="so",
+ cjkwd="a",
+ description="CIRCLED LATIN SMALL LETTER K",
+ direction="l",
+ linebreak="ai",
+ specials={ "circle", 0x006B },
+ uccode=0x24C0,
+ unicodeslot=0x24DA,
},
[0x24DB]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="CIRCLED LATIN SMALL LETTER L",
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x006C },
- ["uccode"]=0x24C1,
- ["unicodeslot"]=0x24DB, -- ⓛ
+ category="so",
+ cjkwd="a",
+ description="CIRCLED LATIN SMALL LETTER L",
+ direction="l",
+ linebreak="ai",
+ specials={ "circle", 0x006C },
+ uccode=0x24C1,
+ unicodeslot=0x24DB,
},
[0x24DC]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="CIRCLED LATIN SMALL LETTER M",
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x006D },
- ["uccode"]=0x24C2,
- ["unicodeslot"]=0x24DC, -- ⓜ
+ category="so",
+ cjkwd="a",
+ description="CIRCLED LATIN SMALL LETTER M",
+ direction="l",
+ linebreak="ai",
+ specials={ "circle", 0x006D },
+ uccode=0x24C2,
+ unicodeslot=0x24DC,
},
[0x24DD]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="CIRCLED LATIN SMALL LETTER N",
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x006E },
- ["uccode"]=0x24C3,
- ["unicodeslot"]=0x24DD, -- ⓝ
+ category="so",
+ cjkwd="a",
+ description="CIRCLED LATIN SMALL LETTER N",
+ direction="l",
+ linebreak="ai",
+ specials={ "circle", 0x006E },
+ uccode=0x24C3,
+ unicodeslot=0x24DD,
},
[0x24DE]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="CIRCLED LATIN SMALL LETTER O",
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x006F },
- ["uccode"]=0x24C4,
- ["unicodeslot"]=0x24DE, -- ⓞ
+ category="so",
+ cjkwd="a",
+ description="CIRCLED LATIN SMALL LETTER O",
+ direction="l",
+ linebreak="ai",
+ specials={ "circle", 0x006F },
+ uccode=0x24C4,
+ unicodeslot=0x24DE,
},
[0x24DF]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="CIRCLED LATIN SMALL LETTER P",
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x0070 },
- ["uccode"]=0x24C5,
- ["unicodeslot"]=0x24DF, -- ⓟ
+ category="so",
+ cjkwd="a",
+ description="CIRCLED LATIN SMALL LETTER P",
+ direction="l",
+ linebreak="ai",
+ specials={ "circle", 0x0070 },
+ uccode=0x24C5,
+ unicodeslot=0x24DF,
},
[0x24E0]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="CIRCLED LATIN SMALL LETTER Q",
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x0071 },
- ["uccode"]=0x24C6,
- ["unicodeslot"]=0x24E0, -- ⓠ
+ category="so",
+ cjkwd="a",
+ description="CIRCLED LATIN SMALL LETTER Q",
+ direction="l",
+ linebreak="ai",
+ specials={ "circle", 0x0071 },
+ uccode=0x24C6,
+ unicodeslot=0x24E0,
},
[0x24E1]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="CIRCLED LATIN SMALL LETTER R",
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x0072 },
- ["uccode"]=0x24C7,
- ["unicodeslot"]=0x24E1, -- ⓡ
+ category="so",
+ cjkwd="a",
+ description="CIRCLED LATIN SMALL LETTER R",
+ direction="l",
+ linebreak="ai",
+ specials={ "circle", 0x0072 },
+ uccode=0x24C7,
+ unicodeslot=0x24E1,
},
[0x24E2]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="CIRCLED LATIN SMALL LETTER S",
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x0073 },
- ["uccode"]=0x24C8,
- ["unicodeslot"]=0x24E2, -- ⓢ
+ category="so",
+ cjkwd="a",
+ description="CIRCLED LATIN SMALL LETTER S",
+ direction="l",
+ linebreak="ai",
+ specials={ "circle", 0x0073 },
+ uccode=0x24C8,
+ unicodeslot=0x24E2,
},
[0x24E3]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="CIRCLED LATIN SMALL LETTER T",
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x0074 },
- ["uccode"]=0x24C9,
- ["unicodeslot"]=0x24E3, -- ⓣ
+ category="so",
+ cjkwd="a",
+ description="CIRCLED LATIN SMALL LETTER T",
+ direction="l",
+ linebreak="ai",
+ specials={ "circle", 0x0074 },
+ uccode=0x24C9,
+ unicodeslot=0x24E3,
},
[0x24E4]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="CIRCLED LATIN SMALL LETTER U",
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x0075 },
- ["uccode"]=0x24CA,
- ["unicodeslot"]=0x24E4, -- ⓤ
+ category="so",
+ cjkwd="a",
+ description="CIRCLED LATIN SMALL LETTER U",
+ direction="l",
+ linebreak="ai",
+ specials={ "circle", 0x0075 },
+ uccode=0x24CA,
+ unicodeslot=0x24E4,
},
[0x24E5]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="CIRCLED LATIN SMALL LETTER V",
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x0076 },
- ["uccode"]=0x24CB,
- ["unicodeslot"]=0x24E5, -- ⓥ
+ category="so",
+ cjkwd="a",
+ description="CIRCLED LATIN SMALL LETTER V",
+ direction="l",
+ linebreak="ai",
+ specials={ "circle", 0x0076 },
+ uccode=0x24CB,
+ unicodeslot=0x24E5,
},
[0x24E6]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="CIRCLED LATIN SMALL LETTER W",
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x0077 },
- ["uccode"]=0x24CC,
- ["unicodeslot"]=0x24E6, -- ⓦ
+ category="so",
+ cjkwd="a",
+ description="CIRCLED LATIN SMALL LETTER W",
+ direction="l",
+ linebreak="ai",
+ specials={ "circle", 0x0077 },
+ uccode=0x24CC,
+ unicodeslot=0x24E6,
},
[0x24E7]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="CIRCLED LATIN SMALL LETTER X",
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x0078 },
- ["uccode"]=0x24CD,
- ["unicodeslot"]=0x24E7, -- ⓧ
+ category="so",
+ cjkwd="a",
+ description="CIRCLED LATIN SMALL LETTER X",
+ direction="l",
+ linebreak="ai",
+ specials={ "circle", 0x0078 },
+ uccode=0x24CD,
+ unicodeslot=0x24E7,
},
[0x24E8]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="CIRCLED LATIN SMALL LETTER Y",
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x0079 },
- ["uccode"]=0x24CE,
- ["unicodeslot"]=0x24E8, -- ⓨ
+ category="so",
+ cjkwd="a",
+ description="CIRCLED LATIN SMALL LETTER Y",
+ direction="l",
+ linebreak="ai",
+ specials={ "circle", 0x0079 },
+ uccode=0x24CE,
+ unicodeslot=0x24E8,
},
[0x24E9]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="CIRCLED LATIN SMALL LETTER Z",
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x007A },
- ["uccode"]=0x24CF,
- ["unicodeslot"]=0x24E9, -- ⓩ
+ category="so",
+ cjkwd="a",
+ description="CIRCLED LATIN SMALL LETTER Z",
+ direction="l",
+ linebreak="ai",
+ specials={ "circle", 0x007A },
+ uccode=0x24CF,
+ unicodeslot=0x24E9,
},
[0x24EA]={
- ["category"]="no",
- ["description"]="CIRCLED DIGIT ZERO",
- ["linebreak"]="ai",
- ["specials"]={ "circle", 0x0030 },
- ["unicodeslot"]=0x24EA, -- ⓪
+ category="no",
+ description="CIRCLED DIGIT ZERO",
+ direction="on",
+ linebreak="ai",
+ specials={ "circle", 0x0030 },
+ unicodeslot=0x24EA,
},
[0x24EB]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="NEGATIVE CIRCLED NUMBER ELEVEN",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x24EB, -- ⓫
+ category="no",
+ cjkwd="a",
+ description="NEGATIVE CIRCLED NUMBER ELEVEN",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x24EB,
},
[0x24EC]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="NEGATIVE CIRCLED NUMBER TWELVE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x24EC, -- ⓬
+ category="no",
+ cjkwd="a",
+ description="NEGATIVE CIRCLED NUMBER TWELVE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x24EC,
},
[0x24ED]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="NEGATIVE CIRCLED NUMBER THIRTEEN",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x24ED, -- ⓭
+ category="no",
+ cjkwd="a",
+ description="NEGATIVE CIRCLED NUMBER THIRTEEN",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x24ED,
},
[0x24EE]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="NEGATIVE CIRCLED NUMBER FOURTEEN",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x24EE, -- ⓮
+ category="no",
+ cjkwd="a",
+ description="NEGATIVE CIRCLED NUMBER FOURTEEN",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x24EE,
},
[0x24EF]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="NEGATIVE CIRCLED NUMBER FIFTEEN",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x24EF, -- ⓯
+ category="no",
+ cjkwd="a",
+ description="NEGATIVE CIRCLED NUMBER FIFTEEN",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x24EF,
},
[0x24F0]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="NEGATIVE CIRCLED NUMBER SIXTEEN",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x24F0, -- ⓰
+ category="no",
+ cjkwd="a",
+ description="NEGATIVE CIRCLED NUMBER SIXTEEN",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x24F0,
},
[0x24F1]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="NEGATIVE CIRCLED NUMBER SEVENTEEN",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x24F1, -- ⓱
+ category="no",
+ cjkwd="a",
+ description="NEGATIVE CIRCLED NUMBER SEVENTEEN",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x24F1,
},
[0x24F2]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="NEGATIVE CIRCLED NUMBER EIGHTEEN",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x24F2, -- ⓲
+ category="no",
+ cjkwd="a",
+ description="NEGATIVE CIRCLED NUMBER EIGHTEEN",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x24F2,
},
[0x24F3]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="NEGATIVE CIRCLED NUMBER NINETEEN",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x24F3, -- ⓳
+ category="no",
+ cjkwd="a",
+ description="NEGATIVE CIRCLED NUMBER NINETEEN",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x24F3,
},
[0x24F4]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="NEGATIVE CIRCLED NUMBER TWENTY",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x24F4, -- ⓴
+ category="no",
+ cjkwd="a",
+ description="NEGATIVE CIRCLED NUMBER TWENTY",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x24F4,
},
[0x24F5]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="DOUBLE CIRCLED DIGIT ONE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x24F5, -- ⓵
+ category="no",
+ cjkwd="a",
+ description="DOUBLE CIRCLED DIGIT ONE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x24F5,
},
[0x24F6]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="DOUBLE CIRCLED DIGIT TWO",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x24F6, -- ⓶
+ category="no",
+ cjkwd="a",
+ description="DOUBLE CIRCLED DIGIT TWO",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x24F6,
},
[0x24F7]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="DOUBLE CIRCLED DIGIT THREE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x24F7, -- ⓷
+ category="no",
+ cjkwd="a",
+ description="DOUBLE CIRCLED DIGIT THREE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x24F7,
},
[0x24F8]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="DOUBLE CIRCLED DIGIT FOUR",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x24F8, -- ⓸
+ category="no",
+ cjkwd="a",
+ description="DOUBLE CIRCLED DIGIT FOUR",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x24F8,
},
[0x24F9]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="DOUBLE CIRCLED DIGIT FIVE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x24F9, -- ⓹
+ category="no",
+ cjkwd="a",
+ description="DOUBLE CIRCLED DIGIT FIVE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x24F9,
},
[0x24FA]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="DOUBLE CIRCLED DIGIT SIX",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x24FA, -- ⓺
+ category="no",
+ cjkwd="a",
+ description="DOUBLE CIRCLED DIGIT SIX",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x24FA,
},
[0x24FB]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="DOUBLE CIRCLED DIGIT SEVEN",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x24FB, -- ⓻
+ category="no",
+ cjkwd="a",
+ description="DOUBLE CIRCLED DIGIT SEVEN",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x24FB,
},
[0x24FC]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="DOUBLE CIRCLED DIGIT EIGHT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x24FC, -- ⓼
+ category="no",
+ cjkwd="a",
+ description="DOUBLE CIRCLED DIGIT EIGHT",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x24FC,
},
[0x24FD]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="DOUBLE CIRCLED DIGIT NINE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x24FD, -- ⓽
+ category="no",
+ cjkwd="a",
+ description="DOUBLE CIRCLED DIGIT NINE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x24FD,
},
[0x24FE]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="DOUBLE CIRCLED NUMBER TEN",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x24FE, -- ⓾
+ category="no",
+ cjkwd="a",
+ description="DOUBLE CIRCLED NUMBER TEN",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x24FE,
},
[0x24FF]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="NEGATIVE CIRCLED DIGIT ZERO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x24FF, -- ⓿
+ category="no",
+ cjkwd="a",
+ description="NEGATIVE CIRCLED DIGIT ZERO",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x24FF,
},
[0x2500]={
- ["adobename"]="SF100000",
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS LIGHT HORIZONTAL",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2500, -- ─
+ adobename="SF100000",
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS LIGHT HORIZONTAL",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2500,
},
[0x2501]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS HEAVY HORIZONTAL",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2501, -- ━
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS HEAVY HORIZONTAL",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2501,
},
[0x2502]={
- ["adobename"]="SF110000",
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS LIGHT VERTICAL",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2502, -- │
+ adobename="SF110000",
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS LIGHT VERTICAL",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2502,
},
[0x2503]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS HEAVY VERTICAL",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2503, -- ┃
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS HEAVY VERTICAL",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2503,
},
[0x2504]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS LIGHT TRIPLE DASH HORIZONTAL",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2504, -- ┄
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS LIGHT TRIPLE DASH HORIZONTAL",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2504,
},
[0x2505]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS HEAVY TRIPLE DASH HORIZONTAL",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2505, -- ┅
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS HEAVY TRIPLE DASH HORIZONTAL",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2505,
},
[0x2506]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS LIGHT TRIPLE DASH VERTICAL",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2506, -- ┆
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS LIGHT TRIPLE DASH VERTICAL",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2506,
},
[0x2507]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS HEAVY TRIPLE DASH VERTICAL",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2507, -- ┇
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS HEAVY TRIPLE DASH VERTICAL",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2507,
},
[0x2508]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS LIGHT QUADRUPLE DASH HORIZONTAL",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2508, -- ┈
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS LIGHT QUADRUPLE DASH HORIZONTAL",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2508,
},
[0x2509]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS HEAVY QUADRUPLE DASH HORIZONTAL",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2509, -- ┉
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS HEAVY QUADRUPLE DASH HORIZONTAL",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2509,
},
[0x250A]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS LIGHT QUADRUPLE DASH VERTICAL",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x250A, -- ┊
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS LIGHT QUADRUPLE DASH VERTICAL",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x250A,
},
[0x250B]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS HEAVY QUADRUPLE DASH VERTICAL",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x250B, -- ┋
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS HEAVY QUADRUPLE DASH VERTICAL",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x250B,
},
[0x250C]={
- ["adobename"]="SF10000",
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS LIGHT DOWN AND RIGHT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x250C, -- ┌
+ adobename="SF10000",
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS LIGHT DOWN AND RIGHT",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x250C,
},
[0x250D]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS DOWN LIGHT AND RIGHT HEAVY",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x250D, -- ┍
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS DOWN LIGHT AND RIGHT HEAVY",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x250D,
},
[0x250E]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS DOWN HEAVY AND RIGHT LIGHT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x250E, -- ┎
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS DOWN HEAVY AND RIGHT LIGHT",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x250E,
},
[0x250F]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS HEAVY DOWN AND RIGHT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x250F, -- ┏
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS HEAVY DOWN AND RIGHT",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x250F,
},
[0x2510]={
- ["adobename"]="SF30000",
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS LIGHT DOWN AND LEFT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2510, -- ┐
+ adobename="SF30000",
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS LIGHT DOWN AND LEFT",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2510,
},
[0x2511]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS DOWN LIGHT AND LEFT HEAVY",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2511, -- ┑
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS DOWN LIGHT AND LEFT HEAVY",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2511,
},
[0x2512]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS DOWN HEAVY AND LEFT LIGHT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2512, -- ┒
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS DOWN HEAVY AND LEFT LIGHT",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2512,
},
[0x2513]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS HEAVY DOWN AND LEFT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2513, -- ┓
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS HEAVY DOWN AND LEFT",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2513,
},
[0x2514]={
- ["adobename"]="SF20000",
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS LIGHT UP AND RIGHT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2514, -- └
+ adobename="SF20000",
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS LIGHT UP AND RIGHT",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2514,
},
[0x2515]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS UP LIGHT AND RIGHT HEAVY",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2515, -- ┕
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS UP LIGHT AND RIGHT HEAVY",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2515,
},
[0x2516]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS UP HEAVY AND RIGHT LIGHT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2516, -- ┖
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS UP HEAVY AND RIGHT LIGHT",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2516,
},
[0x2517]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS HEAVY UP AND RIGHT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2517, -- ┗
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS HEAVY UP AND RIGHT",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2517,
},
[0x2518]={
- ["adobename"]="SF40000",
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS LIGHT UP AND LEFT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2518, -- ┘
+ adobename="SF40000",
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS LIGHT UP AND LEFT",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2518,
},
[0x2519]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS UP LIGHT AND LEFT HEAVY",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2519, -- ┙
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS UP LIGHT AND LEFT HEAVY",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2519,
},
[0x251A]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS UP HEAVY AND LEFT LIGHT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x251A, -- ┚
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS UP HEAVY AND LEFT LIGHT",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x251A,
},
[0x251B]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS HEAVY UP AND LEFT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x251B, -- ┛
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS HEAVY UP AND LEFT",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x251B,
},
[0x251C]={
- ["adobename"]="SF80000",
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS LIGHT VERTICAL AND RIGHT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x251C, -- ├
+ adobename="SF80000",
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS LIGHT VERTICAL AND RIGHT",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x251C,
},
[0x251D]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x251D, -- ┝
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x251D,
},
[0x251E]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS UP HEAVY AND RIGHT DOWN LIGHT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x251E, -- ┞
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS UP HEAVY AND RIGHT DOWN LIGHT",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x251E,
},
[0x251F]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS DOWN HEAVY AND RIGHT UP LIGHT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x251F, -- ┟
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS DOWN HEAVY AND RIGHT UP LIGHT",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x251F,
},
[0x2520]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2520, -- ┠
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2520,
},
[0x2521]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS DOWN LIGHT AND RIGHT UP HEAVY",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2521, -- ┡
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS DOWN LIGHT AND RIGHT UP HEAVY",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2521,
},
[0x2522]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS UP LIGHT AND RIGHT DOWN HEAVY",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2522, -- ┢
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS UP LIGHT AND RIGHT DOWN HEAVY",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2522,
},
[0x2523]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS HEAVY VERTICAL AND RIGHT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2523, -- ┣
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS HEAVY VERTICAL AND RIGHT",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2523,
},
[0x2524]={
- ["adobename"]="SF90000",
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS LIGHT VERTICAL AND LEFT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2524, -- ┤
+ adobename="SF90000",
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS LIGHT VERTICAL AND LEFT",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2524,
},
[0x2525]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2525, -- ┥
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2525,
},
[0x2526]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS UP HEAVY AND LEFT DOWN LIGHT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2526, -- ┦
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS UP HEAVY AND LEFT DOWN LIGHT",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2526,
},
[0x2527]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS DOWN HEAVY AND LEFT UP LIGHT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2527, -- ┧
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS DOWN HEAVY AND LEFT UP LIGHT",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2527,
},
[0x2528]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2528, -- ┨
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2528,
},
[0x2529]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS DOWN LIGHT AND LEFT UP HEAVY",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2529, -- ┩
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS DOWN LIGHT AND LEFT UP HEAVY",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2529,
},
[0x252A]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS UP LIGHT AND LEFT DOWN HEAVY",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x252A, -- ┪
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS UP LIGHT AND LEFT DOWN HEAVY",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x252A,
},
[0x252B]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS HEAVY VERTICAL AND LEFT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x252B, -- ┫
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS HEAVY VERTICAL AND LEFT",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x252B,
},
[0x252C]={
- ["adobename"]="SF60000",
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS LIGHT DOWN AND HORIZONTAL",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x252C, -- ┬
+ adobename="SF60000",
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS LIGHT DOWN AND HORIZONTAL",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x252C,
},
[0x252D]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS LEFT HEAVY AND RIGHT DOWN LIGHT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x252D, -- ┭
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS LEFT HEAVY AND RIGHT DOWN LIGHT",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x252D,
},
[0x252E]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS RIGHT HEAVY AND LEFT DOWN LIGHT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x252E, -- ┮
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS RIGHT HEAVY AND LEFT DOWN LIGHT",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x252E,
},
[0x252F]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x252F, -- ┯
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x252F,
},
[0x2530]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2530, -- ┰
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2530,
},
[0x2531]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS RIGHT LIGHT AND LEFT DOWN HEAVY",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2531, -- ┱
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS RIGHT LIGHT AND LEFT DOWN HEAVY",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2531,
},
[0x2532]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS LEFT LIGHT AND RIGHT DOWN HEAVY",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2532, -- ┲
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS LEFT LIGHT AND RIGHT DOWN HEAVY",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2532,
},
[0x2533]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS HEAVY DOWN AND HORIZONTAL",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2533, -- ┳
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS HEAVY DOWN AND HORIZONTAL",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2533,
},
[0x2534]={
- ["adobename"]="SF70000",
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS LIGHT UP AND HORIZONTAL",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2534, -- ┴
+ adobename="SF70000",
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS LIGHT UP AND HORIZONTAL",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2534,
},
[0x2535]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS LEFT HEAVY AND RIGHT UP LIGHT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2535, -- ┵
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS LEFT HEAVY AND RIGHT UP LIGHT",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2535,
},
[0x2536]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS RIGHT HEAVY AND LEFT UP LIGHT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2536, -- ┶
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS RIGHT HEAVY AND LEFT UP LIGHT",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2536,
},
[0x2537]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2537, -- ┷
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2537,
},
[0x2538]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2538, -- ┸
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2538,
},
[0x2539]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS RIGHT LIGHT AND LEFT UP HEAVY",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2539, -- ┹
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS RIGHT LIGHT AND LEFT UP HEAVY",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2539,
},
[0x253A]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS LEFT LIGHT AND RIGHT UP HEAVY",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x253A, -- ┺
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS LEFT LIGHT AND RIGHT UP HEAVY",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x253A,
},
[0x253B]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS HEAVY UP AND HORIZONTAL",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x253B, -- ┻
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS HEAVY UP AND HORIZONTAL",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x253B,
},
[0x253C]={
- ["adobename"]="SF50000",
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x253C, -- ┼
+ adobename="SF50000",
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x253C,
},
[0x253D]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS LEFT HEAVY AND RIGHT VERTICAL LIGHT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x253D, -- ┽
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS LEFT HEAVY AND RIGHT VERTICAL LIGHT",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x253D,
},
[0x253E]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS RIGHT HEAVY AND LEFT VERTICAL LIGHT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x253E, -- ┾
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS RIGHT HEAVY AND LEFT VERTICAL LIGHT",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x253E,
},
[0x253F]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x253F, -- ┿
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x253F,
},
[0x2540]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS UP HEAVY AND DOWN HORIZONTAL LIGHT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2540, -- ╀
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS UP HEAVY AND DOWN HORIZONTAL LIGHT",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2540,
},
[0x2541]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS DOWN HEAVY AND UP HORIZONTAL LIGHT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2541, -- ╁
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS DOWN HEAVY AND UP HORIZONTAL LIGHT",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2541,
},
[0x2542]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2542, -- ╂
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2542,
},
[0x2543]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS LEFT UP HEAVY AND RIGHT DOWN LIGHT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2543, -- ╃
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS LEFT UP HEAVY AND RIGHT DOWN LIGHT",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2543,
},
[0x2544]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS RIGHT UP HEAVY AND LEFT DOWN LIGHT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2544, -- ╄
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS RIGHT UP HEAVY AND LEFT DOWN LIGHT",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2544,
},
[0x2545]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS LEFT DOWN HEAVY AND RIGHT UP LIGHT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2545, -- ╅
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS LEFT DOWN HEAVY AND RIGHT UP LIGHT",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2545,
},
[0x2546]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS RIGHT DOWN HEAVY AND LEFT UP LIGHT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2546, -- ╆
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS RIGHT DOWN HEAVY AND LEFT UP LIGHT",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2546,
},
[0x2547]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS DOWN LIGHT AND UP HORIZONTAL HEAVY",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2547, -- ╇
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS DOWN LIGHT AND UP HORIZONTAL HEAVY",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2547,
},
[0x2548]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS UP LIGHT AND DOWN HORIZONTAL HEAVY",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2548, -- ╈
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS UP LIGHT AND DOWN HORIZONTAL HEAVY",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2548,
},
[0x2549]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS RIGHT LIGHT AND LEFT VERTICAL HEAVY",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2549, -- ╉
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS RIGHT LIGHT AND LEFT VERTICAL HEAVY",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2549,
},
[0x254A]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS LEFT LIGHT AND RIGHT VERTICAL HEAVY",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x254A, -- ╊
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS LEFT LIGHT AND RIGHT VERTICAL HEAVY",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x254A,
},
[0x254B]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x254B, -- ╋
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x254B,
},
[0x254C]={
- ["category"]="so",
- ["description"]="BOX DRAWINGS LIGHT DOUBLE DASH HORIZONTAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x254C, -- ╌
+ category="so",
+ description="BOX DRAWINGS LIGHT DOUBLE DASH HORIZONTAL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x254C,
},
[0x254D]={
- ["category"]="so",
- ["description"]="BOX DRAWINGS HEAVY DOUBLE DASH HORIZONTAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x254D, -- ╍
+ category="so",
+ description="BOX DRAWINGS HEAVY DOUBLE DASH HORIZONTAL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x254D,
},
[0x254E]={
- ["category"]="so",
- ["description"]="BOX DRAWINGS LIGHT DOUBLE DASH VERTICAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x254E, -- ╎
+ category="so",
+ description="BOX DRAWINGS LIGHT DOUBLE DASH VERTICAL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x254E,
},
[0x254F]={
- ["category"]="so",
- ["description"]="BOX DRAWINGS HEAVY DOUBLE DASH VERTICAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x254F, -- ╏
+ category="so",
+ description="BOX DRAWINGS HEAVY DOUBLE DASH VERTICAL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x254F,
},
[0x2550]={
- ["adobename"]="SF430000",
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS DOUBLE HORIZONTAL",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2550, -- ═
+ adobename="SF430000",
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS DOUBLE HORIZONTAL",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2550,
},
[0x2551]={
- ["adobename"]="SF240000",
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS DOUBLE VERTICAL",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2551, -- ║
+ adobename="SF240000",
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS DOUBLE VERTICAL",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2551,
},
[0x2552]={
- ["adobename"]="SF510000",
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2552, -- ╒
+ adobename="SF510000",
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2552,
},
[0x2553]={
- ["adobename"]="SF520000",
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2553, -- ╓
+ adobename="SF520000",
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2553,
},
[0x2554]={
- ["adobename"]="SF390000",
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS DOUBLE DOWN AND RIGHT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2554, -- ╔
+ adobename="SF390000",
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS DOUBLE DOWN AND RIGHT",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2554,
},
[0x2555]={
- ["adobename"]="SF220000",
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2555, -- ╕
+ adobename="SF220000",
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2555,
},
[0x2556]={
- ["adobename"]="SF210000",
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2556, -- ╖
+ adobename="SF210000",
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2556,
},
[0x2557]={
- ["adobename"]="SF250000",
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS DOUBLE DOWN AND LEFT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2557, -- ╗
+ adobename="SF250000",
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS DOUBLE DOWN AND LEFT",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2557,
},
[0x2558]={
- ["adobename"]="SF500000",
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2558, -- ╘
+ adobename="SF500000",
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2558,
},
[0x2559]={
- ["adobename"]="SF490000",
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2559, -- ╙
+ adobename="SF490000",
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2559,
},
[0x255A]={
- ["adobename"]="SF380000",
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS DOUBLE UP AND RIGHT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x255A, -- ╚
+ adobename="SF380000",
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS DOUBLE UP AND RIGHT",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x255A,
},
[0x255B]={
- ["adobename"]="SF280000",
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS UP SINGLE AND LEFT DOUBLE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x255B, -- ╛
+ adobename="SF280000",
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS UP SINGLE AND LEFT DOUBLE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x255B,
},
[0x255C]={
- ["adobename"]="SF270000",
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS UP DOUBLE AND LEFT SINGLE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x255C, -- ╜
+ adobename="SF270000",
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS UP DOUBLE AND LEFT SINGLE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x255C,
},
[0x255D]={
- ["adobename"]="SF260000",
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS DOUBLE UP AND LEFT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x255D, -- ╝
+ adobename="SF260000",
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS DOUBLE UP AND LEFT",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x255D,
},
[0x255E]={
- ["adobename"]="SF360000",
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x255E, -- ╞
+ adobename="SF360000",
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x255E,
},
[0x255F]={
- ["adobename"]="SF370000",
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x255F, -- ╟
+ adobename="SF370000",
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x255F,
},
[0x2560]={
- ["adobename"]="SF420000",
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS DOUBLE VERTICAL AND RIGHT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2560, -- ╠
+ adobename="SF420000",
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS DOUBLE VERTICAL AND RIGHT",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2560,
},
[0x2561]={
- ["adobename"]="SF190000",
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2561, -- ╡
+ adobename="SF190000",
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2561,
},
[0x2562]={
- ["adobename"]="SF200000",
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2562, -- ╢
+ adobename="SF200000",
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2562,
},
[0x2563]={
- ["adobename"]="SF230000",
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS DOUBLE VERTICAL AND LEFT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2563, -- ╣
+ adobename="SF230000",
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS DOUBLE VERTICAL AND LEFT",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2563,
},
[0x2564]={
- ["adobename"]="SF470000",
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2564, -- ╤
+ adobename="SF470000",
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2564,
},
[0x2565]={
- ["adobename"]="SF480000",
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2565, -- ╥
+ adobename="SF480000",
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2565,
},
[0x2566]={
- ["adobename"]="SF410000",
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2566, -- ╦
+ adobename="SF410000",
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2566,
},
[0x2567]={
- ["adobename"]="SF450000",
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2567, -- ╧
+ adobename="SF450000",
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2567,
},
[0x2568]={
- ["adobename"]="SF460000",
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2568, -- ╨
+ adobename="SF460000",
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2568,
},
[0x2569]={
- ["adobename"]="SF400000",
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS DOUBLE UP AND HORIZONTAL",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2569, -- ╩
+ adobename="SF400000",
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS DOUBLE UP AND HORIZONTAL",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2569,
},
[0x256A]={
- ["adobename"]="SF540000",
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x256A, -- ╪
+ adobename="SF540000",
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x256A,
},
[0x256B]={
- ["adobename"]="SF530000",
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x256B, -- ╫
+ adobename="SF530000",
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x256B,
},
[0x256C]={
- ["adobename"]="SF440000",
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x256C, -- ╬
+ adobename="SF440000",
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x256C,
},
[0x256D]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS LIGHT ARC DOWN AND RIGHT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x256D, -- ╭
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS LIGHT ARC DOWN AND RIGHT",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x256D,
},
[0x256E]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS LIGHT ARC DOWN AND LEFT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x256E, -- ╮
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS LIGHT ARC DOWN AND LEFT",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x256E,
},
[0x256F]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS LIGHT ARC UP AND LEFT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x256F, -- ╯
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS LIGHT ARC UP AND LEFT",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x256F,
},
[0x2570]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS LIGHT ARC UP AND RIGHT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2570, -- ╰
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS LIGHT ARC UP AND RIGHT",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2570,
},
[0x2571]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2571, -- ╱
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2571,
},
[0x2572]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2572, -- ╲
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2572,
},
[0x2573]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BOX DRAWINGS LIGHT DIAGONAL CROSS",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2573, -- ╳
+ category="so",
+ cjkwd="a",
+ description="BOX DRAWINGS LIGHT DIAGONAL CROSS",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2573,
},
[0x2574]={
- ["category"]="so",
- ["description"]="BOX DRAWINGS LIGHT LEFT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2574, -- ╴
+ category="so",
+ description="BOX DRAWINGS LIGHT LEFT",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2574,
},
[0x2575]={
- ["category"]="so",
- ["description"]="BOX DRAWINGS LIGHT UP",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2575, -- ╵
+ category="so",
+ description="BOX DRAWINGS LIGHT UP",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2575,
},
[0x2576]={
- ["category"]="so",
- ["description"]="BOX DRAWINGS LIGHT RIGHT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2576, -- ╶
+ category="so",
+ description="BOX DRAWINGS LIGHT RIGHT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2576,
},
[0x2577]={
- ["category"]="so",
- ["description"]="BOX DRAWINGS LIGHT DOWN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2577, -- ╷
+ category="so",
+ description="BOX DRAWINGS LIGHT DOWN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2577,
},
[0x2578]={
- ["category"]="so",
- ["description"]="BOX DRAWINGS HEAVY LEFT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2578, -- ╸
+ category="so",
+ description="BOX DRAWINGS HEAVY LEFT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2578,
},
[0x2579]={
- ["category"]="so",
- ["description"]="BOX DRAWINGS HEAVY UP",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2579, -- ╹
+ category="so",
+ description="BOX DRAWINGS HEAVY UP",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2579,
},
[0x257A]={
- ["category"]="so",
- ["description"]="BOX DRAWINGS HEAVY RIGHT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x257A, -- ╺
+ category="so",
+ description="BOX DRAWINGS HEAVY RIGHT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x257A,
},
[0x257B]={
- ["category"]="so",
- ["description"]="BOX DRAWINGS HEAVY DOWN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x257B, -- ╻
+ category="so",
+ description="BOX DRAWINGS HEAVY DOWN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x257B,
},
[0x257C]={
- ["category"]="so",
- ["description"]="BOX DRAWINGS LIGHT LEFT AND HEAVY RIGHT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x257C, -- ╼
+ category="so",
+ description="BOX DRAWINGS LIGHT LEFT AND HEAVY RIGHT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x257C,
},
[0x257D]={
- ["category"]="so",
- ["description"]="BOX DRAWINGS LIGHT UP AND HEAVY DOWN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x257D, -- ╽
+ category="so",
+ description="BOX DRAWINGS LIGHT UP AND HEAVY DOWN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x257D,
},
[0x257E]={
- ["category"]="so",
- ["description"]="BOX DRAWINGS HEAVY LEFT AND LIGHT RIGHT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x257E, -- ╾
+ category="so",
+ description="BOX DRAWINGS HEAVY LEFT AND LIGHT RIGHT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x257E,
},
[0x257F]={
- ["category"]="so",
- ["description"]="BOX DRAWINGS HEAVY UP AND LIGHT DOWN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x257F, -- ╿
+ category="so",
+ description="BOX DRAWINGS HEAVY UP AND LIGHT DOWN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x257F,
},
[0x2580]={
- ["adobename"]="upblock",
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="UPPER HALF BLOCK",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2580, -- ▀
+ adobename="upblock",
+ category="so",
+ cjkwd="a",
+ description="UPPER HALF BLOCK",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2580,
},
[0x2581]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="LOWER ONE EIGHTH BLOCK",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2581, -- ▁
+ category="so",
+ cjkwd="a",
+ description="LOWER ONE EIGHTH BLOCK",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2581,
},
[0x2582]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="LOWER ONE QUARTER BLOCK",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2582, -- ▂
+ category="so",
+ cjkwd="a",
+ description="LOWER ONE QUARTER BLOCK",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2582,
},
[0x2583]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="LOWER THREE EIGHTHS BLOCK",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2583, -- ▃
+ category="so",
+ cjkwd="a",
+ description="LOWER THREE EIGHTHS BLOCK",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2583,
},
[0x2584]={
- ["adobename"]="dnblock",
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="LOWER HALF BLOCK",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2584, -- ▄
+ adobename="dnblock",
+ category="so",
+ cjkwd="a",
+ description="LOWER HALF BLOCK",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2584,
},
[0x2585]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="LOWER FIVE EIGHTHS BLOCK",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2585, -- ▅
+ category="so",
+ cjkwd="a",
+ description="LOWER FIVE EIGHTHS BLOCK",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2585,
},
[0x2586]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="LOWER THREE QUARTERS BLOCK",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2586, -- ▆
+ category="so",
+ cjkwd="a",
+ description="LOWER THREE QUARTERS BLOCK",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2586,
},
[0x2587]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="LOWER SEVEN EIGHTHS BLOCK",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2587, -- ▇
+ category="so",
+ cjkwd="a",
+ description="LOWER SEVEN EIGHTHS BLOCK",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2587,
},
[0x2588]={
- ["adobename"]="block",
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="FULL BLOCK",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2588, -- █
+ adobename="block",
+ category="so",
+ cjkwd="a",
+ description="FULL BLOCK",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2588,
},
[0x2589]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="LEFT SEVEN EIGHTHS BLOCK",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2589, -- ▉
+ category="so",
+ cjkwd="a",
+ description="LEFT SEVEN EIGHTHS BLOCK",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2589,
},
[0x258A]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="LEFT THREE QUARTERS BLOCK",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x258A, -- ▊
+ category="so",
+ cjkwd="a",
+ description="LEFT THREE QUARTERS BLOCK",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x258A,
},
[0x258B]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="LEFT FIVE EIGHTHS BLOCK",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x258B, -- ▋
+ category="so",
+ cjkwd="a",
+ description="LEFT FIVE EIGHTHS BLOCK",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x258B,
},
[0x258C]={
- ["adobename"]="lfblock",
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="LEFT HALF BLOCK",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x258C, -- ▌
+ adobename="lfblock",
+ category="so",
+ cjkwd="a",
+ description="LEFT HALF BLOCK",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x258C,
},
[0x258D]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="LEFT THREE EIGHTHS BLOCK",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x258D, -- ▍
+ category="so",
+ cjkwd="a",
+ description="LEFT THREE EIGHTHS BLOCK",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x258D,
},
[0x258E]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="LEFT ONE QUARTER BLOCK",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x258E, -- ▎
+ category="so",
+ cjkwd="a",
+ description="LEFT ONE QUARTER BLOCK",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x258E,
},
[0x258F]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="LEFT ONE EIGHTH BLOCK",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x258F, -- ▏
+ category="so",
+ cjkwd="a",
+ description="LEFT ONE EIGHTH BLOCK",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x258F,
},
[0x2590]={
- ["adobename"]="rtblock",
- ["category"]="so",
- ["description"]="RIGHT HALF BLOCK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2590, -- ▐
+ adobename="rtblock",
+ category="so",
+ description="RIGHT HALF BLOCK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2590,
},
[0x2591]={
- ["adobename"]="ltshade",
- ["category"]="so",
- ["description"]="LIGHT SHADE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2591, -- ░
+ adobename="ltshade",
+ category="so",
+ description="LIGHT SHADE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2591,
},
[0x2592]={
- ["adobename"]="shade",
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="MEDIUM SHADE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2592, -- ▒
+ adobename="shade",
+ category="so",
+ cjkwd="a",
+ description="MEDIUM SHADE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2592,
},
[0x2593]={
- ["adobename"]="dkshade",
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="DARK SHADE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2593, -- ▓
+ adobename="dkshade",
+ category="so",
+ cjkwd="a",
+ description="DARK SHADE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2593,
},
[0x2594]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="UPPER ONE EIGHTH BLOCK",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2594, -- ▔
+ category="so",
+ cjkwd="a",
+ description="UPPER ONE EIGHTH BLOCK",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2594,
},
[0x2595]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="RIGHT ONE EIGHTH BLOCK",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2595, -- ▕
+ category="so",
+ cjkwd="a",
+ description="RIGHT ONE EIGHTH BLOCK",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2595,
},
[0x2596]={
- ["category"]="so",
- ["description"]="QUADRANT LOWER LEFT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2596, -- ▖
+ category="so",
+ description="QUADRANT LOWER LEFT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2596,
},
[0x2597]={
- ["category"]="so",
- ["description"]="QUADRANT LOWER RIGHT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2597, -- ▗
+ category="so",
+ description="QUADRANT LOWER RIGHT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2597,
},
[0x2598]={
- ["category"]="so",
- ["description"]="QUADRANT UPPER LEFT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2598, -- ▘
+ category="so",
+ description="QUADRANT UPPER LEFT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2598,
},
[0x2599]={
- ["category"]="so",
- ["description"]="QUADRANT UPPER LEFT AND LOWER LEFT AND LOWER RIGHT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2599, -- ▙
+ category="so",
+ description="QUADRANT UPPER LEFT AND LOWER LEFT AND LOWER RIGHT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2599,
},
[0x259A]={
- ["category"]="so",
- ["description"]="QUADRANT UPPER LEFT AND LOWER RIGHT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x259A, -- ▚
+ category="so",
+ description="QUADRANT UPPER LEFT AND LOWER RIGHT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x259A,
},
[0x259B]={
- ["category"]="so",
- ["description"]="QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER LEFT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x259B, -- ▛
+ category="so",
+ description="QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER LEFT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x259B,
},
[0x259C]={
- ["category"]="so",
- ["description"]="QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER RIGHT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x259C, -- ▜
+ category="so",
+ description="QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER RIGHT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x259C,
},
[0x259D]={
- ["category"]="so",
- ["description"]="QUADRANT UPPER RIGHT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x259D, -- ▝
+ category="so",
+ description="QUADRANT UPPER RIGHT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x259D,
},
[0x259E]={
- ["category"]="so",
- ["description"]="QUADRANT UPPER RIGHT AND LOWER LEFT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x259E, -- ▞
+ category="so",
+ description="QUADRANT UPPER RIGHT AND LOWER LEFT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x259E,
},
[0x259F]={
- ["category"]="so",
- ["description"]="QUADRANT UPPER RIGHT AND LOWER LEFT AND LOWER RIGHT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x259F, -- ▟
+ category="so",
+ description="QUADRANT UPPER RIGHT AND LOWER LEFT AND LOWER RIGHT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x259F,
},
[0x25A0]={
- ["adobename"]="filledbox",
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BLACK SQUARE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x25A0, -- ■
+ adobename="filledbox",
+ category="so",
+ cjkwd="a",
+ description="BLACK SQUARE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x25A0,
},
[0x25A1]={
- ["adobename"]="H22073",
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="WHITE SQUARE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x25A1, -- □
+ adobename="H22073",
+ category="so",
+ cjkwd="a",
+ description="WHITE SQUARE",
+ direction="on",
+ linebreak="ai",
+ mathspec={
+ { class="ord", name="square" },
+ { class="ord", name="Box" },
+ },
+ unicodeslot=0x25A1,
},
[0x25A2]={
- ["category"]="so",
- ["description"]="WHITE SQUARE WITH ROUNDED CORNERS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25A2, -- ▢
+ category="so",
+ description="WHITE SQUARE WITH ROUNDED CORNERS",
+ direction="on",
+ linebreak="al",
+ mathclass="ord",
+ mathname="blacksquare",
+ unicodeslot=0x25A2,
},
[0x25A3]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="WHITE SQUARE CONTAINING BLACK SMALL SQUARE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x25A3, -- ▣
+ category="so",
+ cjkwd="a",
+ description="WHITE SQUARE CONTAINING BLACK SMALL SQUARE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x25A3,
},
[0x25A4]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="SQUARE WITH HORIZONTAL FILL",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x25A4, -- ▤
+ category="so",
+ cjkwd="a",
+ description="SQUARE WITH HORIZONTAL FILL",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x25A4,
},
[0x25A5]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="SQUARE WITH VERTICAL FILL",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x25A5, -- ▥
+ category="so",
+ cjkwd="a",
+ description="SQUARE WITH VERTICAL FILL",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x25A5,
},
[0x25A6]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="SQUARE WITH ORTHOGONAL CROSSHATCH FILL",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x25A6, -- ▦
+ category="so",
+ cjkwd="a",
+ description="SQUARE WITH ORTHOGONAL CROSSHATCH FILL",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x25A6,
},
[0x25A7]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="SQUARE WITH UPPER LEFT TO LOWER RIGHT FILL",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x25A7, -- ▧
+ category="so",
+ cjkwd="a",
+ description="SQUARE WITH UPPER LEFT TO LOWER RIGHT FILL",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x25A7,
},
[0x25A8]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="SQUARE WITH UPPER RIGHT TO LOWER LEFT FILL",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x25A8, -- ▨
+ category="so",
+ cjkwd="a",
+ description="SQUARE WITH UPPER RIGHT TO LOWER LEFT FILL",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x25A8,
},
[0x25A9]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="SQUARE WITH DIAGONAL CROSSHATCH FILL",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x25A9, -- ▩
+ category="so",
+ cjkwd="a",
+ description="SQUARE WITH DIAGONAL CROSSHATCH FILL",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x25A9,
},
[0x25AA]={
- ["adobename"]="H18543",
- ["category"]="so",
- ["description"]="BLACK SMALL SQUARE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25AA, -- ▪
+ adobename="H18543",
+ category="so",
+ description="BLACK SMALL SQUARE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25AA,
},
[0x25AB]={
- ["adobename"]="H18551",
- ["category"]="so",
- ["description"]="WHITE SMALL SQUARE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25AB, -- ▫
+ adobename="H18551",
+ category="so",
+ description="WHITE SMALL SQUARE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25AB,
},
[0x25AC]={
- ["adobename"]="filledrect",
- ["category"]="so",
- ["description"]="BLACK RECTANGLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25AC, -- ▬
+ adobename="filledrect",
+ category="so",
+ description="BLACK RECTANGLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25AC,
},
[0x25AD]={
- ["category"]="so",
- ["description"]="WHITE RECTANGLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25AD, -- ▭
+ category="so",
+ description="WHITE RECTANGLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25AD,
},
[0x25AE]={
- ["category"]="so",
- ["description"]="BLACK VERTICAL RECTANGLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25AE, -- ▮
+ category="so",
+ description="BLACK VERTICAL RECTANGLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25AE,
},
[0x25AF]={
- ["category"]="so",
- ["description"]="WHITE VERTICAL RECTANGLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25AF, -- ▯
+ category="so",
+ description="WHITE VERTICAL RECTANGLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25AF,
},
[0x25B0]={
- ["category"]="so",
- ["description"]="BLACK PARALLELOGRAM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25B0, -- ▰
+ category="so",
+ description="BLACK PARALLELOGRAM",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25B0,
},
[0x25B1]={
- ["category"]="so",
- ["description"]="WHITE PARALLELOGRAM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25B1, -- ▱
+ category="so",
+ description="WHITE PARALLELOGRAM",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25B1,
},
[0x25B2]={
- ["adobename"]="triagup",
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BLACK UP-POINTING TRIANGLE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x25B2, -- ▲
+ adobename="triagup",
+ category="so",
+ cjkwd="a",
+ description="BLACK UP-POINTING TRIANGLE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x25B2,
},
[0x25B3]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="WHITE UP-POINTING TRIANGLE",
- ["linebreak"]="ai",
- ["mathclass"]="ord",
- ["mathname"]="triangle",
- ["unicodeslot"]=0x25B3, -- △
+ category="so",
+ cjkwd="a",
+ description="WHITE UP-POINTING TRIANGLE",
+ direction="on",
+ linebreak="ai",
+ mathspec={
+ { class="ord", name="triangle" },
+ { class="binary", name="bigtriangleup" },
+ },
+ unicodeslot=0x25B3,
},
[0x25B4]={
- ["category"]="so",
- ["description"]="BLACK UP-POINTING SMALL TRIANGLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25B4, -- ▴
+ category="so",
+ description="BLACK UP-POINTING SMALL TRIANGLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25B4,
},
[0x25B5]={
- ["category"]="so",
- ["description"]="WHITE UP-POINTING SMALL TRIANGLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25B5, -- ▵
+ category="so",
+ description="WHITE UP-POINTING SMALL TRIANGLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25B5,
},
[0x25B6]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BLACK RIGHT-POINTING TRIANGLE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x25B6, -- ▶
+ category="so",
+ cjkwd="a",
+ description="BLACK RIGHT-POINTING TRIANGLE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x25B6,
},
[0x25B7]={
- ["category"]="sm",
- ["cjkwd"]="a",
- ["description"]="WHITE RIGHT-POINTING TRIANGLE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x25B7, -- ▷
+ category="sm",
+ cjkwd="a",
+ description="WHITE RIGHT-POINTING TRIANGLE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x25B7,
},
[0x25B8]={
- ["category"]="so",
- ["description"]="BLACK RIGHT-POINTING SMALL TRIANGLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25B8, -- ▸
+ category="so",
+ description="BLACK RIGHT-POINTING SMALL TRIANGLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25B8,
},
[0x25B9]={
- ["category"]="so",
- ["description"]="WHITE RIGHT-POINTING SMALL TRIANGLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25B9, -- ▹
+ category="so",
+ description="WHITE RIGHT-POINTING SMALL TRIANGLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25B9,
},
[0x25BA]={
- ["adobename"]="triagrt",
- ["category"]="so",
- ["description"]="BLACK RIGHT-POINTING POINTER",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25BA, -- ►
+ adobename="triagrt",
+ category="so",
+ description="BLACK RIGHT-POINTING POINTER",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25BA,
},
[0x25BB]={
- ["category"]="so",
- ["description"]="WHITE RIGHT-POINTING POINTER",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25BB, -- ▻
+ category="so",
+ description="WHITE RIGHT-POINTING POINTER",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25BB,
},
[0x25BC]={
- ["adobename"]="triagdn",
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BLACK DOWN-POINTING TRIANGLE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x25BC, -- ▼
+ adobename="triagdn",
+ category="so",
+ cjkwd="a",
+ description="BLACK DOWN-POINTING TRIANGLE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x25BC,
},
[0x25BD]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="WHITE DOWN-POINTING TRIANGLE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x25BD, -- ▽
+ category="so",
+ cjkwd="a",
+ description="WHITE DOWN-POINTING TRIANGLE",
+ direction="on",
+ linebreak="ai",
+ mathclass="binary",
+ mathname="bigtriangledown",
+ unicodeslot=0x25BD,
},
[0x25BE]={
- ["category"]="so",
- ["description"]="BLACK DOWN-POINTING SMALL TRIANGLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25BE, -- ▾
+ category="so",
+ description="BLACK DOWN-POINTING SMALL TRIANGLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25BE,
},
[0x25BF]={
- ["category"]="so",
- ["description"]="WHITE DOWN-POINTING SMALL TRIANGLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25BF, -- ▿
+ category="so",
+ description="WHITE DOWN-POINTING SMALL TRIANGLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25BF,
},
[0x25C0]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BLACK LEFT-POINTING TRIANGLE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x25C0, -- ◀
+ category="so",
+ cjkwd="a",
+ description="BLACK LEFT-POINTING TRIANGLE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x25C0,
},
[0x25C1]={
- ["category"]="sm",
- ["cjkwd"]="a",
- ["description"]="WHITE LEFT-POINTING TRIANGLE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x25C1, -- ◁
+ category="sm",
+ cjkwd="a",
+ description="WHITE LEFT-POINTING TRIANGLE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x25C1,
},
[0x25C2]={
- ["category"]="so",
- ["description"]="BLACK LEFT-POINTING SMALL TRIANGLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25C2, -- ◂
+ category="so",
+ description="BLACK LEFT-POINTING SMALL TRIANGLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25C2,
},
[0x25C3]={
- ["category"]="so",
- ["description"]="WHITE LEFT-POINTING SMALL TRIANGLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25C3, -- ◃
+ category="so",
+ description="WHITE LEFT-POINTING SMALL TRIANGLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25C3,
},
[0x25C4]={
- ["adobename"]="triaglf",
- ["category"]="so",
- ["description"]="BLACK LEFT-POINTING POINTER",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25C4, -- ◄
+ adobename="triaglf",
+ category="so",
+ description="BLACK LEFT-POINTING POINTER",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25C4,
},
[0x25C5]={
- ["category"]="so",
- ["description"]="WHITE LEFT-POINTING POINTER",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25C5, -- ◅
+ category="so",
+ description="WHITE LEFT-POINTING POINTER",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25C5,
},
[0x25C6]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BLACK DIAMOND",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x25C6, -- ◆
+ category="so",
+ cjkwd="a",
+ description="BLACK DIAMOND",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x25C6,
},
[0x25C7]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="WHITE DIAMOND",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x25C7, -- ◇
+ category="so",
+ cjkwd="a",
+ description="WHITE DIAMOND",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x25C7,
},
[0x25C8]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="WHITE DIAMOND CONTAINING BLACK SMALL DIAMOND",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x25C8, -- ◈
+ category="so",
+ cjkwd="a",
+ description="WHITE DIAMOND CONTAINING BLACK SMALL DIAMOND",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x25C8,
},
[0x25C9]={
- ["category"]="so",
- ["description"]="FISHEYE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25C9, -- ◉
+ category="so",
+ description="FISHEYE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25C9,
},
[0x25CA]={
- ["adobename"]="lozenge",
- ["category"]="so",
- ["description"]="LOZENGE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25CA, -- ◊
+ adobename="lozenge",
+ category="so",
+ description="LOZENGE",
+ direction="on",
+ linebreak="al",
+ mathclass="ord",
+ mathname="lozenge",
+ unicodeslot=0x25CA,
},
[0x25CB]={
- ["adobename"]="circle",
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="WHITE CIRCLE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x25CB, -- ○
+ adobename="circle",
+ category="so",
+ cjkwd="a",
+ description="WHITE CIRCLE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x25CB,
},
[0x25CC]={
- ["category"]="so",
- ["description"]="DOTTED CIRCLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25CC, -- ◌
+ category="so",
+ description="DOTTED CIRCLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25CC,
},
[0x25CD]={
- ["category"]="so",
- ["description"]="CIRCLE WITH VERTICAL FILL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25CD, -- ◍
+ category="so",
+ description="CIRCLE WITH VERTICAL FILL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25CD,
},
[0x25CE]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BULLSEYE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x25CE, -- ◎
+ category="so",
+ cjkwd="a",
+ description="BULLSEYE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x25CE,
},
[0x25CF]={
- ["adobename"]="H18533",
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BLACK CIRCLE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x25CF, -- ●
+ adobename="H18533",
+ category="so",
+ cjkwd="a",
+ description="BLACK CIRCLE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x25CF,
},
[0x25D0]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="CIRCLE WITH LEFT HALF BLACK",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x25D0, -- ◐
+ category="so",
+ cjkwd="a",
+ description="CIRCLE WITH LEFT HALF BLACK",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x25D0,
},
[0x25D1]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="CIRCLE WITH RIGHT HALF BLACK",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x25D1, -- ◑
+ category="so",
+ cjkwd="a",
+ description="CIRCLE WITH RIGHT HALF BLACK",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x25D1,
},
[0x25D2]={
- ["category"]="so",
- ["description"]="CIRCLE WITH LOWER HALF BLACK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25D2, -- ◒
+ category="so",
+ description="CIRCLE WITH LOWER HALF BLACK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25D2,
},
[0x25D3]={
- ["category"]="so",
- ["description"]="CIRCLE WITH UPPER HALF BLACK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25D3, -- ◓
+ category="so",
+ description="CIRCLE WITH UPPER HALF BLACK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25D3,
},
[0x25D4]={
- ["category"]="so",
- ["description"]="CIRCLE WITH UPPER RIGHT QUADRANT BLACK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25D4, -- ◔
+ category="so",
+ description="CIRCLE WITH UPPER RIGHT QUADRANT BLACK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25D4,
},
[0x25D5]={
- ["category"]="so",
- ["description"]="CIRCLE WITH ALL BUT UPPER LEFT QUADRANT BLACK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25D5, -- ◕
+ category="so",
+ description="CIRCLE WITH ALL BUT UPPER LEFT QUADRANT BLACK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25D5,
},
[0x25D6]={
- ["category"]="so",
- ["description"]="LEFT HALF BLACK CIRCLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25D6, -- ◖
+ category="so",
+ description="LEFT HALF BLACK CIRCLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25D6,
},
[0x25D7]={
- ["category"]="so",
- ["description"]="RIGHT HALF BLACK CIRCLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25D7, -- ◗
+ category="so",
+ description="RIGHT HALF BLACK CIRCLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25D7,
},
[0x25D8]={
- ["adobename"]="invbullet",
- ["category"]="so",
- ["description"]="INVERSE BULLET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25D8, -- ◘
+ adobename="invbullet",
+ category="so",
+ description="INVERSE BULLET",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25D8,
},
[0x25D9]={
- ["adobename"]="invcircle",
- ["category"]="so",
- ["description"]="INVERSE WHITE CIRCLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25D9, -- ◙
+ adobename="invcircle",
+ category="so",
+ description="INVERSE WHITE CIRCLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25D9,
},
[0x25DA]={
- ["category"]="so",
- ["description"]="UPPER HALF INVERSE WHITE CIRCLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25DA, -- ◚
+ category="so",
+ description="UPPER HALF INVERSE WHITE CIRCLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25DA,
},
[0x25DB]={
- ["category"]="so",
- ["description"]="LOWER HALF INVERSE WHITE CIRCLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25DB, -- ◛
+ category="so",
+ description="LOWER HALF INVERSE WHITE CIRCLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25DB,
},
[0x25DC]={
- ["category"]="so",
- ["description"]="UPPER LEFT QUADRANT CIRCULAR ARC",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25DC, -- ◜
+ category="so",
+ description="UPPER LEFT QUADRANT CIRCULAR ARC",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25DC,
},
[0x25DD]={
- ["category"]="so",
- ["description"]="UPPER RIGHT QUADRANT CIRCULAR ARC",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25DD, -- ◝
+ category="so",
+ description="UPPER RIGHT QUADRANT CIRCULAR ARC",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25DD,
},
[0x25DE]={
- ["category"]="so",
- ["description"]="LOWER RIGHT QUADRANT CIRCULAR ARC",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25DE, -- ◞
+ category="so",
+ description="LOWER RIGHT QUADRANT CIRCULAR ARC",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25DE,
},
[0x25DF]={
- ["category"]="so",
- ["description"]="LOWER LEFT QUADRANT CIRCULAR ARC",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25DF, -- ◟
+ category="so",
+ description="LOWER LEFT QUADRANT CIRCULAR ARC",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25DF,
},
[0x25E0]={
- ["category"]="so",
- ["description"]="UPPER HALF CIRCLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25E0, -- ◠
+ category="so",
+ description="UPPER HALF CIRCLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25E0,
},
[0x25E1]={
- ["category"]="so",
- ["description"]="LOWER HALF CIRCLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25E1, -- ◡
+ category="so",
+ description="LOWER HALF CIRCLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25E1,
},
[0x25E2]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BLACK LOWER RIGHT TRIANGLE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x25E2, -- ◢
+ category="so",
+ cjkwd="a",
+ description="BLACK LOWER RIGHT TRIANGLE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x25E2,
},
[0x25E3]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BLACK LOWER LEFT TRIANGLE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x25E3, -- ◣
+ category="so",
+ cjkwd="a",
+ description="BLACK LOWER LEFT TRIANGLE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x25E3,
},
[0x25E4]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BLACK UPPER LEFT TRIANGLE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x25E4, -- ◤
+ category="so",
+ cjkwd="a",
+ description="BLACK UPPER LEFT TRIANGLE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x25E4,
},
[0x25E5]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BLACK UPPER RIGHT TRIANGLE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x25E5, -- ◥
+ category="so",
+ cjkwd="a",
+ description="BLACK UPPER RIGHT TRIANGLE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x25E5,
},
[0x25E6]={
- ["adobename"]="openbullet",
- ["category"]="so",
- ["description"]="WHITE BULLET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25E6, -- ◦
+ adobename="openbullet",
+ category="so",
+ description="WHITE BULLET",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25E6,
},
[0x25E7]={
- ["category"]="so",
- ["description"]="SQUARE WITH LEFT HALF BLACK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25E7, -- ◧
+ category="so",
+ description="SQUARE WITH LEFT HALF BLACK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25E7,
},
[0x25E8]={
- ["category"]="so",
- ["description"]="SQUARE WITH RIGHT HALF BLACK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25E8, -- ◨
+ category="so",
+ description="SQUARE WITH RIGHT HALF BLACK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25E8,
},
[0x25E9]={
- ["category"]="so",
- ["description"]="SQUARE WITH UPPER LEFT DIAGONAL HALF BLACK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25E9, -- ◩
+ category="so",
+ description="SQUARE WITH UPPER LEFT DIAGONAL HALF BLACK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25E9,
},
[0x25EA]={
- ["category"]="so",
- ["description"]="SQUARE WITH LOWER RIGHT DIAGONAL HALF BLACK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25EA, -- ◪
+ category="so",
+ description="SQUARE WITH LOWER RIGHT DIAGONAL HALF BLACK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25EA,
},
[0x25EB]={
- ["category"]="so",
- ["description"]="WHITE SQUARE WITH VERTICAL BISECTING LINE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25EB, -- ◫
+ category="so",
+ description="WHITE SQUARE WITH VERTICAL BISECTING LINE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25EB,
},
[0x25EC]={
- ["category"]="so",
- ["description"]="WHITE UP-POINTING TRIANGLE WITH DOT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25EC, -- ◬
+ category="so",
+ description="WHITE UP-POINTING TRIANGLE WITH DOT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25EC,
},
[0x25ED]={
- ["category"]="so",
- ["description"]="UP-POINTING TRIANGLE WITH LEFT HALF BLACK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25ED, -- ◭
+ category="so",
+ description="UP-POINTING TRIANGLE WITH LEFT HALF BLACK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25ED,
},
[0x25EE]={
- ["category"]="so",
- ["description"]="UP-POINTING TRIANGLE WITH RIGHT HALF BLACK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25EE, -- ◮
+ category="so",
+ description="UP-POINTING TRIANGLE WITH RIGHT HALF BLACK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25EE,
},
[0x25EF]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="LARGE CIRCLE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x25EF, -- ◯
+ category="so",
+ cjkwd="a",
+ description="LARGE CIRCLE",
+ direction="on",
+ linebreak="ai",
+ mathclass="binary",
+ mathname="bigcirc",
+ unicodeslot=0x25EF,
},
[0x25F0]={
- ["category"]="so",
- ["description"]="WHITE SQUARE WITH UPPER LEFT QUADRANT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25F0, -- ◰
+ category="so",
+ description="WHITE SQUARE WITH UPPER LEFT QUADRANT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25F0,
},
[0x25F1]={
- ["category"]="so",
- ["description"]="WHITE SQUARE WITH LOWER LEFT QUADRANT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25F1, -- ◱
+ category="so",
+ description="WHITE SQUARE WITH LOWER LEFT QUADRANT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25F1,
},
[0x25F2]={
- ["category"]="so",
- ["description"]="WHITE SQUARE WITH LOWER RIGHT QUADRANT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25F2, -- ◲
+ category="so",
+ description="WHITE SQUARE WITH LOWER RIGHT QUADRANT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25F2,
},
[0x25F3]={
- ["category"]="so",
- ["description"]="WHITE SQUARE WITH UPPER RIGHT QUADRANT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25F3, -- ◳
+ category="so",
+ description="WHITE SQUARE WITH UPPER RIGHT QUADRANT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25F3,
},
[0x25F4]={
- ["category"]="so",
- ["description"]="WHITE CIRCLE WITH UPPER LEFT QUADRANT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25F4, -- ◴
+ category="so",
+ description="WHITE CIRCLE WITH UPPER LEFT QUADRANT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25F4,
},
[0x25F5]={
- ["category"]="so",
- ["description"]="WHITE CIRCLE WITH LOWER LEFT QUADRANT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25F5, -- ◵
+ category="so",
+ description="WHITE CIRCLE WITH LOWER LEFT QUADRANT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25F5,
},
[0x25F6]={
- ["category"]="so",
- ["description"]="WHITE CIRCLE WITH LOWER RIGHT QUADRANT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25F6, -- ◶
+ category="so",
+ description="WHITE CIRCLE WITH LOWER RIGHT QUADRANT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25F6,
},
[0x25F7]={
- ["category"]="so",
- ["description"]="WHITE CIRCLE WITH UPPER RIGHT QUADRANT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25F7, -- ◷
+ category="so",
+ description="WHITE CIRCLE WITH UPPER RIGHT QUADRANT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25F7,
},
[0x25F8]={
- ["category"]="sm",
- ["description"]="UPPER LEFT TRIANGLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25F8, -- ◸
+ category="sm",
+ description="UPPER LEFT TRIANGLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25F8,
},
[0x25F9]={
- ["category"]="sm",
- ["description"]="UPPER RIGHT TRIANGLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25F9, -- ◹
+ category="sm",
+ description="UPPER RIGHT TRIANGLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25F9,
},
[0x25FA]={
- ["category"]="sm",
- ["description"]="LOWER LEFT TRIANGLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25FA, -- ◺
+ category="sm",
+ description="LOWER LEFT TRIANGLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25FA,
},
[0x25FB]={
- ["category"]="sm",
- ["description"]="WHITE MEDIUM SQUARE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25FB, -- ◻
+ category="sm",
+ description="WHITE MEDIUM SQUARE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25FB,
},
[0x25FC]={
- ["category"]="sm",
- ["description"]="BLACK MEDIUM SQUARE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25FC, -- ◼
+ category="sm",
+ description="BLACK MEDIUM SQUARE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25FC,
},
[0x25FD]={
- ["category"]="sm",
- ["description"]="WHITE MEDIUM SMALL SQUARE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25FD, -- ◽
+ category="sm",
+ description="WHITE MEDIUM SMALL SQUARE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25FD,
},
[0x25FE]={
- ["category"]="sm",
- ["description"]="BLACK MEDIUM SMALL SQUARE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25FE, -- ◾
+ category="sm",
+ description="BLACK MEDIUM SMALL SQUARE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25FE,
},
[0x25FF]={
- ["category"]="sm",
- ["description"]="LOWER RIGHT TRIANGLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x25FF, -- ◿
+ category="sm",
+ description="LOWER RIGHT TRIANGLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x25FF,
},
[0x2600]={
- ["category"]="so",
- ["description"]="BLACK SUN WITH RAYS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2600, -- ☀
+ category="so",
+ description="BLACK SUN WITH RAYS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2600,
},
[0x2601]={
- ["category"]="so",
- ["description"]="CLOUD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2601, -- ☁
+ category="so",
+ description="CLOUD",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2601,
},
[0x2602]={
- ["category"]="so",
- ["description"]="UMBRELLA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2602, -- ☂
+ category="so",
+ description="UMBRELLA",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2602,
},
[0x2603]={
- ["category"]="so",
- ["description"]="SNOWMAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2603, -- ☃
+ category="so",
+ description="SNOWMAN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2603,
},
[0x2604]={
- ["category"]="so",
- ["description"]="COMET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2604, -- ☄
+ category="so",
+ description="COMET",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2604,
},
[0x2605]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BLACK STAR",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2605, -- ★
+ category="so",
+ cjkwd="a",
+ description="BLACK STAR",
+ direction="on",
+ linebreak="ai",
+ mathclass="ord",
+ mathname="bigstar",
+ unicodeslot=0x2605,
},
[0x2606]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="WHITE STAR",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2606, -- ☆
+ category="so",
+ cjkwd="a",
+ description="WHITE STAR",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2606,
},
[0x2607]={
- ["category"]="so",
- ["description"]="LIGHTNING",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2607, -- ☇
+ category="so",
+ description="LIGHTNING",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2607,
},
[0x2608]={
- ["category"]="so",
- ["description"]="THUNDERSTORM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2608, -- ☈
+ category="so",
+ description="THUNDERSTORM",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2608,
},
[0x2609]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="SUN",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2609, -- ☉
+ category="so",
+ cjkwd="a",
+ description="SUN",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2609,
},
[0x260A]={
- ["category"]="so",
- ["description"]="ASCENDING NODE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x260A, -- ☊
+ category="so",
+ description="ASCENDING NODE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x260A,
},
[0x260B]={
- ["category"]="so",
- ["description"]="DESCENDING NODE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x260B, -- ☋
+ category="so",
+ description="DESCENDING NODE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x260B,
},
[0x260C]={
- ["category"]="so",
- ["description"]="CONJUNCTION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x260C, -- ☌
+ category="so",
+ description="CONJUNCTION",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x260C,
},
[0x260D]={
- ["category"]="so",
- ["description"]="OPPOSITION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x260D, -- ☍
+ category="so",
+ description="OPPOSITION",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x260D,
},
[0x260E]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BLACK TELEPHONE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x260E, -- ☎
+ category="so",
+ cjkwd="a",
+ description="BLACK TELEPHONE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x260E,
},
[0x260F]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="WHITE TELEPHONE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x260F, -- ☏
+ category="so",
+ cjkwd="a",
+ description="WHITE TELEPHONE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x260F,
},
[0x2610]={
- ["category"]="so",
- ["description"]="BALLOT BOX",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2610, -- ☐
+ category="so",
+ description="BALLOT BOX",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2610,
},
[0x2611]={
- ["category"]="so",
- ["description"]="BALLOT BOX WITH CHECK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2611, -- ☑
+ category="so",
+ description="BALLOT BOX WITH CHECK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2611,
},
[0x2612]={
- ["category"]="so",
- ["description"]="BALLOT BOX WITH X",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2612, -- ☒
+ category="so",
+ description="BALLOT BOX WITH X",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2612,
},
[0x2613]={
- ["category"]="so",
- ["description"]="SALTIRE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2613, -- ☓
+ category="so",
+ description="SALTIRE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2613,
},
[0x2614]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="UMBRELLA WITH RAIN DROPS",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2614, -- ☔
+ category="so",
+ cjkwd="a",
+ description="UMBRELLA WITH RAIN DROPS",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2614,
},
[0x2615]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="HOT BEVERAGE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2615, -- ☕
+ category="so",
+ cjkwd="a",
+ description="HOT BEVERAGE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2615,
},
[0x2616]={
- ["category"]="so",
- ["description"]="WHITE SHOGI PIECE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2616, -- ☖
+ category="so",
+ description="WHITE SHOGI PIECE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2616,
},
[0x2617]={
- ["category"]="so",
- ["description"]="BLACK SHOGI PIECE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2617, -- ☗
+ category="so",
+ description="BLACK SHOGI PIECE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2617,
},
[0x2618]={
- ["category"]="so",
- ["description"]="SHAMROCK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2618, -- ☘
+ category="so",
+ description="SHAMROCK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2618,
},
[0x2619]={
- ["category"]="so",
- ["description"]="REVERSED ROTATED FLORAL HEART BULLET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2619, -- ☙
+ category="so",
+ description="REVERSED ROTATED FLORAL HEART BULLET",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2619,
},
[0x261A]={
- ["category"]="so",
- ["description"]="BLACK LEFT POINTING INDEX",
- ["linebreak"]="al",
- ["unicodeslot"]=0x261A, -- ☚
+ category="so",
+ description="BLACK LEFT POINTING INDEX",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x261A,
},
[0x261B]={
- ["category"]="so",
- ["description"]="BLACK RIGHT POINTING INDEX",
- ["linebreak"]="al",
- ["unicodeslot"]=0x261B, -- ☛
+ category="so",
+ description="BLACK RIGHT POINTING INDEX",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x261B,
},
[0x261C]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="WHITE LEFT POINTING INDEX",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x261C, -- ☜
+ category="so",
+ cjkwd="a",
+ description="WHITE LEFT POINTING INDEX",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x261C,
},
[0x261D]={
- ["category"]="so",
- ["description"]="WHITE UP POINTING INDEX",
- ["linebreak"]="al",
- ["unicodeslot"]=0x261D, -- ☝
+ category="so",
+ description="WHITE UP POINTING INDEX",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x261D,
},
[0x261E]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="WHITE RIGHT POINTING INDEX",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x261E, -- ☞
+ category="so",
+ cjkwd="a",
+ description="WHITE RIGHT POINTING INDEX",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x261E,
},
[0x261F]={
- ["category"]="so",
- ["description"]="WHITE DOWN POINTING INDEX",
- ["linebreak"]="al",
- ["unicodeslot"]=0x261F, -- ☟
+ category="so",
+ description="WHITE DOWN POINTING INDEX",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x261F,
},
[0x2620]={
- ["category"]="so",
- ["description"]="SKULL AND CROSSBONES",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2620, -- ☠
+ category="so",
+ description="SKULL AND CROSSBONES",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2620,
},
[0x2621]={
- ["category"]="so",
- ["description"]="CAUTION SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2621, -- ☡
+ category="so",
+ description="CAUTION SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2621,
},
[0x2622]={
- ["category"]="so",
- ["description"]="RADIOACTIVE SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2622, -- ☢
+ category="so",
+ description="RADIOACTIVE SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2622,
},
[0x2623]={
- ["category"]="so",
- ["description"]="BIOHAZARD SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2623, -- ☣
+ category="so",
+ description="BIOHAZARD SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2623,
},
[0x2624]={
- ["category"]="so",
- ["description"]="CADUCEUS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2624, -- ☤
+ category="so",
+ description="CADUCEUS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2624,
},
[0x2625]={
- ["category"]="so",
- ["description"]="ANKH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2625, -- ☥
+ category="so",
+ description="ANKH",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2625,
},
[0x2626]={
- ["category"]="so",
- ["description"]="ORTHODOX CROSS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2626, -- ☦
+ category="so",
+ description="ORTHODOX CROSS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2626,
},
[0x2627]={
- ["category"]="so",
- ["description"]="CHI RHO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2627, -- ☧
+ category="so",
+ description="CHI RHO",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2627,
},
[0x2628]={
- ["category"]="so",
- ["description"]="CROSS OF LORRAINE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2628, -- ☨
+ category="so",
+ description="CROSS OF LORRAINE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2628,
},
[0x2629]={
- ["category"]="so",
- ["description"]="CROSS OF JERUSALEM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2629, -- ☩
+ category="so",
+ description="CROSS OF JERUSALEM",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2629,
},
[0x262A]={
- ["category"]="so",
- ["description"]="STAR AND CRESCENT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x262A, -- ☪
+ category="so",
+ description="STAR AND CRESCENT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x262A,
},
[0x262B]={
- ["category"]="so",
- ["description"]="FARSI SYMBOL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x262B, -- ☫
+ category="so",
+ description="FARSI SYMBOL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x262B,
},
[0x262C]={
- ["category"]="so",
- ["description"]="ADI SHAKTI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x262C, -- ☬
+ category="so",
+ description="ADI SHAKTI",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x262C,
},
[0x262D]={
- ["category"]="so",
- ["description"]="HAMMER AND SICKLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x262D, -- ☭
+ category="so",
+ description="HAMMER AND SICKLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x262D,
},
[0x262E]={
- ["category"]="so",
- ["description"]="PEACE SYMBOL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x262E, -- ☮
+ category="so",
+ description="PEACE SYMBOL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x262E,
},
[0x262F]={
- ["category"]="so",
- ["description"]="YIN YANG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x262F, -- ☯
+ category="so",
+ description="YIN YANG",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x262F,
},
[0x2630]={
- ["category"]="so",
- ["description"]="TRIGRAM FOR HEAVEN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2630, -- ☰
+ category="so",
+ description="TRIGRAM FOR HEAVEN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2630,
},
[0x2631]={
- ["category"]="so",
- ["description"]="TRIGRAM FOR LAKE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2631, -- ☱
+ category="so",
+ description="TRIGRAM FOR LAKE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2631,
},
[0x2632]={
- ["category"]="so",
- ["description"]="TRIGRAM FOR FIRE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2632, -- ☲
+ category="so",
+ description="TRIGRAM FOR FIRE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2632,
},
[0x2633]={
- ["category"]="so",
- ["description"]="TRIGRAM FOR THUNDER",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2633, -- ☳
+ category="so",
+ description="TRIGRAM FOR THUNDER",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2633,
},
[0x2634]={
- ["category"]="so",
- ["description"]="TRIGRAM FOR WIND",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2634, -- ☴
+ category="so",
+ description="TRIGRAM FOR WIND",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2634,
},
[0x2635]={
- ["category"]="so",
- ["description"]="TRIGRAM FOR WATER",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2635, -- ☵
+ category="so",
+ description="TRIGRAM FOR WATER",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2635,
},
[0x2636]={
- ["category"]="so",
- ["description"]="TRIGRAM FOR MOUNTAIN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2636, -- ☶
+ category="so",
+ description="TRIGRAM FOR MOUNTAIN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2636,
},
[0x2637]={
- ["category"]="so",
- ["description"]="TRIGRAM FOR EARTH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2637, -- ☷
+ category="so",
+ description="TRIGRAM FOR EARTH",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2637,
},
[0x2638]={
- ["category"]="so",
- ["description"]="WHEEL OF DHARMA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2638, -- ☸
+ category="so",
+ description="WHEEL OF DHARMA",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2638,
},
[0x2639]={
- ["category"]="so",
- ["description"]="WHITE FROWNING FACE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2639, -- ☹
+ category="so",
+ description="WHITE FROWNING FACE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2639,
},
[0x263A]={
- ["adobename"]="smileface",
- ["category"]="so",
- ["description"]="WHITE SMILING FACE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x263A, -- ☺
+ adobename="smileface",
+ category="so",
+ description="WHITE SMILING FACE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x263A,
},
[0x263B]={
- ["adobename"]="invsmileface",
- ["category"]="so",
- ["description"]="BLACK SMILING FACE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x263B, -- ☻
+ adobename="invsmileface",
+ category="so",
+ description="BLACK SMILING FACE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x263B,
},
[0x263C]={
- ["adobename"]="sun",
- ["category"]="so",
- ["description"]="WHITE SUN WITH RAYS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x263C, -- ☼
+ adobename="sun",
+ category="so",
+ description="WHITE SUN WITH RAYS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x263C,
},
[0x263D]={
- ["category"]="so",
- ["description"]="FIRST QUARTER MOON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x263D, -- ☽
+ category="so",
+ description="FIRST QUARTER MOON",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x263D,
},
[0x263E]={
- ["category"]="so",
- ["description"]="LAST QUARTER MOON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x263E, -- ☾
+ category="so",
+ description="LAST QUARTER MOON",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x263E,
},
[0x263F]={
- ["category"]="so",
- ["description"]="MERCURY",
- ["linebreak"]="al",
- ["unicodeslot"]=0x263F, -- ☿
+ category="so",
+ description="MERCURY",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x263F,
},
[0x2640]={
- ["adobename"]="female",
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="FEMALE SIGN",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2640, -- ♀
+ adobename="female",
+ category="so",
+ cjkwd="a",
+ description="FEMALE SIGN",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2640,
},
[0x2641]={
- ["category"]="so",
- ["description"]="EARTH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2641, -- ♁
+ category="so",
+ description="EARTH",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2641,
},
[0x2642]={
- ["adobename"]="male",
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="MALE SIGN",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2642, -- ♂
+ adobename="male",
+ category="so",
+ cjkwd="a",
+ description="MALE SIGN",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2642,
},
[0x2643]={
- ["category"]="so",
- ["description"]="JUPITER",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2643, -- ♃
+ category="so",
+ description="JUPITER",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2643,
},
[0x2644]={
- ["category"]="so",
- ["description"]="SATURN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2644, -- ♄
+ category="so",
+ description="SATURN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2644,
},
[0x2645]={
- ["category"]="so",
- ["description"]="URANUS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2645, -- ♅
+ category="so",
+ description="URANUS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2645,
},
[0x2646]={
- ["category"]="so",
- ["description"]="NEPTUNE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2646, -- ♆
+ category="so",
+ description="NEPTUNE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2646,
},
[0x2647]={
- ["category"]="so",
- ["description"]="PLUTO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2647, -- ♇
+ category="so",
+ description="PLUTO",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2647,
},
[0x2648]={
- ["category"]="so",
- ["description"]="ARIES",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2648, -- ♈
+ category="so",
+ description="ARIES",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2648,
},
[0x2649]={
- ["category"]="so",
- ["description"]="TAURUS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2649, -- ♉
+ category="so",
+ description="TAURUS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2649,
},
[0x264A]={
- ["category"]="so",
- ["description"]="GEMINI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x264A, -- ♊
+ category="so",
+ description="GEMINI",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x264A,
},
[0x264B]={
- ["category"]="so",
- ["description"]="CANCER",
- ["linebreak"]="al",
- ["unicodeslot"]=0x264B, -- ♋
+ category="so",
+ description="CANCER",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x264B,
},
[0x264C]={
- ["category"]="so",
- ["description"]="LEO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x264C, -- ♌
+ category="so",
+ description="LEO",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x264C,
},
[0x264D]={
- ["category"]="so",
- ["description"]="VIRGO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x264D, -- ♍
+ category="so",
+ description="VIRGO",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x264D,
},
[0x264E]={
- ["category"]="so",
- ["description"]="LIBRA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x264E, -- ♎
+ category="so",
+ description="LIBRA",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x264E,
},
[0x264F]={
- ["category"]="so",
- ["description"]="SCORPIUS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x264F, -- ♏
+ category="so",
+ description="SCORPIUS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x264F,
},
[0x2650]={
- ["category"]="so",
- ["description"]="SAGITTARIUS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2650, -- ♐
+ category="so",
+ description="SAGITTARIUS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2650,
},
[0x2651]={
- ["category"]="so",
- ["description"]="CAPRICORN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2651, -- ♑
+ category="so",
+ description="CAPRICORN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2651,
},
[0x2652]={
- ["category"]="so",
- ["description"]="AQUARIUS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2652, -- ♒
+ category="so",
+ description="AQUARIUS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2652,
},
[0x2653]={
- ["category"]="so",
- ["description"]="PISCES",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2653, -- ♓
+ category="so",
+ description="PISCES",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2653,
},
[0x2654]={
- ["category"]="so",
- ["description"]="WHITE CHESS KING",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2654, -- ♔
+ category="so",
+ description="WHITE CHESS KING",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2654,
},
[0x2655]={
- ["category"]="so",
- ["description"]="WHITE CHESS QUEEN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2655, -- ♕
+ category="so",
+ description="WHITE CHESS QUEEN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2655,
},
[0x2656]={
- ["category"]="so",
- ["description"]="WHITE CHESS ROOK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2656, -- ♖
+ category="so",
+ description="WHITE CHESS ROOK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2656,
},
[0x2657]={
- ["category"]="so",
- ["description"]="WHITE CHESS BISHOP",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2657, -- ♗
+ category="so",
+ description="WHITE CHESS BISHOP",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2657,
},
[0x2658]={
- ["category"]="so",
- ["description"]="WHITE CHESS KNIGHT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2658, -- ♘
+ category="so",
+ description="WHITE CHESS KNIGHT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2658,
},
[0x2659]={
- ["category"]="so",
- ["description"]="WHITE CHESS PAWN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2659, -- ♙
+ category="so",
+ description="WHITE CHESS PAWN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2659,
},
[0x265A]={
- ["category"]="so",
- ["description"]="BLACK CHESS KING",
- ["linebreak"]="al",
- ["unicodeslot"]=0x265A, -- ♚
+ category="so",
+ description="BLACK CHESS KING",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x265A,
},
[0x265B]={
- ["category"]="so",
- ["description"]="BLACK CHESS QUEEN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x265B, -- ♛
+ category="so",
+ description="BLACK CHESS QUEEN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x265B,
},
[0x265C]={
- ["category"]="so",
- ["description"]="BLACK CHESS ROOK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x265C, -- ♜
+ category="so",
+ description="BLACK CHESS ROOK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x265C,
},
[0x265D]={
- ["category"]="so",
- ["description"]="BLACK CHESS BISHOP",
- ["linebreak"]="al",
- ["unicodeslot"]=0x265D, -- ♝
+ category="so",
+ description="BLACK CHESS BISHOP",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x265D,
},
[0x265E]={
- ["category"]="so",
- ["description"]="BLACK CHESS KNIGHT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x265E, -- ♞
+ category="so",
+ description="BLACK CHESS KNIGHT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x265E,
},
[0x265F]={
- ["category"]="so",
- ["description"]="BLACK CHESS PAWN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x265F, -- ♟
+ category="so",
+ description="BLACK CHESS PAWN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x265F,
},
[0x2660]={
- ["adobename"]="spade",
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BLACK SPADE SUIT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2660, -- ♠
+ adobename="spade",
+ category="so",
+ cjkwd="a",
+ description="BLACK SPADE SUIT",
+ direction="on",
+ linebreak="ai",
+ mathclass="default",
+ mathname="spadesuit",
+ unicodeslot=0x2660,
},
[0x2661]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="WHITE HEART SUIT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2661, -- ♡
+ category="so",
+ cjkwd="a",
+ description="WHITE HEART SUIT",
+ direction="on",
+ linebreak="ai",
+ mathclass="default",
+ mathname="heartsuit",
+ unicodeslot=0x2661,
},
[0x2662]={
- ["category"]="so",
- ["description"]="WHITE DIAMOND SUIT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2662, -- ♢
+ category="so",
+ description="WHITE DIAMOND SUIT",
+ direction="on",
+ linebreak="al",
+ mathclass="default",
+ mathname="diamondsuit",
+ unicodeslot=0x2662,
},
[0x2663]={
- ["adobename"]="club",
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BLACK CLUB SUIT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2663, -- ♣
+ adobename="club",
+ category="so",
+ cjkwd="a",
+ description="BLACK CLUB SUIT",
+ direction="on",
+ linebreak="ai",
+ mathclass="default",
+ mathname="clubsuit",
+ unicodeslot=0x2663,
},
[0x2664]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="WHITE SPADE SUIT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2664, -- ♤
+ category="so",
+ cjkwd="a",
+ description="WHITE SPADE SUIT",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2664,
},
[0x2665]={
- ["adobename"]="heart",
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BLACK HEART SUIT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2665, -- ♥
+ adobename="heart",
+ category="so",
+ cjkwd="a",
+ description="BLACK HEART SUIT",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2665,
},
[0x2666]={
- ["adobename"]="diamond",
- ["category"]="so",
- ["description"]="BLACK DIAMOND SUIT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2666, -- ♦
+ adobename="diamond",
+ category="so",
+ description="BLACK DIAMOND SUIT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2666,
},
[0x2667]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="WHITE CLUB SUIT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2667, -- ♧
+ category="so",
+ cjkwd="a",
+ description="WHITE CLUB SUIT",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2667,
},
[0x2668]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="HOT SPRINGS",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2668, -- ♨
+ category="so",
+ cjkwd="a",
+ description="HOT SPRINGS",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2668,
},
[0x2669]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="QUARTER NOTE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2669, -- ♩
+ category="so",
+ cjkwd="a",
+ description="QUARTER NOTE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2669,
},
[0x266A]={
- ["adobename"]="musicalnote",
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="EIGHTH NOTE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x266A, -- ♪
+ adobename="musicalnote",
+ category="so",
+ cjkwd="a",
+ description="EIGHTH NOTE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x266A,
},
[0x266B]={
- ["adobename"]="musicalnotedbl",
- ["category"]="so",
- ["description"]="BEAMED EIGHTH NOTES",
- ["linebreak"]="al",
- ["unicodeslot"]=0x266B, -- ♫
+ adobename="musicalnotedbl",
+ category="so",
+ description="BEAMED EIGHTH NOTES",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x266B,
},
[0x266C]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="BEAMED SIXTEENTH NOTES",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x266C, -- ♬
+ category="so",
+ cjkwd="a",
+ description="BEAMED SIXTEENTH NOTES",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x266C,
},
[0x266D]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="MUSIC FLAT SIGN",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x266D, -- ♭
+ category="so",
+ cjkwd="a",
+ description="MUSIC FLAT SIGN",
+ direction="on",
+ linebreak="ai",
+ mathclass="default",
+ mathname="flat",
+ unicodeslot=0x266D,
},
[0x266E]={
- ["category"]="so",
- ["description"]="MUSIC NATURAL SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x266E, -- ♮
+ category="so",
+ description="MUSIC NATURAL SIGN",
+ direction="on",
+ linebreak="al",
+ mathclass="default",
+ mathname="natural",
+ unicodeslot=0x266E,
},
[0x266F]={
- ["category"]="sm",
- ["cjkwd"]="a",
- ["description"]="MUSIC SHARP SIGN",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x266F, -- ♯
+ category="sm",
+ cjkwd="a",
+ description="MUSIC SHARP SIGN",
+ direction="on",
+ linebreak="ai",
+ mathclass="default",
+ mathname="sharp",
+ unicodeslot=0x266F,
},
[0x2670]={
- ["category"]="so",
- ["description"]="WEST SYRIAC CROSS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2670, -- ♰
+ category="so",
+ description="WEST SYRIAC CROSS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2670,
},
[0x2671]={
- ["category"]="so",
- ["description"]="EAST SYRIAC CROSS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2671, -- ♱
+ category="so",
+ description="EAST SYRIAC CROSS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2671,
},
[0x2672]={
- ["category"]="so",
- ["description"]="UNIVERSAL RECYCLING SYMBOL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2672, -- ♲
+ category="so",
+ description="UNIVERSAL RECYCLING SYMBOL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2672,
},
[0x2673]={
- ["category"]="so",
- ["description"]="RECYCLING SYMBOL FOR TYPE-0x0001 PLASTICS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2673, -- ♳
+ category="so",
+ description="RECYCLING SYMBOL FOR TYPE-0x0001 PLASTICS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2673,
},
[0x2674]={
- ["category"]="so",
- ["description"]="RECYCLING SYMBOL FOR TYPE-0x0002 PLASTICS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2674, -- ♴
+ category="so",
+ description="RECYCLING SYMBOL FOR TYPE-0x0002 PLASTICS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2674,
},
[0x2675]={
- ["category"]="so",
- ["description"]="RECYCLING SYMBOL FOR TYPE-0x0003 PLASTICS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2675, -- ♵
+ category="so",
+ description="RECYCLING SYMBOL FOR TYPE-0x0003 PLASTICS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2675,
},
[0x2676]={
- ["category"]="so",
- ["description"]="RECYCLING SYMBOL FOR TYPE-0x0004 PLASTICS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2676, -- ♶
+ category="so",
+ description="RECYCLING SYMBOL FOR TYPE-0x0004 PLASTICS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2676,
},
[0x2677]={
- ["category"]="so",
- ["description"]="RECYCLING SYMBOL FOR TYPE-0x0005 PLASTICS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2677, -- ♷
+ category="so",
+ description="RECYCLING SYMBOL FOR TYPE-0x0005 PLASTICS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2677,
},
[0x2678]={
- ["category"]="so",
- ["description"]="RECYCLING SYMBOL FOR TYPE-0x0006 PLASTICS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2678, -- ♸
+ category="so",
+ description="RECYCLING SYMBOL FOR TYPE-0x0006 PLASTICS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2678,
},
[0x2679]={
- ["category"]="so",
- ["description"]="RECYCLING SYMBOL FOR TYPE-0x0007 PLASTICS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2679, -- ♹
+ category="so",
+ description="RECYCLING SYMBOL FOR TYPE-0x0007 PLASTICS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2679,
},
[0x267A]={
- ["category"]="so",
- ["description"]="RECYCLING SYMBOL FOR GENERIC MATERIALS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x267A, -- ♺
+ category="so",
+ description="RECYCLING SYMBOL FOR GENERIC MATERIALS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x267A,
},
[0x267B]={
- ["category"]="so",
- ["description"]="BLACK UNIVERSAL RECYCLING SYMBOL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x267B, -- ♻
+ category="so",
+ description="BLACK UNIVERSAL RECYCLING SYMBOL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x267B,
},
[0x267C]={
- ["category"]="so",
- ["description"]="RECYCLED PAPER SYMBOL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x267C, -- ♼
+ category="so",
+ description="RECYCLED PAPER SYMBOL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x267C,
},
[0x267D]={
- ["category"]="so",
- ["description"]="PARTIALLY-RECYCLED PAPER SYMBOL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x267D, -- ♽
+ category="so",
+ description="PARTIALLY-RECYCLED PAPER SYMBOL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x267D,
},
[0x267E]={
- ["category"]="so",
- ["description"]="PERMANENT PAPER SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x267E, -- ♾
+ category="so",
+ description="PERMANENT PAPER SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x267E,
},
[0x267F]={
- ["category"]="so",
- ["description"]="WHEELCHAIR SYMBOL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x267F, -- ♿
+ category="so",
+ description="WHEELCHAIR SYMBOL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x267F,
},
[0x2680]={
- ["category"]="so",
- ["description"]="DIE FACE-0x0001",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2680, -- ⚀
+ category="so",
+ description="DIE FACE-0x0001",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2680,
},
[0x2681]={
- ["category"]="so",
- ["description"]="DIE FACE-0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2681, -- ⚁
+ category="so",
+ description="DIE FACE-0x0002",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2681,
},
[0x2682]={
- ["category"]="so",
- ["description"]="DIE FACE-0x0003",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2682, -- ⚂
+ category="so",
+ description="DIE FACE-0x0003",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2682,
},
[0x2683]={
- ["category"]="so",
- ["description"]="DIE FACE-0x0004",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2683, -- ⚃
+ category="so",
+ description="DIE FACE-0x0004",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2683,
},
[0x2684]={
- ["category"]="so",
- ["description"]="DIE FACE-0x0005",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2684, -- ⚄
+ category="so",
+ description="DIE FACE-0x0005",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2684,
},
[0x2685]={
- ["category"]="so",
- ["description"]="DIE FACE-0x0006",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2685, -- ⚅
+ category="so",
+ description="DIE FACE-0x0006",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2685,
},
[0x2686]={
- ["category"]="so",
- ["description"]="WHITE CIRCLE WITH DOT RIGHT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2686, -- ⚆
+ category="so",
+ description="WHITE CIRCLE WITH DOT RIGHT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2686,
},
[0x2687]={
- ["category"]="so",
- ["description"]="WHITE CIRCLE WITH TWO DOTS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2687, -- ⚇
+ category="so",
+ description="WHITE CIRCLE WITH TWO DOTS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2687,
},
[0x2688]={
- ["category"]="so",
- ["description"]="BLACK CIRCLE WITH WHITE DOT RIGHT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2688, -- ⚈
+ category="so",
+ description="BLACK CIRCLE WITH WHITE DOT RIGHT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2688,
},
[0x2689]={
- ["category"]="so",
- ["description"]="BLACK CIRCLE WITH TWO WHITE DOTS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2689, -- ⚉
+ category="so",
+ description="BLACK CIRCLE WITH TWO WHITE DOTS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2689,
},
[0x268A]={
- ["category"]="so",
- ["description"]="MONOGRAM FOR YANG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x268A, -- ⚊
+ category="so",
+ description="MONOGRAM FOR YANG",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x268A,
},
[0x268B]={
- ["category"]="so",
- ["description"]="MONOGRAM FOR YIN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x268B, -- ⚋
+ category="so",
+ description="MONOGRAM FOR YIN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x268B,
},
[0x268C]={
- ["category"]="so",
- ["description"]="DIGRAM FOR GREATER YANG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x268C, -- ⚌
+ category="so",
+ description="DIGRAM FOR GREATER YANG",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x268C,
},
[0x268D]={
- ["category"]="so",
- ["description"]="DIGRAM FOR LESSER YIN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x268D, -- ⚍
+ category="so",
+ description="DIGRAM FOR LESSER YIN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x268D,
},
[0x268E]={
- ["category"]="so",
- ["description"]="DIGRAM FOR LESSER YANG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x268E, -- ⚎
+ category="so",
+ description="DIGRAM FOR LESSER YANG",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x268E,
},
[0x268F]={
- ["category"]="so",
- ["description"]="DIGRAM FOR GREATER YIN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x268F, -- ⚏
+ category="so",
+ description="DIGRAM FOR GREATER YIN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x268F,
},
[0x2690]={
- ["category"]="so",
- ["description"]="WHITE FLAG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2690, -- ⚐
+ category="so",
+ description="WHITE FLAG",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2690,
},
[0x2691]={
- ["category"]="so",
- ["description"]="BLACK FLAG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2691, -- ⚑
+ category="so",
+ description="BLACK FLAG",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2691,
},
[0x2692]={
- ["category"]="so",
- ["description"]="HAMMER AND PICK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2692, -- ⚒
+ category="so",
+ description="HAMMER AND PICK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2692,
},
[0x2693]={
- ["category"]="so",
- ["description"]="ANCHOR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2693, -- ⚓
+ category="so",
+ description="ANCHOR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2693,
},
[0x2694]={
- ["category"]="so",
- ["description"]="CROSSED SWORDS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2694, -- ⚔
+ category="so",
+ description="CROSSED SWORDS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2694,
},
[0x2695]={
- ["category"]="so",
- ["description"]="STAFF OF AESCULAPIUS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2695, -- ⚕
+ category="so",
+ description="STAFF OF AESCULAPIUS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2695,
},
[0x2696]={
- ["category"]="so",
- ["description"]="SCALES",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2696, -- ⚖
+ category="so",
+ description="SCALES",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2696,
},
[0x2697]={
- ["category"]="so",
- ["description"]="ALEMBIC",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2697, -- ⚗
+ category="so",
+ description="ALEMBIC",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2697,
},
[0x2698]={
- ["category"]="so",
- ["description"]="FLOWER",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2698, -- ⚘
+ category="so",
+ description="FLOWER",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2698,
},
[0x2699]={
- ["category"]="so",
- ["description"]="GEAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2699, -- ⚙
+ category="so",
+ description="GEAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2699,
},
[0x269A]={
- ["category"]="so",
- ["description"]="STAFF OF HERMES",
- ["linebreak"]="al",
- ["unicodeslot"]=0x269A, -- ⚚
+ category="so",
+ description="STAFF OF HERMES",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x269A,
},
[0x269B]={
- ["category"]="so",
- ["description"]="ATOM SYMBOL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x269B, -- ⚛
+ category="so",
+ description="ATOM SYMBOL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x269B,
},
[0x269C]={
- ["category"]="so",
- ["description"]="FLEUR-DE-LIS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x269C, -- ⚜
+ category="so",
+ description="FLEUR-DE-LIS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x269C,
},
[0x26A0]={
- ["category"]="so",
- ["description"]="WARNING SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x26A0, -- ⚠
+ category="so",
+ description="WARNING SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x26A0,
},
[0x26A1]={
- ["category"]="so",
- ["description"]="HIGH VOLTAGE SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x26A1, -- ⚡
+ category="so",
+ description="HIGH VOLTAGE SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x26A1,
},
[0x26A2]={
- ["category"]="so",
- ["description"]="DOUBLED FEMALE SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x26A2, -- ⚢
+ category="so",
+ description="DOUBLED FEMALE SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x26A2,
},
[0x26A3]={
- ["category"]="so",
- ["description"]="DOUBLED MALE SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x26A3, -- ⚣
+ category="so",
+ description="DOUBLED MALE SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x26A3,
},
[0x26A4]={
- ["category"]="so",
- ["description"]="INTERLOCKED FEMALE AND MALE SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x26A4, -- ⚤
+ category="so",
+ description="INTERLOCKED FEMALE AND MALE SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x26A4,
},
[0x26A5]={
- ["category"]="so",
- ["description"]="MALE AND FEMALE SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x26A5, -- ⚥
+ category="so",
+ description="MALE AND FEMALE SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x26A5,
},
[0x26A6]={
- ["category"]="so",
- ["description"]="MALE WITH STROKE SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x26A6, -- ⚦
+ category="so",
+ description="MALE WITH STROKE SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x26A6,
},
[0x26A7]={
- ["category"]="so",
- ["description"]="MALE WITH STROKE AND MALE AND FEMALE SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x26A7, -- ⚧
+ category="so",
+ description="MALE WITH STROKE AND MALE AND FEMALE SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x26A7,
},
[0x26A8]={
- ["category"]="so",
- ["description"]="VERTICAL MALE WITH STROKE SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x26A8, -- ⚨
+ category="so",
+ description="VERTICAL MALE WITH STROKE SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x26A8,
},
[0x26A9]={
- ["category"]="so",
- ["description"]="HORIZONTAL MALE WITH STROKE SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x26A9, -- ⚩
+ category="so",
+ description="HORIZONTAL MALE WITH STROKE SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x26A9,
},
[0x26AA]={
- ["category"]="so",
- ["description"]="MEDIUM WHITE CIRCLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x26AA, -- ⚪
+ category="so",
+ description="MEDIUM WHITE CIRCLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x26AA,
},
[0x26AB]={
- ["category"]="so",
- ["description"]="MEDIUM BLACK CIRCLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x26AB, -- ⚫
+ category="so",
+ description="MEDIUM BLACK CIRCLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x26AB,
},
[0x26AC]={
- ["category"]="so",
- ["description"]="MEDIUM SMALL WHITE CIRCLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x26AC, -- ⚬
+ category="so",
+ description="MEDIUM SMALL WHITE CIRCLE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x26AC,
},
[0x26AD]={
- ["category"]="so",
- ["description"]="MARRIAGE SYMBOL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x26AD, -- ⚭
+ category="so",
+ description="MARRIAGE SYMBOL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x26AD,
},
[0x26AE]={
- ["category"]="so",
- ["description"]="DIVORCE SYMBOL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x26AE, -- ⚮
+ category="so",
+ description="DIVORCE SYMBOL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x26AE,
},
[0x26AF]={
- ["category"]="so",
- ["description"]="UNMARRIED PARTNERSHIP SYMBOL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x26AF, -- ⚯
+ category="so",
+ description="UNMARRIED PARTNERSHIP SYMBOL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x26AF,
},
[0x26B0]={
- ["category"]="so",
- ["description"]="COFFIN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x26B0, -- ⚰
+ category="so",
+ description="COFFIN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x26B0,
},
[0x26B1]={
- ["category"]="so",
- ["description"]="FUNERAL URN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x26B1, -- ⚱
+ category="so",
+ description="FUNERAL URN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x26B1,
},
[0x26B2]={
- ["category"]="so",
- ["description"]="NEUTER",
- ["linebreak"]="al",
- ["unicodeslot"]=0x26B2, -- ⚲
+ category="so",
+ description="NEUTER",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x26B2,
},
[0x2701]={
- ["category"]="so",
- ["description"]="UPPER BLADE SCISSORS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2701, -- ✁
+ category="so",
+ description="UPPER BLADE SCISSORS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2701,
},
[0x2702]={
- ["category"]="so",
- ["description"]="BLACK SCISSORS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2702, -- ✂
+ category="so",
+ description="BLACK SCISSORS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2702,
},
[0x2703]={
- ["category"]="so",
- ["description"]="LOWER BLADE SCISSORS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2703, -- ✃
+ category="so",
+ description="LOWER BLADE SCISSORS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2703,
},
[0x2704]={
- ["category"]="so",
- ["description"]="WHITE SCISSORS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2704, -- ✄
+ category="so",
+ description="WHITE SCISSORS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2704,
},
[0x2706]={
- ["category"]="so",
- ["description"]="TELEPHONE LOCATION SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2706, -- ✆
+ category="so",
+ description="TELEPHONE LOCATION SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2706,
},
[0x2707]={
- ["category"]="so",
- ["description"]="TAPE DRIVE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2707, -- ✇
+ category="so",
+ description="TAPE DRIVE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2707,
},
[0x2708]={
- ["category"]="so",
- ["description"]="AIRPLANE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2708, -- ✈
+ category="so",
+ description="AIRPLANE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2708,
},
[0x2709]={
- ["category"]="so",
- ["description"]="ENVELOPE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2709, -- ✉
+ category="so",
+ description="ENVELOPE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2709,
},
[0x270C]={
- ["category"]="so",
- ["description"]="VICTORY HAND",
- ["linebreak"]="al",
- ["unicodeslot"]=0x270C, -- ✌
+ category="so",
+ description="VICTORY HAND",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x270C,
},
[0x270D]={
- ["category"]="so",
- ["description"]="WRITING HAND",
- ["linebreak"]="al",
- ["unicodeslot"]=0x270D, -- ✍
+ category="so",
+ description="WRITING HAND",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x270D,
},
[0x270E]={
- ["category"]="so",
- ["description"]="LOWER RIGHT PENCIL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x270E, -- ✎
+ category="so",
+ description="LOWER RIGHT PENCIL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x270E,
},
[0x270F]={
- ["category"]="so",
- ["description"]="PENCIL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x270F, -- ✏
+ category="so",
+ description="PENCIL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x270F,
},
[0x2710]={
- ["category"]="so",
- ["description"]="UPPER RIGHT PENCIL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2710, -- ✐
+ category="so",
+ description="UPPER RIGHT PENCIL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2710,
},
[0x2711]={
- ["category"]="so",
- ["description"]="WHITE NIB",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2711, -- ✑
+ category="so",
+ description="WHITE NIB",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2711,
},
[0x2712]={
- ["category"]="so",
- ["description"]="BLACK NIB",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2712, -- ✒
+ category="so",
+ description="BLACK NIB",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2712,
},
[0x2713]={
- ["category"]="so",
- ["description"]="CHECK MARK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2713, -- ✓
+ category="so",
+ description="CHECK MARK",
+ direction="on",
+ linebreak="al",
+ mathclass="nothing",
+ mathname="checkmark",
+ unicodeslot=0x2713,
},
[0x2714]={
- ["category"]="so",
- ["description"]="HEAVY CHECK MARK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2714, -- ✔
+ category="so",
+ description="HEAVY CHECK MARK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2714,
},
[0x2715]={
- ["category"]="so",
- ["description"]="MULTIPLICATION X",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2715, -- ✕
+ category="so",
+ description="MULTIPLICATION X",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2715,
},
[0x2716]={
- ["category"]="so",
- ["description"]="HEAVY MULTIPLICATION X",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2716, -- ✖
+ category="so",
+ description="HEAVY MULTIPLICATION X",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2716,
},
[0x2717]={
- ["category"]="so",
- ["description"]="BALLOT X",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2717, -- ✗
+ category="so",
+ description="BALLOT X",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2717,
},
[0x2718]={
- ["category"]="so",
- ["description"]="HEAVY BALLOT X",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2718, -- ✘
+ category="so",
+ description="HEAVY BALLOT X",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2718,
},
[0x2719]={
- ["category"]="so",
- ["description"]="OUTLINED GREEK CROSS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2719, -- ✙
+ category="so",
+ description="OUTLINED GREEK CROSS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2719,
},
[0x271A]={
- ["category"]="so",
- ["description"]="HEAVY GREEK CROSS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x271A, -- ✚
+ category="so",
+ description="HEAVY GREEK CROSS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x271A,
},
[0x271B]={
- ["category"]="so",
- ["description"]="OPEN CENTRE CROSS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x271B, -- ✛
+ category="so",
+ description="OPEN CENTRE CROSS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x271B,
},
[0x271C]={
- ["category"]="so",
- ["description"]="HEAVY OPEN CENTRE CROSS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x271C, -- ✜
+ category="so",
+ description="HEAVY OPEN CENTRE CROSS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x271C,
},
[0x271D]={
- ["category"]="so",
- ["description"]="LATIN CROSS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x271D, -- ✝
+ category="so",
+ description="LATIN CROSS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x271D,
},
[0x271E]={
- ["category"]="so",
- ["description"]="SHADOWED WHITE LATIN CROSS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x271E, -- ✞
+ category="so",
+ description="SHADOWED WHITE LATIN CROSS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x271E,
},
[0x271F]={
- ["category"]="so",
- ["description"]="OUTLINED LATIN CROSS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x271F, -- ✟
+ category="so",
+ description="OUTLINED LATIN CROSS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x271F,
},
[0x2720]={
- ["category"]="so",
- ["description"]="MALTESE CROSS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2720, -- ✠
+ category="so",
+ description="MALTESE CROSS",
+ direction="on",
+ linebreak="al",
+ mathclass="nothing",
+ mathname="maltese",
+ unicodeslot=0x2720,
},
[0x2721]={
- ["category"]="so",
- ["description"]="STAR OF DAVID",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2721, -- ✡
+ category="so",
+ description="STAR OF DAVID",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2721,
},
[0x2722]={
- ["category"]="so",
- ["description"]="FOUR TEARDROP-SPOKED ASTERISK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2722, -- ✢
+ category="so",
+ description="FOUR TEARDROP-SPOKED ASTERISK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2722,
},
[0x2723]={
- ["category"]="so",
- ["description"]="FOUR BALLOON-SPOKED ASTERISK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2723, -- ✣
+ category="so",
+ description="FOUR BALLOON-SPOKED ASTERISK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2723,
},
[0x2724]={
- ["category"]="so",
- ["description"]="HEAVY FOUR BALLOON-SPOKED ASTERISK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2724, -- ✤
+ category="so",
+ description="HEAVY FOUR BALLOON-SPOKED ASTERISK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2724,
},
[0x2725]={
- ["category"]="so",
- ["description"]="FOUR CLUB-SPOKED ASTERISK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2725, -- ✥
+ category="so",
+ description="FOUR CLUB-SPOKED ASTERISK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2725,
},
[0x2726]={
- ["category"]="so",
- ["description"]="BLACK FOUR POINTED STAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2726, -- ✦
+ category="so",
+ description="BLACK FOUR POINTED STAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2726,
},
[0x2727]={
- ["category"]="so",
- ["description"]="WHITE FOUR POINTED STAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2727, -- ✧
+ category="so",
+ description="WHITE FOUR POINTED STAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2727,
},
[0x2729]={
- ["category"]="so",
- ["description"]="STRESS OUTLINED WHITE STAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2729, -- ✩
+ category="so",
+ description="STRESS OUTLINED WHITE STAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2729,
},
[0x272A]={
- ["category"]="so",
- ["description"]="CIRCLED WHITE STAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x272A, -- ✪
+ category="so",
+ description="CIRCLED WHITE STAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x272A,
},
[0x272B]={
- ["category"]="so",
- ["description"]="OPEN CENTRE BLACK STAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x272B, -- ✫
+ category="so",
+ description="OPEN CENTRE BLACK STAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x272B,
},
[0x272C]={
- ["category"]="so",
- ["description"]="BLACK CENTRE WHITE STAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x272C, -- ✬
+ category="so",
+ description="BLACK CENTRE WHITE STAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x272C,
},
[0x272D]={
- ["category"]="so",
- ["description"]="OUTLINED BLACK STAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x272D, -- ✭
+ category="so",
+ description="OUTLINED BLACK STAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x272D,
},
[0x272E]={
- ["category"]="so",
- ["description"]="HEAVY OUTLINED BLACK STAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x272E, -- ✮
+ category="so",
+ description="HEAVY OUTLINED BLACK STAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x272E,
},
[0x272F]={
- ["category"]="so",
- ["description"]="PINWHEEL STAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x272F, -- ✯
+ category="so",
+ description="PINWHEEL STAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x272F,
},
[0x2730]={
- ["category"]="so",
- ["description"]="SHADOWED WHITE STAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2730, -- ✰
+ category="so",
+ description="SHADOWED WHITE STAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2730,
},
[0x2731]={
- ["category"]="so",
- ["description"]="HEAVY ASTERISK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2731, -- ✱
+ category="so",
+ description="HEAVY ASTERISK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2731,
},
[0x2732]={
- ["category"]="so",
- ["description"]="OPEN CENTRE ASTERISK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2732, -- ✲
+ category="so",
+ description="OPEN CENTRE ASTERISK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2732,
},
[0x2733]={
- ["category"]="so",
- ["description"]="EIGHT SPOKED ASTERISK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2733, -- ✳
+ category="so",
+ description="EIGHT SPOKED ASTERISK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2733,
},
[0x2734]={
- ["category"]="so",
- ["description"]="EIGHT POINTED BLACK STAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2734, -- ✴
+ category="so",
+ description="EIGHT POINTED BLACK STAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2734,
},
[0x2735]={
- ["category"]="so",
- ["description"]="EIGHT POINTED PINWHEEL STAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2735, -- ✵
+ category="so",
+ description="EIGHT POINTED PINWHEEL STAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2735,
},
[0x2736]={
- ["category"]="so",
- ["description"]="SIX POINTED BLACK STAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2736, -- ✶
+ category="so",
+ description="SIX POINTED BLACK STAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2736,
},
[0x2737]={
- ["category"]="so",
- ["description"]="EIGHT POINTED RECTILINEAR BLACK STAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2737, -- ✷
+ category="so",
+ description="EIGHT POINTED RECTILINEAR BLACK STAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2737,
},
[0x2738]={
- ["category"]="so",
- ["description"]="HEAVY EIGHT POINTED RECTILINEAR BLACK STAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2738, -- ✸
+ category="so",
+ description="HEAVY EIGHT POINTED RECTILINEAR BLACK STAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2738,
},
[0x2739]={
- ["category"]="so",
- ["description"]="TWELVE POINTED BLACK STAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2739, -- ✹
+ category="so",
+ description="TWELVE POINTED BLACK STAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2739,
},
[0x273A]={
- ["category"]="so",
- ["description"]="SIXTEEN POINTED ASTERISK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x273A, -- ✺
+ category="so",
+ description="SIXTEEN POINTED ASTERISK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x273A,
},
[0x273B]={
- ["category"]="so",
- ["description"]="TEARDROP-SPOKED ASTERISK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x273B, -- ✻
+ category="so",
+ description="TEARDROP-SPOKED ASTERISK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x273B,
},
[0x273C]={
- ["category"]="so",
- ["description"]="OPEN CENTRE TEARDROP-SPOKED ASTERISK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x273C, -- ✼
+ category="so",
+ description="OPEN CENTRE TEARDROP-SPOKED ASTERISK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x273C,
},
[0x273D]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="HEAVY TEARDROP-SPOKED ASTERISK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x273D, -- ✽
+ category="so",
+ cjkwd="a",
+ description="HEAVY TEARDROP-SPOKED ASTERISK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x273D,
},
[0x273E]={
- ["category"]="so",
- ["description"]="SIX PETALLED BLACK AND WHITE FLORETTE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x273E, -- ✾
+ category="so",
+ description="SIX PETALLED BLACK AND WHITE FLORETTE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x273E,
},
[0x273F]={
- ["category"]="so",
- ["description"]="BLACK FLORETTE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x273F, -- ✿
+ category="so",
+ description="BLACK FLORETTE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x273F,
},
[0x2740]={
- ["category"]="so",
- ["description"]="WHITE FLORETTE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2740, -- ❀
+ category="so",
+ description="WHITE FLORETTE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2740,
},
[0x2741]={
- ["category"]="so",
- ["description"]="EIGHT PETALLED OUTLINED BLACK FLORETTE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2741, -- ❁
+ category="so",
+ description="EIGHT PETALLED OUTLINED BLACK FLORETTE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2741,
},
[0x2742]={
- ["category"]="so",
- ["description"]="CIRCLED OPEN CENTRE EIGHT POINTED STAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2742, -- ❂
+ category="so",
+ description="CIRCLED OPEN CENTRE EIGHT POINTED STAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2742,
},
[0x2743]={
- ["category"]="so",
- ["description"]="HEAVY TEARDROP-SPOKED PINWHEEL ASTERISK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2743, -- ❃
+ category="so",
+ description="HEAVY TEARDROP-SPOKED PINWHEEL ASTERISK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2743,
},
[0x2744]={
- ["category"]="so",
- ["description"]="SNOWFLAKE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2744, -- ❄
+ category="so",
+ description="SNOWFLAKE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2744,
},
[0x2745]={
- ["category"]="so",
- ["description"]="TIGHT TRIFOLIATE SNOWFLAKE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2745, -- ❅
+ category="so",
+ description="TIGHT TRIFOLIATE SNOWFLAKE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2745,
},
[0x2746]={
- ["category"]="so",
- ["description"]="HEAVY CHEVRON SNOWFLAKE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2746, -- ❆
+ category="so",
+ description="HEAVY CHEVRON SNOWFLAKE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2746,
},
[0x2747]={
- ["category"]="so",
- ["description"]="SPARKLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2747, -- ❇
+ category="so",
+ description="SPARKLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2747,
},
[0x2748]={
- ["category"]="so",
- ["description"]="HEAVY SPARKLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2748, -- ❈
+ category="so",
+ description="HEAVY SPARKLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2748,
},
[0x2749]={
- ["category"]="so",
- ["description"]="BALLOON-SPOKED ASTERISK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2749, -- ❉
+ category="so",
+ description="BALLOON-SPOKED ASTERISK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2749,
},
[0x274A]={
- ["category"]="so",
- ["description"]="EIGHT TEARDROP-SPOKED PROPELLER ASTERISK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x274A, -- ❊
+ category="so",
+ description="EIGHT TEARDROP-SPOKED PROPELLER ASTERISK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x274A,
},
[0x274B]={
- ["category"]="so",
- ["description"]="HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x274B, -- ❋
+ category="so",
+ description="HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x274B,
},
[0x274D]={
- ["category"]="so",
- ["description"]="SHADOWED WHITE CIRCLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x274D, -- ❍
+ category="so",
+ description="SHADOWED WHITE CIRCLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x274D,
},
[0x274F]={
- ["category"]="so",
- ["description"]="LOWER RIGHT DROP-SHADOWED WHITE SQUARE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x274F, -- ❏
+ category="so",
+ description="LOWER RIGHT DROP-SHADOWED WHITE SQUARE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x274F,
},
[0x2750]={
- ["category"]="so",
- ["description"]="UPPER RIGHT DROP-SHADOWED WHITE SQUARE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2750, -- ❐
+ category="so",
+ description="UPPER RIGHT DROP-SHADOWED WHITE SQUARE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2750,
},
[0x2751]={
- ["category"]="so",
- ["description"]="LOWER RIGHT SHADOWED WHITE SQUARE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2751, -- ❑
+ category="so",
+ description="LOWER RIGHT SHADOWED WHITE SQUARE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2751,
},
[0x2752]={
- ["category"]="so",
- ["description"]="UPPER RIGHT SHADOWED WHITE SQUARE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2752, -- ❒
+ category="so",
+ description="UPPER RIGHT SHADOWED WHITE SQUARE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2752,
},
[0x2756]={
- ["category"]="so",
- ["description"]="BLACK DIAMOND MINUS WHITE X",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2756, -- ❖
+ category="so",
+ description="BLACK DIAMOND MINUS WHITE X",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2756,
},
[0x2758]={
- ["category"]="so",
- ["description"]="LIGHT VERTICAL BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2758, -- ❘
+ category="so",
+ description="LIGHT VERTICAL BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2758,
},
[0x2759]={
- ["category"]="so",
- ["description"]="MEDIUM VERTICAL BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2759, -- ❙
+ category="so",
+ description="MEDIUM VERTICAL BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2759,
},
[0x275A]={
- ["category"]="so",
- ["description"]="HEAVY VERTICAL BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x275A, -- ❚
+ category="so",
+ description="HEAVY VERTICAL BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x275A,
},
[0x275B]={
- ["category"]="so",
- ["description"]="HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT",
- ["linebreak"]="qu",
- ["unicodeslot"]=0x275B, -- ❛
+ category="so",
+ description="HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT",
+ direction="on",
+ linebreak="qu",
+ unicodeslot=0x275B,
},
[0x275C]={
- ["category"]="so",
- ["description"]="HEAVY SINGLE COMMA QUOTATION MARK ORNAMENT",
- ["linebreak"]="qu",
- ["unicodeslot"]=0x275C, -- ❜
+ category="so",
+ description="HEAVY SINGLE COMMA QUOTATION MARK ORNAMENT",
+ direction="on",
+ linebreak="qu",
+ unicodeslot=0x275C,
},
[0x275D]={
- ["category"]="so",
- ["description"]="HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT",
- ["linebreak"]="qu",
- ["unicodeslot"]=0x275D, -- ❝
+ category="so",
+ description="HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT",
+ direction="on",
+ linebreak="qu",
+ unicodeslot=0x275D,
},
[0x275E]={
- ["category"]="so",
- ["description"]="HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT",
- ["linebreak"]="qu",
- ["unicodeslot"]=0x275E, -- ❞
+ category="so",
+ description="HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT",
+ direction="on",
+ linebreak="qu",
+ unicodeslot=0x275E,
},
[0x2761]={
- ["category"]="so",
- ["description"]="CURVED STEM PARAGRAPH SIGN ORNAMENT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2761, -- ❡
+ category="so",
+ description="CURVED STEM PARAGRAPH SIGN ORNAMENT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2761,
},
[0x2762]={
- ["category"]="so",
- ["description"]="HEAVY EXCLAMATION MARK ORNAMENT",
- ["linebreak"]="ex",
- ["unicodeslot"]=0x2762, -- ❢
+ category="so",
+ description="HEAVY EXCLAMATION MARK ORNAMENT",
+ direction="on",
+ linebreak="ex",
+ unicodeslot=0x2762,
},
[0x2763]={
- ["category"]="so",
- ["description"]="HEAVY HEART EXCLAMATION MARK ORNAMENT",
- ["linebreak"]="ex",
- ["unicodeslot"]=0x2763, -- ❣
+ category="so",
+ description="HEAVY HEART EXCLAMATION MARK ORNAMENT",
+ direction="on",
+ linebreak="ex",
+ unicodeslot=0x2763,
},
[0x2764]={
- ["category"]="so",
- ["description"]="HEAVY BLACK HEART",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2764, -- ❤
+ category="so",
+ description="HEAVY BLACK HEART",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2764,
},
[0x2765]={
- ["category"]="so",
- ["description"]="ROTATED HEAVY BLACK HEART BULLET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2765, -- ❥
+ category="so",
+ description="ROTATED HEAVY BLACK HEART BULLET",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2765,
},
[0x2766]={
- ["category"]="so",
- ["description"]="FLORAL HEART",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2766, -- ❦
+ category="so",
+ description="FLORAL HEART",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2766,
},
[0x2767]={
- ["category"]="so",
- ["description"]="ROTATED FLORAL HEART BULLET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2767, -- ❧
+ category="so",
+ description="ROTATED FLORAL HEART BULLET",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2767,
},
[0x2768]={
- ["category"]="ps",
- ["description"]="MEDIUM LEFT PARENTHESIS ORNAMENT",
- ["linebreak"]="op",
- ["unicodeslot"]=0x2768, -- ❨
+ category="ps",
+ description="MEDIUM LEFT PARENTHESIS ORNAMENT",
+ direction="on",
+ linebreak="op",
+ mirror=0x2769,
+ unicodeslot=0x2768,
},
[0x2769]={
- ["category"]="pe",
- ["description"]="MEDIUM RIGHT PARENTHESIS ORNAMENT",
- ["linebreak"]="cl",
- ["unicodeslot"]=0x2769, -- ❩
+ category="pe",
+ description="MEDIUM RIGHT PARENTHESIS ORNAMENT",
+ direction="on",
+ linebreak="cl",
+ mirror=0x2768,
+ unicodeslot=0x2769,
},
[0x276A]={
- ["category"]="ps",
- ["description"]="MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT",
- ["linebreak"]="op",
- ["unicodeslot"]=0x276A, -- ❪
+ category="ps",
+ description="MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT",
+ direction="on",
+ linebreak="op",
+ mirror=0x276B,
+ unicodeslot=0x276A,
},
[0x276B]={
- ["category"]="pe",
- ["description"]="MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT",
- ["linebreak"]="cl",
- ["unicodeslot"]=0x276B, -- ❫
+ category="pe",
+ description="MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT",
+ direction="on",
+ linebreak="cl",
+ mirror=0x276A,
+ unicodeslot=0x276B,
},
[0x276C]={
- ["category"]="ps",
- ["description"]="MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT",
- ["linebreak"]="op",
- ["unicodeslot"]=0x276C, -- ❬
+ category="ps",
+ description="MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT",
+ direction="on",
+ linebreak="op",
+ mirror=0x276D,
+ unicodeslot=0x276C,
},
[0x276D]={
- ["category"]="pe",
- ["description"]="MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT",
- ["linebreak"]="cl",
- ["unicodeslot"]=0x276D, -- ❭
+ category="pe",
+ description="MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT",
+ direction="on",
+ linebreak="cl",
+ mirror=0x276C,
+ unicodeslot=0x276D,
},
[0x276E]={
- ["category"]="ps",
- ["description"]="HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT",
- ["linebreak"]="op",
- ["unicodeslot"]=0x276E, -- ❮
+ category="ps",
+ description="HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT",
+ direction="on",
+ linebreak="op",
+ mirror=0x276F,
+ unicodeslot=0x276E,
},
[0x276F]={
- ["category"]="pe",
- ["description"]="HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT",
- ["linebreak"]="cl",
- ["unicodeslot"]=0x276F, -- ❯
+ category="pe",
+ description="HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT",
+ direction="on",
+ linebreak="cl",
+ mirror=0x276E,
+ unicodeslot=0x276F,
},
[0x2770]={
- ["category"]="ps",
- ["description"]="HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT",
- ["linebreak"]="op",
- ["unicodeslot"]=0x2770, -- ❰
+ category="ps",
+ description="HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT",
+ direction="on",
+ linebreak="op",
+ mirror=0x2771,
+ unicodeslot=0x2770,
},
[0x2771]={
- ["category"]="pe",
- ["description"]="HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT",
- ["linebreak"]="cl",
- ["unicodeslot"]=0x2771, -- ❱
+ category="pe",
+ description="HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT",
+ direction="on",
+ linebreak="cl",
+ mirror=0x2770,
+ unicodeslot=0x2771,
},
[0x2772]={
- ["category"]="ps",
- ["description"]="LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT",
- ["linebreak"]="op",
- ["unicodeslot"]=0x2772, -- ❲
+ category="ps",
+ description="LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT",
+ direction="on",
+ linebreak="op",
+ mirror=0x2773,
+ unicodeslot=0x2772,
},
[0x2773]={
- ["category"]="pe",
- ["description"]="LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT",
- ["linebreak"]="cl",
- ["unicodeslot"]=0x2773, -- ❳
+ category="pe",
+ description="LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT",
+ direction="on",
+ linebreak="cl",
+ mirror=0x2772,
+ unicodeslot=0x2773,
},
[0x2774]={
- ["category"]="ps",
- ["description"]="MEDIUM LEFT CURLY BRACKET ORNAMENT",
- ["linebreak"]="op",
- ["unicodeslot"]=0x2774, -- ❴
+ category="ps",
+ description="MEDIUM LEFT CURLY BRACKET ORNAMENT",
+ direction="on",
+ linebreak="op",
+ mirror=0x2775,
+ unicodeslot=0x2774,
},
[0x2775]={
- ["category"]="pe",
- ["description"]="MEDIUM RIGHT CURLY BRACKET ORNAMENT",
- ["linebreak"]="cl",
- ["unicodeslot"]=0x2775, -- ❵
+ category="pe",
+ description="MEDIUM RIGHT CURLY BRACKET ORNAMENT",
+ direction="on",
+ linebreak="cl",
+ mirror=0x2774,
+ unicodeslot=0x2775,
},
[0x2776]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="DINGBAT NEGATIVE CIRCLED DIGIT ONE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2776, -- ❶
+ category="no",
+ cjkwd="a",
+ description="DINGBAT NEGATIVE CIRCLED DIGIT ONE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2776,
},
[0x2777]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="DINGBAT NEGATIVE CIRCLED DIGIT TWO",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2777, -- ❷
+ category="no",
+ cjkwd="a",
+ description="DINGBAT NEGATIVE CIRCLED DIGIT TWO",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2777,
},
[0x2778]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="DINGBAT NEGATIVE CIRCLED DIGIT THREE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2778, -- ❸
+ category="no",
+ cjkwd="a",
+ description="DINGBAT NEGATIVE CIRCLED DIGIT THREE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2778,
},
[0x2779]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="DINGBAT NEGATIVE CIRCLED DIGIT FOUR",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2779, -- ❹
+ category="no",
+ cjkwd="a",
+ description="DINGBAT NEGATIVE CIRCLED DIGIT FOUR",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2779,
},
[0x277A]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="DINGBAT NEGATIVE CIRCLED DIGIT FIVE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x277A, -- ❺
+ category="no",
+ cjkwd="a",
+ description="DINGBAT NEGATIVE CIRCLED DIGIT FIVE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x277A,
},
[0x277B]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="DINGBAT NEGATIVE CIRCLED DIGIT SIX",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x277B, -- ❻
+ category="no",
+ cjkwd="a",
+ description="DINGBAT NEGATIVE CIRCLED DIGIT SIX",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x277B,
},
[0x277C]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="DINGBAT NEGATIVE CIRCLED DIGIT SEVEN",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x277C, -- ❼
+ category="no",
+ cjkwd="a",
+ description="DINGBAT NEGATIVE CIRCLED DIGIT SEVEN",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x277C,
},
[0x277D]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="DINGBAT NEGATIVE CIRCLED DIGIT EIGHT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x277D, -- ❽
+ category="no",
+ cjkwd="a",
+ description="DINGBAT NEGATIVE CIRCLED DIGIT EIGHT",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x277D,
},
[0x277E]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="DINGBAT NEGATIVE CIRCLED DIGIT NINE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x277E, -- ❾
+ category="no",
+ cjkwd="a",
+ description="DINGBAT NEGATIVE CIRCLED DIGIT NINE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x277E,
},
[0x277F]={
- ["category"]="no",
- ["cjkwd"]="a",
- ["description"]="DINGBAT NEGATIVE CIRCLED NUMBER TEN",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x277F, -- ❿
+ category="no",
+ cjkwd="a",
+ description="DINGBAT NEGATIVE CIRCLED NUMBER TEN",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x277F,
},
[0x2780]={
- ["category"]="no",
- ["description"]="DINGBAT CIRCLED SANS-SERIF DIGIT ONE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2780, -- ➀
+ category="no",
+ description="DINGBAT CIRCLED SANS-SERIF DIGIT ONE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2780,
},
[0x2781]={
- ["category"]="no",
- ["description"]="DINGBAT CIRCLED SANS-SERIF DIGIT TWO",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2781, -- ➁
+ category="no",
+ description="DINGBAT CIRCLED SANS-SERIF DIGIT TWO",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2781,
},
[0x2782]={
- ["category"]="no",
- ["description"]="DINGBAT CIRCLED SANS-SERIF DIGIT THREE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2782, -- ➂
+ category="no",
+ description="DINGBAT CIRCLED SANS-SERIF DIGIT THREE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2782,
},
[0x2783]={
- ["category"]="no",
- ["description"]="DINGBAT CIRCLED SANS-SERIF DIGIT FOUR",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2783, -- ➃
+ category="no",
+ description="DINGBAT CIRCLED SANS-SERIF DIGIT FOUR",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2783,
},
[0x2784]={
- ["category"]="no",
- ["description"]="DINGBAT CIRCLED SANS-SERIF DIGIT FIVE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2784, -- ➄
+ category="no",
+ description="DINGBAT CIRCLED SANS-SERIF DIGIT FIVE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2784,
},
[0x2785]={
- ["category"]="no",
- ["description"]="DINGBAT CIRCLED SANS-SERIF DIGIT SIX",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2785, -- ➅
+ category="no",
+ description="DINGBAT CIRCLED SANS-SERIF DIGIT SIX",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2785,
},
[0x2786]={
- ["category"]="no",
- ["description"]="DINGBAT CIRCLED SANS-SERIF DIGIT SEVEN",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2786, -- ➆
+ category="no",
+ description="DINGBAT CIRCLED SANS-SERIF DIGIT SEVEN",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2786,
},
[0x2787]={
- ["category"]="no",
- ["description"]="DINGBAT CIRCLED SANS-SERIF DIGIT EIGHT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2787, -- ➇
+ category="no",
+ description="DINGBAT CIRCLED SANS-SERIF DIGIT EIGHT",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2787,
},
[0x2788]={
- ["category"]="no",
- ["description"]="DINGBAT CIRCLED SANS-SERIF DIGIT NINE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2788, -- ➈
+ category="no",
+ description="DINGBAT CIRCLED SANS-SERIF DIGIT NINE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2788,
},
[0x2789]={
- ["category"]="no",
- ["description"]="DINGBAT CIRCLED SANS-SERIF NUMBER TEN",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2789, -- ➉
+ category="no",
+ description="DINGBAT CIRCLED SANS-SERIF NUMBER TEN",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2789,
},
[0x278A]={
- ["category"]="no",
- ["description"]="DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ONE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x278A, -- ➊
+ category="no",
+ description="DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ONE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x278A,
},
[0x278B]={
- ["category"]="no",
- ["description"]="DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT TWO",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x278B, -- ➋
+ category="no",
+ description="DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT TWO",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x278B,
},
[0x278C]={
- ["category"]="no",
- ["description"]="DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT THREE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x278C, -- ➌
+ category="no",
+ description="DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT THREE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x278C,
},
[0x278D]={
- ["category"]="no",
- ["description"]="DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FOUR",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x278D, -- ➍
+ category="no",
+ description="DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FOUR",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x278D,
},
[0x278E]={
- ["category"]="no",
- ["description"]="DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FIVE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x278E, -- ➎
+ category="no",
+ description="DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FIVE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x278E,
},
[0x278F]={
- ["category"]="no",
- ["description"]="DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SIX",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x278F, -- ➏
+ category="no",
+ description="DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SIX",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x278F,
},
[0x2790]={
- ["category"]="no",
- ["description"]="DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SEVEN",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2790, -- ➐
+ category="no",
+ description="DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SEVEN",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2790,
},
[0x2791]={
- ["category"]="no",
- ["description"]="DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT EIGHT",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2791, -- ➑
+ category="no",
+ description="DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT EIGHT",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2791,
},
[0x2792]={
- ["category"]="no",
- ["description"]="DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT NINE",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2792, -- ➒
+ category="no",
+ description="DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT NINE",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2792,
},
[0x2793]={
- ["category"]="no",
- ["description"]="DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN",
- ["linebreak"]="ai",
- ["unicodeslot"]=0x2793, -- ➓
+ category="no",
+ description="DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0x2793,
},
[0x2794]={
- ["category"]="so",
- ["description"]="HEAVY WIDE-HEADED RIGHTWARDS ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2794, -- ➔
+ category="so",
+ description="HEAVY WIDE-HEADED RIGHTWARDS ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2794,
},
[0x2798]={
- ["category"]="so",
- ["description"]="HEAVY SOUTH EAST ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2798, -- ➘
+ category="so",
+ description="HEAVY SOUTH EAST ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2798,
},
[0x2799]={
- ["category"]="so",
- ["description"]="HEAVY RIGHTWARDS ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2799, -- ➙
+ category="so",
+ description="HEAVY RIGHTWARDS ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2799,
},
[0x279A]={
- ["category"]="so",
- ["description"]="HEAVY NORTH EAST ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x279A, -- ➚
+ category="so",
+ description="HEAVY NORTH EAST ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x279A,
},
[0x279B]={
- ["category"]="so",
- ["description"]="DRAFTING POINT RIGHTWARDS ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x279B, -- ➛
+ category="so",
+ description="DRAFTING POINT RIGHTWARDS ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x279B,
},
[0x279C]={
- ["category"]="so",
- ["description"]="HEAVY ROUND-TIPPED RIGHTWARDS ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x279C, -- ➜
+ category="so",
+ description="HEAVY ROUND-TIPPED RIGHTWARDS ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x279C,
},
[0x279D]={
- ["category"]="so",
- ["description"]="TRIANGLE-HEADED RIGHTWARDS ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x279D, -- ➝
+ category="so",
+ description="TRIANGLE-HEADED RIGHTWARDS ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x279D,
},
[0x279E]={
- ["category"]="so",
- ["description"]="HEAVY TRIANGLE-HEADED RIGHTWARDS ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x279E, -- ➞
+ category="so",
+ description="HEAVY TRIANGLE-HEADED RIGHTWARDS ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x279E,
},
[0x279F]={
- ["category"]="so",
- ["description"]="DASHED TRIANGLE-HEADED RIGHTWARDS ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x279F, -- ➟
+ category="so",
+ description="DASHED TRIANGLE-HEADED RIGHTWARDS ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x279F,
},
[0x27A0]={
- ["category"]="so",
- ["description"]="HEAVY DASHED TRIANGLE-HEADED RIGHTWARDS ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27A0, -- ➠
+ category="so",
+ description="HEAVY DASHED TRIANGLE-HEADED RIGHTWARDS ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x27A0,
},
[0x27A1]={
- ["category"]="so",
- ["description"]="BLACK RIGHTWARDS ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27A1, -- ➡
+ category="so",
+ description="BLACK RIGHTWARDS ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x27A1,
},
[0x27A2]={
- ["category"]="so",
- ["description"]="THREE-D TOP-LIGHTED RIGHTWARDS ARROWHEAD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27A2, -- ➢
+ category="so",
+ description="THREE-D TOP-LIGHTED RIGHTWARDS ARROWHEAD",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x27A2,
},
[0x27A3]={
- ["category"]="so",
- ["description"]="THREE-D BOTTOM-LIGHTED RIGHTWARDS ARROWHEAD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27A3, -- ➣
+ category="so",
+ description="THREE-D BOTTOM-LIGHTED RIGHTWARDS ARROWHEAD",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x27A3,
},
[0x27A4]={
- ["category"]="so",
- ["description"]="BLACK RIGHTWARDS ARROWHEAD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27A4, -- ➤
+ category="so",
+ description="BLACK RIGHTWARDS ARROWHEAD",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x27A4,
},
[0x27A5]={
- ["category"]="so",
- ["description"]="HEAVY BLACK CURVED DOWNWARDS AND RIGHTWARDS ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27A5, -- ➥
+ category="so",
+ description="HEAVY BLACK CURVED DOWNWARDS AND RIGHTWARDS ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x27A5,
},
[0x27A6]={
- ["category"]="so",
- ["description"]="HEAVY BLACK CURVED UPWARDS AND RIGHTWARDS ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27A6, -- ➦
+ category="so",
+ description="HEAVY BLACK CURVED UPWARDS AND RIGHTWARDS ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x27A6,
},
[0x27A7]={
- ["category"]="so",
- ["description"]="SQUAT BLACK RIGHTWARDS ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27A7, -- ➧
+ category="so",
+ description="SQUAT BLACK RIGHTWARDS ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x27A7,
},
[0x27A8]={
- ["category"]="so",
- ["description"]="HEAVY CONCAVE-POINTED BLACK RIGHTWARDS ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27A8, -- ➨
+ category="so",
+ description="HEAVY CONCAVE-POINTED BLACK RIGHTWARDS ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x27A8,
},
[0x27A9]={
- ["category"]="so",
- ["description"]="RIGHT-SHADED WHITE RIGHTWARDS ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27A9, -- ➩
+ category="so",
+ description="RIGHT-SHADED WHITE RIGHTWARDS ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x27A9,
},
[0x27AA]={
- ["category"]="so",
- ["description"]="LEFT-SHADED WHITE RIGHTWARDS ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27AA, -- ➪
+ category="so",
+ description="LEFT-SHADED WHITE RIGHTWARDS ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x27AA,
},
[0x27AB]={
- ["category"]="so",
- ["description"]="BACK-TILTED SHADOWED WHITE RIGHTWARDS ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27AB, -- ➫
+ category="so",
+ description="BACK-TILTED SHADOWED WHITE RIGHTWARDS ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x27AB,
},
[0x27AC]={
- ["category"]="so",
- ["description"]="FRONT-TILTED SHADOWED WHITE RIGHTWARDS ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27AC, -- ➬
+ category="so",
+ description="FRONT-TILTED SHADOWED WHITE RIGHTWARDS ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x27AC,
},
[0x27AD]={
- ["category"]="so",
- ["description"]="HEAVY LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27AD, -- ➭
+ category="so",
+ description="HEAVY LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x27AD,
},
[0x27AE]={
- ["category"]="so",
- ["description"]="HEAVY UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27AE, -- ➮
+ category="so",
+ description="HEAVY UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x27AE,
},
[0x27AF]={
- ["category"]="so",
- ["description"]="NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27AF, -- ➯
+ category="so",
+ description="NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x27AF,
},
[0x27B1]={
- ["category"]="so",
- ["description"]="NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27B1, -- ➱
+ category="so",
+ description="NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x27B1,
},
[0x27B2]={
- ["category"]="so",
- ["description"]="CIRCLED HEAVY WHITE RIGHTWARDS ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27B2, -- ➲
+ category="so",
+ description="CIRCLED HEAVY WHITE RIGHTWARDS ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x27B2,
},
[0x27B3]={
- ["category"]="so",
- ["description"]="WHITE-FEATHERED RIGHTWARDS ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27B3, -- ➳
+ category="so",
+ description="WHITE-FEATHERED RIGHTWARDS ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x27B3,
},
[0x27B4]={
- ["category"]="so",
- ["description"]="BLACK-FEATHERED SOUTH EAST ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27B4, -- ➴
+ category="so",
+ description="BLACK-FEATHERED SOUTH EAST ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x27B4,
},
[0x27B5]={
- ["category"]="so",
- ["description"]="BLACK-FEATHERED RIGHTWARDS ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27B5, -- ➵
+ category="so",
+ description="BLACK-FEATHERED RIGHTWARDS ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x27B5,
},
[0x27B6]={
- ["category"]="so",
- ["description"]="BLACK-FEATHERED NORTH EAST ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27B6, -- ➶
+ category="so",
+ description="BLACK-FEATHERED NORTH EAST ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x27B6,
},
[0x27B7]={
- ["category"]="so",
- ["description"]="HEAVY BLACK-FEATHERED SOUTH EAST ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27B7, -- ➷
+ category="so",
+ description="HEAVY BLACK-FEATHERED SOUTH EAST ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x27B7,
},
[0x27B8]={
- ["category"]="so",
- ["description"]="HEAVY BLACK-FEATHERED RIGHTWARDS ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27B8, -- ➸
+ category="so",
+ description="HEAVY BLACK-FEATHERED RIGHTWARDS ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x27B8,
},
[0x27B9]={
- ["category"]="so",
- ["description"]="HEAVY BLACK-FEATHERED NORTH EAST ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27B9, -- ➹
+ category="so",
+ description="HEAVY BLACK-FEATHERED NORTH EAST ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x27B9,
},
[0x27BA]={
- ["category"]="so",
- ["description"]="TEARDROP-BARBED RIGHTWARDS ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27BA, -- ➺
+ category="so",
+ description="TEARDROP-BARBED RIGHTWARDS ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x27BA,
},
[0x27BB]={
- ["category"]="so",
- ["description"]="HEAVY TEARDROP-SHANKED RIGHTWARDS ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27BB, -- ➻
+ category="so",
+ description="HEAVY TEARDROP-SHANKED RIGHTWARDS ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x27BB,
},
[0x27BC]={
- ["category"]="so",
- ["description"]="WEDGE-TAILED RIGHTWARDS ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27BC, -- ➼
+ category="so",
+ description="WEDGE-TAILED RIGHTWARDS ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x27BC,
},
[0x27BD]={
- ["category"]="so",
- ["description"]="HEAVY WEDGE-TAILED RIGHTWARDS ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27BD, -- ➽
+ category="so",
+ description="HEAVY WEDGE-TAILED RIGHTWARDS ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x27BD,
},
[0x27BE]={
- ["category"]="so",
- ["description"]="OPEN-OUTLINED RIGHTWARDS ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27BE, -- ➾
+ category="so",
+ description="OPEN-OUTLINED RIGHTWARDS ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x27BE,
},
[0x27C0]={
- ["category"]="sm",
- ["description"]="THREE DIMENSIONAL ANGLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27C0, -- ⟀
+ category="sm",
+ description="THREE DIMENSIONAL ANGLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x27C0,
},
[0x27C1]={
- ["category"]="sm",
- ["description"]="WHITE TRIANGLE CONTAINING SMALL WHITE TRIANGLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27C1, -- ⟁
+ category="sm",
+ description="WHITE TRIANGLE CONTAINING SMALL WHITE TRIANGLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x27C1,
},
[0x27C2]={
- ["category"]="sm",
- ["description"]="PERPENDICULAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27C2, -- ⟂
+ category="sm",
+ description="PERPENDICULAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x27C2,
},
[0x27C3]={
- ["category"]="sm",
- ["description"]="OPEN SUBSET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27C3, -- ⟃
+ category="sm",
+ description="OPEN SUBSET",
+ direction="on",
+ linebreak="al",
+ mirror=0x27C4,
+ unicodeslot=0x27C3,
},
[0x27C4]={
- ["category"]="sm",
- ["description"]="OPEN SUPERSET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27C4, -- ⟄
+ category="sm",
+ description="OPEN SUPERSET",
+ direction="on",
+ linebreak="al",
+ mirror=0x27C3,
+ unicodeslot=0x27C4,
},
[0x27C5]={
- ["category"]="ps",
- ["description"]="LEFT S-SHAPED BAG DELIMITER",
- ["linebreak"]="op",
- ["unicodeslot"]=0x27C5, -- ⟅
+ category="ps",
+ description="LEFT S-SHAPED BAG DELIMITER",
+ direction="on",
+ linebreak="op",
+ mirror=0x27C6,
+ unicodeslot=0x27C5,
},
[0x27C6]={
- ["category"]="pe",
- ["description"]="RIGHT S-SHAPED BAG DELIMITER",
- ["linebreak"]="cl",
- ["unicodeslot"]=0x27C6, -- ⟆
+ category="pe",
+ description="RIGHT S-SHAPED BAG DELIMITER",
+ direction="on",
+ linebreak="cl",
+ mirror=0x27C5,
+ unicodeslot=0x27C6,
},
[0x27C7]={
- ["category"]="sm",
- ["description"]="OR WITH DOT INSIDE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27C7, -- ⟇
+ category="sm",
+ description="OR WITH DOT INSIDE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x27C7,
},
[0x27C8]={
- ["category"]="sm",
- ["description"]="REVERSE SOLIDUS PRECEDING SUBSET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27C8, -- ⟈
+ category="sm",
+ description="REVERSE SOLIDUS PRECEDING SUBSET",
+ direction="on",
+ linebreak="al",
+ mirror=0x27C9,
+ unicodeslot=0x27C8,
},
[0x27C9]={
- ["category"]="sm",
- ["description"]="SUPERSET PRECEDING SOLIDUS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27C9, -- ⟉
+ category="sm",
+ description="SUPERSET PRECEDING SOLIDUS",
+ direction="on",
+ linebreak="al",
+ mirror=0x27C8,
+ unicodeslot=0x27C9,
},
[0x27CA]={
- ["category"]="sm",
- ["description"]="VERTICAL BAR WITH HORIZONTAL STROKE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27CA, -- ⟊
+ category="sm",
+ description="VERTICAL BAR WITH HORIZONTAL STROKE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x27CA,
},
[0x27D0]={
- ["category"]="sm",
- ["description"]="WHITE DIAMOND WITH CENTRED DOT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27D0, -- ⟐
+ category="sm",
+ description="WHITE DIAMOND WITH CENTRED DOT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x27D0,
},
[0x27D1]={
- ["category"]="sm",
- ["description"]="AND WITH DOT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27D1, -- ⟑
+ category="sm",
+ description="AND WITH DOT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x27D1,
},
[0x27D2]={
- ["category"]="sm",
- ["description"]="ELEMENT OF OPENING UPWARDS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27D2, -- ⟒
+ category="sm",
+ description="ELEMENT OF OPENING UPWARDS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x27D2,
},
[0x27D3]={
- ["category"]="sm",
- ["description"]="LOWER RIGHT CORNER WITH DOT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27D3, -- ⟓
+ category="sm",
+ description="LOWER RIGHT CORNER WITH DOT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x27D3,
},
[0x27D4]={
- ["category"]="sm",
- ["description"]="UPPER LEFT CORNER WITH DOT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27D4, -- ⟔
+ category="sm",
+ description="UPPER LEFT CORNER WITH DOT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x27D4,
},
[0x27D5]={
- ["category"]="sm",
- ["description"]="LEFT OUTER JOIN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27D5, -- ⟕
+ category="sm",
+ description="LEFT OUTER JOIN",
+ direction="on",
+ linebreak="al",
+ mirror=0x27D6,
+ unicodeslot=0x27D5,
},
[0x27D6]={
- ["category"]="sm",
- ["description"]="RIGHT OUTER JOIN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27D6, -- ⟖
+ category="sm",
+ description="RIGHT OUTER JOIN",
+ direction="on",
+ linebreak="al",
+ mirror=0x27D5,
+ unicodeslot=0x27D6,
},
[0x27D7]={
- ["category"]="sm",
- ["description"]="FULL OUTER JOIN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27D7, -- ⟗
+ category="sm",
+ description="FULL OUTER JOIN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x27D7,
},
[0x27D8]={
- ["category"]="sm",
- ["description"]="LARGE UP TACK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27D8, -- ⟘
+ category="sm",
+ description="LARGE UP TACK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x27D8,
},
[0x27D9]={
- ["category"]="sm",
- ["description"]="LARGE DOWN TACK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27D9, -- ⟙
+ category="sm",
+ description="LARGE DOWN TACK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x27D9,
},
[0x27DA]={
- ["category"]="sm",
- ["description"]="LEFT AND RIGHT DOUBLE TURNSTILE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27DA, -- ⟚
+ category="sm",
+ description="LEFT AND RIGHT DOUBLE TURNSTILE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x27DA,
},
[0x27DB]={
- ["category"]="sm",
- ["description"]="LEFT AND RIGHT TACK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27DB, -- ⟛
+ category="sm",
+ description="LEFT AND RIGHT TACK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x27DB,
},
[0x27DC]={
- ["category"]="sm",
- ["description"]="LEFT MULTIMAP",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27DC, -- ⟜
+ category="sm",
+ description="LEFT MULTIMAP",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x27DC,
},
[0x27DD]={
- ["category"]="sm",
- ["description"]="LONG RIGHT TACK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27DD, -- ⟝
+ category="sm",
+ description="LONG RIGHT TACK",
+ direction="on",
+ linebreak="al",
+ mirror=0x27DE,
+ unicodeslot=0x27DD,
},
[0x27DE]={
- ["category"]="sm",
- ["description"]="LONG LEFT TACK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27DE, -- ⟞
+ category="sm",
+ description="LONG LEFT TACK",
+ direction="on",
+ linebreak="al",
+ mirror=0x27DD,
+ unicodeslot=0x27DE,
},
[0x27DF]={
- ["category"]="sm",
- ["description"]="UP TACK WITH CIRCLE ABOVE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27DF, -- ⟟
+ category="sm",
+ description="UP TACK WITH CIRCLE ABOVE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x27DF,
},
[0x27E0]={
- ["category"]="sm",
- ["description"]="LOZENGE DIVIDED BY HORIZONTAL RULE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27E0, -- ⟠
+ category="sm",
+ description="LOZENGE DIVIDED BY HORIZONTAL RULE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x27E0,
},
[0x27E1]={
- ["category"]="sm",
- ["description"]="WHITE CONCAVE-SIDED DIAMOND",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27E1, -- ⟡
+ category="sm",
+ description="WHITE CONCAVE-SIDED DIAMOND",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x27E1,
},
[0x27E2]={
- ["category"]="sm",
- ["description"]="WHITE CONCAVE-SIDED DIAMOND WITH LEFTWARDS TICK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27E2, -- ⟢
+ category="sm",
+ description="WHITE CONCAVE-SIDED DIAMOND WITH LEFTWARDS TICK",
+ direction="on",
+ linebreak="al",
+ mirror=0x27E3,
+ unicodeslot=0x27E2,
},
[0x27E3]={
- ["category"]="sm",
- ["description"]="WHITE CONCAVE-SIDED DIAMOND WITH RIGHTWARDS TICK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27E3, -- ⟣
+ category="sm",
+ description="WHITE CONCAVE-SIDED DIAMOND WITH RIGHTWARDS TICK",
+ direction="on",
+ linebreak="al",
+ mirror=0x27E2,
+ unicodeslot=0x27E3,
},
[0x27E4]={
- ["category"]="sm",
- ["description"]="WHITE SQUARE WITH LEFTWARDS TICK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27E4, -- ⟤
+ category="sm",
+ description="WHITE SQUARE WITH LEFTWARDS TICK",
+ direction="on",
+ linebreak="al",
+ mirror=0x27E5,
+ unicodeslot=0x27E4,
},
[0x27E5]={
- ["category"]="sm",
- ["description"]="WHITE SQUARE WITH RIGHTWARDS TICK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27E5, -- ⟥
+ category="sm",
+ description="WHITE SQUARE WITH RIGHTWARDS TICK",
+ direction="on",
+ linebreak="al",
+ mirror=0x27E4,
+ unicodeslot=0x27E5,
},
[0x27E6]={
- ["category"]="ps",
- ["cjkwd"]="na",
- ["description"]="MATHEMATICAL LEFT WHITE SQUARE BRACKET",
- ["linebreak"]="op",
- ["unicodeslot"]=0x27E6, -- ⟦
+ category="ps",
+ cjkwd="na",
+ description="MATHEMATICAL LEFT WHITE SQUARE BRACKET",
+ direction="on",
+ linebreak="op",
+ mathclass="open",
+ mathname="llbracket",
+ mirror=0x27E7,
+ unicodeslot=0x27E6,
},
[0x27E7]={
- ["category"]="pe",
- ["cjkwd"]="na",
- ["description"]="MATHEMATICAL RIGHT WHITE SQUARE BRACKET",
- ["linebreak"]="cl",
- ["unicodeslot"]=0x27E7, -- ⟧
+ category="pe",
+ cjkwd="na",
+ description="MATHEMATICAL RIGHT WHITE SQUARE BRACKET",
+ direction="on",
+ linebreak="cl",
+ mathclass="close",
+ mathname="rrbracket",
+ mirror=0x27E6,
+ unicodeslot=0x27E7,
},
[0x27E8]={
- ["category"]="ps",
- ["cjkwd"]="na",
- ["description"]="MATHEMATICAL LEFT ANGLE BRACKET",
- ["linebreak"]="op",
- ["unicodeslot"]=0x27E8, -- ⟨
+ category="ps",
+ cjkwd="na",
+ description="MATHEMATICAL LEFT ANGLE BRACKET",
+ direction="on",
+ linebreak="op",
+ mathclass="open",
+ mathname="langle",
+ mirror=0x27E9,
+ unicodeslot=0x27E8,
},
[0x27E9]={
- ["category"]="pe",
- ["cjkwd"]="na",
- ["description"]="MATHEMATICAL RIGHT ANGLE BRACKET",
- ["linebreak"]="cl",
- ["unicodeslot"]=0x27E9, -- ⟩
+ category="pe",
+ cjkwd="na",
+ description="MATHEMATICAL RIGHT ANGLE BRACKET",
+ direction="on",
+ linebreak="cl",
+ mathclass="close",
+ mathname="rangle",
+ mirror=0x27E8,
+ unicodeslot=0x27E9,
},
[0x27EA]={
- ["category"]="ps",
- ["cjkwd"]="na",
- ["description"]="MATHEMATICAL LEFT DOUBLE ANGLE BRACKET",
- ["linebreak"]="op",
- ["unicodeslot"]=0x27EA, -- ⟪
+ category="ps",
+ cjkwd="na",
+ description="MATHEMATICAL LEFT DOUBLE ANGLE BRACKET",
+ direction="on",
+ linebreak="op",
+ mathclass="open",
+ mathname="llangle",
+ mirror=0x27EB,
+ unicodeslot=0x27EA,
},
[0x27EB]={
- ["category"]="pe",
- ["cjkwd"]="na",
- ["description"]="MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET",
- ["linebreak"]="cl",
- ["unicodeslot"]=0x27EB, -- ⟫
+ category="pe",
+ cjkwd="na",
+ description="MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET",
+ direction="on",
+ linebreak="cl",
+ mathclass="close",
+ mathname="rrangle",
+ mirror=0x27EA,
+ unicodeslot=0x27EB,
},
[0x27F0]={
- ["category"]="sm",
- ["description"]="UPWARDS QUADRUPLE ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27F0, -- ⟰
+ category="sm",
+ description="UPWARDS QUADRUPLE ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x27F0,
},
[0x27F1]={
- ["category"]="sm",
- ["description"]="DOWNWARDS QUADRUPLE ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27F1, -- ⟱
+ category="sm",
+ description="DOWNWARDS QUADRUPLE ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x27F1,
},
[0x27F2]={
- ["category"]="sm",
- ["description"]="ANTICLOCKWISE GAPPED CIRCLE ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27F2, -- ⟲
+ category="sm",
+ description="ANTICLOCKWISE GAPPED CIRCLE ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x27F2,
},
[0x27F3]={
- ["category"]="sm",
- ["description"]="CLOCKWISE GAPPED CIRCLE ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27F3, -- ⟳
+ category="sm",
+ description="CLOCKWISE GAPPED CIRCLE ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x27F3,
},
[0x27F4]={
- ["category"]="sm",
- ["description"]="RIGHT ARROW WITH CIRCLED PLUS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27F4, -- ⟴
+ category="sm",
+ description="RIGHT ARROW WITH CIRCLED PLUS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x27F4,
},
[0x27F5]={
- ["category"]="sm",
- ["description"]="LONG LEFTWARDS ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27F5, -- ⟵
+ category="sm",
+ description="LONG LEFTWARDS ARROW",
+ direction="on",
+ linebreak="al",
+ fallback=[[\leftarrow\joinrel\relbar]],
+ mathclass="relation",
+ mathname="longleftarrow",
+ unicodeslot=0x27F5,
},
[0x27F6]={
- ["category"]="sm",
- ["description"]="LONG RIGHTWARDS ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27F6, -- ⟶
+ category="sm",
+ description="LONG RIGHTWARDS ARROW",
+ direction="on",
+ linebreak="al",
+ fallback=[[\relbar\joinrel\rightarrow]],
+ mathclass="relation",
+ mathname="longrightarrow",
+ unicodeslot=0x27F6,
},
[0x27F7]={
- ["category"]="sm",
- ["description"]="LONG LEFT RIGHT ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27F7, -- ⟷
+ category="sm",
+ description="LONG LEFT RIGHT ARROW",
+ direction="on",
+ linebreak="al",
+ fallback=[[\leftarrow\joinrel\rightarrow]],
+ mathclass="relation",
+ mathname="longleftrightarrow",
+ unicodeslot=0x27F7,
},
[0x27F8]={
- ["category"]="sm",
- ["description"]="LONG LEFTWARDS DOUBLE ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27F8, -- ⟸
+ category="sm",
+ description="LONG LEFTWARDS DOUBLE ARROW",
+ direction="on",
+ linebreak="al",
+ fallback=[[\Leftarrow\joinrel\Relbar]],
+ mathclass="relation",
+ mathname="Longleftarrow",
+ unicodeslot=0x27F8,
},
[0x27F9]={
- ["category"]="sm",
- ["description"]="LONG RIGHTWARDS DOUBLE ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27F9, -- ⟹
+ category="sm",
+ description="LONG RIGHTWARDS DOUBLE ARROW",
+ direction="on",
+ linebreak="al",
+ fallback=[[\Relbar\joinrel\Rightarrow]],
+ mathclass="relation",
+ mathname="Longrightarrow",
+ unicodeslot=0x27F9,
},
[0x27FA]={
- ["category"]="sm",
- ["description"]="LONG LEFT RIGHT DOUBLE ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27FA, -- ⟺
+ category="sm",
+ description="LONG LEFT RIGHT DOUBLE ARROW",
+ direction="on",
+ linebreak="al",
+ fallback=[[\Leftarrow\joinrel\Rightarrow]],
+ mathclass="relation",
+ mathname="Longleftrightarrow",
+ unicodeslot=0x27FA,
},
[0x27FB]={
- ["category"]="sm",
- ["description"]="LONG LEFTWARDS ARROW FROM BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27FB, -- ⟻
+ category="sm",
+ description="LONG LEFTWARDS ARROW FROM BAR",
+ direction="on",
+ linebreak="al",
+ fallback=[[\longleftarrow\mapstochar]], -- untested
+ mathclass="relation",
+ mathname="longmapsfrom",
+ unicodeslot=0x27FB,
},
[0x27FC]={
- ["category"]="sm",
- ["description"]="LONG RIGHTWARDS ARROW FROM BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27FC, -- ⟼
+ category="sm",
+ description="LONG RIGHTWARDS ARROW FROM BAR",
+ direction="on",
+ linebreak="al",
+ fallback=[[\mapstochar\longrightarrow]],
+ mathclass="relation",
+ mathname="longmapsto",
+ unicodeslot=0x27FC,
},
[0x27FD]={
- ["category"]="sm",
- ["description"]="LONG LEFTWARDS DOUBLE ARROW FROM BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27FD, -- ⟽
+ category="sm",
+ description="LONG LEFTWARDS DOUBLE ARROW FROM BAR",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="Longmapsfrom",
+ unicodeslot=0x27FD,
},
[0x27FE]={
- ["category"]="sm",
- ["description"]="LONG RIGHTWARDS DOUBLE ARROW FROM BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27FE, -- ⟾
+ category="sm",
+ description="LONG RIGHTWARDS DOUBLE ARROW FROM BAR",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="Longmapsto",
+ unicodeslot=0x27FE,
},
[0x27FF]={
- ["category"]="sm",
- ["description"]="LONG RIGHTWARDS SQUIGGLE ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x27FF, -- ⟿
+ category="sm",
+ description="LONG RIGHTWARDS SQUIGGLE ARROW",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="longrightsquigarrow",
+ unicodeslot=0x27FF,
},
[0x2800]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN BLANK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2800, -- ⠀
+ category="so",
+ description="BRAILLE PATTERN BLANK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2800,
},
[0x2801]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0001",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2801, -- ⠁
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0001",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2801,
},
[0x2802]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2802, -- ⠂
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2802,
},
[0x2803]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x000C",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2803, -- ⠃
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x000C",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2803,
},
[0x2804]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0003",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2804, -- ⠄
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0003",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2804,
},
[0x2805]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x000D",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2805, -- ⠅
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x000D",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2805,
},
[0x2806]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0017",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2806, -- ⠆
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0017",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2806,
},
[0x2807]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x007B",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2807, -- ⠇
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x007B",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2807,
},
[0x2808]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0004",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2808, -- ⠈
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0004",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2808,
},
[0x2809]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x000E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2809, -- ⠉
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x000E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2809,
},
[0x280A]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0018",
- ["linebreak"]="al",
- ["unicodeslot"]=0x280A, -- ⠊
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0018",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x280A,
},
[0x280B]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x007C",
- ["linebreak"]="al",
- ["unicodeslot"]=0x280B, -- ⠋
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x007C",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x280B,
},
[0x280C]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0022",
- ["linebreak"]="al",
- ["unicodeslot"]=0x280C, -- ⠌
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0022",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x280C,
},
[0x280D]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0086",
- ["linebreak"]="al",
- ["unicodeslot"]=0x280D, -- ⠍
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0086",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x280D,
},
[0x280E]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x00EA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x280E, -- ⠎
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x00EA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x280E,
},
[0x280F]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x04D2",
- ["linebreak"]="al",
- ["unicodeslot"]=0x280F, -- ⠏
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x04D2",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x280F,
},
[0x2810]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0005",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2810, -- ⠐
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0005",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2810,
},
[0x2811]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x000F",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2811, -- ⠑
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x000F",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2811,
},
[0x2812]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0019",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2812, -- ⠒
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0019",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2812,
},
[0x2813]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x007D",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2813, -- ⠓
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x007D",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2813,
},
[0x2814]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0023",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2814, -- ⠔
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0023",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2814,
},
[0x2815]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0087",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2815, -- ⠕
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0087",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2815,
},
[0x2816]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x00EB",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2816, -- ⠖
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x00EB",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2816,
},
[0x2817]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x04D3",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2817, -- ⠗
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x04D3",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2817,
},
[0x2818]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x002D",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2818, -- ⠘
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x002D",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2818,
},
[0x2819]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0091",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2819, -- ⠙
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0091",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2819,
},
[0x281A]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x00F5",
- ["linebreak"]="al",
- ["unicodeslot"]=0x281A, -- ⠚
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x00F5",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x281A,
},
[0x281B]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x04DD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x281B, -- ⠛
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x04DD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x281B,
},
[0x281C]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0159",
- ["linebreak"]="al",
- ["unicodeslot"]=0x281C, -- ⠜
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0159",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x281C,
},
[0x281D]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0541",
- ["linebreak"]="al",
- ["unicodeslot"]=0x281D, -- ⠝
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0541",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x281D,
},
[0x281E]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0929",
- ["linebreak"]="al",
- ["unicodeslot"]=0x281E, -- ⠞
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0929",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x281E,
},
[0x281F]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x3039",
- ["linebreak"]="al",
- ["unicodeslot"]=0x281F, -- ⠟
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x3039",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x281F,
},
[0x2820]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0006",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2820, -- ⠠
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0006",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2820,
},
[0x2821]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0010",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2821, -- ⠡
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0010",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2821,
},
[0x2822]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x001A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2822, -- ⠢
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x001A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2822,
},
[0x2823]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x007E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2823, -- ⠣
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x007E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2823,
},
[0x2824]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0024",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2824, -- ⠤
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0024",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2824,
},
[0x2825]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0088",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2825, -- ⠥
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0088",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2825,
},
[0x2826]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x00EC",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2826, -- ⠦
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x00EC",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2826,
},
[0x2827]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x04D4",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2827, -- ⠧
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x04D4",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2827,
},
[0x2828]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x002E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2828, -- ⠨
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x002E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2828,
},
[0x2829]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0092",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2829, -- ⠩
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0092",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2829,
},
[0x282A]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x00F6",
- ["linebreak"]="al",
- ["unicodeslot"]=0x282A, -- ⠪
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x00F6",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x282A,
},
[0x282B]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x04DE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x282B, -- ⠫
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x04DE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x282B,
},
[0x282C]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x015A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x282C, -- ⠬
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x015A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x282C,
},
[0x282D]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0542",
- ["linebreak"]="al",
- ["unicodeslot"]=0x282D, -- ⠭
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0542",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x282D,
},
[0x282E]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x092A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x282E, -- ⠮
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x092A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x282E,
},
[0x282F]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x303A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x282F, -- ⠯
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x303A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x282F,
},
[0x2830]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0038",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2830, -- ⠰
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0038",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2830,
},
[0x2831]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x009C",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2831, -- ⠱
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x009C",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2831,
},
[0x2832]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0100",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2832, -- ⠲
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0100",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2832,
},
[0x2833]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x04E8",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2833, -- ⠳
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x04E8",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2833,
},
[0x2834]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0164",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2834, -- ⠴
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0164",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2834,
},
[0x2835]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x054C",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2835, -- ⠵
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x054C",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2835,
},
[0x2836]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0934",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2836, -- ⠶
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0934",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2836,
},
[0x2837]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x3044",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2837, -- ⠷
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x3044",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2837,
},
[0x2838]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x01C8",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2838, -- ⠸
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x01C8",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2838,
},
[0x2839]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x05B0",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2839, -- ⠹
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x05B0",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2839,
},
[0x283A]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0998",
- ["linebreak"]="al",
- ["unicodeslot"]=0x283A, -- ⠺
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0998",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x283A,
},
[0x283B]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x30A8",
- ["linebreak"]="al",
- ["unicodeslot"]=0x283B, -- ⠻
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x30A8",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x283B,
},
[0x283C]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0D80",
- ["linebreak"]="al",
- ["unicodeslot"]=0x283C, -- ⠼
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0D80",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x283C,
},
[0x283D]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x3490",
- ["linebreak"]="al",
- ["unicodeslot"]=0x283D, -- ⠽
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x3490",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x283D,
},
[0x283E]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x5BA0",
- ["linebreak"]="al",
- ["unicodeslot"]=0x283E, -- ⠾
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x5BA0",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x283E,
},
[0x283F]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x1E240",
- ["linebreak"]="al",
- ["unicodeslot"]=0x283F, -- ⠿
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x1E240",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x283F,
},
[0x2840]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0007",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2840, -- ⡀
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0007",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2840,
},
[0x2841]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0011",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2841, -- ⡁
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0011",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2841,
},
[0x2842]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x001B",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2842, -- ⡂
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x001B",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2842,
},
[0x2843]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x007F",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2843, -- ⡃
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x007F",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2843,
},
[0x2844]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0025",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2844, -- ⡄
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0025",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2844,
},
[0x2845]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0089",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2845, -- ⡅
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0089",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2845,
},
[0x2846]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x00ED",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2846, -- ⡆
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x00ED",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2846,
},
[0x2847]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x04D5",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2847, -- ⡇
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x04D5",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2847,
},
[0x2848]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x002F",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2848, -- ⡈
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x002F",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2848,
},
[0x2849]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0093",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2849, -- ⡉
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0093",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2849,
},
[0x284A]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x00F7",
- ["linebreak"]="al",
- ["unicodeslot"]=0x284A, -- ⡊
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x00F7",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x284A,
},
[0x284B]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x04DF",
- ["linebreak"]="al",
- ["unicodeslot"]=0x284B, -- ⡋
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x04DF",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x284B,
},
[0x284C]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x015B",
- ["linebreak"]="al",
- ["unicodeslot"]=0x284C, -- ⡌
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x015B",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x284C,
},
[0x284D]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0543",
- ["linebreak"]="al",
- ["unicodeslot"]=0x284D, -- ⡍
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0543",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x284D,
},
[0x284E]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x092B",
- ["linebreak"]="al",
- ["unicodeslot"]=0x284E, -- ⡎
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x092B",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x284E,
},
[0x284F]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x303B",
- ["linebreak"]="al",
- ["unicodeslot"]=0x284F, -- ⡏
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x303B",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x284F,
},
[0x2850]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0039",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2850, -- ⡐
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0039",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2850,
},
[0x2851]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x009D",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2851, -- ⡑
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x009D",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2851,
},
[0x2852]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0101",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2852, -- ⡒
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0101",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2852,
},
[0x2853]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x04E9",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2853, -- ⡓
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x04E9",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2853,
},
[0x2854]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0165",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2854, -- ⡔
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0165",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2854,
},
[0x2855]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x054D",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2855, -- ⡕
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x054D",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2855,
},
[0x2856]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0935",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2856, -- ⡖
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0935",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2856,
},
[0x2857]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x3045",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2857, -- ⡗
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x3045",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2857,
},
[0x2858]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x01C9",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2858, -- ⡘
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x01C9",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2858,
},
[0x2859]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x05B1",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2859, -- ⡙
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x05B1",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2859,
},
[0x285A]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0999",
- ["linebreak"]="al",
- ["unicodeslot"]=0x285A, -- ⡚
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0999",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x285A,
},
[0x285B]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x30A9",
- ["linebreak"]="al",
- ["unicodeslot"]=0x285B, -- ⡛
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x30A9",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x285B,
},
[0x285C]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0D81",
- ["linebreak"]="al",
- ["unicodeslot"]=0x285C, -- ⡜
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0D81",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x285C,
},
[0x285D]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x3491",
- ["linebreak"]="al",
- ["unicodeslot"]=0x285D, -- ⡝
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x3491",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x285D,
},
[0x285E]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x5BA1",
- ["linebreak"]="al",
- ["unicodeslot"]=0x285E, -- ⡞
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x5BA1",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x285E,
},
[0x285F]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x1E241",
- ["linebreak"]="al",
- ["unicodeslot"]=0x285F, -- ⡟
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x1E241",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x285F,
},
[0x2860]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0043",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2860, -- ⡠
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0043",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2860,
},
[0x2861]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x00A7",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2861, -- ⡡
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x00A7",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2861,
},
[0x2862]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x010B",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2862, -- ⡢
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x010B",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2862,
},
[0x2863]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x04F3",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2863, -- ⡣
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x04F3",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2863,
},
[0x2864]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x016F",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2864, -- ⡤
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x016F",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2864,
},
[0x2865]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0557",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2865, -- ⡥
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0557",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2865,
},
[0x2866]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x093F",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2866, -- ⡦
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x093F",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2866,
},
[0x2867]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x304F",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2867, -- ⡧
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x304F",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2867,
},
[0x2868]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x01D3",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2868, -- ⡨
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x01D3",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2868,
},
[0x2869]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x05BB",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2869, -- ⡩
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x05BB",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2869,
},
[0x286A]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x09A3",
- ["linebreak"]="al",
- ["unicodeslot"]=0x286A, -- ⡪
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x09A3",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x286A,
},
[0x286B]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x30B3",
- ["linebreak"]="al",
- ["unicodeslot"]=0x286B, -- ⡫
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x30B3",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x286B,
},
[0x286C]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0D8B",
- ["linebreak"]="al",
- ["unicodeslot"]=0x286C, -- ⡬
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0D8B",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x286C,
},
[0x286D]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x349B",
- ["linebreak"]="al",
- ["unicodeslot"]=0x286D, -- ⡭
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x349B",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x286D,
},
[0x286E]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x5BAB",
- ["linebreak"]="al",
- ["unicodeslot"]=0x286E, -- ⡮
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x5BAB",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x286E,
},
[0x286F]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x1E24B",
- ["linebreak"]="al",
- ["unicodeslot"]=0x286F, -- ⡯
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x1E24B",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x286F,
},
[0x2870]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0237",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2870, -- ⡰
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0237",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2870,
},
[0x2871]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x061F",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2871, -- ⡱
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x061F",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2871,
},
[0x2872]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0A07",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2872, -- ⡲
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0A07",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2872,
},
[0x2873]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x3117",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2873, -- ⡳
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x3117",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2873,
},
[0x2874]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0DEF",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2874, -- ⡴
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0DEF",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2874,
},
[0x2875]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x34FF",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2875, -- ⡵
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x34FF",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2875,
},
[0x2876]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x5C0F",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2876, -- ⡶
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x5C0F",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2876,
},
[0x2877]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x1E2AF",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2877, -- ⡷
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x1E2AF",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2877,
},
[0x2878]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x11D7",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2878, -- ⡸
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x11D7",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2878,
},
[0x2879]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x38E7",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2879, -- ⡹
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x38E7",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2879,
},
[0x287A]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x5FF7",
- ["linebreak"]="al",
- ["unicodeslot"]=0x287A, -- ⡺
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x5FF7",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x287A,
},
[0x287B]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x1E697",
- ["linebreak"]="al",
- ["unicodeslot"]=0x287B, -- ⡻
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x1E697",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x287B,
},
[0x287C]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x8707",
- ["linebreak"]="al",
- ["unicodeslot"]=0x287C, -- ⡼
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x8707",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x287C,
},
[0x287D]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x20DA7",
- ["linebreak"]="al",
- ["unicodeslot"]=0x287D, -- ⡽
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x20DA7",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x287D,
},
[0x287E]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x39447",
- ["linebreak"]="al",
- ["unicodeslot"]=0x287E, -- ⡾
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x39447",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x287E,
},
[0x287F]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x12D687",
- ["linebreak"]="al",
- ["unicodeslot"]=0x287F, -- ⡿
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x12D687",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x287F,
},
[0x2880]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0008",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2880, -- ⢀
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0008",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2880,
},
[0x2881]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0012",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2881, -- ⢁
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0012",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2881,
},
[0x2882]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x001C",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2882, -- ⢂
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x001C",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2882,
},
[0x2883]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0080",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2883, -- ⢃
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0080",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2883,
},
[0x2884]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0026",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2884, -- ⢄
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0026",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2884,
},
[0x2885]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x008A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2885, -- ⢅
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x008A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2885,
},
[0x2886]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x00EE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2886, -- ⢆
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x00EE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2886,
},
[0x2887]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x04D6",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2887, -- ⢇
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x04D6",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2887,
},
[0x2888]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0030",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2888, -- ⢈
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0030",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2888,
},
[0x2889]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0094",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2889, -- ⢉
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0094",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2889,
},
[0x288A]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x00F8",
- ["linebreak"]="al",
- ["unicodeslot"]=0x288A, -- ⢊
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x00F8",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x288A,
},
[0x288B]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x04E0",
- ["linebreak"]="al",
- ["unicodeslot"]=0x288B, -- ⢋
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x04E0",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x288B,
},
[0x288C]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x015C",
- ["linebreak"]="al",
- ["unicodeslot"]=0x288C, -- ⢌
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x015C",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x288C,
},
[0x288D]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0544",
- ["linebreak"]="al",
- ["unicodeslot"]=0x288D, -- ⢍
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0544",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x288D,
},
[0x288E]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x092C",
- ["linebreak"]="al",
- ["unicodeslot"]=0x288E, -- ⢎
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x092C",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x288E,
},
[0x288F]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x303C",
- ["linebreak"]="al",
- ["unicodeslot"]=0x288F, -- ⢏
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x303C",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x288F,
},
[0x2890]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x003A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2890, -- ⢐
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x003A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2890,
},
[0x2891]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x009E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2891, -- ⢑
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x009E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2891,
},
[0x2892]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0102",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2892, -- ⢒
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0102",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2892,
},
[0x2893]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x04EA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2893, -- ⢓
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x04EA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2893,
},
[0x2894]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0166",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2894, -- ⢔
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0166",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2894,
},
[0x2895]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x054E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2895, -- ⢕
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x054E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2895,
},
[0x2896]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0936",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2896, -- ⢖
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0936",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2896,
},
[0x2897]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x3046",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2897, -- ⢗
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x3046",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2897,
},
[0x2898]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x01CA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2898, -- ⢘
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x01CA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2898,
},
[0x2899]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x05B2",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2899, -- ⢙
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x05B2",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2899,
},
[0x289A]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x099A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x289A, -- ⢚
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x099A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x289A,
},
[0x289B]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x30AA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x289B, -- ⢛
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x30AA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x289B,
},
[0x289C]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0D82",
- ["linebreak"]="al",
- ["unicodeslot"]=0x289C, -- ⢜
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0D82",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x289C,
},
[0x289D]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x3492",
- ["linebreak"]="al",
- ["unicodeslot"]=0x289D, -- ⢝
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x3492",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x289D,
},
[0x289E]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x5BA2",
- ["linebreak"]="al",
- ["unicodeslot"]=0x289E, -- ⢞
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x5BA2",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x289E,
},
[0x289F]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x1E242",
- ["linebreak"]="al",
- ["unicodeslot"]=0x289F, -- ⢟
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x1E242",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x289F,
},
[0x28A0]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0044",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28A0, -- ⢠
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0044",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28A0,
},
[0x28A1]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x00A8",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28A1, -- ⢡
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x00A8",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28A1,
},
[0x28A2]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x010C",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28A2, -- ⢢
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x010C",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28A2,
},
[0x28A3]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x04F4",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28A3, -- ⢣
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x04F4",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28A3,
},
[0x28A4]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0170",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28A4, -- ⢤
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0170",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28A4,
},
[0x28A5]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0558",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28A5, -- ⢥
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0558",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28A5,
},
[0x28A6]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0940",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28A6, -- ⢦
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0940",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28A6,
},
[0x28A7]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x3050",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28A7, -- ⢧
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x3050",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28A7,
},
[0x28A8]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x01D4",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28A8, -- ⢨
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x01D4",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28A8,
},
[0x28A9]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x05BC",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28A9, -- ⢩
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x05BC",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28A9,
},
[0x28AA]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x09A4",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28AA, -- ⢪
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x09A4",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28AA,
},
[0x28AB]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x30B4",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28AB, -- ⢫
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x30B4",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28AB,
},
[0x28AC]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0D8C",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28AC, -- ⢬
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0D8C",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28AC,
},
[0x28AD]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x349C",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28AD, -- ⢭
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x349C",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28AD,
},
[0x28AE]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x5BAC",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28AE, -- ⢮
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x5BAC",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28AE,
},
[0x28AF]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x1E24C",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28AF, -- ⢯
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x1E24C",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28AF,
},
[0x28B0]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0238",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28B0, -- ⢰
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0238",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28B0,
},
[0x28B1]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0620",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28B1, -- ⢱
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0620",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28B1,
},
[0x28B2]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0A08",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28B2, -- ⢲
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0A08",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28B2,
},
[0x28B3]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x3118",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28B3, -- ⢳
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x3118",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28B3,
},
[0x28B4]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0DF0",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28B4, -- ⢴
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0DF0",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28B4,
},
[0x28B5]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x3500",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28B5, -- ⢵
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x3500",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28B5,
},
[0x28B6]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x5C10",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28B6, -- ⢶
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x5C10",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28B6,
},
[0x28B7]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x1E2B0",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28B7, -- ⢷
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x1E2B0",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28B7,
},
[0x28B8]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x11D8",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28B8, -- ⢸
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x11D8",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28B8,
},
[0x28B9]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x38E8",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28B9, -- ⢹
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x38E8",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28B9,
},
[0x28BA]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x5FF8",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28BA, -- ⢺
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x5FF8",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28BA,
},
[0x28BB]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x1E698",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28BB, -- ⢻
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x1E698",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28BB,
},
[0x28BC]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x8708",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28BC, -- ⢼
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x8708",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28BC,
},
[0x28BD]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x20DA8",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28BD, -- ⢽
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x20DA8",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28BD,
},
[0x28BE]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x39448",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28BE, -- ⢾
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x39448",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28BE,
},
[0x28BF]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x12D688",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28BF, -- ⢿
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x12D688",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28BF,
},
[0x28C0]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x004E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28C0, -- ⣀
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x004E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28C0,
},
[0x28C1]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x00B2",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28C1, -- ⣁
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x00B2",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28C1,
},
[0x28C2]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0116",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28C2, -- ⣂
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0116",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28C2,
},
[0x28C3]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x04FE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28C3, -- ⣃
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x04FE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28C3,
},
[0x28C4]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x017A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28C4, -- ⣄
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x017A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28C4,
},
[0x28C5]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0562",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28C5, -- ⣅
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0562",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28C5,
},
[0x28C6]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x094A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28C6, -- ⣆
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x094A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28C6,
},
[0x28C7]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x305A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28C7, -- ⣇
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x305A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28C7,
},
[0x28C8]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x01DE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28C8, -- ⣈
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x01DE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28C8,
},
[0x28C9]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x05C6",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28C9, -- ⣉
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x05C6",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28C9,
},
[0x28CA]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x09AE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28CA, -- ⣊
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x09AE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28CA,
},
[0x28CB]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x30BE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28CB, -- ⣋
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x30BE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28CB,
},
[0x28CC]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0D96",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28CC, -- ⣌
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0D96",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28CC,
},
[0x28CD]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x34A6",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28CD, -- ⣍
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x34A6",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28CD,
},
[0x28CE]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x5BB6",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28CE, -- ⣎
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x5BB6",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28CE,
},
[0x28CF]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x1E256",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28CF, -- ⣏
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x1E256",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28CF,
},
[0x28D0]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0242",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28D0, -- ⣐
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0242",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28D0,
},
[0x28D1]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x062A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28D1, -- ⣑
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x062A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28D1,
},
[0x28D2]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0A12",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28D2, -- ⣒
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0A12",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28D2,
},
[0x28D3]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x3122",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28D3, -- ⣓
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x3122",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28D3,
},
[0x28D4]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0DFA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28D4, -- ⣔
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0DFA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28D4,
},
[0x28D5]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x350A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28D5, -- ⣕
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x350A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28D5,
},
[0x28D6]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x5C1A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28D6, -- ⣖
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x5C1A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28D6,
},
[0x28D7]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x1E2BA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28D7, -- ⣗
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x1E2BA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28D7,
},
[0x28D8]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x11E2",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28D8, -- ⣘
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x11E2",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28D8,
},
[0x28D9]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x38F2",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28D9, -- ⣙
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x38F2",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28D9,
},
[0x28DA]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x6002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28DA, -- ⣚
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x6002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28DA,
},
[0x28DB]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x1E6A2",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28DB, -- ⣛
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x1E6A2",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28DB,
},
[0x28DC]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x8712",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28DC, -- ⣜
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x8712",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28DC,
},
[0x28DD]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x20DB2",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28DD, -- ⣝
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x20DB2",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28DD,
},
[0x28DE]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x39452",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28DE, -- ⣞
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x39452",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28DE,
},
[0x28DF]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x12D692",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28DF, -- ⣟
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x12D692",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28DF,
},
[0x28E0]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x02A6",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28E0, -- ⣠
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x02A6",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28E0,
},
[0x28E1]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x068E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28E1, -- ⣡
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x068E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28E1,
},
[0x28E2]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0A76",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28E2, -- ⣢
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0A76",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28E2,
},
[0x28E3]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x3186",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28E3, -- ⣣
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x3186",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28E3,
},
[0x28E4]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x0E5E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28E4, -- ⣤
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x0E5E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28E4,
},
[0x28E5]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x356E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28E5, -- ⣥
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x356E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28E5,
},
[0x28E6]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x5C7E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28E6, -- ⣦
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x5C7E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28E6,
},
[0x28E7]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x1E31E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28E7, -- ⣧
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x1E31E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28E7,
},
[0x28E8]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x1246",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28E8, -- ⣨
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x1246",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28E8,
},
[0x28E9]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x3956",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28E9, -- ⣩
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x3956",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28E9,
},
[0x28EA]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x6066",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28EA, -- ⣪
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x6066",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28EA,
},
[0x28EB]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x1E706",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28EB, -- ⣫
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x1E706",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28EB,
},
[0x28EC]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x8776",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28EC, -- ⣬
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x8776",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28EC,
},
[0x28ED]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x20E16",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28ED, -- ⣭
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x20E16",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28ED,
},
[0x28EE]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x394B6",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28EE, -- ⣮
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x394B6",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28EE,
},
[0x28EF]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x12D6F6",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28EF, -- ⣯
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x12D6F6",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28EF,
},
[0x28F0]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x162E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28F0, -- ⣰
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x162E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28F0,
},
[0x28F1]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x3D3E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28F1, -- ⣱
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x3D3E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28F1,
},
[0x28F2]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x644E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28F2, -- ⣲
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x644E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28F2,
},
[0x28F3]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x1EAEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28F3, -- ⣳
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x1EAEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28F3,
},
[0x28F4]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x8B5E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28F4, -- ⣴
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x8B5E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28F4,
},
[0x28F5]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x211FE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28F5, -- ⣵
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x211FE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28F5,
},
[0x28F6]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x3989E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28F6, -- ⣶
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x3989E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28F6,
},
[0x28F7]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x12DADE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28F7, -- ⣷
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x12DADE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28F7,
},
[0x28F8]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0xB26E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28F8, -- ⣸
+ category="so",
+ description="BRAILLE PATTERN DOTS-0xB26E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28F8,
},
[0x28F9]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x2390E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28F9, -- ⣹
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x2390E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28F9,
},
[0x28FA]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x3BFAE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28FA, -- ⣺
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x3BFAE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28FA,
},
[0x28FB]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x1301EE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28FB, -- ⣻
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x1301EE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28FB,
},
[0x28FC]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x5464E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28FC, -- ⣼
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x5464E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28FC,
},
[0x28FD]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x14888E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28FD, -- ⣽
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x14888E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28FD,
},
[0x28FE]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0x23CACE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28FE, -- ⣾
+ category="so",
+ description="BRAILLE PATTERN DOTS-0x23CACE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28FE,
},
[0x28FF]={
- ["category"]="so",
- ["description"]="BRAILLE PATTERN DOTS-0xBC614E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x28FF, -- ⣿
+ category="so",
+ description="BRAILLE PATTERN DOTS-0xBC614E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x28FF,
},
[0x2900]={
- ["category"]="sm",
- ["description"]="RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2900, -- ⤀
+ category="sm",
+ description="RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2900,
},
[0x2901]={
- ["category"]="sm",
- ["description"]="RIGHTWARDS TWO-HEADED ARROW WITH DOUBLE VERTICAL STROKE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2901, -- ⤁
+ category="sm",
+ description="RIGHTWARDS TWO-HEADED ARROW WITH DOUBLE VERTICAL STROKE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2901,
},
[0x2902]={
- ["category"]="sm",
- ["description"]="LEFTWARDS DOUBLE ARROW WITH VERTICAL STROKE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2902, -- ⤂
+ category="sm",
+ description="LEFTWARDS DOUBLE ARROW WITH VERTICAL STROKE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2902,
},
[0x2903]={
- ["category"]="sm",
- ["description"]="RIGHTWARDS DOUBLE ARROW WITH VERTICAL STROKE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2903, -- ⤃
+ category="sm",
+ description="RIGHTWARDS DOUBLE ARROW WITH VERTICAL STROKE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2903,
},
[0x2904]={
- ["category"]="sm",
- ["description"]="LEFT RIGHT DOUBLE ARROW WITH VERTICAL STROKE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2904, -- ⤄
+ category="sm",
+ description="LEFT RIGHT DOUBLE ARROW WITH VERTICAL STROKE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2904,
},
[0x2905]={
- ["category"]="sm",
- ["description"]="RIGHTWARDS TWO-HEADED ARROW FROM BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2905, -- ⤅
+ category="sm",
+ description="RIGHTWARDS TWO-HEADED ARROW FROM BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2905,
},
[0x2906]={
- ["category"]="sm",
- ["description"]="LEFTWARDS DOUBLE ARROW FROM BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2906, -- ⤆
+ category="sm",
+ description="LEFTWARDS DOUBLE ARROW FROM BAR",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="Mapsfrom",
+ unicodeslot=0x2906,
},
[0x2907]={
- ["category"]="sm",
- ["description"]="RIGHTWARDS DOUBLE ARROW FROM BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2907, -- ⤇
+ category="sm",
+ description="RIGHTWARDS DOUBLE ARROW FROM BAR",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="Mapsto",
+ unicodeslot=0x2907,
},
[0x2908]={
- ["category"]="sm",
- ["description"]="DOWNWARDS ARROW WITH HORIZONTAL STROKE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2908, -- ⤈
+ category="sm",
+ description="DOWNWARDS ARROW WITH HORIZONTAL STROKE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2908,
},
[0x2909]={
- ["category"]="sm",
- ["description"]="UPWARDS ARROW WITH HORIZONTAL STROKE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2909, -- ⤉
+ category="sm",
+ description="UPWARDS ARROW WITH HORIZONTAL STROKE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2909,
},
[0x290A]={
- ["category"]="sm",
- ["description"]="UPWARDS TRIPLE ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x290A, -- ⤊
+ category="sm",
+ description="UPWARDS TRIPLE ARROW",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="Uuparrow",
+ unicodeslot=0x290A,
},
[0x290B]={
- ["category"]="sm",
- ["description"]="DOWNWARDS TRIPLE ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x290B, -- ⤋
+ category="sm",
+ description="DOWNWARDS TRIPLE ARROW",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="Ddownarrow",
+ unicodeslot=0x290B,
},
[0x290C]={
- ["category"]="sm",
- ["description"]="LEFTWARDS DOUBLE DASH ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x290C, -- ⤌
+ category="sm",
+ description="LEFTWARDS DOUBLE DASH ARROW",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="dashedleftarrow",
+ unicodeslot=0x290C,
},
[0x290D]={
- ["category"]="sm",
- ["description"]="RIGHTWARDS DOUBLE DASH ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x290D, -- ⤍
+ category="sm",
+ description="RIGHTWARDS DOUBLE DASH ARROW",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="dashedrightarrow",
+ unicodeslot=0x290D,
},
[0x290E]={
- ["category"]="sm",
- ["description"]="LEFTWARDS TRIPLE DASH ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x290E, -- ⤎
+ category="sm",
+ description="LEFTWARDS TRIPLE DASH ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x290E,
},
[0x290F]={
- ["category"]="sm",
- ["description"]="RIGHTWARDS TRIPLE DASH ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x290F, -- ⤏
+ category="sm",
+ description="RIGHTWARDS TRIPLE DASH ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x290F,
},
[0x2910]={
- ["category"]="sm",
- ["description"]="RIGHTWARDS TWO-HEADED TRIPLE DASH ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2910, -- ⤐
+ category="sm",
+ description="RIGHTWARDS TWO-HEADED TRIPLE DASH ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2910,
},
[0x2911]={
- ["category"]="sm",
- ["description"]="RIGHTWARDS ARROW WITH DOTTED STEM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2911, -- ⤑
+ category="sm",
+ description="RIGHTWARDS ARROW WITH DOTTED STEM",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="dottedrightarrow",
+ unicodeslot=0x2911,
},
[0x2912]={
- ["category"]="sm",
- ["description"]="UPWARDS ARROW TO BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2912, -- ⤒
+ category="sm",
+ description="UPWARDS ARROW TO BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2912,
},
[0x2913]={
- ["category"]="sm",
- ["description"]="DOWNWARDS ARROW TO BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2913, -- ⤓
+ category="sm",
+ description="DOWNWARDS ARROW TO BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2913,
},
[0x2914]={
- ["category"]="sm",
- ["description"]="RIGHTWARDS ARROW WITH TAIL WITH VERTICAL STROKE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2914, -- ⤔
+ category="sm",
+ description="RIGHTWARDS ARROW WITH TAIL WITH VERTICAL STROKE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2914,
},
[0x2915]={
- ["category"]="sm",
- ["description"]="RIGHTWARDS ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2915, -- ⤕
+ category="sm",
+ description="RIGHTWARDS ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2915,
},
[0x2916]={
- ["category"]="sm",
- ["description"]="RIGHTWARDS TWO-HEADED ARROW WITH TAIL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2916, -- ⤖
+ category="sm",
+ description="RIGHTWARDS TWO-HEADED ARROW WITH TAIL",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="twoheadrightarrowtail",
+ unicodeslot=0x2916,
},
[0x2917]={
- ["category"]="sm",
- ["description"]="RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH VERTICAL STROKE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2917, -- ⤗
+ category="sm",
+ description="RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH VERTICAL STROKE",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ unicodeslot=0x2917,
},
[0x2918]={
- ["category"]="sm",
- ["description"]="RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2918, -- ⤘
+ category="sm",
+ description="RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2918,
},
[0x2919]={
- ["category"]="sm",
- ["description"]="LEFTWARDS ARROW-TAIL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2919, -- ⤙
+ category="sm",
+ description="LEFTWARDS ARROW-TAIL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2919,
},
[0x291A]={
- ["category"]="sm",
- ["description"]="RIGHTWARDS ARROW-TAIL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x291A, -- ⤚
+ category="sm",
+ description="RIGHTWARDS ARROW-TAIL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x291A,
},
[0x291B]={
- ["category"]="sm",
- ["description"]="LEFTWARDS DOUBLE ARROW-TAIL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x291B, -- ⤛
+ category="sm",
+ description="LEFTWARDS DOUBLE ARROW-TAIL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x291B,
},
[0x291C]={
- ["category"]="sm",
- ["description"]="RIGHTWARDS DOUBLE ARROW-TAIL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x291C, -- ⤜
+ category="sm",
+ description="RIGHTWARDS DOUBLE ARROW-TAIL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x291C,
},
[0x291D]={
- ["category"]="sm",
- ["description"]="LEFTWARDS ARROW TO BLACK DIAMOND",
- ["linebreak"]="al",
- ["unicodeslot"]=0x291D, -- ⤝
+ category="sm",
+ description="LEFTWARDS ARROW TO BLACK DIAMOND",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x291D,
},
[0x291E]={
- ["category"]="sm",
- ["description"]="RIGHTWARDS ARROW TO BLACK DIAMOND",
- ["linebreak"]="al",
- ["unicodeslot"]=0x291E, -- ⤞
+ category="sm",
+ description="RIGHTWARDS ARROW TO BLACK DIAMOND",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x291E,
},
[0x291F]={
- ["category"]="sm",
- ["description"]="LEFTWARDS ARROW FROM BAR TO BLACK DIAMOND",
- ["linebreak"]="al",
- ["unicodeslot"]=0x291F, -- ⤟
+ category="sm",
+ description="LEFTWARDS ARROW FROM BAR TO BLACK DIAMOND",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x291F,
},
[0x2920]={
- ["category"]="sm",
- ["description"]="RIGHTWARDS ARROW FROM BAR TO BLACK DIAMOND",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2920, -- ⤠
+ category="sm",
+ description="RIGHTWARDS ARROW FROM BAR TO BLACK DIAMOND",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2920,
},
[0x2921]={
- ["category"]="sm",
- ["description"]="NORTH WEST AND SOUTH EAST ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2921, -- ⤡
+ category="sm",
+ description="NORTH WEST AND SOUTH EAST ARROW",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="nwsearrow",
+ unicodeslot=0x2921,
},
[0x2922]={
- ["category"]="sm",
- ["description"]="NORTH EAST AND SOUTH WEST ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2922, -- ⤢
+ category="sm",
+ description="NORTH EAST AND SOUTH WEST ARROW",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="neswarrow",
+ unicodeslot=0x2922,
},
[0x2923]={
- ["category"]="sm",
- ["description"]="NORTH WEST ARROW WITH HOOK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2923, -- ⤣
+ category="sm",
+ description="NORTH WEST ARROW WITH HOOK",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="lhooknwarrow",
+ unicodeslot=0x2923,
},
[0x2924]={
- ["category"]="sm",
- ["description"]="NORTH EAST ARROW WITH HOOK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2924, -- ⤤
+ category="sm",
+ description="NORTH EAST ARROW WITH HOOK",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="rhooknearrow",
+ unicodeslot=0x2924,
},
[0x2925]={
- ["category"]="sm",
- ["description"]="SOUTH EAST ARROW WITH HOOK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2925, -- ⤥
+ category="sm",
+ description="SOUTH EAST ARROW WITH HOOK",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="lhooksearrow",
+ unicodeslot=0x2925,
},
[0x2926]={
- ["category"]="sm",
- ["description"]="SOUTH WEST ARROW WITH HOOK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2926, -- ⤦
+ category="sm",
+ description="SOUTH WEST ARROW WITH HOOK",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="rhookswarrow",
+ unicodeslot=0x2926,
},
[0x2927]={
- ["category"]="sm",
- ["description"]="NORTH WEST ARROW AND NORTH EAST ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2927, -- ⤧
+ category="sm",
+ description="NORTH WEST ARROW AND NORTH EAST ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2927,
},
[0x2928]={
- ["category"]="sm",
- ["description"]="NORTH EAST ARROW AND SOUTH EAST ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2928, -- ⤨
+ category="sm",
+ description="NORTH EAST ARROW AND SOUTH EAST ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2928,
},
[0x2929]={
- ["category"]="sm",
- ["description"]="SOUTH EAST ARROW AND SOUTH WEST ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2929, -- ⤩
+ category="sm",
+ description="SOUTH EAST ARROW AND SOUTH WEST ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2929,
},
[0x292A]={
- ["category"]="sm",
- ["description"]="SOUTH WEST ARROW AND NORTH WEST ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x292A, -- ⤪
+ category="sm",
+ description="SOUTH WEST ARROW AND NORTH WEST ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x292A,
},
[0x292B]={
- ["category"]="sm",
- ["description"]="RISING DIAGONAL CROSSING FALLING DIAGONAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x292B, -- ⤫
+ category="sm",
+ description="RISING DIAGONAL CROSSING FALLING DIAGONAL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x292B,
},
[0x292C]={
- ["category"]="sm",
- ["description"]="FALLING DIAGONAL CROSSING RISING DIAGONAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x292C, -- ⤬
+ category="sm",
+ description="FALLING DIAGONAL CROSSING RISING DIAGONAL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x292C,
},
[0x292D]={
- ["category"]="sm",
- ["description"]="SOUTH EAST ARROW CROSSING NORTH EAST ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x292D, -- ⤭
+ category="sm",
+ description="SOUTH EAST ARROW CROSSING NORTH EAST ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x292D,
},
[0x292E]={
- ["category"]="sm",
- ["description"]="NORTH EAST ARROW CROSSING SOUTH EAST ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x292E, -- ⤮
+ category="sm",
+ description="NORTH EAST ARROW CROSSING SOUTH EAST ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x292E,
},
[0x292F]={
- ["category"]="sm",
- ["description"]="FALLING DIAGONAL CROSSING NORTH EAST ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x292F, -- ⤯
+ category="sm",
+ description="FALLING DIAGONAL CROSSING NORTH EAST ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x292F,
},
[0x2930]={
- ["category"]="sm",
- ["description"]="RISING DIAGONAL CROSSING SOUTH EAST ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2930, -- ⤰
+ category="sm",
+ description="RISING DIAGONAL CROSSING SOUTH EAST ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2930,
},
[0x2931]={
- ["category"]="sm",
- ["description"]="NORTH EAST ARROW CROSSING NORTH WEST ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2931, -- ⤱
+ category="sm",
+ description="NORTH EAST ARROW CROSSING NORTH WEST ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2931,
},
[0x2932]={
- ["category"]="sm",
- ["description"]="NORTH WEST ARROW CROSSING NORTH EAST ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2932, -- ⤲
+ category="sm",
+ description="NORTH WEST ARROW CROSSING NORTH EAST ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2932,
},
[0x2933]={
- ["category"]="sm",
- ["description"]="WAVE ARROW POINTING DIRECTLY RIGHT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2933, -- ⤳
+ category="sm",
+ description="WAVE ARROW POINTING DIRECTLY RIGHT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2933,
},
[0x2934]={
- ["category"]="sm",
- ["description"]="ARROW POINTING RIGHTWARDS THEN CURVING UPWARDS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2934, -- ⤴
+ category="sm",
+ description="ARROW POINTING RIGHTWARDS THEN CURVING UPWARDS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2934,
},
[0x2935]={
- ["category"]="sm",
- ["description"]="ARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2935, -- ⤵
+ category="sm",
+ description="ARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2935,
},
[0x2936]={
- ["category"]="sm",
- ["description"]="ARROW POINTING DOWNWARDS THEN CURVING LEFTWARDS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2936, -- ⤶
+ category="sm",
+ description="ARROW POINTING DOWNWARDS THEN CURVING LEFTWARDS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2936,
},
[0x2937]={
- ["category"]="sm",
- ["description"]="ARROW POINTING DOWNWARDS THEN CURVING RIGHTWARDS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2937, -- ⤷
+ category="sm",
+ description="ARROW POINTING DOWNWARDS THEN CURVING RIGHTWARDS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2937,
},
[0x2938]={
- ["category"]="sm",
- ["description"]="RIGHT-SIDE ARC CLOCKWISE ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2938, -- ⤸
+ category="sm",
+ description="RIGHT-SIDE ARC CLOCKWISE ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2938,
},
[0x2939]={
- ["category"]="sm",
- ["description"]="LEFT-SIDE ARC ANTICLOCKWISE ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2939, -- ⤹
+ category="sm",
+ description="LEFT-SIDE ARC ANTICLOCKWISE ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2939,
},
[0x293A]={
- ["category"]="sm",
- ["description"]="TOP ARC ANTICLOCKWISE ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x293A, -- ⤺
+ category="sm",
+ description="TOP ARC ANTICLOCKWISE ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x293A,
},
[0x293B]={
- ["category"]="sm",
- ["description"]="BOTTOM ARC ANTICLOCKWISE ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x293B, -- ⤻
+ category="sm",
+ description="BOTTOM ARC ANTICLOCKWISE ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x293B,
},
[0x293C]={
- ["category"]="sm",
- ["description"]="TOP ARC CLOCKWISE ARROW WITH MINUS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x293C, -- ⤼
+ category="sm",
+ description="TOP ARC CLOCKWISE ARROW WITH MINUS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x293C,
},
[0x293D]={
- ["category"]="sm",
- ["description"]="TOP ARC ANTICLOCKWISE ARROW WITH PLUS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x293D, -- ⤽
+ category="sm",
+ description="TOP ARC ANTICLOCKWISE ARROW WITH PLUS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x293D,
},
[0x293E]={
- ["category"]="sm",
- ["description"]="LOWER RIGHT SEMICIRCULAR CLOCKWISE ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x293E, -- ⤾
+ category="sm",
+ description="LOWER RIGHT SEMICIRCULAR CLOCKWISE ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x293E,
},
[0x293F]={
- ["category"]="sm",
- ["description"]="LOWER LEFT SEMICIRCULAR ANTICLOCKWISE ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x293F, -- ⤿
+ category="sm",
+ description="LOWER LEFT SEMICIRCULAR ANTICLOCKWISE ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x293F,
},
[0x2940]={
- ["category"]="sm",
- ["description"]="ANTICLOCKWISE CLOSED CIRCLE ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2940, -- ⥀
+ category="sm",
+ description="ANTICLOCKWISE CLOSED CIRCLE ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2940,
},
[0x2941]={
- ["category"]="sm",
- ["description"]="CLOCKWISE CLOSED CIRCLE ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2941, -- ⥁
+ category="sm",
+ description="CLOCKWISE CLOSED CIRCLE ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2941,
},
[0x2942]={
- ["category"]="sm",
- ["description"]="RIGHTWARDS ARROW ABOVE SHORT LEFTWARDS ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2942, -- ⥂
+ category="sm",
+ description="RIGHTWARDS ARROW ABOVE SHORT LEFTWARDS ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2942,
},
[0x2943]={
- ["category"]="sm",
- ["description"]="LEFTWARDS ARROW ABOVE SHORT RIGHTWARDS ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2943, -- ⥃
+ category="sm",
+ description="LEFTWARDS ARROW ABOVE SHORT RIGHTWARDS ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2943,
},
[0x2944]={
- ["category"]="sm",
- ["description"]="SHORT RIGHTWARDS ARROW ABOVE LEFTWARDS ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2944, -- ⥄
+ category="sm",
+ description="SHORT RIGHTWARDS ARROW ABOVE LEFTWARDS ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2944,
},
[0x2945]={
- ["category"]="sm",
- ["description"]="RIGHTWARDS ARROW WITH PLUS BELOW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2945, -- ⥅
+ category="sm",
+ description="RIGHTWARDS ARROW WITH PLUS BELOW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2945,
},
[0x2946]={
- ["category"]="sm",
- ["description"]="LEFTWARDS ARROW WITH PLUS BELOW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2946, -- ⥆
+ category="sm",
+ description="LEFTWARDS ARROW WITH PLUS BELOW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2946,
},
[0x2947]={
- ["category"]="sm",
- ["description"]="RIGHTWARDS ARROW THROUGH X",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2947, -- ⥇
+ category="sm",
+ description="RIGHTWARDS ARROW THROUGH X",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2947,
},
[0x2948]={
- ["category"]="sm",
- ["description"]="LEFT RIGHT ARROW THROUGH SMALL CIRCLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2948, -- ⥈
+ category="sm",
+ description="LEFT RIGHT ARROW THROUGH SMALL CIRCLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2948,
},
[0x2949]={
- ["category"]="sm",
- ["description"]="UPWARDS TWO-HEADED ARROW FROM SMALL CIRCLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2949, -- ⥉
+ category="sm",
+ description="UPWARDS TWO-HEADED ARROW FROM SMALL CIRCLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2949,
},
[0x294A]={
- ["category"]="sm",
- ["description"]="LEFT BARB UP RIGHT BARB DOWN HARPOON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x294A, -- ⥊
+ category="sm",
+ description="LEFT BARB UP RIGHT BARB DOWN HARPOON",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x294A,
},
[0x294B]={
- ["category"]="sm",
- ["description"]="LEFT BARB DOWN RIGHT BARB UP HARPOON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x294B, -- ⥋
+ category="sm",
+ description="LEFT BARB DOWN RIGHT BARB UP HARPOON",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x294B,
},
[0x294C]={
- ["category"]="sm",
- ["description"]="UP BARB RIGHT DOWN BARB LEFT HARPOON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x294C, -- ⥌
+ category="sm",
+ description="UP BARB RIGHT DOWN BARB LEFT HARPOON",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x294C,
},
[0x294D]={
- ["category"]="sm",
- ["description"]="UP BARB LEFT DOWN BARB RIGHT HARPOON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x294D, -- ⥍
+ category="sm",
+ description="UP BARB LEFT DOWN BARB RIGHT HARPOON",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x294D,
},
[0x294E]={
- ["category"]="sm",
- ["description"]="LEFT BARB UP RIGHT BARB UP HARPOON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x294E, -- ⥎
+ category="sm",
+ description="LEFT BARB UP RIGHT BARB UP HARPOON",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x294E,
},
[0x294F]={
- ["category"]="sm",
- ["description"]="UP BARB RIGHT DOWN BARB RIGHT HARPOON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x294F, -- ⥏
+ category="sm",
+ description="UP BARB RIGHT DOWN BARB RIGHT HARPOON",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x294F,
},
[0x2950]={
- ["category"]="sm",
- ["description"]="LEFT BARB DOWN RIGHT BARB DOWN HARPOON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2950, -- ⥐
+ category="sm",
+ description="LEFT BARB DOWN RIGHT BARB DOWN HARPOON",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2950,
},
[0x2951]={
- ["category"]="sm",
- ["description"]="UP BARB LEFT DOWN BARB LEFT HARPOON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2951, -- ⥑
+ category="sm",
+ description="UP BARB LEFT DOWN BARB LEFT HARPOON",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2951,
},
[0x2952]={
- ["category"]="sm",
- ["description"]="LEFTWARDS HARPOON WITH BARB UP TO BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2952, -- ⥒
+ category="sm",
+ description="LEFTWARDS HARPOON WITH BARB UP TO BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2952,
},
[0x2953]={
- ["category"]="sm",
- ["description"]="RIGHTWARDS HARPOON WITH BARB UP TO BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2953, -- ⥓
+ category="sm",
+ description="RIGHTWARDS HARPOON WITH BARB UP TO BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2953,
},
[0x2954]={
- ["category"]="sm",
- ["description"]="UPWARDS HARPOON WITH BARB RIGHT TO BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2954, -- ⥔
+ category="sm",
+ description="UPWARDS HARPOON WITH BARB RIGHT TO BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2954,
},
[0x2955]={
- ["category"]="sm",
- ["description"]="DOWNWARDS HARPOON WITH BARB RIGHT TO BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2955, -- ⥕
+ category="sm",
+ description="DOWNWARDS HARPOON WITH BARB RIGHT TO BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2955,
},
[0x2956]={
- ["category"]="sm",
- ["description"]="LEFTWARDS HARPOON WITH BARB DOWN TO BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2956, -- ⥖
+ category="sm",
+ description="LEFTWARDS HARPOON WITH BARB DOWN TO BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2956,
},
[0x2957]={
- ["category"]="sm",
- ["description"]="RIGHTWARDS HARPOON WITH BARB DOWN TO BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2957, -- ⥗
+ category="sm",
+ description="RIGHTWARDS HARPOON WITH BARB DOWN TO BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2957,
},
[0x2958]={
- ["category"]="sm",
- ["description"]="UPWARDS HARPOON WITH BARB LEFT TO BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2958, -- ⥘
+ category="sm",
+ description="UPWARDS HARPOON WITH BARB LEFT TO BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2958,
},
[0x2959]={
- ["category"]="sm",
- ["description"]="DOWNWARDS HARPOON WITH BARB LEFT TO BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2959, -- ⥙
+ category="sm",
+ description="DOWNWARDS HARPOON WITH BARB LEFT TO BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2959,
},
[0x295A]={
- ["category"]="sm",
- ["description"]="LEFTWARDS HARPOON WITH BARB UP FROM BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x295A, -- ⥚
+ category="sm",
+ description="LEFTWARDS HARPOON WITH BARB UP FROM BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x295A,
},
[0x295B]={
- ["category"]="sm",
- ["description"]="RIGHTWARDS HARPOON WITH BARB UP FROM BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x295B, -- ⥛
+ category="sm",
+ description="RIGHTWARDS HARPOON WITH BARB UP FROM BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x295B,
},
[0x295C]={
- ["category"]="sm",
- ["description"]="UPWARDS HARPOON WITH BARB RIGHT FROM BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x295C, -- ⥜
+ category="sm",
+ description="UPWARDS HARPOON WITH BARB RIGHT FROM BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x295C,
},
[0x295D]={
- ["category"]="sm",
- ["description"]="DOWNWARDS HARPOON WITH BARB RIGHT FROM BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x295D, -- ⥝
+ category="sm",
+ description="DOWNWARDS HARPOON WITH BARB RIGHT FROM BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x295D,
},
[0x295E]={
- ["category"]="sm",
- ["description"]="LEFTWARDS HARPOON WITH BARB DOWN FROM BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x295E, -- ⥞
+ category="sm",
+ description="LEFTWARDS HARPOON WITH BARB DOWN FROM BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x295E,
},
[0x295F]={
- ["category"]="sm",
- ["description"]="RIGHTWARDS HARPOON WITH BARB DOWN FROM BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x295F, -- ⥟
+ category="sm",
+ description="RIGHTWARDS HARPOON WITH BARB DOWN FROM BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x295F,
},
[0x2960]={
- ["category"]="sm",
- ["description"]="UPWARDS HARPOON WITH BARB LEFT FROM BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2960, -- ⥠
+ category="sm",
+ description="UPWARDS HARPOON WITH BARB LEFT FROM BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2960,
},
[0x2961]={
- ["category"]="sm",
- ["description"]="DOWNWARDS HARPOON WITH BARB LEFT FROM BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2961, -- ⥡
+ category="sm",
+ description="DOWNWARDS HARPOON WITH BARB LEFT FROM BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2961,
},
[0x2962]={
- ["category"]="sm",
- ["description"]="LEFTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB DOWN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2962, -- ⥢
+ category="sm",
+ description="LEFTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB DOWN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2962,
},
[0x2963]={
- ["category"]="sm",
- ["description"]="UPWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2963, -- ⥣
+ category="sm",
+ description="UPWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2963,
},
[0x2964]={
- ["category"]="sm",
- ["description"]="RIGHTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB DOWN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2964, -- ⥤
+ category="sm",
+ description="RIGHTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB DOWN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2964,
},
[0x2965]={
- ["category"]="sm",
- ["description"]="DOWNWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2965, -- ⥥
+ category="sm",
+ description="DOWNWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2965,
},
[0x2966]={
- ["category"]="sm",
- ["description"]="LEFTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB UP",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2966, -- ⥦
+ category="sm",
+ description="LEFTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB UP",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2966,
},
[0x2967]={
- ["category"]="sm",
- ["description"]="LEFTWARDS HARPOON WITH BARB DOWN ABOVE RIGHTWARDS HARPOON WITH BARB DOWN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2967, -- ⥧
+ category="sm",
+ description="LEFTWARDS HARPOON WITH BARB DOWN ABOVE RIGHTWARDS HARPOON WITH BARB DOWN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2967,
},
[0x2968]={
- ["category"]="sm",
- ["description"]="RIGHTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB UP",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2968, -- ⥨
+ category="sm",
+ description="RIGHTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB UP",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2968,
},
[0x2969]={
- ["category"]="sm",
- ["description"]="RIGHTWARDS HARPOON WITH BARB DOWN ABOVE LEFTWARDS HARPOON WITH BARB DOWN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2969, -- ⥩
+ category="sm",
+ description="RIGHTWARDS HARPOON WITH BARB DOWN ABOVE LEFTWARDS HARPOON WITH BARB DOWN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2969,
},
[0x296A]={
- ["category"]="sm",
- ["description"]="LEFTWARDS HARPOON WITH BARB UP ABOVE LONG DASH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x296A, -- ⥪
+ category="sm",
+ description="LEFTWARDS HARPOON WITH BARB UP ABOVE LONG DASH",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x296A,
},
[0x296B]={
- ["category"]="sm",
- ["description"]="LEFTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x296B, -- ⥫
+ category="sm",
+ description="LEFTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x296B,
},
[0x296C]={
- ["category"]="sm",
- ["description"]="RIGHTWARDS HARPOON WITH BARB UP ABOVE LONG DASH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x296C, -- ⥬
+ category="sm",
+ description="RIGHTWARDS HARPOON WITH BARB UP ABOVE LONG DASH",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x296C,
},
[0x296D]={
- ["category"]="sm",
- ["description"]="RIGHTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x296D, -- ⥭
+ category="sm",
+ description="RIGHTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x296D,
},
[0x296E]={
- ["category"]="sm",
- ["description"]="UPWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x296E, -- ⥮
+ category="sm",
+ description="UPWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x296E,
},
[0x296F]={
- ["category"]="sm",
- ["description"]="DOWNWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x296F, -- ⥯
+ category="sm",
+ description="DOWNWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x296F,
},
[0x2970]={
- ["category"]="sm",
- ["description"]="RIGHT DOUBLE ARROW WITH ROUNDED HEAD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2970, -- ⥰
+ category="sm",
+ description="RIGHT DOUBLE ARROW WITH ROUNDED HEAD",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2970,
},
[0x2971]={
- ["category"]="sm",
- ["description"]="EQUALS SIGN ABOVE RIGHTWARDS ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2971, -- ⥱
+ category="sm",
+ description="EQUALS SIGN ABOVE RIGHTWARDS ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2971,
},
[0x2972]={
- ["category"]="sm",
- ["description"]="TILDE OPERATOR ABOVE RIGHTWARDS ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2972, -- ⥲
+ category="sm",
+ description="TILDE OPERATOR ABOVE RIGHTWARDS ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2972,
},
[0x2973]={
- ["category"]="sm",
- ["description"]="LEFTWARDS ARROW ABOVE TILDE OPERATOR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2973, -- ⥳
+ category="sm",
+ description="LEFTWARDS ARROW ABOVE TILDE OPERATOR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2973,
},
[0x2974]={
- ["category"]="sm",
- ["description"]="RIGHTWARDS ARROW ABOVE TILDE OPERATOR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2974, -- ⥴
+ category="sm",
+ description="RIGHTWARDS ARROW ABOVE TILDE OPERATOR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2974,
},
[0x2975]={
- ["category"]="sm",
- ["description"]="RIGHTWARDS ARROW ABOVE ALMOST EQUAL TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2975, -- ⥵
+ category="sm",
+ description="RIGHTWARDS ARROW ABOVE ALMOST EQUAL TO",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2975,
},
[0x2976]={
- ["category"]="sm",
- ["description"]="LESS-THAN ABOVE LEFTWARDS ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2976, -- ⥶
+ category="sm",
+ description="LESS-THAN ABOVE LEFTWARDS ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2976,
},
[0x2977]={
- ["category"]="sm",
- ["description"]="LEFTWARDS ARROW THROUGH LESS-THAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2977, -- ⥷
+ category="sm",
+ description="LEFTWARDS ARROW THROUGH LESS-THAN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2977,
},
[0x2978]={
- ["category"]="sm",
- ["description"]="GREATER-THAN ABOVE RIGHTWARDS ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2978, -- ⥸
+ category="sm",
+ description="GREATER-THAN ABOVE RIGHTWARDS ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2978,
},
[0x2979]={
- ["category"]="sm",
- ["description"]="SUBSET ABOVE RIGHTWARDS ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2979, -- ⥹
+ category="sm",
+ description="SUBSET ABOVE RIGHTWARDS ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2979,
},
[0x297A]={
- ["category"]="sm",
- ["description"]="LEFTWARDS ARROW THROUGH SUBSET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x297A, -- ⥺
+ category="sm",
+ description="LEFTWARDS ARROW THROUGH SUBSET",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x297A,
},
[0x297B]={
- ["category"]="sm",
- ["description"]="SUPERSET ABOVE LEFTWARDS ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x297B, -- ⥻
+ category="sm",
+ description="SUPERSET ABOVE LEFTWARDS ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x297B,
},
[0x297C]={
- ["category"]="sm",
- ["description"]="LEFT FISH TAIL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x297C, -- ⥼
+ category="sm",
+ description="LEFT FISH TAIL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x297C,
},
[0x297D]={
- ["category"]="sm",
- ["description"]="RIGHT FISH TAIL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x297D, -- ⥽
+ category="sm",
+ description="RIGHT FISH TAIL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x297D,
},
[0x297E]={
- ["category"]="sm",
- ["description"]="UP FISH TAIL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x297E, -- ⥾
+ category="sm",
+ description="UP FISH TAIL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x297E,
},
[0x297F]={
- ["category"]="sm",
- ["description"]="DOWN FISH TAIL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x297F, -- ⥿
+ category="sm",
+ description="DOWN FISH TAIL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x297F,
},
[0x2980]={
- ["category"]="sm",
- ["description"]="TRIPLE VERTICAL BAR DELIMITER",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2980, -- ⦀
+ category="sm",
+ description="TRIPLE VERTICAL BAR DELIMITER",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2980,
},
[0x2981]={
- ["category"]="sm",
- ["description"]="Z NOTATION SPOT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2981, -- ⦁
+ category="sm",
+ description="Z NOTATION SPOT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2981,
},
[0x2982]={
- ["category"]="sm",
- ["description"]="Z NOTATION TYPE COLON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2982, -- ⦂
+ category="sm",
+ description="Z NOTATION TYPE COLON",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2982,
},
[0x2983]={
- ["category"]="ps",
- ["description"]="LEFT WHITE CURLY BRACKET",
- ["linebreak"]="op",
- ["unicodeslot"]=0x2983, -- ⦃
+ category="ps",
+ description="LEFT WHITE CURLY BRACKET",
+ direction="on",
+ linebreak="op",
+ mirror=0x2984,
+ unicodeslot=0x2983,
},
[0x2984]={
- ["category"]="pe",
- ["description"]="RIGHT WHITE CURLY BRACKET",
- ["linebreak"]="cl",
- ["unicodeslot"]=0x2984, -- ⦄
+ category="pe",
+ description="RIGHT WHITE CURLY BRACKET",
+ direction="on",
+ linebreak="cl",
+ mirror=0x2983,
+ unicodeslot=0x2984,
},
[0x2985]={
- ["category"]="ps",
- ["cjkwd"]="na",
- ["description"]="LEFT WHITE PARENTHESIS",
- ["linebreak"]="op",
- ["unicodeslot"]=0x2985, -- ⦅
+ category="ps",
+ cjkwd="na",
+ description="LEFT WHITE PARENTHESIS",
+ direction="on",
+ linebreak="op",
+ mirror=0x2986,
+ unicodeslot=0x2985,
},
[0x2986]={
- ["category"]="pe",
- ["cjkwd"]="na",
- ["description"]="RIGHT WHITE PARENTHESIS",
- ["linebreak"]="cl",
- ["unicodeslot"]=0x2986, -- ⦆
+ category="pe",
+ cjkwd="na",
+ description="RIGHT WHITE PARENTHESIS",
+ direction="on",
+ linebreak="cl",
+ mirror=0x2985,
+ unicodeslot=0x2986,
},
[0x2987]={
- ["category"]="ps",
- ["description"]="Z NOTATION LEFT IMAGE BRACKET",
- ["linebreak"]="op",
- ["unicodeslot"]=0x2987, -- ⦇
+ category="ps",
+ description="Z NOTATION LEFT IMAGE BRACKET",
+ direction="on",
+ linebreak="op",
+ mirror=0x2988,
+ unicodeslot=0x2987,
},
[0x2988]={
- ["category"]="pe",
- ["description"]="Z NOTATION RIGHT IMAGE BRACKET",
- ["linebreak"]="cl",
- ["unicodeslot"]=0x2988, -- ⦈
+ category="pe",
+ description="Z NOTATION RIGHT IMAGE BRACKET",
+ direction="on",
+ linebreak="cl",
+ mirror=0x2987,
+ unicodeslot=0x2988,
},
[0x2989]={
- ["category"]="ps",
- ["description"]="Z NOTATION LEFT BINDING BRACKET",
- ["linebreak"]="op",
- ["unicodeslot"]=0x2989, -- ⦉
+ category="ps",
+ description="Z NOTATION LEFT BINDING BRACKET",
+ direction="on",
+ linebreak="op",
+ mirror=0x298A,
+ unicodeslot=0x2989,
},
[0x298A]={
- ["category"]="pe",
- ["description"]="Z NOTATION RIGHT BINDING BRACKET",
- ["linebreak"]="cl",
- ["unicodeslot"]=0x298A, -- ⦊
+ category="pe",
+ description="Z NOTATION RIGHT BINDING BRACKET",
+ direction="on",
+ linebreak="cl",
+ mirror=0x2989,
+ unicodeslot=0x298A,
},
[0x298B]={
- ["category"]="ps",
- ["description"]="LEFT SQUARE BRACKET WITH UNDERBAR",
- ["linebreak"]="op",
- ["unicodeslot"]=0x298B, -- ⦋
+ category="ps",
+ description="LEFT SQUARE BRACKET WITH UNDERBAR",
+ direction="on",
+ linebreak="op",
+ mirror=0x298C,
+ unicodeslot=0x298B,
},
[0x298C]={
- ["category"]="pe",
- ["description"]="RIGHT SQUARE BRACKET WITH UNDERBAR",
- ["linebreak"]="cl",
- ["unicodeslot"]=0x298C, -- ⦌
+ category="pe",
+ description="RIGHT SQUARE BRACKET WITH UNDERBAR",
+ direction="on",
+ linebreak="cl",
+ mirror=0x298B,
+ unicodeslot=0x298C,
},
[0x298D]={
- ["category"]="ps",
- ["description"]="LEFT SQUARE BRACKET WITH TICK IN TOP CORNER",
- ["linebreak"]="op",
- ["unicodeslot"]=0x298D, -- ⦍
+ category="ps",
+ description="LEFT SQUARE BRACKET WITH TICK IN TOP CORNER",
+ direction="on",
+ linebreak="op",
+ mirror=0x2990,
+ unicodeslot=0x298D,
},
[0x298E]={
- ["category"]="pe",
- ["description"]="RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER",
- ["linebreak"]="cl",
- ["unicodeslot"]=0x298E, -- ⦎
+ category="pe",
+ description="RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER",
+ direction="on",
+ linebreak="cl",
+ mirror=0x298F,
+ unicodeslot=0x298E,
},
[0x298F]={
- ["category"]="ps",
- ["description"]="LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER",
- ["linebreak"]="op",
- ["unicodeslot"]=0x298F, -- ⦏
+ category="ps",
+ description="LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER",
+ direction="on",
+ linebreak="op",
+ mirror=0x298E,
+ unicodeslot=0x298F,
},
[0x2990]={
- ["category"]="pe",
- ["description"]="RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER",
- ["linebreak"]="cl",
- ["unicodeslot"]=0x2990, -- ⦐
+ category="pe",
+ description="RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER",
+ direction="on",
+ linebreak="cl",
+ mirror=0x298D,
+ unicodeslot=0x2990,
},
[0x2991]={
- ["category"]="ps",
- ["description"]="LEFT ANGLE BRACKET WITH DOT",
- ["linebreak"]="op",
- ["unicodeslot"]=0x2991, -- ⦑
+ category="ps",
+ description="LEFT ANGLE BRACKET WITH DOT",
+ direction="on",
+ linebreak="op",
+ mirror=0x2992,
+ unicodeslot=0x2991,
},
[0x2992]={
- ["category"]="pe",
- ["description"]="RIGHT ANGLE BRACKET WITH DOT",
- ["linebreak"]="cl",
- ["unicodeslot"]=0x2992, -- ⦒
+ category="pe",
+ description="RIGHT ANGLE BRACKET WITH DOT",
+ direction="on",
+ linebreak="cl",
+ mirror=0x2991,
+ unicodeslot=0x2992,
},
[0x2993]={
- ["category"]="ps",
- ["description"]="LEFT ARC LESS-THAN BRACKET",
- ["linebreak"]="op",
- ["unicodeslot"]=0x2993, -- ⦓
+ category="ps",
+ description="LEFT ARC LESS-THAN BRACKET",
+ direction="on",
+ linebreak="op",
+ mirror=0x2994,
+ unicodeslot=0x2993,
},
[0x2994]={
- ["category"]="pe",
- ["description"]="RIGHT ARC GREATER-THAN BRACKET",
- ["linebreak"]="cl",
- ["unicodeslot"]=0x2994, -- ⦔
+ category="pe",
+ description="RIGHT ARC GREATER-THAN BRACKET",
+ direction="on",
+ linebreak="cl",
+ mirror=0x2993,
+ unicodeslot=0x2994,
},
[0x2995]={
- ["category"]="ps",
- ["description"]="DOUBLE LEFT ARC GREATER-THAN BRACKET",
- ["linebreak"]="op",
- ["unicodeslot"]=0x2995, -- ⦕
+ category="ps",
+ description="DOUBLE LEFT ARC GREATER-THAN BRACKET",
+ direction="on",
+ linebreak="op",
+ mirror=0x2996,
+ unicodeslot=0x2995,
},
[0x2996]={
- ["category"]="pe",
- ["description"]="DOUBLE RIGHT ARC LESS-THAN BRACKET",
- ["linebreak"]="cl",
- ["unicodeslot"]=0x2996, -- ⦖
+ category="pe",
+ description="DOUBLE RIGHT ARC LESS-THAN BRACKET",
+ direction="on",
+ linebreak="cl",
+ mirror=0x2995,
+ unicodeslot=0x2996,
},
[0x2997]={
- ["category"]="ps",
- ["description"]="LEFT BLACK TORTOISE SHELL BRACKET",
- ["linebreak"]="op",
- ["unicodeslot"]=0x2997, -- ⦗
+ category="ps",
+ description="LEFT BLACK TORTOISE SHELL BRACKET",
+ direction="on",
+ linebreak="op",
+ mirror=0x2998,
+ unicodeslot=0x2997,
},
[0x2998]={
- ["category"]="pe",
- ["description"]="RIGHT BLACK TORTOISE SHELL BRACKET",
- ["linebreak"]="cl",
- ["unicodeslot"]=0x2998, -- ⦘
+ category="pe",
+ description="RIGHT BLACK TORTOISE SHELL BRACKET",
+ direction="on",
+ linebreak="cl",
+ mirror=0x2997,
+ unicodeslot=0x2998,
},
[0x2999]={
- ["category"]="sm",
- ["description"]="DOTTED FENCE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2999, -- ⦙
+ category="sm",
+ description="DOTTED FENCE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2999,
},
[0x299A]={
- ["category"]="sm",
- ["description"]="VERTICAL ZIGZAG LINE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x299A, -- ⦚
+ category="sm",
+ description="VERTICAL ZIGZAG LINE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x299A,
},
[0x299B]={
- ["category"]="sm",
- ["description"]="MEASURED ANGLE OPENING LEFT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x299B, -- ⦛
+ category="sm",
+ description="MEASURED ANGLE OPENING LEFT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x299B,
},
[0x299C]={
- ["category"]="sm",
- ["description"]="RIGHT ANGLE VARIANT WITH SQUARE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x299C, -- ⦜
+ category="sm",
+ description="RIGHT ANGLE VARIANT WITH SQUARE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x299C,
},
[0x299D]={
- ["category"]="sm",
- ["description"]="MEASURED RIGHT ANGLE WITH DOT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x299D, -- ⦝
+ category="sm",
+ description="MEASURED RIGHT ANGLE WITH DOT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x299D,
},
[0x299E]={
- ["category"]="sm",
- ["description"]="ANGLE WITH S INSIDE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x299E, -- ⦞
+ category="sm",
+ description="ANGLE WITH S INSIDE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x299E,
},
[0x299F]={
- ["category"]="sm",
- ["description"]="ACUTE ANGLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x299F, -- ⦟
+ category="sm",
+ description="ACUTE ANGLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x299F,
},
[0x29A0]={
- ["category"]="sm",
- ["description"]="SPHERICAL ANGLE OPENING LEFT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29A0, -- ⦠
+ category="sm",
+ description="SPHERICAL ANGLE OPENING LEFT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29A0,
},
[0x29A1]={
- ["category"]="sm",
- ["description"]="SPHERICAL ANGLE OPENING UP",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29A1, -- ⦡
+ category="sm",
+ description="SPHERICAL ANGLE OPENING UP",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29A1,
},
[0x29A2]={
- ["category"]="sm",
- ["description"]="TURNED ANGLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29A2, -- ⦢
+ category="sm",
+ description="TURNED ANGLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29A2,
},
[0x29A3]={
- ["category"]="sm",
- ["description"]="REVERSED ANGLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29A3, -- ⦣
+ category="sm",
+ description="REVERSED ANGLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29A3,
},
[0x29A4]={
- ["category"]="sm",
- ["description"]="ANGLE WITH UNDERBAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29A4, -- ⦤
+ category="sm",
+ description="ANGLE WITH UNDERBAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29A4,
},
[0x29A5]={
- ["category"]="sm",
- ["description"]="REVERSED ANGLE WITH UNDERBAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29A5, -- ⦥
+ category="sm",
+ description="REVERSED ANGLE WITH UNDERBAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29A5,
},
[0x29A6]={
- ["category"]="sm",
- ["description"]="OBLIQUE ANGLE OPENING UP",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29A6, -- ⦦
+ category="sm",
+ description="OBLIQUE ANGLE OPENING UP",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29A6,
},
[0x29A7]={
- ["category"]="sm",
- ["description"]="OBLIQUE ANGLE OPENING DOWN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29A7, -- ⦧
+ category="sm",
+ description="OBLIQUE ANGLE OPENING DOWN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29A7,
},
[0x29A8]={
- ["category"]="sm",
- ["description"]="MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND RIGHT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29A8, -- ⦨
+ category="sm",
+ description="MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND RIGHT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29A8,
},
[0x29A9]={
- ["category"]="sm",
- ["description"]="MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND LEFT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29A9, -- ⦩
+ category="sm",
+ description="MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND LEFT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29A9,
},
[0x29AA]={
- ["category"]="sm",
- ["description"]="MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND RIGHT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29AA, -- ⦪
+ category="sm",
+ description="MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND RIGHT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29AA,
},
[0x29AB]={
- ["category"]="sm",
- ["description"]="MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND LEFT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29AB, -- ⦫
+ category="sm",
+ description="MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND LEFT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29AB,
},
[0x29AC]={
- ["category"]="sm",
- ["description"]="MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND UP",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29AC, -- ⦬
+ category="sm",
+ description="MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND UP",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29AC,
},
[0x29AD]={
- ["category"]="sm",
- ["description"]="MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND UP",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29AD, -- ⦭
+ category="sm",
+ description="MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND UP",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29AD,
},
[0x29AE]={
- ["category"]="sm",
- ["description"]="MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND DOWN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29AE, -- ⦮
+ category="sm",
+ description="MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND DOWN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29AE,
},
[0x29AF]={
- ["category"]="sm",
- ["description"]="MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND DOWN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29AF, -- ⦯
+ category="sm",
+ description="MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND DOWN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29AF,
},
[0x29B0]={
- ["category"]="sm",
- ["description"]="REVERSED EMPTY SET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29B0, -- ⦰
+ category="sm",
+ description="REVERSED EMPTY SET",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29B0,
},
[0x29B1]={
- ["category"]="sm",
- ["description"]="EMPTY SET WITH OVERBAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29B1, -- ⦱
+ category="sm",
+ description="EMPTY SET WITH OVERBAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29B1,
},
[0x29B2]={
- ["category"]="sm",
- ["description"]="EMPTY SET WITH SMALL CIRCLE ABOVE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29B2, -- ⦲
+ category="sm",
+ description="EMPTY SET WITH SMALL CIRCLE ABOVE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29B2,
},
[0x29B3]={
- ["category"]="sm",
- ["description"]="EMPTY SET WITH RIGHT ARROW ABOVE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29B3, -- ⦳
+ category="sm",
+ description="EMPTY SET WITH RIGHT ARROW ABOVE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29B3,
},
[0x29B4]={
- ["category"]="sm",
- ["description"]="EMPTY SET WITH LEFT ARROW ABOVE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29B4, -- ⦴
+ category="sm",
+ description="EMPTY SET WITH LEFT ARROW ABOVE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29B4,
},
[0x29B5]={
- ["category"]="sm",
- ["description"]="CIRCLE WITH HORIZONTAL BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29B5, -- ⦵
+ category="sm",
+ description="CIRCLE WITH HORIZONTAL BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29B5,
},
[0x29B6]={
- ["category"]="sm",
- ["description"]="CIRCLED VERTICAL BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29B6, -- ⦶
+ category="sm",
+ description="CIRCLED VERTICAL BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29B6,
},
[0x29B7]={
- ["category"]="sm",
- ["description"]="CIRCLED PARALLEL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29B7, -- ⦷
+ category="sm",
+ description="CIRCLED PARALLEL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29B7,
},
[0x29B8]={
- ["category"]="sm",
- ["description"]="CIRCLED REVERSE SOLIDUS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29B8, -- ⦸
+ category="sm",
+ description="CIRCLED REVERSE SOLIDUS",
+ direction="on",
+ linebreak="al",
+ mirror=0x2298,
+ unicodeslot=0x29B8,
},
[0x29B9]={
- ["category"]="sm",
- ["description"]="CIRCLED PERPENDICULAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29B9, -- ⦹
+ category="sm",
+ description="CIRCLED PERPENDICULAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29B9,
},
[0x29BA]={
- ["category"]="sm",
- ["description"]="CIRCLE DIVIDED BY HORIZONTAL BAR AND TOP HALF DIVIDED BY VERTICAL BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29BA, -- ⦺
+ category="sm",
+ description="CIRCLE DIVIDED BY HORIZONTAL BAR AND TOP HALF DIVIDED BY VERTICAL BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29BA,
},
[0x29BB]={
- ["category"]="sm",
- ["description"]="CIRCLE WITH SUPERIMPOSED X",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29BB, -- ⦻
+ category="sm",
+ description="CIRCLE WITH SUPERIMPOSED X",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29BB,
},
[0x29BC]={
- ["category"]="sm",
- ["description"]="CIRCLED ANTICLOCKWISE-ROTATED DIVISION SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29BC, -- ⦼
+ category="sm",
+ description="CIRCLED ANTICLOCKWISE-ROTATED DIVISION SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29BC,
},
[0x29BD]={
- ["category"]="sm",
- ["description"]="UP ARROW THROUGH CIRCLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29BD, -- ⦽
+ category="sm",
+ description="UP ARROW THROUGH CIRCLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29BD,
},
[0x29BE]={
- ["category"]="sm",
- ["description"]="CIRCLED WHITE BULLET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29BE, -- ⦾
+ category="sm",
+ description="CIRCLED WHITE BULLET",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29BE,
},
[0x29BF]={
- ["category"]="sm",
- ["description"]="CIRCLED BULLET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29BF, -- ⦿
+ category="sm",
+ description="CIRCLED BULLET",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29BF,
},
[0x29C0]={
- ["category"]="sm",
- ["description"]="CIRCLED LESS-THAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29C0, -- ⧀
+ category="sm",
+ description="CIRCLED LESS-THAN",
+ direction="on",
+ linebreak="al",
+ mirror=0x29C1,
+ unicodeslot=0x29C0,
},
[0x29C1]={
- ["category"]="sm",
- ["description"]="CIRCLED GREATER-THAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29C1, -- ⧁
+ category="sm",
+ description="CIRCLED GREATER-THAN",
+ direction="on",
+ linebreak="al",
+ mirror=0x29C0,
+ unicodeslot=0x29C1,
},
[0x29C2]={
- ["category"]="sm",
- ["description"]="CIRCLE WITH SMALL CIRCLE TO THE RIGHT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29C2, -- ⧂
+ category="sm",
+ description="CIRCLE WITH SMALL CIRCLE TO THE RIGHT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29C2,
},
[0x29C3]={
- ["category"]="sm",
- ["description"]="CIRCLE WITH TWO HORIZONTAL STROKES TO THE RIGHT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29C3, -- ⧃
+ category="sm",
+ description="CIRCLE WITH TWO HORIZONTAL STROKES TO THE RIGHT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29C3,
},
[0x29C4]={
- ["category"]="sm",
- ["description"]="SQUARED RISING DIAGONAL SLASH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29C4, -- ⧄
+ category="sm",
+ description="SQUARED RISING DIAGONAL SLASH",
+ direction="on",
+ linebreak="al",
+ mirror=0x29C5,
+ unicodeslot=0x29C4,
},
[0x29C5]={
- ["category"]="sm",
- ["description"]="SQUARED FALLING DIAGONAL SLASH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29C5, -- ⧅
+ category="sm",
+ description="SQUARED FALLING DIAGONAL SLASH",
+ direction="on",
+ linebreak="al",
+ mirror=0x29C4,
+ unicodeslot=0x29C5,
},
[0x29C6]={
- ["category"]="sm",
- ["description"]="SQUARED ASTERISK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29C6, -- ⧆
+ category="sm",
+ description="SQUARED ASTERISK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29C6,
},
[0x29C7]={
- ["category"]="sm",
- ["description"]="SQUARED SMALL CIRCLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29C7, -- ⧇
+ category="sm",
+ description="SQUARED SMALL CIRCLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29C7,
},
[0x29C8]={
- ["category"]="sm",
- ["description"]="SQUARED SQUARE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29C8, -- ⧈
+ category="sm",
+ description="SQUARED SQUARE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29C8,
},
[0x29C9]={
- ["category"]="sm",
- ["description"]="TWO JOINED SQUARES",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29C9, -- ⧉
+ category="sm",
+ description="TWO JOINED SQUARES",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29C9,
},
[0x29CA]={
- ["category"]="sm",
- ["description"]="TRIANGLE WITH DOT ABOVE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29CA, -- ⧊
+ category="sm",
+ description="TRIANGLE WITH DOT ABOVE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29CA,
},
[0x29CB]={
- ["category"]="sm",
- ["description"]="TRIANGLE WITH UNDERBAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29CB, -- ⧋
+ category="sm",
+ description="TRIANGLE WITH UNDERBAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29CB,
},
[0x29CC]={
- ["category"]="sm",
- ["description"]="S IN TRIANGLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29CC, -- ⧌
+ category="sm",
+ description="S IN TRIANGLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29CC,
},
[0x29CD]={
- ["category"]="sm",
- ["description"]="TRIANGLE WITH SERIFS AT BOTTOM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29CD, -- ⧍
+ category="sm",
+ description="TRIANGLE WITH SERIFS AT BOTTOM",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29CD,
},
[0x29CE]={
- ["category"]="sm",
- ["description"]="RIGHT TRIANGLE ABOVE LEFT TRIANGLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29CE, -- ⧎
+ category="sm",
+ description="RIGHT TRIANGLE ABOVE LEFT TRIANGLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29CE,
},
[0x29CF]={
- ["category"]="sm",
- ["description"]="LEFT TRIANGLE BESIDE VERTICAL BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29CF, -- ⧏
+ category="sm",
+ description="LEFT TRIANGLE BESIDE VERTICAL BAR",
+ direction="on",
+ linebreak="al",
+ mirror=0x29D0,
+ unicodeslot=0x29CF,
},
[0x29D0]={
- ["category"]="sm",
- ["description"]="VERTICAL BAR BESIDE RIGHT TRIANGLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29D0, -- ⧐
+ category="sm",
+ description="VERTICAL BAR BESIDE RIGHT TRIANGLE",
+ direction="on",
+ linebreak="al",
+ mirror=0x29CF,
+ unicodeslot=0x29D0,
},
[0x29D1]={
- ["category"]="sm",
- ["description"]="BOWTIE WITH LEFT HALF BLACK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29D1, -- ⧑
+ category="sm",
+ description="BOWTIE WITH LEFT HALF BLACK",
+ direction="on",
+ linebreak="al",
+ mirror=0x29D2,
+ unicodeslot=0x29D1,
},
[0x29D2]={
- ["category"]="sm",
- ["description"]="BOWTIE WITH RIGHT HALF BLACK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29D2, -- ⧒
+ category="sm",
+ description="BOWTIE WITH RIGHT HALF BLACK",
+ direction="on",
+ linebreak="al",
+ mirror=0x29D1,
+ unicodeslot=0x29D2,
},
[0x29D3]={
- ["category"]="sm",
- ["description"]="BLACK BOWTIE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29D3, -- ⧓
+ category="sm",
+ description="BLACK BOWTIE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29D3,
},
[0x29D4]={
- ["category"]="sm",
- ["description"]="TIMES WITH LEFT HALF BLACK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29D4, -- ⧔
+ category="sm",
+ description="TIMES WITH LEFT HALF BLACK",
+ direction="on",
+ linebreak="al",
+ mirror=0x29D5,
+ unicodeslot=0x29D4,
},
[0x29D5]={
- ["category"]="sm",
- ["description"]="TIMES WITH RIGHT HALF BLACK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29D5, -- ⧕
+ category="sm",
+ description="TIMES WITH RIGHT HALF BLACK",
+ direction="on",
+ linebreak="al",
+ mirror=0x29D4,
+ unicodeslot=0x29D5,
},
[0x29D6]={
- ["category"]="sm",
- ["description"]="WHITE HOURGLASS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29D6, -- ⧖
+ category="sm",
+ description="WHITE HOURGLASS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29D6,
},
[0x29D7]={
- ["category"]="sm",
- ["description"]="BLACK HOURGLASS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29D7, -- ⧗
+ category="sm",
+ description="BLACK HOURGLASS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29D7,
},
[0x29D8]={
- ["category"]="ps",
- ["description"]="LEFT WIGGLY FENCE",
- ["linebreak"]="op",
- ["unicodeslot"]=0x29D8, -- ⧘
+ category="ps",
+ description="LEFT WIGGLY FENCE",
+ direction="on",
+ linebreak="op",
+ mirror=0x29D9,
+ unicodeslot=0x29D8,
},
[0x29D9]={
- ["category"]="pe",
- ["description"]="RIGHT WIGGLY FENCE",
- ["linebreak"]="cl",
- ["unicodeslot"]=0x29D9, -- ⧙
+ category="pe",
+ description="RIGHT WIGGLY FENCE",
+ direction="on",
+ linebreak="cl",
+ mirror=0x29D8,
+ unicodeslot=0x29D9,
},
[0x29DA]={
- ["category"]="ps",
- ["description"]="LEFT DOUBLE WIGGLY FENCE",
- ["linebreak"]="op",
- ["unicodeslot"]=0x29DA, -- ⧚
+ category="ps",
+ description="LEFT DOUBLE WIGGLY FENCE",
+ direction="on",
+ linebreak="op",
+ mirror=0x29DB,
+ unicodeslot=0x29DA,
},
[0x29DB]={
- ["category"]="pe",
- ["description"]="RIGHT DOUBLE WIGGLY FENCE",
- ["linebreak"]="cl",
- ["unicodeslot"]=0x29DB, -- ⧛
+ category="pe",
+ description="RIGHT DOUBLE WIGGLY FENCE",
+ direction="on",
+ linebreak="cl",
+ mirror=0x29DA,
+ unicodeslot=0x29DB,
},
[0x29DC]={
- ["category"]="sm",
- ["description"]="INCOMPLETE INFINITY",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29DC, -- ⧜
+ category="sm",
+ description="INCOMPLETE INFINITY",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29DC,
},
[0x29DD]={
- ["category"]="sm",
- ["description"]="TIE OVER INFINITY",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29DD, -- ⧝
+ category="sm",
+ description="TIE OVER INFINITY",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29DD,
},
[0x29DE]={
- ["category"]="sm",
- ["description"]="INFINITY NEGATED WITH VERTICAL BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29DE, -- ⧞
+ category="sm",
+ description="INFINITY NEGATED WITH VERTICAL BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29DE,
},
[0x29DF]={
- ["category"]="sm",
- ["description"]="DOUBLE-ENDED MULTIMAP",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29DF, -- ⧟
+ category="sm",
+ description="DOUBLE-ENDED MULTIMAP",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29DF,
},
[0x29E0]={
- ["category"]="sm",
- ["description"]="SQUARE WITH CONTOURED OUTLINE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29E0, -- ⧠
+ category="sm",
+ description="SQUARE WITH CONTOURED OUTLINE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29E0,
},
[0x29E1]={
- ["category"]="sm",
- ["description"]="INCREASES AS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29E1, -- ⧡
+ category="sm",
+ description="INCREASES AS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29E1,
},
[0x29E2]={
- ["category"]="sm",
- ["description"]="SHUFFLE PRODUCT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29E2, -- ⧢
+ category="sm",
+ description="SHUFFLE PRODUCT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29E2,
},
[0x29E3]={
- ["category"]="sm",
- ["description"]="EQUALS SIGN AND SLANTED PARALLEL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29E3, -- ⧣
+ category="sm",
+ description="EQUALS SIGN AND SLANTED PARALLEL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29E3,
},
[0x29E4]={
- ["category"]="sm",
- ["description"]="EQUALS SIGN AND SLANTED PARALLEL WITH TILDE ABOVE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29E4, -- ⧤
+ category="sm",
+ description="EQUALS SIGN AND SLANTED PARALLEL WITH TILDE ABOVE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29E4,
},
[0x29E5]={
- ["category"]="sm",
- ["description"]="IDENTICAL TO AND SLANTED PARALLEL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29E5, -- ⧥
+ category="sm",
+ description="IDENTICAL TO AND SLANTED PARALLEL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29E5,
},
[0x29E6]={
- ["category"]="sm",
- ["description"]="GLEICH STARK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29E6, -- ⧦
+ category="sm",
+ description="GLEICH STARK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29E6,
},
[0x29E7]={
- ["category"]="sm",
- ["description"]="THERMODYNAMIC",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29E7, -- ⧧
+ category="sm",
+ description="THERMODYNAMIC",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29E7,
},
[0x29E8]={
- ["category"]="sm",
- ["description"]="DOWN-POINTING TRIANGLE WITH LEFT HALF BLACK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29E8, -- ⧨
+ category="sm",
+ description="DOWN-POINTING TRIANGLE WITH LEFT HALF BLACK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29E8,
},
[0x29E9]={
- ["category"]="sm",
- ["description"]="DOWN-POINTING TRIANGLE WITH RIGHT HALF BLACK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29E9, -- ⧩
+ category="sm",
+ description="DOWN-POINTING TRIANGLE WITH RIGHT HALF BLACK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29E9,
},
[0x29EA]={
- ["category"]="sm",
- ["description"]="BLACK DIAMOND WITH DOWN ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29EA, -- ⧪
+ category="sm",
+ description="BLACK DIAMOND WITH DOWN ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29EA,
},
[0x29EB]={
- ["category"]="sm",
- ["description"]="BLACK LOZENGE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29EB, -- ⧫
+ category="sm",
+ description="BLACK LOZENGE",
+ direction="on",
+ linebreak="al",
+ mathclass="ord",
+ mathname="blacklozenge",
+ unicodeslot=0x29EB,
},
[0x29EC]={
- ["category"]="sm",
- ["description"]="WHITE CIRCLE WITH DOWN ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29EC, -- ⧬
+ category="sm",
+ description="WHITE CIRCLE WITH DOWN ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29EC,
},
[0x29ED]={
- ["category"]="sm",
- ["description"]="BLACK CIRCLE WITH DOWN ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29ED, -- ⧭
+ category="sm",
+ description="BLACK CIRCLE WITH DOWN ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29ED,
},
[0x29EE]={
- ["category"]="sm",
- ["description"]="ERROR-BARRED WHITE SQUARE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29EE, -- ⧮
+ category="sm",
+ description="ERROR-BARRED WHITE SQUARE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29EE,
},
[0x29EF]={
- ["category"]="sm",
- ["description"]="ERROR-BARRED BLACK SQUARE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29EF, -- ⧯
+ category="sm",
+ description="ERROR-BARRED BLACK SQUARE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29EF,
},
[0x29F0]={
- ["category"]="sm",
- ["description"]="ERROR-BARRED WHITE DIAMOND",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29F0, -- ⧰
+ category="sm",
+ description="ERROR-BARRED WHITE DIAMOND",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29F0,
},
[0x29F1]={
- ["category"]="sm",
- ["description"]="ERROR-BARRED BLACK DIAMOND",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29F1, -- ⧱
+ category="sm",
+ description="ERROR-BARRED BLACK DIAMOND",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29F1,
},
[0x29F2]={
- ["category"]="sm",
- ["description"]="ERROR-BARRED WHITE CIRCLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29F2, -- ⧲
+ category="sm",
+ description="ERROR-BARRED WHITE CIRCLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29F2,
},
[0x29F3]={
- ["category"]="sm",
- ["description"]="ERROR-BARRED BLACK CIRCLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29F3, -- ⧳
+ category="sm",
+ description="ERROR-BARRED BLACK CIRCLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29F3,
},
[0x29F4]={
- ["category"]="sm",
- ["description"]="RULE-DELAYED",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29F4, -- ⧴
+ category="sm",
+ description="RULE-DELAYED",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29F4,
},
[0x29F5]={
- ["category"]="sm",
- ["description"]="REVERSE SOLIDUS OPERATOR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29F5, -- ⧵
+ category="sm",
+ description="REVERSE SOLIDUS OPERATOR",
+ direction="on",
+ linebreak="al",
+ mirror=0x2215,
+ unicodeslot=0x29F5,
},
[0x29F6]={
- ["category"]="sm",
- ["description"]="SOLIDUS WITH OVERBAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29F6, -- ⧶
+ category="sm",
+ description="SOLIDUS WITH OVERBAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29F6,
},
[0x29F7]={
- ["category"]="sm",
- ["description"]="REVERSE SOLIDUS WITH HORIZONTAL STROKE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29F7, -- ⧷
+ category="sm",
+ description="REVERSE SOLIDUS WITH HORIZONTAL STROKE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29F7,
},
[0x29F8]={
- ["category"]="sm",
- ["description"]="BIG SOLIDUS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29F8, -- ⧸
+ category="sm",
+ description="BIG SOLIDUS",
+ direction="on",
+ linebreak="al",
+ mirror=0x29F9,
+ unicodeslot=0x29F8,
},
[0x29F9]={
- ["category"]="sm",
- ["description"]="BIG REVERSE SOLIDUS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29F9, -- ⧹
+ category="sm",
+ description="BIG REVERSE SOLIDUS",
+ direction="on",
+ linebreak="al",
+ mirror=0x29F8,
+ unicodeslot=0x29F9,
},
[0x29FA]={
- ["category"]="sm",
- ["description"]="DOUBLE PLUS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29FA, -- ⧺
+ category="sm",
+ description="DOUBLE PLUS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29FA,
},
[0x29FB]={
- ["category"]="sm",
- ["description"]="TRIPLE PLUS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29FB, -- ⧻
+ category="sm",
+ description="TRIPLE PLUS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29FB,
},
[0x29FC]={
- ["category"]="ps",
- ["description"]="LEFT-POINTING CURVED ANGLE BRACKET",
- ["linebreak"]="op",
- ["unicodeslot"]=0x29FC, -- ⧼
+ category="ps",
+ description="LEFT-POINTING CURVED ANGLE BRACKET",
+ direction="on",
+ linebreak="op",
+ mirror=0x29FD,
+ unicodeslot=0x29FC,
},
[0x29FD]={
- ["category"]="pe",
- ["description"]="RIGHT-POINTING CURVED ANGLE BRACKET",
- ["linebreak"]="cl",
- ["unicodeslot"]=0x29FD, -- ⧽
+ category="pe",
+ description="RIGHT-POINTING CURVED ANGLE BRACKET",
+ direction="on",
+ linebreak="cl",
+ mirror=0x29FC,
+ unicodeslot=0x29FD,
},
[0x29FE]={
- ["category"]="sm",
- ["description"]="TINY",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29FE, -- ⧾
+ category="sm",
+ description="TINY",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29FE,
},
[0x29FF]={
- ["category"]="sm",
- ["description"]="MINY",
- ["linebreak"]="al",
- ["unicodeslot"]=0x29FF, -- ⧿
+ category="sm",
+ description="MINY",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x29FF,
},
[0x2A00]={
- ["category"]="sm",
- ["description"]="N-ARY CIRCLED DOT OPERATOR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A00, -- ⨀
+ category="sm",
+ description="N-ARY CIRCLED DOT OPERATOR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A00,
},
[0x2A01]={
- ["category"]="sm",
- ["description"]="N-ARY CIRCLED PLUS OPERATOR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A01, -- ⨁
+ category="sm",
+ description="N-ARY CIRCLED PLUS OPERATOR",
+ direction="on",
+ linebreak="al",
+ mathclass="limop",
+ mathname="bigoplus",
+ unicodeslot=0x2A01,
},
[0x2A02]={
- ["category"]="sm",
- ["description"]="N-ARY CIRCLED TIMES OPERATOR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A02, -- ⨂
+ category="sm",
+ description="N-ARY CIRCLED TIMES OPERATOR",
+ direction="on",
+ linebreak="al",
+ mathclass="limop",
+ mathname="bigotimes",
+ unicodeslot=0x2A02,
},
[0x2A03]={
- ["category"]="sm",
- ["description"]="N-ARY UNION OPERATOR WITH DOT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A03, -- ⨃
+ category="sm",
+ description="N-ARY UNION OPERATOR WITH DOT",
+ direction="on",
+ linebreak="al",
+ mathclass="limop",
+ mathname="bigodot",
+ unicodeslot=0x2A03,
},
[0x2A04]={
- ["category"]="sm",
- ["description"]="N-ARY UNION OPERATOR WITH PLUS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A04, -- ⨄
+ category="sm",
+ description="N-ARY UNION OPERATOR WITH PLUS",
+ direction="on",
+ linebreak="al",
+ mathclass="limop",
+ mathname="biguplus",
+ unicodeslot=0x2A04,
},
[0x2A05]={
- ["category"]="sm",
- ["description"]="N-ARY SQUARE INTERSECTION OPERATOR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A05, -- ⨅
+ category="sm",
+ description="N-ARY SQUARE INTERSECTION OPERATOR",
+ direction="on",
+ linebreak="al",
+ mathclass="limop",
+ mathname="bigsqcap",
+ unicodeslot=0x2A05,
},
[0x2A06]={
- ["category"]="sm",
- ["description"]="N-ARY SQUARE UNION OPERATOR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A06, -- ⨆
+ category="sm",
+ description="N-ARY SQUARE UNION OPERATOR",
+ direction="on",
+ linebreak="al",
+ mathclass="limop",
+ mathname="bigsqcup",
+ unicodeslot=0x2A06,
},
[0x2A07]={
- ["category"]="sm",
- ["description"]="TWO LOGICAL AND OPERATOR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A07, -- ⨇
+ category="sm",
+ description="TWO LOGICAL AND OPERATOR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A07,
},
[0x2A08]={
- ["category"]="sm",
- ["description"]="TWO LOGICAL OR OPERATOR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A08, -- ⨈
+ category="sm",
+ description="TWO LOGICAL OR OPERATOR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A08,
},
[0x2A09]={
- ["category"]="sm",
- ["description"]="N-ARY TIMES OPERATOR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A09, -- ⨉
+ category="sm",
+ description="N-ARY TIMES OPERATOR",
+ direction="on",
+ linebreak="al",
+ mathclass="limop",
+ mathname="bigtimes",
+ unicodeslot=0x2A09,
},
[0x2A0A]={
- ["category"]="sm",
- ["description"]="MODULO TWO SUM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A0A, -- ⨊
+ category="sm",
+ description="MODULO TWO SUM",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A0A,
},
[0x2A0B]={
- ["category"]="sm",
- ["description"]="SUMMATION WITH INTEGRAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A0B, -- ⨋
+ category="sm",
+ description="SUMMATION WITH INTEGRAL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A0B,
},
[0x2A0C]={
- ["category"]="sm",
- ["description"]="QUADRUPLE INTEGRAL OPERATOR",
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x222B, 0x222B, 0x222B, 0x222B },
- ["unicodeslot"]=0x2A0C, -- ⨌
+ category="sm",
+ description="QUADRUPLE INTEGRAL OPERATOR",
+ direction="on",
+ linebreak="al",
+ specials={ "compat", 0x222B, 0x222B, 0x222B, 0x222B },
+ unicodeslot=0x2A0C,
},
[0x2A0D]={
- ["category"]="sm",
- ["description"]="FINITE PART INTEGRAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A0D, -- ⨍
+ category="sm",
+ description="FINITE PART INTEGRAL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A0D,
},
[0x2A0E]={
- ["category"]="sm",
- ["description"]="INTEGRAL WITH DOUBLE STROKE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A0E, -- ⨎
+ category="sm",
+ description="INTEGRAL WITH DOUBLE STROKE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A0E,
},
[0x2A0F]={
- ["category"]="sm",
- ["description"]="INTEGRAL AVERAGE WITH SLASH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A0F, -- ⨏
+ category="sm",
+ description="INTEGRAL AVERAGE WITH SLASH",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A0F,
},
[0x2A10]={
- ["category"]="sm",
- ["description"]="CIRCULATION FUNCTION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A10, -- ⨐
+ category="sm",
+ description="CIRCULATION FUNCTION",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A10,
},
[0x2A11]={
- ["category"]="sm",
- ["description"]="ANTICLOCKWISE INTEGRATION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A11, -- ⨑
+ category="sm",
+ description="ANTICLOCKWISE INTEGRATION",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A11,
},
[0x2A12]={
- ["category"]="sm",
- ["description"]="LINE INTEGRATION WITH RECTANGULAR PATH AROUND POLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A12, -- ⨒
+ category="sm",
+ description="LINE INTEGRATION WITH RECTANGULAR PATH AROUND POLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A12,
},
[0x2A13]={
- ["category"]="sm",
- ["description"]="LINE INTEGRATION WITH SEMICIRCULAR PATH AROUND POLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A13, -- ⨓
+ category="sm",
+ description="LINE INTEGRATION WITH SEMICIRCULAR PATH AROUND POLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A13,
},
[0x2A14]={
- ["category"]="sm",
- ["description"]="LINE INTEGRATION NOT INCLUDING THE POLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A14, -- ⨔
+ category="sm",
+ description="LINE INTEGRATION NOT INCLUDING THE POLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A14,
},
[0x2A15]={
- ["category"]="sm",
- ["description"]="INTEGRAL AROUND A POINT OPERATOR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A15, -- ⨕
+ category="sm",
+ description="INTEGRAL AROUND A POINT OPERATOR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A15,
},
[0x2A16]={
- ["category"]="sm",
- ["description"]="QUATERNION INTEGRAL OPERATOR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A16, -- ⨖
+ category="sm",
+ description="QUATERNION INTEGRAL OPERATOR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A16,
},
[0x2A17]={
- ["category"]="sm",
- ["description"]="INTEGRAL WITH LEFTWARDS ARROW WITH HOOK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A17, -- ⨗
+ category="sm",
+ description="INTEGRAL WITH LEFTWARDS ARROW WITH HOOK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A17,
},
[0x2A18]={
- ["category"]="sm",
- ["description"]="INTEGRAL WITH TIMES SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A18, -- ⨘
+ category="sm",
+ description="INTEGRAL WITH TIMES SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A18,
},
[0x2A19]={
- ["category"]="sm",
- ["description"]="INTEGRAL WITH INTERSECTION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A19, -- ⨙
+ category="sm",
+ description="INTEGRAL WITH INTERSECTION",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A19,
},
[0x2A1A]={
- ["category"]="sm",
- ["description"]="INTEGRAL WITH UNION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A1A, -- ⨚
+ category="sm",
+ description="INTEGRAL WITH UNION",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A1A,
},
[0x2A1B]={
- ["category"]="sm",
- ["description"]="INTEGRAL WITH OVERBAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A1B, -- ⨛
+ category="sm",
+ description="INTEGRAL WITH OVERBAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A1B,
},
[0x2A1C]={
- ["category"]="sm",
- ["description"]="INTEGRAL WITH UNDERBAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A1C, -- ⨜
+ category="sm",
+ description="INTEGRAL WITH UNDERBAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A1C,
},
[0x2A1D]={
- ["category"]="sm",
- ["description"]="JOIN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A1D, -- ⨝
+ category="sm",
+ description="JOIN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A1D,
},
[0x2A1E]={
- ["category"]="sm",
- ["description"]="LARGE LEFT TRIANGLE OPERATOR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A1E, -- ⨞
+ category="sm",
+ description="LARGE LEFT TRIANGLE OPERATOR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A1E,
},
[0x2A1F]={
- ["category"]="sm",
- ["description"]="Z NOTATION SCHEMA COMPOSITION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A1F, -- ⨟
+ category="sm",
+ description="Z NOTATION SCHEMA COMPOSITION",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A1F,
},
[0x2A20]={
- ["category"]="sm",
- ["description"]="Z NOTATION SCHEMA PIPING",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A20, -- ⨠
+ category="sm",
+ description="Z NOTATION SCHEMA PIPING",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A20,
},
[0x2A21]={
- ["category"]="sm",
- ["description"]="Z NOTATION SCHEMA PROJECTION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A21, -- ⨡
+ category="sm",
+ description="Z NOTATION SCHEMA PROJECTION",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A21,
},
[0x2A22]={
- ["category"]="sm",
- ["description"]="PLUS SIGN WITH SMALL CIRCLE ABOVE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A22, -- ⨢
+ category="sm",
+ description="PLUS SIGN WITH SMALL CIRCLE ABOVE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A22,
},
[0x2A23]={
- ["category"]="sm",
- ["description"]="PLUS SIGN WITH CIRCUMFLEX ACCENT ABOVE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A23, -- ⨣
+ category="sm",
+ description="PLUS SIGN WITH CIRCUMFLEX ACCENT ABOVE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A23,
},
[0x2A24]={
- ["category"]="sm",
- ["description"]="PLUS SIGN WITH TILDE ABOVE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A24, -- ⨤
+ category="sm",
+ description="PLUS SIGN WITH TILDE ABOVE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A24,
},
[0x2A25]={
- ["category"]="sm",
- ["description"]="PLUS SIGN WITH DOT BELOW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A25, -- ⨥
+ category="sm",
+ description="PLUS SIGN WITH DOT BELOW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A25,
},
[0x2A26]={
- ["category"]="sm",
- ["description"]="PLUS SIGN WITH TILDE BELOW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A26, -- ⨦
+ category="sm",
+ description="PLUS SIGN WITH TILDE BELOW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A26,
},
[0x2A27]={
- ["category"]="sm",
- ["description"]="PLUS SIGN WITH SUBSCRIPT TWO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A27, -- ⨧
+ category="sm",
+ description="PLUS SIGN WITH SUBSCRIPT TWO",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A27,
},
[0x2A28]={
- ["category"]="sm",
- ["description"]="PLUS SIGN WITH BLACK TRIANGLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A28, -- ⨨
+ category="sm",
+ description="PLUS SIGN WITH BLACK TRIANGLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A28,
},
[0x2A29]={
- ["category"]="sm",
- ["description"]="MINUS SIGN WITH COMMA ABOVE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A29, -- ⨩
+ category="sm",
+ description="MINUS SIGN WITH COMMA ABOVE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A29,
},
[0x2A2A]={
- ["category"]="sm",
- ["description"]="MINUS SIGN WITH DOT BELOW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A2A, -- ⨪
+ category="sm",
+ description="MINUS SIGN WITH DOT BELOW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A2A,
},
[0x2A2B]={
- ["category"]="sm",
- ["description"]="MINUS SIGN WITH FALLING DOTS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A2B, -- ⨫
+ category="sm",
+ description="MINUS SIGN WITH FALLING DOTS",
+ direction="on",
+ linebreak="al",
+ mirror=0x2A2C,
+ unicodeslot=0x2A2B,
},
[0x2A2C]={
- ["category"]="sm",
- ["description"]="MINUS SIGN WITH RISING DOTS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A2C, -- ⨬
+ category="sm",
+ description="MINUS SIGN WITH RISING DOTS",
+ direction="on",
+ linebreak="al",
+ mirror=0x2A2B,
+ unicodeslot=0x2A2C,
},
[0x2A2D]={
- ["category"]="sm",
- ["description"]="PLUS SIGN IN LEFT HALF CIRCLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A2D, -- ⨭
+ category="sm",
+ description="PLUS SIGN IN LEFT HALF CIRCLE",
+ direction="on",
+ linebreak="al",
+ mirror=0x2A2E,
+ unicodeslot=0x2A2D,
},
[0x2A2E]={
- ["category"]="sm",
- ["description"]="PLUS SIGN IN RIGHT HALF CIRCLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A2E, -- ⨮
+ category="sm",
+ description="PLUS SIGN IN RIGHT HALF CIRCLE",
+ direction="on",
+ linebreak="al",
+ mirror=0x2A2D,
+ unicodeslot=0x2A2E,
},
[0x2A2F]={
- ["category"]="sm",
- ["description"]="VECTOR OR CROSS PRODUCT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A2F, -- ⨯
+ category="sm",
+ description="VECTOR OR CROSS PRODUCT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A2F,
},
[0x2A30]={
- ["category"]="sm",
- ["description"]="MULTIPLICATION SIGN WITH DOT ABOVE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A30, -- ⨰
+ category="sm",
+ description="MULTIPLICATION SIGN WITH DOT ABOVE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A30,
},
[0x2A31]={
- ["category"]="sm",
- ["description"]="MULTIPLICATION SIGN WITH UNDERBAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A31, -- ⨱
+ category="sm",
+ description="MULTIPLICATION SIGN WITH UNDERBAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A31,
},
[0x2A32]={
- ["category"]="sm",
- ["description"]="SEMIDIRECT PRODUCT WITH BOTTOM CLOSED",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A32, -- ⨲
+ category="sm",
+ description="SEMIDIRECT PRODUCT WITH BOTTOM CLOSED",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A32,
},
[0x2A33]={
- ["category"]="sm",
- ["description"]="SMASH PRODUCT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A33, -- ⨳
+ category="sm",
+ description="SMASH PRODUCT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A33,
},
[0x2A34]={
- ["category"]="sm",
- ["description"]="MULTIPLICATION SIGN IN LEFT HALF CIRCLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A34, -- ⨴
+ category="sm",
+ description="MULTIPLICATION SIGN IN LEFT HALF CIRCLE",
+ direction="on",
+ linebreak="al",
+ mirror=0x2A35,
+ unicodeslot=0x2A34,
},
[0x2A35]={
- ["category"]="sm",
- ["description"]="MULTIPLICATION SIGN IN RIGHT HALF CIRCLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A35, -- ⨵
+ category="sm",
+ description="MULTIPLICATION SIGN IN RIGHT HALF CIRCLE",
+ direction="on",
+ linebreak="al",
+ mirror=0x2A34,
+ unicodeslot=0x2A35,
},
[0x2A36]={
- ["category"]="sm",
- ["description"]="CIRCLED MULTIPLICATION SIGN WITH CIRCUMFLEX ACCENT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A36, -- ⨶
+ category="sm",
+ description="CIRCLED MULTIPLICATION SIGN WITH CIRCUMFLEX ACCENT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A36,
},
[0x2A37]={
- ["category"]="sm",
- ["description"]="MULTIPLICATION SIGN IN DOUBLE CIRCLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A37, -- ⨷
+ category="sm",
+ description="MULTIPLICATION SIGN IN DOUBLE CIRCLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A37,
},
[0x2A38]={
- ["category"]="sm",
- ["description"]="CIRCLED DIVISION SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A38, -- ⨸
+ category="sm",
+ description="CIRCLED DIVISION SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A38,
},
[0x2A39]={
- ["category"]="sm",
- ["description"]="PLUS SIGN IN TRIANGLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A39, -- ⨹
+ category="sm",
+ description="PLUS SIGN IN TRIANGLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A39,
},
[0x2A3A]={
- ["category"]="sm",
- ["description"]="MINUS SIGN IN TRIANGLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A3A, -- ⨺
+ category="sm",
+ description="MINUS SIGN IN TRIANGLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A3A,
},
[0x2A3B]={
- ["category"]="sm",
- ["description"]="MULTIPLICATION SIGN IN TRIANGLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A3B, -- ⨻
+ category="sm",
+ description="MULTIPLICATION SIGN IN TRIANGLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A3B,
},
[0x2A3C]={
- ["category"]="sm",
- ["description"]="INTERIOR PRODUCT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A3C, -- ⨼
+ category="sm",
+ description="INTERIOR PRODUCT",
+ direction="on",
+ linebreak="al",
+ mirror=0x2A3D,
+ unicodeslot=0x2A3C,
},
[0x2A3D]={
- ["category"]="sm",
- ["description"]="RIGHTHAND INTERIOR PRODUCT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A3D, -- ⨽
+ category="sm",
+ description="RIGHTHAND INTERIOR PRODUCT",
+ direction="on",
+ linebreak="al",
+ mirror=0x2A3C,
+ unicodeslot=0x2A3D,
},
[0x2A3E]={
- ["category"]="sm",
- ["description"]="Z NOTATION RELATIONAL COMPOSITION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A3E, -- ⨾
+ category="sm",
+ description="Z NOTATION RELATIONAL COMPOSITION",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A3E,
},
[0x2A3F]={
- ["category"]="sm",
- ["description"]="AMALGAMATION OR COPRODUCT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A3F, -- ⨿
+ category="sm",
+ description="AMALGAMATION OR COPRODUCT",
+ direction="on",
+ linebreak="al",
+ mathclass="binary",
+ mathname="amalg",
+ unicodeslot=0x2A3F,
},
[0x2A40]={
- ["category"]="sm",
- ["description"]="INTERSECTION WITH DOT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A40, -- ⩀
+ category="sm",
+ description="INTERSECTION WITH DOT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A40,
},
[0x2A41]={
- ["category"]="sm",
- ["description"]="UNION WITH MINUS SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A41, -- ⩁
+ category="sm",
+ description="UNION WITH MINUS SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A41,
},
[0x2A42]={
- ["category"]="sm",
- ["description"]="UNION WITH OVERBAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A42, -- ⩂
+ category="sm",
+ description="UNION WITH OVERBAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A42,
},
[0x2A43]={
- ["category"]="sm",
- ["description"]="INTERSECTION WITH OVERBAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A43, -- ⩃
+ category="sm",
+ description="INTERSECTION WITH OVERBAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A43,
},
[0x2A44]={
- ["category"]="sm",
- ["description"]="INTERSECTION WITH LOGICAL AND",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A44, -- ⩄
+ category="sm",
+ description="INTERSECTION WITH LOGICAL AND",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A44,
},
[0x2A45]={
- ["category"]="sm",
- ["description"]="UNION WITH LOGICAL OR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A45, -- ⩅
+ category="sm",
+ description="UNION WITH LOGICAL OR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A45,
},
[0x2A46]={
- ["category"]="sm",
- ["description"]="UNION ABOVE INTERSECTION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A46, -- ⩆
+ category="sm",
+ description="UNION ABOVE INTERSECTION",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A46,
},
[0x2A47]={
- ["category"]="sm",
- ["description"]="INTERSECTION ABOVE UNION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A47, -- ⩇
+ category="sm",
+ description="INTERSECTION ABOVE UNION",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A47,
},
[0x2A48]={
- ["category"]="sm",
- ["description"]="UNION ABOVE BAR ABOVE INTERSECTION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A48, -- ⩈
+ category="sm",
+ description="UNION ABOVE BAR ABOVE INTERSECTION",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A48,
},
[0x2A49]={
- ["category"]="sm",
- ["description"]="INTERSECTION ABOVE BAR ABOVE UNION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A49, -- ⩉
+ category="sm",
+ description="INTERSECTION ABOVE BAR ABOVE UNION",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A49,
},
[0x2A4A]={
- ["category"]="sm",
- ["description"]="UNION BESIDE AND JOINED WITH UNION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A4A, -- ⩊
+ category="sm",
+ description="UNION BESIDE AND JOINED WITH UNION",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A4A,
},
[0x2A4B]={
- ["category"]="sm",
- ["description"]="INTERSECTION BESIDE AND JOINED WITH INTERSECTION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A4B, -- ⩋
+ category="sm",
+ description="INTERSECTION BESIDE AND JOINED WITH INTERSECTION",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A4B,
},
[0x2A4C]={
- ["category"]="sm",
- ["description"]="CLOSED UNION WITH SERIFS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A4C, -- ⩌
+ category="sm",
+ description="CLOSED UNION WITH SERIFS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A4C,
},
[0x2A4D]={
- ["category"]="sm",
- ["description"]="CLOSED INTERSECTION WITH SERIFS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A4D, -- ⩍
+ category="sm",
+ description="CLOSED INTERSECTION WITH SERIFS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A4D,
},
[0x2A4E]={
- ["category"]="sm",
- ["description"]="DOUBLE SQUARE INTERSECTION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A4E, -- ⩎
+ category="sm",
+ description="DOUBLE SQUARE INTERSECTION",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A4E,
},
[0x2A4F]={
- ["category"]="sm",
- ["description"]="DOUBLE SQUARE UNION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A4F, -- ⩏
+ category="sm",
+ description="DOUBLE SQUARE UNION",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A4F,
},
[0x2A50]={
- ["category"]="sm",
- ["description"]="CLOSED UNION WITH SERIFS AND SMASH PRODUCT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A50, -- ⩐
+ category="sm",
+ description="CLOSED UNION WITH SERIFS AND SMASH PRODUCT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A50,
},
[0x2A51]={
- ["category"]="sm",
- ["description"]="LOGICAL AND WITH DOT ABOVE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A51, -- ⩑
+ category="sm",
+ description="LOGICAL AND WITH DOT ABOVE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A51,
},
[0x2A52]={
- ["category"]="sm",
- ["description"]="LOGICAL OR WITH DOT ABOVE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A52, -- ⩒
+ category="sm",
+ description="LOGICAL OR WITH DOT ABOVE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A52,
},
[0x2A53]={
- ["category"]="sm",
- ["description"]="DOUBLE LOGICAL AND",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A53, -- ⩓
+ category="sm",
+ description="DOUBLE LOGICAL AND",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A53,
},
[0x2A54]={
- ["category"]="sm",
- ["description"]="DOUBLE LOGICAL OR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A54, -- ⩔
+ category="sm",
+ description="DOUBLE LOGICAL OR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A54,
},
[0x2A55]={
- ["category"]="sm",
- ["description"]="TWO INTERSECTING LOGICAL AND",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A55, -- ⩕
+ category="sm",
+ description="TWO INTERSECTING LOGICAL AND",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A55,
},
[0x2A56]={
- ["category"]="sm",
- ["description"]="TWO INTERSECTING LOGICAL OR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A56, -- ⩖
+ category="sm",
+ description="TWO INTERSECTING LOGICAL OR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A56,
},
[0x2A57]={
- ["category"]="sm",
- ["description"]="SLOPING LARGE OR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A57, -- ⩗
+ category="sm",
+ description="SLOPING LARGE OR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A57,
},
[0x2A58]={
- ["category"]="sm",
- ["description"]="SLOPING LARGE AND",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A58, -- ⩘
+ category="sm",
+ description="SLOPING LARGE AND",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A58,
},
[0x2A59]={
- ["category"]="sm",
- ["description"]="LOGICAL OR OVERLAPPING LOGICAL AND",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A59, -- ⩙
+ category="sm",
+ description="LOGICAL OR OVERLAPPING LOGICAL AND",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A59,
},
[0x2A5A]={
- ["category"]="sm",
- ["description"]="LOGICAL AND WITH MIDDLE STEM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A5A, -- ⩚
+ category="sm",
+ description="LOGICAL AND WITH MIDDLE STEM",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A5A,
},
[0x2A5B]={
- ["category"]="sm",
- ["description"]="LOGICAL OR WITH MIDDLE STEM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A5B, -- ⩛
+ category="sm",
+ description="LOGICAL OR WITH MIDDLE STEM",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A5B,
},
[0x2A5C]={
- ["category"]="sm",
- ["description"]="LOGICAL AND WITH HORIZONTAL DASH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A5C, -- ⩜
+ category="sm",
+ description="LOGICAL AND WITH HORIZONTAL DASH",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A5C,
},
[0x2A5D]={
- ["category"]="sm",
- ["description"]="LOGICAL OR WITH HORIZONTAL DASH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A5D, -- ⩝
+ category="sm",
+ description="LOGICAL OR WITH HORIZONTAL DASH",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A5D,
},
[0x2A5E]={
- ["category"]="sm",
- ["description"]="LOGICAL AND WITH DOUBLE OVERBAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A5E, -- ⩞
+ category="sm",
+ description="LOGICAL AND WITH DOUBLE OVERBAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A5E,
},
[0x2A5F]={
- ["category"]="sm",
- ["description"]="LOGICAL AND WITH UNDERBAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A5F, -- ⩟
+ category="sm",
+ description="LOGICAL AND WITH UNDERBAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A5F,
},
[0x2A60]={
- ["category"]="sm",
- ["description"]="LOGICAL AND WITH DOUBLE UNDERBAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A60, -- ⩠
+ category="sm",
+ description="LOGICAL AND WITH DOUBLE UNDERBAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A60,
},
[0x2A61]={
- ["category"]="sm",
- ["description"]="SMALL VEE WITH UNDERBAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A61, -- ⩡
+ category="sm",
+ description="SMALL VEE WITH UNDERBAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A61,
},
[0x2A62]={
- ["category"]="sm",
- ["description"]="LOGICAL OR WITH DOUBLE OVERBAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A62, -- ⩢
+ category="sm",
+ description="LOGICAL OR WITH DOUBLE OVERBAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A62,
},
[0x2A63]={
- ["category"]="sm",
- ["description"]="LOGICAL OR WITH DOUBLE UNDERBAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A63, -- ⩣
+ category="sm",
+ description="LOGICAL OR WITH DOUBLE UNDERBAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A63,
},
[0x2A64]={
- ["category"]="sm",
- ["description"]="Z NOTATION DOMAIN ANTIRESTRICTION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A64, -- ⩤
+ category="sm",
+ description="Z NOTATION DOMAIN ANTIRESTRICTION",
+ direction="on",
+ linebreak="al",
+ mirror=0x2A65,
+ unicodeslot=0x2A64,
},
[0x2A65]={
- ["category"]="sm",
- ["description"]="Z NOTATION RANGE ANTIRESTRICTION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A65, -- ⩥
+ category="sm",
+ description="Z NOTATION RANGE ANTIRESTRICTION",
+ direction="on",
+ linebreak="al",
+ mirror=0x2A64,
+ unicodeslot=0x2A65,
},
[0x2A66]={
- ["category"]="sm",
- ["description"]="EQUALS SIGN WITH DOT BELOW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A66, -- ⩦
+ category="sm",
+ description="EQUALS SIGN WITH DOT BELOW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A66,
},
[0x2A67]={
- ["category"]="sm",
- ["description"]="IDENTICAL WITH DOT ABOVE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A67, -- ⩧
+ category="sm",
+ description="IDENTICAL WITH DOT ABOVE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A67,
},
[0x2A68]={
- ["category"]="sm",
- ["description"]="TRIPLE HORIZONTAL BAR WITH DOUBLE VERTICAL STROKE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A68, -- ⩨
+ category="sm",
+ description="TRIPLE HORIZONTAL BAR WITH DOUBLE VERTICAL STROKE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A68,
},
[0x2A69]={
- ["category"]="sm",
- ["description"]="TRIPLE HORIZONTAL BAR WITH TRIPLE VERTICAL STROKE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A69, -- ⩩
+ category="sm",
+ description="TRIPLE HORIZONTAL BAR WITH TRIPLE VERTICAL STROKE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A69,
},
[0x2A6A]={
- ["category"]="sm",
- ["description"]="TILDE OPERATOR WITH DOT ABOVE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A6A, -- ⩪
+ category="sm",
+ description="TILDE OPERATOR WITH DOT ABOVE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A6A,
},
[0x2A6B]={
- ["category"]="sm",
- ["description"]="TILDE OPERATOR WITH RISING DOTS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A6B, -- ⩫
+ category="sm",
+ description="TILDE OPERATOR WITH RISING DOTS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A6B,
},
[0x2A6C]={
- ["category"]="sm",
- ["description"]="SIMILAR MINUS SIMILAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A6C, -- ⩬
+ category="sm",
+ description="SIMILAR MINUS SIMILAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A6C,
},
[0x2A6D]={
- ["category"]="sm",
- ["description"]="CONGRUENT WITH DOT ABOVE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A6D, -- ⩭
+ category="sm",
+ description="CONGRUENT WITH DOT ABOVE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A6D,
},
[0x2A6E]={
- ["category"]="sm",
- ["description"]="EQUALS WITH ASTERISK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A6E, -- ⩮
+ category="sm",
+ description="EQUALS WITH ASTERISK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A6E,
},
[0x2A6F]={
- ["category"]="sm",
- ["description"]="ALMOST EQUAL TO WITH CIRCUMFLEX ACCENT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A6F, -- ⩯
+ category="sm",
+ description="ALMOST EQUAL TO WITH CIRCUMFLEX ACCENT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A6F,
},
[0x2A70]={
- ["category"]="sm",
- ["description"]="APPROXIMATELY EQUAL OR EQUAL TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A70, -- ⩰
+ category="sm",
+ description="APPROXIMATELY EQUAL OR EQUAL TO",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A70,
},
[0x2A71]={
- ["category"]="sm",
- ["description"]="EQUALS SIGN ABOVE PLUS SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A71, -- ⩱
+ category="sm",
+ description="EQUALS SIGN ABOVE PLUS SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A71,
},
[0x2A72]={
- ["category"]="sm",
- ["description"]="PLUS SIGN ABOVE EQUALS SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A72, -- ⩲
+ category="sm",
+ description="PLUS SIGN ABOVE EQUALS SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A72,
},
[0x2A73]={
- ["category"]="sm",
- ["description"]="EQUALS SIGN ABOVE TILDE OPERATOR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A73, -- ⩳
+ category="sm",
+ description="EQUALS SIGN ABOVE TILDE OPERATOR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A73,
},
[0x2A74]={
- ["category"]="sm",
- ["description"]="DOUBLE COLON EQUAL",
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x003A, 0x003A, 0x003D },
- ["unicodeslot"]=0x2A74, -- ⩴
+ category="sm",
+ description="DOUBLE COLON EQUAL",
+ direction="on",
+ linebreak="al",
+ specials={ "compat", 0x003A, 0x003A, 0x003D },
+ unicodeslot=0x2A74,
},
[0x2A75]={
- ["category"]="sm",
- ["description"]="TWO CONSECUTIVE EQUALS SIGNS",
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x003D, 0x003D },
- ["unicodeslot"]=0x2A75, -- ⩵
+ category="sm",
+ description="TWO CONSECUTIVE EQUALS SIGNS",
+ direction="on",
+ linebreak="al",
+ specials={ "compat", 0x003D, 0x003D },
+ unicodeslot=0x2A75,
},
[0x2A76]={
- ["category"]="sm",
- ["description"]="THREE CONSECUTIVE EQUALS SIGNS",
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x003D, 0x003D, 0x003D },
- ["unicodeslot"]=0x2A76, -- ⩶
+ category="sm",
+ description="THREE CONSECUTIVE EQUALS SIGNS",
+ direction="on",
+ linebreak="al",
+ specials={ "compat", 0x003D, 0x003D, 0x003D },
+ unicodeslot=0x2A76,
},
[0x2A77]={
- ["category"]="sm",
- ["description"]="EQUALS SIGN WITH TWO DOTS ABOVE AND TWO DOTS BELOW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A77, -- ⩷
+ category="sm",
+ description="EQUALS SIGN WITH TWO DOTS ABOVE AND TWO DOTS BELOW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A77,
},
[0x2A78]={
- ["category"]="sm",
- ["description"]="EQUIVALENT WITH FOUR DOTS ABOVE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A78, -- ⩸
+ category="sm",
+ description="EQUIVALENT WITH FOUR DOTS ABOVE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A78,
},
[0x2A79]={
- ["category"]="sm",
- ["description"]="LESS-THAN WITH CIRCLE INSIDE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A79, -- ⩹
+ category="sm",
+ description="LESS-THAN WITH CIRCLE INSIDE",
+ direction="on",
+ linebreak="al",
+ mirror=0x2A7A,
+ unicodeslot=0x2A79,
},
[0x2A7A]={
- ["category"]="sm",
- ["description"]="GREATER-THAN WITH CIRCLE INSIDE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A7A, -- ⩺
+ category="sm",
+ description="GREATER-THAN WITH CIRCLE INSIDE",
+ direction="on",
+ linebreak="al",
+ mirror=0x2A79,
+ unicodeslot=0x2A7A,
},
[0x2A7B]={
- ["category"]="sm",
- ["description"]="LESS-THAN WITH QUESTION MARK ABOVE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A7B, -- ⩻
+ category="sm",
+ description="LESS-THAN WITH QUESTION MARK ABOVE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A7B,
},
[0x2A7C]={
- ["category"]="sm",
- ["description"]="GREATER-THAN WITH QUESTION MARK ABOVE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A7C, -- ⩼
+ category="sm",
+ description="GREATER-THAN WITH QUESTION MARK ABOVE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A7C,
},
[0x2A7D]={
- ["category"]="sm",
- ["description"]="LESS-THAN OR SLANTED EQUAL TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A7D, -- ⩽
+ category="sm",
+ description="LESS-THAN OR SLANTED EQUAL TO",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="leqslant",
+ mirror=0x2A7E,
+ unicodeslot=0x2A7D,
},
[0x2A7E]={
- ["category"]="sm",
- ["description"]="GREATER-THAN OR SLANTED EQUAL TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A7E, -- ⩾
+ category="sm",
+ description="GREATER-THAN OR SLANTED EQUAL TO",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="geqslant",
+ mirror=0x2A7D,
+ unicodeslot=0x2A7E,
},
[0x2A7F]={
- ["category"]="sm",
- ["description"]="LESS-THAN OR SLANTED EQUAL TO WITH DOT INSIDE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A7F, -- ⩿
+ category="sm",
+ description="LESS-THAN OR SLANTED EQUAL TO WITH DOT INSIDE",
+ direction="on",
+ linebreak="al",
+ mirror=0x2A80,
+ unicodeslot=0x2A7F,
},
[0x2A80]={
- ["category"]="sm",
- ["description"]="GREATER-THAN OR SLANTED EQUAL TO WITH DOT INSIDE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A80, -- ⪀
+ category="sm",
+ description="GREATER-THAN OR SLANTED EQUAL TO WITH DOT INSIDE",
+ direction="on",
+ linebreak="al",
+ mirror=0x2A7F,
+ unicodeslot=0x2A80,
},
[0x2A81]={
- ["category"]="sm",
- ["description"]="LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A81, -- ⪁
+ category="sm",
+ description="LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE",
+ direction="on",
+ linebreak="al",
+ mirror=0x2A82,
+ unicodeslot=0x2A81,
},
[0x2A82]={
- ["category"]="sm",
- ["description"]="GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A82, -- ⪂
+ category="sm",
+ description="GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE",
+ direction="on",
+ linebreak="al",
+ mirror=0x2A81,
+ unicodeslot=0x2A82,
},
[0x2A83]={
- ["category"]="sm",
- ["description"]="LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE RIGHT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A83, -- ⪃
+ category="sm",
+ description="LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE RIGHT",
+ direction="on",
+ linebreak="al",
+ mirror=0x2A84,
+ unicodeslot=0x2A83,
},
[0x2A84]={
- ["category"]="sm",
- ["description"]="GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE LEFT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A84, -- ⪄
+ category="sm",
+ description="GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE LEFT",
+ direction="on",
+ linebreak="al",
+ mirror=0x2A83,
+ unicodeslot=0x2A84,
},
[0x2A85]={
- ["category"]="sm",
- ["description"]="LESS-THAN OR APPROXIMATE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A85, -- ⪅
+ category="sm",
+ description="LESS-THAN OR APPROXIMATE",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="lessapprox",
+ unicodeslot=0x2A85,
},
[0x2A86]={
- ["category"]="sm",
- ["description"]="GREATER-THAN OR APPROXIMATE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A86, -- ⪆
+ category="sm",
+ description="GREATER-THAN OR APPROXIMATE",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="gtrapprox",
+ unicodeslot=0x2A86,
},
[0x2A87]={
- ["category"]="sm",
- ["description"]="LESS-THAN AND SINGLE-LINE NOT EQUAL TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A87, -- ⪇
+ category="sm",
+ description="LESS-THAN AND SINGLE-LINE NOT EQUAL TO",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="lneq",
+ unicodeslot=0x2A87,
},
[0x2A88]={
- ["category"]="sm",
- ["description"]="GREATER-THAN AND SINGLE-LINE NOT EQUAL TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A88, -- ⪈
+ category="sm",
+ description="GREATER-THAN AND SINGLE-LINE NOT EQUAL TO",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="rneq",
+ unicodeslot=0x2A88,
},
[0x2A89]={
- ["category"]="sm",
- ["description"]="LESS-THAN AND NOT APPROXIMATE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A89, -- ⪉
+ category="sm",
+ description="LESS-THAN AND NOT APPROXIMATE",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="lnapprox",
+ unicodeslot=0x2A89,
},
[0x2A8A]={
- ["category"]="sm",
- ["description"]="GREATER-THAN AND NOT APPROXIMATE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A8A, -- ⪊
+ category="sm",
+ description="GREATER-THAN AND NOT APPROXIMATE",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="gnapprox",
+ unicodeslot=0x2A8A,
},
[0x2A8B]={
- ["category"]="sm",
- ["description"]="LESS-THAN ABOVE DOUBLE-LINE EQUAL ABOVE GREATER-THAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A8B, -- ⪋
+ category="sm",
+ description="LESS-THAN ABOVE DOUBLE-LINE EQUAL ABOVE GREATER-THAN",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="lesseqqgtr",
+ mirror=0x2A8C,
+ unicodeslot=0x2A8B,
},
[0x2A8C]={
- ["category"]="sm",
- ["description"]="GREATER-THAN ABOVE DOUBLE-LINE EQUAL ABOVE LESS-THAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A8C, -- ⪌
+ category="sm",
+ description="GREATER-THAN ABOVE DOUBLE-LINE EQUAL ABOVE LESS-THAN",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="gtreqqless",
+ mirror=0x2A8B,
+ unicodeslot=0x2A8C,
},
[0x2A8D]={
- ["category"]="sm",
- ["description"]="LESS-THAN ABOVE SIMILAR OR EQUAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A8D, -- ⪍
+ category="sm",
+ description="LESS-THAN ABOVE SIMILAR OR EQUAL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A8D,
},
[0x2A8E]={
- ["category"]="sm",
- ["description"]="GREATER-THAN ABOVE SIMILAR OR EQUAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A8E, -- ⪎
+ category="sm",
+ description="GREATER-THAN ABOVE SIMILAR OR EQUAL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A8E,
},
[0x2A8F]={
- ["category"]="sm",
- ["description"]="LESS-THAN ABOVE SIMILAR ABOVE GREATER-THAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A8F, -- ⪏
+ category="sm",
+ description="LESS-THAN ABOVE SIMILAR ABOVE GREATER-THAN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A8F,
},
[0x2A90]={
- ["category"]="sm",
- ["description"]="GREATER-THAN ABOVE SIMILAR ABOVE LESS-THAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A90, -- ⪐
+ category="sm",
+ description="GREATER-THAN ABOVE SIMILAR ABOVE LESS-THAN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A90,
},
[0x2A91]={
- ["category"]="sm",
- ["description"]="LESS-THAN ABOVE GREATER-THAN ABOVE DOUBLE-LINE EQUAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A91, -- ⪑
+ category="sm",
+ description="LESS-THAN ABOVE GREATER-THAN ABOVE DOUBLE-LINE EQUAL",
+ direction="on",
+ linebreak="al",
+ mirror=0x2A92,
+ unicodeslot=0x2A91,
},
[0x2A92]={
- ["category"]="sm",
- ["description"]="GREATER-THAN ABOVE LESS-THAN ABOVE DOUBLE-LINE EQUAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A92, -- ⪒
+ category="sm",
+ description="GREATER-THAN ABOVE LESS-THAN ABOVE DOUBLE-LINE EQUAL",
+ direction="on",
+ linebreak="al",
+ mirror=0x2A91,
+ unicodeslot=0x2A92,
},
[0x2A93]={
- ["category"]="sm",
- ["description"]="LESS-THAN ABOVE SLANTED EQUAL ABOVE GREATER-THAN ABOVE SLANTED EQUAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A93, -- ⪓
+ category="sm",
+ description="LESS-THAN ABOVE SLANTED EQUAL ABOVE GREATER-THAN ABOVE SLANTED EQUAL",
+ direction="on",
+ linebreak="al",
+ mirror=0x2A94,
+ unicodeslot=0x2A93,
},
[0x2A94]={
- ["category"]="sm",
- ["description"]="GREATER-THAN ABOVE SLANTED EQUAL ABOVE LESS-THAN ABOVE SLANTED EQUAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A94, -- ⪔
+ category="sm",
+ description="GREATER-THAN ABOVE SLANTED EQUAL ABOVE LESS-THAN ABOVE SLANTED EQUAL",
+ direction="on",
+ linebreak="al",
+ mirror=0x2A93,
+ unicodeslot=0x2A94,
},
[0x2A95]={
- ["category"]="sm",
- ["description"]="SLANTED EQUAL TO OR LESS-THAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A95, -- ⪕
+ category="sm",
+ description="SLANTED EQUAL TO OR LESS-THAN",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="eqslantless",
+ mirror=0x2A96,
+ unicodeslot=0x2A95,
},
[0x2A96]={
- ["category"]="sm",
- ["description"]="SLANTED EQUAL TO OR GREATER-THAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A96, -- ⪖
+ category="sm",
+ description="SLANTED EQUAL TO OR GREATER-THAN",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="eqslantgtr",
+ mirror=0x2A95,
+ unicodeslot=0x2A96,
},
[0x2A97]={
- ["category"]="sm",
- ["description"]="SLANTED EQUAL TO OR LESS-THAN WITH DOT INSIDE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A97, -- ⪗
+ category="sm",
+ description="SLANTED EQUAL TO OR LESS-THAN WITH DOT INSIDE",
+ direction="on",
+ linebreak="al",
+ mirror=0x2A98,
+ unicodeslot=0x2A97,
},
[0x2A98]={
- ["category"]="sm",
- ["description"]="SLANTED EQUAL TO OR GREATER-THAN WITH DOT INSIDE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A98, -- ⪘
+ category="sm",
+ description="SLANTED EQUAL TO OR GREATER-THAN WITH DOT INSIDE",
+ direction="on",
+ linebreak="al",
+ mirror=0x2A97,
+ unicodeslot=0x2A98,
},
[0x2A99]={
- ["category"]="sm",
- ["description"]="DOUBLE-LINE EQUAL TO OR LESS-THAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A99, -- ⪙
+ category="sm",
+ description="DOUBLE-LINE EQUAL TO OR LESS-THAN",
+ direction="on",
+ linebreak="al",
+ mirror=0x2A9A,
+ unicodeslot=0x2A99,
},
[0x2A9A]={
- ["category"]="sm",
- ["description"]="DOUBLE-LINE EQUAL TO OR GREATER-THAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A9A, -- ⪚
+ category="sm",
+ description="DOUBLE-LINE EQUAL TO OR GREATER-THAN",
+ direction="on",
+ linebreak="al",
+ mirror=0x2A99,
+ unicodeslot=0x2A9A,
},
[0x2A9B]={
- ["category"]="sm",
- ["description"]="DOUBLE-LINE SLANTED EQUAL TO OR LESS-THAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A9B, -- ⪛
+ category="sm",
+ description="DOUBLE-LINE SLANTED EQUAL TO OR LESS-THAN",
+ direction="on",
+ linebreak="al",
+ mirror=0x2A9C,
+ unicodeslot=0x2A9B,
},
[0x2A9C]={
- ["category"]="sm",
- ["description"]="DOUBLE-LINE SLANTED EQUAL TO OR GREATER-THAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A9C, -- ⪜
+ category="sm",
+ description="DOUBLE-LINE SLANTED EQUAL TO OR GREATER-THAN",
+ direction="on",
+ linebreak="al",
+ mirror=0x2A9B,
+ unicodeslot=0x2A9C,
},
[0x2A9D]={
- ["category"]="sm",
- ["description"]="SIMILAR OR LESS-THAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A9D, -- ⪝
+ category="sm",
+ description="SIMILAR OR LESS-THAN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A9D,
},
[0x2A9E]={
- ["category"]="sm",
- ["description"]="SIMILAR OR GREATER-THAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A9E, -- ⪞
+ category="sm",
+ description="SIMILAR OR GREATER-THAN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A9E,
},
[0x2A9F]={
- ["category"]="sm",
- ["description"]="SIMILAR ABOVE LESS-THAN ABOVE EQUALS SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2A9F, -- ⪟
+ category="sm",
+ description="SIMILAR ABOVE LESS-THAN ABOVE EQUALS SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2A9F,
},
[0x2AA0]={
- ["category"]="sm",
- ["description"]="SIMILAR ABOVE GREATER-THAN ABOVE EQUALS SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AA0, -- ⪠
+ category="sm",
+ description="SIMILAR ABOVE GREATER-THAN ABOVE EQUALS SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2AA0,
},
[0x2AA1]={
- ["category"]="sm",
- ["description"]="DOUBLE NESTED LESS-THAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AA1, -- ⪡
+ category="sm",
+ description="DOUBLE NESTED LESS-THAN",
+ direction="on",
+ linebreak="al",
+ mirror=0x2AA2,
+ unicodeslot=0x2AA1,
},
[0x2AA2]={
- ["category"]="sm",
- ["description"]="DOUBLE NESTED GREATER-THAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AA2, -- ⪢
+ category="sm",
+ description="DOUBLE NESTED GREATER-THAN",
+ direction="on",
+ linebreak="al",
+ mirror=0x2AA1,
+ unicodeslot=0x2AA2,
},
[0x2AA3]={
- ["category"]="sm",
- ["description"]="DOUBLE NESTED LESS-THAN WITH UNDERBAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AA3, -- ⪣
+ category="sm",
+ description="DOUBLE NESTED LESS-THAN WITH UNDERBAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2AA3,
},
[0x2AA4]={
- ["category"]="sm",
- ["description"]="GREATER-THAN OVERLAPPING LESS-THAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AA4, -- ⪤
+ category="sm",
+ description="GREATER-THAN OVERLAPPING LESS-THAN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2AA4,
},
[0x2AA5]={
- ["category"]="sm",
- ["description"]="GREATER-THAN BESIDE LESS-THAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AA5, -- ⪥
+ category="sm",
+ description="GREATER-THAN BESIDE LESS-THAN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2AA5,
},
[0x2AA6]={
- ["category"]="sm",
- ["description"]="LESS-THAN CLOSED BY CURVE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AA6, -- ⪦
+ category="sm",
+ description="LESS-THAN CLOSED BY CURVE",
+ direction="on",
+ linebreak="al",
+ mirror=0x2AA7,
+ unicodeslot=0x2AA6,
},
[0x2AA7]={
- ["category"]="sm",
- ["description"]="GREATER-THAN CLOSED BY CURVE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AA7, -- ⪧
+ category="sm",
+ description="GREATER-THAN CLOSED BY CURVE",
+ direction="on",
+ linebreak="al",
+ mirror=0x2AA6,
+ unicodeslot=0x2AA7,
},
[0x2AA8]={
- ["category"]="sm",
- ["description"]="LESS-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AA8, -- ⪨
+ category="sm",
+ description="LESS-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL",
+ direction="on",
+ linebreak="al",
+ mirror=0x2AA9,
+ unicodeslot=0x2AA8,
},
[0x2AA9]={
- ["category"]="sm",
- ["description"]="GREATER-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AA9, -- ⪩
+ category="sm",
+ description="GREATER-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL",
+ direction="on",
+ linebreak="al",
+ mirror=0x2AA8,
+ unicodeslot=0x2AA9,
},
[0x2AAA]={
- ["category"]="sm",
- ["description"]="SMALLER THAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AAA, -- ⪪
+ category="sm",
+ description="SMALLER THAN",
+ direction="on",
+ linebreak="al",
+ mirror=0x2AAB,
+ unicodeslot=0x2AAA,
},
[0x2AAB]={
- ["category"]="sm",
- ["description"]="LARGER THAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AAB, -- ⪫
+ category="sm",
+ description="LARGER THAN",
+ direction="on",
+ linebreak="al",
+ mirror=0x2AAA,
+ unicodeslot=0x2AAB,
},
[0x2AAC]={
- ["category"]="sm",
- ["description"]="SMALLER THAN OR EQUAL TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AAC, -- ⪬
+ category="sm",
+ description="SMALLER THAN OR EQUAL TO",
+ direction="on",
+ linebreak="al",
+ mirror=0x2AAD,
+ unicodeslot=0x2AAC,
},
[0x2AAD]={
- ["category"]="sm",
- ["description"]="LARGER THAN OR EQUAL TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AAD, -- ⪭
+ category="sm",
+ description="LARGER THAN OR EQUAL TO",
+ direction="on",
+ linebreak="al",
+ mirror=0x2AAC,
+ unicodeslot=0x2AAD,
},
[0x2AAE]={
- ["category"]="sm",
- ["description"]="EQUALS SIGN WITH BUMPY ABOVE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AAE, -- ⪮
+ category="sm",
+ description="EQUALS SIGN WITH BUMPY ABOVE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2AAE,
},
[0x2AAF]={
- ["category"]="sm",
- ["description"]="PRECEDES ABOVE SINGLE-LINE EQUALS SIGN",
- ["mathclass"]="relation",
- ["mathname"]="preceq",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AAF, -- ⪯
+ category="sm",
+ description="PRECEDES ABOVE SINGLE-LINE EQUALS SIGN",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="preceq",
+ mirror=0x2AB0,
+ unicodeslot=0x2AAF,
},
[0x2AB0]={
- ["category"]="sm",
- ["description"]="SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN",
- ["mathclass"]="relation",
- ["mathname"]="succeq",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AB0, -- ⪰
+ category="sm",
+ description="SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="succeq",
+ mirror=0x2AAF,
+ unicodeslot=0x2AB0,
},
[0x2AB1]={
- ["category"]="sm",
- ["description"]="PRECEDES ABOVE SINGLE-LINE NOT EQUAL TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AB1, -- ⪱
+ category="sm",
+ description="PRECEDES ABOVE SINGLE-LINE NOT EQUAL TO",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="precneq",
+ unicodeslot=0x2AB1,
},
[0x2AB2]={
- ["category"]="sm",
- ["description"]="SUCCEEDS ABOVE SINGLE-LINE NOT EQUAL TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AB2, -- ⪲
+ category="sm",
+ description="SUCCEEDS ABOVE SINGLE-LINE NOT EQUAL TO",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="succneq",
+ unicodeslot=0x2AB2,
},
[0x2AB3]={
- ["category"]="sm",
- ["description"]="PRECEDES ABOVE EQUALS SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AB3, -- ⪳
+ category="sm",
+ description="PRECEDES ABOVE EQUALS SIGN",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="preceqq",
+ mirror=0x2AB4,
+ unicodeslot=0x2AB3,
},
[0x2AB4]={
- ["category"]="sm",
- ["description"]="SUCCEEDS ABOVE EQUALS SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AB4, -- ⪴
+ category="sm",
+ description="SUCCEEDS ABOVE EQUALS SIGN",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="succeqq",
+ mirror=0x2AB3,
+ unicodeslot=0x2AB4,
},
[0x2AB5]={
- ["category"]="sm",
- ["description"]="PRECEDES ABOVE NOT EQUAL TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AB5, -- ⪵
+ category="sm",
+ description="PRECEDES ABOVE NOT EQUAL TO",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="precneqq",
+ unicodeslot=0x2AB5,
},
[0x2AB6]={
- ["category"]="sm",
- ["description"]="SUCCEEDS ABOVE NOT EQUAL TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AB6, -- ⪶
+ category="sm",
+ description="SUCCEEDS ABOVE NOT EQUAL TO",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="succneqq",
+ unicodeslot=0x2AB6,
},
[0x2AB7]={
- ["category"]="sm",
- ["description"]="PRECEDES ABOVE ALMOST EQUAL TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AB7, -- ⪷
+ category="sm",
+ description="PRECEDES ABOVE ALMOST EQUAL TO",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="precapprox",
+ unicodeslot=0x2AB7,
},
[0x2AB8]={
- ["category"]="sm",
- ["description"]="SUCCEEDS ABOVE ALMOST EQUAL TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AB8, -- ⪸
+ category="sm",
+ description="SUCCEEDS ABOVE ALMOST EQUAL TO",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="succapprox",
+ unicodeslot=0x2AB8,
},
[0x2AB9]={
- ["category"]="sm",
- ["description"]="PRECEDES ABOVE NOT ALMOST EQUAL TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AB9, -- ⪹
+ category="sm",
+ description="PRECEDES ABOVE NOT ALMOST EQUAL TO",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="precnapprox",
+ unicodeslot=0x2AB9,
},
[0x2ABA]={
- ["category"]="sm",
- ["description"]="SUCCEEDS ABOVE NOT ALMOST EQUAL TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2ABA, -- ⪺
+ category="sm",
+ description="SUCCEEDS ABOVE NOT ALMOST EQUAL TO",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="succnapprox",
+ unicodeslot=0x2ABA,
},
[0x2ABB]={
- ["category"]="sm",
- ["description"]="DOUBLE PRECEDES",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2ABB, -- ⪻
+ category="sm",
+ description="DOUBLE PRECEDES",
+ direction="on",
+ linebreak="al",
+ mirror=0x2ABC,
+ unicodeslot=0x2ABB,
},
[0x2ABC]={
- ["category"]="sm",
- ["description"]="DOUBLE SUCCEEDS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2ABC, -- ⪼
+ category="sm",
+ description="DOUBLE SUCCEEDS",
+ direction="on",
+ linebreak="al",
+ mirror=0x2ABB,
+ unicodeslot=0x2ABC,
},
[0x2ABD]={
- ["category"]="sm",
- ["description"]="SUBSET WITH DOT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2ABD, -- ⪽
+ category="sm",
+ description="SUBSET WITH DOT",
+ direction="on",
+ linebreak="al",
+ mirror=0x2ABE,
+ unicodeslot=0x2ABD,
},
[0x2ABE]={
- ["category"]="sm",
- ["description"]="SUPERSET WITH DOT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2ABE, -- ⪾
+ category="sm",
+ description="SUPERSET WITH DOT",
+ direction="on",
+ linebreak="al",
+ mirror=0x2ABD,
+ unicodeslot=0x2ABE,
},
[0x2ABF]={
- ["category"]="sm",
- ["description"]="SUBSET WITH PLUS SIGN BELOW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2ABF, -- ⪿
+ category="sm",
+ description="SUBSET WITH PLUS SIGN BELOW",
+ direction="on",
+ linebreak="al",
+ mirror=0x2AC0,
+ unicodeslot=0x2ABF,
},
[0x2AC0]={
- ["category"]="sm",
- ["description"]="SUPERSET WITH PLUS SIGN BELOW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AC0, -- ⫀
+ category="sm",
+ description="SUPERSET WITH PLUS SIGN BELOW",
+ direction="on",
+ linebreak="al",
+ mirror=0x2ABF,
+ unicodeslot=0x2AC0,
},
[0x2AC1]={
- ["category"]="sm",
- ["description"]="SUBSET WITH MULTIPLICATION SIGN BELOW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AC1, -- ⫁
+ category="sm",
+ description="SUBSET WITH MULTIPLICATION SIGN BELOW",
+ direction="on",
+ linebreak="al",
+ mirror=0x2AC2,
+ unicodeslot=0x2AC1,
},
[0x2AC2]={
- ["category"]="sm",
- ["description"]="SUPERSET WITH MULTIPLICATION SIGN BELOW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AC2, -- ⫂
+ category="sm",
+ description="SUPERSET WITH MULTIPLICATION SIGN BELOW",
+ direction="on",
+ linebreak="al",
+ mirror=0x2AC1,
+ unicodeslot=0x2AC2,
},
[0x2AC3]={
- ["category"]="sm",
- ["description"]="SUBSET OF OR EQUAL TO WITH DOT ABOVE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AC3, -- ⫃
+ category="sm",
+ description="SUBSET OF OR EQUAL TO WITH DOT ABOVE",
+ direction="on",
+ linebreak="al",
+ mirror=0x2AC4,
+ unicodeslot=0x2AC3,
},
[0x2AC4]={
- ["category"]="sm",
- ["description"]="SUPERSET OF OR EQUAL TO WITH DOT ABOVE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AC4, -- ⫄
+ category="sm",
+ description="SUPERSET OF OR EQUAL TO WITH DOT ABOVE",
+ direction="on",
+ linebreak="al",
+ mirror=0x2AC3,
+ unicodeslot=0x2AC4,
},
[0x2AC5]={
- ["category"]="sm",
- ["description"]="SUBSET OF ABOVE EQUALS SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AC5, -- ⫅
+ category="sm",
+ description="SUBSET OF ABOVE EQUALS SIGN",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="subseteqq",
+ mirror=0x2AC6,
+ unicodeslot=0x2AC5,
},
[0x2AC6]={
- ["category"]="sm",
- ["description"]="SUPERSET OF ABOVE EQUALS SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AC6, -- ⫆
+ category="sm",
+ description="SUPERSET OF ABOVE EQUALS SIGN",
+ direction="on",
+ linebreak="al",
+ mathclass="relation",
+ mathname="supseteqq",
+ mirror=0x2AC5,
+ unicodeslot=0x2AC6,
},
[0x2AC7]={
- ["category"]="sm",
- ["description"]="SUBSET OF ABOVE TILDE OPERATOR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AC7, -- ⫇
+ category="sm",
+ description="SUBSET OF ABOVE TILDE OPERATOR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2AC7,
},
[0x2AC8]={
- ["category"]="sm",
- ["description"]="SUPERSET OF ABOVE TILDE OPERATOR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AC8, -- ⫈
+ category="sm",
+ description="SUPERSET OF ABOVE TILDE OPERATOR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2AC8,
},
[0x2AC9]={
- ["category"]="sm",
- ["description"]="SUBSET OF ABOVE ALMOST EQUAL TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AC9, -- ⫉
+ category="sm",
+ description="SUBSET OF ABOVE ALMOST EQUAL TO",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2AC9,
},
[0x2ACA]={
- ["category"]="sm",
- ["description"]="SUPERSET OF ABOVE ALMOST EQUAL TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2ACA, -- ⫊
+ category="sm",
+ description="SUPERSET OF ABOVE ALMOST EQUAL TO",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2ACA,
},
[0x2ACB]={
- ["category"]="sm",
- ["description"]="SUBSET OF ABOVE NOT EQUAL TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2ACB, -- ⫋
+ category="sm",
+ description="SUBSET OF ABOVE NOT EQUAL TO",
+ direction="on",
+ mathclass="relation",
+ mathname="subsetneqq",
+ linebreak="al",
+ unicodeslot=0x2ACB,
},
[0x2ACC]={
- ["category"]="sm",
- ["description"]="SUPERSET OF ABOVE NOT EQUAL TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2ACC, -- ⫌
+ category="sm",
+ description="SUPERSET OF ABOVE NOT EQUAL TO",
+ direction="on",
+ mathclass="relation",
+ mathname="supsetneqq",
+ linebreak="al",
+ unicodeslot=0x2ACC,
},
[0x2ACD]={
- ["category"]="sm",
- ["description"]="SQUARE LEFT OPEN BOX OPERATOR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2ACD, -- ⫍
+ category="sm",
+ description="SQUARE LEFT OPEN BOX OPERATOR",
+ direction="on",
+ linebreak="al",
+ mirror=0x2ACE,
+ unicodeslot=0x2ACD,
},
[0x2ACE]={
- ["category"]="sm",
- ["description"]="SQUARE RIGHT OPEN BOX OPERATOR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2ACE, -- ⫎
+ category="sm",
+ description="SQUARE RIGHT OPEN BOX OPERATOR",
+ direction="on",
+ linebreak="al",
+ mirror=0x2ACD,
+ unicodeslot=0x2ACE,
},
[0x2ACF]={
- ["category"]="sm",
- ["description"]="CLOSED SUBSET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2ACF, -- ⫏
+ category="sm",
+ description="CLOSED SUBSET",
+ direction="on",
+ linebreak="al",
+ mirror=0x2AD0,
+ unicodeslot=0x2ACF,
},
[0x2AD0]={
- ["category"]="sm",
- ["description"]="CLOSED SUPERSET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AD0, -- ⫐
+ category="sm",
+ description="CLOSED SUPERSET",
+ direction="on",
+ linebreak="al",
+ mirror=0x2ACF,
+ unicodeslot=0x2AD0,
},
[0x2AD1]={
- ["category"]="sm",
- ["description"]="CLOSED SUBSET OR EQUAL TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AD1, -- ⫑
+ category="sm",
+ description="CLOSED SUBSET OR EQUAL TO",
+ direction="on",
+ linebreak="al",
+ mirror=0x2AD2,
+ unicodeslot=0x2AD1,
},
[0x2AD2]={
- ["category"]="sm",
- ["description"]="CLOSED SUPERSET OR EQUAL TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AD2, -- ⫒
+ category="sm",
+ description="CLOSED SUPERSET OR EQUAL TO",
+ direction="on",
+ linebreak="al",
+ mirror=0x2AD1,
+ unicodeslot=0x2AD2,
},
[0x2AD3]={
- ["category"]="sm",
- ["description"]="SUBSET ABOVE SUPERSET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AD3, -- ⫓
+ category="sm",
+ description="SUBSET ABOVE SUPERSET",
+ direction="on",
+ linebreak="al",
+ mirror=0x2AD4,
+ unicodeslot=0x2AD3,
},
[0x2AD4]={
- ["category"]="sm",
- ["description"]="SUPERSET ABOVE SUBSET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AD4, -- ⫔
+ category="sm",
+ description="SUPERSET ABOVE SUBSET",
+ direction="on",
+ linebreak="al",
+ mirror=0x2AD3,
+ unicodeslot=0x2AD4,
},
[0x2AD5]={
- ["category"]="sm",
- ["description"]="SUBSET ABOVE SUBSET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AD5, -- ⫕
+ category="sm",
+ description="SUBSET ABOVE SUBSET",
+ direction="on",
+ linebreak="al",
+ mirror=0x2AD6,
+ unicodeslot=0x2AD5,
},
[0x2AD6]={
- ["category"]="sm",
- ["description"]="SUPERSET ABOVE SUPERSET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AD6, -- ⫖
+ category="sm",
+ description="SUPERSET ABOVE SUPERSET",
+ direction="on",
+ linebreak="al",
+ mirror=0x2AD5,
+ unicodeslot=0x2AD6,
},
[0x2AD7]={
- ["category"]="sm",
- ["description"]="SUPERSET BESIDE SUBSET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AD7, -- ⫗
+ category="sm",
+ description="SUPERSET BESIDE SUBSET",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2AD7,
},
[0x2AD8]={
- ["category"]="sm",
- ["description"]="SUPERSET BESIDE AND JOINED BY DASH WITH SUBSET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AD8, -- ⫘
+ category="sm",
+ description="SUPERSET BESIDE AND JOINED BY DASH WITH SUBSET",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2AD8,
},
[0x2AD9]={
- ["category"]="sm",
- ["description"]="ELEMENT OF OPENING DOWNWARDS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AD9, -- ⫙
+ category="sm",
+ description="ELEMENT OF OPENING DOWNWARDS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2AD9,
},
[0x2ADA]={
- ["category"]="sm",
- ["description"]="PITCHFORK WITH TEE TOP",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2ADA, -- ⫚
+ category="sm",
+ description="PITCHFORK WITH TEE TOP",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2ADA,
},
[0x2ADB]={
- ["category"]="sm",
- ["description"]="TRANSVERSAL INTERSECTION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2ADB, -- ⫛
+ category="sm",
+ description="TRANSVERSAL INTERSECTION",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2ADB,
},
[0x2ADC]={
- ["category"]="sm",
- ["description"]="FORKING",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x2ADD, 0x0338 },
- ["unicodeslot"]=0x2ADC, -- ⫝̸
+ category="sm",
+ description="FORKING",
+ direction="on",
+ linebreak="al",
+ specials={ "char", 0x2ADD, 0x0338 },
+ unicodeslot=0x2ADC,
},
[0x2ADD]={
- ["category"]="sm",
- ["description"]="NONFORKING",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2ADD, -- ⫝
+ category="sm",
+ description="NONFORKING",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2ADD,
},
[0x2ADE]={
- ["category"]="sm",
- ["description"]="SHORT LEFT TACK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2ADE, -- ⫞
+ category="sm",
+ description="SHORT LEFT TACK",
+ direction="on",
+ linebreak="al",
+ mirror=0x22A6,
+ unicodeslot=0x2ADE,
},
[0x2ADF]={
- ["category"]="sm",
- ["description"]="SHORT DOWN TACK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2ADF, -- ⫟
+ category="sm",
+ description="SHORT DOWN TACK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2ADF,
},
[0x2AE0]={
- ["category"]="sm",
- ["description"]="SHORT UP TACK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AE0, -- ⫠
+ category="sm",
+ description="SHORT UP TACK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2AE0,
},
[0x2AE1]={
- ["category"]="sm",
- ["description"]="PERPENDICULAR WITH S",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AE1, -- ⫡
+ category="sm",
+ description="PERPENDICULAR WITH S",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2AE1,
},
[0x2AE2]={
- ["category"]="sm",
- ["description"]="VERTICAL BAR TRIPLE RIGHT TURNSTILE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AE2, -- ⫢
+ category="sm",
+ description="VERTICAL BAR TRIPLE RIGHT TURNSTILE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2AE2,
},
[0x2AE3]={
- ["category"]="sm",
- ["description"]="DOUBLE VERTICAL BAR LEFT TURNSTILE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AE3, -- ⫣
+ category="sm",
+ description="DOUBLE VERTICAL BAR LEFT TURNSTILE",
+ direction="on",
+ linebreak="al",
+ mirror=0x22A9,
+ unicodeslot=0x2AE3,
},
[0x2AE4]={
- ["category"]="sm",
- ["description"]="VERTICAL BAR DOUBLE LEFT TURNSTILE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AE4, -- ⫤
+ category="sm",
+ description="VERTICAL BAR DOUBLE LEFT TURNSTILE",
+ direction="on",
+ linebreak="al",
+ mirror=0x22A8,
+ unicodeslot=0x2AE4,
},
[0x2AE5]={
- ["category"]="sm",
- ["description"]="DOUBLE VERTICAL BAR DOUBLE LEFT TURNSTILE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AE5, -- ⫥
+ category="sm",
+ description="DOUBLE VERTICAL BAR DOUBLE LEFT TURNSTILE",
+ direction="on",
+ linebreak="al",
+ mirror=0x22AB,
+ unicodeslot=0x2AE5,
},
[0x2AE6]={
- ["category"]="sm",
- ["description"]="LONG DASH FROM LEFT MEMBER OF DOUBLE VERTICAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AE6, -- ⫦
+ category="sm",
+ description="LONG DASH FROM LEFT MEMBER OF DOUBLE VERTICAL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2AE6,
},
[0x2AE7]={
- ["category"]="sm",
- ["description"]="SHORT DOWN TACK WITH OVERBAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AE7, -- ⫧
+ category="sm",
+ description="SHORT DOWN TACK WITH OVERBAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2AE7,
},
[0x2AE8]={
- ["category"]="sm",
- ["description"]="SHORT UP TACK WITH UNDERBAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AE8, -- ⫨
+ category="sm",
+ description="SHORT UP TACK WITH UNDERBAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2AE8,
},
[0x2AE9]={
- ["category"]="sm",
- ["description"]="SHORT UP TACK ABOVE SHORT DOWN TACK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AE9, -- ⫩
+ category="sm",
+ description="SHORT UP TACK ABOVE SHORT DOWN TACK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2AE9,
},
[0x2AEA]={
- ["category"]="sm",
- ["description"]="DOUBLE DOWN TACK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AEA, -- ⫪
+ category="sm",
+ description="DOUBLE DOWN TACK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2AEA,
},
[0x2AEB]={
- ["category"]="sm",
- ["description"]="DOUBLE UP TACK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AEB, -- ⫫
+ category="sm",
+ description="DOUBLE UP TACK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2AEB,
},
[0x2AEC]={
- ["category"]="sm",
- ["description"]="DOUBLE STROKE NOT SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AEC, -- ⫬
+ category="sm",
+ description="DOUBLE STROKE NOT SIGN",
+ direction="on",
+ linebreak="al",
+ mirror=0x2AED,
+ unicodeslot=0x2AEC,
},
[0x2AED]={
- ["category"]="sm",
- ["description"]="REVERSED DOUBLE STROKE NOT SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AED, -- ⫭
+ category="sm",
+ description="REVERSED DOUBLE STROKE NOT SIGN",
+ direction="on",
+ linebreak="al",
+ mirror=0x2AEC,
+ unicodeslot=0x2AED,
},
[0x2AEE]={
- ["category"]="sm",
- ["description"]="DOES NOT DIVIDE WITH REVERSED NEGATION SLASH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AEE, -- ⫮
+ category="sm",
+ description="DOES NOT DIVIDE WITH REVERSED NEGATION SLASH",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2AEE,
},
[0x2AEF]={
- ["category"]="sm",
- ["description"]="VERTICAL LINE WITH CIRCLE ABOVE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AEF, -- ⫯
+ category="sm",
+ description="VERTICAL LINE WITH CIRCLE ABOVE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2AEF,
},
[0x2AF0]={
- ["category"]="sm",
- ["description"]="VERTICAL LINE WITH CIRCLE BELOW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AF0, -- ⫰
+ category="sm",
+ description="VERTICAL LINE WITH CIRCLE BELOW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2AF0,
},
[0x2AF1]={
- ["category"]="sm",
- ["description"]="DOWN TACK WITH CIRCLE BELOW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AF1, -- ⫱
+ category="sm",
+ description="DOWN TACK WITH CIRCLE BELOW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2AF1,
},
[0x2AF2]={
- ["category"]="sm",
- ["description"]="PARALLEL WITH HORIZONTAL STROKE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AF2, -- ⫲
+ category="sm",
+ description="PARALLEL WITH HORIZONTAL STROKE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2AF2,
},
[0x2AF3]={
- ["category"]="sm",
- ["description"]="PARALLEL WITH TILDE OPERATOR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AF3, -- ⫳
+ category="sm",
+ description="PARALLEL WITH TILDE OPERATOR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2AF3,
},
[0x2AF4]={
- ["category"]="sm",
- ["description"]="TRIPLE VERTICAL BAR BINARY RELATION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AF4, -- ⫴
+ category="sm",
+ description="TRIPLE VERTICAL BAR BINARY RELATION",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2AF4,
},
[0x2AF5]={
- ["category"]="sm",
- ["description"]="TRIPLE VERTICAL BAR WITH HORIZONTAL STROKE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AF5, -- ⫵
+ category="sm",
+ description="TRIPLE VERTICAL BAR WITH HORIZONTAL STROKE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2AF5,
},
[0x2AF6]={
- ["category"]="sm",
- ["description"]="TRIPLE COLON OPERATOR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AF6, -- ⫶
+ category="sm",
+ description="TRIPLE COLON OPERATOR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2AF6,
},
[0x2AF7]={
- ["category"]="sm",
- ["description"]="TRIPLE NESTED LESS-THAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AF7, -- ⫷
+ category="sm",
+ description="TRIPLE NESTED LESS-THAN",
+ direction="on",
+ linebreak="al",
+ mirror=0x2AF8,
+ unicodeslot=0x2AF7,
},
[0x2AF8]={
- ["category"]="sm",
- ["description"]="TRIPLE NESTED GREATER-THAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AF8, -- ⫸
+ category="sm",
+ description="TRIPLE NESTED GREATER-THAN",
+ direction="on",
+ linebreak="al",
+ mirror=0x2AF7,
+ unicodeslot=0x2AF8,
},
[0x2AF9]={
- ["category"]="sm",
- ["description"]="DOUBLE-LINE SLANTED LESS-THAN OR EQUAL TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AF9, -- ⫹
+ category="sm",
+ description="DOUBLE-LINE SLANTED LESS-THAN OR EQUAL TO",
+ direction="on",
+ linebreak="al",
+ mirror=0x2AFA,
+ unicodeslot=0x2AF9,
},
[0x2AFA]={
- ["category"]="sm",
- ["description"]="DOUBLE-LINE SLANTED GREATER-THAN OR EQUAL TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AFA, -- ⫺
+ category="sm",
+ description="DOUBLE-LINE SLANTED GREATER-THAN OR EQUAL TO",
+ direction="on",
+ linebreak="al",
+ mirror=0x2AF9,
+ unicodeslot=0x2AFA,
},
[0x2AFB]={
- ["category"]="sm",
- ["description"]="TRIPLE SOLIDUS BINARY RELATION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AFB, -- ⫻
+ category="sm",
+ description="TRIPLE SOLIDUS BINARY RELATION",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2AFB,
},
[0x2AFC]={
- ["category"]="sm",
- ["description"]="LARGE TRIPLE VERTICAL BAR OPERATOR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AFC, -- ⫼
+ category="sm",
+ description="LARGE TRIPLE VERTICAL BAR OPERATOR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2AFC,
},
[0x2AFD]={
- ["category"]="sm",
- ["description"]="DOUBLE SOLIDUS OPERATOR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AFD, -- ⫽
+ category="sm",
+ description="DOUBLE SOLIDUS OPERATOR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2AFD,
},
[0x2AFE]={
- ["category"]="sm",
- ["description"]="WHITE VERTICAL BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AFE, -- ⫾
+ category="sm",
+ description="WHITE VERTICAL BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2AFE,
},
[0x2AFF]={
- ["category"]="sm",
- ["description"]="N-ARY WHITE VERTICAL BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2AFF, -- ⫿
+ category="sm",
+ description="N-ARY WHITE VERTICAL BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2AFF,
},
[0x2B00]={
- ["category"]="so",
- ["description"]="NORTH EAST WHITE ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2B00, -- ⬀
+ category="so",
+ description="NORTH EAST WHITE ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2B00,
},
[0x2B01]={
- ["category"]="so",
- ["description"]="NORTH WEST WHITE ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2B01, -- ⬁
+ category="so",
+ description="NORTH WEST WHITE ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2B01,
},
[0x2B02]={
- ["category"]="so",
- ["description"]="SOUTH EAST WHITE ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2B02, -- ⬂
+ category="so",
+ description="SOUTH EAST WHITE ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2B02,
},
[0x2B03]={
- ["category"]="so",
- ["description"]="SOUTH WEST WHITE ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2B03, -- ⬃
+ category="so",
+ description="SOUTH WEST WHITE ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2B03,
},
[0x2B04]={
- ["category"]="so",
- ["description"]="LEFT RIGHT WHITE ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2B04, -- ⬄
+ category="so",
+ description="LEFT RIGHT WHITE ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2B04,
},
[0x2B05]={
- ["category"]="so",
- ["description"]="LEFTWARDS BLACK ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2B05, -- ⬅
+ category="so",
+ description="LEFTWARDS BLACK ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2B05,
},
[0x2B06]={
- ["category"]="so",
- ["description"]="UPWARDS BLACK ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2B06, -- ⬆
+ category="so",
+ description="UPWARDS BLACK ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2B06,
},
[0x2B07]={
- ["category"]="so",
- ["description"]="DOWNWARDS BLACK ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2B07, -- ⬇
+ category="so",
+ description="DOWNWARDS BLACK ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2B07,
},
[0x2B08]={
- ["category"]="so",
- ["description"]="NORTH EAST BLACK ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2B08, -- ⬈
+ category="so",
+ description="NORTH EAST BLACK ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2B08,
},
[0x2B09]={
- ["category"]="so",
- ["description"]="NORTH WEST BLACK ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2B09, -- ⬉
+ category="so",
+ description="NORTH WEST BLACK ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2B09,
},
[0x2B0A]={
- ["category"]="so",
- ["description"]="SOUTH EAST BLACK ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2B0A, -- ⬊
+ category="so",
+ description="SOUTH EAST BLACK ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2B0A,
},
[0x2B0B]={
- ["category"]="so",
- ["description"]="SOUTH WEST BLACK ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2B0B, -- ⬋
+ category="so",
+ description="SOUTH WEST BLACK ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2B0B,
},
[0x2B0C]={
- ["category"]="so",
- ["description"]="LEFT RIGHT BLACK ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2B0C, -- ⬌
+ category="so",
+ description="LEFT RIGHT BLACK ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2B0C,
},
[0x2B0D]={
- ["category"]="so",
- ["description"]="UP DOWN BLACK ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2B0D, -- ⬍
+ category="so",
+ description="UP DOWN BLACK ARROW",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2B0D,
},
[0x2B0E]={
- ["category"]="so",
- ["description"]="RIGHTWARDS ARROW WITH TIP DOWNWARDS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2B0E, -- ⬎
+ category="so",
+ description="RIGHTWARDS ARROW WITH TIP DOWNWARDS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2B0E,
},
[0x2B0F]={
- ["category"]="so",
- ["description"]="RIGHTWARDS ARROW WITH TIP UPWARDS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2B0F, -- ⬏
+ category="so",
+ description="RIGHTWARDS ARROW WITH TIP UPWARDS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2B0F,
},
[0x2B10]={
- ["category"]="so",
- ["description"]="LEFTWARDS ARROW WITH TIP DOWNWARDS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2B10, -- ⬐
+ category="so",
+ description="LEFTWARDS ARROW WITH TIP DOWNWARDS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2B10,
},
[0x2B11]={
- ["category"]="so",
- ["description"]="LEFTWARDS ARROW WITH TIP UPWARDS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2B11, -- ⬑
+ category="so",
+ description="LEFTWARDS ARROW WITH TIP UPWARDS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2B11,
},
[0x2B12]={
- ["category"]="so",
- ["description"]="SQUARE WITH TOP HALF BLACK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2B12, -- ⬒
+ category="so",
+ description="SQUARE WITH TOP HALF BLACK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2B12,
},
[0x2B13]={
- ["category"]="so",
- ["description"]="SQUARE WITH BOTTOM HALF BLACK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2B13, -- ⬓
+ category="so",
+ description="SQUARE WITH BOTTOM HALF BLACK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2B13,
},
[0x2B14]={
- ["category"]="so",
- ["description"]="SQUARE WITH UPPER RIGHT DIAGONAL HALF BLACK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2B14, -- ⬔
+ category="so",
+ description="SQUARE WITH UPPER RIGHT DIAGONAL HALF BLACK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2B14,
},
[0x2B15]={
- ["category"]="so",
- ["description"]="SQUARE WITH LOWER LEFT DIAGONAL HALF BLACK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2B15, -- ⬕
+ category="so",
+ description="SQUARE WITH LOWER LEFT DIAGONAL HALF BLACK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2B15,
},
[0x2B16]={
- ["category"]="so",
- ["description"]="DIAMOND WITH LEFT HALF BLACK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2B16, -- ⬖
+ category="so",
+ description="DIAMOND WITH LEFT HALF BLACK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2B16,
},
[0x2B17]={
- ["category"]="so",
- ["description"]="DIAMOND WITH RIGHT HALF BLACK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2B17, -- ⬗
+ category="so",
+ description="DIAMOND WITH RIGHT HALF BLACK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2B17,
},
[0x2B18]={
- ["category"]="so",
- ["description"]="DIAMOND WITH TOP HALF BLACK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2B18, -- ⬘
+ category="so",
+ description="DIAMOND WITH TOP HALF BLACK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2B18,
},
[0x2B19]={
- ["category"]="so",
- ["description"]="DIAMOND WITH BOTTOM HALF BLACK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2B19, -- ⬙
+ category="so",
+ description="DIAMOND WITH BOTTOM HALF BLACK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2B19,
},
[0x2B1A]={
- ["category"]="so",
- ["description"]="DOTTED SQUARE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2B1A, -- ⬚
+ category="so",
+ description="DOTTED SQUARE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2B1A,
},
[0x2B20]={
- ["category"]="so",
- ["description"]="WHITE PENTAGON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2B20, -- ⬠
+ category="so",
+ description="WHITE PENTAGON",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2B20,
},
[0x2B21]={
- ["category"]="so",
- ["description"]="WHITE HEXAGON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2B21, -- ⬡
+ category="so",
+ description="WHITE HEXAGON",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2B21,
},
[0x2B22]={
- ["category"]="so",
- ["description"]="BLACK HEXAGON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2B22, -- ⬢
+ category="so",
+ description="BLACK HEXAGON",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2B22,
},
[0x2B23]={
- ["category"]="so",
- ["description"]="HORIZONTAL BLACK HEXAGON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2B23, -- ⬣
+ category="so",
+ description="HORIZONTAL BLACK HEXAGON",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2B23,
},
[0x2C00]={
- ["category"]="lu",
- ["description"]="GLAGOLITIC CAPITAL LETTER AZU",
- ["lccode"]=0x2C30,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C00, -- Ⰰ
+ category="lu",
+ description="GLAGOLITIC CAPITAL LETTER AZU",
+ direction="l",
+ lccode=0x2C30,
+ linebreak="al",
+ unicodeslot=0x2C00,
},
[0x2C01]={
- ["category"]="lu",
- ["description"]="GLAGOLITIC CAPITAL LETTER BUKY",
- ["lccode"]=0x2C31,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C01, -- Ⰱ
+ category="lu",
+ description="GLAGOLITIC CAPITAL LETTER BUKY",
+ direction="l",
+ lccode=0x2C31,
+ linebreak="al",
+ unicodeslot=0x2C01,
},
[0x2C02]={
- ["category"]="lu",
- ["description"]="GLAGOLITIC CAPITAL LETTER VEDE",
- ["lccode"]=0x2C32,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C02, -- Ⰲ
+ category="lu",
+ description="GLAGOLITIC CAPITAL LETTER VEDE",
+ direction="l",
+ lccode=0x2C32,
+ linebreak="al",
+ unicodeslot=0x2C02,
},
[0x2C03]={
- ["category"]="lu",
- ["description"]="GLAGOLITIC CAPITAL LETTER GLAGOLI",
- ["lccode"]=0x2C33,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C03, -- Ⰳ
+ category="lu",
+ description="GLAGOLITIC CAPITAL LETTER GLAGOLI",
+ direction="l",
+ lccode=0x2C33,
+ linebreak="al",
+ unicodeslot=0x2C03,
},
[0x2C04]={
- ["category"]="lu",
- ["description"]="GLAGOLITIC CAPITAL LETTER DOBRO",
- ["lccode"]=0x2C34,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C04, -- Ⰴ
+ category="lu",
+ description="GLAGOLITIC CAPITAL LETTER DOBRO",
+ direction="l",
+ lccode=0x2C34,
+ linebreak="al",
+ unicodeslot=0x2C04,
},
[0x2C05]={
- ["category"]="lu",
- ["description"]="GLAGOLITIC CAPITAL LETTER YESTU",
- ["lccode"]=0x2C35,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C05, -- Ⰵ
+ category="lu",
+ description="GLAGOLITIC CAPITAL LETTER YESTU",
+ direction="l",
+ lccode=0x2C35,
+ linebreak="al",
+ unicodeslot=0x2C05,
},
[0x2C06]={
- ["category"]="lu",
- ["description"]="GLAGOLITIC CAPITAL LETTER ZHIVETE",
- ["lccode"]=0x2C36,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C06, -- Ⰶ
+ category="lu",
+ description="GLAGOLITIC CAPITAL LETTER ZHIVETE",
+ direction="l",
+ lccode=0x2C36,
+ linebreak="al",
+ unicodeslot=0x2C06,
},
[0x2C07]={
- ["category"]="lu",
- ["description"]="GLAGOLITIC CAPITAL LETTER DZELO",
- ["lccode"]=0x2C37,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C07, -- Ⰷ
+ category="lu",
+ description="GLAGOLITIC CAPITAL LETTER DZELO",
+ direction="l",
+ lccode=0x2C37,
+ linebreak="al",
+ unicodeslot=0x2C07,
},
[0x2C08]={
- ["category"]="lu",
- ["description"]="GLAGOLITIC CAPITAL LETTER ZEMLJA",
- ["lccode"]=0x2C38,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C08, -- Ⰸ
+ category="lu",
+ description="GLAGOLITIC CAPITAL LETTER ZEMLJA",
+ direction="l",
+ lccode=0x2C38,
+ linebreak="al",
+ unicodeslot=0x2C08,
},
[0x2C09]={
- ["category"]="lu",
- ["description"]="GLAGOLITIC CAPITAL LETTER IZHE",
- ["lccode"]=0x2C39,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C09, -- Ⰹ
+ category="lu",
+ description="GLAGOLITIC CAPITAL LETTER IZHE",
+ direction="l",
+ lccode=0x2C39,
+ linebreak="al",
+ unicodeslot=0x2C09,
},
[0x2C0A]={
- ["category"]="lu",
- ["description"]="GLAGOLITIC CAPITAL LETTER INITIAL IZHE",
- ["lccode"]=0x2C3A,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C0A, -- Ⰺ
+ category="lu",
+ description="GLAGOLITIC CAPITAL LETTER INITIAL IZHE",
+ direction="l",
+ lccode=0x2C3A,
+ linebreak="al",
+ unicodeslot=0x2C0A,
},
[0x2C0B]={
- ["category"]="lu",
- ["description"]="GLAGOLITIC CAPITAL LETTER I",
- ["lccode"]=0x2C3B,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C0B, -- Ⰻ
+ category="lu",
+ description="GLAGOLITIC CAPITAL LETTER I",
+ direction="l",
+ lccode=0x2C3B,
+ linebreak="al",
+ unicodeslot=0x2C0B,
},
[0x2C0C]={
- ["category"]="lu",
- ["description"]="GLAGOLITIC CAPITAL LETTER DJERVI",
- ["lccode"]=0x2C3C,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C0C, -- Ⰼ
+ category="lu",
+ description="GLAGOLITIC CAPITAL LETTER DJERVI",
+ direction="l",
+ lccode=0x2C3C,
+ linebreak="al",
+ unicodeslot=0x2C0C,
},
[0x2C0D]={
- ["category"]="lu",
- ["description"]="GLAGOLITIC CAPITAL LETTER KAKO",
- ["lccode"]=0x2C3D,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C0D, -- Ⰽ
+ category="lu",
+ description="GLAGOLITIC CAPITAL LETTER KAKO",
+ direction="l",
+ lccode=0x2C3D,
+ linebreak="al",
+ unicodeslot=0x2C0D,
},
[0x2C0E]={
- ["category"]="lu",
- ["description"]="GLAGOLITIC CAPITAL LETTER LJUDIJE",
- ["lccode"]=0x2C3E,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C0E, -- Ⰾ
+ category="lu",
+ description="GLAGOLITIC CAPITAL LETTER LJUDIJE",
+ direction="l",
+ lccode=0x2C3E,
+ linebreak="al",
+ unicodeslot=0x2C0E,
},
[0x2C0F]={
- ["category"]="lu",
- ["description"]="GLAGOLITIC CAPITAL LETTER MYSLITE",
- ["lccode"]=0x2C3F,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C0F, -- Ⰿ
+ category="lu",
+ description="GLAGOLITIC CAPITAL LETTER MYSLITE",
+ direction="l",
+ lccode=0x2C3F,
+ linebreak="al",
+ unicodeslot=0x2C0F,
},
[0x2C10]={
- ["category"]="lu",
- ["description"]="GLAGOLITIC CAPITAL LETTER NASHI",
- ["lccode"]=0x2C40,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C10, -- Ⱀ
+ category="lu",
+ description="GLAGOLITIC CAPITAL LETTER NASHI",
+ direction="l",
+ lccode=0x2C40,
+ linebreak="al",
+ unicodeslot=0x2C10,
},
[0x2C11]={
- ["category"]="lu",
- ["description"]="GLAGOLITIC CAPITAL LETTER ONU",
- ["lccode"]=0x2C41,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C11, -- Ⱁ
+ category="lu",
+ description="GLAGOLITIC CAPITAL LETTER ONU",
+ direction="l",
+ lccode=0x2C41,
+ linebreak="al",
+ unicodeslot=0x2C11,
},
[0x2C12]={
- ["category"]="lu",
- ["description"]="GLAGOLITIC CAPITAL LETTER POKOJI",
- ["lccode"]=0x2C42,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C12, -- Ⱂ
+ category="lu",
+ description="GLAGOLITIC CAPITAL LETTER POKOJI",
+ direction="l",
+ lccode=0x2C42,
+ linebreak="al",
+ unicodeslot=0x2C12,
},
[0x2C13]={
- ["category"]="lu",
- ["description"]="GLAGOLITIC CAPITAL LETTER RITSI",
- ["lccode"]=0x2C43,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C13, -- Ⱃ
+ category="lu",
+ description="GLAGOLITIC CAPITAL LETTER RITSI",
+ direction="l",
+ lccode=0x2C43,
+ linebreak="al",
+ unicodeslot=0x2C13,
},
[0x2C14]={
- ["category"]="lu",
- ["description"]="GLAGOLITIC CAPITAL LETTER SLOVO",
- ["lccode"]=0x2C44,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C14, -- Ⱄ
+ category="lu",
+ description="GLAGOLITIC CAPITAL LETTER SLOVO",
+ direction="l",
+ lccode=0x2C44,
+ linebreak="al",
+ unicodeslot=0x2C14,
},
[0x2C15]={
- ["category"]="lu",
- ["description"]="GLAGOLITIC CAPITAL LETTER TVRIDO",
- ["lccode"]=0x2C45,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C15, -- Ⱅ
+ category="lu",
+ description="GLAGOLITIC CAPITAL LETTER TVRIDO",
+ direction="l",
+ lccode=0x2C45,
+ linebreak="al",
+ unicodeslot=0x2C15,
},
[0x2C16]={
- ["category"]="lu",
- ["description"]="GLAGOLITIC CAPITAL LETTER UKU",
- ["lccode"]=0x2C46,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C16, -- Ⱆ
+ category="lu",
+ description="GLAGOLITIC CAPITAL LETTER UKU",
+ direction="l",
+ lccode=0x2C46,
+ linebreak="al",
+ unicodeslot=0x2C16,
},
[0x2C17]={
- ["category"]="lu",
- ["description"]="GLAGOLITIC CAPITAL LETTER FRITU",
- ["lccode"]=0x2C47,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C17, -- Ⱇ
+ category="lu",
+ description="GLAGOLITIC CAPITAL LETTER FRITU",
+ direction="l",
+ lccode=0x2C47,
+ linebreak="al",
+ unicodeslot=0x2C17,
},
[0x2C18]={
- ["category"]="lu",
- ["description"]="GLAGOLITIC CAPITAL LETTER HERU",
- ["lccode"]=0x2C48,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C18, -- Ⱈ
+ category="lu",
+ description="GLAGOLITIC CAPITAL LETTER HERU",
+ direction="l",
+ lccode=0x2C48,
+ linebreak="al",
+ unicodeslot=0x2C18,
},
[0x2C19]={
- ["category"]="lu",
- ["description"]="GLAGOLITIC CAPITAL LETTER OTU",
- ["lccode"]=0x2C49,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C19, -- Ⱉ
+ category="lu",
+ description="GLAGOLITIC CAPITAL LETTER OTU",
+ direction="l",
+ lccode=0x2C49,
+ linebreak="al",
+ unicodeslot=0x2C19,
},
[0x2C1A]={
- ["category"]="lu",
- ["description"]="GLAGOLITIC CAPITAL LETTER PE",
- ["lccode"]=0x2C4A,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C1A, -- Ⱊ
+ category="lu",
+ description="GLAGOLITIC CAPITAL LETTER PE",
+ direction="l",
+ lccode=0x2C4A,
+ linebreak="al",
+ unicodeslot=0x2C1A,
},
[0x2C1B]={
- ["category"]="lu",
- ["description"]="GLAGOLITIC CAPITAL LETTER SHTA",
- ["lccode"]=0x2C4B,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C1B, -- Ⱋ
+ category="lu",
+ description="GLAGOLITIC CAPITAL LETTER SHTA",
+ direction="l",
+ lccode=0x2C4B,
+ linebreak="al",
+ unicodeslot=0x2C1B,
},
[0x2C1C]={
- ["category"]="lu",
- ["description"]="GLAGOLITIC CAPITAL LETTER TSI",
- ["lccode"]=0x2C4C,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C1C, -- Ⱌ
+ category="lu",
+ description="GLAGOLITIC CAPITAL LETTER TSI",
+ direction="l",
+ lccode=0x2C4C,
+ linebreak="al",
+ unicodeslot=0x2C1C,
},
[0x2C1D]={
- ["category"]="lu",
- ["description"]="GLAGOLITIC CAPITAL LETTER CHRIVI",
- ["lccode"]=0x2C4D,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C1D, -- Ⱍ
+ category="lu",
+ description="GLAGOLITIC CAPITAL LETTER CHRIVI",
+ direction="l",
+ lccode=0x2C4D,
+ linebreak="al",
+ unicodeslot=0x2C1D,
},
[0x2C1E]={
- ["category"]="lu",
- ["description"]="GLAGOLITIC CAPITAL LETTER SHA",
- ["lccode"]=0x2C4E,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C1E, -- Ⱎ
+ category="lu",
+ description="GLAGOLITIC CAPITAL LETTER SHA",
+ direction="l",
+ lccode=0x2C4E,
+ linebreak="al",
+ unicodeslot=0x2C1E,
},
[0x2C1F]={
- ["category"]="lu",
- ["description"]="GLAGOLITIC CAPITAL LETTER YERU",
- ["lccode"]=0x2C4F,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C1F, -- Ⱏ
+ category="lu",
+ description="GLAGOLITIC CAPITAL LETTER YERU",
+ direction="l",
+ lccode=0x2C4F,
+ linebreak="al",
+ unicodeslot=0x2C1F,
},
[0x2C20]={
- ["category"]="lu",
- ["description"]="GLAGOLITIC CAPITAL LETTER YERI",
- ["lccode"]=0x2C50,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C20, -- Ⱐ
+ category="lu",
+ description="GLAGOLITIC CAPITAL LETTER YERI",
+ direction="l",
+ lccode=0x2C50,
+ linebreak="al",
+ unicodeslot=0x2C20,
},
[0x2C21]={
- ["category"]="lu",
- ["description"]="GLAGOLITIC CAPITAL LETTER YATI",
- ["lccode"]=0x2C51,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C21, -- Ⱑ
+ category="lu",
+ description="GLAGOLITIC CAPITAL LETTER YATI",
+ direction="l",
+ lccode=0x2C51,
+ linebreak="al",
+ unicodeslot=0x2C21,
},
[0x2C22]={
- ["category"]="lu",
- ["description"]="GLAGOLITIC CAPITAL LETTER SPIDERY HA",
- ["lccode"]=0x2C52,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C22, -- Ⱒ
+ category="lu",
+ description="GLAGOLITIC CAPITAL LETTER SPIDERY HA",
+ direction="l",
+ lccode=0x2C52,
+ linebreak="al",
+ unicodeslot=0x2C22,
},
[0x2C23]={
- ["category"]="lu",
- ["description"]="GLAGOLITIC CAPITAL LETTER YU",
- ["lccode"]=0x2C53,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C23, -- Ⱓ
+ category="lu",
+ description="GLAGOLITIC CAPITAL LETTER YU",
+ direction="l",
+ lccode=0x2C53,
+ linebreak="al",
+ unicodeslot=0x2C23,
},
[0x2C24]={
- ["category"]="lu",
- ["description"]="GLAGOLITIC CAPITAL LETTER SMALL YUS",
- ["lccode"]=0x2C54,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C24, -- Ⱔ
+ category="lu",
+ description="GLAGOLITIC CAPITAL LETTER SMALL YUS",
+ direction="l",
+ lccode=0x2C54,
+ linebreak="al",
+ unicodeslot=0x2C24,
},
[0x2C25]={
- ["category"]="lu",
- ["description"]="GLAGOLITIC CAPITAL LETTER SMALL YUS WITH TAIL",
- ["lccode"]=0x2C55,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C25, -- Ⱕ
+ category="lu",
+ description="GLAGOLITIC CAPITAL LETTER SMALL YUS WITH TAIL",
+ direction="l",
+ lccode=0x2C55,
+ linebreak="al",
+ unicodeslot=0x2C25,
},
[0x2C26]={
- ["category"]="lu",
- ["description"]="GLAGOLITIC CAPITAL LETTER YO",
- ["lccode"]=0x2C56,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C26, -- Ⱖ
+ category="lu",
+ description="GLAGOLITIC CAPITAL LETTER YO",
+ direction="l",
+ lccode=0x2C56,
+ linebreak="al",
+ unicodeslot=0x2C26,
},
[0x2C27]={
- ["category"]="lu",
- ["description"]="GLAGOLITIC CAPITAL LETTER IOTATED SMALL YUS",
- ["lccode"]=0x2C57,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C27, -- Ⱗ
+ category="lu",
+ description="GLAGOLITIC CAPITAL LETTER IOTATED SMALL YUS",
+ direction="l",
+ lccode=0x2C57,
+ linebreak="al",
+ unicodeslot=0x2C27,
},
[0x2C28]={
- ["category"]="lu",
- ["description"]="GLAGOLITIC CAPITAL LETTER BIG YUS",
- ["lccode"]=0x2C58,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C28, -- Ⱘ
+ category="lu",
+ description="GLAGOLITIC CAPITAL LETTER BIG YUS",
+ direction="l",
+ lccode=0x2C58,
+ linebreak="al",
+ unicodeslot=0x2C28,
},
[0x2C29]={
- ["category"]="lu",
- ["description"]="GLAGOLITIC CAPITAL LETTER IOTATED BIG YUS",
- ["lccode"]=0x2C59,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C29, -- Ⱙ
+ category="lu",
+ description="GLAGOLITIC CAPITAL LETTER IOTATED BIG YUS",
+ direction="l",
+ lccode=0x2C59,
+ linebreak="al",
+ unicodeslot=0x2C29,
},
[0x2C2A]={
- ["category"]="lu",
- ["description"]="GLAGOLITIC CAPITAL LETTER FITA",
- ["lccode"]=0x2C5A,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C2A, -- Ⱚ
+ category="lu",
+ description="GLAGOLITIC CAPITAL LETTER FITA",
+ direction="l",
+ lccode=0x2C5A,
+ linebreak="al",
+ unicodeslot=0x2C2A,
},
[0x2C2B]={
- ["category"]="lu",
- ["description"]="GLAGOLITIC CAPITAL LETTER IZHITSA",
- ["lccode"]=0x2C5B,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C2B, -- Ⱛ
+ category="lu",
+ description="GLAGOLITIC CAPITAL LETTER IZHITSA",
+ direction="l",
+ lccode=0x2C5B,
+ linebreak="al",
+ unicodeslot=0x2C2B,
},
[0x2C2C]={
- ["category"]="lu",
- ["description"]="GLAGOLITIC CAPITAL LETTER SHTAPIC",
- ["lccode"]=0x2C5C,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C2C, -- Ⱜ
+ category="lu",
+ description="GLAGOLITIC CAPITAL LETTER SHTAPIC",
+ direction="l",
+ lccode=0x2C5C,
+ linebreak="al",
+ unicodeslot=0x2C2C,
},
[0x2C2D]={
- ["category"]="lu",
- ["description"]="GLAGOLITIC CAPITAL LETTER TROKUTASTI A",
- ["lccode"]=0x2C5D,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C2D, -- Ⱝ
+ category="lu",
+ description="GLAGOLITIC CAPITAL LETTER TROKUTASTI A",
+ direction="l",
+ lccode=0x2C5D,
+ linebreak="al",
+ unicodeslot=0x2C2D,
},
[0x2C2E]={
- ["category"]="lu",
- ["description"]="GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE",
- ["lccode"]=0x2C5E,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C2E, -- Ⱞ
+ category="lu",
+ description="GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE",
+ direction="l",
+ lccode=0x2C5E,
+ linebreak="al",
+ unicodeslot=0x2C2E,
},
[0x2C30]={
- ["category"]="ll",
- ["description"]="GLAGOLITIC SMALL LETTER AZU",
- ["linebreak"]="al",
- ["uccode"]=0x2C00,
- ["unicodeslot"]=0x2C30, -- ⰰ
+ category="ll",
+ description="GLAGOLITIC SMALL LETTER AZU",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C00,
+ unicodeslot=0x2C30,
},
[0x2C31]={
- ["category"]="ll",
- ["description"]="GLAGOLITIC SMALL LETTER BUKY",
- ["linebreak"]="al",
- ["uccode"]=0x2C01,
- ["unicodeslot"]=0x2C31, -- ⰱ
+ category="ll",
+ description="GLAGOLITIC SMALL LETTER BUKY",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C01,
+ unicodeslot=0x2C31,
},
[0x2C32]={
- ["category"]="ll",
- ["description"]="GLAGOLITIC SMALL LETTER VEDE",
- ["linebreak"]="al",
- ["uccode"]=0x2C02,
- ["unicodeslot"]=0x2C32, -- ⰲ
+ category="ll",
+ description="GLAGOLITIC SMALL LETTER VEDE",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C02,
+ unicodeslot=0x2C32,
},
[0x2C33]={
- ["category"]="ll",
- ["description"]="GLAGOLITIC SMALL LETTER GLAGOLI",
- ["linebreak"]="al",
- ["uccode"]=0x2C03,
- ["unicodeslot"]=0x2C33, -- ⰳ
+ category="ll",
+ description="GLAGOLITIC SMALL LETTER GLAGOLI",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C03,
+ unicodeslot=0x2C33,
},
[0x2C34]={
- ["category"]="ll",
- ["description"]="GLAGOLITIC SMALL LETTER DOBRO",
- ["linebreak"]="al",
- ["uccode"]=0x2C04,
- ["unicodeslot"]=0x2C34, -- ⰴ
+ category="ll",
+ description="GLAGOLITIC SMALL LETTER DOBRO",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C04,
+ unicodeslot=0x2C34,
},
[0x2C35]={
- ["category"]="ll",
- ["description"]="GLAGOLITIC SMALL LETTER YESTU",
- ["linebreak"]="al",
- ["uccode"]=0x2C05,
- ["unicodeslot"]=0x2C35, -- ⰵ
+ category="ll",
+ description="GLAGOLITIC SMALL LETTER YESTU",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C05,
+ unicodeslot=0x2C35,
},
[0x2C36]={
- ["category"]="ll",
- ["description"]="GLAGOLITIC SMALL LETTER ZHIVETE",
- ["linebreak"]="al",
- ["uccode"]=0x2C06,
- ["unicodeslot"]=0x2C36, -- ⰶ
+ category="ll",
+ description="GLAGOLITIC SMALL LETTER ZHIVETE",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C06,
+ unicodeslot=0x2C36,
},
[0x2C37]={
- ["category"]="ll",
- ["description"]="GLAGOLITIC SMALL LETTER DZELO",
- ["linebreak"]="al",
- ["uccode"]=0x2C07,
- ["unicodeslot"]=0x2C37, -- ⰷ
+ category="ll",
+ description="GLAGOLITIC SMALL LETTER DZELO",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C07,
+ unicodeslot=0x2C37,
},
[0x2C38]={
- ["category"]="ll",
- ["description"]="GLAGOLITIC SMALL LETTER ZEMLJA",
- ["linebreak"]="al",
- ["uccode"]=0x2C08,
- ["unicodeslot"]=0x2C38, -- ⰸ
+ category="ll",
+ description="GLAGOLITIC SMALL LETTER ZEMLJA",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C08,
+ unicodeslot=0x2C38,
},
[0x2C39]={
- ["category"]="ll",
- ["description"]="GLAGOLITIC SMALL LETTER IZHE",
- ["linebreak"]="al",
- ["uccode"]=0x2C09,
- ["unicodeslot"]=0x2C39, -- ⰹ
+ category="ll",
+ description="GLAGOLITIC SMALL LETTER IZHE",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C09,
+ unicodeslot=0x2C39,
},
[0x2C3A]={
- ["category"]="ll",
- ["description"]="GLAGOLITIC SMALL LETTER INITIAL IZHE",
- ["linebreak"]="al",
- ["uccode"]=0x2C0A,
- ["unicodeslot"]=0x2C3A, -- ⰺ
+ category="ll",
+ description="GLAGOLITIC SMALL LETTER INITIAL IZHE",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C0A,
+ unicodeslot=0x2C3A,
},
[0x2C3B]={
- ["category"]="ll",
- ["description"]="GLAGOLITIC SMALL LETTER I",
- ["linebreak"]="al",
- ["uccode"]=0x2C0B,
- ["unicodeslot"]=0x2C3B, -- ⰻ
+ category="ll",
+ description="GLAGOLITIC SMALL LETTER I",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C0B,
+ unicodeslot=0x2C3B,
},
[0x2C3C]={
- ["category"]="ll",
- ["description"]="GLAGOLITIC SMALL LETTER DJERVI",
- ["linebreak"]="al",
- ["uccode"]=0x2C0C,
- ["unicodeslot"]=0x2C3C, -- ⰼ
+ category="ll",
+ description="GLAGOLITIC SMALL LETTER DJERVI",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C0C,
+ unicodeslot=0x2C3C,
},
[0x2C3D]={
- ["category"]="ll",
- ["description"]="GLAGOLITIC SMALL LETTER KAKO",
- ["linebreak"]="al",
- ["uccode"]=0x2C0D,
- ["unicodeslot"]=0x2C3D, -- ⰽ
+ category="ll",
+ description="GLAGOLITIC SMALL LETTER KAKO",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C0D,
+ unicodeslot=0x2C3D,
},
[0x2C3E]={
- ["category"]="ll",
- ["description"]="GLAGOLITIC SMALL LETTER LJUDIJE",
- ["linebreak"]="al",
- ["uccode"]=0x2C0E,
- ["unicodeslot"]=0x2C3E, -- ⰾ
+ category="ll",
+ description="GLAGOLITIC SMALL LETTER LJUDIJE",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C0E,
+ unicodeslot=0x2C3E,
},
[0x2C3F]={
- ["category"]="ll",
- ["description"]="GLAGOLITIC SMALL LETTER MYSLITE",
- ["linebreak"]="al",
- ["uccode"]=0x2C0F,
- ["unicodeslot"]=0x2C3F, -- ⰿ
+ category="ll",
+ description="GLAGOLITIC SMALL LETTER MYSLITE",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C0F,
+ unicodeslot=0x2C3F,
},
[0x2C40]={
- ["category"]="ll",
- ["description"]="GLAGOLITIC SMALL LETTER NASHI",
- ["linebreak"]="al",
- ["uccode"]=0x2C10,
- ["unicodeslot"]=0x2C40, -- ⱀ
+ category="ll",
+ description="GLAGOLITIC SMALL LETTER NASHI",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C10,
+ unicodeslot=0x2C40,
},
[0x2C41]={
- ["category"]="ll",
- ["description"]="GLAGOLITIC SMALL LETTER ONU",
- ["linebreak"]="al",
- ["uccode"]=0x2C11,
- ["unicodeslot"]=0x2C41, -- ⱁ
+ category="ll",
+ description="GLAGOLITIC SMALL LETTER ONU",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C11,
+ unicodeslot=0x2C41,
},
[0x2C42]={
- ["category"]="ll",
- ["description"]="GLAGOLITIC SMALL LETTER POKOJI",
- ["linebreak"]="al",
- ["uccode"]=0x2C12,
- ["unicodeslot"]=0x2C42, -- ⱂ
+ category="ll",
+ description="GLAGOLITIC SMALL LETTER POKOJI",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C12,
+ unicodeslot=0x2C42,
},
[0x2C43]={
- ["category"]="ll",
- ["description"]="GLAGOLITIC SMALL LETTER RITSI",
- ["linebreak"]="al",
- ["uccode"]=0x2C13,
- ["unicodeslot"]=0x2C43, -- ⱃ
+ category="ll",
+ description="GLAGOLITIC SMALL LETTER RITSI",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C13,
+ unicodeslot=0x2C43,
},
[0x2C44]={
- ["category"]="ll",
- ["description"]="GLAGOLITIC SMALL LETTER SLOVO",
- ["linebreak"]="al",
- ["uccode"]=0x2C14,
- ["unicodeslot"]=0x2C44, -- ⱄ
+ category="ll",
+ description="GLAGOLITIC SMALL LETTER SLOVO",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C14,
+ unicodeslot=0x2C44,
},
[0x2C45]={
- ["category"]="ll",
- ["description"]="GLAGOLITIC SMALL LETTER TVRIDO",
- ["linebreak"]="al",
- ["uccode"]=0x2C15,
- ["unicodeslot"]=0x2C45, -- ⱅ
+ category="ll",
+ description="GLAGOLITIC SMALL LETTER TVRIDO",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C15,
+ unicodeslot=0x2C45,
},
[0x2C46]={
- ["category"]="ll",
- ["description"]="GLAGOLITIC SMALL LETTER UKU",
- ["linebreak"]="al",
- ["uccode"]=0x2C16,
- ["unicodeslot"]=0x2C46, -- ⱆ
+ category="ll",
+ description="GLAGOLITIC SMALL LETTER UKU",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C16,
+ unicodeslot=0x2C46,
},
[0x2C47]={
- ["category"]="ll",
- ["description"]="GLAGOLITIC SMALL LETTER FRITU",
- ["linebreak"]="al",
- ["uccode"]=0x2C17,
- ["unicodeslot"]=0x2C47, -- ⱇ
+ category="ll",
+ description="GLAGOLITIC SMALL LETTER FRITU",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C17,
+ unicodeslot=0x2C47,
},
[0x2C48]={
- ["category"]="ll",
- ["description"]="GLAGOLITIC SMALL LETTER HERU",
- ["linebreak"]="al",
- ["uccode"]=0x2C18,
- ["unicodeslot"]=0x2C48, -- ⱈ
+ category="ll",
+ description="GLAGOLITIC SMALL LETTER HERU",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C18,
+ unicodeslot=0x2C48,
},
[0x2C49]={
- ["category"]="ll",
- ["description"]="GLAGOLITIC SMALL LETTER OTU",
- ["linebreak"]="al",
- ["uccode"]=0x2C19,
- ["unicodeslot"]=0x2C49, -- ⱉ
+ category="ll",
+ description="GLAGOLITIC SMALL LETTER OTU",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C19,
+ unicodeslot=0x2C49,
},
[0x2C4A]={
- ["category"]="ll",
- ["description"]="GLAGOLITIC SMALL LETTER PE",
- ["linebreak"]="al",
- ["uccode"]=0x2C1A,
- ["unicodeslot"]=0x2C4A, -- ⱊ
+ category="ll",
+ description="GLAGOLITIC SMALL LETTER PE",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C1A,
+ unicodeslot=0x2C4A,
},
[0x2C4B]={
- ["category"]="ll",
- ["description"]="GLAGOLITIC SMALL LETTER SHTA",
- ["linebreak"]="al",
- ["uccode"]=0x2C1B,
- ["unicodeslot"]=0x2C4B, -- ⱋ
+ category="ll",
+ description="GLAGOLITIC SMALL LETTER SHTA",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C1B,
+ unicodeslot=0x2C4B,
},
[0x2C4C]={
- ["category"]="ll",
- ["description"]="GLAGOLITIC SMALL LETTER TSI",
- ["linebreak"]="al",
- ["uccode"]=0x2C1C,
- ["unicodeslot"]=0x2C4C, -- ⱌ
+ category="ll",
+ description="GLAGOLITIC SMALL LETTER TSI",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C1C,
+ unicodeslot=0x2C4C,
},
[0x2C4D]={
- ["category"]="ll",
- ["description"]="GLAGOLITIC SMALL LETTER CHRIVI",
- ["linebreak"]="al",
- ["uccode"]=0x2C1D,
- ["unicodeslot"]=0x2C4D, -- ⱍ
+ category="ll",
+ description="GLAGOLITIC SMALL LETTER CHRIVI",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C1D,
+ unicodeslot=0x2C4D,
},
[0x2C4E]={
- ["category"]="ll",
- ["description"]="GLAGOLITIC SMALL LETTER SHA",
- ["linebreak"]="al",
- ["uccode"]=0x2C1E,
- ["unicodeslot"]=0x2C4E, -- ⱎ
+ category="ll",
+ description="GLAGOLITIC SMALL LETTER SHA",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C1E,
+ unicodeslot=0x2C4E,
},
[0x2C4F]={
- ["category"]="ll",
- ["description"]="GLAGOLITIC SMALL LETTER YERU",
- ["linebreak"]="al",
- ["uccode"]=0x2C1F,
- ["unicodeslot"]=0x2C4F, -- ⱏ
+ category="ll",
+ description="GLAGOLITIC SMALL LETTER YERU",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C1F,
+ unicodeslot=0x2C4F,
},
[0x2C50]={
- ["category"]="ll",
- ["description"]="GLAGOLITIC SMALL LETTER YERI",
- ["linebreak"]="al",
- ["uccode"]=0x2C20,
- ["unicodeslot"]=0x2C50, -- ⱐ
+ category="ll",
+ description="GLAGOLITIC SMALL LETTER YERI",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C20,
+ unicodeslot=0x2C50,
},
[0x2C51]={
- ["category"]="ll",
- ["description"]="GLAGOLITIC SMALL LETTER YATI",
- ["linebreak"]="al",
- ["uccode"]=0x2C21,
- ["unicodeslot"]=0x2C51, -- ⱑ
+ category="ll",
+ description="GLAGOLITIC SMALL LETTER YATI",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C21,
+ unicodeslot=0x2C51,
},
[0x2C52]={
- ["category"]="ll",
- ["description"]="GLAGOLITIC SMALL LETTER SPIDERY HA",
- ["linebreak"]="al",
- ["uccode"]=0x2C22,
- ["unicodeslot"]=0x2C52, -- ⱒ
+ category="ll",
+ description="GLAGOLITIC SMALL LETTER SPIDERY HA",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C22,
+ unicodeslot=0x2C52,
},
[0x2C53]={
- ["category"]="ll",
- ["description"]="GLAGOLITIC SMALL LETTER YU",
- ["linebreak"]="al",
- ["uccode"]=0x2C23,
- ["unicodeslot"]=0x2C53, -- ⱓ
+ category="ll",
+ description="GLAGOLITIC SMALL LETTER YU",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C23,
+ unicodeslot=0x2C53,
},
[0x2C54]={
- ["category"]="ll",
- ["description"]="GLAGOLITIC SMALL LETTER SMALL YUS",
- ["linebreak"]="al",
- ["uccode"]=0x2C24,
- ["unicodeslot"]=0x2C54, -- ⱔ
+ category="ll",
+ description="GLAGOLITIC SMALL LETTER SMALL YUS",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C24,
+ unicodeslot=0x2C54,
},
[0x2C55]={
- ["category"]="ll",
- ["description"]="GLAGOLITIC SMALL LETTER SMALL YUS WITH TAIL",
- ["linebreak"]="al",
- ["uccode"]=0x2C25,
- ["unicodeslot"]=0x2C55, -- ⱕ
+ category="ll",
+ description="GLAGOLITIC SMALL LETTER SMALL YUS WITH TAIL",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C25,
+ unicodeslot=0x2C55,
},
[0x2C56]={
- ["category"]="ll",
- ["description"]="GLAGOLITIC SMALL LETTER YO",
- ["linebreak"]="al",
- ["uccode"]=0x2C26,
- ["unicodeslot"]=0x2C56, -- ⱖ
+ category="ll",
+ description="GLAGOLITIC SMALL LETTER YO",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C26,
+ unicodeslot=0x2C56,
},
[0x2C57]={
- ["category"]="ll",
- ["description"]="GLAGOLITIC SMALL LETTER IOTATED SMALL YUS",
- ["linebreak"]="al",
- ["uccode"]=0x2C27,
- ["unicodeslot"]=0x2C57, -- ⱗ
+ category="ll",
+ description="GLAGOLITIC SMALL LETTER IOTATED SMALL YUS",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C27,
+ unicodeslot=0x2C57,
},
[0x2C58]={
- ["category"]="ll",
- ["description"]="GLAGOLITIC SMALL LETTER BIG YUS",
- ["linebreak"]="al",
- ["uccode"]=0x2C28,
- ["unicodeslot"]=0x2C58, -- ⱘ
+ category="ll",
+ description="GLAGOLITIC SMALL LETTER BIG YUS",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C28,
+ unicodeslot=0x2C58,
},
[0x2C59]={
- ["category"]="ll",
- ["description"]="GLAGOLITIC SMALL LETTER IOTATED BIG YUS",
- ["linebreak"]="al",
- ["uccode"]=0x2C29,
- ["unicodeslot"]=0x2C59, -- ⱙ
+ category="ll",
+ description="GLAGOLITIC SMALL LETTER IOTATED BIG YUS",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C29,
+ unicodeslot=0x2C59,
},
[0x2C5A]={
- ["category"]="ll",
- ["description"]="GLAGOLITIC SMALL LETTER FITA",
- ["linebreak"]="al",
- ["uccode"]=0x2C2A,
- ["unicodeslot"]=0x2C5A, -- ⱚ
+ category="ll",
+ description="GLAGOLITIC SMALL LETTER FITA",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C2A,
+ unicodeslot=0x2C5A,
},
[0x2C5B]={
- ["category"]="ll",
- ["description"]="GLAGOLITIC SMALL LETTER IZHITSA",
- ["linebreak"]="al",
- ["uccode"]=0x2C2B,
- ["unicodeslot"]=0x2C5B, -- ⱛ
+ category="ll",
+ description="GLAGOLITIC SMALL LETTER IZHITSA",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C2B,
+ unicodeslot=0x2C5B,
},
[0x2C5C]={
- ["category"]="ll",
- ["description"]="GLAGOLITIC SMALL LETTER SHTAPIC",
- ["linebreak"]="al",
- ["uccode"]=0x2C2C,
- ["unicodeslot"]=0x2C5C, -- ⱜ
+ category="ll",
+ description="GLAGOLITIC SMALL LETTER SHTAPIC",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C2C,
+ unicodeslot=0x2C5C,
},
[0x2C5D]={
- ["category"]="ll",
- ["description"]="GLAGOLITIC SMALL LETTER TROKUTASTI A",
- ["linebreak"]="al",
- ["uccode"]=0x2C2D,
- ["unicodeslot"]=0x2C5D, -- ⱝ
+ category="ll",
+ description="GLAGOLITIC SMALL LETTER TROKUTASTI A",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C2D,
+ unicodeslot=0x2C5D,
},
[0x2C5E]={
- ["category"]="ll",
- ["description"]="GLAGOLITIC SMALL LETTER LATINATE MYSLITE",
- ["linebreak"]="al",
- ["uccode"]=0x2C2E,
- ["unicodeslot"]=0x2C5E, -- ⱞ
+ category="ll",
+ description="GLAGOLITIC SMALL LETTER LATINATE MYSLITE",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C2E,
+ unicodeslot=0x2C5E,
},
[0x2C60]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER L WITH DOUBLE BAR",
- ["lccode"]=0x2C61,
- ["linebreak"]="al",
- ["shcode"]=0x004C,
- ["unicodeslot"]=0x2C60, -- Ⱡ
+ category="lu",
+ description="LATIN CAPITAL LETTER L WITH DOUBLE BAR",
+ direction="l",
+ lccode=0x2C61,
+ linebreak="al",
+ shcode=0x004C,
+ unicodeslot=0x2C60,
},
[0x2C61]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER L WITH DOUBLE BAR",
- ["linebreak"]="al",
- ["shcode"]=0x006C,
- ["uccode"]=0x2C60,
- ["unicodeslot"]=0x2C61, -- ⱡ
+ category="ll",
+ description="LATIN SMALL LETTER L WITH DOUBLE BAR",
+ direction="l",
+ linebreak="al",
+ shcode=0x006C,
+ uccode=0x2C60,
+ unicodeslot=0x2C61,
},
[0x2C62]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER L WITH MIDDLE TILDE",
- ["lccode"]=0x026B,
- ["linebreak"]="al",
- ["shcode"]=0x004C,
- ["unicodeslot"]=0x2C62, -- Ɫ
+ category="lu",
+ description="LATIN CAPITAL LETTER L WITH MIDDLE TILDE",
+ direction="l",
+ lccode=0x026B,
+ linebreak="al",
+ shcode=0x004C,
+ unicodeslot=0x2C62,
},
[0x2C63]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER P WITH STROKE",
- ["lccode"]=0x1D7D,
- ["linebreak"]="al",
- ["shcode"]=0x0050,
- ["unicodeslot"]=0x2C63, -- Ᵽ
+ category="lu",
+ description="LATIN CAPITAL LETTER P WITH STROKE",
+ direction="l",
+ lccode=0x1D7D,
+ linebreak="al",
+ shcode=0x0050,
+ unicodeslot=0x2C63,
},
[0x2C64]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER R WITH TAIL",
- ["lccode"]=0x027D,
- ["linebreak"]="al",
- ["shcode"]=0x0052,
- ["unicodeslot"]=0x2C64, -- Ɽ
+ category="lu",
+ description="LATIN CAPITAL LETTER R WITH TAIL",
+ direction="l",
+ lccode=0x027D,
+ linebreak="al",
+ shcode=0x0052,
+ unicodeslot=0x2C64,
},
[0x2C65]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER A WITH STROKE",
- ["linebreak"]="al",
- ["shcode"]=0x0061,
- ["uccode"]=0x023A,
- ["unicodeslot"]=0x2C65, -- ⱥ
+ category="ll",
+ description="LATIN SMALL LETTER A WITH STROKE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0061,
+ uccode=0x023A,
+ unicodeslot=0x2C65,
},
[0x2C66]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER T WITH DIAGONAL STROKE",
- ["linebreak"]="al",
- ["shcode"]=0x0074,
- ["uccode"]=0x023E,
- ["unicodeslot"]=0x2C66, -- ⱦ
+ category="ll",
+ description="LATIN SMALL LETTER T WITH DIAGONAL STROKE",
+ direction="l",
+ linebreak="al",
+ shcode=0x0074,
+ uccode=0x023E,
+ unicodeslot=0x2C66,
},
[0x2C67]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER H WITH DESCENDER",
- ["lccode"]=0x2C68,
- ["linebreak"]="al",
- ["shcode"]=0x0048,
- ["unicodeslot"]=0x2C67, -- Ⱨ
+ category="lu",
+ description="LATIN CAPITAL LETTER H WITH DESCENDER",
+ direction="l",
+ lccode=0x2C68,
+ linebreak="al",
+ shcode=0x0048,
+ unicodeslot=0x2C67,
},
[0x2C68]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER H WITH DESCENDER",
- ["linebreak"]="al",
- ["shcode"]=0x0068,
- ["uccode"]=0x2C67,
- ["unicodeslot"]=0x2C68, -- ⱨ
+ category="ll",
+ description="LATIN SMALL LETTER H WITH DESCENDER",
+ direction="l",
+ linebreak="al",
+ shcode=0x0068,
+ uccode=0x2C67,
+ unicodeslot=0x2C68,
},
[0x2C69]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER K WITH DESCENDER",
- ["lccode"]=0x2C6A,
- ["linebreak"]="al",
- ["shcode"]=0x004B,
- ["unicodeslot"]=0x2C69, -- Ⱪ
+ category="lu",
+ description="LATIN CAPITAL LETTER K WITH DESCENDER",
+ direction="l",
+ lccode=0x2C6A,
+ linebreak="al",
+ shcode=0x004B,
+ unicodeslot=0x2C69,
},
[0x2C6A]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER K WITH DESCENDER",
- ["linebreak"]="al",
- ["shcode"]=0x006B,
- ["uccode"]=0x2C69,
- ["unicodeslot"]=0x2C6A, -- ⱪ
+ category="ll",
+ description="LATIN SMALL LETTER K WITH DESCENDER",
+ direction="l",
+ linebreak="al",
+ shcode=0x006B,
+ uccode=0x2C69,
+ unicodeslot=0x2C6A,
},
[0x2C6B]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER Z WITH DESCENDER",
- ["lccode"]=0x2C6C,
- ["linebreak"]="al",
- ["shcode"]=0x005A,
- ["unicodeslot"]=0x2C6B, -- Ⱬ
+ category="lu",
+ description="LATIN CAPITAL LETTER Z WITH DESCENDER",
+ direction="l",
+ lccode=0x2C6C,
+ linebreak="al",
+ shcode=0x005A,
+ unicodeslot=0x2C6B,
},
[0x2C6C]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER Z WITH DESCENDER",
- ["linebreak"]="al",
- ["shcode"]=0x007A,
- ["uccode"]=0x2C6B,
- ["unicodeslot"]=0x2C6C, -- ⱬ
+ category="ll",
+ description="LATIN SMALL LETTER Z WITH DESCENDER",
+ direction="l",
+ linebreak="al",
+ shcode=0x007A,
+ uccode=0x2C6B,
+ unicodeslot=0x2C6C,
},
[0x2C74]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER V WITH CURL",
- ["linebreak"]="al",
- ["shcode"]=0x0076,
- ["unicodeslot"]=0x2C74, -- ⱴ
+ category="ll",
+ description="LATIN SMALL LETTER V WITH CURL",
+ direction="l",
+ linebreak="al",
+ shcode=0x0076,
+ unicodeslot=0x2C74,
},
[0x2C75]={
- ["category"]="lu",
- ["description"]="LATIN CAPITAL LETTER HALF H",
- ["lccode"]=0x2C76,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C75, -- Ⱶ
+ category="lu",
+ description="LATIN CAPITAL LETTER HALF H",
+ direction="l",
+ lccode=0x2C76,
+ linebreak="al",
+ unicodeslot=0x2C75,
},
[0x2C76]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER HALF H",
- ["linebreak"]="al",
- ["uccode"]=0x2C75,
- ["unicodeslot"]=0x2C76, -- ⱶ
+ category="ll",
+ description="LATIN SMALL LETTER HALF H",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C75,
+ unicodeslot=0x2C76,
},
[0x2C77]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LETTER TAILLESS PHI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C77, -- ⱷ
+ category="ll",
+ description="LATIN SMALL LETTER TAILLESS PHI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2C77,
},
[0x2C80]={
- ["category"]="lu",
- ["description"]="COPTIC CAPITAL LETTER ALFA",
- ["lccode"]=0x2C81,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C80, -- Ⲁ
+ category="lu",
+ description="COPTIC CAPITAL LETTER ALFA",
+ direction="l",
+ lccode=0x2C81,
+ linebreak="al",
+ unicodeslot=0x2C80,
},
[0x2C81]={
- ["category"]="ll",
- ["description"]="COPTIC SMALL LETTER ALFA",
- ["linebreak"]="al",
- ["uccode"]=0x2C80,
- ["unicodeslot"]=0x2C81, -- ⲁ
+ category="ll",
+ description="COPTIC SMALL LETTER ALFA",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C80,
+ unicodeslot=0x2C81,
},
[0x2C82]={
- ["category"]="lu",
- ["description"]="COPTIC CAPITAL LETTER VIDA",
- ["lccode"]=0x2C83,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C82, -- Ⲃ
+ category="lu",
+ description="COPTIC CAPITAL LETTER VIDA",
+ direction="l",
+ lccode=0x2C83,
+ linebreak="al",
+ unicodeslot=0x2C82,
},
[0x2C83]={
- ["category"]="ll",
- ["description"]="COPTIC SMALL LETTER VIDA",
- ["linebreak"]="al",
- ["uccode"]=0x2C82,
- ["unicodeslot"]=0x2C83, -- ⲃ
+ category="ll",
+ description="COPTIC SMALL LETTER VIDA",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C82,
+ unicodeslot=0x2C83,
},
[0x2C84]={
- ["category"]="lu",
- ["description"]="COPTIC CAPITAL LETTER GAMMA",
- ["lccode"]=0x2C85,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C84, -- Ⲅ
+ category="lu",
+ description="COPTIC CAPITAL LETTER GAMMA",
+ direction="l",
+ lccode=0x2C85,
+ linebreak="al",
+ unicodeslot=0x2C84,
},
[0x2C85]={
- ["category"]="ll",
- ["description"]="COPTIC SMALL LETTER GAMMA",
- ["linebreak"]="al",
- ["uccode"]=0x2C84,
- ["unicodeslot"]=0x2C85, -- ⲅ
+ category="ll",
+ description="COPTIC SMALL LETTER GAMMA",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C84,
+ unicodeslot=0x2C85,
},
[0x2C86]={
- ["category"]="lu",
- ["description"]="COPTIC CAPITAL LETTER DALDA",
- ["lccode"]=0x2C87,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C86, -- Ⲇ
+ category="lu",
+ description="COPTIC CAPITAL LETTER DALDA",
+ direction="l",
+ lccode=0x2C87,
+ linebreak="al",
+ unicodeslot=0x2C86,
},
[0x2C87]={
- ["category"]="ll",
- ["description"]="COPTIC SMALL LETTER DALDA",
- ["linebreak"]="al",
- ["uccode"]=0x2C86,
- ["unicodeslot"]=0x2C87, -- ⲇ
+ category="ll",
+ description="COPTIC SMALL LETTER DALDA",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C86,
+ unicodeslot=0x2C87,
},
[0x2C88]={
- ["category"]="lu",
- ["description"]="COPTIC CAPITAL LETTER EIE",
- ["lccode"]=0x2C89,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C88, -- Ⲉ
+ category="lu",
+ description="COPTIC CAPITAL LETTER EIE",
+ direction="l",
+ lccode=0x2C89,
+ linebreak="al",
+ unicodeslot=0x2C88,
},
[0x2C89]={
- ["category"]="ll",
- ["description"]="COPTIC SMALL LETTER EIE",
- ["linebreak"]="al",
- ["uccode"]=0x2C88,
- ["unicodeslot"]=0x2C89, -- ⲉ
+ category="ll",
+ description="COPTIC SMALL LETTER EIE",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C88,
+ unicodeslot=0x2C89,
},
[0x2C8A]={
- ["category"]="lu",
- ["description"]="COPTIC CAPITAL LETTER SOU",
- ["lccode"]=0x2C8B,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C8A, -- Ⲋ
+ category="lu",
+ description="COPTIC CAPITAL LETTER SOU",
+ direction="l",
+ lccode=0x2C8B,
+ linebreak="al",
+ unicodeslot=0x2C8A,
},
[0x2C8B]={
- ["category"]="ll",
- ["description"]="COPTIC SMALL LETTER SOU",
- ["linebreak"]="al",
- ["uccode"]=0x2C8A,
- ["unicodeslot"]=0x2C8B, -- ⲋ
+ category="ll",
+ description="COPTIC SMALL LETTER SOU",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C8A,
+ unicodeslot=0x2C8B,
},
[0x2C8C]={
- ["category"]="lu",
- ["description"]="COPTIC CAPITAL LETTER ZATA",
- ["lccode"]=0x2C8D,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C8C, -- Ⲍ
+ category="lu",
+ description="COPTIC CAPITAL LETTER ZATA",
+ direction="l",
+ lccode=0x2C8D,
+ linebreak="al",
+ unicodeslot=0x2C8C,
},
[0x2C8D]={
- ["category"]="ll",
- ["description"]="COPTIC SMALL LETTER ZATA",
- ["linebreak"]="al",
- ["uccode"]=0x2C8C,
- ["unicodeslot"]=0x2C8D, -- ⲍ
+ category="ll",
+ description="COPTIC SMALL LETTER ZATA",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C8C,
+ unicodeslot=0x2C8D,
},
[0x2C8E]={
- ["category"]="lu",
- ["description"]="COPTIC CAPITAL LETTER HATE",
- ["lccode"]=0x2C8F,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C8E, -- Ⲏ
+ category="lu",
+ description="COPTIC CAPITAL LETTER HATE",
+ direction="l",
+ lccode=0x2C8F,
+ linebreak="al",
+ unicodeslot=0x2C8E,
},
[0x2C8F]={
- ["category"]="ll",
- ["description"]="COPTIC SMALL LETTER HATE",
- ["linebreak"]="al",
- ["uccode"]=0x2C8E,
- ["unicodeslot"]=0x2C8F, -- ⲏ
+ category="ll",
+ description="COPTIC SMALL LETTER HATE",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C8E,
+ unicodeslot=0x2C8F,
},
[0x2C90]={
- ["category"]="lu",
- ["description"]="COPTIC CAPITAL LETTER THETHE",
- ["lccode"]=0x2C91,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C90, -- Ⲑ
+ category="lu",
+ description="COPTIC CAPITAL LETTER THETHE",
+ direction="l",
+ lccode=0x2C91,
+ linebreak="al",
+ unicodeslot=0x2C90,
},
[0x2C91]={
- ["category"]="ll",
- ["description"]="COPTIC SMALL LETTER THETHE",
- ["linebreak"]="al",
- ["uccode"]=0x2C90,
- ["unicodeslot"]=0x2C91, -- ⲑ
+ category="ll",
+ description="COPTIC SMALL LETTER THETHE",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C90,
+ unicodeslot=0x2C91,
},
[0x2C92]={
- ["category"]="lu",
- ["description"]="COPTIC CAPITAL LETTER IAUDA",
- ["lccode"]=0x2C93,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C92, -- Ⲓ
+ category="lu",
+ description="COPTIC CAPITAL LETTER IAUDA",
+ direction="l",
+ lccode=0x2C93,
+ linebreak="al",
+ unicodeslot=0x2C92,
},
[0x2C93]={
- ["category"]="ll",
- ["description"]="COPTIC SMALL LETTER IAUDA",
- ["linebreak"]="al",
- ["uccode"]=0x2C92,
- ["unicodeslot"]=0x2C93, -- ⲓ
+ category="ll",
+ description="COPTIC SMALL LETTER IAUDA",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C92,
+ unicodeslot=0x2C93,
},
[0x2C94]={
- ["category"]="lu",
- ["description"]="COPTIC CAPITAL LETTER KAPA",
- ["lccode"]=0x2C95,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C94, -- Ⲕ
+ category="lu",
+ description="COPTIC CAPITAL LETTER KAPA",
+ direction="l",
+ lccode=0x2C95,
+ linebreak="al",
+ unicodeslot=0x2C94,
},
[0x2C95]={
- ["category"]="ll",
- ["description"]="COPTIC SMALL LETTER KAPA",
- ["linebreak"]="al",
- ["uccode"]=0x2C94,
- ["unicodeslot"]=0x2C95, -- ⲕ
+ category="ll",
+ description="COPTIC SMALL LETTER KAPA",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C94,
+ unicodeslot=0x2C95,
},
[0x2C96]={
- ["category"]="lu",
- ["description"]="COPTIC CAPITAL LETTER LAULA",
- ["lccode"]=0x2C97,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C96, -- Ⲗ
+ category="lu",
+ description="COPTIC CAPITAL LETTER LAULA",
+ direction="l",
+ lccode=0x2C97,
+ linebreak="al",
+ unicodeslot=0x2C96,
},
[0x2C97]={
- ["category"]="ll",
- ["description"]="COPTIC SMALL LETTER LAULA",
- ["linebreak"]="al",
- ["uccode"]=0x2C96,
- ["unicodeslot"]=0x2C97, -- ⲗ
+ category="ll",
+ description="COPTIC SMALL LETTER LAULA",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C96,
+ unicodeslot=0x2C97,
},
[0x2C98]={
- ["category"]="lu",
- ["description"]="COPTIC CAPITAL LETTER MI",
- ["lccode"]=0x2C99,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C98, -- Ⲙ
+ category="lu",
+ description="COPTIC CAPITAL LETTER MI",
+ direction="l",
+ lccode=0x2C99,
+ linebreak="al",
+ unicodeslot=0x2C98,
},
[0x2C99]={
- ["category"]="ll",
- ["description"]="COPTIC SMALL LETTER MI",
- ["linebreak"]="al",
- ["uccode"]=0x2C98,
- ["unicodeslot"]=0x2C99, -- ⲙ
+ category="ll",
+ description="COPTIC SMALL LETTER MI",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C98,
+ unicodeslot=0x2C99,
},
[0x2C9A]={
- ["category"]="lu",
- ["description"]="COPTIC CAPITAL LETTER NI",
- ["lccode"]=0x2C9B,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C9A, -- Ⲛ
+ category="lu",
+ description="COPTIC CAPITAL LETTER NI",
+ direction="l",
+ lccode=0x2C9B,
+ linebreak="al",
+ unicodeslot=0x2C9A,
},
[0x2C9B]={
- ["category"]="ll",
- ["description"]="COPTIC SMALL LETTER NI",
- ["linebreak"]="al",
- ["uccode"]=0x2C9A,
- ["unicodeslot"]=0x2C9B, -- ⲛ
+ category="ll",
+ description="COPTIC SMALL LETTER NI",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C9A,
+ unicodeslot=0x2C9B,
},
[0x2C9C]={
- ["category"]="lu",
- ["description"]="COPTIC CAPITAL LETTER KSI",
- ["lccode"]=0x2C9D,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C9C, -- Ⲝ
+ category="lu",
+ description="COPTIC CAPITAL LETTER KSI",
+ direction="l",
+ lccode=0x2C9D,
+ linebreak="al",
+ unicodeslot=0x2C9C,
},
[0x2C9D]={
- ["category"]="ll",
- ["description"]="COPTIC SMALL LETTER KSI",
- ["linebreak"]="al",
- ["uccode"]=0x2C9C,
- ["unicodeslot"]=0x2C9D, -- ⲝ
+ category="ll",
+ description="COPTIC SMALL LETTER KSI",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C9C,
+ unicodeslot=0x2C9D,
},
[0x2C9E]={
- ["category"]="lu",
- ["description"]="COPTIC CAPITAL LETTER O",
- ["lccode"]=0x2C9F,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2C9E, -- Ⲟ
+ category="lu",
+ description="COPTIC CAPITAL LETTER O",
+ direction="l",
+ lccode=0x2C9F,
+ linebreak="al",
+ unicodeslot=0x2C9E,
},
[0x2C9F]={
- ["category"]="ll",
- ["description"]="COPTIC SMALL LETTER O",
- ["linebreak"]="al",
- ["uccode"]=0x2C9E,
- ["unicodeslot"]=0x2C9F, -- ⲟ
+ category="ll",
+ description="COPTIC SMALL LETTER O",
+ direction="l",
+ linebreak="al",
+ uccode=0x2C9E,
+ unicodeslot=0x2C9F,
},
[0x2CA0]={
- ["category"]="lu",
- ["description"]="COPTIC CAPITAL LETTER PI",
- ["lccode"]=0x2CA1,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2CA0, -- Ⲡ
+ category="lu",
+ description="COPTIC CAPITAL LETTER PI",
+ direction="l",
+ lccode=0x2CA1,
+ linebreak="al",
+ unicodeslot=0x2CA0,
},
[0x2CA1]={
- ["category"]="ll",
- ["description"]="COPTIC SMALL LETTER PI",
- ["linebreak"]="al",
- ["uccode"]=0x2CA0,
- ["unicodeslot"]=0x2CA1, -- ⲡ
+ category="ll",
+ description="COPTIC SMALL LETTER PI",
+ direction="l",
+ linebreak="al",
+ uccode=0x2CA0,
+ unicodeslot=0x2CA1,
},
[0x2CA2]={
- ["category"]="lu",
- ["description"]="COPTIC CAPITAL LETTER RO",
- ["lccode"]=0x2CA3,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2CA2, -- Ⲣ
+ category="lu",
+ description="COPTIC CAPITAL LETTER RO",
+ direction="l",
+ lccode=0x2CA3,
+ linebreak="al",
+ unicodeslot=0x2CA2,
},
[0x2CA3]={
- ["category"]="ll",
- ["description"]="COPTIC SMALL LETTER RO",
- ["linebreak"]="al",
- ["uccode"]=0x2CA2,
- ["unicodeslot"]=0x2CA3, -- ⲣ
+ category="ll",
+ description="COPTIC SMALL LETTER RO",
+ direction="l",
+ linebreak="al",
+ uccode=0x2CA2,
+ unicodeslot=0x2CA3,
},
[0x2CA4]={
- ["category"]="lu",
- ["description"]="COPTIC CAPITAL LETTER SIMA",
- ["lccode"]=0x2CA5,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2CA4, -- Ⲥ
+ category="lu",
+ description="COPTIC CAPITAL LETTER SIMA",
+ direction="l",
+ lccode=0x2CA5,
+ linebreak="al",
+ unicodeslot=0x2CA4,
},
[0x2CA5]={
- ["category"]="ll",
- ["description"]="COPTIC SMALL LETTER SIMA",
- ["linebreak"]="al",
- ["uccode"]=0x2CA4,
- ["unicodeslot"]=0x2CA5, -- ⲥ
+ category="ll",
+ description="COPTIC SMALL LETTER SIMA",
+ direction="l",
+ linebreak="al",
+ uccode=0x2CA4,
+ unicodeslot=0x2CA5,
},
[0x2CA6]={
- ["category"]="lu",
- ["description"]="COPTIC CAPITAL LETTER TAU",
- ["lccode"]=0x2CA7,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2CA6, -- Ⲧ
+ category="lu",
+ description="COPTIC CAPITAL LETTER TAU",
+ direction="l",
+ lccode=0x2CA7,
+ linebreak="al",
+ unicodeslot=0x2CA6,
},
[0x2CA7]={
- ["category"]="ll",
- ["description"]="COPTIC SMALL LETTER TAU",
- ["linebreak"]="al",
- ["uccode"]=0x2CA6,
- ["unicodeslot"]=0x2CA7, -- ⲧ
+ category="ll",
+ description="COPTIC SMALL LETTER TAU",
+ direction="l",
+ linebreak="al",
+ uccode=0x2CA6,
+ unicodeslot=0x2CA7,
},
[0x2CA8]={
- ["category"]="lu",
- ["description"]="COPTIC CAPITAL LETTER UA",
- ["lccode"]=0x2CA9,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2CA8, -- Ⲩ
+ category="lu",
+ description="COPTIC CAPITAL LETTER UA",
+ direction="l",
+ lccode=0x2CA9,
+ linebreak="al",
+ unicodeslot=0x2CA8,
},
[0x2CA9]={
- ["category"]="ll",
- ["description"]="COPTIC SMALL LETTER UA",
- ["linebreak"]="al",
- ["uccode"]=0x2CA8,
- ["unicodeslot"]=0x2CA9, -- ⲩ
+ category="ll",
+ description="COPTIC SMALL LETTER UA",
+ direction="l",
+ linebreak="al",
+ uccode=0x2CA8,
+ unicodeslot=0x2CA9,
},
[0x2CAA]={
- ["category"]="lu",
- ["description"]="COPTIC CAPITAL LETTER FI",
- ["lccode"]=0x2CAB,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2CAA, -- Ⲫ
+ category="lu",
+ description="COPTIC CAPITAL LETTER FI",
+ direction="l",
+ lccode=0x2CAB,
+ linebreak="al",
+ unicodeslot=0x2CAA,
},
[0x2CAB]={
- ["category"]="ll",
- ["description"]="COPTIC SMALL LETTER FI",
- ["linebreak"]="al",
- ["uccode"]=0x2CAA,
- ["unicodeslot"]=0x2CAB, -- ⲫ
+ category="ll",
+ description="COPTIC SMALL LETTER FI",
+ direction="l",
+ linebreak="al",
+ uccode=0x2CAA,
+ unicodeslot=0x2CAB,
},
[0x2CAC]={
- ["category"]="lu",
- ["description"]="COPTIC CAPITAL LETTER KHI",
- ["lccode"]=0x2CAD,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2CAC, -- Ⲭ
+ category="lu",
+ description="COPTIC CAPITAL LETTER KHI",
+ direction="l",
+ lccode=0x2CAD,
+ linebreak="al",
+ unicodeslot=0x2CAC,
},
[0x2CAD]={
- ["category"]="ll",
- ["description"]="COPTIC SMALL LETTER KHI",
- ["linebreak"]="al",
- ["uccode"]=0x2CAC,
- ["unicodeslot"]=0x2CAD, -- ⲭ
+ category="ll",
+ description="COPTIC SMALL LETTER KHI",
+ direction="l",
+ linebreak="al",
+ uccode=0x2CAC,
+ unicodeslot=0x2CAD,
},
[0x2CAE]={
- ["category"]="lu",
- ["description"]="COPTIC CAPITAL LETTER PSI",
- ["lccode"]=0x2CAF,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2CAE, -- Ⲯ
+ category="lu",
+ description="COPTIC CAPITAL LETTER PSI",
+ direction="l",
+ lccode=0x2CAF,
+ linebreak="al",
+ unicodeslot=0x2CAE,
},
[0x2CAF]={
- ["category"]="ll",
- ["description"]="COPTIC SMALL LETTER PSI",
- ["linebreak"]="al",
- ["uccode"]=0x2CAE,
- ["unicodeslot"]=0x2CAF, -- ⲯ
+ category="ll",
+ description="COPTIC SMALL LETTER PSI",
+ direction="l",
+ linebreak="al",
+ uccode=0x2CAE,
+ unicodeslot=0x2CAF,
},
[0x2CB0]={
- ["category"]="lu",
- ["description"]="COPTIC CAPITAL LETTER OOU",
- ["lccode"]=0x2CB1,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2CB0, -- Ⲱ
+ category="lu",
+ description="COPTIC CAPITAL LETTER OOU",
+ direction="l",
+ lccode=0x2CB1,
+ linebreak="al",
+ unicodeslot=0x2CB0,
},
[0x2CB1]={
- ["category"]="ll",
- ["description"]="COPTIC SMALL LETTER OOU",
- ["linebreak"]="al",
- ["uccode"]=0x2CB0,
- ["unicodeslot"]=0x2CB1, -- ⲱ
+ category="ll",
+ description="COPTIC SMALL LETTER OOU",
+ direction="l",
+ linebreak="al",
+ uccode=0x2CB0,
+ unicodeslot=0x2CB1,
},
[0x2CB2]={
- ["category"]="lu",
- ["description"]="COPTIC CAPITAL LETTER DIALECT-P ALEF",
- ["lccode"]=0x2CB3,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2CB2, -- Ⲳ
+ category="lu",
+ description="COPTIC CAPITAL LETTER DIALECT-P ALEF",
+ direction="l",
+ lccode=0x2CB3,
+ linebreak="al",
+ unicodeslot=0x2CB2,
},
[0x2CB3]={
- ["category"]="ll",
- ["description"]="COPTIC SMALL LETTER DIALECT-P ALEF",
- ["linebreak"]="al",
- ["uccode"]=0x2CB2,
- ["unicodeslot"]=0x2CB3, -- ⲳ
+ category="ll",
+ description="COPTIC SMALL LETTER DIALECT-P ALEF",
+ direction="l",
+ linebreak="al",
+ uccode=0x2CB2,
+ unicodeslot=0x2CB3,
},
[0x2CB4]={
- ["category"]="lu",
- ["description"]="COPTIC CAPITAL LETTER OLD COPTIC AIN",
- ["lccode"]=0x2CB5,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2CB4, -- Ⲵ
+ category="lu",
+ description="COPTIC CAPITAL LETTER OLD COPTIC AIN",
+ direction="l",
+ lccode=0x2CB5,
+ linebreak="al",
+ unicodeslot=0x2CB4,
},
[0x2CB5]={
- ["category"]="ll",
- ["description"]="COPTIC SMALL LETTER OLD COPTIC AIN",
- ["linebreak"]="al",
- ["uccode"]=0x2CB4,
- ["unicodeslot"]=0x2CB5, -- ⲵ
+ category="ll",
+ description="COPTIC SMALL LETTER OLD COPTIC AIN",
+ direction="l",
+ linebreak="al",
+ uccode=0x2CB4,
+ unicodeslot=0x2CB5,
},
[0x2CB6]={
- ["category"]="lu",
- ["description"]="COPTIC CAPITAL LETTER CRYPTOGRAMMIC EIE",
- ["lccode"]=0x2CB7,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2CB6, -- Ⲷ
+ category="lu",
+ description="COPTIC CAPITAL LETTER CRYPTOGRAMMIC EIE",
+ direction="l",
+ lccode=0x2CB7,
+ linebreak="al",
+ unicodeslot=0x2CB6,
},
[0x2CB7]={
- ["category"]="ll",
- ["description"]="COPTIC SMALL LETTER CRYPTOGRAMMIC EIE",
- ["linebreak"]="al",
- ["uccode"]=0x2CB6,
- ["unicodeslot"]=0x2CB7, -- ⲷ
+ category="ll",
+ description="COPTIC SMALL LETTER CRYPTOGRAMMIC EIE",
+ direction="l",
+ linebreak="al",
+ uccode=0x2CB6,
+ unicodeslot=0x2CB7,
},
[0x2CB8]={
- ["category"]="lu",
- ["description"]="COPTIC CAPITAL LETTER DIALECT-P KAPA",
- ["lccode"]=0x2CB9,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2CB8, -- Ⲹ
+ category="lu",
+ description="COPTIC CAPITAL LETTER DIALECT-P KAPA",
+ direction="l",
+ lccode=0x2CB9,
+ linebreak="al",
+ unicodeslot=0x2CB8,
},
[0x2CB9]={
- ["category"]="ll",
- ["description"]="COPTIC SMALL LETTER DIALECT-P KAPA",
- ["linebreak"]="al",
- ["uccode"]=0x2CB8,
- ["unicodeslot"]=0x2CB9, -- ⲹ
+ category="ll",
+ description="COPTIC SMALL LETTER DIALECT-P KAPA",
+ direction="l",
+ linebreak="al",
+ uccode=0x2CB8,
+ unicodeslot=0x2CB9,
},
[0x2CBA]={
- ["category"]="lu",
- ["description"]="COPTIC CAPITAL LETTER DIALECT-P NI",
- ["lccode"]=0x2CBB,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2CBA, -- Ⲻ
+ category="lu",
+ description="COPTIC CAPITAL LETTER DIALECT-P NI",
+ direction="l",
+ lccode=0x2CBB,
+ linebreak="al",
+ unicodeslot=0x2CBA,
},
[0x2CBB]={
- ["category"]="ll",
- ["description"]="COPTIC SMALL LETTER DIALECT-P NI",
- ["linebreak"]="al",
- ["uccode"]=0x2CBA,
- ["unicodeslot"]=0x2CBB, -- ⲻ
+ category="ll",
+ description="COPTIC SMALL LETTER DIALECT-P NI",
+ direction="l",
+ linebreak="al",
+ uccode=0x2CBA,
+ unicodeslot=0x2CBB,
},
[0x2CBC]={
- ["category"]="lu",
- ["description"]="COPTIC CAPITAL LETTER CRYPTOGRAMMIC NI",
- ["lccode"]=0x2CBD,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2CBC, -- Ⲽ
+ category="lu",
+ description="COPTIC CAPITAL LETTER CRYPTOGRAMMIC NI",
+ direction="l",
+ lccode=0x2CBD,
+ linebreak="al",
+ unicodeslot=0x2CBC,
},
[0x2CBD]={
- ["category"]="ll",
- ["description"]="COPTIC SMALL LETTER CRYPTOGRAMMIC NI",
- ["linebreak"]="al",
- ["uccode"]=0x2CBC,
- ["unicodeslot"]=0x2CBD, -- ⲽ
+ category="ll",
+ description="COPTIC SMALL LETTER CRYPTOGRAMMIC NI",
+ direction="l",
+ linebreak="al",
+ uccode=0x2CBC,
+ unicodeslot=0x2CBD,
},
[0x2CBE]={
- ["category"]="lu",
- ["description"]="COPTIC CAPITAL LETTER OLD COPTIC OOU",
- ["lccode"]=0x2CBF,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2CBE, -- Ⲿ
+ category="lu",
+ description="COPTIC CAPITAL LETTER OLD COPTIC OOU",
+ direction="l",
+ lccode=0x2CBF,
+ linebreak="al",
+ unicodeslot=0x2CBE,
},
[0x2CBF]={
- ["category"]="ll",
- ["description"]="COPTIC SMALL LETTER OLD COPTIC OOU",
- ["linebreak"]="al",
- ["uccode"]=0x2CBE,
- ["unicodeslot"]=0x2CBF, -- ⲿ
+ category="ll",
+ description="COPTIC SMALL LETTER OLD COPTIC OOU",
+ direction="l",
+ linebreak="al",
+ uccode=0x2CBE,
+ unicodeslot=0x2CBF,
},
[0x2CC0]={
- ["category"]="lu",
- ["description"]="COPTIC CAPITAL LETTER SAMPI",
- ["lccode"]=0x2CC1,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2CC0, -- Ⳁ
+ category="lu",
+ description="COPTIC CAPITAL LETTER SAMPI",
+ direction="l",
+ lccode=0x2CC1,
+ linebreak="al",
+ unicodeslot=0x2CC0,
},
[0x2CC1]={
- ["category"]="ll",
- ["description"]="COPTIC SMALL LETTER SAMPI",
- ["linebreak"]="al",
- ["uccode"]=0x2CC0,
- ["unicodeslot"]=0x2CC1, -- ⳁ
+ category="ll",
+ description="COPTIC SMALL LETTER SAMPI",
+ direction="l",
+ linebreak="al",
+ uccode=0x2CC0,
+ unicodeslot=0x2CC1,
},
[0x2CC2]={
- ["category"]="lu",
- ["description"]="COPTIC CAPITAL LETTER CROSSED SHEI",
- ["lccode"]=0x2CC3,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2CC2, -- Ⳃ
+ category="lu",
+ description="COPTIC CAPITAL LETTER CROSSED SHEI",
+ direction="l",
+ lccode=0x2CC3,
+ linebreak="al",
+ unicodeslot=0x2CC2,
},
[0x2CC3]={
- ["category"]="ll",
- ["description"]="COPTIC SMALL LETTER CROSSED SHEI",
- ["linebreak"]="al",
- ["uccode"]=0x2CC2,
- ["unicodeslot"]=0x2CC3, -- ⳃ
+ category="ll",
+ description="COPTIC SMALL LETTER CROSSED SHEI",
+ direction="l",
+ linebreak="al",
+ uccode=0x2CC2,
+ unicodeslot=0x2CC3,
},
[0x2CC4]={
- ["category"]="lu",
- ["description"]="COPTIC CAPITAL LETTER OLD COPTIC SHEI",
- ["lccode"]=0x2CC5,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2CC4, -- Ⳅ
+ category="lu",
+ description="COPTIC CAPITAL LETTER OLD COPTIC SHEI",
+ direction="l",
+ lccode=0x2CC5,
+ linebreak="al",
+ unicodeslot=0x2CC4,
},
[0x2CC5]={
- ["category"]="ll",
- ["description"]="COPTIC SMALL LETTER OLD COPTIC SHEI",
- ["linebreak"]="al",
- ["uccode"]=0x2CC4,
- ["unicodeslot"]=0x2CC5, -- ⳅ
+ category="ll",
+ description="COPTIC SMALL LETTER OLD COPTIC SHEI",
+ direction="l",
+ linebreak="al",
+ uccode=0x2CC4,
+ unicodeslot=0x2CC5,
},
[0x2CC6]={
- ["category"]="lu",
- ["description"]="COPTIC CAPITAL LETTER OLD COPTIC ESH",
- ["lccode"]=0x2CC7,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2CC6, -- Ⳇ
+ category="lu",
+ description="COPTIC CAPITAL LETTER OLD COPTIC ESH",
+ direction="l",
+ lccode=0x2CC7,
+ linebreak="al",
+ unicodeslot=0x2CC6,
},
[0x2CC7]={
- ["category"]="ll",
- ["description"]="COPTIC SMALL LETTER OLD COPTIC ESH",
- ["linebreak"]="al",
- ["uccode"]=0x2CC6,
- ["unicodeslot"]=0x2CC7, -- ⳇ
+ category="ll",
+ description="COPTIC SMALL LETTER OLD COPTIC ESH",
+ direction="l",
+ linebreak="al",
+ uccode=0x2CC6,
+ unicodeslot=0x2CC7,
},
[0x2CC8]={
- ["category"]="lu",
- ["description"]="COPTIC CAPITAL LETTER AKHMIMIC KHEI",
- ["lccode"]=0x2CC9,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2CC8, -- Ⳉ
+ category="lu",
+ description="COPTIC CAPITAL LETTER AKHMIMIC KHEI",
+ direction="l",
+ lccode=0x2CC9,
+ linebreak="al",
+ unicodeslot=0x2CC8,
},
[0x2CC9]={
- ["category"]="ll",
- ["description"]="COPTIC SMALL LETTER AKHMIMIC KHEI",
- ["linebreak"]="al",
- ["uccode"]=0x2CC8,
- ["unicodeslot"]=0x2CC9, -- ⳉ
+ category="ll",
+ description="COPTIC SMALL LETTER AKHMIMIC KHEI",
+ direction="l",
+ linebreak="al",
+ uccode=0x2CC8,
+ unicodeslot=0x2CC9,
},
[0x2CCA]={
- ["category"]="lu",
- ["description"]="COPTIC CAPITAL LETTER DIALECT-P HORI",
- ["lccode"]=0x2CCB,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2CCA, -- Ⳋ
+ category="lu",
+ description="COPTIC CAPITAL LETTER DIALECT-P HORI",
+ direction="l",
+ lccode=0x2CCB,
+ linebreak="al",
+ unicodeslot=0x2CCA,
},
[0x2CCB]={
- ["category"]="ll",
- ["description"]="COPTIC SMALL LETTER DIALECT-P HORI",
- ["linebreak"]="al",
- ["uccode"]=0x2CCA,
- ["unicodeslot"]=0x2CCB, -- ⳋ
+ category="ll",
+ description="COPTIC SMALL LETTER DIALECT-P HORI",
+ direction="l",
+ linebreak="al",
+ uccode=0x2CCA,
+ unicodeslot=0x2CCB,
},
[0x2CCC]={
- ["category"]="lu",
- ["description"]="COPTIC CAPITAL LETTER OLD COPTIC HORI",
- ["lccode"]=0x2CCD,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2CCC, -- Ⳍ
+ category="lu",
+ description="COPTIC CAPITAL LETTER OLD COPTIC HORI",
+ direction="l",
+ lccode=0x2CCD,
+ linebreak="al",
+ unicodeslot=0x2CCC,
},
[0x2CCD]={
- ["category"]="ll",
- ["description"]="COPTIC SMALL LETTER OLD COPTIC HORI",
- ["linebreak"]="al",
- ["uccode"]=0x2CCC,
- ["unicodeslot"]=0x2CCD, -- ⳍ
+ category="ll",
+ description="COPTIC SMALL LETTER OLD COPTIC HORI",
+ direction="l",
+ linebreak="al",
+ uccode=0x2CCC,
+ unicodeslot=0x2CCD,
},
[0x2CCE]={
- ["category"]="lu",
- ["description"]="COPTIC CAPITAL LETTER OLD COPTIC HA",
- ["lccode"]=0x2CCF,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2CCE, -- Ⳏ
+ category="lu",
+ description="COPTIC CAPITAL LETTER OLD COPTIC HA",
+ direction="l",
+ lccode=0x2CCF,
+ linebreak="al",
+ unicodeslot=0x2CCE,
},
[0x2CCF]={
- ["category"]="ll",
- ["description"]="COPTIC SMALL LETTER OLD COPTIC HA",
- ["linebreak"]="al",
- ["uccode"]=0x2CCE,
- ["unicodeslot"]=0x2CCF, -- ⳏ
+ category="ll",
+ description="COPTIC SMALL LETTER OLD COPTIC HA",
+ direction="l",
+ linebreak="al",
+ uccode=0x2CCE,
+ unicodeslot=0x2CCF,
},
[0x2CD0]={
- ["category"]="lu",
- ["description"]="COPTIC CAPITAL LETTER L-SHAPED HA",
- ["lccode"]=0x2CD1,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2CD0, -- Ⳑ
+ category="lu",
+ description="COPTIC CAPITAL LETTER L-SHAPED HA",
+ direction="l",
+ lccode=0x2CD1,
+ linebreak="al",
+ unicodeslot=0x2CD0,
},
[0x2CD1]={
- ["category"]="ll",
- ["description"]="COPTIC SMALL LETTER L-SHAPED HA",
- ["linebreak"]="al",
- ["uccode"]=0x2CD0,
- ["unicodeslot"]=0x2CD1, -- ⳑ
+ category="ll",
+ description="COPTIC SMALL LETTER L-SHAPED HA",
+ direction="l",
+ linebreak="al",
+ uccode=0x2CD0,
+ unicodeslot=0x2CD1,
},
[0x2CD2]={
- ["category"]="lu",
- ["description"]="COPTIC CAPITAL LETTER OLD COPTIC HEI",
- ["lccode"]=0x2CD3,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2CD2, -- Ⳓ
+ category="lu",
+ description="COPTIC CAPITAL LETTER OLD COPTIC HEI",
+ direction="l",
+ lccode=0x2CD3,
+ linebreak="al",
+ unicodeslot=0x2CD2,
},
[0x2CD3]={
- ["category"]="ll",
- ["description"]="COPTIC SMALL LETTER OLD COPTIC HEI",
- ["linebreak"]="al",
- ["uccode"]=0x2CD2,
- ["unicodeslot"]=0x2CD3, -- ⳓ
+ category="ll",
+ description="COPTIC SMALL LETTER OLD COPTIC HEI",
+ direction="l",
+ linebreak="al",
+ uccode=0x2CD2,
+ unicodeslot=0x2CD3,
},
[0x2CD4]={
- ["category"]="lu",
- ["description"]="COPTIC CAPITAL LETTER OLD COPTIC HAT",
- ["lccode"]=0x2CD5,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2CD4, -- Ⳕ
+ category="lu",
+ description="COPTIC CAPITAL LETTER OLD COPTIC HAT",
+ direction="l",
+ lccode=0x2CD5,
+ linebreak="al",
+ unicodeslot=0x2CD4,
},
[0x2CD5]={
- ["category"]="ll",
- ["description"]="COPTIC SMALL LETTER OLD COPTIC HAT",
- ["linebreak"]="al",
- ["uccode"]=0x2CD4,
- ["unicodeslot"]=0x2CD5, -- ⳕ
+ category="ll",
+ description="COPTIC SMALL LETTER OLD COPTIC HAT",
+ direction="l",
+ linebreak="al",
+ uccode=0x2CD4,
+ unicodeslot=0x2CD5,
},
[0x2CD6]={
- ["category"]="lu",
- ["description"]="COPTIC CAPITAL LETTER OLD COPTIC GANGIA",
- ["lccode"]=0x2CD7,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2CD6, -- Ⳗ
+ category="lu",
+ description="COPTIC CAPITAL LETTER OLD COPTIC GANGIA",
+ direction="l",
+ lccode=0x2CD7,
+ linebreak="al",
+ unicodeslot=0x2CD6,
},
[0x2CD7]={
- ["category"]="ll",
- ["description"]="COPTIC SMALL LETTER OLD COPTIC GANGIA",
- ["linebreak"]="al",
- ["uccode"]=0x2CD6,
- ["unicodeslot"]=0x2CD7, -- ⳗ
+ category="ll",
+ description="COPTIC SMALL LETTER OLD COPTIC GANGIA",
+ direction="l",
+ linebreak="al",
+ uccode=0x2CD6,
+ unicodeslot=0x2CD7,
},
[0x2CD8]={
- ["category"]="lu",
- ["description"]="COPTIC CAPITAL LETTER OLD COPTIC DJA",
- ["lccode"]=0x2CD9,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2CD8, -- Ⳙ
+ category="lu",
+ description="COPTIC CAPITAL LETTER OLD COPTIC DJA",
+ direction="l",
+ lccode=0x2CD9,
+ linebreak="al",
+ unicodeslot=0x2CD8,
},
[0x2CD9]={
- ["category"]="ll",
- ["description"]="COPTIC SMALL LETTER OLD COPTIC DJA",
- ["linebreak"]="al",
- ["uccode"]=0x2CD8,
- ["unicodeslot"]=0x2CD9, -- ⳙ
+ category="ll",
+ description="COPTIC SMALL LETTER OLD COPTIC DJA",
+ direction="l",
+ linebreak="al",
+ uccode=0x2CD8,
+ unicodeslot=0x2CD9,
},
[0x2CDA]={
- ["category"]="lu",
- ["description"]="COPTIC CAPITAL LETTER OLD COPTIC SHIMA",
- ["lccode"]=0x2CDB,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2CDA, -- Ⳛ
+ category="lu",
+ description="COPTIC CAPITAL LETTER OLD COPTIC SHIMA",
+ direction="l",
+ lccode=0x2CDB,
+ linebreak="al",
+ unicodeslot=0x2CDA,
},
[0x2CDB]={
- ["category"]="ll",
- ["description"]="COPTIC SMALL LETTER OLD COPTIC SHIMA",
- ["linebreak"]="al",
- ["uccode"]=0x2CDA,
- ["unicodeslot"]=0x2CDB, -- ⳛ
+ category="ll",
+ description="COPTIC SMALL LETTER OLD COPTIC SHIMA",
+ direction="l",
+ linebreak="al",
+ uccode=0x2CDA,
+ unicodeslot=0x2CDB,
},
[0x2CDC]={
- ["category"]="lu",
- ["description"]="COPTIC CAPITAL LETTER OLD NUBIAN SHIMA",
- ["lccode"]=0x2CDD,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2CDC, -- Ⳝ
+ category="lu",
+ description="COPTIC CAPITAL LETTER OLD NUBIAN SHIMA",
+ direction="l",
+ lccode=0x2CDD,
+ linebreak="al",
+ unicodeslot=0x2CDC,
},
[0x2CDD]={
- ["category"]="ll",
- ["description"]="COPTIC SMALL LETTER OLD NUBIAN SHIMA",
- ["linebreak"]="al",
- ["uccode"]=0x2CDC,
- ["unicodeslot"]=0x2CDD, -- ⳝ
+ category="ll",
+ description="COPTIC SMALL LETTER OLD NUBIAN SHIMA",
+ direction="l",
+ linebreak="al",
+ uccode=0x2CDC,
+ unicodeslot=0x2CDD,
},
[0x2CDE]={
- ["category"]="lu",
- ["description"]="COPTIC CAPITAL LETTER OLD NUBIAN NGI",
- ["lccode"]=0x2CDF,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2CDE, -- Ⳟ
+ category="lu",
+ description="COPTIC CAPITAL LETTER OLD NUBIAN NGI",
+ direction="l",
+ lccode=0x2CDF,
+ linebreak="al",
+ unicodeslot=0x2CDE,
},
[0x2CDF]={
- ["category"]="ll",
- ["description"]="COPTIC SMALL LETTER OLD NUBIAN NGI",
- ["linebreak"]="al",
- ["uccode"]=0x2CDE,
- ["unicodeslot"]=0x2CDF, -- ⳟ
+ category="ll",
+ description="COPTIC SMALL LETTER OLD NUBIAN NGI",
+ direction="l",
+ linebreak="al",
+ uccode=0x2CDE,
+ unicodeslot=0x2CDF,
},
[0x2CE0]={
- ["category"]="lu",
- ["description"]="COPTIC CAPITAL LETTER OLD NUBIAN NYI",
- ["lccode"]=0x2CE1,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2CE0, -- Ⳡ
+ category="lu",
+ description="COPTIC CAPITAL LETTER OLD NUBIAN NYI",
+ direction="l",
+ lccode=0x2CE1,
+ linebreak="al",
+ unicodeslot=0x2CE0,
},
[0x2CE1]={
- ["category"]="ll",
- ["description"]="COPTIC SMALL LETTER OLD NUBIAN NYI",
- ["linebreak"]="al",
- ["uccode"]=0x2CE0,
- ["unicodeslot"]=0x2CE1, -- ⳡ
+ category="ll",
+ description="COPTIC SMALL LETTER OLD NUBIAN NYI",
+ direction="l",
+ linebreak="al",
+ uccode=0x2CE0,
+ unicodeslot=0x2CE1,
},
[0x2CE2]={
- ["category"]="lu",
- ["description"]="COPTIC CAPITAL LETTER OLD NUBIAN WAU",
- ["lccode"]=0x2CE3,
- ["linebreak"]="al",
- ["unicodeslot"]=0x2CE2, -- Ⳣ
+ category="lu",
+ description="COPTIC CAPITAL LETTER OLD NUBIAN WAU",
+ direction="l",
+ lccode=0x2CE3,
+ linebreak="al",
+ unicodeslot=0x2CE2,
},
[0x2CE3]={
- ["category"]="ll",
- ["description"]="COPTIC SMALL LETTER OLD NUBIAN WAU",
- ["linebreak"]="al",
- ["uccode"]=0x2CE2,
- ["unicodeslot"]=0x2CE3, -- ⳣ
+ category="ll",
+ description="COPTIC SMALL LETTER OLD NUBIAN WAU",
+ direction="l",
+ linebreak="al",
+ uccode=0x2CE2,
+ unicodeslot=0x2CE3,
},
[0x2CE4]={
- ["category"]="ll",
- ["description"]="COPTIC SYMBOL KAI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2CE4, -- ⳤ
+ category="ll",
+ description="COPTIC SYMBOL KAI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2CE4,
},
[0x2CE5]={
- ["category"]="so",
- ["description"]="COPTIC SYMBOL MI RO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2CE5, -- ⳥
+ category="so",
+ description="COPTIC SYMBOL MI RO",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2CE5,
},
[0x2CE6]={
- ["category"]="so",
- ["description"]="COPTIC SYMBOL PI RO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2CE6, -- ⳦
+ category="so",
+ description="COPTIC SYMBOL PI RO",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2CE6,
},
[0x2CE7]={
- ["category"]="so",
- ["description"]="COPTIC SYMBOL STAUROS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2CE7, -- ⳧
+ category="so",
+ description="COPTIC SYMBOL STAUROS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2CE7,
},
[0x2CE8]={
- ["category"]="so",
- ["description"]="COPTIC SYMBOL TAU RO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2CE8, -- ⳨
+ category="so",
+ description="COPTIC SYMBOL TAU RO",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2CE8,
},
[0x2CE9]={
- ["category"]="so",
- ["description"]="COPTIC SYMBOL KHI RO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2CE9, -- ⳩
+ category="so",
+ description="COPTIC SYMBOL KHI RO",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2CE9,
},
[0x2CEA]={
- ["category"]="so",
- ["description"]="COPTIC SYMBOL SHIMA SIMA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2CEA, -- ⳪
+ category="so",
+ description="COPTIC SYMBOL SHIMA SIMA",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2CEA,
},
[0x2CF9]={
- ["category"]="po",
- ["description"]="COPTIC OLD NUBIAN FULL STOP",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x2CF9, -- ⳹
+ category="po",
+ description="COPTIC OLD NUBIAN FULL STOP",
+ direction="on",
+ linebreak="ba",
+ unicodeslot=0x2CF9,
},
[0x2CFA]={
- ["category"]="po",
- ["description"]="COPTIC OLD NUBIAN DIRECT QUESTION MARK",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x2CFA, -- ⳺
+ category="po",
+ description="COPTIC OLD NUBIAN DIRECT QUESTION MARK",
+ direction="on",
+ linebreak="ba",
+ unicodeslot=0x2CFA,
},
[0x2CFB]={
- ["category"]="po",
- ["description"]="COPTIC OLD NUBIAN INDIRECT QUESTION MARK",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x2CFB, -- ⳻
+ category="po",
+ description="COPTIC OLD NUBIAN INDIRECT QUESTION MARK",
+ direction="on",
+ linebreak="ba",
+ unicodeslot=0x2CFB,
},
[0x2CFC]={
- ["category"]="po",
- ["description"]="COPTIC OLD NUBIAN VERSE DIVIDER",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x2CFC, -- ⳼
+ category="po",
+ description="COPTIC OLD NUBIAN VERSE DIVIDER",
+ direction="on",
+ linebreak="ba",
+ unicodeslot=0x2CFC,
},
[0x2CFD]={
- ["category"]="no",
- ["description"]="COPTIC FRACTION ONE HALF",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2CFD, -- ⳽
+ category="no",
+ description="COPTIC FRACTION ONE HALF",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2CFD,
},
[0x2CFE]={
- ["category"]="po",
- ["description"]="COPTIC FULL STOP",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x2CFE, -- ⳾
+ category="po",
+ description="COPTIC FULL STOP",
+ direction="on",
+ linebreak="ba",
+ unicodeslot=0x2CFE,
},
[0x2CFF]={
- ["category"]="po",
- ["description"]="COPTIC MORPHOLOGICAL DIVIDER",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x2CFF, -- ⳿
+ category="po",
+ description="COPTIC MORPHOLOGICAL DIVIDER",
+ direction="on",
+ linebreak="ba",
+ unicodeslot=0x2CFF,
},
[0x2D00]={
- ["category"]="ll",
- ["description"]="GEORGIAN SMALL LETTER AN",
- ["linebreak"]="al",
- ["uccode"]=0x10A0,
- ["unicodeslot"]=0x2D00, -- ⴀ
+ category="ll",
+ description="GEORGIAN SMALL LETTER AN",
+ direction="l",
+ linebreak="al",
+ uccode=0x10A0,
+ unicodeslot=0x2D00,
},
[0x2D01]={
- ["category"]="ll",
- ["description"]="GEORGIAN SMALL LETTER BAN",
- ["linebreak"]="al",
- ["uccode"]=0x10A1,
- ["unicodeslot"]=0x2D01, -- ⴁ
+ category="ll",
+ description="GEORGIAN SMALL LETTER BAN",
+ direction="l",
+ linebreak="al",
+ uccode=0x10A1,
+ unicodeslot=0x2D01,
},
[0x2D02]={
- ["category"]="ll",
- ["description"]="GEORGIAN SMALL LETTER GAN",
- ["linebreak"]="al",
- ["uccode"]=0x10A2,
- ["unicodeslot"]=0x2D02, -- ⴂ
+ category="ll",
+ description="GEORGIAN SMALL LETTER GAN",
+ direction="l",
+ linebreak="al",
+ uccode=0x10A2,
+ unicodeslot=0x2D02,
},
[0x2D03]={
- ["category"]="ll",
- ["description"]="GEORGIAN SMALL LETTER DON",
- ["linebreak"]="al",
- ["uccode"]=0x10A3,
- ["unicodeslot"]=0x2D03, -- ⴃ
+ category="ll",
+ description="GEORGIAN SMALL LETTER DON",
+ direction="l",
+ linebreak="al",
+ uccode=0x10A3,
+ unicodeslot=0x2D03,
},
[0x2D04]={
- ["category"]="ll",
- ["description"]="GEORGIAN SMALL LETTER EN",
- ["linebreak"]="al",
- ["uccode"]=0x10A4,
- ["unicodeslot"]=0x2D04, -- ⴄ
+ category="ll",
+ description="GEORGIAN SMALL LETTER EN",
+ direction="l",
+ linebreak="al",
+ uccode=0x10A4,
+ unicodeslot=0x2D04,
},
[0x2D05]={
- ["category"]="ll",
- ["description"]="GEORGIAN SMALL LETTER VIN",
- ["linebreak"]="al",
- ["uccode"]=0x10A5,
- ["unicodeslot"]=0x2D05, -- ⴅ
+ category="ll",
+ description="GEORGIAN SMALL LETTER VIN",
+ direction="l",
+ linebreak="al",
+ uccode=0x10A5,
+ unicodeslot=0x2D05,
},
[0x2D06]={
- ["category"]="ll",
- ["description"]="GEORGIAN SMALL LETTER ZEN",
- ["linebreak"]="al",
- ["uccode"]=0x10A6,
- ["unicodeslot"]=0x2D06, -- ⴆ
+ category="ll",
+ description="GEORGIAN SMALL LETTER ZEN",
+ direction="l",
+ linebreak="al",
+ uccode=0x10A6,
+ unicodeslot=0x2D06,
},
[0x2D07]={
- ["category"]="ll",
- ["description"]="GEORGIAN SMALL LETTER TAN",
- ["linebreak"]="al",
- ["uccode"]=0x10A7,
- ["unicodeslot"]=0x2D07, -- ⴇ
+ category="ll",
+ description="GEORGIAN SMALL LETTER TAN",
+ direction="l",
+ linebreak="al",
+ uccode=0x10A7,
+ unicodeslot=0x2D07,
},
[0x2D08]={
- ["category"]="ll",
- ["description"]="GEORGIAN SMALL LETTER IN",
- ["linebreak"]="al",
- ["uccode"]=0x10A8,
- ["unicodeslot"]=0x2D08, -- ⴈ
+ category="ll",
+ description="GEORGIAN SMALL LETTER IN",
+ direction="l",
+ linebreak="al",
+ uccode=0x10A8,
+ unicodeslot=0x2D08,
},
[0x2D09]={
- ["category"]="ll",
- ["description"]="GEORGIAN SMALL LETTER KAN",
- ["linebreak"]="al",
- ["uccode"]=0x10A9,
- ["unicodeslot"]=0x2D09, -- ⴉ
+ category="ll",
+ description="GEORGIAN SMALL LETTER KAN",
+ direction="l",
+ linebreak="al",
+ uccode=0x10A9,
+ unicodeslot=0x2D09,
},
[0x2D0A]={
- ["category"]="ll",
- ["description"]="GEORGIAN SMALL LETTER LAS",
- ["linebreak"]="al",
- ["uccode"]=0x10AA,
- ["unicodeslot"]=0x2D0A, -- ⴊ
+ category="ll",
+ description="GEORGIAN SMALL LETTER LAS",
+ direction="l",
+ linebreak="al",
+ uccode=0x10AA,
+ unicodeslot=0x2D0A,
},
[0x2D0B]={
- ["category"]="ll",
- ["description"]="GEORGIAN SMALL LETTER MAN",
- ["linebreak"]="al",
- ["uccode"]=0x10AB,
- ["unicodeslot"]=0x2D0B, -- ⴋ
+ category="ll",
+ description="GEORGIAN SMALL LETTER MAN",
+ direction="l",
+ linebreak="al",
+ uccode=0x10AB,
+ unicodeslot=0x2D0B,
},
[0x2D0C]={
- ["category"]="ll",
- ["description"]="GEORGIAN SMALL LETTER NAR",
- ["linebreak"]="al",
- ["uccode"]=0x10AC,
- ["unicodeslot"]=0x2D0C, -- ⴌ
+ category="ll",
+ description="GEORGIAN SMALL LETTER NAR",
+ direction="l",
+ linebreak="al",
+ uccode=0x10AC,
+ unicodeslot=0x2D0C,
},
[0x2D0D]={
- ["category"]="ll",
- ["description"]="GEORGIAN SMALL LETTER ON",
- ["linebreak"]="al",
- ["uccode"]=0x10AD,
- ["unicodeslot"]=0x2D0D, -- ⴍ
+ category="ll",
+ description="GEORGIAN SMALL LETTER ON",
+ direction="l",
+ linebreak="al",
+ uccode=0x10AD,
+ unicodeslot=0x2D0D,
},
[0x2D0E]={
- ["category"]="ll",
- ["description"]="GEORGIAN SMALL LETTER PAR",
- ["linebreak"]="al",
- ["uccode"]=0x10AE,
- ["unicodeslot"]=0x2D0E, -- ⴎ
+ category="ll",
+ description="GEORGIAN SMALL LETTER PAR",
+ direction="l",
+ linebreak="al",
+ uccode=0x10AE,
+ unicodeslot=0x2D0E,
},
[0x2D0F]={
- ["category"]="ll",
- ["description"]="GEORGIAN SMALL LETTER ZHAR",
- ["linebreak"]="al",
- ["uccode"]=0x10AF,
- ["unicodeslot"]=0x2D0F, -- ⴏ
+ category="ll",
+ description="GEORGIAN SMALL LETTER ZHAR",
+ direction="l",
+ linebreak="al",
+ uccode=0x10AF,
+ unicodeslot=0x2D0F,
},
[0x2D10]={
- ["category"]="ll",
- ["description"]="GEORGIAN SMALL LETTER RAE",
- ["linebreak"]="al",
- ["uccode"]=0x10B0,
- ["unicodeslot"]=0x2D10, -- ⴐ
+ category="ll",
+ description="GEORGIAN SMALL LETTER RAE",
+ direction="l",
+ linebreak="al",
+ uccode=0x10B0,
+ unicodeslot=0x2D10,
},
[0x2D11]={
- ["category"]="ll",
- ["description"]="GEORGIAN SMALL LETTER SAN",
- ["linebreak"]="al",
- ["uccode"]=0x10B1,
- ["unicodeslot"]=0x2D11, -- ⴑ
+ category="ll",
+ description="GEORGIAN SMALL LETTER SAN",
+ direction="l",
+ linebreak="al",
+ uccode=0x10B1,
+ unicodeslot=0x2D11,
},
[0x2D12]={
- ["category"]="ll",
- ["description"]="GEORGIAN SMALL LETTER TAR",
- ["linebreak"]="al",
- ["uccode"]=0x10B2,
- ["unicodeslot"]=0x2D12, -- ⴒ
+ category="ll",
+ description="GEORGIAN SMALL LETTER TAR",
+ direction="l",
+ linebreak="al",
+ uccode=0x10B2,
+ unicodeslot=0x2D12,
},
[0x2D13]={
- ["category"]="ll",
- ["description"]="GEORGIAN SMALL LETTER UN",
- ["linebreak"]="al",
- ["uccode"]=0x10B3,
- ["unicodeslot"]=0x2D13, -- ⴓ
+ category="ll",
+ description="GEORGIAN SMALL LETTER UN",
+ direction="l",
+ linebreak="al",
+ uccode=0x10B3,
+ unicodeslot=0x2D13,
},
[0x2D14]={
- ["category"]="ll",
- ["description"]="GEORGIAN SMALL LETTER PHAR",
- ["linebreak"]="al",
- ["uccode"]=0x10B4,
- ["unicodeslot"]=0x2D14, -- ⴔ
+ category="ll",
+ description="GEORGIAN SMALL LETTER PHAR",
+ direction="l",
+ linebreak="al",
+ uccode=0x10B4,
+ unicodeslot=0x2D14,
},
[0x2D15]={
- ["category"]="ll",
- ["description"]="GEORGIAN SMALL LETTER KHAR",
- ["linebreak"]="al",
- ["uccode"]=0x10B5,
- ["unicodeslot"]=0x2D15, -- ⴕ
+ category="ll",
+ description="GEORGIAN SMALL LETTER KHAR",
+ direction="l",
+ linebreak="al",
+ uccode=0x10B5,
+ unicodeslot=0x2D15,
},
[0x2D16]={
- ["category"]="ll",
- ["description"]="GEORGIAN SMALL LETTER GHAN",
- ["linebreak"]="al",
- ["uccode"]=0x10B6,
- ["unicodeslot"]=0x2D16, -- ⴖ
+ category="ll",
+ description="GEORGIAN SMALL LETTER GHAN",
+ direction="l",
+ linebreak="al",
+ uccode=0x10B6,
+ unicodeslot=0x2D16,
},
[0x2D17]={
- ["category"]="ll",
- ["description"]="GEORGIAN SMALL LETTER QAR",
- ["linebreak"]="al",
- ["uccode"]=0x10B7,
- ["unicodeslot"]=0x2D17, -- ⴗ
+ category="ll",
+ description="GEORGIAN SMALL LETTER QAR",
+ direction="l",
+ linebreak="al",
+ uccode=0x10B7,
+ unicodeslot=0x2D17,
},
[0x2D18]={
- ["category"]="ll",
- ["description"]="GEORGIAN SMALL LETTER SHIN",
- ["linebreak"]="al",
- ["uccode"]=0x10B8,
- ["unicodeslot"]=0x2D18, -- ⴘ
+ category="ll",
+ description="GEORGIAN SMALL LETTER SHIN",
+ direction="l",
+ linebreak="al",
+ uccode=0x10B8,
+ unicodeslot=0x2D18,
},
[0x2D19]={
- ["category"]="ll",
- ["description"]="GEORGIAN SMALL LETTER CHIN",
- ["linebreak"]="al",
- ["uccode"]=0x10B9,
- ["unicodeslot"]=0x2D19, -- ⴙ
+ category="ll",
+ description="GEORGIAN SMALL LETTER CHIN",
+ direction="l",
+ linebreak="al",
+ uccode=0x10B9,
+ unicodeslot=0x2D19,
},
[0x2D1A]={
- ["category"]="ll",
- ["description"]="GEORGIAN SMALL LETTER CAN",
- ["linebreak"]="al",
- ["uccode"]=0x10BA,
- ["unicodeslot"]=0x2D1A, -- ⴚ
+ category="ll",
+ description="GEORGIAN SMALL LETTER CAN",
+ direction="l",
+ linebreak="al",
+ uccode=0x10BA,
+ unicodeslot=0x2D1A,
},
[0x2D1B]={
- ["category"]="ll",
- ["description"]="GEORGIAN SMALL LETTER JIL",
- ["linebreak"]="al",
- ["uccode"]=0x10BB,
- ["unicodeslot"]=0x2D1B, -- ⴛ
+ category="ll",
+ description="GEORGIAN SMALL LETTER JIL",
+ direction="l",
+ linebreak="al",
+ uccode=0x10BB,
+ unicodeslot=0x2D1B,
},
[0x2D1C]={
- ["category"]="ll",
- ["description"]="GEORGIAN SMALL LETTER CIL",
- ["linebreak"]="al",
- ["uccode"]=0x10BC,
- ["unicodeslot"]=0x2D1C, -- ⴜ
+ category="ll",
+ description="GEORGIAN SMALL LETTER CIL",
+ direction="l",
+ linebreak="al",
+ uccode=0x10BC,
+ unicodeslot=0x2D1C,
},
[0x2D1D]={
- ["category"]="ll",
- ["description"]="GEORGIAN SMALL LETTER CHAR",
- ["linebreak"]="al",
- ["uccode"]=0x10BD,
- ["unicodeslot"]=0x2D1D, -- ⴝ
+ category="ll",
+ description="GEORGIAN SMALL LETTER CHAR",
+ direction="l",
+ linebreak="al",
+ uccode=0x10BD,
+ unicodeslot=0x2D1D,
},
[0x2D1E]={
- ["category"]="ll",
- ["description"]="GEORGIAN SMALL LETTER XAN",
- ["linebreak"]="al",
- ["uccode"]=0x10BE,
- ["unicodeslot"]=0x2D1E, -- ⴞ
+ category="ll",
+ description="GEORGIAN SMALL LETTER XAN",
+ direction="l",
+ linebreak="al",
+ uccode=0x10BE,
+ unicodeslot=0x2D1E,
},
[0x2D1F]={
- ["category"]="ll",
- ["description"]="GEORGIAN SMALL LETTER JHAN",
- ["linebreak"]="al",
- ["uccode"]=0x10BF,
- ["unicodeslot"]=0x2D1F, -- ⴟ
+ category="ll",
+ description="GEORGIAN SMALL LETTER JHAN",
+ direction="l",
+ linebreak="al",
+ uccode=0x10BF,
+ unicodeslot=0x2D1F,
},
[0x2D20]={
- ["category"]="ll",
- ["description"]="GEORGIAN SMALL LETTER HAE",
- ["linebreak"]="al",
- ["uccode"]=0x10C0,
- ["unicodeslot"]=0x2D20, -- ⴠ
+ category="ll",
+ description="GEORGIAN SMALL LETTER HAE",
+ direction="l",
+ linebreak="al",
+ uccode=0x10C0,
+ unicodeslot=0x2D20,
},
[0x2D21]={
- ["category"]="ll",
- ["description"]="GEORGIAN SMALL LETTER HE",
- ["linebreak"]="al",
- ["uccode"]=0x10C1,
- ["unicodeslot"]=0x2D21, -- ⴡ
+ category="ll",
+ description="GEORGIAN SMALL LETTER HE",
+ direction="l",
+ linebreak="al",
+ uccode=0x10C1,
+ unicodeslot=0x2D21,
},
[0x2D22]={
- ["category"]="ll",
- ["description"]="GEORGIAN SMALL LETTER HIE",
- ["linebreak"]="al",
- ["uccode"]=0x10C2,
- ["unicodeslot"]=0x2D22, -- ⴢ
+ category="ll",
+ description="GEORGIAN SMALL LETTER HIE",
+ direction="l",
+ linebreak="al",
+ uccode=0x10C2,
+ unicodeslot=0x2D22,
},
[0x2D23]={
- ["category"]="ll",
- ["description"]="GEORGIAN SMALL LETTER WE",
- ["linebreak"]="al",
- ["uccode"]=0x10C3,
- ["unicodeslot"]=0x2D23, -- ⴣ
+ category="ll",
+ description="GEORGIAN SMALL LETTER WE",
+ direction="l",
+ linebreak="al",
+ uccode=0x10C3,
+ unicodeslot=0x2D23,
},
[0x2D24]={
- ["category"]="ll",
- ["description"]="GEORGIAN SMALL LETTER HAR",
- ["linebreak"]="al",
- ["uccode"]=0x10C4,
- ["unicodeslot"]=0x2D24, -- ⴤ
+ category="ll",
+ description="GEORGIAN SMALL LETTER HAR",
+ direction="l",
+ linebreak="al",
+ uccode=0x10C4,
+ unicodeslot=0x2D24,
},
[0x2D25]={
- ["category"]="ll",
- ["description"]="GEORGIAN SMALL LETTER HOE",
- ["linebreak"]="al",
- ["uccode"]=0x10C5,
- ["unicodeslot"]=0x2D25, -- ⴥ
+ category="ll",
+ description="GEORGIAN SMALL LETTER HOE",
+ direction="l",
+ linebreak="al",
+ uccode=0x10C5,
+ unicodeslot=0x2D25,
},
[0x2D30]={
- ["category"]="lo",
- ["description"]="TIFINAGH LETTER YA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D30, -- ⴰ
+ category="lo",
+ description="TIFINAGH LETTER YA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D30,
},
[0x2D31]={
- ["category"]="lo",
- ["description"]="TIFINAGH LETTER YAB",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D31, -- ⴱ
+ category="lo",
+ description="TIFINAGH LETTER YAB",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D31,
},
[0x2D32]={
- ["category"]="lo",
- ["description"]="TIFINAGH LETTER YABH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D32, -- ⴲ
+ category="lo",
+ description="TIFINAGH LETTER YABH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D32,
},
[0x2D33]={
- ["category"]="lo",
- ["description"]="TIFINAGH LETTER YAG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D33, -- ⴳ
+ category="lo",
+ description="TIFINAGH LETTER YAG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D33,
},
[0x2D34]={
- ["category"]="lo",
- ["description"]="TIFINAGH LETTER YAGHH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D34, -- ⴴ
+ category="lo",
+ description="TIFINAGH LETTER YAGHH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D34,
},
[0x2D35]={
- ["category"]="lo",
- ["description"]="TIFINAGH LETTER BERBER ACADEMY YAJ",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D35, -- ⴵ
+ category="lo",
+ description="TIFINAGH LETTER BERBER ACADEMY YAJ",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D35,
},
[0x2D36]={
- ["category"]="lo",
- ["description"]="TIFINAGH LETTER YAJ",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D36, -- ⴶ
+ category="lo",
+ description="TIFINAGH LETTER YAJ",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D36,
},
[0x2D37]={
- ["category"]="lo",
- ["description"]="TIFINAGH LETTER YAD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D37, -- ⴷ
+ category="lo",
+ description="TIFINAGH LETTER YAD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D37,
},
[0x2D38]={
- ["category"]="lo",
- ["description"]="TIFINAGH LETTER YADH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D38, -- ⴸ
+ category="lo",
+ description="TIFINAGH LETTER YADH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D38,
},
[0x2D39]={
- ["category"]="lo",
- ["description"]="TIFINAGH LETTER YADD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D39, -- ⴹ
+ category="lo",
+ description="TIFINAGH LETTER YADD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D39,
},
[0x2D3A]={
- ["category"]="lo",
- ["description"]="TIFINAGH LETTER YADDH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D3A, -- ⴺ
+ category="lo",
+ description="TIFINAGH LETTER YADDH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D3A,
},
[0x2D3B]={
- ["category"]="lo",
- ["description"]="TIFINAGH LETTER YEY",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D3B, -- ⴻ
+ category="lo",
+ description="TIFINAGH LETTER YEY",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D3B,
},
[0x2D3C]={
- ["category"]="lo",
- ["description"]="TIFINAGH LETTER YAF",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D3C, -- ⴼ
+ category="lo",
+ description="TIFINAGH LETTER YAF",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D3C,
},
[0x2D3D]={
- ["category"]="lo",
- ["description"]="TIFINAGH LETTER YAK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D3D, -- ⴽ
+ category="lo",
+ description="TIFINAGH LETTER YAK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D3D,
},
[0x2D3E]={
- ["category"]="lo",
- ["description"]="TIFINAGH LETTER TUAREG YAK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D3E, -- ⴾ
+ category="lo",
+ description="TIFINAGH LETTER TUAREG YAK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D3E,
},
[0x2D3F]={
- ["category"]="lo",
- ["description"]="TIFINAGH LETTER YAKHH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D3F, -- ⴿ
+ category="lo",
+ description="TIFINAGH LETTER YAKHH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D3F,
},
[0x2D40]={
- ["category"]="lo",
- ["description"]="TIFINAGH LETTER YAH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D40, -- ⵀ
+ category="lo",
+ description="TIFINAGH LETTER YAH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D40,
},
[0x2D41]={
- ["category"]="lo",
- ["description"]="TIFINAGH LETTER BERBER ACADEMY YAH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D41, -- ⵁ
+ category="lo",
+ description="TIFINAGH LETTER BERBER ACADEMY YAH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D41,
},
[0x2D42]={
- ["category"]="lo",
- ["description"]="TIFINAGH LETTER TUAREG YAH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D42, -- ⵂ
+ category="lo",
+ description="TIFINAGH LETTER TUAREG YAH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D42,
},
[0x2D43]={
- ["category"]="lo",
- ["description"]="TIFINAGH LETTER YAHH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D43, -- ⵃ
+ category="lo",
+ description="TIFINAGH LETTER YAHH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D43,
},
[0x2D44]={
- ["category"]="lo",
- ["description"]="TIFINAGH LETTER YAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D44, -- ⵄ
+ category="lo",
+ description="TIFINAGH LETTER YAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D44,
},
[0x2D45]={
- ["category"]="lo",
- ["description"]="TIFINAGH LETTER YAKH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D45, -- ⵅ
+ category="lo",
+ description="TIFINAGH LETTER YAKH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D45,
},
[0x2D46]={
- ["category"]="lo",
- ["description"]="TIFINAGH LETTER TUAREG YAKH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D46, -- ⵆ
+ category="lo",
+ description="TIFINAGH LETTER TUAREG YAKH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D46,
},
[0x2D47]={
- ["category"]="lo",
- ["description"]="TIFINAGH LETTER YAQ",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D47, -- ⵇ
+ category="lo",
+ description="TIFINAGH LETTER YAQ",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D47,
},
[0x2D48]={
- ["category"]="lo",
- ["description"]="TIFINAGH LETTER TUAREG YAQ",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D48, -- ⵈ
+ category="lo",
+ description="TIFINAGH LETTER TUAREG YAQ",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D48,
},
[0x2D49]={
- ["category"]="lo",
- ["description"]="TIFINAGH LETTER YI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D49, -- ⵉ
+ category="lo",
+ description="TIFINAGH LETTER YI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D49,
},
[0x2D4A]={
- ["category"]="lo",
- ["description"]="TIFINAGH LETTER YAZH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D4A, -- ⵊ
+ category="lo",
+ description="TIFINAGH LETTER YAZH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D4A,
},
[0x2D4B]={
- ["category"]="lo",
- ["description"]="TIFINAGH LETTER AHAGGAR YAZH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D4B, -- ⵋ
+ category="lo",
+ description="TIFINAGH LETTER AHAGGAR YAZH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D4B,
},
[0x2D4C]={
- ["category"]="lo",
- ["description"]="TIFINAGH LETTER TUAREG YAZH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D4C, -- ⵌ
+ category="lo",
+ description="TIFINAGH LETTER TUAREG YAZH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D4C,
},
[0x2D4D]={
- ["category"]="lo",
- ["description"]="TIFINAGH LETTER YAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D4D, -- ⵍ
+ category="lo",
+ description="TIFINAGH LETTER YAL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D4D,
},
[0x2D4E]={
- ["category"]="lo",
- ["description"]="TIFINAGH LETTER YAM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D4E, -- ⵎ
+ category="lo",
+ description="TIFINAGH LETTER YAM",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D4E,
},
[0x2D4F]={
- ["category"]="lo",
- ["description"]="TIFINAGH LETTER YAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D4F, -- ⵏ
+ category="lo",
+ description="TIFINAGH LETTER YAN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D4F,
},
[0x2D50]={
- ["category"]="lo",
- ["description"]="TIFINAGH LETTER TUAREG YAGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D50, -- ⵐ
+ category="lo",
+ description="TIFINAGH LETTER TUAREG YAGN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D50,
},
[0x2D51]={
- ["category"]="lo",
- ["description"]="TIFINAGH LETTER TUAREG YANG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D51, -- ⵑ
+ category="lo",
+ description="TIFINAGH LETTER TUAREG YANG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D51,
},
[0x2D52]={
- ["category"]="lo",
- ["description"]="TIFINAGH LETTER YAP",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D52, -- ⵒ
+ category="lo",
+ description="TIFINAGH LETTER YAP",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D52,
},
[0x2D53]={
- ["category"]="lo",
- ["description"]="TIFINAGH LETTER YU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D53, -- ⵓ
+ category="lo",
+ description="TIFINAGH LETTER YU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D53,
},
[0x2D54]={
- ["category"]="lo",
- ["description"]="TIFINAGH LETTER YAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D54, -- ⵔ
+ category="lo",
+ description="TIFINAGH LETTER YAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D54,
},
[0x2D55]={
- ["category"]="lo",
- ["description"]="TIFINAGH LETTER YARR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D55, -- ⵕ
+ category="lo",
+ description="TIFINAGH LETTER YARR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D55,
},
[0x2D56]={
- ["category"]="lo",
- ["description"]="TIFINAGH LETTER YAGH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D56, -- ⵖ
+ category="lo",
+ description="TIFINAGH LETTER YAGH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D56,
},
[0x2D57]={
- ["category"]="lo",
- ["description"]="TIFINAGH LETTER TUAREG YAGH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D57, -- ⵗ
+ category="lo",
+ description="TIFINAGH LETTER TUAREG YAGH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D57,
},
[0x2D58]={
- ["category"]="lo",
- ["description"]="TIFINAGH LETTER AYER YAGH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D58, -- ⵘ
+ category="lo",
+ description="TIFINAGH LETTER AYER YAGH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D58,
},
[0x2D59]={
- ["category"]="lo",
- ["description"]="TIFINAGH LETTER YAS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D59, -- ⵙ
+ category="lo",
+ description="TIFINAGH LETTER YAS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D59,
},
[0x2D5A]={
- ["category"]="lo",
- ["description"]="TIFINAGH LETTER YASS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D5A, -- ⵚ
+ category="lo",
+ description="TIFINAGH LETTER YASS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D5A,
},
[0x2D5B]={
- ["category"]="lo",
- ["description"]="TIFINAGH LETTER YASH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D5B, -- ⵛ
+ category="lo",
+ description="TIFINAGH LETTER YASH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D5B,
},
[0x2D5C]={
- ["category"]="lo",
- ["description"]="TIFINAGH LETTER YAT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D5C, -- ⵜ
+ category="lo",
+ description="TIFINAGH LETTER YAT",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D5C,
},
[0x2D5D]={
- ["category"]="lo",
- ["description"]="TIFINAGH LETTER YATH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D5D, -- ⵝ
+ category="lo",
+ description="TIFINAGH LETTER YATH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D5D,
},
[0x2D5E]={
- ["category"]="lo",
- ["description"]="TIFINAGH LETTER YACH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D5E, -- ⵞ
+ category="lo",
+ description="TIFINAGH LETTER YACH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D5E,
},
[0x2D5F]={
- ["category"]="lo",
- ["description"]="TIFINAGH LETTER YATT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D5F, -- ⵟ
+ category="lo",
+ description="TIFINAGH LETTER YATT",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D5F,
},
[0x2D60]={
- ["category"]="lo",
- ["description"]="TIFINAGH LETTER YAV",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D60, -- ⵠ
+ category="lo",
+ description="TIFINAGH LETTER YAV",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D60,
},
[0x2D61]={
- ["category"]="lo",
- ["description"]="TIFINAGH LETTER YAW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D61, -- ⵡ
+ category="lo",
+ description="TIFINAGH LETTER YAW",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D61,
},
[0x2D62]={
- ["category"]="lo",
- ["description"]="TIFINAGH LETTER YAY",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D62, -- ⵢ
+ category="lo",
+ description="TIFINAGH LETTER YAY",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D62,
},
[0x2D63]={
- ["category"]="lo",
- ["description"]="TIFINAGH LETTER YAZ",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D63, -- ⵣ
+ category="lo",
+ description="TIFINAGH LETTER YAZ",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D63,
},
[0x2D64]={
- ["category"]="lo",
- ["description"]="TIFINAGH LETTER TAWELLEMET YAZ",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D64, -- ⵤ
+ category="lo",
+ description="TIFINAGH LETTER TAWELLEMET YAZ",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D64,
},
[0x2D65]={
- ["category"]="lo",
- ["description"]="TIFINAGH LETTER YAZZ",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D65, -- ⵥ
+ category="lo",
+ description="TIFINAGH LETTER YAZZ",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D65,
},
[0x2D6F]={
- ["category"]="lm",
- ["description"]="TIFINAGH MODIFIER LETTER LABIALIZATION MARK",
- ["linebreak"]="al",
- ["specials"]={ "super", 0x2D61 },
- ["unicodeslot"]=0x2D6F, -- ⵯ
+ category="lm",
+ description="TIFINAGH MODIFIER LETTER LABIALIZATION MARK",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x2D61 },
+ unicodeslot=0x2D6F,
},
[0x2D80]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE LOA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D80, -- ⶀ
+ category="lo",
+ description="ETHIOPIC SYLLABLE LOA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D80,
},
[0x2D81]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE MOA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D81, -- ⶁ
+ category="lo",
+ description="ETHIOPIC SYLLABLE MOA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D81,
},
[0x2D82]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE ROA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D82, -- ⶂ
+ category="lo",
+ description="ETHIOPIC SYLLABLE ROA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D82,
},
[0x2D83]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE SOA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D83, -- ⶃ
+ category="lo",
+ description="ETHIOPIC SYLLABLE SOA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D83,
},
[0x2D84]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE SHOA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D84, -- ⶄ
+ category="lo",
+ description="ETHIOPIC SYLLABLE SHOA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D84,
},
[0x2D85]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE BOA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D85, -- ⶅ
+ category="lo",
+ description="ETHIOPIC SYLLABLE BOA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D85,
},
[0x2D86]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE TOA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D86, -- ⶆ
+ category="lo",
+ description="ETHIOPIC SYLLABLE TOA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D86,
},
[0x2D87]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE COA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D87, -- ⶇ
+ category="lo",
+ description="ETHIOPIC SYLLABLE COA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D87,
},
[0x2D88]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE NOA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D88, -- ⶈ
+ category="lo",
+ description="ETHIOPIC SYLLABLE NOA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D88,
},
[0x2D89]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE NYOA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D89, -- ⶉ
+ category="lo",
+ description="ETHIOPIC SYLLABLE NYOA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D89,
},
[0x2D8A]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE GLOTTAL OA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D8A, -- ⶊ
+ category="lo",
+ description="ETHIOPIC SYLLABLE GLOTTAL OA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D8A,
},
[0x2D8B]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE ZOA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D8B, -- ⶋ
+ category="lo",
+ description="ETHIOPIC SYLLABLE ZOA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D8B,
},
[0x2D8C]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE DOA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D8C, -- ⶌ
+ category="lo",
+ description="ETHIOPIC SYLLABLE DOA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D8C,
},
[0x2D8D]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE DDOA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D8D, -- ⶍ
+ category="lo",
+ description="ETHIOPIC SYLLABLE DDOA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D8D,
},
[0x2D8E]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE JOA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D8E, -- ⶎ
+ category="lo",
+ description="ETHIOPIC SYLLABLE JOA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D8E,
},
[0x2D8F]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE THOA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D8F, -- ⶏ
+ category="lo",
+ description="ETHIOPIC SYLLABLE THOA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D8F,
},
[0x2D90]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE CHOA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D90, -- ⶐ
+ category="lo",
+ description="ETHIOPIC SYLLABLE CHOA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D90,
},
[0x2D91]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE PHOA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D91, -- ⶑ
+ category="lo",
+ description="ETHIOPIC SYLLABLE PHOA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D91,
},
[0x2D92]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE POA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D92, -- ⶒ
+ category="lo",
+ description="ETHIOPIC SYLLABLE POA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D92,
},
[0x2D93]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE GGWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D93, -- ⶓ
+ category="lo",
+ description="ETHIOPIC SYLLABLE GGWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D93,
},
[0x2D94]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE GGWI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D94, -- ⶔ
+ category="lo",
+ description="ETHIOPIC SYLLABLE GGWI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D94,
},
[0x2D95]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE GGWEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D95, -- ⶕ
+ category="lo",
+ description="ETHIOPIC SYLLABLE GGWEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D95,
},
[0x2D96]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE GGWE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2D96, -- ⶖ
+ category="lo",
+ description="ETHIOPIC SYLLABLE GGWE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2D96,
},
[0x2DA0]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE SSA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2DA0, -- ⶠ
+ category="lo",
+ description="ETHIOPIC SYLLABLE SSA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2DA0,
},
[0x2DA1]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE SSU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2DA1, -- ⶡ
+ category="lo",
+ description="ETHIOPIC SYLLABLE SSU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2DA1,
},
[0x2DA2]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE SSI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2DA2, -- ⶢ
+ category="lo",
+ description="ETHIOPIC SYLLABLE SSI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2DA2,
},
[0x2DA3]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE SSAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2DA3, -- ⶣ
+ category="lo",
+ description="ETHIOPIC SYLLABLE SSAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2DA3,
},
[0x2DA4]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE SSEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2DA4, -- ⶤ
+ category="lo",
+ description="ETHIOPIC SYLLABLE SSEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2DA4,
},
[0x2DA5]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE SSE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2DA5, -- ⶥ
+ category="lo",
+ description="ETHIOPIC SYLLABLE SSE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2DA5,
},
[0x2DA6]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE SSO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2DA6, -- ⶦ
+ category="lo",
+ description="ETHIOPIC SYLLABLE SSO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2DA6,
},
[0x2DA8]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE CCA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2DA8, -- ⶨ
+ category="lo",
+ description="ETHIOPIC SYLLABLE CCA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2DA8,
},
[0x2DA9]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE CCU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2DA9, -- ⶩ
+ category="lo",
+ description="ETHIOPIC SYLLABLE CCU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2DA9,
},
[0x2DAA]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE CCI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2DAA, -- ⶪ
+ category="lo",
+ description="ETHIOPIC SYLLABLE CCI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2DAA,
},
[0x2DAB]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE CCAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2DAB, -- ⶫ
+ category="lo",
+ description="ETHIOPIC SYLLABLE CCAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2DAB,
},
[0x2DAC]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE CCEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2DAC, -- ⶬ
+ category="lo",
+ description="ETHIOPIC SYLLABLE CCEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2DAC,
},
[0x2DAD]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE CCE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2DAD, -- ⶭ
+ category="lo",
+ description="ETHIOPIC SYLLABLE CCE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2DAD,
},
[0x2DAE]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE CCO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2DAE, -- ⶮ
+ category="lo",
+ description="ETHIOPIC SYLLABLE CCO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2DAE,
},
[0x2DB0]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE ZZA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2DB0, -- ⶰ
+ category="lo",
+ description="ETHIOPIC SYLLABLE ZZA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2DB0,
},
[0x2DB1]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE ZZU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2DB1, -- ⶱ
+ category="lo",
+ description="ETHIOPIC SYLLABLE ZZU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2DB1,
},
[0x2DB2]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE ZZI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2DB2, -- ⶲ
+ category="lo",
+ description="ETHIOPIC SYLLABLE ZZI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2DB2,
},
[0x2DB3]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE ZZAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2DB3, -- ⶳ
+ category="lo",
+ description="ETHIOPIC SYLLABLE ZZAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2DB3,
},
[0x2DB4]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE ZZEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2DB4, -- ⶴ
+ category="lo",
+ description="ETHIOPIC SYLLABLE ZZEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2DB4,
},
[0x2DB5]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE ZZE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2DB5, -- ⶵ
+ category="lo",
+ description="ETHIOPIC SYLLABLE ZZE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2DB5,
},
[0x2DB6]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE ZZO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2DB6, -- ⶶ
+ category="lo",
+ description="ETHIOPIC SYLLABLE ZZO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2DB6,
},
[0x2DB8]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE CCHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2DB8, -- ⶸ
+ category="lo",
+ description="ETHIOPIC SYLLABLE CCHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2DB8,
},
[0x2DB9]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE CCHU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2DB9, -- ⶹ
+ category="lo",
+ description="ETHIOPIC SYLLABLE CCHU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2DB9,
},
[0x2DBA]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE CCHI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2DBA, -- ⶺ
+ category="lo",
+ description="ETHIOPIC SYLLABLE CCHI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2DBA,
},
[0x2DBB]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE CCHAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2DBB, -- ⶻ
+ category="lo",
+ description="ETHIOPIC SYLLABLE CCHAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2DBB,
},
[0x2DBC]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE CCHEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2DBC, -- ⶼ
+ category="lo",
+ description="ETHIOPIC SYLLABLE CCHEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2DBC,
},
[0x2DBD]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE CCHE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2DBD, -- ⶽ
+ category="lo",
+ description="ETHIOPIC SYLLABLE CCHE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2DBD,
},
[0x2DBE]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE CCHO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2DBE, -- ⶾ
+ category="lo",
+ description="ETHIOPIC SYLLABLE CCHO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2DBE,
},
[0x2DC0]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE QYA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2DC0, -- ⷀ
+ category="lo",
+ description="ETHIOPIC SYLLABLE QYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2DC0,
},
[0x2DC1]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE QYU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2DC1, -- ⷁ
+ category="lo",
+ description="ETHIOPIC SYLLABLE QYU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2DC1,
},
[0x2DC2]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE QYI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2DC2, -- ⷂ
+ category="lo",
+ description="ETHIOPIC SYLLABLE QYI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2DC2,
},
[0x2DC3]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE QYAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2DC3, -- ⷃ
+ category="lo",
+ description="ETHIOPIC SYLLABLE QYAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2DC3,
},
[0x2DC4]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE QYEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2DC4, -- ⷄ
+ category="lo",
+ description="ETHIOPIC SYLLABLE QYEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2DC4,
},
[0x2DC5]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE QYE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2DC5, -- ⷅ
+ category="lo",
+ description="ETHIOPIC SYLLABLE QYE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2DC5,
},
[0x2DC6]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE QYO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2DC6, -- ⷆ
+ category="lo",
+ description="ETHIOPIC SYLLABLE QYO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2DC6,
},
[0x2DC8]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE KYA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2DC8, -- ⷈ
+ category="lo",
+ description="ETHIOPIC SYLLABLE KYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2DC8,
},
[0x2DC9]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE KYU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2DC9, -- ⷉ
+ category="lo",
+ description="ETHIOPIC SYLLABLE KYU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2DC9,
},
[0x2DCA]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE KYI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2DCA, -- ⷊ
+ category="lo",
+ description="ETHIOPIC SYLLABLE KYI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2DCA,
},
[0x2DCB]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE KYAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2DCB, -- ⷋ
+ category="lo",
+ description="ETHIOPIC SYLLABLE KYAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2DCB,
},
[0x2DCC]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE KYEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2DCC, -- ⷌ
+ category="lo",
+ description="ETHIOPIC SYLLABLE KYEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2DCC,
},
[0x2DCD]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE KYE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2DCD, -- ⷍ
+ category="lo",
+ description="ETHIOPIC SYLLABLE KYE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2DCD,
},
[0x2DCE]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE KYO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2DCE, -- ⷎ
+ category="lo",
+ description="ETHIOPIC SYLLABLE KYO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2DCE,
},
[0x2DD0]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE XYA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2DD0, -- ⷐ
+ category="lo",
+ description="ETHIOPIC SYLLABLE XYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2DD0,
},
[0x2DD1]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE XYU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2DD1, -- ⷑ
+ category="lo",
+ description="ETHIOPIC SYLLABLE XYU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2DD1,
},
[0x2DD2]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE XYI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2DD2, -- ⷒ
+ category="lo",
+ description="ETHIOPIC SYLLABLE XYI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2DD2,
},
[0x2DD3]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE XYAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2DD3, -- ⷓ
+ category="lo",
+ description="ETHIOPIC SYLLABLE XYAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2DD3,
},
[0x2DD4]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE XYEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2DD4, -- ⷔ
+ category="lo",
+ description="ETHIOPIC SYLLABLE XYEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2DD4,
},
[0x2DD5]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE XYE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2DD5, -- ⷕ
+ category="lo",
+ description="ETHIOPIC SYLLABLE XYE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2DD5,
},
[0x2DD6]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE XYO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2DD6, -- ⷖ
+ category="lo",
+ description="ETHIOPIC SYLLABLE XYO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2DD6,
},
[0x2DD8]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE GYA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2DD8, -- ⷘ
+ category="lo",
+ description="ETHIOPIC SYLLABLE GYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2DD8,
},
[0x2DD9]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE GYU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2DD9, -- ⷙ
+ category="lo",
+ description="ETHIOPIC SYLLABLE GYU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2DD9,
},
[0x2DDA]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE GYI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2DDA, -- ⷚ
+ category="lo",
+ description="ETHIOPIC SYLLABLE GYI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2DDA,
},
[0x2DDB]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE GYAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2DDB, -- ⷛ
+ category="lo",
+ description="ETHIOPIC SYLLABLE GYAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2DDB,
},
[0x2DDC]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE GYEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2DDC, -- ⷜ
+ category="lo",
+ description="ETHIOPIC SYLLABLE GYEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2DDC,
},
[0x2DDD]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE GYE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2DDD, -- ⷝ
+ category="lo",
+ description="ETHIOPIC SYLLABLE GYE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2DDD,
},
[0x2DDE]={
- ["category"]="lo",
- ["description"]="ETHIOPIC SYLLABLE GYO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2DDE, -- ⷞ
+ category="lo",
+ description="ETHIOPIC SYLLABLE GYO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2DDE,
},
[0x2E00]={
- ["category"]="po",
- ["description"]="RIGHT ANGLE SUBSTITUTION MARKER",
- ["linebreak"]="qu",
- ["unicodeslot"]=0x2E00, -- ⸀
+ category="po",
+ description="RIGHT ANGLE SUBSTITUTION MARKER",
+ direction="on",
+ linebreak="qu",
+ unicodeslot=0x2E00,
},
[0x2E01]={
- ["category"]="po",
- ["description"]="RIGHT ANGLE DOTTED SUBSTITUTION MARKER",
- ["linebreak"]="qu",
- ["unicodeslot"]=0x2E01, -- ⸁
+ category="po",
+ description="RIGHT ANGLE DOTTED SUBSTITUTION MARKER",
+ direction="on",
+ linebreak="qu",
+ unicodeslot=0x2E01,
},
[0x2E02]={
- ["category"]="pi",
- ["description"]="LEFT SUBSTITUTION BRACKET",
- ["linebreak"]="qu",
- ["unicodeslot"]=0x2E02, -- ⸂
+ category="pi",
+ description="LEFT SUBSTITUTION BRACKET",
+ direction="on",
+ linebreak="qu",
+ mirror=0x2E03,
+ unicodeslot=0x2E02,
},
[0x2E03]={
- ["category"]="pf",
- ["description"]="RIGHT SUBSTITUTION BRACKET",
- ["linebreak"]="qu",
- ["unicodeslot"]=0x2E03, -- ⸃
+ category="pf",
+ description="RIGHT SUBSTITUTION BRACKET",
+ direction="on",
+ linebreak="qu",
+ mirror=0x2E02,
+ unicodeslot=0x2E03,
},
[0x2E04]={
- ["category"]="pi",
- ["description"]="LEFT DOTTED SUBSTITUTION BRACKET",
- ["linebreak"]="qu",
- ["unicodeslot"]=0x2E04, -- ⸄
+ category="pi",
+ description="LEFT DOTTED SUBSTITUTION BRACKET",
+ direction="on",
+ linebreak="qu",
+ mirror=0x2E05,
+ unicodeslot=0x2E04,
},
[0x2E05]={
- ["category"]="pf",
- ["description"]="RIGHT DOTTED SUBSTITUTION BRACKET",
- ["linebreak"]="qu",
- ["unicodeslot"]=0x2E05, -- ⸅
+ category="pf",
+ description="RIGHT DOTTED SUBSTITUTION BRACKET",
+ direction="on",
+ linebreak="qu",
+ mirror=0x2E04,
+ unicodeslot=0x2E05,
},
[0x2E06]={
- ["category"]="po",
- ["description"]="RAISED INTERPOLATION MARKER",
- ["linebreak"]="qu",
- ["unicodeslot"]=0x2E06, -- ⸆
+ category="po",
+ description="RAISED INTERPOLATION MARKER",
+ direction="on",
+ linebreak="qu",
+ unicodeslot=0x2E06,
},
[0x2E07]={
- ["category"]="po",
- ["description"]="RAISED DOTTED INTERPOLATION MARKER",
- ["linebreak"]="qu",
- ["unicodeslot"]=0x2E07, -- ⸇
+ category="po",
+ description="RAISED DOTTED INTERPOLATION MARKER",
+ direction="on",
+ linebreak="qu",
+ unicodeslot=0x2E07,
},
[0x2E08]={
- ["category"]="po",
- ["description"]="DOTTED TRANSPOSITION MARKER",
- ["linebreak"]="qu",
- ["unicodeslot"]=0x2E08, -- ⸈
+ category="po",
+ description="DOTTED TRANSPOSITION MARKER",
+ direction="on",
+ linebreak="qu",
+ unicodeslot=0x2E08,
},
[0x2E09]={
- ["category"]="pi",
- ["description"]="LEFT TRANSPOSITION BRACKET",
- ["linebreak"]="qu",
- ["unicodeslot"]=0x2E09, -- ⸉
+ category="pi",
+ description="LEFT TRANSPOSITION BRACKET",
+ direction="on",
+ linebreak="qu",
+ mirror=0x2E0A,
+ unicodeslot=0x2E09,
},
[0x2E0A]={
- ["category"]="pf",
- ["description"]="RIGHT TRANSPOSITION BRACKET",
- ["linebreak"]="qu",
- ["unicodeslot"]=0x2E0A, -- ⸊
+ category="pf",
+ description="RIGHT TRANSPOSITION BRACKET",
+ direction="on",
+ linebreak="qu",
+ mirror=0x2E09,
+ unicodeslot=0x2E0A,
},
[0x2E0B]={
- ["category"]="po",
- ["description"]="RAISED SQUARE",
- ["linebreak"]="qu",
- ["unicodeslot"]=0x2E0B, -- ⸋
+ category="po",
+ description="RAISED SQUARE",
+ direction="on",
+ linebreak="qu",
+ unicodeslot=0x2E0B,
},
[0x2E0C]={
- ["category"]="pi",
- ["description"]="LEFT RAISED OMISSION BRACKET",
- ["linebreak"]="qu",
- ["unicodeslot"]=0x2E0C, -- ⸌
+ category="pi",
+ description="LEFT RAISED OMISSION BRACKET",
+ direction="on",
+ linebreak="qu",
+ mirror=0x2E0D,
+ unicodeslot=0x2E0C,
},
[0x2E0D]={
- ["category"]="pf",
- ["description"]="RIGHT RAISED OMISSION BRACKET",
- ["linebreak"]="qu",
- ["unicodeslot"]=0x2E0D, -- ⸍
+ category="pf",
+ description="RIGHT RAISED OMISSION BRACKET",
+ direction="on",
+ linebreak="qu",
+ mirror=0x2E0C,
+ unicodeslot=0x2E0D,
},
[0x2E0E]={
- ["category"]="po",
- ["description"]="EDITORIAL CORONIS",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x2E0E, -- ⸎
+ category="po",
+ description="EDITORIAL CORONIS",
+ direction="on",
+ linebreak="ba",
+ unicodeslot=0x2E0E,
},
[0x2E0F]={
- ["category"]="po",
- ["description"]="PARAGRAPHOS",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x2E0F, -- ⸏
+ category="po",
+ description="PARAGRAPHOS",
+ direction="on",
+ linebreak="ba",
+ unicodeslot=0x2E0F,
},
[0x2E10]={
- ["category"]="po",
- ["description"]="FORKED PARAGRAPHOS",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x2E10, -- ⸐
+ category="po",
+ description="FORKED PARAGRAPHOS",
+ direction="on",
+ linebreak="ba",
+ unicodeslot=0x2E10,
},
[0x2E11]={
- ["category"]="po",
- ["description"]="REVERSED FORKED PARAGRAPHOS",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x2E11, -- ⸑
+ category="po",
+ description="REVERSED FORKED PARAGRAPHOS",
+ direction="on",
+ linebreak="ba",
+ unicodeslot=0x2E11,
},
[0x2E12]={
- ["category"]="po",
- ["description"]="HYPODIASTOLE",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x2E12, -- ⸒
+ category="po",
+ description="HYPODIASTOLE",
+ direction="on",
+ linebreak="ba",
+ unicodeslot=0x2E12,
},
[0x2E13]={
- ["category"]="po",
- ["description"]="DOTTED OBELOS",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x2E13, -- ⸓
+ category="po",
+ description="DOTTED OBELOS",
+ direction="on",
+ linebreak="ba",
+ unicodeslot=0x2E13,
},
[0x2E14]={
- ["category"]="po",
- ["description"]="DOWNWARDS ANCORA",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x2E14, -- ⸔
+ category="po",
+ description="DOWNWARDS ANCORA",
+ direction="on",
+ linebreak="ba",
+ unicodeslot=0x2E14,
},
[0x2E15]={
- ["category"]="po",
- ["description"]="UPWARDS ANCORA",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x2E15, -- ⸕
+ category="po",
+ description="UPWARDS ANCORA",
+ direction="on",
+ linebreak="ba",
+ unicodeslot=0x2E15,
},
[0x2E16]={
- ["category"]="po",
- ["description"]="DOTTED RIGHT-POINTING ANGLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x2E16, -- ⸖
+ category="po",
+ description="DOTTED RIGHT-POINTING ANGLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x2E16,
},
[0x2E17]={
- ["category"]="pd",
- ["description"]="DOUBLE OBLIQUE HYPHEN",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x2E17, -- ⸗
+ category="pd",
+ description="DOUBLE OBLIQUE HYPHEN",
+ direction="on",
+ linebreak="ba",
+ unicodeslot=0x2E17,
},
[0x2E1C]={
- ["category"]="pi",
- ["description"]="LEFT LOW PARAPHRASE BRACKET",
- ["linebreak"]="qu",
- ["unicodeslot"]=0x2E1C, -- ⸜
+ category="pi",
+ description="LEFT LOW PARAPHRASE BRACKET",
+ direction="on",
+ linebreak="qu",
+ mirror=0x2E1D,
+ unicodeslot=0x2E1C,
},
[0x2E1D]={
- ["category"]="pf",
- ["description"]="RIGHT LOW PARAPHRASE BRACKET",
- ["linebreak"]="qu",
- ["unicodeslot"]=0x2E1D, -- ⸝
+ category="pf",
+ description="RIGHT LOW PARAPHRASE BRACKET",
+ direction="on",
+ linebreak="qu",
+ mirror=0x2E1C,
+ unicodeslot=0x2E1D,
},
[0x2E80]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL REPEAT",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2E80, -- ⺀
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL REPEAT",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2E80,
},
[0x2E81]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL CLIFF",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2E81, -- ⺁
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL CLIFF",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2E81,
},
[0x2E82]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL SECOND ONE",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2E82, -- ⺂
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL SECOND ONE",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2E82,
},
[0x2E83]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL SECOND TWO",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2E83, -- ⺃
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL SECOND TWO",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2E83,
},
[0x2E84]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL SECOND THREE",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2E84, -- ⺄
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL SECOND THREE",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2E84,
},
[0x2E85]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL PERSON",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2E85, -- ⺅
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL PERSON",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2E85,
},
[0x2E86]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL BOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2E86, -- ⺆
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL BOX",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2E86,
},
[0x2E87]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL TABLE",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2E87, -- ⺇
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL TABLE",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2E87,
},
[0x2E88]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL KNIFE ONE",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2E88, -- ⺈
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL KNIFE ONE",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2E88,
},
[0x2E89]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL KNIFE TWO",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2E89, -- ⺉
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL KNIFE TWO",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2E89,
},
[0x2E8A]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL DIVINATION",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2E8A, -- ⺊
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL DIVINATION",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2E8A,
},
[0x2E8B]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL SEAL",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2E8B, -- ⺋
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL SEAL",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2E8B,
},
[0x2E8C]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL SMALL ONE",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2E8C, -- ⺌
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL SMALL ONE",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2E8C,
},
[0x2E8D]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL SMALL TWO",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2E8D, -- ⺍
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL SMALL TWO",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2E8D,
},
[0x2E8E]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL LAME ONE",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2E8E, -- ⺎
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL LAME ONE",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2E8E,
},
[0x2E8F]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL LAME TWO",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2E8F, -- ⺏
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL LAME TWO",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2E8F,
},
[0x2E90]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL LAME THREE",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2E90, -- ⺐
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL LAME THREE",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2E90,
},
[0x2E91]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL LAME FOUR",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2E91, -- ⺑
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL LAME FOUR",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2E91,
},
[0x2E92]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL SNAKE",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2E92, -- ⺒
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL SNAKE",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2E92,
},
[0x2E93]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL THREAD",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2E93, -- ⺓
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL THREAD",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2E93,
},
[0x2E94]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL SNOUT ONE",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2E94, -- ⺔
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL SNOUT ONE",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2E94,
},
[0x2E95]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL SNOUT TWO",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2E95, -- ⺕
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL SNOUT TWO",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2E95,
},
[0x2E96]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL HEART ONE",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2E96, -- ⺖
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL HEART ONE",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2E96,
},
[0x2E97]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL HEART TWO",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2E97, -- ⺗
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL HEART TWO",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2E97,
},
[0x2E98]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL HAND",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2E98, -- ⺘
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL HAND",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2E98,
},
[0x2E99]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL RAP",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2E99, -- ⺙
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL RAP",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2E99,
},
[0x2E9B]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL CHOKE",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2E9B, -- ⺛
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL CHOKE",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2E9B,
},
[0x2E9C]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL SUN",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2E9C, -- ⺜
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL SUN",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2E9C,
},
[0x2E9D]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL MOON",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2E9D, -- ⺝
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL MOON",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2E9D,
},
[0x2E9E]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL DEATH",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2E9E, -- ⺞
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL DEATH",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2E9E,
},
[0x2E9F]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL MOTHER",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x6BCD },
- ["unicodeslot"]=0x2E9F, -- ⺟
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL MOTHER",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x6BCD },
+ unicodeslot=0x2E9F,
},
[0x2EA0]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL CIVILIAN",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EA0, -- ⺠
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL CIVILIAN",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EA0,
},
[0x2EA1]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL WATER ONE",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EA1, -- ⺡
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL WATER ONE",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EA1,
},
[0x2EA2]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL WATER TWO",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EA2, -- ⺢
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL WATER TWO",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EA2,
},
[0x2EA3]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL FIRE",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EA3, -- ⺣
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL FIRE",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EA3,
},
[0x2EA4]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL PAW ONE",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EA4, -- ⺤
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL PAW ONE",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EA4,
},
[0x2EA5]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL PAW TWO",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EA5, -- ⺥
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL PAW TWO",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EA5,
},
[0x2EA6]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL SIMPLIFIED HALF TREE TRUNK",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EA6, -- ⺦
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL SIMPLIFIED HALF TREE TRUNK",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EA6,
},
[0x2EA7]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL COW",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EA7, -- ⺧
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL COW",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EA7,
},
[0x2EA8]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL DOG",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EA8, -- ⺨
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL DOG",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EA8,
},
[0x2EA9]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL JADE",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EA9, -- ⺩
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL JADE",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EA9,
},
[0x2EAA]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL BOLT OF CLOTH",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EAA, -- ⺪
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL BOLT OF CLOTH",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EAA,
},
[0x2EAB]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL EYE",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EAB, -- ⺫
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL EYE",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EAB,
},
[0x2EAC]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL SPIRIT ONE",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EAC, -- ⺬
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL SPIRIT ONE",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EAC,
},
[0x2EAD]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL SPIRIT TWO",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EAD, -- ⺭
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL SPIRIT TWO",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EAD,
},
[0x2EAE]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL BAMBOO",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EAE, -- ⺮
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL BAMBOO",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EAE,
},
[0x2EAF]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL SILK",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EAF, -- ⺯
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL SILK",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EAF,
},
[0x2EB0]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL C-SIMPLIFIED SILK",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EB0, -- ⺰
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL C-SIMPLIFIED SILK",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EB0,
},
[0x2EB1]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL NET ONE",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EB1, -- ⺱
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL NET ONE",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EB1,
},
[0x2EB2]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL NET TWO",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EB2, -- ⺲
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL NET TWO",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EB2,
},
[0x2EB3]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL NET THREE",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EB3, -- ⺳
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL NET THREE",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EB3,
},
[0x2EB4]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL NET FOUR",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EB4, -- ⺴
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL NET FOUR",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EB4,
},
[0x2EB5]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL MESH",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EB5, -- ⺵
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL MESH",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EB5,
},
[0x2EB6]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL SHEEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EB6, -- ⺶
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL SHEEP",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EB6,
},
[0x2EB7]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL RAM",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EB7, -- ⺷
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL RAM",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EB7,
},
[0x2EB8]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL EWE",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EB8, -- ⺸
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL EWE",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EB8,
},
[0x2EB9]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL OLD",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EB9, -- ⺹
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL OLD",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EB9,
},
[0x2EBA]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL BRUSH ONE",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EBA, -- ⺺
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL BRUSH ONE",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EBA,
},
[0x2EBB]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL BRUSH TWO",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EBB, -- ⺻
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL BRUSH TWO",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EBB,
},
[0x2EBC]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL MEAT",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EBC, -- ⺼
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL MEAT",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EBC,
},
[0x2EBD]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL MORTAR",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EBD, -- ⺽
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL MORTAR",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EBD,
},
[0x2EBE]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL GRASS ONE",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EBE, -- ⺾
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL GRASS ONE",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EBE,
},
[0x2EBF]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL GRASS TWO",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EBF, -- ⺿
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL GRASS TWO",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EBF,
},
[0x2EC0]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL GRASS THREE",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EC0, -- ⻀
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL GRASS THREE",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EC0,
},
[0x2EC1]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL TIGER",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EC1, -- ⻁
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL TIGER",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EC1,
},
[0x2EC2]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL CLOTHES",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EC2, -- ⻂
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL CLOTHES",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EC2,
},
[0x2EC3]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL WEST ONE",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EC3, -- ⻃
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL WEST ONE",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EC3,
},
[0x2EC4]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL WEST TWO",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EC4, -- ⻄
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL WEST TWO",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EC4,
},
[0x2EC5]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL C-SIMPLIFIED SEE",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EC5, -- ⻅
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL C-SIMPLIFIED SEE",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EC5,
},
[0x2EC6]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL SIMPLIFIED HORN",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EC6, -- ⻆
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL SIMPLIFIED HORN",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EC6,
},
[0x2EC7]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL HORN",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EC7, -- ⻇
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL HORN",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EC7,
},
[0x2EC8]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL C-SIMPLIFIED SPEECH",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EC8, -- ⻈
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL C-SIMPLIFIED SPEECH",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EC8,
},
[0x2EC9]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL C-SIMPLIFIED SHELL",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EC9, -- ⻉
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL C-SIMPLIFIED SHELL",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EC9,
},
[0x2ECA]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL FOOT",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2ECA, -- ⻊
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL FOOT",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2ECA,
},
[0x2ECB]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL C-SIMPLIFIED CART",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2ECB, -- ⻋
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL C-SIMPLIFIED CART",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2ECB,
},
[0x2ECC]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL SIMPLIFIED WALK",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2ECC, -- ⻌
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL SIMPLIFIED WALK",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2ECC,
},
[0x2ECD]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL WALK ONE",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2ECD, -- ⻍
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL WALK ONE",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2ECD,
},
[0x2ECE]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL WALK TWO",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2ECE, -- ⻎
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL WALK TWO",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2ECE,
},
[0x2ECF]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL CITY",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2ECF, -- ⻏
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL CITY",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2ECF,
},
[0x2ED0]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL C-SIMPLIFIED GOLD",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2ED0, -- ⻐
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL C-SIMPLIFIED GOLD",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2ED0,
},
[0x2ED1]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL LONG ONE",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2ED1, -- ⻑
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL LONG ONE",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2ED1,
},
[0x2ED2]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL LONG TWO",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2ED2, -- ⻒
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL LONG TWO",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2ED2,
},
[0x2ED3]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL C-SIMPLIFIED LONG",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2ED3, -- ⻓
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL C-SIMPLIFIED LONG",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2ED3,
},
[0x2ED4]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL C-SIMPLIFIED GATE",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2ED4, -- ⻔
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL C-SIMPLIFIED GATE",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2ED4,
},
[0x2ED5]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL MOUND ONE",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2ED5, -- ⻕
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL MOUND ONE",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2ED5,
},
[0x2ED6]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL MOUND TWO",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2ED6, -- ⻖
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL MOUND TWO",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2ED6,
},
[0x2ED7]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL RAIN",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2ED7, -- ⻗
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL RAIN",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2ED7,
},
[0x2ED8]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL BLUE",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2ED8, -- ⻘
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL BLUE",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2ED8,
},
[0x2ED9]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL C-SIMPLIFIED TANNED LEATHER",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2ED9, -- ⻙
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL C-SIMPLIFIED TANNED LEATHER",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2ED9,
},
[0x2EDA]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL C-SIMPLIFIED LEAF",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EDA, -- ⻚
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL C-SIMPLIFIED LEAF",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EDA,
},
[0x2EDB]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL C-SIMPLIFIED WIND",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EDB, -- ⻛
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL C-SIMPLIFIED WIND",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EDB,
},
[0x2EDC]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL C-SIMPLIFIED FLY",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EDC, -- ⻜
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL C-SIMPLIFIED FLY",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EDC,
},
[0x2EDD]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL EAT ONE",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EDD, -- ⻝
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL EAT ONE",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EDD,
},
[0x2EDE]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL EAT TWO",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EDE, -- ⻞
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL EAT TWO",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EDE,
},
[0x2EDF]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL EAT THREE",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EDF, -- ⻟
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL EAT THREE",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EDF,
},
[0x2EE0]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL C-SIMPLIFIED EAT",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EE0, -- ⻠
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL C-SIMPLIFIED EAT",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EE0,
},
[0x2EE1]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL HEAD",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EE1, -- ⻡
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL HEAD",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EE1,
},
[0x2EE2]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL C-SIMPLIFIED HORSE",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EE2, -- ⻢
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL C-SIMPLIFIED HORSE",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EE2,
},
[0x2EE3]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL BONE",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EE3, -- ⻣
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL BONE",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EE3,
},
[0x2EE4]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL GHOST",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EE4, -- ⻤
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL GHOST",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EE4,
},
[0x2EE5]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL C-SIMPLIFIED FISH",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EE5, -- ⻥
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL C-SIMPLIFIED FISH",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EE5,
},
[0x2EE6]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL C-SIMPLIFIED BIRD",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EE6, -- ⻦
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL C-SIMPLIFIED BIRD",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EE6,
},
[0x2EE7]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL C-SIMPLIFIED SALT",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EE7, -- ⻧
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL C-SIMPLIFIED SALT",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EE7,
},
[0x2EE8]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL SIMPLIFIED WHEAT",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EE8, -- ⻨
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL SIMPLIFIED WHEAT",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EE8,
},
[0x2EE9]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL SIMPLIFIED YELLOW",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EE9, -- ⻩
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL SIMPLIFIED YELLOW",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EE9,
},
[0x2EEA]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL C-SIMPLIFIED FROG",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EEA, -- ⻪
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL C-SIMPLIFIED FROG",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EEA,
},
[0x2EEB]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL J-SIMPLIFIED EVEN",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EEB, -- ⻫
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL J-SIMPLIFIED EVEN",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EEB,
},
[0x2EEC]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL C-SIMPLIFIED EVEN",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EEC, -- ⻬
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL C-SIMPLIFIED EVEN",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EEC,
},
[0x2EED]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL J-SIMPLIFIED TOOTH",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EED, -- ⻭
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL J-SIMPLIFIED TOOTH",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EED,
},
[0x2EEE]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL C-SIMPLIFIED TOOTH",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EEE, -- ⻮
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL C-SIMPLIFIED TOOTH",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EEE,
},
[0x2EEF]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL J-SIMPLIFIED DRAGON",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EEF, -- ⻯
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL J-SIMPLIFIED DRAGON",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EEF,
},
[0x2EF0]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL C-SIMPLIFIED DRAGON",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EF0, -- ⻰
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL C-SIMPLIFIED DRAGON",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EF0,
},
[0x2EF1]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL TURTLE",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EF1, -- ⻱
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL TURTLE",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EF1,
},
[0x2EF2]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL J-SIMPLIFIED TURTLE",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2EF2, -- ⻲
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL J-SIMPLIFIED TURTLE",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2EF2,
},
[0x2EF3]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK RADICAL C-SIMPLIFIED TURTLE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x9F9F },
- ["unicodeslot"]=0x2EF3, -- ⻳
+ category="so",
+ cjkwd="w",
+ description="CJK RADICAL C-SIMPLIFIED TURTLE",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x9F9F },
+ unicodeslot=0x2EF3,
},
[0x2F00]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL ONE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x4E00 },
- ["unicodeslot"]=0x2F00, -- ⼀
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL ONE",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x4E00 },
+ unicodeslot=0x2F00,
},
[0x2F01]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL LINE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x4E28 },
- ["unicodeslot"]=0x2F01, -- ⼁
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL LINE",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x4E28 },
+ unicodeslot=0x2F01,
},
[0x2F02]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL DOT",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x4E36 },
- ["unicodeslot"]=0x2F02, -- ⼂
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL DOT",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x4E36 },
+ unicodeslot=0x2F02,
},
[0x2F03]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL SLASH",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x4E3F },
- ["unicodeslot"]=0x2F03, -- ⼃
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL SLASH",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x4E3F },
+ unicodeslot=0x2F03,
},
[0x2F04]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL SECOND",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x4E59 },
- ["unicodeslot"]=0x2F04, -- ⼄
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL SECOND",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x4E59 },
+ unicodeslot=0x2F04,
},
[0x2F05]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL HOOK",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x4E85 },
- ["unicodeslot"]=0x2F05, -- ⼅
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL HOOK",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x4E85 },
+ unicodeslot=0x2F05,
},
[0x2F06]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL TWO",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x4E8C },
- ["unicodeslot"]=0x2F06, -- ⼆
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL TWO",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x4E8C },
+ unicodeslot=0x2F06,
},
[0x2F07]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL LID",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x4EA0 },
- ["unicodeslot"]=0x2F07, -- ⼇
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL LID",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x4EA0 },
+ unicodeslot=0x2F07,
},
[0x2F08]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL MAN",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x4EBA },
- ["unicodeslot"]=0x2F08, -- ⼈
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL MAN",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x4EBA },
+ unicodeslot=0x2F08,
},
[0x2F09]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL LEGS",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x513F },
- ["unicodeslot"]=0x2F09, -- ⼉
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL LEGS",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x513F },
+ unicodeslot=0x2F09,
},
[0x2F0A]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL ENTER",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x5165 },
- ["unicodeslot"]=0x2F0A, -- ⼊
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL ENTER",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x5165 },
+ unicodeslot=0x2F0A,
},
[0x2F0B]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL EIGHT",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x516B },
- ["unicodeslot"]=0x2F0B, -- ⼋
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL EIGHT",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x516B },
+ unicodeslot=0x2F0B,
},
[0x2F0C]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL DOWN BOX",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x5182 },
- ["unicodeslot"]=0x2F0C, -- ⼌
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL DOWN BOX",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x5182 },
+ unicodeslot=0x2F0C,
},
[0x2F0D]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL COVER",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x5196 },
- ["unicodeslot"]=0x2F0D, -- ⼍
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL COVER",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x5196 },
+ unicodeslot=0x2F0D,
},
[0x2F0E]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL ICE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x51AB },
- ["unicodeslot"]=0x2F0E, -- ⼎
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL ICE",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x51AB },
+ unicodeslot=0x2F0E,
},
[0x2F0F]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL TABLE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x51E0 },
- ["unicodeslot"]=0x2F0F, -- ⼏
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL TABLE",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x51E0 },
+ unicodeslot=0x2F0F,
},
[0x2F10]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL OPEN BOX",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x51F5 },
- ["unicodeslot"]=0x2F10, -- ⼐
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL OPEN BOX",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x51F5 },
+ unicodeslot=0x2F10,
},
[0x2F11]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL KNIFE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x5200 },
- ["unicodeslot"]=0x2F11, -- ⼑
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL KNIFE",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x5200 },
+ unicodeslot=0x2F11,
},
[0x2F12]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL POWER",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x529B },
- ["unicodeslot"]=0x2F12, -- ⼒
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL POWER",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x529B },
+ unicodeslot=0x2F12,
},
[0x2F13]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL WRAP",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x52F9 },
- ["unicodeslot"]=0x2F13, -- ⼓
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL WRAP",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x52F9 },
+ unicodeslot=0x2F13,
},
[0x2F14]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL SPOON",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x5315 },
- ["unicodeslot"]=0x2F14, -- ⼔
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL SPOON",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x5315 },
+ unicodeslot=0x2F14,
},
[0x2F15]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL RIGHT OPEN BOX",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x531A },
- ["unicodeslot"]=0x2F15, -- ⼕
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL RIGHT OPEN BOX",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x531A },
+ unicodeslot=0x2F15,
},
[0x2F16]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL HIDING ENCLOSURE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x5338 },
- ["unicodeslot"]=0x2F16, -- ⼖
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL HIDING ENCLOSURE",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x5338 },
+ unicodeslot=0x2F16,
},
[0x2F17]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL TEN",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x5341 },
- ["unicodeslot"]=0x2F17, -- ⼗
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL TEN",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x5341 },
+ unicodeslot=0x2F17,
},
[0x2F18]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL DIVINATION",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x535C },
- ["unicodeslot"]=0x2F18, -- ⼘
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL DIVINATION",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x535C },
+ unicodeslot=0x2F18,
},
[0x2F19]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL SEAL",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x5369 },
- ["unicodeslot"]=0x2F19, -- ⼙
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL SEAL",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x5369 },
+ unicodeslot=0x2F19,
},
[0x2F1A]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL CLIFF",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x5382 },
- ["unicodeslot"]=0x2F1A, -- ⼚
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL CLIFF",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x5382 },
+ unicodeslot=0x2F1A,
},
[0x2F1B]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL PRIVATE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x53B6 },
- ["unicodeslot"]=0x2F1B, -- ⼛
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL PRIVATE",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x53B6 },
+ unicodeslot=0x2F1B,
},
[0x2F1C]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL AGAIN",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x53C8 },
- ["unicodeslot"]=0x2F1C, -- ⼜
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL AGAIN",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x53C8 },
+ unicodeslot=0x2F1C,
},
[0x2F1D]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL MOUTH",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x53E3 },
- ["unicodeslot"]=0x2F1D, -- ⼝
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL MOUTH",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x53E3 },
+ unicodeslot=0x2F1D,
},
[0x2F1E]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL ENCLOSURE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x56D7 },
- ["unicodeslot"]=0x2F1E, -- ⼞
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL ENCLOSURE",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x56D7 },
+ unicodeslot=0x2F1E,
},
[0x2F1F]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL EARTH",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x571F },
- ["unicodeslot"]=0x2F1F, -- ⼟
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL EARTH",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x571F },
+ unicodeslot=0x2F1F,
},
[0x2F20]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL SCHOLAR",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x58EB },
- ["unicodeslot"]=0x2F20, -- ⼠
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL SCHOLAR",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x58EB },
+ unicodeslot=0x2F20,
},
[0x2F21]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL GO",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x5902 },
- ["unicodeslot"]=0x2F21, -- ⼡
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL GO",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x5902 },
+ unicodeslot=0x2F21,
},
[0x2F22]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL GO SLOWLY",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x590A },
- ["unicodeslot"]=0x2F22, -- ⼢
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL GO SLOWLY",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x590A },
+ unicodeslot=0x2F22,
},
[0x2F23]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL EVENING",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x5915 },
- ["unicodeslot"]=0x2F23, -- ⼣
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL EVENING",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x5915 },
+ unicodeslot=0x2F23,
},
[0x2F24]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL BIG",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x5927 },
- ["unicodeslot"]=0x2F24, -- ⼤
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL BIG",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x5927 },
+ unicodeslot=0x2F24,
},
[0x2F25]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL WOMAN",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x5973 },
- ["unicodeslot"]=0x2F25, -- ⼥
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL WOMAN",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x5973 },
+ unicodeslot=0x2F25,
},
[0x2F26]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL CHILD",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x5B50 },
- ["unicodeslot"]=0x2F26, -- ⼦
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL CHILD",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x5B50 },
+ unicodeslot=0x2F26,
},
[0x2F27]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL ROOF",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x5B80 },
- ["unicodeslot"]=0x2F27, -- ⼧
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL ROOF",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x5B80 },
+ unicodeslot=0x2F27,
},
[0x2F28]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL INCH",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x5BF8 },
- ["unicodeslot"]=0x2F28, -- ⼨
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL INCH",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x5BF8 },
+ unicodeslot=0x2F28,
},
[0x2F29]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL SMALL",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x5C0F },
- ["unicodeslot"]=0x2F29, -- ⼩
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL SMALL",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x5C0F },
+ unicodeslot=0x2F29,
},
[0x2F2A]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL LAME",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x5C22 },
- ["unicodeslot"]=0x2F2A, -- ⼪
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL LAME",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x5C22 },
+ unicodeslot=0x2F2A,
},
[0x2F2B]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL CORPSE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x5C38 },
- ["unicodeslot"]=0x2F2B, -- ⼫
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL CORPSE",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x5C38 },
+ unicodeslot=0x2F2B,
},
[0x2F2C]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL SPROUT",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x5C6E },
- ["unicodeslot"]=0x2F2C, -- ⼬
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL SPROUT",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x5C6E },
+ unicodeslot=0x2F2C,
},
[0x2F2D]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL MOUNTAIN",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x5C71 },
- ["unicodeslot"]=0x2F2D, -- ⼭
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL MOUNTAIN",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x5C71 },
+ unicodeslot=0x2F2D,
},
[0x2F2E]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL RIVER",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x5DDB },
- ["unicodeslot"]=0x2F2E, -- ⼮
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL RIVER",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x5DDB },
+ unicodeslot=0x2F2E,
},
[0x2F2F]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL WORK",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x5DE5 },
- ["unicodeslot"]=0x2F2F, -- ⼯
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL WORK",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x5DE5 },
+ unicodeslot=0x2F2F,
},
[0x2F30]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL ONESELF",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x5DF1 },
- ["unicodeslot"]=0x2F30, -- ⼰
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL ONESELF",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x5DF1 },
+ unicodeslot=0x2F30,
},
[0x2F31]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL TURBAN",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x5DFE },
- ["unicodeslot"]=0x2F31, -- ⼱
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL TURBAN",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x5DFE },
+ unicodeslot=0x2F31,
},
[0x2F32]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL DRY",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x5E72 },
- ["unicodeslot"]=0x2F32, -- ⼲
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL DRY",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x5E72 },
+ unicodeslot=0x2F32,
},
[0x2F33]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL SHORT THREAD",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x5E7A },
- ["unicodeslot"]=0x2F33, -- ⼳
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL SHORT THREAD",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x5E7A },
+ unicodeslot=0x2F33,
},
[0x2F34]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL DOTTED CLIFF",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x5E7F },
- ["unicodeslot"]=0x2F34, -- ⼴
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL DOTTED CLIFF",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x5E7F },
+ unicodeslot=0x2F34,
},
[0x2F35]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL LONG STRIDE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x5EF4 },
- ["unicodeslot"]=0x2F35, -- ⼵
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL LONG STRIDE",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x5EF4 },
+ unicodeslot=0x2F35,
},
[0x2F36]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL TWO HANDS",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x5EFE },
- ["unicodeslot"]=0x2F36, -- ⼶
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL TWO HANDS",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x5EFE },
+ unicodeslot=0x2F36,
},
[0x2F37]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL SHOOT",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x5F0B },
- ["unicodeslot"]=0x2F37, -- ⼷
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL SHOOT",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x5F0B },
+ unicodeslot=0x2F37,
},
[0x2F38]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL BOW",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x5F13 },
- ["unicodeslot"]=0x2F38, -- ⼸
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL BOW",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x5F13 },
+ unicodeslot=0x2F38,
},
[0x2F39]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL SNOUT",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x5F50 },
- ["unicodeslot"]=0x2F39, -- ⼹
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL SNOUT",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x5F50 },
+ unicodeslot=0x2F39,
},
[0x2F3A]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL BRISTLE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x5F61 },
- ["unicodeslot"]=0x2F3A, -- ⼺
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL BRISTLE",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x5F61 },
+ unicodeslot=0x2F3A,
},
[0x2F3B]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL STEP",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x5F73 },
- ["unicodeslot"]=0x2F3B, -- ⼻
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL STEP",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x5F73 },
+ unicodeslot=0x2F3B,
},
[0x2F3C]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL HEART",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x5FC3 },
- ["unicodeslot"]=0x2F3C, -- ⼼
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL HEART",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x5FC3 },
+ unicodeslot=0x2F3C,
},
[0x2F3D]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL HALBERD",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x6208 },
- ["unicodeslot"]=0x2F3D, -- ⼽
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL HALBERD",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x6208 },
+ unicodeslot=0x2F3D,
},
[0x2F3E]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL DOOR",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x6236 },
- ["unicodeslot"]=0x2F3E, -- ⼾
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL DOOR",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x6236 },
+ unicodeslot=0x2F3E,
},
[0x2F3F]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL HAND",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x624B },
- ["unicodeslot"]=0x2F3F, -- ⼿
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL HAND",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x624B },
+ unicodeslot=0x2F3F,
},
[0x2F40]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL BRANCH",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x652F },
- ["unicodeslot"]=0x2F40, -- ⽀
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL BRANCH",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x652F },
+ unicodeslot=0x2F40,
},
[0x2F41]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL RAP",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x6534 },
- ["unicodeslot"]=0x2F41, -- ⽁
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL RAP",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x6534 },
+ unicodeslot=0x2F41,
},
[0x2F42]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL SCRIPT",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x6587 },
- ["unicodeslot"]=0x2F42, -- ⽂
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL SCRIPT",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x6587 },
+ unicodeslot=0x2F42,
},
[0x2F43]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL DIPPER",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x6597 },
- ["unicodeslot"]=0x2F43, -- ⽃
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL DIPPER",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x6597 },
+ unicodeslot=0x2F43,
},
[0x2F44]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL AXE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x65A4 },
- ["unicodeslot"]=0x2F44, -- ⽄
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL AXE",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x65A4 },
+ unicodeslot=0x2F44,
},
[0x2F45]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL SQUARE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x65B9 },
- ["unicodeslot"]=0x2F45, -- ⽅
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL SQUARE",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x65B9 },
+ unicodeslot=0x2F45,
},
[0x2F46]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL NOT",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x65E0 },
- ["unicodeslot"]=0x2F46, -- ⽆
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL NOT",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x65E0 },
+ unicodeslot=0x2F46,
},
[0x2F47]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL SUN",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x65E5 },
- ["unicodeslot"]=0x2F47, -- ⽇
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL SUN",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x65E5 },
+ unicodeslot=0x2F47,
},
[0x2F48]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL SAY",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x66F0 },
- ["unicodeslot"]=0x2F48, -- ⽈
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL SAY",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x66F0 },
+ unicodeslot=0x2F48,
},
[0x2F49]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL MOON",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x6708 },
- ["unicodeslot"]=0x2F49, -- ⽉
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL MOON",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x6708 },
+ unicodeslot=0x2F49,
},
[0x2F4A]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL TREE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x6728 },
- ["unicodeslot"]=0x2F4A, -- ⽊
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL TREE",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x6728 },
+ unicodeslot=0x2F4A,
},
[0x2F4B]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL LACK",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x6B20 },
- ["unicodeslot"]=0x2F4B, -- ⽋
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL LACK",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x6B20 },
+ unicodeslot=0x2F4B,
},
[0x2F4C]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL STOP",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x6B62 },
- ["unicodeslot"]=0x2F4C, -- ⽌
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL STOP",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x6B62 },
+ unicodeslot=0x2F4C,
},
[0x2F4D]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL DEATH",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x6B79 },
- ["unicodeslot"]=0x2F4D, -- ⽍
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL DEATH",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x6B79 },
+ unicodeslot=0x2F4D,
},
[0x2F4E]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL WEAPON",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x6BB3 },
- ["unicodeslot"]=0x2F4E, -- ⽎
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL WEAPON",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x6BB3 },
+ unicodeslot=0x2F4E,
},
[0x2F4F]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL DO NOT",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x6BCB },
- ["unicodeslot"]=0x2F4F, -- ⽏
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL DO NOT",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x6BCB },
+ unicodeslot=0x2F4F,
},
[0x2F50]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL COMPARE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x6BD4 },
- ["unicodeslot"]=0x2F50, -- ⽐
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL COMPARE",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x6BD4 },
+ unicodeslot=0x2F50,
},
[0x2F51]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL FUR",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x6BDB },
- ["unicodeslot"]=0x2F51, -- ⽑
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL FUR",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x6BDB },
+ unicodeslot=0x2F51,
},
[0x2F52]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL CLAN",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x6C0F },
- ["unicodeslot"]=0x2F52, -- ⽒
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL CLAN",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x6C0F },
+ unicodeslot=0x2F52,
},
[0x2F53]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL STEAM",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x6C14 },
- ["unicodeslot"]=0x2F53, -- ⽓
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL STEAM",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x6C14 },
+ unicodeslot=0x2F53,
},
[0x2F54]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL WATER",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x6C34 },
- ["unicodeslot"]=0x2F54, -- ⽔
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL WATER",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x6C34 },
+ unicodeslot=0x2F54,
},
[0x2F55]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL FIRE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x706B },
- ["unicodeslot"]=0x2F55, -- ⽕
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL FIRE",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x706B },
+ unicodeslot=0x2F55,
},
[0x2F56]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL CLAW",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x722A },
- ["unicodeslot"]=0x2F56, -- ⽖
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL CLAW",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x722A },
+ unicodeslot=0x2F56,
},
[0x2F57]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL FATHER",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x7236 },
- ["unicodeslot"]=0x2F57, -- ⽗
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL FATHER",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x7236 },
+ unicodeslot=0x2F57,
},
[0x2F58]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL DOUBLE X",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x723B },
- ["unicodeslot"]=0x2F58, -- ⽘
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL DOUBLE X",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x723B },
+ unicodeslot=0x2F58,
},
[0x2F59]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL HALF TREE TRUNK",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x723F },
- ["unicodeslot"]=0x2F59, -- ⽙
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL HALF TREE TRUNK",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x723F },
+ unicodeslot=0x2F59,
},
[0x2F5A]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL SLICE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x7247 },
- ["unicodeslot"]=0x2F5A, -- ⽚
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL SLICE",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x7247 },
+ unicodeslot=0x2F5A,
},
[0x2F5B]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL FANG",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x7259 },
- ["unicodeslot"]=0x2F5B, -- ⽛
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL FANG",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x7259 },
+ unicodeslot=0x2F5B,
},
[0x2F5C]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL COW",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x725B },
- ["unicodeslot"]=0x2F5C, -- ⽜
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL COW",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x725B },
+ unicodeslot=0x2F5C,
},
[0x2F5D]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL DOG",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x72AC },
- ["unicodeslot"]=0x2F5D, -- ⽝
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL DOG",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x72AC },
+ unicodeslot=0x2F5D,
},
[0x2F5E]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL PROFOUND",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x7384 },
- ["unicodeslot"]=0x2F5E, -- ⽞
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL PROFOUND",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x7384 },
+ unicodeslot=0x2F5E,
},
[0x2F5F]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL JADE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x7389 },
- ["unicodeslot"]=0x2F5F, -- ⽟
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL JADE",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x7389 },
+ unicodeslot=0x2F5F,
},
[0x2F60]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL MELON",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x74DC },
- ["unicodeslot"]=0x2F60, -- ⽠
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL MELON",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x74DC },
+ unicodeslot=0x2F60,
},
[0x2F61]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL TILE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x74E6 },
- ["unicodeslot"]=0x2F61, -- ⽡
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL TILE",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x74E6 },
+ unicodeslot=0x2F61,
},
[0x2F62]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL SWEET",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x7518 },
- ["unicodeslot"]=0x2F62, -- ⽢
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL SWEET",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x7518 },
+ unicodeslot=0x2F62,
},
[0x2F63]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL LIFE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x751F },
- ["unicodeslot"]=0x2F63, -- ⽣
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL LIFE",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x751F },
+ unicodeslot=0x2F63,
},
[0x2F64]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL USE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x7528 },
- ["unicodeslot"]=0x2F64, -- ⽤
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL USE",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x7528 },
+ unicodeslot=0x2F64,
},
[0x2F65]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL FIELD",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x7530 },
- ["unicodeslot"]=0x2F65, -- ⽥
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL FIELD",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x7530 },
+ unicodeslot=0x2F65,
},
[0x2F66]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL BOLT OF CLOTH",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x758B },
- ["unicodeslot"]=0x2F66, -- ⽦
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL BOLT OF CLOTH",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x758B },
+ unicodeslot=0x2F66,
},
[0x2F67]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL SICKNESS",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x7592 },
- ["unicodeslot"]=0x2F67, -- ⽧
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL SICKNESS",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x7592 },
+ unicodeslot=0x2F67,
},
[0x2F68]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL DOTTED TENT",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x7676 },
- ["unicodeslot"]=0x2F68, -- ⽨
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL DOTTED TENT",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x7676 },
+ unicodeslot=0x2F68,
},
[0x2F69]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL WHITE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x767D },
- ["unicodeslot"]=0x2F69, -- ⽩
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL WHITE",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x767D },
+ unicodeslot=0x2F69,
},
[0x2F6A]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL SKIN",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x76AE },
- ["unicodeslot"]=0x2F6A, -- ⽪
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL SKIN",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x76AE },
+ unicodeslot=0x2F6A,
},
[0x2F6B]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL DISH",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x76BF },
- ["unicodeslot"]=0x2F6B, -- ⽫
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL DISH",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x76BF },
+ unicodeslot=0x2F6B,
},
[0x2F6C]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL EYE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x76EE },
- ["unicodeslot"]=0x2F6C, -- ⽬
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL EYE",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x76EE },
+ unicodeslot=0x2F6C,
},
[0x2F6D]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL SPEAR",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x77DB },
- ["unicodeslot"]=0x2F6D, -- ⽭
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL SPEAR",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x77DB },
+ unicodeslot=0x2F6D,
},
[0x2F6E]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL ARROW",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x77E2 },
- ["unicodeslot"]=0x2F6E, -- ⽮
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL ARROW",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x77E2 },
+ unicodeslot=0x2F6E,
},
[0x2F6F]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL STONE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x77F3 },
- ["unicodeslot"]=0x2F6F, -- ⽯
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL STONE",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x77F3 },
+ unicodeslot=0x2F6F,
},
[0x2F70]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL SPIRIT",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x793A },
- ["unicodeslot"]=0x2F70, -- ⽰
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL SPIRIT",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x793A },
+ unicodeslot=0x2F70,
},
[0x2F71]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL TRACK",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x79B8 },
- ["unicodeslot"]=0x2F71, -- ⽱
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL TRACK",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x79B8 },
+ unicodeslot=0x2F71,
},
[0x2F72]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL GRAIN",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x79BE },
- ["unicodeslot"]=0x2F72, -- ⽲
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL GRAIN",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x79BE },
+ unicodeslot=0x2F72,
},
[0x2F73]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL CAVE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x7A74 },
- ["unicodeslot"]=0x2F73, -- ⽳
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL CAVE",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x7A74 },
+ unicodeslot=0x2F73,
},
[0x2F74]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL STAND",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x7ACB },
- ["unicodeslot"]=0x2F74, -- ⽴
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL STAND",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x7ACB },
+ unicodeslot=0x2F74,
},
[0x2F75]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL BAMBOO",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x7AF9 },
- ["unicodeslot"]=0x2F75, -- ⽵
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL BAMBOO",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x7AF9 },
+ unicodeslot=0x2F75,
},
[0x2F76]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL RICE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x7C73 },
- ["unicodeslot"]=0x2F76, -- ⽶
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL RICE",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x7C73 },
+ unicodeslot=0x2F76,
},
[0x2F77]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL SILK",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x7CF8 },
- ["unicodeslot"]=0x2F77, -- ⽷
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL SILK",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x7CF8 },
+ unicodeslot=0x2F77,
},
[0x2F78]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL JAR",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x7F36 },
- ["unicodeslot"]=0x2F78, -- ⽸
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL JAR",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x7F36 },
+ unicodeslot=0x2F78,
},
[0x2F79]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL NET",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x7F51 },
- ["unicodeslot"]=0x2F79, -- ⽹
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL NET",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x7F51 },
+ unicodeslot=0x2F79,
},
[0x2F7A]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL SHEEP",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x7F8A },
- ["unicodeslot"]=0x2F7A, -- ⽺
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL SHEEP",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x7F8A },
+ unicodeslot=0x2F7A,
},
[0x2F7B]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL FEATHER",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x7FBD },
- ["unicodeslot"]=0x2F7B, -- ⽻
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL FEATHER",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x7FBD },
+ unicodeslot=0x2F7B,
},
[0x2F7C]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL OLD",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x8001 },
- ["unicodeslot"]=0x2F7C, -- ⽼
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL OLD",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x8001 },
+ unicodeslot=0x2F7C,
},
[0x2F7D]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL AND",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x800C },
- ["unicodeslot"]=0x2F7D, -- ⽽
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL AND",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x800C },
+ unicodeslot=0x2F7D,
},
[0x2F7E]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL PLOW",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x8012 },
- ["unicodeslot"]=0x2F7E, -- ⽾
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL PLOW",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x8012 },
+ unicodeslot=0x2F7E,
},
[0x2F7F]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL EAR",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x8033 },
- ["unicodeslot"]=0x2F7F, -- ⽿
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL EAR",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x8033 },
+ unicodeslot=0x2F7F,
},
[0x2F80]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL BRUSH",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x807F },
- ["unicodeslot"]=0x2F80, -- ⾀
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL BRUSH",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x807F },
+ unicodeslot=0x2F80,
},
[0x2F81]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL MEAT",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x8089 },
- ["unicodeslot"]=0x2F81, -- ⾁
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL MEAT",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x8089 },
+ unicodeslot=0x2F81,
},
[0x2F82]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL MINISTER",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x81E3 },
- ["unicodeslot"]=0x2F82, -- ⾂
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL MINISTER",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x81E3 },
+ unicodeslot=0x2F82,
},
[0x2F83]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL SELF",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x81EA },
- ["unicodeslot"]=0x2F83, -- ⾃
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL SELF",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x81EA },
+ unicodeslot=0x2F83,
},
[0x2F84]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL ARRIVE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x81F3 },
- ["unicodeslot"]=0x2F84, -- ⾄
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL ARRIVE",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x81F3 },
+ unicodeslot=0x2F84,
},
[0x2F85]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL MORTAR",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x81FC },
- ["unicodeslot"]=0x2F85, -- ⾅
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL MORTAR",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x81FC },
+ unicodeslot=0x2F85,
},
[0x2F86]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL TONGUE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x820C },
- ["unicodeslot"]=0x2F86, -- ⾆
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL TONGUE",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x820C },
+ unicodeslot=0x2F86,
},
[0x2F87]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL OPPOSE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x821B },
- ["unicodeslot"]=0x2F87, -- ⾇
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL OPPOSE",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x821B },
+ unicodeslot=0x2F87,
},
[0x2F88]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL BOAT",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x821F },
- ["unicodeslot"]=0x2F88, -- ⾈
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL BOAT",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x821F },
+ unicodeslot=0x2F88,
},
[0x2F89]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL STOPPING",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x826E },
- ["unicodeslot"]=0x2F89, -- ⾉
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL STOPPING",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x826E },
+ unicodeslot=0x2F89,
},
[0x2F8A]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL COLOR",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x8272 },
- ["unicodeslot"]=0x2F8A, -- ⾊
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL COLOR",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x8272 },
+ unicodeslot=0x2F8A,
},
[0x2F8B]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL GRASS",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x8278 },
- ["unicodeslot"]=0x2F8B, -- ⾋
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL GRASS",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x8278 },
+ unicodeslot=0x2F8B,
},
[0x2F8C]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL TIGER",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x864D },
- ["unicodeslot"]=0x2F8C, -- ⾌
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL TIGER",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x864D },
+ unicodeslot=0x2F8C,
},
[0x2F8D]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL INSECT",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x866B },
- ["unicodeslot"]=0x2F8D, -- ⾍
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL INSECT",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x866B },
+ unicodeslot=0x2F8D,
},
[0x2F8E]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL BLOOD",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x8840 },
- ["unicodeslot"]=0x2F8E, -- ⾎
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL BLOOD",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x8840 },
+ unicodeslot=0x2F8E,
},
[0x2F8F]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL WALK ENCLOSURE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x884C },
- ["unicodeslot"]=0x2F8F, -- ⾏
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL WALK ENCLOSURE",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x884C },
+ unicodeslot=0x2F8F,
},
[0x2F90]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL CLOTHES",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x8863 },
- ["unicodeslot"]=0x2F90, -- ⾐
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL CLOTHES",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x8863 },
+ unicodeslot=0x2F90,
},
[0x2F91]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL WEST",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x897E },
- ["unicodeslot"]=0x2F91, -- ⾑
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL WEST",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x897E },
+ unicodeslot=0x2F91,
},
[0x2F92]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL SEE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x898B },
- ["unicodeslot"]=0x2F92, -- ⾒
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL SEE",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x898B },
+ unicodeslot=0x2F92,
},
[0x2F93]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL HORN",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x89D2 },
- ["unicodeslot"]=0x2F93, -- ⾓
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL HORN",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x89D2 },
+ unicodeslot=0x2F93,
},
[0x2F94]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL SPEECH",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x8A00 },
- ["unicodeslot"]=0x2F94, -- ⾔
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL SPEECH",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x8A00 },
+ unicodeslot=0x2F94,
},
[0x2F95]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL VALLEY",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x8C37 },
- ["unicodeslot"]=0x2F95, -- ⾕
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL VALLEY",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x8C37 },
+ unicodeslot=0x2F95,
},
[0x2F96]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL BEAN",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x8C46 },
- ["unicodeslot"]=0x2F96, -- ⾖
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL BEAN",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x8C46 },
+ unicodeslot=0x2F96,
},
[0x2F97]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL PIG",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x8C55 },
- ["unicodeslot"]=0x2F97, -- ⾗
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL PIG",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x8C55 },
+ unicodeslot=0x2F97,
},
[0x2F98]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL BADGER",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x8C78 },
- ["unicodeslot"]=0x2F98, -- ⾘
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL BADGER",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x8C78 },
+ unicodeslot=0x2F98,
},
[0x2F99]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL SHELL",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x8C9D },
- ["unicodeslot"]=0x2F99, -- ⾙
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL SHELL",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x8C9D },
+ unicodeslot=0x2F99,
},
[0x2F9A]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL RED",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x8D64 },
- ["unicodeslot"]=0x2F9A, -- ⾚
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL RED",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x8D64 },
+ unicodeslot=0x2F9A,
},
[0x2F9B]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL RUN",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x8D70 },
- ["unicodeslot"]=0x2F9B, -- ⾛
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL RUN",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x8D70 },
+ unicodeslot=0x2F9B,
},
[0x2F9C]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL FOOT",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x8DB3 },
- ["unicodeslot"]=0x2F9C, -- ⾜
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL FOOT",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x8DB3 },
+ unicodeslot=0x2F9C,
},
[0x2F9D]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL BODY",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x8EAB },
- ["unicodeslot"]=0x2F9D, -- ⾝
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL BODY",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x8EAB },
+ unicodeslot=0x2F9D,
},
[0x2F9E]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL CART",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x8ECA },
- ["unicodeslot"]=0x2F9E, -- ⾞
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL CART",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x8ECA },
+ unicodeslot=0x2F9E,
},
[0x2F9F]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL BITTER",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x8F9B },
- ["unicodeslot"]=0x2F9F, -- ⾟
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL BITTER",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x8F9B },
+ unicodeslot=0x2F9F,
},
[0x2FA0]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL MORNING",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x8FB0 },
- ["unicodeslot"]=0x2FA0, -- ⾠
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL MORNING",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x8FB0 },
+ unicodeslot=0x2FA0,
},
[0x2FA1]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL WALK",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x8FB5 },
- ["unicodeslot"]=0x2FA1, -- ⾡
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL WALK",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x8FB5 },
+ unicodeslot=0x2FA1,
},
[0x2FA2]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL CITY",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x9091 },
- ["unicodeslot"]=0x2FA2, -- ⾢
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL CITY",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x9091 },
+ unicodeslot=0x2FA2,
},
[0x2FA3]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL WINE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x9149 },
- ["unicodeslot"]=0x2FA3, -- ⾣
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL WINE",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x9149 },
+ unicodeslot=0x2FA3,
},
[0x2FA4]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL DISTINGUISH",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x91C6 },
- ["unicodeslot"]=0x2FA4, -- ⾤
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL DISTINGUISH",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x91C6 },
+ unicodeslot=0x2FA4,
},
[0x2FA5]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL VILLAGE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x91CC },
- ["unicodeslot"]=0x2FA5, -- ⾥
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL VILLAGE",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x91CC },
+ unicodeslot=0x2FA5,
},
[0x2FA6]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL GOLD",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x91D1 },
- ["unicodeslot"]=0x2FA6, -- ⾦
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL GOLD",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x91D1 },
+ unicodeslot=0x2FA6,
},
[0x2FA7]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL LONG",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x9577 },
- ["unicodeslot"]=0x2FA7, -- ⾧
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL LONG",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x9577 },
+ unicodeslot=0x2FA7,
},
[0x2FA8]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL GATE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x9580 },
- ["unicodeslot"]=0x2FA8, -- ⾨
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL GATE",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x9580 },
+ unicodeslot=0x2FA8,
},
[0x2FA9]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL MOUND",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x961C },
- ["unicodeslot"]=0x2FA9, -- ⾩
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL MOUND",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x961C },
+ unicodeslot=0x2FA9,
},
[0x2FAA]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL SLAVE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x96B6 },
- ["unicodeslot"]=0x2FAA, -- ⾪
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL SLAVE",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x96B6 },
+ unicodeslot=0x2FAA,
},
[0x2FAB]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL SHORT TAILED BIRD",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x96B9 },
- ["unicodeslot"]=0x2FAB, -- ⾫
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL SHORT TAILED BIRD",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x96B9 },
+ unicodeslot=0x2FAB,
},
[0x2FAC]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL RAIN",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x96E8 },
- ["unicodeslot"]=0x2FAC, -- ⾬
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL RAIN",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x96E8 },
+ unicodeslot=0x2FAC,
},
[0x2FAD]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL BLUE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x9751 },
- ["unicodeslot"]=0x2FAD, -- ⾭
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL BLUE",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x9751 },
+ unicodeslot=0x2FAD,
},
[0x2FAE]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL WRONG",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x975E },
- ["unicodeslot"]=0x2FAE, -- ⾮
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL WRONG",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x975E },
+ unicodeslot=0x2FAE,
},
[0x2FAF]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL FACE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x9762 },
- ["unicodeslot"]=0x2FAF, -- ⾯
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL FACE",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x9762 },
+ unicodeslot=0x2FAF,
},
[0x2FB0]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL LEATHER",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x9769 },
- ["unicodeslot"]=0x2FB0, -- ⾰
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL LEATHER",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x9769 },
+ unicodeslot=0x2FB0,
},
[0x2FB1]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL TANNED LEATHER",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x97CB },
- ["unicodeslot"]=0x2FB1, -- ⾱
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL TANNED LEATHER",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x97CB },
+ unicodeslot=0x2FB1,
},
[0x2FB2]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL LEEK",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x97ED },
- ["unicodeslot"]=0x2FB2, -- ⾲
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL LEEK",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x97ED },
+ unicodeslot=0x2FB2,
},
[0x2FB3]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL SOUND",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x97F3 },
- ["unicodeslot"]=0x2FB3, -- ⾳
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL SOUND",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x97F3 },
+ unicodeslot=0x2FB3,
},
[0x2FB4]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL LEAF",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x9801 },
- ["unicodeslot"]=0x2FB4, -- ⾴
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL LEAF",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x9801 },
+ unicodeslot=0x2FB4,
},
[0x2FB5]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL WIND",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x98A8 },
- ["unicodeslot"]=0x2FB5, -- ⾵
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL WIND",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x98A8 },
+ unicodeslot=0x2FB5,
},
[0x2FB6]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL FLY",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x98DB },
- ["unicodeslot"]=0x2FB6, -- ⾶
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL FLY",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x98DB },
+ unicodeslot=0x2FB6,
},
[0x2FB7]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL EAT",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x98DF },
- ["unicodeslot"]=0x2FB7, -- ⾷
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL EAT",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x98DF },
+ unicodeslot=0x2FB7,
},
[0x2FB8]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL HEAD",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x9996 },
- ["unicodeslot"]=0x2FB8, -- ⾸
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL HEAD",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x9996 },
+ unicodeslot=0x2FB8,
},
[0x2FB9]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL FRAGRANT",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x9999 },
- ["unicodeslot"]=0x2FB9, -- ⾹
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL FRAGRANT",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x9999 },
+ unicodeslot=0x2FB9,
},
[0x2FBA]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL HORSE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x99AC },
- ["unicodeslot"]=0x2FBA, -- ⾺
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL HORSE",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x99AC },
+ unicodeslot=0x2FBA,
},
[0x2FBB]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL BONE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x9AA8 },
- ["unicodeslot"]=0x2FBB, -- ⾻
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL BONE",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x9AA8 },
+ unicodeslot=0x2FBB,
},
[0x2FBC]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL TALL",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x9AD8 },
- ["unicodeslot"]=0x2FBC, -- ⾼
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL TALL",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x9AD8 },
+ unicodeslot=0x2FBC,
},
[0x2FBD]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL HAIR",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x9ADF },
- ["unicodeslot"]=0x2FBD, -- ⾽
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL HAIR",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x9ADF },
+ unicodeslot=0x2FBD,
},
[0x2FBE]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL FIGHT",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x9B25 },
- ["unicodeslot"]=0x2FBE, -- ⾾
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL FIGHT",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x9B25 },
+ unicodeslot=0x2FBE,
},
[0x2FBF]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL SACRIFICIAL WINE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x9B2F },
- ["unicodeslot"]=0x2FBF, -- ⾿
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL SACRIFICIAL WINE",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x9B2F },
+ unicodeslot=0x2FBF,
},
[0x2FC0]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL CAULDRON",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x9B32 },
- ["unicodeslot"]=0x2FC0, -- ⿀
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL CAULDRON",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x9B32 },
+ unicodeslot=0x2FC0,
},
[0x2FC1]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL GHOST",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x9B3C },
- ["unicodeslot"]=0x2FC1, -- ⿁
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL GHOST",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x9B3C },
+ unicodeslot=0x2FC1,
},
[0x2FC2]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL FISH",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x9B5A },
- ["unicodeslot"]=0x2FC2, -- ⿂
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL FISH",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x9B5A },
+ unicodeslot=0x2FC2,
},
[0x2FC3]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL BIRD",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x9CE5 },
- ["unicodeslot"]=0x2FC3, -- ⿃
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL BIRD",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x9CE5 },
+ unicodeslot=0x2FC3,
},
[0x2FC4]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL SALT",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x9E75 },
- ["unicodeslot"]=0x2FC4, -- ⿄
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL SALT",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x9E75 },
+ unicodeslot=0x2FC4,
},
[0x2FC5]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL DEER",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x9E7F },
- ["unicodeslot"]=0x2FC5, -- ⿅
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL DEER",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x9E7F },
+ unicodeslot=0x2FC5,
},
[0x2FC6]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL WHEAT",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x9EA5 },
- ["unicodeslot"]=0x2FC6, -- ⿆
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL WHEAT",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x9EA5 },
+ unicodeslot=0x2FC6,
},
[0x2FC7]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL HEMP",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x9EBB },
- ["unicodeslot"]=0x2FC7, -- ⿇
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL HEMP",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x9EBB },
+ unicodeslot=0x2FC7,
},
[0x2FC8]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL YELLOW",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x9EC3 },
- ["unicodeslot"]=0x2FC8, -- ⿈
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL YELLOW",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x9EC3 },
+ unicodeslot=0x2FC8,
},
[0x2FC9]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL MILLET",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x9ECD },
- ["unicodeslot"]=0x2FC9, -- ⿉
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL MILLET",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x9ECD },
+ unicodeslot=0x2FC9,
},
[0x2FCA]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL BLACK",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x9ED1 },
- ["unicodeslot"]=0x2FCA, -- ⿊
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL BLACK",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x9ED1 },
+ unicodeslot=0x2FCA,
},
[0x2FCB]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL EMBROIDERY",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x9EF9 },
- ["unicodeslot"]=0x2FCB, -- ⿋
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL EMBROIDERY",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x9EF9 },
+ unicodeslot=0x2FCB,
},
[0x2FCC]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL FROG",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x9EFD },
- ["unicodeslot"]=0x2FCC, -- ⿌
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL FROG",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x9EFD },
+ unicodeslot=0x2FCC,
},
[0x2FCD]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL TRIPOD",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x9F0E },
- ["unicodeslot"]=0x2FCD, -- ⿍
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL TRIPOD",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x9F0E },
+ unicodeslot=0x2FCD,
},
[0x2FCE]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL DRUM",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x9F13 },
- ["unicodeslot"]=0x2FCE, -- ⿎
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL DRUM",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x9F13 },
+ unicodeslot=0x2FCE,
},
[0x2FCF]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL RAT",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x9F20 },
- ["unicodeslot"]=0x2FCF, -- ⿏
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL RAT",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x9F20 },
+ unicodeslot=0x2FCF,
},
[0x2FD0]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL NOSE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x9F3B },
- ["unicodeslot"]=0x2FD0, -- ⿐
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL NOSE",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x9F3B },
+ unicodeslot=0x2FD0,
},
[0x2FD1]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL EVEN",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x9F4A },
- ["unicodeslot"]=0x2FD1, -- ⿑
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL EVEN",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x9F4A },
+ unicodeslot=0x2FD1,
},
[0x2FD2]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL TOOTH",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x9F52 },
- ["unicodeslot"]=0x2FD2, -- ⿒
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL TOOTH",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x9F52 },
+ unicodeslot=0x2FD2,
},
[0x2FD3]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL DRAGON",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x9F8D },
- ["unicodeslot"]=0x2FD3, -- ⿓
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL DRAGON",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x9F8D },
+ unicodeslot=0x2FD3,
},
[0x2FD4]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL TURTLE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x9F9C },
- ["unicodeslot"]=0x2FD4, -- ⿔
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL TURTLE",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x9F9C },
+ unicodeslot=0x2FD4,
},
[0x2FD5]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KANGXI RADICAL FLUTE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x9FA0 },
- ["unicodeslot"]=0x2FD5, -- ⿕
+ category="so",
+ cjkwd="w",
+ description="KANGXI RADICAL FLUTE",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x9FA0 },
+ unicodeslot=0x2FD5,
},
[0x2FF0]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2FF0, -- ⿰
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2FF0,
},
[0x2FF1]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO BELOW",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2FF1, -- ⿱
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO BELOW",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2FF1,
},
[0x2FF2]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO MIDDLE AND RIGHT",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2FF2, -- ⿲
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO MIDDLE AND RIGHT",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2FF2,
},
[0x2FF3]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO MIDDLE AND BELOW",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2FF3, -- ⿳
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO MIDDLE AND BELOW",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2FF3,
},
[0x2FF4]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC DESCRIPTION CHARACTER FULL SURROUND",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2FF4, -- ⿴
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC DESCRIPTION CHARACTER FULL SURROUND",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2FF4,
},
[0x2FF5]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM ABOVE",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2FF5, -- ⿵
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM ABOVE",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2FF5,
},
[0x2FF6]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM BELOW",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2FF6, -- ⿶
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM BELOW",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2FF6,
},
[0x2FF7]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LEFT",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2FF7, -- ⿷
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LEFT",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2FF7,
},
[0x2FF8]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER LEFT",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2FF8, -- ⿸
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER LEFT",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2FF8,
},
[0x2FF9]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER RIGHT",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2FF9, -- ⿹
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER RIGHT",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2FF9,
},
[0x2FFA]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LOWER LEFT",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2FFA, -- ⿺
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LOWER LEFT",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2FFA,
},
[0x2FFB]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2FFB, -- ⿻
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x2FFB,
},
[0x3000]={
- ["category"]="zs",
- ["cjkwd"]="f",
- ["description"]="IDEOGRAPHIC SPACE",
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x0020 },
- ["unicodeslot"]=0x3000, --  
+ category="zs",
+ cjkwd="f",
+ contextname="ideographicspace",
+ description="IDEOGRAPHIC SPACE",
+ direction="ws",
+ linebreak="id",
+ specials={ "wide", 0x0020 },
+ unicodeslot=0x3000,
},
[0x3001]={
- ["category"]="po",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC COMMA",
- ["linebreak"]="cl",
- ["unicodeslot"]=0x3001, -- 、
+ category="po",
+ cjkwd="w",
+ description="IDEOGRAPHIC COMMA",
+ direction="on",
+ linebreak="cl",
+ unicodeslot=0x3001,
},
[0x3002]={
- ["category"]="po",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC FULL STOP",
- ["linebreak"]="cl",
- ["unicodeslot"]=0x3002, -- 。
+ category="po",
+ cjkwd="w",
+ description="IDEOGRAPHIC FULL STOP",
+ direction="on",
+ linebreak="cl",
+ unicodeslot=0x3002,
},
[0x3003]={
- ["category"]="po",
- ["cjkwd"]="w",
- ["description"]="DITTO MARK",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3003, -- 〃
+ category="po",
+ cjkwd="w",
+ description="DITTO MARK",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x3003,
},
[0x3004]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="JAPANESE INDUSTRIAL STANDARD SYMBOL",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3004, -- 〄
+ category="so",
+ cjkwd="w",
+ description="JAPANESE INDUSTRIAL STANDARD SYMBOL",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x3004,
},
[0x3005]={
- ["category"]="lm",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC ITERATION MARK",
- ["linebreak"]="ns",
- ["unicodeslot"]=0x3005, -- 々
+ category="lm",
+ cjkwd="w",
+ description="IDEOGRAPHIC ITERATION MARK",
+ direction="l",
+ linebreak="ns",
+ unicodeslot=0x3005,
},
[0x3006]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC CLOSING MARK",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3006, -- 〆
+ category="lo",
+ cjkwd="w",
+ description="IDEOGRAPHIC CLOSING MARK",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3006,
},
[0x3007]={
- ["category"]="nl",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC NUMBER ZERO",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3007, -- 〇
+ category="nl",
+ cjkwd="w",
+ description="IDEOGRAPHIC NUMBER ZERO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3007,
},
[0x3008]={
- ["category"]="ps",
- ["cjkwd"]="w",
- ["description"]="LEFT ANGLE BRACKET",
- ["linebreak"]="op",
- ["unicodeslot"]=0x3008, -- 〈
+ category="ps",
+ cjkwd="w",
+ description="LEFT ANGLE BRACKET",
+ direction="on",
+ linebreak="op",
+ mirror=0x3009,
+ unicodeslot=0x3008,
},
[0x3009]={
- ["category"]="pe",
- ["cjkwd"]="w",
- ["description"]="RIGHT ANGLE BRACKET",
- ["linebreak"]="cl",
- ["unicodeslot"]=0x3009, -- 〉
+ category="pe",
+ cjkwd="w",
+ description="RIGHT ANGLE BRACKET",
+ direction="on",
+ linebreak="cl",
+ mirror=0x3008,
+ unicodeslot=0x3009,
},
[0x300A]={
- ["category"]="ps",
- ["cjkwd"]="w",
- ["description"]="LEFT DOUBLE ANGLE BRACKET",
- ["linebreak"]="op",
- ["unicodeslot"]=0x300A, -- 《
+ category="ps",
+ cjkwd="w",
+ description="LEFT DOUBLE ANGLE BRACKET",
+ direction="on",
+ linebreak="op",
+ mirror=0x300B,
+ unicodeslot=0x300A,
},
[0x300B]={
- ["category"]="pe",
- ["cjkwd"]="w",
- ["description"]="RIGHT DOUBLE ANGLE BRACKET",
- ["linebreak"]="cl",
- ["unicodeslot"]=0x300B, -- 》
+ category="pe",
+ cjkwd="w",
+ description="RIGHT DOUBLE ANGLE BRACKET",
+ direction="on",
+ linebreak="cl",
+ mirror=0x300A,
+ unicodeslot=0x300B,
},
[0x300C]={
- ["category"]="ps",
- ["cjkwd"]="w",
- ["description"]="LEFT CORNER BRACKET",
- ["linebreak"]="op",
- ["unicodeslot"]=0x300C, -- 「
+ category="ps",
+ cjkwd="w",
+ description="LEFT CORNER BRACKET",
+ direction="on",
+ linebreak="op",
+ mirror=0x300D,
+ unicodeslot=0x300C,
},
[0x300D]={
- ["category"]="pe",
- ["cjkwd"]="w",
- ["description"]="RIGHT CORNER BRACKET",
- ["linebreak"]="cl",
- ["unicodeslot"]=0x300D, -- 」
+ category="pe",
+ cjkwd="w",
+ description="RIGHT CORNER BRACKET",
+ direction="on",
+ linebreak="cl",
+ mirror=0x300C,
+ unicodeslot=0x300D,
},
[0x300E]={
- ["category"]="ps",
- ["cjkwd"]="w",
- ["description"]="LEFT WHITE CORNER BRACKET",
- ["linebreak"]="op",
- ["unicodeslot"]=0x300E, -- 『
+ category="ps",
+ cjkwd="w",
+ description="LEFT WHITE CORNER BRACKET",
+ direction="on",
+ linebreak="op",
+ mirror=0x300F,
+ unicodeslot=0x300E,
},
[0x300F]={
- ["category"]="pe",
- ["cjkwd"]="w",
- ["description"]="RIGHT WHITE CORNER BRACKET",
- ["linebreak"]="cl",
- ["unicodeslot"]=0x300F, -- 』
+ category="pe",
+ cjkwd="w",
+ description="RIGHT WHITE CORNER BRACKET",
+ direction="on",
+ linebreak="cl",
+ mirror=0x300E,
+ unicodeslot=0x300F,
},
[0x3010]={
- ["category"]="ps",
- ["cjkwd"]="w",
- ["description"]="LEFT BLACK LENTICULAR BRACKET",
- ["linebreak"]="op",
- ["unicodeslot"]=0x3010, -- 【
+ category="ps",
+ cjkwd="w",
+ description="LEFT BLACK LENTICULAR BRACKET",
+ direction="on",
+ linebreak="op",
+ mirror=0x3011,
+ unicodeslot=0x3010,
},
[0x3011]={
- ["category"]="pe",
- ["cjkwd"]="w",
- ["description"]="RIGHT BLACK LENTICULAR BRACKET",
- ["linebreak"]="cl",
- ["unicodeslot"]=0x3011, -- 】
+ category="pe",
+ cjkwd="w",
+ description="RIGHT BLACK LENTICULAR BRACKET",
+ direction="on",
+ linebreak="cl",
+ mirror=0x3010,
+ unicodeslot=0x3011,
},
[0x3012]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="POSTAL MARK",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3012, -- 〒
+ category="so",
+ cjkwd="w",
+ description="POSTAL MARK",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x3012,
},
[0x3013]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="GETA MARK",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3013, -- 〓
+ category="so",
+ cjkwd="w",
+ description="GETA MARK",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x3013,
},
[0x3014]={
- ["category"]="ps",
- ["cjkwd"]="w",
- ["description"]="LEFT TORTOISE SHELL BRACKET",
- ["linebreak"]="op",
- ["unicodeslot"]=0x3014, -- 〔
+ category="ps",
+ cjkwd="w",
+ description="LEFT TORTOISE SHELL BRACKET",
+ direction="on",
+ linebreak="op",
+ mirror=0x3015,
+ mathclass="open",
+ mathname="lgroup",
+ unicodeslot=0x3014,
},
[0x3015]={
- ["category"]="pe",
- ["cjkwd"]="w",
- ["description"]="RIGHT TORTOISE SHELL BRACKET",
- ["linebreak"]="cl",
- ["unicodeslot"]=0x3015, -- 〕
+ category="pe",
+ cjkwd="w",
+ description="RIGHT TORTOISE SHELL BRACKET",
+ direction="on",
+ linebreak="cl",
+ mirror=0x3014,
+ mathclass="close",
+ mathname="rgroup",
+ unicodeslot=0x3015,
},
[0x3016]={
- ["category"]="ps",
- ["cjkwd"]="w",
- ["description"]="LEFT WHITE LENTICULAR BRACKET",
- ["linebreak"]="op",
- ["unicodeslot"]=0x3016, -- 〖
+ category="ps",
+ cjkwd="w",
+ description="LEFT WHITE LENTICULAR BRACKET",
+ direction="on",
+ linebreak="op",
+ mirror=0x3017,
+ unicodeslot=0x3016,
},
[0x3017]={
- ["category"]="pe",
- ["cjkwd"]="w",
- ["description"]="RIGHT WHITE LENTICULAR BRACKET",
- ["linebreak"]="cl",
- ["unicodeslot"]=0x3017, -- 〗
+ category="pe",
+ cjkwd="w",
+ description="RIGHT WHITE LENTICULAR BRACKET",
+ direction="on",
+ linebreak="cl",
+ mirror=0x3016,
+ unicodeslot=0x3017,
},
[0x3018]={
- ["category"]="ps",
- ["cjkwd"]="w",
- ["description"]="LEFT WHITE TORTOISE SHELL BRACKET",
- ["linebreak"]="op",
- ["unicodeslot"]=0x3018, -- 〘
+ category="ps",
+ cjkwd="w",
+ description="LEFT WHITE TORTOISE SHELL BRACKET",
+ direction="on",
+ linebreak="op",
+ mirror=0x3019,
+ unicodeslot=0x3018,
},
[0x3019]={
- ["category"]="pe",
- ["cjkwd"]="w",
- ["description"]="RIGHT WHITE TORTOISE SHELL BRACKET",
- ["linebreak"]="cl",
- ["unicodeslot"]=0x3019, -- 〙
+ category="pe",
+ cjkwd="w",
+ description="RIGHT WHITE TORTOISE SHELL BRACKET",
+ direction="on",
+ linebreak="cl",
+ mirror=0x3018,
+ unicodeslot=0x3019,
},
[0x301A]={
- ["category"]="ps",
- ["cjkwd"]="w",
- ["description"]="LEFT WHITE SQUARE BRACKET",
- ["linebreak"]="op",
- ["unicodeslot"]=0x301A, -- 〚
+ category="ps",
+ cjkwd="w",
+ description="LEFT WHITE SQUARE BRACKET",
+ direction="on",
+ linebreak="op",
+ mirror=0x301B,
+ unicodeslot=0x301A,
},
[0x301B]={
- ["category"]="pe",
- ["cjkwd"]="w",
- ["description"]="RIGHT WHITE SQUARE BRACKET",
- ["linebreak"]="cl",
- ["unicodeslot"]=0x301B, -- 〛
+ category="pe",
+ cjkwd="w",
+ description="RIGHT WHITE SQUARE BRACKET",
+ direction="on",
+ linebreak="cl",
+ mirror=0x301A,
+ unicodeslot=0x301B,
},
[0x301C]={
- ["category"]="pd",
- ["cjkwd"]="w",
- ["description"]="WAVE DASH",
- ["linebreak"]="ns",
- ["unicodeslot"]=0x301C, -- 〜
+ category="pd",
+ cjkwd="w",
+ description="WAVE DASH",
+ direction="on",
+ linebreak="ns",
+ unicodeslot=0x301C,
},
[0x301D]={
- ["category"]="ps",
- ["cjkwd"]="w",
- ["description"]="REVERSED DOUBLE PRIME QUOTATION MARK",
- ["linebreak"]="op",
- ["unicodeslot"]=0x301D, -- 〝
+ category="ps",
+ cjkwd="w",
+ description="REVERSED DOUBLE PRIME QUOTATION MARK",
+ direction="on",
+ linebreak="op",
+ unicodeslot=0x301D,
},
[0x301E]={
- ["category"]="pe",
- ["cjkwd"]="w",
- ["description"]="DOUBLE PRIME QUOTATION MARK",
- ["linebreak"]="cl",
- ["unicodeslot"]=0x301E, -- 〞
+ category="pe",
+ cjkwd="w",
+ description="DOUBLE PRIME QUOTATION MARK",
+ direction="on",
+ linebreak="cl",
+ unicodeslot=0x301E,
},
[0x301F]={
- ["category"]="pe",
- ["cjkwd"]="w",
- ["description"]="LOW DOUBLE PRIME QUOTATION MARK",
- ["linebreak"]="cl",
- ["unicodeslot"]=0x301F, -- 〟
+ category="pe",
+ cjkwd="w",
+ description="LOW DOUBLE PRIME QUOTATION MARK",
+ direction="on",
+ linebreak="cl",
+ unicodeslot=0x301F,
},
[0x3020]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="POSTAL MARK FACE",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3020, -- 〠
+ category="so",
+ cjkwd="w",
+ description="POSTAL MARK FACE",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x3020,
},
[0x3021]={
- ["category"]="nl",
- ["cjkwd"]="w",
- ["description"]="HANGZHOU NUMERAL ONE",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3021, -- 〡
+ category="nl",
+ cjkwd="w",
+ description="HANGZHOU NUMERAL ONE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3021,
},
[0x3022]={
- ["category"]="nl",
- ["cjkwd"]="w",
- ["description"]="HANGZHOU NUMERAL TWO",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3022, -- 〢
+ category="nl",
+ cjkwd="w",
+ description="HANGZHOU NUMERAL TWO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3022,
},
[0x3023]={
- ["category"]="nl",
- ["cjkwd"]="w",
- ["description"]="HANGZHOU NUMERAL THREE",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3023, -- 〣
+ category="nl",
+ cjkwd="w",
+ description="HANGZHOU NUMERAL THREE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3023,
},
[0x3024]={
- ["category"]="nl",
- ["cjkwd"]="w",
- ["description"]="HANGZHOU NUMERAL FOUR",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3024, -- 〤
+ category="nl",
+ cjkwd="w",
+ description="HANGZHOU NUMERAL FOUR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3024,
},
[0x3025]={
- ["category"]="nl",
- ["cjkwd"]="w",
- ["description"]="HANGZHOU NUMERAL FIVE",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3025, -- 〥
+ category="nl",
+ cjkwd="w",
+ description="HANGZHOU NUMERAL FIVE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3025,
},
[0x3026]={
- ["category"]="nl",
- ["cjkwd"]="w",
- ["description"]="HANGZHOU NUMERAL SIX",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3026, -- 〦
+ category="nl",
+ cjkwd="w",
+ description="HANGZHOU NUMERAL SIX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3026,
},
[0x3027]={
- ["category"]="nl",
- ["cjkwd"]="w",
- ["description"]="HANGZHOU NUMERAL SEVEN",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3027, -- 〧
+ category="nl",
+ cjkwd="w",
+ description="HANGZHOU NUMERAL SEVEN",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3027,
},
[0x3028]={
- ["category"]="nl",
- ["cjkwd"]="w",
- ["description"]="HANGZHOU NUMERAL EIGHT",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3028, -- 〨
+ category="nl",
+ cjkwd="w",
+ description="HANGZHOU NUMERAL EIGHT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3028,
},
[0x3029]={
- ["category"]="nl",
- ["cjkwd"]="w",
- ["description"]="HANGZHOU NUMERAL NINE",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3029, -- 〩
+ category="nl",
+ cjkwd="w",
+ description="HANGZHOU NUMERAL NINE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3029,
},
[0x302A]={
- ["category"]="mn",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC LEVEL TONE MARK",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x302A, -- 〪
+ category="mn",
+ cjkwd="w",
+ description="IDEOGRAPHIC LEVEL TONE MARK",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x302A,
},
[0x302B]={
- ["category"]="mn",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC RISING TONE MARK",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x302B, -- 〫
+ category="mn",
+ cjkwd="w",
+ description="IDEOGRAPHIC RISING TONE MARK",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x302B,
},
[0x302C]={
- ["category"]="mn",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC DEPARTING TONE MARK",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x302C, -- 〬
+ category="mn",
+ cjkwd="w",
+ description="IDEOGRAPHIC DEPARTING TONE MARK",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x302C,
},
[0x302D]={
- ["category"]="mn",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC ENTERING TONE MARK",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x302D, -- 〭
+ category="mn",
+ cjkwd="w",
+ description="IDEOGRAPHIC ENTERING TONE MARK",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x302D,
},
[0x302E]={
- ["category"]="mn",
- ["cjkwd"]="w",
- ["description"]="HANGUL SINGLE DOT TONE MARK",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x302E, -- 〮
+ category="mn",
+ cjkwd="w",
+ description="HANGUL SINGLE DOT TONE MARK",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x302E,
},
[0x302F]={
- ["category"]="mn",
- ["cjkwd"]="w",
- ["description"]="HANGUL DOUBLE DOT TONE MARK",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x302F, -- 〯
+ category="mn",
+ cjkwd="w",
+ description="HANGUL DOUBLE DOT TONE MARK",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x302F,
},
[0x3030]={
- ["category"]="pd",
- ["cjkwd"]="w",
- ["description"]="WAVY DASH",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3030, -- 〰
+ category="pd",
+ cjkwd="w",
+ description="WAVY DASH",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x3030,
},
[0x3031]={
- ["category"]="lm",
- ["cjkwd"]="w",
- ["description"]="VERTICAL KANA REPEAT MARK",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3031, -- 〱
+ category="lm",
+ cjkwd="w",
+ description="VERTICAL KANA REPEAT MARK",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3031,
},
[0x3032]={
- ["category"]="lm",
- ["cjkwd"]="w",
- ["description"]="VERTICAL KANA REPEAT WITH VOICED SOUND MARK",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3032, -- 〲
+ category="lm",
+ cjkwd="w",
+ description="VERTICAL KANA REPEAT WITH VOICED SOUND MARK",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3032,
},
[0x3033]={
- ["category"]="lm",
- ["cjkwd"]="w",
- ["description"]="VERTICAL KANA REPEAT MARK UPPER HALF",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3033, -- 〳
+ category="lm",
+ cjkwd="w",
+ description="VERTICAL KANA REPEAT MARK UPPER HALF",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3033,
},
[0x3034]={
- ["category"]="lm",
- ["cjkwd"]="w",
- ["description"]="VERTICAL KANA REPEAT WITH VOICED SOUND MARK UPPER HALF",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3034, -- 〴
+ category="lm",
+ cjkwd="w",
+ description="VERTICAL KANA REPEAT WITH VOICED SOUND MARK UPPER HALF",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3034,
},
[0x3035]={
- ["category"]="lm",
- ["cjkwd"]="w",
- ["description"]="VERTICAL KANA REPEAT MARK LOWER HALF",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3035, -- 〵
+ category="lm",
+ cjkwd="w",
+ description="VERTICAL KANA REPEAT MARK LOWER HALF",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3035,
},
[0x3036]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED POSTAL MARK",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x3012 },
- ["unicodeslot"]=0x3036, -- 〶
+ category="so",
+ cjkwd="w",
+ description="CIRCLED POSTAL MARK",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x3012 },
+ unicodeslot=0x3036,
},
[0x3037]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3037, -- 〷
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x3037,
},
[0x3038]={
- ["category"]="nl",
- ["cjkwd"]="w",
- ["description"]="HANGZHOU NUMERAL TEN",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x5341 },
- ["unicodeslot"]=0x3038, -- 〸
+ category="nl",
+ cjkwd="w",
+ description="HANGZHOU NUMERAL TEN",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x5341 },
+ unicodeslot=0x3038,
},
[0x3039]={
- ["category"]="nl",
- ["cjkwd"]="w",
- ["description"]="HANGZHOU NUMERAL TWENTY",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x5344 },
- ["unicodeslot"]=0x3039, -- 〹
+ category="nl",
+ cjkwd="w",
+ description="HANGZHOU NUMERAL TWENTY",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x5344 },
+ unicodeslot=0x3039,
},
[0x303A]={
- ["category"]="nl",
- ["cjkwd"]="w",
- ["description"]="HANGZHOU NUMERAL THIRTY",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x5345 },
- ["unicodeslot"]=0x303A, -- 〺
+ category="nl",
+ cjkwd="w",
+ description="HANGZHOU NUMERAL THIRTY",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x5345 },
+ unicodeslot=0x303A,
},
[0x303B]={
- ["category"]="lm",
- ["cjkwd"]="w",
- ["description"]="VERTICAL IDEOGRAPHIC ITERATION MARK",
- ["linebreak"]="ns",
- ["unicodeslot"]=0x303B, -- 〻
+ category="lm",
+ cjkwd="w",
+ description="VERTICAL IDEOGRAPHIC ITERATION MARK",
+ direction="l",
+ linebreak="ns",
+ unicodeslot=0x303B,
},
[0x303C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="MASU MARK",
- ["linebreak"]="ns",
- ["unicodeslot"]=0x303C, -- 〼
+ category="lo",
+ cjkwd="w",
+ description="MASU MARK",
+ direction="l",
+ linebreak="ns",
+ unicodeslot=0x303C,
},
[0x303D]={
- ["category"]="po",
- ["cjkwd"]="w",
- ["description"]="PART ALTERNATION MARK",
- ["linebreak"]="id",
- ["unicodeslot"]=0x303D, -- 〽
+ category="po",
+ cjkwd="w",
+ description="PART ALTERNATION MARK",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x303D,
},
[0x303E]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC VARIATION INDICATOR",
- ["linebreak"]="id",
- ["unicodeslot"]=0x303E, -- 〾
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC VARIATION INDICATOR",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x303E,
},
[0x303F]={
- ["category"]="so",
- ["description"]="IDEOGRAPHIC HALF FILL SPACE",
- ["linebreak"]="id",
- ["unicodeslot"]=0x303F, -- 〿
+ category="so",
+ contextname="ideographichalffillspace",
+ description="IDEOGRAPHIC HALF FILL SPACE",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x303F,
},
[0x3041]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER SMALL A",
- ["linebreak"]="ns",
- ["unicodeslot"]=0x3041, -- ぁ
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER SMALL A",
+ direction="l",
+ linebreak="ns",
+ unicodeslot=0x3041,
},
[0x3042]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER A",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3042, -- あ
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER A",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3042,
},
[0x3043]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER SMALL I",
- ["linebreak"]="ns",
- ["unicodeslot"]=0x3043, -- ぃ
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER SMALL I",
+ direction="l",
+ linebreak="ns",
+ unicodeslot=0x3043,
},
[0x3044]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER I",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3044, -- い
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER I",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3044,
},
[0x3045]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER SMALL U",
- ["linebreak"]="ns",
- ["unicodeslot"]=0x3045, -- ぅ
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER SMALL U",
+ direction="l",
+ linebreak="ns",
+ unicodeslot=0x3045,
},
[0x3046]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER U",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3046, -- う
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER U",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3046,
},
[0x3047]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER SMALL E",
- ["linebreak"]="ns",
- ["unicodeslot"]=0x3047, -- ぇ
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER SMALL E",
+ direction="l",
+ linebreak="ns",
+ unicodeslot=0x3047,
},
[0x3048]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER E",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3048, -- え
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER E",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3048,
},
[0x3049]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER SMALL O",
- ["linebreak"]="ns",
- ["unicodeslot"]=0x3049, -- ぉ
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER SMALL O",
+ direction="l",
+ linebreak="ns",
+ unicodeslot=0x3049,
},
[0x304A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER O",
- ["linebreak"]="id",
- ["unicodeslot"]=0x304A, -- お
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER O",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x304A,
},
[0x304B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER KA",
- ["linebreak"]="id",
- ["unicodeslot"]=0x304B, -- か
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER KA",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x304B,
},
[0x304C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER GA",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x304B, 0x3099 },
- ["unicodeslot"]=0x304C, -- が
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER GA",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x304B, 0x3099 },
+ unicodeslot=0x304C,
},
[0x304D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER KI",
- ["linebreak"]="id",
- ["unicodeslot"]=0x304D, -- き
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER KI",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x304D,
},
[0x304E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER GI",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x304D, 0x3099 },
- ["unicodeslot"]=0x304E, -- ぎ
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER GI",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x304D, 0x3099 },
+ unicodeslot=0x304E,
},
[0x304F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER KU",
- ["linebreak"]="id",
- ["unicodeslot"]=0x304F, -- く
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER KU",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x304F,
},
[0x3050]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER GU",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x304F, 0x3099 },
- ["unicodeslot"]=0x3050, -- ぐ
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER GU",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x304F, 0x3099 },
+ unicodeslot=0x3050,
},
[0x3051]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER KE",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3051, -- け
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER KE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3051,
},
[0x3052]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER GE",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x3051, 0x3099 },
- ["unicodeslot"]=0x3052, -- げ
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER GE",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x3051, 0x3099 },
+ unicodeslot=0x3052,
},
[0x3053]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER KO",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3053, -- こ
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER KO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3053,
},
[0x3054]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER GO",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x3053, 0x3099 },
- ["unicodeslot"]=0x3054, -- ご
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER GO",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x3053, 0x3099 },
+ unicodeslot=0x3054,
},
[0x3055]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER SA",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3055, -- さ
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER SA",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3055,
},
[0x3056]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER ZA",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x3055, 0x3099 },
- ["unicodeslot"]=0x3056, -- ざ
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER ZA",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x3055, 0x3099 },
+ unicodeslot=0x3056,
},
[0x3057]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER SI",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3057, -- し
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER SI",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3057,
},
[0x3058]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER ZI",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x3057, 0x3099 },
- ["unicodeslot"]=0x3058, -- じ
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER ZI",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x3057, 0x3099 },
+ unicodeslot=0x3058,
},
[0x3059]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER SU",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3059, -- す
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER SU",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3059,
},
[0x305A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER ZU",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x3059, 0x3099 },
- ["unicodeslot"]=0x305A, -- ず
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER ZU",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x3059, 0x3099 },
+ unicodeslot=0x305A,
},
[0x305B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER SE",
- ["linebreak"]="id",
- ["unicodeslot"]=0x305B, -- せ
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER SE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x305B,
},
[0x305C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER ZE",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x305B, 0x3099 },
- ["unicodeslot"]=0x305C, -- ぜ
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER ZE",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x305B, 0x3099 },
+ unicodeslot=0x305C,
},
[0x305D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER SO",
- ["linebreak"]="id",
- ["unicodeslot"]=0x305D, -- そ
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER SO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x305D,
},
[0x305E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER ZO",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x305D, 0x3099 },
- ["unicodeslot"]=0x305E, -- ぞ
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER ZO",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x305D, 0x3099 },
+ unicodeslot=0x305E,
},
[0x305F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER TA",
- ["linebreak"]="id",
- ["unicodeslot"]=0x305F, -- た
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER TA",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x305F,
},
[0x3060]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER DA",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x305F, 0x3099 },
- ["unicodeslot"]=0x3060, -- だ
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER DA",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x305F, 0x3099 },
+ unicodeslot=0x3060,
},
[0x3061]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER TI",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3061, -- ち
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER TI",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3061,
},
[0x3062]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER DI",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x3061, 0x3099 },
- ["unicodeslot"]=0x3062, -- ぢ
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER DI",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x3061, 0x3099 },
+ unicodeslot=0x3062,
},
[0x3063]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER SMALL TU",
- ["linebreak"]="ns",
- ["unicodeslot"]=0x3063, -- っ
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER SMALL TU",
+ direction="l",
+ linebreak="ns",
+ unicodeslot=0x3063,
},
[0x3064]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER TU",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3064, -- つ
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER TU",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3064,
},
[0x3065]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER DU",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x3064, 0x3099 },
- ["unicodeslot"]=0x3065, -- づ
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER DU",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x3064, 0x3099 },
+ unicodeslot=0x3065,
},
[0x3066]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER TE",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3066, -- て
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER TE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3066,
},
[0x3067]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER DE",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x3066, 0x3099 },
- ["unicodeslot"]=0x3067, -- で
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER DE",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x3066, 0x3099 },
+ unicodeslot=0x3067,
},
[0x3068]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER TO",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3068, -- と
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER TO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3068,
},
[0x3069]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER DO",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x3068, 0x3099 },
- ["unicodeslot"]=0x3069, -- ど
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER DO",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x3068, 0x3099 },
+ unicodeslot=0x3069,
},
[0x306A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER NA",
- ["linebreak"]="id",
- ["unicodeslot"]=0x306A, -- な
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER NA",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x306A,
},
[0x306B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER NI",
- ["linebreak"]="id",
- ["unicodeslot"]=0x306B, -- に
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER NI",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x306B,
},
[0x306C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER NU",
- ["linebreak"]="id",
- ["unicodeslot"]=0x306C, -- ぬ
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER NU",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x306C,
},
[0x306D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER NE",
- ["linebreak"]="id",
- ["unicodeslot"]=0x306D, -- ね
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER NE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x306D,
},
[0x306E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER NO",
- ["linebreak"]="id",
- ["unicodeslot"]=0x306E, -- の
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER NO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x306E,
},
[0x306F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER HA",
- ["linebreak"]="id",
- ["unicodeslot"]=0x306F, -- は
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER HA",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x306F,
},
[0x3070]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER BA",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x306F, 0x3099 },
- ["unicodeslot"]=0x3070, -- ば
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER BA",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x306F, 0x3099 },
+ unicodeslot=0x3070,
},
[0x3071]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER PA",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x306F, 0x309A },
- ["unicodeslot"]=0x3071, -- ぱ
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER PA",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x306F, 0x309A },
+ unicodeslot=0x3071,
},
[0x3072]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER HI",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3072, -- ひ
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER HI",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3072,
},
[0x3073]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER BI",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x3072, 0x3099 },
- ["unicodeslot"]=0x3073, -- び
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER BI",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x3072, 0x3099 },
+ unicodeslot=0x3073,
},
[0x3074]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER PI",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x3072, 0x309A },
- ["unicodeslot"]=0x3074, -- ぴ
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER PI",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x3072, 0x309A },
+ unicodeslot=0x3074,
},
[0x3075]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER HU",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3075, -- ふ
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER HU",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3075,
},
[0x3076]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER BU",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x3075, 0x3099 },
- ["unicodeslot"]=0x3076, -- ぶ
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER BU",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x3075, 0x3099 },
+ unicodeslot=0x3076,
},
[0x3077]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER PU",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x3075, 0x309A },
- ["unicodeslot"]=0x3077, -- ぷ
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER PU",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x3075, 0x309A },
+ unicodeslot=0x3077,
},
[0x3078]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER HE",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3078, -- へ
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER HE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3078,
},
[0x3079]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER BE",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x3078, 0x3099 },
- ["unicodeslot"]=0x3079, -- べ
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER BE",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x3078, 0x3099 },
+ unicodeslot=0x3079,
},
[0x307A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER PE",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x3078, 0x309A },
- ["unicodeslot"]=0x307A, -- ぺ
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER PE",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x3078, 0x309A },
+ unicodeslot=0x307A,
},
[0x307B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER HO",
- ["linebreak"]="id",
- ["unicodeslot"]=0x307B, -- ほ
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER HO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x307B,
},
[0x307C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER BO",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x307B, 0x3099 },
- ["unicodeslot"]=0x307C, -- ぼ
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER BO",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x307B, 0x3099 },
+ unicodeslot=0x307C,
},
[0x307D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER PO",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x307B, 0x309A },
- ["unicodeslot"]=0x307D, -- ぽ
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER PO",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x307B, 0x309A },
+ unicodeslot=0x307D,
},
[0x307E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER MA",
- ["linebreak"]="id",
- ["unicodeslot"]=0x307E, -- ま
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER MA",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x307E,
},
[0x307F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER MI",
- ["linebreak"]="id",
- ["unicodeslot"]=0x307F, -- み
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER MI",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x307F,
},
[0x3080]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER MU",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3080, -- む
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER MU",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3080,
},
[0x3081]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER ME",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3081, -- め
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER ME",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3081,
},
[0x3082]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER MO",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3082, -- も
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER MO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3082,
},
[0x3083]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER SMALL YA",
- ["linebreak"]="ns",
- ["unicodeslot"]=0x3083, -- ゃ
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER SMALL YA",
+ direction="l",
+ linebreak="ns",
+ unicodeslot=0x3083,
},
[0x3084]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER YA",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3084, -- や
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER YA",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3084,
},
[0x3085]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER SMALL YU",
- ["linebreak"]="ns",
- ["unicodeslot"]=0x3085, -- ゅ
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER SMALL YU",
+ direction="l",
+ linebreak="ns",
+ unicodeslot=0x3085,
},
[0x3086]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER YU",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3086, -- ゆ
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER YU",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3086,
},
[0x3087]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER SMALL YO",
- ["linebreak"]="ns",
- ["unicodeslot"]=0x3087, -- ょ
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER SMALL YO",
+ direction="l",
+ linebreak="ns",
+ unicodeslot=0x3087,
},
[0x3088]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER YO",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3088, -- よ
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER YO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3088,
},
[0x3089]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER RA",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3089, -- ら
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER RA",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3089,
},
[0x308A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER RI",
- ["linebreak"]="id",
- ["unicodeslot"]=0x308A, -- り
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER RI",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x308A,
},
[0x308B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER RU",
- ["linebreak"]="id",
- ["unicodeslot"]=0x308B, -- る
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER RU",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x308B,
},
[0x308C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER RE",
- ["linebreak"]="id",
- ["unicodeslot"]=0x308C, -- れ
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER RE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x308C,
},
[0x308D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER RO",
- ["linebreak"]="id",
- ["unicodeslot"]=0x308D, -- ろ
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER RO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x308D,
},
[0x308E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER SMALL WA",
- ["linebreak"]="ns",
- ["unicodeslot"]=0x308E, -- ゎ
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER SMALL WA",
+ direction="l",
+ linebreak="ns",
+ unicodeslot=0x308E,
},
[0x308F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER WA",
- ["linebreak"]="id",
- ["unicodeslot"]=0x308F, -- わ
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER WA",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x308F,
},
[0x3090]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER WI",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3090, -- ゐ
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER WI",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3090,
},
[0x3091]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER WE",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3091, -- ゑ
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER WE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3091,
},
[0x3092]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER WO",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3092, -- を
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER WO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3092,
},
[0x3093]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER N",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3093, -- ん
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER N",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3093,
},
[0x3094]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER VU",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x3046, 0x3099 },
- ["unicodeslot"]=0x3094, -- ゔ
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER VU",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x3046, 0x3099 },
+ unicodeslot=0x3094,
},
[0x3095]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER SMALL KA",
- ["linebreak"]="ns",
- ["unicodeslot"]=0x3095, -- ゕ
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER SMALL KA",
+ direction="l",
+ linebreak="ns",
+ unicodeslot=0x3095,
},
[0x3096]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA LETTER SMALL KE",
- ["linebreak"]="ns",
- ["unicodeslot"]=0x3096, -- ゖ
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER SMALL KE",
+ direction="l",
+ linebreak="ns",
+ unicodeslot=0x3096,
},
[0x3099]={
- ["category"]="mn",
- ["cjkwd"]="w",
- ["description"]="COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x3099, -- ゙
+ category="mn",
+ cjkwd="w",
+ description="COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x3099,
},
[0x309A]={
- ["category"]="mn",
- ["cjkwd"]="w",
- ["description"]="COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x309A, -- ゚
+ category="mn",
+ cjkwd="w",
+ description="COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x309A,
},
[0x309B]={
- ["category"]="sk",
- ["cjkwd"]="w",
- ["description"]="KATAKANA-HIRAGANA VOICED SOUND MARK",
- ["linebreak"]="ns",
- ["specials"]={ "compat", 0x0020, 0x3099 },
- ["unicodeslot"]=0x309B, -- ゛
+ category="sk",
+ cjkwd="w",
+ description="KATAKANA-HIRAGANA VOICED SOUND MARK",
+ direction="on",
+ linebreak="ns",
+ specials={ "compat", 0x0020, 0x3099 },
+ unicodeslot=0x309B,
},
[0x309C]={
- ["category"]="sk",
- ["cjkwd"]="w",
- ["description"]="KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK",
- ["linebreak"]="ns",
- ["specials"]={ "compat", 0x0020, 0x309A },
- ["unicodeslot"]=0x309C, -- ゜
+ category="sk",
+ cjkwd="w",
+ description="KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK",
+ direction="on",
+ linebreak="ns",
+ specials={ "compat", 0x0020, 0x309A },
+ unicodeslot=0x309C,
},
[0x309D]={
- ["category"]="lm",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA ITERATION MARK",
- ["linebreak"]="ns",
- ["unicodeslot"]=0x309D, -- ゝ
+ category="lm",
+ cjkwd="w",
+ description="HIRAGANA ITERATION MARK",
+ direction="l",
+ linebreak="ns",
+ unicodeslot=0x309D,
},
[0x309E]={
- ["category"]="lm",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA VOICED ITERATION MARK",
- ["linebreak"]="ns",
- ["specials"]={ "char", 0x309D, 0x3099 },
- ["unicodeslot"]=0x309E, -- ゞ
+ category="lm",
+ cjkwd="w",
+ description="HIRAGANA VOICED ITERATION MARK",
+ direction="l",
+ linebreak="ns",
+ specials={ "char", 0x309D, 0x3099 },
+ unicodeslot=0x309E,
},
[0x309F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HIRAGANA DIGRAPH YORI",
- ["linebreak"]="id",
- ["specials"]={ "vertical", 0x3088, 0x308A },
- ["unicodeslot"]=0x309F, -- ゟ
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA DIGRAPH YORI",
+ direction="l",
+ linebreak="id",
+ specials={ "vertical", 0x3088, 0x308A },
+ unicodeslot=0x309F,
},
[0x30A0]={
- ["category"]="pd",
- ["cjkwd"]="w",
- ["description"]="KATAKANA-HIRAGANA DOUBLE HYPHEN",
- ["linebreak"]="ns",
- ["unicodeslot"]=0x30A0, -- ゠
+ category="pd",
+ cjkwd="w",
+ description="KATAKANA-HIRAGANA DOUBLE HYPHEN",
+ direction="on",
+ linebreak="ns",
+ unicodeslot=0x30A0,
},
[0x30A1]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER SMALL A",
- ["linebreak"]="ns",
- ["unicodeslot"]=0x30A1, -- ァ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER SMALL A",
+ direction="l",
+ linebreak="ns",
+ unicodeslot=0x30A1,
},
[0x30A2]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER A",
- ["linebreak"]="id",
- ["unicodeslot"]=0x30A2, -- ア
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER A",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x30A2,
},
[0x30A3]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER SMALL I",
- ["linebreak"]="ns",
- ["unicodeslot"]=0x30A3, -- ィ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER SMALL I",
+ direction="l",
+ linebreak="ns",
+ unicodeslot=0x30A3,
},
[0x30A4]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER I",
- ["linebreak"]="id",
- ["unicodeslot"]=0x30A4, -- イ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER I",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x30A4,
},
[0x30A5]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER SMALL U",
- ["linebreak"]="ns",
- ["unicodeslot"]=0x30A5, -- ゥ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER SMALL U",
+ direction="l",
+ linebreak="ns",
+ unicodeslot=0x30A5,
},
[0x30A6]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER U",
- ["linebreak"]="id",
- ["unicodeslot"]=0x30A6, -- ウ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER U",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x30A6,
},
[0x30A7]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER SMALL E",
- ["linebreak"]="ns",
- ["unicodeslot"]=0x30A7, -- ェ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER SMALL E",
+ direction="l",
+ linebreak="ns",
+ unicodeslot=0x30A7,
},
[0x30A8]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER E",
- ["linebreak"]="id",
- ["unicodeslot"]=0x30A8, -- エ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER E",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x30A8,
},
[0x30A9]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER SMALL O",
- ["linebreak"]="ns",
- ["unicodeslot"]=0x30A9, -- ォ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER SMALL O",
+ direction="l",
+ linebreak="ns",
+ unicodeslot=0x30A9,
},
[0x30AA]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER O",
- ["linebreak"]="id",
- ["unicodeslot"]=0x30AA, -- オ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER O",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x30AA,
},
[0x30AB]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER KA",
- ["linebreak"]="id",
- ["unicodeslot"]=0x30AB, -- カ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER KA",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x30AB,
},
[0x30AC]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER GA",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x30AB, 0x3099 },
- ["unicodeslot"]=0x30AC, -- ガ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER GA",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x30AB, 0x3099 },
+ unicodeslot=0x30AC,
},
[0x30AD]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER KI",
- ["linebreak"]="id",
- ["unicodeslot"]=0x30AD, -- キ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER KI",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x30AD,
},
[0x30AE]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER GI",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x30AD, 0x3099 },
- ["unicodeslot"]=0x30AE, -- ギ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER GI",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x30AD, 0x3099 },
+ unicodeslot=0x30AE,
},
[0x30AF]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER KU",
- ["linebreak"]="id",
- ["unicodeslot"]=0x30AF, -- ク
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER KU",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x30AF,
},
[0x30B0]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER GU",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x30AF, 0x3099 },
- ["unicodeslot"]=0x30B0, -- グ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER GU",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x30AF, 0x3099 },
+ unicodeslot=0x30B0,
},
[0x30B1]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER KE",
- ["linebreak"]="id",
- ["unicodeslot"]=0x30B1, -- ケ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER KE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x30B1,
},
[0x30B2]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER GE",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x30B1, 0x3099 },
- ["unicodeslot"]=0x30B2, -- ゲ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER GE",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x30B1, 0x3099 },
+ unicodeslot=0x30B2,
},
[0x30B3]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER KO",
- ["linebreak"]="id",
- ["unicodeslot"]=0x30B3, -- コ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER KO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x30B3,
},
[0x30B4]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER GO",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x30B3, 0x3099 },
- ["unicodeslot"]=0x30B4, -- ゴ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER GO",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x30B3, 0x3099 },
+ unicodeslot=0x30B4,
},
[0x30B5]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER SA",
- ["linebreak"]="id",
- ["unicodeslot"]=0x30B5, -- サ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER SA",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x30B5,
},
[0x30B6]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER ZA",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x30B5, 0x3099 },
- ["unicodeslot"]=0x30B6, -- ザ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER ZA",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x30B5, 0x3099 },
+ unicodeslot=0x30B6,
},
[0x30B7]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER SI",
- ["linebreak"]="id",
- ["unicodeslot"]=0x30B7, -- シ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER SI",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x30B7,
},
[0x30B8]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER ZI",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x30B7, 0x3099 },
- ["unicodeslot"]=0x30B8, -- ジ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER ZI",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x30B7, 0x3099 },
+ unicodeslot=0x30B8,
},
[0x30B9]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER SU",
- ["linebreak"]="id",
- ["unicodeslot"]=0x30B9, -- ス
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER SU",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x30B9,
},
[0x30BA]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER ZU",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x30B9, 0x3099 },
- ["unicodeslot"]=0x30BA, -- ズ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER ZU",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x30B9, 0x3099 },
+ unicodeslot=0x30BA,
},
[0x30BB]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER SE",
- ["linebreak"]="id",
- ["unicodeslot"]=0x30BB, -- セ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER SE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x30BB,
},
[0x30BC]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER ZE",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x30BB, 0x3099 },
- ["unicodeslot"]=0x30BC, -- ゼ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER ZE",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x30BB, 0x3099 },
+ unicodeslot=0x30BC,
},
[0x30BD]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER SO",
- ["linebreak"]="id",
- ["unicodeslot"]=0x30BD, -- ソ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER SO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x30BD,
},
[0x30BE]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER ZO",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x30BD, 0x3099 },
- ["unicodeslot"]=0x30BE, -- ゾ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER ZO",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x30BD, 0x3099 },
+ unicodeslot=0x30BE,
},
[0x30BF]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER TA",
- ["linebreak"]="id",
- ["unicodeslot"]=0x30BF, -- タ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER TA",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x30BF,
},
[0x30C0]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER DA",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x30BF, 0x3099 },
- ["unicodeslot"]=0x30C0, -- ダ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER DA",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x30BF, 0x3099 },
+ unicodeslot=0x30C0,
},
[0x30C1]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER TI",
- ["linebreak"]="id",
- ["unicodeslot"]=0x30C1, -- チ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER TI",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x30C1,
},
[0x30C2]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER DI",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x30C1, 0x3099 },
- ["unicodeslot"]=0x30C2, -- ヂ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER DI",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x30C1, 0x3099 },
+ unicodeslot=0x30C2,
},
[0x30C3]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER SMALL TU",
- ["linebreak"]="ns",
- ["unicodeslot"]=0x30C3, -- ッ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER SMALL TU",
+ direction="l",
+ linebreak="ns",
+ unicodeslot=0x30C3,
},
[0x30C4]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER TU",
- ["linebreak"]="id",
- ["unicodeslot"]=0x30C4, -- ツ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER TU",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x30C4,
},
[0x30C5]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER DU",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x30C4, 0x3099 },
- ["unicodeslot"]=0x30C5, -- ヅ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER DU",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x30C4, 0x3099 },
+ unicodeslot=0x30C5,
},
[0x30C6]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER TE",
- ["linebreak"]="id",
- ["unicodeslot"]=0x30C6, -- テ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER TE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x30C6,
},
[0x30C7]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER DE",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x30C6, 0x3099 },
- ["unicodeslot"]=0x30C7, -- デ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER DE",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x30C6, 0x3099 },
+ unicodeslot=0x30C7,
},
[0x30C8]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER TO",
- ["linebreak"]="id",
- ["unicodeslot"]=0x30C8, -- ト
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER TO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x30C8,
},
[0x30C9]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER DO",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x30C8, 0x3099 },
- ["unicodeslot"]=0x30C9, -- ド
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER DO",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x30C8, 0x3099 },
+ unicodeslot=0x30C9,
},
[0x30CA]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER NA",
- ["linebreak"]="id",
- ["unicodeslot"]=0x30CA, -- ナ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER NA",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x30CA,
},
[0x30CB]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER NI",
- ["linebreak"]="id",
- ["unicodeslot"]=0x30CB, -- ニ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER NI",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x30CB,
},
[0x30CC]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER NU",
- ["linebreak"]="id",
- ["unicodeslot"]=0x30CC, -- ヌ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER NU",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x30CC,
},
[0x30CD]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER NE",
- ["linebreak"]="id",
- ["unicodeslot"]=0x30CD, -- ネ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER NE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x30CD,
},
[0x30CE]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER NO",
- ["linebreak"]="id",
- ["unicodeslot"]=0x30CE, -- ノ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER NO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x30CE,
},
[0x30CF]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER HA",
- ["linebreak"]="id",
- ["unicodeslot"]=0x30CF, -- ハ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER HA",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x30CF,
},
[0x30D0]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER BA",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x30CF, 0x3099 },
- ["unicodeslot"]=0x30D0, -- バ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER BA",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x30CF, 0x3099 },
+ unicodeslot=0x30D0,
},
[0x30D1]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER PA",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x30CF, 0x309A },
- ["unicodeslot"]=0x30D1, -- パ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER PA",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x30CF, 0x309A },
+ unicodeslot=0x30D1,
},
[0x30D2]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER HI",
- ["linebreak"]="id",
- ["unicodeslot"]=0x30D2, -- ヒ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER HI",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x30D2,
},
[0x30D3]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER BI",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x30D2, 0x3099 },
- ["unicodeslot"]=0x30D3, -- ビ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER BI",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x30D2, 0x3099 },
+ unicodeslot=0x30D3,
},
[0x30D4]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER PI",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x30D2, 0x309A },
- ["unicodeslot"]=0x30D4, -- ピ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER PI",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x30D2, 0x309A },
+ unicodeslot=0x30D4,
},
[0x30D5]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER HU",
- ["linebreak"]="id",
- ["unicodeslot"]=0x30D5, -- フ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER HU",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x30D5,
},
[0x30D6]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER BU",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x30D5, 0x3099 },
- ["unicodeslot"]=0x30D6, -- ブ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER BU",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x30D5, 0x3099 },
+ unicodeslot=0x30D6,
},
[0x30D7]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER PU",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x30D5, 0x309A },
- ["unicodeslot"]=0x30D7, -- プ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER PU",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x30D5, 0x309A },
+ unicodeslot=0x30D7,
},
[0x30D8]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER HE",
- ["linebreak"]="id",
- ["unicodeslot"]=0x30D8, -- ヘ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER HE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x30D8,
},
[0x30D9]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER BE",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x30D8, 0x3099 },
- ["unicodeslot"]=0x30D9, -- ベ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER BE",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x30D8, 0x3099 },
+ unicodeslot=0x30D9,
},
[0x30DA]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER PE",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x30D8, 0x309A },
- ["unicodeslot"]=0x30DA, -- ペ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER PE",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x30D8, 0x309A },
+ unicodeslot=0x30DA,
},
[0x30DB]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER HO",
- ["linebreak"]="id",
- ["unicodeslot"]=0x30DB, -- ホ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER HO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x30DB,
},
[0x30DC]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER BO",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x30DB, 0x3099 },
- ["unicodeslot"]=0x30DC, -- ボ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER BO",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x30DB, 0x3099 },
+ unicodeslot=0x30DC,
},
[0x30DD]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER PO",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x30DB, 0x309A },
- ["unicodeslot"]=0x30DD, -- ポ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER PO",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x30DB, 0x309A },
+ unicodeslot=0x30DD,
},
[0x30DE]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER MA",
- ["linebreak"]="id",
- ["unicodeslot"]=0x30DE, -- マ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER MA",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x30DE,
},
[0x30DF]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER MI",
- ["linebreak"]="id",
- ["unicodeslot"]=0x30DF, -- ミ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER MI",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x30DF,
},
[0x30E0]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER MU",
- ["linebreak"]="id",
- ["unicodeslot"]=0x30E0, -- ム
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER MU",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x30E0,
},
[0x30E1]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER ME",
- ["linebreak"]="id",
- ["unicodeslot"]=0x30E1, -- メ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER ME",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x30E1,
},
[0x30E2]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER MO",
- ["linebreak"]="id",
- ["unicodeslot"]=0x30E2, -- モ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER MO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x30E2,
},
[0x30E3]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER SMALL YA",
- ["linebreak"]="ns",
- ["unicodeslot"]=0x30E3, -- ャ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER SMALL YA",
+ direction="l",
+ linebreak="ns",
+ unicodeslot=0x30E3,
},
[0x30E4]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER YA",
- ["linebreak"]="id",
- ["unicodeslot"]=0x30E4, -- ヤ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER YA",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x30E4,
},
[0x30E5]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER SMALL YU",
- ["linebreak"]="ns",
- ["unicodeslot"]=0x30E5, -- ュ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER SMALL YU",
+ direction="l",
+ linebreak="ns",
+ unicodeslot=0x30E5,
},
[0x30E6]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER YU",
- ["linebreak"]="id",
- ["unicodeslot"]=0x30E6, -- ユ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER YU",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x30E6,
},
[0x30E7]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER SMALL YO",
- ["linebreak"]="ns",
- ["unicodeslot"]=0x30E7, -- ョ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER SMALL YO",
+ direction="l",
+ linebreak="ns",
+ unicodeslot=0x30E7,
},
[0x30E8]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER YO",
- ["linebreak"]="id",
- ["unicodeslot"]=0x30E8, -- ヨ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER YO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x30E8,
},
[0x30E9]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER RA",
- ["linebreak"]="id",
- ["unicodeslot"]=0x30E9, -- ラ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER RA",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x30E9,
},
[0x30EA]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER RI",
- ["linebreak"]="id",
- ["unicodeslot"]=0x30EA, -- リ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER RI",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x30EA,
},
[0x30EB]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER RU",
- ["linebreak"]="id",
- ["unicodeslot"]=0x30EB, -- ル
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER RU",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x30EB,
},
[0x30EC]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER RE",
- ["linebreak"]="id",
- ["unicodeslot"]=0x30EC, -- レ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER RE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x30EC,
},
[0x30ED]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER RO",
- ["linebreak"]="id",
- ["unicodeslot"]=0x30ED, -- ロ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER RO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x30ED,
},
[0x30EE]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER SMALL WA",
- ["linebreak"]="ns",
- ["unicodeslot"]=0x30EE, -- ヮ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER SMALL WA",
+ direction="l",
+ linebreak="ns",
+ unicodeslot=0x30EE,
},
[0x30EF]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER WA",
- ["linebreak"]="id",
- ["unicodeslot"]=0x30EF, -- ワ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER WA",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x30EF,
},
[0x30F0]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER WI",
- ["linebreak"]="id",
- ["unicodeslot"]=0x30F0, -- ヰ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER WI",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x30F0,
},
[0x30F1]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER WE",
- ["linebreak"]="id",
- ["unicodeslot"]=0x30F1, -- ヱ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER WE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x30F1,
},
[0x30F2]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER WO",
- ["linebreak"]="id",
- ["unicodeslot"]=0x30F2, -- ヲ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER WO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x30F2,
},
[0x30F3]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER N",
- ["linebreak"]="id",
- ["unicodeslot"]=0x30F3, -- ン
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER N",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x30F3,
},
[0x30F4]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER VU",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x30A6, 0x3099 },
- ["unicodeslot"]=0x30F4, -- ヴ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER VU",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x30A6, 0x3099 },
+ unicodeslot=0x30F4,
},
[0x30F5]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER SMALL KA",
- ["linebreak"]="ns",
- ["unicodeslot"]=0x30F5, -- ヵ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER SMALL KA",
+ direction="l",
+ linebreak="ns",
+ unicodeslot=0x30F5,
},
[0x30F6]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER SMALL KE",
- ["linebreak"]="ns",
- ["unicodeslot"]=0x30F6, -- ヶ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER SMALL KE",
+ direction="l",
+ linebreak="ns",
+ unicodeslot=0x30F6,
},
[0x30F7]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER VA",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x30EF, 0x3099 },
- ["unicodeslot"]=0x30F7, -- ヷ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER VA",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x30EF, 0x3099 },
+ unicodeslot=0x30F7,
},
[0x30F8]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER VI",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x30F0, 0x3099 },
- ["unicodeslot"]=0x30F8, -- ヸ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER VI",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x30F0, 0x3099 },
+ unicodeslot=0x30F8,
},
[0x30F9]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER VE",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x30F1, 0x3099 },
- ["unicodeslot"]=0x30F9, -- ヹ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER VE",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x30F1, 0x3099 },
+ unicodeslot=0x30F9,
},
[0x30FA]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER VO",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x30F2, 0x3099 },
- ["unicodeslot"]=0x30FA, -- ヺ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER VO",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x30F2, 0x3099 },
+ unicodeslot=0x30FA,
},
[0x30FB]={
- ["category"]="po",
- ["cjkwd"]="w",
- ["description"]="KATAKANA MIDDLE DOT",
- ["linebreak"]="ns",
- ["unicodeslot"]=0x30FB, -- ・
+ category="po",
+ cjkwd="w",
+ description="KATAKANA MIDDLE DOT",
+ direction="on",
+ linebreak="ns",
+ unicodeslot=0x30FB,
},
[0x30FC]={
- ["category"]="lm",
- ["cjkwd"]="w",
- ["description"]="KATAKANA-HIRAGANA PROLONGED SOUND MARK",
- ["linebreak"]="ns",
- ["unicodeslot"]=0x30FC, -- ー
+ category="lm",
+ cjkwd="w",
+ description="KATAKANA-HIRAGANA PROLONGED SOUND MARK",
+ direction="l",
+ linebreak="ns",
+ unicodeslot=0x30FC,
},
[0x30FD]={
- ["category"]="lm",
- ["cjkwd"]="w",
- ["description"]="KATAKANA ITERATION MARK",
- ["linebreak"]="ns",
- ["unicodeslot"]=0x30FD, -- ヽ
+ category="lm",
+ cjkwd="w",
+ description="KATAKANA ITERATION MARK",
+ direction="l",
+ linebreak="ns",
+ unicodeslot=0x30FD,
},
[0x30FE]={
- ["category"]="lm",
- ["cjkwd"]="w",
- ["description"]="KATAKANA VOICED ITERATION MARK",
- ["linebreak"]="ns",
- ["specials"]={ "char", 0x30FD, 0x3099 },
- ["unicodeslot"]=0x30FE, -- ヾ
+ category="lm",
+ cjkwd="w",
+ description="KATAKANA VOICED ITERATION MARK",
+ direction="l",
+ linebreak="ns",
+ specials={ "char", 0x30FD, 0x3099 },
+ unicodeslot=0x30FE,
},
[0x30FF]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA DIGRAPH KOTO",
- ["linebreak"]="id",
- ["specials"]={ "vertical", 0x30B3, 0x30C8 },
- ["unicodeslot"]=0x30FF, -- ヿ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA DIGRAPH KOTO",
+ direction="l",
+ linebreak="id",
+ specials={ "vertical", 0x30B3, 0x30C8 },
+ unicodeslot=0x30FF,
},
[0x3105]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO LETTER B",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3105, -- ㄅ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO LETTER B",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3105,
},
[0x3106]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO LETTER P",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3106, -- ㄆ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO LETTER P",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3106,
},
[0x3107]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO LETTER M",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3107, -- ㄇ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO LETTER M",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3107,
},
[0x3108]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO LETTER F",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3108, -- ㄈ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO LETTER F",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3108,
},
[0x3109]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO LETTER D",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3109, -- ㄉ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO LETTER D",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3109,
},
[0x310A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO LETTER T",
- ["linebreak"]="id",
- ["unicodeslot"]=0x310A, -- ㄊ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO LETTER T",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x310A,
},
[0x310B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO LETTER N",
- ["linebreak"]="id",
- ["unicodeslot"]=0x310B, -- ㄋ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO LETTER N",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x310B,
},
[0x310C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO LETTER L",
- ["linebreak"]="id",
- ["unicodeslot"]=0x310C, -- ㄌ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO LETTER L",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x310C,
},
[0x310D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO LETTER G",
- ["linebreak"]="id",
- ["unicodeslot"]=0x310D, -- ㄍ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO LETTER G",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x310D,
},
[0x310E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO LETTER K",
- ["linebreak"]="id",
- ["unicodeslot"]=0x310E, -- ㄎ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO LETTER K",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x310E,
},
[0x310F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO LETTER H",
- ["linebreak"]="id",
- ["unicodeslot"]=0x310F, -- ㄏ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO LETTER H",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x310F,
},
[0x3110]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO LETTER J",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3110, -- ㄐ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO LETTER J",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3110,
},
[0x3111]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO LETTER Q",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3111, -- ㄑ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO LETTER Q",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3111,
},
[0x3112]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO LETTER X",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3112, -- ㄒ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO LETTER X",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3112,
},
[0x3113]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO LETTER ZH",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3113, -- ㄓ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO LETTER ZH",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3113,
},
[0x3114]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO LETTER CH",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3114, -- ㄔ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO LETTER CH",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3114,
},
[0x3115]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO LETTER SH",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3115, -- ㄕ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO LETTER SH",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3115,
},
[0x3116]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO LETTER R",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3116, -- ㄖ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO LETTER R",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3116,
},
[0x3117]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO LETTER Z",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3117, -- ㄗ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO LETTER Z",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3117,
},
[0x3118]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO LETTER C",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3118, -- ㄘ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO LETTER C",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3118,
},
[0x3119]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO LETTER S",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3119, -- ㄙ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO LETTER S",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3119,
},
[0x311A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO LETTER A",
- ["linebreak"]="id",
- ["unicodeslot"]=0x311A, -- ㄚ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO LETTER A",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x311A,
},
[0x311B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO LETTER O",
- ["linebreak"]="id",
- ["unicodeslot"]=0x311B, -- ㄛ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO LETTER O",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x311B,
},
[0x311C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO LETTER E",
- ["linebreak"]="id",
- ["unicodeslot"]=0x311C, -- ㄜ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO LETTER E",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x311C,
},
[0x311D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO LETTER EH",
- ["linebreak"]="id",
- ["unicodeslot"]=0x311D, -- ㄝ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO LETTER EH",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x311D,
},
[0x311E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO LETTER AI",
- ["linebreak"]="id",
- ["unicodeslot"]=0x311E, -- ㄞ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO LETTER AI",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x311E,
},
[0x311F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO LETTER EI",
- ["linebreak"]="id",
- ["unicodeslot"]=0x311F, -- ㄟ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO LETTER EI",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x311F,
},
[0x3120]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO LETTER AU",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3120, -- ㄠ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO LETTER AU",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3120,
},
[0x3121]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO LETTER OU",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3121, -- ㄡ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO LETTER OU",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3121,
},
[0x3122]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO LETTER AN",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3122, -- ㄢ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO LETTER AN",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3122,
},
[0x3123]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO LETTER EN",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3123, -- ㄣ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO LETTER EN",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3123,
},
[0x3124]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO LETTER ANG",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3124, -- ㄤ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO LETTER ANG",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3124,
},
[0x3125]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO LETTER ENG",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3125, -- ㄥ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO LETTER ENG",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3125,
},
[0x3126]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO LETTER ER",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3126, -- ㄦ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO LETTER ER",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3126,
},
[0x3127]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO LETTER I",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3127, -- ㄧ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO LETTER I",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3127,
},
[0x3128]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO LETTER U",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3128, -- ㄨ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO LETTER U",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3128,
},
[0x3129]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO LETTER IU",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3129, -- ㄩ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO LETTER IU",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3129,
},
[0x312A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO LETTER V",
- ["linebreak"]="id",
- ["unicodeslot"]=0x312A, -- ㄪ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO LETTER V",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x312A,
},
[0x312B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO LETTER NG",
- ["linebreak"]="id",
- ["unicodeslot"]=0x312B, -- ㄫ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO LETTER NG",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x312B,
},
[0x312C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO LETTER GN",
- ["linebreak"]="id",
- ["unicodeslot"]=0x312C, -- ㄬ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO LETTER GN",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x312C,
},
[0x3131]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER KIYEOK",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x1100 },
- ["unicodeslot"]=0x3131, -- ㄱ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER KIYEOK",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x1100 },
+ unicodeslot=0x3131,
},
[0x3132]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER SSANGKIYEOK",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x1101 },
- ["unicodeslot"]=0x3132, -- ㄲ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER SSANGKIYEOK",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x1101 },
+ unicodeslot=0x3132,
},
[0x3133]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER KIYEOK-SIOS",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x11AA },
- ["unicodeslot"]=0x3133, -- ㄳ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER KIYEOK-SIOS",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x11AA },
+ unicodeslot=0x3133,
},
[0x3134]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER NIEUN",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x1102 },
- ["unicodeslot"]=0x3134, -- ㄴ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER NIEUN",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x1102 },
+ unicodeslot=0x3134,
},
[0x3135]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER NIEUN-CIEUC",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x11AC },
- ["unicodeslot"]=0x3135, -- ㄵ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER NIEUN-CIEUC",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x11AC },
+ unicodeslot=0x3135,
},
[0x3136]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER NIEUN-HIEUH",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x11AD },
- ["unicodeslot"]=0x3136, -- ㄶ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER NIEUN-HIEUH",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x11AD },
+ unicodeslot=0x3136,
},
[0x3137]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER TIKEUT",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x1103 },
- ["unicodeslot"]=0x3137, -- ㄷ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER TIKEUT",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x1103 },
+ unicodeslot=0x3137,
},
[0x3138]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER SSANGTIKEUT",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x1104 },
- ["unicodeslot"]=0x3138, -- ㄸ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER SSANGTIKEUT",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x1104 },
+ unicodeslot=0x3138,
},
[0x3139]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER RIEUL",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x1105 },
- ["unicodeslot"]=0x3139, -- ㄹ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER RIEUL",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x1105 },
+ unicodeslot=0x3139,
},
[0x313A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER RIEUL-KIYEOK",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x11B0 },
- ["unicodeslot"]=0x313A, -- ㄺ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER RIEUL-KIYEOK",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x11B0 },
+ unicodeslot=0x313A,
},
[0x313B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER RIEUL-MIEUM",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x11B1 },
- ["unicodeslot"]=0x313B, -- ㄻ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER RIEUL-MIEUM",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x11B1 },
+ unicodeslot=0x313B,
},
[0x313C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER RIEUL-PIEUP",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x11B2 },
- ["unicodeslot"]=0x313C, -- ㄼ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER RIEUL-PIEUP",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x11B2 },
+ unicodeslot=0x313C,
},
[0x313D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER RIEUL-SIOS",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x11B3 },
- ["unicodeslot"]=0x313D, -- ㄽ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER RIEUL-SIOS",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x11B3 },
+ unicodeslot=0x313D,
},
[0x313E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER RIEUL-THIEUTH",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x11B4 },
- ["unicodeslot"]=0x313E, -- ㄾ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER RIEUL-THIEUTH",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x11B4 },
+ unicodeslot=0x313E,
},
[0x313F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER RIEUL-PHIEUPH",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x11B5 },
- ["unicodeslot"]=0x313F, -- ㄿ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER RIEUL-PHIEUPH",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x11B5 },
+ unicodeslot=0x313F,
},
[0x3140]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER RIEUL-HIEUH",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x111A },
- ["unicodeslot"]=0x3140, -- ㅀ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER RIEUL-HIEUH",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x111A },
+ unicodeslot=0x3140,
},
[0x3141]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER MIEUM",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x1106 },
- ["unicodeslot"]=0x3141, -- ㅁ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER MIEUM",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x1106 },
+ unicodeslot=0x3141,
},
[0x3142]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER PIEUP",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x1107 },
- ["unicodeslot"]=0x3142, -- ㅂ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER PIEUP",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x1107 },
+ unicodeslot=0x3142,
},
[0x3143]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER SSANGPIEUP",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x1108 },
- ["unicodeslot"]=0x3143, -- ㅃ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER SSANGPIEUP",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x1108 },
+ unicodeslot=0x3143,
},
[0x3144]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER PIEUP-SIOS",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x1121 },
- ["unicodeslot"]=0x3144, -- ㅄ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER PIEUP-SIOS",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x1121 },
+ unicodeslot=0x3144,
},
[0x3145]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER SIOS",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x1109 },
- ["unicodeslot"]=0x3145, -- ㅅ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER SIOS",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x1109 },
+ unicodeslot=0x3145,
},
[0x3146]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER SSANGSIOS",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x110A },
- ["unicodeslot"]=0x3146, -- ㅆ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER SSANGSIOS",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x110A },
+ unicodeslot=0x3146,
},
[0x3147]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER IEUNG",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x110B },
- ["unicodeslot"]=0x3147, -- ㅇ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER IEUNG",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x110B },
+ unicodeslot=0x3147,
},
[0x3148]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER CIEUC",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x110C },
- ["unicodeslot"]=0x3148, -- ㅈ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER CIEUC",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x110C },
+ unicodeslot=0x3148,
},
[0x3149]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER SSANGCIEUC",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x110D },
- ["unicodeslot"]=0x3149, -- ㅉ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER SSANGCIEUC",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x110D },
+ unicodeslot=0x3149,
},
[0x314A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER CHIEUCH",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x110E },
- ["unicodeslot"]=0x314A, -- ㅊ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER CHIEUCH",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x110E },
+ unicodeslot=0x314A,
},
[0x314B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER KHIEUKH",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x110F },
- ["unicodeslot"]=0x314B, -- ㅋ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER KHIEUKH",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x110F },
+ unicodeslot=0x314B,
},
[0x314C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER THIEUTH",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x1110 },
- ["unicodeslot"]=0x314C, -- ㅌ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER THIEUTH",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x1110 },
+ unicodeslot=0x314C,
},
[0x314D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER PHIEUPH",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x1111 },
- ["unicodeslot"]=0x314D, -- ㅍ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER PHIEUPH",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x1111 },
+ unicodeslot=0x314D,
},
[0x314E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER HIEUH",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x1112 },
- ["unicodeslot"]=0x314E, -- ㅎ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER HIEUH",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x1112 },
+ unicodeslot=0x314E,
},
[0x314F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER A",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x1161 },
- ["unicodeslot"]=0x314F, -- ㅏ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER A",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x1161 },
+ unicodeslot=0x314F,
},
[0x3150]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER AE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x1162 },
- ["unicodeslot"]=0x3150, -- ㅐ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER AE",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x1162 },
+ unicodeslot=0x3150,
},
[0x3151]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER YA",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x1163 },
- ["unicodeslot"]=0x3151, -- ㅑ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER YA",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x1163 },
+ unicodeslot=0x3151,
},
[0x3152]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER YAE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x1164 },
- ["unicodeslot"]=0x3152, -- ㅒ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER YAE",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x1164 },
+ unicodeslot=0x3152,
},
[0x3153]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER EO",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x1165 },
- ["unicodeslot"]=0x3153, -- ㅓ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER EO",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x1165 },
+ unicodeslot=0x3153,
},
[0x3154]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER E",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x1166 },
- ["unicodeslot"]=0x3154, -- ㅔ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER E",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x1166 },
+ unicodeslot=0x3154,
},
[0x3155]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER YEO",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x1167 },
- ["unicodeslot"]=0x3155, -- ㅕ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER YEO",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x1167 },
+ unicodeslot=0x3155,
},
[0x3156]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER YE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x1168 },
- ["unicodeslot"]=0x3156, -- ㅖ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER YE",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x1168 },
+ unicodeslot=0x3156,
},
[0x3157]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER O",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x1169 },
- ["unicodeslot"]=0x3157, -- ㅗ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER O",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x1169 },
+ unicodeslot=0x3157,
},
[0x3158]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER WA",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x116A },
- ["unicodeslot"]=0x3158, -- ㅘ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER WA",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x116A },
+ unicodeslot=0x3158,
},
[0x3159]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER WAE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x116B },
- ["unicodeslot"]=0x3159, -- ㅙ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER WAE",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x116B },
+ unicodeslot=0x3159,
},
[0x315A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER OE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x116C },
- ["unicodeslot"]=0x315A, -- ㅚ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER OE",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x116C },
+ unicodeslot=0x315A,
},
[0x315B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER YO",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x116D },
- ["unicodeslot"]=0x315B, -- ㅛ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER YO",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x116D },
+ unicodeslot=0x315B,
},
[0x315C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER U",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x116E },
- ["unicodeslot"]=0x315C, -- ㅜ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER U",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x116E },
+ unicodeslot=0x315C,
},
[0x315D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER WEO",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x116F },
- ["unicodeslot"]=0x315D, -- ㅝ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER WEO",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x116F },
+ unicodeslot=0x315D,
},
[0x315E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER WE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x1170 },
- ["unicodeslot"]=0x315E, -- ㅞ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER WE",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x1170 },
+ unicodeslot=0x315E,
},
[0x315F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER WI",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x1171 },
- ["unicodeslot"]=0x315F, -- ㅟ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER WI",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x1171 },
+ unicodeslot=0x315F,
},
[0x3160]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER YU",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x1172 },
- ["unicodeslot"]=0x3160, -- ㅠ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER YU",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x1172 },
+ unicodeslot=0x3160,
},
[0x3161]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER EU",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x1173 },
- ["unicodeslot"]=0x3161, -- ㅡ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER EU",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x1173 },
+ unicodeslot=0x3161,
},
[0x3162]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER YI",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x1174 },
- ["unicodeslot"]=0x3162, -- ㅢ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER YI",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x1174 },
+ unicodeslot=0x3162,
},
[0x3163]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER I",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x1175 },
- ["unicodeslot"]=0x3163, -- ㅣ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER I",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x1175 },
+ unicodeslot=0x3163,
},
[0x3164]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL FILLER",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x1160 },
- ["unicodeslot"]=0x3164, -- ㅤ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL FILLER",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x1160 },
+ unicodeslot=0x3164,
},
[0x3165]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER SSANGNIEUN",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x1114 },
- ["unicodeslot"]=0x3165, -- ㅥ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER SSANGNIEUN",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x1114 },
+ unicodeslot=0x3165,
},
[0x3166]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER NIEUN-TIKEUT",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x1115 },
- ["unicodeslot"]=0x3166, -- ㅦ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER NIEUN-TIKEUT",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x1115 },
+ unicodeslot=0x3166,
},
[0x3167]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER NIEUN-SIOS",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x11C7 },
- ["unicodeslot"]=0x3167, -- ㅧ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER NIEUN-SIOS",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x11C7 },
+ unicodeslot=0x3167,
},
[0x3168]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER NIEUN-PANSIOS",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x11C8 },
- ["unicodeslot"]=0x3168, -- ㅨ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER NIEUN-PANSIOS",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x11C8 },
+ unicodeslot=0x3168,
},
[0x3169]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER RIEUL-KIYEOK-SIOS",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x11CC },
- ["unicodeslot"]=0x3169, -- ㅩ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER RIEUL-KIYEOK-SIOS",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x11CC },
+ unicodeslot=0x3169,
},
[0x316A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER RIEUL-TIKEUT",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x11CE },
- ["unicodeslot"]=0x316A, -- ㅪ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER RIEUL-TIKEUT",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x11CE },
+ unicodeslot=0x316A,
},
[0x316B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER RIEUL-PIEUP-SIOS",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x11D3 },
- ["unicodeslot"]=0x316B, -- ㅫ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER RIEUL-PIEUP-SIOS",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x11D3 },
+ unicodeslot=0x316B,
},
[0x316C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER RIEUL-PANSIOS",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x11D7 },
- ["unicodeslot"]=0x316C, -- ㅬ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER RIEUL-PANSIOS",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x11D7 },
+ unicodeslot=0x316C,
},
[0x316D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER RIEUL-YEORINHIEUH",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x11D9 },
- ["unicodeslot"]=0x316D, -- ㅭ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER RIEUL-YEORINHIEUH",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x11D9 },
+ unicodeslot=0x316D,
},
[0x316E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER MIEUM-PIEUP",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x111C },
- ["unicodeslot"]=0x316E, -- ㅮ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER MIEUM-PIEUP",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x111C },
+ unicodeslot=0x316E,
},
[0x316F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER MIEUM-SIOS",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x11DD },
- ["unicodeslot"]=0x316F, -- ㅯ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER MIEUM-SIOS",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x11DD },
+ unicodeslot=0x316F,
},
[0x3170]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER MIEUM-PANSIOS",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x11DF },
- ["unicodeslot"]=0x3170, -- ㅰ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER MIEUM-PANSIOS",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x11DF },
+ unicodeslot=0x3170,
},
[0x3171]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER KAPYEOUNMIEUM",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x111D },
- ["unicodeslot"]=0x3171, -- ㅱ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER KAPYEOUNMIEUM",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x111D },
+ unicodeslot=0x3171,
},
[0x3172]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER PIEUP-KIYEOK",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x111E },
- ["unicodeslot"]=0x3172, -- ㅲ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER PIEUP-KIYEOK",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x111E },
+ unicodeslot=0x3172,
},
[0x3173]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER PIEUP-TIKEUT",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x1120 },
- ["unicodeslot"]=0x3173, -- ㅳ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER PIEUP-TIKEUT",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x1120 },
+ unicodeslot=0x3173,
},
[0x3174]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER PIEUP-SIOS-KIYEOK",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x1122 },
- ["unicodeslot"]=0x3174, -- ㅴ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER PIEUP-SIOS-KIYEOK",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x1122 },
+ unicodeslot=0x3174,
},
[0x3175]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER PIEUP-SIOS-TIKEUT",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x1123 },
- ["unicodeslot"]=0x3175, -- ㅵ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER PIEUP-SIOS-TIKEUT",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x1123 },
+ unicodeslot=0x3175,
},
[0x3176]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER PIEUP-CIEUC",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x1127 },
- ["unicodeslot"]=0x3176, -- ㅶ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER PIEUP-CIEUC",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x1127 },
+ unicodeslot=0x3176,
},
[0x3177]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER PIEUP-THIEUTH",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x1129 },
- ["unicodeslot"]=0x3177, -- ㅷ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER PIEUP-THIEUTH",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x1129 },
+ unicodeslot=0x3177,
},
[0x3178]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER KAPYEOUNPIEUP",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x112B },
- ["unicodeslot"]=0x3178, -- ㅸ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER KAPYEOUNPIEUP",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x112B },
+ unicodeslot=0x3178,
},
[0x3179]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER KAPYEOUNSSANGPIEUP",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x112C },
- ["unicodeslot"]=0x3179, -- ㅹ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER KAPYEOUNSSANGPIEUP",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x112C },
+ unicodeslot=0x3179,
},
[0x317A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER SIOS-KIYEOK",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x112D },
- ["unicodeslot"]=0x317A, -- ㅺ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER SIOS-KIYEOK",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x112D },
+ unicodeslot=0x317A,
},
[0x317B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER SIOS-NIEUN",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x112E },
- ["unicodeslot"]=0x317B, -- ㅻ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER SIOS-NIEUN",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x112E },
+ unicodeslot=0x317B,
},
[0x317C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER SIOS-TIKEUT",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x112F },
- ["unicodeslot"]=0x317C, -- ㅼ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER SIOS-TIKEUT",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x112F },
+ unicodeslot=0x317C,
},
[0x317D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER SIOS-PIEUP",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x1132 },
- ["unicodeslot"]=0x317D, -- ㅽ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER SIOS-PIEUP",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x1132 },
+ unicodeslot=0x317D,
},
[0x317E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER SIOS-CIEUC",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x1136 },
- ["unicodeslot"]=0x317E, -- ㅾ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER SIOS-CIEUC",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x1136 },
+ unicodeslot=0x317E,
},
[0x317F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER PANSIOS",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x1140 },
- ["unicodeslot"]=0x317F, -- ㅿ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER PANSIOS",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x1140 },
+ unicodeslot=0x317F,
},
[0x3180]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER SSANGIEUNG",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x1147 },
- ["unicodeslot"]=0x3180, -- ㆀ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER SSANGIEUNG",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x1147 },
+ unicodeslot=0x3180,
},
[0x3181]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER YESIEUNG",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x114C },
- ["unicodeslot"]=0x3181, -- ㆁ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER YESIEUNG",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x114C },
+ unicodeslot=0x3181,
},
[0x3182]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER YESIEUNG-SIOS",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x11F1 },
- ["unicodeslot"]=0x3182, -- ㆂ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER YESIEUNG-SIOS",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x11F1 },
+ unicodeslot=0x3182,
},
[0x3183]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER YESIEUNG-PANSIOS",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x11F2 },
- ["unicodeslot"]=0x3183, -- ㆃ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER YESIEUNG-PANSIOS",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x11F2 },
+ unicodeslot=0x3183,
},
[0x3184]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER KAPYEOUNPHIEUPH",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x1157 },
- ["unicodeslot"]=0x3184, -- ㆄ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER KAPYEOUNPHIEUPH",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x1157 },
+ unicodeslot=0x3184,
},
[0x3185]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER SSANGHIEUH",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x1158 },
- ["unicodeslot"]=0x3185, -- ㆅ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER SSANGHIEUH",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x1158 },
+ unicodeslot=0x3185,
},
[0x3186]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER YEORINHIEUH",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x1159 },
- ["unicodeslot"]=0x3186, -- ㆆ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER YEORINHIEUH",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x1159 },
+ unicodeslot=0x3186,
},
[0x3187]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER YO-YA",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x1184 },
- ["unicodeslot"]=0x3187, -- ㆇ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER YO-YA",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x1184 },
+ unicodeslot=0x3187,
},
[0x3188]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER YO-YAE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x1185 },
- ["unicodeslot"]=0x3188, -- ㆈ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER YO-YAE",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x1185 },
+ unicodeslot=0x3188,
},
[0x3189]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER YO-I",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x1188 },
- ["unicodeslot"]=0x3189, -- ㆉ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER YO-I",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x1188 },
+ unicodeslot=0x3189,
},
[0x318A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER YU-YEO",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x1191 },
- ["unicodeslot"]=0x318A, -- ㆊ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER YU-YEO",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x1191 },
+ unicodeslot=0x318A,
},
[0x318B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER YU-YE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x1192 },
- ["unicodeslot"]=0x318B, -- ㆋ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER YU-YE",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x1192 },
+ unicodeslot=0x318B,
},
[0x318C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER YU-I",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x1194 },
- ["unicodeslot"]=0x318C, -- ㆌ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER YU-I",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x1194 },
+ unicodeslot=0x318C,
},
[0x318D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER ARAEA",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x119E },
- ["unicodeslot"]=0x318D, -- ㆍ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER ARAEA",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x119E },
+ unicodeslot=0x318D,
},
[0x318E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="HANGUL LETTER ARAEAE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x11A1 },
- ["unicodeslot"]=0x318E, -- ㆎ
+ category="lo",
+ cjkwd="w",
+ description="HANGUL LETTER ARAEAE",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x11A1 },
+ unicodeslot=0x318E,
},
[0x3190]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC ANNOTATION LINKING MARK",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3190, -- ㆐
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC ANNOTATION LINKING MARK",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3190,
},
[0x3191]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC ANNOTATION REVERSE MARK",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3191, -- ㆑
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC ANNOTATION REVERSE MARK",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3191,
},
[0x3192]={
- ["category"]="no",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC ANNOTATION ONE MARK",
- ["linebreak"]="id",
- ["specials"]={ "super", 0x4E00 },
- ["unicodeslot"]=0x3192, -- ㆒
+ category="no",
+ cjkwd="w",
+ description="IDEOGRAPHIC ANNOTATION ONE MARK",
+ direction="l",
+ linebreak="id",
+ specials={ "super", 0x4E00 },
+ unicodeslot=0x3192,
},
[0x3193]={
- ["category"]="no",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC ANNOTATION TWO MARK",
- ["linebreak"]="id",
- ["specials"]={ "super", 0x4E8C },
- ["unicodeslot"]=0x3193, -- ㆓
+ category="no",
+ cjkwd="w",
+ description="IDEOGRAPHIC ANNOTATION TWO MARK",
+ direction="l",
+ linebreak="id",
+ specials={ "super", 0x4E8C },
+ unicodeslot=0x3193,
},
[0x3194]={
- ["category"]="no",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC ANNOTATION THREE MARK",
- ["linebreak"]="id",
- ["specials"]={ "super", 0x4E09 },
- ["unicodeslot"]=0x3194, -- ㆔
+ category="no",
+ cjkwd="w",
+ description="IDEOGRAPHIC ANNOTATION THREE MARK",
+ direction="l",
+ linebreak="id",
+ specials={ "super", 0x4E09 },
+ unicodeslot=0x3194,
},
[0x3195]={
- ["category"]="no",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC ANNOTATION FOUR MARK",
- ["linebreak"]="id",
- ["specials"]={ "super", 0x56DB },
- ["unicodeslot"]=0x3195, -- ㆕
+ category="no",
+ cjkwd="w",
+ description="IDEOGRAPHIC ANNOTATION FOUR MARK",
+ direction="l",
+ linebreak="id",
+ specials={ "super", 0x56DB },
+ unicodeslot=0x3195,
},
[0x3196]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC ANNOTATION TOP MARK",
- ["linebreak"]="id",
- ["specials"]={ "super", 0x4E0A },
- ["unicodeslot"]=0x3196, -- ㆖
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC ANNOTATION TOP MARK",
+ direction="l",
+ linebreak="id",
+ specials={ "super", 0x4E0A },
+ unicodeslot=0x3196,
},
[0x3197]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC ANNOTATION MIDDLE MARK",
- ["linebreak"]="id",
- ["specials"]={ "super", 0x4E2D },
- ["unicodeslot"]=0x3197, -- ㆗
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC ANNOTATION MIDDLE MARK",
+ direction="l",
+ linebreak="id",
+ specials={ "super", 0x4E2D },
+ unicodeslot=0x3197,
},
[0x3198]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC ANNOTATION BOTTOM MARK",
- ["linebreak"]="id",
- ["specials"]={ "super", 0x4E0B },
- ["unicodeslot"]=0x3198, -- ㆘
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC ANNOTATION BOTTOM MARK",
+ direction="l",
+ linebreak="id",
+ specials={ "super", 0x4E0B },
+ unicodeslot=0x3198,
},
[0x3199]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC ANNOTATION FIRST MARK",
- ["linebreak"]="id",
- ["specials"]={ "super", 0x7532 },
- ["unicodeslot"]=0x3199, -- ㆙
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC ANNOTATION FIRST MARK",
+ direction="l",
+ linebreak="id",
+ specials={ "super", 0x7532 },
+ unicodeslot=0x3199,
},
[0x319A]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC ANNOTATION SECOND MARK",
- ["linebreak"]="id",
- ["specials"]={ "super", 0x4E59 },
- ["unicodeslot"]=0x319A, -- ㆚
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC ANNOTATION SECOND MARK",
+ direction="l",
+ linebreak="id",
+ specials={ "super", 0x4E59 },
+ unicodeslot=0x319A,
},
[0x319B]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC ANNOTATION THIRD MARK",
- ["linebreak"]="id",
- ["specials"]={ "super", 0x4E19 },
- ["unicodeslot"]=0x319B, -- ㆛
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC ANNOTATION THIRD MARK",
+ direction="l",
+ linebreak="id",
+ specials={ "super", 0x4E19 },
+ unicodeslot=0x319B,
},
[0x319C]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC ANNOTATION FOURTH MARK",
- ["linebreak"]="id",
- ["specials"]={ "super", 0x4E01 },
- ["unicodeslot"]=0x319C, -- ㆜
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC ANNOTATION FOURTH MARK",
+ direction="l",
+ linebreak="id",
+ specials={ "super", 0x4E01 },
+ unicodeslot=0x319C,
},
[0x319D]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC ANNOTATION HEAVEN MARK",
- ["linebreak"]="id",
- ["specials"]={ "super", 0x5929 },
- ["unicodeslot"]=0x319D, -- ㆝
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC ANNOTATION HEAVEN MARK",
+ direction="l",
+ linebreak="id",
+ specials={ "super", 0x5929 },
+ unicodeslot=0x319D,
},
[0x319E]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC ANNOTATION EARTH MARK",
- ["linebreak"]="id",
- ["specials"]={ "super", 0x5730 },
- ["unicodeslot"]=0x319E, -- ㆞
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC ANNOTATION EARTH MARK",
+ direction="l",
+ linebreak="id",
+ specials={ "super", 0x5730 },
+ unicodeslot=0x319E,
},
[0x319F]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC ANNOTATION MAN MARK",
- ["linebreak"]="id",
- ["specials"]={ "super", 0x4EBA },
- ["unicodeslot"]=0x319F, -- ㆟
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC ANNOTATION MAN MARK",
+ direction="l",
+ linebreak="id",
+ specials={ "super", 0x4EBA },
+ unicodeslot=0x319F,
},
[0x31A0]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO LETTER BU",
- ["linebreak"]="id",
- ["unicodeslot"]=0x31A0, -- ㆠ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO LETTER BU",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x31A0,
},
[0x31A1]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO LETTER ZI",
- ["linebreak"]="id",
- ["unicodeslot"]=0x31A1, -- ㆡ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO LETTER ZI",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x31A1,
},
[0x31A2]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO LETTER JI",
- ["linebreak"]="id",
- ["unicodeslot"]=0x31A2, -- ㆢ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO LETTER JI",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x31A2,
},
[0x31A3]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO LETTER GU",
- ["linebreak"]="id",
- ["unicodeslot"]=0x31A3, -- ㆣ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO LETTER GU",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x31A3,
},
[0x31A4]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO LETTER EE",
- ["linebreak"]="id",
- ["unicodeslot"]=0x31A4, -- ㆤ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO LETTER EE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x31A4,
},
[0x31A5]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO LETTER ENN",
- ["linebreak"]="id",
- ["unicodeslot"]=0x31A5, -- ㆥ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO LETTER ENN",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x31A5,
},
[0x31A6]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO LETTER OO",
- ["linebreak"]="id",
- ["unicodeslot"]=0x31A6, -- ㆦ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO LETTER OO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x31A6,
},
[0x31A7]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO LETTER ONN",
- ["linebreak"]="id",
- ["unicodeslot"]=0x31A7, -- ㆧ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO LETTER ONN",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x31A7,
},
[0x31A8]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO LETTER IR",
- ["linebreak"]="id",
- ["unicodeslot"]=0x31A8, -- ㆨ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO LETTER IR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x31A8,
},
[0x31A9]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO LETTER ANN",
- ["linebreak"]="id",
- ["unicodeslot"]=0x31A9, -- ㆩ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO LETTER ANN",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x31A9,
},
[0x31AA]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO LETTER INN",
- ["linebreak"]="id",
- ["unicodeslot"]=0x31AA, -- ㆪ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO LETTER INN",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x31AA,
},
[0x31AB]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO LETTER UNN",
- ["linebreak"]="id",
- ["unicodeslot"]=0x31AB, -- ㆫ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO LETTER UNN",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x31AB,
},
[0x31AC]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO LETTER IM",
- ["linebreak"]="id",
- ["unicodeslot"]=0x31AC, -- ㆬ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO LETTER IM",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x31AC,
},
[0x31AD]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO LETTER NGG",
- ["linebreak"]="id",
- ["unicodeslot"]=0x31AD, -- ㆭ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO LETTER NGG",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x31AD,
},
[0x31AE]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO LETTER AINN",
- ["linebreak"]="id",
- ["unicodeslot"]=0x31AE, -- ㆮ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO LETTER AINN",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x31AE,
},
[0x31AF]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO LETTER AUNN",
- ["linebreak"]="id",
- ["unicodeslot"]=0x31AF, -- ㆯ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO LETTER AUNN",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x31AF,
},
[0x31B0]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO LETTER AM",
- ["linebreak"]="id",
- ["unicodeslot"]=0x31B0, -- ㆰ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO LETTER AM",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x31B0,
},
[0x31B1]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO LETTER OM",
- ["linebreak"]="id",
- ["unicodeslot"]=0x31B1, -- ㆱ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO LETTER OM",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x31B1,
},
[0x31B2]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO LETTER ONG",
- ["linebreak"]="id",
- ["unicodeslot"]=0x31B2, -- ㆲ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO LETTER ONG",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x31B2,
},
[0x31B3]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO LETTER INNN",
- ["linebreak"]="id",
- ["unicodeslot"]=0x31B3, -- ㆳ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO LETTER INNN",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x31B3,
},
[0x31B4]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO FINAL LETTER P",
- ["linebreak"]="id",
- ["unicodeslot"]=0x31B4, -- ㆴ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO FINAL LETTER P",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x31B4,
},
[0x31B5]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO FINAL LETTER T",
- ["linebreak"]="id",
- ["unicodeslot"]=0x31B5, -- ㆵ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO FINAL LETTER T",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x31B5,
},
[0x31B6]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO FINAL LETTER K",
- ["linebreak"]="id",
- ["unicodeslot"]=0x31B6, -- ㆶ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO FINAL LETTER K",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x31B6,
},
[0x31B7]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="BOPOMOFO FINAL LETTER H",
- ["linebreak"]="id",
- ["unicodeslot"]=0x31B7, -- ㆷ
+ category="lo",
+ cjkwd="w",
+ description="BOPOMOFO FINAL LETTER H",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x31B7,
},
[0x31C0]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK STROKE T",
- ["linebreak"]="id",
- ["unicodeslot"]=0x31C0, -- ㇀
+ category="so",
+ cjkwd="w",
+ description="CJK STROKE T",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x31C0,
},
[0x31C1]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK STROKE WG",
- ["linebreak"]="id",
- ["unicodeslot"]=0x31C1, -- ㇁
+ category="so",
+ cjkwd="w",
+ description="CJK STROKE WG",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x31C1,
},
[0x31C2]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK STROKE XG",
- ["linebreak"]="id",
- ["unicodeslot"]=0x31C2, -- ㇂
+ category="so",
+ cjkwd="w",
+ description="CJK STROKE XG",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x31C2,
},
[0x31C3]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK STROKE BXG",
- ["linebreak"]="id",
- ["unicodeslot"]=0x31C3, -- ㇃
+ category="so",
+ cjkwd="w",
+ description="CJK STROKE BXG",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x31C3,
},
[0x31C4]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK STROKE SW",
- ["linebreak"]="id",
- ["unicodeslot"]=0x31C4, -- ㇄
+ category="so",
+ cjkwd="w",
+ description="CJK STROKE SW",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x31C4,
},
[0x31C5]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK STROKE HZZ",
- ["linebreak"]="id",
- ["unicodeslot"]=0x31C5, -- ㇅
+ category="so",
+ cjkwd="w",
+ description="CJK STROKE HZZ",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x31C5,
},
[0x31C6]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK STROKE HZG",
- ["linebreak"]="id",
- ["unicodeslot"]=0x31C6, -- ㇆
+ category="so",
+ cjkwd="w",
+ description="CJK STROKE HZG",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x31C6,
},
[0x31C7]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK STROKE HP",
- ["linebreak"]="id",
- ["unicodeslot"]=0x31C7, -- ㇇
+ category="so",
+ cjkwd="w",
+ description="CJK STROKE HP",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x31C7,
},
[0x31C8]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK STROKE HZWG",
- ["linebreak"]="id",
- ["unicodeslot"]=0x31C8, -- ㇈
+ category="so",
+ cjkwd="w",
+ description="CJK STROKE HZWG",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x31C8,
},
[0x31C9]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK STROKE SZWG",
- ["linebreak"]="id",
- ["unicodeslot"]=0x31C9, -- ㇉
+ category="so",
+ cjkwd="w",
+ description="CJK STROKE SZWG",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x31C9,
},
[0x31CA]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK STROKE HZT",
- ["linebreak"]="id",
- ["unicodeslot"]=0x31CA, -- ㇊
+ category="so",
+ cjkwd="w",
+ description="CJK STROKE HZT",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x31CA,
},
[0x31CB]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK STROKE HZZP",
- ["linebreak"]="id",
- ["unicodeslot"]=0x31CB, -- ㇋
+ category="so",
+ cjkwd="w",
+ description="CJK STROKE HZZP",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x31CB,
},
[0x31CC]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK STROKE HPWG",
- ["linebreak"]="id",
- ["unicodeslot"]=0x31CC, -- ㇌
+ category="so",
+ cjkwd="w",
+ description="CJK STROKE HPWG",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x31CC,
},
[0x31CD]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK STROKE HZW",
- ["linebreak"]="id",
- ["unicodeslot"]=0x31CD, -- ㇍
+ category="so",
+ cjkwd="w",
+ description="CJK STROKE HZW",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x31CD,
},
[0x31CE]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK STROKE HZZZ",
- ["linebreak"]="id",
- ["unicodeslot"]=0x31CE, -- ㇎
+ category="so",
+ cjkwd="w",
+ description="CJK STROKE HZZZ",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x31CE,
},
[0x31CF]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CJK STROKE N",
- ["linebreak"]="id",
- ["unicodeslot"]=0x31CF, -- ㇏
+ category="so",
+ cjkwd="w",
+ description="CJK STROKE N",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x31CF,
},
[0x31F0]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER SMALL KU",
- ["linebreak"]="ns",
- ["unicodeslot"]=0x31F0, -- ㇰ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER SMALL KU",
+ direction="l",
+ linebreak="ns",
+ unicodeslot=0x31F0,
},
[0x31F1]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER SMALL SI",
- ["linebreak"]="ns",
- ["unicodeslot"]=0x31F1, -- ㇱ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER SMALL SI",
+ direction="l",
+ linebreak="ns",
+ unicodeslot=0x31F1,
},
[0x31F2]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER SMALL SU",
- ["linebreak"]="ns",
- ["unicodeslot"]=0x31F2, -- ㇲ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER SMALL SU",
+ direction="l",
+ linebreak="ns",
+ unicodeslot=0x31F2,
},
[0x31F3]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER SMALL TO",
- ["linebreak"]="ns",
- ["unicodeslot"]=0x31F3, -- ㇳ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER SMALL TO",
+ direction="l",
+ linebreak="ns",
+ unicodeslot=0x31F3,
},
[0x31F4]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER SMALL NU",
- ["linebreak"]="ns",
- ["unicodeslot"]=0x31F4, -- ㇴ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER SMALL NU",
+ direction="l",
+ linebreak="ns",
+ unicodeslot=0x31F4,
},
[0x31F5]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER SMALL HA",
- ["linebreak"]="ns",
- ["unicodeslot"]=0x31F5, -- ㇵ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER SMALL HA",
+ direction="l",
+ linebreak="ns",
+ unicodeslot=0x31F5,
},
[0x31F6]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER SMALL HI",
- ["linebreak"]="ns",
- ["unicodeslot"]=0x31F6, -- ㇶ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER SMALL HI",
+ direction="l",
+ linebreak="ns",
+ unicodeslot=0x31F6,
},
[0x31F7]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER SMALL HU",
- ["linebreak"]="ns",
- ["unicodeslot"]=0x31F7, -- ㇷ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER SMALL HU",
+ direction="l",
+ linebreak="ns",
+ unicodeslot=0x31F7,
},
[0x31F8]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER SMALL HE",
- ["linebreak"]="ns",
- ["unicodeslot"]=0x31F8, -- ㇸ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER SMALL HE",
+ direction="l",
+ linebreak="ns",
+ unicodeslot=0x31F8,
},
[0x31F9]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER SMALL HO",
- ["linebreak"]="ns",
- ["unicodeslot"]=0x31F9, -- ㇹ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER SMALL HO",
+ direction="l",
+ linebreak="ns",
+ unicodeslot=0x31F9,
},
[0x31FA]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER SMALL MU",
- ["linebreak"]="ns",
- ["unicodeslot"]=0x31FA, -- ㇺ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER SMALL MU",
+ direction="l",
+ linebreak="ns",
+ unicodeslot=0x31FA,
},
[0x31FB]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER SMALL RA",
- ["linebreak"]="ns",
- ["unicodeslot"]=0x31FB, -- ㇻ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER SMALL RA",
+ direction="l",
+ linebreak="ns",
+ unicodeslot=0x31FB,
},
[0x31FC]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER SMALL RI",
- ["linebreak"]="ns",
- ["unicodeslot"]=0x31FC, -- ㇼ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER SMALL RI",
+ direction="l",
+ linebreak="ns",
+ unicodeslot=0x31FC,
},
[0x31FD]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER SMALL RU",
- ["linebreak"]="ns",
- ["unicodeslot"]=0x31FD, -- ㇽ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER SMALL RU",
+ direction="l",
+ linebreak="ns",
+ unicodeslot=0x31FD,
},
[0x31FE]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER SMALL RE",
- ["linebreak"]="ns",
- ["unicodeslot"]=0x31FE, -- ㇾ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER SMALL RE",
+ direction="l",
+ linebreak="ns",
+ unicodeslot=0x31FE,
},
[0x31FF]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="KATAKANA LETTER SMALL RO",
- ["linebreak"]="ns",
- ["unicodeslot"]=0x31FF, -- ㇿ
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER SMALL RO",
+ direction="l",
+ linebreak="ns",
+ unicodeslot=0x31FF,
},
[0x3200]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED HANGUL KIYEOK",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x1100, 0x0029 },
- ["unicodeslot"]=0x3200, -- ㈀
+ category="so",
+ cjkwd="w",
+ description="PARENTHESIZED HANGUL KIYEOK",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x1100, 0x0029 },
+ unicodeslot=0x3200,
},
[0x3201]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED HANGUL NIEUN",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x1102, 0x0029 },
- ["unicodeslot"]=0x3201, -- ㈁
+ category="so",
+ cjkwd="w",
+ description="PARENTHESIZED HANGUL NIEUN",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x1102, 0x0029 },
+ unicodeslot=0x3201,
},
[0x3202]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED HANGUL TIKEUT",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x1103, 0x0029 },
- ["unicodeslot"]=0x3202, -- ㈂
+ category="so",
+ cjkwd="w",
+ description="PARENTHESIZED HANGUL TIKEUT",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x1103, 0x0029 },
+ unicodeslot=0x3202,
},
[0x3203]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED HANGUL RIEUL",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x1105, 0x0029 },
- ["unicodeslot"]=0x3203, -- ㈃
+ category="so",
+ cjkwd="w",
+ description="PARENTHESIZED HANGUL RIEUL",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x1105, 0x0029 },
+ unicodeslot=0x3203,
},
[0x3204]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED HANGUL MIEUM",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x1106, 0x0029 },
- ["unicodeslot"]=0x3204, -- ㈄
+ category="so",
+ cjkwd="w",
+ description="PARENTHESIZED HANGUL MIEUM",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x1106, 0x0029 },
+ unicodeslot=0x3204,
},
[0x3205]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED HANGUL PIEUP",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x1107, 0x0029 },
- ["unicodeslot"]=0x3205, -- ㈅
+ category="so",
+ cjkwd="w",
+ description="PARENTHESIZED HANGUL PIEUP",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x1107, 0x0029 },
+ unicodeslot=0x3205,
},
[0x3206]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED HANGUL SIOS",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x1109, 0x0029 },
- ["unicodeslot"]=0x3206, -- ㈆
+ category="so",
+ cjkwd="w",
+ description="PARENTHESIZED HANGUL SIOS",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x1109, 0x0029 },
+ unicodeslot=0x3206,
},
[0x3207]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED HANGUL IEUNG",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x110B, 0x0029 },
- ["unicodeslot"]=0x3207, -- ㈇
+ category="so",
+ cjkwd="w",
+ description="PARENTHESIZED HANGUL IEUNG",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x110B, 0x0029 },
+ unicodeslot=0x3207,
},
[0x3208]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED HANGUL CIEUC",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x110C, 0x0029 },
- ["unicodeslot"]=0x3208, -- ㈈
+ category="so",
+ cjkwd="w",
+ description="PARENTHESIZED HANGUL CIEUC",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x110C, 0x0029 },
+ unicodeslot=0x3208,
},
[0x3209]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED HANGUL CHIEUCH",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x110E, 0x0029 },
- ["unicodeslot"]=0x3209, -- ㈉
+ category="so",
+ cjkwd="w",
+ description="PARENTHESIZED HANGUL CHIEUCH",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x110E, 0x0029 },
+ unicodeslot=0x3209,
},
[0x320A]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED HANGUL KHIEUKH",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x110F, 0x0029 },
- ["unicodeslot"]=0x320A, -- ㈊
+ category="so",
+ cjkwd="w",
+ description="PARENTHESIZED HANGUL KHIEUKH",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x110F, 0x0029 },
+ unicodeslot=0x320A,
},
[0x320B]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED HANGUL THIEUTH",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x1110, 0x0029 },
- ["unicodeslot"]=0x320B, -- ㈋
+ category="so",
+ cjkwd="w",
+ description="PARENTHESIZED HANGUL THIEUTH",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x1110, 0x0029 },
+ unicodeslot=0x320B,
},
[0x320C]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED HANGUL PHIEUPH",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x1111, 0x0029 },
- ["unicodeslot"]=0x320C, -- ㈌
+ category="so",
+ cjkwd="w",
+ description="PARENTHESIZED HANGUL PHIEUPH",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x1111, 0x0029 },
+ unicodeslot=0x320C,
},
[0x320D]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED HANGUL HIEUH",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x1112, 0x0029 },
- ["unicodeslot"]=0x320D, -- ㈍
+ category="so",
+ cjkwd="w",
+ description="PARENTHESIZED HANGUL HIEUH",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x1112, 0x0029 },
+ unicodeslot=0x320D,
},
[0x320E]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED HANGUL KIYEOK A",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x1100, 0x1161, 0x0029 },
- ["unicodeslot"]=0x320E, -- ㈎
+ category="so",
+ cjkwd="w",
+ description="PARENTHESIZED HANGUL KIYEOK A",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x1100, 0x1161, 0x0029 },
+ unicodeslot=0x320E,
},
[0x320F]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED HANGUL NIEUN A",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x1102, 0x1161, 0x0029 },
- ["unicodeslot"]=0x320F, -- ㈏
+ category="so",
+ cjkwd="w",
+ description="PARENTHESIZED HANGUL NIEUN A",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x1102, 0x1161, 0x0029 },
+ unicodeslot=0x320F,
},
[0x3210]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED HANGUL TIKEUT A",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x1103, 0x1161, 0x0029 },
- ["unicodeslot"]=0x3210, -- ㈐
+ category="so",
+ cjkwd="w",
+ description="PARENTHESIZED HANGUL TIKEUT A",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x1103, 0x1161, 0x0029 },
+ unicodeslot=0x3210,
},
[0x3211]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED HANGUL RIEUL A",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x1105, 0x1161, 0x0029 },
- ["unicodeslot"]=0x3211, -- ㈑
+ category="so",
+ cjkwd="w",
+ description="PARENTHESIZED HANGUL RIEUL A",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x1105, 0x1161, 0x0029 },
+ unicodeslot=0x3211,
},
[0x3212]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED HANGUL MIEUM A",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x1106, 0x1161, 0x0029 },
- ["unicodeslot"]=0x3212, -- ㈒
+ category="so",
+ cjkwd="w",
+ description="PARENTHESIZED HANGUL MIEUM A",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x1106, 0x1161, 0x0029 },
+ unicodeslot=0x3212,
},
[0x3213]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED HANGUL PIEUP A",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x1107, 0x1161, 0x0029 },
- ["unicodeslot"]=0x3213, -- ㈓
+ category="so",
+ cjkwd="w",
+ description="PARENTHESIZED HANGUL PIEUP A",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x1107, 0x1161, 0x0029 },
+ unicodeslot=0x3213,
},
[0x3214]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED HANGUL SIOS A",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x1109, 0x1161, 0x0029 },
- ["unicodeslot"]=0x3214, -- ㈔
+ category="so",
+ cjkwd="w",
+ description="PARENTHESIZED HANGUL SIOS A",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x1109, 0x1161, 0x0029 },
+ unicodeslot=0x3214,
},
[0x3215]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED HANGUL IEUNG A",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x110B, 0x1161, 0x0029 },
- ["unicodeslot"]=0x3215, -- ㈕
+ category="so",
+ cjkwd="w",
+ description="PARENTHESIZED HANGUL IEUNG A",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x110B, 0x1161, 0x0029 },
+ unicodeslot=0x3215,
},
[0x3216]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED HANGUL CIEUC A",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x110C, 0x1161, 0x0029 },
- ["unicodeslot"]=0x3216, -- ㈖
+ category="so",
+ cjkwd="w",
+ description="PARENTHESIZED HANGUL CIEUC A",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x110C, 0x1161, 0x0029 },
+ unicodeslot=0x3216,
},
[0x3217]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED HANGUL CHIEUCH A",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x110E, 0x1161, 0x0029 },
- ["unicodeslot"]=0x3217, -- ㈗
+ category="so",
+ cjkwd="w",
+ description="PARENTHESIZED HANGUL CHIEUCH A",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x110E, 0x1161, 0x0029 },
+ unicodeslot=0x3217,
},
[0x3218]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED HANGUL KHIEUKH A",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x110F, 0x1161, 0x0029 },
- ["unicodeslot"]=0x3218, -- ㈘
+ category="so",
+ cjkwd="w",
+ description="PARENTHESIZED HANGUL KHIEUKH A",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x110F, 0x1161, 0x0029 },
+ unicodeslot=0x3218,
},
[0x3219]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED HANGUL THIEUTH A",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x1110, 0x1161, 0x0029 },
- ["unicodeslot"]=0x3219, -- ㈙
+ category="so",
+ cjkwd="w",
+ description="PARENTHESIZED HANGUL THIEUTH A",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x1110, 0x1161, 0x0029 },
+ unicodeslot=0x3219,
},
[0x321A]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED HANGUL PHIEUPH A",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x1111, 0x1161, 0x0029 },
- ["unicodeslot"]=0x321A, -- ㈚
+ category="so",
+ cjkwd="w",
+ description="PARENTHESIZED HANGUL PHIEUPH A",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x1111, 0x1161, 0x0029 },
+ unicodeslot=0x321A,
},
[0x321B]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED HANGUL HIEUH A",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x1112, 0x1161, 0x0029 },
- ["unicodeslot"]=0x321B, -- ㈛
+ category="so",
+ cjkwd="w",
+ description="PARENTHESIZED HANGUL HIEUH A",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x1112, 0x1161, 0x0029 },
+ unicodeslot=0x321B,
},
[0x321C]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED HANGUL CIEUC U",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x110C, 0x116E, 0x0029 },
- ["unicodeslot"]=0x321C, -- ㈜
+ category="so",
+ cjkwd="w",
+ description="PARENTHESIZED HANGUL CIEUC U",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x110C, 0x116E, 0x0029 },
+ unicodeslot=0x321C,
},
[0x321D]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED KOREAN CHARACTER OJEON",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x110B, 0x1169, 0x110C, 0x1165, 0x11AB, 0x0029 },
- ["unicodeslot"]=0x321D, -- ㈝
+ category="so",
+ cjkwd="w",
+ description="PARENTHESIZED KOREAN CHARACTER OJEON",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x110B, 0x1169, 0x110C, 0x1165, 0x11AB, 0x0029 },
+ unicodeslot=0x321D,
},
[0x321E]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED KOREAN CHARACTER O HU",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x110B, 0x1169, 0x1112, 0x116E, 0x0029 },
- ["unicodeslot"]=0x321E, -- ㈞
+ category="so",
+ cjkwd="w",
+ description="PARENTHESIZED KOREAN CHARACTER O HU",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x110B, 0x1169, 0x1112, 0x116E, 0x0029 },
+ unicodeslot=0x321E,
},
[0x3220]={
- ["category"]="no",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED IDEOGRAPH ONE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x4E00, 0x0029 },
- ["unicodeslot"]=0x3220, -- ㈠
+ category="no",
+ cjkwd="w",
+ description="PARENTHESIZED IDEOGRAPH ONE",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x4E00, 0x0029 },
+ unicodeslot=0x3220,
},
[0x3221]={
- ["category"]="no",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED IDEOGRAPH TWO",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x4E8C, 0x0029 },
- ["unicodeslot"]=0x3221, -- ㈡
+ category="no",
+ cjkwd="w",
+ description="PARENTHESIZED IDEOGRAPH TWO",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x4E8C, 0x0029 },
+ unicodeslot=0x3221,
},
[0x3222]={
- ["category"]="no",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED IDEOGRAPH THREE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x4E09, 0x0029 },
- ["unicodeslot"]=0x3222, -- ㈢
+ category="no",
+ cjkwd="w",
+ description="PARENTHESIZED IDEOGRAPH THREE",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x4E09, 0x0029 },
+ unicodeslot=0x3222,
},
[0x3223]={
- ["category"]="no",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED IDEOGRAPH FOUR",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x56DB, 0x0029 },
- ["unicodeslot"]=0x3223, -- ㈣
+ category="no",
+ cjkwd="w",
+ description="PARENTHESIZED IDEOGRAPH FOUR",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x56DB, 0x0029 },
+ unicodeslot=0x3223,
},
[0x3224]={
- ["category"]="no",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED IDEOGRAPH FIVE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x4E94, 0x0029 },
- ["unicodeslot"]=0x3224, -- ㈤
+ category="no",
+ cjkwd="w",
+ description="PARENTHESIZED IDEOGRAPH FIVE",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x4E94, 0x0029 },
+ unicodeslot=0x3224,
},
[0x3225]={
- ["category"]="no",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED IDEOGRAPH SIX",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x516D, 0x0029 },
- ["unicodeslot"]=0x3225, -- ㈥
+ category="no",
+ cjkwd="w",
+ description="PARENTHESIZED IDEOGRAPH SIX",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x516D, 0x0029 },
+ unicodeslot=0x3225,
},
[0x3226]={
- ["category"]="no",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED IDEOGRAPH SEVEN",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x4E03, 0x0029 },
- ["unicodeslot"]=0x3226, -- ㈦
+ category="no",
+ cjkwd="w",
+ description="PARENTHESIZED IDEOGRAPH SEVEN",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x4E03, 0x0029 },
+ unicodeslot=0x3226,
},
[0x3227]={
- ["category"]="no",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED IDEOGRAPH EIGHT",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x516B, 0x0029 },
- ["unicodeslot"]=0x3227, -- ㈧
+ category="no",
+ cjkwd="w",
+ description="PARENTHESIZED IDEOGRAPH EIGHT",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x516B, 0x0029 },
+ unicodeslot=0x3227,
},
[0x3228]={
- ["category"]="no",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED IDEOGRAPH NINE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x4E5D, 0x0029 },
- ["unicodeslot"]=0x3228, -- ㈨
+ category="no",
+ cjkwd="w",
+ description="PARENTHESIZED IDEOGRAPH NINE",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x4E5D, 0x0029 },
+ unicodeslot=0x3228,
},
[0x3229]={
- ["category"]="no",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED IDEOGRAPH TEN",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x5341, 0x0029 },
- ["unicodeslot"]=0x3229, -- ㈩
+ category="no",
+ cjkwd="w",
+ description="PARENTHESIZED IDEOGRAPH TEN",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x5341, 0x0029 },
+ unicodeslot=0x3229,
},
[0x322A]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED IDEOGRAPH MOON",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x6708, 0x0029 },
- ["unicodeslot"]=0x322A, -- ㈪
+ category="so",
+ cjkwd="w",
+ description="PARENTHESIZED IDEOGRAPH MOON",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x6708, 0x0029 },
+ unicodeslot=0x322A,
},
[0x322B]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED IDEOGRAPH FIRE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x706B, 0x0029 },
- ["unicodeslot"]=0x322B, -- ㈫
+ category="so",
+ cjkwd="w",
+ description="PARENTHESIZED IDEOGRAPH FIRE",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x706B, 0x0029 },
+ unicodeslot=0x322B,
},
[0x322C]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED IDEOGRAPH WATER",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x6C34, 0x0029 },
- ["unicodeslot"]=0x322C, -- ㈬
+ category="so",
+ cjkwd="w",
+ description="PARENTHESIZED IDEOGRAPH WATER",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x6C34, 0x0029 },
+ unicodeslot=0x322C,
},
[0x322D]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED IDEOGRAPH WOOD",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x6728, 0x0029 },
- ["unicodeslot"]=0x322D, -- ㈭
+ category="so",
+ cjkwd="w",
+ description="PARENTHESIZED IDEOGRAPH WOOD",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x6728, 0x0029 },
+ unicodeslot=0x322D,
},
[0x322E]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED IDEOGRAPH METAL",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x91D1, 0x0029 },
- ["unicodeslot"]=0x322E, -- ㈮
+ category="so",
+ cjkwd="w",
+ description="PARENTHESIZED IDEOGRAPH METAL",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x91D1, 0x0029 },
+ unicodeslot=0x322E,
},
[0x322F]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED IDEOGRAPH EARTH",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x571F, 0x0029 },
- ["unicodeslot"]=0x322F, -- ㈯
+ category="so",
+ cjkwd="w",
+ description="PARENTHESIZED IDEOGRAPH EARTH",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x571F, 0x0029 },
+ unicodeslot=0x322F,
},
[0x3230]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED IDEOGRAPH SUN",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x65E5, 0x0029 },
- ["unicodeslot"]=0x3230, -- ㈰
+ category="so",
+ cjkwd="w",
+ description="PARENTHESIZED IDEOGRAPH SUN",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x65E5, 0x0029 },
+ unicodeslot=0x3230,
},
[0x3231]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED IDEOGRAPH STOCK",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x682A, 0x0029 },
- ["unicodeslot"]=0x3231, -- ㈱
+ category="so",
+ cjkwd="w",
+ description="PARENTHESIZED IDEOGRAPH STOCK",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x682A, 0x0029 },
+ unicodeslot=0x3231,
},
[0x3232]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED IDEOGRAPH HAVE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x6709, 0x0029 },
- ["unicodeslot"]=0x3232, -- ㈲
+ category="so",
+ cjkwd="w",
+ description="PARENTHESIZED IDEOGRAPH HAVE",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x6709, 0x0029 },
+ unicodeslot=0x3232,
},
[0x3233]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED IDEOGRAPH SOCIETY",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x793E, 0x0029 },
- ["unicodeslot"]=0x3233, -- ㈳
+ category="so",
+ cjkwd="w",
+ description="PARENTHESIZED IDEOGRAPH SOCIETY",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x793E, 0x0029 },
+ unicodeslot=0x3233,
},
[0x3234]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED IDEOGRAPH NAME",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x540D, 0x0029 },
- ["unicodeslot"]=0x3234, -- ㈴
+ category="so",
+ cjkwd="w",
+ description="PARENTHESIZED IDEOGRAPH NAME",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x540D, 0x0029 },
+ unicodeslot=0x3234,
},
[0x3235]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED IDEOGRAPH SPECIAL",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x7279, 0x0029 },
- ["unicodeslot"]=0x3235, -- ㈵
+ category="so",
+ cjkwd="w",
+ description="PARENTHESIZED IDEOGRAPH SPECIAL",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x7279, 0x0029 },
+ unicodeslot=0x3235,
},
[0x3236]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED IDEOGRAPH FINANCIAL",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x8CA1, 0x0029 },
- ["unicodeslot"]=0x3236, -- ㈶
+ category="so",
+ cjkwd="w",
+ description="PARENTHESIZED IDEOGRAPH FINANCIAL",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x8CA1, 0x0029 },
+ unicodeslot=0x3236,
},
[0x3237]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED IDEOGRAPH CONGRATULATION",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x795D, 0x0029 },
- ["unicodeslot"]=0x3237, -- ㈷
+ category="so",
+ cjkwd="w",
+ description="PARENTHESIZED IDEOGRAPH CONGRATULATION",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x795D, 0x0029 },
+ unicodeslot=0x3237,
},
[0x3238]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED IDEOGRAPH LABOR",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x52B4, 0x0029 },
- ["unicodeslot"]=0x3238, -- ㈸
+ category="so",
+ cjkwd="w",
+ description="PARENTHESIZED IDEOGRAPH LABOR",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x52B4, 0x0029 },
+ unicodeslot=0x3238,
},
[0x3239]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED IDEOGRAPH REPRESENT",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x4EE3, 0x0029 },
- ["unicodeslot"]=0x3239, -- ㈹
+ category="so",
+ cjkwd="w",
+ description="PARENTHESIZED IDEOGRAPH REPRESENT",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x4EE3, 0x0029 },
+ unicodeslot=0x3239,
},
[0x323A]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED IDEOGRAPH CALL",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x547C, 0x0029 },
- ["unicodeslot"]=0x323A, -- ㈺
+ category="so",
+ cjkwd="w",
+ description="PARENTHESIZED IDEOGRAPH CALL",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x547C, 0x0029 },
+ unicodeslot=0x323A,
},
[0x323B]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED IDEOGRAPH STUDY",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x5B66, 0x0029 },
- ["unicodeslot"]=0x323B, -- ㈻
+ category="so",
+ cjkwd="w",
+ description="PARENTHESIZED IDEOGRAPH STUDY",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x5B66, 0x0029 },
+ unicodeslot=0x323B,
},
[0x323C]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED IDEOGRAPH SUPERVISE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x76E3, 0x0029 },
- ["unicodeslot"]=0x323C, -- ㈼
+ category="so",
+ cjkwd="w",
+ description="PARENTHESIZED IDEOGRAPH SUPERVISE",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x76E3, 0x0029 },
+ unicodeslot=0x323C,
},
[0x323D]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED IDEOGRAPH ENTERPRISE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x4F01, 0x0029 },
- ["unicodeslot"]=0x323D, -- ㈽
+ category="so",
+ cjkwd="w",
+ description="PARENTHESIZED IDEOGRAPH ENTERPRISE",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x4F01, 0x0029 },
+ unicodeslot=0x323D,
},
[0x323E]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED IDEOGRAPH RESOURCE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x8CC7, 0x0029 },
- ["unicodeslot"]=0x323E, -- ㈾
+ category="so",
+ cjkwd="w",
+ description="PARENTHESIZED IDEOGRAPH RESOURCE",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x8CC7, 0x0029 },
+ unicodeslot=0x323E,
},
[0x323F]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED IDEOGRAPH ALLIANCE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x5354, 0x0029 },
- ["unicodeslot"]=0x323F, -- ㈿
+ category="so",
+ cjkwd="w",
+ description="PARENTHESIZED IDEOGRAPH ALLIANCE",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x5354, 0x0029 },
+ unicodeslot=0x323F,
},
[0x3240]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED IDEOGRAPH FESTIVAL",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x796D, 0x0029 },
- ["unicodeslot"]=0x3240, -- ㉀
+ category="so",
+ cjkwd="w",
+ description="PARENTHESIZED IDEOGRAPH FESTIVAL",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x796D, 0x0029 },
+ unicodeslot=0x3240,
},
[0x3241]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED IDEOGRAPH REST",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x4F11, 0x0029 },
- ["unicodeslot"]=0x3241, -- ㉁
+ category="so",
+ cjkwd="w",
+ description="PARENTHESIZED IDEOGRAPH REST",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x4F11, 0x0029 },
+ unicodeslot=0x3241,
},
[0x3242]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED IDEOGRAPH SELF",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x81EA, 0x0029 },
- ["unicodeslot"]=0x3242, -- ㉂
+ category="so",
+ cjkwd="w",
+ description="PARENTHESIZED IDEOGRAPH SELF",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x81EA, 0x0029 },
+ unicodeslot=0x3242,
},
[0x3243]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="PARENTHESIZED IDEOGRAPH REACH",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0028, 0x81F3, 0x0029 },
- ["unicodeslot"]=0x3243, -- ㉃
+ category="so",
+ cjkwd="w",
+ description="PARENTHESIZED IDEOGRAPH REACH",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0028, 0x81F3, 0x0029 },
+ unicodeslot=0x3243,
},
[0x3250]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="PARTNERSHIP SIGN",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x0050, 0x0054, 0x0045 },
- ["unicodeslot"]=0x3250, -- ㉐
+ category="so",
+ cjkwd="w",
+ description="PARTNERSHIP SIGN",
+ direction="on",
+ linebreak="id",
+ specials={ "square", 0x0050, 0x0054, 0x0045 },
+ unicodeslot=0x3250,
},
[0x3251]={
- ["category"]="no",
- ["cjkwd"]="w",
- ["description"]="CIRCLED NUMBER TWENTY ONE",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x0032, 0x0031 },
- ["unicodeslot"]=0x3251, -- ㉑
+ category="no",
+ cjkwd="w",
+ description="CIRCLED NUMBER TWENTY ONE",
+ direction="on",
+ linebreak="id",
+ specials={ "circle", 0x0032, 0x0031 },
+ unicodeslot=0x3251,
},
[0x3252]={
- ["category"]="no",
- ["cjkwd"]="w",
- ["description"]="CIRCLED NUMBER TWENTY TWO",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x0032, 0x0032 },
- ["unicodeslot"]=0x3252, -- ㉒
+ category="no",
+ cjkwd="w",
+ description="CIRCLED NUMBER TWENTY TWO",
+ direction="on",
+ linebreak="id",
+ specials={ "circle", 0x0032, 0x0032 },
+ unicodeslot=0x3252,
},
[0x3253]={
- ["category"]="no",
- ["cjkwd"]="w",
- ["description"]="CIRCLED NUMBER TWENTY THREE",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x0032, 0x0033 },
- ["unicodeslot"]=0x3253, -- ㉓
+ category="no",
+ cjkwd="w",
+ description="CIRCLED NUMBER TWENTY THREE",
+ direction="on",
+ linebreak="id",
+ specials={ "circle", 0x0032, 0x0033 },
+ unicodeslot=0x3253,
},
[0x3254]={
- ["category"]="no",
- ["cjkwd"]="w",
- ["description"]="CIRCLED NUMBER TWENTY FOUR",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x0032, 0x0034 },
- ["unicodeslot"]=0x3254, -- ㉔
+ category="no",
+ cjkwd="w",
+ description="CIRCLED NUMBER TWENTY FOUR",
+ direction="on",
+ linebreak="id",
+ specials={ "circle", 0x0032, 0x0034 },
+ unicodeslot=0x3254,
},
[0x3255]={
- ["category"]="no",
- ["cjkwd"]="w",
- ["description"]="CIRCLED NUMBER TWENTY FIVE",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x0032, 0x0035 },
- ["unicodeslot"]=0x3255, -- ㉕
+ category="no",
+ cjkwd="w",
+ description="CIRCLED NUMBER TWENTY FIVE",
+ direction="on",
+ linebreak="id",
+ specials={ "circle", 0x0032, 0x0035 },
+ unicodeslot=0x3255,
},
[0x3256]={
- ["category"]="no",
- ["cjkwd"]="w",
- ["description"]="CIRCLED NUMBER TWENTY SIX",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x0032, 0x0036 },
- ["unicodeslot"]=0x3256, -- ㉖
+ category="no",
+ cjkwd="w",
+ description="CIRCLED NUMBER TWENTY SIX",
+ direction="on",
+ linebreak="id",
+ specials={ "circle", 0x0032, 0x0036 },
+ unicodeslot=0x3256,
},
[0x3257]={
- ["category"]="no",
- ["cjkwd"]="w",
- ["description"]="CIRCLED NUMBER TWENTY SEVEN",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x0032, 0x0037 },
- ["unicodeslot"]=0x3257, -- ㉗
+ category="no",
+ cjkwd="w",
+ description="CIRCLED NUMBER TWENTY SEVEN",
+ direction="on",
+ linebreak="id",
+ specials={ "circle", 0x0032, 0x0037 },
+ unicodeslot=0x3257,
},
[0x3258]={
- ["category"]="no",
- ["cjkwd"]="w",
- ["description"]="CIRCLED NUMBER TWENTY EIGHT",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x0032, 0x0038 },
- ["unicodeslot"]=0x3258, -- ㉘
+ category="no",
+ cjkwd="w",
+ description="CIRCLED NUMBER TWENTY EIGHT",
+ direction="on",
+ linebreak="id",
+ specials={ "circle", 0x0032, 0x0038 },
+ unicodeslot=0x3258,
},
[0x3259]={
- ["category"]="no",
- ["cjkwd"]="w",
- ["description"]="CIRCLED NUMBER TWENTY NINE",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x0032, 0x0039 },
- ["unicodeslot"]=0x3259, -- ㉙
+ category="no",
+ cjkwd="w",
+ description="CIRCLED NUMBER TWENTY NINE",
+ direction="on",
+ linebreak="id",
+ specials={ "circle", 0x0032, 0x0039 },
+ unicodeslot=0x3259,
},
[0x325A]={
- ["category"]="no",
- ["cjkwd"]="w",
- ["description"]="CIRCLED NUMBER THIRTY",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x0033, 0x0030 },
- ["unicodeslot"]=0x325A, -- ㉚
+ category="no",
+ cjkwd="w",
+ description="CIRCLED NUMBER THIRTY",
+ direction="on",
+ linebreak="id",
+ specials={ "circle", 0x0033, 0x0030 },
+ unicodeslot=0x325A,
},
[0x325B]={
- ["category"]="no",
- ["cjkwd"]="w",
- ["description"]="CIRCLED NUMBER THIRTY ONE",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x0033, 0x0031 },
- ["unicodeslot"]=0x325B, -- ㉛
+ category="no",
+ cjkwd="w",
+ description="CIRCLED NUMBER THIRTY ONE",
+ direction="on",
+ linebreak="id",
+ specials={ "circle", 0x0033, 0x0031 },
+ unicodeslot=0x325B,
},
[0x325C]={
- ["category"]="no",
- ["cjkwd"]="w",
- ["description"]="CIRCLED NUMBER THIRTY TWO",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x0033, 0x0032 },
- ["unicodeslot"]=0x325C, -- ㉜
+ category="no",
+ cjkwd="w",
+ description="CIRCLED NUMBER THIRTY TWO",
+ direction="on",
+ linebreak="id",
+ specials={ "circle", 0x0033, 0x0032 },
+ unicodeslot=0x325C,
},
[0x325D]={
- ["category"]="no",
- ["cjkwd"]="w",
- ["description"]="CIRCLED NUMBER THIRTY THREE",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x0033, 0x0033 },
- ["unicodeslot"]=0x325D, -- ㉝
+ category="no",
+ cjkwd="w",
+ description="CIRCLED NUMBER THIRTY THREE",
+ direction="on",
+ linebreak="id",
+ specials={ "circle", 0x0033, 0x0033 },
+ unicodeslot=0x325D,
},
[0x325E]={
- ["category"]="no",
- ["cjkwd"]="w",
- ["description"]="CIRCLED NUMBER THIRTY FOUR",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x0033, 0x0034 },
- ["unicodeslot"]=0x325E, -- ㉞
+ category="no",
+ cjkwd="w",
+ description="CIRCLED NUMBER THIRTY FOUR",
+ direction="on",
+ linebreak="id",
+ specials={ "circle", 0x0033, 0x0034 },
+ unicodeslot=0x325E,
},
[0x325F]={
- ["category"]="no",
- ["cjkwd"]="w",
- ["description"]="CIRCLED NUMBER THIRTY FIVE",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x0033, 0x0035 },
- ["unicodeslot"]=0x325F, -- ㉟
+ category="no",
+ cjkwd="w",
+ description="CIRCLED NUMBER THIRTY FIVE",
+ direction="on",
+ linebreak="id",
+ specials={ "circle", 0x0033, 0x0035 },
+ unicodeslot=0x325F,
},
[0x3260]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED HANGUL KIYEOK",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x1100 },
- ["unicodeslot"]=0x3260, -- ㉠
+ category="so",
+ cjkwd="w",
+ description="CIRCLED HANGUL KIYEOK",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x1100 },
+ unicodeslot=0x3260,
},
[0x3261]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED HANGUL NIEUN",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x1102 },
- ["unicodeslot"]=0x3261, -- ㉡
+ category="so",
+ cjkwd="w",
+ description="CIRCLED HANGUL NIEUN",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x1102 },
+ unicodeslot=0x3261,
},
[0x3262]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED HANGUL TIKEUT",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x1103 },
- ["unicodeslot"]=0x3262, -- ㉢
+ category="so",
+ cjkwd="w",
+ description="CIRCLED HANGUL TIKEUT",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x1103 },
+ unicodeslot=0x3262,
},
[0x3263]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED HANGUL RIEUL",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x1105 },
- ["unicodeslot"]=0x3263, -- ㉣
+ category="so",
+ cjkwd="w",
+ description="CIRCLED HANGUL RIEUL",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x1105 },
+ unicodeslot=0x3263,
},
[0x3264]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED HANGUL MIEUM",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x1106 },
- ["unicodeslot"]=0x3264, -- ㉤
+ category="so",
+ cjkwd="w",
+ description="CIRCLED HANGUL MIEUM",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x1106 },
+ unicodeslot=0x3264,
},
[0x3265]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED HANGUL PIEUP",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x1107 },
- ["unicodeslot"]=0x3265, -- ㉥
+ category="so",
+ cjkwd="w",
+ description="CIRCLED HANGUL PIEUP",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x1107 },
+ unicodeslot=0x3265,
},
[0x3266]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED HANGUL SIOS",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x1109 },
- ["unicodeslot"]=0x3266, -- ㉦
+ category="so",
+ cjkwd="w",
+ description="CIRCLED HANGUL SIOS",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x1109 },
+ unicodeslot=0x3266,
},
[0x3267]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED HANGUL IEUNG",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x110B },
- ["unicodeslot"]=0x3267, -- ㉧
+ category="so",
+ cjkwd="w",
+ description="CIRCLED HANGUL IEUNG",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x110B },
+ unicodeslot=0x3267,
},
[0x3268]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED HANGUL CIEUC",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x110C },
- ["unicodeslot"]=0x3268, -- ㉨
+ category="so",
+ cjkwd="w",
+ description="CIRCLED HANGUL CIEUC",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x110C },
+ unicodeslot=0x3268,
},
[0x3269]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED HANGUL CHIEUCH",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x110E },
- ["unicodeslot"]=0x3269, -- ㉩
+ category="so",
+ cjkwd="w",
+ description="CIRCLED HANGUL CHIEUCH",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x110E },
+ unicodeslot=0x3269,
},
[0x326A]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED HANGUL KHIEUKH",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x110F },
- ["unicodeslot"]=0x326A, -- ㉪
+ category="so",
+ cjkwd="w",
+ description="CIRCLED HANGUL KHIEUKH",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x110F },
+ unicodeslot=0x326A,
},
[0x326B]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED HANGUL THIEUTH",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x1110 },
- ["unicodeslot"]=0x326B, -- ㉫
+ category="so",
+ cjkwd="w",
+ description="CIRCLED HANGUL THIEUTH",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x1110 },
+ unicodeslot=0x326B,
},
[0x326C]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED HANGUL PHIEUPH",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x1111 },
- ["unicodeslot"]=0x326C, -- ㉬
+ category="so",
+ cjkwd="w",
+ description="CIRCLED HANGUL PHIEUPH",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x1111 },
+ unicodeslot=0x326C,
},
[0x326D]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED HANGUL HIEUH",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x1112 },
- ["unicodeslot"]=0x326D, -- ㉭
+ category="so",
+ cjkwd="w",
+ description="CIRCLED HANGUL HIEUH",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x1112 },
+ unicodeslot=0x326D,
},
[0x326E]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED HANGUL KIYEOK A",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x1100, 0x1161 },
- ["unicodeslot"]=0x326E, -- ㉮
+ category="so",
+ cjkwd="w",
+ description="CIRCLED HANGUL KIYEOK A",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x1100, 0x1161 },
+ unicodeslot=0x326E,
},
[0x326F]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED HANGUL NIEUN A",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x1102, 0x1161 },
- ["unicodeslot"]=0x326F, -- ㉯
+ category="so",
+ cjkwd="w",
+ description="CIRCLED HANGUL NIEUN A",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x1102, 0x1161 },
+ unicodeslot=0x326F,
},
[0x3270]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED HANGUL TIKEUT A",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x1103, 0x1161 },
- ["unicodeslot"]=0x3270, -- ㉰
+ category="so",
+ cjkwd="w",
+ description="CIRCLED HANGUL TIKEUT A",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x1103, 0x1161 },
+ unicodeslot=0x3270,
},
[0x3271]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED HANGUL RIEUL A",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x1105, 0x1161 },
- ["unicodeslot"]=0x3271, -- ㉱
+ category="so",
+ cjkwd="w",
+ description="CIRCLED HANGUL RIEUL A",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x1105, 0x1161 },
+ unicodeslot=0x3271,
},
[0x3272]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED HANGUL MIEUM A",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x1106, 0x1161 },
- ["unicodeslot"]=0x3272, -- ㉲
+ category="so",
+ cjkwd="w",
+ description="CIRCLED HANGUL MIEUM A",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x1106, 0x1161 },
+ unicodeslot=0x3272,
},
[0x3273]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED HANGUL PIEUP A",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x1107, 0x1161 },
- ["unicodeslot"]=0x3273, -- ㉳
+ category="so",
+ cjkwd="w",
+ description="CIRCLED HANGUL PIEUP A",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x1107, 0x1161 },
+ unicodeslot=0x3273,
},
[0x3274]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED HANGUL SIOS A",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x1109, 0x1161 },
- ["unicodeslot"]=0x3274, -- ㉴
+ category="so",
+ cjkwd="w",
+ description="CIRCLED HANGUL SIOS A",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x1109, 0x1161 },
+ unicodeslot=0x3274,
},
[0x3275]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED HANGUL IEUNG A",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x110B, 0x1161 },
- ["unicodeslot"]=0x3275, -- ㉵
+ category="so",
+ cjkwd="w",
+ description="CIRCLED HANGUL IEUNG A",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x110B, 0x1161 },
+ unicodeslot=0x3275,
},
[0x3276]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED HANGUL CIEUC A",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x110C, 0x1161 },
- ["unicodeslot"]=0x3276, -- ㉶
+ category="so",
+ cjkwd="w",
+ description="CIRCLED HANGUL CIEUC A",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x110C, 0x1161 },
+ unicodeslot=0x3276,
},
[0x3277]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED HANGUL CHIEUCH A",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x110E, 0x1161 },
- ["unicodeslot"]=0x3277, -- ㉷
+ category="so",
+ cjkwd="w",
+ description="CIRCLED HANGUL CHIEUCH A",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x110E, 0x1161 },
+ unicodeslot=0x3277,
},
[0x3278]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED HANGUL KHIEUKH A",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x110F, 0x1161 },
- ["unicodeslot"]=0x3278, -- ㉸
+ category="so",
+ cjkwd="w",
+ description="CIRCLED HANGUL KHIEUKH A",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x110F, 0x1161 },
+ unicodeslot=0x3278,
},
[0x3279]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED HANGUL THIEUTH A",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x1110, 0x1161 },
- ["unicodeslot"]=0x3279, -- ㉹
+ category="so",
+ cjkwd="w",
+ description="CIRCLED HANGUL THIEUTH A",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x1110, 0x1161 },
+ unicodeslot=0x3279,
},
[0x327A]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED HANGUL PHIEUPH A",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x1111, 0x1161 },
- ["unicodeslot"]=0x327A, -- ㉺
+ category="so",
+ cjkwd="w",
+ description="CIRCLED HANGUL PHIEUPH A",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x1111, 0x1161 },
+ unicodeslot=0x327A,
},
[0x327B]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED HANGUL HIEUH A",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x1112, 0x1161 },
- ["unicodeslot"]=0x327B, -- ㉻
+ category="so",
+ cjkwd="w",
+ description="CIRCLED HANGUL HIEUH A",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x1112, 0x1161 },
+ unicodeslot=0x327B,
},
[0x327C]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED KOREAN CHARACTER CHAMKO",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x110E, 0x1161, 0x11B7, 0x1100, 0x1169 },
- ["unicodeslot"]=0x327C, -- ㉼
+ category="so",
+ cjkwd="w",
+ description="CIRCLED KOREAN CHARACTER CHAMKO",
+ direction="on",
+ linebreak="id",
+ specials={ "circle", 0x110E, 0x1161, 0x11B7, 0x1100, 0x1169 },
+ unicodeslot=0x327C,
},
[0x327D]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED KOREAN CHARACTER JUEUI",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x110C, 0x116E, 0x110B, 0x1174 },
- ["unicodeslot"]=0x327D, -- ㉽
+ category="so",
+ cjkwd="w",
+ description="CIRCLED KOREAN CHARACTER JUEUI",
+ direction="on",
+ linebreak="id",
+ specials={ "circle", 0x110C, 0x116E, 0x110B, 0x1174 },
+ unicodeslot=0x327D,
},
[0x327E]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED HANGUL IEUNG U",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x110B, 0x116E },
- ["unicodeslot"]=0x327E, -- ㉾
+ category="so",
+ cjkwd="w",
+ description="CIRCLED HANGUL IEUNG U",
+ direction="on",
+ linebreak="id",
+ specials={ "circle", 0x110B, 0x116E },
+ unicodeslot=0x327E,
},
[0x327F]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="KOREAN STANDARD SYMBOL",
- ["linebreak"]="id",
- ["unicodeslot"]=0x327F, -- ㉿
+ category="so",
+ cjkwd="w",
+ description="KOREAN STANDARD SYMBOL",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x327F,
},
[0x3280]={
- ["category"]="no",
- ["cjkwd"]="w",
- ["description"]="CIRCLED IDEOGRAPH ONE",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x4E00 },
- ["unicodeslot"]=0x3280, -- ㊀
+ category="no",
+ cjkwd="w",
+ description="CIRCLED IDEOGRAPH ONE",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x4E00 },
+ unicodeslot=0x3280,
},
[0x3281]={
- ["category"]="no",
- ["cjkwd"]="w",
- ["description"]="CIRCLED IDEOGRAPH TWO",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x4E8C },
- ["unicodeslot"]=0x3281, -- ㊁
+ category="no",
+ cjkwd="w",
+ description="CIRCLED IDEOGRAPH TWO",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x4E8C },
+ unicodeslot=0x3281,
},
[0x3282]={
- ["category"]="no",
- ["cjkwd"]="w",
- ["description"]="CIRCLED IDEOGRAPH THREE",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x4E09 },
- ["unicodeslot"]=0x3282, -- ㊂
+ category="no",
+ cjkwd="w",
+ description="CIRCLED IDEOGRAPH THREE",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x4E09 },
+ unicodeslot=0x3282,
},
[0x3283]={
- ["category"]="no",
- ["cjkwd"]="w",
- ["description"]="CIRCLED IDEOGRAPH FOUR",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x56DB },
- ["unicodeslot"]=0x3283, -- ㊃
+ category="no",
+ cjkwd="w",
+ description="CIRCLED IDEOGRAPH FOUR",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x56DB },
+ unicodeslot=0x3283,
},
[0x3284]={
- ["category"]="no",
- ["cjkwd"]="w",
- ["description"]="CIRCLED IDEOGRAPH FIVE",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x4E94 },
- ["unicodeslot"]=0x3284, -- ㊄
+ category="no",
+ cjkwd="w",
+ description="CIRCLED IDEOGRAPH FIVE",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x4E94 },
+ unicodeslot=0x3284,
},
[0x3285]={
- ["category"]="no",
- ["cjkwd"]="w",
- ["description"]="CIRCLED IDEOGRAPH SIX",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x516D },
- ["unicodeslot"]=0x3285, -- ㊅
+ category="no",
+ cjkwd="w",
+ description="CIRCLED IDEOGRAPH SIX",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x516D },
+ unicodeslot=0x3285,
},
[0x3286]={
- ["category"]="no",
- ["cjkwd"]="w",
- ["description"]="CIRCLED IDEOGRAPH SEVEN",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x4E03 },
- ["unicodeslot"]=0x3286, -- ㊆
+ category="no",
+ cjkwd="w",
+ description="CIRCLED IDEOGRAPH SEVEN",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x4E03 },
+ unicodeslot=0x3286,
},
[0x3287]={
- ["category"]="no",
- ["cjkwd"]="w",
- ["description"]="CIRCLED IDEOGRAPH EIGHT",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x516B },
- ["unicodeslot"]=0x3287, -- ㊇
+ category="no",
+ cjkwd="w",
+ description="CIRCLED IDEOGRAPH EIGHT",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x516B },
+ unicodeslot=0x3287,
},
[0x3288]={
- ["category"]="no",
- ["cjkwd"]="w",
- ["description"]="CIRCLED IDEOGRAPH NINE",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x4E5D },
- ["unicodeslot"]=0x3288, -- ㊈
+ category="no",
+ cjkwd="w",
+ description="CIRCLED IDEOGRAPH NINE",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x4E5D },
+ unicodeslot=0x3288,
},
[0x3289]={
- ["category"]="no",
- ["cjkwd"]="w",
- ["description"]="CIRCLED IDEOGRAPH TEN",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x5341 },
- ["unicodeslot"]=0x3289, -- ㊉
+ category="no",
+ cjkwd="w",
+ description="CIRCLED IDEOGRAPH TEN",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x5341 },
+ unicodeslot=0x3289,
},
[0x328A]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED IDEOGRAPH MOON",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x6708 },
- ["unicodeslot"]=0x328A, -- ㊊
+ category="so",
+ cjkwd="w",
+ description="CIRCLED IDEOGRAPH MOON",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x6708 },
+ unicodeslot=0x328A,
},
[0x328B]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED IDEOGRAPH FIRE",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x706B },
- ["unicodeslot"]=0x328B, -- ㊋
+ category="so",
+ cjkwd="w",
+ description="CIRCLED IDEOGRAPH FIRE",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x706B },
+ unicodeslot=0x328B,
},
[0x328C]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED IDEOGRAPH WATER",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x6C34 },
- ["unicodeslot"]=0x328C, -- ㊌
+ category="so",
+ cjkwd="w",
+ description="CIRCLED IDEOGRAPH WATER",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x6C34 },
+ unicodeslot=0x328C,
},
[0x328D]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED IDEOGRAPH WOOD",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x6728 },
- ["unicodeslot"]=0x328D, -- ㊍
+ category="so",
+ cjkwd="w",
+ description="CIRCLED IDEOGRAPH WOOD",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x6728 },
+ unicodeslot=0x328D,
},
[0x328E]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED IDEOGRAPH METAL",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x91D1 },
- ["unicodeslot"]=0x328E, -- ㊎
+ category="so",
+ cjkwd="w",
+ description="CIRCLED IDEOGRAPH METAL",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x91D1 },
+ unicodeslot=0x328E,
},
[0x328F]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED IDEOGRAPH EARTH",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x571F },
- ["unicodeslot"]=0x328F, -- ㊏
+ category="so",
+ cjkwd="w",
+ description="CIRCLED IDEOGRAPH EARTH",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x571F },
+ unicodeslot=0x328F,
},
[0x3290]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED IDEOGRAPH SUN",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x65E5 },
- ["unicodeslot"]=0x3290, -- ㊐
+ category="so",
+ cjkwd="w",
+ description="CIRCLED IDEOGRAPH SUN",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x65E5 },
+ unicodeslot=0x3290,
},
[0x3291]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED IDEOGRAPH STOCK",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x682A },
- ["unicodeslot"]=0x3291, -- ㊑
+ category="so",
+ cjkwd="w",
+ description="CIRCLED IDEOGRAPH STOCK",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x682A },
+ unicodeslot=0x3291,
},
[0x3292]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED IDEOGRAPH HAVE",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x6709 },
- ["unicodeslot"]=0x3292, -- ㊒
+ category="so",
+ cjkwd="w",
+ description="CIRCLED IDEOGRAPH HAVE",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x6709 },
+ unicodeslot=0x3292,
},
[0x3293]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED IDEOGRAPH SOCIETY",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x793E },
- ["unicodeslot"]=0x3293, -- ㊓
+ category="so",
+ cjkwd="w",
+ description="CIRCLED IDEOGRAPH SOCIETY",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x793E },
+ unicodeslot=0x3293,
},
[0x3294]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED IDEOGRAPH NAME",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x540D },
- ["unicodeslot"]=0x3294, -- ㊔
+ category="so",
+ cjkwd="w",
+ description="CIRCLED IDEOGRAPH NAME",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x540D },
+ unicodeslot=0x3294,
},
[0x3295]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED IDEOGRAPH SPECIAL",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x7279 },
- ["unicodeslot"]=0x3295, -- ㊕
+ category="so",
+ cjkwd="w",
+ description="CIRCLED IDEOGRAPH SPECIAL",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x7279 },
+ unicodeslot=0x3295,
},
[0x3296]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED IDEOGRAPH FINANCIAL",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x8CA1 },
- ["unicodeslot"]=0x3296, -- ㊖
+ category="so",
+ cjkwd="w",
+ description="CIRCLED IDEOGRAPH FINANCIAL",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x8CA1 },
+ unicodeslot=0x3296,
},
[0x3297]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED IDEOGRAPH CONGRATULATION",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x795D },
- ["unicodeslot"]=0x3297, -- ㊗
+ category="so",
+ cjkwd="w",
+ description="CIRCLED IDEOGRAPH CONGRATULATION",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x795D },
+ unicodeslot=0x3297,
},
[0x3298]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED IDEOGRAPH LABOR",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x52B4 },
- ["unicodeslot"]=0x3298, -- ㊘
+ category="so",
+ cjkwd="w",
+ description="CIRCLED IDEOGRAPH LABOR",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x52B4 },
+ unicodeslot=0x3298,
},
[0x3299]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED IDEOGRAPH SECRET",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x79D8 },
- ["unicodeslot"]=0x3299, -- ㊙
+ category="so",
+ cjkwd="w",
+ description="CIRCLED IDEOGRAPH SECRET",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x79D8 },
+ unicodeslot=0x3299,
},
[0x329A]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED IDEOGRAPH MALE",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x7537 },
- ["unicodeslot"]=0x329A, -- ㊚
+ category="so",
+ cjkwd="w",
+ description="CIRCLED IDEOGRAPH MALE",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x7537 },
+ unicodeslot=0x329A,
},
[0x329B]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED IDEOGRAPH FEMALE",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x5973 },
- ["unicodeslot"]=0x329B, -- ㊛
+ category="so",
+ cjkwd="w",
+ description="CIRCLED IDEOGRAPH FEMALE",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x5973 },
+ unicodeslot=0x329B,
},
[0x329C]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED IDEOGRAPH SUITABLE",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x9069 },
- ["unicodeslot"]=0x329C, -- ㊜
+ category="so",
+ cjkwd="w",
+ description="CIRCLED IDEOGRAPH SUITABLE",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x9069 },
+ unicodeslot=0x329C,
},
[0x329D]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED IDEOGRAPH EXCELLENT",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x512A },
- ["unicodeslot"]=0x329D, -- ㊝
+ category="so",
+ cjkwd="w",
+ description="CIRCLED IDEOGRAPH EXCELLENT",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x512A },
+ unicodeslot=0x329D,
},
[0x329E]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED IDEOGRAPH PRINT",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x5370 },
- ["unicodeslot"]=0x329E, -- ㊞
+ category="so",
+ cjkwd="w",
+ description="CIRCLED IDEOGRAPH PRINT",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x5370 },
+ unicodeslot=0x329E,
},
[0x329F]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED IDEOGRAPH ATTENTION",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x6CE8 },
- ["unicodeslot"]=0x329F, -- ㊟
+ category="so",
+ cjkwd="w",
+ description="CIRCLED IDEOGRAPH ATTENTION",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x6CE8 },
+ unicodeslot=0x329F,
},
[0x32A0]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED IDEOGRAPH ITEM",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x9805 },
- ["unicodeslot"]=0x32A0, -- ㊠
+ category="so",
+ cjkwd="w",
+ description="CIRCLED IDEOGRAPH ITEM",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x9805 },
+ unicodeslot=0x32A0,
},
[0x32A1]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED IDEOGRAPH REST",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x4F11 },
- ["unicodeslot"]=0x32A1, -- ㊡
+ category="so",
+ cjkwd="w",
+ description="CIRCLED IDEOGRAPH REST",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x4F11 },
+ unicodeslot=0x32A1,
},
[0x32A2]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED IDEOGRAPH COPY",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x5199 },
- ["unicodeslot"]=0x32A2, -- ㊢
+ category="so",
+ cjkwd="w",
+ description="CIRCLED IDEOGRAPH COPY",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x5199 },
+ unicodeslot=0x32A2,
},
[0x32A3]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED IDEOGRAPH CORRECT",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x6B63 },
- ["unicodeslot"]=0x32A3, -- ㊣
+ category="so",
+ cjkwd="w",
+ description="CIRCLED IDEOGRAPH CORRECT",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x6B63 },
+ unicodeslot=0x32A3,
},
[0x32A4]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED IDEOGRAPH HIGH",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x4E0A },
- ["unicodeslot"]=0x32A4, -- ㊤
+ category="so",
+ cjkwd="w",
+ description="CIRCLED IDEOGRAPH HIGH",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x4E0A },
+ unicodeslot=0x32A4,
},
[0x32A5]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED IDEOGRAPH CENTRE",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x4E2D },
- ["unicodeslot"]=0x32A5, -- ㊥
+ category="so",
+ cjkwd="w",
+ description="CIRCLED IDEOGRAPH CENTRE",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x4E2D },
+ unicodeslot=0x32A5,
},
[0x32A6]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED IDEOGRAPH LOW",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x4E0B },
- ["unicodeslot"]=0x32A6, -- ㊦
+ category="so",
+ cjkwd="w",
+ description="CIRCLED IDEOGRAPH LOW",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x4E0B },
+ unicodeslot=0x32A6,
},
[0x32A7]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED IDEOGRAPH LEFT",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x5DE6 },
- ["unicodeslot"]=0x32A7, -- ㊧
+ category="so",
+ cjkwd="w",
+ description="CIRCLED IDEOGRAPH LEFT",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x5DE6 },
+ unicodeslot=0x32A7,
},
[0x32A8]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED IDEOGRAPH RIGHT",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x53F3 },
- ["unicodeslot"]=0x32A8, -- ㊨
+ category="so",
+ cjkwd="w",
+ description="CIRCLED IDEOGRAPH RIGHT",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x53F3 },
+ unicodeslot=0x32A8,
},
[0x32A9]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED IDEOGRAPH MEDICINE",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x533B },
- ["unicodeslot"]=0x32A9, -- ㊩
+ category="so",
+ cjkwd="w",
+ description="CIRCLED IDEOGRAPH MEDICINE",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x533B },
+ unicodeslot=0x32A9,
},
[0x32AA]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED IDEOGRAPH RELIGION",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x5B97 },
- ["unicodeslot"]=0x32AA, -- ㊪
+ category="so",
+ cjkwd="w",
+ description="CIRCLED IDEOGRAPH RELIGION",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x5B97 },
+ unicodeslot=0x32AA,
},
[0x32AB]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED IDEOGRAPH STUDY",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x5B66 },
- ["unicodeslot"]=0x32AB, -- ㊫
+ category="so",
+ cjkwd="w",
+ description="CIRCLED IDEOGRAPH STUDY",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x5B66 },
+ unicodeslot=0x32AB,
},
[0x32AC]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED IDEOGRAPH SUPERVISE",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x76E3 },
- ["unicodeslot"]=0x32AC, -- ㊬
+ category="so",
+ cjkwd="w",
+ description="CIRCLED IDEOGRAPH SUPERVISE",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x76E3 },
+ unicodeslot=0x32AC,
},
[0x32AD]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED IDEOGRAPH ENTERPRISE",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x4F01 },
- ["unicodeslot"]=0x32AD, -- ㊭
+ category="so",
+ cjkwd="w",
+ description="CIRCLED IDEOGRAPH ENTERPRISE",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x4F01 },
+ unicodeslot=0x32AD,
},
[0x32AE]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED IDEOGRAPH RESOURCE",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x8CC7 },
- ["unicodeslot"]=0x32AE, -- ㊮
+ category="so",
+ cjkwd="w",
+ description="CIRCLED IDEOGRAPH RESOURCE",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x8CC7 },
+ unicodeslot=0x32AE,
},
[0x32AF]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED IDEOGRAPH ALLIANCE",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x5354 },
- ["unicodeslot"]=0x32AF, -- ㊯
+ category="so",
+ cjkwd="w",
+ description="CIRCLED IDEOGRAPH ALLIANCE",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x5354 },
+ unicodeslot=0x32AF,
},
[0x32B0]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED IDEOGRAPH NIGHT",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x591C },
- ["unicodeslot"]=0x32B0, -- ㊰
+ category="so",
+ cjkwd="w",
+ description="CIRCLED IDEOGRAPH NIGHT",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x591C },
+ unicodeslot=0x32B0,
},
[0x32B1]={
- ["category"]="no",
- ["cjkwd"]="w",
- ["description"]="CIRCLED NUMBER THIRTY SIX",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x0033, 0x0036 },
- ["unicodeslot"]=0x32B1, -- ㊱
+ category="no",
+ cjkwd="w",
+ description="CIRCLED NUMBER THIRTY SIX",
+ direction="on",
+ linebreak="id",
+ specials={ "circle", 0x0033, 0x0036 },
+ unicodeslot=0x32B1,
},
[0x32B2]={
- ["category"]="no",
- ["cjkwd"]="w",
- ["description"]="CIRCLED NUMBER THIRTY SEVEN",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x0033, 0x0037 },
- ["unicodeslot"]=0x32B2, -- ㊲
+ category="no",
+ cjkwd="w",
+ description="CIRCLED NUMBER THIRTY SEVEN",
+ direction="on",
+ linebreak="id",
+ specials={ "circle", 0x0033, 0x0037 },
+ unicodeslot=0x32B2,
},
[0x32B3]={
- ["category"]="no",
- ["cjkwd"]="w",
- ["description"]="CIRCLED NUMBER THIRTY EIGHT",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x0033, 0x0038 },
- ["unicodeslot"]=0x32B3, -- ㊳
+ category="no",
+ cjkwd="w",
+ description="CIRCLED NUMBER THIRTY EIGHT",
+ direction="on",
+ linebreak="id",
+ specials={ "circle", 0x0033, 0x0038 },
+ unicodeslot=0x32B3,
},
[0x32B4]={
- ["category"]="no",
- ["cjkwd"]="w",
- ["description"]="CIRCLED NUMBER THIRTY NINE",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x0033, 0x0039 },
- ["unicodeslot"]=0x32B4, -- ㊴
+ category="no",
+ cjkwd="w",
+ description="CIRCLED NUMBER THIRTY NINE",
+ direction="on",
+ linebreak="id",
+ specials={ "circle", 0x0033, 0x0039 },
+ unicodeslot=0x32B4,
},
[0x32B5]={
- ["category"]="no",
- ["cjkwd"]="w",
- ["description"]="CIRCLED NUMBER FORTY",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x0034, 0x0030 },
- ["unicodeslot"]=0x32B5, -- ㊵
+ category="no",
+ cjkwd="w",
+ description="CIRCLED NUMBER FORTY",
+ direction="on",
+ linebreak="id",
+ specials={ "circle", 0x0034, 0x0030 },
+ unicodeslot=0x32B5,
},
[0x32B6]={
- ["category"]="no",
- ["cjkwd"]="w",
- ["description"]="CIRCLED NUMBER FORTY ONE",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x0034, 0x0031 },
- ["unicodeslot"]=0x32B6, -- ㊶
+ category="no",
+ cjkwd="w",
+ description="CIRCLED NUMBER FORTY ONE",
+ direction="on",
+ linebreak="id",
+ specials={ "circle", 0x0034, 0x0031 },
+ unicodeslot=0x32B6,
},
[0x32B7]={
- ["category"]="no",
- ["cjkwd"]="w",
- ["description"]="CIRCLED NUMBER FORTY TWO",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x0034, 0x0032 },
- ["unicodeslot"]=0x32B7, -- ㊷
+ category="no",
+ cjkwd="w",
+ description="CIRCLED NUMBER FORTY TWO",
+ direction="on",
+ linebreak="id",
+ specials={ "circle", 0x0034, 0x0032 },
+ unicodeslot=0x32B7,
},
[0x32B8]={
- ["category"]="no",
- ["cjkwd"]="w",
- ["description"]="CIRCLED NUMBER FORTY THREE",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x0034, 0x0033 },
- ["unicodeslot"]=0x32B8, -- ㊸
+ category="no",
+ cjkwd="w",
+ description="CIRCLED NUMBER FORTY THREE",
+ direction="on",
+ linebreak="id",
+ specials={ "circle", 0x0034, 0x0033 },
+ unicodeslot=0x32B8,
},
[0x32B9]={
- ["category"]="no",
- ["cjkwd"]="w",
- ["description"]="CIRCLED NUMBER FORTY FOUR",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x0034, 0x0034 },
- ["unicodeslot"]=0x32B9, -- ㊹
+ category="no",
+ cjkwd="w",
+ description="CIRCLED NUMBER FORTY FOUR",
+ direction="on",
+ linebreak="id",
+ specials={ "circle", 0x0034, 0x0034 },
+ unicodeslot=0x32B9,
},
[0x32BA]={
- ["category"]="no",
- ["cjkwd"]="w",
- ["description"]="CIRCLED NUMBER FORTY FIVE",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x0034, 0x0035 },
- ["unicodeslot"]=0x32BA, -- ㊺
+ category="no",
+ cjkwd="w",
+ description="CIRCLED NUMBER FORTY FIVE",
+ direction="on",
+ linebreak="id",
+ specials={ "circle", 0x0034, 0x0035 },
+ unicodeslot=0x32BA,
},
[0x32BB]={
- ["category"]="no",
- ["cjkwd"]="w",
- ["description"]="CIRCLED NUMBER FORTY SIX",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x0034, 0x0036 },
- ["unicodeslot"]=0x32BB, -- ㊻
+ category="no",
+ cjkwd="w",
+ description="CIRCLED NUMBER FORTY SIX",
+ direction="on",
+ linebreak="id",
+ specials={ "circle", 0x0034, 0x0036 },
+ unicodeslot=0x32BB,
},
[0x32BC]={
- ["category"]="no",
- ["cjkwd"]="w",
- ["description"]="CIRCLED NUMBER FORTY SEVEN",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x0034, 0x0037 },
- ["unicodeslot"]=0x32BC, -- ㊼
+ category="no",
+ cjkwd="w",
+ description="CIRCLED NUMBER FORTY SEVEN",
+ direction="on",
+ linebreak="id",
+ specials={ "circle", 0x0034, 0x0037 },
+ unicodeslot=0x32BC,
},
[0x32BD]={
- ["category"]="no",
- ["cjkwd"]="w",
- ["description"]="CIRCLED NUMBER FORTY EIGHT",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x0034, 0x0038 },
- ["unicodeslot"]=0x32BD, -- ㊽
+ category="no",
+ cjkwd="w",
+ description="CIRCLED NUMBER FORTY EIGHT",
+ direction="on",
+ linebreak="id",
+ specials={ "circle", 0x0034, 0x0038 },
+ unicodeslot=0x32BD,
},
[0x32BE]={
- ["category"]="no",
- ["cjkwd"]="w",
- ["description"]="CIRCLED NUMBER FORTY NINE",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x0034, 0x0039 },
- ["unicodeslot"]=0x32BE, -- ㊾
+ category="no",
+ cjkwd="w",
+ description="CIRCLED NUMBER FORTY NINE",
+ direction="on",
+ linebreak="id",
+ specials={ "circle", 0x0034, 0x0039 },
+ unicodeslot=0x32BE,
},
[0x32BF]={
- ["category"]="no",
- ["cjkwd"]="w",
- ["description"]="CIRCLED NUMBER FIFTY",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x0035, 0x0030 },
- ["unicodeslot"]=0x32BF, -- ㊿
+ category="no",
+ cjkwd="w",
+ description="CIRCLED NUMBER FIFTY",
+ direction="on",
+ linebreak="id",
+ specials={ "circle", 0x0035, 0x0030 },
+ unicodeslot=0x32BF,
},
[0x32C0]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0031, 0x6708 },
- ["unicodeslot"]=0x32C0, -- ㋀
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0031, 0x6708 },
+ unicodeslot=0x32C0,
},
[0x32C1]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR FEBRUARY",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0032, 0x6708 },
- ["unicodeslot"]=0x32C1, -- ㋁
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR FEBRUARY",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0032, 0x6708 },
+ unicodeslot=0x32C1,
},
[0x32C2]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR MARCH",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0033, 0x6708 },
- ["unicodeslot"]=0x32C2, -- ㋂
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR MARCH",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0033, 0x6708 },
+ unicodeslot=0x32C2,
},
[0x32C3]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR APRIL",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0034, 0x6708 },
- ["unicodeslot"]=0x32C3, -- ㋃
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR APRIL",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0034, 0x6708 },
+ unicodeslot=0x32C3,
},
[0x32C4]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR MAY",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0035, 0x6708 },
- ["unicodeslot"]=0x32C4, -- ㋄
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR MAY",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0035, 0x6708 },
+ unicodeslot=0x32C4,
},
[0x32C5]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR JUNE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0036, 0x6708 },
- ["unicodeslot"]=0x32C5, -- ㋅
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR JUNE",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0036, 0x6708 },
+ unicodeslot=0x32C5,
},
[0x32C6]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR JULY",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0037, 0x6708 },
- ["unicodeslot"]=0x32C6, -- ㋆
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR JULY",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0037, 0x6708 },
+ unicodeslot=0x32C6,
},
[0x32C7]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR AUGUST",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0038, 0x6708 },
- ["unicodeslot"]=0x32C7, -- ㋇
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR AUGUST",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0038, 0x6708 },
+ unicodeslot=0x32C7,
},
[0x32C8]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR SEPTEMBER",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0039, 0x6708 },
- ["unicodeslot"]=0x32C8, -- ㋈
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR SEPTEMBER",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0039, 0x6708 },
+ unicodeslot=0x32C8,
},
[0x32C9]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR OCTOBER",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0031, 0x0030, 0x6708 },
- ["unicodeslot"]=0x32C9, -- ㋉
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR OCTOBER",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0031, 0x0030, 0x6708 },
+ unicodeslot=0x32C9,
},
[0x32CA]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR NOVEMBER",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0031, 0x0031, 0x6708 },
- ["unicodeslot"]=0x32CA, -- ㋊
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR NOVEMBER",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0031, 0x0031, 0x6708 },
+ unicodeslot=0x32CA,
},
[0x32CB]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0031, 0x0032, 0x6708 },
- ["unicodeslot"]=0x32CB, -- ㋋
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0031, 0x0032, 0x6708 },
+ unicodeslot=0x32CB,
},
[0x32CC]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE HG",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x0048, 0x0067 },
- ["unicodeslot"]=0x32CC, -- ㋌
+ category="so",
+ cjkwd="w",
+ description="SQUARE HG",
+ direction="on",
+ linebreak="id",
+ specials={ "square", 0x0048, 0x0067 },
+ unicodeslot=0x32CC,
},
[0x32CD]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE ERG",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x0065, 0x0072, 0x0067 },
- ["unicodeslot"]=0x32CD, -- ㋍
+ category="so",
+ cjkwd="w",
+ description="SQUARE ERG",
+ direction="on",
+ linebreak="id",
+ specials={ "square", 0x0065, 0x0072, 0x0067 },
+ unicodeslot=0x32CD,
},
[0x32CE]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE EV",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x0065, 0x0056 },
- ["unicodeslot"]=0x32CE, -- ㋎
+ category="so",
+ cjkwd="w",
+ description="SQUARE EV",
+ direction="on",
+ linebreak="id",
+ specials={ "square", 0x0065, 0x0056 },
+ unicodeslot=0x32CE,
},
[0x32CF]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="LIMITED LIABILITY SIGN",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x004C, 0x0054, 0x0044 },
- ["unicodeslot"]=0x32CF, -- ㋏
+ category="so",
+ cjkwd="w",
+ description="LIMITED LIABILITY SIGN",
+ direction="on",
+ linebreak="id",
+ specials={ "square", 0x004C, 0x0054, 0x0044 },
+ unicodeslot=0x32CF,
},
[0x32D0]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED KATAKANA A",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x30A2 },
- ["unicodeslot"]=0x32D0, -- ㋐
+ category="so",
+ cjkwd="w",
+ description="CIRCLED KATAKANA A",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x30A2 },
+ unicodeslot=0x32D0,
},
[0x32D1]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED KATAKANA I",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x30A4 },
- ["unicodeslot"]=0x32D1, -- ㋑
+ category="so",
+ cjkwd="w",
+ description="CIRCLED KATAKANA I",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x30A4 },
+ unicodeslot=0x32D1,
},
[0x32D2]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED KATAKANA U",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x30A6 },
- ["unicodeslot"]=0x32D2, -- ㋒
+ category="so",
+ cjkwd="w",
+ description="CIRCLED KATAKANA U",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x30A6 },
+ unicodeslot=0x32D2,
},
[0x32D3]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED KATAKANA E",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x30A8 },
- ["unicodeslot"]=0x32D3, -- ㋓
+ category="so",
+ cjkwd="w",
+ description="CIRCLED KATAKANA E",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x30A8 },
+ unicodeslot=0x32D3,
},
[0x32D4]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED KATAKANA O",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x30AA },
- ["unicodeslot"]=0x32D4, -- ㋔
+ category="so",
+ cjkwd="w",
+ description="CIRCLED KATAKANA O",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x30AA },
+ unicodeslot=0x32D4,
},
[0x32D5]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED KATAKANA KA",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x30AB },
- ["unicodeslot"]=0x32D5, -- ㋕
+ category="so",
+ cjkwd="w",
+ description="CIRCLED KATAKANA KA",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x30AB },
+ unicodeslot=0x32D5,
},
[0x32D6]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED KATAKANA KI",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x30AD },
- ["unicodeslot"]=0x32D6, -- ㋖
+ category="so",
+ cjkwd="w",
+ description="CIRCLED KATAKANA KI",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x30AD },
+ unicodeslot=0x32D6,
},
[0x32D7]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED KATAKANA KU",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x30AF },
- ["unicodeslot"]=0x32D7, -- ㋗
+ category="so",
+ cjkwd="w",
+ description="CIRCLED KATAKANA KU",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x30AF },
+ unicodeslot=0x32D7,
},
[0x32D8]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED KATAKANA KE",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x30B1 },
- ["unicodeslot"]=0x32D8, -- ㋘
+ category="so",
+ cjkwd="w",
+ description="CIRCLED KATAKANA KE",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x30B1 },
+ unicodeslot=0x32D8,
},
[0x32D9]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED KATAKANA KO",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x30B3 },
- ["unicodeslot"]=0x32D9, -- ㋙
+ category="so",
+ cjkwd="w",
+ description="CIRCLED KATAKANA KO",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x30B3 },
+ unicodeslot=0x32D9,
},
[0x32DA]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED KATAKANA SA",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x30B5 },
- ["unicodeslot"]=0x32DA, -- ㋚
+ category="so",
+ cjkwd="w",
+ description="CIRCLED KATAKANA SA",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x30B5 },
+ unicodeslot=0x32DA,
},
[0x32DB]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED KATAKANA SI",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x30B7 },
- ["unicodeslot"]=0x32DB, -- ㋛
+ category="so",
+ cjkwd="w",
+ description="CIRCLED KATAKANA SI",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x30B7 },
+ unicodeslot=0x32DB,
},
[0x32DC]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED KATAKANA SU",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x30B9 },
- ["unicodeslot"]=0x32DC, -- ㋜
+ category="so",
+ cjkwd="w",
+ description="CIRCLED KATAKANA SU",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x30B9 },
+ unicodeslot=0x32DC,
},
[0x32DD]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED KATAKANA SE",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x30BB },
- ["unicodeslot"]=0x32DD, -- ㋝
+ category="so",
+ cjkwd="w",
+ description="CIRCLED KATAKANA SE",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x30BB },
+ unicodeslot=0x32DD,
},
[0x32DE]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED KATAKANA SO",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x30BD },
- ["unicodeslot"]=0x32DE, -- ㋞
+ category="so",
+ cjkwd="w",
+ description="CIRCLED KATAKANA SO",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x30BD },
+ unicodeslot=0x32DE,
},
[0x32DF]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED KATAKANA TA",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x30BF },
- ["unicodeslot"]=0x32DF, -- ㋟
+ category="so",
+ cjkwd="w",
+ description="CIRCLED KATAKANA TA",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x30BF },
+ unicodeslot=0x32DF,
},
[0x32E0]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED KATAKANA TI",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x30C1 },
- ["unicodeslot"]=0x32E0, -- ㋠
+ category="so",
+ cjkwd="w",
+ description="CIRCLED KATAKANA TI",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x30C1 },
+ unicodeslot=0x32E0,
},
[0x32E1]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED KATAKANA TU",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x30C4 },
- ["unicodeslot"]=0x32E1, -- ㋡
+ category="so",
+ cjkwd="w",
+ description="CIRCLED KATAKANA TU",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x30C4 },
+ unicodeslot=0x32E1,
},
[0x32E2]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED KATAKANA TE",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x30C6 },
- ["unicodeslot"]=0x32E2, -- ㋢
+ category="so",
+ cjkwd="w",
+ description="CIRCLED KATAKANA TE",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x30C6 },
+ unicodeslot=0x32E2,
},
[0x32E3]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED KATAKANA TO",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x30C8 },
- ["unicodeslot"]=0x32E3, -- ㋣
+ category="so",
+ cjkwd="w",
+ description="CIRCLED KATAKANA TO",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x30C8 },
+ unicodeslot=0x32E3,
},
[0x32E4]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED KATAKANA NA",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x30CA },
- ["unicodeslot"]=0x32E4, -- ㋤
+ category="so",
+ cjkwd="w",
+ description="CIRCLED KATAKANA NA",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x30CA },
+ unicodeslot=0x32E4,
},
[0x32E5]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED KATAKANA NI",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x30CB },
- ["unicodeslot"]=0x32E5, -- ㋥
+ category="so",
+ cjkwd="w",
+ description="CIRCLED KATAKANA NI",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x30CB },
+ unicodeslot=0x32E5,
},
[0x32E6]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED KATAKANA NU",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x30CC },
- ["unicodeslot"]=0x32E6, -- ㋦
+ category="so",
+ cjkwd="w",
+ description="CIRCLED KATAKANA NU",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x30CC },
+ unicodeslot=0x32E6,
},
[0x32E7]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED KATAKANA NE",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x30CD },
- ["unicodeslot"]=0x32E7, -- ㋧
+ category="so",
+ cjkwd="w",
+ description="CIRCLED KATAKANA NE",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x30CD },
+ unicodeslot=0x32E7,
},
[0x32E8]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED KATAKANA NO",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x30CE },
- ["unicodeslot"]=0x32E8, -- ㋨
+ category="so",
+ cjkwd="w",
+ description="CIRCLED KATAKANA NO",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x30CE },
+ unicodeslot=0x32E8,
},
[0x32E9]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED KATAKANA HA",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x30CF },
- ["unicodeslot"]=0x32E9, -- ㋩
+ category="so",
+ cjkwd="w",
+ description="CIRCLED KATAKANA HA",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x30CF },
+ unicodeslot=0x32E9,
},
[0x32EA]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED KATAKANA HI",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x30D2 },
- ["unicodeslot"]=0x32EA, -- ㋪
+ category="so",
+ cjkwd="w",
+ description="CIRCLED KATAKANA HI",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x30D2 },
+ unicodeslot=0x32EA,
},
[0x32EB]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED KATAKANA HU",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x30D5 },
- ["unicodeslot"]=0x32EB, -- ㋫
+ category="so",
+ cjkwd="w",
+ description="CIRCLED KATAKANA HU",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x30D5 },
+ unicodeslot=0x32EB,
},
[0x32EC]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED KATAKANA HE",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x30D8 },
- ["unicodeslot"]=0x32EC, -- ㋬
+ category="so",
+ cjkwd="w",
+ description="CIRCLED KATAKANA HE",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x30D8 },
+ unicodeslot=0x32EC,
},
[0x32ED]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED KATAKANA HO",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x30DB },
- ["unicodeslot"]=0x32ED, -- ㋭
+ category="so",
+ cjkwd="w",
+ description="CIRCLED KATAKANA HO",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x30DB },
+ unicodeslot=0x32ED,
},
[0x32EE]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED KATAKANA MA",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x30DE },
- ["unicodeslot"]=0x32EE, -- ㋮
+ category="so",
+ cjkwd="w",
+ description="CIRCLED KATAKANA MA",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x30DE },
+ unicodeslot=0x32EE,
},
[0x32EF]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED KATAKANA MI",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x30DF },
- ["unicodeslot"]=0x32EF, -- ㋯
+ category="so",
+ cjkwd="w",
+ description="CIRCLED KATAKANA MI",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x30DF },
+ unicodeslot=0x32EF,
},
[0x32F0]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED KATAKANA MU",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x30E0 },
- ["unicodeslot"]=0x32F0, -- ㋰
+ category="so",
+ cjkwd="w",
+ description="CIRCLED KATAKANA MU",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x30E0 },
+ unicodeslot=0x32F0,
},
[0x32F1]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED KATAKANA ME",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x30E1 },
- ["unicodeslot"]=0x32F1, -- ㋱
+ category="so",
+ cjkwd="w",
+ description="CIRCLED KATAKANA ME",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x30E1 },
+ unicodeslot=0x32F1,
},
[0x32F2]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED KATAKANA MO",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x30E2 },
- ["unicodeslot"]=0x32F2, -- ㋲
+ category="so",
+ cjkwd="w",
+ description="CIRCLED KATAKANA MO",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x30E2 },
+ unicodeslot=0x32F2,
},
[0x32F3]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED KATAKANA YA",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x30E4 },
- ["unicodeslot"]=0x32F3, -- ㋳
+ category="so",
+ cjkwd="w",
+ description="CIRCLED KATAKANA YA",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x30E4 },
+ unicodeslot=0x32F3,
},
[0x32F4]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED KATAKANA YU",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x30E6 },
- ["unicodeslot"]=0x32F4, -- ㋴
+ category="so",
+ cjkwd="w",
+ description="CIRCLED KATAKANA YU",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x30E6 },
+ unicodeslot=0x32F4,
},
[0x32F5]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED KATAKANA YO",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x30E8 },
- ["unicodeslot"]=0x32F5, -- ㋵
+ category="so",
+ cjkwd="w",
+ description="CIRCLED KATAKANA YO",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x30E8 },
+ unicodeslot=0x32F5,
},
[0x32F6]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED KATAKANA RA",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x30E9 },
- ["unicodeslot"]=0x32F6, -- ㋶
+ category="so",
+ cjkwd="w",
+ description="CIRCLED KATAKANA RA",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x30E9 },
+ unicodeslot=0x32F6,
},
[0x32F7]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED KATAKANA RI",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x30EA },
- ["unicodeslot"]=0x32F7, -- ㋷
+ category="so",
+ cjkwd="w",
+ description="CIRCLED KATAKANA RI",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x30EA },
+ unicodeslot=0x32F7,
},
[0x32F8]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED KATAKANA RU",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x30EB },
- ["unicodeslot"]=0x32F8, -- ㋸
+ category="so",
+ cjkwd="w",
+ description="CIRCLED KATAKANA RU",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x30EB },
+ unicodeslot=0x32F8,
},
[0x32F9]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED KATAKANA RE",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x30EC },
- ["unicodeslot"]=0x32F9, -- ㋹
+ category="so",
+ cjkwd="w",
+ description="CIRCLED KATAKANA RE",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x30EC },
+ unicodeslot=0x32F9,
},
[0x32FA]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED KATAKANA RO",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x30ED },
- ["unicodeslot"]=0x32FA, -- ㋺
+ category="so",
+ cjkwd="w",
+ description="CIRCLED KATAKANA RO",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x30ED },
+ unicodeslot=0x32FA,
},
[0x32FB]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED KATAKANA WA",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x30EF },
- ["unicodeslot"]=0x32FB, -- ㋻
+ category="so",
+ cjkwd="w",
+ description="CIRCLED KATAKANA WA",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x30EF },
+ unicodeslot=0x32FB,
},
[0x32FC]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED KATAKANA WI",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x30F0 },
- ["unicodeslot"]=0x32FC, -- ㋼
+ category="so",
+ cjkwd="w",
+ description="CIRCLED KATAKANA WI",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x30F0 },
+ unicodeslot=0x32FC,
},
[0x32FD]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED KATAKANA WE",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x30F1 },
- ["unicodeslot"]=0x32FD, -- ㋽
+ category="so",
+ cjkwd="w",
+ description="CIRCLED KATAKANA WE",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x30F1 },
+ unicodeslot=0x32FD,
},
[0x32FE]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="CIRCLED KATAKANA WO",
- ["linebreak"]="id",
- ["specials"]={ "circle", 0x30F2 },
- ["unicodeslot"]=0x32FE, -- ㋾
+ category="so",
+ cjkwd="w",
+ description="CIRCLED KATAKANA WO",
+ direction="l",
+ linebreak="id",
+ specials={ "circle", 0x30F2 },
+ unicodeslot=0x32FE,
},
[0x3300]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE APAATO",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30A2, 0x30D1, 0x30FC, 0x30C8 },
- ["unicodeslot"]=0x3300, -- ㌀
+ category="so",
+ cjkwd="w",
+ description="SQUARE APAATO",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30A2, 0x30D1, 0x30FC, 0x30C8 },
+ unicodeslot=0x3300,
},
[0x3301]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE ARUHUA",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30A2, 0x30EB, 0x30D5, 0x30A1 },
- ["unicodeslot"]=0x3301, -- ㌁
+ category="so",
+ cjkwd="w",
+ description="SQUARE ARUHUA",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30A2, 0x30EB, 0x30D5, 0x30A1 },
+ unicodeslot=0x3301,
},
[0x3302]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE ANPEA",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30A2, 0x30F3, 0x30DA, 0x30A2 },
- ["unicodeslot"]=0x3302, -- ㌂
+ category="so",
+ cjkwd="w",
+ description="SQUARE ANPEA",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30A2, 0x30F3, 0x30DA, 0x30A2 },
+ unicodeslot=0x3302,
},
[0x3303]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE AARU",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30A2, 0x30FC, 0x30EB },
- ["unicodeslot"]=0x3303, -- ㌃
+ category="so",
+ cjkwd="w",
+ description="SQUARE AARU",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30A2, 0x30FC, 0x30EB },
+ unicodeslot=0x3303,
},
[0x3304]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE ININGU",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30A4, 0x30CB, 0x30F3, 0x30B0 },
- ["unicodeslot"]=0x3304, -- ㌄
+ category="so",
+ cjkwd="w",
+ description="SQUARE ININGU",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30A4, 0x30CB, 0x30F3, 0x30B0 },
+ unicodeslot=0x3304,
},
[0x3305]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE INTI",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30A4, 0x30F3, 0x30C1 },
- ["unicodeslot"]=0x3305, -- ㌅
+ category="so",
+ cjkwd="w",
+ description="SQUARE INTI",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30A4, 0x30F3, 0x30C1 },
+ unicodeslot=0x3305,
},
[0x3306]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE UON",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30A6, 0x30A9, 0x30F3 },
- ["unicodeslot"]=0x3306, -- ㌆
+ category="so",
+ cjkwd="w",
+ description="SQUARE UON",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30A6, 0x30A9, 0x30F3 },
+ unicodeslot=0x3306,
},
[0x3307]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE ESUKUUDO",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30A8, 0x30B9, 0x30AF, 0x30FC, 0x30C9 },
- ["unicodeslot"]=0x3307, -- ㌇
+ category="so",
+ cjkwd="w",
+ description="SQUARE ESUKUUDO",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30A8, 0x30B9, 0x30AF, 0x30FC, 0x30C9 },
+ unicodeslot=0x3307,
},
[0x3308]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE EEKAA",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30A8, 0x30FC, 0x30AB, 0x30FC },
- ["unicodeslot"]=0x3308, -- ㌈
+ category="so",
+ cjkwd="w",
+ description="SQUARE EEKAA",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30A8, 0x30FC, 0x30AB, 0x30FC },
+ unicodeslot=0x3308,
},
[0x3309]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE ONSU",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30AA, 0x30F3, 0x30B9 },
- ["unicodeslot"]=0x3309, -- ㌉
+ category="so",
+ cjkwd="w",
+ description="SQUARE ONSU",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30AA, 0x30F3, 0x30B9 },
+ unicodeslot=0x3309,
},
[0x330A]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE OOMU",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30AA, 0x30FC, 0x30E0 },
- ["unicodeslot"]=0x330A, -- ㌊
+ category="so",
+ cjkwd="w",
+ description="SQUARE OOMU",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30AA, 0x30FC, 0x30E0 },
+ unicodeslot=0x330A,
},
[0x330B]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE KAIRI",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30AB, 0x30A4, 0x30EA },
- ["unicodeslot"]=0x330B, -- ㌋
+ category="so",
+ cjkwd="w",
+ description="SQUARE KAIRI",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30AB, 0x30A4, 0x30EA },
+ unicodeslot=0x330B,
},
[0x330C]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE KARATTO",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30AB, 0x30E9, 0x30C3, 0x30C8 },
- ["unicodeslot"]=0x330C, -- ㌌
+ category="so",
+ cjkwd="w",
+ description="SQUARE KARATTO",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30AB, 0x30E9, 0x30C3, 0x30C8 },
+ unicodeslot=0x330C,
},
[0x330D]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE KARORII",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30AB, 0x30ED, 0x30EA, 0x30FC },
- ["unicodeslot"]=0x330D, -- ㌍
+ category="so",
+ cjkwd="w",
+ description="SQUARE KARORII",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30AB, 0x30ED, 0x30EA, 0x30FC },
+ unicodeslot=0x330D,
},
[0x330E]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE GARON",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30AC, 0x30ED, 0x30F3 },
- ["unicodeslot"]=0x330E, -- ㌎
+ category="so",
+ cjkwd="w",
+ description="SQUARE GARON",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30AC, 0x30ED, 0x30F3 },
+ unicodeslot=0x330E,
},
[0x330F]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE GANMA",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30AC, 0x30F3, 0x30DE },
- ["unicodeslot"]=0x330F, -- ㌏
+ category="so",
+ cjkwd="w",
+ description="SQUARE GANMA",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30AC, 0x30F3, 0x30DE },
+ unicodeslot=0x330F,
},
[0x3310]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE GIGA",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30AE, 0x30AC },
- ["unicodeslot"]=0x3310, -- ㌐
+ category="so",
+ cjkwd="w",
+ description="SQUARE GIGA",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30AE, 0x30AC },
+ unicodeslot=0x3310,
},
[0x3311]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE GINII",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30AE, 0x30CB, 0x30FC },
- ["unicodeslot"]=0x3311, -- ㌑
+ category="so",
+ cjkwd="w",
+ description="SQUARE GINII",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30AE, 0x30CB, 0x30FC },
+ unicodeslot=0x3311,
},
[0x3312]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE KYURII",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30AD, 0x30E5, 0x30EA, 0x30FC },
- ["unicodeslot"]=0x3312, -- ㌒
+ category="so",
+ cjkwd="w",
+ description="SQUARE KYURII",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30AD, 0x30E5, 0x30EA, 0x30FC },
+ unicodeslot=0x3312,
},
[0x3313]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE GIRUDAA",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30AE, 0x30EB, 0x30C0, 0x30FC },
- ["unicodeslot"]=0x3313, -- ㌓
+ category="so",
+ cjkwd="w",
+ description="SQUARE GIRUDAA",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30AE, 0x30EB, 0x30C0, 0x30FC },
+ unicodeslot=0x3313,
},
[0x3314]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE KIRO",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30AD, 0x30ED },
- ["unicodeslot"]=0x3314, -- ㌔
+ category="so",
+ cjkwd="w",
+ description="SQUARE KIRO",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30AD, 0x30ED },
+ unicodeslot=0x3314,
},
[0x3315]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE KIROGURAMU",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30AD, 0x30ED, 0x30B0, 0x30E9, 0x30E0 },
- ["unicodeslot"]=0x3315, -- ㌕
+ category="so",
+ cjkwd="w",
+ description="SQUARE KIROGURAMU",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30AD, 0x30ED, 0x30B0, 0x30E9, 0x30E0 },
+ unicodeslot=0x3315,
},
[0x3316]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE KIROMEETORU",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30AD, 0x30ED, 0x30E1, 0x30FC, 0x30C8, 0x30EB },
- ["unicodeslot"]=0x3316, -- ㌖
+ category="so",
+ cjkwd="w",
+ description="SQUARE KIROMEETORU",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30AD, 0x30ED, 0x30E1, 0x30FC, 0x30C8, 0x30EB },
+ unicodeslot=0x3316,
},
[0x3317]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE KIROWATTO",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30AD, 0x30ED, 0x30EF, 0x30C3, 0x30C8 },
- ["unicodeslot"]=0x3317, -- ㌗
+ category="so",
+ cjkwd="w",
+ description="SQUARE KIROWATTO",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30AD, 0x30ED, 0x30EF, 0x30C3, 0x30C8 },
+ unicodeslot=0x3317,
},
[0x3318]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE GURAMU",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30B0, 0x30E9, 0x30E0 },
- ["unicodeslot"]=0x3318, -- ㌘
+ category="so",
+ cjkwd="w",
+ description="SQUARE GURAMU",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30B0, 0x30E9, 0x30E0 },
+ unicodeslot=0x3318,
},
[0x3319]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE GURAMUTON",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30B0, 0x30E9, 0x30E0, 0x30C8, 0x30F3 },
- ["unicodeslot"]=0x3319, -- ㌙
+ category="so",
+ cjkwd="w",
+ description="SQUARE GURAMUTON",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30B0, 0x30E9, 0x30E0, 0x30C8, 0x30F3 },
+ unicodeslot=0x3319,
},
[0x331A]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE KURUZEIRO",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30AF, 0x30EB, 0x30BC, 0x30A4, 0x30ED },
- ["unicodeslot"]=0x331A, -- ㌚
+ category="so",
+ cjkwd="w",
+ description="SQUARE KURUZEIRO",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30AF, 0x30EB, 0x30BC, 0x30A4, 0x30ED },
+ unicodeslot=0x331A,
},
[0x331B]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE KUROONE",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30AF, 0x30ED, 0x30FC, 0x30CD },
- ["unicodeslot"]=0x331B, -- ㌛
+ category="so",
+ cjkwd="w",
+ description="SQUARE KUROONE",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30AF, 0x30ED, 0x30FC, 0x30CD },
+ unicodeslot=0x331B,
},
[0x331C]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE KEESU",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30B1, 0x30FC, 0x30B9 },
- ["unicodeslot"]=0x331C, -- ㌜
+ category="so",
+ cjkwd="w",
+ description="SQUARE KEESU",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30B1, 0x30FC, 0x30B9 },
+ unicodeslot=0x331C,
},
[0x331D]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE KORUNA",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30B3, 0x30EB, 0x30CA },
- ["unicodeslot"]=0x331D, -- ㌝
+ category="so",
+ cjkwd="w",
+ description="SQUARE KORUNA",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30B3, 0x30EB, 0x30CA },
+ unicodeslot=0x331D,
},
[0x331E]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE KOOPO",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30B3, 0x30FC, 0x30DD },
- ["unicodeslot"]=0x331E, -- ㌞
+ category="so",
+ cjkwd="w",
+ description="SQUARE KOOPO",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30B3, 0x30FC, 0x30DD },
+ unicodeslot=0x331E,
},
[0x331F]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE SAIKURU",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30B5, 0x30A4, 0x30AF, 0x30EB },
- ["unicodeslot"]=0x331F, -- ㌟
+ category="so",
+ cjkwd="w",
+ description="SQUARE SAIKURU",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30B5, 0x30A4, 0x30AF, 0x30EB },
+ unicodeslot=0x331F,
},
[0x3320]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE SANTIIMU",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30B5, 0x30F3, 0x30C1, 0x30FC, 0x30E0 },
- ["unicodeslot"]=0x3320, -- ㌠
+ category="so",
+ cjkwd="w",
+ description="SQUARE SANTIIMU",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30B5, 0x30F3, 0x30C1, 0x30FC, 0x30E0 },
+ unicodeslot=0x3320,
},
[0x3321]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE SIRINGU",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30B7, 0x30EA, 0x30F3, 0x30B0 },
- ["unicodeslot"]=0x3321, -- ㌡
+ category="so",
+ cjkwd="w",
+ description="SQUARE SIRINGU",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30B7, 0x30EA, 0x30F3, 0x30B0 },
+ unicodeslot=0x3321,
},
[0x3322]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE SENTI",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30BB, 0x30F3, 0x30C1 },
- ["unicodeslot"]=0x3322, -- ㌢
+ category="so",
+ cjkwd="w",
+ description="SQUARE SENTI",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30BB, 0x30F3, 0x30C1 },
+ unicodeslot=0x3322,
},
[0x3323]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE SENTO",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30BB, 0x30F3, 0x30C8 },
- ["unicodeslot"]=0x3323, -- ㌣
+ category="so",
+ cjkwd="w",
+ description="SQUARE SENTO",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30BB, 0x30F3, 0x30C8 },
+ unicodeslot=0x3323,
},
[0x3324]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE DAASU",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30C0, 0x30FC, 0x30B9 },
- ["unicodeslot"]=0x3324, -- ㌤
+ category="so",
+ cjkwd="w",
+ description="SQUARE DAASU",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30C0, 0x30FC, 0x30B9 },
+ unicodeslot=0x3324,
},
[0x3325]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE DESI",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30C7, 0x30B7 },
- ["unicodeslot"]=0x3325, -- ㌥
+ category="so",
+ cjkwd="w",
+ description="SQUARE DESI",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30C7, 0x30B7 },
+ unicodeslot=0x3325,
},
[0x3326]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE DORU",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30C9, 0x30EB },
- ["unicodeslot"]=0x3326, -- ㌦
+ category="so",
+ cjkwd="w",
+ description="SQUARE DORU",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30C9, 0x30EB },
+ unicodeslot=0x3326,
},
[0x3327]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE TON",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30C8, 0x30F3 },
- ["unicodeslot"]=0x3327, -- ㌧
+ category="so",
+ cjkwd="w",
+ description="SQUARE TON",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30C8, 0x30F3 },
+ unicodeslot=0x3327,
},
[0x3328]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE NANO",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30CA, 0x30CE },
- ["unicodeslot"]=0x3328, -- ㌨
+ category="so",
+ cjkwd="w",
+ description="SQUARE NANO",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30CA, 0x30CE },
+ unicodeslot=0x3328,
},
[0x3329]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE NOTTO",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30CE, 0x30C3, 0x30C8 },
- ["unicodeslot"]=0x3329, -- ㌩
+ category="so",
+ cjkwd="w",
+ description="SQUARE NOTTO",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30CE, 0x30C3, 0x30C8 },
+ unicodeslot=0x3329,
},
[0x332A]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE HAITU",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30CF, 0x30A4, 0x30C4 },
- ["unicodeslot"]=0x332A, -- ㌪
+ category="so",
+ cjkwd="w",
+ description="SQUARE HAITU",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30CF, 0x30A4, 0x30C4 },
+ unicodeslot=0x332A,
},
[0x332B]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE PAASENTO",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30D1, 0x30FC, 0x30BB, 0x30F3, 0x30C8 },
- ["unicodeslot"]=0x332B, -- ㌫
+ category="so",
+ cjkwd="w",
+ description="SQUARE PAASENTO",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30D1, 0x30FC, 0x30BB, 0x30F3, 0x30C8 },
+ unicodeslot=0x332B,
},
[0x332C]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE PAATU",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30D1, 0x30FC, 0x30C4 },
- ["unicodeslot"]=0x332C, -- ㌬
+ category="so",
+ cjkwd="w",
+ description="SQUARE PAATU",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30D1, 0x30FC, 0x30C4 },
+ unicodeslot=0x332C,
},
[0x332D]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE BAARERU",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30D0, 0x30FC, 0x30EC, 0x30EB },
- ["unicodeslot"]=0x332D, -- ㌭
+ category="so",
+ cjkwd="w",
+ description="SQUARE BAARERU",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30D0, 0x30FC, 0x30EC, 0x30EB },
+ unicodeslot=0x332D,
},
[0x332E]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE PIASUTORU",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30D4, 0x30A2, 0x30B9, 0x30C8, 0x30EB },
- ["unicodeslot"]=0x332E, -- ㌮
+ category="so",
+ cjkwd="w",
+ description="SQUARE PIASUTORU",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30D4, 0x30A2, 0x30B9, 0x30C8, 0x30EB },
+ unicodeslot=0x332E,
},
[0x332F]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE PIKURU",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30D4, 0x30AF, 0x30EB },
- ["unicodeslot"]=0x332F, -- ㌯
+ category="so",
+ cjkwd="w",
+ description="SQUARE PIKURU",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30D4, 0x30AF, 0x30EB },
+ unicodeslot=0x332F,
},
[0x3330]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE PIKO",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30D4, 0x30B3 },
- ["unicodeslot"]=0x3330, -- ㌰
+ category="so",
+ cjkwd="w",
+ description="SQUARE PIKO",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30D4, 0x30B3 },
+ unicodeslot=0x3330,
},
[0x3331]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE BIRU",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30D3, 0x30EB },
- ["unicodeslot"]=0x3331, -- ㌱
+ category="so",
+ cjkwd="w",
+ description="SQUARE BIRU",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30D3, 0x30EB },
+ unicodeslot=0x3331,
},
[0x3332]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE HUARADDO",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30D5, 0x30A1, 0x30E9, 0x30C3, 0x30C9 },
- ["unicodeslot"]=0x3332, -- ㌲
+ category="so",
+ cjkwd="w",
+ description="SQUARE HUARADDO",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30D5, 0x30A1, 0x30E9, 0x30C3, 0x30C9 },
+ unicodeslot=0x3332,
},
[0x3333]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE HUIITO",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30D5, 0x30A3, 0x30FC, 0x30C8 },
- ["unicodeslot"]=0x3333, -- ㌳
+ category="so",
+ cjkwd="w",
+ description="SQUARE HUIITO",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30D5, 0x30A3, 0x30FC, 0x30C8 },
+ unicodeslot=0x3333,
},
[0x3334]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE BUSSYERU",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30D6, 0x30C3, 0x30B7, 0x30A7, 0x30EB },
- ["unicodeslot"]=0x3334, -- ㌴
+ category="so",
+ cjkwd="w",
+ description="SQUARE BUSSYERU",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30D6, 0x30C3, 0x30B7, 0x30A7, 0x30EB },
+ unicodeslot=0x3334,
},
[0x3335]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE HURAN",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30D5, 0x30E9, 0x30F3 },
- ["unicodeslot"]=0x3335, -- ㌵
+ category="so",
+ cjkwd="w",
+ description="SQUARE HURAN",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30D5, 0x30E9, 0x30F3 },
+ unicodeslot=0x3335,
},
[0x3336]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE HEKUTAARU",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30D8, 0x30AF, 0x30BF, 0x30FC, 0x30EB },
- ["unicodeslot"]=0x3336, -- ㌶
+ category="so",
+ cjkwd="w",
+ description="SQUARE HEKUTAARU",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30D8, 0x30AF, 0x30BF, 0x30FC, 0x30EB },
+ unicodeslot=0x3336,
},
[0x3337]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE PESO",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30DA, 0x30BD },
- ["unicodeslot"]=0x3337, -- ㌷
+ category="so",
+ cjkwd="w",
+ description="SQUARE PESO",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30DA, 0x30BD },
+ unicodeslot=0x3337,
},
[0x3338]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE PENIHI",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30DA, 0x30CB, 0x30D2 },
- ["unicodeslot"]=0x3338, -- ㌸
+ category="so",
+ cjkwd="w",
+ description="SQUARE PENIHI",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30DA, 0x30CB, 0x30D2 },
+ unicodeslot=0x3338,
},
[0x3339]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE HERUTU",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30D8, 0x30EB, 0x30C4 },
- ["unicodeslot"]=0x3339, -- ㌹
+ category="so",
+ cjkwd="w",
+ description="SQUARE HERUTU",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30D8, 0x30EB, 0x30C4 },
+ unicodeslot=0x3339,
},
[0x333A]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE PENSU",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30DA, 0x30F3, 0x30B9 },
- ["unicodeslot"]=0x333A, -- ㌺
+ category="so",
+ cjkwd="w",
+ description="SQUARE PENSU",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30DA, 0x30F3, 0x30B9 },
+ unicodeslot=0x333A,
},
[0x333B]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE PEEZI",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30DA, 0x30FC, 0x30B8 },
- ["unicodeslot"]=0x333B, -- ㌻
+ category="so",
+ cjkwd="w",
+ description="SQUARE PEEZI",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30DA, 0x30FC, 0x30B8 },
+ unicodeslot=0x333B,
},
[0x333C]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE BEETA",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30D9, 0x30FC, 0x30BF },
- ["unicodeslot"]=0x333C, -- ㌼
+ category="so",
+ cjkwd="w",
+ description="SQUARE BEETA",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30D9, 0x30FC, 0x30BF },
+ unicodeslot=0x333C,
},
[0x333D]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE POINTO",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30DD, 0x30A4, 0x30F3, 0x30C8 },
- ["unicodeslot"]=0x333D, -- ㌽
+ category="so",
+ cjkwd="w",
+ description="SQUARE POINTO",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30DD, 0x30A4, 0x30F3, 0x30C8 },
+ unicodeslot=0x333D,
},
[0x333E]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE BORUTO",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30DC, 0x30EB, 0x30C8 },
- ["unicodeslot"]=0x333E, -- ㌾
+ category="so",
+ cjkwd="w",
+ description="SQUARE BORUTO",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30DC, 0x30EB, 0x30C8 },
+ unicodeslot=0x333E,
},
[0x333F]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE HON",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30DB, 0x30F3 },
- ["unicodeslot"]=0x333F, -- ㌿
+ category="so",
+ cjkwd="w",
+ description="SQUARE HON",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30DB, 0x30F3 },
+ unicodeslot=0x333F,
},
[0x3340]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE PONDO",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30DD, 0x30F3, 0x30C9 },
- ["unicodeslot"]=0x3340, -- ㍀
+ category="so",
+ cjkwd="w",
+ description="SQUARE PONDO",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30DD, 0x30F3, 0x30C9 },
+ unicodeslot=0x3340,
},
[0x3341]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE HOORU",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30DB, 0x30FC, 0x30EB },
- ["unicodeslot"]=0x3341, -- ㍁
+ category="so",
+ cjkwd="w",
+ description="SQUARE HOORU",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30DB, 0x30FC, 0x30EB },
+ unicodeslot=0x3341,
},
[0x3342]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE HOON",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30DB, 0x30FC, 0x30F3 },
- ["unicodeslot"]=0x3342, -- ㍂
+ category="so",
+ cjkwd="w",
+ description="SQUARE HOON",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30DB, 0x30FC, 0x30F3 },
+ unicodeslot=0x3342,
},
[0x3343]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE MAIKURO",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30DE, 0x30A4, 0x30AF, 0x30ED },
- ["unicodeslot"]=0x3343, -- ㍃
+ category="so",
+ cjkwd="w",
+ description="SQUARE MAIKURO",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30DE, 0x30A4, 0x30AF, 0x30ED },
+ unicodeslot=0x3343,
},
[0x3344]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE MAIRU",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30DE, 0x30A4, 0x30EB },
- ["unicodeslot"]=0x3344, -- ㍄
+ category="so",
+ cjkwd="w",
+ description="SQUARE MAIRU",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30DE, 0x30A4, 0x30EB },
+ unicodeslot=0x3344,
},
[0x3345]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE MAHHA",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30DE, 0x30C3, 0x30CF },
- ["unicodeslot"]=0x3345, -- ㍅
+ category="so",
+ cjkwd="w",
+ description="SQUARE MAHHA",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30DE, 0x30C3, 0x30CF },
+ unicodeslot=0x3345,
},
[0x3346]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE MARUKU",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30DE, 0x30EB, 0x30AF },
- ["unicodeslot"]=0x3346, -- ㍆
+ category="so",
+ cjkwd="w",
+ description="SQUARE MARUKU",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30DE, 0x30EB, 0x30AF },
+ unicodeslot=0x3346,
},
[0x3347]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE MANSYON",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30DE, 0x30F3, 0x30B7, 0x30E7, 0x30F3 },
- ["unicodeslot"]=0x3347, -- ㍇
+ category="so",
+ cjkwd="w",
+ description="SQUARE MANSYON",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30DE, 0x30F3, 0x30B7, 0x30E7, 0x30F3 },
+ unicodeslot=0x3347,
},
[0x3348]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE MIKURON",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30DF, 0x30AF, 0x30ED, 0x30F3 },
- ["unicodeslot"]=0x3348, -- ㍈
+ category="so",
+ cjkwd="w",
+ description="SQUARE MIKURON",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30DF, 0x30AF, 0x30ED, 0x30F3 },
+ unicodeslot=0x3348,
},
[0x3349]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE MIRI",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30DF, 0x30EA },
- ["unicodeslot"]=0x3349, -- ㍉
+ category="so",
+ cjkwd="w",
+ description="SQUARE MIRI",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30DF, 0x30EA },
+ unicodeslot=0x3349,
},
[0x334A]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE MIRIBAARU",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30DF, 0x30EA, 0x30D0, 0x30FC, 0x30EB },
- ["unicodeslot"]=0x334A, -- ㍊
+ category="so",
+ cjkwd="w",
+ description="SQUARE MIRIBAARU",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30DF, 0x30EA, 0x30D0, 0x30FC, 0x30EB },
+ unicodeslot=0x334A,
},
[0x334B]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE MEGA",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30E1, 0x30AC },
- ["unicodeslot"]=0x334B, -- ㍋
+ category="so",
+ cjkwd="w",
+ description="SQUARE MEGA",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30E1, 0x30AC },
+ unicodeslot=0x334B,
},
[0x334C]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE MEGATON",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30E1, 0x30AC, 0x30C8, 0x30F3 },
- ["unicodeslot"]=0x334C, -- ㍌
+ category="so",
+ cjkwd="w",
+ description="SQUARE MEGATON",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30E1, 0x30AC, 0x30C8, 0x30F3 },
+ unicodeslot=0x334C,
},
[0x334D]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE MEETORU",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30E1, 0x30FC, 0x30C8, 0x30EB },
- ["unicodeslot"]=0x334D, -- ㍍
+ category="so",
+ cjkwd="w",
+ description="SQUARE MEETORU",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30E1, 0x30FC, 0x30C8, 0x30EB },
+ unicodeslot=0x334D,
},
[0x334E]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE YAADO",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30E4, 0x30FC, 0x30C9 },
- ["unicodeslot"]=0x334E, -- ㍎
+ category="so",
+ cjkwd="w",
+ description="SQUARE YAADO",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30E4, 0x30FC, 0x30C9 },
+ unicodeslot=0x334E,
},
[0x334F]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE YAARU",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30E4, 0x30FC, 0x30EB },
- ["unicodeslot"]=0x334F, -- ㍏
+ category="so",
+ cjkwd="w",
+ description="SQUARE YAARU",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30E4, 0x30FC, 0x30EB },
+ unicodeslot=0x334F,
},
[0x3350]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE YUAN",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30E6, 0x30A2, 0x30F3 },
- ["unicodeslot"]=0x3350, -- ㍐
+ category="so",
+ cjkwd="w",
+ description="SQUARE YUAN",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30E6, 0x30A2, 0x30F3 },
+ unicodeslot=0x3350,
},
[0x3351]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE RITTORU",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30EA, 0x30C3, 0x30C8, 0x30EB },
- ["unicodeslot"]=0x3351, -- ㍑
+ category="so",
+ cjkwd="w",
+ description="SQUARE RITTORU",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30EA, 0x30C3, 0x30C8, 0x30EB },
+ unicodeslot=0x3351,
},
[0x3352]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE RIRA",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30EA, 0x30E9 },
- ["unicodeslot"]=0x3352, -- ㍒
+ category="so",
+ cjkwd="w",
+ description="SQUARE RIRA",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30EA, 0x30E9 },
+ unicodeslot=0x3352,
},
[0x3353]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE RUPII",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30EB, 0x30D4, 0x30FC },
- ["unicodeslot"]=0x3353, -- ㍓
+ category="so",
+ cjkwd="w",
+ description="SQUARE RUPII",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30EB, 0x30D4, 0x30FC },
+ unicodeslot=0x3353,
},
[0x3354]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE RUUBURU",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30EB, 0x30FC, 0x30D6, 0x30EB },
- ["unicodeslot"]=0x3354, -- ㍔
+ category="so",
+ cjkwd="w",
+ description="SQUARE RUUBURU",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30EB, 0x30FC, 0x30D6, 0x30EB },
+ unicodeslot=0x3354,
},
[0x3355]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE REMU",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30EC, 0x30E0 },
- ["unicodeslot"]=0x3355, -- ㍕
+ category="so",
+ cjkwd="w",
+ description="SQUARE REMU",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30EC, 0x30E0 },
+ unicodeslot=0x3355,
},
[0x3356]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE RENTOGEN",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30EC, 0x30F3, 0x30C8, 0x30B2, 0x30F3 },
- ["unicodeslot"]=0x3356, -- ㍖
+ category="so",
+ cjkwd="w",
+ description="SQUARE RENTOGEN",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30EC, 0x30F3, 0x30C8, 0x30B2, 0x30F3 },
+ unicodeslot=0x3356,
},
[0x3357]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE WATTO",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x30EF, 0x30C3, 0x30C8 },
- ["unicodeslot"]=0x3357, -- ㍗
+ category="so",
+ cjkwd="w",
+ description="SQUARE WATTO",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x30EF, 0x30C3, 0x30C8 },
+ unicodeslot=0x3357,
},
[0x3358]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0030, 0x70B9 },
- ["unicodeslot"]=0x3358, -- ㍘
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0030, 0x70B9 },
+ unicodeslot=0x3358,
},
[0x3359]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0031, 0x70B9 },
- ["unicodeslot"]=0x3359, -- ㍙
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0031, 0x70B9 },
+ unicodeslot=0x3359,
},
[0x335A]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWO",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0032, 0x70B9 },
- ["unicodeslot"]=0x335A, -- ㍚
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWO",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0032, 0x70B9 },
+ unicodeslot=0x335A,
},
[0x335B]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THREE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0033, 0x70B9 },
- ["unicodeslot"]=0x335B, -- ㍛
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THREE",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0033, 0x70B9 },
+ unicodeslot=0x335B,
},
[0x335C]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOUR",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0034, 0x70B9 },
- ["unicodeslot"]=0x335C, -- ㍜
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOUR",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0034, 0x70B9 },
+ unicodeslot=0x335C,
},
[0x335D]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIVE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0035, 0x70B9 },
- ["unicodeslot"]=0x335D, -- ㍝
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIVE",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0035, 0x70B9 },
+ unicodeslot=0x335D,
},
[0x335E]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIX",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0036, 0x70B9 },
- ["unicodeslot"]=0x335E, -- ㍞
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIX",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0036, 0x70B9 },
+ unicodeslot=0x335E,
},
[0x335F]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVEN",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0037, 0x70B9 },
- ["unicodeslot"]=0x335F, -- ㍟
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVEN",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0037, 0x70B9 },
+ unicodeslot=0x335F,
},
[0x3360]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHT",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0038, 0x70B9 },
- ["unicodeslot"]=0x3360, -- ㍠
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHT",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0038, 0x70B9 },
+ unicodeslot=0x3360,
},
[0x3361]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0039, 0x70B9 },
- ["unicodeslot"]=0x3361, -- ㍡
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINE",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0039, 0x70B9 },
+ unicodeslot=0x3361,
},
[0x3362]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TEN",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0031, 0x0030, 0x70B9 },
- ["unicodeslot"]=0x3362, -- ㍢
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TEN",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0031, 0x0030, 0x70B9 },
+ unicodeslot=0x3362,
},
[0x3363]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ELEVEN",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0031, 0x0031, 0x70B9 },
- ["unicodeslot"]=0x3363, -- ㍣
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ELEVEN",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0031, 0x0031, 0x70B9 },
+ unicodeslot=0x3363,
},
[0x3364]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWELVE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0031, 0x0032, 0x70B9 },
- ["unicodeslot"]=0x3364, -- ㍤
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWELVE",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0031, 0x0032, 0x70B9 },
+ unicodeslot=0x3364,
},
[0x3365]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THIRTEEN",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0031, 0x0033, 0x70B9 },
- ["unicodeslot"]=0x3365, -- ㍥
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THIRTEEN",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0031, 0x0033, 0x70B9 },
+ unicodeslot=0x3365,
},
[0x3366]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOURTEEN",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0031, 0x0034, 0x70B9 },
- ["unicodeslot"]=0x3366, -- ㍦
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOURTEEN",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0031, 0x0034, 0x70B9 },
+ unicodeslot=0x3366,
},
[0x3367]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIFTEEN",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0031, 0x0035, 0x70B9 },
- ["unicodeslot"]=0x3367, -- ㍧
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIFTEEN",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0031, 0x0035, 0x70B9 },
+ unicodeslot=0x3367,
},
[0x3368]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIXTEEN",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0031, 0x0036, 0x70B9 },
- ["unicodeslot"]=0x3368, -- ㍨
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIXTEEN",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0031, 0x0036, 0x70B9 },
+ unicodeslot=0x3368,
},
[0x3369]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVENTEEN",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0031, 0x0037, 0x70B9 },
- ["unicodeslot"]=0x3369, -- ㍩
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVENTEEN",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0031, 0x0037, 0x70B9 },
+ unicodeslot=0x3369,
},
[0x336A]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHTEEN",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0031, 0x0038, 0x70B9 },
- ["unicodeslot"]=0x336A, -- ㍪
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHTEEN",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0031, 0x0038, 0x70B9 },
+ unicodeslot=0x336A,
},
[0x336B]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINETEEN",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0031, 0x0039, 0x70B9 },
- ["unicodeslot"]=0x336B, -- ㍫
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINETEEN",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0031, 0x0039, 0x70B9 },
+ unicodeslot=0x336B,
},
[0x336C]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0032, 0x0030, 0x70B9 },
- ["unicodeslot"]=0x336C, -- ㍬
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0032, 0x0030, 0x70B9 },
+ unicodeslot=0x336C,
},
[0x336D]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-ONE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0032, 0x0031, 0x70B9 },
- ["unicodeslot"]=0x336D, -- ㍭
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-ONE",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0032, 0x0031, 0x70B9 },
+ unicodeslot=0x336D,
},
[0x336E]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-TWO",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0032, 0x0032, 0x70B9 },
- ["unicodeslot"]=0x336E, -- ㍮
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-TWO",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0032, 0x0032, 0x70B9 },
+ unicodeslot=0x336E,
},
[0x336F]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-THREE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0032, 0x0033, 0x70B9 },
- ["unicodeslot"]=0x336F, -- ㍯
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-THREE",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0032, 0x0033, 0x70B9 },
+ unicodeslot=0x336F,
},
[0x3370]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0032, 0x0034, 0x70B9 },
- ["unicodeslot"]=0x3370, -- ㍰
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0032, 0x0034, 0x70B9 },
+ unicodeslot=0x3370,
},
[0x3371]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE HPA",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x0068, 0x0050, 0x0061 },
- ["unicodeslot"]=0x3371, -- ㍱
+ category="so",
+ cjkwd="w",
+ description="SQUARE HPA",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x0068, 0x0050, 0x0061 },
+ unicodeslot=0x3371,
},
[0x3372]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE DA",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x0064, 0x0061 },
- ["unicodeslot"]=0x3372, -- ㍲
+ category="so",
+ cjkwd="w",
+ description="SQUARE DA",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x0064, 0x0061 },
+ unicodeslot=0x3372,
},
[0x3373]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE AU",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x0041, 0x0055 },
- ["unicodeslot"]=0x3373, -- ㍳
+ category="so",
+ cjkwd="w",
+ description="SQUARE AU",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x0041, 0x0055 },
+ unicodeslot=0x3373,
},
[0x3374]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE BAR",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x0062, 0x0061, 0x0072 },
- ["unicodeslot"]=0x3374, -- ㍴
+ category="so",
+ cjkwd="w",
+ description="SQUARE BAR",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x0062, 0x0061, 0x0072 },
+ unicodeslot=0x3374,
},
[0x3375]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE OV",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x006F, 0x0056 },
- ["unicodeslot"]=0x3375, -- ㍵
+ category="so",
+ cjkwd="w",
+ description="SQUARE OV",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x006F, 0x0056 },
+ unicodeslot=0x3375,
},
[0x3376]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE PC",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x0070, 0x0063 },
- ["unicodeslot"]=0x3376, -- ㍶
+ category="so",
+ cjkwd="w",
+ description="SQUARE PC",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x0070, 0x0063 },
+ unicodeslot=0x3376,
},
[0x3377]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE DM",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x0064, 0x006D },
- ["unicodeslot"]=0x3377, -- ㍷
+ category="so",
+ cjkwd="w",
+ description="SQUARE DM",
+ direction="on",
+ linebreak="id",
+ specials={ "square", 0x0064, 0x006D },
+ unicodeslot=0x3377,
},
[0x3378]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE DM SQUARED",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x0064, 0x006D, 0x00B2 },
- ["unicodeslot"]=0x3378, -- ㍸
+ category="so",
+ cjkwd="w",
+ description="SQUARE DM SQUARED",
+ direction="on",
+ linebreak="id",
+ specials={ "square", 0x0064, 0x006D, 0x00B2 },
+ unicodeslot=0x3378,
},
[0x3379]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE DM CUBED",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x0064, 0x006D, 0x00B3 },
- ["unicodeslot"]=0x3379, -- ㍹
+ category="so",
+ cjkwd="w",
+ description="SQUARE DM CUBED",
+ direction="on",
+ linebreak="id",
+ specials={ "square", 0x0064, 0x006D, 0x00B3 },
+ unicodeslot=0x3379,
},
[0x337A]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE IU",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x0049, 0x0055 },
- ["unicodeslot"]=0x337A, -- ㍺
+ category="so",
+ cjkwd="w",
+ description="SQUARE IU",
+ direction="on",
+ linebreak="id",
+ specials={ "square", 0x0049, 0x0055 },
+ unicodeslot=0x337A,
},
[0x337B]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE ERA NAME HEISEI",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x5E73, 0x6210 },
- ["unicodeslot"]=0x337B, -- ㍻
+ category="so",
+ cjkwd="w",
+ description="SQUARE ERA NAME HEISEI",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x5E73, 0x6210 },
+ unicodeslot=0x337B,
},
[0x337C]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE ERA NAME SYOUWA",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x662D, 0x548C },
- ["unicodeslot"]=0x337C, -- ㍼
+ category="so",
+ cjkwd="w",
+ description="SQUARE ERA NAME SYOUWA",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x662D, 0x548C },
+ unicodeslot=0x337C,
},
[0x337D]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE ERA NAME TAISYOU",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x5927, 0x6B63 },
- ["unicodeslot"]=0x337D, -- ㍽
+ category="so",
+ cjkwd="w",
+ description="SQUARE ERA NAME TAISYOU",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x5927, 0x6B63 },
+ unicodeslot=0x337D,
},
[0x337E]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE ERA NAME MEIZI",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x660E, 0x6CBB },
- ["unicodeslot"]=0x337E, -- ㍾
+ category="so",
+ cjkwd="w",
+ description="SQUARE ERA NAME MEIZI",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x660E, 0x6CBB },
+ unicodeslot=0x337E,
},
[0x337F]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE CORPORATION",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x682A, 0x5F0F, 0x4F1A, 0x793E },
- ["unicodeslot"]=0x337F, -- ㍿
+ category="so",
+ cjkwd="w",
+ description="SQUARE CORPORATION",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x682A, 0x5F0F, 0x4F1A, 0x793E },
+ unicodeslot=0x337F,
},
[0x3380]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE PA AMPS",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x0070, 0x0041 },
- ["unicodeslot"]=0x3380, -- ㎀
+ category="so",
+ cjkwd="w",
+ description="SQUARE PA AMPS",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x0070, 0x0041 },
+ unicodeslot=0x3380,
},
[0x3381]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE NA",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x006E, 0x0041 },
- ["unicodeslot"]=0x3381, -- ㎁
+ category="so",
+ cjkwd="w",
+ description="SQUARE NA",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x006E, 0x0041 },
+ unicodeslot=0x3381,
},
[0x3382]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE MU A",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x03BC, 0x0041 },
- ["unicodeslot"]=0x3382, -- ㎂
+ category="so",
+ cjkwd="w",
+ description="SQUARE MU A",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x03BC, 0x0041 },
+ unicodeslot=0x3382,
},
[0x3383]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE MA",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x006D, 0x0041 },
- ["unicodeslot"]=0x3383, -- ㎃
+ category="so",
+ cjkwd="w",
+ description="SQUARE MA",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x006D, 0x0041 },
+ unicodeslot=0x3383,
},
[0x3384]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE KA",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x006B, 0x0041 },
- ["unicodeslot"]=0x3384, -- ㎄
+ category="so",
+ cjkwd="w",
+ description="SQUARE KA",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x006B, 0x0041 },
+ unicodeslot=0x3384,
},
[0x3385]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE KB",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x004B, 0x0042 },
- ["unicodeslot"]=0x3385, -- ㎅
+ category="so",
+ cjkwd="w",
+ description="SQUARE KB",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x004B, 0x0042 },
+ unicodeslot=0x3385,
},
[0x3386]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE MB",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x004D, 0x0042 },
- ["unicodeslot"]=0x3386, -- ㎆
+ category="so",
+ cjkwd="w",
+ description="SQUARE MB",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x004D, 0x0042 },
+ unicodeslot=0x3386,
},
[0x3387]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE GB",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x0047, 0x0042 },
- ["unicodeslot"]=0x3387, -- ㎇
+ category="so",
+ cjkwd="w",
+ description="SQUARE GB",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x0047, 0x0042 },
+ unicodeslot=0x3387,
},
[0x3388]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE CAL",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x0063, 0x0061, 0x006C },
- ["unicodeslot"]=0x3388, -- ㎈
+ category="so",
+ cjkwd="w",
+ description="SQUARE CAL",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x0063, 0x0061, 0x006C },
+ unicodeslot=0x3388,
},
[0x3389]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE KCAL",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x006B, 0x0063, 0x0061, 0x006C },
- ["unicodeslot"]=0x3389, -- ㎉
+ category="so",
+ cjkwd="w",
+ description="SQUARE KCAL",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x006B, 0x0063, 0x0061, 0x006C },
+ unicodeslot=0x3389,
},
[0x338A]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE PF",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x0070, 0x0046 },
- ["unicodeslot"]=0x338A, -- ㎊
+ category="so",
+ cjkwd="w",
+ description="SQUARE PF",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x0070, 0x0046 },
+ unicodeslot=0x338A,
},
[0x338B]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE NF",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x006E, 0x0046 },
- ["unicodeslot"]=0x338B, -- ㎋
+ category="so",
+ cjkwd="w",
+ description="SQUARE NF",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x006E, 0x0046 },
+ unicodeslot=0x338B,
},
[0x338C]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE MU F",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x03BC, 0x0046 },
- ["unicodeslot"]=0x338C, -- ㎌
+ category="so",
+ cjkwd="w",
+ description="SQUARE MU F",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x03BC, 0x0046 },
+ unicodeslot=0x338C,
},
[0x338D]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE MU G",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x03BC, 0x0067 },
- ["unicodeslot"]=0x338D, -- ㎍
+ category="so",
+ cjkwd="w",
+ description="SQUARE MU G",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x03BC, 0x0067 },
+ unicodeslot=0x338D,
},
[0x338E]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE MG",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x006D, 0x0067 },
- ["unicodeslot"]=0x338E, -- ㎎
+ category="so",
+ cjkwd="w",
+ description="SQUARE MG",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x006D, 0x0067 },
+ unicodeslot=0x338E,
},
[0x338F]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE KG",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x006B, 0x0067 },
- ["unicodeslot"]=0x338F, -- ㎏
+ category="so",
+ cjkwd="w",
+ description="SQUARE KG",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x006B, 0x0067 },
+ unicodeslot=0x338F,
},
[0x3390]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE HZ",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x0048, 0x007A },
- ["unicodeslot"]=0x3390, -- ㎐
+ category="so",
+ cjkwd="w",
+ description="SQUARE HZ",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x0048, 0x007A },
+ unicodeslot=0x3390,
},
[0x3391]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE KHZ",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x006B, 0x0048, 0x007A },
- ["unicodeslot"]=0x3391, -- ㎑
+ category="so",
+ cjkwd="w",
+ description="SQUARE KHZ",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x006B, 0x0048, 0x007A },
+ unicodeslot=0x3391,
},
[0x3392]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE MHZ",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x004D, 0x0048, 0x007A },
- ["unicodeslot"]=0x3392, -- ㎒
+ category="so",
+ cjkwd="w",
+ description="SQUARE MHZ",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x004D, 0x0048, 0x007A },
+ unicodeslot=0x3392,
},
[0x3393]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE GHZ",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x0047, 0x0048, 0x007A },
- ["unicodeslot"]=0x3393, -- ㎓
+ category="so",
+ cjkwd="w",
+ description="SQUARE GHZ",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x0047, 0x0048, 0x007A },
+ unicodeslot=0x3393,
},
[0x3394]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE THZ",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x0054, 0x0048, 0x007A },
- ["unicodeslot"]=0x3394, -- ㎔
+ category="so",
+ cjkwd="w",
+ description="SQUARE THZ",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x0054, 0x0048, 0x007A },
+ unicodeslot=0x3394,
},
[0x3395]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE MU L",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x03BC, 0x2113 },
- ["unicodeslot"]=0x3395, -- ㎕
+ category="so",
+ cjkwd="w",
+ description="SQUARE MU L",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x03BC, 0x2113 },
+ unicodeslot=0x3395,
},
[0x3396]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE ML",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x006D, 0x2113 },
- ["unicodeslot"]=0x3396, -- ㎖
+ category="so",
+ cjkwd="w",
+ description="SQUARE ML",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x006D, 0x2113 },
+ unicodeslot=0x3396,
},
[0x3397]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE DL",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x0064, 0x2113 },
- ["unicodeslot"]=0x3397, -- ㎗
+ category="so",
+ cjkwd="w",
+ description="SQUARE DL",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x0064, 0x2113 },
+ unicodeslot=0x3397,
},
[0x3398]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE KL",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x006B, 0x2113 },
- ["unicodeslot"]=0x3398, -- ㎘
+ category="so",
+ cjkwd="w",
+ description="SQUARE KL",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x006B, 0x2113 },
+ unicodeslot=0x3398,
},
[0x3399]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE FM",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x0066, 0x006D },
- ["unicodeslot"]=0x3399, -- ㎙
+ category="so",
+ cjkwd="w",
+ description="SQUARE FM",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x0066, 0x006D },
+ unicodeslot=0x3399,
},
[0x339A]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE NM",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x006E, 0x006D },
- ["unicodeslot"]=0x339A, -- ㎚
+ category="so",
+ cjkwd="w",
+ description="SQUARE NM",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x006E, 0x006D },
+ unicodeslot=0x339A,
},
[0x339B]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE MU M",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x03BC, 0x006D },
- ["unicodeslot"]=0x339B, -- ㎛
+ category="so",
+ cjkwd="w",
+ description="SQUARE MU M",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x03BC, 0x006D },
+ unicodeslot=0x339B,
},
[0x339C]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE MM",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x006D, 0x006D },
- ["unicodeslot"]=0x339C, -- ㎜
+ category="so",
+ cjkwd="w",
+ description="SQUARE MM",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x006D, 0x006D },
+ unicodeslot=0x339C,
},
[0x339D]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE CM",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x0063, 0x006D },
- ["unicodeslot"]=0x339D, -- ㎝
+ category="so",
+ cjkwd="w",
+ description="SQUARE CM",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x0063, 0x006D },
+ unicodeslot=0x339D,
},
[0x339E]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE KM",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x006B, 0x006D },
- ["unicodeslot"]=0x339E, -- ㎞
+ category="so",
+ cjkwd="w",
+ description="SQUARE KM",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x006B, 0x006D },
+ unicodeslot=0x339E,
},
[0x339F]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE MM SQUARED",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x006D, 0x006D, 0x00B2 },
- ["unicodeslot"]=0x339F, -- ㎟
+ category="so",
+ cjkwd="w",
+ description="SQUARE MM SQUARED",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x006D, 0x006D, 0x00B2 },
+ unicodeslot=0x339F,
},
[0x33A0]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE CM SQUARED",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x0063, 0x006D, 0x00B2 },
- ["unicodeslot"]=0x33A0, -- ㎠
+ category="so",
+ cjkwd="w",
+ description="SQUARE CM SQUARED",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x0063, 0x006D, 0x00B2 },
+ unicodeslot=0x33A0,
},
[0x33A1]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE M SQUARED",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x006D, 0x00B2 },
- ["unicodeslot"]=0x33A1, -- ㎡
+ category="so",
+ cjkwd="w",
+ description="SQUARE M SQUARED",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x006D, 0x00B2 },
+ unicodeslot=0x33A1,
},
[0x33A2]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE KM SQUARED",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x006B, 0x006D, 0x00B2 },
- ["unicodeslot"]=0x33A2, -- ㎢
+ category="so",
+ cjkwd="w",
+ description="SQUARE KM SQUARED",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x006B, 0x006D, 0x00B2 },
+ unicodeslot=0x33A2,
},
[0x33A3]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE MM CUBED",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x006D, 0x006D, 0x00B3 },
- ["unicodeslot"]=0x33A3, -- ㎣
+ category="so",
+ cjkwd="w",
+ description="SQUARE MM CUBED",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x006D, 0x006D, 0x00B3 },
+ unicodeslot=0x33A3,
},
[0x33A4]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE CM CUBED",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x0063, 0x006D, 0x00B3 },
- ["unicodeslot"]=0x33A4, -- ㎤
+ category="so",
+ cjkwd="w",
+ description="SQUARE CM CUBED",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x0063, 0x006D, 0x00B3 },
+ unicodeslot=0x33A4,
},
[0x33A5]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE M CUBED",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x006D, 0x00B3 },
- ["unicodeslot"]=0x33A5, -- ㎥
+ category="so",
+ cjkwd="w",
+ description="SQUARE M CUBED",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x006D, 0x00B3 },
+ unicodeslot=0x33A5,
},
[0x33A6]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE KM CUBED",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x006B, 0x006D, 0x00B3 },
- ["unicodeslot"]=0x33A6, -- ㎦
+ category="so",
+ cjkwd="w",
+ description="SQUARE KM CUBED",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x006B, 0x006D, 0x00B3 },
+ unicodeslot=0x33A6,
},
[0x33A7]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE M OVER S",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x006D, 0x2215, 0x0073 },
- ["unicodeslot"]=0x33A7, -- ㎧
+ category="so",
+ cjkwd="w",
+ description="SQUARE M OVER S",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x006D, 0x2215, 0x0073 },
+ unicodeslot=0x33A7,
},
[0x33A8]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE M OVER S SQUARED",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x006D, 0x2215, 0x0073, 0x00B2 },
- ["unicodeslot"]=0x33A8, -- ㎨
+ category="so",
+ cjkwd="w",
+ description="SQUARE M OVER S SQUARED",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x006D, 0x2215, 0x0073, 0x00B2 },
+ unicodeslot=0x33A8,
},
[0x33A9]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE PA",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x0050, 0x0061 },
- ["unicodeslot"]=0x33A9, -- ㎩
+ category="so",
+ cjkwd="w",
+ description="SQUARE PA",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x0050, 0x0061 },
+ unicodeslot=0x33A9,
},
[0x33AA]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE KPA",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x006B, 0x0050, 0x0061 },
- ["unicodeslot"]=0x33AA, -- ㎪
+ category="so",
+ cjkwd="w",
+ description="SQUARE KPA",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x006B, 0x0050, 0x0061 },
+ unicodeslot=0x33AA,
},
[0x33AB]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE MPA",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x004D, 0x0050, 0x0061 },
- ["unicodeslot"]=0x33AB, -- ㎫
+ category="so",
+ cjkwd="w",
+ description="SQUARE MPA",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x004D, 0x0050, 0x0061 },
+ unicodeslot=0x33AB,
},
[0x33AC]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE GPA",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x0047, 0x0050, 0x0061 },
- ["unicodeslot"]=0x33AC, -- ㎬
+ category="so",
+ cjkwd="w",
+ description="SQUARE GPA",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x0047, 0x0050, 0x0061 },
+ unicodeslot=0x33AC,
},
[0x33AD]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE RAD",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x0072, 0x0061, 0x0064 },
- ["unicodeslot"]=0x33AD, -- ㎭
+ category="so",
+ cjkwd="w",
+ description="SQUARE RAD",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x0072, 0x0061, 0x0064 },
+ unicodeslot=0x33AD,
},
[0x33AE]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE RAD OVER S",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x0072, 0x0061, 0x0064, 0x2215, 0x0073 },
- ["unicodeslot"]=0x33AE, -- ㎮
+ category="so",
+ cjkwd="w",
+ description="SQUARE RAD OVER S",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x0072, 0x0061, 0x0064, 0x2215, 0x0073 },
+ unicodeslot=0x33AE,
},
[0x33AF]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE RAD OVER S SQUARED",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x0072, 0x0061, 0x0064, 0x2215, 0x0073, 0x00B2 },
- ["unicodeslot"]=0x33AF, -- ㎯
+ category="so",
+ cjkwd="w",
+ description="SQUARE RAD OVER S SQUARED",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x0072, 0x0061, 0x0064, 0x2215, 0x0073, 0x00B2 },
+ unicodeslot=0x33AF,
},
[0x33B0]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE PS",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x0070, 0x0073 },
- ["unicodeslot"]=0x33B0, -- ㎰
+ category="so",
+ cjkwd="w",
+ description="SQUARE PS",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x0070, 0x0073 },
+ unicodeslot=0x33B0,
},
[0x33B1]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE NS",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x006E, 0x0073 },
- ["unicodeslot"]=0x33B1, -- ㎱
+ category="so",
+ cjkwd="w",
+ description="SQUARE NS",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x006E, 0x0073 },
+ unicodeslot=0x33B1,
},
[0x33B2]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE MU S",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x03BC, 0x0073 },
- ["unicodeslot"]=0x33B2, -- ㎲
+ category="so",
+ cjkwd="w",
+ description="SQUARE MU S",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x03BC, 0x0073 },
+ unicodeslot=0x33B2,
},
[0x33B3]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE MS",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x006D, 0x0073 },
- ["unicodeslot"]=0x33B3, -- ㎳
+ category="so",
+ cjkwd="w",
+ description="SQUARE MS",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x006D, 0x0073 },
+ unicodeslot=0x33B3,
},
[0x33B4]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE PV",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x0070, 0x0056 },
- ["unicodeslot"]=0x33B4, -- ㎴
+ category="so",
+ cjkwd="w",
+ description="SQUARE PV",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x0070, 0x0056 },
+ unicodeslot=0x33B4,
},
[0x33B5]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE NV",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x006E, 0x0056 },
- ["unicodeslot"]=0x33B5, -- ㎵
+ category="so",
+ cjkwd="w",
+ description="SQUARE NV",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x006E, 0x0056 },
+ unicodeslot=0x33B5,
},
[0x33B6]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE MU V",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x03BC, 0x0056 },
- ["unicodeslot"]=0x33B6, -- ㎶
+ category="so",
+ cjkwd="w",
+ description="SQUARE MU V",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x03BC, 0x0056 },
+ unicodeslot=0x33B6,
},
[0x33B7]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE MV",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x006D, 0x0056 },
- ["unicodeslot"]=0x33B7, -- ㎷
+ category="so",
+ cjkwd="w",
+ description="SQUARE MV",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x006D, 0x0056 },
+ unicodeslot=0x33B7,
},
[0x33B8]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE KV",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x006B, 0x0056 },
- ["unicodeslot"]=0x33B8, -- ㎸
+ category="so",
+ cjkwd="w",
+ description="SQUARE KV",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x006B, 0x0056 },
+ unicodeslot=0x33B8,
},
[0x33B9]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE MV MEGA",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x004D, 0x0056 },
- ["unicodeslot"]=0x33B9, -- ㎹
+ category="so",
+ cjkwd="w",
+ description="SQUARE MV MEGA",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x004D, 0x0056 },
+ unicodeslot=0x33B9,
},
[0x33BA]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE PW",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x0070, 0x0057 },
- ["unicodeslot"]=0x33BA, -- ㎺
+ category="so",
+ cjkwd="w",
+ description="SQUARE PW",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x0070, 0x0057 },
+ unicodeslot=0x33BA,
},
[0x33BB]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE NW",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x006E, 0x0057 },
- ["unicodeslot"]=0x33BB, -- ㎻
+ category="so",
+ cjkwd="w",
+ description="SQUARE NW",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x006E, 0x0057 },
+ unicodeslot=0x33BB,
},
[0x33BC]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE MU W",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x03BC, 0x0057 },
- ["unicodeslot"]=0x33BC, -- ㎼
+ category="so",
+ cjkwd="w",
+ description="SQUARE MU W",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x03BC, 0x0057 },
+ unicodeslot=0x33BC,
},
[0x33BD]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE MW",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x006D, 0x0057 },
- ["unicodeslot"]=0x33BD, -- ㎽
+ category="so",
+ cjkwd="w",
+ description="SQUARE MW",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x006D, 0x0057 },
+ unicodeslot=0x33BD,
},
[0x33BE]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE KW",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x006B, 0x0057 },
- ["unicodeslot"]=0x33BE, -- ㎾
+ category="so",
+ cjkwd="w",
+ description="SQUARE KW",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x006B, 0x0057 },
+ unicodeslot=0x33BE,
},
[0x33BF]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE MW MEGA",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x004D, 0x0057 },
- ["unicodeslot"]=0x33BF, -- ㎿
+ category="so",
+ cjkwd="w",
+ description="SQUARE MW MEGA",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x004D, 0x0057 },
+ unicodeslot=0x33BF,
},
[0x33C0]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE K OHM",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x006B, 0x03A9 },
- ["unicodeslot"]=0x33C0, -- ㏀
+ category="so",
+ cjkwd="w",
+ description="SQUARE K OHM",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x006B, 0x03A9 },
+ unicodeslot=0x33C0,
},
[0x33C1]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE M OHM",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x004D, 0x03A9 },
- ["unicodeslot"]=0x33C1, -- ㏁
+ category="so",
+ cjkwd="w",
+ description="SQUARE M OHM",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x004D, 0x03A9 },
+ unicodeslot=0x33C1,
},
[0x33C2]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE AM",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x0061, 0x002E, 0x006D, 0x002E },
- ["unicodeslot"]=0x33C2, -- ㏂
+ category="so",
+ cjkwd="w",
+ description="SQUARE AM",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x0061, 0x002E, 0x006D, 0x002E },
+ unicodeslot=0x33C2,
},
[0x33C3]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE BQ",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x0042, 0x0071 },
- ["unicodeslot"]=0x33C3, -- ㏃
+ category="so",
+ cjkwd="w",
+ description="SQUARE BQ",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x0042, 0x0071 },
+ unicodeslot=0x33C3,
},
[0x33C4]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE CC",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x0063, 0x0063 },
- ["unicodeslot"]=0x33C4, -- ㏄
+ category="so",
+ cjkwd="w",
+ description="SQUARE CC",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x0063, 0x0063 },
+ unicodeslot=0x33C4,
},
[0x33C5]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE CD",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x0063, 0x0064 },
- ["unicodeslot"]=0x33C5, -- ㏅
+ category="so",
+ cjkwd="w",
+ description="SQUARE CD",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x0063, 0x0064 },
+ unicodeslot=0x33C5,
},
[0x33C6]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE C OVER KG",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x0043, 0x2215, 0x006B, 0x0067 },
- ["unicodeslot"]=0x33C6, -- ㏆
+ category="so",
+ cjkwd="w",
+ description="SQUARE C OVER KG",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x0043, 0x2215, 0x006B, 0x0067 },
+ unicodeslot=0x33C6,
},
[0x33C7]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE CO",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x0043, 0x006F, 0x002E },
- ["unicodeslot"]=0x33C7, -- ㏇
+ category="so",
+ cjkwd="w",
+ description="SQUARE CO",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x0043, 0x006F, 0x002E },
+ unicodeslot=0x33C7,
},
[0x33C8]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE DB",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x0064, 0x0042 },
- ["unicodeslot"]=0x33C8, -- ㏈
+ category="so",
+ cjkwd="w",
+ description="SQUARE DB",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x0064, 0x0042 },
+ unicodeslot=0x33C8,
},
[0x33C9]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE GY",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x0047, 0x0079 },
- ["unicodeslot"]=0x33C9, -- ㏉
+ category="so",
+ cjkwd="w",
+ description="SQUARE GY",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x0047, 0x0079 },
+ unicodeslot=0x33C9,
},
[0x33CA]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE HA",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x0068, 0x0061 },
- ["unicodeslot"]=0x33CA, -- ㏊
+ category="so",
+ cjkwd="w",
+ description="SQUARE HA",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x0068, 0x0061 },
+ unicodeslot=0x33CA,
},
[0x33CB]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE HP",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x0048, 0x0050 },
- ["unicodeslot"]=0x33CB, -- ㏋
+ category="so",
+ cjkwd="w",
+ description="SQUARE HP",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x0048, 0x0050 },
+ unicodeslot=0x33CB,
},
[0x33CC]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE IN",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x0069, 0x006E },
- ["unicodeslot"]=0x33CC, -- ㏌
+ category="so",
+ cjkwd="w",
+ description="SQUARE IN",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x0069, 0x006E },
+ unicodeslot=0x33CC,
},
[0x33CD]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE KK",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x004B, 0x004B },
- ["unicodeslot"]=0x33CD, -- ㏍
+ category="so",
+ cjkwd="w",
+ description="SQUARE KK",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x004B, 0x004B },
+ unicodeslot=0x33CD,
},
[0x33CE]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE KM CAPITAL",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x004B, 0x004D },
- ["unicodeslot"]=0x33CE, -- ㏎
+ category="so",
+ cjkwd="w",
+ description="SQUARE KM CAPITAL",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x004B, 0x004D },
+ unicodeslot=0x33CE,
},
[0x33CF]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE KT",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x006B, 0x0074 },
- ["unicodeslot"]=0x33CF, -- ㏏
+ category="so",
+ cjkwd="w",
+ description="SQUARE KT",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x006B, 0x0074 },
+ unicodeslot=0x33CF,
},
[0x33D0]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE LM",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x006C, 0x006D },
- ["unicodeslot"]=0x33D0, -- ㏐
+ category="so",
+ cjkwd="w",
+ description="SQUARE LM",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x006C, 0x006D },
+ unicodeslot=0x33D0,
},
[0x33D1]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE LN",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x006C, 0x006E },
- ["unicodeslot"]=0x33D1, -- ㏑
+ category="so",
+ cjkwd="w",
+ description="SQUARE LN",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x006C, 0x006E },
+ unicodeslot=0x33D1,
},
[0x33D2]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE LOG",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x006C, 0x006F, 0x0067 },
- ["unicodeslot"]=0x33D2, -- ㏒
+ category="so",
+ cjkwd="w",
+ description="SQUARE LOG",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x006C, 0x006F, 0x0067 },
+ unicodeslot=0x33D2,
},
[0x33D3]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE LX",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x006C, 0x0078 },
- ["unicodeslot"]=0x33D3, -- ㏓
+ category="so",
+ cjkwd="w",
+ description="SQUARE LX",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x006C, 0x0078 },
+ unicodeslot=0x33D3,
},
[0x33D4]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE MB SMALL",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x006D, 0x0062 },
- ["unicodeslot"]=0x33D4, -- ㏔
+ category="so",
+ cjkwd="w",
+ description="SQUARE MB SMALL",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x006D, 0x0062 },
+ unicodeslot=0x33D4,
},
[0x33D5]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE MIL",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x006D, 0x0069, 0x006C },
- ["unicodeslot"]=0x33D5, -- ㏕
+ category="so",
+ cjkwd="w",
+ description="SQUARE MIL",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x006D, 0x0069, 0x006C },
+ unicodeslot=0x33D5,
},
[0x33D6]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE MOL",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x006D, 0x006F, 0x006C },
- ["unicodeslot"]=0x33D6, -- ㏖
+ category="so",
+ cjkwd="w",
+ description="SQUARE MOL",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x006D, 0x006F, 0x006C },
+ unicodeslot=0x33D6,
},
[0x33D7]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE PH",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x0050, 0x0048 },
- ["unicodeslot"]=0x33D7, -- ㏗
+ category="so",
+ cjkwd="w",
+ description="SQUARE PH",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x0050, 0x0048 },
+ unicodeslot=0x33D7,
},
[0x33D8]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE PM",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x0070, 0x002E, 0x006D, 0x002E },
- ["unicodeslot"]=0x33D8, -- ㏘
+ category="so",
+ cjkwd="w",
+ description="SQUARE PM",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x0070, 0x002E, 0x006D, 0x002E },
+ unicodeslot=0x33D8,
},
[0x33D9]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE PPM",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x0050, 0x0050, 0x004D },
- ["unicodeslot"]=0x33D9, -- ㏙
+ category="so",
+ cjkwd="w",
+ description="SQUARE PPM",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x0050, 0x0050, 0x004D },
+ unicodeslot=0x33D9,
},
[0x33DA]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE PR",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x0050, 0x0052 },
- ["unicodeslot"]=0x33DA, -- ㏚
+ category="so",
+ cjkwd="w",
+ description="SQUARE PR",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x0050, 0x0052 },
+ unicodeslot=0x33DA,
},
[0x33DB]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE SR",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x0073, 0x0072 },
- ["unicodeslot"]=0x33DB, -- ㏛
+ category="so",
+ cjkwd="w",
+ description="SQUARE SR",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x0073, 0x0072 },
+ unicodeslot=0x33DB,
},
[0x33DC]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE SV",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x0053, 0x0076 },
- ["unicodeslot"]=0x33DC, -- ㏜
+ category="so",
+ cjkwd="w",
+ description="SQUARE SV",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x0053, 0x0076 },
+ unicodeslot=0x33DC,
},
[0x33DD]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE WB",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x0057, 0x0062 },
- ["unicodeslot"]=0x33DD, -- ㏝
+ category="so",
+ cjkwd="w",
+ description="SQUARE WB",
+ direction="l",
+ linebreak="id",
+ specials={ "square", 0x0057, 0x0062 },
+ unicodeslot=0x33DD,
},
[0x33DE]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE V OVER M",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x0056, 0x2215, 0x006D },
- ["unicodeslot"]=0x33DE, -- ㏞
+ category="so",
+ cjkwd="w",
+ description="SQUARE V OVER M",
+ direction="on",
+ linebreak="id",
+ specials={ "square", 0x0056, 0x2215, 0x006D },
+ unicodeslot=0x33DE,
},
[0x33DF]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE A OVER M",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x0041, 0x2215, 0x006D },
- ["unicodeslot"]=0x33DF, -- ㏟
+ category="so",
+ cjkwd="w",
+ description="SQUARE A OVER M",
+ direction="on",
+ linebreak="id",
+ specials={ "square", 0x0041, 0x2215, 0x006D },
+ unicodeslot=0x33DF,
},
[0x33E0]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0031, 0x65E5 },
- ["unicodeslot"]=0x33E0, -- ㏠
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0031, 0x65E5 },
+ unicodeslot=0x33E0,
},
[0x33E1]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWO",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0032, 0x65E5 },
- ["unicodeslot"]=0x33E1, -- ㏡
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWO",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0032, 0x65E5 },
+ unicodeslot=0x33E1,
},
[0x33E2]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THREE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0033, 0x65E5 },
- ["unicodeslot"]=0x33E2, -- ㏢
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THREE",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0033, 0x65E5 },
+ unicodeslot=0x33E2,
},
[0x33E3]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOUR",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0034, 0x65E5 },
- ["unicodeslot"]=0x33E3, -- ㏣
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOUR",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0034, 0x65E5 },
+ unicodeslot=0x33E3,
},
[0x33E4]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIVE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0035, 0x65E5 },
- ["unicodeslot"]=0x33E4, -- ㏤
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIVE",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0035, 0x65E5 },
+ unicodeslot=0x33E4,
},
[0x33E5]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIX",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0036, 0x65E5 },
- ["unicodeslot"]=0x33E5, -- ㏥
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIX",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0036, 0x65E5 },
+ unicodeslot=0x33E5,
},
[0x33E6]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVEN",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0037, 0x65E5 },
- ["unicodeslot"]=0x33E6, -- ㏦
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVEN",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0037, 0x65E5 },
+ unicodeslot=0x33E6,
},
[0x33E7]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHT",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0038, 0x65E5 },
- ["unicodeslot"]=0x33E7, -- ㏧
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHT",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0038, 0x65E5 },
+ unicodeslot=0x33E7,
},
[0x33E8]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0039, 0x65E5 },
- ["unicodeslot"]=0x33E8, -- ㏨
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINE",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0039, 0x65E5 },
+ unicodeslot=0x33E8,
},
[0x33E9]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TEN",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0031, 0x0030, 0x65E5 },
- ["unicodeslot"]=0x33E9, -- ㏩
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TEN",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0031, 0x0030, 0x65E5 },
+ unicodeslot=0x33E9,
},
[0x33EA]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ELEVEN",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0031, 0x0031, 0x65E5 },
- ["unicodeslot"]=0x33EA, -- ㏪
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ELEVEN",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0031, 0x0031, 0x65E5 },
+ unicodeslot=0x33EA,
},
[0x33EB]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWELVE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0031, 0x0032, 0x65E5 },
- ["unicodeslot"]=0x33EB, -- ㏫
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWELVE",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0031, 0x0032, 0x65E5 },
+ unicodeslot=0x33EB,
},
[0x33EC]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTEEN",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0031, 0x0033, 0x65E5 },
- ["unicodeslot"]=0x33EC, -- ㏬
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTEEN",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0031, 0x0033, 0x65E5 },
+ unicodeslot=0x33EC,
},
[0x33ED]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOURTEEN",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0031, 0x0034, 0x65E5 },
- ["unicodeslot"]=0x33ED, -- ㏭
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOURTEEN",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0031, 0x0034, 0x65E5 },
+ unicodeslot=0x33ED,
},
[0x33EE]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIFTEEN",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0031, 0x0035, 0x65E5 },
- ["unicodeslot"]=0x33EE, -- ㏮
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIFTEEN",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0031, 0x0035, 0x65E5 },
+ unicodeslot=0x33EE,
},
[0x33EF]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIXTEEN",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0031, 0x0036, 0x65E5 },
- ["unicodeslot"]=0x33EF, -- ㏯
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIXTEEN",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0031, 0x0036, 0x65E5 },
+ unicodeslot=0x33EF,
},
[0x33F0]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVENTEEN",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0031, 0x0037, 0x65E5 },
- ["unicodeslot"]=0x33F0, -- ㏰
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVENTEEN",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0031, 0x0037, 0x65E5 },
+ unicodeslot=0x33F0,
},
[0x33F1]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHTEEN",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0031, 0x0038, 0x65E5 },
- ["unicodeslot"]=0x33F1, -- ㏱
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHTEEN",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0031, 0x0038, 0x65E5 },
+ unicodeslot=0x33F1,
},
[0x33F2]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINETEEN",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0031, 0x0039, 0x65E5 },
- ["unicodeslot"]=0x33F2, -- ㏲
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINETEEN",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0031, 0x0039, 0x65E5 },
+ unicodeslot=0x33F2,
},
[0x33F3]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0032, 0x0030, 0x65E5 },
- ["unicodeslot"]=0x33F3, -- ㏳
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0032, 0x0030, 0x65E5 },
+ unicodeslot=0x33F3,
},
[0x33F4]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-ONE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0032, 0x0031, 0x65E5 },
- ["unicodeslot"]=0x33F4, -- ㏴
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-ONE",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0032, 0x0031, 0x65E5 },
+ unicodeslot=0x33F4,
},
[0x33F5]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-TWO",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0032, 0x0032, 0x65E5 },
- ["unicodeslot"]=0x33F5, -- ㏵
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-TWO",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0032, 0x0032, 0x65E5 },
+ unicodeslot=0x33F5,
},
[0x33F6]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-THREE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0032, 0x0033, 0x65E5 },
- ["unicodeslot"]=0x33F6, -- ㏶
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-THREE",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0032, 0x0033, 0x65E5 },
+ unicodeslot=0x33F6,
},
[0x33F7]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FOUR",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0032, 0x0034, 0x65E5 },
- ["unicodeslot"]=0x33F7, -- ㏷
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FOUR",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0032, 0x0034, 0x65E5 },
+ unicodeslot=0x33F7,
},
[0x33F8]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FIVE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0032, 0x0035, 0x65E5 },
- ["unicodeslot"]=0x33F8, -- ㏸
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FIVE",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0032, 0x0035, 0x65E5 },
+ unicodeslot=0x33F8,
},
[0x33F9]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SIX",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0032, 0x0036, 0x65E5 },
- ["unicodeslot"]=0x33F9, -- ㏹
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SIX",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0032, 0x0036, 0x65E5 },
+ unicodeslot=0x33F9,
},
[0x33FA]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SEVEN",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0032, 0x0037, 0x65E5 },
- ["unicodeslot"]=0x33FA, -- ㏺
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SEVEN",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0032, 0x0037, 0x65E5 },
+ unicodeslot=0x33FA,
},
[0x33FB]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-EIGHT",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0032, 0x0038, 0x65E5 },
- ["unicodeslot"]=0x33FB, -- ㏻
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-EIGHT",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0032, 0x0038, 0x65E5 },
+ unicodeslot=0x33FB,
},
[0x33FC]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-NINE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0032, 0x0039, 0x65E5 },
- ["unicodeslot"]=0x33FC, -- ㏼
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-NINE",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0032, 0x0039, 0x65E5 },
+ unicodeslot=0x33FC,
},
[0x33FD]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0033, 0x0030, 0x65E5 },
- ["unicodeslot"]=0x33FD, -- ㏽
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0033, 0x0030, 0x65E5 },
+ unicodeslot=0x33FD,
},
[0x33FE]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x0033, 0x0031, 0x65E5 },
- ["unicodeslot"]=0x33FE, -- ㏾
+ category="so",
+ cjkwd="w",
+ description="IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE",
+ direction="l",
+ linebreak="id",
+ specials={ "compat", 0x0033, 0x0031, 0x65E5 },
+ unicodeslot=0x33FE,
},
[0x33FF]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="SQUARE GAL",
- ["linebreak"]="id",
- ["specials"]={ "square", 0x0067, 0x0061, 0x006C },
- ["unicodeslot"]=0x33FF, -- ㏿
+ category="so",
+ cjkwd="w",
+ description="SQUARE GAL",
+ direction="on",
+ linebreak="id",
+ specials={ "square", 0x0067, 0x0061, 0x006C },
+ unicodeslot=0x33FF,
},
[0x3400]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="<CJK Ideograph Extension A, First>",
- ["linebreak"]="id",
- ["unicodeslot"]=0x3400, -- 㐀
- },
- [0x4DB5]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="<CJK Ideograph Extension A, Last>",
- ["linebreak"]="id",
- ["unicodeslot"]=0x4DB5, -- 䶵
+ category="lo",
+ cjkwd="w",
+ description="<CJK Ideograph Extension A>",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x3400,
+ range= 0x4DB5,
},
[0x4DC0]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR THE CREATIVE HEAVEN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DC0, -- ䷀
+ category="so",
+ description="HEXAGRAM FOR THE CREATIVE HEAVEN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DC0,
},
[0x4DC1]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR THE RECEPTIVE EARTH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DC1, -- ䷁
+ category="so",
+ description="HEXAGRAM FOR THE RECEPTIVE EARTH",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DC1,
},
[0x4DC2]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR DIFFICULTY AT THE BEGINNING",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DC2, -- ䷂
+ category="so",
+ description="HEXAGRAM FOR DIFFICULTY AT THE BEGINNING",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DC2,
},
[0x4DC3]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR YOUTHFUL FOLLY",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DC3, -- ䷃
+ category="so",
+ description="HEXAGRAM FOR YOUTHFUL FOLLY",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DC3,
},
[0x4DC4]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR WAITING",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DC4, -- ䷄
+ category="so",
+ description="HEXAGRAM FOR WAITING",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DC4,
},
[0x4DC5]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR CONFLICT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DC5, -- ䷅
+ category="so",
+ description="HEXAGRAM FOR CONFLICT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DC5,
},
[0x4DC6]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR THE ARMY",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DC6, -- ䷆
+ category="so",
+ description="HEXAGRAM FOR THE ARMY",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DC6,
},
[0x4DC7]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR HOLDING TOGETHER",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DC7, -- ䷇
+ category="so",
+ description="HEXAGRAM FOR HOLDING TOGETHER",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DC7,
},
[0x4DC8]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR SMALL TAMING",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DC8, -- ䷈
+ category="so",
+ description="HEXAGRAM FOR SMALL TAMING",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DC8,
},
[0x4DC9]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR TREADING",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DC9, -- ䷉
+ category="so",
+ description="HEXAGRAM FOR TREADING",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DC9,
},
[0x4DCA]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR PEACE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DCA, -- ䷊
+ category="so",
+ description="HEXAGRAM FOR PEACE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DCA,
},
[0x4DCB]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR STANDSTILL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DCB, -- ䷋
+ category="so",
+ description="HEXAGRAM FOR STANDSTILL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DCB,
},
[0x4DCC]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR FELLOWSHIP",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DCC, -- ䷌
+ category="so",
+ description="HEXAGRAM FOR FELLOWSHIP",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DCC,
},
[0x4DCD]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR GREAT POSSESSION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DCD, -- ䷍
+ category="so",
+ description="HEXAGRAM FOR GREAT POSSESSION",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DCD,
},
[0x4DCE]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR MODESTY",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DCE, -- ䷎
+ category="so",
+ description="HEXAGRAM FOR MODESTY",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DCE,
},
[0x4DCF]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR ENTHUSIASM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DCF, -- ䷏
+ category="so",
+ description="HEXAGRAM FOR ENTHUSIASM",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DCF,
},
[0x4DD0]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR FOLLOWING",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DD0, -- ䷐
+ category="so",
+ description="HEXAGRAM FOR FOLLOWING",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DD0,
},
[0x4DD1]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR WORK ON THE DECAYED",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DD1, -- ䷑
+ category="so",
+ description="HEXAGRAM FOR WORK ON THE DECAYED",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DD1,
},
[0x4DD2]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR APPROACH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DD2, -- ䷒
+ category="so",
+ description="HEXAGRAM FOR APPROACH",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DD2,
},
[0x4DD3]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR CONTEMPLATION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DD3, -- ䷓
+ category="so",
+ description="HEXAGRAM FOR CONTEMPLATION",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DD3,
},
[0x4DD4]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR BITING THROUGH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DD4, -- ䷔
+ category="so",
+ description="HEXAGRAM FOR BITING THROUGH",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DD4,
},
[0x4DD5]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR GRACE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DD5, -- ䷕
+ category="so",
+ description="HEXAGRAM FOR GRACE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DD5,
},
[0x4DD6]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR SPLITTING APART",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DD6, -- ䷖
+ category="so",
+ description="HEXAGRAM FOR SPLITTING APART",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DD6,
},
[0x4DD7]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR RETURN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DD7, -- ䷗
+ category="so",
+ description="HEXAGRAM FOR RETURN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DD7,
},
[0x4DD8]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR INNOCENCE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DD8, -- ䷘
+ category="so",
+ description="HEXAGRAM FOR INNOCENCE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DD8,
},
[0x4DD9]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR GREAT TAMING",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DD9, -- ䷙
+ category="so",
+ description="HEXAGRAM FOR GREAT TAMING",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DD9,
},
[0x4DDA]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR MOUTH CORNERS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DDA, -- ䷚
+ category="so",
+ description="HEXAGRAM FOR MOUTH CORNERS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DDA,
},
[0x4DDB]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR GREAT PREPONDERANCE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DDB, -- ䷛
+ category="so",
+ description="HEXAGRAM FOR GREAT PREPONDERANCE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DDB,
},
[0x4DDC]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR THE ABYSMAL WATER",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DDC, -- ䷜
+ category="so",
+ description="HEXAGRAM FOR THE ABYSMAL WATER",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DDC,
},
[0x4DDD]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR THE CLINGING FIRE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DDD, -- ䷝
+ category="so",
+ description="HEXAGRAM FOR THE CLINGING FIRE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DDD,
},
[0x4DDE]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR INFLUENCE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DDE, -- ䷞
+ category="so",
+ description="HEXAGRAM FOR INFLUENCE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DDE,
},
[0x4DDF]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR DURATION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DDF, -- ䷟
+ category="so",
+ description="HEXAGRAM FOR DURATION",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DDF,
},
[0x4DE0]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR RETREAT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DE0, -- ䷠
+ category="so",
+ description="HEXAGRAM FOR RETREAT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DE0,
},
[0x4DE1]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR GREAT POWER",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DE1, -- ䷡
+ category="so",
+ description="HEXAGRAM FOR GREAT POWER",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DE1,
},
[0x4DE2]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR PROGRESS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DE2, -- ䷢
+ category="so",
+ description="HEXAGRAM FOR PROGRESS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DE2,
},
[0x4DE3]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR DARKENING OF THE LIGHT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DE3, -- ䷣
+ category="so",
+ description="HEXAGRAM FOR DARKENING OF THE LIGHT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DE3,
},
[0x4DE4]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR THE FAMILY",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DE4, -- ䷤
+ category="so",
+ description="HEXAGRAM FOR THE FAMILY",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DE4,
},
[0x4DE5]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR OPPOSITION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DE5, -- ䷥
+ category="so",
+ description="HEXAGRAM FOR OPPOSITION",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DE5,
},
[0x4DE6]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR OBSTRUCTION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DE6, -- ䷦
+ category="so",
+ description="HEXAGRAM FOR OBSTRUCTION",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DE6,
},
[0x4DE7]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR DELIVERANCE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DE7, -- ䷧
+ category="so",
+ description="HEXAGRAM FOR DELIVERANCE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DE7,
},
[0x4DE8]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR DECREASE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DE8, -- ䷨
+ category="so",
+ description="HEXAGRAM FOR DECREASE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DE8,
},
[0x4DE9]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR INCREASE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DE9, -- ䷩
+ category="so",
+ description="HEXAGRAM FOR INCREASE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DE9,
},
[0x4DEA]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR BREAKTHROUGH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DEA, -- ䷪
+ category="so",
+ description="HEXAGRAM FOR BREAKTHROUGH",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DEA,
},
[0x4DEB]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR COMING TO MEET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DEB, -- ䷫
+ category="so",
+ description="HEXAGRAM FOR COMING TO MEET",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DEB,
},
[0x4DEC]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR GATHERING TOGETHER",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DEC, -- ䷬
+ category="so",
+ description="HEXAGRAM FOR GATHERING TOGETHER",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DEC,
},
[0x4DED]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR PUSHING UPWARD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DED, -- ䷭
+ category="so",
+ description="HEXAGRAM FOR PUSHING UPWARD",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DED,
},
[0x4DEE]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR OPPRESSION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DEE, -- ䷮
+ category="so",
+ description="HEXAGRAM FOR OPPRESSION",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DEE,
},
[0x4DEF]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR THE WELL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DEF, -- ䷯
+ category="so",
+ description="HEXAGRAM FOR THE WELL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DEF,
},
[0x4DF0]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR REVOLUTION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DF0, -- ䷰
+ category="so",
+ description="HEXAGRAM FOR REVOLUTION",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DF0,
},
[0x4DF1]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR THE CAULDRON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DF1, -- ䷱
+ category="so",
+ description="HEXAGRAM FOR THE CAULDRON",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DF1,
},
[0x4DF2]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR THE AROUSING THUNDER",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DF2, -- ䷲
+ category="so",
+ description="HEXAGRAM FOR THE AROUSING THUNDER",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DF2,
},
[0x4DF3]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR THE KEEPING STILL MOUNTAIN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DF3, -- ䷳
+ category="so",
+ description="HEXAGRAM FOR THE KEEPING STILL MOUNTAIN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DF3,
},
[0x4DF4]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR DEVELOPMENT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DF4, -- ䷴
+ category="so",
+ description="HEXAGRAM FOR DEVELOPMENT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DF4,
},
[0x4DF5]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR THE MARRYING MAIDEN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DF5, -- ䷵
+ category="so",
+ description="HEXAGRAM FOR THE MARRYING MAIDEN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DF5,
},
[0x4DF6]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR ABUNDANCE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DF6, -- ䷶
+ category="so",
+ description="HEXAGRAM FOR ABUNDANCE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DF6,
},
[0x4DF7]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR THE WANDERER",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DF7, -- ䷷
+ category="so",
+ description="HEXAGRAM FOR THE WANDERER",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DF7,
},
[0x4DF8]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR THE GENTLE WIND",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DF8, -- ䷸
+ category="so",
+ description="HEXAGRAM FOR THE GENTLE WIND",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DF8,
},
[0x4DF9]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR THE JOYOUS LAKE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DF9, -- ䷹
+ category="so",
+ description="HEXAGRAM FOR THE JOYOUS LAKE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DF9,
},
[0x4DFA]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR DISPERSION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DFA, -- ䷺
+ category="so",
+ description="HEXAGRAM FOR DISPERSION",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DFA,
},
[0x4DFB]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR LIMITATION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DFB, -- ䷻
+ category="so",
+ description="HEXAGRAM FOR LIMITATION",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DFB,
},
[0x4DFC]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR INNER TRUTH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DFC, -- ䷼
+ category="so",
+ description="HEXAGRAM FOR INNER TRUTH",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DFC,
},
[0x4DFD]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR SMALL PREPONDERANCE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DFD, -- ䷽
+ category="so",
+ description="HEXAGRAM FOR SMALL PREPONDERANCE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DFD,
},
[0x4DFE]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR AFTER COMPLETION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DFE, -- ䷾
+ category="so",
+ description="HEXAGRAM FOR AFTER COMPLETION",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DFE,
},
[0x4DFF]={
- ["category"]="so",
- ["description"]="HEXAGRAM FOR BEFORE COMPLETION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x4DFF, -- ䷿
+ category="so",
+ description="HEXAGRAM FOR BEFORE COMPLETION",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x4DFF,
},
[0x4E00]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="<CJK Ideograph, First>",
- ["linebreak"]="id",
- ["unicodeslot"]=0x4E00, -- 一
- },
- [0x9FBB]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="<CJK Ideograph, Last>",
- ["linebreak"]="id",
- ["unicodeslot"]=0x9FBB, -- 龻
+ category="lo",
+ cjkwd="w",
+ description="<CJK Ideograph>",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x4E00,
+ range=0x9FBB,
},
[0xA000]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE IT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA000, -- ꀀ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE IT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA000,
},
[0xA001]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE IX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA001, -- ꀁ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE IX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA001,
},
[0xA002]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE I",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA002, -- ꀂ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE I",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA002,
},
[0xA003]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE IP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA003, -- ꀃ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE IP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA003,
},
[0xA004]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE IET",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA004, -- ꀄ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE IET",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA004,
},
[0xA005]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE IEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA005, -- ꀅ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE IEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA005,
},
[0xA006]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE IE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA006, -- ꀆ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE IE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA006,
},
[0xA007]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE IEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA007, -- ꀇ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE IEP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA007,
},
[0xA008]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE AT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA008, -- ꀈ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE AT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA008,
},
[0xA009]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE AX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA009, -- ꀉ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE AX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA009,
},
[0xA00A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE A",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA00A, -- ꀊ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE A",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA00A,
},
[0xA00B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE AP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA00B, -- ꀋ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE AP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA00B,
},
[0xA00C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE UOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA00C, -- ꀌ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE UOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA00C,
},
[0xA00D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE UO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA00D, -- ꀍ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE UO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA00D,
},
[0xA00E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE UOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA00E, -- ꀎ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE UOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA00E,
},
[0xA00F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE OT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA00F, -- ꀏ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE OT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA00F,
},
[0xA010]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE OX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA010, -- ꀐ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE OX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA010,
},
[0xA011]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE O",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA011, -- ꀑ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE O",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA011,
},
[0xA012]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE OP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA012, -- ꀒ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE OP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA012,
},
[0xA013]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE EX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA013, -- ꀓ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE EX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA013,
},
[0xA014]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE E",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA014, -- ꀔ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE E",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA014,
},
[0xA015]={
- ["category"]="lm",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE WU",
- ["linebreak"]="ns",
- ["unicodeslot"]=0xA015, -- ꀕ
+ category="lm",
+ cjkwd="w",
+ description="YI SYLLABLE WU",
+ direction="l",
+ linebreak="ns",
+ unicodeslot=0xA015,
},
[0xA016]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BIT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA016, -- ꀖ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BIT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA016,
},
[0xA017]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BIX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA017, -- ꀗ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BIX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA017,
},
[0xA018]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BI",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA018, -- ꀘ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BI",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA018,
},
[0xA019]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BIP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA019, -- ꀙ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BIP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA019,
},
[0xA01A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BIET",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA01A, -- ꀚ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BIET",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA01A,
},
[0xA01B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BIEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA01B, -- ꀛ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BIEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA01B,
},
[0xA01C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BIE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA01C, -- ꀜ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BIE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA01C,
},
[0xA01D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BIEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA01D, -- ꀝ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BIEP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA01D,
},
[0xA01E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BAT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA01E, -- ꀞ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BAT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA01E,
},
[0xA01F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BAX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA01F, -- ꀟ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BAX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA01F,
},
[0xA020]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BA",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA020, -- ꀠ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BA",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA020,
},
[0xA021]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BAP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA021, -- ꀡ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BAP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA021,
},
[0xA022]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BUOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA022, -- ꀢ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BUOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA022,
},
[0xA023]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BUO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA023, -- ꀣ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BUO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA023,
},
[0xA024]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BUOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA024, -- ꀤ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BUOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA024,
},
[0xA025]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BOT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA025, -- ꀥ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BOT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA025,
},
[0xA026]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA026, -- ꀦ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA026,
},
[0xA027]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA027, -- ꀧ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA027,
},
[0xA028]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA028, -- ꀨ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA028,
},
[0xA029]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA029, -- ꀩ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA029,
},
[0xA02A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA02A, -- ꀪ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA02A,
},
[0xA02B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA02B, -- ꀫ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BEP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA02B,
},
[0xA02C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BUT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA02C, -- ꀬ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BUT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA02C,
},
[0xA02D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BUX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA02D, -- ꀭ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BUX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA02D,
},
[0xA02E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BU",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA02E, -- ꀮ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BU",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA02E,
},
[0xA02F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BUP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA02F, -- ꀯ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BUP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA02F,
},
[0xA030]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BURX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA030, -- ꀰ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BURX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA030,
},
[0xA031]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BUR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA031, -- ꀱ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BUR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA031,
},
[0xA032]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BYT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA032, -- ꀲ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BYT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA032,
},
[0xA033]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BYX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA033, -- ꀳ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BYX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA033,
},
[0xA034]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BY",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA034, -- ꀴ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BY",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA034,
},
[0xA035]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BYP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA035, -- ꀵ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BYP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA035,
},
[0xA036]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BYRX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA036, -- ꀶ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BYRX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA036,
},
[0xA037]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BYR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA037, -- ꀷ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BYR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA037,
},
[0xA038]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE PIT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA038, -- ꀸ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE PIT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA038,
},
[0xA039]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE PIX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA039, -- ꀹ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE PIX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA039,
},
[0xA03A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE PI",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA03A, -- ꀺ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE PI",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA03A,
},
[0xA03B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE PIP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA03B, -- ꀻ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE PIP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA03B,
},
[0xA03C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE PIEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA03C, -- ꀼ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE PIEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA03C,
},
[0xA03D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE PIE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA03D, -- ꀽ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE PIE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA03D,
},
[0xA03E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE PIEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA03E, -- ꀾ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE PIEP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA03E,
},
[0xA03F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE PAT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA03F, -- ꀿ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE PAT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA03F,
},
[0xA040]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE PAX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA040, -- ꁀ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE PAX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA040,
},
[0xA041]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE PA",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA041, -- ꁁ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE PA",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA041,
},
[0xA042]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE PAP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA042, -- ꁂ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE PAP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA042,
},
[0xA043]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE PUOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA043, -- ꁃ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE PUOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA043,
},
[0xA044]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE PUO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA044, -- ꁄ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE PUO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA044,
},
[0xA045]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE PUOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA045, -- ꁅ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE PUOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA045,
},
[0xA046]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE POT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA046, -- ꁆ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE POT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA046,
},
[0xA047]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE POX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA047, -- ꁇ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE POX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA047,
},
[0xA048]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE PO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA048, -- ꁈ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE PO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA048,
},
[0xA049]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE POP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA049, -- ꁉ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE POP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA049,
},
[0xA04A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE PUT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA04A, -- ꁊ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE PUT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA04A,
},
[0xA04B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE PUX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA04B, -- ꁋ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE PUX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA04B,
},
[0xA04C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE PU",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA04C, -- ꁌ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE PU",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA04C,
},
[0xA04D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE PUP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA04D, -- ꁍ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE PUP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA04D,
},
[0xA04E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE PURX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA04E, -- ꁎ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE PURX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA04E,
},
[0xA04F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE PUR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA04F, -- ꁏ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE PUR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA04F,
},
[0xA050]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE PYT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA050, -- ꁐ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE PYT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA050,
},
[0xA051]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE PYX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA051, -- ꁑ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE PYX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA051,
},
[0xA052]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE PY",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA052, -- ꁒ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE PY",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA052,
},
[0xA053]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE PYP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA053, -- ꁓ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE PYP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA053,
},
[0xA054]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE PYRX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA054, -- ꁔ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE PYRX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA054,
},
[0xA055]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE PYR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA055, -- ꁕ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE PYR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA055,
},
[0xA056]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BBIT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA056, -- ꁖ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BBIT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA056,
},
[0xA057]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BBIX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA057, -- ꁗ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BBIX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA057,
},
[0xA058]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BBI",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA058, -- ꁘ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BBI",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA058,
},
[0xA059]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BBIP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA059, -- ꁙ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BBIP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA059,
},
[0xA05A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BBIET",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA05A, -- ꁚ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BBIET",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA05A,
},
[0xA05B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BBIEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA05B, -- ꁛ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BBIEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA05B,
},
[0xA05C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BBIE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA05C, -- ꁜ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BBIE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA05C,
},
[0xA05D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BBIEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA05D, -- ꁝ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BBIEP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA05D,
},
[0xA05E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BBAT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA05E, -- ꁞ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BBAT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA05E,
},
[0xA05F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BBAX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA05F, -- ꁟ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BBAX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA05F,
},
[0xA060]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BBA",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA060, -- ꁠ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BBA",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA060,
},
[0xA061]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BBAP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA061, -- ꁡ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BBAP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA061,
},
[0xA062]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BBUOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA062, -- ꁢ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BBUOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA062,
},
[0xA063]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BBUO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA063, -- ꁣ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BBUO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA063,
},
[0xA064]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BBUOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA064, -- ꁤ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BBUOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA064,
},
[0xA065]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BBOT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA065, -- ꁥ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BBOT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA065,
},
[0xA066]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BBOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA066, -- ꁦ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BBOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA066,
},
[0xA067]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BBO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA067, -- ꁧ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BBO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA067,
},
[0xA068]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BBOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA068, -- ꁨ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BBOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA068,
},
[0xA069]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BBEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA069, -- ꁩ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BBEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA069,
},
[0xA06A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BBE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA06A, -- ꁪ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BBE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA06A,
},
[0xA06B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BBEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA06B, -- ꁫ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BBEP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA06B,
},
[0xA06C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BBUT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA06C, -- ꁬ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BBUT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA06C,
},
[0xA06D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BBUX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA06D, -- ꁭ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BBUX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA06D,
},
[0xA06E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BBU",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA06E, -- ꁮ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BBU",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA06E,
},
[0xA06F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BBUP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA06F, -- ꁯ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BBUP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA06F,
},
[0xA070]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BBURX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA070, -- ꁰ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BBURX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA070,
},
[0xA071]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BBUR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA071, -- ꁱ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BBUR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA071,
},
[0xA072]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BBYT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA072, -- ꁲ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BBYT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA072,
},
[0xA073]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BBYX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA073, -- ꁳ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BBYX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA073,
},
[0xA074]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BBY",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA074, -- ꁴ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BBY",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA074,
},
[0xA075]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE BBYP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA075, -- ꁵ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE BBYP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA075,
},
[0xA076]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NBIT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA076, -- ꁶ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NBIT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA076,
},
[0xA077]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NBIX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA077, -- ꁷ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NBIX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA077,
},
[0xA078]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NBI",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA078, -- ꁸ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NBI",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA078,
},
[0xA079]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NBIP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA079, -- ꁹ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NBIP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA079,
},
[0xA07A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NBIEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA07A, -- ꁺ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NBIEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA07A,
},
[0xA07B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NBIE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA07B, -- ꁻ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NBIE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA07B,
},
[0xA07C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NBIEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA07C, -- ꁼ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NBIEP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA07C,
},
[0xA07D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NBAT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA07D, -- ꁽ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NBAT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA07D,
},
[0xA07E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NBAX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA07E, -- ꁾ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NBAX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA07E,
},
[0xA07F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NBA",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA07F, -- ꁿ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NBA",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA07F,
},
[0xA080]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NBAP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA080, -- ꂀ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NBAP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA080,
},
[0xA081]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NBOT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA081, -- ꂁ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NBOT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA081,
},
[0xA082]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NBOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA082, -- ꂂ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NBOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA082,
},
[0xA083]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NBO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA083, -- ꂃ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NBO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA083,
},
[0xA084]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NBOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA084, -- ꂄ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NBOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA084,
},
[0xA085]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NBUT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA085, -- ꂅ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NBUT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA085,
},
[0xA086]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NBUX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA086, -- ꂆ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NBUX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA086,
},
[0xA087]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NBU",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA087, -- ꂇ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NBU",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA087,
},
[0xA088]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NBUP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA088, -- ꂈ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NBUP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA088,
},
[0xA089]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NBURX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA089, -- ꂉ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NBURX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA089,
},
[0xA08A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NBUR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA08A, -- ꂊ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NBUR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA08A,
},
[0xA08B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NBYT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA08B, -- ꂋ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NBYT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA08B,
},
[0xA08C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NBYX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA08C, -- ꂌ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NBYX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA08C,
},
[0xA08D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NBY",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA08D, -- ꂍ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NBY",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA08D,
},
[0xA08E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NBYP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA08E, -- ꂎ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NBYP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA08E,
},
[0xA08F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NBYRX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA08F, -- ꂏ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NBYRX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA08F,
},
[0xA090]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NBYR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA090, -- ꂐ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NBYR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA090,
},
[0xA091]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HMIT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA091, -- ꂑ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HMIT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA091,
},
[0xA092]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HMIX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA092, -- ꂒ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HMIX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA092,
},
[0xA093]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HMI",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA093, -- ꂓ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HMI",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA093,
},
[0xA094]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HMIP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA094, -- ꂔ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HMIP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA094,
},
[0xA095]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HMIEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA095, -- ꂕ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HMIEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA095,
},
[0xA096]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HMIE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA096, -- ꂖ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HMIE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA096,
},
[0xA097]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HMIEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA097, -- ꂗ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HMIEP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA097,
},
[0xA098]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HMAT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA098, -- ꂘ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HMAT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA098,
},
[0xA099]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HMAX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA099, -- ꂙ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HMAX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA099,
},
[0xA09A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HMA",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA09A, -- ꂚ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HMA",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA09A,
},
[0xA09B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HMAP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA09B, -- ꂛ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HMAP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA09B,
},
[0xA09C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HMUOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA09C, -- ꂜ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HMUOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA09C,
},
[0xA09D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HMUO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA09D, -- ꂝ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HMUO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA09D,
},
[0xA09E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HMUOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA09E, -- ꂞ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HMUOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA09E,
},
[0xA09F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HMOT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA09F, -- ꂟ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HMOT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA09F,
},
[0xA0A0]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HMOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0A0, -- ꂠ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HMOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0A0,
},
[0xA0A1]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HMO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0A1, -- ꂡ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HMO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0A1,
},
[0xA0A2]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HMOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0A2, -- ꂢ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HMOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0A2,
},
[0xA0A3]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HMUT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0A3, -- ꂣ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HMUT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0A3,
},
[0xA0A4]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HMUX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0A4, -- ꂤ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HMUX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0A4,
},
[0xA0A5]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HMU",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0A5, -- ꂥ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HMU",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0A5,
},
[0xA0A6]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HMUP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0A6, -- ꂦ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HMUP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0A6,
},
[0xA0A7]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HMURX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0A7, -- ꂧ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HMURX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0A7,
},
[0xA0A8]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HMUR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0A8, -- ꂨ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HMUR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0A8,
},
[0xA0A9]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HMYX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0A9, -- ꂩ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HMYX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0A9,
},
[0xA0AA]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HMY",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0AA, -- ꂪ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HMY",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0AA,
},
[0xA0AB]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HMYP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0AB, -- ꂫ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HMYP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0AB,
},
[0xA0AC]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HMYRX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0AC, -- ꂬ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HMYRX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0AC,
},
[0xA0AD]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HMYR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0AD, -- ꂭ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HMYR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0AD,
},
[0xA0AE]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE MIT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0AE, -- ꂮ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE MIT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0AE,
},
[0xA0AF]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE MIX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0AF, -- ꂯ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE MIX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0AF,
},
[0xA0B0]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE MI",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0B0, -- ꂰ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE MI",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0B0,
},
[0xA0B1]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE MIP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0B1, -- ꂱ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE MIP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0B1,
},
[0xA0B2]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE MIEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0B2, -- ꂲ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE MIEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0B2,
},
[0xA0B3]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE MIE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0B3, -- ꂳ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE MIE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0B3,
},
[0xA0B4]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE MIEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0B4, -- ꂴ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE MIEP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0B4,
},
[0xA0B5]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE MAT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0B5, -- ꂵ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE MAT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0B5,
},
[0xA0B6]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE MAX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0B6, -- ꂶ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE MAX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0B6,
},
[0xA0B7]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE MA",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0B7, -- ꂷ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE MA",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0B7,
},
[0xA0B8]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE MAP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0B8, -- ꂸ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE MAP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0B8,
},
[0xA0B9]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE MUOT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0B9, -- ꂹ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE MUOT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0B9,
},
[0xA0BA]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE MUOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0BA, -- ꂺ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE MUOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0BA,
},
[0xA0BB]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE MUO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0BB, -- ꂻ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE MUO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0BB,
},
[0xA0BC]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE MUOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0BC, -- ꂼ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE MUOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0BC,
},
[0xA0BD]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE MOT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0BD, -- ꂽ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE MOT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0BD,
},
[0xA0BE]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE MOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0BE, -- ꂾ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE MOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0BE,
},
[0xA0BF]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE MO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0BF, -- ꂿ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE MO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0BF,
},
[0xA0C0]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE MOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0C0, -- ꃀ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE MOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0C0,
},
[0xA0C1]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE MEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0C1, -- ꃁ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE MEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0C1,
},
[0xA0C2]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ME",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0C2, -- ꃂ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ME",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0C2,
},
[0xA0C3]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE MUT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0C3, -- ꃃ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE MUT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0C3,
},
[0xA0C4]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE MUX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0C4, -- ꃄ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE MUX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0C4,
},
[0xA0C5]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE MU",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0C5, -- ꃅ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE MU",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0C5,
},
[0xA0C6]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE MUP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0C6, -- ꃆ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE MUP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0C6,
},
[0xA0C7]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE MURX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0C7, -- ꃇ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE MURX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0C7,
},
[0xA0C8]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE MUR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0C8, -- ꃈ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE MUR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0C8,
},
[0xA0C9]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE MYT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0C9, -- ꃉ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE MYT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0C9,
},
[0xA0CA]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE MYX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0CA, -- ꃊ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE MYX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0CA,
},
[0xA0CB]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE MY",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0CB, -- ꃋ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE MY",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0CB,
},
[0xA0CC]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE MYP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0CC, -- ꃌ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE MYP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0CC,
},
[0xA0CD]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE FIT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0CD, -- ꃍ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE FIT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0CD,
},
[0xA0CE]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE FIX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0CE, -- ꃎ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE FIX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0CE,
},
[0xA0CF]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE FI",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0CF, -- ꃏ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE FI",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0CF,
},
[0xA0D0]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE FIP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0D0, -- ꃐ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE FIP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0D0,
},
[0xA0D1]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE FAT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0D1, -- ꃑ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE FAT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0D1,
},
[0xA0D2]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE FAX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0D2, -- ꃒ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE FAX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0D2,
},
[0xA0D3]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE FA",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0D3, -- ꃓ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE FA",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0D3,
},
[0xA0D4]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE FAP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0D4, -- ꃔ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE FAP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0D4,
},
[0xA0D5]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE FOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0D5, -- ꃕ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE FOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0D5,
},
[0xA0D6]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE FO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0D6, -- ꃖ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE FO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0D6,
},
[0xA0D7]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE FOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0D7, -- ꃗ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE FOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0D7,
},
[0xA0D8]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE FUT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0D8, -- ꃘ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE FUT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0D8,
},
[0xA0D9]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE FUX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0D9, -- ꃙ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE FUX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0D9,
},
[0xA0DA]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE FU",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0DA, -- ꃚ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE FU",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0DA,
},
[0xA0DB]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE FUP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0DB, -- ꃛ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE FUP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0DB,
},
[0xA0DC]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE FURX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0DC, -- ꃜ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE FURX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0DC,
},
[0xA0DD]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE FUR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0DD, -- ꃝ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE FUR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0DD,
},
[0xA0DE]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE FYT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0DE, -- ꃞ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE FYT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0DE,
},
[0xA0DF]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE FYX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0DF, -- ꃟ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE FYX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0DF,
},
[0xA0E0]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE FY",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0E0, -- ꃠ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE FY",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0E0,
},
[0xA0E1]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE FYP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0E1, -- ꃡ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE FYP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0E1,
},
[0xA0E2]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE VIT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0E2, -- ꃢ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE VIT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0E2,
},
[0xA0E3]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE VIX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0E3, -- ꃣ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE VIX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0E3,
},
[0xA0E4]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE VI",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0E4, -- ꃤ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE VI",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0E4,
},
[0xA0E5]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE VIP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0E5, -- ꃥ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE VIP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0E5,
},
[0xA0E6]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE VIET",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0E6, -- ꃦ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE VIET",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0E6,
},
[0xA0E7]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE VIEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0E7, -- ꃧ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE VIEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0E7,
},
[0xA0E8]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE VIE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0E8, -- ꃨ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE VIE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0E8,
},
[0xA0E9]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE VIEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0E9, -- ꃩ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE VIEP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0E9,
},
[0xA0EA]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE VAT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0EA, -- ꃪ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE VAT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0EA,
},
[0xA0EB]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE VAX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0EB, -- ꃫ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE VAX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0EB,
},
[0xA0EC]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE VA",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0EC, -- ꃬ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE VA",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0EC,
},
[0xA0ED]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE VAP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0ED, -- ꃭ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE VAP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0ED,
},
[0xA0EE]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE VOT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0EE, -- ꃮ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE VOT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0EE,
},
[0xA0EF]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE VOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0EF, -- ꃯ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE VOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0EF,
},
[0xA0F0]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE VO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0F0, -- ꃰ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE VO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0F0,
},
[0xA0F1]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE VOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0F1, -- ꃱ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE VOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0F1,
},
[0xA0F2]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE VEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0F2, -- ꃲ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE VEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0F2,
},
[0xA0F3]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE VEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0F3, -- ꃳ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE VEP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0F3,
},
[0xA0F4]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE VUT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0F4, -- ꃴ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE VUT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0F4,
},
[0xA0F5]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE VUX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0F5, -- ꃵ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE VUX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0F5,
},
[0xA0F6]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE VU",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0F6, -- ꃶ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE VU",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0F6,
},
[0xA0F7]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE VUP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0F7, -- ꃷ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE VUP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0F7,
},
[0xA0F8]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE VURX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0F8, -- ꃸ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE VURX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0F8,
},
[0xA0F9]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE VUR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0F9, -- ꃹ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE VUR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0F9,
},
[0xA0FA]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE VYT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0FA, -- ꃺ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE VYT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0FA,
},
[0xA0FB]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE VYX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0FB, -- ꃻ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE VYX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0FB,
},
[0xA0FC]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE VY",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0FC, -- ꃼ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE VY",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0FC,
},
[0xA0FD]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE VYP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0FD, -- ꃽ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE VYP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0FD,
},
[0xA0FE]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE VYRX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0FE, -- ꃾ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE VYRX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0FE,
},
[0xA0FF]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE VYR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA0FF, -- ꃿ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE VYR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA0FF,
},
[0xA100]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE DIT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA100, -- ꄀ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE DIT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA100,
},
[0xA101]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE DIX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA101, -- ꄁ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE DIX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA101,
},
[0xA102]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE DI",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA102, -- ꄂ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE DI",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA102,
},
[0xA103]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE DIP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA103, -- ꄃ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE DIP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA103,
},
[0xA104]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE DIEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA104, -- ꄄ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE DIEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA104,
},
[0xA105]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE DIE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA105, -- ꄅ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE DIE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA105,
},
[0xA106]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE DIEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA106, -- ꄆ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE DIEP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA106,
},
[0xA107]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE DAT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA107, -- ꄇ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE DAT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA107,
},
[0xA108]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE DAX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA108, -- ꄈ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE DAX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA108,
},
[0xA109]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE DA",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA109, -- ꄉ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE DA",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA109,
},
[0xA10A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE DAP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA10A, -- ꄊ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE DAP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA10A,
},
[0xA10B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE DUOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA10B, -- ꄋ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE DUOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA10B,
},
[0xA10C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE DUO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA10C, -- ꄌ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE DUO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA10C,
},
[0xA10D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE DOT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA10D, -- ꄍ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE DOT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA10D,
},
[0xA10E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE DOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA10E, -- ꄎ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE DOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA10E,
},
[0xA10F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE DO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA10F, -- ꄏ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE DO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA10F,
},
[0xA110]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE DOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA110, -- ꄐ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE DOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA110,
},
[0xA111]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE DEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA111, -- ꄑ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE DEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA111,
},
[0xA112]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE DE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA112, -- ꄒ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE DE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA112,
},
[0xA113]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE DEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA113, -- ꄓ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE DEP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA113,
},
[0xA114]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE DUT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA114, -- ꄔ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE DUT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA114,
},
[0xA115]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE DUX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA115, -- ꄕ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE DUX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA115,
},
[0xA116]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE DU",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA116, -- ꄖ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE DU",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA116,
},
[0xA117]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE DUP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA117, -- ꄗ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE DUP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA117,
},
[0xA118]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE DURX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA118, -- ꄘ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE DURX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA118,
},
[0xA119]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE DUR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA119, -- ꄙ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE DUR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA119,
},
[0xA11A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE TIT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA11A, -- ꄚ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE TIT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA11A,
},
[0xA11B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE TIX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA11B, -- ꄛ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE TIX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA11B,
},
[0xA11C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE TI",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA11C, -- ꄜ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE TI",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA11C,
},
[0xA11D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE TIP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA11D, -- ꄝ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE TIP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA11D,
},
[0xA11E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE TIEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA11E, -- ꄞ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE TIEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA11E,
},
[0xA11F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE TIE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA11F, -- ꄟ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE TIE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA11F,
},
[0xA120]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE TIEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA120, -- ꄠ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE TIEP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA120,
},
[0xA121]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE TAT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA121, -- ꄡ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE TAT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA121,
},
[0xA122]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE TAX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA122, -- ꄢ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE TAX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA122,
},
[0xA123]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE TA",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA123, -- ꄣ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE TA",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA123,
},
[0xA124]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE TAP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA124, -- ꄤ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE TAP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA124,
},
[0xA125]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE TUOT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA125, -- ꄥ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE TUOT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA125,
},
[0xA126]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE TUOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA126, -- ꄦ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE TUOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA126,
},
[0xA127]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE TUO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA127, -- ꄧ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE TUO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA127,
},
[0xA128]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE TUOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA128, -- ꄨ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE TUOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA128,
},
[0xA129]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE TOT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA129, -- ꄩ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE TOT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA129,
},
[0xA12A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE TOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA12A, -- ꄪ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE TOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA12A,
},
[0xA12B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE TO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA12B, -- ꄫ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE TO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA12B,
},
[0xA12C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE TOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA12C, -- ꄬ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE TOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA12C,
},
[0xA12D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE TEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA12D, -- ꄭ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE TEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA12D,
},
[0xA12E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE TE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA12E, -- ꄮ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE TE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA12E,
},
[0xA12F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE TEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA12F, -- ꄯ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE TEP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA12F,
},
[0xA130]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE TUT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA130, -- ꄰ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE TUT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA130,
},
[0xA131]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE TUX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA131, -- ꄱ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE TUX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA131,
},
[0xA132]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE TU",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA132, -- ꄲ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE TU",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA132,
},
[0xA133]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE TUP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA133, -- ꄳ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE TUP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA133,
},
[0xA134]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE TURX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA134, -- ꄴ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE TURX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA134,
},
[0xA135]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE TUR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA135, -- ꄵ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE TUR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA135,
},
[0xA136]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE DDIT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA136, -- ꄶ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE DDIT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA136,
},
[0xA137]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE DDIX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA137, -- ꄷ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE DDIX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA137,
},
[0xA138]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE DDI",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA138, -- ꄸ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE DDI",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA138,
},
[0xA139]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE DDIP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA139, -- ꄹ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE DDIP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA139,
},
[0xA13A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE DDIEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA13A, -- ꄺ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE DDIEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA13A,
},
[0xA13B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE DDIE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA13B, -- ꄻ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE DDIE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA13B,
},
[0xA13C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE DDIEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA13C, -- ꄼ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE DDIEP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA13C,
},
[0xA13D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE DDAT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA13D, -- ꄽ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE DDAT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA13D,
},
[0xA13E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE DDAX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA13E, -- ꄾ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE DDAX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA13E,
},
[0xA13F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE DDA",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA13F, -- ꄿ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE DDA",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA13F,
},
[0xA140]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE DDAP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA140, -- ꅀ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE DDAP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA140,
},
[0xA141]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE DDUOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA141, -- ꅁ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE DDUOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA141,
},
[0xA142]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE DDUO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA142, -- ꅂ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE DDUO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA142,
},
[0xA143]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE DDUOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA143, -- ꅃ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE DDUOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA143,
},
[0xA144]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE DDOT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA144, -- ꅄ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE DDOT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA144,
},
[0xA145]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE DDOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA145, -- ꅅ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE DDOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA145,
},
[0xA146]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE DDO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA146, -- ꅆ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE DDO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA146,
},
[0xA147]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE DDOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA147, -- ꅇ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE DDOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA147,
},
[0xA148]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE DDEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA148, -- ꅈ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE DDEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA148,
},
[0xA149]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE DDE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA149, -- ꅉ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE DDE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA149,
},
[0xA14A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE DDEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA14A, -- ꅊ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE DDEP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA14A,
},
[0xA14B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE DDUT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA14B, -- ꅋ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE DDUT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA14B,
},
[0xA14C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE DDUX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA14C, -- ꅌ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE DDUX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA14C,
},
[0xA14D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE DDU",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA14D, -- ꅍ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE DDU",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA14D,
},
[0xA14E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE DDUP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA14E, -- ꅎ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE DDUP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA14E,
},
[0xA14F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE DDURX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA14F, -- ꅏ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE DDURX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA14F,
},
[0xA150]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE DDUR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA150, -- ꅐ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE DDUR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA150,
},
[0xA151]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NDIT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA151, -- ꅑ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NDIT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA151,
},
[0xA152]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NDIX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA152, -- ꅒ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NDIX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA152,
},
[0xA153]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NDI",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA153, -- ꅓ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NDI",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA153,
},
[0xA154]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NDIP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA154, -- ꅔ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NDIP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA154,
},
[0xA155]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NDIEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA155, -- ꅕ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NDIEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA155,
},
[0xA156]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NDIE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA156, -- ꅖ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NDIE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA156,
},
[0xA157]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NDAT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA157, -- ꅗ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NDAT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA157,
},
[0xA158]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NDAX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA158, -- ꅘ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NDAX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA158,
},
[0xA159]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NDA",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA159, -- ꅙ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NDA",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA159,
},
[0xA15A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NDAP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA15A, -- ꅚ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NDAP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA15A,
},
[0xA15B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NDOT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA15B, -- ꅛ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NDOT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA15B,
},
[0xA15C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NDOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA15C, -- ꅜ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NDOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA15C,
},
[0xA15D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NDO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA15D, -- ꅝ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NDO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA15D,
},
[0xA15E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NDOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA15E, -- ꅞ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NDOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA15E,
},
[0xA15F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NDEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA15F, -- ꅟ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NDEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA15F,
},
[0xA160]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NDE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA160, -- ꅠ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NDE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA160,
},
[0xA161]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NDEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA161, -- ꅡ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NDEP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA161,
},
[0xA162]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NDUT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA162, -- ꅢ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NDUT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA162,
},
[0xA163]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NDUX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA163, -- ꅣ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NDUX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA163,
},
[0xA164]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NDU",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA164, -- ꅤ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NDU",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA164,
},
[0xA165]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NDUP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA165, -- ꅥ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NDUP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA165,
},
[0xA166]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NDURX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA166, -- ꅦ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NDURX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA166,
},
[0xA167]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NDUR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA167, -- ꅧ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NDUR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA167,
},
[0xA168]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HNIT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA168, -- ꅨ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HNIT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA168,
},
[0xA169]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HNIX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA169, -- ꅩ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HNIX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA169,
},
[0xA16A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HNI",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA16A, -- ꅪ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HNI",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA16A,
},
[0xA16B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HNIP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA16B, -- ꅫ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HNIP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA16B,
},
[0xA16C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HNIET",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA16C, -- ꅬ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HNIET",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA16C,
},
[0xA16D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HNIEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA16D, -- ꅭ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HNIEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA16D,
},
[0xA16E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HNIE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA16E, -- ꅮ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HNIE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA16E,
},
[0xA16F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HNIEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA16F, -- ꅯ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HNIEP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA16F,
},
[0xA170]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HNAT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA170, -- ꅰ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HNAT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA170,
},
[0xA171]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HNAX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA171, -- ꅱ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HNAX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA171,
},
[0xA172]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HNA",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA172, -- ꅲ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HNA",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA172,
},
[0xA173]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HNAP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA173, -- ꅳ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HNAP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA173,
},
[0xA174]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HNUOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA174, -- ꅴ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HNUOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA174,
},
[0xA175]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HNUO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA175, -- ꅵ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HNUO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA175,
},
[0xA176]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HNOT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA176, -- ꅶ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HNOT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA176,
},
[0xA177]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HNOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA177, -- ꅷ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HNOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA177,
},
[0xA178]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HNOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA178, -- ꅸ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HNOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA178,
},
[0xA179]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HNEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA179, -- ꅹ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HNEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA179,
},
[0xA17A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HNE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA17A, -- ꅺ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HNE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA17A,
},
[0xA17B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HNEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA17B, -- ꅻ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HNEP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA17B,
},
[0xA17C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HNUT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA17C, -- ꅼ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HNUT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA17C,
},
[0xA17D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NIT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA17D, -- ꅽ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NIT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA17D,
},
[0xA17E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NIX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA17E, -- ꅾ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NIX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA17E,
},
[0xA17F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NI",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA17F, -- ꅿ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NI",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA17F,
},
[0xA180]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NIP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA180, -- ꆀ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NIP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA180,
},
[0xA181]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NIEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA181, -- ꆁ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NIEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA181,
},
[0xA182]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NIE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA182, -- ꆂ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NIE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA182,
},
[0xA183]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NIEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA183, -- ꆃ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NIEP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA183,
},
[0xA184]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NAX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA184, -- ꆄ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NAX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA184,
},
[0xA185]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NA",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA185, -- ꆅ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NA",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA185,
},
[0xA186]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NAP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA186, -- ꆆ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NAP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA186,
},
[0xA187]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NUOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA187, -- ꆇ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NUOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA187,
},
[0xA188]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NUO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA188, -- ꆈ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NUO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA188,
},
[0xA189]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NUOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA189, -- ꆉ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NUOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA189,
},
[0xA18A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NOT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA18A, -- ꆊ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NOT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA18A,
},
[0xA18B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA18B, -- ꆋ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA18B,
},
[0xA18C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA18C, -- ꆌ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA18C,
},
[0xA18D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA18D, -- ꆍ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA18D,
},
[0xA18E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA18E, -- ꆎ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA18E,
},
[0xA18F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA18F, -- ꆏ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA18F,
},
[0xA190]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA190, -- ꆐ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NEP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA190,
},
[0xA191]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NUT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA191, -- ꆑ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NUT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA191,
},
[0xA192]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NUX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA192, -- ꆒ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NUX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA192,
},
[0xA193]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NU",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA193, -- ꆓ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NU",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA193,
},
[0xA194]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NUP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA194, -- ꆔ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NUP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA194,
},
[0xA195]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NURX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA195, -- ꆕ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NURX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA195,
},
[0xA196]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NUR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA196, -- ꆖ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NUR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA196,
},
[0xA197]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HLIT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA197, -- ꆗ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HLIT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA197,
},
[0xA198]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HLIX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA198, -- ꆘ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HLIX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA198,
},
[0xA199]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HLI",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA199, -- ꆙ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HLI",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA199,
},
[0xA19A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HLIP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA19A, -- ꆚ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HLIP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA19A,
},
[0xA19B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HLIEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA19B, -- ꆛ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HLIEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA19B,
},
[0xA19C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HLIE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA19C, -- ꆜ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HLIE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA19C,
},
[0xA19D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HLIEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA19D, -- ꆝ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HLIEP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA19D,
},
[0xA19E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HLAT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA19E, -- ꆞ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HLAT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA19E,
},
[0xA19F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HLAX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA19F, -- ꆟ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HLAX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA19F,
},
[0xA1A0]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HLA",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1A0, -- ꆠ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HLA",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1A0,
},
[0xA1A1]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HLAP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1A1, -- ꆡ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HLAP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1A1,
},
[0xA1A2]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HLUOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1A2, -- ꆢ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HLUOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1A2,
},
[0xA1A3]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HLUO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1A3, -- ꆣ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HLUO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1A3,
},
[0xA1A4]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HLUOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1A4, -- ꆤ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HLUOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1A4,
},
[0xA1A5]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HLOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1A5, -- ꆥ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HLOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1A5,
},
[0xA1A6]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HLO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1A6, -- ꆦ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HLO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1A6,
},
[0xA1A7]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HLOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1A7, -- ꆧ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HLOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1A7,
},
[0xA1A8]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HLEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1A8, -- ꆨ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HLEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1A8,
},
[0xA1A9]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HLE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1A9, -- ꆩ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HLE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1A9,
},
[0xA1AA]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HLEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1AA, -- ꆪ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HLEP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1AA,
},
[0xA1AB]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HLUT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1AB, -- ꆫ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HLUT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1AB,
},
[0xA1AC]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HLUX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1AC, -- ꆬ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HLUX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1AC,
},
[0xA1AD]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HLU",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1AD, -- ꆭ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HLU",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1AD,
},
[0xA1AE]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HLUP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1AE, -- ꆮ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HLUP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1AE,
},
[0xA1AF]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HLURX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1AF, -- ꆯ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HLURX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1AF,
},
[0xA1B0]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HLUR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1B0, -- ꆰ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HLUR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1B0,
},
[0xA1B1]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HLYT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1B1, -- ꆱ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HLYT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1B1,
},
[0xA1B2]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HLYX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1B2, -- ꆲ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HLYX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1B2,
},
[0xA1B3]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HLY",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1B3, -- ꆳ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HLY",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1B3,
},
[0xA1B4]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HLYP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1B4, -- ꆴ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HLYP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1B4,
},
[0xA1B5]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HLYRX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1B5, -- ꆵ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HLYRX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1B5,
},
[0xA1B6]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HLYR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1B6, -- ꆶ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HLYR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1B6,
},
[0xA1B7]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE LIT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1B7, -- ꆷ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE LIT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1B7,
},
[0xA1B8]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE LIX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1B8, -- ꆸ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE LIX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1B8,
},
[0xA1B9]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE LI",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1B9, -- ꆹ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE LI",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1B9,
},
[0xA1BA]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE LIP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1BA, -- ꆺ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE LIP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1BA,
},
[0xA1BB]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE LIET",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1BB, -- ꆻ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE LIET",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1BB,
},
[0xA1BC]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE LIEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1BC, -- ꆼ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE LIEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1BC,
},
[0xA1BD]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE LIE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1BD, -- ꆽ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE LIE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1BD,
},
[0xA1BE]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE LIEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1BE, -- ꆾ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE LIEP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1BE,
},
[0xA1BF]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE LAT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1BF, -- ꆿ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE LAT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1BF,
},
[0xA1C0]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE LAX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1C0, -- ꇀ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE LAX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1C0,
},
[0xA1C1]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE LA",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1C1, -- ꇁ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE LA",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1C1,
},
[0xA1C2]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE LAP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1C2, -- ꇂ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE LAP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1C2,
},
[0xA1C3]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE LUOT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1C3, -- ꇃ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE LUOT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1C3,
},
[0xA1C4]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE LUOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1C4, -- ꇄ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE LUOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1C4,
},
[0xA1C5]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE LUO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1C5, -- ꇅ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE LUO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1C5,
},
[0xA1C6]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE LUOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1C6, -- ꇆ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE LUOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1C6,
},
[0xA1C7]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE LOT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1C7, -- ꇇ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE LOT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1C7,
},
[0xA1C8]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE LOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1C8, -- ꇈ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE LOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1C8,
},
[0xA1C9]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE LO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1C9, -- ꇉ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE LO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1C9,
},
[0xA1CA]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE LOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1CA, -- ꇊ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE LOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1CA,
},
[0xA1CB]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE LEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1CB, -- ꇋ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE LEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1CB,
},
[0xA1CC]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE LE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1CC, -- ꇌ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE LE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1CC,
},
[0xA1CD]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE LEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1CD, -- ꇍ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE LEP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1CD,
},
[0xA1CE]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE LUT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1CE, -- ꇎ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE LUT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1CE,
},
[0xA1CF]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE LUX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1CF, -- ꇏ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE LUX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1CF,
},
[0xA1D0]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE LU",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1D0, -- ꇐ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE LU",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1D0,
},
[0xA1D1]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE LUP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1D1, -- ꇑ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE LUP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1D1,
},
[0xA1D2]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE LURX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1D2, -- ꇒ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE LURX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1D2,
},
[0xA1D3]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE LUR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1D3, -- ꇓ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE LUR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1D3,
},
[0xA1D4]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE LYT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1D4, -- ꇔ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE LYT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1D4,
},
[0xA1D5]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE LYX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1D5, -- ꇕ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE LYX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1D5,
},
[0xA1D6]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE LY",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1D6, -- ꇖ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE LY",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1D6,
},
[0xA1D7]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE LYP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1D7, -- ꇗ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE LYP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1D7,
},
[0xA1D8]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE LYRX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1D8, -- ꇘ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE LYRX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1D8,
},
[0xA1D9]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE LYR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1D9, -- ꇙ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE LYR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1D9,
},
[0xA1DA]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE GIT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1DA, -- ꇚ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE GIT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1DA,
},
[0xA1DB]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE GIX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1DB, -- ꇛ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE GIX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1DB,
},
[0xA1DC]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE GI",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1DC, -- ꇜ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE GI",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1DC,
},
[0xA1DD]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE GIP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1DD, -- ꇝ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE GIP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1DD,
},
[0xA1DE]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE GIET",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1DE, -- ꇞ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE GIET",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1DE,
},
[0xA1DF]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE GIEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1DF, -- ꇟ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE GIEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1DF,
},
[0xA1E0]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE GIE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1E0, -- ꇠ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE GIE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1E0,
},
[0xA1E1]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE GIEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1E1, -- ꇡ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE GIEP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1E1,
},
[0xA1E2]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE GAT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1E2, -- ꇢ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE GAT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1E2,
},
[0xA1E3]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE GAX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1E3, -- ꇣ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE GAX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1E3,
},
[0xA1E4]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE GA",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1E4, -- ꇤ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE GA",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1E4,
},
[0xA1E5]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE GAP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1E5, -- ꇥ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE GAP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1E5,
},
[0xA1E6]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE GUOT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1E6, -- ꇦ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE GUOT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1E6,
},
[0xA1E7]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE GUOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1E7, -- ꇧ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE GUOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1E7,
},
[0xA1E8]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE GUO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1E8, -- ꇨ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE GUO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1E8,
},
[0xA1E9]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE GUOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1E9, -- ꇩ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE GUOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1E9,
},
[0xA1EA]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE GOT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1EA, -- ꇪ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE GOT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1EA,
},
[0xA1EB]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE GOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1EB, -- ꇫ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE GOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1EB,
},
[0xA1EC]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE GO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1EC, -- ꇬ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE GO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1EC,
},
[0xA1ED]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE GOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1ED, -- ꇭ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE GOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1ED,
},
[0xA1EE]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE GET",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1EE, -- ꇮ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE GET",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1EE,
},
[0xA1EF]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE GEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1EF, -- ꇯ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE GEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1EF,
},
[0xA1F0]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE GE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1F0, -- ꇰ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE GE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1F0,
},
[0xA1F1]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE GEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1F1, -- ꇱ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE GEP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1F1,
},
[0xA1F2]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE GUT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1F2, -- ꇲ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE GUT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1F2,
},
[0xA1F3]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE GUX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1F3, -- ꇳ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE GUX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1F3,
},
[0xA1F4]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE GU",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1F4, -- ꇴ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE GU",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1F4,
},
[0xA1F5]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE GUP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1F5, -- ꇵ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE GUP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1F5,
},
[0xA1F6]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE GURX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1F6, -- ꇶ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE GURX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1F6,
},
[0xA1F7]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE GUR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1F7, -- ꇷ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE GUR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1F7,
},
[0xA1F8]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE KIT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1F8, -- ꇸ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE KIT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1F8,
},
[0xA1F9]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE KIX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1F9, -- ꇹ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE KIX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1F9,
},
[0xA1FA]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE KI",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1FA, -- ꇺ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE KI",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1FA,
},
[0xA1FB]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE KIP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1FB, -- ꇻ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE KIP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1FB,
},
[0xA1FC]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE KIEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1FC, -- ꇼ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE KIEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1FC,
},
[0xA1FD]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE KIE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1FD, -- ꇽ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE KIE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1FD,
},
[0xA1FE]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE KIEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1FE, -- ꇾ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE KIEP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1FE,
},
[0xA1FF]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE KAT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA1FF, -- ꇿ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE KAT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA1FF,
},
[0xA200]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE KAX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA200, -- ꈀ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE KAX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA200,
},
[0xA201]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE KA",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA201, -- ꈁ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE KA",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA201,
},
[0xA202]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE KAP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA202, -- ꈂ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE KAP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA202,
},
[0xA203]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE KUOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA203, -- ꈃ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE KUOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA203,
},
[0xA204]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE KUO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA204, -- ꈄ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE KUO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA204,
},
[0xA205]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE KUOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA205, -- ꈅ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE KUOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA205,
},
[0xA206]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE KOT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA206, -- ꈆ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE KOT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA206,
},
[0xA207]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE KOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA207, -- ꈇ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE KOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA207,
},
[0xA208]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE KO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA208, -- ꈈ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE KO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA208,
},
[0xA209]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE KOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA209, -- ꈉ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE KOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA209,
},
[0xA20A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE KET",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA20A, -- ꈊ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE KET",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA20A,
},
[0xA20B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE KEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA20B, -- ꈋ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE KEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA20B,
},
[0xA20C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE KE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA20C, -- ꈌ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE KE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA20C,
},
[0xA20D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE KEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA20D, -- ꈍ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE KEP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA20D,
},
[0xA20E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE KUT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA20E, -- ꈎ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE KUT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA20E,
},
[0xA20F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE KUX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA20F, -- ꈏ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE KUX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA20F,
},
[0xA210]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE KU",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA210, -- ꈐ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE KU",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA210,
},
[0xA211]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE KUP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA211, -- ꈑ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE KUP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA211,
},
[0xA212]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE KURX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA212, -- ꈒ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE KURX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA212,
},
[0xA213]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE KUR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA213, -- ꈓ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE KUR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA213,
},
[0xA214]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE GGIT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA214, -- ꈔ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE GGIT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA214,
},
[0xA215]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE GGIX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA215, -- ꈕ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE GGIX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA215,
},
[0xA216]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE GGI",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA216, -- ꈖ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE GGI",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA216,
},
[0xA217]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE GGIEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA217, -- ꈗ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE GGIEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA217,
},
[0xA218]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE GGIE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA218, -- ꈘ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE GGIE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA218,
},
[0xA219]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE GGIEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA219, -- ꈙ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE GGIEP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA219,
},
[0xA21A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE GGAT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA21A, -- ꈚ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE GGAT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA21A,
},
[0xA21B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE GGAX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA21B, -- ꈛ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE GGAX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA21B,
},
[0xA21C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE GGA",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA21C, -- ꈜ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE GGA",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA21C,
},
[0xA21D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE GGAP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA21D, -- ꈝ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE GGAP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA21D,
},
[0xA21E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE GGUOT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA21E, -- ꈞ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE GGUOT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA21E,
},
[0xA21F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE GGUOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA21F, -- ꈟ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE GGUOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA21F,
},
[0xA220]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE GGUO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA220, -- ꈠ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE GGUO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA220,
},
[0xA221]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE GGUOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA221, -- ꈡ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE GGUOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA221,
},
[0xA222]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE GGOT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA222, -- ꈢ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE GGOT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA222,
},
[0xA223]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE GGOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA223, -- ꈣ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE GGOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA223,
},
[0xA224]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE GGO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA224, -- ꈤ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE GGO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA224,
},
[0xA225]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE GGOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA225, -- ꈥ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE GGOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA225,
},
[0xA226]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE GGET",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA226, -- ꈦ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE GGET",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA226,
},
[0xA227]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE GGEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA227, -- ꈧ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE GGEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA227,
},
[0xA228]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE GGE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA228, -- ꈨ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE GGE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA228,
},
[0xA229]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE GGEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA229, -- ꈩ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE GGEP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA229,
},
[0xA22A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE GGUT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA22A, -- ꈪ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE GGUT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA22A,
},
[0xA22B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE GGUX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA22B, -- ꈫ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE GGUX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA22B,
},
[0xA22C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE GGU",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA22C, -- ꈬ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE GGU",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA22C,
},
[0xA22D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE GGUP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA22D, -- ꈭ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE GGUP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA22D,
},
[0xA22E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE GGURX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA22E, -- ꈮ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE GGURX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA22E,
},
[0xA22F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE GGUR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA22F, -- ꈯ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE GGUR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA22F,
},
[0xA230]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE MGIEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA230, -- ꈰ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE MGIEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA230,
},
[0xA231]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE MGIE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA231, -- ꈱ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE MGIE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA231,
},
[0xA232]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE MGAT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA232, -- ꈲ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE MGAT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA232,
},
[0xA233]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE MGAX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA233, -- ꈳ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE MGAX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA233,
},
[0xA234]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE MGA",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA234, -- ꈴ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE MGA",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA234,
},
[0xA235]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE MGAP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA235, -- ꈵ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE MGAP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA235,
},
[0xA236]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE MGUOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA236, -- ꈶ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE MGUOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA236,
},
[0xA237]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE MGUO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA237, -- ꈷ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE MGUO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA237,
},
[0xA238]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE MGUOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA238, -- ꈸ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE MGUOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA238,
},
[0xA239]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE MGOT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA239, -- ꈹ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE MGOT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA239,
},
[0xA23A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE MGOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA23A, -- ꈺ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE MGOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA23A,
},
[0xA23B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE MGO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA23B, -- ꈻ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE MGO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA23B,
},
[0xA23C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE MGOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA23C, -- ꈼ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE MGOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA23C,
},
[0xA23D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE MGEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA23D, -- ꈽ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE MGEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA23D,
},
[0xA23E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE MGE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA23E, -- ꈾ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE MGE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA23E,
},
[0xA23F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE MGEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA23F, -- ꈿ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE MGEP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA23F,
},
[0xA240]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE MGUT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA240, -- ꉀ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE MGUT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA240,
},
[0xA241]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE MGUX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA241, -- ꉁ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE MGUX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA241,
},
[0xA242]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE MGU",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA242, -- ꉂ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE MGU",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA242,
},
[0xA243]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE MGUP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA243, -- ꉃ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE MGUP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA243,
},
[0xA244]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE MGURX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA244, -- ꉄ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE MGURX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA244,
},
[0xA245]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE MGUR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA245, -- ꉅ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE MGUR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA245,
},
[0xA246]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HXIT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA246, -- ꉆ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HXIT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA246,
},
[0xA247]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HXIX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA247, -- ꉇ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HXIX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA247,
},
[0xA248]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HXI",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA248, -- ꉈ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HXI",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA248,
},
[0xA249]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HXIP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA249, -- ꉉ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HXIP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA249,
},
[0xA24A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HXIET",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA24A, -- ꉊ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HXIET",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA24A,
},
[0xA24B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HXIEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA24B, -- ꉋ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HXIEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA24B,
},
[0xA24C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HXIE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA24C, -- ꉌ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HXIE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA24C,
},
[0xA24D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HXIEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA24D, -- ꉍ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HXIEP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA24D,
},
[0xA24E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HXAT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA24E, -- ꉎ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HXAT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA24E,
},
[0xA24F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HXAX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA24F, -- ꉏ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HXAX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA24F,
},
[0xA250]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HXA",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA250, -- ꉐ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HXA",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA250,
},
[0xA251]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HXAP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA251, -- ꉑ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HXAP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA251,
},
[0xA252]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HXUOT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA252, -- ꉒ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HXUOT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA252,
},
[0xA253]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HXUOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA253, -- ꉓ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HXUOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA253,
},
[0xA254]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HXUO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA254, -- ꉔ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HXUO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA254,
},
[0xA255]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HXUOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA255, -- ꉕ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HXUOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA255,
},
[0xA256]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HXOT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA256, -- ꉖ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HXOT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA256,
},
[0xA257]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HXOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA257, -- ꉗ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HXOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA257,
},
[0xA258]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HXO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA258, -- ꉘ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HXO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA258,
},
[0xA259]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HXOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA259, -- ꉙ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HXOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA259,
},
[0xA25A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HXEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA25A, -- ꉚ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HXEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA25A,
},
[0xA25B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HXE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA25B, -- ꉛ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HXE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA25B,
},
[0xA25C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HXEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA25C, -- ꉜ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HXEP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA25C,
},
[0xA25D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NGIEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA25D, -- ꉝ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NGIEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA25D,
},
[0xA25E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NGIE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA25E, -- ꉞ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NGIE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA25E,
},
[0xA25F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NGIEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA25F, -- ꉟ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NGIEP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA25F,
},
[0xA260]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NGAT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA260, -- ꉠ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NGAT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA260,
},
[0xA261]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NGAX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA261, -- ꉡ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NGAX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA261,
},
[0xA262]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NGA",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA262, -- ꉢ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NGA",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA262,
},
[0xA263]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NGAP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA263, -- ꉣ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NGAP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA263,
},
[0xA264]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NGUOT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA264, -- ꉤ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NGUOT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA264,
},
[0xA265]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NGUOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA265, -- ꉥ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NGUOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA265,
},
[0xA266]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NGUO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA266, -- ꉦ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NGUO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA266,
},
[0xA267]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NGOT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA267, -- ꉧ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NGOT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA267,
},
[0xA268]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NGOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA268, -- ꉨ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NGOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA268,
},
[0xA269]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NGO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA269, -- ꉩ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NGO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA269,
},
[0xA26A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NGOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA26A, -- ꉪ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NGOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA26A,
},
[0xA26B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NGEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA26B, -- ꉫ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NGEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA26B,
},
[0xA26C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NGE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA26C, -- ꉬ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NGE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA26C,
},
[0xA26D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NGEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA26D, -- ꉭ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NGEP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA26D,
},
[0xA26E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HIT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA26E, -- ꉮ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HIT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA26E,
},
[0xA26F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HIEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA26F, -- ꉯ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HIEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA26F,
},
[0xA270]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HIE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA270, -- ꉰ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HIE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA270,
},
[0xA271]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HAT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA271, -- ꉱ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HAT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA271,
},
[0xA272]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HAX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA272, -- ꉲ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HAX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA272,
},
[0xA273]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HA",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA273, -- ꉳ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HA",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA273,
},
[0xA274]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HAP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA274, -- ꉴ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HAP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA274,
},
[0xA275]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HUOT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA275, -- ꉵ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HUOT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA275,
},
[0xA276]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HUOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA276, -- ꉶ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HUOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA276,
},
[0xA277]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HUO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA277, -- ꉷ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HUO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA277,
},
[0xA278]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HUOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA278, -- ꉸ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HUOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA278,
},
[0xA279]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HOT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA279, -- ꉹ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HOT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA279,
},
[0xA27A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA27A, -- ꉺ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA27A,
},
[0xA27B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA27B, -- ꉻ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA27B,
},
[0xA27C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA27C, -- ꉼ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA27C,
},
[0xA27D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA27D, -- ꉽ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA27D,
},
[0xA27E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA27E, -- ꉾ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA27E,
},
[0xA27F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE HEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA27F, -- ꉿ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE HEP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA27F,
},
[0xA280]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE WAT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA280, -- ꊀ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE WAT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA280,
},
[0xA281]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE WAX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA281, -- ꊁ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE WAX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA281,
},
[0xA282]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE WA",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA282, -- ꊂ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE WA",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA282,
},
[0xA283]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE WAP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA283, -- ꊃ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE WAP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA283,
},
[0xA284]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE WUOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA284, -- ꊄ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE WUOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA284,
},
[0xA285]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE WUO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA285, -- ꊅ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE WUO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA285,
},
[0xA286]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE WUOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA286, -- ꊆ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE WUOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA286,
},
[0xA287]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE WOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA287, -- ꊇ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE WOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA287,
},
[0xA288]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE WO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA288, -- ꊈ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE WO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA288,
},
[0xA289]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE WOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA289, -- ꊉ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE WOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA289,
},
[0xA28A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE WEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA28A, -- ꊊ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE WEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA28A,
},
[0xA28B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE WE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA28B, -- ꊋ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE WE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA28B,
},
[0xA28C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE WEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA28C, -- ꊌ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE WEP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA28C,
},
[0xA28D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZIT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA28D, -- ꊍ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZIT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA28D,
},
[0xA28E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZIX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA28E, -- ꊎ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZIX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA28E,
},
[0xA28F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZI",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA28F, -- ꊏ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZI",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA28F,
},
[0xA290]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZIP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA290, -- ꊐ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZIP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA290,
},
[0xA291]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZIEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA291, -- ꊑ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZIEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA291,
},
[0xA292]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZIE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA292, -- ꊒ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZIE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA292,
},
[0xA293]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZIEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA293, -- ꊓ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZIEP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA293,
},
[0xA294]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZAT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA294, -- ꊔ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZAT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA294,
},
[0xA295]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZAX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA295, -- ꊕ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZAX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA295,
},
[0xA296]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZA",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA296, -- ꊖ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZA",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA296,
},
[0xA297]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZAP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA297, -- ꊗ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZAP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA297,
},
[0xA298]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZUOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA298, -- ꊘ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZUOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA298,
},
[0xA299]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZUO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA299, -- ꊙ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZUO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA299,
},
[0xA29A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZUOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA29A, -- ꊚ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZUOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA29A,
},
[0xA29B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZOT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA29B, -- ꊛ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZOT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA29B,
},
[0xA29C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA29C, -- ꊜ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA29C,
},
[0xA29D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA29D, -- ꊝ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA29D,
},
[0xA29E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA29E, -- ꊞ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA29E,
},
[0xA29F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA29F, -- ꊟ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA29F,
},
[0xA2A0]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2A0, -- ꊠ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2A0,
},
[0xA2A1]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2A1, -- ꊡ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZEP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2A1,
},
[0xA2A2]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZUT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2A2, -- ꊢ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZUT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2A2,
},
[0xA2A3]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZUX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2A3, -- ꊣ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZUX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2A3,
},
[0xA2A4]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZU",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2A4, -- ꊤ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZU",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2A4,
},
[0xA2A5]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZUP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2A5, -- ꊥ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZUP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2A5,
},
[0xA2A6]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZURX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2A6, -- ꊦ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZURX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2A6,
},
[0xA2A7]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZUR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2A7, -- ꊧ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZUR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2A7,
},
[0xA2A8]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZYT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2A8, -- ꊨ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZYT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2A8,
},
[0xA2A9]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZYX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2A9, -- ꊩ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZYX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2A9,
},
[0xA2AA]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZY",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2AA, -- ꊪ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZY",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2AA,
},
[0xA2AB]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZYP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2AB, -- ꊫ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZYP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2AB,
},
[0xA2AC]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZYRX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2AC, -- ꊬ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZYRX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2AC,
},
[0xA2AD]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZYR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2AD, -- ꊭ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZYR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2AD,
},
[0xA2AE]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE CIT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2AE, -- ꊮ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE CIT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2AE,
},
[0xA2AF]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE CIX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2AF, -- ꊯ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE CIX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2AF,
},
[0xA2B0]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE CI",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2B0, -- ꊰ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE CI",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2B0,
},
[0xA2B1]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE CIP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2B1, -- ꊱ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE CIP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2B1,
},
[0xA2B2]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE CIET",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2B2, -- ꊲ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE CIET",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2B2,
},
[0xA2B3]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE CIEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2B3, -- ꊳ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE CIEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2B3,
},
[0xA2B4]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE CIE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2B4, -- ꊴ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE CIE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2B4,
},
[0xA2B5]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE CIEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2B5, -- ꊵ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE CIEP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2B5,
},
[0xA2B6]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE CAT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2B6, -- ꊶ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE CAT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2B6,
},
[0xA2B7]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE CAX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2B7, -- ꊷ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE CAX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2B7,
},
[0xA2B8]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE CA",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2B8, -- ꊸ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE CA",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2B8,
},
[0xA2B9]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE CAP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2B9, -- ꊹ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE CAP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2B9,
},
[0xA2BA]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE CUOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2BA, -- ꊺ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE CUOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2BA,
},
[0xA2BB]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE CUO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2BB, -- ꊻ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE CUO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2BB,
},
[0xA2BC]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE CUOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2BC, -- ꊼ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE CUOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2BC,
},
[0xA2BD]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE COT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2BD, -- ꊽ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE COT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2BD,
},
[0xA2BE]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE COX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2BE, -- ꊾ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE COX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2BE,
},
[0xA2BF]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE CO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2BF, -- ꊿ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE CO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2BF,
},
[0xA2C0]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE COP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2C0, -- ꋀ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE COP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2C0,
},
[0xA2C1]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE CEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2C1, -- ꋁ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE CEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2C1,
},
[0xA2C2]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE CE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2C2, -- ꋂ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE CE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2C2,
},
[0xA2C3]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE CEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2C3, -- ꋃ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE CEP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2C3,
},
[0xA2C4]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE CUT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2C4, -- ꋄ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE CUT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2C4,
},
[0xA2C5]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE CUX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2C5, -- ꋅ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE CUX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2C5,
},
[0xA2C6]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE CU",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2C6, -- ꋆ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE CU",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2C6,
},
[0xA2C7]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE CUP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2C7, -- ꋇ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE CUP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2C7,
},
[0xA2C8]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE CURX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2C8, -- ꋈ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE CURX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2C8,
},
[0xA2C9]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE CUR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2C9, -- ꋉ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE CUR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2C9,
},
[0xA2CA]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE CYT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2CA, -- ꋊ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE CYT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2CA,
},
[0xA2CB]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE CYX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2CB, -- ꋋ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE CYX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2CB,
},
[0xA2CC]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE CY",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2CC, -- ꋌ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE CY",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2CC,
},
[0xA2CD]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE CYP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2CD, -- ꋍ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE CYP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2CD,
},
[0xA2CE]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE CYRX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2CE, -- ꋎ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE CYRX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2CE,
},
[0xA2CF]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE CYR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2CF, -- ꋏ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE CYR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2CF,
},
[0xA2D0]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZZIT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2D0, -- ꋐ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZZIT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2D0,
},
[0xA2D1]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZZIX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2D1, -- ꋑ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZZIX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2D1,
},
[0xA2D2]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZZI",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2D2, -- ꋒ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZZI",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2D2,
},
[0xA2D3]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZZIP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2D3, -- ꋓ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZZIP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2D3,
},
[0xA2D4]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZZIET",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2D4, -- ꋔ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZZIET",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2D4,
},
[0xA2D5]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZZIEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2D5, -- ꋕ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZZIEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2D5,
},
[0xA2D6]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZZIE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2D6, -- ꋖ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZZIE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2D6,
},
[0xA2D7]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZZIEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2D7, -- ꋗ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZZIEP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2D7,
},
[0xA2D8]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZZAT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2D8, -- ꋘ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZZAT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2D8,
},
[0xA2D9]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZZAX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2D9, -- ꋙ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZZAX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2D9,
},
[0xA2DA]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZZA",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2DA, -- ꋚ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZZA",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2DA,
},
[0xA2DB]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZZAP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2DB, -- ꋛ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZZAP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2DB,
},
[0xA2DC]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZZOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2DC, -- ꋜ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZZOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2DC,
},
[0xA2DD]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZZO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2DD, -- ꋝ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZZO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2DD,
},
[0xA2DE]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZZOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2DE, -- ꋞ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZZOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2DE,
},
[0xA2DF]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZZEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2DF, -- ꋟ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZZEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2DF,
},
[0xA2E0]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZZE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2E0, -- ꋠ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZZE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2E0,
},
[0xA2E1]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZZEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2E1, -- ꋡ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZZEP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2E1,
},
[0xA2E2]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZZUX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2E2, -- ꋢ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZZUX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2E2,
},
[0xA2E3]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZZU",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2E3, -- ꋣ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZZU",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2E3,
},
[0xA2E4]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZZUP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2E4, -- ꋤ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZZUP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2E4,
},
[0xA2E5]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZZURX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2E5, -- ꋥ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZZURX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2E5,
},
[0xA2E6]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZZUR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2E6, -- ꋦ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZZUR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2E6,
},
[0xA2E7]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZZYT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2E7, -- ꋧ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZZYT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2E7,
},
[0xA2E8]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZZYX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2E8, -- ꋨ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZZYX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2E8,
},
[0xA2E9]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZZY",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2E9, -- ꋩ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZZY",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2E9,
},
[0xA2EA]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZZYP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2EA, -- ꋪ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZZYP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2EA,
},
[0xA2EB]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZZYRX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2EB, -- ꋫ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZZYRX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2EB,
},
[0xA2EC]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZZYR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2EC, -- ꋬ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZZYR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2EC,
},
[0xA2ED]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NZIT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2ED, -- ꋭ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NZIT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2ED,
},
[0xA2EE]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NZIX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2EE, -- ꋮ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NZIX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2EE,
},
[0xA2EF]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NZI",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2EF, -- ꋯ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NZI",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2EF,
},
[0xA2F0]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NZIP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2F0, -- ꋰ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NZIP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2F0,
},
[0xA2F1]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NZIEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2F1, -- ꋱ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NZIEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2F1,
},
[0xA2F2]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NZIE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2F2, -- ꋲ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NZIE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2F2,
},
[0xA2F3]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NZIEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2F3, -- ꋳ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NZIEP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2F3,
},
[0xA2F4]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NZAT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2F4, -- ꋴ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NZAT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2F4,
},
[0xA2F5]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NZAX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2F5, -- ꋵ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NZAX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2F5,
},
[0xA2F6]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NZA",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2F6, -- ꋶ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NZA",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2F6,
},
[0xA2F7]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NZAP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2F7, -- ꋷ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NZAP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2F7,
},
[0xA2F8]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NZUOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2F8, -- ꋸ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NZUOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2F8,
},
[0xA2F9]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NZUO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2F9, -- ꋹ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NZUO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2F9,
},
[0xA2FA]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NZOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2FA, -- ꋺ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NZOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2FA,
},
[0xA2FB]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NZOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2FB, -- ꋻ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NZOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2FB,
},
[0xA2FC]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NZEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2FC, -- ꋼ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NZEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2FC,
},
[0xA2FD]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NZE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2FD, -- ꋽ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NZE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2FD,
},
[0xA2FE]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NZUX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2FE, -- ꋾ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NZUX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2FE,
},
[0xA2FF]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NZU",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA2FF, -- ꋿ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NZU",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA2FF,
},
[0xA300]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NZUP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA300, -- ꌀ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NZUP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA300,
},
[0xA301]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NZURX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA301, -- ꌁ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NZURX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA301,
},
[0xA302]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NZUR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA302, -- ꌂ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NZUR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA302,
},
[0xA303]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NZYT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA303, -- ꌃ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NZYT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA303,
},
[0xA304]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NZYX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA304, -- ꌄ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NZYX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA304,
},
[0xA305]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NZY",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA305, -- ꌅ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NZY",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA305,
},
[0xA306]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NZYP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA306, -- ꌆ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NZYP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA306,
},
[0xA307]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NZYRX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA307, -- ꌇ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NZYRX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA307,
},
[0xA308]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NZYR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA308, -- ꌈ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NZYR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA308,
},
[0xA309]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SIT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA309, -- ꌉ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SIT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA309,
},
[0xA30A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SIX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA30A, -- ꌊ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SIX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA30A,
},
[0xA30B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SI",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA30B, -- ꌋ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SI",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA30B,
},
[0xA30C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SIP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA30C, -- ꌌ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SIP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA30C,
},
[0xA30D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SIEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA30D, -- ꌍ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SIEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA30D,
},
[0xA30E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SIE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA30E, -- ꌎ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SIE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA30E,
},
[0xA30F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SIEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA30F, -- ꌏ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SIEP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA30F,
},
[0xA310]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SAT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA310, -- ꌐ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SAT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA310,
},
[0xA311]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SAX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA311, -- ꌑ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SAX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA311,
},
[0xA312]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SA",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA312, -- ꌒ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SA",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA312,
},
[0xA313]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SAP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA313, -- ꌓ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SAP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA313,
},
[0xA314]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SUOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA314, -- ꌔ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SUOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA314,
},
[0xA315]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SUO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA315, -- ꌕ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SUO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA315,
},
[0xA316]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SUOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA316, -- ꌖ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SUOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA316,
},
[0xA317]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SOT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA317, -- ꌗ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SOT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA317,
},
[0xA318]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA318, -- ꌘ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA318,
},
[0xA319]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA319, -- ꌙ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA319,
},
[0xA31A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA31A, -- ꌚ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA31A,
},
[0xA31B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA31B, -- ꌛ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA31B,
},
[0xA31C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA31C, -- ꌜ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA31C,
},
[0xA31D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA31D, -- ꌝ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SEP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA31D,
},
[0xA31E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SUT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA31E, -- ꌞ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SUT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA31E,
},
[0xA31F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SUX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA31F, -- ꌟ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SUX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA31F,
},
[0xA320]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SU",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA320, -- ꌠ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SU",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA320,
},
[0xA321]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SUP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA321, -- ꌡ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SUP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA321,
},
[0xA322]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SURX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA322, -- ꌢ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SURX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA322,
},
[0xA323]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SUR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA323, -- ꌣ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SUR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA323,
},
[0xA324]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SYT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA324, -- ꌤ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SYT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA324,
},
[0xA325]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SYX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA325, -- ꌥ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SYX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA325,
},
[0xA326]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SY",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA326, -- ꌦ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SY",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA326,
},
[0xA327]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SYP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA327, -- ꌧ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SYP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA327,
},
[0xA328]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SYRX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA328, -- ꌨ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SYRX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA328,
},
[0xA329]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SYR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA329, -- ꌩ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SYR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA329,
},
[0xA32A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SSIT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA32A, -- ꌪ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SSIT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA32A,
},
[0xA32B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SSIX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA32B, -- ꌫ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SSIX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA32B,
},
[0xA32C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SSI",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA32C, -- ꌬ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SSI",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA32C,
},
[0xA32D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SSIP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA32D, -- ꌭ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SSIP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA32D,
},
[0xA32E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SSIEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA32E, -- ꌮ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SSIEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA32E,
},
[0xA32F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SSIE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA32F, -- ꌯ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SSIE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA32F,
},
[0xA330]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SSIEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA330, -- ꌰ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SSIEP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA330,
},
[0xA331]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SSAT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA331, -- ꌱ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SSAT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA331,
},
[0xA332]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SSAX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA332, -- ꌲ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SSAX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA332,
},
[0xA333]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SSA",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA333, -- ꌳ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SSA",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA333,
},
[0xA334]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SSAP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA334, -- ꌴ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SSAP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA334,
},
[0xA335]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SSOT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA335, -- ꌵ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SSOT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA335,
},
[0xA336]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SSOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA336, -- ꌶ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SSOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA336,
},
[0xA337]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SSO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA337, -- ꌷ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SSO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA337,
},
[0xA338]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SSOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA338, -- ꌸ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SSOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA338,
},
[0xA339]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SSEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA339, -- ꌹ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SSEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA339,
},
[0xA33A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SSE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA33A, -- ꌺ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SSE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA33A,
},
[0xA33B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SSEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA33B, -- ꌻ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SSEP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA33B,
},
[0xA33C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SSUT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA33C, -- ꌼ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SSUT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA33C,
},
[0xA33D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SSUX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA33D, -- ꌽ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SSUX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA33D,
},
[0xA33E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SSU",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA33E, -- ꌾ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SSU",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA33E,
},
[0xA33F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SSUP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA33F, -- ꌿ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SSUP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA33F,
},
[0xA340]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SSYT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA340, -- ꍀ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SSYT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA340,
},
[0xA341]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SSYX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA341, -- ꍁ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SSYX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA341,
},
[0xA342]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SSY",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA342, -- ꍂ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SSY",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA342,
},
[0xA343]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SSYP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA343, -- ꍃ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SSYP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA343,
},
[0xA344]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SSYRX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA344, -- ꍄ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SSYRX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA344,
},
[0xA345]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SSYR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA345, -- ꍅ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SSYR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA345,
},
[0xA346]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZHAT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA346, -- ꍆ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZHAT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA346,
},
[0xA347]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZHAX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA347, -- ꍇ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZHAX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA347,
},
[0xA348]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZHA",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA348, -- ꍈ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZHA",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA348,
},
[0xA349]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZHAP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA349, -- ꍉ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZHAP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA349,
},
[0xA34A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZHUOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA34A, -- ꍊ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZHUOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA34A,
},
[0xA34B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZHUO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA34B, -- ꍋ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZHUO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA34B,
},
[0xA34C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZHUOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA34C, -- ꍌ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZHUOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA34C,
},
[0xA34D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZHOT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA34D, -- ꍍ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZHOT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA34D,
},
[0xA34E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZHOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA34E, -- ꍎ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZHOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA34E,
},
[0xA34F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZHO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA34F, -- ꍏ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZHO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA34F,
},
[0xA350]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZHOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA350, -- ꍐ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZHOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA350,
},
[0xA351]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZHET",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA351, -- ꍑ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZHET",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA351,
},
[0xA352]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZHEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA352, -- ꍒ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZHEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA352,
},
[0xA353]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZHE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA353, -- ꍓ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZHE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA353,
},
[0xA354]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZHEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA354, -- ꍔ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZHEP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA354,
},
[0xA355]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZHUT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA355, -- ꍕ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZHUT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA355,
},
[0xA356]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZHUX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA356, -- ꍖ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZHUX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA356,
},
[0xA357]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZHU",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA357, -- ꍗ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZHU",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA357,
},
[0xA358]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZHUP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA358, -- ꍘ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZHUP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA358,
},
[0xA359]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZHURX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA359, -- ꍙ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZHURX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA359,
},
[0xA35A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZHUR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA35A, -- ꍚ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZHUR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA35A,
},
[0xA35B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZHYT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA35B, -- ꍛ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZHYT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA35B,
},
[0xA35C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZHYX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA35C, -- ꍜ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZHYX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA35C,
},
[0xA35D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZHY",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA35D, -- ꍝ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZHY",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA35D,
},
[0xA35E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZHYP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA35E, -- ꍞ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZHYP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA35E,
},
[0xA35F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZHYRX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA35F, -- ꍟ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZHYRX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA35F,
},
[0xA360]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ZHYR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA360, -- ꍠ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ZHYR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA360,
},
[0xA361]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE CHAT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA361, -- ꍡ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE CHAT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA361,
},
[0xA362]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE CHAX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA362, -- ꍢ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE CHAX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA362,
},
[0xA363]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE CHA",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA363, -- ꍣ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE CHA",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA363,
},
[0xA364]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE CHAP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA364, -- ꍤ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE CHAP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA364,
},
[0xA365]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE CHUOT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA365, -- ꍥ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE CHUOT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA365,
},
[0xA366]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE CHUOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA366, -- ꍦ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE CHUOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA366,
},
[0xA367]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE CHUO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA367, -- ꍧ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE CHUO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA367,
},
[0xA368]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE CHUOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA368, -- ꍨ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE CHUOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA368,
},
[0xA369]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE CHOT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA369, -- ꍩ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE CHOT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA369,
},
[0xA36A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE CHOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA36A, -- ꍪ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE CHOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA36A,
},
[0xA36B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE CHO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA36B, -- ꍫ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE CHO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA36B,
},
[0xA36C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE CHOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA36C, -- ꍬ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE CHOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA36C,
},
[0xA36D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE CHET",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA36D, -- ꍭ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE CHET",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA36D,
},
[0xA36E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE CHEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA36E, -- ꍮ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE CHEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA36E,
},
[0xA36F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE CHE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA36F, -- ꍯ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE CHE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA36F,
},
[0xA370]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE CHEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA370, -- ꍰ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE CHEP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA370,
},
[0xA371]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE CHUX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA371, -- ꍱ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE CHUX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA371,
},
[0xA372]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE CHU",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA372, -- ꍲ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE CHU",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA372,
},
[0xA373]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE CHUP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA373, -- ꍳ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE CHUP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA373,
},
[0xA374]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE CHURX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA374, -- ꍴ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE CHURX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA374,
},
[0xA375]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE CHUR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA375, -- ꍵ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE CHUR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA375,
},
[0xA376]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE CHYT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA376, -- ꍶ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE CHYT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA376,
},
[0xA377]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE CHYX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA377, -- ꍷ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE CHYX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA377,
},
[0xA378]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE CHY",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA378, -- ꍸ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE CHY",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA378,
},
[0xA379]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE CHYP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA379, -- ꍹ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE CHYP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA379,
},
[0xA37A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE CHYRX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA37A, -- ꍺ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE CHYRX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA37A,
},
[0xA37B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE CHYR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA37B, -- ꍻ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE CHYR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA37B,
},
[0xA37C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE RRAX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA37C, -- ꍼ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE RRAX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA37C,
},
[0xA37D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE RRA",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA37D, -- ꍽ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE RRA",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA37D,
},
[0xA37E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE RRUOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA37E, -- ꍾ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE RRUOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA37E,
},
[0xA37F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE RRUO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA37F, -- ꍿ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE RRUO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA37F,
},
[0xA380]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE RROT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA380, -- ꎀ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE RROT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA380,
},
[0xA381]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE RROX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA381, -- ꎁ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE RROX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA381,
},
[0xA382]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE RRO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA382, -- ꎂ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE RRO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA382,
},
[0xA383]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE RROP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA383, -- ꎃ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE RROP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA383,
},
[0xA384]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE RRET",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA384, -- ꎄ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE RRET",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA384,
},
[0xA385]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE RREX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA385, -- ꎅ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE RREX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA385,
},
[0xA386]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE RRE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA386, -- ꎆ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE RRE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA386,
},
[0xA387]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE RREP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA387, -- ꎇ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE RREP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA387,
},
[0xA388]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE RRUT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA388, -- ꎈ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE RRUT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA388,
},
[0xA389]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE RRUX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA389, -- ꎉ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE RRUX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA389,
},
[0xA38A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE RRU",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA38A, -- ꎊ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE RRU",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA38A,
},
[0xA38B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE RRUP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA38B, -- ꎋ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE RRUP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA38B,
},
[0xA38C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE RRURX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA38C, -- ꎌ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE RRURX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA38C,
},
[0xA38D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE RRUR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA38D, -- ꎍ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE RRUR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA38D,
},
[0xA38E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE RRYT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA38E, -- ꎎ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE RRYT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA38E,
},
[0xA38F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE RRYX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA38F, -- ꎏ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE RRYX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA38F,
},
[0xA390]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE RRY",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA390, -- ꎐ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE RRY",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA390,
},
[0xA391]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE RRYP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA391, -- ꎑ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE RRYP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA391,
},
[0xA392]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE RRYRX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA392, -- ꎒ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE RRYRX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA392,
},
[0xA393]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE RRYR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA393, -- ꎓ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE RRYR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA393,
},
[0xA394]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NRAT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA394, -- ꎔ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NRAT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA394,
},
[0xA395]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NRAX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA395, -- ꎕ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NRAX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA395,
},
[0xA396]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NRA",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA396, -- ꎖ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NRA",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA396,
},
[0xA397]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NRAP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA397, -- ꎗ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NRAP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA397,
},
[0xA398]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NROX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA398, -- ꎘ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NROX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA398,
},
[0xA399]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NRO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA399, -- ꎙ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NRO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA399,
},
[0xA39A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NROP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA39A, -- ꎚ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NROP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA39A,
},
[0xA39B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NRET",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA39B, -- ꎛ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NRET",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA39B,
},
[0xA39C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NREX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA39C, -- ꎜ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NREX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA39C,
},
[0xA39D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NRE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA39D, -- ꎝ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NRE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA39D,
},
[0xA39E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NREP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA39E, -- ꎞ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NREP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA39E,
},
[0xA39F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NRUT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA39F, -- ꎟ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NRUT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA39F,
},
[0xA3A0]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NRUX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3A0, -- ꎠ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NRUX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3A0,
},
[0xA3A1]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NRU",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3A1, -- ꎡ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NRU",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3A1,
},
[0xA3A2]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NRUP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3A2, -- ꎢ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NRUP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3A2,
},
[0xA3A3]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NRURX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3A3, -- ꎣ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NRURX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3A3,
},
[0xA3A4]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NRUR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3A4, -- ꎤ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NRUR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3A4,
},
[0xA3A5]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NRYT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3A5, -- ꎥ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NRYT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3A5,
},
[0xA3A6]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NRYX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3A6, -- ꎦ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NRYX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3A6,
},
[0xA3A7]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NRY",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3A7, -- ꎧ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NRY",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3A7,
},
[0xA3A8]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NRYP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3A8, -- ꎨ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NRYP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3A8,
},
[0xA3A9]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NRYRX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3A9, -- ꎩ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NRYRX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3A9,
},
[0xA3AA]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NRYR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3AA, -- ꎪ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NRYR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3AA,
},
[0xA3AB]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SHAT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3AB, -- ꎫ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SHAT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3AB,
},
[0xA3AC]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SHAX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3AC, -- ꎬ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SHAX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3AC,
},
[0xA3AD]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SHA",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3AD, -- ꎭ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SHA",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3AD,
},
[0xA3AE]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SHAP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3AE, -- ꎮ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SHAP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3AE,
},
[0xA3AF]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SHUOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3AF, -- ꎯ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SHUOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3AF,
},
[0xA3B0]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SHUO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3B0, -- ꎰ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SHUO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3B0,
},
[0xA3B1]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SHUOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3B1, -- ꎱ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SHUOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3B1,
},
[0xA3B2]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SHOT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3B2, -- ꎲ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SHOT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3B2,
},
[0xA3B3]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SHOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3B3, -- ꎳ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SHOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3B3,
},
[0xA3B4]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SHO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3B4, -- ꎴ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SHO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3B4,
},
[0xA3B5]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SHOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3B5, -- ꎵ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SHOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3B5,
},
[0xA3B6]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SHET",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3B6, -- ꎶ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SHET",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3B6,
},
[0xA3B7]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SHEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3B7, -- ꎷ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SHEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3B7,
},
[0xA3B8]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SHE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3B8, -- ꎸ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SHE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3B8,
},
[0xA3B9]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SHEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3B9, -- ꎹ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SHEP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3B9,
},
[0xA3BA]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SHUT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3BA, -- ꎺ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SHUT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3BA,
},
[0xA3BB]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SHUX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3BB, -- ꎻ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SHUX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3BB,
},
[0xA3BC]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SHU",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3BC, -- ꎼ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SHU",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3BC,
},
[0xA3BD]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SHUP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3BD, -- ꎽ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SHUP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3BD,
},
[0xA3BE]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SHURX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3BE, -- ꎾ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SHURX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3BE,
},
[0xA3BF]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SHUR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3BF, -- ꎿ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SHUR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3BF,
},
[0xA3C0]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SHYT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3C0, -- ꏀ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SHYT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3C0,
},
[0xA3C1]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SHYX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3C1, -- ꏁ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SHYX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3C1,
},
[0xA3C2]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SHY",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3C2, -- ꏂ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SHY",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3C2,
},
[0xA3C3]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SHYP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3C3, -- ꏃ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SHYP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3C3,
},
[0xA3C4]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SHYRX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3C4, -- ꏄ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SHYRX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3C4,
},
[0xA3C5]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE SHYR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3C5, -- ꏅ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE SHYR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3C5,
},
[0xA3C6]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE RAT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3C6, -- ꏆ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE RAT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3C6,
},
[0xA3C7]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE RAX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3C7, -- ꏇ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE RAX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3C7,
},
[0xA3C8]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE RA",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3C8, -- ꏈ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE RA",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3C8,
},
[0xA3C9]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE RAP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3C9, -- ꏉ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE RAP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3C9,
},
[0xA3CA]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE RUOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3CA, -- ꏊ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE RUOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3CA,
},
[0xA3CB]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE RUO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3CB, -- ꏋ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE RUO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3CB,
},
[0xA3CC]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE RUOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3CC, -- ꏌ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE RUOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3CC,
},
[0xA3CD]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ROT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3CD, -- ꏍ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ROT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3CD,
},
[0xA3CE]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ROX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3CE, -- ꏎ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ROX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3CE,
},
[0xA3CF]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE RO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3CF, -- ꏏ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE RO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3CF,
},
[0xA3D0]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE ROP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3D0, -- ꏐ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE ROP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3D0,
},
[0xA3D1]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE REX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3D1, -- ꏑ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE REX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3D1,
},
[0xA3D2]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE RE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3D2, -- ꏒ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE RE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3D2,
},
[0xA3D3]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE REP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3D3, -- ꏓ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE REP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3D3,
},
[0xA3D4]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE RUT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3D4, -- ꏔ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE RUT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3D4,
},
[0xA3D5]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE RUX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3D5, -- ꏕ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE RUX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3D5,
},
[0xA3D6]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE RU",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3D6, -- ꏖ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE RU",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3D6,
},
[0xA3D7]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE RUP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3D7, -- ꏗ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE RUP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3D7,
},
[0xA3D8]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE RURX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3D8, -- ꏘ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE RURX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3D8,
},
[0xA3D9]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE RUR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3D9, -- ꏙ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE RUR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3D9,
},
[0xA3DA]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE RYT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3DA, -- ꏚ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE RYT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3DA,
},
[0xA3DB]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE RYX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3DB, -- ꏛ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE RYX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3DB,
},
[0xA3DC]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE RY",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3DC, -- ꏜ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE RY",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3DC,
},
[0xA3DD]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE RYP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3DD, -- ꏝ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE RYP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3DD,
},
[0xA3DE]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE RYRX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3DE, -- ꏞ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE RYRX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3DE,
},
[0xA3DF]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE RYR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3DF, -- ꏟ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE RYR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3DF,
},
[0xA3E0]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE JIT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3E0, -- ꏠ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE JIT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3E0,
},
[0xA3E1]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE JIX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3E1, -- ꏡ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE JIX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3E1,
},
[0xA3E2]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE JI",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3E2, -- ꏢ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE JI",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3E2,
},
[0xA3E3]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE JIP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3E3, -- ꏣ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE JIP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3E3,
},
[0xA3E4]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE JIET",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3E4, -- ꏤ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE JIET",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3E4,
},
[0xA3E5]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE JIEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3E5, -- ꏥ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE JIEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3E5,
},
[0xA3E6]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE JIE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3E6, -- ꏦ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE JIE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3E6,
},
[0xA3E7]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE JIEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3E7, -- ꏧ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE JIEP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3E7,
},
[0xA3E8]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE JUOT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3E8, -- ꏨ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE JUOT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3E8,
},
[0xA3E9]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE JUOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3E9, -- ꏩ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE JUOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3E9,
},
[0xA3EA]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE JUO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3EA, -- ꏪ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE JUO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3EA,
},
[0xA3EB]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE JUOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3EB, -- ꏫ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE JUOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3EB,
},
[0xA3EC]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE JOT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3EC, -- ꏬ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE JOT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3EC,
},
[0xA3ED]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE JOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3ED, -- ꏭ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE JOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3ED,
},
[0xA3EE]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE JO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3EE, -- ꏮ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE JO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3EE,
},
[0xA3EF]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE JOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3EF, -- ꏯ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE JOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3EF,
},
[0xA3F0]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE JUT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3F0, -- ꏰ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE JUT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3F0,
},
[0xA3F1]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE JUX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3F1, -- ꏱ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE JUX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3F1,
},
[0xA3F2]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE JU",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3F2, -- ꏲ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE JU",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3F2,
},
[0xA3F3]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE JUP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3F3, -- ꏳ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE JUP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3F3,
},
[0xA3F4]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE JURX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3F4, -- ꏴ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE JURX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3F4,
},
[0xA3F5]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE JUR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3F5, -- ꏵ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE JUR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3F5,
},
[0xA3F6]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE JYT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3F6, -- ꏶ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE JYT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3F6,
},
[0xA3F7]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE JYX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3F7, -- ꏷ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE JYX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3F7,
},
[0xA3F8]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE JY",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3F8, -- ꏸ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE JY",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3F8,
},
[0xA3F9]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE JYP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3F9, -- ꏹ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE JYP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3F9,
},
[0xA3FA]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE JYRX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3FA, -- ꏺ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE JYRX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3FA,
},
[0xA3FB]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE JYR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3FB, -- ꏻ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE JYR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3FB,
},
[0xA3FC]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE QIT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3FC, -- ꏼ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE QIT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3FC,
},
[0xA3FD]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE QIX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3FD, -- ꏽ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE QIX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3FD,
},
[0xA3FE]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE QI",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3FE, -- ꏾ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE QI",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3FE,
},
[0xA3FF]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE QIP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA3FF, -- ꏿ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE QIP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA3FF,
},
[0xA400]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE QIET",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA400, -- ꐀ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE QIET",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA400,
},
[0xA401]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE QIEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA401, -- ꐁ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE QIEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA401,
},
[0xA402]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE QIE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA402, -- ꐂ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE QIE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA402,
},
[0xA403]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE QIEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA403, -- ꐃ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE QIEP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA403,
},
[0xA404]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE QUOT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA404, -- ꐄ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE QUOT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA404,
},
[0xA405]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE QUOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA405, -- ꐅ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE QUOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA405,
},
[0xA406]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE QUO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA406, -- ꐆ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE QUO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA406,
},
[0xA407]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE QUOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA407, -- ꐇ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE QUOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA407,
},
[0xA408]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE QOT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA408, -- ꐈ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE QOT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA408,
},
[0xA409]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE QOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA409, -- ꐉ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE QOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA409,
},
[0xA40A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE QO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA40A, -- ꐊ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE QO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA40A,
},
[0xA40B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE QOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA40B, -- ꐋ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE QOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA40B,
},
[0xA40C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE QUT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA40C, -- ꐌ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE QUT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA40C,
},
[0xA40D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE QUX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA40D, -- ꐍ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE QUX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA40D,
},
[0xA40E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE QU",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA40E, -- ꐎ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE QU",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA40E,
},
[0xA40F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE QUP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA40F, -- ꐏ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE QUP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA40F,
},
[0xA410]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE QURX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA410, -- ꐐ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE QURX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA410,
},
[0xA411]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE QUR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA411, -- ꐑ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE QUR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA411,
},
[0xA412]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE QYT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA412, -- ꐒ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE QYT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA412,
},
[0xA413]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE QYX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA413, -- ꐓ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE QYX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA413,
},
[0xA414]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE QY",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA414, -- ꐔ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE QY",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA414,
},
[0xA415]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE QYP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA415, -- ꐕ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE QYP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA415,
},
[0xA416]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE QYRX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA416, -- ꐖ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE QYRX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA416,
},
[0xA417]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE QYR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA417, -- ꐗ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE QYR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA417,
},
[0xA418]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE JJIT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA418, -- ꐘ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE JJIT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA418,
},
[0xA419]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE JJIX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA419, -- ꐙ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE JJIX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA419,
},
[0xA41A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE JJI",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA41A, -- ꐚ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE JJI",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA41A,
},
[0xA41B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE JJIP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA41B, -- ꐛ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE JJIP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA41B,
},
[0xA41C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE JJIET",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA41C, -- ꐜ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE JJIET",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA41C,
},
[0xA41D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE JJIEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA41D, -- ꐝ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE JJIEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA41D,
},
[0xA41E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE JJIE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA41E, -- ꐞ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE JJIE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA41E,
},
[0xA41F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE JJIEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA41F, -- ꐟ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE JJIEP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA41F,
},
[0xA420]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE JJUOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA420, -- ꐠ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE JJUOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA420,
},
[0xA421]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE JJUO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA421, -- ꐡ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE JJUO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA421,
},
[0xA422]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE JJUOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA422, -- ꐢ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE JJUOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA422,
},
[0xA423]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE JJOT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA423, -- ꐣ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE JJOT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA423,
},
[0xA424]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE JJOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA424, -- ꐤ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE JJOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA424,
},
[0xA425]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE JJO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA425, -- ꐥ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE JJO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA425,
},
[0xA426]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE JJOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA426, -- ꐦ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE JJOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA426,
},
[0xA427]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE JJUT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA427, -- ꐧ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE JJUT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA427,
},
[0xA428]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE JJUX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA428, -- ꐨ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE JJUX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA428,
},
[0xA429]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE JJU",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA429, -- ꐩ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE JJU",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA429,
},
[0xA42A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE JJUP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA42A, -- ꐪ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE JJUP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA42A,
},
[0xA42B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE JJURX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA42B, -- ꐫ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE JJURX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA42B,
},
[0xA42C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE JJUR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA42C, -- ꐬ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE JJUR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA42C,
},
[0xA42D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE JJYT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA42D, -- ꐭ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE JJYT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA42D,
},
[0xA42E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE JJYX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA42E, -- ꐮ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE JJYX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA42E,
},
[0xA42F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE JJY",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA42F, -- ꐯ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE JJY",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA42F,
},
[0xA430]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE JJYP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA430, -- ꐰ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE JJYP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA430,
},
[0xA431]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NJIT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA431, -- ꐱ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NJIT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA431,
},
[0xA432]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NJIX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA432, -- ꐲ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NJIX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA432,
},
[0xA433]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NJI",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA433, -- ꐳ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NJI",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA433,
},
[0xA434]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NJIP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA434, -- ꐴ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NJIP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA434,
},
[0xA435]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NJIET",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA435, -- ꐵ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NJIET",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA435,
},
[0xA436]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NJIEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA436, -- ꐶ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NJIEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA436,
},
[0xA437]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NJIE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA437, -- ꐷ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NJIE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA437,
},
[0xA438]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NJIEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA438, -- ꐸ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NJIEP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA438,
},
[0xA439]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NJUOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA439, -- ꐹ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NJUOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA439,
},
[0xA43A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NJUO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA43A, -- ꐺ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NJUO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA43A,
},
[0xA43B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NJOT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA43B, -- ꐻ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NJOT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA43B,
},
[0xA43C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NJOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA43C, -- ꐼ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NJOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA43C,
},
[0xA43D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NJO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA43D, -- ꐽ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NJO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA43D,
},
[0xA43E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NJOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA43E, -- ꐾ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NJOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA43E,
},
[0xA43F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NJUX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA43F, -- ꐿ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NJUX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA43F,
},
[0xA440]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NJU",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA440, -- ꑀ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NJU",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA440,
},
[0xA441]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NJUP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA441, -- ꑁ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NJUP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA441,
},
[0xA442]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NJURX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA442, -- ꑂ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NJURX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA442,
},
[0xA443]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NJUR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA443, -- ꑃ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NJUR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA443,
},
[0xA444]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NJYT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA444, -- ꑄ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NJYT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA444,
},
[0xA445]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NJYX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA445, -- ꑅ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NJYX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA445,
},
[0xA446]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NJY",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA446, -- ꑆ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NJY",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA446,
},
[0xA447]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NJYP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA447, -- ꑇ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NJYP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA447,
},
[0xA448]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NJYRX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA448, -- ꑈ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NJYRX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA448,
},
[0xA449]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NJYR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA449, -- ꑉ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NJYR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA449,
},
[0xA44A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NYIT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA44A, -- ꑊ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NYIT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA44A,
},
[0xA44B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NYIX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA44B, -- ꑋ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NYIX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA44B,
},
[0xA44C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NYI",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA44C, -- ꑌ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NYI",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA44C,
},
[0xA44D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NYIP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA44D, -- ꑍ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NYIP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA44D,
},
[0xA44E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NYIET",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA44E, -- ꑎ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NYIET",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA44E,
},
[0xA44F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NYIEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA44F, -- ꑏ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NYIEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA44F,
},
[0xA450]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NYIE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA450, -- ꑐ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NYIE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA450,
},
[0xA451]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NYIEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA451, -- ꑑ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NYIEP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA451,
},
[0xA452]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NYUOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA452, -- ꑒ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NYUOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA452,
},
[0xA453]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NYUO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA453, -- ꑓ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NYUO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA453,
},
[0xA454]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NYUOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA454, -- ꑔ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NYUOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA454,
},
[0xA455]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NYOT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA455, -- ꑕ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NYOT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA455,
},
[0xA456]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NYOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA456, -- ꑖ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NYOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA456,
},
[0xA457]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NYO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA457, -- ꑗ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NYO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA457,
},
[0xA458]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NYOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA458, -- ꑘ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NYOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA458,
},
[0xA459]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NYUT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA459, -- ꑙ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NYUT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA459,
},
[0xA45A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NYUX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA45A, -- ꑚ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NYUX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA45A,
},
[0xA45B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NYU",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA45B, -- ꑛ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NYU",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA45B,
},
[0xA45C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE NYUP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA45C, -- ꑜ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE NYUP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA45C,
},
[0xA45D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE XIT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA45D, -- ꑝ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE XIT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA45D,
},
[0xA45E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE XIX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA45E, -- ꑞ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE XIX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA45E,
},
[0xA45F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE XI",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA45F, -- ꑟ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE XI",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA45F,
},
[0xA460]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE XIP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA460, -- ꑠ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE XIP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA460,
},
[0xA461]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE XIET",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA461, -- ꑡ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE XIET",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA461,
},
[0xA462]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE XIEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA462, -- ꑢ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE XIEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA462,
},
[0xA463]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE XIE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA463, -- ꑣ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE XIE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA463,
},
[0xA464]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE XIEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA464, -- ꑤ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE XIEP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA464,
},
[0xA465]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE XUOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA465, -- ꑥ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE XUOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA465,
},
[0xA466]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE XUO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA466, -- ꑦ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE XUO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA466,
},
[0xA467]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE XOT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA467, -- ꑧ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE XOT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA467,
},
[0xA468]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE XOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA468, -- ꑨ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE XOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA468,
},
[0xA469]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE XO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA469, -- ꑩ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE XO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA469,
},
[0xA46A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE XOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA46A, -- ꑪ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE XOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA46A,
},
[0xA46B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE XYT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA46B, -- ꑫ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE XYT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA46B,
},
[0xA46C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE XYX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA46C, -- ꑬ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE XYX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA46C,
},
[0xA46D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE XY",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA46D, -- ꑭ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE XY",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA46D,
},
[0xA46E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE XYP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA46E, -- ꑮ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE XYP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA46E,
},
[0xA46F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE XYRX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA46F, -- ꑯ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE XYRX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA46F,
},
[0xA470]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE XYR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA470, -- ꑰ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE XYR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA470,
},
[0xA471]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE YIT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA471, -- ꑱ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE YIT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA471,
},
[0xA472]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE YIX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA472, -- ꑲ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE YIX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA472,
},
[0xA473]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE YI",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA473, -- ꑳ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE YI",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA473,
},
[0xA474]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE YIP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA474, -- ꑴ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE YIP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA474,
},
[0xA475]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE YIET",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA475, -- ꑵ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE YIET",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA475,
},
[0xA476]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE YIEX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA476, -- ꑶ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE YIEX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA476,
},
[0xA477]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE YIE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA477, -- ꑷ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE YIE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA477,
},
[0xA478]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE YIEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA478, -- ꑸ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE YIEP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA478,
},
[0xA479]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE YUOT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA479, -- ꑹ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE YUOT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA479,
},
[0xA47A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE YUOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA47A, -- ꑺ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE YUOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA47A,
},
[0xA47B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE YUO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA47B, -- ꑻ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE YUO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA47B,
},
[0xA47C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE YUOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA47C, -- ꑼ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE YUOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA47C,
},
[0xA47D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE YOT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA47D, -- ꑽ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE YOT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA47D,
},
[0xA47E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE YOX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA47E, -- ꑾ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE YOX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA47E,
},
[0xA47F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE YO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA47F, -- ꑿ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE YO",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA47F,
},
[0xA480]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE YOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA480, -- ꒀ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE YOP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA480,
},
[0xA481]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE YUT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA481, -- ꒁ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE YUT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA481,
},
[0xA482]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE YUX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA482, -- ꒂ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE YUX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA482,
},
[0xA483]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE YU",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA483, -- ꒃ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE YU",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA483,
},
[0xA484]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE YUP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA484, -- ꒄ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE YUP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA484,
},
[0xA485]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE YURX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA485, -- ꒅ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE YURX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA485,
},
[0xA486]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE YUR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA486, -- ꒆ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE YUR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA486,
},
[0xA487]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE YYT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA487, -- ꒇ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE YYT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA487,
},
[0xA488]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE YYX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA488, -- ꒈ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE YYX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA488,
},
[0xA489]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE YY",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA489, -- ꒉ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE YY",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA489,
},
[0xA48A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE YYP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA48A, -- ꒊ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE YYP",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA48A,
},
[0xA48B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE YYRX",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA48B, -- ꒋ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE YYRX",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA48B,
},
[0xA48C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="YI SYLLABLE YYR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA48C, -- ꒌ
+ category="lo",
+ cjkwd="w",
+ description="YI SYLLABLE YYR",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xA48C,
},
[0xA490]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="YI RADICAL QOT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA490, -- ꒐
+ category="so",
+ cjkwd="w",
+ description="YI RADICAL QOT",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0xA490,
},
[0xA491]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="YI RADICAL LI",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA491, -- ꒑
+ category="so",
+ cjkwd="w",
+ description="YI RADICAL LI",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0xA491,
},
[0xA492]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="YI RADICAL KIT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA492, -- ꒒
+ category="so",
+ cjkwd="w",
+ description="YI RADICAL KIT",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0xA492,
},
[0xA493]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="YI RADICAL NYIP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA493, -- ꒓
+ category="so",
+ cjkwd="w",
+ description="YI RADICAL NYIP",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0xA493,
},
[0xA494]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="YI RADICAL CYP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA494, -- ꒔
+ category="so",
+ cjkwd="w",
+ description="YI RADICAL CYP",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0xA494,
},
[0xA495]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="YI RADICAL SSI",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA495, -- ꒕
+ category="so",
+ cjkwd="w",
+ description="YI RADICAL SSI",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0xA495,
},
[0xA496]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="YI RADICAL GGOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA496, -- ꒖
+ category="so",
+ cjkwd="w",
+ description="YI RADICAL GGOP",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0xA496,
},
[0xA497]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="YI RADICAL GEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA497, -- ꒗
+ category="so",
+ cjkwd="w",
+ description="YI RADICAL GEP",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0xA497,
},
[0xA498]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="YI RADICAL MI",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA498, -- ꒘
+ category="so",
+ cjkwd="w",
+ description="YI RADICAL MI",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0xA498,
},
[0xA499]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="YI RADICAL HXIT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA499, -- ꒙
+ category="so",
+ cjkwd="w",
+ description="YI RADICAL HXIT",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0xA499,
},
[0xA49A]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="YI RADICAL LYR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA49A, -- ꒚
+ category="so",
+ cjkwd="w",
+ description="YI RADICAL LYR",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0xA49A,
},
[0xA49B]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="YI RADICAL BBUT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA49B, -- ꒛
+ category="so",
+ cjkwd="w",
+ description="YI RADICAL BBUT",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0xA49B,
},
[0xA49C]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="YI RADICAL MOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA49C, -- ꒜
+ category="so",
+ cjkwd="w",
+ description="YI RADICAL MOP",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0xA49C,
},
[0xA49D]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="YI RADICAL YO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA49D, -- ꒝
+ category="so",
+ cjkwd="w",
+ description="YI RADICAL YO",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0xA49D,
},
[0xA49E]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="YI RADICAL PUT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA49E, -- ꒞
+ category="so",
+ cjkwd="w",
+ description="YI RADICAL PUT",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0xA49E,
},
[0xA49F]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="YI RADICAL HXUO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA49F, -- ꒟
+ category="so",
+ cjkwd="w",
+ description="YI RADICAL HXUO",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0xA49F,
},
[0xA4A0]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="YI RADICAL TAT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA4A0, -- ꒠
+ category="so",
+ cjkwd="w",
+ description="YI RADICAL TAT",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0xA4A0,
},
[0xA4A1]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="YI RADICAL GA",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA4A1, -- ꒡
+ category="so",
+ cjkwd="w",
+ description="YI RADICAL GA",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0xA4A1,
},
[0xA4A2]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="YI RADICAL ZUP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA4A2, -- ꒢
+ category="so",
+ cjkwd="w",
+ description="YI RADICAL ZUP",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0xA4A2,
},
[0xA4A3]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="YI RADICAL CYT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA4A3, -- ꒣
+ category="so",
+ cjkwd="w",
+ description="YI RADICAL CYT",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0xA4A3,
},
[0xA4A4]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="YI RADICAL DDUR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA4A4, -- ꒤
+ category="so",
+ cjkwd="w",
+ description="YI RADICAL DDUR",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0xA4A4,
},
[0xA4A5]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="YI RADICAL BUR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA4A5, -- ꒥
+ category="so",
+ cjkwd="w",
+ description="YI RADICAL BUR",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0xA4A5,
},
[0xA4A6]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="YI RADICAL GGUO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA4A6, -- ꒦
+ category="so",
+ cjkwd="w",
+ description="YI RADICAL GGUO",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0xA4A6,
},
[0xA4A7]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="YI RADICAL NYOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA4A7, -- ꒧
+ category="so",
+ cjkwd="w",
+ description="YI RADICAL NYOP",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0xA4A7,
},
[0xA4A8]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="YI RADICAL TU",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA4A8, -- ꒨
+ category="so",
+ cjkwd="w",
+ description="YI RADICAL TU",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0xA4A8,
},
[0xA4A9]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="YI RADICAL OP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA4A9, -- ꒩
+ category="so",
+ cjkwd="w",
+ description="YI RADICAL OP",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0xA4A9,
},
[0xA4AA]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="YI RADICAL JJUT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA4AA, -- ꒪
+ category="so",
+ cjkwd="w",
+ description="YI RADICAL JJUT",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0xA4AA,
},
[0xA4AB]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="YI RADICAL ZOT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA4AB, -- ꒫
+ category="so",
+ cjkwd="w",
+ description="YI RADICAL ZOT",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0xA4AB,
},
[0xA4AC]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="YI RADICAL PYT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA4AC, -- ꒬
+ category="so",
+ cjkwd="w",
+ description="YI RADICAL PYT",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0xA4AC,
},
[0xA4AD]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="YI RADICAL HMO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA4AD, -- ꒭
+ category="so",
+ cjkwd="w",
+ description="YI RADICAL HMO",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0xA4AD,
},
[0xA4AE]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="YI RADICAL YIT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA4AE, -- ꒮
+ category="so",
+ cjkwd="w",
+ description="YI RADICAL YIT",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0xA4AE,
},
[0xA4AF]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="YI RADICAL VUR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA4AF, -- ꒯
+ category="so",
+ cjkwd="w",
+ description="YI RADICAL VUR",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0xA4AF,
},
[0xA4B0]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="YI RADICAL SHY",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA4B0, -- ꒰
+ category="so",
+ cjkwd="w",
+ description="YI RADICAL SHY",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0xA4B0,
},
[0xA4B1]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="YI RADICAL VEP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA4B1, -- ꒱
+ category="so",
+ cjkwd="w",
+ description="YI RADICAL VEP",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0xA4B1,
},
[0xA4B2]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="YI RADICAL ZA",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA4B2, -- ꒲
+ category="so",
+ cjkwd="w",
+ description="YI RADICAL ZA",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0xA4B2,
},
[0xA4B3]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="YI RADICAL JO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA4B3, -- ꒳
+ category="so",
+ cjkwd="w",
+ description="YI RADICAL JO",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0xA4B3,
},
[0xA4B4]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="YI RADICAL NZUP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA4B4, -- ꒴
+ category="so",
+ cjkwd="w",
+ description="YI RADICAL NZUP",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0xA4B4,
},
[0xA4B5]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="YI RADICAL JJY",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA4B5, -- ꒵
+ category="so",
+ cjkwd="w",
+ description="YI RADICAL JJY",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0xA4B5,
},
[0xA4B6]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="YI RADICAL GOT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA4B6, -- ꒶
+ category="so",
+ cjkwd="w",
+ description="YI RADICAL GOT",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0xA4B6,
},
[0xA4B7]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="YI RADICAL JJIE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA4B7, -- ꒷
+ category="so",
+ cjkwd="w",
+ description="YI RADICAL JJIE",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0xA4B7,
},
[0xA4B8]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="YI RADICAL WO",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA4B8, -- ꒸
+ category="so",
+ cjkwd="w",
+ description="YI RADICAL WO",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0xA4B8,
},
[0xA4B9]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="YI RADICAL DU",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA4B9, -- ꒹
+ category="so",
+ cjkwd="w",
+ description="YI RADICAL DU",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0xA4B9,
},
[0xA4BA]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="YI RADICAL SHUR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA4BA, -- ꒺
+ category="so",
+ cjkwd="w",
+ description="YI RADICAL SHUR",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0xA4BA,
},
[0xA4BB]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="YI RADICAL LIE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA4BB, -- ꒻
+ category="so",
+ cjkwd="w",
+ description="YI RADICAL LIE",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0xA4BB,
},
[0xA4BC]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="YI RADICAL CY",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA4BC, -- ꒼
+ category="so",
+ cjkwd="w",
+ description="YI RADICAL CY",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0xA4BC,
},
[0xA4BD]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="YI RADICAL CUOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA4BD, -- ꒽
+ category="so",
+ cjkwd="w",
+ description="YI RADICAL CUOP",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0xA4BD,
},
[0xA4BE]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="YI RADICAL CIP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA4BE, -- ꒾
+ category="so",
+ cjkwd="w",
+ description="YI RADICAL CIP",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0xA4BE,
},
[0xA4BF]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="YI RADICAL HXOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA4BF, -- ꒿
+ category="so",
+ cjkwd="w",
+ description="YI RADICAL HXOP",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0xA4BF,
},
[0xA4C0]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="YI RADICAL SHAT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA4C0, -- ꓀
+ category="so",
+ cjkwd="w",
+ description="YI RADICAL SHAT",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0xA4C0,
},
[0xA4C1]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="YI RADICAL ZUR",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA4C1, -- ꓁
+ category="so",
+ cjkwd="w",
+ description="YI RADICAL ZUR",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0xA4C1,
},
[0xA4C2]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="YI RADICAL SHOP",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA4C2, -- ꓂
+ category="so",
+ cjkwd="w",
+ description="YI RADICAL SHOP",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0xA4C2,
},
[0xA4C3]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="YI RADICAL CHE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA4C3, -- ꓃
+ category="so",
+ cjkwd="w",
+ description="YI RADICAL CHE",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0xA4C3,
},
[0xA4C4]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="YI RADICAL ZZIET",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA4C4, -- ꓄
+ category="so",
+ cjkwd="w",
+ description="YI RADICAL ZZIET",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0xA4C4,
},
[0xA4C5]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="YI RADICAL NBIE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA4C5, -- ꓅
+ category="so",
+ cjkwd="w",
+ description="YI RADICAL NBIE",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0xA4C5,
},
[0xA4C6]={
- ["category"]="so",
- ["cjkwd"]="w",
- ["description"]="YI RADICAL KE",
- ["linebreak"]="id",
- ["unicodeslot"]=0xA4C6, -- ꓆
+ category="so",
+ cjkwd="w",
+ description="YI RADICAL KE",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0xA4C6,
},
[0xA700]={
- ["category"]="sk",
- ["description"]="MODIFIER LETTER CHINESE TONE YIN PING",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA700, -- ꜀
+ category="sk",
+ description="MODIFIER LETTER CHINESE TONE YIN PING",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0xA700,
},
[0xA701]={
- ["category"]="sk",
- ["description"]="MODIFIER LETTER CHINESE TONE YANG PING",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA701, -- ꜁
+ category="sk",
+ description="MODIFIER LETTER CHINESE TONE YANG PING",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0xA701,
},
[0xA702]={
- ["category"]="sk",
- ["description"]="MODIFIER LETTER CHINESE TONE YIN SHANG",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA702, -- ꜂
+ category="sk",
+ description="MODIFIER LETTER CHINESE TONE YIN SHANG",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0xA702,
},
[0xA703]={
- ["category"]="sk",
- ["description"]="MODIFIER LETTER CHINESE TONE YANG SHANG",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA703, -- ꜃
+ category="sk",
+ description="MODIFIER LETTER CHINESE TONE YANG SHANG",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0xA703,
},
[0xA704]={
- ["category"]="sk",
- ["description"]="MODIFIER LETTER CHINESE TONE YIN QU",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA704, -- ꜄
+ category="sk",
+ description="MODIFIER LETTER CHINESE TONE YIN QU",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0xA704,
},
[0xA705]={
- ["category"]="sk",
- ["description"]="MODIFIER LETTER CHINESE TONE YANG QU",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA705, -- ꜅
+ category="sk",
+ description="MODIFIER LETTER CHINESE TONE YANG QU",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0xA705,
},
[0xA706]={
- ["category"]="sk",
- ["description"]="MODIFIER LETTER CHINESE TONE YIN RU",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA706, -- ꜆
+ category="sk",
+ description="MODIFIER LETTER CHINESE TONE YIN RU",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0xA706,
},
[0xA707]={
- ["category"]="sk",
- ["description"]="MODIFIER LETTER CHINESE TONE YANG RU",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA707, -- ꜇
+ category="sk",
+ description="MODIFIER LETTER CHINESE TONE YANG RU",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0xA707,
},
[0xA708]={
- ["category"]="sk",
- ["description"]="MODIFIER LETTER EXTRA-HIGH DOTTED TONE BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA708, -- ꜈
+ category="sk",
+ description="MODIFIER LETTER EXTRA-HIGH DOTTED TONE BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0xA708,
},
[0xA709]={
- ["category"]="sk",
- ["description"]="MODIFIER LETTER HIGH DOTTED TONE BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA709, -- ꜉
+ category="sk",
+ description="MODIFIER LETTER HIGH DOTTED TONE BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0xA709,
},
[0xA70A]={
- ["category"]="sk",
- ["description"]="MODIFIER LETTER MID DOTTED TONE BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA70A, -- ꜊
+ category="sk",
+ description="MODIFIER LETTER MID DOTTED TONE BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0xA70A,
},
[0xA70B]={
- ["category"]="sk",
- ["description"]="MODIFIER LETTER LOW DOTTED TONE BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA70B, -- ꜋
+ category="sk",
+ description="MODIFIER LETTER LOW DOTTED TONE BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0xA70B,
},
[0xA70C]={
- ["category"]="sk",
- ["description"]="MODIFIER LETTER EXTRA-LOW DOTTED TONE BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA70C, -- ꜌
+ category="sk",
+ description="MODIFIER LETTER EXTRA-LOW DOTTED TONE BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0xA70C,
},
[0xA70D]={
- ["category"]="sk",
- ["description"]="MODIFIER LETTER EXTRA-HIGH DOTTED LEFT-STEM TONE BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA70D, -- ꜍
+ category="sk",
+ description="MODIFIER LETTER EXTRA-HIGH DOTTED LEFT-STEM TONE BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0xA70D,
},
[0xA70E]={
- ["category"]="sk",
- ["description"]="MODIFIER LETTER HIGH DOTTED LEFT-STEM TONE BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA70E, -- ꜎
+ category="sk",
+ description="MODIFIER LETTER HIGH DOTTED LEFT-STEM TONE BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0xA70E,
},
[0xA70F]={
- ["category"]="sk",
- ["description"]="MODIFIER LETTER MID DOTTED LEFT-STEM TONE BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA70F, -- ꜏
+ category="sk",
+ description="MODIFIER LETTER MID DOTTED LEFT-STEM TONE BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0xA70F,
},
[0xA710]={
- ["category"]="sk",
- ["description"]="MODIFIER LETTER LOW DOTTED LEFT-STEM TONE BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA710, -- ꜐
+ category="sk",
+ description="MODIFIER LETTER LOW DOTTED LEFT-STEM TONE BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0xA710,
},
[0xA711]={
- ["category"]="sk",
- ["description"]="MODIFIER LETTER EXTRA-LOW DOTTED LEFT-STEM TONE BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA711, -- ꜑
+ category="sk",
+ description="MODIFIER LETTER EXTRA-LOW DOTTED LEFT-STEM TONE BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0xA711,
},
[0xA712]={
- ["category"]="sk",
- ["description"]="MODIFIER LETTER EXTRA-HIGH LEFT-STEM TONE BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA712, -- ꜒
+ category="sk",
+ description="MODIFIER LETTER EXTRA-HIGH LEFT-STEM TONE BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0xA712,
},
[0xA713]={
- ["category"]="sk",
- ["description"]="MODIFIER LETTER HIGH LEFT-STEM TONE BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA713, -- ꜓
+ category="sk",
+ description="MODIFIER LETTER HIGH LEFT-STEM TONE BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0xA713,
},
[0xA714]={
- ["category"]="sk",
- ["description"]="MODIFIER LETTER MID LEFT-STEM TONE BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA714, -- ꜔
+ category="sk",
+ description="MODIFIER LETTER MID LEFT-STEM TONE BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0xA714,
},
[0xA715]={
- ["category"]="sk",
- ["description"]="MODIFIER LETTER LOW LEFT-STEM TONE BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA715, -- ꜕
+ category="sk",
+ description="MODIFIER LETTER LOW LEFT-STEM TONE BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0xA715,
},
[0xA716]={
- ["category"]="sk",
- ["description"]="MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA716, -- ꜖
+ category="sk",
+ description="MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0xA716,
},
[0xA717]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER DOT VERTICAL BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA717, -- ꜗ
+ category="lm",
+ description="MODIFIER LETTER DOT VERTICAL BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0xA717,
},
[0xA718]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER DOT SLASH",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA718, -- ꜘ
+ category="lm",
+ description="MODIFIER LETTER DOT SLASH",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0xA718,
},
[0xA719]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER DOT HORIZONTAL BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA719, -- ꜙ
+ category="lm",
+ description="MODIFIER LETTER DOT HORIZONTAL BAR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0xA719,
},
[0xA71A]={
- ["category"]="lm",
- ["description"]="MODIFIER LETTER LOWER RIGHT CORNER ANGLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA71A, -- ꜚ
+ category="lm",
+ description="MODIFIER LETTER LOWER RIGHT CORNER ANGLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0xA71A,
},
[0xA720]={
- ["category"]="sk",
- ["description"]="MODIFIER LETTER STRESS AND HIGH TONE",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA720, -- ꜠
+ category="sk",
+ description="MODIFIER LETTER STRESS AND HIGH TONE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0xA720,
},
[0xA721]={
- ["category"]="sk",
- ["description"]="MODIFIER LETTER STRESS AND LOW TONE",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA721, -- ꜡
+ category="sk",
+ description="MODIFIER LETTER STRESS AND LOW TONE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0xA721,
},
[0xA800]={
- ["category"]="lo",
- ["description"]="SYLOTI NAGRI LETTER A",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA800, -- ꠀ
+ category="lo",
+ description="SYLOTI NAGRI LETTER A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA800,
},
[0xA801]={
- ["category"]="lo",
- ["description"]="SYLOTI NAGRI LETTER I",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA801, -- ꠁ
+ category="lo",
+ description="SYLOTI NAGRI LETTER I",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA801,
},
[0xA802]={
- ["category"]="mc",
- ["description"]="SYLOTI NAGRI SIGN DVISVARA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xA802, -- ꠂ
+ category="mc",
+ description="SYLOTI NAGRI SIGN DVISVARA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xA802,
},
[0xA803]={
- ["category"]="lo",
- ["description"]="SYLOTI NAGRI LETTER U",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA803, -- ꠃ
+ category="lo",
+ description="SYLOTI NAGRI LETTER U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA803,
},
[0xA804]={
- ["category"]="lo",
- ["description"]="SYLOTI NAGRI LETTER E",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA804, -- ꠄ
+ category="lo",
+ description="SYLOTI NAGRI LETTER E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA804,
},
[0xA805]={
- ["category"]="lo",
- ["description"]="SYLOTI NAGRI LETTER O",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA805, -- ꠅ
+ category="lo",
+ description="SYLOTI NAGRI LETTER O",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA805,
},
[0xA806]={
- ["category"]="mn",
- ["description"]="SYLOTI NAGRI SIGN HASANTA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xA806, -- ꠆
+ category="mn",
+ description="SYLOTI NAGRI SIGN HASANTA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xA806,
},
[0xA807]={
- ["category"]="lo",
- ["description"]="SYLOTI NAGRI LETTER KO",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA807, -- ꠇ
+ category="lo",
+ description="SYLOTI NAGRI LETTER KO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA807,
},
[0xA808]={
- ["category"]="lo",
- ["description"]="SYLOTI NAGRI LETTER KHO",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA808, -- ꠈ
+ category="lo",
+ description="SYLOTI NAGRI LETTER KHO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA808,
},
[0xA809]={
- ["category"]="lo",
- ["description"]="SYLOTI NAGRI LETTER GO",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA809, -- ꠉ
+ category="lo",
+ description="SYLOTI NAGRI LETTER GO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA809,
},
[0xA80A]={
- ["category"]="lo",
- ["description"]="SYLOTI NAGRI LETTER GHO",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA80A, -- ꠊ
+ category="lo",
+ description="SYLOTI NAGRI LETTER GHO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA80A,
},
[0xA80B]={
- ["category"]="mn",
- ["description"]="SYLOTI NAGRI SIGN ANUSVARA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xA80B, -- ꠋ
+ category="mn",
+ description="SYLOTI NAGRI SIGN ANUSVARA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xA80B,
},
[0xA80C]={
- ["category"]="lo",
- ["description"]="SYLOTI NAGRI LETTER CO",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA80C, -- ꠌ
+ category="lo",
+ description="SYLOTI NAGRI LETTER CO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA80C,
},
[0xA80D]={
- ["category"]="lo",
- ["description"]="SYLOTI NAGRI LETTER CHO",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA80D, -- ꠍ
+ category="lo",
+ description="SYLOTI NAGRI LETTER CHO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA80D,
},
[0xA80E]={
- ["category"]="lo",
- ["description"]="SYLOTI NAGRI LETTER JO",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA80E, -- ꠎ
+ category="lo",
+ description="SYLOTI NAGRI LETTER JO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA80E,
},
[0xA80F]={
- ["category"]="lo",
- ["description"]="SYLOTI NAGRI LETTER JHO",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA80F, -- ꠏ
+ category="lo",
+ description="SYLOTI NAGRI LETTER JHO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA80F,
},
[0xA810]={
- ["category"]="lo",
- ["description"]="SYLOTI NAGRI LETTER TTO",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA810, -- ꠐ
+ category="lo",
+ description="SYLOTI NAGRI LETTER TTO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA810,
},
[0xA811]={
- ["category"]="lo",
- ["description"]="SYLOTI NAGRI LETTER TTHO",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA811, -- ꠑ
+ category="lo",
+ description="SYLOTI NAGRI LETTER TTHO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA811,
},
[0xA812]={
- ["category"]="lo",
- ["description"]="SYLOTI NAGRI LETTER DDO",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA812, -- ꠒ
+ category="lo",
+ description="SYLOTI NAGRI LETTER DDO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA812,
},
[0xA813]={
- ["category"]="lo",
- ["description"]="SYLOTI NAGRI LETTER DDHO",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA813, -- ꠓ
+ category="lo",
+ description="SYLOTI NAGRI LETTER DDHO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA813,
},
[0xA814]={
- ["category"]="lo",
- ["description"]="SYLOTI NAGRI LETTER TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA814, -- ꠔ
+ category="lo",
+ description="SYLOTI NAGRI LETTER TO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA814,
},
[0xA815]={
- ["category"]="lo",
- ["description"]="SYLOTI NAGRI LETTER THO",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA815, -- ꠕ
+ category="lo",
+ description="SYLOTI NAGRI LETTER THO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA815,
},
[0xA816]={
- ["category"]="lo",
- ["description"]="SYLOTI NAGRI LETTER DO",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA816, -- ꠖ
+ category="lo",
+ description="SYLOTI NAGRI LETTER DO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA816,
},
[0xA817]={
- ["category"]="lo",
- ["description"]="SYLOTI NAGRI LETTER DHO",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA817, -- ꠗ
+ category="lo",
+ description="SYLOTI NAGRI LETTER DHO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA817,
},
[0xA818]={
- ["category"]="lo",
- ["description"]="SYLOTI NAGRI LETTER NO",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA818, -- ꠘ
+ category="lo",
+ description="SYLOTI NAGRI LETTER NO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA818,
},
[0xA819]={
- ["category"]="lo",
- ["description"]="SYLOTI NAGRI LETTER PO",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA819, -- ꠙ
+ category="lo",
+ description="SYLOTI NAGRI LETTER PO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA819,
},
[0xA81A]={
- ["category"]="lo",
- ["description"]="SYLOTI NAGRI LETTER PHO",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA81A, -- ꠚ
+ category="lo",
+ description="SYLOTI NAGRI LETTER PHO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA81A,
},
[0xA81B]={
- ["category"]="lo",
- ["description"]="SYLOTI NAGRI LETTER BO",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA81B, -- ꠛ
+ category="lo",
+ description="SYLOTI NAGRI LETTER BO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA81B,
},
[0xA81C]={
- ["category"]="lo",
- ["description"]="SYLOTI NAGRI LETTER BHO",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA81C, -- ꠜ
+ category="lo",
+ description="SYLOTI NAGRI LETTER BHO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA81C,
},
[0xA81D]={
- ["category"]="lo",
- ["description"]="SYLOTI NAGRI LETTER MO",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA81D, -- ꠝ
+ category="lo",
+ description="SYLOTI NAGRI LETTER MO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA81D,
},
[0xA81E]={
- ["category"]="lo",
- ["description"]="SYLOTI NAGRI LETTER RO",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA81E, -- ꠞ
+ category="lo",
+ description="SYLOTI NAGRI LETTER RO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA81E,
},
[0xA81F]={
- ["category"]="lo",
- ["description"]="SYLOTI NAGRI LETTER LO",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA81F, -- ꠟ
+ category="lo",
+ description="SYLOTI NAGRI LETTER LO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA81F,
},
[0xA820]={
- ["category"]="lo",
- ["description"]="SYLOTI NAGRI LETTER RRO",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA820, -- ꠠ
+ category="lo",
+ description="SYLOTI NAGRI LETTER RRO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA820,
},
[0xA821]={
- ["category"]="lo",
- ["description"]="SYLOTI NAGRI LETTER SO",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA821, -- ꠡ
+ category="lo",
+ description="SYLOTI NAGRI LETTER SO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA821,
},
[0xA822]={
- ["category"]="lo",
- ["description"]="SYLOTI NAGRI LETTER HO",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA822, -- ꠢ
+ category="lo",
+ description="SYLOTI NAGRI LETTER HO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA822,
},
[0xA823]={
- ["category"]="mc",
- ["description"]="SYLOTI NAGRI VOWEL SIGN A",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xA823, -- ꠣ
+ category="mc",
+ description="SYLOTI NAGRI VOWEL SIGN A",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0xA823,
},
[0xA824]={
- ["category"]="mc",
- ["description"]="SYLOTI NAGRI VOWEL SIGN I",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xA824, -- ꠤ
+ category="mc",
+ description="SYLOTI NAGRI VOWEL SIGN I",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0xA824,
},
[0xA825]={
- ["category"]="mn",
- ["description"]="SYLOTI NAGRI VOWEL SIGN U",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xA825, -- ꠥ
+ category="mn",
+ description="SYLOTI NAGRI VOWEL SIGN U",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xA825,
},
[0xA826]={
- ["category"]="mn",
- ["description"]="SYLOTI NAGRI VOWEL SIGN E",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xA826, -- ꠦ
+ category="mn",
+ description="SYLOTI NAGRI VOWEL SIGN E",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xA826,
},
[0xA827]={
- ["category"]="mc",
- ["description"]="SYLOTI NAGRI VOWEL SIGN OO",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xA827, -- ꠧ
+ category="mc",
+ description="SYLOTI NAGRI VOWEL SIGN OO",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0xA827,
},
[0xA828]={
- ["category"]="so",
- ["description"]="SYLOTI NAGRI POETRY MARK-0x0001",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA828, -- ꠨
+ category="so",
+ description="SYLOTI NAGRI POETRY MARK-0x0001",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0xA828,
},
[0xA829]={
- ["category"]="so",
- ["description"]="SYLOTI NAGRI POETRY MARK-0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA829, -- ꠩
+ category="so",
+ description="SYLOTI NAGRI POETRY MARK-0x0002",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0xA829,
},
[0xA82A]={
- ["category"]="so",
- ["description"]="SYLOTI NAGRI POETRY MARK-0x0003",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA82A, -- ꠪
+ category="so",
+ description="SYLOTI NAGRI POETRY MARK-0x0003",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0xA82A,
},
[0xA82B]={
- ["category"]="so",
- ["description"]="SYLOTI NAGRI POETRY MARK-0x0004",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA82B, -- ꠫
+ category="so",
+ description="SYLOTI NAGRI POETRY MARK-0x0004",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0xA82B,
},
[0xA840]={
- ["category"]="lo",
- ["description"]="PHAGS-PA LETTER KA",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA840, -- ꡀ
+ category="lo",
+ description="PHAGS-PA LETTER KA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA840,
},
[0xA841]={
- ["category"]="lo",
- ["description"]="PHAGS-PA LETTER KHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA841, -- ꡁ
+ category="lo",
+ description="PHAGS-PA LETTER KHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA841,
},
[0xA842]={
- ["category"]="lo",
- ["description"]="PHAGS-PA LETTER GA",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA842, -- ꡂ
+ category="lo",
+ description="PHAGS-PA LETTER GA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA842,
},
[0xA843]={
- ["category"]="lo",
- ["description"]="PHAGS-PA LETTER NGA",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA843, -- ꡃ
+ category="lo",
+ description="PHAGS-PA LETTER NGA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA843,
},
[0xA844]={
- ["category"]="lo",
- ["description"]="PHAGS-PA LETTER CA",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA844, -- ꡄ
+ category="lo",
+ description="PHAGS-PA LETTER CA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA844,
},
[0xA845]={
- ["category"]="lo",
- ["description"]="PHAGS-PA LETTER CHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA845, -- ꡅ
+ category="lo",
+ description="PHAGS-PA LETTER CHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA845,
},
[0xA846]={
- ["category"]="lo",
- ["description"]="PHAGS-PA LETTER JA",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA846, -- ꡆ
+ category="lo",
+ description="PHAGS-PA LETTER JA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA846,
},
[0xA847]={
- ["category"]="lo",
- ["description"]="PHAGS-PA LETTER NYA",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA847, -- ꡇ
+ category="lo",
+ description="PHAGS-PA LETTER NYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA847,
},
[0xA848]={
- ["category"]="lo",
- ["description"]="PHAGS-PA LETTER TA",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA848, -- ꡈ
+ category="lo",
+ description="PHAGS-PA LETTER TA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA848,
},
[0xA849]={
- ["category"]="lo",
- ["description"]="PHAGS-PA LETTER THA",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA849, -- ꡉ
+ category="lo",
+ description="PHAGS-PA LETTER THA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA849,
},
[0xA84A]={
- ["category"]="lo",
- ["description"]="PHAGS-PA LETTER DA",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA84A, -- ꡊ
+ category="lo",
+ description="PHAGS-PA LETTER DA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA84A,
},
[0xA84B]={
- ["category"]="lo",
- ["description"]="PHAGS-PA LETTER NA",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA84B, -- ꡋ
+ category="lo",
+ description="PHAGS-PA LETTER NA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA84B,
},
[0xA84C]={
- ["category"]="lo",
- ["description"]="PHAGS-PA LETTER PA",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA84C, -- ꡌ
+ category="lo",
+ description="PHAGS-PA LETTER PA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA84C,
},
[0xA84D]={
- ["category"]="lo",
- ["description"]="PHAGS-PA LETTER PHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA84D, -- ꡍ
+ category="lo",
+ description="PHAGS-PA LETTER PHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA84D,
},
[0xA84E]={
- ["category"]="lo",
- ["description"]="PHAGS-PA LETTER BA",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA84E, -- ꡎ
+ category="lo",
+ description="PHAGS-PA LETTER BA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA84E,
},
[0xA84F]={
- ["category"]="lo",
- ["description"]="PHAGS-PA LETTER MA",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA84F, -- ꡏ
+ category="lo",
+ description="PHAGS-PA LETTER MA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA84F,
},
[0xA850]={
- ["category"]="lo",
- ["description"]="PHAGS-PA LETTER TSA",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA850, -- ꡐ
+ category="lo",
+ description="PHAGS-PA LETTER TSA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA850,
},
[0xA851]={
- ["category"]="lo",
- ["description"]="PHAGS-PA LETTER TSHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA851, -- ꡑ
+ category="lo",
+ description="PHAGS-PA LETTER TSHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA851,
},
[0xA852]={
- ["category"]="lo",
- ["description"]="PHAGS-PA LETTER DZA",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA852, -- ꡒ
+ category="lo",
+ description="PHAGS-PA LETTER DZA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA852,
},
[0xA853]={
- ["category"]="lo",
- ["description"]="PHAGS-PA LETTER WA",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA853, -- ꡓ
+ category="lo",
+ description="PHAGS-PA LETTER WA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA853,
},
[0xA854]={
- ["category"]="lo",
- ["description"]="PHAGS-PA LETTER ZHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA854, -- ꡔ
+ category="lo",
+ description="PHAGS-PA LETTER ZHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA854,
},
[0xA855]={
- ["category"]="lo",
- ["description"]="PHAGS-PA LETTER ZA",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA855, -- ꡕ
+ category="lo",
+ description="PHAGS-PA LETTER ZA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA855,
},
[0xA856]={
- ["category"]="lo",
- ["description"]="PHAGS-PA LETTER SMALL A",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA856, -- ꡖ
+ category="lo",
+ description="PHAGS-PA LETTER SMALL A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA856,
},
[0xA857]={
- ["category"]="lo",
- ["description"]="PHAGS-PA LETTER YA",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA857, -- ꡗ
+ category="lo",
+ description="PHAGS-PA LETTER YA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA857,
},
[0xA858]={
- ["category"]="lo",
- ["description"]="PHAGS-PA LETTER RA",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA858, -- ꡘ
+ category="lo",
+ description="PHAGS-PA LETTER RA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA858,
},
[0xA859]={
- ["category"]="lo",
- ["description"]="PHAGS-PA LETTER LA",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA859, -- ꡙ
+ category="lo",
+ description="PHAGS-PA LETTER LA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA859,
},
[0xA85A]={
- ["category"]="lo",
- ["description"]="PHAGS-PA LETTER SHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA85A, -- ꡚ
+ category="lo",
+ description="PHAGS-PA LETTER SHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA85A,
},
[0xA85B]={
- ["category"]="lo",
- ["description"]="PHAGS-PA LETTER SA",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA85B, -- ꡛ
+ category="lo",
+ description="PHAGS-PA LETTER SA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA85B,
},
[0xA85C]={
- ["category"]="lo",
- ["description"]="PHAGS-PA LETTER HA",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA85C, -- ꡜ
+ category="lo",
+ description="PHAGS-PA LETTER HA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA85C,
},
[0xA85D]={
- ["category"]="lo",
- ["description"]="PHAGS-PA LETTER A",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA85D, -- ꡝ
+ category="lo",
+ description="PHAGS-PA LETTER A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA85D,
},
[0xA85E]={
- ["category"]="lo",
- ["description"]="PHAGS-PA LETTER I",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA85E, -- ꡞ
+ category="lo",
+ description="PHAGS-PA LETTER I",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA85E,
},
[0xA85F]={
- ["category"]="lo",
- ["description"]="PHAGS-PA LETTER U",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA85F, -- ꡟ
+ category="lo",
+ description="PHAGS-PA LETTER U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA85F,
},
[0xA860]={
- ["category"]="lo",
- ["description"]="PHAGS-PA LETTER E",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA860, -- ꡠ
+ category="lo",
+ description="PHAGS-PA LETTER E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA860,
},
[0xA861]={
- ["category"]="lo",
- ["description"]="PHAGS-PA LETTER O",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA861, -- ꡡ
+ category="lo",
+ description="PHAGS-PA LETTER O",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA861,
},
[0xA862]={
- ["category"]="lo",
- ["description"]="PHAGS-PA LETTER QA",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA862, -- ꡢ
+ category="lo",
+ description="PHAGS-PA LETTER QA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA862,
},
[0xA863]={
- ["category"]="lo",
- ["description"]="PHAGS-PA LETTER XA",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA863, -- ꡣ
+ category="lo",
+ description="PHAGS-PA LETTER XA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA863,
},
[0xA864]={
- ["category"]="lo",
- ["description"]="PHAGS-PA LETTER FA",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA864, -- ꡤ
+ category="lo",
+ description="PHAGS-PA LETTER FA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA864,
},
[0xA865]={
- ["category"]="lo",
- ["description"]="PHAGS-PA LETTER GGA",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA865, -- ꡥ
+ category="lo",
+ description="PHAGS-PA LETTER GGA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA865,
},
[0xA866]={
- ["category"]="lo",
- ["description"]="PHAGS-PA LETTER EE",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA866, -- ꡦ
+ category="lo",
+ description="PHAGS-PA LETTER EE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA866,
},
[0xA867]={
- ["category"]="lo",
- ["description"]="PHAGS-PA SUBJOINED LETTER WA",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA867, -- ꡧ
+ category="lo",
+ description="PHAGS-PA SUBJOINED LETTER WA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA867,
},
[0xA868]={
- ["category"]="lo",
- ["description"]="PHAGS-PA SUBJOINED LETTER YA",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA868, -- ꡨ
+ category="lo",
+ description="PHAGS-PA SUBJOINED LETTER YA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA868,
},
[0xA869]={
- ["category"]="lo",
- ["description"]="PHAGS-PA LETTER TTA",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA869, -- ꡩ
+ category="lo",
+ description="PHAGS-PA LETTER TTA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA869,
},
[0xA86A]={
- ["category"]="lo",
- ["description"]="PHAGS-PA LETTER TTHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA86A, -- ꡪ
+ category="lo",
+ description="PHAGS-PA LETTER TTHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA86A,
},
[0xA86B]={
- ["category"]="lo",
- ["description"]="PHAGS-PA LETTER DDA",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA86B, -- ꡫ
+ category="lo",
+ description="PHAGS-PA LETTER DDA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA86B,
},
[0xA86C]={
- ["category"]="lo",
- ["description"]="PHAGS-PA LETTER NNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA86C, -- ꡬ
+ category="lo",
+ description="PHAGS-PA LETTER NNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA86C,
},
[0xA86D]={
- ["category"]="lo",
- ["description"]="PHAGS-PA LETTER ALTERNATE YA",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA86D, -- ꡭ
+ category="lo",
+ description="PHAGS-PA LETTER ALTERNATE YA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA86D,
},
[0xA86E]={
- ["category"]="lo",
- ["description"]="PHAGS-PA LETTER VOICELESS SHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA86E, -- ꡮ
+ category="lo",
+ description="PHAGS-PA LETTER VOICELESS SHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA86E,
},
[0xA86F]={
- ["category"]="lo",
- ["description"]="PHAGS-PA LETTER VOICED HA",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA86F, -- ꡯ
+ category="lo",
+ description="PHAGS-PA LETTER VOICED HA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA86F,
},
[0xA870]={
- ["category"]="lo",
- ["description"]="PHAGS-PA LETTER ASPIRATED FA",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA870, -- ꡰ
+ category="lo",
+ description="PHAGS-PA LETTER ASPIRATED FA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA870,
},
[0xA871]={
- ["category"]="lo",
- ["description"]="PHAGS-PA SUBJOINED LETTER RA",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA871, -- ꡱ
+ category="lo",
+ description="PHAGS-PA SUBJOINED LETTER RA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA871,
},
[0xA872]={
- ["category"]="lo",
- ["description"]="PHAGS-PA SUPERFIXED LETTER RA",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA872, -- ꡲ
+ category="lo",
+ description="PHAGS-PA SUPERFIXED LETTER RA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA872,
},
[0xA873]={
- ["category"]="lo",
- ["description"]="PHAGS-PA LETTER CANDRABINDU",
- ["linebreak"]="al",
- ["unicodeslot"]=0xA873, -- ꡳ
+ category="lo",
+ description="PHAGS-PA LETTER CANDRABINDU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA873,
},
[0xA874]={
- ["category"]="po",
- ["description"]="PHAGS-PA SINGLE HEAD MARK",
- ["linebreak"]="bb",
- ["unicodeslot"]=0xA874, -- ꡴
+ category="po",
+ description="PHAGS-PA SINGLE HEAD MARK",
+ direction="on",
+ linebreak="bb",
+ unicodeslot=0xA874,
},
[0xA875]={
- ["category"]="po",
- ["description"]="PHAGS-PA DOUBLE HEAD MARK",
- ["linebreak"]="bb",
- ["unicodeslot"]=0xA875, -- ꡵
+ category="po",
+ description="PHAGS-PA DOUBLE HEAD MARK",
+ direction="on",
+ linebreak="bb",
+ unicodeslot=0xA875,
},
[0xA876]={
- ["category"]="po",
- ["description"]="PHAGS-PA MARK SHAD",
- ["linebreak"]="ex",
- ["unicodeslot"]=0xA876, -- ꡶
+ category="po",
+ description="PHAGS-PA MARK SHAD",
+ direction="on",
+ linebreak="ex",
+ unicodeslot=0xA876,
},
[0xA877]={
- ["category"]="po",
- ["description"]="PHAGS-PA MARK DOUBLE SHAD",
- ["linebreak"]="ex",
- ["unicodeslot"]=0xA877, -- ꡷
+ category="po",
+ description="PHAGS-PA MARK DOUBLE SHAD",
+ direction="on",
+ linebreak="ex",
+ unicodeslot=0xA877,
},
[0xAC00]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="<Hangul Syllable, First>",
- ["linebreak"]="h2",
- ["unicodeslot"]=0xAC00, -- 가
- },
- [0xD7A3]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="<Hangul Syllable, Last>",
- ["linebreak"]="h3",
- ["unicodeslot"]=0xD7A3, -- 힣
+ category="lo",
+ cjkwd="w",
+ description="<Hangul Syllable>",
+ direction="l",
+ linebreak="h2",
+ unicodeslot=0xAC00,
+ range=0xD7A3,
},
[0xD800]={
- ["category"]="cs",
- ["description"]="<Non Private Use High Surrogate, First>",
- ["linebreak"]="sg",
- ["unicodeslot"]=0xD800, --
+ category="cs",
+ description="<Non Private Use High Surrogate, First>",
+ direction="l",
+ linebreak="sg",
+ unicodeslot=0xD800,
},
[0xDB7F]={
- ["category"]="cs",
- ["description"]="<Non Private Use High Surrogate, Last>",
- ["linebreak"]="sg",
- ["unicodeslot"]=0xDB7F, --
+ category="cs",
+ description="<Non Private Use High Surrogate, Last>",
+ direction="l",
+ linebreak="sg",
+ unicodeslot=0xDB7F,
},
[0xDB80]={
- ["category"]="cs",
- ["description"]="<Private Use High Surrogate, First>",
- ["linebreak"]="sg",
- ["unicodeslot"]=0xDB80, --
+ category="cs",
+ description="<Private Use High Surrogate, First>",
+ direction="l",
+ linebreak="sg",
+ unicodeslot=0xDB80,
},
[0xDBFF]={
- ["category"]="cs",
- ["description"]="<Private Use High Surrogate, Last>",
- ["linebreak"]="sg",
- ["unicodeslot"]=0xDBFF, --
+ category="cs",
+ description="<Private Use High Surrogate, Last>",
+ direction="l",
+ linebreak="sg",
+ unicodeslot=0xDBFF,
},
[0xDC00]={
- ["category"]="cs",
- ["description"]="<Low Surrogate, First>",
- ["linebreak"]="sg",
- ["unicodeslot"]=0xDC00, --
+ category="cs",
+ description="<Low Surrogate, First>",
+ direction="l",
+ linebreak="sg",
+ unicodeslot=0xDC00,
},
[0xDFFF]={
- ["category"]="cs",
- ["description"]="<Low Surrogate, Last>",
- ["linebreak"]="sg",
- ["unicodeslot"]=0xDFFF, --
+ category="cs",
+ description="<Low Surrogate, Last>",
+ direction="l",
+ linebreak="sg",
+ unicodeslot=0xDFFF,
},
[0xE000]={
- ["category"]="co",
- ["cjkwd"]="a",
- ["description"]="<Private Use, First>",
- ["unicodeslot"]=0xE000, -- 
+ category="co",
+ cjkwd="a",
+ description="<Private Use, First>",
+ direction="l",
+ unicodeslot=0xE000,
},
[0xF8FF]={
- ["category"]="co",
- ["cjkwd"]="a",
- ["description"]="<Private Use, Last>",
- ["unicodeslot"]=0xF8FF, -- 
+ category="co",
+ cjkwd="a",
+ description="<Private Use, Last>",
+ direction="l",
+ unicodeslot=0xF8FF,
},
[0xF900]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0384",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8C48 },
- ["unicodeslot"]=0xF900, -- 豈
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0384",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8C48 },
+ unicodeslot=0xF900,
},
[0xF901]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0385",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x66F4 },
- ["unicodeslot"]=0xF901, -- 更
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0385",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x66F4 },
+ unicodeslot=0xF901,
},
[0xF902]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0386",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8ECA },
- ["unicodeslot"]=0xF902, -- 車
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0386",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8ECA },
+ unicodeslot=0xF902,
},
[0xF903]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0387",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8CC8 },
- ["unicodeslot"]=0xF903, -- 賈
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0387",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8CC8 },
+ unicodeslot=0xF903,
},
[0xF904]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0388",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6ED1 },
- ["unicodeslot"]=0xF904, -- 滑
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0388",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6ED1 },
+ unicodeslot=0xF904,
},
[0xF905]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0389",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x4E32 },
- ["unicodeslot"]=0xF905, -- 串
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0389",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x4E32 },
+ unicodeslot=0xF905,
},
[0xF906]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x038A",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x53E5 },
- ["unicodeslot"]=0xF906, -- 句
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x038A",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x53E5 },
+ unicodeslot=0xF906,
},
[0xF907]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x038B",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x9F9C },
- ["unicodeslot"]=0xF907, -- 龜
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x038B",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x9F9C },
+ unicodeslot=0xF907,
},
[0xF908]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x038C",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x9F9C },
- ["unicodeslot"]=0xF908, -- 龜
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x038C",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x9F9C },
+ unicodeslot=0xF908,
},
[0xF909]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x038D",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5951 },
- ["unicodeslot"]=0xF909, -- 契
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x038D",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5951 },
+ unicodeslot=0xF909,
},
[0xF90A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x005AA",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x91D1 },
- ["unicodeslot"]=0xF90A, -- 金
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x005AA",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x91D1 },
+ unicodeslot=0xF90A,
},
[0xF90B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x005AB",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5587 },
- ["unicodeslot"]=0xF90B, -- 喇
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x005AB",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5587 },
+ unicodeslot=0xF90B,
},
[0xF90C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x005AC",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5948 },
- ["unicodeslot"]=0xF90C, -- 奈
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x005AC",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5948 },
+ unicodeslot=0xF90C,
},
[0xF90D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x005AD",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x61F6 },
- ["unicodeslot"]=0xF90D, -- 懶
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x005AD",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x61F6 },
+ unicodeslot=0xF90D,
},
[0xF90E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x005AE",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7669 },
- ["unicodeslot"]=0xF90E, -- 癩
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x005AE",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7669 },
+ unicodeslot=0xF90E,
},
[0xF90F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x005AF",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7F85 },
- ["unicodeslot"]=0xF90F, -- 羅
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x005AF",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7F85 },
+ unicodeslot=0xF90F,
},
[0xF910]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x038E",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x863F },
- ["unicodeslot"]=0xF910, -- 蘿
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x038E",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x863F },
+ unicodeslot=0xF910,
},
[0xF911]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x038F",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x87BA },
- ["unicodeslot"]=0xF911, -- 螺
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x038F",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x87BA },
+ unicodeslot=0xF911,
},
[0xF912]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0390",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x88F8 },
- ["unicodeslot"]=0xF912, -- 裸
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0390",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x88F8 },
+ unicodeslot=0xF912,
},
[0xF913]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0391",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x908F },
- ["unicodeslot"]=0xF913, -- 邏
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0391",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x908F },
+ unicodeslot=0xF913,
},
[0xF914]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0392",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6A02 },
- ["unicodeslot"]=0xF914, -- 樂
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0392",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6A02 },
+ unicodeslot=0xF914,
},
[0xF915]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0393",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6D1B },
- ["unicodeslot"]=0xF915, -- 洛
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0393",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6D1B },
+ unicodeslot=0xF915,
},
[0xF916]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0394",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x70D9 },
- ["unicodeslot"]=0xF916, -- 烙
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0394",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x70D9 },
+ unicodeslot=0xF916,
},
[0xF917]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0395",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x73DE },
- ["unicodeslot"]=0xF917, -- 珞
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0395",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x73DE },
+ unicodeslot=0xF917,
},
[0xF918]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0396",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x843D },
- ["unicodeslot"]=0xF918, -- 落
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0396",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x843D },
+ unicodeslot=0xF918,
},
[0xF919]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0397",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x916A },
- ["unicodeslot"]=0xF919, -- 酪
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0397",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x916A },
+ unicodeslot=0xF919,
},
[0xF91A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x005BA",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x99F1 },
- ["unicodeslot"]=0xF91A, -- 駱
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x005BA",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x99F1 },
+ unicodeslot=0xF91A,
},
[0xF91B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x005BB",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x4E82 },
- ["unicodeslot"]=0xF91B, -- 亂
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x005BB",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x4E82 },
+ unicodeslot=0xF91B,
},
[0xF91C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x005BC",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5375 },
- ["unicodeslot"]=0xF91C, -- 卵
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x005BC",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5375 },
+ unicodeslot=0xF91C,
},
[0xF91D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x005BD",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6B04 },
- ["unicodeslot"]=0xF91D, -- 欄
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x005BD",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6B04 },
+ unicodeslot=0xF91D,
},
[0xF91E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x005BE",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x721B },
- ["unicodeslot"]=0xF91E, -- 爛
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x005BE",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x721B },
+ unicodeslot=0xF91E,
},
[0xF91F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x005BF",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x862D },
- ["unicodeslot"]=0xF91F, -- 蘭
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x005BF",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x862D },
+ unicodeslot=0xF91F,
},
[0xF920]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0398",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x9E1E },
- ["unicodeslot"]=0xF920, -- 鸞
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0398",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x9E1E },
+ unicodeslot=0xF920,
},
[0xF921]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0399",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5D50 },
- ["unicodeslot"]=0xF921, -- 嵐
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0399",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5D50 },
+ unicodeslot=0xF921,
},
[0xF922]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x039A",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6FEB },
- ["unicodeslot"]=0xF922, -- 濫
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x039A",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6FEB },
+ unicodeslot=0xF922,
},
[0xF923]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x039B",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x85CD },
- ["unicodeslot"]=0xF923, -- 藍
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x039B",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x85CD },
+ unicodeslot=0xF923,
},
[0xF924]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x039C",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8964 },
- ["unicodeslot"]=0xF924, -- 襤
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x039C",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8964 },
+ unicodeslot=0xF924,
},
[0xF925]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x039D",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x62C9 },
- ["unicodeslot"]=0xF925, -- 拉
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x039D",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x62C9 },
+ unicodeslot=0xF925,
},
[0xF926]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x039E",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x81D8 },
- ["unicodeslot"]=0xF926, -- 臘
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x039E",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x81D8 },
+ unicodeslot=0xF926,
},
[0xF927]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x039F",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x881F },
- ["unicodeslot"]=0xF927, -- 蠟
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x039F",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x881F },
+ unicodeslot=0xF927,
},
[0xF928]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03A0",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5ECA },
- ["unicodeslot"]=0xF928, -- 廊
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03A0",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5ECA },
+ unicodeslot=0xF928,
},
[0xF929]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03A1",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6717 },
- ["unicodeslot"]=0xF929, -- 朗
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03A1",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6717 },
+ unicodeslot=0xF929,
},
[0xF92A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x005CA",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6D6A },
- ["unicodeslot"]=0xF92A, -- 浪
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x005CA",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6D6A },
+ unicodeslot=0xF92A,
},
[0xF92B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x005CB",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x72FC },
- ["unicodeslot"]=0xF92B, -- 狼
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x005CB",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x72FC },
+ unicodeslot=0xF92B,
},
[0xF92C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x005CC",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x90CE },
- ["unicodeslot"]=0xF92C, -- 郎
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x005CC",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x90CE },
+ unicodeslot=0xF92C,
},
[0xF92D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x005CD",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x4F86 },
- ["unicodeslot"]=0xF92D, -- 來
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x005CD",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x4F86 },
+ unicodeslot=0xF92D,
},
[0xF92E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x005CE",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x51B7 },
- ["unicodeslot"]=0xF92E, -- 冷
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x005CE",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x51B7 },
+ unicodeslot=0xF92E,
},
[0xF92F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x005CF",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x52DE },
- ["unicodeslot"]=0xF92F, -- 勞
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x005CF",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x52DE },
+ unicodeslot=0xF92F,
},
[0xF930]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03A2",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x64C4 },
- ["unicodeslot"]=0xF930, -- 擄
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03A2",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x64C4 },
+ unicodeslot=0xF930,
},
[0xF931]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03A3",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6AD3 },
- ["unicodeslot"]=0xF931, -- 櫓
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03A3",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6AD3 },
+ unicodeslot=0xF931,
},
[0xF932]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03A4",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7210 },
- ["unicodeslot"]=0xF932, -- 爐
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03A4",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7210 },
+ unicodeslot=0xF932,
},
[0xF933]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03A5",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x76E7 },
- ["unicodeslot"]=0xF933, -- 盧
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03A5",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x76E7 },
+ unicodeslot=0xF933,
},
[0xF934]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03A6",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8001 },
- ["unicodeslot"]=0xF934, -- 老
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03A6",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8001 },
+ unicodeslot=0xF934,
},
[0xF935]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03A7",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8606 },
- ["unicodeslot"]=0xF935, -- 蘆
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03A7",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8606 },
+ unicodeslot=0xF935,
},
[0xF936]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03A8",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x865C },
- ["unicodeslot"]=0xF936, -- 虜
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03A8",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x865C },
+ unicodeslot=0xF936,
},
[0xF937]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03A9",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8DEF },
- ["unicodeslot"]=0xF937, -- 路
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03A9",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8DEF },
+ unicodeslot=0xF937,
},
[0xF938]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03AA",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x9732 },
- ["unicodeslot"]=0xF938, -- 露
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03AA",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x9732 },
+ unicodeslot=0xF938,
},
[0xF939]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03AB",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x9B6F },
- ["unicodeslot"]=0xF939, -- 魯
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03AB",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x9B6F },
+ unicodeslot=0xF939,
},
[0xF93A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x005DA",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x9DFA },
- ["unicodeslot"]=0xF93A, -- 鷺
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x005DA",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x9DFA },
+ unicodeslot=0xF93A,
},
[0xF93B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x005DB",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x788C },
- ["unicodeslot"]=0xF93B, -- 碌
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x005DB",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x788C },
+ unicodeslot=0xF93B,
},
[0xF93C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x005DC",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x797F },
- ["unicodeslot"]=0xF93C, -- 祿
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x005DC",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x797F },
+ unicodeslot=0xF93C,
},
[0xF93D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x005DD",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7DA0 },
- ["unicodeslot"]=0xF93D, -- 綠
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x005DD",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7DA0 },
+ unicodeslot=0xF93D,
},
[0xF93E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x005DE",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x83C9 },
- ["unicodeslot"]=0xF93E, -- 菉
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x005DE",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x83C9 },
+ unicodeslot=0xF93E,
},
[0xF93F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x005DF",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x9304 },
- ["unicodeslot"]=0xF93F, -- 錄
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x005DF",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x9304 },
+ unicodeslot=0xF93F,
},
[0xF940]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03AC",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x9E7F },
- ["unicodeslot"]=0xF940, -- 鹿
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03AC",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x9E7F },
+ unicodeslot=0xF940,
},
[0xF941]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03AD",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8AD6 },
- ["unicodeslot"]=0xF941, -- 論
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03AD",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8AD6 },
+ unicodeslot=0xF941,
},
[0xF942]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03AE",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x58DF },
- ["unicodeslot"]=0xF942, -- 壟
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03AE",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x58DF },
+ unicodeslot=0xF942,
},
[0xF943]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03AF",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5F04 },
- ["unicodeslot"]=0xF943, -- 弄
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03AF",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5F04 },
+ unicodeslot=0xF943,
},
[0xF944]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03B0",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7C60 },
- ["unicodeslot"]=0xF944, -- 籠
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03B0",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7C60 },
+ unicodeslot=0xF944,
},
[0xF945]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03B1",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x807E },
- ["unicodeslot"]=0xF945, -- 聾
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03B1",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x807E },
+ unicodeslot=0xF945,
},
[0xF946]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03B2",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7262 },
- ["unicodeslot"]=0xF946, -- 牢
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03B2",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7262 },
+ unicodeslot=0xF946,
},
[0xF947]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03B3",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x78CA },
- ["unicodeslot"]=0xF947, -- 磊
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03B3",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x78CA },
+ unicodeslot=0xF947,
},
[0xF948]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03B4",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8CC2 },
- ["unicodeslot"]=0xF948, -- 賂
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03B4",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8CC2 },
+ unicodeslot=0xF948,
},
[0xF949]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03B5",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x96F7 },
- ["unicodeslot"]=0xF949, -- 雷
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03B5",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x96F7 },
+ unicodeslot=0xF949,
},
[0xF94A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x005EA",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x58D8 },
- ["unicodeslot"]=0xF94A, -- 壘
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x005EA",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x58D8 },
+ unicodeslot=0xF94A,
},
[0xF94B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x005EB",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5C62 },
- ["unicodeslot"]=0xF94B, -- 屢
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x005EB",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5C62 },
+ unicodeslot=0xF94B,
},
[0xF94C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x005EC",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6A13 },
- ["unicodeslot"]=0xF94C, -- 樓
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x005EC",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6A13 },
+ unicodeslot=0xF94C,
},
[0xF94D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x005ED",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6DDA },
- ["unicodeslot"]=0xF94D, -- 淚
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x005ED",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6DDA },
+ unicodeslot=0xF94D,
},
[0xF94E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x005EE",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6F0F },
- ["unicodeslot"]=0xF94E, -- 漏
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x005EE",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6F0F },
+ unicodeslot=0xF94E,
},
[0xF94F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x005EF",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7D2F },
- ["unicodeslot"]=0xF94F, -- 累
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x005EF",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7D2F },
+ unicodeslot=0xF94F,
},
[0xF950]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03B6",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7E37 },
- ["unicodeslot"]=0xF950, -- 縷
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03B6",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7E37 },
+ unicodeslot=0xF950,
},
[0xF951]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03B7",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x964B },
- ["unicodeslot"]=0xF951, -- 陋
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03B7",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x964B },
+ unicodeslot=0xF951,
},
[0xF952]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03B8",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x52D2 },
- ["unicodeslot"]=0xF952, -- 勒
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03B8",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x52D2 },
+ unicodeslot=0xF952,
},
[0xF953]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03B9",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x808B },
- ["unicodeslot"]=0xF953, -- 肋
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03B9",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x808B },
+ unicodeslot=0xF953,
},
[0xF954]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03BA",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x51DC },
- ["unicodeslot"]=0xF954, -- 凜
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03BA",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x51DC },
+ unicodeslot=0xF954,
},
[0xF955]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03BB",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x51CC },
- ["unicodeslot"]=0xF955, -- 凌
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03BB",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x51CC },
+ unicodeslot=0xF955,
},
[0xF956]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03BC",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7A1C },
- ["unicodeslot"]=0xF956, -- 稜
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03BC",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7A1C },
+ unicodeslot=0xF956,
},
[0xF957]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03BD",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7DBE },
- ["unicodeslot"]=0xF957, -- 綾
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03BD",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7DBE },
+ unicodeslot=0xF957,
},
[0xF958]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03BE",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x83F1 },
- ["unicodeslot"]=0xF958, -- 菱
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03BE",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x83F1 },
+ unicodeslot=0xF958,
},
[0xF959]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03BF",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x9675 },
- ["unicodeslot"]=0xF959, -- 陵
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03BF",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x9675 },
+ unicodeslot=0xF959,
},
[0xF95A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x005FA",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8B80 },
- ["unicodeslot"]=0xF95A, -- 讀
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x005FA",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8B80 },
+ unicodeslot=0xF95A,
},
[0xF95B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x005FB",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x62CF },
- ["unicodeslot"]=0xF95B, -- 拏
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x005FB",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x62CF },
+ unicodeslot=0xF95B,
},
[0xF95C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x005FC",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6A02 },
- ["unicodeslot"]=0xF95C, -- 樂
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x005FC",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6A02 },
+ unicodeslot=0xF95C,
},
[0xF95D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x005FD",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8AFE },
- ["unicodeslot"]=0xF95D, -- 諾
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x005FD",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8AFE },
+ unicodeslot=0xF95D,
},
[0xF95E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x005FE",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x4E39 },
- ["unicodeslot"]=0xF95E, -- 丹
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x005FE",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x4E39 },
+ unicodeslot=0xF95E,
},
[0xF95F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x005FF",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5BE7 },
- ["unicodeslot"]=0xF95F, -- 寧
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x005FF",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5BE7 },
+ unicodeslot=0xF95F,
},
[0xF960]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03C0",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6012 },
- ["unicodeslot"]=0xF960, -- 怒
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03C0",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6012 },
+ unicodeslot=0xF960,
},
[0xF961]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03C1",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7387 },
- ["unicodeslot"]=0xF961, -- 率
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03C1",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7387 },
+ unicodeslot=0xF961,
},
[0xF962]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03C2",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7570 },
- ["unicodeslot"]=0xF962, -- 異
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03C2",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7570 },
+ unicodeslot=0xF962,
},
[0xF963]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03C3",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5317 },
- ["unicodeslot"]=0xF963, -- 北
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03C3",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5317 },
+ unicodeslot=0xF963,
},
[0xF964]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03C4",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x78FB },
- ["unicodeslot"]=0xF964, -- 磻
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03C4",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x78FB },
+ unicodeslot=0xF964,
},
[0xF965]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03C5",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x4FBF },
- ["unicodeslot"]=0xF965, -- 便
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03C5",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x4FBF },
+ unicodeslot=0xF965,
},
[0xF966]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03C6",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5FA9 },
- ["unicodeslot"]=0xF966, -- 復
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03C6",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5FA9 },
+ unicodeslot=0xF966,
},
[0xF967]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03C7",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x4E0D },
- ["unicodeslot"]=0xF967, -- 不
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03C7",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x4E0D },
+ unicodeslot=0xF967,
},
[0xF968]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03C8",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6CCC },
- ["unicodeslot"]=0xF968, -- 泌
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03C8",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6CCC },
+ unicodeslot=0xF968,
},
[0xF969]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03C9",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6578 },
- ["unicodeslot"]=0xF969, -- 數
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03C9",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6578 },
+ unicodeslot=0xF969,
},
[0xF96A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0060A",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7D22 },
- ["unicodeslot"]=0xF96A, -- 索
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0060A",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7D22 },
+ unicodeslot=0xF96A,
},
[0xF96B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0060B",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x53C3 },
- ["unicodeslot"]=0xF96B, -- 參
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0060B",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x53C3 },
+ unicodeslot=0xF96B,
},
[0xF96C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0060C",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x585E },
- ["unicodeslot"]=0xF96C, -- 塞
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0060C",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x585E },
+ unicodeslot=0xF96C,
},
[0xF96D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0060D",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7701 },
- ["unicodeslot"]=0xF96D, -- 省
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0060D",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7701 },
+ unicodeslot=0xF96D,
},
[0xF96E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0060E",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8449 },
- ["unicodeslot"]=0xF96E, -- 葉
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0060E",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8449 },
+ unicodeslot=0xF96E,
},
[0xF96F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0060F",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8AAA },
- ["unicodeslot"]=0xF96F, -- 說
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0060F",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8AAA },
+ unicodeslot=0xF96F,
},
[0xF970]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03CA",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6BBA },
- ["unicodeslot"]=0xF970, -- 殺
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03CA",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6BBA },
+ unicodeslot=0xF970,
},
[0xF971]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03CB",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8FB0 },
- ["unicodeslot"]=0xF971, -- 辰
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03CB",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8FB0 },
+ unicodeslot=0xF971,
},
[0xF972]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03CC",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6C88 },
- ["unicodeslot"]=0xF972, -- 沈
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03CC",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6C88 },
+ unicodeslot=0xF972,
},
[0xF973]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03CD",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x62FE },
- ["unicodeslot"]=0xF973, -- 拾
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03CD",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x62FE },
+ unicodeslot=0xF973,
},
[0xF974]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03CE",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x82E5 },
- ["unicodeslot"]=0xF974, -- 若
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03CE",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x82E5 },
+ unicodeslot=0xF974,
},
[0xF975]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03CF",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x63A0 },
- ["unicodeslot"]=0xF975, -- 掠
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03CF",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x63A0 },
+ unicodeslot=0xF975,
},
[0xF976]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03D0",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7565 },
- ["unicodeslot"]=0xF976, -- 略
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03D0",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7565 },
+ unicodeslot=0xF976,
},
[0xF977]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03D1",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x4EAE },
- ["unicodeslot"]=0xF977, -- 亮
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03D1",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x4EAE },
+ unicodeslot=0xF977,
},
[0xF978]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03D2",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5169 },
- ["unicodeslot"]=0xF978, -- 兩
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03D2",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5169 },
+ unicodeslot=0xF978,
},
[0xF979]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03D3",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x51C9 },
- ["unicodeslot"]=0xF979, -- 凉
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03D3",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x51C9 },
+ unicodeslot=0xF979,
},
[0xF97A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0061A",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6881 },
- ["unicodeslot"]=0xF97A, -- 梁
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0061A",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6881 },
+ unicodeslot=0xF97A,
},
[0xF97B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0061B",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7CE7 },
- ["unicodeslot"]=0xF97B, -- 糧
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0061B",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7CE7 },
+ unicodeslot=0xF97B,
},
[0xF97C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0061C",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x826F },
- ["unicodeslot"]=0xF97C, -- 良
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0061C",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x826F },
+ unicodeslot=0xF97C,
},
[0xF97D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0061D",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8AD2 },
- ["unicodeslot"]=0xF97D, -- 諒
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0061D",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8AD2 },
+ unicodeslot=0xF97D,
},
[0xF97E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0061E",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x91CF },
- ["unicodeslot"]=0xF97E, -- 量
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0061E",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x91CF },
+ unicodeslot=0xF97E,
},
[0xF97F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0061F",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x52F5 },
- ["unicodeslot"]=0xF97F, -- 勵
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0061F",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x52F5 },
+ unicodeslot=0xF97F,
},
[0xF980]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03D4",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5442 },
- ["unicodeslot"]=0xF980, -- 呂
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03D4",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5442 },
+ unicodeslot=0xF980,
},
[0xF981]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03D5",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5973 },
- ["unicodeslot"]=0xF981, -- 女
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03D5",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5973 },
+ unicodeslot=0xF981,
},
[0xF982]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03D6",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5EEC },
- ["unicodeslot"]=0xF982, -- 廬
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03D6",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5EEC },
+ unicodeslot=0xF982,
},
[0xF983]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03D7",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x65C5 },
- ["unicodeslot"]=0xF983, -- 旅
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03D7",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x65C5 },
+ unicodeslot=0xF983,
},
[0xF984]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03D8",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6FFE },
- ["unicodeslot"]=0xF984, -- 濾
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03D8",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6FFE },
+ unicodeslot=0xF984,
},
[0xF985]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03D9",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x792A },
- ["unicodeslot"]=0xF985, -- 礪
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03D9",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x792A },
+ unicodeslot=0xF985,
},
[0xF986]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03DA",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x95AD },
- ["unicodeslot"]=0xF986, -- 閭
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03DA",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x95AD },
+ unicodeslot=0xF986,
},
[0xF987]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03DB",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x9A6A },
- ["unicodeslot"]=0xF987, -- 驪
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03DB",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x9A6A },
+ unicodeslot=0xF987,
},
[0xF988]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03DC",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x9E97 },
- ["unicodeslot"]=0xF988, -- 麗
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03DC",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x9E97 },
+ unicodeslot=0xF988,
},
[0xF989]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03DD",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x9ECE },
- ["unicodeslot"]=0xF989, -- 黎
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03DD",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x9ECE },
+ unicodeslot=0xF989,
},
[0xF98A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0062A",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x529B },
- ["unicodeslot"]=0xF98A, -- 力
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0062A",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x529B },
+ unicodeslot=0xF98A,
},
[0xF98B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0062B",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x66C6 },
- ["unicodeslot"]=0xF98B, -- 曆
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0062B",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x66C6 },
+ unicodeslot=0xF98B,
},
[0xF98C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0062C",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6B77 },
- ["unicodeslot"]=0xF98C, -- 歷
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0062C",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6B77 },
+ unicodeslot=0xF98C,
},
[0xF98D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0062D",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8F62 },
- ["unicodeslot"]=0xF98D, -- 轢
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0062D",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8F62 },
+ unicodeslot=0xF98D,
},
[0xF98E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0062E",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5E74 },
- ["unicodeslot"]=0xF98E, -- 年
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0062E",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5E74 },
+ unicodeslot=0xF98E,
},
[0xF98F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0062F",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6190 },
- ["unicodeslot"]=0xF98F, -- 憐
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0062F",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6190 },
+ unicodeslot=0xF98F,
},
[0xF990]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03DE",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6200 },
- ["unicodeslot"]=0xF990, -- 戀
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03DE",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6200 },
+ unicodeslot=0xF990,
},
[0xF991]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03DF",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x649A },
- ["unicodeslot"]=0xF991, -- 撚
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03DF",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x649A },
+ unicodeslot=0xF991,
},
[0xF992]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03E0",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6F23 },
- ["unicodeslot"]=0xF992, -- 漣
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03E0",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6F23 },
+ unicodeslot=0xF992,
},
[0xF993]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03E1",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7149 },
- ["unicodeslot"]=0xF993, -- 煉
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03E1",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7149 },
+ unicodeslot=0xF993,
},
[0xF994]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03E2",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7489 },
- ["unicodeslot"]=0xF994, -- 璉
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03E2",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7489 },
+ unicodeslot=0xF994,
},
[0xF995]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03E3",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x79CA },
- ["unicodeslot"]=0xF995, -- 秊
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03E3",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x79CA },
+ unicodeslot=0xF995,
},
[0xF996]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03E4",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7DF4 },
- ["unicodeslot"]=0xF996, -- 練
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03E4",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7DF4 },
+ unicodeslot=0xF996,
},
[0xF997]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03E5",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x806F },
- ["unicodeslot"]=0xF997, -- 聯
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03E5",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x806F },
+ unicodeslot=0xF997,
},
[0xF998]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03E6",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8F26 },
- ["unicodeslot"]=0xF998, -- 輦
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03E6",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8F26 },
+ unicodeslot=0xF998,
},
[0xF999]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x03E7",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x84EE },
- ["unicodeslot"]=0xF999, -- 蓮
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x03E7",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x84EE },
+ unicodeslot=0xF999,
},
[0xF99A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0063A",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x9023 },
- ["unicodeslot"]=0xF99A, -- 連
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0063A",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x9023 },
+ unicodeslot=0xF99A,
},
[0xF99B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0063B",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x934A },
- ["unicodeslot"]=0xF99B, -- 鍊
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0063B",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x934A },
+ unicodeslot=0xF99B,
},
[0xF99C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0063C",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5217 },
- ["unicodeslot"]=0xF99C, -- 列
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0063C",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5217 },
+ unicodeslot=0xF99C,
},
[0xF99D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0063D",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x52A3 },
- ["unicodeslot"]=0xF99D, -- 劣
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0063D",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x52A3 },
+ unicodeslot=0xF99D,
},
[0xF99E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0063E",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x54BD },
- ["unicodeslot"]=0xF99E, -- 咽
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0063E",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x54BD },
+ unicodeslot=0xF99E,
},
[0xF99F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0063F",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x70C8 },
- ["unicodeslot"]=0xF99F, -- 烈
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0063F",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x70C8 },
+ unicodeslot=0xF99F,
},
[0xF9A0]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009A0x0000",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x88C2 },
- ["unicodeslot"]=0xF9A0, -- 裂
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009A0x0000",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x88C2 },
+ unicodeslot=0xF9A0,
},
[0xF9A1]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009A0x0001",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8AAA },
- ["unicodeslot"]=0xF9A1, -- 說
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009A0x0001",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8AAA },
+ unicodeslot=0xF9A1,
},
[0xF9A2]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009A0x0002",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5EC9 },
- ["unicodeslot"]=0xF9A2, -- 廉
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009A0x0002",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5EC9 },
+ unicodeslot=0xF9A2,
},
[0xF9A3]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009A0x0003",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5FF5 },
- ["unicodeslot"]=0xF9A3, -- 念
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009A0x0003",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5FF5 },
+ unicodeslot=0xF9A3,
},
[0xF9A4]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009A0x0004",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x637B },
- ["unicodeslot"]=0xF9A4, -- 捻
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009A0x0004",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x637B },
+ unicodeslot=0xF9A4,
},
[0xF9A5]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009A0x0005",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6BAE },
- ["unicodeslot"]=0xF9A5, -- 殮
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009A0x0005",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6BAE },
+ unicodeslot=0xF9A5,
},
[0xF9A6]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009A0x0006",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7C3E },
- ["unicodeslot"]=0xF9A6, -- 簾
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009A0x0006",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7C3E },
+ unicodeslot=0xF9A6,
},
[0xF9A7]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009A0x0007",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7375 },
- ["unicodeslot"]=0xF9A7, -- 獵
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009A0x0007",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7375 },
+ unicodeslot=0xF9A7,
},
[0xF9A8]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009A0x0008",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x4EE4 },
- ["unicodeslot"]=0xF9A8, -- 令
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009A0x0008",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x4EE4 },
+ unicodeslot=0xF9A8,
},
[0xF9A9]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009A0x0009",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x56F9 },
- ["unicodeslot"]=0xF9A9, -- 囹
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009A0x0009",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x56F9 },
+ unicodeslot=0xF9A9,
},
[0xF9AA]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009AA",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5BE7 },
- ["unicodeslot"]=0xF9AA, -- 寧
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009AA",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5BE7 },
+ unicodeslot=0xF9AA,
},
[0xF9AB]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009AB",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5DBA },
- ["unicodeslot"]=0xF9AB, -- 嶺
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009AB",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5DBA },
+ unicodeslot=0xF9AB,
},
[0xF9AC]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009AC",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x601C },
- ["unicodeslot"]=0xF9AC, -- 怜
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009AC",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x601C },
+ unicodeslot=0xF9AC,
},
[0xF9AD]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009AD",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x73B2 },
- ["unicodeslot"]=0xF9AD, -- 玲
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009AD",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x73B2 },
+ unicodeslot=0xF9AD,
},
[0xF9AE]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009AE",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7469 },
- ["unicodeslot"]=0xF9AE, -- 瑩
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009AE",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7469 },
+ unicodeslot=0xF9AE,
},
[0xF9AF]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009AF",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7F9A },
- ["unicodeslot"]=0xF9AF, -- 羚
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009AF",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7F9A },
+ unicodeslot=0xF9AF,
},
[0xF9B0]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009B0x0000",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8046 },
- ["unicodeslot"]=0xF9B0, -- 聆
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009B0x0000",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8046 },
+ unicodeslot=0xF9B0,
},
[0xF9B1]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009B0x0001",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x9234 },
- ["unicodeslot"]=0xF9B1, -- 鈴
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009B0x0001",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x9234 },
+ unicodeslot=0xF9B1,
},
[0xF9B2]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009B0x0002",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x96F6 },
- ["unicodeslot"]=0xF9B2, -- 零
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009B0x0002",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x96F6 },
+ unicodeslot=0xF9B2,
},
[0xF9B3]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009B0x0003",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x9748 },
- ["unicodeslot"]=0xF9B3, -- 靈
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009B0x0003",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x9748 },
+ unicodeslot=0xF9B3,
},
[0xF9B4]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009B0x0004",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x9818 },
- ["unicodeslot"]=0xF9B4, -- 領
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009B0x0004",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x9818 },
+ unicodeslot=0xF9B4,
},
[0xF9B5]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009B0x0005",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x4F8B },
- ["unicodeslot"]=0xF9B5, -- 例
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009B0x0005",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x4F8B },
+ unicodeslot=0xF9B5,
},
[0xF9B6]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009B0x0006",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x79AE },
- ["unicodeslot"]=0xF9B6, -- 禮
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009B0x0006",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x79AE },
+ unicodeslot=0xF9B6,
},
[0xF9B7]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009B0x0007",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x91B4 },
- ["unicodeslot"]=0xF9B7, -- 醴
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009B0x0007",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x91B4 },
+ unicodeslot=0xF9B7,
},
[0xF9B8]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009B0x0008",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x96B8 },
- ["unicodeslot"]=0xF9B8, -- 隸
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009B0x0008",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x96B8 },
+ unicodeslot=0xF9B8,
},
[0xF9B9]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009B0x0009",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x60E1 },
- ["unicodeslot"]=0xF9B9, -- 惡
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009B0x0009",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x60E1 },
+ unicodeslot=0xF9B9,
},
[0xF9BA]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009BA",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x4E86 },
- ["unicodeslot"]=0xF9BA, -- 了
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009BA",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x4E86 },
+ unicodeslot=0xF9BA,
},
[0xF9BB]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009BB",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x50DA },
- ["unicodeslot"]=0xF9BB, -- 僚
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009BB",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x50DA },
+ unicodeslot=0xF9BB,
},
[0xF9BC]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009BC",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5BEE },
- ["unicodeslot"]=0xF9BC, -- 寮
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009BC",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5BEE },
+ unicodeslot=0xF9BC,
},
[0xF9BD]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009BD",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5C3F },
- ["unicodeslot"]=0xF9BD, -- 尿
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009BD",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5C3F },
+ unicodeslot=0xF9BD,
},
[0xF9BE]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009BE",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6599 },
- ["unicodeslot"]=0xF9BE, -- 料
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009BE",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6599 },
+ unicodeslot=0xF9BE,
},
[0xF9BF]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009BF",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6A02 },
- ["unicodeslot"]=0xF9BF, -- 樂
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009BF",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6A02 },
+ unicodeslot=0xF9BF,
},
[0xF9C0]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009C0x0000",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x71CE },
- ["unicodeslot"]=0xF9C0, -- 燎
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009C0x0000",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x71CE },
+ unicodeslot=0xF9C0,
},
[0xF9C1]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009C0x0001",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7642 },
- ["unicodeslot"]=0xF9C1, -- 療
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009C0x0001",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7642 },
+ unicodeslot=0xF9C1,
},
[0xF9C2]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009C0x0002",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x84FC },
- ["unicodeslot"]=0xF9C2, -- 蓼
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009C0x0002",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x84FC },
+ unicodeslot=0xF9C2,
},
[0xF9C3]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009C0x0003",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x907C },
- ["unicodeslot"]=0xF9C3, -- 遼
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009C0x0003",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x907C },
+ unicodeslot=0xF9C3,
},
[0xF9C4]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009C0x0004",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x9F8D },
- ["unicodeslot"]=0xF9C4, -- 龍
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009C0x0004",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x9F8D },
+ unicodeslot=0xF9C4,
},
[0xF9C5]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009C0x0005",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6688 },
- ["unicodeslot"]=0xF9C5, -- 暈
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009C0x0005",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6688 },
+ unicodeslot=0xF9C5,
},
[0xF9C6]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009C0x0006",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x962E },
- ["unicodeslot"]=0xF9C6, -- 阮
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009C0x0006",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x962E },
+ unicodeslot=0xF9C6,
},
[0xF9C7]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009C0x0007",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5289 },
- ["unicodeslot"]=0xF9C7, -- 劉
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009C0x0007",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5289 },
+ unicodeslot=0xF9C7,
},
[0xF9C8]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009C0x0008",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x677B },
- ["unicodeslot"]=0xF9C8, -- 杻
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009C0x0008",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x677B },
+ unicodeslot=0xF9C8,
},
[0xF9C9]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009C0x0009",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x67F3 },
- ["unicodeslot"]=0xF9C9, -- 柳
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009C0x0009",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x67F3 },
+ unicodeslot=0xF9C9,
},
[0xF9CA]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009CA",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6D41 },
- ["unicodeslot"]=0xF9CA, -- 流
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009CA",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6D41 },
+ unicodeslot=0xF9CA,
},
[0xF9CB]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009CB",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6E9C },
- ["unicodeslot"]=0xF9CB, -- 溜
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009CB",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6E9C },
+ unicodeslot=0xF9CB,
},
[0xF9CC]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009CC",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7409 },
- ["unicodeslot"]=0xF9CC, -- 琉
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009CC",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7409 },
+ unicodeslot=0xF9CC,
},
[0xF9CD]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009CD",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7559 },
- ["unicodeslot"]=0xF9CD, -- 留
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009CD",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7559 },
+ unicodeslot=0xF9CD,
},
[0xF9CE]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009CE",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x786B },
- ["unicodeslot"]=0xF9CE, -- 硫
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009CE",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x786B },
+ unicodeslot=0xF9CE,
},
[0xF9CF]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009CF",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7D10 },
- ["unicodeslot"]=0xF9CF, -- 紐
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009CF",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7D10 },
+ unicodeslot=0xF9CF,
},
[0xF9D0]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009D0x0000",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x985E },
- ["unicodeslot"]=0xF9D0, -- 類
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009D0x0000",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x985E },
+ unicodeslot=0xF9D0,
},
[0xF9D1]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009D0x0001",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x516D },
- ["unicodeslot"]=0xF9D1, -- 六
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009D0x0001",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x516D },
+ unicodeslot=0xF9D1,
},
[0xF9D2]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009D0x0002",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x622E },
- ["unicodeslot"]=0xF9D2, -- 戮
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009D0x0002",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x622E },
+ unicodeslot=0xF9D2,
},
[0xF9D3]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009D0x0003",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x9678 },
- ["unicodeslot"]=0xF9D3, -- 陸
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009D0x0003",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x9678 },
+ unicodeslot=0xF9D3,
},
[0xF9D4]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009D0x0004",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x502B },
- ["unicodeslot"]=0xF9D4, -- 倫
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009D0x0004",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x502B },
+ unicodeslot=0xF9D4,
},
[0xF9D5]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009D0x0005",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5D19 },
- ["unicodeslot"]=0xF9D5, -- 崙
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009D0x0005",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5D19 },
+ unicodeslot=0xF9D5,
},
[0xF9D6]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009D0x0006",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6DEA },
- ["unicodeslot"]=0xF9D6, -- 淪
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009D0x0006",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6DEA },
+ unicodeslot=0xF9D6,
},
[0xF9D7]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009D0x0007",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8F2A },
- ["unicodeslot"]=0xF9D7, -- 輪
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009D0x0007",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8F2A },
+ unicodeslot=0xF9D7,
},
[0xF9D8]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009D0x0008",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5F8B },
- ["unicodeslot"]=0xF9D8, -- 律
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009D0x0008",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5F8B },
+ unicodeslot=0xF9D8,
},
[0xF9D9]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009D0x0009",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6144 },
- ["unicodeslot"]=0xF9D9, -- 慄
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009D0x0009",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6144 },
+ unicodeslot=0xF9D9,
},
[0xF9DA]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009DA",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6817 },
- ["unicodeslot"]=0xF9DA, -- 栗
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009DA",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6817 },
+ unicodeslot=0xF9DA,
},
[0xF9DB]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009DB",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7387 },
- ["unicodeslot"]=0xF9DB, -- 率
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009DB",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7387 },
+ unicodeslot=0xF9DB,
},
[0xF9DC]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009DC",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x9686 },
- ["unicodeslot"]=0xF9DC, -- 隆
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009DC",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x9686 },
+ unicodeslot=0xF9DC,
},
[0xF9DD]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009DD",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5229 },
- ["unicodeslot"]=0xF9DD, -- 利
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009DD",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5229 },
+ unicodeslot=0xF9DD,
},
[0xF9DE]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009DE",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x540F },
- ["unicodeslot"]=0xF9DE, -- 吏
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009DE",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x540F },
+ unicodeslot=0xF9DE,
},
[0xF9DF]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009DF",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5C65 },
- ["unicodeslot"]=0xF9DF, -- 履
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009DF",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5C65 },
+ unicodeslot=0xF9DF,
},
[0xF9E0]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009E0x0000",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6613 },
- ["unicodeslot"]=0xF9E0, -- 易
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009E0x0000",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6613 },
+ unicodeslot=0xF9E0,
},
[0xF9E1]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009E0x0001",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x674E },
- ["unicodeslot"]=0xF9E1, -- 李
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009E0x0001",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x674E },
+ unicodeslot=0xF9E1,
},
[0xF9E2]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009E0x0002",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x68A8 },
- ["unicodeslot"]=0xF9E2, -- 梨
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009E0x0002",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x68A8 },
+ unicodeslot=0xF9E2,
},
[0xF9E3]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009E0x0003",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6CE5 },
- ["unicodeslot"]=0xF9E3, -- 泥
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009E0x0003",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6CE5 },
+ unicodeslot=0xF9E3,
},
[0xF9E4]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009E0x0004",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7406 },
- ["unicodeslot"]=0xF9E4, -- 理
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009E0x0004",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7406 },
+ unicodeslot=0xF9E4,
},
[0xF9E5]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009E0x0005",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x75E2 },
- ["unicodeslot"]=0xF9E5, -- 痢
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009E0x0005",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x75E2 },
+ unicodeslot=0xF9E5,
},
[0xF9E6]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009E0x0006",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7F79 },
- ["unicodeslot"]=0xF9E6, -- 罹
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009E0x0006",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7F79 },
+ unicodeslot=0xF9E6,
},
[0xF9E7]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009E0x0007",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x88CF },
- ["unicodeslot"]=0xF9E7, -- 裏
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009E0x0007",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x88CF },
+ unicodeslot=0xF9E7,
},
[0xF9E8]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009E0x0008",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x88E1 },
- ["unicodeslot"]=0xF9E8, -- 裡
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009E0x0008",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x88E1 },
+ unicodeslot=0xF9E8,
},
[0xF9E9]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009E0x0009",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x91CC },
- ["unicodeslot"]=0xF9E9, -- 里
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009E0x0009",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x91CC },
+ unicodeslot=0xF9E9,
},
[0xF9EA]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009EA",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x96E2 },
- ["unicodeslot"]=0xF9EA, -- 離
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009EA",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x96E2 },
+ unicodeslot=0xF9EA,
},
[0xF9EB]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009EB",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x533F },
- ["unicodeslot"]=0xF9EB, -- 匿
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009EB",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x533F },
+ unicodeslot=0xF9EB,
},
[0xF9EC]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009EC",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6EBA },
- ["unicodeslot"]=0xF9EC, -- 溺
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009EC",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6EBA },
+ unicodeslot=0xF9EC,
},
[0xF9ED]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009ED",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x541D },
- ["unicodeslot"]=0xF9ED, -- 吝
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009ED",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x541D },
+ unicodeslot=0xF9ED,
},
[0xF9EE]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009EE",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x71D0 },
- ["unicodeslot"]=0xF9EE, -- 燐
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009EE",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x71D0 },
+ unicodeslot=0xF9EE,
},
[0xF9EF]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009EF",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7498 },
- ["unicodeslot"]=0xF9EF, -- 璘
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009EF",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7498 },
+ unicodeslot=0xF9EF,
},
[0xF9F0]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009F0x0000",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x85FA },
- ["unicodeslot"]=0xF9F0, -- 藺
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009F0x0000",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x85FA },
+ unicodeslot=0xF9F0,
},
[0xF9F1]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009F0x0001",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x96A3 },
- ["unicodeslot"]=0xF9F1, -- 隣
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009F0x0001",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x96A3 },
+ unicodeslot=0xF9F1,
},
[0xF9F2]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009F0x0002",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x9C57 },
- ["unicodeslot"]=0xF9F2, -- 鱗
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009F0x0002",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x9C57 },
+ unicodeslot=0xF9F2,
},
[0xF9F3]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009F0x0003",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x9E9F },
- ["unicodeslot"]=0xF9F3, -- 麟
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009F0x0003",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x9E9F },
+ unicodeslot=0xF9F3,
},
[0xF9F4]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009F0x0004",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6797 },
- ["unicodeslot"]=0xF9F4, -- 林
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009F0x0004",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6797 },
+ unicodeslot=0xF9F4,
},
[0xF9F5]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009F0x0005",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6DCB },
- ["unicodeslot"]=0xF9F5, -- 淋
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009F0x0005",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6DCB },
+ unicodeslot=0xF9F5,
},
[0xF9F6]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009F0x0006",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x81E8 },
- ["unicodeslot"]=0xF9F6, -- 臨
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009F0x0006",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x81E8 },
+ unicodeslot=0xF9F6,
},
[0xF9F7]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009F0x0007",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7ACB },
- ["unicodeslot"]=0xF9F7, -- 立
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009F0x0007",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7ACB },
+ unicodeslot=0xF9F7,
},
[0xF9F8]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009F0x0008",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7B20 },
- ["unicodeslot"]=0xF9F8, -- 笠
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009F0x0008",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7B20 },
+ unicodeslot=0xF9F8,
},
[0xF9F9]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009F0x0009",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7C92 },
- ["unicodeslot"]=0xF9F9, -- 粒
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009F0x0009",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7C92 },
+ unicodeslot=0xF9F9,
},
[0xF9FA]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009FA",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x72C0 },
- ["unicodeslot"]=0xF9FA, -- 狀
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009FA",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x72C0 },
+ unicodeslot=0xF9FA,
},
[0xF9FB]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009FB",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7099 },
- ["unicodeslot"]=0xF9FB, -- 炙
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009FB",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7099 },
+ unicodeslot=0xF9FB,
},
[0xF9FC]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009FC",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8B58 },
- ["unicodeslot"]=0xF9FC, -- 識
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009FC",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8B58 },
+ unicodeslot=0xF9FC,
},
[0xF9FD]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009FD",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x4EC0 },
- ["unicodeslot"]=0xF9FD, -- 什
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009FD",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x4EC0 },
+ unicodeslot=0xF9FD,
},
[0xF9FE]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009FE",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8336 },
- ["unicodeslot"]=0xF9FE, -- 茶
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009FE",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8336 },
+ unicodeslot=0xF9FE,
},
[0xF9FF]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-F0x0009FF",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x523A },
- ["unicodeslot"]=0xF9FF, -- 刺
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-F0x0009FF",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x523A },
+ unicodeslot=0xF9FF,
},
[0xFA00]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0000",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5207 },
- ["unicodeslot"]=0xFA00, -- 切
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0000",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5207 },
+ unicodeslot=0xFA00,
},
[0xFA01]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0001",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5EA6 },
- ["unicodeslot"]=0xFA01, -- 度
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0001",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5EA6 },
+ unicodeslot=0xFA01,
},
[0xFA02]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0002",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x62D3 },
- ["unicodeslot"]=0xFA02, -- 拓
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0002",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x62D3 },
+ unicodeslot=0xFA02,
},
[0xFA03]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0003",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7CD6 },
- ["unicodeslot"]=0xFA03, -- 糖
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0003",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7CD6 },
+ unicodeslot=0xFA03,
},
[0xFA04]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0004",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5B85 },
- ["unicodeslot"]=0xFA04, -- 宅
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0004",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5B85 },
+ unicodeslot=0xFA04,
},
[0xFA05]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0005",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6D1E },
- ["unicodeslot"]=0xFA05, -- 洞
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0005",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6D1E },
+ unicodeslot=0xFA05,
},
[0xFA06]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0006",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x66B4 },
- ["unicodeslot"]=0xFA06, -- 暴
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0006",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x66B4 },
+ unicodeslot=0xFA06,
},
[0xFA07]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0007",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8F3B },
- ["unicodeslot"]=0xFA07, -- 輻
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0007",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8F3B },
+ unicodeslot=0xFA07,
},
[0xFA08]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0008",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x884C },
- ["unicodeslot"]=0xFA08, -- 行
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0008",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x884C },
+ unicodeslot=0xFA08,
},
[0xFA09]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0009",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x964D },
- ["unicodeslot"]=0xFA09, -- 降
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0009",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x964D },
+ unicodeslot=0xFA09,
},
[0xFA0A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0000A",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x898B },
- ["unicodeslot"]=0xFA0A, -- 見
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0000A",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x898B },
+ unicodeslot=0xFA0A,
},
[0xFA0B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0000B",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5ED3 },
- ["unicodeslot"]=0xFA0B, -- 廓
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0000B",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5ED3 },
+ unicodeslot=0xFA0B,
},
[0xFA0C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0000C",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5140 },
- ["unicodeslot"]=0xFA0C, -- 兀
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0000C",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5140 },
+ unicodeslot=0xFA0C,
},
[0xFA0D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0000D",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x55C0 },
- ["unicodeslot"]=0xFA0D, -- 嗀
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0000D",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x55C0 },
+ unicodeslot=0xFA0D,
},
[0xFA0E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0000E",
- ["linebreak"]="id",
- ["unicodeslot"]=0xFA0E, -- 﨎
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0000E",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xFA0E,
},
[0xFA0F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0000F",
- ["linebreak"]="id",
- ["unicodeslot"]=0xFA0F, -- 﨏
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0000F",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xFA0F,
},
[0xFA10]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x000A",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x585A },
- ["unicodeslot"]=0xFA10, -- 塚
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x000A",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x585A },
+ unicodeslot=0xFA10,
},
[0xFA11]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x000B",
- ["linebreak"]="id",
- ["unicodeslot"]=0xFA11, -- 﨑
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x000B",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xFA11,
},
[0xFA12]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x000C",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6674 },
- ["unicodeslot"]=0xFA12, -- 晴
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x000C",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6674 },
+ unicodeslot=0xFA12,
},
[0xFA13]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x000D",
- ["linebreak"]="id",
- ["unicodeslot"]=0xFA13, -- 﨓
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x000D",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xFA13,
},
[0xFA14]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x000E",
- ["linebreak"]="id",
- ["unicodeslot"]=0xFA14, -- 﨔
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x000E",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xFA14,
},
[0xFA15]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x000F",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x51DE },
- ["unicodeslot"]=0xFA15, -- 凞
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x000F",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x51DE },
+ unicodeslot=0xFA15,
},
[0xFA16]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0010",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x732A },
- ["unicodeslot"]=0xFA16, -- 猪
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0010",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x732A },
+ unicodeslot=0xFA16,
},
[0xFA17]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0011",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x76CA },
- ["unicodeslot"]=0xFA17, -- 益
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0011",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x76CA },
+ unicodeslot=0xFA17,
},
[0xFA18]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0012",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x793C },
- ["unicodeslot"]=0xFA18, -- 礼
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0012",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x793C },
+ unicodeslot=0xFA18,
},
[0xFA19]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0013",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x795E },
- ["unicodeslot"]=0xFA19, -- 神
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0013",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x795E },
+ unicodeslot=0xFA19,
},
[0xFA1A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0001A",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7965 },
- ["unicodeslot"]=0xFA1A, -- 祥
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0001A",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7965 },
+ unicodeslot=0xFA1A,
},
[0xFA1B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0001B",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x798F },
- ["unicodeslot"]=0xFA1B, -- 福
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0001B",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x798F },
+ unicodeslot=0xFA1B,
},
[0xFA1C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0001C",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x9756 },
- ["unicodeslot"]=0xFA1C, -- 靖
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0001C",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x9756 },
+ unicodeslot=0xFA1C,
},
[0xFA1D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0001D",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7CBE },
- ["unicodeslot"]=0xFA1D, -- 精
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0001D",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7CBE },
+ unicodeslot=0xFA1D,
},
[0xFA1E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0001E",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7FBD },
- ["unicodeslot"]=0xFA1E, -- 羽
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0001E",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7FBD },
+ unicodeslot=0xFA1E,
},
[0xFA1F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0001F",
- ["linebreak"]="id",
- ["unicodeslot"]=0xFA1F, -- 﨟
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0001F",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xFA1F,
},
[0xFA20]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0014",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8612 },
- ["unicodeslot"]=0xFA20, -- 蘒
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0014",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8612 },
+ unicodeslot=0xFA20,
},
[0xFA21]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0015",
- ["linebreak"]="id",
- ["unicodeslot"]=0xFA21, -- 﨡
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0015",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xFA21,
},
[0xFA22]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0016",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8AF8 },
- ["unicodeslot"]=0xFA22, -- 諸
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0016",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8AF8 },
+ unicodeslot=0xFA22,
},
[0xFA23]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0017",
- ["linebreak"]="id",
- ["unicodeslot"]=0xFA23, -- 﨣
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0017",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xFA23,
},
[0xFA24]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0018",
- ["linebreak"]="id",
- ["unicodeslot"]=0xFA24, -- 﨤
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0018",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xFA24,
},
[0xFA25]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0019",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x9038 },
- ["unicodeslot"]=0xFA25, -- 逸
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0019",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x9038 },
+ unicodeslot=0xFA25,
},
[0xFA26]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x001A",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x90FD },
- ["unicodeslot"]=0xFA26, -- 都
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x001A",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x90FD },
+ unicodeslot=0xFA26,
},
[0xFA27]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x001B",
- ["linebreak"]="id",
- ["unicodeslot"]=0xFA27, -- 﨧
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x001B",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xFA27,
},
[0xFA28]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x001C",
- ["linebreak"]="id",
- ["unicodeslot"]=0xFA28, -- 﨨
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x001C",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xFA28,
},
[0xFA29]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x001D",
- ["linebreak"]="id",
- ["unicodeslot"]=0xFA29, -- 﨩
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x001D",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0xFA29,
},
[0xFA2A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0002A",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x98EF },
- ["unicodeslot"]=0xFA2A, -- 飯
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0002A",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x98EF },
+ unicodeslot=0xFA2A,
},
[0xFA2B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0002B",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x98FC },
- ["unicodeslot"]=0xFA2B, -- 飼
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0002B",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x98FC },
+ unicodeslot=0xFA2B,
},
[0xFA2C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0002C",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x9928 },
- ["unicodeslot"]=0xFA2C, -- 館
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0002C",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x9928 },
+ unicodeslot=0xFA2C,
},
[0xFA2D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0002D",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x9DB4 },
- ["unicodeslot"]=0xFA2D, -- 鶴
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0002D",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x9DB4 },
+ unicodeslot=0xFA2D,
},
[0xFA30]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x001E",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x4FAE },
- ["unicodeslot"]=0xFA30, -- 侮
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x001E",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x4FAE },
+ unicodeslot=0xFA30,
},
[0xFA31]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x001F",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x50E7 },
- ["unicodeslot"]=0xFA31, -- 僧
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x001F",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x50E7 },
+ unicodeslot=0xFA31,
},
[0xFA32]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0020",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x514D },
- ["unicodeslot"]=0xFA32, -- 免
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0020",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x514D },
+ unicodeslot=0xFA32,
},
[0xFA33]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0021",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x52C9 },
- ["unicodeslot"]=0xFA33, -- 勉
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0021",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x52C9 },
+ unicodeslot=0xFA33,
},
[0xFA34]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0022",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x52E4 },
- ["unicodeslot"]=0xFA34, -- 勤
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0022",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x52E4 },
+ unicodeslot=0xFA34,
},
[0xFA35]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0023",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5351 },
- ["unicodeslot"]=0xFA35, -- 卑
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0023",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5351 },
+ unicodeslot=0xFA35,
},
[0xFA36]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0024",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x559D },
- ["unicodeslot"]=0xFA36, -- 喝
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0024",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x559D },
+ unicodeslot=0xFA36,
},
[0xFA37]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0025",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5606 },
- ["unicodeslot"]=0xFA37, -- 嘆
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0025",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5606 },
+ unicodeslot=0xFA37,
},
[0xFA38]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0026",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5668 },
- ["unicodeslot"]=0xFA38, -- 器
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0026",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5668 },
+ unicodeslot=0xFA38,
},
[0xFA39]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0027",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5840 },
- ["unicodeslot"]=0xFA39, -- 塀
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0027",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5840 },
+ unicodeslot=0xFA39,
},
[0xFA3A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0003A",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x58A8 },
- ["unicodeslot"]=0xFA3A, -- 墨
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0003A",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x58A8 },
+ unicodeslot=0xFA3A,
},
[0xFA3B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0003B",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5C64 },
- ["unicodeslot"]=0xFA3B, -- 層
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0003B",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5C64 },
+ unicodeslot=0xFA3B,
},
[0xFA3C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0003C",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5C6E },
- ["unicodeslot"]=0xFA3C, -- 屮
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0003C",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5C6E },
+ unicodeslot=0xFA3C,
},
[0xFA3D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0003D",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6094 },
- ["unicodeslot"]=0xFA3D, -- 悔
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0003D",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6094 },
+ unicodeslot=0xFA3D,
},
[0xFA3E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0003E",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6168 },
- ["unicodeslot"]=0xFA3E, -- 慨
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0003E",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6168 },
+ unicodeslot=0xFA3E,
},
[0xFA3F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0003F",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x618E },
- ["unicodeslot"]=0xFA3F, -- 憎
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0003F",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x618E },
+ unicodeslot=0xFA3F,
},
[0xFA40]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0028",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x61F2 },
- ["unicodeslot"]=0xFA40, -- 懲
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0028",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x61F2 },
+ unicodeslot=0xFA40,
},
[0xFA41]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0029",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x654F },
- ["unicodeslot"]=0xFA41, -- 敏
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0029",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x654F },
+ unicodeslot=0xFA41,
},
[0xFA42]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x002A",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x65E2 },
- ["unicodeslot"]=0xFA42, -- 既
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x002A",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x65E2 },
+ unicodeslot=0xFA42,
},
[0xFA43]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x002B",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6691 },
- ["unicodeslot"]=0xFA43, -- 暑
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x002B",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6691 },
+ unicodeslot=0xFA43,
},
[0xFA44]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x002C",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6885 },
- ["unicodeslot"]=0xFA44, -- 梅
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x002C",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6885 },
+ unicodeslot=0xFA44,
},
[0xFA45]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x002D",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6D77 },
- ["unicodeslot"]=0xFA45, -- 海
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x002D",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6D77 },
+ unicodeslot=0xFA45,
},
[0xFA46]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x002E",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6E1A },
- ["unicodeslot"]=0xFA46, -- 渚
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x002E",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6E1A },
+ unicodeslot=0xFA46,
},
[0xFA47]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x002F",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6F22 },
- ["unicodeslot"]=0xFA47, -- 漢
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x002F",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6F22 },
+ unicodeslot=0xFA47,
},
[0xFA48]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0030",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x716E },
- ["unicodeslot"]=0xFA48, -- 煮
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0030",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x716E },
+ unicodeslot=0xFA48,
},
[0xFA49]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0031",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x722B },
- ["unicodeslot"]=0xFA49, -- 爫
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0031",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x722B },
+ unicodeslot=0xFA49,
},
[0xFA4A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0004A",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7422 },
- ["unicodeslot"]=0xFA4A, -- 琢
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0004A",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7422 },
+ unicodeslot=0xFA4A,
},
[0xFA4B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0004B",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7891 },
- ["unicodeslot"]=0xFA4B, -- 碑
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0004B",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7891 },
+ unicodeslot=0xFA4B,
},
[0xFA4C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0004C",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x793E },
- ["unicodeslot"]=0xFA4C, -- 社
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0004C",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x793E },
+ unicodeslot=0xFA4C,
},
[0xFA4D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0004D",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7949 },
- ["unicodeslot"]=0xFA4D, -- 祉
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0004D",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7949 },
+ unicodeslot=0xFA4D,
},
[0xFA4E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0004E",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7948 },
- ["unicodeslot"]=0xFA4E, -- 祈
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0004E",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7948 },
+ unicodeslot=0xFA4E,
},
[0xFA4F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0004F",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7950 },
- ["unicodeslot"]=0xFA4F, -- 祐
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0004F",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7950 },
+ unicodeslot=0xFA4F,
},
[0xFA50]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0032",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7956 },
- ["unicodeslot"]=0xFA50, -- 祖
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0032",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7956 },
+ unicodeslot=0xFA50,
},
[0xFA51]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0033",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x795D },
- ["unicodeslot"]=0xFA51, -- 祝
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0033",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x795D },
+ unicodeslot=0xFA51,
},
[0xFA52]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0034",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x798D },
- ["unicodeslot"]=0xFA52, -- 禍
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0034",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x798D },
+ unicodeslot=0xFA52,
},
[0xFA53]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0035",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x798E },
- ["unicodeslot"]=0xFA53, -- 禎
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0035",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x798E },
+ unicodeslot=0xFA53,
},
[0xFA54]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0036",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7A40 },
- ["unicodeslot"]=0xFA54, -- 穀
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0036",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7A40 },
+ unicodeslot=0xFA54,
},
[0xFA55]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0037",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7A81 },
- ["unicodeslot"]=0xFA55, -- 突
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0037",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7A81 },
+ unicodeslot=0xFA55,
},
[0xFA56]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0038",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7BC0 },
- ["unicodeslot"]=0xFA56, -- 節
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0038",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7BC0 },
+ unicodeslot=0xFA56,
},
[0xFA57]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0039",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7DF4 },
- ["unicodeslot"]=0xFA57, -- 練
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0039",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7DF4 },
+ unicodeslot=0xFA57,
},
[0xFA58]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x003A",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7E09 },
- ["unicodeslot"]=0xFA58, -- 縉
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x003A",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7E09 },
+ unicodeslot=0xFA58,
},
[0xFA59]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x003B",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7E41 },
- ["unicodeslot"]=0xFA59, -- 繁
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x003B",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7E41 },
+ unicodeslot=0xFA59,
},
[0xFA5A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0005A",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7F72 },
- ["unicodeslot"]=0xFA5A, -- 署
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0005A",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7F72 },
+ unicodeslot=0xFA5A,
},
[0xFA5B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0005B",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8005 },
- ["unicodeslot"]=0xFA5B, -- 者
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0005B",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8005 },
+ unicodeslot=0xFA5B,
},
[0xFA5C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0005C",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x81ED },
- ["unicodeslot"]=0xFA5C, -- 臭
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0005C",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x81ED },
+ unicodeslot=0xFA5C,
},
[0xFA5D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0005D",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8279 },
- ["unicodeslot"]=0xFA5D, -- 艹
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0005D",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8279 },
+ unicodeslot=0xFA5D,
},
[0xFA5E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0005E",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8279 },
- ["unicodeslot"]=0xFA5E, -- 艹
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0005E",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8279 },
+ unicodeslot=0xFA5E,
},
[0xFA5F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0005F",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8457 },
- ["unicodeslot"]=0xFA5F, -- 著
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0005F",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8457 },
+ unicodeslot=0xFA5F,
},
[0xFA60]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x003C",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8910 },
- ["unicodeslot"]=0xFA60, -- 褐
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x003C",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8910 },
+ unicodeslot=0xFA60,
},
[0xFA61]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x003D",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8996 },
- ["unicodeslot"]=0xFA61, -- 視
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x003D",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8996 },
+ unicodeslot=0xFA61,
},
[0xFA62]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x003E",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8B01 },
- ["unicodeslot"]=0xFA62, -- 謁
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x003E",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8B01 },
+ unicodeslot=0xFA62,
},
[0xFA63]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x003F",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8B39 },
- ["unicodeslot"]=0xFA63, -- 謹
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x003F",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8B39 },
+ unicodeslot=0xFA63,
},
[0xFA64]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0040",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8CD3 },
- ["unicodeslot"]=0xFA64, -- 賓
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0040",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8CD3 },
+ unicodeslot=0xFA64,
},
[0xFA65]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0041",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8D08 },
- ["unicodeslot"]=0xFA65, -- 贈
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0041",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8D08 },
+ unicodeslot=0xFA65,
},
[0xFA66]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0042",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8FB6 },
- ["unicodeslot"]=0xFA66, -- 辶
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0042",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8FB6 },
+ unicodeslot=0xFA66,
},
[0xFA67]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0043",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x9038 },
- ["unicodeslot"]=0xFA67, -- 逸
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0043",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x9038 },
+ unicodeslot=0xFA67,
},
[0xFA68]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0044",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x96E3 },
- ["unicodeslot"]=0xFA68, -- 難
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0044",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x96E3 },
+ unicodeslot=0xFA68,
},
[0xFA69]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0045",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x97FF },
- ["unicodeslot"]=0xFA69, -- 響
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0045",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x97FF },
+ unicodeslot=0xFA69,
},
[0xFA6A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0006A",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x983B },
- ["unicodeslot"]=0xFA6A, -- 頻
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0006A",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x983B },
+ unicodeslot=0xFA6A,
},
[0xFA70]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0046",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x4E26 },
- ["unicodeslot"]=0xFA70, -- 並
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0046",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x4E26 },
+ unicodeslot=0xFA70,
},
[0xFA71]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0047",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x51B5 },
- ["unicodeslot"]=0xFA71, -- 况
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0047",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x51B5 },
+ unicodeslot=0xFA71,
},
[0xFA72]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0048",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5168 },
- ["unicodeslot"]=0xFA72, -- 全
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0048",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5168 },
+ unicodeslot=0xFA72,
},
[0xFA73]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0049",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x4F80 },
- ["unicodeslot"]=0xFA73, -- 侀
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0049",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x4F80 },
+ unicodeslot=0xFA73,
},
[0xFA74]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x004A",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5145 },
- ["unicodeslot"]=0xFA74, -- 充
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x004A",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5145 },
+ unicodeslot=0xFA74,
},
[0xFA75]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x004B",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5180 },
- ["unicodeslot"]=0xFA75, -- 冀
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x004B",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5180 },
+ unicodeslot=0xFA75,
},
[0xFA76]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x004C",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x52C7 },
- ["unicodeslot"]=0xFA76, -- 勇
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x004C",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x52C7 },
+ unicodeslot=0xFA76,
},
[0xFA77]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x004D",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x52FA },
- ["unicodeslot"]=0xFA77, -- 勺
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x004D",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x52FA },
+ unicodeslot=0xFA77,
},
[0xFA78]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x004E",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x559D },
- ["unicodeslot"]=0xFA78, -- 喝
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x004E",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x559D },
+ unicodeslot=0xFA78,
},
[0xFA79]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x004F",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5555 },
- ["unicodeslot"]=0xFA79, -- 啕
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x004F",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5555 },
+ unicodeslot=0xFA79,
},
[0xFA7A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0007A",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5599 },
- ["unicodeslot"]=0xFA7A, -- 喙
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0007A",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5599 },
+ unicodeslot=0xFA7A,
},
[0xFA7B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0007B",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x55E2 },
- ["unicodeslot"]=0xFA7B, -- 嗢
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0007B",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x55E2 },
+ unicodeslot=0xFA7B,
},
[0xFA7C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0007C",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x585A },
- ["unicodeslot"]=0xFA7C, -- 塚
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0007C",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x585A },
+ unicodeslot=0xFA7C,
},
[0xFA7D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0007D",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x58B3 },
- ["unicodeslot"]=0xFA7D, -- 墳
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0007D",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x58B3 },
+ unicodeslot=0xFA7D,
},
[0xFA7E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0007E",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5944 },
- ["unicodeslot"]=0xFA7E, -- 奄
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0007E",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5944 },
+ unicodeslot=0xFA7E,
},
[0xFA7F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0007F",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5954 },
- ["unicodeslot"]=0xFA7F, -- 奔
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0007F",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5954 },
+ unicodeslot=0xFA7F,
},
[0xFA80]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0050",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5A62 },
- ["unicodeslot"]=0xFA80, -- 婢
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0050",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5A62 },
+ unicodeslot=0xFA80,
},
[0xFA81]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0051",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5B28 },
- ["unicodeslot"]=0xFA81, -- 嬨
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0051",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5B28 },
+ unicodeslot=0xFA81,
},
[0xFA82]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0052",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5ED2 },
- ["unicodeslot"]=0xFA82, -- 廒
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0052",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5ED2 },
+ unicodeslot=0xFA82,
},
[0xFA83]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0053",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5ED9 },
- ["unicodeslot"]=0xFA83, -- 廙
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0053",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5ED9 },
+ unicodeslot=0xFA83,
},
[0xFA84]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0054",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5F69 },
- ["unicodeslot"]=0xFA84, -- 彩
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0054",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5F69 },
+ unicodeslot=0xFA84,
},
[0xFA85]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0055",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5FAD },
- ["unicodeslot"]=0xFA85, -- 徭
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0055",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5FAD },
+ unicodeslot=0xFA85,
},
[0xFA86]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0056",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x60D8 },
- ["unicodeslot"]=0xFA86, -- 惘
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0056",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x60D8 },
+ unicodeslot=0xFA86,
},
[0xFA87]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0057",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x614E },
- ["unicodeslot"]=0xFA87, -- 慎
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0057",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x614E },
+ unicodeslot=0xFA87,
},
[0xFA88]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0058",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6108 },
- ["unicodeslot"]=0xFA88, -- 愈
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0058",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6108 },
+ unicodeslot=0xFA88,
},
[0xFA89]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0059",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x618E },
- ["unicodeslot"]=0xFA89, -- 憎
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0059",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x618E },
+ unicodeslot=0xFA89,
},
[0xFA8A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0008A",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6160 },
- ["unicodeslot"]=0xFA8A, -- 慠
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0008A",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6160 },
+ unicodeslot=0xFA8A,
},
[0xFA8B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0008B",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x61F2 },
- ["unicodeslot"]=0xFA8B, -- 懲
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0008B",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x61F2 },
+ unicodeslot=0xFA8B,
},
[0xFA8C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0008C",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6234 },
- ["unicodeslot"]=0xFA8C, -- 戴
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0008C",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6234 },
+ unicodeslot=0xFA8C,
},
[0xFA8D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0008D",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x63C4 },
- ["unicodeslot"]=0xFA8D, -- 揄
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0008D",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x63C4 },
+ unicodeslot=0xFA8D,
},
[0xFA8E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0008E",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x641C },
- ["unicodeslot"]=0xFA8E, -- 搜
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0008E",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x641C },
+ unicodeslot=0xFA8E,
},
[0xFA8F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0008F",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6452 },
- ["unicodeslot"]=0xFA8F, -- 摒
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0008F",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6452 },
+ unicodeslot=0xFA8F,
},
[0xFA90]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x005A",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6556 },
- ["unicodeslot"]=0xFA90, -- 敖
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x005A",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6556 },
+ unicodeslot=0xFA90,
},
[0xFA91]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x005B",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6674 },
- ["unicodeslot"]=0xFA91, -- 晴
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x005B",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6674 },
+ unicodeslot=0xFA91,
},
[0xFA92]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x005C",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6717 },
- ["unicodeslot"]=0xFA92, -- 朗
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x005C",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6717 },
+ unicodeslot=0xFA92,
},
[0xFA93]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x005D",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x671B },
- ["unicodeslot"]=0xFA93, -- 望
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x005D",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x671B },
+ unicodeslot=0xFA93,
},
[0xFA94]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x005E",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6756 },
- ["unicodeslot"]=0xFA94, -- 杖
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x005E",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6756 },
+ unicodeslot=0xFA94,
},
[0xFA95]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x005F",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6B79 },
- ["unicodeslot"]=0xFA95, -- 歹
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x005F",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6B79 },
+ unicodeslot=0xFA95,
},
[0xFA96]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0060",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6BBA },
- ["unicodeslot"]=0xFA96, -- 殺
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0060",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6BBA },
+ unicodeslot=0xFA96,
},
[0xFA97]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0061",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6D41 },
- ["unicodeslot"]=0xFA97, -- 流
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0061",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6D41 },
+ unicodeslot=0xFA97,
},
[0xFA98]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0062",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6EDB },
- ["unicodeslot"]=0xFA98, -- 滛
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0062",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6EDB },
+ unicodeslot=0xFA98,
},
[0xFA99]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0063",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6ECB },
- ["unicodeslot"]=0xFA99, -- 滋
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0063",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6ECB },
+ unicodeslot=0xFA99,
},
[0xFA9A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0009A",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6F22 },
- ["unicodeslot"]=0xFA9A, -- 漢
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0009A",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6F22 },
+ unicodeslot=0xFA9A,
},
[0xFA9B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0009B",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x701E },
- ["unicodeslot"]=0xFA9B, -- 瀞
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0009B",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x701E },
+ unicodeslot=0xFA9B,
},
[0xFA9C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0009C",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x716E },
- ["unicodeslot"]=0xFA9C, -- 煮
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0009C",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x716E },
+ unicodeslot=0xFA9C,
},
[0xFA9D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0009D",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x77A7 },
- ["unicodeslot"]=0xFA9D, -- 瞧
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0009D",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x77A7 },
+ unicodeslot=0xFA9D,
},
[0xFA9E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0009E",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7235 },
- ["unicodeslot"]=0xFA9E, -- 爵
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0009E",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7235 },
+ unicodeslot=0xFA9E,
},
[0xFA9F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FA0x0009F",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x72AF },
- ["unicodeslot"]=0xFA9F, -- 犯
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FA0x0009F",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x72AF },
+ unicodeslot=0xFA9F,
},
[0xFAA0]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FAA0x0000",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x732A },
- ["unicodeslot"]=0xFAA0, -- 猪
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FAA0x0000",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x732A },
+ unicodeslot=0xFAA0,
},
[0xFAA1]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FAA0x0001",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7471 },
- ["unicodeslot"]=0xFAA1, -- 瑱
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FAA0x0001",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7471 },
+ unicodeslot=0xFAA1,
},
[0xFAA2]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FAA0x0002",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7506 },
- ["unicodeslot"]=0xFAA2, -- 甆
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FAA0x0002",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7506 },
+ unicodeslot=0xFAA2,
},
[0xFAA3]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FAA0x0003",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x753B },
- ["unicodeslot"]=0xFAA3, -- 画
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FAA0x0003",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x753B },
+ unicodeslot=0xFAA3,
},
[0xFAA4]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FAA0x0004",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x761D },
- ["unicodeslot"]=0xFAA4, -- 瘝
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FAA0x0004",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x761D },
+ unicodeslot=0xFAA4,
},
[0xFAA5]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FAA0x0005",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x761F },
- ["unicodeslot"]=0xFAA5, -- 瘟
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FAA0x0005",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x761F },
+ unicodeslot=0xFAA5,
},
[0xFAA6]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FAA0x0006",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x76CA },
- ["unicodeslot"]=0xFAA6, -- 益
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FAA0x0006",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x76CA },
+ unicodeslot=0xFAA6,
},
[0xFAA7]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FAA0x0007",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x76DB },
- ["unicodeslot"]=0xFAA7, -- 盛
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FAA0x0007",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x76DB },
+ unicodeslot=0xFAA7,
},
[0xFAA8]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FAA0x0008",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x76F4 },
- ["unicodeslot"]=0xFAA8, -- 直
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FAA0x0008",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x76F4 },
+ unicodeslot=0xFAA8,
},
[0xFAA9]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FAA0x0009",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x774A },
- ["unicodeslot"]=0xFAA9, -- 睊
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FAA0x0009",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x774A },
+ unicodeslot=0xFAA9,
},
[0xFAAA]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FAAA",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7740 },
- ["unicodeslot"]=0xFAAA, -- 着
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FAAA",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7740 },
+ unicodeslot=0xFAAA,
},
[0xFAAB]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FAAB",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x78CC },
- ["unicodeslot"]=0xFAAB, -- 磌
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FAAB",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x78CC },
+ unicodeslot=0xFAAB,
},
[0xFAAC]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FAAC",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7AB1 },
- ["unicodeslot"]=0xFAAC, -- 窱
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FAAC",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7AB1 },
+ unicodeslot=0xFAAC,
},
[0xFAAD]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FAAD",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7BC0 },
- ["unicodeslot"]=0xFAAD, -- 節
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FAAD",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7BC0 },
+ unicodeslot=0xFAAD,
},
[0xFAAE]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FAAE",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7C7B },
- ["unicodeslot"]=0xFAAE, -- 类
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FAAE",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7C7B },
+ unicodeslot=0xFAAE,
},
[0xFAAF]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FAAF",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7D5B },
- ["unicodeslot"]=0xFAAF, -- 絛
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FAAF",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7D5B },
+ unicodeslot=0xFAAF,
},
[0xFAB0]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FAB0x0000",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7DF4 },
- ["unicodeslot"]=0xFAB0, -- 練
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FAB0x0000",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7DF4 },
+ unicodeslot=0xFAB0,
},
[0xFAB1]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FAB0x0001",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7F3E },
- ["unicodeslot"]=0xFAB1, -- 缾
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FAB0x0001",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7F3E },
+ unicodeslot=0xFAB1,
},
[0xFAB2]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FAB0x0002",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8005 },
- ["unicodeslot"]=0xFAB2, -- 者
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FAB0x0002",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8005 },
+ unicodeslot=0xFAB2,
},
[0xFAB3]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FAB0x0003",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8352 },
- ["unicodeslot"]=0xFAB3, -- 荒
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FAB0x0003",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8352 },
+ unicodeslot=0xFAB3,
},
[0xFAB4]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FAB0x0004",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x83EF },
- ["unicodeslot"]=0xFAB4, -- 華
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FAB0x0004",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x83EF },
+ unicodeslot=0xFAB4,
},
[0xFAB5]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FAB0x0005",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8779 },
- ["unicodeslot"]=0xFAB5, -- 蝹
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FAB0x0005",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8779 },
+ unicodeslot=0xFAB5,
},
[0xFAB6]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FAB0x0006",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8941 },
- ["unicodeslot"]=0xFAB6, -- 襁
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FAB0x0006",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8941 },
+ unicodeslot=0xFAB6,
},
[0xFAB7]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FAB0x0007",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8986 },
- ["unicodeslot"]=0xFAB7, -- 覆
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FAB0x0007",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8986 },
+ unicodeslot=0xFAB7,
},
[0xFAB8]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FAB0x0008",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8996 },
- ["unicodeslot"]=0xFAB8, -- 視
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FAB0x0008",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8996 },
+ unicodeslot=0xFAB8,
},
[0xFAB9]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FAB0x0009",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8ABF },
- ["unicodeslot"]=0xFAB9, -- 調
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FAB0x0009",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8ABF },
+ unicodeslot=0xFAB9,
},
[0xFABA]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FABA",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8AF8 },
- ["unicodeslot"]=0xFABA, -- 諸
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FABA",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8AF8 },
+ unicodeslot=0xFABA,
},
[0xFABB]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FABB",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8ACB },
- ["unicodeslot"]=0xFABB, -- 請
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FABB",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8ACB },
+ unicodeslot=0xFABB,
},
[0xFABC]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FABC",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8B01 },
- ["unicodeslot"]=0xFABC, -- 謁
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FABC",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8B01 },
+ unicodeslot=0xFABC,
},
[0xFABD]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FABD",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8AFE },
- ["unicodeslot"]=0xFABD, -- 諾
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FABD",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8AFE },
+ unicodeslot=0xFABD,
},
[0xFABE]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FABE",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8AED },
- ["unicodeslot"]=0xFABE, -- 諭
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FABE",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8AED },
+ unicodeslot=0xFABE,
},
[0xFABF]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FABF",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8B39 },
- ["unicodeslot"]=0xFABF, -- 謹
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FABF",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8B39 },
+ unicodeslot=0xFABF,
},
[0xFAC0]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FAC0x0000",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8B8A },
- ["unicodeslot"]=0xFAC0, -- 變
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FAC0x0000",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8B8A },
+ unicodeslot=0xFAC0,
},
[0xFAC1]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FAC0x0001",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8D08 },
- ["unicodeslot"]=0xFAC1, -- 贈
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FAC0x0001",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8D08 },
+ unicodeslot=0xFAC1,
},
[0xFAC2]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FAC0x0002",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8F38 },
- ["unicodeslot"]=0xFAC2, -- 輸
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FAC0x0002",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8F38 },
+ unicodeslot=0xFAC2,
},
[0xFAC3]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FAC0x0003",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x9072 },
- ["unicodeslot"]=0xFAC3, -- 遲
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FAC0x0003",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x9072 },
+ unicodeslot=0xFAC3,
},
[0xFAC4]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FAC0x0004",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x9199 },
- ["unicodeslot"]=0xFAC4, -- 醙
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FAC0x0004",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x9199 },
+ unicodeslot=0xFAC4,
},
[0xFAC5]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FAC0x0005",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x9276 },
- ["unicodeslot"]=0xFAC5, -- 鉶
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FAC0x0005",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x9276 },
+ unicodeslot=0xFAC5,
},
[0xFAC6]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FAC0x0006",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x967C },
- ["unicodeslot"]=0xFAC6, -- 陼
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FAC0x0006",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x967C },
+ unicodeslot=0xFAC6,
},
[0xFAC7]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FAC0x0007",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x96E3 },
- ["unicodeslot"]=0xFAC7, -- 難
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FAC0x0007",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x96E3 },
+ unicodeslot=0xFAC7,
},
[0xFAC8]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FAC0x0008",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x9756 },
- ["unicodeslot"]=0xFAC8, -- 靖
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FAC0x0008",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x9756 },
+ unicodeslot=0xFAC8,
},
[0xFAC9]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FAC0x0009",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x97DB },
- ["unicodeslot"]=0xFAC9, -- 韛
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FAC0x0009",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x97DB },
+ unicodeslot=0xFAC9,
},
[0xFACA]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FACA",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x97FF },
- ["unicodeslot"]=0xFACA, -- 響
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FACA",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x97FF },
+ unicodeslot=0xFACA,
},
[0xFACB]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FACB",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x980B },
- ["unicodeslot"]=0xFACB, -- 頋
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FACB",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x980B },
+ unicodeslot=0xFACB,
},
[0xFACC]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FACC",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x983B },
- ["unicodeslot"]=0xFACC, -- 頻
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FACC",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x983B },
+ unicodeslot=0xFACC,
},
[0xFACD]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FACD",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x9B12 },
- ["unicodeslot"]=0xFACD, -- 鬒
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FACD",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x9B12 },
+ unicodeslot=0xFACD,
},
[0xFACE]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FACE",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x9F9C },
- ["unicodeslot"]=0xFACE, -- 龜
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FACE",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x9F9C },
+ unicodeslot=0xFACE,
},
[0xFACF]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FACF",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x2284A },
- ["unicodeslot"]=0xFACF, -- 𢡊
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FACF",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x2284A },
+ unicodeslot=0xFACF,
},
[0xFAD0]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FAD0x0000",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x22844 },
- ["unicodeslot"]=0xFAD0, -- 𢡄
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FAD0x0000",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x22844 },
+ unicodeslot=0xFAD0,
},
[0xFAD1]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FAD0x0001",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x233D5 },
- ["unicodeslot"]=0xFAD1, -- 𣏕
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FAD0x0001",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x233D5 },
+ unicodeslot=0xFAD1,
},
[0xFAD2]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FAD0x0002",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x3B9D },
- ["unicodeslot"]=0xFAD2, -- 㮝
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FAD0x0002",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x3B9D },
+ unicodeslot=0xFAD2,
},
[0xFAD3]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FAD0x0003",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x4018 },
- ["unicodeslot"]=0xFAD3, -- 䀘
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FAD0x0003",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x4018 },
+ unicodeslot=0xFAD3,
},
[0xFAD4]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FAD0x0004",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x4039 },
- ["unicodeslot"]=0xFAD4, -- 䀹
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FAD0x0004",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x4039 },
+ unicodeslot=0xFAD4,
},
[0xFAD5]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FAD0x0005",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x25249 },
- ["unicodeslot"]=0xFAD5, -- 𥉉
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FAD0x0005",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x25249 },
+ unicodeslot=0xFAD5,
},
[0xFAD6]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FAD0x0006",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x25CD0 },
- ["unicodeslot"]=0xFAD6, -- 𥳐
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FAD0x0006",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x25CD0 },
+ unicodeslot=0xFAD6,
},
[0xFAD7]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FAD0x0007",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x27ED3 },
- ["unicodeslot"]=0xFAD7, -- 𧻓
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FAD0x0007",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x27ED3 },
+ unicodeslot=0xFAD7,
},
[0xFAD8]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FAD0x0008",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x9F43 },
- ["unicodeslot"]=0xFAD8, -- 齃
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FAD0x0008",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x9F43 },
+ unicodeslot=0xFAD8,
},
[0xFAD9]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-FAD0x0009",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x9F8E },
- ["unicodeslot"]=0xFAD9, -- 龎
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-FAD0x0009",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x9F8E },
+ unicodeslot=0xFAD9,
},
[0xFB00]={
- ["category"]="ll",
- ["contextname"]="ffligature",
- ["description"]="LATIN SMALL LIGATURE FF",
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x0066, 0x0066 },
- ["unicodeslot"]=0xFB00, -- ff
+ category="ll",
+ contextname="ffligature",
+ description="LATIN SMALL LIGATURE FF",
+ direction="l",
+ linebreak="al",
+ specials={ "compat", 0x0066, 0x0066 },
+ unicodeslot=0xFB00,
},
[0xFB01]={
- ["category"]="ll",
- ["contextname"]="filigature",
- ["description"]="LATIN SMALL LIGATURE FI",
- ["linebreak"]="al",
- ["shcode"]={ 0x0066, 0x0069 },
- ["specials"]={ "compat", 0x0066, 0x0069 },
- ["unicodeslot"]=0xFB01, -- fi
+ category="ll",
+ contextname="filigature",
+ description="LATIN SMALL LIGATURE FI",
+ direction="l",
+ linebreak="al",
+ shcode={ 0x0066, 0x0069 },
+ specials={ "compat", 0x0066, 0x0069 },
+ unicodeslot=0xFB01,
},
[0xFB02]={
- ["category"]="ll",
- ["contextname"]="flligature",
- ["description"]="LATIN SMALL LIGATURE FL",
- ["linebreak"]="al",
- ["shcode"]={ 0x0066, 0x006C },
- ["specials"]={ "compat", 0x0066, 0x006C },
- ["unicodeslot"]=0xFB02, -- fl
+ category="ll",
+ contextname="flligature",
+ description="LATIN SMALL LIGATURE FL",
+ direction="l",
+ linebreak="al",
+ shcode={ 0x0066, 0x006C },
+ specials={ "compat", 0x0066, 0x006C },
+ unicodeslot=0xFB02,
},
[0xFB03]={
- ["category"]="ll",
- ["contextname"]="ffiligature",
- ["description"]="LATIN SMALL LIGATURE FFI",
- ["linebreak"]="al",
- ["shcode"]={ 0x0066, 0x0069 },
- ["specials"]={ "compat", 0x0066, 0x0066, 0x0069 },
- ["unicodeslot"]=0xFB03, -- ffi
+ category="ll",
+ contextname="ffiligature",
+ description="LATIN SMALL LIGATURE FFI",
+ direction="l",
+ linebreak="al",
+ shcode={ 0x0066, 0x0069 },
+ specials={ "compat", 0x0066, 0x0066, 0x0069 },
+ unicodeslot=0xFB03,
},
[0xFB04]={
- ["category"]="ll",
- ["contextname"]="fflligature",
- ["description"]="LATIN SMALL LIGATURE FFL",
- ["linebreak"]="al",
- ["shcode"]={ 0x0066, 0x006C },
- ["specials"]={ "compat", 0x0066, 0x0066, 0x006C },
- ["unicodeslot"]=0xFB04, -- ffl
+ category="ll",
+ contextname="fflligature",
+ description="LATIN SMALL LIGATURE FFL",
+ direction="l",
+ linebreak="al",
+ shcode={ 0x0066, 0x006C },
+ specials={ "compat", 0x0066, 0x0066, 0x006C },
+ unicodeslot=0xFB04,
},
[0xFB05]={
- ["category"]="ll",
- ["description"]="LATIN SMALL LIGATURE LONG S T",
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x017F, 0x0074 },
- ["unicodeslot"]=0xFB05, -- ſt
+ category="ll",
+ description="LATIN SMALL LIGATURE LONG S T",
+ direction="l",
+ linebreak="al",
+ specials={ "compat", 0x017F, 0x0074 },
+ unicodeslot=0xFB05,
},
[0xFB06]={
- ["category"]="ll",
- ["contextname"]="stligature",
- ["description"]="LATIN SMALL LIGATURE ST",
- ["linebreak"]="al",
- ["shcode"]={ 0x0073, 0x0074 },
- ["specials"]={ "compat", 0x0073, 0x0074 },
- ["unicodeslot"]=0xFB06, -- st
+ category="ll",
+ contextname="stligature",
+ description="LATIN SMALL LIGATURE ST",
+ direction="l",
+ linebreak="al",
+ shcode={ 0x0073, 0x0074 },
+ specials={ "compat", 0x0073, 0x0074 },
+ unicodeslot=0xFB06,
},
[0xFB13]={
- ["category"]="ll",
- ["description"]="ARMENIAN SMALL LIGATURE MEN NOW",
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x0574, 0x0576 },
- ["unicodeslot"]=0xFB13, -- ﬓ
+ category="ll",
+ description="ARMENIAN SMALL LIGATURE MEN NOW",
+ direction="l",
+ linebreak="al",
+ specials={ "compat", 0x0574, 0x0576 },
+ unicodeslot=0xFB13,
},
[0xFB14]={
- ["category"]="ll",
- ["description"]="ARMENIAN SMALL LIGATURE MEN ECH",
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x0574, 0x0565 },
- ["unicodeslot"]=0xFB14, -- ﬔ
+ category="ll",
+ description="ARMENIAN SMALL LIGATURE MEN ECH",
+ direction="l",
+ linebreak="al",
+ specials={ "compat", 0x0574, 0x0565 },
+ unicodeslot=0xFB14,
},
[0xFB15]={
- ["category"]="ll",
- ["description"]="ARMENIAN SMALL LIGATURE MEN INI",
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x0574, 0x056B },
- ["unicodeslot"]=0xFB15, -- ﬕ
+ category="ll",
+ description="ARMENIAN SMALL LIGATURE MEN INI",
+ direction="l",
+ linebreak="al",
+ specials={ "compat", 0x0574, 0x056B },
+ unicodeslot=0xFB15,
},
[0xFB16]={
- ["category"]="ll",
- ["description"]="ARMENIAN SMALL LIGATURE VEW NOW",
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x057E, 0x0576 },
- ["unicodeslot"]=0xFB16, -- ﬖ
+ category="ll",
+ description="ARMENIAN SMALL LIGATURE VEW NOW",
+ direction="l",
+ linebreak="al",
+ specials={ "compat", 0x057E, 0x0576 },
+ unicodeslot=0xFB16,
},
[0xFB17]={
- ["category"]="ll",
- ["description"]="ARMENIAN SMALL LIGATURE MEN XEH",
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x0574, 0x056D },
- ["unicodeslot"]=0xFB17, -- ﬗ
+ category="ll",
+ description="ARMENIAN SMALL LIGATURE MEN XEH",
+ direction="l",
+ linebreak="al",
+ specials={ "compat", 0x0574, 0x056D },
+ unicodeslot=0xFB17,
},
[0xFB1D]={
- ["category"]="lo",
- ["description"]="HEBREW LETTER YOD WITH HIRIQ",
- ["linebreak"]="al",
- ["shcode"]=0x05D9,
- ["specials"]={ "char", 0x05D9, 0x05B4 },
- ["unicodeslot"]=0xFB1D, -- יִ
+ category="lo",
+ description="HEBREW LETTER YOD WITH HIRIQ",
+ direction="r",
+ linebreak="al",
+ shcode=0x05D9,
+ specials={ "char", 0x05D9, 0x05B4 },
+ unicodeslot=0xFB1D,
},
[0xFB1E]={
- ["category"]="mn",
- ["description"]="HEBREW POINT JUDEO-SPANISH VARIKA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xFB1E, -- ﬞ
+ category="mn",
+ description="HEBREW POINT JUDEO-SPANISH VARIKA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xFB1E,
},
[0xFB1F]={
- ["category"]="lo",
- ["description"]="HEBREW LIGATURE YIDDISH YOD YOD PATAH",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x05F2, 0x05B7 },
- ["unicodeslot"]=0xFB1F, -- ײַ
+ category="lo",
+ description="HEBREW LIGATURE YIDDISH YOD YOD PATAH",
+ direction="r",
+ linebreak="al",
+ specials={ "char", 0x05F2, 0x05B7 },
+ unicodeslot=0xFB1F,
},
[0xFB20]={
- ["category"]="lo",
- ["description"]="HEBREW LETTER ALTERNATIVE AYIN",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x05E2 },
- ["unicodeslot"]=0xFB20, -- ﬠ
+ category="lo",
+ description="HEBREW LETTER ALTERNATIVE AYIN",
+ direction="r",
+ linebreak="al",
+ specials={ "font", 0x05E2 },
+ unicodeslot=0xFB20,
},
[0xFB21]={
- ["category"]="lo",
- ["description"]="HEBREW LETTER WIDE ALEF",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x05D0 },
- ["unicodeslot"]=0xFB21, -- ﬡ
+ category="lo",
+ description="HEBREW LETTER WIDE ALEF",
+ direction="r",
+ linebreak="al",
+ specials={ "font", 0x05D0 },
+ unicodeslot=0xFB21,
},
[0xFB22]={
- ["category"]="lo",
- ["description"]="HEBREW LETTER WIDE DALET",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x05D3 },
- ["unicodeslot"]=0xFB22, -- ﬢ
+ category="lo",
+ description="HEBREW LETTER WIDE DALET",
+ direction="r",
+ linebreak="al",
+ specials={ "font", 0x05D3 },
+ unicodeslot=0xFB22,
},
[0xFB23]={
- ["category"]="lo",
- ["description"]="HEBREW LETTER WIDE HE",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x05D4 },
- ["unicodeslot"]=0xFB23, -- ﬣ
+ category="lo",
+ description="HEBREW LETTER WIDE HE",
+ direction="r",
+ linebreak="al",
+ specials={ "font", 0x05D4 },
+ unicodeslot=0xFB23,
},
[0xFB24]={
- ["category"]="lo",
- ["description"]="HEBREW LETTER WIDE KAF",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x05DB },
- ["unicodeslot"]=0xFB24, -- ﬤ
+ category="lo",
+ description="HEBREW LETTER WIDE KAF",
+ direction="r",
+ linebreak="al",
+ specials={ "font", 0x05DB },
+ unicodeslot=0xFB24,
},
[0xFB25]={
- ["category"]="lo",
- ["description"]="HEBREW LETTER WIDE LAMED",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x05DC },
- ["unicodeslot"]=0xFB25, -- ﬥ
+ category="lo",
+ description="HEBREW LETTER WIDE LAMED",
+ direction="r",
+ linebreak="al",
+ specials={ "font", 0x05DC },
+ unicodeslot=0xFB25,
},
[0xFB26]={
- ["category"]="lo",
- ["description"]="HEBREW LETTER WIDE FINAL MEM",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x05DD },
- ["unicodeslot"]=0xFB26, -- ﬦ
+ category="lo",
+ description="HEBREW LETTER WIDE FINAL MEM",
+ direction="r",
+ linebreak="al",
+ specials={ "font", 0x05DD },
+ unicodeslot=0xFB26,
},
[0xFB27]={
- ["category"]="lo",
- ["description"]="HEBREW LETTER WIDE RESH",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x05E8 },
- ["unicodeslot"]=0xFB27, -- ﬧ
+ category="lo",
+ description="HEBREW LETTER WIDE RESH",
+ direction="r",
+ linebreak="al",
+ specials={ "font", 0x05E8 },
+ unicodeslot=0xFB27,
},
[0xFB28]={
- ["category"]="lo",
- ["description"]="HEBREW LETTER WIDE TAV",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x05EA },
- ["unicodeslot"]=0xFB28, -- ﬨ
+ category="lo",
+ description="HEBREW LETTER WIDE TAV",
+ direction="r",
+ linebreak="al",
+ specials={ "font", 0x05EA },
+ unicodeslot=0xFB28,
},
[0xFB29]={
- ["category"]="sm",
- ["description"]="HEBREW LETTER ALTERNATIVE PLUS SIGN",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x002B },
- ["unicodeslot"]=0xFB29, -- ﬩
+ category="sm",
+ description="HEBREW LETTER ALTERNATIVE PLUS SIGN",
+ direction="es",
+ linebreak="al",
+ specials={ "font", 0x002B },
+ unicodeslot=0xFB29,
},
[0xFB2A]={
- ["category"]="lo",
- ["description"]="HEBREW LETTER SHIN WITH SHIN DOT",
- ["linebreak"]="al",
- ["shcode"]=0x05E9,
- ["specials"]={ "char", 0x05E9, 0x05C1 },
- ["unicodeslot"]=0xFB2A, -- שׁ
+ category="lo",
+ description="HEBREW LETTER SHIN WITH SHIN DOT",
+ direction="r",
+ linebreak="al",
+ shcode=0x05E9,
+ specials={ "char", 0x05E9, 0x05C1 },
+ unicodeslot=0xFB2A,
},
[0xFB2B]={
- ["category"]="lo",
- ["description"]="HEBREW LETTER SHIN WITH SIN DOT",
- ["linebreak"]="al",
- ["shcode"]=0x05E9,
- ["specials"]={ "char", 0x05E9, 0x05C2 },
- ["unicodeslot"]=0xFB2B, -- שׂ
+ category="lo",
+ description="HEBREW LETTER SHIN WITH SIN DOT",
+ direction="r",
+ linebreak="al",
+ shcode=0x05E9,
+ specials={ "char", 0x05E9, 0x05C2 },
+ unicodeslot=0xFB2B,
},
[0xFB2C]={
- ["category"]="lo",
- ["description"]="HEBREW LETTER SHIN WITH DAGESH AND SHIN DOT",
- ["linebreak"]="al",
- ["shcode"]=0x05E9,
- ["specials"]={ "char", 0xFB49, 0x05C1 },
- ["unicodeslot"]=0xFB2C, -- שּׁ
+ category="lo",
+ description="HEBREW LETTER SHIN WITH DAGESH AND SHIN DOT",
+ direction="r",
+ linebreak="al",
+ shcode=0x05E9,
+ specials={ "char", 0xFB49, 0x05C1 },
+ unicodeslot=0xFB2C,
},
[0xFB2D]={
- ["category"]="lo",
- ["description"]="HEBREW LETTER SHIN WITH DAGESH AND SIN DOT",
- ["linebreak"]="al",
- ["shcode"]=0x05E9,
- ["specials"]={ "char", 0xFB49, 0x05C2 },
- ["unicodeslot"]=0xFB2D, -- שּׂ
+ category="lo",
+ description="HEBREW LETTER SHIN WITH DAGESH AND SIN DOT",
+ direction="r",
+ linebreak="al",
+ shcode=0x05E9,
+ specials={ "char", 0xFB49, 0x05C2 },
+ unicodeslot=0xFB2D,
},
[0xFB2E]={
- ["category"]="lo",
- ["description"]="HEBREW LETTER ALEF WITH PATAH",
- ["linebreak"]="al",
- ["shcode"]=0x05D0,
- ["specials"]={ "char", 0x05D0, 0x05B7 },
- ["unicodeslot"]=0xFB2E, -- אַ
+ category="lo",
+ description="HEBREW LETTER ALEF WITH PATAH",
+ direction="r",
+ linebreak="al",
+ shcode=0x05D0,
+ specials={ "char", 0x05D0, 0x05B7 },
+ unicodeslot=0xFB2E,
},
[0xFB2F]={
- ["category"]="lo",
- ["description"]="HEBREW LETTER ALEF WITH QAMATS",
- ["linebreak"]="al",
- ["shcode"]=0x05D0,
- ["specials"]={ "char", 0x05D0, 0x05B8 },
- ["unicodeslot"]=0xFB2F, -- אָ
+ category="lo",
+ description="HEBREW LETTER ALEF WITH QAMATS",
+ direction="r",
+ linebreak="al",
+ shcode=0x05D0,
+ specials={ "char", 0x05D0, 0x05B8 },
+ unicodeslot=0xFB2F,
},
[0xFB30]={
- ["category"]="lo",
- ["description"]="HEBREW LETTER ALEF WITH MAPIQ",
- ["linebreak"]="al",
- ["shcode"]=0x05D0,
- ["specials"]={ "char", 0x05D0, 0x05BC },
- ["unicodeslot"]=0xFB30, -- אּ
+ category="lo",
+ description="HEBREW LETTER ALEF WITH MAPIQ",
+ direction="r",
+ linebreak="al",
+ shcode=0x05D0,
+ specials={ "char", 0x05D0, 0x05BC },
+ unicodeslot=0xFB30,
},
[0xFB31]={
- ["category"]="lo",
- ["description"]="HEBREW LETTER BET WITH DAGESH",
- ["linebreak"]="al",
- ["shcode"]=0x05D1,
- ["specials"]={ "char", 0x05D1, 0x05BC },
- ["unicodeslot"]=0xFB31, -- בּ
+ category="lo",
+ description="HEBREW LETTER BET WITH DAGESH",
+ direction="r",
+ linebreak="al",
+ shcode=0x05D1,
+ specials={ "char", 0x05D1, 0x05BC },
+ unicodeslot=0xFB31,
},
[0xFB32]={
- ["category"]="lo",
- ["description"]="HEBREW LETTER GIMEL WITH DAGESH",
- ["linebreak"]="al",
- ["shcode"]=0x05D2,
- ["specials"]={ "char", 0x05D2, 0x05BC },
- ["unicodeslot"]=0xFB32, -- גּ
+ category="lo",
+ description="HEBREW LETTER GIMEL WITH DAGESH",
+ direction="r",
+ linebreak="al",
+ shcode=0x05D2,
+ specials={ "char", 0x05D2, 0x05BC },
+ unicodeslot=0xFB32,
},
[0xFB33]={
- ["category"]="lo",
- ["description"]="HEBREW LETTER DALET WITH DAGESH",
- ["linebreak"]="al",
- ["shcode"]=0x05D3,
- ["specials"]={ "char", 0x05D3, 0x05BC },
- ["unicodeslot"]=0xFB33, -- דּ
+ category="lo",
+ description="HEBREW LETTER DALET WITH DAGESH",
+ direction="r",
+ linebreak="al",
+ shcode=0x05D3,
+ specials={ "char", 0x05D3, 0x05BC },
+ unicodeslot=0xFB33,
},
[0xFB34]={
- ["category"]="lo",
- ["description"]="HEBREW LETTER HE WITH MAPIQ",
- ["linebreak"]="al",
- ["shcode"]=0x05D4,
- ["specials"]={ "char", 0x05D4, 0x05BC },
- ["unicodeslot"]=0xFB34, -- הּ
+ category="lo",
+ description="HEBREW LETTER HE WITH MAPIQ",
+ direction="r",
+ linebreak="al",
+ shcode=0x05D4,
+ specials={ "char", 0x05D4, 0x05BC },
+ unicodeslot=0xFB34,
},
[0xFB35]={
- ["category"]="lo",
- ["description"]="HEBREW LETTER VAV WITH DAGESH",
- ["linebreak"]="al",
- ["shcode"]=0x05D5,
- ["specials"]={ "char", 0x05D5, 0x05BC },
- ["unicodeslot"]=0xFB35, -- וּ
+ category="lo",
+ description="HEBREW LETTER VAV WITH DAGESH",
+ direction="r",
+ linebreak="al",
+ shcode=0x05D5,
+ specials={ "char", 0x05D5, 0x05BC },
+ unicodeslot=0xFB35,
},
[0xFB36]={
- ["category"]="lo",
- ["description"]="HEBREW LETTER ZAYIN WITH DAGESH",
- ["linebreak"]="al",
- ["shcode"]=0x05D6,
- ["specials"]={ "char", 0x05D6, 0x05BC },
- ["unicodeslot"]=0xFB36, -- זּ
+ category="lo",
+ description="HEBREW LETTER ZAYIN WITH DAGESH",
+ direction="r",
+ linebreak="al",
+ shcode=0x05D6,
+ specials={ "char", 0x05D6, 0x05BC },
+ unicodeslot=0xFB36,
},
[0xFB38]={
- ["category"]="lo",
- ["description"]="HEBREW LETTER TET WITH DAGESH",
- ["linebreak"]="al",
- ["shcode"]=0x05D8,
- ["specials"]={ "char", 0x05D8, 0x05BC },
- ["unicodeslot"]=0xFB38, -- טּ
+ category="lo",
+ description="HEBREW LETTER TET WITH DAGESH",
+ direction="r",
+ linebreak="al",
+ shcode=0x05D8,
+ specials={ "char", 0x05D8, 0x05BC },
+ unicodeslot=0xFB38,
},
[0xFB39]={
- ["category"]="lo",
- ["description"]="HEBREW LETTER YOD WITH DAGESH",
- ["linebreak"]="al",
- ["shcode"]=0x05D9,
- ["specials"]={ "char", 0x05D9, 0x05BC },
- ["unicodeslot"]=0xFB39, -- יּ
+ category="lo",
+ description="HEBREW LETTER YOD WITH DAGESH",
+ direction="r",
+ linebreak="al",
+ shcode=0x05D9,
+ specials={ "char", 0x05D9, 0x05BC },
+ unicodeslot=0xFB39,
},
[0xFB3A]={
- ["category"]="lo",
- ["description"]="HEBREW LETTER FINAL KAF WITH DAGESH",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x05DA, 0x05BC },
- ["unicodeslot"]=0xFB3A, -- ךּ
+ category="lo",
+ description="HEBREW LETTER FINAL KAF WITH DAGESH",
+ direction="r",
+ linebreak="al",
+ specials={ "char", 0x05DA, 0x05BC },
+ unicodeslot=0xFB3A,
},
[0xFB3B]={
- ["category"]="lo",
- ["description"]="HEBREW LETTER KAF WITH DAGESH",
- ["linebreak"]="al",
- ["shcode"]=0x05DB,
- ["specials"]={ "char", 0x05DB, 0x05BC },
- ["unicodeslot"]=0xFB3B, -- כּ
+ category="lo",
+ description="HEBREW LETTER KAF WITH DAGESH",
+ direction="r",
+ linebreak="al",
+ shcode=0x05DB,
+ specials={ "char", 0x05DB, 0x05BC },
+ unicodeslot=0xFB3B,
},
[0xFB3C]={
- ["category"]="lo",
- ["description"]="HEBREW LETTER LAMED WITH DAGESH",
- ["linebreak"]="al",
- ["shcode"]=0x05DC,
- ["specials"]={ "char", 0x05DC, 0x05BC },
- ["unicodeslot"]=0xFB3C, -- לּ
+ category="lo",
+ description="HEBREW LETTER LAMED WITH DAGESH",
+ direction="r",
+ linebreak="al",
+ shcode=0x05DC,
+ specials={ "char", 0x05DC, 0x05BC },
+ unicodeslot=0xFB3C,
},
[0xFB3E]={
- ["category"]="lo",
- ["description"]="HEBREW LETTER MEM WITH DAGESH",
- ["linebreak"]="al",
- ["shcode"]=0x05DE,
- ["specials"]={ "char", 0x05DE, 0x05BC },
- ["unicodeslot"]=0xFB3E, -- מּ
+ category="lo",
+ description="HEBREW LETTER MEM WITH DAGESH",
+ direction="r",
+ linebreak="al",
+ shcode=0x05DE,
+ specials={ "char", 0x05DE, 0x05BC },
+ unicodeslot=0xFB3E,
},
[0xFB40]={
- ["category"]="lo",
- ["description"]="HEBREW LETTER NUN WITH DAGESH",
- ["linebreak"]="al",
- ["shcode"]=0x05E0,
- ["specials"]={ "char", 0x05E0, 0x05BC },
- ["unicodeslot"]=0xFB40, -- נּ
+ category="lo",
+ description="HEBREW LETTER NUN WITH DAGESH",
+ direction="r",
+ linebreak="al",
+ shcode=0x05E0,
+ specials={ "char", 0x05E0, 0x05BC },
+ unicodeslot=0xFB40,
},
[0xFB41]={
- ["category"]="lo",
- ["description"]="HEBREW LETTER SAMEKH WITH DAGESH",
- ["linebreak"]="al",
- ["shcode"]=0x05E1,
- ["specials"]={ "char", 0x05E1, 0x05BC },
- ["unicodeslot"]=0xFB41, -- סּ
+ category="lo",
+ description="HEBREW LETTER SAMEKH WITH DAGESH",
+ direction="r",
+ linebreak="al",
+ shcode=0x05E1,
+ specials={ "char", 0x05E1, 0x05BC },
+ unicodeslot=0xFB41,
},
[0xFB43]={
- ["category"]="lo",
- ["description"]="HEBREW LETTER FINAL PE WITH DAGESH",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x05E3, 0x05BC },
- ["unicodeslot"]=0xFB43, -- ףּ
+ category="lo",
+ description="HEBREW LETTER FINAL PE WITH DAGESH",
+ direction="r",
+ linebreak="al",
+ specials={ "char", 0x05E3, 0x05BC },
+ unicodeslot=0xFB43,
},
[0xFB44]={
- ["category"]="lo",
- ["description"]="HEBREW LETTER PE WITH DAGESH",
- ["linebreak"]="al",
- ["shcode"]=0x05E4,
- ["specials"]={ "char", 0x05E4, 0x05BC },
- ["unicodeslot"]=0xFB44, -- פּ
+ category="lo",
+ description="HEBREW LETTER PE WITH DAGESH",
+ direction="r",
+ linebreak="al",
+ shcode=0x05E4,
+ specials={ "char", 0x05E4, 0x05BC },
+ unicodeslot=0xFB44,
},
[0xFB46]={
- ["category"]="lo",
- ["description"]="HEBREW LETTER TSADI WITH DAGESH",
- ["linebreak"]="al",
- ["shcode"]=0x05E6,
- ["specials"]={ "char", 0x05E6, 0x05BC },
- ["unicodeslot"]=0xFB46, -- צּ
+ category="lo",
+ description="HEBREW LETTER TSADI WITH DAGESH",
+ direction="r",
+ linebreak="al",
+ shcode=0x05E6,
+ specials={ "char", 0x05E6, 0x05BC },
+ unicodeslot=0xFB46,
},
[0xFB47]={
- ["category"]="lo",
- ["description"]="HEBREW LETTER QOF WITH DAGESH",
- ["linebreak"]="al",
- ["shcode"]=0x05E7,
- ["specials"]={ "char", 0x05E7, 0x05BC },
- ["unicodeslot"]=0xFB47, -- קּ
+ category="lo",
+ description="HEBREW LETTER QOF WITH DAGESH",
+ direction="r",
+ linebreak="al",
+ shcode=0x05E7,
+ specials={ "char", 0x05E7, 0x05BC },
+ unicodeslot=0xFB47,
},
[0xFB48]={
- ["category"]="lo",
- ["description"]="HEBREW LETTER RESH WITH DAGESH",
- ["linebreak"]="al",
- ["shcode"]=0x05E8,
- ["specials"]={ "char", 0x05E8, 0x05BC },
- ["unicodeslot"]=0xFB48, -- רּ
+ category="lo",
+ description="HEBREW LETTER RESH WITH DAGESH",
+ direction="r",
+ linebreak="al",
+ shcode=0x05E8,
+ specials={ "char", 0x05E8, 0x05BC },
+ unicodeslot=0xFB48,
},
[0xFB49]={
- ["category"]="lo",
- ["description"]="HEBREW LETTER SHIN WITH DAGESH",
- ["linebreak"]="al",
- ["shcode"]=0x05E9,
- ["specials"]={ "char", 0x05E9, 0x05BC },
- ["unicodeslot"]=0xFB49, -- שּ
+ category="lo",
+ description="HEBREW LETTER SHIN WITH DAGESH",
+ direction="r",
+ linebreak="al",
+ shcode=0x05E9,
+ specials={ "char", 0x05E9, 0x05BC },
+ unicodeslot=0xFB49,
},
[0xFB4A]={
- ["category"]="lo",
- ["description"]="HEBREW LETTER TAV WITH DAGESH",
- ["linebreak"]="al",
- ["shcode"]=0x05EA,
- ["specials"]={ "char", 0x05EA, 0x05BC },
- ["unicodeslot"]=0xFB4A, -- תּ
+ category="lo",
+ description="HEBREW LETTER TAV WITH DAGESH",
+ direction="r",
+ linebreak="al",
+ shcode=0x05EA,
+ specials={ "char", 0x05EA, 0x05BC },
+ unicodeslot=0xFB4A,
},
[0xFB4B]={
- ["category"]="lo",
- ["description"]="HEBREW LETTER VAV WITH HOLAM",
- ["linebreak"]="al",
- ["shcode"]=0x05D5,
- ["specials"]={ "char", 0x05D5, 0x05B9 },
- ["unicodeslot"]=0xFB4B, -- וֹ
+ category="lo",
+ description="HEBREW LETTER VAV WITH HOLAM",
+ direction="r",
+ linebreak="al",
+ shcode=0x05D5,
+ specials={ "char", 0x05D5, 0x05B9 },
+ unicodeslot=0xFB4B,
},
[0xFB4C]={
- ["category"]="lo",
- ["description"]="HEBREW LETTER BET WITH RAFE",
- ["linebreak"]="al",
- ["shcode"]=0x05D1,
- ["specials"]={ "char", 0x05D1, 0x05BF },
- ["unicodeslot"]=0xFB4C, -- בֿ
+ category="lo",
+ description="HEBREW LETTER BET WITH RAFE",
+ direction="r",
+ linebreak="al",
+ shcode=0x05D1,
+ specials={ "char", 0x05D1, 0x05BF },
+ unicodeslot=0xFB4C,
},
[0xFB4D]={
- ["category"]="lo",
- ["description"]="HEBREW LETTER KAF WITH RAFE",
- ["linebreak"]="al",
- ["shcode"]=0x05DB,
- ["specials"]={ "char", 0x05DB, 0x05BF },
- ["unicodeslot"]=0xFB4D, -- כֿ
+ category="lo",
+ description="HEBREW LETTER KAF WITH RAFE",
+ direction="r",
+ linebreak="al",
+ shcode=0x05DB,
+ specials={ "char", 0x05DB, 0x05BF },
+ unicodeslot=0xFB4D,
},
[0xFB4E]={
- ["category"]="lo",
- ["description"]="HEBREW LETTER PE WITH RAFE",
- ["linebreak"]="al",
- ["shcode"]=0x05E4,
- ["specials"]={ "char", 0x05E4, 0x05BF },
- ["unicodeslot"]=0xFB4E, -- פֿ
+ category="lo",
+ description="HEBREW LETTER PE WITH RAFE",
+ direction="r",
+ linebreak="al",
+ shcode=0x05E4,
+ specials={ "char", 0x05E4, 0x05BF },
+ unicodeslot=0xFB4E,
},
[0xFB4F]={
- ["category"]="lo",
- ["description"]="HEBREW LIGATURE ALEF LAMED",
- ["linebreak"]="al",
- ["specials"]={ "compat", 0x05D0, 0x05DC },
- ["unicodeslot"]=0xFB4F, -- ﭏ
+ category="lo",
+ description="HEBREW LIGATURE ALEF LAMED",
+ direction="r",
+ linebreak="al",
+ specials={ "compat", 0x05D0, 0x05DC },
+ unicodeslot=0xFB4F,
},
[0xFB50]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER ALEF WASLA ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0671 },
- ["unicodeslot"]=0xFB50, -- ﭐ
+ category="lo",
+ description="ARABIC LETTER ALEF WASLA ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0671 },
+ unicodeslot=0xFB50,
},
[0xFB51]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER ALEF WASLA FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0671 },
- ["unicodeslot"]=0xFB51, -- ﭑ
+ category="lo",
+ description="ARABIC LETTER ALEF WASLA FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0671 },
+ unicodeslot=0xFB51,
},
[0xFB52]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER BEEH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x067B },
- ["unicodeslot"]=0xFB52, -- ﭒ
+ category="lo",
+ description="ARABIC LETTER BEEH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x067B },
+ unicodeslot=0xFB52,
},
[0xFB53]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER BEEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x067B },
- ["unicodeslot"]=0xFB53, -- ﭓ
+ category="lo",
+ description="ARABIC LETTER BEEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x067B },
+ unicodeslot=0xFB53,
},
[0xFB54]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER BEEH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x067B },
- ["unicodeslot"]=0xFB54, -- ﭔ
+ category="lo",
+ description="ARABIC LETTER BEEH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x067B },
+ unicodeslot=0xFB54,
},
[0xFB55]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER BEEH MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x067B },
- ["unicodeslot"]=0xFB55, -- ﭕ
+ category="lo",
+ description="ARABIC LETTER BEEH MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x067B },
+ unicodeslot=0xFB55,
},
[0xFB56]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER PEH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x067E },
- ["unicodeslot"]=0xFB56, -- ﭖ
+ category="lo",
+ description="ARABIC LETTER PEH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x067E },
+ unicodeslot=0xFB56,
},
[0xFB57]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER PEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x067E },
- ["unicodeslot"]=0xFB57, -- ﭗ
+ category="lo",
+ description="ARABIC LETTER PEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x067E },
+ unicodeslot=0xFB57,
},
[0xFB58]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER PEH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x067E },
- ["unicodeslot"]=0xFB58, -- ﭘ
+ category="lo",
+ description="ARABIC LETTER PEH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x067E },
+ unicodeslot=0xFB58,
},
[0xFB59]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER PEH MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x067E },
- ["unicodeslot"]=0xFB59, -- ﭙ
+ category="lo",
+ description="ARABIC LETTER PEH MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x067E },
+ unicodeslot=0xFB59,
},
[0xFB5A]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER BEHEH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0680 },
- ["unicodeslot"]=0xFB5A, -- ﭚ
+ category="lo",
+ description="ARABIC LETTER BEHEH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0680 },
+ unicodeslot=0xFB5A,
},
[0xFB5B]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER BEHEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0680 },
- ["unicodeslot"]=0xFB5B, -- ﭛ
+ category="lo",
+ description="ARABIC LETTER BEHEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0680 },
+ unicodeslot=0xFB5B,
},
[0xFB5C]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER BEHEH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0680 },
- ["unicodeslot"]=0xFB5C, -- ﭜ
+ category="lo",
+ description="ARABIC LETTER BEHEH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0680 },
+ unicodeslot=0xFB5C,
},
[0xFB5D]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER BEHEH MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x0680 },
- ["unicodeslot"]=0xFB5D, -- ﭝ
+ category="lo",
+ description="ARABIC LETTER BEHEH MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x0680 },
+ unicodeslot=0xFB5D,
},
[0xFB5E]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER TTEHEH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x067A },
- ["unicodeslot"]=0xFB5E, -- ﭞ
+ category="lo",
+ description="ARABIC LETTER TTEHEH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x067A },
+ unicodeslot=0xFB5E,
},
[0xFB5F]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER TTEHEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x067A },
- ["unicodeslot"]=0xFB5F, -- ﭟ
+ category="lo",
+ description="ARABIC LETTER TTEHEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x067A },
+ unicodeslot=0xFB5F,
},
[0xFB60]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER TTEHEH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x067A },
- ["unicodeslot"]=0xFB60, -- ﭠ
+ category="lo",
+ description="ARABIC LETTER TTEHEH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x067A },
+ unicodeslot=0xFB60,
},
[0xFB61]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER TTEHEH MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x067A },
- ["unicodeslot"]=0xFB61, -- ﭡ
+ category="lo",
+ description="ARABIC LETTER TTEHEH MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x067A },
+ unicodeslot=0xFB61,
},
[0xFB62]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER TEHEH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x067F },
- ["unicodeslot"]=0xFB62, -- ﭢ
+ category="lo",
+ description="ARABIC LETTER TEHEH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x067F },
+ unicodeslot=0xFB62,
},
[0xFB63]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER TEHEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x067F },
- ["unicodeslot"]=0xFB63, -- ﭣ
+ category="lo",
+ description="ARABIC LETTER TEHEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x067F },
+ unicodeslot=0xFB63,
},
[0xFB64]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER TEHEH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x067F },
- ["unicodeslot"]=0xFB64, -- ﭤ
+ category="lo",
+ description="ARABIC LETTER TEHEH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x067F },
+ unicodeslot=0xFB64,
},
[0xFB65]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER TEHEH MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x067F },
- ["unicodeslot"]=0xFB65, -- ﭥ
+ category="lo",
+ description="ARABIC LETTER TEHEH MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x067F },
+ unicodeslot=0xFB65,
},
[0xFB66]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER TTEH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0679 },
- ["unicodeslot"]=0xFB66, -- ﭦ
+ category="lo",
+ description="ARABIC LETTER TTEH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0679 },
+ unicodeslot=0xFB66,
},
[0xFB67]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER TTEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0679 },
- ["unicodeslot"]=0xFB67, -- ﭧ
+ category="lo",
+ description="ARABIC LETTER TTEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0679 },
+ unicodeslot=0xFB67,
},
[0xFB68]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER TTEH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0679 },
- ["unicodeslot"]=0xFB68, -- ﭨ
+ category="lo",
+ description="ARABIC LETTER TTEH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0679 },
+ unicodeslot=0xFB68,
},
[0xFB69]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER TTEH MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x0679 },
- ["unicodeslot"]=0xFB69, -- ﭩ
+ category="lo",
+ description="ARABIC LETTER TTEH MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x0679 },
+ unicodeslot=0xFB69,
},
[0xFB6A]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER VEH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x06A4 },
- ["unicodeslot"]=0xFB6A, -- ﭪ
+ category="lo",
+ description="ARABIC LETTER VEH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x06A4 },
+ unicodeslot=0xFB6A,
},
[0xFB6B]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER VEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x06A4 },
- ["unicodeslot"]=0xFB6B, -- ﭫ
+ category="lo",
+ description="ARABIC LETTER VEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x06A4 },
+ unicodeslot=0xFB6B,
},
[0xFB6C]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER VEH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x06A4 },
- ["unicodeslot"]=0xFB6C, -- ﭬ
+ category="lo",
+ description="ARABIC LETTER VEH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x06A4 },
+ unicodeslot=0xFB6C,
},
[0xFB6D]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER VEH MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x06A4 },
- ["unicodeslot"]=0xFB6D, -- ﭭ
+ category="lo",
+ description="ARABIC LETTER VEH MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x06A4 },
+ unicodeslot=0xFB6D,
},
[0xFB6E]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER PEHEH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x06A6 },
- ["unicodeslot"]=0xFB6E, -- ﭮ
+ category="lo",
+ description="ARABIC LETTER PEHEH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x06A6 },
+ unicodeslot=0xFB6E,
},
[0xFB6F]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER PEHEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x06A6 },
- ["unicodeslot"]=0xFB6F, -- ﭯ
+ category="lo",
+ description="ARABIC LETTER PEHEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x06A6 },
+ unicodeslot=0xFB6F,
},
[0xFB70]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER PEHEH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x06A6 },
- ["unicodeslot"]=0xFB70, -- ﭰ
+ category="lo",
+ description="ARABIC LETTER PEHEH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x06A6 },
+ unicodeslot=0xFB70,
},
[0xFB71]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER PEHEH MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x06A6 },
- ["unicodeslot"]=0xFB71, -- ﭱ
+ category="lo",
+ description="ARABIC LETTER PEHEH MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x06A6 },
+ unicodeslot=0xFB71,
},
[0xFB72]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER DYEH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0684 },
- ["unicodeslot"]=0xFB72, -- ﭲ
+ category="lo",
+ description="ARABIC LETTER DYEH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0684 },
+ unicodeslot=0xFB72,
},
[0xFB73]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER DYEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0684 },
- ["unicodeslot"]=0xFB73, -- ﭳ
+ category="lo",
+ description="ARABIC LETTER DYEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0684 },
+ unicodeslot=0xFB73,
},
[0xFB74]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER DYEH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0684 },
- ["unicodeslot"]=0xFB74, -- ﭴ
+ category="lo",
+ description="ARABIC LETTER DYEH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0684 },
+ unicodeslot=0xFB74,
},
[0xFB75]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER DYEH MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x0684 },
- ["unicodeslot"]=0xFB75, -- ﭵ
+ category="lo",
+ description="ARABIC LETTER DYEH MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x0684 },
+ unicodeslot=0xFB75,
},
[0xFB76]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER NYEH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0683 },
- ["unicodeslot"]=0xFB76, -- ﭶ
+ category="lo",
+ description="ARABIC LETTER NYEH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0683 },
+ unicodeslot=0xFB76,
},
[0xFB77]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER NYEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0683 },
- ["unicodeslot"]=0xFB77, -- ﭷ
+ category="lo",
+ description="ARABIC LETTER NYEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0683 },
+ unicodeslot=0xFB77,
},
[0xFB78]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER NYEH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0683 },
- ["unicodeslot"]=0xFB78, -- ﭸ
+ category="lo",
+ description="ARABIC LETTER NYEH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0683 },
+ unicodeslot=0xFB78,
},
[0xFB79]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER NYEH MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x0683 },
- ["unicodeslot"]=0xFB79, -- ﭹ
+ category="lo",
+ description="ARABIC LETTER NYEH MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x0683 },
+ unicodeslot=0xFB79,
},
[0xFB7A]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER TCHEH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0686 },
- ["unicodeslot"]=0xFB7A, -- ﭺ
+ category="lo",
+ description="ARABIC LETTER TCHEH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0686 },
+ unicodeslot=0xFB7A,
},
[0xFB7B]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER TCHEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0686 },
- ["unicodeslot"]=0xFB7B, -- ﭻ
+ category="lo",
+ description="ARABIC LETTER TCHEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0686 },
+ unicodeslot=0xFB7B,
},
[0xFB7C]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER TCHEH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0686 },
- ["unicodeslot"]=0xFB7C, -- ﭼ
+ category="lo",
+ description="ARABIC LETTER TCHEH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0686 },
+ unicodeslot=0xFB7C,
},
[0xFB7D]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER TCHEH MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x0686 },
- ["unicodeslot"]=0xFB7D, -- ﭽ
+ category="lo",
+ description="ARABIC LETTER TCHEH MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x0686 },
+ unicodeslot=0xFB7D,
},
[0xFB7E]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER TCHEHEH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0687 },
- ["unicodeslot"]=0xFB7E, -- ﭾ
+ category="lo",
+ description="ARABIC LETTER TCHEHEH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0687 },
+ unicodeslot=0xFB7E,
},
[0xFB7F]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER TCHEHEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0687 },
- ["unicodeslot"]=0xFB7F, -- ﭿ
+ category="lo",
+ description="ARABIC LETTER TCHEHEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0687 },
+ unicodeslot=0xFB7F,
},
[0xFB80]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER TCHEHEH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0687 },
- ["unicodeslot"]=0xFB80, -- ﮀ
+ category="lo",
+ description="ARABIC LETTER TCHEHEH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0687 },
+ unicodeslot=0xFB80,
},
[0xFB81]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER TCHEHEH MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x0687 },
- ["unicodeslot"]=0xFB81, -- ﮁ
+ category="lo",
+ description="ARABIC LETTER TCHEHEH MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x0687 },
+ unicodeslot=0xFB81,
},
[0xFB82]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER DDAHAL ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x068D },
- ["unicodeslot"]=0xFB82, -- ﮂ
+ category="lo",
+ description="ARABIC LETTER DDAHAL ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x068D },
+ unicodeslot=0xFB82,
},
[0xFB83]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER DDAHAL FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x068D },
- ["unicodeslot"]=0xFB83, -- ﮃ
+ category="lo",
+ description="ARABIC LETTER DDAHAL FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x068D },
+ unicodeslot=0xFB83,
},
[0xFB84]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER DAHAL ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x068C },
- ["unicodeslot"]=0xFB84, -- ﮄ
+ category="lo",
+ description="ARABIC LETTER DAHAL ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x068C },
+ unicodeslot=0xFB84,
},
[0xFB85]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER DAHAL FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x068C },
- ["unicodeslot"]=0xFB85, -- ﮅ
+ category="lo",
+ description="ARABIC LETTER DAHAL FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x068C },
+ unicodeslot=0xFB85,
},
[0xFB86]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER DUL ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x068E },
- ["unicodeslot"]=0xFB86, -- ﮆ
+ category="lo",
+ description="ARABIC LETTER DUL ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x068E },
+ unicodeslot=0xFB86,
},
[0xFB87]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER DUL FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x068E },
- ["unicodeslot"]=0xFB87, -- ﮇ
+ category="lo",
+ description="ARABIC LETTER DUL FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x068E },
+ unicodeslot=0xFB87,
},
[0xFB88]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER DDAL ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0688 },
- ["unicodeslot"]=0xFB88, -- ﮈ
+ category="lo",
+ description="ARABIC LETTER DDAL ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0688 },
+ unicodeslot=0xFB88,
},
[0xFB89]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER DDAL FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0688 },
- ["unicodeslot"]=0xFB89, -- ﮉ
+ category="lo",
+ description="ARABIC LETTER DDAL FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0688 },
+ unicodeslot=0xFB89,
},
[0xFB8A]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER JEH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0698 },
- ["unicodeslot"]=0xFB8A, -- ﮊ
+ category="lo",
+ description="ARABIC LETTER JEH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0698 },
+ unicodeslot=0xFB8A,
},
[0xFB8B]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER JEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0698 },
- ["unicodeslot"]=0xFB8B, -- ﮋ
+ category="lo",
+ description="ARABIC LETTER JEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0698 },
+ unicodeslot=0xFB8B,
},
[0xFB8C]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER RREH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0691 },
- ["unicodeslot"]=0xFB8C, -- ﮌ
+ category="lo",
+ description="ARABIC LETTER RREH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0691 },
+ unicodeslot=0xFB8C,
},
[0xFB8D]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER RREH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0691 },
- ["unicodeslot"]=0xFB8D, -- ﮍ
+ category="lo",
+ description="ARABIC LETTER RREH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0691 },
+ unicodeslot=0xFB8D,
},
[0xFB8E]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER KEHEH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x06A9 },
- ["unicodeslot"]=0xFB8E, -- ﮎ
+ category="lo",
+ description="ARABIC LETTER KEHEH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x06A9 },
+ unicodeslot=0xFB8E,
},
[0xFB8F]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER KEHEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x06A9 },
- ["unicodeslot"]=0xFB8F, -- ﮏ
+ category="lo",
+ description="ARABIC LETTER KEHEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x06A9 },
+ unicodeslot=0xFB8F,
},
[0xFB90]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER KEHEH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x06A9 },
- ["unicodeslot"]=0xFB90, -- ﮐ
+ category="lo",
+ description="ARABIC LETTER KEHEH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x06A9 },
+ unicodeslot=0xFB90,
},
[0xFB91]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER KEHEH MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x06A9 },
- ["unicodeslot"]=0xFB91, -- ﮑ
+ category="lo",
+ description="ARABIC LETTER KEHEH MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x06A9 },
+ unicodeslot=0xFB91,
},
[0xFB92]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER GAF ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x06AF },
- ["unicodeslot"]=0xFB92, -- ﮒ
+ category="lo",
+ description="ARABIC LETTER GAF ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x06AF },
+ unicodeslot=0xFB92,
},
[0xFB93]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER GAF FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x06AF },
- ["unicodeslot"]=0xFB93, -- ﮓ
+ category="lo",
+ description="ARABIC LETTER GAF FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x06AF },
+ unicodeslot=0xFB93,
},
[0xFB94]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER GAF INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x06AF },
- ["unicodeslot"]=0xFB94, -- ﮔ
+ category="lo",
+ description="ARABIC LETTER GAF INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x06AF },
+ unicodeslot=0xFB94,
},
[0xFB95]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER GAF MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x06AF },
- ["unicodeslot"]=0xFB95, -- ﮕ
+ category="lo",
+ description="ARABIC LETTER GAF MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x06AF },
+ unicodeslot=0xFB95,
},
[0xFB96]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER GUEH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x06B3 },
- ["unicodeslot"]=0xFB96, -- ﮖ
+ category="lo",
+ description="ARABIC LETTER GUEH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x06B3 },
+ unicodeslot=0xFB96,
},
[0xFB97]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER GUEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x06B3 },
- ["unicodeslot"]=0xFB97, -- ﮗ
+ category="lo",
+ description="ARABIC LETTER GUEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x06B3 },
+ unicodeslot=0xFB97,
},
[0xFB98]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER GUEH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x06B3 },
- ["unicodeslot"]=0xFB98, -- ﮘ
+ category="lo",
+ description="ARABIC LETTER GUEH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x06B3 },
+ unicodeslot=0xFB98,
},
[0xFB99]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER GUEH MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x06B3 },
- ["unicodeslot"]=0xFB99, -- ﮙ
+ category="lo",
+ description="ARABIC LETTER GUEH MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x06B3 },
+ unicodeslot=0xFB99,
},
[0xFB9A]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER NGOEH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x06B1 },
- ["unicodeslot"]=0xFB9A, -- ﮚ
+ category="lo",
+ description="ARABIC LETTER NGOEH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x06B1 },
+ unicodeslot=0xFB9A,
},
[0xFB9B]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER NGOEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x06B1 },
- ["unicodeslot"]=0xFB9B, -- ﮛ
+ category="lo",
+ description="ARABIC LETTER NGOEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x06B1 },
+ unicodeslot=0xFB9B,
},
[0xFB9C]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER NGOEH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x06B1 },
- ["unicodeslot"]=0xFB9C, -- ﮜ
+ category="lo",
+ description="ARABIC LETTER NGOEH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x06B1 },
+ unicodeslot=0xFB9C,
},
[0xFB9D]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER NGOEH MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x06B1 },
- ["unicodeslot"]=0xFB9D, -- ﮝ
+ category="lo",
+ description="ARABIC LETTER NGOEH MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x06B1 },
+ unicodeslot=0xFB9D,
},
[0xFB9E]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER NOON GHUNNA ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x06BA },
- ["unicodeslot"]=0xFB9E, -- ﮞ
+ category="lo",
+ description="ARABIC LETTER NOON GHUNNA ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x06BA },
+ unicodeslot=0xFB9E,
},
[0xFB9F]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER NOON GHUNNA FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x06BA },
- ["unicodeslot"]=0xFB9F, -- ﮟ
+ category="lo",
+ description="ARABIC LETTER NOON GHUNNA FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x06BA },
+ unicodeslot=0xFB9F,
},
[0xFBA0]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER RNOON ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x06BB },
- ["unicodeslot"]=0xFBA0, -- ﮠ
+ category="lo",
+ description="ARABIC LETTER RNOON ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x06BB },
+ unicodeslot=0xFBA0,
},
[0xFBA1]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER RNOON FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x06BB },
- ["unicodeslot"]=0xFBA1, -- ﮡ
+ category="lo",
+ description="ARABIC LETTER RNOON FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x06BB },
+ unicodeslot=0xFBA1,
},
[0xFBA2]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER RNOON INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x06BB },
- ["unicodeslot"]=0xFBA2, -- ﮢ
+ category="lo",
+ description="ARABIC LETTER RNOON INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x06BB },
+ unicodeslot=0xFBA2,
},
[0xFBA3]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER RNOON MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x06BB },
- ["unicodeslot"]=0xFBA3, -- ﮣ
+ category="lo",
+ description="ARABIC LETTER RNOON MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x06BB },
+ unicodeslot=0xFBA3,
},
[0xFBA4]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER HEH WITH YEH ABOVE ISOLATED FORM",
- ["linebreak"]="al",
- ["shcode"]=0x0647,
- ["specials"]={ "isolated", 0x06C0 },
- ["unicodeslot"]=0xFBA4, -- ﮤ
+ category="lo",
+ description="ARABIC LETTER HEH WITH YEH ABOVE ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ shcode=0x0647,
+ specials={ "isolated", 0x06C0 },
+ unicodeslot=0xFBA4,
},
[0xFBA5]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER HEH WITH YEH ABOVE FINAL FORM",
- ["linebreak"]="al",
- ["shcode"]=0x0647,
- ["specials"]={ "final", 0x06C0 },
- ["unicodeslot"]=0xFBA5, -- ﮥ
+ category="lo",
+ description="ARABIC LETTER HEH WITH YEH ABOVE FINAL FORM",
+ direction="al",
+ linebreak="al",
+ shcode=0x0647,
+ specials={ "final", 0x06C0 },
+ unicodeslot=0xFBA5,
},
[0xFBA6]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER HEH GOAL ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x06C1 },
- ["unicodeslot"]=0xFBA6, -- ﮦ
+ category="lo",
+ description="ARABIC LETTER HEH GOAL ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x06C1 },
+ unicodeslot=0xFBA6,
},
[0xFBA7]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER HEH GOAL FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x06C1 },
- ["unicodeslot"]=0xFBA7, -- ﮧ
+ category="lo",
+ description="ARABIC LETTER HEH GOAL FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x06C1 },
+ unicodeslot=0xFBA7,
},
[0xFBA8]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER HEH GOAL INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x06C1 },
- ["unicodeslot"]=0xFBA8, -- ﮨ
+ category="lo",
+ description="ARABIC LETTER HEH GOAL INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x06C1 },
+ unicodeslot=0xFBA8,
},
[0xFBA9]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER HEH GOAL MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x06C1 },
- ["unicodeslot"]=0xFBA9, -- ﮩ
+ category="lo",
+ description="ARABIC LETTER HEH GOAL MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x06C1 },
+ unicodeslot=0xFBA9,
},
[0xFBAA]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER HEH DOACHASHMEE ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x06BE },
- ["unicodeslot"]=0xFBAA, -- ﮪ
+ category="lo",
+ description="ARABIC LETTER HEH DOACHASHMEE ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x06BE },
+ unicodeslot=0xFBAA,
},
[0xFBAB]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER HEH DOACHASHMEE FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x06BE },
- ["unicodeslot"]=0xFBAB, -- ﮫ
+ category="lo",
+ description="ARABIC LETTER HEH DOACHASHMEE FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x06BE },
+ unicodeslot=0xFBAB,
},
[0xFBAC]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER HEH DOACHASHMEE INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x06BE },
- ["unicodeslot"]=0xFBAC, -- ﮬ
+ category="lo",
+ description="ARABIC LETTER HEH DOACHASHMEE INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x06BE },
+ unicodeslot=0xFBAC,
},
[0xFBAD]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER HEH DOACHASHMEE MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x06BE },
- ["unicodeslot"]=0xFBAD, -- ﮭ
+ category="lo",
+ description="ARABIC LETTER HEH DOACHASHMEE MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x06BE },
+ unicodeslot=0xFBAD,
},
[0xFBAE]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER YEH BARREE ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x06D2 },
- ["unicodeslot"]=0xFBAE, -- ﮮ
+ category="lo",
+ description="ARABIC LETTER YEH BARREE ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x06D2 },
+ unicodeslot=0xFBAE,
},
[0xFBAF]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER YEH BARREE FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x06D2 },
- ["unicodeslot"]=0xFBAF, -- ﮯ
+ category="lo",
+ description="ARABIC LETTER YEH BARREE FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x06D2 },
+ unicodeslot=0xFBAF,
},
[0xFBB0]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x06D3 },
- ["unicodeslot"]=0xFBB0, -- ﮰ
+ category="lo",
+ description="ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x06D3 },
+ unicodeslot=0xFBB0,
},
[0xFBB1]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x06D3 },
- ["unicodeslot"]=0xFBB1, -- ﮱ
+ category="lo",
+ description="ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x06D3 },
+ unicodeslot=0xFBB1,
},
[0xFBD3]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER NG ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x06AD },
- ["unicodeslot"]=0xFBD3, -- ﯓ
+ category="lo",
+ description="ARABIC LETTER NG ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x06AD },
+ unicodeslot=0xFBD3,
},
[0xFBD4]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER NG FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x06AD },
- ["unicodeslot"]=0xFBD4, -- ﯔ
+ category="lo",
+ description="ARABIC LETTER NG FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x06AD },
+ unicodeslot=0xFBD4,
},
[0xFBD5]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER NG INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x06AD },
- ["unicodeslot"]=0xFBD5, -- ﯕ
+ category="lo",
+ description="ARABIC LETTER NG INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x06AD },
+ unicodeslot=0xFBD5,
},
[0xFBD6]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER NG MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x06AD },
- ["unicodeslot"]=0xFBD6, -- ﯖ
+ category="lo",
+ description="ARABIC LETTER NG MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x06AD },
+ unicodeslot=0xFBD6,
},
[0xFBD7]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER U ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x06C7 },
- ["unicodeslot"]=0xFBD7, -- ﯗ
+ category="lo",
+ description="ARABIC LETTER U ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x06C7 },
+ unicodeslot=0xFBD7,
},
[0xFBD8]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER U FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x06C7 },
- ["unicodeslot"]=0xFBD8, -- ﯘ
+ category="lo",
+ description="ARABIC LETTER U FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x06C7 },
+ unicodeslot=0xFBD8,
},
[0xFBD9]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER OE ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x06C6 },
- ["unicodeslot"]=0xFBD9, -- ﯙ
+ category="lo",
+ description="ARABIC LETTER OE ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x06C6 },
+ unicodeslot=0xFBD9,
},
[0xFBDA]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER OE FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x06C6 },
- ["unicodeslot"]=0xFBDA, -- ﯚ
+ category="lo",
+ description="ARABIC LETTER OE FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x06C6 },
+ unicodeslot=0xFBDA,
},
[0xFBDB]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER YU ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x06C8 },
- ["unicodeslot"]=0xFBDB, -- ﯛ
+ category="lo",
+ description="ARABIC LETTER YU ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x06C8 },
+ unicodeslot=0xFBDB,
},
[0xFBDC]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER YU FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x06C8 },
- ["unicodeslot"]=0xFBDC, -- ﯜ
+ category="lo",
+ description="ARABIC LETTER YU FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x06C8 },
+ unicodeslot=0xFBDC,
},
[0xFBDD]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER U WITH HAMZA ABOVE ISOLATED FORM",
- ["linebreak"]="al",
- ["shcode"]=0x06C7,
- ["specials"]={ "isolated", 0x0677 },
- ["unicodeslot"]=0xFBDD, -- ﯝ
+ category="lo",
+ description="ARABIC LETTER U WITH HAMZA ABOVE ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ shcode=0x06C7,
+ specials={ "isolated", 0x0677 },
+ unicodeslot=0xFBDD,
},
[0xFBDE]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER VE ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x06CB },
- ["unicodeslot"]=0xFBDE, -- ﯞ
+ category="lo",
+ description="ARABIC LETTER VE ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x06CB },
+ unicodeslot=0xFBDE,
},
[0xFBDF]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER VE FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x06CB },
- ["unicodeslot"]=0xFBDF, -- ﯟ
+ category="lo",
+ description="ARABIC LETTER VE FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x06CB },
+ unicodeslot=0xFBDF,
},
[0xFBE0]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER KIRGHIZ OE ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x06C5 },
- ["unicodeslot"]=0xFBE0, -- ﯠ
+ category="lo",
+ description="ARABIC LETTER KIRGHIZ OE ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x06C5 },
+ unicodeslot=0xFBE0,
},
[0xFBE1]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER KIRGHIZ OE FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x06C5 },
- ["unicodeslot"]=0xFBE1, -- ﯡ
+ category="lo",
+ description="ARABIC LETTER KIRGHIZ OE FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x06C5 },
+ unicodeslot=0xFBE1,
},
[0xFBE2]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER KIRGHIZ YU ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x06C9 },
- ["unicodeslot"]=0xFBE2, -- ﯢ
+ category="lo",
+ description="ARABIC LETTER KIRGHIZ YU ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x06C9 },
+ unicodeslot=0xFBE2,
},
[0xFBE3]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER KIRGHIZ YU FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x06C9 },
- ["unicodeslot"]=0xFBE3, -- ﯣ
+ category="lo",
+ description="ARABIC LETTER KIRGHIZ YU FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x06C9 },
+ unicodeslot=0xFBE3,
},
[0xFBE4]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER E ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x06D0 },
- ["unicodeslot"]=0xFBE4, -- ﯤ
+ category="lo",
+ description="ARABIC LETTER E ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x06D0 },
+ unicodeslot=0xFBE4,
},
[0xFBE5]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER E FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x06D0 },
- ["unicodeslot"]=0xFBE5, -- ﯥ
+ category="lo",
+ description="ARABIC LETTER E FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x06D0 },
+ unicodeslot=0xFBE5,
},
[0xFBE6]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER E INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x06D0 },
- ["unicodeslot"]=0xFBE6, -- ﯦ
+ category="lo",
+ description="ARABIC LETTER E INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x06D0 },
+ unicodeslot=0xFBE6,
},
[0xFBE7]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER E MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x06D0 },
- ["unicodeslot"]=0xFBE7, -- ﯧ
+ category="lo",
+ description="ARABIC LETTER E MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x06D0 },
+ unicodeslot=0xFBE7,
},
[0xFBE8]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0649 },
- ["unicodeslot"]=0xFBE8, -- ﯨ
+ category="lo",
+ description="ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0649 },
+ unicodeslot=0xFBE8,
},
[0xFBE9]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x0649 },
- ["unicodeslot"]=0xFBE9, -- ﯩ
+ category="lo",
+ description="ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x0649 },
+ unicodeslot=0xFBE9,
},
[0xFBEA]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0626, 0x0627 },
- ["unicodeslot"]=0xFBEA, -- ﯪ
+ category="lo",
+ description="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0626, 0x0627 },
+ unicodeslot=0xFBEA,
},
[0xFBEB]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0626, 0x0627 },
- ["unicodeslot"]=0xFBEB, -- ﯫ
+ category="lo",
+ description="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0626, 0x0627 },
+ unicodeslot=0xFBEB,
},
[0xFBEC]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0626, 0x06D5 },
- ["unicodeslot"]=0xFBEC, -- ﯬ
+ category="lo",
+ description="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0626, 0x06D5 },
+ unicodeslot=0xFBEC,
},
[0xFBED]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0626, 0x06D5 },
- ["unicodeslot"]=0xFBED, -- ﯭ
+ category="lo",
+ description="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0626, 0x06D5 },
+ unicodeslot=0xFBED,
},
[0xFBEE]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0626, 0x0648 },
- ["unicodeslot"]=0xFBEE, -- ﯮ
+ category="lo",
+ description="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0626, 0x0648 },
+ unicodeslot=0xFBEE,
},
[0xFBEF]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0626, 0x0648 },
- ["unicodeslot"]=0xFBEF, -- ﯯ
+ category="lo",
+ description="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0626, 0x0648 },
+ unicodeslot=0xFBEF,
},
[0xFBF0]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0626, 0x06C7 },
- ["unicodeslot"]=0xFBF0, -- ﯰ
+ category="lo",
+ description="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0626, 0x06C7 },
+ unicodeslot=0xFBF0,
},
[0xFBF1]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0626, 0x06C7 },
- ["unicodeslot"]=0xFBF1, -- ﯱ
+ category="lo",
+ description="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0626, 0x06C7 },
+ unicodeslot=0xFBF1,
},
[0xFBF2]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0626, 0x06C6 },
- ["unicodeslot"]=0xFBF2, -- ﯲ
+ category="lo",
+ description="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0626, 0x06C6 },
+ unicodeslot=0xFBF2,
},
[0xFBF3]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0626, 0x06C6 },
- ["unicodeslot"]=0xFBF3, -- ﯳ
+ category="lo",
+ description="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0626, 0x06C6 },
+ unicodeslot=0xFBF3,
},
[0xFBF4]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0626, 0x06C8 },
- ["unicodeslot"]=0xFBF4, -- ﯴ
+ category="lo",
+ description="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0626, 0x06C8 },
+ unicodeslot=0xFBF4,
},
[0xFBF5]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0626, 0x06C8 },
- ["unicodeslot"]=0xFBF5, -- ﯵ
+ category="lo",
+ description="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0626, 0x06C8 },
+ unicodeslot=0xFBF5,
},
[0xFBF6]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0626, 0x06D0 },
- ["unicodeslot"]=0xFBF6, -- ﯶ
+ category="lo",
+ description="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0626, 0x06D0 },
+ unicodeslot=0xFBF6,
},
[0xFBF7]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0626, 0x06D0 },
- ["unicodeslot"]=0xFBF7, -- ﯷ
+ category="lo",
+ description="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0626, 0x06D0 },
+ unicodeslot=0xFBF7,
},
[0xFBF8]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0626, 0x06D0 },
- ["unicodeslot"]=0xFBF8, -- ﯸ
+ category="lo",
+ description="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0626, 0x06D0 },
+ unicodeslot=0xFBF8,
},
[0xFBF9]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0626, 0x0649 },
- ["unicodeslot"]=0xFBF9, -- ﯹ
+ category="lo",
+ description="ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0626, 0x0649 },
+ unicodeslot=0xFBF9,
},
[0xFBFA]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0626, 0x0649 },
- ["unicodeslot"]=0xFBFA, -- ﯺ
+ category="lo",
+ description="ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0626, 0x0649 },
+ unicodeslot=0xFBFA,
},
[0xFBFB]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0626, 0x0649 },
- ["unicodeslot"]=0xFBFB, -- ﯻ
+ category="lo",
+ description="ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0626, 0x0649 },
+ unicodeslot=0xFBFB,
},
[0xFBFC]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER FARSI YEH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x06CC },
- ["unicodeslot"]=0xFBFC, -- ﯼ
+ category="lo",
+ description="ARABIC LETTER FARSI YEH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x06CC },
+ unicodeslot=0xFBFC,
},
[0xFBFD]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER FARSI YEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x06CC },
- ["unicodeslot"]=0xFBFD, -- ﯽ
+ category="lo",
+ description="ARABIC LETTER FARSI YEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x06CC },
+ unicodeslot=0xFBFD,
},
[0xFBFE]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER FARSI YEH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x06CC },
- ["unicodeslot"]=0xFBFE, -- ﯾ
+ category="lo",
+ description="ARABIC LETTER FARSI YEH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x06CC },
+ unicodeslot=0xFBFE,
},
[0xFBFF]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER FARSI YEH MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x06CC },
- ["unicodeslot"]=0xFBFF, -- ﯿ
+ category="lo",
+ description="ARABIC LETTER FARSI YEH MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x06CC },
+ unicodeslot=0xFBFF,
},
[0xFC00]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0626, 0x062C },
- ["unicodeslot"]=0xFC00, -- ﰀ
+ category="lo",
+ description="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0626, 0x062C },
+ unicodeslot=0xFC00,
},
[0xFC01]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0626, 0x062D },
- ["unicodeslot"]=0xFC01, -- ﰁ
+ category="lo",
+ description="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0626, 0x062D },
+ unicodeslot=0xFC01,
},
[0xFC02]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0626, 0x0645 },
- ["unicodeslot"]=0xFC02, -- ﰂ
+ category="lo",
+ description="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0626, 0x0645 },
+ unicodeslot=0xFC02,
},
[0xFC03]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0626, 0x0649 },
- ["unicodeslot"]=0xFC03, -- ﰃ
+ category="lo",
+ description="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0626, 0x0649 },
+ unicodeslot=0xFC03,
},
[0xFC04]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0626, 0x064A },
- ["unicodeslot"]=0xFC04, -- ﰄ
+ category="lo",
+ description="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0626, 0x064A },
+ unicodeslot=0xFC04,
},
[0xFC05]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE BEH WITH JEEM ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0628, 0x062C },
- ["unicodeslot"]=0xFC05, -- ﰅ
+ category="lo",
+ description="ARABIC LIGATURE BEH WITH JEEM ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0628, 0x062C },
+ unicodeslot=0xFC05,
},
[0xFC06]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE BEH WITH HAH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0628, 0x062D },
- ["unicodeslot"]=0xFC06, -- ﰆ
+ category="lo",
+ description="ARABIC LIGATURE BEH WITH HAH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0628, 0x062D },
+ unicodeslot=0xFC06,
},
[0xFC07]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE BEH WITH KHAH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0628, 0x062E },
- ["unicodeslot"]=0xFC07, -- ﰇ
+ category="lo",
+ description="ARABIC LIGATURE BEH WITH KHAH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0628, 0x062E },
+ unicodeslot=0xFC07,
},
[0xFC08]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE BEH WITH MEEM ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0628, 0x0645 },
- ["unicodeslot"]=0xFC08, -- ﰈ
+ category="lo",
+ description="ARABIC LIGATURE BEH WITH MEEM ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0628, 0x0645 },
+ unicodeslot=0xFC08,
},
[0xFC09]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE BEH WITH ALEF MAKSURA ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0628, 0x0649 },
- ["unicodeslot"]=0xFC09, -- ﰉ
+ category="lo",
+ description="ARABIC LIGATURE BEH WITH ALEF MAKSURA ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0628, 0x0649 },
+ unicodeslot=0xFC09,
},
[0xFC0A]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE BEH WITH YEH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0628, 0x064A },
- ["unicodeslot"]=0xFC0A, -- ﰊ
+ category="lo",
+ description="ARABIC LIGATURE BEH WITH YEH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0628, 0x064A },
+ unicodeslot=0xFC0A,
},
[0xFC0B]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE TEH WITH JEEM ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x062A, 0x062C },
- ["unicodeslot"]=0xFC0B, -- ﰋ
+ category="lo",
+ description="ARABIC LIGATURE TEH WITH JEEM ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x062A, 0x062C },
+ unicodeslot=0xFC0B,
},
[0xFC0C]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE TEH WITH HAH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x062A, 0x062D },
- ["unicodeslot"]=0xFC0C, -- ﰌ
+ category="lo",
+ description="ARABIC LIGATURE TEH WITH HAH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x062A, 0x062D },
+ unicodeslot=0xFC0C,
},
[0xFC0D]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE TEH WITH KHAH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x062A, 0x062E },
- ["unicodeslot"]=0xFC0D, -- ﰍ
+ category="lo",
+ description="ARABIC LIGATURE TEH WITH KHAH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x062A, 0x062E },
+ unicodeslot=0xFC0D,
},
[0xFC0E]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE TEH WITH MEEM ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x062A, 0x0645 },
- ["unicodeslot"]=0xFC0E, -- ﰎ
+ category="lo",
+ description="ARABIC LIGATURE TEH WITH MEEM ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x062A, 0x0645 },
+ unicodeslot=0xFC0E,
},
[0xFC0F]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE TEH WITH ALEF MAKSURA ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x062A, 0x0649 },
- ["unicodeslot"]=0xFC0F, -- ﰏ
+ category="lo",
+ description="ARABIC LIGATURE TEH WITH ALEF MAKSURA ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x062A, 0x0649 },
+ unicodeslot=0xFC0F,
},
[0xFC10]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE TEH WITH YEH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x062A, 0x064A },
- ["unicodeslot"]=0xFC10, -- ﰐ
+ category="lo",
+ description="ARABIC LIGATURE TEH WITH YEH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x062A, 0x064A },
+ unicodeslot=0xFC10,
},
[0xFC11]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE THEH WITH JEEM ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x062B, 0x062C },
- ["unicodeslot"]=0xFC11, -- ﰑ
+ category="lo",
+ description="ARABIC LIGATURE THEH WITH JEEM ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x062B, 0x062C },
+ unicodeslot=0xFC11,
},
[0xFC12]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE THEH WITH MEEM ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x062B, 0x0645 },
- ["unicodeslot"]=0xFC12, -- ﰒ
+ category="lo",
+ description="ARABIC LIGATURE THEH WITH MEEM ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x062B, 0x0645 },
+ unicodeslot=0xFC12,
},
[0xFC13]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE THEH WITH ALEF MAKSURA ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x062B, 0x0649 },
- ["unicodeslot"]=0xFC13, -- ﰓ
+ category="lo",
+ description="ARABIC LIGATURE THEH WITH ALEF MAKSURA ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x062B, 0x0649 },
+ unicodeslot=0xFC13,
},
[0xFC14]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE THEH WITH YEH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x062B, 0x064A },
- ["unicodeslot"]=0xFC14, -- ﰔ
+ category="lo",
+ description="ARABIC LIGATURE THEH WITH YEH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x062B, 0x064A },
+ unicodeslot=0xFC14,
},
[0xFC15]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE JEEM WITH HAH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x062C, 0x062D },
- ["unicodeslot"]=0xFC15, -- ﰕ
+ category="lo",
+ description="ARABIC LIGATURE JEEM WITH HAH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x062C, 0x062D },
+ unicodeslot=0xFC15,
},
[0xFC16]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE JEEM WITH MEEM ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x062C, 0x0645 },
- ["unicodeslot"]=0xFC16, -- ﰖ
+ category="lo",
+ description="ARABIC LIGATURE JEEM WITH MEEM ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x062C, 0x0645 },
+ unicodeslot=0xFC16,
},
[0xFC17]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE HAH WITH JEEM ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x062D, 0x062C },
- ["unicodeslot"]=0xFC17, -- ﰗ
+ category="lo",
+ description="ARABIC LIGATURE HAH WITH JEEM ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x062D, 0x062C },
+ unicodeslot=0xFC17,
},
[0xFC18]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE HAH WITH MEEM ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x062D, 0x0645 },
- ["unicodeslot"]=0xFC18, -- ﰘ
+ category="lo",
+ description="ARABIC LIGATURE HAH WITH MEEM ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x062D, 0x0645 },
+ unicodeslot=0xFC18,
},
[0xFC19]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE KHAH WITH JEEM ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x062E, 0x062C },
- ["unicodeslot"]=0xFC19, -- ﰙ
+ category="lo",
+ description="ARABIC LIGATURE KHAH WITH JEEM ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x062E, 0x062C },
+ unicodeslot=0xFC19,
},
[0xFC1A]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE KHAH WITH HAH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x062E, 0x062D },
- ["unicodeslot"]=0xFC1A, -- ﰚ
+ category="lo",
+ description="ARABIC LIGATURE KHAH WITH HAH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x062E, 0x062D },
+ unicodeslot=0xFC1A,
},
[0xFC1B]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE KHAH WITH MEEM ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x062E, 0x0645 },
- ["unicodeslot"]=0xFC1B, -- ﰛ
+ category="lo",
+ description="ARABIC LIGATURE KHAH WITH MEEM ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x062E, 0x0645 },
+ unicodeslot=0xFC1B,
},
[0xFC1C]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SEEN WITH JEEM ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0633, 0x062C },
- ["unicodeslot"]=0xFC1C, -- ﰜ
+ category="lo",
+ description="ARABIC LIGATURE SEEN WITH JEEM ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0633, 0x062C },
+ unicodeslot=0xFC1C,
},
[0xFC1D]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SEEN WITH HAH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0633, 0x062D },
- ["unicodeslot"]=0xFC1D, -- ﰝ
+ category="lo",
+ description="ARABIC LIGATURE SEEN WITH HAH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0633, 0x062D },
+ unicodeslot=0xFC1D,
},
[0xFC1E]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SEEN WITH KHAH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0633, 0x062E },
- ["unicodeslot"]=0xFC1E, -- ﰞ
+ category="lo",
+ description="ARABIC LIGATURE SEEN WITH KHAH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0633, 0x062E },
+ unicodeslot=0xFC1E,
},
[0xFC1F]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SEEN WITH MEEM ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0633, 0x0645 },
- ["unicodeslot"]=0xFC1F, -- ﰟ
+ category="lo",
+ description="ARABIC LIGATURE SEEN WITH MEEM ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0633, 0x0645 },
+ unicodeslot=0xFC1F,
},
[0xFC20]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SAD WITH HAH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0635, 0x062D },
- ["unicodeslot"]=0xFC20, -- ﰠ
+ category="lo",
+ description="ARABIC LIGATURE SAD WITH HAH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0635, 0x062D },
+ unicodeslot=0xFC20,
},
[0xFC21]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SAD WITH MEEM ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0635, 0x0645 },
- ["unicodeslot"]=0xFC21, -- ﰡ
+ category="lo",
+ description="ARABIC LIGATURE SAD WITH MEEM ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0635, 0x0645 },
+ unicodeslot=0xFC21,
},
[0xFC22]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE DAD WITH JEEM ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0636, 0x062C },
- ["unicodeslot"]=0xFC22, -- ﰢ
+ category="lo",
+ description="ARABIC LIGATURE DAD WITH JEEM ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0636, 0x062C },
+ unicodeslot=0xFC22,
},
[0xFC23]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE DAD WITH HAH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0636, 0x062D },
- ["unicodeslot"]=0xFC23, -- ﰣ
+ category="lo",
+ description="ARABIC LIGATURE DAD WITH HAH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0636, 0x062D },
+ unicodeslot=0xFC23,
},
[0xFC24]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE DAD WITH KHAH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0636, 0x062E },
- ["unicodeslot"]=0xFC24, -- ﰤ
+ category="lo",
+ description="ARABIC LIGATURE DAD WITH KHAH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0636, 0x062E },
+ unicodeslot=0xFC24,
},
[0xFC25]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE DAD WITH MEEM ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0636, 0x0645 },
- ["unicodeslot"]=0xFC25, -- ﰥ
+ category="lo",
+ description="ARABIC LIGATURE DAD WITH MEEM ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0636, 0x0645 },
+ unicodeslot=0xFC25,
},
[0xFC26]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE TAH WITH HAH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0637, 0x062D },
- ["unicodeslot"]=0xFC26, -- ﰦ
+ category="lo",
+ description="ARABIC LIGATURE TAH WITH HAH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0637, 0x062D },
+ unicodeslot=0xFC26,
},
[0xFC27]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE TAH WITH MEEM ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0637, 0x0645 },
- ["unicodeslot"]=0xFC27, -- ﰧ
+ category="lo",
+ description="ARABIC LIGATURE TAH WITH MEEM ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0637, 0x0645 },
+ unicodeslot=0xFC27,
},
[0xFC28]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE ZAH WITH MEEM ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0638, 0x0645 },
- ["unicodeslot"]=0xFC28, -- ﰨ
+ category="lo",
+ description="ARABIC LIGATURE ZAH WITH MEEM ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0638, 0x0645 },
+ unicodeslot=0xFC28,
},
[0xFC29]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE AIN WITH JEEM ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0639, 0x062C },
- ["unicodeslot"]=0xFC29, -- ﰩ
+ category="lo",
+ description="ARABIC LIGATURE AIN WITH JEEM ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0639, 0x062C },
+ unicodeslot=0xFC29,
},
[0xFC2A]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE AIN WITH MEEM ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0639, 0x0645 },
- ["unicodeslot"]=0xFC2A, -- ﰪ
+ category="lo",
+ description="ARABIC LIGATURE AIN WITH MEEM ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0639, 0x0645 },
+ unicodeslot=0xFC2A,
},
[0xFC2B]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE GHAIN WITH JEEM ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x063A, 0x062C },
- ["unicodeslot"]=0xFC2B, -- ﰫ
+ category="lo",
+ description="ARABIC LIGATURE GHAIN WITH JEEM ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x063A, 0x062C },
+ unicodeslot=0xFC2B,
},
[0xFC2C]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE GHAIN WITH MEEM ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x063A, 0x0645 },
- ["unicodeslot"]=0xFC2C, -- ﰬ
+ category="lo",
+ description="ARABIC LIGATURE GHAIN WITH MEEM ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x063A, 0x0645 },
+ unicodeslot=0xFC2C,
},
[0xFC2D]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE FEH WITH JEEM ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0641, 0x062C },
- ["unicodeslot"]=0xFC2D, -- ﰭ
+ category="lo",
+ description="ARABIC LIGATURE FEH WITH JEEM ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0641, 0x062C },
+ unicodeslot=0xFC2D,
},
[0xFC2E]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE FEH WITH HAH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0641, 0x062D },
- ["unicodeslot"]=0xFC2E, -- ﰮ
+ category="lo",
+ description="ARABIC LIGATURE FEH WITH HAH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0641, 0x062D },
+ unicodeslot=0xFC2E,
},
[0xFC2F]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE FEH WITH KHAH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0641, 0x062E },
- ["unicodeslot"]=0xFC2F, -- ﰯ
+ category="lo",
+ description="ARABIC LIGATURE FEH WITH KHAH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0641, 0x062E },
+ unicodeslot=0xFC2F,
},
[0xFC30]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE FEH WITH MEEM ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0641, 0x0645 },
- ["unicodeslot"]=0xFC30, -- ﰰ
+ category="lo",
+ description="ARABIC LIGATURE FEH WITH MEEM ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0641, 0x0645 },
+ unicodeslot=0xFC30,
},
[0xFC31]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE FEH WITH ALEF MAKSURA ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0641, 0x0649 },
- ["unicodeslot"]=0xFC31, -- ﰱ
+ category="lo",
+ description="ARABIC LIGATURE FEH WITH ALEF MAKSURA ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0641, 0x0649 },
+ unicodeslot=0xFC31,
},
[0xFC32]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE FEH WITH YEH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0641, 0x064A },
- ["unicodeslot"]=0xFC32, -- ﰲ
+ category="lo",
+ description="ARABIC LIGATURE FEH WITH YEH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0641, 0x064A },
+ unicodeslot=0xFC32,
},
[0xFC33]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE QAF WITH HAH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0642, 0x062D },
- ["unicodeslot"]=0xFC33, -- ﰳ
+ category="lo",
+ description="ARABIC LIGATURE QAF WITH HAH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0642, 0x062D },
+ unicodeslot=0xFC33,
},
[0xFC34]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE QAF WITH MEEM ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0642, 0x0645 },
- ["unicodeslot"]=0xFC34, -- ﰴ
+ category="lo",
+ description="ARABIC LIGATURE QAF WITH MEEM ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0642, 0x0645 },
+ unicodeslot=0xFC34,
},
[0xFC35]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE QAF WITH ALEF MAKSURA ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0642, 0x0649 },
- ["unicodeslot"]=0xFC35, -- ﰵ
+ category="lo",
+ description="ARABIC LIGATURE QAF WITH ALEF MAKSURA ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0642, 0x0649 },
+ unicodeslot=0xFC35,
},
[0xFC36]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE QAF WITH YEH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0642, 0x064A },
- ["unicodeslot"]=0xFC36, -- ﰶ
+ category="lo",
+ description="ARABIC LIGATURE QAF WITH YEH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0642, 0x064A },
+ unicodeslot=0xFC36,
},
[0xFC37]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE KAF WITH ALEF ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0643, 0x0627 },
- ["unicodeslot"]=0xFC37, -- ﰷ
+ category="lo",
+ description="ARABIC LIGATURE KAF WITH ALEF ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0643, 0x0627 },
+ unicodeslot=0xFC37,
},
[0xFC38]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE KAF WITH JEEM ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0643, 0x062C },
- ["unicodeslot"]=0xFC38, -- ﰸ
+ category="lo",
+ description="ARABIC LIGATURE KAF WITH JEEM ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0643, 0x062C },
+ unicodeslot=0xFC38,
},
[0xFC39]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE KAF WITH HAH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0643, 0x062D },
- ["unicodeslot"]=0xFC39, -- ﰹ
+ category="lo",
+ description="ARABIC LIGATURE KAF WITH HAH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0643, 0x062D },
+ unicodeslot=0xFC39,
},
[0xFC3A]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE KAF WITH KHAH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0643, 0x062E },
- ["unicodeslot"]=0xFC3A, -- ﰺ
+ category="lo",
+ description="ARABIC LIGATURE KAF WITH KHAH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0643, 0x062E },
+ unicodeslot=0xFC3A,
},
[0xFC3B]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE KAF WITH LAM ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0643, 0x0644 },
- ["unicodeslot"]=0xFC3B, -- ﰻ
+ category="lo",
+ description="ARABIC LIGATURE KAF WITH LAM ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0643, 0x0644 },
+ unicodeslot=0xFC3B,
},
[0xFC3C]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE KAF WITH MEEM ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0643, 0x0645 },
- ["unicodeslot"]=0xFC3C, -- ﰼ
+ category="lo",
+ description="ARABIC LIGATURE KAF WITH MEEM ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0643, 0x0645 },
+ unicodeslot=0xFC3C,
},
[0xFC3D]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE KAF WITH ALEF MAKSURA ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0643, 0x0649 },
- ["unicodeslot"]=0xFC3D, -- ﰽ
+ category="lo",
+ description="ARABIC LIGATURE KAF WITH ALEF MAKSURA ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0643, 0x0649 },
+ unicodeslot=0xFC3D,
},
[0xFC3E]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE KAF WITH YEH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0643, 0x064A },
- ["unicodeslot"]=0xFC3E, -- ﰾ
+ category="lo",
+ description="ARABIC LIGATURE KAF WITH YEH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0643, 0x064A },
+ unicodeslot=0xFC3E,
},
[0xFC3F]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE LAM WITH JEEM ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0644, 0x062C },
- ["unicodeslot"]=0xFC3F, -- ﰿ
+ category="lo",
+ description="ARABIC LIGATURE LAM WITH JEEM ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0644, 0x062C },
+ unicodeslot=0xFC3F,
},
[0xFC40]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE LAM WITH HAH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0644, 0x062D },
- ["unicodeslot"]=0xFC40, -- ﱀ
+ category="lo",
+ description="ARABIC LIGATURE LAM WITH HAH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0644, 0x062D },
+ unicodeslot=0xFC40,
},
[0xFC41]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE LAM WITH KHAH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0644, 0x062E },
- ["unicodeslot"]=0xFC41, -- ﱁ
+ category="lo",
+ description="ARABIC LIGATURE LAM WITH KHAH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0644, 0x062E },
+ unicodeslot=0xFC41,
},
[0xFC42]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE LAM WITH MEEM ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0644, 0x0645 },
- ["unicodeslot"]=0xFC42, -- ﱂ
+ category="lo",
+ description="ARABIC LIGATURE LAM WITH MEEM ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0644, 0x0645 },
+ unicodeslot=0xFC42,
},
[0xFC43]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE LAM WITH ALEF MAKSURA ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0644, 0x0649 },
- ["unicodeslot"]=0xFC43, -- ﱃ
+ category="lo",
+ description="ARABIC LIGATURE LAM WITH ALEF MAKSURA ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0644, 0x0649 },
+ unicodeslot=0xFC43,
},
[0xFC44]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE LAM WITH YEH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0644, 0x064A },
- ["unicodeslot"]=0xFC44, -- ﱄ
+ category="lo",
+ description="ARABIC LIGATURE LAM WITH YEH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0644, 0x064A },
+ unicodeslot=0xFC44,
},
[0xFC45]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE MEEM WITH JEEM ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0645, 0x062C },
- ["unicodeslot"]=0xFC45, -- ﱅ
+ category="lo",
+ description="ARABIC LIGATURE MEEM WITH JEEM ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0645, 0x062C },
+ unicodeslot=0xFC45,
},
[0xFC46]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE MEEM WITH HAH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0645, 0x062D },
- ["unicodeslot"]=0xFC46, -- ﱆ
+ category="lo",
+ description="ARABIC LIGATURE MEEM WITH HAH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0645, 0x062D },
+ unicodeslot=0xFC46,
},
[0xFC47]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE MEEM WITH KHAH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0645, 0x062E },
- ["unicodeslot"]=0xFC47, -- ﱇ
+ category="lo",
+ description="ARABIC LIGATURE MEEM WITH KHAH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0645, 0x062E },
+ unicodeslot=0xFC47,
},
[0xFC48]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE MEEM WITH MEEM ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0645, 0x0645 },
- ["unicodeslot"]=0xFC48, -- ﱈ
+ category="lo",
+ description="ARABIC LIGATURE MEEM WITH MEEM ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0645, 0x0645 },
+ unicodeslot=0xFC48,
},
[0xFC49]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE MEEM WITH ALEF MAKSURA ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0645, 0x0649 },
- ["unicodeslot"]=0xFC49, -- ﱉ
+ category="lo",
+ description="ARABIC LIGATURE MEEM WITH ALEF MAKSURA ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0645, 0x0649 },
+ unicodeslot=0xFC49,
},
[0xFC4A]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE MEEM WITH YEH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0645, 0x064A },
- ["unicodeslot"]=0xFC4A, -- ﱊ
+ category="lo",
+ description="ARABIC LIGATURE MEEM WITH YEH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0645, 0x064A },
+ unicodeslot=0xFC4A,
},
[0xFC4B]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE NOON WITH JEEM ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0646, 0x062C },
- ["unicodeslot"]=0xFC4B, -- ﱋ
+ category="lo",
+ description="ARABIC LIGATURE NOON WITH JEEM ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0646, 0x062C },
+ unicodeslot=0xFC4B,
},
[0xFC4C]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE NOON WITH HAH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0646, 0x062D },
- ["unicodeslot"]=0xFC4C, -- ﱌ
+ category="lo",
+ description="ARABIC LIGATURE NOON WITH HAH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0646, 0x062D },
+ unicodeslot=0xFC4C,
},
[0xFC4D]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE NOON WITH KHAH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0646, 0x062E },
- ["unicodeslot"]=0xFC4D, -- ﱍ
+ category="lo",
+ description="ARABIC LIGATURE NOON WITH KHAH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0646, 0x062E },
+ unicodeslot=0xFC4D,
},
[0xFC4E]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE NOON WITH MEEM ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0646, 0x0645 },
- ["unicodeslot"]=0xFC4E, -- ﱎ
+ category="lo",
+ description="ARABIC LIGATURE NOON WITH MEEM ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0646, 0x0645 },
+ unicodeslot=0xFC4E,
},
[0xFC4F]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE NOON WITH ALEF MAKSURA ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0646, 0x0649 },
- ["unicodeslot"]=0xFC4F, -- ﱏ
+ category="lo",
+ description="ARABIC LIGATURE NOON WITH ALEF MAKSURA ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0646, 0x0649 },
+ unicodeslot=0xFC4F,
},
[0xFC50]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE NOON WITH YEH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0646, 0x064A },
- ["unicodeslot"]=0xFC50, -- ﱐ
+ category="lo",
+ description="ARABIC LIGATURE NOON WITH YEH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0646, 0x064A },
+ unicodeslot=0xFC50,
},
[0xFC51]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE HEH WITH JEEM ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0647, 0x062C },
- ["unicodeslot"]=0xFC51, -- ﱑ
+ category="lo",
+ description="ARABIC LIGATURE HEH WITH JEEM ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0647, 0x062C },
+ unicodeslot=0xFC51,
},
[0xFC52]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE HEH WITH MEEM ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0647, 0x0645 },
- ["unicodeslot"]=0xFC52, -- ﱒ
+ category="lo",
+ description="ARABIC LIGATURE HEH WITH MEEM ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0647, 0x0645 },
+ unicodeslot=0xFC52,
},
[0xFC53]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE HEH WITH ALEF MAKSURA ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0647, 0x0649 },
- ["unicodeslot"]=0xFC53, -- ﱓ
+ category="lo",
+ description="ARABIC LIGATURE HEH WITH ALEF MAKSURA ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0647, 0x0649 },
+ unicodeslot=0xFC53,
},
[0xFC54]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE HEH WITH YEH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0647, 0x064A },
- ["unicodeslot"]=0xFC54, -- ﱔ
+ category="lo",
+ description="ARABIC LIGATURE HEH WITH YEH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0647, 0x064A },
+ unicodeslot=0xFC54,
},
[0xFC55]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE YEH WITH JEEM ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x064A, 0x062C },
- ["unicodeslot"]=0xFC55, -- ﱕ
+ category="lo",
+ description="ARABIC LIGATURE YEH WITH JEEM ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x064A, 0x062C },
+ unicodeslot=0xFC55,
},
[0xFC56]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE YEH WITH HAH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x064A, 0x062D },
- ["unicodeslot"]=0xFC56, -- ﱖ
+ category="lo",
+ description="ARABIC LIGATURE YEH WITH HAH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x064A, 0x062D },
+ unicodeslot=0xFC56,
},
[0xFC57]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE YEH WITH KHAH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x064A, 0x062E },
- ["unicodeslot"]=0xFC57, -- ﱗ
+ category="lo",
+ description="ARABIC LIGATURE YEH WITH KHAH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x064A, 0x062E },
+ unicodeslot=0xFC57,
},
[0xFC58]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE YEH WITH MEEM ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x064A, 0x0645 },
- ["unicodeslot"]=0xFC58, -- ﱘ
+ category="lo",
+ description="ARABIC LIGATURE YEH WITH MEEM ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x064A, 0x0645 },
+ unicodeslot=0xFC58,
},
[0xFC59]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE YEH WITH ALEF MAKSURA ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x064A, 0x0649 },
- ["unicodeslot"]=0xFC59, -- ﱙ
+ category="lo",
+ description="ARABIC LIGATURE YEH WITH ALEF MAKSURA ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x064A, 0x0649 },
+ unicodeslot=0xFC59,
},
[0xFC5A]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE YEH WITH YEH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x064A, 0x064A },
- ["unicodeslot"]=0xFC5A, -- ﱚ
+ category="lo",
+ description="ARABIC LIGATURE YEH WITH YEH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x064A, 0x064A },
+ unicodeslot=0xFC5A,
},
[0xFC5B]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE THAL WITH SUPERSCRIPT ALEF ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0630, 0x0670 },
- ["unicodeslot"]=0xFC5B, -- ﱛ
+ category="lo",
+ description="ARABIC LIGATURE THAL WITH SUPERSCRIPT ALEF ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0630, 0x0670 },
+ unicodeslot=0xFC5B,
},
[0xFC5C]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE REH WITH SUPERSCRIPT ALEF ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0631, 0x0670 },
- ["unicodeslot"]=0xFC5C, -- ﱜ
+ category="lo",
+ description="ARABIC LIGATURE REH WITH SUPERSCRIPT ALEF ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0631, 0x0670 },
+ unicodeslot=0xFC5C,
},
[0xFC5D]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0649, 0x0670 },
- ["unicodeslot"]=0xFC5D, -- ﱝ
+ category="lo",
+ description="ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0649, 0x0670 },
+ unicodeslot=0xFC5D,
},
[0xFC5E]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SHADDA WITH DAMMATAN ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0020, 0x064C, 0x0651 },
- ["unicodeslot"]=0xFC5E, -- ﱞ
+ category="lo",
+ description="ARABIC LIGATURE SHADDA WITH DAMMATAN ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0020, 0x064C, 0x0651 },
+ unicodeslot=0xFC5E,
},
[0xFC5F]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SHADDA WITH KASRATAN ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0020, 0x064D, 0x0651 },
- ["unicodeslot"]=0xFC5F, -- ﱟ
+ category="lo",
+ description="ARABIC LIGATURE SHADDA WITH KASRATAN ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0020, 0x064D, 0x0651 },
+ unicodeslot=0xFC5F,
},
[0xFC60]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SHADDA WITH FATHA ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0020, 0x064E, 0x0651 },
- ["unicodeslot"]=0xFC60, -- ﱠ
+ category="lo",
+ description="ARABIC LIGATURE SHADDA WITH FATHA ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0020, 0x064E, 0x0651 },
+ unicodeslot=0xFC60,
},
[0xFC61]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SHADDA WITH DAMMA ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0020, 0x064F, 0x0651 },
- ["unicodeslot"]=0xFC61, -- ﱡ
+ category="lo",
+ description="ARABIC LIGATURE SHADDA WITH DAMMA ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0020, 0x064F, 0x0651 },
+ unicodeslot=0xFC61,
},
[0xFC62]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SHADDA WITH KASRA ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0020, 0x0650, 0x0651 },
- ["unicodeslot"]=0xFC62, -- ﱢ
+ category="lo",
+ description="ARABIC LIGATURE SHADDA WITH KASRA ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0020, 0x0650, 0x0651 },
+ unicodeslot=0xFC62,
},
[0xFC63]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SHADDA WITH SUPERSCRIPT ALEF ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0020, 0x0651, 0x0670 },
- ["unicodeslot"]=0xFC63, -- ﱣ
+ category="lo",
+ description="ARABIC LIGATURE SHADDA WITH SUPERSCRIPT ALEF ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0020, 0x0651, 0x0670 },
+ unicodeslot=0xFC63,
},
[0xFC64]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH REH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0626, 0x0631 },
- ["unicodeslot"]=0xFC64, -- ﱤ
+ category="lo",
+ description="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH REH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0626, 0x0631 },
+ unicodeslot=0xFC64,
},
[0xFC65]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ZAIN FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0626, 0x0632 },
- ["unicodeslot"]=0xFC65, -- ﱥ
+ category="lo",
+ description="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ZAIN FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0626, 0x0632 },
+ unicodeslot=0xFC65,
},
[0xFC66]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0626, 0x0645 },
- ["unicodeslot"]=0xFC66, -- ﱦ
+ category="lo",
+ description="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0626, 0x0645 },
+ unicodeslot=0xFC66,
},
[0xFC67]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH NOON FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0626, 0x0646 },
- ["unicodeslot"]=0xFC67, -- ﱧ
+ category="lo",
+ description="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH NOON FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0626, 0x0646 },
+ unicodeslot=0xFC67,
},
[0xFC68]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0626, 0x0649 },
- ["unicodeslot"]=0xFC68, -- ﱨ
+ category="lo",
+ description="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0626, 0x0649 },
+ unicodeslot=0xFC68,
},
[0xFC69]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0626, 0x064A },
- ["unicodeslot"]=0xFC69, -- ﱩ
+ category="lo",
+ description="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0626, 0x064A },
+ unicodeslot=0xFC69,
},
[0xFC6A]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE BEH WITH REH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0628, 0x0631 },
- ["unicodeslot"]=0xFC6A, -- ﱪ
+ category="lo",
+ description="ARABIC LIGATURE BEH WITH REH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0628, 0x0631 },
+ unicodeslot=0xFC6A,
},
[0xFC6B]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE BEH WITH ZAIN FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0628, 0x0632 },
- ["unicodeslot"]=0xFC6B, -- ﱫ
+ category="lo",
+ description="ARABIC LIGATURE BEH WITH ZAIN FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0628, 0x0632 },
+ unicodeslot=0xFC6B,
},
[0xFC6C]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE BEH WITH MEEM FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0628, 0x0645 },
- ["unicodeslot"]=0xFC6C, -- ﱬ
+ category="lo",
+ description="ARABIC LIGATURE BEH WITH MEEM FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0628, 0x0645 },
+ unicodeslot=0xFC6C,
},
[0xFC6D]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE BEH WITH NOON FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0628, 0x0646 },
- ["unicodeslot"]=0xFC6D, -- ﱭ
+ category="lo",
+ description="ARABIC LIGATURE BEH WITH NOON FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0628, 0x0646 },
+ unicodeslot=0xFC6D,
},
[0xFC6E]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE BEH WITH ALEF MAKSURA FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0628, 0x0649 },
- ["unicodeslot"]=0xFC6E, -- ﱮ
+ category="lo",
+ description="ARABIC LIGATURE BEH WITH ALEF MAKSURA FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0628, 0x0649 },
+ unicodeslot=0xFC6E,
},
[0xFC6F]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE BEH WITH YEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0628, 0x064A },
- ["unicodeslot"]=0xFC6F, -- ﱯ
+ category="lo",
+ description="ARABIC LIGATURE BEH WITH YEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0628, 0x064A },
+ unicodeslot=0xFC6F,
},
[0xFC70]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE TEH WITH REH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x062A, 0x0631 },
- ["unicodeslot"]=0xFC70, -- ﱰ
+ category="lo",
+ description="ARABIC LIGATURE TEH WITH REH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x062A, 0x0631 },
+ unicodeslot=0xFC70,
},
[0xFC71]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE TEH WITH ZAIN FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x062A, 0x0632 },
- ["unicodeslot"]=0xFC71, -- ﱱ
+ category="lo",
+ description="ARABIC LIGATURE TEH WITH ZAIN FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x062A, 0x0632 },
+ unicodeslot=0xFC71,
},
[0xFC72]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE TEH WITH MEEM FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x062A, 0x0645 },
- ["unicodeslot"]=0xFC72, -- ﱲ
+ category="lo",
+ description="ARABIC LIGATURE TEH WITH MEEM FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x062A, 0x0645 },
+ unicodeslot=0xFC72,
},
[0xFC73]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE TEH WITH NOON FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x062A, 0x0646 },
- ["unicodeslot"]=0xFC73, -- ﱳ
+ category="lo",
+ description="ARABIC LIGATURE TEH WITH NOON FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x062A, 0x0646 },
+ unicodeslot=0xFC73,
},
[0xFC74]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE TEH WITH ALEF MAKSURA FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x062A, 0x0649 },
- ["unicodeslot"]=0xFC74, -- ﱴ
+ category="lo",
+ description="ARABIC LIGATURE TEH WITH ALEF MAKSURA FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x062A, 0x0649 },
+ unicodeslot=0xFC74,
},
[0xFC75]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE TEH WITH YEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x062A, 0x064A },
- ["unicodeslot"]=0xFC75, -- ﱵ
+ category="lo",
+ description="ARABIC LIGATURE TEH WITH YEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x062A, 0x064A },
+ unicodeslot=0xFC75,
},
[0xFC76]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE THEH WITH REH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x062B, 0x0631 },
- ["unicodeslot"]=0xFC76, -- ﱶ
+ category="lo",
+ description="ARABIC LIGATURE THEH WITH REH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x062B, 0x0631 },
+ unicodeslot=0xFC76,
},
[0xFC77]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE THEH WITH ZAIN FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x062B, 0x0632 },
- ["unicodeslot"]=0xFC77, -- ﱷ
+ category="lo",
+ description="ARABIC LIGATURE THEH WITH ZAIN FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x062B, 0x0632 },
+ unicodeslot=0xFC77,
},
[0xFC78]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE THEH WITH MEEM FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x062B, 0x0645 },
- ["unicodeslot"]=0xFC78, -- ﱸ
+ category="lo",
+ description="ARABIC LIGATURE THEH WITH MEEM FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x062B, 0x0645 },
+ unicodeslot=0xFC78,
},
[0xFC79]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE THEH WITH NOON FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x062B, 0x0646 },
- ["unicodeslot"]=0xFC79, -- ﱹ
+ category="lo",
+ description="ARABIC LIGATURE THEH WITH NOON FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x062B, 0x0646 },
+ unicodeslot=0xFC79,
},
[0xFC7A]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE THEH WITH ALEF MAKSURA FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x062B, 0x0649 },
- ["unicodeslot"]=0xFC7A, -- ﱺ
+ category="lo",
+ description="ARABIC LIGATURE THEH WITH ALEF MAKSURA FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x062B, 0x0649 },
+ unicodeslot=0xFC7A,
},
[0xFC7B]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE THEH WITH YEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x062B, 0x064A },
- ["unicodeslot"]=0xFC7B, -- ﱻ
+ category="lo",
+ description="ARABIC LIGATURE THEH WITH YEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x062B, 0x064A },
+ unicodeslot=0xFC7B,
},
[0xFC7C]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE FEH WITH ALEF MAKSURA FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0641, 0x0649 },
- ["unicodeslot"]=0xFC7C, -- ﱼ
+ category="lo",
+ description="ARABIC LIGATURE FEH WITH ALEF MAKSURA FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0641, 0x0649 },
+ unicodeslot=0xFC7C,
},
[0xFC7D]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE FEH WITH YEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0641, 0x064A },
- ["unicodeslot"]=0xFC7D, -- ﱽ
+ category="lo",
+ description="ARABIC LIGATURE FEH WITH YEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0641, 0x064A },
+ unicodeslot=0xFC7D,
},
[0xFC7E]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE QAF WITH ALEF MAKSURA FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0642, 0x0649 },
- ["unicodeslot"]=0xFC7E, -- ﱾ
+ category="lo",
+ description="ARABIC LIGATURE QAF WITH ALEF MAKSURA FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0642, 0x0649 },
+ unicodeslot=0xFC7E,
},
[0xFC7F]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE QAF WITH YEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0642, 0x064A },
- ["unicodeslot"]=0xFC7F, -- ﱿ
+ category="lo",
+ description="ARABIC LIGATURE QAF WITH YEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0642, 0x064A },
+ unicodeslot=0xFC7F,
},
[0xFC80]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE KAF WITH ALEF FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0643, 0x0627 },
- ["unicodeslot"]=0xFC80, -- ﲀ
+ category="lo",
+ description="ARABIC LIGATURE KAF WITH ALEF FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0643, 0x0627 },
+ unicodeslot=0xFC80,
},
[0xFC81]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE KAF WITH LAM FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0643, 0x0644 },
- ["unicodeslot"]=0xFC81, -- ﲁ
+ category="lo",
+ description="ARABIC LIGATURE KAF WITH LAM FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0643, 0x0644 },
+ unicodeslot=0xFC81,
},
[0xFC82]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE KAF WITH MEEM FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0643, 0x0645 },
- ["unicodeslot"]=0xFC82, -- ﲂ
+ category="lo",
+ description="ARABIC LIGATURE KAF WITH MEEM FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0643, 0x0645 },
+ unicodeslot=0xFC82,
},
[0xFC83]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE KAF WITH ALEF MAKSURA FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0643, 0x0649 },
- ["unicodeslot"]=0xFC83, -- ﲃ
+ category="lo",
+ description="ARABIC LIGATURE KAF WITH ALEF MAKSURA FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0643, 0x0649 },
+ unicodeslot=0xFC83,
},
[0xFC84]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE KAF WITH YEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0643, 0x064A },
- ["unicodeslot"]=0xFC84, -- ﲄ
+ category="lo",
+ description="ARABIC LIGATURE KAF WITH YEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0643, 0x064A },
+ unicodeslot=0xFC84,
},
[0xFC85]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE LAM WITH MEEM FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0644, 0x0645 },
- ["unicodeslot"]=0xFC85, -- ﲅ
+ category="lo",
+ description="ARABIC LIGATURE LAM WITH MEEM FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0644, 0x0645 },
+ unicodeslot=0xFC85,
},
[0xFC86]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE LAM WITH ALEF MAKSURA FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0644, 0x0649 },
- ["unicodeslot"]=0xFC86, -- ﲆ
+ category="lo",
+ description="ARABIC LIGATURE LAM WITH ALEF MAKSURA FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0644, 0x0649 },
+ unicodeslot=0xFC86,
},
[0xFC87]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE LAM WITH YEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0644, 0x064A },
- ["unicodeslot"]=0xFC87, -- ﲇ
+ category="lo",
+ description="ARABIC LIGATURE LAM WITH YEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0644, 0x064A },
+ unicodeslot=0xFC87,
},
[0xFC88]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE MEEM WITH ALEF FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0645, 0x0627 },
- ["unicodeslot"]=0xFC88, -- ﲈ
+ category="lo",
+ description="ARABIC LIGATURE MEEM WITH ALEF FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0645, 0x0627 },
+ unicodeslot=0xFC88,
},
[0xFC89]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE MEEM WITH MEEM FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0645, 0x0645 },
- ["unicodeslot"]=0xFC89, -- ﲉ
+ category="lo",
+ description="ARABIC LIGATURE MEEM WITH MEEM FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0645, 0x0645 },
+ unicodeslot=0xFC89,
},
[0xFC8A]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE NOON WITH REH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0646, 0x0631 },
- ["unicodeslot"]=0xFC8A, -- ﲊ
+ category="lo",
+ description="ARABIC LIGATURE NOON WITH REH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0646, 0x0631 },
+ unicodeslot=0xFC8A,
},
[0xFC8B]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE NOON WITH ZAIN FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0646, 0x0632 },
- ["unicodeslot"]=0xFC8B, -- ﲋ
+ category="lo",
+ description="ARABIC LIGATURE NOON WITH ZAIN FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0646, 0x0632 },
+ unicodeslot=0xFC8B,
},
[0xFC8C]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE NOON WITH MEEM FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0646, 0x0645 },
- ["unicodeslot"]=0xFC8C, -- ﲌ
+ category="lo",
+ description="ARABIC LIGATURE NOON WITH MEEM FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0646, 0x0645 },
+ unicodeslot=0xFC8C,
},
[0xFC8D]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE NOON WITH NOON FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0646, 0x0646 },
- ["unicodeslot"]=0xFC8D, -- ﲍ
+ category="lo",
+ description="ARABIC LIGATURE NOON WITH NOON FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0646, 0x0646 },
+ unicodeslot=0xFC8D,
},
[0xFC8E]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE NOON WITH ALEF MAKSURA FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0646, 0x0649 },
- ["unicodeslot"]=0xFC8E, -- ﲎ
+ category="lo",
+ description="ARABIC LIGATURE NOON WITH ALEF MAKSURA FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0646, 0x0649 },
+ unicodeslot=0xFC8E,
},
[0xFC8F]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE NOON WITH YEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0646, 0x064A },
- ["unicodeslot"]=0xFC8F, -- ﲏ
+ category="lo",
+ description="ARABIC LIGATURE NOON WITH YEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0646, 0x064A },
+ unicodeslot=0xFC8F,
},
[0xFC90]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0649, 0x0670 },
- ["unicodeslot"]=0xFC90, -- ﲐ
+ category="lo",
+ description="ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0649, 0x0670 },
+ unicodeslot=0xFC90,
},
[0xFC91]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE YEH WITH REH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x064A, 0x0631 },
- ["unicodeslot"]=0xFC91, -- ﲑ
+ category="lo",
+ description="ARABIC LIGATURE YEH WITH REH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x064A, 0x0631 },
+ unicodeslot=0xFC91,
},
[0xFC92]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE YEH WITH ZAIN FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x064A, 0x0632 },
- ["unicodeslot"]=0xFC92, -- ﲒ
+ category="lo",
+ description="ARABIC LIGATURE YEH WITH ZAIN FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x064A, 0x0632 },
+ unicodeslot=0xFC92,
},
[0xFC93]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE YEH WITH MEEM FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x064A, 0x0645 },
- ["unicodeslot"]=0xFC93, -- ﲓ
+ category="lo",
+ description="ARABIC LIGATURE YEH WITH MEEM FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x064A, 0x0645 },
+ unicodeslot=0xFC93,
},
[0xFC94]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE YEH WITH NOON FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x064A, 0x0646 },
- ["unicodeslot"]=0xFC94, -- ﲔ
+ category="lo",
+ description="ARABIC LIGATURE YEH WITH NOON FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x064A, 0x0646 },
+ unicodeslot=0xFC94,
},
[0xFC95]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE YEH WITH ALEF MAKSURA FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x064A, 0x0649 },
- ["unicodeslot"]=0xFC95, -- ﲕ
+ category="lo",
+ description="ARABIC LIGATURE YEH WITH ALEF MAKSURA FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x064A, 0x0649 },
+ unicodeslot=0xFC95,
},
[0xFC96]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE YEH WITH YEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x064A, 0x064A },
- ["unicodeslot"]=0xFC96, -- ﲖ
+ category="lo",
+ description="ARABIC LIGATURE YEH WITH YEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x064A, 0x064A },
+ unicodeslot=0xFC96,
},
[0xFC97]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0626, 0x062C },
- ["unicodeslot"]=0xFC97, -- ﲗ
+ category="lo",
+ description="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0626, 0x062C },
+ unicodeslot=0xFC97,
},
[0xFC98]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0626, 0x062D },
- ["unicodeslot"]=0xFC98, -- ﲘ
+ category="lo",
+ description="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0626, 0x062D },
+ unicodeslot=0xFC98,
},
[0xFC99]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH KHAH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0626, 0x062E },
- ["unicodeslot"]=0xFC99, -- ﲙ
+ category="lo",
+ description="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH KHAH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0626, 0x062E },
+ unicodeslot=0xFC99,
},
[0xFC9A]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0626, 0x0645 },
- ["unicodeslot"]=0xFC9A, -- ﲚ
+ category="lo",
+ description="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0626, 0x0645 },
+ unicodeslot=0xFC9A,
},
[0xFC9B]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0626, 0x0647 },
- ["unicodeslot"]=0xFC9B, -- ﲛ
+ category="lo",
+ description="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0626, 0x0647 },
+ unicodeslot=0xFC9B,
},
[0xFC9C]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE BEH WITH JEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0628, 0x062C },
- ["unicodeslot"]=0xFC9C, -- ﲜ
+ category="lo",
+ description="ARABIC LIGATURE BEH WITH JEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0628, 0x062C },
+ unicodeslot=0xFC9C,
},
[0xFC9D]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE BEH WITH HAH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0628, 0x062D },
- ["unicodeslot"]=0xFC9D, -- ﲝ
+ category="lo",
+ description="ARABIC LIGATURE BEH WITH HAH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0628, 0x062D },
+ unicodeslot=0xFC9D,
},
[0xFC9E]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE BEH WITH KHAH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0628, 0x062E },
- ["unicodeslot"]=0xFC9E, -- ﲞ
+ category="lo",
+ description="ARABIC LIGATURE BEH WITH KHAH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0628, 0x062E },
+ unicodeslot=0xFC9E,
},
[0xFC9F]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE BEH WITH MEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0628, 0x0645 },
- ["unicodeslot"]=0xFC9F, -- ﲟ
+ category="lo",
+ description="ARABIC LIGATURE BEH WITH MEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0628, 0x0645 },
+ unicodeslot=0xFC9F,
},
[0xFCA0]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE BEH WITH HEH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0628, 0x0647 },
- ["unicodeslot"]=0xFCA0, -- ﲠ
+ category="lo",
+ description="ARABIC LIGATURE BEH WITH HEH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0628, 0x0647 },
+ unicodeslot=0xFCA0,
},
[0xFCA1]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE TEH WITH JEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x062A, 0x062C },
- ["unicodeslot"]=0xFCA1, -- ﲡ
+ category="lo",
+ description="ARABIC LIGATURE TEH WITH JEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x062A, 0x062C },
+ unicodeslot=0xFCA1,
},
[0xFCA2]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE TEH WITH HAH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x062A, 0x062D },
- ["unicodeslot"]=0xFCA2, -- ﲢ
+ category="lo",
+ description="ARABIC LIGATURE TEH WITH HAH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x062A, 0x062D },
+ unicodeslot=0xFCA2,
},
[0xFCA3]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE TEH WITH KHAH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x062A, 0x062E },
- ["unicodeslot"]=0xFCA3, -- ﲣ
+ category="lo",
+ description="ARABIC LIGATURE TEH WITH KHAH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x062A, 0x062E },
+ unicodeslot=0xFCA3,
},
[0xFCA4]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE TEH WITH MEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x062A, 0x0645 },
- ["unicodeslot"]=0xFCA4, -- ﲤ
+ category="lo",
+ description="ARABIC LIGATURE TEH WITH MEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x062A, 0x0645 },
+ unicodeslot=0xFCA4,
},
[0xFCA5]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE TEH WITH HEH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x062A, 0x0647 },
- ["unicodeslot"]=0xFCA5, -- ﲥ
+ category="lo",
+ description="ARABIC LIGATURE TEH WITH HEH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x062A, 0x0647 },
+ unicodeslot=0xFCA5,
},
[0xFCA6]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE THEH WITH MEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x062B, 0x0645 },
- ["unicodeslot"]=0xFCA6, -- ﲦ
+ category="lo",
+ description="ARABIC LIGATURE THEH WITH MEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x062B, 0x0645 },
+ unicodeslot=0xFCA6,
},
[0xFCA7]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE JEEM WITH HAH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x062C, 0x062D },
- ["unicodeslot"]=0xFCA7, -- ﲧ
+ category="lo",
+ description="ARABIC LIGATURE JEEM WITH HAH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x062C, 0x062D },
+ unicodeslot=0xFCA7,
},
[0xFCA8]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE JEEM WITH MEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x062C, 0x0645 },
- ["unicodeslot"]=0xFCA8, -- ﲨ
+ category="lo",
+ description="ARABIC LIGATURE JEEM WITH MEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x062C, 0x0645 },
+ unicodeslot=0xFCA8,
},
[0xFCA9]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE HAH WITH JEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x062D, 0x062C },
- ["unicodeslot"]=0xFCA9, -- ﲩ
+ category="lo",
+ description="ARABIC LIGATURE HAH WITH JEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x062D, 0x062C },
+ unicodeslot=0xFCA9,
},
[0xFCAA]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE HAH WITH MEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x062D, 0x0645 },
- ["unicodeslot"]=0xFCAA, -- ﲪ
+ category="lo",
+ description="ARABIC LIGATURE HAH WITH MEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x062D, 0x0645 },
+ unicodeslot=0xFCAA,
},
[0xFCAB]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE KHAH WITH JEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x062E, 0x062C },
- ["unicodeslot"]=0xFCAB, -- ﲫ
+ category="lo",
+ description="ARABIC LIGATURE KHAH WITH JEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x062E, 0x062C },
+ unicodeslot=0xFCAB,
},
[0xFCAC]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE KHAH WITH MEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x062E, 0x0645 },
- ["unicodeslot"]=0xFCAC, -- ﲬ
+ category="lo",
+ description="ARABIC LIGATURE KHAH WITH MEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x062E, 0x0645 },
+ unicodeslot=0xFCAC,
},
[0xFCAD]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SEEN WITH JEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0633, 0x062C },
- ["unicodeslot"]=0xFCAD, -- ﲭ
+ category="lo",
+ description="ARABIC LIGATURE SEEN WITH JEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0633, 0x062C },
+ unicodeslot=0xFCAD,
},
[0xFCAE]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SEEN WITH HAH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0633, 0x062D },
- ["unicodeslot"]=0xFCAE, -- ﲮ
+ category="lo",
+ description="ARABIC LIGATURE SEEN WITH HAH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0633, 0x062D },
+ unicodeslot=0xFCAE,
},
[0xFCAF]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SEEN WITH KHAH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0633, 0x062E },
- ["unicodeslot"]=0xFCAF, -- ﲯ
+ category="lo",
+ description="ARABIC LIGATURE SEEN WITH KHAH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0633, 0x062E },
+ unicodeslot=0xFCAF,
},
[0xFCB0]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SEEN WITH MEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0633, 0x0645 },
- ["unicodeslot"]=0xFCB0, -- ﲰ
+ category="lo",
+ description="ARABIC LIGATURE SEEN WITH MEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0633, 0x0645 },
+ unicodeslot=0xFCB0,
},
[0xFCB1]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SAD WITH HAH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0635, 0x062D },
- ["unicodeslot"]=0xFCB1, -- ﲱ
+ category="lo",
+ description="ARABIC LIGATURE SAD WITH HAH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0635, 0x062D },
+ unicodeslot=0xFCB1,
},
[0xFCB2]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SAD WITH KHAH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0635, 0x062E },
- ["unicodeslot"]=0xFCB2, -- ﲲ
+ category="lo",
+ description="ARABIC LIGATURE SAD WITH KHAH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0635, 0x062E },
+ unicodeslot=0xFCB2,
},
[0xFCB3]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SAD WITH MEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0635, 0x0645 },
- ["unicodeslot"]=0xFCB3, -- ﲳ
+ category="lo",
+ description="ARABIC LIGATURE SAD WITH MEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0635, 0x0645 },
+ unicodeslot=0xFCB3,
},
[0xFCB4]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE DAD WITH JEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0636, 0x062C },
- ["unicodeslot"]=0xFCB4, -- ﲴ
+ category="lo",
+ description="ARABIC LIGATURE DAD WITH JEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0636, 0x062C },
+ unicodeslot=0xFCB4,
},
[0xFCB5]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE DAD WITH HAH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0636, 0x062D },
- ["unicodeslot"]=0xFCB5, -- ﲵ
+ category="lo",
+ description="ARABIC LIGATURE DAD WITH HAH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0636, 0x062D },
+ unicodeslot=0xFCB5,
},
[0xFCB6]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE DAD WITH KHAH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0636, 0x062E },
- ["unicodeslot"]=0xFCB6, -- ﲶ
+ category="lo",
+ description="ARABIC LIGATURE DAD WITH KHAH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0636, 0x062E },
+ unicodeslot=0xFCB6,
},
[0xFCB7]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE DAD WITH MEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0636, 0x0645 },
- ["unicodeslot"]=0xFCB7, -- ﲷ
+ category="lo",
+ description="ARABIC LIGATURE DAD WITH MEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0636, 0x0645 },
+ unicodeslot=0xFCB7,
},
[0xFCB8]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE TAH WITH HAH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0637, 0x062D },
- ["unicodeslot"]=0xFCB8, -- ﲸ
+ category="lo",
+ description="ARABIC LIGATURE TAH WITH HAH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0637, 0x062D },
+ unicodeslot=0xFCB8,
},
[0xFCB9]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE ZAH WITH MEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0638, 0x0645 },
- ["unicodeslot"]=0xFCB9, -- ﲹ
+ category="lo",
+ description="ARABIC LIGATURE ZAH WITH MEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0638, 0x0645 },
+ unicodeslot=0xFCB9,
},
[0xFCBA]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE AIN WITH JEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0639, 0x062C },
- ["unicodeslot"]=0xFCBA, -- ﲺ
+ category="lo",
+ description="ARABIC LIGATURE AIN WITH JEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0639, 0x062C },
+ unicodeslot=0xFCBA,
},
[0xFCBB]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE AIN WITH MEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0639, 0x0645 },
- ["unicodeslot"]=0xFCBB, -- ﲻ
+ category="lo",
+ description="ARABIC LIGATURE AIN WITH MEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0639, 0x0645 },
+ unicodeslot=0xFCBB,
},
[0xFCBC]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE GHAIN WITH JEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x063A, 0x062C },
- ["unicodeslot"]=0xFCBC, -- ﲼ
+ category="lo",
+ description="ARABIC LIGATURE GHAIN WITH JEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x063A, 0x062C },
+ unicodeslot=0xFCBC,
},
[0xFCBD]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE GHAIN WITH MEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x063A, 0x0645 },
- ["unicodeslot"]=0xFCBD, -- ﲽ
+ category="lo",
+ description="ARABIC LIGATURE GHAIN WITH MEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x063A, 0x0645 },
+ unicodeslot=0xFCBD,
},
[0xFCBE]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE FEH WITH JEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0641, 0x062C },
- ["unicodeslot"]=0xFCBE, -- ﲾ
+ category="lo",
+ description="ARABIC LIGATURE FEH WITH JEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0641, 0x062C },
+ unicodeslot=0xFCBE,
},
[0xFCBF]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE FEH WITH HAH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0641, 0x062D },
- ["unicodeslot"]=0xFCBF, -- ﲿ
+ category="lo",
+ description="ARABIC LIGATURE FEH WITH HAH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0641, 0x062D },
+ unicodeslot=0xFCBF,
},
[0xFCC0]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE FEH WITH KHAH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0641, 0x062E },
- ["unicodeslot"]=0xFCC0, -- ﳀ
+ category="lo",
+ description="ARABIC LIGATURE FEH WITH KHAH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0641, 0x062E },
+ unicodeslot=0xFCC0,
},
[0xFCC1]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE FEH WITH MEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0641, 0x0645 },
- ["unicodeslot"]=0xFCC1, -- ﳁ
+ category="lo",
+ description="ARABIC LIGATURE FEH WITH MEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0641, 0x0645 },
+ unicodeslot=0xFCC1,
},
[0xFCC2]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE QAF WITH HAH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0642, 0x062D },
- ["unicodeslot"]=0xFCC2, -- ﳂ
+ category="lo",
+ description="ARABIC LIGATURE QAF WITH HAH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0642, 0x062D },
+ unicodeslot=0xFCC2,
},
[0xFCC3]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE QAF WITH MEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0642, 0x0645 },
- ["unicodeslot"]=0xFCC3, -- ﳃ
+ category="lo",
+ description="ARABIC LIGATURE QAF WITH MEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0642, 0x0645 },
+ unicodeslot=0xFCC3,
},
[0xFCC4]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE KAF WITH JEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0643, 0x062C },
- ["unicodeslot"]=0xFCC4, -- ﳄ
+ category="lo",
+ description="ARABIC LIGATURE KAF WITH JEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0643, 0x062C },
+ unicodeslot=0xFCC4,
},
[0xFCC5]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE KAF WITH HAH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0643, 0x062D },
- ["unicodeslot"]=0xFCC5, -- ﳅ
+ category="lo",
+ description="ARABIC LIGATURE KAF WITH HAH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0643, 0x062D },
+ unicodeslot=0xFCC5,
},
[0xFCC6]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE KAF WITH KHAH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0643, 0x062E },
- ["unicodeslot"]=0xFCC6, -- ﳆ
+ category="lo",
+ description="ARABIC LIGATURE KAF WITH KHAH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0643, 0x062E },
+ unicodeslot=0xFCC6,
},
[0xFCC7]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE KAF WITH LAM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0643, 0x0644 },
- ["unicodeslot"]=0xFCC7, -- ﳇ
+ category="lo",
+ description="ARABIC LIGATURE KAF WITH LAM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0643, 0x0644 },
+ unicodeslot=0xFCC7,
},
[0xFCC8]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE KAF WITH MEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0643, 0x0645 },
- ["unicodeslot"]=0xFCC8, -- ﳈ
+ category="lo",
+ description="ARABIC LIGATURE KAF WITH MEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0643, 0x0645 },
+ unicodeslot=0xFCC8,
},
[0xFCC9]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE LAM WITH JEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0644, 0x062C },
- ["unicodeslot"]=0xFCC9, -- ﳉ
+ category="lo",
+ description="ARABIC LIGATURE LAM WITH JEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0644, 0x062C },
+ unicodeslot=0xFCC9,
},
[0xFCCA]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE LAM WITH HAH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0644, 0x062D },
- ["unicodeslot"]=0xFCCA, -- ﳊ
+ category="lo",
+ description="ARABIC LIGATURE LAM WITH HAH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0644, 0x062D },
+ unicodeslot=0xFCCA,
},
[0xFCCB]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE LAM WITH KHAH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0644, 0x062E },
- ["unicodeslot"]=0xFCCB, -- ﳋ
+ category="lo",
+ description="ARABIC LIGATURE LAM WITH KHAH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0644, 0x062E },
+ unicodeslot=0xFCCB,
},
[0xFCCC]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE LAM WITH MEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0644, 0x0645 },
- ["unicodeslot"]=0xFCCC, -- ﳌ
+ category="lo",
+ description="ARABIC LIGATURE LAM WITH MEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0644, 0x0645 },
+ unicodeslot=0xFCCC,
},
[0xFCCD]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE LAM WITH HEH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0644, 0x0647 },
- ["unicodeslot"]=0xFCCD, -- ﳍ
+ category="lo",
+ description="ARABIC LIGATURE LAM WITH HEH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0644, 0x0647 },
+ unicodeslot=0xFCCD,
},
[0xFCCE]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE MEEM WITH JEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0645, 0x062C },
- ["unicodeslot"]=0xFCCE, -- ﳎ
+ category="lo",
+ description="ARABIC LIGATURE MEEM WITH JEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0645, 0x062C },
+ unicodeslot=0xFCCE,
},
[0xFCCF]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE MEEM WITH HAH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0645, 0x062D },
- ["unicodeslot"]=0xFCCF, -- ﳏ
+ category="lo",
+ description="ARABIC LIGATURE MEEM WITH HAH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0645, 0x062D },
+ unicodeslot=0xFCCF,
},
[0xFCD0]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE MEEM WITH KHAH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0645, 0x062E },
- ["unicodeslot"]=0xFCD0, -- ﳐ
+ category="lo",
+ description="ARABIC LIGATURE MEEM WITH KHAH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0645, 0x062E },
+ unicodeslot=0xFCD0,
},
[0xFCD1]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE MEEM WITH MEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0645, 0x0645 },
- ["unicodeslot"]=0xFCD1, -- ﳑ
+ category="lo",
+ description="ARABIC LIGATURE MEEM WITH MEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0645, 0x0645 },
+ unicodeslot=0xFCD1,
},
[0xFCD2]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE NOON WITH JEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0646, 0x062C },
- ["unicodeslot"]=0xFCD2, -- ﳒ
+ category="lo",
+ description="ARABIC LIGATURE NOON WITH JEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0646, 0x062C },
+ unicodeslot=0xFCD2,
},
[0xFCD3]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE NOON WITH HAH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0646, 0x062D },
- ["unicodeslot"]=0xFCD3, -- ﳓ
+ category="lo",
+ description="ARABIC LIGATURE NOON WITH HAH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0646, 0x062D },
+ unicodeslot=0xFCD3,
},
[0xFCD4]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE NOON WITH KHAH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0646, 0x062E },
- ["unicodeslot"]=0xFCD4, -- ﳔ
+ category="lo",
+ description="ARABIC LIGATURE NOON WITH KHAH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0646, 0x062E },
+ unicodeslot=0xFCD4,
},
[0xFCD5]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE NOON WITH MEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0646, 0x0645 },
- ["unicodeslot"]=0xFCD5, -- ﳕ
+ category="lo",
+ description="ARABIC LIGATURE NOON WITH MEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0646, 0x0645 },
+ unicodeslot=0xFCD5,
},
[0xFCD6]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE NOON WITH HEH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0646, 0x0647 },
- ["unicodeslot"]=0xFCD6, -- ﳖ
+ category="lo",
+ description="ARABIC LIGATURE NOON WITH HEH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0646, 0x0647 },
+ unicodeslot=0xFCD6,
},
[0xFCD7]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE HEH WITH JEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0647, 0x062C },
- ["unicodeslot"]=0xFCD7, -- ﳗ
+ category="lo",
+ description="ARABIC LIGATURE HEH WITH JEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0647, 0x062C },
+ unicodeslot=0xFCD7,
},
[0xFCD8]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE HEH WITH MEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0647, 0x0645 },
- ["unicodeslot"]=0xFCD8, -- ﳘ
+ category="lo",
+ description="ARABIC LIGATURE HEH WITH MEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0647, 0x0645 },
+ unicodeslot=0xFCD8,
},
[0xFCD9]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE HEH WITH SUPERSCRIPT ALEF INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0647, 0x0670 },
- ["unicodeslot"]=0xFCD9, -- ﳙ
+ category="lo",
+ description="ARABIC LIGATURE HEH WITH SUPERSCRIPT ALEF INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0647, 0x0670 },
+ unicodeslot=0xFCD9,
},
[0xFCDA]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE YEH WITH JEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x064A, 0x062C },
- ["unicodeslot"]=0xFCDA, -- ﳚ
+ category="lo",
+ description="ARABIC LIGATURE YEH WITH JEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x064A, 0x062C },
+ unicodeslot=0xFCDA,
},
[0xFCDB]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE YEH WITH HAH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x064A, 0x062D },
- ["unicodeslot"]=0xFCDB, -- ﳛ
+ category="lo",
+ description="ARABIC LIGATURE YEH WITH HAH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x064A, 0x062D },
+ unicodeslot=0xFCDB,
},
[0xFCDC]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE YEH WITH KHAH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x064A, 0x062E },
- ["unicodeslot"]=0xFCDC, -- ﳜ
+ category="lo",
+ description="ARABIC LIGATURE YEH WITH KHAH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x064A, 0x062E },
+ unicodeslot=0xFCDC,
},
[0xFCDD]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE YEH WITH MEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x064A, 0x0645 },
- ["unicodeslot"]=0xFCDD, -- ﳝ
+ category="lo",
+ description="ARABIC LIGATURE YEH WITH MEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x064A, 0x0645 },
+ unicodeslot=0xFCDD,
},
[0xFCDE]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE YEH WITH HEH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x064A, 0x0647 },
- ["unicodeslot"]=0xFCDE, -- ﳞ
+ category="lo",
+ description="ARABIC LIGATURE YEH WITH HEH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x064A, 0x0647 },
+ unicodeslot=0xFCDE,
},
[0xFCDF]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x0626, 0x0645 },
- ["unicodeslot"]=0xFCDF, -- ﳟ
+ category="lo",
+ description="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x0626, 0x0645 },
+ unicodeslot=0xFCDF,
},
[0xFCE0]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x0626, 0x0647 },
- ["unicodeslot"]=0xFCE0, -- ﳠ
+ category="lo",
+ description="ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x0626, 0x0647 },
+ unicodeslot=0xFCE0,
},
[0xFCE1]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE BEH WITH MEEM MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x0628, 0x0645 },
- ["unicodeslot"]=0xFCE1, -- ﳡ
+ category="lo",
+ description="ARABIC LIGATURE BEH WITH MEEM MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x0628, 0x0645 },
+ unicodeslot=0xFCE1,
},
[0xFCE2]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE BEH WITH HEH MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x0628, 0x0647 },
- ["unicodeslot"]=0xFCE2, -- ﳢ
+ category="lo",
+ description="ARABIC LIGATURE BEH WITH HEH MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x0628, 0x0647 },
+ unicodeslot=0xFCE2,
},
[0xFCE3]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE TEH WITH MEEM MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x062A, 0x0645 },
- ["unicodeslot"]=0xFCE3, -- ﳣ
+ category="lo",
+ description="ARABIC LIGATURE TEH WITH MEEM MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x062A, 0x0645 },
+ unicodeslot=0xFCE3,
},
[0xFCE4]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE TEH WITH HEH MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x062A, 0x0647 },
- ["unicodeslot"]=0xFCE4, -- ﳤ
+ category="lo",
+ description="ARABIC LIGATURE TEH WITH HEH MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x062A, 0x0647 },
+ unicodeslot=0xFCE4,
},
[0xFCE5]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE THEH WITH MEEM MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x062B, 0x0645 },
- ["unicodeslot"]=0xFCE5, -- ﳥ
+ category="lo",
+ description="ARABIC LIGATURE THEH WITH MEEM MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x062B, 0x0645 },
+ unicodeslot=0xFCE5,
},
[0xFCE6]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE THEH WITH HEH MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x062B, 0x0647 },
- ["unicodeslot"]=0xFCE6, -- ﳦ
+ category="lo",
+ description="ARABIC LIGATURE THEH WITH HEH MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x062B, 0x0647 },
+ unicodeslot=0xFCE6,
},
[0xFCE7]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SEEN WITH MEEM MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x0633, 0x0645 },
- ["unicodeslot"]=0xFCE7, -- ﳧ
+ category="lo",
+ description="ARABIC LIGATURE SEEN WITH MEEM MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x0633, 0x0645 },
+ unicodeslot=0xFCE7,
},
[0xFCE8]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SEEN WITH HEH MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x0633, 0x0647 },
- ["unicodeslot"]=0xFCE8, -- ﳨ
+ category="lo",
+ description="ARABIC LIGATURE SEEN WITH HEH MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x0633, 0x0647 },
+ unicodeslot=0xFCE8,
},
[0xFCE9]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SHEEN WITH MEEM MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x0634, 0x0645 },
- ["unicodeslot"]=0xFCE9, -- ﳩ
+ category="lo",
+ description="ARABIC LIGATURE SHEEN WITH MEEM MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x0634, 0x0645 },
+ unicodeslot=0xFCE9,
},
[0xFCEA]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SHEEN WITH HEH MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x0634, 0x0647 },
- ["unicodeslot"]=0xFCEA, -- ﳪ
+ category="lo",
+ description="ARABIC LIGATURE SHEEN WITH HEH MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x0634, 0x0647 },
+ unicodeslot=0xFCEA,
},
[0xFCEB]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE KAF WITH LAM MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x0643, 0x0644 },
- ["unicodeslot"]=0xFCEB, -- ﳫ
+ category="lo",
+ description="ARABIC LIGATURE KAF WITH LAM MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x0643, 0x0644 },
+ unicodeslot=0xFCEB,
},
[0xFCEC]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE KAF WITH MEEM MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x0643, 0x0645 },
- ["unicodeslot"]=0xFCEC, -- ﳬ
+ category="lo",
+ description="ARABIC LIGATURE KAF WITH MEEM MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x0643, 0x0645 },
+ unicodeslot=0xFCEC,
},
[0xFCED]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE LAM WITH MEEM MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x0644, 0x0645 },
- ["unicodeslot"]=0xFCED, -- ﳭ
+ category="lo",
+ description="ARABIC LIGATURE LAM WITH MEEM MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x0644, 0x0645 },
+ unicodeslot=0xFCED,
},
[0xFCEE]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE NOON WITH MEEM MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x0646, 0x0645 },
- ["unicodeslot"]=0xFCEE, -- ﳮ
+ category="lo",
+ description="ARABIC LIGATURE NOON WITH MEEM MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x0646, 0x0645 },
+ unicodeslot=0xFCEE,
},
[0xFCEF]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE NOON WITH HEH MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x0646, 0x0647 },
- ["unicodeslot"]=0xFCEF, -- ﳯ
+ category="lo",
+ description="ARABIC LIGATURE NOON WITH HEH MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x0646, 0x0647 },
+ unicodeslot=0xFCEF,
},
[0xFCF0]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE YEH WITH MEEM MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x064A, 0x0645 },
- ["unicodeslot"]=0xFCF0, -- ﳰ
+ category="lo",
+ description="ARABIC LIGATURE YEH WITH MEEM MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x064A, 0x0645 },
+ unicodeslot=0xFCF0,
},
[0xFCF1]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE YEH WITH HEH MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x064A, 0x0647 },
- ["unicodeslot"]=0xFCF1, -- ﳱ
+ category="lo",
+ description="ARABIC LIGATURE YEH WITH HEH MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x064A, 0x0647 },
+ unicodeslot=0xFCF1,
},
[0xFCF2]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SHADDA WITH FATHA MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x0640, 0x064E, 0x0651 },
- ["unicodeslot"]=0xFCF2, -- ﳲ
+ category="lo",
+ description="ARABIC LIGATURE SHADDA WITH FATHA MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x0640, 0x064E, 0x0651 },
+ unicodeslot=0xFCF2,
},
[0xFCF3]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SHADDA WITH DAMMA MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x0640, 0x064F, 0x0651 },
- ["unicodeslot"]=0xFCF3, -- ﳳ
+ category="lo",
+ description="ARABIC LIGATURE SHADDA WITH DAMMA MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x0640, 0x064F, 0x0651 },
+ unicodeslot=0xFCF3,
},
[0xFCF4]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SHADDA WITH KASRA MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x0640, 0x0650, 0x0651 },
- ["unicodeslot"]=0xFCF4, -- ﳴ
+ category="lo",
+ description="ARABIC LIGATURE SHADDA WITH KASRA MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x0640, 0x0650, 0x0651 },
+ unicodeslot=0xFCF4,
},
[0xFCF5]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE TAH WITH ALEF MAKSURA ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0637, 0x0649 },
- ["unicodeslot"]=0xFCF5, -- ﳵ
+ category="lo",
+ description="ARABIC LIGATURE TAH WITH ALEF MAKSURA ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0637, 0x0649 },
+ unicodeslot=0xFCF5,
},
[0xFCF6]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE TAH WITH YEH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0637, 0x064A },
- ["unicodeslot"]=0xFCF6, -- ﳶ
+ category="lo",
+ description="ARABIC LIGATURE TAH WITH YEH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0637, 0x064A },
+ unicodeslot=0xFCF6,
},
[0xFCF7]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE AIN WITH ALEF MAKSURA ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0639, 0x0649 },
- ["unicodeslot"]=0xFCF7, -- ﳷ
+ category="lo",
+ description="ARABIC LIGATURE AIN WITH ALEF MAKSURA ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0639, 0x0649 },
+ unicodeslot=0xFCF7,
},
[0xFCF8]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE AIN WITH YEH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0639, 0x064A },
- ["unicodeslot"]=0xFCF8, -- ﳸ
+ category="lo",
+ description="ARABIC LIGATURE AIN WITH YEH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0639, 0x064A },
+ unicodeslot=0xFCF8,
},
[0xFCF9]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE GHAIN WITH ALEF MAKSURA ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x063A, 0x0649 },
- ["unicodeslot"]=0xFCF9, -- ﳹ
+ category="lo",
+ description="ARABIC LIGATURE GHAIN WITH ALEF MAKSURA ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x063A, 0x0649 },
+ unicodeslot=0xFCF9,
},
[0xFCFA]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE GHAIN WITH YEH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x063A, 0x064A },
- ["unicodeslot"]=0xFCFA, -- ﳺ
+ category="lo",
+ description="ARABIC LIGATURE GHAIN WITH YEH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x063A, 0x064A },
+ unicodeslot=0xFCFA,
},
[0xFCFB]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SEEN WITH ALEF MAKSURA ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0633, 0x0649 },
- ["unicodeslot"]=0xFCFB, -- ﳻ
+ category="lo",
+ description="ARABIC LIGATURE SEEN WITH ALEF MAKSURA ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0633, 0x0649 },
+ unicodeslot=0xFCFB,
},
[0xFCFC]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SEEN WITH YEH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0633, 0x064A },
- ["unicodeslot"]=0xFCFC, -- ﳼ
+ category="lo",
+ description="ARABIC LIGATURE SEEN WITH YEH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0633, 0x064A },
+ unicodeslot=0xFCFC,
},
[0xFCFD]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SHEEN WITH ALEF MAKSURA ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0634, 0x0649 },
- ["unicodeslot"]=0xFCFD, -- ﳽ
+ category="lo",
+ description="ARABIC LIGATURE SHEEN WITH ALEF MAKSURA ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0634, 0x0649 },
+ unicodeslot=0xFCFD,
},
[0xFCFE]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SHEEN WITH YEH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0634, 0x064A },
- ["unicodeslot"]=0xFCFE, -- ﳾ
+ category="lo",
+ description="ARABIC LIGATURE SHEEN WITH YEH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0634, 0x064A },
+ unicodeslot=0xFCFE,
},
[0xFCFF]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE HAH WITH ALEF MAKSURA ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x062D, 0x0649 },
- ["unicodeslot"]=0xFCFF, -- ﳿ
+ category="lo",
+ description="ARABIC LIGATURE HAH WITH ALEF MAKSURA ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x062D, 0x0649 },
+ unicodeslot=0xFCFF,
},
[0xFD00]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE HAH WITH YEH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x062D, 0x064A },
- ["unicodeslot"]=0xFD00, -- ﴀ
+ category="lo",
+ description="ARABIC LIGATURE HAH WITH YEH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x062D, 0x064A },
+ unicodeslot=0xFD00,
},
[0xFD01]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE JEEM WITH ALEF MAKSURA ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x062C, 0x0649 },
- ["unicodeslot"]=0xFD01, -- ﴁ
+ category="lo",
+ description="ARABIC LIGATURE JEEM WITH ALEF MAKSURA ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x062C, 0x0649 },
+ unicodeslot=0xFD01,
},
[0xFD02]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE JEEM WITH YEH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x062C, 0x064A },
- ["unicodeslot"]=0xFD02, -- ﴂ
+ category="lo",
+ description="ARABIC LIGATURE JEEM WITH YEH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x062C, 0x064A },
+ unicodeslot=0xFD02,
},
[0xFD03]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE KHAH WITH ALEF MAKSURA ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x062E, 0x0649 },
- ["unicodeslot"]=0xFD03, -- ﴃ
+ category="lo",
+ description="ARABIC LIGATURE KHAH WITH ALEF MAKSURA ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x062E, 0x0649 },
+ unicodeslot=0xFD03,
},
[0xFD04]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE KHAH WITH YEH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x062E, 0x064A },
- ["unicodeslot"]=0xFD04, -- ﴄ
+ category="lo",
+ description="ARABIC LIGATURE KHAH WITH YEH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x062E, 0x064A },
+ unicodeslot=0xFD04,
},
[0xFD05]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SAD WITH ALEF MAKSURA ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0635, 0x0649 },
- ["unicodeslot"]=0xFD05, -- ﴅ
+ category="lo",
+ description="ARABIC LIGATURE SAD WITH ALEF MAKSURA ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0635, 0x0649 },
+ unicodeslot=0xFD05,
},
[0xFD06]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SAD WITH YEH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0635, 0x064A },
- ["unicodeslot"]=0xFD06, -- ﴆ
+ category="lo",
+ description="ARABIC LIGATURE SAD WITH YEH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0635, 0x064A },
+ unicodeslot=0xFD06,
},
[0xFD07]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE DAD WITH ALEF MAKSURA ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0636, 0x0649 },
- ["unicodeslot"]=0xFD07, -- ﴇ
+ category="lo",
+ description="ARABIC LIGATURE DAD WITH ALEF MAKSURA ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0636, 0x0649 },
+ unicodeslot=0xFD07,
},
[0xFD08]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE DAD WITH YEH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0636, 0x064A },
- ["unicodeslot"]=0xFD08, -- ﴈ
+ category="lo",
+ description="ARABIC LIGATURE DAD WITH YEH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0636, 0x064A },
+ unicodeslot=0xFD08,
},
[0xFD09]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SHEEN WITH JEEM ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0634, 0x062C },
- ["unicodeslot"]=0xFD09, -- ﴉ
+ category="lo",
+ description="ARABIC LIGATURE SHEEN WITH JEEM ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0634, 0x062C },
+ unicodeslot=0xFD09,
},
[0xFD0A]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SHEEN WITH HAH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0634, 0x062D },
- ["unicodeslot"]=0xFD0A, -- ﴊ
+ category="lo",
+ description="ARABIC LIGATURE SHEEN WITH HAH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0634, 0x062D },
+ unicodeslot=0xFD0A,
},
[0xFD0B]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SHEEN WITH KHAH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0634, 0x062E },
- ["unicodeslot"]=0xFD0B, -- ﴋ
+ category="lo",
+ description="ARABIC LIGATURE SHEEN WITH KHAH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0634, 0x062E },
+ unicodeslot=0xFD0B,
},
[0xFD0C]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SHEEN WITH MEEM ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0634, 0x0645 },
- ["unicodeslot"]=0xFD0C, -- ﴌ
+ category="lo",
+ description="ARABIC LIGATURE SHEEN WITH MEEM ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0634, 0x0645 },
+ unicodeslot=0xFD0C,
},
[0xFD0D]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SHEEN WITH REH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0634, 0x0631 },
- ["unicodeslot"]=0xFD0D, -- ﴍ
+ category="lo",
+ description="ARABIC LIGATURE SHEEN WITH REH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0634, 0x0631 },
+ unicodeslot=0xFD0D,
},
[0xFD0E]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SEEN WITH REH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0633, 0x0631 },
- ["unicodeslot"]=0xFD0E, -- ﴎ
+ category="lo",
+ description="ARABIC LIGATURE SEEN WITH REH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0633, 0x0631 },
+ unicodeslot=0xFD0E,
},
[0xFD0F]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SAD WITH REH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0635, 0x0631 },
- ["unicodeslot"]=0xFD0F, -- ﴏ
+ category="lo",
+ description="ARABIC LIGATURE SAD WITH REH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0635, 0x0631 },
+ unicodeslot=0xFD0F,
},
[0xFD10]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE DAD WITH REH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0636, 0x0631 },
- ["unicodeslot"]=0xFD10, -- ﴐ
+ category="lo",
+ description="ARABIC LIGATURE DAD WITH REH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0636, 0x0631 },
+ unicodeslot=0xFD10,
},
[0xFD11]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE TAH WITH ALEF MAKSURA FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0637, 0x0649 },
- ["unicodeslot"]=0xFD11, -- ﴑ
+ category="lo",
+ description="ARABIC LIGATURE TAH WITH ALEF MAKSURA FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0637, 0x0649 },
+ unicodeslot=0xFD11,
},
[0xFD12]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE TAH WITH YEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0637, 0x064A },
- ["unicodeslot"]=0xFD12, -- ﴒ
+ category="lo",
+ description="ARABIC LIGATURE TAH WITH YEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0637, 0x064A },
+ unicodeslot=0xFD12,
},
[0xFD13]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE AIN WITH ALEF MAKSURA FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0639, 0x0649 },
- ["unicodeslot"]=0xFD13, -- ﴓ
+ category="lo",
+ description="ARABIC LIGATURE AIN WITH ALEF MAKSURA FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0639, 0x0649 },
+ unicodeslot=0xFD13,
},
[0xFD14]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE AIN WITH YEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0639, 0x064A },
- ["unicodeslot"]=0xFD14, -- ﴔ
+ category="lo",
+ description="ARABIC LIGATURE AIN WITH YEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0639, 0x064A },
+ unicodeslot=0xFD14,
},
[0xFD15]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE GHAIN WITH ALEF MAKSURA FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x063A, 0x0649 },
- ["unicodeslot"]=0xFD15, -- ﴕ
+ category="lo",
+ description="ARABIC LIGATURE GHAIN WITH ALEF MAKSURA FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x063A, 0x0649 },
+ unicodeslot=0xFD15,
},
[0xFD16]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE GHAIN WITH YEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x063A, 0x064A },
- ["unicodeslot"]=0xFD16, -- ﴖ
+ category="lo",
+ description="ARABIC LIGATURE GHAIN WITH YEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x063A, 0x064A },
+ unicodeslot=0xFD16,
},
[0xFD17]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SEEN WITH ALEF MAKSURA FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0633, 0x0649 },
- ["unicodeslot"]=0xFD17, -- ﴗ
+ category="lo",
+ description="ARABIC LIGATURE SEEN WITH ALEF MAKSURA FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0633, 0x0649 },
+ unicodeslot=0xFD17,
},
[0xFD18]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SEEN WITH YEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0633, 0x064A },
- ["unicodeslot"]=0xFD18, -- ﴘ
+ category="lo",
+ description="ARABIC LIGATURE SEEN WITH YEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0633, 0x064A },
+ unicodeslot=0xFD18,
},
[0xFD19]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SHEEN WITH ALEF MAKSURA FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0634, 0x0649 },
- ["unicodeslot"]=0xFD19, -- ﴙ
+ category="lo",
+ description="ARABIC LIGATURE SHEEN WITH ALEF MAKSURA FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0634, 0x0649 },
+ unicodeslot=0xFD19,
},
[0xFD1A]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SHEEN WITH YEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0634, 0x064A },
- ["unicodeslot"]=0xFD1A, -- ﴚ
+ category="lo",
+ description="ARABIC LIGATURE SHEEN WITH YEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0634, 0x064A },
+ unicodeslot=0xFD1A,
},
[0xFD1B]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE HAH WITH ALEF MAKSURA FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x062D, 0x0649 },
- ["unicodeslot"]=0xFD1B, -- ﴛ
+ category="lo",
+ description="ARABIC LIGATURE HAH WITH ALEF MAKSURA FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x062D, 0x0649 },
+ unicodeslot=0xFD1B,
},
[0xFD1C]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE HAH WITH YEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x062D, 0x064A },
- ["unicodeslot"]=0xFD1C, -- ﴜ
+ category="lo",
+ description="ARABIC LIGATURE HAH WITH YEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x062D, 0x064A },
+ unicodeslot=0xFD1C,
},
[0xFD1D]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE JEEM WITH ALEF MAKSURA FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x062C, 0x0649 },
- ["unicodeslot"]=0xFD1D, -- ﴝ
+ category="lo",
+ description="ARABIC LIGATURE JEEM WITH ALEF MAKSURA FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x062C, 0x0649 },
+ unicodeslot=0xFD1D,
},
[0xFD1E]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE JEEM WITH YEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x062C, 0x064A },
- ["unicodeslot"]=0xFD1E, -- ﴞ
+ category="lo",
+ description="ARABIC LIGATURE JEEM WITH YEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x062C, 0x064A },
+ unicodeslot=0xFD1E,
},
[0xFD1F]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE KHAH WITH ALEF MAKSURA FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x062E, 0x0649 },
- ["unicodeslot"]=0xFD1F, -- ﴟ
+ category="lo",
+ description="ARABIC LIGATURE KHAH WITH ALEF MAKSURA FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x062E, 0x0649 },
+ unicodeslot=0xFD1F,
},
[0xFD20]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE KHAH WITH YEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x062E, 0x064A },
- ["unicodeslot"]=0xFD20, -- ﴠ
+ category="lo",
+ description="ARABIC LIGATURE KHAH WITH YEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x062E, 0x064A },
+ unicodeslot=0xFD20,
},
[0xFD21]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SAD WITH ALEF MAKSURA FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0635, 0x0649 },
- ["unicodeslot"]=0xFD21, -- ﴡ
+ category="lo",
+ description="ARABIC LIGATURE SAD WITH ALEF MAKSURA FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0635, 0x0649 },
+ unicodeslot=0xFD21,
},
[0xFD22]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SAD WITH YEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0635, 0x064A },
- ["unicodeslot"]=0xFD22, -- ﴢ
+ category="lo",
+ description="ARABIC LIGATURE SAD WITH YEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0635, 0x064A },
+ unicodeslot=0xFD22,
},
[0xFD23]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE DAD WITH ALEF MAKSURA FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0636, 0x0649 },
- ["unicodeslot"]=0xFD23, -- ﴣ
+ category="lo",
+ description="ARABIC LIGATURE DAD WITH ALEF MAKSURA FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0636, 0x0649 },
+ unicodeslot=0xFD23,
},
[0xFD24]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE DAD WITH YEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0636, 0x064A },
- ["unicodeslot"]=0xFD24, -- ﴤ
+ category="lo",
+ description="ARABIC LIGATURE DAD WITH YEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0636, 0x064A },
+ unicodeslot=0xFD24,
},
[0xFD25]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SHEEN WITH JEEM FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0634, 0x062C },
- ["unicodeslot"]=0xFD25, -- ﴥ
+ category="lo",
+ description="ARABIC LIGATURE SHEEN WITH JEEM FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0634, 0x062C },
+ unicodeslot=0xFD25,
},
[0xFD26]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SHEEN WITH HAH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0634, 0x062D },
- ["unicodeslot"]=0xFD26, -- ﴦ
+ category="lo",
+ description="ARABIC LIGATURE SHEEN WITH HAH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0634, 0x062D },
+ unicodeslot=0xFD26,
},
[0xFD27]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SHEEN WITH KHAH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0634, 0x062E },
- ["unicodeslot"]=0xFD27, -- ﴧ
+ category="lo",
+ description="ARABIC LIGATURE SHEEN WITH KHAH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0634, 0x062E },
+ unicodeslot=0xFD27,
},
[0xFD28]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SHEEN WITH MEEM FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0634, 0x0645 },
- ["unicodeslot"]=0xFD28, -- ﴨ
+ category="lo",
+ description="ARABIC LIGATURE SHEEN WITH MEEM FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0634, 0x0645 },
+ unicodeslot=0xFD28,
},
[0xFD29]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SHEEN WITH REH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0634, 0x0631 },
- ["unicodeslot"]=0xFD29, -- ﴩ
+ category="lo",
+ description="ARABIC LIGATURE SHEEN WITH REH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0634, 0x0631 },
+ unicodeslot=0xFD29,
},
[0xFD2A]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SEEN WITH REH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0633, 0x0631 },
- ["unicodeslot"]=0xFD2A, -- ﴪ
+ category="lo",
+ description="ARABIC LIGATURE SEEN WITH REH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0633, 0x0631 },
+ unicodeslot=0xFD2A,
},
[0xFD2B]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SAD WITH REH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0635, 0x0631 },
- ["unicodeslot"]=0xFD2B, -- ﴫ
+ category="lo",
+ description="ARABIC LIGATURE SAD WITH REH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0635, 0x0631 },
+ unicodeslot=0xFD2B,
},
[0xFD2C]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE DAD WITH REH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0636, 0x0631 },
- ["unicodeslot"]=0xFD2C, -- ﴬ
+ category="lo",
+ description="ARABIC LIGATURE DAD WITH REH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0636, 0x0631 },
+ unicodeslot=0xFD2C,
},
[0xFD2D]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SHEEN WITH JEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0634, 0x062C },
- ["unicodeslot"]=0xFD2D, -- ﴭ
+ category="lo",
+ description="ARABIC LIGATURE SHEEN WITH JEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0634, 0x062C },
+ unicodeslot=0xFD2D,
},
[0xFD2E]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SHEEN WITH HAH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0634, 0x062D },
- ["unicodeslot"]=0xFD2E, -- ﴮ
+ category="lo",
+ description="ARABIC LIGATURE SHEEN WITH HAH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0634, 0x062D },
+ unicodeslot=0xFD2E,
},
[0xFD2F]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SHEEN WITH KHAH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0634, 0x062E },
- ["unicodeslot"]=0xFD2F, -- ﴯ
+ category="lo",
+ description="ARABIC LIGATURE SHEEN WITH KHAH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0634, 0x062E },
+ unicodeslot=0xFD2F,
},
[0xFD30]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SHEEN WITH MEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0634, 0x0645 },
- ["unicodeslot"]=0xFD30, -- ﴰ
+ category="lo",
+ description="ARABIC LIGATURE SHEEN WITH MEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0634, 0x0645 },
+ unicodeslot=0xFD30,
},
[0xFD31]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SEEN WITH HEH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0633, 0x0647 },
- ["unicodeslot"]=0xFD31, -- ﴱ
+ category="lo",
+ description="ARABIC LIGATURE SEEN WITH HEH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0633, 0x0647 },
+ unicodeslot=0xFD31,
},
[0xFD32]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SHEEN WITH HEH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0634, 0x0647 },
- ["unicodeslot"]=0xFD32, -- ﴲ
+ category="lo",
+ description="ARABIC LIGATURE SHEEN WITH HEH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0634, 0x0647 },
+ unicodeslot=0xFD32,
},
[0xFD33]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE TAH WITH MEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0637, 0x0645 },
- ["unicodeslot"]=0xFD33, -- ﴳ
+ category="lo",
+ description="ARABIC LIGATURE TAH WITH MEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0637, 0x0645 },
+ unicodeslot=0xFD33,
},
[0xFD34]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SEEN WITH JEEM MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x0633, 0x062C },
- ["unicodeslot"]=0xFD34, -- ﴴ
+ category="lo",
+ description="ARABIC LIGATURE SEEN WITH JEEM MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x0633, 0x062C },
+ unicodeslot=0xFD34,
},
[0xFD35]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SEEN WITH HAH MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x0633, 0x062D },
- ["unicodeslot"]=0xFD35, -- ﴵ
+ category="lo",
+ description="ARABIC LIGATURE SEEN WITH HAH MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x0633, 0x062D },
+ unicodeslot=0xFD35,
},
[0xFD36]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SEEN WITH KHAH MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x0633, 0x062E },
- ["unicodeslot"]=0xFD36, -- ﴶ
+ category="lo",
+ description="ARABIC LIGATURE SEEN WITH KHAH MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x0633, 0x062E },
+ unicodeslot=0xFD36,
},
[0xFD37]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SHEEN WITH JEEM MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x0634, 0x062C },
- ["unicodeslot"]=0xFD37, -- ﴷ
+ category="lo",
+ description="ARABIC LIGATURE SHEEN WITH JEEM MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x0634, 0x062C },
+ unicodeslot=0xFD37,
},
[0xFD38]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SHEEN WITH HAH MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x0634, 0x062D },
- ["unicodeslot"]=0xFD38, -- ﴸ
+ category="lo",
+ description="ARABIC LIGATURE SHEEN WITH HAH MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x0634, 0x062D },
+ unicodeslot=0xFD38,
},
[0xFD39]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SHEEN WITH KHAH MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x0634, 0x062E },
- ["unicodeslot"]=0xFD39, -- ﴹ
+ category="lo",
+ description="ARABIC LIGATURE SHEEN WITH KHAH MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x0634, 0x062E },
+ unicodeslot=0xFD39,
},
[0xFD3A]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE TAH WITH MEEM MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x0637, 0x0645 },
- ["unicodeslot"]=0xFD3A, -- ﴺ
+ category="lo",
+ description="ARABIC LIGATURE TAH WITH MEEM MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x0637, 0x0645 },
+ unicodeslot=0xFD3A,
},
[0xFD3B]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE ZAH WITH MEEM MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x0638, 0x0645 },
- ["unicodeslot"]=0xFD3B, -- ﴻ
+ category="lo",
+ description="ARABIC LIGATURE ZAH WITH MEEM MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x0638, 0x0645 },
+ unicodeslot=0xFD3B,
},
[0xFD3C]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE ALEF WITH FATHATAN FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0627, 0x064B },
- ["unicodeslot"]=0xFD3C, -- ﴼ
+ category="lo",
+ description="ARABIC LIGATURE ALEF WITH FATHATAN FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0627, 0x064B },
+ unicodeslot=0xFD3C,
},
[0xFD3D]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0627, 0x064B },
- ["unicodeslot"]=0xFD3D, -- ﴽ
+ category="lo",
+ description="ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0627, 0x064B },
+ unicodeslot=0xFD3D,
},
[0xFD3E]={
- ["category"]="ps",
- ["description"]="ORNATE LEFT PARENTHESIS",
- ["linebreak"]="op",
- ["unicodeslot"]=0xFD3E, -- ﴾
+ category="ps",
+ description="ORNATE LEFT PARENTHESIS",
+ direction="on",
+ linebreak="op",
+ unicodeslot=0xFD3E,
},
[0xFD3F]={
- ["category"]="pe",
- ["description"]="ORNATE RIGHT PARENTHESIS",
- ["linebreak"]="cl",
- ["unicodeslot"]=0xFD3F, -- ﴿
+ category="pe",
+ description="ORNATE RIGHT PARENTHESIS",
+ direction="on",
+ linebreak="cl",
+ unicodeslot=0xFD3F,
},
[0xFD50]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x062A, 0x062C, 0x0645 },
- ["unicodeslot"]=0xFD50, -- ﵐ
+ category="lo",
+ description="ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x062A, 0x062C, 0x0645 },
+ unicodeslot=0xFD50,
},
[0xFD51]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE TEH WITH HAH WITH JEEM FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x062A, 0x062D, 0x062C },
- ["unicodeslot"]=0xFD51, -- ﵑ
+ category="lo",
+ description="ARABIC LIGATURE TEH WITH HAH WITH JEEM FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x062A, 0x062D, 0x062C },
+ unicodeslot=0xFD51,
},
[0xFD52]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE TEH WITH HAH WITH JEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x062A, 0x062D, 0x062C },
- ["unicodeslot"]=0xFD52, -- ﵒ
+ category="lo",
+ description="ARABIC LIGATURE TEH WITH HAH WITH JEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x062A, 0x062D, 0x062C },
+ unicodeslot=0xFD52,
},
[0xFD53]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE TEH WITH HAH WITH MEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x062A, 0x062D, 0x0645 },
- ["unicodeslot"]=0xFD53, -- ﵓ
+ category="lo",
+ description="ARABIC LIGATURE TEH WITH HAH WITH MEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x062A, 0x062D, 0x0645 },
+ unicodeslot=0xFD53,
},
[0xFD54]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE TEH WITH KHAH WITH MEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x062A, 0x062E, 0x0645 },
- ["unicodeslot"]=0xFD54, -- ﵔ
+ category="lo",
+ description="ARABIC LIGATURE TEH WITH KHAH WITH MEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x062A, 0x062E, 0x0645 },
+ unicodeslot=0xFD54,
},
[0xFD55]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE TEH WITH MEEM WITH JEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x062A, 0x0645, 0x062C },
- ["unicodeslot"]=0xFD55, -- ﵕ
+ category="lo",
+ description="ARABIC LIGATURE TEH WITH MEEM WITH JEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x062A, 0x0645, 0x062C },
+ unicodeslot=0xFD55,
},
[0xFD56]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE TEH WITH MEEM WITH HAH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x062A, 0x0645, 0x062D },
- ["unicodeslot"]=0xFD56, -- ﵖ
+ category="lo",
+ description="ARABIC LIGATURE TEH WITH MEEM WITH HAH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x062A, 0x0645, 0x062D },
+ unicodeslot=0xFD56,
},
[0xFD57]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE TEH WITH MEEM WITH KHAH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x062A, 0x0645, 0x062E },
- ["unicodeslot"]=0xFD57, -- ﵗ
+ category="lo",
+ description="ARABIC LIGATURE TEH WITH MEEM WITH KHAH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x062A, 0x0645, 0x062E },
+ unicodeslot=0xFD57,
},
[0xFD58]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE JEEM WITH MEEM WITH HAH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x062C, 0x0645, 0x062D },
- ["unicodeslot"]=0xFD58, -- ﵘ
+ category="lo",
+ description="ARABIC LIGATURE JEEM WITH MEEM WITH HAH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x062C, 0x0645, 0x062D },
+ unicodeslot=0xFD58,
},
[0xFD59]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE JEEM WITH MEEM WITH HAH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x062C, 0x0645, 0x062D },
- ["unicodeslot"]=0xFD59, -- ﵙ
+ category="lo",
+ description="ARABIC LIGATURE JEEM WITH MEEM WITH HAH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x062C, 0x0645, 0x062D },
+ unicodeslot=0xFD59,
},
[0xFD5A]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE HAH WITH MEEM WITH YEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x062D, 0x0645, 0x064A },
- ["unicodeslot"]=0xFD5A, -- ﵚ
+ category="lo",
+ description="ARABIC LIGATURE HAH WITH MEEM WITH YEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x062D, 0x0645, 0x064A },
+ unicodeslot=0xFD5A,
},
[0xFD5B]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE HAH WITH MEEM WITH ALEF MAKSURA FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x062D, 0x0645, 0x0649 },
- ["unicodeslot"]=0xFD5B, -- ﵛ
+ category="lo",
+ description="ARABIC LIGATURE HAH WITH MEEM WITH ALEF MAKSURA FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x062D, 0x0645, 0x0649 },
+ unicodeslot=0xFD5B,
},
[0xFD5C]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SEEN WITH HAH WITH JEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0633, 0x062D, 0x062C },
- ["unicodeslot"]=0xFD5C, -- ﵜ
+ category="lo",
+ description="ARABIC LIGATURE SEEN WITH HAH WITH JEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0633, 0x062D, 0x062C },
+ unicodeslot=0xFD5C,
},
[0xFD5D]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SEEN WITH JEEM WITH HAH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0633, 0x062C, 0x062D },
- ["unicodeslot"]=0xFD5D, -- ﵝ
+ category="lo",
+ description="ARABIC LIGATURE SEEN WITH JEEM WITH HAH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0633, 0x062C, 0x062D },
+ unicodeslot=0xFD5D,
},
[0xFD5E]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SEEN WITH JEEM WITH ALEF MAKSURA FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0633, 0x062C, 0x0649 },
- ["unicodeslot"]=0xFD5E, -- ﵞ
+ category="lo",
+ description="ARABIC LIGATURE SEEN WITH JEEM WITH ALEF MAKSURA FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0633, 0x062C, 0x0649 },
+ unicodeslot=0xFD5E,
},
[0xFD5F]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SEEN WITH MEEM WITH HAH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0633, 0x0645, 0x062D },
- ["unicodeslot"]=0xFD5F, -- ﵟ
+ category="lo",
+ description="ARABIC LIGATURE SEEN WITH MEEM WITH HAH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0633, 0x0645, 0x062D },
+ unicodeslot=0xFD5F,
},
[0xFD60]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SEEN WITH MEEM WITH HAH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0633, 0x0645, 0x062D },
- ["unicodeslot"]=0xFD60, -- ﵠ
+ category="lo",
+ description="ARABIC LIGATURE SEEN WITH MEEM WITH HAH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0633, 0x0645, 0x062D },
+ unicodeslot=0xFD60,
},
[0xFD61]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SEEN WITH MEEM WITH JEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0633, 0x0645, 0x062C },
- ["unicodeslot"]=0xFD61, -- ﵡ
+ category="lo",
+ description="ARABIC LIGATURE SEEN WITH MEEM WITH JEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0633, 0x0645, 0x062C },
+ unicodeslot=0xFD61,
},
[0xFD62]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SEEN WITH MEEM WITH MEEM FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0633, 0x0645, 0x0645 },
- ["unicodeslot"]=0xFD62, -- ﵢ
+ category="lo",
+ description="ARABIC LIGATURE SEEN WITH MEEM WITH MEEM FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0633, 0x0645, 0x0645 },
+ unicodeslot=0xFD62,
},
[0xFD63]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SEEN WITH MEEM WITH MEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0633, 0x0645, 0x0645 },
- ["unicodeslot"]=0xFD63, -- ﵣ
+ category="lo",
+ description="ARABIC LIGATURE SEEN WITH MEEM WITH MEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0633, 0x0645, 0x0645 },
+ unicodeslot=0xFD63,
},
[0xFD64]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SAD WITH HAH WITH HAH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0635, 0x062D, 0x062D },
- ["unicodeslot"]=0xFD64, -- ﵤ
+ category="lo",
+ description="ARABIC LIGATURE SAD WITH HAH WITH HAH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0635, 0x062D, 0x062D },
+ unicodeslot=0xFD64,
},
[0xFD65]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SAD WITH HAH WITH HAH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0635, 0x062D, 0x062D },
- ["unicodeslot"]=0xFD65, -- ﵥ
+ category="lo",
+ description="ARABIC LIGATURE SAD WITH HAH WITH HAH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0635, 0x062D, 0x062D },
+ unicodeslot=0xFD65,
},
[0xFD66]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SAD WITH MEEM WITH MEEM FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0635, 0x0645, 0x0645 },
- ["unicodeslot"]=0xFD66, -- ﵦ
+ category="lo",
+ description="ARABIC LIGATURE SAD WITH MEEM WITH MEEM FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0635, 0x0645, 0x0645 },
+ unicodeslot=0xFD66,
},
[0xFD67]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SHEEN WITH HAH WITH MEEM FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0634, 0x062D, 0x0645 },
- ["unicodeslot"]=0xFD67, -- ﵧ
+ category="lo",
+ description="ARABIC LIGATURE SHEEN WITH HAH WITH MEEM FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0634, 0x062D, 0x0645 },
+ unicodeslot=0xFD67,
},
[0xFD68]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SHEEN WITH HAH WITH MEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0634, 0x062D, 0x0645 },
- ["unicodeslot"]=0xFD68, -- ﵨ
+ category="lo",
+ description="ARABIC LIGATURE SHEEN WITH HAH WITH MEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0634, 0x062D, 0x0645 },
+ unicodeslot=0xFD68,
},
[0xFD69]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SHEEN WITH JEEM WITH YEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0634, 0x062C, 0x064A },
- ["unicodeslot"]=0xFD69, -- ﵩ
+ category="lo",
+ description="ARABIC LIGATURE SHEEN WITH JEEM WITH YEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0634, 0x062C, 0x064A },
+ unicodeslot=0xFD69,
},
[0xFD6A]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0634, 0x0645, 0x062E },
- ["unicodeslot"]=0xFD6A, -- ﵪ
+ category="lo",
+ description="ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0634, 0x0645, 0x062E },
+ unicodeslot=0xFD6A,
},
[0xFD6B]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0634, 0x0645, 0x062E },
- ["unicodeslot"]=0xFD6B, -- ﵫ
+ category="lo",
+ description="ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0634, 0x0645, 0x062E },
+ unicodeslot=0xFD6B,
},
[0xFD6C]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0634, 0x0645, 0x0645 },
- ["unicodeslot"]=0xFD6C, -- ﵬ
+ category="lo",
+ description="ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0634, 0x0645, 0x0645 },
+ unicodeslot=0xFD6C,
},
[0xFD6D]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0634, 0x0645, 0x0645 },
- ["unicodeslot"]=0xFD6D, -- ﵭ
+ category="lo",
+ description="ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0634, 0x0645, 0x0645 },
+ unicodeslot=0xFD6D,
},
[0xFD6E]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE DAD WITH HAH WITH ALEF MAKSURA FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0636, 0x062D, 0x0649 },
- ["unicodeslot"]=0xFD6E, -- ﵮ
+ category="lo",
+ description="ARABIC LIGATURE DAD WITH HAH WITH ALEF MAKSURA FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0636, 0x062D, 0x0649 },
+ unicodeslot=0xFD6E,
},
[0xFD6F]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE DAD WITH KHAH WITH MEEM FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0636, 0x062E, 0x0645 },
- ["unicodeslot"]=0xFD6F, -- ﵯ
+ category="lo",
+ description="ARABIC LIGATURE DAD WITH KHAH WITH MEEM FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0636, 0x062E, 0x0645 },
+ unicodeslot=0xFD6F,
},
[0xFD70]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE DAD WITH KHAH WITH MEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0636, 0x062E, 0x0645 },
- ["unicodeslot"]=0xFD70, -- ﵰ
+ category="lo",
+ description="ARABIC LIGATURE DAD WITH KHAH WITH MEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0636, 0x062E, 0x0645 },
+ unicodeslot=0xFD70,
},
[0xFD71]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE TAH WITH MEEM WITH HAH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0637, 0x0645, 0x062D },
- ["unicodeslot"]=0xFD71, -- ﵱ
+ category="lo",
+ description="ARABIC LIGATURE TAH WITH MEEM WITH HAH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0637, 0x0645, 0x062D },
+ unicodeslot=0xFD71,
},
[0xFD72]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE TAH WITH MEEM WITH HAH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0637, 0x0645, 0x062D },
- ["unicodeslot"]=0xFD72, -- ﵲ
+ category="lo",
+ description="ARABIC LIGATURE TAH WITH MEEM WITH HAH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0637, 0x0645, 0x062D },
+ unicodeslot=0xFD72,
},
[0xFD73]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE TAH WITH MEEM WITH MEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0637, 0x0645, 0x0645 },
- ["unicodeslot"]=0xFD73, -- ﵳ
+ category="lo",
+ description="ARABIC LIGATURE TAH WITH MEEM WITH MEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0637, 0x0645, 0x0645 },
+ unicodeslot=0xFD73,
},
[0xFD74]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE TAH WITH MEEM WITH YEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0637, 0x0645, 0x064A },
- ["unicodeslot"]=0xFD74, -- ﵴ
+ category="lo",
+ description="ARABIC LIGATURE TAH WITH MEEM WITH YEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0637, 0x0645, 0x064A },
+ unicodeslot=0xFD74,
},
[0xFD75]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE AIN WITH JEEM WITH MEEM FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0639, 0x062C, 0x0645 },
- ["unicodeslot"]=0xFD75, -- ﵵ
+ category="lo",
+ description="ARABIC LIGATURE AIN WITH JEEM WITH MEEM FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0639, 0x062C, 0x0645 },
+ unicodeslot=0xFD75,
},
[0xFD76]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE AIN WITH MEEM WITH MEEM FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0639, 0x0645, 0x0645 },
- ["unicodeslot"]=0xFD76, -- ﵶ
+ category="lo",
+ description="ARABIC LIGATURE AIN WITH MEEM WITH MEEM FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0639, 0x0645, 0x0645 },
+ unicodeslot=0xFD76,
},
[0xFD77]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE AIN WITH MEEM WITH MEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0639, 0x0645, 0x0645 },
- ["unicodeslot"]=0xFD77, -- ﵷ
+ category="lo",
+ description="ARABIC LIGATURE AIN WITH MEEM WITH MEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0639, 0x0645, 0x0645 },
+ unicodeslot=0xFD77,
},
[0xFD78]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE AIN WITH MEEM WITH ALEF MAKSURA FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0639, 0x0645, 0x0649 },
- ["unicodeslot"]=0xFD78, -- ﵸ
+ category="lo",
+ description="ARABIC LIGATURE AIN WITH MEEM WITH ALEF MAKSURA FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0639, 0x0645, 0x0649 },
+ unicodeslot=0xFD78,
},
[0xFD79]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE GHAIN WITH MEEM WITH MEEM FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x063A, 0x0645, 0x0645 },
- ["unicodeslot"]=0xFD79, -- ﵹ
+ category="lo",
+ description="ARABIC LIGATURE GHAIN WITH MEEM WITH MEEM FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x063A, 0x0645, 0x0645 },
+ unicodeslot=0xFD79,
},
[0xFD7A]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE GHAIN WITH MEEM WITH YEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x063A, 0x0645, 0x064A },
- ["unicodeslot"]=0xFD7A, -- ﵺ
+ category="lo",
+ description="ARABIC LIGATURE GHAIN WITH MEEM WITH YEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x063A, 0x0645, 0x064A },
+ unicodeslot=0xFD7A,
},
[0xFD7B]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE GHAIN WITH MEEM WITH ALEF MAKSURA FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x063A, 0x0645, 0x0649 },
- ["unicodeslot"]=0xFD7B, -- ﵻ
+ category="lo",
+ description="ARABIC LIGATURE GHAIN WITH MEEM WITH ALEF MAKSURA FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x063A, 0x0645, 0x0649 },
+ unicodeslot=0xFD7B,
},
[0xFD7C]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE FEH WITH KHAH WITH MEEM FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0641, 0x062E, 0x0645 },
- ["unicodeslot"]=0xFD7C, -- ﵼ
+ category="lo",
+ description="ARABIC LIGATURE FEH WITH KHAH WITH MEEM FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0641, 0x062E, 0x0645 },
+ unicodeslot=0xFD7C,
},
[0xFD7D]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE FEH WITH KHAH WITH MEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0641, 0x062E, 0x0645 },
- ["unicodeslot"]=0xFD7D, -- ﵽ
+ category="lo",
+ description="ARABIC LIGATURE FEH WITH KHAH WITH MEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0641, 0x062E, 0x0645 },
+ unicodeslot=0xFD7D,
},
[0xFD7E]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE QAF WITH MEEM WITH HAH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0642, 0x0645, 0x062D },
- ["unicodeslot"]=0xFD7E, -- ﵾ
+ category="lo",
+ description="ARABIC LIGATURE QAF WITH MEEM WITH HAH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0642, 0x0645, 0x062D },
+ unicodeslot=0xFD7E,
},
[0xFD7F]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE QAF WITH MEEM WITH MEEM FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0642, 0x0645, 0x0645 },
- ["unicodeslot"]=0xFD7F, -- ﵿ
+ category="lo",
+ description="ARABIC LIGATURE QAF WITH MEEM WITH MEEM FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0642, 0x0645, 0x0645 },
+ unicodeslot=0xFD7F,
},
[0xFD80]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE LAM WITH HAH WITH MEEM FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0644, 0x062D, 0x0645 },
- ["unicodeslot"]=0xFD80, -- ﶀ
+ category="lo",
+ description="ARABIC LIGATURE LAM WITH HAH WITH MEEM FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0644, 0x062D, 0x0645 },
+ unicodeslot=0xFD80,
},
[0xFD81]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE LAM WITH HAH WITH YEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0644, 0x062D, 0x064A },
- ["unicodeslot"]=0xFD81, -- ﶁ
+ category="lo",
+ description="ARABIC LIGATURE LAM WITH HAH WITH YEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0644, 0x062D, 0x064A },
+ unicodeslot=0xFD81,
},
[0xFD82]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE LAM WITH HAH WITH ALEF MAKSURA FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0644, 0x062D, 0x0649 },
- ["unicodeslot"]=0xFD82, -- ﶂ
+ category="lo",
+ description="ARABIC LIGATURE LAM WITH HAH WITH ALEF MAKSURA FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0644, 0x062D, 0x0649 },
+ unicodeslot=0xFD82,
},
[0xFD83]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE LAM WITH JEEM WITH JEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0644, 0x062C, 0x062C },
- ["unicodeslot"]=0xFD83, -- ﶃ
+ category="lo",
+ description="ARABIC LIGATURE LAM WITH JEEM WITH JEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0644, 0x062C, 0x062C },
+ unicodeslot=0xFD83,
},
[0xFD84]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE LAM WITH JEEM WITH JEEM FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0644, 0x062C, 0x062C },
- ["unicodeslot"]=0xFD84, -- ﶄ
+ category="lo",
+ description="ARABIC LIGATURE LAM WITH JEEM WITH JEEM FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0644, 0x062C, 0x062C },
+ unicodeslot=0xFD84,
},
[0xFD85]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE LAM WITH KHAH WITH MEEM FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0644, 0x062E, 0x0645 },
- ["unicodeslot"]=0xFD85, -- ﶅ
+ category="lo",
+ description="ARABIC LIGATURE LAM WITH KHAH WITH MEEM FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0644, 0x062E, 0x0645 },
+ unicodeslot=0xFD85,
},
[0xFD86]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE LAM WITH KHAH WITH MEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0644, 0x062E, 0x0645 },
- ["unicodeslot"]=0xFD86, -- ﶆ
+ category="lo",
+ description="ARABIC LIGATURE LAM WITH KHAH WITH MEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0644, 0x062E, 0x0645 },
+ unicodeslot=0xFD86,
},
[0xFD87]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE LAM WITH MEEM WITH HAH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0644, 0x0645, 0x062D },
- ["unicodeslot"]=0xFD87, -- ﶇ
+ category="lo",
+ description="ARABIC LIGATURE LAM WITH MEEM WITH HAH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0644, 0x0645, 0x062D },
+ unicodeslot=0xFD87,
},
[0xFD88]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE LAM WITH MEEM WITH HAH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0644, 0x0645, 0x062D },
- ["unicodeslot"]=0xFD88, -- ﶈ
+ category="lo",
+ description="ARABIC LIGATURE LAM WITH MEEM WITH HAH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0644, 0x0645, 0x062D },
+ unicodeslot=0xFD88,
},
[0xFD89]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE MEEM WITH HAH WITH JEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0645, 0x062D, 0x062C },
- ["unicodeslot"]=0xFD89, -- ﶉ
+ category="lo",
+ description="ARABIC LIGATURE MEEM WITH HAH WITH JEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0645, 0x062D, 0x062C },
+ unicodeslot=0xFD89,
},
[0xFD8A]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE MEEM WITH HAH WITH MEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0645, 0x062D, 0x0645 },
- ["unicodeslot"]=0xFD8A, -- ﶊ
+ category="lo",
+ description="ARABIC LIGATURE MEEM WITH HAH WITH MEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0645, 0x062D, 0x0645 },
+ unicodeslot=0xFD8A,
},
[0xFD8B]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE MEEM WITH HAH WITH YEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0645, 0x062D, 0x064A },
- ["unicodeslot"]=0xFD8B, -- ﶋ
+ category="lo",
+ description="ARABIC LIGATURE MEEM WITH HAH WITH YEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0645, 0x062D, 0x064A },
+ unicodeslot=0xFD8B,
},
[0xFD8C]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE MEEM WITH JEEM WITH HAH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0645, 0x062C, 0x062D },
- ["unicodeslot"]=0xFD8C, -- ﶌ
+ category="lo",
+ description="ARABIC LIGATURE MEEM WITH JEEM WITH HAH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0645, 0x062C, 0x062D },
+ unicodeslot=0xFD8C,
},
[0xFD8D]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE MEEM WITH JEEM WITH MEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0645, 0x062C, 0x0645 },
- ["unicodeslot"]=0xFD8D, -- ﶍ
+ category="lo",
+ description="ARABIC LIGATURE MEEM WITH JEEM WITH MEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0645, 0x062C, 0x0645 },
+ unicodeslot=0xFD8D,
},
[0xFD8E]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE MEEM WITH KHAH WITH JEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0645, 0x062E, 0x062C },
- ["unicodeslot"]=0xFD8E, -- ﶎ
+ category="lo",
+ description="ARABIC LIGATURE MEEM WITH KHAH WITH JEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0645, 0x062E, 0x062C },
+ unicodeslot=0xFD8E,
},
[0xFD8F]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0645, 0x062E, 0x0645 },
- ["unicodeslot"]=0xFD8F, -- ﶏ
+ category="lo",
+ description="ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0645, 0x062E, 0x0645 },
+ unicodeslot=0xFD8F,
},
[0xFD92]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0645, 0x062C, 0x062E },
- ["unicodeslot"]=0xFD92, -- ﶒ
+ category="lo",
+ description="ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0645, 0x062C, 0x062E },
+ unicodeslot=0xFD92,
},
[0xFD93]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE HEH WITH MEEM WITH JEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0647, 0x0645, 0x062C },
- ["unicodeslot"]=0xFD93, -- ﶓ
+ category="lo",
+ description="ARABIC LIGATURE HEH WITH MEEM WITH JEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0647, 0x0645, 0x062C },
+ unicodeslot=0xFD93,
},
[0xFD94]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE HEH WITH MEEM WITH MEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0647, 0x0645, 0x0645 },
- ["unicodeslot"]=0xFD94, -- ﶔ
+ category="lo",
+ description="ARABIC LIGATURE HEH WITH MEEM WITH MEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0647, 0x0645, 0x0645 },
+ unicodeslot=0xFD94,
},
[0xFD95]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE NOON WITH HAH WITH MEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0646, 0x062D, 0x0645 },
- ["unicodeslot"]=0xFD95, -- ﶕ
+ category="lo",
+ description="ARABIC LIGATURE NOON WITH HAH WITH MEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0646, 0x062D, 0x0645 },
+ unicodeslot=0xFD95,
},
[0xFD96]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE NOON WITH HAH WITH ALEF MAKSURA FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0646, 0x062D, 0x0649 },
- ["unicodeslot"]=0xFD96, -- ﶖ
+ category="lo",
+ description="ARABIC LIGATURE NOON WITH HAH WITH ALEF MAKSURA FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0646, 0x062D, 0x0649 },
+ unicodeslot=0xFD96,
},
[0xFD97]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE NOON WITH JEEM WITH MEEM FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0646, 0x062C, 0x0645 },
- ["unicodeslot"]=0xFD97, -- ﶗ
+ category="lo",
+ description="ARABIC LIGATURE NOON WITH JEEM WITH MEEM FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0646, 0x062C, 0x0645 },
+ unicodeslot=0xFD97,
},
[0xFD98]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE NOON WITH JEEM WITH MEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0646, 0x062C, 0x0645 },
- ["unicodeslot"]=0xFD98, -- ﶘ
+ category="lo",
+ description="ARABIC LIGATURE NOON WITH JEEM WITH MEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0646, 0x062C, 0x0645 },
+ unicodeslot=0xFD98,
},
[0xFD99]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE NOON WITH JEEM WITH ALEF MAKSURA FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0646, 0x062C, 0x0649 },
- ["unicodeslot"]=0xFD99, -- ﶙ
+ category="lo",
+ description="ARABIC LIGATURE NOON WITH JEEM WITH ALEF MAKSURA FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0646, 0x062C, 0x0649 },
+ unicodeslot=0xFD99,
},
[0xFD9A]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE NOON WITH MEEM WITH YEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0646, 0x0645, 0x064A },
- ["unicodeslot"]=0xFD9A, -- ﶚ
+ category="lo",
+ description="ARABIC LIGATURE NOON WITH MEEM WITH YEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0646, 0x0645, 0x064A },
+ unicodeslot=0xFD9A,
},
[0xFD9B]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE NOON WITH MEEM WITH ALEF MAKSURA FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0646, 0x0645, 0x0649 },
- ["unicodeslot"]=0xFD9B, -- ﶛ
+ category="lo",
+ description="ARABIC LIGATURE NOON WITH MEEM WITH ALEF MAKSURA FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0646, 0x0645, 0x0649 },
+ unicodeslot=0xFD9B,
},
[0xFD9C]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE YEH WITH MEEM WITH MEEM FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x064A, 0x0645, 0x0645 },
- ["unicodeslot"]=0xFD9C, -- ﶜ
+ category="lo",
+ description="ARABIC LIGATURE YEH WITH MEEM WITH MEEM FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x064A, 0x0645, 0x0645 },
+ unicodeslot=0xFD9C,
},
[0xFD9D]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE YEH WITH MEEM WITH MEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x064A, 0x0645, 0x0645 },
- ["unicodeslot"]=0xFD9D, -- ﶝ
+ category="lo",
+ description="ARABIC LIGATURE YEH WITH MEEM WITH MEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x064A, 0x0645, 0x0645 },
+ unicodeslot=0xFD9D,
},
[0xFD9E]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE BEH WITH KHAH WITH YEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0628, 0x062E, 0x064A },
- ["unicodeslot"]=0xFD9E, -- ﶞ
+ category="lo",
+ description="ARABIC LIGATURE BEH WITH KHAH WITH YEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0628, 0x062E, 0x064A },
+ unicodeslot=0xFD9E,
},
[0xFD9F]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE TEH WITH JEEM WITH YEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x062A, 0x062C, 0x064A },
- ["unicodeslot"]=0xFD9F, -- ﶟ
+ category="lo",
+ description="ARABIC LIGATURE TEH WITH JEEM WITH YEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x062A, 0x062C, 0x064A },
+ unicodeslot=0xFD9F,
},
[0xFDA0]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE TEH WITH JEEM WITH ALEF MAKSURA FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x062A, 0x062C, 0x0649 },
- ["unicodeslot"]=0xFDA0, -- ﶠ
+ category="lo",
+ description="ARABIC LIGATURE TEH WITH JEEM WITH ALEF MAKSURA FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x062A, 0x062C, 0x0649 },
+ unicodeslot=0xFDA0,
},
[0xFDA1]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE TEH WITH KHAH WITH YEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x062A, 0x062E, 0x064A },
- ["unicodeslot"]=0xFDA1, -- ﶡ
+ category="lo",
+ description="ARABIC LIGATURE TEH WITH KHAH WITH YEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x062A, 0x062E, 0x064A },
+ unicodeslot=0xFDA1,
},
[0xFDA2]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE TEH WITH KHAH WITH ALEF MAKSURA FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x062A, 0x062E, 0x0649 },
- ["unicodeslot"]=0xFDA2, -- ﶢ
+ category="lo",
+ description="ARABIC LIGATURE TEH WITH KHAH WITH ALEF MAKSURA FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x062A, 0x062E, 0x0649 },
+ unicodeslot=0xFDA2,
},
[0xFDA3]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE TEH WITH MEEM WITH YEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x062A, 0x0645, 0x064A },
- ["unicodeslot"]=0xFDA3, -- ﶣ
+ category="lo",
+ description="ARABIC LIGATURE TEH WITH MEEM WITH YEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x062A, 0x0645, 0x064A },
+ unicodeslot=0xFDA3,
},
[0xFDA4]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE TEH WITH MEEM WITH ALEF MAKSURA FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x062A, 0x0645, 0x0649 },
- ["unicodeslot"]=0xFDA4, -- ﶤ
+ category="lo",
+ description="ARABIC LIGATURE TEH WITH MEEM WITH ALEF MAKSURA FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x062A, 0x0645, 0x0649 },
+ unicodeslot=0xFDA4,
},
[0xFDA5]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE JEEM WITH MEEM WITH YEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x062C, 0x0645, 0x064A },
- ["unicodeslot"]=0xFDA5, -- ﶥ
+ category="lo",
+ description="ARABIC LIGATURE JEEM WITH MEEM WITH YEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x062C, 0x0645, 0x064A },
+ unicodeslot=0xFDA5,
},
[0xFDA6]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE JEEM WITH HAH WITH ALEF MAKSURA FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x062C, 0x062D, 0x0649 },
- ["unicodeslot"]=0xFDA6, -- ﶦ
+ category="lo",
+ description="ARABIC LIGATURE JEEM WITH HAH WITH ALEF MAKSURA FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x062C, 0x062D, 0x0649 },
+ unicodeslot=0xFDA6,
},
[0xFDA7]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE JEEM WITH MEEM WITH ALEF MAKSURA FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x062C, 0x0645, 0x0649 },
- ["unicodeslot"]=0xFDA7, -- ﶧ
+ category="lo",
+ description="ARABIC LIGATURE JEEM WITH MEEM WITH ALEF MAKSURA FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x062C, 0x0645, 0x0649 },
+ unicodeslot=0xFDA7,
},
[0xFDA8]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SEEN WITH KHAH WITH ALEF MAKSURA FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0633, 0x062E, 0x0649 },
- ["unicodeslot"]=0xFDA8, -- ﶨ
+ category="lo",
+ description="ARABIC LIGATURE SEEN WITH KHAH WITH ALEF MAKSURA FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0633, 0x062E, 0x0649 },
+ unicodeslot=0xFDA8,
},
[0xFDA9]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SAD WITH HAH WITH YEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0635, 0x062D, 0x064A },
- ["unicodeslot"]=0xFDA9, -- ﶩ
+ category="lo",
+ description="ARABIC LIGATURE SAD WITH HAH WITH YEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0635, 0x062D, 0x064A },
+ unicodeslot=0xFDA9,
},
[0xFDAA]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SHEEN WITH HAH WITH YEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0634, 0x062D, 0x064A },
- ["unicodeslot"]=0xFDAA, -- ﶪ
+ category="lo",
+ description="ARABIC LIGATURE SHEEN WITH HAH WITH YEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0634, 0x062D, 0x064A },
+ unicodeslot=0xFDAA,
},
[0xFDAB]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE DAD WITH HAH WITH YEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0636, 0x062D, 0x064A },
- ["unicodeslot"]=0xFDAB, -- ﶫ
+ category="lo",
+ description="ARABIC LIGATURE DAD WITH HAH WITH YEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0636, 0x062D, 0x064A },
+ unicodeslot=0xFDAB,
},
[0xFDAC]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE LAM WITH JEEM WITH YEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0644, 0x062C, 0x064A },
- ["unicodeslot"]=0xFDAC, -- ﶬ
+ category="lo",
+ description="ARABIC LIGATURE LAM WITH JEEM WITH YEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0644, 0x062C, 0x064A },
+ unicodeslot=0xFDAC,
},
[0xFDAD]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE LAM WITH MEEM WITH YEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0644, 0x0645, 0x064A },
- ["unicodeslot"]=0xFDAD, -- ﶭ
+ category="lo",
+ description="ARABIC LIGATURE LAM WITH MEEM WITH YEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0644, 0x0645, 0x064A },
+ unicodeslot=0xFDAD,
},
[0xFDAE]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE YEH WITH HAH WITH YEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x064A, 0x062D, 0x064A },
- ["unicodeslot"]=0xFDAE, -- ﶮ
+ category="lo",
+ description="ARABIC LIGATURE YEH WITH HAH WITH YEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x064A, 0x062D, 0x064A },
+ unicodeslot=0xFDAE,
},
[0xFDAF]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE YEH WITH JEEM WITH YEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x064A, 0x062C, 0x064A },
- ["unicodeslot"]=0xFDAF, -- ﶯ
+ category="lo",
+ description="ARABIC LIGATURE YEH WITH JEEM WITH YEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x064A, 0x062C, 0x064A },
+ unicodeslot=0xFDAF,
},
[0xFDB0]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE YEH WITH MEEM WITH YEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x064A, 0x0645, 0x064A },
- ["unicodeslot"]=0xFDB0, -- ﶰ
+ category="lo",
+ description="ARABIC LIGATURE YEH WITH MEEM WITH YEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x064A, 0x0645, 0x064A },
+ unicodeslot=0xFDB0,
},
[0xFDB1]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE MEEM WITH MEEM WITH YEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0645, 0x0645, 0x064A },
- ["unicodeslot"]=0xFDB1, -- ﶱ
+ category="lo",
+ description="ARABIC LIGATURE MEEM WITH MEEM WITH YEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0645, 0x0645, 0x064A },
+ unicodeslot=0xFDB1,
},
[0xFDB2]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE QAF WITH MEEM WITH YEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0642, 0x0645, 0x064A },
- ["unicodeslot"]=0xFDB2, -- ﶲ
+ category="lo",
+ description="ARABIC LIGATURE QAF WITH MEEM WITH YEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0642, 0x0645, 0x064A },
+ unicodeslot=0xFDB2,
},
[0xFDB3]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE NOON WITH HAH WITH YEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0646, 0x062D, 0x064A },
- ["unicodeslot"]=0xFDB3, -- ﶳ
+ category="lo",
+ description="ARABIC LIGATURE NOON WITH HAH WITH YEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0646, 0x062D, 0x064A },
+ unicodeslot=0xFDB3,
},
[0xFDB4]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE QAF WITH MEEM WITH HAH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0642, 0x0645, 0x062D },
- ["unicodeslot"]=0xFDB4, -- ﶴ
+ category="lo",
+ description="ARABIC LIGATURE QAF WITH MEEM WITH HAH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0642, 0x0645, 0x062D },
+ unicodeslot=0xFDB4,
},
[0xFDB5]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE LAM WITH HAH WITH MEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0644, 0x062D, 0x0645 },
- ["unicodeslot"]=0xFDB5, -- ﶵ
+ category="lo",
+ description="ARABIC LIGATURE LAM WITH HAH WITH MEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0644, 0x062D, 0x0645 },
+ unicodeslot=0xFDB5,
},
[0xFDB6]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE AIN WITH MEEM WITH YEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0639, 0x0645, 0x064A },
- ["unicodeslot"]=0xFDB6, -- ﶶ
+ category="lo",
+ description="ARABIC LIGATURE AIN WITH MEEM WITH YEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0639, 0x0645, 0x064A },
+ unicodeslot=0xFDB6,
},
[0xFDB7]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE KAF WITH MEEM WITH YEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0643, 0x0645, 0x064A },
- ["unicodeslot"]=0xFDB7, -- ﶷ
+ category="lo",
+ description="ARABIC LIGATURE KAF WITH MEEM WITH YEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0643, 0x0645, 0x064A },
+ unicodeslot=0xFDB7,
},
[0xFDB8]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE NOON WITH JEEM WITH HAH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0646, 0x062C, 0x062D },
- ["unicodeslot"]=0xFDB8, -- ﶸ
+ category="lo",
+ description="ARABIC LIGATURE NOON WITH JEEM WITH HAH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0646, 0x062C, 0x062D },
+ unicodeslot=0xFDB8,
},
[0xFDB9]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE MEEM WITH KHAH WITH YEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0645, 0x062E, 0x064A },
- ["unicodeslot"]=0xFDB9, -- ﶹ
+ category="lo",
+ description="ARABIC LIGATURE MEEM WITH KHAH WITH YEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0645, 0x062E, 0x064A },
+ unicodeslot=0xFDB9,
},
[0xFDBA]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE LAM WITH JEEM WITH MEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0644, 0x062C, 0x0645 },
- ["unicodeslot"]=0xFDBA, -- ﶺ
+ category="lo",
+ description="ARABIC LIGATURE LAM WITH JEEM WITH MEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0644, 0x062C, 0x0645 },
+ unicodeslot=0xFDBA,
},
[0xFDBB]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE KAF WITH MEEM WITH MEEM FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0643, 0x0645, 0x0645 },
- ["unicodeslot"]=0xFDBB, -- ﶻ
+ category="lo",
+ description="ARABIC LIGATURE KAF WITH MEEM WITH MEEM FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0643, 0x0645, 0x0645 },
+ unicodeslot=0xFDBB,
},
[0xFDBC]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE LAM WITH JEEM WITH MEEM FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0644, 0x062C, 0x0645 },
- ["unicodeslot"]=0xFDBC, -- ﶼ
+ category="lo",
+ description="ARABIC LIGATURE LAM WITH JEEM WITH MEEM FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0644, 0x062C, 0x0645 },
+ unicodeslot=0xFDBC,
},
[0xFDBD]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE NOON WITH JEEM WITH HAH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0646, 0x062C, 0x062D },
- ["unicodeslot"]=0xFDBD, -- ﶽ
+ category="lo",
+ description="ARABIC LIGATURE NOON WITH JEEM WITH HAH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0646, 0x062C, 0x062D },
+ unicodeslot=0xFDBD,
},
[0xFDBE]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE JEEM WITH HAH WITH YEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x062C, 0x062D, 0x064A },
- ["unicodeslot"]=0xFDBE, -- ﶾ
+ category="lo",
+ description="ARABIC LIGATURE JEEM WITH HAH WITH YEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x062C, 0x062D, 0x064A },
+ unicodeslot=0xFDBE,
},
[0xFDBF]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE HAH WITH JEEM WITH YEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x062D, 0x062C, 0x064A },
- ["unicodeslot"]=0xFDBF, -- ﶿ
+ category="lo",
+ description="ARABIC LIGATURE HAH WITH JEEM WITH YEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x062D, 0x062C, 0x064A },
+ unicodeslot=0xFDBF,
},
[0xFDC0]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE MEEM WITH JEEM WITH YEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0645, 0x062C, 0x064A },
- ["unicodeslot"]=0xFDC0, -- ﷀ
+ category="lo",
+ description="ARABIC LIGATURE MEEM WITH JEEM WITH YEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0645, 0x062C, 0x064A },
+ unicodeslot=0xFDC0,
},
[0xFDC1]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE FEH WITH MEEM WITH YEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0641, 0x0645, 0x064A },
- ["unicodeslot"]=0xFDC1, -- ﷁ
+ category="lo",
+ description="ARABIC LIGATURE FEH WITH MEEM WITH YEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0641, 0x0645, 0x064A },
+ unicodeslot=0xFDC1,
},
[0xFDC2]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE BEH WITH HAH WITH YEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0628, 0x062D, 0x064A },
- ["unicodeslot"]=0xFDC2, -- ﷂ
+ category="lo",
+ description="ARABIC LIGATURE BEH WITH HAH WITH YEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0628, 0x062D, 0x064A },
+ unicodeslot=0xFDC2,
},
[0xFDC3]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE KAF WITH MEEM WITH MEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0643, 0x0645, 0x0645 },
- ["unicodeslot"]=0xFDC3, -- ﷃ
+ category="lo",
+ description="ARABIC LIGATURE KAF WITH MEEM WITH MEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0643, 0x0645, 0x0645 },
+ unicodeslot=0xFDC3,
},
[0xFDC4]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE AIN WITH JEEM WITH MEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0639, 0x062C, 0x0645 },
- ["unicodeslot"]=0xFDC4, -- ﷄ
+ category="lo",
+ description="ARABIC LIGATURE AIN WITH JEEM WITH MEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0639, 0x062C, 0x0645 },
+ unicodeslot=0xFDC4,
},
[0xFDC5]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SAD WITH MEEM WITH MEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0635, 0x0645, 0x0645 },
- ["unicodeslot"]=0xFDC5, -- ﷅ
+ category="lo",
+ description="ARABIC LIGATURE SAD WITH MEEM WITH MEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0635, 0x0645, 0x0645 },
+ unicodeslot=0xFDC5,
},
[0xFDC6]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SEEN WITH KHAH WITH YEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0633, 0x062E, 0x064A },
- ["unicodeslot"]=0xFDC6, -- ﷆ
+ category="lo",
+ description="ARABIC LIGATURE SEEN WITH KHAH WITH YEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0633, 0x062E, 0x064A },
+ unicodeslot=0xFDC6,
},
[0xFDC7]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0646, 0x062C, 0x064A },
- ["unicodeslot"]=0xFDC7, -- ﷇ
+ category="lo",
+ description="ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0646, 0x062C, 0x064A },
+ unicodeslot=0xFDC7,
},
[0xFDF0]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0635, 0x0644, 0x06D2 },
- ["unicodeslot"]=0xFDF0, -- ﷰ
+ category="lo",
+ description="ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0635, 0x0644, 0x06D2 },
+ unicodeslot=0xFDF0,
},
[0xFDF1]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE QALA USED AS KORANIC STOP SIGN ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0642, 0x0644, 0x06D2 },
- ["unicodeslot"]=0xFDF1, -- ﷱ
+ category="lo",
+ description="ARABIC LIGATURE QALA USED AS KORANIC STOP SIGN ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0642, 0x0644, 0x06D2 },
+ unicodeslot=0xFDF1,
},
[0xFDF2]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE ALLAH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0627, 0x0644, 0x0644, 0x0647 },
- ["unicodeslot"]=0xFDF2, -- ﷲ
+ category="lo",
+ description="ARABIC LIGATURE ALLAH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0627, 0x0644, 0x0644, 0x0647 },
+ unicodeslot=0xFDF2,
},
[0xFDF3]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE AKBAR ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0627, 0x0643, 0x0628, 0x0631 },
- ["unicodeslot"]=0xFDF3, -- ﷳ
+ category="lo",
+ description="ARABIC LIGATURE AKBAR ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0627, 0x0643, 0x0628, 0x0631 },
+ unicodeslot=0xFDF3,
},
[0xFDF4]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE MOHAMMAD ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0645, 0x062D, 0x0645, 0x062F },
- ["unicodeslot"]=0xFDF4, -- ﷴ
+ category="lo",
+ description="ARABIC LIGATURE MOHAMMAD ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0645, 0x062D, 0x0645, 0x062F },
+ unicodeslot=0xFDF4,
},
[0xFDF5]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SALAM ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0635, 0x0644, 0x0639, 0x0645 },
- ["unicodeslot"]=0xFDF5, -- ﷵ
+ category="lo",
+ description="ARABIC LIGATURE SALAM ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0635, 0x0644, 0x0639, 0x0645 },
+ unicodeslot=0xFDF5,
},
[0xFDF6]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE RASOUL ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0631, 0x0633, 0x0648, 0x0644 },
- ["unicodeslot"]=0xFDF6, -- ﷶ
+ category="lo",
+ description="ARABIC LIGATURE RASOUL ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0631, 0x0633, 0x0648, 0x0644 },
+ unicodeslot=0xFDF6,
},
[0xFDF7]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE ALAYHE ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0639, 0x0644, 0x064A, 0x0647 },
- ["unicodeslot"]=0xFDF7, -- ﷷ
+ category="lo",
+ description="ARABIC LIGATURE ALAYHE ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0639, 0x0644, 0x064A, 0x0647 },
+ unicodeslot=0xFDF7,
},
[0xFDF8]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE WASALLAM ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0648, 0x0633, 0x0644, 0x0645 },
- ["unicodeslot"]=0xFDF8, -- ﷸ
+ category="lo",
+ description="ARABIC LIGATURE WASALLAM ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0648, 0x0633, 0x0644, 0x0645 },
+ unicodeslot=0xFDF8,
},
[0xFDF9]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SALLA ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0635, 0x0644, 0x0649 },
- ["unicodeslot"]=0xFDF9, -- ﷹ
+ category="lo",
+ description="ARABIC LIGATURE SALLA ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0635, 0x0644, 0x0649 },
+ unicodeslot=0xFDF9,
},
[0xFDFA]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0635, 0x0644, 0x0649, 0x0020, 0x0627, 0x0644, 0x0644, 0x0647, 0x0020, 0x0639, 0x0644, 0x064A, 0x0647, 0x0020, 0x0648, 0x0633, 0x0644, 0x0645 },
- ["unicodeslot"]=0xFDFA, -- ﷺ
+ category="lo",
+ description="ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0635, 0x0644, 0x0649, 0x0020, 0x0627, 0x0644, 0x0644, 0x0647, 0x0020, 0x0639, 0x0644, 0x064A, 0x0647, 0x0020, 0x0648, 0x0633, 0x0644, 0x0645 },
+ unicodeslot=0xFDFA,
},
[0xFDFB]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE JALLAJALALOUHOU",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x062C, 0x0644, 0x0020, 0x062C, 0x0644, 0x0627, 0x0644, 0x0647 },
- ["unicodeslot"]=0xFDFB, -- ﷻ
+ category="lo",
+ description="ARABIC LIGATURE JALLAJALALOUHOU",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x062C, 0x0644, 0x0020, 0x062C, 0x0644, 0x0627, 0x0644, 0x0647 },
+ unicodeslot=0xFDFB,
},
[0xFDFC]={
- ["category"]="sc",
- ["description"]="RIAL SIGN",
- ["linebreak"]="po",
- ["specials"]={ "isolated", 0x0631, 0x06CC, 0x0627, 0x0644 },
- ["unicodeslot"]=0xFDFC, -- ﷼
+ category="sc",
+ description="RIAL SIGN",
+ direction="al",
+ linebreak="po",
+ specials={ "isolated", 0x0631, 0x06CC, 0x0627, 0x0644 },
+ unicodeslot=0xFDFC,
},
[0xFDFD]={
- ["category"]="so",
- ["description"]="ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM",
- ["linebreak"]="al",
- ["unicodeslot"]=0xFDFD, -- ﷽
+ category="so",
+ description="ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0xFDFD,
},
[0xFE00]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0001",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xFE00, -- ︀
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0001",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xFE00,
},
[0xFE01]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0002",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xFE01, -- ︁
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0002",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xFE01,
},
[0xFE02]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0003",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xFE02, -- ︂
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0003",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xFE02,
},
[0xFE03]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0004",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xFE03, -- ︃
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0004",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xFE03,
},
[0xFE04]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0005",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xFE04, -- ︄
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0005",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xFE04,
},
[0xFE05]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0006",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xFE05, -- ︅
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0006",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xFE05,
},
[0xFE06]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0007",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xFE06, -- ︆
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0007",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xFE06,
},
[0xFE07]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0008",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xFE07, -- ︇
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0008",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xFE07,
},
[0xFE08]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0009",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xFE08, -- ︈
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0009",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xFE08,
},
[0xFE09]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x000A",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xFE09, -- ︉
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x000A",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xFE09,
},
[0xFE0A]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x000B",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xFE0A, -- ︊
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x000B",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xFE0A,
},
[0xFE0B]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x000C",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xFE0B, -- ︋
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x000C",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xFE0B,
},
[0xFE0C]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x000D",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xFE0C, -- ︌
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x000D",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xFE0C,
},
[0xFE0D]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x000E",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xFE0D, -- ︍
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x000E",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xFE0D,
},
[0xFE0E]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x000F",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xFE0E, -- ︎
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x000F",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xFE0E,
},
[0xFE0F]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0010",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xFE0F, -- ️
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0010",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xFE0F,
},
[0xFE10]={
- ["category"]="po",
- ["cjkwd"]="w",
- ["description"]="PRESENTATION FORM FOR VERTICAL COMMA",
- ["linebreak"]="is",
- ["specials"]={ "vertical", 0x002C },
- ["unicodeslot"]=0xFE10, -- ︐
+ category="po",
+ cjkwd="w",
+ description="PRESENTATION FORM FOR VERTICAL COMMA",
+ direction="on",
+ linebreak="is",
+ specials={ "vertical", 0x002C },
+ unicodeslot=0xFE10,
},
[0xFE11]={
- ["category"]="po",
- ["cjkwd"]="w",
- ["description"]="PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC COMMA",
- ["linebreak"]="cl",
- ["specials"]={ "vertical", 0x3001 },
- ["unicodeslot"]=0xFE11, -- ︑
+ category="po",
+ cjkwd="w",
+ description="PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC COMMA",
+ direction="on",
+ linebreak="cl",
+ specials={ "vertical", 0x3001 },
+ unicodeslot=0xFE11,
},
[0xFE12]={
- ["category"]="po",
- ["cjkwd"]="w",
- ["description"]="PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC FULL STOP",
- ["linebreak"]="cl",
- ["specials"]={ "vertical", 0x3002 },
- ["unicodeslot"]=0xFE12, -- ︒
+ category="po",
+ cjkwd="w",
+ description="PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC FULL STOP",
+ direction="on",
+ linebreak="cl",
+ specials={ "vertical", 0x3002 },
+ unicodeslot=0xFE12,
},
[0xFE13]={
- ["category"]="po",
- ["cjkwd"]="w",
- ["description"]="PRESENTATION FORM FOR VERTICAL COLON",
- ["linebreak"]="is",
- ["specials"]={ "vertical", 0x003A },
- ["unicodeslot"]=0xFE13, -- ︓
+ category="po",
+ cjkwd="w",
+ description="PRESENTATION FORM FOR VERTICAL COLON",
+ direction="on",
+ linebreak="is",
+ specials={ "vertical", 0x003A },
+ unicodeslot=0xFE13,
},
[0xFE14]={
- ["category"]="po",
- ["cjkwd"]="w",
- ["description"]="PRESENTATION FORM FOR VERTICAL SEMICOLON",
- ["linebreak"]="is",
- ["specials"]={ "vertical", 0x003B },
- ["unicodeslot"]=0xFE14, -- ︔
+ category="po",
+ cjkwd="w",
+ description="PRESENTATION FORM FOR VERTICAL SEMICOLON",
+ direction="on",
+ linebreak="is",
+ specials={ "vertical", 0x003B },
+ unicodeslot=0xFE14,
},
[0xFE15]={
- ["category"]="po",
- ["cjkwd"]="w",
- ["description"]="PRESENTATION FORM FOR VERTICAL EXCLAMATION MARK",
- ["linebreak"]="ex",
- ["specials"]={ "vertical", 0x0021 },
- ["unicodeslot"]=0xFE15, -- ︕
+ category="po",
+ cjkwd="w",
+ description="PRESENTATION FORM FOR VERTICAL EXCLAMATION MARK",
+ direction="on",
+ linebreak="ex",
+ specials={ "vertical", 0x0021 },
+ unicodeslot=0xFE15,
},
[0xFE16]={
- ["category"]="po",
- ["cjkwd"]="w",
- ["description"]="PRESENTATION FORM FOR VERTICAL QUESTION MARK",
- ["linebreak"]="ex",
- ["specials"]={ "vertical", 0x003F },
- ["unicodeslot"]=0xFE16, -- ︖
+ category="po",
+ cjkwd="w",
+ description="PRESENTATION FORM FOR VERTICAL QUESTION MARK",
+ direction="on",
+ linebreak="ex",
+ specials={ "vertical", 0x003F },
+ unicodeslot=0xFE16,
},
[0xFE17]={
- ["category"]="ps",
- ["cjkwd"]="w",
- ["description"]="PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET",
- ["linebreak"]="op",
- ["specials"]={ "vertical", 0x3016 },
- ["unicodeslot"]=0xFE17, -- ︗
+ category="ps",
+ cjkwd="w",
+ description="PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET",
+ direction="on",
+ linebreak="op",
+ specials={ "vertical", 0x3016 },
+ unicodeslot=0xFE17,
},
[0xFE18]={
- ["category"]="pe",
- ["cjkwd"]="w",
- ["description"]="PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET",
- ["linebreak"]="cl",
- ["specials"]={ "vertical", 0x3017 },
- ["unicodeslot"]=0xFE18, -- ︘
+ category="pe",
+ cjkwd="w",
+ description="PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET",
+ direction="on",
+ linebreak="cl",
+ specials={ "vertical", 0x3017 },
+ unicodeslot=0xFE18,
},
[0xFE19]={
- ["category"]="po",
- ["cjkwd"]="w",
- ["description"]="PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS",
- ["linebreak"]="in",
- ["specials"]={ "vertical", 0x2026 },
- ["unicodeslot"]=0xFE19, -- ︙
+ category="po",
+ cjkwd="w",
+ description="PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS",
+ direction="on",
+ linebreak="in",
+ specials={ "vertical", 0x2026 },
+ unicodeslot=0xFE19,
},
[0xFE20]={
- ["category"]="mn",
- ["description"]="COMBINING LIGATURE LEFT HALF",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xFE20, -- ︠
+ category="mn",
+ description="COMBINING LIGATURE LEFT HALF",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xFE20,
},
[0xFE21]={
- ["category"]="mn",
- ["description"]="COMBINING LIGATURE RIGHT HALF",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xFE21, -- ︡
+ category="mn",
+ description="COMBINING LIGATURE RIGHT HALF",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xFE21,
},
[0xFE22]={
- ["category"]="mn",
- ["description"]="COMBINING DOUBLE TILDE LEFT HALF",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xFE22, -- ︢
+ category="mn",
+ description="COMBINING DOUBLE TILDE LEFT HALF",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xFE22,
},
[0xFE23]={
- ["category"]="mn",
- ["description"]="COMBINING DOUBLE TILDE RIGHT HALF",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xFE23, -- ︣
+ category="mn",
+ description="COMBINING DOUBLE TILDE RIGHT HALF",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xFE23,
},
[0xFE30]={
- ["category"]="po",
- ["cjkwd"]="w",
- ["description"]="PRESENTATION FORM FOR VERTICAL TWO DOT LEADER",
- ["linebreak"]="id",
- ["specials"]={ "vertical", 0x2025 },
- ["unicodeslot"]=0xFE30, -- ︰
+ category="po",
+ cjkwd="w",
+ description="PRESENTATION FORM FOR VERTICAL TWO DOT LEADER",
+ direction="on",
+ linebreak="id",
+ specials={ "vertical", 0x2025 },
+ unicodeslot=0xFE30,
},
[0xFE31]={
- ["category"]="pd",
- ["cjkwd"]="w",
- ["description"]="PRESENTATION FORM FOR VERTICAL EM DASH",
- ["linebreak"]="id",
- ["specials"]={ "vertical", 0x2014 },
- ["unicodeslot"]=0xFE31, -- ︱
+ category="pd",
+ cjkwd="w",
+ description="PRESENTATION FORM FOR VERTICAL EM DASH",
+ direction="on",
+ linebreak="id",
+ specials={ "vertical", 0x2014 },
+ unicodeslot=0xFE31,
},
[0xFE32]={
- ["category"]="pd",
- ["cjkwd"]="w",
- ["description"]="PRESENTATION FORM FOR VERTICAL EN DASH",
- ["linebreak"]="id",
- ["specials"]={ "vertical", 0x2013 },
- ["unicodeslot"]=0xFE32, -- ︲
+ category="pd",
+ cjkwd="w",
+ description="PRESENTATION FORM FOR VERTICAL EN DASH",
+ direction="on",
+ linebreak="id",
+ specials={ "vertical", 0x2013 },
+ unicodeslot=0xFE32,
},
[0xFE33]={
- ["category"]="pc",
- ["cjkwd"]="w",
- ["description"]="PRESENTATION FORM FOR VERTICAL LOW LINE",
- ["linebreak"]="id",
- ["specials"]={ "vertical", 0x005F },
- ["unicodeslot"]=0xFE33, -- ︳
+ category="pc",
+ cjkwd="w",
+ description="PRESENTATION FORM FOR VERTICAL LOW LINE",
+ direction="on",
+ linebreak="id",
+ specials={ "vertical", 0x005F },
+ unicodeslot=0xFE33,
},
[0xFE34]={
- ["category"]="pc",
- ["cjkwd"]="w",
- ["description"]="PRESENTATION FORM FOR VERTICAL WAVY LOW LINE",
- ["linebreak"]="id",
- ["specials"]={ "vertical", 0x005F },
- ["unicodeslot"]=0xFE34, -- ︴
+ category="pc",
+ cjkwd="w",
+ description="PRESENTATION FORM FOR VERTICAL WAVY LOW LINE",
+ direction="on",
+ linebreak="id",
+ specials={ "vertical", 0x005F },
+ unicodeslot=0xFE34,
},
[0xFE35]={
- ["category"]="ps",
- ["cjkwd"]="w",
- ["description"]="PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS",
- ["linebreak"]="op",
- ["specials"]={ "vertical", 0x0028 },
- ["unicodeslot"]=0xFE35, -- ︵
+ category="ps",
+ cjkwd="w",
+ description="PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS",
+ direction="on",
+ linebreak="op",
+ specials={ "vertical", 0x0028 },
+ unicodeslot=0xFE35,
},
[0xFE36]={
- ["category"]="pe",
- ["cjkwd"]="w",
- ["description"]="PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS",
- ["linebreak"]="cl",
- ["specials"]={ "vertical", 0x0029 },
- ["unicodeslot"]=0xFE36, -- ︶
+ category="pe",
+ cjkwd="w",
+ description="PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS",
+ direction="on",
+ linebreak="cl",
+ specials={ "vertical", 0x0029 },
+ unicodeslot=0xFE36,
},
[0xFE37]={
- ["category"]="ps",
- ["cjkwd"]="w",
- ["description"]="PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET",
- ["linebreak"]="op",
- ["specials"]={ "vertical", 0x007B },
- ["unicodeslot"]=0xFE37, -- ︷
+ category="ps",
+ cjkwd="w",
+ description="PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET",
+ direction="on",
+ linebreak="op",
+ mathfiller="downbracefill", -- funny, chinese, no math, wrong but for the moment we need it for buggy mathml
+ specials={ "vertical", 0x007B },
+ unicodeslot=0xFE37,
},
[0xFE38]={
- ["category"]="pe",
- ["cjkwd"]="w",
- ["description"]="PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET",
- ["linebreak"]="cl",
- ["specials"]={ "vertical", 0x007D },
- ["unicodeslot"]=0xFE38, -- ︸
+ category="pe",
+ cjkwd="w",
+ description="PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET",
+ direction="on",
+ linebreak="cl",
+ mathfiller="upbracefill", -- funny, chinese, no math, wrong but for the moment we need it for buggy mathml
+ specials={ "vertical", 0x007D },
+ unicodeslot=0xFE38,
},
[0xFE39]={
- ["category"]="ps",
- ["cjkwd"]="w",
- ["description"]="PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET",
- ["linebreak"]="op",
- ["specials"]={ "vertical", 0x3014 },
- ["unicodeslot"]=0xFE39, -- ︹
+ category="ps",
+ cjkwd="w",
+ description="PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET",
+ direction="on",
+ linebreak="op",
+ specials={ "vertical", 0x3014 },
+ unicodeslot=0xFE39,
},
[0xFE3A]={
- ["category"]="pe",
- ["cjkwd"]="w",
- ["description"]="PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET",
- ["linebreak"]="cl",
- ["specials"]={ "vertical", 0x3015 },
- ["unicodeslot"]=0xFE3A, -- ︺
+ category="pe",
+ cjkwd="w",
+ description="PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET",
+ direction="on",
+ linebreak="cl",
+ specials={ "vertical", 0x3015 },
+ unicodeslot=0xFE3A,
},
[0xFE3B]={
- ["category"]="ps",
- ["cjkwd"]="w",
- ["description"]="PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET",
- ["linebreak"]="op",
- ["specials"]={ "vertical", 0x3010 },
- ["unicodeslot"]=0xFE3B, -- ︻
+ category="ps",
+ cjkwd="w",
+ description="PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET",
+ direction="on",
+ linebreak="op",
+ specials={ "vertical", 0x3010 },
+ unicodeslot=0xFE3B,
},
[0xFE3C]={
- ["category"]="pe",
- ["cjkwd"]="w",
- ["description"]="PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET",
- ["linebreak"]="cl",
- ["specials"]={ "vertical", 0x3011 },
- ["unicodeslot"]=0xFE3C, -- ︼
+ category="pe",
+ cjkwd="w",
+ description="PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET",
+ direction="on",
+ linebreak="cl",
+ specials={ "vertical", 0x3011 },
+ unicodeslot=0xFE3C,
},
[0xFE3D]={
- ["category"]="ps",
- ["cjkwd"]="w",
- ["description"]="PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET",
- ["linebreak"]="op",
- ["specials"]={ "vertical", 0x300A },
- ["unicodeslot"]=0xFE3D, -- ︽
+ category="ps",
+ cjkwd="w",
+ description="PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET",
+ direction="on",
+ linebreak="op",
+ specials={ "vertical", 0x300A },
+ unicodeslot=0xFE3D,
},
[0xFE3E]={
- ["category"]="pe",
- ["cjkwd"]="w",
- ["description"]="PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET",
- ["linebreak"]="cl",
- ["specials"]={ "vertical", 0x300B },
- ["unicodeslot"]=0xFE3E, -- ︾
+ category="pe",
+ cjkwd="w",
+ description="PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET",
+ direction="on",
+ linebreak="cl",
+ specials={ "vertical", 0x300B },
+ unicodeslot=0xFE3E,
},
[0xFE3F]={
- ["category"]="ps",
- ["cjkwd"]="w",
- ["description"]="PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET",
- ["linebreak"]="op",
- ["specials"]={ "vertical", 0x3008 },
- ["unicodeslot"]=0xFE3F, -- ︿
+ category="ps",
+ cjkwd="w",
+ description="PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET",
+ direction="on",
+ linebreak="op",
+ specials={ "vertical", 0x3008 },
+ unicodeslot=0xFE3F,
},
[0xFE40]={
- ["category"]="pe",
- ["cjkwd"]="w",
- ["description"]="PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET",
- ["linebreak"]="cl",
- ["specials"]={ "vertical", 0x3009 },
- ["unicodeslot"]=0xFE40, -- ﹀
+ category="pe",
+ cjkwd="w",
+ description="PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET",
+ direction="on",
+ linebreak="cl",
+ specials={ "vertical", 0x3009 },
+ unicodeslot=0xFE40,
},
[0xFE41]={
- ["category"]="ps",
- ["cjkwd"]="w",
- ["description"]="PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET",
- ["linebreak"]="op",
- ["specials"]={ "vertical", 0x300C },
- ["unicodeslot"]=0xFE41, -- ﹁
+ category="ps",
+ cjkwd="w",
+ description="PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET",
+ direction="on",
+ linebreak="op",
+ specials={ "vertical", 0x300C },
+ unicodeslot=0xFE41,
},
[0xFE42]={
- ["category"]="pe",
- ["cjkwd"]="w",
- ["description"]="PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET",
- ["linebreak"]="cl",
- ["specials"]={ "vertical", 0x300D },
- ["unicodeslot"]=0xFE42, -- ﹂
+ category="pe",
+ cjkwd="w",
+ description="PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET",
+ direction="on",
+ linebreak="cl",
+ specials={ "vertical", 0x300D },
+ unicodeslot=0xFE42,
},
[0xFE43]={
- ["category"]="ps",
- ["cjkwd"]="w",
- ["description"]="PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET",
- ["linebreak"]="op",
- ["specials"]={ "vertical", 0x300E },
- ["unicodeslot"]=0xFE43, -- ﹃
+ category="ps",
+ cjkwd="w",
+ description="PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET",
+ direction="on",
+ linebreak="op",
+ specials={ "vertical", 0x300E },
+ unicodeslot=0xFE43,
},
[0xFE44]={
- ["category"]="pe",
- ["cjkwd"]="w",
- ["description"]="PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET",
- ["linebreak"]="cl",
- ["specials"]={ "vertical", 0x300F },
- ["unicodeslot"]=0xFE44, -- ﹄
+ category="pe",
+ cjkwd="w",
+ description="PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET",
+ direction="on",
+ linebreak="cl",
+ specials={ "vertical", 0x300F },
+ unicodeslot=0xFE44,
},
[0xFE45]={
- ["category"]="po",
- ["cjkwd"]="w",
- ["description"]="SESAME DOT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xFE45, -- ﹅
+ category="po",
+ cjkwd="w",
+ description="SESAME DOT",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0xFE45,
},
[0xFE46]={
- ["category"]="po",
- ["cjkwd"]="w",
- ["description"]="WHITE SESAME DOT",
- ["linebreak"]="id",
- ["unicodeslot"]=0xFE46, -- ﹆
+ category="po",
+ cjkwd="w",
+ description="WHITE SESAME DOT",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0xFE46,
},
[0xFE47]={
- ["category"]="ps",
- ["cjkwd"]="w",
- ["description"]="PRESENTATION FORM FOR VERTICAL LEFT SQUARE BRACKET",
- ["linebreak"]="op",
- ["specials"]={ "vertical", 0x005B },
- ["unicodeslot"]=0xFE47, -- ﹇
+ category="ps",
+ cjkwd="w",
+ description="PRESENTATION FORM FOR VERTICAL LEFT SQUARE BRACKET",
+ direction="on",
+ linebreak="op",
+ specials={ "vertical", 0x005B },
+ unicodeslot=0xFE47,
},
[0xFE48]={
- ["category"]="pe",
- ["cjkwd"]="w",
- ["description"]="PRESENTATION FORM FOR VERTICAL RIGHT SQUARE BRACKET",
- ["linebreak"]="cl",
- ["specials"]={ "vertical", 0x005D },
- ["unicodeslot"]=0xFE48, -- ﹈
+ category="pe",
+ cjkwd="w",
+ description="PRESENTATION FORM FOR VERTICAL RIGHT SQUARE BRACKET",
+ direction="on",
+ linebreak="cl",
+ specials={ "vertical", 0x005D },
+ unicodeslot=0xFE48,
},
[0xFE49]={
- ["category"]="po",
- ["cjkwd"]="w",
- ["description"]="DASHED OVERLINE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x203E },
- ["unicodeslot"]=0xFE49, -- ﹉
+ category="po",
+ cjkwd="w",
+ description="DASHED OVERLINE",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x203E },
+ unicodeslot=0xFE49,
},
[0xFE4A]={
- ["category"]="po",
- ["cjkwd"]="w",
- ["description"]="CENTRELINE OVERLINE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x203E },
- ["unicodeslot"]=0xFE4A, -- ﹊
+ category="po",
+ cjkwd="w",
+ description="CENTRELINE OVERLINE",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x203E },
+ unicodeslot=0xFE4A,
},
[0xFE4B]={
- ["category"]="po",
- ["cjkwd"]="w",
- ["description"]="WAVY OVERLINE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x203E },
- ["unicodeslot"]=0xFE4B, -- ﹋
+ category="po",
+ cjkwd="w",
+ description="WAVY OVERLINE",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x203E },
+ unicodeslot=0xFE4B,
},
[0xFE4C]={
- ["category"]="po",
- ["cjkwd"]="w",
- ["description"]="DOUBLE WAVY OVERLINE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x203E },
- ["unicodeslot"]=0xFE4C, -- ﹌
+ category="po",
+ cjkwd="w",
+ description="DOUBLE WAVY OVERLINE",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x203E },
+ unicodeslot=0xFE4C,
},
[0xFE4D]={
- ["category"]="pc",
- ["cjkwd"]="w",
- ["description"]="DASHED LOW LINE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x005F },
- ["unicodeslot"]=0xFE4D, -- ﹍
+ category="pc",
+ cjkwd="w",
+ description="DASHED LOW LINE",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x005F },
+ unicodeslot=0xFE4D,
},
[0xFE4E]={
- ["category"]="pc",
- ["cjkwd"]="w",
- ["description"]="CENTRELINE LOW LINE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x005F },
- ["unicodeslot"]=0xFE4E, -- ﹎
+ category="pc",
+ cjkwd="w",
+ description="CENTRELINE LOW LINE",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x005F },
+ unicodeslot=0xFE4E,
},
[0xFE4F]={
- ["category"]="pc",
- ["cjkwd"]="w",
- ["description"]="WAVY LOW LINE",
- ["linebreak"]="id",
- ["specials"]={ "compat", 0x005F },
- ["unicodeslot"]=0xFE4F, -- ﹏
+ category="pc",
+ cjkwd="w",
+ description="WAVY LOW LINE",
+ direction="on",
+ linebreak="id",
+ specials={ "compat", 0x005F },
+ unicodeslot=0xFE4F,
},
[0xFE50]={
- ["category"]="po",
- ["cjkwd"]="w",
- ["description"]="SMALL COMMA",
- ["linebreak"]="cl",
- ["specials"]={ "small", 0x002C },
- ["unicodeslot"]=0xFE50, -- ﹐
+ category="po",
+ cjkwd="w",
+ description="SMALL COMMA",
+ direction="cs",
+ linebreak="cl",
+ specials={ "small", 0x002C },
+ unicodeslot=0xFE50,
},
[0xFE51]={
- ["category"]="po",
- ["cjkwd"]="w",
- ["description"]="SMALL IDEOGRAPHIC COMMA",
- ["linebreak"]="id",
- ["specials"]={ "small", 0x3001 },
- ["unicodeslot"]=0xFE51, -- ﹑
+ category="po",
+ cjkwd="w",
+ description="SMALL IDEOGRAPHIC COMMA",
+ direction="on",
+ linebreak="id",
+ specials={ "small", 0x3001 },
+ unicodeslot=0xFE51,
},
[0xFE52]={
- ["category"]="po",
- ["cjkwd"]="w",
- ["description"]="SMALL FULL STOP",
- ["linebreak"]="cl",
- ["specials"]={ "small", 0x002E },
- ["unicodeslot"]=0xFE52, -- ﹒
+ category="po",
+ cjkwd="w",
+ description="SMALL FULL STOP",
+ direction="cs",
+ linebreak="cl",
+ specials={ "small", 0x002E },
+ unicodeslot=0xFE52,
},
[0xFE54]={
- ["category"]="po",
- ["cjkwd"]="w",
- ["description"]="SMALL SEMICOLON",
- ["linebreak"]="ns",
- ["specials"]={ "small", 0x003B },
- ["unicodeslot"]=0xFE54, -- ﹔
+ category="po",
+ cjkwd="w",
+ description="SMALL SEMICOLON",
+ direction="on",
+ linebreak="ns",
+ specials={ "small", 0x003B },
+ unicodeslot=0xFE54,
},
[0xFE55]={
- ["category"]="po",
- ["cjkwd"]="w",
- ["description"]="SMALL COLON",
- ["linebreak"]="ns",
- ["specials"]={ "small", 0x003A },
- ["unicodeslot"]=0xFE55, -- ﹕
+ category="po",
+ cjkwd="w",
+ description="SMALL COLON",
+ direction="cs",
+ linebreak="ns",
+ specials={ "small", 0x003A },
+ unicodeslot=0xFE55,
},
[0xFE56]={
- ["category"]="po",
- ["cjkwd"]="w",
- ["description"]="SMALL QUESTION MARK",
- ["linebreak"]="ex",
- ["specials"]={ "small", 0x003F },
- ["unicodeslot"]=0xFE56, -- ﹖
+ category="po",
+ cjkwd="w",
+ description="SMALL QUESTION MARK",
+ direction="on",
+ linebreak="ex",
+ specials={ "small", 0x003F },
+ unicodeslot=0xFE56,
},
[0xFE57]={
- ["category"]="po",
- ["cjkwd"]="w",
- ["description"]="SMALL EXCLAMATION MARK",
- ["linebreak"]="ex",
- ["specials"]={ "small", 0x0021 },
- ["unicodeslot"]=0xFE57, -- ﹗
+ category="po",
+ cjkwd="w",
+ description="SMALL EXCLAMATION MARK",
+ direction="on",
+ linebreak="ex",
+ specials={ "small", 0x0021 },
+ unicodeslot=0xFE57,
},
[0xFE58]={
- ["category"]="pd",
- ["cjkwd"]="w",
- ["description"]="SMALL EM DASH",
- ["linebreak"]="id",
- ["specials"]={ "small", 0x2014 },
- ["unicodeslot"]=0xFE58, -- ﹘
+ category="pd",
+ cjkwd="w",
+ description="SMALL EM DASH",
+ direction="on",
+ linebreak="id",
+ specials={ "small", 0x2014 },
+ unicodeslot=0xFE58,
},
[0xFE59]={
- ["category"]="ps",
- ["cjkwd"]="w",
- ["description"]="SMALL LEFT PARENTHESIS",
- ["linebreak"]="op",
- ["specials"]={ "small", 0x0028 },
- ["unicodeslot"]=0xFE59, -- ﹙
+ category="ps",
+ cjkwd="w",
+ description="SMALL LEFT PARENTHESIS",
+ direction="on",
+ linebreak="op",
+ mirror=0xFE5A,
+ specials={ "small", 0x0028 },
+ unicodeslot=0xFE59,
},
[0xFE5A]={
- ["category"]="pe",
- ["cjkwd"]="w",
- ["description"]="SMALL RIGHT PARENTHESIS",
- ["linebreak"]="cl",
- ["specials"]={ "small", 0x0029 },
- ["unicodeslot"]=0xFE5A, -- ﹚
+ category="pe",
+ cjkwd="w",
+ description="SMALL RIGHT PARENTHESIS",
+ direction="on",
+ linebreak="cl",
+ mirror=0xFE59,
+ specials={ "small", 0x0029 },
+ unicodeslot=0xFE5A,
},
[0xFE5B]={
- ["category"]="ps",
- ["cjkwd"]="w",
- ["description"]="SMALL LEFT CURLY BRACKET",
- ["linebreak"]="op",
- ["specials"]={ "small", 0x007B },
- ["unicodeslot"]=0xFE5B, -- ﹛
+ category="ps",
+ cjkwd="w",
+ description="SMALL LEFT CURLY BRACKET",
+ direction="on",
+ linebreak="op",
+ mirror=0xFE5C,
+ specials={ "small", 0x007B },
+ unicodeslot=0xFE5B,
},
[0xFE5C]={
- ["category"]="pe",
- ["cjkwd"]="w",
- ["description"]="SMALL RIGHT CURLY BRACKET",
- ["linebreak"]="cl",
- ["specials"]={ "small", 0x007D },
- ["unicodeslot"]=0xFE5C, -- ﹜
+ category="pe",
+ cjkwd="w",
+ description="SMALL RIGHT CURLY BRACKET",
+ direction="on",
+ linebreak="cl",
+ mirror=0xFE5B,
+ specials={ "small", 0x007D },
+ unicodeslot=0xFE5C,
},
[0xFE5D]={
- ["category"]="ps",
- ["cjkwd"]="w",
- ["description"]="SMALL LEFT TORTOISE SHELL BRACKET",
- ["linebreak"]="op",
- ["specials"]={ "small", 0x3014 },
- ["unicodeslot"]=0xFE5D, -- ﹝
+ category="ps",
+ cjkwd="w",
+ description="SMALL LEFT TORTOISE SHELL BRACKET",
+ direction="on",
+ linebreak="op",
+ mirror=0xFE5E,
+ specials={ "small", 0x3014 },
+ unicodeslot=0xFE5D,
},
[0xFE5E]={
- ["category"]="pe",
- ["cjkwd"]="w",
- ["description"]="SMALL RIGHT TORTOISE SHELL BRACKET",
- ["linebreak"]="cl",
- ["specials"]={ "small", 0x3015 },
- ["unicodeslot"]=0xFE5E, -- ﹞
+ category="pe",
+ cjkwd="w",
+ description="SMALL RIGHT TORTOISE SHELL BRACKET",
+ direction="on",
+ linebreak="cl",
+ mirror=0xFE5D,
+ specials={ "small", 0x3015 },
+ unicodeslot=0xFE5E,
},
[0xFE5F]={
- ["category"]="po",
- ["cjkwd"]="w",
- ["description"]="SMALL NUMBER SIGN",
- ["linebreak"]="id",
- ["specials"]={ "small", 0x0023 },
- ["unicodeslot"]=0xFE5F, -- ﹟
+ category="po",
+ cjkwd="w",
+ description="SMALL NUMBER SIGN",
+ direction="et",
+ linebreak="id",
+ specials={ "small", 0x0023 },
+ unicodeslot=0xFE5F,
},
[0xFE60]={
- ["category"]="po",
- ["cjkwd"]="w",
- ["description"]="SMALL AMPERSAND",
- ["linebreak"]="id",
- ["specials"]={ "small", 0x0026 },
- ["unicodeslot"]=0xFE60, -- ﹠
+ category="po",
+ cjkwd="w",
+ description="SMALL AMPERSAND",
+ direction="on",
+ linebreak="id",
+ specials={ "small", 0x0026 },
+ unicodeslot=0xFE60,
},
[0xFE61]={
- ["category"]="po",
- ["cjkwd"]="w",
- ["description"]="SMALL ASTERISK",
- ["linebreak"]="id",
- ["specials"]={ "small", 0x002A },
- ["unicodeslot"]=0xFE61, -- ﹡
+ category="po",
+ cjkwd="w",
+ description="SMALL ASTERISK",
+ direction="on",
+ linebreak="id",
+ specials={ "small", 0x002A },
+ unicodeslot=0xFE61,
},
[0xFE62]={
- ["category"]="sm",
- ["cjkwd"]="w",
- ["description"]="SMALL PLUS SIGN",
- ["linebreak"]="id",
- ["specials"]={ "small", 0x002B },
- ["unicodeslot"]=0xFE62, -- ﹢
+ category="sm",
+ cjkwd="w",
+ description="SMALL PLUS SIGN",
+ direction="es",
+ linebreak="id",
+ specials={ "small", 0x002B },
+ unicodeslot=0xFE62,
},
[0xFE63]={
- ["category"]="pd",
- ["cjkwd"]="w",
- ["description"]="SMALL HYPHEN-MINUS",
- ["linebreak"]="id",
- ["specials"]={ "small", 0x002D },
- ["unicodeslot"]=0xFE63, -- ﹣
+ category="pd",
+ cjkwd="w",
+ description="SMALL HYPHEN-MINUS",
+ direction="es",
+ linebreak="id",
+ specials={ "small", 0x002D },
+ unicodeslot=0xFE63,
},
[0xFE64]={
- ["category"]="sm",
- ["cjkwd"]="w",
- ["description"]="SMALL LESS-THAN SIGN",
- ["linebreak"]="id",
- ["specials"]={ "small", 0x003C },
- ["unicodeslot"]=0xFE64, -- ﹤
+ category="sm",
+ cjkwd="w",
+ description="SMALL LESS-THAN SIGN",
+ direction="on",
+ linebreak="id",
+ mirror=0xFE65,
+ specials={ "small", 0x003C },
+ unicodeslot=0xFE64,
},
[0xFE65]={
- ["category"]="sm",
- ["cjkwd"]="w",
- ["description"]="SMALL GREATER-THAN SIGN",
- ["linebreak"]="id",
- ["specials"]={ "small", 0x003E },
- ["unicodeslot"]=0xFE65, -- ﹥
+ category="sm",
+ cjkwd="w",
+ description="SMALL GREATER-THAN SIGN",
+ direction="on",
+ linebreak="id",
+ mirror=0xFE64,
+ specials={ "small", 0x003E },
+ unicodeslot=0xFE65,
},
[0xFE66]={
- ["category"]="sm",
- ["cjkwd"]="w",
- ["description"]="SMALL EQUALS SIGN",
- ["linebreak"]="id",
- ["specials"]={ "small", 0x003D },
- ["unicodeslot"]=0xFE66, -- ﹦
+ category="sm",
+ cjkwd="w",
+ description="SMALL EQUALS SIGN",
+ direction="on",
+ linebreak="id",
+ specials={ "small", 0x003D },
+ unicodeslot=0xFE66,
},
[0xFE68]={
- ["category"]="po",
- ["cjkwd"]="w",
- ["description"]="SMALL REVERSE SOLIDUS",
- ["linebreak"]="id",
- ["specials"]={ "small", 0x005C },
- ["unicodeslot"]=0xFE68, -- ﹨
+ category="po",
+ cjkwd="w",
+ description="SMALL REVERSE SOLIDUS",
+ direction="on",
+ linebreak="id",
+ specials={ "small", 0x005C },
+ unicodeslot=0xFE68,
},
[0xFE69]={
- ["category"]="sc",
- ["cjkwd"]="w",
- ["description"]="SMALL DOLLAR SIGN",
- ["linebreak"]="pr",
- ["specials"]={ "small", 0x0024 },
- ["unicodeslot"]=0xFE69, -- ﹩
+ category="sc",
+ cjkwd="w",
+ description="SMALL DOLLAR SIGN",
+ direction="et",
+ linebreak="pr",
+ specials={ "small", 0x0024 },
+ unicodeslot=0xFE69,
},
[0xFE6A]={
- ["category"]="po",
- ["cjkwd"]="w",
- ["description"]="SMALL PERCENT SIGN",
- ["linebreak"]="po",
- ["specials"]={ "small", 0x0025 },
- ["unicodeslot"]=0xFE6A, -- ﹪
+ category="po",
+ cjkwd="w",
+ description="SMALL PERCENT SIGN",
+ direction="et",
+ linebreak="po",
+ specials={ "small", 0x0025 },
+ unicodeslot=0xFE6A,
},
[0xFE6B]={
- ["category"]="po",
- ["cjkwd"]="w",
- ["description"]="SMALL COMMERCIAL AT",
- ["linebreak"]="id",
- ["specials"]={ "small", 0x0040 },
- ["unicodeslot"]=0xFE6B, -- ﹫
+ category="po",
+ cjkwd="w",
+ description="SMALL COMMERCIAL AT",
+ direction="on",
+ linebreak="id",
+ specials={ "small", 0x0040 },
+ unicodeslot=0xFE6B,
},
[0xFE70]={
- ["category"]="lo",
- ["description"]="ARABIC FATHATAN ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0020, 0x064B },
- ["unicodeslot"]=0xFE70, -- ﹰ
+ category="lo",
+ description="ARABIC FATHATAN ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0020, 0x064B },
+ unicodeslot=0xFE70,
},
[0xFE71]={
- ["category"]="lo",
- ["description"]="ARABIC TATWEEL WITH FATHATAN ABOVE",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x0640, 0x064B },
- ["unicodeslot"]=0xFE71, -- ﹱ
+ category="lo",
+ description="ARABIC TATWEEL WITH FATHATAN ABOVE",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x0640, 0x064B },
+ unicodeslot=0xFE71,
},
[0xFE72]={
- ["category"]="lo",
- ["description"]="ARABIC DAMMATAN ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0020, 0x064C },
- ["unicodeslot"]=0xFE72, -- ﹲ
+ category="lo",
+ description="ARABIC DAMMATAN ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0020, 0x064C },
+ unicodeslot=0xFE72,
},
[0xFE73]={
- ["category"]="lo",
- ["description"]="ARABIC TAIL FRAGMENT",
- ["linebreak"]="al",
- ["unicodeslot"]=0xFE73, -- ﹳ
+ category="lo",
+ description="ARABIC TAIL FRAGMENT",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0xFE73,
},
[0xFE74]={
- ["category"]="lo",
- ["description"]="ARABIC KASRATAN ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0020, 0x064D },
- ["unicodeslot"]=0xFE74, -- ﹴ
+ category="lo",
+ description="ARABIC KASRATAN ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0020, 0x064D },
+ unicodeslot=0xFE74,
},
[0xFE76]={
- ["category"]="lo",
- ["description"]="ARABIC FATHA ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0020, 0x064E },
- ["unicodeslot"]=0xFE76, -- ﹶ
+ category="lo",
+ description="ARABIC FATHA ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0020, 0x064E },
+ unicodeslot=0xFE76,
},
[0xFE77]={
- ["category"]="lo",
- ["description"]="ARABIC FATHA MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x0640, 0x064E },
- ["unicodeslot"]=0xFE77, -- ﹷ
+ category="lo",
+ description="ARABIC FATHA MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x0640, 0x064E },
+ unicodeslot=0xFE77,
},
[0xFE78]={
- ["category"]="lo",
- ["description"]="ARABIC DAMMA ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0020, 0x064F },
- ["unicodeslot"]=0xFE78, -- ﹸ
+ category="lo",
+ description="ARABIC DAMMA ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0020, 0x064F },
+ unicodeslot=0xFE78,
},
[0xFE79]={
- ["category"]="lo",
- ["description"]="ARABIC DAMMA MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x0640, 0x064F },
- ["unicodeslot"]=0xFE79, -- ﹹ
+ category="lo",
+ description="ARABIC DAMMA MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x0640, 0x064F },
+ unicodeslot=0xFE79,
},
[0xFE7A]={
- ["category"]="lo",
- ["description"]="ARABIC KASRA ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0020, 0x0650 },
- ["unicodeslot"]=0xFE7A, -- ﹺ
+ category="lo",
+ description="ARABIC KASRA ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0020, 0x0650 },
+ unicodeslot=0xFE7A,
},
[0xFE7B]={
- ["category"]="lo",
- ["description"]="ARABIC KASRA MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x0640, 0x0650 },
- ["unicodeslot"]=0xFE7B, -- ﹻ
+ category="lo",
+ description="ARABIC KASRA MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x0640, 0x0650 },
+ unicodeslot=0xFE7B,
},
[0xFE7C]={
- ["category"]="lo",
- ["description"]="ARABIC SHADDA ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0020, 0x0651 },
- ["unicodeslot"]=0xFE7C, -- ﹼ
+ category="lo",
+ description="ARABIC SHADDA ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0020, 0x0651 },
+ unicodeslot=0xFE7C,
},
[0xFE7D]={
- ["category"]="lo",
- ["description"]="ARABIC SHADDA MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x0640, 0x0651 },
- ["unicodeslot"]=0xFE7D, -- ﹽ
+ category="lo",
+ description="ARABIC SHADDA MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x0640, 0x0651 },
+ unicodeslot=0xFE7D,
},
[0xFE7E]={
- ["category"]="lo",
- ["description"]="ARABIC SUKUN ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0020, 0x0652 },
- ["unicodeslot"]=0xFE7E, -- ﹾ
+ category="lo",
+ description="ARABIC SUKUN ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0020, 0x0652 },
+ unicodeslot=0xFE7E,
},
[0xFE7F]={
- ["category"]="lo",
- ["description"]="ARABIC SUKUN MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x0640, 0x0652 },
- ["unicodeslot"]=0xFE7F, -- ﹿ
+ category="lo",
+ description="ARABIC SUKUN MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x0640, 0x0652 },
+ unicodeslot=0xFE7F,
},
[0xFE80]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER HAMZA ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0621 },
- ["unicodeslot"]=0xFE80, -- ﺀ
+ category="lo",
+ description="ARABIC LETTER HAMZA ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0621 },
+ unicodeslot=0xFE80,
},
[0xFE81]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM",
- ["linebreak"]="al",
- ["shcode"]=0x0627,
- ["specials"]={ "isolated", 0x0622 },
- ["unicodeslot"]=0xFE81, -- ﺁ
+ category="lo",
+ description="ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ shcode=0x0627,
+ specials={ "isolated", 0x0622 },
+ unicodeslot=0xFE81,
},
[0xFE82]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM",
- ["linebreak"]="al",
- ["shcode"]=0x0627,
- ["specials"]={ "final", 0x0622 },
- ["unicodeslot"]=0xFE82, -- ﺂ
+ category="lo",
+ description="ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM",
+ direction="al",
+ linebreak="al",
+ shcode=0x0627,
+ specials={ "final", 0x0622 },
+ unicodeslot=0xFE82,
},
[0xFE83]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM",
- ["linebreak"]="al",
- ["shcode"]=0x0627,
- ["specials"]={ "isolated", 0x0623 },
- ["unicodeslot"]=0xFE83, -- ﺃ
+ category="lo",
+ description="ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ shcode=0x0627,
+ specials={ "isolated", 0x0623 },
+ unicodeslot=0xFE83,
},
[0xFE84]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM",
- ["linebreak"]="al",
- ["shcode"]=0x0627,
- ["specials"]={ "final", 0x0623 },
- ["unicodeslot"]=0xFE84, -- ﺄ
+ category="lo",
+ description="ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM",
+ direction="al",
+ linebreak="al",
+ shcode=0x0627,
+ specials={ "final", 0x0623 },
+ unicodeslot=0xFE84,
},
[0xFE85]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM",
- ["linebreak"]="al",
- ["shcode"]=0x0648,
- ["specials"]={ "isolated", 0x0624 },
- ["unicodeslot"]=0xFE85, -- ﺅ
+ category="lo",
+ description="ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ shcode=0x0648,
+ specials={ "isolated", 0x0624 },
+ unicodeslot=0xFE85,
},
[0xFE86]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER WAW WITH HAMZA ABOVE FINAL FORM",
- ["linebreak"]="al",
- ["shcode"]=0x0648,
- ["specials"]={ "final", 0x0624 },
- ["unicodeslot"]=0xFE86, -- ﺆ
+ category="lo",
+ description="ARABIC LETTER WAW WITH HAMZA ABOVE FINAL FORM",
+ direction="al",
+ linebreak="al",
+ shcode=0x0648,
+ specials={ "final", 0x0624 },
+ unicodeslot=0xFE86,
},
[0xFE87]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER ALEF WITH HAMZA BELOW ISOLATED FORM",
- ["linebreak"]="al",
- ["shcode"]=0x0627,
- ["specials"]={ "isolated", 0x0625 },
- ["unicodeslot"]=0xFE87, -- ﺇ
+ category="lo",
+ description="ARABIC LETTER ALEF WITH HAMZA BELOW ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ shcode=0x0627,
+ specials={ "isolated", 0x0625 },
+ unicodeslot=0xFE87,
},
[0xFE88]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER ALEF WITH HAMZA BELOW FINAL FORM",
- ["linebreak"]="al",
- ["shcode"]=0x0627,
- ["specials"]={ "final", 0x0625 },
- ["unicodeslot"]=0xFE88, -- ﺈ
+ category="lo",
+ description="ARABIC LETTER ALEF WITH HAMZA BELOW FINAL FORM",
+ direction="al",
+ linebreak="al",
+ shcode=0x0627,
+ specials={ "final", 0x0625 },
+ unicodeslot=0xFE88,
},
[0xFE89]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER YEH WITH HAMZA ABOVE ISOLATED FORM",
- ["linebreak"]="al",
- ["shcode"]=0x064A,
- ["specials"]={ "isolated", 0x0626 },
- ["unicodeslot"]=0xFE89, -- ﺉ
+ category="lo",
+ description="ARABIC LETTER YEH WITH HAMZA ABOVE ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ shcode=0x064A,
+ specials={ "isolated", 0x0626 },
+ unicodeslot=0xFE89,
},
[0xFE8A]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER YEH WITH HAMZA ABOVE FINAL FORM",
- ["linebreak"]="al",
- ["shcode"]=0x064A,
- ["specials"]={ "final", 0x0626 },
- ["unicodeslot"]=0xFE8A, -- ﺊ
+ category="lo",
+ description="ARABIC LETTER YEH WITH HAMZA ABOVE FINAL FORM",
+ direction="al",
+ linebreak="al",
+ shcode=0x064A,
+ specials={ "final", 0x0626 },
+ unicodeslot=0xFE8A,
},
[0xFE8B]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM",
- ["linebreak"]="al",
- ["shcode"]=0x064A,
- ["specials"]={ "initial", 0x0626 },
- ["unicodeslot"]=0xFE8B, -- ﺋ
+ category="lo",
+ description="ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ shcode=0x064A,
+ specials={ "initial", 0x0626 },
+ unicodeslot=0xFE8B,
},
[0xFE8C]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER YEH WITH HAMZA ABOVE MEDIAL FORM",
- ["linebreak"]="al",
- ["shcode"]=0x064A,
- ["specials"]={ "medial", 0x0626 },
- ["unicodeslot"]=0xFE8C, -- ﺌ
+ category="lo",
+ description="ARABIC LETTER YEH WITH HAMZA ABOVE MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ shcode=0x064A,
+ specials={ "medial", 0x0626 },
+ unicodeslot=0xFE8C,
},
[0xFE8D]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER ALEF ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0627 },
- ["unicodeslot"]=0xFE8D, -- ﺍ
+ category="lo",
+ description="ARABIC LETTER ALEF ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0627 },
+ unicodeslot=0xFE8D,
},
[0xFE8E]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER ALEF FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0627 },
- ["unicodeslot"]=0xFE8E, -- ﺎ
+ category="lo",
+ description="ARABIC LETTER ALEF FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0627 },
+ unicodeslot=0xFE8E,
},
[0xFE8F]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER BEH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0628 },
- ["unicodeslot"]=0xFE8F, -- ﺏ
+ category="lo",
+ description="ARABIC LETTER BEH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0628 },
+ unicodeslot=0xFE8F,
},
[0xFE90]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER BEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0628 },
- ["unicodeslot"]=0xFE90, -- ﺐ
+ category="lo",
+ description="ARABIC LETTER BEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0628 },
+ unicodeslot=0xFE90,
},
[0xFE91]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER BEH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0628 },
- ["unicodeslot"]=0xFE91, -- ﺑ
+ category="lo",
+ description="ARABIC LETTER BEH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0628 },
+ unicodeslot=0xFE91,
},
[0xFE92]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER BEH MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x0628 },
- ["unicodeslot"]=0xFE92, -- ﺒ
+ category="lo",
+ description="ARABIC LETTER BEH MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x0628 },
+ unicodeslot=0xFE92,
},
[0xFE93]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER TEH MARBUTA ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0629 },
- ["unicodeslot"]=0xFE93, -- ﺓ
+ category="lo",
+ description="ARABIC LETTER TEH MARBUTA ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0629 },
+ unicodeslot=0xFE93,
},
[0xFE94]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER TEH MARBUTA FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0629 },
- ["unicodeslot"]=0xFE94, -- ﺔ
+ category="lo",
+ description="ARABIC LETTER TEH MARBUTA FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0629 },
+ unicodeslot=0xFE94,
},
[0xFE95]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER TEH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x062A },
- ["unicodeslot"]=0xFE95, -- ﺕ
+ category="lo",
+ description="ARABIC LETTER TEH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x062A },
+ unicodeslot=0xFE95,
},
[0xFE96]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER TEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x062A },
- ["unicodeslot"]=0xFE96, -- ﺖ
+ category="lo",
+ description="ARABIC LETTER TEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x062A },
+ unicodeslot=0xFE96,
},
[0xFE97]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER TEH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x062A },
- ["unicodeslot"]=0xFE97, -- ﺗ
+ category="lo",
+ description="ARABIC LETTER TEH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x062A },
+ unicodeslot=0xFE97,
},
[0xFE98]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER TEH MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x062A },
- ["unicodeslot"]=0xFE98, -- ﺘ
+ category="lo",
+ description="ARABIC LETTER TEH MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x062A },
+ unicodeslot=0xFE98,
},
[0xFE99]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER THEH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x062B },
- ["unicodeslot"]=0xFE99, -- ﺙ
+ category="lo",
+ description="ARABIC LETTER THEH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x062B },
+ unicodeslot=0xFE99,
},
[0xFE9A]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER THEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x062B },
- ["unicodeslot"]=0xFE9A, -- ﺚ
+ category="lo",
+ description="ARABIC LETTER THEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x062B },
+ unicodeslot=0xFE9A,
},
[0xFE9B]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER THEH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x062B },
- ["unicodeslot"]=0xFE9B, -- ﺛ
+ category="lo",
+ description="ARABIC LETTER THEH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x062B },
+ unicodeslot=0xFE9B,
},
[0xFE9C]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER THEH MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x062B },
- ["unicodeslot"]=0xFE9C, -- ﺜ
+ category="lo",
+ description="ARABIC LETTER THEH MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x062B },
+ unicodeslot=0xFE9C,
},
[0xFE9D]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER JEEM ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x062C },
- ["unicodeslot"]=0xFE9D, -- ﺝ
+ category="lo",
+ description="ARABIC LETTER JEEM ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x062C },
+ unicodeslot=0xFE9D,
},
[0xFE9E]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER JEEM FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x062C },
- ["unicodeslot"]=0xFE9E, -- ﺞ
+ category="lo",
+ description="ARABIC LETTER JEEM FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x062C },
+ unicodeslot=0xFE9E,
},
[0xFE9F]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER JEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x062C },
- ["unicodeslot"]=0xFE9F, -- ﺟ
+ category="lo",
+ description="ARABIC LETTER JEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x062C },
+ unicodeslot=0xFE9F,
},
[0xFEA0]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER JEEM MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x062C },
- ["unicodeslot"]=0xFEA0, -- ﺠ
+ category="lo",
+ description="ARABIC LETTER JEEM MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x062C },
+ unicodeslot=0xFEA0,
},
[0xFEA1]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER HAH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x062D },
- ["unicodeslot"]=0xFEA1, -- ﺡ
+ category="lo",
+ description="ARABIC LETTER HAH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x062D },
+ unicodeslot=0xFEA1,
},
[0xFEA2]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER HAH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x062D },
- ["unicodeslot"]=0xFEA2, -- ﺢ
+ category="lo",
+ description="ARABIC LETTER HAH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x062D },
+ unicodeslot=0xFEA2,
},
[0xFEA3]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER HAH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x062D },
- ["unicodeslot"]=0xFEA3, -- ﺣ
+ category="lo",
+ description="ARABIC LETTER HAH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x062D },
+ unicodeslot=0xFEA3,
},
[0xFEA4]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER HAH MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x062D },
- ["unicodeslot"]=0xFEA4, -- ﺤ
+ category="lo",
+ description="ARABIC LETTER HAH MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x062D },
+ unicodeslot=0xFEA4,
},
[0xFEA5]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER KHAH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x062E },
- ["unicodeslot"]=0xFEA5, -- ﺥ
+ category="lo",
+ description="ARABIC LETTER KHAH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x062E },
+ unicodeslot=0xFEA5,
},
[0xFEA6]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER KHAH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x062E },
- ["unicodeslot"]=0xFEA6, -- ﺦ
+ category="lo",
+ description="ARABIC LETTER KHAH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x062E },
+ unicodeslot=0xFEA6,
},
[0xFEA7]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER KHAH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x062E },
- ["unicodeslot"]=0xFEA7, -- ﺧ
+ category="lo",
+ description="ARABIC LETTER KHAH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x062E },
+ unicodeslot=0xFEA7,
},
[0xFEA8]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER KHAH MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x062E },
- ["unicodeslot"]=0xFEA8, -- ﺨ
+ category="lo",
+ description="ARABIC LETTER KHAH MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x062E },
+ unicodeslot=0xFEA8,
},
[0xFEA9]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER DAL ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x062F },
- ["unicodeslot"]=0xFEA9, -- ﺩ
+ category="lo",
+ description="ARABIC LETTER DAL ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x062F },
+ unicodeslot=0xFEA9,
},
[0xFEAA]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER DAL FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x062F },
- ["unicodeslot"]=0xFEAA, -- ﺪ
+ category="lo",
+ description="ARABIC LETTER DAL FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x062F },
+ unicodeslot=0xFEAA,
},
[0xFEAB]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER THAL ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0630 },
- ["unicodeslot"]=0xFEAB, -- ﺫ
+ category="lo",
+ description="ARABIC LETTER THAL ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0630 },
+ unicodeslot=0xFEAB,
},
[0xFEAC]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER THAL FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0630 },
- ["unicodeslot"]=0xFEAC, -- ﺬ
+ category="lo",
+ description="ARABIC LETTER THAL FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0630 },
+ unicodeslot=0xFEAC,
},
[0xFEAD]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER REH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0631 },
- ["unicodeslot"]=0xFEAD, -- ﺭ
+ category="lo",
+ description="ARABIC LETTER REH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0631 },
+ unicodeslot=0xFEAD,
},
[0xFEAE]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER REH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0631 },
- ["unicodeslot"]=0xFEAE, -- ﺮ
+ category="lo",
+ description="ARABIC LETTER REH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0631 },
+ unicodeslot=0xFEAE,
},
[0xFEAF]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER ZAIN ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0632 },
- ["unicodeslot"]=0xFEAF, -- ﺯ
+ category="lo",
+ description="ARABIC LETTER ZAIN ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0632 },
+ unicodeslot=0xFEAF,
},
[0xFEB0]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER ZAIN FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0632 },
- ["unicodeslot"]=0xFEB0, -- ﺰ
+ category="lo",
+ description="ARABIC LETTER ZAIN FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0632 },
+ unicodeslot=0xFEB0,
},
[0xFEB1]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER SEEN ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0633 },
- ["unicodeslot"]=0xFEB1, -- ﺱ
+ category="lo",
+ description="ARABIC LETTER SEEN ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0633 },
+ unicodeslot=0xFEB1,
},
[0xFEB2]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER SEEN FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0633 },
- ["unicodeslot"]=0xFEB2, -- ﺲ
+ category="lo",
+ description="ARABIC LETTER SEEN FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0633 },
+ unicodeslot=0xFEB2,
},
[0xFEB3]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER SEEN INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0633 },
- ["unicodeslot"]=0xFEB3, -- ﺳ
+ category="lo",
+ description="ARABIC LETTER SEEN INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0633 },
+ unicodeslot=0xFEB3,
},
[0xFEB4]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER SEEN MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x0633 },
- ["unicodeslot"]=0xFEB4, -- ﺴ
+ category="lo",
+ description="ARABIC LETTER SEEN MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x0633 },
+ unicodeslot=0xFEB4,
},
[0xFEB5]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER SHEEN ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0634 },
- ["unicodeslot"]=0xFEB5, -- ﺵ
+ category="lo",
+ description="ARABIC LETTER SHEEN ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0634 },
+ unicodeslot=0xFEB5,
},
[0xFEB6]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER SHEEN FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0634 },
- ["unicodeslot"]=0xFEB6, -- ﺶ
+ category="lo",
+ description="ARABIC LETTER SHEEN FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0634 },
+ unicodeslot=0xFEB6,
},
[0xFEB7]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER SHEEN INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0634 },
- ["unicodeslot"]=0xFEB7, -- ﺷ
+ category="lo",
+ description="ARABIC LETTER SHEEN INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0634 },
+ unicodeslot=0xFEB7,
},
[0xFEB8]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER SHEEN MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x0634 },
- ["unicodeslot"]=0xFEB8, -- ﺸ
+ category="lo",
+ description="ARABIC LETTER SHEEN MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x0634 },
+ unicodeslot=0xFEB8,
},
[0xFEB9]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER SAD ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0635 },
- ["unicodeslot"]=0xFEB9, -- ﺹ
+ category="lo",
+ description="ARABIC LETTER SAD ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0635 },
+ unicodeslot=0xFEB9,
},
[0xFEBA]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER SAD FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0635 },
- ["unicodeslot"]=0xFEBA, -- ﺺ
+ category="lo",
+ description="ARABIC LETTER SAD FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0635 },
+ unicodeslot=0xFEBA,
},
[0xFEBB]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER SAD INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0635 },
- ["unicodeslot"]=0xFEBB, -- ﺻ
+ category="lo",
+ description="ARABIC LETTER SAD INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0635 },
+ unicodeslot=0xFEBB,
},
[0xFEBC]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER SAD MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x0635 },
- ["unicodeslot"]=0xFEBC, -- ﺼ
+ category="lo",
+ description="ARABIC LETTER SAD MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x0635 },
+ unicodeslot=0xFEBC,
},
[0xFEBD]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER DAD ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0636 },
- ["unicodeslot"]=0xFEBD, -- ﺽ
+ category="lo",
+ description="ARABIC LETTER DAD ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0636 },
+ unicodeslot=0xFEBD,
},
[0xFEBE]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER DAD FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0636 },
- ["unicodeslot"]=0xFEBE, -- ﺾ
+ category="lo",
+ description="ARABIC LETTER DAD FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0636 },
+ unicodeslot=0xFEBE,
},
[0xFEBF]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER DAD INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0636 },
- ["unicodeslot"]=0xFEBF, -- ﺿ
+ category="lo",
+ description="ARABIC LETTER DAD INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0636 },
+ unicodeslot=0xFEBF,
},
[0xFEC0]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER DAD MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x0636 },
- ["unicodeslot"]=0xFEC0, -- ﻀ
+ category="lo",
+ description="ARABIC LETTER DAD MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x0636 },
+ unicodeslot=0xFEC0,
},
[0xFEC1]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER TAH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0637 },
- ["unicodeslot"]=0xFEC1, -- ﻁ
+ category="lo",
+ description="ARABIC LETTER TAH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0637 },
+ unicodeslot=0xFEC1,
},
[0xFEC2]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER TAH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0637 },
- ["unicodeslot"]=0xFEC2, -- ﻂ
+ category="lo",
+ description="ARABIC LETTER TAH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0637 },
+ unicodeslot=0xFEC2,
},
[0xFEC3]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER TAH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0637 },
- ["unicodeslot"]=0xFEC3, -- ﻃ
+ category="lo",
+ description="ARABIC LETTER TAH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0637 },
+ unicodeslot=0xFEC3,
},
[0xFEC4]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER TAH MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x0637 },
- ["unicodeslot"]=0xFEC4, -- ﻄ
+ category="lo",
+ description="ARABIC LETTER TAH MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x0637 },
+ unicodeslot=0xFEC4,
},
[0xFEC5]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER ZAH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0638 },
- ["unicodeslot"]=0xFEC5, -- ﻅ
+ category="lo",
+ description="ARABIC LETTER ZAH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0638 },
+ unicodeslot=0xFEC5,
},
[0xFEC6]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER ZAH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0638 },
- ["unicodeslot"]=0xFEC6, -- ﻆ
+ category="lo",
+ description="ARABIC LETTER ZAH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0638 },
+ unicodeslot=0xFEC6,
},
[0xFEC7]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER ZAH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0638 },
- ["unicodeslot"]=0xFEC7, -- ﻇ
+ category="lo",
+ description="ARABIC LETTER ZAH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0638 },
+ unicodeslot=0xFEC7,
},
[0xFEC8]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER ZAH MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x0638 },
- ["unicodeslot"]=0xFEC8, -- ﻈ
+ category="lo",
+ description="ARABIC LETTER ZAH MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x0638 },
+ unicodeslot=0xFEC8,
},
[0xFEC9]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER AIN ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0639 },
- ["unicodeslot"]=0xFEC9, -- ﻉ
+ category="lo",
+ description="ARABIC LETTER AIN ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0639 },
+ unicodeslot=0xFEC9,
},
[0xFECA]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER AIN FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0639 },
- ["unicodeslot"]=0xFECA, -- ﻊ
+ category="lo",
+ description="ARABIC LETTER AIN FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0639 },
+ unicodeslot=0xFECA,
},
[0xFECB]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER AIN INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0639 },
- ["unicodeslot"]=0xFECB, -- ﻋ
+ category="lo",
+ description="ARABIC LETTER AIN INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0639 },
+ unicodeslot=0xFECB,
},
[0xFECC]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER AIN MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x0639 },
- ["unicodeslot"]=0xFECC, -- ﻌ
+ category="lo",
+ description="ARABIC LETTER AIN MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x0639 },
+ unicodeslot=0xFECC,
},
[0xFECD]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER GHAIN ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x063A },
- ["unicodeslot"]=0xFECD, -- ﻍ
+ category="lo",
+ description="ARABIC LETTER GHAIN ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x063A },
+ unicodeslot=0xFECD,
},
[0xFECE]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER GHAIN FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x063A },
- ["unicodeslot"]=0xFECE, -- ﻎ
+ category="lo",
+ description="ARABIC LETTER GHAIN FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x063A },
+ unicodeslot=0xFECE,
},
[0xFECF]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER GHAIN INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x063A },
- ["unicodeslot"]=0xFECF, -- ﻏ
+ category="lo",
+ description="ARABIC LETTER GHAIN INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x063A },
+ unicodeslot=0xFECF,
},
[0xFED0]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER GHAIN MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x063A },
- ["unicodeslot"]=0xFED0, -- ﻐ
+ category="lo",
+ description="ARABIC LETTER GHAIN MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x063A },
+ unicodeslot=0xFED0,
},
[0xFED1]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER FEH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0641 },
- ["unicodeslot"]=0xFED1, -- ﻑ
+ category="lo",
+ description="ARABIC LETTER FEH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0641 },
+ unicodeslot=0xFED1,
},
[0xFED2]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER FEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0641 },
- ["unicodeslot"]=0xFED2, -- ﻒ
+ category="lo",
+ description="ARABIC LETTER FEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0641 },
+ unicodeslot=0xFED2,
},
[0xFED3]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER FEH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0641 },
- ["unicodeslot"]=0xFED3, -- ﻓ
+ category="lo",
+ description="ARABIC LETTER FEH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0641 },
+ unicodeslot=0xFED3,
},
[0xFED4]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER FEH MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x0641 },
- ["unicodeslot"]=0xFED4, -- ﻔ
+ category="lo",
+ description="ARABIC LETTER FEH MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x0641 },
+ unicodeslot=0xFED4,
},
[0xFED5]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER QAF ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0642 },
- ["unicodeslot"]=0xFED5, -- ﻕ
+ category="lo",
+ description="ARABIC LETTER QAF ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0642 },
+ unicodeslot=0xFED5,
},
[0xFED6]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER QAF FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0642 },
- ["unicodeslot"]=0xFED6, -- ﻖ
+ category="lo",
+ description="ARABIC LETTER QAF FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0642 },
+ unicodeslot=0xFED6,
},
[0xFED7]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER QAF INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0642 },
- ["unicodeslot"]=0xFED7, -- ﻗ
+ category="lo",
+ description="ARABIC LETTER QAF INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0642 },
+ unicodeslot=0xFED7,
},
[0xFED8]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER QAF MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x0642 },
- ["unicodeslot"]=0xFED8, -- ﻘ
+ category="lo",
+ description="ARABIC LETTER QAF MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x0642 },
+ unicodeslot=0xFED8,
},
[0xFED9]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER KAF ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0643 },
- ["unicodeslot"]=0xFED9, -- ﻙ
+ category="lo",
+ description="ARABIC LETTER KAF ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0643 },
+ unicodeslot=0xFED9,
},
[0xFEDA]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER KAF FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0643 },
- ["unicodeslot"]=0xFEDA, -- ﻚ
+ category="lo",
+ description="ARABIC LETTER KAF FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0643 },
+ unicodeslot=0xFEDA,
},
[0xFEDB]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER KAF INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0643 },
- ["unicodeslot"]=0xFEDB, -- ﻛ
+ category="lo",
+ description="ARABIC LETTER KAF INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0643 },
+ unicodeslot=0xFEDB,
},
[0xFEDC]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER KAF MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x0643 },
- ["unicodeslot"]=0xFEDC, -- ﻜ
+ category="lo",
+ description="ARABIC LETTER KAF MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x0643 },
+ unicodeslot=0xFEDC,
},
[0xFEDD]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER LAM ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0644 },
- ["unicodeslot"]=0xFEDD, -- ﻝ
+ category="lo",
+ description="ARABIC LETTER LAM ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0644 },
+ unicodeslot=0xFEDD,
},
[0xFEDE]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER LAM FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0644 },
- ["unicodeslot"]=0xFEDE, -- ﻞ
+ category="lo",
+ description="ARABIC LETTER LAM FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0644 },
+ unicodeslot=0xFEDE,
},
[0xFEDF]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER LAM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0644 },
- ["unicodeslot"]=0xFEDF, -- ﻟ
+ category="lo",
+ description="ARABIC LETTER LAM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0644 },
+ unicodeslot=0xFEDF,
},
[0xFEE0]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER LAM MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x0644 },
- ["unicodeslot"]=0xFEE0, -- ﻠ
+ category="lo",
+ description="ARABIC LETTER LAM MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x0644 },
+ unicodeslot=0xFEE0,
},
[0xFEE1]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER MEEM ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0645 },
- ["unicodeslot"]=0xFEE1, -- ﻡ
+ category="lo",
+ description="ARABIC LETTER MEEM ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0645 },
+ unicodeslot=0xFEE1,
},
[0xFEE2]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER MEEM FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0645 },
- ["unicodeslot"]=0xFEE2, -- ﻢ
+ category="lo",
+ description="ARABIC LETTER MEEM FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0645 },
+ unicodeslot=0xFEE2,
},
[0xFEE3]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER MEEM INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0645 },
- ["unicodeslot"]=0xFEE3, -- ﻣ
+ category="lo",
+ description="ARABIC LETTER MEEM INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0645 },
+ unicodeslot=0xFEE3,
},
[0xFEE4]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER MEEM MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x0645 },
- ["unicodeslot"]=0xFEE4, -- ﻤ
+ category="lo",
+ description="ARABIC LETTER MEEM MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x0645 },
+ unicodeslot=0xFEE4,
},
[0xFEE5]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER NOON ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0646 },
- ["unicodeslot"]=0xFEE5, -- ﻥ
+ category="lo",
+ description="ARABIC LETTER NOON ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0646 },
+ unicodeslot=0xFEE5,
},
[0xFEE6]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER NOON FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0646 },
- ["unicodeslot"]=0xFEE6, -- ﻦ
+ category="lo",
+ description="ARABIC LETTER NOON FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0646 },
+ unicodeslot=0xFEE6,
},
[0xFEE7]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER NOON INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0646 },
- ["unicodeslot"]=0xFEE7, -- ﻧ
+ category="lo",
+ description="ARABIC LETTER NOON INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0646 },
+ unicodeslot=0xFEE7,
},
[0xFEE8]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER NOON MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x0646 },
- ["unicodeslot"]=0xFEE8, -- ﻨ
+ category="lo",
+ description="ARABIC LETTER NOON MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x0646 },
+ unicodeslot=0xFEE8,
},
[0xFEE9]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER HEH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0647 },
- ["unicodeslot"]=0xFEE9, -- ﻩ
+ category="lo",
+ description="ARABIC LETTER HEH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0647 },
+ unicodeslot=0xFEE9,
},
[0xFEEA]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER HEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0647 },
- ["unicodeslot"]=0xFEEA, -- ﻪ
+ category="lo",
+ description="ARABIC LETTER HEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0647 },
+ unicodeslot=0xFEEA,
},
[0xFEEB]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER HEH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x0647 },
- ["unicodeslot"]=0xFEEB, -- ﻫ
+ category="lo",
+ description="ARABIC LETTER HEH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x0647 },
+ unicodeslot=0xFEEB,
},
[0xFEEC]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER HEH MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x0647 },
- ["unicodeslot"]=0xFEEC, -- ﻬ
+ category="lo",
+ description="ARABIC LETTER HEH MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x0647 },
+ unicodeslot=0xFEEC,
},
[0xFEED]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER WAW ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0648 },
- ["unicodeslot"]=0xFEED, -- ﻭ
+ category="lo",
+ description="ARABIC LETTER WAW ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0648 },
+ unicodeslot=0xFEED,
},
[0xFEEE]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER WAW FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0648 },
- ["unicodeslot"]=0xFEEE, -- ﻮ
+ category="lo",
+ description="ARABIC LETTER WAW FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0648 },
+ unicodeslot=0xFEEE,
},
[0xFEEF]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER ALEF MAKSURA ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0649 },
- ["unicodeslot"]=0xFEEF, -- ﻯ
+ category="lo",
+ description="ARABIC LETTER ALEF MAKSURA ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0649 },
+ unicodeslot=0xFEEF,
},
[0xFEF0]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER ALEF MAKSURA FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0649 },
- ["unicodeslot"]=0xFEF0, -- ﻰ
+ category="lo",
+ description="ARABIC LETTER ALEF MAKSURA FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0649 },
+ unicodeslot=0xFEF0,
},
[0xFEF1]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER YEH ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x064A },
- ["unicodeslot"]=0xFEF1, -- ﻱ
+ category="lo",
+ description="ARABIC LETTER YEH ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x064A },
+ unicodeslot=0xFEF1,
},
[0xFEF2]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER YEH FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x064A },
- ["unicodeslot"]=0xFEF2, -- ﻲ
+ category="lo",
+ description="ARABIC LETTER YEH FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x064A },
+ unicodeslot=0xFEF2,
},
[0xFEF3]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER YEH INITIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "initial", 0x064A },
- ["unicodeslot"]=0xFEF3, -- ﻳ
+ category="lo",
+ description="ARABIC LETTER YEH INITIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "initial", 0x064A },
+ unicodeslot=0xFEF3,
},
[0xFEF4]={
- ["category"]="lo",
- ["description"]="ARABIC LETTER YEH MEDIAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "medial", 0x064A },
- ["unicodeslot"]=0xFEF4, -- ﻴ
+ category="lo",
+ description="ARABIC LETTER YEH MEDIAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "medial", 0x064A },
+ unicodeslot=0xFEF4,
},
[0xFEF5]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0644, 0x0622 },
- ["unicodeslot"]=0xFEF5, -- ﻵ
+ category="lo",
+ description="ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0644, 0x0622 },
+ unicodeslot=0xFEF5,
},
[0xFEF6]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0644, 0x0622 },
- ["unicodeslot"]=0xFEF6, -- ﻶ
+ category="lo",
+ description="ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0644, 0x0622 },
+ unicodeslot=0xFEF6,
},
[0xFEF7]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0644, 0x0623 },
- ["unicodeslot"]=0xFEF7, -- ﻷ
+ category="lo",
+ description="ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0644, 0x0623 },
+ unicodeslot=0xFEF7,
},
[0xFEF8]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0644, 0x0623 },
- ["unicodeslot"]=0xFEF8, -- ﻸ
+ category="lo",
+ description="ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0644, 0x0623 },
+ unicodeslot=0xFEF8,
},
[0xFEF9]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0644, 0x0625 },
- ["unicodeslot"]=0xFEF9, -- ﻹ
+ category="lo",
+ description="ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0644, 0x0625 },
+ unicodeslot=0xFEF9,
},
[0xFEFA]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0644, 0x0625 },
- ["unicodeslot"]=0xFEFA, -- ﻺ
+ category="lo",
+ description="ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0644, 0x0625 },
+ unicodeslot=0xFEFA,
},
[0xFEFB]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM",
- ["linebreak"]="al",
- ["specials"]={ "isolated", 0x0644, 0x0627 },
- ["unicodeslot"]=0xFEFB, -- ﻻ
+ category="lo",
+ description="ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "isolated", 0x0644, 0x0627 },
+ unicodeslot=0xFEFB,
},
[0xFEFC]={
- ["category"]="lo",
- ["description"]="ARABIC LIGATURE LAM WITH ALEF FINAL FORM",
- ["linebreak"]="al",
- ["specials"]={ "final", 0x0644, 0x0627 },
- ["unicodeslot"]=0xFEFC, -- ﻼ
+ category="lo",
+ description="ARABIC LIGATURE LAM WITH ALEF FINAL FORM",
+ direction="al",
+ linebreak="al",
+ specials={ "final", 0x0644, 0x0627 },
+ unicodeslot=0xFEFC,
},
[0xFEFF]={
- ["category"]="cf",
- ["description"]="ZERO WIDTH NO-BREAK SPACE",
- ["linebreak"]="wj",
- ["unicodeslot"]=0xFEFF, -- 
+ category="cf",
+ contextname="zerowidthnobreakspace",
+ description="ZERO WIDTH NO-BREAK SPACE",
+ direction="bn",
+ linebreak="wj",
+ unicodeslot=0xFEFF,
},
[0xFF01]={
- ["category"]="po",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH EXCLAMATION MARK",
- ["linebreak"]="ex",
- ["specials"]={ "wide", 0x0021 },
- ["unicodeslot"]=0xFF01, -- !
+ category="po",
+ cjkwd="f",
+ description="FULLWIDTH EXCLAMATION MARK",
+ direction="on",
+ linebreak="ex",
+ specials={ "wide", 0x0021 },
+ unicodeslot=0xFF01,
},
[0xFF02]={
- ["category"]="po",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH QUOTATION MARK",
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x0022 },
- ["unicodeslot"]=0xFF02, -- "
+ category="po",
+ cjkwd="f",
+ description="FULLWIDTH QUOTATION MARK",
+ direction="on",
+ linebreak="id",
+ specials={ "wide", 0x0022 },
+ unicodeslot=0xFF02,
},
[0xFF03]={
- ["category"]="po",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH NUMBER SIGN",
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x0023 },
- ["unicodeslot"]=0xFF03, -- #
+ category="po",
+ cjkwd="f",
+ description="FULLWIDTH NUMBER SIGN",
+ direction="et",
+ linebreak="id",
+ specials={ "wide", 0x0023 },
+ unicodeslot=0xFF03,
},
[0xFF04]={
- ["category"]="sc",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH DOLLAR SIGN",
- ["linebreak"]="pr",
- ["specials"]={ "wide", 0x0024 },
- ["unicodeslot"]=0xFF04, -- $
+ category="sc",
+ cjkwd="f",
+ description="FULLWIDTH DOLLAR SIGN",
+ direction="et",
+ linebreak="pr",
+ specials={ "wide", 0x0024 },
+ unicodeslot=0xFF04,
},
[0xFF05]={
- ["category"]="po",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH PERCENT SIGN",
- ["linebreak"]="po",
- ["specials"]={ "wide", 0x0025 },
- ["unicodeslot"]=0xFF05, -- %
+ category="po",
+ cjkwd="f",
+ description="FULLWIDTH PERCENT SIGN",
+ direction="et",
+ linebreak="po",
+ specials={ "wide", 0x0025 },
+ unicodeslot=0xFF05,
},
[0xFF06]={
- ["category"]="po",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH AMPERSAND",
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x0026 },
- ["unicodeslot"]=0xFF06, -- &
+ category="po",
+ cjkwd="f",
+ description="FULLWIDTH AMPERSAND",
+ direction="on",
+ linebreak="id",
+ specials={ "wide", 0x0026 },
+ unicodeslot=0xFF06,
},
[0xFF07]={
- ["category"]="po",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH APOSTROPHE",
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x0027 },
- ["unicodeslot"]=0xFF07, -- '
+ category="po",
+ cjkwd="f",
+ description="FULLWIDTH APOSTROPHE",
+ direction="on",
+ linebreak="id",
+ specials={ "wide", 0x0027 },
+ unicodeslot=0xFF07,
},
[0xFF08]={
- ["category"]="ps",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH LEFT PARENTHESIS",
- ["linebreak"]="op",
- ["specials"]={ "wide", 0x0028 },
- ["unicodeslot"]=0xFF08, -- (
+ category="ps",
+ cjkwd="f",
+ description="FULLWIDTH LEFT PARENTHESIS",
+ direction="on",
+ linebreak="op",
+ mirror=0xFF09,
+ specials={ "wide", 0x0028 },
+ unicodeslot=0xFF08,
},
[0xFF09]={
- ["category"]="pe",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH RIGHT PARENTHESIS",
- ["linebreak"]="cl",
- ["specials"]={ "wide", 0x0029 },
- ["unicodeslot"]=0xFF09, -- )
+ category="pe",
+ cjkwd="f",
+ description="FULLWIDTH RIGHT PARENTHESIS",
+ direction="on",
+ linebreak="cl",
+ mirror=0xFF08,
+ specials={ "wide", 0x0029 },
+ unicodeslot=0xFF09,
},
[0xFF0A]={
- ["category"]="po",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH ASTERISK",
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x002A },
- ["unicodeslot"]=0xFF0A, -- *
+ category="po",
+ cjkwd="f",
+ description="FULLWIDTH ASTERISK",
+ direction="on",
+ linebreak="id",
+ specials={ "wide", 0x002A },
+ unicodeslot=0xFF0A,
},
[0xFF0B]={
- ["category"]="sm",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH PLUS SIGN",
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x002B },
- ["unicodeslot"]=0xFF0B, -- +
+ category="sm",
+ cjkwd="f",
+ description="FULLWIDTH PLUS SIGN",
+ direction="es",
+ linebreak="id",
+ specials={ "wide", 0x002B },
+ unicodeslot=0xFF0B,
},
[0xFF0C]={
- ["category"]="po",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH COMMA",
- ["linebreak"]="cl",
- ["specials"]={ "wide", 0x002C },
- ["unicodeslot"]=0xFF0C, -- ,
+ category="po",
+ cjkwd="f",
+ description="FULLWIDTH COMMA",
+ direction="cs",
+ linebreak="cl",
+ specials={ "wide", 0x002C },
+ unicodeslot=0xFF0C,
},
[0xFF0D]={
- ["category"]="pd",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH HYPHEN-MINUS",
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x002D },
- ["unicodeslot"]=0xFF0D, -- -
+ category="pd",
+ cjkwd="f",
+ description="FULLWIDTH HYPHEN-MINUS",
+ direction="es",
+ linebreak="id",
+ specials={ "wide", 0x002D },
+ unicodeslot=0xFF0D,
},
[0xFF0E]={
- ["category"]="po",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH FULL STOP",
- ["linebreak"]="cl",
- ["specials"]={ "wide", 0x002E },
- ["unicodeslot"]=0xFF0E, -- .
+ category="po",
+ cjkwd="f",
+ description="FULLWIDTH FULL STOP",
+ direction="cs",
+ linebreak="cl",
+ specials={ "wide", 0x002E },
+ unicodeslot=0xFF0E,
},
[0xFF0F]={
- ["category"]="po",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH SOLIDUS",
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x002F },
- ["unicodeslot"]=0xFF0F, -- /
+ category="po",
+ cjkwd="f",
+ description="FULLWIDTH SOLIDUS",
+ direction="cs",
+ linebreak="id",
+ specials={ "wide", 0x002F },
+ unicodeslot=0xFF0F,
},
[0xFF10]={
- ["category"]="nd",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH DIGIT ZERO",
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x0030 },
- ["unicodeslot"]=0xFF10, -- 0
+ category="nd",
+ cjkwd="f",
+ description="FULLWIDTH DIGIT ZERO",
+ direction="en",
+ linebreak="id",
+ specials={ "wide", 0x0030 },
+ unicodeslot=0xFF10,
},
[0xFF11]={
- ["category"]="nd",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH DIGIT ONE",
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x0031 },
- ["unicodeslot"]=0xFF11, -- 1
+ category="nd",
+ cjkwd="f",
+ description="FULLWIDTH DIGIT ONE",
+ direction="en",
+ linebreak="id",
+ specials={ "wide", 0x0031 },
+ unicodeslot=0xFF11,
},
[0xFF12]={
- ["category"]="nd",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH DIGIT TWO",
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x0032 },
- ["unicodeslot"]=0xFF12, -- 2
+ category="nd",
+ cjkwd="f",
+ description="FULLWIDTH DIGIT TWO",
+ direction="en",
+ linebreak="id",
+ specials={ "wide", 0x0032 },
+ unicodeslot=0xFF12,
},
[0xFF13]={
- ["category"]="nd",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH DIGIT THREE",
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x0033 },
- ["unicodeslot"]=0xFF13, -- 3
+ category="nd",
+ cjkwd="f",
+ description="FULLWIDTH DIGIT THREE",
+ direction="en",
+ linebreak="id",
+ specials={ "wide", 0x0033 },
+ unicodeslot=0xFF13,
},
[0xFF14]={
- ["category"]="nd",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH DIGIT FOUR",
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x0034 },
- ["unicodeslot"]=0xFF14, -- 4
+ category="nd",
+ cjkwd="f",
+ description="FULLWIDTH DIGIT FOUR",
+ direction="en",
+ linebreak="id",
+ specials={ "wide", 0x0034 },
+ unicodeslot=0xFF14,
},
[0xFF15]={
- ["category"]="nd",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH DIGIT FIVE",
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x0035 },
- ["unicodeslot"]=0xFF15, -- 5
+ category="nd",
+ cjkwd="f",
+ description="FULLWIDTH DIGIT FIVE",
+ direction="en",
+ linebreak="id",
+ specials={ "wide", 0x0035 },
+ unicodeslot=0xFF15,
},
[0xFF16]={
- ["category"]="nd",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH DIGIT SIX",
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x0036 },
- ["unicodeslot"]=0xFF16, -- 6
+ category="nd",
+ cjkwd="f",
+ description="FULLWIDTH DIGIT SIX",
+ direction="en",
+ linebreak="id",
+ specials={ "wide", 0x0036 },
+ unicodeslot=0xFF16,
},
[0xFF17]={
- ["category"]="nd",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH DIGIT SEVEN",
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x0037 },
- ["unicodeslot"]=0xFF17, -- 7
+ category="nd",
+ cjkwd="f",
+ description="FULLWIDTH DIGIT SEVEN",
+ direction="en",
+ linebreak="id",
+ specials={ "wide", 0x0037 },
+ unicodeslot=0xFF17,
},
[0xFF18]={
- ["category"]="nd",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH DIGIT EIGHT",
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x0038 },
- ["unicodeslot"]=0xFF18, -- 8
+ category="nd",
+ cjkwd="f",
+ description="FULLWIDTH DIGIT EIGHT",
+ direction="en",
+ linebreak="id",
+ specials={ "wide", 0x0038 },
+ unicodeslot=0xFF18,
},
[0xFF19]={
- ["category"]="nd",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH DIGIT NINE",
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x0039 },
- ["unicodeslot"]=0xFF19, -- 9
+ category="nd",
+ cjkwd="f",
+ description="FULLWIDTH DIGIT NINE",
+ direction="en",
+ linebreak="id",
+ specials={ "wide", 0x0039 },
+ unicodeslot=0xFF19,
},
[0xFF1A]={
- ["category"]="po",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH COLON",
- ["linebreak"]="ns",
- ["specials"]={ "wide", 0x003A },
- ["unicodeslot"]=0xFF1A, -- :
+ category="po",
+ cjkwd="f",
+ description="FULLWIDTH COLON",
+ direction="cs",
+ linebreak="ns",
+ specials={ "wide", 0x003A },
+ unicodeslot=0xFF1A,
},
[0xFF1B]={
- ["category"]="po",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH SEMICOLON",
- ["linebreak"]="ns",
- ["specials"]={ "wide", 0x003B },
- ["unicodeslot"]=0xFF1B, -- ;
+ category="po",
+ cjkwd="f",
+ description="FULLWIDTH SEMICOLON",
+ direction="on",
+ linebreak="ns",
+ specials={ "wide", 0x003B },
+ unicodeslot=0xFF1B,
},
[0xFF1C]={
- ["category"]="sm",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH LESS-THAN SIGN",
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x003C },
- ["unicodeslot"]=0xFF1C, -- <
+ category="sm",
+ cjkwd="f",
+ description="FULLWIDTH LESS-THAN SIGN",
+ direction="on",
+ linebreak="id",
+ mirror=0xFF1E,
+ specials={ "wide", 0x003C },
+ unicodeslot=0xFF1C,
},
[0xFF1D]={
- ["category"]="sm",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH EQUALS SIGN",
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x003D },
- ["unicodeslot"]=0xFF1D, -- =
+ category="sm",
+ cjkwd="f",
+ description="FULLWIDTH EQUALS SIGN",
+ direction="on",
+ linebreak="id",
+ specials={ "wide", 0x003D },
+ unicodeslot=0xFF1D,
},
[0xFF1E]={
- ["category"]="sm",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH GREATER-THAN SIGN",
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x003E },
- ["unicodeslot"]=0xFF1E, -- >
+ category="sm",
+ cjkwd="f",
+ description="FULLWIDTH GREATER-THAN SIGN",
+ direction="on",
+ linebreak="id",
+ mirror=0xFF1C,
+ specials={ "wide", 0x003E },
+ unicodeslot=0xFF1E,
},
[0xFF1F]={
- ["category"]="po",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH QUESTION MARK",
- ["linebreak"]="ex",
- ["specials"]={ "wide", 0x003F },
- ["unicodeslot"]=0xFF1F, -- ?
+ category="po",
+ cjkwd="f",
+ description="FULLWIDTH QUESTION MARK",
+ direction="on",
+ linebreak="ex",
+ specials={ "wide", 0x003F },
+ unicodeslot=0xFF1F,
},
[0xFF20]={
- ["category"]="po",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH COMMERCIAL AT",
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x0040 },
- ["unicodeslot"]=0xFF20, -- @
+ category="po",
+ cjkwd="f",
+ description="FULLWIDTH COMMERCIAL AT",
+ direction="on",
+ linebreak="id",
+ specials={ "wide", 0x0040 },
+ unicodeslot=0xFF20,
},
[0xFF21]={
- ["category"]="lu",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH LATIN CAPITAL LETTER A",
- ["lccode"]=0xFF41,
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x0041 },
- ["unicodeslot"]=0xFF21, -- A
+ category="lu",
+ cjkwd="f",
+ description="FULLWIDTH LATIN CAPITAL LETTER A",
+ direction="l",
+ lccode=0xFF41,
+ linebreak="id",
+ specials={ "wide", 0x0041 },
+ unicodeslot=0xFF21,
},
[0xFF22]={
- ["category"]="lu",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH LATIN CAPITAL LETTER B",
- ["lccode"]=0xFF42,
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x0042 },
- ["unicodeslot"]=0xFF22, -- B
+ category="lu",
+ cjkwd="f",
+ description="FULLWIDTH LATIN CAPITAL LETTER B",
+ direction="l",
+ lccode=0xFF42,
+ linebreak="id",
+ specials={ "wide", 0x0042 },
+ unicodeslot=0xFF22,
},
[0xFF23]={
- ["category"]="lu",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH LATIN CAPITAL LETTER C",
- ["lccode"]=0xFF43,
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x0043 },
- ["unicodeslot"]=0xFF23, -- C
+ category="lu",
+ cjkwd="f",
+ description="FULLWIDTH LATIN CAPITAL LETTER C",
+ direction="l",
+ lccode=0xFF43,
+ linebreak="id",
+ specials={ "wide", 0x0043 },
+ unicodeslot=0xFF23,
},
[0xFF24]={
- ["category"]="lu",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH LATIN CAPITAL LETTER D",
- ["lccode"]=0xFF44,
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x0044 },
- ["unicodeslot"]=0xFF24, -- D
+ category="lu",
+ cjkwd="f",
+ description="FULLWIDTH LATIN CAPITAL LETTER D",
+ direction="l",
+ lccode=0xFF44,
+ linebreak="id",
+ specials={ "wide", 0x0044 },
+ unicodeslot=0xFF24,
},
[0xFF25]={
- ["category"]="lu",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH LATIN CAPITAL LETTER E",
- ["lccode"]=0xFF45,
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x0045 },
- ["unicodeslot"]=0xFF25, -- E
+ category="lu",
+ cjkwd="f",
+ description="FULLWIDTH LATIN CAPITAL LETTER E",
+ direction="l",
+ lccode=0xFF45,
+ linebreak="id",
+ specials={ "wide", 0x0045 },
+ unicodeslot=0xFF25,
},
[0xFF26]={
- ["category"]="lu",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH LATIN CAPITAL LETTER F",
- ["lccode"]=0xFF46,
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x0046 },
- ["unicodeslot"]=0xFF26, -- F
+ category="lu",
+ cjkwd="f",
+ description="FULLWIDTH LATIN CAPITAL LETTER F",
+ direction="l",
+ lccode=0xFF46,
+ linebreak="id",
+ specials={ "wide", 0x0046 },
+ unicodeslot=0xFF26,
},
[0xFF27]={
- ["category"]="lu",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH LATIN CAPITAL LETTER G",
- ["lccode"]=0xFF47,
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x0047 },
- ["unicodeslot"]=0xFF27, -- G
+ category="lu",
+ cjkwd="f",
+ description="FULLWIDTH LATIN CAPITAL LETTER G",
+ direction="l",
+ lccode=0xFF47,
+ linebreak="id",
+ specials={ "wide", 0x0047 },
+ unicodeslot=0xFF27,
},
[0xFF28]={
- ["category"]="lu",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH LATIN CAPITAL LETTER H",
- ["lccode"]=0xFF48,
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x0048 },
- ["unicodeslot"]=0xFF28, -- H
+ category="lu",
+ cjkwd="f",
+ description="FULLWIDTH LATIN CAPITAL LETTER H",
+ direction="l",
+ lccode=0xFF48,
+ linebreak="id",
+ specials={ "wide", 0x0048 },
+ unicodeslot=0xFF28,
},
[0xFF29]={
- ["category"]="lu",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH LATIN CAPITAL LETTER I",
- ["lccode"]=0xFF49,
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x0049 },
- ["unicodeslot"]=0xFF29, -- I
+ category="lu",
+ cjkwd="f",
+ description="FULLWIDTH LATIN CAPITAL LETTER I",
+ direction="l",
+ lccode=0xFF49,
+ linebreak="id",
+ specials={ "wide", 0x0049 },
+ unicodeslot=0xFF29,
},
[0xFF2A]={
- ["category"]="lu",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH LATIN CAPITAL LETTER J",
- ["lccode"]=0xFF4A,
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x004A },
- ["unicodeslot"]=0xFF2A, -- J
+ category="lu",
+ cjkwd="f",
+ description="FULLWIDTH LATIN CAPITAL LETTER J",
+ direction="l",
+ lccode=0xFF4A,
+ linebreak="id",
+ specials={ "wide", 0x004A },
+ unicodeslot=0xFF2A,
},
[0xFF2B]={
- ["category"]="lu",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH LATIN CAPITAL LETTER K",
- ["lccode"]=0xFF4B,
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x004B },
- ["unicodeslot"]=0xFF2B, -- K
+ category="lu",
+ cjkwd="f",
+ description="FULLWIDTH LATIN CAPITAL LETTER K",
+ direction="l",
+ lccode=0xFF4B,
+ linebreak="id",
+ specials={ "wide", 0x004B },
+ unicodeslot=0xFF2B,
},
[0xFF2C]={
- ["category"]="lu",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH LATIN CAPITAL LETTER L",
- ["lccode"]=0xFF4C,
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x004C },
- ["unicodeslot"]=0xFF2C, -- L
+ category="lu",
+ cjkwd="f",
+ description="FULLWIDTH LATIN CAPITAL LETTER L",
+ direction="l",
+ lccode=0xFF4C,
+ linebreak="id",
+ specials={ "wide", 0x004C },
+ unicodeslot=0xFF2C,
},
[0xFF2D]={
- ["category"]="lu",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH LATIN CAPITAL LETTER M",
- ["lccode"]=0xFF4D,
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x004D },
- ["unicodeslot"]=0xFF2D, -- M
+ category="lu",
+ cjkwd="f",
+ description="FULLWIDTH LATIN CAPITAL LETTER M",
+ direction="l",
+ lccode=0xFF4D,
+ linebreak="id",
+ specials={ "wide", 0x004D },
+ unicodeslot=0xFF2D,
},
[0xFF2E]={
- ["category"]="lu",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH LATIN CAPITAL LETTER N",
- ["lccode"]=0xFF4E,
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x004E },
- ["unicodeslot"]=0xFF2E, -- N
+ category="lu",
+ cjkwd="f",
+ description="FULLWIDTH LATIN CAPITAL LETTER N",
+ direction="l",
+ lccode=0xFF4E,
+ linebreak="id",
+ specials={ "wide", 0x004E },
+ unicodeslot=0xFF2E,
},
[0xFF2F]={
- ["category"]="lu",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH LATIN CAPITAL LETTER O",
- ["lccode"]=0xFF4F,
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x004F },
- ["unicodeslot"]=0xFF2F, -- O
+ category="lu",
+ cjkwd="f",
+ description="FULLWIDTH LATIN CAPITAL LETTER O",
+ direction="l",
+ lccode=0xFF4F,
+ linebreak="id",
+ specials={ "wide", 0x004F },
+ unicodeslot=0xFF2F,
},
[0xFF30]={
- ["category"]="lu",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH LATIN CAPITAL LETTER P",
- ["lccode"]=0xFF50,
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x0050 },
- ["unicodeslot"]=0xFF30, -- P
+ category="lu",
+ cjkwd="f",
+ description="FULLWIDTH LATIN CAPITAL LETTER P",
+ direction="l",
+ lccode=0xFF50,
+ linebreak="id",
+ specials={ "wide", 0x0050 },
+ unicodeslot=0xFF30,
},
[0xFF31]={
- ["category"]="lu",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH LATIN CAPITAL LETTER Q",
- ["lccode"]=0xFF51,
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x0051 },
- ["unicodeslot"]=0xFF31, -- Q
+ category="lu",
+ cjkwd="f",
+ description="FULLWIDTH LATIN CAPITAL LETTER Q",
+ direction="l",
+ lccode=0xFF51,
+ linebreak="id",
+ specials={ "wide", 0x0051 },
+ unicodeslot=0xFF31,
},
[0xFF32]={
- ["category"]="lu",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH LATIN CAPITAL LETTER R",
- ["lccode"]=0xFF52,
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x0052 },
- ["unicodeslot"]=0xFF32, -- R
+ category="lu",
+ cjkwd="f",
+ description="FULLWIDTH LATIN CAPITAL LETTER R",
+ direction="l",
+ lccode=0xFF52,
+ linebreak="id",
+ specials={ "wide", 0x0052 },
+ unicodeslot=0xFF32,
},
[0xFF33]={
- ["category"]="lu",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH LATIN CAPITAL LETTER S",
- ["lccode"]=0xFF53,
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x0053 },
- ["unicodeslot"]=0xFF33, -- S
+ category="lu",
+ cjkwd="f",
+ description="FULLWIDTH LATIN CAPITAL LETTER S",
+ direction="l",
+ lccode=0xFF53,
+ linebreak="id",
+ specials={ "wide", 0x0053 },
+ unicodeslot=0xFF33,
},
[0xFF34]={
- ["category"]="lu",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH LATIN CAPITAL LETTER T",
- ["lccode"]=0xFF54,
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x0054 },
- ["unicodeslot"]=0xFF34, -- T
+ category="lu",
+ cjkwd="f",
+ description="FULLWIDTH LATIN CAPITAL LETTER T",
+ direction="l",
+ lccode=0xFF54,
+ linebreak="id",
+ specials={ "wide", 0x0054 },
+ unicodeslot=0xFF34,
},
[0xFF35]={
- ["category"]="lu",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH LATIN CAPITAL LETTER U",
- ["lccode"]=0xFF55,
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x0055 },
- ["unicodeslot"]=0xFF35, -- U
+ category="lu",
+ cjkwd="f",
+ description="FULLWIDTH LATIN CAPITAL LETTER U",
+ direction="l",
+ lccode=0xFF55,
+ linebreak="id",
+ specials={ "wide", 0x0055 },
+ unicodeslot=0xFF35,
},
[0xFF36]={
- ["category"]="lu",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH LATIN CAPITAL LETTER V",
- ["lccode"]=0xFF56,
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x0056 },
- ["unicodeslot"]=0xFF36, -- V
+ category="lu",
+ cjkwd="f",
+ description="FULLWIDTH LATIN CAPITAL LETTER V",
+ direction="l",
+ lccode=0xFF56,
+ linebreak="id",
+ specials={ "wide", 0x0056 },
+ unicodeslot=0xFF36,
},
[0xFF37]={
- ["category"]="lu",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH LATIN CAPITAL LETTER W",
- ["lccode"]=0xFF57,
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x0057 },
- ["unicodeslot"]=0xFF37, -- W
+ category="lu",
+ cjkwd="f",
+ description="FULLWIDTH LATIN CAPITAL LETTER W",
+ direction="l",
+ lccode=0xFF57,
+ linebreak="id",
+ specials={ "wide", 0x0057 },
+ unicodeslot=0xFF37,
},
[0xFF38]={
- ["category"]="lu",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH LATIN CAPITAL LETTER X",
- ["lccode"]=0xFF58,
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x0058 },
- ["unicodeslot"]=0xFF38, -- X
+ category="lu",
+ cjkwd="f",
+ description="FULLWIDTH LATIN CAPITAL LETTER X",
+ direction="l",
+ lccode=0xFF58,
+ linebreak="id",
+ specials={ "wide", 0x0058 },
+ unicodeslot=0xFF38,
},
[0xFF39]={
- ["category"]="lu",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH LATIN CAPITAL LETTER Y",
- ["lccode"]=0xFF59,
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x0059 },
- ["unicodeslot"]=0xFF39, -- Y
+ category="lu",
+ cjkwd="f",
+ description="FULLWIDTH LATIN CAPITAL LETTER Y",
+ direction="l",
+ lccode=0xFF59,
+ linebreak="id",
+ specials={ "wide", 0x0059 },
+ unicodeslot=0xFF39,
},
[0xFF3A]={
- ["category"]="lu",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH LATIN CAPITAL LETTER Z",
- ["lccode"]=0xFF5A,
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x005A },
- ["unicodeslot"]=0xFF3A, -- Z
+ category="lu",
+ cjkwd="f",
+ description="FULLWIDTH LATIN CAPITAL LETTER Z",
+ direction="l",
+ lccode=0xFF5A,
+ linebreak="id",
+ specials={ "wide", 0x005A },
+ unicodeslot=0xFF3A,
},
[0xFF3B]={
- ["category"]="ps",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH LEFT SQUARE BRACKET",
- ["linebreak"]="op",
- ["specials"]={ "wide", 0x005B },
- ["unicodeslot"]=0xFF3B, -- [
+ category="ps",
+ cjkwd="f",
+ description="FULLWIDTH LEFT SQUARE BRACKET",
+ direction="on",
+ linebreak="op",
+ mirror=0xFF3D,
+ specials={ "wide", 0x005B },
+ unicodeslot=0xFF3B,
},
[0xFF3C]={
- ["category"]="po",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH REVERSE SOLIDUS",
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x005C },
- ["unicodeslot"]=0xFF3C, -- \
+ category="po",
+ cjkwd="f",
+ description="FULLWIDTH REVERSE SOLIDUS",
+ direction="on",
+ linebreak="id",
+ specials={ "wide", 0x005C },
+ unicodeslot=0xFF3C,
},
[0xFF3D]={
- ["category"]="pe",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH RIGHT SQUARE BRACKET",
- ["linebreak"]="cl",
- ["specials"]={ "wide", 0x005D },
- ["unicodeslot"]=0xFF3D, -- ]
+ category="pe",
+ cjkwd="f",
+ description="FULLWIDTH RIGHT SQUARE BRACKET",
+ direction="on",
+ linebreak="cl",
+ mirror=0xFF3B,
+ specials={ "wide", 0x005D },
+ unicodeslot=0xFF3D,
},
[0xFF3E]={
- ["category"]="sk",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH CIRCUMFLEX ACCENT",
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x005E },
- ["unicodeslot"]=0xFF3E, -- ^
+ category="sk",
+ cjkwd="f",
+ description="FULLWIDTH CIRCUMFLEX ACCENT",
+ direction="on",
+ linebreak="id",
+ specials={ "wide", 0x005E },
+ unicodeslot=0xFF3E,
},
[0xFF3F]={
- ["category"]="pc",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH LOW LINE",
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x005F },
- ["unicodeslot"]=0xFF3F, -- _
+ category="pc",
+ cjkwd="f",
+ description="FULLWIDTH LOW LINE",
+ direction="on",
+ linebreak="id",
+ specials={ "wide", 0x005F },
+ unicodeslot=0xFF3F,
},
[0xFF40]={
- ["category"]="sk",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH GRAVE ACCENT",
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x0060 },
- ["unicodeslot"]=0xFF40, -- `
+ category="sk",
+ cjkwd="f",
+ description="FULLWIDTH GRAVE ACCENT",
+ direction="on",
+ linebreak="id",
+ specials={ "wide", 0x0060 },
+ unicodeslot=0xFF40,
},
[0xFF41]={
- ["category"]="ll",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH LATIN SMALL LETTER A",
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x0061 },
- ["uccode"]=0xFF21,
- ["unicodeslot"]=0xFF41, -- a
+ category="ll",
+ cjkwd="f",
+ description="FULLWIDTH LATIN SMALL LETTER A",
+ direction="l",
+ linebreak="id",
+ specials={ "wide", 0x0061 },
+ uccode=0xFF21,
+ unicodeslot=0xFF41,
},
[0xFF42]={
- ["category"]="ll",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH LATIN SMALL LETTER B",
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x0062 },
- ["uccode"]=0xFF22,
- ["unicodeslot"]=0xFF42, -- b
+ category="ll",
+ cjkwd="f",
+ description="FULLWIDTH LATIN SMALL LETTER B",
+ direction="l",
+ linebreak="id",
+ specials={ "wide", 0x0062 },
+ uccode=0xFF22,
+ unicodeslot=0xFF42,
},
[0xFF43]={
- ["category"]="ll",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH LATIN SMALL LETTER C",
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x0063 },
- ["uccode"]=0xFF23,
- ["unicodeslot"]=0xFF43, -- c
+ category="ll",
+ cjkwd="f",
+ description="FULLWIDTH LATIN SMALL LETTER C",
+ direction="l",
+ linebreak="id",
+ specials={ "wide", 0x0063 },
+ uccode=0xFF23,
+ unicodeslot=0xFF43,
},
[0xFF44]={
- ["category"]="ll",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH LATIN SMALL LETTER D",
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x0064 },
- ["uccode"]=0xFF24,
- ["unicodeslot"]=0xFF44, -- d
+ category="ll",
+ cjkwd="f",
+ description="FULLWIDTH LATIN SMALL LETTER D",
+ direction="l",
+ linebreak="id",
+ specials={ "wide", 0x0064 },
+ uccode=0xFF24,
+ unicodeslot=0xFF44,
},
[0xFF45]={
- ["category"]="ll",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH LATIN SMALL LETTER E",
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x0065 },
- ["uccode"]=0xFF25,
- ["unicodeslot"]=0xFF45, -- e
+ category="ll",
+ cjkwd="f",
+ description="FULLWIDTH LATIN SMALL LETTER E",
+ direction="l",
+ linebreak="id",
+ specials={ "wide", 0x0065 },
+ uccode=0xFF25,
+ unicodeslot=0xFF45,
},
[0xFF46]={
- ["category"]="ll",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH LATIN SMALL LETTER F",
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x0066 },
- ["uccode"]=0xFF26,
- ["unicodeslot"]=0xFF46, -- f
+ category="ll",
+ cjkwd="f",
+ description="FULLWIDTH LATIN SMALL LETTER F",
+ direction="l",
+ linebreak="id",
+ specials={ "wide", 0x0066 },
+ uccode=0xFF26,
+ unicodeslot=0xFF46,
},
[0xFF47]={
- ["category"]="ll",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH LATIN SMALL LETTER G",
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x0067 },
- ["uccode"]=0xFF27,
- ["unicodeslot"]=0xFF47, -- g
+ category="ll",
+ cjkwd="f",
+ description="FULLWIDTH LATIN SMALL LETTER G",
+ direction="l",
+ linebreak="id",
+ specials={ "wide", 0x0067 },
+ uccode=0xFF27,
+ unicodeslot=0xFF47,
},
[0xFF48]={
- ["category"]="ll",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH LATIN SMALL LETTER H",
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x0068 },
- ["uccode"]=0xFF28,
- ["unicodeslot"]=0xFF48, -- h
+ category="ll",
+ cjkwd="f",
+ description="FULLWIDTH LATIN SMALL LETTER H",
+ direction="l",
+ linebreak="id",
+ specials={ "wide", 0x0068 },
+ uccode=0xFF28,
+ unicodeslot=0xFF48,
},
[0xFF49]={
- ["category"]="ll",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH LATIN SMALL LETTER I",
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x0069 },
- ["uccode"]=0xFF29,
- ["unicodeslot"]=0xFF49, -- i
+ category="ll",
+ cjkwd="f",
+ description="FULLWIDTH LATIN SMALL LETTER I",
+ direction="l",
+ linebreak="id",
+ specials={ "wide", 0x0069 },
+ uccode=0xFF29,
+ unicodeslot=0xFF49,
},
[0xFF4A]={
- ["category"]="ll",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH LATIN SMALL LETTER J",
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x006A },
- ["uccode"]=0xFF2A,
- ["unicodeslot"]=0xFF4A, -- j
+ category="ll",
+ cjkwd="f",
+ description="FULLWIDTH LATIN SMALL LETTER J",
+ direction="l",
+ linebreak="id",
+ specials={ "wide", 0x006A },
+ uccode=0xFF2A,
+ unicodeslot=0xFF4A,
},
[0xFF4B]={
- ["category"]="ll",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH LATIN SMALL LETTER K",
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x006B },
- ["uccode"]=0xFF2B,
- ["unicodeslot"]=0xFF4B, -- k
+ category="ll",
+ cjkwd="f",
+ description="FULLWIDTH LATIN SMALL LETTER K",
+ direction="l",
+ linebreak="id",
+ specials={ "wide", 0x006B },
+ uccode=0xFF2B,
+ unicodeslot=0xFF4B,
},
[0xFF4C]={
- ["category"]="ll",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH LATIN SMALL LETTER L",
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x006C },
- ["uccode"]=0xFF2C,
- ["unicodeslot"]=0xFF4C, -- l
+ category="ll",
+ cjkwd="f",
+ description="FULLWIDTH LATIN SMALL LETTER L",
+ direction="l",
+ linebreak="id",
+ specials={ "wide", 0x006C },
+ uccode=0xFF2C,
+ unicodeslot=0xFF4C,
},
[0xFF4D]={
- ["category"]="ll",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH LATIN SMALL LETTER M",
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x006D },
- ["uccode"]=0xFF2D,
- ["unicodeslot"]=0xFF4D, -- m
+ category="ll",
+ cjkwd="f",
+ description="FULLWIDTH LATIN SMALL LETTER M",
+ direction="l",
+ linebreak="id",
+ specials={ "wide", 0x006D },
+ uccode=0xFF2D,
+ unicodeslot=0xFF4D,
},
[0xFF4E]={
- ["category"]="ll",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH LATIN SMALL LETTER N",
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x006E },
- ["uccode"]=0xFF2E,
- ["unicodeslot"]=0xFF4E, -- n
+ category="ll",
+ cjkwd="f",
+ description="FULLWIDTH LATIN SMALL LETTER N",
+ direction="l",
+ linebreak="id",
+ specials={ "wide", 0x006E },
+ uccode=0xFF2E,
+ unicodeslot=0xFF4E,
},
[0xFF4F]={
- ["category"]="ll",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH LATIN SMALL LETTER O",
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x006F },
- ["uccode"]=0xFF2F,
- ["unicodeslot"]=0xFF4F, -- o
+ category="ll",
+ cjkwd="f",
+ description="FULLWIDTH LATIN SMALL LETTER O",
+ direction="l",
+ linebreak="id",
+ specials={ "wide", 0x006F },
+ uccode=0xFF2F,
+ unicodeslot=0xFF4F,
},
[0xFF50]={
- ["category"]="ll",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH LATIN SMALL LETTER P",
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x0070 },
- ["uccode"]=0xFF30,
- ["unicodeslot"]=0xFF50, -- p
+ category="ll",
+ cjkwd="f",
+ description="FULLWIDTH LATIN SMALL LETTER P",
+ direction="l",
+ linebreak="id",
+ specials={ "wide", 0x0070 },
+ uccode=0xFF30,
+ unicodeslot=0xFF50,
},
[0xFF51]={
- ["category"]="ll",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH LATIN SMALL LETTER Q",
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x0071 },
- ["uccode"]=0xFF31,
- ["unicodeslot"]=0xFF51, -- q
+ category="ll",
+ cjkwd="f",
+ description="FULLWIDTH LATIN SMALL LETTER Q",
+ direction="l",
+ linebreak="id",
+ specials={ "wide", 0x0071 },
+ uccode=0xFF31,
+ unicodeslot=0xFF51,
},
[0xFF52]={
- ["category"]="ll",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH LATIN SMALL LETTER R",
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x0072 },
- ["uccode"]=0xFF32,
- ["unicodeslot"]=0xFF52, -- r
+ category="ll",
+ cjkwd="f",
+ description="FULLWIDTH LATIN SMALL LETTER R",
+ direction="l",
+ linebreak="id",
+ specials={ "wide", 0x0072 },
+ uccode=0xFF32,
+ unicodeslot=0xFF52,
},
[0xFF53]={
- ["category"]="ll",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH LATIN SMALL LETTER S",
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x0073 },
- ["uccode"]=0xFF33,
- ["unicodeslot"]=0xFF53, -- s
+ category="ll",
+ cjkwd="f",
+ description="FULLWIDTH LATIN SMALL LETTER S",
+ direction="l",
+ linebreak="id",
+ specials={ "wide", 0x0073 },
+ uccode=0xFF33,
+ unicodeslot=0xFF53,
},
[0xFF54]={
- ["category"]="ll",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH LATIN SMALL LETTER T",
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x0074 },
- ["uccode"]=0xFF34,
- ["unicodeslot"]=0xFF54, -- t
+ category="ll",
+ cjkwd="f",
+ description="FULLWIDTH LATIN SMALL LETTER T",
+ direction="l",
+ linebreak="id",
+ specials={ "wide", 0x0074 },
+ uccode=0xFF34,
+ unicodeslot=0xFF54,
},
[0xFF55]={
- ["category"]="ll",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH LATIN SMALL LETTER U",
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x0075 },
- ["uccode"]=0xFF35,
- ["unicodeslot"]=0xFF55, -- u
+ category="ll",
+ cjkwd="f",
+ description="FULLWIDTH LATIN SMALL LETTER U",
+ direction="l",
+ linebreak="id",
+ specials={ "wide", 0x0075 },
+ uccode=0xFF35,
+ unicodeslot=0xFF55,
},
[0xFF56]={
- ["category"]="ll",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH LATIN SMALL LETTER V",
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x0076 },
- ["uccode"]=0xFF36,
- ["unicodeslot"]=0xFF56, -- v
+ category="ll",
+ cjkwd="f",
+ description="FULLWIDTH LATIN SMALL LETTER V",
+ direction="l",
+ linebreak="id",
+ specials={ "wide", 0x0076 },
+ uccode=0xFF36,
+ unicodeslot=0xFF56,
},
[0xFF57]={
- ["category"]="ll",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH LATIN SMALL LETTER W",
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x0077 },
- ["uccode"]=0xFF37,
- ["unicodeslot"]=0xFF57, -- w
+ category="ll",
+ cjkwd="f",
+ description="FULLWIDTH LATIN SMALL LETTER W",
+ direction="l",
+ linebreak="id",
+ specials={ "wide", 0x0077 },
+ uccode=0xFF37,
+ unicodeslot=0xFF57,
},
[0xFF58]={
- ["category"]="ll",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH LATIN SMALL LETTER X",
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x0078 },
- ["uccode"]=0xFF38,
- ["unicodeslot"]=0xFF58, -- x
+ category="ll",
+ cjkwd="f",
+ description="FULLWIDTH LATIN SMALL LETTER X",
+ direction="l",
+ linebreak="id",
+ specials={ "wide", 0x0078 },
+ uccode=0xFF38,
+ unicodeslot=0xFF58,
},
[0xFF59]={
- ["category"]="ll",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH LATIN SMALL LETTER Y",
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x0079 },
- ["uccode"]=0xFF39,
- ["unicodeslot"]=0xFF59, -- y
+ category="ll",
+ cjkwd="f",
+ description="FULLWIDTH LATIN SMALL LETTER Y",
+ direction="l",
+ linebreak="id",
+ specials={ "wide", 0x0079 },
+ uccode=0xFF39,
+ unicodeslot=0xFF59,
},
[0xFF5A]={
- ["category"]="ll",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH LATIN SMALL LETTER Z",
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x007A },
- ["uccode"]=0xFF3A,
- ["unicodeslot"]=0xFF5A, -- z
+ category="ll",
+ cjkwd="f",
+ description="FULLWIDTH LATIN SMALL LETTER Z",
+ direction="l",
+ linebreak="id",
+ specials={ "wide", 0x007A },
+ uccode=0xFF3A,
+ unicodeslot=0xFF5A,
},
[0xFF5B]={
- ["category"]="ps",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH LEFT CURLY BRACKET",
- ["linebreak"]="op",
- ["specials"]={ "wide", 0x007B },
- ["unicodeslot"]=0xFF5B, -- {
+ category="ps",
+ cjkwd="f",
+ description="FULLWIDTH LEFT CURLY BRACKET",
+ direction="on",
+ linebreak="op",
+ mirror=0xFF5D,
+ specials={ "wide", 0x007B },
+ unicodeslot=0xFF5B,
},
[0xFF5C]={
- ["category"]="sm",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH VERTICAL LINE",
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x007C },
- ["unicodeslot"]=0xFF5C, -- |
+ category="sm",
+ cjkwd="f",
+ description="FULLWIDTH VERTICAL LINE",
+ direction="on",
+ linebreak="id",
+ specials={ "wide", 0x007C },
+ unicodeslot=0xFF5C,
},
[0xFF5D]={
- ["category"]="pe",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH RIGHT CURLY BRACKET",
- ["linebreak"]="cl",
- ["specials"]={ "wide", 0x007D },
- ["unicodeslot"]=0xFF5D, -- }
+ category="pe",
+ cjkwd="f",
+ description="FULLWIDTH RIGHT CURLY BRACKET",
+ direction="on",
+ linebreak="cl",
+ mirror=0xFF5B,
+ specials={ "wide", 0x007D },
+ unicodeslot=0xFF5D,
},
[0xFF5E]={
- ["category"]="sm",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH TILDE",
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x007E },
- ["unicodeslot"]=0xFF5E, -- ~
+ category="sm",
+ cjkwd="f",
+ description="FULLWIDTH TILDE",
+ direction="on",
+ linebreak="id",
+ specials={ "wide", 0x007E },
+ unicodeslot=0xFF5E,
},
[0xFF5F]={
- ["category"]="ps",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH LEFT WHITE PARENTHESIS",
- ["linebreak"]="op",
- ["specials"]={ "wide", 0x2985 },
- ["unicodeslot"]=0xFF5F, -- ⦅
+ category="ps",
+ cjkwd="f",
+ description="FULLWIDTH LEFT WHITE PARENTHESIS",
+ direction="on",
+ linebreak="op",
+ mirror=0xFF60,
+ specials={ "wide", 0x2985 },
+ unicodeslot=0xFF5F,
},
[0xFF60]={
- ["category"]="pe",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH RIGHT WHITE PARENTHESIS",
- ["linebreak"]="cl",
- ["specials"]={ "wide", 0x2986 },
- ["unicodeslot"]=0xFF60, -- ⦆
+ category="pe",
+ cjkwd="f",
+ description="FULLWIDTH RIGHT WHITE PARENTHESIS",
+ direction="on",
+ linebreak="cl",
+ mirror=0xFF5F,
+ specials={ "wide", 0x2986 },
+ unicodeslot=0xFF60,
},
[0xFF61]={
- ["category"]="po",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH IDEOGRAPHIC FULL STOP",
- ["linebreak"]="cl",
- ["specials"]={ "narrow", 0x3002 },
- ["unicodeslot"]=0xFF61, -- 。
+ category="po",
+ cjkwd="h",
+ description="HALFWIDTH IDEOGRAPHIC FULL STOP",
+ direction="on",
+ linebreak="cl",
+ specials={ "narrow", 0x3002 },
+ unicodeslot=0xFF61,
},
[0xFF62]={
- ["category"]="ps",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH LEFT CORNER BRACKET",
- ["linebreak"]="op",
- ["specials"]={ "narrow", 0x300C },
- ["unicodeslot"]=0xFF62, -- 「
+ category="ps",
+ cjkwd="h",
+ description="HALFWIDTH LEFT CORNER BRACKET",
+ direction="on",
+ linebreak="op",
+ mirror=0xFF63,
+ specials={ "narrow", 0x300C },
+ unicodeslot=0xFF62,
},
[0xFF63]={
- ["category"]="pe",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH RIGHT CORNER BRACKET",
- ["linebreak"]="cl",
- ["specials"]={ "narrow", 0x300D },
- ["unicodeslot"]=0xFF63, -- 」
+ category="pe",
+ cjkwd="h",
+ description="HALFWIDTH RIGHT CORNER BRACKET",
+ direction="on",
+ linebreak="cl",
+ mirror=0xFF62,
+ specials={ "narrow", 0x300D },
+ unicodeslot=0xFF63,
},
[0xFF64]={
- ["category"]="po",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH IDEOGRAPHIC COMMA",
- ["linebreak"]="cl",
- ["specials"]={ "narrow", 0x3001 },
- ["unicodeslot"]=0xFF64, -- 、
+ category="po",
+ cjkwd="h",
+ description="HALFWIDTH IDEOGRAPHIC COMMA",
+ direction="on",
+ linebreak="cl",
+ specials={ "narrow", 0x3001 },
+ unicodeslot=0xFF64,
},
[0xFF65]={
- ["category"]="po",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH KATAKANA MIDDLE DOT",
- ["linebreak"]="ns",
- ["specials"]={ "narrow", 0x30FB },
- ["unicodeslot"]=0xFF65, -- ・
+ category="po",
+ cjkwd="h",
+ description="HALFWIDTH KATAKANA MIDDLE DOT",
+ direction="on",
+ linebreak="ns",
+ specials={ "narrow", 0x30FB },
+ unicodeslot=0xFF65,
},
[0xFF66]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH KATAKANA LETTER WO",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x30F2 },
- ["unicodeslot"]=0xFF66, -- ヲ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH KATAKANA LETTER WO",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x30F2 },
+ unicodeslot=0xFF66,
},
[0xFF67]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH KATAKANA LETTER SMALL A",
- ["linebreak"]="ns",
- ["specials"]={ "narrow", 0x30A1 },
- ["unicodeslot"]=0xFF67, -- ァ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH KATAKANA LETTER SMALL A",
+ direction="l",
+ linebreak="ns",
+ specials={ "narrow", 0x30A1 },
+ unicodeslot=0xFF67,
},
[0xFF68]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH KATAKANA LETTER SMALL I",
- ["linebreak"]="ns",
- ["specials"]={ "narrow", 0x30A3 },
- ["unicodeslot"]=0xFF68, -- ィ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH KATAKANA LETTER SMALL I",
+ direction="l",
+ linebreak="ns",
+ specials={ "narrow", 0x30A3 },
+ unicodeslot=0xFF68,
},
[0xFF69]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH KATAKANA LETTER SMALL U",
- ["linebreak"]="ns",
- ["specials"]={ "narrow", 0x30A5 },
- ["unicodeslot"]=0xFF69, -- ゥ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH KATAKANA LETTER SMALL U",
+ direction="l",
+ linebreak="ns",
+ specials={ "narrow", 0x30A5 },
+ unicodeslot=0xFF69,
},
[0xFF6A]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH KATAKANA LETTER SMALL E",
- ["linebreak"]="ns",
- ["specials"]={ "narrow", 0x30A7 },
- ["unicodeslot"]=0xFF6A, -- ェ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH KATAKANA LETTER SMALL E",
+ direction="l",
+ linebreak="ns",
+ specials={ "narrow", 0x30A7 },
+ unicodeslot=0xFF6A,
},
[0xFF6B]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH KATAKANA LETTER SMALL O",
- ["linebreak"]="ns",
- ["specials"]={ "narrow", 0x30A9 },
- ["unicodeslot"]=0xFF6B, -- ォ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH KATAKANA LETTER SMALL O",
+ direction="l",
+ linebreak="ns",
+ specials={ "narrow", 0x30A9 },
+ unicodeslot=0xFF6B,
},
[0xFF6C]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH KATAKANA LETTER SMALL YA",
- ["linebreak"]="ns",
- ["specials"]={ "narrow", 0x30E3 },
- ["unicodeslot"]=0xFF6C, -- ャ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH KATAKANA LETTER SMALL YA",
+ direction="l",
+ linebreak="ns",
+ specials={ "narrow", 0x30E3 },
+ unicodeslot=0xFF6C,
},
[0xFF6D]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH KATAKANA LETTER SMALL YU",
- ["linebreak"]="ns",
- ["specials"]={ "narrow", 0x30E5 },
- ["unicodeslot"]=0xFF6D, -- ュ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH KATAKANA LETTER SMALL YU",
+ direction="l",
+ linebreak="ns",
+ specials={ "narrow", 0x30E5 },
+ unicodeslot=0xFF6D,
},
[0xFF6E]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH KATAKANA LETTER SMALL YO",
- ["linebreak"]="ns",
- ["specials"]={ "narrow", 0x30E7 },
- ["unicodeslot"]=0xFF6E, -- ョ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH KATAKANA LETTER SMALL YO",
+ direction="l",
+ linebreak="ns",
+ specials={ "narrow", 0x30E7 },
+ unicodeslot=0xFF6E,
},
[0xFF6F]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH KATAKANA LETTER SMALL TU",
- ["linebreak"]="ns",
- ["specials"]={ "narrow", 0x30C3 },
- ["unicodeslot"]=0xFF6F, -- ッ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH KATAKANA LETTER SMALL TU",
+ direction="l",
+ linebreak="ns",
+ specials={ "narrow", 0x30C3 },
+ unicodeslot=0xFF6F,
},
[0xFF70]={
- ["category"]="lm",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK",
- ["linebreak"]="ns",
- ["specials"]={ "narrow", 0x30FC },
- ["unicodeslot"]=0xFF70, -- ー
+ category="lm",
+ cjkwd="h",
+ description="HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK",
+ direction="l",
+ linebreak="ns",
+ specials={ "narrow", 0x30FC },
+ unicodeslot=0xFF70,
},
[0xFF71]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH KATAKANA LETTER A",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x30A2 },
- ["unicodeslot"]=0xFF71, -- ア
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH KATAKANA LETTER A",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x30A2 },
+ unicodeslot=0xFF71,
},
[0xFF72]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH KATAKANA LETTER I",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x30A4 },
- ["unicodeslot"]=0xFF72, -- イ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH KATAKANA LETTER I",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x30A4 },
+ unicodeslot=0xFF72,
},
[0xFF73]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH KATAKANA LETTER U",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x30A6 },
- ["unicodeslot"]=0xFF73, -- ウ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH KATAKANA LETTER U",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x30A6 },
+ unicodeslot=0xFF73,
},
[0xFF74]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH KATAKANA LETTER E",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x30A8 },
- ["unicodeslot"]=0xFF74, -- エ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH KATAKANA LETTER E",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x30A8 },
+ unicodeslot=0xFF74,
},
[0xFF75]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH KATAKANA LETTER O",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x30AA },
- ["unicodeslot"]=0xFF75, -- オ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH KATAKANA LETTER O",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x30AA },
+ unicodeslot=0xFF75,
},
[0xFF76]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH KATAKANA LETTER KA",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x30AB },
- ["unicodeslot"]=0xFF76, -- カ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH KATAKANA LETTER KA",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x30AB },
+ unicodeslot=0xFF76,
},
[0xFF77]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH KATAKANA LETTER KI",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x30AD },
- ["unicodeslot"]=0xFF77, -- キ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH KATAKANA LETTER KI",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x30AD },
+ unicodeslot=0xFF77,
},
[0xFF78]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH KATAKANA LETTER KU",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x30AF },
- ["unicodeslot"]=0xFF78, -- ク
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH KATAKANA LETTER KU",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x30AF },
+ unicodeslot=0xFF78,
},
[0xFF79]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH KATAKANA LETTER KE",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x30B1 },
- ["unicodeslot"]=0xFF79, -- ケ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH KATAKANA LETTER KE",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x30B1 },
+ unicodeslot=0xFF79,
},
[0xFF7A]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH KATAKANA LETTER KO",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x30B3 },
- ["unicodeslot"]=0xFF7A, -- コ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH KATAKANA LETTER KO",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x30B3 },
+ unicodeslot=0xFF7A,
},
[0xFF7B]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH KATAKANA LETTER SA",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x30B5 },
- ["unicodeslot"]=0xFF7B, -- サ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH KATAKANA LETTER SA",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x30B5 },
+ unicodeslot=0xFF7B,
},
[0xFF7C]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH KATAKANA LETTER SI",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x30B7 },
- ["unicodeslot"]=0xFF7C, -- シ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH KATAKANA LETTER SI",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x30B7 },
+ unicodeslot=0xFF7C,
},
[0xFF7D]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH KATAKANA LETTER SU",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x30B9 },
- ["unicodeslot"]=0xFF7D, -- ス
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH KATAKANA LETTER SU",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x30B9 },
+ unicodeslot=0xFF7D,
},
[0xFF7E]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH KATAKANA LETTER SE",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x30BB },
- ["unicodeslot"]=0xFF7E, -- セ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH KATAKANA LETTER SE",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x30BB },
+ unicodeslot=0xFF7E,
},
[0xFF7F]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH KATAKANA LETTER SO",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x30BD },
- ["unicodeslot"]=0xFF7F, -- ソ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH KATAKANA LETTER SO",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x30BD },
+ unicodeslot=0xFF7F,
},
[0xFF80]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH KATAKANA LETTER TA",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x30BF },
- ["unicodeslot"]=0xFF80, -- タ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH KATAKANA LETTER TA",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x30BF },
+ unicodeslot=0xFF80,
},
[0xFF81]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH KATAKANA LETTER TI",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x30C1 },
- ["unicodeslot"]=0xFF81, -- チ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH KATAKANA LETTER TI",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x30C1 },
+ unicodeslot=0xFF81,
},
[0xFF82]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH KATAKANA LETTER TU",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x30C4 },
- ["unicodeslot"]=0xFF82, -- ツ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH KATAKANA LETTER TU",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x30C4 },
+ unicodeslot=0xFF82,
},
[0xFF83]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH KATAKANA LETTER TE",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x30C6 },
- ["unicodeslot"]=0xFF83, -- テ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH KATAKANA LETTER TE",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x30C6 },
+ unicodeslot=0xFF83,
},
[0xFF84]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH KATAKANA LETTER TO",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x30C8 },
- ["unicodeslot"]=0xFF84, -- ト
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH KATAKANA LETTER TO",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x30C8 },
+ unicodeslot=0xFF84,
},
[0xFF85]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH KATAKANA LETTER NA",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x30CA },
- ["unicodeslot"]=0xFF85, -- ナ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH KATAKANA LETTER NA",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x30CA },
+ unicodeslot=0xFF85,
},
[0xFF86]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH KATAKANA LETTER NI",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x30CB },
- ["unicodeslot"]=0xFF86, -- ニ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH KATAKANA LETTER NI",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x30CB },
+ unicodeslot=0xFF86,
},
[0xFF87]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH KATAKANA LETTER NU",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x30CC },
- ["unicodeslot"]=0xFF87, -- ヌ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH KATAKANA LETTER NU",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x30CC },
+ unicodeslot=0xFF87,
},
[0xFF88]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH KATAKANA LETTER NE",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x30CD },
- ["unicodeslot"]=0xFF88, -- ネ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH KATAKANA LETTER NE",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x30CD },
+ unicodeslot=0xFF88,
},
[0xFF89]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH KATAKANA LETTER NO",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x30CE },
- ["unicodeslot"]=0xFF89, -- ノ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH KATAKANA LETTER NO",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x30CE },
+ unicodeslot=0xFF89,
},
[0xFF8A]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH KATAKANA LETTER HA",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x30CF },
- ["unicodeslot"]=0xFF8A, -- ハ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH KATAKANA LETTER HA",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x30CF },
+ unicodeslot=0xFF8A,
},
[0xFF8B]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH KATAKANA LETTER HI",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x30D2 },
- ["unicodeslot"]=0xFF8B, -- ヒ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH KATAKANA LETTER HI",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x30D2 },
+ unicodeslot=0xFF8B,
},
[0xFF8C]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH KATAKANA LETTER HU",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x30D5 },
- ["unicodeslot"]=0xFF8C, -- フ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH KATAKANA LETTER HU",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x30D5 },
+ unicodeslot=0xFF8C,
},
[0xFF8D]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH KATAKANA LETTER HE",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x30D8 },
- ["unicodeslot"]=0xFF8D, -- ヘ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH KATAKANA LETTER HE",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x30D8 },
+ unicodeslot=0xFF8D,
},
[0xFF8E]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH KATAKANA LETTER HO",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x30DB },
- ["unicodeslot"]=0xFF8E, -- ホ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH KATAKANA LETTER HO",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x30DB },
+ unicodeslot=0xFF8E,
},
[0xFF8F]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH KATAKANA LETTER MA",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x30DE },
- ["unicodeslot"]=0xFF8F, -- マ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH KATAKANA LETTER MA",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x30DE },
+ unicodeslot=0xFF8F,
},
[0xFF90]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH KATAKANA LETTER MI",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x30DF },
- ["unicodeslot"]=0xFF90, -- ミ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH KATAKANA LETTER MI",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x30DF },
+ unicodeslot=0xFF90,
},
[0xFF91]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH KATAKANA LETTER MU",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x30E0 },
- ["unicodeslot"]=0xFF91, -- ム
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH KATAKANA LETTER MU",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x30E0 },
+ unicodeslot=0xFF91,
},
[0xFF92]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH KATAKANA LETTER ME",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x30E1 },
- ["unicodeslot"]=0xFF92, -- メ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH KATAKANA LETTER ME",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x30E1 },
+ unicodeslot=0xFF92,
},
[0xFF93]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH KATAKANA LETTER MO",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x30E2 },
- ["unicodeslot"]=0xFF93, -- モ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH KATAKANA LETTER MO",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x30E2 },
+ unicodeslot=0xFF93,
},
[0xFF94]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH KATAKANA LETTER YA",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x30E4 },
- ["unicodeslot"]=0xFF94, -- ヤ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH KATAKANA LETTER YA",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x30E4 },
+ unicodeslot=0xFF94,
},
[0xFF95]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH KATAKANA LETTER YU",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x30E6 },
- ["unicodeslot"]=0xFF95, -- ユ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH KATAKANA LETTER YU",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x30E6 },
+ unicodeslot=0xFF95,
},
[0xFF96]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH KATAKANA LETTER YO",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x30E8 },
- ["unicodeslot"]=0xFF96, -- ヨ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH KATAKANA LETTER YO",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x30E8 },
+ unicodeslot=0xFF96,
},
[0xFF97]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH KATAKANA LETTER RA",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x30E9 },
- ["unicodeslot"]=0xFF97, -- ラ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH KATAKANA LETTER RA",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x30E9 },
+ unicodeslot=0xFF97,
},
[0xFF98]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH KATAKANA LETTER RI",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x30EA },
- ["unicodeslot"]=0xFF98, -- リ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH KATAKANA LETTER RI",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x30EA },
+ unicodeslot=0xFF98,
},
[0xFF99]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH KATAKANA LETTER RU",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x30EB },
- ["unicodeslot"]=0xFF99, -- ル
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH KATAKANA LETTER RU",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x30EB },
+ unicodeslot=0xFF99,
},
[0xFF9A]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH KATAKANA LETTER RE",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x30EC },
- ["unicodeslot"]=0xFF9A, -- レ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH KATAKANA LETTER RE",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x30EC },
+ unicodeslot=0xFF9A,
},
[0xFF9B]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH KATAKANA LETTER RO",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x30ED },
- ["unicodeslot"]=0xFF9B, -- ロ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH KATAKANA LETTER RO",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x30ED },
+ unicodeslot=0xFF9B,
},
[0xFF9C]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH KATAKANA LETTER WA",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x30EF },
- ["unicodeslot"]=0xFF9C, -- ワ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH KATAKANA LETTER WA",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x30EF },
+ unicodeslot=0xFF9C,
},
[0xFF9D]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH KATAKANA LETTER N",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x30F3 },
- ["unicodeslot"]=0xFF9D, -- ン
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH KATAKANA LETTER N",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x30F3 },
+ unicodeslot=0xFF9D,
},
[0xFF9E]={
- ["category"]="lm",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH KATAKANA VOICED SOUND MARK",
- ["linebreak"]="ns",
- ["specials"]={ "narrow", 0x3099 },
- ["unicodeslot"]=0xFF9E, -- ゙
+ category="lm",
+ cjkwd="h",
+ description="HALFWIDTH KATAKANA VOICED SOUND MARK",
+ direction="l",
+ linebreak="ns",
+ specials={ "narrow", 0x3099 },
+ unicodeslot=0xFF9E,
},
[0xFF9F]={
- ["category"]="lm",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK",
- ["linebreak"]="ns",
- ["specials"]={ "narrow", 0x309A },
- ["unicodeslot"]=0xFF9F, -- ゚
+ category="lm",
+ cjkwd="h",
+ description="HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK",
+ direction="l",
+ linebreak="ns",
+ specials={ "narrow", 0x309A },
+ unicodeslot=0xFF9F,
},
[0xFFA0]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH HANGUL FILLER",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x3164 },
- ["unicodeslot"]=0xFFA0, -- ᅠ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH HANGUL FILLER",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x3164 },
+ unicodeslot=0xFFA0,
},
[0xFFA1]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH HANGUL LETTER KIYEOK",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x3131 },
- ["unicodeslot"]=0xFFA1, -- ᄀ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH HANGUL LETTER KIYEOK",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x3131 },
+ unicodeslot=0xFFA1,
},
[0xFFA2]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH HANGUL LETTER SSANGKIYEOK",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x3132 },
- ["unicodeslot"]=0xFFA2, -- ᄁ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH HANGUL LETTER SSANGKIYEOK",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x3132 },
+ unicodeslot=0xFFA2,
},
[0xFFA3]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH HANGUL LETTER KIYEOK-SIOS",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x3133 },
- ["unicodeslot"]=0xFFA3, -- ᆪ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH HANGUL LETTER KIYEOK-SIOS",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x3133 },
+ unicodeslot=0xFFA3,
},
[0xFFA4]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH HANGUL LETTER NIEUN",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x3134 },
- ["unicodeslot"]=0xFFA4, -- ᄂ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH HANGUL LETTER NIEUN",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x3134 },
+ unicodeslot=0xFFA4,
},
[0xFFA5]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH HANGUL LETTER NIEUN-CIEUC",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x3135 },
- ["unicodeslot"]=0xFFA5, -- ᆬ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH HANGUL LETTER NIEUN-CIEUC",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x3135 },
+ unicodeslot=0xFFA5,
},
[0xFFA6]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH HANGUL LETTER NIEUN-HIEUH",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x3136 },
- ["unicodeslot"]=0xFFA6, -- ᆭ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH HANGUL LETTER NIEUN-HIEUH",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x3136 },
+ unicodeslot=0xFFA6,
},
[0xFFA7]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH HANGUL LETTER TIKEUT",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x3137 },
- ["unicodeslot"]=0xFFA7, -- ᄃ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH HANGUL LETTER TIKEUT",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x3137 },
+ unicodeslot=0xFFA7,
},
[0xFFA8]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH HANGUL LETTER SSANGTIKEUT",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x3138 },
- ["unicodeslot"]=0xFFA8, -- ᄄ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH HANGUL LETTER SSANGTIKEUT",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x3138 },
+ unicodeslot=0xFFA8,
},
[0xFFA9]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH HANGUL LETTER RIEUL",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x3139 },
- ["unicodeslot"]=0xFFA9, -- ᄅ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH HANGUL LETTER RIEUL",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x3139 },
+ unicodeslot=0xFFA9,
},
[0xFFAA]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH HANGUL LETTER RIEUL-KIYEOK",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x313A },
- ["unicodeslot"]=0xFFAA, -- ᆰ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH HANGUL LETTER RIEUL-KIYEOK",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x313A },
+ unicodeslot=0xFFAA,
},
[0xFFAB]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH HANGUL LETTER RIEUL-MIEUM",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x313B },
- ["unicodeslot"]=0xFFAB, -- ᆱ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH HANGUL LETTER RIEUL-MIEUM",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x313B },
+ unicodeslot=0xFFAB,
},
[0xFFAC]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH HANGUL LETTER RIEUL-PIEUP",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x313C },
- ["unicodeslot"]=0xFFAC, -- ᆲ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH HANGUL LETTER RIEUL-PIEUP",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x313C },
+ unicodeslot=0xFFAC,
},
[0xFFAD]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH HANGUL LETTER RIEUL-SIOS",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x313D },
- ["unicodeslot"]=0xFFAD, -- ᆳ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH HANGUL LETTER RIEUL-SIOS",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x313D },
+ unicodeslot=0xFFAD,
},
[0xFFAE]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH HANGUL LETTER RIEUL-THIEUTH",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x313E },
- ["unicodeslot"]=0xFFAE, -- ᆴ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH HANGUL LETTER RIEUL-THIEUTH",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x313E },
+ unicodeslot=0xFFAE,
},
[0xFFAF]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH HANGUL LETTER RIEUL-PHIEUPH",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x313F },
- ["unicodeslot"]=0xFFAF, -- ᆵ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH HANGUL LETTER RIEUL-PHIEUPH",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x313F },
+ unicodeslot=0xFFAF,
},
[0xFFB0]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH HANGUL LETTER RIEUL-HIEUH",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x3140 },
- ["unicodeslot"]=0xFFB0, -- ᄚ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH HANGUL LETTER RIEUL-HIEUH",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x3140 },
+ unicodeslot=0xFFB0,
},
[0xFFB1]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH HANGUL LETTER MIEUM",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x3141 },
- ["unicodeslot"]=0xFFB1, -- ᄆ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH HANGUL LETTER MIEUM",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x3141 },
+ unicodeslot=0xFFB1,
},
[0xFFB2]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH HANGUL LETTER PIEUP",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x3142 },
- ["unicodeslot"]=0xFFB2, -- ᄇ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH HANGUL LETTER PIEUP",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x3142 },
+ unicodeslot=0xFFB2,
},
[0xFFB3]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH HANGUL LETTER SSANGPIEUP",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x3143 },
- ["unicodeslot"]=0xFFB3, -- ᄈ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH HANGUL LETTER SSANGPIEUP",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x3143 },
+ unicodeslot=0xFFB3,
},
[0xFFB4]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH HANGUL LETTER PIEUP-SIOS",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x3144 },
- ["unicodeslot"]=0xFFB4, -- ᄡ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH HANGUL LETTER PIEUP-SIOS",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x3144 },
+ unicodeslot=0xFFB4,
},
[0xFFB5]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH HANGUL LETTER SIOS",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x3145 },
- ["unicodeslot"]=0xFFB5, -- ᄉ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH HANGUL LETTER SIOS",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x3145 },
+ unicodeslot=0xFFB5,
},
[0xFFB6]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH HANGUL LETTER SSANGSIOS",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x3146 },
- ["unicodeslot"]=0xFFB6, -- ᄊ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH HANGUL LETTER SSANGSIOS",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x3146 },
+ unicodeslot=0xFFB6,
},
[0xFFB7]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH HANGUL LETTER IEUNG",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x3147 },
- ["unicodeslot"]=0xFFB7, -- ᄋ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH HANGUL LETTER IEUNG",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x3147 },
+ unicodeslot=0xFFB7,
},
[0xFFB8]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH HANGUL LETTER CIEUC",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x3148 },
- ["unicodeslot"]=0xFFB8, -- ᄌ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH HANGUL LETTER CIEUC",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x3148 },
+ unicodeslot=0xFFB8,
},
[0xFFB9]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH HANGUL LETTER SSANGCIEUC",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x3149 },
- ["unicodeslot"]=0xFFB9, -- ᄍ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH HANGUL LETTER SSANGCIEUC",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x3149 },
+ unicodeslot=0xFFB9,
},
[0xFFBA]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH HANGUL LETTER CHIEUCH",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x314A },
- ["unicodeslot"]=0xFFBA, -- ᄎ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH HANGUL LETTER CHIEUCH",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x314A },
+ unicodeslot=0xFFBA,
},
[0xFFBB]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH HANGUL LETTER KHIEUKH",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x314B },
- ["unicodeslot"]=0xFFBB, -- ᄏ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH HANGUL LETTER KHIEUKH",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x314B },
+ unicodeslot=0xFFBB,
},
[0xFFBC]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH HANGUL LETTER THIEUTH",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x314C },
- ["unicodeslot"]=0xFFBC, -- ᄐ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH HANGUL LETTER THIEUTH",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x314C },
+ unicodeslot=0xFFBC,
},
[0xFFBD]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH HANGUL LETTER PHIEUPH",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x314D },
- ["unicodeslot"]=0xFFBD, -- ᄑ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH HANGUL LETTER PHIEUPH",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x314D },
+ unicodeslot=0xFFBD,
},
[0xFFBE]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH HANGUL LETTER HIEUH",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x314E },
- ["unicodeslot"]=0xFFBE, -- ᄒ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH HANGUL LETTER HIEUH",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x314E },
+ unicodeslot=0xFFBE,
},
[0xFFC2]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH HANGUL LETTER A",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x314F },
- ["unicodeslot"]=0xFFC2, -- ᅡ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH HANGUL LETTER A",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x314F },
+ unicodeslot=0xFFC2,
},
[0xFFC3]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH HANGUL LETTER AE",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x3150 },
- ["unicodeslot"]=0xFFC3, -- ᅢ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH HANGUL LETTER AE",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x3150 },
+ unicodeslot=0xFFC3,
},
[0xFFC4]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH HANGUL LETTER YA",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x3151 },
- ["unicodeslot"]=0xFFC4, -- ᅣ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH HANGUL LETTER YA",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x3151 },
+ unicodeslot=0xFFC4,
},
[0xFFC5]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH HANGUL LETTER YAE",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x3152 },
- ["unicodeslot"]=0xFFC5, -- ᅤ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH HANGUL LETTER YAE",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x3152 },
+ unicodeslot=0xFFC5,
},
[0xFFC6]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH HANGUL LETTER EO",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x3153 },
- ["unicodeslot"]=0xFFC6, -- ᅥ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH HANGUL LETTER EO",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x3153 },
+ unicodeslot=0xFFC6,
},
[0xFFC7]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH HANGUL LETTER E",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x3154 },
- ["unicodeslot"]=0xFFC7, -- ᅦ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH HANGUL LETTER E",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x3154 },
+ unicodeslot=0xFFC7,
},
[0xFFCA]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH HANGUL LETTER YEO",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x3155 },
- ["unicodeslot"]=0xFFCA, -- ᅧ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH HANGUL LETTER YEO",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x3155 },
+ unicodeslot=0xFFCA,
},
[0xFFCB]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH HANGUL LETTER YE",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x3156 },
- ["unicodeslot"]=0xFFCB, -- ᅨ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH HANGUL LETTER YE",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x3156 },
+ unicodeslot=0xFFCB,
},
[0xFFCC]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH HANGUL LETTER O",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x3157 },
- ["unicodeslot"]=0xFFCC, -- ᅩ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH HANGUL LETTER O",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x3157 },
+ unicodeslot=0xFFCC,
},
[0xFFCD]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH HANGUL LETTER WA",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x3158 },
- ["unicodeslot"]=0xFFCD, -- ᅪ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH HANGUL LETTER WA",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x3158 },
+ unicodeslot=0xFFCD,
},
[0xFFCE]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH HANGUL LETTER WAE",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x3159 },
- ["unicodeslot"]=0xFFCE, -- ᅫ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH HANGUL LETTER WAE",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x3159 },
+ unicodeslot=0xFFCE,
},
[0xFFCF]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH HANGUL LETTER OE",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x315A },
- ["unicodeslot"]=0xFFCF, -- ᅬ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH HANGUL LETTER OE",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x315A },
+ unicodeslot=0xFFCF,
},
[0xFFD2]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH HANGUL LETTER YO",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x315B },
- ["unicodeslot"]=0xFFD2, -- ᅭ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH HANGUL LETTER YO",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x315B },
+ unicodeslot=0xFFD2,
},
[0xFFD3]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH HANGUL LETTER U",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x315C },
- ["unicodeslot"]=0xFFD3, -- ᅮ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH HANGUL LETTER U",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x315C },
+ unicodeslot=0xFFD3,
},
[0xFFD4]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH HANGUL LETTER WEO",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x315D },
- ["unicodeslot"]=0xFFD4, -- ᅯ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH HANGUL LETTER WEO",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x315D },
+ unicodeslot=0xFFD4,
},
[0xFFD5]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH HANGUL LETTER WE",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x315E },
- ["unicodeslot"]=0xFFD5, -- ᅰ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH HANGUL LETTER WE",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x315E },
+ unicodeslot=0xFFD5,
},
[0xFFD6]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH HANGUL LETTER WI",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x315F },
- ["unicodeslot"]=0xFFD6, -- ᅱ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH HANGUL LETTER WI",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x315F },
+ unicodeslot=0xFFD6,
},
[0xFFD7]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH HANGUL LETTER YU",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x3160 },
- ["unicodeslot"]=0xFFD7, -- ᅲ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH HANGUL LETTER YU",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x3160 },
+ unicodeslot=0xFFD7,
},
[0xFFDA]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH HANGUL LETTER EU",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x3161 },
- ["unicodeslot"]=0xFFDA, -- ᅳ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH HANGUL LETTER EU",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x3161 },
+ unicodeslot=0xFFDA,
},
[0xFFDB]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH HANGUL LETTER YI",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x3162 },
- ["unicodeslot"]=0xFFDB, -- ᅴ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH HANGUL LETTER YI",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x3162 },
+ unicodeslot=0xFFDB,
},
[0xFFDC]={
- ["category"]="lo",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH HANGUL LETTER I",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x3163 },
- ["unicodeslot"]=0xFFDC, -- ᅵ
+ category="lo",
+ cjkwd="h",
+ description="HALFWIDTH HANGUL LETTER I",
+ direction="l",
+ linebreak="al",
+ specials={ "narrow", 0x3163 },
+ unicodeslot=0xFFDC,
},
[0xFFE0]={
- ["category"]="sc",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH CENT SIGN",
- ["linebreak"]="po",
- ["specials"]={ "wide", 0x00A2 },
- ["unicodeslot"]=0xFFE0, -- ¢
+ category="sc",
+ cjkwd="f",
+ description="FULLWIDTH CENT SIGN",
+ direction="et",
+ linebreak="po",
+ specials={ "wide", 0x00A2 },
+ unicodeslot=0xFFE0,
},
[0xFFE1]={
- ["category"]="sc",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH POUND SIGN",
- ["linebreak"]="pr",
- ["specials"]={ "wide", 0x00A3 },
- ["unicodeslot"]=0xFFE1, -- £
+ category="sc",
+ cjkwd="f",
+ description="FULLWIDTH POUND SIGN",
+ direction="et",
+ linebreak="pr",
+ specials={ "wide", 0x00A3 },
+ unicodeslot=0xFFE1,
},
[0xFFE2]={
- ["category"]="sm",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH NOT SIGN",
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x00AC },
- ["unicodeslot"]=0xFFE2, -- ¬
+ category="sm",
+ cjkwd="f",
+ description="FULLWIDTH NOT SIGN",
+ direction="on",
+ linebreak="id",
+ specials={ "wide", 0x00AC },
+ unicodeslot=0xFFE2,
},
[0xFFE3]={
- ["category"]="sk",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH MACRON",
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x00AF },
- ["unicodeslot"]=0xFFE3, --  ̄
+ category="sk",
+ cjkwd="f",
+ description="FULLWIDTH MACRON",
+ direction="on",
+ linebreak="id",
+ specials={ "wide", 0x00AF },
+ unicodeslot=0xFFE3,
},
[0xFFE4]={
- ["category"]="so",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH BROKEN BAR",
- ["linebreak"]="id",
- ["specials"]={ "wide", 0x00A6 },
- ["unicodeslot"]=0xFFE4, -- ¦
+ category="so",
+ cjkwd="f",
+ description="FULLWIDTH BROKEN BAR",
+ direction="on",
+ linebreak="id",
+ specials={ "wide", 0x00A6 },
+ unicodeslot=0xFFE4,
},
[0xFFE5]={
- ["category"]="sc",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH YEN SIGN",
- ["linebreak"]="pr",
- ["specials"]={ "wide", 0x00A5 },
- ["unicodeslot"]=0xFFE5, -- ¥
+ category="sc",
+ cjkwd="f",
+ description="FULLWIDTH YEN SIGN",
+ direction="et",
+ linebreak="pr",
+ specials={ "wide", 0x00A5 },
+ unicodeslot=0xFFE5,
},
[0xFFE6]={
- ["category"]="sc",
- ["cjkwd"]="f",
- ["description"]="FULLWIDTH WON SIGN",
- ["linebreak"]="pr",
- ["specials"]={ "wide", 0x20A9 },
- ["unicodeslot"]=0xFFE6, -- ₩
+ category="sc",
+ cjkwd="f",
+ description="FULLWIDTH WON SIGN",
+ direction="et",
+ linebreak="pr",
+ specials={ "wide", 0x20A9 },
+ unicodeslot=0xFFE6,
},
[0xFFE8]={
- ["category"]="so",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH FORMS LIGHT VERTICAL",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x2502 },
- ["unicodeslot"]=0xFFE8, -- │
+ category="so",
+ cjkwd="h",
+ description="HALFWIDTH FORMS LIGHT VERTICAL",
+ direction="on",
+ linebreak="al",
+ specials={ "narrow", 0x2502 },
+ unicodeslot=0xFFE8,
},
[0xFFE9]={
- ["category"]="sm",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH LEFTWARDS ARROW",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x2190 },
- ["unicodeslot"]=0xFFE9, -- ←
+ category="sm",
+ cjkwd="h",
+ description="HALFWIDTH LEFTWARDS ARROW",
+ direction="on",
+ linebreak="al",
+ specials={ "narrow", 0x2190 },
+ unicodeslot=0xFFE9,
},
[0xFFEA]={
- ["category"]="sm",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH UPWARDS ARROW",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x2191 },
- ["unicodeslot"]=0xFFEA, -- ↑
+ category="sm",
+ cjkwd="h",
+ description="HALFWIDTH UPWARDS ARROW",
+ direction="on",
+ linebreak="al",
+ specials={ "narrow", 0x2191 },
+ unicodeslot=0xFFEA,
},
[0xFFEB]={
- ["category"]="sm",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH RIGHTWARDS ARROW",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x2192 },
- ["unicodeslot"]=0xFFEB, -- →
+ category="sm",
+ cjkwd="h",
+ description="HALFWIDTH RIGHTWARDS ARROW",
+ direction="on",
+ linebreak="al",
+ specials={ "narrow", 0x2192 },
+ unicodeslot=0xFFEB,
},
[0xFFEC]={
- ["category"]="sm",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH DOWNWARDS ARROW",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x2193 },
- ["unicodeslot"]=0xFFEC, -- ↓
+ category="sm",
+ cjkwd="h",
+ description="HALFWIDTH DOWNWARDS ARROW",
+ direction="on",
+ linebreak="al",
+ specials={ "narrow", 0x2193 },
+ unicodeslot=0xFFEC,
},
[0xFFED]={
- ["category"]="so",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH BLACK SQUARE",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x25A0 },
- ["unicodeslot"]=0xFFED, -- ■
+ category="so",
+ cjkwd="h",
+ description="HALFWIDTH BLACK SQUARE",
+ direction="on",
+ linebreak="al",
+ specials={ "narrow", 0x25A0 },
+ unicodeslot=0xFFED,
},
[0xFFEE]={
- ["category"]="so",
- ["cjkwd"]="h",
- ["description"]="HALFWIDTH WHITE CIRCLE",
- ["linebreak"]="al",
- ["specials"]={ "narrow", 0x25CB },
- ["unicodeslot"]=0xFFEE, -- ○
+ category="so",
+ cjkwd="h",
+ description="HALFWIDTH WHITE CIRCLE",
+ direction="on",
+ linebreak="al",
+ specials={ "narrow", 0x25CB },
+ unicodeslot=0xFFEE,
},
[0xFFF9]={
- ["category"]="cf",
- ["description"]="INTERLINEAR ANNOTATION ANCHOR",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xFFF9, -- 
+ category="cf",
+ description="INTERLINEAR ANNOTATION ANCHOR",
+ direction="on",
+ linebreak="cm",
+ unicodeslot=0xFFF9,
},
[0xFFFA]={
- ["category"]="cf",
- ["description"]="INTERLINEAR ANNOTATION SEPARATOR",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xFFFA, -- 
+ category="cf",
+ description="INTERLINEAR ANNOTATION SEPARATOR",
+ direction="on",
+ linebreak="cm",
+ unicodeslot=0xFFFA,
},
[0xFFFB]={
- ["category"]="cf",
- ["description"]="INTERLINEAR ANNOTATION TERMINATOR",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xFFFB, -- 
+ category="cf",
+ description="INTERLINEAR ANNOTATION TERMINATOR",
+ direction="on",
+ linebreak="cm",
+ unicodeslot=0xFFFB,
},
[0xFFFC]={
- ["category"]="so",
- ["description"]="OBJECT REPLACEMENT CHARACTER",
- ["linebreak"]="cb",
- ["unicodeslot"]=0xFFFC, -- 
+ category="so",
+ description="OBJECT REPLACEMENT CHARACTER",
+ direction="on",
+ linebreak="cb",
+ unicodeslot=0xFFFC,
},
[0xFFFD]={
- ["category"]="so",
- ["cjkwd"]="a",
- ["description"]="REPLACEMENT CHARACTER",
- ["linebreak"]="ai",
- ["unicodeslot"]=0xFFFD, -- �
+ category="so",
+ cjkwd="a",
+ description="REPLACEMENT CHARACTER",
+ direction="on",
+ linebreak="ai",
+ unicodeslot=0xFFFD,
},
[0x10000]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x0008 A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10000, -- 𐀀
+ category="lo",
+ description="LINEAR B SYLLABLE B0x0008 A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10000,
},
[0x10001]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x0026 E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10001, -- 𐀁
+ category="lo",
+ description="LINEAR B SYLLABLE B0x0026 E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10001,
},
[0x10002]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x001C I",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10002, -- 𐀂
+ category="lo",
+ description="LINEAR B SYLLABLE B0x001C I",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10002,
},
[0x10003]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x003D O",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10003, -- 𐀃
+ category="lo",
+ description="LINEAR B SYLLABLE B0x003D O",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10003,
},
[0x10004]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x000A U",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10004, -- 𐀄
+ category="lo",
+ description="LINEAR B SYLLABLE B0x000A U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10004,
},
[0x10005]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x0001 DA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10005, -- 𐀅
+ category="lo",
+ description="LINEAR B SYLLABLE B0x0001 DA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10005,
},
[0x10006]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x002D DE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10006, -- 𐀆
+ category="lo",
+ description="LINEAR B SYLLABLE B0x002D DE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10006,
},
[0x10007]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x0007 DI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10007, -- 𐀇
+ category="lo",
+ description="LINEAR B SYLLABLE B0x0007 DI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10007,
},
[0x10008]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x000E DO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10008, -- 𐀈
+ category="lo",
+ description="LINEAR B SYLLABLE B0x000E DO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10008,
},
[0x10009]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x0033 DU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10009, -- 𐀉
+ category="lo",
+ description="LINEAR B SYLLABLE B0x0033 DU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10009,
},
[0x1000A]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x0039 JA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1000A, -- 𐀊
+ category="lo",
+ description="LINEAR B SYLLABLE B0x0039 JA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1000A,
},
[0x1000B]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x002E JE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1000B, -- 𐀋
+ category="lo",
+ description="LINEAR B SYLLABLE B0x002E JE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1000B,
},
[0x1000D]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x0024 JO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1000D, -- 𐀍
+ category="lo",
+ description="LINEAR B SYLLABLE B0x0024 JO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1000D,
},
[0x1000E]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x0041 JU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1000E, -- 𐀎
+ category="lo",
+ description="LINEAR B SYLLABLE B0x0041 JU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1000E,
},
[0x1000F]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x004D KA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1000F, -- 𐀏
+ category="lo",
+ description="LINEAR B SYLLABLE B0x004D KA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1000F,
},
[0x10010]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x002C KE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10010, -- 𐀐
+ category="lo",
+ description="LINEAR B SYLLABLE B0x002C KE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10010,
},
[0x10011]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x0043 KI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10011, -- 𐀑
+ category="lo",
+ description="LINEAR B SYLLABLE B0x0043 KI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10011,
},
[0x10012]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x0046 KO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10012, -- 𐀒
+ category="lo",
+ description="LINEAR B SYLLABLE B0x0046 KO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10012,
},
[0x10013]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x0051 KU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10013, -- 𐀓
+ category="lo",
+ description="LINEAR B SYLLABLE B0x0051 KU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10013,
},
[0x10014]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x0050 MA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10014, -- 𐀔
+ category="lo",
+ description="LINEAR B SYLLABLE B0x0050 MA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10014,
},
[0x10015]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x000D ME",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10015, -- 𐀕
+ category="lo",
+ description="LINEAR B SYLLABLE B0x000D ME",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10015,
},
[0x10016]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x0049 MI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10016, -- 𐀖
+ category="lo",
+ description="LINEAR B SYLLABLE B0x0049 MI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10016,
},
[0x10017]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x000F MO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10017, -- 𐀗
+ category="lo",
+ description="LINEAR B SYLLABLE B0x000F MO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10017,
},
[0x10018]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x0017 MU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10018, -- 𐀘
+ category="lo",
+ description="LINEAR B SYLLABLE B0x0017 MU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10018,
},
[0x10019]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x0006 NA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10019, -- 𐀙
+ category="lo",
+ description="LINEAR B SYLLABLE B0x0006 NA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10019,
},
[0x1001A]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x0018 NE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1001A, -- 𐀚
+ category="lo",
+ description="LINEAR B SYLLABLE B0x0018 NE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1001A,
},
[0x1001B]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x001E NI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1001B, -- 𐀛
+ category="lo",
+ description="LINEAR B SYLLABLE B0x001E NI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1001B,
},
[0x1001C]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x0034 NO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1001C, -- 𐀜
+ category="lo",
+ description="LINEAR B SYLLABLE B0x0034 NO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1001C,
},
[0x1001D]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x0037 NU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1001D, -- 𐀝
+ category="lo",
+ description="LINEAR B SYLLABLE B0x0037 NU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1001D,
},
[0x1001E]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x0003 PA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1001E, -- 𐀞
+ category="lo",
+ description="LINEAR B SYLLABLE B0x0003 PA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1001E,
},
[0x1001F]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x0048 PE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1001F, -- 𐀟
+ category="lo",
+ description="LINEAR B SYLLABLE B0x0048 PE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1001F,
},
[0x10020]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x0027 PI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10020, -- 𐀠
+ category="lo",
+ description="LINEAR B SYLLABLE B0x0027 PI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10020,
},
[0x10021]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x000B PO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10021, -- 𐀡
+ category="lo",
+ description="LINEAR B SYLLABLE B0x000B PO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10021,
},
[0x10022]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x0032 PU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10022, -- 𐀢
+ category="lo",
+ description="LINEAR B SYLLABLE B0x0032 PU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10022,
},
[0x10023]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x0010 QA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10023, -- 𐀣
+ category="lo",
+ description="LINEAR B SYLLABLE B0x0010 QA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10023,
},
[0x10024]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x004E QE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10024, -- 𐀤
+ category="lo",
+ description="LINEAR B SYLLABLE B0x004E QE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10024,
},
[0x10025]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x0015 QI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10025, -- 𐀥
+ category="lo",
+ description="LINEAR B SYLLABLE B0x0015 QI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10025,
},
[0x10026]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x0020 QO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10026, -- 𐀦
+ category="lo",
+ description="LINEAR B SYLLABLE B0x0020 QO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10026,
},
[0x10028]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x003C RA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10028, -- 𐀨
+ category="lo",
+ description="LINEAR B SYLLABLE B0x003C RA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10028,
},
[0x10029]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x001B RE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10029, -- 𐀩
+ category="lo",
+ description="LINEAR B SYLLABLE B0x001B RE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10029,
},
[0x1002A]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x0035 RI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1002A, -- 𐀪
+ category="lo",
+ description="LINEAR B SYLLABLE B0x0035 RI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1002A,
},
[0x1002B]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x0002 RO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1002B, -- 𐀫
+ category="lo",
+ description="LINEAR B SYLLABLE B0x0002 RO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1002B,
},
[0x1002C]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x001A RU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1002C, -- 𐀬
+ category="lo",
+ description="LINEAR B SYLLABLE B0x001A RU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1002C,
},
[0x1002D]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x001F SA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1002D, -- 𐀭
+ category="lo",
+ description="LINEAR B SYLLABLE B0x001F SA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1002D,
},
[0x1002E]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x0009 SE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1002E, -- 𐀮
+ category="lo",
+ description="LINEAR B SYLLABLE B0x0009 SE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1002E,
},
[0x1002F]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x0029 SI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1002F, -- 𐀯
+ category="lo",
+ description="LINEAR B SYLLABLE B0x0029 SI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1002F,
},
[0x10030]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x000C SO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10030, -- 𐀰
+ category="lo",
+ description="LINEAR B SYLLABLE B0x000C SO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10030,
},
[0x10031]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x003A SU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10031, -- 𐀱
+ category="lo",
+ description="LINEAR B SYLLABLE B0x003A SU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10031,
},
[0x10032]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x003B TA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10032, -- 𐀲
+ category="lo",
+ description="LINEAR B SYLLABLE B0x003B TA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10032,
},
[0x10033]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x0004 TE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10033, -- 𐀳
+ category="lo",
+ description="LINEAR B SYLLABLE B0x0004 TE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10033,
},
[0x10034]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x0025 TI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10034, -- 𐀴
+ category="lo",
+ description="LINEAR B SYLLABLE B0x0025 TI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10034,
},
[0x10035]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x0005 TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10035, -- 𐀵
+ category="lo",
+ description="LINEAR B SYLLABLE B0x0005 TO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10035,
},
[0x10036]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x0045 TU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10036, -- 𐀶
+ category="lo",
+ description="LINEAR B SYLLABLE B0x0045 TU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10036,
},
[0x10037]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x0036 WA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10037, -- 𐀷
+ category="lo",
+ description="LINEAR B SYLLABLE B0x0036 WA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10037,
},
[0x10038]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x004B WE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10038, -- 𐀸
+ category="lo",
+ description="LINEAR B SYLLABLE B0x004B WE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10038,
},
[0x10039]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x0028 WI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10039, -- 𐀹
+ category="lo",
+ description="LINEAR B SYLLABLE B0x0028 WI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10039,
},
[0x1003A]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x002A WO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1003A, -- 𐀺
+ category="lo",
+ description="LINEAR B SYLLABLE B0x002A WO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1003A,
},
[0x1003C]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x0011 ZA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1003C, -- 𐀼
+ category="lo",
+ description="LINEAR B SYLLABLE B0x0011 ZA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1003C,
},
[0x1003D]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x004A ZE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1003D, -- 𐀽
+ category="lo",
+ description="LINEAR B SYLLABLE B0x004A ZE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1003D,
},
[0x1003F]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x0014 ZO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1003F, -- 𐀿
+ category="lo",
+ description="LINEAR B SYLLABLE B0x0014 ZO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1003F,
},
[0x10040]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x0019 A0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10040, -- 𐁀
+ category="lo",
+ description="LINEAR B SYLLABLE B0x0019 A0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10040,
},
[0x10041]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x002B A0x0003",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10041, -- 𐁁
+ category="lo",
+ description="LINEAR B SYLLABLE B0x002B A0x0003",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10041,
},
[0x10042]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x0055 AU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10042, -- 𐁂
+ category="lo",
+ description="LINEAR B SYLLABLE B0x0055 AU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10042,
},
[0x10043]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x0047 DWE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10043, -- 𐁃
+ category="lo",
+ description="LINEAR B SYLLABLE B0x0047 DWE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10043,
},
[0x10044]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x005A DWO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10044, -- 𐁄
+ category="lo",
+ description="LINEAR B SYLLABLE B0x005A DWO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10044,
},
[0x10045]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x0030 NWA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10045, -- 𐁅
+ category="lo",
+ description="LINEAR B SYLLABLE B0x0030 NWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10045,
},
[0x10046]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x001D PU0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10046, -- 𐁆
+ category="lo",
+ description="LINEAR B SYLLABLE B0x001D PU0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10046,
},
[0x10047]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x003E PTE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10047, -- 𐁇
+ category="lo",
+ description="LINEAR B SYLLABLE B0x003E PTE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10047,
},
[0x10048]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x004C RA0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10048, -- 𐁈
+ category="lo",
+ description="LINEAR B SYLLABLE B0x004C RA0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10048,
},
[0x10049]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x0021 RA0x0003",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10049, -- 𐁉
+ category="lo",
+ description="LINEAR B SYLLABLE B0x0021 RA0x0003",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10049,
},
[0x1004A]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x0044 RO0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1004A, -- 𐁊
+ category="lo",
+ description="LINEAR B SYLLABLE B0x0044 RO0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1004A,
},
[0x1004B]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x0042 TA0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1004B, -- 𐁋
+ category="lo",
+ description="LINEAR B SYLLABLE B0x0042 TA0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1004B,
},
[0x1004C]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x0057 TWE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1004C, -- 𐁌
+ category="lo",
+ description="LINEAR B SYLLABLE B0x0057 TWE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1004C,
},
[0x1004D]={
- ["category"]="lo",
- ["description"]="LINEAR B SYLLABLE B0x005B TWO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1004D, -- 𐁍
+ category="lo",
+ description="LINEAR B SYLLABLE B0x005B TWO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1004D,
},
[0x10050]={
- ["category"]="lo",
- ["description"]="LINEAR B SYMBOL B0x0012",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10050, -- 𐁐
+ category="lo",
+ description="LINEAR B SYMBOL B0x0012",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10050,
},
[0x10051]={
- ["category"]="lo",
- ["description"]="LINEAR B SYMBOL B0x0013",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10051, -- 𐁑
+ category="lo",
+ description="LINEAR B SYMBOL B0x0013",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10051,
},
[0x10052]={
- ["category"]="lo",
- ["description"]="LINEAR B SYMBOL B0x0016",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10052, -- 𐁒
+ category="lo",
+ description="LINEAR B SYMBOL B0x0016",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10052,
},
[0x10053]={
- ["category"]="lo",
- ["description"]="LINEAR B SYMBOL B0x0022",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10053, -- 𐁓
+ category="lo",
+ description="LINEAR B SYMBOL B0x0022",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10053,
},
[0x10054]={
- ["category"]="lo",
- ["description"]="LINEAR B SYMBOL B0x002F",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10054, -- 𐁔
+ category="lo",
+ description="LINEAR B SYMBOL B0x002F",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10054,
},
[0x10055]={
- ["category"]="lo",
- ["description"]="LINEAR B SYMBOL B0x0031",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10055, -- 𐁕
+ category="lo",
+ description="LINEAR B SYMBOL B0x0031",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10055,
},
[0x10056]={
- ["category"]="lo",
- ["description"]="LINEAR B SYMBOL B0x0038",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10056, -- 𐁖
+ category="lo",
+ description="LINEAR B SYMBOL B0x0038",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10056,
},
[0x10057]={
- ["category"]="lo",
- ["description"]="LINEAR B SYMBOL B0x003F",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10057, -- 𐁗
+ category="lo",
+ description="LINEAR B SYMBOL B0x003F",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10057,
},
[0x10058]={
- ["category"]="lo",
- ["description"]="LINEAR B SYMBOL B0x0040",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10058, -- 𐁘
+ category="lo",
+ description="LINEAR B SYMBOL B0x0040",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10058,
},
[0x10059]={
- ["category"]="lo",
- ["description"]="LINEAR B SYMBOL B0x004F",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10059, -- 𐁙
+ category="lo",
+ description="LINEAR B SYMBOL B0x004F",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10059,
},
[0x1005A]={
- ["category"]="lo",
- ["description"]="LINEAR B SYMBOL B0x0052",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1005A, -- 𐁚
+ category="lo",
+ description="LINEAR B SYMBOL B0x0052",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1005A,
},
[0x1005B]={
- ["category"]="lo",
- ["description"]="LINEAR B SYMBOL B0x0053",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1005B, -- 𐁛
+ category="lo",
+ description="LINEAR B SYMBOL B0x0053",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1005B,
},
[0x1005C]={
- ["category"]="lo",
- ["description"]="LINEAR B SYMBOL B0x0056",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1005C, -- 𐁜
+ category="lo",
+ description="LINEAR B SYMBOL B0x0056",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1005C,
},
[0x1005D]={
- ["category"]="lo",
- ["description"]="LINEAR B SYMBOL B0x0059",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1005D, -- 𐁝
+ category="lo",
+ description="LINEAR B SYMBOL B0x0059",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1005D,
},
[0x10080]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x0064 MAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10080, -- 𐂀
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x0064 MAN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10080,
},
[0x10081]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x0066 WOMAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10081, -- 𐂁
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x0066 WOMAN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10081,
},
[0x10082]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x0068 DEER",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10082, -- 𐂂
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x0068 DEER",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10082,
},
[0x10083]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x0069 EQUID",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10083, -- 𐂃
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x0069 EQUID",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10083,
},
[0x10084]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x0069F MARE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10084, -- 𐂄
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x0069F MARE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10084,
},
[0x10085]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x0069M STALLION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10085, -- 𐂅
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x0069M STALLION",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10085,
},
[0x10086]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x006AF EWE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10086, -- 𐂆
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x006AF EWE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10086,
},
[0x10087]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x006AM RAM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10087, -- 𐂇
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x006AM RAM",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10087,
},
[0x10088]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x006BF SHE-GOAT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10088, -- 𐂈
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x006BF SHE-GOAT",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10088,
},
[0x10089]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x006BM HE-GOAT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10089, -- 𐂉
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x006BM HE-GOAT",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10089,
},
[0x1008A]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x006CF SOW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1008A, -- 𐂊
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x006CF SOW",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1008A,
},
[0x1008B]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x006CM BOAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1008B, -- 𐂋
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x006CM BOAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1008B,
},
[0x1008C]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x006DF COW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1008C, -- 𐂌
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x006DF COW",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1008C,
},
[0x1008D]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x006DM BULL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1008D, -- 𐂍
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x006DM BULL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1008D,
},
[0x1008E]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x0078 WHEAT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1008E, -- 𐂎
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x0078 WHEAT",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1008E,
},
[0x1008F]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x0079 BARLEY",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1008F, -- 𐂏
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x0079 BARLEY",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1008F,
},
[0x10090]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x007A OLIVE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10090, -- 𐂐
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x007A OLIVE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10090,
},
[0x10091]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x007B SPICE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10091, -- 𐂑
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x007B SPICE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10091,
},
[0x10092]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x007D CYPERUS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10092, -- 𐂒
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x007D CYPERUS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10092,
},
[0x10093]={
- ["category"]="lo",
- ["description"]="LINEAR B MONOGRAM B0x007F KAPO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10093, -- 𐂓
+ category="lo",
+ description="LINEAR B MONOGRAM B0x007F KAPO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10093,
},
[0x10094]={
- ["category"]="lo",
- ["description"]="LINEAR B MONOGRAM B0x0080 KANAKO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10094, -- 𐂔
+ category="lo",
+ description="LINEAR B MONOGRAM B0x0080 KANAKO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10094,
},
[0x10095]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x0082 OIL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10095, -- 𐂕
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x0082 OIL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10095,
},
[0x10096]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x0083 WINE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10096, -- 𐂖
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x0083 WINE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10096,
},
[0x10097]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x0084",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10097, -- 𐂗
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x0084",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10097,
},
[0x10098]={
- ["category"]="lo",
- ["description"]="LINEAR B MONOGRAM B0x0085 AREPA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10098, -- 𐂘
+ category="lo",
+ description="LINEAR B MONOGRAM B0x0085 AREPA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10098,
},
[0x10099]={
- ["category"]="lo",
- ["description"]="LINEAR B MONOGRAM B0x0087 MERI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10099, -- 𐂙
+ category="lo",
+ description="LINEAR B MONOGRAM B0x0087 MERI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10099,
},
[0x1009A]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x008C BRONZE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1009A, -- 𐂚
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x008C BRONZE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1009A,
},
[0x1009B]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x008D GOLD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1009B, -- 𐂛
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x008D GOLD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1009B,
},
[0x1009C]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x008E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1009C, -- 𐂜
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x008E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1009C,
},
[0x1009D]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x0091 WOOL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1009D, -- 𐂝
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x0091 WOOL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1009D,
},
[0x1009E]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x0092",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1009E, -- 𐂞
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x0092",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1009E,
},
[0x1009F]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x0096",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1009F, -- 𐂟
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x0096",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1009F,
},
[0x100A0]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x0097 HORN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100A0, -- 𐂠
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x0097 HORN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100A0,
},
[0x100A1]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x0098",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100A1, -- 𐂡
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x0098",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100A1,
},
[0x100A2]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x0099",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100A2, -- 𐂢
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x0099",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100A2,
},
[0x100A3]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x009A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100A3, -- 𐂣
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x009A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100A3,
},
[0x100A4]={
- ["category"]="lo",
- ["description"]="LINEAR B MONOGRAM B0x009C TURO0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100A4, -- 𐂤
+ category="lo",
+ description="LINEAR B MONOGRAM B0x009C TURO0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100A4,
},
[0x100A5]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x009D",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100A5, -- 𐂥
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x009D",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100A5,
},
[0x100A6]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x009E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100A6, -- 𐂦
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x009E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100A6,
},
[0x100A7]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x009F CLOTH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100A7, -- 𐂧
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x009F CLOTH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100A7,
},
[0x100A8]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x00A0",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100A8, -- 𐂨
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x00A0",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100A8,
},
[0x100A9]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x00A1",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100A9, -- 𐂩
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x00A1",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100A9,
},
[0x100AA]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x00A2 GARMENT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100AA, -- 𐂪
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x00A2 GARMENT",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100AA,
},
[0x100AB]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x00A3 ARMOUR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100AB, -- 𐂫
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x00A3 ARMOUR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100AB,
},
[0x100AC]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x00A4",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100AC, -- 𐂬
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x00A4",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100AC,
},
[0x100AD]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x00A5",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100AD, -- 𐂭
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x00A5",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100AD,
},
[0x100AE]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x00A6",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100AE, -- 𐂮
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x00A6",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100AE,
},
[0x100AF]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x00A7",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100AF, -- 𐂯
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x00A7",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100AF,
},
[0x100B0]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x00A8",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100B0, -- 𐂰
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x00A8",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100B0,
},
[0x100B1]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x00A9",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100B1, -- 𐂱
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x00A9",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100B1,
},
[0x100B2]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x00AA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100B2, -- 𐂲
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x00AA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100B2,
},
[0x100B3]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x00AB",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100B3, -- 𐂳
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x00AB",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100B3,
},
[0x100B4]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x00AC",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100B4, -- 𐂴
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x00AC",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100B4,
},
[0x100B5]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x00AD MONTH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100B5, -- 𐂵
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x00AD MONTH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100B5,
},
[0x100B6]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x00AE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100B6, -- 𐂶
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x00AE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100B6,
},
[0x100B7]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x00B0 TREE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100B7, -- 𐂷
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x00B0 TREE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100B7,
},
[0x100B8]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x00B1",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100B8, -- 𐂸
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x00B1",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100B8,
},
[0x100B9]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x00B2",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100B9, -- 𐂹
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x00B2",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100B9,
},
[0x100BA]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x00B3",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100BA, -- 𐂺
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x00B3",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100BA,
},
[0x100BB]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x00B4",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100BB, -- 𐂻
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x00B4",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100BB,
},
[0x100BC]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x00B5",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100BC, -- 𐂼
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x00B5",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100BC,
},
[0x100BD]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x00B6",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100BD, -- 𐂽
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x00B6",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100BD,
},
[0x100BE]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x00B7",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100BE, -- 𐂾
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x00B7",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100BE,
},
[0x100BF]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x00B8",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100BF, -- 𐂿
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x00B8",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100BF,
},
[0x100C0]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x00B9",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100C0, -- 𐃀
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x00B9",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100C0,
},
[0x100C1]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x00BD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100C1, -- 𐃁
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x00BD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100C1,
},
[0x100C2]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x00BE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100C2, -- 𐃂
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x00BE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100C2,
},
[0x100C3]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x00BF HELMET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100C3, -- 𐃃
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x00BF HELMET",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100C3,
},
[0x100C4]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x00DC FOOTSTOOL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100C4, -- 𐃄
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x00DC FOOTSTOOL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100C4,
},
[0x100C5]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x00E1 BATHTUB",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100C5, -- 𐃅
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x00E1 BATHTUB",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100C5,
},
[0x100C6]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x00E6 SPEAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100C6, -- 𐃆
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x00E6 SPEAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100C6,
},
[0x100C7]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x00E7 ARROW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100C7, -- 𐃇
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x00E7 ARROW",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100C7,
},
[0x100C8]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x00E8",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100C8, -- 𐃈
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x00E8",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100C8,
},
[0x100C9]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x00E9 SWORD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100C9, -- 𐃉
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x00E9 SWORD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100C9,
},
[0x100CA]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x00EA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100CA, -- 𐃊
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x00EA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100CA,
},
[0x100CB]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x00EC",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100CB, -- 𐃋
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x00EC",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100CB,
},
[0x100CC]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x00F0 WHEELED CHARIOT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100CC, -- 𐃌
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x00F0 WHEELED CHARIOT",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100CC,
},
[0x100CD]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x00F1 CHARIOT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100CD, -- 𐃍
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x00F1 CHARIOT",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100CD,
},
[0x100CE]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x00F2 CHARIOT FRAME",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100CE, -- 𐃎
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x00F2 CHARIOT FRAME",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100CE,
},
[0x100CF]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x00F3 WHEEL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100CF, -- 𐃏
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x00F3 WHEEL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100CF,
},
[0x100D0]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x00F5",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100D0, -- 𐃐
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x00F5",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100D0,
},
[0x100D1]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x00F6",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100D1, -- 𐃑
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x00F6",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100D1,
},
[0x100D2]={
- ["category"]="lo",
- ["description"]="LINEAR B MONOGRAM B0x00F7 DIPTE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100D2, -- 𐃒
+ category="lo",
+ description="LINEAR B MONOGRAM B0x00F7 DIPTE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100D2,
},
[0x100D3]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x00F8",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100D3, -- 𐃓
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x00F8",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100D3,
},
[0x100D4]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x00F9",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100D4, -- 𐃔
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x00F9",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100D4,
},
[0x100D5]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x00FB",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100D5, -- 𐃕
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x00FB",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100D5,
},
[0x100D6]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x00FC",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100D6, -- 𐃖
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x00FC",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100D6,
},
[0x100D7]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x00FD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100D7, -- 𐃗
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x00FD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100D7,
},
[0x100D8]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x00FE DART",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100D8, -- 𐃘
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x00FE DART",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100D8,
},
[0x100D9]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x00FF",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100D9, -- 𐃙
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x00FF",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100D9,
},
[0x100DA]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x0100",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100DA, -- 𐃚
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x0100",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100DA,
},
[0x100DB]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x0101",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100DB, -- 𐃛
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x0101",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100DB,
},
[0x100DC]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x0102",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100DC, -- 𐃜
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x0102",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100DC,
},
[0x100DD]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM B0x0103",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100DD, -- 𐃝
+ category="lo",
+ description="LINEAR B IDEOGRAM B0x0103",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100DD,
},
[0x100DE]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM VESSEL B0x009B",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100DE, -- 𐃞
+ category="lo",
+ description="LINEAR B IDEOGRAM VESSEL B0x009B",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100DE,
},
[0x100DF]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM VESSEL B0x00C8",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100DF, -- 𐃟
+ category="lo",
+ description="LINEAR B IDEOGRAM VESSEL B0x00C8",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100DF,
},
[0x100E0]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM VESSEL B0x00C9",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100E0, -- 𐃠
+ category="lo",
+ description="LINEAR B IDEOGRAM VESSEL B0x00C9",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100E0,
},
[0x100E1]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM VESSEL B0x00CA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100E1, -- 𐃡
+ category="lo",
+ description="LINEAR B IDEOGRAM VESSEL B0x00CA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100E1,
},
[0x100E2]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM VESSEL B0x00CB",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100E2, -- 𐃢
+ category="lo",
+ description="LINEAR B IDEOGRAM VESSEL B0x00CB",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100E2,
},
[0x100E3]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM VESSEL B0x00CC",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100E3, -- 𐃣
+ category="lo",
+ description="LINEAR B IDEOGRAM VESSEL B0x00CC",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100E3,
},
[0x100E4]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM VESSEL B0x00CD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100E4, -- 𐃤
+ category="lo",
+ description="LINEAR B IDEOGRAM VESSEL B0x00CD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100E4,
},
[0x100E5]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM VESSEL B0x00CE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100E5, -- 𐃥
+ category="lo",
+ description="LINEAR B IDEOGRAM VESSEL B0x00CE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100E5,
},
[0x100E6]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM VESSEL B0x00CF",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100E6, -- 𐃦
+ category="lo",
+ description="LINEAR B IDEOGRAM VESSEL B0x00CF",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100E6,
},
[0x100E7]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM VESSEL B0x00D0",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100E7, -- 𐃧
+ category="lo",
+ description="LINEAR B IDEOGRAM VESSEL B0x00D0",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100E7,
},
[0x100E8]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM VESSEL B0x00D1",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100E8, -- 𐃨
+ category="lo",
+ description="LINEAR B IDEOGRAM VESSEL B0x00D1",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100E8,
},
[0x100E9]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM VESSEL B0x00D2",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100E9, -- 𐃩
+ category="lo",
+ description="LINEAR B IDEOGRAM VESSEL B0x00D2",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100E9,
},
[0x100EA]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM VESSEL B0x00D3",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100EA, -- 𐃪
+ category="lo",
+ description="LINEAR B IDEOGRAM VESSEL B0x00D3",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100EA,
},
[0x100EB]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM VESSEL B0x00D4",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100EB, -- 𐃫
+ category="lo",
+ description="LINEAR B IDEOGRAM VESSEL B0x00D4",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100EB,
},
[0x100EC]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM VESSEL B0x00D5",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100EC, -- 𐃬
+ category="lo",
+ description="LINEAR B IDEOGRAM VESSEL B0x00D5",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100EC,
},
[0x100ED]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM VESSEL B0x00D6",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100ED, -- 𐃭
+ category="lo",
+ description="LINEAR B IDEOGRAM VESSEL B0x00D6",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100ED,
},
[0x100EE]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM VESSEL B0x00D7",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100EE, -- 𐃮
+ category="lo",
+ description="LINEAR B IDEOGRAM VESSEL B0x00D7",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100EE,
},
[0x100EF]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM VESSEL B0x00D8",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100EF, -- 𐃯
+ category="lo",
+ description="LINEAR B IDEOGRAM VESSEL B0x00D8",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100EF,
},
[0x100F0]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM VESSEL B0x00D9",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100F0, -- 𐃰
+ category="lo",
+ description="LINEAR B IDEOGRAM VESSEL B0x00D9",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100F0,
},
[0x100F1]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM VESSEL B0x00DA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100F1, -- 𐃱
+ category="lo",
+ description="LINEAR B IDEOGRAM VESSEL B0x00DA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100F1,
},
[0x100F2]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM VESSEL B0x00DB",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100F2, -- 𐃲
+ category="lo",
+ description="LINEAR B IDEOGRAM VESSEL B0x00DB",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100F2,
},
[0x100F3]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM VESSEL B0x00DD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100F3, -- 𐃳
+ category="lo",
+ description="LINEAR B IDEOGRAM VESSEL B0x00DD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100F3,
},
[0x100F4]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM VESSEL B0x00DE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100F4, -- 𐃴
+ category="lo",
+ description="LINEAR B IDEOGRAM VESSEL B0x00DE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100F4,
},
[0x100F5]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM VESSEL B0x00E2",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100F5, -- 𐃵
+ category="lo",
+ description="LINEAR B IDEOGRAM VESSEL B0x00E2",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100F5,
},
[0x100F6]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM VESSEL B0x00E3",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100F6, -- 𐃶
+ category="lo",
+ description="LINEAR B IDEOGRAM VESSEL B0x00E3",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100F6,
},
[0x100F7]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM VESSEL B0x00E4",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100F7, -- 𐃷
+ category="lo",
+ description="LINEAR B IDEOGRAM VESSEL B0x00E4",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100F7,
},
[0x100F8]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM VESSEL B0x00E5",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100F8, -- 𐃸
+ category="lo",
+ description="LINEAR B IDEOGRAM VESSEL B0x00E5",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100F8,
},
[0x100F9]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM VESSEL B0x00FA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100F9, -- 𐃹
+ category="lo",
+ description="LINEAR B IDEOGRAM VESSEL B0x00FA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100F9,
},
[0x100FA]={
- ["category"]="lo",
- ["description"]="LINEAR B IDEOGRAM VESSEL B0x0131",
- ["linebreak"]="al",
- ["unicodeslot"]=0x100FA, -- 𐃺
+ category="lo",
+ description="LINEAR B IDEOGRAM VESSEL B0x0131",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x100FA,
},
[0x10100]={
- ["category"]="po",
- ["description"]="AEGEAN WORD SEPARATOR LINE",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x10100, -- 𐄀
+ category="po",
+ description="AEGEAN WORD SEPARATOR LINE",
+ direction="l",
+ linebreak="ba",
+ unicodeslot=0x10100,
},
[0x10101]={
- ["category"]="po",
- ["description"]="AEGEAN WORD SEPARATOR DOT",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x10101, -- 𐄁
+ category="po",
+ description="AEGEAN WORD SEPARATOR DOT",
+ direction="on",
+ linebreak="ba",
+ unicodeslot=0x10101,
},
[0x10102]={
- ["category"]="so",
- ["description"]="AEGEAN CHECK MARK",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x10102, -- 𐄂
+ category="so",
+ description="AEGEAN CHECK MARK",
+ direction="l",
+ linebreak="ba",
+ unicodeslot=0x10102,
},
[0x10107]={
- ["category"]="no",
- ["description"]="AEGEAN NUMBER ONE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10107, -- 𐄇
+ category="no",
+ description="AEGEAN NUMBER ONE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10107,
},
[0x10108]={
- ["category"]="no",
- ["description"]="AEGEAN NUMBER TWO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10108, -- 𐄈
+ category="no",
+ description="AEGEAN NUMBER TWO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10108,
},
[0x10109]={
- ["category"]="no",
- ["description"]="AEGEAN NUMBER THREE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10109, -- 𐄉
+ category="no",
+ description="AEGEAN NUMBER THREE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10109,
},
[0x1010A]={
- ["category"]="no",
- ["description"]="AEGEAN NUMBER FOUR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1010A, -- 𐄊
+ category="no",
+ description="AEGEAN NUMBER FOUR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1010A,
},
[0x1010B]={
- ["category"]="no",
- ["description"]="AEGEAN NUMBER FIVE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1010B, -- 𐄋
+ category="no",
+ description="AEGEAN NUMBER FIVE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1010B,
},
[0x1010C]={
- ["category"]="no",
- ["description"]="AEGEAN NUMBER SIX",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1010C, -- 𐄌
+ category="no",
+ description="AEGEAN NUMBER SIX",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1010C,
},
[0x1010D]={
- ["category"]="no",
- ["description"]="AEGEAN NUMBER SEVEN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1010D, -- 𐄍
+ category="no",
+ description="AEGEAN NUMBER SEVEN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1010D,
},
[0x1010E]={
- ["category"]="no",
- ["description"]="AEGEAN NUMBER EIGHT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1010E, -- 𐄎
+ category="no",
+ description="AEGEAN NUMBER EIGHT",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1010E,
},
[0x1010F]={
- ["category"]="no",
- ["description"]="AEGEAN NUMBER NINE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1010F, -- 𐄏
+ category="no",
+ description="AEGEAN NUMBER NINE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1010F,
},
[0x10110]={
- ["category"]="no",
- ["description"]="AEGEAN NUMBER TEN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10110, -- 𐄐
+ category="no",
+ description="AEGEAN NUMBER TEN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10110,
},
[0x10111]={
- ["category"]="no",
- ["description"]="AEGEAN NUMBER TWENTY",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10111, -- 𐄑
+ category="no",
+ description="AEGEAN NUMBER TWENTY",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10111,
},
[0x10112]={
- ["category"]="no",
- ["description"]="AEGEAN NUMBER THIRTY",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10112, -- 𐄒
+ category="no",
+ description="AEGEAN NUMBER THIRTY",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10112,
},
[0x10113]={
- ["category"]="no",
- ["description"]="AEGEAN NUMBER FORTY",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10113, -- 𐄓
+ category="no",
+ description="AEGEAN NUMBER FORTY",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10113,
},
[0x10114]={
- ["category"]="no",
- ["description"]="AEGEAN NUMBER FIFTY",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10114, -- 𐄔
+ category="no",
+ description="AEGEAN NUMBER FIFTY",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10114,
},
[0x10115]={
- ["category"]="no",
- ["description"]="AEGEAN NUMBER SIXTY",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10115, -- 𐄕
+ category="no",
+ description="AEGEAN NUMBER SIXTY",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10115,
},
[0x10116]={
- ["category"]="no",
- ["description"]="AEGEAN NUMBER SEVENTY",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10116, -- 𐄖
+ category="no",
+ description="AEGEAN NUMBER SEVENTY",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10116,
},
[0x10117]={
- ["category"]="no",
- ["description"]="AEGEAN NUMBER EIGHTY",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10117, -- 𐄗
+ category="no",
+ description="AEGEAN NUMBER EIGHTY",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10117,
},
[0x10118]={
- ["category"]="no",
- ["description"]="AEGEAN NUMBER NINETY",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10118, -- 𐄘
+ category="no",
+ description="AEGEAN NUMBER NINETY",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10118,
},
[0x10119]={
- ["category"]="no",
- ["description"]="AEGEAN NUMBER ONE HUNDRED",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10119, -- 𐄙
+ category="no",
+ description="AEGEAN NUMBER ONE HUNDRED",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10119,
},
[0x1011A]={
- ["category"]="no",
- ["description"]="AEGEAN NUMBER TWO HUNDRED",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1011A, -- 𐄚
+ category="no",
+ description="AEGEAN NUMBER TWO HUNDRED",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1011A,
},
[0x1011B]={
- ["category"]="no",
- ["description"]="AEGEAN NUMBER THREE HUNDRED",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1011B, -- 𐄛
+ category="no",
+ description="AEGEAN NUMBER THREE HUNDRED",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1011B,
},
[0x1011C]={
- ["category"]="no",
- ["description"]="AEGEAN NUMBER FOUR HUNDRED",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1011C, -- 𐄜
+ category="no",
+ description="AEGEAN NUMBER FOUR HUNDRED",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1011C,
},
[0x1011D]={
- ["category"]="no",
- ["description"]="AEGEAN NUMBER FIVE HUNDRED",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1011D, -- 𐄝
+ category="no",
+ description="AEGEAN NUMBER FIVE HUNDRED",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1011D,
},
[0x1011E]={
- ["category"]="no",
- ["description"]="AEGEAN NUMBER SIX HUNDRED",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1011E, -- 𐄞
+ category="no",
+ description="AEGEAN NUMBER SIX HUNDRED",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1011E,
},
[0x1011F]={
- ["category"]="no",
- ["description"]="AEGEAN NUMBER SEVEN HUNDRED",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1011F, -- 𐄟
+ category="no",
+ description="AEGEAN NUMBER SEVEN HUNDRED",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1011F,
},
[0x10120]={
- ["category"]="no",
- ["description"]="AEGEAN NUMBER EIGHT HUNDRED",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10120, -- 𐄠
+ category="no",
+ description="AEGEAN NUMBER EIGHT HUNDRED",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10120,
},
[0x10121]={
- ["category"]="no",
- ["description"]="AEGEAN NUMBER NINE HUNDRED",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10121, -- 𐄡
+ category="no",
+ description="AEGEAN NUMBER NINE HUNDRED",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10121,
},
[0x10122]={
- ["category"]="no",
- ["description"]="AEGEAN NUMBER ONE THOUSAND",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10122, -- 𐄢
+ category="no",
+ description="AEGEAN NUMBER ONE THOUSAND",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10122,
},
[0x10123]={
- ["category"]="no",
- ["description"]="AEGEAN NUMBER TWO THOUSAND",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10123, -- 𐄣
+ category="no",
+ description="AEGEAN NUMBER TWO THOUSAND",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10123,
},
[0x10124]={
- ["category"]="no",
- ["description"]="AEGEAN NUMBER THREE THOUSAND",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10124, -- 𐄤
+ category="no",
+ description="AEGEAN NUMBER THREE THOUSAND",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10124,
},
[0x10125]={
- ["category"]="no",
- ["description"]="AEGEAN NUMBER FOUR THOUSAND",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10125, -- 𐄥
+ category="no",
+ description="AEGEAN NUMBER FOUR THOUSAND",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10125,
},
[0x10126]={
- ["category"]="no",
- ["description"]="AEGEAN NUMBER FIVE THOUSAND",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10126, -- 𐄦
+ category="no",
+ description="AEGEAN NUMBER FIVE THOUSAND",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10126,
},
[0x10127]={
- ["category"]="no",
- ["description"]="AEGEAN NUMBER SIX THOUSAND",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10127, -- 𐄧
+ category="no",
+ description="AEGEAN NUMBER SIX THOUSAND",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10127,
},
[0x10128]={
- ["category"]="no",
- ["description"]="AEGEAN NUMBER SEVEN THOUSAND",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10128, -- 𐄨
+ category="no",
+ description="AEGEAN NUMBER SEVEN THOUSAND",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10128,
},
[0x10129]={
- ["category"]="no",
- ["description"]="AEGEAN NUMBER EIGHT THOUSAND",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10129, -- 𐄩
+ category="no",
+ description="AEGEAN NUMBER EIGHT THOUSAND",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10129,
},
[0x1012A]={
- ["category"]="no",
- ["description"]="AEGEAN NUMBER NINE THOUSAND",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1012A, -- 𐄪
+ category="no",
+ description="AEGEAN NUMBER NINE THOUSAND",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1012A,
},
[0x1012B]={
- ["category"]="no",
- ["description"]="AEGEAN NUMBER TEN THOUSAND",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1012B, -- 𐄫
+ category="no",
+ description="AEGEAN NUMBER TEN THOUSAND",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1012B,
},
[0x1012C]={
- ["category"]="no",
- ["description"]="AEGEAN NUMBER TWENTY THOUSAND",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1012C, -- 𐄬
+ category="no",
+ description="AEGEAN NUMBER TWENTY THOUSAND",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1012C,
},
[0x1012D]={
- ["category"]="no",
- ["description"]="AEGEAN NUMBER THIRTY THOUSAND",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1012D, -- 𐄭
+ category="no",
+ description="AEGEAN NUMBER THIRTY THOUSAND",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1012D,
},
[0x1012E]={
- ["category"]="no",
- ["description"]="AEGEAN NUMBER FORTY THOUSAND",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1012E, -- 𐄮
+ category="no",
+ description="AEGEAN NUMBER FORTY THOUSAND",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1012E,
},
[0x1012F]={
- ["category"]="no",
- ["description"]="AEGEAN NUMBER FIFTY THOUSAND",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1012F, -- 𐄯
+ category="no",
+ description="AEGEAN NUMBER FIFTY THOUSAND",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1012F,
},
[0x10130]={
- ["category"]="no",
- ["description"]="AEGEAN NUMBER SIXTY THOUSAND",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10130, -- 𐄰
+ category="no",
+ description="AEGEAN NUMBER SIXTY THOUSAND",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10130,
},
[0x10131]={
- ["category"]="no",
- ["description"]="AEGEAN NUMBER SEVENTY THOUSAND",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10131, -- 𐄱
+ category="no",
+ description="AEGEAN NUMBER SEVENTY THOUSAND",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10131,
},
[0x10132]={
- ["category"]="no",
- ["description"]="AEGEAN NUMBER EIGHTY THOUSAND",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10132, -- 𐄲
+ category="no",
+ description="AEGEAN NUMBER EIGHTY THOUSAND",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10132,
},
[0x10133]={
- ["category"]="no",
- ["description"]="AEGEAN NUMBER NINETY THOUSAND",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10133, -- 𐄳
+ category="no",
+ description="AEGEAN NUMBER NINETY THOUSAND",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10133,
},
[0x10137]={
- ["category"]="so",
- ["description"]="AEGEAN WEIGHT BASE UNIT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10137, -- 𐄷
+ category="so",
+ description="AEGEAN WEIGHT BASE UNIT",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10137,
},
[0x10138]={
- ["category"]="so",
- ["description"]="AEGEAN WEIGHT FIRST SUBUNIT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10138, -- 𐄸
+ category="so",
+ description="AEGEAN WEIGHT FIRST SUBUNIT",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10138,
},
[0x10139]={
- ["category"]="so",
- ["description"]="AEGEAN WEIGHT SECOND SUBUNIT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10139, -- 𐄹
+ category="so",
+ description="AEGEAN WEIGHT SECOND SUBUNIT",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10139,
},
[0x1013A]={
- ["category"]="so",
- ["description"]="AEGEAN WEIGHT THIRD SUBUNIT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1013A, -- 𐄺
+ category="so",
+ description="AEGEAN WEIGHT THIRD SUBUNIT",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1013A,
},
[0x1013B]={
- ["category"]="so",
- ["description"]="AEGEAN WEIGHT FOURTH SUBUNIT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1013B, -- 𐄻
+ category="so",
+ description="AEGEAN WEIGHT FOURTH SUBUNIT",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1013B,
},
[0x1013C]={
- ["category"]="so",
- ["description"]="AEGEAN DRY MEASURE FIRST SUBUNIT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1013C, -- 𐄼
+ category="so",
+ description="AEGEAN DRY MEASURE FIRST SUBUNIT",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1013C,
},
[0x1013D]={
- ["category"]="so",
- ["description"]="AEGEAN LIQUID MEASURE FIRST SUBUNIT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1013D, -- 𐄽
+ category="so",
+ description="AEGEAN LIQUID MEASURE FIRST SUBUNIT",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1013D,
},
[0x1013E]={
- ["category"]="so",
- ["description"]="AEGEAN MEASURE SECOND SUBUNIT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1013E, -- 𐄾
+ category="so",
+ description="AEGEAN MEASURE SECOND SUBUNIT",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1013E,
},
[0x1013F]={
- ["category"]="so",
- ["description"]="AEGEAN MEASURE THIRD SUBUNIT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1013F, -- 𐄿
+ category="so",
+ description="AEGEAN MEASURE THIRD SUBUNIT",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1013F,
},
[0x10140]={
- ["category"]="nl",
- ["description"]="GREEK ACROPHONIC ATTIC ONE QUARTER",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10140, -- 𐅀
+ category="nl",
+ description="GREEK ACROPHONIC ATTIC ONE QUARTER",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x10140,
},
[0x10141]={
- ["category"]="nl",
- ["description"]="GREEK ACROPHONIC ATTIC ONE HALF",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10141, -- 𐅁
+ category="nl",
+ description="GREEK ACROPHONIC ATTIC ONE HALF",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x10141,
},
[0x10142]={
- ["category"]="nl",
- ["description"]="GREEK ACROPHONIC ATTIC ONE DRACHMA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10142, -- 𐅂
+ category="nl",
+ description="GREEK ACROPHONIC ATTIC ONE DRACHMA",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x10142,
},
[0x10143]={
- ["category"]="nl",
- ["description"]="GREEK ACROPHONIC ATTIC FIVE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10143, -- 𐅃
+ category="nl",
+ description="GREEK ACROPHONIC ATTIC FIVE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x10143,
},
[0x10144]={
- ["category"]="nl",
- ["description"]="GREEK ACROPHONIC ATTIC FIFTY",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10144, -- 𐅄
+ category="nl",
+ description="GREEK ACROPHONIC ATTIC FIFTY",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x10144,
},
[0x10145]={
- ["category"]="nl",
- ["description"]="GREEK ACROPHONIC ATTIC FIVE HUNDRED",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10145, -- 𐅅
+ category="nl",
+ description="GREEK ACROPHONIC ATTIC FIVE HUNDRED",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x10145,
},
[0x10146]={
- ["category"]="nl",
- ["description"]="GREEK ACROPHONIC ATTIC FIVE THOUSAND",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10146, -- 𐅆
+ category="nl",
+ description="GREEK ACROPHONIC ATTIC FIVE THOUSAND",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x10146,
},
[0x10147]={
- ["category"]="nl",
- ["description"]="GREEK ACROPHONIC ATTIC FIFTY THOUSAND",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10147, -- 𐅇
+ category="nl",
+ description="GREEK ACROPHONIC ATTIC FIFTY THOUSAND",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x10147,
},
[0x10148]={
- ["category"]="nl",
- ["description"]="GREEK ACROPHONIC ATTIC FIVE TALENTS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10148, -- 𐅈
+ category="nl",
+ description="GREEK ACROPHONIC ATTIC FIVE TALENTS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x10148,
},
[0x10149]={
- ["category"]="nl",
- ["description"]="GREEK ACROPHONIC ATTIC TEN TALENTS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10149, -- 𐅉
+ category="nl",
+ description="GREEK ACROPHONIC ATTIC TEN TALENTS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x10149,
},
[0x1014A]={
- ["category"]="nl",
- ["description"]="GREEK ACROPHONIC ATTIC FIFTY TALENTS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1014A, -- 𐅊
+ category="nl",
+ description="GREEK ACROPHONIC ATTIC FIFTY TALENTS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1014A,
},
[0x1014B]={
- ["category"]="nl",
- ["description"]="GREEK ACROPHONIC ATTIC ONE HUNDRED TALENTS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1014B, -- 𐅋
+ category="nl",
+ description="GREEK ACROPHONIC ATTIC ONE HUNDRED TALENTS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1014B,
},
[0x1014C]={
- ["category"]="nl",
- ["description"]="GREEK ACROPHONIC ATTIC FIVE HUNDRED TALENTS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1014C, -- 𐅌
+ category="nl",
+ description="GREEK ACROPHONIC ATTIC FIVE HUNDRED TALENTS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1014C,
},
[0x1014D]={
- ["category"]="nl",
- ["description"]="GREEK ACROPHONIC ATTIC ONE THOUSAND TALENTS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1014D, -- 𐅍
+ category="nl",
+ description="GREEK ACROPHONIC ATTIC ONE THOUSAND TALENTS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1014D,
},
[0x1014E]={
- ["category"]="nl",
- ["description"]="GREEK ACROPHONIC ATTIC FIVE THOUSAND TALENTS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1014E, -- 𐅎
+ category="nl",
+ description="GREEK ACROPHONIC ATTIC FIVE THOUSAND TALENTS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1014E,
},
[0x1014F]={
- ["category"]="nl",
- ["description"]="GREEK ACROPHONIC ATTIC FIVE STATERS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1014F, -- 𐅏
+ category="nl",
+ description="GREEK ACROPHONIC ATTIC FIVE STATERS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1014F,
},
[0x10150]={
- ["category"]="nl",
- ["description"]="GREEK ACROPHONIC ATTIC TEN STATERS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10150, -- 𐅐
+ category="nl",
+ description="GREEK ACROPHONIC ATTIC TEN STATERS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x10150,
},
[0x10151]={
- ["category"]="nl",
- ["description"]="GREEK ACROPHONIC ATTIC FIFTY STATERS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10151, -- 𐅑
+ category="nl",
+ description="GREEK ACROPHONIC ATTIC FIFTY STATERS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x10151,
},
[0x10152]={
- ["category"]="nl",
- ["description"]="GREEK ACROPHONIC ATTIC ONE HUNDRED STATERS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10152, -- 𐅒
+ category="nl",
+ description="GREEK ACROPHONIC ATTIC ONE HUNDRED STATERS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x10152,
},
[0x10153]={
- ["category"]="nl",
- ["description"]="GREEK ACROPHONIC ATTIC FIVE HUNDRED STATERS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10153, -- 𐅓
+ category="nl",
+ description="GREEK ACROPHONIC ATTIC FIVE HUNDRED STATERS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x10153,
},
[0x10154]={
- ["category"]="nl",
- ["description"]="GREEK ACROPHONIC ATTIC ONE THOUSAND STATERS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10154, -- 𐅔
+ category="nl",
+ description="GREEK ACROPHONIC ATTIC ONE THOUSAND STATERS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x10154,
},
[0x10155]={
- ["category"]="nl",
- ["description"]="GREEK ACROPHONIC ATTIC TEN THOUSAND STATERS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10155, -- 𐅕
+ category="nl",
+ description="GREEK ACROPHONIC ATTIC TEN THOUSAND STATERS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x10155,
},
[0x10156]={
- ["category"]="nl",
- ["description"]="GREEK ACROPHONIC ATTIC FIFTY THOUSAND STATERS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10156, -- 𐅖
+ category="nl",
+ description="GREEK ACROPHONIC ATTIC FIFTY THOUSAND STATERS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x10156,
},
[0x10157]={
- ["category"]="nl",
- ["description"]="GREEK ACROPHONIC ATTIC TEN MNAS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10157, -- 𐅗
+ category="nl",
+ description="GREEK ACROPHONIC ATTIC TEN MNAS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x10157,
},
[0x10158]={
- ["category"]="nl",
- ["description"]="GREEK ACROPHONIC HERAEUM ONE PLETHRON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10158, -- 𐅘
+ category="nl",
+ description="GREEK ACROPHONIC HERAEUM ONE PLETHRON",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x10158,
},
[0x10159]={
- ["category"]="nl",
- ["description"]="GREEK ACROPHONIC THESPIAN ONE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10159, -- 𐅙
+ category="nl",
+ description="GREEK ACROPHONIC THESPIAN ONE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x10159,
},
[0x1015A]={
- ["category"]="nl",
- ["description"]="GREEK ACROPHONIC HERMIONIAN ONE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1015A, -- 𐅚
+ category="nl",
+ description="GREEK ACROPHONIC HERMIONIAN ONE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1015A,
},
[0x1015B]={
- ["category"]="nl",
- ["description"]="GREEK ACROPHONIC EPIDAUREAN TWO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1015B, -- 𐅛
+ category="nl",
+ description="GREEK ACROPHONIC EPIDAUREAN TWO",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1015B,
},
[0x1015C]={
- ["category"]="nl",
- ["description"]="GREEK ACROPHONIC THESPIAN TWO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1015C, -- 𐅜
+ category="nl",
+ description="GREEK ACROPHONIC THESPIAN TWO",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1015C,
},
[0x1015D]={
- ["category"]="nl",
- ["description"]="GREEK ACROPHONIC CYRENAIC TWO DRACHMAS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1015D, -- 𐅝
+ category="nl",
+ description="GREEK ACROPHONIC CYRENAIC TWO DRACHMAS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1015D,
},
[0x1015E]={
- ["category"]="nl",
- ["description"]="GREEK ACROPHONIC EPIDAUREAN TWO DRACHMAS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1015E, -- 𐅞
+ category="nl",
+ description="GREEK ACROPHONIC EPIDAUREAN TWO DRACHMAS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1015E,
},
[0x1015F]={
- ["category"]="nl",
- ["description"]="GREEK ACROPHONIC TROEZENIAN FIVE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1015F, -- 𐅟
+ category="nl",
+ description="GREEK ACROPHONIC TROEZENIAN FIVE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1015F,
},
[0x10160]={
- ["category"]="nl",
- ["description"]="GREEK ACROPHONIC TROEZENIAN TEN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10160, -- 𐅠
+ category="nl",
+ description="GREEK ACROPHONIC TROEZENIAN TEN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x10160,
},
[0x10161]={
- ["category"]="nl",
- ["description"]="GREEK ACROPHONIC TROEZENIAN TEN ALTERNATE FORM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10161, -- 𐅡
+ category="nl",
+ description="GREEK ACROPHONIC TROEZENIAN TEN ALTERNATE FORM",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x10161,
},
[0x10162]={
- ["category"]="nl",
- ["description"]="GREEK ACROPHONIC HERMIONIAN TEN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10162, -- 𐅢
+ category="nl",
+ description="GREEK ACROPHONIC HERMIONIAN TEN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x10162,
},
[0x10163]={
- ["category"]="nl",
- ["description"]="GREEK ACROPHONIC MESSENIAN TEN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10163, -- 𐅣
+ category="nl",
+ description="GREEK ACROPHONIC MESSENIAN TEN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x10163,
},
[0x10164]={
- ["category"]="nl",
- ["description"]="GREEK ACROPHONIC THESPIAN TEN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10164, -- 𐅤
+ category="nl",
+ description="GREEK ACROPHONIC THESPIAN TEN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x10164,
},
[0x10165]={
- ["category"]="nl",
- ["description"]="GREEK ACROPHONIC THESPIAN THIRTY",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10165, -- 𐅥
+ category="nl",
+ description="GREEK ACROPHONIC THESPIAN THIRTY",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x10165,
},
[0x10166]={
- ["category"]="nl",
- ["description"]="GREEK ACROPHONIC TROEZENIAN FIFTY",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10166, -- 𐅦
+ category="nl",
+ description="GREEK ACROPHONIC TROEZENIAN FIFTY",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x10166,
},
[0x10167]={
- ["category"]="nl",
- ["description"]="GREEK ACROPHONIC TROEZENIAN FIFTY ALTERNATE FORM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10167, -- 𐅧
+ category="nl",
+ description="GREEK ACROPHONIC TROEZENIAN FIFTY ALTERNATE FORM",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x10167,
},
[0x10168]={
- ["category"]="nl",
- ["description"]="GREEK ACROPHONIC HERMIONIAN FIFTY",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10168, -- 𐅨
+ category="nl",
+ description="GREEK ACROPHONIC HERMIONIAN FIFTY",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x10168,
},
[0x10169]={
- ["category"]="nl",
- ["description"]="GREEK ACROPHONIC THESPIAN FIFTY",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10169, -- 𐅩
+ category="nl",
+ description="GREEK ACROPHONIC THESPIAN FIFTY",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x10169,
},
[0x1016A]={
- ["category"]="nl",
- ["description"]="GREEK ACROPHONIC THESPIAN ONE HUNDRED",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1016A, -- 𐅪
+ category="nl",
+ description="GREEK ACROPHONIC THESPIAN ONE HUNDRED",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1016A,
},
[0x1016B]={
- ["category"]="nl",
- ["description"]="GREEK ACROPHONIC THESPIAN THREE HUNDRED",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1016B, -- 𐅫
+ category="nl",
+ description="GREEK ACROPHONIC THESPIAN THREE HUNDRED",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1016B,
},
[0x1016C]={
- ["category"]="nl",
- ["description"]="GREEK ACROPHONIC EPIDAUREAN FIVE HUNDRED",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1016C, -- 𐅬
+ category="nl",
+ description="GREEK ACROPHONIC EPIDAUREAN FIVE HUNDRED",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1016C,
},
[0x1016D]={
- ["category"]="nl",
- ["description"]="GREEK ACROPHONIC TROEZENIAN FIVE HUNDRED",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1016D, -- 𐅭
+ category="nl",
+ description="GREEK ACROPHONIC TROEZENIAN FIVE HUNDRED",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1016D,
},
[0x1016E]={
- ["category"]="nl",
- ["description"]="GREEK ACROPHONIC THESPIAN FIVE HUNDRED",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1016E, -- 𐅮
+ category="nl",
+ description="GREEK ACROPHONIC THESPIAN FIVE HUNDRED",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1016E,
},
[0x1016F]={
- ["category"]="nl",
- ["description"]="GREEK ACROPHONIC CARYSTIAN FIVE HUNDRED",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1016F, -- 𐅯
+ category="nl",
+ description="GREEK ACROPHONIC CARYSTIAN FIVE HUNDRED",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1016F,
},
[0x10170]={
- ["category"]="nl",
- ["description"]="GREEK ACROPHONIC NAXIAN FIVE HUNDRED",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10170, -- 𐅰
+ category="nl",
+ description="GREEK ACROPHONIC NAXIAN FIVE HUNDRED",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x10170,
},
[0x10171]={
- ["category"]="nl",
- ["description"]="GREEK ACROPHONIC THESPIAN ONE THOUSAND",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10171, -- 𐅱
+ category="nl",
+ description="GREEK ACROPHONIC THESPIAN ONE THOUSAND",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x10171,
},
[0x10172]={
- ["category"]="nl",
- ["description"]="GREEK ACROPHONIC THESPIAN FIVE THOUSAND",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10172, -- 𐅲
+ category="nl",
+ description="GREEK ACROPHONIC THESPIAN FIVE THOUSAND",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x10172,
},
[0x10173]={
- ["category"]="nl",
- ["description"]="GREEK ACROPHONIC DELPHIC FIVE MNAS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10173, -- 𐅳
+ category="nl",
+ description="GREEK ACROPHONIC DELPHIC FIVE MNAS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x10173,
},
[0x10174]={
- ["category"]="nl",
- ["description"]="GREEK ACROPHONIC STRATIAN FIFTY MNAS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10174, -- 𐅴
+ category="nl",
+ description="GREEK ACROPHONIC STRATIAN FIFTY MNAS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x10174,
},
[0x10175]={
- ["category"]="no",
- ["description"]="GREEK ONE HALF SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10175, -- 𐅵
+ category="no",
+ description="GREEK ONE HALF SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x10175,
},
[0x10176]={
- ["category"]="no",
- ["description"]="GREEK ONE HALF SIGN ALTERNATE FORM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10176, -- 𐅶
+ category="no",
+ description="GREEK ONE HALF SIGN ALTERNATE FORM",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x10176,
},
[0x10177]={
- ["category"]="no",
- ["description"]="GREEK TWO THIRDS SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10177, -- 𐅷
+ category="no",
+ description="GREEK TWO THIRDS SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x10177,
},
[0x10178]={
- ["category"]="no",
- ["description"]="GREEK THREE QUARTERS SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10178, -- 𐅸
+ category="no",
+ description="GREEK THREE QUARTERS SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x10178,
},
[0x10179]={
- ["category"]="so",
- ["description"]="GREEK YEAR SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10179, -- 𐅹
+ category="so",
+ description="GREEK YEAR SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x10179,
},
[0x1017A]={
- ["category"]="so",
- ["description"]="GREEK TALENT SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1017A, -- 𐅺
+ category="so",
+ description="GREEK TALENT SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1017A,
},
[0x1017B]={
- ["category"]="so",
- ["description"]="GREEK DRACHMA SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1017B, -- 𐅻
+ category="so",
+ description="GREEK DRACHMA SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1017B,
},
[0x1017C]={
- ["category"]="so",
- ["description"]="GREEK OBOL SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1017C, -- 𐅼
+ category="so",
+ description="GREEK OBOL SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1017C,
},
[0x1017D]={
- ["category"]="so",
- ["description"]="GREEK TWO OBOLS SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1017D, -- 𐅽
+ category="so",
+ description="GREEK TWO OBOLS SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1017D,
},
[0x1017E]={
- ["category"]="so",
- ["description"]="GREEK THREE OBOLS SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1017E, -- 𐅾
+ category="so",
+ description="GREEK THREE OBOLS SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1017E,
},
[0x1017F]={
- ["category"]="so",
- ["description"]="GREEK FOUR OBOLS SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1017F, -- 𐅿
+ category="so",
+ description="GREEK FOUR OBOLS SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1017F,
},
[0x10180]={
- ["category"]="so",
- ["description"]="GREEK FIVE OBOLS SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10180, -- 𐆀
+ category="so",
+ description="GREEK FIVE OBOLS SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x10180,
},
[0x10181]={
- ["category"]="so",
- ["description"]="GREEK METRETES SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10181, -- 𐆁
+ category="so",
+ description="GREEK METRETES SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x10181,
},
[0x10182]={
- ["category"]="so",
- ["description"]="GREEK KYATHOS BASE SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10182, -- 𐆂
+ category="so",
+ description="GREEK KYATHOS BASE SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x10182,
},
[0x10183]={
- ["category"]="so",
- ["description"]="GREEK LITRA SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10183, -- 𐆃
+ category="so",
+ description="GREEK LITRA SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x10183,
},
[0x10184]={
- ["category"]="so",
- ["description"]="GREEK OUNKIA SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10184, -- 𐆄
+ category="so",
+ description="GREEK OUNKIA SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x10184,
},
[0x10185]={
- ["category"]="so",
- ["description"]="GREEK XESTES SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10185, -- 𐆅
+ category="so",
+ description="GREEK XESTES SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x10185,
},
[0x10186]={
- ["category"]="so",
- ["description"]="GREEK ARTABE SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10186, -- 𐆆
+ category="so",
+ description="GREEK ARTABE SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x10186,
},
[0x10187]={
- ["category"]="so",
- ["description"]="GREEK AROURA SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10187, -- 𐆇
+ category="so",
+ description="GREEK AROURA SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x10187,
},
[0x10188]={
- ["category"]="so",
- ["description"]="GREEK GRAMMA SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10188, -- 𐆈
+ category="so",
+ description="GREEK GRAMMA SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x10188,
},
[0x10189]={
- ["category"]="so",
- ["description"]="GREEK TRYBLION BASE SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10189, -- 𐆉
+ category="so",
+ description="GREEK TRYBLION BASE SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x10189,
},
[0x1018A]={
- ["category"]="no",
- ["description"]="GREEK ZERO SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1018A, -- 𐆊
+ category="no",
+ description="GREEK ZERO SIGN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1018A,
},
[0x10300]={
- ["category"]="lo",
- ["description"]="OLD ITALIC LETTER A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10300, -- 𐌀
+ category="lo",
+ description="OLD ITALIC LETTER A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10300,
},
[0x10301]={
- ["category"]="lo",
- ["description"]="OLD ITALIC LETTER BE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10301, -- 𐌁
+ category="lo",
+ description="OLD ITALIC LETTER BE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10301,
},
[0x10302]={
- ["category"]="lo",
- ["description"]="OLD ITALIC LETTER KE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10302, -- 𐌂
+ category="lo",
+ description="OLD ITALIC LETTER KE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10302,
},
[0x10303]={
- ["category"]="lo",
- ["description"]="OLD ITALIC LETTER DE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10303, -- 𐌃
+ category="lo",
+ description="OLD ITALIC LETTER DE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10303,
},
[0x10304]={
- ["category"]="lo",
- ["description"]="OLD ITALIC LETTER E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10304, -- 𐌄
+ category="lo",
+ description="OLD ITALIC LETTER E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10304,
},
[0x10305]={
- ["category"]="lo",
- ["description"]="OLD ITALIC LETTER VE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10305, -- 𐌅
+ category="lo",
+ description="OLD ITALIC LETTER VE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10305,
},
[0x10306]={
- ["category"]="lo",
- ["description"]="OLD ITALIC LETTER ZE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10306, -- 𐌆
+ category="lo",
+ description="OLD ITALIC LETTER ZE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10306,
},
[0x10307]={
- ["category"]="lo",
- ["description"]="OLD ITALIC LETTER HE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10307, -- 𐌇
+ category="lo",
+ description="OLD ITALIC LETTER HE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10307,
},
[0x10308]={
- ["category"]="lo",
- ["description"]="OLD ITALIC LETTER THE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10308, -- 𐌈
+ category="lo",
+ description="OLD ITALIC LETTER THE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10308,
},
[0x10309]={
- ["category"]="lo",
- ["description"]="OLD ITALIC LETTER I",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10309, -- 𐌉
+ category="lo",
+ description="OLD ITALIC LETTER I",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10309,
},
[0x1030A]={
- ["category"]="lo",
- ["description"]="OLD ITALIC LETTER KA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1030A, -- 𐌊
+ category="lo",
+ description="OLD ITALIC LETTER KA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1030A,
},
[0x1030B]={
- ["category"]="lo",
- ["description"]="OLD ITALIC LETTER EL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1030B, -- 𐌋
+ category="lo",
+ description="OLD ITALIC LETTER EL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1030B,
},
[0x1030C]={
- ["category"]="lo",
- ["description"]="OLD ITALIC LETTER EM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1030C, -- 𐌌
+ category="lo",
+ description="OLD ITALIC LETTER EM",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1030C,
},
[0x1030D]={
- ["category"]="lo",
- ["description"]="OLD ITALIC LETTER EN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1030D, -- 𐌍
+ category="lo",
+ description="OLD ITALIC LETTER EN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1030D,
},
[0x1030E]={
- ["category"]="lo",
- ["description"]="OLD ITALIC LETTER ESH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1030E, -- 𐌎
+ category="lo",
+ description="OLD ITALIC LETTER ESH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1030E,
},
[0x1030F]={
- ["category"]="lo",
- ["description"]="OLD ITALIC LETTER O",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1030F, -- 𐌏
+ category="lo",
+ description="OLD ITALIC LETTER O",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1030F,
},
[0x10310]={
- ["category"]="lo",
- ["description"]="OLD ITALIC LETTER PE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10310, -- 𐌐
+ category="lo",
+ description="OLD ITALIC LETTER PE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10310,
},
[0x10311]={
- ["category"]="lo",
- ["description"]="OLD ITALIC LETTER SHE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10311, -- 𐌑
+ category="lo",
+ description="OLD ITALIC LETTER SHE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10311,
},
[0x10312]={
- ["category"]="lo",
- ["description"]="OLD ITALIC LETTER KU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10312, -- 𐌒
+ category="lo",
+ description="OLD ITALIC LETTER KU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10312,
},
[0x10313]={
- ["category"]="lo",
- ["description"]="OLD ITALIC LETTER ER",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10313, -- 𐌓
+ category="lo",
+ description="OLD ITALIC LETTER ER",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10313,
},
[0x10314]={
- ["category"]="lo",
- ["description"]="OLD ITALIC LETTER ES",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10314, -- 𐌔
+ category="lo",
+ description="OLD ITALIC LETTER ES",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10314,
},
[0x10315]={
- ["category"]="lo",
- ["description"]="OLD ITALIC LETTER TE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10315, -- 𐌕
+ category="lo",
+ description="OLD ITALIC LETTER TE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10315,
},
[0x10316]={
- ["category"]="lo",
- ["description"]="OLD ITALIC LETTER U",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10316, -- 𐌖
+ category="lo",
+ description="OLD ITALIC LETTER U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10316,
},
[0x10317]={
- ["category"]="lo",
- ["description"]="OLD ITALIC LETTER EKS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10317, -- 𐌗
+ category="lo",
+ description="OLD ITALIC LETTER EKS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10317,
},
[0x10318]={
- ["category"]="lo",
- ["description"]="OLD ITALIC LETTER PHE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10318, -- 𐌘
+ category="lo",
+ description="OLD ITALIC LETTER PHE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10318,
},
[0x10319]={
- ["category"]="lo",
- ["description"]="OLD ITALIC LETTER KHE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10319, -- 𐌙
+ category="lo",
+ description="OLD ITALIC LETTER KHE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10319,
},
[0x1031A]={
- ["category"]="lo",
- ["description"]="OLD ITALIC LETTER EF",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1031A, -- 𐌚
+ category="lo",
+ description="OLD ITALIC LETTER EF",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1031A,
},
[0x1031B]={
- ["category"]="lo",
- ["description"]="OLD ITALIC LETTER ERS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1031B, -- 𐌛
+ category="lo",
+ description="OLD ITALIC LETTER ERS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1031B,
},
[0x1031C]={
- ["category"]="lo",
- ["description"]="OLD ITALIC LETTER CHE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1031C, -- 𐌜
+ category="lo",
+ description="OLD ITALIC LETTER CHE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1031C,
},
[0x1031D]={
- ["category"]="lo",
- ["description"]="OLD ITALIC LETTER II",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1031D, -- 𐌝
+ category="lo",
+ description="OLD ITALIC LETTER II",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1031D,
},
[0x1031E]={
- ["category"]="lo",
- ["description"]="OLD ITALIC LETTER UU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1031E, -- 𐌞
+ category="lo",
+ description="OLD ITALIC LETTER UU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1031E,
},
[0x10320]={
- ["category"]="no",
- ["description"]="OLD ITALIC NUMERAL ONE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10320, -- 𐌠
+ category="no",
+ description="OLD ITALIC NUMERAL ONE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10320,
},
[0x10321]={
- ["category"]="no",
- ["description"]="OLD ITALIC NUMERAL FIVE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10321, -- 𐌡
+ category="no",
+ description="OLD ITALIC NUMERAL FIVE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10321,
},
[0x10322]={
- ["category"]="no",
- ["description"]="OLD ITALIC NUMERAL TEN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10322, -- 𐌢
+ category="no",
+ description="OLD ITALIC NUMERAL TEN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10322,
},
[0x10323]={
- ["category"]="no",
- ["description"]="OLD ITALIC NUMERAL FIFTY",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10323, -- 𐌣
+ category="no",
+ description="OLD ITALIC NUMERAL FIFTY",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10323,
},
[0x10330]={
- ["category"]="lo",
- ["description"]="GOTHIC LETTER AHSA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10330, -- 𐌰
+ category="lo",
+ description="GOTHIC LETTER AHSA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10330,
},
[0x10331]={
- ["category"]="lo",
- ["description"]="GOTHIC LETTER BAIRKAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10331, -- 𐌱
+ category="lo",
+ description="GOTHIC LETTER BAIRKAN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10331,
},
[0x10332]={
- ["category"]="lo",
- ["description"]="GOTHIC LETTER GIBA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10332, -- 𐌲
+ category="lo",
+ description="GOTHIC LETTER GIBA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10332,
},
[0x10333]={
- ["category"]="lo",
- ["description"]="GOTHIC LETTER DAGS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10333, -- 𐌳
+ category="lo",
+ description="GOTHIC LETTER DAGS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10333,
},
[0x10334]={
- ["category"]="lo",
- ["description"]="GOTHIC LETTER AIHVUS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10334, -- 𐌴
+ category="lo",
+ description="GOTHIC LETTER AIHVUS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10334,
},
[0x10335]={
- ["category"]="lo",
- ["description"]="GOTHIC LETTER QAIRTHRA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10335, -- 𐌵
+ category="lo",
+ description="GOTHIC LETTER QAIRTHRA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10335,
},
[0x10336]={
- ["category"]="lo",
- ["description"]="GOTHIC LETTER IUJA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10336, -- 𐌶
+ category="lo",
+ description="GOTHIC LETTER IUJA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10336,
},
[0x10337]={
- ["category"]="lo",
- ["description"]="GOTHIC LETTER HAGL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10337, -- 𐌷
+ category="lo",
+ description="GOTHIC LETTER HAGL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10337,
},
[0x10338]={
- ["category"]="lo",
- ["description"]="GOTHIC LETTER THIUTH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10338, -- 𐌸
+ category="lo",
+ description="GOTHIC LETTER THIUTH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10338,
},
[0x10339]={
- ["category"]="lo",
- ["description"]="GOTHIC LETTER EIS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10339, -- 𐌹
+ category="lo",
+ description="GOTHIC LETTER EIS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10339,
},
[0x1033A]={
- ["category"]="lo",
- ["description"]="GOTHIC LETTER KUSMA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1033A, -- 𐌺
+ category="lo",
+ description="GOTHIC LETTER KUSMA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1033A,
},
[0x1033B]={
- ["category"]="lo",
- ["description"]="GOTHIC LETTER LAGUS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1033B, -- 𐌻
+ category="lo",
+ description="GOTHIC LETTER LAGUS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1033B,
},
[0x1033C]={
- ["category"]="lo",
- ["description"]="GOTHIC LETTER MANNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1033C, -- 𐌼
+ category="lo",
+ description="GOTHIC LETTER MANNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1033C,
},
[0x1033D]={
- ["category"]="lo",
- ["description"]="GOTHIC LETTER NAUTHS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1033D, -- 𐌽
+ category="lo",
+ description="GOTHIC LETTER NAUTHS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1033D,
},
[0x1033E]={
- ["category"]="lo",
- ["description"]="GOTHIC LETTER JER",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1033E, -- 𐌾
+ category="lo",
+ description="GOTHIC LETTER JER",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1033E,
},
[0x1033F]={
- ["category"]="lo",
- ["description"]="GOTHIC LETTER URUS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1033F, -- 𐌿
+ category="lo",
+ description="GOTHIC LETTER URUS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1033F,
},
[0x10340]={
- ["category"]="lo",
- ["description"]="GOTHIC LETTER PAIRTHRA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10340, -- 𐍀
+ category="lo",
+ description="GOTHIC LETTER PAIRTHRA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10340,
},
[0x10341]={
- ["category"]="nl",
- ["description"]="GOTHIC LETTER NINETY",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10341, -- 𐍁
+ category="nl",
+ description="GOTHIC LETTER NINETY",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10341,
},
[0x10342]={
- ["category"]="lo",
- ["description"]="GOTHIC LETTER RAIDA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10342, -- 𐍂
+ category="lo",
+ description="GOTHIC LETTER RAIDA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10342,
},
[0x10343]={
- ["category"]="lo",
- ["description"]="GOTHIC LETTER SAUIL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10343, -- 𐍃
+ category="lo",
+ description="GOTHIC LETTER SAUIL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10343,
},
[0x10344]={
- ["category"]="lo",
- ["description"]="GOTHIC LETTER TEIWS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10344, -- 𐍄
+ category="lo",
+ description="GOTHIC LETTER TEIWS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10344,
},
[0x10345]={
- ["category"]="lo",
- ["description"]="GOTHIC LETTER WINJA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10345, -- 𐍅
+ category="lo",
+ description="GOTHIC LETTER WINJA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10345,
},
[0x10346]={
- ["category"]="lo",
- ["description"]="GOTHIC LETTER FAIHU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10346, -- 𐍆
+ category="lo",
+ description="GOTHIC LETTER FAIHU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10346,
},
[0x10347]={
- ["category"]="lo",
- ["description"]="GOTHIC LETTER IGGWS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10347, -- 𐍇
+ category="lo",
+ description="GOTHIC LETTER IGGWS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10347,
},
[0x10348]={
- ["category"]="lo",
- ["description"]="GOTHIC LETTER HWAIR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10348, -- 𐍈
+ category="lo",
+ description="GOTHIC LETTER HWAIR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10348,
},
[0x10349]={
- ["category"]="lo",
- ["description"]="GOTHIC LETTER OTHAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10349, -- 𐍉
+ category="lo",
+ description="GOTHIC LETTER OTHAL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10349,
},
[0x1034A]={
- ["category"]="nl",
- ["description"]="GOTHIC LETTER NINE HUNDRED",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1034A, -- 𐍊
+ category="nl",
+ description="GOTHIC LETTER NINE HUNDRED",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1034A,
},
[0x10380]={
- ["category"]="lo",
- ["description"]="UGARITIC LETTER ALPA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10380, -- 𐎀
+ category="lo",
+ description="UGARITIC LETTER ALPA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10380,
},
[0x10381]={
- ["category"]="lo",
- ["description"]="UGARITIC LETTER BETA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10381, -- 𐎁
+ category="lo",
+ description="UGARITIC LETTER BETA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10381,
},
[0x10382]={
- ["category"]="lo",
- ["description"]="UGARITIC LETTER GAMLA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10382, -- 𐎂
+ category="lo",
+ description="UGARITIC LETTER GAMLA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10382,
},
[0x10383]={
- ["category"]="lo",
- ["description"]="UGARITIC LETTER KHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10383, -- 𐎃
+ category="lo",
+ description="UGARITIC LETTER KHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10383,
},
[0x10384]={
- ["category"]="lo",
- ["description"]="UGARITIC LETTER DELTA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10384, -- 𐎄
+ category="lo",
+ description="UGARITIC LETTER DELTA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10384,
},
[0x10385]={
- ["category"]="lo",
- ["description"]="UGARITIC LETTER HO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10385, -- 𐎅
+ category="lo",
+ description="UGARITIC LETTER HO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10385,
},
[0x10386]={
- ["category"]="lo",
- ["description"]="UGARITIC LETTER WO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10386, -- 𐎆
+ category="lo",
+ description="UGARITIC LETTER WO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10386,
},
[0x10387]={
- ["category"]="lo",
- ["description"]="UGARITIC LETTER ZETA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10387, -- 𐎇
+ category="lo",
+ description="UGARITIC LETTER ZETA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10387,
},
[0x10388]={
- ["category"]="lo",
- ["description"]="UGARITIC LETTER HOTA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10388, -- 𐎈
+ category="lo",
+ description="UGARITIC LETTER HOTA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10388,
},
[0x10389]={
- ["category"]="lo",
- ["description"]="UGARITIC LETTER TET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10389, -- 𐎉
+ category="lo",
+ description="UGARITIC LETTER TET",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10389,
},
[0x1038A]={
- ["category"]="lo",
- ["description"]="UGARITIC LETTER YOD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1038A, -- 𐎊
+ category="lo",
+ description="UGARITIC LETTER YOD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1038A,
},
[0x1038B]={
- ["category"]="lo",
- ["description"]="UGARITIC LETTER KAF",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1038B, -- 𐎋
+ category="lo",
+ description="UGARITIC LETTER KAF",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1038B,
},
[0x1038C]={
- ["category"]="lo",
- ["description"]="UGARITIC LETTER SHIN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1038C, -- 𐎌
+ category="lo",
+ description="UGARITIC LETTER SHIN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1038C,
},
[0x1038D]={
- ["category"]="lo",
- ["description"]="UGARITIC LETTER LAMDA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1038D, -- 𐎍
+ category="lo",
+ description="UGARITIC LETTER LAMDA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1038D,
},
[0x1038E]={
- ["category"]="lo",
- ["description"]="UGARITIC LETTER MEM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1038E, -- 𐎎
+ category="lo",
+ description="UGARITIC LETTER MEM",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1038E,
},
[0x1038F]={
- ["category"]="lo",
- ["description"]="UGARITIC LETTER DHAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1038F, -- 𐎏
+ category="lo",
+ description="UGARITIC LETTER DHAL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1038F,
},
[0x10390]={
- ["category"]="lo",
- ["description"]="UGARITIC LETTER NUN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10390, -- 𐎐
+ category="lo",
+ description="UGARITIC LETTER NUN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10390,
},
[0x10391]={
- ["category"]="lo",
- ["description"]="UGARITIC LETTER ZU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10391, -- 𐎑
+ category="lo",
+ description="UGARITIC LETTER ZU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10391,
},
[0x10392]={
- ["category"]="lo",
- ["description"]="UGARITIC LETTER SAMKA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10392, -- 𐎒
+ category="lo",
+ description="UGARITIC LETTER SAMKA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10392,
},
[0x10393]={
- ["category"]="lo",
- ["description"]="UGARITIC LETTER AIN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10393, -- 𐎓
+ category="lo",
+ description="UGARITIC LETTER AIN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10393,
},
[0x10394]={
- ["category"]="lo",
- ["description"]="UGARITIC LETTER PU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10394, -- 𐎔
+ category="lo",
+ description="UGARITIC LETTER PU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10394,
},
[0x10395]={
- ["category"]="lo",
- ["description"]="UGARITIC LETTER SADE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10395, -- 𐎕
+ category="lo",
+ description="UGARITIC LETTER SADE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10395,
},
[0x10396]={
- ["category"]="lo",
- ["description"]="UGARITIC LETTER QOPA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10396, -- 𐎖
+ category="lo",
+ description="UGARITIC LETTER QOPA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10396,
},
[0x10397]={
- ["category"]="lo",
- ["description"]="UGARITIC LETTER RASHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10397, -- 𐎗
+ category="lo",
+ description="UGARITIC LETTER RASHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10397,
},
[0x10398]={
- ["category"]="lo",
- ["description"]="UGARITIC LETTER THANNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10398, -- 𐎘
+ category="lo",
+ description="UGARITIC LETTER THANNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10398,
},
[0x10399]={
- ["category"]="lo",
- ["description"]="UGARITIC LETTER GHAIN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10399, -- 𐎙
+ category="lo",
+ description="UGARITIC LETTER GHAIN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10399,
},
[0x1039A]={
- ["category"]="lo",
- ["description"]="UGARITIC LETTER TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1039A, -- 𐎚
+ category="lo",
+ description="UGARITIC LETTER TO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1039A,
},
[0x1039B]={
- ["category"]="lo",
- ["description"]="UGARITIC LETTER I",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1039B, -- 𐎛
+ category="lo",
+ description="UGARITIC LETTER I",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1039B,
},
[0x1039C]={
- ["category"]="lo",
- ["description"]="UGARITIC LETTER U",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1039C, -- 𐎜
+ category="lo",
+ description="UGARITIC LETTER U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1039C,
},
[0x1039D]={
- ["category"]="lo",
- ["description"]="UGARITIC LETTER SSU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1039D, -- 𐎝
+ category="lo",
+ description="UGARITIC LETTER SSU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1039D,
},
[0x1039F]={
- ["category"]="po",
- ["description"]="UGARITIC WORD DIVIDER",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x1039F, -- 𐎟
+ category="po",
+ description="UGARITIC WORD DIVIDER",
+ direction="l",
+ linebreak="ba",
+ unicodeslot=0x1039F,
},
[0x103A0]={
- ["category"]="lo",
- ["description"]="OLD PERSIAN SIGN A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x103A0, -- 𐎠
+ category="lo",
+ description="OLD PERSIAN SIGN A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x103A0,
},
[0x103A1]={
- ["category"]="lo",
- ["description"]="OLD PERSIAN SIGN I",
- ["linebreak"]="al",
- ["unicodeslot"]=0x103A1, -- 𐎡
+ category="lo",
+ description="OLD PERSIAN SIGN I",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x103A1,
},
[0x103A2]={
- ["category"]="lo",
- ["description"]="OLD PERSIAN SIGN U",
- ["linebreak"]="al",
- ["unicodeslot"]=0x103A2, -- 𐎢
+ category="lo",
+ description="OLD PERSIAN SIGN U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x103A2,
},
[0x103A3]={
- ["category"]="lo",
- ["description"]="OLD PERSIAN SIGN KA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x103A3, -- 𐎣
+ category="lo",
+ description="OLD PERSIAN SIGN KA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x103A3,
},
[0x103A4]={
- ["category"]="lo",
- ["description"]="OLD PERSIAN SIGN KU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x103A4, -- 𐎤
+ category="lo",
+ description="OLD PERSIAN SIGN KU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x103A4,
},
[0x103A5]={
- ["category"]="lo",
- ["description"]="OLD PERSIAN SIGN GA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x103A5, -- 𐎥
+ category="lo",
+ description="OLD PERSIAN SIGN GA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x103A5,
},
[0x103A6]={
- ["category"]="lo",
- ["description"]="OLD PERSIAN SIGN GU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x103A6, -- 𐎦
+ category="lo",
+ description="OLD PERSIAN SIGN GU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x103A6,
},
[0x103A7]={
- ["category"]="lo",
- ["description"]="OLD PERSIAN SIGN XA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x103A7, -- 𐎧
+ category="lo",
+ description="OLD PERSIAN SIGN XA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x103A7,
},
[0x103A8]={
- ["category"]="lo",
- ["description"]="OLD PERSIAN SIGN CA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x103A8, -- 𐎨
+ category="lo",
+ description="OLD PERSIAN SIGN CA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x103A8,
},
[0x103A9]={
- ["category"]="lo",
- ["description"]="OLD PERSIAN SIGN JA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x103A9, -- 𐎩
+ category="lo",
+ description="OLD PERSIAN SIGN JA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x103A9,
},
[0x103AA]={
- ["category"]="lo",
- ["description"]="OLD PERSIAN SIGN JI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x103AA, -- 𐎪
+ category="lo",
+ description="OLD PERSIAN SIGN JI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x103AA,
},
[0x103AB]={
- ["category"]="lo",
- ["description"]="OLD PERSIAN SIGN TA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x103AB, -- 𐎫
+ category="lo",
+ description="OLD PERSIAN SIGN TA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x103AB,
},
[0x103AC]={
- ["category"]="lo",
- ["description"]="OLD PERSIAN SIGN TU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x103AC, -- 𐎬
+ category="lo",
+ description="OLD PERSIAN SIGN TU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x103AC,
},
[0x103AD]={
- ["category"]="lo",
- ["description"]="OLD PERSIAN SIGN DA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x103AD, -- 𐎭
+ category="lo",
+ description="OLD PERSIAN SIGN DA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x103AD,
},
[0x103AE]={
- ["category"]="lo",
- ["description"]="OLD PERSIAN SIGN DI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x103AE, -- 𐎮
+ category="lo",
+ description="OLD PERSIAN SIGN DI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x103AE,
},
[0x103AF]={
- ["category"]="lo",
- ["description"]="OLD PERSIAN SIGN DU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x103AF, -- 𐎯
+ category="lo",
+ description="OLD PERSIAN SIGN DU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x103AF,
},
[0x103B0]={
- ["category"]="lo",
- ["description"]="OLD PERSIAN SIGN THA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x103B0, -- 𐎰
+ category="lo",
+ description="OLD PERSIAN SIGN THA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x103B0,
},
[0x103B1]={
- ["category"]="lo",
- ["description"]="OLD PERSIAN SIGN PA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x103B1, -- 𐎱
+ category="lo",
+ description="OLD PERSIAN SIGN PA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x103B1,
},
[0x103B2]={
- ["category"]="lo",
- ["description"]="OLD PERSIAN SIGN BA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x103B2, -- 𐎲
+ category="lo",
+ description="OLD PERSIAN SIGN BA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x103B2,
},
[0x103B3]={
- ["category"]="lo",
- ["description"]="OLD PERSIAN SIGN FA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x103B3, -- 𐎳
+ category="lo",
+ description="OLD PERSIAN SIGN FA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x103B3,
},
[0x103B4]={
- ["category"]="lo",
- ["description"]="OLD PERSIAN SIGN NA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x103B4, -- 𐎴
+ category="lo",
+ description="OLD PERSIAN SIGN NA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x103B4,
},
[0x103B5]={
- ["category"]="lo",
- ["description"]="OLD PERSIAN SIGN NU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x103B5, -- 𐎵
+ category="lo",
+ description="OLD PERSIAN SIGN NU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x103B5,
},
[0x103B6]={
- ["category"]="lo",
- ["description"]="OLD PERSIAN SIGN MA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x103B6, -- 𐎶
+ category="lo",
+ description="OLD PERSIAN SIGN MA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x103B6,
},
[0x103B7]={
- ["category"]="lo",
- ["description"]="OLD PERSIAN SIGN MI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x103B7, -- 𐎷
+ category="lo",
+ description="OLD PERSIAN SIGN MI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x103B7,
},
[0x103B8]={
- ["category"]="lo",
- ["description"]="OLD PERSIAN SIGN MU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x103B8, -- 𐎸
+ category="lo",
+ description="OLD PERSIAN SIGN MU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x103B8,
},
[0x103B9]={
- ["category"]="lo",
- ["description"]="OLD PERSIAN SIGN YA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x103B9, -- 𐎹
+ category="lo",
+ description="OLD PERSIAN SIGN YA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x103B9,
},
[0x103BA]={
- ["category"]="lo",
- ["description"]="OLD PERSIAN SIGN VA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x103BA, -- 𐎺
+ category="lo",
+ description="OLD PERSIAN SIGN VA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x103BA,
},
[0x103BB]={
- ["category"]="lo",
- ["description"]="OLD PERSIAN SIGN VI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x103BB, -- 𐎻
+ category="lo",
+ description="OLD PERSIAN SIGN VI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x103BB,
},
[0x103BC]={
- ["category"]="lo",
- ["description"]="OLD PERSIAN SIGN RA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x103BC, -- 𐎼
+ category="lo",
+ description="OLD PERSIAN SIGN RA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x103BC,
},
[0x103BD]={
- ["category"]="lo",
- ["description"]="OLD PERSIAN SIGN RU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x103BD, -- 𐎽
+ category="lo",
+ description="OLD PERSIAN SIGN RU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x103BD,
},
[0x103BE]={
- ["category"]="lo",
- ["description"]="OLD PERSIAN SIGN LA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x103BE, -- 𐎾
+ category="lo",
+ description="OLD PERSIAN SIGN LA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x103BE,
},
[0x103BF]={
- ["category"]="lo",
- ["description"]="OLD PERSIAN SIGN SA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x103BF, -- 𐎿
+ category="lo",
+ description="OLD PERSIAN SIGN SA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x103BF,
},
[0x103C0]={
- ["category"]="lo",
- ["description"]="OLD PERSIAN SIGN ZA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x103C0, -- 𐏀
+ category="lo",
+ description="OLD PERSIAN SIGN ZA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x103C0,
},
[0x103C1]={
- ["category"]="lo",
- ["description"]="OLD PERSIAN SIGN SHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x103C1, -- 𐏁
+ category="lo",
+ description="OLD PERSIAN SIGN SHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x103C1,
},
[0x103C2]={
- ["category"]="lo",
- ["description"]="OLD PERSIAN SIGN SSA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x103C2, -- 𐏂
+ category="lo",
+ description="OLD PERSIAN SIGN SSA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x103C2,
},
[0x103C3]={
- ["category"]="lo",
- ["description"]="OLD PERSIAN SIGN HA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x103C3, -- 𐏃
+ category="lo",
+ description="OLD PERSIAN SIGN HA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x103C3,
},
[0x103C8]={
- ["category"]="lo",
- ["description"]="OLD PERSIAN SIGN AURAMAZDAA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x103C8, -- 𐏈
+ category="lo",
+ description="OLD PERSIAN SIGN AURAMAZDAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x103C8,
},
[0x103C9]={
- ["category"]="lo",
- ["description"]="OLD PERSIAN SIGN AURAMAZDAA-0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x103C9, -- 𐏉
+ category="lo",
+ description="OLD PERSIAN SIGN AURAMAZDAA-0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x103C9,
},
[0x103CA]={
- ["category"]="lo",
- ["description"]="OLD PERSIAN SIGN AURAMAZDAAHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x103CA, -- 𐏊
+ category="lo",
+ description="OLD PERSIAN SIGN AURAMAZDAAHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x103CA,
},
[0x103CB]={
- ["category"]="lo",
- ["description"]="OLD PERSIAN SIGN XSHAAYATHIYA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x103CB, -- 𐏋
+ category="lo",
+ description="OLD PERSIAN SIGN XSHAAYATHIYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x103CB,
},
[0x103CC]={
- ["category"]="lo",
- ["description"]="OLD PERSIAN SIGN DAHYAAUSH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x103CC, -- 𐏌
+ category="lo",
+ description="OLD PERSIAN SIGN DAHYAAUSH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x103CC,
},
[0x103CD]={
- ["category"]="lo",
- ["description"]="OLD PERSIAN SIGN DAHYAAUSH-0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x103CD, -- 𐏍
+ category="lo",
+ description="OLD PERSIAN SIGN DAHYAAUSH-0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x103CD,
},
[0x103CE]={
- ["category"]="lo",
- ["description"]="OLD PERSIAN SIGN BAGA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x103CE, -- 𐏎
+ category="lo",
+ description="OLD PERSIAN SIGN BAGA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x103CE,
},
[0x103CF]={
- ["category"]="lo",
- ["description"]="OLD PERSIAN SIGN BUUMISH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x103CF, -- 𐏏
+ category="lo",
+ description="OLD PERSIAN SIGN BUUMISH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x103CF,
},
[0x103D0]={
- ["category"]="po",
- ["description"]="OLD PERSIAN WORD DIVIDER",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x103D0, -- 𐏐
+ category="po",
+ description="OLD PERSIAN WORD DIVIDER",
+ direction="l",
+ linebreak="ba",
+ unicodeslot=0x103D0,
},
[0x103D1]={
- ["category"]="nl",
- ["description"]="OLD PERSIAN NUMBER ONE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x103D1, -- 𐏑
+ category="nl",
+ description="OLD PERSIAN NUMBER ONE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x103D1,
},
[0x103D2]={
- ["category"]="nl",
- ["description"]="OLD PERSIAN NUMBER TWO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x103D2, -- 𐏒
+ category="nl",
+ description="OLD PERSIAN NUMBER TWO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x103D2,
},
[0x103D3]={
- ["category"]="nl",
- ["description"]="OLD PERSIAN NUMBER TEN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x103D3, -- 𐏓
+ category="nl",
+ description="OLD PERSIAN NUMBER TEN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x103D3,
},
[0x103D4]={
- ["category"]="nl",
- ["description"]="OLD PERSIAN NUMBER TWENTY",
- ["linebreak"]="al",
- ["unicodeslot"]=0x103D4, -- 𐏔
+ category="nl",
+ description="OLD PERSIAN NUMBER TWENTY",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x103D4,
},
[0x103D5]={
- ["category"]="nl",
- ["description"]="OLD PERSIAN NUMBER HUNDRED",
- ["linebreak"]="al",
- ["unicodeslot"]=0x103D5, -- 𐏕
+ category="nl",
+ description="OLD PERSIAN NUMBER HUNDRED",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x103D5,
},
[0x10400]={
- ["category"]="lu",
- ["description"]="DESERET CAPITAL LETTER LONG I",
- ["lccode"]=0x10428,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10400, -- 𐐀
+ category="lu",
+ description="DESERET CAPITAL LETTER LONG I",
+ direction="l",
+ lccode=0x10428,
+ linebreak="al",
+ unicodeslot=0x10400,
},
[0x10401]={
- ["category"]="lu",
- ["description"]="DESERET CAPITAL LETTER LONG E",
- ["lccode"]=0x10429,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10401, -- 𐐁
+ category="lu",
+ description="DESERET CAPITAL LETTER LONG E",
+ direction="l",
+ lccode=0x10429,
+ linebreak="al",
+ unicodeslot=0x10401,
},
[0x10402]={
- ["category"]="lu",
- ["description"]="DESERET CAPITAL LETTER LONG A",
- ["lccode"]=0x1042A,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10402, -- 𐐂
+ category="lu",
+ description="DESERET CAPITAL LETTER LONG A",
+ direction="l",
+ lccode=0x1042A,
+ linebreak="al",
+ unicodeslot=0x10402,
},
[0x10403]={
- ["category"]="lu",
- ["description"]="DESERET CAPITAL LETTER LONG AH",
- ["lccode"]=0x1042B,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10403, -- 𐐃
+ category="lu",
+ description="DESERET CAPITAL LETTER LONG AH",
+ direction="l",
+ lccode=0x1042B,
+ linebreak="al",
+ unicodeslot=0x10403,
},
[0x10404]={
- ["category"]="lu",
- ["description"]="DESERET CAPITAL LETTER LONG O",
- ["lccode"]=0x1042C,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10404, -- 𐐄
+ category="lu",
+ description="DESERET CAPITAL LETTER LONG O",
+ direction="l",
+ lccode=0x1042C,
+ linebreak="al",
+ unicodeslot=0x10404,
},
[0x10405]={
- ["category"]="lu",
- ["description"]="DESERET CAPITAL LETTER LONG OO",
- ["lccode"]=0x1042D,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10405, -- 𐐅
+ category="lu",
+ description="DESERET CAPITAL LETTER LONG OO",
+ direction="l",
+ lccode=0x1042D,
+ linebreak="al",
+ unicodeslot=0x10405,
},
[0x10406]={
- ["category"]="lu",
- ["description"]="DESERET CAPITAL LETTER SHORT I",
- ["lccode"]=0x1042E,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10406, -- 𐐆
+ category="lu",
+ description="DESERET CAPITAL LETTER SHORT I",
+ direction="l",
+ lccode=0x1042E,
+ linebreak="al",
+ unicodeslot=0x10406,
},
[0x10407]={
- ["category"]="lu",
- ["description"]="DESERET CAPITAL LETTER SHORT E",
- ["lccode"]=0x1042F,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10407, -- 𐐇
+ category="lu",
+ description="DESERET CAPITAL LETTER SHORT E",
+ direction="l",
+ lccode=0x1042F,
+ linebreak="al",
+ unicodeslot=0x10407,
},
[0x10408]={
- ["category"]="lu",
- ["description"]="DESERET CAPITAL LETTER SHORT A",
- ["lccode"]=0x10430,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10408, -- 𐐈
+ category="lu",
+ description="DESERET CAPITAL LETTER SHORT A",
+ direction="l",
+ lccode=0x10430,
+ linebreak="al",
+ unicodeslot=0x10408,
},
[0x10409]={
- ["category"]="lu",
- ["description"]="DESERET CAPITAL LETTER SHORT AH",
- ["lccode"]=0x10431,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10409, -- 𐐉
+ category="lu",
+ description="DESERET CAPITAL LETTER SHORT AH",
+ direction="l",
+ lccode=0x10431,
+ linebreak="al",
+ unicodeslot=0x10409,
},
[0x1040A]={
- ["category"]="lu",
- ["description"]="DESERET CAPITAL LETTER SHORT O",
- ["lccode"]=0x10432,
- ["linebreak"]="al",
- ["unicodeslot"]=0x1040A, -- 𐐊
+ category="lu",
+ description="DESERET CAPITAL LETTER SHORT O",
+ direction="l",
+ lccode=0x10432,
+ linebreak="al",
+ unicodeslot=0x1040A,
},
[0x1040B]={
- ["category"]="lu",
- ["description"]="DESERET CAPITAL LETTER SHORT OO",
- ["lccode"]=0x10433,
- ["linebreak"]="al",
- ["unicodeslot"]=0x1040B, -- 𐐋
+ category="lu",
+ description="DESERET CAPITAL LETTER SHORT OO",
+ direction="l",
+ lccode=0x10433,
+ linebreak="al",
+ unicodeslot=0x1040B,
},
[0x1040C]={
- ["category"]="lu",
- ["description"]="DESERET CAPITAL LETTER AY",
- ["lccode"]=0x10434,
- ["linebreak"]="al",
- ["unicodeslot"]=0x1040C, -- 𐐌
+ category="lu",
+ description="DESERET CAPITAL LETTER AY",
+ direction="l",
+ lccode=0x10434,
+ linebreak="al",
+ unicodeslot=0x1040C,
},
[0x1040D]={
- ["category"]="lu",
- ["description"]="DESERET CAPITAL LETTER OW",
- ["lccode"]=0x10435,
- ["linebreak"]="al",
- ["unicodeslot"]=0x1040D, -- 𐐍
+ category="lu",
+ description="DESERET CAPITAL LETTER OW",
+ direction="l",
+ lccode=0x10435,
+ linebreak="al",
+ unicodeslot=0x1040D,
},
[0x1040E]={
- ["category"]="lu",
- ["description"]="DESERET CAPITAL LETTER WU",
- ["lccode"]=0x10436,
- ["linebreak"]="al",
- ["unicodeslot"]=0x1040E, -- 𐐎
+ category="lu",
+ description="DESERET CAPITAL LETTER WU",
+ direction="l",
+ lccode=0x10436,
+ linebreak="al",
+ unicodeslot=0x1040E,
},
[0x1040F]={
- ["category"]="lu",
- ["description"]="DESERET CAPITAL LETTER YEE",
- ["lccode"]=0x10437,
- ["linebreak"]="al",
- ["unicodeslot"]=0x1040F, -- 𐐏
+ category="lu",
+ description="DESERET CAPITAL LETTER YEE",
+ direction="l",
+ lccode=0x10437,
+ linebreak="al",
+ unicodeslot=0x1040F,
},
[0x10410]={
- ["category"]="lu",
- ["description"]="DESERET CAPITAL LETTER H",
- ["lccode"]=0x10438,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10410, -- 𐐐
+ category="lu",
+ description="DESERET CAPITAL LETTER H",
+ direction="l",
+ lccode=0x10438,
+ linebreak="al",
+ unicodeslot=0x10410,
},
[0x10411]={
- ["category"]="lu",
- ["description"]="DESERET CAPITAL LETTER PEE",
- ["lccode"]=0x10439,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10411, -- 𐐑
+ category="lu",
+ description="DESERET CAPITAL LETTER PEE",
+ direction="l",
+ lccode=0x10439,
+ linebreak="al",
+ unicodeslot=0x10411,
},
[0x10412]={
- ["category"]="lu",
- ["description"]="DESERET CAPITAL LETTER BEE",
- ["lccode"]=0x1043A,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10412, -- 𐐒
+ category="lu",
+ description="DESERET CAPITAL LETTER BEE",
+ direction="l",
+ lccode=0x1043A,
+ linebreak="al",
+ unicodeslot=0x10412,
},
[0x10413]={
- ["category"]="lu",
- ["description"]="DESERET CAPITAL LETTER TEE",
- ["lccode"]=0x1043B,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10413, -- 𐐓
+ category="lu",
+ description="DESERET CAPITAL LETTER TEE",
+ direction="l",
+ lccode=0x1043B,
+ linebreak="al",
+ unicodeslot=0x10413,
},
[0x10414]={
- ["category"]="lu",
- ["description"]="DESERET CAPITAL LETTER DEE",
- ["lccode"]=0x1043C,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10414, -- 𐐔
+ category="lu",
+ description="DESERET CAPITAL LETTER DEE",
+ direction="l",
+ lccode=0x1043C,
+ linebreak="al",
+ unicodeslot=0x10414,
},
[0x10415]={
- ["category"]="lu",
- ["description"]="DESERET CAPITAL LETTER CHEE",
- ["lccode"]=0x1043D,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10415, -- 𐐕
+ category="lu",
+ description="DESERET CAPITAL LETTER CHEE",
+ direction="l",
+ lccode=0x1043D,
+ linebreak="al",
+ unicodeslot=0x10415,
},
[0x10416]={
- ["category"]="lu",
- ["description"]="DESERET CAPITAL LETTER JEE",
- ["lccode"]=0x1043E,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10416, -- 𐐖
+ category="lu",
+ description="DESERET CAPITAL LETTER JEE",
+ direction="l",
+ lccode=0x1043E,
+ linebreak="al",
+ unicodeslot=0x10416,
},
[0x10417]={
- ["category"]="lu",
- ["description"]="DESERET CAPITAL LETTER KAY",
- ["lccode"]=0x1043F,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10417, -- 𐐗
+ category="lu",
+ description="DESERET CAPITAL LETTER KAY",
+ direction="l",
+ lccode=0x1043F,
+ linebreak="al",
+ unicodeslot=0x10417,
},
[0x10418]={
- ["category"]="lu",
- ["description"]="DESERET CAPITAL LETTER GAY",
- ["lccode"]=0x10440,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10418, -- 𐐘
+ category="lu",
+ description="DESERET CAPITAL LETTER GAY",
+ direction="l",
+ lccode=0x10440,
+ linebreak="al",
+ unicodeslot=0x10418,
},
[0x10419]={
- ["category"]="lu",
- ["description"]="DESERET CAPITAL LETTER EF",
- ["lccode"]=0x10441,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10419, -- 𐐙
+ category="lu",
+ description="DESERET CAPITAL LETTER EF",
+ direction="l",
+ lccode=0x10441,
+ linebreak="al",
+ unicodeslot=0x10419,
},
[0x1041A]={
- ["category"]="lu",
- ["description"]="DESERET CAPITAL LETTER VEE",
- ["lccode"]=0x10442,
- ["linebreak"]="al",
- ["unicodeslot"]=0x1041A, -- 𐐚
+ category="lu",
+ description="DESERET CAPITAL LETTER VEE",
+ direction="l",
+ lccode=0x10442,
+ linebreak="al",
+ unicodeslot=0x1041A,
},
[0x1041B]={
- ["category"]="lu",
- ["description"]="DESERET CAPITAL LETTER ETH",
- ["lccode"]=0x10443,
- ["linebreak"]="al",
- ["unicodeslot"]=0x1041B, -- 𐐛
+ category="lu",
+ description="DESERET CAPITAL LETTER ETH",
+ direction="l",
+ lccode=0x10443,
+ linebreak="al",
+ unicodeslot=0x1041B,
},
[0x1041C]={
- ["category"]="lu",
- ["description"]="DESERET CAPITAL LETTER THEE",
- ["lccode"]=0x10444,
- ["linebreak"]="al",
- ["unicodeslot"]=0x1041C, -- 𐐜
+ category="lu",
+ description="DESERET CAPITAL LETTER THEE",
+ direction="l",
+ lccode=0x10444,
+ linebreak="al",
+ unicodeslot=0x1041C,
},
[0x1041D]={
- ["category"]="lu",
- ["description"]="DESERET CAPITAL LETTER ES",
- ["lccode"]=0x10445,
- ["linebreak"]="al",
- ["unicodeslot"]=0x1041D, -- 𐐝
+ category="lu",
+ description="DESERET CAPITAL LETTER ES",
+ direction="l",
+ lccode=0x10445,
+ linebreak="al",
+ unicodeslot=0x1041D,
},
[0x1041E]={
- ["category"]="lu",
- ["description"]="DESERET CAPITAL LETTER ZEE",
- ["lccode"]=0x10446,
- ["linebreak"]="al",
- ["unicodeslot"]=0x1041E, -- 𐐞
+ category="lu",
+ description="DESERET CAPITAL LETTER ZEE",
+ direction="l",
+ lccode=0x10446,
+ linebreak="al",
+ unicodeslot=0x1041E,
},
[0x1041F]={
- ["category"]="lu",
- ["description"]="DESERET CAPITAL LETTER ESH",
- ["lccode"]=0x10447,
- ["linebreak"]="al",
- ["unicodeslot"]=0x1041F, -- 𐐟
+ category="lu",
+ description="DESERET CAPITAL LETTER ESH",
+ direction="l",
+ lccode=0x10447,
+ linebreak="al",
+ unicodeslot=0x1041F,
},
[0x10420]={
- ["category"]="lu",
- ["description"]="DESERET CAPITAL LETTER ZHEE",
- ["lccode"]=0x10448,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10420, -- 𐐠
+ category="lu",
+ description="DESERET CAPITAL LETTER ZHEE",
+ direction="l",
+ lccode=0x10448,
+ linebreak="al",
+ unicodeslot=0x10420,
},
[0x10421]={
- ["category"]="lu",
- ["description"]="DESERET CAPITAL LETTER ER",
- ["lccode"]=0x10449,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10421, -- 𐐡
+ category="lu",
+ description="DESERET CAPITAL LETTER ER",
+ direction="l",
+ lccode=0x10449,
+ linebreak="al",
+ unicodeslot=0x10421,
},
[0x10422]={
- ["category"]="lu",
- ["description"]="DESERET CAPITAL LETTER EL",
- ["lccode"]=0x1044A,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10422, -- 𐐢
+ category="lu",
+ description="DESERET CAPITAL LETTER EL",
+ direction="l",
+ lccode=0x1044A,
+ linebreak="al",
+ unicodeslot=0x10422,
},
[0x10423]={
- ["category"]="lu",
- ["description"]="DESERET CAPITAL LETTER EM",
- ["lccode"]=0x1044B,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10423, -- 𐐣
+ category="lu",
+ description="DESERET CAPITAL LETTER EM",
+ direction="l",
+ lccode=0x1044B,
+ linebreak="al",
+ unicodeslot=0x10423,
},
[0x10424]={
- ["category"]="lu",
- ["description"]="DESERET CAPITAL LETTER EN",
- ["lccode"]=0x1044C,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10424, -- 𐐤
+ category="lu",
+ description="DESERET CAPITAL LETTER EN",
+ direction="l",
+ lccode=0x1044C,
+ linebreak="al",
+ unicodeslot=0x10424,
},
[0x10425]={
- ["category"]="lu",
- ["description"]="DESERET CAPITAL LETTER ENG",
- ["lccode"]=0x1044D,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10425, -- 𐐥
+ category="lu",
+ description="DESERET CAPITAL LETTER ENG",
+ direction="l",
+ lccode=0x1044D,
+ linebreak="al",
+ unicodeslot=0x10425,
},
[0x10426]={
- ["category"]="lu",
- ["description"]="DESERET CAPITAL LETTER OI",
- ["lccode"]=0x1044E,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10426, -- 𐐦
+ category="lu",
+ description="DESERET CAPITAL LETTER OI",
+ direction="l",
+ lccode=0x1044E,
+ linebreak="al",
+ unicodeslot=0x10426,
},
[0x10427]={
- ["category"]="lu",
- ["description"]="DESERET CAPITAL LETTER EW",
- ["lccode"]=0x1044F,
- ["linebreak"]="al",
- ["unicodeslot"]=0x10427, -- 𐐧
+ category="lu",
+ description="DESERET CAPITAL LETTER EW",
+ direction="l",
+ lccode=0x1044F,
+ linebreak="al",
+ unicodeslot=0x10427,
},
[0x10428]={
- ["category"]="ll",
- ["description"]="DESERET SMALL LETTER LONG I",
- ["linebreak"]="al",
- ["uccode"]=0x10400,
- ["unicodeslot"]=0x10428, -- 𐐨
+ category="ll",
+ description="DESERET SMALL LETTER LONG I",
+ direction="l",
+ linebreak="al",
+ uccode=0x10400,
+ unicodeslot=0x10428,
},
[0x10429]={
- ["category"]="ll",
- ["description"]="DESERET SMALL LETTER LONG E",
- ["linebreak"]="al",
- ["uccode"]=0x10401,
- ["unicodeslot"]=0x10429, -- 𐐩
+ category="ll",
+ description="DESERET SMALL LETTER LONG E",
+ direction="l",
+ linebreak="al",
+ uccode=0x10401,
+ unicodeslot=0x10429,
},
[0x1042A]={
- ["category"]="ll",
- ["description"]="DESERET SMALL LETTER LONG A",
- ["linebreak"]="al",
- ["uccode"]=0x10402,
- ["unicodeslot"]=0x1042A, -- 𐐪
+ category="ll",
+ description="DESERET SMALL LETTER LONG A",
+ direction="l",
+ linebreak="al",
+ uccode=0x10402,
+ unicodeslot=0x1042A,
},
[0x1042B]={
- ["category"]="ll",
- ["description"]="DESERET SMALL LETTER LONG AH",
- ["linebreak"]="al",
- ["uccode"]=0x10403,
- ["unicodeslot"]=0x1042B, -- 𐐫
+ category="ll",
+ description="DESERET SMALL LETTER LONG AH",
+ direction="l",
+ linebreak="al",
+ uccode=0x10403,
+ unicodeslot=0x1042B,
},
[0x1042C]={
- ["category"]="ll",
- ["description"]="DESERET SMALL LETTER LONG O",
- ["linebreak"]="al",
- ["uccode"]=0x10404,
- ["unicodeslot"]=0x1042C, -- 𐐬
+ category="ll",
+ description="DESERET SMALL LETTER LONG O",
+ direction="l",
+ linebreak="al",
+ uccode=0x10404,
+ unicodeslot=0x1042C,
},
[0x1042D]={
- ["category"]="ll",
- ["description"]="DESERET SMALL LETTER LONG OO",
- ["linebreak"]="al",
- ["uccode"]=0x10405,
- ["unicodeslot"]=0x1042D, -- 𐐭
+ category="ll",
+ description="DESERET SMALL LETTER LONG OO",
+ direction="l",
+ linebreak="al",
+ uccode=0x10405,
+ unicodeslot=0x1042D,
},
[0x1042E]={
- ["category"]="ll",
- ["description"]="DESERET SMALL LETTER SHORT I",
- ["linebreak"]="al",
- ["uccode"]=0x10406,
- ["unicodeslot"]=0x1042E, -- 𐐮
+ category="ll",
+ description="DESERET SMALL LETTER SHORT I",
+ direction="l",
+ linebreak="al",
+ uccode=0x10406,
+ unicodeslot=0x1042E,
},
[0x1042F]={
- ["category"]="ll",
- ["description"]="DESERET SMALL LETTER SHORT E",
- ["linebreak"]="al",
- ["uccode"]=0x10407,
- ["unicodeslot"]=0x1042F, -- 𐐯
+ category="ll",
+ description="DESERET SMALL LETTER SHORT E",
+ direction="l",
+ linebreak="al",
+ uccode=0x10407,
+ unicodeslot=0x1042F,
},
[0x10430]={
- ["category"]="ll",
- ["description"]="DESERET SMALL LETTER SHORT A",
- ["linebreak"]="al",
- ["uccode"]=0x10408,
- ["unicodeslot"]=0x10430, -- 𐐰
+ category="ll",
+ description="DESERET SMALL LETTER SHORT A",
+ direction="l",
+ linebreak="al",
+ uccode=0x10408,
+ unicodeslot=0x10430,
},
[0x10431]={
- ["category"]="ll",
- ["description"]="DESERET SMALL LETTER SHORT AH",
- ["linebreak"]="al",
- ["uccode"]=0x10409,
- ["unicodeslot"]=0x10431, -- 𐐱
+ category="ll",
+ description="DESERET SMALL LETTER SHORT AH",
+ direction="l",
+ linebreak="al",
+ uccode=0x10409,
+ unicodeslot=0x10431,
},
[0x10432]={
- ["category"]="ll",
- ["description"]="DESERET SMALL LETTER SHORT O",
- ["linebreak"]="al",
- ["uccode"]=0x1040A,
- ["unicodeslot"]=0x10432, -- 𐐲
+ category="ll",
+ description="DESERET SMALL LETTER SHORT O",
+ direction="l",
+ linebreak="al",
+ uccode=0x1040A,
+ unicodeslot=0x10432,
},
[0x10433]={
- ["category"]="ll",
- ["description"]="DESERET SMALL LETTER SHORT OO",
- ["linebreak"]="al",
- ["uccode"]=0x1040B,
- ["unicodeslot"]=0x10433, -- 𐐳
+ category="ll",
+ description="DESERET SMALL LETTER SHORT OO",
+ direction="l",
+ linebreak="al",
+ uccode=0x1040B,
+ unicodeslot=0x10433,
},
[0x10434]={
- ["category"]="ll",
- ["description"]="DESERET SMALL LETTER AY",
- ["linebreak"]="al",
- ["uccode"]=0x1040C,
- ["unicodeslot"]=0x10434, -- 𐐴
+ category="ll",
+ description="DESERET SMALL LETTER AY",
+ direction="l",
+ linebreak="al",
+ uccode=0x1040C,
+ unicodeslot=0x10434,
},
[0x10435]={
- ["category"]="ll",
- ["description"]="DESERET SMALL LETTER OW",
- ["linebreak"]="al",
- ["uccode"]=0x1040D,
- ["unicodeslot"]=0x10435, -- 𐐵
+ category="ll",
+ description="DESERET SMALL LETTER OW",
+ direction="l",
+ linebreak="al",
+ uccode=0x1040D,
+ unicodeslot=0x10435,
},
[0x10436]={
- ["category"]="ll",
- ["description"]="DESERET SMALL LETTER WU",
- ["linebreak"]="al",
- ["uccode"]=0x1040E,
- ["unicodeslot"]=0x10436, -- 𐐶
+ category="ll",
+ description="DESERET SMALL LETTER WU",
+ direction="l",
+ linebreak="al",
+ uccode=0x1040E,
+ unicodeslot=0x10436,
},
[0x10437]={
- ["category"]="ll",
- ["description"]="DESERET SMALL LETTER YEE",
- ["linebreak"]="al",
- ["uccode"]=0x1040F,
- ["unicodeslot"]=0x10437, -- 𐐷
+ category="ll",
+ description="DESERET SMALL LETTER YEE",
+ direction="l",
+ linebreak="al",
+ uccode=0x1040F,
+ unicodeslot=0x10437,
},
[0x10438]={
- ["category"]="ll",
- ["description"]="DESERET SMALL LETTER H",
- ["linebreak"]="al",
- ["uccode"]=0x10410,
- ["unicodeslot"]=0x10438, -- 𐐸
+ category="ll",
+ description="DESERET SMALL LETTER H",
+ direction="l",
+ linebreak="al",
+ uccode=0x10410,
+ unicodeslot=0x10438,
},
[0x10439]={
- ["category"]="ll",
- ["description"]="DESERET SMALL LETTER PEE",
- ["linebreak"]="al",
- ["uccode"]=0x10411,
- ["unicodeslot"]=0x10439, -- 𐐹
+ category="ll",
+ description="DESERET SMALL LETTER PEE",
+ direction="l",
+ linebreak="al",
+ uccode=0x10411,
+ unicodeslot=0x10439,
},
[0x1043A]={
- ["category"]="ll",
- ["description"]="DESERET SMALL LETTER BEE",
- ["linebreak"]="al",
- ["uccode"]=0x10412,
- ["unicodeslot"]=0x1043A, -- 𐐺
+ category="ll",
+ description="DESERET SMALL LETTER BEE",
+ direction="l",
+ linebreak="al",
+ uccode=0x10412,
+ unicodeslot=0x1043A,
},
[0x1043B]={
- ["category"]="ll",
- ["description"]="DESERET SMALL LETTER TEE",
- ["linebreak"]="al",
- ["uccode"]=0x10413,
- ["unicodeslot"]=0x1043B, -- 𐐻
+ category="ll",
+ description="DESERET SMALL LETTER TEE",
+ direction="l",
+ linebreak="al",
+ uccode=0x10413,
+ unicodeslot=0x1043B,
},
[0x1043C]={
- ["category"]="ll",
- ["description"]="DESERET SMALL LETTER DEE",
- ["linebreak"]="al",
- ["uccode"]=0x10414,
- ["unicodeslot"]=0x1043C, -- 𐐼
+ category="ll",
+ description="DESERET SMALL LETTER DEE",
+ direction="l",
+ linebreak="al",
+ uccode=0x10414,
+ unicodeslot=0x1043C,
},
[0x1043D]={
- ["category"]="ll",
- ["description"]="DESERET SMALL LETTER CHEE",
- ["linebreak"]="al",
- ["uccode"]=0x10415,
- ["unicodeslot"]=0x1043D, -- 𐐽
+ category="ll",
+ description="DESERET SMALL LETTER CHEE",
+ direction="l",
+ linebreak="al",
+ uccode=0x10415,
+ unicodeslot=0x1043D,
},
[0x1043E]={
- ["category"]="ll",
- ["description"]="DESERET SMALL LETTER JEE",
- ["linebreak"]="al",
- ["uccode"]=0x10416,
- ["unicodeslot"]=0x1043E, -- 𐐾
+ category="ll",
+ description="DESERET SMALL LETTER JEE",
+ direction="l",
+ linebreak="al",
+ uccode=0x10416,
+ unicodeslot=0x1043E,
},
[0x1043F]={
- ["category"]="ll",
- ["description"]="DESERET SMALL LETTER KAY",
- ["linebreak"]="al",
- ["uccode"]=0x10417,
- ["unicodeslot"]=0x1043F, -- 𐐿
+ category="ll",
+ description="DESERET SMALL LETTER KAY",
+ direction="l",
+ linebreak="al",
+ uccode=0x10417,
+ unicodeslot=0x1043F,
},
[0x10440]={
- ["category"]="ll",
- ["description"]="DESERET SMALL LETTER GAY",
- ["linebreak"]="al",
- ["uccode"]=0x10418,
- ["unicodeslot"]=0x10440, -- 𐑀
+ category="ll",
+ description="DESERET SMALL LETTER GAY",
+ direction="l",
+ linebreak="al",
+ uccode=0x10418,
+ unicodeslot=0x10440,
},
[0x10441]={
- ["category"]="ll",
- ["description"]="DESERET SMALL LETTER EF",
- ["linebreak"]="al",
- ["uccode"]=0x10419,
- ["unicodeslot"]=0x10441, -- 𐑁
+ category="ll",
+ description="DESERET SMALL LETTER EF",
+ direction="l",
+ linebreak="al",
+ uccode=0x10419,
+ unicodeslot=0x10441,
},
[0x10442]={
- ["category"]="ll",
- ["description"]="DESERET SMALL LETTER VEE",
- ["linebreak"]="al",
- ["uccode"]=0x1041A,
- ["unicodeslot"]=0x10442, -- 𐑂
+ category="ll",
+ description="DESERET SMALL LETTER VEE",
+ direction="l",
+ linebreak="al",
+ uccode=0x1041A,
+ unicodeslot=0x10442,
},
[0x10443]={
- ["category"]="ll",
- ["description"]="DESERET SMALL LETTER ETH",
- ["linebreak"]="al",
- ["uccode"]=0x1041B,
- ["unicodeslot"]=0x10443, -- 𐑃
+ category="ll",
+ description="DESERET SMALL LETTER ETH",
+ direction="l",
+ linebreak="al",
+ uccode=0x1041B,
+ unicodeslot=0x10443,
},
[0x10444]={
- ["category"]="ll",
- ["description"]="DESERET SMALL LETTER THEE",
- ["linebreak"]="al",
- ["uccode"]=0x1041C,
- ["unicodeslot"]=0x10444, -- 𐑄
+ category="ll",
+ description="DESERET SMALL LETTER THEE",
+ direction="l",
+ linebreak="al",
+ uccode=0x1041C,
+ unicodeslot=0x10444,
},
[0x10445]={
- ["category"]="ll",
- ["description"]="DESERET SMALL LETTER ES",
- ["linebreak"]="al",
- ["uccode"]=0x1041D,
- ["unicodeslot"]=0x10445, -- 𐑅
+ category="ll",
+ description="DESERET SMALL LETTER ES",
+ direction="l",
+ linebreak="al",
+ uccode=0x1041D,
+ unicodeslot=0x10445,
},
[0x10446]={
- ["category"]="ll",
- ["description"]="DESERET SMALL LETTER ZEE",
- ["linebreak"]="al",
- ["uccode"]=0x1041E,
- ["unicodeslot"]=0x10446, -- 𐑆
+ category="ll",
+ description="DESERET SMALL LETTER ZEE",
+ direction="l",
+ linebreak="al",
+ uccode=0x1041E,
+ unicodeslot=0x10446,
},
[0x10447]={
- ["category"]="ll",
- ["description"]="DESERET SMALL LETTER ESH",
- ["linebreak"]="al",
- ["uccode"]=0x1041F,
- ["unicodeslot"]=0x10447, -- 𐑇
+ category="ll",
+ description="DESERET SMALL LETTER ESH",
+ direction="l",
+ linebreak="al",
+ uccode=0x1041F,
+ unicodeslot=0x10447,
},
[0x10448]={
- ["category"]="ll",
- ["description"]="DESERET SMALL LETTER ZHEE",
- ["linebreak"]="al",
- ["uccode"]=0x10420,
- ["unicodeslot"]=0x10448, -- 𐑈
+ category="ll",
+ description="DESERET SMALL LETTER ZHEE",
+ direction="l",
+ linebreak="al",
+ uccode=0x10420,
+ unicodeslot=0x10448,
},
[0x10449]={
- ["category"]="ll",
- ["description"]="DESERET SMALL LETTER ER",
- ["linebreak"]="al",
- ["uccode"]=0x10421,
- ["unicodeslot"]=0x10449, -- 𐑉
+ category="ll",
+ description="DESERET SMALL LETTER ER",
+ direction="l",
+ linebreak="al",
+ uccode=0x10421,
+ unicodeslot=0x10449,
},
[0x1044A]={
- ["category"]="ll",
- ["description"]="DESERET SMALL LETTER EL",
- ["linebreak"]="al",
- ["uccode"]=0x10422,
- ["unicodeslot"]=0x1044A, -- 𐑊
+ category="ll",
+ description="DESERET SMALL LETTER EL",
+ direction="l",
+ linebreak="al",
+ uccode=0x10422,
+ unicodeslot=0x1044A,
},
[0x1044B]={
- ["category"]="ll",
- ["description"]="DESERET SMALL LETTER EM",
- ["linebreak"]="al",
- ["uccode"]=0x10423,
- ["unicodeslot"]=0x1044B, -- 𐑋
+ category="ll",
+ description="DESERET SMALL LETTER EM",
+ direction="l",
+ linebreak="al",
+ uccode=0x10423,
+ unicodeslot=0x1044B,
},
[0x1044C]={
- ["category"]="ll",
- ["description"]="DESERET SMALL LETTER EN",
- ["linebreak"]="al",
- ["uccode"]=0x10424,
- ["unicodeslot"]=0x1044C, -- 𐑌
+ category="ll",
+ description="DESERET SMALL LETTER EN",
+ direction="l",
+ linebreak="al",
+ uccode=0x10424,
+ unicodeslot=0x1044C,
},
[0x1044D]={
- ["category"]="ll",
- ["description"]="DESERET SMALL LETTER ENG",
- ["linebreak"]="al",
- ["uccode"]=0x10425,
- ["unicodeslot"]=0x1044D, -- 𐑍
+ category="ll",
+ description="DESERET SMALL LETTER ENG",
+ direction="l",
+ linebreak="al",
+ uccode=0x10425,
+ unicodeslot=0x1044D,
},
[0x1044E]={
- ["category"]="ll",
- ["description"]="DESERET SMALL LETTER OI",
- ["linebreak"]="al",
- ["uccode"]=0x10426,
- ["unicodeslot"]=0x1044E, -- 𐑎
+ category="ll",
+ description="DESERET SMALL LETTER OI",
+ direction="l",
+ linebreak="al",
+ uccode=0x10426,
+ unicodeslot=0x1044E,
},
[0x1044F]={
- ["category"]="ll",
- ["description"]="DESERET SMALL LETTER EW",
- ["linebreak"]="al",
- ["uccode"]=0x10427,
- ["unicodeslot"]=0x1044F, -- 𐑏
+ category="ll",
+ description="DESERET SMALL LETTER EW",
+ direction="l",
+ linebreak="al",
+ uccode=0x10427,
+ unicodeslot=0x1044F,
},
[0x10450]={
- ["category"]="lo",
- ["description"]="SHAVIAN LETTER PEEP",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10450, -- 𐑐
+ category="lo",
+ description="SHAVIAN LETTER PEEP",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10450,
},
[0x10451]={
- ["category"]="lo",
- ["description"]="SHAVIAN LETTER TOT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10451, -- 𐑑
+ category="lo",
+ description="SHAVIAN LETTER TOT",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10451,
},
[0x10452]={
- ["category"]="lo",
- ["description"]="SHAVIAN LETTER KICK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10452, -- 𐑒
+ category="lo",
+ description="SHAVIAN LETTER KICK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10452,
},
[0x10453]={
- ["category"]="lo",
- ["description"]="SHAVIAN LETTER FEE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10453, -- 𐑓
+ category="lo",
+ description="SHAVIAN LETTER FEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10453,
},
[0x10454]={
- ["category"]="lo",
- ["description"]="SHAVIAN LETTER THIGH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10454, -- 𐑔
+ category="lo",
+ description="SHAVIAN LETTER THIGH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10454,
},
[0x10455]={
- ["category"]="lo",
- ["description"]="SHAVIAN LETTER SO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10455, -- 𐑕
+ category="lo",
+ description="SHAVIAN LETTER SO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10455,
},
[0x10456]={
- ["category"]="lo",
- ["description"]="SHAVIAN LETTER SURE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10456, -- 𐑖
+ category="lo",
+ description="SHAVIAN LETTER SURE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10456,
},
[0x10457]={
- ["category"]="lo",
- ["description"]="SHAVIAN LETTER CHURCH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10457, -- 𐑗
+ category="lo",
+ description="SHAVIAN LETTER CHURCH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10457,
},
[0x10458]={
- ["category"]="lo",
- ["description"]="SHAVIAN LETTER YEA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10458, -- 𐑘
+ category="lo",
+ description="SHAVIAN LETTER YEA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10458,
},
[0x10459]={
- ["category"]="lo",
- ["description"]="SHAVIAN LETTER HUNG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10459, -- 𐑙
+ category="lo",
+ description="SHAVIAN LETTER HUNG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10459,
},
[0x1045A]={
- ["category"]="lo",
- ["description"]="SHAVIAN LETTER BIB",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1045A, -- 𐑚
+ category="lo",
+ description="SHAVIAN LETTER BIB",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1045A,
},
[0x1045B]={
- ["category"]="lo",
- ["description"]="SHAVIAN LETTER DEAD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1045B, -- 𐑛
+ category="lo",
+ description="SHAVIAN LETTER DEAD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1045B,
},
[0x1045C]={
- ["category"]="lo",
- ["description"]="SHAVIAN LETTER GAG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1045C, -- 𐑜
+ category="lo",
+ description="SHAVIAN LETTER GAG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1045C,
},
[0x1045D]={
- ["category"]="lo",
- ["description"]="SHAVIAN LETTER VOW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1045D, -- 𐑝
+ category="lo",
+ description="SHAVIAN LETTER VOW",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1045D,
},
[0x1045E]={
- ["category"]="lo",
- ["description"]="SHAVIAN LETTER THEY",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1045E, -- 𐑞
+ category="lo",
+ description="SHAVIAN LETTER THEY",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1045E,
},
[0x1045F]={
- ["category"]="lo",
- ["description"]="SHAVIAN LETTER ZOO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1045F, -- 𐑟
+ category="lo",
+ description="SHAVIAN LETTER ZOO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1045F,
},
[0x10460]={
- ["category"]="lo",
- ["description"]="SHAVIAN LETTER MEASURE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10460, -- 𐑠
+ category="lo",
+ description="SHAVIAN LETTER MEASURE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10460,
},
[0x10461]={
- ["category"]="lo",
- ["description"]="SHAVIAN LETTER JUDGE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10461, -- 𐑡
+ category="lo",
+ description="SHAVIAN LETTER JUDGE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10461,
},
[0x10462]={
- ["category"]="lo",
- ["description"]="SHAVIAN LETTER WOE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10462, -- 𐑢
+ category="lo",
+ description="SHAVIAN LETTER WOE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10462,
},
[0x10463]={
- ["category"]="lo",
- ["description"]="SHAVIAN LETTER HA-HA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10463, -- 𐑣
+ category="lo",
+ description="SHAVIAN LETTER HA-HA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10463,
},
[0x10464]={
- ["category"]="lo",
- ["description"]="SHAVIAN LETTER LOLL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10464, -- 𐑤
+ category="lo",
+ description="SHAVIAN LETTER LOLL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10464,
},
[0x10465]={
- ["category"]="lo",
- ["description"]="SHAVIAN LETTER MIME",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10465, -- 𐑥
+ category="lo",
+ description="SHAVIAN LETTER MIME",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10465,
},
[0x10466]={
- ["category"]="lo",
- ["description"]="SHAVIAN LETTER IF",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10466, -- 𐑦
+ category="lo",
+ description="SHAVIAN LETTER IF",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10466,
},
[0x10467]={
- ["category"]="lo",
- ["description"]="SHAVIAN LETTER EGG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10467, -- 𐑧
+ category="lo",
+ description="SHAVIAN LETTER EGG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10467,
},
[0x10468]={
- ["category"]="lo",
- ["description"]="SHAVIAN LETTER ASH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10468, -- 𐑨
+ category="lo",
+ description="SHAVIAN LETTER ASH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10468,
},
[0x10469]={
- ["category"]="lo",
- ["description"]="SHAVIAN LETTER ADO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10469, -- 𐑩
+ category="lo",
+ description="SHAVIAN LETTER ADO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10469,
},
[0x1046A]={
- ["category"]="lo",
- ["description"]="SHAVIAN LETTER ON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1046A, -- 𐑪
+ category="lo",
+ description="SHAVIAN LETTER ON",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1046A,
},
[0x1046B]={
- ["category"]="lo",
- ["description"]="SHAVIAN LETTER WOOL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1046B, -- 𐑫
+ category="lo",
+ description="SHAVIAN LETTER WOOL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1046B,
},
[0x1046C]={
- ["category"]="lo",
- ["description"]="SHAVIAN LETTER OUT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1046C, -- 𐑬
+ category="lo",
+ description="SHAVIAN LETTER OUT",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1046C,
},
[0x1046D]={
- ["category"]="lo",
- ["description"]="SHAVIAN LETTER AH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1046D, -- 𐑭
+ category="lo",
+ description="SHAVIAN LETTER AH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1046D,
},
[0x1046E]={
- ["category"]="lo",
- ["description"]="SHAVIAN LETTER ROAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1046E, -- 𐑮
+ category="lo",
+ description="SHAVIAN LETTER ROAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1046E,
},
[0x1046F]={
- ["category"]="lo",
- ["description"]="SHAVIAN LETTER NUN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1046F, -- 𐑯
+ category="lo",
+ description="SHAVIAN LETTER NUN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1046F,
},
[0x10470]={
- ["category"]="lo",
- ["description"]="SHAVIAN LETTER EAT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10470, -- 𐑰
+ category="lo",
+ description="SHAVIAN LETTER EAT",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10470,
},
[0x10471]={
- ["category"]="lo",
- ["description"]="SHAVIAN LETTER AGE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10471, -- 𐑱
+ category="lo",
+ description="SHAVIAN LETTER AGE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10471,
},
[0x10472]={
- ["category"]="lo",
- ["description"]="SHAVIAN LETTER ICE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10472, -- 𐑲
+ category="lo",
+ description="SHAVIAN LETTER ICE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10472,
},
[0x10473]={
- ["category"]="lo",
- ["description"]="SHAVIAN LETTER UP",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10473, -- 𐑳
+ category="lo",
+ description="SHAVIAN LETTER UP",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10473,
},
[0x10474]={
- ["category"]="lo",
- ["description"]="SHAVIAN LETTER OAK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10474, -- 𐑴
+ category="lo",
+ description="SHAVIAN LETTER OAK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10474,
},
[0x10475]={
- ["category"]="lo",
- ["description"]="SHAVIAN LETTER OOZE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10475, -- 𐑵
+ category="lo",
+ description="SHAVIAN LETTER OOZE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10475,
},
[0x10476]={
- ["category"]="lo",
- ["description"]="SHAVIAN LETTER OIL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10476, -- 𐑶
+ category="lo",
+ description="SHAVIAN LETTER OIL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10476,
},
[0x10477]={
- ["category"]="lo",
- ["description"]="SHAVIAN LETTER AWE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10477, -- 𐑷
+ category="lo",
+ description="SHAVIAN LETTER AWE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10477,
},
[0x10478]={
- ["category"]="lo",
- ["description"]="SHAVIAN LETTER ARE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10478, -- 𐑸
+ category="lo",
+ description="SHAVIAN LETTER ARE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10478,
},
[0x10479]={
- ["category"]="lo",
- ["description"]="SHAVIAN LETTER OR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10479, -- 𐑹
+ category="lo",
+ description="SHAVIAN LETTER OR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10479,
},
[0x1047A]={
- ["category"]="lo",
- ["description"]="SHAVIAN LETTER AIR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1047A, -- 𐑺
+ category="lo",
+ description="SHAVIAN LETTER AIR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1047A,
},
[0x1047B]={
- ["category"]="lo",
- ["description"]="SHAVIAN LETTER ERR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1047B, -- 𐑻
+ category="lo",
+ description="SHAVIAN LETTER ERR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1047B,
},
[0x1047C]={
- ["category"]="lo",
- ["description"]="SHAVIAN LETTER ARRAY",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1047C, -- 𐑼
+ category="lo",
+ description="SHAVIAN LETTER ARRAY",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1047C,
},
[0x1047D]={
- ["category"]="lo",
- ["description"]="SHAVIAN LETTER EAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1047D, -- 𐑽
+ category="lo",
+ description="SHAVIAN LETTER EAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1047D,
},
[0x1047E]={
- ["category"]="lo",
- ["description"]="SHAVIAN LETTER IAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1047E, -- 𐑾
+ category="lo",
+ description="SHAVIAN LETTER IAN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1047E,
},
[0x1047F]={
- ["category"]="lo",
- ["description"]="SHAVIAN LETTER YEW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1047F, -- 𐑿
+ category="lo",
+ description="SHAVIAN LETTER YEW",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1047F,
},
[0x10480]={
- ["category"]="lo",
- ["description"]="OSMANYA LETTER ALEF",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10480, -- 𐒀
+ category="lo",
+ description="OSMANYA LETTER ALEF",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10480,
},
[0x10481]={
- ["category"]="lo",
- ["description"]="OSMANYA LETTER BA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10481, -- 𐒁
+ category="lo",
+ description="OSMANYA LETTER BA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10481,
},
[0x10482]={
- ["category"]="lo",
- ["description"]="OSMANYA LETTER TA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10482, -- 𐒂
+ category="lo",
+ description="OSMANYA LETTER TA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10482,
},
[0x10483]={
- ["category"]="lo",
- ["description"]="OSMANYA LETTER JA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10483, -- 𐒃
+ category="lo",
+ description="OSMANYA LETTER JA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10483,
},
[0x10484]={
- ["category"]="lo",
- ["description"]="OSMANYA LETTER XA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10484, -- 𐒄
+ category="lo",
+ description="OSMANYA LETTER XA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10484,
},
[0x10485]={
- ["category"]="lo",
- ["description"]="OSMANYA LETTER KHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10485, -- 𐒅
+ category="lo",
+ description="OSMANYA LETTER KHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10485,
},
[0x10486]={
- ["category"]="lo",
- ["description"]="OSMANYA LETTER DEEL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10486, -- 𐒆
+ category="lo",
+ description="OSMANYA LETTER DEEL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10486,
},
[0x10487]={
- ["category"]="lo",
- ["description"]="OSMANYA LETTER RA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10487, -- 𐒇
+ category="lo",
+ description="OSMANYA LETTER RA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10487,
},
[0x10488]={
- ["category"]="lo",
- ["description"]="OSMANYA LETTER SA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10488, -- 𐒈
+ category="lo",
+ description="OSMANYA LETTER SA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10488,
},
[0x10489]={
- ["category"]="lo",
- ["description"]="OSMANYA LETTER SHIIN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10489, -- 𐒉
+ category="lo",
+ description="OSMANYA LETTER SHIIN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10489,
},
[0x1048A]={
- ["category"]="lo",
- ["description"]="OSMANYA LETTER DHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1048A, -- 𐒊
+ category="lo",
+ description="OSMANYA LETTER DHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1048A,
},
[0x1048B]={
- ["category"]="lo",
- ["description"]="OSMANYA LETTER CAYN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1048B, -- 𐒋
+ category="lo",
+ description="OSMANYA LETTER CAYN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1048B,
},
[0x1048C]={
- ["category"]="lo",
- ["description"]="OSMANYA LETTER GA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1048C, -- 𐒌
+ category="lo",
+ description="OSMANYA LETTER GA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1048C,
},
[0x1048D]={
- ["category"]="lo",
- ["description"]="OSMANYA LETTER FA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1048D, -- 𐒍
+ category="lo",
+ description="OSMANYA LETTER FA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1048D,
},
[0x1048E]={
- ["category"]="lo",
- ["description"]="OSMANYA LETTER QAAF",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1048E, -- 𐒎
+ category="lo",
+ description="OSMANYA LETTER QAAF",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1048E,
},
[0x1048F]={
- ["category"]="lo",
- ["description"]="OSMANYA LETTER KAAF",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1048F, -- 𐒏
+ category="lo",
+ description="OSMANYA LETTER KAAF",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1048F,
},
[0x10490]={
- ["category"]="lo",
- ["description"]="OSMANYA LETTER LAAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10490, -- 𐒐
+ category="lo",
+ description="OSMANYA LETTER LAAN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10490,
},
[0x10491]={
- ["category"]="lo",
- ["description"]="OSMANYA LETTER MIIN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10491, -- 𐒑
+ category="lo",
+ description="OSMANYA LETTER MIIN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10491,
},
[0x10492]={
- ["category"]="lo",
- ["description"]="OSMANYA LETTER NUUN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10492, -- 𐒒
+ category="lo",
+ description="OSMANYA LETTER NUUN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10492,
},
[0x10493]={
- ["category"]="lo",
- ["description"]="OSMANYA LETTER WAW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10493, -- 𐒓
+ category="lo",
+ description="OSMANYA LETTER WAW",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10493,
},
[0x10494]={
- ["category"]="lo",
- ["description"]="OSMANYA LETTER HA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10494, -- 𐒔
+ category="lo",
+ description="OSMANYA LETTER HA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10494,
},
[0x10495]={
- ["category"]="lo",
- ["description"]="OSMANYA LETTER YA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10495, -- 𐒕
+ category="lo",
+ description="OSMANYA LETTER YA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10495,
},
[0x10496]={
- ["category"]="lo",
- ["description"]="OSMANYA LETTER A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10496, -- 𐒖
+ category="lo",
+ description="OSMANYA LETTER A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10496,
},
[0x10497]={
- ["category"]="lo",
- ["description"]="OSMANYA LETTER E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10497, -- 𐒗
+ category="lo",
+ description="OSMANYA LETTER E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10497,
},
[0x10498]={
- ["category"]="lo",
- ["description"]="OSMANYA LETTER I",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10498, -- 𐒘
+ category="lo",
+ description="OSMANYA LETTER I",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10498,
},
[0x10499]={
- ["category"]="lo",
- ["description"]="OSMANYA LETTER O",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10499, -- 𐒙
+ category="lo",
+ description="OSMANYA LETTER O",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10499,
},
[0x1049A]={
- ["category"]="lo",
- ["description"]="OSMANYA LETTER U",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1049A, -- 𐒚
+ category="lo",
+ description="OSMANYA LETTER U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1049A,
},
[0x1049B]={
- ["category"]="lo",
- ["description"]="OSMANYA LETTER AA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1049B, -- 𐒛
+ category="lo",
+ description="OSMANYA LETTER AA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1049B,
},
[0x1049C]={
- ["category"]="lo",
- ["description"]="OSMANYA LETTER EE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1049C, -- 𐒜
+ category="lo",
+ description="OSMANYA LETTER EE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1049C,
},
[0x1049D]={
- ["category"]="lo",
- ["description"]="OSMANYA LETTER OO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1049D, -- 𐒝
+ category="lo",
+ description="OSMANYA LETTER OO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1049D,
},
[0x104A0]={
- ["category"]="nd",
- ["description"]="OSMANYA DIGIT ZERO",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x104A0, -- 𐒠
+ category="nd",
+ description="OSMANYA DIGIT ZERO",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x104A0,
},
[0x104A1]={
- ["category"]="nd",
- ["description"]="OSMANYA DIGIT ONE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x104A1, -- 𐒡
+ category="nd",
+ description="OSMANYA DIGIT ONE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x104A1,
},
[0x104A2]={
- ["category"]="nd",
- ["description"]="OSMANYA DIGIT TWO",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x104A2, -- 𐒢
+ category="nd",
+ description="OSMANYA DIGIT TWO",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x104A2,
},
[0x104A3]={
- ["category"]="nd",
- ["description"]="OSMANYA DIGIT THREE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x104A3, -- 𐒣
+ category="nd",
+ description="OSMANYA DIGIT THREE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x104A3,
},
[0x104A4]={
- ["category"]="nd",
- ["description"]="OSMANYA DIGIT FOUR",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x104A4, -- 𐒤
+ category="nd",
+ description="OSMANYA DIGIT FOUR",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x104A4,
},
[0x104A5]={
- ["category"]="nd",
- ["description"]="OSMANYA DIGIT FIVE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x104A5, -- 𐒥
+ category="nd",
+ description="OSMANYA DIGIT FIVE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x104A5,
},
[0x104A6]={
- ["category"]="nd",
- ["description"]="OSMANYA DIGIT SIX",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x104A6, -- 𐒦
+ category="nd",
+ description="OSMANYA DIGIT SIX",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x104A6,
},
[0x104A7]={
- ["category"]="nd",
- ["description"]="OSMANYA DIGIT SEVEN",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x104A7, -- 𐒧
+ category="nd",
+ description="OSMANYA DIGIT SEVEN",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x104A7,
},
[0x104A8]={
- ["category"]="nd",
- ["description"]="OSMANYA DIGIT EIGHT",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x104A8, -- 𐒨
+ category="nd",
+ description="OSMANYA DIGIT EIGHT",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x104A8,
},
[0x104A9]={
- ["category"]="nd",
- ["description"]="OSMANYA DIGIT NINE",
- ["linebreak"]="nu",
- ["unicodeslot"]=0x104A9, -- 𐒩
+ category="nd",
+ description="OSMANYA DIGIT NINE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x104A9,
},
[0x10800]={
- ["category"]="lo",
- ["description"]="CYPRIOT SYLLABLE A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10800, -- 𐠀
+ category="lo",
+ description="CYPRIOT SYLLABLE A",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10800,
},
[0x10801]={
- ["category"]="lo",
- ["description"]="CYPRIOT SYLLABLE E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10801, -- 𐠁
+ category="lo",
+ description="CYPRIOT SYLLABLE E",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10801,
},
[0x10802]={
- ["category"]="lo",
- ["description"]="CYPRIOT SYLLABLE I",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10802, -- 𐠂
+ category="lo",
+ description="CYPRIOT SYLLABLE I",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10802,
},
[0x10803]={
- ["category"]="lo",
- ["description"]="CYPRIOT SYLLABLE O",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10803, -- 𐠃
+ category="lo",
+ description="CYPRIOT SYLLABLE O",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10803,
},
[0x10804]={
- ["category"]="lo",
- ["description"]="CYPRIOT SYLLABLE U",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10804, -- 𐠄
+ category="lo",
+ description="CYPRIOT SYLLABLE U",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10804,
},
[0x10805]={
- ["category"]="lo",
- ["description"]="CYPRIOT SYLLABLE JA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10805, -- 𐠅
+ category="lo",
+ description="CYPRIOT SYLLABLE JA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10805,
},
[0x10808]={
- ["category"]="lo",
- ["description"]="CYPRIOT SYLLABLE JO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10808, -- 𐠈
+ category="lo",
+ description="CYPRIOT SYLLABLE JO",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10808,
},
[0x1080A]={
- ["category"]="lo",
- ["description"]="CYPRIOT SYLLABLE KA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1080A, -- 𐠊
+ category="lo",
+ description="CYPRIOT SYLLABLE KA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x1080A,
},
[0x1080B]={
- ["category"]="lo",
- ["description"]="CYPRIOT SYLLABLE KE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1080B, -- 𐠋
+ category="lo",
+ description="CYPRIOT SYLLABLE KE",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x1080B,
},
[0x1080C]={
- ["category"]="lo",
- ["description"]="CYPRIOT SYLLABLE KI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1080C, -- 𐠌
+ category="lo",
+ description="CYPRIOT SYLLABLE KI",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x1080C,
},
[0x1080D]={
- ["category"]="lo",
- ["description"]="CYPRIOT SYLLABLE KO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1080D, -- 𐠍
+ category="lo",
+ description="CYPRIOT SYLLABLE KO",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x1080D,
},
[0x1080E]={
- ["category"]="lo",
- ["description"]="CYPRIOT SYLLABLE KU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1080E, -- 𐠎
+ category="lo",
+ description="CYPRIOT SYLLABLE KU",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x1080E,
},
[0x1080F]={
- ["category"]="lo",
- ["description"]="CYPRIOT SYLLABLE LA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1080F, -- 𐠏
+ category="lo",
+ description="CYPRIOT SYLLABLE LA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x1080F,
},
[0x10810]={
- ["category"]="lo",
- ["description"]="CYPRIOT SYLLABLE LE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10810, -- 𐠐
+ category="lo",
+ description="CYPRIOT SYLLABLE LE",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10810,
},
[0x10811]={
- ["category"]="lo",
- ["description"]="CYPRIOT SYLLABLE LI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10811, -- 𐠑
+ category="lo",
+ description="CYPRIOT SYLLABLE LI",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10811,
},
[0x10812]={
- ["category"]="lo",
- ["description"]="CYPRIOT SYLLABLE LO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10812, -- 𐠒
+ category="lo",
+ description="CYPRIOT SYLLABLE LO",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10812,
},
[0x10813]={
- ["category"]="lo",
- ["description"]="CYPRIOT SYLLABLE LU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10813, -- 𐠓
+ category="lo",
+ description="CYPRIOT SYLLABLE LU",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10813,
},
[0x10814]={
- ["category"]="lo",
- ["description"]="CYPRIOT SYLLABLE MA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10814, -- 𐠔
+ category="lo",
+ description="CYPRIOT SYLLABLE MA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10814,
},
[0x10815]={
- ["category"]="lo",
- ["description"]="CYPRIOT SYLLABLE ME",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10815, -- 𐠕
+ category="lo",
+ description="CYPRIOT SYLLABLE ME",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10815,
},
[0x10816]={
- ["category"]="lo",
- ["description"]="CYPRIOT SYLLABLE MI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10816, -- 𐠖
+ category="lo",
+ description="CYPRIOT SYLLABLE MI",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10816,
},
[0x10817]={
- ["category"]="lo",
- ["description"]="CYPRIOT SYLLABLE MO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10817, -- 𐠗
+ category="lo",
+ description="CYPRIOT SYLLABLE MO",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10817,
},
[0x10818]={
- ["category"]="lo",
- ["description"]="CYPRIOT SYLLABLE MU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10818, -- 𐠘
+ category="lo",
+ description="CYPRIOT SYLLABLE MU",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10818,
},
[0x10819]={
- ["category"]="lo",
- ["description"]="CYPRIOT SYLLABLE NA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10819, -- 𐠙
+ category="lo",
+ description="CYPRIOT SYLLABLE NA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10819,
},
[0x1081A]={
- ["category"]="lo",
- ["description"]="CYPRIOT SYLLABLE NE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1081A, -- 𐠚
+ category="lo",
+ description="CYPRIOT SYLLABLE NE",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x1081A,
},
[0x1081B]={
- ["category"]="lo",
- ["description"]="CYPRIOT SYLLABLE NI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1081B, -- 𐠛
+ category="lo",
+ description="CYPRIOT SYLLABLE NI",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x1081B,
},
[0x1081C]={
- ["category"]="lo",
- ["description"]="CYPRIOT SYLLABLE NO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1081C, -- 𐠜
+ category="lo",
+ description="CYPRIOT SYLLABLE NO",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x1081C,
},
[0x1081D]={
- ["category"]="lo",
- ["description"]="CYPRIOT SYLLABLE NU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1081D, -- 𐠝
+ category="lo",
+ description="CYPRIOT SYLLABLE NU",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x1081D,
},
[0x1081E]={
- ["category"]="lo",
- ["description"]="CYPRIOT SYLLABLE PA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1081E, -- 𐠞
+ category="lo",
+ description="CYPRIOT SYLLABLE PA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x1081E,
},
[0x1081F]={
- ["category"]="lo",
- ["description"]="CYPRIOT SYLLABLE PE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1081F, -- 𐠟
+ category="lo",
+ description="CYPRIOT SYLLABLE PE",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x1081F,
},
[0x10820]={
- ["category"]="lo",
- ["description"]="CYPRIOT SYLLABLE PI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10820, -- 𐠠
+ category="lo",
+ description="CYPRIOT SYLLABLE PI",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10820,
},
[0x10821]={
- ["category"]="lo",
- ["description"]="CYPRIOT SYLLABLE PO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10821, -- 𐠡
+ category="lo",
+ description="CYPRIOT SYLLABLE PO",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10821,
},
[0x10822]={
- ["category"]="lo",
- ["description"]="CYPRIOT SYLLABLE PU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10822, -- 𐠢
+ category="lo",
+ description="CYPRIOT SYLLABLE PU",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10822,
},
[0x10823]={
- ["category"]="lo",
- ["description"]="CYPRIOT SYLLABLE RA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10823, -- 𐠣
+ category="lo",
+ description="CYPRIOT SYLLABLE RA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10823,
},
[0x10824]={
- ["category"]="lo",
- ["description"]="CYPRIOT SYLLABLE RE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10824, -- 𐠤
+ category="lo",
+ description="CYPRIOT SYLLABLE RE",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10824,
},
[0x10825]={
- ["category"]="lo",
- ["description"]="CYPRIOT SYLLABLE RI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10825, -- 𐠥
+ category="lo",
+ description="CYPRIOT SYLLABLE RI",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10825,
},
[0x10826]={
- ["category"]="lo",
- ["description"]="CYPRIOT SYLLABLE RO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10826, -- 𐠦
+ category="lo",
+ description="CYPRIOT SYLLABLE RO",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10826,
},
[0x10827]={
- ["category"]="lo",
- ["description"]="CYPRIOT SYLLABLE RU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10827, -- 𐠧
+ category="lo",
+ description="CYPRIOT SYLLABLE RU",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10827,
},
[0x10828]={
- ["category"]="lo",
- ["description"]="CYPRIOT SYLLABLE SA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10828, -- 𐠨
+ category="lo",
+ description="CYPRIOT SYLLABLE SA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10828,
},
[0x10829]={
- ["category"]="lo",
- ["description"]="CYPRIOT SYLLABLE SE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10829, -- 𐠩
+ category="lo",
+ description="CYPRIOT SYLLABLE SE",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10829,
},
[0x1082A]={
- ["category"]="lo",
- ["description"]="CYPRIOT SYLLABLE SI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1082A, -- 𐠪
+ category="lo",
+ description="CYPRIOT SYLLABLE SI",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x1082A,
},
[0x1082B]={
- ["category"]="lo",
- ["description"]="CYPRIOT SYLLABLE SO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1082B, -- 𐠫
+ category="lo",
+ description="CYPRIOT SYLLABLE SO",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x1082B,
},
[0x1082C]={
- ["category"]="lo",
- ["description"]="CYPRIOT SYLLABLE SU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1082C, -- 𐠬
+ category="lo",
+ description="CYPRIOT SYLLABLE SU",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x1082C,
},
[0x1082D]={
- ["category"]="lo",
- ["description"]="CYPRIOT SYLLABLE TA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1082D, -- 𐠭
+ category="lo",
+ description="CYPRIOT SYLLABLE TA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x1082D,
},
[0x1082E]={
- ["category"]="lo",
- ["description"]="CYPRIOT SYLLABLE TE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1082E, -- 𐠮
+ category="lo",
+ description="CYPRIOT SYLLABLE TE",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x1082E,
},
[0x1082F]={
- ["category"]="lo",
- ["description"]="CYPRIOT SYLLABLE TI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1082F, -- 𐠯
+ category="lo",
+ description="CYPRIOT SYLLABLE TI",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x1082F,
},
[0x10830]={
- ["category"]="lo",
- ["description"]="CYPRIOT SYLLABLE TO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10830, -- 𐠰
+ category="lo",
+ description="CYPRIOT SYLLABLE TO",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10830,
},
[0x10831]={
- ["category"]="lo",
- ["description"]="CYPRIOT SYLLABLE TU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10831, -- 𐠱
+ category="lo",
+ description="CYPRIOT SYLLABLE TU",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10831,
},
[0x10832]={
- ["category"]="lo",
- ["description"]="CYPRIOT SYLLABLE WA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10832, -- 𐠲
+ category="lo",
+ description="CYPRIOT SYLLABLE WA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10832,
},
[0x10833]={
- ["category"]="lo",
- ["description"]="CYPRIOT SYLLABLE WE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10833, -- 𐠳
+ category="lo",
+ description="CYPRIOT SYLLABLE WE",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10833,
},
[0x10834]={
- ["category"]="lo",
- ["description"]="CYPRIOT SYLLABLE WI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10834, -- 𐠴
+ category="lo",
+ description="CYPRIOT SYLLABLE WI",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10834,
},
[0x10835]={
- ["category"]="lo",
- ["description"]="CYPRIOT SYLLABLE WO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10835, -- 𐠵
+ category="lo",
+ description="CYPRIOT SYLLABLE WO",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10835,
},
[0x10837]={
- ["category"]="lo",
- ["description"]="CYPRIOT SYLLABLE XA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10837, -- 𐠷
+ category="lo",
+ description="CYPRIOT SYLLABLE XA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10837,
},
[0x10838]={
- ["category"]="lo",
- ["description"]="CYPRIOT SYLLABLE XE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10838, -- 𐠸
+ category="lo",
+ description="CYPRIOT SYLLABLE XE",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10838,
},
[0x1083C]={
- ["category"]="lo",
- ["description"]="CYPRIOT SYLLABLE ZA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1083C, -- 𐠼
+ category="lo",
+ description="CYPRIOT SYLLABLE ZA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x1083C,
},
[0x1083F]={
- ["category"]="lo",
- ["description"]="CYPRIOT SYLLABLE ZO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1083F, -- 𐠿
+ category="lo",
+ description="CYPRIOT SYLLABLE ZO",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x1083F,
},
[0x10900]={
- ["category"]="lo",
- ["description"]="PHOENICIAN LETTER ALF",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10900, -- 𐤀
+ category="lo",
+ description="PHOENICIAN LETTER ALF",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10900,
},
[0x10901]={
- ["category"]="lo",
- ["description"]="PHOENICIAN LETTER BET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10901, -- 𐤁
+ category="lo",
+ description="PHOENICIAN LETTER BET",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10901,
},
[0x10902]={
- ["category"]="lo",
- ["description"]="PHOENICIAN LETTER GAML",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10902, -- 𐤂
+ category="lo",
+ description="PHOENICIAN LETTER GAML",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10902,
},
[0x10903]={
- ["category"]="lo",
- ["description"]="PHOENICIAN LETTER DELT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10903, -- 𐤃
+ category="lo",
+ description="PHOENICIAN LETTER DELT",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10903,
},
[0x10904]={
- ["category"]="lo",
- ["description"]="PHOENICIAN LETTER HE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10904, -- 𐤄
+ category="lo",
+ description="PHOENICIAN LETTER HE",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10904,
},
[0x10905]={
- ["category"]="lo",
- ["description"]="PHOENICIAN LETTER WAU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10905, -- 𐤅
+ category="lo",
+ description="PHOENICIAN LETTER WAU",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10905,
},
[0x10906]={
- ["category"]="lo",
- ["description"]="PHOENICIAN LETTER ZAI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10906, -- 𐤆
+ category="lo",
+ description="PHOENICIAN LETTER ZAI",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10906,
},
[0x10907]={
- ["category"]="lo",
- ["description"]="PHOENICIAN LETTER HET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10907, -- 𐤇
+ category="lo",
+ description="PHOENICIAN LETTER HET",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10907,
},
[0x10908]={
- ["category"]="lo",
- ["description"]="PHOENICIAN LETTER TET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10908, -- 𐤈
+ category="lo",
+ description="PHOENICIAN LETTER TET",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10908,
},
[0x10909]={
- ["category"]="lo",
- ["description"]="PHOENICIAN LETTER YOD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10909, -- 𐤉
+ category="lo",
+ description="PHOENICIAN LETTER YOD",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10909,
},
[0x1090A]={
- ["category"]="lo",
- ["description"]="PHOENICIAN LETTER KAF",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1090A, -- 𐤊
+ category="lo",
+ description="PHOENICIAN LETTER KAF",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x1090A,
},
[0x1090B]={
- ["category"]="lo",
- ["description"]="PHOENICIAN LETTER LAMD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1090B, -- 𐤋
+ category="lo",
+ description="PHOENICIAN LETTER LAMD",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x1090B,
},
[0x1090C]={
- ["category"]="lo",
- ["description"]="PHOENICIAN LETTER MEM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1090C, -- 𐤌
+ category="lo",
+ description="PHOENICIAN LETTER MEM",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x1090C,
},
[0x1090D]={
- ["category"]="lo",
- ["description"]="PHOENICIAN LETTER NUN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1090D, -- 𐤍
+ category="lo",
+ description="PHOENICIAN LETTER NUN",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x1090D,
},
[0x1090E]={
- ["category"]="lo",
- ["description"]="PHOENICIAN LETTER SEMK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1090E, -- 𐤎
+ category="lo",
+ description="PHOENICIAN LETTER SEMK",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x1090E,
},
[0x1090F]={
- ["category"]="lo",
- ["description"]="PHOENICIAN LETTER AIN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1090F, -- 𐤏
+ category="lo",
+ description="PHOENICIAN LETTER AIN",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x1090F,
},
[0x10910]={
- ["category"]="lo",
- ["description"]="PHOENICIAN LETTER PE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10910, -- 𐤐
+ category="lo",
+ description="PHOENICIAN LETTER PE",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10910,
},
[0x10911]={
- ["category"]="lo",
- ["description"]="PHOENICIAN LETTER SADE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10911, -- 𐤑
+ category="lo",
+ description="PHOENICIAN LETTER SADE",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10911,
},
[0x10912]={
- ["category"]="lo",
- ["description"]="PHOENICIAN LETTER QOF",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10912, -- 𐤒
+ category="lo",
+ description="PHOENICIAN LETTER QOF",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10912,
},
[0x10913]={
- ["category"]="lo",
- ["description"]="PHOENICIAN LETTER ROSH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10913, -- 𐤓
+ category="lo",
+ description="PHOENICIAN LETTER ROSH",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10913,
},
[0x10914]={
- ["category"]="lo",
- ["description"]="PHOENICIAN LETTER SHIN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10914, -- 𐤔
+ category="lo",
+ description="PHOENICIAN LETTER SHIN",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10914,
},
[0x10915]={
- ["category"]="lo",
- ["description"]="PHOENICIAN LETTER TAU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10915, -- 𐤕
+ category="lo",
+ description="PHOENICIAN LETTER TAU",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10915,
},
[0x10916]={
- ["category"]="no",
- ["description"]="PHOENICIAN NUMBER ONE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10916, -- 𐤖
+ category="no",
+ description="PHOENICIAN NUMBER ONE",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10916,
},
[0x10917]={
- ["category"]="no",
- ["description"]="PHOENICIAN NUMBER TEN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10917, -- 𐤗
+ category="no",
+ description="PHOENICIAN NUMBER TEN",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10917,
},
[0x10918]={
- ["category"]="no",
- ["description"]="PHOENICIAN NUMBER TWENTY",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10918, -- 𐤘
+ category="no",
+ description="PHOENICIAN NUMBER TWENTY",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10918,
},
[0x10919]={
- ["category"]="no",
- ["description"]="PHOENICIAN NUMBER ONE HUNDRED",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10919, -- 𐤙
+ category="no",
+ description="PHOENICIAN NUMBER ONE HUNDRED",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10919,
},
[0x1091F]={
- ["category"]="po",
- ["description"]="PHOENICIAN WORD SEPARATOR",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x1091F, -- 𐤟
+ category="po",
+ description="PHOENICIAN WORD SEPARATOR",
+ direction="on",
+ linebreak="ba",
+ unicodeslot=0x1091F,
},
[0x10A00]={
- ["category"]="lo",
- ["description"]="KHAROSHTHI LETTER A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10A00, -- 𐨀
+ category="lo",
+ description="KHAROSHTHI LETTER A",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10A00,
},
[0x10A01]={
- ["category"]="mn",
- ["description"]="KHAROSHTHI VOWEL SIGN I",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x10A01, -- 𐨁
+ category="mn",
+ description="KHAROSHTHI VOWEL SIGN I",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x10A01,
},
[0x10A02]={
- ["category"]="mn",
- ["description"]="KHAROSHTHI VOWEL SIGN U",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x10A02, -- 𐨂
+ category="mn",
+ description="KHAROSHTHI VOWEL SIGN U",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x10A02,
},
[0x10A03]={
- ["category"]="mn",
- ["description"]="KHAROSHTHI VOWEL SIGN VOCALIC R",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x10A03, -- 𐨃
+ category="mn",
+ description="KHAROSHTHI VOWEL SIGN VOCALIC R",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x10A03,
},
[0x10A05]={
- ["category"]="mn",
- ["description"]="KHAROSHTHI VOWEL SIGN E",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x10A05, -- 𐨅
+ category="mn",
+ description="KHAROSHTHI VOWEL SIGN E",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x10A05,
},
[0x10A06]={
- ["category"]="mn",
- ["description"]="KHAROSHTHI VOWEL SIGN O",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x10A06, -- 𐨆
+ category="mn",
+ description="KHAROSHTHI VOWEL SIGN O",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x10A06,
},
[0x10A0C]={
- ["category"]="mn",
- ["description"]="KHAROSHTHI VOWEL LENGTH MARK",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x10A0C, -- 𐨌
+ category="mn",
+ description="KHAROSHTHI VOWEL LENGTH MARK",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x10A0C,
},
[0x10A0D]={
- ["category"]="mn",
- ["description"]="KHAROSHTHI SIGN DOUBLE RING BELOW",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x10A0D, -- 𐨍
+ category="mn",
+ description="KHAROSHTHI SIGN DOUBLE RING BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x10A0D,
},
[0x10A0E]={
- ["category"]="mn",
- ["description"]="KHAROSHTHI SIGN ANUSVARA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x10A0E, -- 𐨎
+ category="mn",
+ description="KHAROSHTHI SIGN ANUSVARA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x10A0E,
},
[0x10A0F]={
- ["category"]="mn",
- ["description"]="KHAROSHTHI SIGN VISARGA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x10A0F, -- 𐨏
+ category="mn",
+ description="KHAROSHTHI SIGN VISARGA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x10A0F,
},
[0x10A10]={
- ["category"]="lo",
- ["description"]="KHAROSHTHI LETTER KA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10A10, -- 𐨐
+ category="lo",
+ description="KHAROSHTHI LETTER KA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10A10,
},
[0x10A11]={
- ["category"]="lo",
- ["description"]="KHAROSHTHI LETTER KHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10A11, -- 𐨑
+ category="lo",
+ description="KHAROSHTHI LETTER KHA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10A11,
},
[0x10A12]={
- ["category"]="lo",
- ["description"]="KHAROSHTHI LETTER GA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10A12, -- 𐨒
+ category="lo",
+ description="KHAROSHTHI LETTER GA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10A12,
},
[0x10A13]={
- ["category"]="lo",
- ["description"]="KHAROSHTHI LETTER GHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10A13, -- 𐨓
+ category="lo",
+ description="KHAROSHTHI LETTER GHA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10A13,
},
[0x10A15]={
- ["category"]="lo",
- ["description"]="KHAROSHTHI LETTER CA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10A15, -- 𐨕
+ category="lo",
+ description="KHAROSHTHI LETTER CA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10A15,
},
[0x10A16]={
- ["category"]="lo",
- ["description"]="KHAROSHTHI LETTER CHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10A16, -- 𐨖
+ category="lo",
+ description="KHAROSHTHI LETTER CHA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10A16,
},
[0x10A17]={
- ["category"]="lo",
- ["description"]="KHAROSHTHI LETTER JA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10A17, -- 𐨗
+ category="lo",
+ description="KHAROSHTHI LETTER JA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10A17,
},
[0x10A19]={
- ["category"]="lo",
- ["description"]="KHAROSHTHI LETTER NYA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10A19, -- 𐨙
+ category="lo",
+ description="KHAROSHTHI LETTER NYA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10A19,
},
[0x10A1A]={
- ["category"]="lo",
- ["description"]="KHAROSHTHI LETTER TTA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10A1A, -- 𐨚
+ category="lo",
+ description="KHAROSHTHI LETTER TTA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10A1A,
},
[0x10A1B]={
- ["category"]="lo",
- ["description"]="KHAROSHTHI LETTER TTHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10A1B, -- 𐨛
+ category="lo",
+ description="KHAROSHTHI LETTER TTHA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10A1B,
},
[0x10A1C]={
- ["category"]="lo",
- ["description"]="KHAROSHTHI LETTER DDA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10A1C, -- 𐨜
+ category="lo",
+ description="KHAROSHTHI LETTER DDA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10A1C,
},
[0x10A1D]={
- ["category"]="lo",
- ["description"]="KHAROSHTHI LETTER DDHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10A1D, -- 𐨝
+ category="lo",
+ description="KHAROSHTHI LETTER DDHA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10A1D,
},
[0x10A1E]={
- ["category"]="lo",
- ["description"]="KHAROSHTHI LETTER NNA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10A1E, -- 𐨞
+ category="lo",
+ description="KHAROSHTHI LETTER NNA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10A1E,
},
[0x10A1F]={
- ["category"]="lo",
- ["description"]="KHAROSHTHI LETTER TA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10A1F, -- 𐨟
+ category="lo",
+ description="KHAROSHTHI LETTER TA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10A1F,
},
[0x10A20]={
- ["category"]="lo",
- ["description"]="KHAROSHTHI LETTER THA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10A20, -- 𐨠
+ category="lo",
+ description="KHAROSHTHI LETTER THA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10A20,
},
[0x10A21]={
- ["category"]="lo",
- ["description"]="KHAROSHTHI LETTER DA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10A21, -- 𐨡
+ category="lo",
+ description="KHAROSHTHI LETTER DA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10A21,
},
[0x10A22]={
- ["category"]="lo",
- ["description"]="KHAROSHTHI LETTER DHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10A22, -- 𐨢
+ category="lo",
+ description="KHAROSHTHI LETTER DHA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10A22,
},
[0x10A23]={
- ["category"]="lo",
- ["description"]="KHAROSHTHI LETTER NA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10A23, -- 𐨣
+ category="lo",
+ description="KHAROSHTHI LETTER NA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10A23,
},
[0x10A24]={
- ["category"]="lo",
- ["description"]="KHAROSHTHI LETTER PA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10A24, -- 𐨤
+ category="lo",
+ description="KHAROSHTHI LETTER PA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10A24,
},
[0x10A25]={
- ["category"]="lo",
- ["description"]="KHAROSHTHI LETTER PHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10A25, -- 𐨥
+ category="lo",
+ description="KHAROSHTHI LETTER PHA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10A25,
},
[0x10A26]={
- ["category"]="lo",
- ["description"]="KHAROSHTHI LETTER BA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10A26, -- 𐨦
+ category="lo",
+ description="KHAROSHTHI LETTER BA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10A26,
},
[0x10A27]={
- ["category"]="lo",
- ["description"]="KHAROSHTHI LETTER BHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10A27, -- 𐨧
+ category="lo",
+ description="KHAROSHTHI LETTER BHA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10A27,
},
[0x10A28]={
- ["category"]="lo",
- ["description"]="KHAROSHTHI LETTER MA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10A28, -- 𐨨
+ category="lo",
+ description="KHAROSHTHI LETTER MA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10A28,
},
[0x10A29]={
- ["category"]="lo",
- ["description"]="KHAROSHTHI LETTER YA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10A29, -- 𐨩
+ category="lo",
+ description="KHAROSHTHI LETTER YA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10A29,
},
[0x10A2A]={
- ["category"]="lo",
- ["description"]="KHAROSHTHI LETTER RA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10A2A, -- 𐨪
+ category="lo",
+ description="KHAROSHTHI LETTER RA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10A2A,
},
[0x10A2B]={
- ["category"]="lo",
- ["description"]="KHAROSHTHI LETTER LA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10A2B, -- 𐨫
+ category="lo",
+ description="KHAROSHTHI LETTER LA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10A2B,
},
[0x10A2C]={
- ["category"]="lo",
- ["description"]="KHAROSHTHI LETTER VA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10A2C, -- 𐨬
+ category="lo",
+ description="KHAROSHTHI LETTER VA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10A2C,
},
[0x10A2D]={
- ["category"]="lo",
- ["description"]="KHAROSHTHI LETTER SHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10A2D, -- 𐨭
+ category="lo",
+ description="KHAROSHTHI LETTER SHA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10A2D,
},
[0x10A2E]={
- ["category"]="lo",
- ["description"]="KHAROSHTHI LETTER SSA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10A2E, -- 𐨮
+ category="lo",
+ description="KHAROSHTHI LETTER SSA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10A2E,
},
[0x10A2F]={
- ["category"]="lo",
- ["description"]="KHAROSHTHI LETTER SA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10A2F, -- 𐨯
+ category="lo",
+ description="KHAROSHTHI LETTER SA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10A2F,
},
[0x10A30]={
- ["category"]="lo",
- ["description"]="KHAROSHTHI LETTER ZA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10A30, -- 𐨰
+ category="lo",
+ description="KHAROSHTHI LETTER ZA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10A30,
},
[0x10A31]={
- ["category"]="lo",
- ["description"]="KHAROSHTHI LETTER HA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10A31, -- 𐨱
+ category="lo",
+ description="KHAROSHTHI LETTER HA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10A31,
},
[0x10A32]={
- ["category"]="lo",
- ["description"]="KHAROSHTHI LETTER KKA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10A32, -- 𐨲
+ category="lo",
+ description="KHAROSHTHI LETTER KKA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10A32,
},
[0x10A33]={
- ["category"]="lo",
- ["description"]="KHAROSHTHI LETTER TTTHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10A33, -- 𐨳
+ category="lo",
+ description="KHAROSHTHI LETTER TTTHA",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10A33,
},
[0x10A38]={
- ["category"]="mn",
- ["description"]="KHAROSHTHI SIGN BAR ABOVE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x10A38, -- 𐨸
+ category="mn",
+ description="KHAROSHTHI SIGN BAR ABOVE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x10A38,
},
[0x10A39]={
- ["category"]="mn",
- ["description"]="KHAROSHTHI SIGN CAUDA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x10A39, -- 𐨹
+ category="mn",
+ description="KHAROSHTHI SIGN CAUDA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x10A39,
},
[0x10A3A]={
- ["category"]="mn",
- ["description"]="KHAROSHTHI SIGN DOT BELOW",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x10A3A, -- 𐨺
+ category="mn",
+ description="KHAROSHTHI SIGN DOT BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x10A3A,
},
[0x10A3F]={
- ["category"]="mn",
- ["description"]="KHAROSHTHI VIRAMA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x10A3F, -- 𐨿
+ category="mn",
+ description="KHAROSHTHI VIRAMA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x10A3F,
},
[0x10A40]={
- ["category"]="no",
- ["description"]="KHAROSHTHI DIGIT ONE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10A40, -- 𐩀
+ category="no",
+ description="KHAROSHTHI DIGIT ONE",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10A40,
},
[0x10A41]={
- ["category"]="no",
- ["description"]="KHAROSHTHI DIGIT TWO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10A41, -- 𐩁
+ category="no",
+ description="KHAROSHTHI DIGIT TWO",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10A41,
},
[0x10A42]={
- ["category"]="no",
- ["description"]="KHAROSHTHI DIGIT THREE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10A42, -- 𐩂
+ category="no",
+ description="KHAROSHTHI DIGIT THREE",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10A42,
},
[0x10A43]={
- ["category"]="no",
- ["description"]="KHAROSHTHI DIGIT FOUR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10A43, -- 𐩃
+ category="no",
+ description="KHAROSHTHI DIGIT FOUR",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10A43,
},
[0x10A44]={
- ["category"]="no",
- ["description"]="KHAROSHTHI NUMBER TEN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10A44, -- 𐩄
+ category="no",
+ description="KHAROSHTHI NUMBER TEN",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10A44,
},
[0x10A45]={
- ["category"]="no",
- ["description"]="KHAROSHTHI NUMBER TWENTY",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10A45, -- 𐩅
+ category="no",
+ description="KHAROSHTHI NUMBER TWENTY",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10A45,
},
[0x10A46]={
- ["category"]="no",
- ["description"]="KHAROSHTHI NUMBER ONE HUNDRED",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10A46, -- 𐩆
+ category="no",
+ description="KHAROSHTHI NUMBER ONE HUNDRED",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10A46,
},
[0x10A47]={
- ["category"]="no",
- ["description"]="KHAROSHTHI NUMBER ONE THOUSAND",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10A47, -- 𐩇
+ category="no",
+ description="KHAROSHTHI NUMBER ONE THOUSAND",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10A47,
},
[0x10A50]={
- ["category"]="po",
- ["description"]="KHAROSHTHI PUNCTUATION DOT",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x10A50, -- 𐩐
+ category="po",
+ description="KHAROSHTHI PUNCTUATION DOT",
+ direction="r",
+ linebreak="ba",
+ unicodeslot=0x10A50,
},
[0x10A51]={
- ["category"]="po",
- ["description"]="KHAROSHTHI PUNCTUATION SMALL CIRCLE",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x10A51, -- 𐩑
+ category="po",
+ description="KHAROSHTHI PUNCTUATION SMALL CIRCLE",
+ direction="r",
+ linebreak="ba",
+ unicodeslot=0x10A51,
},
[0x10A52]={
- ["category"]="po",
- ["description"]="KHAROSHTHI PUNCTUATION CIRCLE",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x10A52, -- 𐩒
+ category="po",
+ description="KHAROSHTHI PUNCTUATION CIRCLE",
+ direction="r",
+ linebreak="ba",
+ unicodeslot=0x10A52,
},
[0x10A53]={
- ["category"]="po",
- ["description"]="KHAROSHTHI PUNCTUATION CRESCENT BAR",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x10A53, -- 𐩓
+ category="po",
+ description="KHAROSHTHI PUNCTUATION CRESCENT BAR",
+ direction="r",
+ linebreak="ba",
+ unicodeslot=0x10A53,
},
[0x10A54]={
- ["category"]="po",
- ["description"]="KHAROSHTHI PUNCTUATION MANGALAM",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x10A54, -- 𐩔
+ category="po",
+ description="KHAROSHTHI PUNCTUATION MANGALAM",
+ direction="r",
+ linebreak="ba",
+ unicodeslot=0x10A54,
},
[0x10A55]={
- ["category"]="po",
- ["description"]="KHAROSHTHI PUNCTUATION LOTUS",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x10A55, -- 𐩕
+ category="po",
+ description="KHAROSHTHI PUNCTUATION LOTUS",
+ direction="r",
+ linebreak="ba",
+ unicodeslot=0x10A55,
},
[0x10A56]={
- ["category"]="po",
- ["description"]="KHAROSHTHI PUNCTUATION DANDA",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x10A56, -- 𐩖
+ category="po",
+ description="KHAROSHTHI PUNCTUATION DANDA",
+ direction="r",
+ linebreak="ba",
+ unicodeslot=0x10A56,
},
[0x10A57]={
- ["category"]="po",
- ["description"]="KHAROSHTHI PUNCTUATION DOUBLE DANDA",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x10A57, -- 𐩗
+ category="po",
+ description="KHAROSHTHI PUNCTUATION DOUBLE DANDA",
+ direction="r",
+ linebreak="ba",
+ unicodeslot=0x10A57,
},
[0x10A58]={
- ["category"]="po",
- ["description"]="KHAROSHTHI PUNCTUATION LINES",
- ["linebreak"]="al",
- ["unicodeslot"]=0x10A58, -- 𐩘
+ category="po",
+ description="KHAROSHTHI PUNCTUATION LINES",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10A58,
},
[0x12000]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12000, -- 𒀀
+ category="lo",
+ description="CUNEIFORM SIGN A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12000,
},
[0x12001]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN A TIMES A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12001, -- 𒀁
+ category="lo",
+ description="CUNEIFORM SIGN A TIMES A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12001,
},
[0x12002]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN A TIMES BAD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12002, -- 𒀂
+ category="lo",
+ description="CUNEIFORM SIGN A TIMES BAD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12002,
},
[0x12003]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN A TIMES GAN0x0002 TENU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12003, -- 𒀃
+ category="lo",
+ description="CUNEIFORM SIGN A TIMES GAN0x0002 TENU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12003,
},
[0x12004]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN A TIMES HA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12004, -- 𒀄
+ category="lo",
+ description="CUNEIFORM SIGN A TIMES HA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12004,
},
[0x12005]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN A TIMES IGI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12005, -- 𒀅
+ category="lo",
+ description="CUNEIFORM SIGN A TIMES IGI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12005,
},
[0x12006]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN A TIMES LAGAR GUNU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12006, -- 𒀆
+ category="lo",
+ description="CUNEIFORM SIGN A TIMES LAGAR GUNU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12006,
},
[0x12007]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN A TIMES MUSH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12007, -- 𒀇
+ category="lo",
+ description="CUNEIFORM SIGN A TIMES MUSH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12007,
},
[0x12008]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN A TIMES SAG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12008, -- 𒀈
+ category="lo",
+ description="CUNEIFORM SIGN A TIMES SAG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12008,
},
[0x12009]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN A0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12009, -- 𒀉
+ category="lo",
+ description="CUNEIFORM SIGN A0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12009,
},
[0x1200A]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN AB",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1200A, -- 𒀊
+ category="lo",
+ description="CUNEIFORM SIGN AB",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1200A,
},
[0x1200B]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN AB TIMES ASH0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1200B, -- 𒀋
+ category="lo",
+ description="CUNEIFORM SIGN AB TIMES ASH0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1200B,
},
[0x1200C]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN AB TIMES DUN0x0003 GUNU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1200C, -- 𒀌
+ category="lo",
+ description="CUNEIFORM SIGN AB TIMES DUN0x0003 GUNU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1200C,
},
[0x1200D]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN AB TIMES GAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1200D, -- 𒀍
+ category="lo",
+ description="CUNEIFORM SIGN AB TIMES GAL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1200D,
},
[0x1200E]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN AB TIMES GAN0x0002 TENU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1200E, -- 𒀎
+ category="lo",
+ description="CUNEIFORM SIGN AB TIMES GAN0x0002 TENU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1200E,
},
[0x1200F]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN AB TIMES HA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1200F, -- 𒀏
+ category="lo",
+ description="CUNEIFORM SIGN AB TIMES HA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1200F,
},
[0x12010]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN AB TIMES IGI GUNU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12010, -- 𒀐
+ category="lo",
+ description="CUNEIFORM SIGN AB TIMES IGI GUNU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12010,
},
[0x12011]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN AB TIMES IMIN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12011, -- 𒀑
+ category="lo",
+ description="CUNEIFORM SIGN AB TIMES IMIN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12011,
},
[0x12012]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN AB TIMES LAGAB",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12012, -- 𒀒
+ category="lo",
+ description="CUNEIFORM SIGN AB TIMES LAGAB",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12012,
},
[0x12013]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN AB TIMES SHESH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12013, -- 𒀓
+ category="lo",
+ description="CUNEIFORM SIGN AB TIMES SHESH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12013,
},
[0x12014]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN AB TIMES U PLUS U PLUS U",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12014, -- 𒀔
+ category="lo",
+ description="CUNEIFORM SIGN AB TIMES U PLUS U PLUS U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12014,
},
[0x12015]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN AB GUNU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12015, -- 𒀕
+ category="lo",
+ description="CUNEIFORM SIGN AB GUNU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12015,
},
[0x12016]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN AB0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12016, -- 𒀖
+ category="lo",
+ description="CUNEIFORM SIGN AB0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12016,
},
[0x12017]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN AB0x0002 TIMES BALAG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12017, -- 𒀗
+ category="lo",
+ description="CUNEIFORM SIGN AB0x0002 TIMES BALAG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12017,
},
[0x12018]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN AB0x0002 TIMES GAN0x0002 TENU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12018, -- 𒀘
+ category="lo",
+ description="CUNEIFORM SIGN AB0x0002 TIMES GAN0x0002 TENU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12018,
},
[0x12019]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN AB0x0002 TIMES ME PLUS EN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12019, -- 𒀙
+ category="lo",
+ description="CUNEIFORM SIGN AB0x0002 TIMES ME PLUS EN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12019,
},
[0x1201A]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN AB0x0002 TIMES SHA0x0003",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1201A, -- 𒀚
+ category="lo",
+ description="CUNEIFORM SIGN AB0x0002 TIMES SHA0x0003",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1201A,
},
[0x1201B]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN AB0x0002 TIMES TAK0x0004",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1201B, -- 𒀛
+ category="lo",
+ description="CUNEIFORM SIGN AB0x0002 TIMES TAK0x0004",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1201B,
},
[0x1201C]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN AD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1201C, -- 𒀜
+ category="lo",
+ description="CUNEIFORM SIGN AD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1201C,
},
[0x1201D]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN AK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1201D, -- 𒀝
+ category="lo",
+ description="CUNEIFORM SIGN AK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1201D,
},
[0x1201E]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN AK TIMES ERIN0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1201E, -- 𒀞
+ category="lo",
+ description="CUNEIFORM SIGN AK TIMES ERIN0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1201E,
},
[0x1201F]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN AK TIMES SHITA PLUS GISH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1201F, -- 𒀟
+ category="lo",
+ description="CUNEIFORM SIGN AK TIMES SHITA PLUS GISH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1201F,
},
[0x12020]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN AL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12020, -- 𒀠
+ category="lo",
+ description="CUNEIFORM SIGN AL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12020,
},
[0x12021]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN AL TIMES AL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12021, -- 𒀡
+ category="lo",
+ description="CUNEIFORM SIGN AL TIMES AL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12021,
},
[0x12022]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN AL TIMES DIM0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12022, -- 𒀢
+ category="lo",
+ description="CUNEIFORM SIGN AL TIMES DIM0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12022,
},
[0x12023]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN AL TIMES GISH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12023, -- 𒀣
+ category="lo",
+ description="CUNEIFORM SIGN AL TIMES GISH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12023,
},
[0x12024]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN AL TIMES HA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12024, -- 𒀤
+ category="lo",
+ description="CUNEIFORM SIGN AL TIMES HA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12024,
},
[0x12025]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN AL TIMES KAD0x0003",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12025, -- 𒀥
+ category="lo",
+ description="CUNEIFORM SIGN AL TIMES KAD0x0003",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12025,
},
[0x12026]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN AL TIMES KI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12026, -- 𒀦
+ category="lo",
+ description="CUNEIFORM SIGN AL TIMES KI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12026,
},
[0x12027]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN AL TIMES SHE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12027, -- 𒀧
+ category="lo",
+ description="CUNEIFORM SIGN AL TIMES SHE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12027,
},
[0x12028]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN AL TIMES USH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12028, -- 𒀨
+ category="lo",
+ description="CUNEIFORM SIGN AL TIMES USH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12028,
},
[0x12029]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN ALAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12029, -- 𒀩
+ category="lo",
+ description="CUNEIFORM SIGN ALAN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12029,
},
[0x1202A]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN ALEPH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1202A, -- 𒀪
+ category="lo",
+ description="CUNEIFORM SIGN ALEPH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1202A,
},
[0x1202B]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN AMAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1202B, -- 𒀫
+ category="lo",
+ description="CUNEIFORM SIGN AMAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1202B,
},
[0x1202C]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN AMAR TIMES SHE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1202C, -- 𒀬
+ category="lo",
+ description="CUNEIFORM SIGN AMAR TIMES SHE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1202C,
},
[0x1202D]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN AN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1202D, -- 𒀭
+ category="lo",
+ description="CUNEIFORM SIGN AN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1202D,
},
[0x1202E]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN AN OVER AN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1202E, -- 𒀮
+ category="lo",
+ description="CUNEIFORM SIGN AN OVER AN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1202E,
},
[0x1202F]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN AN THREE TIMES",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1202F, -- 𒀯
+ category="lo",
+ description="CUNEIFORM SIGN AN THREE TIMES",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1202F,
},
[0x12030]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN AN PLUS NAGA OPPOSING AN PLUS NAGA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12030, -- 𒀰
+ category="lo",
+ description="CUNEIFORM SIGN AN PLUS NAGA OPPOSING AN PLUS NAGA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12030,
},
[0x12031]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN AN PLUS NAGA SQUARED",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12031, -- 𒀱
+ category="lo",
+ description="CUNEIFORM SIGN AN PLUS NAGA SQUARED",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12031,
},
[0x12032]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN ANSHE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12032, -- 𒀲
+ category="lo",
+ description="CUNEIFORM SIGN ANSHE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12032,
},
[0x12033]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN APIN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12033, -- 𒀳
+ category="lo",
+ description="CUNEIFORM SIGN APIN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12033,
},
[0x12034]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN ARAD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12034, -- 𒀴
+ category="lo",
+ description="CUNEIFORM SIGN ARAD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12034,
},
[0x12035]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN ARAD TIMES KUR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12035, -- 𒀵
+ category="lo",
+ description="CUNEIFORM SIGN ARAD TIMES KUR",
+ direction="l",
+ linebreak="al",
+ mathclass="ord",
+ mathname="backprime",
+ unicodeslot=0x12035,
},
[0x12036]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN ARKAB",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12036, -- 𒀶
+ category="lo",
+ description="CUNEIFORM SIGN ARKAB",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12036,
},
[0x12037]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN ASAL0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12037, -- 𒀷
+ category="lo",
+ description="CUNEIFORM SIGN ASAL0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12037,
},
[0x12038]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN ASH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12038, -- 𒀸
+ category="lo",
+ description="CUNEIFORM SIGN ASH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12038,
},
[0x12039]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN ASH ZIDA TENU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12039, -- 𒀹
+ category="lo",
+ description="CUNEIFORM SIGN ASH ZIDA TENU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12039,
},
[0x1203A]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN ASH KABA TENU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1203A, -- 𒀺
+ category="lo",
+ description="CUNEIFORM SIGN ASH KABA TENU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1203A,
},
[0x1203B]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN ASH OVER ASH TUG0x0002 OVER TUG0x0002 TUG0x0002 OVER TUG0x0002 PAP",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1203B, -- 𒀻
+ category="lo",
+ description="CUNEIFORM SIGN ASH OVER ASH TUG0x0002 OVER TUG0x0002 TUG0x0002 OVER TUG0x0002 PAP",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1203B,
},
[0x1203C]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN ASH OVER ASH OVER ASH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1203C, -- 𒀼
+ category="lo",
+ description="CUNEIFORM SIGN ASH OVER ASH OVER ASH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1203C,
},
[0x1203D]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN ASH OVER ASH OVER ASH CROSSING ASH OVER ASH OVER ASH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1203D, -- 𒀽
+ category="lo",
+ description="CUNEIFORM SIGN ASH OVER ASH OVER ASH CROSSING ASH OVER ASH OVER ASH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1203D,
},
[0x1203E]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN ASH0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1203E, -- 𒀾
+ category="lo",
+ description="CUNEIFORM SIGN ASH0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1203E,
},
[0x1203F]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN ASHGAB",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1203F, -- 𒀿
+ category="lo",
+ description="CUNEIFORM SIGN ASHGAB",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1203F,
},
[0x12040]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN BA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12040, -- 𒁀
+ category="lo",
+ description="CUNEIFORM SIGN BA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12040,
},
[0x12041]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN BAD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12041, -- 𒁁
+ category="lo",
+ description="CUNEIFORM SIGN BAD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12041,
},
[0x12042]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN BAG0x0003",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12042, -- 𒁂
+ category="lo",
+ description="CUNEIFORM SIGN BAG0x0003",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12042,
},
[0x12043]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN BAHAR0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12043, -- 𒁃
+ category="lo",
+ description="CUNEIFORM SIGN BAHAR0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12043,
},
[0x12044]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN BAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12044, -- 𒁄
+ category="lo",
+ description="CUNEIFORM SIGN BAL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12044,
},
[0x12045]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN BAL OVER BAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12045, -- 𒁅
+ category="lo",
+ description="CUNEIFORM SIGN BAL OVER BAL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12045,
},
[0x12046]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN BALAG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12046, -- 𒁆
+ category="lo",
+ description="CUNEIFORM SIGN BALAG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12046,
},
[0x12047]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12047, -- 𒁇
+ category="lo",
+ description="CUNEIFORM SIGN BAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12047,
},
[0x12048]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN BARA0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12048, -- 𒁈
+ category="lo",
+ description="CUNEIFORM SIGN BARA0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12048,
},
[0x12049]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN BI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12049, -- 𒁉
+ category="lo",
+ description="CUNEIFORM SIGN BI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12049,
},
[0x1204A]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN BI TIMES A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1204A, -- 𒁊
+ category="lo",
+ description="CUNEIFORM SIGN BI TIMES A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1204A,
},
[0x1204B]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN BI TIMES GAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1204B, -- 𒁋
+ category="lo",
+ description="CUNEIFORM SIGN BI TIMES GAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1204B,
},
[0x1204C]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN BI TIMES IGI GUNU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1204C, -- 𒁌
+ category="lo",
+ description="CUNEIFORM SIGN BI TIMES IGI GUNU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1204C,
},
[0x1204D]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN BU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1204D, -- 𒁍
+ category="lo",
+ description="CUNEIFORM SIGN BU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1204D,
},
[0x1204E]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN BU OVER BU AB",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1204E, -- 𒁎
+ category="lo",
+ description="CUNEIFORM SIGN BU OVER BU AB",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1204E,
},
[0x1204F]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN BU OVER BU UN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1204F, -- 𒁏
+ category="lo",
+ description="CUNEIFORM SIGN BU OVER BU UN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1204F,
},
[0x12050]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN BU CROSSING BU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12050, -- 𒁐
+ category="lo",
+ description="CUNEIFORM SIGN BU CROSSING BU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12050,
},
[0x12051]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN BULUG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12051, -- 𒁑
+ category="lo",
+ description="CUNEIFORM SIGN BULUG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12051,
},
[0x12052]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN BULUG OVER BULUG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12052, -- 𒁒
+ category="lo",
+ description="CUNEIFORM SIGN BULUG OVER BULUG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12052,
},
[0x12053]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN BUR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12053, -- 𒁓
+ category="lo",
+ description="CUNEIFORM SIGN BUR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12053,
},
[0x12054]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN BUR0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12054, -- 𒁔
+ category="lo",
+ description="CUNEIFORM SIGN BUR0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12054,
},
[0x12055]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN DA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12055, -- 𒁕
+ category="lo",
+ description="CUNEIFORM SIGN DA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12055,
},
[0x12056]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN DAG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12056, -- 𒁖
+ category="lo",
+ description="CUNEIFORM SIGN DAG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12056,
},
[0x12057]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN DAG KISIM0x0005 TIMES A PLUS MASH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12057, -- 𒁗
+ category="lo",
+ description="CUNEIFORM SIGN DAG KISIM0x0005 TIMES A PLUS MASH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12057,
},
[0x12058]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN DAG KISIM0x0005 TIMES AMAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12058, -- 𒁘
+ category="lo",
+ description="CUNEIFORM SIGN DAG KISIM0x0005 TIMES AMAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12058,
},
[0x12059]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN DAG KISIM0x0005 TIMES BALAG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12059, -- 𒁙
+ category="lo",
+ description="CUNEIFORM SIGN DAG KISIM0x0005 TIMES BALAG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12059,
},
[0x1205A]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN DAG KISIM0x0005 TIMES BI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1205A, -- 𒁚
+ category="lo",
+ description="CUNEIFORM SIGN DAG KISIM0x0005 TIMES BI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1205A,
},
[0x1205B]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN DAG KISIM0x0005 TIMES GA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1205B, -- 𒁛
+ category="lo",
+ description="CUNEIFORM SIGN DAG KISIM0x0005 TIMES GA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1205B,
},
[0x1205C]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN DAG KISIM0x0005 TIMES GA PLUS MASH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1205C, -- 𒁜
+ category="lo",
+ description="CUNEIFORM SIGN DAG KISIM0x0005 TIMES GA PLUS MASH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1205C,
},
[0x1205D]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN DAG KISIM0x0005 TIMES GI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1205D, -- 𒁝
+ category="lo",
+ description="CUNEIFORM SIGN DAG KISIM0x0005 TIMES GI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1205D,
},
[0x1205E]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN DAG KISIM0x0005 TIMES GIR0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1205E, -- 𒁞
+ category="lo",
+ description="CUNEIFORM SIGN DAG KISIM0x0005 TIMES GIR0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1205E,
},
[0x1205F]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN DAG KISIM0x0005 TIMES GUD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1205F, -- 𒁟
+ category="lo",
+ description="CUNEIFORM SIGN DAG KISIM0x0005 TIMES GUD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1205F,
},
[0x12060]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN DAG KISIM0x0005 TIMES HA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12060, -- 𒁠
+ category="lo",
+ description="CUNEIFORM SIGN DAG KISIM0x0005 TIMES HA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12060,
},
[0x12061]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN DAG KISIM0x0005 TIMES IR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12061, -- 𒁡
+ category="lo",
+ description="CUNEIFORM SIGN DAG KISIM0x0005 TIMES IR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12061,
},
[0x12062]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN DAG KISIM0x0005 TIMES IR PLUS LU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12062, -- 𒁢
+ category="lo",
+ description="CUNEIFORM SIGN DAG KISIM0x0005 TIMES IR PLUS LU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12062,
},
[0x12063]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN DAG KISIM0x0005 TIMES KAK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12063, -- 𒁣
+ category="lo",
+ description="CUNEIFORM SIGN DAG KISIM0x0005 TIMES KAK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12063,
},
[0x12064]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN DAG KISIM0x0005 TIMES LA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12064, -- 𒁤
+ category="lo",
+ description="CUNEIFORM SIGN DAG KISIM0x0005 TIMES LA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12064,
},
[0x12065]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN DAG KISIM0x0005 TIMES LU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12065, -- 𒁥
+ category="lo",
+ description="CUNEIFORM SIGN DAG KISIM0x0005 TIMES LU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12065,
},
[0x12066]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN DAG KISIM0x0005 TIMES LU PLUS MASH0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12066, -- 𒁦
+ category="lo",
+ description="CUNEIFORM SIGN DAG KISIM0x0005 TIMES LU PLUS MASH0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12066,
},
[0x12067]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN DAG KISIM0x0005 TIMES LUM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12067, -- 𒁧
+ category="lo",
+ description="CUNEIFORM SIGN DAG KISIM0x0005 TIMES LUM",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12067,
},
[0x12068]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN DAG KISIM0x0005 TIMES NE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12068, -- 𒁨
+ category="lo",
+ description="CUNEIFORM SIGN DAG KISIM0x0005 TIMES NE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12068,
},
[0x12069]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN DAG KISIM0x0005 TIMES PAP PLUS PAP",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12069, -- 𒁩
+ category="lo",
+ description="CUNEIFORM SIGN DAG KISIM0x0005 TIMES PAP PLUS PAP",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12069,
},
[0x1206A]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN DAG KISIM0x0005 TIMES SI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1206A, -- 𒁪
+ category="lo",
+ description="CUNEIFORM SIGN DAG KISIM0x0005 TIMES SI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1206A,
},
[0x1206B]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN DAG KISIM0x0005 TIMES TAK0x0004",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1206B, -- 𒁫
+ category="lo",
+ description="CUNEIFORM SIGN DAG KISIM0x0005 TIMES TAK0x0004",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1206B,
},
[0x1206C]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN DAG KISIM0x0005 TIMES U0x0002 PLUS GIR0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1206C, -- 𒁬
+ category="lo",
+ description="CUNEIFORM SIGN DAG KISIM0x0005 TIMES U0x0002 PLUS GIR0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1206C,
},
[0x1206D]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN DAG KISIM0x0005 TIMES USH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1206D, -- 𒁭
+ category="lo",
+ description="CUNEIFORM SIGN DAG KISIM0x0005 TIMES USH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1206D,
},
[0x1206E]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN DAM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1206E, -- 𒁮
+ category="lo",
+ description="CUNEIFORM SIGN DAM",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1206E,
},
[0x1206F]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN DAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1206F, -- 𒁯
+ category="lo",
+ description="CUNEIFORM SIGN DAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1206F,
},
[0x12070]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN DARA0x0003",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12070, -- 𒁰
+ category="lo",
+ description="CUNEIFORM SIGN DARA0x0003",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12070,
},
[0x12071]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN DARA0x0004",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12071, -- 𒁱
+ category="lo",
+ description="CUNEIFORM SIGN DARA0x0004",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12071,
},
[0x12072]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN DI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12072, -- 𒁲
+ category="lo",
+ description="CUNEIFORM SIGN DI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12072,
},
[0x12073]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN DIB",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12073, -- 𒁳
+ category="lo",
+ description="CUNEIFORM SIGN DIB",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12073,
},
[0x12074]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN DIM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12074, -- 𒁴
+ category="lo",
+ description="CUNEIFORM SIGN DIM",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12074,
},
[0x12075]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN DIM TIMES SHE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12075, -- 𒁵
+ category="lo",
+ description="CUNEIFORM SIGN DIM TIMES SHE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12075,
},
[0x12076]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN DIM0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12076, -- 𒁶
+ category="lo",
+ description="CUNEIFORM SIGN DIM0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12076,
},
[0x12077]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN DIN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12077, -- 𒁷
+ category="lo",
+ description="CUNEIFORM SIGN DIN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12077,
},
[0x12078]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN DIN KASKAL U GUNU DISH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12078, -- 𒁸
+ category="lo",
+ description="CUNEIFORM SIGN DIN KASKAL U GUNU DISH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12078,
},
[0x12079]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN DISH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12079, -- 𒁹
+ category="lo",
+ description="CUNEIFORM SIGN DISH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12079,
},
[0x1207A]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN DU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1207A, -- 𒁺
+ category="lo",
+ description="CUNEIFORM SIGN DU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1207A,
},
[0x1207B]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN DU OVER DU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1207B, -- 𒁻
+ category="lo",
+ description="CUNEIFORM SIGN DU OVER DU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1207B,
},
[0x1207C]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN DU GUNU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1207C, -- 𒁼
+ category="lo",
+ description="CUNEIFORM SIGN DU GUNU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1207C,
},
[0x1207D]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN DU SHESHIG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1207D, -- 𒁽
+ category="lo",
+ description="CUNEIFORM SIGN DU SHESHIG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1207D,
},
[0x1207E]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN DUB",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1207E, -- 𒁾
+ category="lo",
+ description="CUNEIFORM SIGN DUB",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1207E,
},
[0x1207F]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN DUB TIMES ESH0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1207F, -- 𒁿
+ category="lo",
+ description="CUNEIFORM SIGN DUB TIMES ESH0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1207F,
},
[0x12080]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN DUB0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12080, -- 𒂀
+ category="lo",
+ description="CUNEIFORM SIGN DUB0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12080,
},
[0x12081]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN DUG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12081, -- 𒂁
+ category="lo",
+ description="CUNEIFORM SIGN DUG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12081,
},
[0x12082]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN DUGUD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12082, -- 𒂂
+ category="lo",
+ description="CUNEIFORM SIGN DUGUD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12082,
},
[0x12083]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN DUH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12083, -- 𒂃
+ category="lo",
+ description="CUNEIFORM SIGN DUH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12083,
},
[0x12084]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN DUN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12084, -- 𒂄
+ category="lo",
+ description="CUNEIFORM SIGN DUN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12084,
},
[0x12085]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN DUN0x0003",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12085, -- 𒂅
+ category="lo",
+ description="CUNEIFORM SIGN DUN0x0003",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12085,
},
[0x12086]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN DUN0x0003 GUNU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12086, -- 𒂆
+ category="lo",
+ description="CUNEIFORM SIGN DUN0x0003 GUNU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12086,
},
[0x12087]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN DUN0x0003 GUNU GUNU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12087, -- 𒂇
+ category="lo",
+ description="CUNEIFORM SIGN DUN0x0003 GUNU GUNU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12087,
},
[0x12088]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN DUN0x0004",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12088, -- 𒂈
+ category="lo",
+ description="CUNEIFORM SIGN DUN0x0004",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12088,
},
[0x12089]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN DUR0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12089, -- 𒂉
+ category="lo",
+ description="CUNEIFORM SIGN DUR0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12089,
},
[0x1208A]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1208A, -- 𒂊
+ category="lo",
+ description="CUNEIFORM SIGN E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1208A,
},
[0x1208B]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN E TIMES PAP",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1208B, -- 𒂋
+ category="lo",
+ description="CUNEIFORM SIGN E TIMES PAP",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1208B,
},
[0x1208C]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN E OVER E NUN OVER NUN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1208C, -- 𒂌
+ category="lo",
+ description="CUNEIFORM SIGN E OVER E NUN OVER NUN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1208C,
},
[0x1208D]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN E0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1208D, -- 𒂍
+ category="lo",
+ description="CUNEIFORM SIGN E0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1208D,
},
[0x1208E]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN E0x0002 TIMES A PLUS HA PLUS DA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1208E, -- 𒂎
+ category="lo",
+ description="CUNEIFORM SIGN E0x0002 TIMES A PLUS HA PLUS DA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1208E,
},
[0x1208F]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN E0x0002 TIMES GAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1208F, -- 𒂏
+ category="lo",
+ description="CUNEIFORM SIGN E0x0002 TIMES GAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1208F,
},
[0x12090]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN E0x0002 TIMES MI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12090, -- 𒂐
+ category="lo",
+ description="CUNEIFORM SIGN E0x0002 TIMES MI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12090,
},
[0x12091]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN E0x0002 TIMES SAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12091, -- 𒂑
+ category="lo",
+ description="CUNEIFORM SIGN E0x0002 TIMES SAL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12091,
},
[0x12092]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN E0x0002 TIMES SHE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12092, -- 𒂒
+ category="lo",
+ description="CUNEIFORM SIGN E0x0002 TIMES SHE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12092,
},
[0x12093]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN E0x0002 TIMES U",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12093, -- 𒂓
+ category="lo",
+ description="CUNEIFORM SIGN E0x0002 TIMES U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12093,
},
[0x12094]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN EDIN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12094, -- 𒂔
+ category="lo",
+ description="CUNEIFORM SIGN EDIN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12094,
},
[0x12095]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN EGIR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12095, -- 𒂕
+ category="lo",
+ description="CUNEIFORM SIGN EGIR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12095,
},
[0x12096]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN EL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12096, -- 𒂖
+ category="lo",
+ description="CUNEIFORM SIGN EL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12096,
},
[0x12097]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN EN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12097, -- 𒂗
+ category="lo",
+ description="CUNEIFORM SIGN EN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12097,
},
[0x12098]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN EN TIMES GAN0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12098, -- 𒂘
+ category="lo",
+ description="CUNEIFORM SIGN EN TIMES GAN0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12098,
},
[0x12099]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN EN TIMES GAN0x0002 TENU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12099, -- 𒂙
+ category="lo",
+ description="CUNEIFORM SIGN EN TIMES GAN0x0002 TENU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12099,
},
[0x1209A]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN EN TIMES ME",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1209A, -- 𒂚
+ category="lo",
+ description="CUNEIFORM SIGN EN TIMES ME",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1209A,
},
[0x1209B]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN EN CROSSING EN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1209B, -- 𒂛
+ category="lo",
+ description="CUNEIFORM SIGN EN CROSSING EN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1209B,
},
[0x1209C]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN EN OPPOSING EN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1209C, -- 𒂜
+ category="lo",
+ description="CUNEIFORM SIGN EN OPPOSING EN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1209C,
},
[0x1209D]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN EN SQUARED",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1209D, -- 𒂝
+ category="lo",
+ description="CUNEIFORM SIGN EN SQUARED",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1209D,
},
[0x1209E]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN EREN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1209E, -- 𒂞
+ category="lo",
+ description="CUNEIFORM SIGN EREN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1209E,
},
[0x1209F]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN ERIN0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1209F, -- 𒂟
+ category="lo",
+ description="CUNEIFORM SIGN ERIN0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1209F,
},
[0x120A0]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN ESH0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120A0, -- 𒂠
+ category="lo",
+ description="CUNEIFORM SIGN ESH0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120A0,
},
[0x120A1]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN EZEN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120A1, -- 𒂡
+ category="lo",
+ description="CUNEIFORM SIGN EZEN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120A1,
},
[0x120A2]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN EZEN TIMES A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120A2, -- 𒂢
+ category="lo",
+ description="CUNEIFORM SIGN EZEN TIMES A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120A2,
},
[0x120A3]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN EZEN TIMES A PLUS LAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120A3, -- 𒂣
+ category="lo",
+ description="CUNEIFORM SIGN EZEN TIMES A PLUS LAL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120A3,
},
[0x120A4]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN EZEN TIMES A PLUS LAL TIMES LAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120A4, -- 𒂤
+ category="lo",
+ description="CUNEIFORM SIGN EZEN TIMES A PLUS LAL TIMES LAL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120A4,
},
[0x120A5]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN EZEN TIMES AN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120A5, -- 𒂥
+ category="lo",
+ description="CUNEIFORM SIGN EZEN TIMES AN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120A5,
},
[0x120A6]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN EZEN TIMES BAD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120A6, -- 𒂦
+ category="lo",
+ description="CUNEIFORM SIGN EZEN TIMES BAD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120A6,
},
[0x120A7]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN EZEN TIMES DUN0x0003 GUNU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120A7, -- 𒂧
+ category="lo",
+ description="CUNEIFORM SIGN EZEN TIMES DUN0x0003 GUNU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120A7,
},
[0x120A8]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN EZEN TIMES DUN0x0003 GUNU GUNU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120A8, -- 𒂨
+ category="lo",
+ description="CUNEIFORM SIGN EZEN TIMES DUN0x0003 GUNU GUNU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120A8,
},
[0x120A9]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN EZEN TIMES HA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120A9, -- 𒂩
+ category="lo",
+ description="CUNEIFORM SIGN EZEN TIMES HA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120A9,
},
[0x120AA]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN EZEN TIMES HA GUNU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120AA, -- 𒂪
+ category="lo",
+ description="CUNEIFORM SIGN EZEN TIMES HA GUNU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120AA,
},
[0x120AB]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN EZEN TIMES IGI GUNU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120AB, -- 𒂫
+ category="lo",
+ description="CUNEIFORM SIGN EZEN TIMES IGI GUNU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120AB,
},
[0x120AC]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN EZEN TIMES KASKAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120AC, -- 𒂬
+ category="lo",
+ description="CUNEIFORM SIGN EZEN TIMES KASKAL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120AC,
},
[0x120AD]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN EZEN TIMES KASKAL SQUARED",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120AD, -- 𒂭
+ category="lo",
+ description="CUNEIFORM SIGN EZEN TIMES KASKAL SQUARED",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120AD,
},
[0x120AE]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN EZEN TIMES KU0x0003",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120AE, -- 𒂮
+ category="lo",
+ description="CUNEIFORM SIGN EZEN TIMES KU0x0003",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120AE,
},
[0x120AF]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN EZEN TIMES LA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120AF, -- 𒂯
+ category="lo",
+ description="CUNEIFORM SIGN EZEN TIMES LA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120AF,
},
[0x120B0]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN EZEN TIMES LAL TIMES LAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120B0, -- 𒂰
+ category="lo",
+ description="CUNEIFORM SIGN EZEN TIMES LAL TIMES LAL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120B0,
},
[0x120B1]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN EZEN TIMES LI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120B1, -- 𒂱
+ category="lo",
+ description="CUNEIFORM SIGN EZEN TIMES LI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120B1,
},
[0x120B2]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN EZEN TIMES LU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120B2, -- 𒂲
+ category="lo",
+ description="CUNEIFORM SIGN EZEN TIMES LU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120B2,
},
[0x120B3]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN EZEN TIMES U0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120B3, -- 𒂳
+ category="lo",
+ description="CUNEIFORM SIGN EZEN TIMES U0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120B3,
},
[0x120B4]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN EZEN TIMES UD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120B4, -- 𒂴
+ category="lo",
+ description="CUNEIFORM SIGN EZEN TIMES UD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120B4,
},
[0x120B5]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120B5, -- 𒂵
+ category="lo",
+ description="CUNEIFORM SIGN GA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120B5,
},
[0x120B6]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GA GUNU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120B6, -- 𒂶
+ category="lo",
+ description="CUNEIFORM SIGN GA GUNU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120B6,
},
[0x120B7]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GA0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120B7, -- 𒂷
+ category="lo",
+ description="CUNEIFORM SIGN GA0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120B7,
},
[0x120B8]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GA0x0002 TIMES A PLUS DA PLUS HA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120B8, -- 𒂸
+ category="lo",
+ description="CUNEIFORM SIGN GA0x0002 TIMES A PLUS DA PLUS HA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120B8,
},
[0x120B9]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GA0x0002 TIMES A PLUS HA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120B9, -- 𒂹
+ category="lo",
+ description="CUNEIFORM SIGN GA0x0002 TIMES A PLUS HA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120B9,
},
[0x120BA]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GA0x0002 TIMES A PLUS IGI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120BA, -- 𒂺
+ category="lo",
+ description="CUNEIFORM SIGN GA0x0002 TIMES A PLUS IGI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120BA,
},
[0x120BB]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GA0x0002 TIMES AB0x0002 TENU PLUS TAB",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120BB, -- 𒂻
+ category="lo",
+ description="CUNEIFORM SIGN GA0x0002 TIMES AB0x0002 TENU PLUS TAB",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120BB,
},
[0x120BC]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GA0x0002 TIMES AN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120BC, -- 𒂼
+ category="lo",
+ description="CUNEIFORM SIGN GA0x0002 TIMES AN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120BC,
},
[0x120BD]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GA0x0002 TIMES ASH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120BD, -- 𒂽
+ category="lo",
+ description="CUNEIFORM SIGN GA0x0002 TIMES ASH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120BD,
},
[0x120BE]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GA0x0002 TIMES ASH0x0002 PLUS GAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120BE, -- 𒂾
+ category="lo",
+ description="CUNEIFORM SIGN GA0x0002 TIMES ASH0x0002 PLUS GAL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120BE,
},
[0x120BF]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GA0x0002 TIMES BAD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120BF, -- 𒂿
+ category="lo",
+ description="CUNEIFORM SIGN GA0x0002 TIMES BAD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120BF,
},
[0x120C0]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GA0x0002 TIMES BAR PLUS RA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120C0, -- 𒃀
+ category="lo",
+ description="CUNEIFORM SIGN GA0x0002 TIMES BAR PLUS RA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120C0,
},
[0x120C1]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GA0x0002 TIMES BUR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120C1, -- 𒃁
+ category="lo",
+ description="CUNEIFORM SIGN GA0x0002 TIMES BUR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120C1,
},
[0x120C2]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GA0x0002 TIMES BUR PLUS RA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120C2, -- 𒃂
+ category="lo",
+ description="CUNEIFORM SIGN GA0x0002 TIMES BUR PLUS RA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120C2,
},
[0x120C3]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GA0x0002 TIMES DA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120C3, -- 𒃃
+ category="lo",
+ description="CUNEIFORM SIGN GA0x0002 TIMES DA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120C3,
},
[0x120C4]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GA0x0002 TIMES DI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120C4, -- 𒃄
+ category="lo",
+ description="CUNEIFORM SIGN GA0x0002 TIMES DI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120C4,
},
[0x120C5]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GA0x0002 TIMES DIM TIMES SHE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120C5, -- 𒃅
+ category="lo",
+ description="CUNEIFORM SIGN GA0x0002 TIMES DIM TIMES SHE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120C5,
},
[0x120C6]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GA0x0002 TIMES DUB",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120C6, -- 𒃆
+ category="lo",
+ description="CUNEIFORM SIGN GA0x0002 TIMES DUB",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120C6,
},
[0x120C7]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GA0x0002 TIMES EL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120C7, -- 𒃇
+ category="lo",
+ description="CUNEIFORM SIGN GA0x0002 TIMES EL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120C7,
},
[0x120C8]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GA0x0002 TIMES EL PLUS LA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120C8, -- 𒃈
+ category="lo",
+ description="CUNEIFORM SIGN GA0x0002 TIMES EL PLUS LA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120C8,
},
[0x120C9]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GA0x0002 TIMES EN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120C9, -- 𒃉
+ category="lo",
+ description="CUNEIFORM SIGN GA0x0002 TIMES EN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120C9,
},
[0x120CA]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GA0x0002 TIMES EN TIMES GAN0x0002 TENU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120CA, -- 𒃊
+ category="lo",
+ description="CUNEIFORM SIGN GA0x0002 TIMES EN TIMES GAN0x0002 TENU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120CA,
},
[0x120CB]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GA0x0002 TIMES GAN0x0002 TENU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120CB, -- 𒃋
+ category="lo",
+ description="CUNEIFORM SIGN GA0x0002 TIMES GAN0x0002 TENU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120CB,
},
[0x120CC]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GA0x0002 TIMES GAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120CC, -- 𒃌
+ category="lo",
+ description="CUNEIFORM SIGN GA0x0002 TIMES GAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120CC,
},
[0x120CD]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GA0x0002 TIMES GI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120CD, -- 𒃍
+ category="lo",
+ description="CUNEIFORM SIGN GA0x0002 TIMES GI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120CD,
},
[0x120CE]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GA0x0002 TIMES GI0x0004",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120CE, -- 𒃎
+ category="lo",
+ description="CUNEIFORM SIGN GA0x0002 TIMES GI0x0004",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120CE,
},
[0x120CF]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GA0x0002 TIMES GI0x0004 PLUS A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120CF, -- 𒃏
+ category="lo",
+ description="CUNEIFORM SIGN GA0x0002 TIMES GI0x0004 PLUS A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120CF,
},
[0x120D0]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GA0x0002 TIMES GIR0x0002 PLUS SU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120D0, -- 𒃐
+ category="lo",
+ description="CUNEIFORM SIGN GA0x0002 TIMES GIR0x0002 PLUS SU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120D0,
},
[0x120D1]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GA0x0002 TIMES HA PLUS LU PLUS ESH0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120D1, -- 𒃑
+ category="lo",
+ description="CUNEIFORM SIGN GA0x0002 TIMES HA PLUS LU PLUS ESH0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120D1,
},
[0x120D2]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GA0x0002 TIMES HAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120D2, -- 𒃒
+ category="lo",
+ description="CUNEIFORM SIGN GA0x0002 TIMES HAL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120D2,
},
[0x120D3]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GA0x0002 TIMES HAL PLUS LA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120D3, -- 𒃓
+ category="lo",
+ description="CUNEIFORM SIGN GA0x0002 TIMES HAL PLUS LA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120D3,
},
[0x120D4]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GA0x0002 TIMES HI PLUS LI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120D4, -- 𒃔
+ category="lo",
+ description="CUNEIFORM SIGN GA0x0002 TIMES HI PLUS LI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120D4,
},
[0x120D5]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GA0x0002 TIMES HUB0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120D5, -- 𒃕
+ category="lo",
+ description="CUNEIFORM SIGN GA0x0002 TIMES HUB0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120D5,
},
[0x120D6]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GA0x0002 TIMES IGI GUNU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120D6, -- 𒃖
+ category="lo",
+ description="CUNEIFORM SIGN GA0x0002 TIMES IGI GUNU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120D6,
},
[0x120D7]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GA0x0002 TIMES ISH PLUS HU PLUS ASH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120D7, -- 𒃗
+ category="lo",
+ description="CUNEIFORM SIGN GA0x0002 TIMES ISH PLUS HU PLUS ASH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120D7,
},
[0x120D8]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GA0x0002 TIMES KAK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120D8, -- 𒃘
+ category="lo",
+ description="CUNEIFORM SIGN GA0x0002 TIMES KAK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120D8,
},
[0x120D9]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GA0x0002 TIMES KASKAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120D9, -- 𒃙
+ category="lo",
+ description="CUNEIFORM SIGN GA0x0002 TIMES KASKAL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120D9,
},
[0x120DA]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GA0x0002 TIMES KID",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120DA, -- 𒃚
+ category="lo",
+ description="CUNEIFORM SIGN GA0x0002 TIMES KID",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120DA,
},
[0x120DB]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GA0x0002 TIMES KID PLUS LAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120DB, -- 𒃛
+ category="lo",
+ description="CUNEIFORM SIGN GA0x0002 TIMES KID PLUS LAL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120DB,
},
[0x120DC]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GA0x0002 TIMES KU0x0003 PLUS AN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120DC, -- 𒃜
+ category="lo",
+ description="CUNEIFORM SIGN GA0x0002 TIMES KU0x0003 PLUS AN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120DC,
},
[0x120DD]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GA0x0002 TIMES LA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120DD, -- 𒃝
+ category="lo",
+ description="CUNEIFORM SIGN GA0x0002 TIMES LA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120DD,
},
[0x120DE]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GA0x0002 TIMES ME PLUS EN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120DE, -- 𒃞
+ category="lo",
+ description="CUNEIFORM SIGN GA0x0002 TIMES ME PLUS EN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120DE,
},
[0x120DF]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GA0x0002 TIMES MI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120DF, -- 𒃟
+ category="lo",
+ description="CUNEIFORM SIGN GA0x0002 TIMES MI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120DF,
},
[0x120E0]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GA0x0002 TIMES NUN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120E0, -- 𒃠
+ category="lo",
+ description="CUNEIFORM SIGN GA0x0002 TIMES NUN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120E0,
},
[0x120E1]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GA0x0002 TIMES NUN OVER NUN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120E1, -- 𒃡
+ category="lo",
+ description="CUNEIFORM SIGN GA0x0002 TIMES NUN OVER NUN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120E1,
},
[0x120E2]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GA0x0002 TIMES PA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120E2, -- 𒃢
+ category="lo",
+ description="CUNEIFORM SIGN GA0x0002 TIMES PA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120E2,
},
[0x120E3]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GA0x0002 TIMES SAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120E3, -- 𒃣
+ category="lo",
+ description="CUNEIFORM SIGN GA0x0002 TIMES SAL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120E3,
},
[0x120E4]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GA0x0002 TIMES SAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120E4, -- 𒃤
+ category="lo",
+ description="CUNEIFORM SIGN GA0x0002 TIMES SAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120E4,
},
[0x120E5]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GA0x0002 TIMES SHE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120E5, -- 𒃥
+ category="lo",
+ description="CUNEIFORM SIGN GA0x0002 TIMES SHE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120E5,
},
[0x120E6]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GA0x0002 TIMES SHE PLUS TUR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120E6, -- 𒃦
+ category="lo",
+ description="CUNEIFORM SIGN GA0x0002 TIMES SHE PLUS TUR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120E6,
},
[0x120E7]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GA0x0002 TIMES SHID",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120E7, -- 𒃧
+ category="lo",
+ description="CUNEIFORM SIGN GA0x0002 TIMES SHID",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120E7,
},
[0x120E8]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GA0x0002 TIMES SUM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120E8, -- 𒃨
+ category="lo",
+ description="CUNEIFORM SIGN GA0x0002 TIMES SUM",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120E8,
},
[0x120E9]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GA0x0002 TIMES TAK0x0004",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120E9, -- 𒃩
+ category="lo",
+ description="CUNEIFORM SIGN GA0x0002 TIMES TAK0x0004",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120E9,
},
[0x120EA]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GA0x0002 TIMES U",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120EA, -- 𒃪
+ category="lo",
+ description="CUNEIFORM SIGN GA0x0002 TIMES U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120EA,
},
[0x120EB]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GA0x0002 TIMES UD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120EB, -- 𒃫
+ category="lo",
+ description="CUNEIFORM SIGN GA0x0002 TIMES UD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120EB,
},
[0x120EC]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GA0x0002 TIMES UD PLUS DU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120EC, -- 𒃬
+ category="lo",
+ description="CUNEIFORM SIGN GA0x0002 TIMES UD PLUS DU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120EC,
},
[0x120ED]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GA0x0002 OVER GA0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120ED, -- 𒃭
+ category="lo",
+ description="CUNEIFORM SIGN GA0x0002 OVER GA0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120ED,
},
[0x120EE]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GABA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120EE, -- 𒃮
+ category="lo",
+ description="CUNEIFORM SIGN GABA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120EE,
},
[0x120EF]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GABA CROSSING GABA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120EF, -- 𒃯
+ category="lo",
+ description="CUNEIFORM SIGN GABA CROSSING GABA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120EF,
},
[0x120F0]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GAD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120F0, -- 𒃰
+ category="lo",
+ description="CUNEIFORM SIGN GAD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120F0,
},
[0x120F1]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GAD OVER GAD GAR OVER GAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120F1, -- 𒃱
+ category="lo",
+ description="CUNEIFORM SIGN GAD OVER GAD GAR OVER GAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120F1,
},
[0x120F2]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120F2, -- 𒃲
+ category="lo",
+ description="CUNEIFORM SIGN GAL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120F2,
},
[0x120F3]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GAL GAD OVER GAD GAR OVER GAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120F3, -- 𒃳
+ category="lo",
+ description="CUNEIFORM SIGN GAL GAD OVER GAD GAR OVER GAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120F3,
},
[0x120F4]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GALAM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120F4, -- 𒃴
+ category="lo",
+ description="CUNEIFORM SIGN GALAM",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120F4,
},
[0x120F5]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GAM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120F5, -- 𒃵
+ category="lo",
+ description="CUNEIFORM SIGN GAM",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120F5,
},
[0x120F6]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120F6, -- 𒃶
+ category="lo",
+ description="CUNEIFORM SIGN GAN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120F6,
},
[0x120F7]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GAN0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120F7, -- 𒃷
+ category="lo",
+ description="CUNEIFORM SIGN GAN0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120F7,
},
[0x120F8]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GAN0x0002 TENU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120F8, -- 𒃸
+ category="lo",
+ description="CUNEIFORM SIGN GAN0x0002 TENU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120F8,
},
[0x120F9]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GAN0x0002 OVER GAN0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120F9, -- 𒃹
+ category="lo",
+ description="CUNEIFORM SIGN GAN0x0002 OVER GAN0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120F9,
},
[0x120FA]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GAN0x0002 CROSSING GAN0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120FA, -- 𒃺
+ category="lo",
+ description="CUNEIFORM SIGN GAN0x0002 CROSSING GAN0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120FA,
},
[0x120FB]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120FB, -- 𒃻
+ category="lo",
+ description="CUNEIFORM SIGN GAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120FB,
},
[0x120FC]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GAR0x0003",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120FC, -- 𒃼
+ category="lo",
+ description="CUNEIFORM SIGN GAR0x0003",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120FC,
},
[0x120FD]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GASHAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120FD, -- 𒃽
+ category="lo",
+ description="CUNEIFORM SIGN GASHAN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120FD,
},
[0x120FE]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GESHTIN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120FE, -- 𒃾
+ category="lo",
+ description="CUNEIFORM SIGN GESHTIN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120FE,
},
[0x120FF]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GESHTIN TIMES KUR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x120FF, -- 𒃿
+ category="lo",
+ description="CUNEIFORM SIGN GESHTIN TIMES KUR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x120FF,
},
[0x12100]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12100, -- 𒄀
+ category="lo",
+ description="CUNEIFORM SIGN GI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12100,
},
[0x12101]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GI TIMES E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12101, -- 𒄁
+ category="lo",
+ description="CUNEIFORM SIGN GI TIMES E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12101,
},
[0x12102]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GI TIMES U",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12102, -- 𒄂
+ category="lo",
+ description="CUNEIFORM SIGN GI TIMES U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12102,
},
[0x12103]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GI CROSSING GI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12103, -- 𒄃
+ category="lo",
+ description="CUNEIFORM SIGN GI CROSSING GI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12103,
},
[0x12104]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GI0x0004",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12104, -- 𒄄
+ category="lo",
+ description="CUNEIFORM SIGN GI0x0004",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12104,
},
[0x12105]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GI0x0004 OVER GI0x0004",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12105, -- 𒄅
+ category="lo",
+ description="CUNEIFORM SIGN GI0x0004 OVER GI0x0004",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12105,
},
[0x12106]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GI0x0004 CROSSING GI0x0004",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12106, -- 𒄆
+ category="lo",
+ description="CUNEIFORM SIGN GI0x0004 CROSSING GI0x0004",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12106,
},
[0x12107]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GIDIM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12107, -- 𒄇
+ category="lo",
+ description="CUNEIFORM SIGN GIDIM",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12107,
},
[0x12108]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GIR0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12108, -- 𒄈
+ category="lo",
+ description="CUNEIFORM SIGN GIR0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12108,
},
[0x12109]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GIR0x0002 GUNU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12109, -- 𒄉
+ category="lo",
+ description="CUNEIFORM SIGN GIR0x0002 GUNU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12109,
},
[0x1210A]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GIR0x0003",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1210A, -- 𒄊
+ category="lo",
+ description="CUNEIFORM SIGN GIR0x0003",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1210A,
},
[0x1210B]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GIR0x0003 TIMES A PLUS IGI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1210B, -- 𒄋
+ category="lo",
+ description="CUNEIFORM SIGN GIR0x0003 TIMES A PLUS IGI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1210B,
},
[0x1210C]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GIR0x0003 TIMES GAN0x0002 TENU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1210C, -- 𒄌
+ category="lo",
+ description="CUNEIFORM SIGN GIR0x0003 TIMES GAN0x0002 TENU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1210C,
},
[0x1210D]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GIR0x0003 TIMES IGI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1210D, -- 𒄍
+ category="lo",
+ description="CUNEIFORM SIGN GIR0x0003 TIMES IGI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1210D,
},
[0x1210E]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GIR0x0003 TIMES LU PLUS IGI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1210E, -- 𒄎
+ category="lo",
+ description="CUNEIFORM SIGN GIR0x0003 TIMES LU PLUS IGI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1210E,
},
[0x1210F]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GIR0x0003 TIMES PA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1210F, -- 𒄏
+ category="lo",
+ description="CUNEIFORM SIGN GIR0x0003 TIMES PA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1210F,
},
[0x12110]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GISAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12110, -- 𒄐
+ category="lo",
+ description="CUNEIFORM SIGN GISAL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12110,
},
[0x12111]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GISH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12111, -- 𒄑
+ category="lo",
+ description="CUNEIFORM SIGN GISH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12111,
},
[0x12112]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GISH CROSSING GISH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12112, -- 𒄒
+ category="lo",
+ description="CUNEIFORM SIGN GISH CROSSING GISH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12112,
},
[0x12113]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GISH TIMES BAD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12113, -- 𒄓
+ category="lo",
+ description="CUNEIFORM SIGN GISH TIMES BAD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12113,
},
[0x12114]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GISH TIMES TAK0x0004",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12114, -- 𒄔
+ category="lo",
+ description="CUNEIFORM SIGN GISH TIMES TAK0x0004",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12114,
},
[0x12115]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GISH TENU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12115, -- 𒄕
+ category="lo",
+ description="CUNEIFORM SIGN GISH TENU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12115,
},
[0x12116]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12116, -- 𒄖
+ category="lo",
+ description="CUNEIFORM SIGN GU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12116,
},
[0x12117]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GU CROSSING GU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12117, -- 𒄗
+ category="lo",
+ description="CUNEIFORM SIGN GU CROSSING GU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12117,
},
[0x12118]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GU0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12118, -- 𒄘
+ category="lo",
+ description="CUNEIFORM SIGN GU0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12118,
},
[0x12119]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GU0x0002 TIMES KAK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12119, -- 𒄙
+ category="lo",
+ description="CUNEIFORM SIGN GU0x0002 TIMES KAK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12119,
},
[0x1211A]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GU0x0002 TIMES KAK TIMES IGI GUNU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1211A, -- 𒄚
+ category="lo",
+ description="CUNEIFORM SIGN GU0x0002 TIMES KAK TIMES IGI GUNU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1211A,
},
[0x1211B]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GU0x0002 TIMES NUN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1211B, -- 𒄛
+ category="lo",
+ description="CUNEIFORM SIGN GU0x0002 TIMES NUN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1211B,
},
[0x1211C]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GU0x0002 TIMES SAL PLUS TUG0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1211C, -- 𒄜
+ category="lo",
+ description="CUNEIFORM SIGN GU0x0002 TIMES SAL PLUS TUG0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1211C,
},
[0x1211D]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GU0x0002 GUNU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1211D, -- 𒄝
+ category="lo",
+ description="CUNEIFORM SIGN GU0x0002 GUNU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1211D,
},
[0x1211E]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GUD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1211E, -- 𒄞
+ category="lo",
+ description="CUNEIFORM SIGN GUD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1211E,
},
[0x1211F]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GUD TIMES A PLUS KUR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1211F, -- 𒄟
+ category="lo",
+ description="CUNEIFORM SIGN GUD TIMES A PLUS KUR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1211F,
},
[0x12120]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GUD TIMES KUR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12120, -- 𒄠
+ category="lo",
+ description="CUNEIFORM SIGN GUD TIMES KUR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12120,
},
[0x12121]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GUD OVER GUD LUGAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12121, -- 𒄡
+ category="lo",
+ description="CUNEIFORM SIGN GUD OVER GUD LUGAL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12121,
},
[0x12122]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GUL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12122, -- 𒄢
+ category="lo",
+ description="CUNEIFORM SIGN GUL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12122,
},
[0x12123]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GUM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12123, -- 𒄣
+ category="lo",
+ description="CUNEIFORM SIGN GUM",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12123,
},
[0x12124]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GUM TIMES SHE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12124, -- 𒄤
+ category="lo",
+ description="CUNEIFORM SIGN GUM TIMES SHE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12124,
},
[0x12125]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GUR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12125, -- 𒄥
+ category="lo",
+ description="CUNEIFORM SIGN GUR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12125,
},
[0x12126]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GUR0x0007",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12126, -- 𒄦
+ category="lo",
+ description="CUNEIFORM SIGN GUR0x0007",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12126,
},
[0x12127]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GURUN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12127, -- 𒄧
+ category="lo",
+ description="CUNEIFORM SIGN GURUN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12127,
},
[0x12128]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN GURUSH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12128, -- 𒄨
+ category="lo",
+ description="CUNEIFORM SIGN GURUSH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12128,
},
[0x12129]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN HA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12129, -- 𒄩
+ category="lo",
+ description="CUNEIFORM SIGN HA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12129,
},
[0x1212A]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN HA TENU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1212A, -- 𒄪
+ category="lo",
+ description="CUNEIFORM SIGN HA TENU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1212A,
},
[0x1212B]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN HA GUNU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1212B, -- 𒄫
+ category="lo",
+ description="CUNEIFORM SIGN HA GUNU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1212B,
},
[0x1212C]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN HAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1212C, -- 𒄬
+ category="lo",
+ description="CUNEIFORM SIGN HAL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1212C,
},
[0x1212D]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN HI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1212D, -- 𒄭
+ category="lo",
+ description="CUNEIFORM SIGN HI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1212D,
},
[0x1212E]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN HI TIMES ASH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1212E, -- 𒄮
+ category="lo",
+ description="CUNEIFORM SIGN HI TIMES ASH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1212E,
},
[0x1212F]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN HI TIMES ASH0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1212F, -- 𒄯
+ category="lo",
+ description="CUNEIFORM SIGN HI TIMES ASH0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1212F,
},
[0x12130]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN HI TIMES BAD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12130, -- 𒄰
+ category="lo",
+ description="CUNEIFORM SIGN HI TIMES BAD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12130,
},
[0x12131]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN HI TIMES DISH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12131, -- 𒄱
+ category="lo",
+ description="CUNEIFORM SIGN HI TIMES DISH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12131,
},
[0x12132]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN HI TIMES GAD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12132, -- 𒄲
+ category="lo",
+ description="CUNEIFORM SIGN HI TIMES GAD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12132,
},
[0x12133]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN HI TIMES KIN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12133, -- 𒄳
+ category="lo",
+ description="CUNEIFORM SIGN HI TIMES KIN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12133,
},
[0x12134]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN HI TIMES NUN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12134, -- 𒄴
+ category="lo",
+ description="CUNEIFORM SIGN HI TIMES NUN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12134,
},
[0x12135]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN HI TIMES SHE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12135, -- 𒄵
+ category="lo",
+ description="CUNEIFORM SIGN HI TIMES SHE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12135,
},
[0x12136]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN HI TIMES U",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12136, -- 𒄶
+ category="lo",
+ description="CUNEIFORM SIGN HI TIMES U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12136,
},
[0x12137]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN HU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12137, -- 𒄷
+ category="lo",
+ description="CUNEIFORM SIGN HU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12137,
},
[0x12138]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN HUB0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12138, -- 𒄸
+ category="lo",
+ description="CUNEIFORM SIGN HUB0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12138,
},
[0x12139]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN HUB0x0002 TIMES AN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12139, -- 𒄹
+ category="lo",
+ description="CUNEIFORM SIGN HUB0x0002 TIMES AN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12139,
},
[0x1213A]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN HUB0x0002 TIMES HAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1213A, -- 𒄺
+ category="lo",
+ description="CUNEIFORM SIGN HUB0x0002 TIMES HAL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1213A,
},
[0x1213B]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN HUB0x0002 TIMES KASKAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1213B, -- 𒄻
+ category="lo",
+ description="CUNEIFORM SIGN HUB0x0002 TIMES KASKAL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1213B,
},
[0x1213C]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN HUB0x0002 TIMES LISH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1213C, -- 𒄼
+ category="lo",
+ description="CUNEIFORM SIGN HUB0x0002 TIMES LISH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1213C,
},
[0x1213D]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN HUB0x0002 TIMES UD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1213D, -- 𒄽
+ category="lo",
+ description="CUNEIFORM SIGN HUB0x0002 TIMES UD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1213D,
},
[0x1213E]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN HUL0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1213E, -- 𒄾
+ category="lo",
+ description="CUNEIFORM SIGN HUL0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1213E,
},
[0x1213F]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN I",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1213F, -- 𒄿
+ category="lo",
+ description="CUNEIFORM SIGN I",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1213F,
},
[0x12140]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN I A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12140, -- 𒅀
+ category="lo",
+ description="CUNEIFORM SIGN I A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12140,
},
[0x12141]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN IB",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12141, -- 𒅁
+ category="lo",
+ description="CUNEIFORM SIGN IB",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12141,
},
[0x12142]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN IDIM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12142, -- 𒅂
+ category="lo",
+ description="CUNEIFORM SIGN IDIM",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12142,
},
[0x12143]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN IDIM OVER IDIM BUR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12143, -- 𒅃
+ category="lo",
+ description="CUNEIFORM SIGN IDIM OVER IDIM BUR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12143,
},
[0x12144]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN IDIM OVER IDIM SQUARED",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12144, -- 𒅄
+ category="lo",
+ description="CUNEIFORM SIGN IDIM OVER IDIM SQUARED",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12144,
},
[0x12145]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN IG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12145, -- 𒅅
+ category="lo",
+ description="CUNEIFORM SIGN IG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12145,
},
[0x12146]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN IGI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12146, -- 𒅆
+ category="lo",
+ description="CUNEIFORM SIGN IGI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12146,
},
[0x12147]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN IGI DIB",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12147, -- 𒅇
+ category="lo",
+ description="CUNEIFORM SIGN IGI DIB",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12147,
},
[0x12148]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN IGI RI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12148, -- 𒅈
+ category="lo",
+ description="CUNEIFORM SIGN IGI RI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12148,
},
[0x12149]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN IGI OVER IGI SHIR OVER SHIR UD OVER UD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12149, -- 𒅉
+ category="lo",
+ description="CUNEIFORM SIGN IGI OVER IGI SHIR OVER SHIR UD OVER UD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12149,
},
[0x1214A]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN IGI GUNU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1214A, -- 𒅊
+ category="lo",
+ description="CUNEIFORM SIGN IGI GUNU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1214A,
},
[0x1214B]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN IL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1214B, -- 𒅋
+ category="lo",
+ description="CUNEIFORM SIGN IL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1214B,
},
[0x1214C]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN IL TIMES GAN0x0002 TENU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1214C, -- 𒅌
+ category="lo",
+ description="CUNEIFORM SIGN IL TIMES GAN0x0002 TENU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1214C,
},
[0x1214D]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN IL0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1214D, -- 𒅍
+ category="lo",
+ description="CUNEIFORM SIGN IL0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1214D,
},
[0x1214E]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN IM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1214E, -- 𒅎
+ category="lo",
+ description="CUNEIFORM SIGN IM",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1214E,
},
[0x1214F]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN IM TIMES TAK0x0004",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1214F, -- 𒅏
+ category="lo",
+ description="CUNEIFORM SIGN IM TIMES TAK0x0004",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1214F,
},
[0x12150]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN IM CROSSING IM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12150, -- 𒅐
+ category="lo",
+ description="CUNEIFORM SIGN IM CROSSING IM",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12150,
},
[0x12151]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN IM OPPOSING IM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12151, -- 𒅑
+ category="lo",
+ description="CUNEIFORM SIGN IM OPPOSING IM",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12151,
},
[0x12152]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN IM SQUARED",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12152, -- 𒅒
+ category="lo",
+ description="CUNEIFORM SIGN IM SQUARED",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12152,
},
[0x12153]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN IMIN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12153, -- 𒅓
+ category="lo",
+ description="CUNEIFORM SIGN IMIN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12153,
},
[0x12154]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN IN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12154, -- 𒅔
+ category="lo",
+ description="CUNEIFORM SIGN IN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12154,
},
[0x12155]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN IR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12155, -- 𒅕
+ category="lo",
+ description="CUNEIFORM SIGN IR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12155,
},
[0x12156]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN ISH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12156, -- 𒅖
+ category="lo",
+ description="CUNEIFORM SIGN ISH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12156,
},
[0x12157]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12157, -- 𒅗
+ category="lo",
+ description="CUNEIFORM SIGN KA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12157,
},
[0x12158]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KA TIMES A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12158, -- 𒅘
+ category="lo",
+ description="CUNEIFORM SIGN KA TIMES A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12158,
},
[0x12159]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KA TIMES AD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12159, -- 𒅙
+ category="lo",
+ description="CUNEIFORM SIGN KA TIMES AD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12159,
},
[0x1215A]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KA TIMES AD PLUS KU0x0003",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1215A, -- 𒅚
+ category="lo",
+ description="CUNEIFORM SIGN KA TIMES AD PLUS KU0x0003",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1215A,
},
[0x1215B]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KA TIMES ASH0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1215B, -- 𒅛
+ category="lo",
+ description="CUNEIFORM SIGN KA TIMES ASH0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1215B,
},
[0x1215C]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KA TIMES BAD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1215C, -- 𒅜
+ category="lo",
+ description="CUNEIFORM SIGN KA TIMES BAD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1215C,
},
[0x1215D]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KA TIMES BALAG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1215D, -- 𒅝
+ category="lo",
+ description="CUNEIFORM SIGN KA TIMES BALAG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1215D,
},
[0x1215E]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KA TIMES BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1215E, -- 𒅞
+ category="lo",
+ description="CUNEIFORM SIGN KA TIMES BAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1215E,
},
[0x1215F]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KA TIMES BI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1215F, -- 𒅟
+ category="lo",
+ description="CUNEIFORM SIGN KA TIMES BI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1215F,
},
[0x12160]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KA TIMES ERIN0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12160, -- 𒅠
+ category="lo",
+ description="CUNEIFORM SIGN KA TIMES ERIN0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12160,
},
[0x12161]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KA TIMES ESH0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12161, -- 𒅡
+ category="lo",
+ description="CUNEIFORM SIGN KA TIMES ESH0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12161,
},
[0x12162]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KA TIMES GA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12162, -- 𒅢
+ category="lo",
+ description="CUNEIFORM SIGN KA TIMES GA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12162,
},
[0x12163]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KA TIMES GAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12163, -- 𒅣
+ category="lo",
+ description="CUNEIFORM SIGN KA TIMES GAL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12163,
},
[0x12164]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KA TIMES GAN0x0002 TENU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12164, -- 𒅤
+ category="lo",
+ description="CUNEIFORM SIGN KA TIMES GAN0x0002 TENU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12164,
},
[0x12165]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KA TIMES GAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12165, -- 𒅥
+ category="lo",
+ description="CUNEIFORM SIGN KA TIMES GAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12165,
},
[0x12166]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KA TIMES GAR PLUS SHA0x0003 PLUS A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12166, -- 𒅦
+ category="lo",
+ description="CUNEIFORM SIGN KA TIMES GAR PLUS SHA0x0003 PLUS A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12166,
},
[0x12167]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KA TIMES GI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12167, -- 𒅧
+ category="lo",
+ description="CUNEIFORM SIGN KA TIMES GI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12167,
},
[0x12168]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KA TIMES GIR0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12168, -- 𒅨
+ category="lo",
+ description="CUNEIFORM SIGN KA TIMES GIR0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12168,
},
[0x12169]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KA TIMES GISH PLUS SAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12169, -- 𒅩
+ category="lo",
+ description="CUNEIFORM SIGN KA TIMES GISH PLUS SAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12169,
},
[0x1216A]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KA TIMES GISH CROSSING GISH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1216A, -- 𒅪
+ category="lo",
+ description="CUNEIFORM SIGN KA TIMES GISH CROSSING GISH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1216A,
},
[0x1216B]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KA TIMES GU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1216B, -- 𒅫
+ category="lo",
+ description="CUNEIFORM SIGN KA TIMES GU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1216B,
},
[0x1216C]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KA TIMES GUR0x0007",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1216C, -- 𒅬
+ category="lo",
+ description="CUNEIFORM SIGN KA TIMES GUR0x0007",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1216C,
},
[0x1216D]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KA TIMES IGI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1216D, -- 𒅭
+ category="lo",
+ description="CUNEIFORM SIGN KA TIMES IGI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1216D,
},
[0x1216E]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KA TIMES IM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1216E, -- 𒅮
+ category="lo",
+ description="CUNEIFORM SIGN KA TIMES IM",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1216E,
},
[0x1216F]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KA TIMES KAK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1216F, -- 𒅯
+ category="lo",
+ description="CUNEIFORM SIGN KA TIMES KAK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1216F,
},
[0x12170]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KA TIMES KI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12170, -- 𒅰
+ category="lo",
+ description="CUNEIFORM SIGN KA TIMES KI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12170,
},
[0x12171]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KA TIMES KID",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12171, -- 𒅱
+ category="lo",
+ description="CUNEIFORM SIGN KA TIMES KID",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12171,
},
[0x12172]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KA TIMES LI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12172, -- 𒅲
+ category="lo",
+ description="CUNEIFORM SIGN KA TIMES LI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12172,
},
[0x12173]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KA TIMES LU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12173, -- 𒅳
+ category="lo",
+ description="CUNEIFORM SIGN KA TIMES LU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12173,
},
[0x12174]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KA TIMES ME",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12174, -- 𒅴
+ category="lo",
+ description="CUNEIFORM SIGN KA TIMES ME",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12174,
},
[0x12175]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KA TIMES ME PLUS DU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12175, -- 𒅵
+ category="lo",
+ description="CUNEIFORM SIGN KA TIMES ME PLUS DU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12175,
},
[0x12176]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KA TIMES ME PLUS GI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12176, -- 𒅶
+ category="lo",
+ description="CUNEIFORM SIGN KA TIMES ME PLUS GI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12176,
},
[0x12177]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KA TIMES ME PLUS TE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12177, -- 𒅷
+ category="lo",
+ description="CUNEIFORM SIGN KA TIMES ME PLUS TE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12177,
},
[0x12178]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KA TIMES MI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12178, -- 𒅸
+ category="lo",
+ description="CUNEIFORM SIGN KA TIMES MI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12178,
},
[0x12179]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KA TIMES MI PLUS NUNUZ",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12179, -- 𒅹
+ category="lo",
+ description="CUNEIFORM SIGN KA TIMES MI PLUS NUNUZ",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12179,
},
[0x1217A]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KA TIMES NE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1217A, -- 𒅺
+ category="lo",
+ description="CUNEIFORM SIGN KA TIMES NE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1217A,
},
[0x1217B]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KA TIMES NUN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1217B, -- 𒅻
+ category="lo",
+ description="CUNEIFORM SIGN KA TIMES NUN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1217B,
},
[0x1217C]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KA TIMES PI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1217C, -- 𒅼
+ category="lo",
+ description="CUNEIFORM SIGN KA TIMES PI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1217C,
},
[0x1217D]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KA TIMES RU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1217D, -- 𒅽
+ category="lo",
+ description="CUNEIFORM SIGN KA TIMES RU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1217D,
},
[0x1217E]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KA TIMES SA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1217E, -- 𒅾
+ category="lo",
+ description="CUNEIFORM SIGN KA TIMES SA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1217E,
},
[0x1217F]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KA TIMES SAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1217F, -- 𒅿
+ category="lo",
+ description="CUNEIFORM SIGN KA TIMES SAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1217F,
},
[0x12180]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KA TIMES SHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12180, -- 𒆀
+ category="lo",
+ description="CUNEIFORM SIGN KA TIMES SHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12180,
},
[0x12181]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KA TIMES SHE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12181, -- 𒆁
+ category="lo",
+ description="CUNEIFORM SIGN KA TIMES SHE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12181,
},
[0x12182]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KA TIMES SHID",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12182, -- 𒆂
+ category="lo",
+ description="CUNEIFORM SIGN KA TIMES SHID",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12182,
},
[0x12183]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KA TIMES SHU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12183, -- 𒆃
+ category="lo",
+ description="CUNEIFORM SIGN KA TIMES SHU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12183,
},
[0x12184]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KA TIMES SIG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12184, -- 𒆄
+ category="lo",
+ description="CUNEIFORM SIGN KA TIMES SIG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12184,
},
[0x12185]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KA TIMES SUHUR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12185, -- 𒆅
+ category="lo",
+ description="CUNEIFORM SIGN KA TIMES SUHUR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12185,
},
[0x12186]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KA TIMES TAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12186, -- 𒆆
+ category="lo",
+ description="CUNEIFORM SIGN KA TIMES TAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12186,
},
[0x12187]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KA TIMES U",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12187, -- 𒆇
+ category="lo",
+ description="CUNEIFORM SIGN KA TIMES U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12187,
},
[0x12188]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KA TIMES U0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12188, -- 𒆈
+ category="lo",
+ description="CUNEIFORM SIGN KA TIMES U0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12188,
},
[0x12189]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KA TIMES UD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12189, -- 𒆉
+ category="lo",
+ description="CUNEIFORM SIGN KA TIMES UD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12189,
},
[0x1218A]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KA TIMES UMUM TIMES PA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1218A, -- 𒆊
+ category="lo",
+ description="CUNEIFORM SIGN KA TIMES UMUM TIMES PA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1218A,
},
[0x1218B]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KA TIMES USH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1218B, -- 𒆋
+ category="lo",
+ description="CUNEIFORM SIGN KA TIMES USH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1218B,
},
[0x1218C]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KA TIMES ZI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1218C, -- 𒆌
+ category="lo",
+ description="CUNEIFORM SIGN KA TIMES ZI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1218C,
},
[0x1218D]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KA0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1218D, -- 𒆍
+ category="lo",
+ description="CUNEIFORM SIGN KA0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1218D,
},
[0x1218E]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KA0x0002 CROSSING KA0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1218E, -- 𒆎
+ category="lo",
+ description="CUNEIFORM SIGN KA0x0002 CROSSING KA0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1218E,
},
[0x1218F]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KAB",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1218F, -- 𒆏
+ category="lo",
+ description="CUNEIFORM SIGN KAB",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1218F,
},
[0x12190]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KAD0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12190, -- 𒆐
+ category="lo",
+ description="CUNEIFORM SIGN KAD0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12190,
},
[0x12191]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KAD0x0003",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12191, -- 𒆑
+ category="lo",
+ description="CUNEIFORM SIGN KAD0x0003",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12191,
},
[0x12192]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KAD0x0004",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12192, -- 𒆒
+ category="lo",
+ description="CUNEIFORM SIGN KAD0x0004",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12192,
},
[0x12193]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KAD0x0005",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12193, -- 𒆓
+ category="lo",
+ description="CUNEIFORM SIGN KAD0x0005",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12193,
},
[0x12194]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KAD0x0005 OVER KAD0x0005",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12194, -- 𒆔
+ category="lo",
+ description="CUNEIFORM SIGN KAD0x0005 OVER KAD0x0005",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12194,
},
[0x12195]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KAK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12195, -- 𒆕
+ category="lo",
+ description="CUNEIFORM SIGN KAK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12195,
},
[0x12196]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KAK TIMES IGI GUNU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12196, -- 𒆖
+ category="lo",
+ description="CUNEIFORM SIGN KAK TIMES IGI GUNU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12196,
},
[0x12197]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12197, -- 𒆗
+ category="lo",
+ description="CUNEIFORM SIGN KAL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12197,
},
[0x12198]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KAL TIMES BAD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12198, -- 𒆘
+ category="lo",
+ description="CUNEIFORM SIGN KAL TIMES BAD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12198,
},
[0x12199]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KAL CROSSING KAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12199, -- 𒆙
+ category="lo",
+ description="CUNEIFORM SIGN KAL CROSSING KAL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12199,
},
[0x1219A]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KAM0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1219A, -- 𒆚
+ category="lo",
+ description="CUNEIFORM SIGN KAM0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1219A,
},
[0x1219B]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KAM0x0004",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1219B, -- 𒆛
+ category="lo",
+ description="CUNEIFORM SIGN KAM0x0004",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1219B,
},
[0x1219C]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KASKAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1219C, -- 𒆜
+ category="lo",
+ description="CUNEIFORM SIGN KASKAL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1219C,
},
[0x1219D]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KASKAL LAGAB TIMES U OVER LAGAB TIMES U",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1219D, -- 𒆝
+ category="lo",
+ description="CUNEIFORM SIGN KASKAL LAGAB TIMES U OVER LAGAB TIMES U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1219D,
},
[0x1219E]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KASKAL OVER KASKAL LAGAB TIMES U OVER LAGAB TIMES U",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1219E, -- 𒆞
+ category="lo",
+ description="CUNEIFORM SIGN KASKAL OVER KASKAL LAGAB TIMES U OVER LAGAB TIMES U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1219E,
},
[0x1219F]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KESH0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1219F, -- 𒆟
+ category="lo",
+ description="CUNEIFORM SIGN KESH0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1219F,
},
[0x121A0]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121A0, -- 𒆠
+ category="lo",
+ description="CUNEIFORM SIGN KI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121A0,
},
[0x121A1]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KI TIMES BAD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121A1, -- 𒆡
+ category="lo",
+ description="CUNEIFORM SIGN KI TIMES BAD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121A1,
},
[0x121A2]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KI TIMES U",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121A2, -- 𒆢
+ category="lo",
+ description="CUNEIFORM SIGN KI TIMES U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121A2,
},
[0x121A3]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KI TIMES UD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121A3, -- 𒆣
+ category="lo",
+ description="CUNEIFORM SIGN KI TIMES UD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121A3,
},
[0x121A4]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KID",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121A4, -- 𒆤
+ category="lo",
+ description="CUNEIFORM SIGN KID",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121A4,
},
[0x121A5]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KIN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121A5, -- 𒆥
+ category="lo",
+ description="CUNEIFORM SIGN KIN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121A5,
},
[0x121A6]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KISAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121A6, -- 𒆦
+ category="lo",
+ description="CUNEIFORM SIGN KISAL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121A6,
},
[0x121A7]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KISH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121A7, -- 𒆧
+ category="lo",
+ description="CUNEIFORM SIGN KISH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121A7,
},
[0x121A8]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KISIM0x0005",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121A8, -- 𒆨
+ category="lo",
+ description="CUNEIFORM SIGN KISIM0x0005",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121A8,
},
[0x121A9]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KISIM0x0005 OVER KISIM0x0005",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121A9, -- 𒆩
+ category="lo",
+ description="CUNEIFORM SIGN KISIM0x0005 OVER KISIM0x0005",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121A9,
},
[0x121AA]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121AA, -- 𒆪
+ category="lo",
+ description="CUNEIFORM SIGN KU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121AA,
},
[0x121AB]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KU OVER HI TIMES ASH0x0002 KU OVER HI TIMES ASH0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121AB, -- 𒆫
+ category="lo",
+ description="CUNEIFORM SIGN KU OVER HI TIMES ASH0x0002 KU OVER HI TIMES ASH0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121AB,
},
[0x121AC]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KU0x0003",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121AC, -- 𒆬
+ category="lo",
+ description="CUNEIFORM SIGN KU0x0003",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121AC,
},
[0x121AD]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KU0x0004",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121AD, -- 𒆭
+ category="lo",
+ description="CUNEIFORM SIGN KU0x0004",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121AD,
},
[0x121AE]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KU0x0004 VARIANT FORM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121AE, -- 𒆮
+ category="lo",
+ description="CUNEIFORM SIGN KU0x0004 VARIANT FORM",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121AE,
},
[0x121AF]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KU0x0007",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121AF, -- 𒆯
+ category="lo",
+ description="CUNEIFORM SIGN KU0x0007",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121AF,
},
[0x121B0]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KUL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121B0, -- 𒆰
+ category="lo",
+ description="CUNEIFORM SIGN KUL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121B0,
},
[0x121B1]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KUL GUNU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121B1, -- 𒆱
+ category="lo",
+ description="CUNEIFORM SIGN KUL GUNU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121B1,
},
[0x121B2]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KUN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121B2, -- 𒆲
+ category="lo",
+ description="CUNEIFORM SIGN KUN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121B2,
},
[0x121B3]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KUR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121B3, -- 𒆳
+ category="lo",
+ description="CUNEIFORM SIGN KUR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121B3,
},
[0x121B4]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KUR OPPOSING KUR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121B4, -- 𒆴
+ category="lo",
+ description="CUNEIFORM SIGN KUR OPPOSING KUR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121B4,
},
[0x121B5]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KUSHU0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121B5, -- 𒆵
+ category="lo",
+ description="CUNEIFORM SIGN KUSHU0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121B5,
},
[0x121B6]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN KWU0x013E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121B6, -- 𒆶
+ category="lo",
+ description="CUNEIFORM SIGN KWU0x013E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121B6,
},
[0x121B7]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121B7, -- 𒆷
+ category="lo",
+ description="CUNEIFORM SIGN LA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121B7,
},
[0x121B8]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAGAB",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121B8, -- 𒆸
+ category="lo",
+ description="CUNEIFORM SIGN LAGAB",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121B8,
},
[0x121B9]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAGAB TIMES A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121B9, -- 𒆹
+ category="lo",
+ description="CUNEIFORM SIGN LAGAB TIMES A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121B9,
},
[0x121BA]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAGAB TIMES A PLUS DA PLUS HA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121BA, -- 𒆺
+ category="lo",
+ description="CUNEIFORM SIGN LAGAB TIMES A PLUS DA PLUS HA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121BA,
},
[0x121BB]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAGAB TIMES A PLUS GAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121BB, -- 𒆻
+ category="lo",
+ description="CUNEIFORM SIGN LAGAB TIMES A PLUS GAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121BB,
},
[0x121BC]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAGAB TIMES A PLUS LAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121BC, -- 𒆼
+ category="lo",
+ description="CUNEIFORM SIGN LAGAB TIMES A PLUS LAL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121BC,
},
[0x121BD]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAGAB TIMES AL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121BD, -- 𒆽
+ category="lo",
+ description="CUNEIFORM SIGN LAGAB TIMES AL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121BD,
},
[0x121BE]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAGAB TIMES AN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121BE, -- 𒆾
+ category="lo",
+ description="CUNEIFORM SIGN LAGAB TIMES AN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121BE,
},
[0x121BF]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAGAB TIMES ASH ZIDA TENU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121BF, -- 𒆿
+ category="lo",
+ description="CUNEIFORM SIGN LAGAB TIMES ASH ZIDA TENU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121BF,
},
[0x121C0]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAGAB TIMES BAD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121C0, -- 𒇀
+ category="lo",
+ description="CUNEIFORM SIGN LAGAB TIMES BAD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121C0,
},
[0x121C1]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAGAB TIMES BI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121C1, -- 𒇁
+ category="lo",
+ description="CUNEIFORM SIGN LAGAB TIMES BI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121C1,
},
[0x121C2]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAGAB TIMES DAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121C2, -- 𒇂
+ category="lo",
+ description="CUNEIFORM SIGN LAGAB TIMES DAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121C2,
},
[0x121C3]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAGAB TIMES EN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121C3, -- 𒇃
+ category="lo",
+ description="CUNEIFORM SIGN LAGAB TIMES EN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121C3,
},
[0x121C4]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAGAB TIMES GA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121C4, -- 𒇄
+ category="lo",
+ description="CUNEIFORM SIGN LAGAB TIMES GA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121C4,
},
[0x121C5]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAGAB TIMES GAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121C5, -- 𒇅
+ category="lo",
+ description="CUNEIFORM SIGN LAGAB TIMES GAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121C5,
},
[0x121C6]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAGAB TIMES GUD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121C6, -- 𒇆
+ category="lo",
+ description="CUNEIFORM SIGN LAGAB TIMES GUD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121C6,
},
[0x121C7]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAGAB TIMES GUD PLUS GUD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121C7, -- 𒇇
+ category="lo",
+ description="CUNEIFORM SIGN LAGAB TIMES GUD PLUS GUD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121C7,
},
[0x121C8]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAGAB TIMES HA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121C8, -- 𒇈
+ category="lo",
+ description="CUNEIFORM SIGN LAGAB TIMES HA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121C8,
},
[0x121C9]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAGAB TIMES HAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121C9, -- 𒇉
+ category="lo",
+ description="CUNEIFORM SIGN LAGAB TIMES HAL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121C9,
},
[0x121CA]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAGAB TIMES HI TIMES NUN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121CA, -- 𒇊
+ category="lo",
+ description="CUNEIFORM SIGN LAGAB TIMES HI TIMES NUN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121CA,
},
[0x121CB]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAGAB TIMES IGI GUNU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121CB, -- 𒇋
+ category="lo",
+ description="CUNEIFORM SIGN LAGAB TIMES IGI GUNU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121CB,
},
[0x121CC]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAGAB TIMES IM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121CC, -- 𒇌
+ category="lo",
+ description="CUNEIFORM SIGN LAGAB TIMES IM",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121CC,
},
[0x121CD]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAGAB TIMES IM PLUS HA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121CD, -- 𒇍
+ category="lo",
+ description="CUNEIFORM SIGN LAGAB TIMES IM PLUS HA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121CD,
},
[0x121CE]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAGAB TIMES IM PLUS LU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121CE, -- 𒇎
+ category="lo",
+ description="CUNEIFORM SIGN LAGAB TIMES IM PLUS LU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121CE,
},
[0x121CF]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAGAB TIMES KI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121CF, -- 𒇏
+ category="lo",
+ description="CUNEIFORM SIGN LAGAB TIMES KI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121CF,
},
[0x121D0]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAGAB TIMES KIN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121D0, -- 𒇐
+ category="lo",
+ description="CUNEIFORM SIGN LAGAB TIMES KIN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121D0,
},
[0x121D1]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAGAB TIMES KU0x0003",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121D1, -- 𒇑
+ category="lo",
+ description="CUNEIFORM SIGN LAGAB TIMES KU0x0003",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121D1,
},
[0x121D2]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAGAB TIMES KUL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121D2, -- 𒇒
+ category="lo",
+ description="CUNEIFORM SIGN LAGAB TIMES KUL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121D2,
},
[0x121D3]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAGAB TIMES KUL PLUS HI PLUS A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121D3, -- 𒇓
+ category="lo",
+ description="CUNEIFORM SIGN LAGAB TIMES KUL PLUS HI PLUS A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121D3,
},
[0x121D4]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAGAB TIMES LAGAB",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121D4, -- 𒇔
+ category="lo",
+ description="CUNEIFORM SIGN LAGAB TIMES LAGAB",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121D4,
},
[0x121D5]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAGAB TIMES LISH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121D5, -- 𒇕
+ category="lo",
+ description="CUNEIFORM SIGN LAGAB TIMES LISH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121D5,
},
[0x121D6]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAGAB TIMES LU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121D6, -- 𒇖
+ category="lo",
+ description="CUNEIFORM SIGN LAGAB TIMES LU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121D6,
},
[0x121D7]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAGAB TIMES LUL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121D7, -- 𒇗
+ category="lo",
+ description="CUNEIFORM SIGN LAGAB TIMES LUL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121D7,
},
[0x121D8]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAGAB TIMES ME",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121D8, -- 𒇘
+ category="lo",
+ description="CUNEIFORM SIGN LAGAB TIMES ME",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121D8,
},
[0x121D9]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAGAB TIMES ME PLUS EN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121D9, -- 𒇙
+ category="lo",
+ description="CUNEIFORM SIGN LAGAB TIMES ME PLUS EN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121D9,
},
[0x121DA]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAGAB TIMES MUSH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121DA, -- 𒇚
+ category="lo",
+ description="CUNEIFORM SIGN LAGAB TIMES MUSH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121DA,
},
[0x121DB]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAGAB TIMES NE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121DB, -- 𒇛
+ category="lo",
+ description="CUNEIFORM SIGN LAGAB TIMES NE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121DB,
},
[0x121DC]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAGAB TIMES SHE PLUS SUM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121DC, -- 𒇜
+ category="lo",
+ description="CUNEIFORM SIGN LAGAB TIMES SHE PLUS SUM",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121DC,
},
[0x121DD]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAGAB TIMES SHITA PLUS GISH PLUS ERIN0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121DD, -- 𒇝
+ category="lo",
+ description="CUNEIFORM SIGN LAGAB TIMES SHITA PLUS GISH PLUS ERIN0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121DD,
},
[0x121DE]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAGAB TIMES SHITA PLUS GISH TENU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121DE, -- 𒇞
+ category="lo",
+ description="CUNEIFORM SIGN LAGAB TIMES SHITA PLUS GISH TENU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121DE,
},
[0x121DF]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAGAB TIMES SHU0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121DF, -- 𒇟
+ category="lo",
+ description="CUNEIFORM SIGN LAGAB TIMES SHU0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121DF,
},
[0x121E0]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAGAB TIMES SHU0x0002 PLUS SHU0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121E0, -- 𒇠
+ category="lo",
+ description="CUNEIFORM SIGN LAGAB TIMES SHU0x0002 PLUS SHU0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121E0,
},
[0x121E1]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAGAB TIMES SUM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121E1, -- 𒇡
+ category="lo",
+ description="CUNEIFORM SIGN LAGAB TIMES SUM",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121E1,
},
[0x121E2]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAGAB TIMES TAG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121E2, -- 𒇢
+ category="lo",
+ description="CUNEIFORM SIGN LAGAB TIMES TAG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121E2,
},
[0x121E3]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAGAB TIMES TAK0x0004",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121E3, -- 𒇣
+ category="lo",
+ description="CUNEIFORM SIGN LAGAB TIMES TAK0x0004",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121E3,
},
[0x121E4]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAGAB TIMES TE PLUS A PLUS SU PLUS NA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121E4, -- 𒇤
+ category="lo",
+ description="CUNEIFORM SIGN LAGAB TIMES TE PLUS A PLUS SU PLUS NA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121E4,
},
[0x121E5]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAGAB TIMES U",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121E5, -- 𒇥
+ category="lo",
+ description="CUNEIFORM SIGN LAGAB TIMES U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121E5,
},
[0x121E6]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAGAB TIMES U PLUS A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121E6, -- 𒇦
+ category="lo",
+ description="CUNEIFORM SIGN LAGAB TIMES U PLUS A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121E6,
},
[0x121E7]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAGAB TIMES U PLUS U PLUS U",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121E7, -- 𒇧
+ category="lo",
+ description="CUNEIFORM SIGN LAGAB TIMES U PLUS U PLUS U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121E7,
},
[0x121E8]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAGAB TIMES U0x0002 PLUS ASH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121E8, -- 𒇨
+ category="lo",
+ description="CUNEIFORM SIGN LAGAB TIMES U0x0002 PLUS ASH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121E8,
},
[0x121E9]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAGAB TIMES UD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121E9, -- 𒇩
+ category="lo",
+ description="CUNEIFORM SIGN LAGAB TIMES UD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121E9,
},
[0x121EA]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAGAB TIMES USH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121EA, -- 𒇪
+ category="lo",
+ description="CUNEIFORM SIGN LAGAB TIMES USH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121EA,
},
[0x121EB]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAGAB SQUARED",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121EB, -- 𒇫
+ category="lo",
+ description="CUNEIFORM SIGN LAGAB SQUARED",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121EB,
},
[0x121EC]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAGAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121EC, -- 𒇬
+ category="lo",
+ description="CUNEIFORM SIGN LAGAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121EC,
},
[0x121ED]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAGAR TIMES SHE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121ED, -- 𒇭
+ category="lo",
+ description="CUNEIFORM SIGN LAGAR TIMES SHE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121ED,
},
[0x121EE]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAGAR TIMES SHE PLUS SUM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121EE, -- 𒇮
+ category="lo",
+ description="CUNEIFORM SIGN LAGAR TIMES SHE PLUS SUM",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121EE,
},
[0x121EF]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAGAR GUNU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121EF, -- 𒇯
+ category="lo",
+ description="CUNEIFORM SIGN LAGAR GUNU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121EF,
},
[0x121F0]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAGAR GUNU OVER LAGAR GUNU SHE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121F0, -- 𒇰
+ category="lo",
+ description="CUNEIFORM SIGN LAGAR GUNU OVER LAGAR GUNU SHE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121F0,
},
[0x121F1]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAHSHU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121F1, -- 𒇱
+ category="lo",
+ description="CUNEIFORM SIGN LAHSHU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121F1,
},
[0x121F2]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121F2, -- 𒇲
+ category="lo",
+ description="CUNEIFORM SIGN LAL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121F2,
},
[0x121F3]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAL TIMES LAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121F3, -- 𒇳
+ category="lo",
+ description="CUNEIFORM SIGN LAL TIMES LAL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121F3,
},
[0x121F4]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121F4, -- 𒇴
+ category="lo",
+ description="CUNEIFORM SIGN LAM",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121F4,
},
[0x121F5]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAM TIMES KUR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121F5, -- 𒇵
+ category="lo",
+ description="CUNEIFORM SIGN LAM TIMES KUR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121F5,
},
[0x121F6]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LAM TIMES KUR PLUS RU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121F6, -- 𒇶
+ category="lo",
+ description="CUNEIFORM SIGN LAM TIMES KUR PLUS RU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121F6,
},
[0x121F7]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121F7, -- 𒇷
+ category="lo",
+ description="CUNEIFORM SIGN LI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121F7,
},
[0x121F8]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LIL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121F8, -- 𒇸
+ category="lo",
+ description="CUNEIFORM SIGN LIL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121F8,
},
[0x121F9]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LIMMU0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121F9, -- 𒇹
+ category="lo",
+ description="CUNEIFORM SIGN LIMMU0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121F9,
},
[0x121FA]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LISH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121FA, -- 𒇺
+ category="lo",
+ description="CUNEIFORM SIGN LISH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121FA,
},
[0x121FB]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121FB, -- 𒇻
+ category="lo",
+ description="CUNEIFORM SIGN LU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121FB,
},
[0x121FC]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LU TIMES BAD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121FC, -- 𒇼
+ category="lo",
+ description="CUNEIFORM SIGN LU TIMES BAD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121FC,
},
[0x121FD]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LU0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121FD, -- 𒇽
+ category="lo",
+ description="CUNEIFORM SIGN LU0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121FD,
},
[0x121FE]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LU0x0002 TIMES AL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121FE, -- 𒇾
+ category="lo",
+ description="CUNEIFORM SIGN LU0x0002 TIMES AL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121FE,
},
[0x121FF]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LU0x0002 TIMES BAD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x121FF, -- 𒇿
+ category="lo",
+ description="CUNEIFORM SIGN LU0x0002 TIMES BAD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x121FF,
},
[0x12200]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LU0x0002 TIMES ESH0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12200, -- 𒈀
+ category="lo",
+ description="CUNEIFORM SIGN LU0x0002 TIMES ESH0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12200,
},
[0x12201]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LU0x0002 TIMES ESH0x0002 TENU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12201, -- 𒈁
+ category="lo",
+ description="CUNEIFORM SIGN LU0x0002 TIMES ESH0x0002 TENU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12201,
},
[0x12202]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LU0x0002 TIMES GAN0x0002 TENU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12202, -- 𒈂
+ category="lo",
+ description="CUNEIFORM SIGN LU0x0002 TIMES GAN0x0002 TENU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12202,
},
[0x12203]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LU0x0002 TIMES HI TIMES BAD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12203, -- 𒈃
+ category="lo",
+ description="CUNEIFORM SIGN LU0x0002 TIMES HI TIMES BAD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12203,
},
[0x12204]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LU0x0002 TIMES IM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12204, -- 𒈄
+ category="lo",
+ description="CUNEIFORM SIGN LU0x0002 TIMES IM",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12204,
},
[0x12205]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LU0x0002 TIMES KAD0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12205, -- 𒈅
+ category="lo",
+ description="CUNEIFORM SIGN LU0x0002 TIMES KAD0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12205,
},
[0x12206]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LU0x0002 TIMES KAD0x0003",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12206, -- 𒈆
+ category="lo",
+ description="CUNEIFORM SIGN LU0x0002 TIMES KAD0x0003",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12206,
},
[0x12207]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LU0x0002 TIMES KAD0x0003 PLUS ASH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12207, -- 𒈇
+ category="lo",
+ description="CUNEIFORM SIGN LU0x0002 TIMES KAD0x0003 PLUS ASH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12207,
},
[0x12208]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LU0x0002 TIMES KI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12208, -- 𒈈
+ category="lo",
+ description="CUNEIFORM SIGN LU0x0002 TIMES KI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12208,
},
[0x12209]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LU0x0002 TIMES LA PLUS ASH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12209, -- 𒈉
+ category="lo",
+ description="CUNEIFORM SIGN LU0x0002 TIMES LA PLUS ASH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12209,
},
[0x1220A]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LU0x0002 TIMES LAGAB",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1220A, -- 𒈊
+ category="lo",
+ description="CUNEIFORM SIGN LU0x0002 TIMES LAGAB",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1220A,
},
[0x1220B]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LU0x0002 TIMES ME PLUS EN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1220B, -- 𒈋
+ category="lo",
+ description="CUNEIFORM SIGN LU0x0002 TIMES ME PLUS EN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1220B,
},
[0x1220C]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LU0x0002 TIMES NE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1220C, -- 𒈌
+ category="lo",
+ description="CUNEIFORM SIGN LU0x0002 TIMES NE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1220C,
},
[0x1220D]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LU0x0002 TIMES NU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1220D, -- 𒈍
+ category="lo",
+ description="CUNEIFORM SIGN LU0x0002 TIMES NU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1220D,
},
[0x1220E]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LU0x0002 TIMES SI PLUS ASH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1220E, -- 𒈎
+ category="lo",
+ description="CUNEIFORM SIGN LU0x0002 TIMES SI PLUS ASH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1220E,
},
[0x1220F]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LU0x0002 TIMES SIK0x0002 PLUS BU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1220F, -- 𒈏
+ category="lo",
+ description="CUNEIFORM SIGN LU0x0002 TIMES SIK0x0002 PLUS BU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1220F,
},
[0x12210]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LU0x0002 TIMES TUG0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12210, -- 𒈐
+ category="lo",
+ description="CUNEIFORM SIGN LU0x0002 TIMES TUG0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12210,
},
[0x12211]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LU0x0002 TENU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12211, -- 𒈑
+ category="lo",
+ description="CUNEIFORM SIGN LU0x0002 TENU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12211,
},
[0x12212]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LU0x0002 CROSSING LU0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12212, -- 𒈒
+ category="lo",
+ description="CUNEIFORM SIGN LU0x0002 CROSSING LU0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12212,
},
[0x12213]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LU0x0002 OPPOSING LU0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12213, -- 𒈓
+ category="lo",
+ description="CUNEIFORM SIGN LU0x0002 OPPOSING LU0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12213,
},
[0x12214]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LU0x0002 SQUARED",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12214, -- 𒈔
+ category="lo",
+ description="CUNEIFORM SIGN LU0x0002 SQUARED",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12214,
},
[0x12215]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LU0x0002 SHESHIG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12215, -- 𒈕
+ category="lo",
+ description="CUNEIFORM SIGN LU0x0002 SHESHIG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12215,
},
[0x12216]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LU0x0003",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12216, -- 𒈖
+ category="lo",
+ description="CUNEIFORM SIGN LU0x0003",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12216,
},
[0x12217]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LUGAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12217, -- 𒈗
+ category="lo",
+ description="CUNEIFORM SIGN LUGAL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12217,
},
[0x12218]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LUGAL OVER LUGAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12218, -- 𒈘
+ category="lo",
+ description="CUNEIFORM SIGN LUGAL OVER LUGAL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12218,
},
[0x12219]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LUGAL OPPOSING LUGAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12219, -- 𒈙
+ category="lo",
+ description="CUNEIFORM SIGN LUGAL OPPOSING LUGAL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12219,
},
[0x1221A]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LUGAL SHESHIG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1221A, -- 𒈚
+ category="lo",
+ description="CUNEIFORM SIGN LUGAL SHESHIG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1221A,
},
[0x1221B]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LUH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1221B, -- 𒈛
+ category="lo",
+ description="CUNEIFORM SIGN LUH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1221B,
},
[0x1221C]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LUL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1221C, -- 𒈜
+ category="lo",
+ description="CUNEIFORM SIGN LUL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1221C,
},
[0x1221D]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LUM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1221D, -- 𒈝
+ category="lo",
+ description="CUNEIFORM SIGN LUM",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1221D,
},
[0x1221E]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LUM OVER LUM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1221E, -- 𒈞
+ category="lo",
+ description="CUNEIFORM SIGN LUM OVER LUM",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1221E,
},
[0x1221F]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN LUM OVER LUM GAR OVER GAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1221F, -- 𒈟
+ category="lo",
+ description="CUNEIFORM SIGN LUM OVER LUM GAR OVER GAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1221F,
},
[0x12220]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN MA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12220, -- 𒈠
+ category="lo",
+ description="CUNEIFORM SIGN MA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12220,
},
[0x12221]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN MA TIMES TAK0x0004",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12221, -- 𒈡
+ category="lo",
+ description="CUNEIFORM SIGN MA TIMES TAK0x0004",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12221,
},
[0x12222]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN MA GUNU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12222, -- 𒈢
+ category="lo",
+ description="CUNEIFORM SIGN MA GUNU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12222,
},
[0x12223]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN MA0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12223, -- 𒈣
+ category="lo",
+ description="CUNEIFORM SIGN MA0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12223,
},
[0x12224]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN MAH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12224, -- 𒈤
+ category="lo",
+ description="CUNEIFORM SIGN MAH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12224,
},
[0x12225]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN MAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12225, -- 𒈥
+ category="lo",
+ description="CUNEIFORM SIGN MAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12225,
},
[0x12226]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN MASH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12226, -- 𒈦
+ category="lo",
+ description="CUNEIFORM SIGN MASH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12226,
},
[0x12227]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN MASH0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12227, -- 𒈧
+ category="lo",
+ description="CUNEIFORM SIGN MASH0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12227,
},
[0x12228]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN ME",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12228, -- 𒈨
+ category="lo",
+ description="CUNEIFORM SIGN ME",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12228,
},
[0x12229]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN MES",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12229, -- 𒈩
+ category="lo",
+ description="CUNEIFORM SIGN MES",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12229,
},
[0x1222A]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN MI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1222A, -- 𒈪
+ category="lo",
+ description="CUNEIFORM SIGN MI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1222A,
},
[0x1222B]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN MIN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1222B, -- 𒈫
+ category="lo",
+ description="CUNEIFORM SIGN MIN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1222B,
},
[0x1222C]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN MU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1222C, -- 𒈬
+ category="lo",
+ description="CUNEIFORM SIGN MU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1222C,
},
[0x1222D]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN MU OVER MU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1222D, -- 𒈭
+ category="lo",
+ description="CUNEIFORM SIGN MU OVER MU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1222D,
},
[0x1222E]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN MUG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1222E, -- 𒈮
+ category="lo",
+ description="CUNEIFORM SIGN MUG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1222E,
},
[0x1222F]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN MUG GUNU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1222F, -- 𒈯
+ category="lo",
+ description="CUNEIFORM SIGN MUG GUNU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1222F,
},
[0x12230]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN MUNSUB",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12230, -- 𒈰
+ category="lo",
+ description="CUNEIFORM SIGN MUNSUB",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12230,
},
[0x12231]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN MURGU0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12231, -- 𒈱
+ category="lo",
+ description="CUNEIFORM SIGN MURGU0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12231,
},
[0x12232]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN MUSH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12232, -- 𒈲
+ category="lo",
+ description="CUNEIFORM SIGN MUSH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12232,
},
[0x12233]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN MUSH TIMES A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12233, -- 𒈳
+ category="lo",
+ description="CUNEIFORM SIGN MUSH TIMES A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12233,
},
[0x12234]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN MUSH TIMES KUR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12234, -- 𒈴
+ category="lo",
+ description="CUNEIFORM SIGN MUSH TIMES KUR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12234,
},
[0x12235]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN MUSH TIMES ZA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12235, -- 𒈵
+ category="lo",
+ description="CUNEIFORM SIGN MUSH TIMES ZA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12235,
},
[0x12236]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN MUSH OVER MUSH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12236, -- 𒈶
+ category="lo",
+ description="CUNEIFORM SIGN MUSH OVER MUSH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12236,
},
[0x12237]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN MUSH OVER MUSH TIMES A PLUS NA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12237, -- 𒈷
+ category="lo",
+ description="CUNEIFORM SIGN MUSH OVER MUSH TIMES A PLUS NA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12237,
},
[0x12238]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN MUSH CROSSING MUSH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12238, -- 𒈸
+ category="lo",
+ description="CUNEIFORM SIGN MUSH CROSSING MUSH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12238,
},
[0x12239]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN MUSH0x0003",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12239, -- 𒈹
+ category="lo",
+ description="CUNEIFORM SIGN MUSH0x0003",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12239,
},
[0x1223A]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN MUSH0x0003 TIMES A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1223A, -- 𒈺
+ category="lo",
+ description="CUNEIFORM SIGN MUSH0x0003 TIMES A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1223A,
},
[0x1223B]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN MUSH0x0003 TIMES A PLUS DI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1223B, -- 𒈻
+ category="lo",
+ description="CUNEIFORM SIGN MUSH0x0003 TIMES A PLUS DI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1223B,
},
[0x1223C]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN MUSH0x0003 TIMES DI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1223C, -- 𒈼
+ category="lo",
+ description="CUNEIFORM SIGN MUSH0x0003 TIMES DI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1223C,
},
[0x1223D]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN MUSH0x0003 GUNU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1223D, -- 𒈽
+ category="lo",
+ description="CUNEIFORM SIGN MUSH0x0003 GUNU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1223D,
},
[0x1223E]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN NA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1223E, -- 𒈾
+ category="lo",
+ description="CUNEIFORM SIGN NA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1223E,
},
[0x1223F]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN NA0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1223F, -- 𒈿
+ category="lo",
+ description="CUNEIFORM SIGN NA0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1223F,
},
[0x12240]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN NAGA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12240, -- 𒉀
+ category="lo",
+ description="CUNEIFORM SIGN NAGA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12240,
},
[0x12241]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN NAGA INVERTED",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12241, -- 𒉁
+ category="lo",
+ description="CUNEIFORM SIGN NAGA INVERTED",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12241,
},
[0x12242]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN NAGA TIMES SHU TENU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12242, -- 𒉂
+ category="lo",
+ description="CUNEIFORM SIGN NAGA TIMES SHU TENU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12242,
},
[0x12243]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN NAGA OPPOSING NAGA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12243, -- 𒉃
+ category="lo",
+ description="CUNEIFORM SIGN NAGA OPPOSING NAGA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12243,
},
[0x12244]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN NAGAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12244, -- 𒉄
+ category="lo",
+ description="CUNEIFORM SIGN NAGAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12244,
},
[0x12245]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN NAM NUTILLU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12245, -- 𒉅
+ category="lo",
+ description="CUNEIFORM SIGN NAM NUTILLU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12245,
},
[0x12246]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN NAM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12246, -- 𒉆
+ category="lo",
+ description="CUNEIFORM SIGN NAM",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12246,
},
[0x12247]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN NAM0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12247, -- 𒉇
+ category="lo",
+ description="CUNEIFORM SIGN NAM0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12247,
},
[0x12248]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN NE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12248, -- 𒉈
+ category="lo",
+ description="CUNEIFORM SIGN NE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12248,
},
[0x12249]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN NE TIMES A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12249, -- 𒉉
+ category="lo",
+ description="CUNEIFORM SIGN NE TIMES A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12249,
},
[0x1224A]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN NE TIMES UD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1224A, -- 𒉊
+ category="lo",
+ description="CUNEIFORM SIGN NE TIMES UD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1224A,
},
[0x1224B]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN NE SHESHIG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1224B, -- 𒉋
+ category="lo",
+ description="CUNEIFORM SIGN NE SHESHIG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1224B,
},
[0x1224C]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN NI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1224C, -- 𒉌
+ category="lo",
+ description="CUNEIFORM SIGN NI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1224C,
},
[0x1224D]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN NI TIMES E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1224D, -- 𒉍
+ category="lo",
+ description="CUNEIFORM SIGN NI TIMES E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1224D,
},
[0x1224E]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN NI0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1224E, -- 𒉎
+ category="lo",
+ description="CUNEIFORM SIGN NI0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1224E,
},
[0x1224F]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN NIM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1224F, -- 𒉏
+ category="lo",
+ description="CUNEIFORM SIGN NIM",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1224F,
},
[0x12250]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN NIM TIMES GAN0x0002 TENU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12250, -- 𒉐
+ category="lo",
+ description="CUNEIFORM SIGN NIM TIMES GAN0x0002 TENU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12250,
},
[0x12251]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN NIM TIMES GAR PLUS GAN0x0002 TENU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12251, -- 𒉑
+ category="lo",
+ description="CUNEIFORM SIGN NIM TIMES GAR PLUS GAN0x0002 TENU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12251,
},
[0x12252]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN NINDA0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12252, -- 𒉒
+ category="lo",
+ description="CUNEIFORM SIGN NINDA0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12252,
},
[0x12253]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN NINDA0x0002 TIMES AN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12253, -- 𒉓
+ category="lo",
+ description="CUNEIFORM SIGN NINDA0x0002 TIMES AN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12253,
},
[0x12254]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN NINDA0x0002 TIMES ASH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12254, -- 𒉔
+ category="lo",
+ description="CUNEIFORM SIGN NINDA0x0002 TIMES ASH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12254,
},
[0x12255]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN NINDA0x0002 TIMES ASH PLUS ASH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12255, -- 𒉕
+ category="lo",
+ description="CUNEIFORM SIGN NINDA0x0002 TIMES ASH PLUS ASH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12255,
},
[0x12256]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN NINDA0x0002 TIMES GUD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12256, -- 𒉖
+ category="lo",
+ description="CUNEIFORM SIGN NINDA0x0002 TIMES GUD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12256,
},
[0x12257]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN NINDA0x0002 TIMES ME PLUS GAN0x0002 TENU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12257, -- 𒉗
+ category="lo",
+ description="CUNEIFORM SIGN NINDA0x0002 TIMES ME PLUS GAN0x0002 TENU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12257,
},
[0x12258]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN NINDA0x0002 TIMES NE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12258, -- 𒉘
+ category="lo",
+ description="CUNEIFORM SIGN NINDA0x0002 TIMES NE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12258,
},
[0x12259]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN NINDA0x0002 TIMES NUN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12259, -- 𒉙
+ category="lo",
+ description="CUNEIFORM SIGN NINDA0x0002 TIMES NUN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12259,
},
[0x1225A]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN NINDA0x0002 TIMES SHE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1225A, -- 𒉚
+ category="lo",
+ description="CUNEIFORM SIGN NINDA0x0002 TIMES SHE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1225A,
},
[0x1225B]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN NINDA0x0002 TIMES SHE PLUS A AN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1225B, -- 𒉛
+ category="lo",
+ description="CUNEIFORM SIGN NINDA0x0002 TIMES SHE PLUS A AN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1225B,
},
[0x1225C]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN NINDA0x0002 TIMES SHE PLUS ASH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1225C, -- 𒉜
+ category="lo",
+ description="CUNEIFORM SIGN NINDA0x0002 TIMES SHE PLUS ASH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1225C,
},
[0x1225D]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN NINDA0x0002 TIMES SHE PLUS ASH PLUS ASH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1225D, -- 𒉝
+ category="lo",
+ description="CUNEIFORM SIGN NINDA0x0002 TIMES SHE PLUS ASH PLUS ASH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1225D,
},
[0x1225E]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN NINDA0x0002 TIMES U0x0002 PLUS ASH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1225E, -- 𒉞
+ category="lo",
+ description="CUNEIFORM SIGN NINDA0x0002 TIMES U0x0002 PLUS ASH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1225E,
},
[0x1225F]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN NINDA0x0002 TIMES USH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1225F, -- 𒉟
+ category="lo",
+ description="CUNEIFORM SIGN NINDA0x0002 TIMES USH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1225F,
},
[0x12260]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN NISAG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12260, -- 𒉠
+ category="lo",
+ description="CUNEIFORM SIGN NISAG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12260,
},
[0x12261]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN NU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12261, -- 𒉡
+ category="lo",
+ description="CUNEIFORM SIGN NU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12261,
},
[0x12262]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN NU0x000B",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12262, -- 𒉢
+ category="lo",
+ description="CUNEIFORM SIGN NU0x000B",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12262,
},
[0x12263]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN NUN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12263, -- 𒉣
+ category="lo",
+ description="CUNEIFORM SIGN NUN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12263,
},
[0x12264]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN NUN LAGAR TIMES GAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12264, -- 𒉤
+ category="lo",
+ description="CUNEIFORM SIGN NUN LAGAR TIMES GAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12264,
},
[0x12265]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN NUN LAGAR TIMES MASH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12265, -- 𒉥
+ category="lo",
+ description="CUNEIFORM SIGN NUN LAGAR TIMES MASH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12265,
},
[0x12266]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN NUN LAGAR TIMES SAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12266, -- 𒉦
+ category="lo",
+ description="CUNEIFORM SIGN NUN LAGAR TIMES SAL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12266,
},
[0x12267]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN NUN LAGAR TIMES SAL OVER NUN LAGAR TIMES SAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12267, -- 𒉧
+ category="lo",
+ description="CUNEIFORM SIGN NUN LAGAR TIMES SAL OVER NUN LAGAR TIMES SAL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12267,
},
[0x12268]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN NUN LAGAR TIMES USH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12268, -- 𒉨
+ category="lo",
+ description="CUNEIFORM SIGN NUN LAGAR TIMES USH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12268,
},
[0x12269]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN NUN TENU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12269, -- 𒉩
+ category="lo",
+ description="CUNEIFORM SIGN NUN TENU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12269,
},
[0x1226A]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN NUN OVER NUN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1226A, -- 𒉪
+ category="lo",
+ description="CUNEIFORM SIGN NUN OVER NUN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1226A,
},
[0x1226B]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN NUN CROSSING NUN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1226B, -- 𒉫
+ category="lo",
+ description="CUNEIFORM SIGN NUN CROSSING NUN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1226B,
},
[0x1226C]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN NUN CROSSING NUN LAGAR OVER LAGAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1226C, -- 𒉬
+ category="lo",
+ description="CUNEIFORM SIGN NUN CROSSING NUN LAGAR OVER LAGAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1226C,
},
[0x1226D]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN NUNUZ",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1226D, -- 𒉭
+ category="lo",
+ description="CUNEIFORM SIGN NUNUZ",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1226D,
},
[0x1226E]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN NUNUZ AB0x0002 TIMES ASHGAB",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1226E, -- 𒉮
+ category="lo",
+ description="CUNEIFORM SIGN NUNUZ AB0x0002 TIMES ASHGAB",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1226E,
},
[0x1226F]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN NUNUZ AB0x0002 TIMES BI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1226F, -- 𒉯
+ category="lo",
+ description="CUNEIFORM SIGN NUNUZ AB0x0002 TIMES BI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1226F,
},
[0x12270]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN NUNUZ AB0x0002 TIMES DUG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12270, -- 𒉰
+ category="lo",
+ description="CUNEIFORM SIGN NUNUZ AB0x0002 TIMES DUG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12270,
},
[0x12271]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN NUNUZ AB0x0002 TIMES GUD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12271, -- 𒉱
+ category="lo",
+ description="CUNEIFORM SIGN NUNUZ AB0x0002 TIMES GUD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12271,
},
[0x12272]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN NUNUZ AB0x0002 TIMES IGI GUNU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12272, -- 𒉲
+ category="lo",
+ description="CUNEIFORM SIGN NUNUZ AB0x0002 TIMES IGI GUNU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12272,
},
[0x12273]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN NUNUZ AB0x0002 TIMES KAD0x0003",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12273, -- 𒉳
+ category="lo",
+ description="CUNEIFORM SIGN NUNUZ AB0x0002 TIMES KAD0x0003",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12273,
},
[0x12274]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN NUNUZ AB0x0002 TIMES LA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12274, -- 𒉴
+ category="lo",
+ description="CUNEIFORM SIGN NUNUZ AB0x0002 TIMES LA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12274,
},
[0x12275]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN NUNUZ AB0x0002 TIMES NE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12275, -- 𒉵
+ category="lo",
+ description="CUNEIFORM SIGN NUNUZ AB0x0002 TIMES NE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12275,
},
[0x12276]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN NUNUZ AB0x0002 TIMES SILA0x0003",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12276, -- 𒉶
+ category="lo",
+ description="CUNEIFORM SIGN NUNUZ AB0x0002 TIMES SILA0x0003",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12276,
},
[0x12277]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN NUNUZ AB0x0002 TIMES U0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12277, -- 𒉷
+ category="lo",
+ description="CUNEIFORM SIGN NUNUZ AB0x0002 TIMES U0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12277,
},
[0x12278]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN NUNUZ KISIM0x0005 TIMES BI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12278, -- 𒉸
+ category="lo",
+ description="CUNEIFORM SIGN NUNUZ KISIM0x0005 TIMES BI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12278,
},
[0x12279]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN NUNUZ KISIM0x0005 TIMES BI U",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12279, -- 𒉹
+ category="lo",
+ description="CUNEIFORM SIGN NUNUZ KISIM0x0005 TIMES BI U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12279,
},
[0x1227A]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN PA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1227A, -- 𒉺
+ category="lo",
+ description="CUNEIFORM SIGN PA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1227A,
},
[0x1227B]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN PAD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1227B, -- 𒉻
+ category="lo",
+ description="CUNEIFORM SIGN PAD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1227B,
},
[0x1227C]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN PAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1227C, -- 𒉼
+ category="lo",
+ description="CUNEIFORM SIGN PAN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1227C,
},
[0x1227D]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN PAP",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1227D, -- 𒉽
+ category="lo",
+ description="CUNEIFORM SIGN PAP",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1227D,
},
[0x1227E]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN PESH0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1227E, -- 𒉾
+ category="lo",
+ description="CUNEIFORM SIGN PESH0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1227E,
},
[0x1227F]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN PI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1227F, -- 𒉿
+ category="lo",
+ description="CUNEIFORM SIGN PI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1227F,
},
[0x12280]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN PI TIMES A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12280, -- 𒊀
+ category="lo",
+ description="CUNEIFORM SIGN PI TIMES A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12280,
},
[0x12281]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN PI TIMES AB",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12281, -- 𒊁
+ category="lo",
+ description="CUNEIFORM SIGN PI TIMES AB",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12281,
},
[0x12282]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN PI TIMES BI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12282, -- 𒊂
+ category="lo",
+ description="CUNEIFORM SIGN PI TIMES BI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12282,
},
[0x12283]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN PI TIMES BU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12283, -- 𒊃
+ category="lo",
+ description="CUNEIFORM SIGN PI TIMES BU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12283,
},
[0x12284]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN PI TIMES E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12284, -- 𒊄
+ category="lo",
+ description="CUNEIFORM SIGN PI TIMES E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12284,
},
[0x12285]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN PI TIMES I",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12285, -- 𒊅
+ category="lo",
+ description="CUNEIFORM SIGN PI TIMES I",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12285,
},
[0x12286]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN PI TIMES IB",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12286, -- 𒊆
+ category="lo",
+ description="CUNEIFORM SIGN PI TIMES IB",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12286,
},
[0x12287]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN PI TIMES U",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12287, -- 𒊇
+ category="lo",
+ description="CUNEIFORM SIGN PI TIMES U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12287,
},
[0x12288]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN PI TIMES U0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12288, -- 𒊈
+ category="lo",
+ description="CUNEIFORM SIGN PI TIMES U0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12288,
},
[0x12289]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN PI CROSSING PI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12289, -- 𒊉
+ category="lo",
+ description="CUNEIFORM SIGN PI CROSSING PI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12289,
},
[0x1228A]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN PIRIG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1228A, -- 𒊊
+ category="lo",
+ description="CUNEIFORM SIGN PIRIG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1228A,
},
[0x1228B]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN PIRIG TIMES KAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1228B, -- 𒊋
+ category="lo",
+ description="CUNEIFORM SIGN PIRIG TIMES KAL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1228B,
},
[0x1228C]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN PIRIG TIMES UD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1228C, -- 𒊌
+ category="lo",
+ description="CUNEIFORM SIGN PIRIG TIMES UD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1228C,
},
[0x1228D]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN PIRIG TIMES ZA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1228D, -- 𒊍
+ category="lo",
+ description="CUNEIFORM SIGN PIRIG TIMES ZA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1228D,
},
[0x1228E]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN PIRIG OPPOSING PIRIG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1228E, -- 𒊎
+ category="lo",
+ description="CUNEIFORM SIGN PIRIG OPPOSING PIRIG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1228E,
},
[0x1228F]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN RA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1228F, -- 𒊏
+ category="lo",
+ description="CUNEIFORM SIGN RA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1228F,
},
[0x12290]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN RAB",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12290, -- 𒊐
+ category="lo",
+ description="CUNEIFORM SIGN RAB",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12290,
},
[0x12291]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN RI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12291, -- 𒊑
+ category="lo",
+ description="CUNEIFORM SIGN RI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12291,
},
[0x12292]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN RU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12292, -- 𒊒
+ category="lo",
+ description="CUNEIFORM SIGN RU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12292,
},
[0x12293]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12293, -- 𒊓
+ category="lo",
+ description="CUNEIFORM SIGN SA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12293,
},
[0x12294]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SAG NUTILLU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12294, -- 𒊔
+ category="lo",
+ description="CUNEIFORM SIGN SAG NUTILLU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12294,
},
[0x12295]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SAG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12295, -- 𒊕
+ category="lo",
+ description="CUNEIFORM SIGN SAG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12295,
},
[0x12296]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SAG TIMES A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12296, -- 𒊖
+ category="lo",
+ description="CUNEIFORM SIGN SAG TIMES A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12296,
},
[0x12297]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SAG TIMES DU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12297, -- 𒊗
+ category="lo",
+ description="CUNEIFORM SIGN SAG TIMES DU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12297,
},
[0x12298]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SAG TIMES DUB",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12298, -- 𒊘
+ category="lo",
+ description="CUNEIFORM SIGN SAG TIMES DUB",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12298,
},
[0x12299]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SAG TIMES HA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12299, -- 𒊙
+ category="lo",
+ description="CUNEIFORM SIGN SAG TIMES HA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12299,
},
[0x1229A]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SAG TIMES KAK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1229A, -- 𒊚
+ category="lo",
+ description="CUNEIFORM SIGN SAG TIMES KAK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1229A,
},
[0x1229B]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SAG TIMES KUR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1229B, -- 𒊛
+ category="lo",
+ description="CUNEIFORM SIGN SAG TIMES KUR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1229B,
},
[0x1229C]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SAG TIMES LUM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1229C, -- 𒊜
+ category="lo",
+ description="CUNEIFORM SIGN SAG TIMES LUM",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1229C,
},
[0x1229D]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SAG TIMES MI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1229D, -- 𒊝
+ category="lo",
+ description="CUNEIFORM SIGN SAG TIMES MI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1229D,
},
[0x1229E]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SAG TIMES NUN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1229E, -- 𒊞
+ category="lo",
+ description="CUNEIFORM SIGN SAG TIMES NUN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1229E,
},
[0x1229F]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SAG TIMES SAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1229F, -- 𒊟
+ category="lo",
+ description="CUNEIFORM SIGN SAG TIMES SAL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1229F,
},
[0x122A0]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SAG TIMES SHID",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122A0, -- 𒊠
+ category="lo",
+ description="CUNEIFORM SIGN SAG TIMES SHID",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122A0,
},
[0x122A1]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SAG TIMES TAB",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122A1, -- 𒊡
+ category="lo",
+ description="CUNEIFORM SIGN SAG TIMES TAB",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122A1,
},
[0x122A2]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SAG TIMES U0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122A2, -- 𒊢
+ category="lo",
+ description="CUNEIFORM SIGN SAG TIMES U0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122A2,
},
[0x122A3]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SAG TIMES UB",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122A3, -- 𒊣
+ category="lo",
+ description="CUNEIFORM SIGN SAG TIMES UB",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122A3,
},
[0x122A4]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SAG TIMES UM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122A4, -- 𒊤
+ category="lo",
+ description="CUNEIFORM SIGN SAG TIMES UM",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122A4,
},
[0x122A5]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SAG TIMES UR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122A5, -- 𒊥
+ category="lo",
+ description="CUNEIFORM SIGN SAG TIMES UR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122A5,
},
[0x122A6]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SAG TIMES USH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122A6, -- 𒊦
+ category="lo",
+ description="CUNEIFORM SIGN SAG TIMES USH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122A6,
},
[0x122A7]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SAG OVER SAG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122A7, -- 𒊧
+ category="lo",
+ description="CUNEIFORM SIGN SAG OVER SAG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122A7,
},
[0x122A8]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SAG GUNU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122A8, -- 𒊨
+ category="lo",
+ description="CUNEIFORM SIGN SAG GUNU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122A8,
},
[0x122A9]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122A9, -- 𒊩
+ category="lo",
+ description="CUNEIFORM SIGN SAL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122A9,
},
[0x122AA]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SAL LAGAB TIMES ASH0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122AA, -- 𒊪
+ category="lo",
+ description="CUNEIFORM SIGN SAL LAGAB TIMES ASH0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122AA,
},
[0x122AB]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SANGA0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122AB, -- 𒊫
+ category="lo",
+ description="CUNEIFORM SIGN SANGA0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122AB,
},
[0x122AC]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122AC, -- 𒊬
+ category="lo",
+ description="CUNEIFORM SIGN SAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122AC,
},
[0x122AD]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SHA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122AD, -- 𒊭
+ category="lo",
+ description="CUNEIFORM SIGN SHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122AD,
},
[0x122AE]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SHA0x0003",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122AE, -- 𒊮
+ category="lo",
+ description="CUNEIFORM SIGN SHA0x0003",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122AE,
},
[0x122AF]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SHA0x0003 TIMES A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122AF, -- 𒊯
+ category="lo",
+ description="CUNEIFORM SIGN SHA0x0003 TIMES A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122AF,
},
[0x122B0]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SHA0x0003 TIMES BAD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122B0, -- 𒊰
+ category="lo",
+ description="CUNEIFORM SIGN SHA0x0003 TIMES BAD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122B0,
},
[0x122B1]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SHA0x0003 TIMES GISH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122B1, -- 𒊱
+ category="lo",
+ description="CUNEIFORM SIGN SHA0x0003 TIMES GISH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122B1,
},
[0x122B2]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SHA0x0003 TIMES NE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122B2, -- 𒊲
+ category="lo",
+ description="CUNEIFORM SIGN SHA0x0003 TIMES NE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122B2,
},
[0x122B3]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SHA0x0003 TIMES SHU0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122B3, -- 𒊳
+ category="lo",
+ description="CUNEIFORM SIGN SHA0x0003 TIMES SHU0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122B3,
},
[0x122B4]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SHA0x0003 TIMES TUR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122B4, -- 𒊴
+ category="lo",
+ description="CUNEIFORM SIGN SHA0x0003 TIMES TUR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122B4,
},
[0x122B5]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SHA0x0003 TIMES U",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122B5, -- 𒊵
+ category="lo",
+ description="CUNEIFORM SIGN SHA0x0003 TIMES U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122B5,
},
[0x122B6]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SHA0x0003 TIMES U PLUS A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122B6, -- 𒊶
+ category="lo",
+ description="CUNEIFORM SIGN SHA0x0003 TIMES U PLUS A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122B6,
},
[0x122B7]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SHA0x0006",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122B7, -- 𒊷
+ category="lo",
+ description="CUNEIFORM SIGN SHA0x0006",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122B7,
},
[0x122B8]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SHAB0x0006",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122B8, -- 𒊸
+ category="lo",
+ description="CUNEIFORM SIGN SHAB0x0006",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122B8,
},
[0x122B9]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SHAR0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122B9, -- 𒊹
+ category="lo",
+ description="CUNEIFORM SIGN SHAR0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122B9,
},
[0x122BA]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SHE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122BA, -- 𒊺
+ category="lo",
+ description="CUNEIFORM SIGN SHE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122BA,
},
[0x122BB]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SHE HU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122BB, -- 𒊻
+ category="lo",
+ description="CUNEIFORM SIGN SHE HU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122BB,
},
[0x122BC]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SHE OVER SHE GAD OVER GAD GAR OVER GAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122BC, -- 𒊼
+ category="lo",
+ description="CUNEIFORM SIGN SHE OVER SHE GAD OVER GAD GAR OVER GAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122BC,
},
[0x122BD]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SHE OVER SHE TAB OVER TAB GAR OVER GAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122BD, -- 𒊽
+ category="lo",
+ description="CUNEIFORM SIGN SHE OVER SHE TAB OVER TAB GAR OVER GAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122BD,
},
[0x122BE]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SHEG0x0009",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122BE, -- 𒊾
+ category="lo",
+ description="CUNEIFORM SIGN SHEG0x0009",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122BE,
},
[0x122BF]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SHEN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122BF, -- 𒊿
+ category="lo",
+ description="CUNEIFORM SIGN SHEN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122BF,
},
[0x122C0]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SHESH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122C0, -- 𒋀
+ category="lo",
+ description="CUNEIFORM SIGN SHESH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122C0,
},
[0x122C1]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SHESH0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122C1, -- 𒋁
+ category="lo",
+ description="CUNEIFORM SIGN SHESH0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122C1,
},
[0x122C2]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SHESHLAM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122C2, -- 𒋂
+ category="lo",
+ description="CUNEIFORM SIGN SHESHLAM",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122C2,
},
[0x122C3]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SHID",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122C3, -- 𒋃
+ category="lo",
+ description="CUNEIFORM SIGN SHID",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122C3,
},
[0x122C4]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SHID TIMES A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122C4, -- 𒋄
+ category="lo",
+ description="CUNEIFORM SIGN SHID TIMES A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122C4,
},
[0x122C5]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SHID TIMES IM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122C5, -- 𒋅
+ category="lo",
+ description="CUNEIFORM SIGN SHID TIMES IM",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122C5,
},
[0x122C6]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SHIM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122C6, -- 𒋆
+ category="lo",
+ description="CUNEIFORM SIGN SHIM",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122C6,
},
[0x122C7]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SHIM TIMES A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122C7, -- 𒋇
+ category="lo",
+ description="CUNEIFORM SIGN SHIM TIMES A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122C7,
},
[0x122C8]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SHIM TIMES BAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122C8, -- 𒋈
+ category="lo",
+ description="CUNEIFORM SIGN SHIM TIMES BAL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122C8,
},
[0x122C9]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SHIM TIMES BULUG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122C9, -- 𒋉
+ category="lo",
+ description="CUNEIFORM SIGN SHIM TIMES BULUG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122C9,
},
[0x122CA]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SHIM TIMES DIN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122CA, -- 𒋊
+ category="lo",
+ description="CUNEIFORM SIGN SHIM TIMES DIN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122CA,
},
[0x122CB]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SHIM TIMES GAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122CB, -- 𒋋
+ category="lo",
+ description="CUNEIFORM SIGN SHIM TIMES GAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122CB,
},
[0x122CC]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SHIM TIMES IGI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122CC, -- 𒋌
+ category="lo",
+ description="CUNEIFORM SIGN SHIM TIMES IGI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122CC,
},
[0x122CD]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SHIM TIMES IGI GUNU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122CD, -- 𒋍
+ category="lo",
+ description="CUNEIFORM SIGN SHIM TIMES IGI GUNU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122CD,
},
[0x122CE]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SHIM TIMES KUSHU0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122CE, -- 𒋎
+ category="lo",
+ description="CUNEIFORM SIGN SHIM TIMES KUSHU0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122CE,
},
[0x122CF]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SHIM TIMES LUL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122CF, -- 𒋏
+ category="lo",
+ description="CUNEIFORM SIGN SHIM TIMES LUL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122CF,
},
[0x122D0]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SHIM TIMES MUG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122D0, -- 𒋐
+ category="lo",
+ description="CUNEIFORM SIGN SHIM TIMES MUG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122D0,
},
[0x122D1]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SHIM TIMES SAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122D1, -- 𒋑
+ category="lo",
+ description="CUNEIFORM SIGN SHIM TIMES SAL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122D1,
},
[0x122D2]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SHINIG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122D2, -- 𒋒
+ category="lo",
+ description="CUNEIFORM SIGN SHINIG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122D2,
},
[0x122D3]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SHIR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122D3, -- 𒋓
+ category="lo",
+ description="CUNEIFORM SIGN SHIR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122D3,
},
[0x122D4]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SHIR TENU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122D4, -- 𒋔
+ category="lo",
+ description="CUNEIFORM SIGN SHIR TENU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122D4,
},
[0x122D5]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SHIR OVER SHIR BUR OVER BUR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122D5, -- 𒋕
+ category="lo",
+ description="CUNEIFORM SIGN SHIR OVER SHIR BUR OVER BUR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122D5,
},
[0x122D6]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SHITA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122D6, -- 𒋖
+ category="lo",
+ description="CUNEIFORM SIGN SHITA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122D6,
},
[0x122D7]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SHU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122D7, -- 𒋗
+ category="lo",
+ description="CUNEIFORM SIGN SHU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122D7,
},
[0x122D8]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SHU OVER INVERTED SHU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122D8, -- 𒋘
+ category="lo",
+ description="CUNEIFORM SIGN SHU OVER INVERTED SHU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122D8,
},
[0x122D9]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SHU0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122D9, -- 𒋙
+ category="lo",
+ description="CUNEIFORM SIGN SHU0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122D9,
},
[0x122DA]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SHUBUR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122DA, -- 𒋚
+ category="lo",
+ description="CUNEIFORM SIGN SHUBUR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122DA,
},
[0x122DB]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122DB, -- 𒋛
+ category="lo",
+ description="CUNEIFORM SIGN SI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122DB,
},
[0x122DC]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SI GUNU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122DC, -- 𒋜
+ category="lo",
+ description="CUNEIFORM SIGN SI GUNU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122DC,
},
[0x122DD]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SIG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122DD, -- 𒋝
+ category="lo",
+ description="CUNEIFORM SIGN SIG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122DD,
},
[0x122DE]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SIG0x0004",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122DE, -- 𒋞
+ category="lo",
+ description="CUNEIFORM SIGN SIG0x0004",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122DE,
},
[0x122DF]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SIG0x0004 OVER SIG0x0004 SHU0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122DF, -- 𒋟
+ category="lo",
+ description="CUNEIFORM SIGN SIG0x0004 OVER SIG0x0004 SHU0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122DF,
},
[0x122E0]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SIK0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122E0, -- 𒋠
+ category="lo",
+ description="CUNEIFORM SIGN SIK0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122E0,
},
[0x122E1]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SILA0x0003",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122E1, -- 𒋡
+ category="lo",
+ description="CUNEIFORM SIGN SILA0x0003",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122E1,
},
[0x122E2]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122E2, -- 𒋢
+ category="lo",
+ description="CUNEIFORM SIGN SU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122E2,
},
[0x122E3]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SU OVER SU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122E3, -- 𒋣
+ category="lo",
+ description="CUNEIFORM SIGN SU OVER SU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122E3,
},
[0x122E4]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SUD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122E4, -- 𒋤
+ category="lo",
+ description="CUNEIFORM SIGN SUD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122E4,
},
[0x122E5]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SUD0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122E5, -- 𒋥
+ category="lo",
+ description="CUNEIFORM SIGN SUD0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122E5,
},
[0x122E6]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SUHUR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122E6, -- 𒋦
+ category="lo",
+ description="CUNEIFORM SIGN SUHUR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122E6,
},
[0x122E7]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SUM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122E7, -- 𒋧
+ category="lo",
+ description="CUNEIFORM SIGN SUM",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122E7,
},
[0x122E8]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SUMASH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122E8, -- 𒋨
+ category="lo",
+ description="CUNEIFORM SIGN SUMASH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122E8,
},
[0x122E9]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SUR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122E9, -- 𒋩
+ category="lo",
+ description="CUNEIFORM SIGN SUR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122E9,
},
[0x122EA]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN SUR0x0009",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122EA, -- 𒋪
+ category="lo",
+ description="CUNEIFORM SIGN SUR0x0009",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122EA,
},
[0x122EB]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN TA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122EB, -- 𒋫
+ category="lo",
+ description="CUNEIFORM SIGN TA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122EB,
},
[0x122EC]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN TA ASTERISK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122EC, -- 𒋬
+ category="lo",
+ description="CUNEIFORM SIGN TA ASTERISK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122EC,
},
[0x122ED]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN TA TIMES HI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122ED, -- 𒋭
+ category="lo",
+ description="CUNEIFORM SIGN TA TIMES HI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122ED,
},
[0x122EE]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN TA TIMES MI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122EE, -- 𒋮
+ category="lo",
+ description="CUNEIFORM SIGN TA TIMES MI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122EE,
},
[0x122EF]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN TA GUNU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122EF, -- 𒋯
+ category="lo",
+ description="CUNEIFORM SIGN TA GUNU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122EF,
},
[0x122F0]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN TAB",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122F0, -- 𒋰
+ category="lo",
+ description="CUNEIFORM SIGN TAB",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122F0,
},
[0x122F1]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN TAB OVER TAB NI OVER NI DISH OVER DISH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122F1, -- 𒋱
+ category="lo",
+ description="CUNEIFORM SIGN TAB OVER TAB NI OVER NI DISH OVER DISH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122F1,
},
[0x122F2]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN TAB SQUARED",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122F2, -- 𒋲
+ category="lo",
+ description="CUNEIFORM SIGN TAB SQUARED",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122F2,
},
[0x122F3]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN TAG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122F3, -- 𒋳
+ category="lo",
+ description="CUNEIFORM SIGN TAG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122F3,
},
[0x122F4]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN TAG TIMES BI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122F4, -- 𒋴
+ category="lo",
+ description="CUNEIFORM SIGN TAG TIMES BI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122F4,
},
[0x122F5]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN TAG TIMES GUD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122F5, -- 𒋵
+ category="lo",
+ description="CUNEIFORM SIGN TAG TIMES GUD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122F5,
},
[0x122F6]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN TAG TIMES SHE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122F6, -- 𒋶
+ category="lo",
+ description="CUNEIFORM SIGN TAG TIMES SHE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122F6,
},
[0x122F7]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN TAG TIMES SHU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122F7, -- 𒋷
+ category="lo",
+ description="CUNEIFORM SIGN TAG TIMES SHU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122F7,
},
[0x122F8]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN TAG TIMES TUG0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122F8, -- 𒋸
+ category="lo",
+ description="CUNEIFORM SIGN TAG TIMES TUG0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122F8,
},
[0x122F9]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN TAG TIMES UD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122F9, -- 𒋹
+ category="lo",
+ description="CUNEIFORM SIGN TAG TIMES UD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122F9,
},
[0x122FA]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN TAK0x0004",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122FA, -- 𒋺
+ category="lo",
+ description="CUNEIFORM SIGN TAK0x0004",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122FA,
},
[0x122FB]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN TAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122FB, -- 𒋻
+ category="lo",
+ description="CUNEIFORM SIGN TAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122FB,
},
[0x122FC]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN TE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122FC, -- 𒋼
+ category="lo",
+ description="CUNEIFORM SIGN TE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122FC,
},
[0x122FD]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN TE GUNU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122FD, -- 𒋽
+ category="lo",
+ description="CUNEIFORM SIGN TE GUNU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122FD,
},
[0x122FE]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN TI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122FE, -- 𒋾
+ category="lo",
+ description="CUNEIFORM SIGN TI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122FE,
},
[0x122FF]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN TI TENU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x122FF, -- 𒋿
+ category="lo",
+ description="CUNEIFORM SIGN TI TENU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x122FF,
},
[0x12300]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN TIL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12300, -- 𒌀
+ category="lo",
+ description="CUNEIFORM SIGN TIL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12300,
},
[0x12301]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN TIR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12301, -- 𒌁
+ category="lo",
+ description="CUNEIFORM SIGN TIR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12301,
},
[0x12302]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN TIR TIMES TAK0x0004",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12302, -- 𒌂
+ category="lo",
+ description="CUNEIFORM SIGN TIR TIMES TAK0x0004",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12302,
},
[0x12303]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN TIR OVER TIR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12303, -- 𒌃
+ category="lo",
+ description="CUNEIFORM SIGN TIR OVER TIR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12303,
},
[0x12304]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN TIR OVER TIR GAD OVER GAD GAR OVER GAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12304, -- 𒌄
+ category="lo",
+ description="CUNEIFORM SIGN TIR OVER TIR GAD OVER GAD GAR OVER GAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12304,
},
[0x12305]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN TU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12305, -- 𒌅
+ category="lo",
+ description="CUNEIFORM SIGN TU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12305,
},
[0x12306]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN TUG0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12306, -- 𒌆
+ category="lo",
+ description="CUNEIFORM SIGN TUG0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12306,
},
[0x12307]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN TUK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12307, -- 𒌇
+ category="lo",
+ description="CUNEIFORM SIGN TUK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12307,
},
[0x12308]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN TUM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12308, -- 𒌈
+ category="lo",
+ description="CUNEIFORM SIGN TUM",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12308,
},
[0x12309]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN TUR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12309, -- 𒌉
+ category="lo",
+ description="CUNEIFORM SIGN TUR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12309,
},
[0x1230A]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN TUR OVER TUR ZA OVER ZA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1230A, -- 𒌊
+ category="lo",
+ description="CUNEIFORM SIGN TUR OVER TUR ZA OVER ZA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1230A,
},
[0x1230B]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN U",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1230B, -- 𒌋
+ category="lo",
+ description="CUNEIFORM SIGN U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1230B,
},
[0x1230C]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN U GUD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1230C, -- 𒌌
+ category="lo",
+ description="CUNEIFORM SIGN U GUD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1230C,
},
[0x1230D]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN U U U",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1230D, -- 𒌍
+ category="lo",
+ description="CUNEIFORM SIGN U U U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1230D,
},
[0x1230E]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN U OVER U PA OVER PA GAR OVER GAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1230E, -- 𒌎
+ category="lo",
+ description="CUNEIFORM SIGN U OVER U PA OVER PA GAR OVER GAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1230E,
},
[0x1230F]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN U OVER U SUR OVER SUR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1230F, -- 𒌏
+ category="lo",
+ description="CUNEIFORM SIGN U OVER U SUR OVER SUR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1230F,
},
[0x12310]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN U OVER U U REVERSED OVER U REVERSED",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12310, -- 𒌐
+ category="lo",
+ description="CUNEIFORM SIGN U OVER U U REVERSED OVER U REVERSED",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12310,
},
[0x12311]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN U0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12311, -- 𒌑
+ category="lo",
+ description="CUNEIFORM SIGN U0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12311,
},
[0x12312]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN UB",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12312, -- 𒌒
+ category="lo",
+ description="CUNEIFORM SIGN UB",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12312,
},
[0x12313]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN UD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12313, -- 𒌓
+ category="lo",
+ description="CUNEIFORM SIGN UD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12313,
},
[0x12314]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN UD KUSHU0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12314, -- 𒌔
+ category="lo",
+ description="CUNEIFORM SIGN UD KUSHU0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12314,
},
[0x12315]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN UD TIMES BAD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12315, -- 𒌕
+ category="lo",
+ description="CUNEIFORM SIGN UD TIMES BAD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12315,
},
[0x12316]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN UD TIMES MI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12316, -- 𒌖
+ category="lo",
+ description="CUNEIFORM SIGN UD TIMES MI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12316,
},
[0x12317]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN UD TIMES U PLUS U PLUS U",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12317, -- 𒌗
+ category="lo",
+ description="CUNEIFORM SIGN UD TIMES U PLUS U PLUS U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12317,
},
[0x12318]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN UD TIMES U PLUS U PLUS U GUNU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12318, -- 𒌘
+ category="lo",
+ description="CUNEIFORM SIGN UD TIMES U PLUS U PLUS U GUNU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12318,
},
[0x12319]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN UD GUNU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12319, -- 𒌙
+ category="lo",
+ description="CUNEIFORM SIGN UD GUNU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12319,
},
[0x1231A]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN UD SHESHIG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1231A, -- 𒌚
+ category="lo",
+ description="CUNEIFORM SIGN UD SHESHIG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1231A,
},
[0x1231B]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN UD SHESHIG TIMES BAD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1231B, -- 𒌛
+ category="lo",
+ description="CUNEIFORM SIGN UD SHESHIG TIMES BAD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1231B,
},
[0x1231C]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN UDUG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1231C, -- 𒌜
+ category="lo",
+ description="CUNEIFORM SIGN UDUG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1231C,
},
[0x1231D]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN UM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1231D, -- 𒌝
+ category="lo",
+ description="CUNEIFORM SIGN UM",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1231D,
},
[0x1231E]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN UM TIMES LAGAB",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1231E, -- 𒌞
+ category="lo",
+ description="CUNEIFORM SIGN UM TIMES LAGAB",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1231E,
},
[0x1231F]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN UM TIMES ME PLUS DA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1231F, -- 𒌟
+ category="lo",
+ description="CUNEIFORM SIGN UM TIMES ME PLUS DA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1231F,
},
[0x12320]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN UM TIMES SHA0x0003",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12320, -- 𒌠
+ category="lo",
+ description="CUNEIFORM SIGN UM TIMES SHA0x0003",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12320,
},
[0x12321]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN UM TIMES U",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12321, -- 𒌡
+ category="lo",
+ description="CUNEIFORM SIGN UM TIMES U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12321,
},
[0x12322]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN UMBIN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12322, -- 𒌢
+ category="lo",
+ description="CUNEIFORM SIGN UMBIN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12322,
},
[0x12323]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN UMUM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12323, -- 𒌣
+ category="lo",
+ description="CUNEIFORM SIGN UMUM",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12323,
},
[0x12324]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN UMUM TIMES KASKAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12324, -- 𒌤
+ category="lo",
+ description="CUNEIFORM SIGN UMUM TIMES KASKAL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12324,
},
[0x12325]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN UMUM TIMES PA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12325, -- 𒌥
+ category="lo",
+ description="CUNEIFORM SIGN UMUM TIMES PA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12325,
},
[0x12326]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN UN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12326, -- 𒌦
+ category="lo",
+ description="CUNEIFORM SIGN UN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12326,
},
[0x12327]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN UN GUNU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12327, -- 𒌧
+ category="lo",
+ description="CUNEIFORM SIGN UN GUNU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12327,
},
[0x12328]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN UR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12328, -- 𒌨
+ category="lo",
+ description="CUNEIFORM SIGN UR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12328,
},
[0x12329]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN UR CROSSING UR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12329, -- 𒌩
+ category="lo",
+ description="CUNEIFORM SIGN UR CROSSING UR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12329,
},
[0x1232A]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN UR SHESHIG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1232A, -- 𒌪
+ category="lo",
+ description="CUNEIFORM SIGN UR SHESHIG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1232A,
},
[0x1232B]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN UR0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1232B, -- 𒌫
+ category="lo",
+ description="CUNEIFORM SIGN UR0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1232B,
},
[0x1232C]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN UR0x0002 TIMES A PLUS HA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1232C, -- 𒌬
+ category="lo",
+ description="CUNEIFORM SIGN UR0x0002 TIMES A PLUS HA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1232C,
},
[0x1232D]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN UR0x0002 TIMES A PLUS NA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1232D, -- 𒌭
+ category="lo",
+ description="CUNEIFORM SIGN UR0x0002 TIMES A PLUS NA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1232D,
},
[0x1232E]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN UR0x0002 TIMES AL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1232E, -- 𒌮
+ category="lo",
+ description="CUNEIFORM SIGN UR0x0002 TIMES AL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1232E,
},
[0x1232F]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN UR0x0002 TIMES HA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1232F, -- 𒌯
+ category="lo",
+ description="CUNEIFORM SIGN UR0x0002 TIMES HA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1232F,
},
[0x12330]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN UR0x0002 TIMES NUN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12330, -- 𒌰
+ category="lo",
+ description="CUNEIFORM SIGN UR0x0002 TIMES NUN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12330,
},
[0x12331]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN UR0x0002 TIMES U0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12331, -- 𒌱
+ category="lo",
+ description="CUNEIFORM SIGN UR0x0002 TIMES U0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12331,
},
[0x12332]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN UR0x0002 TIMES U0x0002 PLUS ASH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12332, -- 𒌲
+ category="lo",
+ description="CUNEIFORM SIGN UR0x0002 TIMES U0x0002 PLUS ASH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12332,
},
[0x12333]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN UR0x0002 TIMES U0x0002 PLUS BI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12333, -- 𒌳
+ category="lo",
+ description="CUNEIFORM SIGN UR0x0002 TIMES U0x0002 PLUS BI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12333,
},
[0x12334]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN UR0x0004",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12334, -- 𒌴
+ category="lo",
+ description="CUNEIFORM SIGN UR0x0004",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12334,
},
[0x12335]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN URI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12335, -- 𒌵
+ category="lo",
+ description="CUNEIFORM SIGN URI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12335,
},
[0x12336]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN URI0x0003",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12336, -- 𒌶
+ category="lo",
+ description="CUNEIFORM SIGN URI0x0003",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12336,
},
[0x12337]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN URU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12337, -- 𒌷
+ category="lo",
+ description="CUNEIFORM SIGN URU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12337,
},
[0x12338]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN URU TIMES A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12338, -- 𒌸
+ category="lo",
+ description="CUNEIFORM SIGN URU TIMES A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12338,
},
[0x12339]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN URU TIMES ASHGAB",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12339, -- 𒌹
+ category="lo",
+ description="CUNEIFORM SIGN URU TIMES ASHGAB",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12339,
},
[0x1233A]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN URU TIMES BAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1233A, -- 𒌺
+ category="lo",
+ description="CUNEIFORM SIGN URU TIMES BAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1233A,
},
[0x1233B]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN URU TIMES DUN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1233B, -- 𒌻
+ category="lo",
+ description="CUNEIFORM SIGN URU TIMES DUN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1233B,
},
[0x1233C]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN URU TIMES GA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1233C, -- 𒌼
+ category="lo",
+ description="CUNEIFORM SIGN URU TIMES GA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1233C,
},
[0x1233D]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN URU TIMES GAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1233D, -- 𒌽
+ category="lo",
+ description="CUNEIFORM SIGN URU TIMES GAL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1233D,
},
[0x1233E]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN URU TIMES GAN0x0002 TENU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1233E, -- 𒌾
+ category="lo",
+ description="CUNEIFORM SIGN URU TIMES GAN0x0002 TENU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1233E,
},
[0x1233F]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN URU TIMES GAR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1233F, -- 𒌿
+ category="lo",
+ description="CUNEIFORM SIGN URU TIMES GAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1233F,
},
[0x12340]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN URU TIMES GU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12340, -- 𒍀
+ category="lo",
+ description="CUNEIFORM SIGN URU TIMES GU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12340,
},
[0x12341]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN URU TIMES HA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12341, -- 𒍁
+ category="lo",
+ description="CUNEIFORM SIGN URU TIMES HA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12341,
},
[0x12342]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN URU TIMES IGI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12342, -- 𒍂
+ category="lo",
+ description="CUNEIFORM SIGN URU TIMES IGI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12342,
},
[0x12343]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN URU TIMES IM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12343, -- 𒍃
+ category="lo",
+ description="CUNEIFORM SIGN URU TIMES IM",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12343,
},
[0x12344]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN URU TIMES ISH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12344, -- 𒍄
+ category="lo",
+ description="CUNEIFORM SIGN URU TIMES ISH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12344,
},
[0x12345]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN URU TIMES KI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12345, -- 𒍅
+ category="lo",
+ description="CUNEIFORM SIGN URU TIMES KI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12345,
},
[0x12346]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN URU TIMES LUM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12346, -- 𒍆
+ category="lo",
+ description="CUNEIFORM SIGN URU TIMES LUM",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12346,
},
[0x12347]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN URU TIMES MIN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12347, -- 𒍇
+ category="lo",
+ description="CUNEIFORM SIGN URU TIMES MIN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12347,
},
[0x12348]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN URU TIMES PA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12348, -- 𒍈
+ category="lo",
+ description="CUNEIFORM SIGN URU TIMES PA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12348,
},
[0x12349]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN URU TIMES SHE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12349, -- 𒍉
+ category="lo",
+ description="CUNEIFORM SIGN URU TIMES SHE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12349,
},
[0x1234A]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN URU TIMES SIG0x0004",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1234A, -- 𒍊
+ category="lo",
+ description="CUNEIFORM SIGN URU TIMES SIG0x0004",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1234A,
},
[0x1234B]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN URU TIMES TU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1234B, -- 𒍋
+ category="lo",
+ description="CUNEIFORM SIGN URU TIMES TU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1234B,
},
[0x1234C]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN URU TIMES U PLUS GUD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1234C, -- 𒍌
+ category="lo",
+ description="CUNEIFORM SIGN URU TIMES U PLUS GUD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1234C,
},
[0x1234D]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN URU TIMES UD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1234D, -- 𒍍
+ category="lo",
+ description="CUNEIFORM SIGN URU TIMES UD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1234D,
},
[0x1234E]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN URU TIMES URUDA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1234E, -- 𒍎
+ category="lo",
+ description="CUNEIFORM SIGN URU TIMES URUDA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1234E,
},
[0x1234F]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN URUDA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1234F, -- 𒍏
+ category="lo",
+ description="CUNEIFORM SIGN URUDA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1234F,
},
[0x12350]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN URUDA TIMES U",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12350, -- 𒍐
+ category="lo",
+ description="CUNEIFORM SIGN URUDA TIMES U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12350,
},
[0x12351]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN USH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12351, -- 𒍑
+ category="lo",
+ description="CUNEIFORM SIGN USH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12351,
},
[0x12352]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN USH TIMES A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12352, -- 𒍒
+ category="lo",
+ description="CUNEIFORM SIGN USH TIMES A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12352,
},
[0x12353]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN USH TIMES KU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12353, -- 𒍓
+ category="lo",
+ description="CUNEIFORM SIGN USH TIMES KU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12353,
},
[0x12354]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN USH TIMES KUR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12354, -- 𒍔
+ category="lo",
+ description="CUNEIFORM SIGN USH TIMES KUR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12354,
},
[0x12355]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN USH TIMES TAK0x0004",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12355, -- 𒍕
+ category="lo",
+ description="CUNEIFORM SIGN USH TIMES TAK0x0004",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12355,
},
[0x12356]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN USHX",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12356, -- 𒍖
+ category="lo",
+ description="CUNEIFORM SIGN USHX",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12356,
},
[0x12357]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN USH0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12357, -- 𒍗
+ category="lo",
+ description="CUNEIFORM SIGN USH0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12357,
},
[0x12358]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN USHUMX",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12358, -- 𒍘
+ category="lo",
+ description="CUNEIFORM SIGN USHUMX",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12358,
},
[0x12359]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN UTUKI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12359, -- 𒍙
+ category="lo",
+ description="CUNEIFORM SIGN UTUKI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12359,
},
[0x1235A]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN UZ0x0003",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1235A, -- 𒍚
+ category="lo",
+ description="CUNEIFORM SIGN UZ0x0003",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1235A,
},
[0x1235B]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN UZ0x0003 TIMES KASKAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1235B, -- 𒍛
+ category="lo",
+ description="CUNEIFORM SIGN UZ0x0003 TIMES KASKAL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1235B,
},
[0x1235C]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN UZU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1235C, -- 𒍜
+ category="lo",
+ description="CUNEIFORM SIGN UZU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1235C,
},
[0x1235D]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN ZA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1235D, -- 𒍝
+ category="lo",
+ description="CUNEIFORM SIGN ZA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1235D,
},
[0x1235E]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN ZA TENU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1235E, -- 𒍞
+ category="lo",
+ description="CUNEIFORM SIGN ZA TENU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1235E,
},
[0x1235F]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN ZA SQUARED TIMES KUR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1235F, -- 𒍟
+ category="lo",
+ description="CUNEIFORM SIGN ZA SQUARED TIMES KUR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1235F,
},
[0x12360]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN ZAG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12360, -- 𒍠
+ category="lo",
+ description="CUNEIFORM SIGN ZAG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12360,
},
[0x12361]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN ZAMX",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12361, -- 𒍡
+ category="lo",
+ description="CUNEIFORM SIGN ZAMX",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12361,
},
[0x12362]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN ZE0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12362, -- 𒍢
+ category="lo",
+ description="CUNEIFORM SIGN ZE0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12362,
},
[0x12363]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN ZI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12363, -- 𒍣
+ category="lo",
+ description="CUNEIFORM SIGN ZI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12363,
},
[0x12364]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN ZI OVER ZI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12364, -- 𒍤
+ category="lo",
+ description="CUNEIFORM SIGN ZI OVER ZI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12364,
},
[0x12365]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN ZI0x0003",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12365, -- 𒍥
+ category="lo",
+ description="CUNEIFORM SIGN ZI0x0003",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12365,
},
[0x12366]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN ZIB",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12366, -- 𒍦
+ category="lo",
+ description="CUNEIFORM SIGN ZIB",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12366,
},
[0x12367]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN ZIB KABA TENU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12367, -- 𒍧
+ category="lo",
+ description="CUNEIFORM SIGN ZIB KABA TENU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12367,
},
[0x12368]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN ZIG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12368, -- 𒍨
+ category="lo",
+ description="CUNEIFORM SIGN ZIG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12368,
},
[0x12369]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN ZIZ0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12369, -- 𒍩
+ category="lo",
+ description="CUNEIFORM SIGN ZIZ0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12369,
},
[0x1236A]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN ZU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1236A, -- 𒍪
+ category="lo",
+ description="CUNEIFORM SIGN ZU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1236A,
},
[0x1236B]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN ZU0x0005",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1236B, -- 𒍫
+ category="lo",
+ description="CUNEIFORM SIGN ZU0x0005",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1236B,
},
[0x1236C]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN ZU0x0005 TIMES A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1236C, -- 𒍬
+ category="lo",
+ description="CUNEIFORM SIGN ZU0x0005 TIMES A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1236C,
},
[0x1236D]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN ZUBUR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1236D, -- 𒍭
+ category="lo",
+ description="CUNEIFORM SIGN ZUBUR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1236D,
},
[0x1236E]={
- ["category"]="lo",
- ["description"]="CUNEIFORM SIGN ZUM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1236E, -- 𒍮
+ category="lo",
+ description="CUNEIFORM SIGN ZUM",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1236E,
},
[0x12400]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN TWO ASH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12400, -- 𒐀
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN TWO ASH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12400,
},
[0x12401]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN THREE ASH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12401, -- 𒐁
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN THREE ASH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12401,
},
[0x12402]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN FOUR ASH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12402, -- 𒐂
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN FOUR ASH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12402,
},
[0x12403]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN FIVE ASH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12403, -- 𒐃
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN FIVE ASH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12403,
},
[0x12404]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN SIX ASH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12404, -- 𒐄
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN SIX ASH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12404,
},
[0x12405]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN SEVEN ASH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12405, -- 𒐅
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN SEVEN ASH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12405,
},
[0x12406]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN EIGHT ASH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12406, -- 𒐆
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN EIGHT ASH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12406,
},
[0x12407]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN NINE ASH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12407, -- 𒐇
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN NINE ASH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12407,
},
[0x12408]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN THREE DISH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12408, -- 𒐈
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN THREE DISH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12408,
},
[0x12409]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN FOUR DISH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12409, -- 𒐉
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN FOUR DISH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12409,
},
[0x1240A]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN FIVE DISH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1240A, -- 𒐊
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN FIVE DISH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1240A,
},
[0x1240B]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN SIX DISH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1240B, -- 𒐋
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN SIX DISH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1240B,
},
[0x1240C]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN SEVEN DISH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1240C, -- 𒐌
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN SEVEN DISH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1240C,
},
[0x1240D]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN EIGHT DISH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1240D, -- 𒐍
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN EIGHT DISH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1240D,
},
[0x1240E]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN NINE DISH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1240E, -- 𒐎
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN NINE DISH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1240E,
},
[0x1240F]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN FOUR U",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1240F, -- 𒐏
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN FOUR U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1240F,
},
[0x12410]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN FIVE U",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12410, -- 𒐐
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN FIVE U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12410,
},
[0x12411]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN SIX U",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12411, -- 𒐑
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN SIX U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12411,
},
[0x12412]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN SEVEN U",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12412, -- 𒐒
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN SEVEN U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12412,
},
[0x12413]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN EIGHT U",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12413, -- 𒐓
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN EIGHT U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12413,
},
[0x12414]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN NINE U",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12414, -- 𒐔
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN NINE U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12414,
},
[0x12415]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN ONE GESH0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12415, -- 𒐕
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN ONE GESH0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12415,
},
[0x12416]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN TWO GESH0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12416, -- 𒐖
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN TWO GESH0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12416,
},
[0x12417]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN THREE GESH0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12417, -- 𒐗
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN THREE GESH0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12417,
},
[0x12418]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN FOUR GESH0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12418, -- 𒐘
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN FOUR GESH0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12418,
},
[0x12419]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN FIVE GESH0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12419, -- 𒐙
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN FIVE GESH0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12419,
},
[0x1241A]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN SIX GESH0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1241A, -- 𒐚
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN SIX GESH0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1241A,
},
[0x1241B]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN SEVEN GESH0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1241B, -- 𒐛
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN SEVEN GESH0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1241B,
},
[0x1241C]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN EIGHT GESH0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1241C, -- 𒐜
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN EIGHT GESH0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1241C,
},
[0x1241D]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN NINE GESH0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1241D, -- 𒐝
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN NINE GESH0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1241D,
},
[0x1241E]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN ONE GESHU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1241E, -- 𒐞
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN ONE GESHU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1241E,
},
[0x1241F]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN TWO GESHU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1241F, -- 𒐟
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN TWO GESHU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1241F,
},
[0x12420]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN THREE GESHU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12420, -- 𒐠
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN THREE GESHU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12420,
},
[0x12421]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN FOUR GESHU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12421, -- 𒐡
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN FOUR GESHU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12421,
},
[0x12422]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN FIVE GESHU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12422, -- 𒐢
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN FIVE GESHU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12422,
},
[0x12423]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN TWO SHAR0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12423, -- 𒐣
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN TWO SHAR0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12423,
},
[0x12424]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN THREE SHAR0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12424, -- 𒐤
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN THREE SHAR0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12424,
},
[0x12425]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN THREE SHAR0x0002 VARIANT FORM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12425, -- 𒐥
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN THREE SHAR0x0002 VARIANT FORM",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12425,
},
[0x12426]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN FOUR SHAR0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12426, -- 𒐦
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN FOUR SHAR0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12426,
},
[0x12427]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN FIVE SHAR0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12427, -- 𒐧
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN FIVE SHAR0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12427,
},
[0x12428]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN SIX SHAR0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12428, -- 𒐨
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN SIX SHAR0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12428,
},
[0x12429]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN SEVEN SHAR0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12429, -- 𒐩
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN SEVEN SHAR0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12429,
},
[0x1242A]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN EIGHT SHAR0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1242A, -- 𒐪
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN EIGHT SHAR0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1242A,
},
[0x1242B]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN NINE SHAR0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1242B, -- 𒐫
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN NINE SHAR0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1242B,
},
[0x1242C]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN ONE SHARU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1242C, -- 𒐬
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN ONE SHARU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1242C,
},
[0x1242D]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN TWO SHARU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1242D, -- 𒐭
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN TWO SHARU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1242D,
},
[0x1242E]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN THREE SHARU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1242E, -- 𒐮
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN THREE SHARU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1242E,
},
[0x1242F]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN THREE SHARU VARIANT FORM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1242F, -- 𒐯
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN THREE SHARU VARIANT FORM",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1242F,
},
[0x12430]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN FOUR SHARU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12430, -- 𒐰
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN FOUR SHARU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12430,
},
[0x12431]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN FIVE SHARU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12431, -- 𒐱
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN FIVE SHARU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12431,
},
[0x12432]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN SHAR0x0002 TIMES GAL PLUS DISH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12432, -- 𒐲
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN SHAR0x0002 TIMES GAL PLUS DISH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12432,
},
[0x12433]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN SHAR0x0002 TIMES GAL PLUS MIN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12433, -- 𒐳
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN SHAR0x0002 TIMES GAL PLUS MIN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12433,
},
[0x12434]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN ONE BURU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12434, -- 𒐴
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN ONE BURU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12434,
},
[0x12435]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN TWO BURU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12435, -- 𒐵
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN TWO BURU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12435,
},
[0x12436]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN THREE BURU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12436, -- 𒐶
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN THREE BURU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12436,
},
[0x12437]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN THREE BURU VARIANT FORM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12437, -- 𒐷
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN THREE BURU VARIANT FORM",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12437,
},
[0x12438]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN FOUR BURU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12438, -- 𒐸
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN FOUR BURU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12438,
},
[0x12439]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN FIVE BURU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12439, -- 𒐹
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN FIVE BURU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12439,
},
[0x1243A]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN THREE VARIANT FORM ESH0x0010",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1243A, -- 𒐺
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN THREE VARIANT FORM ESH0x0010",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1243A,
},
[0x1243B]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN THREE VARIANT FORM ESH0x0015",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1243B, -- 𒐻
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN THREE VARIANT FORM ESH0x0015",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1243B,
},
[0x1243C]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1243C, -- 𒐼
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1243C,
},
[0x1243D]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU0x0004",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1243D, -- 𒐽
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU0x0004",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1243D,
},
[0x1243E]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1243E, -- 𒐾
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1243E,
},
[0x1243F]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU B",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1243F, -- 𒐿
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU B",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1243F,
},
[0x12440]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN SIX VARIANT FORM ASH0x0009",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12440, -- 𒑀
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN SIX VARIANT FORM ASH0x0009",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12440,
},
[0x12441]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN0x0003",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12441, -- 𒑁
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN0x0003",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12441,
},
[0x12442]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12442, -- 𒑂
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12442,
},
[0x12443]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN B",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12443, -- 𒑃
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN B",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12443,
},
[0x12444]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN EIGHT VARIANT FORM USSU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12444, -- 𒑄
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN EIGHT VARIANT FORM USSU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12444,
},
[0x12445]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN EIGHT VARIANT FORM USSU0x0003",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12445, -- 𒑅
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN EIGHT VARIANT FORM USSU0x0003",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12445,
},
[0x12446]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12446, -- 𒑆
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12446,
},
[0x12447]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU0x0003",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12447, -- 𒑇
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU0x0003",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12447,
},
[0x12448]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU0x0004",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12448, -- 𒑈
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU0x0004",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12448,
},
[0x12449]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12449, -- 𒑉
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12449,
},
[0x1244A]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN TWO ASH TENU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1244A, -- 𒑊
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN TWO ASH TENU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1244A,
},
[0x1244B]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN THREE ASH TENU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1244B, -- 𒑋
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN THREE ASH TENU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1244B,
},
[0x1244C]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN FOUR ASH TENU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1244C, -- 𒑌
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN FOUR ASH TENU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1244C,
},
[0x1244D]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN FIVE ASH TENU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1244D, -- 𒑍
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN FIVE ASH TENU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1244D,
},
[0x1244E]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN SIX ASH TENU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1244E, -- 𒑎
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN SIX ASH TENU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1244E,
},
[0x1244F]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN ONE BAN0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1244F, -- 𒑏
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN ONE BAN0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1244F,
},
[0x12450]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN TWO BAN0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12450, -- 𒑐
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN TWO BAN0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12450,
},
[0x12451]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN THREE BAN0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12451, -- 𒑑
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN THREE BAN0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12451,
},
[0x12452]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN FOUR BAN0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12452, -- 𒑒
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN FOUR BAN0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12452,
},
[0x12453]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN FOUR BAN0x0002 VARIANT FORM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12453, -- 𒑓
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN FOUR BAN0x0002 VARIANT FORM",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12453,
},
[0x12454]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN FIVE BAN0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12454, -- 𒑔
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN FIVE BAN0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12454,
},
[0x12455]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN FIVE BAN0x0002 VARIANT FORM",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12455, -- 𒑕
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN FIVE BAN0x0002 VARIANT FORM",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12455,
},
[0x12456]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN NIGIDAMIN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12456, -- 𒑖
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN NIGIDAMIN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12456,
},
[0x12457]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN NIGIDAESH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12457, -- 𒑗
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN NIGIDAESH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12457,
},
[0x12458]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN ONE ESHE0x0003",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12458, -- 𒑘
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN ONE ESHE0x0003",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12458,
},
[0x12459]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN TWO ESHE0x0003",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12459, -- 𒑙
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN TWO ESHE0x0003",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12459,
},
[0x1245A]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN ONE THIRD DISH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1245A, -- 𒑚
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN ONE THIRD DISH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1245A,
},
[0x1245B]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN TWO THIRDS DISH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1245B, -- 𒑛
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN TWO THIRDS DISH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1245B,
},
[0x1245C]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN FIVE SIXTHS DISH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1245C, -- 𒑜
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN FIVE SIXTHS DISH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1245C,
},
[0x1245D]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN ONE THIRD VARIANT FORM A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1245D, -- 𒑝
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN ONE THIRD VARIANT FORM A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1245D,
},
[0x1245E]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN TWO THIRDS VARIANT FORM A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1245E, -- 𒑞
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN TWO THIRDS VARIANT FORM A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1245E,
},
[0x1245F]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN ONE EIGHTH ASH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1245F, -- 𒑟
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN ONE EIGHTH ASH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1245F,
},
[0x12460]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN ONE QUARTER ASH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12460, -- 𒑠
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN ONE QUARTER ASH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12460,
},
[0x12461]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE SIXTH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12461, -- 𒑡
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE SIXTH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12461,
},
[0x12462]={
- ["category"]="nl",
- ["description"]="CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER",
- ["linebreak"]="al",
- ["unicodeslot"]=0x12462, -- 𒑢
+ category="nl",
+ description="CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12462,
},
[0x12470]={
- ["category"]="po",
- ["description"]="CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x12470, -- 𒑰
+ category="po",
+ description="CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER",
+ direction="l",
+ linebreak="ba",
+ unicodeslot=0x12470,
},
[0x12471]={
- ["category"]="po",
- ["description"]="CUNEIFORM PUNCTUATION SIGN VERTICAL COLON",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x12471, -- 𒑱
+ category="po",
+ description="CUNEIFORM PUNCTUATION SIGN VERTICAL COLON",
+ direction="l",
+ linebreak="ba",
+ unicodeslot=0x12471,
},
[0x12472]={
- ["category"]="po",
- ["description"]="CUNEIFORM PUNCTUATION SIGN DIAGONAL COLON",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x12472, -- 𒑲
+ category="po",
+ description="CUNEIFORM PUNCTUATION SIGN DIAGONAL COLON",
+ direction="l",
+ linebreak="ba",
+ unicodeslot=0x12472,
},
[0x12473]={
- ["category"]="po",
- ["description"]="CUNEIFORM PUNCTUATION SIGN DIAGONAL TRICOLON",
- ["linebreak"]="ba",
- ["unicodeslot"]=0x12473, -- 𒑳
+ category="po",
+ description="CUNEIFORM PUNCTUATION SIGN DIAGONAL TRICOLON",
+ direction="l",
+ linebreak="ba",
+ unicodeslot=0x12473,
},
[0x1D000]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL PSILI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D000, -- 𝀀
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL PSILI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D000,
},
[0x1D001]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL DASEIA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D001, -- 𝀁
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL DASEIA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D001,
},
[0x1D002]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL PERISPOMENI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D002, -- 𝀂
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL PERISPOMENI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D002,
},
[0x1D003]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL OXEIA EKFONITIKON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D003, -- 𝀃
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL OXEIA EKFONITIKON",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D003,
},
[0x1D004]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL OXEIA DIPLI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D004, -- 𝀄
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL OXEIA DIPLI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D004,
},
[0x1D005]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL VAREIA EKFONITIKON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D005, -- 𝀅
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL VAREIA EKFONITIKON",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D005,
},
[0x1D006]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL VAREIA DIPLI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D006, -- 𝀆
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL VAREIA DIPLI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D006,
},
[0x1D007]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL KATHISTI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D007, -- 𝀇
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL KATHISTI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D007,
},
[0x1D008]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL SYRMATIKI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D008, -- 𝀈
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL SYRMATIKI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D008,
},
[0x1D009]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL PARAKLITIKI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D009, -- 𝀉
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL PARAKLITIKI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D009,
},
[0x1D00A]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL YPOKRISIS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D00A, -- 𝀊
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL YPOKRISIS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D00A,
},
[0x1D00B]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL YPOKRISIS DIPLI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D00B, -- 𝀋
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL YPOKRISIS DIPLI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D00B,
},
[0x1D00C]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL KREMASTI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D00C, -- 𝀌
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL KREMASTI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D00C,
},
[0x1D00D]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL APESO EKFONITIKON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D00D, -- 𝀍
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL APESO EKFONITIKON",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D00D,
},
[0x1D00E]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL EXO EKFONITIKON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D00E, -- 𝀎
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL EXO EKFONITIKON",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D00E,
},
[0x1D00F]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL TELEIA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D00F, -- 𝀏
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL TELEIA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D00F,
},
[0x1D010]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL KENTIMATA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D010, -- 𝀐
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL KENTIMATA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D010,
},
[0x1D011]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL APOSTROFOS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D011, -- 𝀑
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL APOSTROFOS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D011,
},
[0x1D012]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL APOSTROFOS DIPLI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D012, -- 𝀒
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL APOSTROFOS DIPLI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D012,
},
[0x1D013]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL SYNEVMA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D013, -- 𝀓
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL SYNEVMA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D013,
},
[0x1D014]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL THITA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D014, -- 𝀔
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL THITA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D014,
},
[0x1D015]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL OLIGON ARCHAION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D015, -- 𝀕
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL OLIGON ARCHAION",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D015,
},
[0x1D016]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL GORGON ARCHAION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D016, -- 𝀖
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL GORGON ARCHAION",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D016,
},
[0x1D017]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL PSILON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D017, -- 𝀗
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL PSILON",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D017,
},
[0x1D018]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL CHAMILON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D018, -- 𝀘
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL CHAMILON",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D018,
},
[0x1D019]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL VATHY",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D019, -- 𝀙
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL VATHY",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D019,
},
[0x1D01A]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL ISON ARCHAION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D01A, -- 𝀚
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL ISON ARCHAION",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D01A,
},
[0x1D01B]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL KENTIMA ARCHAION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D01B, -- 𝀛
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL KENTIMA ARCHAION",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D01B,
},
[0x1D01C]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL KENTIMATA ARCHAION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D01C, -- 𝀜
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL KENTIMATA ARCHAION",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D01C,
},
[0x1D01D]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL SAXIMATA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D01D, -- 𝀝
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL SAXIMATA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D01D,
},
[0x1D01E]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL PARICHON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D01E, -- 𝀞
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL PARICHON",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D01E,
},
[0x1D01F]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL STAVROS APODEXIA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D01F, -- 𝀟
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL STAVROS APODEXIA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D01F,
},
[0x1D020]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL OXEIAI ARCHAION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D020, -- 𝀠
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL OXEIAI ARCHAION",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D020,
},
[0x1D021]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL VAREIAI ARCHAION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D021, -- 𝀡
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL VAREIAI ARCHAION",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D021,
},
[0x1D022]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL APODERMA ARCHAION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D022, -- 𝀢
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL APODERMA ARCHAION",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D022,
},
[0x1D023]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL APOTHEMA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D023, -- 𝀣
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL APOTHEMA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D023,
},
[0x1D024]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL KLASMA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D024, -- 𝀤
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL KLASMA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D024,
},
[0x1D025]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL REVMA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D025, -- 𝀥
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL REVMA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D025,
},
[0x1D026]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL PIASMA ARCHAION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D026, -- 𝀦
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL PIASMA ARCHAION",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D026,
},
[0x1D027]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL TINAGMA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D027, -- 𝀧
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL TINAGMA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D027,
},
[0x1D028]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL ANATRICHISMA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D028, -- 𝀨
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL ANATRICHISMA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D028,
},
[0x1D029]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL SEISMA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D029, -- 𝀩
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL SEISMA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D029,
},
[0x1D02A]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL SYNAGMA ARCHAION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D02A, -- 𝀪
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL SYNAGMA ARCHAION",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D02A,
},
[0x1D02B]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL SYNAGMA META STAVROU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D02B, -- 𝀫
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL SYNAGMA META STAVROU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D02B,
},
[0x1D02C]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL OYRANISMA ARCHAION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D02C, -- 𝀬
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL OYRANISMA ARCHAION",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D02C,
},
[0x1D02D]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL THEMA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D02D, -- 𝀭
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL THEMA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D02D,
},
[0x1D02E]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL LEMOI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D02E, -- 𝀮
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL LEMOI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D02E,
},
[0x1D02F]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL DYO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D02F, -- 𝀯
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL DYO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D02F,
},
[0x1D030]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL TRIA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D030, -- 𝀰
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL TRIA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D030,
},
[0x1D031]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL TESSERA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D031, -- 𝀱
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL TESSERA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D031,
},
[0x1D032]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL KRATIMATA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D032, -- 𝀲
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL KRATIMATA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D032,
},
[0x1D033]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL APESO EXO NEO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D033, -- 𝀳
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL APESO EXO NEO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D033,
},
[0x1D034]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL FTHORA ARCHAION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D034, -- 𝀴
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL FTHORA ARCHAION",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D034,
},
[0x1D035]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL IMIFTHORA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D035, -- 𝀵
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL IMIFTHORA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D035,
},
[0x1D036]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL TROMIKON ARCHAION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D036, -- 𝀶
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL TROMIKON ARCHAION",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D036,
},
[0x1D037]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL KATAVA TROMIKON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D037, -- 𝀷
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL KATAVA TROMIKON",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D037,
},
[0x1D038]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL PELASTON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D038, -- 𝀸
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL PELASTON",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D038,
},
[0x1D039]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL PSIFISTON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D039, -- 𝀹
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL PSIFISTON",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D039,
},
[0x1D03A]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL KONTEVMA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D03A, -- 𝀺
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL KONTEVMA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D03A,
},
[0x1D03B]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL CHOREVMA ARCHAION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D03B, -- 𝀻
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL CHOREVMA ARCHAION",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D03B,
},
[0x1D03C]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL RAPISMA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D03C, -- 𝀼
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL RAPISMA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D03C,
},
[0x1D03D]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL PARAKALESMA ARCHAION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D03D, -- 𝀽
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL PARAKALESMA ARCHAION",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D03D,
},
[0x1D03E]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL PARAKLITIKI ARCHAION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D03E, -- 𝀾
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL PARAKLITIKI ARCHAION",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D03E,
},
[0x1D03F]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL ICHADIN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D03F, -- 𝀿
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL ICHADIN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D03F,
},
[0x1D040]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL NANA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D040, -- 𝁀
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL NANA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D040,
},
[0x1D041]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL PETASMA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D041, -- 𝁁
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL PETASMA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D041,
},
[0x1D042]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL KONTEVMA ALLO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D042, -- 𝁂
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL KONTEVMA ALLO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D042,
},
[0x1D043]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL TROMIKON ALLO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D043, -- 𝁃
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL TROMIKON ALLO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D043,
},
[0x1D044]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL STRAGGISMATA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D044, -- 𝁄
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL STRAGGISMATA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D044,
},
[0x1D045]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL GRONTHISMATA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D045, -- 𝁅
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL GRONTHISMATA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D045,
},
[0x1D046]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL ISON NEO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D046, -- 𝁆
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL ISON NEO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D046,
},
[0x1D047]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL OLIGON NEO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D047, -- 𝁇
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL OLIGON NEO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D047,
},
[0x1D048]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL OXEIA NEO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D048, -- 𝁈
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL OXEIA NEO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D048,
},
[0x1D049]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL PETASTI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D049, -- 𝁉
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL PETASTI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D049,
},
[0x1D04A]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL KOUFISMA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D04A, -- 𝁊
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL KOUFISMA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D04A,
},
[0x1D04B]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL PETASTOKOUFISMA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D04B, -- 𝁋
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL PETASTOKOUFISMA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D04B,
},
[0x1D04C]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL KRATIMOKOUFISMA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D04C, -- 𝁌
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL KRATIMOKOUFISMA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D04C,
},
[0x1D04D]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL PELASTON NEO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D04D, -- 𝁍
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL PELASTON NEO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D04D,
},
[0x1D04E]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL KENTIMATA NEO ANO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D04E, -- 𝁎
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL KENTIMATA NEO ANO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D04E,
},
[0x1D04F]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL KENTIMA NEO ANO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D04F, -- 𝁏
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL KENTIMA NEO ANO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D04F,
},
[0x1D050]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL YPSILI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D050, -- 𝁐
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL YPSILI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D050,
},
[0x1D051]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL APOSTROFOS NEO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D051, -- 𝁑
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL APOSTROFOS NEO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D051,
},
[0x1D052]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL APOSTROFOI SYNDESMOS NEO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D052, -- 𝁒
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL APOSTROFOI SYNDESMOS NEO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D052,
},
[0x1D053]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL YPORROI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D053, -- 𝁓
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL YPORROI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D053,
},
[0x1D054]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL KRATIMOYPORROON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D054, -- 𝁔
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL KRATIMOYPORROON",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D054,
},
[0x1D055]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL ELAFRON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D055, -- 𝁕
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL ELAFRON",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D055,
},
[0x1D056]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL CHAMILI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D056, -- 𝁖
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL CHAMILI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D056,
},
[0x1D057]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL MIKRON ISON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D057, -- 𝁗
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL MIKRON ISON",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D057,
},
[0x1D058]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL VAREIA NEO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D058, -- 𝁘
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL VAREIA NEO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D058,
},
[0x1D059]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL PIASMA NEO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D059, -- 𝁙
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL PIASMA NEO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D059,
},
[0x1D05A]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL PSIFISTON NEO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D05A, -- 𝁚
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL PSIFISTON NEO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D05A,
},
[0x1D05B]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL OMALON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D05B, -- 𝁛
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL OMALON",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D05B,
},
[0x1D05C]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL ANTIKENOMA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D05C, -- 𝁜
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL ANTIKENOMA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D05C,
},
[0x1D05D]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL LYGISMA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D05D, -- 𝁝
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL LYGISMA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D05D,
},
[0x1D05E]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL PARAKLITIKI NEO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D05E, -- 𝁞
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL PARAKLITIKI NEO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D05E,
},
[0x1D05F]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL PARAKALESMA NEO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D05F, -- 𝁟
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL PARAKALESMA NEO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D05F,
},
[0x1D060]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL ETERON PARAKALESMA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D060, -- 𝁠
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL ETERON PARAKALESMA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D060,
},
[0x1D061]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL KYLISMA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D061, -- 𝁡
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL KYLISMA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D061,
},
[0x1D062]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL ANTIKENOKYLISMA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D062, -- 𝁢
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL ANTIKENOKYLISMA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D062,
},
[0x1D063]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL TROMIKON NEO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D063, -- 𝁣
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL TROMIKON NEO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D063,
},
[0x1D064]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL EKSTREPTON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D064, -- 𝁤
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL EKSTREPTON",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D064,
},
[0x1D065]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL SYNAGMA NEO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D065, -- 𝁥
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL SYNAGMA NEO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D065,
},
[0x1D066]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL SYRMA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D066, -- 𝁦
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL SYRMA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D066,
},
[0x1D067]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL CHOREVMA NEO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D067, -- 𝁧
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL CHOREVMA NEO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D067,
},
[0x1D068]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL EPEGERMA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D068, -- 𝁨
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL EPEGERMA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D068,
},
[0x1D069]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL SEISMA NEO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D069, -- 𝁩
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL SEISMA NEO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D069,
},
[0x1D06A]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL XIRON KLASMA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D06A, -- 𝁪
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL XIRON KLASMA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D06A,
},
[0x1D06B]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL TROMIKOPSIFISTON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D06B, -- 𝁫
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL TROMIKOPSIFISTON",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D06B,
},
[0x1D06C]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL PSIFISTOLYGISMA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D06C, -- 𝁬
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL PSIFISTOLYGISMA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D06C,
},
[0x1D06D]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL TROMIKOLYGISMA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D06D, -- 𝁭
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL TROMIKOLYGISMA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D06D,
},
[0x1D06E]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL TROMIKOPARAKALESMA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D06E, -- 𝁮
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL TROMIKOPARAKALESMA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D06E,
},
[0x1D06F]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL PSIFISTOPARAKALESMA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D06F, -- 𝁯
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL PSIFISTOPARAKALESMA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D06F,
},
[0x1D070]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL TROMIKOSYNAGMA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D070, -- 𝁰
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL TROMIKOSYNAGMA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D070,
},
[0x1D071]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL PSIFISTOSYNAGMA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D071, -- 𝁱
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL PSIFISTOSYNAGMA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D071,
},
[0x1D072]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL GORGOSYNTHETON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D072, -- 𝁲
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL GORGOSYNTHETON",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D072,
},
[0x1D073]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL ARGOSYNTHETON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D073, -- 𝁳
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL ARGOSYNTHETON",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D073,
},
[0x1D074]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL ETERON ARGOSYNTHETON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D074, -- 𝁴
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL ETERON ARGOSYNTHETON",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D074,
},
[0x1D075]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL OYRANISMA NEO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D075, -- 𝁵
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL OYRANISMA NEO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D075,
},
[0x1D076]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL THEMATISMOS ESO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D076, -- 𝁶
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL THEMATISMOS ESO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D076,
},
[0x1D077]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL THEMATISMOS EXO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D077, -- 𝁷
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL THEMATISMOS EXO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D077,
},
[0x1D078]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL THEMA APLOUN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D078, -- 𝁸
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL THEMA APLOUN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D078,
},
[0x1D079]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL THES KAI APOTHES",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D079, -- 𝁹
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL THES KAI APOTHES",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D079,
},
[0x1D07A]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL KATAVASMA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D07A, -- 𝁺
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL KATAVASMA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D07A,
},
[0x1D07B]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL ENDOFONON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D07B, -- 𝁻
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL ENDOFONON",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D07B,
},
[0x1D07C]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL YFEN KATO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D07C, -- 𝁼
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL YFEN KATO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D07C,
},
[0x1D07D]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL YFEN ANO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D07D, -- 𝁽
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL YFEN ANO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D07D,
},
[0x1D07E]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL STAVROS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D07E, -- 𝁾
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL STAVROS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D07E,
},
[0x1D07F]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL KLASMA ANO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D07F, -- 𝁿
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL KLASMA ANO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D07F,
},
[0x1D080]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL DIPLI ARCHAION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D080, -- 𝂀
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL DIPLI ARCHAION",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D080,
},
[0x1D081]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL KRATIMA ARCHAION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D081, -- 𝂁
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL KRATIMA ARCHAION",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D081,
},
[0x1D082]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL KRATIMA ALLO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D082, -- 𝂂
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL KRATIMA ALLO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D082,
},
[0x1D083]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL KRATIMA NEO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D083, -- 𝂃
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL KRATIMA NEO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D083,
},
[0x1D084]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL APODERMA NEO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D084, -- 𝂄
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL APODERMA NEO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D084,
},
[0x1D085]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL APLI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D085, -- 𝂅
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL APLI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D085,
},
[0x1D086]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL DIPLI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D086, -- 𝂆
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL DIPLI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D086,
},
[0x1D087]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL TRIPLI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D087, -- 𝂇
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL TRIPLI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D087,
},
[0x1D088]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL TETRAPLI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D088, -- 𝂈
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL TETRAPLI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D088,
},
[0x1D089]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL KORONIS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D089, -- 𝂉
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL KORONIS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D089,
},
[0x1D08A]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL LEIMMA ENOS CHRONOU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D08A, -- 𝂊
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL LEIMMA ENOS CHRONOU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D08A,
},
[0x1D08B]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL LEIMMA DYO CHRONON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D08B, -- 𝂋
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL LEIMMA DYO CHRONON",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D08B,
},
[0x1D08C]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL LEIMMA TRION CHRONON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D08C, -- 𝂌
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL LEIMMA TRION CHRONON",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D08C,
},
[0x1D08D]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL LEIMMA TESSARON CHRONON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D08D, -- 𝂍
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL LEIMMA TESSARON CHRONON",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D08D,
},
[0x1D08E]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL LEIMMA IMISEOS CHRONOU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D08E, -- 𝂎
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL LEIMMA IMISEOS CHRONOU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D08E,
},
[0x1D08F]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL GORGON NEO ANO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D08F, -- 𝂏
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL GORGON NEO ANO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D08F,
},
[0x1D090]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL GORGON PARESTIGMENON ARISTERA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D090, -- 𝂐
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL GORGON PARESTIGMENON ARISTERA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D090,
},
[0x1D091]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL GORGON PARESTIGMENON DEXIA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D091, -- 𝂑
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL GORGON PARESTIGMENON DEXIA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D091,
},
[0x1D092]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL DIGORGON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D092, -- 𝂒
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL DIGORGON",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D092,
},
[0x1D093]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON ARISTERA KATO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D093, -- 𝂓
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON ARISTERA KATO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D093,
},
[0x1D094]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON ARISTERA ANO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D094, -- 𝂔
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON ARISTERA ANO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D094,
},
[0x1D095]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON DEXIA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D095, -- 𝂕
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON DEXIA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D095,
},
[0x1D096]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL TRIGORGON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D096, -- 𝂖
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL TRIGORGON",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D096,
},
[0x1D097]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL ARGON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D097, -- 𝂗
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL ARGON",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D097,
},
[0x1D098]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL IMIDIARGON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D098, -- 𝂘
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL IMIDIARGON",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D098,
},
[0x1D099]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL DIARGON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D099, -- 𝂙
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL DIARGON",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D099,
},
[0x1D09A]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL AGOGI POLI ARGI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D09A, -- 𝂚
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL AGOGI POLI ARGI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D09A,
},
[0x1D09B]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL AGOGI ARGOTERI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D09B, -- 𝂛
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL AGOGI ARGOTERI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D09B,
},
[0x1D09C]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL AGOGI ARGI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D09C, -- 𝂜
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL AGOGI ARGI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D09C,
},
[0x1D09D]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL AGOGI METRIA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D09D, -- 𝂝
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL AGOGI METRIA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D09D,
},
[0x1D09E]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL AGOGI MESI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D09E, -- 𝂞
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL AGOGI MESI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D09E,
},
[0x1D09F]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL AGOGI GORGI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D09F, -- 𝂟
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL AGOGI GORGI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D09F,
},
[0x1D0A0]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL AGOGI GORGOTERI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0A0, -- 𝂠
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL AGOGI GORGOTERI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0A0,
},
[0x1D0A1]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL AGOGI POLI GORGI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0A1, -- 𝂡
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL AGOGI POLI GORGI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0A1,
},
[0x1D0A2]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL MARTYRIA PROTOS ICHOS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0A2, -- 𝂢
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL MARTYRIA PROTOS ICHOS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0A2,
},
[0x1D0A3]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL MARTYRIA ALLI PROTOS ICHOS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0A3, -- 𝂣
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL MARTYRIA ALLI PROTOS ICHOS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0A3,
},
[0x1D0A4]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL MARTYRIA DEYTEROS ICHOS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0A4, -- 𝂤
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL MARTYRIA DEYTEROS ICHOS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0A4,
},
[0x1D0A5]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL MARTYRIA ALLI DEYTEROS ICHOS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0A5, -- 𝂥
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL MARTYRIA ALLI DEYTEROS ICHOS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0A5,
},
[0x1D0A6]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL MARTYRIA TRITOS ICHOS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0A6, -- 𝂦
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL MARTYRIA TRITOS ICHOS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0A6,
},
[0x1D0A7]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL MARTYRIA TRIFONIAS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0A7, -- 𝂧
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL MARTYRIA TRIFONIAS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0A7,
},
[0x1D0A8]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL MARTYRIA TETARTOS ICHOS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0A8, -- 𝂨
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL MARTYRIA TETARTOS ICHOS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0A8,
},
[0x1D0A9]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL MARTYRIA TETARTOS LEGETOS ICHOS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0A9, -- 𝂩
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL MARTYRIA TETARTOS LEGETOS ICHOS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0A9,
},
[0x1D0AA]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL MARTYRIA LEGETOS ICHOS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0AA, -- 𝂪
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL MARTYRIA LEGETOS ICHOS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0AA,
},
[0x1D0AB]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL MARTYRIA PLAGIOS ICHOS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0AB, -- 𝂫
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL MARTYRIA PLAGIOS ICHOS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0AB,
},
[0x1D0AC]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL ISAKIA TELOUS ICHIMATOS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0AC, -- 𝂬
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL ISAKIA TELOUS ICHIMATOS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0AC,
},
[0x1D0AD]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL APOSTROFOI TELOUS ICHIMATOS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0AD, -- 𝂭
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL APOSTROFOI TELOUS ICHIMATOS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0AD,
},
[0x1D0AE]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL FANEROSIS TETRAFONIAS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0AE, -- 𝂮
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL FANEROSIS TETRAFONIAS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0AE,
},
[0x1D0AF]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL FANEROSIS MONOFONIAS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0AF, -- 𝂯
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL FANEROSIS MONOFONIAS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0AF,
},
[0x1D0B0]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL FANEROSIS DIFONIAS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0B0, -- 𝂰
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL FANEROSIS DIFONIAS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0B0,
},
[0x1D0B1]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL MARTYRIA VARYS ICHOS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0B1, -- 𝂱
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL MARTYRIA VARYS ICHOS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0B1,
},
[0x1D0B2]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL MARTYRIA PROTOVARYS ICHOS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0B2, -- 𝂲
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL MARTYRIA PROTOVARYS ICHOS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0B2,
},
[0x1D0B3]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL MARTYRIA PLAGIOS TETARTOS ICHOS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0B3, -- 𝂳
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL MARTYRIA PLAGIOS TETARTOS ICHOS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0B3,
},
[0x1D0B4]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL GORTHMIKON N APLOUN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0B4, -- 𝂴
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL GORTHMIKON N APLOUN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0B4,
},
[0x1D0B5]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL GORTHMIKON N DIPLOUN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0B5, -- 𝂵
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL GORTHMIKON N DIPLOUN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0B5,
},
[0x1D0B6]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL ENARXIS KAI FTHORA VOU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0B6, -- 𝂶
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL ENARXIS KAI FTHORA VOU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0B6,
},
[0x1D0B7]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL IMIFONON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0B7, -- 𝂷
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL IMIFONON",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0B7,
},
[0x1D0B8]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL IMIFTHORON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0B8, -- 𝂸
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL IMIFTHORON",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0B8,
},
[0x1D0B9]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL FTHORA ARCHAION DEYTEROU ICHOU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0B9, -- 𝂹
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL FTHORA ARCHAION DEYTEROU ICHOU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0B9,
},
[0x1D0BA]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI PA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0BA, -- 𝂺
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI PA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0BA,
},
[0x1D0BB]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NANA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0BB, -- 𝂻
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NANA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0BB,
},
[0x1D0BC]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL FTHORA NAOS ICHOS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0BC, -- 𝂼
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL FTHORA NAOS ICHOS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0BC,
},
[0x1D0BD]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI DI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0BD, -- 𝂽
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI DI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0BD,
},
[0x1D0BE]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL FTHORA SKLIRON DIATONON DI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0BE, -- 𝂾
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL FTHORA SKLIRON DIATONON DI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0BE,
},
[0x1D0BF]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI KE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0BF, -- 𝂿
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI KE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0BF,
},
[0x1D0C0]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI ZO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0C0, -- 𝃀
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI ZO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0C0,
},
[0x1D0C1]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NI KATO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0C1, -- 𝃁
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NI KATO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0C1,
},
[0x1D0C2]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NI ANO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0C2, -- 𝃂
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NI ANO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0C2,
},
[0x1D0C3]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL FTHORA MALAKON CHROMA DIFONIAS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0C3, -- 𝃃
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL FTHORA MALAKON CHROMA DIFONIAS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0C3,
},
[0x1D0C4]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL FTHORA MALAKON CHROMA MONOFONIAS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0C4, -- 𝃄
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL FTHORA MALAKON CHROMA MONOFONIAS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0C4,
},
[0x1D0C5]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL FHTORA SKLIRON CHROMA VASIS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0C5, -- 𝃅
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL FHTORA SKLIRON CHROMA VASIS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0C5,
},
[0x1D0C6]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL FTHORA SKLIRON CHROMA SYNAFI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0C6, -- 𝃆
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL FTHORA SKLIRON CHROMA SYNAFI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0C6,
},
[0x1D0C7]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL FTHORA NENANO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0C7, -- 𝃇
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL FTHORA NENANO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0C7,
},
[0x1D0C8]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL CHROA ZYGOS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0C8, -- 𝃈
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL CHROA ZYGOS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0C8,
},
[0x1D0C9]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL CHROA KLITON",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0C9, -- 𝃉
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL CHROA KLITON",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0C9,
},
[0x1D0CA]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL CHROA SPATHI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0CA, -- 𝃊
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL CHROA SPATHI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0CA,
},
[0x1D0CB]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL FTHORA I YFESIS TETARTIMORION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0CB, -- 𝃋
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL FTHORA I YFESIS TETARTIMORION",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0CB,
},
[0x1D0CC]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL FTHORA ENARMONIOS ANTIFONIA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0CC, -- 𝃌
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL FTHORA ENARMONIOS ANTIFONIA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0CC,
},
[0x1D0CD]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL YFESIS TRITIMORION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0CD, -- 𝃍
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL YFESIS TRITIMORION",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0CD,
},
[0x1D0CE]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL DIESIS TRITIMORION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0CE, -- 𝃎
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL DIESIS TRITIMORION",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0CE,
},
[0x1D0CF]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL DIESIS TETARTIMORION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0CF, -- 𝃏
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL DIESIS TETARTIMORION",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0CF,
},
[0x1D0D0]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL DIESIS APLI DYO DODEKATA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0D0, -- 𝃐
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL DIESIS APLI DYO DODEKATA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0D0,
},
[0x1D0D1]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL DIESIS MONOGRAMMOS TESSERA DODEKATA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0D1, -- 𝃑
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL DIESIS MONOGRAMMOS TESSERA DODEKATA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0D1,
},
[0x1D0D2]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL DIESIS DIGRAMMOS EX DODEKATA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0D2, -- 𝃒
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL DIESIS DIGRAMMOS EX DODEKATA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0D2,
},
[0x1D0D3]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL DIESIS TRIGRAMMOS OKTO DODEKATA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0D3, -- 𝃓
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL DIESIS TRIGRAMMOS OKTO DODEKATA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0D3,
},
[0x1D0D4]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL YFESIS APLI DYO DODEKATA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0D4, -- 𝃔
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL YFESIS APLI DYO DODEKATA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0D4,
},
[0x1D0D5]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL YFESIS MONOGRAMMOS TESSERA DODEKATA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0D5, -- 𝃕
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL YFESIS MONOGRAMMOS TESSERA DODEKATA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0D5,
},
[0x1D0D6]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL YFESIS DIGRAMMOS EX DODEKATA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0D6, -- 𝃖
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL YFESIS DIGRAMMOS EX DODEKATA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0D6,
},
[0x1D0D7]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL YFESIS TRIGRAMMOS OKTO DODEKATA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0D7, -- 𝃗
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL YFESIS TRIGRAMMOS OKTO DODEKATA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0D7,
},
[0x1D0D8]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL GENIKI DIESIS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0D8, -- 𝃘
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL GENIKI DIESIS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0D8,
},
[0x1D0D9]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL GENIKI YFESIS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0D9, -- 𝃙
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL GENIKI YFESIS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0D9,
},
[0x1D0DA]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL DIASTOLI APLI MIKRI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0DA, -- 𝃚
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL DIASTOLI APLI MIKRI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0DA,
},
[0x1D0DB]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL DIASTOLI APLI MEGALI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0DB, -- 𝃛
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL DIASTOLI APLI MEGALI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0DB,
},
[0x1D0DC]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL DIASTOLI DIPLI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0DC, -- 𝃜
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL DIASTOLI DIPLI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0DC,
},
[0x1D0DD]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL DIASTOLI THESEOS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0DD, -- 𝃝
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL DIASTOLI THESEOS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0DD,
},
[0x1D0DE]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0DE, -- 𝃞
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0DE,
},
[0x1D0DF]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS DISIMOU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0DF, -- 𝃟
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS DISIMOU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0DF,
},
[0x1D0E0]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS TRISIMOU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0E0, -- 𝃠
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS TRISIMOU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0E0,
},
[0x1D0E1]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS TETRASIMOU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0E1, -- 𝃡
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS TETRASIMOU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0E1,
},
[0x1D0E2]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0E2, -- 𝃢
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0E2,
},
[0x1D0E3]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS DISIMOU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0E3, -- 𝃣
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS DISIMOU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0E3,
},
[0x1D0E4]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS TRISIMOU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0E4, -- 𝃤
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS TRISIMOU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0E4,
},
[0x1D0E5]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS TETRASIMOU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0E5, -- 𝃥
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS TETRASIMOU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0E5,
},
[0x1D0E6]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL DIGRAMMA GG",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0E6, -- 𝃦
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL DIGRAMMA GG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0E6,
},
[0x1D0E7]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL DIFTOGGOS OU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0E7, -- 𝃧
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL DIFTOGGOS OU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0E7,
},
[0x1D0E8]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL STIGMA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0E8, -- 𝃨
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL STIGMA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0E8,
},
[0x1D0E9]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL ARKTIKO PA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0E9, -- 𝃩
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL ARKTIKO PA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0E9,
},
[0x1D0EA]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL ARKTIKO VOU",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0EA, -- 𝃪
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL ARKTIKO VOU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0EA,
},
[0x1D0EB]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL ARKTIKO GA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0EB, -- 𝃫
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL ARKTIKO GA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0EB,
},
[0x1D0EC]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL ARKTIKO DI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0EC, -- 𝃬
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL ARKTIKO DI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0EC,
},
[0x1D0ED]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL ARKTIKO KE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0ED, -- 𝃭
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL ARKTIKO KE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0ED,
},
[0x1D0EE]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL ARKTIKO ZO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0EE, -- 𝃮
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL ARKTIKO ZO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0EE,
},
[0x1D0EF]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL ARKTIKO NI",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0EF, -- 𝃯
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL ARKTIKO NI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0EF,
},
[0x1D0F0]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL KENTIMATA NEO MESO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0F0, -- 𝃰
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL KENTIMATA NEO MESO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0F0,
},
[0x1D0F1]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL KENTIMA NEO MESO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0F1, -- 𝃱
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL KENTIMA NEO MESO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0F1,
},
[0x1D0F2]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL KENTIMATA NEO KATO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0F2, -- 𝃲
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL KENTIMATA NEO KATO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0F2,
},
[0x1D0F3]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL KENTIMA NEO KATO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0F3, -- 𝃳
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL KENTIMA NEO KATO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0F3,
},
[0x1D0F4]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL KLASMA KATO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0F4, -- 𝃴
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL KLASMA KATO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0F4,
},
[0x1D0F5]={
- ["category"]="so",
- ["description"]="BYZANTINE MUSICAL SYMBOL GORGON NEO KATO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D0F5, -- 𝃵
+ category="so",
+ description="BYZANTINE MUSICAL SYMBOL GORGON NEO KATO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D0F5,
},
[0x1D100]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL SINGLE BARLINE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D100, -- 𝄀
+ category="so",
+ description="MUSICAL SYMBOL SINGLE BARLINE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D100,
},
[0x1D101]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL DOUBLE BARLINE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D101, -- 𝄁
+ category="so",
+ description="MUSICAL SYMBOL DOUBLE BARLINE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D101,
},
[0x1D102]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL FINAL BARLINE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D102, -- 𝄂
+ category="so",
+ description="MUSICAL SYMBOL FINAL BARLINE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D102,
},
[0x1D103]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL REVERSE FINAL BARLINE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D103, -- 𝄃
+ category="so",
+ description="MUSICAL SYMBOL REVERSE FINAL BARLINE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D103,
},
[0x1D104]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL DASHED BARLINE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D104, -- 𝄄
+ category="so",
+ description="MUSICAL SYMBOL DASHED BARLINE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D104,
},
[0x1D105]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL SHORT BARLINE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D105, -- 𝄅
+ category="so",
+ description="MUSICAL SYMBOL SHORT BARLINE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D105,
},
[0x1D106]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL LEFT REPEAT SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D106, -- 𝄆
+ category="so",
+ description="MUSICAL SYMBOL LEFT REPEAT SIGN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D106,
},
[0x1D107]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL RIGHT REPEAT SIGN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D107, -- 𝄇
+ category="so",
+ description="MUSICAL SYMBOL RIGHT REPEAT SIGN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D107,
},
[0x1D108]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL REPEAT DOTS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D108, -- 𝄈
+ category="so",
+ description="MUSICAL SYMBOL REPEAT DOTS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D108,
},
[0x1D109]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL DAL SEGNO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D109, -- 𝄉
+ category="so",
+ description="MUSICAL SYMBOL DAL SEGNO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D109,
},
[0x1D10A]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL DA CAPO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D10A, -- 𝄊
+ category="so",
+ description="MUSICAL SYMBOL DA CAPO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D10A,
},
[0x1D10B]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL SEGNO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D10B, -- 𝄋
+ category="so",
+ description="MUSICAL SYMBOL SEGNO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D10B,
},
[0x1D10C]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL CODA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D10C, -- 𝄌
+ category="so",
+ description="MUSICAL SYMBOL CODA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D10C,
},
[0x1D10D]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL REPEATED FIGURE-0x0001",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D10D, -- 𝄍
+ category="so",
+ description="MUSICAL SYMBOL REPEATED FIGURE-0x0001",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D10D,
},
[0x1D10E]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL REPEATED FIGURE-0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D10E, -- 𝄎
+ category="so",
+ description="MUSICAL SYMBOL REPEATED FIGURE-0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D10E,
},
[0x1D10F]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL REPEATED FIGURE-0x0003",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D10F, -- 𝄏
+ category="so",
+ description="MUSICAL SYMBOL REPEATED FIGURE-0x0003",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D10F,
},
[0x1D110]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL FERMATA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D110, -- 𝄐
+ category="so",
+ description="MUSICAL SYMBOL FERMATA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D110,
},
[0x1D111]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL FERMATA BELOW",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D111, -- 𝄑
+ category="so",
+ description="MUSICAL SYMBOL FERMATA BELOW",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D111,
},
[0x1D112]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL BREATH MARK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D112, -- 𝄒
+ category="so",
+ description="MUSICAL SYMBOL BREATH MARK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D112,
},
[0x1D113]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL CAESURA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D113, -- 𝄓
+ category="so",
+ description="MUSICAL SYMBOL CAESURA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D113,
},
[0x1D114]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL BRACE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D114, -- 𝄔
+ category="so",
+ description="MUSICAL SYMBOL BRACE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D114,
},
[0x1D115]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL BRACKET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D115, -- 𝄕
+ category="so",
+ description="MUSICAL SYMBOL BRACKET",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D115,
},
[0x1D116]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL ONE-LINE STAFF",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D116, -- 𝄖
+ category="so",
+ description="MUSICAL SYMBOL ONE-LINE STAFF",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D116,
},
[0x1D117]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL TWO-LINE STAFF",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D117, -- 𝄗
+ category="so",
+ description="MUSICAL SYMBOL TWO-LINE STAFF",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D117,
},
[0x1D118]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL THREE-LINE STAFF",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D118, -- 𝄘
+ category="so",
+ description="MUSICAL SYMBOL THREE-LINE STAFF",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D118,
},
[0x1D119]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL FOUR-LINE STAFF",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D119, -- 𝄙
+ category="so",
+ description="MUSICAL SYMBOL FOUR-LINE STAFF",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D119,
},
[0x1D11A]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL FIVE-LINE STAFF",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D11A, -- 𝄚
+ category="so",
+ description="MUSICAL SYMBOL FIVE-LINE STAFF",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D11A,
},
[0x1D11B]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL SIX-LINE STAFF",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D11B, -- 𝄛
+ category="so",
+ description="MUSICAL SYMBOL SIX-LINE STAFF",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D11B,
},
[0x1D11C]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL SIX-STRING FRETBOARD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D11C, -- 𝄜
+ category="so",
+ description="MUSICAL SYMBOL SIX-STRING FRETBOARD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D11C,
},
[0x1D11D]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL FOUR-STRING FRETBOARD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D11D, -- 𝄝
+ category="so",
+ description="MUSICAL SYMBOL FOUR-STRING FRETBOARD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D11D,
},
[0x1D11E]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL G CLEF",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D11E, -- 𝄞
+ category="so",
+ description="MUSICAL SYMBOL G CLEF",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D11E,
},
[0x1D11F]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL G CLEF OTTAVA ALTA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D11F, -- 𝄟
+ category="so",
+ description="MUSICAL SYMBOL G CLEF OTTAVA ALTA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D11F,
},
[0x1D120]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL G CLEF OTTAVA BASSA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D120, -- 𝄠
+ category="so",
+ description="MUSICAL SYMBOL G CLEF OTTAVA BASSA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D120,
},
[0x1D121]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL C CLEF",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D121, -- 𝄡
+ category="so",
+ description="MUSICAL SYMBOL C CLEF",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D121,
},
[0x1D122]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL F CLEF",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D122, -- 𝄢
+ category="so",
+ description="MUSICAL SYMBOL F CLEF",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D122,
},
[0x1D123]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL F CLEF OTTAVA ALTA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D123, -- 𝄣
+ category="so",
+ description="MUSICAL SYMBOL F CLEF OTTAVA ALTA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D123,
},
[0x1D124]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL F CLEF OTTAVA BASSA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D124, -- 𝄤
+ category="so",
+ description="MUSICAL SYMBOL F CLEF OTTAVA BASSA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D124,
},
[0x1D125]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL DRUM CLEF-0x0001",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D125, -- 𝄥
+ category="so",
+ description="MUSICAL SYMBOL DRUM CLEF-0x0001",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D125,
},
[0x1D126]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL DRUM CLEF-0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D126, -- 𝄦
+ category="so",
+ description="MUSICAL SYMBOL DRUM CLEF-0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D126,
},
[0x1D12A]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL DOUBLE SHARP",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D12A, -- 𝄪
+ category="so",
+ description="MUSICAL SYMBOL DOUBLE SHARP",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D12A,
},
[0x1D12B]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL DOUBLE FLAT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D12B, -- 𝄫
+ category="so",
+ description="MUSICAL SYMBOL DOUBLE FLAT",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D12B,
},
[0x1D12C]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL FLAT UP",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D12C, -- 𝄬
+ category="so",
+ description="MUSICAL SYMBOL FLAT UP",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D12C,
},
[0x1D12D]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL FLAT DOWN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D12D, -- 𝄭
+ category="so",
+ description="MUSICAL SYMBOL FLAT DOWN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D12D,
},
[0x1D12E]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL NATURAL UP",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D12E, -- 𝄮
+ category="so",
+ description="MUSICAL SYMBOL NATURAL UP",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D12E,
},
[0x1D12F]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL NATURAL DOWN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D12F, -- 𝄯
+ category="so",
+ description="MUSICAL SYMBOL NATURAL DOWN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D12F,
},
[0x1D130]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL SHARP UP",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D130, -- 𝄰
+ category="so",
+ description="MUSICAL SYMBOL SHARP UP",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D130,
},
[0x1D131]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL SHARP DOWN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D131, -- 𝄱
+ category="so",
+ description="MUSICAL SYMBOL SHARP DOWN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D131,
},
[0x1D132]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL QUARTER TONE SHARP",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D132, -- 𝄲
+ category="so",
+ description="MUSICAL SYMBOL QUARTER TONE SHARP",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D132,
},
[0x1D133]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL QUARTER TONE FLAT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D133, -- 𝄳
+ category="so",
+ description="MUSICAL SYMBOL QUARTER TONE FLAT",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D133,
},
[0x1D134]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL COMMON TIME",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D134, -- 𝄴
+ category="so",
+ description="MUSICAL SYMBOL COMMON TIME",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D134,
},
[0x1D135]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL CUT TIME",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D135, -- 𝄵
+ category="so",
+ description="MUSICAL SYMBOL CUT TIME",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D135,
},
[0x1D136]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL OTTAVA ALTA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D136, -- 𝄶
+ category="so",
+ description="MUSICAL SYMBOL OTTAVA ALTA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D136,
},
[0x1D137]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL OTTAVA BASSA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D137, -- 𝄷
+ category="so",
+ description="MUSICAL SYMBOL OTTAVA BASSA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D137,
},
[0x1D138]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL QUINDICESIMA ALTA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D138, -- 𝄸
+ category="so",
+ description="MUSICAL SYMBOL QUINDICESIMA ALTA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D138,
},
[0x1D139]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL QUINDICESIMA BASSA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D139, -- 𝄹
+ category="so",
+ description="MUSICAL SYMBOL QUINDICESIMA BASSA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D139,
},
[0x1D13A]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL MULTI REST",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D13A, -- 𝄺
+ category="so",
+ description="MUSICAL SYMBOL MULTI REST",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D13A,
},
[0x1D13B]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL WHOLE REST",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D13B, -- 𝄻
+ category="so",
+ description="MUSICAL SYMBOL WHOLE REST",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D13B,
},
[0x1D13C]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL HALF REST",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D13C, -- 𝄼
+ category="so",
+ description="MUSICAL SYMBOL HALF REST",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D13C,
},
[0x1D13D]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL QUARTER REST",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D13D, -- 𝄽
+ category="so",
+ description="MUSICAL SYMBOL QUARTER REST",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D13D,
},
[0x1D13E]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL EIGHTH REST",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D13E, -- 𝄾
+ category="so",
+ description="MUSICAL SYMBOL EIGHTH REST",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D13E,
},
[0x1D13F]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL SIXTEENTH REST",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D13F, -- 𝄿
+ category="so",
+ description="MUSICAL SYMBOL SIXTEENTH REST",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D13F,
},
[0x1D140]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL THIRTY-SECOND REST",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D140, -- 𝅀
+ category="so",
+ description="MUSICAL SYMBOL THIRTY-SECOND REST",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D140,
},
[0x1D141]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL SIXTY-FOURTH REST",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D141, -- 𝅁
+ category="so",
+ description="MUSICAL SYMBOL SIXTY-FOURTH REST",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D141,
},
[0x1D142]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH REST",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D142, -- 𝅂
+ category="so",
+ description="MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH REST",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D142,
},
[0x1D143]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL X NOTEHEAD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D143, -- 𝅃
+ category="so",
+ description="MUSICAL SYMBOL X NOTEHEAD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D143,
},
[0x1D144]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL PLUS NOTEHEAD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D144, -- 𝅄
+ category="so",
+ description="MUSICAL SYMBOL PLUS NOTEHEAD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D144,
},
[0x1D145]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL CIRCLE X NOTEHEAD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D145, -- 𝅅
+ category="so",
+ description="MUSICAL SYMBOL CIRCLE X NOTEHEAD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D145,
},
[0x1D146]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL SQUARE NOTEHEAD WHITE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D146, -- 𝅆
+ category="so",
+ description="MUSICAL SYMBOL SQUARE NOTEHEAD WHITE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D146,
},
[0x1D147]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL SQUARE NOTEHEAD BLACK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D147, -- 𝅇
+ category="so",
+ description="MUSICAL SYMBOL SQUARE NOTEHEAD BLACK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D147,
},
[0x1D148]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL TRIANGLE NOTEHEAD UP WHITE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D148, -- 𝅈
+ category="so",
+ description="MUSICAL SYMBOL TRIANGLE NOTEHEAD UP WHITE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D148,
},
[0x1D149]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL TRIANGLE NOTEHEAD UP BLACK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D149, -- 𝅉
+ category="so",
+ description="MUSICAL SYMBOL TRIANGLE NOTEHEAD UP BLACK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D149,
},
[0x1D14A]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL TRIANGLE NOTEHEAD LEFT WHITE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D14A, -- 𝅊
+ category="so",
+ description="MUSICAL SYMBOL TRIANGLE NOTEHEAD LEFT WHITE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D14A,
},
[0x1D14B]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL TRIANGLE NOTEHEAD LEFT BLACK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D14B, -- 𝅋
+ category="so",
+ description="MUSICAL SYMBOL TRIANGLE NOTEHEAD LEFT BLACK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D14B,
},
[0x1D14C]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL TRIANGLE NOTEHEAD RIGHT WHITE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D14C, -- 𝅌
+ category="so",
+ description="MUSICAL SYMBOL TRIANGLE NOTEHEAD RIGHT WHITE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D14C,
},
[0x1D14D]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL TRIANGLE NOTEHEAD RIGHT BLACK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D14D, -- 𝅍
+ category="so",
+ description="MUSICAL SYMBOL TRIANGLE NOTEHEAD RIGHT BLACK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D14D,
},
[0x1D14E]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL TRIANGLE NOTEHEAD DOWN WHITE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D14E, -- 𝅎
+ category="so",
+ description="MUSICAL SYMBOL TRIANGLE NOTEHEAD DOWN WHITE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D14E,
},
[0x1D14F]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL TRIANGLE NOTEHEAD DOWN BLACK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D14F, -- 𝅏
+ category="so",
+ description="MUSICAL SYMBOL TRIANGLE NOTEHEAD DOWN BLACK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D14F,
},
[0x1D150]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL TRIANGLE NOTEHEAD UP RIGHT WHITE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D150, -- 𝅐
+ category="so",
+ description="MUSICAL SYMBOL TRIANGLE NOTEHEAD UP RIGHT WHITE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D150,
},
[0x1D151]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL TRIANGLE NOTEHEAD UP RIGHT BLACK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D151, -- 𝅑
+ category="so",
+ description="MUSICAL SYMBOL TRIANGLE NOTEHEAD UP RIGHT BLACK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D151,
},
[0x1D152]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL MOON NOTEHEAD WHITE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D152, -- 𝅒
+ category="so",
+ description="MUSICAL SYMBOL MOON NOTEHEAD WHITE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D152,
},
[0x1D153]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL MOON NOTEHEAD BLACK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D153, -- 𝅓
+ category="so",
+ description="MUSICAL SYMBOL MOON NOTEHEAD BLACK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D153,
},
[0x1D154]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL TRIANGLE-ROUND NOTEHEAD DOWN WHITE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D154, -- 𝅔
+ category="so",
+ description="MUSICAL SYMBOL TRIANGLE-ROUND NOTEHEAD DOWN WHITE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D154,
},
[0x1D155]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL TRIANGLE-ROUND NOTEHEAD DOWN BLACK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D155, -- 𝅕
+ category="so",
+ description="MUSICAL SYMBOL TRIANGLE-ROUND NOTEHEAD DOWN BLACK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D155,
},
[0x1D156]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL PARENTHESIS NOTEHEAD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D156, -- 𝅖
+ category="so",
+ description="MUSICAL SYMBOL PARENTHESIS NOTEHEAD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D156,
},
[0x1D157]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL VOID NOTEHEAD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D157, -- 𝅗
+ category="so",
+ description="MUSICAL SYMBOL VOID NOTEHEAD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D157,
},
[0x1D158]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL NOTEHEAD BLACK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D158, -- 𝅘
+ category="so",
+ description="MUSICAL SYMBOL NOTEHEAD BLACK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D158,
},
[0x1D159]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL NULL NOTEHEAD",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D159, -- 𝅙
+ category="so",
+ description="MUSICAL SYMBOL NULL NOTEHEAD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D159,
},
[0x1D15A]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL CLUSTER NOTEHEAD WHITE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D15A, -- 𝅚
+ category="so",
+ description="MUSICAL SYMBOL CLUSTER NOTEHEAD WHITE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D15A,
},
[0x1D15B]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL CLUSTER NOTEHEAD BLACK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D15B, -- 𝅛
+ category="so",
+ description="MUSICAL SYMBOL CLUSTER NOTEHEAD BLACK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D15B,
},
[0x1D15C]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL BREVE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D15C, -- 𝅜
+ category="so",
+ description="MUSICAL SYMBOL BREVE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D15C,
},
[0x1D15D]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL WHOLE NOTE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D15D, -- 𝅝
+ category="so",
+ description="MUSICAL SYMBOL WHOLE NOTE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D15D,
},
[0x1D15E]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL HALF NOTE",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x1D157, 0x1D165 },
- ["unicodeslot"]=0x1D15E, -- 𝅗𝅥
+ category="so",
+ description="MUSICAL SYMBOL HALF NOTE",
+ direction="l",
+ linebreak="al",
+ specials={ "char", 0x1D157, 0x1D165 },
+ unicodeslot=0x1D15E,
},
[0x1D15F]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL QUARTER NOTE",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x1D158, 0x1D165 },
- ["unicodeslot"]=0x1D15F, -- 𝅘𝅥
+ category="so",
+ description="MUSICAL SYMBOL QUARTER NOTE",
+ direction="l",
+ linebreak="al",
+ specials={ "char", 0x1D158, 0x1D165 },
+ unicodeslot=0x1D15F,
},
[0x1D160]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL EIGHTH NOTE",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x1D15F, 0x1D16E },
- ["unicodeslot"]=0x1D160, -- 𝅘𝅥𝅮
+ category="so",
+ description="MUSICAL SYMBOL EIGHTH NOTE",
+ direction="l",
+ linebreak="al",
+ specials={ "char", 0x1D15F, 0x1D16E },
+ unicodeslot=0x1D160,
},
[0x1D161]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL SIXTEENTH NOTE",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x1D15F, 0x1D16F },
- ["unicodeslot"]=0x1D161, -- 𝅘𝅥𝅯
+ category="so",
+ description="MUSICAL SYMBOL SIXTEENTH NOTE",
+ direction="l",
+ linebreak="al",
+ specials={ "char", 0x1D15F, 0x1D16F },
+ unicodeslot=0x1D161,
},
[0x1D162]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL THIRTY-SECOND NOTE",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x1D15F, 0x1D170 },
- ["unicodeslot"]=0x1D162, -- 𝅘𝅥𝅰
+ category="so",
+ description="MUSICAL SYMBOL THIRTY-SECOND NOTE",
+ direction="l",
+ linebreak="al",
+ specials={ "char", 0x1D15F, 0x1D170 },
+ unicodeslot=0x1D162,
},
[0x1D163]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL SIXTY-FOURTH NOTE",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x1D15F, 0x1D171 },
- ["unicodeslot"]=0x1D163, -- 𝅘𝅥𝅱
+ category="so",
+ description="MUSICAL SYMBOL SIXTY-FOURTH NOTE",
+ direction="l",
+ linebreak="al",
+ specials={ "char", 0x1D15F, 0x1D171 },
+ unicodeslot=0x1D163,
},
[0x1D164]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x1D15F, 0x1D172 },
- ["unicodeslot"]=0x1D164, -- 𝅘𝅥𝅲
+ category="so",
+ description="MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE",
+ direction="l",
+ linebreak="al",
+ specials={ "char", 0x1D15F, 0x1D172 },
+ unicodeslot=0x1D164,
},
[0x1D165]={
- ["category"]="mc",
- ["description"]="MUSICAL SYMBOL COMBINING STEM",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1D165, -- 𝅥
+ category="mc",
+ description="MUSICAL SYMBOL COMBINING STEM",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x1D165,
},
[0x1D166]={
- ["category"]="mc",
- ["description"]="MUSICAL SYMBOL COMBINING SPRECHGESANG STEM",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1D166, -- 𝅦
+ category="mc",
+ description="MUSICAL SYMBOL COMBINING SPRECHGESANG STEM",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x1D166,
},
[0x1D167]={
- ["category"]="mn",
- ["description"]="MUSICAL SYMBOL COMBINING TREMOLO-0x0001",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1D167, -- 𝅧
+ category="mn",
+ description="MUSICAL SYMBOL COMBINING TREMOLO-0x0001",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1D167,
},
[0x1D168]={
- ["category"]="mn",
- ["description"]="MUSICAL SYMBOL COMBINING TREMOLO-0x0002",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1D168, -- 𝅨
+ category="mn",
+ description="MUSICAL SYMBOL COMBINING TREMOLO-0x0002",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1D168,
},
[0x1D169]={
- ["category"]="mn",
- ["description"]="MUSICAL SYMBOL COMBINING TREMOLO-0x0003",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1D169, -- 𝅩
+ category="mn",
+ description="MUSICAL SYMBOL COMBINING TREMOLO-0x0003",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1D169,
},
[0x1D16A]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL FINGERED TREMOLO-0x0001",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D16A, -- 𝅪
+ category="so",
+ description="MUSICAL SYMBOL FINGERED TREMOLO-0x0001",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D16A,
},
[0x1D16B]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL FINGERED TREMOLO-0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D16B, -- 𝅫
+ category="so",
+ description="MUSICAL SYMBOL FINGERED TREMOLO-0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D16B,
},
[0x1D16C]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL FINGERED TREMOLO-0x0003",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D16C, -- 𝅬
+ category="so",
+ description="MUSICAL SYMBOL FINGERED TREMOLO-0x0003",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D16C,
},
[0x1D16D]={
- ["category"]="mc",
- ["description"]="MUSICAL SYMBOL COMBINING AUGMENTATION DOT",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1D16D, -- 𝅭
+ category="mc",
+ description="MUSICAL SYMBOL COMBINING AUGMENTATION DOT",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x1D16D,
},
[0x1D16E]={
- ["category"]="mc",
- ["description"]="MUSICAL SYMBOL COMBINING FLAG-0x0001",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1D16E, -- 𝅮
+ category="mc",
+ description="MUSICAL SYMBOL COMBINING FLAG-0x0001",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x1D16E,
},
[0x1D16F]={
- ["category"]="mc",
- ["description"]="MUSICAL SYMBOL COMBINING FLAG-0x0002",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1D16F, -- 𝅯
+ category="mc",
+ description="MUSICAL SYMBOL COMBINING FLAG-0x0002",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x1D16F,
},
[0x1D170]={
- ["category"]="mc",
- ["description"]="MUSICAL SYMBOL COMBINING FLAG-0x0003",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1D170, -- 𝅰
+ category="mc",
+ description="MUSICAL SYMBOL COMBINING FLAG-0x0003",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x1D170,
},
[0x1D171]={
- ["category"]="mc",
- ["description"]="MUSICAL SYMBOL COMBINING FLAG-0x0004",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1D171, -- 𝅱
+ category="mc",
+ description="MUSICAL SYMBOL COMBINING FLAG-0x0004",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x1D171,
},
[0x1D172]={
- ["category"]="mc",
- ["description"]="MUSICAL SYMBOL COMBINING FLAG-0x0005",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1D172, -- 𝅲
+ category="mc",
+ description="MUSICAL SYMBOL COMBINING FLAG-0x0005",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x1D172,
},
[0x1D173]={
- ["category"]="cf",
- ["description"]="MUSICAL SYMBOL BEGIN BEAM",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1D173, -- 𝅳
+ category="cf",
+ description="MUSICAL SYMBOL BEGIN BEAM",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x1D173,
},
[0x1D174]={
- ["category"]="cf",
- ["description"]="MUSICAL SYMBOL END BEAM",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1D174, -- 𝅴
+ category="cf",
+ description="MUSICAL SYMBOL END BEAM",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x1D174,
},
[0x1D175]={
- ["category"]="cf",
- ["description"]="MUSICAL SYMBOL BEGIN TIE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1D175, -- 𝅵
+ category="cf",
+ description="MUSICAL SYMBOL BEGIN TIE",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x1D175,
},
[0x1D176]={
- ["category"]="cf",
- ["description"]="MUSICAL SYMBOL END TIE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1D176, -- 𝅶
+ category="cf",
+ description="MUSICAL SYMBOL END TIE",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x1D176,
},
[0x1D177]={
- ["category"]="cf",
- ["description"]="MUSICAL SYMBOL BEGIN SLUR",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1D177, -- 𝅷
+ category="cf",
+ description="MUSICAL SYMBOL BEGIN SLUR",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x1D177,
},
[0x1D178]={
- ["category"]="cf",
- ["description"]="MUSICAL SYMBOL END SLUR",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1D178, -- 𝅸
+ category="cf",
+ description="MUSICAL SYMBOL END SLUR",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x1D178,
},
[0x1D179]={
- ["category"]="cf",
- ["description"]="MUSICAL SYMBOL BEGIN PHRASE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1D179, -- 𝅹
+ category="cf",
+ description="MUSICAL SYMBOL BEGIN PHRASE",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x1D179,
},
[0x1D17A]={
- ["category"]="cf",
- ["description"]="MUSICAL SYMBOL END PHRASE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1D17A, -- 𝅺
+ category="cf",
+ description="MUSICAL SYMBOL END PHRASE",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0x1D17A,
},
[0x1D17B]={
- ["category"]="mn",
- ["description"]="MUSICAL SYMBOL COMBINING ACCENT",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1D17B, -- 𝅻
+ category="mn",
+ description="MUSICAL SYMBOL COMBINING ACCENT",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1D17B,
},
[0x1D17C]={
- ["category"]="mn",
- ["description"]="MUSICAL SYMBOL COMBINING STACCATO",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1D17C, -- 𝅼
+ category="mn",
+ description="MUSICAL SYMBOL COMBINING STACCATO",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1D17C,
},
[0x1D17D]={
- ["category"]="mn",
- ["description"]="MUSICAL SYMBOL COMBINING TENUTO",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1D17D, -- 𝅽
+ category="mn",
+ description="MUSICAL SYMBOL COMBINING TENUTO",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1D17D,
},
[0x1D17E]={
- ["category"]="mn",
- ["description"]="MUSICAL SYMBOL COMBINING STACCATISSIMO",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1D17E, -- 𝅾
+ category="mn",
+ description="MUSICAL SYMBOL COMBINING STACCATISSIMO",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1D17E,
},
[0x1D17F]={
- ["category"]="mn",
- ["description"]="MUSICAL SYMBOL COMBINING MARCATO",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1D17F, -- 𝅿
+ category="mn",
+ description="MUSICAL SYMBOL COMBINING MARCATO",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1D17F,
},
[0x1D180]={
- ["category"]="mn",
- ["description"]="MUSICAL SYMBOL COMBINING MARCATO-STACCATO",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1D180, -- 𝆀
+ category="mn",
+ description="MUSICAL SYMBOL COMBINING MARCATO-STACCATO",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1D180,
},
[0x1D181]={
- ["category"]="mn",
- ["description"]="MUSICAL SYMBOL COMBINING ACCENT-STACCATO",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1D181, -- 𝆁
+ category="mn",
+ description="MUSICAL SYMBOL COMBINING ACCENT-STACCATO",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1D181,
},
[0x1D182]={
- ["category"]="mn",
- ["description"]="MUSICAL SYMBOL COMBINING LOURE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1D182, -- 𝆂
+ category="mn",
+ description="MUSICAL SYMBOL COMBINING LOURE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1D182,
},
[0x1D183]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL ARPEGGIATO UP",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D183, -- 𝆃
+ category="so",
+ description="MUSICAL SYMBOL ARPEGGIATO UP",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D183,
},
[0x1D184]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL ARPEGGIATO DOWN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D184, -- 𝆄
+ category="so",
+ description="MUSICAL SYMBOL ARPEGGIATO DOWN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D184,
},
[0x1D185]={
- ["category"]="mn",
- ["description"]="MUSICAL SYMBOL COMBINING DOIT",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1D185, -- 𝆅
+ category="mn",
+ description="MUSICAL SYMBOL COMBINING DOIT",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1D185,
},
[0x1D186]={
- ["category"]="mn",
- ["description"]="MUSICAL SYMBOL COMBINING RIP",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1D186, -- 𝆆
+ category="mn",
+ description="MUSICAL SYMBOL COMBINING RIP",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1D186,
},
[0x1D187]={
- ["category"]="mn",
- ["description"]="MUSICAL SYMBOL COMBINING FLIP",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1D187, -- 𝆇
+ category="mn",
+ description="MUSICAL SYMBOL COMBINING FLIP",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1D187,
},
[0x1D188]={
- ["category"]="mn",
- ["description"]="MUSICAL SYMBOL COMBINING SMEAR",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1D188, -- 𝆈
+ category="mn",
+ description="MUSICAL SYMBOL COMBINING SMEAR",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1D188,
},
[0x1D189]={
- ["category"]="mn",
- ["description"]="MUSICAL SYMBOL COMBINING BEND",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1D189, -- 𝆉
+ category="mn",
+ description="MUSICAL SYMBOL COMBINING BEND",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1D189,
},
[0x1D18A]={
- ["category"]="mn",
- ["description"]="MUSICAL SYMBOL COMBINING DOUBLE TONGUE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1D18A, -- 𝆊
+ category="mn",
+ description="MUSICAL SYMBOL COMBINING DOUBLE TONGUE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1D18A,
},
[0x1D18B]={
- ["category"]="mn",
- ["description"]="MUSICAL SYMBOL COMBINING TRIPLE TONGUE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1D18B, -- 𝆋
+ category="mn",
+ description="MUSICAL SYMBOL COMBINING TRIPLE TONGUE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1D18B,
},
[0x1D18C]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL RINFORZANDO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D18C, -- 𝆌
+ category="so",
+ description="MUSICAL SYMBOL RINFORZANDO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D18C,
},
[0x1D18D]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL SUBITO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D18D, -- 𝆍
+ category="so",
+ description="MUSICAL SYMBOL SUBITO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D18D,
},
[0x1D18E]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL Z",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D18E, -- 𝆎
+ category="so",
+ description="MUSICAL SYMBOL Z",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D18E,
},
[0x1D18F]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL PIANO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D18F, -- 𝆏
+ category="so",
+ description="MUSICAL SYMBOL PIANO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D18F,
},
[0x1D190]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL MEZZO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D190, -- 𝆐
+ category="so",
+ description="MUSICAL SYMBOL MEZZO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D190,
},
[0x1D191]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL FORTE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D191, -- 𝆑
+ category="so",
+ description="MUSICAL SYMBOL FORTE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D191,
},
[0x1D192]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL CRESCENDO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D192, -- 𝆒
+ category="so",
+ description="MUSICAL SYMBOL CRESCENDO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D192,
},
[0x1D193]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL DECRESCENDO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D193, -- 𝆓
+ category="so",
+ description="MUSICAL SYMBOL DECRESCENDO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D193,
},
[0x1D194]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL GRACE NOTE SLASH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D194, -- 𝆔
+ category="so",
+ description="MUSICAL SYMBOL GRACE NOTE SLASH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D194,
},
[0x1D195]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL GRACE NOTE NO SLASH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D195, -- 𝆕
+ category="so",
+ description="MUSICAL SYMBOL GRACE NOTE NO SLASH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D195,
},
[0x1D196]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL TR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D196, -- 𝆖
+ category="so",
+ description="MUSICAL SYMBOL TR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D196,
},
[0x1D197]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL TURN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D197, -- 𝆗
+ category="so",
+ description="MUSICAL SYMBOL TURN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D197,
},
[0x1D198]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL INVERTED TURN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D198, -- 𝆘
+ category="so",
+ description="MUSICAL SYMBOL INVERTED TURN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D198,
},
[0x1D199]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL TURN SLASH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D199, -- 𝆙
+ category="so",
+ description="MUSICAL SYMBOL TURN SLASH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D199,
},
[0x1D19A]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL TURN UP",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D19A, -- 𝆚
+ category="so",
+ description="MUSICAL SYMBOL TURN UP",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D19A,
},
[0x1D19B]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL ORNAMENT STROKE-0x0001",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D19B, -- 𝆛
+ category="so",
+ description="MUSICAL SYMBOL ORNAMENT STROKE-0x0001",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D19B,
},
[0x1D19C]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL ORNAMENT STROKE-0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D19C, -- 𝆜
+ category="so",
+ description="MUSICAL SYMBOL ORNAMENT STROKE-0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D19C,
},
[0x1D19D]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL ORNAMENT STROKE-0x0003",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D19D, -- 𝆝
+ category="so",
+ description="MUSICAL SYMBOL ORNAMENT STROKE-0x0003",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D19D,
},
[0x1D19E]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL ORNAMENT STROKE-0x0004",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D19E, -- 𝆞
+ category="so",
+ description="MUSICAL SYMBOL ORNAMENT STROKE-0x0004",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D19E,
},
[0x1D19F]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL ORNAMENT STROKE-0x0005",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D19F, -- 𝆟
+ category="so",
+ description="MUSICAL SYMBOL ORNAMENT STROKE-0x0005",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D19F,
},
[0x1D1A0]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL ORNAMENT STROKE-0x0006",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D1A0, -- 𝆠
+ category="so",
+ description="MUSICAL SYMBOL ORNAMENT STROKE-0x0006",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D1A0,
},
[0x1D1A1]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL ORNAMENT STROKE-0x0007",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D1A1, -- 𝆡
+ category="so",
+ description="MUSICAL SYMBOL ORNAMENT STROKE-0x0007",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D1A1,
},
[0x1D1A2]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL ORNAMENT STROKE-0x0008",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D1A2, -- 𝆢
+ category="so",
+ description="MUSICAL SYMBOL ORNAMENT STROKE-0x0008",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D1A2,
},
[0x1D1A3]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL ORNAMENT STROKE-0x0009",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D1A3, -- 𝆣
+ category="so",
+ description="MUSICAL SYMBOL ORNAMENT STROKE-0x0009",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D1A3,
},
[0x1D1A4]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL ORNAMENT STROKE-0x000A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D1A4, -- 𝆤
+ category="so",
+ description="MUSICAL SYMBOL ORNAMENT STROKE-0x000A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D1A4,
},
[0x1D1A5]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL ORNAMENT STROKE-0x000B",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D1A5, -- 𝆥
+ category="so",
+ description="MUSICAL SYMBOL ORNAMENT STROKE-0x000B",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D1A5,
},
[0x1D1A6]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL HAUPTSTIMME",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D1A6, -- 𝆦
+ category="so",
+ description="MUSICAL SYMBOL HAUPTSTIMME",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D1A6,
},
[0x1D1A7]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL NEBENSTIMME",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D1A7, -- 𝆧
+ category="so",
+ description="MUSICAL SYMBOL NEBENSTIMME",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D1A7,
},
[0x1D1A8]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL END OF STIMME",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D1A8, -- 𝆨
+ category="so",
+ description="MUSICAL SYMBOL END OF STIMME",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D1A8,
},
[0x1D1A9]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL DEGREE SLASH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D1A9, -- 𝆩
+ category="so",
+ description="MUSICAL SYMBOL DEGREE SLASH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D1A9,
},
[0x1D1AA]={
- ["category"]="mn",
- ["description"]="MUSICAL SYMBOL COMBINING DOWN BOW",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1D1AA, -- 𝆪
+ category="mn",
+ description="MUSICAL SYMBOL COMBINING DOWN BOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1D1AA,
},
[0x1D1AB]={
- ["category"]="mn",
- ["description"]="MUSICAL SYMBOL COMBINING UP BOW",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1D1AB, -- 𝆫
+ category="mn",
+ description="MUSICAL SYMBOL COMBINING UP BOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1D1AB,
},
[0x1D1AC]={
- ["category"]="mn",
- ["description"]="MUSICAL SYMBOL COMBINING HARMONIC",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1D1AC, -- 𝆬
+ category="mn",
+ description="MUSICAL SYMBOL COMBINING HARMONIC",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1D1AC,
},
[0x1D1AD]={
- ["category"]="mn",
- ["description"]="MUSICAL SYMBOL COMBINING SNAP PIZZICATO",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1D1AD, -- 𝆭
+ category="mn",
+ description="MUSICAL SYMBOL COMBINING SNAP PIZZICATO",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1D1AD,
},
[0x1D1AE]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL PEDAL MARK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D1AE, -- 𝆮
+ category="so",
+ description="MUSICAL SYMBOL PEDAL MARK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D1AE,
},
[0x1D1AF]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL PEDAL UP MARK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D1AF, -- 𝆯
+ category="so",
+ description="MUSICAL SYMBOL PEDAL UP MARK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D1AF,
},
[0x1D1B0]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL HALF PEDAL MARK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D1B0, -- 𝆰
+ category="so",
+ description="MUSICAL SYMBOL HALF PEDAL MARK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D1B0,
},
[0x1D1B1]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL GLISSANDO UP",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D1B1, -- 𝆱
+ category="so",
+ description="MUSICAL SYMBOL GLISSANDO UP",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D1B1,
},
[0x1D1B2]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL GLISSANDO DOWN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D1B2, -- 𝆲
+ category="so",
+ description="MUSICAL SYMBOL GLISSANDO DOWN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D1B2,
},
[0x1D1B3]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL WITH FINGERNAILS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D1B3, -- 𝆳
+ category="so",
+ description="MUSICAL SYMBOL WITH FINGERNAILS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D1B3,
},
[0x1D1B4]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL DAMP",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D1B4, -- 𝆴
+ category="so",
+ description="MUSICAL SYMBOL DAMP",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D1B4,
},
[0x1D1B5]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL DAMP ALL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D1B5, -- 𝆵
+ category="so",
+ description="MUSICAL SYMBOL DAMP ALL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D1B5,
},
[0x1D1B6]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL MAXIMA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D1B6, -- 𝆶
+ category="so",
+ description="MUSICAL SYMBOL MAXIMA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D1B6,
},
[0x1D1B7]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL LONGA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D1B7, -- 𝆷
+ category="so",
+ description="MUSICAL SYMBOL LONGA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D1B7,
},
[0x1D1B8]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL BREVIS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D1B8, -- 𝆸
+ category="so",
+ description="MUSICAL SYMBOL BREVIS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D1B8,
},
[0x1D1B9]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL SEMIBREVIS WHITE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D1B9, -- 𝆹
+ category="so",
+ description="MUSICAL SYMBOL SEMIBREVIS WHITE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D1B9,
},
[0x1D1BA]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL SEMIBREVIS BLACK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D1BA, -- 𝆺
+ category="so",
+ description="MUSICAL SYMBOL SEMIBREVIS BLACK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D1BA,
},
[0x1D1BB]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL MINIMA",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x1D1B9, 0x1D165 },
- ["unicodeslot"]=0x1D1BB, -- 𝆹𝅥
+ category="so",
+ description="MUSICAL SYMBOL MINIMA",
+ direction="l",
+ linebreak="al",
+ specials={ "char", 0x1D1B9, 0x1D165 },
+ unicodeslot=0x1D1BB,
},
[0x1D1BC]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL MINIMA BLACK",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x1D1BA, 0x1D165 },
- ["unicodeslot"]=0x1D1BC, -- 𝆺𝅥
+ category="so",
+ description="MUSICAL SYMBOL MINIMA BLACK",
+ direction="l",
+ linebreak="al",
+ specials={ "char", 0x1D1BA, 0x1D165 },
+ unicodeslot=0x1D1BC,
},
[0x1D1BD]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL SEMIMINIMA WHITE",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x1D1BB, 0x1D16E },
- ["unicodeslot"]=0x1D1BD, -- 𝆹𝅥𝅮
+ category="so",
+ description="MUSICAL SYMBOL SEMIMINIMA WHITE",
+ direction="l",
+ linebreak="al",
+ specials={ "char", 0x1D1BB, 0x1D16E },
+ unicodeslot=0x1D1BD,
},
[0x1D1BE]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL SEMIMINIMA BLACK",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x1D1BC, 0x1D16E },
- ["unicodeslot"]=0x1D1BE, -- 𝆺𝅥𝅮
+ category="so",
+ description="MUSICAL SYMBOL SEMIMINIMA BLACK",
+ direction="l",
+ linebreak="al",
+ specials={ "char", 0x1D1BC, 0x1D16E },
+ unicodeslot=0x1D1BE,
},
[0x1D1BF]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL FUSA WHITE",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x1D1BB, 0x1D16F },
- ["unicodeslot"]=0x1D1BF, -- 𝆹𝅥𝅯
+ category="so",
+ description="MUSICAL SYMBOL FUSA WHITE",
+ direction="l",
+ linebreak="al",
+ specials={ "char", 0x1D1BB, 0x1D16F },
+ unicodeslot=0x1D1BF,
},
[0x1D1C0]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL FUSA BLACK",
- ["linebreak"]="al",
- ["specials"]={ "char", 0x1D1BC, 0x1D16F },
- ["unicodeslot"]=0x1D1C0, -- 𝆺𝅥𝅯
+ category="so",
+ description="MUSICAL SYMBOL FUSA BLACK",
+ direction="l",
+ linebreak="al",
+ specials={ "char", 0x1D1BC, 0x1D16F },
+ unicodeslot=0x1D1C0,
},
[0x1D1C1]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL LONGA PERFECTA REST",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D1C1, -- 𝇁
+ category="so",
+ description="MUSICAL SYMBOL LONGA PERFECTA REST",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D1C1,
},
[0x1D1C2]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL LONGA IMPERFECTA REST",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D1C2, -- 𝇂
+ category="so",
+ description="MUSICAL SYMBOL LONGA IMPERFECTA REST",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D1C2,
},
[0x1D1C3]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL BREVIS REST",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D1C3, -- 𝇃
+ category="so",
+ description="MUSICAL SYMBOL BREVIS REST",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D1C3,
},
[0x1D1C4]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL SEMIBREVIS REST",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D1C4, -- 𝇄
+ category="so",
+ description="MUSICAL SYMBOL SEMIBREVIS REST",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D1C4,
},
[0x1D1C5]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL MINIMA REST",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D1C5, -- 𝇅
+ category="so",
+ description="MUSICAL SYMBOL MINIMA REST",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D1C5,
},
[0x1D1C6]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL SEMIMINIMA REST",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D1C6, -- 𝇆
+ category="so",
+ description="MUSICAL SYMBOL SEMIMINIMA REST",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D1C6,
},
[0x1D1C7]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE PERFECTA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D1C7, -- 𝇇
+ category="so",
+ description="MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE PERFECTA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D1C7,
},
[0x1D1C8]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE IMPERFECTA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D1C8, -- 𝇈
+ category="so",
+ description="MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE IMPERFECTA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D1C8,
},
[0x1D1C9]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE PERFECTA DIMINUTION-0x0001",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D1C9, -- 𝇉
+ category="so",
+ description="MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE PERFECTA DIMINUTION-0x0001",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D1C9,
},
[0x1D1CA]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE PERFECTA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D1CA, -- 𝇊
+ category="so",
+ description="MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE PERFECTA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D1CA,
},
[0x1D1CB]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D1CB, -- 𝇋
+ category="so",
+ description="MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D1CB,
},
[0x1D1CC]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-0x0001",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D1CC, -- 𝇌
+ category="so",
+ description="MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-0x0001",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D1CC,
},
[0x1D1CD]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D1CD, -- 𝇍
+ category="so",
+ description="MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-0x0002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D1CD,
},
[0x1D1CE]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-0x0003",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D1CE, -- 𝇎
+ category="so",
+ description="MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-0x0003",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D1CE,
},
[0x1D1CF]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL CROIX",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D1CF, -- 𝇏
+ category="so",
+ description="MUSICAL SYMBOL CROIX",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D1CF,
},
[0x1D1D0]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL GREGORIAN C CLEF",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D1D0, -- 𝇐
+ category="so",
+ description="MUSICAL SYMBOL GREGORIAN C CLEF",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D1D0,
},
[0x1D1D1]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL GREGORIAN F CLEF",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D1D1, -- 𝇑
+ category="so",
+ description="MUSICAL SYMBOL GREGORIAN F CLEF",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D1D1,
},
[0x1D1D2]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL SQUARE B",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D1D2, -- 𝇒
+ category="so",
+ description="MUSICAL SYMBOL SQUARE B",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D1D2,
},
[0x1D1D3]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL VIRGA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D1D3, -- 𝇓
+ category="so",
+ description="MUSICAL SYMBOL VIRGA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D1D3,
},
[0x1D1D4]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL PODATUS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D1D4, -- 𝇔
+ category="so",
+ description="MUSICAL SYMBOL PODATUS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D1D4,
},
[0x1D1D5]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL CLIVIS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D1D5, -- 𝇕
+ category="so",
+ description="MUSICAL SYMBOL CLIVIS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D1D5,
},
[0x1D1D6]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL SCANDICUS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D1D6, -- 𝇖
+ category="so",
+ description="MUSICAL SYMBOL SCANDICUS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D1D6,
},
[0x1D1D7]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL CLIMACUS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D1D7, -- 𝇗
+ category="so",
+ description="MUSICAL SYMBOL CLIMACUS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D1D7,
},
[0x1D1D8]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL TORCULUS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D1D8, -- 𝇘
+ category="so",
+ description="MUSICAL SYMBOL TORCULUS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D1D8,
},
[0x1D1D9]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL PORRECTUS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D1D9, -- 𝇙
+ category="so",
+ description="MUSICAL SYMBOL PORRECTUS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D1D9,
},
[0x1D1DA]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL PORRECTUS FLEXUS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D1DA, -- 𝇚
+ category="so",
+ description="MUSICAL SYMBOL PORRECTUS FLEXUS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D1DA,
},
[0x1D1DB]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL SCANDICUS FLEXUS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D1DB, -- 𝇛
+ category="so",
+ description="MUSICAL SYMBOL SCANDICUS FLEXUS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D1DB,
},
[0x1D1DC]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL TORCULUS RESUPINUS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D1DC, -- 𝇜
+ category="so",
+ description="MUSICAL SYMBOL TORCULUS RESUPINUS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D1DC,
},
[0x1D1DD]={
- ["category"]="so",
- ["description"]="MUSICAL SYMBOL PES SUBPUNCTIS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D1DD, -- 𝇝
+ category="so",
+ description="MUSICAL SYMBOL PES SUBPUNCTIS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D1DD,
},
[0x1D200]={
- ["category"]="so",
- ["description"]="GREEK VOCAL NOTATION SYMBOL-0x0001",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D200, -- 𝈀
+ category="so",
+ description="GREEK VOCAL NOTATION SYMBOL-0x0001",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D200,
},
[0x1D201]={
- ["category"]="so",
- ["description"]="GREEK VOCAL NOTATION SYMBOL-0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D201, -- 𝈁
+ category="so",
+ description="GREEK VOCAL NOTATION SYMBOL-0x0002",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D201,
},
[0x1D202]={
- ["category"]="so",
- ["description"]="GREEK VOCAL NOTATION SYMBOL-0x0003",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D202, -- 𝈂
+ category="so",
+ description="GREEK VOCAL NOTATION SYMBOL-0x0003",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D202,
},
[0x1D203]={
- ["category"]="so",
- ["description"]="GREEK VOCAL NOTATION SYMBOL-0x0004",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D203, -- 𝈃
+ category="so",
+ description="GREEK VOCAL NOTATION SYMBOL-0x0004",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D203,
},
[0x1D204]={
- ["category"]="so",
- ["description"]="GREEK VOCAL NOTATION SYMBOL-0x0005",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D204, -- 𝈄
+ category="so",
+ description="GREEK VOCAL NOTATION SYMBOL-0x0005",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D204,
},
[0x1D205]={
- ["category"]="so",
- ["description"]="GREEK VOCAL NOTATION SYMBOL-0x0006",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D205, -- 𝈅
+ category="so",
+ description="GREEK VOCAL NOTATION SYMBOL-0x0006",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D205,
},
[0x1D206]={
- ["category"]="so",
- ["description"]="GREEK VOCAL NOTATION SYMBOL-0x0007",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D206, -- 𝈆
+ category="so",
+ description="GREEK VOCAL NOTATION SYMBOL-0x0007",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D206,
},
[0x1D207]={
- ["category"]="so",
- ["description"]="GREEK VOCAL NOTATION SYMBOL-0x0008",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D207, -- 𝈇
+ category="so",
+ description="GREEK VOCAL NOTATION SYMBOL-0x0008",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D207,
},
[0x1D208]={
- ["category"]="so",
- ["description"]="GREEK VOCAL NOTATION SYMBOL-0x0009",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D208, -- 𝈈
+ category="so",
+ description="GREEK VOCAL NOTATION SYMBOL-0x0009",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D208,
},
[0x1D209]={
- ["category"]="so",
- ["description"]="GREEK VOCAL NOTATION SYMBOL-0x000A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D209, -- 𝈉
+ category="so",
+ description="GREEK VOCAL NOTATION SYMBOL-0x000A",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D209,
},
[0x1D20A]={
- ["category"]="so",
- ["description"]="GREEK VOCAL NOTATION SYMBOL-0x000B",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D20A, -- 𝈊
+ category="so",
+ description="GREEK VOCAL NOTATION SYMBOL-0x000B",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D20A,
},
[0x1D20B]={
- ["category"]="so",
- ["description"]="GREEK VOCAL NOTATION SYMBOL-0x000C",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D20B, -- 𝈋
+ category="so",
+ description="GREEK VOCAL NOTATION SYMBOL-0x000C",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D20B,
},
[0x1D20C]={
- ["category"]="so",
- ["description"]="GREEK VOCAL NOTATION SYMBOL-0x000D",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D20C, -- 𝈌
+ category="so",
+ description="GREEK VOCAL NOTATION SYMBOL-0x000D",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D20C,
},
[0x1D20D]={
- ["category"]="so",
- ["description"]="GREEK VOCAL NOTATION SYMBOL-0x000E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D20D, -- 𝈍
+ category="so",
+ description="GREEK VOCAL NOTATION SYMBOL-0x000E",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D20D,
},
[0x1D20E]={
- ["category"]="so",
- ["description"]="GREEK VOCAL NOTATION SYMBOL-0x000F",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D20E, -- 𝈎
+ category="so",
+ description="GREEK VOCAL NOTATION SYMBOL-0x000F",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D20E,
},
[0x1D20F]={
- ["category"]="so",
- ["description"]="GREEK VOCAL NOTATION SYMBOL-0x0010",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D20F, -- 𝈏
+ category="so",
+ description="GREEK VOCAL NOTATION SYMBOL-0x0010",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D20F,
},
[0x1D210]={
- ["category"]="so",
- ["description"]="GREEK VOCAL NOTATION SYMBOL-0x0011",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D210, -- 𝈐
+ category="so",
+ description="GREEK VOCAL NOTATION SYMBOL-0x0011",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D210,
},
[0x1D211]={
- ["category"]="so",
- ["description"]="GREEK VOCAL NOTATION SYMBOL-0x0012",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D211, -- 𝈑
+ category="so",
+ description="GREEK VOCAL NOTATION SYMBOL-0x0012",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D211,
},
[0x1D212]={
- ["category"]="so",
- ["description"]="GREEK VOCAL NOTATION SYMBOL-0x0013",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D212, -- 𝈒
+ category="so",
+ description="GREEK VOCAL NOTATION SYMBOL-0x0013",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D212,
},
[0x1D213]={
- ["category"]="so",
- ["description"]="GREEK VOCAL NOTATION SYMBOL-0x0014",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D213, -- 𝈓
+ category="so",
+ description="GREEK VOCAL NOTATION SYMBOL-0x0014",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D213,
},
[0x1D214]={
- ["category"]="so",
- ["description"]="GREEK VOCAL NOTATION SYMBOL-0x0015",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D214, -- 𝈔
+ category="so",
+ description="GREEK VOCAL NOTATION SYMBOL-0x0015",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D214,
},
[0x1D215]={
- ["category"]="so",
- ["description"]="GREEK VOCAL NOTATION SYMBOL-0x0016",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D215, -- 𝈕
+ category="so",
+ description="GREEK VOCAL NOTATION SYMBOL-0x0016",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D215,
},
[0x1D216]={
- ["category"]="so",
- ["description"]="GREEK VOCAL NOTATION SYMBOL-0x0017",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D216, -- 𝈖
+ category="so",
+ description="GREEK VOCAL NOTATION SYMBOL-0x0017",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D216,
},
[0x1D217]={
- ["category"]="so",
- ["description"]="GREEK VOCAL NOTATION SYMBOL-0x0018",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D217, -- 𝈗
+ category="so",
+ description="GREEK VOCAL NOTATION SYMBOL-0x0018",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D217,
},
[0x1D218]={
- ["category"]="so",
- ["description"]="GREEK VOCAL NOTATION SYMBOL-0x0032",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D218, -- 𝈘
+ category="so",
+ description="GREEK VOCAL NOTATION SYMBOL-0x0032",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D218,
},
[0x1D219]={
- ["category"]="so",
- ["description"]="GREEK VOCAL NOTATION SYMBOL-0x0033",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D219, -- 𝈙
+ category="so",
+ description="GREEK VOCAL NOTATION SYMBOL-0x0033",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D219,
},
[0x1D21A]={
- ["category"]="so",
- ["description"]="GREEK VOCAL NOTATION SYMBOL-0x0034",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D21A, -- 𝈚
+ category="so",
+ description="GREEK VOCAL NOTATION SYMBOL-0x0034",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D21A,
},
[0x1D21B]={
- ["category"]="so",
- ["description"]="GREEK VOCAL NOTATION SYMBOL-0x0035",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D21B, -- 𝈛
+ category="so",
+ description="GREEK VOCAL NOTATION SYMBOL-0x0035",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D21B,
},
[0x1D21C]={
- ["category"]="so",
- ["description"]="GREEK VOCAL NOTATION SYMBOL-0x0036",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D21C, -- 𝈜
+ category="so",
+ description="GREEK VOCAL NOTATION SYMBOL-0x0036",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D21C,
},
[0x1D21D]={
- ["category"]="so",
- ["description"]="GREEK INSTRUMENTAL NOTATION SYMBOL-0x0001",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D21D, -- 𝈝
+ category="so",
+ description="GREEK INSTRUMENTAL NOTATION SYMBOL-0x0001",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D21D,
},
[0x1D21E]={
- ["category"]="so",
- ["description"]="GREEK INSTRUMENTAL NOTATION SYMBOL-0x0002",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D21E, -- 𝈞
+ category="so",
+ description="GREEK INSTRUMENTAL NOTATION SYMBOL-0x0002",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D21E,
},
[0x1D21F]={
- ["category"]="so",
- ["description"]="GREEK INSTRUMENTAL NOTATION SYMBOL-0x0004",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D21F, -- 𝈟
+ category="so",
+ description="GREEK INSTRUMENTAL NOTATION SYMBOL-0x0004",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D21F,
},
[0x1D220]={
- ["category"]="so",
- ["description"]="GREEK INSTRUMENTAL NOTATION SYMBOL-0x0005",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D220, -- 𝈠
+ category="so",
+ description="GREEK INSTRUMENTAL NOTATION SYMBOL-0x0005",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D220,
},
[0x1D221]={
- ["category"]="so",
- ["description"]="GREEK INSTRUMENTAL NOTATION SYMBOL-0x0007",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D221, -- 𝈡
+ category="so",
+ description="GREEK INSTRUMENTAL NOTATION SYMBOL-0x0007",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D221,
},
[0x1D222]={
- ["category"]="so",
- ["description"]="GREEK INSTRUMENTAL NOTATION SYMBOL-0x0008",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D222, -- 𝈢
+ category="so",
+ description="GREEK INSTRUMENTAL NOTATION SYMBOL-0x0008",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D222,
},
[0x1D223]={
- ["category"]="so",
- ["description"]="GREEK INSTRUMENTAL NOTATION SYMBOL-0x000B",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D223, -- 𝈣
+ category="so",
+ description="GREEK INSTRUMENTAL NOTATION SYMBOL-0x000B",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D223,
},
[0x1D224]={
- ["category"]="so",
- ["description"]="GREEK INSTRUMENTAL NOTATION SYMBOL-0x000C",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D224, -- 𝈤
+ category="so",
+ description="GREEK INSTRUMENTAL NOTATION SYMBOL-0x000C",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D224,
},
[0x1D225]={
- ["category"]="so",
- ["description"]="GREEK INSTRUMENTAL NOTATION SYMBOL-0x000D",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D225, -- 𝈥
+ category="so",
+ description="GREEK INSTRUMENTAL NOTATION SYMBOL-0x000D",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D225,
},
[0x1D226]={
- ["category"]="so",
- ["description"]="GREEK INSTRUMENTAL NOTATION SYMBOL-0x000E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D226, -- 𝈦
+ category="so",
+ description="GREEK INSTRUMENTAL NOTATION SYMBOL-0x000E",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D226,
},
[0x1D227]={
- ["category"]="so",
- ["description"]="GREEK INSTRUMENTAL NOTATION SYMBOL-0x0011",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D227, -- 𝈧
+ category="so",
+ description="GREEK INSTRUMENTAL NOTATION SYMBOL-0x0011",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D227,
},
[0x1D228]={
- ["category"]="so",
- ["description"]="GREEK INSTRUMENTAL NOTATION SYMBOL-0x0012",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D228, -- 𝈨
+ category="so",
+ description="GREEK INSTRUMENTAL NOTATION SYMBOL-0x0012",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D228,
},
[0x1D229]={
- ["category"]="so",
- ["description"]="GREEK INSTRUMENTAL NOTATION SYMBOL-0x0013",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D229, -- 𝈩
+ category="so",
+ description="GREEK INSTRUMENTAL NOTATION SYMBOL-0x0013",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D229,
},
[0x1D22A]={
- ["category"]="so",
- ["description"]="GREEK INSTRUMENTAL NOTATION SYMBOL-0x0017",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D22A, -- 𝈪
+ category="so",
+ description="GREEK INSTRUMENTAL NOTATION SYMBOL-0x0017",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D22A,
},
[0x1D22B]={
- ["category"]="so",
- ["description"]="GREEK INSTRUMENTAL NOTATION SYMBOL-0x0018",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D22B, -- 𝈫
+ category="so",
+ description="GREEK INSTRUMENTAL NOTATION SYMBOL-0x0018",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D22B,
},
[0x1D22C]={
- ["category"]="so",
- ["description"]="GREEK INSTRUMENTAL NOTATION SYMBOL-0x0019",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D22C, -- 𝈬
+ category="so",
+ description="GREEK INSTRUMENTAL NOTATION SYMBOL-0x0019",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D22C,
},
[0x1D22D]={
- ["category"]="so",
- ["description"]="GREEK INSTRUMENTAL NOTATION SYMBOL-0x001A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D22D, -- 𝈭
+ category="so",
+ description="GREEK INSTRUMENTAL NOTATION SYMBOL-0x001A",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D22D,
},
[0x1D22E]={
- ["category"]="so",
- ["description"]="GREEK INSTRUMENTAL NOTATION SYMBOL-0x001B",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D22E, -- 𝈮
+ category="so",
+ description="GREEK INSTRUMENTAL NOTATION SYMBOL-0x001B",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D22E,
},
[0x1D22F]={
- ["category"]="so",
- ["description"]="GREEK INSTRUMENTAL NOTATION SYMBOL-0x001D",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D22F, -- 𝈯
+ category="so",
+ description="GREEK INSTRUMENTAL NOTATION SYMBOL-0x001D",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D22F,
},
[0x1D230]={
- ["category"]="so",
- ["description"]="GREEK INSTRUMENTAL NOTATION SYMBOL-0x001E",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D230, -- 𝈰
+ category="so",
+ description="GREEK INSTRUMENTAL NOTATION SYMBOL-0x001E",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D230,
},
[0x1D231]={
- ["category"]="so",
- ["description"]="GREEK INSTRUMENTAL NOTATION SYMBOL-0x0020",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D231, -- 𝈱
+ category="so",
+ description="GREEK INSTRUMENTAL NOTATION SYMBOL-0x0020",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D231,
},
[0x1D232]={
- ["category"]="so",
- ["description"]="GREEK INSTRUMENTAL NOTATION SYMBOL-0x0024",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D232, -- 𝈲
+ category="so",
+ description="GREEK INSTRUMENTAL NOTATION SYMBOL-0x0024",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D232,
},
[0x1D233]={
- ["category"]="so",
- ["description"]="GREEK INSTRUMENTAL NOTATION SYMBOL-0x0025",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D233, -- 𝈳
+ category="so",
+ description="GREEK INSTRUMENTAL NOTATION SYMBOL-0x0025",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D233,
},
[0x1D234]={
- ["category"]="so",
- ["description"]="GREEK INSTRUMENTAL NOTATION SYMBOL-0x0026",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D234, -- 𝈴
+ category="so",
+ description="GREEK INSTRUMENTAL NOTATION SYMBOL-0x0026",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D234,
},
[0x1D235]={
- ["category"]="so",
- ["description"]="GREEK INSTRUMENTAL NOTATION SYMBOL-0x0027",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D235, -- 𝈵
+ category="so",
+ description="GREEK INSTRUMENTAL NOTATION SYMBOL-0x0027",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D235,
},
[0x1D236]={
- ["category"]="so",
- ["description"]="GREEK INSTRUMENTAL NOTATION SYMBOL-0x0028",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D236, -- 𝈶
+ category="so",
+ description="GREEK INSTRUMENTAL NOTATION SYMBOL-0x0028",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D236,
},
[0x1D237]={
- ["category"]="so",
- ["description"]="GREEK INSTRUMENTAL NOTATION SYMBOL-0x002A",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D237, -- 𝈷
+ category="so",
+ description="GREEK INSTRUMENTAL NOTATION SYMBOL-0x002A",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D237,
},
[0x1D238]={
- ["category"]="so",
- ["description"]="GREEK INSTRUMENTAL NOTATION SYMBOL-0x002B",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D238, -- 𝈸
+ category="so",
+ description="GREEK INSTRUMENTAL NOTATION SYMBOL-0x002B",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D238,
},
[0x1D239]={
- ["category"]="so",
- ["description"]="GREEK INSTRUMENTAL NOTATION SYMBOL-0x002D",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D239, -- 𝈹
+ category="so",
+ description="GREEK INSTRUMENTAL NOTATION SYMBOL-0x002D",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D239,
},
[0x1D23A]={
- ["category"]="so",
- ["description"]="GREEK INSTRUMENTAL NOTATION SYMBOL-0x002F",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D23A, -- 𝈺
+ category="so",
+ description="GREEK INSTRUMENTAL NOTATION SYMBOL-0x002F",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D23A,
},
[0x1D23B]={
- ["category"]="so",
- ["description"]="GREEK INSTRUMENTAL NOTATION SYMBOL-0x0030",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D23B, -- 𝈻
+ category="so",
+ description="GREEK INSTRUMENTAL NOTATION SYMBOL-0x0030",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D23B,
},
[0x1D23C]={
- ["category"]="so",
- ["description"]="GREEK INSTRUMENTAL NOTATION SYMBOL-0x0031",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D23C, -- 𝈼
+ category="so",
+ description="GREEK INSTRUMENTAL NOTATION SYMBOL-0x0031",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D23C,
},
[0x1D23D]={
- ["category"]="so",
- ["description"]="GREEK INSTRUMENTAL NOTATION SYMBOL-0x0032",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D23D, -- 𝈽
+ category="so",
+ description="GREEK INSTRUMENTAL NOTATION SYMBOL-0x0032",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D23D,
},
[0x1D23E]={
- ["category"]="so",
- ["description"]="GREEK INSTRUMENTAL NOTATION SYMBOL-0x0033",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D23E, -- 𝈾
+ category="so",
+ description="GREEK INSTRUMENTAL NOTATION SYMBOL-0x0033",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D23E,
},
[0x1D23F]={
- ["category"]="so",
- ["description"]="GREEK INSTRUMENTAL NOTATION SYMBOL-0x0034",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D23F, -- 𝈿
+ category="so",
+ description="GREEK INSTRUMENTAL NOTATION SYMBOL-0x0034",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D23F,
},
[0x1D240]={
- ["category"]="so",
- ["description"]="GREEK INSTRUMENTAL NOTATION SYMBOL-0x0035",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D240, -- 𝉀
+ category="so",
+ description="GREEK INSTRUMENTAL NOTATION SYMBOL-0x0035",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D240,
},
[0x1D241]={
- ["category"]="so",
- ["description"]="GREEK INSTRUMENTAL NOTATION SYMBOL-0x0036",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D241, -- 𝉁
+ category="so",
+ description="GREEK INSTRUMENTAL NOTATION SYMBOL-0x0036",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D241,
},
[0x1D242]={
- ["category"]="mn",
- ["description"]="COMBINING GREEK MUSICAL TRISEME",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1D242, -- 𝉂
+ category="mn",
+ description="COMBINING GREEK MUSICAL TRISEME",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1D242,
},
[0x1D243]={
- ["category"]="mn",
- ["description"]="COMBINING GREEK MUSICAL TETRASEME",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1D243, -- 𝉃
+ category="mn",
+ description="COMBINING GREEK MUSICAL TETRASEME",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1D243,
},
[0x1D244]={
- ["category"]="mn",
- ["description"]="COMBINING GREEK MUSICAL PENTASEME",
- ["linebreak"]="cm",
- ["unicodeslot"]=0x1D244, -- 𝉄
+ category="mn",
+ description="COMBINING GREEK MUSICAL PENTASEME",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1D244,
},
[0x1D245]={
- ["category"]="so",
- ["description"]="GREEK MUSICAL LEIMMA",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D245, -- 𝉅
+ category="so",
+ description="GREEK MUSICAL LEIMMA",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D245,
},
[0x1D300]={
- ["category"]="so",
- ["description"]="MONOGRAM FOR EARTH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D300, -- 𝌀
+ category="so",
+ description="MONOGRAM FOR EARTH",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D300,
},
[0x1D301]={
- ["category"]="so",
- ["description"]="DIGRAM FOR HEAVENLY EARTH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D301, -- 𝌁
+ category="so",
+ description="DIGRAM FOR HEAVENLY EARTH",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D301,
},
[0x1D302]={
- ["category"]="so",
- ["description"]="DIGRAM FOR HUMAN EARTH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D302, -- 𝌂
+ category="so",
+ description="DIGRAM FOR HUMAN EARTH",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D302,
},
[0x1D303]={
- ["category"]="so",
- ["description"]="DIGRAM FOR EARTHLY HEAVEN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D303, -- 𝌃
+ category="so",
+ description="DIGRAM FOR EARTHLY HEAVEN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D303,
},
[0x1D304]={
- ["category"]="so",
- ["description"]="DIGRAM FOR EARTHLY HUMAN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D304, -- 𝌄
+ category="so",
+ description="DIGRAM FOR EARTHLY HUMAN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D304,
},
[0x1D305]={
- ["category"]="so",
- ["description"]="DIGRAM FOR EARTH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D305, -- 𝌅
+ category="so",
+ description="DIGRAM FOR EARTH",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D305,
},
[0x1D306]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR CENTRE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D306, -- 𝌆
+ category="so",
+ description="TETRAGRAM FOR CENTRE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D306,
},
[0x1D307]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR FULL CIRCLE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D307, -- 𝌇
+ category="so",
+ description="TETRAGRAM FOR FULL CIRCLE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D307,
},
[0x1D308]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR MIRED",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D308, -- 𝌈
+ category="so",
+ description="TETRAGRAM FOR MIRED",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D308,
},
[0x1D309]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR BARRIER",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D309, -- 𝌉
+ category="so",
+ description="TETRAGRAM FOR BARRIER",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D309,
},
[0x1D30A]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR KEEPING SMALL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D30A, -- 𝌊
+ category="so",
+ description="TETRAGRAM FOR KEEPING SMALL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D30A,
},
[0x1D30B]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR CONTRARIETY",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D30B, -- 𝌋
+ category="so",
+ description="TETRAGRAM FOR CONTRARIETY",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D30B,
},
[0x1D30C]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR ASCENT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D30C, -- 𝌌
+ category="so",
+ description="TETRAGRAM FOR ASCENT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D30C,
},
[0x1D30D]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR OPPOSITION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D30D, -- 𝌍
+ category="so",
+ description="TETRAGRAM FOR OPPOSITION",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D30D,
},
[0x1D30E]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR BRANCHING OUT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D30E, -- 𝌎
+ category="so",
+ description="TETRAGRAM FOR BRANCHING OUT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D30E,
},
[0x1D30F]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR DEFECTIVENESS OR DISTORTION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D30F, -- 𝌏
+ category="so",
+ description="TETRAGRAM FOR DEFECTIVENESS OR DISTORTION",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D30F,
},
[0x1D310]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR DIVERGENCE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D310, -- 𝌐
+ category="so",
+ description="TETRAGRAM FOR DIVERGENCE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D310,
},
[0x1D311]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR YOUTHFULNESS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D311, -- 𝌑
+ category="so",
+ description="TETRAGRAM FOR YOUTHFULNESS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D311,
},
[0x1D312]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR INCREASE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D312, -- 𝌒
+ category="so",
+ description="TETRAGRAM FOR INCREASE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D312,
},
[0x1D313]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR PENETRATION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D313, -- 𝌓
+ category="so",
+ description="TETRAGRAM FOR PENETRATION",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D313,
},
[0x1D314]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR REACH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D314, -- 𝌔
+ category="so",
+ description="TETRAGRAM FOR REACH",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D314,
},
[0x1D315]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR CONTACT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D315, -- 𝌕
+ category="so",
+ description="TETRAGRAM FOR CONTACT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D315,
},
[0x1D316]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR HOLDING BACK",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D316, -- 𝌖
+ category="so",
+ description="TETRAGRAM FOR HOLDING BACK",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D316,
},
[0x1D317]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR WAITING",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D317, -- 𝌗
+ category="so",
+ description="TETRAGRAM FOR WAITING",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D317,
},
[0x1D318]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR FOLLOWING",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D318, -- 𝌘
+ category="so",
+ description="TETRAGRAM FOR FOLLOWING",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D318,
},
[0x1D319]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR ADVANCE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D319, -- 𝌙
+ category="so",
+ description="TETRAGRAM FOR ADVANCE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D319,
},
[0x1D31A]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR RELEASE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D31A, -- 𝌚
+ category="so",
+ description="TETRAGRAM FOR RELEASE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D31A,
},
[0x1D31B]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR RESISTANCE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D31B, -- 𝌛
+ category="so",
+ description="TETRAGRAM FOR RESISTANCE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D31B,
},
[0x1D31C]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR EASE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D31C, -- 𝌜
+ category="so",
+ description="TETRAGRAM FOR EASE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D31C,
},
[0x1D31D]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR JOY",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D31D, -- 𝌝
+ category="so",
+ description="TETRAGRAM FOR JOY",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D31D,
},
[0x1D31E]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR CONTENTION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D31E, -- 𝌞
+ category="so",
+ description="TETRAGRAM FOR CONTENTION",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D31E,
},
[0x1D31F]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR ENDEAVOUR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D31F, -- 𝌟
+ category="so",
+ description="TETRAGRAM FOR ENDEAVOUR",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D31F,
},
[0x1D320]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR DUTIES",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D320, -- 𝌠
+ category="so",
+ description="TETRAGRAM FOR DUTIES",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D320,
},
[0x1D321]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR CHANGE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D321, -- 𝌡
+ category="so",
+ description="TETRAGRAM FOR CHANGE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D321,
},
[0x1D322]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR DECISIVENESS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D322, -- 𝌢
+ category="so",
+ description="TETRAGRAM FOR DECISIVENESS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D322,
},
[0x1D323]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR BOLD RESOLUTION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D323, -- 𝌣
+ category="so",
+ description="TETRAGRAM FOR BOLD RESOLUTION",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D323,
},
[0x1D324]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR PACKING",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D324, -- 𝌤
+ category="so",
+ description="TETRAGRAM FOR PACKING",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D324,
},
[0x1D325]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR LEGION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D325, -- 𝌥
+ category="so",
+ description="TETRAGRAM FOR LEGION",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D325,
},
[0x1D326]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR CLOSENESS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D326, -- 𝌦
+ category="so",
+ description="TETRAGRAM FOR CLOSENESS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D326,
},
[0x1D327]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR KINSHIP",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D327, -- 𝌧
+ category="so",
+ description="TETRAGRAM FOR KINSHIP",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D327,
},
[0x1D328]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR GATHERING",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D328, -- 𝌨
+ category="so",
+ description="TETRAGRAM FOR GATHERING",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D328,
},
[0x1D329]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR STRENGTH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D329, -- 𝌩
+ category="so",
+ description="TETRAGRAM FOR STRENGTH",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D329,
},
[0x1D32A]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR PURITY",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D32A, -- 𝌪
+ category="so",
+ description="TETRAGRAM FOR PURITY",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D32A,
},
[0x1D32B]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR FULLNESS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D32B, -- 𝌫
+ category="so",
+ description="TETRAGRAM FOR FULLNESS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D32B,
},
[0x1D32C]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR RESIDENCE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D32C, -- 𝌬
+ category="so",
+ description="TETRAGRAM FOR RESIDENCE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D32C,
},
[0x1D32D]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR LAW OR MODEL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D32D, -- 𝌭
+ category="so",
+ description="TETRAGRAM FOR LAW OR MODEL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D32D,
},
[0x1D32E]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR RESPONSE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D32E, -- 𝌮
+ category="so",
+ description="TETRAGRAM FOR RESPONSE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D32E,
},
[0x1D32F]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR GOING TO MEET",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D32F, -- 𝌯
+ category="so",
+ description="TETRAGRAM FOR GOING TO MEET",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D32F,
},
[0x1D330]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR ENCOUNTERS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D330, -- 𝌰
+ category="so",
+ description="TETRAGRAM FOR ENCOUNTERS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D330,
},
[0x1D331]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR STOVE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D331, -- 𝌱
+ category="so",
+ description="TETRAGRAM FOR STOVE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D331,
},
[0x1D332]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR GREATNESS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D332, -- 𝌲
+ category="so",
+ description="TETRAGRAM FOR GREATNESS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D332,
},
[0x1D333]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR ENLARGEMENT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D333, -- 𝌳
+ category="so",
+ description="TETRAGRAM FOR ENLARGEMENT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D333,
},
[0x1D334]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR PATTERN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D334, -- 𝌴
+ category="so",
+ description="TETRAGRAM FOR PATTERN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D334,
},
[0x1D335]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR RITUAL",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D335, -- 𝌵
+ category="so",
+ description="TETRAGRAM FOR RITUAL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D335,
},
[0x1D336]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR FLIGHT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D336, -- 𝌶
+ category="so",
+ description="TETRAGRAM FOR FLIGHT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D336,
},
[0x1D337]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR VASTNESS OR WASTING",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D337, -- 𝌷
+ category="so",
+ description="TETRAGRAM FOR VASTNESS OR WASTING",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D337,
},
[0x1D338]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR CONSTANCY",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D338, -- 𝌸
+ category="so",
+ description="TETRAGRAM FOR CONSTANCY",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D338,
},
[0x1D339]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR MEASURE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D339, -- 𝌹
+ category="so",
+ description="TETRAGRAM FOR MEASURE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D339,
},
[0x1D33A]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR ETERNITY",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D33A, -- 𝌺
+ category="so",
+ description="TETRAGRAM FOR ETERNITY",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D33A,
},
[0x1D33B]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR UNITY",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D33B, -- 𝌻
+ category="so",
+ description="TETRAGRAM FOR UNITY",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D33B,
},
[0x1D33C]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR DIMINISHMENT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D33C, -- 𝌼
+ category="so",
+ description="TETRAGRAM FOR DIMINISHMENT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D33C,
},
[0x1D33D]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR CLOSED MOUTH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D33D, -- 𝌽
+ category="so",
+ description="TETRAGRAM FOR CLOSED MOUTH",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D33D,
},
[0x1D33E]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR GUARDEDNESS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D33E, -- 𝌾
+ category="so",
+ description="TETRAGRAM FOR GUARDEDNESS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D33E,
},
[0x1D33F]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR GATHERING IN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D33F, -- 𝌿
+ category="so",
+ description="TETRAGRAM FOR GATHERING IN",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D33F,
},
[0x1D340]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR MASSING",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D340, -- 𝍀
+ category="so",
+ description="TETRAGRAM FOR MASSING",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D340,
},
[0x1D341]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR ACCUMULATION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D341, -- 𝍁
+ category="so",
+ description="TETRAGRAM FOR ACCUMULATION",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D341,
},
[0x1D342]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR EMBELLISHMENT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D342, -- 𝍂
+ category="so",
+ description="TETRAGRAM FOR EMBELLISHMENT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D342,
},
[0x1D343]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR DOUBT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D343, -- 𝍃
+ category="so",
+ description="TETRAGRAM FOR DOUBT",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D343,
},
[0x1D344]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR WATCH",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D344, -- 𝍄
+ category="so",
+ description="TETRAGRAM FOR WATCH",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D344,
},
[0x1D345]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR SINKING",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D345, -- 𝍅
+ category="so",
+ description="TETRAGRAM FOR SINKING",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D345,
},
[0x1D346]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR INNER",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D346, -- 𝍆
+ category="so",
+ description="TETRAGRAM FOR INNER",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D346,
},
[0x1D347]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR DEPARTURE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D347, -- 𝍇
+ category="so",
+ description="TETRAGRAM FOR DEPARTURE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D347,
},
[0x1D348]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR DARKENING",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D348, -- 𝍈
+ category="so",
+ description="TETRAGRAM FOR DARKENING",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D348,
},
[0x1D349]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR DIMMING",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D349, -- 𝍉
+ category="so",
+ description="TETRAGRAM FOR DIMMING",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D349,
},
[0x1D34A]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR EXHAUSTION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D34A, -- 𝍊
+ category="so",
+ description="TETRAGRAM FOR EXHAUSTION",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D34A,
},
[0x1D34B]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR SEVERANCE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D34B, -- 𝍋
+ category="so",
+ description="TETRAGRAM FOR SEVERANCE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D34B,
},
[0x1D34C]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR STOPPAGE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D34C, -- 𝍌
+ category="so",
+ description="TETRAGRAM FOR STOPPAGE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D34C,
},
[0x1D34D]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR HARDNESS",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D34D, -- 𝍍
+ category="so",
+ description="TETRAGRAM FOR HARDNESS",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D34D,
},
[0x1D34E]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR COMPLETION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D34E, -- 𝍎
+ category="so",
+ description="TETRAGRAM FOR COMPLETION",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D34E,
},
[0x1D34F]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR CLOSURE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D34F, -- 𝍏
+ category="so",
+ description="TETRAGRAM FOR CLOSURE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D34F,
},
[0x1D350]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR FAILURE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D350, -- 𝍐
+ category="so",
+ description="TETRAGRAM FOR FAILURE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D350,
},
[0x1D351]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR AGGRAVATION",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D351, -- 𝍑
+ category="so",
+ description="TETRAGRAM FOR AGGRAVATION",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D351,
},
[0x1D352]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR COMPLIANCE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D352, -- 𝍒
+ category="so",
+ description="TETRAGRAM FOR COMPLIANCE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D352,
},
[0x1D353]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR ON THE VERGE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D353, -- 𝍓
+ category="so",
+ description="TETRAGRAM FOR ON THE VERGE",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D353,
},
[0x1D354]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR DIFFICULTIES",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D354, -- 𝍔
+ category="so",
+ description="TETRAGRAM FOR DIFFICULTIES",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D354,
},
[0x1D355]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR LABOURING",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D355, -- 𝍕
+ category="so",
+ description="TETRAGRAM FOR LABOURING",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D355,
},
[0x1D356]={
- ["category"]="so",
- ["description"]="TETRAGRAM FOR FOSTERING",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D356, -- 𝍖
+ category="so",
+ description="TETRAGRAM FOR FOSTERING",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D356,
},
[0x1D360]={
- ["category"]="no",
- ["description"]="COUNTING ROD UNIT DIGIT ONE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D360, -- 𝍠
+ category="no",
+ description="COUNTING ROD UNIT DIGIT ONE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D360,
},
[0x1D361]={
- ["category"]="no",
- ["description"]="COUNTING ROD UNIT DIGIT TWO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D361, -- 𝍡
+ category="no",
+ description="COUNTING ROD UNIT DIGIT TWO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D361,
},
[0x1D362]={
- ["category"]="no",
- ["description"]="COUNTING ROD UNIT DIGIT THREE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D362, -- 𝍢
+ category="no",
+ description="COUNTING ROD UNIT DIGIT THREE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D362,
},
[0x1D363]={
- ["category"]="no",
- ["description"]="COUNTING ROD UNIT DIGIT FOUR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D363, -- 𝍣
+ category="no",
+ description="COUNTING ROD UNIT DIGIT FOUR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D363,
},
[0x1D364]={
- ["category"]="no",
- ["description"]="COUNTING ROD UNIT DIGIT FIVE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D364, -- 𝍤
+ category="no",
+ description="COUNTING ROD UNIT DIGIT FIVE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D364,
},
[0x1D365]={
- ["category"]="no",
- ["description"]="COUNTING ROD UNIT DIGIT SIX",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D365, -- 𝍥
+ category="no",
+ description="COUNTING ROD UNIT DIGIT SIX",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D365,
},
[0x1D366]={
- ["category"]="no",
- ["description"]="COUNTING ROD UNIT DIGIT SEVEN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D366, -- 𝍦
+ category="no",
+ description="COUNTING ROD UNIT DIGIT SEVEN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D366,
},
[0x1D367]={
- ["category"]="no",
- ["description"]="COUNTING ROD UNIT DIGIT EIGHT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D367, -- 𝍧
+ category="no",
+ description="COUNTING ROD UNIT DIGIT EIGHT",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D367,
},
[0x1D368]={
- ["category"]="no",
- ["description"]="COUNTING ROD UNIT DIGIT NINE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D368, -- 𝍨
+ category="no",
+ description="COUNTING ROD UNIT DIGIT NINE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D368,
},
[0x1D369]={
- ["category"]="no",
- ["description"]="COUNTING ROD TENS DIGIT ONE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D369, -- 𝍩
+ category="no",
+ description="COUNTING ROD TENS DIGIT ONE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D369,
},
[0x1D36A]={
- ["category"]="no",
- ["description"]="COUNTING ROD TENS DIGIT TWO",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D36A, -- 𝍪
+ category="no",
+ description="COUNTING ROD TENS DIGIT TWO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D36A,
},
[0x1D36B]={
- ["category"]="no",
- ["description"]="COUNTING ROD TENS DIGIT THREE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D36B, -- 𝍫
+ category="no",
+ description="COUNTING ROD TENS DIGIT THREE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D36B,
},
[0x1D36C]={
- ["category"]="no",
- ["description"]="COUNTING ROD TENS DIGIT FOUR",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D36C, -- 𝍬
+ category="no",
+ description="COUNTING ROD TENS DIGIT FOUR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D36C,
},
[0x1D36D]={
- ["category"]="no",
- ["description"]="COUNTING ROD TENS DIGIT FIVE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D36D, -- 𝍭
+ category="no",
+ description="COUNTING ROD TENS DIGIT FIVE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D36D,
},
[0x1D36E]={
- ["category"]="no",
- ["description"]="COUNTING ROD TENS DIGIT SIX",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D36E, -- 𝍮
+ category="no",
+ description="COUNTING ROD TENS DIGIT SIX",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D36E,
},
[0x1D36F]={
- ["category"]="no",
- ["description"]="COUNTING ROD TENS DIGIT SEVEN",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D36F, -- 𝍯
+ category="no",
+ description="COUNTING ROD TENS DIGIT SEVEN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D36F,
},
[0x1D370]={
- ["category"]="no",
- ["description"]="COUNTING ROD TENS DIGIT EIGHT",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D370, -- 𝍰
+ category="no",
+ description="COUNTING ROD TENS DIGIT EIGHT",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D370,
},
[0x1D371]={
- ["category"]="no",
- ["description"]="COUNTING ROD TENS DIGIT NINE",
- ["linebreak"]="al",
- ["unicodeslot"]=0x1D371, -- 𝍱
+ category="no",
+ description="COUNTING ROD TENS DIGIT NINE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D371,
},
[0x1D400]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD CAPITAL A",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0041 },
- ["unicodeslot"]=0x1D400, -- 𝐀
+ category="lu",
+ description="MATHEMATICAL BOLD CAPITAL A",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0041 },
+ unicodeslot=0x1D400,
},
[0x1D401]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD CAPITAL B",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0042 },
- ["unicodeslot"]=0x1D401, -- 𝐁
+ category="lu",
+ description="MATHEMATICAL BOLD CAPITAL B",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0042 },
+ unicodeslot=0x1D401,
},
[0x1D402]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD CAPITAL C",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0043 },
- ["unicodeslot"]=0x1D402, -- 𝐂
+ category="lu",
+ description="MATHEMATICAL BOLD CAPITAL C",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0043 },
+ unicodeslot=0x1D402,
},
[0x1D403]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD CAPITAL D",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0044 },
- ["unicodeslot"]=0x1D403, -- 𝐃
+ category="lu",
+ description="MATHEMATICAL BOLD CAPITAL D",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0044 },
+ unicodeslot=0x1D403,
},
[0x1D404]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD CAPITAL E",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0045 },
- ["unicodeslot"]=0x1D404, -- 𝐄
+ category="lu",
+ description="MATHEMATICAL BOLD CAPITAL E",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0045 },
+ unicodeslot=0x1D404,
},
[0x1D405]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD CAPITAL F",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0046 },
- ["unicodeslot"]=0x1D405, -- 𝐅
+ category="lu",
+ description="MATHEMATICAL BOLD CAPITAL F",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0046 },
+ unicodeslot=0x1D405,
},
[0x1D406]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD CAPITAL G",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0047 },
- ["unicodeslot"]=0x1D406, -- 𝐆
+ category="lu",
+ description="MATHEMATICAL BOLD CAPITAL G",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0047 },
+ unicodeslot=0x1D406,
},
[0x1D407]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD CAPITAL H",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0048 },
- ["unicodeslot"]=0x1D407, -- 𝐇
+ category="lu",
+ description="MATHEMATICAL BOLD CAPITAL H",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0048 },
+ unicodeslot=0x1D407,
},
[0x1D408]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD CAPITAL I",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0049 },
- ["unicodeslot"]=0x1D408, -- 𝐈
+ category="lu",
+ description="MATHEMATICAL BOLD CAPITAL I",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0049 },
+ unicodeslot=0x1D408,
},
[0x1D409]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD CAPITAL J",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004A },
- ["unicodeslot"]=0x1D409, -- 𝐉
+ category="lu",
+ description="MATHEMATICAL BOLD CAPITAL J",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004A },
+ unicodeslot=0x1D409,
},
[0x1D40A]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD CAPITAL K",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004B },
- ["unicodeslot"]=0x1D40A, -- 𝐊
+ category="lu",
+ description="MATHEMATICAL BOLD CAPITAL K",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004B },
+ unicodeslot=0x1D40A,
},
[0x1D40B]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD CAPITAL L",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004C },
- ["unicodeslot"]=0x1D40B, -- 𝐋
+ category="lu",
+ description="MATHEMATICAL BOLD CAPITAL L",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004C },
+ unicodeslot=0x1D40B,
},
[0x1D40C]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD CAPITAL M",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004D },
- ["unicodeslot"]=0x1D40C, -- 𝐌
+ category="lu",
+ description="MATHEMATICAL BOLD CAPITAL M",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004D },
+ unicodeslot=0x1D40C,
},
[0x1D40D]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD CAPITAL N",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004E },
- ["unicodeslot"]=0x1D40D, -- 𝐍
+ category="lu",
+ description="MATHEMATICAL BOLD CAPITAL N",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004E },
+ unicodeslot=0x1D40D,
},
[0x1D40E]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD CAPITAL O",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004F },
- ["unicodeslot"]=0x1D40E, -- 𝐎
+ category="lu",
+ description="MATHEMATICAL BOLD CAPITAL O",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004F },
+ unicodeslot=0x1D40E,
},
[0x1D40F]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD CAPITAL P",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0050 },
- ["unicodeslot"]=0x1D40F, -- 𝐏
+ category="lu",
+ description="MATHEMATICAL BOLD CAPITAL P",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0050 },
+ unicodeslot=0x1D40F,
},
[0x1D410]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD CAPITAL Q",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0051 },
- ["unicodeslot"]=0x1D410, -- 𝐐
+ category="lu",
+ description="MATHEMATICAL BOLD CAPITAL Q",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0051 },
+ unicodeslot=0x1D410,
},
[0x1D411]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD CAPITAL R",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0052 },
- ["unicodeslot"]=0x1D411, -- 𝐑
+ category="lu",
+ description="MATHEMATICAL BOLD CAPITAL R",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0052 },
+ unicodeslot=0x1D411,
},
[0x1D412]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD CAPITAL S",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0053 },
- ["unicodeslot"]=0x1D412, -- 𝐒
+ category="lu",
+ description="MATHEMATICAL BOLD CAPITAL S",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0053 },
+ unicodeslot=0x1D412,
},
[0x1D413]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD CAPITAL T",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0054 },
- ["unicodeslot"]=0x1D413, -- 𝐓
+ category="lu",
+ description="MATHEMATICAL BOLD CAPITAL T",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0054 },
+ unicodeslot=0x1D413,
},
[0x1D414]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD CAPITAL U",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0055 },
- ["unicodeslot"]=0x1D414, -- 𝐔
+ category="lu",
+ description="MATHEMATICAL BOLD CAPITAL U",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0055 },
+ unicodeslot=0x1D414,
},
[0x1D415]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD CAPITAL V",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0056 },
- ["unicodeslot"]=0x1D415, -- 𝐕
+ category="lu",
+ description="MATHEMATICAL BOLD CAPITAL V",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0056 },
+ unicodeslot=0x1D415,
},
[0x1D416]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD CAPITAL W",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0057 },
- ["unicodeslot"]=0x1D416, -- 𝐖
+ category="lu",
+ description="MATHEMATICAL BOLD CAPITAL W",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0057 },
+ unicodeslot=0x1D416,
},
[0x1D417]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD CAPITAL X",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0058 },
- ["unicodeslot"]=0x1D417, -- 𝐗
+ category="lu",
+ description="MATHEMATICAL BOLD CAPITAL X",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0058 },
+ unicodeslot=0x1D417,
},
[0x1D418]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD CAPITAL Y",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0059 },
- ["unicodeslot"]=0x1D418, -- 𝐘
+ category="lu",
+ description="MATHEMATICAL BOLD CAPITAL Y",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0059 },
+ unicodeslot=0x1D418,
},
[0x1D419]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD CAPITAL Z",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x005A },
- ["unicodeslot"]=0x1D419, -- 𝐙
+ category="lu",
+ description="MATHEMATICAL BOLD CAPITAL Z",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x005A },
+ unicodeslot=0x1D419,
},
[0x1D41A]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SMALL A",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0061 },
- ["unicodeslot"]=0x1D41A, -- 𝐚
+ category="ll",
+ description="MATHEMATICAL BOLD SMALL A",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0061 },
+ unicodeslot=0x1D41A,
},
[0x1D41B]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SMALL B",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0062 },
- ["unicodeslot"]=0x1D41B, -- 𝐛
+ category="ll",
+ description="MATHEMATICAL BOLD SMALL B",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0062 },
+ unicodeslot=0x1D41B,
},
[0x1D41C]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SMALL C",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0063 },
- ["unicodeslot"]=0x1D41C, -- 𝐜
+ category="ll",
+ description="MATHEMATICAL BOLD SMALL C",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0063 },
+ unicodeslot=0x1D41C,
},
[0x1D41D]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SMALL D",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0064 },
- ["unicodeslot"]=0x1D41D, -- 𝐝
+ category="ll",
+ description="MATHEMATICAL BOLD SMALL D",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0064 },
+ unicodeslot=0x1D41D,
},
[0x1D41E]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SMALL E",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0065 },
- ["unicodeslot"]=0x1D41E, -- 𝐞
+ category="ll",
+ description="MATHEMATICAL BOLD SMALL E",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0065 },
+ unicodeslot=0x1D41E,
},
[0x1D41F]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SMALL F",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0066 },
- ["unicodeslot"]=0x1D41F, -- 𝐟
+ category="ll",
+ description="MATHEMATICAL BOLD SMALL F",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0066 },
+ unicodeslot=0x1D41F,
},
[0x1D420]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SMALL G",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0067 },
- ["unicodeslot"]=0x1D420, -- 𝐠
+ category="ll",
+ description="MATHEMATICAL BOLD SMALL G",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0067 },
+ unicodeslot=0x1D420,
},
[0x1D421]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SMALL H",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0068 },
- ["unicodeslot"]=0x1D421, -- 𝐡
+ category="ll",
+ description="MATHEMATICAL BOLD SMALL H",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0068 },
+ unicodeslot=0x1D421,
},
[0x1D422]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SMALL I",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0069 },
- ["unicodeslot"]=0x1D422, -- 𝐢
+ category="ll",
+ description="MATHEMATICAL BOLD SMALL I",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0069 },
+ unicodeslot=0x1D422,
},
[0x1D423]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SMALL J",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006A },
- ["unicodeslot"]=0x1D423, -- 𝐣
+ category="ll",
+ description="MATHEMATICAL BOLD SMALL J",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006A },
+ unicodeslot=0x1D423,
},
[0x1D424]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SMALL K",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006B },
- ["unicodeslot"]=0x1D424, -- 𝐤
+ category="ll",
+ description="MATHEMATICAL BOLD SMALL K",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006B },
+ unicodeslot=0x1D424,
},
[0x1D425]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SMALL L",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006C },
- ["unicodeslot"]=0x1D425, -- 𝐥
+ category="ll",
+ description="MATHEMATICAL BOLD SMALL L",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006C },
+ unicodeslot=0x1D425,
},
[0x1D426]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SMALL M",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006D },
- ["unicodeslot"]=0x1D426, -- 𝐦
+ category="ll",
+ description="MATHEMATICAL BOLD SMALL M",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006D },
+ unicodeslot=0x1D426,
},
[0x1D427]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SMALL N",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006E },
- ["unicodeslot"]=0x1D427, -- 𝐧
+ category="ll",
+ description="MATHEMATICAL BOLD SMALL N",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006E },
+ unicodeslot=0x1D427,
},
[0x1D428]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SMALL O",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006F },
- ["unicodeslot"]=0x1D428, -- 𝐨
+ category="ll",
+ description="MATHEMATICAL BOLD SMALL O",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006F },
+ unicodeslot=0x1D428,
},
[0x1D429]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SMALL P",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0070 },
- ["unicodeslot"]=0x1D429, -- 𝐩
+ category="ll",
+ description="MATHEMATICAL BOLD SMALL P",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0070 },
+ unicodeslot=0x1D429,
},
[0x1D42A]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SMALL Q",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0071 },
- ["unicodeslot"]=0x1D42A, -- 𝐪
+ category="ll",
+ description="MATHEMATICAL BOLD SMALL Q",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0071 },
+ unicodeslot=0x1D42A,
},
[0x1D42B]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SMALL R",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0072 },
- ["unicodeslot"]=0x1D42B, -- 𝐫
+ category="ll",
+ description="MATHEMATICAL BOLD SMALL R",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0072 },
+ unicodeslot=0x1D42B,
},
[0x1D42C]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SMALL S",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0073 },
- ["unicodeslot"]=0x1D42C, -- 𝐬
+ category="ll",
+ description="MATHEMATICAL BOLD SMALL S",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0073 },
+ unicodeslot=0x1D42C,
},
[0x1D42D]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SMALL T",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0074 },
- ["unicodeslot"]=0x1D42D, -- 𝐭
+ category="ll",
+ description="MATHEMATICAL BOLD SMALL T",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0074 },
+ unicodeslot=0x1D42D,
},
[0x1D42E]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SMALL U",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0075 },
- ["unicodeslot"]=0x1D42E, -- 𝐮
+ category="ll",
+ description="MATHEMATICAL BOLD SMALL U",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0075 },
+ unicodeslot=0x1D42E,
},
[0x1D42F]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SMALL V",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0076 },
- ["unicodeslot"]=0x1D42F, -- 𝐯
+ category="ll",
+ description="MATHEMATICAL BOLD SMALL V",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0076 },
+ unicodeslot=0x1D42F,
},
[0x1D430]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SMALL W",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0077 },
- ["unicodeslot"]=0x1D430, -- 𝐰
+ category="ll",
+ description="MATHEMATICAL BOLD SMALL W",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0077 },
+ unicodeslot=0x1D430,
},
[0x1D431]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SMALL X",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0078 },
- ["unicodeslot"]=0x1D431, -- 𝐱
+ category="ll",
+ description="MATHEMATICAL BOLD SMALL X",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0078 },
+ unicodeslot=0x1D431,
},
[0x1D432]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SMALL Y",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0079 },
- ["unicodeslot"]=0x1D432, -- 𝐲
+ category="ll",
+ description="MATHEMATICAL BOLD SMALL Y",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0079 },
+ unicodeslot=0x1D432,
},
[0x1D433]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SMALL Z",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x007A },
- ["unicodeslot"]=0x1D433, -- 𝐳
+ category="ll",
+ description="MATHEMATICAL BOLD SMALL Z",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x007A },
+ unicodeslot=0x1D433,
},
[0x1D434]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL ITALIC CAPITAL A",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0041 },
- ["unicodeslot"]=0x1D434, -- 𝐴
+ category="lu",
+ description="MATHEMATICAL ITALIC CAPITAL A",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0041 },
+ unicodeslot=0x1D434,
},
[0x1D435]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL ITALIC CAPITAL B",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0042 },
- ["unicodeslot"]=0x1D435, -- 𝐵
+ category="lu",
+ description="MATHEMATICAL ITALIC CAPITAL B",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0042 },
+ unicodeslot=0x1D435,
},
[0x1D436]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL ITALIC CAPITAL C",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0043 },
- ["unicodeslot"]=0x1D436, -- 𝐶
+ category="lu",
+ description="MATHEMATICAL ITALIC CAPITAL C",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0043 },
+ unicodeslot=0x1D436,
},
[0x1D437]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL ITALIC CAPITAL D",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0044 },
- ["unicodeslot"]=0x1D437, -- 𝐷
+ category="lu",
+ description="MATHEMATICAL ITALIC CAPITAL D",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0044 },
+ unicodeslot=0x1D437,
},
[0x1D438]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL ITALIC CAPITAL E",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0045 },
- ["unicodeslot"]=0x1D438, -- 𝐸
+ category="lu",
+ description="MATHEMATICAL ITALIC CAPITAL E",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0045 },
+ unicodeslot=0x1D438,
},
[0x1D439]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL ITALIC CAPITAL F",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0046 },
- ["unicodeslot"]=0x1D439, -- 𝐹
+ category="lu",
+ description="MATHEMATICAL ITALIC CAPITAL F",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0046 },
+ unicodeslot=0x1D439,
},
[0x1D43A]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL ITALIC CAPITAL G",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0047 },
- ["unicodeslot"]=0x1D43A, -- 𝐺
+ category="lu",
+ description="MATHEMATICAL ITALIC CAPITAL G",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0047 },
+ unicodeslot=0x1D43A,
},
[0x1D43B]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL ITALIC CAPITAL H",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0048 },
- ["unicodeslot"]=0x1D43B, -- 𝐻
+ category="lu",
+ description="MATHEMATICAL ITALIC CAPITAL H",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0048 },
+ unicodeslot=0x1D43B,
},
[0x1D43C]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL ITALIC CAPITAL I",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0049 },
- ["unicodeslot"]=0x1D43C, -- 𝐼
+ category="lu",
+ description="MATHEMATICAL ITALIC CAPITAL I",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0049 },
+ unicodeslot=0x1D43C,
},
[0x1D43D]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL ITALIC CAPITAL J",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004A },
- ["unicodeslot"]=0x1D43D, -- 𝐽
+ category="lu",
+ description="MATHEMATICAL ITALIC CAPITAL J",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004A },
+ unicodeslot=0x1D43D,
},
[0x1D43E]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL ITALIC CAPITAL K",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004B },
- ["unicodeslot"]=0x1D43E, -- 𝐾
+ category="lu",
+ description="MATHEMATICAL ITALIC CAPITAL K",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004B },
+ unicodeslot=0x1D43E,
},
[0x1D43F]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL ITALIC CAPITAL L",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004C },
- ["unicodeslot"]=0x1D43F, -- 𝐿
+ category="lu",
+ description="MATHEMATICAL ITALIC CAPITAL L",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004C },
+ unicodeslot=0x1D43F,
},
[0x1D440]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL ITALIC CAPITAL M",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004D },
- ["unicodeslot"]=0x1D440, -- 𝑀
+ category="lu",
+ description="MATHEMATICAL ITALIC CAPITAL M",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004D },
+ unicodeslot=0x1D440,
},
[0x1D441]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL ITALIC CAPITAL N",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004E },
- ["unicodeslot"]=0x1D441, -- 𝑁
+ category="lu",
+ description="MATHEMATICAL ITALIC CAPITAL N",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004E },
+ unicodeslot=0x1D441,
},
[0x1D442]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL ITALIC CAPITAL O",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004F },
- ["unicodeslot"]=0x1D442, -- 𝑂
+ category="lu",
+ description="MATHEMATICAL ITALIC CAPITAL O",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004F },
+ unicodeslot=0x1D442,
},
[0x1D443]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL ITALIC CAPITAL P",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0050 },
- ["unicodeslot"]=0x1D443, -- 𝑃
+ category="lu",
+ description="MATHEMATICAL ITALIC CAPITAL P",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0050 },
+ unicodeslot=0x1D443,
},
[0x1D444]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL ITALIC CAPITAL Q",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0051 },
- ["unicodeslot"]=0x1D444, -- 𝑄
+ category="lu",
+ description="MATHEMATICAL ITALIC CAPITAL Q",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0051 },
+ unicodeslot=0x1D444,
},
[0x1D445]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL ITALIC CAPITAL R",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0052 },
- ["unicodeslot"]=0x1D445, -- 𝑅
+ category="lu",
+ description="MATHEMATICAL ITALIC CAPITAL R",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0052 },
+ unicodeslot=0x1D445,
},
[0x1D446]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL ITALIC CAPITAL S",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0053 },
- ["unicodeslot"]=0x1D446, -- 𝑆
+ category="lu",
+ description="MATHEMATICAL ITALIC CAPITAL S",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0053 },
+ unicodeslot=0x1D446,
},
[0x1D447]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL ITALIC CAPITAL T",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0054 },
- ["unicodeslot"]=0x1D447, -- 𝑇
+ category="lu",
+ description="MATHEMATICAL ITALIC CAPITAL T",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0054 },
+ unicodeslot=0x1D447,
},
[0x1D448]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL ITALIC CAPITAL U",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0055 },
- ["unicodeslot"]=0x1D448, -- 𝑈
+ category="lu",
+ description="MATHEMATICAL ITALIC CAPITAL U",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0055 },
+ unicodeslot=0x1D448,
},
[0x1D449]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL ITALIC CAPITAL V",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0056 },
- ["unicodeslot"]=0x1D449, -- 𝑉
+ category="lu",
+ description="MATHEMATICAL ITALIC CAPITAL V",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0056 },
+ unicodeslot=0x1D449,
},
[0x1D44A]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL ITALIC CAPITAL W",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0057 },
- ["unicodeslot"]=0x1D44A, -- 𝑊
+ category="lu",
+ description="MATHEMATICAL ITALIC CAPITAL W",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0057 },
+ unicodeslot=0x1D44A,
},
[0x1D44B]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL ITALIC CAPITAL X",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0058 },
- ["unicodeslot"]=0x1D44B, -- 𝑋
+ category="lu",
+ description="MATHEMATICAL ITALIC CAPITAL X",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0058 },
+ unicodeslot=0x1D44B,
},
[0x1D44C]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL ITALIC CAPITAL Y",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0059 },
- ["unicodeslot"]=0x1D44C, -- 𝑌
+ category="lu",
+ description="MATHEMATICAL ITALIC CAPITAL Y",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0059 },
+ unicodeslot=0x1D44C,
},
[0x1D44D]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL ITALIC CAPITAL Z",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x005A },
- ["unicodeslot"]=0x1D44D, -- 𝑍
+ category="lu",
+ description="MATHEMATICAL ITALIC CAPITAL Z",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x005A },
+ unicodeslot=0x1D44D,
},
[0x1D44E]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL ITALIC SMALL A",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0061 },
- ["unicodeslot"]=0x1D44E, -- 𝑎
+ category="ll",
+ description="MATHEMATICAL ITALIC SMALL A",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0061 },
+ unicodeslot=0x1D44E,
},
[0x1D44F]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL ITALIC SMALL B",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0062 },
- ["unicodeslot"]=0x1D44F, -- 𝑏
+ category="ll",
+ description="MATHEMATICAL ITALIC SMALL B",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0062 },
+ unicodeslot=0x1D44F,
},
[0x1D450]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL ITALIC SMALL C",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0063 },
- ["unicodeslot"]=0x1D450, -- 𝑐
+ category="ll",
+ description="MATHEMATICAL ITALIC SMALL C",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0063 },
+ unicodeslot=0x1D450,
},
[0x1D451]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL ITALIC SMALL D",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0064 },
- ["unicodeslot"]=0x1D451, -- 𝑑
+ category="ll",
+ description="MATHEMATICAL ITALIC SMALL D",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0064 },
+ unicodeslot=0x1D451,
},
[0x1D452]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL ITALIC SMALL E",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0065 },
- ["unicodeslot"]=0x1D452, -- 𝑒
+ category="ll",
+ description="MATHEMATICAL ITALIC SMALL E",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0065 },
+ unicodeslot=0x1D452,
},
[0x1D453]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL ITALIC SMALL F",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0066 },
- ["unicodeslot"]=0x1D453, -- 𝑓
+ category="ll",
+ description="MATHEMATICAL ITALIC SMALL F",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0066 },
+ unicodeslot=0x1D453,
},
[0x1D454]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL ITALIC SMALL G",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0067 },
- ["unicodeslot"]=0x1D454, -- 𝑔
+ category="ll",
+ description="MATHEMATICAL ITALIC SMALL G",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0067 },
+ unicodeslot=0x1D454,
},
[0x1D456]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL ITALIC SMALL I",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0069 },
- ["unicodeslot"]=0x1D456, -- 𝑖
+ category="ll",
+ description="MATHEMATICAL ITALIC SMALL I",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0069 },
+ unicodeslot=0x1D456,
},
[0x1D457]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL ITALIC SMALL J",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006A },
- ["unicodeslot"]=0x1D457, -- 𝑗
+ category="ll",
+ description="MATHEMATICAL ITALIC SMALL J",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006A },
+ unicodeslot=0x1D457,
},
[0x1D458]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL ITALIC SMALL K",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006B },
- ["unicodeslot"]=0x1D458, -- 𝑘
+ category="ll",
+ description="MATHEMATICAL ITALIC SMALL K",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006B },
+ unicodeslot=0x1D458,
},
[0x1D459]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL ITALIC SMALL L",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006C },
- ["unicodeslot"]=0x1D459, -- 𝑙
+ category="ll",
+ description="MATHEMATICAL ITALIC SMALL L",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006C },
+ unicodeslot=0x1D459,
},
[0x1D45A]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL ITALIC SMALL M",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006D },
- ["unicodeslot"]=0x1D45A, -- 𝑚
+ category="ll",
+ description="MATHEMATICAL ITALIC SMALL M",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006D },
+ unicodeslot=0x1D45A,
},
[0x1D45B]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL ITALIC SMALL N",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006E },
- ["unicodeslot"]=0x1D45B, -- 𝑛
+ category="ll",
+ description="MATHEMATICAL ITALIC SMALL N",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006E },
+ unicodeslot=0x1D45B,
},
[0x1D45C]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL ITALIC SMALL O",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006F },
- ["unicodeslot"]=0x1D45C, -- 𝑜
+ category="ll",
+ description="MATHEMATICAL ITALIC SMALL O",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006F },
+ unicodeslot=0x1D45C,
},
[0x1D45D]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL ITALIC SMALL P",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0070 },
- ["unicodeslot"]=0x1D45D, -- 𝑝
+ category="ll",
+ description="MATHEMATICAL ITALIC SMALL P",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0070 },
+ unicodeslot=0x1D45D,
},
[0x1D45E]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL ITALIC SMALL Q",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0071 },
- ["unicodeslot"]=0x1D45E, -- 𝑞
+ category="ll",
+ description="MATHEMATICAL ITALIC SMALL Q",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0071 },
+ unicodeslot=0x1D45E,
},
[0x1D45F]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL ITALIC SMALL R",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0072 },
- ["unicodeslot"]=0x1D45F, -- 𝑟
+ category="ll",
+ description="MATHEMATICAL ITALIC SMALL R",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0072 },
+ unicodeslot=0x1D45F,
},
[0x1D460]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL ITALIC SMALL S",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0073 },
- ["unicodeslot"]=0x1D460, -- 𝑠
+ category="ll",
+ description="MATHEMATICAL ITALIC SMALL S",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0073 },
+ unicodeslot=0x1D460,
},
[0x1D461]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL ITALIC SMALL T",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0074 },
- ["unicodeslot"]=0x1D461, -- 𝑡
+ category="ll",
+ description="MATHEMATICAL ITALIC SMALL T",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0074 },
+ unicodeslot=0x1D461,
},
[0x1D462]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL ITALIC SMALL U",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0075 },
- ["unicodeslot"]=0x1D462, -- 𝑢
+ category="ll",
+ description="MATHEMATICAL ITALIC SMALL U",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0075 },
+ unicodeslot=0x1D462,
},
[0x1D463]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL ITALIC SMALL V",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0076 },
- ["unicodeslot"]=0x1D463, -- 𝑣
+ category="ll",
+ description="MATHEMATICAL ITALIC SMALL V",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0076 },
+ unicodeslot=0x1D463,
},
[0x1D464]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL ITALIC SMALL W",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0077 },
- ["unicodeslot"]=0x1D464, -- 𝑤
+ category="ll",
+ description="MATHEMATICAL ITALIC SMALL W",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0077 },
+ unicodeslot=0x1D464,
},
[0x1D465]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL ITALIC SMALL X",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0078 },
- ["unicodeslot"]=0x1D465, -- 𝑥
+ category="ll",
+ description="MATHEMATICAL ITALIC SMALL X",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0078 },
+ unicodeslot=0x1D465,
},
[0x1D466]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL ITALIC SMALL Y",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0079 },
- ["unicodeslot"]=0x1D466, -- 𝑦
+ category="ll",
+ description="MATHEMATICAL ITALIC SMALL Y",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0079 },
+ unicodeslot=0x1D466,
},
[0x1D467]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL ITALIC SMALL Z",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x007A },
- ["unicodeslot"]=0x1D467, -- 𝑧
+ category="ll",
+ description="MATHEMATICAL ITALIC SMALL Z",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x007A },
+ unicodeslot=0x1D467,
},
[0x1D468]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD ITALIC CAPITAL A",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0041 },
- ["unicodeslot"]=0x1D468, -- 𝑨
+ category="lu",
+ description="MATHEMATICAL BOLD ITALIC CAPITAL A",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0041 },
+ unicodeslot=0x1D468,
},
[0x1D469]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD ITALIC CAPITAL B",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0042 },
- ["unicodeslot"]=0x1D469, -- 𝑩
+ category="lu",
+ description="MATHEMATICAL BOLD ITALIC CAPITAL B",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0042 },
+ unicodeslot=0x1D469,
},
[0x1D46A]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD ITALIC CAPITAL C",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0043 },
- ["unicodeslot"]=0x1D46A, -- 𝑪
+ category="lu",
+ description="MATHEMATICAL BOLD ITALIC CAPITAL C",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0043 },
+ unicodeslot=0x1D46A,
},
[0x1D46B]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD ITALIC CAPITAL D",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0044 },
- ["unicodeslot"]=0x1D46B, -- 𝑫
+ category="lu",
+ description="MATHEMATICAL BOLD ITALIC CAPITAL D",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0044 },
+ unicodeslot=0x1D46B,
},
[0x1D46C]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD ITALIC CAPITAL E",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0045 },
- ["unicodeslot"]=0x1D46C, -- 𝑬
+ category="lu",
+ description="MATHEMATICAL BOLD ITALIC CAPITAL E",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0045 },
+ unicodeslot=0x1D46C,
},
[0x1D46D]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD ITALIC CAPITAL F",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0046 },
- ["unicodeslot"]=0x1D46D, -- 𝑭
+ category="lu",
+ description="MATHEMATICAL BOLD ITALIC CAPITAL F",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0046 },
+ unicodeslot=0x1D46D,
},
[0x1D46E]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD ITALIC CAPITAL G",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0047 },
- ["unicodeslot"]=0x1D46E, -- 𝑮
+ category="lu",
+ description="MATHEMATICAL BOLD ITALIC CAPITAL G",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0047 },
+ unicodeslot=0x1D46E,
},
[0x1D46F]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD ITALIC CAPITAL H",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0048 },
- ["unicodeslot"]=0x1D46F, -- 𝑯
+ category="lu",
+ description="MATHEMATICAL BOLD ITALIC CAPITAL H",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0048 },
+ unicodeslot=0x1D46F,
},
[0x1D470]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD ITALIC CAPITAL I",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0049 },
- ["unicodeslot"]=0x1D470, -- 𝑰
+ category="lu",
+ description="MATHEMATICAL BOLD ITALIC CAPITAL I",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0049 },
+ unicodeslot=0x1D470,
},
[0x1D471]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD ITALIC CAPITAL J",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004A },
- ["unicodeslot"]=0x1D471, -- 𝑱
+ category="lu",
+ description="MATHEMATICAL BOLD ITALIC CAPITAL J",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004A },
+ unicodeslot=0x1D471,
},
[0x1D472]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD ITALIC CAPITAL K",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004B },
- ["unicodeslot"]=0x1D472, -- 𝑲
+ category="lu",
+ description="MATHEMATICAL BOLD ITALIC CAPITAL K",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004B },
+ unicodeslot=0x1D472,
},
[0x1D473]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD ITALIC CAPITAL L",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004C },
- ["unicodeslot"]=0x1D473, -- 𝑳
+ category="lu",
+ description="MATHEMATICAL BOLD ITALIC CAPITAL L",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004C },
+ unicodeslot=0x1D473,
},
[0x1D474]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD ITALIC CAPITAL M",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004D },
- ["unicodeslot"]=0x1D474, -- 𝑴
+ category="lu",
+ description="MATHEMATICAL BOLD ITALIC CAPITAL M",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004D },
+ unicodeslot=0x1D474,
},
[0x1D475]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD ITALIC CAPITAL N",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004E },
- ["unicodeslot"]=0x1D475, -- 𝑵
+ category="lu",
+ description="MATHEMATICAL BOLD ITALIC CAPITAL N",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004E },
+ unicodeslot=0x1D475,
},
[0x1D476]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD ITALIC CAPITAL O",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004F },
- ["unicodeslot"]=0x1D476, -- 𝑶
+ category="lu",
+ description="MATHEMATICAL BOLD ITALIC CAPITAL O",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004F },
+ unicodeslot=0x1D476,
},
[0x1D477]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD ITALIC CAPITAL P",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0050 },
- ["unicodeslot"]=0x1D477, -- 𝑷
+ category="lu",
+ description="MATHEMATICAL BOLD ITALIC CAPITAL P",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0050 },
+ unicodeslot=0x1D477,
},
[0x1D478]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD ITALIC CAPITAL Q",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0051 },
- ["unicodeslot"]=0x1D478, -- 𝑸
+ category="lu",
+ description="MATHEMATICAL BOLD ITALIC CAPITAL Q",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0051 },
+ unicodeslot=0x1D478,
},
[0x1D479]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD ITALIC CAPITAL R",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0052 },
- ["unicodeslot"]=0x1D479, -- 𝑹
+ category="lu",
+ description="MATHEMATICAL BOLD ITALIC CAPITAL R",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0052 },
+ unicodeslot=0x1D479,
},
[0x1D47A]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD ITALIC CAPITAL S",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0053 },
- ["unicodeslot"]=0x1D47A, -- 𝑺
+ category="lu",
+ description="MATHEMATICAL BOLD ITALIC CAPITAL S",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0053 },
+ unicodeslot=0x1D47A,
},
[0x1D47B]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD ITALIC CAPITAL T",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0054 },
- ["unicodeslot"]=0x1D47B, -- 𝑻
+ category="lu",
+ description="MATHEMATICAL BOLD ITALIC CAPITAL T",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0054 },
+ unicodeslot=0x1D47B,
},
[0x1D47C]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD ITALIC CAPITAL U",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0055 },
- ["unicodeslot"]=0x1D47C, -- 𝑼
+ category="lu",
+ description="MATHEMATICAL BOLD ITALIC CAPITAL U",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0055 },
+ unicodeslot=0x1D47C,
},
[0x1D47D]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD ITALIC CAPITAL V",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0056 },
- ["unicodeslot"]=0x1D47D, -- 𝑽
+ category="lu",
+ description="MATHEMATICAL BOLD ITALIC CAPITAL V",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0056 },
+ unicodeslot=0x1D47D,
},
[0x1D47E]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD ITALIC CAPITAL W",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0057 },
- ["unicodeslot"]=0x1D47E, -- 𝑾
+ category="lu",
+ description="MATHEMATICAL BOLD ITALIC CAPITAL W",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0057 },
+ unicodeslot=0x1D47E,
},
[0x1D47F]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD ITALIC CAPITAL X",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0058 },
- ["unicodeslot"]=0x1D47F, -- 𝑿
+ category="lu",
+ description="MATHEMATICAL BOLD ITALIC CAPITAL X",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0058 },
+ unicodeslot=0x1D47F,
},
[0x1D480]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD ITALIC CAPITAL Y",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0059 },
- ["unicodeslot"]=0x1D480, -- 𝒀
+ category="lu",
+ description="MATHEMATICAL BOLD ITALIC CAPITAL Y",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0059 },
+ unicodeslot=0x1D480,
},
[0x1D481]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD ITALIC CAPITAL Z",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x005A },
- ["unicodeslot"]=0x1D481, -- 𝒁
+ category="lu",
+ description="MATHEMATICAL BOLD ITALIC CAPITAL Z",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x005A },
+ unicodeslot=0x1D481,
},
[0x1D482]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD ITALIC SMALL A",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0061 },
- ["unicodeslot"]=0x1D482, -- 𝒂
+ category="ll",
+ description="MATHEMATICAL BOLD ITALIC SMALL A",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0061 },
+ unicodeslot=0x1D482,
},
[0x1D483]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD ITALIC SMALL B",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0062 },
- ["unicodeslot"]=0x1D483, -- 𝒃
+ category="ll",
+ description="MATHEMATICAL BOLD ITALIC SMALL B",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0062 },
+ unicodeslot=0x1D483,
},
[0x1D484]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD ITALIC SMALL C",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0063 },
- ["unicodeslot"]=0x1D484, -- 𝒄
+ category="ll",
+ description="MATHEMATICAL BOLD ITALIC SMALL C",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0063 },
+ unicodeslot=0x1D484,
},
[0x1D485]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD ITALIC SMALL D",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0064 },
- ["unicodeslot"]=0x1D485, -- 𝒅
+ category="ll",
+ description="MATHEMATICAL BOLD ITALIC SMALL D",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0064 },
+ unicodeslot=0x1D485,
},
[0x1D486]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD ITALIC SMALL E",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0065 },
- ["unicodeslot"]=0x1D486, -- 𝒆
+ category="ll",
+ description="MATHEMATICAL BOLD ITALIC SMALL E",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0065 },
+ unicodeslot=0x1D486,
},
[0x1D487]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD ITALIC SMALL F",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0066 },
- ["unicodeslot"]=0x1D487, -- 𝒇
+ category="ll",
+ description="MATHEMATICAL BOLD ITALIC SMALL F",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0066 },
+ unicodeslot=0x1D487,
},
[0x1D488]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD ITALIC SMALL G",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0067 },
- ["unicodeslot"]=0x1D488, -- 𝒈
+ category="ll",
+ description="MATHEMATICAL BOLD ITALIC SMALL G",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0067 },
+ unicodeslot=0x1D488,
},
[0x1D489]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD ITALIC SMALL H",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0068 },
- ["unicodeslot"]=0x1D489, -- 𝒉
+ category="ll",
+ description="MATHEMATICAL BOLD ITALIC SMALL H",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0068 },
+ unicodeslot=0x1D489,
},
[0x1D48A]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD ITALIC SMALL I",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0069 },
- ["unicodeslot"]=0x1D48A, -- 𝒊
+ category="ll",
+ description="MATHEMATICAL BOLD ITALIC SMALL I",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0069 },
+ unicodeslot=0x1D48A,
},
[0x1D48B]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD ITALIC SMALL J",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006A },
- ["unicodeslot"]=0x1D48B, -- 𝒋
+ category="ll",
+ description="MATHEMATICAL BOLD ITALIC SMALL J",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006A },
+ unicodeslot=0x1D48B,
},
[0x1D48C]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD ITALIC SMALL K",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006B },
- ["unicodeslot"]=0x1D48C, -- 𝒌
+ category="ll",
+ description="MATHEMATICAL BOLD ITALIC SMALL K",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006B },
+ unicodeslot=0x1D48C,
},
[0x1D48D]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD ITALIC SMALL L",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006C },
- ["unicodeslot"]=0x1D48D, -- 𝒍
+ category="ll",
+ description="MATHEMATICAL BOLD ITALIC SMALL L",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006C },
+ unicodeslot=0x1D48D,
},
[0x1D48E]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD ITALIC SMALL M",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006D },
- ["unicodeslot"]=0x1D48E, -- 𝒎
+ category="ll",
+ description="MATHEMATICAL BOLD ITALIC SMALL M",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006D },
+ unicodeslot=0x1D48E,
},
[0x1D48F]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD ITALIC SMALL N",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006E },
- ["unicodeslot"]=0x1D48F, -- 𝒏
+ category="ll",
+ description="MATHEMATICAL BOLD ITALIC SMALL N",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006E },
+ unicodeslot=0x1D48F,
},
[0x1D490]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD ITALIC SMALL O",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006F },
- ["unicodeslot"]=0x1D490, -- 𝒐
+ category="ll",
+ description="MATHEMATICAL BOLD ITALIC SMALL O",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006F },
+ unicodeslot=0x1D490,
},
[0x1D491]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD ITALIC SMALL P",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0070 },
- ["unicodeslot"]=0x1D491, -- 𝒑
+ category="ll",
+ description="MATHEMATICAL BOLD ITALIC SMALL P",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0070 },
+ unicodeslot=0x1D491,
},
[0x1D492]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD ITALIC SMALL Q",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0071 },
- ["unicodeslot"]=0x1D492, -- 𝒒
+ category="ll",
+ description="MATHEMATICAL BOLD ITALIC SMALL Q",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0071 },
+ unicodeslot=0x1D492,
},
[0x1D493]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD ITALIC SMALL R",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0072 },
- ["unicodeslot"]=0x1D493, -- 𝒓
+ category="ll",
+ description="MATHEMATICAL BOLD ITALIC SMALL R",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0072 },
+ unicodeslot=0x1D493,
},
[0x1D494]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD ITALIC SMALL S",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0073 },
- ["unicodeslot"]=0x1D494, -- 𝒔
+ category="ll",
+ description="MATHEMATICAL BOLD ITALIC SMALL S",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0073 },
+ unicodeslot=0x1D494,
},
[0x1D495]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD ITALIC SMALL T",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0074 },
- ["unicodeslot"]=0x1D495, -- 𝒕
+ category="ll",
+ description="MATHEMATICAL BOLD ITALIC SMALL T",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0074 },
+ unicodeslot=0x1D495,
},
[0x1D496]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD ITALIC SMALL U",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0075 },
- ["unicodeslot"]=0x1D496, -- 𝒖
+ category="ll",
+ description="MATHEMATICAL BOLD ITALIC SMALL U",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0075 },
+ unicodeslot=0x1D496,
},
[0x1D497]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD ITALIC SMALL V",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0076 },
- ["unicodeslot"]=0x1D497, -- 𝒗
+ category="ll",
+ description="MATHEMATICAL BOLD ITALIC SMALL V",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0076 },
+ unicodeslot=0x1D497,
},
[0x1D498]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD ITALIC SMALL W",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0077 },
- ["unicodeslot"]=0x1D498, -- 𝒘
+ category="ll",
+ description="MATHEMATICAL BOLD ITALIC SMALL W",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0077 },
+ unicodeslot=0x1D498,
},
[0x1D499]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD ITALIC SMALL X",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0078 },
- ["unicodeslot"]=0x1D499, -- 𝒙
+ category="ll",
+ description="MATHEMATICAL BOLD ITALIC SMALL X",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0078 },
+ unicodeslot=0x1D499,
},
[0x1D49A]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD ITALIC SMALL Y",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0079 },
- ["unicodeslot"]=0x1D49A, -- 𝒚
+ category="ll",
+ description="MATHEMATICAL BOLD ITALIC SMALL Y",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0079 },
+ unicodeslot=0x1D49A,
},
[0x1D49B]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD ITALIC SMALL Z",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x007A },
- ["unicodeslot"]=0x1D49B, -- 𝒛
+ category="ll",
+ description="MATHEMATICAL BOLD ITALIC SMALL Z",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x007A },
+ unicodeslot=0x1D49B,
},
[0x1D49C]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SCRIPT CAPITAL A",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0041 },
- ["unicodeslot"]=0x1D49C, -- 𝒜
+ category="lu",
+ description="MATHEMATICAL SCRIPT CAPITAL A",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0041 },
+ unicodeslot=0x1D49C,
},
[0x1D49E]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SCRIPT CAPITAL C",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0043 },
- ["unicodeslot"]=0x1D49E, -- 𝒞
+ category="lu",
+ description="MATHEMATICAL SCRIPT CAPITAL C",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0043 },
+ unicodeslot=0x1D49E,
},
[0x1D49F]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SCRIPT CAPITAL D",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0044 },
- ["unicodeslot"]=0x1D49F, -- 𝒟
+ category="lu",
+ description="MATHEMATICAL SCRIPT CAPITAL D",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0044 },
+ unicodeslot=0x1D49F,
},
[0x1D4A2]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SCRIPT CAPITAL G",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0047 },
- ["unicodeslot"]=0x1D4A2, -- 𝒢
+ category="lu",
+ description="MATHEMATICAL SCRIPT CAPITAL G",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0047 },
+ unicodeslot=0x1D4A2,
},
[0x1D4A5]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SCRIPT CAPITAL J",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004A },
- ["unicodeslot"]=0x1D4A5, -- 𝒥
+ category="lu",
+ description="MATHEMATICAL SCRIPT CAPITAL J",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004A },
+ unicodeslot=0x1D4A5,
},
[0x1D4A6]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SCRIPT CAPITAL K",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004B },
- ["unicodeslot"]=0x1D4A6, -- 𝒦
+ category="lu",
+ description="MATHEMATICAL SCRIPT CAPITAL K",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004B },
+ unicodeslot=0x1D4A6,
},
[0x1D4A9]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SCRIPT CAPITAL N",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004E },
- ["unicodeslot"]=0x1D4A9, -- 𝒩
+ category="lu",
+ description="MATHEMATICAL SCRIPT CAPITAL N",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004E },
+ unicodeslot=0x1D4A9,
},
[0x1D4AA]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SCRIPT CAPITAL O",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004F },
- ["unicodeslot"]=0x1D4AA, -- 𝒪
+ category="lu",
+ description="MATHEMATICAL SCRIPT CAPITAL O",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004F },
+ unicodeslot=0x1D4AA,
},
[0x1D4AB]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SCRIPT CAPITAL P",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0050 },
- ["unicodeslot"]=0x1D4AB, -- 𝒫
+ category="lu",
+ description="MATHEMATICAL SCRIPT CAPITAL P",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0050 },
+ unicodeslot=0x1D4AB,
},
[0x1D4AC]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SCRIPT CAPITAL Q",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0051 },
- ["unicodeslot"]=0x1D4AC, -- 𝒬
+ category="lu",
+ description="MATHEMATICAL SCRIPT CAPITAL Q",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0051 },
+ unicodeslot=0x1D4AC,
},
[0x1D4AE]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SCRIPT CAPITAL S",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0053 },
- ["unicodeslot"]=0x1D4AE, -- 𝒮
+ category="lu",
+ description="MATHEMATICAL SCRIPT CAPITAL S",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0053 },
+ unicodeslot=0x1D4AE,
},
[0x1D4AF]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SCRIPT CAPITAL T",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0054 },
- ["unicodeslot"]=0x1D4AF, -- 𝒯
+ category="lu",
+ description="MATHEMATICAL SCRIPT CAPITAL T",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0054 },
+ unicodeslot=0x1D4AF,
},
[0x1D4B0]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SCRIPT CAPITAL U",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0055 },
- ["unicodeslot"]=0x1D4B0, -- 𝒰
+ category="lu",
+ description="MATHEMATICAL SCRIPT CAPITAL U",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0055 },
+ unicodeslot=0x1D4B0,
},
[0x1D4B1]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SCRIPT CAPITAL V",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0056 },
- ["unicodeslot"]=0x1D4B1, -- 𝒱
+ category="lu",
+ description="MATHEMATICAL SCRIPT CAPITAL V",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0056 },
+ unicodeslot=0x1D4B1,
},
[0x1D4B2]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SCRIPT CAPITAL W",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0057 },
- ["unicodeslot"]=0x1D4B2, -- 𝒲
+ category="lu",
+ description="MATHEMATICAL SCRIPT CAPITAL W",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0057 },
+ unicodeslot=0x1D4B2,
},
[0x1D4B3]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SCRIPT CAPITAL X",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0058 },
- ["unicodeslot"]=0x1D4B3, -- 𝒳
+ category="lu",
+ description="MATHEMATICAL SCRIPT CAPITAL X",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0058 },
+ unicodeslot=0x1D4B3,
},
[0x1D4B4]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SCRIPT CAPITAL Y",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0059 },
- ["unicodeslot"]=0x1D4B4, -- 𝒴
+ category="lu",
+ description="MATHEMATICAL SCRIPT CAPITAL Y",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0059 },
+ unicodeslot=0x1D4B4,
},
[0x1D4B5]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SCRIPT CAPITAL Z",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x005A },
- ["unicodeslot"]=0x1D4B5, -- 𝒵
+ category="lu",
+ description="MATHEMATICAL SCRIPT CAPITAL Z",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x005A },
+ unicodeslot=0x1D4B5,
},
[0x1D4B6]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SCRIPT SMALL A",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0061 },
- ["unicodeslot"]=0x1D4B6, -- 𝒶
+ category="ll",
+ description="MATHEMATICAL SCRIPT SMALL A",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0061 },
+ unicodeslot=0x1D4B6,
},
[0x1D4B7]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SCRIPT SMALL B",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0062 },
- ["unicodeslot"]=0x1D4B7, -- 𝒷
+ category="ll",
+ description="MATHEMATICAL SCRIPT SMALL B",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0062 },
+ unicodeslot=0x1D4B7,
},
[0x1D4B8]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SCRIPT SMALL C",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0063 },
- ["unicodeslot"]=0x1D4B8, -- 𝒸
+ category="ll",
+ description="MATHEMATICAL SCRIPT SMALL C",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0063 },
+ unicodeslot=0x1D4B8,
},
[0x1D4B9]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SCRIPT SMALL D",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0064 },
- ["unicodeslot"]=0x1D4B9, -- 𝒹
+ category="ll",
+ description="MATHEMATICAL SCRIPT SMALL D",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0064 },
+ unicodeslot=0x1D4B9,
},
[0x1D4BB]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SCRIPT SMALL F",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0066 },
- ["unicodeslot"]=0x1D4BB, -- 𝒻
+ category="ll",
+ description="MATHEMATICAL SCRIPT SMALL F",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0066 },
+ unicodeslot=0x1D4BB,
},
[0x1D4BD]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SCRIPT SMALL H",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0068 },
- ["unicodeslot"]=0x1D4BD, -- 𝒽
+ category="ll",
+ description="MATHEMATICAL SCRIPT SMALL H",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0068 },
+ unicodeslot=0x1D4BD,
},
[0x1D4BE]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SCRIPT SMALL I",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0069 },
- ["unicodeslot"]=0x1D4BE, -- 𝒾
+ category="ll",
+ description="MATHEMATICAL SCRIPT SMALL I",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0069 },
+ unicodeslot=0x1D4BE,
},
[0x1D4BF]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SCRIPT SMALL J",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006A },
- ["unicodeslot"]=0x1D4BF, -- 𝒿
+ category="ll",
+ description="MATHEMATICAL SCRIPT SMALL J",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006A },
+ unicodeslot=0x1D4BF,
},
[0x1D4C0]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SCRIPT SMALL K",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006B },
- ["unicodeslot"]=0x1D4C0, -- 𝓀
+ category="ll",
+ description="MATHEMATICAL SCRIPT SMALL K",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006B },
+ unicodeslot=0x1D4C0,
},
[0x1D4C1]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SCRIPT SMALL L",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006C },
- ["unicodeslot"]=0x1D4C1, -- 𝓁
+ category="ll",
+ description="MATHEMATICAL SCRIPT SMALL L",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006C },
+ unicodeslot=0x1D4C1,
},
[0x1D4C2]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SCRIPT SMALL M",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006D },
- ["unicodeslot"]=0x1D4C2, -- 𝓂
+ category="ll",
+ description="MATHEMATICAL SCRIPT SMALL M",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006D },
+ unicodeslot=0x1D4C2,
},
[0x1D4C3]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SCRIPT SMALL N",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006E },
- ["unicodeslot"]=0x1D4C3, -- 𝓃
+ category="ll",
+ description="MATHEMATICAL SCRIPT SMALL N",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006E },
+ unicodeslot=0x1D4C3,
},
[0x1D4C5]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SCRIPT SMALL P",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0070 },
- ["unicodeslot"]=0x1D4C5, -- 𝓅
+ category="ll",
+ description="MATHEMATICAL SCRIPT SMALL P",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0070 },
+ unicodeslot=0x1D4C5,
},
[0x1D4C6]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SCRIPT SMALL Q",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0071 },
- ["unicodeslot"]=0x1D4C6, -- 𝓆
+ category="ll",
+ description="MATHEMATICAL SCRIPT SMALL Q",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0071 },
+ unicodeslot=0x1D4C6,
},
[0x1D4C7]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SCRIPT SMALL R",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0072 },
- ["unicodeslot"]=0x1D4C7, -- 𝓇
+ category="ll",
+ description="MATHEMATICAL SCRIPT SMALL R",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0072 },
+ unicodeslot=0x1D4C7,
},
[0x1D4C8]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SCRIPT SMALL S",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0073 },
- ["unicodeslot"]=0x1D4C8, -- 𝓈
+ category="ll",
+ description="MATHEMATICAL SCRIPT SMALL S",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0073 },
+ unicodeslot=0x1D4C8,
},
[0x1D4C9]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SCRIPT SMALL T",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0074 },
- ["unicodeslot"]=0x1D4C9, -- 𝓉
+ category="ll",
+ description="MATHEMATICAL SCRIPT SMALL T",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0074 },
+ unicodeslot=0x1D4C9,
},
[0x1D4CA]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SCRIPT SMALL U",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0075 },
- ["unicodeslot"]=0x1D4CA, -- 𝓊
+ category="ll",
+ description="MATHEMATICAL SCRIPT SMALL U",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0075 },
+ unicodeslot=0x1D4CA,
},
[0x1D4CB]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SCRIPT SMALL V",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0076 },
- ["unicodeslot"]=0x1D4CB, -- 𝓋
+ category="ll",
+ description="MATHEMATICAL SCRIPT SMALL V",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0076 },
+ unicodeslot=0x1D4CB,
},
[0x1D4CC]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SCRIPT SMALL W",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0077 },
- ["unicodeslot"]=0x1D4CC, -- 𝓌
+ category="ll",
+ description="MATHEMATICAL SCRIPT SMALL W",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0077 },
+ unicodeslot=0x1D4CC,
},
[0x1D4CD]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SCRIPT SMALL X",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0078 },
- ["unicodeslot"]=0x1D4CD, -- 𝓍
+ category="ll",
+ description="MATHEMATICAL SCRIPT SMALL X",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0078 },
+ unicodeslot=0x1D4CD,
},
[0x1D4CE]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SCRIPT SMALL Y",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0079 },
- ["unicodeslot"]=0x1D4CE, -- 𝓎
+ category="ll",
+ description="MATHEMATICAL SCRIPT SMALL Y",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0079 },
+ unicodeslot=0x1D4CE,
},
[0x1D4CF]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SCRIPT SMALL Z",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x007A },
- ["unicodeslot"]=0x1D4CF, -- 𝓏
+ category="ll",
+ description="MATHEMATICAL SCRIPT SMALL Z",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x007A },
+ unicodeslot=0x1D4CF,
},
[0x1D4D0]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD SCRIPT CAPITAL A",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0041 },
- ["unicodeslot"]=0x1D4D0, -- 𝓐
+ category="lu",
+ description="MATHEMATICAL BOLD SCRIPT CAPITAL A",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0041 },
+ unicodeslot=0x1D4D0,
},
[0x1D4D1]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD SCRIPT CAPITAL B",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0042 },
- ["unicodeslot"]=0x1D4D1, -- 𝓑
+ category="lu",
+ description="MATHEMATICAL BOLD SCRIPT CAPITAL B",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0042 },
+ unicodeslot=0x1D4D1,
},
[0x1D4D2]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD SCRIPT CAPITAL C",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0043 },
- ["unicodeslot"]=0x1D4D2, -- 𝓒
+ category="lu",
+ description="MATHEMATICAL BOLD SCRIPT CAPITAL C",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0043 },
+ unicodeslot=0x1D4D2,
},
[0x1D4D3]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD SCRIPT CAPITAL D",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0044 },
- ["unicodeslot"]=0x1D4D3, -- 𝓓
+ category="lu",
+ description="MATHEMATICAL BOLD SCRIPT CAPITAL D",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0044 },
+ unicodeslot=0x1D4D3,
},
[0x1D4D4]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD SCRIPT CAPITAL E",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0045 },
- ["unicodeslot"]=0x1D4D4, -- 𝓔
+ category="lu",
+ description="MATHEMATICAL BOLD SCRIPT CAPITAL E",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0045 },
+ unicodeslot=0x1D4D4,
},
[0x1D4D5]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD SCRIPT CAPITAL F",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0046 },
- ["unicodeslot"]=0x1D4D5, -- 𝓕
+ category="lu",
+ description="MATHEMATICAL BOLD SCRIPT CAPITAL F",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0046 },
+ unicodeslot=0x1D4D5,
},
[0x1D4D6]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD SCRIPT CAPITAL G",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0047 },
- ["unicodeslot"]=0x1D4D6, -- 𝓖
+ category="lu",
+ description="MATHEMATICAL BOLD SCRIPT CAPITAL G",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0047 },
+ unicodeslot=0x1D4D6,
},
[0x1D4D7]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD SCRIPT CAPITAL H",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0048 },
- ["unicodeslot"]=0x1D4D7, -- 𝓗
+ category="lu",
+ description="MATHEMATICAL BOLD SCRIPT CAPITAL H",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0048 },
+ unicodeslot=0x1D4D7,
},
[0x1D4D8]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD SCRIPT CAPITAL I",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0049 },
- ["unicodeslot"]=0x1D4D8, -- 𝓘
+ category="lu",
+ description="MATHEMATICAL BOLD SCRIPT CAPITAL I",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0049 },
+ unicodeslot=0x1D4D8,
},
[0x1D4D9]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD SCRIPT CAPITAL J",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004A },
- ["unicodeslot"]=0x1D4D9, -- 𝓙
+ category="lu",
+ description="MATHEMATICAL BOLD SCRIPT CAPITAL J",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004A },
+ unicodeslot=0x1D4D9,
},
[0x1D4DA]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD SCRIPT CAPITAL K",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004B },
- ["unicodeslot"]=0x1D4DA, -- 𝓚
+ category="lu",
+ description="MATHEMATICAL BOLD SCRIPT CAPITAL K",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004B },
+ unicodeslot=0x1D4DA,
},
[0x1D4DB]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD SCRIPT CAPITAL L",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004C },
- ["unicodeslot"]=0x1D4DB, -- 𝓛
+ category="lu",
+ description="MATHEMATICAL BOLD SCRIPT CAPITAL L",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004C },
+ unicodeslot=0x1D4DB,
},
[0x1D4DC]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD SCRIPT CAPITAL M",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004D },
- ["unicodeslot"]=0x1D4DC, -- 𝓜
+ category="lu",
+ description="MATHEMATICAL BOLD SCRIPT CAPITAL M",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004D },
+ unicodeslot=0x1D4DC,
},
[0x1D4DD]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD SCRIPT CAPITAL N",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004E },
- ["unicodeslot"]=0x1D4DD, -- 𝓝
+ category="lu",
+ description="MATHEMATICAL BOLD SCRIPT CAPITAL N",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004E },
+ unicodeslot=0x1D4DD,
},
[0x1D4DE]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD SCRIPT CAPITAL O",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004F },
- ["unicodeslot"]=0x1D4DE, -- 𝓞
+ category="lu",
+ description="MATHEMATICAL BOLD SCRIPT CAPITAL O",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004F },
+ unicodeslot=0x1D4DE,
},
[0x1D4DF]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD SCRIPT CAPITAL P",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0050 },
- ["unicodeslot"]=0x1D4DF, -- 𝓟
+ category="lu",
+ description="MATHEMATICAL BOLD SCRIPT CAPITAL P",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0050 },
+ unicodeslot=0x1D4DF,
},
[0x1D4E0]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD SCRIPT CAPITAL Q",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0051 },
- ["unicodeslot"]=0x1D4E0, -- 𝓠
+ category="lu",
+ description="MATHEMATICAL BOLD SCRIPT CAPITAL Q",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0051 },
+ unicodeslot=0x1D4E0,
},
[0x1D4E1]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD SCRIPT CAPITAL R",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0052 },
- ["unicodeslot"]=0x1D4E1, -- 𝓡
+ category="lu",
+ description="MATHEMATICAL BOLD SCRIPT CAPITAL R",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0052 },
+ unicodeslot=0x1D4E1,
},
[0x1D4E2]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD SCRIPT CAPITAL S",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0053 },
- ["unicodeslot"]=0x1D4E2, -- 𝓢
+ category="lu",
+ description="MATHEMATICAL BOLD SCRIPT CAPITAL S",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0053 },
+ unicodeslot=0x1D4E2,
},
[0x1D4E3]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD SCRIPT CAPITAL T",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0054 },
- ["unicodeslot"]=0x1D4E3, -- 𝓣
+ category="lu",
+ description="MATHEMATICAL BOLD SCRIPT CAPITAL T",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0054 },
+ unicodeslot=0x1D4E3,
},
[0x1D4E4]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD SCRIPT CAPITAL U",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0055 },
- ["unicodeslot"]=0x1D4E4, -- 𝓤
+ category="lu",
+ description="MATHEMATICAL BOLD SCRIPT CAPITAL U",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0055 },
+ unicodeslot=0x1D4E4,
},
[0x1D4E5]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD SCRIPT CAPITAL V",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0056 },
- ["unicodeslot"]=0x1D4E5, -- 𝓥
+ category="lu",
+ description="MATHEMATICAL BOLD SCRIPT CAPITAL V",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0056 },
+ unicodeslot=0x1D4E5,
},
[0x1D4E6]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD SCRIPT CAPITAL W",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0057 },
- ["unicodeslot"]=0x1D4E6, -- 𝓦
+ category="lu",
+ description="MATHEMATICAL BOLD SCRIPT CAPITAL W",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0057 },
+ unicodeslot=0x1D4E6,
},
[0x1D4E7]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD SCRIPT CAPITAL X",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0058 },
- ["unicodeslot"]=0x1D4E7, -- 𝓧
+ category="lu",
+ description="MATHEMATICAL BOLD SCRIPT CAPITAL X",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0058 },
+ unicodeslot=0x1D4E7,
},
[0x1D4E8]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD SCRIPT CAPITAL Y",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0059 },
- ["unicodeslot"]=0x1D4E8, -- 𝓨
+ category="lu",
+ description="MATHEMATICAL BOLD SCRIPT CAPITAL Y",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0059 },
+ unicodeslot=0x1D4E8,
},
[0x1D4E9]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD SCRIPT CAPITAL Z",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x005A },
- ["unicodeslot"]=0x1D4E9, -- 𝓩
+ category="lu",
+ description="MATHEMATICAL BOLD SCRIPT CAPITAL Z",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x005A },
+ unicodeslot=0x1D4E9,
},
[0x1D4EA]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SCRIPT SMALL A",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0061 },
- ["unicodeslot"]=0x1D4EA, -- 𝓪
+ category="ll",
+ description="MATHEMATICAL BOLD SCRIPT SMALL A",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0061 },
+ unicodeslot=0x1D4EA,
},
[0x1D4EB]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SCRIPT SMALL B",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0062 },
- ["unicodeslot"]=0x1D4EB, -- 𝓫
+ category="ll",
+ description="MATHEMATICAL BOLD SCRIPT SMALL B",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0062 },
+ unicodeslot=0x1D4EB,
},
[0x1D4EC]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SCRIPT SMALL C",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0063 },
- ["unicodeslot"]=0x1D4EC, -- 𝓬
+ category="ll",
+ description="MATHEMATICAL BOLD SCRIPT SMALL C",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0063 },
+ unicodeslot=0x1D4EC,
},
[0x1D4ED]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SCRIPT SMALL D",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0064 },
- ["unicodeslot"]=0x1D4ED, -- 𝓭
+ category="ll",
+ description="MATHEMATICAL BOLD SCRIPT SMALL D",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0064 },
+ unicodeslot=0x1D4ED,
},
[0x1D4EE]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SCRIPT SMALL E",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0065 },
- ["unicodeslot"]=0x1D4EE, -- 𝓮
+ category="ll",
+ description="MATHEMATICAL BOLD SCRIPT SMALL E",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0065 },
+ unicodeslot=0x1D4EE,
},
[0x1D4EF]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SCRIPT SMALL F",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0066 },
- ["unicodeslot"]=0x1D4EF, -- 𝓯
+ category="ll",
+ description="MATHEMATICAL BOLD SCRIPT SMALL F",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0066 },
+ unicodeslot=0x1D4EF,
},
[0x1D4F0]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SCRIPT SMALL G",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0067 },
- ["unicodeslot"]=0x1D4F0, -- 𝓰
+ category="ll",
+ description="MATHEMATICAL BOLD SCRIPT SMALL G",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0067 },
+ unicodeslot=0x1D4F0,
},
[0x1D4F1]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SCRIPT SMALL H",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0068 },
- ["unicodeslot"]=0x1D4F1, -- 𝓱
+ category="ll",
+ description="MATHEMATICAL BOLD SCRIPT SMALL H",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0068 },
+ unicodeslot=0x1D4F1,
},
[0x1D4F2]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SCRIPT SMALL I",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0069 },
- ["unicodeslot"]=0x1D4F2, -- 𝓲
+ category="ll",
+ description="MATHEMATICAL BOLD SCRIPT SMALL I",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0069 },
+ unicodeslot=0x1D4F2,
},
[0x1D4F3]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SCRIPT SMALL J",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006A },
- ["unicodeslot"]=0x1D4F3, -- 𝓳
+ category="ll",
+ description="MATHEMATICAL BOLD SCRIPT SMALL J",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006A },
+ unicodeslot=0x1D4F3,
},
[0x1D4F4]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SCRIPT SMALL K",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006B },
- ["unicodeslot"]=0x1D4F4, -- 𝓴
+ category="ll",
+ description="MATHEMATICAL BOLD SCRIPT SMALL K",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006B },
+ unicodeslot=0x1D4F4,
},
[0x1D4F5]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SCRIPT SMALL L",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006C },
- ["unicodeslot"]=0x1D4F5, -- 𝓵
+ category="ll",
+ description="MATHEMATICAL BOLD SCRIPT SMALL L",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006C },
+ unicodeslot=0x1D4F5,
},
[0x1D4F6]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SCRIPT SMALL M",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006D },
- ["unicodeslot"]=0x1D4F6, -- 𝓶
+ category="ll",
+ description="MATHEMATICAL BOLD SCRIPT SMALL M",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006D },
+ unicodeslot=0x1D4F6,
},
[0x1D4F7]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SCRIPT SMALL N",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006E },
- ["unicodeslot"]=0x1D4F7, -- 𝓷
+ category="ll",
+ description="MATHEMATICAL BOLD SCRIPT SMALL N",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006E },
+ unicodeslot=0x1D4F7,
},
[0x1D4F8]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SCRIPT SMALL O",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006F },
- ["unicodeslot"]=0x1D4F8, -- 𝓸
+ category="ll",
+ description="MATHEMATICAL BOLD SCRIPT SMALL O",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006F },
+ unicodeslot=0x1D4F8,
},
[0x1D4F9]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SCRIPT SMALL P",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0070 },
- ["unicodeslot"]=0x1D4F9, -- 𝓹
+ category="ll",
+ description="MATHEMATICAL BOLD SCRIPT SMALL P",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0070 },
+ unicodeslot=0x1D4F9,
},
[0x1D4FA]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SCRIPT SMALL Q",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0071 },
- ["unicodeslot"]=0x1D4FA, -- 𝓺
+ category="ll",
+ description="MATHEMATICAL BOLD SCRIPT SMALL Q",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0071 },
+ unicodeslot=0x1D4FA,
},
[0x1D4FB]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SCRIPT SMALL R",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0072 },
- ["unicodeslot"]=0x1D4FB, -- 𝓻
+ category="ll",
+ description="MATHEMATICAL BOLD SCRIPT SMALL R",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0072 },
+ unicodeslot=0x1D4FB,
},
[0x1D4FC]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SCRIPT SMALL S",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0073 },
- ["unicodeslot"]=0x1D4FC, -- 𝓼
+ category="ll",
+ description="MATHEMATICAL BOLD SCRIPT SMALL S",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0073 },
+ unicodeslot=0x1D4FC,
},
[0x1D4FD]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SCRIPT SMALL T",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0074 },
- ["unicodeslot"]=0x1D4FD, -- 𝓽
+ category="ll",
+ description="MATHEMATICAL BOLD SCRIPT SMALL T",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0074 },
+ unicodeslot=0x1D4FD,
},
[0x1D4FE]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SCRIPT SMALL U",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0075 },
- ["unicodeslot"]=0x1D4FE, -- 𝓾
+ category="ll",
+ description="MATHEMATICAL BOLD SCRIPT SMALL U",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0075 },
+ unicodeslot=0x1D4FE,
},
[0x1D4FF]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SCRIPT SMALL V",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0076 },
- ["unicodeslot"]=0x1D4FF, -- 𝓿
+ category="ll",
+ description="MATHEMATICAL BOLD SCRIPT SMALL V",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0076 },
+ unicodeslot=0x1D4FF,
},
[0x1D500]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SCRIPT SMALL W",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0077 },
- ["unicodeslot"]=0x1D500, -- 𝔀
+ category="ll",
+ description="MATHEMATICAL BOLD SCRIPT SMALL W",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0077 },
+ unicodeslot=0x1D500,
},
[0x1D501]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SCRIPT SMALL X",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0078 },
- ["unicodeslot"]=0x1D501, -- 𝔁
+ category="ll",
+ description="MATHEMATICAL BOLD SCRIPT SMALL X",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0078 },
+ unicodeslot=0x1D501,
},
[0x1D502]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SCRIPT SMALL Y",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0079 },
- ["unicodeslot"]=0x1D502, -- 𝔂
+ category="ll",
+ description="MATHEMATICAL BOLD SCRIPT SMALL Y",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0079 },
+ unicodeslot=0x1D502,
},
[0x1D503]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SCRIPT SMALL Z",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x007A },
- ["unicodeslot"]=0x1D503, -- 𝔃
+ category="ll",
+ description="MATHEMATICAL BOLD SCRIPT SMALL Z",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x007A },
+ unicodeslot=0x1D503,
},
[0x1D504]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL FRAKTUR CAPITAL A",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0041 },
- ["unicodeslot"]=0x1D504, -- 𝔄
+ category="lu",
+ description="MATHEMATICAL FRAKTUR CAPITAL A",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0041 },
+ unicodeslot=0x1D504,
},
[0x1D505]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL FRAKTUR CAPITAL B",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0042 },
- ["unicodeslot"]=0x1D505, -- 𝔅
+ category="lu",
+ description="MATHEMATICAL FRAKTUR CAPITAL B",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0042 },
+ unicodeslot=0x1D505,
},
[0x1D507]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL FRAKTUR CAPITAL D",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0044 },
- ["unicodeslot"]=0x1D507, -- 𝔇
+ category="lu",
+ description="MATHEMATICAL FRAKTUR CAPITAL D",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0044 },
+ unicodeslot=0x1D507,
},
[0x1D508]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL FRAKTUR CAPITAL E",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0045 },
- ["unicodeslot"]=0x1D508, -- 𝔈
+ category="lu",
+ description="MATHEMATICAL FRAKTUR CAPITAL E",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0045 },
+ unicodeslot=0x1D508,
},
[0x1D509]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL FRAKTUR CAPITAL F",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0046 },
- ["unicodeslot"]=0x1D509, -- 𝔉
+ category="lu",
+ description="MATHEMATICAL FRAKTUR CAPITAL F",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0046 },
+ unicodeslot=0x1D509,
},
[0x1D50A]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL FRAKTUR CAPITAL G",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0047 },
- ["unicodeslot"]=0x1D50A, -- 𝔊
+ category="lu",
+ description="MATHEMATICAL FRAKTUR CAPITAL G",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0047 },
+ unicodeslot=0x1D50A,
},
[0x1D50D]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL FRAKTUR CAPITAL J",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004A },
- ["unicodeslot"]=0x1D50D, -- 𝔍
+ category="lu",
+ description="MATHEMATICAL FRAKTUR CAPITAL J",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004A },
+ unicodeslot=0x1D50D,
},
[0x1D50E]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL FRAKTUR CAPITAL K",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004B },
- ["unicodeslot"]=0x1D50E, -- 𝔎
+ category="lu",
+ description="MATHEMATICAL FRAKTUR CAPITAL K",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004B },
+ unicodeslot=0x1D50E,
},
[0x1D50F]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL FRAKTUR CAPITAL L",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004C },
- ["unicodeslot"]=0x1D50F, -- 𝔏
+ category="lu",
+ description="MATHEMATICAL FRAKTUR CAPITAL L",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004C },
+ unicodeslot=0x1D50F,
},
[0x1D510]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL FRAKTUR CAPITAL M",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004D },
- ["unicodeslot"]=0x1D510, -- 𝔐
+ category="lu",
+ description="MATHEMATICAL FRAKTUR CAPITAL M",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004D },
+ unicodeslot=0x1D510,
},
[0x1D511]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL FRAKTUR CAPITAL N",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004E },
- ["unicodeslot"]=0x1D511, -- 𝔑
+ category="lu",
+ description="MATHEMATICAL FRAKTUR CAPITAL N",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004E },
+ unicodeslot=0x1D511,
},
[0x1D512]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL FRAKTUR CAPITAL O",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004F },
- ["unicodeslot"]=0x1D512, -- 𝔒
+ category="lu",
+ description="MATHEMATICAL FRAKTUR CAPITAL O",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004F },
+ unicodeslot=0x1D512,
},
[0x1D513]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL FRAKTUR CAPITAL P",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0050 },
- ["unicodeslot"]=0x1D513, -- 𝔓
+ category="lu",
+ description="MATHEMATICAL FRAKTUR CAPITAL P",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0050 },
+ unicodeslot=0x1D513,
},
[0x1D514]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL FRAKTUR CAPITAL Q",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0051 },
- ["unicodeslot"]=0x1D514, -- 𝔔
+ category="lu",
+ description="MATHEMATICAL FRAKTUR CAPITAL Q",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0051 },
+ unicodeslot=0x1D514,
},
[0x1D516]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL FRAKTUR CAPITAL S",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0053 },
- ["unicodeslot"]=0x1D516, -- 𝔖
+ category="lu",
+ description="MATHEMATICAL FRAKTUR CAPITAL S",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0053 },
+ unicodeslot=0x1D516,
},
[0x1D517]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL FRAKTUR CAPITAL T",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0054 },
- ["unicodeslot"]=0x1D517, -- 𝔗
+ category="lu",
+ description="MATHEMATICAL FRAKTUR CAPITAL T",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0054 },
+ unicodeslot=0x1D517,
},
[0x1D518]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL FRAKTUR CAPITAL U",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0055 },
- ["unicodeslot"]=0x1D518, -- 𝔘
+ category="lu",
+ description="MATHEMATICAL FRAKTUR CAPITAL U",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0055 },
+ unicodeslot=0x1D518,
},
[0x1D519]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL FRAKTUR CAPITAL V",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0056 },
- ["unicodeslot"]=0x1D519, -- 𝔙
+ category="lu",
+ description="MATHEMATICAL FRAKTUR CAPITAL V",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0056 },
+ unicodeslot=0x1D519,
},
[0x1D51A]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL FRAKTUR CAPITAL W",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0057 },
- ["unicodeslot"]=0x1D51A, -- 𝔚
+ category="lu",
+ description="MATHEMATICAL FRAKTUR CAPITAL W",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0057 },
+ unicodeslot=0x1D51A,
},
[0x1D51B]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL FRAKTUR CAPITAL X",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0058 },
- ["unicodeslot"]=0x1D51B, -- 𝔛
+ category="lu",
+ description="MATHEMATICAL FRAKTUR CAPITAL X",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0058 },
+ unicodeslot=0x1D51B,
},
[0x1D51C]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL FRAKTUR CAPITAL Y",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0059 },
- ["unicodeslot"]=0x1D51C, -- 𝔜
+ category="lu",
+ description="MATHEMATICAL FRAKTUR CAPITAL Y",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0059 },
+ unicodeslot=0x1D51C,
},
[0x1D51E]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL FRAKTUR SMALL A",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0061 },
- ["unicodeslot"]=0x1D51E, -- 𝔞
+ category="ll",
+ description="MATHEMATICAL FRAKTUR SMALL A",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0061 },
+ unicodeslot=0x1D51E,
},
[0x1D51F]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL FRAKTUR SMALL B",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0062 },
- ["unicodeslot"]=0x1D51F, -- 𝔟
+ category="ll",
+ description="MATHEMATICAL FRAKTUR SMALL B",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0062 },
+ unicodeslot=0x1D51F,
},
[0x1D520]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL FRAKTUR SMALL C",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0063 },
- ["unicodeslot"]=0x1D520, -- 𝔠
+ category="ll",
+ description="MATHEMATICAL FRAKTUR SMALL C",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0063 },
+ unicodeslot=0x1D520,
},
[0x1D521]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL FRAKTUR SMALL D",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0064 },
- ["unicodeslot"]=0x1D521, -- 𝔡
+ category="ll",
+ description="MATHEMATICAL FRAKTUR SMALL D",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0064 },
+ unicodeslot=0x1D521,
},
[0x1D522]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL FRAKTUR SMALL E",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0065 },
- ["unicodeslot"]=0x1D522, -- 𝔢
+ category="ll",
+ description="MATHEMATICAL FRAKTUR SMALL E",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0065 },
+ unicodeslot=0x1D522,
},
[0x1D523]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL FRAKTUR SMALL F",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0066 },
- ["unicodeslot"]=0x1D523, -- 𝔣
+ category="ll",
+ description="MATHEMATICAL FRAKTUR SMALL F",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0066 },
+ unicodeslot=0x1D523,
},
[0x1D524]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL FRAKTUR SMALL G",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0067 },
- ["unicodeslot"]=0x1D524, -- 𝔤
+ category="ll",
+ description="MATHEMATICAL FRAKTUR SMALL G",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0067 },
+ unicodeslot=0x1D524,
},
[0x1D525]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL FRAKTUR SMALL H",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0068 },
- ["unicodeslot"]=0x1D525, -- 𝔥
+ category="ll",
+ description="MATHEMATICAL FRAKTUR SMALL H",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0068 },
+ unicodeslot=0x1D525,
},
[0x1D526]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL FRAKTUR SMALL I",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0069 },
- ["unicodeslot"]=0x1D526, -- 𝔦
+ category="ll",
+ description="MATHEMATICAL FRAKTUR SMALL I",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0069 },
+ unicodeslot=0x1D526,
},
[0x1D527]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL FRAKTUR SMALL J",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006A },
- ["unicodeslot"]=0x1D527, -- 𝔧
+ category="ll",
+ description="MATHEMATICAL FRAKTUR SMALL J",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006A },
+ unicodeslot=0x1D527,
},
[0x1D528]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL FRAKTUR SMALL K",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006B },
- ["unicodeslot"]=0x1D528, -- 𝔨
+ category="ll",
+ description="MATHEMATICAL FRAKTUR SMALL K",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006B },
+ unicodeslot=0x1D528,
},
[0x1D529]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL FRAKTUR SMALL L",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006C },
- ["unicodeslot"]=0x1D529, -- 𝔩
+ category="ll",
+ description="MATHEMATICAL FRAKTUR SMALL L",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006C },
+ unicodeslot=0x1D529,
},
[0x1D52A]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL FRAKTUR SMALL M",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006D },
- ["unicodeslot"]=0x1D52A, -- 𝔪
+ category="ll",
+ description="MATHEMATICAL FRAKTUR SMALL M",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006D },
+ unicodeslot=0x1D52A,
},
[0x1D52B]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL FRAKTUR SMALL N",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006E },
- ["unicodeslot"]=0x1D52B, -- 𝔫
+ category="ll",
+ description="MATHEMATICAL FRAKTUR SMALL N",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006E },
+ unicodeslot=0x1D52B,
},
[0x1D52C]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL FRAKTUR SMALL O",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006F },
- ["unicodeslot"]=0x1D52C, -- 𝔬
+ category="ll",
+ description="MATHEMATICAL FRAKTUR SMALL O",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006F },
+ unicodeslot=0x1D52C,
},
[0x1D52D]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL FRAKTUR SMALL P",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0070 },
- ["unicodeslot"]=0x1D52D, -- 𝔭
+ category="ll",
+ description="MATHEMATICAL FRAKTUR SMALL P",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0070 },
+ unicodeslot=0x1D52D,
},
[0x1D52E]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL FRAKTUR SMALL Q",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0071 },
- ["unicodeslot"]=0x1D52E, -- 𝔮
+ category="ll",
+ description="MATHEMATICAL FRAKTUR SMALL Q",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0071 },
+ unicodeslot=0x1D52E,
},
[0x1D52F]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL FRAKTUR SMALL R",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0072 },
- ["unicodeslot"]=0x1D52F, -- 𝔯
+ category="ll",
+ description="MATHEMATICAL FRAKTUR SMALL R",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0072 },
+ unicodeslot=0x1D52F,
},
[0x1D530]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL FRAKTUR SMALL S",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0073 },
- ["unicodeslot"]=0x1D530, -- 𝔰
+ category="ll",
+ description="MATHEMATICAL FRAKTUR SMALL S",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0073 },
+ unicodeslot=0x1D530,
},
[0x1D531]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL FRAKTUR SMALL T",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0074 },
- ["unicodeslot"]=0x1D531, -- 𝔱
+ category="ll",
+ description="MATHEMATICAL FRAKTUR SMALL T",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0074 },
+ unicodeslot=0x1D531,
},
[0x1D532]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL FRAKTUR SMALL U",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0075 },
- ["unicodeslot"]=0x1D532, -- 𝔲
+ category="ll",
+ description="MATHEMATICAL FRAKTUR SMALL U",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0075 },
+ unicodeslot=0x1D532,
},
[0x1D533]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL FRAKTUR SMALL V",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0076 },
- ["unicodeslot"]=0x1D533, -- 𝔳
+ category="ll",
+ description="MATHEMATICAL FRAKTUR SMALL V",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0076 },
+ unicodeslot=0x1D533,
},
[0x1D534]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL FRAKTUR SMALL W",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0077 },
- ["unicodeslot"]=0x1D534, -- 𝔴
+ category="ll",
+ description="MATHEMATICAL FRAKTUR SMALL W",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0077 },
+ unicodeslot=0x1D534,
},
[0x1D535]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL FRAKTUR SMALL X",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0078 },
- ["unicodeslot"]=0x1D535, -- 𝔵
+ category="ll",
+ description="MATHEMATICAL FRAKTUR SMALL X",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0078 },
+ unicodeslot=0x1D535,
},
[0x1D536]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL FRAKTUR SMALL Y",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0079 },
- ["unicodeslot"]=0x1D536, -- 𝔶
+ category="ll",
+ description="MATHEMATICAL FRAKTUR SMALL Y",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0079 },
+ unicodeslot=0x1D536,
},
[0x1D537]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL FRAKTUR SMALL Z",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x007A },
- ["unicodeslot"]=0x1D537, -- 𝔷
+ category="ll",
+ description="MATHEMATICAL FRAKTUR SMALL Z",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x007A },
+ unicodeslot=0x1D537,
},
[0x1D538]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL DOUBLE-STRUCK CAPITAL A",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0041 },
- ["unicodeslot"]=0x1D538, -- 𝔸
+ category="lu",
+ description="MATHEMATICAL DOUBLE-STRUCK CAPITAL A",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0041 },
+ unicodeslot=0x1D538,
},
[0x1D539]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL DOUBLE-STRUCK CAPITAL B",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0042 },
- ["unicodeslot"]=0x1D539, -- 𝔹
+ category="lu",
+ description="MATHEMATICAL DOUBLE-STRUCK CAPITAL B",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0042 },
+ unicodeslot=0x1D539,
},
[0x1D53B]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL DOUBLE-STRUCK CAPITAL D",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0044 },
- ["unicodeslot"]=0x1D53B, -- 𝔻
+ category="lu",
+ description="MATHEMATICAL DOUBLE-STRUCK CAPITAL D",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0044 },
+ unicodeslot=0x1D53B,
},
[0x1D53C]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL DOUBLE-STRUCK CAPITAL E",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0045 },
- ["unicodeslot"]=0x1D53C, -- 𝔼
+ category="lu",
+ description="MATHEMATICAL DOUBLE-STRUCK CAPITAL E",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0045 },
+ unicodeslot=0x1D53C,
},
[0x1D53D]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL DOUBLE-STRUCK CAPITAL F",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0046 },
- ["unicodeslot"]=0x1D53D, -- 𝔽
+ category="lu",
+ description="MATHEMATICAL DOUBLE-STRUCK CAPITAL F",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0046 },
+ unicodeslot=0x1D53D,
},
[0x1D53E]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL DOUBLE-STRUCK CAPITAL G",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0047 },
- ["unicodeslot"]=0x1D53E, -- 𝔾
+ category="lu",
+ description="MATHEMATICAL DOUBLE-STRUCK CAPITAL G",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0047 },
+ unicodeslot=0x1D53E,
},
[0x1D540]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL DOUBLE-STRUCK CAPITAL I",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0049 },
- ["unicodeslot"]=0x1D540, -- 𝕀
+ category="lu",
+ description="MATHEMATICAL DOUBLE-STRUCK CAPITAL I",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0049 },
+ unicodeslot=0x1D540,
},
[0x1D541]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL DOUBLE-STRUCK CAPITAL J",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004A },
- ["unicodeslot"]=0x1D541, -- 𝕁
+ category="lu",
+ description="MATHEMATICAL DOUBLE-STRUCK CAPITAL J",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004A },
+ unicodeslot=0x1D541,
},
[0x1D542]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL DOUBLE-STRUCK CAPITAL K",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004B },
- ["unicodeslot"]=0x1D542, -- 𝕂
+ category="lu",
+ description="MATHEMATICAL DOUBLE-STRUCK CAPITAL K",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004B },
+ unicodeslot=0x1D542,
},
[0x1D543]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL DOUBLE-STRUCK CAPITAL L",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004C },
- ["unicodeslot"]=0x1D543, -- 𝕃
+ category="lu",
+ description="MATHEMATICAL DOUBLE-STRUCK CAPITAL L",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004C },
+ unicodeslot=0x1D543,
},
[0x1D544]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL DOUBLE-STRUCK CAPITAL M",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004D },
- ["unicodeslot"]=0x1D544, -- 𝕄
+ category="lu",
+ description="MATHEMATICAL DOUBLE-STRUCK CAPITAL M",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004D },
+ unicodeslot=0x1D544,
},
[0x1D546]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL DOUBLE-STRUCK CAPITAL O",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004F },
- ["unicodeslot"]=0x1D546, -- 𝕆
+ category="lu",
+ description="MATHEMATICAL DOUBLE-STRUCK CAPITAL O",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004F },
+ unicodeslot=0x1D546,
},
[0x1D54A]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL DOUBLE-STRUCK CAPITAL S",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0053 },
- ["unicodeslot"]=0x1D54A, -- 𝕊
+ category="lu",
+ description="MATHEMATICAL DOUBLE-STRUCK CAPITAL S",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0053 },
+ unicodeslot=0x1D54A,
},
[0x1D54B]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL DOUBLE-STRUCK CAPITAL T",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0054 },
- ["unicodeslot"]=0x1D54B, -- 𝕋
+ category="lu",
+ description="MATHEMATICAL DOUBLE-STRUCK CAPITAL T",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0054 },
+ unicodeslot=0x1D54B,
},
[0x1D54C]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL DOUBLE-STRUCK CAPITAL U",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0055 },
- ["unicodeslot"]=0x1D54C, -- 𝕌
+ category="lu",
+ description="MATHEMATICAL DOUBLE-STRUCK CAPITAL U",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0055 },
+ unicodeslot=0x1D54C,
},
[0x1D54D]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL DOUBLE-STRUCK CAPITAL V",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0056 },
- ["unicodeslot"]=0x1D54D, -- 𝕍
+ category="lu",
+ description="MATHEMATICAL DOUBLE-STRUCK CAPITAL V",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0056 },
+ unicodeslot=0x1D54D,
},
[0x1D54E]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL DOUBLE-STRUCK CAPITAL W",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0057 },
- ["unicodeslot"]=0x1D54E, -- 𝕎
+ category="lu",
+ description="MATHEMATICAL DOUBLE-STRUCK CAPITAL W",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0057 },
+ unicodeslot=0x1D54E,
},
[0x1D54F]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL DOUBLE-STRUCK CAPITAL X",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0058 },
- ["unicodeslot"]=0x1D54F, -- 𝕏
+ category="lu",
+ description="MATHEMATICAL DOUBLE-STRUCK CAPITAL X",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0058 },
+ unicodeslot=0x1D54F,
},
[0x1D550]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL DOUBLE-STRUCK CAPITAL Y",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0059 },
- ["unicodeslot"]=0x1D550, -- 𝕐
+ category="lu",
+ description="MATHEMATICAL DOUBLE-STRUCK CAPITAL Y",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0059 },
+ unicodeslot=0x1D550,
},
[0x1D552]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL DOUBLE-STRUCK SMALL A",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0061 },
- ["unicodeslot"]=0x1D552, -- 𝕒
+ category="ll",
+ description="MATHEMATICAL DOUBLE-STRUCK SMALL A",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0061 },
+ unicodeslot=0x1D552,
},
[0x1D553]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL DOUBLE-STRUCK SMALL B",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0062 },
- ["unicodeslot"]=0x1D553, -- 𝕓
+ category="ll",
+ description="MATHEMATICAL DOUBLE-STRUCK SMALL B",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0062 },
+ unicodeslot=0x1D553,
},
[0x1D554]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL DOUBLE-STRUCK SMALL C",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0063 },
- ["unicodeslot"]=0x1D554, -- 𝕔
+ category="ll",
+ description="MATHEMATICAL DOUBLE-STRUCK SMALL C",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0063 },
+ unicodeslot=0x1D554,
},
[0x1D555]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL DOUBLE-STRUCK SMALL D",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0064 },
- ["unicodeslot"]=0x1D555, -- 𝕕
+ category="ll",
+ description="MATHEMATICAL DOUBLE-STRUCK SMALL D",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0064 },
+ unicodeslot=0x1D555,
},
[0x1D556]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL DOUBLE-STRUCK SMALL E",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0065 },
- ["unicodeslot"]=0x1D556, -- 𝕖
+ category="ll",
+ description="MATHEMATICAL DOUBLE-STRUCK SMALL E",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0065 },
+ unicodeslot=0x1D556,
},
[0x1D557]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL DOUBLE-STRUCK SMALL F",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0066 },
- ["unicodeslot"]=0x1D557, -- 𝕗
+ category="ll",
+ description="MATHEMATICAL DOUBLE-STRUCK SMALL F",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0066 },
+ unicodeslot=0x1D557,
},
[0x1D558]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL DOUBLE-STRUCK SMALL G",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0067 },
- ["unicodeslot"]=0x1D558, -- 𝕘
+ category="ll",
+ description="MATHEMATICAL DOUBLE-STRUCK SMALL G",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0067 },
+ unicodeslot=0x1D558,
},
[0x1D559]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL DOUBLE-STRUCK SMALL H",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0068 },
- ["unicodeslot"]=0x1D559, -- 𝕙
+ category="ll",
+ description="MATHEMATICAL DOUBLE-STRUCK SMALL H",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0068 },
+ unicodeslot=0x1D559,
},
[0x1D55A]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL DOUBLE-STRUCK SMALL I",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0069 },
- ["unicodeslot"]=0x1D55A, -- 𝕚
+ category="ll",
+ description="MATHEMATICAL DOUBLE-STRUCK SMALL I",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0069 },
+ unicodeslot=0x1D55A,
},
[0x1D55B]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL DOUBLE-STRUCK SMALL J",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006A },
- ["unicodeslot"]=0x1D55B, -- 𝕛
+ category="ll",
+ description="MATHEMATICAL DOUBLE-STRUCK SMALL J",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006A },
+ unicodeslot=0x1D55B,
},
[0x1D55C]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL DOUBLE-STRUCK SMALL K",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006B },
- ["unicodeslot"]=0x1D55C, -- 𝕜
+ category="ll",
+ description="MATHEMATICAL DOUBLE-STRUCK SMALL K",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006B },
+ unicodeslot=0x1D55C,
},
[0x1D55D]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL DOUBLE-STRUCK SMALL L",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006C },
- ["unicodeslot"]=0x1D55D, -- 𝕝
+ category="ll",
+ description="MATHEMATICAL DOUBLE-STRUCK SMALL L",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006C },
+ unicodeslot=0x1D55D,
},
[0x1D55E]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL DOUBLE-STRUCK SMALL M",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006D },
- ["unicodeslot"]=0x1D55E, -- 𝕞
+ category="ll",
+ description="MATHEMATICAL DOUBLE-STRUCK SMALL M",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006D },
+ unicodeslot=0x1D55E,
},
[0x1D55F]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL DOUBLE-STRUCK SMALL N",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006E },
- ["unicodeslot"]=0x1D55F, -- 𝕟
+ category="ll",
+ description="MATHEMATICAL DOUBLE-STRUCK SMALL N",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006E },
+ unicodeslot=0x1D55F,
},
[0x1D560]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL DOUBLE-STRUCK SMALL O",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006F },
- ["unicodeslot"]=0x1D560, -- 𝕠
+ category="ll",
+ description="MATHEMATICAL DOUBLE-STRUCK SMALL O",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006F },
+ unicodeslot=0x1D560,
},
[0x1D561]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL DOUBLE-STRUCK SMALL P",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0070 },
- ["unicodeslot"]=0x1D561, -- 𝕡
+ category="ll",
+ description="MATHEMATICAL DOUBLE-STRUCK SMALL P",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0070 },
+ unicodeslot=0x1D561,
},
[0x1D562]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL DOUBLE-STRUCK SMALL Q",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0071 },
- ["unicodeslot"]=0x1D562, -- 𝕢
+ category="ll",
+ description="MATHEMATICAL DOUBLE-STRUCK SMALL Q",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0071 },
+ unicodeslot=0x1D562,
},
[0x1D563]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL DOUBLE-STRUCK SMALL R",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0072 },
- ["unicodeslot"]=0x1D563, -- 𝕣
+ category="ll",
+ description="MATHEMATICAL DOUBLE-STRUCK SMALL R",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0072 },
+ unicodeslot=0x1D563,
},
[0x1D564]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL DOUBLE-STRUCK SMALL S",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0073 },
- ["unicodeslot"]=0x1D564, -- 𝕤
+ category="ll",
+ description="MATHEMATICAL DOUBLE-STRUCK SMALL S",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0073 },
+ unicodeslot=0x1D564,
},
[0x1D565]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL DOUBLE-STRUCK SMALL T",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0074 },
- ["unicodeslot"]=0x1D565, -- 𝕥
+ category="ll",
+ description="MATHEMATICAL DOUBLE-STRUCK SMALL T",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0074 },
+ unicodeslot=0x1D565,
},
[0x1D566]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL DOUBLE-STRUCK SMALL U",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0075 },
- ["unicodeslot"]=0x1D566, -- 𝕦
+ category="ll",
+ description="MATHEMATICAL DOUBLE-STRUCK SMALL U",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0075 },
+ unicodeslot=0x1D566,
},
[0x1D567]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL DOUBLE-STRUCK SMALL V",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0076 },
- ["unicodeslot"]=0x1D567, -- 𝕧
+ category="ll",
+ description="MATHEMATICAL DOUBLE-STRUCK SMALL V",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0076 },
+ unicodeslot=0x1D567,
},
[0x1D568]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL DOUBLE-STRUCK SMALL W",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0077 },
- ["unicodeslot"]=0x1D568, -- 𝕨
+ category="ll",
+ description="MATHEMATICAL DOUBLE-STRUCK SMALL W",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0077 },
+ unicodeslot=0x1D568,
},
[0x1D569]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL DOUBLE-STRUCK SMALL X",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0078 },
- ["unicodeslot"]=0x1D569, -- 𝕩
+ category="ll",
+ description="MATHEMATICAL DOUBLE-STRUCK SMALL X",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0078 },
+ unicodeslot=0x1D569,
},
[0x1D56A]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL DOUBLE-STRUCK SMALL Y",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0079 },
- ["unicodeslot"]=0x1D56A, -- 𝕪
+ category="ll",
+ description="MATHEMATICAL DOUBLE-STRUCK SMALL Y",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0079 },
+ unicodeslot=0x1D56A,
},
[0x1D56B]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL DOUBLE-STRUCK SMALL Z",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x007A },
- ["unicodeslot"]=0x1D56B, -- 𝕫
+ category="ll",
+ description="MATHEMATICAL DOUBLE-STRUCK SMALL Z",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x007A },
+ unicodeslot=0x1D56B,
},
[0x1D56C]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD FRAKTUR CAPITAL A",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0041 },
- ["unicodeslot"]=0x1D56C, -- 𝕬
+ category="lu",
+ description="MATHEMATICAL BOLD FRAKTUR CAPITAL A",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0041 },
+ unicodeslot=0x1D56C,
},
[0x1D56D]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD FRAKTUR CAPITAL B",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0042 },
- ["unicodeslot"]=0x1D56D, -- 𝕭
+ category="lu",
+ description="MATHEMATICAL BOLD FRAKTUR CAPITAL B",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0042 },
+ unicodeslot=0x1D56D,
},
[0x1D56E]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD FRAKTUR CAPITAL C",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0043 },
- ["unicodeslot"]=0x1D56E, -- 𝕮
+ category="lu",
+ description="MATHEMATICAL BOLD FRAKTUR CAPITAL C",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0043 },
+ unicodeslot=0x1D56E,
},
[0x1D56F]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD FRAKTUR CAPITAL D",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0044 },
- ["unicodeslot"]=0x1D56F, -- 𝕯
+ category="lu",
+ description="MATHEMATICAL BOLD FRAKTUR CAPITAL D",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0044 },
+ unicodeslot=0x1D56F,
},
[0x1D570]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD FRAKTUR CAPITAL E",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0045 },
- ["unicodeslot"]=0x1D570, -- 𝕰
+ category="lu",
+ description="MATHEMATICAL BOLD FRAKTUR CAPITAL E",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0045 },
+ unicodeslot=0x1D570,
},
[0x1D571]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD FRAKTUR CAPITAL F",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0046 },
- ["unicodeslot"]=0x1D571, -- 𝕱
+ category="lu",
+ description="MATHEMATICAL BOLD FRAKTUR CAPITAL F",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0046 },
+ unicodeslot=0x1D571,
},
[0x1D572]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD FRAKTUR CAPITAL G",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0047 },
- ["unicodeslot"]=0x1D572, -- 𝕲
+ category="lu",
+ description="MATHEMATICAL BOLD FRAKTUR CAPITAL G",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0047 },
+ unicodeslot=0x1D572,
},
[0x1D573]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD FRAKTUR CAPITAL H",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0048 },
- ["unicodeslot"]=0x1D573, -- 𝕳
+ category="lu",
+ description="MATHEMATICAL BOLD FRAKTUR CAPITAL H",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0048 },
+ unicodeslot=0x1D573,
},
[0x1D574]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD FRAKTUR CAPITAL I",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0049 },
- ["unicodeslot"]=0x1D574, -- 𝕴
+ category="lu",
+ description="MATHEMATICAL BOLD FRAKTUR CAPITAL I",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0049 },
+ unicodeslot=0x1D574,
},
[0x1D575]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD FRAKTUR CAPITAL J",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004A },
- ["unicodeslot"]=0x1D575, -- 𝕵
+ category="lu",
+ description="MATHEMATICAL BOLD FRAKTUR CAPITAL J",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004A },
+ unicodeslot=0x1D575,
},
[0x1D576]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD FRAKTUR CAPITAL K",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004B },
- ["unicodeslot"]=0x1D576, -- 𝕶
+ category="lu",
+ description="MATHEMATICAL BOLD FRAKTUR CAPITAL K",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004B },
+ unicodeslot=0x1D576,
},
[0x1D577]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD FRAKTUR CAPITAL L",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004C },
- ["unicodeslot"]=0x1D577, -- 𝕷
+ category="lu",
+ description="MATHEMATICAL BOLD FRAKTUR CAPITAL L",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004C },
+ unicodeslot=0x1D577,
},
[0x1D578]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD FRAKTUR CAPITAL M",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004D },
- ["unicodeslot"]=0x1D578, -- 𝕸
+ category="lu",
+ description="MATHEMATICAL BOLD FRAKTUR CAPITAL M",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004D },
+ unicodeslot=0x1D578,
},
[0x1D579]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD FRAKTUR CAPITAL N",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004E },
- ["unicodeslot"]=0x1D579, -- 𝕹
+ category="lu",
+ description="MATHEMATICAL BOLD FRAKTUR CAPITAL N",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004E },
+ unicodeslot=0x1D579,
},
[0x1D57A]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD FRAKTUR CAPITAL O",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004F },
- ["unicodeslot"]=0x1D57A, -- 𝕺
+ category="lu",
+ description="MATHEMATICAL BOLD FRAKTUR CAPITAL O",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004F },
+ unicodeslot=0x1D57A,
},
[0x1D57B]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD FRAKTUR CAPITAL P",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0050 },
- ["unicodeslot"]=0x1D57B, -- 𝕻
+ category="lu",
+ description="MATHEMATICAL BOLD FRAKTUR CAPITAL P",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0050 },
+ unicodeslot=0x1D57B,
},
[0x1D57C]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD FRAKTUR CAPITAL Q",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0051 },
- ["unicodeslot"]=0x1D57C, -- 𝕼
+ category="lu",
+ description="MATHEMATICAL BOLD FRAKTUR CAPITAL Q",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0051 },
+ unicodeslot=0x1D57C,
},
[0x1D57D]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD FRAKTUR CAPITAL R",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0052 },
- ["unicodeslot"]=0x1D57D, -- 𝕽
+ category="lu",
+ description="MATHEMATICAL BOLD FRAKTUR CAPITAL R",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0052 },
+ unicodeslot=0x1D57D,
},
[0x1D57E]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD FRAKTUR CAPITAL S",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0053 },
- ["unicodeslot"]=0x1D57E, -- 𝕾
+ category="lu",
+ description="MATHEMATICAL BOLD FRAKTUR CAPITAL S",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0053 },
+ unicodeslot=0x1D57E,
},
[0x1D57F]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD FRAKTUR CAPITAL T",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0054 },
- ["unicodeslot"]=0x1D57F, -- 𝕿
+ category="lu",
+ description="MATHEMATICAL BOLD FRAKTUR CAPITAL T",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0054 },
+ unicodeslot=0x1D57F,
},
[0x1D580]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD FRAKTUR CAPITAL U",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0055 },
- ["unicodeslot"]=0x1D580, -- 𝖀
+ category="lu",
+ description="MATHEMATICAL BOLD FRAKTUR CAPITAL U",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0055 },
+ unicodeslot=0x1D580,
},
[0x1D581]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD FRAKTUR CAPITAL V",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0056 },
- ["unicodeslot"]=0x1D581, -- 𝖁
+ category="lu",
+ description="MATHEMATICAL BOLD FRAKTUR CAPITAL V",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0056 },
+ unicodeslot=0x1D581,
},
[0x1D582]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD FRAKTUR CAPITAL W",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0057 },
- ["unicodeslot"]=0x1D582, -- 𝖂
+ category="lu",
+ description="MATHEMATICAL BOLD FRAKTUR CAPITAL W",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0057 },
+ unicodeslot=0x1D582,
},
[0x1D583]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD FRAKTUR CAPITAL X",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0058 },
- ["unicodeslot"]=0x1D583, -- 𝖃
+ category="lu",
+ description="MATHEMATICAL BOLD FRAKTUR CAPITAL X",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0058 },
+ unicodeslot=0x1D583,
},
[0x1D584]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD FRAKTUR CAPITAL Y",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0059 },
- ["unicodeslot"]=0x1D584, -- 𝖄
+ category="lu",
+ description="MATHEMATICAL BOLD FRAKTUR CAPITAL Y",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0059 },
+ unicodeslot=0x1D584,
},
[0x1D585]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD FRAKTUR CAPITAL Z",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x005A },
- ["unicodeslot"]=0x1D585, -- 𝖅
+ category="lu",
+ description="MATHEMATICAL BOLD FRAKTUR CAPITAL Z",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x005A },
+ unicodeslot=0x1D585,
},
[0x1D586]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD FRAKTUR SMALL A",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0061 },
- ["unicodeslot"]=0x1D586, -- 𝖆
+ category="ll",
+ description="MATHEMATICAL BOLD FRAKTUR SMALL A",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0061 },
+ unicodeslot=0x1D586,
},
[0x1D587]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD FRAKTUR SMALL B",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0062 },
- ["unicodeslot"]=0x1D587, -- 𝖇
+ category="ll",
+ description="MATHEMATICAL BOLD FRAKTUR SMALL B",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0062 },
+ unicodeslot=0x1D587,
},
[0x1D588]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD FRAKTUR SMALL C",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0063 },
- ["unicodeslot"]=0x1D588, -- 𝖈
+ category="ll",
+ description="MATHEMATICAL BOLD FRAKTUR SMALL C",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0063 },
+ unicodeslot=0x1D588,
},
[0x1D589]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD FRAKTUR SMALL D",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0064 },
- ["unicodeslot"]=0x1D589, -- 𝖉
+ category="ll",
+ description="MATHEMATICAL BOLD FRAKTUR SMALL D",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0064 },
+ unicodeslot=0x1D589,
},
[0x1D58A]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD FRAKTUR SMALL E",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0065 },
- ["unicodeslot"]=0x1D58A, -- 𝖊
+ category="ll",
+ description="MATHEMATICAL BOLD FRAKTUR SMALL E",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0065 },
+ unicodeslot=0x1D58A,
},
[0x1D58B]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD FRAKTUR SMALL F",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0066 },
- ["unicodeslot"]=0x1D58B, -- 𝖋
+ category="ll",
+ description="MATHEMATICAL BOLD FRAKTUR SMALL F",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0066 },
+ unicodeslot=0x1D58B,
},
[0x1D58C]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD FRAKTUR SMALL G",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0067 },
- ["unicodeslot"]=0x1D58C, -- 𝖌
+ category="ll",
+ description="MATHEMATICAL BOLD FRAKTUR SMALL G",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0067 },
+ unicodeslot=0x1D58C,
},
[0x1D58D]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD FRAKTUR SMALL H",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0068 },
- ["unicodeslot"]=0x1D58D, -- 𝖍
+ category="ll",
+ description="MATHEMATICAL BOLD FRAKTUR SMALL H",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0068 },
+ unicodeslot=0x1D58D,
},
[0x1D58E]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD FRAKTUR SMALL I",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0069 },
- ["unicodeslot"]=0x1D58E, -- 𝖎
+ category="ll",
+ description="MATHEMATICAL BOLD FRAKTUR SMALL I",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0069 },
+ unicodeslot=0x1D58E,
},
[0x1D58F]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD FRAKTUR SMALL J",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006A },
- ["unicodeslot"]=0x1D58F, -- 𝖏
+ category="ll",
+ description="MATHEMATICAL BOLD FRAKTUR SMALL J",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006A },
+ unicodeslot=0x1D58F,
},
[0x1D590]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD FRAKTUR SMALL K",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006B },
- ["unicodeslot"]=0x1D590, -- 𝖐
+ category="ll",
+ description="MATHEMATICAL BOLD FRAKTUR SMALL K",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006B },
+ unicodeslot=0x1D590,
},
[0x1D591]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD FRAKTUR SMALL L",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006C },
- ["unicodeslot"]=0x1D591, -- 𝖑
+ category="ll",
+ description="MATHEMATICAL BOLD FRAKTUR SMALL L",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006C },
+ unicodeslot=0x1D591,
},
[0x1D592]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD FRAKTUR SMALL M",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006D },
- ["unicodeslot"]=0x1D592, -- 𝖒
+ category="ll",
+ description="MATHEMATICAL BOLD FRAKTUR SMALL M",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006D },
+ unicodeslot=0x1D592,
},
[0x1D593]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD FRAKTUR SMALL N",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006E },
- ["unicodeslot"]=0x1D593, -- 𝖓
+ category="ll",
+ description="MATHEMATICAL BOLD FRAKTUR SMALL N",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006E },
+ unicodeslot=0x1D593,
},
[0x1D594]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD FRAKTUR SMALL O",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006F },
- ["unicodeslot"]=0x1D594, -- 𝖔
+ category="ll",
+ description="MATHEMATICAL BOLD FRAKTUR SMALL O",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006F },
+ unicodeslot=0x1D594,
},
[0x1D595]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD FRAKTUR SMALL P",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0070 },
- ["unicodeslot"]=0x1D595, -- 𝖕
+ category="ll",
+ description="MATHEMATICAL BOLD FRAKTUR SMALL P",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0070 },
+ unicodeslot=0x1D595,
},
[0x1D596]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD FRAKTUR SMALL Q",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0071 },
- ["unicodeslot"]=0x1D596, -- 𝖖
+ category="ll",
+ description="MATHEMATICAL BOLD FRAKTUR SMALL Q",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0071 },
+ unicodeslot=0x1D596,
},
[0x1D597]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD FRAKTUR SMALL R",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0072 },
- ["unicodeslot"]=0x1D597, -- 𝖗
+ category="ll",
+ description="MATHEMATICAL BOLD FRAKTUR SMALL R",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0072 },
+ unicodeslot=0x1D597,
},
[0x1D598]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD FRAKTUR SMALL S",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0073 },
- ["unicodeslot"]=0x1D598, -- 𝖘
+ category="ll",
+ description="MATHEMATICAL BOLD FRAKTUR SMALL S",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0073 },
+ unicodeslot=0x1D598,
},
[0x1D599]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD FRAKTUR SMALL T",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0074 },
- ["unicodeslot"]=0x1D599, -- 𝖙
+ category="ll",
+ description="MATHEMATICAL BOLD FRAKTUR SMALL T",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0074 },
+ unicodeslot=0x1D599,
},
[0x1D59A]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD FRAKTUR SMALL U",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0075 },
- ["unicodeslot"]=0x1D59A, -- 𝖚
+ category="ll",
+ description="MATHEMATICAL BOLD FRAKTUR SMALL U",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0075 },
+ unicodeslot=0x1D59A,
},
[0x1D59B]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD FRAKTUR SMALL V",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0076 },
- ["unicodeslot"]=0x1D59B, -- 𝖛
+ category="ll",
+ description="MATHEMATICAL BOLD FRAKTUR SMALL V",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0076 },
+ unicodeslot=0x1D59B,
},
[0x1D59C]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD FRAKTUR SMALL W",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0077 },
- ["unicodeslot"]=0x1D59C, -- 𝖜
+ category="ll",
+ description="MATHEMATICAL BOLD FRAKTUR SMALL W",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0077 },
+ unicodeslot=0x1D59C,
},
[0x1D59D]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD FRAKTUR SMALL X",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0078 },
- ["unicodeslot"]=0x1D59D, -- 𝖝
+ category="ll",
+ description="MATHEMATICAL BOLD FRAKTUR SMALL X",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0078 },
+ unicodeslot=0x1D59D,
},
[0x1D59E]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD FRAKTUR SMALL Y",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0079 },
- ["unicodeslot"]=0x1D59E, -- 𝖞
+ category="ll",
+ description="MATHEMATICAL BOLD FRAKTUR SMALL Y",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0079 },
+ unicodeslot=0x1D59E,
},
[0x1D59F]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD FRAKTUR SMALL Z",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x007A },
- ["unicodeslot"]=0x1D59F, -- 𝖟
+ category="ll",
+ description="MATHEMATICAL BOLD FRAKTUR SMALL Z",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x007A },
+ unicodeslot=0x1D59F,
},
[0x1D5A0]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF CAPITAL A",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0041 },
- ["unicodeslot"]=0x1D5A0, -- 𝖠
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF CAPITAL A",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0041 },
+ unicodeslot=0x1D5A0,
},
[0x1D5A1]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF CAPITAL B",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0042 },
- ["unicodeslot"]=0x1D5A1, -- 𝖡
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF CAPITAL B",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0042 },
+ unicodeslot=0x1D5A1,
},
[0x1D5A2]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF CAPITAL C",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0043 },
- ["unicodeslot"]=0x1D5A2, -- 𝖢
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF CAPITAL C",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0043 },
+ unicodeslot=0x1D5A2,
},
[0x1D5A3]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF CAPITAL D",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0044 },
- ["unicodeslot"]=0x1D5A3, -- 𝖣
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF CAPITAL D",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0044 },
+ unicodeslot=0x1D5A3,
},
[0x1D5A4]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF CAPITAL E",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0045 },
- ["unicodeslot"]=0x1D5A4, -- 𝖤
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF CAPITAL E",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0045 },
+ unicodeslot=0x1D5A4,
},
[0x1D5A5]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF CAPITAL F",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0046 },
- ["unicodeslot"]=0x1D5A5, -- 𝖥
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF CAPITAL F",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0046 },
+ unicodeslot=0x1D5A5,
},
[0x1D5A6]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF CAPITAL G",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0047 },
- ["unicodeslot"]=0x1D5A6, -- 𝖦
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF CAPITAL G",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0047 },
+ unicodeslot=0x1D5A6,
},
[0x1D5A7]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF CAPITAL H",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0048 },
- ["unicodeslot"]=0x1D5A7, -- 𝖧
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF CAPITAL H",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0048 },
+ unicodeslot=0x1D5A7,
},
[0x1D5A8]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF CAPITAL I",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0049 },
- ["unicodeslot"]=0x1D5A8, -- 𝖨
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF CAPITAL I",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0049 },
+ unicodeslot=0x1D5A8,
},
[0x1D5A9]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF CAPITAL J",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004A },
- ["unicodeslot"]=0x1D5A9, -- 𝖩
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF CAPITAL J",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004A },
+ unicodeslot=0x1D5A9,
},
[0x1D5AA]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF CAPITAL K",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004B },
- ["unicodeslot"]=0x1D5AA, -- 𝖪
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF CAPITAL K",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004B },
+ unicodeslot=0x1D5AA,
},
[0x1D5AB]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF CAPITAL L",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004C },
- ["unicodeslot"]=0x1D5AB, -- 𝖫
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF CAPITAL L",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004C },
+ unicodeslot=0x1D5AB,
},
[0x1D5AC]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF CAPITAL M",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004D },
- ["unicodeslot"]=0x1D5AC, -- 𝖬
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF CAPITAL M",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004D },
+ unicodeslot=0x1D5AC,
},
[0x1D5AD]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF CAPITAL N",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004E },
- ["unicodeslot"]=0x1D5AD, -- 𝖭
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF CAPITAL N",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004E },
+ unicodeslot=0x1D5AD,
},
[0x1D5AE]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF CAPITAL O",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004F },
- ["unicodeslot"]=0x1D5AE, -- 𝖮
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF CAPITAL O",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004F },
+ unicodeslot=0x1D5AE,
},
[0x1D5AF]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF CAPITAL P",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0050 },
- ["unicodeslot"]=0x1D5AF, -- 𝖯
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF CAPITAL P",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0050 },
+ unicodeslot=0x1D5AF,
},
[0x1D5B0]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF CAPITAL Q",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0051 },
- ["unicodeslot"]=0x1D5B0, -- 𝖰
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF CAPITAL Q",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0051 },
+ unicodeslot=0x1D5B0,
},
[0x1D5B1]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF CAPITAL R",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0052 },
- ["unicodeslot"]=0x1D5B1, -- 𝖱
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF CAPITAL R",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0052 },
+ unicodeslot=0x1D5B1,
},
[0x1D5B2]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF CAPITAL S",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0053 },
- ["unicodeslot"]=0x1D5B2, -- 𝖲
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF CAPITAL S",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0053 },
+ unicodeslot=0x1D5B2,
},
[0x1D5B3]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF CAPITAL T",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0054 },
- ["unicodeslot"]=0x1D5B3, -- 𝖳
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF CAPITAL T",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0054 },
+ unicodeslot=0x1D5B3,
},
[0x1D5B4]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF CAPITAL U",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0055 },
- ["unicodeslot"]=0x1D5B4, -- 𝖴
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF CAPITAL U",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0055 },
+ unicodeslot=0x1D5B4,
},
[0x1D5B5]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF CAPITAL V",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0056 },
- ["unicodeslot"]=0x1D5B5, -- 𝖵
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF CAPITAL V",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0056 },
+ unicodeslot=0x1D5B5,
},
[0x1D5B6]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF CAPITAL W",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0057 },
- ["unicodeslot"]=0x1D5B6, -- 𝖶
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF CAPITAL W",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0057 },
+ unicodeslot=0x1D5B6,
},
[0x1D5B7]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF CAPITAL X",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0058 },
- ["unicodeslot"]=0x1D5B7, -- 𝖷
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF CAPITAL X",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0058 },
+ unicodeslot=0x1D5B7,
},
[0x1D5B8]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF CAPITAL Y",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0059 },
- ["unicodeslot"]=0x1D5B8, -- 𝖸
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF CAPITAL Y",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0059 },
+ unicodeslot=0x1D5B8,
},
[0x1D5B9]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF CAPITAL Z",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x005A },
- ["unicodeslot"]=0x1D5B9, -- 𝖹
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF CAPITAL Z",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x005A },
+ unicodeslot=0x1D5B9,
},
[0x1D5BA]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF SMALL A",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0061 },
- ["unicodeslot"]=0x1D5BA, -- 𝖺
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF SMALL A",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0061 },
+ unicodeslot=0x1D5BA,
},
[0x1D5BB]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF SMALL B",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0062 },
- ["unicodeslot"]=0x1D5BB, -- 𝖻
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF SMALL B",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0062 },
+ unicodeslot=0x1D5BB,
},
[0x1D5BC]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF SMALL C",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0063 },
- ["unicodeslot"]=0x1D5BC, -- 𝖼
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF SMALL C",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0063 },
+ unicodeslot=0x1D5BC,
},
[0x1D5BD]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF SMALL D",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0064 },
- ["unicodeslot"]=0x1D5BD, -- 𝖽
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF SMALL D",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0064 },
+ unicodeslot=0x1D5BD,
},
[0x1D5BE]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF SMALL E",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0065 },
- ["unicodeslot"]=0x1D5BE, -- 𝖾
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF SMALL E",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0065 },
+ unicodeslot=0x1D5BE,
},
[0x1D5BF]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF SMALL F",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0066 },
- ["unicodeslot"]=0x1D5BF, -- 𝖿
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF SMALL F",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0066 },
+ unicodeslot=0x1D5BF,
},
[0x1D5C0]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF SMALL G",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0067 },
- ["unicodeslot"]=0x1D5C0, -- 𝗀
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF SMALL G",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0067 },
+ unicodeslot=0x1D5C0,
},
[0x1D5C1]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF SMALL H",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0068 },
- ["unicodeslot"]=0x1D5C1, -- 𝗁
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF SMALL H",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0068 },
+ unicodeslot=0x1D5C1,
},
[0x1D5C2]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF SMALL I",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0069 },
- ["unicodeslot"]=0x1D5C2, -- 𝗂
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF SMALL I",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0069 },
+ unicodeslot=0x1D5C2,
},
[0x1D5C3]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF SMALL J",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006A },
- ["unicodeslot"]=0x1D5C3, -- 𝗃
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF SMALL J",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006A },
+ unicodeslot=0x1D5C3,
},
[0x1D5C4]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF SMALL K",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006B },
- ["unicodeslot"]=0x1D5C4, -- 𝗄
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF SMALL K",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006B },
+ unicodeslot=0x1D5C4,
},
[0x1D5C5]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF SMALL L",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006C },
- ["unicodeslot"]=0x1D5C5, -- 𝗅
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF SMALL L",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006C },
+ unicodeslot=0x1D5C5,
},
[0x1D5C6]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF SMALL M",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006D },
- ["unicodeslot"]=0x1D5C6, -- 𝗆
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF SMALL M",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006D },
+ unicodeslot=0x1D5C6,
},
[0x1D5C7]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF SMALL N",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006E },
- ["unicodeslot"]=0x1D5C7, -- 𝗇
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF SMALL N",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006E },
+ unicodeslot=0x1D5C7,
},
[0x1D5C8]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF SMALL O",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006F },
- ["unicodeslot"]=0x1D5C8, -- 𝗈
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF SMALL O",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006F },
+ unicodeslot=0x1D5C8,
},
[0x1D5C9]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF SMALL P",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0070 },
- ["unicodeslot"]=0x1D5C9, -- 𝗉
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF SMALL P",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0070 },
+ unicodeslot=0x1D5C9,
},
[0x1D5CA]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF SMALL Q",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0071 },
- ["unicodeslot"]=0x1D5CA, -- 𝗊
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF SMALL Q",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0071 },
+ unicodeslot=0x1D5CA,
},
[0x1D5CB]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF SMALL R",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0072 },
- ["unicodeslot"]=0x1D5CB, -- 𝗋
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF SMALL R",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0072 },
+ unicodeslot=0x1D5CB,
},
[0x1D5CC]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF SMALL S",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0073 },
- ["unicodeslot"]=0x1D5CC, -- 𝗌
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF SMALL S",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0073 },
+ unicodeslot=0x1D5CC,
},
[0x1D5CD]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF SMALL T",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0074 },
- ["unicodeslot"]=0x1D5CD, -- 𝗍
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF SMALL T",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0074 },
+ unicodeslot=0x1D5CD,
},
[0x1D5CE]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF SMALL U",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0075 },
- ["unicodeslot"]=0x1D5CE, -- 𝗎
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF SMALL U",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0075 },
+ unicodeslot=0x1D5CE,
},
[0x1D5CF]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF SMALL V",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0076 },
- ["unicodeslot"]=0x1D5CF, -- 𝗏
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF SMALL V",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0076 },
+ unicodeslot=0x1D5CF,
},
[0x1D5D0]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF SMALL W",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0077 },
- ["unicodeslot"]=0x1D5D0, -- 𝗐
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF SMALL W",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0077 },
+ unicodeslot=0x1D5D0,
},
[0x1D5D1]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF SMALL X",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0078 },
- ["unicodeslot"]=0x1D5D1, -- 𝗑
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF SMALL X",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0078 },
+ unicodeslot=0x1D5D1,
},
[0x1D5D2]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF SMALL Y",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0079 },
- ["unicodeslot"]=0x1D5D2, -- 𝗒
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF SMALL Y",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0079 },
+ unicodeslot=0x1D5D2,
},
[0x1D5D3]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF SMALL Z",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x007A },
- ["unicodeslot"]=0x1D5D3, -- 𝗓
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF SMALL Z",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x007A },
+ unicodeslot=0x1D5D3,
},
[0x1D5D4]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD CAPITAL A",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0041 },
- ["unicodeslot"]=0x1D5D4, -- 𝗔
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD CAPITAL A",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0041 },
+ unicodeslot=0x1D5D4,
},
[0x1D5D5]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD CAPITAL B",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0042 },
- ["unicodeslot"]=0x1D5D5, -- 𝗕
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD CAPITAL B",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0042 },
+ unicodeslot=0x1D5D5,
},
[0x1D5D6]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD CAPITAL C",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0043 },
- ["unicodeslot"]=0x1D5D6, -- 𝗖
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD CAPITAL C",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0043 },
+ unicodeslot=0x1D5D6,
},
[0x1D5D7]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD CAPITAL D",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0044 },
- ["unicodeslot"]=0x1D5D7, -- 𝗗
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD CAPITAL D",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0044 },
+ unicodeslot=0x1D5D7,
},
[0x1D5D8]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD CAPITAL E",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0045 },
- ["unicodeslot"]=0x1D5D8, -- 𝗘
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD CAPITAL E",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0045 },
+ unicodeslot=0x1D5D8,
},
[0x1D5D9]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD CAPITAL F",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0046 },
- ["unicodeslot"]=0x1D5D9, -- 𝗙
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD CAPITAL F",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0046 },
+ unicodeslot=0x1D5D9,
},
[0x1D5DA]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD CAPITAL G",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0047 },
- ["unicodeslot"]=0x1D5DA, -- 𝗚
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD CAPITAL G",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0047 },
+ unicodeslot=0x1D5DA,
},
[0x1D5DB]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD CAPITAL H",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0048 },
- ["unicodeslot"]=0x1D5DB, -- 𝗛
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD CAPITAL H",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0048 },
+ unicodeslot=0x1D5DB,
},
[0x1D5DC]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD CAPITAL I",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0049 },
- ["unicodeslot"]=0x1D5DC, -- 𝗜
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD CAPITAL I",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0049 },
+ unicodeslot=0x1D5DC,
},
[0x1D5DD]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD CAPITAL J",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004A },
- ["unicodeslot"]=0x1D5DD, -- 𝗝
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD CAPITAL J",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004A },
+ unicodeslot=0x1D5DD,
},
[0x1D5DE]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD CAPITAL K",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004B },
- ["unicodeslot"]=0x1D5DE, -- 𝗞
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD CAPITAL K",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004B },
+ unicodeslot=0x1D5DE,
},
[0x1D5DF]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD CAPITAL L",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004C },
- ["unicodeslot"]=0x1D5DF, -- 𝗟
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD CAPITAL L",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004C },
+ unicodeslot=0x1D5DF,
},
[0x1D5E0]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD CAPITAL M",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004D },
- ["unicodeslot"]=0x1D5E0, -- 𝗠
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD CAPITAL M",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004D },
+ unicodeslot=0x1D5E0,
},
[0x1D5E1]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD CAPITAL N",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004E },
- ["unicodeslot"]=0x1D5E1, -- 𝗡
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD CAPITAL N",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004E },
+ unicodeslot=0x1D5E1,
},
[0x1D5E2]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD CAPITAL O",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004F },
- ["unicodeslot"]=0x1D5E2, -- 𝗢
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD CAPITAL O",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004F },
+ unicodeslot=0x1D5E2,
},
[0x1D5E3]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD CAPITAL P",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0050 },
- ["unicodeslot"]=0x1D5E3, -- 𝗣
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD CAPITAL P",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0050 },
+ unicodeslot=0x1D5E3,
},
[0x1D5E4]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD CAPITAL Q",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0051 },
- ["unicodeslot"]=0x1D5E4, -- 𝗤
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD CAPITAL Q",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0051 },
+ unicodeslot=0x1D5E4,
},
[0x1D5E5]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD CAPITAL R",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0052 },
- ["unicodeslot"]=0x1D5E5, -- 𝗥
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD CAPITAL R",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0052 },
+ unicodeslot=0x1D5E5,
},
[0x1D5E6]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD CAPITAL S",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0053 },
- ["unicodeslot"]=0x1D5E6, -- 𝗦
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD CAPITAL S",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0053 },
+ unicodeslot=0x1D5E6,
},
[0x1D5E7]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD CAPITAL T",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0054 },
- ["unicodeslot"]=0x1D5E7, -- 𝗧
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD CAPITAL T",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0054 },
+ unicodeslot=0x1D5E7,
},
[0x1D5E8]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD CAPITAL U",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0055 },
- ["unicodeslot"]=0x1D5E8, -- 𝗨
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD CAPITAL U",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0055 },
+ unicodeslot=0x1D5E8,
},
[0x1D5E9]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD CAPITAL V",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0056 },
- ["unicodeslot"]=0x1D5E9, -- 𝗩
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD CAPITAL V",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0056 },
+ unicodeslot=0x1D5E9,
},
[0x1D5EA]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD CAPITAL W",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0057 },
- ["unicodeslot"]=0x1D5EA, -- 𝗪
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD CAPITAL W",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0057 },
+ unicodeslot=0x1D5EA,
},
[0x1D5EB]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD CAPITAL X",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0058 },
- ["unicodeslot"]=0x1D5EB, -- 𝗫
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD CAPITAL X",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0058 },
+ unicodeslot=0x1D5EB,
},
[0x1D5EC]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD CAPITAL Y",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0059 },
- ["unicodeslot"]=0x1D5EC, -- 𝗬
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD CAPITAL Y",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0059 },
+ unicodeslot=0x1D5EC,
},
[0x1D5ED]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD CAPITAL Z",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x005A },
- ["unicodeslot"]=0x1D5ED, -- 𝗭
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD CAPITAL Z",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x005A },
+ unicodeslot=0x1D5ED,
},
[0x1D5EE]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD SMALL A",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0061 },
- ["unicodeslot"]=0x1D5EE, -- 𝗮
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD SMALL A",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0061 },
+ unicodeslot=0x1D5EE,
},
[0x1D5EF]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD SMALL B",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0062 },
- ["unicodeslot"]=0x1D5EF, -- 𝗯
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD SMALL B",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0062 },
+ unicodeslot=0x1D5EF,
},
[0x1D5F0]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD SMALL C",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0063 },
- ["unicodeslot"]=0x1D5F0, -- 𝗰
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD SMALL C",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0063 },
+ unicodeslot=0x1D5F0,
},
[0x1D5F1]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD SMALL D",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0064 },
- ["unicodeslot"]=0x1D5F1, -- 𝗱
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD SMALL D",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0064 },
+ unicodeslot=0x1D5F1,
},
[0x1D5F2]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD SMALL E",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0065 },
- ["unicodeslot"]=0x1D5F2, -- 𝗲
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD SMALL E",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0065 },
+ unicodeslot=0x1D5F2,
},
[0x1D5F3]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD SMALL F",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0066 },
- ["unicodeslot"]=0x1D5F3, -- 𝗳
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD SMALL F",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0066 },
+ unicodeslot=0x1D5F3,
},
[0x1D5F4]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD SMALL G",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0067 },
- ["unicodeslot"]=0x1D5F4, -- 𝗴
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD SMALL G",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0067 },
+ unicodeslot=0x1D5F4,
},
[0x1D5F5]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD SMALL H",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0068 },
- ["unicodeslot"]=0x1D5F5, -- 𝗵
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD SMALL H",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0068 },
+ unicodeslot=0x1D5F5,
},
[0x1D5F6]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD SMALL I",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0069 },
- ["unicodeslot"]=0x1D5F6, -- 𝗶
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD SMALL I",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0069 },
+ unicodeslot=0x1D5F6,
},
[0x1D5F7]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD SMALL J",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006A },
- ["unicodeslot"]=0x1D5F7, -- 𝗷
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD SMALL J",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006A },
+ unicodeslot=0x1D5F7,
},
[0x1D5F8]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD SMALL K",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006B },
- ["unicodeslot"]=0x1D5F8, -- 𝗸
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD SMALL K",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006B },
+ unicodeslot=0x1D5F8,
},
[0x1D5F9]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD SMALL L",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006C },
- ["unicodeslot"]=0x1D5F9, -- 𝗹
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD SMALL L",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006C },
+ unicodeslot=0x1D5F9,
},
[0x1D5FA]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD SMALL M",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006D },
- ["unicodeslot"]=0x1D5FA, -- 𝗺
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD SMALL M",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006D },
+ unicodeslot=0x1D5FA,
},
[0x1D5FB]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD SMALL N",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006E },
- ["unicodeslot"]=0x1D5FB, -- 𝗻
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD SMALL N",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006E },
+ unicodeslot=0x1D5FB,
},
[0x1D5FC]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD SMALL O",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006F },
- ["unicodeslot"]=0x1D5FC, -- 𝗼
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD SMALL O",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006F },
+ unicodeslot=0x1D5FC,
},
[0x1D5FD]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD SMALL P",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0070 },
- ["unicodeslot"]=0x1D5FD, -- 𝗽
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD SMALL P",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0070 },
+ unicodeslot=0x1D5FD,
},
[0x1D5FE]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD SMALL Q",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0071 },
- ["unicodeslot"]=0x1D5FE, -- 𝗾
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD SMALL Q",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0071 },
+ unicodeslot=0x1D5FE,
},
[0x1D5FF]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD SMALL R",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0072 },
- ["unicodeslot"]=0x1D5FF, -- 𝗿
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD SMALL R",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0072 },
+ unicodeslot=0x1D5FF,
},
[0x1D600]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD SMALL S",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0073 },
- ["unicodeslot"]=0x1D600, -- 𝘀
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD SMALL S",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0073 },
+ unicodeslot=0x1D600,
},
[0x1D601]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD SMALL T",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0074 },
- ["unicodeslot"]=0x1D601, -- 𝘁
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD SMALL T",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0074 },
+ unicodeslot=0x1D601,
},
[0x1D602]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD SMALL U",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0075 },
- ["unicodeslot"]=0x1D602, -- 𝘂
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD SMALL U",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0075 },
+ unicodeslot=0x1D602,
},
[0x1D603]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD SMALL V",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0076 },
- ["unicodeslot"]=0x1D603, -- 𝘃
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD SMALL V",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0076 },
+ unicodeslot=0x1D603,
},
[0x1D604]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD SMALL W",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0077 },
- ["unicodeslot"]=0x1D604, -- 𝘄
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD SMALL W",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0077 },
+ unicodeslot=0x1D604,
},
[0x1D605]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD SMALL X",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0078 },
- ["unicodeslot"]=0x1D605, -- 𝘅
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD SMALL X",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0078 },
+ unicodeslot=0x1D605,
},
[0x1D606]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD SMALL Y",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0079 },
- ["unicodeslot"]=0x1D606, -- 𝘆
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD SMALL Y",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0079 },
+ unicodeslot=0x1D606,
},
[0x1D607]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD SMALL Z",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x007A },
- ["unicodeslot"]=0x1D607, -- 𝘇
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD SMALL Z",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x007A },
+ unicodeslot=0x1D607,
},
[0x1D608]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF ITALIC CAPITAL A",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0041 },
- ["unicodeslot"]=0x1D608, -- 𝘈
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF ITALIC CAPITAL A",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0041 },
+ unicodeslot=0x1D608,
},
[0x1D609]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF ITALIC CAPITAL B",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0042 },
- ["unicodeslot"]=0x1D609, -- 𝘉
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF ITALIC CAPITAL B",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0042 },
+ unicodeslot=0x1D609,
},
[0x1D60A]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF ITALIC CAPITAL C",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0043 },
- ["unicodeslot"]=0x1D60A, -- 𝘊
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF ITALIC CAPITAL C",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0043 },
+ unicodeslot=0x1D60A,
},
[0x1D60B]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF ITALIC CAPITAL D",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0044 },
- ["unicodeslot"]=0x1D60B, -- 𝘋
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF ITALIC CAPITAL D",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0044 },
+ unicodeslot=0x1D60B,
},
[0x1D60C]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF ITALIC CAPITAL E",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0045 },
- ["unicodeslot"]=0x1D60C, -- 𝘌
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF ITALIC CAPITAL E",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0045 },
+ unicodeslot=0x1D60C,
},
[0x1D60D]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF ITALIC CAPITAL F",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0046 },
- ["unicodeslot"]=0x1D60D, -- 𝘍
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF ITALIC CAPITAL F",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0046 },
+ unicodeslot=0x1D60D,
},
[0x1D60E]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF ITALIC CAPITAL G",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0047 },
- ["unicodeslot"]=0x1D60E, -- 𝘎
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF ITALIC CAPITAL G",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0047 },
+ unicodeslot=0x1D60E,
},
[0x1D60F]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF ITALIC CAPITAL H",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0048 },
- ["unicodeslot"]=0x1D60F, -- 𝘏
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF ITALIC CAPITAL H",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0048 },
+ unicodeslot=0x1D60F,
},
[0x1D610]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF ITALIC CAPITAL I",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0049 },
- ["unicodeslot"]=0x1D610, -- 𝘐
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF ITALIC CAPITAL I",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0049 },
+ unicodeslot=0x1D610,
},
[0x1D611]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF ITALIC CAPITAL J",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004A },
- ["unicodeslot"]=0x1D611, -- 𝘑
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF ITALIC CAPITAL J",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004A },
+ unicodeslot=0x1D611,
},
[0x1D612]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF ITALIC CAPITAL K",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004B },
- ["unicodeslot"]=0x1D612, -- 𝘒
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF ITALIC CAPITAL K",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004B },
+ unicodeslot=0x1D612,
},
[0x1D613]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF ITALIC CAPITAL L",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004C },
- ["unicodeslot"]=0x1D613, -- 𝘓
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF ITALIC CAPITAL L",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004C },
+ unicodeslot=0x1D613,
},
[0x1D614]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF ITALIC CAPITAL M",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004D },
- ["unicodeslot"]=0x1D614, -- 𝘔
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF ITALIC CAPITAL M",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004D },
+ unicodeslot=0x1D614,
},
[0x1D615]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF ITALIC CAPITAL N",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004E },
- ["unicodeslot"]=0x1D615, -- 𝘕
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF ITALIC CAPITAL N",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004E },
+ unicodeslot=0x1D615,
},
[0x1D616]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF ITALIC CAPITAL O",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004F },
- ["unicodeslot"]=0x1D616, -- 𝘖
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF ITALIC CAPITAL O",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004F },
+ unicodeslot=0x1D616,
},
[0x1D617]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF ITALIC CAPITAL P",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0050 },
- ["unicodeslot"]=0x1D617, -- 𝘗
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF ITALIC CAPITAL P",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0050 },
+ unicodeslot=0x1D617,
},
[0x1D618]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF ITALIC CAPITAL Q",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0051 },
- ["unicodeslot"]=0x1D618, -- 𝘘
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF ITALIC CAPITAL Q",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0051 },
+ unicodeslot=0x1D618,
},
[0x1D619]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF ITALIC CAPITAL R",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0052 },
- ["unicodeslot"]=0x1D619, -- 𝘙
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF ITALIC CAPITAL R",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0052 },
+ unicodeslot=0x1D619,
},
[0x1D61A]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF ITALIC CAPITAL S",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0053 },
- ["unicodeslot"]=0x1D61A, -- 𝘚
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF ITALIC CAPITAL S",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0053 },
+ unicodeslot=0x1D61A,
},
[0x1D61B]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF ITALIC CAPITAL T",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0054 },
- ["unicodeslot"]=0x1D61B, -- 𝘛
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF ITALIC CAPITAL T",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0054 },
+ unicodeslot=0x1D61B,
},
[0x1D61C]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF ITALIC CAPITAL U",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0055 },
- ["unicodeslot"]=0x1D61C, -- 𝘜
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF ITALIC CAPITAL U",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0055 },
+ unicodeslot=0x1D61C,
},
[0x1D61D]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF ITALIC CAPITAL V",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0056 },
- ["unicodeslot"]=0x1D61D, -- 𝘝
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF ITALIC CAPITAL V",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0056 },
+ unicodeslot=0x1D61D,
},
[0x1D61E]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF ITALIC CAPITAL W",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0057 },
- ["unicodeslot"]=0x1D61E, -- 𝘞
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF ITALIC CAPITAL W",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0057 },
+ unicodeslot=0x1D61E,
},
[0x1D61F]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF ITALIC CAPITAL X",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0058 },
- ["unicodeslot"]=0x1D61F, -- 𝘟
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF ITALIC CAPITAL X",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0058 },
+ unicodeslot=0x1D61F,
},
[0x1D620]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF ITALIC CAPITAL Y",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0059 },
- ["unicodeslot"]=0x1D620, -- 𝘠
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF ITALIC CAPITAL Y",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0059 },
+ unicodeslot=0x1D620,
},
[0x1D621]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF ITALIC CAPITAL Z",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x005A },
- ["unicodeslot"]=0x1D621, -- 𝘡
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF ITALIC CAPITAL Z",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x005A },
+ unicodeslot=0x1D621,
},
[0x1D622]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF ITALIC SMALL A",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0061 },
- ["unicodeslot"]=0x1D622, -- 𝘢
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF ITALIC SMALL A",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0061 },
+ unicodeslot=0x1D622,
},
[0x1D623]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF ITALIC SMALL B",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0062 },
- ["unicodeslot"]=0x1D623, -- 𝘣
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF ITALIC SMALL B",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0062 },
+ unicodeslot=0x1D623,
},
[0x1D624]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF ITALIC SMALL C",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0063 },
- ["unicodeslot"]=0x1D624, -- 𝘤
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF ITALIC SMALL C",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0063 },
+ unicodeslot=0x1D624,
},
[0x1D625]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF ITALIC SMALL D",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0064 },
- ["unicodeslot"]=0x1D625, -- 𝘥
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF ITALIC SMALL D",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0064 },
+ unicodeslot=0x1D625,
},
[0x1D626]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF ITALIC SMALL E",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0065 },
- ["unicodeslot"]=0x1D626, -- 𝘦
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF ITALIC SMALL E",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0065 },
+ unicodeslot=0x1D626,
},
[0x1D627]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF ITALIC SMALL F",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0066 },
- ["unicodeslot"]=0x1D627, -- 𝘧
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF ITALIC SMALL F",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0066 },
+ unicodeslot=0x1D627,
},
[0x1D628]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF ITALIC SMALL G",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0067 },
- ["unicodeslot"]=0x1D628, -- 𝘨
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF ITALIC SMALL G",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0067 },
+ unicodeslot=0x1D628,
},
[0x1D629]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF ITALIC SMALL H",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0068 },
- ["unicodeslot"]=0x1D629, -- 𝘩
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF ITALIC SMALL H",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0068 },
+ unicodeslot=0x1D629,
},
[0x1D62A]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF ITALIC SMALL I",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0069 },
- ["unicodeslot"]=0x1D62A, -- 𝘪
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF ITALIC SMALL I",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0069 },
+ unicodeslot=0x1D62A,
},
[0x1D62B]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF ITALIC SMALL J",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006A },
- ["unicodeslot"]=0x1D62B, -- 𝘫
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF ITALIC SMALL J",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006A },
+ unicodeslot=0x1D62B,
},
[0x1D62C]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF ITALIC SMALL K",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006B },
- ["unicodeslot"]=0x1D62C, -- 𝘬
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF ITALIC SMALL K",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006B },
+ unicodeslot=0x1D62C,
},
[0x1D62D]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF ITALIC SMALL L",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006C },
- ["unicodeslot"]=0x1D62D, -- 𝘭
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF ITALIC SMALL L",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006C },
+ unicodeslot=0x1D62D,
},
[0x1D62E]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF ITALIC SMALL M",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006D },
- ["unicodeslot"]=0x1D62E, -- 𝘮
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF ITALIC SMALL M",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006D },
+ unicodeslot=0x1D62E,
},
[0x1D62F]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF ITALIC SMALL N",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006E },
- ["unicodeslot"]=0x1D62F, -- 𝘯
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF ITALIC SMALL N",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006E },
+ unicodeslot=0x1D62F,
},
[0x1D630]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF ITALIC SMALL O",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006F },
- ["unicodeslot"]=0x1D630, -- 𝘰
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF ITALIC SMALL O",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006F },
+ unicodeslot=0x1D630,
},
[0x1D631]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF ITALIC SMALL P",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0070 },
- ["unicodeslot"]=0x1D631, -- 𝘱
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF ITALIC SMALL P",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0070 },
+ unicodeslot=0x1D631,
},
[0x1D632]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF ITALIC SMALL Q",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0071 },
- ["unicodeslot"]=0x1D632, -- 𝘲
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF ITALIC SMALL Q",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0071 },
+ unicodeslot=0x1D632,
},
[0x1D633]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF ITALIC SMALL R",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0072 },
- ["unicodeslot"]=0x1D633, -- 𝘳
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF ITALIC SMALL R",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0072 },
+ unicodeslot=0x1D633,
},
[0x1D634]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF ITALIC SMALL S",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0073 },
- ["unicodeslot"]=0x1D634, -- 𝘴
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF ITALIC SMALL S",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0073 },
+ unicodeslot=0x1D634,
},
[0x1D635]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF ITALIC SMALL T",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0074 },
- ["unicodeslot"]=0x1D635, -- 𝘵
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF ITALIC SMALL T",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0074 },
+ unicodeslot=0x1D635,
},
[0x1D636]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF ITALIC SMALL U",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0075 },
- ["unicodeslot"]=0x1D636, -- 𝘶
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF ITALIC SMALL U",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0075 },
+ unicodeslot=0x1D636,
},
[0x1D637]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF ITALIC SMALL V",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0076 },
- ["unicodeslot"]=0x1D637, -- 𝘷
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF ITALIC SMALL V",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0076 },
+ unicodeslot=0x1D637,
},
[0x1D638]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF ITALIC SMALL W",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0077 },
- ["unicodeslot"]=0x1D638, -- 𝘸
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF ITALIC SMALL W",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0077 },
+ unicodeslot=0x1D638,
},
[0x1D639]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF ITALIC SMALL X",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0078 },
- ["unicodeslot"]=0x1D639, -- 𝘹
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF ITALIC SMALL X",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0078 },
+ unicodeslot=0x1D639,
},
[0x1D63A]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF ITALIC SMALL Y",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0079 },
- ["unicodeslot"]=0x1D63A, -- 𝘺
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF ITALIC SMALL Y",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0079 },
+ unicodeslot=0x1D63A,
},
[0x1D63B]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF ITALIC SMALL Z",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x007A },
- ["unicodeslot"]=0x1D63B, -- 𝘻
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF ITALIC SMALL Z",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x007A },
+ unicodeslot=0x1D63B,
},
[0x1D63C]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL A",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0041 },
- ["unicodeslot"]=0x1D63C, -- 𝘼
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL A",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0041 },
+ unicodeslot=0x1D63C,
},
[0x1D63D]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL B",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0042 },
- ["unicodeslot"]=0x1D63D, -- 𝘽
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL B",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0042 },
+ unicodeslot=0x1D63D,
},
[0x1D63E]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL C",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0043 },
- ["unicodeslot"]=0x1D63E, -- 𝘾
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL C",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0043 },
+ unicodeslot=0x1D63E,
},
[0x1D63F]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL D",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0044 },
- ["unicodeslot"]=0x1D63F, -- 𝘿
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL D",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0044 },
+ unicodeslot=0x1D63F,
},
[0x1D640]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL E",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0045 },
- ["unicodeslot"]=0x1D640, -- 𝙀
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL E",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0045 },
+ unicodeslot=0x1D640,
},
[0x1D641]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL F",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0046 },
- ["unicodeslot"]=0x1D641, -- 𝙁
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL F",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0046 },
+ unicodeslot=0x1D641,
},
[0x1D642]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL G",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0047 },
- ["unicodeslot"]=0x1D642, -- 𝙂
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL G",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0047 },
+ unicodeslot=0x1D642,
},
[0x1D643]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL H",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0048 },
- ["unicodeslot"]=0x1D643, -- 𝙃
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL H",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0048 },
+ unicodeslot=0x1D643,
},
[0x1D644]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL I",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0049 },
- ["unicodeslot"]=0x1D644, -- 𝙄
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL I",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0049 },
+ unicodeslot=0x1D644,
},
[0x1D645]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL J",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004A },
- ["unicodeslot"]=0x1D645, -- 𝙅
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL J",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004A },
+ unicodeslot=0x1D645,
},
[0x1D646]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL K",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004B },
- ["unicodeslot"]=0x1D646, -- 𝙆
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL K",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004B },
+ unicodeslot=0x1D646,
},
[0x1D647]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL L",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004C },
- ["unicodeslot"]=0x1D647, -- 𝙇
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL L",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004C },
+ unicodeslot=0x1D647,
},
[0x1D648]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL M",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004D },
- ["unicodeslot"]=0x1D648, -- 𝙈
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL M",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004D },
+ unicodeslot=0x1D648,
},
[0x1D649]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL N",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004E },
- ["unicodeslot"]=0x1D649, -- 𝙉
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL N",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004E },
+ unicodeslot=0x1D649,
},
[0x1D64A]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL O",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004F },
- ["unicodeslot"]=0x1D64A, -- 𝙊
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL O",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004F },
+ unicodeslot=0x1D64A,
},
[0x1D64B]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL P",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0050 },
- ["unicodeslot"]=0x1D64B, -- 𝙋
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL P",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0050 },
+ unicodeslot=0x1D64B,
},
[0x1D64C]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Q",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0051 },
- ["unicodeslot"]=0x1D64C, -- 𝙌
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Q",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0051 },
+ unicodeslot=0x1D64C,
},
[0x1D64D]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL R",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0052 },
- ["unicodeslot"]=0x1D64D, -- 𝙍
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL R",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0052 },
+ unicodeslot=0x1D64D,
},
[0x1D64E]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL S",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0053 },
- ["unicodeslot"]=0x1D64E, -- 𝙎
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL S",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0053 },
+ unicodeslot=0x1D64E,
},
[0x1D64F]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL T",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0054 },
- ["unicodeslot"]=0x1D64F, -- 𝙏
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL T",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0054 },
+ unicodeslot=0x1D64F,
},
[0x1D650]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL U",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0055 },
- ["unicodeslot"]=0x1D650, -- 𝙐
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL U",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0055 },
+ unicodeslot=0x1D650,
},
[0x1D651]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL V",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0056 },
- ["unicodeslot"]=0x1D651, -- 𝙑
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL V",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0056 },
+ unicodeslot=0x1D651,
},
[0x1D652]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL W",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0057 },
- ["unicodeslot"]=0x1D652, -- 𝙒
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL W",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0057 },
+ unicodeslot=0x1D652,
},
[0x1D653]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL X",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0058 },
- ["unicodeslot"]=0x1D653, -- 𝙓
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL X",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0058 },
+ unicodeslot=0x1D653,
},
[0x1D654]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Y",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0059 },
- ["unicodeslot"]=0x1D654, -- 𝙔
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Y",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0059 },
+ unicodeslot=0x1D654,
},
[0x1D655]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Z",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x005A },
- ["unicodeslot"]=0x1D655, -- 𝙕
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Z",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x005A },
+ unicodeslot=0x1D655,
},
[0x1D656]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL A",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0061 },
- ["unicodeslot"]=0x1D656, -- 𝙖
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL A",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0061 },
+ unicodeslot=0x1D656,
},
[0x1D657]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL B",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0062 },
- ["unicodeslot"]=0x1D657, -- 𝙗
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL B",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0062 },
+ unicodeslot=0x1D657,
},
[0x1D658]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL C",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0063 },
- ["unicodeslot"]=0x1D658, -- 𝙘
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL C",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0063 },
+ unicodeslot=0x1D658,
},
[0x1D659]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL D",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0064 },
- ["unicodeslot"]=0x1D659, -- 𝙙
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL D",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0064 },
+ unicodeslot=0x1D659,
},
[0x1D65A]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL E",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0065 },
- ["unicodeslot"]=0x1D65A, -- 𝙚
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL E",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0065 },
+ unicodeslot=0x1D65A,
},
[0x1D65B]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL F",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0066 },
- ["unicodeslot"]=0x1D65B, -- 𝙛
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL F",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0066 },
+ unicodeslot=0x1D65B,
},
[0x1D65C]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL G",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0067 },
- ["unicodeslot"]=0x1D65C, -- 𝙜
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL G",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0067 },
+ unicodeslot=0x1D65C,
},
[0x1D65D]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL H",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0068 },
- ["unicodeslot"]=0x1D65D, -- 𝙝
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL H",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0068 },
+ unicodeslot=0x1D65D,
},
[0x1D65E]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL I",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0069 },
- ["unicodeslot"]=0x1D65E, -- 𝙞
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL I",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0069 },
+ unicodeslot=0x1D65E,
},
[0x1D65F]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL J",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006A },
- ["unicodeslot"]=0x1D65F, -- 𝙟
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL J",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006A },
+ unicodeslot=0x1D65F,
},
[0x1D660]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL K",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006B },
- ["unicodeslot"]=0x1D660, -- 𝙠
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL K",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006B },
+ unicodeslot=0x1D660,
},
[0x1D661]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL L",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006C },
- ["unicodeslot"]=0x1D661, -- 𝙡
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL L",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006C },
+ unicodeslot=0x1D661,
},
[0x1D662]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL M",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006D },
- ["unicodeslot"]=0x1D662, -- 𝙢
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL M",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006D },
+ unicodeslot=0x1D662,
},
[0x1D663]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL N",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006E },
- ["unicodeslot"]=0x1D663, -- 𝙣
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL N",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006E },
+ unicodeslot=0x1D663,
},
[0x1D664]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL O",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006F },
- ["unicodeslot"]=0x1D664, -- 𝙤
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL O",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006F },
+ unicodeslot=0x1D664,
},
[0x1D665]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL P",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0070 },
- ["unicodeslot"]=0x1D665, -- 𝙥
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL P",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0070 },
+ unicodeslot=0x1D665,
},
[0x1D666]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Q",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0071 },
- ["unicodeslot"]=0x1D666, -- 𝙦
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Q",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0071 },
+ unicodeslot=0x1D666,
},
[0x1D667]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL R",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0072 },
- ["unicodeslot"]=0x1D667, -- 𝙧
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL R",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0072 },
+ unicodeslot=0x1D667,
},
[0x1D668]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL S",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0073 },
- ["unicodeslot"]=0x1D668, -- 𝙨
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL S",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0073 },
+ unicodeslot=0x1D668,
},
[0x1D669]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL T",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0074 },
- ["unicodeslot"]=0x1D669, -- 𝙩
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL T",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0074 },
+ unicodeslot=0x1D669,
},
[0x1D66A]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL U",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0075 },
- ["unicodeslot"]=0x1D66A, -- 𝙪
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL U",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0075 },
+ unicodeslot=0x1D66A,
},
[0x1D66B]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL V",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0076 },
- ["unicodeslot"]=0x1D66B, -- 𝙫
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL V",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0076 },
+ unicodeslot=0x1D66B,
},
[0x1D66C]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL W",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0077 },
- ["unicodeslot"]=0x1D66C, -- 𝙬
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL W",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0077 },
+ unicodeslot=0x1D66C,
},
[0x1D66D]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL X",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0078 },
- ["unicodeslot"]=0x1D66D, -- 𝙭
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL X",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0078 },
+ unicodeslot=0x1D66D,
},
[0x1D66E]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Y",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0079 },
- ["unicodeslot"]=0x1D66E, -- 𝙮
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Y",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0079 },
+ unicodeslot=0x1D66E,
},
[0x1D66F]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Z",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x007A },
- ["unicodeslot"]=0x1D66F, -- 𝙯
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Z",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x007A },
+ unicodeslot=0x1D66F,
},
[0x1D670]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL MONOSPACE CAPITAL A",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0041 },
- ["unicodeslot"]=0x1D670, -- 𝙰
+ category="lu",
+ description="MATHEMATICAL MONOSPACE CAPITAL A",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0041 },
+ unicodeslot=0x1D670,
},
[0x1D671]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL MONOSPACE CAPITAL B",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0042 },
- ["unicodeslot"]=0x1D671, -- 𝙱
+ category="lu",
+ description="MATHEMATICAL MONOSPACE CAPITAL B",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0042 },
+ unicodeslot=0x1D671,
},
[0x1D672]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL MONOSPACE CAPITAL C",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0043 },
- ["unicodeslot"]=0x1D672, -- 𝙲
+ category="lu",
+ description="MATHEMATICAL MONOSPACE CAPITAL C",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0043 },
+ unicodeslot=0x1D672,
},
[0x1D673]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL MONOSPACE CAPITAL D",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0044 },
- ["unicodeslot"]=0x1D673, -- 𝙳
+ category="lu",
+ description="MATHEMATICAL MONOSPACE CAPITAL D",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0044 },
+ unicodeslot=0x1D673,
},
[0x1D674]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL MONOSPACE CAPITAL E",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0045 },
- ["unicodeslot"]=0x1D674, -- 𝙴
+ category="lu",
+ description="MATHEMATICAL MONOSPACE CAPITAL E",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0045 },
+ unicodeslot=0x1D674,
},
[0x1D675]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL MONOSPACE CAPITAL F",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0046 },
- ["unicodeslot"]=0x1D675, -- 𝙵
+ category="lu",
+ description="MATHEMATICAL MONOSPACE CAPITAL F",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0046 },
+ unicodeslot=0x1D675,
},
[0x1D676]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL MONOSPACE CAPITAL G",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0047 },
- ["unicodeslot"]=0x1D676, -- 𝙶
+ category="lu",
+ description="MATHEMATICAL MONOSPACE CAPITAL G",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0047 },
+ unicodeslot=0x1D676,
},
[0x1D677]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL MONOSPACE CAPITAL H",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0048 },
- ["unicodeslot"]=0x1D677, -- 𝙷
+ category="lu",
+ description="MATHEMATICAL MONOSPACE CAPITAL H",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0048 },
+ unicodeslot=0x1D677,
},
[0x1D678]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL MONOSPACE CAPITAL I",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0049 },
- ["unicodeslot"]=0x1D678, -- 𝙸
+ category="lu",
+ description="MATHEMATICAL MONOSPACE CAPITAL I",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0049 },
+ unicodeslot=0x1D678,
},
[0x1D679]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL MONOSPACE CAPITAL J",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004A },
- ["unicodeslot"]=0x1D679, -- 𝙹
+ category="lu",
+ description="MATHEMATICAL MONOSPACE CAPITAL J",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004A },
+ unicodeslot=0x1D679,
},
[0x1D67A]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL MONOSPACE CAPITAL K",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004B },
- ["unicodeslot"]=0x1D67A, -- 𝙺
+ category="lu",
+ description="MATHEMATICAL MONOSPACE CAPITAL K",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004B },
+ unicodeslot=0x1D67A,
},
[0x1D67B]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL MONOSPACE CAPITAL L",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004C },
- ["unicodeslot"]=0x1D67B, -- 𝙻
+ category="lu",
+ description="MATHEMATICAL MONOSPACE CAPITAL L",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004C },
+ unicodeslot=0x1D67B,
},
[0x1D67C]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL MONOSPACE CAPITAL M",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004D },
- ["unicodeslot"]=0x1D67C, -- 𝙼
+ category="lu",
+ description="MATHEMATICAL MONOSPACE CAPITAL M",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004D },
+ unicodeslot=0x1D67C,
},
[0x1D67D]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL MONOSPACE CAPITAL N",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004E },
- ["unicodeslot"]=0x1D67D, -- 𝙽
+ category="lu",
+ description="MATHEMATICAL MONOSPACE CAPITAL N",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004E },
+ unicodeslot=0x1D67D,
},
[0x1D67E]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL MONOSPACE CAPITAL O",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x004F },
- ["unicodeslot"]=0x1D67E, -- 𝙾
+ category="lu",
+ description="MATHEMATICAL MONOSPACE CAPITAL O",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x004F },
+ unicodeslot=0x1D67E,
},
[0x1D67F]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL MONOSPACE CAPITAL P",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0050 },
- ["unicodeslot"]=0x1D67F, -- 𝙿
+ category="lu",
+ description="MATHEMATICAL MONOSPACE CAPITAL P",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0050 },
+ unicodeslot=0x1D67F,
},
[0x1D680]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL MONOSPACE CAPITAL Q",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0051 },
- ["unicodeslot"]=0x1D680, -- 𝚀
+ category="lu",
+ description="MATHEMATICAL MONOSPACE CAPITAL Q",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0051 },
+ unicodeslot=0x1D680,
},
[0x1D681]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL MONOSPACE CAPITAL R",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0052 },
- ["unicodeslot"]=0x1D681, -- 𝚁
+ category="lu",
+ description="MATHEMATICAL MONOSPACE CAPITAL R",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0052 },
+ unicodeslot=0x1D681,
},
[0x1D682]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL MONOSPACE CAPITAL S",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0053 },
- ["unicodeslot"]=0x1D682, -- 𝚂
+ category="lu",
+ description="MATHEMATICAL MONOSPACE CAPITAL S",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0053 },
+ unicodeslot=0x1D682,
},
[0x1D683]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL MONOSPACE CAPITAL T",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0054 },
- ["unicodeslot"]=0x1D683, -- 𝚃
+ category="lu",
+ description="MATHEMATICAL MONOSPACE CAPITAL T",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0054 },
+ unicodeslot=0x1D683,
},
[0x1D684]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL MONOSPACE CAPITAL U",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0055 },
- ["unicodeslot"]=0x1D684, -- 𝚄
+ category="lu",
+ description="MATHEMATICAL MONOSPACE CAPITAL U",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0055 },
+ unicodeslot=0x1D684,
},
[0x1D685]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL MONOSPACE CAPITAL V",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0056 },
- ["unicodeslot"]=0x1D685, -- 𝚅
+ category="lu",
+ description="MATHEMATICAL MONOSPACE CAPITAL V",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0056 },
+ unicodeslot=0x1D685,
},
[0x1D686]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL MONOSPACE CAPITAL W",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0057 },
- ["unicodeslot"]=0x1D686, -- 𝚆
+ category="lu",
+ description="MATHEMATICAL MONOSPACE CAPITAL W",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0057 },
+ unicodeslot=0x1D686,
},
[0x1D687]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL MONOSPACE CAPITAL X",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0058 },
- ["unicodeslot"]=0x1D687, -- 𝚇
+ category="lu",
+ description="MATHEMATICAL MONOSPACE CAPITAL X",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0058 },
+ unicodeslot=0x1D687,
},
[0x1D688]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL MONOSPACE CAPITAL Y",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0059 },
- ["unicodeslot"]=0x1D688, -- 𝚈
+ category="lu",
+ description="MATHEMATICAL MONOSPACE CAPITAL Y",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0059 },
+ unicodeslot=0x1D688,
},
[0x1D689]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL MONOSPACE CAPITAL Z",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x005A },
- ["unicodeslot"]=0x1D689, -- 𝚉
+ category="lu",
+ description="MATHEMATICAL MONOSPACE CAPITAL Z",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x005A },
+ unicodeslot=0x1D689,
},
[0x1D68A]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL MONOSPACE SMALL A",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0061 },
- ["unicodeslot"]=0x1D68A, -- 𝚊
+ category="ll",
+ description="MATHEMATICAL MONOSPACE SMALL A",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0061 },
+ unicodeslot=0x1D68A,
},
[0x1D68B]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL MONOSPACE SMALL B",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0062 },
- ["unicodeslot"]=0x1D68B, -- 𝚋
+ category="ll",
+ description="MATHEMATICAL MONOSPACE SMALL B",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0062 },
+ unicodeslot=0x1D68B,
},
[0x1D68C]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL MONOSPACE SMALL C",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0063 },
- ["unicodeslot"]=0x1D68C, -- 𝚌
+ category="ll",
+ description="MATHEMATICAL MONOSPACE SMALL C",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0063 },
+ unicodeslot=0x1D68C,
},
[0x1D68D]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL MONOSPACE SMALL D",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0064 },
- ["unicodeslot"]=0x1D68D, -- 𝚍
+ category="ll",
+ description="MATHEMATICAL MONOSPACE SMALL D",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0064 },
+ unicodeslot=0x1D68D,
},
[0x1D68E]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL MONOSPACE SMALL E",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0065 },
- ["unicodeslot"]=0x1D68E, -- 𝚎
+ category="ll",
+ description="MATHEMATICAL MONOSPACE SMALL E",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0065 },
+ unicodeslot=0x1D68E,
},
[0x1D68F]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL MONOSPACE SMALL F",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0066 },
- ["unicodeslot"]=0x1D68F, -- 𝚏
+ category="ll",
+ description="MATHEMATICAL MONOSPACE SMALL F",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0066 },
+ unicodeslot=0x1D68F,
},
[0x1D690]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL MONOSPACE SMALL G",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0067 },
- ["unicodeslot"]=0x1D690, -- 𝚐
+ category="ll",
+ description="MATHEMATICAL MONOSPACE SMALL G",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0067 },
+ unicodeslot=0x1D690,
},
[0x1D691]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL MONOSPACE SMALL H",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0068 },
- ["unicodeslot"]=0x1D691, -- 𝚑
+ category="ll",
+ description="MATHEMATICAL MONOSPACE SMALL H",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0068 },
+ unicodeslot=0x1D691,
},
[0x1D692]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL MONOSPACE SMALL I",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0069 },
- ["unicodeslot"]=0x1D692, -- 𝚒
+ category="ll",
+ description="MATHEMATICAL MONOSPACE SMALL I",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0069 },
+ unicodeslot=0x1D692,
},
[0x1D693]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL MONOSPACE SMALL J",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006A },
- ["unicodeslot"]=0x1D693, -- 𝚓
+ category="ll",
+ description="MATHEMATICAL MONOSPACE SMALL J",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006A },
+ unicodeslot=0x1D693,
},
[0x1D694]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL MONOSPACE SMALL K",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006B },
- ["unicodeslot"]=0x1D694, -- 𝚔
+ category="ll",
+ description="MATHEMATICAL MONOSPACE SMALL K",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006B },
+ unicodeslot=0x1D694,
},
[0x1D695]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL MONOSPACE SMALL L",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006C },
- ["unicodeslot"]=0x1D695, -- 𝚕
+ category="ll",
+ description="MATHEMATICAL MONOSPACE SMALL L",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006C },
+ unicodeslot=0x1D695,
},
[0x1D696]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL MONOSPACE SMALL M",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006D },
- ["unicodeslot"]=0x1D696, -- 𝚖
+ category="ll",
+ description="MATHEMATICAL MONOSPACE SMALL M",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006D },
+ unicodeslot=0x1D696,
},
[0x1D697]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL MONOSPACE SMALL N",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006E },
- ["unicodeslot"]=0x1D697, -- 𝚗
+ category="ll",
+ description="MATHEMATICAL MONOSPACE SMALL N",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006E },
+ unicodeslot=0x1D697,
},
[0x1D698]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL MONOSPACE SMALL O",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x006F },
- ["unicodeslot"]=0x1D698, -- 𝚘
+ category="ll",
+ description="MATHEMATICAL MONOSPACE SMALL O",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x006F },
+ unicodeslot=0x1D698,
},
[0x1D699]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL MONOSPACE SMALL P",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0070 },
- ["unicodeslot"]=0x1D699, -- 𝚙
+ category="ll",
+ description="MATHEMATICAL MONOSPACE SMALL P",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0070 },
+ unicodeslot=0x1D699,
},
[0x1D69A]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL MONOSPACE SMALL Q",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0071 },
- ["unicodeslot"]=0x1D69A, -- 𝚚
+ category="ll",
+ description="MATHEMATICAL MONOSPACE SMALL Q",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0071 },
+ unicodeslot=0x1D69A,
},
[0x1D69B]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL MONOSPACE SMALL R",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0072 },
- ["unicodeslot"]=0x1D69B, -- 𝚛
+ category="ll",
+ description="MATHEMATICAL MONOSPACE SMALL R",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0072 },
+ unicodeslot=0x1D69B,
},
[0x1D69C]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL MONOSPACE SMALL S",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0073 },
- ["unicodeslot"]=0x1D69C, -- 𝚜
+ category="ll",
+ description="MATHEMATICAL MONOSPACE SMALL S",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0073 },
+ unicodeslot=0x1D69C,
},
[0x1D69D]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL MONOSPACE SMALL T",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0074 },
- ["unicodeslot"]=0x1D69D, -- 𝚝
+ category="ll",
+ description="MATHEMATICAL MONOSPACE SMALL T",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0074 },
+ unicodeslot=0x1D69D,
},
[0x1D69E]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL MONOSPACE SMALL U",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0075 },
- ["unicodeslot"]=0x1D69E, -- 𝚞
+ category="ll",
+ description="MATHEMATICAL MONOSPACE SMALL U",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0075 },
+ unicodeslot=0x1D69E,
},
[0x1D69F]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL MONOSPACE SMALL V",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0076 },
- ["unicodeslot"]=0x1D69F, -- 𝚟
+ category="ll",
+ description="MATHEMATICAL MONOSPACE SMALL V",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0076 },
+ unicodeslot=0x1D69F,
},
[0x1D6A0]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL MONOSPACE SMALL W",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0077 },
- ["unicodeslot"]=0x1D6A0, -- 𝚠
+ category="ll",
+ description="MATHEMATICAL MONOSPACE SMALL W",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0077 },
+ unicodeslot=0x1D6A0,
},
[0x1D6A1]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL MONOSPACE SMALL X",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0078 },
- ["unicodeslot"]=0x1D6A1, -- 𝚡
+ category="ll",
+ description="MATHEMATICAL MONOSPACE SMALL X",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0078 },
+ unicodeslot=0x1D6A1,
},
[0x1D6A2]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL MONOSPACE SMALL Y",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0079 },
- ["unicodeslot"]=0x1D6A2, -- 𝚢
+ category="ll",
+ description="MATHEMATICAL MONOSPACE SMALL Y",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0079 },
+ unicodeslot=0x1D6A2,
},
[0x1D6A3]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL MONOSPACE SMALL Z",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x007A },
- ["unicodeslot"]=0x1D6A3, -- 𝚣
+ category="ll",
+ description="MATHEMATICAL MONOSPACE SMALL Z",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x007A },
+ unicodeslot=0x1D6A3,
},
[0x1D6A4]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL ITALIC SMALL DOTLESS I",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["mathname"]="imath",
- ["specials"]={ "font", 0x0131 },
- ["unicodeslot"]=0x1D6A4, -- 𝚤
+ category="ll",
+ description="MATHEMATICAL ITALIC SMALL DOTLESS I",
+ direction="l",
+ linebreak="al",
+ mathclass="default",
+ mathname="imath",
+ specials={ "font", 0x0131 },
+ unicodeslot=0x1D6A4,
},
[0x1D6A5]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL ITALIC SMALL DOTLESS J",
- ["linebreak"]="al",
- ["mathclass"]="variable",
- ["mathname"]="jmath",
- ["specials"]={ "font", 0x0237 },
- ["unicodeslot"]=0x1D6A5, -- 𝚥
+ category="ll",
+ description="MATHEMATICAL ITALIC SMALL DOTLESS J",
+ direction="l",
+ linebreak="al",
+ mathclass="default",
+ mathname="jmath",
+ specials={ "font", 0x0237 },
+ unicodeslot=0x1D6A5,
},
[0x1D6A8]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD CAPITAL ALPHA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0391 },
- ["unicodeslot"]=0x1D6A8, -- 𝚨
+ category="lu",
+ description="MATHEMATICAL BOLD CAPITAL ALPHA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0391 },
+ unicodeslot=0x1D6A8,
},
[0x1D6A9]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD CAPITAL BETA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0392 },
- ["unicodeslot"]=0x1D6A9, -- 𝚩
+ category="lu",
+ description="MATHEMATICAL BOLD CAPITAL BETA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0392 },
+ unicodeslot=0x1D6A9,
},
[0x1D6AA]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD CAPITAL GAMMA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0393 },
- ["unicodeslot"]=0x1D6AA, -- 𝚪
+ category="lu",
+ description="MATHEMATICAL BOLD CAPITAL GAMMA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0393 },
+ unicodeslot=0x1D6AA,
},
[0x1D6AB]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD CAPITAL DELTA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0394 },
- ["unicodeslot"]=0x1D6AB, -- 𝚫
+ category="lu",
+ description="MATHEMATICAL BOLD CAPITAL DELTA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0394 },
+ unicodeslot=0x1D6AB,
},
[0x1D6AC]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD CAPITAL EPSILON",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0395 },
- ["unicodeslot"]=0x1D6AC, -- 𝚬
+ category="lu",
+ description="MATHEMATICAL BOLD CAPITAL EPSILON",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0395 },
+ unicodeslot=0x1D6AC,
},
[0x1D6AD]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD CAPITAL ZETA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0396 },
- ["unicodeslot"]=0x1D6AD, -- 𝚭
+ category="lu",
+ description="MATHEMATICAL BOLD CAPITAL ZETA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0396 },
+ unicodeslot=0x1D6AD,
},
[0x1D6AE]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD CAPITAL ETA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0397 },
- ["unicodeslot"]=0x1D6AE, -- 𝚮
+ category="lu",
+ description="MATHEMATICAL BOLD CAPITAL ETA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0397 },
+ unicodeslot=0x1D6AE,
},
[0x1D6AF]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD CAPITAL THETA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0398 },
- ["unicodeslot"]=0x1D6AF, -- 𝚯
+ category="lu",
+ description="MATHEMATICAL BOLD CAPITAL THETA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0398 },
+ unicodeslot=0x1D6AF,
},
[0x1D6B0]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD CAPITAL IOTA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0399 },
- ["unicodeslot"]=0x1D6B0, -- 𝚰
+ category="lu",
+ description="MATHEMATICAL BOLD CAPITAL IOTA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0399 },
+ unicodeslot=0x1D6B0,
},
[0x1D6B1]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD CAPITAL KAPPA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x039A },
- ["unicodeslot"]=0x1D6B1, -- 𝚱
+ category="lu",
+ description="MATHEMATICAL BOLD CAPITAL KAPPA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x039A },
+ unicodeslot=0x1D6B1,
},
[0x1D6B2]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD CAPITAL LAMDA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x039B },
- ["unicodeslot"]=0x1D6B2, -- 𝚲
+ category="lu",
+ description="MATHEMATICAL BOLD CAPITAL LAMDA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x039B },
+ unicodeslot=0x1D6B2,
},
[0x1D6B3]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD CAPITAL MU",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x039C },
- ["unicodeslot"]=0x1D6B3, -- 𝚳
+ category="lu",
+ description="MATHEMATICAL BOLD CAPITAL MU",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x039C },
+ unicodeslot=0x1D6B3,
},
[0x1D6B4]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD CAPITAL NU",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x039D },
- ["unicodeslot"]=0x1D6B4, -- 𝚴
+ category="lu",
+ description="MATHEMATICAL BOLD CAPITAL NU",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x039D },
+ unicodeslot=0x1D6B4,
},
[0x1D6B5]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD CAPITAL XI",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x039E },
- ["unicodeslot"]=0x1D6B5, -- 𝚵
+ category="lu",
+ description="MATHEMATICAL BOLD CAPITAL XI",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x039E },
+ unicodeslot=0x1D6B5,
},
[0x1D6B6]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD CAPITAL OMICRON",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x039F },
- ["unicodeslot"]=0x1D6B6, -- 𝚶
+ category="lu",
+ description="MATHEMATICAL BOLD CAPITAL OMICRON",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x039F },
+ unicodeslot=0x1D6B6,
},
[0x1D6B7]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD CAPITAL PI",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03A0 },
- ["unicodeslot"]=0x1D6B7, -- 𝚷
+ category="lu",
+ description="MATHEMATICAL BOLD CAPITAL PI",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03A0 },
+ unicodeslot=0x1D6B7,
},
[0x1D6B8]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD CAPITAL RHO",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03A1 },
- ["unicodeslot"]=0x1D6B8, -- 𝚸
+ category="lu",
+ description="MATHEMATICAL BOLD CAPITAL RHO",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03A1 },
+ unicodeslot=0x1D6B8,
},
[0x1D6B9]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD CAPITAL THETA SYMBOL",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03F4 },
- ["unicodeslot"]=0x1D6B9, -- 𝚹
+ category="lu",
+ description="MATHEMATICAL BOLD CAPITAL THETA SYMBOL",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03F4 },
+ unicodeslot=0x1D6B9,
},
[0x1D6BA]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD CAPITAL SIGMA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03A3 },
- ["unicodeslot"]=0x1D6BA, -- 𝚺
+ category="lu",
+ description="MATHEMATICAL BOLD CAPITAL SIGMA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03A3 },
+ unicodeslot=0x1D6BA,
},
[0x1D6BB]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD CAPITAL TAU",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03A4 },
- ["unicodeslot"]=0x1D6BB, -- 𝚻
+ category="lu",
+ description="MATHEMATICAL BOLD CAPITAL TAU",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03A4 },
+ unicodeslot=0x1D6BB,
},
[0x1D6BC]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD CAPITAL UPSILON",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03A5 },
- ["unicodeslot"]=0x1D6BC, -- 𝚼
+ category="lu",
+ description="MATHEMATICAL BOLD CAPITAL UPSILON",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03A5 },
+ unicodeslot=0x1D6BC,
},
[0x1D6BD]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD CAPITAL PHI",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03A6 },
- ["unicodeslot"]=0x1D6BD, -- 𝚽
+ category="lu",
+ description="MATHEMATICAL BOLD CAPITAL PHI",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03A6 },
+ unicodeslot=0x1D6BD,
},
[0x1D6BE]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD CAPITAL CHI",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03A7 },
- ["unicodeslot"]=0x1D6BE, -- 𝚾
+ category="lu",
+ description="MATHEMATICAL BOLD CAPITAL CHI",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03A7 },
+ unicodeslot=0x1D6BE,
},
[0x1D6BF]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD CAPITAL PSI",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03A8 },
- ["unicodeslot"]=0x1D6BF, -- 𝚿
+ category="lu",
+ description="MATHEMATICAL BOLD CAPITAL PSI",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03A8 },
+ unicodeslot=0x1D6BF,
},
[0x1D6C0]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD CAPITAL OMEGA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03A9 },
- ["unicodeslot"]=0x1D6C0, -- 𝛀
+ category="lu",
+ description="MATHEMATICAL BOLD CAPITAL OMEGA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03A9 },
+ unicodeslot=0x1D6C0,
},
[0x1D6C1]={
- ["category"]="sm",
- ["description"]="MATHEMATICAL BOLD NABLA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x2207 },
- ["unicodeslot"]=0x1D6C1, -- 𝛁
+ category="sm",
+ description="MATHEMATICAL BOLD NABLA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x2207 },
+ unicodeslot=0x1D6C1,
},
[0x1D6C2]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SMALL ALPHA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03B1 },
- ["unicodeslot"]=0x1D6C2, -- 𝛂
+ category="ll",
+ description="MATHEMATICAL BOLD SMALL ALPHA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03B1 },
+ unicodeslot=0x1D6C2,
},
[0x1D6C3]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SMALL BETA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03B2 },
- ["unicodeslot"]=0x1D6C3, -- 𝛃
+ category="ll",
+ description="MATHEMATICAL BOLD SMALL BETA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03B2 },
+ unicodeslot=0x1D6C3,
},
[0x1D6C4]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SMALL GAMMA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03B3 },
- ["unicodeslot"]=0x1D6C4, -- 𝛄
+ category="ll",
+ description="MATHEMATICAL BOLD SMALL GAMMA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03B3 },
+ unicodeslot=0x1D6C4,
},
[0x1D6C5]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SMALL DELTA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03B4 },
- ["unicodeslot"]=0x1D6C5, -- 𝛅
+ category="ll",
+ description="MATHEMATICAL BOLD SMALL DELTA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03B4 },
+ unicodeslot=0x1D6C5,
},
[0x1D6C6]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SMALL EPSILON",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03B5 },
- ["unicodeslot"]=0x1D6C6, -- 𝛆
+ category="ll",
+ description="MATHEMATICAL BOLD SMALL EPSILON",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03B5 },
+ unicodeslot=0x1D6C6,
},
[0x1D6C7]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SMALL ZETA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03B6 },
- ["unicodeslot"]=0x1D6C7, -- 𝛇
+ category="ll",
+ description="MATHEMATICAL BOLD SMALL ZETA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03B6 },
+ unicodeslot=0x1D6C7,
},
[0x1D6C8]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SMALL ETA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03B7 },
- ["unicodeslot"]=0x1D6C8, -- 𝛈
+ category="ll",
+ description="MATHEMATICAL BOLD SMALL ETA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03B7 },
+ unicodeslot=0x1D6C8,
},
[0x1D6C9]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SMALL THETA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03B8 },
- ["unicodeslot"]=0x1D6C9, -- 𝛉
+ category="ll",
+ description="MATHEMATICAL BOLD SMALL THETA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03B8 },
+ unicodeslot=0x1D6C9,
},
[0x1D6CA]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SMALL IOTA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03B9 },
- ["unicodeslot"]=0x1D6CA, -- 𝛊
+ category="ll",
+ description="MATHEMATICAL BOLD SMALL IOTA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03B9 },
+ unicodeslot=0x1D6CA,
},
[0x1D6CB]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SMALL KAPPA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03BA },
- ["unicodeslot"]=0x1D6CB, -- 𝛋
+ category="ll",
+ description="MATHEMATICAL BOLD SMALL KAPPA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03BA },
+ unicodeslot=0x1D6CB,
},
[0x1D6CC]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SMALL LAMDA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03BB },
- ["unicodeslot"]=0x1D6CC, -- 𝛌
+ category="ll",
+ description="MATHEMATICAL BOLD SMALL LAMDA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03BB },
+ unicodeslot=0x1D6CC,
},
[0x1D6CD]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SMALL MU",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03BC },
- ["unicodeslot"]=0x1D6CD, -- 𝛍
+ category="ll",
+ description="MATHEMATICAL BOLD SMALL MU",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03BC },
+ unicodeslot=0x1D6CD,
},
[0x1D6CE]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SMALL NU",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03BD },
- ["unicodeslot"]=0x1D6CE, -- 𝛎
+ category="ll",
+ description="MATHEMATICAL BOLD SMALL NU",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03BD },
+ unicodeslot=0x1D6CE,
},
[0x1D6CF]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SMALL XI",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03BE },
- ["unicodeslot"]=0x1D6CF, -- 𝛏
+ category="ll",
+ description="MATHEMATICAL BOLD SMALL XI",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03BE },
+ unicodeslot=0x1D6CF,
},
[0x1D6D0]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SMALL OMICRON",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03BF },
- ["unicodeslot"]=0x1D6D0, -- 𝛐
+ category="ll",
+ description="MATHEMATICAL BOLD SMALL OMICRON",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03BF },
+ unicodeslot=0x1D6D0,
},
[0x1D6D1]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SMALL PI",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03C0 },
- ["unicodeslot"]=0x1D6D1, -- 𝛑
+ category="ll",
+ description="MATHEMATICAL BOLD SMALL PI",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03C0 },
+ unicodeslot=0x1D6D1,
},
[0x1D6D2]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SMALL RHO",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03C1 },
- ["unicodeslot"]=0x1D6D2, -- 𝛒
+ category="ll",
+ description="MATHEMATICAL BOLD SMALL RHO",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03C1 },
+ unicodeslot=0x1D6D2,
},
[0x1D6D3]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SMALL FINAL SIGMA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03C2 },
- ["unicodeslot"]=0x1D6D3, -- 𝛓
+ category="ll",
+ description="MATHEMATICAL BOLD SMALL FINAL SIGMA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03C2 },
+ unicodeslot=0x1D6D3,
},
[0x1D6D4]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SMALL SIGMA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03C3 },
- ["unicodeslot"]=0x1D6D4, -- 𝛔
+ category="ll",
+ description="MATHEMATICAL BOLD SMALL SIGMA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03C3 },
+ unicodeslot=0x1D6D4,
},
[0x1D6D5]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SMALL TAU",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03C4 },
- ["unicodeslot"]=0x1D6D5, -- 𝛕
+ category="ll",
+ description="MATHEMATICAL BOLD SMALL TAU",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03C4 },
+ unicodeslot=0x1D6D5,
},
[0x1D6D6]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SMALL UPSILON",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03C5 },
- ["unicodeslot"]=0x1D6D6, -- 𝛖
+ category="ll",
+ description="MATHEMATICAL BOLD SMALL UPSILON",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03C5 },
+ unicodeslot=0x1D6D6,
},
[0x1D6D7]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SMALL PHI",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03C6 },
- ["unicodeslot"]=0x1D6D7, -- 𝛗
+ category="ll",
+ description="MATHEMATICAL BOLD SMALL PHI",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03C6 },
+ unicodeslot=0x1D6D7,
},
[0x1D6D8]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SMALL CHI",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03C7 },
- ["unicodeslot"]=0x1D6D8, -- 𝛘
+ category="ll",
+ description="MATHEMATICAL BOLD SMALL CHI",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03C7 },
+ unicodeslot=0x1D6D8,
},
[0x1D6D9]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SMALL PSI",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03C8 },
- ["unicodeslot"]=0x1D6D9, -- 𝛙
+ category="ll",
+ description="MATHEMATICAL BOLD SMALL PSI",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03C8 },
+ unicodeslot=0x1D6D9,
},
[0x1D6DA]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SMALL OMEGA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03C9 },
- ["unicodeslot"]=0x1D6DA, -- 𝛚
+ category="ll",
+ description="MATHEMATICAL BOLD SMALL OMEGA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03C9 },
+ unicodeslot=0x1D6DA,
},
[0x1D6DB]={
- ["category"]="sm",
- ["description"]="MATHEMATICAL BOLD PARTIAL DIFFERENTIAL",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x2202 },
- ["unicodeslot"]=0x1D6DB, -- 𝛛
+ category="sm",
+ description="MATHEMATICAL BOLD PARTIAL DIFFERENTIAL",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x2202 },
+ unicodeslot=0x1D6DB,
},
[0x1D6DC]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD EPSILON SYMBOL",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03F5 },
- ["unicodeslot"]=0x1D6DC, -- 𝛜
+ category="ll",
+ description="MATHEMATICAL BOLD EPSILON SYMBOL",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03F5 },
+ unicodeslot=0x1D6DC,
},
[0x1D6DD]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD THETA SYMBOL",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03D1 },
- ["unicodeslot"]=0x1D6DD, -- 𝛝
+ category="ll",
+ description="MATHEMATICAL BOLD THETA SYMBOL",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03D1 },
+ unicodeslot=0x1D6DD,
},
[0x1D6DE]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD KAPPA SYMBOL",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03F0 },
- ["unicodeslot"]=0x1D6DE, -- 𝛞
+ category="ll",
+ description="MATHEMATICAL BOLD KAPPA SYMBOL",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03F0 },
+ unicodeslot=0x1D6DE,
},
[0x1D6DF]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD PHI SYMBOL",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03D5 },
- ["unicodeslot"]=0x1D6DF, -- 𝛟
+ category="ll",
+ description="MATHEMATICAL BOLD PHI SYMBOL",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03D5 },
+ unicodeslot=0x1D6DF,
},
[0x1D6E0]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD RHO SYMBOL",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03F1 },
- ["unicodeslot"]=0x1D6E0, -- 𝛠
+ category="ll",
+ description="MATHEMATICAL BOLD RHO SYMBOL",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03F1 },
+ unicodeslot=0x1D6E0,
},
[0x1D6E1]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD PI SYMBOL",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03D6 },
- ["unicodeslot"]=0x1D6E1, -- 𝛡
+ category="ll",
+ description="MATHEMATICAL BOLD PI SYMBOL",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03D6 },
+ unicodeslot=0x1D6E1,
},
[0x1D6E2]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL ITALIC CAPITAL ALPHA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0391 },
- ["unicodeslot"]=0x1D6E2, -- 𝛢
+ category="lu",
+ description="MATHEMATICAL ITALIC CAPITAL ALPHA",
+ direction="l",
+ linebreak="al",
+ mathclass="variable",
+ mathname="Alpha",
+ specials={ "font", 0x0391 },
+ unicodeslot=0x1D6E2,
},
[0x1D6E3]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL ITALIC CAPITAL BETA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0392 },
- ["unicodeslot"]=0x1D6E3, -- 𝛣
+ category="lu",
+ description="MATHEMATICAL ITALIC CAPITAL BETA",
+ direction="l",
+ linebreak="al",
+ mathclass="variable",
+ mathname="Beta",
+ specials={ "font", 0x0392 },
+ unicodeslot=0x1D6E3,
},
[0x1D6E4]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL ITALIC CAPITAL GAMMA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0393 },
- ["unicodeslot"]=0x1D6E4, -- 𝛤
+ category="lu",
+ description="MATHEMATICAL ITALIC CAPITAL GAMMA",
+ direction="l",
+ linebreak="al",
+ mathclass="variable",
+ mathname="Gamma",
+ specials={ "font", 0x0393 },
+ unicodeslot=0x1D6E4,
},
[0x1D6E5]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL ITALIC CAPITAL DELTA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0394 },
- ["unicodeslot"]=0x1D6E5, -- 𝛥
+ category="lu",
+ description="MATHEMATICAL ITALIC CAPITAL DELTA",
+ direction="l",
+ linebreak="al",
+ mathclass="variable",
+ mathname="Delta",
+ specials={ "font", 0x0394 },
+ unicodeslot=0x1D6E5,
},
[0x1D6E6]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL ITALIC CAPITAL EPSILON",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0395 },
- ["unicodeslot"]=0x1D6E6, -- 𝛦
+ category="lu",
+ description="MATHEMATICAL ITALIC CAPITAL EPSILON",
+ direction="l",
+ linebreak="al",
+ mathclass="variable",
+ mathname="Epsilon",
+ specials={ "font", 0x0395 },
+ unicodeslot=0x1D6E6,
},
[0x1D6E7]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL ITALIC CAPITAL ZETA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0396 },
- ["unicodeslot"]=0x1D6E7, -- 𝛧
+ category="lu",
+ description="MATHEMATICAL ITALIC CAPITAL ZETA",
+ direction="l",
+ linebreak="al",
+ mathclass="variable",
+ mathname="Zeta",
+ specials={ "font", 0x0396 },
+ unicodeslot=0x1D6E7,
},
[0x1D6E8]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL ITALIC CAPITAL ETA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0397 },
- ["unicodeslot"]=0x1D6E8, -- 𝛨
+ category="lu",
+ description="MATHEMATICAL ITALIC CAPITAL ETA",
+ direction="l",
+ linebreak="al",
+ mathclass="variable",
+ mathname="Eta",
+ specials={ "font", 0x0397 },
+ unicodeslot=0x1D6E8,
},
[0x1D6E9]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL ITALIC CAPITAL THETA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0398 },
- ["unicodeslot"]=0x1D6E9, -- 𝛩
+ category="lu",
+ description="MATHEMATICAL ITALIC CAPITAL THETA",
+ direction="l",
+ linebreak="al",
+ mathclass="variable",
+ mathname="Theta",
+ specials={ "font", 0x0398 },
+ unicodeslot=0x1D6E9,
},
[0x1D6EA]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL ITALIC CAPITAL IOTA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0399 },
- ["unicodeslot"]=0x1D6EA, -- 𝛪
+ category="lu",
+ description="MATHEMATICAL ITALIC CAPITAL IOTA",
+ direction="l",
+ linebreak="al",
+ mathclass="variable",
+ mathname="Iota",
+ specials={ "font", 0x0399 },
+ unicodeslot=0x1D6EA,
},
[0x1D6EB]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL ITALIC CAPITAL KAPPA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x039A },
- ["unicodeslot"]=0x1D6EB, -- 𝛫
+ category="lu",
+ description="MATHEMATICAL ITALIC CAPITAL KAPPA",
+ direction="l",
+ linebreak="al",
+ mathclass="variable",
+ mathname="Kappa",
+ specials={ "font", 0x039A },
+ unicodeslot=0x1D6EB,
},
[0x1D6EC]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL ITALIC CAPITAL LAMDA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x039B },
- ["unicodeslot"]=0x1D6EC, -- 𝛬
+ category="lu",
+ description="MATHEMATICAL ITALIC CAPITAL LAMDA",
+ direction="l",
+ linebreak="al",
+ mathclass="variable",
+ mathname="Lambda",
+ specials={ "font", 0x039B },
+ unicodeslot=0x1D6EC,
},
[0x1D6ED]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL ITALIC CAPITAL MU",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x039C },
- ["unicodeslot"]=0x1D6ED, -- 𝛭
+ category="lu",
+ description="MATHEMATICAL ITALIC CAPITAL MU",
+ direction="l",
+ linebreak="al",
+ mathclass="variable",
+ mathname="Mu",
+ specials={ "font", 0x039C },
+ unicodeslot=0x1D6ED,
},
[0x1D6EE]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL ITALIC CAPITAL NU",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x039D },
- ["unicodeslot"]=0x1D6EE, -- 𝛮
+ category="lu",
+ description="MATHEMATICAL ITALIC CAPITAL NU",
+ direction="l",
+ linebreak="al",
+ mathclass="variable",
+ mathname="Nu",
+ specials={ "font", 0x039D },
+ unicodeslot=0x1D6EE,
},
[0x1D6EF]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL ITALIC CAPITAL XI",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x039E },
- ["unicodeslot"]=0x1D6EF, -- 𝛯
+ category="lu",
+ description="MATHEMATICAL ITALIC CAPITAL XI",
+ direction="l",
+ linebreak="al",
+ mathclass="variable",
+ mathname="Xi",
+ specials={ "font", 0x039E },
+ unicodeslot=0x1D6EF,
},
[0x1D6F0]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL ITALIC CAPITAL OMICRON",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x039F },
- ["unicodeslot"]=0x1D6F0, -- 𝛰
+ category="lu",
+ description="MATHEMATICAL ITALIC CAPITAL OMICRON",
+ direction="l",
+ linebreak="al",
+ mathclass="variable",
+ mathname="Omicron",
+ specials={ "font", 0x039F },
+ unicodeslot=0x1D6F0,
},
[0x1D6F1]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL ITALIC CAPITAL PI",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03A0 },
- ["unicodeslot"]=0x1D6F1, -- 𝛱
+ category="lu",
+ description="MATHEMATICAL ITALIC CAPITAL PI",
+ direction="l",
+ linebreak="al",
+ mathclass="variable",
+ mathname="Pi",
+ specials={ "font", 0x03A0 },
+ unicodeslot=0x1D6F1,
},
[0x1D6F2]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL ITALIC CAPITAL RHO",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03A1 },
- ["unicodeslot"]=0x1D6F2, -- 𝛲
+ category="lu",
+ description="MATHEMATICAL ITALIC CAPITAL RHO",
+ direction="l",
+ linebreak="al",
+ mathclass="variable",
+ mathname="Rho",
+ specials={ "font", 0x03A1 },
+ unicodeslot=0x1D6F2,
},
[0x1D6F3]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL ITALIC CAPITAL THETA SYMBOL",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03F4 },
- ["unicodeslot"]=0x1D6F3, -- 𝛳
+ category="lu",
+ description="MATHEMATICAL ITALIC CAPITAL THETA SYMBOL",
+ direction="l",
+ linebreak="al",
+ mathclass="variable",
+ mathname="varTheta",
+ specials={ "font", 0x03F4 },
+ unicodeslot=0x1D6F3,
},
[0x1D6F4]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL ITALIC CAPITAL SIGMA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03A3 },
- ["unicodeslot"]=0x1D6F4, -- 𝛴
+ category="lu",
+ description="MATHEMATICAL ITALIC CAPITAL SIGMA",
+ direction="l",
+ linebreak="al",
+ mathclass="variable",
+ mathname="Sigma",
+ specials={ "font", 0x03A3 },
+ unicodeslot=0x1D6F4,
},
[0x1D6F5]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL ITALIC CAPITAL TAU",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03A4 },
- ["unicodeslot"]=0x1D6F5, -- 𝛵
+ category="lu",
+ description="MATHEMATICAL ITALIC CAPITAL TAU",
+ direction="l",
+ linebreak="al",
+ mathclass="variable",
+ mathname="Tau",
+ specials={ "font", 0x03A4 },
+ unicodeslot=0x1D6F5,
},
[0x1D6F6]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL ITALIC CAPITAL UPSILON",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03A5 },
- ["unicodeslot"]=0x1D6F6, -- 𝛶
+ category="lu",
+ description="MATHEMATICAL ITALIC CAPITAL UPSILON",
+ direction="l",
+ linebreak="al",
+ mathclass="variable",
+ mathname="Upsilon",
+ specials={ "font", 0x03A5 },
+ unicodeslot=0x1D6F6,
},
[0x1D6F7]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL ITALIC CAPITAL PHI",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03A6 },
- ["unicodeslot"]=0x1D6F7, -- 𝛷
+ category="lu",
+ description="MATHEMATICAL ITALIC CAPITAL PHI",
+ direction="l",
+ linebreak="al",
+ mathclass="variable",
+ mathname="Phi",
+ specials={ "font", 0x03A6 },
+ unicodeslot=0x1D6F7,
},
[0x1D6F8]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL ITALIC CAPITAL CHI",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03A7 },
- ["unicodeslot"]=0x1D6F8, -- 𝛸
+ category="lu",
+ description="MATHEMATICAL ITALIC CAPITAL CHI",
+ direction="l",
+ linebreak="al",
+ mathclass="variable",
+ mathname="Chi",
+ specials={ "font", 0x03A7 },
+ unicodeslot=0x1D6F8,
},
[0x1D6F9]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL ITALIC CAPITAL PSI",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03A8 },
- ["unicodeslot"]=0x1D6F9, -- 𝛹
+ category="lu",
+ description="MATHEMATICAL ITALIC CAPITAL PSI",
+ direction="l",
+ linebreak="al",
+ mathclass="variable",
+ mathname="Psi",
+ specials={ "font", 0x03A8 },
+ unicodeslot=0x1D6F9,
},
[0x1D6FA]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL ITALIC CAPITAL OMEGA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03A9 },
- ["unicodeslot"]=0x1D6FA, -- 𝛺
+ category="lu",
+ description="MATHEMATICAL ITALIC CAPITAL OMEGA",
+ direction="l",
+ linebreak="al",
+ mathclass="variable",
+ mathname="Omega",
+ specials={ "font", 0x03A9 },
+ unicodeslot=0x1D6FA,
},
[0x1D6FB]={
- ["category"]="sm",
- ["description"]="MATHEMATICAL ITALIC NABLA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x2207 },
- ["unicodeslot"]=0x1D6FB, -- 𝛻
+ category="sm",
+ description="MATHEMATICAL ITALIC NABLA",
+ direction="l",
+ linebreak="al",
+ mathclass="default",
+ mathname="nabla",
+ specials={ "font", 0x2207 },
+ unicodeslot=0x1D6FB,
},
[0x1D6FC]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL ITALIC SMALL ALPHA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03B1 },
- ["unicodeslot"]=0x1D6FC, -- 𝛼
+ category="ll",
+ description="MATHEMATICAL ITALIC SMALL ALPHA",
+ direction="l",
+ linebreak="al",
+ mathclass="default",
+ mathname="alpha",
+ specials={ "font", 0x03B1 },
+ unicodeslot=0x1D6FC,
},
[0x1D6FD]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL ITALIC SMALL BETA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03B2 },
- ["unicodeslot"]=0x1D6FD, -- 𝛽
+ category="ll",
+ description="MATHEMATICAL ITALIC SMALL BETA",
+ direction="l",
+ linebreak="al",
+ mathclass="default",
+ mathname="beta",
+ specials={ "font", 0x03B2 },
+ unicodeslot=0x1D6FD,
},
[0x1D6FE]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL ITALIC SMALL GAMMA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03B3 },
- ["unicodeslot"]=0x1D6FE, -- 𝛾
+ category="ll",
+ description="MATHEMATICAL ITALIC SMALL GAMMA",
+ direction="l",
+ linebreak="al",
+ mathclass="default",
+ mathname="gamma",
+ specials={ "font", 0x03B3 },
+ unicodeslot=0x1D6FE,
},
[0x1D6FF]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL ITALIC SMALL DELTA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03B4 },
- ["unicodeslot"]=0x1D6FF, -- 𝛿
+ category="ll",
+ description="MATHEMATICAL ITALIC SMALL DELTA",
+ direction="l",
+ linebreak="al",
+ mathclass="default",
+ mathname="delta",
+ specials={ "font", 0x03B4 },
+ unicodeslot=0x1D6FF,
},
[0x1D700]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL ITALIC SMALL EPSILON",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03B5 },
- ["unicodeslot"]=0x1D700, -- 𝜀
+ category="ll",
+ description="MATHEMATICAL ITALIC SMALL EPSILON",
+ direction="l",
+ linebreak="al",
+ mathclass="default",
+ mathname="varepsilon",
+ specials={ "font", 0x03B5 },
+ unicodeslot=0x1D700,
},
[0x1D701]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL ITALIC SMALL ZETA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03B6 },
- ["unicodeslot"]=0x1D701, -- 𝜁
+ category="ll",
+ description="MATHEMATICAL ITALIC SMALL ZETA",
+ direction="l",
+ linebreak="al",
+ mathclass="default",
+ mathname="zeta",
+ specials={ "font", 0x03B6 },
+ unicodeslot=0x1D701,
},
[0x1D702]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL ITALIC SMALL ETA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03B7 },
- ["unicodeslot"]=0x1D702, -- 𝜂
+ category="ll",
+ description="MATHEMATICAL ITALIC SMALL ETA",
+ direction="l",
+ linebreak="al",
+ mathclass="default",
+ mathname="eta",
+ specials={ "font", 0x03B7 },
+ unicodeslot=0x1D702,
},
[0x1D703]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL ITALIC SMALL THETA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03B8 },
- ["unicodeslot"]=0x1D703, -- 𝜃
+ category="ll",
+ description="MATHEMATICAL ITALIC SMALL THETA",
+ direction="l",
+ linebreak="al",
+ mathclass="default",
+ mathname="theta",
+ specials={ "font", 0x03B8 },
+ unicodeslot=0x1D703,
},
[0x1D704]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL ITALIC SMALL IOTA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03B9 },
- ["unicodeslot"]=0x1D704, -- 𝜄
+ category="ll",
+ description="MATHEMATICAL ITALIC SMALL IOTA",
+ direction="l",
+ linebreak="al",
+ mathclass="default",
+ mathname="iota",
+ specials={ "font", 0x03B9 },
+ unicodeslot=0x1D704,
},
[0x1D705]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL ITALIC SMALL KAPPA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03BA },
- ["unicodeslot"]=0x1D705, -- 𝜅
+ category="ll",
+ description="MATHEMATICAL ITALIC SMALL KAPPA",
+ direction="l",
+ linebreak="al",
+ mathclass="default",
+ mathname="kappa",
+ specials={ "font", 0x03BA },
+ unicodeslot=0x1D705,
},
[0x1D706]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL ITALIC SMALL LAMDA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03BB },
- ["unicodeslot"]=0x1D706, -- 𝜆
+ category="ll",
+ description="MATHEMATICAL ITALIC SMALL LAMDA",
+ direction="l",
+ linebreak="al",
+ mathclass="default",
+ mathname="lambda",
+ specials={ "font", 0x03BB },
+ unicodeslot=0x1D706,
},
[0x1D707]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL ITALIC SMALL MU",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03BC },
- ["unicodeslot"]=0x1D707, -- 𝜇
+ category="ll",
+ description="MATHEMATICAL ITALIC SMALL MU",
+ direction="l",
+ linebreak="al",
+ mathclass="default",
+ mathname="mu",
+ specials={ "font", 0x03BC },
+ unicodeslot=0x1D707,
},
[0x1D708]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL ITALIC SMALL NU",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03BD },
- ["unicodeslot"]=0x1D708, -- 𝜈
+ category="ll",
+ description="MATHEMATICAL ITALIC SMALL NU",
+ direction="l",
+ linebreak="al",
+ mathclass="default",
+ mathname="nu",
+ specials={ "font", 0x03BD },
+ unicodeslot=0x1D708,
},
[0x1D709]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL ITALIC SMALL XI",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03BE },
- ["unicodeslot"]=0x1D709, -- 𝜉
+ category="ll",
+ description="MATHEMATICAL ITALIC SMALL XI",
+ direction="l",
+ linebreak="al",
+ mathclass="default",
+ mathname="xi",
+ specials={ "font", 0x03BE },
+ unicodeslot=0x1D709,
},
[0x1D70A]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL ITALIC SMALL OMICRON",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03BF },
- ["unicodeslot"]=0x1D70A, -- 𝜊
+ category="ll",
+ description="MATHEMATICAL ITALIC SMALL OMICRON",
+ direction="l",
+ linebreak="al",
+ mathclass="default",
+ mathname="omicron",
+ specials={ "font", 0x03BF },
+ unicodeslot=0x1D70A,
},
[0x1D70B]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL ITALIC SMALL PI",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03C0 },
- ["unicodeslot"]=0x1D70B, -- 𝜋
+ category="ll",
+ description="MATHEMATICAL ITALIC SMALL PI",
+ direction="l",
+ linebreak="al",
+ mathclass="default",
+ mathname="pi",
+ specials={ "font", 0x03C0 },
+ unicodeslot=0x1D70B,
},
[0x1D70C]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL ITALIC SMALL RHO",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03C1 },
- ["unicodeslot"]=0x1D70C, -- 𝜌
+ category="ll",
+ description="MATHEMATICAL ITALIC SMALL RHO",
+ direction="l",
+ linebreak="al",
+ mathclass="default",
+ mathname="rho",
+ specials={ "font", 0x03C1 },
+ unicodeslot=0x1D70C,
},
[0x1D70D]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL ITALIC SMALL FINAL SIGMA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03C2 },
- ["unicodeslot"]=0x1D70D, -- 𝜍
+ category="ll",
+ description="MATHEMATICAL ITALIC SMALL FINAL SIGMA",
+ direction="l",
+ linebreak="al",
+ mathclass="default",
+ mathname="varsigma",
+ specials={ "font", 0x03C2 },
+ unicodeslot=0x1D70D,
},
[0x1D70E]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL ITALIC SMALL SIGMA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03C3 },
- ["unicodeslot"]=0x1D70E, -- 𝜎
+ category="ll",
+ description="MATHEMATICAL ITALIC SMALL SIGMA",
+ direction="l",
+ linebreak="al",
+ mathclass="default",
+ mathname="sigma",
+ specials={ "font", 0x03C3 },
+ unicodeslot=0x1D70E,
},
[0x1D70F]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL ITALIC SMALL TAU",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03C4 },
- ["unicodeslot"]=0x1D70F, -- 𝜏
+ category="ll",
+ description="MATHEMATICAL ITALIC SMALL TAU",
+ direction="l",
+ linebreak="al",
+ mathclass="default",
+ mathname="tau",
+ specials={ "font", 0x03C4 },
+ unicodeslot=0x1D70F,
},
[0x1D710]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL ITALIC SMALL UPSILON",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03C5 },
- ["unicodeslot"]=0x1D710, -- 𝜐
+ category="ll",
+ description="MATHEMATICAL ITALIC SMALL UPSILON",
+ direction="l",
+ linebreak="al",
+ mathclass="default",
+ mathname="upsilon",
+ specials={ "font", 0x03C5 },
+ unicodeslot=0x1D710,
},
[0x1D711]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL ITALIC SMALL PHI",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03C6 },
- ["unicodeslot"]=0x1D711, -- 𝜑
+ category="ll",
+ description="MATHEMATICAL ITALIC SMALL PHI",
+ direction="l",
+ linebreak="al",
+ mathclass="default",
+ mathname="varphi",
+ specials={ "font", 0x03C6 },
+ unicodeslot=0x1D711,
},
[0x1D712]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL ITALIC SMALL CHI",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03C7 },
- ["unicodeslot"]=0x1D712, -- 𝜒
+ category="ll",
+ description="MATHEMATICAL ITALIC SMALL CHI",
+ direction="l",
+ linebreak="al",
+ mathclass="default",
+ mathname="chi",
+ specials={ "font", 0x03C7 },
+ unicodeslot=0x1D712,
},
[0x1D713]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL ITALIC SMALL PSI",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03C8 },
- ["unicodeslot"]=0x1D713, -- 𝜓
+ category="ll",
+ description="MATHEMATICAL ITALIC SMALL PSI",
+ direction="l",
+ linebreak="al",
+ mathclass="default",
+ mathname="psi",
+ specials={ "font", 0x03C8 },
+ unicodeslot=0x1D713,
},
[0x1D714]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL ITALIC SMALL OMEGA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03C9 },
- ["unicodeslot"]=0x1D714, -- 𝜔
+ category="ll",
+ description="MATHEMATICAL ITALIC SMALL OMEGA",
+ direction="l",
+ linebreak="al",
+ mathclass="default",
+ mathname="omega",
+ specials={ "font", 0x03C9 },
+ unicodeslot=0x1D714,
},
[0x1D715]={
- ["category"]="sm",
- ["description"]="MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x2202 },
- ["unicodeslot"]=0x1D715, -- 𝜕
+ category="sm",
+ description="MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x2202 },
+ unicodeslot=0x1D715,
},
[0x1D716]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL ITALIC EPSILON SYMBOL",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03F5 },
- ["unicodeslot"]=0x1D716, -- 𝜖
+ category="ll",
+ description="MATHEMATICAL ITALIC EPSILON SYMBOL",
+ direction="l",
+ linebreak="al",
+ mathclass="default",
+ mathname="epsilon",
+ specials={ "font", 0x03F5 },
+ unicodeslot=0x1D716,
},
[0x1D717]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL ITALIC THETA SYMBOL",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03D1 },
- ["unicodeslot"]=0x1D717, -- 𝜗
+ category="ll",
+ description="MATHEMATICAL ITALIC THETA SYMBOL",
+ direction="l",
+ linebreak="al",
+ mathclass="default",
+ mathname="vartheta",
+ specials={ "font", 0x03D1 },
+ unicodeslot=0x1D717,
},
[0x1D718]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL ITALIC KAPPA SYMBOL",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03F0 },
- ["unicodeslot"]=0x1D718, -- 𝜘
+ category="ll",
+ description="MATHEMATICAL ITALIC KAPPA SYMBOL",
+ direction="l",
+ linebreak="al",
+ mathclass="default",
+ mathname="varkappa",
+ specials={ "font", 0x03F0 },
+ unicodeslot=0x1D718,
},
[0x1D719]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL ITALIC PHI SYMBOL",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03D5 },
- ["unicodeslot"]=0x1D719, -- 𝜙
+ category="ll",
+ description="MATHEMATICAL ITALIC PHI SYMBOL",
+ direction="l",
+ linebreak="al",
+ mathclass="default",
+ mathname="phi",
+ specials={ "font", 0x03D5 },
+ unicodeslot=0x1D719,
},
[0x1D71A]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL ITALIC RHO SYMBOL",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03F1 },
- ["unicodeslot"]=0x1D71A, -- 𝜚
+ category="ll",
+ description="MATHEMATICAL ITALIC RHO SYMBOL",
+ direction="l",
+ linebreak="al",
+ mathclass="default",
+ mathname="varrho",
+ specials={ "font", 0x03F1 },
+ unicodeslot=0x1D71A,
},
[0x1D71B]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL ITALIC PI SYMBOL",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03D6 },
- ["unicodeslot"]=0x1D71B, -- 𝜛
+ category="ll",
+ description="MATHEMATICAL ITALIC PI SYMBOL",
+ direction="l",
+ linebreak="al",
+ mathclass="default",
+ mathname="varpi",
+ specials={ "font", 0x03D6 },
+ unicodeslot=0x1D71B,
},
[0x1D71C]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD ITALIC CAPITAL ALPHA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0391 },
- ["unicodeslot"]=0x1D71C, -- 𝜜
+ category="lu",
+ description="MATHEMATICAL BOLD ITALIC CAPITAL ALPHA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0391 },
+ unicodeslot=0x1D71C,
},
[0x1D71D]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD ITALIC CAPITAL BETA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0392 },
- ["unicodeslot"]=0x1D71D, -- 𝜝
+ category="lu",
+ description="MATHEMATICAL BOLD ITALIC CAPITAL BETA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0392 },
+ unicodeslot=0x1D71D,
},
[0x1D71E]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD ITALIC CAPITAL GAMMA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0393 },
- ["unicodeslot"]=0x1D71E, -- 𝜞
+ category="lu",
+ description="MATHEMATICAL BOLD ITALIC CAPITAL GAMMA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0393 },
+ unicodeslot=0x1D71E,
},
[0x1D71F]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD ITALIC CAPITAL DELTA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0394 },
- ["unicodeslot"]=0x1D71F, -- 𝜟
+ category="lu",
+ description="MATHEMATICAL BOLD ITALIC CAPITAL DELTA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0394 },
+ unicodeslot=0x1D71F,
},
[0x1D720]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD ITALIC CAPITAL EPSILON",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0395 },
- ["unicodeslot"]=0x1D720, -- 𝜠
+ category="lu",
+ description="MATHEMATICAL BOLD ITALIC CAPITAL EPSILON",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0395 },
+ unicodeslot=0x1D720,
},
[0x1D721]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD ITALIC CAPITAL ZETA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0396 },
- ["unicodeslot"]=0x1D721, -- 𝜡
+ category="lu",
+ description="MATHEMATICAL BOLD ITALIC CAPITAL ZETA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0396 },
+ unicodeslot=0x1D721,
},
[0x1D722]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD ITALIC CAPITAL ETA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0397 },
- ["unicodeslot"]=0x1D722, -- 𝜢
+ category="lu",
+ description="MATHEMATICAL BOLD ITALIC CAPITAL ETA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0397 },
+ unicodeslot=0x1D722,
},
[0x1D723]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD ITALIC CAPITAL THETA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0398 },
- ["unicodeslot"]=0x1D723, -- 𝜣
+ category="lu",
+ description="MATHEMATICAL BOLD ITALIC CAPITAL THETA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0398 },
+ unicodeslot=0x1D723,
},
[0x1D724]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD ITALIC CAPITAL IOTA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0399 },
- ["unicodeslot"]=0x1D724, -- 𝜤
+ category="lu",
+ description="MATHEMATICAL BOLD ITALIC CAPITAL IOTA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0399 },
+ unicodeslot=0x1D724,
},
[0x1D725]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD ITALIC CAPITAL KAPPA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x039A },
- ["unicodeslot"]=0x1D725, -- 𝜥
+ category="lu",
+ description="MATHEMATICAL BOLD ITALIC CAPITAL KAPPA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x039A },
+ unicodeslot=0x1D725,
},
[0x1D726]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD ITALIC CAPITAL LAMDA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x039B },
- ["unicodeslot"]=0x1D726, -- 𝜦
+ category="lu",
+ description="MATHEMATICAL BOLD ITALIC CAPITAL LAMDA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x039B },
+ unicodeslot=0x1D726,
},
[0x1D727]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD ITALIC CAPITAL MU",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x039C },
- ["unicodeslot"]=0x1D727, -- 𝜧
+ category="lu",
+ description="MATHEMATICAL BOLD ITALIC CAPITAL MU",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x039C },
+ unicodeslot=0x1D727,
},
[0x1D728]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD ITALIC CAPITAL NU",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x039D },
- ["unicodeslot"]=0x1D728, -- 𝜨
+ category="lu",
+ description="MATHEMATICAL BOLD ITALIC CAPITAL NU",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x039D },
+ unicodeslot=0x1D728,
},
[0x1D729]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD ITALIC CAPITAL XI",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x039E },
- ["unicodeslot"]=0x1D729, -- 𝜩
+ category="lu",
+ description="MATHEMATICAL BOLD ITALIC CAPITAL XI",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x039E },
+ unicodeslot=0x1D729,
},
[0x1D72A]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD ITALIC CAPITAL OMICRON",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x039F },
- ["unicodeslot"]=0x1D72A, -- 𝜪
+ category="lu",
+ description="MATHEMATICAL BOLD ITALIC CAPITAL OMICRON",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x039F },
+ unicodeslot=0x1D72A,
},
[0x1D72B]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD ITALIC CAPITAL PI",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03A0 },
- ["unicodeslot"]=0x1D72B, -- 𝜫
+ category="lu",
+ description="MATHEMATICAL BOLD ITALIC CAPITAL PI",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03A0 },
+ unicodeslot=0x1D72B,
},
[0x1D72C]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD ITALIC CAPITAL RHO",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03A1 },
- ["unicodeslot"]=0x1D72C, -- 𝜬
+ category="lu",
+ description="MATHEMATICAL BOLD ITALIC CAPITAL RHO",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03A1 },
+ unicodeslot=0x1D72C,
},
[0x1D72D]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD ITALIC CAPITAL THETA SYMBOL",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03F4 },
- ["unicodeslot"]=0x1D72D, -- 𝜭
+ category="lu",
+ description="MATHEMATICAL BOLD ITALIC CAPITAL THETA SYMBOL",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03F4 },
+ unicodeslot=0x1D72D,
},
[0x1D72E]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD ITALIC CAPITAL SIGMA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03A3 },
- ["unicodeslot"]=0x1D72E, -- 𝜮
+ category="lu",
+ description="MATHEMATICAL BOLD ITALIC CAPITAL SIGMA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03A3 },
+ unicodeslot=0x1D72E,
},
[0x1D72F]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD ITALIC CAPITAL TAU",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03A4 },
- ["unicodeslot"]=0x1D72F, -- 𝜯
+ category="lu",
+ description="MATHEMATICAL BOLD ITALIC CAPITAL TAU",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03A4 },
+ unicodeslot=0x1D72F,
},
[0x1D730]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD ITALIC CAPITAL UPSILON",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03A5 },
- ["unicodeslot"]=0x1D730, -- 𝜰
+ category="lu",
+ description="MATHEMATICAL BOLD ITALIC CAPITAL UPSILON",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03A5 },
+ unicodeslot=0x1D730,
},
[0x1D731]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD ITALIC CAPITAL PHI",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03A6 },
- ["unicodeslot"]=0x1D731, -- 𝜱
+ category="lu",
+ description="MATHEMATICAL BOLD ITALIC CAPITAL PHI",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03A6 },
+ unicodeslot=0x1D731,
},
[0x1D732]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD ITALIC CAPITAL CHI",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03A7 },
- ["unicodeslot"]=0x1D732, -- 𝜲
+ category="lu",
+ description="MATHEMATICAL BOLD ITALIC CAPITAL CHI",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03A7 },
+ unicodeslot=0x1D732,
},
[0x1D733]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD ITALIC CAPITAL PSI",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03A8 },
- ["unicodeslot"]=0x1D733, -- 𝜳
+ category="lu",
+ description="MATHEMATICAL BOLD ITALIC CAPITAL PSI",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03A8 },
+ unicodeslot=0x1D733,
},
[0x1D734]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD ITALIC CAPITAL OMEGA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03A9 },
- ["unicodeslot"]=0x1D734, -- 𝜴
+ category="lu",
+ description="MATHEMATICAL BOLD ITALIC CAPITAL OMEGA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03A9 },
+ unicodeslot=0x1D734,
},
[0x1D735]={
- ["category"]="sm",
- ["description"]="MATHEMATICAL BOLD ITALIC NABLA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x2207 },
- ["unicodeslot"]=0x1D735, -- 𝜵
+ category="sm",
+ description="MATHEMATICAL BOLD ITALIC NABLA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x2207 },
+ unicodeslot=0x1D735,
},
[0x1D736]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD ITALIC SMALL ALPHA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03B1 },
- ["unicodeslot"]=0x1D736, -- 𝜶
+ category="ll",
+ description="MATHEMATICAL BOLD ITALIC SMALL ALPHA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03B1 },
+ unicodeslot=0x1D736,
},
[0x1D737]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD ITALIC SMALL BETA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03B2 },
- ["unicodeslot"]=0x1D737, -- 𝜷
+ category="ll",
+ description="MATHEMATICAL BOLD ITALIC SMALL BETA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03B2 },
+ unicodeslot=0x1D737,
},
[0x1D738]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD ITALIC SMALL GAMMA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03B3 },
- ["unicodeslot"]=0x1D738, -- 𝜸
+ category="ll",
+ description="MATHEMATICAL BOLD ITALIC SMALL GAMMA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03B3 },
+ unicodeslot=0x1D738,
},
[0x1D739]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD ITALIC SMALL DELTA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03B4 },
- ["unicodeslot"]=0x1D739, -- 𝜹
+ category="ll",
+ description="MATHEMATICAL BOLD ITALIC SMALL DELTA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03B4 },
+ unicodeslot=0x1D739,
},
[0x1D73A]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD ITALIC SMALL EPSILON",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03B5 },
- ["unicodeslot"]=0x1D73A, -- 𝜺
+ category="ll",
+ description="MATHEMATICAL BOLD ITALIC SMALL EPSILON",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03B5 },
+ unicodeslot=0x1D73A,
},
[0x1D73B]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD ITALIC SMALL ZETA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03B6 },
- ["unicodeslot"]=0x1D73B, -- 𝜻
+ category="ll",
+ description="MATHEMATICAL BOLD ITALIC SMALL ZETA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03B6 },
+ unicodeslot=0x1D73B,
},
[0x1D73C]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD ITALIC SMALL ETA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03B7 },
- ["unicodeslot"]=0x1D73C, -- 𝜼
+ category="ll",
+ description="MATHEMATICAL BOLD ITALIC SMALL ETA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03B7 },
+ unicodeslot=0x1D73C,
},
[0x1D73D]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD ITALIC SMALL THETA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03B8 },
- ["unicodeslot"]=0x1D73D, -- 𝜽
+ category="ll",
+ description="MATHEMATICAL BOLD ITALIC SMALL THETA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03B8 },
+ unicodeslot=0x1D73D,
},
[0x1D73E]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD ITALIC SMALL IOTA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03B9 },
- ["unicodeslot"]=0x1D73E, -- 𝜾
+ category="ll",
+ description="MATHEMATICAL BOLD ITALIC SMALL IOTA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03B9 },
+ unicodeslot=0x1D73E,
},
[0x1D73F]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD ITALIC SMALL KAPPA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03BA },
- ["unicodeslot"]=0x1D73F, -- 𝜿
+ category="ll",
+ description="MATHEMATICAL BOLD ITALIC SMALL KAPPA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03BA },
+ unicodeslot=0x1D73F,
},
[0x1D740]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD ITALIC SMALL LAMDA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03BB },
- ["unicodeslot"]=0x1D740, -- 𝝀
+ category="ll",
+ description="MATHEMATICAL BOLD ITALIC SMALL LAMDA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03BB },
+ unicodeslot=0x1D740,
},
[0x1D741]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD ITALIC SMALL MU",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03BC },
- ["unicodeslot"]=0x1D741, -- 𝝁
+ category="ll",
+ description="MATHEMATICAL BOLD ITALIC SMALL MU",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03BC },
+ unicodeslot=0x1D741,
},
[0x1D742]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD ITALIC SMALL NU",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03BD },
- ["unicodeslot"]=0x1D742, -- 𝝂
+ category="ll",
+ description="MATHEMATICAL BOLD ITALIC SMALL NU",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03BD },
+ unicodeslot=0x1D742,
},
[0x1D743]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD ITALIC SMALL XI",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03BE },
- ["unicodeslot"]=0x1D743, -- 𝝃
+ category="ll",
+ description="MATHEMATICAL BOLD ITALIC SMALL XI",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03BE },
+ unicodeslot=0x1D743,
},
[0x1D744]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD ITALIC SMALL OMICRON",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03BF },
- ["unicodeslot"]=0x1D744, -- 𝝄
+ category="ll",
+ description="MATHEMATICAL BOLD ITALIC SMALL OMICRON",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03BF },
+ unicodeslot=0x1D744,
},
[0x1D745]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD ITALIC SMALL PI",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03C0 },
- ["unicodeslot"]=0x1D745, -- 𝝅
+ category="ll",
+ description="MATHEMATICAL BOLD ITALIC SMALL PI",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03C0 },
+ unicodeslot=0x1D745,
},
[0x1D746]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD ITALIC SMALL RHO",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03C1 },
- ["unicodeslot"]=0x1D746, -- 𝝆
+ category="ll",
+ description="MATHEMATICAL BOLD ITALIC SMALL RHO",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03C1 },
+ unicodeslot=0x1D746,
},
[0x1D747]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD ITALIC SMALL FINAL SIGMA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03C2 },
- ["unicodeslot"]=0x1D747, -- 𝝇
+ category="ll",
+ description="MATHEMATICAL BOLD ITALIC SMALL FINAL SIGMA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03C2 },
+ unicodeslot=0x1D747,
},
[0x1D748]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD ITALIC SMALL SIGMA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03C3 },
- ["unicodeslot"]=0x1D748, -- 𝝈
+ category="ll",
+ description="MATHEMATICAL BOLD ITALIC SMALL SIGMA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03C3 },
+ unicodeslot=0x1D748,
},
[0x1D749]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD ITALIC SMALL TAU",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03C4 },
- ["unicodeslot"]=0x1D749, -- 𝝉
+ category="ll",
+ description="MATHEMATICAL BOLD ITALIC SMALL TAU",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03C4 },
+ unicodeslot=0x1D749,
},
[0x1D74A]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD ITALIC SMALL UPSILON",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03C5 },
- ["unicodeslot"]=0x1D74A, -- 𝝊
+ category="ll",
+ description="MATHEMATICAL BOLD ITALIC SMALL UPSILON",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03C5 },
+ unicodeslot=0x1D74A,
},
[0x1D74B]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD ITALIC SMALL PHI",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03C6 },
- ["unicodeslot"]=0x1D74B, -- 𝝋
+ category="ll",
+ description="MATHEMATICAL BOLD ITALIC SMALL PHI",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03C6 },
+ unicodeslot=0x1D74B,
},
[0x1D74C]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD ITALIC SMALL CHI",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03C7 },
- ["unicodeslot"]=0x1D74C, -- 𝝌
+ category="ll",
+ description="MATHEMATICAL BOLD ITALIC SMALL CHI",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03C7 },
+ unicodeslot=0x1D74C,
},
[0x1D74D]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD ITALIC SMALL PSI",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03C8 },
- ["unicodeslot"]=0x1D74D, -- 𝝍
+ category="ll",
+ description="MATHEMATICAL BOLD ITALIC SMALL PSI",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03C8 },
+ unicodeslot=0x1D74D,
},
[0x1D74E]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD ITALIC SMALL OMEGA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03C9 },
- ["unicodeslot"]=0x1D74E, -- 𝝎
+ category="ll",
+ description="MATHEMATICAL BOLD ITALIC SMALL OMEGA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03C9 },
+ unicodeslot=0x1D74E,
},
[0x1D74F]={
- ["category"]="sm",
- ["description"]="MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x2202 },
- ["unicodeslot"]=0x1D74F, -- 𝝏
+ category="sm",
+ description="MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x2202 },
+ unicodeslot=0x1D74F,
},
[0x1D750]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD ITALIC EPSILON SYMBOL",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03F5 },
- ["unicodeslot"]=0x1D750, -- 𝝐
+ category="ll",
+ description="MATHEMATICAL BOLD ITALIC EPSILON SYMBOL",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03F5 },
+ unicodeslot=0x1D750,
},
[0x1D751]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD ITALIC THETA SYMBOL",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03D1 },
- ["unicodeslot"]=0x1D751, -- 𝝑
+ category="ll",
+ description="MATHEMATICAL BOLD ITALIC THETA SYMBOL",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03D1 },
+ unicodeslot=0x1D751,
},
[0x1D752]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD ITALIC KAPPA SYMBOL",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03F0 },
- ["unicodeslot"]=0x1D752, -- 𝝒
+ category="ll",
+ description="MATHEMATICAL BOLD ITALIC KAPPA SYMBOL",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03F0 },
+ unicodeslot=0x1D752,
},
[0x1D753]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD ITALIC PHI SYMBOL",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03D5 },
- ["unicodeslot"]=0x1D753, -- 𝝓
+ category="ll",
+ description="MATHEMATICAL BOLD ITALIC PHI SYMBOL",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03D5 },
+ unicodeslot=0x1D753,
},
[0x1D754]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD ITALIC RHO SYMBOL",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03F1 },
- ["unicodeslot"]=0x1D754, -- 𝝔
+ category="ll",
+ description="MATHEMATICAL BOLD ITALIC RHO SYMBOL",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03F1 },
+ unicodeslot=0x1D754,
},
[0x1D755]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD ITALIC PI SYMBOL",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03D6 },
- ["unicodeslot"]=0x1D755, -- 𝝕
+ category="ll",
+ description="MATHEMATICAL BOLD ITALIC PI SYMBOL",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03D6 },
+ unicodeslot=0x1D755,
},
[0x1D756]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD CAPITAL ALPHA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0391 },
- ["unicodeslot"]=0x1D756, -- 𝝖
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD CAPITAL ALPHA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0391 },
+ unicodeslot=0x1D756,
},
[0x1D757]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD CAPITAL BETA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0392 },
- ["unicodeslot"]=0x1D757, -- 𝝗
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD CAPITAL BETA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0392 },
+ unicodeslot=0x1D757,
},
[0x1D758]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD CAPITAL GAMMA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0393 },
- ["unicodeslot"]=0x1D758, -- 𝝘
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD CAPITAL GAMMA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0393 },
+ unicodeslot=0x1D758,
},
[0x1D759]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD CAPITAL DELTA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0394 },
- ["unicodeslot"]=0x1D759, -- 𝝙
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD CAPITAL DELTA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0394 },
+ unicodeslot=0x1D759,
},
[0x1D75A]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD CAPITAL EPSILON",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0395 },
- ["unicodeslot"]=0x1D75A, -- 𝝚
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD CAPITAL EPSILON",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0395 },
+ unicodeslot=0x1D75A,
},
[0x1D75B]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD CAPITAL ZETA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0396 },
- ["unicodeslot"]=0x1D75B, -- 𝝛
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD CAPITAL ZETA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0396 },
+ unicodeslot=0x1D75B,
},
[0x1D75C]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD CAPITAL ETA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0397 },
- ["unicodeslot"]=0x1D75C, -- 𝝜
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD CAPITAL ETA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0397 },
+ unicodeslot=0x1D75C,
},
[0x1D75D]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0398 },
- ["unicodeslot"]=0x1D75D, -- 𝝝
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0398 },
+ unicodeslot=0x1D75D,
},
[0x1D75E]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD CAPITAL IOTA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0399 },
- ["unicodeslot"]=0x1D75E, -- 𝝞
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD CAPITAL IOTA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0399 },
+ unicodeslot=0x1D75E,
},
[0x1D75F]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD CAPITAL KAPPA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x039A },
- ["unicodeslot"]=0x1D75F, -- 𝝟
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD CAPITAL KAPPA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x039A },
+ unicodeslot=0x1D75F,
},
[0x1D760]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD CAPITAL LAMDA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x039B },
- ["unicodeslot"]=0x1D760, -- 𝝠
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD CAPITAL LAMDA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x039B },
+ unicodeslot=0x1D760,
},
[0x1D761]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD CAPITAL MU",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x039C },
- ["unicodeslot"]=0x1D761, -- 𝝡
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD CAPITAL MU",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x039C },
+ unicodeslot=0x1D761,
},
[0x1D762]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD CAPITAL NU",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x039D },
- ["unicodeslot"]=0x1D762, -- 𝝢
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD CAPITAL NU",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x039D },
+ unicodeslot=0x1D762,
},
[0x1D763]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD CAPITAL XI",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x039E },
- ["unicodeslot"]=0x1D763, -- 𝝣
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD CAPITAL XI",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x039E },
+ unicodeslot=0x1D763,
},
[0x1D764]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD CAPITAL OMICRON",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x039F },
- ["unicodeslot"]=0x1D764, -- 𝝤
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD CAPITAL OMICRON",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x039F },
+ unicodeslot=0x1D764,
},
[0x1D765]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD CAPITAL PI",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03A0 },
- ["unicodeslot"]=0x1D765, -- 𝝥
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD CAPITAL PI",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03A0 },
+ unicodeslot=0x1D765,
},
[0x1D766]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD CAPITAL RHO",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03A1 },
- ["unicodeslot"]=0x1D766, -- 𝝦
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD CAPITAL RHO",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03A1 },
+ unicodeslot=0x1D766,
},
[0x1D767]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA SYMBOL",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03F4 },
- ["unicodeslot"]=0x1D767, -- 𝝧
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA SYMBOL",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03F4 },
+ unicodeslot=0x1D767,
},
[0x1D768]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD CAPITAL SIGMA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03A3 },
- ["unicodeslot"]=0x1D768, -- 𝝨
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD CAPITAL SIGMA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03A3 },
+ unicodeslot=0x1D768,
},
[0x1D769]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD CAPITAL TAU",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03A4 },
- ["unicodeslot"]=0x1D769, -- 𝝩
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD CAPITAL TAU",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03A4 },
+ unicodeslot=0x1D769,
},
[0x1D76A]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD CAPITAL UPSILON",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03A5 },
- ["unicodeslot"]=0x1D76A, -- 𝝪
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD CAPITAL UPSILON",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03A5 },
+ unicodeslot=0x1D76A,
},
[0x1D76B]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD CAPITAL PHI",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03A6 },
- ["unicodeslot"]=0x1D76B, -- 𝝫
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD CAPITAL PHI",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03A6 },
+ unicodeslot=0x1D76B,
},
[0x1D76C]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD CAPITAL CHI",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03A7 },
- ["unicodeslot"]=0x1D76C, -- 𝝬
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD CAPITAL CHI",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03A7 },
+ unicodeslot=0x1D76C,
},
[0x1D76D]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD CAPITAL PSI",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03A8 },
- ["unicodeslot"]=0x1D76D, -- 𝝭
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD CAPITAL PSI",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03A8 },
+ unicodeslot=0x1D76D,
},
[0x1D76E]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03A9 },
- ["unicodeslot"]=0x1D76E, -- 𝝮
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03A9 },
+ unicodeslot=0x1D76E,
},
[0x1D76F]={
- ["category"]="sm",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD NABLA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x2207 },
- ["unicodeslot"]=0x1D76F, -- 𝝯
+ category="sm",
+ description="MATHEMATICAL SANS-SERIF BOLD NABLA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x2207 },
+ unicodeslot=0x1D76F,
},
[0x1D770]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03B1 },
- ["unicodeslot"]=0x1D770, -- 𝝰
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03B1 },
+ unicodeslot=0x1D770,
},
[0x1D771]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD SMALL BETA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03B2 },
- ["unicodeslot"]=0x1D771, -- 𝝱
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD SMALL BETA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03B2 },
+ unicodeslot=0x1D771,
},
[0x1D772]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD SMALL GAMMA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03B3 },
- ["unicodeslot"]=0x1D772, -- 𝝲
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD SMALL GAMMA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03B3 },
+ unicodeslot=0x1D772,
},
[0x1D773]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD SMALL DELTA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03B4 },
- ["unicodeslot"]=0x1D773, -- 𝝳
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD SMALL DELTA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03B4 },
+ unicodeslot=0x1D773,
},
[0x1D774]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD SMALL EPSILON",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03B5 },
- ["unicodeslot"]=0x1D774, -- 𝝴
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD SMALL EPSILON",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03B5 },
+ unicodeslot=0x1D774,
},
[0x1D775]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD SMALL ZETA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03B6 },
- ["unicodeslot"]=0x1D775, -- 𝝵
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD SMALL ZETA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03B6 },
+ unicodeslot=0x1D775,
},
[0x1D776]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD SMALL ETA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03B7 },
- ["unicodeslot"]=0x1D776, -- 𝝶
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD SMALL ETA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03B7 },
+ unicodeslot=0x1D776,
},
[0x1D777]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD SMALL THETA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03B8 },
- ["unicodeslot"]=0x1D777, -- 𝝷
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD SMALL THETA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03B8 },
+ unicodeslot=0x1D777,
},
[0x1D778]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD SMALL IOTA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03B9 },
- ["unicodeslot"]=0x1D778, -- 𝝸
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD SMALL IOTA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03B9 },
+ unicodeslot=0x1D778,
},
[0x1D779]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD SMALL KAPPA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03BA },
- ["unicodeslot"]=0x1D779, -- 𝝹
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD SMALL KAPPA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03BA },
+ unicodeslot=0x1D779,
},
[0x1D77A]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD SMALL LAMDA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03BB },
- ["unicodeslot"]=0x1D77A, -- 𝝺
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD SMALL LAMDA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03BB },
+ unicodeslot=0x1D77A,
},
[0x1D77B]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD SMALL MU",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03BC },
- ["unicodeslot"]=0x1D77B, -- 𝝻
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD SMALL MU",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03BC },
+ unicodeslot=0x1D77B,
},
[0x1D77C]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD SMALL NU",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03BD },
- ["unicodeslot"]=0x1D77C, -- 𝝼
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD SMALL NU",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03BD },
+ unicodeslot=0x1D77C,
},
[0x1D77D]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD SMALL XI",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03BE },
- ["unicodeslot"]=0x1D77D, -- 𝝽
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD SMALL XI",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03BE },
+ unicodeslot=0x1D77D,
},
[0x1D77E]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD SMALL OMICRON",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03BF },
- ["unicodeslot"]=0x1D77E, -- 𝝾
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD SMALL OMICRON",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03BF },
+ unicodeslot=0x1D77E,
},
[0x1D77F]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD SMALL PI",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03C0 },
- ["unicodeslot"]=0x1D77F, -- 𝝿
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD SMALL PI",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03C0 },
+ unicodeslot=0x1D77F,
},
[0x1D780]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD SMALL RHO",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03C1 },
- ["unicodeslot"]=0x1D780, -- 𝞀
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD SMALL RHO",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03C1 },
+ unicodeslot=0x1D780,
},
[0x1D781]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD SMALL FINAL SIGMA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03C2 },
- ["unicodeslot"]=0x1D781, -- 𝞁
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD SMALL FINAL SIGMA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03C2 },
+ unicodeslot=0x1D781,
},
[0x1D782]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD SMALL SIGMA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03C3 },
- ["unicodeslot"]=0x1D782, -- 𝞂
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD SMALL SIGMA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03C3 },
+ unicodeslot=0x1D782,
},
[0x1D783]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD SMALL TAU",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03C4 },
- ["unicodeslot"]=0x1D783, -- 𝞃
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD SMALL TAU",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03C4 },
+ unicodeslot=0x1D783,
},
[0x1D784]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD SMALL UPSILON",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03C5 },
- ["unicodeslot"]=0x1D784, -- 𝞄
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD SMALL UPSILON",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03C5 },
+ unicodeslot=0x1D784,
},
[0x1D785]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD SMALL PHI",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03C6 },
- ["unicodeslot"]=0x1D785, -- 𝞅
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD SMALL PHI",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03C6 },
+ unicodeslot=0x1D785,
},
[0x1D786]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD SMALL CHI",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03C7 },
- ["unicodeslot"]=0x1D786, -- 𝞆
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD SMALL CHI",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03C7 },
+ unicodeslot=0x1D786,
},
[0x1D787]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD SMALL PSI",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03C8 },
- ["unicodeslot"]=0x1D787, -- 𝞇
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD SMALL PSI",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03C8 },
+ unicodeslot=0x1D787,
},
[0x1D788]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03C9 },
- ["unicodeslot"]=0x1D788, -- 𝞈
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03C9 },
+ unicodeslot=0x1D788,
},
[0x1D789]={
- ["category"]="sm",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x2202 },
- ["unicodeslot"]=0x1D789, -- 𝞉
+ category="sm",
+ description="MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x2202 },
+ unicodeslot=0x1D789,
},
[0x1D78A]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03F5 },
- ["unicodeslot"]=0x1D78A, -- 𝞊
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03F5 },
+ unicodeslot=0x1D78A,
},
[0x1D78B]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD THETA SYMBOL",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03D1 },
- ["unicodeslot"]=0x1D78B, -- 𝞋
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD THETA SYMBOL",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03D1 },
+ unicodeslot=0x1D78B,
},
[0x1D78C]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD KAPPA SYMBOL",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03F0 },
- ["unicodeslot"]=0x1D78C, -- 𝞌
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD KAPPA SYMBOL",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03F0 },
+ unicodeslot=0x1D78C,
},
[0x1D78D]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD PHI SYMBOL",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03D5 },
- ["unicodeslot"]=0x1D78D, -- 𝞍
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD PHI SYMBOL",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03D5 },
+ unicodeslot=0x1D78D,
},
[0x1D78E]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD RHO SYMBOL",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03F1 },
- ["unicodeslot"]=0x1D78E, -- 𝞎
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD RHO SYMBOL",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03F1 },
+ unicodeslot=0x1D78E,
},
[0x1D78F]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD PI SYMBOL",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03D6 },
- ["unicodeslot"]=0x1D78F, -- 𝞏
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD PI SYMBOL",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03D6 },
+ unicodeslot=0x1D78F,
},
[0x1D790]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ALPHA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0391 },
- ["unicodeslot"]=0x1D790, -- 𝞐
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ALPHA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0391 },
+ unicodeslot=0x1D790,
},
[0x1D791]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL BETA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0392 },
- ["unicodeslot"]=0x1D791, -- 𝞑
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL BETA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0392 },
+ unicodeslot=0x1D791,
},
[0x1D792]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL GAMMA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0393 },
- ["unicodeslot"]=0x1D792, -- 𝞒
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL GAMMA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0393 },
+ unicodeslot=0x1D792,
},
[0x1D793]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL DELTA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0394 },
- ["unicodeslot"]=0x1D793, -- 𝞓
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL DELTA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0394 },
+ unicodeslot=0x1D793,
},
[0x1D794]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL EPSILON",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0395 },
- ["unicodeslot"]=0x1D794, -- 𝞔
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL EPSILON",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0395 },
+ unicodeslot=0x1D794,
},
[0x1D795]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ZETA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0396 },
- ["unicodeslot"]=0x1D795, -- 𝞕
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ZETA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0396 },
+ unicodeslot=0x1D795,
},
[0x1D796]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ETA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0397 },
- ["unicodeslot"]=0x1D796, -- 𝞖
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ETA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0397 },
+ unicodeslot=0x1D796,
},
[0x1D797]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0398 },
- ["unicodeslot"]=0x1D797, -- 𝞗
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0398 },
+ unicodeslot=0x1D797,
},
[0x1D798]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL IOTA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x0399 },
- ["unicodeslot"]=0x1D798, -- 𝞘
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL IOTA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x0399 },
+ unicodeslot=0x1D798,
},
[0x1D799]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL KAPPA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x039A },
- ["unicodeslot"]=0x1D799, -- 𝞙
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL KAPPA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x039A },
+ unicodeslot=0x1D799,
},
[0x1D79A]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL LAMDA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x039B },
- ["unicodeslot"]=0x1D79A, -- 𝞚
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL LAMDA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x039B },
+ unicodeslot=0x1D79A,
},
[0x1D79B]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL MU",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x039C },
- ["unicodeslot"]=0x1D79B, -- 𝞛
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL MU",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x039C },
+ unicodeslot=0x1D79B,
},
[0x1D79C]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL NU",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x039D },
- ["unicodeslot"]=0x1D79C, -- 𝞜
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL NU",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x039D },
+ unicodeslot=0x1D79C,
},
[0x1D79D]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL XI",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x039E },
- ["unicodeslot"]=0x1D79D, -- 𝞝
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL XI",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x039E },
+ unicodeslot=0x1D79D,
},
[0x1D79E]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMICRON",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x039F },
- ["unicodeslot"]=0x1D79E, -- 𝞞
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMICRON",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x039F },
+ unicodeslot=0x1D79E,
},
[0x1D79F]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PI",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03A0 },
- ["unicodeslot"]=0x1D79F, -- 𝞟
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PI",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03A0 },
+ unicodeslot=0x1D79F,
},
[0x1D7A0]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL RHO",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03A1 },
- ["unicodeslot"]=0x1D7A0, -- 𝞠
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL RHO",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03A1 },
+ unicodeslot=0x1D7A0,
},
[0x1D7A1]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA SYMBOL",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03F4 },
- ["unicodeslot"]=0x1D7A1, -- 𝞡
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA SYMBOL",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03F4 },
+ unicodeslot=0x1D7A1,
},
[0x1D7A2]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL SIGMA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03A3 },
- ["unicodeslot"]=0x1D7A2, -- 𝞢
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL SIGMA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03A3 },
+ unicodeslot=0x1D7A2,
},
[0x1D7A3]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL TAU",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03A4 },
- ["unicodeslot"]=0x1D7A3, -- 𝞣
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL TAU",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03A4 },
+ unicodeslot=0x1D7A3,
},
[0x1D7A4]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL UPSILON",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03A5 },
- ["unicodeslot"]=0x1D7A4, -- 𝞤
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL UPSILON",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03A5 },
+ unicodeslot=0x1D7A4,
},
[0x1D7A5]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PHI",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03A6 },
- ["unicodeslot"]=0x1D7A5, -- 𝞥
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PHI",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03A6 },
+ unicodeslot=0x1D7A5,
},
[0x1D7A6]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL CHI",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03A7 },
- ["unicodeslot"]=0x1D7A6, -- 𝞦
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL CHI",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03A7 },
+ unicodeslot=0x1D7A6,
},
[0x1D7A7]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PSI",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03A8 },
- ["unicodeslot"]=0x1D7A7, -- 𝞧
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PSI",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03A8 },
+ unicodeslot=0x1D7A7,
},
[0x1D7A8]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03A9 },
- ["unicodeslot"]=0x1D7A8, -- 𝞨
+ category="lu",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03A9 },
+ unicodeslot=0x1D7A8,
},
[0x1D7A9]={
- ["category"]="sm",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x2207 },
- ["unicodeslot"]=0x1D7A9, -- 𝞩
+ category="sm",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x2207 },
+ unicodeslot=0x1D7A9,
},
[0x1D7AA]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03B1 },
- ["unicodeslot"]=0x1D7AA, -- 𝞪
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03B1 },
+ unicodeslot=0x1D7AA,
},
[0x1D7AB]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL BETA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03B2 },
- ["unicodeslot"]=0x1D7AB, -- 𝞫
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL BETA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03B2 },
+ unicodeslot=0x1D7AB,
},
[0x1D7AC]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL GAMMA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03B3 },
- ["unicodeslot"]=0x1D7AC, -- 𝞬
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL GAMMA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03B3 },
+ unicodeslot=0x1D7AC,
},
[0x1D7AD]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL DELTA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03B4 },
- ["unicodeslot"]=0x1D7AD, -- 𝞭
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL DELTA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03B4 },
+ unicodeslot=0x1D7AD,
},
[0x1D7AE]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL EPSILON",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03B5 },
- ["unicodeslot"]=0x1D7AE, -- 𝞮
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL EPSILON",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03B5 },
+ unicodeslot=0x1D7AE,
},
[0x1D7AF]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ZETA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03B6 },
- ["unicodeslot"]=0x1D7AF, -- 𝞯
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ZETA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03B6 },
+ unicodeslot=0x1D7AF,
},
[0x1D7B0]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ETA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03B7 },
- ["unicodeslot"]=0x1D7B0, -- 𝞰
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ETA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03B7 },
+ unicodeslot=0x1D7B0,
},
[0x1D7B1]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL THETA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03B8 },
- ["unicodeslot"]=0x1D7B1, -- 𝞱
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL THETA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03B8 },
+ unicodeslot=0x1D7B1,
},
[0x1D7B2]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL IOTA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03B9 },
- ["unicodeslot"]=0x1D7B2, -- 𝞲
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL IOTA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03B9 },
+ unicodeslot=0x1D7B2,
},
[0x1D7B3]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL KAPPA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03BA },
- ["unicodeslot"]=0x1D7B3, -- 𝞳
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL KAPPA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03BA },
+ unicodeslot=0x1D7B3,
},
[0x1D7B4]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL LAMDA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03BB },
- ["unicodeslot"]=0x1D7B4, -- 𝞴
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL LAMDA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03BB },
+ unicodeslot=0x1D7B4,
},
[0x1D7B5]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL MU",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03BC },
- ["unicodeslot"]=0x1D7B5, -- 𝞵
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL MU",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03BC },
+ unicodeslot=0x1D7B5,
},
[0x1D7B6]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL NU",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03BD },
- ["unicodeslot"]=0x1D7B6, -- 𝞶
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL NU",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03BD },
+ unicodeslot=0x1D7B6,
},
[0x1D7B7]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL XI",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03BE },
- ["unicodeslot"]=0x1D7B7, -- 𝞷
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL XI",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03BE },
+ unicodeslot=0x1D7B7,
},
[0x1D7B8]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMICRON",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03BF },
- ["unicodeslot"]=0x1D7B8, -- 𝞸
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMICRON",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03BF },
+ unicodeslot=0x1D7B8,
},
[0x1D7B9]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PI",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03C0 },
- ["unicodeslot"]=0x1D7B9, -- 𝞹
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PI",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03C0 },
+ unicodeslot=0x1D7B9,
},
[0x1D7BA]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL RHO",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03C1 },
- ["unicodeslot"]=0x1D7BA, -- 𝞺
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL RHO",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03C1 },
+ unicodeslot=0x1D7BA,
},
[0x1D7BB]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL FINAL SIGMA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03C2 },
- ["unicodeslot"]=0x1D7BB, -- 𝞻
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL FINAL SIGMA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03C2 },
+ unicodeslot=0x1D7BB,
},
[0x1D7BC]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL SIGMA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03C3 },
- ["unicodeslot"]=0x1D7BC, -- 𝞼
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL SIGMA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03C3 },
+ unicodeslot=0x1D7BC,
},
[0x1D7BD]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL TAU",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03C4 },
- ["unicodeslot"]=0x1D7BD, -- 𝞽
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL TAU",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03C4 },
+ unicodeslot=0x1D7BD,
},
[0x1D7BE]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL UPSILON",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03C5 },
- ["unicodeslot"]=0x1D7BE, -- 𝞾
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL UPSILON",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03C5 },
+ unicodeslot=0x1D7BE,
},
[0x1D7BF]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PHI",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03C6 },
- ["unicodeslot"]=0x1D7BF, -- 𝞿
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PHI",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03C6 },
+ unicodeslot=0x1D7BF,
},
[0x1D7C0]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL CHI",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03C7 },
- ["unicodeslot"]=0x1D7C0, -- 𝟀
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL CHI",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03C7 },
+ unicodeslot=0x1D7C0,
},
[0x1D7C1]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PSI",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03C8 },
- ["unicodeslot"]=0x1D7C1, -- 𝟁
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PSI",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03C8 },
+ unicodeslot=0x1D7C1,
},
[0x1D7C2]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03C9 },
- ["unicodeslot"]=0x1D7C2, -- 𝟂
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03C9 },
+ unicodeslot=0x1D7C2,
},
[0x1D7C3]={
- ["category"]="sm",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x2202 },
- ["unicodeslot"]=0x1D7C3, -- 𝟃
+ category="sm",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x2202 },
+ unicodeslot=0x1D7C3,
},
[0x1D7C4]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03F5 },
- ["unicodeslot"]=0x1D7C4, -- 𝟄
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03F5 },
+ unicodeslot=0x1D7C4,
},
[0x1D7C5]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC THETA SYMBOL",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03D1 },
- ["unicodeslot"]=0x1D7C5, -- 𝟅
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC THETA SYMBOL",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03D1 },
+ unicodeslot=0x1D7C5,
},
[0x1D7C6]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC KAPPA SYMBOL",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03F0 },
- ["unicodeslot"]=0x1D7C6, -- 𝟆
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC KAPPA SYMBOL",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03F0 },
+ unicodeslot=0x1D7C6,
},
[0x1D7C7]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC PHI SYMBOL",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03D5 },
- ["unicodeslot"]=0x1D7C7, -- 𝟇
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC PHI SYMBOL",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03D5 },
+ unicodeslot=0x1D7C7,
},
[0x1D7C8]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC RHO SYMBOL",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03F1 },
- ["unicodeslot"]=0x1D7C8, -- 𝟈
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC RHO SYMBOL",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03F1 },
+ unicodeslot=0x1D7C8,
},
[0x1D7C9]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD ITALIC PI SYMBOL",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03D6 },
- ["unicodeslot"]=0x1D7C9, -- 𝟉
+ category="ll",
+ description="MATHEMATICAL SANS-SERIF BOLD ITALIC PI SYMBOL",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03D6 },
+ unicodeslot=0x1D7C9,
},
[0x1D7CA]={
- ["category"]="lu",
- ["description"]="MATHEMATICAL BOLD CAPITAL DIGAMMA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03DC },
- ["unicodeslot"]=0x1D7CA, -- 𝟊
+ category="lu",
+ description="MATHEMATICAL BOLD CAPITAL DIGAMMA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03DC },
+ unicodeslot=0x1D7CA,
},
[0x1D7CB]={
- ["category"]="ll",
- ["description"]="MATHEMATICAL BOLD SMALL DIGAMMA",
- ["linebreak"]="al",
- ["specials"]={ "font", 0x03DD },
- ["unicodeslot"]=0x1D7CB, -- 𝟋
+ category="ll",
+ description="MATHEMATICAL BOLD SMALL DIGAMMA",
+ direction="l",
+ linebreak="al",
+ specials={ "font", 0x03DD },
+ unicodeslot=0x1D7CB,
},
[0x1D7CE]={
- ["category"]="nd",
- ["description"]="MATHEMATICAL BOLD DIGIT ZERO",
- ["linebreak"]="nu",
- ["specials"]={ "font", 0x0030 },
- ["unicodeslot"]=0x1D7CE, -- 𝟎
+ category="nd",
+ description="MATHEMATICAL BOLD DIGIT ZERO",
+ direction="en",
+ linebreak="nu",
+ specials={ "font", 0x0030 },
+ unicodeslot=0x1D7CE,
},
[0x1D7CF]={
- ["category"]="nd",
- ["description"]="MATHEMATICAL BOLD DIGIT ONE",
- ["linebreak"]="nu",
- ["specials"]={ "font", 0x0031 },
- ["unicodeslot"]=0x1D7CF, -- 𝟏
+ category="nd",
+ description="MATHEMATICAL BOLD DIGIT ONE",
+ direction="en",
+ linebreak="nu",
+ specials={ "font", 0x0031 },
+ unicodeslot=0x1D7CF,
},
[0x1D7D0]={
- ["category"]="nd",
- ["description"]="MATHEMATICAL BOLD DIGIT TWO",
- ["linebreak"]="nu",
- ["specials"]={ "font", 0x0032 },
- ["unicodeslot"]=0x1D7D0, -- 𝟐
+ category="nd",
+ description="MATHEMATICAL BOLD DIGIT TWO",
+ direction="en",
+ linebreak="nu",
+ specials={ "font", 0x0032 },
+ unicodeslot=0x1D7D0,
},
[0x1D7D1]={
- ["category"]="nd",
- ["description"]="MATHEMATICAL BOLD DIGIT THREE",
- ["linebreak"]="nu",
- ["specials"]={ "font", 0x0033 },
- ["unicodeslot"]=0x1D7D1, -- 𝟑
+ category="nd",
+ description="MATHEMATICAL BOLD DIGIT THREE",
+ direction="en",
+ linebreak="nu",
+ specials={ "font", 0x0033 },
+ unicodeslot=0x1D7D1,
},
[0x1D7D2]={
- ["category"]="nd",
- ["description"]="MATHEMATICAL BOLD DIGIT FOUR",
- ["linebreak"]="nu",
- ["specials"]={ "font", 0x0034 },
- ["unicodeslot"]=0x1D7D2, -- 𝟒
+ category="nd",
+ description="MATHEMATICAL BOLD DIGIT FOUR",
+ direction="en",
+ linebreak="nu",
+ specials={ "font", 0x0034 },
+ unicodeslot=0x1D7D2,
},
[0x1D7D3]={
- ["category"]="nd",
- ["description"]="MATHEMATICAL BOLD DIGIT FIVE",
- ["linebreak"]="nu",
- ["specials"]={ "font", 0x0035 },
- ["unicodeslot"]=0x1D7D3, -- 𝟓
+ category="nd",
+ description="MATHEMATICAL BOLD DIGIT FIVE",
+ direction="en",
+ linebreak="nu",
+ specials={ "font", 0x0035 },
+ unicodeslot=0x1D7D3,
},
[0x1D7D4]={
- ["category"]="nd",
- ["description"]="MATHEMATICAL BOLD DIGIT SIX",
- ["linebreak"]="nu",
- ["specials"]={ "font", 0x0036 },
- ["unicodeslot"]=0x1D7D4, -- 𝟔
+ category="nd",
+ description="MATHEMATICAL BOLD DIGIT SIX",
+ direction="en",
+ linebreak="nu",
+ specials={ "font", 0x0036 },
+ unicodeslot=0x1D7D4,
},
[0x1D7D5]={
- ["category"]="nd",
- ["description"]="MATHEMATICAL BOLD DIGIT SEVEN",
- ["linebreak"]="nu",
- ["specials"]={ "font", 0x0037 },
- ["unicodeslot"]=0x1D7D5, -- 𝟕
+ category="nd",
+ description="MATHEMATICAL BOLD DIGIT SEVEN",
+ direction="en",
+ linebreak="nu",
+ specials={ "font", 0x0037 },
+ unicodeslot=0x1D7D5,
},
[0x1D7D6]={
- ["category"]="nd",
- ["description"]="MATHEMATICAL BOLD DIGIT EIGHT",
- ["linebreak"]="nu",
- ["specials"]={ "font", 0x0038 },
- ["unicodeslot"]=0x1D7D6, -- 𝟖
+ category="nd",
+ description="MATHEMATICAL BOLD DIGIT EIGHT",
+ direction="en",
+ linebreak="nu",
+ specials={ "font", 0x0038 },
+ unicodeslot=0x1D7D6,
},
[0x1D7D7]={
- ["category"]="nd",
- ["description"]="MATHEMATICAL BOLD DIGIT NINE",
- ["linebreak"]="nu",
- ["specials"]={ "font", 0x0039 },
- ["unicodeslot"]=0x1D7D7, -- 𝟗
+ category="nd",
+ description="MATHEMATICAL BOLD DIGIT NINE",
+ direction="en",
+ linebreak="nu",
+ specials={ "font", 0x0039 },
+ unicodeslot=0x1D7D7,
},
[0x1D7D8]={
- ["category"]="nd",
- ["description"]="MATHEMATICAL DOUBLE-STRUCK DIGIT ZERO",
- ["linebreak"]="nu",
- ["specials"]={ "font", 0x0030 },
- ["unicodeslot"]=0x1D7D8, -- 𝟘
+ category="nd",
+ description="MATHEMATICAL DOUBLE-STRUCK DIGIT ZERO",
+ direction="en",
+ linebreak="nu",
+ specials={ "font", 0x0030 },
+ unicodeslot=0x1D7D8,
},
[0x1D7D9]={
- ["category"]="nd",
- ["description"]="MATHEMATICAL DOUBLE-STRUCK DIGIT ONE",
- ["linebreak"]="nu",
- ["specials"]={ "font", 0x0031 },
- ["unicodeslot"]=0x1D7D9, -- 𝟙
+ category="nd",
+ description="MATHEMATICAL DOUBLE-STRUCK DIGIT ONE",
+ direction="en",
+ linebreak="nu",
+ specials={ "font", 0x0031 },
+ unicodeslot=0x1D7D9,
},
[0x1D7DA]={
- ["category"]="nd",
- ["description"]="MATHEMATICAL DOUBLE-STRUCK DIGIT TWO",
- ["linebreak"]="nu",
- ["specials"]={ "font", 0x0032 },
- ["unicodeslot"]=0x1D7DA, -- 𝟚
+ category="nd",
+ description="MATHEMATICAL DOUBLE-STRUCK DIGIT TWO",
+ direction="en",
+ linebreak="nu",
+ specials={ "font", 0x0032 },
+ unicodeslot=0x1D7DA,
},
[0x1D7DB]={
- ["category"]="nd",
- ["description"]="MATHEMATICAL DOUBLE-STRUCK DIGIT THREE",
- ["linebreak"]="nu",
- ["specials"]={ "font", 0x0033 },
- ["unicodeslot"]=0x1D7DB, -- 𝟛
+ category="nd",
+ description="MATHEMATICAL DOUBLE-STRUCK DIGIT THREE",
+ direction="en",
+ linebreak="nu",
+ specials={ "font", 0x0033 },
+ unicodeslot=0x1D7DB,
},
[0x1D7DC]={
- ["category"]="nd",
- ["description"]="MATHEMATICAL DOUBLE-STRUCK DIGIT FOUR",
- ["linebreak"]="nu",
- ["specials"]={ "font", 0x0034 },
- ["unicodeslot"]=0x1D7DC, -- 𝟜
+ category="nd",
+ description="MATHEMATICAL DOUBLE-STRUCK DIGIT FOUR",
+ direction="en",
+ linebreak="nu",
+ specials={ "font", 0x0034 },
+ unicodeslot=0x1D7DC,
},
[0x1D7DD]={
- ["category"]="nd",
- ["description"]="MATHEMATICAL DOUBLE-STRUCK DIGIT FIVE",
- ["linebreak"]="nu",
- ["specials"]={ "font", 0x0035 },
- ["unicodeslot"]=0x1D7DD, -- 𝟝
+ category="nd",
+ description="MATHEMATICAL DOUBLE-STRUCK DIGIT FIVE",
+ direction="en",
+ linebreak="nu",
+ specials={ "font", 0x0035 },
+ unicodeslot=0x1D7DD,
},
[0x1D7DE]={
- ["category"]="nd",
- ["description"]="MATHEMATICAL DOUBLE-STRUCK DIGIT SIX",
- ["linebreak"]="nu",
- ["specials"]={ "font", 0x0036 },
- ["unicodeslot"]=0x1D7DE, -- 𝟞
+ category="nd",
+ description="MATHEMATICAL DOUBLE-STRUCK DIGIT SIX",
+ direction="en",
+ linebreak="nu",
+ specials={ "font", 0x0036 },
+ unicodeslot=0x1D7DE,
},
[0x1D7DF]={
- ["category"]="nd",
- ["description"]="MATHEMATICAL DOUBLE-STRUCK DIGIT SEVEN",
- ["linebreak"]="nu",
- ["specials"]={ "font", 0x0037 },
- ["unicodeslot"]=0x1D7DF, -- 𝟟
+ category="nd",
+ description="MATHEMATICAL DOUBLE-STRUCK DIGIT SEVEN",
+ direction="en",
+ linebreak="nu",
+ specials={ "font", 0x0037 },
+ unicodeslot=0x1D7DF,
},
[0x1D7E0]={
- ["category"]="nd",
- ["description"]="MATHEMATICAL DOUBLE-STRUCK DIGIT EIGHT",
- ["linebreak"]="nu",
- ["specials"]={ "font", 0x0038 },
- ["unicodeslot"]=0x1D7E0, -- 𝟠
+ category="nd",
+ description="MATHEMATICAL DOUBLE-STRUCK DIGIT EIGHT",
+ direction="en",
+ linebreak="nu",
+ specials={ "font", 0x0038 },
+ unicodeslot=0x1D7E0,
},
[0x1D7E1]={
- ["category"]="nd",
- ["description"]="MATHEMATICAL DOUBLE-STRUCK DIGIT NINE",
- ["linebreak"]="nu",
- ["specials"]={ "font", 0x0039 },
- ["unicodeslot"]=0x1D7E1, -- 𝟡
+ category="nd",
+ description="MATHEMATICAL DOUBLE-STRUCK DIGIT NINE",
+ direction="en",
+ linebreak="nu",
+ specials={ "font", 0x0039 },
+ unicodeslot=0x1D7E1,
},
[0x1D7E2]={
- ["category"]="nd",
- ["description"]="MATHEMATICAL SANS-SERIF DIGIT ZERO",
- ["linebreak"]="nu",
- ["specials"]={ "font", 0x0030 },
- ["unicodeslot"]=0x1D7E2, -- 𝟢
+ category="nd",
+ description="MATHEMATICAL SANS-SERIF DIGIT ZERO",
+ direction="en",
+ linebreak="nu",
+ specials={ "font", 0x0030 },
+ unicodeslot=0x1D7E2,
},
[0x1D7E3]={
- ["category"]="nd",
- ["description"]="MATHEMATICAL SANS-SERIF DIGIT ONE",
- ["linebreak"]="nu",
- ["specials"]={ "font", 0x0031 },
- ["unicodeslot"]=0x1D7E3, -- 𝟣
+ category="nd",
+ description="MATHEMATICAL SANS-SERIF DIGIT ONE",
+ direction="en",
+ linebreak="nu",
+ specials={ "font", 0x0031 },
+ unicodeslot=0x1D7E3,
},
[0x1D7E4]={
- ["category"]="nd",
- ["description"]="MATHEMATICAL SANS-SERIF DIGIT TWO",
- ["linebreak"]="nu",
- ["specials"]={ "font", 0x0032 },
- ["unicodeslot"]=0x1D7E4, -- 𝟤
+ category="nd",
+ description="MATHEMATICAL SANS-SERIF DIGIT TWO",
+ direction="en",
+ linebreak="nu",
+ specials={ "font", 0x0032 },
+ unicodeslot=0x1D7E4,
},
[0x1D7E5]={
- ["category"]="nd",
- ["description"]="MATHEMATICAL SANS-SERIF DIGIT THREE",
- ["linebreak"]="nu",
- ["specials"]={ "font", 0x0033 },
- ["unicodeslot"]=0x1D7E5, -- 𝟥
+ category="nd",
+ description="MATHEMATICAL SANS-SERIF DIGIT THREE",
+ direction="en",
+ linebreak="nu",
+ specials={ "font", 0x0033 },
+ unicodeslot=0x1D7E5,
},
[0x1D7E6]={
- ["category"]="nd",
- ["description"]="MATHEMATICAL SANS-SERIF DIGIT FOUR",
- ["linebreak"]="nu",
- ["specials"]={ "font", 0x0034 },
- ["unicodeslot"]=0x1D7E6, -- 𝟦
+ category="nd",
+ description="MATHEMATICAL SANS-SERIF DIGIT FOUR",
+ direction="en",
+ linebreak="nu",
+ specials={ "font", 0x0034 },
+ unicodeslot=0x1D7E6,
},
[0x1D7E7]={
- ["category"]="nd",
- ["description"]="MATHEMATICAL SANS-SERIF DIGIT FIVE",
- ["linebreak"]="nu",
- ["specials"]={ "font", 0x0035 },
- ["unicodeslot"]=0x1D7E7, -- 𝟧
+ category="nd",
+ description="MATHEMATICAL SANS-SERIF DIGIT FIVE",
+ direction="en",
+ linebreak="nu",
+ specials={ "font", 0x0035 },
+ unicodeslot=0x1D7E7,
},
[0x1D7E8]={
- ["category"]="nd",
- ["description"]="MATHEMATICAL SANS-SERIF DIGIT SIX",
- ["linebreak"]="nu",
- ["specials"]={ "font", 0x0036 },
- ["unicodeslot"]=0x1D7E8, -- 𝟨
+ category="nd",
+ description="MATHEMATICAL SANS-SERIF DIGIT SIX",
+ direction="en",
+ linebreak="nu",
+ specials={ "font", 0x0036 },
+ unicodeslot=0x1D7E8,
},
[0x1D7E9]={
- ["category"]="nd",
- ["description"]="MATHEMATICAL SANS-SERIF DIGIT SEVEN",
- ["linebreak"]="nu",
- ["specials"]={ "font", 0x0037 },
- ["unicodeslot"]=0x1D7E9, -- 𝟩
+ category="nd",
+ description="MATHEMATICAL SANS-SERIF DIGIT SEVEN",
+ direction="en",
+ linebreak="nu",
+ specials={ "font", 0x0037 },
+ unicodeslot=0x1D7E9,
},
[0x1D7EA]={
- ["category"]="nd",
- ["description"]="MATHEMATICAL SANS-SERIF DIGIT EIGHT",
- ["linebreak"]="nu",
- ["specials"]={ "font", 0x0038 },
- ["unicodeslot"]=0x1D7EA, -- 𝟪
+ category="nd",
+ description="MATHEMATICAL SANS-SERIF DIGIT EIGHT",
+ direction="en",
+ linebreak="nu",
+ specials={ "font", 0x0038 },
+ unicodeslot=0x1D7EA,
},
[0x1D7EB]={
- ["category"]="nd",
- ["description"]="MATHEMATICAL SANS-SERIF DIGIT NINE",
- ["linebreak"]="nu",
- ["specials"]={ "font", 0x0039 },
- ["unicodeslot"]=0x1D7EB, -- 𝟫
+ category="nd",
+ description="MATHEMATICAL SANS-SERIF DIGIT NINE",
+ direction="en",
+ linebreak="nu",
+ specials={ "font", 0x0039 },
+ unicodeslot=0x1D7EB,
},
[0x1D7EC]={
- ["category"]="nd",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD DIGIT ZERO",
- ["linebreak"]="nu",
- ["specials"]={ "font", 0x0030 },
- ["unicodeslot"]=0x1D7EC, -- 𝟬
+ category="nd",
+ description="MATHEMATICAL SANS-SERIF BOLD DIGIT ZERO",
+ direction="en",
+ linebreak="nu",
+ specials={ "font", 0x0030 },
+ unicodeslot=0x1D7EC,
},
[0x1D7ED]={
- ["category"]="nd",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD DIGIT ONE",
- ["linebreak"]="nu",
- ["specials"]={ "font", 0x0031 },
- ["unicodeslot"]=0x1D7ED, -- 𝟭
+ category="nd",
+ description="MATHEMATICAL SANS-SERIF BOLD DIGIT ONE",
+ direction="en",
+ linebreak="nu",
+ specials={ "font", 0x0031 },
+ unicodeslot=0x1D7ED,
},
[0x1D7EE]={
- ["category"]="nd",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD DIGIT TWO",
- ["linebreak"]="nu",
- ["specials"]={ "font", 0x0032 },
- ["unicodeslot"]=0x1D7EE, -- 𝟮
+ category="nd",
+ description="MATHEMATICAL SANS-SERIF BOLD DIGIT TWO",
+ direction="en",
+ linebreak="nu",
+ specials={ "font", 0x0032 },
+ unicodeslot=0x1D7EE,
},
[0x1D7EF]={
- ["category"]="nd",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD DIGIT THREE",
- ["linebreak"]="nu",
- ["specials"]={ "font", 0x0033 },
- ["unicodeslot"]=0x1D7EF, -- 𝟯
+ category="nd",
+ description="MATHEMATICAL SANS-SERIF BOLD DIGIT THREE",
+ direction="en",
+ linebreak="nu",
+ specials={ "font", 0x0033 },
+ unicodeslot=0x1D7EF,
},
[0x1D7F0]={
- ["category"]="nd",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD DIGIT FOUR",
- ["linebreak"]="nu",
- ["specials"]={ "font", 0x0034 },
- ["unicodeslot"]=0x1D7F0, -- 𝟰
+ category="nd",
+ description="MATHEMATICAL SANS-SERIF BOLD DIGIT FOUR",
+ direction="en",
+ linebreak="nu",
+ specials={ "font", 0x0034 },
+ unicodeslot=0x1D7F0,
},
[0x1D7F1]={
- ["category"]="nd",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD DIGIT FIVE",
- ["linebreak"]="nu",
- ["specials"]={ "font", 0x0035 },
- ["unicodeslot"]=0x1D7F1, -- 𝟱
+ category="nd",
+ description="MATHEMATICAL SANS-SERIF BOLD DIGIT FIVE",
+ direction="en",
+ linebreak="nu",
+ specials={ "font", 0x0035 },
+ unicodeslot=0x1D7F1,
},
[0x1D7F2]={
- ["category"]="nd",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD DIGIT SIX",
- ["linebreak"]="nu",
- ["specials"]={ "font", 0x0036 },
- ["unicodeslot"]=0x1D7F2, -- 𝟲
+ category="nd",
+ description="MATHEMATICAL SANS-SERIF BOLD DIGIT SIX",
+ direction="en",
+ linebreak="nu",
+ specials={ "font", 0x0036 },
+ unicodeslot=0x1D7F2,
},
[0x1D7F3]={
- ["category"]="nd",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD DIGIT SEVEN",
- ["linebreak"]="nu",
- ["specials"]={ "font", 0x0037 },
- ["unicodeslot"]=0x1D7F3, -- 𝟳
+ category="nd",
+ description="MATHEMATICAL SANS-SERIF BOLD DIGIT SEVEN",
+ direction="en",
+ linebreak="nu",
+ specials={ "font", 0x0037 },
+ unicodeslot=0x1D7F3,
},
[0x1D7F4]={
- ["category"]="nd",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD DIGIT EIGHT",
- ["linebreak"]="nu",
- ["specials"]={ "font", 0x0038 },
- ["unicodeslot"]=0x1D7F4, -- 𝟴
+ category="nd",
+ description="MATHEMATICAL SANS-SERIF BOLD DIGIT EIGHT",
+ direction="en",
+ linebreak="nu",
+ specials={ "font", 0x0038 },
+ unicodeslot=0x1D7F4,
},
[0x1D7F5]={
- ["category"]="nd",
- ["description"]="MATHEMATICAL SANS-SERIF BOLD DIGIT NINE",
- ["linebreak"]="nu",
- ["specials"]={ "font", 0x0039 },
- ["unicodeslot"]=0x1D7F5, -- 𝟵
+ category="nd",
+ description="MATHEMATICAL SANS-SERIF BOLD DIGIT NINE",
+ direction="en",
+ linebreak="nu",
+ specials={ "font", 0x0039 },
+ unicodeslot=0x1D7F5,
},
[0x1D7F6]={
- ["category"]="nd",
- ["description"]="MATHEMATICAL MONOSPACE DIGIT ZERO",
- ["linebreak"]="nu",
- ["specials"]={ "font", 0x0030 },
- ["unicodeslot"]=0x1D7F6, -- 𝟶
+ category="nd",
+ description="MATHEMATICAL MONOSPACE DIGIT ZERO",
+ direction="en",
+ linebreak="nu",
+ specials={ "font", 0x0030 },
+ unicodeslot=0x1D7F6,
},
[0x1D7F7]={
- ["category"]="nd",
- ["description"]="MATHEMATICAL MONOSPACE DIGIT ONE",
- ["linebreak"]="nu",
- ["specials"]={ "font", 0x0031 },
- ["unicodeslot"]=0x1D7F7, -- 𝟷
+ category="nd",
+ description="MATHEMATICAL MONOSPACE DIGIT ONE",
+ direction="en",
+ linebreak="nu",
+ specials={ "font", 0x0031 },
+ unicodeslot=0x1D7F7,
},
[0x1D7F8]={
- ["category"]="nd",
- ["description"]="MATHEMATICAL MONOSPACE DIGIT TWO",
- ["linebreak"]="nu",
- ["specials"]={ "font", 0x0032 },
- ["unicodeslot"]=0x1D7F8, -- 𝟸
+ category="nd",
+ description="MATHEMATICAL MONOSPACE DIGIT TWO",
+ direction="en",
+ linebreak="nu",
+ specials={ "font", 0x0032 },
+ unicodeslot=0x1D7F8,
},
[0x1D7F9]={
- ["category"]="nd",
- ["description"]="MATHEMATICAL MONOSPACE DIGIT THREE",
- ["linebreak"]="nu",
- ["specials"]={ "font", 0x0033 },
- ["unicodeslot"]=0x1D7F9, -- 𝟹
+ category="nd",
+ description="MATHEMATICAL MONOSPACE DIGIT THREE",
+ direction="en",
+ linebreak="nu",
+ specials={ "font", 0x0033 },
+ unicodeslot=0x1D7F9,
},
[0x1D7FA]={
- ["category"]="nd",
- ["description"]="MATHEMATICAL MONOSPACE DIGIT FOUR",
- ["linebreak"]="nu",
- ["specials"]={ "font", 0x0034 },
- ["unicodeslot"]=0x1D7FA, -- 𝟺
+ category="nd",
+ description="MATHEMATICAL MONOSPACE DIGIT FOUR",
+ direction="en",
+ linebreak="nu",
+ specials={ "font", 0x0034 },
+ unicodeslot=0x1D7FA,
},
[0x1D7FB]={
- ["category"]="nd",
- ["description"]="MATHEMATICAL MONOSPACE DIGIT FIVE",
- ["linebreak"]="nu",
- ["specials"]={ "font", 0x0035 },
- ["unicodeslot"]=0x1D7FB, -- 𝟻
+ category="nd",
+ description="MATHEMATICAL MONOSPACE DIGIT FIVE",
+ direction="en",
+ linebreak="nu",
+ specials={ "font", 0x0035 },
+ unicodeslot=0x1D7FB,
},
[0x1D7FC]={
- ["category"]="nd",
- ["description"]="MATHEMATICAL MONOSPACE DIGIT SIX",
- ["linebreak"]="nu",
- ["specials"]={ "font", 0x0036 },
- ["unicodeslot"]=0x1D7FC, -- 𝟼
+ category="nd",
+ description="MATHEMATICAL MONOSPACE DIGIT SIX",
+ direction="en",
+ linebreak="nu",
+ specials={ "font", 0x0036 },
+ unicodeslot=0x1D7FC,
},
[0x1D7FD]={
- ["category"]="nd",
- ["description"]="MATHEMATICAL MONOSPACE DIGIT SEVEN",
- ["linebreak"]="nu",
- ["specials"]={ "font", 0x0037 },
- ["unicodeslot"]=0x1D7FD, -- 𝟽
+ category="nd",
+ description="MATHEMATICAL MONOSPACE DIGIT SEVEN",
+ direction="en",
+ linebreak="nu",
+ specials={ "font", 0x0037 },
+ unicodeslot=0x1D7FD,
},
[0x1D7FE]={
- ["category"]="nd",
- ["description"]="MATHEMATICAL MONOSPACE DIGIT EIGHT",
- ["linebreak"]="nu",
- ["specials"]={ "font", 0x0038 },
- ["unicodeslot"]=0x1D7FE, -- 𝟾
+ category="nd",
+ description="MATHEMATICAL MONOSPACE DIGIT EIGHT",
+ direction="en",
+ linebreak="nu",
+ specials={ "font", 0x0038 },
+ unicodeslot=0x1D7FE,
},
[0x1D7FF]={
- ["category"]="nd",
- ["description"]="MATHEMATICAL MONOSPACE DIGIT NINE",
- ["linebreak"]="nu",
- ["specials"]={ "font", 0x0039 },
- ["unicodeslot"]=0x1D7FF, -- 𝟿
+ category="nd",
+ description="MATHEMATICAL MONOSPACE DIGIT NINE",
+ direction="en",
+ linebreak="nu",
+ specials={ "font", 0x0039 },
+ unicodeslot=0x1D7FF,
},
[0x20000]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="<CJK Ideograph Extension B, First>",
- ["linebreak"]="id",
- ["unicodeslot"]=0x20000, -- 𠀀
- },
- [0x2A6D6]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="<CJK Ideograph Extension B, Last>",
- ["linebreak"]="id",
- ["unicodeslot"]=0x2A6D6, -- 𪛖
+ category="lo",
+ cjkwd="w",
+ description="<CJK Ideograph Extension B>",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x20000,
+ range=0x2A6D6,
},
[0x2F800]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0320",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x4E3D },
- ["unicodeslot"]=0x2F800, -- 丽
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0320",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x4E3D },
+ unicodeslot=0x2F800,
},
[0x2F801]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0321",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x4E38 },
- ["unicodeslot"]=0x2F801, -- 丸
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0321",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x4E38 },
+ unicodeslot=0x2F801,
},
[0x2F802]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0322",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x4E41 },
- ["unicodeslot"]=0x2F802, -- 乁
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0322",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x4E41 },
+ unicodeslot=0x2F802,
},
[0x2F803]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0323",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x20122 },
- ["unicodeslot"]=0x2F803, -- 𠄢
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0323",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x20122 },
+ unicodeslot=0x2F803,
},
[0x2F804]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0324",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x4F60 },
- ["unicodeslot"]=0x2F804, -- 你
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0324",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x4F60 },
+ unicodeslot=0x2F804,
},
[0x2F805]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0325",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x4FAE },
- ["unicodeslot"]=0x2F805, -- 侮
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0325",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x4FAE },
+ unicodeslot=0x2F805,
},
[0x2F806]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0326",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x4FBB },
- ["unicodeslot"]=0x2F806, -- 侻
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0326",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x4FBB },
+ unicodeslot=0x2F806,
},
[0x2F807]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0327",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5002 },
- ["unicodeslot"]=0x2F807, -- 倂
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0327",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5002 },
+ unicodeslot=0x2F807,
},
[0x2F808]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0328",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x507A },
- ["unicodeslot"]=0x2F808, -- 偺
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0328",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x507A },
+ unicodeslot=0x2F808,
},
[0x2F809]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0329",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5099 },
- ["unicodeslot"]=0x2F809, -- 備
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0329",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5099 },
+ unicodeslot=0x2F809,
},
[0x2F80A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0050A",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x50E7 },
- ["unicodeslot"]=0x2F80A, -- 僧
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0050A",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x50E7 },
+ unicodeslot=0x2F80A,
},
[0x2F80B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0050B",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x50CF },
- ["unicodeslot"]=0x2F80B, -- 像
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0050B",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x50CF },
+ unicodeslot=0x2F80B,
},
[0x2F80C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0050C",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x349E },
- ["unicodeslot"]=0x2F80C, -- 㒞
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0050C",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x349E },
+ unicodeslot=0x2F80C,
},
[0x2F80D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0050D",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x2063A },
- ["unicodeslot"]=0x2F80D, -- 𠘺
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0050D",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x2063A },
+ unicodeslot=0x2F80D,
},
[0x2F80E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0050E",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x514D },
- ["unicodeslot"]=0x2F80E, -- 免
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0050E",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x514D },
+ unicodeslot=0x2F80E,
},
[0x2F80F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0050F",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5154 },
- ["unicodeslot"]=0x2F80F, -- 兔
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0050F",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5154 },
+ unicodeslot=0x2F80F,
},
[0x2F810]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x032A",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5164 },
- ["unicodeslot"]=0x2F810, -- 兤
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x032A",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5164 },
+ unicodeslot=0x2F810,
},
[0x2F811]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x032B",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5177 },
- ["unicodeslot"]=0x2F811, -- 具
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x032B",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5177 },
+ unicodeslot=0x2F811,
},
[0x2F812]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x032C",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x2051C },
- ["unicodeslot"]=0x2F812, -- 𠔜
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x032C",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x2051C },
+ unicodeslot=0x2F812,
},
[0x2F813]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x032D",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x34B9 },
- ["unicodeslot"]=0x2F813, -- 㒹
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x032D",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x34B9 },
+ unicodeslot=0x2F813,
},
[0x2F814]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x032E",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5167 },
- ["unicodeslot"]=0x2F814, -- 內
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x032E",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5167 },
+ unicodeslot=0x2F814,
},
[0x2F815]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x032F",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x518D },
- ["unicodeslot"]=0x2F815, -- 再
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x032F",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x518D },
+ unicodeslot=0x2F815,
},
[0x2F816]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0330",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x2054B },
- ["unicodeslot"]=0x2F816, -- 𠕋
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0330",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x2054B },
+ unicodeslot=0x2F816,
},
[0x2F817]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0331",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5197 },
- ["unicodeslot"]=0x2F817, -- 冗
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0331",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5197 },
+ unicodeslot=0x2F817,
},
[0x2F818]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0332",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x51A4 },
- ["unicodeslot"]=0x2F818, -- 冤
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0332",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x51A4 },
+ unicodeslot=0x2F818,
},
[0x2F819]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0333",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x4ECC },
- ["unicodeslot"]=0x2F819, -- 仌
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0333",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x4ECC },
+ unicodeslot=0x2F819,
},
[0x2F81A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0051A",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x51AC },
- ["unicodeslot"]=0x2F81A, -- 冬
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0051A",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x51AC },
+ unicodeslot=0x2F81A,
},
[0x2F81B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0051B",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x51B5 },
- ["unicodeslot"]=0x2F81B, -- 况
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0051B",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x51B5 },
+ unicodeslot=0x2F81B,
},
[0x2F81C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0051C",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x291DF },
- ["unicodeslot"]=0x2F81C, -- 𩇟
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0051C",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x291DF },
+ unicodeslot=0x2F81C,
},
[0x2F81D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0051D",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x51F5 },
- ["unicodeslot"]=0x2F81D, -- 凵
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0051D",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x51F5 },
+ unicodeslot=0x2F81D,
},
[0x2F81E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0051E",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5203 },
- ["unicodeslot"]=0x2F81E, -- 刃
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0051E",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5203 },
+ unicodeslot=0x2F81E,
},
[0x2F81F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0051F",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x34DF },
- ["unicodeslot"]=0x2F81F, -- 㓟
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0051F",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x34DF },
+ unicodeslot=0x2F81F,
},
[0x2F820]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0334",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x523B },
- ["unicodeslot"]=0x2F820, -- 刻
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0334",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x523B },
+ unicodeslot=0x2F820,
},
[0x2F821]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0335",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5246 },
- ["unicodeslot"]=0x2F821, -- 剆
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0335",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5246 },
+ unicodeslot=0x2F821,
},
[0x2F822]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0336",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5272 },
- ["unicodeslot"]=0x2F822, -- 割
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0336",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5272 },
+ unicodeslot=0x2F822,
},
[0x2F823]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0337",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5277 },
- ["unicodeslot"]=0x2F823, -- 剷
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0337",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5277 },
+ unicodeslot=0x2F823,
},
[0x2F824]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0338",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x3515 },
- ["unicodeslot"]=0x2F824, -- 㔕
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0338",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x3515 },
+ unicodeslot=0x2F824,
},
[0x2F825]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0339",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x52C7 },
- ["unicodeslot"]=0x2F825, -- 勇
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0339",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x52C7 },
+ unicodeslot=0x2F825,
},
[0x2F826]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x033A",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x52C9 },
- ["unicodeslot"]=0x2F826, -- 勉
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x033A",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x52C9 },
+ unicodeslot=0x2F826,
},
[0x2F827]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x033B",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x52E4 },
- ["unicodeslot"]=0x2F827, -- 勤
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x033B",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x52E4 },
+ unicodeslot=0x2F827,
},
[0x2F828]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x033C",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x52FA },
- ["unicodeslot"]=0x2F828, -- 勺
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x033C",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x52FA },
+ unicodeslot=0x2F828,
},
[0x2F829]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x033D",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5305 },
- ["unicodeslot"]=0x2F829, -- 包
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x033D",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5305 },
+ unicodeslot=0x2F829,
},
[0x2F82A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0052A",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5306 },
- ["unicodeslot"]=0x2F82A, -- 匆
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0052A",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5306 },
+ unicodeslot=0x2F82A,
},
[0x2F82B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0052B",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5317 },
- ["unicodeslot"]=0x2F82B, -- 北
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0052B",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5317 },
+ unicodeslot=0x2F82B,
},
[0x2F82C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0052C",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5349 },
- ["unicodeslot"]=0x2F82C, -- 卉
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0052C",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5349 },
+ unicodeslot=0x2F82C,
},
[0x2F82D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0052D",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5351 },
- ["unicodeslot"]=0x2F82D, -- 卑
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0052D",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5351 },
+ unicodeslot=0x2F82D,
},
[0x2F82E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0052E",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x535A },
- ["unicodeslot"]=0x2F82E, -- 博
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0052E",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x535A },
+ unicodeslot=0x2F82E,
},
[0x2F82F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0052F",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5373 },
- ["unicodeslot"]=0x2F82F, -- 即
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0052F",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5373 },
+ unicodeslot=0x2F82F,
},
[0x2F830]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x033E",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x537D },
- ["unicodeslot"]=0x2F830, -- 卽
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x033E",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x537D },
+ unicodeslot=0x2F830,
},
[0x2F831]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x033F",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x537F },
- ["unicodeslot"]=0x2F831, -- 卿
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x033F",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x537F },
+ unicodeslot=0x2F831,
},
[0x2F832]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0340",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x537F },
- ["unicodeslot"]=0x2F832, -- 卿
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0340",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x537F },
+ unicodeslot=0x2F832,
},
[0x2F833]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0341",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x537F },
- ["unicodeslot"]=0x2F833, -- 卿
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0341",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x537F },
+ unicodeslot=0x2F833,
},
[0x2F834]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0342",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x20A2C },
- ["unicodeslot"]=0x2F834, -- 𠨬
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0342",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x20A2C },
+ unicodeslot=0x2F834,
},
[0x2F835]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0343",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7070 },
- ["unicodeslot"]=0x2F835, -- 灰
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0343",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7070 },
+ unicodeslot=0x2F835,
},
[0x2F836]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0344",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x53CA },
- ["unicodeslot"]=0x2F836, -- 及
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0344",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x53CA },
+ unicodeslot=0x2F836,
},
[0x2F837]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0345",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x53DF },
- ["unicodeslot"]=0x2F837, -- 叟
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0345",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x53DF },
+ unicodeslot=0x2F837,
},
[0x2F838]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0346",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x20B63 },
- ["unicodeslot"]=0x2F838, -- 𠭣
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0346",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x20B63 },
+ unicodeslot=0x2F838,
},
[0x2F839]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0347",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x53EB },
- ["unicodeslot"]=0x2F839, -- 叫
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0347",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x53EB },
+ unicodeslot=0x2F839,
},
[0x2F83A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0053A",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x53F1 },
- ["unicodeslot"]=0x2F83A, -- 叱
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0053A",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x53F1 },
+ unicodeslot=0x2F83A,
},
[0x2F83B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0053B",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5406 },
- ["unicodeslot"]=0x2F83B, -- 吆
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0053B",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5406 },
+ unicodeslot=0x2F83B,
},
[0x2F83C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0053C",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x549E },
- ["unicodeslot"]=0x2F83C, -- 咞
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0053C",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x549E },
+ unicodeslot=0x2F83C,
},
[0x2F83D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0053D",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5438 },
- ["unicodeslot"]=0x2F83D, -- 吸
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0053D",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5438 },
+ unicodeslot=0x2F83D,
},
[0x2F83E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0053E",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5448 },
- ["unicodeslot"]=0x2F83E, -- 呈
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0053E",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5448 },
+ unicodeslot=0x2F83E,
},
[0x2F83F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0053F",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5468 },
- ["unicodeslot"]=0x2F83F, -- 周
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0053F",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5468 },
+ unicodeslot=0x2F83F,
},
[0x2F840]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0348",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x54A2 },
- ["unicodeslot"]=0x2F840, -- 咢
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0348",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x54A2 },
+ unicodeslot=0x2F840,
},
[0x2F841]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0349",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x54F6 },
- ["unicodeslot"]=0x2F841, -- 哶
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0349",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x54F6 },
+ unicodeslot=0x2F841,
},
[0x2F842]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x034A",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5510 },
- ["unicodeslot"]=0x2F842, -- 唐
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x034A",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5510 },
+ unicodeslot=0x2F842,
},
[0x2F843]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x034B",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5553 },
- ["unicodeslot"]=0x2F843, -- 啓
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x034B",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5553 },
+ unicodeslot=0x2F843,
},
[0x2F844]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x034C",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5563 },
- ["unicodeslot"]=0x2F844, -- 啣
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x034C",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5563 },
+ unicodeslot=0x2F844,
},
[0x2F845]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x034D",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5584 },
- ["unicodeslot"]=0x2F845, -- 善
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x034D",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5584 },
+ unicodeslot=0x2F845,
},
[0x2F846]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x034E",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5584 },
- ["unicodeslot"]=0x2F846, -- 善
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x034E",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5584 },
+ unicodeslot=0x2F846,
},
[0x2F847]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x034F",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5599 },
- ["unicodeslot"]=0x2F847, -- 喙
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x034F",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5599 },
+ unicodeslot=0x2F847,
},
[0x2F848]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0350",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x55AB },
- ["unicodeslot"]=0x2F848, -- 喫
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0350",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x55AB },
+ unicodeslot=0x2F848,
},
[0x2F849]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0351",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x55B3 },
- ["unicodeslot"]=0x2F849, -- 喳
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0351",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x55B3 },
+ unicodeslot=0x2F849,
},
[0x2F84A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0054A",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x55C2 },
- ["unicodeslot"]=0x2F84A, -- 嗂
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0054A",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x55C2 },
+ unicodeslot=0x2F84A,
},
[0x2F84B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0054B",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5716 },
- ["unicodeslot"]=0x2F84B, -- 圖
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0054B",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5716 },
+ unicodeslot=0x2F84B,
},
[0x2F84C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0054C",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5606 },
- ["unicodeslot"]=0x2F84C, -- 嘆
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0054C",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5606 },
+ unicodeslot=0x2F84C,
},
[0x2F84D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0054D",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5717 },
- ["unicodeslot"]=0x2F84D, -- 圗
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0054D",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5717 },
+ unicodeslot=0x2F84D,
},
[0x2F84E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0054E",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5651 },
- ["unicodeslot"]=0x2F84E, -- 噑
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0054E",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5651 },
+ unicodeslot=0x2F84E,
},
[0x2F84F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0054F",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5674 },
- ["unicodeslot"]=0x2F84F, -- 噴
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0054F",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5674 },
+ unicodeslot=0x2F84F,
},
[0x2F850]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0352",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5207 },
- ["unicodeslot"]=0x2F850, -- 切
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0352",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5207 },
+ unicodeslot=0x2F850,
},
[0x2F851]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0353",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x58EE },
- ["unicodeslot"]=0x2F851, -- 壮
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0353",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x58EE },
+ unicodeslot=0x2F851,
},
[0x2F852]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0354",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x57CE },
- ["unicodeslot"]=0x2F852, -- 城
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0354",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x57CE },
+ unicodeslot=0x2F852,
},
[0x2F853]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0355",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x57F4 },
- ["unicodeslot"]=0x2F853, -- 埴
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0355",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x57F4 },
+ unicodeslot=0x2F853,
},
[0x2F854]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0356",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x580D },
- ["unicodeslot"]=0x2F854, -- 堍
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0356",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x580D },
+ unicodeslot=0x2F854,
},
[0x2F855]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0357",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x578B },
- ["unicodeslot"]=0x2F855, -- 型
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0357",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x578B },
+ unicodeslot=0x2F855,
},
[0x2F856]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0358",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5832 },
- ["unicodeslot"]=0x2F856, -- 堲
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0358",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5832 },
+ unicodeslot=0x2F856,
},
[0x2F857]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0359",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5831 },
- ["unicodeslot"]=0x2F857, -- 報
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0359",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5831 },
+ unicodeslot=0x2F857,
},
[0x2F858]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x035A",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x58AC },
- ["unicodeslot"]=0x2F858, -- 墬
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x035A",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x58AC },
+ unicodeslot=0x2F858,
},
[0x2F859]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x035B",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x214E4 },
- ["unicodeslot"]=0x2F859, -- 𡓤
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x035B",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x214E4 },
+ unicodeslot=0x2F859,
},
[0x2F85A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0055A",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x58F2 },
- ["unicodeslot"]=0x2F85A, -- 売
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0055A",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x58F2 },
+ unicodeslot=0x2F85A,
},
[0x2F85B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0055B",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x58F7 },
- ["unicodeslot"]=0x2F85B, -- 壷
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0055B",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x58F7 },
+ unicodeslot=0x2F85B,
},
[0x2F85C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0055C",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5906 },
- ["unicodeslot"]=0x2F85C, -- 夆
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0055C",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5906 },
+ unicodeslot=0x2F85C,
},
[0x2F85D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0055D",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x591A },
- ["unicodeslot"]=0x2F85D, -- 多
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0055D",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x591A },
+ unicodeslot=0x2F85D,
},
[0x2F85E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0055E",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5922 },
- ["unicodeslot"]=0x2F85E, -- 夢
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0055E",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5922 },
+ unicodeslot=0x2F85E,
},
[0x2F85F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0055F",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5962 },
- ["unicodeslot"]=0x2F85F, -- 奢
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0055F",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5962 },
+ unicodeslot=0x2F85F,
},
[0x2F860]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x035C",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x216A8 },
- ["unicodeslot"]=0x2F860, -- 𡚨
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x035C",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x216A8 },
+ unicodeslot=0x2F860,
},
[0x2F861]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x035D",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x216EA },
- ["unicodeslot"]=0x2F861, -- 𡛪
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x035D",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x216EA },
+ unicodeslot=0x2F861,
},
[0x2F862]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x035E",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x59EC },
- ["unicodeslot"]=0x2F862, -- 姬
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x035E",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x59EC },
+ unicodeslot=0x2F862,
},
[0x2F863]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x035F",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5A1B },
- ["unicodeslot"]=0x2F863, -- 娛
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x035F",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5A1B },
+ unicodeslot=0x2F863,
},
[0x2F864]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0360",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5A27 },
- ["unicodeslot"]=0x2F864, -- 娧
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0360",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5A27 },
+ unicodeslot=0x2F864,
},
[0x2F865]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0361",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x59D8 },
- ["unicodeslot"]=0x2F865, -- 姘
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0361",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x59D8 },
+ unicodeslot=0x2F865,
},
[0x2F866]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0362",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5A66 },
- ["unicodeslot"]=0x2F866, -- 婦
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0362",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5A66 },
+ unicodeslot=0x2F866,
},
[0x2F867]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0363",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x36EE },
- ["unicodeslot"]=0x2F867, -- 㛮
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0363",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x36EE },
+ unicodeslot=0x2F867,
},
[0x2F868]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0364",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x36FC },
- ["unicodeslot"]=0x2F868, -- 㛼
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0364",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x36FC },
+ unicodeslot=0x2F868,
},
[0x2F869]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0365",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5B08 },
- ["unicodeslot"]=0x2F869, -- 嬈
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0365",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5B08 },
+ unicodeslot=0x2F869,
},
[0x2F86A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0056A",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5B3E },
- ["unicodeslot"]=0x2F86A, -- 嬾
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0056A",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5B3E },
+ unicodeslot=0x2F86A,
},
[0x2F86B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0056B",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5B3E },
- ["unicodeslot"]=0x2F86B, -- 嬾
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0056B",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5B3E },
+ unicodeslot=0x2F86B,
},
[0x2F86C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0056C",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x219C8 },
- ["unicodeslot"]=0x2F86C, -- 𡧈
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0056C",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x219C8 },
+ unicodeslot=0x2F86C,
},
[0x2F86D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0056D",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5BC3 },
- ["unicodeslot"]=0x2F86D, -- 寃
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0056D",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5BC3 },
+ unicodeslot=0x2F86D,
},
[0x2F86E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0056E",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5BD8 },
- ["unicodeslot"]=0x2F86E, -- 寘
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0056E",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5BD8 },
+ unicodeslot=0x2F86E,
},
[0x2F86F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0056F",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5BE7 },
- ["unicodeslot"]=0x2F86F, -- 寧
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0056F",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5BE7 },
+ unicodeslot=0x2F86F,
},
[0x2F870]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0366",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5BF3 },
- ["unicodeslot"]=0x2F870, -- 寳
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0366",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5BF3 },
+ unicodeslot=0x2F870,
},
[0x2F871]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0367",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x21B18 },
- ["unicodeslot"]=0x2F871, -- 𡬘
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0367",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x21B18 },
+ unicodeslot=0x2F871,
},
[0x2F872]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0368",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5BFF },
- ["unicodeslot"]=0x2F872, -- 寿
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0368",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5BFF },
+ unicodeslot=0x2F872,
},
[0x2F873]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0369",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5C06 },
- ["unicodeslot"]=0x2F873, -- 将
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0369",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5C06 },
+ unicodeslot=0x2F873,
},
[0x2F874]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x036A",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5F53 },
- ["unicodeslot"]=0x2F874, -- 当
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x036A",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5F53 },
+ unicodeslot=0x2F874,
},
[0x2F875]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x036B",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5C22 },
- ["unicodeslot"]=0x2F875, -- 尢
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x036B",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5C22 },
+ unicodeslot=0x2F875,
},
[0x2F876]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x036C",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x3781 },
- ["unicodeslot"]=0x2F876, -- 㞁
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x036C",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x3781 },
+ unicodeslot=0x2F876,
},
[0x2F877]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x036D",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5C60 },
- ["unicodeslot"]=0x2F877, -- 屠
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x036D",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5C60 },
+ unicodeslot=0x2F877,
},
[0x2F878]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x036E",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5C6E },
- ["unicodeslot"]=0x2F878, -- 屮
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x036E",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5C6E },
+ unicodeslot=0x2F878,
},
[0x2F879]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x036F",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5CC0 },
- ["unicodeslot"]=0x2F879, -- 峀
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x036F",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5CC0 },
+ unicodeslot=0x2F879,
},
[0x2F87A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0057A",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5C8D },
- ["unicodeslot"]=0x2F87A, -- 岍
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0057A",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5C8D },
+ unicodeslot=0x2F87A,
},
[0x2F87B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0057B",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x21DE4 },
- ["unicodeslot"]=0x2F87B, -- 𡷤
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0057B",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x21DE4 },
+ unicodeslot=0x2F87B,
},
[0x2F87C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0057C",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5D43 },
- ["unicodeslot"]=0x2F87C, -- 嵃
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0057C",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5D43 },
+ unicodeslot=0x2F87C,
},
[0x2F87D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0057D",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x21DE6 },
- ["unicodeslot"]=0x2F87D, -- 𡷦
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0057D",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x21DE6 },
+ unicodeslot=0x2F87D,
},
[0x2F87E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0057E",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5D6E },
- ["unicodeslot"]=0x2F87E, -- 嵮
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0057E",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5D6E },
+ unicodeslot=0x2F87E,
},
[0x2F87F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0057F",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5D6B },
- ["unicodeslot"]=0x2F87F, -- 嵫
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0057F",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5D6B },
+ unicodeslot=0x2F87F,
},
[0x2F880]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0370",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5D7C },
- ["unicodeslot"]=0x2F880, -- 嵼
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0370",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5D7C },
+ unicodeslot=0x2F880,
},
[0x2F881]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0371",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5DE1 },
- ["unicodeslot"]=0x2F881, -- 巡
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0371",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5DE1 },
+ unicodeslot=0x2F881,
},
[0x2F882]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0372",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5DE2 },
- ["unicodeslot"]=0x2F882, -- 巢
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0372",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5DE2 },
+ unicodeslot=0x2F882,
},
[0x2F883]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0373",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x382F },
- ["unicodeslot"]=0x2F883, -- 㠯
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0373",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x382F },
+ unicodeslot=0x2F883,
},
[0x2F884]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0374",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5DFD },
- ["unicodeslot"]=0x2F884, -- 巽
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0374",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5DFD },
+ unicodeslot=0x2F884,
},
[0x2F885]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0375",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5E28 },
- ["unicodeslot"]=0x2F885, -- 帨
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0375",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5E28 },
+ unicodeslot=0x2F885,
},
[0x2F886]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0376",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5E3D },
- ["unicodeslot"]=0x2F886, -- 帽
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0376",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5E3D },
+ unicodeslot=0x2F886,
},
[0x2F887]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0377",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5E69 },
- ["unicodeslot"]=0x2F887, -- 幩
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0377",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5E69 },
+ unicodeslot=0x2F887,
},
[0x2F888]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0378",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x3862 },
- ["unicodeslot"]=0x2F888, -- 㡢
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0378",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x3862 },
+ unicodeslot=0x2F888,
},
[0x2F889]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0379",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x22183 },
- ["unicodeslot"]=0x2F889, -- 𢆃
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0379",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x22183 },
+ unicodeslot=0x2F889,
},
[0x2F88A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0058A",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x387C },
- ["unicodeslot"]=0x2F88A, -- 㡼
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0058A",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x387C },
+ unicodeslot=0x2F88A,
},
[0x2F88B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0058B",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5EB0 },
- ["unicodeslot"]=0x2F88B, -- 庰
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0058B",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5EB0 },
+ unicodeslot=0x2F88B,
},
[0x2F88C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0058C",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5EB3 },
- ["unicodeslot"]=0x2F88C, -- 庳
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0058C",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5EB3 },
+ unicodeslot=0x2F88C,
},
[0x2F88D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0058D",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5EB6 },
- ["unicodeslot"]=0x2F88D, -- 庶
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0058D",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5EB6 },
+ unicodeslot=0x2F88D,
},
[0x2F88E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0058E",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5ECA },
- ["unicodeslot"]=0x2F88E, -- 廊
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0058E",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5ECA },
+ unicodeslot=0x2F88E,
},
[0x2F88F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0058F",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x2A392 },
- ["unicodeslot"]=0x2F88F, -- 𪎒
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0058F",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x2A392 },
+ unicodeslot=0x2F88F,
},
[0x2F890]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x037A",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5EFE },
- ["unicodeslot"]=0x2F890, -- 廾
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x037A",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5EFE },
+ unicodeslot=0x2F890,
},
[0x2F891]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x037B",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x22331 },
- ["unicodeslot"]=0x2F891, -- 𢌱
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x037B",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x22331 },
+ unicodeslot=0x2F891,
},
[0x2F892]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x037C",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x22331 },
- ["unicodeslot"]=0x2F892, -- 𢌱
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x037C",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x22331 },
+ unicodeslot=0x2F892,
},
[0x2F893]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x037D",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8201 },
- ["unicodeslot"]=0x2F893, -- 舁
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x037D",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8201 },
+ unicodeslot=0x2F893,
},
[0x2F894]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x037E",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5F22 },
- ["unicodeslot"]=0x2F894, -- 弢
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x037E",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5F22 },
+ unicodeslot=0x2F894,
},
[0x2F895]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x037F",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5F22 },
- ["unicodeslot"]=0x2F895, -- 弢
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x037F",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5F22 },
+ unicodeslot=0x2F895,
},
[0x2F896]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0380",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x38C7 },
- ["unicodeslot"]=0x2F896, -- 㣇
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0380",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x38C7 },
+ unicodeslot=0x2F896,
},
[0x2F897]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0381",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x232B8 },
- ["unicodeslot"]=0x2F897, -- 𣊸
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0381",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x232B8 },
+ unicodeslot=0x2F897,
},
[0x2F898]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0382",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x261DA },
- ["unicodeslot"]=0x2F898, -- 𦇚
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0382",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x261DA },
+ unicodeslot=0x2F898,
},
[0x2F899]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0383",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5F62 },
- ["unicodeslot"]=0x2F899, -- 形
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0383",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5F62 },
+ unicodeslot=0x2F899,
},
[0x2F89A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0059A",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5F6B },
- ["unicodeslot"]=0x2F89A, -- 彫
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0059A",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5F6B },
+ unicodeslot=0x2F89A,
},
[0x2F89B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0059B",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x38E3 },
- ["unicodeslot"]=0x2F89B, -- 㣣
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0059B",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x38E3 },
+ unicodeslot=0x2F89B,
},
[0x2F89C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0059C",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5F9A },
- ["unicodeslot"]=0x2F89C, -- 徚
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0059C",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5F9A },
+ unicodeslot=0x2F89C,
},
[0x2F89D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0059D",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5FCD },
- ["unicodeslot"]=0x2F89D, -- 忍
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0059D",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5FCD },
+ unicodeslot=0x2F89D,
},
[0x2F89E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0059E",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5FD7 },
- ["unicodeslot"]=0x2F89E, -- 志
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0059E",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5FD7 },
+ unicodeslot=0x2F89E,
},
[0x2F89F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0059F",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5FF9 },
- ["unicodeslot"]=0x2F89F, -- 忹
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0059F",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5FF9 },
+ unicodeslot=0x2F89F,
},
[0x2F8A0]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008A0x0000",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6081 },
- ["unicodeslot"]=0x2F8A0, -- 悁
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008A0x0000",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6081 },
+ unicodeslot=0x2F8A0,
},
[0x2F8A1]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008A0x0001",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x393A },
- ["unicodeslot"]=0x2F8A1, -- 㤺
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008A0x0001",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x393A },
+ unicodeslot=0x2F8A1,
},
[0x2F8A2]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008A0x0002",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x391C },
- ["unicodeslot"]=0x2F8A2, -- 㤜
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008A0x0002",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x391C },
+ unicodeslot=0x2F8A2,
},
[0x2F8A3]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008A0x0003",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6094 },
- ["unicodeslot"]=0x2F8A3, -- 悔
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008A0x0003",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6094 },
+ unicodeslot=0x2F8A3,
},
[0x2F8A4]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008A0x0004",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x226D4 },
- ["unicodeslot"]=0x2F8A4, -- 𢛔
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008A0x0004",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x226D4 },
+ unicodeslot=0x2F8A4,
},
[0x2F8A5]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008A0x0005",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x60C7 },
- ["unicodeslot"]=0x2F8A5, -- 惇
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008A0x0005",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x60C7 },
+ unicodeslot=0x2F8A5,
},
[0x2F8A6]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008A0x0006",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6148 },
- ["unicodeslot"]=0x2F8A6, -- 慈
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008A0x0006",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6148 },
+ unicodeslot=0x2F8A6,
},
[0x2F8A7]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008A0x0007",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x614C },
- ["unicodeslot"]=0x2F8A7, -- 慌
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008A0x0007",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x614C },
+ unicodeslot=0x2F8A7,
},
[0x2F8A8]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008A0x0008",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x614E },
- ["unicodeslot"]=0x2F8A8, -- 慎
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008A0x0008",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x614E },
+ unicodeslot=0x2F8A8,
},
[0x2F8A9]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008A0x0009",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x614C },
- ["unicodeslot"]=0x2F8A9, -- 慌
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008A0x0009",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x614C },
+ unicodeslot=0x2F8A9,
},
[0x2F8AA]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008AA",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x617A },
- ["unicodeslot"]=0x2F8AA, -- 慺
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008AA",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x617A },
+ unicodeslot=0x2F8AA,
},
[0x2F8AB]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008AB",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x618E },
- ["unicodeslot"]=0x2F8AB, -- 憎
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008AB",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x618E },
+ unicodeslot=0x2F8AB,
},
[0x2F8AC]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008AC",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x61B2 },
- ["unicodeslot"]=0x2F8AC, -- 憲
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008AC",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x61B2 },
+ unicodeslot=0x2F8AC,
},
[0x2F8AD]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008AD",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x61A4 },
- ["unicodeslot"]=0x2F8AD, -- 憤
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008AD",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x61A4 },
+ unicodeslot=0x2F8AD,
},
[0x2F8AE]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008AE",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x61AF },
- ["unicodeslot"]=0x2F8AE, -- 憯
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008AE",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x61AF },
+ unicodeslot=0x2F8AE,
},
[0x2F8AF]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008AF",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x61DE },
- ["unicodeslot"]=0x2F8AF, -- 懞
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008AF",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x61DE },
+ unicodeslot=0x2F8AF,
},
[0x2F8B0]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008B0x0000",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x61F2 },
- ["unicodeslot"]=0x2F8B0, -- 懲
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008B0x0000",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x61F2 },
+ unicodeslot=0x2F8B0,
},
[0x2F8B1]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008B0x0001",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x61F6 },
- ["unicodeslot"]=0x2F8B1, -- 懶
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008B0x0001",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x61F6 },
+ unicodeslot=0x2F8B1,
},
[0x2F8B2]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008B0x0002",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6210 },
- ["unicodeslot"]=0x2F8B2, -- 成
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008B0x0002",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6210 },
+ unicodeslot=0x2F8B2,
},
[0x2F8B3]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008B0x0003",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x621B },
- ["unicodeslot"]=0x2F8B3, -- 戛
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008B0x0003",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x621B },
+ unicodeslot=0x2F8B3,
},
[0x2F8B4]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008B0x0004",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x625D },
- ["unicodeslot"]=0x2F8B4, -- 扝
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008B0x0004",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x625D },
+ unicodeslot=0x2F8B4,
},
[0x2F8B5]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008B0x0005",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x62B1 },
- ["unicodeslot"]=0x2F8B5, -- 抱
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008B0x0005",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x62B1 },
+ unicodeslot=0x2F8B5,
},
[0x2F8B6]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008B0x0006",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x62D4 },
- ["unicodeslot"]=0x2F8B6, -- 拔
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008B0x0006",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x62D4 },
+ unicodeslot=0x2F8B6,
},
[0x2F8B7]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008B0x0007",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6350 },
- ["unicodeslot"]=0x2F8B7, -- 捐
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008B0x0007",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6350 },
+ unicodeslot=0x2F8B7,
},
[0x2F8B8]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008B0x0008",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x22B0C },
- ["unicodeslot"]=0x2F8B8, -- 𢬌
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008B0x0008",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x22B0C },
+ unicodeslot=0x2F8B8,
},
[0x2F8B9]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008B0x0009",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x633D },
- ["unicodeslot"]=0x2F8B9, -- 挽
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008B0x0009",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x633D },
+ unicodeslot=0x2F8B9,
},
[0x2F8BA]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008BA",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x62FC },
- ["unicodeslot"]=0x2F8BA, -- 拼
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008BA",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x62FC },
+ unicodeslot=0x2F8BA,
},
[0x2F8BB]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008BB",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6368 },
- ["unicodeslot"]=0x2F8BB, -- 捨
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008BB",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6368 },
+ unicodeslot=0x2F8BB,
},
[0x2F8BC]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008BC",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6383 },
- ["unicodeslot"]=0x2F8BC, -- 掃
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008BC",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6383 },
+ unicodeslot=0x2F8BC,
},
[0x2F8BD]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008BD",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x63E4 },
- ["unicodeslot"]=0x2F8BD, -- 揤
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008BD",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x63E4 },
+ unicodeslot=0x2F8BD,
},
[0x2F8BE]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008BE",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x22BF1 },
- ["unicodeslot"]=0x2F8BE, -- 𢯱
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008BE",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x22BF1 },
+ unicodeslot=0x2F8BE,
},
[0x2F8BF]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008BF",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6422 },
- ["unicodeslot"]=0x2F8BF, -- 搢
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008BF",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6422 },
+ unicodeslot=0x2F8BF,
},
[0x2F8C0]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008C0x0000",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x63C5 },
- ["unicodeslot"]=0x2F8C0, -- 揅
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008C0x0000",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x63C5 },
+ unicodeslot=0x2F8C0,
},
[0x2F8C1]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008C0x0001",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x63A9 },
- ["unicodeslot"]=0x2F8C1, -- 掩
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008C0x0001",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x63A9 },
+ unicodeslot=0x2F8C1,
},
[0x2F8C2]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008C0x0002",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x3A2E },
- ["unicodeslot"]=0x2F8C2, -- 㨮
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008C0x0002",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x3A2E },
+ unicodeslot=0x2F8C2,
},
[0x2F8C3]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008C0x0003",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6469 },
- ["unicodeslot"]=0x2F8C3, -- 摩
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008C0x0003",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6469 },
+ unicodeslot=0x2F8C3,
},
[0x2F8C4]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008C0x0004",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x647E },
- ["unicodeslot"]=0x2F8C4, -- 摾
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008C0x0004",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x647E },
+ unicodeslot=0x2F8C4,
},
[0x2F8C5]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008C0x0005",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x649D },
- ["unicodeslot"]=0x2F8C5, -- 撝
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008C0x0005",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x649D },
+ unicodeslot=0x2F8C5,
},
[0x2F8C6]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008C0x0006",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6477 },
- ["unicodeslot"]=0x2F8C6, -- 摷
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008C0x0006",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6477 },
+ unicodeslot=0x2F8C6,
},
[0x2F8C7]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008C0x0007",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x3A6C },
- ["unicodeslot"]=0x2F8C7, -- 㩬
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008C0x0007",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x3A6C },
+ unicodeslot=0x2F8C7,
},
[0x2F8C8]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008C0x0008",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x654F },
- ["unicodeslot"]=0x2F8C8, -- 敏
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008C0x0008",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x654F },
+ unicodeslot=0x2F8C8,
},
[0x2F8C9]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008C0x0009",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x656C },
- ["unicodeslot"]=0x2F8C9, -- 敬
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008C0x0009",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x656C },
+ unicodeslot=0x2F8C9,
},
[0x2F8CA]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008CA",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x2300A },
- ["unicodeslot"]=0x2F8CA, -- 𣀊
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008CA",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x2300A },
+ unicodeslot=0x2F8CA,
},
[0x2F8CB]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008CB",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x65E3 },
- ["unicodeslot"]=0x2F8CB, -- 旣
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008CB",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x65E3 },
+ unicodeslot=0x2F8CB,
},
[0x2F8CC]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008CC",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x66F8 },
- ["unicodeslot"]=0x2F8CC, -- 書
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008CC",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x66F8 },
+ unicodeslot=0x2F8CC,
},
[0x2F8CD]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008CD",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6649 },
- ["unicodeslot"]=0x2F8CD, -- 晉
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008CD",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6649 },
+ unicodeslot=0x2F8CD,
},
[0x2F8CE]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008CE",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x3B19 },
- ["unicodeslot"]=0x2F8CE, -- 㬙
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008CE",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x3B19 },
+ unicodeslot=0x2F8CE,
},
[0x2F8CF]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008CF",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6691 },
- ["unicodeslot"]=0x2F8CF, -- 暑
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008CF",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6691 },
+ unicodeslot=0x2F8CF,
},
[0x2F8D0]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008D0x0000",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x3B08 },
- ["unicodeslot"]=0x2F8D0, -- 㬈
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008D0x0000",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x3B08 },
+ unicodeslot=0x2F8D0,
},
[0x2F8D1]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008D0x0001",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x3AE4 },
- ["unicodeslot"]=0x2F8D1, -- 㫤
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008D0x0001",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x3AE4 },
+ unicodeslot=0x2F8D1,
},
[0x2F8D2]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008D0x0002",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5192 },
- ["unicodeslot"]=0x2F8D2, -- 冒
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008D0x0002",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5192 },
+ unicodeslot=0x2F8D2,
},
[0x2F8D3]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008D0x0003",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5195 },
- ["unicodeslot"]=0x2F8D3, -- 冕
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008D0x0003",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5195 },
+ unicodeslot=0x2F8D3,
},
[0x2F8D4]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008D0x0004",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6700 },
- ["unicodeslot"]=0x2F8D4, -- 最
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008D0x0004",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6700 },
+ unicodeslot=0x2F8D4,
},
[0x2F8D5]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008D0x0005",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x669C },
- ["unicodeslot"]=0x2F8D5, -- 暜
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008D0x0005",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x669C },
+ unicodeslot=0x2F8D5,
},
[0x2F8D6]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008D0x0006",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x80AD },
- ["unicodeslot"]=0x2F8D6, -- 肭
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008D0x0006",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x80AD },
+ unicodeslot=0x2F8D6,
},
[0x2F8D7]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008D0x0007",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x43D9 },
- ["unicodeslot"]=0x2F8D7, -- 䏙
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008D0x0007",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x43D9 },
+ unicodeslot=0x2F8D7,
},
[0x2F8D8]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008D0x0008",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6717 },
- ["unicodeslot"]=0x2F8D8, -- 朗
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008D0x0008",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6717 },
+ unicodeslot=0x2F8D8,
},
[0x2F8D9]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008D0x0009",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x671B },
- ["unicodeslot"]=0x2F8D9, -- 望
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008D0x0009",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x671B },
+ unicodeslot=0x2F8D9,
},
[0x2F8DA]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008DA",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6721 },
- ["unicodeslot"]=0x2F8DA, -- 朡
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008DA",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6721 },
+ unicodeslot=0x2F8DA,
},
[0x2F8DB]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008DB",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x675E },
- ["unicodeslot"]=0x2F8DB, -- 杞
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008DB",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x675E },
+ unicodeslot=0x2F8DB,
},
[0x2F8DC]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008DC",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6753 },
- ["unicodeslot"]=0x2F8DC, -- 杓
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008DC",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6753 },
+ unicodeslot=0x2F8DC,
},
[0x2F8DD]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008DD",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x233C3 },
- ["unicodeslot"]=0x2F8DD, -- 𣏃
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008DD",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x233C3 },
+ unicodeslot=0x2F8DD,
},
[0x2F8DE]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008DE",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x3B49 },
- ["unicodeslot"]=0x2F8DE, -- 㭉
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008DE",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x3B49 },
+ unicodeslot=0x2F8DE,
},
[0x2F8DF]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008DF",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x67FA },
- ["unicodeslot"]=0x2F8DF, -- 柺
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008DF",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x67FA },
+ unicodeslot=0x2F8DF,
},
[0x2F8E0]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008E0x0000",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6785 },
- ["unicodeslot"]=0x2F8E0, -- 枅
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008E0x0000",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6785 },
+ unicodeslot=0x2F8E0,
},
[0x2F8E1]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008E0x0001",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6852 },
- ["unicodeslot"]=0x2F8E1, -- 桒
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008E0x0001",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6852 },
+ unicodeslot=0x2F8E1,
},
[0x2F8E2]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008E0x0002",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6885 },
- ["unicodeslot"]=0x2F8E2, -- 梅
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008E0x0002",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6885 },
+ unicodeslot=0x2F8E2,
},
[0x2F8E3]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008E0x0003",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x2346D },
- ["unicodeslot"]=0x2F8E3, -- 𣑭
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008E0x0003",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x2346D },
+ unicodeslot=0x2F8E3,
},
[0x2F8E4]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008E0x0004",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x688E },
- ["unicodeslot"]=0x2F8E4, -- 梎
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008E0x0004",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x688E },
+ unicodeslot=0x2F8E4,
},
[0x2F8E5]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008E0x0005",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x681F },
- ["unicodeslot"]=0x2F8E5, -- 栟
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008E0x0005",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x681F },
+ unicodeslot=0x2F8E5,
},
[0x2F8E6]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008E0x0006",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6914 },
- ["unicodeslot"]=0x2F8E6, -- 椔
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008E0x0006",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6914 },
+ unicodeslot=0x2F8E6,
},
[0x2F8E7]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008E0x0007",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x3B9D },
- ["unicodeslot"]=0x2F8E7, -- 㮝
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008E0x0007",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x3B9D },
+ unicodeslot=0x2F8E7,
},
[0x2F8E8]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008E0x0008",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6942 },
- ["unicodeslot"]=0x2F8E8, -- 楂
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008E0x0008",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6942 },
+ unicodeslot=0x2F8E8,
},
[0x2F8E9]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008E0x0009",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x69A3 },
- ["unicodeslot"]=0x2F8E9, -- 榣
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008E0x0009",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x69A3 },
+ unicodeslot=0x2F8E9,
},
[0x2F8EA]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008EA",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x69EA },
- ["unicodeslot"]=0x2F8EA, -- 槪
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008EA",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x69EA },
+ unicodeslot=0x2F8EA,
},
[0x2F8EB]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008EB",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6AA8 },
- ["unicodeslot"]=0x2F8EB, -- 檨
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008EB",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6AA8 },
+ unicodeslot=0x2F8EB,
},
[0x2F8EC]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008EC",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x236A3 },
- ["unicodeslot"]=0x2F8EC, -- 𣚣
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008EC",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x236A3 },
+ unicodeslot=0x2F8EC,
},
[0x2F8ED]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008ED",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6ADB },
- ["unicodeslot"]=0x2F8ED, -- 櫛
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008ED",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6ADB },
+ unicodeslot=0x2F8ED,
},
[0x2F8EE]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008EE",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x3C18 },
- ["unicodeslot"]=0x2F8EE, -- 㰘
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008EE",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x3C18 },
+ unicodeslot=0x2F8EE,
},
[0x2F8EF]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008EF",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6B21 },
- ["unicodeslot"]=0x2F8EF, -- 次
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008EF",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6B21 },
+ unicodeslot=0x2F8EF,
},
[0x2F8F0]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008F0x0000",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x238A7 },
- ["unicodeslot"]=0x2F8F0, -- 𣢧
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008F0x0000",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x238A7 },
+ unicodeslot=0x2F8F0,
},
[0x2F8F1]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008F0x0001",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6B54 },
- ["unicodeslot"]=0x2F8F1, -- 歔
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008F0x0001",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6B54 },
+ unicodeslot=0x2F8F1,
},
[0x2F8F2]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008F0x0002",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x3C4E },
- ["unicodeslot"]=0x2F8F2, -- 㱎
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008F0x0002",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x3C4E },
+ unicodeslot=0x2F8F2,
},
[0x2F8F3]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008F0x0003",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6B72 },
- ["unicodeslot"]=0x2F8F3, -- 歲
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008F0x0003",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6B72 },
+ unicodeslot=0x2F8F3,
},
[0x2F8F4]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008F0x0004",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6B9F },
- ["unicodeslot"]=0x2F8F4, -- 殟
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008F0x0004",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6B9F },
+ unicodeslot=0x2F8F4,
},
[0x2F8F5]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008F0x0005",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6BBA },
- ["unicodeslot"]=0x2F8F5, -- 殺
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008F0x0005",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6BBA },
+ unicodeslot=0x2F8F5,
},
[0x2F8F6]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008F0x0006",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6BBB },
- ["unicodeslot"]=0x2F8F6, -- 殻
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008F0x0006",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6BBB },
+ unicodeslot=0x2F8F6,
},
[0x2F8F7]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008F0x0007",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x23A8D },
- ["unicodeslot"]=0x2F8F7, -- 𣪍
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008F0x0007",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x23A8D },
+ unicodeslot=0x2F8F7,
},
[0x2F8F8]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008F0x0008",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x21D0B },
- ["unicodeslot"]=0x2F8F8, -- 𡴋
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008F0x0008",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x21D0B },
+ unicodeslot=0x2F8F8,
},
[0x2F8F9]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008F0x0009",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x23AFA },
- ["unicodeslot"]=0x2F8F9, -- 𣫺
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008F0x0009",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x23AFA },
+ unicodeslot=0x2F8F9,
},
[0x2F8FA]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008FA",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6C4E },
- ["unicodeslot"]=0x2F8FA, -- 汎
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008FA",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6C4E },
+ unicodeslot=0x2F8FA,
},
[0x2F8FB]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008FB",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x23CBC },
- ["unicodeslot"]=0x2F8FB, -- 𣲼
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008FB",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x23CBC },
+ unicodeslot=0x2F8FB,
},
[0x2F8FC]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008FC",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6CBF },
- ["unicodeslot"]=0x2F8FC, -- 沿
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008FC",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6CBF },
+ unicodeslot=0x2F8FC,
},
[0x2F8FD]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008FD",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6CCD },
- ["unicodeslot"]=0x2F8FD, -- 泍
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008FD",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6CCD },
+ unicodeslot=0x2F8FD,
},
[0x2F8FE]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008FE",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6C67 },
- ["unicodeslot"]=0x2F8FE, -- 汧
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008FE",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6C67 },
+ unicodeslot=0x2F8FE,
},
[0x2F8FF]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008FF",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6D16 },
- ["unicodeslot"]=0x2F8FF, -- 洖
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0008FF",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6D16 },
+ unicodeslot=0x2F8FF,
},
[0x2F900]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0384",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6D3E },
- ["unicodeslot"]=0x2F900, -- 派
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0384",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6D3E },
+ unicodeslot=0x2F900,
},
[0x2F901]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0385",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6D77 },
- ["unicodeslot"]=0x2F901, -- 海
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0385",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6D77 },
+ unicodeslot=0x2F901,
},
[0x2F902]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0386",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6D41 },
- ["unicodeslot"]=0x2F902, -- 流
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0386",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6D41 },
+ unicodeslot=0x2F902,
},
[0x2F903]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0387",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6D69 },
- ["unicodeslot"]=0x2F903, -- 浩
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0387",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6D69 },
+ unicodeslot=0x2F903,
},
[0x2F904]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0388",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6D78 },
- ["unicodeslot"]=0x2F904, -- 浸
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0388",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6D78 },
+ unicodeslot=0x2F904,
},
[0x2F905]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0389",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6D85 },
- ["unicodeslot"]=0x2F905, -- 涅
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0389",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6D85 },
+ unicodeslot=0x2F905,
},
[0x2F906]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x038A",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x23D1E },
- ["unicodeslot"]=0x2F906, -- 𣴞
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x038A",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x23D1E },
+ unicodeslot=0x2F906,
},
[0x2F907]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x038B",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6D34 },
- ["unicodeslot"]=0x2F907, -- 洴
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x038B",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6D34 },
+ unicodeslot=0x2F907,
},
[0x2F908]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x038C",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6E2F },
- ["unicodeslot"]=0x2F908, -- 港
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x038C",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6E2F },
+ unicodeslot=0x2F908,
},
[0x2F909]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x038D",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6E6E },
- ["unicodeslot"]=0x2F909, -- 湮
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x038D",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6E6E },
+ unicodeslot=0x2F909,
},
[0x2F90A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005AA",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x3D33 },
- ["unicodeslot"]=0x2F90A, -- 㴳
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005AA",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x3D33 },
+ unicodeslot=0x2F90A,
},
[0x2F90B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005AB",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6ECB },
- ["unicodeslot"]=0x2F90B, -- 滋
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005AB",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6ECB },
+ unicodeslot=0x2F90B,
},
[0x2F90C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005AC",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6EC7 },
- ["unicodeslot"]=0x2F90C, -- 滇
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005AC",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6EC7 },
+ unicodeslot=0x2F90C,
},
[0x2F90D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005AD",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x23ED1 },
- ["unicodeslot"]=0x2F90D, -- 𣻑
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005AD",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x23ED1 },
+ unicodeslot=0x2F90D,
},
[0x2F90E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005AE",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6DF9 },
- ["unicodeslot"]=0x2F90E, -- 淹
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005AE",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6DF9 },
+ unicodeslot=0x2F90E,
},
[0x2F90F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005AF",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6F6E },
- ["unicodeslot"]=0x2F90F, -- 潮
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005AF",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6F6E },
+ unicodeslot=0x2F90F,
},
[0x2F910]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x038E",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x23F5E },
- ["unicodeslot"]=0x2F910, -- 𣽞
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x038E",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x23F5E },
+ unicodeslot=0x2F910,
},
[0x2F911]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x038F",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x23F8E },
- ["unicodeslot"]=0x2F911, -- 𣾎
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x038F",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x23F8E },
+ unicodeslot=0x2F911,
},
[0x2F912]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0390",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x6FC6 },
- ["unicodeslot"]=0x2F912, -- 濆
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0390",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x6FC6 },
+ unicodeslot=0x2F912,
},
[0x2F913]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0391",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7039 },
- ["unicodeslot"]=0x2F913, -- 瀹
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0391",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7039 },
+ unicodeslot=0x2F913,
},
[0x2F914]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0392",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x701E },
- ["unicodeslot"]=0x2F914, -- 瀞
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0392",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x701E },
+ unicodeslot=0x2F914,
},
[0x2F915]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0393",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x701B },
- ["unicodeslot"]=0x2F915, -- 瀛
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0393",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x701B },
+ unicodeslot=0x2F915,
},
[0x2F916]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0394",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x3D96 },
- ["unicodeslot"]=0x2F916, -- 㶖
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0394",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x3D96 },
+ unicodeslot=0x2F916,
},
[0x2F917]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0395",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x704A },
- ["unicodeslot"]=0x2F917, -- 灊
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0395",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x704A },
+ unicodeslot=0x2F917,
},
[0x2F918]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0396",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x707D },
- ["unicodeslot"]=0x2F918, -- 災
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0396",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x707D },
+ unicodeslot=0x2F918,
},
[0x2F919]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0397",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7077 },
- ["unicodeslot"]=0x2F919, -- 灷
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0397",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7077 },
+ unicodeslot=0x2F919,
},
[0x2F91A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005BA",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x70AD },
- ["unicodeslot"]=0x2F91A, -- 炭
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005BA",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x70AD },
+ unicodeslot=0x2F91A,
},
[0x2F91B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005BB",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x20525 },
- ["unicodeslot"]=0x2F91B, -- 𠔥
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005BB",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x20525 },
+ unicodeslot=0x2F91B,
},
[0x2F91C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005BC",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7145 },
- ["unicodeslot"]=0x2F91C, -- 煅
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005BC",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7145 },
+ unicodeslot=0x2F91C,
},
[0x2F91D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005BD",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x24263 },
- ["unicodeslot"]=0x2F91D, -- 𤉣
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005BD",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x24263 },
+ unicodeslot=0x2F91D,
},
[0x2F91E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005BE",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x719C },
- ["unicodeslot"]=0x2F91E, -- 熜
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005BE",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x719C },
+ unicodeslot=0x2F91E,
},
[0x2F91F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005BF",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x243AB },
- ["unicodeslot"]=0x2F91F, -- 𤎫
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005BF",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x243AB },
+ unicodeslot=0x2F91F,
},
[0x2F920]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0398",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7228 },
- ["unicodeslot"]=0x2F920, -- 爨
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0398",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7228 },
+ unicodeslot=0x2F920,
},
[0x2F921]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0399",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7235 },
- ["unicodeslot"]=0x2F921, -- 爵
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0399",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7235 },
+ unicodeslot=0x2F921,
},
[0x2F922]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x039A",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7250 },
- ["unicodeslot"]=0x2F922, -- 牐
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x039A",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7250 },
+ unicodeslot=0x2F922,
},
[0x2F923]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x039B",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x24608 },
- ["unicodeslot"]=0x2F923, -- 𤘈
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x039B",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x24608 },
+ unicodeslot=0x2F923,
},
[0x2F924]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x039C",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7280 },
- ["unicodeslot"]=0x2F924, -- 犀
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x039C",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7280 },
+ unicodeslot=0x2F924,
},
[0x2F925]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x039D",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7295 },
- ["unicodeslot"]=0x2F925, -- 犕
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x039D",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7295 },
+ unicodeslot=0x2F925,
},
[0x2F926]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x039E",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x24735 },
- ["unicodeslot"]=0x2F926, -- 𤜵
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x039E",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x24735 },
+ unicodeslot=0x2F926,
},
[0x2F927]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x039F",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x24814 },
- ["unicodeslot"]=0x2F927, -- 𤠔
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x039F",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x24814 },
+ unicodeslot=0x2F927,
},
[0x2F928]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03A0",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x737A },
- ["unicodeslot"]=0x2F928, -- 獺
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03A0",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x737A },
+ unicodeslot=0x2F928,
},
[0x2F929]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03A1",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x738B },
- ["unicodeslot"]=0x2F929, -- 王
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03A1",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x738B },
+ unicodeslot=0x2F929,
},
[0x2F92A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005CA",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x3EAC },
- ["unicodeslot"]=0x2F92A, -- 㺬
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005CA",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x3EAC },
+ unicodeslot=0x2F92A,
},
[0x2F92B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005CB",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x73A5 },
- ["unicodeslot"]=0x2F92B, -- 玥
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005CB",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x73A5 },
+ unicodeslot=0x2F92B,
},
[0x2F92C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005CC",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x3EB8 },
- ["unicodeslot"]=0x2F92C, -- 㺸
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005CC",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x3EB8 },
+ unicodeslot=0x2F92C,
},
[0x2F92D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005CD",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x3EB8 },
- ["unicodeslot"]=0x2F92D, -- 㺸
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005CD",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x3EB8 },
+ unicodeslot=0x2F92D,
},
[0x2F92E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005CE",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7447 },
- ["unicodeslot"]=0x2F92E, -- 瑇
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005CE",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7447 },
+ unicodeslot=0x2F92E,
},
[0x2F92F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005CF",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x745C },
- ["unicodeslot"]=0x2F92F, -- 瑜
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005CF",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x745C },
+ unicodeslot=0x2F92F,
},
[0x2F930]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03A2",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7471 },
- ["unicodeslot"]=0x2F930, -- 瑱
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03A2",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7471 },
+ unicodeslot=0x2F930,
},
[0x2F931]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03A3",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7485 },
- ["unicodeslot"]=0x2F931, -- 璅
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03A3",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7485 },
+ unicodeslot=0x2F931,
},
[0x2F932]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03A4",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x74CA },
- ["unicodeslot"]=0x2F932, -- 瓊
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03A4",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x74CA },
+ unicodeslot=0x2F932,
},
[0x2F933]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03A5",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x3F1B },
- ["unicodeslot"]=0x2F933, -- 㼛
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03A5",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x3F1B },
+ unicodeslot=0x2F933,
},
[0x2F934]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03A6",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7524 },
- ["unicodeslot"]=0x2F934, -- 甤
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03A6",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7524 },
+ unicodeslot=0x2F934,
},
[0x2F935]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03A7",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x24C36 },
- ["unicodeslot"]=0x2F935, -- 𤰶
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03A7",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x24C36 },
+ unicodeslot=0x2F935,
},
[0x2F936]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03A8",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x753E },
- ["unicodeslot"]=0x2F936, -- 甾
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03A8",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x753E },
+ unicodeslot=0x2F936,
},
[0x2F937]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03A9",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x24C92 },
- ["unicodeslot"]=0x2F937, -- 𤲒
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03A9",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x24C92 },
+ unicodeslot=0x2F937,
},
[0x2F938]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03AA",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7570 },
- ["unicodeslot"]=0x2F938, -- 異
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03AA",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7570 },
+ unicodeslot=0x2F938,
},
[0x2F939]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03AB",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x2219F },
- ["unicodeslot"]=0x2F939, -- 𢆟
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03AB",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x2219F },
+ unicodeslot=0x2F939,
},
[0x2F93A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005DA",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7610 },
- ["unicodeslot"]=0x2F93A, -- 瘐
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005DA",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7610 },
+ unicodeslot=0x2F93A,
},
[0x2F93B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005DB",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x24FA1 },
- ["unicodeslot"]=0x2F93B, -- 𤾡
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005DB",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x24FA1 },
+ unicodeslot=0x2F93B,
},
[0x2F93C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005DC",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x24FB8 },
- ["unicodeslot"]=0x2F93C, -- 𤾸
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005DC",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x24FB8 },
+ unicodeslot=0x2F93C,
},
[0x2F93D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005DD",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x25044 },
- ["unicodeslot"]=0x2F93D, -- 𥁄
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005DD",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x25044 },
+ unicodeslot=0x2F93D,
},
[0x2F93E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005DE",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x3FFC },
- ["unicodeslot"]=0x2F93E, -- 㿼
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005DE",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x3FFC },
+ unicodeslot=0x2F93E,
},
[0x2F93F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005DF",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x4008 },
- ["unicodeslot"]=0x2F93F, -- 䀈
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005DF",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x4008 },
+ unicodeslot=0x2F93F,
},
[0x2F940]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03AC",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x76F4 },
- ["unicodeslot"]=0x2F940, -- 直
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03AC",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x76F4 },
+ unicodeslot=0x2F940,
},
[0x2F941]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03AD",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x250F3 },
- ["unicodeslot"]=0x2F941, -- 𥃳
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03AD",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x250F3 },
+ unicodeslot=0x2F941,
},
[0x2F942]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03AE",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x250F2 },
- ["unicodeslot"]=0x2F942, -- 𥃲
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03AE",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x250F2 },
+ unicodeslot=0x2F942,
},
[0x2F943]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03AF",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x25119 },
- ["unicodeslot"]=0x2F943, -- 𥄙
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03AF",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x25119 },
+ unicodeslot=0x2F943,
},
[0x2F944]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03B0",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x25133 },
- ["unicodeslot"]=0x2F944, -- 𥄳
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03B0",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x25133 },
+ unicodeslot=0x2F944,
},
[0x2F945]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03B1",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x771E },
- ["unicodeslot"]=0x2F945, -- 眞
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03B1",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x771E },
+ unicodeslot=0x2F945,
},
[0x2F946]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03B2",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x771F },
- ["unicodeslot"]=0x2F946, -- 真
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03B2",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x771F },
+ unicodeslot=0x2F946,
},
[0x2F947]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03B3",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x771F },
- ["unicodeslot"]=0x2F947, -- 真
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03B3",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x771F },
+ unicodeslot=0x2F947,
},
[0x2F948]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03B4",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x774A },
- ["unicodeslot"]=0x2F948, -- 睊
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03B4",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x774A },
+ unicodeslot=0x2F948,
},
[0x2F949]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03B5",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x4039 },
- ["unicodeslot"]=0x2F949, -- 䀹
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03B5",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x4039 },
+ unicodeslot=0x2F949,
},
[0x2F94A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005EA",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x778B },
- ["unicodeslot"]=0x2F94A, -- 瞋
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005EA",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x778B },
+ unicodeslot=0x2F94A,
},
[0x2F94B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005EB",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x4046 },
- ["unicodeslot"]=0x2F94B, -- 䁆
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005EB",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x4046 },
+ unicodeslot=0x2F94B,
},
[0x2F94C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005EC",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x4096 },
- ["unicodeslot"]=0x2F94C, -- 䂖
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005EC",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x4096 },
+ unicodeslot=0x2F94C,
},
[0x2F94D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005ED",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x2541D },
- ["unicodeslot"]=0x2F94D, -- 𥐝
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005ED",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x2541D },
+ unicodeslot=0x2F94D,
},
[0x2F94E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005EE",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x784E },
- ["unicodeslot"]=0x2F94E, -- 硎
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005EE",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x784E },
+ unicodeslot=0x2F94E,
},
[0x2F94F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005EF",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x788C },
- ["unicodeslot"]=0x2F94F, -- 碌
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005EF",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x788C },
+ unicodeslot=0x2F94F,
},
[0x2F950]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03B6",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x78CC },
- ["unicodeslot"]=0x2F950, -- 磌
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03B6",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x78CC },
+ unicodeslot=0x2F950,
},
[0x2F951]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03B7",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x40E3 },
- ["unicodeslot"]=0x2F951, -- 䃣
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03B7",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x40E3 },
+ unicodeslot=0x2F951,
},
[0x2F952]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03B8",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x25626 },
- ["unicodeslot"]=0x2F952, -- 𥘦
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03B8",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x25626 },
+ unicodeslot=0x2F952,
},
[0x2F953]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03B9",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7956 },
- ["unicodeslot"]=0x2F953, -- 祖
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03B9",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7956 },
+ unicodeslot=0x2F953,
},
[0x2F954]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03BA",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x2569A },
- ["unicodeslot"]=0x2F954, -- 𥚚
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03BA",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x2569A },
+ unicodeslot=0x2F954,
},
[0x2F955]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03BB",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x256C5 },
- ["unicodeslot"]=0x2F955, -- 𥛅
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03BB",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x256C5 },
+ unicodeslot=0x2F955,
},
[0x2F956]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03BC",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x798F },
- ["unicodeslot"]=0x2F956, -- 福
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03BC",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x798F },
+ unicodeslot=0x2F956,
},
[0x2F957]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03BD",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x79EB },
- ["unicodeslot"]=0x2F957, -- 秫
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03BD",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x79EB },
+ unicodeslot=0x2F957,
},
[0x2F958]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03BE",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x412F },
- ["unicodeslot"]=0x2F958, -- 䄯
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03BE",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x412F },
+ unicodeslot=0x2F958,
},
[0x2F959]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03BF",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7A40 },
- ["unicodeslot"]=0x2F959, -- 穀
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03BF",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7A40 },
+ unicodeslot=0x2F959,
},
[0x2F95A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005FA",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7A4A },
- ["unicodeslot"]=0x2F95A, -- 穊
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005FA",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7A4A },
+ unicodeslot=0x2F95A,
},
[0x2F95B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005FB",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7A4F },
- ["unicodeslot"]=0x2F95B, -- 穏
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005FB",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7A4F },
+ unicodeslot=0x2F95B,
},
[0x2F95C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005FC",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x2597C },
- ["unicodeslot"]=0x2F95C, -- 𥥼
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005FC",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x2597C },
+ unicodeslot=0x2F95C,
},
[0x2F95D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005FD",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x25AA7 },
- ["unicodeslot"]=0x2F95D, -- 𥪧
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005FD",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x25AA7 },
+ unicodeslot=0x2F95D,
},
[0x2F95E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005FE",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x25AA7 },
- ["unicodeslot"]=0x2F95E, -- 𥪧
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005FE",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x25AA7 },
+ unicodeslot=0x2F95E,
},
[0x2F95F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005FF",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7AEE },
- ["unicodeslot"]=0x2F95F, -- 竮
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x005FF",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7AEE },
+ unicodeslot=0x2F95F,
},
[0x2F960]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03C0",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x4202 },
- ["unicodeslot"]=0x2F960, -- 䈂
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03C0",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x4202 },
+ unicodeslot=0x2F960,
},
[0x2F961]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03C1",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x25BAB },
- ["unicodeslot"]=0x2F961, -- 𥮫
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03C1",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x25BAB },
+ unicodeslot=0x2F961,
},
[0x2F962]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03C2",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7BC6 },
- ["unicodeslot"]=0x2F962, -- 篆
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03C2",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7BC6 },
+ unicodeslot=0x2F962,
},
[0x2F963]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03C3",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7BC9 },
- ["unicodeslot"]=0x2F963, -- 築
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03C3",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7BC9 },
+ unicodeslot=0x2F963,
},
[0x2F964]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03C4",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x4227 },
- ["unicodeslot"]=0x2F964, -- 䈧
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03C4",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x4227 },
+ unicodeslot=0x2F964,
},
[0x2F965]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03C5",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x25C80 },
- ["unicodeslot"]=0x2F965, -- 𥲀
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03C5",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x25C80 },
+ unicodeslot=0x2F965,
},
[0x2F966]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03C6",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7CD2 },
- ["unicodeslot"]=0x2F966, -- 糒
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03C6",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7CD2 },
+ unicodeslot=0x2F966,
},
[0x2F967]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03C7",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x42A0 },
- ["unicodeslot"]=0x2F967, -- 䊠
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03C7",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x42A0 },
+ unicodeslot=0x2F967,
},
[0x2F968]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03C8",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7CE8 },
- ["unicodeslot"]=0x2F968, -- 糨
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03C8",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7CE8 },
+ unicodeslot=0x2F968,
},
[0x2F969]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03C9",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7CE3 },
- ["unicodeslot"]=0x2F969, -- 糣
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03C9",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7CE3 },
+ unicodeslot=0x2F969,
},
[0x2F96A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0060A",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7D00 },
- ["unicodeslot"]=0x2F96A, -- 紀
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0060A",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7D00 },
+ unicodeslot=0x2F96A,
},
[0x2F96B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0060B",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x25F86 },
- ["unicodeslot"]=0x2F96B, -- 𥾆
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0060B",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x25F86 },
+ unicodeslot=0x2F96B,
},
[0x2F96C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0060C",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7D63 },
- ["unicodeslot"]=0x2F96C, -- 絣
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0060C",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7D63 },
+ unicodeslot=0x2F96C,
},
[0x2F96D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0060D",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x4301 },
- ["unicodeslot"]=0x2F96D, -- 䌁
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0060D",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x4301 },
+ unicodeslot=0x2F96D,
},
[0x2F96E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0060E",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7DC7 },
- ["unicodeslot"]=0x2F96E, -- 緇
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0060E",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7DC7 },
+ unicodeslot=0x2F96E,
},
[0x2F96F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0060F",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7E02 },
- ["unicodeslot"]=0x2F96F, -- 縂
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0060F",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7E02 },
+ unicodeslot=0x2F96F,
},
[0x2F970]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03CA",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7E45 },
- ["unicodeslot"]=0x2F970, -- 繅
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03CA",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7E45 },
+ unicodeslot=0x2F970,
},
[0x2F971]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03CB",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x4334 },
- ["unicodeslot"]=0x2F971, -- 䌴
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03CB",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x4334 },
+ unicodeslot=0x2F971,
},
[0x2F972]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03CC",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x26228 },
- ["unicodeslot"]=0x2F972, -- 𦈨
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03CC",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x26228 },
+ unicodeslot=0x2F972,
},
[0x2F973]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03CD",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x26247 },
- ["unicodeslot"]=0x2F973, -- 𦉇
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03CD",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x26247 },
+ unicodeslot=0x2F973,
},
[0x2F974]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03CE",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x4359 },
- ["unicodeslot"]=0x2F974, -- 䍙
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03CE",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x4359 },
+ unicodeslot=0x2F974,
},
[0x2F975]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03CF",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x262D9 },
- ["unicodeslot"]=0x2F975, -- 𦋙
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03CF",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x262D9 },
+ unicodeslot=0x2F975,
},
[0x2F976]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03D0",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7F7A },
- ["unicodeslot"]=0x2F976, -- 罺
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03D0",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7F7A },
+ unicodeslot=0x2F976,
},
[0x2F977]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03D1",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x2633E },
- ["unicodeslot"]=0x2F977, -- 𦌾
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03D1",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x2633E },
+ unicodeslot=0x2F977,
},
[0x2F978]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03D2",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7F95 },
- ["unicodeslot"]=0x2F978, -- 羕
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03D2",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7F95 },
+ unicodeslot=0x2F978,
},
[0x2F979]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03D3",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x7FFA },
- ["unicodeslot"]=0x2F979, -- 翺
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03D3",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x7FFA },
+ unicodeslot=0x2F979,
},
[0x2F97A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0061A",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8005 },
- ["unicodeslot"]=0x2F97A, -- 者
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0061A",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8005 },
+ unicodeslot=0x2F97A,
},
[0x2F97B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0061B",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x264DA },
- ["unicodeslot"]=0x2F97B, -- 𦓚
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0061B",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x264DA },
+ unicodeslot=0x2F97B,
},
[0x2F97C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0061C",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x26523 },
- ["unicodeslot"]=0x2F97C, -- 𦔣
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0061C",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x26523 },
+ unicodeslot=0x2F97C,
},
[0x2F97D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0061D",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8060 },
- ["unicodeslot"]=0x2F97D, -- 聠
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0061D",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8060 },
+ unicodeslot=0x2F97D,
},
[0x2F97E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0061E",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x265A8 },
- ["unicodeslot"]=0x2F97E, -- 𦖨
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0061E",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x265A8 },
+ unicodeslot=0x2F97E,
},
[0x2F97F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0061F",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8070 },
- ["unicodeslot"]=0x2F97F, -- 聰
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0061F",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8070 },
+ unicodeslot=0x2F97F,
},
[0x2F980]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03D4",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x2335F },
- ["unicodeslot"]=0x2F980, -- 𣍟
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03D4",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x2335F },
+ unicodeslot=0x2F980,
},
[0x2F981]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03D5",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x43D5 },
- ["unicodeslot"]=0x2F981, -- 䏕
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03D5",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x43D5 },
+ unicodeslot=0x2F981,
},
[0x2F982]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03D6",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x80B2 },
- ["unicodeslot"]=0x2F982, -- 育
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03D6",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x80B2 },
+ unicodeslot=0x2F982,
},
[0x2F983]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03D7",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8103 },
- ["unicodeslot"]=0x2F983, -- 脃
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03D7",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8103 },
+ unicodeslot=0x2F983,
},
[0x2F984]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03D8",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x440B },
- ["unicodeslot"]=0x2F984, -- 䐋
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03D8",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x440B },
+ unicodeslot=0x2F984,
},
[0x2F985]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03D9",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x813E },
- ["unicodeslot"]=0x2F985, -- 脾
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03D9",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x813E },
+ unicodeslot=0x2F985,
},
[0x2F986]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03DA",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5AB5 },
- ["unicodeslot"]=0x2F986, -- 媵
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03DA",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5AB5 },
+ unicodeslot=0x2F986,
},
[0x2F987]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03DB",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x267A7 },
- ["unicodeslot"]=0x2F987, -- 𦞧
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03DB",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x267A7 },
+ unicodeslot=0x2F987,
},
[0x2F988]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03DC",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x267B5 },
- ["unicodeslot"]=0x2F988, -- 𦞵
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03DC",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x267B5 },
+ unicodeslot=0x2F988,
},
[0x2F989]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03DD",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x23393 },
- ["unicodeslot"]=0x2F989, -- 𣎓
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03DD",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x23393 },
+ unicodeslot=0x2F989,
},
[0x2F98A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0062A",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x2339C },
- ["unicodeslot"]=0x2F98A, -- 𣎜
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0062A",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x2339C },
+ unicodeslot=0x2F98A,
},
[0x2F98B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0062B",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8201 },
- ["unicodeslot"]=0x2F98B, -- 舁
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0062B",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8201 },
+ unicodeslot=0x2F98B,
},
[0x2F98C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0062C",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8204 },
- ["unicodeslot"]=0x2F98C, -- 舄
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0062C",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8204 },
+ unicodeslot=0x2F98C,
},
[0x2F98D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0062D",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8F9E },
- ["unicodeslot"]=0x2F98D, -- 辞
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0062D",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8F9E },
+ unicodeslot=0x2F98D,
},
[0x2F98E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0062E",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x446B },
- ["unicodeslot"]=0x2F98E, -- 䑫
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0062E",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x446B },
+ unicodeslot=0x2F98E,
},
[0x2F98F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0062F",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8291 },
- ["unicodeslot"]=0x2F98F, -- 芑
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0062F",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8291 },
+ unicodeslot=0x2F98F,
},
[0x2F990]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03DE",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x828B },
- ["unicodeslot"]=0x2F990, -- 芋
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03DE",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x828B },
+ unicodeslot=0x2F990,
},
[0x2F991]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03DF",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x829D },
- ["unicodeslot"]=0x2F991, -- 芝
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03DF",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x829D },
+ unicodeslot=0x2F991,
},
[0x2F992]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03E0",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x52B3 },
- ["unicodeslot"]=0x2F992, -- 劳
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03E0",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x52B3 },
+ unicodeslot=0x2F992,
},
[0x2F993]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03E1",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x82B1 },
- ["unicodeslot"]=0x2F993, -- 花
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03E1",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x82B1 },
+ unicodeslot=0x2F993,
},
[0x2F994]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03E2",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x82B3 },
- ["unicodeslot"]=0x2F994, -- 芳
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03E2",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x82B3 },
+ unicodeslot=0x2F994,
},
[0x2F995]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03E3",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x82BD },
- ["unicodeslot"]=0x2F995, -- 芽
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03E3",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x82BD },
+ unicodeslot=0x2F995,
},
[0x2F996]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03E4",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x82E6 },
- ["unicodeslot"]=0x2F996, -- 苦
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03E4",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x82E6 },
+ unicodeslot=0x2F996,
},
[0x2F997]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03E5",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x26B3C },
- ["unicodeslot"]=0x2F997, -- 𦬼
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03E5",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x26B3C },
+ unicodeslot=0x2F997,
},
[0x2F998]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03E6",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x82E5 },
- ["unicodeslot"]=0x2F998, -- 若
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03E6",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x82E5 },
+ unicodeslot=0x2F998,
},
[0x2F999]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03E7",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x831D },
- ["unicodeslot"]=0x2F999, -- 茝
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x03E7",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x831D },
+ unicodeslot=0x2F999,
},
[0x2F99A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0063A",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8363 },
- ["unicodeslot"]=0x2F99A, -- 荣
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0063A",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8363 },
+ unicodeslot=0x2F99A,
},
[0x2F99B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0063B",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x83AD },
- ["unicodeslot"]=0x2F99B, -- 莭
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0063B",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x83AD },
+ unicodeslot=0x2F99B,
},
[0x2F99C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0063C",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8323 },
- ["unicodeslot"]=0x2F99C, -- 茣
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0063C",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8323 },
+ unicodeslot=0x2F99C,
},
[0x2F99D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0063D",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x83BD },
- ["unicodeslot"]=0x2F99D, -- 莽
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0063D",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x83BD },
+ unicodeslot=0x2F99D,
},
[0x2F99E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0063E",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x83E7 },
- ["unicodeslot"]=0x2F99E, -- 菧
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0063E",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x83E7 },
+ unicodeslot=0x2F99E,
},
[0x2F99F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0063F",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8457 },
- ["unicodeslot"]=0x2F99F, -- 著
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0063F",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8457 },
+ unicodeslot=0x2F99F,
},
[0x2F9A0]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009A0x0000",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8353 },
- ["unicodeslot"]=0x2F9A0, -- 荓
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009A0x0000",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8353 },
+ unicodeslot=0x2F9A0,
},
[0x2F9A1]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009A0x0001",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x83CA },
- ["unicodeslot"]=0x2F9A1, -- 菊
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009A0x0001",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x83CA },
+ unicodeslot=0x2F9A1,
},
[0x2F9A2]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009A0x0002",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x83CC },
- ["unicodeslot"]=0x2F9A2, -- 菌
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009A0x0002",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x83CC },
+ unicodeslot=0x2F9A2,
},
[0x2F9A3]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009A0x0003",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x83DC },
- ["unicodeslot"]=0x2F9A3, -- 菜
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009A0x0003",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x83DC },
+ unicodeslot=0x2F9A3,
},
[0x2F9A4]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009A0x0004",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x26C36 },
- ["unicodeslot"]=0x2F9A4, -- 𦰶
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009A0x0004",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x26C36 },
+ unicodeslot=0x2F9A4,
},
[0x2F9A5]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009A0x0005",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x26D6B },
- ["unicodeslot"]=0x2F9A5, -- 𦵫
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009A0x0005",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x26D6B },
+ unicodeslot=0x2F9A5,
},
[0x2F9A6]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009A0x0006",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x26CD5 },
- ["unicodeslot"]=0x2F9A6, -- 𦳕
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009A0x0006",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x26CD5 },
+ unicodeslot=0x2F9A6,
},
[0x2F9A7]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009A0x0007",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x452B },
- ["unicodeslot"]=0x2F9A7, -- 䔫
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009A0x0007",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x452B },
+ unicodeslot=0x2F9A7,
},
[0x2F9A8]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009A0x0008",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x84F1 },
- ["unicodeslot"]=0x2F9A8, -- 蓱
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009A0x0008",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x84F1 },
+ unicodeslot=0x2F9A8,
},
[0x2F9A9]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009A0x0009",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x84F3 },
- ["unicodeslot"]=0x2F9A9, -- 蓳
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009A0x0009",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x84F3 },
+ unicodeslot=0x2F9A9,
},
[0x2F9AA]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009AA",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8516 },
- ["unicodeslot"]=0x2F9AA, -- 蔖
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009AA",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8516 },
+ unicodeslot=0x2F9AA,
},
[0x2F9AB]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009AB",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x273CA },
- ["unicodeslot"]=0x2F9AB, -- 𧏊
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009AB",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x273CA },
+ unicodeslot=0x2F9AB,
},
[0x2F9AC]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009AC",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8564 },
- ["unicodeslot"]=0x2F9AC, -- 蕤
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009AC",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8564 },
+ unicodeslot=0x2F9AC,
},
[0x2F9AD]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009AD",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x26F2C },
- ["unicodeslot"]=0x2F9AD, -- 𦼬
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009AD",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x26F2C },
+ unicodeslot=0x2F9AD,
},
[0x2F9AE]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009AE",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x455D },
- ["unicodeslot"]=0x2F9AE, -- 䕝
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009AE",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x455D },
+ unicodeslot=0x2F9AE,
},
[0x2F9AF]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009AF",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x4561 },
- ["unicodeslot"]=0x2F9AF, -- 䕡
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009AF",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x4561 },
+ unicodeslot=0x2F9AF,
},
[0x2F9B0]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009B0x0000",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x26FB1 },
- ["unicodeslot"]=0x2F9B0, -- 𦾱
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009B0x0000",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x26FB1 },
+ unicodeslot=0x2F9B0,
},
[0x2F9B1]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009B0x0001",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x270D2 },
- ["unicodeslot"]=0x2F9B1, -- 𧃒
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009B0x0001",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x270D2 },
+ unicodeslot=0x2F9B1,
},
[0x2F9B2]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009B0x0002",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x456B },
- ["unicodeslot"]=0x2F9B2, -- 䕫
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009B0x0002",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x456B },
+ unicodeslot=0x2F9B2,
},
[0x2F9B3]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009B0x0003",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8650 },
- ["unicodeslot"]=0x2F9B3, -- 虐
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009B0x0003",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8650 },
+ unicodeslot=0x2F9B3,
},
[0x2F9B4]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009B0x0004",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x865C },
- ["unicodeslot"]=0x2F9B4, -- 虜
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009B0x0004",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x865C },
+ unicodeslot=0x2F9B4,
},
[0x2F9B5]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009B0x0005",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8667 },
- ["unicodeslot"]=0x2F9B5, -- 虧
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009B0x0005",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8667 },
+ unicodeslot=0x2F9B5,
},
[0x2F9B6]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009B0x0006",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8669 },
- ["unicodeslot"]=0x2F9B6, -- 虩
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009B0x0006",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8669 },
+ unicodeslot=0x2F9B6,
},
[0x2F9B7]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009B0x0007",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x86A9 },
- ["unicodeslot"]=0x2F9B7, -- 蚩
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009B0x0007",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x86A9 },
+ unicodeslot=0x2F9B7,
},
[0x2F9B8]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009B0x0008",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8688 },
- ["unicodeslot"]=0x2F9B8, -- 蚈
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009B0x0008",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8688 },
+ unicodeslot=0x2F9B8,
},
[0x2F9B9]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009B0x0009",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x870E },
- ["unicodeslot"]=0x2F9B9, -- 蜎
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009B0x0009",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x870E },
+ unicodeslot=0x2F9B9,
},
[0x2F9BA]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009BA",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x86E2 },
- ["unicodeslot"]=0x2F9BA, -- 蛢
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009BA",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x86E2 },
+ unicodeslot=0x2F9BA,
},
[0x2F9BB]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009BB",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8779 },
- ["unicodeslot"]=0x2F9BB, -- 蝹
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009BB",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8779 },
+ unicodeslot=0x2F9BB,
},
[0x2F9BC]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009BC",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8728 },
- ["unicodeslot"]=0x2F9BC, -- 蜨
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009BC",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8728 },
+ unicodeslot=0x2F9BC,
},
[0x2F9BD]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009BD",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x876B },
- ["unicodeslot"]=0x2F9BD, -- 蝫
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009BD",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x876B },
+ unicodeslot=0x2F9BD,
},
[0x2F9BE]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009BE",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8786 },
- ["unicodeslot"]=0x2F9BE, -- 螆
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009BE",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8786 },
+ unicodeslot=0x2F9BE,
},
[0x2F9BF]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009BF",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x45D7 },
- ["unicodeslot"]=0x2F9BF, -- 䗗
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009BF",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x45D7 },
+ unicodeslot=0x2F9BF,
},
[0x2F9C0]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009C0x0000",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x87E1 },
- ["unicodeslot"]=0x2F9C0, -- 蟡
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009C0x0000",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x87E1 },
+ unicodeslot=0x2F9C0,
},
[0x2F9C1]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009C0x0001",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8801 },
- ["unicodeslot"]=0x2F9C1, -- 蠁
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009C0x0001",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8801 },
+ unicodeslot=0x2F9C1,
},
[0x2F9C2]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009C0x0002",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x45F9 },
- ["unicodeslot"]=0x2F9C2, -- 䗹
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009C0x0002",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x45F9 },
+ unicodeslot=0x2F9C2,
},
[0x2F9C3]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009C0x0003",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8860 },
- ["unicodeslot"]=0x2F9C3, -- 衠
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009C0x0003",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8860 },
+ unicodeslot=0x2F9C3,
},
[0x2F9C4]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009C0x0004",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8863 },
- ["unicodeslot"]=0x2F9C4, -- 衣
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009C0x0004",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8863 },
+ unicodeslot=0x2F9C4,
},
[0x2F9C5]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009C0x0005",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x27667 },
- ["unicodeslot"]=0x2F9C5, -- 𧙧
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009C0x0005",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x27667 },
+ unicodeslot=0x2F9C5,
},
[0x2F9C6]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009C0x0006",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x88D7 },
- ["unicodeslot"]=0x2F9C6, -- 裗
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009C0x0006",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x88D7 },
+ unicodeslot=0x2F9C6,
},
[0x2F9C7]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009C0x0007",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x88DE },
- ["unicodeslot"]=0x2F9C7, -- 裞
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009C0x0007",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x88DE },
+ unicodeslot=0x2F9C7,
},
[0x2F9C8]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009C0x0008",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x4635 },
- ["unicodeslot"]=0x2F9C8, -- 䘵
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009C0x0008",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x4635 },
+ unicodeslot=0x2F9C8,
},
[0x2F9C9]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009C0x0009",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x88FA },
- ["unicodeslot"]=0x2F9C9, -- 裺
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009C0x0009",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x88FA },
+ unicodeslot=0x2F9C9,
},
[0x2F9CA]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009CA",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x34BB },
- ["unicodeslot"]=0x2F9CA, -- 㒻
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009CA",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x34BB },
+ unicodeslot=0x2F9CA,
},
[0x2F9CB]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009CB",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x278AE },
- ["unicodeslot"]=0x2F9CB, -- 𧢮
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009CB",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x278AE },
+ unicodeslot=0x2F9CB,
},
[0x2F9CC]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009CC",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x27966 },
- ["unicodeslot"]=0x2F9CC, -- 𧥦
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009CC",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x27966 },
+ unicodeslot=0x2F9CC,
},
[0x2F9CD]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009CD",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x46BE },
- ["unicodeslot"]=0x2F9CD, -- 䚾
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009CD",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x46BE },
+ unicodeslot=0x2F9CD,
},
[0x2F9CE]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009CE",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x46C7 },
- ["unicodeslot"]=0x2F9CE, -- 䛇
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009CE",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x46C7 },
+ unicodeslot=0x2F9CE,
},
[0x2F9CF]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009CF",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8AA0 },
- ["unicodeslot"]=0x2F9CF, -- 誠
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009CF",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8AA0 },
+ unicodeslot=0x2F9CF,
},
[0x2F9D0]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009D0x0000",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8AED },
- ["unicodeslot"]=0x2F9D0, -- 諭
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009D0x0000",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8AED },
+ unicodeslot=0x2F9D0,
},
[0x2F9D1]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009D0x0001",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8B8A },
- ["unicodeslot"]=0x2F9D1, -- 變
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009D0x0001",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8B8A },
+ unicodeslot=0x2F9D1,
},
[0x2F9D2]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009D0x0002",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8C55 },
- ["unicodeslot"]=0x2F9D2, -- 豕
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009D0x0002",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8C55 },
+ unicodeslot=0x2F9D2,
},
[0x2F9D3]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009D0x0003",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x27CA8 },
- ["unicodeslot"]=0x2F9D3, -- 𧲨
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009D0x0003",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x27CA8 },
+ unicodeslot=0x2F9D3,
},
[0x2F9D4]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009D0x0004",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8CAB },
- ["unicodeslot"]=0x2F9D4, -- 貫
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009D0x0004",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8CAB },
+ unicodeslot=0x2F9D4,
},
[0x2F9D5]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009D0x0005",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8CC1 },
- ["unicodeslot"]=0x2F9D5, -- 賁
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009D0x0005",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8CC1 },
+ unicodeslot=0x2F9D5,
},
[0x2F9D6]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009D0x0006",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8D1B },
- ["unicodeslot"]=0x2F9D6, -- 贛
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009D0x0006",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8D1B },
+ unicodeslot=0x2F9D6,
},
[0x2F9D7]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009D0x0007",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8D77 },
- ["unicodeslot"]=0x2F9D7, -- 起
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009D0x0007",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8D77 },
+ unicodeslot=0x2F9D7,
},
[0x2F9D8]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009D0x0008",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x27F2F },
- ["unicodeslot"]=0x2F9D8, -- 𧼯
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009D0x0008",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x27F2F },
+ unicodeslot=0x2F9D8,
},
[0x2F9D9]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009D0x0009",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x20804 },
- ["unicodeslot"]=0x2F9D9, -- 𠠄
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009D0x0009",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x20804 },
+ unicodeslot=0x2F9D9,
},
[0x2F9DA]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009DA",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8DCB },
- ["unicodeslot"]=0x2F9DA, -- 跋
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009DA",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8DCB },
+ unicodeslot=0x2F9DA,
},
[0x2F9DB]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009DB",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8DBC },
- ["unicodeslot"]=0x2F9DB, -- 趼
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009DB",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8DBC },
+ unicodeslot=0x2F9DB,
},
[0x2F9DC]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009DC",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8DF0 },
- ["unicodeslot"]=0x2F9DC, -- 跰
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009DC",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8DF0 },
+ unicodeslot=0x2F9DC,
},
[0x2F9DD]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009DD",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x208DE },
- ["unicodeslot"]=0x2F9DD, -- 𠣞
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009DD",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x208DE },
+ unicodeslot=0x2F9DD,
},
[0x2F9DE]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009DE",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8ED4 },
- ["unicodeslot"]=0x2F9DE, -- 軔
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009DE",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8ED4 },
+ unicodeslot=0x2F9DE,
},
[0x2F9DF]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009DF",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x8F38 },
- ["unicodeslot"]=0x2F9DF, -- 輸
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009DF",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x8F38 },
+ unicodeslot=0x2F9DF,
},
[0x2F9E0]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009E0x0000",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x285D2 },
- ["unicodeslot"]=0x2F9E0, -- 𨗒
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009E0x0000",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x285D2 },
+ unicodeslot=0x2F9E0,
},
[0x2F9E1]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009E0x0001",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x285ED },
- ["unicodeslot"]=0x2F9E1, -- 𨗭
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009E0x0001",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x285ED },
+ unicodeslot=0x2F9E1,
},
[0x2F9E2]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009E0x0002",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x9094 },
- ["unicodeslot"]=0x2F9E2, -- 邔
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009E0x0002",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x9094 },
+ unicodeslot=0x2F9E2,
},
[0x2F9E3]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009E0x0003",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x90F1 },
- ["unicodeslot"]=0x2F9E3, -- 郱
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009E0x0003",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x90F1 },
+ unicodeslot=0x2F9E3,
},
[0x2F9E4]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009E0x0004",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x9111 },
- ["unicodeslot"]=0x2F9E4, -- 鄑
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009E0x0004",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x9111 },
+ unicodeslot=0x2F9E4,
},
[0x2F9E5]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009E0x0005",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x2872E },
- ["unicodeslot"]=0x2F9E5, -- 𨜮
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009E0x0005",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x2872E },
+ unicodeslot=0x2F9E5,
},
[0x2F9E6]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009E0x0006",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x911B },
- ["unicodeslot"]=0x2F9E6, -- 鄛
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009E0x0006",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x911B },
+ unicodeslot=0x2F9E6,
},
[0x2F9E7]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009E0x0007",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x9238 },
- ["unicodeslot"]=0x2F9E7, -- 鈸
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009E0x0007",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x9238 },
+ unicodeslot=0x2F9E7,
},
[0x2F9E8]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009E0x0008",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x92D7 },
- ["unicodeslot"]=0x2F9E8, -- 鋗
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009E0x0008",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x92D7 },
+ unicodeslot=0x2F9E8,
},
[0x2F9E9]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009E0x0009",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x92D8 },
- ["unicodeslot"]=0x2F9E9, -- 鋘
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009E0x0009",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x92D8 },
+ unicodeslot=0x2F9E9,
},
[0x2F9EA]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009EA",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x927C },
- ["unicodeslot"]=0x2F9EA, -- 鉼
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009EA",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x927C },
+ unicodeslot=0x2F9EA,
},
[0x2F9EB]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009EB",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x93F9 },
- ["unicodeslot"]=0x2F9EB, -- 鏹
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009EB",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x93F9 },
+ unicodeslot=0x2F9EB,
},
[0x2F9EC]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009EC",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x9415 },
- ["unicodeslot"]=0x2F9EC, -- 鐕
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009EC",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x9415 },
+ unicodeslot=0x2F9EC,
},
[0x2F9ED]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009ED",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x28BFA },
- ["unicodeslot"]=0x2F9ED, -- 𨯺
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009ED",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x28BFA },
+ unicodeslot=0x2F9ED,
},
[0x2F9EE]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009EE",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x958B },
- ["unicodeslot"]=0x2F9EE, -- 開
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009EE",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x958B },
+ unicodeslot=0x2F9EE,
},
[0x2F9EF]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009EF",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x4995 },
- ["unicodeslot"]=0x2F9EF, -- 䦕
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009EF",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x4995 },
+ unicodeslot=0x2F9EF,
},
[0x2F9F0]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009F0x0000",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x95B7 },
- ["unicodeslot"]=0x2F9F0, -- 閷
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009F0x0000",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x95B7 },
+ unicodeslot=0x2F9F0,
},
[0x2F9F1]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009F0x0001",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x28D77 },
- ["unicodeslot"]=0x2F9F1, -- 𨵷
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009F0x0001",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x28D77 },
+ unicodeslot=0x2F9F1,
},
[0x2F9F2]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009F0x0002",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x49E6 },
- ["unicodeslot"]=0x2F9F2, -- 䧦
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009F0x0002",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x49E6 },
+ unicodeslot=0x2F9F2,
},
[0x2F9F3]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009F0x0003",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x96C3 },
- ["unicodeslot"]=0x2F9F3, -- 雃
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009F0x0003",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x96C3 },
+ unicodeslot=0x2F9F3,
},
[0x2F9F4]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009F0x0004",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x5DB2 },
- ["unicodeslot"]=0x2F9F4, -- 嶲
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009F0x0004",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x5DB2 },
+ unicodeslot=0x2F9F4,
},
[0x2F9F5]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009F0x0005",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x9723 },
- ["unicodeslot"]=0x2F9F5, -- 霣
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009F0x0005",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x9723 },
+ unicodeslot=0x2F9F5,
},
[0x2F9F6]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009F0x0006",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x29145 },
- ["unicodeslot"]=0x2F9F6, -- 𩅅
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009F0x0006",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x29145 },
+ unicodeslot=0x2F9F6,
},
[0x2F9F7]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009F0x0007",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x2921A },
- ["unicodeslot"]=0x2F9F7, -- 𩈚
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009F0x0007",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x2921A },
+ unicodeslot=0x2F9F7,
},
[0x2F9F8]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009F0x0008",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x4A6E },
- ["unicodeslot"]=0x2F9F8, -- 䩮
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009F0x0008",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x4A6E },
+ unicodeslot=0x2F9F8,
},
[0x2F9F9]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009F0x0009",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x4A76 },
- ["unicodeslot"]=0x2F9F9, -- 䩶
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009F0x0009",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x4A76 },
+ unicodeslot=0x2F9F9,
},
[0x2F9FA]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009FA",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x97E0 },
- ["unicodeslot"]=0x2F9FA, -- 韠
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009FA",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x97E0 },
+ unicodeslot=0x2F9FA,
},
[0x2F9FB]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009FB",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x2940A },
- ["unicodeslot"]=0x2F9FB, -- 𩐊
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009FB",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x2940A },
+ unicodeslot=0x2F9FB,
},
[0x2F9FC]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009FC",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x4AB2 },
- ["unicodeslot"]=0x2F9FC, -- 䪲
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009FC",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x4AB2 },
+ unicodeslot=0x2F9FC,
},
[0x2F9FD]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009FD",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x29496 },
- ["unicodeslot"]=0x2F9FD, -- 𩒖
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009FD",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x29496 },
+ unicodeslot=0x2F9FD,
},
[0x2F9FE]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009FE",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x980B },
- ["unicodeslot"]=0x2F9FE, -- 頋
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009FE",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x980B },
+ unicodeslot=0x2F9FE,
},
[0x2F9FF]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009FF",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x980B },
- ["unicodeslot"]=0x2F9FF, -- 頋
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002F0x0009FF",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x980B },
+ unicodeslot=0x2F9FF,
},
[0x2FA00]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002FA0x0000",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x9829 },
- ["unicodeslot"]=0x2FA00, -- 頩
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002FA0x0000",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x9829 },
+ unicodeslot=0x2FA00,
},
[0x2FA01]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002FA0x0001",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x295B6 },
- ["unicodeslot"]=0x2FA01, -- 𩖶
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002FA0x0001",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x295B6 },
+ unicodeslot=0x2FA01,
},
[0x2FA02]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002FA0x0002",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x98E2 },
- ["unicodeslot"]=0x2FA02, -- 飢
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002FA0x0002",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x98E2 },
+ unicodeslot=0x2FA02,
},
[0x2FA03]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002FA0x0003",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x4B33 },
- ["unicodeslot"]=0x2FA03, -- 䬳
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002FA0x0003",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x4B33 },
+ unicodeslot=0x2FA03,
},
[0x2FA04]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002FA0x0004",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x9929 },
- ["unicodeslot"]=0x2FA04, -- 餩
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002FA0x0004",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x9929 },
+ unicodeslot=0x2FA04,
},
[0x2FA05]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002FA0x0005",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x99A7 },
- ["unicodeslot"]=0x2FA05, -- 馧
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002FA0x0005",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x99A7 },
+ unicodeslot=0x2FA05,
},
[0x2FA06]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002FA0x0006",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x99C2 },
- ["unicodeslot"]=0x2FA06, -- 駂
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002FA0x0006",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x99C2 },
+ unicodeslot=0x2FA06,
},
[0x2FA07]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002FA0x0007",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x99FE },
- ["unicodeslot"]=0x2FA07, -- 駾
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002FA0x0007",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x99FE },
+ unicodeslot=0x2FA07,
},
[0x2FA08]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002FA0x0008",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x4BCE },
- ["unicodeslot"]=0x2FA08, -- 䯎
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002FA0x0008",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x4BCE },
+ unicodeslot=0x2FA08,
},
[0x2FA09]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002FA0x0009",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x29B30 },
- ["unicodeslot"]=0x2FA09, -- 𩬰
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002FA0x0009",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x29B30 },
+ unicodeslot=0x2FA09,
},
[0x2FA0A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002FA0x0000A",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x9B12 },
- ["unicodeslot"]=0x2FA0A, -- 鬒
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002FA0x0000A",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x9B12 },
+ unicodeslot=0x2FA0A,
},
[0x2FA0B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002FA0x0000B",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x9C40 },
- ["unicodeslot"]=0x2FA0B, -- 鱀
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002FA0x0000B",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x9C40 },
+ unicodeslot=0x2FA0B,
},
[0x2FA0C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002FA0x0000C",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x9CFD },
- ["unicodeslot"]=0x2FA0C, -- 鳽
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002FA0x0000C",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x9CFD },
+ unicodeslot=0x2FA0C,
},
[0x2FA0D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002FA0x0000D",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x4CCE },
- ["unicodeslot"]=0x2FA0D, -- 䳎
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002FA0x0000D",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x4CCE },
+ unicodeslot=0x2FA0D,
},
[0x2FA0E]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002FA0x0000E",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x4CED },
- ["unicodeslot"]=0x2FA0E, -- 䳭
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002FA0x0000E",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x4CED },
+ unicodeslot=0x2FA0E,
},
[0x2FA0F]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002FA0x0000F",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x9D67 },
- ["unicodeslot"]=0x2FA0F, -- 鵧
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002FA0x0000F",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x9D67 },
+ unicodeslot=0x2FA0F,
},
[0x2FA10]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002FA0x000A",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x2A0CE },
- ["unicodeslot"]=0x2FA10, -- 𪃎
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002FA0x000A",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x2A0CE },
+ unicodeslot=0x2FA10,
},
[0x2FA11]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002FA0x000B",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x4CF8 },
- ["unicodeslot"]=0x2FA11, -- 䳸
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002FA0x000B",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x4CF8 },
+ unicodeslot=0x2FA11,
},
[0x2FA12]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002FA0x000C",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x2A105 },
- ["unicodeslot"]=0x2FA12, -- 𪄅
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002FA0x000C",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x2A105 },
+ unicodeslot=0x2FA12,
},
[0x2FA13]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002FA0x000D",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x2A20E },
- ["unicodeslot"]=0x2FA13, -- 𪈎
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002FA0x000D",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x2A20E },
+ unicodeslot=0x2FA13,
},
[0x2FA14]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002FA0x000E",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x2A291 },
- ["unicodeslot"]=0x2FA14, -- 𪊑
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002FA0x000E",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x2A291 },
+ unicodeslot=0x2FA14,
},
[0x2FA15]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002FA0x000F",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x9EBB },
- ["unicodeslot"]=0x2FA15, -- 麻
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002FA0x000F",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x9EBB },
+ unicodeslot=0x2FA15,
},
[0x2FA16]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002FA0x0010",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x4D56 },
- ["unicodeslot"]=0x2FA16, -- 䵖
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002FA0x0010",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x4D56 },
+ unicodeslot=0x2FA16,
},
[0x2FA17]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002FA0x0011",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x9EF9 },
- ["unicodeslot"]=0x2FA17, -- 黹
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002FA0x0011",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x9EF9 },
+ unicodeslot=0x2FA17,
},
[0x2FA18]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002FA0x0012",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x9EFE },
- ["unicodeslot"]=0x2FA18, -- 黾
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002FA0x0012",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x9EFE },
+ unicodeslot=0x2FA18,
},
[0x2FA19]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002FA0x0013",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x9F05 },
- ["unicodeslot"]=0x2FA19, -- 鼅
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002FA0x0013",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x9F05 },
+ unicodeslot=0x2FA19,
},
[0x2FA1A]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002FA0x0001A",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x9F0F },
- ["unicodeslot"]=0x2FA1A, -- 鼏
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002FA0x0001A",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x9F0F },
+ unicodeslot=0x2FA1A,
},
[0x2FA1B]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002FA0x0001B",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x9F16 },
- ["unicodeslot"]=0x2FA1B, -- 鼖
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002FA0x0001B",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x9F16 },
+ unicodeslot=0x2FA1B,
},
[0x2FA1C]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002FA0x0001C",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x9F3B },
- ["unicodeslot"]=0x2FA1C, -- 鼻
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002FA0x0001C",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x9F3B },
+ unicodeslot=0x2FA1C,
},
[0x2FA1D]={
- ["category"]="lo",
- ["cjkwd"]="w",
- ["description"]="CJK COMPATIBILITY IDEOGRAPH-0x0002FA0x0001D",
- ["linebreak"]="id",
- ["specials"]={ "char", 0x2A600 },
- ["unicodeslot"]=0x2FA1D, -- 𪘀
+ category="lo",
+ cjkwd="w",
+ description="CJK COMPATIBILITY IDEOGRAPH-0x0002FA0x0001D",
+ direction="l",
+ linebreak="id",
+ specials={ "char", 0x2A600 },
+ unicodeslot=0x2FA1D,
},
[0xE0001]={
- ["category"]="cf",
- ["description"]="LANGUAGE TAG",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0001, -- 󠀁
+ category="cf",
+ description="LANGUAGE TAG",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0001,
},
[0xE0020]={
- ["category"]="cf",
- ["description"]="TAG SPACE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0020, -- 󠀠
+ category="cf",
+ description="TAG SPACE",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0020,
},
[0xE0021]={
- ["category"]="cf",
- ["description"]="TAG EXCLAMATION MARK",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0021, -- 󠀡
+ category="cf",
+ description="TAG EXCLAMATION MARK",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0021,
},
[0xE0022]={
- ["category"]="cf",
- ["description"]="TAG QUOTATION MARK",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0022, -- 󠀢
+ category="cf",
+ description="TAG QUOTATION MARK",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0022,
},
[0xE0023]={
- ["category"]="cf",
- ["description"]="TAG NUMBER SIGN",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0023, -- 󠀣
+ category="cf",
+ description="TAG NUMBER SIGN",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0023,
},
[0xE0024]={
- ["category"]="cf",
- ["description"]="TAG DOLLAR SIGN",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0024, -- 󠀤
+ category="cf",
+ description="TAG DOLLAR SIGN",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0024,
},
[0xE0025]={
- ["category"]="cf",
- ["description"]="TAG PERCENT SIGN",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0025, -- 󠀥
+ category="cf",
+ description="TAG PERCENT SIGN",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0025,
},
[0xE0026]={
- ["category"]="cf",
- ["description"]="TAG AMPERSAND",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0026, -- 󠀦
+ category="cf",
+ description="TAG AMPERSAND",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0026,
},
[0xE0027]={
- ["category"]="cf",
- ["description"]="TAG APOSTROPHE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0027, -- 󠀧
+ category="cf",
+ description="TAG APOSTROPHE",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0027,
},
[0xE0028]={
- ["category"]="cf",
- ["description"]="TAG LEFT PARENTHESIS",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0028, -- 󠀨
+ category="cf",
+ description="TAG LEFT PARENTHESIS",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0028,
},
[0xE0029]={
- ["category"]="cf",
- ["description"]="TAG RIGHT PARENTHESIS",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0029, -- 󠀩
+ category="cf",
+ description="TAG RIGHT PARENTHESIS",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0029,
},
[0xE002A]={
- ["category"]="cf",
- ["description"]="TAG ASTERISK",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE002A, -- 󠀪
+ category="cf",
+ description="TAG ASTERISK",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE002A,
},
[0xE002B]={
- ["category"]="cf",
- ["description"]="TAG PLUS SIGN",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE002B, -- 󠀫
+ category="cf",
+ description="TAG PLUS SIGN",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE002B,
},
[0xE002C]={
- ["category"]="cf",
- ["description"]="TAG COMMA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE002C, -- 󠀬
+ category="cf",
+ description="TAG COMMA",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE002C,
},
[0xE002D]={
- ["category"]="cf",
- ["description"]="TAG HYPHEN-MINUS",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE002D, -- 󠀭
+ category="cf",
+ description="TAG HYPHEN-MINUS",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE002D,
},
[0xE002E]={
- ["category"]="cf",
- ["description"]="TAG FULL STOP",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE002E, -- 󠀮
+ category="cf",
+ description="TAG FULL STOP",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE002E,
},
[0xE002F]={
- ["category"]="cf",
- ["description"]="TAG SOLIDUS",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE002F, -- 󠀯
+ category="cf",
+ description="TAG SOLIDUS",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE002F,
},
[0xE0030]={
- ["category"]="cf",
- ["description"]="TAG DIGIT ZERO",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0030, -- 󠀰
+ category="cf",
+ description="TAG DIGIT ZERO",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0030,
},
[0xE0031]={
- ["category"]="cf",
- ["description"]="TAG DIGIT ONE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0031, -- 󠀱
+ category="cf",
+ description="TAG DIGIT ONE",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0031,
},
[0xE0032]={
- ["category"]="cf",
- ["description"]="TAG DIGIT TWO",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0032, -- 󠀲
+ category="cf",
+ description="TAG DIGIT TWO",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0032,
},
[0xE0033]={
- ["category"]="cf",
- ["description"]="TAG DIGIT THREE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0033, -- 󠀳
+ category="cf",
+ description="TAG DIGIT THREE",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0033,
},
[0xE0034]={
- ["category"]="cf",
- ["description"]="TAG DIGIT FOUR",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0034, -- 󠀴
+ category="cf",
+ description="TAG DIGIT FOUR",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0034,
},
[0xE0035]={
- ["category"]="cf",
- ["description"]="TAG DIGIT FIVE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0035, -- 󠀵
+ category="cf",
+ description="TAG DIGIT FIVE",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0035,
},
[0xE0036]={
- ["category"]="cf",
- ["description"]="TAG DIGIT SIX",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0036, -- 󠀶
+ category="cf",
+ description="TAG DIGIT SIX",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0036,
},
[0xE0037]={
- ["category"]="cf",
- ["description"]="TAG DIGIT SEVEN",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0037, -- 󠀷
+ category="cf",
+ description="TAG DIGIT SEVEN",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0037,
},
[0xE0038]={
- ["category"]="cf",
- ["description"]="TAG DIGIT EIGHT",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0038, -- 󠀸
+ category="cf",
+ description="TAG DIGIT EIGHT",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0038,
},
[0xE0039]={
- ["category"]="cf",
- ["description"]="TAG DIGIT NINE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0039, -- 󠀹
+ category="cf",
+ description="TAG DIGIT NINE",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0039,
},
[0xE003A]={
- ["category"]="cf",
- ["description"]="TAG COLON",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE003A, -- 󠀺
+ category="cf",
+ description="TAG COLON",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE003A,
},
[0xE003B]={
- ["category"]="cf",
- ["description"]="TAG SEMICOLON",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE003B, -- 󠀻
+ category="cf",
+ description="TAG SEMICOLON",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE003B,
},
[0xE003C]={
- ["category"]="cf",
- ["description"]="TAG LESS-THAN SIGN",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE003C, -- 󠀼
+ category="cf",
+ description="TAG LESS-THAN SIGN",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE003C,
},
[0xE003D]={
- ["category"]="cf",
- ["description"]="TAG EQUALS SIGN",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE003D, -- 󠀽
+ category="cf",
+ description="TAG EQUALS SIGN",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE003D,
},
[0xE003E]={
- ["category"]="cf",
- ["description"]="TAG GREATER-THAN SIGN",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE003E, -- 󠀾
+ category="cf",
+ description="TAG GREATER-THAN SIGN",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE003E,
},
[0xE003F]={
- ["category"]="cf",
- ["description"]="TAG QUESTION MARK",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE003F, -- 󠀿
+ category="cf",
+ description="TAG QUESTION MARK",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE003F,
},
[0xE0040]={
- ["category"]="cf",
- ["description"]="TAG COMMERCIAL AT",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0040, -- 󠁀
+ category="cf",
+ description="TAG COMMERCIAL AT",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0040,
},
[0xE0041]={
- ["category"]="cf",
- ["description"]="TAG LATIN CAPITAL LETTER A",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0041, -- 󠁁
+ category="cf",
+ description="TAG LATIN CAPITAL LETTER A",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0041,
},
[0xE0042]={
- ["category"]="cf",
- ["description"]="TAG LATIN CAPITAL LETTER B",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0042, -- 󠁂
+ category="cf",
+ description="TAG LATIN CAPITAL LETTER B",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0042,
},
[0xE0043]={
- ["category"]="cf",
- ["description"]="TAG LATIN CAPITAL LETTER C",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0043, -- 󠁃
+ category="cf",
+ description="TAG LATIN CAPITAL LETTER C",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0043,
},
[0xE0044]={
- ["category"]="cf",
- ["description"]="TAG LATIN CAPITAL LETTER D",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0044, -- 󠁄
+ category="cf",
+ description="TAG LATIN CAPITAL LETTER D",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0044,
},
[0xE0045]={
- ["category"]="cf",
- ["description"]="TAG LATIN CAPITAL LETTER E",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0045, -- 󠁅
+ category="cf",
+ description="TAG LATIN CAPITAL LETTER E",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0045,
},
[0xE0046]={
- ["category"]="cf",
- ["description"]="TAG LATIN CAPITAL LETTER F",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0046, -- 󠁆
+ category="cf",
+ description="TAG LATIN CAPITAL LETTER F",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0046,
},
[0xE0047]={
- ["category"]="cf",
- ["description"]="TAG LATIN CAPITAL LETTER G",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0047, -- 󠁇
+ category="cf",
+ description="TAG LATIN CAPITAL LETTER G",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0047,
},
[0xE0048]={
- ["category"]="cf",
- ["description"]="TAG LATIN CAPITAL LETTER H",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0048, -- 󠁈
+ category="cf",
+ description="TAG LATIN CAPITAL LETTER H",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0048,
},
[0xE0049]={
- ["category"]="cf",
- ["description"]="TAG LATIN CAPITAL LETTER I",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0049, -- 󠁉
+ category="cf",
+ description="TAG LATIN CAPITAL LETTER I",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0049,
},
[0xE004A]={
- ["category"]="cf",
- ["description"]="TAG LATIN CAPITAL LETTER J",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE004A, -- 󠁊
+ category="cf",
+ description="TAG LATIN CAPITAL LETTER J",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE004A,
},
[0xE004B]={
- ["category"]="cf",
- ["description"]="TAG LATIN CAPITAL LETTER K",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE004B, -- 󠁋
+ category="cf",
+ description="TAG LATIN CAPITAL LETTER K",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE004B,
},
[0xE004C]={
- ["category"]="cf",
- ["description"]="TAG LATIN CAPITAL LETTER L",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE004C, -- 󠁌
+ category="cf",
+ description="TAG LATIN CAPITAL LETTER L",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE004C,
},
[0xE004D]={
- ["category"]="cf",
- ["description"]="TAG LATIN CAPITAL LETTER M",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE004D, -- 󠁍
+ category="cf",
+ description="TAG LATIN CAPITAL LETTER M",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE004D,
},
[0xE004E]={
- ["category"]="cf",
- ["description"]="TAG LATIN CAPITAL LETTER N",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE004E, -- 󠁎
+ category="cf",
+ description="TAG LATIN CAPITAL LETTER N",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE004E,
},
[0xE004F]={
- ["category"]="cf",
- ["description"]="TAG LATIN CAPITAL LETTER O",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE004F, -- 󠁏
+ category="cf",
+ description="TAG LATIN CAPITAL LETTER O",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE004F,
},
[0xE0050]={
- ["category"]="cf",
- ["description"]="TAG LATIN CAPITAL LETTER P",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0050, -- 󠁐
+ category="cf",
+ description="TAG LATIN CAPITAL LETTER P",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0050,
},
[0xE0051]={
- ["category"]="cf",
- ["description"]="TAG LATIN CAPITAL LETTER Q",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0051, -- 󠁑
+ category="cf",
+ description="TAG LATIN CAPITAL LETTER Q",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0051,
},
[0xE0052]={
- ["category"]="cf",
- ["description"]="TAG LATIN CAPITAL LETTER R",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0052, -- 󠁒
+ category="cf",
+ description="TAG LATIN CAPITAL LETTER R",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0052,
},
[0xE0053]={
- ["category"]="cf",
- ["description"]="TAG LATIN CAPITAL LETTER S",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0053, -- 󠁓
+ category="cf",
+ description="TAG LATIN CAPITAL LETTER S",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0053,
},
[0xE0054]={
- ["category"]="cf",
- ["description"]="TAG LATIN CAPITAL LETTER T",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0054, -- 󠁔
+ category="cf",
+ description="TAG LATIN CAPITAL LETTER T",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0054,
},
[0xE0055]={
- ["category"]="cf",
- ["description"]="TAG LATIN CAPITAL LETTER U",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0055, -- 󠁕
+ category="cf",
+ description="TAG LATIN CAPITAL LETTER U",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0055,
},
[0xE0056]={
- ["category"]="cf",
- ["description"]="TAG LATIN CAPITAL LETTER V",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0056, -- 󠁖
+ category="cf",
+ description="TAG LATIN CAPITAL LETTER V",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0056,
},
[0xE0057]={
- ["category"]="cf",
- ["description"]="TAG LATIN CAPITAL LETTER W",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0057, -- 󠁗
+ category="cf",
+ description="TAG LATIN CAPITAL LETTER W",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0057,
},
[0xE0058]={
- ["category"]="cf",
- ["description"]="TAG LATIN CAPITAL LETTER X",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0058, -- 󠁘
+ category="cf",
+ description="TAG LATIN CAPITAL LETTER X",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0058,
},
[0xE0059]={
- ["category"]="cf",
- ["description"]="TAG LATIN CAPITAL LETTER Y",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0059, -- 󠁙
+ category="cf",
+ description="TAG LATIN CAPITAL LETTER Y",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0059,
},
[0xE005A]={
- ["category"]="cf",
- ["description"]="TAG LATIN CAPITAL LETTER Z",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE005A, -- 󠁚
+ category="cf",
+ description="TAG LATIN CAPITAL LETTER Z",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE005A,
},
[0xE005B]={
- ["category"]="cf",
- ["description"]="TAG LEFT SQUARE BRACKET",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE005B, -- 󠁛
+ category="cf",
+ description="TAG LEFT SQUARE BRACKET",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE005B,
},
[0xE005C]={
- ["category"]="cf",
- ["description"]="TAG REVERSE SOLIDUS",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE005C, -- 󠁜
+ category="cf",
+ description="TAG REVERSE SOLIDUS",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE005C,
},
[0xE005D]={
- ["category"]="cf",
- ["description"]="TAG RIGHT SQUARE BRACKET",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE005D, -- 󠁝
+ category="cf",
+ description="TAG RIGHT SQUARE BRACKET",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE005D,
},
[0xE005E]={
- ["category"]="cf",
- ["description"]="TAG CIRCUMFLEX ACCENT",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE005E, -- 󠁞
+ category="cf",
+ description="TAG CIRCUMFLEX ACCENT",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE005E,
},
[0xE005F]={
- ["category"]="cf",
- ["description"]="TAG LOW LINE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE005F, -- 󠁟
+ category="cf",
+ description="TAG LOW LINE",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE005F,
},
[0xE0060]={
- ["category"]="cf",
- ["description"]="TAG GRAVE ACCENT",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0060, -- 󠁠
+ category="cf",
+ description="TAG GRAVE ACCENT",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0060,
},
[0xE0061]={
- ["category"]="cf",
- ["description"]="TAG LATIN SMALL LETTER A",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0061, -- 󠁡
+ category="cf",
+ description="TAG LATIN SMALL LETTER A",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0061,
},
[0xE0062]={
- ["category"]="cf",
- ["description"]="TAG LATIN SMALL LETTER B",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0062, -- 󠁢
+ category="cf",
+ description="TAG LATIN SMALL LETTER B",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0062,
},
[0xE0063]={
- ["category"]="cf",
- ["description"]="TAG LATIN SMALL LETTER C",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0063, -- 󠁣
+ category="cf",
+ description="TAG LATIN SMALL LETTER C",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0063,
},
[0xE0064]={
- ["category"]="cf",
- ["description"]="TAG LATIN SMALL LETTER D",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0064, -- 󠁤
+ category="cf",
+ description="TAG LATIN SMALL LETTER D",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0064,
},
[0xE0065]={
- ["category"]="cf",
- ["description"]="TAG LATIN SMALL LETTER E",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0065, -- 󠁥
+ category="cf",
+ description="TAG LATIN SMALL LETTER E",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0065,
},
[0xE0066]={
- ["category"]="cf",
- ["description"]="TAG LATIN SMALL LETTER F",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0066, -- 󠁦
+ category="cf",
+ description="TAG LATIN SMALL LETTER F",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0066,
},
[0xE0067]={
- ["category"]="cf",
- ["description"]="TAG LATIN SMALL LETTER G",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0067, -- 󠁧
+ category="cf",
+ description="TAG LATIN SMALL LETTER G",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0067,
},
[0xE0068]={
- ["category"]="cf",
- ["description"]="TAG LATIN SMALL LETTER H",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0068, -- 󠁨
+ category="cf",
+ description="TAG LATIN SMALL LETTER H",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0068,
},
[0xE0069]={
- ["category"]="cf",
- ["description"]="TAG LATIN SMALL LETTER I",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0069, -- 󠁩
+ category="cf",
+ description="TAG LATIN SMALL LETTER I",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0069,
},
[0xE006A]={
- ["category"]="cf",
- ["description"]="TAG LATIN SMALL LETTER J",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE006A, -- 󠁪
+ category="cf",
+ description="TAG LATIN SMALL LETTER J",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE006A,
},
[0xE006B]={
- ["category"]="cf",
- ["description"]="TAG LATIN SMALL LETTER K",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE006B, -- 󠁫
+ category="cf",
+ description="TAG LATIN SMALL LETTER K",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE006B,
},
[0xE006C]={
- ["category"]="cf",
- ["description"]="TAG LATIN SMALL LETTER L",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE006C, -- 󠁬
+ category="cf",
+ description="TAG LATIN SMALL LETTER L",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE006C,
},
[0xE006D]={
- ["category"]="cf",
- ["description"]="TAG LATIN SMALL LETTER M",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE006D, -- 󠁭
+ category="cf",
+ description="TAG LATIN SMALL LETTER M",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE006D,
},
[0xE006E]={
- ["category"]="cf",
- ["description"]="TAG LATIN SMALL LETTER N",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE006E, -- 󠁮
+ category="cf",
+ description="TAG LATIN SMALL LETTER N",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE006E,
},
[0xE006F]={
- ["category"]="cf",
- ["description"]="TAG LATIN SMALL LETTER O",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE006F, -- 󠁯
+ category="cf",
+ description="TAG LATIN SMALL LETTER O",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE006F,
},
[0xE0070]={
- ["category"]="cf",
- ["description"]="TAG LATIN SMALL LETTER P",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0070, -- 󠁰
+ category="cf",
+ description="TAG LATIN SMALL LETTER P",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0070,
},
[0xE0071]={
- ["category"]="cf",
- ["description"]="TAG LATIN SMALL LETTER Q",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0071, -- 󠁱
+ category="cf",
+ description="TAG LATIN SMALL LETTER Q",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0071,
},
[0xE0072]={
- ["category"]="cf",
- ["description"]="TAG LATIN SMALL LETTER R",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0072, -- 󠁲
+ category="cf",
+ description="TAG LATIN SMALL LETTER R",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0072,
},
[0xE0073]={
- ["category"]="cf",
- ["description"]="TAG LATIN SMALL LETTER S",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0073, -- 󠁳
+ category="cf",
+ description="TAG LATIN SMALL LETTER S",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0073,
},
[0xE0074]={
- ["category"]="cf",
- ["description"]="TAG LATIN SMALL LETTER T",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0074, -- 󠁴
+ category="cf",
+ description="TAG LATIN SMALL LETTER T",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0074,
},
[0xE0075]={
- ["category"]="cf",
- ["description"]="TAG LATIN SMALL LETTER U",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0075, -- 󠁵
+ category="cf",
+ description="TAG LATIN SMALL LETTER U",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0075,
},
[0xE0076]={
- ["category"]="cf",
- ["description"]="TAG LATIN SMALL LETTER V",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0076, -- 󠁶
+ category="cf",
+ description="TAG LATIN SMALL LETTER V",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0076,
},
[0xE0077]={
- ["category"]="cf",
- ["description"]="TAG LATIN SMALL LETTER W",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0077, -- 󠁷
+ category="cf",
+ description="TAG LATIN SMALL LETTER W",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0077,
},
[0xE0078]={
- ["category"]="cf",
- ["description"]="TAG LATIN SMALL LETTER X",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0078, -- 󠁸
+ category="cf",
+ description="TAG LATIN SMALL LETTER X",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0078,
},
[0xE0079]={
- ["category"]="cf",
- ["description"]="TAG LATIN SMALL LETTER Y",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0079, -- 󠁹
+ category="cf",
+ description="TAG LATIN SMALL LETTER Y",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE0079,
},
[0xE007A]={
- ["category"]="cf",
- ["description"]="TAG LATIN SMALL LETTER Z",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE007A, -- 󠁺
+ category="cf",
+ description="TAG LATIN SMALL LETTER Z",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE007A,
},
[0xE007B]={
- ["category"]="cf",
- ["description"]="TAG LEFT CURLY BRACKET",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE007B, -- 󠁻
+ category="cf",
+ description="TAG LEFT CURLY BRACKET",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE007B,
},
[0xE007C]={
- ["category"]="cf",
- ["description"]="TAG VERTICAL LINE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE007C, -- 󠁼
+ category="cf",
+ description="TAG VERTICAL LINE",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE007C,
},
[0xE007D]={
- ["category"]="cf",
- ["description"]="TAG RIGHT CURLY BRACKET",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE007D, -- 󠁽
+ category="cf",
+ description="TAG RIGHT CURLY BRACKET",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE007D,
},
[0xE007E]={
- ["category"]="cf",
- ["description"]="TAG TILDE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE007E, -- 󠁾
+ category="cf",
+ description="TAG TILDE",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE007E,
},
[0xE007F]={
- ["category"]="cf",
- ["description"]="CANCEL TAG",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE007F, -- 󠁿
+ category="cf",
+ description="CANCEL TAG",
+ direction="bn",
+ linebreak="cm",
+ unicodeslot=0xE007F,
},
[0xE0100]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0011",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0100, -- 󠄀
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0011",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0100,
},
[0xE0101]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0012",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0101, -- 󠄁
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0012",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0101,
},
[0xE0102]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0013",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0102, -- 󠄂
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0013",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0102,
},
[0xE0103]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0014",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0103, -- 󠄃
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0014",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0103,
},
[0xE0104]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0015",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0104, -- 󠄄
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0015",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0104,
},
[0xE0105]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0016",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0105, -- 󠄅
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0016",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0105,
},
[0xE0106]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0017",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0106, -- 󠄆
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0017",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0106,
},
[0xE0107]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0018",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0107, -- 󠄇
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0018",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0107,
},
[0xE0108]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0019",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0108, -- 󠄈
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0019",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0108,
},
[0xE0109]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x001A",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0109, -- 󠄉
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x001A",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0109,
},
[0xE010A]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x001B",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE010A, -- 󠄊
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x001B",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE010A,
},
[0xE010B]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x001C",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE010B, -- 󠄋
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x001C",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE010B,
},
[0xE010C]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x001D",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE010C, -- 󠄌
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x001D",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE010C,
},
[0xE010D]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x001E",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE010D, -- 󠄍
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x001E",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE010D,
},
[0xE010E]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x001F",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE010E, -- 󠄎
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x001F",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE010E,
},
[0xE010F]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0020",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE010F, -- 󠄏
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0020",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE010F,
},
[0xE0110]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0021",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0110, -- 󠄐
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0021",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0110,
},
[0xE0111]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0022",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0111, -- 󠄑
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0022",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0111,
},
[0xE0112]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0023",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0112, -- 󠄒
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0023",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0112,
},
[0xE0113]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0024",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0113, -- 󠄓
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0024",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0113,
},
[0xE0114]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0025",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0114, -- 󠄔
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0025",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0114,
},
[0xE0115]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0026",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0115, -- 󠄕
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0026",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0115,
},
[0xE0116]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0027",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0116, -- 󠄖
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0027",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0116,
},
[0xE0117]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0028",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0117, -- 󠄗
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0028",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0117,
},
[0xE0118]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0029",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0118, -- 󠄘
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0029",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0118,
},
[0xE0119]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x002A",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0119, -- 󠄙
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x002A",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0119,
},
[0xE011A]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x002B",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE011A, -- 󠄚
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x002B",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE011A,
},
[0xE011B]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x002C",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE011B, -- 󠄛
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x002C",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE011B,
},
[0xE011C]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x002D",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE011C, -- 󠄜
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x002D",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE011C,
},
[0xE011D]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x002E",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE011D, -- 󠄝
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x002E",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE011D,
},
[0xE011E]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x002F",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE011E, -- 󠄞
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x002F",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE011E,
},
[0xE011F]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0030",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE011F, -- 󠄟
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0030",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE011F,
},
[0xE0120]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0031",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0120, -- 󠄠
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0031",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0120,
},
[0xE0121]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0032",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0121, -- 󠄡
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0032",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0121,
},
[0xE0122]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0033",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0122, -- 󠄢
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0033",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0122,
},
[0xE0123]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0034",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0123, -- 󠄣
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0034",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0123,
},
[0xE0124]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0035",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0124, -- 󠄤
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0035",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0124,
},
[0xE0125]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0036",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0125, -- 󠄥
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0036",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0125,
},
[0xE0126]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0037",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0126, -- 󠄦
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0037",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0126,
},
[0xE0127]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0038",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0127, -- 󠄧
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0038",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0127,
},
[0xE0128]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0039",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0128, -- 󠄨
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0039",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0128,
},
[0xE0129]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x003A",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0129, -- 󠄩
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x003A",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0129,
},
[0xE012A]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x003B",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE012A, -- 󠄪
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x003B",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE012A,
},
[0xE012B]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x003C",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE012B, -- 󠄫
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x003C",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE012B,
},
[0xE012C]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x003D",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE012C, -- 󠄬
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x003D",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE012C,
},
[0xE012D]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x003E",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE012D, -- 󠄭
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x003E",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE012D,
},
[0xE012E]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x003F",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE012E, -- 󠄮
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x003F",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE012E,
},
[0xE012F]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0040",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE012F, -- 󠄯
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0040",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE012F,
},
[0xE0130]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0041",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0130, -- 󠄰
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0041",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0130,
},
[0xE0131]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0042",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0131, -- 󠄱
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0042",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0131,
},
[0xE0132]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0043",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0132, -- 󠄲
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0043",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0132,
},
[0xE0133]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0044",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0133, -- 󠄳
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0044",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0133,
},
[0xE0134]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0045",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0134, -- 󠄴
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0045",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0134,
},
[0xE0135]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0046",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0135, -- 󠄵
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0046",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0135,
},
[0xE0136]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0047",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0136, -- 󠄶
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0047",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0136,
},
[0xE0137]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0048",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0137, -- 󠄷
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0048",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0137,
},
[0xE0138]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0049",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0138, -- 󠄸
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0049",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0138,
},
[0xE0139]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x004A",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0139, -- 󠄹
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x004A",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0139,
},
[0xE013A]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x004B",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE013A, -- 󠄺
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x004B",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE013A,
},
[0xE013B]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x004C",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE013B, -- 󠄻
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x004C",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE013B,
},
[0xE013C]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x004D",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE013C, -- 󠄼
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x004D",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE013C,
},
[0xE013D]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x004E",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE013D, -- 󠄽
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x004E",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE013D,
},
[0xE013E]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x004F",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE013E, -- 󠄾
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x004F",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE013E,
},
[0xE013F]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0050",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE013F, -- 󠄿
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0050",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE013F,
},
[0xE0140]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0051",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0140, -- 󠅀
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0051",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0140,
},
[0xE0141]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0052",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0141, -- 󠅁
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0052",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0141,
},
[0xE0142]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0053",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0142, -- 󠅂
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0053",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0142,
},
[0xE0143]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0054",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0143, -- 󠅃
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0054",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0143,
},
[0xE0144]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0055",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0144, -- 󠅄
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0055",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0144,
},
[0xE0145]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0056",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0145, -- 󠅅
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0056",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0145,
},
[0xE0146]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0057",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0146, -- 󠅆
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0057",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0146,
},
[0xE0147]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0058",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0147, -- 󠅇
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0058",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0147,
},
[0xE0148]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0059",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0148, -- 󠅈
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0059",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0148,
},
[0xE0149]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x005A",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0149, -- 󠅉
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x005A",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0149,
},
[0xE014A]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x005B",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE014A, -- 󠅊
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x005B",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE014A,
},
[0xE014B]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x005C",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE014B, -- 󠅋
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x005C",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE014B,
},
[0xE014C]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x005D",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE014C, -- 󠅌
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x005D",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE014C,
},
[0xE014D]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x005E",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE014D, -- 󠅍
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x005E",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE014D,
},
[0xE014E]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x005F",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE014E, -- 󠅎
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x005F",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE014E,
},
[0xE014F]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0060",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE014F, -- 󠅏
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0060",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE014F,
},
[0xE0150]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0061",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0150, -- 󠅐
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0061",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0150,
},
[0xE0151]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0062",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0151, -- 󠅑
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0062",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0151,
},
[0xE0152]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0063",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0152, -- 󠅒
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0063",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0152,
},
[0xE0153]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0064",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0153, -- 󠅓
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0064",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0153,
},
[0xE0154]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0065",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0154, -- 󠅔
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0065",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0154,
},
[0xE0155]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0066",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0155, -- 󠅕
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0066",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0155,
},
[0xE0156]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0067",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0156, -- 󠅖
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0067",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0156,
},
[0xE0157]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0068",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0157, -- 󠅗
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0068",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0157,
},
[0xE0158]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0069",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0158, -- 󠅘
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0069",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0158,
},
[0xE0159]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x006A",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0159, -- 󠅙
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x006A",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0159,
},
[0xE015A]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x006B",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE015A, -- 󠅚
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x006B",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE015A,
},
[0xE015B]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x006C",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE015B, -- 󠅛
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x006C",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE015B,
},
[0xE015C]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x006D",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE015C, -- 󠅜
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x006D",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE015C,
},
[0xE015D]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x006E",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE015D, -- 󠅝
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x006E",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE015D,
},
[0xE015E]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x006F",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE015E, -- 󠅞
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x006F",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE015E,
},
[0xE015F]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0070",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE015F, -- 󠅟
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0070",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE015F,
},
[0xE0160]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0071",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0160, -- 󠅠
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0071",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0160,
},
[0xE0161]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0072",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0161, -- 󠅡
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0072",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0161,
},
[0xE0162]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0073",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0162, -- 󠅢
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0073",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0162,
},
[0xE0163]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0074",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0163, -- 󠅣
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0074",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0163,
},
[0xE0164]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0075",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0164, -- 󠅤
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0075",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0164,
},
[0xE0165]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0076",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0165, -- 󠅥
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0076",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0165,
},
[0xE0166]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0077",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0166, -- 󠅦
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0077",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0166,
},
[0xE0167]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0078",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0167, -- 󠅧
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0078",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0167,
},
[0xE0168]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0079",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0168, -- 󠅨
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0079",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0168,
},
[0xE0169]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x007A",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0169, -- 󠅩
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x007A",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0169,
},
[0xE016A]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x007B",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE016A, -- 󠅪
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x007B",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE016A,
},
[0xE016B]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x007C",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE016B, -- 󠅫
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x007C",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE016B,
},
[0xE016C]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x007D",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE016C, -- 󠅬
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x007D",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE016C,
},
[0xE016D]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x007E",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE016D, -- 󠅭
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x007E",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE016D,
},
[0xE016E]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x007F",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE016E, -- 󠅮
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x007F",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE016E,
},
[0xE016F]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0080",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE016F, -- 󠅯
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0080",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE016F,
},
[0xE0170]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0081",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0170, -- 󠅰
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0081",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0170,
},
[0xE0171]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0082",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0171, -- 󠅱
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0082",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0171,
},
[0xE0172]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0083",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0172, -- 󠅲
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0083",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0172,
},
[0xE0173]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0084",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0173, -- 󠅳
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0084",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0173,
},
[0xE0174]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0085",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0174, -- 󠅴
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0085",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0174,
},
[0xE0175]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0086",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0175, -- 󠅵
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0086",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0175,
},
[0xE0176]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0087",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0176, -- 󠅶
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0087",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0176,
},
[0xE0177]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0088",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0177, -- 󠅷
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0088",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0177,
},
[0xE0178]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0089",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0178, -- 󠅸
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0089",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0178,
},
[0xE0179]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x008A",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0179, -- 󠅹
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x008A",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0179,
},
[0xE017A]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x008B",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE017A, -- 󠅺
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x008B",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE017A,
},
[0xE017B]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x008C",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE017B, -- 󠅻
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x008C",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE017B,
},
[0xE017C]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x008D",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE017C, -- 󠅼
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x008D",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE017C,
},
[0xE017D]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x008E",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE017D, -- 󠅽
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x008E",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE017D,
},
[0xE017E]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x008F",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE017E, -- 󠅾
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x008F",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE017E,
},
[0xE017F]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0090",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE017F, -- 󠅿
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0090",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE017F,
},
[0xE0180]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0091",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0180, -- 󠆀
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0091",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0180,
},
[0xE0181]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0092",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0181, -- 󠆁
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0092",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0181,
},
[0xE0182]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0093",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0182, -- 󠆂
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0093",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0182,
},
[0xE0183]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0094",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0183, -- 󠆃
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0094",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0183,
},
[0xE0184]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0095",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0184, -- 󠆄
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0095",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0184,
},
[0xE0185]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0096",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0185, -- 󠆅
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0096",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0185,
},
[0xE0186]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0097",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0186, -- 󠆆
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0097",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0186,
},
[0xE0187]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0098",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0187, -- 󠆇
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0098",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0187,
},
[0xE0188]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0099",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0188, -- 󠆈
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0099",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0188,
},
[0xE0189]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x009A",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0189, -- 󠆉
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x009A",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0189,
},
[0xE018A]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x009B",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE018A, -- 󠆊
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x009B",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE018A,
},
[0xE018B]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x009C",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE018B, -- 󠆋
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x009C",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE018B,
},
[0xE018C]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x009D",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE018C, -- 󠆌
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x009D",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE018C,
},
[0xE018D]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x009E",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE018D, -- 󠆍
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x009E",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE018D,
},
[0xE018E]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x009F",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE018E, -- 󠆎
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x009F",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE018E,
},
[0xE018F]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00A0",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE018F, -- 󠆏
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00A0",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE018F,
},
[0xE0190]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00A1",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0190, -- 󠆐
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00A1",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0190,
},
[0xE0191]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00A2",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0191, -- 󠆑
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00A2",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0191,
},
[0xE0192]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00A3",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0192, -- 󠆒
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00A3",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0192,
},
[0xE0193]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00A4",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0193, -- 󠆓
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00A4",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0193,
},
[0xE0194]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00A5",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0194, -- 󠆔
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00A5",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0194,
},
[0xE0195]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00A6",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0195, -- 󠆕
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00A6",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0195,
},
[0xE0196]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00A7",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0196, -- 󠆖
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00A7",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0196,
},
[0xE0197]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00A8",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0197, -- 󠆗
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00A8",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0197,
},
[0xE0198]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00A9",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0198, -- 󠆘
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00A9",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0198,
},
[0xE0199]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00AA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE0199, -- 󠆙
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00AA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE0199,
},
[0xE019A]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00AB",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE019A, -- 󠆚
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00AB",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE019A,
},
[0xE019B]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00AC",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE019B, -- 󠆛
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00AC",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE019B,
},
[0xE019C]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00AD",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE019C, -- 󠆜
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00AD",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE019C,
},
[0xE019D]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00AE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE019D, -- 󠆝
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00AE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE019D,
},
[0xE019E]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00AF",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE019E, -- 󠆞
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00AF",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE019E,
},
[0xE019F]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00B0",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE019F, -- 󠆟
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00B0",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE019F,
},
[0xE01A0]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00B1",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01A0, -- 󠆠
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00B1",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01A0,
},
[0xE01A1]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00B2",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01A1, -- 󠆡
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00B2",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01A1,
},
[0xE01A2]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00B3",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01A2, -- 󠆢
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00B3",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01A2,
},
[0xE01A3]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00B4",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01A3, -- 󠆣
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00B4",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01A3,
},
[0xE01A4]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00B5",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01A4, -- 󠆤
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00B5",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01A4,
},
[0xE01A5]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00B6",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01A5, -- 󠆥
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00B6",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01A5,
},
[0xE01A6]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00B7",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01A6, -- 󠆦
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00B7",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01A6,
},
[0xE01A7]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00B8",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01A7, -- 󠆧
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00B8",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01A7,
},
[0xE01A8]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00B9",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01A8, -- 󠆨
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00B9",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01A8,
},
[0xE01A9]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00BA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01A9, -- 󠆩
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00BA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01A9,
},
[0xE01AA]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00BB",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01AA, -- 󠆪
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00BB",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01AA,
},
[0xE01AB]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00BC",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01AB, -- 󠆫
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00BC",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01AB,
},
[0xE01AC]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00BD",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01AC, -- 󠆬
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00BD",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01AC,
},
[0xE01AD]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00BE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01AD, -- 󠆭
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00BE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01AD,
},
[0xE01AE]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00BF",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01AE, -- 󠆮
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00BF",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01AE,
},
[0xE01AF]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00C0",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01AF, -- 󠆯
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00C0",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01AF,
},
[0xE01B0]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00C1",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01B0, -- 󠆰
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00C1",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01B0,
},
[0xE01B1]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00C2",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01B1, -- 󠆱
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00C2",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01B1,
},
[0xE01B2]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00C3",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01B2, -- 󠆲
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00C3",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01B2,
},
[0xE01B3]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00C4",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01B3, -- 󠆳
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00C4",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01B3,
},
[0xE01B4]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00C5",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01B4, -- 󠆴
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00C5",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01B4,
},
[0xE01B5]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00C6",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01B5, -- 󠆵
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00C6",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01B5,
},
[0xE01B6]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00C7",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01B6, -- 󠆶
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00C7",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01B6,
},
[0xE01B7]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00C8",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01B7, -- 󠆷
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00C8",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01B7,
},
[0xE01B8]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00C9",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01B8, -- 󠆸
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00C9",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01B8,
},
[0xE01B9]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00CA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01B9, -- 󠆹
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00CA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01B9,
},
[0xE01BA]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00CB",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01BA, -- 󠆺
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00CB",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01BA,
},
[0xE01BB]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00CC",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01BB, -- 󠆻
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00CC",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01BB,
},
[0xE01BC]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00CD",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01BC, -- 󠆼
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00CD",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01BC,
},
[0xE01BD]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00CE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01BD, -- 󠆽
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00CE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01BD,
},
[0xE01BE]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00CF",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01BE, -- 󠆾
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00CF",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01BE,
},
[0xE01BF]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00D0",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01BF, -- 󠆿
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00D0",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01BF,
},
[0xE01C0]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00D1",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01C0, -- 󠇀
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00D1",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01C0,
},
[0xE01C1]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00D2",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01C1, -- 󠇁
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00D2",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01C1,
},
[0xE01C2]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00D3",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01C2, -- 󠇂
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00D3",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01C2,
},
[0xE01C3]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00D4",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01C3, -- 󠇃
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00D4",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01C3,
},
[0xE01C4]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00D5",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01C4, -- 󠇄
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00D5",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01C4,
},
[0xE01C5]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00D6",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01C5, -- 󠇅
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00D6",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01C5,
},
[0xE01C6]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00D7",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01C6, -- 󠇆
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00D7",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01C6,
},
[0xE01C7]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00D8",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01C7, -- 󠇇
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00D8",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01C7,
},
[0xE01C8]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00D9",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01C8, -- 󠇈
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00D9",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01C8,
},
[0xE01C9]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00DA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01C9, -- 󠇉
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00DA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01C9,
},
[0xE01CA]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00DB",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01CA, -- 󠇊
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00DB",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01CA,
},
[0xE01CB]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00DC",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01CB, -- 󠇋
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00DC",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01CB,
},
[0xE01CC]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00DD",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01CC, -- 󠇌
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00DD",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01CC,
},
[0xE01CD]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00DE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01CD, -- 󠇍
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00DE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01CD,
},
[0xE01CE]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00DF",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01CE, -- 󠇎
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00DF",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01CE,
},
[0xE01CF]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00E0",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01CF, -- 󠇏
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00E0",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01CF,
},
[0xE01D0]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00E1",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01D0, -- 󠇐
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00E1",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01D0,
},
[0xE01D1]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00E2",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01D1, -- 󠇑
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00E2",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01D1,
},
[0xE01D2]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00E3",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01D2, -- 󠇒
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00E3",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01D2,
},
[0xE01D3]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00E4",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01D3, -- 󠇓
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00E4",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01D3,
},
[0xE01D4]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00E5",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01D4, -- 󠇔
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00E5",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01D4,
},
[0xE01D5]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00E6",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01D5, -- 󠇕
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00E6",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01D5,
},
[0xE01D6]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00E7",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01D6, -- 󠇖
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00E7",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01D6,
},
[0xE01D7]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00E8",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01D7, -- 󠇗
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00E8",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01D7,
},
[0xE01D8]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00E9",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01D8, -- 󠇘
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00E9",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01D8,
},
[0xE01D9]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00EA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01D9, -- 󠇙
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00EA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01D9,
},
[0xE01DA]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00EB",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01DA, -- 󠇚
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00EB",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01DA,
},
[0xE01DB]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00EC",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01DB, -- 󠇛
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00EC",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01DB,
},
[0xE01DC]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00ED",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01DC, -- 󠇜
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00ED",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01DC,
},
[0xE01DD]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00EE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01DD, -- 󠇝
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00EE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01DD,
},
[0xE01DE]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00EF",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01DE, -- 󠇞
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00EF",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01DE,
},
[0xE01DF]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00F0",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01DF, -- 󠇟
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00F0",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01DF,
},
[0xE01E0]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00F1",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01E0, -- 󠇠
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00F1",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01E0,
},
[0xE01E1]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00F2",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01E1, -- 󠇡
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00F2",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01E1,
},
[0xE01E2]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00F3",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01E2, -- 󠇢
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00F3",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01E2,
},
[0xE01E3]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00F4",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01E3, -- 󠇣
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00F4",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01E3,
},
[0xE01E4]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00F5",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01E4, -- 󠇤
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00F5",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01E4,
},
[0xE01E5]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00F6",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01E5, -- 󠇥
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00F6",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01E5,
},
[0xE01E6]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00F7",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01E6, -- 󠇦
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00F7",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01E6,
},
[0xE01E7]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00F8",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01E7, -- 󠇧
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00F8",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01E7,
},
[0xE01E8]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00F9",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01E8, -- 󠇨
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00F9",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01E8,
},
[0xE01E9]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00FA",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01E9, -- 󠇩
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00FA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01E9,
},
[0xE01EA]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00FB",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01EA, -- 󠇪
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00FB",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01EA,
},
[0xE01EB]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00FC",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01EB, -- 󠇫
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00FC",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01EB,
},
[0xE01EC]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00FD",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01EC, -- 󠇬
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00FD",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01EC,
},
[0xE01ED]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00FE",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01ED, -- 󠇭
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00FE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01ED,
},
[0xE01EE]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x00FF",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01EE, -- 󠇮
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x00FF",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01EE,
},
[0xE01EF]={
- ["category"]="mn",
- ["cjkwd"]="a",
- ["description"]="VARIATION SELECTOR-0x0100",
- ["linebreak"]="cm",
- ["unicodeslot"]=0xE01EF, -- 󠇯
- },
- [0xF0000]={
- ["category"]="co",
- ["cjkwd"]="a",
- ["description"]="<Plane 0x000F Private Use, First>",
- ["unicodeslot"]=0xF0000, -- 󰀀
- },
- [0xFFFFD]={
- ["category"]="co",
- ["cjkwd"]="a",
- ["description"]="<Plane 0x000F Private Use, Last>",
- ["unicodeslot"]=0xFFFFD, -- 󿿽
- },
- [0x100000]={
- ["category"]="co",
- ["cjkwd"]="a",
- ["description"]="<Plane 0x0010 Private Use, First>",
- ["unicodeslot"]=0x100000, -- 􀀀
- },
- [0x10FFFD]={
- ["category"]="co",
- ["cjkwd"]="a",
- ["description"]="<Plane 0x0010 Private Use, Last>",
- ["unicodeslot"]=0x10FFFD, -- 􏿽
- },
+ category="mn",
+ cjkwd="a",
+ description="VARIATION SELECTOR-0x0100",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0xE01EF,
+ },
+--~ [0xF0000]={
+--~ category="co",
+--~ cjkwd="a",
+--~ description="<Plane 0x000F Private Use, First>",
+--~ direction="l",
+--~ unicodeslot=0xF0000,
+--~ },
+--~ [0xFFFFD]={
+--~ category="co",
+--~ cjkwd="a",
+--~ description="<Plane 0x000F Private Use, Last>",
+--~ direction="l",
+--~ unicodeslot=0xFFFFD,
+--~ },
+--~ [0x100000]={
+--~ category="co",
+--~ cjkwd="a",
+--~ description="<Plane 0x0010 Private Use, First>",
+--~ direction="l",
+--~ unicodeslot=0x100000,
+--~ },
+--~ [0x10FFFD]={
+--~ category="co",
+--~ cjkwd="a",
+--~ description="<Plane 0x0010 Private Use, Last>",
+--~ direction="l",
+--~ unicodeslot=0x10FFFD,
+--~ },
}
diff --git a/Master/texmf-dist/tex/context/base/char-def.tex b/Master/texmf-dist/tex/context/base/char-def.tex
deleted file mode 100644
index 39137241d95..00000000000
--- a/Master/texmf-dist/tex/context/base/char-def.tex
+++ /dev/null
@@ -1,50 +0,0 @@
-%D \module
-%D [ file=char-def,
-%D version=2005.04.25,
-%D title=\CONTEXT\ Lua Macros,
-%D subtitle=Unicode Support,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright=PRAGMA]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{Unicode Support (tables)}
-
-\unprotect
-
-%D An auxiliary macro:
-
-\def\setcclcuc #1 #2 #3 %
- {\global\catcode#1=11 %
- \global\lccode #1=#2 %
- \global\uccode #1=#3 }
-
-\registerctxluafile{char-def}{1.001}
-\registerctxluafile{char-map}{1.001}
-\registerctxluafile{char-syn}{1.001}
-
-%D The codes are stored in the format, so we don't need to reinitialize
-%D them (unless of course we have adapted the table).
-
-\ctxlua{characters.setcodes()}
-
-% \startruntimeluacode
-% \ctxlua{characters.setpdfunicodes()}% pdftounicode mappings can only be done runtime
-% \stopruntimeluacode
-
-%D This is needed for Turkish:
-
-\setcclcuc "201C "201C "201C
-\setcclcuc "201D "201D "201D
-
-\protect \endinput
-
-% \ctxlua{characters.context.show(123)}
-% \ctxlua{characters.context.show(0x7B)}
-% \ctxlua{characters.context.show("7B")}
-
-% \dostepwiserecurse{`A}{`Z}{1}
-% {\ctxlua{characters.context.show(\recurselevel)}}
diff --git a/Master/texmf-dist/tex/context/base/char-syn.lua b/Master/texmf-dist/tex/context/base/char-enc.lua
index a779e1a5848..a4e5ac77d58 100644
--- a/Master/texmf-dist/tex/context/base/char-syn.lua
+++ b/Master/texmf-dist/tex/context/base/char-enc.lua
@@ -8,6 +8,8 @@ if not modules then modules = { } end modules ['char-syn'] = {
-- thanks to tex4ht for these mappings
+characters = characters or { }
+
characters.synonyms = {
angle = 0x2220,
anticlockwise = 0x21BA,
@@ -138,3 +140,24 @@ characters.synonyms = {
uprise = 0x22CF,
Yen = 0x00A5,
}
+
+if not characters.enccodes then
+
+ local enccodes = { }
+
+ for unicode, data in next, characters.data do
+ local encname = data.adobename or data.contextname
+ if encname then
+ enccodes[encname] = unicode
+ end
+ end
+
+ for name, unicode in next, characters.synonyms do
+ if not enccodes[name] then enccodes[name] = unicode end
+ end
+
+ characters.enccodes = enccodes
+
+end
+
+storage.register("characters.enccodes", characters.enccodes, "characters.enccodes")
diff --git a/Master/texmf-dist/tex/context/base/char-enc.mkiv b/Master/texmf-dist/tex/context/base/char-enc.mkiv
new file mode 100644
index 00000000000..9fe9a363bdb
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/char-enc.mkiv
@@ -0,0 +1,18 @@
+%D \module
+%D [ file=char-enc,
+%D version=2006.08.20,
+%D title=\CONTEXT\ Character Support,
+%D subtitle=Encodings,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Character Support / Encodings}
+
+\registerctxluafile{char-enc}{1.001}
+
+\endinput
diff --git a/Master/texmf-dist/tex/context/base/char-ini.lua b/Master/texmf-dist/tex/context/base/char-ini.lua
index f44eb8acacd..ff42d91eeaa 100644
--- a/Master/texmf-dist/tex/context/base/char-ini.lua
+++ b/Master/texmf-dist/tex/context/base/char-ini.lua
@@ -6,21 +6,250 @@ if not modules then modules = { } end modules ['char-ini'] = {
license = "see context related readme files"
}
-utf = utf or unicode.utf
tex = tex or { }
+xml = xml or { }
-local format = string.format
+local utf = unicode.utf8
+
+local utfchar, utfbyte = utf.char, utf.byte
+local concat = table.concat
+local next, tonumber = next, tonumber
+local texsprint, texprint = tex.sprint, tex.print
+local format, lower, gsub, match, gmatch = string.format, string.lower, string.gsub, string.match, string.match, string.gmatch
+
+local ctxcatcodes = tex.ctxcatcodes
+local texcatcodes = tex.texcatcodes
--[[ldx--
<p>This module implements some methods and creates additional datastructured
from the big character table that we use for all kind of purposes:
<type>char-def.lua</type>.</p>
+
+<p>We assume that at this point <type>characters.data</type> is already
+loaded!</p>
--ldx]]--
-characters = characters or { }
-characters.data = characters.data or { }
-characters.synonyms = characters.synonyms or { }
-characters.context = characters.context or { }
+characters = characters or { }
+characters.data = characters.data or { }
+
+local data = characters.data
+
+if not characters.ranges then
+ characters.ranges = { }
+ for k, v in next, data do
+ characters.ranges[#characters.ranges+1] = k
+ end
+end
+
+storage.register("characters/ranges",characters.ranges,"characters.ranges")
+
+local ranges = characters.ranges
+
+setmetatable(data, {
+ __index = function(t,k)
+ for r=1,#ranges do
+ local rr = ranges[r] -- first in range
+ if k > rr and k <= data[rr].range then
+ t[k] = t[rr]
+ return t[k]
+ end
+ end
+ return nil
+ end
+})
+
+characters.blocks = {
+ ["aegeannumbers"] = { 0x10100, 0x1013F, "Aegean Numbers" },
+ ["alphabeticpresentationforms"] = { 0x0FB00, 0x0FB4F, "Alphabetic Presentation Forms" },
+ ["ancientgreekmusicalnotation"] = { 0x1D200, 0x1D24F, "Ancient Greek Musical Notation" },
+ ["ancientgreeknumbers"] = { 0x10140, 0x1018F, "Ancient Greek Numbers" },
+ ["ancientsymbols"] = { 0x10190, 0x101CF, "Ancient Symbols" },
+ ["arabic"] = { 0x00600, 0x006FF, "Arabic" },
+ ["arabicpresentationformsa"] = { 0x0FB50, 0x0FDFF, "Arabic Presentation Forms-A" },
+ ["arabicpresentationformsb"] = { 0x0FE70, 0x0FEFF, "Arabic Presentation Forms-B" },
+ ["arabicsupplement"] = { 0x00750, 0x0077F, "Arabic Supplement" },
+ ["armenian"] = { 0x00530, 0x0058F, "Armenian" },
+ ["arrows"] = { 0x02190, 0x021FF, "Arrows" },
+ ["balinese"] = { 0x01B00, 0x01B7F, "Balinese" },
+ ["basiclatin"] = { 0x00000, 0x0007F, "Basic Latin" },
+ ["bengali"] = { 0x00980, 0x009FF, "Bengali" },
+ ["blockelements"] = { 0x02580, 0x0259F, "Block Elements" },
+ ["bopomofo"] = { 0x03100, 0x0312F, "Bopomofo" },
+ ["bopomofoextended"] = { 0x031A0, 0x031BF, "Bopomofo Extended" },
+ ["boxdrawing"] = { 0x02500, 0x0257F, "Box Drawing" },
+ ["braillepatterns"] = { 0x02800, 0x028FF, "Braille Patterns" },
+ ["buginese"] = { 0x01A00, 0x01A1F, "Buginese" },
+ ["buhid"] = { 0x01740, 0x0175F, "Buhid" },
+ ["byzantinemusicalsymbols"] = { 0x1D000, 0x1D0FF, "Byzantine Musical Symbols" },
+ ["carian"] = { 0x102A0, 0x102DF, "Carian" },
+ ["cham"] = { 0x0AA00, 0x0AA5F, "Cham" },
+ ["cherokee"] = { 0x013A0, 0x013FF, "Cherokee" },
+ ["cjkcompatibility"] = { 0x03300, 0x033FF, "CJK Compatibility" },
+ ["cjkcompatibilityforms"] = { 0x0FE30, 0x0FE4F, "CJK Compatibility Forms" },
+ ["cjkcompatibilityideographs"] = { 0x0F900, 0x0FAFF, "CJK Compatibility Ideographs" },
+ ["cjkcompatibilityideographssupplement"] = { 0x2F800, 0x2FA1F, "CJK Compatibility Ideographs Supplement" },
+ ["cjkradicalssupplement"] = { 0x02E80, 0x02EFF, "CJK Radicals Supplement" },
+ ["cjkstrokes"] = { 0x031C0, 0x031EF, "CJK Strokes" },
+ ["cjksymbolsandpunctuation"] = { 0x03000, 0x0303F, "CJK Symbols and Punctuation" },
+ ["cjkunifiedideographs"] = { 0x04E00, 0x09FFF, "CJK Unified Ideographs" },
+ ["cjkunifiedideographsextensiona"] = { 0x03400, 0x04DBF, "CJK Unified Ideographs Extension A" },
+ ["cjkunifiedideographsextensionb"] = { 0x20000, 0x2A6DF, "CJK Unified Ideographs Extension B" },
+ ["combiningdiacriticalmarks"] = { 0x00300, 0x0036F, "Combining Diacritical Marks" },
+ ["combiningdiacriticalmarksforsymbols"] = { 0x020D0, 0x020FF, "Combining Diacritical Marks for Symbols" },
+ ["combiningdiacriticalmarkssupplement"] = { 0x01DC0, 0x01DFF, "Combining Diacritical Marks Supplement" },
+ ["combininghalfmarks"] = { 0x0FE20, 0x0FE2F, "Combining Half Marks" },
+ ["controlpictures"] = { 0x02400, 0x0243F, "Control Pictures" },
+ ["coptic"] = { 0x02C80, 0x02CFF, "Coptic" },
+ ["countingrodnumerals"] = { 0x1D360, 0x1D37F, "Counting Rod Numerals" },
+ ["cuneiform"] = { 0x12000, 0x123FF, "Cuneiform" },
+ ["cuneiformnumbersandpunctuation"] = { 0x12400, 0x1247F, "Cuneiform Numbers and Punctuation" },
+ ["currencysymbols"] = { 0x020A0, 0x020CF, "Currency Symbols" },
+ ["cypriotsyllabary"] = { 0x10800, 0x1083F, "Cypriot Syllabary" },
+ ["cyrillic"] = { 0x00400, 0x004FF, "Cyrillic" },
+ ["cyrillicextendeda"] = { 0x02DE0, 0x02DFF, "Cyrillic Extended-A" },
+ ["cyrillicextendedb"] = { 0x0A640, 0x0A69F, "Cyrillic Extended-B" },
+ ["cyrillicsupplement"] = { 0x00500, 0x0052F, "Cyrillic Supplement" },
+ ["deseret"] = { 0x10400, 0x1044F, "Deseret" },
+ ["devanagari"] = { 0x00900, 0x0097F, "Devanagari" },
+ ["dingbats"] = { 0x02700, 0x027BF, "Dingbats" },
+ ["dominotiles"] = { 0x1F030, 0x1F09F, "Domino Tiles" },
+ ["enclosedalphanumerics"] = { 0x02460, 0x024FF, "Enclosed Alphanumerics" },
+ ["enclosedcjklettersandmonths"] = { 0x03200, 0x032FF, "Enclosed CJK Letters and Months" },
+ ["ethiopic"] = { 0x01200, 0x0137F, "Ethiopic" },
+ ["ethiopicextended"] = { 0x02D80, 0x02DDF, "Ethiopic Extended" },
+ ["ethiopicsupplement"] = { 0x01380, 0x0139F, "Ethiopic Supplement" },
+ ["generalpunctuation"] = { 0x02000, 0x0206F, "General Punctuation" },
+ ["geometricshapes"] = { 0x025A0, 0x025FF, "Geometric Shapes" },
+ ["georgian"] = { 0x010A0, 0x010FF, "Georgian" },
+ ["georgiansupplement"] = { 0x02D00, 0x02D2F, "Georgian Supplement" },
+ ["glagolitic"] = { 0x02C00, 0x02C5F, "Glagolitic" },
+ ["gothic"] = { 0x10330, 0x1034F, "Gothic" },
+ ["greekandcoptic"] = { 0x00370, 0x003FF, "Greek and Coptic" },
+ ["greekextended"] = { 0x01F00, 0x01FFF, "Greek Extended" },
+ ["gujarati"] = { 0x00A80, 0x00AFF, "Gujarati" },
+ ["gurmukhi"] = { 0x00A00, 0x00A7F, "Gurmukhi" },
+ ["halfwidthandfullwidthforms"] = { 0x0FF00, 0x0FFEF, "Halfwidth and Fullwidth Forms" },
+ ["hangulcompatibilityjamo"] = { 0x03130, 0x0318F, "Hangul Compatibility Jamo" },
+ ["hanguljamo"] = { 0x01100, 0x011FF, "Hangul Jamo" },
+ ["hangulsyllables"] = { 0x0AC00, 0x0D7AF, "Hangul Syllables" },
+ ["hanunoo"] = { 0x01720, 0x0173F, "Hanunoo" },
+ ["hebrew"] = { 0x00590, 0x005FF, "Hebrew" },
+ ["highprivateusesurrogates"] = { 0x0DB80, 0x0DBFF, "High Private Use Surrogates" },
+ ["highsurrogates"] = { 0x0D800, 0x0DB7F, "High Surrogates" },
+ ["hiragana"] = { 0x03040, 0x0309F, "Hiragana" },
+ ["ideographicdescriptioncharacters"] = { 0x02FF0, 0x02FFF, "Ideographic Description Characters" },
+ ["ipaextensions"] = { 0x00250, 0x02AF, "IPA Extensions" },
+ ["kanbun"] = { 0x03190, 0x0319F, "Kanbun" },
+ ["kangxiradicals"] = { 0x02F00, 0x02FDF, "Kangxi Radicals" },
+ ["kannada"] = { 0x00C80, 0x00CFF, "Kannada" },
+ ["katakana"] = { 0x030A0, 0x030FF, "Katakana" },
+ ["katakanaphoneticextensions"] = { 0x031F0, 0x031FF, "Katakana Phonetic Extensions" },
+ ["kayahli"] = { 0x0A900, 0x0A92F, "Kayah Li" },
+ ["kharoshthi"] = { 0x10A00, 0x10A5F, "Kharoshthi" },
+ ["khmer"] = { 0x01780, 0x017FF, "Khmer" },
+ ["khmersymbols"] = { 0x019E0, 0x019FF, "Khmer Symbols" },
+ ["lao"] = { 0x00E80, 0x00EFF, "Lao" },
+ ["latinextendeda"] = { 0x00100, 0x0017F, "Latin Extended-A" },
+ ["latinextendedadditional"] = { 0x01E00, 0x01EFF, "Latin Extended Additional" },
+ ["latinextendedb"] = { 0x00180, 0x0024F, "Latin Extended-B" },
+ ["latinextendedc"] = { 0x02C60, 0x02C7F, "Latin Extended-C" },
+ ["latinextendedd"] = { 0x0A720, 0x0A7FF, "Latin Extended-D" },
+ ["latinsupplement"] = { 0x00080, 0x000FF, "Latin-1 Supplement" },
+ ["lepcha"] = { 0x01C00, 0x01C4F, "Lepcha" },
+ ["letterlikesymbols"] = { 0x02100, 0x0214F, "Letterlike Symbols" },
+ ["limbu"] = { 0x01900, 0x0194F, "Limbu" },
+ ["linearbideograms"] = { 0x10080, 0x100FF, "Linear B Ideograms" },
+ ["linearbsyllabary"] = { 0x10000, 0x1007F, "Linear B Syllabary" },
+ ["lowsurrogates"] = { 0x0DC00, 0x0DFFF, "Low Surrogates" },
+ ["lycian"] = { 0x10280, 0x1029F, "Lycian" },
+ ["lydian"] = { 0x10920, 0x1093F, "Lydian" },
+ ["mahjongtiles"] = { 0x1F000, 0x1F02F, "Mahjong Tiles" },
+ ["malayalam"] = { 0x00D00, 0x00D7F, "Malayalam" },
+ ["mathematicalalphanumericsymbols"] = { 0x1D400, 0x1D7FF, "Mathematical Alphanumeric Symbols" },
+ ["mathematicaloperators"] = { 0x02200, 0x022FF, "Mathematical Operators" },
+ ["miscellaneousmathematicalsymbolsa"] = { 0x027C0, 0x027EF, "Miscellaneous Mathematical Symbols-A" },
+ ["miscellaneousmathematicalsymbolsb"] = { 0x02980, 0x029FF, "Miscellaneous Mathematical Symbols-B" },
+ ["miscellaneoussymbols"] = { 0x02600, 0x026FF, "Miscellaneous Symbols" },
+ ["miscellaneoussymbolsandarrows"] = { 0x02B00, 0x02BFF, "Miscellaneous Symbols and Arrows" },
+ ["miscellaneoustechnical"] = { 0x02300, 0x023FF, "Miscellaneous Technical" },
+ ["modifiertoneletters"] = { 0x0A700, 0x0A71F, "Modifier Tone Letters" },
+ ["mongolian"] = { 0x01800, 0x018AF, "Mongolian" },
+ ["musicalsymbols"] = { 0x1D100, 0x1D1FF, "Musical Symbols" },
+ ["myanmar"] = { 0x01000, 0x0109F, "Myanmar" },
+ ["newtailue"] = { 0x01980, 0x019DF, "New Tai Lue" },
+ ["nko"] = { 0x007C0, 0x007FF, "NKo" },
+ ["numberforms"] = { 0x02150, 0x0218F, "Number Forms" },
+ ["ogham"] = { 0x01680, 0x0169F, "Ogham" },
+ ["olchiki"] = { 0x01C50, 0x01C7F, "Ol Chiki" },
+ ["olditalic"] = { 0x10300, 0x1032F, "Old Italic" },
+ ["oldpersian"] = { 0x103A0, 0x103DF, "Old Persian" },
+ ["opticalcharacterrecognition"] = { 0x02440, 0x0245F, "Optical Character Recognition" },
+ ["oriya"] = { 0x00B00, 0x00B7F, "Oriya" },
+ ["osmanya"] = { 0x10480, 0x104AF, "Osmanya" },
+ ["phagspa"] = { 0x0A840, 0x0A87F, "Phags-pa" },
+ ["phaistosdisc"] = { 0x101D0, 0x101FF, "Phaistos Disc" },
+ ["phoenician"] = { 0x10900, 0x1091F, "Phoenician" },
+ ["phoneticextensions"] = { 0x01D00, 0x01D7F, "Phonetic Extensions" },
+ ["phoneticextensionssupplement"] = { 0x01D80, 0x01DBF, "Phonetic Extensions Supplement" },
+ ["privateusearea"] = { 0x0E000, 0x0F8FF, "Private Use Area" },
+ ["rejang"] = { 0x0A930, 0x0A95F, "Rejang" },
+ ["runic"] = { 0x016A0, 0x016FF, "Runic" },
+ ["saurashtra"] = { 0x0A880, 0x0A8DF, "Saurashtra" },
+ ["shavian"] = { 0x10450, 0x1047F, "Shavian" },
+ ["sinhala"] = { 0x00D80, 0x00DFF, "Sinhala" },
+ ["smallformvariants"] = { 0x0FE50, 0x0FE6F, "Small Form Variants" },
+ ["spacingmodifierletters"] = { 0x002B0, 0x002FF, "Spacing Modifier Letters" },
+ ["specials"] = { 0x0FFF0, 0x0FFFF, "Specials" },
+ ["sundanese"] = { 0x01B80, 0x01BBF, "Sundanese" },
+ ["superscriptsandsubscripts"] = { 0x02070, 0x0209F, "Superscripts and Subscripts" },
+ ["supplementalarrowsa"] = { 0x027F0, 0x027FF, "Supplemental Arrows-A" },
+ ["supplementalarrowsb"] = { 0x02900, 0x0297F, "Supplemental Arrows-B" },
+ ["supplementalmathematicaloperators"] = { 0x02A00, 0x02AFF, "Supplemental Mathematical Operators" },
+ ["supplementalpunctuation"] = { 0x02E00, 0x02E7F, "Supplemental Punctuation" },
+ ["supplementaryprivateuseareaa"] = { 0xF0000, 0xFFFFF, "Supplementary Private Use Area-A" },
+ ["supplementaryprivateuseareab"] = { 0x100000,0x10FFFF,"Supplementary Private Use Area-B" },
+ ["sylotinagri"] = { 0x0A800, 0x0A82F, "Syloti Nagri" },
+ ["syriac"] = { 0x00700, 0x0074F, "Syriac" },
+ ["tagalog"] = { 0x01700, 0x0171F, "Tagalog" },
+ ["tagbanwa"] = { 0x01760, 0x0177F, "Tagbanwa" },
+ ["tags"] = { 0xE0000, 0xE007F, "Tags" },
+ ["taile"] = { 0x01950, 0x0197F, "Tai Le" },
+ ["taixuanjingsymbols"] = { 0x1D300, 0x1D35F, "Tai Xuan Jing Symbols" },
+ ["tamil"] = { 0x00B80, 0x00BFF, "Tamil" },
+ ["telugu"] = { 0x00C00, 0x00C7F, "Telugu" },
+ ["thaana"] = { 0x00780, 0x007BF, "Thaana" },
+ ["thai"] = { 0x00E00, 0x00E7F, "Thai" },
+ ["tibetan"] = { 0x00F00, 0x00FFF, "Tibetan" },
+ ["tifinagh"] = { 0x02D30, 0x02D7F, "Tifinagh" },
+ ["ugaritic"] = { 0x10380, 0x1039F, "Ugaritic" },
+ ["unifiedcanadianaboriginalsyllabics"] = { 0x01400, 0x0167F, "Unified Canadian Aboriginal Syllabics" },
+ ["vai"] = { 0x0A500, 0x0A63F, "Vai" },
+ ["variationselectors"] = { 0x0FE00, 0x0FE0F, "Variation Selectors" },
+ ["variationselectorssupplement"] = { 0xE0100, 0xE01EF, "Variation Selectors Supplement" },
+ ["verticalforms"] = { 0x0FE10, 0x0FE1F, "Vertical Forms" },
+ ["yijinghexagramsymbols"] = { 0x04DC0, 0x04DFF, "Yijing Hexagram Symbols" },
+ ["yiradicals"] = { 0x0A490, 0x0A4CF, "Yi Radicals" },
+ ["yisyllables"] = { 0x0A000, 0x0A48F, "Yi Syllables" },
+}
+
+function characters.getrange(name)
+ local tag = lower(name)
+ tag = gsub(name,"[^a-z]", "")
+ local range = characters.blocks[tag]
+ if range then
+ return range[1], range[2], range[3]
+ end
+ name = gsub(name,'"',"0x") -- goodie: tex hex notation
+ local start, stop = match(name,"^(.-)[%-%:](.-)$")
+ if start and stop then
+ start, stop = tonumber(start,16) or tonumber(start), tonumber(stop,16) or tonumber(stop)
+ if start and stop then
+ return start, stop, nil
+ end
+ end
+ local slot = tonumber(name,16) or tonumber(name)
+ return slot, slot, nil
+end
characters.categories = {
lu = "Letter Uppercase",
@@ -59,14 +288,23 @@ characters.categories = {
--~ characters: ll lm lo lt lu mn nl no pc pd pe pf pi po ps sc sk sm so
characters.is_character = table.tohash {
- "ll","lm","lo","lt","lu","mn","nl","no","pc","pd","pe","pf","pi","po","ps","sc","sk","sm","so"
+ "lu","ll","lt","lm","lo",
+ "nd","nl","no",
+ "mn",
+ "nl","no",
+ "pc","pd","ps","pe","pi","pf","po",
+ "sm","sc","sk","so"
+}
+
+characters.is_letter = table.tohash {
+ "ll","lm","lo","lt","lu"
}
characters.is_command = table.tohash {
"cf","zs"
}
--- linebreak:
+-- linebreak: todo: hash
--
-- normative : BK CR LF CM SG GL CB SP ZW NL WJ JL JV JT H2 H3
-- informative : XX OP CL QU NS EX SY IS PR PO NU AL ID IN HY BB BA SA AI B2
@@ -75,163 +313,177 @@ characters.is_command = table.tohash {
--
-- N A H W F Na
-do
- local _empty_table_ = { __index = function(t,k) return "" end }
+characters.bidi = {
+ l = "Left-to-Right",
+ lre = "Left-to-Right Embedding",
+ lro = "Left-to-Right Override",
+ r = "Right-to-Left",
+ al = "Right-to-Left Arabic",
+ rle = "Right-to-Left Embedding",
+ rlo = "Right-to-Left Override",
+ pdf = "Pop Directional Format",
+ en = "European Number",
+ es = "European Number Separator",
+ et = "European Number Terminator",
+ an = "Arabic Number",
+ cs = "Common Number Separator",
+ nsm = "Non-Spacing Mark",
+ bn = "Boundary Neutral",
+ b = "Paragraph Separator",
+ s = "Segment Separator",
+ ws = "Whitespace",
+ on = "Other Neutrals",
+}
- function table.set_empty_metatable(t)
- setmetatable(t,_empty_table_)
- end
+local _empty_table_ = { __index = function(t,k) return "" end }
+
+function table.set_empty_metatable(t)
+ setmetatable(t,_empty_table_)
end
-table.set_empty_metatable(characters.data)
+table.set_empty_metatable(data)
--[[ldx--
<p>At this point we assume that the big data table is loaded. From this
table we derive a few more.</p>
--ldx]]--
--- used ?
-
-characters.context.unicodes = characters.context.unicodes or { }
-characters.context.utfcodes = characters.context.utfcodes or { }
-characters.context.enccodes = characters.context.enccodes or { }
-characters.context.fallbacks = characters.context.fallbacks or { }
-
-function characters.context.rehash()
- local unicodes, utfcodes, enccodes, fallbacks, utfchar = characters.context.unicodes, characters.context.utfcodes, characters.context.enccodes, characters.context.fallbacks, utf.char
- for k,v in pairs(characters.data) do
- local contextname, adobename, specials = v.contextname, v.adobename, v.specials
- if contextname then
- local slot = v.unicodeslot
- unicodes[contextname] = slot
- utfcodes[contextname] = utfchar(slot)
- end
- local encname = adobename or contextname
- if encname then
- enccodes[encname] = k
- end
+if not characters.fallbacks then
+
+ characters.fallbacks = { }
+ characters.directions = { }
+
+ local fallbacks = characters.fallbacks
+ local directions = characters.directions
+
+ for k,v in next, data do
+ local specials = v.specials
if specials and specials[1] == "compat" and specials[2] == 0x0020 and specials[3] then
local s = specials[3]
fallbacks[k] = s
fallbacks[s] = k
end
+ directions[k] = v.direction
end
- for name,code in pairs(characters.synonyms) do
- if not enccodes[name] then enccodes[name] = code end
- end
+
end
+storage.register("characters.fallbacks", characters.fallbacks, "characters.fallbacks")
+storage.register("characters.directions", characters.directions, "characters.directions")
+
--[[ldx--
<p>The <type>context</type> namespace is used to store methods and data
which is rather specific to <l n='context'/>.</p>
--ldx]]--
-function characters.context.show(n)
- local n = characters.number(n)
- local d = characters.data[n]
- if d then
- local function entry(label,name)
- tex.sprint(tex.ctxcatcodes,format("\\NC %s\\NC %s\\NC\\NR",label,characters.valid(d[name])))
- end
- tex.sprint(tex.ctxcatcodes,"\\starttabulate[|Tl|Tl|]")
- entry("unicode index" , "unicodeslot")
- entry("context name" , "contextname")
- entry("adobe name" , "adobename")
- entry("category" , "category")
- entry("description" , "description")
- entry("uppercase code", "uccode")
- entry("lowercase code", "lccode")
- entry("specials" , "specials")
- tex.sprint(tex.ctxcatcodes,"\\stoptabulate ")
- end
-end
-
--[[ldx--
<p>Instead of using a <l n='tex'/> file to define the named glyphs, we
use the table. After all, we have this information available anyway.</p>
--ldx]]--
-function characters.makeactive(n,name)
- tex.sprint(tex.ctxcatcodes,format("\\catcode%s=13\\unexpanded\\def %s{\\%s}",n,utf.char(n),name))
+function characters.makeactive(n,name) -- let ?
+ texsprint(ctxcatcodes,format("\\catcode%s=13\\unexpanded\\def %s{\\%s}",n,utfchar(n),name))
end
function tex.uprint(n)
- tex.sprint(tex.ctxcatcodes,utf.char(n))
+ texsprint(ctxcatcodes,utfchar(n))
end
---~ function characters.context.define()
---~ local unicodes, utfcodes = characters.context.unicodes, characters.context.utfcodes
---~ local flush, tc, char = tex.sprint, tex.ctxcatcodes, utf.char
---~ local is_character, is_command = characters.is_character, characters.is_command
---~ for u, chr in pairs(characters.data) do
---~ local contextname = chr.contextname
---~ if contextname then
---~ local category = chr.category
---~ if is_character[category] then
---~ -- by this time, we're still in normal catcode mode
---~ if chr.unicodeslot < 128 then
---~ flush(tc, "\\chardef\\" .. contextname .. "=" .. u) -- unicodes[contextname])
---~ else
---~ flush(tc, "\\let\\" .. contextname .. "=" .. char(u)) -- utfcodes[contextname])
---~ end
---~ elseif is_command[category] then
---~ flush("\\catcode"..u.."=13\\unexpanded\\def "..char(u).."{\\"..contextname.."}")
---~ -- characters.makeactive(u,contextname)
---~ end
---~ end
---~ end
---~ end
-
-characters.activated = { }
-
-function characters.context.define()
- local unicodes, utfcodes = characters.context.unicodes, characters.context.utfcodes
- local flush, tc, char = tex.sprint, tex.ctxcatcodes, utf.char
- local is_character, is_command = characters.is_character, characters.is_command
- for u, chr in pairs(characters.data) do
- local contextname = chr.contextname
- if contextname then
+local template_a = "\\startextendcatcodetable{%s}\\chardef\\l=11\\chardef\\a=13\\let\\c\\catcode%s\\let\\a\\undefined\\let\\l\\undefined\\let\\c\\undefined\\stopextendcatcodetable"
+local template_b = "\\chardef\\l=11\\chardef\\a=13\\let\\c\\catcode%s\\let\\a\\undefined\\let\\l\\undefined\\let\\c\\undefined"
+
+-- we need a function for setting the codes ....
+
+function characters.define(tobelettered, tobeactivated) -- catcodetables
+ local is_character, is_command, is_letter = characters.is_character, characters.is_command, characters.is_letter
+ local lettered, activated = { }, { }
+ for u, chr in next, data do
+ -- we can use a macro instead of direct settings
+ local fallback = chr.fallback
+ if fallback then
+ -- texprint(format("{\\catcode %s=13\\unexpanded\\gdef %s{\\checkedchar{%s}{%s}}}",u,utfchar(u),u,fallback))
+ texsprint("{\\catcode",u,"=13\\unexpanded\\gdef ",utfchar(u),"{\\checkedchar{",u,"}{",fallback,"}}}") -- no texprint
+ activated[#activated+1] = "\\c"..u.."\\a"
+ else
+ local contextname = chr.contextname
local category = chr.category
- if is_character[category] then
- -- by this time, we're still in normal catcode mode
- if chr.unicodeslot < 128 then
- flush(tc, "\\chardef\\" .. contextname .. "=" .. u) -- unicodes[contextname])
- else
- flush(tc, "\\let\\" .. contextname .. "=" .. char(u)) -- utfcodes[contextname])
- end
- elseif is_command[category] then
- flush("{\\catcode"..u.."=13\\unexpanded\\gdef "..char(u).."{\\"..contextname.."}}")
- characters.activated[u] = true
+ if contextname then
+ if is_character[category] then
+ -- by this time, we're still in normal catcode mode
+ -- subtle: not "\\",contextname but "\\"..contextname
+ if chr.unicodeslot < 128 then
+ -- texprint(ctxcatcodes, "\\chardef\\"..contextname,"=",u)
+ texprint(ctxcatcodes,format("\\chardef\\%s=%s",contextname,u))
+ else
+ -- texprint(ctxcatcodes, "\\let\\"..contextname,"=",utfchar(u))
+ texprint(ctxcatcodes,format("\\let\\%s=%s",contextname,utfchar(u)))
+ if is_letter[category] then
+ lettered[#lettered+1] = "\\c"..u.."\\l"
+ end
+ end
+ elseif is_command[category] then
+ -- texprint(format("{\\catcode %s=13\\unexpanded\\gdef %s{\\%s}}",u,utfchar(u),contextname))
+ texsprint("{\\catcode",u,"=13\\unexpanded\\gdef ",utfchar(u),"{\\"..contextname,"}}") -- no texprint
+ activated[#activated+1] = "\\c"..u.."\\a"
+ end
+ elseif is_letter[category] then
+ if u >= 128 and u <= 65536 then -- catch private mess
+ lettered[#lettered+1] = "\\c"..u.."\\l"
+ end
end
end
+ if chr.range then
+ lettered[#lettered+1] = format('\\dofastrecurse{"%05X}{"%05X}{1}{\\c\\fastrecursecounter\\l}',u,chr.range)
+ end
end
-end
-
-function characters.context.activate()
- for u,_ in pairs(characters.activated) do
- tex.sprint(tex.ctxcatcodes,"\\catcode "..u.."=13 ")
+ -- if false then
+ lettered[#lettered+1] = "\\c"..0x200C.."\\l" -- non-joiner
+ lettered[#lettered+1] = "\\c"..0x200D.."\\l" -- joiner
+ -- fi
+ if tobelettered then
+ lettered = concat(lettered)
+ if true then
+ texsprint(ctxcatcodes,format(template_b,lettered))
+ else
+ for l=1,#tobelettered do
+ texsprint(ctxcatcodes,format(template_a,tobelettered[l],lettered))
+ end
+ end
+ end
+ if tobeactivated then
+ activated = concat(activated)
+ for a=1,#tobeactivated do
+ texsprint(ctxcatcodes,format(template_a,tobeactivated[a],activated))
+ end
end
end
function characters.charcode(box)
local b = tex.box[box]
local l = b.list
- tex.sprint((l and l.id == node.id('glyph') and l.char) or 0)
+ texsprint((l and l.id == node.id('glyph') and l.char) or 0)
end
--[[ldx--
<p>Setting the lccodes is also done in a loop over the data table.</p>
--ldx]]--
+-- we need a function ...
+
function characters.setcodes()
- local flush, tc, format = tex.sprint, tex.ctxcatcodes, string.format
- for code, chr in pairs(characters.data) do
+ for code, chr in next, data do
local cc = chr.category
if cc == 'll' or cc == 'lu' or cc == 'lt' then
local lc, uc = chr.lccode, chr.uccode
if not lc then chr.lccode, lc = code, code end
if not uc then chr.uccode, uc = code, code end
- flush(tc, format("\\setcclcuc %i %i %i ",code,lc,uc))
+ texsprint(ctxcatcodes,format("\\setcclcuc{%i}{%i}{%i}",code,lc,uc))
+ end
+ if cc == "lu" then
+ texprint(ctxcatcodes,"\\sfcode ",code,"999 ")
+ end
+ if cc == "lo" and chr.range then
+ texsprint(ctxcatcodes,format('\\dofastrecurse{"%05X}{"%05X}{1}{\\setcclcucself\\fastrecursecounter}',code,chr.range))
end
end
end
@@ -264,21 +516,12 @@ end
characters.valid = characters.is_valid
--[[ldx--
-<p>The next method is used when constructing the main table, although nowadays
-we do this in one step. The index can be a string or a number.</p>
---ldx]]--
-
-function characters.define(c)
- characters.data[characters.number(c.unicodeslot)] = c
-end
-
---[[ldx--
<p></p>
--ldx]]--
-- set a table entry; index is number (can be different from unicodeslot)
function characters.set(n, c)
- characters.data[characters.number(n)] = c
+ data[characters.number(n)] = c
end
--[[ldx--
@@ -287,7 +530,7 @@ can be different (not likely).</p>
--ldx]]--
function characters.get(n)
- return characters.data[characters.number(n)]
+ return data[characters.number(n)]
end
--[[ldx--
@@ -296,43 +539,43 @@ to the checking.</p>
--ldx]]--
function characters.hexindex(n)
- return format("%04X", characters.valid(characters.data[characters.number(n)].unicodeslot))
+ return format("%04X", characters.valid(data[characters.number(n)].unicodeslot))
end
function characters.contextname(n)
- return characters.valid(characters.data[characters.number(n)].contextname)
+ return characters.valid(data[characters.number(n)].contextname)
end
function characters.adobename(n)
- return characters.valid(characters.data[characters.number(n)].adobename)
+ return characters.valid(data[characters.number(n)].adobename)
end
function characters.description(n)
- return characters.valid(characters.data[characters.number(n)].description)
+ return characters.valid(data[characters.number(n)].description)
end
function characters.category(n)
- return characters.valid(characters.data[characters.number(n)].category)
+ return characters.valid(data[characters.number(n)].category)
end
--[[ldx--
<p>Requesting lower and uppercase codes:</p>
--ldx]]--
-function characters.uccode(n) return characters.data[n].uccode or n end
-function characters.lccode(n) return characters.data[n].lccode or n end
+function characters.uccode(n) return data[n].uccode or n end
+function characters.lccode(n) return data[n].lccode or n end
function characters.flush(n)
- local c = characters.data[n]
+ local c = data[n]
if c and c.contextname then
- tex.sprint(tex.texcatcodes, "\\"..c.contextname)
+ texsprint(texcatcodes, "\\"..c.contextname)
else
- tex.sprint(unicode.utf8.char(n))
+ texsprint(utfchar(n))
end
end
function characters.shape(n)
- local shcode = characters.data[n].shcode
+ local shcode = data[n].shcode
if not shcode then
return n, nil
elseif type(shcode) == "table" then
@@ -348,61 +591,44 @@ end
function characters.is_of_category(token,category)
if type(token) == "string" then
- return characters.data[utf.byte(token)].category == category
+ return data[utfbyte(token)].category == category
else
- return characters.data[token].category == category
+ return data[token].category == category
end
end
function characters.i_is_of_category(i,category) -- by index (number)
- local cd = characters.data[i]
+ local cd = data[i]
return cd and cd.category == category
end
function characters.n_is_of_category(n,category) -- by name (string)
- local cd = characters.data[utf.byte(n)]
+ local cd = data[utfbyte(n)]
return cd and cd.category == category
end
---[[ldx--
-<p>The following code is kind of messy. It is used to generate the right
-unicode reference tables.</p>
---ldx]]--
+-- xml support
-function characters.setpdfunicodes()
---~ local flush, tc, sf = tex.sprint, tex.ctxcatcodes, string.format
---~ for _,v in pairs(characters.data) do
---~ if v.adobename then
---~ flush(tc,sf("\\pdfglyphtounicode{%s}{%04X}", v.adobename, v.unicodeslot))
---~ end
---~ end
-end
+characters.active_offset = 0x10000
---[[ldx--
-<p>The next method generates a table for good old <l n='pdftex'/>.</p>
+xml.entities = xml.entities or { }
-<typing>
-characters.pdftex.make_pdf_to_unicodetable("pdfr-def.tex")
-</typing>
---ldx]]--
+storage.register("xml/entities",xml.entities,"xml.entities") -- this will move to lxml
+
+function characters.remapentity(chr,slot)
+ texsprint(format("{\\catcode%s=13\\xdef%s{\\string%s}}",slot,utfchar(slot),chr))
+end
+
+function characters.setmkiventities()
+ local entities = xml.entities
+ entities.lt = "<"
+ entities.amp = "&"
+ entities.gt = ">"
+end
-characters.pdftex = characters.pdftex or { }
-
-function characters.pdftex.make_pdf_to_unicodetable(filename)
---~ f = io.open(filename,'w')
---~ if f then
---~ f:write("% This file is generated with Luatex using the\n")
---~ f:write("% character tables that come with ConTeXt MkIV.\n")
---~ f:write("%\n")
---~ f:write("\\ifx\\pdfglyphtounicode\\undefined\\endinput\\fi\n") -- just to be sure
---~ for _, v in pairs(characters.data) do
---~ if v.adobename then
---~ f:write(format("\\pdfglyphtounicode{%s}{%04X}", v.adobename, v.unicodeslot))
---~ end
---~ end
---~ f:write("%\n")
---~ f:write("%\n")
---~ f:write("\\endinput")
---~ f:close()
---~ end
+function characters.setmkiientities()
+ local entities = xml.entities
+ entities.lt = utfchar(characters.active_offset + utfbyte("<"))
+ entities.amp = utfchar(characters.active_offset + utfbyte("&"))
+ entities.gt = utfchar(characters.active_offset + utfbyte(">"))
end
diff --git a/Master/texmf-dist/tex/context/base/char-ini.mkiv b/Master/texmf-dist/tex/context/base/char-ini.mkiv
new file mode 100644
index 00000000000..daa20e72867
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/char-ini.mkiv
@@ -0,0 +1,74 @@
+%D \module
+%D [ file=char-ini,
+%D version=2006.08.20,
+%D title=\CONTEXT\ Character Support,
+%D subtitle=Initialization,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Character Support / Initialization}
+
+\registerctxluafile{char-def}{1.001} % let's load this one first
+\registerctxluafile{char-ini}{1.001}
+\registerctxluafile{char-cmp}{1.001} % maybe we will load this someplace else
+\registerctxluafile{char-map}{1.001} % maybe we will load this someplace else
+
+\unprotect
+
+% \def\checkedchar#1% #2%
+% {\relax\iffontchar\font#1 \expandafter\firstoftwoarguments\else\expandafter\secondoftwoarguments\fi{\char#1}}
+%
+% impossible in math mode so there always fallback (till we have gyre):
+
+\def\utfchar #1{\ctxlua{tex.uprint(\number#1)}}
+\def\checkedchar {\relax\ifmmode\expandafter\checkedmathchar\else\expandafter\checkedtextchar\fi} % #1#2
+\def\checkedmathchar#1#2{#2}
+\def\checkedtextchar #1{\iffontchar\font#1 \expandafter\firstoftwoarguments\else\expandafter\secondoftwoarguments\fi{\char#1}}
+
+%D The codes are stored in the format, so we don't need to reinitialize
+%D them (unless of course we have adapted the table). It is on the agenda
+%D to do this with \type {tex.lccode} cum suis once they're available.
+
+\def\setcclcuc#1#2#3{\global\catcode#1=\@@letter\global\lccode#1=#2\global\uccode#1=#3\relax}
+\def\setcclcucself#1{\global\catcode#1=\@@letter\global\lccode#1=#1\global\uccode#1=#1\relax }
+
+\ctxlua{characters.setcodes()}
+
+%D There may be a problem with the turkisch patterns. By now it's taken care of in
+%D ctxtools (thanks to Mojca). There seems to be a bug in the patterns (^^11 refers
+%D to a double quote but it should be ^^19 since the original is in ec encoding).
+
+% \setcclcuc "201C "201C "201C
+% \setcclcuc "201D "201D "201D
+
+\ctxlua {
+ characters.define(
+ { % letter catcodes
+ \number\texcatcodes,
+ \number\ctxcatcodes,
+ \number\notcatcodes,
+ \number\mthcatcodes,
+ \number\vrbcatcodes,
+ \number\prtcatcodes,
+ \number\xmlcatcodesn,
+ \number\xmlcatcodese,
+ \number\xmlcatcodesr,
+ \number\typcatcodesa,
+ \number\typcatcodesb,
+ },
+ { % activate catcodes
+ \number\ctxcatcodes,
+ \number\notcatcodes,
+ \number\xmlcatcodesn,
+ \number\xmlcatcodese,
+ \number\xmlcatcodesr,
+ }
+ )
+}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/char-ini.tex b/Master/texmf-dist/tex/context/base/char-ini.tex
deleted file mode 100644
index be69f793ff6..00000000000
--- a/Master/texmf-dist/tex/context/base/char-ini.tex
+++ /dev/null
@@ -1,29 +0,0 @@
-%D \module
-%D [ file=char-ini,
-%D version=2006.08.20,
-%D title=\CONTEXT\ Character Macros,
-%D subtitle=Character Support (Initialization),
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright=PRAGMA]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{Character Support (initialization)}
-
-\registerctxluafile{char-ini}{1.001}
-\registerctxluafile{char-cmp}{1.001} % maybe we will load this someplace else
-\registerctxluafile{char-tok}{1.001} % maybe we will load this someplace else
-
-% \def\defchar
-% {\afterassignment\dodefchar\scratchcounter}
-
-% \def\dodefchar
-% {\catcode\scratchcounter\active\relax
-% \ctxlua{tex.sprint("\\unexpanded\\def"..utf.char(\the\scratchcounter))}}
-
-\def\utfchar#1{\ctxlua{tex.uprint(\number#1)}}
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/char-map.lua b/Master/texmf-dist/tex/context/base/char-map.lua
index e463158c534..0d8422bc2d3 100644
--- a/Master/texmf-dist/tex/context/base/char-map.lua
+++ b/Master/texmf-dist/tex/context/base/char-map.lua
@@ -1,15 +1,12 @@
--- filename : char-map.lua
--- comment : companion to char-def.tex (in ConTeXt)
--- author : Hans Hagen, PRAGMA-ADE, Hasselt NL
--- copyright: PRAGMA ADE / ConTeXt Development Team
--- license : see context related readme files
-
--- remark : derived from 'specialcasing.txt', se Arthurs comments in char-map.txt
-
-
-if not versions then versions = { } end versions['char-map'] = 1.001
-if not characters then characters = { } end
+if not modules then modules = { } end modules ['char-map'] = {
+ version = 1.001,
+ comment = "companion to char-ini.tex",
+ author = "Hans Hagen & Arthur Reutenauer",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+characters = characters or { }
characters.casemap={
[0x0049]={
diff --git a/Master/texmf-dist/tex/context/base/char-utf.lua b/Master/texmf-dist/tex/context/base/char-utf.lua
index 5e5d575c501..7dd5d914f79 100644
--- a/Master/texmf-dist/tex/context/base/char-utf.lua
+++ b/Master/texmf-dist/tex/context/base/char-utf.lua
@@ -1,6 +1,6 @@
if not modules then modules = { } end modules ['char-utf'] = {
version = 1.001,
- comment = "companion to char-ini.tex",
+ comment = "companion to char-utf.tex",
author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
copyright = "PRAGMA ADE / ConTeXt Development Team",
license = "see context related readme files"
@@ -19,7 +19,11 @@ in special kinds of output (for instance <l n='pdf'/>).</p>
over a string.</p>
--ldx]]--
-utf = utf or unicode.utf8
+local utf = unicode.utf8
+local concat, gmatch = table.concat, string.gmatch
+local utfcharacters, utfvalues = string.utfcharacters, string.utfvalues
+
+local ctxcatcodes = tex.ctxcatcodes
characters = characters or { }
characters.graphemes = characters.graphemes or { }
@@ -30,79 +34,57 @@ characters.filters.utf.initialized = false
characters.filters.utf.collapsing = true
characters.filters.utf.expanding = true
+local graphemes = characters.graphemes
+local utffilters = characters.filters.utf
+local utfchar, utfbyte, utfgsub = utf.char, utf.byte, utf.gsub
+
--[[ldx--
<p>It only makes sense to collapse at runtime, since we don't expect
-source code to depend on collapsing:</p>
-
-<typing>
-characters.filters.utf.collapsing = true
-input.filters.utf_translator = characters.filters.utf.collapse
-</typing>
+source code to depend on collapsing.</p>
--ldx]]--
-function characters.filters.utf.initialize()
- if characters.filters.utf.collapsing and not characters.filters.utf.initialized then
- local cg = characters.graphemes
- local uc = utf.char
- for k,v in pairs(characters.data) do
+function utffilters.initialize()
+ if utffilters.collapsing and not utffilters.initialized then
+ for k,v in next, characters.data do
-- using vs and first testing for length is faster (.02->.01 s)
local vs = v.specials
if vs and #vs == 3 and vs[1] == 'char' then
- local first, second = uc(vs[2]), uc(vs[3])
- local cgf = cg[first]
+ local first, second = utfchar(vs[2]), utfchar(vs[3])
+ local cgf = graphemes[first]
if not cgf then
cgf = { }
- cg[first] = cgf
+ graphemes[first] = cgf
end
- cgf[second] = uc(k)
+ cgf[second] = utfchar(k)
end
end
- characters.filters.utf.initialized = true
+ utffilters.initialized = true
end
end
--- characters.filters.utf.add_grapheme(utf.char(318),'l','\string~')
--- characters.filters.utf.add_grapheme('c','a','b')
-
---~ function characters.filters.utf.add_grapheme(result,...)
---~ local cg = characters.graphemes
---~ local t = {...}
---~ local n = table.getn(t)
---~ for i=1,n do
---~ local v = t[i]
---~ if not cg[v] then
---~ cg[v] = { }
---~ end
---~ if i == n then
---~ cg[v] = result
---~ else
---~ cg = cg[v]
---~ end
---~ end
---~ end
-
-function characters.filters.utf.add_grapheme(result,first,second)
- local cg, uc = characters.graphemes, utf.char
+-- utffilters.add_grapheme(utfchar(318),'l','\string~')
+-- utffilters.add_grapheme('c','a','b')
+
+function utffilters.add_grapheme(result,first,second)
local r, f, s = tonumber(result), tonumber(first), tonumber(second)
- if r then result = uc(r) end
- if f then first = uc(f) end
- if s then second = uc(s) end
- if not cg[first] then
- cg[first] = { [second] = result }
+ if r then result = utfchar(r) end
+ if f then first = utfchar(f) end
+ if s then second = utfchar(s) end
+ if not graphemes[first] then
+ graphemes[first] = { [second] = result }
else
- cg[first][second] = result
+ graphemes[first][second] = result
end
end
-function characters.filters.utf.collapse(str) -- old one
- if characters.filters.utf.collapsing and str and #str > 1 then
- if not characters.filters.utf.initialized then -- saves a call
- characters.filters.utf.initialize()
+function utffilters.collapse(str) -- old one
+ if utffilters.collapsing and str and #str > 1 then
+ if not utffilters.initialized then -- saves a call
+ utffilters.initialize()
end
local tokens, first, done = { }, false, false
- local cg = characters.graphemes
- for second in string.utfcharacters(str) do
- local cgf = cg[first]
+ for second in utfcharacters(str) do
+ local cgf = graphemes[first]
if cgf and cgf[second] then
first, done = cgf[second], true
elseif first then
@@ -114,7 +96,7 @@ function characters.filters.utf.collapse(str) -- old one
end
if done then
tokens[#tokens+1] = first
- return table.concat(tokens,"")
+ return concat(tokens)
end
end
return str
@@ -138,44 +120,38 @@ to their right glyph there.</p>
0x100000.</p>
--ldx]]--
-characters.filters.utf.private = {
+utffilters.private = {
high = { },
low = { },
escapes = { },
}
-do
-
- local low = characters.filters.utf.private.low
- local high = characters.filters.utf.private.high
- local escapes = characters.filters.utf.private.escapes
- local special = "~#$%^&_{}\\"
-
- local ub, uc, ug = utf.byte, utf.char, utf.gsub
+local low = utffilters.private.low
+local high = utffilters.private.high
+local escapes = utffilters.private.escapes
+local special = "~#$%^&_{}\\|"
- function characters.filters.utf.private.set(ch)
- local cb
- if type(ch) == "number" then
- cb, ch = ch, uc(ch)
- else
- cb = ub(ch)
- end
- if cb < 256 then
- low [ch] = uc(0x0F0000 + cb)
- high [uc(0x0F0000 + cb)] = ch
- escapes[ch] = "\\" .. ch
- end
+function utffilters.private.set(ch)
+ local cb
+ if type(ch) == "number" then
+ cb, ch = ch, utfchar(ch)
+ else
+ cb = utfbyte(ch)
end
+ if cb < 256 then
+ low[ch] = utfchar(0x0F0000 + cb)
+ high[utfchar(0x0F0000 + cb)] = ch
+ escapes[ch] = "\\" .. ch
+ end
+end
- function characters.filters.utf.private.replace(str) return ug(str,"(.)", low ) end
- function characters.filters.utf.private.revert(str) return ug(str,"(.)", high ) end
- function characters.filters.utf.private.escape(str) return ug(str,"(.)", escapes) end
-
- local set = characters.filters.utf.private.set
+function utffilters.private.replace(str) return utfgsub(str,"(.)", low ) end
+function utffilters.private.revert(str) return utfgsub(str,"(.)", high ) end
+function utffilters.private.escape(str) return utfgsub(str,"(.)", escapes) end
- for ch in special:gmatch(".") do set(ch) end
+local set = utffilters.private.set
-end
+for ch in gmatch(special,".") do set(ch) end
--[[ldx--
<p>We get a more efficient variant of this when we integrate
@@ -188,290 +164,110 @@ first snippet uses the relocated dollars.</p>
</typing>
--ldx]]--
-do
-
- local cg = characters.graphemes
- local cr = characters.filters.utf.private.high -- kan via een lpeg
- local cf = characters.filters.utf
- local su = string.utfcharacters
-
- local concat = table.concat
-
- --~ keep this one, it's the baseline
- --~
- --~ function characters.filters.utf.collapse(str)
- --~ if cf.collapsing and str then
- --~ if #str > 1 then
- --~ if not cf.initialized then -- saves a call
- --~ cf.initialize()
- --~ end
- --~ local tokens, first, done = { }, false, false
- --~ for second in su(str) do
- --~ if cr[second] then
- --~ if first then
- --~ tokens[#tokens+1] = first
- --~ end
- --~ first, done = cr[second], true
- --~ else
- --~ local cgf = cg[first]
- --~ if cgf and cgf[second] then
- --~ first, done = cgf[second], true
- --~ elseif first then
- --~ tokens[#tokens+1] = first
- --~ first = second
- --~ else
- --~ first = second
- --~ end
- --~ end
- --~ end
- --~ if done then
- --~ tokens[#tokens+1] = first
- --~ return concat(tokens,"") -- seldom called
- --~ end
- --~ elseif #str > 0 then
- --~ return cr[str] or str
- --~ end
- --~ end
- --~ return str
- --~ end
-
- --[[ldx--
- <p>The next variant has lazy token collecting, on a 140 page mk.tex this saves
- about .25 seconds, which is understandable because we have no graphmes and
- not collecting tokens is not only faster but also saves garbage collecting.
- </p>
- --ldx]]--
-
- function characters.filters.utf.collapse(str) -- not really tested (we could preallocate a table)
- if cf.collapsing and str then
- if #str > 1 then
- if not cf.initialized then -- saves a call
- cf.initialize()
- end
- local tokens, first, done, n = { }, false, false, 0
- for second in su(str) do
- if done then
- if cr[second] then
- if first then
- tokens[#tokens+1] = first
- end
- first = cr[second]
+local cr = utffilters.private.high -- kan via een lpeg
+local cf = utffilters
+
+--[[ldx--
+<p>The next variant has lazy token collecting, on a 140 page mk.tex this saves
+about .25 seconds, which is understandable because we have no graphmes and
+not collecting tokens is not only faster but also saves garbage collecting.
+</p>
+--ldx]]--
+
+-- lpeg variant is not faster
+
+function utffilters.collapse(str) -- not really tested (we could preallocate a table)
+ if cf.collapsing and str then
+ if #str > 1 then
+ if not cf.initialized then -- saves a call
+ cf.initialize()
+ end
+ local tokens, first, done, n = { }, false, false, 0
+ for second in utfcharacters(str) do
+ if done then
+ local crs = cr[second]
+ if crs then
+ if first then
+ tokens[#tokens+1] = first
+ end
+ first = crs
+ else
+ local cgf = graphemes[first]
+ if cgf and cgf[second] then
+ first = cgf[second]
+ elseif first then
+ tokens[#tokens+1] = first
+ first = second
else
- local cgf = cg[first]
- if cgf and cgf[second] then
- first = cgf[second]
- elseif first then
- tokens[#tokens+1] = first
- first = second
+ first = second
+ end
+ end
+ else
+ local crs = cr[second]
+ if crs then
+ for s in utfcharacters(str) do
+ if n == 1 then
+ break
else
- first = second
+ tokens[#tokens+1], n = s, n - 1
end
end
+ if first then
+ tokens[#tokens+1] = first
+ end
+ first, done = crs, true
else
- if cr[second] then
- for s in su(str) do
+ local cgf = graphemes[first]
+ if cgf and cgf[second] then
+ for s in utfcharacters(str) do
if n == 1 then
break
else
- tokens[#tokens+1], n = s, n - 1
+ tokens[#tokens+1], n = s, n -1
end
end
- if first then
- tokens[#tokens+1] = first
- end
- first, done = cr[second], true
+ first, done = cgf[second], true
else
- local cgf = cg[first]
- if cgf and cgf[second] then
- for s in su(str) do
- if n == 1 then
- break
- else
- tokens[#tokens+1], n = s, n -1
- end
- end
- first, done = cgf[second], true
- else
- first, n = second, n + 1
- end
+ first, n = second, n + 1
end
end
end
- if done then
- tokens[#tokens+1] = first
- return concat(tokens,"") -- seldom called
- end
- elseif #str > 0 then
- return cr[str] or str
end
+ if done then
+ tokens[#tokens+1] = first
+ return concat(tokens) -- seldom called
+ end
+ elseif #str > 0 then
+ return cr[str] or str
end
- return str
end
-
- --~ not faster (0.1 seconds on a 500 k collapsable file)
- --~
- --~ local specials, initials = lpeg.P(false), ""
- --~ for k,v in pairs(cr) do
- --~ specials, initials = specials + lpeg.P(k)/v, initials .. k:sub(1,1)
- --~ end
- --~ specials = lpeg.Cs(lpeg.P((1-lpeg.S(initials)) + specials)^0)
- --~ local graphemes = ""
- --~ for _, v in pairs(cg) do
- --~ for kk, _ in pairs(v) do
- --~ graphemes = graphemes .. kk:sub(1,1)
- --~ end
- --~ end
- --~ graphemes = lpeg.P{ lpeg.S(graphemes) + 1 * lpeg.V(1) }
- --~
- --~ function characters.filters.utf.collapse(str)
- --~ if cf.collapsing and str then
- --~ if #str > 1 then
- --~ str = specials:match(str)
- --~ if graphemes:match(str) then
- --~ if not cf.initialized then -- saves a call
- --~ cf.initialize()
- --~ end
- --~ local tokens, first, done = { }, false, false
- --~ for second in su(str) do
- --~ local cgf = cg[first]
- --~ if cgf and cgf[second] then
- --~ first, done = cgf[second], true
- --~ elseif first then
- --~ tokens[#tokens+1] = first
- --~ first = second
- --~ else
- --~ first = second
- --~ end
- --~ end
- --~ if done then
- --~ tokens[#tokens+1] = first
- --~ return table.concat(tokens,"")
- --~ end
- --~ end
- --~ elseif #str > 0 then
- --~ return cr[str] or str
- --~ end
- --~ end
- --~ return str
- --~ end
-
+ return str
end
--[[ldx--
-<p>In the beginning of <l n='luatex'/> we experimented with a sequence
-of filters so that we could manipulate the input stream. However, since
-this is a partial solution (not taking macro expansion into account)
-and since it may interfere with non-text, we will not use this feature
-by default.</p>
-
-<typing>
-characters.filters.utf.collapsing = true
-characters.filters.append(characters.filters.utf.collapse)
-characters.filters.activated = true
-callback.register('process_input_buffer', characters.filters.process)
-</typing>
-
-<p>The following helper functions may disappear (or become optional)
-in the future. Well, they are now.</p>
+<p>Next we implement some commands that are used in the user interface.</p>
--ldx]]--
---[[obsolete--
-
-characters.filters.sequences = characters.filters.sequences or { }
-characters.filters.activated = false
-
-function characters.filters.append(name)
- table.insert(characters.filters.sequences,name)
-end
-
-function characters.filters.prepend(name)
- table.insert(characters.filters.sequences,1,name)
-end
-
-function characters.filters.remove(name)
- for k,v in ipairs(characters.filters.sequences) do
- if v == name then
- table.remove(characters.filters.sequences,k)
- end
- end
-end
-
-function characters.filters.replace(name_1,name_2)
- for k,v in ipairs(characters.filters.sequences) do
- if v == name_1 then
- characters.filters.sequences[k] = name_2
- break
- end
- end
-end
+commands = commands or { }
-function characters.filters.insert_before(name_1,name_2)
- for k,v in ipairs(characters.filters.sequences) do
- if v == name_1 then
- table.insert(characters.filters.sequences,k,name_2)
- break
- end
- end
+function commands.uchar(first,second)
+ tex.sprint(ctxcatcodes,utfchar(first*256+second))
end
-function characters.filters.insert_after(name_1,name_2)
- for k,v in ipairs(characters.filters.sequences) do
- if v == name_1 then
- table.insert(characters.filters.sequences,k+1,name_2)
- break
- end
- end
-end
-
-function characters.filters.list(separator)
- table.concat(characters.filters.sequences,seperator or ' ')
-end
-
-function characters.filters.process(str)
- if characters.filters.activated then
- for _,v in ipairs(characters.filters.sequences) do
- str = v(str)
- end
- return str
- else
- return nil -- luatex callback optimalisation
- end
-end
-
---obsolete]]--
-
--[[ldx--
-<p>The following code is no longer needed and replaced by token
-collectors somehwere else.</p>
+<p>A few helpers (used to be <t>luat-uni<t/>).</p>
--ldx]]--
---[[obsolete--
-
-characters.filters.collector = { }
-characters.filters.collector.data = { }
-characters.filters.collector.collecting = false
-
-function characters.filters.collector.reset()
- characters.filters.collector.data = { }
-end
-
-function characters.filters.collector.flush(separator)
- tex.sprint(table.concat(characters.filters.collector.data,separator))
-end
-
-function characters.filters.collector.prune(n)
- for i=1,n do
- table.remove(characters.filters.collector.data,-1)
+function utf.split(str)
+ local t = { }
+ for snippet in utfcharacters(str) do
+ t[#t+1] = snippet
end
+ return t
end
-function characters.filters.collector.numerate(str)
- if characters.filters.collector.collecting then
- table.insert(characters.filters.collector.data,(unicode.utf8.gsub(str,"(.)", function(c)
- return string.format("0x%04X ",unicode.utf8.byte(c))
- end)))
+function utf.each(str,fnc)
+ for snippet in utfcharacters(str) do
+ fnc(snippet)
end
- return str
end
-
---obsolete]]--
diff --git a/Master/texmf-dist/tex/context/base/char-utf.tex b/Master/texmf-dist/tex/context/base/char-utf.mkiv
index 2e7156962fd..d21cd842cc2 100644
--- a/Master/texmf-dist/tex/context/base/char-utf.tex
+++ b/Master/texmf-dist/tex/context/base/char-utf.mkiv
@@ -1,8 +1,8 @@
%D \module
%D [ file=char-utf,
%D version=2006.12.05,
-%D title=\CONTEXT\ Lua Macros,
-%D subtitle=Unicode Support (UTF),
+%D title=\CONTEXT\ Character Support,
+%D subtitle=Unicode UTF,
%D author=Hans Hagen,
%D date=\currentdate,
%D copyright=PRAGMA]
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Unicode Support (utf)}
+\writestatus{loading}{ConTeXt Character Support / Unicode UTF}
%D After a bit of experimenting we reached a clean state where \UTF\
%D 8, 16 and 32 were supported as well as collapsing (combining
@@ -31,28 +31,10 @@
\appendtoks
\ctxlua {
characters.filters.utf.collapsing = true
- input.filters.utf_translator = characters.filters.utf.collapse
+ resolvers.install_text_filter('utf',characters.filters.utf.collapse)
}%
\to \everyjob
-% %D This is a hack, and only meant for special situations. We don't
-% %D support this in for instance verbatim. The active characters map
-% %D onto the \CONTEXT\ names and font handling etc. is up to the user.
-%
-% %D This feature is obsolete.
-%
-% \registerctxluafile{char-act}{1.001}
-%
-% \def\enableactiveutf {\ctxlua{characters.active.enable()}}
-% \def\disableactiveutf{\ctxlua{characters.active.disable()}}
-% \def\testactiveutf #1{\ctxlua{characters.active.test("#1")}}
-
-%D Usage:
-%D
-%D \starttyping
-%D \enableactiveutf \testactiveutf{eacute}
-%D \stoptyping
-
%D The next one influences input parsing.
%D
%D \starttyping
diff --git a/Master/texmf-dist/tex/context/base/chem-ini.lua b/Master/texmf-dist/tex/context/base/chem-ini.lua
new file mode 100644
index 00000000000..27b73484008
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/chem-ini.lua
@@ -0,0 +1,74 @@
+if not modules then modules = { } end modules ['chem-ini'] = {
+ version = 1.001,
+ comment = "companion to chem-ini.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local format, texsprint = string.format, tex.sprint
+
+local trace_molecules = false trackers.register("chemistry.molecules", function(v) trace_molecules = v end)
+
+local ctxcatcodes = tex.ctxcatcodes
+
+chemicals = chemicals or { }
+
+--[[
+<p>The next code is an adaptation of code from Wolfgang Schuster
+as posted on the mailing list. This version supports nested
+braces and unbraced integers as scripts. We could consider
+spaces as terminals for them but first let collect a bunch
+of input then.</p>
+]]--
+
+-- some lpeg, maybe i'll make an syst-lpg module
+
+local lowercase = lpeg.R("az")
+local uppercase = lpeg.R("AZ")
+local backslash = lpeg.P("\\")
+local csname = backslash * lpeg.P(1) * (1-backslash)^0
+local plus = lpeg.P("+") / "\\textplus "
+local minus = lpeg.P("-") / "\\textminus "
+local digit = lpeg.R("09")
+local sign = plus + minus
+local cardinal = digit^1
+local integer = sign^0 * cardinal
+
+local leftbrace = lpeg.P("{")
+local rightbrace = lpeg.P("}")
+local nobrace = 1 - (leftbrace + rightbrace)
+local nested = lpeg.P { leftbrace * (csname + sign + nobrace + lpeg.V(1))^0 * rightbrace }
+local any = lpeg.P(1)
+
+local subscript = lpeg.P("_")
+local superscript = lpeg.P("^")
+local somescript = subscript + superscript
+
+--~ local content = lpeg.Cs(nested + integer + sign + any)
+local content = lpeg.Cs(csname + nested + sign + any)
+
+-- could be made more efficient
+
+local lowhigh = lpeg.Cc("\\lohi{%s}{%s}") * subscript * content * superscript * content / format
+local highlow = lpeg.Cc("\\hilo{%s}{%s}") * superscript * content * subscript * content / format
+local low = lpeg.Cc("\\low{%s}") * subscript * content / format
+local high = lpeg.Cc("\\high{%s}") * superscript * content / format
+local justtext = (1 - somescript)^1
+local parser = lpeg.Cs((csname + lowhigh + highlow + low + high + sign + any)^0)
+
+chemicals.moleculeparser = parser -- can be used to avoid functioncall
+
+function chemicals.molecule(str)
+ return parser:match(str)
+end
+
+function commands.molecule(str)
+ if trace_molecules then
+ local rep = parser:match(str)
+ logs.report("chemistry", "molecule %s => %s",str,rep)
+ texsprint(ctxcatcodes,rep)
+ else
+ texsprint(ctxcatcodes,parser:match(str))
+ end
+end
diff --git a/Master/texmf-dist/tex/context/base/chem-ini.mkiv b/Master/texmf-dist/tex/context/base/chem-ini.mkiv
new file mode 100644
index 00000000000..da240dbace5
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/chem-ini.mkiv
@@ -0,0 +1,47 @@
+%D \module
+%D [ file=chem-ini,
+%D version=2008.03.06,
+%D subtitle=Chemistry,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=\PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Chemistry Macros / Initialization} % might become Inline
+
+\registerctxluafile{chem-ini}{1.001}
+
+\unprotect
+
+%D \macros
+%D {\molecule}
+%D
+%D Quick and dirty:
+%D
+%D \starttyping
+%D \def\molecule#1{$\enablesupersub\tf#1$}
+%D \stoptyping
+%D
+%D Using \LUA:
+%D
+%D \startbuffer
+%D \molecule{H_2SO_4^-2}
+%D \molecule{H_2SO_4^{-2}}
+%D \molecule{H_2SO_4^{-2{x}}}
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+
+\def\molecule#1{\ctxlua{commands.molecule(\!!bs#1\!!es)}}
+
+%D For old times sake:
+
+\def\chem#1#2#3%
+ {\dontleavehmode\begingroup#1\lohi{#2}{#3}\endgroup}
+
+\protect \endinput
+
+
diff --git a/Master/texmf-dist/tex/context/base/chem-str.lua b/Master/texmf-dist/tex/context/base/chem-str.lua
new file mode 100644
index 00000000000..8ab48fca2af
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/chem-str.lua
@@ -0,0 +1,488 @@
+if not modules then modules = { } end modules ['chem-str'] = {
+ version = 1.001,
+ comment = "companion to chem-str.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- This module in incomplete and experimental.
+
+-- We can push snippets into an mp instance.
+
+local trace_structure = false trackers.register("chemistry.structure", function(v) trace_structure = v end)
+local trace_textstack = false trackers.register("chemistry.textstack", function(v) trace_textstack = v end)
+
+local format, gmatch, match, lower, gsub = string.format, string.gmatch, string.match, string.lower, string.gsub
+local concat, insert, remove = table.concat, table.insert, table.remove
+local apply = structure.processors.apply
+local texsprint, ctxcatcodes = tex.sprint, tex.ctxcatcodes
+
+local variables = interfaces.variables
+
+chemicals = chemicals or { }
+
+chemicals.instance = "metafun" -- "ppchtex"
+chemicals.format = "metafun"
+chemicals.structures = 0
+
+local remapper = {
+ ["+"] = "p",
+ ["-"] = "m",
+}
+
+local common_keys = {
+ b = "line", eb = "line", db = "line", er = "line", dr = "line", br = "line",
+ sb = "line", msb = "line", psb = "line",
+ r = "line", pr = "line", mr = "line",
+ au = "line", ad = "line",
+ rb = "line", mrb = "line", prb = "line",
+ rd = "line", mrd = "line", prd = "line",
+ sr = "line", msr = "line", psr = "line",
+ c = "line", cc = "line", cd = "line", ccd = "line",
+ rn = "number", rtn = "number", rbn = "number",
+ s = "line", ss = "line", pss = "line", mss = "line",
+ mid = "fixed", mids = "fixed", midz = "text",
+ z = "text", rz = "text", mrz = "text", prz = "text", crz = "text",
+ rt = "text", rtt = "text", rbt = "text", zt = "text", zn = "number",
+ mov = "transform", rot = "transform", adj = "transform", dir = "transform", sub = "transform",
+}
+
+local front_keys = {
+ b = "line", bb= "line",
+ sb = "line", msb = "line", psb = "line",
+ r = "line", pr = "line", mr = "line",
+ z = "text", mrz = "text", prz = "text",
+}
+
+local one_keys = {
+ sb = "line", db = "line", tb = "line",
+ ep = "line", es = "line", ed = "line", et = "line",
+ sd = "line", ldd = "line", rdd = "line",
+ hb = "line", bb = "line", oe = "line",
+ z = "text", cz = "text", zt = "text", zn = "number",
+ zbt = "text", zbn = "number", ztt = "text", ztn = "number",
+ mov = "transform", sub = "transform", dir = "transform", off = "transform",
+}
+
+local front_align = {
+ mrz = { { "b","b","b","b","b","b" } },
+ prz = { { "t","t","t","t","t","t" } },
+}
+
+local syntax = {
+ one = {
+ n = 1, max = 8, keys = one_keys,
+ align = {
+ z = { { "r", "r_b", "b", "l_b", "l", "l_t", "t", "r_t" } },
+--~ z = { { "r", "r", "b", "l", "l", "l", "t", "r" } },
+ }
+ },
+ three = {
+ n = 3, max = 3, keys = common_keys,
+ align = {
+ mrz = { { "r","b","l" }, { "b","l","t" }, { "l","t","r" }, { "t","r","b" } },
+ rz = { { "r","l_b","l_t" }, { "b","l_t","r_t" }, { "l","r_t","r_b" }, { "t","r_b","l_b" } },
+ prz = { { "r","l","t" }, { "b","t","r" }, { "l","r","b" }, { "t","b","l" } },
+ }
+ },
+ four = {
+ n = 4, max = 4, keys = common_keys,
+ align = {
+ mrz = { { "t","r","b","l" }, { "r","b","l","t" }, { "b","l","t","r" }, { "l","t","r","b" } },
+ rz = { { "r_t","r_b","l_b","l_t" }, { "r_b","l_b","l_t","r_t" }, { "l_b","l_t","r_t","r_b" }, { "l_t","r_t","r_b","l_b" } },
+ prz = { { "r","b","l","t" }, { "b","l","t","r" }, { "l","t","r","b" }, { "t","r","b","l" } },
+ }
+ },
+ five = {
+ n = 5, max = 5, keys = common_keys,
+ align = {
+ mrz = { { "t","r","b","b","l" }, { "r","b","l","l","t" }, { "b","l","t","r","r" }, { "l","t","r","r","b" } },
+ rz = { { "r","r","b","l","t" }, { "b","b","l","t","r" }, { "l","l","t","r","b" }, { "t","t","r","b","l" } },
+ prz = { { "r","b","l","t","t" }, { "b","l","t","r","r" }, { "l","t","r","b","b" }, { "t","r","b","l","l" } },
+ }
+ },
+ six = {
+ n = 6, max = 6, keys = common_keys,
+ align = {
+ mrz = { { "t","t","r","b","b","l" }, { "r","b","b","l","t","t" }, { "b","b","l","t","t","r" }, { "l","t","t","r","b","b" } },
+ rz = { { "r","r","b","l","l","t" }, { "b","b","l","t","t","r" }, { "l","l","t","r","r","b" }, { "t","t","r","b","b","l" } },
+ prz = { { "r","b","l","l","t","r" }, { "b","l","t","t","r","b" }, { "l","t","r","r","b","l" }, { "t","r","b","b","l","t" } },
+ }
+ },
+ eight = {
+ n = 8, max = 8, keys = common_keys,
+ align = { -- todo
+ mrz = { { "t","r","r","b","b","l","l","t" }, { "r","b","b","l","l","t","t","r" }, { "b","l","l","t","t","r","r","b" }, { "l","t","t","r","r","b","b","l" } },
+ rz = { { "r","r","b","b","l","l","t","t" }, { "b","b","l","l","t","t","r","r" }, { "l","l","t","t","r","r","b","b" }, { "t","t","r","r","b","b","l","l" } },
+ prz = { { "r","b","b","l","l","t","t","r" }, { "b","l","l","t","t","r","r","b" }, { "l","t","t","r","r","b","b","l" }, { "t","r","r","b","b","l","l","t" } },
+ }
+ },
+ five_front = {
+ n = -5, max = 5, keys = front_keys, align = front_align,
+ },
+ six_front = {
+ n = -6, max = 6, keys = front_keys, align = front_align,
+ },
+ pb = { direct = 'chem_pb ;' },
+ pe = { direct = 'chem_pe ;' },
+ save = { direct = 'chem_save ;' },
+ restore = { direct = 'chem_restore ;' },
+ space = { direct = 'chem_symbol("\\chemicalsymbol[space]") ;' },
+ plus = { direct = 'chem_symbol("\\chemicalsymbol[plus]") ;' },
+ minus = { direct = 'chem_symbol("\\chemicalsymbol[minus]") ;' },
+ gives = { direct = 'chem_symbol("\\chemicalsymbol[gives]{%s}{%s}") ;', arguments = 2 },
+ equilibrium = { direct = 'chem_symbol("\\chemicalsymbol[equilibrium]{%s}{%s}") ;', arguments = 2 },
+ mesomeric = { direct = 'chem_symbol("\\chemicalsymbol[mesomeric]{%s}{%s}") ;', arguments = 2 },
+ opencomplex = { direct = 'chem_symbol("\\chemicalsymbol[opencomplex]") ;' },
+ closecomplex = { direct = 'chem_symbol("\\chemicalsymbol[closecomplex]") ;' },
+}
+
+local definitions = { }
+
+function chemicals.undefine(name)
+ definitions[name] = nil
+end
+
+function chemicals.define(name,spec,text)
+ local dn = definitions[name]
+ if not dn then dn = { } definitions[name] = dn end
+ dn[#dn+1] = {
+ spec = aux.settings_to_array(lower(spec)),
+ text = aux.settings_to_array(text),
+ }
+end
+
+local metacode, kind, keys, bonds, max, txt, textsize, rot, pstack
+local molecule = chemicals.molecule -- or use chemicals.moleculeparser:match(...)
+
+local function fetch(txt)
+ local st = stack[txt]
+ local t = st.text[st.n]
+--~ st.n = st.n + 1
+ while not t and txt > 1 do
+ txt = txt - 1
+ st = stack[txt]
+ t = st.text[st.n]
+--~ st.n = st.n + 1
+ end
+ if t then
+ if trace_textstack then
+ logs.report("chemical", "fetching from stack %s slot %s: %s",txt,st.n,t)
+ end
+st.n = st.n + 1
+ end
+ return txt, t
+end
+
+local digit = lpeg.R("09")/tonumber
+local colon = lpeg.P(":")
+local equal = lpeg.P("=")
+local other = 1 - digit - colon - equal
+local remapped = lpeg.S("+-") / remapper
+local operation = lpeg.Cs((remapped^0 * other)^1)
+local amount = digit
+local single = digit
+local special = (colon * lpeg.C(other^1)) + lpeg.Cc("")
+local range = digit * lpeg.P("..") * digit
+local set = lpeg.Ct(digit^2)
+local text = (equal * lpeg.C(lpeg.P(1)^0)) + lpeg.Cc(false)
+local pattern =
+ (amount + lpeg.Cc(1)) *
+ operation *
+ special * (
+ range * lpeg.Cc(false) * text +
+ lpeg.Cc(false) * lpeg.Cc(false) * set * text +
+ single * lpeg.Cc(false) * lpeg.Cc(false) * text +
+ lpeg.Cc(false) * lpeg.Cc(false) * lpeg.Cc(false) * text
+ )
+
+--~ local n, operation, index, upto, set, text = pattern:match("RZ1357")
+
+--~ print(pattern:match("RZ=x")) 1 RZ false false false x
+--~ print(pattern:match("RZ1=x")) 1 RZ 1 false false x
+--~ print(pattern:match("RZ1..3=x")) 1 RZ 1 3 false x
+--~ print(pattern:match("RZ13=x")) 1 RZ false false table x
+
+local function process(spec,text,n,rulethickness,rulecolor,offset)
+ insert(stack,{ spec=spec, text=text, n=n })
+ local txt = #stack
+ for i=1,#spec do
+ local s = spec[i]
+ local d = definitions[s]
+ if d then
+ for i=1,#d do
+ local di = d[i]
+ process(di.spec,di.text,1,rulethickness,rulecolor)
+ end
+ else
+ local rep, operation, special, index, upto, set, text = pattern:match(s)
+ if operation == "pb" then
+ insert(pstack,kind)
+ metacode[#metacode+1] = syntax.pb.direct
+ if keys[special] == "text" and index then
+ if keys["c"..special] == "text" then -- can be option: auto ...
+ metacode[#metacode+1] = format('chem_c%s(%s,%s,"");',special,bonds,index)
+ else
+ metacode[#metacode+1] = format('chem_%s(%s,%s,"");',special,bonds,index)
+ end
+ end
+ elseif operation == "save" then
+ insert(pstack,kind)
+ metacode[#metacode+1] = syntax.save.direct
+ elseif operation == "pe" or operation == "restore" then
+ kind = remove(pstack)
+ local ss = syntax[kind]
+ local prev = bonds or 6
+ keys, bonds, max, rot = ss.keys, ss.n, ss.max, 1
+ metacode[#metacode+1] = syntax[operation].direct
+ metacode[#metacode+1] = format("chem_set(%s,%s) ;",prev,bonds)
+ elseif operation == "front" then
+ if syntax[kind .. "_front"] then
+ kind = kind .. "_front"
+ local ss = syntax[kind]
+ local prev = bonds or 6
+ keys, bonds, max, rot = ss.keys, ss.n, ss.max, 1
+ metacode[#metacode+1] = format("chem_set(%s,%s) ;",prev,bonds)
+ end
+ elseif operation then
+ local ss = syntax[operation]
+ if ss then
+ local ds = ss.direct
+ if ds then
+ local sa = ss.arguments
+ if sa == 1 then
+ local one ; txt, one = fetch(txt)
+ metacode[#metacode+1] = format(ds,one or "")
+ elseif sa ==2 then
+ local one ; txt, one = fetch(txt)
+ local two ; txt, two = fetch(txt)
+ metacode[#metacode+1] = format(ds,one or "",two or "")
+ else
+ metacode[#metacode+1] = ds
+ end
+ elseif ss.keys then
+ local prev = bonds or 6
+ kind, keys, bonds, max, rot = s, ss.keys, ss.n, ss.max, 1
+ metacode[#metacode+1] = format("chem_set(%s,%s) ;",prev,bonds)
+ end
+ else
+ local what = keys[operation]
+ if what == "line" then
+ if set then
+ for i=1,#set do
+ local si = set[i]
+ metacode[#metacode+1] = format("chem_%s(%s,%s,%s,%s,%s);",operation,bonds,si,si,rulethickness,rulecolor)
+ end
+ elseif upto then
+ metacode[#metacode+1] = format("chem_%s(%s,%s,%s,%s,%s);",operation,bonds,index,upto,rulethickness,rulecolor)
+ elseif index then
+ metacode[#metacode+1] = format("chem_%s(%s,%s,%s,%s,%s);",operation,bonds,index,index,rulethickness,rulecolor)
+ else
+ metacode[#metacode+1] = format("chem_%s(%s,%s,%s,%s,%s);",operation,bonds,1,max,rulethickness,rulecolor)
+ end
+ elseif what == "number" then
+ if set then
+ for i=1,#set do
+ local si = set[i]
+ metacode[#metacode+1] = format('chem_%s(%s,%s,"\\dochemicaltext{%s}");',operation,bonds,si,si)
+ end
+ elseif upto then
+ for i=index,upto do
+ local si = set[i]
+ metacode[#metacode+1] = format('chem_%s(%s,%s,"\\dochemicaltext{%s}");',operation,bonds,si,si)
+ end
+ elseif index then
+ metacode[#metacode+1] = format('chem_%s(%s,%s,"\\dochemicaltext{%s}");',operation,bonds,index,index)
+ else
+ for i=1,max do
+ metacode[#metacode+1] = format('chem_%s(%s,%s,"\\dochemicaltext{%s}");',operation,bonds,i,i)
+ end
+ end
+ elseif what == "text" then
+ local align = syntax[kind].align
+ align = align and align[operation]
+ align = align and align[rot]
+ if set then
+ for i=1,#set do
+ local si = set[i]
+ local t = text
+ if not t then txt, t = fetch(txt) end
+ if t then
+ local a = align and align[si]
+ if a then a = "." .. a else a = "" end
+ metacode[#metacode+1] = format('chem_%s%s(%s,%s,"\\dochemicaltext{%s}");',operation,a,bonds,si,molecule(apply(t)))
+ end
+ end
+ elseif upto then
+ for i=index,upto do
+ local t = text
+ if not t then txt, t = fetch(txt) end
+ if t then
+ local s = align and align[i]
+ if s then s = "." .. s else s = "" end
+ metacode[#metacode+1] = format('chem_%s%s(%s,%s,"\\dochemicaltext{%s}");',operation,s,bonds,i,molecule(apply(t)))
+ end
+ end
+ elseif index == 0 then
+ local t = text
+ if not t then txt, t = fetch(txt) end
+ if t then
+ metacode[#metacode+1] = format('chem_%s_zero("\\dochemicaltext{%s}");',operation,molecule(apply(t)))
+ end
+ elseif index then
+ local t = text
+ if not t then txt, t = fetch(txt) end
+ if t then
+ local s = align and align[index]
+ if s then s = "." .. s else s = "" end
+ metacode[#metacode+1] = format('chem_%s%s(%s,%s,"\\dochemicaltext{%s}");',operation,s,bonds,index,molecule(apply(t)))
+ end
+ else
+ for i=1,max do
+ local t = text
+ if not t then txt, t = fetch(txt) end
+ if t then
+ local s = align and align[i]
+ if s then s = "." .. s else s = "" end
+ metacode[#metacode+1] = format('chem_%s%s(%s,%s,"\\dochemicaltext{%s}");',operation,s,bonds,i,molecule(apply(t)))
+ end
+ end
+ end
+ elseif what == "transform" then
+ if index then
+ for r=1,rep do
+ metacode[#metacode+1] = format('chem_%s(%s,%s);',operation,bonds,index)
+ end
+ if operation == "rot" then
+ rot = index
+ end
+ end
+ elseif what == "fixed" then
+ metacode[#metacode+1] = format("chem_%s(%s,%s,%s);",operation,bonds,rulethickness,rulecolor)
+ end
+ end
+ end
+ end
+ end
+ remove(stack)
+end
+
+-- the size related values are somewhat special but we want to be
+-- compatible
+--
+-- maybe we should default to fit
+--
+-- rulethickness in points
+
+function chemicals.start(settings)
+ chemicals.structures = chemicals.structures + 1
+ local textsize, rulethickness, rulecolor = settings.size, settings.rulethickness, settings.rulecolor
+ local width, height, scale, offset = settings.width or 0, settings.height or 0, settings.scale or "medium", settings.offset or 0
+ local l, r, t, b = settings.left or 0, settings.right or 0, settings.top or 0, settings.bottom or 0
+ if scale == variables.small then
+ scale = 500
+ elseif scale == variables.medium or scale == 0 then
+ scale = 625
+ elseif scale == variables.big then
+ scale = 750
+ else
+ scale = tonumber(scale)
+ if not scale or scale == 0 then
+ scale = 750
+ elseif scale < 500 then
+ scale = 500
+ end
+ end
+ if width == variables.fit then
+ width = true
+ else
+ width = tonumber(width) or 0
+ if l == 0 then
+ if r == 0 then
+ l = (width == 0 and 2000) or width/2
+ r = l
+ elseif width ~= 0 then
+ l = width - r
+ end
+ elseif r == 0 and width ~= 0 then
+ r = width - l
+ end
+ width = false
+ end
+ if height == variables.fit then
+ height = true
+ else
+ height = tonumber(height) or 0
+ if t == 0 then
+ if b == 0 then
+ t = (height == 0 and 2000) or height/2
+ b = t
+ elseif height ~= 0 then
+ t = height - b
+ end
+ elseif b == 0 and height ~= 0 then
+ b = height - t
+ end
+ height = false
+ end
+ scale = 0.75 * scale/625
+ metacode = { format("chem_start_structure(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s) ;",
+ chemicals.structures,
+ l/25, r/25, t/25, b/25, scale,
+ tostring(settings.axis == variables.on), tostring(width), tostring(height), tostring(offset)
+ ) }
+ kind, keys, bonds, stack, rot, pstack = "six", { }, 6, { }, 1, { }
+end
+
+function chemicals.stop()
+ metacode[#metacode+1] = "chem_stop_structure ;"
+ local mpcode = concat(metacode,"\n")
+ if trace_structure then
+ logs.report("chemical", "metapost code:\n%s", mpcode)
+ end
+ metapost.graphic(chemicals.instance,chemicals.format,mpcode,"")
+ metacode = nil
+end
+
+function chemicals.component(spec,text,settings)
+ rulethickness, rulecolor, offset = settings.rulethickness, settings.rulecolor
+ local spec = aux.settings_to_array(lower(spec))
+ local text = aux.settings_to_array(text)
+ metacode[#metacode+1] = "chem_start_component ;"
+ process(spec,text,1,rulethickness,rulecolor)
+ metacode[#metacode+1] = "chem_stop_component ;"
+end
+
+local inline = {
+ ["single"] = "\\chemicalsinglebond", ["-"] = "\\chemicalsinglebond",
+ ["double"] = "\\chemicaldoublebond", ["--"] = "\\chemicaldoublebond",
+ ["triple"] = "\\chemicaltriplebond", ["---"] = "\\chemicaltriplebond",
+ ["gives"] = "\\chemicalgives", ["->"] = "\\chemicalgives",
+ ["equilibrium"] = "\\chemicalequilibrium", ["<->"] = "\\chemicalequilibrium",
+ ["mesomeric"] = "\\chemicalmesomeric", ["<>"] = "\\chemicalmesomeric",
+ ["plus"] = "\\chemicalsplus", ["+"] = "\\chemicalsplus",
+ ["minus"] = "\\chemicalsminus",
+ ["space"] = "\\chemicalsspace",
+}
+
+-- todo: top / bottom
+
+function chemicals.inline(spec)
+ local spec = aux.settings_to_array(spec)
+ for i=1,#spec do
+ local s = spec[i]
+ local inl = inline[lower(s)]
+ if inl then
+ texsprint(ctxcatcodes,inl)
+ else
+ texsprint(ctxcatcodes,format("\\chemicalinline{%s}",molecule(s)))
+ end
+ end
+end
+
+statistics.register("chemical formulas", function()
+ if chemicals.structures > 0 then
+ return format("%s chemical structure formulas",chemicals.structures) -- no timing needed, part of metapost
+ end
+end)
diff --git a/Master/texmf-dist/tex/context/base/chem-str.mkiv b/Master/texmf-dist/tex/context/base/chem-str.mkiv
new file mode 100644
index 00000000000..29c6fe939bd
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/chem-str.mkiv
@@ -0,0 +1,526 @@
+%D \module
+%D [ file=chem-ini,
+%D version=2009.05.13,
+%D subtitle=Chemistry,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=\PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D This module in incomplete and experimental. Eventually this code
+%D will replace \PPCHTEX.
+
+\writestatus{loading}{ConTeXt Chemistry Macros / Structure}
+
+\registerctxluafile{chem-str}{1.001}
+
+% We have a slightly different interface. This is unchanged:
+%
+% \startchemical[axis=on]
+% \chemical[SIX,ROT2,B,R6,SUB1,FIVE,ROT1,B][1]
+% \stopchemical
+%
+% Here we use chemicalformula instead, so no longer a mix:
+%
+% \startchemicalformula
+% \chemical{H_2}{top}{bottom}
+% \chemical{PLUS}{top}{bottom}
+% \chemical{O}{top}{bottom}
+% \chemical{GIVES}{top}{bottom}
+% \chemical{H_2O}{top}{bottom}
+% \stopchemicalformula
+%
+% \startchemicalformula
+% \chemical{H_2}
+% \chemical{PLUS}
+% \chemical{O}
+% \chemical{GIVES}
+% \chemical{H_2O}
+% \stopchemicalformula
+%
+% The inline variant has only one argument:
+%
+% \chemical{H_2,PLUS,O,GIVES,H_2O}
+
+% todo: seven | eight | frontsix | fontfive | carbon | newmans | chair
+
+\unprotect
+
+\def\setupchemical
+ {\dosingleempty\dosetupchemical}
+
+\def\dosetupchemical
+ {\getparameters[\??cm]}
+
+\let\setupchemicals\setupchemical
+
+\def\setupchemicalframed
+ {\dosingleempty\dosetupchemicalframed}
+
+\def\dosetupchemicalframed
+ {\getparameters[\??cm:\c!frame]}
+
+\def\chemicalparameter#1{\csname\??cm#1\endcsname}
+
+\def\definechemical
+ {\dosingleargument\dodefinechemical} % global
+
+\def\dodefinechemical[#1]#2%
+ {\startnointerference
+ \ctxlua{chemicals.undefine("#1")}%
+ \def\chemical{\dodoubleempty\dostructurechemical}%
+ \def\dostructurechemical[##1][##2]{\ctxlua{chemicals.define("#1",\!!bs##1\!!es,\!!bs\detokenize{##2}\!!es)}}%
+ #2% flush
+ \stopnointerference}
+
+\def\definechemicalsymbol
+ {\dodoubleempty\dodefinechemicalsymbol}
+
+\def\dodefinechemicalsymbol[#1][#2]%
+ {\setvalue{\??cm::#1}{#2}}
+
+\def\chemicalsymbol[#1]%
+ {\getvalue{\??cm::#1}}
+
+% size (small medium big)
+
+\def\dosetchemicaltext
+ {\dosetfontattribute \??cm\c!style
+ \dosetcolorattribute\??cm\c!color}
+
+\def\dochemicaltext#1%
+ {\dosetchemicaltext\strut#1} % maybe also \setstrut
+
+\edef\chemicaltoplocation{t}
+\edef\chemicalbotlocation{b}
+
+\def\dochemicaltext#1% in ppchtex we had a more clever alignment
+ {\dosetchemicaltext\strut#1} % maybe also \setstrut
+
+\newconditional\indisplaychemical
+
+\unexpanded\def\startchemical
+ {\dosingleempty\dostartchemical}
+
+\setvalue{\??cm:\c!size:\v!small }{\txx}
+\setvalue{\??cm:\c!size:\v!medium}{\tx}
+\setvalue{\??cm:\c!size:\v!big }{}
+
+\newtoks \everychemical
+\newtoks \everystructurechemical
+\newtoks \withchemicalbox
+\newbox \chemicalbox
+\newconditional\somechemicaltext
+\newdimen \chemicalwidth
+\newdimen \chemicalheight
+\newdimen \chemicaldepth
+
+\def\dostartchemical[#1]%
+ {\ifmmode\vcenter\else\vbox\fi
+ \bgroup
+ \dontcomplain
+ \settrue\indisplaychemical
+ \forgetall
+ \getparameters[\??cm][#1]%
+ \the\everystructurechemical
+ \setbox\chemicalbox\hbox\bgroup
+ \ctxlua{chemicals.start {
+ width = "\chemicalparameter\c!width",
+ height = "\chemicalparameter\c!height",
+ left = \chemicalparameter\c!left,
+ right = \chemicalparameter\c!right,
+ top = \chemicalparameter\c!top,
+ bottom = \chemicalparameter\c!bottom,
+ scale = "\chemicalparameter\c!scale",
+ axis = "\chemicalparameter\c!axis",
+ offset = "\the\dimexpr.25em\relax",
+ } }%
+ \startnointerference}
+
+\unexpanded\def\stopchemical
+ {\stopnointerference
+ \ctxlua{chemicals.stop()}%
+ \egroup
+ \chemicalwidth \wd\chemicalbox
+ \chemicalheight\ht\chemicalbox
+ \chemicaldepth \dp\chemicalbox
+ \the\withchemicalbox
+ \doifelsenothing{\chemicalparameter\c!frame}\handlechemicalframednop\handlechemicalframedyes
+ \egroup}
+
+\def\handlechemicalframedyes
+ {\localframed%
+ [\??cm:\c!frame]%
+ [\c!frame=\chemicalparameter\c!frame,\c!align=\v!normal,\c!strut=\v!no]{\vbox{\box\chemicalbox\vss}}} % remove depth
+
+\def\handlechemicalframednop
+ {\localframed%
+ [\??cm:\c!frame]%
+ [\c!align=\v!normal,\c!strut=\v!no]{\vbox{\box\chemicalbox\vss}}} % remove depth
+
+\let\startstructurechemical\startchemical
+\let\stopstructurechemical \stopchemical
+
+\unexpanded\def\structurechemical
+ {\dotripleempty\dostructurechemical}
+
+\appendtoks
+ \let\chemical\structurechemical
+\to\everystructurechemical
+
+\def\dostructurechemical
+ {\ifthirdargument
+ \expandafter\dostructurechemicalthree
+ \else
+ \expandafter\dostructurechemicaltwo
+ \fi}
+
+\def\dostructurechemicalthree[#1][#2][#3]%
+ {\writestatus\m!chemicals{hyperlinked chemicals not yet supported}% todo reference, for the moment ignored
+ \ctxlua{chemicals.component(\!!bs#2\!!es, \!!bs\detokenize{#3}\!!es, { % maybe also pass first two args this way
+ rulethickness = "\the\dimexpr\chemicalparameter\c!rulethickness\relax", % todo: scaled points
+ rulecolor = "\MPcolor{\chemicalparameter\c!rulecolor}" % we can precalculate this for speedup
+ } ) }%
+ \ignorespaces}
+
+\def\dostructurechemicaltwo[#1][#2]%
+ {\ctxlua{chemicals.component(\!!bs#1\!!es,\!!bs\detokenize{#2}\!!es, { % maybe also pass first two args this way
+ rulethickness = "\the\dimexpr\chemicalparameter\c!rulethickness\relax", % todo: scaled points
+ rulecolor = "\MPcolor{\chemicalparameter\c!rulecolor}" % we can precalculate this for speedup
+ } ) }%
+ \ignorespaces}
+
+\appendtoks
+ \setbox\chemicalbox\hbox{\raise\MPlly\onebasepoint\box\chemicalbox}%
+ \chemicalwidth \wd\chemicalbox
+ \chemicalheight\ht\chemicalbox
+ \chemicaldepth \dp\chemicalbox
+\to \withchemicalbox
+
+% kind of compatible, but text sizes instead of math sizes (i.e. tx is larger than scriptsize)
+
+\appendtoks
+ \edef\chemicalbodyfont{\chemicalparameter\c!bodyfont}%
+ \doifnot\chemicalbodyfont\fontbody{\switchtobodyfont[\chemicalbodyfont]}% \fontbody is not expanded (yet)
+ \getvalue{\??cm:\c!size:\chemicalparameter\c!size}%
+% \to \everystructurechemical
+\to \everychemical
+
+\def\chemicaltoptext#1{\global\settrue\somechemicaltext\gdef\thetoptext{#1}\ignorespaces}
+\def\chemicalbottext#1{\global\settrue\somechemicaltext\gdef\thebottext{#1}\ignorespaces}
+\def\chemicalmidtext#1{\global\settrue\somechemicaltext\gdef\themidtext{#1}\ignorespaces}
+
+\appendtoks
+ \let\toptext\chemicaltoptext \glet\thetoptext\empty
+ \let\bottext\chemicalbottext \glet\thebottext\empty
+ \let\midtext\chemicalmidtext \glet\themidtext\empty
+ \global\setfalse\somechemicaltext
+\to \everystructurechemical
+
+\def\doaddchemicaltexts
+ {\setbox2\hbox to \chemicalwidth{\strut\hss\hbox{\strut\themidtext}\hss}%
+ \setbox4\hbox to \chemicalwidth{\strut\hss\hbox{\strut\thetoptext}\hss}%
+ \setbox6\hbox to \chemicalwidth{\strut\hss\hbox{\strut\thebottext}\hss}%
+ \setbox\chemicalbox\hbox \bgroup
+ \box\chemicalbox
+ \hskip-\chemicalwidth
+ \raise\chemicalheight\hbox{\lower\ht4\box4}%
+ \hskip-\chemicalwidth
+ \lower.5\dimexpr\ht2-\dp2\relax\box2%
+ \hskip-\chemicalwidth
+ \lower\chemicaldepth \hbox{\raise\dp6\box6}%
+ \hss
+ \egroup} % text on top of chemicals
+
+\appendtoks
+ \ifconditional\somechemicaltext
+ \doaddchemicaltexts
+ \chemicalwidth \wd\chemicalbox
+ \chemicalheight\ht\chemicalbox
+ \chemicaldepth \dp\chemicalbox
+ \fi
+\to \withchemicalbox
+
+% todo: enspace or emspace
+
+\definechemicalsymbol[space] [\enspace\quad\enspace]
+\definechemicalsymbol[plus] [\enspace+\enspace]
+\definechemicalsymbol[minus] [\enspace-\enspace]
+\definechemicalsymbol[gives] [\dochemicalarrow\xrightarrow]
+\definechemicalsymbol[equilibrium] [\dochemicalarrow\xrightoverleftarrow]
+\definechemicalsymbol[mesomeric] [\dochemicalarrow\xleftrightarrow]
+\definechemicalsymbol[opencomplex] [\mathematics{\Bigg[}] % not yet ok
+\definechemicalsymbol[closecomplex][\mathematics{\Bigg]}] % not yet ok
+
+\definechemicalsymbol[SPACE] [{\chemicalsymbol[space]}]
+\definechemicalsymbol[PLUS] [{\chemicalsymbol[plus]}]
+\definechemicalsymbol[MINUS] [{\chemicalsymbol[minus]}]
+\definechemicalsymbol[GIVES] [{\chemicalsymbol[gives]}]
+\definechemicalsymbol[EQUILIBRIUM] [{\chemicalsymbol[equilibrium]}]
+\definechemicalsymbol[MESOMERIC] [{\chemicalsymbol[mesomeric]}]
+\definechemicalsymbol[OPENCOMPLEX] [{\chemicalsymbol[opencomplex]}]
+\definechemicalsymbol[CLOSECOMPLEX][{\chemicalsymbol[closecomplex]}]
+
+\def\dochemicalarrow#1#2#3%
+ {\enspace
+ \mathematics{#1%
+ {\strut\hbox \!!spread 2em{\hss\ctxlua{chemicals.inline(\!!bs#2\!!es)}\hss}}%
+ {\strut\hbox \!!spread 2em{\hss\ctxlua{chemicals.inline(\!!bs#3\!!es)}\hss}}}%
+ \enspace}
+
+% special macros (probably needs some more work)
+
+\def\dochemicaltop#1#2#3#4%
+ {\begingroup
+ \setbox0\hbox{\tx\setstrut\strut#3}%
+ \setbox2\hbox{\setstrut\strut\molecule{#4}}%
+ \setbox0\hbox{\raise\dimexpr\dp0+\ht2\relax\hbox to \wd2{#1\box0#2}}%
+ \smashbox0
+ \hbox{\box0\box2}%
+ \endgroup}%
+
+\def\dochemicalbottom#1#2#3#4%
+ {\begingroup
+ \setbox0\hbox{\tx\setstrut\strut#3}%
+ \setbox2\hbox{\setstrut\strut#4}%
+ \setbox0\hbox{\lower\dimexpr\dp2+\ht0\relax\hbox to \wd2{#1\box0#2}}%
+ \smashbox0
+ \hbox{\box0\box2}%
+ \endgroup}%
+
+\unexpanded\def\chemicalleft#1#2%
+ {\begingroup
+ \hbox{\llap{\tx\setstrut\strut#1}\setstrut\strut#2}%
+ \endgroup}%
+
+\unexpanded\def\chemicalright#1#2%
+ {\begingroup
+ \hbox{\setstrut\strut#2\rlap{\tx\setstrut\strut#1}}%
+ \endgroup}%
+
+\unexpanded\def\chemicaltop {\dochemicaltop \hss \hss }
+\unexpanded\def\chemicallefttop {\dochemicaltop \relax \hss }
+\unexpanded\def\chemicalrighttop {\dochemicaltop \hss \relax}
+\unexpanded\def\chemicalbottom {\dochemicalbottom \hss \hss }
+\unexpanded\def\chemicalleftbottom {\dochemicalbottom \relax \hss }
+\unexpanded\def\chemicalrightbottom {\dochemicalbottom \hss \relax}
+
+\unexpanded\def\chemicaltopleft #1{\chemicalleft {\chemicalrighttop {#1}{}}}
+\unexpanded\def\chemicalbottomleft #1{\chemicalleft {\chemicalrightbottom{#1}{}}}
+\unexpanded\def\chemicaltopright #1{\chemicalright{\chemicallefttop {#1}{}}}
+\unexpanded\def\chemicalbottomright #1{\chemicalright{\chemicalleftbottom {#1}{}}}
+
+\unexpanded\def\chemicalcentered #1{\setbox\scratchbox\hbox{C}\hbox to \wd\scratchbox{\setstrut\strut\hss#1\hss}}
+\unexpanded\def\chemicalleftcentered #1{\setbox\scratchbox\hbox{C}\hbox to \wd\scratchbox{\setstrut\strut #1\hss}}
+\unexpanded\def\chemicalrightcentered#1{\setbox\scratchbox\hbox{C}\hbox to \wd\scratchbox{\setstrut\strut\hss#1}}
+
+\let\chemicalsmashedmiddle\chemicalcentered
+\let\chemicalsmashedleft \chemicalleftcentered
+\let\chemicalsmashedright \chemicalrightcentered
+
+\unexpanded\def\chemicaloxidation#1#2#3%
+ {\chemicaltop{\txx\ifcase#2\relax0\else#1\uppercase\expandafter{\romannumeral#2}\fi}{#3}}
+
+\unexpanded\def\chemicaloxidationplus {\dotriplegroupempty\chemicaloxidation{\textplus }} % {} needed!
+\unexpanded\def\chemicaloxidationminus{\dotriplegroupempty\chemicaloxidation{\textminus}} % {} needed!
+\unexpanded\def\chemicalforeveropen {\dotriplegroupempty\chemicalleft {$\big[$}} % {} needed!
+\unexpanded\def\chemicalforeverclose {\dotriplegroupempty\chemicalright {$\big]$}} % {} needed!
+\unexpanded\def\chemicaloxidationone {\chemicaloxidation\relax1}
+\unexpanded\def\chemicaloxidationtwo {\chemicaloxidation\relax2}
+\unexpanded\def\chemicaloxidationthree{\chemicaloxidation\relax3}
+\unexpanded\def\chemicaloxidationfour {\chemicaloxidation\relax4}
+\unexpanded\def\chemicaloxidationfive {\chemicaloxidation\relax5}
+\unexpanded\def\chemicaloxidationsix {\chemicaloxidation\relax6}
+\unexpanded\def\chemicaloxidationseven{\chemicaloxidation\relax7}
+
+\appendtoks
+ \let \+\chemicaloxidationplus
+ \let \-\chemicaloxidationminus
+ \let \[\chemicalforeveropen
+ \let \]\chemicalforeverclose
+ \let \1\chemicaloxidationone
+ \let \2\chemicaloxidationtwo
+ \let \3\chemicaloxidationthree
+ \let \4\chemicaloxidationfour
+ \let \5\chemicaloxidationfive
+ \let \6\chemicaloxidationsix
+ \let \7\chemicaloxidationseven
+ \let \X\chemicaltighttext
+ \let \T\chemicaltop
+ \let \B\chemicalbottom
+ \let \L\chemicalleft
+ \let\LC\chemicalleftcentered
+ \let \R\chemicalright
+ \let\RC\chemicalrightcentered
+ \let\TL\chemicaltopleft
+ \let\BL\chemicalbottomleft
+ \let\TR\chemicaltopright
+ \let\BR\chemicalbottomright
+ \let\LT\chemicallefttop
+ \let\LB\chemicalleftbottom
+ \let\RT\chemicalrighttop
+ \let\RB\chemicalrightbottom
+ \let\SL\chemicalsmashedleft
+ \let\SM\chemicalsmashedmiddle
+ \let\SR\chemicalsmashedright
+\to \everychemical
+
+\appendtoks
+ \the\everychemical
+\to \everystructurechemical
+
+% inline
+
+\unexpanded\def\chemical
+ {\ifinformula
+ \expandafter\displaychemical
+ \else
+ \expandafter\inlinechemical
+ \fi}
+
+\def\displaychemical
+ {\dotriplegroupempty\dodisplaychemical}
+
+\def\dodisplaychemical#1#2#3% todo:
+ {\the\everychemical \everychemical\emptytoks
+ \quad
+ \vcenter\bgroup
+ \ifthirdargument
+ \ifsecondargument
+ \halign{&\hss##\hss\cr#2\cr\molecule{#1}\cr#3\cr}%
+ \else
+ \halign{&\hss##\hss\cr\molecule{#1}\cr#2\cr}%
+ \fi
+ \else
+ \hbox{\molecule{#1}}%
+ \fi
+ \egroup
+ \quad}
+
+\def\inlinechemical#1%
+ {\dontleavehmode\hbox{\ctxlua{chemicals.inline(\!!bs#1\!!es)}}}
+
+\def\chemicalbondrule{\hbox{\vrule\!!height.75ex\!!depth-\dimexpr.75ex-\linewidth\relax\!!width1em\relax}}
+
+\definechemicalsymbol[i:space] [\enspace\quad\enspace]
+\definechemicalsymbol[i:plus] [\enspace\mathematics{+}\enspace]
+\definechemicalsymbol[i:minus] [\enspace\mathematics{-}\enspace]
+\definechemicalsymbol[i:gives] [\enspace\mathematics{\xrightarrow{}{}}\enspace]
+\definechemicalsymbol[i:equilibrium] [\enspace\mathematics{\xrightpverleftarrow{}{}}\enspace]
+\definechemicalsymbol[i:mesomeric] [\enspace\mathematics{\xleftrightarrow{}{}}\enspace]
+\definechemicalsymbol[i:single] [\chemicalbondrule]
+\definechemicalsymbol[i:tripple] [\hbox{\lower.5ex\chemicalbondrule\hskip-1em\raise.5ex\chemicalbondrule}]
+\definechemicalsymbol[i:double] [\hbox{\chemicalbondrule\hskip-1em\lower.5ex\chemicalbondrule\hskip-1em\raise.5ex\chemicalbondrule}]
+
+\def\chemicalsinglebond {\chemicalsymbol[i:single]}
+\def\chemicaldoublebond {\chemicalsymbol[i:tripple]}
+\def\chemicaltriplebond {\chemicalsymbol[i:double]}
+\def\chemicalgives {\chemicalsymbol[i:gives]}
+\def\chemicalmesomeric {\chemicalsymbol[i:mesomeric]}
+\def\chemicalequilibrium{\chemicalsymbol[i:equilibrium]}
+\def\chemicalsplus {\chemicalsymbol[i:plus]}
+\def\chemicalsminus {\chemicalsymbol[i:minus]}
+\def\chemicalsspace {\chemicalsymbol[i:space]}
+\def\chemicalinline #1{#1}
+
+% display
+
+\newconditional\formulachemicalhastop
+\newconditional\formulachemicalhasbot
+
+\newtoks\formulachemicaltop
+\newtoks\formulachemicalmid
+\newtoks\formulachemicalbot
+
+\newif\ifinchemicalformula
+
+\def\startchemicalformula
+ {\mathortext\vcenter\vbox\bgroup
+ \forgetall
+ \inchemicalformulatrue
+ \the\everychemical
+ \everychemical\emptytoks
+ \formulachemicaltop\emptytoks % not needed
+ \formulachemicalmid\emptytoks % not needed
+ \formulachemicalbot\emptytoks % not needed
+ \let\chemical\formulachemical
+ \setfalse\formulachemicalhastop
+ \setfalse\formulachemicalhasbot }
+
+\def\stopchemicalformula
+ {\tabskip1em\relax
+ \nointerlineskip
+ \ifconditional\formulachemicalhastop
+ \ifconditional\formulachemicalhasbot
+ \halign{&\hss##\hss\cr\the\formulachemicaltop\cr\the\formulachemicalmid\cr\the\formulachemicalbot\cr}%
+ \else
+ \halign{&\hss##\hss\cr\the\formulachemicaltop\cr\the\formulachemicalmid\cr}%
+ \fi
+ \else
+ \ifconditional\formulachemicalhasbot
+ \halign{&\hss##\hss\cr\the\formulachemicalmid\cr\the\formulachemicalbot\cr}%
+ \else
+ \halign{&\hss##\hss\cr\the\formulachemicalmid\cr}%
+ \fi
+ \fi
+ \egroup}
+
+\unexpanded\def\formulachemical
+ {\relax\dotriplegroupempty\doformulachemical}
+
+\def\doformulachemical#1#2#3%
+ {\ifthirdargument
+ \doifelsenothing{#2}\noformulachemicaltop{\doformulachemicaltop{#2}}%
+ \doifelsenothing{#3}\noformulachemicalbot{\doformulachemicalbot{#3}}%
+ \else\ifsecondargument
+ \noformulachemicaltop
+ \doifelsenothing{#2}\noformulachemicalbot{\doformulachemicalbot{#2}}%
+ \else
+ \noformulachemicaltop
+ \noformulachemicalbot
+ \fi\fi
+ \formulachemicalmid\expandafter{\the\formulachemicalmid\dodochemicalformulamid{#1}&}}
+
+\def\noformulachemicaltop {\formulachemicaltop\expandafter{\the\formulachemicaltop&}}
+\def\noformulachemicalbot {\formulachemicalbot\expandafter{\the\formulachemicalbot&}}
+\def\doformulachemicaltop#1{\formulachemicaltop\expandafter{\the\formulachemicaltop\dodochemicalformulatop{#1}&}\settrue\formulachemicalhastop}
+\def\doformulachemicalbot#1{\formulachemicalbot\expandafter{\the\formulachemicalbot\dodochemicalformulabot{#1}&}\settrue\formulachemicalhasbot}
+
+\def\dodochemicalformulamid#1%
+ {\ifcsname\??cm::\detokenize{#1}\endcsname\csname\??cm::\detokenize{#1}\expandafter\endcsname\else\molecule{#1}\fi{}{}}
+
+\def\dodochemicalformulatop#1{\strut#1}
+\def\dodochemicalformulabot#1{\strut#1}
+
+% gone: state option resolution offset (now frame offset) alternative
+
+\setupchemicalframed
+ [\c!align=\v!normal,
+ \c!strut=\v!no,
+ \c!offset=\v!overlay,
+ \c!frame=off]
+
+\setupchemical
+ [\c!frame=,
+ \c!width=0,
+ \c!height=0,
+ \c!left=0,
+ \c!right=0,
+ \c!top=0,
+ \c!bottom=0,
+ \c!bodyfont=\the\bodyfontsize,
+ \c!scale=\v!medium,
+ \c!size=\v!medium,
+ \c!textsize=\v!big,
+ \c!axis=\v!off,
+ \c!style=\rm,
+ \c!location=,
+ \c!color=,
+ \c!rulethickness=\linewidth,
+ \c!rulecolor=,
+ \c!factor=1]
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/colo-ext.tex b/Master/texmf-dist/tex/context/base/colo-ext.mkii
index 33e87459df1..06facd34ee2 100644
--- a/Master/texmf-dist/tex/context/base/colo-ext.tex
+++ b/Master/texmf-dist/tex/context/base/colo-ext.mkii
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Color Macros / extras}
+\writestatus{loading}{ConTeXt Color Macros / Extras}
\unprotect
diff --git a/Master/texmf-dist/tex/context/base/colo-ext.mkiv b/Master/texmf-dist/tex/context/base/colo-ext.mkiv
new file mode 100644
index 00000000000..1c1f0d1afff
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/colo-ext.mkiv
@@ -0,0 +1,57 @@
+%D \module
+%D [ file=colo-ext, % mostof thsi code used to be in colo-ini.tex
+%D version=1997.04.01,
+%D title=\CONTEXT\ Color Macros,
+%D subtitle=Extras,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Color Macros / Extras}
+
+\unprotect
+
+%D \macros
+%D {negatecolorcomponent, negativecolorbox}
+%D
+%D Sometimes, especially when we deal with typesetting
+%D devices, we want to reverse the color scheme. Instead of
+%D recalculating all those colors, we use a quick and dirty
+%D approach:
+%D
+%D \starttyping
+%D \negativecolorbox0
+%D \stoptyping
+%D
+%D will negate the colors in box zero.
+
+\def\negatecolorbox#1%
+ {\setbox#1\hbox
+ {\startnegativeproperty % might change
+ \startcolor[white]\vrule\!!height\ht#1\!!depth\dp#1\!!width\wd#1\stopcolor
+ \hskip-\wd#1%
+ \box#1%
+ \stopnegativeproperty}}
+
+%D There are in principle two ways to handle overprint: bound to colors
+%D or independent. For the moment we only support independent overprint
+%D handling. Here we deal with a per-document setting.
+
+\setupcolors
+ [\c!overprint=\v!no]
+
+\def\starttextoverprint
+ {\doifelse\@@cloverprint\v!yes
+ {\let\stoptextoverprint\stopoverprintproperty\startoverprintproperty}
+ {\let\stoptextoverprint\donothing}}
+
+\let\stoptextoverprint\donothing
+
+\appendtoks \starttextoverprint \to \everystarttextproperties
+\appendtoks \stoptextoverprint \to \everystoptextproperties
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/colo-hex.mkii b/Master/texmf-dist/tex/context/base/colo-hex.mkii
new file mode 100644
index 00000000000..7cef6e8a2ad
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/colo-hex.mkii
@@ -0,0 +1,125 @@
+%D \module
+%D [ file=colo-hex,
+%D version=2004.06.23,
+%D title=\CONTEXT\ Color Macros,
+%D subtitle=Hex Colors,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\ifx\dodododefinecolor\undefined \else
+ \endinput
+\fi
+
+\writestatus{loading}{ConTeXt Color Macros / Hexadecimal}
+
+% \edef\testcolor{\string#FFC0C0}
+% \edef\testcolor{\string#55}
+%
+% \setupcolors[state=start]
+%
+% \expanded{\definecolor[thehexcolor][\hexcolorspec\testcolor]}
+%
+% \checkhexcolor[\testcolor]
+%
+% \definecolor[thehexcolor][\testcolor]
+%
+% \starttext
+%
+% test \color[thehexcolor]{rood}
+% test \color[red]{rood}
+% test \color[\testcolor]{rood}
+%
+% \stoptext
+
+\unprotect
+
+% \definecolor[rgbtestcolor] [r=0.87843,g=0.87451,b=0.89020] % RGB(224,223,227)
+% \definecolor[hextestcolor] [h=E0DFE3]
+%
+% \startMPpage
+% path p ; % example by Peter Rolf
+% p := unitsquare xyscaled(5cm,5cm) ;
+% fill (point 0 of p -- point 1 of p -- point 2 of p --cycle) withcolor \MPcolor{rgbtestcolor} ; % bottom right part of the square
+% fill (point 0 of p -- point 3 of p -- point 2 of p --cycle) withcolor \MPcolor{hextestcolor} ; % top left part
+% \stopMPpage
+
+\newdimen\hexcolorfraction \hexcolorfraction=\dimexpr1pt/255\relax
+
+\chardef\hexcolorprefix=`#
+
+\def\hexcolorspec #1{\expandafter\dohexcolorspec #1\empty\empty\empty\empty\relax}
+\def\hexcolorpattern#1{\expandafter\dohexcolorpattern#1\empty\empty\empty\empty\relax}
+
+\ifx\dohexstringtonumber\undefined \def\dohexstringtonumber{"} \fi
+
+\def\hexcolorcomponent#1#2%
+ {\ifnum\dohexstringtonumber#1#2=\zerocount0\else\ifnum\dohexstringtonumber#1#2=\plusone1\else
+ \expandafter\withoutpt\the\dimexpr\dohexstringtonumber#1#2\hexcolorfraction\relax
+ \fi\fi}
+
+\def\dohexcolorspec#1#2#3#4#5#6#7#8\relax
+ {\ifx#4\empty
+ s=\hexcolorcomponent#2#3%
+ \else
+ r=\hexcolorcomponent#2#3,g=\hexcolorcomponent#4#5,b=\hexcolorcomponent#6#7%
+ \fi}
+
+\def\dohexcolorpattern#1#2#3#4#5#6#7#8\relax
+ {0\ifx#4\empty
+ S:\hexcolorcomponent#2#3%
+ \else
+ R:\hexcolorcomponent#2#3:\hexcolorcomponent#4#5:\hexcolorcomponent#6#7%
+ \fi:0:0}
+
+\def\doifhexcolorelse#1%
+ {\expandafter\dodoifhexcolorelse#10\od} % 0 is a dirty trick to catch an empty #1
+
+\def\dodoifhexcolorelse#1#2\od
+ {\ifnum`#1=\hexcolorprefix
+ \expandafter\firstoftwoarguments
+ \else
+ \expandafter\secondoftwoarguments
+ \fi}
+
+\def\docheckhexcolor#1%
+ {\doifhexcolorelse{#1}{\doifundefined{#1}{\setxvalue{\??cr#1}{\hexcolorpattern{#1}}}}\donothing}
+
+\def\checkhexcolor[#1]%
+ {\expanded{\docheckhexcolor{#1}}}
+
+\def\colorHpattern{\@EA\hexcolorpattern\@EA{\@EA*\@@cl@@h}} % * == dummy placeholder
+
+\let\dodododefinecolor\dododefinecolor % we will overload this one
+
+\def\dododefinecolor#1#2#3#4[#5][#6]%
+ {\doifhexcolorelse{#6}
+ {\setxvalue{\??cr#5}{\hexcolorpattern{#6}}}
+ {\dodododefinecolor#1#2#3#4[#5][#6]}}
+
+%D For Adam Lindsay and his XeTeX special driver:
+
+% because we intercept the zero condition, the .23pt in 1.23pt will disappear in the
+% ifcase zero part branch
+
+\def\colorhexcomponent#1%
+ {\ifdim#1\points<.005\points
+ 00\else\lchexnumbers{\the\dimexpr255\dimexpr#1\points\relax+.5\points\relax}%
+ \fi}
+
+% the faster one
+
+\newdimen\hex@color@a \hex@color@a=.005pt
+\newdimen\hex@color@b \hex@color@b=.5pt
+\chardef \hex@color@c =255
+
+\def\colorhexcomponent#1%
+ {\ifdim#1\points<\hex@color@a
+ 00\else\lchexnumbers{\the\dimexpr#1\points*\hex@color@c+\hex@color@b\relax}%
+ \fi}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/colo-hex.mkiv b/Master/texmf-dist/tex/context/base/colo-hex.mkiv
new file mode 100644
index 00000000000..dd8e039389b
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/colo-hex.mkiv
@@ -0,0 +1,26 @@
+%D \module
+%D [ file=colo-hex,
+%D version=2004.06.23,
+%D title=\CONTEXT\ Color Macros,
+%D subtitle=Hex Colors,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D This is built in.
+
+% \definecolor[rgbtestcolor] [r=0.87843,g=0.87451,b=0.89020] % RGB(224,223,227)
+% \definecolor[hextestcolor] [\letterhash E0DFE3] % or [h=E0DFE3]
+%
+% \startMPpage
+% path p ; % example by Peter Rolf
+% p := unitsquare xyscaled(5cm,5cm) ;
+% fill (point 0 of p -- point 1 of p -- point 2 of p --cycle) withcolor \MPcolor{rgbtestcolor} ; % bottom right part of the square
+% fill (point 0 of p -- point 3 of p -- point 2 of p --cycle) withcolor \MPcolor{hextestcolor} ; % top left part
+% \stopMPpage
+
+\endinput
diff --git a/Master/texmf-dist/tex/context/base/colo-hex.tex b/Master/texmf-dist/tex/context/base/colo-hex.tex
index e60f2a0aea5..7d223c131d9 100644
--- a/Master/texmf-dist/tex/context/base/colo-hex.tex
+++ b/Master/texmf-dist/tex/context/base/colo-hex.tex
@@ -1,121 +1,3 @@
-%D \module
-%D [ file=colo-hex,
-%D version=2004.06.23,
-%D title=\CONTEXT\ Color Macros,
-%D subtitle=Hex Colors,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
+% this is just a stub
-\beginLUATEX
- \endinput
-\endLUATEX
-
-\ifx\dodododefinecolor\undefined
- \beginTEX \endinput \endTEX
-\else
- \endinput
-\fi
-
-\writestatus{loading}{Context Color Macros / hexadecimal}
-
-% \edef\testcolor{\string#FFC0C0}
-% \edef\testcolor{\string#55}
-%
-% \setupcolors[state=start]
-%
-% \expanded{\definecolor[thehexcolor][\hexcolorspec\testcolor]}
-%
-% \checkhexcolor[\testcolor]
-%
-% \definecolor[thehexcolor][\testcolor]
-%
-% \starttext
-%
-% test \color[thehexcolor]{rood}
-% test \color[red]{rood}
-% test \color[\testcolor]{rood}
-%
-% \stoptext
-
-\unprotect
-
-\newdimen\hexcolorfraction \hexcolorfraction=\dimexpr(1pt/256)
-
-\chardef\hexcolorprefix=`#
-
-\def\hexcolorspec #1{\expandafter\dohexcolorspec #1\empty\empty\empty\empty\relax}
-\def\hexcolorpattern#1{\expandafter\dohexcolorpattern#1\empty\empty\empty\empty\relax}
-
-\ifx\dohexstringtonumber\undefined \def\dohexstringtonumber{"} \fi
-
-\def\hexcolorcomponent#1#2%
- {\ifnum\dohexstringtonumber#1#2=\zerocount0\else\ifnum\dohexstringtonumber#1#2=\plusone1\else
- \expandafter\withoutpt\the\dimexpr(\dohexstringtonumber#1#2\hexcolorfraction)%
- \fi\fi}
-
-\def\dohexcolorspec#1#2#3#4#5#6#7#8\relax
- {\ifx#4\empty
- s=\hexcolorcomponent#2#3%
- \else
- r=\hexcolorcomponent#2#3,g=\hexcolorcomponent#4#5,b=\hexcolorcomponent#6#7%
- \fi}
-
-\def\dohexcolorpattern#1#2#3#4#5#6#7#8\relax
- {0\ifx#4\empty
- S:\hexcolorcomponent#2#3%
- \else
- R:\hexcolorcomponent#2#3:\hexcolorcomponent#4#5:\hexcolorcomponent#6#7%
- \fi:0:0}
-
-\def\doifhexcolorelse#1%
- {\expandafter\dodoifhexcolorelse#10\od} % 0 is a dirty trick to catch an empty #1
-
-\def\dodoifhexcolorelse#1#2\od
- {\ifnum`#1=\hexcolorprefix
- \expandafter\firstoftwoarguments
- \else
- \expandafter\secondoftwoarguments
- \fi}
-
-\def\docheckhexcolor#1%
- {\doifhexcolorelse{#1}{\doifundefined{#1}{\setxvalue{\??cr#1}{\hexcolorpattern{#1}}}}\donothing}
-
-\def\checkhexcolor[#1]%
- {\expanded{\docheckhexcolor{#1}}}
-
-\def\colorHpattern{\@EA\hexcolorpattern\@EA{\@EA*\@@cl@@h}} % * == dummy placeholder
-
-\let\dodododefinecolor\dododefinecolor % we will overload this one
-
-\def\dododefinecolor#1#2#3#4[#5][#6]%
- {\doifhexcolorelse{#6}
- {\setxvalue{\??cr#5}{\hexcolorpattern{#6}}}
- {\dodododefinecolor#1#2#3#4[#5][#6]}}
-
-%D For Adam Lindsay and his XeTeX special driver:
-
-% because we intercept the zero condition, the .23pt in 1.23pt will disappear in the
-% ifcase zero part branch
-
-\def\colorhexcomponent#1%
- {\ifdim#1\points<.005\points
- 00\else\lchexnumbers{\the\dimexpr(255\dimexpr(#1\points)\relax+.5\points)\relax}%
- \fi}
-
-% the faster one
-
-\newdimen\hex@color@a \hex@color@a=.005pt
-\newdimen\hex@color@b \hex@color@b=.5pt
-\chardef \hex@color@c =255
-
-\def\colorhexcomponent#1%
- {\ifdim#1\points<\hex@color@a
- 00\else\lchexnumbers{\the\dimexpr(#1\points*\hex@color@c+\hex@color@b)\relax}%
- \fi}
-
-\protect \endinput
+\loadmarkfile{colo-hex}
diff --git a/Master/texmf-dist/tex/context/base/colo-ini.lua b/Master/texmf-dist/tex/context/base/colo-ini.lua
new file mode 100644
index 00000000000..a67df6a778e
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/colo-ini.lua
@@ -0,0 +1,407 @@
+if not modules then modules = { } end modules ['colo-ini'] = {
+ version = 1.000,
+ comment = "companion to colo-ini.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local concat = table.concat
+local format, gmatch, gsub, lower, match = string.format, string.gmatch, string.gsub, string.lower, string.match
+local texsprint = tex.sprint
+local ctxcatcodes = tex.ctxcatcodes
+
+local settings_to_hash_strict = aux.settings_to_hash_strict
+
+colors = colors or { }
+transparencies = transparencies or { }
+
+local registrations = backends.registrations
+
+local a_color = attributes.private('color')
+local a_transparency = attributes.private('transparency')
+local a_colorspace = attributes.private('colormodel')
+local a_background = attributes.private('background')
+
+local a_l_c_template = "\\setevalue{(ca:%s)}{%s}" ..
+ "\\setevalue{(cs:%s)}{\\dosetattribute{color}{%s}}"
+local a_g_c_template = "\\setxvalue{(ca:%s)}{%s}" ..
+ "\\setxvalue{(cs:%s)}{\\dosetattribute{color}{%s}}"
+local f_l_c_template = "\\setvalue {(ca:%s)}{\\doinheritca{%s}}" ..
+ "\\setvalue {(cs:%s)}{\\doinheritcs{%s}}"
+local f_g_c_template = "\\setgvalue{(ca:%s)}{\\doinheritca{%s}}" ..
+ "\\setgvalue{(cs:%s)}{\\doinheritcs{%s}}"
+local r_l_c_template = "\\localundefine{(ca:%s)}" ..
+ "\\localundefine{(cs:%s)}"
+local r_g_c_template = "\\globalundefine{(ca:%s)}" ..
+ "\\globalundefine{(cs:%s)}"
+
+local a_l_t_template = "\\setevalue{(ta:%s)}{%s}" ..
+ "\\setevalue{(ts:%s)}{\\dosetattribute{transparency}{%s}}"
+local a_g_t_template = "\\setxvalue{(ta:%s)}{%s}" ..
+ "\\setxvalue{(ts:%s)}{\\dosetattribute{transparency}{%s}}"
+local f_l_t_template = "\\setvalue {(ta:%s)}{\\doinheritta{%s}}" ..
+ "\\setvalue {(ts:%s)}{\\doinheritts{%s}}"
+local f_g_t_template = "\\setgvalue{(ta:%s)}{\\doinheritta{%s}}" ..
+ "\\setgvalue{(ts:%s)}{\\doinheritts{%s}}"
+local r_l_t_template = "\\localundefine{(ta:%s)}" ..
+ "\\localundefine{(ts:%s)}"
+local r_g_t_template = "\\globalundefine{(ta:%s)}" ..
+ "\\globalundefine{(ts:%s)}"
+
+local function definecolor(name, ca, global)
+ if ca and ca > 0 then
+ if global then
+ texsprint(ctxcatcodes,format(a_g_c_template, name, ca, name, ca))
+ else
+ texsprint(ctxcatcodes,format(a_l_c_template, name, ca, name, ca))
+ end
+ else
+ if global then
+ texsprint(ctxcatcodes,format(r_g_c_template, name, name))
+ else
+ texsprint(ctxcatcodes,format(r_l_c_template, name, name))
+ end
+ end
+end
+local function inheritcolor(name, ca, global)
+ if ca and ca ~= "" then
+ if global then
+ texsprint(ctxcatcodes,format(f_g_c_template, name, ca, name, ca))
+ else
+ texsprint(ctxcatcodes,format(f_l_c_template, name, ca, name, ca))
+ end
+ else
+ if global then
+ texsprint(ctxcatcodes,format(r_g_c_template, name, name))
+ else
+ texsprint(ctxcatcodes,format(r_l_c_template, name, name))
+ end
+ end
+end
+local function definetransparent(name, ta, global)
+ if ta and ta > 0 then
+ if global then
+ texsprint(ctxcatcodes,format(a_g_t_template, name, ta, name, ta))
+ else
+ texsprint(ctxcatcodes,format(a_l_t_template, name, ta, name, ta))
+ end
+ else
+ if global then
+ texsprint(ctxcatcodes,format(r_g_t_template, name, name))
+ else
+ texsprint(ctxcatcodes,format(r_l_t_template, name, name))
+ end
+ end
+end
+local function inherittransparent(name, ta, global)
+ if ta and ta ~= "" then
+ if global then
+ texsprint(ctxcatcodes,format(f_g_t_template, name, ta, name, ta))
+ else
+ texsprint(ctxcatcodes,format(f_l_t_template, name, ta, name, ta))
+ end
+ else
+ if global then
+ texsprint(ctxcatcodes,format(r_g_t_template, name, name))
+ else
+ texsprint(ctxcatcodes,format(r_l_t_template, name, name))
+ end
+ end
+end
+
+local transparent = {
+ none = 0,
+ normal = 1,
+ multiply = 2,
+ screen = 3,
+ overlay = 4,
+ softlight = 5,
+ hardlight = 6,
+ colordodge = 7,
+ colorburn = 8,
+ darken = 9,
+ lighten = 10,
+ difference = 11,
+ exclusion = 12,
+}
+
+-- By coupling we are downward compatible. When we decouple we need to do more tricky
+-- housekeeping (e.g. persist color independent transparencies when color bound ones
+-- are nil.)
+
+colors.couple = true
+
+function colors.definetransparency(name,n)
+ transparent[name] = n
+end
+
+local registered = { }
+
+local function do_registerspotcolor(parent,name,parentnumber,e,f,d,p)
+ if not registered[parentnumber] then
+ local v = colors.values[parentnumber]
+ if v then
+ local kind = colors.default -- else problems with shading etc
+ if kind == 1 then kind = v[1] end
+ if kind == 2 then -- name noffractions names p's r g b
+ registrations.grayspotcolor(parent,f,d,p,v[2])
+ elseif kind == 3 then
+ registrations.rgbspotcolor (parent,f,d,p,v[3],v[4],v[5])
+ elseif kind == 4 then
+ registrations.cmykspotcolor(parent,f,d,p,v[6],v[7],v[8],v[9])
+ end
+ if e and e ~= "" then
+ registrations.spotcolorname(parent,e)
+ end
+ end
+ registered[parentnumber] = true
+ end
+end
+
+local function do_registermultitonecolor(parent,name,parentnumber,e,f,d,p) -- same as spot but different template
+ if not registered[parentnumber] then
+ local v = colors.values[parentnumber]
+ if v then
+ local kind = colors.default -- else problems with shading etc
+ if kind == 1 then kind = v[1] end
+ if kind == 2 then
+ registrations.grayindexcolor(parent,f,d,p,v[2])
+ elseif kind == 3 then
+ registrations.rgbindexcolor (parent,f,d,p,v[3],v[4],v[5])
+ elseif kind == 4 then
+ registrations.cmykindexcolor(parent,f,d,p,v[6],v[7],v[8],v[9])
+ end
+ end
+ registered[parentnumber] = true
+ end
+end
+
+function colors.definesimplegray(name,s)
+ return colors.register(name,'gray',s) -- we still need to get rid of 'color'
+end
+
+function colors.defineprocesscolor(name,str,global,freeze) -- still inconsistent color vs transparent
+ local r = match(str,"^#(.+)$") -- for old times sake (if we need to feed from xml or so)
+ local t = (r and { h = r }) or settings_to_hash_strict(str)
+ if t then
+ if t.h then
+ local r, g, b = match(t.h .. "000000","(..)(..)(..)") -- watch the 255
+ definecolor(name, colors.register(name,'rgb',(tonumber(r,16) or 0)/255,(tonumber(g,16) or 0)/255,(tonumber(b,16) or 0)/255 ), global)
+ elseif t.r or t.g or t.b then
+ definecolor(name, colors.register(name,'rgb', tonumber(t.r) or 0, tonumber(t.g) or 0, tonumber(t.b) or 0 ), global)
+ elseif t.c or t.m or t.y or t.k then
+ definecolor(name, colors.register(name,'cmyk',tonumber(t.c) or 0, tonumber(t.m) or 0, tonumber(t.y) or 0, tonumber(t.k) or 0), global)
+ else
+ definecolor(name, colors.register(name,'gray',tonumber(t.s) or 0), global)
+ end
+ if t.a and t.t then
+ definetransparent(name, transparencies.register(name,transparent[t.a] or tonumber(t.a) or 1,tonumber(t.t) or 1), global)
+ elseif colors.couple then
+ -- definetransparent(name, transparencies.register(nil, 1, 1), global) -- can be sped up
+ definetransparent(name, 0, global) -- can be sped up
+ end
+ elseif freeze then
+ local ca = attributes.list[a_color] [str]
+ local ta = attributes.list[a_transparency][str]
+ if ca then
+ definecolor(name, ca, global)
+ end
+ if ta then
+ definetransparent(name, ta, global)
+ end
+ else
+ inheritcolor(name, str, global)
+ inherittransparent(name, str, global)
+ -- if global and str ~= "" then -- For Peter Rolf who wants access to the numbers in Lua. (Currently only global is supported.)
+ -- attributes.list[a_color] [name] = attributes.list[a_color] [str] or attributes.unsetvalue -- reset
+ -- attributes.list[a_transparency][name] = attributes.list[a_transparency][str] or attributes.unsetvalue
+ -- end
+ end
+end
+
+function colors.isblack(ca) -- maybe commands
+ local cv = ca > 0 and colors.value(ca)
+ return (cv and cv[2] == 0) or false
+end
+
+function colors.definespotcolor(name,parent,str,global)
+ if parent == "" or parent:find("=") then
+ colors.registerspotcolor(name, parent)
+ elseif name ~= parent then
+ local cp = attributes.list[a_color][parent]
+ if cp then
+ local t = settings_to_hash_strict(str)
+ if t then
+ t.p = tonumber(t.p) or 1
+ do_registerspotcolor(parent, name, cp, t.e, 1, "", t.p) -- p not really needed, only diagnostics
+ if name and name ~= "" then
+ definecolor(name, colors.register(name,'spot', parent, 1, "", t.p), true)
+ if t.a and t.t then
+ definetransparent(name, transparencies.register(name,transparent[t.a] or tonumber(t.a) or 1,tonumber(t.t) or 1), global)
+ elseif colors.couple then
+ --~ definetransparent(name, transparencies.register(nil, 1, 1), global) -- can be sped up
+ definetransparent(name, 0, global) -- can be sped up
+ end
+ end
+ end
+ end
+ end
+end
+
+function colors.registerspotcolor(parent, str)
+ local cp = attributes.list[a_color][parent]
+ if cp then
+ local e = ""
+ if str then
+ local t = settings_to_hash_strict(str)
+ e = (t and t.e) or ""
+ end
+ do_registerspotcolor(parent, "dummy", cp, e, 1, "", 1) -- p not really needed, only diagnostics
+ end
+end
+
+function colors.definemultitonecolor(name,multispec,colorspec,selfspec)
+ local dd, pp, nn = { }, { }, { }
+ for k,v in gmatch(multispec,"(%a+)=([^%,]*)") do
+ dd[#dd+1] = k
+ pp[#pp+1] = v
+ nn[#nn+1] = k
+ nn[#nn+1] = format("%1.3g",tonumber(v) or 0) -- 0 can't happen
+ end
+--~ v = tonumber(v) * p
+ local nof = #dd
+ if nof > 0 then
+ dd, pp, nn = concat(dd,','), concat(pp,','), concat(nn,'_')
+ local parent = gsub(lower(nn),"[^%d%a%.]+","_")
+ colors.defineprocesscolor(parent,colorspec..","..selfspec,true,true)
+ local cp = attributes.list[a_color][parent]
+ if cp then
+ do_registerspotcolor(parent, name, cp, "", nof, dd, pp)
+ do_registermultitonecolor(parent, name, cp, "", nof, dd, pp)
+ definecolor(name, colors.register(name, 'spot', parent, nof, dd, pp), true)
+ local t = settings_to_hash_strict(selfspec)
+ if t and t.a and t.t then
+ definetransparent(name, transparencies.register(name,transparent[t.a] or tonumber(t.a) or 1,tonumber(t.t) or 1), global)
+ elseif colors.couple then
+ -- definetransparent(name, transparencies.register(nil, 1, 1), global) -- can be sped up
+ definetransparent(name, 0, global) -- can be sped up
+ end
+ end
+ end
+end
+
+function colors.mp(model,ca,ta,default)
+ local cv = colors.value(ca) -- faster when direct colors.values[ca]
+ if cv then
+ local tv = transparencies.value(ta)
+ if model == 1 then
+ model = cv[1]
+ end
+ if tv then
+ if model == 2 then
+ return format("transparent(%s,%s,(%s,%s,%s))",tv[1],tv[2],cv[3],cv[4],cv[5])
+ elseif model == 3 then
+ return format("transparent(%s,%s,(%s,%s,%s))",tv[1],tv[2],cv[3],cv[4],cv[5])
+ elseif model == 4 then
+ return format("transparent(%s,%s,cmyk(%s,%s,%s,%s))",tv[1],tv[2],cv[6],cv[7],cv[8],cv[9])
+ else
+ return format("transparent(%s,%s,multitonecolor(\"%s\",%s,\"%s\",\"%s\"))",tv[1],tv[2],cv[10],cv[11],cv[12],cv[13])
+ end
+ else
+ if model == 2 then
+ return format("(%s,%s,%s)",cv[3],cv[4],cv[5])
+ elseif model == 3 then
+ return format("(%s,%s,%s)",cv[3],cv[4],cv[5])
+ elseif model == 4 then
+ return format("cmyk(%s,%s,%s,%s)",cv[6],cv[7],cv[8],cv[9])
+ else
+ return format("multitonecolor(\"%s\",%s,\"%s\",\"%s\")",cv[10],cv[11],cv[12],cv[13])
+ end
+ end
+ else
+ default = default or 0 -- rgb !
+ return format("(%s,%s,%s)",default,default,default)
+ end
+end
+
+function colors.formatcolor(ca,separator)
+ local cv = colors.value(ca)
+ if cv then
+ local c, f, t, model = { }, 13, 13, cv[1]
+ if model == 2 then
+ f, t = 2, 2
+ elseif model == 3 then
+ f, t = 3, 5
+ elseif model == 4 then
+ f, t = 6, 9
+ end
+ for i=f,t do
+ c[#c+1] = format("%0.3f",cv[i])
+ end
+ return concat(c,separator)
+ else
+ return format("%0.3f",0)
+ end
+end
+
+function colors.formatgray(ca,separator)
+ local cv = colors.value(ca)
+ return format("%0.3f",(cv and cv[2]) or 0)
+end
+
+function colors.colorcomponents(ca)
+ local cv = colors.value(ca)
+ if cv then
+ local model = cv[1]
+ if model == 2 then
+ return format("s=%1.3f",cv[2])
+ elseif model == 3 then
+ return format("r=%1.3f g=%1.3f b=%1.3f",cv[3],cv[4],cv[5])
+ elseif model == 4 then
+ return format("c=%1.3f m=%1.3f y=%1.3f k=%1.3f",cv[6],cv[7],cv[8],cv[9])
+ elseif type(cv[13]) == "string" then
+ return format("p=%s",cv[13])
+ else
+ return format("p=%1.3f",cv[13])
+ end
+ else
+ return ""
+ end
+end
+
+function colors.transparencycomponents(ta)
+ local tv = transparencies.value(ta)
+ if tv then
+ return format("a=%1.3f t=%1.3f",tv[1],tv[2])
+ else
+ return ""
+ end
+end
+
+function colors.spotcolorname(ca,default)
+ local cv, v = colors.value(ca), "unknown"
+ if cv and cv[1] == 5 then
+ v = cv[10]
+ end
+ return tostring(v)
+end
+
+function colors.spotcolorparent(ca,default)
+ local cv, v = colors.value(ca), "unknown"
+ if cv and cv[1] == 5 then
+ v = cv[12]
+ if v == "" then
+ v = cv[10]
+ end
+ end
+ return tostring(v)
+end
+
+function colors.spotcolorvalue(ca,default)
+ local cv, v = colors.value(ca), 0
+ if cv and cv[1] == 5 then
+ v = cv[13]
+ end
+ return tostring(v)
+end
diff --git a/Master/texmf-dist/tex/context/base/colo-ini.tex b/Master/texmf-dist/tex/context/base/colo-ini.mkii
index 0b43ca3ddd1..2d2a7bdaa13 100644
--- a/Master/texmf-dist/tex/context/base/colo-ini.tex
+++ b/Master/texmf-dist/tex/context/base/colo-ini.mkii
@@ -1,6 +1,6 @@
%D \module
%D [ file=colo-ini,
-%D version=1997.04.01,
+%D version=2007.08.08,
%D title=\CONTEXT\ Color Macros,
%D subtitle=Initialization,
%D author=Hans Hagen,
@@ -11,12 +11,874 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Color Macros / initialization}
+%D We need to clean this up further but first we hav eto make sure that mkiv
+%D code works ok.
-%D Possible optimization: store level in mark instead of name
+\writestatus{loading}{ConTeXt Color Macros / Initialization}
+
+%D This module implements color. Since \MKII\ and \MKIV\ use a completely
+%D different approach, this module only implements a few generic mechanisms.
\unprotect
+\chardef\colorversion=1 % temp, needed for tracing purposes, mkiv transition
+
+%D We use a couple of local registers. That way we don't have
+%D to group when converting colors. By the way, this is not
+%D really faster. We can sqeeze half a second runtime for 50K
+%D switches on a 1G machine, but the macros will become rather
+%D ugly then. To mention one such improvement: no colon
+%D after the key character (.25 sec).
+
+\newdimen\colordimen
+\newcount\colorcount
+
+%D When typesetting for paper, we prefer using the \cap{CMYK}
+%D color space, but for on||screen viewing we prefer \cap{RGB}
+%D (the previous implementation supported only this scheme).
+%D Independant of such specifications, we support some automatic
+%D conversions:
+%D
+%D \startitemize[packed]
+%D \item convert all colors to \cap{RGB}
+%D \item convert all colors to \cap{CMYK}
+%D \item convert all colors to gray scales
+%D \stopitemize
+%D
+%D We also support optimization of colors to gray scales.
+%D
+%D \startitemize[continue]
+%D \item reduce gray colors to gray scales
+%D \item reduce \cap{CMY} components to \cap{K}
+%D \stopitemize
+%D
+%D These options are communicated by means of:
+
+\newif\ifRGBsupported
+\newif\ifCMYKsupported
+\newif\ifSPOTsupported
+\newif\ifpreferGRAY
+\newif\ifGRAYprefered
+\newif\ifreduceCMYK
+\newif\ifconverttoGRAY
+\newif\ifweightGRAY \weightGRAYtrue
+
+\newif\ifconvertMPcolors
+\newif\ifreduceMPcolors
+\newif\ifforcegrayMPcolors
+
+%D The last boolean controls reduction of \cap{CMYK} to
+%D \cap{CMY} colors. When set to true, the black component
+%D is added to the other ones.
+%D
+%D Prefering gray is not the same as converting to gray.
+%D Conversion treats each color components in a different way,
+%D while prefering is just a reduction and thus a
+%D space||saving option.
+
+\newif\iffreezecolors \freezecolorsfalse
+\newif\ifincolor % true if colors enabled
+\newif\iflocalcolor
+
+\let\colorlist \empty
+\let\currentspotcolor \empty
+\let\allspotcolors \empty
+\let\usedspotcolors \empty
+\let\usedcolorchannels\empty
+\let\currentpalet \empty
+
+%D \macros
+%D {definecolor,defineglobalcolor,definenamedcolor,definespotcolor,definemultitonecolor}
+%D
+%D \startbuffer
+%D \definecolor [blue] [c=1,m=.38,y=0,k=.64] % pantone pms 2965 uncoated m
+%D \definecolor [yellow] [c=0,m=.28,y=1,k=.06] % pantone pms 124 uncoated m
+%D
+%D \definespotcolor [blue-100] [blue] [p=1]
+%D \definespotcolor [yellow-100] [yellow] [p=1]
+%D
+%D \definemultitonecolor [pdftoolscolor] [blue=.12,yellow=.28] [c=.1,m=.1,y=.3,k=.1]
+%D
+%D \useexternalfigure[demofig][mill.png][object=no]
+%D
+%D \startcombination[4*1]
+%D {\externalfigure[demofig]} {no color}
+%D {\externalfigure[demofig][color=pdftoolscolor]} {indexed duotone}
+%D {\externalfigure[demofig][color=blue-100]} {spot color}
+%D {\externalfigure[demofig][color=yellow-100]} {spot color}
+%D \stopcombination
+%D \stopbuffer
+%D
+%D \getbuffer \typebuffer
+
+\def\definecolor {\dodoubleargument\dodefinecolor}
+\def\defineglobalcolor {\dodoubleargument\dodefineglobalcolor}
+\def\definenamedcolor {\dodoubleargument\dodefinenamedcolor}
+\def\definespotcolor {\dotripleargument\dodefinespotcolor}
+\def\definemultitonecolor{\doquadrupleempty\dodefinemultitonecolor}
+
+% check: registerusedspotcolors
+% check: registerusedcolorchannels
+
+%D \macros
+%D {doifcolorelse, doifcolor}
+%D
+%D Switching to a color is done by means of the following
+%D command. Later on we will explain the use of palets. We
+%D define ourselves a color conditional first.
+
+\ifx\doifcolorelse\undefined
+ \let\doifcolorelse\secondoftwoarguments
+ \let\doifcolor \gobbleoneargument
+\fi
+
+%D \macros
+%D {localstartcolor,localstopcolor}
+%D
+%D Simple color support, that is without nesting, is provided
+%D by:
+
+\ifx\localstartcolor\undefined
+ \let\localstartcolor\undefined
+ \let\localstopcolor \undefined
+\fi
+
+%D \macros
+%D {faststartcolor,faststopcolor}
+%D
+%D No checking for arguments and such:
+
+\ifx\faststartcolor\undefined
+ \def\faststartcolor[#1]{}
+ \def\faststopcolor {}
+\fi
+
+%D These local ones may go away in future versions.
+
+%D \macros
+%D {startcolor,stopcolor}
+%D
+%D The more save method, the one that saves the current color
+%D state and returns to this state afterward, is activated by:
+%D
+%D \showsetup{startcolor}
+
+\ifx\startcolor\undefined
+ \let\startcolor\undefined
+ \let\stopcolor \undefined
+\fi
+
+%D \macros
+%D {startcurrentcolor,stopcurrentcolor}
+
+\def\startcurrentcolor{\startcolor[\outercolorname]}
+\def\stopcurrentcolor {\stopcolor}
+
+%D \macros
+%D {color,graycolor}
+%D
+%D This leaves the simple color command:
+%D
+%D \showsetup{color}
+%D \showsetup{graycolor}
+
+\ifx\color\undefined
+ \def\color [#1]{}
+ \def\graycolor[#1]{}
+ \def\gray {\graycolor}
+\fi
+
+%D \macros
+%D {localstartraster,localstopraster,
+%D startraster,stopraster,raster}
+%D
+%D The previous conversions are not linear and treat each color
+%D component according to human perception curves. Pure gray
+%D (we call them rasters) has equal color components. In
+%D \CONTEXT\ rasters are only used as backgrounds and these
+%D don't cross page boundaries in the way color does. Therefore
+%D we don't need stacks and marks. Just to be compatible with
+%D color support we offer both 'global' and 'local' commands.
+
+\ifx\startraster\undefined
+ \def\startraster [#1]{}
+ \def\stopraster {}
+ \def\raster [#1]{}
+ \def\localstartraster[#1]{}
+ \def\localstopraster {}
+\fi
+
+%D \macros
+%D {colorvalue, grayvalue}
+%D
+%D We can typeset the color components using \type{\colorvalue} and
+%D \type{\grayvalue}. The commands:
+%D
+%D \startbuffer
+%D color value of SomeKindOfRed: \colorvalue{SomeKindOfRed} \crlf
+%D gray value of SomeKindOfRed: \grayvalue{SomeKindOfRed}
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D show us:
+%D
+%D \startvoorbeeld
+%D \getbuffer
+%D \stopvoorbeeld
+
+\def\colorformatseparator{ }
+
+\ifx\colorvalue\undefined
+ \let\colorvalue\gobbleoneargument
+ \let\grayvalue \gobbleoneargument
+\fi
+
+% check: \currentcolorname
+% check: \outercolorname
+
+%D \macros
+%D {setupcolor}
+%D
+%D Color definitions can be grouped in files with the name:
+%D
+%D \starttyping
+%D \f!colorprefix-identifier.tex
+%D \stoptyping
+%D
+%D where \type{\f!colorprefix} is \unprotect {\tttf \f!colorprefix}.
+%D Loading such a file is done by \protect
+%D
+%D \showsetup{setupcolor}
+%D
+%D Some default colors are specified in \type{colo-rgb.tex},
+%D which is loaded into the format by:
+%D
+%D \starttyping
+%D \setupcolor[rgb]
+%D \stoptyping
+
+\let\colorstyle\empty
+
+\def\setupcolor
+ {\dosingleargument\dosetupcolor}
+
+\def\dosetupcolor[#1]%
+ {\doifnot{#1}\colorstyle
+ {\def\colorstyle{#1}%
+ \processcommalist[#1]\dodosetupcolor}}
+
+\def\dodosetupcolor#1%
+ {\makeshortfilename[\truefilename{\f!colorprefix#1}]%
+ \startreadingfile
+ \readsysfile\shortfilename
+ {\showmessage\m!colors4\colorstyle}
+ {\showmessage\m!colors5\colorstyle}%
+ \stopreadingfile}
+
+\let\usecolors\setupcolor
+
+% check: \chardef\currentcolorchannel=0
+% check: \startcolormode
+% check: \newif\iffilterspotcolor \filterspotcolorfalse
+% check: \newif\ifdoingspotcolor \doingspotcolorfalse
+% check: \registercolorchannel
+
+%D \macros
+%D {definetransparency}
+%D
+%D This command numbers to names:
+
+\def\definetransparency
+ {\dodoubleargument\dodefinetransparency}
+
+\def\setupcolors
+ {\dosingleargument\dosetupcolors}
+
+\def\resetcolorsplitting
+ {\chardef\currentcolorchannel\zerocount
+ \let\currentspotcolor\empty
+ \filterspotcolorfalse}
+
+\def\colorsplitsuffix{\ifcase\currentcolorchannel\else-\@@clsplit\fi}
+\def\colorsplitprefix{\ifcase\currentcolorchannel\else\@@clsplit-\fi}
+
+\def\setcolorsplitting
+ {\resetsystemmode{\v!color\colorsplitsuffix}%
+ \resetcolorsplitting
+ \processaction
+ [\@@clsplit]
+ [ c=>\chardef\currentcolorchannel1,%
+ m=>\chardef\currentcolorchannel2,%
+ y=>\chardef\currentcolorchannel3,%
+ k=>\chardef\currentcolorchannel4,%
+ r=>\chardef\currentcolorchannel5,%
+ g=>\chardef\currentcolorchannel6,%
+ b=>\chardef\currentcolorchannel7,%
+ s=>\chardef\currentcolorchannel8,%
+ \v!no=>,% \currentcolorchannel0,% all colors
+ \s!default=>,% \currentcolorchannel0,% all colors
+ \s!unknown=>\filterspotcolortrue
+ \edef\currentspotcolor{\commalistelement}]%
+ \setsystemmode{\v!color\colorsplitsuffix}%
+ \iffilterspotcolor \let\@@clrgb\v!no \fi}
+
+\ifx\dosetupcolormodel\undefined
+ \let\dosetupcolormodel\relax
+\fi
+
+\def\dosetupcolors[#1]% some no longer make sense in MkIV
+ {\getparameters[\??cl][#1]%
+ \doifelse\@@clspot\v!yes
+ \SPOTsupportedtrue
+ \SPOTsupportedfalse
+ \doifelsenothing\@@clsplit
+ \resetcolorsplitting
+ \setcolorsplitting
+ \doifelse\@@clreduction\v!yes
+ \reduceCMYKtrue
+ \reduceCMYKfalse
+ \doifelse\@@clexpansion\v!yes
+ \freezecolorstrue
+ \freezecolorsfalse
+ \doifelse\@@clcriterium\v!all
+ \hidesplitcolortrue
+ \hidesplitcolorfalse
+ \doifelse\@@clrgb\v!no
+ {\ifRGBsupported \ifproductionrun\showmessage\m!colors {9}\v!rgb \fi\RGBsupportedfalse \fi}
+ {\ifRGBsupported \else\ifproductionrun\showmessage\m!colors{10}\v!rgb \fi\RGBsupportedtrue \fi}%
+ \doifelse\@@clcmyk\v!no
+ {\ifCMYKsupported \ifproductionrun\showmessage\m!colors {9}\v!cmyk \fi\CMYKsupportedfalse\fi}
+ {\ifCMYKsupported\else\ifproductionrun\showmessage\m!colors{10}\v!cmyk \fi\CMYKsupportedtrue \fi}%
+ \doifelse\@@clmpcmyk\v!no
+ {\ifMPcmykcolors \ifproductionrun\showmessage\m!colors {9}{\v!mp\v!cmyk}\fi\MPcmykcolorsfalse \fi}
+ {\ifMPcmykcolors \else\ifproductionrun\showmessage\m!colors{10}{\v!mp\v!cmyk}\fi\MPcmykcolorstrue \fi}%
+ \doifelse\@@clmpspot\v!no
+ {\ifMPspotcolors \ifproductionrun\showmessage\m!colors {9}{\v!mp\v!spot}\fi\MPspotcolorsfalse \fi}
+ {\ifMPspotcolors \else\ifproductionrun\showmessage\m!colors{10}{\v!mp\v!spot}\fi\MPspotcolorstrue \fi}%
+ \preferGRAYfalse
+ \processaction
+ [\@@clconversion]
+ [ \v!yes=>\preferGRAYtrue,
+ \v!always=>\preferGRAYtrue\RGBsupportedfalse\CMYKsupportedfalse]%
+ \ifRGBsupported
+ \converttoGRAYfalse
+ \forcegrayMPcolorsfalse
+ \else\ifCMYKsupported
+ \converttoGRAYfalse
+ \forcegrayMPcolorsfalse
+ \convertMPcolorstrue
+ \ifreduceCMYK
+ \reduceMPcolorstrue
+ \fi
+ \else
+ \ifconverttoGRAY\else\showmessage\m!colors{11}\empty\fi
+ \converttoGRAYtrue
+ \forcegrayMPcolorstrue
+ \convertMPcolorsfalse
+ \reduceMPcolorsfalse
+ \fi\fi
+ \processaction
+ [\@@clstate]
+ [ \v!global=>\ifincolor\else\showmessage\m!colors1\colorstyle\fi
+ \incolortrue\localcolorfalse,
+ \v!local=>\ifincolor\else\showmessage\m!colors2\colorstyle\fi
+ \incolortrue\localcolortrue,
+ \v!start=>\ifincolor\else\showmessage\m!colors1\colorstyle\fi
+ \incolortrue\localcolorfalse
+ \let\@@clstate\v!global,
+ \v!stop=>\incolorfalse\localcolorfalse
+ \forcegrayMPcolorstrue]%
+ \dosetupcolormodel
+ \initializemaintextcolor}
+
+%D \macros
+%D {startregistercolor,stopregistercolor,permitcolormode}
+%D
+%D If you only want to register a color, the switch \type
+%D {\ifpermitcolormode} can be used. That way the nested
+%D colors know where to go back to.
+
+\ifx\startregistercolor\undefined
+ \def\startregistercolor[#1]{}
+ \def\stopregistercolor {}
+\fi
+
+%D We use these macros for implementing text colors
+%D (actually, the first application was in foreground
+%D colors).
+%D
+%D \starttyping
+%D \starttextcolor[red]
+%D \dorecurse{10}{\input tufte \color[green]{oeps} \par}
+%D \stoptextcolor
+%D \stoptyping
+%D
+%D This is more efficient than the alternative:
+%D
+%D \starttyping
+%D \setupbackgrounds[text][foregroundcolor=red]
+%D \startregistercolor[red]
+%D \dorecurse{10}{\input tufte \color[green]{oeps} \par}
+%D \stopregistercolor
+%D \stoptyping
+
+\def\maintextcolor {}
+\def\defaulttextcolor {black}
+\def\@@themaintextcolor{themaintextcolor}
+
+\ifx\initializemaintextcolor\undefined
+ \def\starttextcolor [#1]{}
+ \def\stoptextcolor {}
+ \def\initializemaintextcolor {}
+\fi
+
+\ifx\restoretextcolor\undefined % to be redone
+ \let\restoretextcolor \firstofoneargument
+ \let\localstarttextcolor\relax
+ \let\localstoptextcolor \relax
+\fi
+
+%D In this documentation we will not go into too much details
+%D on palets. Curious users can find more information on this
+%D topic in \from[use of color].
+%D
+%D At the moment we implemented color in \CONTEXT\ color
+%D printing was not yet on the desktop. In spite of this lack our
+%D graphics designer made colorfull illustrations. When printed
+%D on a black and white printer, distinctive colors can come
+%D out equally gray. We therefore decided to use only colors
+%D that were distinctive in colors as well as in black and
+%D white print.
+%D
+%D Although none of the graphic packages we used supported
+%D logical colors and global color redefition, we build this
+%D support into \CONTEXT. This enabled us to experiment and
+%D also prepared us for the future.
+
+%D \macros
+%D {definepalet}
+%D
+%D Colors are grouped in palets. The colors in such a palet can
+%D have colorful names, but best is to use names that specify
+%D their use, like {\em important} or {\em danger}. As a sort
+%D of example \CONTEXT\ has some palets predefined,
+%D like:\footnote{At the time I wrote the palet support, I was
+%D reading 'A hort history of time' of S.~Hawkins, so that's
+%D why we stuck to quarks.}
+%D
+%D \starttyping
+%D \definepalet
+%D [alfa]
+%D [ top=rood:7,
+%D bottom=groen:6,
+%D up=blauw:5,
+%D down=cyaan:4,
+%D strange=magenta:3,
+%D charm=geel:2]
+%D \stoptyping
+%D
+%D It's formal definition is:
+%D
+%D \showsetup{definepalet}
+%D
+%D Visualized, such a palet looks like:
+%D
+%D \startbuffer[palet]
+%D \showpalet [alfa] [horizontal,name,number,value]
+%D \stopbuffer
+%D
+%D \startlinecorrection
+%D \getbuffer[palet]
+%D \stoplinecorrection
+%D
+%D This bar shows both the color and gray alternatives of the
+%D palet components (not visible in black and white print).
+%D
+%D When needed, one can copy a palet by saying:
+%D
+%D \starttyping
+%D \definepalet [TEXcolorpretty] [colorpretty]
+%D \stoptyping
+%D
+%D This saves us some typing in for instance the modules that
+%D deal with pretty verbatim typesetting.
+
+\def\definepalet
+ {\dodoubleargument\dodefinepalet}
+
+\def\dodefinepalet[#1][#2]%
+ {\doifassignmentelse{#2}
+ {%\showmessage\m!colors6{#1}%
+ \letvalue{\??pa#1}\empty
+ \setevalue{\??pa\??pa#1}{#2}%
+ \def\dodododefinepalet[##1=##2]%
+ {\doifvaluesomething{\??pa#1}
+ {\setevalue{\??pa#1}{\csname\??pa#1\endcsname,}}%
+ \setevalue{\??pa#1}{\csname\??pa#1\endcsname##1}%
+ \dodefinepaletcolor{#1}{##1}{##2}}%
+ \def\dododefinepalet##1%
+ {\dodododefinepalet[##1]}%
+ \processcommalist[#2]\dododefinepalet}
+ {\doifdefined{\??pa#2}
+ {\expanded{\dodefinepalet[#1][\csname\??pa\??pa#2\endcsname]}}}}
+
+\ifx\dodefinepaletcolor\undefined
+ \let\dodefinepaletcolor\gobblethreearguments
+\fi
+
+\let\paletsize\!!zerocount
+
+\def\getpaletsize[#1]%
+ {\getcommacommandsize[\csname\??pa\??pa#1\endcsname]%
+ \edef\paletsize{\number\commalistsize}}
+
+%D Instead of refering to colors, one can also directly specify
+%D a color:
+%D
+%D \starttyping
+%D \definepalet[test][xx=green]
+%D \definepalet[test][xx={y=.4}]
+%D \stoptyping
+
+%D \macros
+%D {setuppalet}
+%D
+%D Colors are taken from the current palet, if defined.
+%D Setting the current palet is done by:
+%D
+%D \showsetup{setuppalet}
+
+\let\currentpalet\empty
+
+\def\setuppalet
+ {\dosingleempty\dosetuppalet}
+
+\def\dosetuppalet[#1]%
+ {\edef\currentpalet{#1}%
+ \ifx\currentpalet\empty
+ % seems to be a reset
+ \else\ifcsname\??pa\currentpalet\endcsname
+ \edef\currentpalet{#1:}%
+ \else
+ \showmessage\m!colors7\currentpalet
+ \let\currentpalet\empty
+ \fi\fi}
+
+%D \macros
+%D {showpalet}
+%D
+%D The previous visualization was typeset with:
+%D
+%D \typebuffer[palet]
+%D
+%D This commands is defined as:
+%D
+%D \showsetup{showpalet}
+
+\fetchruntimecommand \showpalet {\f!colorprefix\s!run}
+
+%D \macros
+%D {showcolorcomponents}
+%D
+%D \starttyping
+%D \showcolorcomponents[color-1,color-2]
+%D \stoptyping
+
+\fetchruntimecommand \showcolorcomponents {\f!colorprefix\s!run}
+
+%D \macros
+%D {definecolorgroup}
+%D
+%D The naming of the colors in this palet suggests some
+%D ordening, which in turn is suported by color grouping.
+%D
+%D \starttyping
+%D \definecolorgroup
+%D [red]
+%D [1.00:0.90:0.90,
+%D 1.00:0.80:0.80,
+%D 1.00:0.70:0.70,
+%D 1.00:0.55:0.55,
+%D 1.00:0.40:0.40,
+%D 1.00:0.25:0.25,
+%D 1.00:0.15:0.15,
+%D 0.90:0.00:0.00]
+%D \stoptyping
+%D
+%D In such a color group colors are numbered from~$1$ to~$n$.
+%D
+%D \showsetup{definecolorgroup}
+%D
+%D This kind of specification is not only more compact than
+%D defining each color separate, it also loads faster and takes
+%D less bytes.
+
+\def\definecolorgroup
+ {\dotripleempty\dodefinecolorgroup}
+
+\def\dododefinecolorgroupgray [#1][#2:#3]{\definecolor [#1:\the\colorcount][s=#2]}
+\def\dododefinecolorgrouprgb [#1][#2:#3:#4:#5]{\definecolor [#1:\the\colorcount][r=#2,g=#3,b=#4]}
+\def\dododefinecolorgroupcmyk[#1][#2:#3:#4:#5:#6]{\definecolor [#1:\the\colorcount][c=#2,m=#3=,y=#4,k=#5]}
+\def\dododefinecolorgroupspot [#1][#2:#3:#4]{\definespotcolor[#1:\the\colorcount][#2][p=#3]}
+
+\def\dododefinecolorgroup#1#2%
+ {\advance\colorcount\plusone
+ \getvalue{dododefinecolorgroup\currentcolorspace}[#1][#2:0:0:0:0]}
+
+\def\dodefinecolorgroup[#1][#2][#3]% obsolete, just use palets
+ {\ifthirdargument
+ \doifelsenothing{#2}{\let\currentcolorspace\v!rgb}{\def\currentcolorspace{#2}}%
+ \colorcount\zerocount
+ \processcommalist[#3]{\dododefinecolorgroup{#1}}%
+ \else
+ \doifinstringelse{:}{#2}
+ {\definecolorgroup[#1][\v!rgb][#2]}
+ {\doloop
+ {\doifdefinedelse{\??cr#2:\recurselevel}
+ {\setevalue{\??cr#1:\recurselevel}{\csname\??cr#2:\recurselevel\endcsname}}
+ {\exitloop}}}%
+ \fi}
+
+%D \macros
+%D {showcolorgroup}
+%D
+%D We can show the group by:
+%D
+%D \startbuffer
+%D \showcolorgroup [blue] [horizontal,name,number,value]
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D or in color:
+%D
+%D \startlinecorrection
+%D \getbuffer
+%D \stoplinecorrection
+%D
+%D which uses:
+%D
+%D \showsetup{showcolorgroup}
+
+\fetchruntimecommand \showcolorgroup {\f!colorprefix\s!run}
+
+%D There are ten predefined color groups, like
+%D \color[green]{\em groen}, \color[red]{\em rood},
+%D \color[blue]{\em blauw}, \color[cyan]{\em cyaan},
+%D \color[magenta]{\em magenta} and \color[yellow]{\em geel}.
+%D
+%D \startlinecorrection
+%D \hbox to \hsize
+%D {\hss
+%D \showcolorgroup [red] [vertical,name,number]\hss
+%D \showcolorgroup [green] [vertical,name]\hss
+%D \showcolorgroup [blue] [vertical,name]\hss
+%D \showcolorgroup [cyan] [vertical,name]\hss
+%D \showcolorgroup [magenta][vertical,name]\hss
+%D \showcolorgroup [yellow] [vertical,name]\hss}
+%D \stoplinecorrection
+%D
+%D These groups are used to define palets {\em alfa} upto {\em
+%D zeta}. As long as we don't use colors from the same row, we
+%D get ourselves distinctive palets. By activating such a palet
+%D one gains access to its members {\em top} to {\em charm} (of
+%D course one should use more suitable names than these).
+%D
+%D \startlinecorrection
+%D \hbox to \hsize
+%D {\showpalet [alfa] [vertical,name,number]\hss
+%D \showpalet [beta] [vertical,name]\hss
+%D \showpalet [gamma] [vertical,name]\hss
+%D \showpalet [delta] [vertical,name]\hss
+%D \showpalet [epsilon] [vertical,name]\hss
+%D \showpalet [zeta] [vertical,name]}
+%D \stoplinecorrection
+%D
+%D By using the keyword \type {value} the individual color
+%D components are shown too. When printed in color, these
+%D showcases show both the colors and the gray value.
+
+%D \macros
+%D {comparepalet}
+%D
+%D There are some more testing macros available:
+%D
+%D \startbuffer
+%D \comparepalet [alfa]
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D shows the palet colors against a background:
+%D
+%D \startlinecorrection
+%D \getbuffer
+%D \stoplinecorrection
+%D
+%D The formal definition is:
+%D
+%D \showsetup{comparepalet}
+
+\fetchruntimecommand \comparepalet {\f!colorprefix\s!run}
+
+%D \macros
+%D {comparecolorgroup}
+%D
+%D The similar command:
+%D
+%D \startbuffer
+%D \comparecolorgroup [blue]
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D shows color groups:
+%D
+%D \startlinecorrection
+%D \getbuffer
+%D \stoplinecorrection
+%D
+%D this commands are defined as:
+%D
+%D \showsetup{comparecolorgroup}
+
+\fetchruntimecommand \comparecolorgroup {\f!colorprefix\s!run}
+
+%D \macros
+%D {showcolor}
+%D
+%D But let's not forget that we also have the more traditional
+%D non||related colors. These show up after:
+%D
+%D \starttyping
+%D \showcolor [name]
+%D \stoptyping
+%D
+%D Where \type{name} for instance can be \type{rgb}.
+%D
+%D \showsetup{showcolor}
+
+\fetchruntimecommand \showcolor {\f!colorprefix\s!run}
+
+%D It would make sense to put the following code in \type
+%D {colo-mps}, but it it rather low level.
+
+%D \macros
+%D {negatecolorcomponent,negatedcolorcomponent}
+%D
+%D These speak for themselves. See \type {colo-ext} for usage.
+
+\def\negatecolorcomponent#1% #1 = \macro
+ {\scratchdimen\onepoint\advance\scratchdimen-#1\onepoint
+ \ifdim\scratchdimen<\zeropoint\scratchdimen\zeropoint\fi
+ \edef#1{\withoutpt\the\scratchdimen}}
+
+\let\negatedcolorcomponent\firstofoneargument
+
+\def\negatedcolorcomponent#1%
+ {\ifdim\dimexpr\onepoint-#1\onepoint\relax<\zeropoint
+ \!!zerocount
+ \else
+ \expandafter\withoutpt\the\dimexpr\onepoint-#1\onepoint\relax
+ \fi}
+
+\def\negatecolorcomponent#1% #1 = \macro
+ {\edef#1{\negatedcolorcomponent{#1}}}
+
+%D \macros
+%D {ifMPgraphics, ifMPcmykcolors, MPcolor}
+%D
+%D A very special macro is \type{\MPcolor}. This one can be
+%D used to pass a \CONTEXT\ color to \METAPOST.
+%D
+%D \starttyping
+%D \MPcolor{my own red}
+%D \stoptyping
+%D
+%D This macro returns a \METAPOST\ triplet \type{(R,G,B)}.
+%D Unless \CMYK\ color support is turned on with \type
+%D {MPcmyk}, only \cap{RGB} colors and gray scales are
+%D supported.
+
+\newif\ifMPcmykcolors % \MPcmykcolorsfalse
+\newif\ifMPspotcolors % \MPspotcolorsfalse
+
+\ifx\MPcolor\undefined
+ \def\MPcolor#1{(0,0,0)}
+\fi
+
+%D \macros
+%D {PDFcolor,FDFcolor}
+%D
+%D Similar alternatives are avaliable for \PDF:
+
+%D For the moment we keep the next downward compatibility
+%D switch, i.e.\ expanded colors. However, predefined colors
+%D and palets are no longer expanded (which is what I wanted
+%D in the first place).
+%D
+%D Well, in case we want to do color separation and use CMYK
+%D colors only, this is dangerous since unwanted remapping may
+%D take place. Especially when we redefine already defined
+%D colors in another color space (e.g. darkgreen is
+%D predefined in RGB color space, so a redefinition in CMYK
+%D coordinates before RGB mode is disabled, would give
+%D unexpected results due to the already frozen color spec.)
+%D
+%D So, from now on, colors are not frozen any more!
+
+\chardef\currentcolorchannel=0
+
+\newif\iffilterspotcolor \filterspotcolorfalse
+\newif\ifdoingspotcolor \doingspotcolorfalse
+
+\def\registercolorchannel#1%
+ {\ifdoingspotcolor \else
+ \global\expandafter\chardef\csname\??cs#1\endcsname\zerocount
+ \fi}
+
+\newif\ifhidesplitcolor \hidesplitcolortrue
+
+%D The next macro is for instance used in figure splitting:
+
+\def\doifseparatingcolorselse
+ {\iffilterspotcolor
+ \@EA\firstoftwoarguments
+ \else\ifcase\currentcolorchannel
+ \@EAEAEA\secondoftwoarguments
+ \else
+ \@EAEAEA\firstoftwoarguments
+ \fi\fi}
+
+\def\doifcolorchannelelse#1%
+ {\doifseparatingcolorselse
+ {\doifelsenothing{#1}
+ \secondoftwoarguments
+ {\doifelse{#1}\@@clsplit
+ \firstoftwoarguments
+ \secondoftwoarguments}}
+ \secondoftwoarguments}
+
+\def\resetcolorseparation
+ {\filterspotcolorfalse
+ \chardef\currentcolorchannel\zerocount}
+
+%D These can be used in selecting specific files (like
+%D figuredatabases).
+
+% we already have:
+%
+% \def\colorsplitsuffix{\ifcase\currentcolorchannel\else-\@@clsplitsen\fi}
+% \def\colorsplitprefix{\ifcase\currentcolorchannel\else\@@clsplitsen-\fi}
+
+\def\colorchannelprefix{\doifseparatingcolorselse\@@clsplit\empty-}
+\def\colorchannelsuffix{-\doifseparatingcolorselse\@@clsplit\empty}
+
+%D We now define the low level macros:
+
+\chardef\colorversion=1
+
%D Color support is not present in \TEX. Colorful output can
%D however be accomplished by using specials. This also means
%D that this support depends on the \DVI\ driver used. At the
@@ -65,144 +927,6 @@
%D and therefore called them {\em rasters}. So don't be
%D surprised if this term shows up.
-\startmessages dutch library: colors
- title: kleur
- 1: systeem -- is globaal actief
- 2: systeem -- is lokaal actief
- 3: -- is niet gedefinieerd --
- 4: systeem -- wordt geladen
- 5: onbekend systeem --
- 6: palet -- is beschikbaar
- 7: palet -- is niet beschikbaar
- 8: specificatie -- bij -- wordt zwart
- 9: -- kleurruimte wordt niet ondersteund
- 10: -- kleurruimte wordt ondersteund
- 11: kleur wordt vertaald in grijs
- 12: -- is geregistreerd
-\stopmessages
-
-\startmessages english library: colors
- title: color
- 1: system -- is global activated
- 2: system -- is local activated
- 3: -- is not defined --
- 4: system -- is loaded
- 5: unknown system --
- 6: palette -- is available
- 7: palette -- is not available
- 8: specification -- at color -- becomes black
- 9: -- color space is not supported
- 10: -- color space is supported
- 11: color is converted to gray
- 12: -- is registered
-\stopmessages
-
-\startmessages german library: colors
- title: farbe
- 1: system -- ist global aktiviert
- 2: system -- ist lokal aktiviert
- 3: -- ist undefiniert --
- 4: system -- ist geladen
- 5: unbekanntes System --
- 6: palette -- ist verfuegbar
- 7: palette -- ist nicht verfuegbar
- 8: Spezifikation -- bei Farbe -- wird schwarz
- 9: -- Farbraum wird nicht unterstuetzt
- 10: -- Farbraum wird unterstuetzt
- 11: Farbe wird in Grau umgewandelt
- 12: -- is registered
-\stopmessages
-
-\startmessages czech library: colors
- title: barva
- 1: system -- je globalne aktivovana
- 2: system -- je lokalne activovana
- 3: -- neni definovana --
- 4: system -- je nacten
- 5: neznamy system --
- 6: palette -- je k dispozici
- 7: palette -- neni k dispozici
- 8: specifikace -- v barve -- bude cerna
- 9: -- prostor barev neni podporovan
- 10: -- prostor barev je podporovan
- 11: barva je prevedena na sed
- 12: -- is registered
-\stopmessages
-
-\startmessages italian library: colors
- title: colore
- 1: sistema -- attivato globalmente
- 2: sistema -- attivato localmente
- 3: -- non definito --
- 4: sistema -- caricato
- 5: sistema -- sconosciuto
- 6: tavolozza -- resa disponibile
- 7: tavolozza -- non disponibile
- 8: specifica -- del colore -- convertita in nero
- 9: spazio dei colori -- non supportato
- 10: spazio dei colori -- supportato
- 11: il colore ø convertito in grigio
- 12: -- is registered
-\stopmessages
-
-\startmessages norwegian library: colors
- title: farge
- 1: system -- er aktivert globalt
- 2: system -- er aktivert lokalt
- 3: -- er udefinert --
- 4: system -- er lest inn
- 5: ukjent system --
- 6: palett -- er tilgjengelig
- 7: palett -- er ikke tilgjengelig
- 8: spesifikasjon -- for farge -- gir kun svart
- 9: -- fargerom er ikke støttet
- 10: -- fargerom er støttet
- 11: fargen vil bli vist som grø
- 12: -- is registered
-\stopmessages
-
-\startmessages romanian library: colors
- title: culori
- 1: sistem -- este activata global
- 2: sistem -- este activata local
- 3: -- nu este definita --
- 4: sistem -- este incarcata
- 5: sistem -- necunoscuta
- 6: paleta -- este disponibila
- 7: palette -- nu este disponibila
- 8: specificatia -- la culoarea -- devine neagra
- 9: spatiul de culoare -- nu este suportat
- 10: spatiul de culoare -- este suportat
- 11: culoarea este convertita la gri
- 12: -- is registered
-\stopmessages
-
-\startmessages french library: colors
- title: couleurs
- 1: le système -- est globalement activé
- 2: le système -- est localement activé
- 3: -- n'est pas défini --
- 4: le système -- est chargé
- 5: système -- inconnu
- 6: la palette -- est disponible
- 7: le palette -- n'est pas disponible
- 8: la spécification -- de la couleur -- devient noire
- 9: l'espace de couleur -- n'est pas supporté
- 10: -- l'espace de couleur est supporté
- 11: la couleur est convertie en niveau de gris
- 12: -- est enregistré
-\stopmessages
-
-%D We use a couple of local registers. That way we don't have
-%D to group when converting colors. By the way, this is not
-%D really faster. We can sqeeze half a second runtime for 50K
-%D switches on a 1G machine, but the macros will become rather
-%D ugly then. To mention one such improvement: no colon
-%D after the key character (.25 sec).
-
-\newdimen\colordimen
-\newcount\colorcount
-
%D \macros
%D {definecolor}
%D
@@ -242,23 +966,6 @@
%D \setvalue{\??cr name}{S:s:a:t}
%D \stoptyping
-% beware: comparisons asked/current on name, not value
-
-\newif\iffreezecolors \freezecolorsfalse
-
-\let\colorlist \empty
-\let\currentspotcolor\empty
-
-\def\@@cl@@z{0}
-\def\@@cl@@o{1}
-
-% \def\@@resetcolorparameters
-% {\let\@@cl@@r\@@cl@@z\let\@@cl@@g\@@cl@@z\let\@@cl@@b\@@cl@@z
-% \let\@@cl@@c\@@cl@@z\let\@@cl@@m\@@cl@@z\let\@@cl@@y\@@cl@@z\let\@@cl@@k\@@cl@@z
-% \let\@@cl@@s\@@cl@@z\let\@@cl@@p\@@cl@@o
-% \let\@@cl@@t\@@cl@@z\let\@@cl@@a\@@cl@@z
-% \let\@@cl@@h\empty \let\@@cl@@n\empty}
-
% r g b : rbg
% c m y k : cmyk
% s : gray
@@ -267,6 +974,9 @@
% t a : transparency
% e : equivalent (spotcolors)
+\def\@@cl@@z{0}
+\def\@@cl@@o{1}
+
\def\@@resetcolorparameters
{\let\@@cl@@r\@@cl@@z \let\@@cl@@g\@@cl@@z \let\@@cl@@b\@@cl@@z
\let\@@cl@@c\@@cl@@z \let\@@cl@@m\@@cl@@z \let\@@cl@@y\@@cl@@z \let\@@cl@@k\@@cl@@z
@@ -315,16 +1025,16 @@
%D Next comes the main definition macro.
-\def\definecolor {\dodoubleargument\dodefinecolor}
-\def\defineglobalcolor{\dodoubleargument\dodefineglobalcolor}
-\def\definenamedcolor {\dodoubleargument\dodefinenamedcolor}
-
\def\dodefinecolor {\dododefinecolor\relax \setvalue \setevalue1}
\def\dodefineglobalcolor{\dododefinecolor\doglobal\setgvalue\setxvalue1}
\def\dodefinenamedcolor {\dododefinecolor\doglobal\setvalue \setevalue0}
-\def\dododefinecolor#1#2#3#4[#5][#6]% #2==set(g)value #3==set[e|x]value -- maybe add fake [#7] here
- {#1\addtocommalist{#5}\colorlist % optional
+\let\colorlist\empty % not really used, only for colo-run
+\setfalse\collectcolorsinlist
+\def\collectcolorinlist#1{\doglobal\addtocommalist{#1}\colorlist}
+
+\def\dododefinecolor#1#2#3#4[#5][#6]% #2==set(g)value #3==set[e|x]value
+ {\ifconditional\collectcolorsinlist\collectcolorinlist{#5}\fi
\doifassignmentelse{#6}
{\@@resetcolorparameters
\getparameters[\??cl @@][#6]%
@@ -373,17 +1083,10 @@
%D New and experimental.
-\let\allspotcolors \empty
-\let\usedspotcolors \empty
-\let\usedcolorchannels\empty
-
-\def\definespotcolor % [name] [color] [p=,t=,a=]
- {\dotripleempty\dodefinespotcolor}
-
\def\dodefinespotcolor[#1][#2][#3]% todo: always global
{\doifnot{#1}{#2}
{\@@resetcolorparameters
-\doglobal\addtocommalist{#1}\colorlist % optional
+ \ifconditional\collectcolorsinlist\collectcolorinlist{#1}\fi
\edef\@@cl@@n{#2}%
\getparameters[\??cl @@][#3]%
\doifnothing\@@cl@@p{\let\@@cl@@p\!!plusone}%
@@ -436,9 +1139,6 @@
% \definemultitonecolor [whatever] [darkblue=.5,darkyellow=.5] [c=.25,m=.25,y=.25] [a=1,t=.5]
% \definemultitonecolor [another] [darkblue=.5,darkyellow=.5] [c=.25,m=.25,y=.25]
-\def\definemultitonecolor
- {\doquadrupleempty\dodefinemultitonecolor}
-
\def\dodefinemultitonecolor[#1][#2][#3][#4]%
{\let\@@cl@@cl@@D\empty % n's
\let\@@cl@@cl@@P\empty % p's
@@ -480,7 +1180,7 @@
\def\dodefinespotcolor[#1][#2][#3]% todo: always global (REDEFINED)
{\doifnot{#1}{#2}
{\@@resetcolorparameters
-\doglobal\addtocommalist{#1}\colorlist % optional
+ \ifconditional\collectcolorsinlist\collectcolorinlist{#1}\fi
\edef\@@cl@@n{#2}%
\getparameters[\??cl @@][#3]%
\doifnothing \@@cl@@p{\let\@@cl@@p\!!plusone}%
@@ -519,21 +1219,6 @@
% \edef\@@cl@@cl@@N{\@@cl@@cl@@N_\@@cl@@one_\@@cl@@two}%
% \fi}
-%D We now redefine the color definition macro so that you
-%D can define both normal and spotcolors.
-
-%D This messy method will become obsolete in mkiv.
-
-\def\definecolor
- {\dotripleempty\dodefinewhatevercolor}
-
-\def\dodefinewhatevercolor[#1][#2][#3]%
- {\ifthirdargument
- \dodefinespotcolor[#1][#2][#3]% this is the prefered method !
- \else
- \dodefinecolor[#1][#2]%
- \fi}
-
%D The names of colors are stored in a comma separated list
%D only for the purpose of showing them with \type {\showcolor}.
%D
@@ -564,88 +1249,6 @@
%D \stoptyping
%D \macros
-%D {setupcolor}
-%D
-%D Color definitions can be grouped in files with the name:
-%D
-%D \starttyping
-%D \f!colorprefix-identifier.tex
-%D \stoptyping
-%D
-%D where \type{\f!colorprefix} is \unprotect {\tttf \f!colorprefix}.
-%D Loading such a file is done by \protect
-%D
-%D \showsetup{setupcolor}
-%D
-%D Some default colors are specified in \type{colo-rgb.tex},
-%D which is loaded into the format by:
-%D
-%D \starttyping
-%D \setupcolor[rgb]
-%D \stoptyping
-
-\let\colorstyle\empty
-
-\def\setupcolor
- {\dosingleargument\dosetupcolor}
-
-\def\dosetupcolor[#1]%
- {\doifnot{#1}\colorstyle
- {\def\colorstyle{#1}%
- \processcommalist[#1]\dodosetupcolor}}
-
-\def\dodosetupcolor#1%
- {\makeshortfilename[\truefilename{\f!colorprefix#1}]%
- \startreadingfile
- \readsysfile\shortfilename
- {\showmessage\m!colors4\colorstyle}
- {\showmessage\m!colors5\colorstyle}%
- \stopreadingfile}
-
-\let\usecolors\setupcolor
-
-%D When typesetting for paper, we prefer using the \cap{CMYK}
-%D color space, but for on||screen viewing we prefer \cap{RGB}
-%D (the previous implementation supported only this scheme).
-%D Independant of such specifications, we support some automatic
-%D conversions:
-%D
-%D \startitemize[packed]
-%D \item convert all colors to \cap{RGB}
-%D \item convert all colors to \cap{CMYK}
-%D \item convert all colors to gray scales
-%D \stopitemize
-%D
-%D We also support optimization of colors to gray scales.
-%D
-%D \startitemize[continue]
-%D \item reduce gray colors to gray scales
-%D \item reduce \cap{CMY} components to \cap{K}
-%D \stopitemize
-%D
-%D These options are communicated by means of:
-
-\newif\ifRGBsupported
-\newif\ifCMYKsupported
-\newif\ifSPOTsupported
-\newif\ifpreferGRAY
-\newif\ifGRAYprefered
-\newif\ifreduceCMYK
-
-%D The last boolean controls reduction of \cap{CMYK} to
-%D \cap{CMY} colors. When set to true, the black component
-%D is added to the other ones.
-%D
-%D Prefering gray is not the same as converting to gray.
-%D Conversion treats each color components in a different way,
-%D while prefering is just a reduction and thus a
-%D space||saving option.
-
-%D The next (internal) switch suppresses duplicate messages.
-
-\newif\ifconverttoGRAY
-
-%D \macros
%D {startcolormode,stopcolormode,permitcolormode}
%D
%D We use \type{\stopcolormode} to reset the color in
@@ -655,12 +1258,6 @@
\newif\ifpermitcolormode \permitcolormodetrue
-\def\startregistercolor[#1]%
- {\permitcolormodefalse\startcolor[#1]\permitcolormodetrue}
-
-\def\stopregistercolor
- {\permitcolormodefalse\stopcolor\permitcolormodetrue}
-
\def\dowithcolor#1#2% #1=\action #2=color
{\ifincolor\ifpermitcolormode
\ifcsname\??cr\currentpalet#2\endcsname
@@ -697,16 +1294,6 @@
%D The, for this module redundant, check if we are in color
%D mode is needed when we use these macros in other modules.
-\chardef\currentcolorchannel=0
-
-\newif\iffilterspotcolor \filterspotcolorfalse
-\newif\ifdoingspotcolor \doingspotcolorfalse
-
-\def\registercolorchannel#1%
- {\ifdoingspotcolor \else
- \global\expandafter\chardef\csname\??cs#1\endcsname\zerocount
- \fi}
-
\def\execcolorRCSP#1:%
{\csname execcolor#1\endcsname}
@@ -920,8 +1507,6 @@
% todo : #1#2#3 met #2 > of < and #3 een threshold
-\newif\ifhidesplitcolor \hidesplitcolortrue
-
\def\dohidecolor#1#2%
{\ifhidesplitcolor
\ifx#1#2%
@@ -1119,31 +1704,10 @@
\let\checkpredefinedcolor\predefineindexcolor % we need an index in order to negate bitmaps
-%D \startbuffer
-%D \definecolor [blue] [c=1,m=.38,y=0,k=.64] % pantone pms 2965 uncoated m
-%D \definecolor [yellow] [c=0,m=.28,y=1,k=.06] % pantone pms 124 uncoated m
-%D
-%D \definecolor [blue-100] [blue] [p=1]
-%D \definecolor [yellow-100] [yellow] [p=1]
-%D
-%D \definemultitonecolor [pdftoolscolor] [blue=.12,yellow=.28] [c=.1,m=.1,y=.3,k=.1]
-%D
-%D \useexternalfigure[demofig][mill.png][object=no]
-%D
-%D \startcombination[4*1]
-%D {\externalfigure[demofig]} {no color}
-%D {\externalfigure[demofig][color=pdftoolscolor]} {indexed duotone}
-%D {\externalfigure[demofig][color=blue-100]} {spot color}
-%D {\externalfigure[demofig][color=yellow-100]} {spot color}
-%D \stopcombination
-%D \stopbuffer
-%D
-%D \getbuffer \typebuffer
-
%D Transparency is handled similar for all three color modes. We
%D can turn transparency off with the following switch:
-\newif\iftransparencysupported \transparencysupportedtrue % todo
+\newif\iftransparencysupported \transparencysupportedtrue % only mkii
\def\exectransparency
{\iftransparencysupported
@@ -1170,32 +1734,6 @@
\newif\ifintransparent
\newif\ifoptimizetransparency \optimizetransparencytrue % under test
-% due to bugs in pdf viewers we used transparancies for
-% hiding colors, but now we use none colors
-
-% \def\supportedstoptransparency
-% {\iffilterspotcolor
-% \dostoptransparency
-% \else\iftransparencysupported
-% \dostoptransparency
-% \fi\fi}
-%
-% \def\conditionalstoptransparency
-% {\iffilterspotcolor
-% \dostoptransparency
-% \else\ifcase\currentcolorchannel
-% \ifoptimizetransparency
-% \ifintransparent
-% \supportedstoptransparency
-% \global\intransparentfalse
-% \fi
-% \else
-% \supportedstoptransparency
-% \fi
-% \else
-% \supportedstoptransparency
-% \fi\fi}
-
\let\supportedstoptransparency\relax
\def\conditionalstoptransparency
@@ -1220,39 +1758,19 @@
%D symbolic names. These are converted into numbers
%D at definition time (which saves runtime).
-\def\definetransparency
- {\dodoubleargument\dodefinetransparency}
-
\def\dodefinetransparency[#1][#2]%
{\@EA\chardef\csname\??cl-#1\endcsname#2\relax}
\def\transparencynumber#1%
- {\the\executeifdefined{\??cl-#1}\zerocount}
-
-\definetransparency [none] [0] \definetransparency [0] [0]
-\definetransparency [normal] [1] \definetransparency [1] [1]
-\definetransparency [multiply] [2] \definetransparency [2] [2]
-\definetransparency [screen] [3] \definetransparency [3] [3]
-\definetransparency [overlay] [4] \definetransparency [4] [4]
-\definetransparency [softlight] [5] \definetransparency [5] [5]
-\definetransparency [hardlight] [6] \definetransparency [6] [6]
-\definetransparency [colordodge] [7] \definetransparency [7] [7]
-\definetransparency [colorburn] [8] \definetransparency [8] [8]
-\definetransparency [darken] [9] \definetransparency [9] [9]
-\definetransparency [lighten] [10] \definetransparency [10] [10]
-\definetransparency [difference] [11] \definetransparency [11] [11]
-\definetransparency [exclusion] [12] \definetransparency [12] [12]
+ {\number\executeifdefined{\??cl-#1}{#1}}
%D Now we hook 'm into the patterns:
\def\@@cl@@A{\transparencynumber\@@cl@@a}
-%D \macros
-%D {startregistercolor,stopregistercolor,permitcolormode}
-%D
-%D If you only want to register a color, the switch \type
-%D {\ifpermitcolormode} can be used. That way the nested
-%D colors know where to go back to.
+%D The next macro can be used to return to the (normal)
+%D page color. This macro is used in the same way as
+%D \type {\color}.
\def\startregistercolor[#1]%
{\permitcolormodefalse\startcolor[#1]\permitcolormodetrue}
@@ -1260,42 +1778,6 @@
\def\stopregistercolor
{\permitcolormodefalse\stopcolor\permitcolormodetrue}
-%D We use these macros for implementing text colors
-%D (actually, the first application was in foreground
-%D colors).
-%D
-%D \starttyping
-%D \starttextcolor[red]
-%D \dorecurse{10}{\input tufte \color[green]{oeps} \par}
-%D \stoptextcolor
-%D \stoptyping
-%D
-%D This is more efficient than the alternative:
-%D
-%D \starttyping
-%D \setupbackgrounds[text][foregroundcolor=red]
-%D \startregistercolor[red]
-%D \dorecurse{10}{\input tufte \color[green]{oeps} \par}
-%D \stopregistercolor
-%D \stoptyping
-
-\let\maintextcolor\empty \def\defaulttextcolor{black}
-
-% \def\starttextcolor[#1]%
-% {\doifsomething{#1}
-% {\bgroup
-% \def\stoptextcolor % also goes ok with \page after
-% {\let\maintextcolor\empty % this one because the top of
-% \stopregistercolor % page sets the color right (side
-% \egroup}% % effect)
-% \def\starttextcolor[##1]%
-% {\bgroup
-% \let\stoptextcolor\egroup}%
-% \startregistercolor[#1]%
-% \edef\maintextcolor{#1}}}
-
-\def\@@themaintextcolor{themaintextcolor}
-
\def\starttextcolor[#1]%
{\doifsomething{#1}
{\bgroup
@@ -1316,9 +1798,9 @@
%D The following hook permits proper support at the text
%D level. This definition actually belongs in another
-%D module.
+%D module. (May need a different \MKIV\ implementation.)
-\ifx\initializemaintextcolor\undefined
+% \ifx\initializemaintextcolor\undefined
\let\@@clprevcolor\empty
@@ -1343,11 +1825,7 @@
\appendtoks\stoptextcolor \to\everystoptext
\let\doinitializemaintextcolor\relax}
-\fi
-
-%D The next macro can be used to return to the (normal)
-%D page color. This macro is used in the same way as
-%D \type {\color}.
+% \fi
\def\localstarttextcolor
{\ifx\maintextcolor\empty
@@ -1475,8 +1953,6 @@
%D The following switch is mainly meant for (hidden)
%D documentation purposes.
-\newif\ifweightGRAY \weightGRAYtrue
-
\def\nGRAYfactor{333.333}
\def\rGRAYfactor{\ifweightGRAY300\else\nGRAYfactor\fi}
\def\gGRAYfactor{\ifweightGRAY590\else\nGRAYfactor\fi}
@@ -1545,113 +2021,8 @@
\let\currentspotcolor \empty
\let\previousspotcolor\empty
-\newif\ifincolor
-\newif\iflocalcolor
-
-\def\setupcolors
- {\dosingleargument\dosetupcolors}
-
-\def\resetcolorsplitting
- {\chardef\currentcolorchannel\zerocount
- \let\currentspotcolor\empty
- \filterspotcolorfalse}
-
-\def\colorsplitsuffix{\ifcase\currentcolorchannel\else-\@@clsplit\fi}
-\def\colorsplitprefix{\ifcase\currentcolorchannel\else\@@clsplit-\fi}
-
-\def\setcolorsplitting
- {\resetsystemmode{\v!color\colorsplitsuffix}%
- \resetcolorsplitting
- \processaction
- [\@@clsplit]
- [ c=>\chardef\currentcolorchannel1,%
- m=>\chardef\currentcolorchannel2,%
- y=>\chardef\currentcolorchannel3,%
- k=>\chardef\currentcolorchannel4,%
- r=>\chardef\currentcolorchannel5,%
- g=>\chardef\currentcolorchannel6,%
- b=>\chardef\currentcolorchannel7,%
- s=>\chardef\currentcolorchannel8,%
- \v!no=>,% \currentcolorchannel0,% all colors
- \s!default=>,% \currentcolorchannel0,% all colors
- \s!unknown=>\filterspotcolortrue
- \edef\currentspotcolor{\commalistelement}]%
- \setsystemmode{\v!color\colorsplitsuffix}%
- \iffilterspotcolor \let\@@clrgb\v!no \fi}
-
-\def\dosetupcolors[#1]%
- {\getparameters[\??cl][#1]%
- \doifelse\@@clspot\v!yes
- \SPOTsupportedtrue
- \SPOTsupportedfalse
- \doifelsenothing\@@clsplit
- \resetcolorsplitting
- \setcolorsplitting
- \doifelse\@@clreduction\v!yes
- \reduceCMYKtrue
- \reduceCMYKfalse
- \doifelse\@@clexpansion\v!yes
- \freezecolorstrue
- \freezecolorsfalse
- \doifelse\@@clcriterium\v!all
- \hidesplitcolortrue
- \hidesplitcolorfalse
- \doifelse\@@clrgb\v!no
- {\ifRGBsupported \showmessage\m!colors {9}\v!rgb\RGBsupportedfalse\fi}
- {\ifRGBsupported\else\showmessage\m!colors{10}\v!rgb\RGBsupportedtrue \fi}%
- \doifelse\@@clcmyk\v!no
- {\ifCMYKsupported \showmessage\m!colors {9}\v!cmyk\CMYKsupportedfalse\fi}
- {\ifCMYKsupported\else\showmessage\m!colors{10}\v!cmyk\CMYKsupportedtrue \fi}%
- % todo : mpspot
- \doifelse\@@clmpcmyk\v!no
- {\ifMPcmykcolors \showmessage\m!colors {9}{\v!mp\v!cmyk}\MPcmykcolorsfalse\fi}
- {\ifMPcmykcolors\else\showmessage\m!colors{10}{\v!mp\v!cmyk}\MPcmykcolorstrue \fi}%
- \doifelse\@@clmpspot\v!no
- {\ifMPspotcolors \showmessage\m!colors {9}{\v!mp\v!spot}\MPspotcolorsfalse\fi}
- {\ifMPspotcolors\else\showmessage\m!colors{10}{\v!mp\v!spot}\MPspotcolorstrue \fi}%
- \preferGRAYfalse
- \processaction
- [\@@clconversion]
- [ \v!yes=>\preferGRAYtrue,
- \v!always=>\preferGRAYtrue\RGBsupportedfalse\CMYKsupportedfalse]%
- \ifRGBsupported
- \converttoGRAYfalse
- \forcegrayMPcolorsfalse
- \else\ifCMYKsupported
- \converttoGRAYfalse
- \forcegrayMPcolorsfalse
- \convertMPcolorstrue
- \ifreduceCMYK
- \reduceMPcolorstrue
- \fi
- \else
- \ifconverttoGRAY\else\showmessage\m!colors{11}\empty\fi
- \converttoGRAYtrue
- \forcegrayMPcolorstrue
- \convertMPcolorsfalse
- \reduceMPcolorsfalse
- \fi\fi
- \processaction
- [\@@clstate]
- [ \v!global=>\ifincolor\else\showmessage\m!colors1\colorstyle\fi
- \incolortrue\localcolorfalse,
- \v!local=>\ifincolor\else\showmessage\m!colors2\colorstyle\fi
- \incolortrue\localcolortrue,
- \v!start=>\ifincolor\else\showmessage\m!colors1\colorstyle\fi
- \incolortrue\localcolorfalse
- \let\@@clstate\v!global,
- \v!stop=>\incolorfalse\localcolorfalse
- \forcegrayMPcolorstrue]%
- \initializemaintextcolor}
-
-%D \macros
-%D {doifcolorelse}
-%D
-%D Switching to a color is done by means of the following
-%D command. Later on we will explain the use of palets. We
-%D define ourselves a color conditional first.
-
-\let\currentpalet\empty
+%D The tests depend on the use of constants. If we use the \MKIV\
+%D method we can share more.
\def\doifcolorelse#1%
{\ifcsname\??cr\ifcsname\??cr\currentpalet#1\endcsname\currentpalet\fi#1\endcsname
@@ -1667,11 +2038,8 @@
\expandafter\gobbleoneargument
\fi}
-%D \macros
-%D {localstartcolor,localstopcolor}
-%D
-%D Simple color support, that is without nesting, is provided
-%D by:
+%D There are a couple of different color switching macros,
+%D the local ones can be used to speed up things (only in \MKII).
\def\localstartcolor
{\ifincolor
@@ -1688,14 +2056,6 @@
\noglobalstopcolor
\fi}
-%D \macros
-%D {startcolor,stopcolor}
-%D
-%D The more save method, the one that saves the current color
-%D state and returns to this state afterward, is activated by:
-%D
-%D \showsetup{startcolor}
-
\unexpanded\def\startcolor
{\ifincolor
\expandafter\doglobalstartcolor
@@ -1731,11 +2091,6 @@
\def\@@currentcolorstop {\??cl\the\colorlevel S}
%def\@@currenttransparent{\??cl\the\colorlevel T}
-% \def\currentcolorname
-% {\csname
-% \ifcsname\@@currentcolorname\endcsname\@@currentcolorname\else\s!empty\fi
-% \endcsname}
-
\letvalue{\??cl*\s!black}\s!black
\def\currentcolorname
@@ -1751,9 +2106,6 @@
\fi
\endcsname}
-% \def\outercolorname
-% {\ifcsname\@@currentcolorname\endcsname currentcolor\else\s!black\fi}
-
\def\outercolorname
{\ifcsname\@@currentcolorname\endcsname
\expandafter\ifx\csname\@@currentcolorname\endcsname\empty
@@ -1765,9 +2117,6 @@
\s!black
\fi}
-\def\startcurrentcolor{\startcolor[\outercolorname]}
-\def\stopcurrentcolor {\stopcolor}
-
% not the following, because we need a different tag in order to trick the stack
%
% \def\outercolorname{\executeifdefined\@@currentcolorname\s!black}
@@ -2023,6 +2372,15 @@
\startcolormode\@@currentcolor
\fi\fi}
+% weird stuff
+
+\def\pushpostponedpagecolor
+ {\edef\savedtopofpagecolor{\topofpagecolor}%
+ \doifsomething\savedtopofpagecolor\restorecolormode} % \stopcolormode
+
+\def\poppostponedpagecolor
+ {\doifsomething\savedtopofpagecolor\startcolormode\savedtopofpagecolor}
+
%D \macros
%D {startcolorpage, stopcolorpage}
%D
@@ -2054,28 +2412,24 @@
\appendtoks \startcolorpage\to\everystarttextproperties
\prependtoks\stopcolorpage \to\everystoptextproperties
-%D \macros
-%D {color,graycolor}
-%D
-%D This leaves the simple color command:
-%D
-%D \showsetup{color}
-%D \showsetup{graycolor}
-%D
-%D Which can be used straightforward: \color[green]{green as gras}.
%D We want color support to be similar to font support and
-%D therefore implement \type{\color} as:
-
-\unexpanded\def\color[#1]%
- {\groupedcommand{\startcolor[#1]}\stopcolor}
-
-% \let\switchtocolor\color
-
+%D therefore implement \type{\color} using grouping.
+%D
%D When \type {\somecolor} is issued, we can savely assume
%D grouping. Using \type {\groupedcommand} here (i.e.\ the
%D definition of \type {\color}) is unsafe because in
%D interferes with for instance switching attributes.
+\unexpanded\def\color[#1]%
+ {\groupedcommand{\startcolor[#1]}\stopcolor}
+
+%D This implementation enables use of defined colors like:
+%D
+%D \starttyping
+%D Look at the {\brightgreen bright} side of life and get
+%D yourself no \red{red} head!
+%D \stoptyping
+
%D Also wrong, test in combinations: \type{...{}{\red test}}
%D
%D \def\switchtocolor[#1]%
@@ -2090,34 +2444,9 @@
\unexpanded\def\graycolor[#1]% not \gray because this is a color
{\groupedcommand{\RGBsupportedfalse\CMYKsupportedfalse\SPOTsupportedfalse\startcolor[#1]}\stopcolor}
-\let\grey\graycolor
-
-%D This implementation enables use of defined colors like:
-%D
-%D \starttyping
-%D Look at the {\brightgreen bright} side of life and get
-%D yourself no \red{red} head!
-%D \stoptyping
+\unexpanded\def\colored[#1]%
+ {\groupedcommand{\definecolor[@colored@][#1]\startcolor[@colored@]}\stopcolor}
-%D \macros
-%D {colorvalue, grayvalue}
-%D
-%D We can typeset the color components using \type{\colorvalue} and
-%D \type{\grayvalue}. The commands:
-%D
-%D \startbuffer
-%D color value of SomeKindOfRed: \colorvalue{SomeKindOfRed} \crlf
-%D gray value of SomeKindOfRed: \grayvalue{SomeKindOfRed}
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D show us:
-%D
-%D \startvoorbeeld
-%D \getbuffer
-%D \stopvoorbeeld
-%D
%D We can speed the following macros a bit up, but this
%D hardly pays off; they are only used in the manual.
@@ -2127,8 +2456,6 @@
\ifnum#1<\plusthousand 0.\the#1\else
1.000\fi\fi\fi}
-\def\colorformatseparator{ }
-
\def\dodoformatcolor#1%
{\colordimen#1\points\relax
\ifdim\colordimen>\onepoint
@@ -2241,89 +2568,7 @@
\def\raster[#1]{\groupedcommand{\startraster[#1]}{\stopraster}}
-%D In this documentation we will not go into too much details
-%D on palets. Curious users can find more information on this
-%D topic in \from[use of color].
-%D
-%D At the moment we implemented color in \CONTEXT\ color
-%D printing was not yet on the desktop. In spite of this lack our
-%D graphics designer made colorfull illustrations. When printed
-%D on a black and white printer, distinctive colors can come
-%D out equally gray. We therefore decided to use only colors
-%D that were distinctive in colors as well as in black and
-%D white print.
-%D
-%D Although none of the graphic packages we used supported
-%D logical colors and global color redefition, we build this
-%D support into \CONTEXT. This enabled us to experiment and
-%D also prepared us for the future.
-
-%D \macros
-%D {definepalet}
-%D
-%D Colors are grouped in palets. The colors in such a palet can
-%D have colorful names, but best is to use names that specify
-%D their use, like {\em important} or {\em danger}. As a sort
-%D of example \CONTEXT\ has some palets predefined,
-%D like:\footnote{At the time I wrote the palet support, I was
-%D reading 'A hort history of time' of S.~Hawkins, so that's
-%D why we stuck to quarks.}
-%D
-%D \starttyping
-%D \definepalet
-%D [alfa]
-%D [ top=rood:7,
-%D bottom=groen:6,
-%D up=blauw:5,
-%D down=cyaan:4,
-%D strange=magenta:3,
-%D charm=geel:2]
-%D \stoptyping
-%D
-%D It's formal definition is:
-%D
-%D \showsetup{definepalet}
-%D
-%D Visualized, such a palet looks like:
-%D
-%D \startbuffer[palet]
-%D \showpalet [alfa] [horizontal,name,number,value]
-%D \stopbuffer
-%D
-%D \startlinecorrection
-%D \getbuffer[palet]
-%D \stoplinecorrection
-%D
-%D This bar shows both the color and gray alternatives of the
-%D palet components (not visible in black and white print).
-%D
-%D When needed, one can copy a palet by saying:
-%D
-%D \starttyping
-%D \definepalet [TEXcolorpretty] [colorpretty]
-%D \stoptyping
-%D
-%D This saves us some typing in for instance the modules that
-%D deal with pretty verbatim typesetting.
-
-\def\definepalet
- {\dodoubleargument\dodefinepalet}
-
-\def\dodefinepalet[#1][#2]%
- {\doifassignmentelse{#2}
- {%\showmessage\m!colors6{#1}%
- \letvalue{\??pa#1}\empty
- \setevalue{\??pa\??pa#1}{#2}%
- \def\dodododefinepalet[##1=##2]%
- {\doifvaluesomething{\??pa#1}
- {\setevalue{\??pa#1}{\csname\??pa#1\endcsname,}}%
- \setevalue{\??pa#1}{\csname\??pa#1\endcsname##1}%
- \dodefinepaletcolor{#1}{##1}{##2}}%
- \def\dododefinepalet##1%
- {\dodododefinepalet[##1]}%
- \processcommalist[#2]\dododefinepalet}
- {\doifdefined{\??pa#2}
- {\expanded{\dodefinepalet[#1][\csname\??pa\??pa#2\endcsname]}}}}
+%D Palets use an auxiliary macro:
\def\dodefinepaletcolor#1#2#3%
{\doifassignmentelse{#3}
@@ -2335,285 +2580,7 @@
{\iffreezecolors\@EA\setevalue\else\@EA\setvalue\fi{\??cr#1:#2}{\csname\??cr#3\endcsname}}
{\letvalue{\??cr#1:#2}\colorXpattern}}}
-\let\paletsize\!!zerocount
-
-\def\getpaletsize[#1]%
- {\getcommacommandsize[\csname\??pa\??pa#1\endcsname]%
- \edef\paletsize{\number\commalistsize}}
-
-%D Instead of refering to colors, one can also directly specify
-%D a color:
-%D
-%D \starttyping
-%D \definepalet[test][xx=green]
-%D \definepalet[test][xx={y=.4}]
-%D \stoptyping
-
-%D \macros
-%D {setuppalet}
-%D
-%D Colors are taken from the current palet, if defined.
-%D Setting the current palet is done by:
-%D
-%D \showsetup{setuppalet}
-
-\let\currentpalet\empty
-
-\def\setuppalet
- {\dosingleempty\dosetuppalet}
-
-\def\dosetuppalet[#1]%
- {\edef\currentpalet{#1}%
- \ifx\currentpalet\empty
- % seems to be a reset
- \else\ifcsname\??pa\currentpalet\endcsname
- \edef\currentpalet{#1:}%
- \else
- \showmessage\m!colors7\currentpalet
- \let\currentpalet\empty
- \fi\fi}
-
-%D \macros
-%D {showpalet}
-%D
-%D The previous visualization was typeset with:
-%D
-%D \typebuffer[palet]
-%D
-%D This commands is defined as:
-%D
-%D \showsetup{showpalet}
-
-\fetchruntimecommand \showpalet {\f!colorprefix\s!run}
-
-%D \macros
-%D {showcolorcomponents}
-%D
-%D \starttyping
-%D \showcolorcomponents[color-1,color-2]
-%D \stoptyping
-
-\fetchruntimecommand \showcolorcomponents {\f!colorprefix\s!run}
-
-%D \macros
-%D {definecolorgroup}
-%D
-%D The naming of the colors in this palet suggests some
-%D ordening, which in turn is suported by color grouping.
-%D
-%D \starttyping
-%D \definecolorgroup
-%D [red]
-%D [1.00:0.90:0.90,
-%D 1.00:0.80:0.80,
-%D 1.00:0.70:0.70,
-%D 1.00:0.55:0.55,
-%D 1.00:0.40:0.40,
-%D 1.00:0.25:0.25,
-%D 1.00:0.15:0.15,
-%D 0.90:0.00:0.00]
-%D \stoptyping
-%D
-%D In such a color group colors are numbered from~$1$ to~$n$.
-%D
-%D \showsetup{definecolorgroup}
-%D
-%D This kind of specification is not only more compact than
-%D defining each color separate, it also loads faster and takes
-%D less bytes.
-
-\def\definecolorgroup
- {\dotripleempty\dodefinecolorgroup}
-
-% \def\dodefinecolorgroup[#1][#2][#3]%
-% {\ifthirdargument
-% \processaction
-% [#2]
-% [ \v!cmyk=>\edef\currentcolorspace{C},
-% \v!rgb=>\edef\currentcolorspace{R},
-% \v!gray=>\edef\currentcolorspace{S},
-% \v!spot=>\edef\currentcolorspace{P},
-% \v!s=>\edef\currentcolorspace{S},
-% \s!unknown=>\edef\currentcolorspace{R}]%
-% \colorcount\zerocount
-% \def\dododefinecolorgroup##1%
-% {\advance\colorcount \plusone
-% \setevalue{\??cr#1:\the\colorcount}{\currentcolorspace:##1:0:0}}%
-% \processcommalist[#3]\dododefinecolorgroup
-% \else
-% \doifinstringelse{:}{#2}
-% {\definecolorgroup[#1][\v!rgb][#2]}
-% {\doloop
-% {\doifdefinedelse{\??cr#2:\recurselevel}
-% {\setevalue{\??cr#1:\recurselevel}%
-% {\csname\??cr#2:\recurselevel\endcsname}}
-% {\exitloop}}}%
-% \fi}
-
-\def\dododefinecolorgroupgray [#1][#2:#3]{\definecolor [#1:\the\colorcount][s=#2]}
-\def\dododefinecolorgrouprgb [#1][#2:#3:#4:#5]{\definecolor [#1:\the\colorcount][r=#2,g=#3,b=#4]}
-\def\dododefinecolorgroupcmyk[#1][#2:#3:#4:#5:#6]{\definecolor [#1:\the\colorcount][c=#2,m=#3=,y=#4,k=#5]}
-\def\dododefinecolorgroupspot [#1][#2:#3:#4]{\definespotolor[#1:\the\colorcount][#2][p=#3]}
-
-\def\dododefinecolorgroup#1#2%
- {\advance\colorcount\plusone
- \getvalue{dododefinecolorgroup\currentcolorspace}[#1][#2:0:0:0:0]}
-
-\def\dodefinecolorgroup[#1][#2][#3]% obsolete, just use palets
- {\ifthirdargument
- \doifelsenothing{#2}{\let\currentcolorspace\v!rgb}{\def\currentcolorspace{#2}}%
- \colorcount\zerocount
- \processcommalist[#3]{\dododefinecolorgroup{#1}}%
- \else
- \doifinstringelse{:}{#2}
- {\definecolorgroup[#1][\v!rgb][#2]}
- {\doloop
- {\doifdefinedelse{\??cr#2:\recurselevel}
- {\setevalue{\??cr#1:\recurselevel}{\csname\??cr#2:\recurselevel\endcsname}}
- {\exitloop}}}%
- \fi}
-
-%D \macros
-%D {showcolorgroup}
-%D
-%D We can show the group by:
-%D
-%D \startbuffer
-%D \showcolorgroup [blue] [horizontal,name,number,value]
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D or in color:
-%D
-%D \startlinecorrection
-%D \getbuffer
-%D \stoplinecorrection
-%D
-%D which uses:
-%D
-%D \showsetup{showcolorgroup}
-
-\fetchruntimecommand \showcolorgroup {\f!colorprefix\s!run}
-
-%D There are ten predefined color groups, like
-%D \color[green]{\em groen}, \color[red]{\em rood},
-%D \color[blue]{\em blauw}, \color[cyan]{\em cyaan},
-%D \color[magenta]{\em magenta} and \color[yellow]{\em geel}.
-%D
-%D \startlinecorrection
-%D \hbox to \hsize
-%D {\hss
-%D \showcolorgroup [red] [vertical,name,number]\hss
-%D \showcolorgroup [green] [vertical,name]\hss
-%D \showcolorgroup [blue] [vertical,name]\hss
-%D \showcolorgroup [cyan] [vertical,name]\hss
-%D \showcolorgroup [magenta][vertical,name]\hss
-%D \showcolorgroup [yellow] [vertical,name]\hss}
-%D \stoplinecorrection
-%D
-%D These groups are used to define palets {\em alfa} upto {\em
-%D zeta}. As long as we don't use colors from the same row, we
-%D get ourselves distinctive palets. By activating such a palet
-%D one gains access to its members {\em top} to {\em charm} (of
-%D course one should use more suitable names than these).
-%D
-%D \startlinecorrection
-%D \hbox to \hsize
-%D {\showpalet [alfa] [vertical,name,number]\hss
-%D \showpalet [beta] [vertical,name]\hss
-%D \showpalet [gamma] [vertical,name]\hss
-%D \showpalet [delta] [vertical,name]\hss
-%D \showpalet [epsilon] [vertical,name]\hss
-%D \showpalet [zeta] [vertical,name]}
-%D \stoplinecorrection
-%D
-%D By using the keyword \type {value} the individual color
-%D components are shown too. When printed in color, these
-%D showcases show both the colors and the gray value.
-
-%D \macros
-%D {comparepalet}
-%D
-%D There are some more testing macros available:
-%D
-%D \startbuffer
-%D \comparepalet [alfa]
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D shows the palet colors against a background:
-%D
-%D \startlinecorrection
-%D \getbuffer
-%D \stoplinecorrection
-%D
-%D The formal definition is:
-%D
-%D \showsetup{comparepalet}
-
-\fetchruntimecommand \comparepalet {\f!colorprefix\s!run}
-
-%D \macros
-%D {comparecolorgroup}
-%D
-%D The similar command:
-%D
-%D \startbuffer
-%D \comparecolorgroup [blue]
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D shows color groups:
-%D
-%D \startlinecorrection
-%D \getbuffer
-%D \stoplinecorrection
-%D
-%D this commands are defined as:
-%D
-%D \showsetup{comparecolorgroup}
-
-\fetchruntimecommand \comparecolorgroup {\f!colorprefix\s!run}
-
-%D \macros
-%D {showcolor}
-%D
-%D But let's not forget that we also have the more traditional
-%D non||related colors. These show up after:
-%D
-%D \starttyping
-%D \showcolor [name]
-%D \stoptyping
-%D
-%D Where \type{name} for instance can be \type{rgb}.
-%D
-%D \showsetup{showcolor}
-
-\fetchruntimecommand \showcolor {\f!colorprefix\s!run}
-
-%D It would make sense to put the following code in \type
-%D {colo-mps}, but it it rather low level.
-
-%D \macros
-%D {ifMPgraphics, ifMPcmykcolors, MPcolor}
-%D
-%D A very special macro is \type{\MPcolor}. This one can be
-%D used to pass a \CONTEXT\ color to \METAPOST.
-%D
-%D \starttyping
-%D \MPcolor{my own red}
-%D \stoptyping
-%D
-%D This macro returns a \METAPOST\ triplet \type{(R,G,B)}.
-%D Unless \CMYK\ color support is turned on with \type
-%D {MPcmyk}, only \cap{RGB} colors and gray scales are
-%D supported.
-
-\newif\ifMPcmykcolors % \MPcmykcolorsfalse
-\newif\ifMPspotcolors % \MPspotcolorsfalse
+%D \MP\ related conversions:
\def\scaledMPcolor#1#2%
{\ifMPgraphics
@@ -2688,10 +2655,7 @@
\let\processMP\spotMP % for some time, will become obsolete, brrr
-%D \macros
-%D {PDFcolor,FDFcolor}
-%D
-%D Similar alternatives are avaliable for \PDF:
+%D \PDF\ related conversions:
\def\PDFcolor #1{\handlecolorwith\doPDFcolor \csname\??cr#1\endcsname:::::::\end}
\def\PDFcolorvalue#1{\handlecolorwith\doPDFcolorvalue\csname\??cr#1\endcsname:::::::\end}
@@ -2721,14 +2685,40 @@
\else 0%
\fi\fi\fi\fi]}
-% a few more obscure ones:
-
\def\internalspotcolorname#1{\handlecolorwith\dointernalspotcolorname\csname\??cr#1\endcsname:::::::\end}
\def\internalspotcolorsize#1{\handlecolorwith\dointernalspotcolorsize\csname\??cr#1\endcsname:::::::\end}
\def\dointernalspotcolorname#1:#2:#3:#4:#5:#6:#7:#8\end{\if#1P\ifcase0#3 #1\else#2\fi\else#1\fi}
\def\dointernalspotcolorsize#1:#2:#3:#4:#5:#6:#7:#8\end{\if#1P\ifcase0#3 0\else#3\fi\else 0\fi}
+%D Slow but ok \unknown
+
+\def\colorcomponents#1% might be broken
+ {\startnointerference
+ \localcolortrue
+ \globallet\thecolorcomponents\empty
+ \def\doexeccolorR ##1:##2:##3:##4:##5\od{\gdef\thecolorcomponents{r=\twodigitrounding{##1} g=\twodigitrounding{##2} b=\twodigitrounding{##3}}}%
+ \def\doexeccolorC##1:##2:##3:##4:##5:##6\od{\gdef\thecolorcomponents{c=\twodigitrounding{##1} m=\twodigitrounding{##2} y=\twodigitrounding{##3} k=\twodigitrounding{##4}}}%
+ \def\doexeccolorS ##1:##2:##3\od{\gdef\thecolorcomponents{s=\twodigitrounding{##1}}}%
+ \def\doexeccolorP##1:##2:##3:##4:##5:##6\od{\gdef\thecolorcomponents{p=\twodigitrounding{##4} n=##1}}%
+ \let\doexeccolorPindex\doexeccolorP
+ \backgroundline[#1]{}%
+ \stopnointerference
+ \thecolorcomponents}
+
+\def\transparencycomponents#1%
+ {\startnointerference
+ \localcolortrue
+ \globallet\thetransparencycomponents\empty
+ \def\doexeccolorR ##1:##2:##3:##4:##5\od{\gdef\thetransparencycomponents{a=\twodigitrounding{##4} t=\twodigitrounding{##5}}}%
+ \def\doexeccolorC##1:##2:##3:##4:##5:##6\od{\gdef\thetransparencycomponents{a=\twodigitrounding{##5} t=\twodigitrounding{##6}}}%
+ \def\doexeccolorS ##1:##2:##3\od{\gdef\thetransparencycomponents{a=\twodigitrounding{##2} t=\twodigitrounding{##3}}}%
+ \def\doexeccolorP##1:##2:##3:##4:##5:##6\od{\gdef\thetransparencycomponents{a=\twodigitrounding{##5} t=\twodigitrounding{##6}}}%
+ \let\doexeccolorPindex\doexeccolorP
+ \backgroundline[#1]{}%
+ \stopnointerference
+ \thetransparencycomponents}
+
%D \macros
%D {everyshapebox}
%D
@@ -2737,8 +2727,34 @@
\appendtoks \localcolortrue \to \everyshapebox
+%D \macros
+%D {forcecolorhack}
+%D
+%D Awful \unknown
+
+\let\forcecolorhack\relax
+
%D We default to the colors defined in \module{colo-rgb} and
-%D support both \cap{RGB} and \cap{CMYK} output.
+%D support both \cap{RGB} and \cap{CMYK} output. As you can
+%D see, color support is turned off by default. Reduction of
+%D gray colors to gray scales is turned on.
+
+\definecolor[black][s=0]
+\definecolor[white][s=1]
+
+\definetransparency [none] [0]
+\definetransparency [normal] [1]
+\definetransparency [multiply] [2]
+\definetransparency [screen] [3]
+\definetransparency [overlay] [4]
+\definetransparency [softlight] [5]
+\definetransparency [hardlight] [6]
+\definetransparency [colordodge] [7]
+\definetransparency [colorburn] [8]
+\definetransparency [darken] [9]
+\definetransparency [lighten] [10]
+\definetransparency [difference] [11]
+\definetransparency [exclusion] [12]
\setupcolors
[\c!state=\v!stop,
@@ -2757,81 +2773,4 @@
\setupcolor
[\v!rgb]
-%D For the moment we keep the next downward compatibility
-%D switch, i.e.\ expanded colors. However, predefined colors
-%D and palets are no longer expanded (which is what I wanted
-%D in the first place).
-%D
-%D Well, in case we want to do color separation and use CMYK
-%D colors only, this is dangerous since unwanted remapping may
-%D take place. Especially when we redefine already defined
-%D colors in another color space (e.g. darkgreen is
-%D predefined in RGB color space, so a redefinition in CMYK
-%D coordinates before RGB mode is disabled, would give
-%D unexpected results due to the already frozen color spec.)
-%D
-%D So, from now on, colors are not frozen any more!
-
-% \appendtoks\setupcolors[\c!expansie=\v!ja]\to\everyjob
-
-%D The next macro is for instance used in figure splitting:
-
-\def\doifseparatingcolorselse
- {\iffilterspotcolor
- \@EA\firstoftwoarguments
- \else\ifcase\currentcolorchannel
- \@EAEAEA\secondoftwoarguments
- \else
- \@EAEAEA\firstoftwoarguments
- \fi\fi}
-
-\def\doifcolorchannelelse#1%
- {\doifseparatingcolorselse
- {\doifelsenothing{#1}
- \secondoftwoarguments
- {\doifelse{#1}\@@clsplit
- \firstoftwoarguments
- \secondoftwoarguments}}
- \secondoftwoarguments}
-
-\def\resetcolorseparation
- {\filterspotcolorfalse
- \chardef\currentcolorchannel\zerocount}
-
-%D These can be used in selecting specific files (like
-%D figuredatabases).
-
-% we already have:
-%
-% \def\colorsplitsuffix{\ifcase\currentcolorchannel\else-\@@clsplitsen\fi}
-% \def\colorsplitprefix{\ifcase\currentcolorchannel\else\@@clsplitsen-\fi}
-
-\def\colorchannelprefix{\doifseparatingcolorselse\@@clsplit\empty-}
-\def\colorchannelsuffix{-\doifseparatingcolorselse\@@clsplit\empty}
-
-%D As we can see, color support is turned off by default.
-%D Reduction of gray colors to gray scales is turned on.
-
-%D \macros
-%D {negatecolorcomponent,negatedcolorcomponent}
-%D
-%D These speak for themselves. See \type {colo-ext} for usage.
-
-\def\negatecolorcomponent#1% #1 = \macro
- {\scratchdimen\onepoint\advance\scratchdimen-#1\onepoint
- \ifdim\scratchdimen<\zeropoint\scratchdimen\zeropoint\fi
- \edef#1{\withoutpt\the\scratchdimen}}
-
-\let\negatedcolorcomponent\firstofoneargument
-
-\def\negatedcolorcomponent#1%
- {\ifdim\dimexpr\onepoint-#1\onepoint\relax<\zeropoint
- \!!zerocount
- \else
- \expandafter\withoutpt\the\dimexpr\onepoint-#1\onepoint\relax
- \fi}
-
-\def\negatecolorcomponent#1% #1 = \macro
- {\edef#1{\negatedcolorcomponent{#1}}}
-
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/colo-ini.mkiv b/Master/texmf-dist/tex/context/base/colo-ini.mkiv
new file mode 100644
index 00000000000..e7a84980578
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/colo-ini.mkiv
@@ -0,0 +1,1042 @@
+%D \module
+%D [ file=colo-ini,
+%D version=2007.08.08,
+%D title=\CONTEXT\ Color Macros,
+%D subtitle=Initialization,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D We need to clean this up further but first we hav eto make sure that mkiv
+%D code works ok.
+
+\writestatus{loading}{ConTeXt Color Macros / Initialization}
+
+%D This module implements color. Since \MKII\ and \MKIV\ use a completely
+%D different approach, this module only implements a few generic mechanisms.
+
+\registerctxluafile{colo-ini}{1.000}
+\registerctxluafile{lpdf-col}{1.000}
+
+\unprotect
+
+%D We use a couple of local registers. That way we don't have
+%D to group when converting colors. By the way, this is not
+%D really faster. We can sqeeze half a second runtime for 50K
+%D switches on a 1G machine, but the macros will become rather
+%D ugly then. To mention one such improvement: no colon
+%D after the key character (.25 sec).
+
+\newcount\colorcount
+
+%D When typesetting for paper, we prefer using the \cap{CMYK}
+%D color space, but for on||screen viewing we prefer \cap{RGB}
+%D (the previous implementation supported only this scheme).
+%D Independant of such specifications, we support some automatic
+%D conversions:
+%D
+%D \startitemize[packed]
+%D \item convert all colors to \cap{RGB}
+%D \item convert all colors to \cap{CMYK}
+%D \item convert all colors to gray scales
+%D \stopitemize
+%D
+%D We also support optimization of colors to gray scales.
+%D
+%D \startitemize[continue]
+%D \item reduce gray colors to gray scales
+%D \item reduce \cap{CMY} components to \cap{K}
+%D \stopitemize
+%D
+%D These options are communicated by means of:
+
+\newif\ifRGBsupported
+\newif\ifCMYKsupported
+\newif\ifSPOTsupported
+\newif\ifpreferGRAY
+\newif\ifGRAYprefered
+\newif\ifreduceCMYK
+\newif\ifconverttoGRAY
+\newif\ifweightGRAY \weightGRAYtrue
+
+\newif\ifconvertMPcolors
+\newif\ifreduceMPcolors
+\newif\ifforcegrayMPcolors
+
+%D The last boolean controls reduction of \cap{CMYK} to
+%D \cap{CMY} colors. When set to true, the black component
+%D is added to the other ones.
+%D
+%D Prefering gray is not the same as converting to gray.
+%D Conversion treats each color components in a different way,
+%D while prefering is just a reduction and thus a
+%D space||saving option.
+
+\newif\iffreezecolors \freezecolorsfalse
+\newif\ifincolor % true if colors enabled
+
+\let\colorlist \empty
+\let\currentspotcolor \empty
+\let\allspotcolors \empty
+\let\usedspotcolors \empty
+\let\currentpalet \empty
+
+%D \macros
+%D {definecolor,defineglobalcolor,definenamedcolor,definespotcolor,definemultitonecolor}
+%D
+%D \startbuffer
+%D \definecolor [blue] [c=1,m=.38,y=0,k=.64] % pantone pms 2965 uncoated m
+%D \definecolor [yellow] [c=0,m=.28,y=1,k=.06] % pantone pms 124 uncoated m
+%D
+%D \definespotcolor [blue-100] [blue] [p=1]
+%D \definespotcolor [yellow-100] [yellow] [p=1]
+%D
+%D \definemultitonecolor [pdftoolscolor] [blue=.12,yellow=.28] [c=.1,m=.1,y=.3,k=.1]
+%D
+%D \useexternalfigure[demofig][mill.png][object=no]
+%D
+%D \startcombination[4*1]
+%D {\externalfigure[demofig]} {no color}
+%D {\externalfigure[demofig][color=pdftoolscolor]} {indexed duotone}
+%D {\externalfigure[demofig][color=blue-100]} {spot color}
+%D {\externalfigure[demofig][color=yellow-100]} {spot color}
+%D \stopcombination
+%D \stopbuffer
+%D
+%D \getbuffer \typebuffer
+
+\def\definecolor {\dodoubleargument\dodefinecolor}
+\def\defineglobalcolor {\dodoubleargument\dodefineglobalcolor}
+\def\definenamedcolor {\dodoubleargument\dodefinenamedcolor}
+\def\definespotcolor {\dotripleargument\dodefinespotcolor}
+\def\definemultitonecolor{\doquadrupleempty\dodefinemultitonecolor}
+
+%D \macros
+%D {startcolor,stopcolor,
+%D faststartcolor,faststopcolor,
+%D startraster,stopraster,raster,
+%D color,graycolor}
+%D
+%D The local and global and raster commands are here just
+%D for compatibility with \MKII.
+%D
+%D \showsetup{startcolor}
+%D
+%D \macros
+%D {color,graycolor}
+%D
+%D This leaves the simple color command:
+%D
+%D \showsetup{color}
+%D \showsetup{graycolor}
+%D
+%D This leaves the simple color command:
+%D
+%D \showsetup{color}
+%D \showsetup{graycolor}
+
+ \def\switchtocolor [#1]{\getvalue{#1}}
+\unexpanded\def\color [#1]{\groupedcommand{\doactivatecolor{#1}}{}}
+\unexpanded\def\startcolor [#1]{\begingroup\doactivatecolor{#1}}
+\unexpanded\def\stopcolor {\endgroup}
+\unexpanded\def\graycolor [#1]{\groupedcommand{\setcolormodel{gray}\getvalue{#1}}{}}
+\unexpanded\def\colored [#1]{\groupedcommand{\definecolor[@colored@][#1]\doactivatecolor{@colored@}}{}}
+\unexpanded\def\fastcolored [#1]#2{\begingroup\dodefinefastcolor[@colored@][#1]\doactivatecolor{@colored@}#2\endgroup}
+ \def\predefinecolor [#1]{\flushatshipout{\hbox{\color[#1]{}}}}
+ \def\predefineindexcolor[#1]{\flushatshipout{\hbox{\color[#1]{}}}}
+ \def\startcolorpage {\startcolor[\ifx\maintextcolor\empty\defaulttextcolor\else\maintextcolor\fi]}
+ \def\stopcolorpage {\stopcolor}
+ \def\startraster [#1]{\dosetrastercolor{#1}}
+ \def\stopraster {}
+ \def\raster [#1]{\groupedcommand{\dosetrastercolor{#1}}{}}
+ \def\faststartcolor [#1]{\doactivatecolor{#1}}
+ \def\faststopcolor {}
+\unexpanded\def\dosetcolorattribute#1#2{\ifcsname#1#2\endcsname\doactivatecolor{\csname#1#2\endcsname}\fi}
+
+\let\grey\graycolor
+
+%D \macros
+%D {startcurrentcolor,stopcurrentcolor}
+
+\def\startcurrentcolor{\startcolor[\outercolorname]}
+\def\stopcurrentcolor {\stopcolor}
+
+%D \macros
+%D {setupcolor}
+%D
+%D Color definitions can be grouped in files with the name:
+%D
+%D \starttyping
+%D \f!colorprefix-identifier.tex
+%D \stoptyping
+%D
+%D where \type{\f!colorprefix} is \unprotect {\tttf \f!colorprefix}.
+%D Loading such a file is done by \protect
+%D
+%D \showsetup{setupcolor}
+%D
+%D Some default colors are specified in \type{colo-rgb.tex},
+%D which is loaded into the format by:
+%D
+%D \starttyping
+%D \setupcolor[rgb]
+%D \stoptyping
+
+\let\colorstyle\empty
+
+\def\setupcolor
+ {\dosingleargument\dosetupcolor}
+
+\def\dosetupcolor[#1]%
+ {\doifnot{#1}\colorstyle
+ {\def\colorstyle{#1}%
+ \processcommalist[#1]\dodosetupcolor}}
+
+\def\dodosetupcolor#1%
+ {\makeshortfilename[\truefilename{\f!colorprefix#1}]%
+ \startreadingfile
+ \readsysfile\shortfilename
+ {\showcolormessage\m!colors4\colorstyle}
+ {\showcolormessage\m!colors5\colorstyle}%
+ \stopreadingfile}
+
+\let\usecolors\setupcolor
+
+% check: \startcolormode
+
+%D \macros
+%D {definetransparency}
+%D
+%D This command numbers to names:
+
+\def\definetransparency
+ {\dodoubleargument\dodefinetransparency}
+
+\unexpanded\def\setupcolors
+ {\dosingleargument\dosetupcolors}
+
+\let\showcolormessage\gobblethreearguments
+
+\def\dosetupcolors[#1]% some no longer make sense in MkIV
+ {\getparameters[\??cl][#1]%
+ \doifelse\@@clspot\v!yes
+ \SPOTsupportedtrue
+ \SPOTsupportedfalse
+ \doifelse\@@clreduction\v!yes
+ \reduceCMYKtrue
+ \reduceCMYKfalse
+ \doifelse\@@clexpansion\v!yes
+ \freezecolorstrue
+ \freezecolorsfalse
+ \doifelse\@@clfactor\v!no
+ \weightGRAYfalse
+ \weightGRAYtrue
+ \doifelse\@@clrgb\v!no
+ {\ifRGBsupported \showcolormessage\m!colors {9}\v!rgb \RGBsupportedfalse \fi}
+ {\ifRGBsupported \else\showcolormessage\m!colors{10}\v!rgb \RGBsupportedtrue \fi}%
+ \doifelse\@@clcmyk\v!no
+ {\ifCMYKsupported \showcolormessage\m!colors {9}\v!cmyk \CMYKsupportedfalse\fi}
+ {\ifCMYKsupported\else\showcolormessage\m!colors{10}\v!cmyk \CMYKsupportedtrue \fi}%
+ \doifelse\@@clmpcmyk\v!no
+ {\ifMPcmykcolors \showcolormessage\m!colors {9}{\v!mp\v!cmyk}\MPcmykcolorsfalse \fi}
+ {\ifMPcmykcolors \else\showcolormessage\m!colors{10}{\v!mp\v!cmyk}\MPcmykcolorstrue \fi}%
+ \doifelse\@@clmpspot\v!no
+ {\ifMPspotcolors \showcolormessage\m!colors {9}{\v!mp\v!spot}\MPspotcolorsfalse \fi}
+ {\ifMPspotcolors \else\showcolormessage\m!colors{10}{\v!mp\v!spot}\MPspotcolorstrue \fi}%
+ \preferGRAYfalse
+ \processaction
+ [\@@clconversion]
+ [ \v!yes=>\preferGRAYtrue,
+ \v!always=>\preferGRAYtrue\RGBsupportedfalse\CMYKsupportedfalse]%
+ \ifRGBsupported
+ \converttoGRAYfalse
+ \forcegrayMPcolorsfalse
+ \else\ifCMYKsupported
+ \converttoGRAYfalse
+ \forcegrayMPcolorsfalse
+ \convertMPcolorstrue
+ \ifreduceCMYK
+ \reduceMPcolorstrue
+ \fi
+ \else
+ \ifconverttoGRAY\else\showcolormessage\m!colors{11}\empty\fi
+ \converttoGRAYtrue
+ \forcegrayMPcolorstrue
+ \convertMPcolorsfalse
+ \reduceMPcolorsfalse
+ \fi\fi
+ \doifelse\@@clstate\v!stop
+ {\incolorfalse\forcegrayMPcolorstrue}%
+ {\ifincolor\else\showcolormessage\m!colors1\colorstyle\fi\incolortrue\let\@@clstate\v!start}%
+ \dosetupcolormodel
+ \initializemaintextcolor}
+
+%D In this documentation we will not go into too much details
+%D on palets. Curious users can find more information on this
+%D topic in \from[use of color].
+%D
+%D At the moment we implemented color in \CONTEXT\ color
+%D printing was not yet on the desktop. In spite of this lack our
+%D graphics designer made colorfull illustrations. When printed
+%D on a black and white printer, distinctive colors can come
+%D out equally gray. We therefore decided to use only colors
+%D that were distinctive in colors as well as in black and
+%D white print.
+%D
+%D Although none of the graphic packages we used supported
+%D logical colors and global color redefition, we build this
+%D support into \CONTEXT. This enabled us to experiment and
+%D also prepared us for the future.
+
+%D \macros
+%D {definepalet}
+%D
+%D Colors are grouped in palets. The colors in such a palet can
+%D have colorful names, but best is to use names that specify
+%D their use, like {\em important} or {\em danger}. As a sort
+%D of example \CONTEXT\ has some palets predefined,
+%D like:\footnote{At the time I wrote the palet support, I was
+%D reading 'A hort history of time' of S.~Hawkins, so that's
+%D why we stuck to quarks.}
+%D
+%D \starttyping
+%D \definepalet
+%D [alfa]
+%D [ top=rood:7,
+%D bottom=groen:6,
+%D up=blauw:5,
+%D down=cyaan:4,
+%D strange=magenta:3,
+%D charm=geel:2]
+%D \stoptyping
+%D
+%D It's formal definition is:
+%D
+%D \showsetup{definepalet}
+%D
+%D Visualized, such a palet looks like:
+%D
+%D \startbuffer[palet]
+%D \showpalet [alfa] [horizontal,name,number,value]
+%D \stopbuffer
+%D
+%D \startlinecorrection
+%D \getbuffer[palet]
+%D \stoplinecorrection
+%D
+%D This bar shows both the color and gray alternatives of the
+%D palet components (not visible in black and white print).
+%D
+%D When needed, one can copy a palet by saying:
+%D
+%D \starttyping
+%D \definepalet [TEXcolorpretty] [colorpretty]
+%D \stoptyping
+%D
+%D This saves us some typing in for instance the modules that
+%D deal with pretty verbatim typesetting.
+
+\def\definepalet
+ {\dodoubleargument\dodefinepalet}
+
+\def\dodefinepalet[#1][#2]%
+ {\doifassignmentelse{#2}
+ {%\showcolormessage\m!colors6{#1}%
+ \letvalue{\??pa#1}\empty
+ \setevalue{\??pa\??pa#1}{#2}%
+ \def\dodododefinepalet[##1=##2]%
+ {\doifvaluesomething{\??pa#1}
+ {\setevalue{\??pa#1}{\csname\??pa#1\endcsname,}}%
+ \setevalue{\??pa#1}{\csname\??pa#1\endcsname##1}%
+ \dodefinepaletcolor{#1}{##1}{##2}}%
+ \def\dododefinepalet##1%
+ {\dodododefinepalet[##1]}%
+ \processcommalist[#2]\dododefinepalet}
+ {\doifdefined{\??pa#2}
+ {\expanded{\dodefinepalet[#1][\csname\??pa\??pa#2\endcsname]}}}}
+
+\let\paletsize\!!zerocount
+
+\def\getpaletsize[#1]%
+ {\getcommacommandsize[\csname\??pa\??pa#1\endcsname]%
+ \edef\paletsize{\number\commalistsize}}
+
+%D Instead of refering to colors, one can also directly specify
+%D a color:
+%D
+%D \starttyping
+%D \definepalet[test][xx=green]
+%D \definepalet[test][xx={y=.4}]
+%D \stoptyping
+
+%D \macros
+%D {setuppalet}
+%D
+%D Colors are taken from the current palet, if defined.
+%D Setting the current palet is done by:
+%D
+%D \showsetup{setuppalet}
+
+\let\currentpalet\empty
+
+\def\setuppalet
+ {\dosingleempty\dosetuppalet}
+
+\def\dosetuppalet[#1]%
+ {\edef\currentpalet{#1}%
+ \ifx\currentpalet\empty
+ % seems to be a reset
+ \else\ifcsname\??pa\currentpalet\endcsname
+ \edef\currentpalet{#1:}%
+ \else
+ \showcolormessage\m!colors7\currentpalet
+ \let\currentpalet\empty
+ \fi\fi
+ \initializemaintextcolor}
+
+%D \macros
+%D {showpalet}
+%D
+%D The previous visualization was typeset with:
+%D
+%D \typebuffer[palet]
+%D
+%D This commands is defined as:
+%D
+%D \showsetup{showpalet}
+
+\fetchruntimecommand \showpalet {\f!colorprefix\s!run}
+
+%D \macros
+%D {showcolorcomponents}
+%D
+%D \starttyping
+%D \showcolorcomponents[color-1,color-2]
+%D \stoptyping
+
+\fetchruntimecommand \showcolorcomponents {\f!colorprefix\s!run}
+
+%D \macros
+%D {definecolorgroup}
+%D
+%D The naming of the colors in this palet suggests some
+%D ordening, which in turn is suported by color grouping.
+%D
+%D \starttyping
+%D \definecolorgroup
+%D [red]
+%D [1.00:0.90:0.90,
+%D 1.00:0.80:0.80,
+%D 1.00:0.70:0.70,
+%D 1.00:0.55:0.55,
+%D 1.00:0.40:0.40,
+%D 1.00:0.25:0.25,
+%D 1.00:0.15:0.15,
+%D 0.90:0.00:0.00]
+%D \stoptyping
+%D
+%D In such a color group colors are numbered from~$1$ to~$n$.
+%D
+%D \showsetup{definecolorgroup}
+%D
+%D This kind of specification is not only more compact than
+%D defining each color separate, it also loads faster and takes
+%D less bytes.
+
+\def\definecolorgroup
+ {\dotripleempty\dodefinecolorgroup}
+
+\def\dododefinecolorgroupgray [#1][#2:#3]{\definecolor [#1:\the\colorcount][s=#2]}
+\def\dododefinecolorgrouprgb [#1][#2:#3:#4:#5]{\definecolor [#1:\the\colorcount][r=#2,g=#3,b=#4]}
+\def\dododefinecolorgroupcmyk[#1][#2:#3:#4:#5:#6]{\definecolor [#1:\the\colorcount][c=#2,m=#3=,y=#4,k=#5]}
+\def\dododefinecolorgroupspot [#1][#2:#3:#4]{\definespotcolor[#1:\the\colorcount][#2][p=#3]}
+
+\def\dododefinecolorgroup#1#2%
+ {\advance\colorcount\plusone
+ \getvalue{dododefinecolorgroup\currentcolorspace}[#1][#2:0:0:0:0]}
+
+\def\dodefinecolorgroup[#1][#2][#3]% obsolete, just use palets
+ {\ifthirdargument
+ \doifelsenothing{#2}{\let\currentcolorspace\v!rgb}{\def\currentcolorspace{#2}}%
+ \colorcount\zerocount
+ \processcommalist[#3]{\dododefinecolorgroup{#1}}%
+ \else
+ \doifinstringelse{:}{#2}
+ {\definecolorgroup[#1][\v!rgb][#2]}
+ {\doloop
+ {\ifcsname\??cr#2:\recurselevel\endcsname
+ \setevalue{\??cr#1:\recurselevel}{\csname\??cr#2:\recurselevel\endcsname}%
+ \else
+ \exitloop
+ \fi}}%
+ \fi}
+
+%D \macros
+%D {showcolorgroup}
+%D
+%D We can show the group by:
+%D
+%D \startbuffer
+%D \showcolorgroup [blue] [horizontal,name,number,value]
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D or in color:
+%D
+%D \startlinecorrection
+%D \getbuffer
+%D \stoplinecorrection
+%D
+%D which uses:
+%D
+%D \showsetup{showcolorgroup}
+
+\fetchruntimecommand \showcolorgroup {\f!colorprefix\s!run}
+
+%D There are ten predefined color groups, like
+%D \color[green]{\em groen}, \color[red]{\em rood},
+%D \color[blue]{\em blauw}, \color[cyan]{\em cyaan},
+%D \color[magenta]{\em magenta} and \color[yellow]{\em geel}.
+%D
+%D \startlinecorrection
+%D \hbox to \hsize
+%D {\hss
+%D \showcolorgroup [red] [vertical,name,number]\hss
+%D \showcolorgroup [green] [vertical,name]\hss
+%D \showcolorgroup [blue] [vertical,name]\hss
+%D \showcolorgroup [cyan] [vertical,name]\hss
+%D \showcolorgroup [magenta][vertical,name]\hss
+%D \showcolorgroup [yellow] [vertical,name]\hss}
+%D \stoplinecorrection
+%D
+%D These groups are used to define palets {\em alfa} upto {\em
+%D zeta}. As long as we don't use colors from the same row, we
+%D get ourselves distinctive palets. By activating such a palet
+%D one gains access to its members {\em top} to {\em charm} (of
+%D course one should use more suitable names than these).
+%D
+%D \startlinecorrection
+%D \hbox to \hsize
+%D {\showpalet [alfa] [vertical,name,number]\hss
+%D \showpalet [beta] [vertical,name]\hss
+%D \showpalet [gamma] [vertical,name]\hss
+%D \showpalet [delta] [vertical,name]\hss
+%D \showpalet [epsilon] [vertical,name]\hss
+%D \showpalet [zeta] [vertical,name]}
+%D \stoplinecorrection
+%D
+%D By using the keyword \type {value} the individual color
+%D components are shown too. When printed in color, these
+%D showcases show both the colors and the gray value.
+
+%D \macros
+%D {comparepalet}
+%D
+%D There are some more testing macros available:
+%D
+%D \startbuffer
+%D \comparepalet [alfa]
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D shows the palet colors against a background:
+%D
+%D \startlinecorrection
+%D \getbuffer
+%D \stoplinecorrection
+%D
+%D The formal definition is:
+%D
+%D \showsetup{comparepalet}
+
+\fetchruntimecommand \comparepalet {\f!colorprefix\s!run}
+
+%D \macros
+%D {comparecolorgroup}
+%D
+%D The similar command:
+%D
+%D \startbuffer
+%D \comparecolorgroup [blue]
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D shows color groups:
+%D
+%D \startlinecorrection
+%D \getbuffer
+%D \stoplinecorrection
+%D
+%D this commands are defined as:
+%D
+%D \showsetup{comparecolorgroup}
+
+\fetchruntimecommand \comparecolorgroup {\f!colorprefix\s!run}
+
+%D \macros
+%D {showcolor}
+%D
+%D But let's not forget that we also have the more traditional
+%D non||related colors. These show up after:
+%D
+%D \starttyping
+%D \showcolor [name]
+%D \stoptyping
+%D
+%D Where \type{name} for instance can be \type{rgb}.
+%D
+%D \showsetup{showcolor}
+
+\fetchruntimecommand \showcolor {\f!colorprefix\s!run}
+
+%D It would make sense to put the following code in \type
+%D {colo-mps}, but it it rather low level.
+
+%D \macros
+%D {negatecolorcomponent,negatedcolorcomponent}
+%D
+%D These speak for themselves. See \type {colo-ext} for usage.
+
+\def\negatecolorcomponent#1% #1 = \macro
+ {\scratchdimen\onepoint\advance\scratchdimen-#1\onepoint
+ \ifdim\scratchdimen<\zeropoint\scratchdimen\zeropoint\fi
+ \edef#1{\withoutpt\the\scratchdimen}}
+
+\let\negatedcolorcomponent\firstofoneargument
+
+\def\negatedcolorcomponent#1%
+ {\ifdim\dimexpr\onepoint-#1\onepoint\relax<\zeropoint
+ \!!zerocount
+ \else
+ \expandafter\withoutpt\the\dimexpr\onepoint-#1\onepoint\relax
+ \fi}
+
+\def\negatecolorcomponent#1% #1 = \macro
+ {\edef#1{\negatedcolorcomponent{#1}}}
+
+%D \macros
+%D {ifMPgraphics, ifMPcmykcolors, MPcolor}
+%D
+%D A very special macro is \type{\MPcolor}. This one can be
+%D used to pass a \CONTEXT\ color to \METAPOST.
+%D
+%D \starttyping
+%D \MPcolor{my own red}
+%D \stoptyping
+%D
+%D This macro returns a \METAPOST\ triplet \type{(R,G,B)}.
+%D Unless \CMYK\ color support is turned on with \type
+%D {MPcmyk}, only \cap{RGB} colors and gray scales are
+%D supported.
+
+\newif\ifMPcmykcolors % \MPcmykcolorsfalse
+\newif\ifMPspotcolors % \MPspotcolorsfalse
+
+\ifx\MPcolor\undefined
+ \def\MPcolor#1{(0,0,0)}
+\fi
+
+%D For the moment we keep the next downward compatibility
+%D switch, i.e.\ expanded colors. However, predefined colors
+%D and palets are no longer expanded (which is what I wanted
+%D in the first place).
+%D
+%D Well, in case we want to do color separation and use CMYK
+%D colors only, this is dangerous since unwanted remapping may
+%D take place. Especially when we redefine already defined
+%D colors in another color space (e.g. darkgreen is
+%D predefined in RGB color space, so a redefinition in CMYK
+%D coordinates before RGB mode is disabled, would give
+%D unexpected results due to the already frozen color spec.)
+
+%D In \MKIV\ we don't support color separation as we might now assume
+%D that printing houses have the right programs to do it themselves.
+%D The \MKII\ color separator was implemented as part of a project
+%D that needed. If it's ever needed in \MKIV\ i'll do it in the
+%D backend.
+
+\let\doifseparatingcolorselse\secondoftwoarguments
+\let\doifcolorchannelelse \secondofthreearguments
+\let\resetcolorseparation \relax
+\let\colorchannelprefix \empty
+\let\colorchannelsuffix \empty
+
+%D We now define the low level macros:
+
+% todo: palets in definecolor
+% todo: {\red xx} vs \red{xx}
+
+% check: registerusedspotcolors
+% check: \currentcolorname
+% check: \outercolorname
+% check: \startcolormode
+
+% \def\mptexcolor#1{"\dogetattributeid\s!color \somecolorattribute{#1} A"}
+%
+% \startMPpage
+% fill fullcircle scaled 10cm ;
+% fill fullcircle scaled 5cm withprescript \mptexcolor{red} withpostscript \mptexcolor{black} ;
+% fill fullcircle scaled 3cm ;
+% draw btex test etex withprescript \mptexcolor{blue} ;
+% \stopMPpage
+
+\ifx\currentcolormodel\undefined \newcount\currentcolormodel \fi
+
+\def\setcolormodel#1%
+ {\showcolormessage\m!colors1{#1}%
+ \currentcolormodel\ctxlua{tex.print(colors.setmodel('#1',\ifweightGRAY true\else false\fi))}%
+ \dosetattribute{colormodel}{\the\currentcolormodel}}
+
+\setcolormodel{all}
+
+\def\dosetupcolormodel
+ {\ifincolor
+ \ifRGBsupported
+ \ifCMYKsupported
+ \setcolormodel{all}%
+ \else
+ \setcolormodel{rgb}%
+ \fi
+ \else
+ \ifCMYKsupported
+ \setcolormodel{cmyk}%
+ \else
+ \setcolormodel{gray}%
+ \fi
+ \fi
+ \else
+ \setcolormodel{gray}%
+ \fi
+ }%\aftergroup\dosetupcolormodel}
+
+\appendtoks
+ \dosetupcolormodel
+\to \everyjob
+
+% Currently in mkiv transparency is implemented independent of color. This costs
+% a bit more processing time but gives the possibility to apply transparency
+% independently in the future. Is this useful? If not we may as well combine them
+% again in the future. By coupling we are downward compatible. When we decouple we
+% need to do more tricky housekeeping (e.g. persist color independent transparencies
+% when color bound ones are nil.
+
+% Since we couple definitions, we could stick to one test. Todo. Same for mpcolor.
+
+\letvalue{(cs:-}\empty
+\letvalue{(ts:-}\empty
+
+\def\doactivatecolor#1% : in currentpalet, maybe not, ugly
+ {\def\currentcolorname{#1}%
+ \ifcsname(cs:\currentpalet#1)\endcsname
+ \csname(cs:\currentpalet#1)\endcsname
+ \csname(ts:\currentpalet#1)\endcsname
+ \else\ifcsname(cs:#1)\endcsname
+ \csname(cs:#1)\endcsname
+ \csname(ts:#1)\endcsname
+ \fi\fi}
+
+\let\normaldoactivatecolor\doactivatecolor
+
+% if it becomes a bottleneck we can set up a more complex system with one shared
+% attribute for colorspace, color and transparency
+
+\def\doactivatecolor
+ {\ifproductionrun
+ \ctxlua{colors.enabled=true transparencies.enabled=true}% not that efficient but at least robust
+ \let\doactivatecolor\normaldoactivatecolor
+ \expandafter\doactivatecolor
+ \else
+ \expandafter\normaldoactivatecolor
+ \fi}
+
+\def\deactivatecolor
+ {\let\currentcolorname\s!black
+ \attribute\colorattribute\attributeunsetvalue
+ \attribute\transparencyattribute\attributeunsetvalue}
+
+\def\dodefinecolorcommand#1#2%
+ {\unexpanded#1{#2}{\doactivatecolor{#2}}}
+
+\let\colorlist\empty % not really used, only for colo-run
+\setfalse\collectcolorsinlist
+\def\collectcolorinlist#1{\doglobal\addtocommalist{#1}\colorlist}
+
+\def\doregistercolor#1#2{\ctxlua{colors.defineprocesscolor("#1","#2",false,\iffreezecolors true\else false\fi)}}
+
+\def\dodefinecolor[#1][#2]%
+ {\ifconditional\collectcolorsinlist\collectcolorinlist{#1}\fi
+ \ctxlua{colors.defineprocesscolor("#1","#2",false,\iffreezecolors true\else false\fi)}%
+ \dodefinecolorcommand\setvalue{#1}}
+
+\def\dodefineglobalcolor[#1][#2]%
+ {\ifconditional\collectcolorsinlist\collectcolorinlist{#1}\fi
+ \ctxlua{colors.defineprocesscolor("#1","#2",true,\iffreezecolors true\else false\fi)}%
+ \dodefinecolorcommand\setgvalue{#1}}
+
+\def\dodefinenamedcolor[#1][#2]%
+ {\ifconditional\collectcolorsinlist\collectcolorinlist{#1}\fi
+ \ctxlua{colors.defineprocesscolor("#1","#2",false,\iffreezecolors true\else false\fi)}%
+ \dodefinecolorcommand\setvalue{#1}}
+
+\def\dodefinespotcolor[#1][#2][#3]%
+ {\ifconditional\collectcolorsinlist\collectcolorinlist{#1}\fi
+ \ctxlua{colors.definespotcolor("#1","#2","#3",true)}%
+ \dodefinecolorcommand\setxvalue{#1}}
+
+\def\dodefinemultitonecolor[#1][#2][#3][#4]%
+ {\ctxlua{colors.definemultitonecolor("#1","#2","#3","#4",true)}%
+ \dodefinecolorcommand\setxvalue{#1}}
+
+\def\dodefinetransparency[#1][#2]%
+ {\ctxlua{colors.definetransparency("#1",#2)}}
+
+\def\dosetrastercolor#1% slow, we need a fast one
+ {\edef\@@rastervalue{#1}%
+ \ifx\@@rastervalue\empty
+ \let\@@rastervalue\@@rsscreen
+ \fi
+ \dosetattribute\s!color{\ctxlua{tex.sprint(colors.definesimplegray("_raster_",\@@rastervalue))}}}
+
+\def\dodefinefastcolor[#1][#2]% still not fast but ok
+ {\ctxlua{colors.defineprocesscolor("#1","#2",false,\iffreezecolors true\else false\fi)}%
+ \dodefinecolorcommand\setvalue{#1}}
+
+%D \macros
+%D {doifcolorelse, doifcolor}
+%D
+%D Switching to a color is done by means of the following
+%D command. Later on we will explain the use of palets. We
+%D define ourselves a color conditional first.
+
+\def\doifcolorelse#1%
+ {\ifcsname(ca:\currentpalet#1)\endcsname
+ \@EA\firstoftwoarguments
+ \else\ifcsname(ca:#1)\endcsname
+ \@EAEAEA\firstoftwoarguments
+ \else
+ \@EAEAEA\secondoftwoarguments
+ \fi\fi}
+
+\def\doifcolor#1%
+ {\ifcsname(ca:\currentpalet#1)\endcsname
+ \@EA\firstofoneargument
+ \else\ifcsname(ca:#1)\endcsname
+ \@EAEAEA\firstofoneargument
+ \else
+ \@EAEAEA\gobbleoneargument
+ \fi\fi}
+
+%D \macros
+%D {colored}
+%D
+%D A bit like \type {\definedfont}:
+
+\unexpanded\def\colored[#1]%
+ {\ctxlua{colors.defineprocesscolor("@colored@","#1",false,false)}%
+ \groupedcommand{\doactivatecolor{@colored@}}{}}
+
+%D \macros
+%D {startregistercolor,stopregistercolor,permitcolormode}
+%D
+%D If you only want to register a color, the switch \type
+%D {\ifpermitcolormode} can be used. That way the nested
+%D colors know where to go back to.
+%D
+%D We use these macros for implementing text colors
+%D (actually, the first application was in foreground
+%D colors).
+%D
+%D \starttyping
+%D \starttextcolor[red]
+%D \dorecurse{10}{\input tufte \color[green]{oeps} \par}
+%D \stoptextcolor
+%D \stoptyping
+%D
+%D This is more efficient than the alternative:
+%D
+%D \starttyping
+%D \setupbackgrounds[text][foregroundcolor=red]
+%D \startregistercolor[red]
+%D \dorecurse{10}{\input tufte \color[green]{oeps} \par}
+%D \stopregistercolor
+%D \stoptyping
+
+% can be cleaned up
+
+\let\maintextcolor \empty
+\def\defaulttextcolor {black}
+\def\@@themaintextcolor{themaintextcolor}
+
+\appendtoks\deactivatecolor\to\everybeforeoutput
+
+\def\startregistercolor[#1]% probably obsolete
+ {\doifelsenothing{#1}
+ {\let\stopregistercolor\relax}
+ {\edef\stopregistercolor
+ {\dosetattribute\s!color {\dogetattribute\s!color }%
+ \dosetattribute\s!transparency{\dogetattribute\s!transparency}}%
+ \doactivatecolor{#1}}}
+
+\def\registermaintextcolor{\ctxlua{colors.main = \thecolorattribute\maintextcolor}}
+
+\def\starttextcolor[#1]%
+ {\doifsomething{#1}
+ {\definecolor[\@@themaintextcolor][#1]%
+ \let\maintextcolor\@@themaintextcolor
+ \doactivatecolor\maintextcolor
+ \registermaintextcolor}}
+
+\let\stoptextcolor\relax
+
+\def\initializemaintextcolor
+ {\doifelsenothing\@@cltextcolor
+ {\definecolor[\@@themaintextcolor][\defaulttextcolor]}
+ {\definecolor[\@@themaintextcolor][\@@cltextcolor]}%
+ \let\maintextcolor\@@themaintextcolor
+ \doactivatecolor\maintextcolor
+ \registermaintextcolor}
+
+\appendtoks \initializemaintextcolor \to \everyjob
+
+\def\dodefinepaletcolor#1#2#3%
+ {\doifassignmentelse{#3}% \definepalet[test][xx={y=.4}]
+ {\definecolor[\??pa#1:#2][#3]%
+ \iffreezecolors\@EA\setevalue\else\@EA\setvalue\fi{(cs:#1:#2)}{\csname(cs:\??pa#1:#2)\endcsname}%
+ \iffreezecolors\@EA\setevalue\else\@EA\setvalue\fi{(ca:#1:#2)}{\csname(ca:\??pa#1:#2)\endcsname}}
+ {\ifcsname(cs:#3)\endcsname % \definepalet[test][xx=green]
+ \iffreezecolors\@EA\setevalue\else\@EA\setvalue\fi{(cs:#1:#2)}{\csname(cs:#3)\endcsname}%
+ \iffreezecolors\@EA\setevalue\else\@EA\setvalue\fi{(ca:#1:#2)}{\csname(ca:#3)\endcsname}%
+ \else
+ % not entered when making format
+ \localundefine{(cs:#1:#2)}% \letvalue{(cs:#1:#2)}\undefined
+ \localundefine{(ca:#1:#2)}% \letvalue{(ca:#1:#2)}\undefined
+ \fi}}
+
+\setvalue{(cs:)}{} \setvalue{(ca:)}{0}
+\setvalue{(ts:)}{} \setvalue{(ta:)}{0}
+
+\def\doinheritca#1{\csname(ca:\ifcsname(ca:\currentpalet#1)\endcsname\currentpalet#1\else\ifcsname(ca:#1)\endcsname#1\fi\fi)\endcsname}
+\def\doinheritcs#1{\csname(cs:\ifcsname(cs:\currentpalet#1)\endcsname\currentpalet#1\else\ifcsname(cs:#1)\endcsname#1\fi\fi)\endcsname}
+\def\doinheritta#1{\csname(ta:\ifcsname(ta:\currentpalet#1)\endcsname\currentpalet#1\else\ifcsname(ta:#1)\endcsname#1\fi\fi)\endcsname}
+\def\doinheritts#1{\csname(ts:\ifcsname(ts:\currentpalet#1)\endcsname\currentpalet#1\else\ifcsname(ts:#1)\endcsname#1\fi\fi)\endcsname}
+
+%D \macros
+%D {colorvalue, grayvalue}
+%D
+%D We can typeset the color components using \type{\colorvalue} and
+%D \type{\grayvalue}. The commands:
+%D
+%D \startbuffer
+%D color value of SomeKindOfRed: \colorvalue{SomeKindOfRed} \crlf
+%D gray value of SomeKindOfRed: \grayvalue{SomeKindOfRed}
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D show us:
+%D
+%D \startvoorbeeld
+%D \getbuffer
+%D \stopvoorbeeld
+
+\def\colorformatseparator{ }
+
+\def\MPcolor#1{\ctxlua{tex.sprint(colors.mp(\number\currentcolormodel,\number\doinheritca{#1},\number\doinheritta{#1}))}}
+
+\let\currentcolorname\s!black % todo
+\let\outercolorname \s!black % todo
+
+\def\thecolorattribute #1{\number\csname(ca:\ifcsname(ca:\currentpalet#1)\endcsname\currentpalet#1\else\ifcsname(ca:#1)\endcsname#1\fi\fi)\endcsname}
+\def\thetransparencyattribute#1{\number\csname(ta:\ifcsname(ta:\currentpalet#1)\endcsname\currentpalet#1\else\ifcsname(ta:#1)\endcsname#1\fi\fi)\endcsname}
+
+\def\internalspotcolorname #1{\ctxlua{tex.sprint(colors.spotcolorname (\thecolorattribute{#1}))}}
+\def\internalspotcolorparent#1{\ctxlua{tex.sprint(colors.spotcolorparent(\thecolorattribute{#1}))}}
+\def\internalspotcolorsize #1{\ctxlua{tex.sprint(colors.spotcolorvalue (\thecolorattribute{#1}))}}
+
+\def\colorcomponents #1{\ctxlua{tex.sprint(colors.colorcomponents (\thecolorattribute {#1}))}}
+\def\transparencycomponents#1{\ctxlua{tex.sprint(colors.transparencycomponents(\thetransparencyattribute{#1}))}}
+
+\def\colorvalue#1{\ctxlua{tex.sprint(colors.formatcolor(\thecolorattribute{#1},"\colorformatseparator"))}}
+\def\grayvalue #1{\ctxlua{tex.sprint(colors.formatgray (\thecolorattribute{#1},"\colorformatseparator"))}}
+
+\def\doifblackelse #1{\ctxlua{commands.doifelse(colors.isblack(\thecolorattribute{#1}))}}
+\def\doifdrawingblackelse {\ctxlua{commands.doifelse(colors.isblack(tex.attribute[attributes.numbers['color']]))}}
+
+%D \macros
+%D {forcecolorhack}
+%D
+%D We can out this in front of (for instance) a special and so force color
+%D to be applied (only glyphs, rules and leaders are handled).
+%D
+%D \startbuffer
+%D \framed
+%D [background=color,backgroundcolor=yellow,framecolor=red,corner=round]
+%D {test}
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+
+% ignores in attribute handler
+%
+% \def\forcecolorhack{\vrule\!!width\zeropoint\!!height\zeropoint\!!depth\zeropoint}
+
+% \normal added else fails in metafun manual (leaders do a hard scan)
+
+\unexpanded\def\forcecolorhack{\leaders\hrule\normalhskip\zeropoint}
+
+%D We default to the colors defined in \module{colo-rgb} and
+%D support both \cap{RGB} and \cap{CMYK} output. As you can
+%D see, color support is turned off by default. Reduction of
+%D gray colors to gray scales is turned on.
+
+\definecolor[black][s=0]
+\definecolor[white][s=1]
+
+\definetransparency [none] [0]
+\definetransparency [normal] [1]
+\definetransparency [multiply] [2]
+\definetransparency [screen] [3]
+\definetransparency [overlay] [4]
+\definetransparency [softlight] [5]
+\definetransparency [hardlight] [6]
+\definetransparency [colordodge] [7]
+\definetransparency [colorburn] [8]
+\definetransparency [darken] [9]
+\definetransparency [lighten] [10]
+\definetransparency [difference] [11]
+\definetransparency [exclusion] [12]
+
+\setupcolors
+ [\c!state=\v!stop, % will be enabled later on
+ \c!conversion=\v!yes,
+ \c!reduction=\v!no,
+ \c!rgb=\v!yes,
+ \c!cmyk=\v!yes,
+ \c!spot=\v!yes,
+ \c!mp\c!cmyk=\@@clcmyk,
+ \c!mp\c!spot=\@@clspot,
+ \c!expansion=\v!no,
+ \c!textcolor=,
+ \c!split=\v!no, % obsolete
+ \c!factor=\v!yes,
+ \c!criterium=\v!all] % obsolete
+
+\appendtoks
+ \setupcolors[\c!state=\v!start]% later direct
+\to \everyjob
+
+\appendtoks
+ \let\showcolormessage\showmessage
+\to \everyjob
+
+\setupcolor
+ [\v!rgb]
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/colo-new.lua b/Master/texmf-dist/tex/context/base/colo-new.lua
deleted file mode 100644
index fb14570706b..00000000000
--- a/Master/texmf-dist/tex/context/base/colo-new.lua
+++ /dev/null
@@ -1,547 +0,0 @@
-if not modules then modules = { } end modules ['colo-ini'] = {
- version = 1.000,
- comment = "companion to colo-ini.tex",
- author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
- copyright = "PRAGMA ADE / ConTeXt Development Team",
- license = "see context related readme files"
-}
-
--- split_settings -> aux.settings_to_hash
-
--- for the moment this looks messy but we're waiting for a pdf backend interface
---
--- code collected here will move and be adapted
---
--- some pdf related code can go away
-
--- spec-pdf.lua
-
--- todo: %s -> %f
-
-backends = backends or { }
-backends.pdf = backends.pdf or { }
-backend = backends.pdf
-
-local texsprint, format, concat = tex.sprint, string.format, table.concat
-
-local s_template_g = "\\dodoPDFregistergrayspotcolor{%s}{%s}{%s}{%s}{%s}" -- n f d p s (p can go away)
-local s_template_r = "\\dodoPDFregisterrgbspotcolor {%s}{%s}{%s}{%s}{%s}{%s}{%s}" -- n f d p r g b
-local s_template_c = "\\dodoPDFregistercmykspotcolor{%s}{%s}{%s}{%s}{%s}{%s}{%s}{%s}" -- n f d p c m y k
-
-function backends.pdf.registergrayspotcolor(n,f,d,p,s) states.collect(s_template_g:format(n,f,d,p,s)) end
-function backends.pdf.registerrgbspotcolor (n,f,d,p,r,g,b) states.collect(s_template_r:format(n,f,d,p,r,g,b)) end
-function backends.pdf.registercmykspotcolor(n,f,d,p,c,m,y,k) states.collect(s_template_c:format(n,f,d,p,c,m,y,k)) end
-
-local m_template_g = "\\doPDFregistergrayindexcolor{%s}{%s}{%s}{%s}{%s}" -- n f d p s (p can go away)
-local m_template_r = "\\doPDFregisterrgbindexcolor {%s}{%s}{%s}{%s}{%s}{%s}{%s}" -- n f d p r g b
-local m_template_c = "\\doPDFregistercmykindexcolor{%s}{%s}{%s}{%s}{%s}{%s}{%s}{%s}" -- n f d p c m y k
-
-function backends.pdf.registergrayindexcolor(n,f,d,p,s) states.collect(m_template_g:format(n,f,d,p,s)) end
-function backends.pdf.registerrgbindexcolor (n,f,d,p,r,g,b) states.collect(m_template_r:format(n,f,d,p,r,g,b)) end
-function backends.pdf.registercmykindexcolor(n,f,d,p,c,m,y,k) states.collect(m_template_c:format(n,f,d,p,c,m,y,k)) end
-
-local s_template_e = "\\doPDFregisterspotcolorname{%s}{%s}" -- name, e
-
-function backends.pdf.registerspotcolorname(name,e)
- if e and e ~= "" then
- texsprint(tex.ctxcatcodes,format(s_template_e,name,e)) -- todo in new backend: e:gsub(" ","#20")
- end
-end
-
-ctx = ctx or { }
-ctx.aux = ctx.aux or { }
-
-local a_l_c_template = "\\setevalue{(ca:%s)}{%s}" ..
- "\\setevalue{(cs:%s)}{\\dosetattribute{color}{%s}}"
-local a_g_c_template = "\\setxvalue{(ca:%s)}{%s}" ..
- "\\setxvalue{(cs:%s)}{\\dosetattribute{color}{%s}}"
-local f_l_c_template = "\\setvalue {(ca:%s)}{\\doinheritca{%s}}" ..
- "\\setvalue {(cs:%s)}{\\doinheritcs{%s}}"
-local f_g_c_template = "\\setgvalue{(ca:%s)}{\\doinheritca{%s}}" ..
- "\\setgvalue{(cs:%s)}{\\doinheritcs{%s}}"
-local r_l_c_template = "\\letbeundefined{(ca:%s)}" ..
- "\\letbeundefined{(cs:%s)}"
-local r_g_c_template = "\\global\\letbeundefined{(ca:%s)}" ..
- "\\global\\letbeundefined{(cs:%s)}"
-
-local a_l_t_template = "\\setevalue{(ta:%s)}{%s}" ..
- "\\setevalue{(ts:%s)}{\\dosetattribute{transparency}{%s}}"
-local a_g_t_template = "\\setxvalue{(ta:%s)}{%s}" ..
- "\\setxvalue{(ts:%s)}{\\dosetattribute{transparency}{%s}}"
-local f_l_t_template = "\\setvalue {(ta:%s)}{\\doinheritta{%s}}" ..
- "\\setvalue {(ts:%s)}{\\doinheritts{%s}}"
-local f_g_t_template = "\\setgvalue{(ta:%s)}{\\doinheritta{%s}}" ..
- "\\setgvalue{(ts:%s)}{\\doinheritts{%s}}"
-local r_l_t_template = "\\letbeundefined{(ta:%s)}" ..
- "\\letbeundefined{(ts:%s)}"
-local r_g_t_template = "\\global\\letbeundefined{(ta:%s)}" ..
- "\\global\\letbeundefined{(ts:%s)}"
-
-function ctx.aux.definecolor(name, ca, global)
- if ca and ca > 0 then
- if global then
- texsprint(tex.ctxcatcodes,a_g_c_template:format(name, ca, name, ca))
- else
- texsprint(tex.ctxcatcodes,a_l_c_template:format(name, ca, name, ca))
- end
- else
- if global then
- texsprint(tex.ctxcatcodes,r_g_c_template:format(name, name))
- else
- texsprint(tex.ctxcatcodes,r_l_c_template:format(name, name))
- end
- end
-end
-function ctx.aux.inheritcolor(name, ca, global)
- if ca and ca ~= "" then
- if global then
- texsprint(tex.ctxcatcodes,f_g_c_template:format(name, ca, name, ca))
- else
- texsprint(tex.ctxcatcodes,f_l_c_template:format(name, ca, name, ca))
- end
- else
- if global then
- texsprint(tex.ctxcatcodes,r_g_c_template:format(name, name))
- else
- texsprint(tex.ctxcatcodes,r_l_c_template:format(name, name))
- end
- end
-end
-function ctx.aux.definetransparent(name, ta, global)
- if ta and ta > 0 then
- if global then
- texsprint(tex.ctxcatcodes,a_g_t_template:format(name, ta, name, ta))
- else
- texsprint(tex.ctxcatcodes,a_l_t_template:format(name, ta, name, ta))
- end
- else
- if global then
- texsprint(tex.ctxcatcodes,r_g_t_template:format(name, name))
- else
- texsprint(tex.ctxcatcodes,r_l_t_template:format(name, name))
- end
- end
-end
-function ctx.aux.inherittransparent(name, ta, global)
- if ta and ta ~= "" then
- if global then
- texsprint(tex.ctxcatcodes,f_g_t_template:format(name, ta, name, ta))
- else
- texsprint(tex.ctxcatcodes,f_l_t_template:format(name, ta, name, ta))
- end
- else
- if global then
- texsprint(tex.ctxcatcodes,r_g_t_template:format(name, name))
- else
- texsprint(tex.ctxcatcodes,r_l_t_template:format(name, name))
- end
- end
-end
-
-local transparent = {
- none = 0,
- normal = 1,
- multiply = 2,
- screen = 3,
- overlay = 4,
- softlight = 5,
- hardlight = 6,
- colordodge = 7,
- colorburn = 8,
- darken = 9,
- lighten = 10,
- difference = 11,
- exclusion = 12,
-}
-
--- By coupling we are downward compatible. When we decouple we need to do more tricky
--- housekeeping (e.g. persist color independent transparencies when color bound ones
--- are nil.
-
-ctx.couplecolors = true
-
-function ctx.definetransparency(name,n)
- transparent[name] = n
-end
-
-local registered = { }
-
-local function registerspotcolor(parent,name,parentnumber,e,f,d,p)
- if not registered[parentnumber] then
- local v = colors.values[parentnumber]
- if v then
- local kind = v[1]
- if kind == 2 then -- name noffractions names p's r g b
- backend.registergrayspotcolor(parent,f,d,p,v[2])
- elseif kind == 3 then
- backend.registerrgbspotcolor (parent,f,d,p,v[3],v[4],v[5])
- elseif kind == 4 then
- backend.registercmykspotcolor(parent,f,d,p,v[6],v[7],v[8],v[9])
- end
- backends.pdf.registerspotcolorname(parent,e)
- end
- registered[parentnumber] = true
- end
-end
-
-local function registermultitonecolor(parent,name,parentnumber,e,f,d,p) -- same as spot but different template
- if not registered[parentnumber] then
- local v = colors.values[parentnumber]
- if v then
- local kind = v[1]
- if kind == 2 then
- backend.registergrayindexcolor(parent,f,d,p,v[2])
- elseif kind == 3 then
- backend.registerrgbindexcolor (parent,f,d,p,v[3],v[4],v[5])
- elseif kind == 4 then
- backend.registercmykindexcolor(parent,f,d,p,v[6],v[7],v[8],v[9])
- end
- end
- registered[parentnumber] = true
- end
-end
-
-function ctx.definesimplegray(name,s)
- return colors.register('color',name,'gray',s) -- we still need to get rid of 'color'
-end
-
-function ctx.defineprocesscolor(name,str,global,freeze) -- still inconsistent color vs transparent
- local t = str:split_settings()
- if t then
- if t.h then
- local r, g, b =string.match(t.h .. "000000","(..)(..)(..)")
- ctx.aux.definecolor(name, colors.register('color',name,'rgb',(tonumber(r,16) or 0)/256,(tonumber(g,16) or 0)/256,(tonumber(b,16) or 0)/256 ), global)
- elseif t.r or t.g or t.b then
- ctx.aux.definecolor(name, colors.register('color',name,'rgb', tonumber(t.r) or 0, tonumber(t.g) or 0, tonumber(t.b) or 0 ), global)
- elseif t.c or t.m or t.y or t.k then
- ctx.aux.definecolor(name, colors.register('color',name,'cmyk',tonumber(t.c) or 0, tonumber(t.m) or 0, tonumber(t.y) or 0, tonumber(t.k) or 0), global)
- else
- ctx.aux.definecolor(name, colors.register('color',name,'gray',tonumber(t.s) or 0), global)
- end
- if t.a and t.t then
- ctx.aux.definetransparent(name, transparencies.register(name,transparent[t.a] or tonumber(t.a) or 1,tonumber(t.t) or 1), global)
- elseif ctx.couplecolors then
---~ ctx.aux.definetransparent(name, transparencies.register(nil, 1, 1), global) -- can be sped up
- ctx.aux.definetransparent(name, 0, global) -- can be sped up
- end
- elseif freeze then
- local ca = attributes.list[attributes.numbers['color']] [str]
- local ta = attributes.list[attributes.numbers['transparency']][str]
- if ca then
- ctx.aux.definecolor(name, ca, global)
- end
- if ta then
- ctx.aux.definetransparent(name, ta, global)
- end
- else
- ctx.aux.inheritcolor(name, str, global)
- ctx.aux.inherittransparent(name, str, global)
- end
-end
-
-function ctx.definespotcolor(name,parent,str,global)
- if parent == "" or parent:find("=") then
- ctx.registerspotcolor(name, parent)
- elseif name ~= parent then
- local cp = attributes.list[attributes.numbers['color']][parent]
- if cp then
- local t = str:split_settings()
- if t then
- t.p = tonumber(t.p) or 1
- registerspotcolor(parent, name, cp, t.e, 1, "", t.p) -- p not really needed, only diagnostics
- if name and name ~= "" then
- ctx.aux.definecolor(name, colors.register('color',name,'spot', parent, 1, "", t.p), true)
- if t.a and t.t then
- ctx.aux.definetransparent(name, transparencies.register(name,transparent[t.a] or tonumber(t.a) or 1,tonumber(t.t) or 1), global)
- elseif ctx.couplecolors then
- --~ ctx.aux.definetransparent(name, transparencies.register(nil, 1, 1), global) -- can be sped up
- ctx.aux.definetransparent(name, 0, global) -- can be sped up
- end
- end
- end
- end
- end
-end
-
-function ctx.registerspotcolor(parent, str)
- local cp = attributes.list[attributes.numbers['color']][parent]
- if cp then
- local e = ""
- if str then
- local t = str:split_settings()
- e = (t and t.e) or ""
- end
- registerspotcolor(parent, "dummy", cp, e, 1, "", 1) -- p not really needed, only diagnostics
- end
-end
-
-function ctx.definemultitonecolor(name,multispec,colorspec,selfspec)
- local dd, pp, nn = { }, { }, { }
- for k,v in multispec:gmatch("(%a+)=([^%,]*)") do
- dd[#dd+1] = k
- pp[#pp+1] = v
- nn[#nn+1] = k
- nn[#nn+1] = format("%1.3g",tonumber(v))
- end
---~ v = tonumber(v) * p
- local nof = #dd
- if nof > 0 then
- dd, pp, nn = concat(dd,','), concat(pp,','), concat(nn,'_')
- local parent = (nn:lower()):gsub("[^%d%a%.]+","_")
- ctx.defineprocesscolor(parent,colorspec..","..selfspec,true,true)
- local cp = attributes.list[attributes.numbers['color']][parent]
- if cp then
- registerspotcolor (parent, name, cp, "", nof, dd, pp)
- registermultitonecolor(parent, name, cp, "", nof, dd, pp)
- ctx.aux.definecolor(name, colors.register('color', name, 'spot', parent, nof, dd, pp), true)
- local t = selfspec:split_settings()
- if t and t.a and t.t then
- ctx.aux.definetransparent(name, transparencies.register(name,transparent[t.a] or tonumber(t.a) or 1,tonumber(t.t) or 1), global)
- elseif ctx.couplecolors then
- -- ctx.aux.definetransparent(name, transparencies.register(nil, 1, 1), global) -- can be sped up
- ctx.aux.definetransparent(name, 0, global) -- can be sped up
- end
- end
- end
-end
-
-function ctx.mpcolor(model,ca,ta,default)
- local cv = colors.value(ca) -- faster when direct colors.values[ca]
- if cv then
- local tv = transparencies.value(ta)
- if model == 1 then
- model = cv[1]
- end
- if tv then
- if model == 2 then
- return format("transparent(%s,%s,(%s,%s,%s))",tv[1],tv[2],cv[3],cv[4],cv[5])
- elseif model == 3 then
- return format("transparent(%s,%s,(%s,%s,%s))",tv[1],tv[2],cv[3],cv[4],cv[5])
- elseif model == 4 then
- return format("transparent(%s,%s,cmyk(%s,%s,%s,%s))",tv[1],tv[2],cv[6],cv[7],cv[8],cv[9])
- else
- return format("transparent(%s,%s,multitonecolor(\"%s\",%s,\"%s\",\"%s\"))",tv[1],tv[2],cv[10],cv[11],cv[12],cv[13])
- end
- else
- if model == 2 then
- return format("(%s,%s,%s)",cv[3],cv[4],cv[5])
- elseif model == 3 then
- return format("(%s,%s,%s)",cv[3],cv[4],cv[5])
- elseif model == 4 then
- return format("cmyk(%s,%s,%s,%s)",cv[6],cv[7],cv[8],cv[9])
- else
- return format("multitonecolor(\"%s\",%s,\"%s\",\"%s\")",cv[10],cv[11],cv[12],cv[13])
- end
- end
- else
- default = default or 0 -- rgb !
- return format("(%s,%s,%s)",default,default,default)
- end
-end
-
-function ctx.formatcolor(ca,separator)
- local cv = colors.value(ca)
- if cv then
- local model = cv[1]
- if model == 2 then
- return tostring(cv[2])
- elseif model == 3 then
- return concat(cv,separator,3,5)
- elseif model == 4 then
- return concat(cv,separator,6,9)
- else
- return tostring(cv[13])
- end
- else
- return tostring(0)
- end
-end
-
-function ctx.formatgray(ca,separator)
- local cv = colors.value(ca)
- if cv then
- return tostring(cv[2])
- else
- return tostring(0)
- end
-end
-
-function ctx.colorcomponents(ca)
- local cv = colors.value(ca)
- if cv then
- local model = cv[1]
- if model == 2 then
- return format("s=%1.3f",cv[2])
- elseif model == 3 then
- return format("r=%1.3f g=%1.3f b=%1.3f",cv[3],cv[4],cv[5])
- elseif model == 4 then
- return format("c=%1.3f m=%1.3f y=%1.3f k=%1.3f",cv[6],cv[7],cv[8],cv[9])
- elseif type(cv[13]) == "string" then
- return format("p=%s",cv[13])
- else
- return format("p=%1.3f",cv[13])
- end
- else
- return ""
- end
-end
-
-function ctx.transparencycomponents(ta)
- local tv = transparencies.value(ta)
- if tv then
- return format("a=%1.3f t=%1.3f",tv[1],tv[2])
- else
- return ""
- end
-end
-
-function ctx.pdfcolor(model,ca,default) -- todo: use gray when no color
- local cv = colors.value(ca)
- if cv then
- if model == 1 then
- model = cv[1]
- end
- if model == 2 then
- local s = cv[2]
- return format("%s g %s G",s,s)
- elseif model == 3 then
- local r, g, b = cv[3], cv[4], cv[5]
- return format("%s %s %s rg %s %s %s RG",r,g,b,r,g,b)
- elseif model == 4 then
- local c, m, y, k = cv[6],cv[7],cv[8],cv[9]
- return format("%s %s %s %s k %s %s %s %s K",c,m,y,k,c,m,y,k)
- else
- local n,f,d,p = cv[10],cv[11],cv[12],cv[13]
- if type(p) == "string" then
- p = p:gsub(","," ") -- brr misuse of spot
- end
- return format("/%s cs /%s CS %s SCN %s scn",n,n,p,p)
- end
- else
- return format("%s g %s G",default or 0,default or 0)
- end
-end
-
-function ctx.pdfcolorvalue(model,ca,default)
- local cv = colors.value(ca)
- if cv then
- if model == 1 then
- model = cv[1]
- end
- if model == 2 then
- return format("%s",cv[2])
- elseif model == 3 then
- return format("%s %s %s",cv[3],cv[4],cv[5])
- elseif model == 4 then
- return format("%s %s %s %s",cv[6],cv[7],cv[8],cv[9])
- else
- return format("%s",cv[13])
- end
- else
- return format("%s",default or 0)
- end
-end
-
-function ctx.fdfcolor(model,ca,default)
- local cv = colors.value(ca)
- if cv then
- if model == 1 then
- model = cv[1]
- end
- if model == 2 then
- return format("[%s]",cv[2])
- elseif model == 3 then
- return format("[%s %s %s]",cv[3],cv[4],cv[5])
- elseif model == 4 then
- return format("[%s %s %s %s]",cv[6],cv[7],cv[8],cv[9])
- elseif model == 4 then
- return format("[%s]",cv[13])
- end
- else
- return format("[%s]",default or 0)
- end
-end
-
-function ctx.pdfcolorspace(model,ca)
- local cv = colors.value(ca)
- if cv then
- if model == 1 then
- model = cv[1]
- end
- if model == 2 then
- return "DeviceGray"
- elseif model == 3 then
- return "DeviceRGB"
- elseif model == 4 then
- return "DeviceCMYK"
- end
- end
- return "DeviceGRAY"
-end
-
-function ctx.spotcolorname(ca,default)
- local cv, v = colors.value(ca), "unknown"
- if cv and cv[1] == 5 then
- v = cv[10]
- end
- return tostring(v)
-end
-
-function ctx.spotcolorvalue(ca,default)
- local cv, v = colors.value(ca), 0
- if cv and cv[1] == 5 then
- v = cv[13]
- end
- return tostring(v)
-end
-
--- unfortunately we have \cs's here but this will go anyway once we have mplib and such
-
-function ctx.resolvempgraycolor(csa,csb,model,s)
- local ca = colors.register('color',nil,'gray',s)
- texsprint(tex.ctxcatcodes,format("\\setxvalue{%s}{%s}",csa,ctx.pdfcolorvalue(model,ca)))
- texsprint(tex.ctxcatcodes,format("\\setxvalue{%s}{%s}",csb,ctx.pdfcolorspace(model,ca)))
-end
-function ctx.resolvemprgbcolor(csa,csb,model,r,g,b)
- local ca = colors.register('color',nil,'rgb',r,g,b)
- texsprint(tex.ctxcatcodes,format("\\setxvalue{%s}{%s}",csa,ctx.pdfcolorvalue(model,ca)))
- texsprint(tex.ctxcatcodes,format("\\setxvalue{%s}{%s}",csb,ctx.pdfcolorspace(model,ca)))
-end
-function ctx.resolvempcmykcolor(csa,csb,model,c,m,y,k)
- local ca = colors.register('color',nil,'cmyk',c,m,y,k)
- texsprint(tex.ctxcatcodes,format("\\setxvalue{%s}{%s}",csa,ctx.pdfcolorvalue(model,ca)))
- texsprint(tex.ctxcatcodes,format("\\setxvalue{%s}{%s}",csb,ctx.pdfcolorspace(model,ca)))
-end
-function ctx.resolvempspotcolor(csa,csb,model,n,f,d,p)
- local ca = colors.register('color',nil,'spot',n,f,d,p)
- texsprint(tex.ctxcatcodes,format("\\setxvalue{%s}{%s}",csa,ctx.pdfcolorvalue(model,ca)))
- texsprint(tex.ctxcatcodes,format("\\setxvalue{%s}{%s}",csb,ctx.pdfcolorspace(model,ca)))
-end
-
--- literals needed to inject code in the mp stream, we cannot use attributes there
--- since literals may have qQ's, much may go away once we have mplib code in place
-
-local intransparency = false
-
-function ctx.pdfrgbliteral(model,r,g,b)
- texsprint(tex.ctxcatcodes,format("\\pdfliteral{%s}",ctx.pdfcolor(model,colors.register('color',nil,'rgb',r,g,b))))
-end
-function ctx.pdfcmykliteral(model,c,m,y,k)
- texsprint(tex.ctxcatcodes,format("\\pdfliteral{%s}",ctx.pdfcolor(model,colors.register('color',nil,'cmyk',c,m,y,k))))
-end
-function ctx.pdfgrayliteral(model,s)
- texsprint(tex.ctxcatcodes,format("\\pdfliteral{%s}",ctx.pdfcolor(model,colors.register('color',nil,'gray',s))))
-end
-function ctx.pdfspotliteral(model,n,f,d,p)
- texsprint(tex.ctxcatcodes,format("\\pdfliteral{%s}",ctx.pdfcolor(model,colors.register('color',nil,'spot',n,f,d,p)))) -- incorrect
-end
-function ctx.pdftransparencyliteral(a,t)
- intransparency = true
- texsprint(tex.ctxcatcodes,format("\\pdfliteral{/Tr%s gs}",transparencies.register(nil,a,t)))
-end
-function ctx.pdffinishtransparency()
- if intransparency then
- intransparency = false
- texsprint(tex.ctxcatcodes,"\\pdfliteral{/Tr0 gs}") -- we happen to know this -)
- end
-end
diff --git a/Master/texmf-dist/tex/context/base/colo-run.tex b/Master/texmf-dist/tex/context/base/colo-run.tex
index 9cb797c4d97..d94ea980128 100644
--- a/Master/texmf-dist/tex/context/base/colo-run.tex
+++ b/Master/texmf-dist/tex/context/base/colo-run.tex
@@ -155,22 +155,18 @@
\gdef\doshowcolor[#1]%
{\bgroup
\iffirstargument
- \let\colorlist\empty
+ \let\colorlist\empty % not really used, only for colo-run
\let\colorstyle\empty
+ \settrue\collectcolorsinlist
\setupcolor[#1]%
\fi
- \setupwhitespace[\v!none]
\def\rule
- {\vrule\!!width4em\!!height\strutht\!!depth\strutdp}
+ {\vrule\!!width4em\!!height\strutht\!!depth\strutdp}%
\def\docommand##1%
- {\hbox
- {\graycolor[##1]{\rule}\quad
- \color[##1]{\rule}\quad
- \grayvalue{##1}\quad
- \hbox to 12em{\colorvalue{##1}\hss}%
- \strut##1}
- \endgraf}
- \processcommacommand[\colorlist]\docommand
+ {\NC\graycolor[##1]{\rule}\NC\color[##1]{\rule}\NC\grayvalue{##1}\NC\colorvalue{##1}\NC##1\NC\NR}%
+ \starttabulate[|l|l|l|l|l|l|l|]
+ \expanded{\globalprocesscommalist[\colorlist]}\docommand
+ \stoptabulate
\egroup}
\gdef\comparepalet
@@ -245,17 +241,6 @@
\NC\showcolorbar[#1]\NC#1\NC\transparencycomponents{#1}\NC\colorcomponents{#1}\NC \NR
\to \scratchtoks}}
-% \gdef\showcolorcomponents[#1]%
-% {\bgroup
-% \def\bars##1{\backgroundline[##1]{\strut\enspace\color[white]{white}\enspace\color[black]{black}\enspace}}%
-% \scratchtoks\emptytoks
-% \appendtoks\starttabulate[|l|l|l|l|]\to\scratchtoks
-% \appendtoks\NC color \NC name \NC transparency \NC specification \NC\NR\TB\to\scratchtoks
-% \processcommacommand[#1]\dogetcolorcomponents
-% \appendtoks\stoptabulate\to\scratchtoks
-% \tt\the\scratchtoks
-% \egroup}
-
\gdef\showcolorbar[#1]%
{\backgroundline[#1]{\strut\enspace\color[white]{white}\enspace\color[black]{black}\enspace}}
diff --git a/Master/texmf-dist/tex/context/base/cont-cs.tex b/Master/texmf-dist/tex/context/base/cont-cs.tex
new file mode 100644
index 00000000000..f878920aac8
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/cont-cs.tex
@@ -0,0 +1,39 @@
+%D \module
+%D [ file=cont-cs,
+%D version=1998.12.02,
+%D title=\CONTEXT,
+%D subtitle=\CONTEXT\ Czech Format Generation,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\catcode`\{=1 \catcode`\}=2 \def\defaultinterface{czech}
+
+\input context.tex
+
+\unprotect
+
+\setupcurrentlanguage[\s!cs]
+
+\loaduserspecifications
+
+\installlanguage [\s!en] [\c!state=\v!start]
+\installlanguage [\s!de] [\c!state=\v!start]
+\installlanguage [\s!sk] [\c!state=\v!start]
+\installlanguage [\s!cs] [\c!state=\v!start]
+
+\ifnum\texengine=\luatexengine
+ % will be runtime option: typeface
+ \appendtoks
+ \usetypescript[modern]
+ \setuptypeface[modern]
+ \to \everyjob
+\else
+ \setupencoding[default=ec] \usetypescript[fallback][\defaultencoding] \setupbodyfont[rm,12pt]
+\fi
+
+\protect \errorstopmode \dump \endinput
diff --git a/Master/texmf-dist/tex/context/base/cont-de.tex b/Master/texmf-dist/tex/context/base/cont-de.tex
index 74326003ab7..460ca7eca1a 100644
--- a/Master/texmf-dist/tex/context/base/cont-de.tex
+++ b/Master/texmf-dist/tex/context/base/cont-de.tex
@@ -21,8 +21,8 @@
\loaduserspecifications
-\installlanguage [\s!en] [\c!state=\v!start]
-\installlanguage [\s!uk] [\c!state=\v!start]
+\installlanguage [\s!us] [\c!state=\v!start]
+\installlanguage [\s!gb] [\c!state=\v!start]
\installlanguage [\s!de] [\c!state=\v!start]
\installlanguage [\s!fr] [\c!state=\v!start]
\installlanguage [\s!es] [\c!state=\v!start]
@@ -31,10 +31,14 @@
\installlanguage [deo] [\c!state=\v!start]
-% \setupbodyfont [cmr,ams,rm,12pt]
-%
-% \setupencoding[default=ec] \usetypescript[modern][\defaultencoding] \setupbodyfont[modern,rm,12pt]
-
-\setupencoding[default=ec] \usetypescript[fallback][\defaultencoding] \setupbodyfont[rm,12pt]
+\ifnum\texengine=\luatexengine
+ % will be runtime option: typeface
+ \appendtoks
+ \usetypescript[modern]
+ \setuptypeface[modern]
+ \to \everyjob
+\else
+ \setupencoding[default=ec] \usetypescript[fallback][\defaultencoding] \setupbodyfont[rm,12pt]
+\fi
\protect \errorstopmode \dump \endinput
diff --git a/Master/texmf-dist/tex/context/base/cont-en.tex b/Master/texmf-dist/tex/context/base/cont-en.tex
index 49e19f36e03..e2b09ecbe54 100644
--- a/Master/texmf-dist/tex/context/base/cont-en.tex
+++ b/Master/texmf-dist/tex/context/base/cont-en.tex
@@ -23,22 +23,24 @@
% Do we need more defaults? or maybe all languages?
-\installlanguage [\s!en] [\c!state=\v!start]
-\installlanguage [\s!uk] [\c!state=\v!start]
+\installlanguage [\s!us] [\c!state=\v!start]
+\installlanguage [\s!gb] [\c!state=\v!start]
\installlanguage [\s!de] [\c!state=\v!start]
\installlanguage [\s!fr] [\c!state=\v!start]
\installlanguage [\s!es] [\c!state=\v!start]
\installlanguage [\s!pt] [\c!state=\v!start]
\installlanguage [\s!it] [\c!state=\v!start]
\installlanguage [\s!nl] [\c!state=\v!start]
-\installlanguage [\s!cz] [\c!state=\v!start]
+\installlanguage [\s!cs] [\c!state=\v!start]
\installlanguage [\s!sk] [\c!state=\v!start]
\installlanguage [\s!pl] [\c!state=\v!start]
-% \setupbodyfont [cmr,ams,rm,12pt]
-%
-% \setupencoding[default=ec] \usetypescript[modern][\defaultencoding] \setupbodyfont[modern,rm,12pt]
-
-\setupencoding[default=ec] \usetypescript[fallback][\defaultencoding] \setupbodyfont[rm,12pt]
+\ifnum\texengine=\luatexengine
+% \prependtoks
+% \the \everysetupdocument
+% \to \everyjob
+\else
+ \setupencoding[default=ec] \usetypescript[fallback][\defaultencoding] \setupbodyfont[rm,12pt]
+\fi
\protect \errorstopmode \dump \endinput
diff --git a/Master/texmf-dist/tex/context/base/cont-fil.tex b/Master/texmf-dist/tex/context/base/cont-fil.tex
index 3ff54d356ec..28b6b6f55b8 100644
--- a/Master/texmf-dist/tex/context/base/cont-fil.tex
+++ b/Master/texmf-dist/tex/context/base/cont-fil.tex
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context File Synonyms}
+\writestatus{loading}{ConTeXt File Synonyms}
\definefilesynonym [chemie] [chemic]
\definefilesynonym [chemics] [chemic]
@@ -94,6 +94,9 @@
\definefilesynonym [pre-stepwise] [pre-60]
\definefilesynonym [pre-stepper] [pre-61]
+\definefilesynonym [pre-punk] [pre-70]
+\definefilesynonym [pre-random] [pre-71]
+
\definefilesynonym [abr-pseudocaps] [abr-01]
\definefilesynonym [abr-smallcaps] [abr-02]
@@ -114,4 +117,7 @@
\definefilesynonym [maps] [map-10]
\definefilesynonym [map-se] [map-10] % for some time
+\definefilesynonym [mml] [mathml]
+\definefilesynonym [cml] [chemml]
+
\endinput
diff --git a/Master/texmf-dist/tex/context/base/cont-fr.tex b/Master/texmf-dist/tex/context/base/cont-fr.tex
index 338d6c6d4ed..d812b28f9b0 100644
--- a/Master/texmf-dist/tex/context/base/cont-fr.tex
+++ b/Master/texmf-dist/tex/context/base/cont-fr.tex
@@ -2,7 +2,7 @@
%D [ file=cont-de,
%D version=1997.08.19,
%D title=\CONTEXT,
-%D subtitle=\CONTEXT\ German Format Generation,
+%D subtitle=\CONTEXT\ French Format Generation,
%D author=Hans Hagen,
%D date=\currentdate,
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
@@ -21,18 +21,22 @@
\loaduserspecifications
-\installlanguage [\s!en] [\c!state=\v!start]
-\installlanguage [\s!uk] [\c!state=\v!start]
+\installlanguage [\s!us] [\c!state=\v!start]
+\installlanguage [\s!gb] [\c!state=\v!start]
\installlanguage [\s!de] [\c!state=\v!start]
\installlanguage [\s!fr] [\c!state=\v!start]
\installlanguage [\s!es] [\c!state=\v!start]
\installlanguage [\s!nl] [\c!state=\v!start]
\installlanguage [\s!it] [\c!state=\v!start]
-% \setupbodyfont [cmr,ams,rm,12pt]
-%
-% \setupencoding[default=ec] \usetypescript[modern][\defaultencoding] \setupbodyfont[modern,rm,12pt]
-
-\setupencoding[default=ec] \usetypescript[fallback][\defaultencoding] \setupbodyfont[rm,12pt]
+\ifnum\texengine=\luatexengine
+ % will be runtime option: typeface
+ \appendtoks
+ \usetypescript[modern]
+ \setuptypeface[modern]
+ \to \everyjob
+\else
+ \setupencoding[default=ec] \usetypescript[fallback][\defaultencoding] \setupbodyfont[rm,12pt]
+\fi
\protect \errorstopmode \dump \endinput
diff --git a/Master/texmf-dist/tex/context/base/cont-gb.tex b/Master/texmf-dist/tex/context/base/cont-gb.tex
new file mode 100644
index 00000000000..99d2974257e
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/cont-gb.tex
@@ -0,0 +1,42 @@
+%D \module
+%D [ file=cont-uk,
+%D version=1997.08.19,
+%D title=\CONTEXT,
+%D subtitle=\CONTEXT\ English Format Generation,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\catcode`\{=1 \catcode`\}=2 \def\defaultinterface{english}
+
+\input context.tex
+
+\unprotect
+
+\setupcurrentlanguage[\s!gb]
+
+\loaduserspecifications
+
+\installlanguage [\s!us] [\c!state=\v!start]
+\installlanguage [\s!gb] [\c!state=\v!start]
+\installlanguage [\s!de] [\c!state=\v!start]
+\installlanguage [\s!fr] [\c!state=\v!start]
+\installlanguage [\s!es] [\c!state=\v!start]
+\installlanguage [\s!nl] [\c!state=\v!start]
+\installlanguage [\s!it] [\c!state=\v!start]
+
+\ifnum\texengine=\luatexengine
+ % will be runtime option: typeface
+ \appendtoks
+ \usetypescript[modern]
+ \setuptypeface[modern]
+ \to \everyjob
+\else
+ \setupencoding[default=ec] \usetypescript[fallback][\defaultencoding] \setupbodyfont[rm,12pt]
+\fi
+
+\protect \errorstopmode \dump \endinput
diff --git a/Master/texmf-dist/tex/context/base/cont-it.tex b/Master/texmf-dist/tex/context/base/cont-it.tex
index 8245ee5bf3f..2141e3bc91b 100644
--- a/Master/texmf-dist/tex/context/base/cont-it.tex
+++ b/Master/texmf-dist/tex/context/base/cont-it.tex
@@ -21,17 +21,21 @@
\loaduserspecifications
-\installlanguage [\s!en] [\c!state=\v!start]
-\installlanguage [\s!uk] [\c!state=\v!start]
+\installlanguage [\s!us] [\c!state=\v!start]
+\installlanguage [\s!gb] [\c!state=\v!start]
\installlanguage [\s!de] [\c!state=\v!start]
\installlanguage [\s!fr] [\c!state=\v!start]
\installlanguage [\s!es] [\c!state=\v!start]
\installlanguage [\s!it] [\c!state=\v!start]
-% \setupbodyfont [cmr,ams,rm,12pt]
-%
-% \setupencoding[default=ec] \usetypescript[modern][\defaultencoding] \setupbodyfont[modern,rm,12pt]
-
-\setupencoding[default=ec] \usetypescript[fallback][\defaultencoding] \setupbodyfont[rm,12pt]
+\ifnum\texengine=\luatexengine
+ % will be runtime option: typeface
+ \appendtoks
+ \usetypescript[modern]
+ \setuptypeface[modern]
+ \to \everyjob
+\else
+ \setupencoding[default=ec] \usetypescript[fallback][\defaultencoding] \setupbodyfont[rm,12pt]
+\fi
\protect \errorstopmode \dump \endinput
diff --git a/Master/texmf-dist/tex/context/base/cont-log.tex b/Master/texmf-dist/tex/context/base/cont-log.tex
index fb821331d8c..a22c1d2c4e2 100644
--- a/Master/texmf-dist/tex/context/base/cont-log.tex
+++ b/Master/texmf-dist/tex/context/base/cont-log.tex
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context TeX Logos}
+\writestatus{loading}{ConTeXt TeX Logos}
%D The system that is used to typeset this text is called \TEX,
%D typeset with an lowered~E. From te beginning of \TEX,
@@ -43,12 +43,12 @@
\def\Mkern#1%
{{\setbox\scratchbox\hbox{M}\kern#1\wd\scratchbox}}
-\def\TeX
+\unexpanded\def\TeX
{T%
\Mkern{-.1667}\lower.5ex\hbox{E}%
\Mkern{-.125}X}
-\def\ConTeXt
+\unexpanded\def\ConTeXt
{C%
\CMRkern-.0333emo%
\CMRkern-.0333emn%
@@ -56,10 +56,10 @@
\CMRkern-.0667em\TeX%
\CMRkern-.0333emt}
-\def\PPCHTeX
+\unexpanded\def\PPCHTeX
{ppch\TeX}
-\def\PRAGMA
+\unexpanded\def\PRAGMA
{Pragma ADE}
%\def\LaTeX
@@ -67,7 +67,7 @@
% \kern-.30em\raise.3ex\hbox{\txx A}%
% \kern-.18em\TeX}
-\def\LaTeX % requested by erik frambach
+\unexpanded\def\LaTeX % requested by erik frambach
{{\setbox\scratchbox\hbox{L}%
\scratchdimen\ht\scratchbox
\setbox\scratchbox\hbox{\txx A}%
@@ -75,14 +75,14 @@
\raise\scratchdimen\hbox{\lower\ht\scratchbox\copy\scratchbox}%
\kern-.2\wd\scratchbox\TeX}}
-\def\TaBlE
+\unexpanded\def\TaBlE
{T%
\kern-.27em\lower.5ex\hbox{A}%
\kern-.18emB%
\kern-.1em\lower.5ex\hbox{L}%
\kern-.075emE}
-\def\PiCTeX
+\unexpanded\def\PiCTeX
{P%
\kern-.12em\lower.5ex\hbox{I}%
\kern-.075em C%
@@ -91,20 +91,20 @@
\def\AMSswitch#1%
{$\fam2\ifdim\bodyfontsize>1.1em\scriptstyle\fi#1$}
-\def\AmSTeX
+\unexpanded\def\AmSTeX
{\AMSswitch A%
\kern-.1667em\lower.5ex\hbox{\AMSswitch M}%
\kern-.125em\AMSswitch S%
-\TeX}
-\def\LamSTeX
+\unexpanded\def\LamSTeX
{L%
\kern-.4em\raise.3ex\hbox{\AMSswitch A}%
\kern-.25em\lower.4ex\hbox{\AMSswitch M}%
\kern-.1em{\AMSswitch S}%
-\TeX}
-\def\AmSLaTeX
+\unexpanded\def\AmSLaTeX
{\AMSswitch A%
\kern-.1667em\lower.5ex\hbox{\AMSswitch M}%
\kern-.125em\AMSswitch S%
@@ -118,7 +118,7 @@
%D
%D I changed this into one that adapts itself:
-\def\Context
+\unexpanded\def\Context
{{C\kern -.0667em\getscaledglyph{.8}\empty{O\kern -.0667emN\kern
-.0549emT\doifitalicelse{\kern-.1em}{\kern-.1667em}\lower.5ex\hbox
{E}\doifitalicelse\empty{\kern-.11em}X\kern-.055emT}}}
@@ -198,18 +198,18 @@
%D write all user defined commands, like abbreviations, in
%D uppercase.)
-\def\METAFONT {\MetaFont}
-\def\METAPOST {\MetaPost}
-\def\PPCHTEX {\PPCHTeX}
-\def\CONTEXT {\ConTeXt}
-\def\METAFUN {\MetaFun}
+\unexpanded\def\METAFONT {\MetaFont}
+\unexpanded\def\METAPOST {\MetaPost}
+\unexpanded\def\PPCHTEX {\PPCHTeX}
+\unexpanded\def\CONTEXT {\ConTeXt}
+\unexpanded\def\METAFUN {\MetaFun}
-\def\TEX {\TeX}
-\def\LATEX {\LaTeX}
-\def\PICTEX {\PiCTeX}
-\def\TABLE {\TaBlE}
-\def\AMSTEX {\AmSTeX}
-\def\LAMSTEX {\LamSTeX}
+\unexpanded\def\TEX {\TeX}
+\unexpanded\def\LATEX {\LaTeX}
+\unexpanded\def\PICTEX {\PiCTeX}
+\unexpanded\def\TABLE {\TaBlE}
+\unexpanded\def\AMSTEX {\AmSTeX}
+\unexpanded\def\LAMSTEX {\LamSTeX}
%D And this is how they show up: \TeX, \MetaFont, \MetaPost,
%D \PiCTeX, \TaBlE, \ConTeXt, \PPCHTeX, \AmSTeX, \LaTeX,
@@ -224,11 +224,12 @@
%D Some placeholders:
-\def\eTeX {\mathematics{\varepsilon}-\TeX}
-\def\pdfTeX {pdf\TeX}
-\def\pdfeTeX {pdfe-\TeX}
-\def\luaTeX {lua\TeX}
-\unexpanded\def\XeTeX {X\lower.5ex\hbox{\kern-.15em\mirror{E}}\kern-.1667em\TeX}
+\unexpanded\def\eTeX {\mathematics{\varepsilon}-\TeX}
+\unexpanded\def\pdfTeX {pdf\TeX}
+\unexpanded\def\pdfeTeX{pdfe-\TeX}
+\unexpanded\def\luaTeX {lua\TeX}
+\unexpanded\def\metaTeX{meta\TeX}
+\unexpanded\def\XeTeX {X\lower.5ex\hbox{\kern-.15em\mirror{E}}\kern-.1667em\TeX}
% Better, since lm has a mirrored E (don't ask me why)
@@ -251,41 +252,39 @@
{\setbox\scratchbox\hbox{E}%
\raise\dimexpr\ht\scratchbox+\dp\scratchbox\relax\hbox{\rotate[\c!rotation=180]{\box\scratchbox}}}
-\beginNEWTEX
-
-\unexpanded\def\XeTeX
- {X\lower.5ex
- \hbox
- {\kern-.15em
- \iffontchar\font"018E\relax
- \char"018E%
- \else
- \ifx\fontalternative\c!bf\mirror{E}\else
- \ifx\fontalternative\c!it \@XeTeX@\else
- \ifx\fontalternative\c!sl \@XeTeX@\else
- \ifx\fontalternative\c!bi \@XeTeX@\else
- \ifx\fontalternative\c!bs \@XeTeX@\else
- \mirror{E}\fi\fi\fi\fi\fi
- \fi}%
- \kern-.1667em \TeX}
-
-\endNEWTEX
-
-\beginOLDTEX
-
-\unexpanded\def\XeTeX
- {X\lower.5ex
- \hbox
- {\kern-.15em
- \ifx\fontalternative\c!bf\mirror{E}\else
- \ifx\fontalternative\c!it \@XeTeX@\else
- \ifx\fontalternative\c!sl \@XeTeX@\else
- \ifx\fontalternative\c!bi \@XeTeX@\else
- \ifx\fontalternative\c!bs \@XeTeX@\else
- \mirror{E}\fi\fi\fi\fi\fi}%
- \kern-.1667em \TeX}
-
-\endOLDTEX
+\ifnum\texengine=\pdftexengine
+
+ \unexpanded\def\XeTeX
+ {X\lower.5ex
+ \hbox
+ {\kern-.15em
+ \ifx\fontalternative\c!bf\mirror{E}\else
+ \ifx\fontalternative\c!it \@XeTeX@\else
+ \ifx\fontalternative\c!sl \@XeTeX@\else
+ \ifx\fontalternative\c!bi \@XeTeX@\else
+ \ifx\fontalternative\c!bs \@XeTeX@\else
+ \mirror{E}\fi\fi\fi\fi\fi}%
+ \kern-.1667em \TeX}
+
+\else
+
+ \unexpanded\def\XeTeX
+ {X\lower.5ex
+ \hbox
+ {\kern-.15em
+ \iffontchar\font"018E\relax
+ \char"018E%
+ \else
+ \ifx\fontalternative\c!bf\mirror{E}\else
+ \ifx\fontalternative\c!it \@XeTeX@\else
+ \ifx\fontalternative\c!sl \@XeTeX@\else
+ \ifx\fontalternative\c!bi \@XeTeX@\else
+ \ifx\fontalternative\c!bs \@XeTeX@\else
+ \mirror{E}\fi\fi\fi\fi\fi
+ \fi}%
+ \kern-.1667em \TeX}
+
+\fi
\let\ETEX \eTeX
\let\PDFTEX \pdfTeX
@@ -293,4 +292,18 @@
\let\LUATEX \luaTeX
\let\XETEX \XeTeX
+\def\MkApproved
+ {\rotate
+ [\c!rotation={\ifnum\texengine=\luatexengine\ctxlua{tex.write(45-45*\the\luatexversion/100)}\else0\fi},
+ \c!align=\v!middle,
+ \c!foregroundstyle=\v!type,
+ \c!foregroundcolor=darkred,
+ \c!frame=\v!on,
+ \c!offset=1ex,
+ \c!background=\v!color,
+ \c!backgroundcolor=lightgray,
+ \c!framecolor=darkred,
+ \c!rulethickness=2pt]
+ {Mk\ifnum\texengine=\luatexengine IV\else II\fi\\approved}}
+
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/cont-new.mkii b/Master/texmf-dist/tex/context/base/cont-new.mkii
index 6af6de4b624..8b5bed657a5 100644
--- a/Master/texmf-dist/tex/context/base/cont-new.mkii
+++ b/Master/texmf-dist/tex/context/base/cont-new.mkii
@@ -13,4 +13,7 @@
\enablemode[mkii]
+\long\def\startluacode#1\stopluacode{}
+\long\def\ctxlua #1{}
+
\endinput
diff --git a/Master/texmf-dist/tex/context/base/cont-new.mkiv b/Master/texmf-dist/tex/context/base/cont-new.mkiv
index 550a96ea9de..35b716ed46f 100644
--- a/Master/texmf-dist/tex/context/base/cont-new.mkiv
+++ b/Master/texmf-dist/tex/context/base/cont-new.mkiv
@@ -11,73 +11,75 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-% \appendtoks
-% \writestatus\m!lua{tfm over afm, wide fonts not yet supported}
-% \to \everystoptext
+% 2009-07-15 / vista sp 2 / 2.2G duo dell M90 precision:
+%
+% \dorecurse{10000}{test \page} % 300 pps
+% \dorecurse {2000}{test \page} % 260 pps
+% \dorecurse {300}{test \page} % 135 pps
% \ctxlua { fonts.define.method = 2 } % normally 3
-\enablemode[mkiv]
+\enablemode[mkiv] \setsystemmode{mkiv}
% potential new defaults:
-
+%
% \setbreakpoints[compound]
\unprotect
-% \appendtoks
-% \ctxlua{
-% table.insert(input.stop_actions, function()
-% tex.sprint(tex.ctxcatcodes,"\\immediatewriteutilitytua{end}")
-% tex.sprint(tex.ctxcatcodes,"\\immediatewriteutilitytua{}")
-% tex.sprint(tex.ctxcatcodes,"\\immediatewriteutilitytua{end of utility file}")
-% end)
-% }%
-% \to \everyopenutilities
-
-\def\writestatus#1#2{\ctxlua{ctx.writestatus(\!!bs#1\!!es,\!!bs#2\!!es)}}
-
-\ifx\clearmarks\undefined
- \def\clearmarks {\begingroup\afterassignment\doclearmarks\scratchcounter}
- \def\doclearmarks{\normalmarks\scratchcounter{}\endgroup}
-\fi
-
-\def\resetmark#1% we cannot use \normalmarks#1{}
- {\global\@EA\chardef\csname\@@mrk\string#1\endcsname\zerocount
- \@EA\clearmarks\csname\@@prk\string#1\endcsname
- \global\@EA\let\csname\@@trk\string#1\endcsname\empty
- \global\@EA\let\csname\@@frk\string#1\endcsname\empty
- \global\@EA\let\csname\@@brk\string#1\endcsname\empty
- \global\@EA\let\csname\@@crk\string#1\endcsname\empty}
-
-% \appendtoks
-% \ctxlua{garbagecollector.update()}%
-% \to \everyshipout
-
-% texmf.instance will become just texmf
+% % % % % % needs testing but saves runtime
+
+\let\checknotes\relax % probably not needed, checking already done
+
+% we need to figure this out (to be discussed)
+
+\unexpanded\def\textminus
+ {\char \iffontchar\font"2012 "2012 % figuredash
+ \else\iffontchar\font"2013 "2013 % endash
+ \else\iffontchar\font"2212 "2212 % math minus
+ "002D % hyphen
+ \fi\fi\fi}
+
+\unexpanded\def\textplus
+ {\char"002B } % plus
+
+% \def\registerviewerlayer#1#2% global !
+% {\setxvalue{(vl:#1)}{\global\dosetattribute{viewerlayer}{\ctxlua{tex.print(viewerlayers.register('#2'))}}}}
+
+% \setevalue{(vl:)}{\global\doresetattribute{viewerlayer}}
+
+\let\\=\crlf % till we fixed all styles
+
+% \def\pagedir{\expandafter\gobblethreearguments}
+% \def\bodydir{\expandafter\gobblethreearguments}
%D Since this can be a showstopper, we report the path at the beginning
%D as well as at the end of a run.
-\writestatus\m!lua{used config path - \ctxlua{tex.print(caches.configpath(texmf.instance))}}
-\writestatus\m!lua{used cache path - \ctxlua{tex.print(caches.path)}}
+% \writestatus\m!lua{used config path - \ctxlua{tex.print(caches.configpath())}}
+% \writestatus\m!lua{used cache path - \ctxlua{tex.print(caches.path)}}
+
+\startluacode
+ statistics.register("result saved in file", function()
+ return string.format( "%s.%s", "\outputfilename", (tex.pdfoutput>0 and "pdf") or "dvi")
+ end)
+\stopluacode
%D For the moment we report some statistics. Later this will become an option,
%D but for now we need this information.
-% \appendtoks
-% \ctxlua{ctx.show_statistics()}%
-% \to \everygoodbye
+\def\nomkivstatistics{\ctxlua{statistics.enable = false}} % for taco
\def\resettimer {\ctxlua{environment.starttime = os.clock()}}
\def\elapsedtime {\ctxlua{tex.sprint(os.clock()-environment.starttime)}}
\let\elapsedseconds \elapsedtime
-\resettimer
+% we will have a bunch of extra tracers (--dumphash --dumpdelta)
+
+\def\tracersdumphash {\ctxlua{tracers.register_dump_hash(false)}}
+\def\tracersdumpdelta{\ctxlua{tracers.register_dump_hash(true)}}
-% \appendtoks
-% \resettimer
-% \to \everyjob
+\resettimer
%D For me.
@@ -98,12 +100,12 @@
% remapper.define('encoding','^qtm','^(.*)$','q-\letterpercent1')
% }
-\appendtoksonce \loadallXfontmapfiles \to \everyPDFxform
-\appendtoksonce \loadallXfontmapfiles \to \everyPDFximage
-\appendtoksonce \loadallXfontmapfiles \to \everystarttext
-\appendtoksonce \loadallXfontmapfiles \to \everybeforepagebody
+% \appendtoksonce \loadallXfontmapfiles \to \pdfbackendeveryximage
+% \appendtoksonce \loadallXfontmapfiles \to \pdfbackendeveryxform
+% \appendtoksonce \loadallXfontmapfiles \to \everystarttext
+% \appendtoksonce \loadallXfontmapfiles \to \everybeforepagebody
-\def\loadallXfontmapfiles{\ctxlua{fonts.map.flush("pdftex")}}
+% \def\loadallXfontmapfiles{\ctxlua{fonts.map.flush("pdftex")}}
% \ctxlua{
% do
@@ -111,45 +113,34 @@
% texio.write_nl("CREATING "..pth)
% os.execute("mkdir " .. pth)
% end
-% input.output_files = { }
+% resolvers.output_files = { }
% callback.register('find_write_file', function(id,name)
-% input.output_files[name] = file.join(".","tmp","\jobname",name)
-% texio.write_nl("REDIRECTING OUTPUT "..name.. " TO " .. input.output_files[name])
-% return input.output_files[name]
+% resolvers.output_files[name] = file.join(".","tmp","\jobname",name)
+% texio.write_nl("REDIRECTING OUTPUT "..name.. " TO " .. resolvers.output_files[name])
+% return resolvers.output_files[name]
% end)
% callback.register('find_read_file', function(id,name)
% local sname = string.gsub(name,"^\letterpercent./","")
-% if input.output_files[sname] then
-% return input.output_files[name]
+% if resolvers.output_files[sname] then
+% return resolvers.output_files[name]
% elseif string.find(sname,"^\jobname[\letterpercent.\letterpercent-]") then
% local n = file.join(".","tmp","\jobname",sname)
% local f = io.open(n)
% if f then
-% input.output_files[name] = n
+% resolvers.output_files[name] = n
% texio.write_nl("REDIRECTING INPUT "..sname.. " TO " .. n)
% f:close()
% return n
% else
-% return input.findtexfile(texmf.instance,name)
+% return resolvers.findtexfile(name)
% end
% else
-% return input.findtexfile(texmf.instance,name)
+% return resolvers.findtexfile(name)
% end
% end)
% }
-% The following commands need to be taken care of, e.g. because there is not yet
-% a mkiv module for them.
-
-\definestartstop[randomized][\c!before=\dosetattribute{case}\plusfour,\c!after=]
-
-\def\WORD{\groupedcommand{\setcharactercasing[\plusone ]}{}}
-\def\word{\groupedcommand{\setcharactercasing[\plustwo ]}{}}
-\def\Word{\groupedcommand{\setcharactercasing[\plusthree]}{}} % \plusfour
-
-\let\WORDS\WORD
-\let\words\word
-\let\Words\Word
+\definestartstop[randomized][\c!before=\dosetattribute{case}{8},\c!after=]
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/cont-new.tex b/Master/texmf-dist/tex/context/base/cont-new.tex
index eda6471d25c..161d4c9182e 100644
--- a/Master/texmf-dist/tex/context/base/cont-new.tex
+++ b/Master/texmf-dist/tex/context/base/cont-new.tex
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\newcontextversion{2008.05.21 15:21}
+\newcontextversion{2009.08.19 17:10}
%D This file is loaded at runtime, thereby providing an
%D excellent place for hacks, patches, extensions and new
@@ -21,23 +21,24 @@
% it's about time to clean up this file ...
-\writestatus{\m!systems}{beware: some patches loaded from cont-new.tex}
+\writestatus\m!systems{beware: some patches loaded from cont-new.tex}
% \ifx\pdfmapfile \undefined \else \pdfmapfile{ } \fi
% \font\f=dummyfont \rpcode\f0=500 \hbox{..}\char0
% todo: mp-new
% caption: grid=top|bottom in xml defs
-
-\let\then\relax % \ifnum1>2\then -)
-\def\TransparencyHack
- {\appendtoks
- \doPDFpageattribute{/Group << /S /Transparency /I true /K true>>}%
- \to \everyPDFxform
- \appendtoks
- \doPDFpageattribute{/Group << /S /Transparency /I true /K true>>}%
- \to \everyshipout}
+\def\fastscale#1%
+ {\begingroup
+ \ifnum#1=1000\relax
+ \setfalse\scaleboxdone
+ \else
+ \settrue\scaleboxdone
+ \edef\finalscaleboxxscale{\withoutpt\the\dimexpr#1pt/1000\relax}%
+ \let\finalscaleboxyscale\finalscaleboxxscale
+ \fi
+ \dowithnextbox{\doscaleboxindeed\flushnextbox\endgroup}\hbox}
% \setupcaption [figure] [align=flushleft]
% \setupcaption [figure-1] [align=flushleft,leftmargin=10mm]
@@ -56,7 +57,7 @@
\def\placefloatwithsetups
{\dotripleempty\doplacefloatwithsetups}
-\def\doplacefloatwithsetups[#1][#2][#3]#4%
+\long\def\doplacefloatwithsetups[#1][#2][#3]#4%
{\def\floatsetupcaption {#4}%
\def\floatsetupcontent {\copy\nextbox}%
\def\floatsetupwidth {\wd\nextbox}%
@@ -71,35 +72,6 @@
\fi
\relax}
-% maybe to be integrated (option=...)
-
-\def\directexternalfigure
- {\dodoubleempty\dodirectexternalfigure}
-
-\def\dodirectexternalfigure[#1][#2]%
- {\bgroup
- \getparameters[\??ef][\c!type=\splitofftype,\c!page=1,#2]%
- \sanitizefilename#1\to\expandedfigurename
- \splitfilename\expandedfigurename
- \let\@@DriverImageWidth \!!zeropoint
- \let\@@DriverImageHeight \!!zeropoint
- \let\@@DriverImageFile \splitofffull
- \let\@@DriverImageType \@@eftype
- \let\@@DriverImageMethod \@@eftype
- \let\@@DriverImageLabel \empty
- \let\@@DriverImagePage \@@efpage
- \doinsertfile
- \egroup}
-
-% \directexternalfigure[cow.pdf]
-
-% normally one does not want this to happen nested, maybe there
-% is more; non public vars btw, will become conditionals
-
-\appendtoks \writetoregisterfalse \to \everybeforeutilityread
-\appendtoks \writetolistfalse \to \everybeforeutilityread
-\appendtoks \notesenabledfalse \to \everybeforeutilityread
-
% \setuplabeltext[\s!itemcount1={{I(},{)}}]
% \def\labeledcountervalue#1{\labeltexts{#1}{\countervalue{#1}}}
@@ -197,15 +169,6 @@
% \expandafter\shapesynonym\csname shsy:#1\endcsname\else#1%
% \fi}
%
-% \beginTEX
-%
-% \def\shapesynonym#1%
-% {\expandafter\ifx\csname shsy:#1\endcsname\relax
-% #1\else\expandafter\shapesynonym\csname shsy:#1\endcsname
-% \fi}
-%
-% \endTEX
-%
%\defineshapesynonym[eacute] [e]
%\defineshapesynonym[egrave] [e]
%\defineshapesynonym[eumlaut [e]
@@ -219,132 +182,6 @@
%
% \shapesynonym{eacute}
-% \page[left]
-% \definecolumntextarea[intro][left][x=1,y=1,nx=4,ny=20,state=start,background=introlayer]
-% \setupcolumntextareatext[intro][left][\setups{intro}]
-% \flushcolumntextareas
-
-\def\flushcolumntextareas
- {\initializecolumntextareas
- \setvsize}
-
-%D (Inspired by a discussion on the \CONTEXT\ mailing list)
-%D
-%D In \TEX\ each character can have one of 16 catcodes. This way the
-%D backslash, dollar, ampersand, hash and some more characters get
-%D their special meaning. If you want to process tokens under a
-%D certain catcode regime, passing arguments can interfere badly.
-%D
-%D \startbuffer[a]
-%D \def\whatever#1{[#1]}
-%D \whatever{whatever \type {\whatever{you want}} $or$ not!}
-%D \stopbuffer
-%D
-%D \typebuffer[a]
-%D
-%D Here we pass an argument to \type {\whatever} but part of that
-%D argument is to be processed under a different catcode regime, i.e.\
-%D all characters that need to be typeset verbatim need to get
-%D the catcode that makes it a letter. This is what we get when we typeset
-%D the text verbatim:
-%D
-%D \starttyping
-%D whatever \type {\whatever{you want}} $or$ not!
-%D \stoptyping
-%D
-%D However, when passed to \type {\whatever} we get:
-%D
-%D \getbuffer[a]
-%D
-%D In \ETEX\ one can use \type {\scantokens} to circumvent this problem.
-%D
-%D \startbuffer[b]
-%D \def\rescan#1{\scantokens{#1}}
-%D \def\whatever#1{[\rescan{#1}]}
-%D \whatever{whatever \type {\whatever{you want}} $or$ not!}
-%D \stopbuffer
-%D
-%D \getbuffer[b] \typebuffer[b]
-%D
-%D This time the \type {\whatever} call gives:
-%D
-%D \getbuffer[b]
-%D
-%D In this example, two spaces have crept in. The first one, after the
-%D macro name, is inserted by \TEX\ and cannot be avoided. The last space
-%D is inserted by \type {\scantokens}, and is the consequence of the fact
-%D that this macro mimics reading from a file. You can avoid the last
-%D space by a slightly different definition:
-%D
-%D \startbuffer[c]
-%D \def\rescan#1{\scantokens{#1\ignorespaces}}
-%D \def\whatever#1{[\rescan{#1}]}
-%D \whatever{whatever \type {\whatever{you want}} $or$ not!}
-%D \stopbuffer
-%D
-%D \typebuffer[c]
-%D
-%D Unfortunately we still keep the first space, but at least it's better than
-%D a failure:
-%D
-%D \getbuffer[c]
-
-\long\def\rescan#1{\scantokens{#1\ignorespaces}}
-\long\def\rescanwithsetup#1#2{\begingroup\directsetup{#1}\scantokens{#2\ignorespaces}\endgroup}
-
-\ifx\scantextokens\undefined \else
- \long\def\rescan#1{\scantextokens{#1}}
- \long\def\rescanwithsetup#1#2{\begingroup\directsetup{#1}\scantextokens{#2}\endgroup}
-\fi
-
-% In 2005 we will abandon support for font encodings that don't have
-% the ascii characters { } $ etc in their normal slot, i.e. latin modern
-% instead of computer modern. Then we can also clean up some of the ugly
-% xml internals that are a result from the need to deal with funny
-% encodings.
-%
-% a solution:
-%
-% \defineXMLargument[ctx:c]{\getXMLcharacter}
-% \defineXMLargument[ctx:e]{\getXMLentity }
-% \defineXMLargument[ctx:u]{\unicodechar }
-%
-% \bgroup \catcode`\<=\active \catcode`\&=\active
-%
-% \gdef\dontexpandutf
-% {\def\getXMLcharacter##1{<ctx:c>##1</ctx:c>}%
-% \def\getXMLentity ##1{<ctx:e>##1</ctx:e>}%
-% \def\unicodechar ##1{<ctx:u>##1</ctx:u>}}
-%
-% \egroup
-%
-% more generic
-%
-% IS THIS STILL OK? TO BE CHECKED (UTF AND SUCH) ! ! ! !
-
-\def\XMLexpanded#1%
- {\bgroup
- \honorunexpanded
-% \dontexpandencoding
-% \dontexpandutf
- \chardef\activecharactermode\zerocount
- \xdef\@@globalexpanded{#1}%
- \egroup
- \@@globalexpanded}
-
-\def\setXMLexpandedmark#1#2% using a tok prevents unwanted expansion in mark
- {\XMLexpanded{\scratchtoks{\enableXML#2}}%
- \expanded{\normalsetnormalmark{#1}{\the\scratchtoks}}}
-
-% \separatestring123 456\to\test [\test]
-
-% \def\separatestring#1\to#2%
-% {\let#2\empty
-% \def\docommand##1{\edef#2{\ifx#2\empty\else#2,\fi##1}}%
-% \processseparatedlist[#1][ ]\docommand}
-%
-% \processseparatedlist[aap noot][]\ruledhbox
-
% this will be activated when
% \newinsert\thispageinsert % <- installinsertion
@@ -426,10 +263,6 @@
% \getmulticolumnlines -> now in cont-loc, to be tested and really needed
-\long\def\startprocesscommalist[#1]#2\stopprocesscommalist
- {\long\def\currentcommalistcommand##1{\def\currentcommalistitem{##1}#2}%
- \processcommalist[#1]\currentcommalistcommand}
-
% \tracefonthandlingtrue
% new, still to be improved
@@ -515,7 +348,7 @@
\expandafter#1%
\fi}
-\gdef\collapsespaces%
+\gdef\collapsespaces
{\prependtoksonce\relax\to\everyeof%
\ignorelines%
\ignoretabs%
@@ -524,232 +357,6 @@
\egroup
-% todo : test low level translation (nl->en) and optimize script
-
-% \definestylecollection[mine]
-
-% \definestyleinstance[mine][default][sorry]
-% \definestyleinstance[mine][tt][bs][ttbs:\rm\sl]
-% \definestyleinstance[mine][tt][bf][ttbf:\rm\sl]
-% \definestyleinstance[mine][bf][\sl]
-% \definestyleinstance[mine][sl][\tt]
-
-% {\bf test \mine test \sl test \mine test \bs oeps \mine oeps {\tt test \mine \bf test}}
-
-\definesystemvariable{sx}
-
-\def\definestylecollection
- {\dosingleargument\dodefinestylecollection}
-
-\def\dodefinestylecollection[#1]%
- {\iffirstargument
- \unexpanded\setvalue{#1}{\styleinstance[#1]}%
- \def\docommand##1%
- {\def\dodocommand####1{\letbeundefined{\??sx##1:####1:\commalistelement}}%
- \processcommacommand[\alternativelist,\s!default]\dodocommand}%
- \processcommacommand[\stylelist,\s!default]\docommand
- \fi}
-
-\def\definestyleinstance
- {\doquadrupleargument\dodefinestyleinstance}
-
-\def\dodefinestyleinstance[#1][#2][#3][#4]% [name] [rm|ss|tt|..] [sl|bf|...] [whatever]
- {\iffirstargument
- \doifundefined{#1}{\definestylecollection[#1]}%
- \fi
- \iffourthargument
- \setvalue{\??sx#1:#2:#3}{#4}%
- \else\ifthirdargument
- \setvalue{\??sx#1::#2}{#3}%
- \else\ifsecondargument
- \letvalue{\??sx#1::#2}\empty
- \fi\fi\fi}
-
-\unexpanded\def\styleinstance[#1]% will be faster
- {%\begingroup\expanded{\infofont[#1:\fontstyle:\fontalternative]}\endgroup
- \executeifdefined{\??sx#1:\fontstyle:\fontalternative}%
- {\executeifdefined{\??sx#1:\fontstyle:\s!default}%
- {\executeifdefined{\??sx#1::\fontalternative}
- {\getvalue {\??sx#1::\s!default}}}}}
-
-% \beginETEX \ifcsname
-%
-% \unexpanded\def\styleinstance[#1]%
-% {\csname\??sx#1%
-% \ifcsname:\fontstyle:\fontalternative\endcsname
-% :\fontstyle:\fontalternative
-% \else\ifcsname:\fontstyle:\s!default\endcsname
-% :\fontstyle:\s!default
-% \else\ifcsname::\fontalternative\endcsname
-% ::\fontalternative
-% \else\ifcsname::\s!default\endcsname
-% ::\s!default
-% \else
-% % nothing, \relax
-% \fi\fi\fi\fi
-% \endcsname}
-%
-% \endETEX
-
-% no, wrong! never!
-%
-% \def\tightlayer[#1]%
-% {\begingroup
-% \def\currentlayer{#1}% todo: left/right
-% \setbox\nextbox\emptybox % hoogte/breedte are \wd\nextbox/\ht\nextbox
-% \hsize\layerparameter\c!width % \overlaywidth = \hsize
-% \vsize\layerparameter\c!height % \overlaywheight = \vsize
-% \hbox to \hsize{\composedlayer{#1}}%
-% \endgroup}
-
-% todo : share symbols
-
-% \definecolor[rollover:n][red]
-% \definecolor[rollover:r][green]
-% \definecolor[rollover:d][blue]
-
-\definepalet
- [rollover]
- [n=red,
- r=green,
- d=blue]
-
-% \newcounter\nofrollovers
-%
-% \def\dorollbutton[#1][#2]#3[#4]%
-% {\dontleavehmode
-% \bgroup
-% \doglobal\increment\nofrollovers
-% \unexpanded\def\dosetlocationbox[##1]##2[##3]%
-% {\getparameters[##1][##3]%
-% \definecolor[rollover][rollover:##2]%
-% \let\next\hbox
-% \doif{##2}{n}
-% {\doifvalue{##1\c!variant}\v!verborgen{\let\next\phantom}}%
-% \next
-% {\localframed[##1]
-% [\c!framecolor=rollover,\c!backgroundcolor=rollover,\c!color=rollover]%
-% {\dolocationattributes{##1}\c!style\c!color{#3}}}}%
-% \iffirstargument
-% \ifsecondargument
-% \def\setlocationbox##1{\dosetlocationbox[\??am#1]{##1}[#2]}%
-% \else
-% \doifassignmentelse{#1}
-% {\def\setlocationbox##1{\dosetlocationbox[\??bt]{##1}[#1]}}
-% {\def\setlocationbox##1{\dosetlocationbox[\??am#1]{##1}[]}}%
-% \fi
-% \else
-% \def\setlocationbox##1{\dosetlocationbox[\??bt]{##1}[]}%
-% \fi
-% % todo: share symbols
-% \definesymbol[rsym:\nofrollovers:n][\setlocationbox n]%
-% \definesymbol[rsym:\nofrollovers:r][\setlocationbox r]%
-% \definesymbol[rsym:\nofrollovers:d][\setlocationbox d]%
-% \nextsystemfield
-% \setupfield
-% [rollbutton]
-% [\c!frame=\v!off,\c!offset=\v!overlay,\c!klickoff={#4}]%
-% \definefield
-% [\currentsystemfield][push][rollbutton]
-% [rsym:\nofrollovers:n,%
-% rsym:\nofrollovers:r,%
-% rsym:\nofrollovers:d]%
-% \fitfield[\currentsystemfield]%
-% \egroup}
-
-\newcounter\nofrollovers
-\newcounter\nofrollbuttons
-
-\def\dorollbutton[#1][#2]#3[#4]%
- {\dontleavehmode
- \bgroup
- \doglobal\increment\nofrollovers
- \doglobal\increment\nofrollbuttons
- \unexpanded\def\dosetlocationbox[##1]##2[##3]%
- {\getparameters[##1][##3]%
- \definecolor[rollover][rollover:##2]%
- \doifelse{##2}{n}{\doifelsevalue{##1\c!alternative}\v!hidden\phantom\hbox}\hbox
- {\localframed[##1]
- [\c!framecolor=rollover,\c!backgroundcolor=rollover,\c!color=rollover]%
- {\dolocationattributes{##1}\c!style\c!color{#3}}}}%
- \iffirstargument
- \ifsecondargument
- \def\setlocationbox##1{\dosetlocationbox[\??am#1]{##1}[#2]}%
- \else
- \doifassignmentelse{#1}
- {\def\setlocationbox##1{\dosetlocationbox[\??bt]{##1}[#1]}}
- {\def\setlocationbox##1{\dosetlocationbox[\??am#1]{##1}[]}}%
- \fi
- \else
- \def\setlocationbox##1{\dosetlocationbox[\??bt]{##1}[]}%
- \fi
- % todo: share symbols, tricky since different dimensions
- \definesymbol[rsym:\nofrollovers:n][\setlocationbox n]%
- \definesymbol[rsym:\nofrollovers:r][\setlocationbox r]%
- \definesymbol[rsym:\nofrollovers:d][\setlocationbox d]%
- \setupfield
- [rollbutton]
- [\c!frame=\v!off,
- \c!offset=\v!overlay,
- \c!clickout={#4}]%
- \definefield
- [roll:\nofrollbuttons][push][rollbutton]
- [rsym:\nofrollovers:n,%
- rsym:\nofrollovers:r,%
- rsym:\nofrollovers:d]%
- \fitfield[roll:\nofrollbuttons]%
- \egroup}
-
-\unexpanded\def\rollbutton
- {\dodoubleempty\dorollbutton}
-
-% \def\do@@amrob[#1]#2\\%
-% {\txt\rollbutton[\currentmenu]{\ignorespaces#2\unskip}[#1]\\}%
-
-% \appendtoks \let\rob\do@@amrob \to \everysetmenucommands
-
-\def\menu@rob[#1]#2\\%
- {\@@amboxcommand\rollbutton[\currentmenu]{\ignorespaces#2\unskip}[#1]\\}%
-
-\appendtoks \let\rob\menu@rob \to \everysetmenucommands
-
-% calls:
-% {..} [JS..]
-% [left] {..} [JS..]
-% [a=b] {..} [JS..]
-% [left] [a=b] {..} [JS..]
-%
-% \setupbuttons[offset=0pt,frame=off] % alternative=hidden
-%
-% \rollbutton {Manuals} [JS(Goto_File{show-man.pdf})]
-% \rollbutton {Articles} [JS(Goto_File{show-art.pdf})]
-% \rollbutton {Papers} [JS(Goto_File{show-pap.pdf})]
-% \rollbutton {Presentations} [JS(Goto_File{show-pre.pdf})]
-% \rollbutton {Resources} [JS(Goto_File{show-res.pdf})]
-%
-% \rob [JS(...)] bla bla \\
-
-\unexpanded\def\overlayrollbutton
- {\dodoubleargument\dooverlayrollbutton}
-
-\def\dooverlayrollbutton[#1][#2]%
- {\bgroup
- \nextsystemfield
- \setupfield
- [overlayrollbutton]
- [\c!frame=\v!off,\c!offset=\v!overlay,\c!regionin={#1},\c!regionout={#2}]%
- \definesymbol
- [\currentsystemfield]
- [{\framed[\c!frame=\v!off,\c!width=\overlaywidth,\c!height=\overlayheight]{}}]%
- \definefield
- [\currentsystemfield][push][overlayrollbutton][\currentsystemfield][\currentsystemfield]%
- \fitfield[\currentsystemfield]%
- \egroup}
-
-% \defineoverlay
-% [ShowMenu]
-% [{\overlayrollbutton[VideLayer{navigation}][HideLayer{navigation}]}]
-
\def\inlinedbox
{\bgroup
\dowithnextbox
@@ -781,32 +388,7 @@
\unexpanded\def\asciistr#1{\dontleavehmode{\defconvertedargument\ascii{#1}\verbatimfont\ascii}}
-% messy, will be improved:
-
-\prependtoks \setnormalcatcodes \to \everyTEXinputmode
-\appendtoks \processingXMLfalse \to \everyTEXinputmode
-
-\let\normalenableXML\enableXML % some day we move the normal \enableXML into the toks
-
-\prependtoks \normalenableXML \to \everyXMLinputmode
-\appendtoks \processingXMLtrue \to \everyXMLinputmode
-
-\unexpanded\def\enableXML {\setinputmode[XML]} % \enableXML is used in edef's and marks
-\unexpanded\def\disableXML{\setinputmode[TEX]}
-
-\beginTEX
-
- % else the skip aborts the reshape process
-
- \def\shapefill{\vskip\onepoint\!!plus\lineheight\!!minus\lineheight\relax}
-
-\endTEX
-
-\beginETEX
-
- \def\shapefill{\vskip\zeropoint\!!plus\lineheight\!!minus\lineheight\relax}
-
-\endETEX
+\def\shapefill{\vskip\zeropoint\!!plus\lineheight\!!minus\lineheight\relax}
\let\normaltype\type
@@ -856,10 +438,6 @@
\fi \fi
\advance\boislevel\minusone}
-\defineblankmethod [\v!synchronize] {\verticalstrut\vskip-2\lineheight\verticalstrut}
-
-% \vtop{\blank[synchronize]\blank[line]test}
-
\def\minimalhbox#1#%
{\dowithnextbox
{\bgroup
@@ -869,38 +447,6 @@
\egroup}
\hbox}
-% manual
-%
-% externfiguur -> grid =ja|hoogte|diepte|halveregel|passend -> helemaal in details
-% stelplaatsblokin -> zijuitlijnen=hoogte|diepte|regel|halveregel|grid -> halveregel in 'details'
-
-% TODO: TEST FIRST, NO CORRECTION NEEDED IN GRID MODE, EVT OPTION
-
-\def\OTRONEsomeherefloat[#1]% spacing between two successive must be better
- {\baselinecorrection % not really needed in grid mode:
- %\ifgridsnapping \else \baselinecorrection \fi % ! ! ! test test test ! ! ! !
- \doplacefloatbox
- \doinsertfloatinfo
- \dochecknextindentation\??bk
- \dorechecknextindentation}
-
-% todo: switch koppelen aan par scheelt pos
-
-% to be documented: \startspread .. \stopspread
-
-% to be documented primarydef p crossed d
-% to be documented PlainTextArea
-
-% manual
-%
-% Sometimes the demands are getting pretty weird:
-%
-% \startitemize
-% \item test
-% \item test
-% \headsym{xx} test \par test
-% \stopitemize
-
% \def\dodimchoice#1#2#3%
% {\ifx#3\relax
% #1\@EA\gobbleuntilrelax
@@ -948,22 +494,6 @@
\def\showsetupsdefinition[#1]{\showvalue{\??su:#1}} % temp hack for debugging
% documentation : \setupregister[alternative=a|b|A|B]
-
-\def\defineXMLstore {\doquadrupleargument\dodefineXMLstore[\saveXMLasdata]}
-\def\defineXMLgstore{\doquadrupleargument\dodefineXMLstore[\gsaveXMLasdata]}
-
-\def\dodefineXMLstore[#1][#2][#3][#4]% element attribute prefix % will become faster
- {\defineXMLargument[#2][#3=\s!dummy]{#1{#4:\XMLop{#3}}}}
-
-\def\countXMLchildren[#1]#2%
- {\startnointerference
- \doglobal\newcounter\nofXMLchildren
- \defineXMLargument[#1]{\doglobal\increment\nofXMLchildren}%
- \startXMLignore
- #2%
- \stopXMLignore
- \stopnointerference}
-
\unprotected \def\traceposstring#1#2#3%
{\iftracepositions
\smashedhbox%
@@ -973,144 +503,6 @@
\vrule\!!width4\scratchdimen\!!height\scratchdimen\!!depth\scratchdimen}%
\fi}
-% It took quite a while to figure this out (using the preliminary 1.5
-% spec). There are still a lot of things to be implemented. This is
-% the third alternative.
-
-% todo: multiple instances, dus indirect
-
-\let\currentrendering\empty
-
-\definereference[StartCurrentRendering] [\v!StartRendering {\currentrendering}]
-\definereference[StopCurrentRendering] [\v!StopRendering {\currentrendering}]
-\definereference[PauseCurrentRendering] [\v!PauseRendering {\currentrendering}]
-\definereference[ResumeCurrentRendering][\v!ResumeRendering{\currentrendering}]
-
-\newcounter\nofexternalrenderings
-
-\def\useexternalrendering{\doquadrupleempty\douseexternalrendering}
-\def\setinternalrendering{\dodoubleempty \dosetinternalrendering}
-
-\def\douseexternalrendering[#1][#2][#3][#4]% tag mime file options
- {\setgvalue{\??rd:#1}{\plusone{#1}{#2}{#3}{#4}}}
-
-\def\dosetinternalrendering[#1][#2]% tag options {content}
- {\bgroup
- \dowithnextbox
- {\setgvalue{\??rd:#1}{\plustwo{#1}{IRO}{#1}{#2}}%
- \let\objectoffset\zeropoint
- \setobject{IRO}{#1}\hbox{\box\nextbox}%
- \egroup}%
- \hbox}
-
-\def\checkrendering#1% let's hope that \next is not used
- {\iflocation
- \doifsomething{#1}%
- {\doifdefined{\??rd:#1}%
- {\expanded{\getvalue{\??rd::\number\renderingtype{#1}}%
- {\filterfromvalue{\??rd:#1}52}{\filterfromvalue{\??rd:#1}53}%
- {\filterfromvalue{\??rd:#1}54}{\filterfromvalue{\??rd:#1}55}}}}%
- \fi}
-
-\setvalue{\??rd::1}{\doinsertrendering}
-\setvalue{\??rd::2}{\doinsertrenderingobject}
-
-\def\renderingtype #1{\filterfromvalue{\??rd:#1}51}
-\def\renderingoptions#1{\filterfromvalue{\??rd:#1}55}
-
-\setexecutecommandcheck {startrendering} \checkrendering
-\setexecutecommandcheck {stoprendering} \checkrendering
-\setexecutecommandcheck {pauserendering} \checkrendering
-\setexecutecommandcheck {resumerendering} \checkrendering
-
-% by using a nice trick (used in other places of context as well) we
-% can easily overload the default size to match the opbject size
-
-\def\renderingwidth {8cm}
-\def\renderingheight{6cm}
-
-\def\definerenderingwindow
- {\dodoubleempty\dodefinerenderingwindow}
-
-\def\dodefinerenderingwindow[#1][#2]%
- {\presetlocalframed[\??rw#1]%
- \getparameters%
- [\??rw#1]%
- [\c!openpageaction=,\c!closepageaction=,%
- \c!width=\renderingwidth,\c!height=\renderingheight,%
- #2]}
-
-\def\setuprenderingwindow
- {\dodoubleargument\dosetuprenderingwindow}
-
-\def\dosetuprenderingwindow[#1]%
- {\getparameters[\??rw#1]}
-
-\def\placerenderingwindow
- {\dodoubleempty\doplacerenderingwindow}
-
-\def\doplacerenderingwindow[#1][#2]%
- {\bgroup
- \edef\currentrendering{\ifsecondargument#2\else#1\fi}%
- \ifcase\renderingtype\currentrendering\or
- % a file
- \or
- % an object
- \getobjectdimensions{IRO}\currentrendering
- \scratchdimen\objectheight
- \advance\scratchdimen\objectdepth
- \edef\renderingheight{\the\scratchdimen}%
- \edef\renderingwidth{\objectwidth}%
- \fi
- % create fall back if needed
- \doifdefinedelse{\??rw#1\c!width}
- {\def\currentrenderingwindow{#1}}
- {\let\currentrenderingwindow\s!default
- \definerenderingwindow[\currentrenderingwindow]}%
- \checkrendering\currentrendering
- \handlereferenceactions{\getvalue{\??rw\currentrenderingwindow\c!openpageaction }}\dosetuprenderingopenpageaction
- \handlereferenceactions{\getvalue{\??rw\currentrenderingwindow\c!closepageaction}}\dosetuprenderingclosepageaction
- \localframed
- [\??rw\currentrenderingwindow][\c!offset=\v!overlay]%
- {\expanded{\doinsertrenderingwindow
- \noexpand\currentrendering\hsize\vsize{\renderingoptions\currentrendering}}}%
- \egroup}
-
-% todo:
-%
-% \setinternalrendering[example-1][options]{}
-
-% test file:
-%
-% \definerenderingwindow
-% [example]
-% [width=320pt,height=150pt,frame=off,
-% background=color,backgroundcolor=gray,
-% openpageaction=StartCurrentRendering,
-% closepageaction=NextPage]% StopCurrentRendering]
-%
-% \useexternalrendering[example-1][audio/mpeg] [eldorado.mp3]
-% \useexternalrendering[example-2][audio/mpeg] [myst-12.mp3]
-% \useexternalrendering[example-3][application/x-shockwave-flash][http://localhost/mb.swf] [auto]
-% \useexternalrendering[example-4][application/x-shockwave-flash][celebration.swf]
-% \useexternalrendering[example-5][video/quicktime] [p1000726.mov]
-% \useexternalrendering[example-6][application/smil] [quadratic_map.smi]
-%
-% \def\renderingmenu[#1]%
-% {\hbox
-% {\setupbuttons[width=2.5em]%
-% \button{\symbol[StartRendering]} [StartRendering{#1}]\enspace
-% \button{\symbol[StopRendering]} [StopRendering{#1}]\enspace
-% \button{\symbol[PauseRendering]} [PauseRendering{#1}]\enspace
-% \button{\symbol[ResumeRendering]}[ResumeRendering{#1}]}}
-%
-% \renderingmenu[example-1]\blank
-% \renderingmenu[example-2]\blank
-% \renderingmenu[example-3]\blank
-% \renderingmenu[example-4] \placefigure{A ShockWave}{\placerenderingwindow[example][example-4]} \page
-% \renderingmenu[example-5] \placefigure{A Movie}{\placerenderingwindow[example][example-5]} \page
-% \renderingmenu[example-6] \placefigure{A Smile}{\placerenderingwindow[example][example-6]}
-
% will be a MyWay
%
% \setuplayout[grid=yes] \setupcaption[figure][inbetween=] \useMPlibrary[dum] \setupcolors[state=start]
@@ -1213,94 +605,12 @@
{\endgraf\verticalstrut\endgraf\kern-2\lineheight
\egroup}
-\def\definepushbutton % name optional setup
- {\dodoubleempty\dodefinepushbutton}
-
-\def\dodefinepushbutton[#1][#2]% name setup
- {\dododefinepushbutton{#1}{n}{push}%
- \dododefinepushbutton{#1}{r}{\symbol[psym:#1:n]}%
- \dododefinepushbutton{#1}{d}{\symbol[psym:#1:r]}%
- \setvalue{pushbutton:#1}{\dohandlepushbutton{#1}{#2}}}
-
-\def\dododefinepushbutton#1#2#3%
- {\doifsymboldefinedelse{psym:#1:#2}%
- \donothing{\definesymbol[psym:#1:#2][{#3}]}}
-
-\def\definepushsymbol
- {\dotripleargument\dodefinepushsymbol}
-
-\def\dodefinepushsymbol[#1][#2]% [#3]
- {\definesymbol[psym:#1:#2]}
-
-\def\dopushbutton[#1][#2]%
- {\executeifdefined{pushbutton:#1}\gobbleoneargument{#2}}
-
-\def\pushbutton
- {\dodoubleargument\dopushbutton}
-
-\def\dohandlepushbutton#1#2#3% identifier setup script
- {\bgroup
- \nextsystemfield
- \setupfield
- [pushbutton]
- [\c!frame=\v!overlay,
- \c!offset=\v!overlay,
- \c!clickout=#3,#2]%
- \definefield
- [\currentsystemfield]
- [push]
- [pushbutton]
- [psym:#1:n,psym:#1:r,psym:#1:d]%
- \fitfield
- [\currentsystemfield]%
- \egroup}
-
-% \def\do@@ampsh
-% {\dodoubleargument\dodo@@ampsh}
-%
-% \def\dodo@@ampsh[#1][#2]#3\\%
-% {\txt\pushbutton[#1][#2]\\}%
-%
-%\appendtoks \let\psh\do@@ampsh \to \everysetmenucommands
-
-\def\@@ampsh{\txt\pushbutton}
-
-\appendtoks \let\psh\@@ampsh \to \everysetmenucommands
-
-% \definepushbutton [reset]
-%
-% \definepushsymbol [reset] [n] [\uniqueMPgraphic{whatever}{color=green}]
-% \definepushsymbol [reset] [r] [\uniqueMPgraphic{whatever}{color=white}]
-%
-% \startinteractionmenu[bottom]
-% \psh [reset] [JS(reset_something)] \\
-% \stopinteractionmenu
-
\def\tabulaterule % to be redone, not correct
{\dotabulaterule
{\hrule\!!height.5\scratchdimen\!!depth.5\scratchdimen\relax
\doifvalue{\??tt\currenttabulate\c!distance}\v!grid
{\kern-\scratchdimen}}} % experimental tm-prikkels
-% todo: \setupinterlinespace[\c!regel=\v!vast] => ==\the\baselineskip
-
-%%%%%%%% todo: \chardef\snapstruts=1 => d=l-h
-
-\def\useMPvariables
- {\dodoubleargument\douseMPvariables}
-
-\def\douseMPvariables[#1][#2]%
- {\def\@@meta{#1:}%
- \prepareMPvariables{#2}}
-
-\def\processlinetableXMLfile#1%
- {\bgroup
- \let\startlinetable\donothing
- \let\stoplinetable \donothing
- \startlinetableanalysis\processXMLfile{#1}\stoplinetableanalysis
- \startlinetablerun \processXMLfile{#1}\stoplinetablerun
- \egroup}
-
% experimental: \synchronizegrid bla bla bla
\newcounter\currentgridsync
@@ -1336,13 +646,10 @@
% \message{no grid correction: \the\scratchdimen}\wait
\fi}
-% needed for extreme
+% needed for extreme (will go away)
\definesystemvariable{ie}
-% \def\definetest[#1]#2%
-% {\long\setvalue{\??ie#1}{#2}}
-
\def\definetest
{\dodoubleempty\dodefinetest}
@@ -1352,13 +659,13 @@
\processaction
[#2]
[% first test true, rest depends
- \v!next=>\setgvalue{\??ie#1}{\setgvalue{\??ie#1}{#3}\firstoftwoarguments},
+ \v!next=>\setgvalue{\??ie#1}{\setgvalue{\??ie#1}{#3}\firstoftwoarguments},
% rest true if first true
% \v!first=>\setgvalue{\??ie#1}{#3{\letgvalue{\??ie#1}%
- % \firstoftwoarguments\firstoftwoarguments}%
- % \secondoftwoarguments},
+ % \firstoftwoarguments\firstoftwoarguments}%
+ % \secondoftwoarguments},
% always true
- \v!yes=>\letgvalue{\??ie#1}\firstoftwoarguments,
+ \v!yes=>\letgvalue{\??ie#1}\firstoftwoarguments,
% always false
\v!no=>\letgvalue{\??ie#1}\secondoftwoarguments]%
\fi}
@@ -1391,42 +698,13 @@
% \tableifelse{\doifelse{a}{a}}{\NC Xtest \NC test \NC \NR}{}%
% \stoptabulate}
-\long \def\tableifelse#1%
+\long\def\tableifelse#1%
{\TABLEnoalign{#1%
{\aftergroup \firstoftwoarguments}%
{\aftergroup\secondoftwoarguments}}}
-% \long \def\tableif#1% whow, this is real ugly
-% {\TABLEnoalign{\let\gnext\gobbleoneargument#1%
-% {\let\gnext\firstofoneargument}}\gnext}
-
\long \def\tableiftextelse#1{\tableifelse{\doiftextelse{#1}}}
-\def\expandifnonempty#1%
- {\@EA\ifx\csname#1\endcsname\empty
- \expandafter\secondoftwoarguments
- \else
- \expandafter\firstoftwoarguments
- \fi
- {\csname#1\endcsname}}
-
-\def\@@sectiekoppeling#1%
- {\expandifnonempty{\??ko#1\c!coupling}{#1}}
-
-\def\@@sectiesectie#1%
- {\expandifnonempty{\??ko#1\c!section}{\@@sectiekoppeling{#1}}}
-
-\def\sectioncountervalue#1%
- {\@@sectionvalue{\@@sectiesectie{#1}}}
-
-% todo namespace \@@meta:#1:... ! ! ! ! ! !
-
-\def\presetMPvariable
- {\dodoubleargument\dopresetMPvariable}
-
-\def\dopresetMPvariable[#1][#2=#3]%
- {\doifundefined{#1:#2}{\setvalue{#1:#2}{#3}}}
-
% experiment, not yet to be used
\def\displaybreak
@@ -1442,30 +720,6 @@
\def\tightvbox{\dowithnextbox{\nextboxdp\zeropoint\flushnextbox}\vbox}
\def\tightvtop{\dowithnextbox{\nextboxht\zeropoint\flushnextbox}\vtop}
-% \translateMPinput{il2-pl}
-%
-% \startMPenvironment[global]
-% \setupbodyfont[plr]
-% \stopMPenvironment
-%
-% \TeX:
-%
-% \startMPcode
-% draw btex MetaPost: etex scaled 5 ;
-% \stopMPcode
-
-% now in cont-loc.tex, for the sake of testing.
-%
-% %D When \type {\somecolor} is issued, we can savely assume
-% %D grouping. Using \type {\groupedcommand} here (i.e.\ the
-% %D definition of \type {\color}) is unsafe because in
-% %D interferes with for instance switching attributes.
-%
-% \def\switchtocolor[#1]%
-% {\bgroup\startcolor[#1]
-% \aftergroup\stopcolor
-% \aftergroup\egroup}
-
% what is this stupid macro meant for:
\def\hyphenationpoint
@@ -1597,8 +851,6 @@
\egroup
\synchronizehsize}
-% todo : hoe komt box er uit
-
\long\def\startexternalfigure
{\dotripleempty\dostartexternalfigure}
@@ -1633,6 +885,18 @@
%% \def\changedpage#1%
%% {\getvalue{\s!paragraph:p:#1}}
+\newcount\nofprofiled
+
+\def\profilemacro#1%
+ {\nofprofiled\zerocount
+ \letvalue{\string#1\string#1}#1%
+ \appendtoks
+ \normalwritestatus\m!systems{profile \string#1: \number\nofprofiled}%
+ \to \everystoptext
+ \unexpanded\def#1%
+ {\global\advance\nofprofiled\plusone
+ \csname\string#1\string#1\endcsname}}
+
% incomplete, will be a special case of float placement
\def\startfixed{\dosingleempty\dostartfixed}
@@ -1650,7 +914,7 @@
\processaction
[#2]
[ \v!high=>\bbox {\flushnextbox},
- \v!low=>\tbox {\flushnextbox},
+ \v!low=>\tbox {\flushnextbox},
\v!middle=>\vcenter{\flushnextbox},
\v!lohi=>\vcenter{\flushnextbox},
\s!unknown=>\tbox {\flushnextbox},
@@ -1691,44 +955,29 @@
%
% \stopitemize
-% still needed for uguide
-
-\let\placefloatlabel \placefloatcaption
-\let\placefloatlabeltext \placefloatcaptiontext
-\let\placefloatlabelreference \placefloatcaptionreference
-
\def\obeyfollowingtoken{{}} % end \cs scanning
-\def\gobbleparameters{\doquadrupleempty\dogobbleparameters}
-\def\dogobbleparameters[#1][#2][#3][#4]{}
-
-% documentation
-
-% \starttable[|||]
-% \HL
-% \VL test \VS test \VL \FR
-% \VL test \VD test \VL \MR
-% \VL test \VT test \VL \LR
-% \HL
-% \stoptable
-
-%D To be documented, \type {\includemenu[menu]}.
-%D To be documented, \type {\emphbf} cum suis.
-
-%D For Ton. To be documented.
-
-\def\plaatsexterndocument[#1]%
- {\def\doexternaldocument##1##2##3{\readlocfile{##2}\donothing\donothing}%
- \getvalue{\v!file:::#1}}
-
-%D Far from complete.
-
-\def\startgeheel
- {\startlinecorrection
- \insidefloattrue}
-
-\def\stopgeheel
- {\stoplinecorrection}
+% \def\comparedimension#1#2%
+% {\chardef\compresult
+% \ifdim#1<#2%
+% \zerocount
+% \else\ifdim#1<#2%
+% \plusone
+% \else
+% \plustwo
+% \fi\fi}
+% \newdimen\roundingeps \roundingeps=10sp
+% \def\comparedimensioneps#1#2%
+% {\chardef\compresult
+% \ifdim\dimexpr(#1-#2)<\roudingeps
+% \zerocount
+% \else\ifdim\dimexpr(#2-#1)<\roudingeps
+% \zerocount
+% \else\ifdim#1<#2%
+% \plusone
+% \else
+% \plustwo
+% \fi\fi\fi}
%D Next we load a few local optimizations and new features. They
%D live on on my machine and are not distributed, but they may end
@@ -1738,6 +987,6 @@
\readsysfile {cont-loc} {} {} % local improvements, patches, new features
\readsysfile {cont-exp} {} {} % experimental features (e.g. local speed-ups)
-\readsysfile {cont-mtx} {} {} % experimental metatex features
+%readsysfile {cont-mtx} {} {} % experimental metatex features
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/cont-nl.tex b/Master/texmf-dist/tex/context/base/cont-nl.tex
index 02378a60c32..32b82b01a68 100644
--- a/Master/texmf-dist/tex/context/base/cont-nl.tex
+++ b/Master/texmf-dist/tex/context/base/cont-nl.tex
@@ -21,18 +21,22 @@
\loaduserspecifications
-\installlanguage [\s!en] [\c!state=\v!start]
-\installlanguage [\s!uk] [\c!state=\v!start]
+\installlanguage [\s!us] [\c!state=\v!start]
+\installlanguage [\s!gb] [\c!state=\v!start]
\installlanguage [\s!de] [\c!state=\v!start]
\installlanguage [\s!fr] [\c!state=\v!start]
\installlanguage [\s!es] [\c!state=\v!start]
\installlanguage [\s!nl] [\c!state=\v!start]
\installlanguage [\s!it] [\c!state=\v!start]
-% \setupbodyfont [cmr,ams,rm,12pt]
-%
-% \setupencoding[default=ec] \usetypescript[modern][\defaultencoding] \setupbodyfont[modern,rm,12pt]
-
-\setupencoding[default=ec] \usetypescript[fallback][\defaultencoding] \setupbodyfont[rm,12pt]
+\ifnum\texengine=\luatexengine
+ % will be runtime option: typeface
+ \appendtoks
+ \usetypescript[modern]
+ \setuptypeface[modern]
+ \to \everyjob
+\else
+ \setupencoding[default=ec] \usetypescript[fallback][\defaultencoding] \setupbodyfont[rm,12pt]
+\fi
\protect \errorstopmode \dump \endinput
diff --git a/Master/texmf-dist/tex/context/base/cont-old.tex b/Master/texmf-dist/tex/context/base/cont-old.tex
index 70628a10c76..360b5f2e6ae 100644
--- a/Master/texmf-dist/tex/context/base/cont-old.tex
+++ b/Master/texmf-dist/tex/context/base/cont-old.tex
@@ -11,11 +11,11 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Old Macros}
+\writestatus{loading}{ConTeXt Old Macros}
\unprotect
-% \def\middleraggedness {6\bodyfontsize}
+\def\middleraggedness {6\bodyfontsize}
\def\dosubstitutecommand#1#2%
{\writestatus\m!systems{\string#1\normalspace -> \string#2}%
diff --git a/Master/texmf-dist/tex/context/base/cont-pe.tex b/Master/texmf-dist/tex/context/base/cont-pe.tex
new file mode 100644
index 00000000000..fdf47d680da
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/cont-pe.tex
@@ -0,0 +1,45 @@
+%D \module
+%D [ file=cont-en,
+%D version=1997.08.19,
+%D title=\CONTEXT,
+%D subtitle=\CONTEXT\ English Format Generation,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\catcode`\{=1 \catcode`\}=2 \def\defaultinterface{persian} \def\messageinterface{english}
+
+\input context.tex
+
+\unprotect
+
+\setupcurrentlanguage[\s!pe]
+
+\loaduserspecifications
+
+% Do we need more defaults? or maybe all languages?
+
+\installlanguage [\s!us] [\c!state=\v!start]
+\installlanguage [\s!gb] [\c!state=\v!start]
+\installlanguage [\s!de] [\c!state=\v!start]
+\installlanguage [\s!fr] [\c!state=\v!start]
+\installlanguage [\s!es] [\c!state=\v!start]
+\installlanguage [\s!it] [\c!state=\v!start]
+\installlanguage [\s!nl] [\c!state=\v!start]
+\installlanguage [\s!pe] [\c!state=\v!start]
+
+\ifnum\texengine=\luatexengine
+ % will be runtime option: typeface
+ \appendtoks
+ \usetypescript[modern]
+ \setuptypeface[modern]
+ \to \everyjob
+\else
+ \setupencoding[default=ec] \usetypescript[fallback][\defaultencoding] \setupbodyfont[rm,12pt]
+\fi
+
+\protect \errorstopmode \dump \endinput
diff --git a/Master/texmf-dist/tex/context/base/cont-ro.tex b/Master/texmf-dist/tex/context/base/cont-ro.tex
index ce718ab7be2..9be9b116252 100644
--- a/Master/texmf-dist/tex/context/base/cont-ro.tex
+++ b/Master/texmf-dist/tex/context/base/cont-ro.tex
@@ -25,10 +25,14 @@
\installlanguage [\s!de] [\c!state=\v!start]
\installlanguage [\s!ro] [\c!state=\v!start]
-% \setupbodyfont [cmr,ams,rm,12pt]
-%
-% \setupencoding[default=ec] \usetypescript[modern][\defaultencoding] \setupbodyfont[modern,rm,12pt]
-
-\setupencoding[default=ec] \usetypescript[fallback][\defaultencoding] \setupbodyfont[rm,12pt]
+\ifnum\texengine=\luatexengine
+ % will be runtime option: typeface
+ \appendtoks
+ \usetypescript[modern]
+ \setuptypeface[modern]
+ \to \everyjob
+\else
+ \setupencoding[default=ec] \usetypescript[fallback][\defaultencoding] \setupbodyfont[rm,12pt]
+\fi
\protect \errorstopmode \dump \endinput
diff --git a/Master/texmf-dist/tex/context/base/cont-sys.ori b/Master/texmf-dist/tex/context/base/cont-sys.ori
index 335a7d98435..11c0141e795 100644
--- a/Master/texmf-dist/tex/context/base/cont-sys.ori
+++ b/Master/texmf-dist/tex/context/base/cont-sys.ori
@@ -14,8 +14,8 @@
\unprotect
% Speed up typescript loading, but at the cost of much memory:
-%
-% \preloadtypescripts
+
+\preloadtypescripts
% If you want another default font:
%
@@ -121,7 +121,6 @@
% When you have your own fonts installed, you may want to predefine:
%
% \usetypescriptfile[type-buy]
-% \usetypescriptfile [type-gyr]
% Some styles default to Lucida Bright. You can overload
% Lucida by Times cum suis. Watch out, the pos collection
@@ -158,8 +157,8 @@
% Enabling run time \METAPOST\ (also enable \write18 in
% texmf.cnf):
-% \runMPgraphicstrue
-% \runMPTEXgraphicstrue
+\runMPgraphicstrue
+\runMPTEXgraphicstrue
% This saves some runtime, but needs a format, which you can
% make with 'texexec --make --alone metafun'. Make sure that
diff --git a/Master/texmf-dist/tex/context/base/cont-usr.ori b/Master/texmf-dist/tex/context/base/cont-usr.ori
index 7489f8a109c..5a3070362f8 100644
--- a/Master/texmf-dist/tex/context/base/cont-usr.ori
+++ b/Master/texmf-dist/tex/context/base/cont-usr.ori
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{User Settings}
+\writestatus{loading}{ConTeXt User Settings}
\unprotect
@@ -26,7 +26,7 @@
% \installlanguage [\s!af] [\c!state=\v!start] % afrikaans
% \installlanguage [\s!ca] [\c!state=\v!start] % catalan
-% \installlanguage [\s!cz] [\c!state=\v!start] % czech
+% \installlanguage [\s!cs] [\c!state=\v!start] % czech
% \installlanguage [\s!da] [\c!state=\v!start] % danish
% \installlanguage [\s!de] [\c!state=\v!start] % german
% \installlanguage [\s!en] [\c!state=\v!start] % english us
@@ -38,7 +38,8 @@
% \installlanguage [\s!it] [\c!state=\v!start] % italian
% \installlanguage [\s!la] [\c!state=\v!start] % latin
% \installlanguage [\s!nl] [\c!state=\v!start] % dutch
-% \installlanguage [\s!no] [\c!state=\v!start] % norwegian
+% \installlanguage [\s!nb] [\c!state=\v!start] % bokmal
+% \installlanguage [\s!nn] [\c!state=\v!start] % nynorsk
% \installlanguage [\s!pl] [\c!state=\v!start] % polish
% \installlanguage [\s!pt] [\c!state=\v!start] % portuguese
% \installlanguage [\s!ro] [\c!state=\v!start] % romanian
@@ -48,7 +49,7 @@
% \installlanguage [\s!sv] [\c!state=\v!start] % swedish
% \installlanguage [\s!tr] [\c!state=\v!start] % turkish
% \installlanguage [\s!ua] [\c!state=\v!start] % ukrainian
-% \installlanguage [\s!uk] [\c!state=\v!start] % english uk
+% \installlanguage [\s!gb] [\c!state=\v!start] % english uk
% \installlanguage [\s!vn] [\c!state=\v!start] % vietnamese
% \installlanguage [deo] [\c!state=\v!start] % old german
@@ -58,7 +59,7 @@
% \setupcurrentlanguage[\s!af]
% \setupcurrentlanguage[\s!ca]
-% \setupcurrentlanguage[\s!cz]
+% \setupcurrentlanguage[\s!cs]
% \setupcurrentlanguage[\s!da]
% \setupcurrentlanguage[\s!de]
% \setupcurrentlanguage[\s!en]
@@ -70,7 +71,8 @@
% \setupcurrentlanguage[\s!it]
% \setupcurrentlanguage[\s!la]
% \setupcurrentlanguage[\s!nl]
-% \setupcurrentlanguage[\s!no]
+% \setupcurrentlanguage[\s!nb]
+% \setupcurrentlanguage[\s!nn]
% \setupcurrentlanguage[\s!pl]
% \setupcurrentlanguage[\s!pt]
% \setupcurrentlanguage[\s!ro]
@@ -87,6 +89,8 @@
%D next line is only meant as sample, take a look at the
%D format related files first.
+% This is obsolete due to latin modern:
+%
% \definefilesynonym [font-cmr] [font-csr] % czech & slovak
% \definefilesynonym [font-cmr] [font-plr] % polish
diff --git a/Master/texmf-dist/tex/context/base/context-base.lmx b/Master/texmf-dist/tex/context/base/context-base.lmx
new file mode 100644
index 00000000000..5c96b497953
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/context-base.lmx
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<!--
+ filename : context-base.xml
+ comment : companion to mtx-server-ctx-startup.tex
+ author : Hans Hagen, PRAGMA-ADE, Hasselt NL
+ copyright: PRAGMA ADE / ConTeXt Development Team
+ license : see context related readme files
+-->
+
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
+ <head>
+ <title><?lua pv('title') ?></title>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <style type="text/css">
+ <?lmx-include context.css ?>
+ </style>
+ </head>
+ <body>
+ <div id="top"><div id="top-one"><div id="top-two">
+ <?lua pv('title') ?>
+ </div></div></div>
+ <div id="left"><div id="left-one"><div id="left-two">
+ <?lua pv('lefttext') ?>
+ </div></div></div>
+ <div id="right"><div id="right-safari"><div id="right-one"><div id="right-two"><div id="right-three"><div id="right-four"><div id="right-five">
+ <?lua pv('righttext') ?>
+ </div></div></div></div></div></div></div>
+ <div id="main"><div id='main-settings'>
+ <div class='title'><?lua pv('maintext') ?></div>
+ </div></div>
+ <div id="bottom"><div id="bottom-one"><div id="bottom-two">
+ <?lua pv('bottomtext') ?>
+ </div></div></div>
+ </body>
+</html>
diff --git a/Master/texmf-dist/tex/context/base/context-characters.lmx b/Master/texmf-dist/tex/context/base/context-characters.lmx
index b992d30b8a8..b2ddee64e83 100644
--- a/Master/texmf-dist/tex/context/base/context-characters.lmx
+++ b/Master/texmf-dist/tex/context/base/context-characters.lmx
@@ -1,35 +1,41 @@
-<!--
- -- filename : comm-deb.xml
- -- comment : companion to comm-xml.tex
- -- author : Hans Hagen, PRAGMA-ADE, Hasselt NL
- -- copyright: PRAGMA ADE / ConTeXt Development Team
- -- license : see context related readme files
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!--
+ filename : context-characters.lmx
+ comment : companion to context.tex
+ author : Hans Hagen, PRAGMA-ADE, Hasselt NL
+ copyright: PRAGMA ADE / ConTeXt Development Team
+ license : see context related readme files
-->
-<html>
- <title><?lua pv('title') ?></title>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
- <style type="text/css">
- <!--
- <?lmx-include context.css ?>
- #type {
- text-align: center ;
- }
- #variable {
- width: 10em ;
- text-align: right ;
- margin-right: 1em ;
- }
- #value {
- text-align: left ;
- }
- -->
- </style>
- <script language="JavaScript">
- <!--
- window.focus();
- -->
- </script>
+
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
+ <head>
+ <script language="JavaScript">
+ <!--
+ window.focus();
+ -->
+ </script>
+ <title><?lua pv('title') ?></title>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <style type="text/css">
+ <!--
+ <?lmx-include context.css ?>
+ #type {
+ text-align: center ;
+ }
+ #variable {
+ width: 10em ;
+ text-align: right ;
+ margin-right: 1em ;
+ }
+ #value {
+ text-align: left ;
+ }
+ -->
+ </style>
+ </head>
<body> <!-- onclick="location.reload()" -->
<div id="top"><div id="top-one"><div id="top-two">
<?lua pv('title') ?>
diff --git a/Master/texmf-dist/tex/context/base/context-debug.lmx b/Master/texmf-dist/tex/context/base/context-debug.lmx
index 593f3567253..8ca2573a9fa 100644
--- a/Master/texmf-dist/tex/context/base/context-debug.lmx
+++ b/Master/texmf-dist/tex/context/base/context-debug.lmx
@@ -1,36 +1,41 @@
-<!--
- -- filename : comm-deb.xml
- -- comment : companion to comm-xml.tex
- -- author : Hans Hagen, PRAGMA-ADE, Hasselt NL
- -- copyright: PRAGMA ADE / ConTeXt Development Team
- -- license : see context related readme files
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!--
+ filename : context-debug.lmx
+ comment : companion to context.tex
+ author : Hans Hagen, PRAGMA-ADE, Hasselt NL
+ copyright: PRAGMA ADE / ConTeXt Development Team
+ license : see context related readme files
-->
-<html>
- <title><?lua pv('title') ?></title>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
- <style type="text/css">
- <!--
- <?lmx-include context.css ?>
- #type {
- text-align: center ;
- }
- #variable {
- width: 10em ;
- text-align: right ;
- margin-right: 1em ;
- }
- #value {
- text-align: left ;
- }
- -->
- </style>
- <script language="JavaScript">
- <!--
- window.focus();
- -->
- </script>
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
+ <head>
+ <script language="JavaScript">
+ <!--
+ window.focus();
+ -->
+ </script>
+ <title><?lua pv('title') ?></title>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <style type="text/css">
+ <!--
+ <?lmx-include context.css ?>
+ #type {
+ text-align: center ;
+ }
+ #variable {
+ width: 10em ;
+ text-align: right ;
+ margin-right: 1em ;
+ }
+ #value {
+ text-align: left ;
+ }
+ -->
+ </style>
+ </head>
<body>
<div id="top"><div id="top-one"><div id="top-two">
<?lua pv('title') ?>
@@ -41,7 +46,6 @@
<div id="right"><div id="right-safari"><div id="right-one"><div id="right-two"><div id="right-three"><div id="right-four"><div id="right-five">
<!-- empty -->
</div></div></div></div></div></div></div>
- <div id="right"><div id="right-safari"><div id="right-one"><div id="right-two"><div id="right-three"><div id="right-four"><div id="right-five"></div></div></div></div></div></div></div>
<div id="main"><div id='main-settings'>
<?lua if tracers.knownlist('scratch') then ?>
<h1>Scratch Variables</h1>
diff --git a/Master/texmf-dist/tex/context/base/context-error.lmx b/Master/texmf-dist/tex/context/base/context-error.lmx
index df3ad909032..015d74c9f0f 100644
--- a/Master/texmf-dist/tex/context/base/context-error.lmx
+++ b/Master/texmf-dist/tex/context/base/context-error.lmx
@@ -1,26 +1,30 @@
-<!--
- -- filename : comm-err.xml
- -- comment : companion to comm-xml.tex
- -- author : Hans Hagen, PRAGMA-ADE, Hasselt NL
- -- copyright: PRAGMA ADE / ConTeXt Development Team
- -- license : see context related readme files
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!--
+ filename : context-error.lmx
+ comment : companion to context.tex
+ author : Hans Hagen, PRAGMA-ADE, Hasselt NL
+ copyright: PRAGMA ADE / ConTeXt Development Team
+ license : see context related readme files
-->
-<html>
- <title><?lua pv('title')?></title>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <style type="text/css">
- <!--
- <?lmx-include context.css ?>
- -->
- </style>
- <script language="JavaScript">
- <!--
- window.focus();
- parent.close();
- -->
- </script>
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
+ <head>
+ <script language="JavaScript">
+ <!--
+ window.focus();
+ -->
+ </script>
+ <title><?lua pv('title')?></title>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <style type="text/css">
+ <!--
+ <?lmx-include context.css ?>
+ -->
+ </style>
+ </head>
<body>
<div id="top"><div id="top-one"><div id="top-two">
<?lua pv('title')?>
@@ -40,7 +44,7 @@
<tr><td>File </td><td>&nbsp;&nbsp;&nbsp;<?lua tv('filename') ?></td></tr>
<tr><td>Line </td><td>&nbsp;&nbsp;&nbsp;<?lua tv('linenumber') ?></td></tr>
</table>
- </br>
+ <br/>
<pre>
<?lua pv('errorcontext')?>
</pre>
diff --git a/Master/texmf-dist/tex/context/base/context-fonttest.lmx b/Master/texmf-dist/tex/context/base/context-fonttest.lmx
new file mode 100644
index 00000000000..b90af179db2
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/context-fonttest.lmx
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<!--
+ filename : context-fonttest.lmx
+ comment : companion to mtx-server-ctx-fonttest.tex
+ author : Hans Hagen, PRAGMA-ADE, Hasselt NL
+ copyright: PRAGMA ADE / ConTeXt Development Team
+ license : see context related readme files
+-->
+
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
+ <head>
+ <script type="text/javascript">
+ <!--
+ window.focus() ;
+ <?lua pv('javascripts')?> ;
+ <?lua pv('javascriptdata')?> ;
+ -->
+ </script>
+ <title><?lua pv('title')?></title>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <style type="text/css">
+ <?lmx-include context.css ?>
+ </style>
+ </head>
+ <body onLoad="<?lua pv('javascriptinit')?>">
+ <form action="<?lua pv('formaction')?>" name="main-form">
+ <div id="top"><div id="top-one"><div id="top-two">
+ <?lua pv('title')?>
+ </div></div></div>
+ <div id="left"><div id="left-one"><div id="left-two">
+ <?lua pv('status')?>
+ </div></div></div>
+ <div id="right"><div id="right-safari"><div id="right-one"><div id="right-two"><div id="right-three"><div id="right-four"><div id="right-five">
+ <!-- empty -->
+ </div></div></div></div></div></div></div>
+ <div id="main"><div id="main-settings">
+ <?lua pv('maintext')?>
+ </div></div>
+ <div id="bottom"><div id="bottom-one"><div id="bottom-two">
+ <?lua pv('menu')?>
+ </div></div></div>
+ </form>
+ </body>
+</html>
diff --git a/Master/texmf-dist/tex/context/base/context-help.lmx b/Master/texmf-dist/tex/context/base/context-help.lmx
new file mode 100644
index 00000000000..3c663b0acc3
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/context-help.lmx
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<!--
+ filename : comm-deb.xml
+ comment : companion to comm-xml.tex
+ author : Hans Hagen, PRAGMA-ADE, Hasselt NL
+ copyright: PRAGMA ADE / ConTeXt Development Team
+ license : see context related readme files
+-->
+
+<html>
+ <head>
+ <script language="JavaScript">
+ <!--
+ window.focus();
+ -->
+ </script>
+ <title><?lua pv('title') ?></title>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <style type="text/css">
+ <!--
+<?lmx-include context.css ?>
+
+#main-left {
+ position: absolute;
+ left: 0% ;
+ top: 0% ;
+ right: 0% ;
+ bottom: 0% ;
+ z-index: 2 ;
+ width: 75% ;
+ height: 100% ;
+ padding: 0% ;
+ margin: 0% ;
+ overflow: auto ;
+ border-style: none ;
+ border-width: 0 ;
+ background-color: <?lua pv('color-background-main-left')?> ;
+}
+#main-right {
+ position: absolute;
+ left: 75% ;
+ top: 0% ;
+ right: 0% ;
+ bottom: 0% ;
+ z-index: 2 ;
+ width: 25% ;
+ height: 100% ;
+ padding: 0% ;
+ margin: 0% ;
+ overflow: auto ;
+ border-style: none ;
+ border-width: 0 ;
+ background-color: <?lua pv('color-background-main-right')?> ;
+}
+#main-common-settings {
+ padding: 1em ;
+}
+
+ -->
+ </style>
+ </head>
+ <body>
+ <div id="top"><div id="top-one"><div id="top-two">
+ <?lua pv('title') ?>
+ </div></div></div>
+ <div id="left"><div id="left-one"><div id="left-two">
+ <!-- empty -->
+ </div></div></div>
+ <div id="right"><div id="right-safari"><div id="right-one"><div id="right-two"><div id="right-three"><div id="right-four"><div id="right-five">
+ <?lua pv('interfaces') ?>
+ </div></div></div></div></div></div></div>
+ <div id="main"><div id='main-settings'>
+ <div id="main-right"><div id="main-common-settings">
+ <?lua pv('names') ?>
+ </div></div>
+ <div id="main-left"><div id="main-common-settings">
+ <h1><?lua pv('maintitle') ?></h1>
+ <?lua pv('maintext') ?>
+ </div></div>
+ </div></div>
+ <div id="bottom"><div id="bottom-one"><div id="bottom-two">
+ <?lua pv('extra') ?>
+ </div></div></div>
+ </body>
+</html>
diff --git a/Master/texmf-dist/tex/context/base/context-timing.lmx b/Master/texmf-dist/tex/context/base/context-timing.lmx
new file mode 100644
index 00000000000..eea9db822ef
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/context-timing.lmx
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<!--
+ filename : context-timing.xml
+ comment : companion to mtx-timing.tex
+ author : Hans Hagen, PRAGMA-ADE, Hasselt NL
+ copyright: PRAGMA ADE / ConTeXt Development Team
+ license : see context related readme files
+-->
+
+<!--
+ beware: xhtml, so no comment around css
+-->
+
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
+ <head>
+ <script language="JavaScript">
+ <!--
+ window.focus();
+ -->
+ </script>
+ <title><?lua pv('title')?></title>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <style type="text/css">
+ <?lmx-include context.css ?>
+ </style>
+ </head>
+ <body>
+ <div id="top"><div id="top-one"><div id="top-two">
+ <?lua pv('title')?>
+ </div></div></div>
+ <div id="left"><div id="left-one"><div id="left-two">
+ <!-- empty -->
+ </div></div></div>
+ <div id="right"><div id="right-safari"><div id="right-one"><div id="right-two"><div id="right-three"><div id="right-four"><div id="right-five">
+ <!-- empty -->
+ </div></div></div></div></div></div></div>
+ <div id="main"><div id="main-settings">
+ <?lua pv('graphics')?>
+ </div></div>
+ <div id="bottom"><div id="bottom-one"><div id="bottom-two">
+ <small>
+ <br/> <br/>
+ <?lua pv('parametersmenu')?>
+ <br/>
+ <?lua pv('nodesmenu')?>
+ </small>
+ </div></div></div>
+ </body>
+</html>
diff --git a/Master/texmf-dist/tex/context/base/context.css b/Master/texmf-dist/tex/context/base/context.css
index ef4a44cea16..f332ae242d6 100644
--- a/Master/texmf-dist/tex/context/base/context.css
+++ b/Master/texmf-dist/tex/context/base/context.css
@@ -12,6 +12,12 @@ a.dir-view:link, a.dir-view:active, a.dir-view:visited {
color: #FFFFFF ;
text-decoration: underline ;
}
+.valid {
+ color: #00FF00 ;
+}
+.invalid {
+ color: #FF0000 ;
+}
h1, .title {
font-style: normal ;
font-weight: normal ;
@@ -31,6 +37,15 @@ table {
font-size: 12px ;
margin: 0 ;
}
+th {
+ font-weight: bold ;
+ text-align: left ;
+ padding-bottom: 6px ;
+}
+.tc {
+ font-weight: bold ;
+ text-align: left ;
+}
p, li {
max-width: 60em ;
}
diff --git a/Master/texmf-dist/tex/context/base/context.mkii b/Master/texmf-dist/tex/context/base/context.mkii
new file mode 100644
index 00000000000..4f8f1616350
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/context.mkii
@@ -0,0 +1,384 @@
+%D \module
+%D [ file=context,
+%D version=2008.28.10, % 1995.10.10,
+%D title=\CONTEXT,
+%D subtitle=\CONTEXT\ Format Generation,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D First we load the system modules. These implement a lot of
+%D manipulation macros. The first one loads \PLAIN\ \TEX, as
+%D minimal as possible.
+
+\loadcorefile{syst-ini}
+\loadcorefile{syst-pln}
+
+\loadcorefile{norm-tex}
+\loadcorefile{norm-etx}
+\loadcorefile{norm-ptx}
+\loadcorefile{norm-xtx}
+\loadcorefile{norm-ctx}
+
+\loadmarkfile{catc-ini}
+\loadcorefile{catc-act}
+\loadcorefile{catc-def}
+\loadcorefile{catc-ctx}
+\loadcorefile{catc-sym}
+
+\loadmarkfile{syst-gen}
+\loadmarkfile{syst-ext}
+\loadmarkfile{syst-new}
+\loadmarkfile{syst-con}
+\loadmarkfile{thrd-trg} % based on: David Carlisle
+
+\loadmarkfile{syst-fnt}
+\loadmarkfile{syst-str}
+\loadmarkfile{syst-rtp}
+
+\ifnum\texengine=\xetexengine
+ \loadmarkfile{xetx-ini}
+ \loadmarkfile{xetx-utf}
+ \loadmarkfile{xetx-chr}
+ \loadmarkfile{xetx-cls}
+\fi
+
+%D To enable selective loading, we say:
+
+\newif\ifCONTEXT \CONTEXTtrue % will disappear
+
+%D In order to conveniently load files, we need a few
+%D support modules.
+
+\loadmarkfile{supp-fil}
+\loadmarkfile{supp-dir}
+
+%D After this we're ready for the multi||lingual interface
+%D modules.
+
+\loadmarkfile{mult-ini}
+\loadcorefile{mult-fst}
+\loadcorefile{mult-sys}
+\loadcorefile{mult-def}
+\loadmarkfile{mult-chk}
+
+%D Now we're ready for some general support modules. These
+%D modules implement some basic typesetting functionality.
+
+\loadmarkfile{core-var}
+\loadmarkfile{core-env}
+
+\loadcorefile{supp-box}
+\loadmarkfile{supp-mrk}
+\loadcorefile{supp-vis}
+\loadcorefile{supp-fun}
+%loadmarkfile{supp-eps}
+\loadmarkfile{supp-spe}
+\loadmarkfile{supp-ran}
+\loadmarkfile{supp-mps}
+\loadmarkfile{supp-tpi}
+\loadcorefile{supp-mat}
+\loadcorefile{supp-ali}
+\loadcorefile{supp-num}
+
+%D Verbatim typesetting is implemented in a separate class of
+%D modules. The pretty typesetting modules are loaded at run
+%D time.
+
+\loadmarkfile{verb-ini}
+
+%D The following modules are not sequentially dependent,
+%D i.e. they have ugly dependencies, which will be cleaned
+%D up by adding more overloading.
+
+%D When loading the font, color and special modules, we need a
+%D bit more advanced file handling as well as some general
+%D variables, and features, so next we load:
+
+\loadmarkfile{page-ins}
+\loadmarkfile{core-fil}
+\loadmarkfile{core-con}
+
+%D We already need some synonyms (patterns). At runtime this
+%D file will be reloaded.
+
+\loadcorefile{cont-fil}
+
+%D \CONTEXT\ does not implement its own table handling. We
+%D just go for the best there is and load \TABLE. Just to be
+%D sure we do it here, before we redefine \type{|}.
+
+\loadcorefile{thrd-tab} % based on: Michael Wichura / will be reimplemented
+
+%D Here comes the last support modules. They take care of
+%D some language specific things.
+
+\loadmarkfile{supp-pat}
+
+%D The next few modules do what their names state. They
+%D load additional definition modules when needed.
+
+\loadmarkfile{regi-ini}
+\loadcorefile{regi-syn}
+\loadmarkfile{enco-ini}
+%loadmarkfile{filt-ini}
+\loadmarkfile{hand-ini}
+
+\loadmarkfile{lang-ini}
+\loadmarkfile{lang-spe}
+\loadmarkfile{lang-lab}
+
+\loadmarkfile{unic-ini}
+
+\loadmarkfile{core-gen}
+\loadmarkfile{core-uti}
+\loadmarkfile{core-two}
+\loadmarkfile{core-stg}
+
+\loadmarkfile{spec-ini}
+\loadmarkfile{spec-mis}
+\loadmarkfile{spec-def}
+\loadmarkfile{spec-var}
+
+\loadmarkfile{colo-ini}
+\loadmarkfile{colo-ext}
+
+%D For the moment we load a lot of languages. In the future
+%D we'll have to be more space conservative.
+
+\loadmarkfile{lang-mis}
+\loadmarkfile{lang-url}
+
+\loadcorefile{lang-ger}
+\loadcorefile{lang-ita}
+\loadcorefile{lang-sla}
+\loadcorefile{lang-alt}
+\loadcorefile{lang-ana}
+\loadcorefile{lang-art}
+\loadcorefile{lang-bal}
+\loadcorefile{lang-cel}
+\loadcorefile{lang-grk}
+\loadcorefile{lang-ind}
+\loadcorefile{lang-ura}
+\loadcorefile{lang-vn}
+\loadcorefile{lang-cyr}
+
+\loadmarkfile{typo-ini}
+
+%D All kind of symbols are handled in:
+
+\loadmarkfile{symb-ini}
+
+%D Sorting:
+
+\loadmarkfile{sort-ini}
+
+%D Next we load some core macro's. These implement the
+%D macros' that are seen by the users. The order of loading
+%D is important, due to dependancies.
+
+\loadmarkfile{core-spa}
+\loadmarkfile{core-grd}
+\loadmarkfile{strc-mar}
+\loadmarkfile{anch-pos}
+
+\loadmarkfile{buff-ver}
+\loadmarkfile{buff-ini}
+
+\loadmarkfile{pack-rul}
+\loadmarkfile{trac-vis}
+\loadmarkfile{strc-num}
+\loadmarkfile{tabl-pln}
+\loadmarkfile{tabl-tab}
+\loadmarkfile{tabl-tsp}
+\loadmarkfile{scrn-nav}
+\loadmarkfile{strc-ref}
+\loadmarkfile{pack-obj}
+\loadmarkfile{strc-lst}
+\loadmarkfile{strc-itm}
+\loadmarkfile{strc-des}
+\loadmarkfile{strc-mat} % should come after math-pln etc
+\loadmarkfile{strc-syn}
+\loadmarkfile{core-sys}
+
+\loadmarkfile{page-ini}
+\loadmarkfile{page-bck}
+\loadmarkfile{page-not}
+\loadmarkfile{page-one}
+\loadmarkfile{page-lay}
+\loadmarkfile{page-log}
+\loadmarkfile{page-txt}
+\loadmarkfile{page-sid}
+\loadmarkfile{strc-flt}
+\loadmarkfile{page-mis}
+\loadmarkfile{page-mul}
+\loadmarkfile{page-set}
+\loadmarkfile{pack-lyr}
+\loadmarkfile{page-mak}
+\loadmarkfile{strc-pag}
+\loadmarkfile{page-lin}
+\loadmarkfile{page-par}
+\loadmarkfile{page-mar}
+
+\loadmarkfile{core-job} % why so late?
+
+% so far
+
+\loadmarkfile{strc-sec}
+\loadmarkfile{strc-swd}
+\loadmarkfile{strc-blk}
+
+\loadmarkfile{page-imp}
+\loadmarkfile{tabl-tbl}
+\loadmarkfile{scrn-int}
+\loadmarkfile{tabl-ntb}
+\loadmarkfile{tabl-nte}
+\loadmarkfile{tabl-ltb}
+
+%D A few more languages, that have specifics using core
+%D functionality:
+
+%loadmarkfile{lang-ara} % undefined
+\loadmarkfile{lang-chi}
+\loadmarkfile{lang-jap}
+
+%D How about fill||in fields and related stuff?
+
+\loadmarkfile{java-ini}
+\loadmarkfile{scrn-fld}
+\loadmarkfile{scrn-hlp}
+
+%D Registers can depend on fields, so we load that now.
+
+\loadmarkfile{strc-reg}
+
+%D Of course we do need fonts. There are no \TFM\ files
+%D loaded yet, so the format file is independant of their
+%D content. Here we also redefine \type{\it} as {\it italic}
+%D instead of italian.
+
+\loadmarkfile{font-ini}
+
+\ifnum\texengine=\xetexengine
+ \loadmarkfile{font-xtx}
+\fi
+
+\loadmarkfile{font-unk}
+\loadmarkfile{font-uni}
+\loadmarkfile{font-bfm}
+
+\loadmarkfile{enco-pfr}
+
+\loadmarkfile{type-ini}
+\loadcorefile{type-def}
+
+%D Properties. Don't ask.
+
+\loadmarkfile{prop-ini}
+\loadmarkfile{prop-lay}
+\loadmarkfile{prop-mis}
+
+%D Like languages, fonts, encodings and symbols, \METAPOST\
+%D support is also organized in its own class of modules.
+
+\loadmarkfile{meta-ini}
+\loadmarkfile{meta-tex}
+\loadmarkfile{meta-pdf}
+
+\loadmarkfile{meta-pag}
+
+%D Special page handling (maybe even later)
+
+\loadmarkfile{page-flw}
+\loadmarkfile{page-spr}
+\loadmarkfile{page-plg}
+\loadmarkfile{page-str}
+
+%D Anchoring graphics:
+
+\loadmarkfile{anch-pgr}
+\loadmarkfile{anch-bar}
+\loadmarkfile{anch-snc}
+
+%D Math.
+
+\loadmarkfile{math-pln}
+\loadmarkfile{math-ini}
+\loadmarkfile{math-arr}
+\loadmarkfile{math-frc}
+
+%D Now we're ready for more core modules.
+
+\loadmarkfile{core-fnt}
+\loadmarkfile{strc-not}
+\loadmarkfile{strc-lnt}
+
+\loadmarkfile{core-mis}
+
+\loadmarkfile{grph-trf}
+\loadmarkfile{grph-inc}
+\loadmarkfile{grph-fig}
+
+\loadmarkfile{core-par}
+
+\loadmarkfile{pack-box}
+\loadmarkfile{page-app}
+\loadmarkfile{meta-fig}
+
+%D Language specific spacing.
+
+\loadcorefile{lang-spa}
+
+%D Only the basic XML parser and remapper are part of the core.
+%D These macros are loaded last since they overload and|/|or
+%D extend previously defined ones.
+
+\loadcorefile{xtag-ini}
+\loadcorefile{xtag-ext}
+\loadcorefile{xtag-exp}
+\loadcorefile{xtag-pre}
+\loadcorefile{xtag-xsd}
+\loadcorefile{xtag-rng}
+
+%D How about this:
+
+\loadcorefile{meta-xml}
+
+%D \TEX\ related logo's are always typeset in a special way.
+%D Here they come:
+
+\loadcorefile{cont-log}
+
+%D This one overloads af few things:
+
+\loadmarkfile{core-ctx}
+
+%D Defaults go here (more will be moved to this module
+%D later):
+
+\loadmarkfile{core-ini}
+\loadmarkfile{core-def}
+
+%D Preloaded modules (some need xml support):
+
+%usemodule[x][res-04] % xml resource libraries
+%usemodule[x][res-08] % rlx runtime conversion
+\usemodule[x][res-12] % rli external indentification
+
+%D At run time, a few more files are loaded, like:
+%D
+%D \startitemize[packed]
+%D \item \type{cont-sys}: local (system dependant) defaults
+%D \item \type{cont-old}: substitutes for old (obsolete) macros
+%D \item \type{cont-new}: new macro implementations (for testing)
+%D \item \type{cont-fil}: filename and module synonyms
+%D \stopitemize
+
+% %D Except from english, no hyphenation patterns are loaded
+% %D yet. Users can specify their needs in the next module:
+%
+% \input cont-usr
diff --git a/Master/texmf-dist/tex/context/base/context.mkiv b/Master/texmf-dist/tex/context/base/context.mkiv
new file mode 100644
index 00000000000..03f26c8f000
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/context.mkiv
@@ -0,0 +1,356 @@
+%D \module
+%D [ file=context,
+%D version=2008.28.10, % 1995.10.10,
+%D title=\CONTEXT,
+%D subtitle=\CONTEXT\ Format Generation,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+% syst-cat -> catc-ini + vectors
+% spec-* -> special backends for luatex
+
+%D First we load the system modules. These implement a lot of
+%D manipulation macros. The first one loads \PLAIN\ \TEX, as
+%D minimal as possible.
+
+\loadcorefile{syst-ini}
+
+\ifnum\luatexversion<43
+ \writestatus{!!!!}{Your luatex binary is way too old, you need at least version 0.42.}
+ \expandafter\end
+\fi
+
+\loadcorefile{norm-ctx}
+\loadcorefile{syst-pln}
+
+\loadmarkfile{luat-cod}
+\loadmarkfile{luat-bas}
+\loadmarkfile{luat-lib}
+
+\loadmarkfile{catc-ini}
+\loadcorefile{catc-act}
+\loadcorefile{catc-def}
+\loadcorefile{catc-ctx}
+\loadcorefile{catc-sym}
+
+\newif\ifCONTEXT \CONTEXTtrue % will disappear
+
+\loadmarkfile{syst-aux}
+\loadmarkfile{syst-lua}
+\loadmarkfile{syst-con}
+
+\loadmarkfile{syst-fnt}
+\loadmarkfile{syst-str}
+\loadmarkfile{syst-rtp}
+
+\loadmarkfile{supp-fil}
+\loadmarkfile{supp-dir}
+
+\loadmarkfile{char-ini}
+\loadmarkfile{char-utf}
+\loadmarkfile{char-act}
+
+\loadmarkfile{mult-ini}
+\loadcorefile{mult-fst}
+\loadcorefile{mult-sys}
+\loadcorefile{mult-def}
+\loadmarkfile{mult-chk}
+\loadmarkfile{mult-cld}
+
+\loadmarkfile{luat-ini}
+
+\loadmarkfile{toks-ini}
+
+\loadmarkfile{node-ini}
+\loadmarkfile{node-fin}
+\loadmarkfile{node-par}
+
+\loadmarkfile{core-var}
+
+\loadmarkfile{back-ini}
+\loadmarkfile{lpdf-ini} % some day back-ini will load this
+\loadmarkfile{back-pdf} % some day back-ini will load this
+
+\loadmarkfile{attr-ini}
+
+\loadmarkfile{core-env}
+
+\loadmarkfile{trac-tex}
+\loadmarkfile{trac-lmx}
+\loadmarkfile{trac-deb}
+
+\loadcorefile{supp-box}
+
+\loadcorefile{supp-vis}
+\loadcorefile{supp-fun}
+
+\loadmarkfile{supp-ran}
+\loadcorefile{supp-mat}
+\loadcorefile{supp-ali}
+\loadcorefile{supp-num}
+
+\loadmarkfile{typo-ini}
+
+\loadmarkfile{page-ins}
+\loadmarkfile{core-fil}
+\loadmarkfile{core-con}
+
+\loadcorefile{cont-fil}
+
+\loadmarkfile{regi-ini}
+\loadcorefile{regi-syn}
+\loadmarkfile{enco-ini}
+\loadmarkfile{hand-ini}
+
+\loadmarkfile{lang-ini}
+\loadmarkfile{lang-lab}
+
+\loadmarkfile{unic-ini}
+
+\loadmarkfile{core-gen}
+\loadmarkfile{core-uti}
+\loadmarkfile{core-two}
+
+\loadmarkfile{colo-ini}
+\loadmarkfile{colo-ext}
+
+\loadmarkfile{trac-vis}
+
+\loadmarkfile{lang-mis}
+\loadmarkfile{lang-url}
+
+\loadcorefile{lang-ger}
+\loadcorefile{lang-ita}
+\loadcorefile{lang-sla}
+\loadcorefile{lang-alt}
+\loadcorefile{lang-ana}
+\loadcorefile{lang-art}
+\loadcorefile{lang-bal}
+\loadcorefile{lang-cel}
+\loadcorefile{lang-grk}
+\loadcorefile{lang-ind}
+\loadcorefile{lang-ura}
+\loadcorefile{lang-vn}
+\loadcorefile{lang-cyr}
+
+\loadmarkfile{lang-ara}
+\loadmarkfile{lang-cjk}
+
+\loadmarkfile{symb-ini}
+
+\loadmarkfile{sort-ini}
+
+\loadmarkfile{pack-rul}
+
+\loadmarkfile{lxml-ini}
+
+\loadmarkfile{strc-ini}
+\loadmarkfile{strc-doc}
+\loadmarkfile{strc-mar}
+\loadmarkfile{strc-prc}
+\loadmarkfile{strc-sbe}
+\loadmarkfile{strc-lst}
+\loadmarkfile{strc-sec}
+\loadmarkfile{strc-num}
+\loadmarkfile{strc-ren}
+\loadmarkfile{strc-xml}
+\loadmarkfile{strc-pag} % hm, depends on core-num
+\loadmarkfile{strc-def} % might happen later
+\loadmarkfile{strc-ref}
+\loadmarkfile{strc-reg}
+
+\loadmarkfile{bibl-bib}
+
+\loadmarkfile{core-spa}
+\loadmarkfile{core-grd}
+
+\loadmarkfile{anch-pos}
+
+\loadmarkfile{scrn-nav}
+\loadmarkfile{pack-obj}
+
+\loadmarkfile{strc-itm}
+\loadmarkfile{strc-des}
+\loadmarkfile{strc-syn}
+
+\loadmarkfile{core-sys}
+
+\loadmarkfile{page-ini}
+\loadmarkfile{page-bck}
+\loadmarkfile{page-not}
+\loadmarkfile{page-one}
+\loadmarkfile{page-lay}
+\loadmarkfile{page-txt}
+\loadmarkfile{page-sid}
+
+\loadmarkfile{strc-flt}
+
+\loadmarkfile{page-mis}
+\loadmarkfile{page-mul}
+\loadmarkfile{page-set}
+\loadmarkfile{pack-lyr}
+\loadmarkfile{page-mak}
+
+\loadmarkfile{page-lin}
+\loadmarkfile{page-par}
+\loadmarkfile{page-mar}
+
+\loadmarkfile{core-job} % why so late?
+
+\loadmarkfile{buff-ini}
+\loadmarkfile{buff-ver}
+
+\loadmarkfile{strc-blk}
+
+\loadmarkfile{page-imp}
+
+\loadmarkfile{scrn-int}
+\loadmarkfile{scrn-men}
+\loadmarkfile{scrn-but}
+\loadmarkfile{scrn-bar}
+\loadmarkfile{strc-bkm} % bookmarks
+
+\loadmarkfile{tabl-pln}
+\loadcorefile{thrd-tab}
+\loadmarkfile{tabl-tab}
+\loadmarkfile{tabl-tbl}
+\loadmarkfile{tabl-ntb}
+\loadmarkfile{tabl-nte}
+\loadmarkfile{tabl-ltb}
+\loadmarkfile{tabl-tsp}
+
+\loadmarkfile{java-ini}
+
+\loadmarkfile{scrn-fld}
+\loadmarkfile{scrn-hlp}
+
+\loadmarkfile{char-enc}
+\loadmarkfile{font-ini}
+\loadmarkfile{font-unk}
+\loadmarkfile{font-tra}
+\loadmarkfile{font-uni}
+\loadmarkfile{font-col}
+
+\loadmarkfile{typo-spa}
+\loadmarkfile{typo-krn}
+\loadmarkfile{typo-mir}
+\loadmarkfile{typo-brk}
+\loadmarkfile{typo-cap}
+
+\loadmarkfile{type-ini}
+\loadcorefile{type-def}
+
+\loadmarkfile{scrp-ini}
+
+\loadmarkfile{prop-ini}
+\loadmarkfile{prop-lay}
+\loadmarkfile{prop-mis}
+
+\loadmarkfile{mlib-ctx}
+\loadmarkfile{mlib-pdf}
+\loadmarkfile{mlib-pps}
+
+\loadmarkfile{meta-ini}
+\loadmarkfile{meta-tex}
+\loadmarkfile{meta-pdf}
+\loadmarkfile{meta-fun}
+
+\loadmarkfile{meta-pag}
+
+\loadmarkfile{page-flw}
+\loadmarkfile{page-spr}
+\loadmarkfile{page-plg}
+\loadmarkfile{page-str}
+
+\loadmarkfile{anch-pgr} % overloads tabl-tbl
+\loadmarkfile{anch-bar}
+\loadmarkfile{anch-snc}
+
+\loadmarkfile{math-ini}
+\loadmarkfile{math-pln}
+\loadmarkfile{math-for}
+\loadmarkfile{math-def}
+\loadmarkfile{math-ali}
+\loadmarkfile{math-arr}
+\loadmarkfile{math-frc}
+\loadmarkfile{math-scr}
+\loadmarkfile{math-int}
+\loadmarkfile{math-del}
+\loadmarkfile{math-inl}
+\loadmarkfile{math-dis}
+
+\loadmarkfile{strc-mat}
+
+\loadmarkfile{chem-ini}
+\loadmarkfile{chem-str}
+
+\loadmarkfile{core-fnt}
+
+\loadmarkfile{strc-not}
+\loadmarkfile{strc-lnt}
+
+\loadmarkfile{core-mis}
+
+\loadmarkfile{grph-trf}
+\loadmarkfile{grph-inc}
+\loadmarkfile{grph-fig}
+
+\loadmarkfile{pack-box}
+\loadmarkfile{pack-bar}
+\loadmarkfile{page-app}
+\loadmarkfile{meta-fig}
+
+\loadcorefile{lang-spa}
+
+\loadcorefile{xtag-ini} % might go away
+\loadcorefile{xtag-ext} % might go away
+\loadcorefile{xtag-exp} % will go away
+\loadcorefile{xtag-pre} % has old encoding code
+\loadcorefile{xtag-xsd} % will go away (stub anyway)
+\loadcorefile{xtag-rng} % will go away (stub anyway)
+
+\loadcorefile{meta-xml}
+
+\loadcorefile{cont-log}
+
+\loadmarkfile{task-ini}
+
+\loadmarkfile{core-ctx}
+
+\loadmarkfile{core-ini}
+\loadmarkfile{core-def}
+
+%usemodule[x][res-04] % xml resource libraries
+%usemodule[x][res-08] % rlx runtime conversion
+%usemodule[x][res-12] % rli external indentification
+
+\unprotect
+
+\setupcurrentlanguage[\s!en]
+
+\prependtoks
+ \ctxlua{statistics.starttiming(ctx)}%
+\to \everyjob
+
+\appendtoks
+ \ctxlua{statistics.stoptiming(ctx)}%
+\to \everyjob
+
+\appendtoks
+ \writestatus\m!lua{used config path - \ctxlua{tex.print(caches.configpath())}}%
+ \writestatus\m!lua{used cache path - \ctxlua{tex.print(caches.path)}}%
+\to \everydump
+
+\appendtoks
+ \ctxlua {
+ statistics.report_storage("log")
+ statistics.save_fmt_status("\jobname","\contextversion","context.tex")
+ }%
+\to \everydump
+
+\protect \errorstopmode \dump \endinput
diff --git a/Master/texmf-dist/tex/context/base/context.rme b/Master/texmf-dist/tex/context/base/context.rme
new file mode 100644
index 00000000000..1b1e4890258
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/context.rme
@@ -0,0 +1,85 @@
+Some Basic information
+----------------------
+
+There are currently three interfaces available:
+
+ cont-en the english version
+ cont-de the german version
+ cont-nl the dutch version
+ cont-cz the czech version
+ cont-ro the romanian version
+ cont-it the italian version
+
+One should compile one of these (or all) into a fmt file.
+When one uses the main file,
+
+ context the undefined version
+
+TeX ask for an interface language as well as a message
+language. Here one has to specify the full name (english,
+german, dutch, etc.) or use the default (enter). The \
+savest way to update the TeX and MetaPost format files
+is to use TeXExec:
+
+texexec --make --alone en nl metafun
+
+In the TeXExec manual you can read how to generate a format
+with specific fonts and patterns.
+
+By default only the english hyphenation patterns are loaded,
+unless more are enabled in:
+
+ cont-usr the typesetting language specifications
+
+Furthermore, users can preset commands etc in the file
+
+ cont-sys a system file loaded at runtime
+
+For questions and remarks on ConTeXt, one can subscribe to
+the list:
+
+ ntg-context@ntg.nl
+
+by sending the message
+
+ subscribe ntg-context
+
+to the list server:
+
+ majordomo@ntg.nl
+
+One can find more info at:
+
+ www.pragma-ade.com
+
+or at the mirror sites mentioned there.
+
+Don't hesitate to ask questions. ConTeXt can do a lot, and
+the manuals are always a bit behind and incomplete. Also take
+a look at the files
+
+ mreadme.pdf
+ minstall.pdf
+ mtexexec.pdf
+ mtexutil.pdf
+
+The teTeX, fpTeX, and 4TeX distributions demonstrate how
+ConTeXt can be integrated in a TeX directory structure.
+
+-------------------------
+
+functionality removed from mkiv:
+
+page-log : layers can do teh same and are more flexible
+core-dat : just use lua for database purposes
+core-swd : this was a temporary solution
+
+functionality changed in mkii and mkiv:
+
+xtag-map : no longer preloaded
+xtag-stk : no longer preloaded
+xtag-prs : no longer preloaded
+
+-------------------------
+
+Hans Hagen, pragma@wxs.nl
diff --git a/Master/texmf-dist/tex/context/base/context.tex b/Master/texmf-dist/tex/context/base/context.tex
index e6959c9b4e5..5f9615230f0 100644
--- a/Master/texmf-dist/tex/context/base/context.tex
+++ b/Master/texmf-dist/tex/context/base/context.tex
@@ -11,30 +11,8 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-% dec 07 2001 : cont-en.efmt : 4,035,912
-% aug 07 2004 : cont-en.efmt : 4,928,967 (5 more patterns)
-% aug 31 2006 : cont-en.fmt : 7,048,748 (all patterns)
-
-% todo 1: each module english commands
-% todo 2: replace lowlevel *!* by english variants
-% todo 3: make files more independent
-% todo 4: cleanup specials + adapt interface
-% todo 5: remove/replace old stuff (by new stuff, like couplepaper)
-% todo 6: create even more hooks (so that users can overload)
-% todo 7: conditionals
-% todo 8: redesign tui/tuo
-
\catcode`\{=1 \catcode`\}=2 \catcode`\#=6
-%D For many years \CONTEXT\ supported both good old \TEX\ and \ETEX, but
-%D the time has come (August 2006) to advance, especially now that all
-%D engines provide \ETEX\ functionality and more is on the horizon.
-
-\ifx\eTeXversion\undefined
- \immediate\write16{SORRY CONTEXT NOW NEEDS ETEX}
- \expandafter \end
-\fi
-
%D From the next string (which is set by the script that assembles the
%D distribution) later on we will calculate a number that can be used
%D by use modules to identify the feature level. Starting with version
@@ -42,12 +20,12 @@
%D your styles an modules.
\edef\contextformat {\jobname}
-\edef\contextversion{2008.05.21 15:21}
+\edef\contextversion{2009.08.19 17:10}
%D For those who want to use this:
-\def\fmtname {context}
-\def\fmtversion{3.1415926}
+\let\fmtname \contextformat
+\let\fmtversion\contextversion
\let\showcontextbanner\relax
@@ -66,30 +44,10 @@
\ifx\normalinput\undefined \let\normalinput\input \fi
-% trick:
+%D We have two versions, one for \PDFTEX\ and \XETEX, and one for
+%D \LUATEX.
-\ifx\directlua\undefined
- \chardef\contextmarkmode = 2
-\else
- \chardef\contextmarkmode = \directlua 0 { do
- if arg then
- local mkii = 4
- for k,v in pairs(arg) do
- if v == "--mkii" then mkii = 2 break end
- end
- tex.sprint(mkii)
- else
- tex.sprint(2)
- end
- end }
- % \ifnum\contextmarkmode=2
- % \immediate\write16{}
- % \immediate\write16{>> Quitting LuaTeX, test mode only! <<}
- % \immediate\write16{}
- % \def\next{\errorstopmode \dump \endinput}
- % \expandafter \expandafter \expandafter \next
- % \fi
-\fi
+\chardef\contextmarkmode = \ifx\directlua\undefined 2 \else 4 \fi
\def\loadcorefile#1{\normalinput#1\relax}
\def\loadmarkfile#1{\normalinput#1.\mksuffix\relax}
@@ -112,7 +70,7 @@
%D dutch version of \CONTEXT, supplying \type {english} will of
%D course end op in a english version.
%D
-%D Another option is to use \TEXEXEC:
+%D Another option is to use \TEXEXEC\ (for \MKII):
%D
%D \starttyping
%D texexec --make [--alone] [--engine] [--all]
@@ -120,6 +78,13 @@
%D \stoptyping
%D
%D More information can be found in the \TEXEXEC\ manual.
+%D
+%D For \MKIV\ you have to do:
+%D
+%D \starttyping
+%D luatools --generate
+%D context --make en nl ...
+%D \stoptyping
%D When you write modules (or extensions) you should avoid
%D conflicts with existing macro names and mechanisms. If you are
@@ -143,514 +108,9 @@
%D mailing list (ntg-context@ntg.nl). Much additional information
%D can be found at the PRAGMA website (www.pragma-ade.com).
-%D First we load the system modules. These implement a lot of
-%D manipulation macros. The first one loads \PLAIN\ \TEX, as
-%D minimal as possible.
-
-\loadcorefile{syst-pln.tex}
-\loadcorefile{syst-prm.tex}
-
-\loadmkivfile{luat-env.tex}
-\loadmkivfile{luat-lib.tex}
-\loadcorefile{syst-cat.tex}
-
-\loadcorefile{syst-etx.tex}
-\loadcorefile{syst-pdt.tex}
-\loadcorefile{syst-omg.tex}
-\loadcorefile{syst-xtx.tex}
-\loadcorefile{syst-mtx.tex}
-
-\loadcorefile{syst-gen.tex}
-\loadcorefile{syst-ext.tex}
-\loadcorefile{syst-chr.tex}
-\loadcorefile{syst-fnt.tex}
-\loadcorefile{syst-new.tex}
-\loadcorefile{syst-con.tex}
-\loadcorefile{syst-var.tex}
-\loadcorefile{syst-str.tex}
-
-%loadcorefile{syst-tra.tex}
-
-\loadcorefile{syst-rtp.tex}
-
-%D To enable selective loading, we say:
-
-\CONTEXTtrue
-
-%D In order to conveniently load files, we need a few
-%D support modules.
-
-\loadcorefile{supp-ini.tex}
-\loadcorefile{supp-fil.tex}
-\loadcorefile{supp-dir.tex}
-
-%D After this we're ready for the multi||lingual interface
-%D modules.
-
-\loadcorefile{mult-ini.tex}
-\loadcorefile{mult-fst.tex}
-\loadcorefile{mult-sys.tex}
-\loadcorefile{mult-con.tex}
-\loadcorefile{mult-com.tex}
-
-\loadmkivfile{luat-ini.tex}
-%loadmkivfile{luat-lib.tex}
-\loadmkivfile{luat-lmx.tex}
-
-\loadmkivfile{luat-uni.tex}
-
-\loadmkivfile{char-ini.tex}
-\loadmkivfile{char-def.tex}
-\loadmkivfile{char-utf.tex}
-
-\loadmkivfile{toks-ini.tex}
-
-\loadmkivfile{attr-ini.tex}
-\loadmkivfile{node-ini.tex}
-
-%D We also use some third party macros. These are loaded by
-%D saying:
-
-\loadcorefile{thrd-ran.tex} % based on: Donald Arseneau
-\loadcorefile{thrd-trg.tex} % based on: David Carlisle
-
-%D Now we're ready for some general support modules. These
-%D modules implement some basic typesetting functionality.
-
-\loadcorefile{core-var.tex}
-\loadmkivfile{luat-deb.tex}
-
-\loadcorefile{supp-box.tex}
-\loadcorefile{supp-mrk.tex}
-\loadcorefile{supp-vis.tex}
-\loadcorefile{supp-fun.tex}
-%loadcorefile{supp-eps.tex}
-\loadcorefile{supp-spe.tex}
-\loadcorefile{supp-ran.tex}
-%loadcorefile{supp-mps.tex}
-\loadmkiifile{supp-mps.tex}
-\loadmkiifile{supp-tpi.tex}
-\loadcorefile{supp-mat.tex}
-\loadcorefile{supp-ali.tex}
-\loadcorefile{supp-num.tex}
-
-%D The next module deals with language specific typographic
-%D extensions.
-
-\loadcorefile{typo-ini.tex}
-
-%D Verbatim typesetting is implemented in a separate class of
-%D modules. The pretty typesetting modules are loaded at run
-%D time.
-
-\loadcorefile{verb-ini.tex}
-
-%D The following modules are not sequentially dependent,
-%D i.e. they have ugly dependencies, which will be cleaned
-%D up by adding more overloading.
-
-%D When loading the font, color and special modules, we need a
-%D bit more advanced file handling as well as some general
-%D variables, and features, so next we load:
-
-\loadcorefile{core-ins.tex}
-\loadcorefile{core-fil.tex}
-\loadcorefile{core-con.tex}
-
-%D We already need some synonyms (patterns). At runtime this
-%D file will be reloaded.
-
-\loadcorefile{cont-fil.tex}
-
-%D \CONTEXT\ does not implement its own table handling. We
-%D just go for the best there is and load \TABLE. Just to be
-%D sure we do it here, before we redefine \type{|}.
-
-\loadcorefile{thrd-tab.tex} % based on: Michael Wichura / will be reimplemented
-
-%D Here comes the last support modules. They take care of
-%D some language specific things.
-
-%loadcorefile{supp-lan.tex} % replaced by lang-mis
-\loadcorefile{supp-pat.tex}
-
-%D The next few modules do what their names state. They
-%D load additional definition modules when needed.
-
-\loadcorefile{regi-ini.tex}
-\loadcorefile{enco-ini.tex}
-\loadcorefile{filt-ini.tex}
-\loadcorefile{hand-ini.tex}
-\loadcorefile{regi-syn.tex}
-\loadcorefile{lang-ini.tex}
-\loadcorefile{lang-ctx.tex}
-\loadcorefile{lang-dis.tex}
-
-\loadmarkfile{unic-ini}
-
-% \readfile{lang-url.pat}{}{} % test
-
-\loadcorefile{core-gen.tex}
-\loadcorefile{core-new.tex}
-\loadcorefile{core-uti.tex}
-\loadcorefile{core-two.tex}
-\loadcorefile{core-stg.tex}
-
-\loadcorefile{spec-mis.tex}
-\loadcorefile{spec-ini.tex}
-\loadcorefile{spec-def.tex}
-\loadcorefile{spec-var.tex}
-
-\doiffileelse{colo-new.tex}{\loadcorefile{colo-new.tex}}{\loadcorefile{colo-ini.tex}}
-\loadcorefile{colo-ext.tex}
-
-%D For the moment we load a lot of languages. In the future
-%D we'll have to be more space conservative.
-
-\loadcorefile{lang-mis.tex}
-\loadcorefile{lang-url.tex}
-\loadcorefile{lang-spe.tex}
-\loadcorefile{lang-lab.tex}
-
-\loadcorefile{lang-ger.tex}
-\loadcorefile{lang-ita.tex}
-\loadcorefile{lang-sla.tex}
-
-\loadcorefile{lang-alt.tex}
-\loadcorefile{lang-ana.tex}
-\loadcorefile{lang-art.tex}
-\loadcorefile{lang-bal.tex}
-\loadcorefile{lang-cel.tex}
-\loadcorefile{lang-grk.tex}
-\loadcorefile{lang-ind.tex}
-\loadcorefile{lang-ura.tex}
-
-\loadcorefile{lang-vn.tex}
-
-%D All kind of symbols are handled in:
-
-\loadcorefile{symb-ini.tex}
-
-%D Sorting:
-
-\loadcorefile{sort-ini.tex}
-
-%D Next we load some core macro's. These implement the
-%D macros' that are seen by the users. The order of loading
-%D is important, due to dependancies.
-
-\loadcorefile{core-spa.tex}
-\loadcorefile{core-grd.tex}
-\loadcorefile{core-mar.tex}
-\loadcorefile{core-pos.tex}
-\loadcorefile{core-mak.tex}
-\loadcorefile{core-dat.tex}
-\loadcorefile{core-ver.tex}
-\loadcorefile{core-rul.tex}
-\loadcorefile{core-vis.tex}
-\loadcorefile{core-num.tex}
-\loadcorefile{core-tsp.tex}
-\loadcorefile{core-tab.tex}
-\loadcorefile{core-nav.tex}
-\loadcorefile{core-ref.tex}
-\loadcorefile{core-obj.tex}
-\loadcorefile{core-lst.tex}
-\loadcorefile{core-itm.tex}
-\loadcorefile{core-des.tex}
-\loadcorefile{core-mat.tex}
-\loadcorefile{core-syn.tex}
-\loadcorefile{core-sys.tex}
-
-\loadcorefile{page-ini.tex}
-\loadcorefile{page-bck.tex}
-\loadcorefile{page-not.tex}
-\loadcorefile{page-one.tex}
-\loadcorefile{page-lay.tex}
-\loadcorefile{page-log.tex}
-\loadcorefile{page-txt.tex}
-\loadcorefile{page-sid.tex}
-\loadcorefile{page-flt.tex}
-\loadcorefile{page-mul.tex}
-\loadcorefile{page-set.tex}
-\loadcorefile{page-lyr.tex}
-\loadcorefile{page-mak.tex}
-\loadcorefile{page-num.tex}
-\loadmarkfile{page-lin}
-\loadcorefile{page-par.tex}
-\loadcorefile{page-mar.tex}
-
-\loadcorefile{core-job.tex} % why so late?
-
-% so far
-
-\loadcorefile{core-sec.tex}
-\loadcorefile{core-swd.tex}
-\loadcorefile{core-buf.tex}
-\loadcorefile{core-blk.tex}
-\loadcorefile{page-imp.tex}
-\loadcorefile{core-tbl.tex}
-\loadcorefile{core-int.tex}
-\loadcorefile{core-ntb.tex}
-\loadcorefile{core-ltb.tex}
-
-%D A few more languages, that have specifics using core
-%D functionality:
-
-\loadcorefile{lang-chi.tex}
-\loadcorefile{lang-jap.tex}
-
-%D How about fill||in fields and related stuff?
-
-\loadcorefile{java-ini.tex}
-\loadcorefile{core-fld.tex}
-\loadcorefile{core-hlp.tex}
-
-%D Registers can depend on fields, so we load that now.
-
-\loadcorefile{core-reg.tex}
-
-%D Of course we do need fonts. There are no \TFM\ files
-%D loaded yet, so the format file is independant of their
-%D content. Here we also redefine \type{\it} as {\it italic}
-%D instead of italian.
-
-% \loadmkivfile{font-set.tex} -- experimental but now obsolete
-
-\loadcorefile{font-ini.tex}
-\loadcorefile{font-uni.tex}
-\loadcorefile{font-bfm.tex}
-
-\loadcorefile{enco-pfr.tex}
-
-%loadmkiifile{pdfr-def.tex} -- dvi/pdf bugged, must be done runtime anyway
-
-\loadcorefile{type-ini.tex}
-\loadcorefile{type-def.tex}
-
-%D Properties. Don't ask.
-
-\loadcorefile{prop-ini.tex}
-\loadcorefile{prop-lay.tex}
-\loadcorefile{prop-mis.tex}
-
-%D Like languages, fonts, encodings and symbols, \METAPOST\
-%D support is also organized in its own class of modules.
-
-\loadmkivfile{mlib-ctx.tex}
-\loadmkivfile{mlib-pdf.tex}
-\loadmkivfile{mlib-pps.tex}
-
-\loadmarkfile{meta-ini}
-\loadmarkfile{meta-tex}
-
-\loadcorefile{meta-pdf.tex}
-\loadcorefile{meta-pag.tex}
-
-%D Special page handling (maybe even later)
-
-\loadcorefile{page-flw.tex}
-\loadcorefile{page-spr.tex}
-\loadcorefile{page-plg.tex}
-\loadcorefile{page-str.tex}
-
-%D Hm.
-
-\loadcorefile{core-pgr.tex}
-\loadcorefile{core-bar.tex}
-\loadcorefile{core-snc.tex}
-
-
-%D Math.
-
-\loadcorefile{math-pln.tex}
-\loadcorefile{math-ini.tex}
-\loadcorefile{math-ext.tex}
-
-%D Now we're ready for more core modules.
+%D We now go either the \MKII\ or \MKIV\ route:
-\loadcorefile{core-fnt.tex}
-\loadcorefile{core-not.tex}
-\loadcorefile{core-lnt.tex}
-
-\loadcorefile{core-mis.tex}
-
-\loadcorefile{core-trf.tex}
-\loadcorefile{core-inc.tex}
-\loadcorefile{core-fig.tex}
-\loadcorefile{core-par.tex}
-
-\loadcorefile{core-box.tex}
-\loadcorefile{page-app.tex}
-\loadmarkfile{meta-fig}
-
-%D Language specific spacing.
-
-\loadcorefile{lang-spa.tex}
-
-%D Only the basic XML parser and remapper are part of the core.
-%D These macros are loaded last since they overload and|/|or
-%D extend previously defined ones.
-
-\loadmkivfile{lxml-ini.tex}
-
-\loadcorefile{xtag-ini.tex}
-\loadcorefile{xtag-ext.tex}
-\loadcorefile{xtag-prs.tex}
-\loadcorefile{xtag-map.tex}
-\loadcorefile{xtag-stk.tex}
-\loadcorefile{xtag-exp.tex}
-\loadcorefile{xtag-pre.tex}
-\loadcorefile{xtag-xsd.tex}
-\loadcorefile{xtag-rng.tex}
-%loadcorefile{xtag-ent.tex}
-
-%D How about this:
-
-\loadcorefile{meta-xml.tex}
-
-%D \TEX\ related logo's are always typeset in a special way.
-%D Here they come:
-
-\loadcorefile{cont-log.tex}
-
-%D This one overloads af few things:
-
-\loadcorefile{core-ctx.tex}
-
-%D Defaults go here (more will be moved to this module
-%D later):
-
-\loadcorefile{core-lme.tex}
-\loadcorefile{core-ini.tex}
-\loadcorefile{core-def.tex}
-
-%D Preloaded modules (some need xml support):
-
-%usemodule[x][res-04] % xml resource libraries
-%usemodule[x][res-08] % rlx runtime conversion
-\usemodule[x][res-12] % rli external indentification
-
-%D At run time, a few more files are loaded, like:
-%D
-%D \startitemize[packed]
-%D \item \type{cont-sys}: local (system dependant) defaults
-%D \item \type{cont-old}: substitutes for old (obsolete) macros
-%D \item \type{cont-new}: new macro implementations (for testing)
-%D \item \type{cont-fil}: filename and module synonyms
-%D \stopitemize
-
-%D Just to keep the user busy for a while, we say:
-
-\iffalse
-
-\startinterface english
-
-\writebanner{This package is based on Plain TeX. It uses an adapted version of the}
-\writebanner{extended mark mechanism of J. Fox (1987) and a few parts of the sidefloat}
-\writebanner{mechanism of D. Comenetz (1993). Most of D.E. Knuth's Plain TeX}
-\writebanner{(\fmtversion) is available and can be used without problems. This package}
-\writebanner{uses TaBlE, a package designed and copyrighted by M.J. Wichura (1988).}
-\writebanner{Only a few auxiliary files are generated, of which some must be processed}
-\writebanner{by TeXExec.}
-
-\stopinterface
-
-\startinterface dutch
-
-\writebanner{Dit pakket is gebaseerd op Plain TeX. Er wordt gebruik gemaakt van een}
-\writebanner{aangepaste versie van het mark mechanisme van J. Fox (1987) en onderdelen}
-\writebanner{van het sidefloat mechanisme van D. Comenetz (1993). De functionaliteit}
-\writebanner{van D.E. Knuth's Plain TeX (\fmtversion) is grotendeels beschikbaar en}
-\writebanner{kan zonder problemen worden gebruikt. Dit pakket gebruikt TaBlE, ontworpen door}
-\writebanner{M.J. Wichura (1988), die ook het auteursrecht bezit. Er worden slechts een}
-\writebanner{paar hulpfiles gegenereerd, waarvan er enkele moeten worden bewerkt door}
-\writebanner{TeXExec.}
-
-\stopinterface
-
-\startinterface german
-
-\writebanner{Dieses Paket basiert auf Plain-TeX und benutzt eine angepasste Version}
-\writebanner{des erweiterten mark-Mechanismus von J. Fox (1987) und einige Teile des}
-\writebanner{sidefloat-Mechanismus von D. Comenetz (1993). Ein Grossteil D.E. Knuths}
-\writebanner{Plain-TeX (\fmtversion) ist verfuegbar und kann ohne Probleme benutzt werden.}
-\writebanner{Dieses Paket benutzt TaBlE, ein von M.J. Wichura (1988) erstelltes und}
-\writebanner{geschuetztes Paket. Nur einige Hilfsdateien werden erstellt; einige davon}
-\writebanner{muessen von TeXExec bearbeitet werden.}
-
-\stopinterface
-
-\startinterface czech
-
-\writebanner{Tento balik je zalozen na Plain TeXu. Pouziva prizpusobenou verzi}
-\writebanner{rozsireneho znackovaciho mechanismu J. Foxe (1987) a nekolik casti}
-\writebanner{sidefloat mechanismu D. Comenetze (1993). Vetsina prikazu Plain TeXu}
-\writebanner{D. E. Knutha (\fmtversion) je dostupna a muze byt bez problemu pouzita.}
-\writebanner{Tento balik pouziva balik TaBlE, ktery vytvoril M. J. Wichura (1988).}
-\writebanner{Je generovano jen nekolik pomocnych souboru, z nichz nektere musi byt}
-\writebanner{zpracovany programem TeXExec.}
-
-\stopinterface
-
-\startinterface italian
-
-\writebanner{Questo pacchetto è basato sul Plain TeX. Usa una versione adattata del}
-\writebanner{meccanismo di marcatura esteso di J. Fox (1987) ad alcune parti del}
-\writebanner{meccanismo per gli oggetti mobili laterali di D. Comenetz (1993).}
-\writebanner{La maggior parte del Plain TeX (\fmtversion) di D.E. Knuth è disponibile}
-\writebanner{e può essere usata senza problemi. Questo pacchetto usa TaBlE,}
-\writebanner{un pacchetto progettato da e con diritti di copia di M.J. Wichura (1988).}
-\writebanner{Vengono generati pochi file ausiliari, alcuni dei quali devono essere}
-\writebanner{elaborati da TeXExec.}
-
-\stopinterface
-
-\startinterface romanian
-
-\writebanner{Acest pachet este bazat pe Plain TeX. Foloseste o versiune adaptata a}
-\writebanner{mecanismului extins de marcare a lui J. Fox (1987) si cateva parti a mecanismului }
-\writebanner{blocurilor marginale a lui D. Comenetz (1993). Cea mai mare parte a Plain Tex}
-\writebanner{(\fmtversion) a lui D.E. Knuth este disponibila si poate fi folosita fara probleme.}
-\writebanner{Acest pachet foloseste TaBlE, un pachet proiectat si creat de M.J. Wichura (1988).}
-\writebanner{Numai un numar de fisiere auxiliare sunt generate, din care unele trebuie procesate}
-\writebanner{de catre TeXExec.}
-
-\stopinterface
-
-\startinterface french
-
-\writebanner{Ce package est basé sur Plain TeX. Il utilise une version modifiée du}
-\writebanner{mécanisme de marquage étendu de J. Fox (1987) et une partie du}
-\writebanner{mécanisme de placement latéral des flottants de D. Comenetz (1993). La}
-\writebanner{majeure partie de Plain TeX (\fmtversion) de D.E. Knuth est disponible}
-\writebanner{et peut être utilisée sans problèmes. Ce package utilise TaBlE, un}
-\writebanner{package conçu et copyrighté par M.J. Wichura (1988). Seul quelques}
-\writebanner{fichiers auxiliaire sont générés, dont certains doivent être traités}
-\writebanner{par TeXExec.}
-
-\stopinterface
-
-\edef\copyrightversion
- {Copyright 1990-\the\normalyear\normalspace /
- PRAGMA ADE / J. Hagen - A.F. Otten}
-
-\writeline\writebanner{\copyrightversion}\writeline
-
-\fi
-
-\unprotect
-\beginLUATEX
- \appendtoks
- \writestatus\m!lua{used config path - \ctxlua{tex.print(caches.configpath(texmf.instance))}}%
- \writestatus\m!lua{used cache path - \ctxlua{tex.print(caches.path)}}%
- \to \everydump
-\endLUATEX
-\protect
-
-% %D Except from english, no hyphenation patterns are loaded
-% %D yet. Users can specify their needs in the next module:
-%
-% \input cont-usr.tex
+\loadmarkfile{context}
%D Let's quit this file when doing a \type {cont-..} generation.
@@ -668,16 +128,14 @@
\unprotect
-\installlanguage [\s!en] [\c!state=\v!start]
+\installlanguage [\s!us] [\c!state=\v!start]
\startinterface english
-
- \installlanguage [\s!uk] [\c!state=\v!start]
-
+ \installlanguage [\s!gb] [\c!state=\v!start]
\stopinterface
-\appendtoks \language [\s!en] \to \everyjob
-\appendtoks \mainlanguage [\s!en] \to \everyjob
+\appendtoks \language [\s!us] \to \everyjob
+\appendtoks \mainlanguage [\s!us] \to \everyjob
\startinterface german
@@ -699,10 +157,10 @@
\startinterface czech
- \installlanguage [\s!cz] [\c!state=\v!start]
+ \installlanguage [\s!cs] [\c!state=\v!start]
- \appendtoks \language [\s!cz] \to \everyjob
- \appendtoks \mainlanguage [\s!cz] \to \everyjob
+ \appendtoks \language [\s!cs] \to \everyjob
+ \appendtoks \mainlanguage [\s!cs] \to \everyjob
\stopinterface
@@ -733,11 +191,24 @@
\stopinterface
+\startinterface persian
+
+ \installlanguage [\s!pe] [\c!state=\v!start]
+
+ \appendtoks \language [\s!pe] \to \everyjob
+ \appendtoks \mainlanguage [\s!pe] \to \everyjob
+
+\stopinterface
+
\protect
%D Finally we (pre)load some fonts.
-\setupbodyfont [cmr,rm,12pt]
+\setupencoding[default=ec]
+
+\usetypescript[fallback][\defaultencoding]
+
+\setupbodyfont[rm,12pt]
%D The next hook can be used to generate a local (extended)
%D format. This file is only searched for at the current
diff --git a/Master/texmf-dist/tex/context/base/core-buf.lua b/Master/texmf-dist/tex/context/base/core-buf.lua
deleted file mode 100644
index 7c0164cf555..00000000000
--- a/Master/texmf-dist/tex/context/base/core-buf.lua
+++ /dev/null
@@ -1,471 +0,0 @@
--- filename : core-buf.lua
--- comment : companion to core-buf.tex
--- author : Hans Hagen, PRAGMA-ADE, Hasselt NL
--- copyright: PRAGMA ADE / ConTeXt Development Team
--- license : see context related readme files
-
--- ctx lua reference model / hooks and such
--- to be optimized
-
--- redefine buffers.get
-
-if not versions then versions = { } end versions['core-buf'] = 1.001
-
-if unicode and not utf then utf = unicode.utf8 end
-
-buffers = { }
-buffers.data = { }
-buffers.hooks = { }
-buffers.flags = { }
-buffers.commands = { }
-
--- if needed we can make 'm local
-
-local concat, texsprint, texprint = table.concat, tex.sprint, tex.print
-
-function buffers.erase(name)
- buffers.data[name] = nil
-end
-
-function buffers.set(name, str)
- buffers.data[name] = { str } -- CHECK THIS
-end
-
-function buffers.append(name, str)
- buffers.data[name] = (buffers.data[name] or "") .. str
-end
-
-buffers.flags.store_as_table = true
-
--- to be sorted out: crlf + \ ; slow now
-
-function buffers.grab(name,begintag,endtag,data)
- if not buffers.data[name] or buffers.data[name] == "" then
- buffers.data[name] = ""
- buffers.level = 0
- end
- buffers.level = buffers.level + data:count("\\"..begintag) - data:count("\\"..endtag)
- local more = buffers.level>0
- if more then
- buffers.data[name] = buffers.data[name] .. data .. endtag
- buffers.level = buffers.level - 1
- else
- if buffers.data[name] == "" then
- buffers.data[name] = data:sub(1,#data-1)
- else
- buffers.data[name] = buffers.data[name] .. "\n" .. data:sub(1,#data-1)
- end
- buffers.data[name] = buffers.data[name]:gsub("[\010\013]$","")
- if buffers.flags.store_as_table then
- buffers.data[name] = buffers.data[name]:splitlines()
- end
- end
- cs.testcase(more)
-end
-
-function buffers.exists(name)
- return buffers.data[name] ~= nil
-end
-
-function buffers.doifelsebuffer(name)
- cs.testcase(buffers.data[name] ~= nil)
-end
-
-buffers.flags.optimize_verbatim = true
-buffers.flags.count_empty_lines = false
-
-buffers.commands.no_break = "\\doverbatimnobreak"
-buffers.commands.do_break = "\\doverbatimgoodbreak"
-buffers.commands.begin_of_line_command = "\\doverbatimbeginofline"
-buffers.commands.end_of_line_command = "\\doverbatimendofline"
-buffers.commands.empty_line_command = "\\doverbatimemptyline"
-
-function buffers.verbatimbreak(n,m)
- if buffers.flags.optimize_verbatim then
- if n == 2 or n == m then
- texsprint(buffers.commands.no_break)
- else
- texsprint(buffers.commands.do_break)
- end
- end
-end
-
-function buffers.strip(lines)
- local first, last = 1, #lines
- for i=first,last do
- if #lines[i] == 0 then
- first = first + 1
- else
- break
- end
- end
- for i=last,first,-1 do
- if #lines[i] == 0 then
- last = last - 1
- else
- break
- end
- end
- return first, last, last - first + 1
-end
-
-function buffers.type(name)
- local lines = buffers.data[name]
- local action = buffers.typeline
- if lines then
- if type(lines) == "string" then
- lines = lines:splitlines()
- end
- local line, n = 0, 0
- local first, last, m = buffers.strip(lines)
- for i=first,last do
- n, line = action(lines[i], n, m, line)
- end
- end
-end
-
---~ function buffers.typefile(name)
---~ local t = input.openfile(name)
---~ local action = buffers.typeline
---~ if t then
---~ local line, n, m = 0, 0, t.noflines
---~ while true do
---~ str = t.reader(t)
---~ if str then
---~ n, line = action(str, n, m, line)
---~ else
---~ break
---~ end
---~ end
---~ t.close()
---~ end
---~ end
-
-function buffers.typefile(name)
- local t = input.openfile(name)
- local action = buffers.typeline
- if t then
- local lines = { }
- while true do
- local str = t.reader()
- if str then
- lines[#lines+1] = str
- else
- break
- end
- end
- t.close()
- local line, n = 0, 0
- local first, last, m = buffers.strip(lines)
- for i=first,last do
- n, line = action(lines[i], n, m, line)
- end
- end
-end
-
-function buffers.typeline(str,n,m,line)
- n = n + 1
- buffers.verbatimbreak(n,m)
- if str:find("%S") then
- line = line + 1
- buffers.hooks.begin_of_line(line)
- buffers.hooks.flush_line(buffers.hooks.line(str))
- buffers.hooks.end_of_line()
- else
- if buffers.flags.count_empty_lines then
- line = line + 1
- end
- buffers.hooks.empty_line(line)
- end
- return n, line
-end
-
-function buffers.save(name)
- if not name or name == "" then
- name = tex.jobname
- end
- local b, f = buffers.data[name], tex.jobname .. "-" .. name .. ".tmp"
- b = (b and type(b) == "table" and table.join(b,"\n")) or b or ""
- io.savedata(f,b)
-end
-
--- todo, use more locals
-
-function buffers.get(name)
- local b = buffers.data[name]
- if b then
- if type(b) == "table" then
- for i=1,#b do
- texprint(b[i])
- end
- else
- string.piecewise(b, " *[\010\013]", texprint) -- hm, can be faster
- end
- end
-end
-
-function buffers.content(name) -- no print
- local b = buffers.data[name]
- if b then
- if type(b) == "table" then
- return concat(b," ")
- else
- return b
- end
- else
- return ""
- end
-end
-
-function buffers.collect(names,separator) -- no print
- local t = { }
- if type(names) == "table" then
- for i=1,#names do
- local c = buffers.content(names[i])
- if c ~= "" then
- t[#t+1] = c
- end
- end
- else
- for name in names:gmatch("[^,]+") do
- local c = buffers.content(name)
- if c ~= "" then
- t[#t+1] = c
- end
- end
- end
- return concat(t,separator or " ") -- maybe this will change to "\n"
-end
-
-function buffers.inspect(name)
- local b = buffers.data[name]
- if b then
- if type(b) == "table" then
- for _,v in ipairs(b) do
- if v == "" then
- texsprint(tex.ctxcatcodes,"[crlf]\\par ")
- else
- texsprint(tex.ctxcatcodes,(b:gsub("(.)",function(c)
- return " [" .. string.byte(c) .. "] "
- end)) .. "\\par")
- end
- end
- else
- texsprint(tex.ctxcatcodes,(b:gsub("(.)",function(c)
- return " [" .. string.byte(c) .. "] "
- end)))
- end
- end
-end
-
--- maybe just line(n,str) empty(n,str)
-
-buffers.visualizers = { }
-buffers.visualizers.default = { }
-buffers.visualizers.tex = { }
-buffers.visualizers.mp = { }
-
-buffers.visualizers.escapetoken = nil
-buffers.visualizers.tablength = 7
-
-buffers.visualizers.enabletab = false
-buffers.visualizers.enableescape = false
-
-function buffers.visualizers.reset()
- buffers.visualizers.enabletab = false
- buffers.visualizers.enableescape = false
- buffers.currentvisualizer = 'default'
-end
-
-buffers.currentvisualizer = 'default'
-
-function buffers.setvisualizer(str)
- buffers.currentvisualizer = string.lower(str)
- if not buffers.visualizers[buffers.currentvisualizer] then
- buffers.currentvisualizer = 'default'
- end
-end
-
-function buffers.doifelsevisualizer(str)
- cs.testcase((str ~= "") and (buffers.visualizers[string.lower(str)] ~= nil))
-end
-
--- calling routines, don't change
-
-function buffers.hooks.flush_line(str,nesting)
- if buffers.visualizers[buffers.currentvisualizer].flush_line then
- buffers.visualizers[buffers.currentvisualizer].flush_line(str,nesting)
---~ elseif nesting then
---~ buffers.visualizers.flush_nested(str,false) -- no real nesting
- else
- buffers.visualizers.default.flush_line(str,nesting)
- end
-end
-
-function buffers.hooks.begin_of_line(n)
- if buffers.visualizers[buffers.currentvisualizer].begin_of_line then
- buffers.visualizers[buffers.currentvisualizer].begin_of_line(n)
- else
- buffers.visualizers.default.begin_of_line(n)
- end
-end
-
-function buffers.hooks.end_of_line()
- if buffers.visualizers[buffers.currentvisualizer].end_of_line then
- buffers.visualizers[buffers.currentvisualizer].end_of_line()
- else
- buffers.visualizers.default.end_of_line(str)
- end
-end
-
-function buffers.hooks.empty_line()
- if buffers.visualizers[buffers.currentvisualizer].empty_line then
- buffers.visualizers[buffers.currentvisualizer].empty_line()
- else
- buffers.visualizers.default.empty_line()
- end
-end
-
-function buffers.hooks.line(str)
- if buffers.visualizers[buffers.currentvisualizer].line then
- return buffers.visualizers[buffers.currentvisualizer].line(str)
- else
- return buffers.visualizers.default.line(str)
- end
-end
-
--- defaults
-
-function buffers.visualizers.default.flush_line(str)
- texsprint(tex.ctxcatcodes,buffers.escaped(str))
-end
-
-function buffers.visualizers.default.begin_of_line(n)
- texsprint(tex.ctxcatcodes, buffers.commands.begin_of_line_command .. "{" .. n .. "}")
-end
-
-function buffers.visualizers.default.end_of_line()
- texsprint(tex.ctxcatcodes,buffers.commands.end_of_line_command)
-end
-
-function buffers.visualizers.default.empty_line()
- texsprint(tex.ctxcatcodes,buffers.commands.empty_line_command)
-end
-
-function buffers.visualizers.default.line(str)
- return str
-end
-
--- special one
-
-buffers.commands.nested = "\\switchslantedtype "
-
--- todo : utf + faster
-
-function buffers.visualizers.flush_nested(str, enable) -- no utf, kind of obsolete mess
- local result, c, nested, i = "", "", 0, 1
- local sb, ss, sf = string.byte, string.sub, string.find
- while i < #str do -- slow
- c = ss(str,i,i+1)
- if c == "<<" then
- nested = nested + 1
- if enable then
- result = result .. "{" .. buffers.commands.nested
- else
- result = result .. "{"
- end
- i = i + 2
- elseif c == ">>" then
- if nested > 0 then
- nested = nested - 1
- result = result .. "}"
- end
- i = i + 2
- else
- c = ss(str,i,i)
- if c == " " then
- result = result .. "\\obs "
- elseif sf(c,"%a") then
- result = result .. c
- else
- result = result .. "\\char" .. sb(c) .. " "
- end
- i = i + 1
- end
- end
- result = result .. "\\char" .. sb(ss(str,i,i)) .. " " .. string.rep("}",nested)
- texsprint(tex.ctxcatcodes,result)
-end
-
--- handy helpers
---
--- \sop[color] switch_of_pretty
--- \bop[color] begin_of_pretty
--- \eop end_of_pretty
--- \obs obeyedspace
--- \char <n> special characters
-
-buffers.currentcolors = { }
-
-function buffers.change_state(n, state, result)
- if n then
- if state ~= n then
- if state > 0 then
- result[#result+1] = "\\sop[" .. buffers.currentcolors[n] .. "]"
- else
- result[#result+1] = "\\bop[" .. buffers.currentcolors[n] .. "]"
- end
- return n
- end
- elseif state > 0 then
- result[#result+1] = "\\eop "
- return 0
- end
- return state
-end
-
-function buffers.finish_state(state, result)
- if state > 0 then
- result[#result+1] = "\\eop "
- return 0
- else
- return state
- end
-end
-
-buffers.open_nested = string.rep("\\char"..string.byte('<').." ",2)
-buffers.close_nested = string.rep("\\char"..string.byte('>').." ",2)
-
-function buffers.replace_nested(result)
- return (string.gsub(result:gsub(buffers.open_nested,"{"),buffers.close_nested,"}"))
-end
-
-function buffers.flush_result(result,nested)
- if nested then
- texsprint(tex.ctxcatcodes,buffers.replace_nested(concat(result,"")))
- else
- texsprint(tex.ctxcatcodes,concat(result,""))
- end
-end
-
-function buffers.escaped(str)
- local sb, sf = utf.byte, utf.find
- return (utf.gsub(str,"(.)", function(c)
- if sf(c,"^(%a%d)$") then
- return c
- elseif c == " " then
- return "\\obs "
- else
- return "\\char" .. sb(c) .. " "
- end
- end))
-end
-
-function buffers.escaped_chr(ch)
- local b = utf.byte(ch)
- if b == 32 then
- return "\\obs "
- else
- return "\\char" .. b .. " "
- end
-end
diff --git a/Master/texmf-dist/tex/context/base/core-buf.mkii b/Master/texmf-dist/tex/context/base/core-buf.mkii
deleted file mode 100644
index 8745155a139..00000000000
--- a/Master/texmf-dist/tex/context/base/core-buf.mkii
+++ /dev/null
@@ -1,144 +0,0 @@
-%D \module
-%D [ file=core-buf, % blocks are moved to core-blk
-%D version=2000.01.05,
-%D title=\CONTEXT\ Core Macros,
-%D subtitle=Buffers,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%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
-
-\def\mkresetbuffer
- {\unlinkfile{\TEXbufferfile\currentbuffer}}
-
-\long\def\mksetbuffer#1%
- {\edef\bufferfilename{\TEXbufferfile{\currentbuffer}}%
- \immediate\openout\tmpblocks\bufferfilename
- \defconvertedargument\ascii{#1}%
- \immediate\write\tmpblocks{\ascii}%
- \immediate\closeout\tmpblocks}
-
-\def\mkstartbuffer#1#2#3#4#5% ook grabben a la mkiv / no, we need to add par anchors
- {\doifelsenothing{#4}
- {\letbeundefined{\e!stop\v!buffer}% % \let\stopbuffer=\relax % \undefined
- \edefconvertedargument\beginofblock{\e!start\v!buffer}%
- \edefconvertedargument\endofblock {\e!stop \v!buffer}%
- \ifcase\buffernestmode
- \let\processnextbufferline\processnextbufferlineB
- \else
- \let\processnextbufferline\processnextbufferlineA
- \fi}
- {\letbeundefined{#4}% \letvalue{#4}=\relax % \undefined
- \@EA\defconvertedargument\@EA\beginofblock\@EA{\csname#3\endcsname}% we could use defconvertedcommand here (no \@EA)
- \@EA\defconvertedargument\@EA\endofblock \@EA{\csname#4\endcsname}% we could use defconvertedcommand here (no \@EA)
- \ifcase\buffernestmode
- \let\processnextbufferline\processnextbufferlineB
- \or
- \let\processnextbufferline\processnextbufferlineB
- \else
- \let\processnextbufferline\processnextbufferlineA
- \fi}%
- \def\closebufferfile
- {\ifsegmentatebuffer
- \immediate\write\tmpblocks{\string\stopbufferparagraph}%
- \fi
- \immediate\closeout\tmpblocks
- #5% \egroup
- \getvalue{#4}}%
- \doifelsenothing{#2}
- {\edef\bufferfilename{\TEXbufferfile\jobname}}%
- {\edef\bufferfilename{\TEXbufferfile{#2}}}%
- \immediate\openout\tmpblocks\bufferfilename
- \ifsegmentatebuffer
- \immediate\write\tmpblocks{\string\startbufferparagraph}%
- \fi
- \newcounter\nestedbufferlevel
- \recatcodeuppercharacterstrue
- \setcatcodetable\vrbcatcodes
- \obeylines
- \copybufferline}
-
-\def\mkdobuffer#1% command
- {\beginrestorecatcodes
- #1%
- \endrestorecatcodes}
-
-\def\mkgetbuffer {\readjobfile{\TEXbufferfile{\currentbuffer}}\donothing\donothing}
-\def\mktypebuffer{\typefile{\TEXbufferfile{\currentbuffer}}}
-
-% support macros
-
-% \expandafter \convertargument \gobbleoneargument @ \to \emptybufferline
-\edefconvertedargument\emptybufferline{ }
-
-\ifx\tmpblocks\undefined \newwrite\tmpblocks \fi
-
-\newif\iftmpblockstarted
-
-\def\flushbufferline#1%
- {\iftmpblockstarted
- \ifsegmentatebuffer
- \ifemptybufferline
- \immediate\write\tmpblocks{\string\stopbufferparagraph }%
- \immediate\write\tmpblocks{\string\startbufferparagraph}%
- \else
- \immediate\write\tmpblocks{#1}%
- \fi
- \else
- \immediate\write\tmpblocks{#1}%
- \fi
- \else
- \doifsomething{#1}
- {\tmpblockstartedtrue
- \immediate\write\tmpblocks{\string#1}}%
- \fi}
-
-\long\def\processnextbufferlineA#1%
- {\relax % checken waarom eerdere macro dit nodig heeft / supp-mps run
- \defconvertedargument\next{#1 }%
- \doifinstringelse{\delcharacter\letterpercent}{\delcharacter\next}
- {\secondoftwoarguments}
- {\doifincsnameelse\endofblock\next
- {\ifnum\nestedbufferlevel=\zerocount
- \expandafter\firstoftwoarguments
- \else
- \decrement\nestedbufferlevel\relax
- \expandafter\secondoftwoarguments
- \fi}
- {\doifincsnameelse\beginofblock\next
- {\increment\nestedbufferlevel\relax
- \secondoftwoarguments}
- {\secondoftwoarguments}}}}
-
-\long\def\processnextbufferlineB#1% #2#3%
- {\defconvertedargument\next{#1 }%
- \ifx\next\emptybufferline
- \ifsegmentatebuffer \emptybufferlinetrue \fi
- \expandafter\secondoftwoarguments% #3%
- \else
- \emptybufferlinefalse
- \doifinstringelse\endofblock\next
- {\expandafter\firstoftwoarguments }% #2}
- {\expandafter\secondoftwoarguments}% #3}%
- \fi}
-
-\bgroup
-\obeylines
-\long\gdef\copybufferline#1
- {\processnextbufferline{#1}\closebufferfile{\flushbufferline{#1}\copybufferline}}
-\egroup
-
-% kind of obsolete with mkiv
-
-\def\mkstartmemorybuffer
- {\dosingleempty\dostartmemorybuffer}
-
-\long\def\dostartmemorybuffer[#1]#2\stopbuffer
- {\setbuffer[#1]#2\endbuffer}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-buf.mkiv b/Master/texmf-dist/tex/context/base/core-buf.mkiv
deleted file mode 100644
index c313fc45092..00000000000
--- a/Master/texmf-dist/tex/context/base/core-buf.mkiv
+++ /dev/null
@@ -1,109 +0,0 @@
-%D \module
-%D [ file=core-buf, % blocks are moved to core-blk
-%D version=2000.01.05,
-%D title=\CONTEXT\ Core Macros,
-%D subtitle=Buffers,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% this will become a proper new verbatim module
-
-\unprotect
-
-\registerctxluafile{core-buf}{1.001}
-
-\def\mkresetbuffer
- {\ctxlua{buffers.erase("\currentbuffer")}}
-
-\long\def\mksetbuffer#1%
- {\ctxlua{buffers.set("\currentbuffer", \!!bs\detokenize{#1}\!!es)}}
-
-\long\def\mkstartbuffer#1#2#3#4#5%
- {\doifelsenothing{#4}
- {\expanded{\setbuffercapsules{\e!start\v!buffer}{\e!stop\v!buffer}}%
- \letvalue\bufferstop\relax}
- {\setbuffercapsules{#3}{#4}}% not expanded, can be \cs \cs !
- \expanded{\dodowithbuffer
- {\currentbuffer}
- {\bufferstart}
- {\bufferstop}
- {\donothing}
- {#5% \egroup
- \noexpand\getvalue{\bufferstop}}}}
-
-\def\mkdobuffer#1%
- {#1}
-
-\def\mkdoifelsebuffer#1%
- {\ctxlua{buffers.doifelsebuffer("#1")}}
-
-\def\mkgetbuffer
- {\ctxlua{buffers.get("\currentbuffer")}}
-
-% will move
-
-\ifx\mkinitializeverbatim\undefined \def\mkinitializeverbatim{\tttf} \fi
-
-\def\mktypebuffer
- {\mkdotypebuffer{\v!file}{}{\currentbuffer}}
-
-\def\mkprocessbufferverbatim
- {\mkinitializeverbatim
- \ctxlua{buffers.type("\currentbuffer")}}
-
-\def\mkprocessbufferlinesverbatim#1#2#3%
- {#2%
- % todo, set up numbers
- \mkinitializeverbatim
- \ctxlua{buffers.type("\currentbuffer")}
- #3}
-
-\def\mkdotypebuffer#1#2#3% see dodotypefile
- {\mkdoifelsebuffer{#3}
- {\dosometyping{#1}{#2}{#3}\mkprocessbufferverbatim\mkprocessbufferlinesverbatim}
- {\reporttypingerror{#3}}}
-
-\def\setbuffercapsules#1#2%
- {\edef\bufferstart{\strippedcsname#1}\edef\bufferstart{\scantextokens\expandafter{\bufferstart}}%
- \edef\bufferstop {\strippedcsname#2}\edef\bufferstop {\scantextokens\expandafter{\bufferstop }}}
-
-\def\dowithbuffer#1#2#3% name, startsequence, stopsequence, before, after
- {\setbuffercapsules{#2}{#3}%
- \expanded{\dodowithbuffer{#1}{\bufferstart}{\bufferstop}}}
-
-\long\def\dodowithbuffer#1#2#3#4#5% name, startsequence, stopsequence, before, after
- {#4%
- \bgroup
- \setcatcodetable \vrbcatcodes
- \catcode`\\=12
- \ctxlua{buffers.erase("#1")}%
- \long\def\nododowithbuffer
- {\egroup
- #5}%
- \long\def\dododowithbuffer##1#3% is detokenize needed? TEST
- {\ctxlua
- {buffers.grab("#1","#2","#3",\!!bs\detokenize{##1}\!!es)}
- \dododowithbuffer
- \nododowithbuffer}%
- \dododowithbuffer}
-
-% kind of redundant in mkiv
-
-\let\mkstartmemorybuffer\startbuffer
-\let\mkstartfilebuffer \startbuffer
-
-% bonus
-
-\def\inspectbuffer
- {\dosingleempty\doinspectbuffer}
-
-\def\doinspectbuffer[#1]%
- {\setcurrentbuffer{#1}%
- \ctxlua{buffers.inspect("\currentbuffer")}}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-con.lua b/Master/texmf-dist/tex/context/base/core-con.lua
index be00accde6d..e13f68456b4 100644
--- a/Master/texmf-dist/tex/context/base/core-con.lua
+++ b/Master/texmf-dist/tex/context/base/core-con.lua
@@ -14,9 +14,27 @@ slower but look nicer this way.</p>
<p>Some code may move to a module in the language namespace.</p>
--ldx]]--
+local utf = unicode.utf8
+
+local floor, mod, date, time, concat = math.floor, math.mod, os.date, os.time, table.concat
+local lower, format, rep = string.lower, string.format, string.rep
+local texsprint, utfchar = tex.sprint, utf.char
+local tonumber, tostring = tonumber, tostring
+
+local ctxcatcodes = tex.ctxcatcodes
+
converters = converters or { }
languages = languages or { }
+--~ ['arabic-digits'] = {
+--~ 0x0660, 0x0661, 0x0662, 0x0663, 0x0664,
+--~ 0x0665, 0x0666, 0x0667, 0x0668, 0x0669
+--~ },
+--~ ['persian-digits'] = {
+--~ 0x06F0, 0x06F1, 0x06F2, 0x06F3, 0x06F4,
+--~ 0x06F5, 0x06F6, 0x06F7, 0x06F8, 0x06F9
+--~ },
+
languages.counters = {
['**'] = {
0x0061, 0x0062, 0x0063, 0x0064, 0x0065,
@@ -26,14 +44,14 @@ languages.counters = {
0x0075, 0x0076, 0x0077, 0x0078, 0x0079,
0x007A
},
- ['sl'] = {
+ ['slovenian'] = {
0x0061, 0x0062, 0x0063, 0x010D, 0x0064,
0x0065, 0x0066, 0x0067, 0x0068, 0x0069,
0x006A, 0x006B, 0x006C, 0x006D, 0x006E,
0x006F, 0x0070, 0x0072, 0x0073, 0x0161,
0x0074, 0x0075, 0x0076, 0x007A, 0x017E
},
- ['gr'] = {
+ ['greek'] = { -- this should be the lowercase table
0x0391, 0x0392, 0x0393, 0x0394, 0x0395,
0x0396, 0x0397, 0x0398, 0x0399, 0x039A,
0x039B, 0x039C, 0x039D, 0x039E, 0x039F,
@@ -41,12 +59,20 @@ languages.counters = {
0x03A6, 0x03A7, 0x03A8, 0x03A9
},
['arabic'] = {
- 0x0660, 0x0661, 0x0662, 0x0663, 0x0664,
- 0x0665, 0x0666, 0x0667, 0x0668, 0x0669
+ 0x0627, 0x0628, 0x062C, 0x062F, 0x0647,
+ 0x0648, 0x0632, 0x062D, 0x0637, 0x0649,
+ 0x0643, 0x0644, 0x0645, 0x0646, 0x0633,
+ 0x0639, 0x0641, 0x0635, 0x0642, 0x0631,
+ 0x0634, 0x062A, 0x062B, 0x062E, 0x0630,
+ 0x0636, 0x0638, 0x063A,
},
['persian'] = {
- 0x06F0, 0x06F1, 0x06F2, 0x06F3, 0x06F4,
- 0x06F5, 0x06F6, 0x06F7, 0x06F8, 0x06F9
+ 0x0627, 0x0628, 0x062C, 0x062F, 0x0647,
+ 0x0648, 0x0632, 0x062D, 0x0637, 0x0649,
+ 0x06A9, 0x0644, 0x0645, 0x0646, 0x0633,
+ 0x0639, 0x0641, 0x0635, 0x0642, 0x0631,
+ 0x0634, 0x062A, 0x062B, 0x062E, 0x0630,
+ 0x0636, 0x0638, 0x063A,
},
['thai'] = {
0xE050, 0xE051, 0xE052, 0xE053, 0xE054,
@@ -67,102 +93,413 @@ languages.counters = {
['tibetan'] = {
0x0F20, 0x0F21, 0x0F22, 0x0F23, 0x0F24,
0x0F25, 0x0F26, 0x0F27, 0x0F28, 0x0F29
- }
+ },
+ ['korean'] = {
+ 0x3131, 0x3134, 0x3137, 0x3139, 0x3141,
+ 0x3142, 0x3145, 0x3147, 0x3148, 0x314A,
+ 0x314B, 0x314C, 0x314D, 0x314E
+ },
+ ['korean-parent'] = { -- parenthesed
+ 0x3200, 0x3201, 0x3202, 0x3203, 0x3204,
+ 0x3205, 0x3206, 0x3207, 0x3208, 0x3209,
+ 0x320A, 0x320B, 0x320C, 0x320D
+ },
+ ['korean-circle'] = { -- circled
+ 0x3260, 0x3261, 0x3262, 0x3263, 0x3264,
+ 0x3265, 0x3266, 0x3267, 0x3268, 0x3269,
+ 0x326A, 0x326B, 0x326C, 0x326D
+ },
}
-function converters.chr(n, m)
+local counters = languages.counters
+
+counters['ar'] = counters['arabic']
+counters['gr'] = counters['greek']
+counters['g'] = counters['greek']
+counters['sl'] = counters['slovenian']
+counters['kr'] = counters['korean']
+counters['kr-p'] = counters['korean-parent']
+counters['kr-c'] = counters['korean-circle']
+
+local fallback = utf.byte('0')
+
+local function chr(n,m)
if n > 0 and n < 27 then
- tex.sprint(string.char(n+m))
+ texsprint(utfchar(n+m))
end
end
-
-function converters.maxchrs(n,m,cmd)
- if n <= m then
- tex.sprint(tex.texcatcodes, cmd .. "{" .. n .. "}")
- else
- converters.maxchrs(math.floor((n-1)/m),m,cmd)
- tex.sprint(tex.texcatcodes, cmd .. "{" .. ((n-1)%m + 1) .. "}")
+local function chrs(n,m)
+ if n > 26 then
+ chrs(floor((n-1)/26),m)
+ n = (n-1)%26 + 1
end
+ texsprint(utfchar(n+m))
end
-function converters.chrs(n,m)
- if n <= 26 then
- tex.sprint(string.char(n+m))
- else
- converters.chrs(math.floor((n-1)/26),m)
- tex.sprint(string.char(((n-1)%26 + 1)+m))
+local function maxchrs(n,m,cmd)
+ if n > m then
+ maxchrs(floor((n-1)/m),m,cmd)
+ n = (n-1)%m + 1
end
+ texsprint(ctxcatcodes, format("%s{%s}",cmd,n))
end
-do
+converters.chr = chr
+converters.chrs = chrs
+converters.maxchrs = maxchrs
- local function do_alphabetic(n,max,chr)
- if n <= max then
- characters.flush(chr(n))
- else
- do_alphabetic(math.floor((n-1)/max),max,chr)
- characters.flush(chr((n-1)%max+1))
- end
+local function do_alphabetic(n,max,chr)
+ if n > max then
+ do_alphabetic(floor((n-1)/max),max,chr)
+ n = (n-1)%max+1
end
+ characters.flush(chr(n))
+end
- function converters.alphabetic(n,code)
- local code = languages.counters[code] or languages.counters['**']
- do_alphabetic(n,#code,function(n) return code[n] end)
- end
+--~ more efficient but needs testing
+--~
+--~ local escapes = utffilters.private.escapes
+--~
+--~ local function do_alphabetic(n,max,chr)
+--~ if n > max then
+--~ do_alphabetic(floor((n-1)/max),max,chr)
+--~ n = (n-1)%max+1
+--~ end
+--~ n = chr(n)
+--~ texsprint(ctxcatcodes,escapes[n] or utfchar(n))
+--~ end
- function converters.Alphabetic(n,code)
- local code = languages.counters[code] or languages.counters['**']
- do_alphabetic(n,#code,function(n) return characters.uccode(code[n]) end)
- end
+--~ local lccodes, uccodes = characters.lccode, characters.uccode
+
+local function lowercased(n) return characters.lccode(code[n] or fallback) end
+local function uppercased(n) return characters.uccode(code[n] or fallback) end
+
+function converters.alphabetic(n,code)
+ local code = counters[code] or counters['**']
+ do_alphabetic(n,#code,lowercased) -- lccode catches wrong tables
+end
+function converters.Alphabetic(n,code)
+ local code = counters[code] or counters['**']
+ do_alphabetic(n,#code,uppercased)
end
-function converters.character(n) converters.chr (n,96) end
-function converters.Character(n) converters.chr (n,64) end
-function converters.characters(n) converters.chrs(n,96) end
-function converters.Characters(n) converters.chrs(n,64) end
+function converters.character (n) chr (n,96) end
+function converters.Character (n) chr (n,64) end
+function converters.characters(n) chrs(n,96) end
+function converters.Characters(n) chrs(n,64) end
function converters.weekday(day,month,year)
- tex.sprint(os.date("%w",os.time{year=year,month=month,day=day})+1)
+ texsprint(date("%w",time{year=year,month=month,day=day})+1)
end
-function converters.lpy(year)
+function converters.isleapyear(year)
return (year % 400 == 0) or ((year % 100 ~= 0) and (year % 4 == 0))
end
function converters.leapyear(year)
- if converters.lpy(year) then tex.sprint(1) else tex.sprint(0) end
+ if converters.isleapyear(year) then texsprint(1) else texsprint(0) end
end
-converters.mth = {
+local days = {
[false] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 },
[true] = { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }
}
function converters.nofdays(year,month)
- tex.sprint(converters.mth[converters.lpy(year)][month])
+ texsprint(days[converters.isleapyear(year)][month])
end
-function converters.year () tex.sprint(os.date("%Y")) end
-function converters.month () tex.sprint(os.date("%m")) end
-function converters.hour () tex.sprint(os.date("%H")) end
-function converters.minute () tex.sprint(os.date("%M")) end
-function converters.second () tex.sprint(os.date("%S")) end
-function converters.textime() tex.sprint(tonumber(os.date("%H"))*60+tonumber(os.date("%M"))) end
+function converters.year () texsprint(date("%Y")) end
+function converters.month () texsprint(date("%m")) end
+function converters.hour () texsprint(date("%H")) end
+function converters.minute () texsprint(date("%M")) end
+function converters.second () texsprint(date("%S")) end
+function converters.textime() texsprint(tonumber(date("%H"))*60+tonumber(date("%M"))) end
-converters.rom = {
+local roman = {
{ [0] = '', 'I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX' },
{ [0] = '', 'X', 'XX', 'XXX', 'XL', 'L', 'LX', 'LXX', 'LXXX', 'XC' },
{ [0] = '', 'C', 'CC', 'CCC', 'CD', 'D', 'DC', 'DCC', 'DCCC', 'CM' },
}
-function converters.toroman(n)
+local function toroman(n)
if n >= 4000 then
- return converters.toroman(math.floor(n/1000)) .. " " .. converters.toroman(n%1000)
+ return toroman(floor(n/1000)) .. " " .. toroman(n%1000)
+ else
+ return rep("M",floor(n/1000)) .. roman[3][floor((n%1000)/100)] ..
+ roman[2][floor((n%100)/10)] .. roman[1][floor((n% 10)/1)]
+ end
+end
+
+function converters.romannumerals(n) return texsprint(lower(toroman(n))) end
+function converters.Romannumerals(n) return texsprint( toroman(n) ) end
+
+converters.toroman = toroman
+
+--~ local small = {
+--~ 0x0627, 0x066E, 0x062D, 0x062F, 0x0647, 0x0648, 0x0631
+--~ }
+
+--~ local large = {
+--~ { 0x0627, 0x0628, 0x062C, 0x062F, 0x0647, 0x0648, 0x0632, 0x062D, 0x0637, },
+--~ { 0x064A, 0x0643, 0x0644, 0x0645, 0x0646, 0x0633, 0x0639, 0x0641, 0x0635, },
+--~ { 0x0642, 0x0631, 0x0634, 0x062A, 0x062B, 0x062E, 0x0630, 0x0636, 0x0638, },
+--~ { 0x063A },
+--~ }
+
+local small = {
+ "ا", "ٮ", "ح", "د", "ه", "و", "ر",
+}
+
+local medium = {
+ "ا", "ب", "ج", "د", "ه", "و","ز", "ح", "ط" ,
+ "ي", "ك", "ل", "م", "ن", "س", "ع", "ف", "ص" ,
+ "ق", "ر", "ش", "ت", "ث", "خ", "ذ", "ض", "ظ" ,
+ "غ" ,
+}
+
+local large = {
+ { "ا", "ب", "ج", "د", "ه", "و","ز", "ح", "ط" },
+ { "ي", "ك", "ل", "م", "ن", "س", "ع", "ف", "ص" },
+ { "ق", "ر", "ش", "ت", "ث", "خ", "ذ", "ض", "ظ" },
+ { "غ" },
+}
+
+function converters.toabjad(n,what)
+ if n <= 0 or n >= 2000 then
+ return tostring(n)
+ elseif what == 2 and n <= 7 then
+ return small[n]
+ elseif what == 3 and n <= 28 then
+ return medium[n]
else
- return string.rep("M",math.floor(n/1000)) .. converters.rom[3][math.floor((n%1000)/100)] ..
- converters.rom[2][math.floor((n%100)/10)] .. converters.rom[1][math.floor((n% 10)/1)]
+ local a, b, c, d
+ a, n = floor(n/1000), mod(n,1000)
+ b, n = floor(n/ 100), mod(n, 100)
+ c, n = floor(n/ 10), mod(n, 10)
+ d, n = floor(n/ 1), mod(n, 1)
+ return (large[4][a] or "") .. (large[3][b] or "") .. (large[2][c] or "") .. (large[1][d] or "")
end
end
-function converters.romannumerals(n) return tex.sprint(string.lower(converters.toroman(n))) end
-function converters.Romannumerals(n) return tex.sprint( converters.toroman(n) ) end
+function converters.abjadnumerals (n) return texsprint(converters.toabjad(n,false)) end
+function converters.abjadnodotnumerals(n) return texsprint(converters.toabjad(n,true)) end
+
+local vector = {
+ normal = {
+ [0] = "○",
+ [1] = "一",
+ [2] = "二",
+ [3] = "三",
+ [4] = "四",
+ [5] = "五",
+ [6] = "六",
+ [7] = "七",
+ [8] = "八",
+ [9] = "九",
+ [10] = "十",
+ [100] = "百",
+ [1000] = "千",
+ [10000] = "万",
+ [100000000] = "亿",
+ },
+ cap = {
+ [0] = "零",
+ [1] = "壹",
+ [2] = "贰",
+ [3] = "叁",
+ [4] = "肆",
+ [5] = "伍",
+ [6] = "陆",
+ [7] = "柒",
+ [8] = "捌",
+ [9] = "玖",
+ [10] = "拾",
+ [100] = "佰",
+ [1000] = "仟",
+ [10000] = "萬",
+ [100000000] = "亿",
+ },
+ all = {
+ [0] = "○",
+ [1] = "一",
+ [2] = "二",
+ [3] = "三",
+ [4] = "四",
+ [5] = "五",
+ [6] = "六",
+ [7] = "七",
+ [8] = "八",
+ [9] = "九",
+ [10] = "十",
+ [20] = "廿",
+ [30] = "卅",
+ [100] = "百",
+ [1000] = "千",
+ [10000] = "万",
+ [100000000] = "亿",
+ }
+}
+
+function tochinese(n,name) -- normal, caps, all
+ local result = { }
+ local vector = vector[name] or vector.normal
+ while true do
+ if n == 0 then
+ break
+ elseif n >= 100000000 then
+ local m = floor(n/100000000)
+ if m > 1 then result[#result+1] = tochinese(m) end
+ result[#result+1] = vector[100000000]
+ n = n % 100000000
+ elseif n >= 10000000 then
+ result[#result+1] = tochinese(floor(n/10000))
+ result[#result+1] = vector[10000]
+ n = n % 10000
+ elseif n >= 1000000 then
+ result[#result+1] = tochinese(floor(n/10000))
+ result[#result+1] = vector[10000]
+ n = n % 10000
+ elseif n >= 100000 then
+ result[#result+1] = tochinese(floor(n/10000))
+ result[#result+1] = vector[10000]
+ n = n % 10000
+ elseif n >= 10000 then
+ local m = floor(n/10000)
+ if m > 1 then result[#result+1] = vector[m] end
+ result[#result+1] = vector[10000]
+ n = n % 10000
+ elseif n >= 1000 then
+ local m = floor(n/1000)
+ if m > 1 then result[#result+1] = vector[m] end
+ result[#result+1] = vector[1000]
+ n = n % 1000
+ elseif n >= 100 then
+ local m = floor(n/100)
+ if m > 1 then result[#result+1] = vector[m] end
+ result[#result+1] = vector[100]
+ n = n % 100
+ elseif n >= 10 then
+ local m = floor(n/10)
+ if vector[m*10] then
+ result[#result+1] = vector[m*10]
+ else
+ result[#result+1] = vector[m]
+ result[#result+1] = vector[10]
+ end
+ n = n % 10
+ else
+ result[#result+1] = vector[n]
+ break
+ end
+ end
+ return concat(result)
+end
+
+--~ for k, v in ipairs { 1,10,15,25,35,45,11,100,111,1111,10000,11111,100000,111111,1111111,11111111,111111111,100000000,1111111111,11111111111,111111111111,1111111111111 } do
+--~ print(v,tochinese(v),tochinese(v,"all"),tochinese(v,"cap"))
+--~ end
+
+function converters.chinesenumerals (n) return texsprint(tochinese(n,"normal")) end
+function converters.chinesecapnumerals(n) return texsprint(tochinese(n,"cap" )) end
+function converters.chineseallnumerals(n) return texsprint(tochinese(n,"all" )) end
+
+--~ Well, since the one asking for this didn't test it the following code is not
+--~ enabled.
+--~
+--~ -- This Lua version is based on a Javascript by Behdad Esfahbod which in turn
+--~ -- is based on GPL'd code by Roozbeh Pournader of the The FarsiWeb Project
+--~ -- Group: http://www.farsiweb.info/jalali/jalali.js.
+--~ --
+--~ -- We start tables at one, I kept it zero based in order to stay close to
+--~ -- the original.
+--~ --
+--~ -- Conversion by Hans Hagen
+--~
+--~ local g_days_in_month = { [0]=31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }
+--~ local j_days_in_month = { [0]=31, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 29 }
+--~
+--~ local function div(a,b)
+--~ return math.floor(a/b)
+--~ end
+--~
+--~ local function remainder(a,b)
+--~ return a - div(a,b)*b
+--~ end
+--~
+--~ function gregorian_to_jalali(gy,gm,gd)
+--~ local jy, jm, jd, g_day_no, j_day_no, j_np, i
+--~ gy, gm, gd = gy - 1600, gm - 1, gd - 1
+--~ g_day_no = 365*gy + div((gy+3),4) - div((gy+99),100) + div((gy+399),400)
+--~ i = 0
+--~ while i < gm do
+--~ g_day_no = g_day_no + g_days_in_month[i]
+--~ i = i + 1
+--~ end
+--~ if (gm>1 and ((gy%4==0 and gy%100~=0) or (gy%400==0))) then
+--~ g_day_no = g_day_no + 1
+--~ end
+--~ g_day_no = g_day_no + gd
+--~ j_day_no = g_day_no - 79
+--~ j_np = div(j_day_no,12053)
+--~ j_day_no = remainder(j_day_no,12053)
+--~ jy = 979 + 33*j_np + 4*div(j_day_no,1461)
+--~ j_day_no = remainder(j_day_no,1461)
+--~ if j_day_no >= 366 then
+--~ jy = jy + div((j_day_no-1),365)
+--~ j_day_no = remainder((j_day_no-1),365)
+--~ end
+--~ i = 0
+--~ while i < 11 and j_day_no >= j_days_in_month[i] do
+--~ j_day_no = j_day_no - j_days_in_month[i]
+--~ i = i + 1
+--~ end
+--~ jm = i + 1
+--~ jd = j_day_no + 1
+--~ return jy, jm, jd
+--~ end
+--~
+--~ function jalali_to_gregorian(jy,jm,jd)
+--~ local gy, gm, gd, g_day_no, j_day_no, leap, i
+--~ jy, jm, jd = jy - 979, jm - 1, jd - 1
+--~ j_day_no = 365*jy + div(jy,33)*8 + div((remainder(jy,33)+3),4)
+--~ i = 0
+--~ while i < jm do
+--~ j_day_no = j_day_no + j_days_in_month[i]
+--~ i = i + 1
+--~ end
+--~ j_day_no = j_day_no + jd
+--~ g_day_no = j_day_no + 79
+--~ gy = 1600 + 400*div(g_day_no,146097)
+--~ g_day_no = remainder (g_day_no, 146097)
+--~ leap = 1
+--~ if g_day_no >= 36525 then
+--~ g_day_no = g_day_no - 1
+--~ gy = gy + 100*div(g_day_no,36524)
+--~ g_day_no = remainder (g_day_no, 36524)
+--~ if g_day_no >= 365 then
+--~ g_day_no = g_day_no + 1
+--~ else
+--~ leap = 0
+--~ end
+--~ end
+--~ gy = gy + 4*div(g_day_no,1461)
+--~ g_day_no = remainder (g_day_no, 1461)
+--~ if g_day_no >= 366 then
+--~ leap = 0
+--~ g_day_no = g_day_no - 1
+--~ gy = gy + div(g_day_no, 365)
+--~ g_day_no = remainder(g_day_no, 365)
+--~ end
+--~ i = 0
+--~ while g_day_no >= g_days_in_month[i] + ((i == 1 and leap) or 0) do
+--~ g_day_no = g_day_no - g_days_in_month[i] + ((i == 1 and leap) or 0)
+--~ i = i + 1
+--~ end
+--~ gm = i + 1
+--~ gd = g_day_no + 1
+--~ return gy, gm, gd
+--~ end
+--~
+--~ print(gregorian_to_jalali(2009,02,24))
+--~ print(jalali_to_gregorian(1387,12,06))
diff --git a/Master/texmf-dist/tex/context/base/core-con.mkii b/Master/texmf-dist/tex/context/base/core-con.mkii
index 9a4a0b0ff91..c39bdd9d423 100644
--- a/Master/texmf-dist/tex/context/base/core-con.mkii
+++ b/Master/texmf-dist/tex/context/base/core-con.mkii
@@ -2,7 +2,7 @@
%D [ file=core-con,
%D version=1997.26.08,
%D title=\CONTEXT\ Core Macros,
-%D subtitle=Conversion Macros,
+%D subtitle=Conversion,
%D author=Hans Hagen,
%D date=\currentdate,
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
@@ -11,8 +11,67 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+\writestatus{loading}{ConTeXt Core Macros / Conversion}
+
\unprotect
+\ifx\currentlanguage\undefined \let\currentlanguage\empty \fi
+\ifx\labeltext \undefined \let\labeltext\firstofoneargument \fi
+
+%D This module deals with all kind of conversions from numbers
+%D and dates. I considered splitting this module in a support
+%D one and a core one, but to keep things simple as well as
+%D preserve the overview, I decided against splitting.
+
+\let\spr\firstofoneargument % separator
+\let\stp\firstofoneargument % stopper
+
+% cleaner, some day:
+%
+% \def\isolateseparators % etex only, even works with list separator overloading
+% {\unexpanded\def\spr##1{{##1}}%
+% \unexpanded\def\stp##1{{##1}}}
+
+% needed for arab :
+
+\def\isolateseparators % even works with list separator overloading
+ {\def\spr##1{{##1}}%
+ \def\stp##1{{##1}}}
+
+%D \macros
+%D {numbers}
+%D
+%D First we deal with the dummy conversion of numbers using the
+%D \TEX\ primitive \type{\number}. The uppercase alternative is
+%D only there for compatibility with the other conversion
+%D macros. We could do without \type{#1} but this way we get
+%D rid of unwanted braces. For the savety we also define a
+%D non||sence uppercase alternative.
+%D
+%D \showsetup{numbers}
+%D
+%D \starttyping
+%D \def\numbers#1{\number#1}
+%D \def\Numbers#1{\number#1}
+%D \stoptyping
+%D
+%D Due to read ahead, as in \type{[\pagenumber\space]} the space will
+%D disappear, unless we use:
+
+\def\numbers#1{\purenumber{#1}}
+\def\Numbers#1{\purenumber{#1}}
+
+%D \macros
+%D {romannumerals,Romannumerals}
+%D
+%D \TEX\ the program uses a rather tricky conversion from
+%D numbers to their roman counterparts. This conversion could
+%D of course be programmed in \TEX\ itself, but I guess Knuth
+%D found the programming trick worth presenting.
+%D
+%D \showsetup{romannumerals}
+%D \showsetup{Romannumerals}
+
%D When upcasing the result, we just follow the text book rules
%D of expansion. Later on we'll see some more uppercase tricks.
@@ -50,6 +109,24 @@
\uppercase\expandafter{\romannumeral#1#2}%
\fi\fi\fi\fi}
+%D \macros
+%D {character,Character}
+%D
+%D Converting a number into a character can of course only
+%D be done with numbers less or equal to~26. At the cost of
+%D much more macros a faster conversion is possible, using:
+%D
+%D \starttyping
+%D \setvalue{char1}{a} \def\character#1{\getvalue{char#1}}
+%D \stoptyping
+%D
+%D But we prefer a simpel \type{\case}.
+%D
+%D \showsetup{character}
+%D \showsetup{Character}
+
+\def\unknowncharacter{-} % else in lists \relax
+
%D Big case statements but pretty fast:
\def\character#1%
@@ -68,6 +145,38 @@
\unknowncharacter
\fi}
+%D \macros
+%D {characters,Characters}
+%D
+%D Converting large numbers is supported by the next two
+%D macros. This time we just count on: $\cdots$~x, y, z, aa,
+%D ab, ac~$\cdots$.
+%D
+%D \showsetup{characters}
+%D \showsetup{Characters}
+
+%D The fully expandable alternative:
+
+\def\dodoconvertcharacters#1#2#3%
+ {\ifcase#3\else
+ \ifnum#3>#1
+ \expandafter\doconvertcharacters\expandafter#2\expandafter{\the\numexpr(#3+12)/#1-1\relax}%
+ \expandafter#2\expandafter{\the\numexpr#3-((#3+12)/#1-1)*#1\relax}%
+ \else
+ \expandafter#2\expandafter{\number#3}%
+ \fi
+ \fi}
+
+\def\doconvertcharacters{\dodoconvertcharacters{26}}
+
+\def\characters{\doconvertcharacters\character}
+\def\Characters{\doconvertcharacters\Character}
+
+%D \macros
+%D {greeknumerals,Greeknumerals}
+%D
+%D Why should we only honour the romans, and not the greek?
+
\def\greeknumerals#1%
{% no longer needed: \mathematics
{\ifcase#1\unknowncharacter\or
@@ -94,50 +203,115 @@
\unknowncharacter
\fi}}
-\beginTEX
+%D \macros
+%D {oldstylenumerals,oldstyleromannumerals}
+%D
+%D These conversions are dedicated to Frans Goddijn.
-\def\dodoconvertcharacters#1#2#3%
- {\ifnum#3>#1
- \bgroup
- \!!counta#3\relax
- \ifnum\!!counta>\zerocount
- \advance\!!counta \minusone
- \!!countb\!!counta
- \divide\!!counta #1%
- \!!countc\!!counta
- \multiply\!!countc #1%
- \advance\!!countb -\!!countc
- \doconvertcharacters#3{\!!counta}%
- \advance\!!countb \plusone
- #3{\the\!!countb}%
- \fi
- \egroup
- \else
- #2{#3}% pure expansion, used in references
- \fi}
+\unexpanded\def\oldstylenumerals#1%
+ {{\os\number#1}}
-\endTEX
+\unexpanded\def\oldstyleromannumerals#1%
+ {{\leftrulefalse\rightrulefalse\ss\txx\boxrulewidth.15ex
+ \ruledhbox spread .15em{\hss\uppercased{\romannumerals{#1}}\hss}}}
-%D A fully expandable alternative:
+%D \macros
+%D {protectconversion}
+%D
+%D The previous two commands are not robust enough to be
+%D passed to \type{\write} en \type{\message}. That's why we
+%D introduce:
-\beginETEX \numexpr
+\def\protectconversion
+ {\def\doconvertcharacters##1{##1}} % was \relax
+ %{\def\doconvertcharacters##1{\ifcase0##1 0\else##1\fi}} more save
-\def\dodoconvertcharacters#1#2#3%
- {\ifcase#3\else
- \ifnum#3>#1
- \expandafter\doconvertcharacters\expandafter#2\expandafter{\the\numexpr(#3+12)/#1-1\relax}%
- \expandafter#2\expandafter{\the\numexpr#3-((#3+12)/#1-1)*#1\relax}%
- \else
- \expandafter#2\expandafter{\number#3}%
- \fi
+%D \macros
+%D {normaltime,normalyear,normalmonth,normalday}
+%D
+%D The last part of this module is dedicated to converting
+%D dates. Because we want to use as meaningful commands as
+%D possible, and because \TEX\ already uses up some of those,
+%D we save the original meanings.
+
+\savenormalmeaning\time
+\savenormalmeaning\year
+\savenormalmeaning\month
+\savenormalmeaning\day
+
+%D \macros
+%D {month,MONTH}
+%D
+%D Converting the month number into a month name is done
+%D using a case statement, abstact values and the label
+%D mechanism. This way users can easily redefine a label from
+%D for instance german into austrian.
+%D
+%D \starttyping
+%D \setuplabeltext [de] [january=J\"anner]
+%D \stoptyping
+%D
+%D Anyhow, the conversion looks like:
+
+\def\domonthtag#1%
+ {\ifcase#1%
+ \or \v!january \or \v!february \or \v!march \or \v!april
+ \or \v!may \or \v!june \or \v!july \or \v!august
+ \or \v!september \or \v!october \or \v!november \or \v!december
+ \else
+ \v!unknown
\fi}
-\endETEX
+\def\doconvertmonthlong #1{\labeltext{\domonthtag{#1}}}
+\def\doconvertmonthshort#1{\labeltext{\domonthtag{#1}:\s!mnem}}
-\def\doconvertcharacters{\dodoconvertcharacters{26}}
+\let\doconvertmonth\doconvertmonthlong
-\def\characters{\doconvertcharacters\character}
-\def\Characters{\doconvertcharacters\Character}
+%D We redefine the \TEX\ primitive \type{\month} as:
+%D
+%D \showsetup{month}
+%D \showsetup{MONTH}
+
+\def\monthlong {\doconvertmonthlong}
+\def\monthshort{\doconvertmonthshort}
+\def\month {\doconvertmonth}
+
+\def\MONTH #1{{\let\labeltext\LABELTEXT\month {#1}}}
+\def\MONTHLONG #1{{\let\labeltext\LABELTEXT\monthlong {#1}}}
+\def\MONTHSHORT#1{{\let\labeltext\LABELTEXT\monthshort{#1}}}
+
+%D We never explicitly needed this, but Tobias Burnus pointed
+%D out that it would be handy to convert to the day of the
+%D week. In doing so, we have to calculate the total number of
+%D days, taking leapyears into account. For those who are
+%D curious:
+%D
+%D \startitemize[packed]
+%D \item years that can be divided by 4 are leapyears
+%D \item exept years that can be divided by 100
+%D \item unless years can be divided by 400
+%D \stopitemize
+%D
+%D This makes the year 1900 into a normal year and 1996 and
+%D 2000 into leap years, right? Well, converting to string
+%D looks familiar:
+
+\def\doconvertday#1%
+ {\labeltext
+ {\ifcase#1
+ \or \v!sunday \or \v!monday \or \v!tuesday \or \v!wednesday
+ \or \v!thursday \or \v!friday \or \v!saturday \fi}}
+
+%D \macros
+%D {getdayoftheweek, dayoftheweek}
+%D
+%D The conversion algoritm is an old one and a translation from
+%D a procedure written in MODULA~2 back in the 80's. I finaly
+%D found the 4--100-400 rules in some enclopedia. Look at this
+%D messy low level routine that takes the day, month and year
+%D as arguments:
+
+\newcount\normalweekday
\def\getdayoftheweek#1#2#3%
{\bgroup
@@ -168,6 +342,77 @@
\def\dayoftheweek#1#2#3%
{\getdayoftheweek{#1}{#2}{#3}\doconvertday{\normalweekday}}
+%D Using this macro in
+%D
+%D \startbuffer
+%D monday: \dayoftheweek {4} {5} {1992}
+%D friday: \dayoftheweek {16} {6} {1995}
+%D monday: \dayoftheweek {25} {8} {1997}
+%D saturday: \dayoftheweek {30} {8} {1997}
+%D tuesday: \dayoftheweek {2} {1} {1996}
+%D tuesday: \dayoftheweek {7} {1} {1997}
+%D tuesday: \dayoftheweek {13} {1} {1998}
+%D friday: \dayoftheweek {1} {1} {2000}
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D gives
+%D
+%D \startvoorbeeld
+%D \startlines
+%D \getbuffer
+%D \stoplines
+%D \stopvoorbeeld
+%D
+%D The macro \type {\getdayoftheweek} can be used to calculate
+%D the number \type {\normalweekday}.
+
+%D \macros
+%D {weekday,WEEKDAY}
+%D
+%D The first one is sort of redundant. It takes the day
+%D number argument.
+%D
+%D \showsetup{weekday}
+%D \showsetup{WEEKDAY}
+
+\def\weekday
+ {\doconvertday}
+
+\def\WEEKDAY#1%
+ {{\let\labeltext\LABELTEXT\doconvertday{#1}}}
+
+%D \macros
+%D {weekoftheday}
+%D
+%D {\em not yet implemented:}
+%D
+%D \starttyping
+%D \def\weekoftheday#1#2#3%
+%D {}
+%D \stoptyping
+
+%D \macros
+%D {doifleapyearelse,
+%D getdayspermonth}
+%D
+%D Sometimes we need to know if we're dealing with a
+%D leapyear, so here is a testmacro:
+%D
+%D \starttyping
+%D \doifleapyearelse{year}{yes}{no}
+%D \stoptyping
+%D
+%D An example of its use can be seen in the macro
+%D
+%D \starttyping
+%D \getdayspermonth{year}{month}
+%D \stoptyping
+%D
+%D The number of days is available in the macro \type
+%D {\numberofdays}.
+
\def\doifleapyearelse#1% #2#3%
{\bgroup
\!!doneafalse
@@ -213,12 +458,450 @@
{\ifcase#2 \or31\or\numberofdays\or31\or30\or
31\or30\or31\or31\or30\or31\or30\or31\fi}}
+%D \macros
+%D {currentdate, date}
+%D
+%D We use these conversion macros in the date formatting
+%D macro:
+%D
+%D \showsetup{currentdate}
+%D
+%D This macro takes care of proper spacing and delivers for
+%D instance:
+%D
+%D \startbuffer
+%D \currentdate[weekday,day,month,year] % still dutch example
+%D \currentdate[WEEKDAY,day,MONTH,year] % still dutch example
+%D \stopbuffer
+%D
+%D \startvoorbeeld
+%D \startlines
+%D \getbuffer
+%D \stoplines
+%D \stopvoorbeeld
+%D
+%D depending of course on the keywords. Here we gave:
+%D
+%D \typebuffer
+%D
+%D If needed one can also add non||keywords, like in
+%D
+%D \startbuffer
+%D \currentdate[dd,--,mm,--,yy]
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D or typeset: \getbuffer.
+%D
+%D When no argument is passed, the current date is given as
+%D specified per language (using \type{\installlanguage}).
+%D
+%D \showsetup{currentdate}
+%D
+%D \startbuffer
+%D \date
+%D \date[d=12,m=12,y=1998][weekday]
+%D \date[d=12,m=12,y=1998]
+%D \stopbuffer
+%D
+%D We can also typeset arbitrary dates, using the previous
+%D command.
+%D
+%D \typebuffer
+%D
+%D The date is specified by one character keys. When no date
+%D is given, we get the current date.
+%D
+%D \startlines
+%D \getbuffer
+%D \stoplines
+
+\def\kenmerkdatumpatroon{j,mm,dd} % jj,mm,dd changed at januari 1-1-2000
+
+\newsignal\datesignal
+
+\def\dobetweendates
+ {\ifdim\lastskip=\datesignal\relax\else
+ \unskip\space
+ \hskip\datesignal\relax
+ \fi}
+
+\newtoks \everycurrentdate
+
+\def\complexcurrentdate[#1]%
+ {\bgroup
+ \the\everycurrentdate
+ \def\betweendates{\let\betweendates\dobetweendates}%
+ % was \processcommacommandp[#1]\docomplexcurrentdate
+ \safeedef\ascii{\empty#1}% keep encoded chars
+ \@EA\processcommalist\@EA[\ascii]\docomplexcurrentdate
+ \ifdim\lastskip=\datesignal\relax
+ \unskip
+ \fi
+ \egroup}
+
+\def\docomplexcurrentdate#1%
+ {\lowercase{\edef\!!stringa{#1}}% permits usage in \smallcapped
+ \expanded{\processaction[\!!stringa]}% [#1]
+ [ \v!day=>\betweendates\the\normalday,
+ %\v!day+=>\betweendates\ordinaldaynumber\normalday,
+ \v!day+=>\betweendates\convertnumber{\v!day+}\normalday,
+ \v!month=>\betweendates\month\normalmonth,
+ \v!year=>\betweendates\the\normalyear,
+ \v!space=>\unskip\ \hskip\datesignal,% optimization -)
+ \ =>\unskip\ \hskip\datesignal,% optimization -)
+ d=>\convertnumber\v!day\normalday,
+ %d+=>\ordinaldaynumber\normalday,
+ d+=>\convertnumber{\v!day+}\normalday,
+ m=>\convertnumber\v!month\normalmonth,
+ j=>\convertnumber\v!year\normalyear,
+ y=>\convertnumber\v!year\normalyear,
+ w=>\betweendates\dayoftheweek\normalday\normalmonth\normalyear,
+ dd=>\ifnum\normalday >9 \else0\fi\the\normalday,
+ %dd+=>\ordinaldaynumber{\ifnum\normalday >9 \else0\fi\the\normalday},
+ dd+=>\convertnumber{\v!day+}{\ifnum\normalday >9 \else0\fi\the\normalday},
+ mm=>\ifnum\normalmonth>9 \else0\fi\the\normalmonth,
+ jj=>\expandafter\gobbletwoarguments\the\normalyear,
+ yy=>\expandafter\gobbletwoarguments\the\normalyear,
+ \v!weekday=>\betweendates\dayoftheweek\normalday\normalmonth\normalyear,
+ \v!referral=>\expanded{\complexcurrentdate[\kenmerkdatumpatroon]},
+ \s!unknown=>\unskip
+ % #1 and not the lowercased \commalistelement, vietnamese has text
+ % {} because #1 can have comma, like: {\ ,}
+ {#1}%
+ \hskip\datesignal
+ \def\betweendates{\let\betweendates\dobetweendates}]}
+
+\def\simplecurrentdate
+ {\expanded{\complexcurrentdate[\currentdatespecification]}}
+
+\definecomplexorsimple\currentdate
+
+\def\dodate[#1][#2]%
+ {\bgroup
+ \iffirstargument
+ \getparameters[\??da][d=\normalday,m=\normalmonth,y=\normalyear,#1]%
+ \normalday \@@dad\relax
+ \normalmonth\@@dam\relax
+ \normalyear \@@day\relax
+ \ifsecondargument
+ \currentdate[#2]%
+ \else
+ \currentdate
+ \fi
+ \else
+ \currentdate
+ \fi
+ \egroup}
+
+\def\date
+ {\dodoubleempty\dodate}
+
+%D \macros
+%D {currenttime}
+%D
+%D The currenttime is actually the jobtime. You can specify
+%D a pattern similar to the previous date macro using the
+%D keys \type {h}, \type {m} and a separator.
+
\def\calculatecurrenttime
{\dosetdivision\time{60}\scratchcounter
\edef\currenthour {\ifnum\scratchcounter<10 0\fi \the\scratchcounter}%
\dosetmodulo \time{60}\scratchcounter
\edef\currentminute{\ifnum\scratchcounter<10 0\fi \the\scratchcounter}}
+\let\currenthour \!!plusone
+\let\currentminute\!!plusone
+
+\def\currenttimespecification{h,:,m}
+
+\def\complexcurrenttime[#1]%
+ {\calculatecurrenttime
+ \processallactionsinset[#1]
+ [h=>\currenthour,m=>\currentminute,\s!unknown=>\commalistelement]}
+
+\def\simplecurrenttime
+ {\expanded{\complexcurrenttime[\currenttimespecification]}}
+
+\definecomplexorsimple\currenttime
+
+%D Because we're dealing with dates, we also introduce a few
+%D day loops:
+%D
+%D \starttyping
+%D \processmonth{year}{month}{command}
+%D \processyear{year}{command}{before}{after}
+%D \stoptyping
+%D
+%D The counters \type {\normalyear}, \type {\normalmonth} and
+%D \type{\normalday} can be used for for date manipulations.
+
+\long\def\processmonth#1#2#3% year month command
+ {\bgroup
+ \getdayspermonth{#1}{#2}%
+ \dostepwiserecurse1\numberofdays1%
+ {\normalyear #1\relax
+ \normalmonth#2\relax
+ \normalday \recurselevel\relax
+ #3}%
+ \egroup}
+
+\def\lastmonth{12} % can be set to e.g. 1 when testing
+
+\long\def\processyear#1#2#3#4% year command before after
+ {\bgroup
+ \dorecurse\lastmonth
+ {\normalyear #1\relax
+ \normalmonth\recurselevel\relax
+ #3\processmonth\normalyear\normalmonth{#2}#4}%
+ \egroup}
+
+%D \macros
+%D {defineconversion, convertnumber}
+%D
+%D Conversion involves the macros that we implemented earlier
+%D in this module.
+%D
+%D \showsetup{defineconversion}
+%D \showsetup{convertnumber}
+%D
+%D We can feed this command with conversion macros as well as
+%D a set of conversion symbols. Both need a bit different
+%D treatment.
+%D
+%D \starttyping
+%D \defineconversion [roman] [\romannumerals]
+%D \defineconversion [set 1] [$\star$,$\bullet$,$\ast$]
+%D \stoptyping
+%D
+%D You can define a language dependent conversion with:
+%D
+%D \starttyping
+%D \defineconversion [en] [whatever] [\something]
+%D \stoptyping
+
+% \def\dodefineconversion[#1][#2]%
+% {\ConvertConstantAfter\doifinstringelse{,}{#2}
+% {\scratchcounter=0
+% \def\docommand##1%
+% {\advance\scratchcounter 1
+% \setvalue{\??cv#1\the\scratchcounter}{##1}}%
+% \processcommalist[#2]\docommand
+% \setvalue{\??cv#1}##1{\csname\??cv#1##1\endcsname}}
+% {\setvalue{\??cv#1}{#2}}}
+%
+% \def\defineconversion%
+% {\dodoubleargument\dodefineconversion}
+
+\def\defineconversion
+ {\dotripleempty\dodefineconversion}
+
+\def\dodefineconversion[#1][#2][#3]%
+ {\ifthirdargument
+ \dododefineconversion[#1][#2][#3]%
+ \else
+ \dododefineconversion[][#1][#2]%
+ \fi}
+
+%D \starttyping
+%D \def\dododefineconversion[#1][#2][#3]%
+%D {\ConvertConstantAfter\doifinstringelse{,}{#3}
+%D {\scratchcounter\zerocount
+%D \def\docommand##1%
+%D {\advance\scratchcounter \plusone
+%D \setvalue{\??cv#1#2\the\scratchcounter}{##1}}%
+%D \processcommalist[#3]\docommand
+%D \setvalue{\??cv#1#2}##1{\executeifdefined{\??cv#1#2##1}\unknown}} % catch out-of-range numbers
+%D {\setvalue{\??cv#1#2}{#3}}}
+%D \stoptyping
+
+%D This approach has the disadvantage that when you run out of
+%D symbols you get unknown results. The following implementation
+%D permits overloading of the converter:
+
+\def\dododefineconversion[#1][#2][#3]%
+ {\ConvertConstantAfter\doifinstringelse{,}{#3}
+ {\scratchcounter\zerocount
+ \def\docommand##1%
+ {\advance\scratchcounter \plusone
+ \setvalue{\??cv#1#2\the\scratchcounter}{##1}}%
+ \processcommalist[#3]\docommand
+ \setevalue{\??cv#1#2}##1%
+ {\noexpand\docheckedconversion{#1#2}{\the\scratchcounter}{##1}}}
+ {\setvalue{\??cv#1#2}{#3}}}
+
+\def\docheckedconversion#1#2#3% class maxnumber number
+ {\executeifdefined{\??cv#1#3}\unknown}
+
+%D When Gerben reported problems with footnote numbering per page,
+%D Taco came with the following wrap around solution. So, let's
+%D overload the checked conversion macro:
+
+\def\docheckedconversion#1#2#3% class maxnumber number
+ {\executeifdefined{\??cv#1\modulatednumber{#2}{#3}}\unknown}
+
+%D Taco's modulo code is implemented in the system module
+%D \type {syst-con}.
+
+%D If a conversion is just a font switch then we need to make sure
+%D that the number is indeed end up as number in the input, so we
+%D need to handle the second argument.
+
+\def\convertnumber#1#2%
+ {\csname\??cv
+ \ifcsname\??cv\currentlanguage#1\endcsname
+ \currentlanguage#1%
+ \else\ifcsname\??cv#1\endcsname
+ #1%
+ \else
+ \s!default
+ \fi\fi
+ \endcsname{\number#2}}
+
+\def\doifconversiondefinedelse#1%
+ {\ifcsname\??cv\currentlanguage#1\endcsname
+ \@EA\firstoftwoarguments
+ \else\ifcsname\??cv#1\endcsname
+ \@EAEAEA\firstoftwoarguments
+ \else
+ \@EAEAEA\secondoftwoarguments
+ \fi\fi}
+
+\def\doifelseconversionnumber#1#2% slow but seldom used
+ {\doifdefinedelse{\??cv#1#2}}
+
+%D Handy.
+
+\setvalue{\??cv:\c!n:\v!one }{1}
+\setvalue{\??cv:\c!n:\v!two }{2}
+\setvalue{\??cv:\c!n:\v!three}{3}
+\setvalue{\??cv:\c!n:\v!four }{4}
+\setvalue{\??cv:\c!n:\v!five }{5}
+
+\def\wordtonumber#1#2{\ifcsname\??cv:\c!n:#1\endcsname\csname\??cv:\c!n:#1\endcsname\else#2\fi}
+
+% \defineconversion[ctx][c,o,n,t,e,x,t]
+%
+% \doloop{\doifelseconversionnumber{ctx}{\recurselevel}{[\recurselevel]}{\exitloop}}
+
+\defineconversion [\s!default] [\numbers]
+
+%D As longs as symbols are linked to levels or numbers, we can
+%D also use the conversion mechanism, but in for instance the
+%D itemization macros, we prefer symbols because they can more
+%D easier be (partially) redefined. Symbols are implemented
+%D in another module.
+
+\defineconversion [] [\numbers] % the default conversion
+
+\defineconversion [a] [\characters]
+\defineconversion [A] [\Characters]
+\defineconversion [AK] [\smallcapped\characters]
+\defineconversion [KA] [\smallcapped\characters]
+
+\defineconversion [n] [\numbers]
+\defineconversion [N] [\Numbers]
+\defineconversion [m] [\mediaeval]
+
+\defineconversion [i] [\romannumerals]
+\defineconversion [I] [\Romannumerals]
+\defineconversion [r] [\romannumerals]
+\defineconversion [R] [\Romannumerals]
+\defineconversion [KR] [\smallcapped\romannumerals]
+\defineconversion [RK] [\smallcapped\romannumerals]
+
+\defineconversion [g] [\greeknumerals]
+\defineconversion [G] [\Greeknumerals]
+
+\defineconversion [o] [\oldstylenumerals]
+\defineconversion [O] [\oldstylenumerals]
+\defineconversion [or] [\oldstyleromannumerals]
+
+\defineconversion [\v!character] [\character]
+\defineconversion [\v!Character] [\Character]
+
+\defineconversion [\v!characters] [\characters]
+\defineconversion [\v!Characters] [\Characters]
+
+\defineconversion [\v!numbers] [\numbers]
+\defineconversion [\v!Numbers] [\Numbers]
+\defineconversion [\v!mediaeval] [\mediaeval]
+
+\defineconversion [\v!romannumerals] [\romannumerals]
+\defineconversion [\v!Romannumerals] [\Romannumerals]
+
+\defineconversion [\v!greek] [\greeknumerals]
+\defineconversion [\v!Greek] [\Greeknumerals]
+
+\defineconversion [arabicnumerals] [\arabicnumerals]
+\defineconversion [persiannumerals] [\arabicnumerals]
+
+\defineconversion [month] [\doconvertmonthlong]
+\defineconversion [month:mnem] [\doconvertmonthshort]
+
+% Some bonus ones:
+
+\defineconversion [\v!empty] [\gobbleoneargument]
+\defineconversion [\v!none] [\numbers]
+
+\ifx\symbol\undefined \def\symbol[#1]{#1} \fi % todo
+
+\defineconversion
+ [set 0]
+ [{\symbol[bullet]},
+ {\symbol[dash]},
+ {\symbol[star]},
+ {\symbol[triangle]},
+ {\symbol[circle]},
+ {\symbol[medcircle]},
+ {\symbol[bigcircle]},
+ {\symbol[square]}]
+
+\defineconversion
+ [set 1]
+ [\mathematics{\star},
+ \mathematics{\star\star},
+ \mathematics{\star\star\star},
+ \mathematics{\ddagger},
+ \mathematics{\ddagger\ddagger},
+ \mathematics{\ddagger\ddagger\ddagger},
+ \mathematics{\ast},
+ \mathematics{\ast\ast},
+ \mathematics{\ast\ast\ast}]
+
+\defineconversion
+ [set 2]
+ [\mathematics{*},
+ \mathematics{\dag},
+ \mathematics{\ddag},
+ \mathematics{**},
+ \mathematics{\dag\dag},
+ \mathematics{\ddag\ddag},
+ \mathematics{***},
+ \mathematics{\dag\dag\dag},
+ \mathematics{\ddag\ddag\ddag},
+ \mathematics{****},
+ \mathematics{\dag\dag\dag\dag},
+ \mathematics{\ddag\ddag\ddag\ddag}]
+
+\defineconversion
+ [set 3]
+ [\mathematics{\star},
+ \mathematics{\star\star},
+ \mathematics{\star\star\star},
+ \mathematics{\ddagger},
+ \mathematics{\ddagger\ddagger},
+ \mathematics{\ddagger\ddagger\ddagger},
+ \mathematics{\P},
+ \mathematics{\P\P},
+ \mathematics{\P\P\P},
+ \mathematics{\S},
+ \mathematics{\S\S},
+ \mathematics{\S\S\S},
+ \mathematics{\ast},
+ \mathematics{\ast\ast},
+ \mathematics{\ast\ast\ast}]
%D \macros
%D {defineconversionvector,conversionnumber} % bad names so no danger for clash
@@ -263,24 +946,24 @@
% actually mkiii code
-\beginXETEX
-
-\defineconversionvector{arabicnumerals} {"0660}
-\defineconversionvector{persiannumerals} {"06F0}
-\defineconversionvector{thainumerals} {"0E50}
-\defineconversionvector{devanagarinumerals}{"0966}
-\defineconversionvector{gurmurkhinumerals} {"0A66}
-\defineconversionvector{gujaratinumerals} {"0AE6}
-\defineconversionvector{tibetannumerals} {"0F20} % also "half numerals?"
-
-\defineconversion[arabicnumerals] [\conversionnumber{arabicnumerals}]
-\defineconversion[persiannumerals] [\conversionnumber{persiannumerals}]
-\defineconversion[thainumerals] [\conversionnumber{thainumerals}]
-\defineconversion[devanagarinumerals][\conversionnumber{devanagarinumerals}]
-\defineconversion[gurmurkhinumerals] [\conversionnumber{gurmurkhinumerals}]
-\defineconversion[gujaratinumerals] [\conversionnumber{gujaratinumerals}]
-\defineconversion[tibetannumerals] [\conversionnumber{tibetannumerals}]
-
-\endXETEX
+\ifnum\texengine=\xetexengine
+
+ \defineconversionvector{arabicnumerals} {"0660}
+ \defineconversionvector{persiannumerals} {"06F0}
+ \defineconversionvector{thainumerals} {"0E50}
+ \defineconversionvector{devanagarinumerals}{"0966}
+ \defineconversionvector{gurmurkhinumerals} {"0A66}
+ \defineconversionvector{gujaratinumerals} {"0AE6}
+ \defineconversionvector{tibetannumerals} {"0F20} % also "half numerals?"
+
+ \defineconversion[arabicnumerals] [\conversionnumber{arabicnumerals}]
+ \defineconversion[persiannumerals] [\conversionnumber{persiannumerals}]
+ \defineconversion[thainumerals] [\conversionnumber{thainumerals}]
+ \defineconversion[devanagarinumerals][\conversionnumber{devanagarinumerals}]
+ \defineconversion[gurmurkhinumerals] [\conversionnumber{gurmurkhinumerals}]
+ \defineconversion[gujaratinumerals] [\conversionnumber{gujaratinumerals}]
+ \defineconversion[tibetannumerals] [\conversionnumber{tibetannumerals}]
+
+\fi
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-con.mkiv b/Master/texmf-dist/tex/context/base/core-con.mkiv
index 390f9c5959b..b9dc0b44980 100644
--- a/Master/texmf-dist/tex/context/base/core-con.mkiv
+++ b/Master/texmf-dist/tex/context/base/core-con.mkiv
@@ -1,8 +1,8 @@
%D \module
%D [ file=core-con,
-%D version=2006.09.16,
+%D version=1997.26.08,
%D title=\CONTEXT\ Core Macros,
-%D subtitle=Conversion Macros,
+%D subtitle=Conversion,
%D author=Hans Hagen,
%D date=\currentdate,
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
@@ -11,27 +11,331 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\unprotect
+\writestatus{loading}{ConTeXt Core Macros / Conversion}
\registerctxluafile{core-con}{1.001}
+\unprotect
+
+\ifx\currentlanguage\undefined \let\currentlanguage\empty \fi
+\ifx\labeltext \undefined \let\labeltext\firstofoneargument \fi
+
+%D This module deals with all kind of conversions from numbers
+%D and dates. I considered splitting this module in a support
+%D one and a core one, but to keep things simple as well as
+%D preserve the overview, I decided against splitting.
+
+\let\spr\firstofoneargument % separator
+\let\stp\firstofoneargument % stopper
+
+% cleaner, some day:
+%
+% \def\isolateseparators % etex only, even works with list separator overloading
+% {\unexpanded\def\spr##1{{##1}}%
+% \unexpanded\def\stp##1{{##1}}}
+
+% needed for arab :
+
+\def\isolateseparators % even works with list separator overloading
+ {\def\spr##1{{##1}}%
+ \def\stp##1{{##1}}}
+
+%D \macros
+%D {numbers}
+%D
+%D First we deal with the dummy conversion of numbers using the
+%D \TEX\ primitive \type{\number}. The uppercase alternative is
+%D only there for compatibility with the other conversion
+%D macros. We could do without \type{#1} but this way we get
+%D rid of unwanted braces. For the savety we also define a
+%D non||sence uppercase alternative.
+%D
+%D \showsetup{numbers}
+%D
+%D \starttyping
+%D \def\numbers#1{\number#1}
+%D \def\Numbers#1{\number#1}
+%D \stoptyping
+%D
+%D Due to read ahead, as in \type{[\pagenumber\space]} the space will
+%D disappear, unless we use:
+
+\def\numbers#1{\purenumber{#1}}
+\def\Numbers#1{\purenumber{#1}}
+
+%D \macros
+%D {romannumerals,Romannumerals}
+%D
+%D \TEX\ the program uses a rather tricky conversion from
+%D numbers to their roman counterparts. This conversion could
+%D of course be programmed in \TEX\ itself, but I guess Knuth
+%D found the programming trick worth presenting.
+%D
+%D \showsetup{romannumerals}
+%D \showsetup{Romannumerals}
+
\def\romannumerals#1{\ctxlua{converters.romannumerals(\number#1)}}
\def\Romannumerals#1{\ctxlua{converters.Romannumerals(\number#1)}}
-\def\greeknumerals#1{\ctxlua{converters.alphabetic(\number#1,"gr")}}
-\def\Greeknumerals#1{\ctxlua{converters.Alphabetic(\number#1,"gr")}}
+%D Arabic etc:
-\def\character #1{\ctxlua{converters.character (\number#1)}}
-\def\Character #1{\ctxlua{converters.Character (\number#1)}}
-\def\characters#1{\ctxlua{converters.characters(\number#1)}}
-\def\Characters#1{\ctxlua{converters.Characters(\number#1)}}
+\def\abjadnumerals #1{\ctxlua{converters.abjadnumerals (\number#1)}}
+\def\abjadnodotnumerals#1{\ctxlua{converters.abjadnodotnumerals(\number#1)}}
+\def\abjadnaivenumerals#1{\ctxlua{converters.arabicnumerals (\number#1)}}
\def\languagecharacters#1{\ctxlua{converters.alphabetic(\number#1,"\currentlanguage")}} % new
\def\languageCharacters#1{\ctxlua{converters.Alphabetic(\number#1,"\currentlanguage")}} % new
+% we could use an auxiliary macro to save some bytes in the format
+%
+% \def\dolanguagecharacters#1#2{\ctxlua{converters.alphabetic(\number#2,"#1")}}
+
+\def\thainumerals #1{\ctxlua{converters.alphabetic(\number#1,"thai")}}
+\def\devanagarinumerals#1{\ctxlua{converters.alphabetic(\number#1,"devanagari")}}
+\def\gurmurkhinumerals #1{\ctxlua{converters.alphabetic(\number#1,"gurmurkhi")}}
+\def\gujaratinumerals #1{\ctxlua{converters.alphabetic(\number#1,"gujarati")}}
+\def\tibetannumerals #1{\ctxlua{converters.alphabetic(\number#1,"tibetan")}}
+\def\greeknumerals #1{\ctxlua{converters.alphabetic(\number#1,"greek")}}
+\def\Greeknumerals #1{\ctxlua{converters.Alphabetic(\number#1,"greek")}}
+\def\arabicnumerals #1{\ctxlua{converters.alphabetic(\number#1,"arabic")}}
+\def\persiannumerals #1{\ctxlua{converters.alphabetic(\number#1,"persian")}}
+
+\let\arabicexnumerals \persiannumerals
+
+\def\koreannumerals #1{\ctxlua{converters.alphabetic(\number#1,"korean")}}
+\def\koreannumeralsp#1{\ctxlua{converters.alphabetic(\number#1,"korean-parent")}}
+\def\koreannumeralsc#1{\ctxlua{converters.alphabetic(\number#1,"korean-circle")}}
+
+\def\chinesenumerals #1{\ctxlua{converters.chinesenumerals (\number#1)}}
+\def\chinesecapnumerals#1{\ctxlua{converters.chinesecapnumerals(\number#1,"cap")}}
+\def\chineseallnumerals#1{\ctxlua{converters.chineseallnumerals(\number#1,"all")}}
+
+%D \macros
+%D {character,Character}
+%D
+%D Converting a number into a character can of course only
+%D be done with numbers less or equal to~26. At the cost of
+%D much more macros a faster conversion is possible, using:
+%D
+%D \starttyping
+%D \setvalue{char1}{a} \def\character#1{\getvalue{char#1}}
+%D \stoptyping
+%D
+%D But we prefer a simpel \type{\case}.
+%D
+%D \showsetup{character}
+%D \showsetup{Character}
+
+\def\unknowncharacter{-} % else in lists \relax
+
+\def\character#1{\ctxlua{converters.character (\number#1)}}
+\def\Character#1{\ctxlua{converters.Character (\number#1)}}
+
+%D \macros
+%D {characters,Characters}
+%D
+%D Converting large numbers is supported by the next two
+%D macros. This time we just count on: $\cdots$~x, y, z, aa,
+%D ab, ac~$\cdots$.
+%D
+%D \showsetup{characters}
+%D \showsetup{Characters}
+
+\def\characters#1{\ctxlua{converters.characters(\number#1)}}
+\def\Characters#1{\ctxlua{converters.Characters(\number#1)}}
+
+%D \macros
+%D {greeknumerals,Greeknumerals}
+%D
+%D Why should we only honour the romans, and not the greek?
+
+\let\greeknumerals\gobbleoneargument
+\let\Greeknumerals\gobbleoneargument
+
+%D \macros
+%D {oldstylenumerals,oldstyleromannumerals}
+%D
+%D These conversions are dedicated to Frans Goddijn.
+
+\unexpanded\def\oldstylenumerals#1%
+ {{\os\number#1}}
+
+\unexpanded\def\oldstyleromannumerals#1%
+ {{\leftrulefalse\rightrulefalse\ss\txx\boxrulewidth.15ex
+ \ruledhbox spread .15em{\hss\uppercased{\romannumerals{#1}}\hss}}}
+
+%D \macros
+%D {protectconversion}
+%D
+%D The previous two commands are not robust enough to be
+%D passed to \type{\write} en \type{\message}. That's why we
+%D introduce:
+
+\def\protectconversion
+ {\def\doconvertcharacters##1{##1}} % was \relax
+ %{\def\doconvertcharacters##1{\ifcase0##1 0\else##1\fi}} more save
+
+%D \macros
+%D {normaltime,normalyear,normalmonth,normalday}
+%D
+%D The last part of this module is dedicated to converting
+%D dates. Because we want to use as meaningful commands as
+%D possible, and because \TEX\ already uses up some of those,
+%D we save the original meanings.
+
+\savenormalmeaning\time
+\savenormalmeaning\year
+\savenormalmeaning\month
+\savenormalmeaning\day
+
+%D \macros
+%D {month,MONTH}
+%D
+%D Converting the month number into a month name is done
+%D using a case statement, abstact values and the label
+%D mechanism. This way users can easily redefine a label from
+%D for instance german into austrian.
+%D
+%D \starttyping
+%D \setuplabeltext [de] [january=J\"anner]
+%D \stoptyping
+%D
+%D Anyhow, the conversion looks like:
+
+\def\domonthtag#1%
+ {\ifcase#1%
+ \or \v!january \or \v!february \or \v!march \or \v!april
+ \or \v!may \or \v!june \or \v!july \or \v!august
+ \or \v!september \or \v!october \or \v!november \or \v!december
+ \else
+ \v!unknown
+ \fi}
+
+\def\doconvertmonthlong #1{\labeltext{\domonthtag{#1}}}
+\def\doconvertmonthshort#1{\labeltext{\domonthtag{#1}:\s!mnem}}
+
+\let\doconvertmonth\doconvertmonthlong
+
+%D We redefine the \TEX\ primitive \type{\month} as:
+%D
+%D \showsetup{month}
+%D \showsetup{MONTH}
+
+\def\monthlong {\doconvertmonthlong}
+\def\monthshort{\doconvertmonthshort}
+\def\month {\doconvertmonth}
+
+\def\MONTH #1{{\let\labeltext\LABELTEXT\month {#1}}}
+\def\MONTHLONG #1{{\let\labeltext\LABELTEXT\monthlong {#1}}}
+\def\MONTHSHORT#1{{\let\labeltext\LABELTEXT\monthshort{#1}}}
+
+%D We never explicitly needed this, but Tobias Burnus pointed
+%D out that it would be handy to convert to the day of the
+%D week. In doing so, we have to calculate the total number of
+%D days, taking leapyears into account. For those who are
+%D curious:
+%D
+%D \startitemize[packed]
+%D \item years that can be divided by 4 are leapyears
+%D \item exept years that can be divided by 100
+%D \item unless years can be divided by 400
+%D \stopitemize
+%D
+%D This makes the year 1900 into a normal year and 1996 and
+%D 2000 into leap years, right? Well, converting to string
+%D looks familiar:
+
+\def\doconvertday#1%
+ {\labeltext
+ {\ifcase#1
+ \or \v!sunday \or \v!monday \or \v!tuesday \or \v!wednesday
+ \or \v!thursday \or \v!friday \or \v!saturday \fi}}
+
+%D \macros
+%D {getdayoftheweek, dayoftheweek}
+%D
+%D The conversion algoritm is an old one and a translation from
+%D a procedure written in MODULA~2 back in the 80's. I finaly
+%D found the 4--100-400 rules in some enclopedia. Look at this
+%D messy low level routine that takes the day, month and year
+%D as arguments:
+
+\newcount\normalweekday
+
\def\getdayoftheweek#1#2#3{\normalweekday\ctxlua{converters.weekday(\number#1,\number#2,\number#3)}}
\def\dayoftheweek #1#2#3{\doconvertday{\ctxlua{converters.weekday(\number#1,\number#2,\number#3)}}}
+%D Using this macro in
+%D
+%D \startbuffer
+%D monday: \dayoftheweek {4} {5} {1992}
+%D friday: \dayoftheweek {16} {6} {1995}
+%D monday: \dayoftheweek {25} {8} {1997}
+%D saturday: \dayoftheweek {30} {8} {1997}
+%D tuesday: \dayoftheweek {2} {1} {1996}
+%D tuesday: \dayoftheweek {7} {1} {1997}
+%D tuesday: \dayoftheweek {13} {1} {1998}
+%D friday: \dayoftheweek {1} {1} {2000}
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D gives
+%D
+%D \startvoorbeeld
+%D \startlines
+%D \getbuffer
+%D \stoplines
+%D \stopvoorbeeld
+%D
+%D The macro \type {\getdayoftheweek} can be used to calculate
+%D the number \type {\normalweekday}.
+
+%D \macros
+%D {weekday,WEEKDAY}
+%D
+%D The first one is sort of redundant. It takes the day
+%D number argument.
+%D
+%D \showsetup{weekday}
+%D \showsetup{WEEKDAY}
+
+\def\weekday
+ {\doconvertday}
+
+\def\WEEKDAY#1%
+ {{\let\labeltext\LABELTEXT\doconvertday{#1}}}
+
+%D \macros
+%D {weekoftheday}
+%D
+%D {\em not yet implemented:}
+%D
+%D \starttyping
+%D \def\weekoftheday#1#2#3%
+%D {}
+%D \stoptyping
+
+%D \macros
+%D {doifleapyearelse,
+%D getdayspermonth}
+%D
+%D Sometimes we need to know if we're dealing with a
+%D leapyear, so here is a testmacro:
+%D
+%D \starttyping
+%D \doifleapyearelse{year}{yes}{no}
+%D \stoptyping
+%D
+%D An example of its use can be seen in the macro
+%D
+%D \starttyping
+%D \getdayspermonth{year}{month}
+%D \stoptyping
+%D
+%D The number of days is available in the macro \type
+%D {\numberofdays}.
+
\def\doifleapyearelse#1%
{\ifcase\ctxlua{converters.leapyear(\number#1)}
\@EA\secondoftwoarguments
@@ -45,11 +349,6 @@
\def\dayspermonth#1#2%
{\ctxlua{converters.nofdays(\number#1,\number#2)}}
-\def\calculatecurrenttime
- {\edef\currenthour {\ctxlua{converters.hour ()}}%
- \edef\currentminute{\ctxlua{converters.minute()}}%
- \edef\currentsecond{\ctxlua{converters.second()}}}
-
% problem is that we calculate with those numbers
%
% \def\time {\numexpr\ctxlua{converters.textime()}\relax}
@@ -65,26 +364,497 @@
% \dayspermonth{2000}{2}
% [\the\normaltime=\the\time]
-% we could use an auxiliary macro to save some bytes in the format
+%D \macros
+%D {currentdate, date}
+%D
+%D We use these conversion macros in the date formatting
+%D macro:
+%D
+%D \showsetup{currentdate}
+%D
+%D This macro takes care of proper spacing and delivers for
+%D instance:
+%D
+%D \startbuffer
+%D \currentdate[weekday,day,month,year] % still dutch example
+%D \currentdate[WEEKDAY,day,MONTH,year] % still dutch example
+%D \stopbuffer
+%D
+%D \startvoorbeeld
+%D \startlines
+%D \getbuffer
+%D \stoplines
+%D \stopvoorbeeld
+%D
+%D depending of course on the keywords. Here we gave:
+%D
+%D \typebuffer
+%D
+%D If needed one can also add non||keywords, like in
+%D
+%D \startbuffer
+%D \currentdate[dd,--,mm,--,yy]
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D or typeset: \getbuffer.
+%D
+%D When no argument is passed, the current date is given as
+%D specified per language (using \type{\installlanguage}).
+%D
+%D \showsetup{currentdate}
+%D
+%D \startbuffer
+%D \date
+%D \date[d=12,m=12,y=1998][weekday]
+%D \date[d=12,m=12,y=1998]
+%D \stopbuffer
+%D
+%D We can also typeset arbitrary dates, using the previous
+%D command.
+%D
+%D \typebuffer
+%D
+%D The date is specified by one character keys. When no date
+%D is given, we get the current date.
+%D
+%D \startlines
+%D \getbuffer
+%D \stoplines
+
+\def\kenmerkdatumpatroon{j,mm,dd} % jj,mm,dd changed at januari 1-1-2000
+
+\newsignal\datesignal
+
+\def\dobetweendates
+ {\ifdim\lastskip=\datesignal\relax\else
+ \unskip\space
+ \hskip\datesignal\relax
+ \fi}
+
+\newtoks \everycurrentdate
+
+\def\complexcurrentdate[#1]%
+ {\bgroup
+ \the\everycurrentdate
+ \def\betweendates{\let\betweendates\dobetweendates}%
+ % was \processcommacommandp[#1]\docomplexcurrentdate
+ \safeedef\ascii{\empty#1}% keep encoded chars
+ \@EA\processcommalist\@EA[\ascii]\docomplexcurrentdate
+ \ifdim\lastskip=\datesignal\relax
+ \unskip
+ \fi
+ \egroup}
+
+\def\docomplexcurrentdate#1%
+ {\lowercase{\edef\!!stringa{#1}}% permits usage in \smallcapped
+ \expanded{\processaction[\!!stringa]}% [#1]
+ [ \v!day=>\betweendates\the\normalday,
+ %\v!day+=>\betweendates\ordinaldaynumber\normalday,
+ \v!day+=>\betweendates\convertnumber{\v!day+}\normalday,
+ \v!month=>\betweendates\month\normalmonth,
+ \v!year=>\betweendates\the\normalyear,
+ \v!space=>\unskip\ \hskip\datesignal,% optimization -)
+ \ =>\unskip\ \hskip\datesignal,% optimization -)
+ d=>\convertnumber\v!day\normalday,
+ %d+=>\ordinaldaynumber\normalday,
+ d+=>\convertnumber{\v!day+}\normalday,
+ m=>\convertnumber\v!month\normalmonth,
+ j=>\convertnumber\v!year\normalyear,
+ y=>\convertnumber\v!year\normalyear,
+ w=>\betweendates\dayoftheweek\normalday\normalmonth\normalyear,
+ dd=>\ifnum\normalday >9 \else0\fi\the\normalday,
+ %dd+=>\ordinaldaynumber{\ifnum\normalday >9 \else0\fi\the\normalday},
+ dd+=>\convertnumber{\v!day+}{\ifnum\normalday >9 \else0\fi\the\normalday},
+ mm=>\ifnum\normalmonth>9 \else0\fi\the\normalmonth,
+ jj=>\expandafter\gobbletwoarguments\the\normalyear,
+ yy=>\expandafter\gobbletwoarguments\the\normalyear,
+ \v!weekday=>\betweendates\dayoftheweek\normalday\normalmonth\normalyear,
+ \v!referral=>\expanded{\complexcurrentdate[\kenmerkdatumpatroon]},
+ \s!unknown=>\unskip
+ % #1 and not the lowercased \commalistelement, vietnamese has text
+ % {} because #1 can have comma, like: {\ ,}
+ {#1}%
+ \hskip\datesignal
+ \def\betweendates{\let\betweendates\dobetweendates}]}
+
+\def\simplecurrentdate
+ {\expanded{\complexcurrentdate[\currentdatespecification]}}
+
+\definecomplexorsimple\currentdate
+
+\def\dodate[#1][#2]%
+ {\bgroup
+ \iffirstargument
+ \getparameters[\??da][d=\normalday,m=\normalmonth,y=\normalyear,#1]%
+ \normalday \@@dad\relax
+ \normalmonth\@@dam\relax
+ \normalyear \@@day\relax
+ \ifsecondargument
+ \currentdate[#2]%
+ \else
+ \currentdate
+ \fi
+ \else
+ \currentdate
+ \fi
+ \egroup}
+
+\def\date
+ {\dodoubleempty\dodate}
+
+%D \macros
+%D {currenttime}
+%D
+%D The currenttime is actually the jobtime. You can specify
+%D a pattern similar to the previous date macro using the
+%D keys \type {h}, \type {m} and a separator.
+
+\def\calculatecurrenttime
+ {\edef\currenthour {\ctxlua{converters.hour ()}}%
+ \edef\currentminute{\ctxlua{converters.minute()}}%
+ \edef\currentsecond{\ctxlua{converters.second()}}}
+
+\let\currenthour \!!plusone
+\let\currentminute\!!plusone
+
+\def\currenttimespecification{h,:,m}
+
+\def\complexcurrenttime[#1]%
+ {\calculatecurrenttime
+ \processallactionsinset[#1]
+ [h=>\currenthour,m=>\currentminute,\s!unknown=>\commalistelement]}
+
+\def\simplecurrenttime
+ {\expanded{\complexcurrenttime[\currenttimespecification]}}
+
+\definecomplexorsimple\currenttime
+
+%D Because we're dealing with dates, we also introduce a few
+%D day loops:
+%D
+%D \starttyping
+%D \processmonth{year}{month}{command}
+%D \processyear{year}{command}{before}{after}
+%D \stoptyping
+%D
+%D The counters \type {\normalyear}, \type {\normalmonth} and
+%D \type{\normalday} can be used for for date manipulations.
+
+\long\def\processmonth#1#2#3% year month command
+ {\bgroup
+ \getdayspermonth{#1}{#2}%
+ \dostepwiserecurse1\numberofdays1%
+ {\normalyear #1\relax
+ \normalmonth#2\relax
+ \normalday \recurselevel\relax
+ #3}%
+ \egroup}
+
+\def\lastmonth{12} % can be set to e.g. 1 when testing
+
+\long\def\processyear#1#2#3#4% year command before after
+ {\bgroup
+ \dorecurse\lastmonth
+ {\normalyear #1\relax
+ \normalmonth\recurselevel\relax
+ #3\processmonth\normalyear\normalmonth{#2}#4}%
+ \egroup}
+
+%D \macros
+%D {defineconversion, convertnumber}
+%D
+%D Conversion involves the macros that we implemented earlier
+%D in this module.
+%D
+%D \showsetup{defineconversion}
+%D \showsetup{convertnumber}
+%D
+%D We can feed this command with conversion macros as well as
+%D a set of conversion symbols. Both need a bit different
+%D treatment.
+%D
+%D \starttyping
+%D \defineconversion [roman] [\romannumerals]
+%D \defineconversion [set 1] [$\star$,$\bullet$,$\ast$]
+%D \stoptyping
+%D
+%D You can define a language dependent conversion with:
+%D
+%D \starttyping
+%D \defineconversion [en] [whatever] [\something]
+%D \stoptyping
+
+% \def\dodefineconversion[#1][#2]%
+% {\ConvertConstantAfter\doifinstringelse{,}{#2}
+% {\scratchcounter=0
+% \def\docommand##1%
+% {\advance\scratchcounter 1
+% \setvalue{\??cv#1\the\scratchcounter}{##1}}%
+% \processcommalist[#2]\docommand
+% \setvalue{\??cv#1}##1{\csname\??cv#1##1\endcsname}}
+% {\setvalue{\??cv#1}{#2}}}
%
-% \def\dolanguagecharacters#1#2{\ctxlua{converters.alphabetic(\number#2,"#1")}}
+% \def\defineconversion%
+% {\dodoubleargument\dodefineconversion}
-% this does not belong here, but in a lang-module
+\def\defineconversion
+ {\dotripleempty\dodefineconversion}
-\def\arabicnumerals #1{\ctxlua{converters.alphabetic(\number#1,"arabic")}}
-\def\persiannumerals #1{\ctxlua{converters.alphabetic(\number#1,"persian")}}
-\def\thainumerals #1{\ctxlua{converters.alphabetic(\number#1,"thai")}}
-\def\devanagarinumerals#1{\ctxlua{converters.alphabetic(\number#1,"devanagari")}}
-\def\gurmurkhinumerals #1{\ctxlua{converters.alphabetic(\number#1,"gurmurkhi")}}
-\def\gujaratinumerals #1{\ctxlua{converters.alphabetic(\number#1,"gujarati")}}
-\def\tibetannumerals #1{\ctxlua{converters.alphabetic(\number#1,"tibetan")}}
+\def\dodefineconversion[#1][#2][#3]%
+ {\ifthirdargument
+ \dododefineconversion[#1][#2][#3]%
+ \else
+ \dododefineconversion[][#1][#2]%
+ \fi}
+
+%D \starttyping
+%D \def\dododefineconversion[#1][#2][#3]%
+%D {\ConvertConstantAfter\doifinstringelse{,}{#3}
+%D {\scratchcounter\zerocount
+%D \def\docommand##1%
+%D {\advance\scratchcounter \plusone
+%D \setvalue{\??cv#1#2\the\scratchcounter}{##1}}%
+%D \processcommalist[#3]\docommand
+%D \setvalue{\??cv#1#2}##1{\executeifdefined{\??cv#1#2##1}\unknown}} % catch out-of-range numbers
+%D {\setvalue{\??cv#1#2}{#3}}}
+%D \stoptyping
+
+%D This approach has the disadvantage that when you run out of
+%D symbols you get unknown results. The following implementation
+%D permits overloading of the converter:
+
+\def\dododefineconversion[#1][#2][#3]%
+ {\ConvertConstantAfter\doifinstringelse{,}{#3}
+ {\scratchcounter\zerocount
+ \def\docommand##1%
+ {\advance\scratchcounter \plusone
+ \setvalue{\??cv#1#2\the\scratchcounter}{##1}}%
+ \processcommalist[#3]\docommand
+ \setevalue{\??cv#1#2}##1%
+ {\noexpand\docheckedconversion{#1#2}{\the\scratchcounter}{##1}}}
+ {\setvalue{\??cv#1#2}{#3}}}
+
+\def\docheckedconversion#1#2#3% class maxnumber number
+ {\executeifdefined{\??cv#1#3}\unknown}
+
+%D When Gerben reported problems with footnote numbering per page,
+%D Taco came with the following wrap around solution. So, let's
+%D overload the checked conversion macro:
+
+\def\docheckedconversion#1#2#3% class maxnumber number
+ {\executeifdefined{\??cv#1\modulatednumber{#2}{#3}}\unknown}
+
+%D Taco's modulo code is implemented in the system module
+%D \type {syst-con}.
+
+%D If a conversion is just a font switch then we need to make sure
+%D that the number is indeed end up as number in the input, so we
+%D need to handle the second argument.
+
+\def\convertnumber#1#2%
+ {\csname\??cv
+ \ifcsname\??cv\currentlanguage#1\endcsname
+ \currentlanguage#1%
+ \else\ifcsname\??cv#1\endcsname
+ #1%
+ \else
+ \s!default
+ \fi\fi
+ \endcsname{\number#2}}
+
+\def\doifconversiondefinedelse#1%
+ {\ifcsname\??cv\currentlanguage#1\endcsname
+ \@EA\firstoftwoarguments
+ \else\ifcsname\??cv#1\endcsname
+ \@EAEAEA\firstoftwoarguments
+ \else
+ \@EAEAEA\secondoftwoarguments
+ \fi\fi}
+
+\def\doifelseconversionnumber#1#2% slow but seldom used
+ {\doifdefinedelse{\??cv#1#2}}
+
+%D Handy.
+
+\setvalue{\??cv:\c!n:\v!one }{1}
+\setvalue{\??cv:\c!n:\v!two }{2}
+\setvalue{\??cv:\c!n:\v!three}{3}
+\setvalue{\??cv:\c!n:\v!four }{4}
+\setvalue{\??cv:\c!n:\v!five }{5}
+
+\def\wordtonumber#1#2{\ifcsname\??cv:\c!n:#1\endcsname\csname\??cv:\c!n:#1\endcsname\else#2\fi}
+
+% \defineconversion[ctx][c,o,n,t,e,x,t]
+%
+% \doloop{\doifelseconversionnumber{ctx}{\recurselevel}{[\recurselevel]}{\exitloop}}
+
+%D \macros
+%D {ordinaldaynumber, highordinalstr, ordinalstr}
+%D
+%D Efficient general ordinal number converters are sometimes
+%D difficult to implement. Fortunately dates never exceed the
+%D number~31.
+
+\ifx\high \undefined \let\high \firstofoneargument \fi
+\ifx\notsmallcapped\undefined \let\notsmallcapped\firstofoneargument \fi
+
+\def\highordinalstr#1{\high{\notsmallcapped{#1}}}
+\def\ordinalstr #1{\notsmallcapped{#1}}
+
+\def\ordinaldaynumber#1% \strippedcsname\ordinaldaynumber
+ {\expanded{\executeifdefined{\currentlanguage ordinaldaynumber}\noexpand\firstofoneargument{\number#1}}}
+
+%D As longs as symbols are linked to levels or numbers, we can
+%D also use the conversion mechanism, but in for instance the
+%D itemization macros, we prefer symbols because they can more
+%D easier be (partially) redefined. Symbols are implemented
+%D in another module.
+
+\def\smallcappedromannumerals#1{\smallcapped{\romannumerals{#1}}}
+\def\smallcappedcharacters #1{\smallcapped{\characters {#1}}}
+
+\defineconversion [] [\numbers] % the default conversion
+\defineconversion [\v!empty] [\gobbleoneargument]
+\defineconversion [\v!none] [\numbers]
+\defineconversion [\s!default] [\numbers]
+
+\defineconversion [month] [\doconvertmonthlong]
+\defineconversion [month:mnem] [\doconvertmonthshort]
+
+\defineconversion [\v!character] [\character]
+\defineconversion [\v!Character] [\Character]
+
+\defineconversion [\v!characters] [\characters]
+\defineconversion [\v!Characters] [\Characters]
+
+\defineconversion [a] [\characters]
+\defineconversion [A] [\Characters]
+\defineconversion [AK] [\smallcappedcharacters]
+\defineconversion [KA] [\smallcappedcharacters]
+
+\defineconversion [\v!numbers] [\numbers]
+\defineconversion [\v!Numbers] [\Numbers]
+\defineconversion [\v!mediaeval] [\mediaeval]
+
+\defineconversion [n] [\numbers]
+\defineconversion [N] [\Numbers]
+\defineconversion [m] [\mediaeval]
+\defineconversion [o] [\oldstylenumerals]
+\defineconversion [O] [\oldstylenumerals]
+\defineconversion [or] [\oldstyleromannumerals]
+
+\defineconversion [\v!romannumerals] [\romannumerals]
+\defineconversion [\v!Romannumerals] [\Romannumerals]
+
+\defineconversion [i] [\romannumerals]
+\defineconversion [I] [\Romannumerals]
+\defineconversion [r] [\romannumerals]
+\defineconversion [R] [\Romannumerals]
+
+\defineconversion [KR] [\smallcappedromannumerals]
+\defineconversion [RK] [\smallcappedromannumerals]
+
+\defineconversion [\v!greek] [\greeknumerals]
+\defineconversion [\v!Greek] [\Greeknumerals]
+
+\defineconversion [g] [\greeknumerals]
+\defineconversion [G] [\Greeknumerals]
+
+\defineconversion [arabicnumerals] [\arabicnumerals]
+\defineconversion [persiannumerals] [\persiannumerals]
+
+\defineconversion [abjadnumerals] [\abjadnumerals]
+\defineconversion [abjadnodotnumerals] [\adjadnodotnumerals]
+\defineconversion [abjadnaivenumerals] [\adjadnaivenumerals]
+
+\defineconversion [thainumerals] [\thainumerals]
+\defineconversion [devanagarinumerals] [\devanagarinumerals]
+\defineconversion [gurmurkhinumerals] [\gurmurkhinumerals]
+\defineconversion [gujaratinumerals] [\gujaratinumerals]
+\defineconversion [tibetannumerals] [\tibetannumerals]
+\defineconversion [greeknumerals] [\greeknumerals]
+\defineconversion [Greeknumerals] [\Greeknumerals]
+\defineconversion [arabicnumerals] [\arabicnumerals]
+\defineconversion [persiannumerals] [\persiannumerals]
+\defineconversion [arabicexnumerals] [\arabicexnumerals]
+
+
+\defineconversion [koreannumerals] [\koreannumerals]
+\defineconversion [koreanparentnumerals] [\koreanparentnumerals]
+\defineconversion [koreancirclenumerals] [\koreancirclenumerals]
+
+\defineconversion [kr] [\koreannumerals]
+\defineconversion [kr-p] [\koreanparentnumerals]
+\defineconversion [kr-c] [\koreancirclenumerals]
+
+\defineconversion [chinesenumerals] [\chinesenumerals]
+\defineconversion [chinesecapnumeralscn] [\chinesecapnumerals]
+\defineconversion [chineseallnumeralscn] [\chineseallnumerals]
+
+\defineconversion [cn] [\chinesenumerals]
+\defineconversion [cn-c] [\chinesecapnumerals]
+\defineconversion [cn-a] [\chineseallnumerals]
+
+%D Symbol sets:
+
+\ifx\symbol\undefined \def\symbol[#1]{#1} \fi % todo
+
+\defineconversion
+ [set 0]
+ [{\symbol[bullet]},
+ {\symbol[dash]},
+ {\symbol[star]},
+ {\symbol[triangle]},
+ {\symbol[circle]},
+ {\symbol[medcircle]},
+ {\symbol[bigcircle]},
+ {\symbol[square]}]
+
+\defineconversion
+ [set 1]
+ [\mathematics{\star},
+ \mathematics{\star\star},
+ \mathematics{\star\star\star},
+ \mathematics{\ddagger},
+ \mathematics{\ddagger\ddagger},
+ \mathematics{\ddagger\ddagger\ddagger},
+ \mathematics{\ast},
+ \mathematics{\ast\ast},
+ \mathematics{\ast\ast\ast}]
+
+\defineconversion
+ [set 2]
+ [\mathematics{*},
+ \mathematics{\dag},
+ \mathematics{\ddag},
+ \mathematics{**},
+ \mathematics{\dag\dag},
+ \mathematics{\ddag\ddag},
+ \mathematics{***},
+ \mathematics{\dag\dag\dag},
+ \mathematics{\ddag\ddag\ddag},
+ \mathematics{****},
+ \mathematics{\dag\dag\dag\dag},
+ \mathematics{\ddag\ddag\ddag\ddag}]
-\defineconversion[arabicnumerals] [\arabicnumerals]
-\defineconversion[persiannumerals] [\persiannumerals]
-\defineconversion[thainumerals] [\thainumerals]
-\defineconversion[devanagarinumerals][\devanagarinumerals]
-\defineconversion[gurmurkhinumerals] [\gurmurkhinumerals]
-\defineconversion[gujaratinumerals] [\gujaratinumerals]
-\defineconversion[tibetannumerals] [\tibetannumerals]
+\defineconversion
+ [set 3]
+ [\mathematics{\star},
+ \mathematics{\star\star},
+ \mathematics{\star\star\star},
+ \mathematics{\ddagger},
+ \mathematics{\ddagger\ddagger},
+ \mathematics{\ddagger\ddagger\ddagger},
+ \mathematics{\P},
+ \mathematics{\P\P},
+ \mathematics{\P\P\P},
+ \mathematics{\S},
+ \mathematics{\S\S},
+ \mathematics{\S\S\S},
+ \mathematics{\ast},
+ \mathematics{\ast\ast},
+ \mathematics{\ast\ast\ast}]
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-con.tex b/Master/texmf-dist/tex/context/base/core-con.tex
deleted file mode 100644
index 33e252fff21..00000000000
--- a/Master/texmf-dist/tex/context/base/core-con.tex
+++ /dev/null
@@ -1,776 +0,0 @@
-%D \module
-%D [ file=core-con,
-%D version=1997.26.08,
-%D title=\CONTEXT\ Core Macros,
-%D subtitle=Conversion Macros,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{Context Core Macros / Conversion Macros}
-
-\unprotect
-
-\ifx\currentlanguage\undefined \let\currentlanguage\empty \fi
-\ifx\labeltext \undefined \let\labeltext\firstofoneargument \fi
-
-%D This module deals with all kind of conversions from numbers
-%D and dates. I considered splitting this module in a support
-%D one and a core one, but to keep things simple as well as
-%D preserve the overview, I decided against splitting.
-
-\let\spr\firstofoneargument % separator
-\let\stp\firstofoneargument % stopper
-
-% cleaner, some day:
-%
-% \def\isolateseparators % etex only, even works with list separator overloading
-% {\unexpanded\def\spr##1{{##1}}%
-% \unexpanded\def\stp##1{{##1}}}
-
-% needed for arab :
-
-\def\isolateseparators % even works with list separator overloading
- {\def\spr##1{{##1}}%
- \def\stp##1{{##1}}}
-
-%D \macros
-%D {numbers}
-%D
-%D First we deal with the dummy conversion of numbers using the
-%D \TEX\ primitive \type{\number}. The uppercase alternative is
-%D only there for compatibility with the other conversion
-%D macros. We could do without \type{#1} but this way we get
-%D rid of unwanted braces. For the savety we also define a
-%D non||sence uppercase alternative.
-%D
-%D \showsetup{numbers}
-%D
-%D \starttyping
-%D \def\numbers#1{\number#1}
-%D \def\Numbers#1{\number#1}
-%D \stoptyping
-%D
-%D Due to read ahead, as in \type{[\pagenumber\space]} the space will
-%D disappear, unless we use:
-
-\def\numbers#1{\purenumber{#1}}
-\def\Numbers#1{\purenumber{#1}}
-
-%D \macros
-%D {romannumerals,Romannumerals}
-%D
-%D \TEX\ the program uses a rather tricky conversion from
-%D numbers to their roman counterparts. This conversion could
-%D of course be programmed in \TEX\ itself, but I guess Knuth
-%D found the programming trick worth presenting.
-%D
-%D \showsetup{romannumerals}
-%D \showsetup{Romannumerals}
-
-\let\romannumerals\gobbleoneargument
-\let\Romannumerals\gobbleoneargument
-
-%D \macros
-%D {character,Character}
-%D
-%D Converting a number into a character can of course only
-%D be done with numbers less or equal to~26. At the cost of
-%D much more macros a faster conversion is possible, using:
-%D
-%D \starttyping
-%D \setvalue{char1}{a} \def\character#1{\getvalue{char#1}}
-%D \stoptyping
-%D
-%D But we prefer a simpel \type{\case}.
-%D
-%D \showsetup{character}
-%D \showsetup{Character}
-
-\def\unknowncharacter{-} % else in lists \relax
-
-\let\character\gobbleoneargument
-\let\Character\gobbleoneargument
-
-%D \macros
-%D {characters,Characters}
-%D
-%D Converting large numbers is supported by the next two
-%D macros. This time we just count on: $\cdots$~x, y, z, aa,
-%D ab, ac~$\cdots$.
-%D
-%D \showsetup{characters}
-%D \showsetup{Characters}
-
-\let\characters\gobbleoneargument
-\let\Characters\gobbleoneargument
-
-%D \macros
-%D {greeknumerals,Greeknumerals}
-%D
-%D Why should we only honour the romans, and not the greek?
-
-\let\greeknumerals\gobbleoneargument
-\let\Greeknumerals\gobbleoneargument
-
-%D \macros
-%D {oldstylenumerals,oldstyleromannumerals}
-%D
-%D These conversions are dedicated to Frans Goddijn.
-
-\unexpanded\def\oldstylenumerals#1%
- {{\os\number#1}}
-
-\unexpanded\def\oldstyleromannumerals#1%
- {{\leftrulefalse\rightrulefalse\ss\txx\boxrulewidth.15ex
- \ruledhbox spread .15em{\hss\uppercased{\romannumerals{#1}}\hss}}}
-
-%D \macros
-%D {protectconversion}
-%D
-%D The previous two commands are not robust enough to be
-%D passed to \type{\write} en \type{\message}. That's why we
-%D introduce:
-
-\def\protectconversion
- {\def\doconvertcharacters##1{##1}} % was \relax
- %{\def\doconvertcharacters##1{\ifcase0##1 0\else##1\fi}} more save
-
-%D \macros
-%D {normaltime,normalyear,normalmonth,normalday}
-%D
-%D The last part of this module is dedicated to converting
-%D dates. Because we want to use as meaningful commands as
-%D possible, and because \TEX\ already uses up some of those,
-%D we save the original meanings.
-
-\savenormalmeaning\time
-\savenormalmeaning\year
-\savenormalmeaning\month
-\savenormalmeaning\day
-
-%D \macros
-%D {month,MONTH}
-%D
-%D Converting the month number into a month name is done
-%D using a case statement, abstact values and the label
-%D mechanism. This way users can easily redefine a label from
-%D for instance german into austrian.
-%D
-%D \starttyping
-%D \setuplabeltext [de] [january=J\"anner]
-%D \stoptyping
-%D
-%D Anyhow, the conversion looks like:
-
-\def\domonthtag#1%
- {\ifcase#1%
- \or \v!january \or \v!february \or \v!march \or \v!april
- \or \v!may \or \v!june \or \v!july \or \v!august
- \or \v!september \or \v!october \or \v!november \or \v!december
- \else
- \v!unknown
- \fi}
-
-\def\doconvertmonthlong #1{\labeltext{\domonthtag{#1}}}
-\def\doconvertmonthshort#1{\labeltext{\domonthtag{#1}:\s!mnem}}
-
-\let\doconvertmonth\doconvertmonthlong
-
-%D We redefine the \TEX\ primitive \type{\month} as:
-%D
-%D \showsetup{month}
-%D \showsetup{MONTH}
-
-\def\monthlong {\doconvertmonthlong}
-\def\monthshort{\doconvertmonthshort}
-\def\month {\doconvertmonth}
-
-\def\MONTH #1{{\let\labeltext\LABELTEXT\month {#1}}}
-\def\MONTHLONG #1{{\let\labeltext\LABELTEXT\monthlong {#1}}}
-\def\MONTHSHORT#1{{\let\labeltext\LABELTEXT\monthshort{#1}}}
-
-%D We never explicitly needed this, but Tobias Burnus pointed
-%D out that it would be handy to convert to the day of the
-%D week. In doing so, we have to calculate the total number of
-%D days, taking leapyears into account. For those who are
-%D curious:
-%D
-%D \startitemize[packed]
-%D \item years that can be divided by 4 are leapyears
-%D \item exept years that can be divided by 100
-%D \item unless years can be divided by 400
-%D \stopitemize
-%D
-%D This makes the year 1900 into a normal year and 1996 and
-%D 2000 into leap years, right? Well, converting to string
-%D looks familiar:
-
-\def\doconvertday#1%
- {\labeltext
- {\ifcase#1
- \or \v!sunday \or \v!monday \or \v!tuesday \or \v!wednesday
- \or \v!thursday \or \v!friday \or \v!saturday \fi}}
-
-%D \macros
-%D {getdayoftheweek, dayoftheweek}
-%D
-%D The conversion algoritm is an old one and a translation from
-%D a procedure written in MODULA~2 back in the 80's. I finaly
-%D found the 4--100-400 rules in some enclopedia. Look at this
-%D messy low level routine that takes the day, month and year
-%D as arguments:
-
-\newcount\normalweekday
-
-\let\getdayoftheweek\gobblethreearguments
-\let\dayoftheweek \gobblethreearguments
-
-%D Using this macro in
-%D
-%D \startbuffer
-%D monday: \dayoftheweek {4} {5} {1992}
-%D friday: \dayoftheweek {16} {6} {1995}
-%D monday: \dayoftheweek {25} {8} {1997}
-%D saturday: \dayoftheweek {30} {8} {1997}
-%D tuesday: \dayoftheweek {2} {1} {1996}
-%D tuesday: \dayoftheweek {7} {1} {1997}
-%D tuesday: \dayoftheweek {13} {1} {1998}
-%D friday: \dayoftheweek {1} {1} {2000}
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D gives
-%D
-%D \startvoorbeeld
-%D \startlines
-%D \getbuffer
-%D \stoplines
-%D \stopvoorbeeld
-%D
-%D The macro \type {\getdayoftheweek} can be used to calculate
-%D the number \type {\normalweekday}.
-
-%D \macros
-%D {weekday,WEEKDAY}
-%D
-%D The first one is sort of redundant. It takes the day
-%D number argument.
-%D
-%D \showsetup{weekday}
-%D \showsetup{WEEKDAY}
-
-\def\weekday
- {\doconvertday}
-
-\def\WEEKDAY#1%
- {{\let\labeltext\LABELTEXT\doconvertday{#1}}}
-
-%D \macros
-%D {weekoftheday}
-%D
-%D {\em not yet implemented:}
-%D
-%D \starttyping
-%D \def\weekoftheday#1#2#3%
-%D {}
-%D \stoptyping
-
-%D \macros
-%D {doifleapyearelse,
-%D getdayspermonth}
-%D
-%D Sometimes we need to know if we're dealing with a
-%D leapyear, so here is a testmacro:
-%D
-%D \starttyping
-%D \doifleapyearelse{year}{yes}{no}
-%D \stoptyping
-%D
-%D An example of its use can be seen in the macro
-%D
-%D \starttyping
-%D \getdayspermonth{year}{month}
-%D \stoptyping
-%D
-%D The number of days is available in the macro \type
-%D {\numberofdays}.
-
-\def\doifleapyearelse #1{\firstoftwoarguments}
-\def\getdayspermonth#1#2{\let\numberofdays\!!zerocount}
-
-%D \macros
-%D {currentdate, date}
-%D
-%D We use these conversion macros in the date formatting
-%D macro:
-%D
-%D \showsetup{currentdate}
-%D
-%D This macro takes care of proper spacing and delivers for
-%D instance:
-%D
-%D \startbuffer
-%D \currentdate[weekday,day,month,year] % still dutch example
-%D \currentdate[WEEKDAY,day,MONTH,year] % still dutch example
-%D \stopbuffer
-%D
-%D \startvoorbeeld
-%D \startlines
-%D \getbuffer
-%D \stoplines
-%D \stopvoorbeeld
-%D
-%D depending of course on the keywords. Here we gave:
-%D
-%D \typebuffer
-%D
-%D If needed one can also add non||keywords, like in
-%D
-%D \startbuffer
-%D \currentdate[dd,--,mm,--,yy]
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D or typeset: \getbuffer.
-%D
-%D When no argument is passed, the current date is given as
-%D specified per language (using \type{\installlanguage}).
-%D
-%D \showsetup{currentdate}
-%D
-%D \startbuffer
-%D \date
-%D \date[d=12,m=12,y=1998][weekday]
-%D \date[d=12,m=12,y=1998]
-%D \stopbuffer
-%D
-%D We can also typeset arbitrary dates, using the previous
-%D command.
-%D
-%D \typebuffer
-%D
-%D The date is specified by one character keys. When no date
-%D is given, we get the current date.
-%D
-%D \startlines
-%D \getbuffer
-%D \stoplines
-
-\def\kenmerkdatumpatroon{j,mm,dd} % jj,mm,dd changed at januari 1-1-2000
-
-\newsignal\datesignal
-
-\def\dobetweendates
- {\ifdim\lastskip=\datesignal\relax\else
- \unskip\space
- \hskip\datesignal\relax
- \fi}
-
-\newtoks \everycurrentdate
-
-\def\complexcurrentdate[#1]%
- {\bgroup
- \the\everycurrentdate
- \def\betweendates{\let\betweendates\dobetweendates}%
- % was \processcommacommandp[#1]\docomplexcurrentdate
- \safeedef\ascii{\empty#1}% keep encoded chars
- \@EA\processcommalist\@EA[\ascii]\docomplexcurrentdate
- \ifdim\lastskip=\datesignal\relax
- \unskip
- \fi
- \egroup}
-
-\def\docomplexcurrentdate#1%
- {\lowercase{\edef\!!stringa{#1}}% permits usage in \smallcapped
- \expanded{\processaction[\!!stringa]}% [#1]
- [ \v!day=>\betweendates\the\normalday,
- %\v!day+=>\betweendates\ordinaldaynumber\normalday,
- \v!day+=>\betweendates\convertnumber{\v!day+}\normalday,
- \v!month=>\betweendates\month\normalmonth,
- \v!year=>\betweendates\the\normalyear,
- \v!space=>\unskip\ \hskip\datesignal,% optimization -)
- \ =>\unskip\ \hskip\datesignal,% optimization -)
- d=>\convertnumber\v!day\normalday,
- %d+=>\ordinaldaynumber\normalday,
- d+=>\convertnumber{\v!day+}\normalday,
- m=>\convertnumber\v!month\normalmonth,
- j=>\convertnumber\v!year\normalyear,
- y=>\convertnumber\v!year\normalyear,
- w=>\betweendates\dayoftheweek\normalday\normalmonth\normalyear,
- dd=>\ifnum\normalday >9 \else0\fi\the\normalday,
- %dd+=>\ordinaldaynumber{\ifnum\normalday >9 \else0\fi\the\normalday},
- dd+=>\convertnumber{\v!day+}{\ifnum\normalday >9 \else0\fi\the\normalday},
- mm=>\ifnum\normalmonth>9 \else0\fi\the\normalmonth,
- jj=>\expandafter\gobbletwoarguments\the\normalyear,
- yy=>\expandafter\gobbletwoarguments\the\normalyear,
- \v!weekday=>\betweendates\dayoftheweek\normalday\normalmonth\normalyear,
- \v!referral=>\expanded{\complexcurrentdate[\kenmerkdatumpatroon]},
- \s!unknown=>\unskip
- % #1 and not the lowercased \commalistelement, vietnamese has text
- % {} because #1 can have comma, like: {\ ,}
- {#1}%
- \hskip\datesignal
- \def\betweendates{\let\betweendates\dobetweendates}]}
-
-\def\simplecurrentdate
- {\expanded{\complexcurrentdate[\currentdatespecification]}}
-
-\definecomplexorsimple\currentdate
-
-\def\dodate[#1][#2]%
- {\bgroup
- \iffirstargument
- \getparameters[\??da][d=\normalday,m=\normalmonth,y=\normalyear,#1]%
- \normalday \@@dad\relax
- \normalmonth\@@dam\relax
- \normalyear \@@day\relax
- \ifsecondargument
- \currentdate[#2]%
- \else
- \currentdate
- \fi
- \else
- \currentdate
- \fi
- \egroup}
-
-\def\date
- {\dodoubleempty\dodate}
-
-%D \macros
-%D {currenttime}
-%D
-%D The currenttime is actually the jobtime. You can specify
-%D a pattern similar to the previous date macro using the
-%D keys \type {h}, \type {m} and a separator.
-
-\let\calculatecurrenttime\relax
-
-\let\currenthour \!!plusone
-\let\currentminute\!!plusone
-
-\appendtoks \calculatecurrenttime \to \everyjob
-
-\def\currenttimespecification{h,:,m}
-
-\def\complexcurrenttime[#1]%
- {\calculatecurrenttime
- \processallactionsinset[#1]
- [h=>\currenthour,m=>\currentminute,\s!unknown=>\commalistelement]}
-
-\def\simplecurrenttime
- {\expanded{\complexcurrenttime[\currenttimespecification]}}
-
-\definecomplexorsimple\currenttime
-
-%D Because we're dealing with dates, we also introduce a few
-%D day loops:
-%D
-%D \starttyping
-%D \processmonth{year}{month}{command}
-%D \processyear{year}{command}{before}{after}
-%D \stoptyping
-%D
-%D The counters \type {\normalyear}, \type {\normalmonth} and
-%D \type{\normalday} can be used for for date manipulations.
-
-\long\def\processmonth#1#2#3% year month command
- {\bgroup
- \getdayspermonth{#1}{#2}%
- \dostepwiserecurse1\numberofdays1%
- {\normalyear #1\relax
- \normalmonth#2\relax
- \normalday \recurselevel\relax
- #3}%
- \egroup}
-
-\def\lastmonth{12} % can be set to e.g. 1 when testing
-
-\long\def\processyear#1#2#3#4% year command before after
- {\bgroup
- \dorecurse\lastmonth
- {\normalyear #1\relax
- \normalmonth\recurselevel\relax
- #3\processmonth\normalyear\normalmonth{#2}#4}%
- \egroup}
-
-%D \macros
-%D {defineconversion, convertnumber}
-%D
-%D Conversion involves the macros that we implemented earlier
-%D in this module.
-%D
-%D \showsetup{defineconversion}
-%D \showsetup{convertnumber}
-%D
-%D We can feed this command with conversion macros as well as
-%D a set of conversion symbols. Both need a bit different
-%D treatment.
-%D
-%D \starttyping
-%D \defineconversion [roman] [\romannumerals]
-%D \defineconversion [set 1] [$\star$,$\bullet$,$\ast$]
-%D \stoptyping
-%D
-%D You can define a language dependent conversion with:
-%D
-%D \starttyping
-%D \defineconversion [en] [whatever] [\something]
-%D \stoptyping
-
-% \def\dodefineconversion[#1][#2]%
-% {\ConvertConstantAfter\doifinstringelse{,}{#2}
-% {\scratchcounter=0
-% \def\docommand##1%
-% {\advance\scratchcounter 1
-% \setvalue{\??cv#1\the\scratchcounter}{##1}}%
-% \processcommalist[#2]\docommand
-% \setvalue{\??cv#1}##1{\csname\??cv#1##1\endcsname}}
-% {\setvalue{\??cv#1}{#2}}}
-%
-% \def\defineconversion%
-% {\dodoubleargument\dodefineconversion}
-
-\def\defineconversion
- {\dotripleempty\dodefineconversion}
-
-\def\dodefineconversion[#1][#2][#3]%
- {\ifthirdargument
- \dododefineconversion[#1][#2][#3]%
- \else
- \dododefineconversion[][#1][#2]%
- \fi}
-
-%D \starttyping
-%D \def\dododefineconversion[#1][#2][#3]%
-%D {\ConvertConstantAfter\doifinstringelse{,}{#3}
-%D {\scratchcounter\zerocount
-%D \def\docommand##1%
-%D {\advance\scratchcounter \plusone
-%D \setvalue{\??cv#1#2\the\scratchcounter}{##1}}%
-%D \processcommalist[#3]\docommand
-%D \setvalue{\??cv#1#2}##1{\executeifdefined{\??cv#1#2##1}\unknown}} % catch out-of-range numbers
-%D {\setvalue{\??cv#1#2}{#3}}}
-%D \stoptyping
-
-%D This approach has the disadvantage that when you run out of
-%D symbols you get unknown results. The following implementation
-%D permits overloading of the converter:
-
-\def\dododefineconversion[#1][#2][#3]%
- {\ConvertConstantAfter\doifinstringelse{,}{#3}
- {\scratchcounter\zerocount
- \def\docommand##1%
- {\advance\scratchcounter \plusone
- \setvalue{\??cv#1#2\the\scratchcounter}{##1}}%
- \processcommalist[#3]\docommand
- \setevalue{\??cv#1#2}##1%
- {\noexpand\docheckedconversion{#1#2}{\the\scratchcounter}{##1}}}
- {\setvalue{\??cv#1#2}{#3}}}
-
-\def\docheckedconversion#1#2#3% class maxnumber number
- {\executeifdefined{\??cv#1#3}\unknown}
-
-%D When Gerben reported problems with footnote numbering per page,
-%D Taco came with the following wrap around solution. So, let's
-%D overload the checked conversion macro:
-
-\def\docheckedconversion#1#2#3% class maxnumber number
- {\executeifdefined{\??cv#1\modulatednumber{#2}{#3}}\unknown}
-
-%D Taco's modulo code is implemented in the system module
-%D \type {syst-con}.
-
-%D If a conversion is just a font switch then we need to make sure
-%D that the number is indeed end up as number in the input, so we
-%D need to handle the second argument.
-
-\beginETEX \ifcsname
-
-\def\convertnumber#1#2%
- {\csname\??cv
- \ifcsname\??cv\currentlanguage#1\endcsname
- \currentlanguage#1%
- \else\ifcsname\??cv#1\endcsname
- #1%
- \else
- \s!default
- \fi\fi
- \endcsname{\number#2}}
-
-\def\doifconversiondefinedelse#1%
- {\ifcsname\??cv\currentlanguage#1\endcsname
- \@EA\firstoftwoarguments
- \else\ifcsname\??cv#1\endcsname
- \@EAEAEA\firstoftwoarguments
- \else
- \@EAEAEA\secondoftwoarguments
- \fi\fi}
-
-\endETEX
-
-\beginTEX
-
-\def\convertnumber#1#2%
- {\csname\??cv
- \@EA\ifx\csname\??cv\currentlanguage#1\endcsname\relax
- \@EA\ifx\csname\??cv#1\endcsname\relax
- \s!default
- \else
- #1%
- \fi
- \else
- \currentlanguage#1%
- \fi
- \endcsname{\number#2}}
-
-\def\doifconversiondefinedelse#1%
- {\@EA\ifx\csname\??cv\currentlanguage#1\endcsname\relax
- \@EA\ifx\csname\??cv#1\endcsname\relax
- \@EAEAEA\secondoftwoarguments
- \else
- \@EAEAEA\firstoftwoarguments
- \fi
- \else
- \@EA\firstoftwoarguments
- \fi}
-
-\endTEX
-
-\def\doifelseconversionnumber#1#2% slow but seldom used
- {\doifdefinedelse{\??cv#1#2}}
-
-% \defineconversion[ctx][c,o,n,t,e,x,t]
-%
-% \doloop{\doifelseconversionnumber{ctx}{\recurselevel}{[\recurselevel]}{\exitloop}}
-
-\defineconversion [\s!default] [\numbers]
-
-%D As longs as symbols are linked to levels or numbers, we can
-%D also use the conversion mechanism, but in for instance the
-%D itemization macros, we prefer symbols because they can more
-%D easier be (partially) redefined. Symbols are implemented
-%D in another module.
-
-\defineconversion [] [\numbers] % the default conversion
-
-\defineconversion [a] [\characters]
-\defineconversion [A] [\Characters]
-\defineconversion [AK] [\smallcapped\characters]
-\defineconversion [KA] [\smallcapped\characters]
-
-\defineconversion [n] [\numbers]
-\defineconversion [N] [\Numbers]
-\defineconversion [m] [\mediaeval]
-
-\defineconversion [i] [\romannumerals]
-\defineconversion [I] [\Romannumerals]
-\defineconversion [r] [\romannumerals]
-\defineconversion [R] [\Romannumerals]
-\defineconversion [KR] [\smallcapped\romannumerals]
-\defineconversion [RK] [\smallcapped\romannumerals]
-
-\defineconversion [g] [\greeknumerals]
-\defineconversion [G] [\Greeknumerals]
-
-\defineconversion [o] [\oldstylenumerals]
-\defineconversion [O] [\oldstylenumerals]
-\defineconversion [or] [\oldstyleromannumerals]
-
-\defineconversion [\v!character] [\character]
-\defineconversion [\v!Character] [\Character]
-
-\defineconversion [\v!characters] [\characters]
-\defineconversion [\v!Characters] [\Characters]
-
-\defineconversion [\v!numbers] [\numbers]
-\defineconversion [\v!Numbers] [\Numbers]
-\defineconversion [\v!mediaeval] [\mediaeval]
-
-\defineconversion [\v!romannumerals] [\romannumerals]
-\defineconversion [\v!Romannumerals] [\Romannumerals]
-
-\defineconversion [\v!greek] [\greeknumerals]
-\defineconversion [\v!Greek] [\Greeknumerals]
-
-\defineconversion [arabicnumerals] [\numbers]
-\defineconversion [persiannumerals] [\numbers]
-
-\defineconversion [month] [\doconvertmonthlong]
-\defineconversion [month:mnem] [\doconvertmonthshort]
-
-% Some bonus ones:
-
-\defineconversion [\v!empty] [\gobbleoneargument]
-\defineconversion [\v!none] [\numbers]
-
-\ifx\symbol\undefined \def\symbol[#1]{#1} \fi % todo
-
-\defineconversion
- [set 0]
- [{\symbol[bullet]},
- {\symbol[dash]},
- {\symbol[star]},
- {\symbol[triangle]},
- {\symbol[circle]},
- {\symbol[medcircle]},
- {\symbol[bigcircle]},
- {\symbol[square]}]
-
-\defineconversion
- [set 1]
- [\mathematics{\star},
- \mathematics{\star\star},
- \mathematics{\star\star\star},
- \mathematics{\ddagger},
- \mathematics{\ddagger\ddagger},
- \mathematics{\ddagger\ddagger\ddagger},
- \mathematics{\ast},
- \mathematics{\ast\ast},
- \mathematics{\ast\ast\ast}]
-
-\defineconversion
- [set 2]
- [\mathematics{*},
- \mathematics{\dag},
- \mathematics{\ddag},
- \mathematics{**},
- \mathematics{\dag\dag},
- \mathematics{\ddag\ddag},
- \mathematics{***},
- \mathematics{\dag\dag\dag},
- \mathematics{\ddag\ddag\ddag},
- \mathematics{****},
- \mathematics{\dag\dag\dag\dag},
- \mathematics{\ddag\ddag\ddag\ddag}]
-
-\defineconversion
- [set 3]
- [\mathematics{\star},
- \mathematics{\star\star},
- \mathematics{\star\star\star},
- \mathematics{\ddagger},
- \mathematics{\ddagger\ddagger},
- \mathematics{\ddagger\ddagger\ddagger},
- \mathematics{\P},
- \mathematics{\P\P},
- \mathematics{\P\P\P},
- \mathematics{\S},
- \mathematics{\S\S},
- \mathematics{\S\S\S},
- \mathematics{\ast},
- \mathematics{\ast\ast},
- \mathematics{\ast\ast\ast}]
-
-%D Plugins:
-
-\loadmarkfile{core-con}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-ctx.lua b/Master/texmf-dist/tex/context/base/core-ctx.lua
new file mode 100644
index 00000000000..eb9003bf1fb
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/core-ctx.lua
@@ -0,0 +1,94 @@
+if not modules then modules = { } end modules ['supp-fil'] = {
+ version = 1.001,
+ comment = "companion to supp-fil.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local trace_prepfiles = false trackers.register("resolvers.prepfiles", function(v) trace_prepfiles = v end)
+
+commands = commands or { }
+
+local list, suffix, islocal, found = { }, "prep", false, false
+
+function commands.loadctxpreplist()
+ local ctlname = file.replacesuffix(tex.jobname,"ctl")
+ if lfs.isfile(ctlname) then
+ local x = xml.load(ctlname)
+ if x then
+ islocal = xml.found(x,"ctx:preplist[@local=='yes']")
+ if trace_prepfiles then
+ if islocal then
+ commands.writestatus("systems","loading ctx log file (local)") -- todo: m!systems
+ else
+ commands.writestatus("systems","loading ctx log file (specified)") -- todo: m!systems
+ end
+ end
+ for r, d, k in xml.elements(x,"ctx:prepfile") do
+ local dk = d[k]
+ local name = xml.content(dk)
+ if islocal then
+ name = file.basename(name)
+ end
+ local done = dk.at['done'] or 'no'
+ if trace_prepfiles then
+ commands.writestatus("systems","registering %s -> %s",done)
+ end
+ found = true
+ list[name] = done -- 'yes' or 'no'
+ end
+ end
+ end
+end
+
+-- -- --
+
+local function found(name) -- used in resolve
+ local prepname = name .. "." .. suffix
+ if list[name] and lfs.isfile(prepname) then
+ if trace_prepfiles then
+ commands.writestatus("systems", "preprocessing: using %s",prepname)
+ end
+ return prepname
+ end
+ return false
+end
+
+local function resolve(name) -- used a few times later on
+ local filename = file.collapse_path(name)
+ local prepname = islocal and found(file.basename(name))
+ if prepname then
+ return prepname
+ end
+ prepname = found(filename)
+ if prepname then
+ return prepname
+ end
+ return false
+end
+
+--~ support.doiffileexistelse(name)
+
+local processfile = commands.processfile
+local doifinputfileelse = commands.doifinputfileelse
+
+function commands.processfile(name,depth)
+ local prepname = found and resolve(name)
+ if prepname then
+ return processfile(prepname,0)
+ end
+ return processfile(name,depth)
+end
+
+function commands.doifinputfileelse(name,depth)
+ local prepname = found and resolve(name)
+ if prepname then
+ return doifinputfileelse(prepname,0)
+ end
+ return doifinputfileelse(name,depth)
+end
+
+function commands.preparedfile(name)
+ return (found and resolve(name)) or name
+end
diff --git a/Master/texmf-dist/tex/context/base/core-ctx.tex b/Master/texmf-dist/tex/context/base/core-ctx.mkii
index 22f2ded4ad6..93cf8b4be2c 100644
--- a/Master/texmf-dist/tex/context/base/core-ctx.tex
+++ b/Master/texmf-dist/tex/context/base/core-ctx.mkii
@@ -11,13 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Core Macros / Ctx Job Files}
-
-%D After some experimenting this code moved into the core. It
-%D overloades a few file reading macros and permits runtime
-%D conversion and job control.
-
-% todo: rewrite in lua
+\writestatus{loading}{ConTeXt Core Macros / Job Control}
\unprotect
@@ -66,7 +60,7 @@
% no preprocessing
\or
% only check for existence
- \iftracefiles\writestatus\m!systems{preprocessing - check exitence of \readfilename\preprocesssuffix}\fi
+ \iftracefiles\writestatus\m!systems{preprocessing - check existence of \readfilename\preprocesssuffix}\fi
\doiffileexistselse{\readfilename\preprocesssuffix}
{\chardef\preprocessstate\plusone}
\donothing
diff --git a/Master/texmf-dist/tex/context/base/core-ctx.mkiv b/Master/texmf-dist/tex/context/base/core-ctx.mkiv
new file mode 100644
index 00000000000..c401b09f0b9
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/core-ctx.mkiv
@@ -0,0 +1,26 @@
+%D \module
+%D [ file=core-ctx,
+%D version=2006.08.16, % old stuff
+%D title=\CONTEXT\ Core Macros,
+%D subtitle=Job Control,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Core Macros / Job Control}
+
+\unprotect
+
+\chardef\preprocessmethod \plustwo % always check in mkiv
+
+\registerctxluafile{core-ctx}{1.000}
+
+\def\loadctxpreplist{\ctxlua{commands.loadctxpreplist()}\global\let\loadctxpreplist\relax}
+
+\appendtoks\loadctxpreplist\to\everystarttext % will become: \prependtoks\loadctxpreplist\to\everyjob
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-def.mkii b/Master/texmf-dist/tex/context/base/core-def.mkii
new file mode 100644
index 00000000000..e51cd96d360
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/core-def.mkii
@@ -0,0 +1,84 @@
+%D \module
+%D [ file=core-def,
+%D version=2002.05.07,
+%D title=\CONTEXT\ Core Macros,
+%D subtitle=Defaults,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Core Macros / Defaults}
+
+%D Here we collect settings that cannot be done earlier due to
+%D depedencies. More code will moved to this module later.
+
+\unprotect
+
+\usesymbols[mis,mvs] % 'glm' no longer needed due to lm
+
+\usesymbols[nav] \setupsymbolset[navigation 1]
+
+\setupinteraction[\c!symbolset=navigation 1]
+
+% initialization order:
+
+%appendtoks \initializeluainstances \to \everyjob
+\appendtoks \showcontextbanner \to \everyjob
+\appendtoks \initializenewlinechar \to \everyjob
+\appendtoks \checksystemcommandmode \to \everyjob
+\appendtoks \calculatecurrenttime \to \everyjob
+\appendtoks \loadsystemfiles \to \everyjob
+
+\appendtoks \loadoptionfile \to \everyjob % can load files !
+
+\appendtoks \preloadfonts \to \everyjob
+\appendtoks \settopskip \to \everyjob
+\appendtoks \preloadlanguages \to \everyjob
+\appendtoks \preloadspecials \to \everyjob
+\appendtoks \openspecialfile \to \everyjob
+\appendtoks \openutilities \to \everyjob
+\appendtoks \splitjobfilename \to \everyjob
+\appendtoks \checknotes \to \everyjob % depends on bodyfont
+\appendtoks \initializeMPgraphics \to \everyjob % after loading system files
+\appendtoks \reportsystemcommandmode \to \everyjob
+\appendtoks \initializemainlanguage \to \everyjob
+\appendtoks \settrue\trackfilenames \to \everyjob
+\appendtoks \newbackgroundfalse \to \everyjob % global
+
+\ifdefined\initializepagecounters
+ \appendtoks \initializepagecounters \to \everyjob
+\fi
+
+\appendtoks \directsetup{*runtime:options} \to \everyjob % we could erase them afterwards % order can change
+\appendtoks \directsetup{*runtime:modules} \to \everyjob % we could erase them afterwards % order can change
+
+\appendtoks \checkpreprocessor \to \everyjob
+
+%appendtoks \page[\v!last] \page \to \everybye % moved to core-job, we need to do this cleaner
+\appendtoks \ifarrangingpages\poparrangedpages\fi \to \everybye
+\appendtoks \registerfileinfo[end]\jobname \to \everybye
+\appendtoks \savenofpages \to \everybye
+\appendtoks \savenofsubpages \to \everybye
+
+\appendtoks \closeutilities \to \everygoodbye
+\appendtoks \stopcopyingblocks \to \everygoodbye
+\appendtoks \closespecialfile \to \everygoodbye
+
+\prependtoks \resetutilities \to \everystarttext % moved 28-02-2002
+\prependtoks \loadtwopassdata \to \everystarttext % moved 28-02-2002
+\appendtoks \checkreferences \to \everystarttext % new 04-12-1999
+
+% \appendtoks\everyjob\expandafter{\the\everyjob\checkpreprocessor}\to\everydump
+
+% normally one does not want this to happen nested, maybe there
+% is more; non public vars btw, will become conditionals
+
+\ifx\writetoregisterfalse\undefined \else \appendtoks \writetoregisterfalse \to \everybeforeutilityread \fi
+\ifx\writetolistfalse \undefined \else \appendtoks \writetolistfalse \to \everybeforeutilityread \fi
+\ifx\notesenabledfalse \undefined \else \appendtoks \notesenabledfalse \to \everybeforeutilityread \fi
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-def.mkiv b/Master/texmf-dist/tex/context/base/core-def.mkiv
new file mode 100644
index 00000000000..583eb5870d0
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/core-def.mkiv
@@ -0,0 +1,72 @@
+%D \module
+%D [ file=core-def,
+%D version=2002.05.07,
+%D title=\CONTEXT\ Core Macros,
+%D subtitle=Defaults,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Core Macros / Defaults}
+
+%D Here we collect settings that cannot be done earlier due to
+%D depedencies. More code will moved to this module later.
+
+\unprotect
+
+\usesymbols[mis,mvs,nav]
+
+\setupsymbolset[navigation 1]
+
+\setupinteraction[\c!symbolset=navigation 1]
+
+% initialization order:
+
+\appendtoks \showcontextbanner \to \everyjob
+\appendtoks \initializenewlinechar \to \everyjob
+\appendtoks \checksystemcommandmode \to \everyjob
+\appendtoks \calculatecurrenttime \to \everyjob
+\appendtoks \loadsystemfiles \to \everyjob
+\appendtoks \loadoptionfile \to \everyjob % can load files !
+\appendtoks \preloadfonts \to \everyjob
+\appendtoks \settopskip \to \everyjob
+\appendtoks \preloadlanguages \to \everyjob
+\appendtoks \preloadspecials \to \everyjob
+\appendtoks \splitjobfilename \to \everyjob
+\appendtoks \checknotes \to \everyjob % depends on bodyfont
+\appendtoks \initializeMPgraphics \to \everyjob % after loading system files
+\appendtoks \reportsystemcommandmode \to \everyjob
+\appendtoks \initializemainlanguage \to \everyjob
+\appendtoks \MPLIBregister \to \everyjob
+\appendtoks \xmlinitialize \to \everyjob
+\appendtoks \settrue\trackfilenames \to \everyjob
+\appendtoks \newbackgroundfalse \to \everyjob % global
+\appendtoks \initializepagecounters \to \everyjob
+\appendtoks \directsetup{*runtime:options} \to \everyjob % we could erase them afterwards % order can change
+\appendtoks \directsetup{*runtime:modules} \to \everyjob % we could erase them afterwards % order can change
+\appendtoks \checkpreprocessor \to \everyjob
+
+%appendtoks \page[\v!last] \page \to \everybye % moved to core-job, we need to do this cleaner
+\appendtoks \ifarrangingpages\poparrangedpages\fi \to \everybye
+\appendtoks \registerfileinfo[end]\jobname \to \everybye
+
+\appendtoks \MPLIBallocate{1000} \to \everydump
+
+\prependtoks \resetallattributes \to \everybeforeoutput
+
+\appendtoks \the\everybackendshipout \to \everyshipout
+\prependtoks \the\everylastbackendshipout \to \everylastshipout
+
+% temporary here:
+
+\ifdefined\in \let\normalmathin \in \unexpanded\def\in {\mathortext\normalmathin \dospecialin } \else \let\in \dospecialin \fi
+\ifdefined\at \let\normalmathat \at \unexpanded\def\at {\mathortext\normalmathat \dospecialat } \else \let\at \dospecialat \fi
+\ifdefined\about \let\normalmathabout\about \unexpanded\def\about{\mathortext\normalmathabout\dospecialabout} \else \let\about\dospecialabout \fi
+\ifdefined\from \let\normalmathfrom \from \unexpanded\def\from {\mathortext\normalmathfrom \dospecialfrom } \else \let\from \dospecialfrom \fi
+\ifdefined\over \let\normalmathover \over \unexpanded\def\over {\mathortext\normalmathover \dospecialabout} \else \let\over \dospecialabout \fi
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-def.tex b/Master/texmf-dist/tex/context/base/core-def.tex
deleted file mode 100644
index c7c49858e07..00000000000
--- a/Master/texmf-dist/tex/context/base/core-def.tex
+++ /dev/null
@@ -1,27 +0,0 @@
-%D \module
-%D [ file=core-def,
-%D version=2002.05.07,
-%D title=\CONTEXT\ Core Macros,
-%D subtitle=Defaults,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{Context Core Macros / Defaults}
-
-%D Here we collect settings that cannot be done earlier due to
-%D depedencies. More code will moved to this module later.
-
-\unprotect
-
-\usesymbols[mis,mvs] % 'glm' no longer needed due to lm
-
-\usesymbols[nav] \setupsymbolset[navigation 1]
-
-\setupinteraction[\c!symbolset=navigation 1]
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-env.mkii b/Master/texmf-dist/tex/context/base/core-env.mkii
new file mode 100644
index 00000000000..a22594b27a4
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/core-env.mkii
@@ -0,0 +1,543 @@
+%D \module
+%D [ file=core-env, % was core-new
+%D version=1995.01.01, % wrong
+%D title=\CONTEXT\ Core Macros,
+%D subtitle=New ones,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Core Macros / Environments}
+
+\unprotect
+
+% Clean labels:
+
+\bgroup % some day this will go away / we could use detokenize as well
+
+% actually we should handle all discretionaries here
+
+\catcode`:=\@@active
+
+\gdef\cleanuplabel#1%
+ {\begingroup
+ \let:\lettercolon
+ \xdef\cleanlabel{#1}%
+ \endgroup}
+
+\gdef\cleanupprefixedlabel#1#2%
+ {\begingroup
+ \let:\lettercolon
+ \xdef\cleanprefix{#1}%
+ \xdef\cleanlabel {#2}%
+ \endgroup}
+
+\gdef\protectlabels
+ {\let:\lettercolon}
+
+\global\def\blabelgroup {\begingroup \let:\lettercolon}
+\global\let\elabelgroup \endgroup
+
+\gdef\labelcsname
+ {\begingroup\let:\lettercolon
+ \expandafter\endgroup\csname}
+
+\gdef\labelvalue#1%
+ {\labelcsname#1\endcsname}
+
+\egroup
+
+%D Modes:
+%D
+%D \starttyping
+%D \enablemode[screen,paper,bound]
+%D
+%D \doifmodeelse {paper} {this} {that}
+%D \doifmode {paper,screen} {this}
+%D \doifnotmode {paper,bound} {that}
+%D
+%D \startmode [list]
+%D \stopmode
+%D
+%D \startnotmode [list]
+%D \stopnotmode
+%D \stoptyping
+%D
+%D system modes have a * as prefix
+%D
+%D Sometimes, we want to prevent a mode for being set. Think
+%D of situations where a style enables a mode, but an outer
+%D level style does not want that. Preventing can be
+%D considered a permanent disabling on forehand.
+
+\def\@mode@{@md@}
+
+\def\systemmodeprefix{*}
+
+\def\disabledmode {0}
+\def\enabledmode {1}
+\def\preventedmode {2}
+
+% fast internal ones
+
+\def\setmode #1{\@EA\let\csname\@mode@#1\endcsname\enabledmode }
+\def\resetmode#1{\@EA\let\csname\@mode@#1\endcsname\disabledmode}
+
+\def\setsystemmode #1{\@EA\let\csname\@mode@\systemmodeprefix#1\endcsname\enabledmode }
+\def\resetsystemmode#1{\@EA\let\csname\@mode@\systemmodeprefix#1\endcsname\disabledmode}
+
+% user ones
+
+\def\preventmode{\unprotect\dopreventmode}
+\def\enablemode {\unprotect\doenablemode }
+\def\disablemode{\unprotect\dodisablemode}
+
+\def\dopreventmode[#1]{\protect\cleanuplabel{#1}\rawprocesscommalist[\cleanlabel]\dodopreventmode}
+\def\doenablemode [#1]{\protect\cleanuplabel{#1}\rawprocesscommalist[\cleanlabel]\dodoenablemode }
+\def\dodisablemode[#1]{\protect\cleanuplabel{#1}\rawprocesscommalist[\cleanlabel]\dododisablemode}
+
+\def\dodopreventmode#1%
+ {\@EA\let\csname\@mode@#1\endcsname\preventedmode}
+
+\def\dodoenablemode#1% mode can be relax
+ {\ifcase0\csname\@mode@#1\endcsname\relax
+ \@EA\let\csname\@mode@#1\endcsname\enabledmode
+ \fi}
+
+\def\dododisablemode#1%
+ {\ifcase0\csname\@mode@#1\endcsname\or
+ \@EA\let\csname\@mode@#1\endcsname\disabledmode
+ \fi}
+
+% handy for mp
+
+\def\booleanmodevalue#1% can be \relax
+ {\expandafter\ifx\csname\@mode@#1\endcsname\relax
+ fals%
+ \else\ifnum0\csname\@mode@#1\endcsname=0
+ fals%
+ \else
+ tru%
+ \fi\fi e}
+
+% check macros
+
+\newif\ifcheckedmode
+
+\def\dodocheckformode#1%
+ {\ifcase0\csname\@mode@#1\endcsname\or\checkedmodetrue\fi}
+
+\def\docheckformode#1#2#3% will be sped up with a quit
+ {\cleanuplabel{#3}%
+ \protect\checkedmodefalse\rawprocesscommacommand[\cleanlabel]\dodocheckformode
+ \ifcheckedmode\@EA#1\else\@EA#2\fi}
+
+\def\dodocheckforallmodes#1%
+ {\ifcase0\csname\@mode@#1\endcsname\relax\checkedmodefalse\or\or\checkedmodefalse\fi}
+
+\def\docheckforallmodes#1#2#3% will be sped up with a quit
+ {\cleanuplabel{#3}%
+ \protect\checkedmodetrue\rawprocesscommacommand[\cleanlabel]\dodocheckforallmodes
+ \ifcheckedmode\@EA#1\else\@EA#2\fi}
+
+% simple ones
+
+\def\doifmodeelse{\unprotect\dodoifmodeelse}
+\def\doifmode {\unprotect\dodoifmode}
+\def\doifnotmode {\unprotect\dodoifnotmode}
+\def\startmode {\unprotect\dostartmode}
+\def\startnotmode{\unprotect\dostartnotmode}
+
+\def\dodoifmodeelse
+ {\docheckformode\firstoftwoarguments\secondoftwoarguments}
+
+\def\dodoifmode
+ {\docheckformode\firstofoneargument\gobbleoneargument}
+
+\def\dodoifnotmode
+ {\docheckformode\gobbleoneargument\firstofoneargument}
+
+\long\def\dostartmode[#1]%
+ {\docheckformode\donothing\dostopmode{#1}}
+
+\long\def\dostartnotmode[#1]%
+ {\docheckformode\dostopnotmode\donothing{#1}}
+
+\let\stopmode \donothing
+\let\stopnotmode\donothing
+
+\long\def\dostopmode #1\stopmode {}
+\long\def\dostopnotmode#1\stopnotmode{}
+
+\def\doifallmodeselse{\unprotect\dodoifallmodeselse}
+\def\doifallmodes {\unprotect\dodoifallmodes}
+\def\doifnotallmodes {\unprotect\dodoifnotallmodes}
+\def\startallmodes {\unprotect\dostartallmodes}
+\def\startnotallmodes{\unprotect\dostartnotallmodes}
+
+\def\dodoifallmodeselse
+ {\docheckforallmodes\firstoftwoarguments\secondoftwoarguments}
+
+\def\dodoifallmodes
+ {\docheckforallmodes\firstofoneargument\gobbleoneargument}
+
+\def\dodoifnotallmodes
+ {\docheckforallmodes\gobbleoneargument\firstofoneargument}
+
+\long\def\dostartallmodes[#1]%
+ {\docheckforallmodes\donothing\dostopallmodes{#1}}
+
+\long\def\dostartnotallmodes[#1]%
+ {\docheckforallmodes\dostopnotallmodes\donothing{#1}}
+
+\let\stopallmodes \donothing
+\let\stopnotallmodes\donothing
+
+\long\def\dostopallmodes #1\stopallmodes {}
+\long\def\dostopnotallmodes#1\stopnotallmodes{}
+
+% Setups
+
+\let\startsetups\relax % to please dep checker
+\let\stopsetups \relax % to please dep checker
+
+\expanded
+ {\long\def\@EA\noexpand\csname\e!start\v!setups\endcsname
+ {\begingroup\noexpand\doifnextoptionalelse
+ {\noexpand\startsetupsA\@EA\noexpand\csname\e!stop\v!setups\endcsname}
+ {\noexpand\startsetupsB\@EA\noexpand\csname\e!stop\v!setups\endcsname}}}
+
+\letvalue{\e!stop\v!setups}\relax
+
+\unexpanded \def\setups{\doifnextbgroupelse\dosetupsA\dosetupsB} % {..} or [..]
+\unexpanded \def\setup {\doifnextbgroupelse\dosetups \dosetupsC} % {..} or [..]
+
+\def\dosetupsA #1{\cleanuplabel{#1}\processcommacommand[\cleanlabel]\dosetups} % {..}
+\def\dosetupsB[#1]{\cleanuplabel{#1}\processcommacommand[\cleanlabel]\dosetups} % [..]
+\def\dosetupsC[#1]{\cleanuplabel{#1}\dosetups\cleanlabel} % [..]
+
+% \def\dosetups#1% the grid option will be extended to other main modes
+% {\executeifdefined{\??su\ifgridsnapping\v!grid\fi:#1}
+% {\executeifdefined{\??su :#1}\gobbleoneargument}\empty} % takes one argument
+%
+% \def\setupwithargument#1% the grid option will be extended to other main modes
+% {\executeifdefined{\??su:#1}\gobbleoneargument}
+
+% better:
+
+% \def\dosetups#1% the grid option will be extended to other main modes
+% {\executeifdefined{\??su\ifgridsnapping\v!grid\fi:#1}
+% {\executeifdefined{\??su :#1}\gobbleoneargument}\empty} % takes one argument
+%
+% \def\setupwithargument#1% the grid option will be extended to other main modes
+% {\executeifdefined{\??su:#1}\gobbleoneargument}
+
+% faster:
+
+\letvalue{\??su:\letterpercent}\gobbleoneargument
+
+\def\dosetups#1% the grid option will be extended to other main modes
+ {\csname\??su
+ \ifgridsnapping
+ \ifcsname\??su\v!grid:#1\endcsname\v!grid:#1\else\ifcsname\??su:#1\endcsname:#1\else:\letterpercent\fi\fi
+ \else
+ \ifcsname\??su:#1\endcsname:#1\else:\letterpercent\fi
+ \fi
+ \endcsname\empty} % takes one argument
+
+\def\setupwithargument#1% the grid option will be extended to other main modes
+ {\csname\??su:\ifcsname\??su:#1\endcsname#1\else\letterpercent\fi\endcsname}
+
+\let\directsetup\dosetups
+
+% somehow fails ...
+%
+% \letvalue{\??su:..}\gobbleoneargument
+%
+% \def\dosetups#1% the grid option will be extended to other main modes
+% {\csname \??su
+% \ifcsname\??su\ifgridsnapping\v!grid\fi:#1\endcsname\v!grid:#1\else
+% \ifcsname\??su :#1\endcsname :#1\else
+% :..\fi\fi
+% \endcsname\empty} % takes one argument
+%
+% \def\setupwithargument#1% the grid option will be extended to other main modes
+% {\csname\??su:\ifcsname\??su:#1\endcsname#1\else..\fi\endcsname}
+
+\let\directsetup\dosetups
+
+\def\doifsetupselse#1% to be done: grid
+ {\doifdefinedelse{\??su:#1}}
+
+\chardef\setupseolmode\plusone
+
+\def\startsetups {\xxstartsetups\plusone \stopsetups } \let\stopsetups \relax
+\def\startlocalsetups{\xxstartsetups\plusone \stoplocalsetups} \let\stoplocalsetups\relax
+\def\startrawsetups {\xxstartsetups\zerocount\stoprawsetups } \let\stoprawsetups \relax
+\def\startxmlsetups {\xxstartsetups\plustwo \stopxmlsetups } \let\stopxmlsetups \relax
+
+\def\xxstartsetups#1#2%
+ {\begingroup\chardef\setupseolmode#1\doifnextoptionalelse{\startsetupsA#2}{\startsetupsB#2}}
+
+\def\startsetupsA#1% [ ] delimited
+ {\ifcase\setupseolmode\or\catcode`\^^M\@@ignore\or\catcode`\^^M\@@ignore\catcode`\|\@@other\fi
+ \dotripleempty\dostartsetups[#1]}
+
+\def\startsetupsB#1#2 % space delimited
+ {\ifcase\setupseolmode\or\catcode`\^^M\@@ignore\or\catcode`\^^M\@@ignore\catcode`\|\@@other\fi
+ \dodostartsetups#1\empty{#2}}
+
+\def\startsetupsC[#1][#2][#3]{\dodostartsetups#1{#2}{#3}} % [..] [..]
+\def\startsetupsD[#1][#2][#3]{\dodostartsetups#1\empty{#2}} % [..]
+
+\def\dostartsetups
+ {\ifthirdargument\@EA\startsetupsC\else\@EA\startsetupsD\fi}
+
+% \long\def\dodostartsetups#1#2#3% watch out: not \grabuntil
+% {\dograbuntil#1{\endgroup\dodoglobal\long\setvalue{\??su#2:#3}}} % \doglobal
+%
+% better:
+
+% \long\def\dodostartsetups#1#2#3% watch out: not \grabuntil
+% {\cleanuplabel{\??su#2:#3}\dograbuntil#1{\endgroup\dodoglobal\long\setvalue\cleanlabel}} % \doglobal
+
+% \long\def\dodostartsetups#1#2#3%
+% {\cleanuplabel{\??su#2:#3}%
+% \long\def\dododostartsetups##1#1{\endgroup\dodoglobal\long\setvalue\cleanlabel####1{##1}}\dododostartsetups}
+
+\long\def\dodostartsetups#1#2#3%
+ {\cleanuplabel{\??su#2:#3}%
+ \long\def\dododostartsetups##1#1%
+ {\endgroup
+ \dodoglobal % bah
+ \long\expandafter\setvalue\expandafter\cleanlabel\expandafter####\expandafter1\expandafter{##1}}%
+ \dododostartsetups\empty} % the empty trick prevents the { } in {arg} from being eaten up
+
+\def\systemsetupsprefix{*}
+
+\def\systemsetups#1{\dosetups{\systemsetupsprefix#1}}
+
+\def\resetsetups[#1]% see x-fo for usage
+ {\ifundefined{\??su\ifgridsnapping\v!grid\fi:#1}%
+ \dodoglobal\letbeundefined{\??su:#1}%
+ \else
+ \dodoglobal\letbeundefined{\??su\ifgridsnapping\v!grid\fi:#1}%
+ \fi}
+
+% or
+%
+% \def\resetsetups[#1]%
+% {\letbeundefined
+% {\??su:%
+% \ifundefined{\??su\ifgridsnapping\v!grid\fi:#1}#1\else\ifgridsnapping\v!grid\fi%
+% #1}}
+
+%D new and beta and will become a module instead
+
+\def\defineshortcut
+ {\dotripleargument\dodefineshortcut}
+
+\def\dodefineshortcut[#1][#2][#3]%
+ {\ifthirdargument
+ \doifelsenothing{#1}
+ {\dododefineshortcut[<>][#2][#3]}
+ {\dododefineshortcut[#1][#2][#3]}%
+ \else\ifsecondargument
+ \dododefineshortcut[<>][#1][#2]%
+ \else
+ \dododefineshortcut[<>][][#1]%
+ \fi\fi}
+
+\def\dododefineshortcut[#1#2][#3][#4]% #1 is the trigger, #2 the delimiter/tag
+ {\doifundefined{\??te\??te\string#2}{\letvalue{\??te\??te\string#2}=#1}%
+ \defineactivecharacter #1 {\@EA\doshortcut\string#2} %
+ \getparameters
+ [\??te\string#2#3]
+ [\c!commands=,\c!command=,\c!style=,\c!color=,#4]}
+
+\def\doshortcut#1%
+ {\ifmmode
+ \getvalue{\??te\??te#1}%
+ \else
+ \bgroup
+ \catcode`#1=\@@other
+ \def\dodoshortcut##1#1%
+ {\def\shorttag{\??te#1}%
+ \def\shortcut{##1}%
+ \dododoshortcut##1:\end}%
+ \@EA\dodoshortcut
+ \fi}
+
+\def\dododoshortcut#1:#2\end
+ {\doifelsenothing{#2}
+ {\doifundefinedelse{\shorttag\c!commands}
+ {\shortcut}
+ {\@EA\dodododoshortcut\@EA\shorttag\@EA:\shortcut:\end}}
+ {\doifundefinedelse{\shorttag#1\c!commands}
+ {\shortcut}
+ {\dodododoshortcut\shorttag#1:#2\end}}%
+ \egroup}
+
+\def\dodododoshortcut#1:#2:\end
+ {\getvalue{#1\c!commands}%
+ \doattributes{#1}\c!style\c!color{\getvalue{#1\c!command}{#2}}}
+
+%D \defineshortcut [style=type]
+%D \defineshortcut [b] [style=bold]
+%D \defineshortcut [e] [style=\em]
+%D \defineshortcut [t] [style=type]
+%D \defineshortcut [c] [style=cap]
+%D \defineshortcut [k] [style=cap]
+%D \defineshortcut [u] [style=type,command=\hyphenatedurl]
+%D
+%D \startlines
+%D test <ziezo> test
+%D test test <t:ziezo>
+%D test test <b:ziezo>
+%D test test <w:ziezo>
+%D zus<>zo zus<:>zo zus<::>zo
+%D test test <t:ziezo> dat (ziezo)
+%D test test <t::ziezo> dat (:ziezo)
+%D test test <t:ziezo:> dat (ziezo:)
+%D test test <t:zi:ezo:> dat (zi:ezo:)
+%D well, <u:http://www.pragma-ade.nl> looks fuzzy
+%D $10<20$
+%D \stoplines
+%D
+%D \defineshortcut [<>] [i] [style=\it]
+%D \defineshortcut [()] [b] [style=\bf]
+%D \defineshortcut [++] [s] [style=\sl]
+%D \defineshortcut [//] [u] [style=\underbars]
+%D \defineshortcut [--] [a] [style=\overstrike]
+%D
+%D \startlines
+%D it seems <i:to work> well
+%D it seems (b:to work) well
+%D it seems +s:to work+ well
+%D it seems /u:to work/ well
+%D it seems -a:to work- well
+%D \stoplines
+
+%D \macros
+%D {setvariables,getvariable,getvariabledefault}
+%D
+%D \starttyping
+%D \setvariables[xx][title=]
+%D \setvariables[xx][title=test test]
+%D \setvariables[xx][title=test $x=1$ test] % fatal error reported
+%D \setvariables[xx][title=test {$x=1$} test]
+%D \setvariables[xx][title] % fatal error reported
+%D \setvariables[xx][titletitel=e]
+%D \stoptyping
+
+\def\??vars{@@vars}
+
+\def\setvariables {\dotripleargument\dosetvariables[\getrawparameters ]}
+\def\setevariables{\dotripleargument\dosetvariables[\getraweparameters]}
+\def\setgvariables{\dotripleargument\dosetvariables[\getrawgparameters]}
+\def\setxvariables{\dotripleargument\dosetvariables[\getrawxparameters]}
+
+\def\globalsetvariables % obsolete
+ {\dotripleargument\dosetvariables[\globalgetrawparameters]}
+
+\long\def\dosetvariables[#1][#2][#3]% tricky, test on s-pre-60
+ {\errorisfataltrue
+ \doifelse{#2}\currentvariableclass
+ {#1[\??vars:#2:][#3]}%
+ {\pushmacro\currentvariableclass
+ \def\currentvariableclass{#2}%
+ \getvariable{#2}\s!reset
+ #1[\??vars:#2:][#3]%
+ \getvariable{#2}\s!set
+ \popmacro\currentvariableclass}%
+ \errorisfatalfalse}
+
+\long\def\setvariable #1#2#3{\long\setvalue {\??vars:#1:#2}{#3}}
+\long\def\setevariable#1#2#3{\long\setevalue{\??vars:#1:#2}{#3}}
+\long\def\setgvariable#1#2#3{\long\setgvalue{\??vars:#1:#2}{#3}}
+\long\def\setxvariable#1#2#3{\long\setxvalue{\??vars:#1:#2}{#3}}
+
+\def\getvariable#1#2% to be sped up
+ {\csname
+ \ifcsname\??vars:#1:#2\endcsname\??vars:#1:#2\else\s!empty\fi
+ \endcsname}
+
+\def\showvariable#1#2%
+ {\showvalue{\ifcsname\??vars:#1:#2\endcsname\??vars:#1:#2\else\s!empty\fi}}
+
+\let\currentvariableclass\empty
+
+%D \macros
+%D {doifelsevariable,doifvariable,doifnotvariable}
+%D
+%D A few trivial macros:
+
+\def\doifelsevariable#1#2%
+ {\ifcsname\??vars:#1:#2\endcsname
+ \expandafter\firstoftwoarguments
+ \else
+ \expandafter\secondoftwoarguments
+ \fi}
+
+\def\doifvariable#1#2%
+ {\ifcsname\??vars:#1:#2\endcsname
+ \expandafter\firstofoneargument
+ \else
+ \expandafter\gobbleoneargument
+ \fi}
+
+\def\doifnotvariable#1#2%
+ {\ifcsname\??vars:#1:#2\endcsname
+ \expandafter\gobbleoneargument
+ \else
+ \expandafter\firstofoneargument
+ \fi}
+
+\def\getvariabledefault#1#2% #3% can be command, so no ifcsname here
+ {\executeifdefined{\??vars:#1:#2}}% {#3}
+
+%D \macros
+%D {checkvariables}
+%D
+%D I'll probably forget that this on exists.
+
+\def\checkvariables
+ {\dodoubleargument\docheckvariables}
+
+\def\docheckvariables
+ {\dogetparameters\docheckrawvalue}
+
+\def\docheckrawvalue#1#2#3%
+ {\doifundefined {\??vars:#1:#2}{\setvalue{\??vars:#1:#2}{#3}}
+ {\doifvaluenothing{\??vars:#1:#2}{\setvalue{\??vars:#1:#2}{#3}}}}
+
+% \def\setupenv{\dodoubleargument\rawgetparameters[\??en]}
+%
+% \def\doifenvelse#1{\doifdefinedelse{\??en#1}} % speed up
+% \def\doifenv #1{\doifdefined {\??en#1}} % speed up
+% \def\doifnotenv #1{\doifundefined {\??en#1}} % speed up
+%
+% \def\env#1{\csname\??en#1\endcsname}
+%
+% \def\envvar#1#2%
+% {\ifcsname\??en#1\endcsname
+% \csname\??en#1\endcsname\else#2%
+% \fi}
+
+% low level change, now also accessible as \getvariable{environment}{...}; the
+% next macros will become obsolete some day in favor of normal variables
+
+\def\s!environment{environment}
+
+\def\setupenv {\dotripleargument\dosetvariables[\getrawparameters][\s!environment]}
+\def\doifenvelse{\doifelsevariable \s!environment}
+\def\doifenv {\doifvariable \s!environment}
+\def\doifnotenv {\doifnotvariable \s!environment}
+\def\env {\getvariable \s!environment}
+\def\envvar {\getvariabledefault\s!environment}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-env.mkiv b/Master/texmf-dist/tex/context/base/core-env.mkiv
new file mode 100644
index 00000000000..c979872687c
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/core-env.mkiv
@@ -0,0 +1,456 @@
+%D \module
+%D [ file=core-env, % was core-new
+%D version=1995.01.01, % wrong
+%D title=\CONTEXT\ Core Macros,
+%D subtitle=New ones,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Core Macros / Environments}
+
+\unprotect
+
+%D Modes:
+%D
+%D \starttyping
+%D \enablemode[screen,paper,bound]
+%D
+%D \doifmodeelse {paper} {this} {that}
+%D \doifmode {paper,screen} {this}
+%D \doifnotmode {paper,bound} {that}
+%D
+%D \startmode [list]
+%D \stopmode
+%D
+%D \startnotmode [list]
+%D \stopnotmode
+%D \stoptyping
+%D
+%D system modes have a * as prefix
+%D
+%D Sometimes, we want to prevent a mode for being set. Think
+%D of situations where a style enables a mode, but an outer
+%D level style does not want that. Preventing can be
+%D considered a permanent disabling on forehand.
+
+\def\@mode@{@md@}
+
+\def\systemmodeprefix{*}
+
+\def\disabledmode {0} % no chardefs
+\def\enabledmode {1}
+\def\preventedmode{2}
+
+% fast internal ones
+
+\def\setmode #1{\@EA\let\csname\@mode@#1\endcsname\enabledmode }
+\def\resetmode#1{\@EA\let\csname\@mode@#1\endcsname\disabledmode}
+
+\def\setsystemmode #1{\@EA\let\csname\@mode@\systemmodeprefix#1\endcsname\enabledmode }
+\def\resetsystemmode#1{\@EA\let\csname\@mode@\systemmodeprefix#1\endcsname\disabledmode}
+
+% user ones
+
+\def\preventmode{\unprotect\dopreventmode}
+\def\enablemode {\unprotect\doenablemode }
+\def\disablemode{\unprotect\dodisablemode}
+
+\def\dopreventmode[#1]{\protect\rawprocesscommacommand[#1]\dodopreventmode}
+\def\doenablemode [#1]{\protect\rawprocesscommacommand[#1]\dodoenablemode }
+\def\dodisablemode[#1]{\protect\rawprocesscommacommand[#1]\dododisablemode}
+
+\def\dodopreventmode#1%
+ {\@EA\let\csname\@mode@#1\endcsname\preventedmode}
+
+\def\dodoenablemode#1% mode can be relax
+ {\ifcase0\csname\@mode@#1\endcsname\relax
+ \@EA\let\csname\@mode@#1\endcsname\enabledmode
+ \fi}
+
+\def\dododisablemode#1%
+ {\ifcase0\csname\@mode@#1\endcsname\or
+ \@EA\let\csname\@mode@#1\endcsname\disabledmode
+ \fi}
+
+% handy for mp
+
+\def\booleanmodevalue#1% can be \relax
+ {\expandafter\ifx\csname\@mode@#1\endcsname\relax
+ fals%
+ \else\ifnum0\csname\@mode@#1\endcsname=0
+ fals%
+ \else
+ tru%
+ \fi\fi e}
+
+% check macros
+
+\newif\ifcheckedmode
+
+\def\dodocheckformode#1%
+ {\ifcase0\csname\@mode@#1\endcsname\or\checkedmodetrue\fi}
+
+\def\docheckformode#1#2#3% will be sped up with a quit
+ {\protect\checkedmodefalse\rawprocesscommacommand[#3]\dodocheckformode
+ \ifcheckedmode\@EA#1\else\@EA#2\fi}
+
+\def\dodocheckforallmodes#1%
+ {\ifcase0\csname\@mode@#1\endcsname\relax\checkedmodefalse\or\or\checkedmodefalse\fi}
+
+\def\docheckforallmodes#1#2#3% will be sped up with a quit
+ {\protect\checkedmodetrue\rawprocesscommacommand[#3]\dodocheckforallmodes
+ \ifcheckedmode\@EA#1\else\@EA#2\fi}
+
+% simple ones
+
+\def\doifmodeelse{\unprotect\dodoifmodeelse}
+\def\doifmode {\unprotect\dodoifmode}
+\def\doifnotmode {\unprotect\dodoifnotmode}
+\def\startmode {\unprotect\dostartmode}
+\def\startnotmode{\unprotect\dostartnotmode}
+
+\def\dodoifmodeelse
+ {\docheckformode\firstoftwoarguments\secondoftwoarguments}
+
+\def\dodoifmode
+ {\docheckformode\firstofoneargument\gobbleoneargument}
+
+\def\dodoifnotmode
+ {\docheckformode\gobbleoneargument\firstofoneargument}
+
+\long\def\dostartmode[#1]%
+ {\docheckformode\donothing\dostopmode{#1}}
+
+\long\def\dostartnotmode[#1]%
+ {\docheckformode\dostopnotmode\donothing{#1}}
+
+\let\stopmode \donothing
+\let\stopnotmode\donothing
+
+\long\def\dostopmode #1\stopmode {}
+\long\def\dostopnotmode#1\stopnotmode{}
+
+\def\doifallmodeselse{\unprotect\dodoifallmodeselse}
+\def\doifallmodes {\unprotect\dodoifallmodes}
+\def\doifnotallmodes {\unprotect\dodoifnotallmodes}
+\def\startallmodes {\unprotect\dostartallmodes}
+\def\startnotallmodes{\unprotect\dostartnotallmodes}
+
+\def\dodoifallmodeselse
+ {\docheckforallmodes\firstoftwoarguments\secondoftwoarguments}
+
+\def\dodoifallmodes
+ {\docheckforallmodes\firstofoneargument\gobbleoneargument}
+
+\def\dodoifnotallmodes
+ {\docheckforallmodes\gobbleoneargument\firstofoneargument}
+
+\long\def\dostartallmodes[#1]%
+ {\docheckforallmodes\donothing\dostopallmodes{#1}}
+
+\long\def\dostartnotallmodes[#1]%
+ {\docheckforallmodes\dostopnotallmodes\donothing{#1}}
+
+\let\stopallmodes \donothing
+\let\stopnotallmodes\donothing
+
+\long\def\dostopallmodes #1\stopallmodes {}
+\long\def\dostopnotallmodes#1\stopnotallmodes{}
+
+%D Setups:
+
+\let\startsetups\relax % to please dep checker
+\let\stopsetups \relax % to please dep checker
+
+\expanded
+ {\long\def\@EA\noexpand\csname\e!start\v!setups\endcsname
+ {\begingroup\noexpand\doifnextoptionalelse
+ {\noexpand\startsetupsA\@EA\noexpand\csname\e!stop\v!setups\endcsname}
+ {\noexpand\startsetupsB\@EA\noexpand\csname\e!stop\v!setups\endcsname}}}
+
+\letvalue{\e!stop\v!setups}\relax
+
+\unexpanded \def\setups{\doifnextbgroupelse\dosetupsA\dosetupsB} % {..} or [..]
+\unexpanded \def\setup {\doifnextbgroupelse\dosetups \dosetupsC} % {..} or [..]
+
+\def\dosetupsA #1{\processcommacommand[#1]\dosetups} % {..}
+\def\dosetupsB[#1]{\processcommacommand[#1]\dosetups} % [..]
+\def\dosetupsC[#1]{\dosetups{#1}} % [..]
+
+\letvalue{\??su:\letterpercent}\gobbleoneargument
+
+\def\dosetups#1% the grid option will be extended to other main modes
+ {\csname\??su
+ \ifgridsnapping
+ \ifcsname\??su\v!grid:#1\endcsname\v!grid:#1\else\ifcsname\??su:#1\endcsname:#1\else:\letterpercent\fi\fi
+ \else
+ \ifcsname\??su:#1\endcsname:#1\else:\letterpercent\fi
+ \fi
+ \endcsname\empty} % takes one argument
+
+\def\setupwithargument#1% the grid option will be extended to other main modes
+ {\csname\??su:\ifcsname\??su:#1\endcsname#1\else\letterpercent\fi\endcsname}
+
+\let\directsetup\dosetups
+
+\def\doifsetupselse#1% to be done: grid
+ {\doifdefinedelse{\??su:#1}}
+
+\chardef\setupseolmode\plusone
+
+\def\startsetups {\xxstartsetups\plusone \stopsetups } \let\stopsetups \relax
+\def\startlocalsetups{\xxstartsetups\plusone \stoplocalsetups} \let\stoplocalsetups\relax
+\def\startrawsetups {\xxstartsetups\zerocount\stoprawsetups } \let\stoprawsetups \relax
+\def\startxmlsetups {\xxstartsetups\plustwo \stopxmlsetups } \let\stopxmlsetups \relax
+
+\def\xxstartsetups#1#2%
+ {\begingroup\let\setupseolmode#1\doifnextoptionalelse{\startsetupsA#2}{\startsetupsB#2}}
+
+\def\startsetupsA#1% [ ] delimited
+ {\ifcase\setupseolmode\or\catcode`\^^M\@@ignore\or\catcode`\^^M\@@ignore\catcode`\|\@@other\fi
+ \dotripleempty\dostartsetups[#1]}
+
+\def\startsetupsB#1#2 % space delimited
+ {\ifcase\setupseolmode\or\catcode`\^^M\@@ignore\or\catcode`\^^M\@@ignore\catcode`\|\@@other\fi
+ \dodostartsetups#1\empty{#2}}
+
+\def\startsetupsC[#1][#2][#3]{\dodostartsetups#1{#2}{#3}} % [..] [..]
+\def\startsetupsD[#1][#2][#3]{\dodostartsetups#1\empty{#2}} % [..]
+
+\def\dostartsetups
+ {\ifthirdargument\@EA\startsetupsC\else\@EA\startsetupsD\fi}
+
+\long\def\dodostartsetups#1#2#3%
+ {\long\def\dododostartsetups##1#1%
+ {\endgroup
+ \dodoglobal % bah
+ \long\expandafter\def\csname\??su#2:#3\expandafter\endcsname\expandafter####\expandafter1\expandafter{##1}}%
+ \dododostartsetups\empty} % the empty trick prevents the { } in {arg} from being eaten up
+
+\def\systemsetupsprefix{*}
+
+\def\systemsetups#1{\dosetups{\systemsetupsprefix#1}}
+
+\def\resetsetups[#1]% see x-fo for usage
+ {\ifcsname\??su\ifgridsnapping\v!grid\fi:#1\endcsname
+ \dodoglobal\letbeundefined{\??su\ifgridsnapping\v!grid\fi:#1}%
+ \else
+ \dodoglobal\letbeundefined{\??su:#1}%
+ \fi}
+
+%D \defineshortcut [style=type]
+%D \defineshortcut [b] [style=bold]
+%D \defineshortcut [e] [style=\em]
+%D \defineshortcut [t] [style=type]
+%D \defineshortcut [c] [style=cap]
+%D \defineshortcut [k] [style=cap]
+%D \defineshortcut [u] [style=type,command=\hyphenatedurl]
+%D
+%D \startlines
+%D test <ziezo> test
+%D test test <t:ziezo>
+%D test test <b:ziezo>
+%D test test <w:ziezo>
+%D zus<>zo zus<:>zo zus<::>zo
+%D test test <t:ziezo> dat (ziezo)
+%D test test <t::ziezo> dat (:ziezo)
+%D test test <t:ziezo:> dat (ziezo:)
+%D test test <t:zi:ezo:> dat (zi:ezo:)
+%D well, <u:http://www.pragma-ade.nl> looks fuzzy
+%D $10<20$
+%D \stoplines
+%D
+%D \defineshortcut [<>] [i] [style=\it]
+%D \defineshortcut [()] [b] [style=\bf]
+%D \defineshortcut [++] [s] [style=\sl]
+%D \defineshortcut [//] [u] [style=\underbars]
+%D \defineshortcut [--] [a] [style=\overstrike]
+%D
+%D \startlines
+%D it seems <i:to work> well
+%D it seems (b:to work) well
+%D it seems +s:to work+ well
+%D it seems /u:to work/ well
+%D it seems -a:to work- well
+%D \stoplines
+
+\def\defineshortcut
+ {\dotripleargument\dodefineshortcut}
+
+\def\dodefineshortcut[#1][#2][#3]%
+ {\ifthirdargument
+ \doifelsenothing{#1}
+ {\dododefineshortcut[<>][#2][#3]}
+ {\dododefineshortcut[#1][#2][#3]}%
+ \else\ifsecondargument
+ \dododefineshortcut[<>][#1][#2]%
+ \else
+ \dododefineshortcut[<>][][#1]%
+ \fi\fi}
+
+\def\dododefineshortcut[#1#2][#3][#4]% #1 is the trigger, #2 the delimiter/tag
+ {\doifundefined{\??te\??te\string#2}{\letvalue{\??te\??te\string#2}=#1}%
+ \defineactivecharacter #1 {\@EA\doshortcut\string#2} % we need to deactivate in math
+ \getparameters
+ [\??te\string#2#3]
+ [\c!commands=,\c!command=,\c!style=,\c!color=,#4]}
+
+\def\doshortcut#1%
+ {\ifmmode
+ \getvalue{\??te\??te#1}%
+ \else
+ \bgroup
+ \catcode`#1=\@@other
+ \def\dodoshortcut##1#1%
+ {\def\shorttag{\??te#1}%
+ \def\shortcut{##1}%
+ \dododoshortcut##1:\end}%
+ \@EA\dodoshortcut
+ \fi}
+
+\def\dododoshortcut#1:#2\end
+ {\doifelsenothing{#2}
+ {\doifundefinedelse{\shorttag\c!commands}
+ {\shortcut}
+ {\@EA\dodododoshortcut\@EA\shorttag\@EA:\shortcut:\end}}
+ {\doifundefinedelse{\shorttag#1\c!commands}
+ {\shortcut}
+ {\dodododoshortcut\shorttag#1:#2\end}}%
+ \egroup}
+
+\def\dodododoshortcut#1:#2:\end
+ {\getvalue{#1\c!commands}%
+ \doattributes{#1}\c!style\c!color{\getvalue{#1\c!command}{#2}}}
+
+%D \macros
+%D {setvariables,getvariable,getvariabledefault}
+%D
+%D \starttyping
+%D \setvariables[xx][title=]
+%D \setvariables[xx][title=test test]
+%D \setvariables[xx][title=test $x=1$ test] % fatal error reported
+%D \setvariables[xx][title=test {$x=1$} test]
+%D \setvariables[xx][title] % fatal error reported
+%D \setvariables[xx][titletitel=e]
+%D \stoptyping
+
+\def\??vars{@@vars}
+
+\def\setvariables {\dotripleargument\dosetvariables[\getrawparameters ]}
+\def\setevariables{\dotripleargument\dosetvariables[\getraweparameters]}
+\def\setgvariables{\dotripleargument\dosetvariables[\getrawgparameters]}
+\def\setxvariables{\dotripleargument\dosetvariables[\getrawxparameters]}
+
+\def\globalsetvariables % obsolete
+ {\dotripleargument\dosetvariables[\globalgetrawparameters]}
+
+\long\def\dosetvariables[#1][#2][#3]% tricky, test on s-pre-60
+ {\errorisfataltrue
+ \doifelse{#2}\currentvariableclass
+ {#1[\??vars:#2:][#3]}%
+ {\pushmacro\currentvariableclass
+ \def\currentvariableclass{#2}%
+ \getvariable{#2}\s!reset
+ #1[\??vars:#2:][#3]%
+ \getvariable{#2}\s!set
+ \popmacro\currentvariableclass}%
+ \errorisfatalfalse}
+
+\long\def\setvariable #1#2#3{\long\expandafter\def \csname\??vars:#1:#2\endcsname{#3}}
+\long\def\setevariable#1#2#3{\long\expandafter\edef\csname\??vars:#1:#2\endcsname{#3}}
+\long\def\setgvariable#1#2#3{\long\expandafter\gdef\csname\??vars:#1:#2\endcsname{#3}}
+\long\def\setxvariable#1#2#3{\long\expandafter\xdef\csname\??vars:#1:#2\endcsname{#3}}
+
+\def\getvariable#1#2%
+ {\csname
+ \ifcsname\??vars:#1:#2\endcsname\??vars:#1:#2\else\s!empty\fi
+ \endcsname}
+
+\def\showvariable#1#2%
+ {\showvalue{\ifcsname\??vars:#1:#2\endcsname\??vars:#1:#2\else\s!empty\fi}}
+
+\let\currentvariableclass\empty
+
+%D \macros
+%D {checkvariables}
+%D
+%D I'll probably forget that this on exists.
+
+\def\checkvariables
+ {\dodoubleargument\docheckvariables}
+
+\def\docheckvariables
+ {\dogetparameters\docheckrawvalue}
+
+\long\def\docheckrawvalue#1#2#3%
+ {\ifcsname\??vars:#1:#2\endcsname
+ \edef\checkedrawvalue{\csname\??vars:#1:#2\endcsname}%
+ \ifx\checkedrawvalue\empty
+ \long\expandafter\def\csname\??vars:#1:#2\endcsname{#3}%
+ \fi
+ \else
+ \long\expandafter\def\csname\??vars:#1:#2\endcsname{#3}%
+ \fi}
+
+%D \macros
+%D {doifelsevariable,doifvariable,doifnotvariable}
+%D
+%D A few trivial macros:
+
+\def\doifelsevariable#1#2%
+ {\ifcsname\??vars:#1:#2\endcsname
+ \expandafter\firstoftwoarguments
+ \else
+ \expandafter\secondoftwoarguments
+ \fi}
+
+\def\doifvariable#1#2%
+ {\ifcsname\??vars:#1:#2\endcsname
+ \expandafter\firstofoneargument
+ \else
+ \expandafter\gobbleoneargument
+ \fi}
+
+\def\doifnotvariable#1#2%
+ {\ifcsname\??vars:#1:#2\endcsname
+ \expandafter\gobbleoneargument
+ \else
+ \expandafter\firstofoneargument
+ \fi}
+
+\def\getvariabledefault#1#2% #3% can be command, so no ifcsname here
+ {\executeifdefined{\??vars:#1:#2}}% {#3}
+
+% \def\setupenv{\dodoubleargument\rawgetparameters[\??en]}
+%
+% \def\doifenvelse#1{\doifdefinedelse{\??en#1}} % speed up
+% \def\doifenv #1{\doifdefined {\??en#1}} % speed up
+% \def\doifnotenv #1{\doifundefined {\??en#1}} % speed up
+%
+% \def\env#1{\csname\??en#1\endcsname}
+%
+% \def\envvar#1#2%
+% {\ifcsname\??en#1\endcsname
+% \csname\??en#1\endcsname\else#2%
+% \fi}
+%
+% low level change, now also accessible as \getvariable
+% {environment}{...}; the next macros will become obsolete
+% some day in favor of normal variables in the environment
+% namespace
+
+\def\s!environment{environment}
+
+\def\setupenv {\dotripleargument\dosetvariables[\getrawparameters][\s!environment]}
+\def\doifenvelse{\doifelsevariable \s!environment}
+\def\doifenv {\doifvariable \s!environment}
+\def\doifnotenv {\doifnotvariable \s!environment}
+\def\env {\getvariable \s!environment}
+\def\envvar {\getvariabledefault\s!environment}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-fil.tex b/Master/texmf-dist/tex/context/base/core-fil.mkii
index c84534ea699..fca253a7b0c 100644
--- a/Master/texmf-dist/tex/context/base/core-fil.tex
+++ b/Master/texmf-dist/tex/context/base/core-fil.mkii
@@ -11,54 +11,10 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Core Macros / File Support}
+\writestatus{loading}{ConTeXt Core Macros / File Support}
\unprotect
-% NOT YET DOCUMENTED !!
-%
-% overal \normalinput
-
-\startmessages dutch library: files
- title: files
- 1: file synoniem -- is al in gebruik voor --
-\stopmessages
-
-\startmessages english library: files
- title: files
- 1: file synonym -- is already used for --
-\stopmessages
-
-\startmessages german library: files
- title: files
- 1: Dateisynonym -- wird bereits fuer -- benutzt
-\stopmessages
-
-\startmessages czech library: files
- title: soubory
- 1: synonymum souboru -- je jiz pouzito pro --
-\stopmessages
-
-\startmessages italian library: files
- title: file
- 1: sinonimo file -- già in uso per --
-\stopmessages
-
-\startmessages norwegian library: files
- title: filer
- 1: filesynonym -- er allerede brukt for --
-\stopmessages
-
-\startmessages romanian library: files
- title: fisiere
- 1: sinonimul fisierelor -- este folosit deja pentru --
-\stopmessages
-
-\startmessages french library: files
- title: fichiers
- 1: le synonyme de fichier -- est déjà utilisé pour --
-\stopmessages
-
%D Files registered as temporary files will be deleted after a
%D run by texexec:
@@ -100,6 +56,8 @@
%D \usemodules[pictex,chemie,unit]
%D \stoptyping
+% will be redone in mkiv
+
\def\definefilesynonym
{\dodoubleempty\dodefinefilesynonym}
@@ -173,26 +131,6 @@
\newconditional\moduleisloaded
-% \def\dododousemodules#1#2% no \unprotect/\protect when loading,
-% {\relax % since we need to use ? ! unprotected
-% \ifconditional\moduleisloaded % sometimes (see xtag-map)
-% \let\next\relax % or: \expandafter\gobbleoneargument
-% \else
-% \makeshortfilename[#1\truefilename{#2}]% beware: *- is not part of syn
-% \doifelseflagged\shortfilename
-% {\showmessage\m!systems7{#2 (line \number\inputlineno)}%
-% \settrue\moduleisloaded
-% \let\next\relax}
-% {\doglobal\setflag\shortfilename
-% \def\next
-% {\startreadingfile
-% \readsysfile\shortfilename
-% {\showmessage\m!systems5{#2}\settrue\moduleisloaded}
-% \donothing
-% \stopreadingfile}}%
-% \fi
-% \next}
-
\def\dododousemodules#1#2% no \unprotect/\protect when loading,
{\relax % since we need to use ? ! unprotected
\ifconditional\moduleisloaded % sometimes (see xtag-map)
@@ -227,6 +165,7 @@
{\dododousemodules{#1-}{#2}}%
\ifconditional\moduleisloaded\else
\showmessage\m!systems6{#2}%
+ \appendtoks\showmessage\m!systems6{#2}\to\everynotabene
\fi}
% \def\usemodules
@@ -274,7 +213,7 @@
\let\currentmodule \s!unknown
\def\startmodule
- {\doifnextcharelse[\dostartmodule\nostartmodule}
+ {\doifnextoptionalelse\dostartmodule\nostartmodule}
\def\nostartmodule #1 %
{\dostartmodule[#1]}
@@ -359,7 +298,7 @@
% The following filenames are defined here:
\def\TEXbufferfile #1{\bufferprefix#1.\f!temporaryextension}
-\def\MPgraphicfile {\bufferprefix mp\ifMPrun run\else graph\fi}
+\def\MPgraphicfile {\bufferprefix mp\ifMPrun run\else graph\fi} % not needed in luatex
\def\convertMPcolorfile{\bufferprefix metacmyk.tmp}
%D To save memory, we implement some seldomly used commands
@@ -393,9 +332,6 @@
\let\checkpreprocessor\relax
-% \appendtoks\relax{\appendtoks \checkpreprocessor \to \everyjob}\to\everydump
-\appendtoks\everyjob\expandafter{\the\everyjob\checkpreprocessor}\to\everydump
-
%D To be documented and probably moved
\def\documentresources{\@@erurl}
diff --git a/Master/texmf-dist/tex/context/base/core-fil.mkiv b/Master/texmf-dist/tex/context/base/core-fil.mkiv
new file mode 100644
index 00000000000..14154fca43d
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/core-fil.mkiv
@@ -0,0 +1,317 @@
+%D \module
+%D [ file=core-fil,
+%D version=1997.11.15,
+%D title=\CONTEXT\ Core Macros,
+%D subtitle=File Support,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Core Macros / File Support}
+
+\unprotect
+
+%D \macros
+%D {definefilesynonym}
+%D
+%D One of the problems with loading files is that their names
+%D can depend on the interface language. We therefore need a
+%D method to define filesynonyms. The actual synonyms are
+%D defined elsewhere, but look like:
+%D
+%D \starttyping
+%D \definefilesynonym [chemic] [chemie]
+%D \definefilesynonym [einheit] [unit]
+%D \definefilesynonym [unit] [unit]
+%D \stoptyping
+%D
+%D So we can say in english:
+%D
+%D \starttyping
+%D \usemodules[pictex,chemic,unit]
+%D \stoptyping
+%D
+%D and in dutch:
+%D
+%D \starttyping
+%D \usemodules[pictex,chemie,unit]
+%D \stoptyping
+
+% will be redone in mkiv
+
+\def\definefilesynonym
+ {\dodoubleempty\dodefinefilesynonym}
+
+\def\dodefinefilesynonym[#1][#2]%
+ {\ifcsname\??fs#1\endcsname
+ \doifnotvalue{\??fs#1}{#2}{\showmessage\m!files1{#1 (#2),\getvalue{\??fs#1}}}%
+ \fi
+ \doifelse{#1}{#2}{\letbeundefined{\??fs#1}{#2}}{\setevalue{\??fs#1}{#2}}}
+
+%D \macros
+%D {definefilefallback}
+
+\def\definefilefallback
+ {\dodoubleargument\dodefinefilefallback}
+
+\def\dodefinefilefallback[#1][#2]%
+ {\doifnotfile{#1}
+ {\def\docommand##1{\doiffile{##1}{\definefilesynonym[#1][##1]\quitcommalist}}%
+ \processcommalist[#2]\docommand}}
+
+%D \macros
+%D {truefilename}
+%D
+%D At the system level such a filename can be called upon by
+%D saying:
+%D
+%D \starttyping
+%D \truefilename{filename/filesynonym}
+%D \stoptyping
+%D
+%D The implementation shows that nesting is supported.
+
+\def\truefilename#1%
+ {\ifcsname\??fs#1\endcsname\expandafter\truefilename\csname\??fs#1\endcsname\else#1\fi}
+
+%D \macros
+%D {makeshortfilename}
+%D
+%D To prevent cross platform problems with filenames, we
+%D lowercase them as well as only use the first 8~characters.
+%D
+%D \starttyping
+%D \def\domakeshortfilename[#1#2#3#4#5#6#7#8#9]%
+%D {\lowercase{\edef\shortfilename{#1#2#3#4#5#6#7#8.}}%
+%D \expandafter\beforesplitstring\shortfilename\at.\to\shortfilename}
+%D
+%D \def\makeshortfilename[#1]%
+%D {\edef\fullfilename{#1.........}%
+%D \expanded{\domakeshortfilename[\fullfilename]}}
+%D \stoptyping
+%D
+%D In 2005 there is no need for the 8~character limit any more, so:
+
+\def\makeshortfilename[#1]% no need for further cleanup and shortening
+ {\lowercase{\edef\shortfilename{#1.}}%
+ \expandafter\beforesplitstring\shortfilename\at.\to\shortfilename}
+
+%D \macros
+%D {usemodule}
+%D
+%D Most of \CONTEXT is preloaded in the format file. Some very
+%D domain specific typesetting topics are however dealt with in
+%D separate modules, e.g. typesetting of chemical structure
+%D formulas. These modules are loaded by:
+%D
+%D \showsetup{usemodule}
+%D
+%D More information on the specific modules can be found in
+%D their dedicated manuals. We use \type {\next} so that we
+%D can \type {\end} in modules.
+
+\newconditional\moduleisloaded
+
+\def\dododousemodules#1#2% no \unprotect/\protect when loading,
+ {\relax % since we need to use ? ! unprotected
+ \ifconditional\moduleisloaded % sometimes (see xtag-map)
+ \let\next\relax % or: \expandafter\gobbleoneargument
+ \else
+ \makeshortfilename[#1\truefilename{#2}]% beware: *- is not part of syn
+ \doifelseflagged\shortfilename
+ {\showmessage\m!systems7{#2 (line \number\inputlineno)}%
+ \settrue\moduleisloaded
+ \let\next\relax}
+ {\doglobal\setflag\shortfilename
+ \def\next
+ {\startreadingfile
+ \readsysfile\shortfilename
+ {\showmessage\m!systems5{#2}\settrue\moduleisloaded}
+ {\readsysfile{\shortfilename.\mksuffix} % new
+ {\showmessage\m!systems5{#2 (\mksuffix)}\settrue\moduleisloaded}
+ \donothing}%
+ \stopreadingfile}}%
+ \fi
+ \next}
+
+\def\dodousemodules#1#2%
+ {\setfalse\moduleisloaded
+ \doifelsenothing{#1}
+ {\dododousemodules\f!moduleprefix {#2}%
+ \dododousemodules\f!privateprefix{#2}%
+ \dododousemodules\f!styleprefix {#2}%
+ \dododousemodules\f!xstyleprefix {#2}%
+ \dododousemodules\f!thirdprefix {#2}%
+ \dododousemodules\empty {#2}}% new, fall back on raw name
+ {\dododousemodules{#1-}{#2}}%
+ \ifconditional\moduleisloaded\else
+ \showmessage\m!systems6{#2}%
+ \appendtoks\showmessage\m!systems6{#2}\to\everynotabene
+ \fi}
+
+\def\usemodules
+ {\dotripleempty\dousemodules}
+
+\def\dousemodules[#1][#2][#3]%
+ {\pushmacro\currentmodule
+ \pushmacro\currentmoduleparameters
+ \let\currentmoduleparameters\empty
+ \ifthirdargument
+ \doifelsenothing{#2}
+ {\let\next\relax}
+ {\def\currentmoduleparameters{#3}%
+ \def\next{\processcommalist[#2]{\dodousemodules{#1}}}}%
+ \else\ifsecondargument
+ \doifelsenothing{#2}
+ {\let\next\relax}
+ {\doifassignmentelse{#2}
+ {\def\currentmoduleparameters{#2}%
+ \def\next{\processcommalist[#1]{\dodousemodules{}}}}
+ {\def\next{\processcommalist[#2]{\dodousemodules{#1}}}}}%
+ \else
+ \def\next{\processcommalist[#1]{\dodousemodules{}}}%
+ \fi\fi
+ \next
+ \popmacro\currentmoduleparameters
+ \popmacro\currentmodule}
+
+\let\currentmoduleparameters\empty
+\let\currentmodule \s!unknown
+
+\def\startmodule
+ {\doifnextoptionalelse\dostartmodule\nostartmodule}
+
+\def\nostartmodule #1 %
+ {\dostartmodule[#1]}
+
+\def\dostartmodule[#1]%
+ {\pushmacro\currentmodule
+ \pushmacro\currentmoduleparameters
+ \def\currentmodule{#1}}
+
+\def\stopmodule
+ {\popmacro\currentmoduleparameters
+ \popmacro\currentmodule}
+
+\def\setupmodule
+ {\dodoubleempty\dosetupmodule}
+
+\def\dosetupmodule[#1][#2]%
+ {\scratchtoks\expandafter{\currentmoduleparameters}%
+ \ifsecondargument
+ \getparameters[\??md:#1:][#2]%
+ \expanded{\getparameters[\??md:#1:][\the\scratchtoks]}%
+ \else
+ \getparameters[\??md:\currentmodule:][#1]%
+ \expanded{\getparameters[\??md:\currentmodule:][\the\scratchtoks]}%
+ \fi
+ \let\currentmoduleparameters\empty}
+
+\def\moduleparameter #1#2{\executeifdefined{\??md:#1:#2}\s!empty}
+\def\currentmoduleparameter#1{\executeifdefined{\??md:\currentmodule:#1}\s!empty}
+
+% \usemodule[newmml]
+% \usemodule[newmml][a=b]
+% \usemodule[x][newmml]
+% \usemodule[x][newmml][a=b]
+%
+% \startmodule [mathml]
+% \setupmodule[a=c] \relax [\currentmoduleparameter{a}] % user vars will be set afterwards
+% \setupmodule[a=c] \relax [\currentmoduleparameter{a}] % user vars are now forgotten
+% \stopmodule
+
+% one can introduce test sections with:
+%
+% \enablemode[newmml:test:\currentmoduleparameter{test}]
+% \startmode[newmml:test:yes} ... \stopmode
+%
+% these will be ignored unless test=yes
+%
+% however, a better way is:
+
+\let\stopmoduletestsection\donothing
+
+\def\startmoduletestsection
+ {\bgroup
+ \setupmodule % we need to make sure that the vars are set
+ \doifelse{\currentmoduleparameter\v!test}\v!yes
+ {\egroup
+ \writestatus{\currentmodule}{loading experimental code}}
+ {\egroup
+ \writestatus{\currentmodule}{skipping experimental code}%
+ \gobbleuntil\stopmoduletestsection}}
+
+%D We also support a singular call, which saves us for
+%D frustrations when we do a typo.
+
+\let\usemodule=\usemodules
+
+% %D The definition shows that the language specific settings
+% %D are activated after loading all the modules specified.
+
+%D \macros
+%D {ifprotectbuffers, bufferprefix,
+%D TEXbufferfile, MPgraphicfile}
+%D
+%D The next switch enables protection of temporary filenames,
+%D which is needed when we process more files on one path at
+%D the same time.
+
+\newif\ifprotectbuffers
+
+\def\bufferprefix{\ifprotectbuffers\jobname-\fi}
+
+% The following filenames are defined here:
+
+\def\TEXbufferfile #1{\bufferprefix#1.\f!temporaryextension}
+\def\MPgraphicfile {\bufferprefix mp\ifMPrun run\else graph\fi} % not needed in luatex
+\def\convertMPcolorfile{\bufferprefix metacmyk.tmp}
+
+%D To save memory, we implement some seldomly used commands
+%D in a lazy way. Nota bene: such runtime definitions are
+%D global.
+%D
+%D \starttyping
+%D \fetchruntimecommand\showaccents{\f!encodingprefix ...}
+%D \stoptyping
+
+\def\fetchruntimecommand#1#2%
+ {\def#1{\dofetchruntimecommand#1{#2}}}
+
+\def\dofetchruntimecommand#1#2%
+ {\doifnotflagged{#2}
+ {\let#1\undefined
+ \startreadingfile
+ \startnointerference % \bgroup
+ \cleanupfeatures % better \setnormalcatcodes / test first
+ \readfile{#2}\donothing\donothing
+ \stopnointerference % \egroup
+ \stopreadingfile
+ \doglobal\setflag{#2}}%
+ \ifx#1\undefined
+ \writestatus\m!systems{command \string#1 not found in file #2}%
+ \def#1{{\infofont[unknown command \string#1]}}%
+ \fi
+ #1}
+
+%D Experimental:
+
+\let\checkpreprocessor\relax
+
+%D To be documented and probably moved
+
+\def\documentresources{\@@erurl}
+
+\def\setupexternalresources
+ {\dodoubleargument\getparameters[\??er]}
+
+\setupexternalresources
+ [url=]
+
+%D This module will be perfected / changed / weeded.
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-fnt.tex b/Master/texmf-dist/tex/context/base/core-fnt.mkii
index 15f9f0e5cd2..9bc2a66f5a6 100644
--- a/Master/texmf-dist/tex/context/base/core-fnt.tex
+++ b/Master/texmf-dist/tex/context/base/core-fnt.mkii
@@ -2,7 +2,7 @@
%D [ file=core-fnt,
%D version=1995.10.10,
%D title=\CONTEXT\ Core Macros,
-%D subtitle=Font Support,
+%D subtitle=Fonts,
%D author=Hans Hagen,
%D date=\currentdate,
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Core Macros / Font Support}
+\writestatus{loading}{ConTeXt Core Macros / Fonts}
\unprotect
@@ -356,7 +356,9 @@
\def\stretchedsomecase#1#2%
{\bgroup
#1{\def\textstring{#2}}%
- \ifdim\stretchedspaceamount>\zeropoint
+ \ifdim\stretchedspaceamount=\zeropoint
+ \textstring
+ \else
\def\textkern##1%
{% beware: ##1 may not be \box\somebox -)
\determinemidwordbreak{##1}{\stretchedbreaktokens}%
@@ -366,8 +368,6 @@
\hskip\stretchedspacefactor\scratchdimen}%
\@EA\processtokens\@EA\relax\@EA\textkern\@EA\relax\@EA
\textskip\@EA{\textstring}%
- \else
- \textstring
\fi
\egroup}
diff --git a/Master/texmf-dist/tex/context/base/core-fnt.mkiv b/Master/texmf-dist/tex/context/base/core-fnt.mkiv
new file mode 100644
index 00000000000..e6573985835
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/core-fnt.mkiv
@@ -0,0 +1,470 @@
+%D \module
+%D [ file=core-fnt,
+%D version=1995.10.10,
+%D title=\CONTEXT\ Core Macros,
+%D subtitle=Fonts,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Core Macros / Fonts}
+
+\unprotect
+
+%D \macros
+%D {compound}
+%D
+%D We will overload the already active \type {|} so we have
+%D to save its meaning in order to be able to use this handy
+%D macro.
+%D
+%D \starttyping
+%D so test\compound{}test can be used instead of test||test
+%D \stoptyping
+
+\bgroup \catcode`\|=\@@active \gdef\compound#1{|#1|} \egroup
+
+%D Here we hook some code into the clean up mechanism needed
+%D for verbatim data.
+
+\appendtoks
+ \disablecompoundcharacters
+ \disablediscretionaries
+\to \everycleanupfeatures
+
+%D \macros
+%D {stretched}
+%D
+%D Stretching characters in a word is a sort of typographical
+%D murder. Nevertheless we support this manipulation for use in
+%D for instance titles.
+%D
+%D \starttyping
+%D \hbox to 5cm{\stretched{murder}}
+%D \stoptyping
+%D
+%D \typebuffer
+%D
+%D or
+%D
+%D \startvoorbeeld
+%D \getbuffer
+%D \stopvoorbeeld
+%D
+%D \showsetup{stretched}
+
+\def\stretched#1%
+ {\ifvmode\hbox to \hsize\else\ifinner\else\hbox\fi\fi
+ \bgroup\processtokens\relax\hss\relax{\hss\hss}{#1}\egroup}
+
+%D \startbuffer
+%D \stretched{Unknown Box}
+%D \hbox to .5\hsize{\stretched{A Horizontal Box}}
+%D \vbox to 2cm{\stretched{A Vertical Box}}
+%D \hbox to 3cm{\stretched{sp{\'e}c{\`\i}{\"a}l}}
+%D \stopbuffer
+%D
+%D \getbuffer
+%D
+%D The first line of this macros takes care of boxing. Normally
+%D one will use an \type{\hbox} specification. The last line
+%D shows how special characters should be passed.
+%D
+%D \typebuffer
+
+%D \macros
+%D {stretchednormalcase, stretcheduppercase, stretchedlowercase}
+%D
+%D A convenient alternative is:
+%D
+%D \starttyping
+%D \stretcheduppercase{Is this what you like?}
+%D \stoptyping
+%D
+%D \typebuffer
+%D
+%D this one uses fixed skips and kerns.
+%D
+%D \startvoorbeeld
+%D \getbuffer
+%D \stopvoorbeeld
+%D
+%D The default skip can be set with:
+
+%D Given the following settings, the space is 1em by default:
+
+\def\stretchedspacefactor{4}
+\def\stretchedspaceamount{.25em}
+\def\stretchedbreaktokens{.@/}
+
+\unexpanded\def\stretchednormalcase
+ {\stretchedsomecase\firstofoneargument}
+
+\unexpanded\def\stretcheduppercase
+ {\stretchedsomecase{\the\everyuppercase\uppercase}}
+
+\unexpanded\def\stretchedlowercase
+ {\stretchedsomecase{\the\everylowercase\lowercase}}
+
+\def\stretchedsomecase#1#2%
+ {\bgroup
+ #1{\def\textstring{#2}}%
+ \ifdim\stretchedspaceamount=\zeropoint
+ \textstring
+ \else
+ \def\textkern##1%
+ {% beware: ##1 may not be \box\somebox -)
+ \determinemidwordbreak{##1}{\stretchedbreaktokens}%
+ \kern\stretchedspaceamount##1\domidwordbreak}%
+ \def\textskip
+ {\scratchdimen\stretchedspaceamount
+ \hskip\stretchedspacefactor\scratchdimen}%
+ \@EA\processtokens\@EA\relax\@EA\textkern\@EA\relax\@EA
+ \textskip\@EA{\textstring}%
+ \fi
+ \egroup}
+
+%D An auxiliary macro, see for usage \type {\stretcheduppercase}.
+
+\let\domidwordbreak\relax
+
+\def\setmidwordbreaktoken#1%
+ {\sfcode`#1=5000\relax}
+
+\def\determinemidwordbreak#1#2%
+ {\edef\midwordbreaktokens{#2}%
+ \ifx\midwordbreaktokens\empty
+ \global\let\domidwordbreak\relax
+ \else
+ \setbox\scratchbox\hbox
+ {\expandafter\handletokens\midwordbreaktokens\with\setmidwordbreaktoken
+ a\space \!!dimena\lastskip
+ #1\space\!!dimenb\lastskip \relax % needed
+ \ifdim\!!dimena=\!!dimenb
+ \globallet\domidwordbreak\relax
+ \else
+ \globallet\domidwordbreak\allowbreak
+ \fi}%
+ \fi}
+
+%D \macros
+%D {underbar,underbars,
+%D overbar,overbars,
+%D overstrike,overstrikes,
+%D setupunderbar}
+%D
+%D In the rare case that we need undelined words, for instance
+%D because all font alternatives are already in use, one can
+%D use \type{\underbar} and \type{\overstrike} and their plural
+%D forms.
+%D
+%D \startbuffer
+%D \underbars{drawing \underbar{bars} under words is a typewriter leftover}
+%D \overstrikes{striking words makes them \overstrike{unreadable} but
+%D sometimes even \overbar{top lines} come into view.}
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D \startvoorbeeld
+%D \startlines
+%D \getbuffer
+%D \stoplines
+%D \stopvoorbeeld
+%D
+%D The next macros are derived from the \PLAIN\ \TEX\ one, but
+%D also supports nesting. The \type{$} keeps us in horizontal
+%D mode and at the same time applies grouping.
+%D
+%D \showsetup{underbar}
+%D \showsetup{underbars}
+%D \showsetup{overbar}
+%D \showsetup{overbars}
+%D \showsetup{overstrike}
+%D \showsetup{overstrikes}
+%D
+%D Although underlining is ill advised, we permit some
+%D alternatives, that can be set up by:
+%D
+%D \showsetup{setupunderbar}
+%D
+%D The alternatives show up as
+%D {\setupunderbar [alternative=a]\underbar{alternative a}},
+%D {\setupunderbar [alternative=b]\underbar{alternative b}},
+%D {\setupunderbar [alternative=c]\underbar{alternative c}}
+%D and
+%D {\setupunderbar [rulethickness=1pt]\underbar{1pt width}},
+%D {\setupunderbar [rulethickness=2pt]\underbar{2pt width}},
+%D or whatever. Because \type{\overstrike} uses the same
+%D method, the settings also apply to that macro.
+
+\newcount\underbarlevel
+
+\def\underbarmethoda#1#2#3% RULE
+ {\hbox to #1{\vrule\!!width#1\!!height#2\!!depth#3}}
+
+\def\underbarmethodb#1#2#3% DASH
+ {\hbox to #1
+ {\hskip-.25em
+ \xleaders
+ \hbox{\hskip.25em\vrule\!!width.25em\!!height#2\!!depth#3}
+ \hfil}}
+
+\def\underbarmethodc#1#2#3% PERIOD
+ {\hbox to #1
+ {\dimen4=#3
+ \advance\dimen4 .2ex
+ \hskip-.25em
+ \xleaders
+ \hbox{\hskip.25em\lower\dimen4\hbox{.}}
+ \hfil}}
+
+\def\dododounderbar#1#2#3%
+ {\startmathmode
+ \setbox0\hbox{#3}%
+ \setbox2\hbox{\color[\@@onrulecolor]{\getvalue{underbarmethod\@@onalternative}{\wd0}{#1}{#2}}}%
+ \wd0\zeropoint
+ \ht2\ht0
+ \dp2\dp0
+ \box0\box2
+ \stopmathmode}
+
+\unexpanded\def\dodounderbar#1%
+ {\bgroup
+ \dimen0=\underbarlevel\dimexpr\@@onbottomoffset\relax
+ \ifdone \else
+ \advance\dimen0 -\strutht
+ \fi
+ \dimen2\dimexpr\dimen0+\@@onrulethickness\relax
+ \dododounderbar{-\dimen0}{\dimen2}{#1}%
+ \egroup}
+
+\def\betweenunderbarwords
+ {\bgroup
+ \setbox0\hbox{\dodounderbar{\hskip\interwordspace}}%
+ \nobreak
+ \hskip\zeropoint\!!minus\interwordshrink
+ \discretionary{}{}{\box0}%
+ \egroup}
+
+\def\betweenunderbarspaces
+ {\hskip\currentspaceskip}
+
+\unexpanded\def\underbar
+ {\bgroup
+ \advance\underbarlevel\plusone
+ \donetrue
+ \dounderbar\betweenunderbarwords}
+
+\unexpanded\def\dounderbar#1%
+ {\let\betweenisolatedwords#1%
+ \dosingleempty\redounderbar}
+
+\unexpanded\def\redounderbar[#1]#2%
+ {\iffirstargument\setupunderbar[#1]\fi
+ \processisolatedwords{#2}\dodounderbar
+ \egroup}
+
+\unexpanded\def\underbars
+ {\bgroup
+ \advance\underbarlevel\plusone
+ \donetrue
+ \dounderbar\betweenunderbarspaces}
+
+\unexpanded\def\overbar
+ {\bgroup
+ \advance\underbarlevel\minusone
+ \donefalse
+ \dounderbar\betweenunderbarwords}
+
+\unexpanded\def\overbars
+ {\bgroup
+ \advance\underbarlevel\minusone
+ \donefalse
+ \dounderbar\betweenunderbarspaces}
+
+\def\dooverstrike#1%
+ {\bgroup
+ \dimen0=\@@ontopoffset
+ \dimen2=\dimexpr\dimen0+\@@onrulethickness\relax
+ \dododounderbar{\dimen2}{-\dimen0}{#1}%
+ \egroup}
+
+\def\betweenoverstrikewords
+ {\bgroup
+ \setbox0\hbox{\dooverstrike{\hskip\interwordspace}}%
+ \nobreak
+ \hskip\zeropoint\!!minus\interwordshrink
+ \discretionary{}{}{\box0}%
+ \egroup}
+
+\unexpanded\def\overstrike#1%
+ {\bgroup
+ \let\betweenisolatedwords\betweenoverstrikewords
+ \processisolatedwords{#1}\dooverstrike
+ \egroup}
+
+\unexpanded\def\overstrikes#1%
+ {\bgroup
+ \processisolatedwords{#1}\dooverstrike
+ \egroup}
+
+\def\underbarparameter#1{\csname\??on#1\csname}
+
+\def\setupunderbar
+ {\dodoubleargument\getparameters[\??on]}
+
+%D \macros
+%D {shiftedword, shiftedwords}
+%D
+%D Used as \type {\shiftedwords {10pt} {some text}} this macro will
+%D move
+
+% \def\shiftedword#1% #2%
+% {\raise#1\hbox} % {#2}} % officially: {\ifdim#1>\zeropoint\raise\else\lower\fi#1\hbox{#2}}
+
+% \def\shiftedwords#1#2%
+% {\processisolatedwords{#2}{\shiftedword{#1}}}
+
+%D \macros
+%D {low, high, lohi, hilo}
+%D
+%D Although \TEX\ is pretty well aware of super- and
+%D subscripts, its mechanism is mainly tuned for math mode.
+%D The next few commands take care of script texts both modes.
+%D
+%D \startbuffer
+%D The higher\high{one goes} the lower\low{one drops}, or\lohi{yes}{no}?
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D \getbuffer
+%D
+%D Note the different placement of \type {\lohi}, where we
+%D need a bit more space. The implementation looks a bit
+%D fuzzy, since some \type {\fontdimen}'s are involved to
+%D determine the optimal placement.
+
+\def\dodohighlow
+ {\ifx\fontsize\empty
+ \ifmmode
+ \ifnum\fam<0 \tx \else \holamathfont \fi
+ \else
+ \tx
+ \fi
+ \else
+ \tx
+ \fi}
+
+\def\dohighlow#1#2#3#4#5% todo, named fontdimens
+ {\dontleavehmode
+ \bgroup
+ \scratchdimen\ifdim\fontexheight\textfont2=1ex #2\textfont2\else #3ex\fi
+ \advance\scratchdimen #4ex
+ \kern.1ex
+ \setbox\scratchbox\hbox{#1\scratchdimen\hbox{\dodohighlow#5}}%
+ \ht\scratchbox\strutheight
+ \dp\scratchbox\strutdepth
+ \box\scratchbox
+ \egroup}
+
+\unexpanded\def\high{\dohighlow\raise\mathsupnormal{.86}{0}}
+\unexpanded\def\low {\dohighlow\lower\mathsubnormal{.48}{0}}
+
+\unexpanded\def\lohi
+ {\dosingleempty\dolohi}
+
+\unexpanded\def\hilo
+ {\dosingleempty\dohilo}
+
+\def\dolohi[#1]#2#3%
+ {\dontleavehmode
+ \hbox
+ {\setbox4\hbox{\dohighlow\lower\mathsubnormal{.48}{.1}{#2}}%
+ \setbox6\hbox{\dohighlow\raise\mathsupnormal{.86}{.1}{#3}}%
+ \doif{#1}{\v!left}
+ {\ifdim\wd4<\wd6
+ \setbox4\hbox to \wd6{\hss\box4}%
+ \else
+ \setbox6\hbox to \wd4{\hss\box6}%
+ \fi}%
+ \ifdim\wd4<\wd6
+ \wd4=\zeropoint\box4\box6
+ \else
+ \wd6=\zeropoint\box6\box4
+ \fi}}
+
+\def\dohilo[#1]#2#3%
+ {\dolohi[#1]{#3}{#2}}
+
+%D You can provide an optional keyword \type {left}, in which
+%D case the super and subscripts will be aligned in a way that
+%D permits placement at the left of a word (which means that
+%D it will be right aligned).
+%D
+%D \startbuffer
+%D \lohi{aha}{ah} test \lohi{aha}{ah} test
+%D \lohi[left]{aha}{ah} test \lohi[left]{aha}{ah} test
+%D \lohi{aha}{ah} test\lohi{aha}{ah} test
+%D \lohi[left]{aha}{ah}test \lohi[left]{aha}{ah}test
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D \getbuffer
+
+%D \macros
+%D {setupinitial,placeinitial,checkinitial}
+%D
+%D {\em To be documented.}
+%D
+%D \starttyping
+%D \setupinitial[state=start] \placeinitial \input tufte
+%D \stoptyping
+%D
+%D and
+%D
+%D \starttyping
+%D \def\bpar{\ifvmode\checkinitial\fi}
+%D \def\epar{\ifhmode\par\fi\checkinitial}
+%D \stoptyping
+
+% to do: more fine tuning
+
+\def\setupinitial
+ {\dodoubleempty\getparameters[\??dc]}
+
+\definefontsynonym[Initial][Regular] % prefered initial identifier
+\definefontsynonym[initial][Initial] % internal but accepted too
+
+\setupinitial
+ [\c!state=\v!stop,
+ \c!location=\v!text,
+ \c!n=3,
+ \c!distance=.125em,
+ \c!command=,
+ \s!font=initial]
+
+\def\AutoDroppedCapsCommand{\NiceDroppedCaps\@@dccommand\@@dcfont\@@dcdistance\@@dcn}%
+
+\def\placeinitial
+ {\doifelse\@@dclocation\v!margin{\chardef\DropMode\plusone}{\chardef\DropMode\zerocount}%
+ \doif \@@dcstate\v!start{\ifcase\@@dcn\else\AutoDroppedCaps\fi}}
+
+\let\checkinitial\CheckDroppedCaps
+
+%D This module has only a few setups:
+
+\setupunderbar
+ [\c!alternative=a,
+ \c!rulethickness=\linewidth,
+ \c!bottomoffset=1.5pt,
+ \c!topoffset=2.5pt,
+ \c!rulecolor=]
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-gen.mkii b/Master/texmf-dist/tex/context/base/core-gen.mkii
new file mode 100644
index 00000000000..b6ab2a208c2
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/core-gen.mkii
@@ -0,0 +1,166 @@
+%D \module
+%D [ file=core-gen,
+%D version=1995.10.10,
+%D title=\CONTEXT\ Core Macros,
+%D subtitle=General,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Core Macros / General}
+
+\unprotect
+
+%D \macros
+%D {assigndimension,assignalfadimension}
+%D
+%D Hieronder worden enkele commando's gedefinieerd rond
+%D toekenningen. Allereerst een commando om waarden aan
+%D een \DIMENSION\ toe te kennen:
+%D
+%D \starttyping
+%D \assigndimension
+%D {<waarde>|klein|middel|groot|-klein|-middel|-groot|geen}
+%D {\dimension}
+%D {waarde klein}
+%D {waarde middel}
+%D {waarde groot}
+%D \stoptyping
+%D
+%D Hierbij krijgt de \DIMENSION\ \type{\dimension} een waarde
+%D afhankelijk van het meegegeven trefwoord.
+%D
+%D \startnarrower
+%D \startlines
+%D \type{(-)klein }\qquad (--) waarde klein
+%D \type{(-)middel}\qquad (--) waarde middel
+%D \type{(-)groot }\qquad (--) waarde groot
+%D \type{geen }\qquad 0pt
+%D \type{waarde }\qquad waarde
+%D \stoplines
+%D \stopnarrower
+%D
+%D Een trefwoord mag worden voorafgegaan door een \type{-}.
+%D Deze macro toont een voorbeeld van het gebruik van
+%D \type{\processaction} en constanten.
+%D
+%D Analoog aan het bovenstaande commando kennen we een
+%D commando om waarden toe te kennen aan een macro:
+%D
+%D \starttyping
+%D \assignalfadimension
+%D {<waarde>|klein|middel|groot|geen}
+%D {\macro}
+%D {waarde klein}
+%D {waarde middel}
+%D {waarde groot}
+%D \stoptyping
+
+% The third (optimized) version:
+
+\def\@ad@{@ad@}
+
+\setvalue{\@ad@ \v!none }{\zeropoint\gobblethreearguments}
+\setvalue{\@ad@ \v!big }{\thirdofthreearguments}
+\setvalue{\@ad@ \v!medium}{\secondofthreearguments}
+\setvalue{\@ad@ \v!small }{\firstofthreearguments}
+\setvalue{\@ad@-\v!big }{-\thirdofthreearguments}
+\setvalue{\@ad@-\v!medium}{-\secondofthreearguments}
+\setvalue{\@ad@-\v!small }{-\firstofthreearguments}
+
+\def\assigndimension#1#2% #3 #4 #5
+ {#2=\ifcsname\@ad@#1\endcsname
+ \csname\@ad@#1\expandafter\endcsname
+ \else
+ #1\expandafter\gobblethreearguments
+ \fi}
+
+\def\@aa@{@aa@}
+
+\setvalue{\@aa@\v!none }{0\gobblethreearguments}
+\setvalue{\@aa@\v!big }{\thirdofthreearguments}
+\setvalue{\@aa@\v!medium}{\secondofthreearguments}
+\setvalue{\@aa@\v!small }{\firstofthreearguments}
+
+\def\assignalfadimension#1#2#3#4#5% #3#4#5 are single digits
+ {\edef#2{\ifcsname\@aa@#1\endcsname
+ \csname\@aa@#1\expandafter\endcsname
+ \else
+ #1\expandafter\gobblethreearguments
+ \fi#3#4#5}}
+
+%D \macros
+%D {assignvalue}
+%D
+%D Een variant hierop is het commando:
+%D
+%D \starttyping
+%D \assignvalue
+%D {<waarde>|klein|middel|groot}
+%D {\macro}
+%D {waarde klein }
+%D {waarde middel}
+%D {waarde groot}
+%D \stoptyping
+%D
+%D Hierbij krijgt \type{\macro} een waarde afhankelijk van
+%D het meegegeven trefwoord:
+%D
+%D \startnarrower
+%D \startlines
+%D \type{klein }\qquad waarde klein
+%D \type{middel}\qquad waarde middel
+%D \type{groot }\qquad waarde groot
+%D \type{waarde}\qquad waarde
+%D \stoplines
+%D \stopnarrower
+%D
+%D Hier doet \type{geen} dus niet mee.
+
+\def\@av@{@av@}
+
+\letvalue{\@av@\v!big }\thirdofthreearguments
+\letvalue{\@av@\v!medium}\secondofthreearguments
+\letvalue{\@av@\v!small }\firstofthreearguments
+
+\def\assignvalue#1#2#3#4#5%
+ {\edef#2{\ifcsname\@av@#1\endcsname
+ \csname\@av@#1\expandafter\endcsname
+ \else
+ #1\expandafter\gobblethreearguments
+ \fi{#3}{#4}{#5}}}
+
+%D \macros
+%D {assignwidth}
+%D
+%D Een breedte van een opgegeven tekst kan worden berekend en
+%D toegekend aan een \DIMENSION\ met:
+%D
+%D \starttyping
+%D \assignwidth
+%D {\dimension}
+%D {<waarde>|passend|ruim}
+%D {tekst}
+%D \stoptyping
+%D
+%D Dit commando sluit, evenals de bovenstaande
+%D \type{\assign}||commando's, aan op de wijze waarop
+%D in de andere \CONTEXT||modules toekenningen
+%D plaatsvinden. Bij \type{ruim} wordt de gemeten breedte
+%D met 1~em vermeerderd.
+
+\def\assignwidth#1#2#3#4%
+ {\doifelsenothing{#2}
+ {\setbox\scratchbox\hbox{#3}%
+ #1\wd\scratchbox}
+ {\doifinsetelse{#2}{\v!fit,\v!broad}
+ {\setbox\scratchbox\hbox{#3}%
+ #1\wd\scratchbox
+ \doif{#2}\v!broad{\advance#1 #4}}%
+ {#1=#2}}}%
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-gen.mkiv b/Master/texmf-dist/tex/context/base/core-gen.mkiv
new file mode 100644
index 00000000000..b6ab2a208c2
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/core-gen.mkiv
@@ -0,0 +1,166 @@
+%D \module
+%D [ file=core-gen,
+%D version=1995.10.10,
+%D title=\CONTEXT\ Core Macros,
+%D subtitle=General,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Core Macros / General}
+
+\unprotect
+
+%D \macros
+%D {assigndimension,assignalfadimension}
+%D
+%D Hieronder worden enkele commando's gedefinieerd rond
+%D toekenningen. Allereerst een commando om waarden aan
+%D een \DIMENSION\ toe te kennen:
+%D
+%D \starttyping
+%D \assigndimension
+%D {<waarde>|klein|middel|groot|-klein|-middel|-groot|geen}
+%D {\dimension}
+%D {waarde klein}
+%D {waarde middel}
+%D {waarde groot}
+%D \stoptyping
+%D
+%D Hierbij krijgt de \DIMENSION\ \type{\dimension} een waarde
+%D afhankelijk van het meegegeven trefwoord.
+%D
+%D \startnarrower
+%D \startlines
+%D \type{(-)klein }\qquad (--) waarde klein
+%D \type{(-)middel}\qquad (--) waarde middel
+%D \type{(-)groot }\qquad (--) waarde groot
+%D \type{geen }\qquad 0pt
+%D \type{waarde }\qquad waarde
+%D \stoplines
+%D \stopnarrower
+%D
+%D Een trefwoord mag worden voorafgegaan door een \type{-}.
+%D Deze macro toont een voorbeeld van het gebruik van
+%D \type{\processaction} en constanten.
+%D
+%D Analoog aan het bovenstaande commando kennen we een
+%D commando om waarden toe te kennen aan een macro:
+%D
+%D \starttyping
+%D \assignalfadimension
+%D {<waarde>|klein|middel|groot|geen}
+%D {\macro}
+%D {waarde klein}
+%D {waarde middel}
+%D {waarde groot}
+%D \stoptyping
+
+% The third (optimized) version:
+
+\def\@ad@{@ad@}
+
+\setvalue{\@ad@ \v!none }{\zeropoint\gobblethreearguments}
+\setvalue{\@ad@ \v!big }{\thirdofthreearguments}
+\setvalue{\@ad@ \v!medium}{\secondofthreearguments}
+\setvalue{\@ad@ \v!small }{\firstofthreearguments}
+\setvalue{\@ad@-\v!big }{-\thirdofthreearguments}
+\setvalue{\@ad@-\v!medium}{-\secondofthreearguments}
+\setvalue{\@ad@-\v!small }{-\firstofthreearguments}
+
+\def\assigndimension#1#2% #3 #4 #5
+ {#2=\ifcsname\@ad@#1\endcsname
+ \csname\@ad@#1\expandafter\endcsname
+ \else
+ #1\expandafter\gobblethreearguments
+ \fi}
+
+\def\@aa@{@aa@}
+
+\setvalue{\@aa@\v!none }{0\gobblethreearguments}
+\setvalue{\@aa@\v!big }{\thirdofthreearguments}
+\setvalue{\@aa@\v!medium}{\secondofthreearguments}
+\setvalue{\@aa@\v!small }{\firstofthreearguments}
+
+\def\assignalfadimension#1#2#3#4#5% #3#4#5 are single digits
+ {\edef#2{\ifcsname\@aa@#1\endcsname
+ \csname\@aa@#1\expandafter\endcsname
+ \else
+ #1\expandafter\gobblethreearguments
+ \fi#3#4#5}}
+
+%D \macros
+%D {assignvalue}
+%D
+%D Een variant hierop is het commando:
+%D
+%D \starttyping
+%D \assignvalue
+%D {<waarde>|klein|middel|groot}
+%D {\macro}
+%D {waarde klein }
+%D {waarde middel}
+%D {waarde groot}
+%D \stoptyping
+%D
+%D Hierbij krijgt \type{\macro} een waarde afhankelijk van
+%D het meegegeven trefwoord:
+%D
+%D \startnarrower
+%D \startlines
+%D \type{klein }\qquad waarde klein
+%D \type{middel}\qquad waarde middel
+%D \type{groot }\qquad waarde groot
+%D \type{waarde}\qquad waarde
+%D \stoplines
+%D \stopnarrower
+%D
+%D Hier doet \type{geen} dus niet mee.
+
+\def\@av@{@av@}
+
+\letvalue{\@av@\v!big }\thirdofthreearguments
+\letvalue{\@av@\v!medium}\secondofthreearguments
+\letvalue{\@av@\v!small }\firstofthreearguments
+
+\def\assignvalue#1#2#3#4#5%
+ {\edef#2{\ifcsname\@av@#1\endcsname
+ \csname\@av@#1\expandafter\endcsname
+ \else
+ #1\expandafter\gobblethreearguments
+ \fi{#3}{#4}{#5}}}
+
+%D \macros
+%D {assignwidth}
+%D
+%D Een breedte van een opgegeven tekst kan worden berekend en
+%D toegekend aan een \DIMENSION\ met:
+%D
+%D \starttyping
+%D \assignwidth
+%D {\dimension}
+%D {<waarde>|passend|ruim}
+%D {tekst}
+%D \stoptyping
+%D
+%D Dit commando sluit, evenals de bovenstaande
+%D \type{\assign}||commando's, aan op de wijze waarop
+%D in de andere \CONTEXT||modules toekenningen
+%D plaatsvinden. Bij \type{ruim} wordt de gemeten breedte
+%D met 1~em vermeerderd.
+
+\def\assignwidth#1#2#3#4%
+ {\doifelsenothing{#2}
+ {\setbox\scratchbox\hbox{#3}%
+ #1\wd\scratchbox}
+ {\doifinsetelse{#2}{\v!fit,\v!broad}
+ {\setbox\scratchbox\hbox{#3}%
+ #1\wd\scratchbox
+ \doif{#2}\v!broad{\advance#1 #4}}%
+ {#1=#2}}}%
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-gen.tex b/Master/texmf-dist/tex/context/base/core-gen.tex
deleted file mode 100644
index 1b713328086..00000000000
--- a/Master/texmf-dist/tex/context/base/core-gen.tex
+++ /dev/null
@@ -1,211 +0,0 @@
-%D \module
-%D [ file=core-gen,
-%D version=1995.10.10,
-%D title=\CONTEXT\ Core Macros,
-%D subtitle=General,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{Context Core Macros / General}
-
-\unprotect
-
-%D \macros
-%D {assigndimension,assignalfadimension}
-%D
-%D Hieronder worden enkele commando's gedefinieerd rond
-%D toekenningen. Allereerst een commando om waarden aan
-%D een \DIMENSION\ toe te kennen:
-%D
-%D \starttyping
-%D \assigndimension
-%D {<waarde>|klein|middel|groot|-klein|-middel|-groot|geen}
-%D {\dimension}
-%D {waarde klein}
-%D {waarde middel}
-%D {waarde groot}
-%D \stoptyping
-%D
-%D Hierbij krijgt de \DIMENSION\ \type{\dimension} een waarde
-%D afhankelijk van het meegegeven trefwoord.
-%D
-%D \startnarrower
-%D \startlines
-%D \type{(-)klein }\qquad (--) waarde klein
-%D \type{(-)middel}\qquad (--) waarde middel
-%D \type{(-)groot }\qquad (--) waarde groot
-%D \type{geen }\qquad 0pt
-%D \type{waarde }\qquad waarde
-%D \stoplines
-%D \stopnarrower
-%D
-%D Een trefwoord mag worden voorafgegaan door een \type{-}.
-%D Deze macro toont een voorbeeld van het gebruik van
-%D \type{\processaction} en constanten.
-%D
-%D Analoog aan het bovenstaande commando kennen we een
-%D commando om waarden toe te kennen aan een macro:
-%D
-%D \starttyping
-%D \assignalfadimension
-%D {<waarde>|klein|middel|groot|geen}
-%D {\macro}
-%D {waarde klein}
-%D {waarde middel}
-%D {waarde groot}
-%D \stoptyping
-
-\def\assigndimension#1#2#3#4#5%
- {\processaction
- [#1]
- [ \v!small=>#2=#3,
- \v!medium=>#2=#4,
- \v!big=>#2=#5,
- \v!none=>#2=\zeropoint,
- -\v!small=>#2=-#3,
- -\v!medium=>#2=-#4,
- -\v!big=>#2=-#5,
- \s!unknown=>#2=#1]}
-
-\def\assignalfadimension#1#2#3#4#5%
- {\processaction
- [#1]
- [ \v!small=>\edef#2{#3},
- \v!medium=>\edef#2{#4},
- \v!big=>\edef#2{#5},
- \v!none=>\edef#2{0},
- \s!unknown=>\edef#2{#1}]}
-
-%D De onderstaande implementatie is veel sneller, maar
-%D tegelijkertijd ook veel lelijker. Omdat we deze macro
-%D relatief weinig aanroepen laten we deze optimalisatie maar
-%D achterwege. Bovendien kunnen oplossingen als deze de
-%D hash||table aardig uitputten (\type {\doifdefined}).
-%D
-%D \starttyping
-%D \edef\@@dimension{@@dim}
-%D \edef\@@negdimension{\@@dimension-}
-%D
-%D \def\assigndimension#1#2#3#4#5%
-%D {\setvalue{\@@dimension \v!small }{#3}%
-%D \setvalue{\@@dimension \v!medium}{#4}%
-%D \setvalue{\@@dimension \v!big }{#5}%
-%D \setvalue{\@@dimension \v!none }{\!!zeropoint}%
-%D \setvalue{\@@negdimension\v!small }{-#3}%
-%D \setvalue{\@@negdimension\v!medium}{-#4}%
-%D \setvalue{\@@negdimension\v!big }{-#5}%
-%D \setvalue{\@@negdimension\v!none }{\!!zeropoint}%
-%D \doifdefinedelse{\@@dimension#1}
-%D {#2=\getvalue{\@@dimension#1}}
-%D {#2=#1}}
-%D \stoptyping
-%D
-%D Let's give this a try:
-
-\let\nopv!none \v!none
-\let\posv!big \v!big
-\let\posv!middle \v!medium
-\let\posv!small \v!small
-\edef\negv!big {-\v!big}
-\edef\negv!middle{-\v!medium}
-\edef\negv!small {-\v!small}
-
-\def\assigndimension#1#2#3#4#5%
- {\edef\!!stringa{#1}%
- #2=\ifx\!!stringa\nopv!none \zeropoint\else
- \ifx\!!stringa\posv!big #5\else
- \ifx\!!stringa\posv!middle #4\else
- \ifx\!!stringa\posv!small #3\else
- \ifx\!!stringa\negv!big -#5\else
- \ifx\!!stringa\negv!middle-#4\else
- \ifx\!!stringa\negv!small -#3\else
- #1\fi\fi\fi\fi\fi\fi\fi}
-
-\def\assignalfadimension#1#2#3#4#5%
- {\edef\!!stringa{#1}%
- \edef#2{\ifx\!!stringa\posv!big #5\else
- \ifx\!!stringa\posv!middle#4\else
- \ifx\!!stringa\posv!small #3\else
- \ifx\!!stringa\nopv!none 0\else
- #1\fi\fi\fi\fi}}
-
-%D \macros
-%D {assignvalue}
-%D
-%D Een variant hierop is het commando:
-%D
-%D \starttyping
-%D \assignvalue
-%D {<waarde>|klein|middel|groot}
-%D {\macro}
-%D {waarde klein }
-%D {waarde middel}
-%D {waarde groot}
-%D \stoptyping
-%D
-%D Hierbij krijgt \type{\macro} een waarde afhankelijk van
-%D het meegegeven trefwoord:
-%D
-%D \startnarrower
-%D \startlines
-%D \type{klein }\qquad waarde klein
-%D \type{middel}\qquad waarde middel
-%D \type{groot }\qquad waarde groot
-%D \type{waarde}\qquad waarde
-%D \stoplines
-%D \stopnarrower
-%D
-%D Hier doet \type{geen} dus niet mee.
-
-\def\assignvalue#1#2#3#4#5%
- {\processaction
- [#1]
- [ \v!small=>\edef#2{#3},
- \v!medium=>\edef#2{#4},
- \v!big=>\edef#2{#5},
- \s!unknown=>\edef#2{#1}]}
-
-%D Or faster:
-
-\def\assignvalue#1#2#3#4#5%
- {\edef\!!stringa{#1}%
- \edef#2{\ifx\!!stringa\posv!big #5\else
- \ifx\!!stringa\posv!middle#4\else
- \ifx\!!stringa\posv!small #3\else
- #1\fi\fi\fi}}
-
-%D \macros
-%D {assignwidth}
-%D
-%D Een breedte van een opgegeven tekst kan worden berekend en
-%D toegekend aan een \DIMENSION\ met:
-%D
-%D \starttyping
-%D \assignwidth
-%D {\dimension}
-%D {<waarde>|passend|ruim}
-%D {tekst}
-%D \stoptyping
-%D
-%D Dit commando sluit, evenals de bovenstaande
-%D \type{\assign}||commando's, aan op de wijze waarop
-%D in de andere \CONTEXT||modules toekenningen
-%D plaatsvinden. Bij \type{ruim} wordt de gemeten breedte
-%D met 1~em vermeerderd.
-
-\def\assignwidth#1#2#3#4%
- {\doifelsenothing{#2}
- {\setbox0\hbox{#3}%
- #1\wd0}
- {\doifinsetelse{#2}{\v!fit,\v!broad}
- {\setbox0=\hbox{#3}%
- #1\wd0
- \doif{#2}\v!broad{\advance#1 #4}}%
- {#1=#2}}}%
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-grd.tex b/Master/texmf-dist/tex/context/base/core-grd.mkii
index 5db96645524..249e2e4308e 100644
--- a/Master/texmf-dist/tex/context/base/core-grd.tex
+++ b/Master/texmf-dist/tex/context/base/core-grd.mkii
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Core Macros / Grid Snapping}
+\writestatus{loading}{ConTeXt Core Macros / Grid Snapping}
\unprotect
diff --git a/Master/texmf-dist/tex/context/base/core-grd.mkiv b/Master/texmf-dist/tex/context/base/core-grd.mkiv
new file mode 100644
index 00000000000..d6cc93735cb
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/core-grd.mkiv
@@ -0,0 +1,1074 @@
+%D \module
+%D [ file=core-grd,
+%D version=1998.03.10,
+%D title=\CONTEXT\ Core Macros,
+%D subtitle=Grid Snapping (Experimental),
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Core Macros / Grid Snapping}
+
+\unprotect
+
+%D Moved from supp-box:
+
+%D \macros
+%D {startbaselinecorrection,baselinecorrection,
+%D showbaselinecorrection,offbaselinecorrection}
+%D
+%D Spacing around ruled boxes can get pretty messed up. The
+%D next macro tries as good as possible to fix this.
+%D
+%D \startbuffer[1]
+%D \startbaselinecorrection
+%D \ruledhbox{Rule Brittanica}
+%D \stopbaselinecorrection
+%D \stopbuffer
+%D
+%D \typebuffer[1]
+%D
+%D The macros put some white space around the box:
+%D
+%D \getbuffer[1]
+%D
+%D A simple alternative is \type {\baselinecorrection}, which
+%D only looks at the previous line.
+%D
+%D \startbuffer[2]
+%D \baselinecorrection
+%D \ruledhbox{Rule Brittanica}
+%D \baselinecorrection
+%D \stopbuffer
+%D
+%D \typebuffer[2]
+%D
+%D This time the last preceding line gets a correction,%
+%D dependant on the depth.
+%D
+%D \getbuffer[2]
+%D
+%D One can make the correction visible by saying \type
+%D {\showbaselinecorrection}. Part of the correction is
+%D calculated from the dimensions of a~(. One can disble the
+%D correction by calling \type {\offbaselinecorrection}.
+%D
+%D When visualize the first example looks like:
+%D
+%D {\showbaselinecorrection\getbuffer[1]}
+%D
+%D and the second one comes out as:
+%D
+%D {\showbaselinecorrection\getbuffer[2]}
+
+% \definecolor[GridLineColor][red]
+% \definecolor[GridTextColor][blue]
+
+\let\thetopbaselinecorrection \!!zeropoint
+\let\thebotbaselinecorrection \!!zeropoint
+\let\thenegtopbaselinecorrection\!!zeropoint
+\let\thenegbotbaselinecorrection\!!zeropoint
+
+\definepalet
+ [grid]
+ [ one=red,
+ two=green,
+ three=blue,
+ four=gray]
+
+\def\setbaselinecorrections
+ {\setbox0\hbox{\setstrut\strut}%
+ \setbox2\hbox{(}%
+ \dimen0\ht0\advance\dimen0 -\ht2
+ \ifdim\dimen0<\zeropoint\dimen0\zeropoint\fi
+ \dimen2\dp0\advance\dimen2 -\dp2
+ \ifdim\dimen2<\zeropoint\dimen2\zeropoint\fi
+ \edef\thetopbaselinecorrection {\the\dimen0}\dimen0-\dimen0
+ \edef\thebotbaselinecorrection {\the\dimen2}\dimen2-\dimen2
+ \edef\thenegtopbaselinecorrection{\the\dimen0}%
+ \edef\thenegbotbaselinecorrection{\the\dimen2}}
+
+\def\dotopbaselinecorrection {\kern\thetopbaselinecorrection}
+\def\dobotbaselinecorrection {\kern\thebotbaselinecorrection}
+\def\donegtopbaselinecorrection{\kern\thenegtopbaselinecorrection}
+\def\donegbotbaselinecorrection{\kern\thenegbotbaselinecorrection}
+
+\def\showbaselinecorrection
+ {\def\dobaselinecorrection % visualization is not watertight!
+ {\bgroup
+\ifdim\prevdepth>\zeropoint\kern-\prevdepth\fi
+ \setbox0\null
+ \wd0\hsize
+ \dp0\strutdp
+ \nointerlineskip
+ \forgetall
+ \ruledvbox{\box0}%
+ \egroup
+ \prevdepth\strutdp}%
+ \def\dotopbaselinecorrection
+ {\hrule\!!height\thetopbaselinecorrection}%
+ \def\dobotbaselinecorrection
+ {\hrule\!!height\thebotbaselinecorrection}}
+
+\def\dobaselinecorrection
+ {\ifdim\prevdepth>\zeropoint\kern-\prevdepth\fi
+ \kern\strutdp
+ \prevdepth\strutdp}
+
+% \def\baselinecorrection
+% {\endgraf
+% \ifvmode
+% \ifdim\prevdepth<\maxdimen
+% \ifdim\prevdepth<\zeropoint \else
+% \ifdim\prevdepth<\strutdp
+% \dobaselinecorrection
+% \fi
+% \fi
+% \fi
+% \fi}
+
+\def\baselinecorrection
+ {\endgraf
+ \ifvmode
+ \ifdim\prevdepth<\maxdimen
+ \ifdim\prevdepth<\zeropoint \else
+ \ifdim\prevdepth<\strutdepth \relax
+ \pushlastnode
+ \dobaselinecorrection
+ \poplastnode
+ \fi
+ \fi
+ \fi
+ \fi}
+
+\def\pagebaselinecorrection
+ {\ifdim\pagegoal<\maxdimen
+ \ifdim\pagetotal>\lineheight % or \topskip
+ \scratchdimen\pagetotal
+ \advance\scratchdimen\lineheight
+ \ifdim\scratchdimen<\pagegoal
+ \baselinecorrection
+ \fi
+ \fi
+ \fi}
+
+% Beware, keep this one as it is, see for instance module
+% m-steps.tex, where we apply a \localhsize to the \vbox, in
+% order to follow narrower and side floats !
+
+% \def\startbaselinecorrection
+% {\baselinecorrection
+% \ifvmode
+% \bgroup
+% \setbox\scratchbox\vbox\bgroup
+% \ignorespaces
+% \let\stopbaselinecorrection\dostopbaselinecorrection
+% \else
+% \let\stopbaselinecorrection\relax
+% \fi}
+
+% \def\dostopbaselinecorrection % I have to check columns yet.
+% {\endgraf
+% \egroup
+% \topbaselinecorrection
+% \box\scratchbox
+% \botbaselinecorrection
+% \egroup}
+
+% \let\stopbaselinecorrection=\relax
+
+\def\startbaselinecorrection
+ {\bgroup
+ \let\stopbaselinecorrection\egroup
+ \ifcase\baselinecorrectionmode
+ \or % normal
+ \baselinecorrection
+ \ifvmode
+ \setbox\scratchbox\vbox\bgroup\ignorespaces
+ \let\stopbaselinecorrection\donormalstopbaselinecorrection
+ \fi
+ \or % off
+ \or % force
+ \baselinecorrection
+ \ifvmode
+ \setbox\scratchbox\vbox\bgroup\ignorespaces
+ \let\stopbaselinecorrection\doforcedstopbaselinecorrection
+ \fi
+ \fi}
+
+\let\stopbaselinecorrection\relax
+
+\def\donormalstopbaselinecorrection % I have to check columns yet.
+ {\egroup
+ \topbaselinecorrection
+ \box\scratchbox
+ \botbaselinecorrection
+ \egroup}
+
+\def\doforcedstopbaselinecorrection % I have to check columns yet.
+ {\egroup
+ \forcedtopbaselinecorrection
+ \box\scratchbox
+ \forcedbotbaselinecorrection
+ \egroup}
+
+%D We do a bit more checking than needed. The pageborder check
+%D is not needed, but I want to look the visualization as good
+%D as possible too.
+
+% \def\offbaselinecorrection % Can be used inside correction.
+% {\def\startbaselinecorrection{\bgroup\let\stopbaselinecorrection\egroup}}
+
+\chardef\baselinecorrectionmode\plusone
+
+\def\onbaselinecorrection {\chardef\baselinecorrectionmode\plusone }
+\def\offbaselinecorrection {\chardef\baselinecorrectionmode\plustwo }
+\def\forcebaselinecorrection{\chardef\baselinecorrectionmode\plusthree}
+
+%D \macros
+%D {topbaselinecorrection,botbaselinecorrection}
+%D
+%D The actual top and bottom corrections are implemented as:
+
+% \def\topbaselinecorrection
+% {\ifvmode \ifdim\pagegoal<\maxdimen
+% \bgroup
+% \setbaselinecorrections
+% \whitespace
+% \nointerlineskip
+% \dotopbaselinecorrection
+% \egroup
+% \fi \fi}
+
+
+\def\topbaselinecorrection
+ {\ifvmode \ifdim\pagegoal<\maxdimen
+ \forcedtopbaselinecorrection
+ \fi \fi}
+
+\def\forcedtopbaselinecorrection
+ {\ifvmode
+ \bgroup
+ \setbaselinecorrections
+ \whitespace
+ \nointerlineskip
+ \dotopbaselinecorrection
+ \egroup
+ \fi}
+
+\def\botbaselinecorrection
+ {\ifvmode
+ \bgroup
+ \setbaselinecorrections
+ \dobotbaselinecorrection
+ \allowbreak % new, otherwise problems when many in a row
+ \prevdepth\strutdp
+ \egroup
+ \fi}
+
+\let\forcedbotbaselinecorrection\botbaselinecorrection
+
+%D Still very experimental and therefore undocumented.
+
+\newif\ifgridsnapping % UNDER DEVELOPMENT, USE WITH CARE
+\newif\ifforcepresnap \forcepresnaptrue % false in mixed single/double
+\newif\ifstrutsnapping \strutsnappingtrue % sometimes handy to be false
+
+\def\positiveextrasnap {\gdef\extrasnapsign{+}}
+\def\negativeextrasnap {\gdef\extrasnapsign{-}}
+
+\def\extrasnapreset {\global\chardef\@@extrasnap0
+ \positiveextrasnap}
+\def\extrasnapbefore {\global\chardef\@@extrasnap1 }
+\def\extrasnaparound {\global\chardef\@@extrasnap2 }
+\def\extrasnapafter {\global\chardef\@@extrasnap3 }
+
+\def\enablepresnapcorrection {\global\chardef\@@presnap\zerocount}
+\def\disablepresnapcorrection {\global\chardef\@@presnap\plusone}
+
+\extrasnapreset \enablepresnapcorrection
+
+\newif\iftracegridsnapping
+\newif\ifshowgridboxes
+\newif\ifshowfuzzyskips
+
+\let\showgridboxes\showgridboxestrue
+
+\def\showgridsnapping
+ {\tracegridsnappingtrue
+ \showgridboxestrue}
+
+\chardef\@@alignsnap =0
+\chardef\@@alignsnapbox =0
+\chardef\@@alignsnapmethod=0
+
+\let\presnapskip \!!zeropoint \def\presnap {-}
+\let\postsnapskip\!!zeropoint \let\postsnap\presnap
+
+\newcount\currentgridsnap
+
+\def\tracedsnapping
+ {\iftracegridsnapping
+ \llap
+ {\setlayoutcomponentattribute\v!grid\v!test
+ \hbox \layoutcomponentboxattribute
+ {\infofont
+ \global\advance\currentgridsnap\plusone
+ \color[grid:three]
+ {\vl\presnapskip
+ \vl\presnap
+ \vl\postsnap
+ \ifcase\@@alignsnapbox\relax\vl\ifcase\@@extrasnap00\or\extrasnapsign0\or\extrasnapsign\extrasnapsign\or0\extrasnapsign\fi\fi
+ \vl\the\currentgridsnap\vl}}}%
+ \fi}
+
+\def\snaptogrid% [#1]#2 -> #2 == \hbox|\vbox
+ {\dosingleempty\dosnaptogrid}
+
+% \def\dosnaptogrid[#1]%
+% {\ifgridsnapping
+% \iffirstargument\doifsomething{#1}{\verplaatsopgrid[#1]}\fi
+% \expandafter\dodosnaptogrid
+% \fi}
+
+% \def\dosnaptogrid[#1]%
+% {\resetlastlinewidth % maybe in more places, otherwise spacing gets messed up
+% \ifgridsnapping
+% \iffirstargument\doifsomething{#1}{\moveongrid[#1]}\fi
+% \expandafter\dodosnaptogrid
+% \fi}
+
+\def\dosnaptogrid[#1]%
+ {\resetlastlinewidth % maybe in more places, otherwise spacing gets messed up
+ \doifinsetelse\v!force{#1}%
+ {\moveongrid[#1]%
+ \dodosnaptogrid}
+ {\ifgridsnapping
+ \doifsomething{#1}{\moveongrid[#1]}%
+ \expandafter\dodosnaptogrid
+ \fi}}
+
+% \def\forcedpresnapcorrection % test this on 'details'
+% {\ifforcepresnap
+% \ifvmode \else \par \fi % new
+% % we don't want top of page space when 'top' option
+% %\verticalstrut\nobreak\vskip-\struttotal
+% %\verticalstrut\vskip-\struttotal
+% % nobreak really needed
+% \allowbreak\verticalstrut\nobreak\vskip-\struttotal
+% %\ifdim\pagetotal>\topskip \else
+% % eigenlijk signal
+% %\writestatus{grid}{removing dummy at top of page}%
+% %\bgroup
+% %\output{\setbox\scratchbox\box255}%
+% %\penalty\outputpenalty
+% %\egroup
+% %\fi
+% \fi}
+
+\def\forcedpresnapcorrection % test this on 'details'
+ {\ifforcepresnap
+ \ifvmode \else \par \fi % new
+ % we don't want top of page space when 'top' option
+ % \verticalstrut\nobreak\vskip-\struttotal
+ % \verticalstrut\vskip-\struttotal
+ % \nobreak really needed
+ % \dosomebreak\allowbreak % no: spoils heads, so only under know situation, not in snapper
+ \verticalstrut
+ \nobreak
+ \vskip-\struttotal
+ %\ifdim\pagetotal>\topskip \else
+ % eigenlijk signal
+ %\writestatus{grid}{removing dummy at top of page}%
+ %\bgroup
+ %\output{\setbox\scratchbox\box255}%
+ %\penalty\outputpenalty
+ %\egroup
+ %\fi
+ \fi}
+
+\def\setgridtracebox#1[#2]% % maybe reverse the order
+ {\setbox\nextbox#1%
+ {\hbox
+ {\hbox to \zeropoint
+ {\setlayoutcomponentattribute\v!grid\v!test
+ \color[grid:#2]{\ruledhbox \layoutcomponentboxattribute {\fakebox\nextbox}}%
+ \hss}%
+ \flushnextbox}}}
+
+\newif\ifboxedsnapping \boxedsnappingtrue
+
+\chardef\depthsnapmethod \plusone % downward compatible, minus one line
+\chardef\heightsnapmethod\plusone % downward compatible, minus one line
+
+\def\dodosnaptogrid
+ {\dowithnextbox
+ {\bgroup
+ \ifcase\@@alignsnapmethod \or
+ % we're dealing with text with a possible big depth/height
+ \chardef\depthsnapmethod \plustwo
+ \chardef\heightsnapmethod\plustwo
+ \fi
+ \ifdim\nextboxht<\textheight % handle special case (like page fig)
+ \ifcase\@@alignsnapbox\relax
+ \ifcase\@@alignsnap\else % 1=top 2=high 3=middle 4=low
+ \ifshowgridboxes
+ \setgridtracebox\hbox[two]%
+ \fi
+ %\getnoflines{\nextboxht}%
+ \getnoflines\nextboxht
+ \setbox\nextbox\vbox to \noflines\lineheight
+ {\ifnum\@@alignsnap=1 \kern\lineheight\kern-\topskip\fi
+ \ifnum\@@alignsnap>2 \vfill\fi
+ \flushnextbox
+ \ifnum\@@alignsnap<4 \vfill\fi}%
+ \fi
+ \ifshowgridboxes
+ \setgridtracebox\hbox[three]%
+ \fi
+ \forgetall
+ \par
+ \ifvbox\nextbox
+ \setbox\nextbox\hbox{\flushnextbox}% don't ask
+ \fi
+ \scratchskip\lastskip
+ \edef\presnapskip{\the\lastskip}%
+ % mixing single/double columns sometimes goes wrong,
+ % check 'som' document
+ \ifinsidecolumns
+ \forcepresnaptrue
+ \fi
+ \forcedpresnapcorrection
+ \ifdim\nextboxht>\strutht
+ \scratchdimen\nextboxht
+ \ifcase\@@presnap\relax
+ \ifdim\scratchskip>\zeropoint\relax
+ \scratchcounter\scratchskip
+ \advance\scratchcounter -\openlineheight
+ \ifnum\scratchcounter<0
+ \scratchcounter-\scratchcounter
+ \fi
+ \ifnum\scratchcounter<10 % \lastkip is about \openlineheight
+ \advance\scratchdimen -\openstrutdepth
+ \edef\presnapskip{*\presnapskip}%
+ \else\ifdim\scratchskip>\openlineheight
+ %<\openlineheight \else
+ \advance\scratchdimen -\openstrutdepth
+ \edef\presnapskip{*\presnapskip}%
+ \fi\fi
+ \fi
+ \fi
+ % \getnoflines\scratchdimen % maybe raw ?
+ % \advance\noflines -1
+ \ifcase\heightsnapmethod
+ % raw
+ \or
+ \advance\scratchdimen-\lineheight % tight (default)
+ \or
+ \advance\scratchdimen-\strutheight % fit (text)
+ \or
+ \advance\scratchdimen-\strutheight % tolerant
+ \advance\scratchdimen-\roundingeps
+ \fi
+ \getnoflines\scratchdimen
+ \ifnum\noflines>0
+ \scratchdimen\noflines\lineheight
+ \else
+ \scratchdimen\zeropoint
+ \fi
+ \else
+ \scratchdimen\zeropoint
+ \fi
+ \ifnum\@@extrasnap=1 \advance\scratchdimen \extrasnapsign \lineheight \fi
+ \ifnum\@@extrasnap=2 \advance\scratchdimen \extrasnapsign.5\lineheight \fi
+ \edef\presnap{\the\scratchdimen}%
+ \ifstrutsnapping
+ \ifboxedsnapping
+ \getrawnoflines\scratchdimen
+ \advance\scratchdimen-\noflines\lineheight
+ \vskip\scratchdimen % disappears at top of page
+ \dorecurse\noflines{\verticalstrut\nobreak}%
+ \else \ifdim\scratchdimen=\zeropoint
+ % nothing to skip
+ \else % disappears at top of page
+ \vskip\scratchdimen
+ \fi \fi
+ \fi
+ \ifdim\nextboxdp>\strutdp
+ % \getnoflines\nextboxdp
+ % \advance\noflines \minusone
+ \scratchdimen\nextboxdp\relax
+ \ifcase\depthsnapmethod
+ % raw
+ \or
+ \advance\scratchdimen-\lineheight % tight (default)
+ \or
+ \advance\scratchdimen-\strutdepth % fit (text)
+ \or
+ \advance\scratchdimen-\strutdepth % tolerant
+ \advance\scratchdimen-\roundingeps
+ \fi
+ \getnoflines\scratchdimen
+ \ifnum\noflines>0
+ \scratchdimen\noflines\lineheight
+ \else
+ \scratchdimen\zeropoint
+ \fi
+ \else
+ \scratchdimen\zeropoint
+ \fi
+ \ifnum\@@extrasnap=2 \advance\scratchdimen \extrasnapsign.5\lineheight \fi
+ \ifnum\@@extrasnap=3 \advance\scratchdimen \extrasnapsign \lineheight \fi
+ \edef\postsnap{\the\scratchdimen}%
+ \ifstrutsnapping
+ \nextboxht\strutht
+ \nextboxdp\strutdp
+ \else
+ \scratchdimen\presnap
+ \advance\scratchdimen \strutht
+ \nextboxht\scratchdimen
+ \scratchdimen\postsnap
+ \advance\scratchdimen \strutdp
+ \nextboxdp\scratchdimen
+ \fi
+ \hbox{\tracedsnapping\flushnextbox}%
+ \ifstrutsnapping
+ \ifdim\scratchdimen=\zeropoint\else\vskip\scratchdimen\fi
+ \fi
+ \else
+ \scratchdimen\nextboxht\relax
+ \ifcase\@@alignsnapbox
+ % can't happen here
+ \or
+ \getrawnoflines\scratchdimen
+ \else
+ \getnoflines \scratchdimen
+ \fi
+ \scratchdimen\noflines\lineheight\relax
+ \advance\scratchdimen-\strutdepth
+ % spoils the whole game (fit/broad/line)
+ % \ifnum\pagetotal>\zeropoint \else % disable this as option
+ % \advance\scratchdimen-\strutheight
+ % \advance\scratchdimen+\topskip
+ % \fi
+ \dimen0=\scratchdimen
+ \dimen2=\strutdepth
+ \ifshowgridboxes
+ \setgridtracebox\hbox[two]%
+ \fi
+ \nextboxdp\strutdp
+ \dimen4=\nextboxht
+ \dimen6=\nextboxdp
+ \iftracegridsnapping
+ \setbox\scratchbox\hbox
+ {\scratchdimen\@@alignsnapamount\relax
+ \ifdim\scratchdimen<\zeropoint
+ \tracedgridamount\zeropoint{-\scratchdimen}%
+ \else
+ \tracedgridamount\scratchdimen\zeropoint
+ \fi}%
+ \smashbox\scratchbox
+ \setbox\nextbox\hbox{\box\scratchbox\flushnextbox}%
+ \fi
+ \setbox\nextbox\hbox
+ {\scratchdimen\@@alignsnapamount\relax
+ \ifcase\@@alignsnapdepth\or
+ % don't change this ever !
+ \ifdim\dimen0<\lineheight
+ % otherwise it is ok, but ending up inside
+ % the next paragraph is seldom what we want,
+ % so we move one line up
+ \advance\scratchdimen-\lineheight
+ \advance\scratchdimen\strutheight
+ \else
+ % otherwise we can move down to the
+ % baseline
+ \advance\scratchdimen\dimen6 % == \strutdepth
+ \fi
+ \fi
+ \lower\scratchdimen\flushnextbox}%
+ \nextboxht\dimen4
+ \nextboxdp\dimen6
+ \ifnum\@@alignsnap<4 % 4 = regel
+ \setbox\nextbox\vbox to \scratchdimen
+ {\forgetall
+ \ifnum\@@alignsnap>2 \vfill\fi % 3 4
+ \flushnextbox
+ \nointerlineskip % \offinterlineskip
+ \ifnum\@@alignsnap<4 \vfill\fi % 2 3
+ \kern\zeropoint}%
+ \fi
+ \ifshowgridboxes
+ \setgridtracebox\vbox[three]%
+ \fi
+ \scratchdimen\@@alignsnapamount
+ \edef\presnapskip{\the\scratchdimen}%
+ \ifnum\@@alignsnap>2 \def\presnap {+}\fi
+ \ifnum\@@alignsnap<4 \def\postsnap{+}\fi
+ \setbox\nextbox\hbox{\tracedsnapping\flushnextbox}%
+ \par
+ \nextboxht\dimen0
+ \nextboxdp\dimen2
+ \forcedpresnapcorrection
+ \nointerlineskip
+ \flushnextbox
+ \fi
+ \else
+ \setbox\nextbox\vbox to \textheight
+ {\ifdim\nextboxdp=\zeropoint
+ \hbox{\lower\strutdepth\flushnextbox}
+ \else % this branch is yet untested
+ \vss
+ \hbox{\lower\nextboxdp\flushnextbox}
+ \vskip-\strutdepth
+ \fi}%
+ \nextboxdp\strutdepth
+ \flushnextbox
+ \fi
+ \extrasnapreset
+ \enablepresnapcorrection
+ \global\chardef\@@alignsnap\zerocount
+ \global\chardef\@@alignsnapbox\zerocount
+ \egroup}}
+
+\def\tracedgridamount#1#2%
+ {\startcolor[grid:four]%
+ \setlayoutcomponentattribute\v!grid\v!test
+ \hbox \layoutcomponentboxattribute{\vrule\!!width\nextboxwd\!!height#1\!!depth#2}%
+ \stopcolor}
+
+\def\snaptomathgrid % probably not working ok, also kind of obsolete
+ {\ifgridsnapping
+ \dowithnextbox
+ {\blank[\v!line]\snaptogrid\vbox{\flushnextbox}\blank[\v!line]}
+ \vbox\bgroup
+ \forgetdisplayskips
+ \@EA\let\@EA\next
+ \fi}
+
+\def\topsnaptogrid
+ {\ifgridsnapping
+ \dowithnextbox
+ {\scratchdimen\nextboxht
+ \advance\scratchdimen -\strutht
+ \advance\scratchdimen \topskip
+ \nextboxht\scratchdimen
+ \nextboxdp\zeropoint
+ \flushnextbox
+ \kern\lineheight
+ \kern-\topskip
+ \nointerlineskip}
+ \hbox
+ \fi}
+
+% \def\centertogrid % meant for special situations
+% {\ifgridsnapping
+% \dowithnextboxcontent
+% {\ignorespaces}
+% {\bgroup
+% \par
+% \scratchdimen\nextboxht
+% \advance\scratchdimen \nextboxdp
+% \getnoflines\scratchdimen
+% \setbox\nextbox\vbox to \noflines\lineheight
+% {\forgetall
+% \vskip\zeropoint \!!plus \nextboxht
+% \copy\nextbox
+% \kern.5\strutdp % VOORLOPIGE WAARDE
+% \vskip\zeropoint \!!plus \nextboxdp}%
+% \noindent\snaptogrid\vbox{\flushnextbox}%
+% \egroup}
+% \vbox % was \hbox
+% \fi}
+
+% The next implementation is sub-optimal
+%
+% \def\centertogrid % usage: see ie pascal / stepcharts
+% {\snaptogrid[\v!midden,.5\strutdp]\vbox}
+
+\def\centertogrid % meant for special situations
+ {\ifgridsnapping
+ \dowithnextboxcontent
+ {\ignorespaces}
+ {\bgroup
+ \par
+ \scratchdimen\nextboxht
+ \advance\scratchdimen \nextboxdp
+ \getnoflines\scratchdimen
+ \setbox\nextbox\vbox to \noflines\lineheight
+ {\forgetall
+ \vss
+ \topbaselinecorrection
+ \copy\nextbox
+ \botbaselinecorrection
+ \vss}%
+ \setbox\nextbox\hbox{\lower\strutdp\flushnextbox}%
+ \forgeteverypar % new per 3/4/2008, prevents duplicate pos nodes resulting in extra whitespace
+ \noindent\snaptogrid\vbox{\flushnextbox}%
+ \egroup}
+ \vbox % was \hbox
+ \fi}
+
+% testbed for \centertogrid
+%
+% \strut Bruggetje
+% \startlinecorrection
+% \startcombination
+% {\framed{test}} {} {\framed{test}} {}
+% \stopcombination
+% \stoplinecorrection
+% \strut Bruggetje
+% \startlinecorrection
+% \startcombination[2*2]
+% {\framed{test}} {} {\framed{test}} {}
+% {\framed{test}} {} {\framed{test}} {}
+% \stopcombination
+% \stoplinecorrection
+% \strut Bruggetje
+% \startlinecorrection[blank]
+% \startcombination
+% {\framed{test}} {} {\framed{test}} {}
+% \stopcombination
+% \stoplinecorrection
+% \strut Bruggetje
+% \startlinecorrection[blank]
+% \startcombination[2*2]
+% {\framed{test}} {} {\framed{test}} {}
+% {\framed{test}} {} {\framed{test}} {}
+% \stopcombination
+% \stoplinecorrection
+% \strut Bruggetje
+% \startlinecorrection
+% \startcombination
+% {\framed[lines=1]{test}} {} {\framed[lines=1]{test}} {}
+% \stopcombination
+% \stoplinecorrection
+% \strut Bruggetje
+% \startlinecorrection
+% \startcombination[2*2]
+% {\framed[lines=1]{test}} {} {\framed[lines=1]{test}} {}
+% {\framed[lines=1]{test}} {} {\framed[lines=1]{test}} {}
+% \stopcombination
+% \stoplinecorrection
+% \strut Bruggetje
+% \startlinecorrection[blank]
+% \startcombination
+% {\framed[lines=1]{test}} {} {\framed[lines=1]{test}} {}
+% \stopcombination
+% \stoplinecorrection
+% \strut Bruggetje
+% \startlinecorrection[blank]
+% \startcombination[2*2]
+% {\framed[lines=1]{test}} {} {\framed[lines=1]{test}} {}
+% {\framed[lines=1]{test}} {} {\framed[lines=1]{test}} {}
+% \stopcombination
+% \stoplinecorrection
+
+\ifx\startbaselinecorrection\undefined \wait \fi % change order
+
+\let\normalstartbaselinecorrection=\startbaselinecorrection
+
+\def\startbaselinecorrection
+ {\ifgridsnapping
+ \centertogrid\bgroup
+ \let\stopbaselinecorrection\egroup
+ \else
+ \normalstartbaselinecorrection
+ \fi}
+
+\chardef\gridboxlinenomode\plusone
+\chardef\gridboxlinemode \plusone % 0:nothing 1:all 2:lines 3:frame
+
+\def\gridboxvbox {\ifcase\gridboxlinemode\vbox\or\ruledvbox\or\vbox\or\ruledvbox\else\ruledvbox\fi}
+\def\gridboxwidth{\ifcase\gridboxlinemode0\or.5\or.5\or0\else.5\fi\testrulewidth}
+
+\def\setgridbox#1#2#3%
+ {\setbox#1\gridboxvbox to #3 % given size
+ {\forgetall
+ \resetteststrut
+ \offinterlineskip
+ \hsize#2%
+ \baselinerulefalse
+ \gridboxvbox % calculated size
+ {\getrawnoflines{#3}% \getnoflines{#3}%
+ \vskip\topskip
+ \vskip-\strutht
+ \scratchdimen#2\advance\scratchdimen \lineheight
+ \dorecurse\noflines
+ {\strut
+ \hskip-.5\lineheight
+ \ifcase\gridboxlinenomode\or
+ \rlap
+ {\hskip.2\bodyfontsize\hskip\scratchdimen
+ \infofont\hbox to 1em{\hss\recurselevel}}%
+ \or
+ \llap
+ {\infofont\hbox to 1em{\hss\recurselevel}%
+ \hskip.2\bodyfontsize}%
+ \fi
+ \vrule
+ \!!height \gridboxwidth
+ \!!depth \gridboxwidth
+ \!!width \scratchdimen
+ \par}}
+ \vfill}}
+
+%D Some intervention macros:
+
+\def\gridwarning#1{\message{[beware of #1 extra snap]}}
+
+\global\let\@@alignsnapamount\!!zeropoint
+\global\chardef\@@alignsnapdepth0
+
+\def\@@unknowngriddisplacement
+ {\global\chardef\@@alignsnapbox\plusthree
+ \global\let\@@alignsnapamount\commalistelement}
+
+\def\domoveongrid[#1]%
+ {\ifgridsnapping\doifsomething{#1}{\dodomoveongrid[#1]}\fi}
+
+\def\dodomoveongrid[#1]% some day : speed up
+ {\global\chardef\@@alignsnap\zerocount
+ \global\chardef\@@alignsnapbox\zerocount
+ \global\chardef\@@alignsnapdepth\zerocount
+ \global\chardef\@@alignsnapmethod\zerocount
+ \global\let\@@alignsnapamount\!!zeropoint
+ \donefalse
+ \expanded{\processallactionsinset[#1]}
+ [\v!standard=>,
+ \v!normal=>, % to be sure
+ \v!yes=>, % to be sure
+ \v!top=>\gridwarning+\positiveextrasnap\extrasnapbefore,
+ \v!bottom=>\gridwarning+\positiveextrasnap\extrasnapafter,
+ \v!both=>\positiveextrasnap\extrasnaparound,
+ -\v!top=>\gridwarning-\negativeextrasnap\extrasnapbefore,
+ -\v!bottom=>\gridwarning-\negativeextrasnap\extrasnapafter,
+ -\v!both=>\negativeextrasnap\extrasnaparound,
+ \v!text=>\global\chardef\@@alignsnapmethod\plusone, % accurate calculations
+ \v!page=>\global\chardef\@@alignsnap\plusone, % topskip
+ \v!high=>\global\chardef\@@alignsnap\plustwo,
+ \v!middle=>\global\chardef\@@alignsnap\plusthree,
+ \v!low=>\global\chardef\@@alignsnap\plusfour,
+ \v!fit=>\global\chardef\@@alignsnapbox\plusone, % new
+ \v!broad=>\global\chardef\@@alignsnapbox\plustwo, % new
+ \v!depth=>\global\chardef\@@alignsnapdepth\plusone, % new
+ \v!line=>\global\chardef\@@alignsnapbox\plusthree
+% \global\chardef\@@alignsnapdepth\plusone
+ \global\chardef\@@alignsnap\plusfour,
+ \v!reset=>\positiveextrasnap\extrasnapreset,
+ \v!none=>\global\chardef\@@alignsnap\zerocount
+ \global\chardef\@@alignsnapbox\zerocount,
+ \v!force=>, % turns on grid snapping even when not on
+ \s!default=>,
+ \s!unknown=>\@@unknowngriddisplacement]}
+
+\def\moveongrid
+ {\dosingleempty\domoveongrid}
+
+\def\doplaceongrid[#1]%
+ {\domoveongrid[#1]\snaptogrid\vbox}
+
+\def\placeongrid
+ {\dosingleempty\doplaceongrid}
+
+%D Snapping is rather robust as long as we use whole lines.
+%D Half lines of white space can however be handled when they
+%D come in pairs. The corrections needed when crossing page
+%D boundaries in the middle of such a pair, are handled by
+%D macros that are (named) sort of fuzzy. This fuzzy mechanism
+%D was written as an extension to the grid typesetting needed
+%D for typesetting (part of) the \MAPS.
+%D
+%D \starttyping
+%D \setuptyping
+%D [before={\blank[halfline]},
+%D after={\blank[halfline]}]
+%D \stoptyping
+
+\newif \iffuzzyvskip
+\newif \iffuzzysnapdone
+\newif \iffuzzysnapping
+\newif \iffuzzysnapped
+\chardef \fuzzysnappedleft=0 % ==1 when fuzzybegin still open
+\newpersistentmark\fuzzymark % (!)
+\newcount \fuzzymarker
+\newbox \fuzzysnapbox
+\newbox \fuzzysnapsplit
+
+\def\dosyncfuzzyvskip
+ {\ifvmode\ifdim\lastskip<\lineheight\ifdim\lastskip>\zeropoint
+ \bgroup % - added 28/2/2003: check this, there was no -
+ \endgraf\forgetall\verticalstrut\nobreak\vskip-\struttotal
+ \egroup
+ \fi\fi\fi}
+
+\def\fuzzyvskip#1%
+ {\iffuzzysnapdone
+ \dosyncfuzzyvskip % NEWER
+ \endfuzzysnapping
+ \vskip#1\relax
+ \global\fuzzysnapdonefalse
+ \else
+ \vskip#1\relax
+ \beginfuzzysnapping
+ \global\fuzzysnapdonetrue
+ \fi}
+
+\def\setfuzzymark#1#2#3% #1/#2 => error recovery
+ {\ifgridsnapping
+ \global\fuzzysnappingtrue
+ \global\advance\fuzzymarker \ifodd\fuzzymarker#1\else#2\fi
+ \nobreak
+ \ifshowfuzzyskips
+ \hbox{\color[grid:three]
+ {\llap{\infofont#3\vl\the\fuzzymarker}\nobreak
+ \vrule\!!width\hsize\!!height.1\lineheight}}
+ \nobreak
+ \fi
+ %[\the\fuzzymarker]
+ %\expandafter\fuzzymark\expandafter{\the\fuzzymarker}%
+ \expandafter\rawsetmark\expandafter\fuzzymark\expandafter{\the\fuzzymarker}%
+ \nobreak
+ \fi}
+
+\def\beginfuzzysnapping{\setfuzzymark21\v!start} % odd
+\def\endfuzzysnapping {\setfuzzymark12\v!stop } % even
+
+\def\removelastfuzzyvskip
+ {\ifgridsnapping
+ \iffuzzysnapping
+ \ifdim\lastskip<\openlineheight
+ \else
+ \removelastskip
+ \fi
+ \else
+ \removelastskip
+ \fi
+ \else
+ \removelastskip
+ \fi}
+
+\def\docheckfuzzysnap#1%
+ {\bgroup
+ \dontcomplain
+ \setbox\fuzzysnapbox\copy#1\relax
+ \setbox\fuzzysnapsplit\vsplit\fuzzysnapbox to 1\lineheight
+ \let\topfuzzymark\empty % indeed here ... no real mark
+ \getsplitmarks\fuzzymark
+% \ifcase0\topfuzzymark
+ \ifcase0\rawgetsplittopmark\fuzzymark
+ \global\chardef\fuzzysnappedleft\zerocount
+ \global\fuzzysnappedfalse
+% \else\ifodd\topfuzzymark
+ \else\ifodd\rawgetsplittopmark\fuzzymark
+ \global\chardef\fuzzysnappedleft\plusone
+ \global\fuzzysnappedtrue
+ \else
+ \global\chardef\fuzzysnappedleft=2
+ \global\fuzzysnappedtrue
+ \fi\fi
+ \iffuzzysnapped \else
+ \doloop
+ {\ifvoid\fuzzysnapbox
+ \exitloop
+ \else
+ \setbox\fuzzysnapsplit=\vsplit\fuzzysnapbox to \lineheight
+ %\let\topfuzzymark=\empty % ... but not here
+ \getsplitmarks\fuzzymark
+% \ifcase0\topfuzzymark
+ \ifcase0\rawgetsplittopmark\fuzzymark
+ % continue
+% \else\ifodd\topfuzzymark
+ \else\ifodd\rawgetsplittopmark\fuzzymark
+ \exitloop
+ \else
+ \global\chardef\fuzzysnappedleft\plusone
+ \global\fuzzysnappedtrue
+ \exitloop
+ \fi\fi
+ \fi}%
+ \fi
+ \egroup}
+
+\def\getfuzzysnapcorrection#1%
+ {\global\let\presnapcorrection \relax
+ \global\let\postsnapcorrection\relax
+ \ifgridsnapping\iffuzzysnapping
+ \docheckfuzzysnap{#1}%
+ \iffuzzysnapped
+ \iftracegridsnapping
+ \gdef\presnapcorrection
+ {\color[grid:four]{\hrule\!!height.5\openlineheight\!!width\hsize}}%
+ \else
+ \gdef\presnapcorrection{\kern.5\openlineheight}%
+ \fi
+ \gdef\postsnapcorrection{\kern-.5\openlineheight}% get the height ok
+ \fi
+ \fi\fi}
+
+\def\fuzzysnappedbox#1#2% \box<n> \unvbox<n>
+ {\getfuzzysnapcorrection{#2}%
+ \presnapcorrection
+ #1#2%
+ \postsnapcorrection}
+
+\def\adaptfuzzypagegoal
+ {\ifgridsnapping\iffuzzysnapping\ifcase\fuzzysnappedleft\or % see dopagecontents
+ \scratchdimen\pagegoal
+ \advance\scratchdimen -.5\openlineheight
+ \global\pagegoal\scratchdimen
+ \global\advance\vsize -.5\openlineheight
+ \global\chardef\fuzzysnappedleft0
+ \fi\fi\fi}
+
+%D New, experimental, used in caption snapping:
+%D
+%D \starttyping
+%D \startcolumnset
+%D
+%D \setupcaption[figure][style=\tfx\setupinterlinespace,inbetween=,grid=top]
+%D
+%D \placefigure [lrtb] {\dorecurse{5}{green gras}}
+%D {\externalfigure[dummy][width=\textwidth,height=3cm,grid=height]}
+%D \placefigure [lrtb] {\dorecurse{15}{green gras}}
+%D {\externalfigure[dummy][width=\textwidth,height=3cm,grid=height]}
+%D
+%D \setupcaption[figure][style=\tfx\setupinterlinespace,inbetween=,grid=bottom]
+%D
+%D \placefigure [rltb] {\dorecurse{5}{green gras}}
+%D {\externalfigure[dummy][width=\textwidth,height=3cm,grid=height]}
+%D \placefigure [rltb] {\dorecurse{15}{green gras}}
+%D {\externalfigure[dummy][width=\textwidth,height=3cm,grid=height]}
+%D
+%D \input thuan
+%D
+%D \stopcolumnset
+%D \stoptyping
+
+\def\moveboxontogrid#1#2#3% box method firstlineht % experimental ! ! !
+ {\doifsomething{#2}
+ {\getnoflines{\ht#1}% no depth taken into account, depth preserved
+ \scratchdimen\noflines\lineheight
+ \advance\scratchdimen-\strutdp
+ \bgroup
+ \advance\scratchdimen-\onepoint % be a bit tolerant
+ \ifdim\scratchdimen>\ht#1\relax
+ \egroup
+ \doif{#2}\v!top {\setbox#1\vbox to \scratchdimen{\vskip-#3\vskip\strutht\box#1\vfill}}%
+ \doif{#2}\v!bottom{\setbox#1\vbox to \scratchdimen{\vfill\box#1\removedepth}}%
+ \dp#1\strutdp
+ \else
+ \egroup
+ \ht#1\scratchdimen
+ \dp#1\strutdp
+ \fi}}
+
+%D New:
+
+\let\checkgridsnapping\relax
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-inc.lua b/Master/texmf-dist/tex/context/base/core-inc.lua
deleted file mode 100644
index 94b9ff329e4..00000000000
--- a/Master/texmf-dist/tex/context/base/core-inc.lua
+++ /dev/null
@@ -1,822 +0,0 @@
-if not modules then modules = { } end modules ['core-inc'] = {
- version = 1.001,
- comment = "companion to core-inc.tex",
- author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
- copyright = "PRAGMA ADE / ConTeXt Development Team",
- license = "see context related readme files"
-}
-
--- lowercase types
--- mps tex tmp svg
--- partly qualified
--- dimensions
--- consult rlx
-
---[[
-The ConTeXt figure inclusion mechanisms are among the oldest code
-in ConTeXt and evolve dinto a complex whole. One reason is that we
-deal with backend in an abstract way. What complicates matters is
-that we deal with internal graphics as well: TeX code, MetaPost code,
-etc. Later on figure databases were introduced, which resulted in
-a plug in model for locating images. On top of that runs a conversion
-mechanism (with caching) and resource logging.
-
-Porting that to Lua is not that trivial because quite some
-status information is kept between al these stages. Of course, image
-reuse also has some price, and so I decided to implement the graphics
-inclusion in several layers: detection, loading, inclusion, etc.
-
-Object sharing and scaling can happen at each stage, depending on the
-way the resource is dealt with.
-
-The TeX-Lua mix is suboptimal. This has to do with the fact that we cannot
-run TeX code from within Lua. Some more functionality will move to Lua.
-]]--
-
-backends = backends or { }
-backends.pdf = backends.pdf or { }
-
---~ function backends.pdf.startscaling(sx,sy)
---~ return nodes.pdfliteral(string.format("q %s 0 0 %s 0 0 cm",(sx ~= 0 and sx) or .0001,(sy ~= 0 and sy) or .0001))
---~ end
---~ function backends.pdf.stopscaling()
---~ return nodes.pdfliteral("%Q")
---~ end
-
-function backends.pdf.insertmovie(data)
- data = data or figures.current()
- local dr, du, ds = data.request, data.used, data.status
- local width, height, factor = du.width or dr.width, du.height or dr.height, number.dimenfactors.bp
- local options, actions = "", ""
- if dr["repeat"] then
- actions = actions .. "/Mode /Repeat "
- end
- if dr.controls then
- actions = actions .. "/ShowControls true "
- else
- actions = actions .. "/ShowControls false "
- end
- if dr.preview then
- options = options .. "/Poster true "
- end
- if actions ~= "" then
- actions= "/A <<" .. actions .. ">>"
- end
- tex.sprint(tex.ctxcatcodes, string.format(
- "\\doPDFannotation{%ssp}{%ssp}{/Subtype /Movie /Border [0 0 0] /T (movie %s) /Movie << /F (%s) /Aspect [%s %s] %s>> %s}",
- width, height, dr.label, du.foundname, factor * width, factor * height, options, actions
- ))
- return data
-end
-
---~ if node then do
---~ local n = node.new(0,0)
---~ local m = getmetatable(n)
---~ m.__concat = function(a,b)
---~ local t = node.slide(a)
---~ t.next, b.prev = b, t
---~ return a
---~ end
---~ node.free(n)
---~ end end
-
---- some extra img functions ---
-
-function img.totable(i)
- local t = { }
- for _, v in ipairs(img.keys()) do
- t[v] = i[v]
- end
- return t
-end
-
-function img.serialize(i)
- return table.serialize(img.totable(i))
-end
-
-function img.clone(i,data)
- i.width = data.width or i.width
- i.height = data.height or i.height
- -- attr etc
- return i
-end
-
-local validsizes = table.tohash(img.boxes())
-local validtypes = table.tohash(img.types())
-
-function img.check_size(size)
- if size then
- size = size:gsub("box","")
- return (validsizes[size] and size) or "crop"
- else
- return "crop"
- end
-end
-
----
-
-figures = figures or { }
-figures.loaded = figures.loaded or { }
-figures.used = figures.used or { }
-figures.found = figures.found or { }
-figures.suffixes = figures.suffixes or { }
-figures.patterns = figures.patterns or { }
-figures.boxnumber = figures.boxid or 0
-figures.trace = false
-figures.defaultsearch = true
-figures.defaultwidth = 0
-figures.defaultheight = 0
-figures.defaultdepth = 0
-figures.n = 0
-
-figures.localpaths = {
- ".", "..", "../.."
-}
-figures.cachepaths = {
- prefix = "",
- path = ".",
- subpath = ".",
-}
-
-figures.paths = table.copy(figures.localpaths)
-
-figures.order = {
- "pdf", "mps", "jpg", "png", "jbig", "svg", "eps", "mov", "buffer", "tex"
-}
-
-figures.formats = {
- ["pdf"] = { },
- ["mps"] = { patterns = { "%d+" } },
- ["jpg"] = { list = { "jpg", "jpeg" } },
- ["png"] = { } ,
- ["jbig"] = { list = { "jbig", "jbig2", "jb2" } },
- ["svg"] = { list = { "svg", "svgz" } },
- ["eps"] = { list = { "eps", "ai" } },
- ["mov"] = { list = { "mov", "avi" } },
- ["buffer"] = { list = { "tmp", "buffer", "buf" } },
- ["tex"] = { },
-}
-
-function figures.setlookups()
- figures.suffixes, figures.patterns = { }, { }
- for _, format in pairs(figures.order) do
- local data = figures.formats[format]
- local fs, fp = figures.suffixes, figures.patterns
- if data.list then
- for _, s in ipairs(data.list) do
- fs[s] = format -- hash
- end
- else
- fs[format] = format
- end
- if data.patterns then
- for _, s in ipairs(data.patterns) do
- fp[#fp+1] = { s, format } -- array
- end
- end
- end
-end
-
-figures.setlookups()
-
-local function register(tag,target,what)
- local data = figures.formats[target]
- if data then
- local d = data[tag]
- if d and not table.contains(d,what) then
- d[#d+1] = what
- else
- data[tag] = { what }
- end
- else
- figures.formats[target] = { }
- end
- figures.setlookups()
-end
-
-function figures.registersuffix (suffix, target) register('list', target,suffix ) end
-function figures.registerpattern(pattern,target) register('pattern',target,pattern) end
-
-local pathhash = { }
-
-function figures.setpaths(locationset,pathlist)
- local ph, iv, t = pathhash[locationset], interfaces.variables, nil
- if ph then
- ph = ph[pathlist]
- if ph then
- figures.paths = ph
- return
- end
- end
- if not ph then
- ph = { }
- pathhash[locationset] = ph
- end
- local h = locationset:tohash()
- t = (h[iv["local"]] and figures.localpaths) or { }
- if h[iv["global"]] then
- for s in pathlist:gmatch("([^, ]+)") do
- t[#t+1] = s
- end
- end
- figures.defaultsearch = h[iv["default"]]
- ph[pathlist] = t
- figures.paths = t
-end
-
--- check conversions and handle it here
-
---~ local keys = img.keys()
-
---~ function figures.hash(data)
---~ local i = data.status.private
---~ local t = { }
---~ for _, v in ipairs(keys) do
---~ local iv = i[v]
---~ if iv then
---~ t[#t+1] = v .. '=' .. iv
---~ end
---~ end
---~ return table.concat(t,"+")
---~ end
-
-function figures.hash(data)
- return data.status.fullname .. "+".. (data.request.page or 1) -- img is still not perfect
-end
-
--- interfacing to tex
-
-do
-
- local figuredata = { }
- local callstack = { }
-
- function figures.new()
- figuredata = {
- request = {
- name = false,
- label = false,
- format = false,
- page = false,
- width = false,
- height = false,
- preview = false,
- ["repeat"] = false,
- controls = false,
- display = false,
- conversion = false,
- cache = false,
- prefix = false,
- size = false,
- },
- used = {
- fullname = false,
- format = false,
- name = false,
- path = false,
- suffix = false,
- width = false,
- height = false,
- },
- status = {
- status = 0,
- converted = false,
- cached = false,
- fullname = false,
- format = false,
- },
- }
- return figuredata
- end
-
- function figures.push(request)
- input.starttiming(figures)
- local figuredata = figures.new()
- if request then
- local iv = interfaces.variables
- local w, h = tonumber(request.width), tonumber(request.height)
- request.page = math.max(tonumber(request.page) or 1,1)
- request.size = img.check_size(request.size)
- request.object = iv[request.object] == "yes"
- request["repeat"] = iv[request["repeat"]] == "yes"
- request.preview = iv[request.preview] == "yes"
- request.cache = request.cache ~= "" and request.cache
- request.prefix = request.prefix ~= "" and request.prefix
- request.format = request.format ~= "" and request.format
- request.width = (w and w > 0) or false
- request.height = (h and h > 0) or false
- table.merge(figuredata.request,request)
- end
- callstack[#callstack+1] = figuredata
- return figuredata
- end
- function figures.pop()
- figuredata = callstack[#callstack]
- callstack[#callstack] = nil
- input.stoptiming(figures)
- end
- -- maybe move tex.sprint to tex
- function figures.get(category,tag,default)
- local value = figuredata[category][tag]
- if not value or value == "" or value == true then
- return default or ""
- else
- return value
- end
- end
- function figures.tprint(category,tag,default)
- tex.sprint(tex.ctxcatcodes,figures.get(category,tag,default))
- end
- function figures.current()
- return callstack[#callstack]
- end
-
-end
-
-do
-
- local function register(askedname,specification)
- if specification then
- local format = specification.format
- if format then
- local converter = figures.converters[format]
- if converter then
- local oldname = specification.fullname
- local newpath = file.dirname(oldname)
- local newbase = file.replacesuffix(file.basename(oldname),"pdf") -- todo
- local fc = specification.cache or figures.cachepaths.path
- if fc and fc ~= "" and fc ~= "." then
- newpath = fc
- end
- local subpath = specification.subpath or figures.cachepaths.subpath
- if subpath and subpath ~= "" and subpath ~= "." then
- newpath = newpath .. "/" .. subpath
- end
- local prefix = specification.prefix or figures.cachepaths.prefix
- if prefix and prefix ~= "" then
- newbase = prefix .. newbase
- end
- local newname = file.join(newpath,newbase)
- dir.makedirs(newpath)
- local oldtime = lfs.attributes(oldname,'modification') or 0
- local newtime = lfs.attributes(newname,'modification') or 0
- if oldtime > newtime then
- converter(oldname,newname)
- end
- if io.exists(newname) then
- specification.foundname = oldname
- specification.fullname = newname
- specification.prefix = prefix
- specification.subpath = subpath
- specification.converted = true
- elseif exists(oldname) then
- specification.fullname = newname
- specification.converted = false
- end
- end
- end
- specification.found = true -- ?
- else
- specification = { }
- end
- specification.foundname = specification.foundname or specification.fullname
- figures.found[askedname] = specification
- return specification
- end
-
- local function locate(request) -- name, format, cache
- local askedname = input.clean_path(request.name)
- if figures.found[askedname] then
- return figures.found[askedname]
- end
- local askedpath= file.dirname(askedname)
- local askedbase = file.basename(askedname)
- local askedformat = (request.format ~= "" and request.format ~= "unknown" and request.format) or file.extname(askedname)
- local askedcache = request.cache
- if askedformat ~= "" then
- askedformat = askedformat:lower()
- local format = figures.suffixes[askedformat]
- if not format then
- for _, pattern in ipairs(figures.patterns) do
- if askedformat:find(pattern[1]) then
- format = pattern[2]
- break
- end
- end
- end
- if format then
- local foundname = figures.exists(askedname,askedformat)
- if foundname then
- return register(askedname, {
- askedname = askedname,
- fullname = askedname,
- format = format,
- cache = askedcache,
- foundname = foundname,
- })
- end
- end
- if askedpath ~= "" then
- -- path and type given, todo: strip pieces of path
- if figures.exists(askedname,askedformat) then
- return register(askedname, {
- askedname = askedname,
- fullname = askedname,
- format = askedformat,
- cache = askedcache,
- })
- end
- else
- -- type given
- for _, path in ipairs(figures.paths) do
- local check = path .. "/" .. askedname
- if figures.exists(check,askedformat) then
- return register(check, {
- askedname = askedname,
- fullname = check,
- format = askedformat,
- cache = askedcache,
- })
- end
- end
- if figures.defaultsearch then
- local check = input.find_file(texmf.instance,askedname)
- if check and check ~= "" then
- return register(askedname, {
- askedname = askedname,
- fullname = check,
- format = askedformat,
- cache = askedcache,
- })
- end
- end
- end
- elseif askedpath ~= "" then
- for _, format in ipairs(figures.order) do
- local list = figures.formats[format].list or { format }
- for _, suffix in ipairs(list) do
- local check = file.addsuffix(askedname,suffix)
- if figures.exists(check,format) then
- return register(askedname, {
- askedname = askedname,
- fullname = check,
- format = format,
- cache = askedcache,
- })
- end
- end
- end
- else
- for _, format in ipairs(figures.order) do
- local list = figures.formats[format].list or { format }
- for _, suffix in ipairs(list) do
- local name = file.replacesuffix(askedbase,suffix)
- for _, path in ipairs(figures.paths) do
- local check = path .. "/" .. name
- if figures.exists(check,format) then
- return register(askedname, {
- askedname = askedname,
- fullname = check,
- format = format,
- cache = askedcache,
- })
- end
- end
- if figures.defaultsearch then
- local check = input.find_file(texmf.instance,file.replacesuffix(askedname,suffix))
- if check and check ~= "" then
- return register(askedname, {
- askedname = askedname,
- fullname = check,
- format = format,
- cache = askedcache,
- })
- end
- end
- end
- end
- end
- return register(askedname)
- end
-
- -- -- -- plugins -- -- --
-
- figures.existers = figures.existers or { }
- figures.checkers = figures.checkers or { }
- figures.includers = figures.includers or { }
- figures.converters = figures.converters or { }
- figures.identifiers = figures.identifiers or { }
-
- figures.identifiers.list = {
- figures.identifiers.default
- }
-
- function figures.identifiers.default(data)
- local dr, du, ds = data.request, data.used, data.status
- local l = locate(dr)
- local foundname = l.foundname
- local fullname = l.fullname or foundname
- if fullname then
- du.format = l.format or false
- du.fullname = fullname -- can be cached
- ds.fullname = foundname -- original
- ds.format = l.format
- ds.status = (l.found and 10) or 0
- end
- return data
- end
-
- function figures.identify(data)
- data = data or figures.current()
- for _, identifier in ipairs(figures.identifiers.list) do
- data = identifier(data)
- if data.status.status > 0 then
- break
- end
- end
- return data
- end
- function figures.exists(askedname,format)
- return (figures.existers[format] or figures.existers.generic)(askedname)
- end
- function figures.check(data)
- data = data or figures.current()
- local dr, du, ds = data.request, data.used, data.status
- return (figures.checkers[ds.format] or figures.checkers.generic)(data)
- end
- function figures.include(data)
- data = data or figures.current()
- local dr, du, ds = data.request, data.used, data.status
- return (figures.includers[ds.format] or figures.includers.generic)(data)
- end
- function figures.scale(data) -- will become lua code
- tex.sprint(tex.ctxcatcodes,"\\doscalefigure")
- return data
- end
- function figures.done(data)
- figures.n = figures.n + 1
- data = data or figures.current()
- local dr, du, ds = data.request, data.used, data.status
- ds.width = tex.wd[figures.boxnumber]
- ds.height = tex.ht[figures.boxnumber]
- ds.xscale = ds.width/(du.width or 1)
- ds.yscale = ds.height/(du.height or 1)
- return data
- end
-
- function figures.dummy(data) -- fails
---~ data = data or figures.current()
---~ local dr, du, ds = data.request, data.used, data.status
---~ local r = node.new("rule")
---~ r.width = du.width or figures.defaultwidth
---~ r.height = du.height or figures.defaultheight
---~ r.depth = du.depth or figures.defaultdepth
---~ tex.box[figures.boxnumber] = node.write(r)
- tex.sprint(tex.ctxcatcodes,"\\emptyfoundexternalfigure")
- end
-
-end
-
--- -- -- generic -- -- --
-
-function figures.existers.generic(askedname)
---~ local result = io.exists(askedname)
---~ result = (result==true and askedname) or result
---~ local result = input.find_file(texmf.instance,askedname) or ""
- local result = input.findbinfile(texmf.instance,askedname) or ""
- if result == "" then result = false end
- if figures.trace then
- if result then
- logs.report("figures", "found:" .. askedname .. " ->" .. result)
- else
- logs.report("figures", "not found:" .. askedname)
- end
- end
- return result
-end
-function figures.checkers.generic(data)
- local dr, du, ds = data.request, data.used, data.status
- local name, page, size = du.fullname or "unknown generic", dr.page, dr.size or "crop"
- local hash = name .. "->" .. page .. "->" .. size
- local figure = figures.loaded[hash]
- if figure == nil then
- figure = img.new { filename = name, page = page, pagebox = dr.size }
- figure = (figure and img.scan(figure)) or false
- figures.loaded[hash] = figure
- end
- if figure then
- du.width = figure.width
- du.height = figure.height
- du.pages = figure.pages
- ds.private = figure
- end
- return data
-end
-function figures.includers.generic(data)
- local dr, du, ds = data.request, data.used, data.status
- dr.width = dr.width or du.width
- dr.height = dr.height or du.height
- local hash = figures.hash(data)
- local figure = figures.used[hash]
- if figure == nil then
- figure = ds.private
- if figure then
---~ figure.page = dr.page or '1'
- figure = img.copy(figure)
- figure = (figure and img.clone(figure,data.request)) or false
- end
- figures.used[hash] = figure
- end
- if figure then
- local n = figures.boxnumber
- tex.box[n] = img.node(figure) -- img.write(figure)
- tex.wd[n], tex.ht[n], tex.dp[n] = figure.width, figure.height, 0 -- new, hm, tricky, we need to do that in tex (yet)
- ds.objectnumber = figure.objnum
- tex.sprint(tex.ctxcatcodes,"\\relocateexternalfigure")
- end
- return data
-end
-
--- -- -- nongeneric -- -- --
-
-function figures.checkers.nongeneric(data,command)
- local dr, du, ds = data.request, data.used, data.status
- local name = du.fullname or "unknown nongeneric"
- local hash = name
- if dr.object then
- if not job.objects["FIG::"..hash] then
- tex.sprint(tex.ctxcatcodes,command)
- tex.sprint(tex.ctxcatcodes,string.format("\\setobject{FIG}{%s}\\vbox{\\box\\foundexternalfigure}",hash))
- end
- tex.sprint(tex.ctxcatcodes,string.format("\\global\\setbox\\foundexternalfigure\\vbox{\\getobject{FIG}{%s}}",hash))
- else
- tex.sprint(tex.ctxcatcodes,command)
- end
- return data
-end
-function figures.includers.nongeneric(data)
- return data
-end
-
--- -- -- mov -- -- --
-
-function figures.checkers.mov(data)
- local dr, du, ds = data.request, data.used, data.status
- du.width = dr.width or figures.defaultwidth
- du.height = dr.height or figures.defaultheight
- du.foundname = du.fullname
- tex.sprint(tex.ctxcatcodes,string.format("\\startfoundexternalfigure{%ssp}{%ssp}",du.width,du.height))
- data = backends.pdf.insertmovie(data)
- tex.sprint(tex.ctxcatcodes,"\\stopfoundexternalfigure")
- return data
-end
-figures.includers.mov = figures.includers.nongeneric
-
--- -- -- mps -- -- --
-
-function figures.checkers.mps(data)
- return figures.checkers.nongeneric(data,string.format("\\docheckfiguremps{%s}",data.used.fullname))
-end
-figures.includers.mps = figures.includers.nongeneric
-
--- -- -- buffer -- -- --
-
-function figures.existers.buffer(askedname)
- askedname = file.nameonly(askedname)
- return buffers.exists(askedname) and askedname
-end
-function figures.checkers.buffer(data)
- return figures.checkers.nongeneric(data,string.format("\\docheckfigurebuffer{%s}", file.nameonly(data.used.fullname)))
-end
-figures.includers.buffers = figures.includers.nongeneric
-
--- -- -- tex -- -- --
-
-function figures.existers.tex(askedname)
- askedname = input.find_file(texmf.instance,askedname)
- return (askedname ~= "" and askedname) or false
-end
-function figures.checkers.tex(data)
- return figures.checkers.nongeneric(data,string.format("\\docheckfiguretex{%s}", data.used.fullname))
-end
-figures.includers.tex = figures.includers.nongeneric
-
--- -- -- eps -- -- --
-
-function figures.converters.eps(oldname,newname)
- -- hack, we need a lua based converter script, or better, we should use
- -- rlx as alternative
- local outputpath = file.dirname(newname)
- local outputbase = file.basename(newname)
- local command = string.format("mtxrun bin:pstopdf --outputpath=%s %s",outputpath,oldname)
- os.spawn(command)
-end
-
-figures.converters.svg = figures.converters.eps
-
--- -- -- lowres -- -- --
-
---~ function figures.converters.pdf(oldname,newname)
---~ local outputpath = file.dirname(newname)
---~ local outputbase = file.basename(newname)
---~ local command = string.format("mtxrun bin:pstopdf --method=4 --outputpath=%s %s",outputpath,oldname)
---~ os.spawn(command)
---~ end
-
-
-figures.bases = { }
-figures.bases.list = { } -- index => { basename, fullname, xmlroot }
-figures.bases.used = { } -- [basename] => { basename, fullname, xmlroot } -- pointer to list
-figures.bases.found = { }
-figures.bases.enabled = false
-
-function figures.bases.use(basename)
- if basename == "reset" then
- figures.bases.list = { }
- figures.bases.used = { }
- figures.bases.found = { }
- figures.bases.enabled = false
- else
- basename = file.addsuffix(basename,"xml")
- if not figures.bases.used[basename] then
- local t = { basename, nil, nil }
- figures.bases.used[basename] = t
- figures.bases.list[#figures.bases.list+1] = t
- if not figures.bases.enabled then
- figures.bases.enabled = true
- xml.registerns("rlx","http://www.pragma-ade.com/schemas/rlx") -- we should be able to do this per xml file
- end
- end
- end
-end
-
-function figures.bases.find(basename,askedlabel)
- basename = file.addsuffix(basename,"xml")
- local t = figures.bases.found[askedlabel]
- if t == nil then
- local base = figures.bases.used[basename]
- local page = 0
- if base[2] == nil then
- -- no yet located
- for _, path in ipairs(figures.paths) do
- local xmlfile = path .. "/" .. basename
- if io.exists(xmlfile) then
- base[2] = xmlfile
- base[3] = xml.load(xmlfile)
- break
- end
- end
- end
- t = false
- if base[2] and base[3] then
- for e, d, k in xml.elements(base[3],"/(*:library|figurelibrary)/*:figure/*:label") do
- page = page + 1
- if xml.content(d[k]) == askedlabel then
- t = {
- base = file.replacesuffix(base[2],"pdf"),
- format = "pdf",
- name = xml.filters.text(e,"*:file"),
- page = page,
- }
- figures.bases.found[askedlabel] = t
- break
- end
- end
- end
- figures.bases.found[askedlabel] = t
- end
- return t
-end
-
--- we can access sequential or by name
-
-function figures.bases.locate(askedlabel)
- for _, entry in ipairs(figures.bases.list) do
- local t = figures.bases.find(entry[1],askedlabel)
- if t then
- return t
- end
- end
- return false
-end
-
-function figures.identifiers.base(data)
- if figures.bases.enabled then
- local dr, du, ds = data.request, data.used, data.status
- local fbl = figures.bases.locate(dr.name or dr.label)
- if fbl then
- du.page = fbl.page
- du.format = fbl.format
- du.fullname = fbl.base
- ds.fullname = fbl.name
- ds.format = fbl.format
- ds.status = 10
- end
- end
- return data
-end
-
-figures.identifiers.list = {
- figures.identifiers.base,
- figures.identifiers.default
-}
diff --git a/Master/texmf-dist/tex/context/base/core-inc.tex b/Master/texmf-dist/tex/context/base/core-inc.tex
deleted file mode 100644
index 88d52e74643..00000000000
--- a/Master/texmf-dist/tex/context/base/core-inc.tex
+++ /dev/null
@@ -1,18 +0,0 @@
-%D \module
-%D [ file=core-inc, % moved from core-fig
-%D version=2006.08.26, % overhaul of 1997.03.31
-%D title=\CONTEXT\ Core Macros,
-%D subtitle=Figure Inclusion,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{Context Core Macros / Figure Inclusion}
-
-\loadmarkfile{core-inc}
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/core-ini.tex b/Master/texmf-dist/tex/context/base/core-ini.mkii
index 4f6e9fe1d87..69edf9735ff 100644
--- a/Master/texmf-dist/tex/context/base/core-ini.tex
+++ b/Master/texmf-dist/tex/context/base/core-ini.mkii
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Initialization}
+\writestatus{loading}{ConTeXt Core Macros / Additional Initialization}
%D We will move more code to here, so that we become less dependent of the
%D orde in which modules are loaded.
diff --git a/Master/texmf-dist/tex/context/base/core-ini.mkiv b/Master/texmf-dist/tex/context/base/core-ini.mkiv
new file mode 100644
index 00000000000..a01abdd1117
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/core-ini.mkiv
@@ -0,0 +1,66 @@
+%D \module
+%D [ file=core-ini,
+%D version=2003.12.01,
+%D title=\CONTEXT\ Core Macros,
+%D subtitle=Additional Initialization,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Core Macros / Additional Initialization}
+
+%D We will move more code to here, so that we become less dependent of the
+%D orde in which modules are loaded.
+
+\unprotect
+
+\everypar \emptytoks
+\neverypar \emptytoks
+
+\appendtoks \flushnotes \to \everypar
+\appendtoks \synchronizesidefloats \to \everypar
+
+\appendtoks \checkindentation \to \everypar
+\appendtoks \showparagraphnumber \to \everypar
+\appendtoks \restoreinterlinepenalty \to \everypar
+\appendtoks \flushmargincontents \to \everypar
+\appendtoks \flushcommentanchors \to \everypar
+\appendtoks \synchronizenotes \to \everypar
+\appendtoks \OTRSETshowstatus \to \everypar
+\appendtoks \flushpostponedbookmark \to \everypar
+\appendtoks \registerparoptions \to \everypar
+\appendtoks \flushsyncpositions \to \everypar
+\appendtoks \flushpostponednodedata \to \everypar
+\appendtoks \dohandlerepeatdelimitedtext \to \everypar
+\appendtoks \insertparagraphintro \to \everypar
+
+\appendtoks \flushpostponedbookmark \to \neverypar
+\appendtoks \flushpostponedbookmark \to \everylistentry
+
+\appendtoks \flushnotes \to \everydisplay
+\appendtoks \adjustsidefloatdisplaylines \to \everydisplay
+
+\appendtoks \flushsyncpositions \to \everyheadstart
+
+\appendtoks \flushsyncresets \to \everyendoftextbody
+
+\appendtoks \ignorespaces \to \everybeginofpar
+
+\appendtoks \removeunwantedspaces \to \everyendofpar
+%appendtoks \strut \to \everyendofpar % option ?
+\appendtoks \flushsyncresets \to \everyendofpar
+\appendtoks \setlastlinewidth \to \everyendofpar % must happen before endgraf
+\appendtoks \endgraf \to \everyendofpar
+
+% Todo: verbatim, xml, tex, move code to here
+
+\ifx\normalcompound\undefined \let\normalcompound=| \fi
+
+\appendtoks \catcode`|=\@@active \let|\normalcompound \to \everyTEXinputmode
+\appendtoks \catcode`|=\@@letter \to \everyXMLinputmode
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-job.lua b/Master/texmf-dist/tex/context/base/core-job.lua
index b963227a50f..fb4f76de15c 100644
--- a/Master/texmf-dist/tex/context/base/core-job.lua
+++ b/Master/texmf-dist/tex/context/base/core-job.lua
@@ -6,33 +6,14 @@ if not modules then modules = { } end modules ['core-job'] = {
license = "see context related readme files"
}
--- will move
+local texsprint, texprint, format, find, gmatch = tex.sprint, tex.print, string.format, string.find, string.gmatch
-commands.writestatus = ctx.writestatus
-
-function commands.doifelse(b)
- tex.sprint(tex.texcatcodes,(b and "\\firstoftwoarguments") or "\\secondoftwoarguments")
-end
-function commands.doif(b)
- tex.sprint(tex.texcatcodes,(b and "\\firstofoneargument") or "\\gobbleoneargument")
-end
-function commands.doifnot(b)
- tex.sprint(tex.texcatcodes,(b and "\\gobbleoneargument") or "\\firstofoneargument")
-end
-cs.testcase = commands.doifelse
-
-local format = string.format
-
-function commands. def(cs,value) tex.sprint(tex.ctxcatcodes,format( "\\def\\%s{%s}",cs,value)) end
-function commands.edef(cs,value) tex.sprint(tex.ctxcatcodes,format("\\edef\\%s{%s}",cs,value)) end
-function commands.gdef(cs,value) tex.sprint(tex.ctxcatcodes,format("\\gdef\\%s{%s}",cs,value)) end
-function commands.xdef(cs,value) tex.sprint(tex.ctxcatcodes,format("\\xdef\\%s{%s}",cs,value)) end
-
-function commands.cs(cs,args) tex.sprint(tex.ctxcatcodes,format("\\csname %s\\endcsname %s",cs,args or"")) end
+local ctxcatcodes = tex.ctxcatcodes
+local texcatcodes = tex.texcatcodes
-- main code
-local function find_file(name,maxreadlevel)
+function resolvers.findctxfile(name,maxreadlevel)
local function exists(n)
if io.exists(n) then
return n
@@ -44,7 +25,7 @@ local function find_file(name,maxreadlevel)
end
return nil
end
- if input.aux.qualified_path(name) then
+ if file.is_qualified_path(name) then
return name
else
-- not that efficient, too many ./ lookups
@@ -61,41 +42,40 @@ local function find_file(name,maxreadlevel)
end
end
end
- return input.find_file(texmf.instance,name) or ""
+ return resolvers.find_file(name) or ""
end
end
function commands.processfile(name,maxreadlevel)
- name = find_file(name,maxreadlevel)
+ name = resolvers.findctxfile(name,maxreadlevel)
if name ~= "" then
- -- tex.sprint(tex.ctxcatcodes,string.format("\\input %s\\relax",name))
- tex.print(tex.ctxcatcodes,string.format("\\input %s",name))
+ texsprint(ctxcatcodes,format("\\input %s\\relax",name)) -- we need \input {name}
end
end
function commands.doifinputfileelse(name,maxreadlevel)
- commands.doifelse(find_file(name,maxreadlevel) ~= "")
+ commands.doifelse(resolvers.findctxfile(name,maxreadlevel) ~= "")
end
function commands.locatefilepath(name,maxreadlevel)
- tex.sprint(tex.texcatcodes,file.dirname(find_file(name,maxreadlevel)))
+ texsprint(texcatcodes,file.dirname(resolvers.findctxfile(name,maxreadlevel)))
end
function commands.usepath(paths,maxreadlevel)
- input.register_extra_path(texmf.instance,paths)
- tex.sprint(tex.texcatcodes,table.concat(texmf.instance.extra_paths or {}, ""))
+ resolvers.register_extra_path(paths)
+ texsprint(texcatcodes,table.concat(resolvers.instance.extra_paths or {}, ""))
end
function commands.usesubpath(subpaths,maxreadlevel)
- input.register_extra_path(texmf.instance,nil,subpaths)
- tex.sprint(tex.texcatcodes,table.concat(texmf.instance.extra_paths or {}, ""))
+ resolvers.register_extra_path(nil,subpaths)
+ texsprint(texcatcodes,table.concat(resolvers.instance.extra_paths or {}, ""))
end
function commands.usezipfile(name,tree)
if tree and tree ~= "" then
- input.usezipfile(texmf.instance,string.format("zip:///%s?tree=%s",name,tree))
+ resolvers.usezipfile(format("zip:///%s?tree=%s",name,tree))
else
- input.usezipfile(texmf.instance,string.format("zip:///%s",name))
+ resolvers.usezipfile(format("zip:///%s",name))
end
end
@@ -108,39 +88,107 @@ end
--~ </exa:variables>
local function convertexamodes(str)
- local x, t = xml.convert(str), { }
+ local x = xml.convert(str)
for e, d, k in xml.elements(x,"exa:variable") do
local dk = d[k]
local label = dk.at and dk.at.label
if label and label ~= "" then
- local data = xml.content(dk)
+ local data = xml.content(dk) or ""
local mode = label:match("^mode:(.+)$")
if mode then
- tex.sprint(tex.ctxcatcodes,string.format("\\enablemode[%s:%s]",mode,data))
- end
- if data:find("{}") then
- t[#t+1] = string.format("%s={%s}",mode,data)
- else
- t[#t+1] = string.format("%s=%s",mode,data)
+ texsprint(ctxcatcodes,format("\\enablemode[%s:%s]",mode,data))
end
+ texsprint(ctxcatcodes,format("\\setvariable{exa:variables}{%s}{%s}",label,data:gsub("([{}])","\\%1")))
end
end
- if #t > 0 then
- tex.sprint(tex.ctxcatcodes,string.format("\\setvariables[exa:variables][%s]",table.concat(t,",")))
- end
end
--- we need a system file option: ,. .. etc + paths but no tex lookup so input.find_file is wrong here
+-- we need a system file option: ,. .. etc + paths but no tex lookup so resolvers.find_file is wrong here
function commands.loadexamodes(filename)
if not filename or filename == "" then
- filename = file.stripsuffix(tex.jobname)
+ filename = file.removesuffix(tex.jobname)
end
- filename = input.find_file(texmf.instance,file.addsuffix(filename,'ctm')) or ""
+ filename = resolvers.find_file(file.addsuffix(filename,'ctm')) or ""
if filename ~= "" then
- commands.writestatus("examodes","loading " .. filename) -- todo: message system
+ commands.writestatus("examodes","loading %s",filename) -- todo: message system
convertexamodes(io.loaddata(filename))
else
- commands.writestatus("examodes","no mode file " .. filename) -- todo: message system
+ commands.writestatus("examodes","no mode file %s",filename) -- todo: message system
end
end
+
+function commands.logoptionfile(name)
+ -- todo: xml if xml logmode
+ local f = io.open(name)
+ if f then
+ texio.write_nl("log","%\n%\tbegin of optionfile\n%\n")
+ for line in f:lines() do
+ texio.write("log",format("%%\t%s\n",line))
+ end
+ texio.write("log","%\n%\tend of optionfile\n%\n")
+ f:close()
+ end
+end
+
+--~ set functions not ok and not faster on mk runs either
+--~
+--~ local function doifcommonelse(a,b)
+--~ local ba = find(a,",")
+--~ local bb = find(b,",")
+--~ if ba and bb then
+--~ for sa in gmatch(a,"[^ ,]+") do
+--~ for sb in gmatch(b,"[^ ,]+") do
+--~ if sa == sb then
+--~ texsprint(ctxcatcodes,"\\def\\commalistelement{",sa,"}")
+--~ return true
+--~ end
+--~ end
+--~ end
+--~ elseif ba then
+--~ for sa in gmatch(a,"[^ ,]+") do
+--~ if sa == b then
+--~ texsprint(ctxcatcodes,"\\def\\commalistelement{",b,"}")
+--~ return true
+--~ end
+--~ end
+--~ elseif bb then
+--~ for sb in gmatch(b,"[^ ,]+") do
+--~ if a == sb then
+--~ texsprint(ctxcatcodes,"\\def\\commalistelement{",a,"}")
+--~ return true
+--~ end
+--~ end
+--~ else
+--~ if a == b then
+--~ texsprint(ctxcatcodes,"\\def\\commalistelement{",a,"}")
+--~ return true
+--~ end
+--~ end
+--~ texsprint(ctxcatcodes,"\\let\\commalistelement\\empty")
+--~ return false
+--~ end
+--~ local function doifinsetelse(a,b)
+--~ local bb = find(b,",")
+--~ if bb then
+--~ for sb in gmatch(b,"[^ ,]+") do
+--~ if a == sb then
+--~ texsprint(ctxcatcodes,"\\def\\commalistelement{",a,"}")
+--~ return true
+--~ end
+--~ end
+--~ else
+--~ if a == b then
+--~ texsprint(ctxcatcodes,"\\def\\commalistelement{",a,"}")
+--~ return true
+--~ end
+--~ end
+--~ texsprint(ctxcatcodes,"\\let\\commalistelement\\empty")
+--~ return false
+--~ end
+--~ function commands.doifcommon (a,b) commands.doif (doifcommonelse(a,b)) end
+--~ function commands.doifnotcommon (a,b) commands.doifnot (doifcommonelse(a,b)) end
+--~ function commands.doifcommonelse(a,b) commands.doifelse(doifcommonelse(a,b)) end
+--~ function commands.doifinset (a,b) commands.doif (doifinsetelse(a,b)) end
+--~ function commands.doifnotinset (a,b) commands.doifnot (doifinsetelse(a,b)) end
+--~ function commands.doifinsetelse (a,b) commands.doifelse(doifinsetelse(a,b)) end
diff --git a/Master/texmf-dist/tex/context/base/core-job.mkii b/Master/texmf-dist/tex/context/base/core-job.mkii
index 3a0f4e2f4d6..a8a753e0db2 100644
--- a/Master/texmf-dist/tex/context/base/core-job.mkii
+++ b/Master/texmf-dist/tex/context/base/core-job.mkii
@@ -1,6 +1,6 @@
%D \module
%D [ file=core-job, % copied from main-001,
-%D version=2008.01.25,
+%D version=1997.03.31,
%D title=\CONTEXT\ Core Macros,
%D subtitle=Job Handling,
%D author=Hans Hagen,
@@ -11,8 +11,44 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+%D This module is still to be split and documented.
+
+\writestatus{loading}{ConTeXt Core Macros / Job Handling}
+
\unprotect
+\let \currentproject \empty
+\let \currentproduct \empty
+\let \currentenvironment \empty
+\let \currentcomponent \empty
+
+\let \loadedfiles \empty
+\let \processedfiles \empty
+
+\let \nomorefiles \relax
+
+\let \allinputpaths \empty
+\let \locatedfilepath \empty
+
+\newcount\textlevel
+\newcount\fileprocesslevel
+
+\setvalue{\c!file::0}{\jobname}
+
+\def\processedfile % is used in styles, don't change !
+ {\getvalue{\c!file::\number\fileprocesslevel}}
+
+\def\dostarttextfile#1%
+ {\global\advance\fileprocesslevel\plusone
+ \setxvalue{\c!file::\number\fileprocesslevel}{#1}%
+ \@EA\doglobal\@EA\addtocommalist\@EA{#1}\processedfiles}
+
+\def\dostoptextfile
+ {\global\advance\fileprocesslevel\minusone}
+
+\def\processlocalfile#1#2%
+ {#1{#2}\donothing{\readfile{#2}\donothing\donothing}}
+
\def\processfile#1%
{\ifx\allinputpaths\empty
\def\next{\processlocalfile\readlocfile}%
@@ -83,4 +119,292 @@
\processcommacommand[\allinputpaths]\docommand
\fi}
+\def\registerfileinfo[#1#2]#3% geen \showmessage ?
+ {\writestatus\m!systems{#1#2 file #3 at line \the\inputlineno}%
+ \immediatewriteutility{f #1 {#3}}}
+
+\ifx\preloadfonts \undefined \let\preloadfonts \relax \fi
+\ifx\preloadspecials\undefined \let\preloadspecials\relax \fi
+
+\def\loadallsystemfiles#1#2%
+ {\ifx\@@svdirectory\empty
+ \readsysfile{#1}{\showmessage\m!systems2{#1}}{#2}%
+ \else% yet undocumented
+ \def\doloadsystemfile##1%
+ {\readsetfile{##1}{#1}{\showmessage\m!systems2{#1}}{#2}}%
+ \processcommacommand[\@@svdirectory]\doloadsystemfile
+ \fi}
+
+\ifx\disableXML\undefined \let\disableXML\relax \fi
+
+\def\loadsystemfiles
+ {\reportprotectionstate
+ \readsysfile\f!newfilename{\showmessage\m!systems2\f!newfilename}\donothing
+ %\readsysfile\f!oldfilename{\showmessage\m!systems2\f!oldfilename}\donothing
+ \loadallsystemfiles\f!filfilename
+ \donothing
+ \loadallsystemfiles\f!sysfilename
+ {\loadallsystemfiles{\f!sysfilename.rme}\donothing % new, fall back
+ \doglobal\appendtoks % brrr better \setcatcodetable\ctxcatcodes % % test
+ \bgroup\disableXML\loadallsystemfiles\f!errfilename\donothing\egroup
+ \to\everygoodbye}}
+
+%D Loading of \type {cont-usr.tex} (edited by the user)
+%D and \type {cont-fmt.tex} (generated by texexec).
+
+\def\loaduserspecifications
+ {% this used to be the file where users can tune their system, especially patterns
+ \readsysfile\f!usrfilename{\showmessage\m!systems2\f!usrfilename}\donothing
+ % this one took care of user preferences (fonts, messages) but lm made this obsolete
+ \readjobfile\f!fmtfilename{\showmessage\m!systems2\f!fmtfilename}\donothing
+ % from now on we preload all patterns (only in mkii)
+ \preloadallpatterns}
+
+\let\loaduserspecifications\relax
+
+%D We don't want multiple jobfiles to interfere.
+
+\def\loadoptionfile
+ {\readjobfile{\jobname.\f!optionextension}
+ {\showmessage\m!systems2{\jobname.\f!optionextension}}%
+ {\writestatus\m!systems {no \jobname.\f!optionextension}}}
+
+% Most natural ...
+%
+% \def\doateverystarttext
+% {\the\everystarttext
+% \global\let\doateverystarttext\relax}
+%
+% ... most practical, since we can load env's in a
+% something.run file (nested \starttext's; see for
+% instance x-res-08, where we definitely want to
+% open the file!).
+
+\def\doateverystarttext
+ {\the\everystarttext
+ \global\everystarttext\emptytoks}
+
+\def\starttext
+ {\doateverystarttext
+ \ifcase\textlevel
+ \registerfileinfo[begin]\jobname
+ \expandafter\startcopyingblocks
+ \fi
+ \global\advance\textlevel\plusone}
+
+\def\stoptext
+ {\global\advance\textlevel\minusone
+ \ifnum\textlevel>\zerocount \else
+ \page[\v!last]\page % new, moved from everybye to here; flushes headers, colors etc etc etc
+ \the\everystoptext
+ %\the\everybye %
+ %\the\everygoodbye % == \end (new)
+ %\expandafter\normalend %
+ \expandafter\finalend
+ \fi}
+
+
+\let\autostoptext\relax
+
+\def\autostarttext
+ {\ifcase\textlevel
+ \starttext
+ \writestatus\m!systems{auto \string\starttext..\string\stoptext}%
+ \let\autostoptext\stoptext
+ \fi}
+
+\def\finalend
+ {\ifnum\textlevel>\zerocount \else
+ \the\everybye
+ \the\everygoodbye
+ \doifsometokselse\everynotabene{\writeline\the\everynotabene\writeline}\donothing
+ \global\everybye \emptytoks % rather unneeded
+ \global\everygoodbye\emptytoks % but for sure
+ \expandafter\normalend
+ \fi}
+
+\let\end\finalend
+
+\def\emergencyend
+ {\writestatus\m!systems{invalid \@EA\string\csname\e!start\v!text\endcsname...\@EA\string\csname\e!stop\v!text\endcsname\space structure}%
+ \stoptext}
+
+\def\currentfile{\inputfilename}
+
+\def\doexecutefileonce#1%
+ {\beforesplitstring#1\at.\to\currentfile
+ \fullexpandtwoargsafter\doifnotinset\currentfile\loadedfiles
+ {\fullexpandoneargafter\addtocommalist\currentfile\loadedfiles
+ \doexecutefile{#1}}}
+
+\def\doexecutefile#1%
+ {\registerfileinfo[begin]{#1}%
+ \dostarttextfile{#1}%
+ \processfile{#1}%
+ \dostoptextfile
+ \registerfileinfo[end]{#1}}
+
+\def\donotexecutefile#1%
+ {}
+
+\def\verwerkfile#1 %
+ {\doexecutefile{#1}}
+
+\def\useenvironment[#1]% maybe commalist
+ {\environment #1 \relax}
+
+\def\environment #1 % at outermost level only (load only once)
+ {\pushmacro\startenvironment
+ \pushmacro\stopenvironment
+ \def\startenvironment ##1 {}%
+ \let\stopenvironment\relax
+ \startreadingfile
+ \doexecutefileonce{#1}
+ \stopreadingfile
+ \popmacro\stopenvironment
+ \popmacro\startenvironment}
+
+\def\component #1 % at outermost level only
+ {\dostarttextfile{#1}%
+ \processfile{#1}%
+ \dostoptextfile}
+
+\newcount\filelevel
+
+\let\currentcomponent \v!text
+\let\currentcomponentpath\f!currentpath
+
+\def\donextlevel#1#2#3#4#5#6#7\\%
+ {\pushmacro\currentcomponent
+ \pushmacro\currentcomponentpath
+ \let\currentcomponent#1%
+ \setsystemmode\currentcomponent
+ \splitfilename{#1}%
+ \ifx\splitoffpath\empty
+ \let\currentcomponentpath\f!currentpath
+ \else
+ \let\currentcomponentpath\splitoffpath
+ \fi
+ \beforesplitstring#7\at.\to#2\relax % can become path + base
+ \ifcase\filelevel\relax
+ \starttext
+ \def\project ##1 {#3{##1}}%
+ \def\environment ##1 {#4{##1}}%
+ \def\product ##1 {#5{##1}}%
+ \def\component ##1 {#6{##1}}%
+ \fi
+ \advance\filelevel\plusone
+ \fullexpandoneargafter\addtocommalist{#1}\loadedfiles}
+
+\def\doprevlevel
+ {\popmacro\currentcomponentpath
+ \popmacro\currentcomponent
+ \setsystemmode\currentcomponent
+ \ifnum\filelevel=\plusone
+ \expandafter\stoptext
+ \else
+ \advance\filelevel\minusone
+ \expandafter\endinput
+ \fi}
+
+\def\startproject #1 %
+ {\donextlevel\v!project\currentproject
+ \donotexecutefile\doexecutefileonce
+ \doexecutefileonce\doexecutefile#1\\}
+
+\def\startproduct #1 %
+ {\doateverystarttext
+ \donextlevel\v!product\currentproduct
+ \doexecutefileonce\doexecutefileonce
+ \donotexecutefile\doexecutefile#1\\}
+
+\def\startcomponent #1 %
+ {\doateverystarttext
+ \donextlevel\v!component\currentcomponent
+ \doexecutefileonce\doexecutefileonce
+ \donotexecutefile\doexecutefile#1\\}
+
+\def\startenvironment #1 %
+ {\donextlevel\v!environment\currentenvironment
+ \donotexecutefile\doexecutefileonce
+ \donotexecutefile\donotexecutefile#1\\}
+
+% \startproject test
+% 1: \startmode[*project] project \stopmode \endgraf
+% 2: \startmode[*product] product \stopmode \endgraf
+% \stopproject
+
+\def\stopproject {\doprevlevel}
+\def\stopproduct {\doprevlevel}
+\def\stopcomponent {\doprevlevel}
+\def\stopenvironment{\doprevlevel}
+
+% more or less replaced by modes
+
+\setvalue{\e!start\v!localenvironment}[#1]%
+ {\let\loadedlocalenvironments\empty
+ \def\docommand##1%
+ {\beforesplitstring##1\at.\to\someevironment
+ \fullexpandoneargafter\addtocommalist\someevironment\loadedlocalenvironments}%
+ \processcommalist[#1]\docommand
+ \fullexpandtwoargsafter\doifcommonelse % no longer next needed
+ {\currentproject,\currentproduct,%
+ \currentcomponent,\currentenvironment}
+ {\loadedlocalenvironments}
+ {\letvalue{\e!stop\v!localenvironment}\relax}
+ {\grabuntil{\e!stop\v!localenvironment}\gobbleoneargument}} % TH: fixed, was \relax
+
+\setvalue{\v!localenvironment}#1 {\doexecutefileonce{#1}}
+
+% NOT TOEVOEGEN: \the\everytrace
+
+\neverypar=\emptytoks
+
+% \appendtoks \flushnotes \to \everypar
+% \appendtoks \synchronizesidefloats \to \everypar
+% \appendtoks \checkindentation \to \everypar
+% \appendtoks \showparagraphnumber \to \everypar
+% \appendtoks \flushmargincontents \to \everypar
+% \appendtoks \flushcommentanchors \to \everypar
+% \appendtoks \synchronizenotes \to \everypar
+
+% \appendtoks \flushnotes \to \everydisplay
+% \appendtoks \adjustsidefloatdisplaylines \to \everydisplay
+
+% soon, when pdftex 1.22 is out in the field:
+
+\chardef\systemcommandmode\zerocount % 0=unknown 1=disabled 2=enabled
+
+\def\checksystemcommandmode
+ {\ifx\pdfshellescape\undefined \else
+ \chardef\systemcommandmode \ifcase\pdfshellescape \plusone \else \plustwo \fi
+ \fi
+ \global\let\checksystemcommandmode\relax}
+
+\def\reportsystemcommandmode
+ {\ifcase\systemcommandmode
+ \or
+ \writestatus\m!systems{system commands are disabled}%
+ \or
+ \writestatus\m!systems{system commands are enabled}%
+ \fi}
+
+% \ifx\etexversion\undefined \else \ifnum\etexversion<202
+% \prependtoks
+% \writestatus\m!systems{eTeX version \number\etexversion\space -> too old (bugs)}%
+% \writeline
+% \to \everyjob
+% \fi \fi
+
+% \ifx\pdftexversion\undefined \else \ifnum\number\pdftexversion<120
+% \prependtoks
+% \writestatus\m!systems{pdfTeX version \number\pdftexversion\space -> please update}%
+% \writeline
+% \to \everyjob
+% \fi \fi
+
+% Default-instellingen (verborgen)
+
+\resetutilities
+
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-job.mkiv b/Master/texmf-dist/tex/context/base/core-job.mkiv
index c49063b86ac..7231ac383c1 100644
--- a/Master/texmf-dist/tex/context/base/core-job.mkiv
+++ b/Master/texmf-dist/tex/context/base/core-job.mkiv
@@ -1,6 +1,6 @@
%D \module
-%D [ file=core-job,
-%D version=2008.01.25,
+%D [ file=core-job, % copied from main-001,
+%D version=1997.03.31,
%D title=\CONTEXT\ Core Macros,
%D subtitle=Job Handling,
%D author=Hans Hagen,
@@ -11,18 +11,305 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+%D This module is still to be split and documented.
+
+\writestatus{loading}{ConTeXt Core Macros / Job Handling}
+
+\unprotect
+
\registerctxluafile{core-job}{1.001}
-\def\processfile #1{\ctxlua{commands.processfile("#1",\number\maxreadlevel)}}
-\def\doifinputfileelse#1{\ctxlua{commands.doifinputfileelse("#1",\number\maxreadlevel)}}
-\def\locatefilepath #1{\edef\locatedfilepath{\ctxlua{commands.locatefilepath("#1",\number\maxreadlevel)}}}
-\def\usepath [#1]{\edef\allinputpaths{\ctxlua{commands.usepath("#1")}}}
-\def\usesubpath [#1]{\edef\allinputpaths{\ctxlua{commands.usesubpath("#1")}}}
+\let \currentproject \empty
+\let \currentproduct \empty
+\let \currentenvironment \empty
+\let \currentcomponent \empty
+
+\let \loadedfiles \empty
+\let \processedfiles \empty
+
+\let \nomorefiles \relax
+
+\let \allinputpaths \empty
+\let \locatedfilepath \empty
+
+\newcount\textlevel
+\newcount\fileprocesslevel
+\setvalue{\c!file::0}{\jobname}
+
+\def\processedfile % is used in styles, don't change !
+ {\getvalue{\c!file::\number\fileprocesslevel}}
+
+\def\dostarttextfile#1%
+ {\global\advance\fileprocesslevel\plusone
+ \setxvalue{\c!file::\number\fileprocesslevel}{#1}%
+ \@EA\doglobal\@EA\addtocommalist\@EA{#1}\processedfiles}
+
+\def\dostoptextfile
+ {\global\advance\fileprocesslevel\minusone}
+
+\def\processlocalfile#1#2%
+ {#1{#2}\donothing{\readfile{#2}\donothing\donothing}}
+
+\def\processfile #1{\ctxlua{commands.processfile("#1",\number\maxreadlevel)}}
+\def\doifinputfileelse #1{\ctxlua{commands.doifinputfileelse("#1",\number\maxreadlevel)}}
+\def\locatefilepath #1{\edef\locatedfilepath{\ctxlua{commands.locatefilepath("#1",\number\maxreadlevel)}}}
+\def\usepath [#1]{\edef\allinputpaths{\ctxlua{commands.usepath("#1")}}}
+\def\usesubpath [#1]{\edef\allinputpaths{\ctxlua{commands.usesubpath("#1")}}}
\def\usezipfile {\dodoubleempty\dousezipfile}
\def\dousezipfile[#1][#2]{\ctxlua{commands.usezipfile("#1","#2")}} % [filename] [optional subtree]
\def\loadexamodes {\dosingleempty\doloadexamodes}
\def\doloadexamodes [#1]{\ctxlua{commands.loadexamodes("#1")}}
-\endinput
+\def\registerfileinfo[#1#2]#3% geen \showmessage ?
+ {\writestatus\m!systems{#1#2 file #3 at line \the\inputlineno}}
+
+\ifx\preloadfonts \undefined \let\preloadfonts \relax \fi
+\ifx\preloadspecials\undefined \let\preloadspecials\relax \fi
+
+\def\loadallsystemfiles#1#2%
+ {\ifx\@@svdirectory\empty
+ \readsysfile{#1}{\showmessage\m!systems2{#1}}{#2}%
+ \else% yet undocumented
+ \def\doloadsystemfile##1%
+ {\readsetfile{##1}{#1}{\showmessage\m!systems2{#1}}{#2}}%
+ \processcommacommand[\@@svdirectory]\doloadsystemfile
+ \fi}
+
+\ifx\disableXML\undefined \let\disableXML\relax \fi
+
+\def\loadsystemfiles
+ {\reportprotectionstate
+ \readsysfile\f!newfilename{\showmessage\m!systems2\f!newfilename}\donothing
+ %\readsysfile\f!oldfilename{\showmessage\m!systems2\f!oldfilename}\donothing
+ \loadallsystemfiles\f!filfilename
+ \donothing
+ \loadallsystemfiles\f!sysfilename
+ {\loadallsystemfiles{\f!sysfilename.rme}\donothing % new, fall back
+ \doglobal\appendtoks % brrr better \setcatcodetable\ctxcatcodes % % test
+ \bgroup\disableXML\loadallsystemfiles\f!errfilename\donothing\egroup
+ \to\everygoodbye}}
+
+%D We don't want multiple jobfiles to interfere.
+
+\def\loadoptionfile
+ {\readjobfile{\jobname.\f!optionextension}
+ {\showmessage\m!systems2{\jobname.\f!optionextension}%
+ \ctxlua{commands.logoptionfile("\jobname.\f!optionextension")}}%
+ {\writestatus\m!systems {no \jobname.\f!optionextension}}}
+
+% Most natural ...
+%
+% \def\doateverystarttext
+% {\the\everystarttext
+% \global\let\doateverystarttext\relax}
+%
+% ... most practical, since we can load env's in a
+% something.run file (nested \starttext's; see for
+% instance x-res-08, where we definitely want to
+% open the file!).
+
+\def\doateverystarttext
+ {\the\everystarttext
+ \global\everystarttext\emptytoks}
+
+\def\starttext
+ {\doateverystarttext
+ \ifcase\textlevel
+ \registerfileinfo[begin]\jobname
+ \fi
+ \global\advance\textlevel\plusone}
+
+\def\stoptext
+ {\global\advance\textlevel\minusone
+ \ifnum\textlevel>\zerocount \else
+ \page[\v!last]\page % new, moved from everybye to here; flushes headers, colors etc etc etc
+ \the\everystoptext
+ %\the\everybye %
+ %\the\everygoodbye % == \end (new)
+ %\expandafter\normalend %
+ \expandafter\finalend
+ \fi}
+
+\let\autostoptext\relax
+
+\def\autostarttext
+ {\ifcase\textlevel
+ \starttext
+ \writestatus\m!systems{auto \string\starttext..\string\stoptext}%
+ \let\autostoptext\stoptext
+ \fi}
+
+\def\finalend
+ {\ifnum\textlevel>\zerocount \else
+ \the\everybye
+ \the\everygoodbye
+ \doifsometokselse\everynotabene{\writeline\the\everynotabene\writeline}\donothing
+ \global\everybye \emptytoks % rather unneeded
+ \global\everygoodbye\emptytoks % but for sure
+ \expandafter\normalend
+ \fi}
+
+\let\end\finalend
+
+\def\emergencyend
+ {\writestatus\m!systems{invalid \@EA\string\csname\e!start\v!text\endcsname...\@EA\string\csname\e!stop\v!text\endcsname\space structure}%
+ \stoptext}
+
+\def\currentfile{\inputfilename}
+
+\def\doexecutefileonce#1%
+ {\beforesplitstring#1\at.\to\currentfile
+ \fullexpandtwoargsafter\doifnotinset\currentfile\loadedfiles
+ {\fullexpandoneargafter\addtocommalist\currentfile\loadedfiles
+ \doexecutefile{#1}}}
+
+\def\doexecutefile#1%
+ {\registerfileinfo[begin]{#1}%
+ \dostarttextfile{#1}%
+ \processfile{#1}%
+ \dostoptextfile
+ \registerfileinfo[end]{#1}}
+
+\def\donotexecutefile#1%
+ {}
+
+\def\useenvironment[#1]% maybe commalist
+ {\environment #1 \relax}
+
+\def\environment #1 % at outermost level only (load only once)
+ {\pushmacro\startenvironment
+ \pushmacro\stopenvironment
+ \def\startenvironment ##1 {}%
+ \let\stopenvironment\relax
+ \startreadingfile
+ \doexecutefileonce{#1}
+ \stopreadingfile
+ \popmacro\stopenvironment
+ \popmacro\startenvironment}
+
+\def\component #1 % at outermost level only
+ {\dostarttextfile{#1}%
+ \processfile{#1}%
+ \dostoptextfile}
+
+\newcount\filelevel
+
+\let\currentcomponent \v!text
+\let\currentcomponentpath\f!currentpath
+
+\def\donextlevel#1#2#3#4#5#6#7\\%
+ {\pushmacro\currentcomponent
+ \pushmacro\currentcomponentpath
+ \let\currentcomponent#1%
+ \setsystemmode\currentcomponent
+ \splitfilename{#1}%
+ \ifx\splitoffpath\empty
+ \let\currentcomponentpath\f!currentpath
+ \else
+ \let\currentcomponentpath\splitoffpath
+ \fi
+ \beforesplitstring#7\at.\to#2\relax % can become path + base
+ \ifcase\filelevel\relax
+ \starttext
+ \def\project ##1 {#3{##1}}%
+ \def\environment ##1 {#4{##1}}%
+ \def\product ##1 {#5{##1}}%
+ \def\component ##1 {#6{##1}}%
+ \fi
+ \advance\filelevel\plusone
+ \fullexpandoneargafter\addtocommalist{#1}\loadedfiles}
+
+\def\doprevlevel
+ {\popmacro\currentcomponentpath
+ \popmacro\currentcomponent
+ \setsystemmode\currentcomponent
+ \ifnum\filelevel=\plusone
+ \expandafter\stoptext
+ \else
+ \advance\filelevel\minusone
+ \expandafter\endinput
+ \fi}
+
+\def\startproject #1 %
+ {\donextlevel\v!project\currentproject
+ \donotexecutefile\doexecutefileonce
+ \doexecutefileonce\doexecutefile#1\\}
+
+\def\startproduct #1 %
+ {\doateverystarttext
+ \donextlevel\v!product\currentproduct
+ \doexecutefileonce\doexecutefileonce
+ \donotexecutefile\doexecutefile#1\\}
+
+\def\startcomponent #1 %
+ {\doateverystarttext
+ \donextlevel\v!component\currentcomponent
+ \doexecutefileonce\doexecutefileonce
+ \donotexecutefile\doexecutefile#1\\}
+
+\def\startenvironment #1 %
+ {\donextlevel\v!environment\currentenvironment
+ \donotexecutefile\doexecutefileonce
+ \donotexecutefile\donotexecutefile#1\\}
+
+% \startproject test
+% 1: \startmode[*project] project \stopmode \endgraf
+% 2: \startmode[*product] product \stopmode \endgraf
+% \stopproject
+
+\def\stopproject {\doprevlevel}
+\def\stopproduct {\doprevlevel}
+\def\stopcomponent {\doprevlevel}
+\def\stopenvironment{\doprevlevel}
+
+% more or less replaced by modes
+
+\setvalue{\e!start\v!localenvironment}[#1]%
+ {\let\loadedlocalenvironments\empty
+ \def\docommand##1%
+ {\beforesplitstring##1\at.\to\someevironment
+ \fullexpandoneargafter\addtocommalist\someevironment\loadedlocalenvironments}%
+ \processcommalist[#1]\docommand
+ \fullexpandtwoargsafter\doifcommonelse % no longer next needed
+ {\currentproject,\currentproduct,%
+ \currentcomponent,\currentenvironment}
+ {\loadedlocalenvironments}
+ {\letvalue{\e!stop\v!localenvironment}\relax}
+ {\grabuntil{\e!stop\v!localenvironment}\gobbleoneargument}} % TH: fixed, was \relax
+
+\setvalue{\v!localenvironment}#1 {\doexecutefileonce{#1}}
+
+% NOT TOEVOEGEN: \the\everytrace
+
+\neverypar\emptytoks
+
+% \appendtoks \flushnotes \to \everypar
+% \appendtoks \synchronizesidefloats \to \everypar
+% \appendtoks \checkindentation \to \everypar
+% \appendtoks \showparagraphnumber \to \everypar
+% \appendtoks \flushmargincontents \to \everypar
+% \appendtoks \flushcommentanchors \to \everypar
+% \appendtoks \synchronizenotes \to \everypar
+
+% \appendtoks \flushnotes \to \everydisplay
+% \appendtoks \adjustsidefloatdisplaylines \to \everydisplay
+
+\chardef\systemcommandmode\zerocount % 0=unknown 1=disabled 2=enabled
+
+\def\checksystemcommandmode
+ {\ifx\pdfshellescape\undefined \else
+ \chardef\systemcommandmode \ifcase\pdfshellescape \plusone \else \plustwo \fi
+ \fi
+ \global\let\checksystemcommandmode\relax}
+
+\def\reportsystemcommandmode
+ {\ifcase\systemcommandmode
+ \or
+ \writestatus\m!systems{system commands are disabled}%
+ \or
+ \writestatus\m!systems{system commands are enabled}%
+ \fi}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-job.tex b/Master/texmf-dist/tex/context/base/core-job.tex
deleted file mode 100644
index 13b829d3903..00000000000
--- a/Master/texmf-dist/tex/context/base/core-job.tex
+++ /dev/null
@@ -1,365 +0,0 @@
-%D \module
-%D [ file=core-job, % copied from main-001,
-%D version=1997.03.31,
-%D title=\CONTEXT\ Core Macros,
-%D subtitle=Job Handling,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This module is still to be split and documented.
-
-\writestatus{loading}{Context Core Macros / Job Handling}
-
-\loadmarkfile{core-job}
-
-\unprotect
-
-\let \currentproject \empty
-\let \currentproduct \empty
-\let \currentenvironment \empty
-\let \currentcomponent \empty
-
-\let \loadedfiles \empty
-\let \processedfiles \empty
-
-\let \nomorefiles \relax
-
-\let \allinputpaths \empty
-\let \locatedfilepath \empty
-
-\newcount\textlevel
-\newcount\fileprocesslevel
-
-\setvalue{\c!file::0}{\jobname}
-
-\def\processedfile % is used in styles, don't change !
- {\getvalue{\c!file::\number\fileprocesslevel}}
-
-\def\dostarttextfile#1%
- {\global\advance\fileprocesslevel\plusone
- \setxvalue{\c!file::\number\fileprocesslevel}{#1}%
- \@EA\doglobal\@EA\addtocommalist\@EA{#1}\processedfiles}
-
-\def\dostoptextfile
- {\global\advance\fileprocesslevel\minusone}
-
-\def\processlocalfile#1#2%
- {#1{#2}\donothing{\readfile{#2}\donothing\donothing}}
-
-\ifx\processfile \undefined \let\processfile \gobbleoneargument \fi
-\ifx\doifinputfileelse\undefined \let\doifinputfileelse \gobbleoneargument \fi
-\ifx\locatefilepath \undefined \let\locatefilepath \gobbleoneargument \fi
-\ifx\usepath \undefined \def\usepath [#1]{} \fi
-\ifx\usesubpath \undefined \def\usesubpath [#1]{} \fi
-
-\def\registerfileinfo[#1#2]#3% geen \showmessage ?
- {\writestatus\m!systems{#1#2 file #3 at line \the\inputlineno}%
- \immediatewriteutility{f #1 {#3}}}
-
-\ifx\preloadfonts \undefined \let\preloadfonts \relax \fi
-\ifx\preloadspecials\undefined \let\preloadspecials\relax \fi
-
-\def\loadallsystemfiles#1#2%
- {\ifx\@@svdirectory\empty
- \readsysfile{#1}{\showmessage\m!systems2{#1}}{#2}%
- \else% yet undocumented
- \def\doloadsystemfile##1%
- {\readsetfile{##1}{#1}{\showmessage\m!systems2{#1}}{#2}}%
- \processcommacommand[\@@svdirectory]\doloadsystemfile
- \fi}
-
-\ifx\disableXML\undefined \let\disableXML\relax \fi
-
-\def\loadsystemfiles
- {\reportprotectionstate
- \readsysfile\f!newfilename{\showmessage\m!systems2\f!newfilename}\donothing
- \readsysfile\f!oldfilename{\showmessage\m!systems2\f!oldfilename}\donothing
- \loadallsystemfiles\f!filfilename
- \donothing
- \loadallsystemfiles\f!sysfilename
- {\loadallsystemfiles{\f!sysfilename.rme}\donothing % new, fall back
- \doglobal\appendtoks % brrr better \setcatcodetable\ctxcatcodes % % test
- \bgroup\disableXML\loadallsystemfiles\f!errfilename\donothing\egroup
- \to\everygoodbye}}
-
-%D Loading of \type {cont-usr.tex} (edited by the user)
-%D and \type {cont-fmt.tex} (generated by texexec).
-
-\def\loaduserspecifications
- {\readsysfile\f!usrfilename{\showmessage\m!systems2\f!usrfilename}\donothing
- \readjobfile\f!fmtfilename{\showmessage\m!systems2\f!fmtfilename}\donothing
- \ifx\directlua\undefined\else\preloadallpatterns\fi} % temp hack, we will do runtime loading later
-
-%D We don't want multiple jobfiles to interfere.
-
-\def\loadoptionfile
- {\readjobfile{\jobname.\f!optionextension}
- {\showmessage\m!systems2{\jobname.\f!optionextension}}%
- {\writestatus\m!systems {no \jobname.\f!optionextension}}}
-
-% \newevery \everyjob \EveryJob
-% \appendtoks ... \to \everyjob
-
-\appendtoks \loadsystemfiles \to \everyjob
-\appendtoks \preloadfonts \to \everyjob
-\appendtoks \settopskip \to \everyjob
-\appendtoks \preloadlanguages \to \everyjob
-\appendtoks \preloadspecials \to \everyjob
-\appendtoks \openspecialfile \to \everyjob
-%appendtoks \checkutilityfile \to \everyjob % obsolete
-\appendtoks \openutilities \to \everyjob
-\appendtoks \loadoptionfile \to \everyjob
-%appendtoks \loadtwopassdata \to \everyjob
-\appendtoks \checknotes \to \everyjob % depends on bodyfont
-\appendtoks \initializeMPgraphics \to \everyjob % after loading system files
-
-\appendtoks \page[\v!last] \page \to \everybye
-\appendtoks \ifarrangingpages\poparrangedpages\fi \to \everybye
-\appendtoks \registerfileinfo[end]\jobname \to \everybye
-
-\appendtoks \savenofpages \to \everybye
-\appendtoks \savenofsubpages \to \everybye
-
-\appendtoks \closeutilities \to \everygoodbye
-\appendtoks \stopcopyingblocks \to \everygoodbye
-\appendtoks \closespecialfile \to \everygoodbye
-
-\prependtoks \resetutilities \to \everystarttext % moved 28-02-2002
-\prependtoks \loadtwopassdata \to \everystarttext % moved 28-02-2002
-\appendtoks \checkreferences \to \everystarttext % new 04-12-1999
-
-% Most natural ...
-%
-% \def\doateverystarttext
-% {\the\everystarttext
-% \global\let\doateverystarttext\relax}
-%
-% ... most practical, since we can load env's in a
-% something.run file (nested \starttext's; see for
-% instance x-res-08, where we definitely want to
-% open the file!).
-
-\def\doateverystarttext
- {\the\everystarttext
- \global\everystarttext\emptytoks}
-
-\def\starttext
- {\doateverystarttext
- \ifcase\textlevel
- \registerfileinfo[begin]\jobname
- \expandafter\startcopyingblocks
- \fi
- \global\advance\textlevel\plusone}
-
-\def\stoptext
- {\global\advance\textlevel\minusone
- \ifnum\textlevel>\zerocount \else
- \the\everystoptext
- %\the\everybye %
- %\the\everygoodbye % == \end (new)
- %\expandafter\normalend %
- \expandafter\finalend
- \fi}
-
-\def\finalend
- {\ifnum\textlevel>\zerocount \else
- \the\everybye
- \the\everygoodbye
- \global\everybye \emptytoks % rather unneeded
- \global\everygoodbye\emptytoks % but for sure
- \expandafter\normalend
- \fi}
-
-\let\end\finalend
-
-\def\emergencyend
- {\writestatus\m!systems{invalid \@EA\string\csname\e!start\v!text\endcsname...\@EA\string\csname\e!stop\v!text\endcsname\space structure}%
- \stoptext}
-
-\def\currentfile{\inputfilename}
-
-\def\doexecutefileonce#1%
- {\beforesplitstring#1\at.\to\currentfile
- \fullexpandtwoargsafter\doifnotinset\currentfile\loadedfiles
- {\fullexpandoneargafter\addtocommalist\currentfile\loadedfiles
- \doexecutefile{#1}}}
-
-\def\doexecutefile#1%
- {\registerfileinfo[begin]{#1}%
- \dostarttextfile{#1}%
- \processfile{#1}%
- \dostoptextfile
- \registerfileinfo[end]{#1}}
-
-\def\donotexecutefile#1%
- {}
-
-\def\verwerkfile#1 %
- {\doexecutefile{#1}}
-
-\def\useenvironment[#1]% maybe commalist
- {\environment #1 \relax}
-
-\def\environment #1 % at outermost level only (load only once)
- {\pushmacro\startenvironment
- \pushmacro\stopenvironment
- \def\startenvironment ##1 {}%
- \let\stopenvironment\relax
- \startreadingfile
- \doexecutefileonce{#1}
- \stopreadingfile
- \popmacro\stopenvironment
- \popmacro\startenvironment}
-
-\def\component #1 % at outermost level only
- {\dostarttextfile{#1}%
- \processfile{#1}%
- \dostoptextfile}
-
-\newcount\filelevel
-
-\let\currentcomponent \v!text
-\let\currentcomponentpath\f!currentpath
-
-\def\donextlevel#1#2#3#4#5#6#7\\%
- {\pushmacro\currentcomponent
- \pushmacro\currentcomponentpath
- \let\currentcomponent#1%
- \setsystemmode\currentcomponent
- \splitfilename{#1}%
- \ifx\splitoffpath\empty
- \let\currentcomponentpath\f!currentpath
- \else
- \let\currentcomponentpath\splitoffpath
- \fi
- \beforesplitstring#7\at.\to#2\relax % can become path + base
- \ifcase\filelevel\relax
- \starttext
- \def\project ##1 {#3{##1}}%
- \def\environment ##1 {#4{##1}}%
- \def\product ##1 {#5{##1}}%
- \def\component ##1 {#6{##1}}%
- \fi
- \advance\filelevel\plusone
- \fullexpandoneargafter\addtocommalist{#1}\loadedfiles}
-
-\def\doprevlevel
- {\popmacro\currentcomponentpath
- \popmacro\currentcomponent
- \setsystemmode\currentcomponent
- \ifnum\filelevel=\plusone
- \expandafter\stoptext
- \else
- \advance\filelevel\minusone
- \expandafter\endinput
- \fi}
-
-\def\startproject #1 %
- {\donextlevel\v!project\currentproject
- \donotexecutefile\doexecutefileonce
- \doexecutefileonce\doexecutefile#1\\}
-
-\def\startproduct #1 %
- {\doateverystarttext
- \donextlevel\v!product\currentproduct
- \doexecutefileonce\doexecutefileonce
- \donotexecutefile\doexecutefile#1\\}
-
-\def\startcomponent #1 %
- {\doateverystarttext
- \donextlevel\v!component\currentcomponent
- \doexecutefileonce\doexecutefileonce
- \donotexecutefile\doexecutefile#1\\}
-
-\def\startenvironment #1 %
- {\donextlevel\v!environment\currentenvironment
- \donotexecutefile\doexecutefileonce
- \donotexecutefile\donotexecutefile#1\\}
-
-% \startproject test
-% 1: \startmode[*project] project \stopmode \endgraf
-% 2: \startmode[*product] product \stopmode \endgraf
-% \stopproject
-
-\def\stopproject {\doprevlevel}
-\def\stopproduct {\doprevlevel}
-\def\stopcomponent {\doprevlevel}
-\def\stopenvironment{\doprevlevel}
-
-% more or less replaced by modes
-
-\setvalue{\e!start\v!localenvironment}[#1]%
- {\let\loadedlocalenvironments\empty
- \def\docommand##1%
- {\beforesplitstring##1\at.\to\someevironment
- \fullexpandoneargafter\addtocommalist\someevironment\loadedlocalenvironments}%
- \processcommalist[#1]\docommand
- \fullexpandtwoargsafter\doifcommonelse % no longer next needed
- {\currentproject,\currentproduct,%
- \currentcomponent,\currentenvironment}
- {\loadedlocalenvironments}
- {\letvalue{\e!stop\v!localenvironment}\relax}
- {\grabuntil{\e!stop\v!localenvironment}\gobbleoneargument}} % TH: fixed, was \relax
-
-\setvalue{\v!localenvironment}#1 {\doexecutefileonce{#1}}
-
-% NOT TOEVOEGEN: \the\everytrace
-
-\neverypar=\emptytoks
-
-% \appendtoks \flushnotes \to \everypar
-% \appendtoks \synchronizesidefloats \to \everypar
-% \appendtoks \checkindentation \to \everypar
-% \appendtoks \showparagraphnumber \to \everypar
-% \appendtoks \flushmargincontents \to \everypar
-% \appendtoks \flushcommentanchors \to \everypar
-% \appendtoks \synchronizenotes \to \everypar
-
-% \appendtoks \flushnotes \to \everydisplay
-% \appendtoks \adjustsidefloatdisplaylines \to \everydisplay
-
-% soon, when pdftex 1.22 is out in the field:
-
-\chardef\systemcommandmode\zerocount % 0=unknown 1=disabled 2=enabled
-
-\ifx\pdfshellescape\undefined \else
- \prependtoks
- \chardef\systemcommandmode \ifcase\pdfshellescape \plusone \else \plustwo \fi
- \to \everyjob
-\fi
-
-\appendtoks
- \ifcase\systemcommandmode
- \or
- \writestatus\m!systems{system commands are disabled}%
- \or
- \writestatus\m!systems{system commands are enabled}%
- \fi
-\to \everyjob
-
-\ifx\etexversion\undefined \else \ifnum\etexversion<202
- \prependtoks
- \writestatus\m!systems{eTeX version \number\etexversion\space -> too old (bugs)}%
- \writeline
- \to \everyjob
-\fi \fi
-
-\ifx\pdftexversion\undefined \else \ifnum\number\pdftexversion<120
- \prependtoks
- \writestatus\m!systems{pdfTeX version \number\pdftexversion\space -> please update}%
- \writeline
- \to \everyjob
-\fi \fi
-
-\prependtoks \showcontextbanner \to \everyjob
-
-% Default-instellingen (verborgen)
-
-\resetutilities
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-lme.tex b/Master/texmf-dist/tex/context/base/core-lme.tex
deleted file mode 100644
index d8c99d8c781..00000000000
--- a/Master/texmf-dist/tex/context/base/core-lme.tex
+++ /dev/null
@@ -1,55 +0,0 @@
-%D \module
-%D [ file=core-lme,
-%D version=2006.08.14,
-%D title=\CONTEXT\ Core Macros,
-%D subtitle=LAst Minute Extensions,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{Context Core Macros / Last Minute Extensions}
-
-%D Things that depend on too much other things.
-
-\unprotect
-
-%D Probably obsolete, depends on \type {\checksidefloat}. May disappear.
-
-\def\checkframedtext
- {\ifinsidefloat
- \localhsize\hsize
- \else\ifdim\sidefloatvsize>\zeropoint % will be proper handle
- % \strut % rather clean way to invoke the sidefloat OTR
- % \setbox0=\lastbox % and get the widths set, so from now on we
- % \setlocalhsize % can have framed texts alongside sidefloats
- \checksidefloat
- \setlocalhsize
- \else
- \localhsize\hsize
- \fi\fi}
-
-%D For my eyes only:
-
-\newcount\nofprofiled
-
-\def\profilemacro#1%
- {\nofprofiled\zerocount
- \letvalue{\string#1\string#1}#1%
- \appendtoks
- \normalwritestatus\m!systems{profile \string#1: \number\nofprofiled}%
- \to \everystoptext
- \unexpanded\def#1%
- {\global\advance\nofprofiled\plusone
- \csname\string#1\string#1\endcsname}}
-
-%D Some plain goodies, they may be moved to \type {m-plain.tex} some day.
-
-\ifx\hang \undefined \def\hang {\hangindent\parindent} \fi
-\ifx\textindent\undefined \def\textindent#1{\indent\llap{#1\enspace}\ignorespaces} \fi
-\ifx\narrower \undefined \def\narrower {\advance\leftskip \parindent\advance\rightskip\parindent} \fi
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-mak.tex b/Master/texmf-dist/tex/context/base/core-mak.tex
deleted file mode 100644
index 761f83156c7..00000000000
--- a/Master/texmf-dist/tex/context/base/core-mak.tex
+++ /dev/null
@@ -1,84 +0,0 @@
-%D \module
-%D [ file=core-mak,
-%D version=1997.10.05,
-%D title=\CONTEXT\ Core Macros,
-%D subtitle=General Makeup Commands,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{Context Core Macros / General Makeup Commands}
-
-\unprotect
-
-% \definieerplaats[naam][instellingen]
-% \stelplaatsin[naam][instellingen]
-% \plaats<naam>[[instellingen]]
-%
-% - still undocumented and also not in setupb yet
-% - kan ook intern/direct (scheelt duplicatie), zie \framedtext
-
-\def\dodefineplacement[#1][#2]%
- {\getparameters
- [\??pl#1]
- [\c!left=\hss,
- \c!right=\hss,
- \c!linecorrection=\v!off,
- \c!depthcorrection=\v!off,
- \c!margin=\v!standard,
- \c!grid=\v!middle,
- %\c!before=,
- %\c!after=,
- #2]%
- \setvalue{\e!place#1}{\doplacement[\??pl#1]}}
-
-\def\defineplacement
- {\dodoubleempty\dodefineplacement}
-
-\def\setupplacement
- {\dodoubleempty\dosetupplacement}
-
-\def\dosetupplacement[#1]%
- {\dodoubleempty\getparameters[\??pl#1]}
-
-\def\doplacement
- {\dodoubleempty\dodoplacement}
-
-\def\dodoplacement[#1][#2]% correctie moet mooier
- {\bgroup
- \dowithnextboxcontent
- {\forgetall}
- {\setlocalhsize
- \getparameters[#1][#2]%
- \getvalue{#1\c!before}%
- \begingroup
- \positioningparfalse
- \setbox\nextbox\hbox to \localhsize
- {\getvalue{#1\c!left}%
- \flushnextbox
- \getvalue{#1\c!right}}%
- \ifinsidefloat \else
- \addlocalbackgroundtobox\nextbox
- \fi
- \ifgridsnapping
- \doifundefined{#1\c!grid}{\letvalue{#1\c!grid}\v!middle}%
- % unchecked
- \doifinset{\getvalue{#1\c!margin}}{\v!standard,\v!yes}\noindent
- \snaptogrid[\getvalue{#1\c!grid}]\hbox{\flushnextbox}%
- \else
- \doifvalue{#1\c!linecorrection}\v!on \startbaselinecorrection
- \doifinset{\getvalue{#1\c!margin}}{\v!standard,\v!yes}\noindent
- \flushnextbox
- \doifvalue{#1\c!depthcorrection}\v!on\baselinecorrection
- \doifvalue{#1\c!linecorrection }\v!on\stopbaselinecorrection
- \fi
- \endgroup
- \getvalue{#1\c!after}%
- \egroup}
- \vbox}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-mis.tex b/Master/texmf-dist/tex/context/base/core-mis.mkii
index d094792ef3e..98079830d16 100644
--- a/Master/texmf-dist/tex/context/base/core-mis.tex
+++ b/Master/texmf-dist/tex/context/base/core-mis.mkii
@@ -11,48 +11,10 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Core Macros / Misc Commands}
+\writestatus{loading}{ConTeXt Core Macros / Misc Commands}
% todo: kleur in legenda + letter
-% Obsolete
-%
-% \startmessages dutch library: systems
-% title: systeem
-% 3: probeer LaTeX eens
-% \stopmessages
-%
-% \startmessages english library: systems
-% title: system
-% 3: try LaTeX
-% \stopmessages
-%
-% \startmessages german library: systems
-% title: system
-% 3: Versuche LaTeX
-% \stopmessages
-%
-% \startmessages czech library: systems
-% title: system
-% 3: zkuste LaTeX
-% \stopmessages
-%
-% \startmessages italian library: systems
-% title: sistema
-% 3: provare LaTeX
-% \stopmessages
-%
-% \startmessages norwegian library: systems
-% title: system
-% 3: forsker LaTeX
-% \stopmessages
-%
-% \startmessages romanian library: systems
-% title: sistem
-% 3: incercati LaTeX
-% \stopmessages
-%
-
% %D You would not expect the next macro in \CONTEXT,
% %D wouldn't you? It's there to warn \LATEX\ users that
% %D something is wrong.
@@ -82,16 +44,16 @@
%appendtoks \def\executesynonym#1#2#3#4{#3}\to\simplifiedcommands
%appendtoks \def\executesort#1#2#3{#3}\to\simplifiedcommands
-\appendtoks \def\ { }\to\simplifiedcommands
-\appendtoks \def\type#1{\string\\\strippedcsname#1}\to\simplifiedcommands
-\appendtoks \def\tex#1{\string\\#1}\to\simplifiedcommands
-\appendtoks \def\TeX{TeX}\to\simplifiedcommands
-\appendtoks \def\ConTeXt{ConTeXt}\to\simplifiedcommands
-\appendtoks \def\MetaPost{MetaPost}\to\simplifiedcommands
-\appendtoks \def\MetaFont{MetaFont}\to\simplifiedcommands
-\appendtoks \def\MetaFun{MetaFun}\to\simplifiedcommands
-%appendtoks \def||{-}\to\simplifiedcommands
-\appendtoks \def|#1|{\ifx#1\empty\empty-\else#1\fi}\to\simplifiedcommands
+\appendtoks \def\ { }\to\simplifiedcommands
+\appendtoks \def\type#1{\letterbackslash\strippedcsname#1}\to\simplifiedcommands
+\appendtoks \def\tex#1{\letterbackslash#1}\to\simplifiedcommands
+\appendtoks \def\TeX{TeX}\to\simplifiedcommands
+\appendtoks \def\ConTeXt{ConTeXt}\to\simplifiedcommands
+\appendtoks \def\MetaPost{MetaPost}\to\simplifiedcommands
+\appendtoks \def\MetaFont{MetaFont}\to\simplifiedcommands
+\appendtoks \def\MetaFun{MetaFun}\to\simplifiedcommands
+%appendtoks \def||{-}\to\simplifiedcommands
+\appendtoks \def|#1|{\ifx#1\empty\empty-\else#1\fi}\to\simplifiedcommands
\appendtoks\let\buildtextaccent\secondoftwoarguments\to\simplifiedcommands
@@ -234,198 +196,77 @@
\c!inbetween={\blank[\v!medium]},
\c!after=\blank]
+% \definieerplaats[naam][instellingen]
+% \stelplaatsin[naam][instellingen]
+% \plaats<naam>[[instellingen]]
+%
+% - still undocumented and also not in setupb yet
+% - kan ook intern/direct (scheelt duplicatie), zie \framedtext
+
+\def\dodefineplacement[#1][#2]%
+ {\getparameters
+ [\??pl#1]
+ [\c!left=\hss,
+ \c!right=\hss,
+ \c!linecorrection=\v!off,
+ \c!depthcorrection=\v!off,
+ \c!margin=\v!standard,
+ \c!grid=\v!middle,
+ %\c!before=,
+ %\c!after=,
+ #2]%
+ \setvalue{\e!place#1}{\doplacement[\??pl#1]}}
+
+\def\defineplacement
+ {\dodoubleempty\dodefineplacement}
+
+\def\setupplacement
+ {\dodoubleempty\dosetupplacement}
+
+\def\dosetupplacement[#1]%
+ {\dodoubleempty\getparameters[\??pl#1]}
+
+\def\doplacement
+ {\dodoubleempty\dodoplacement}
+
+\def\dodoplacement[#1][#2]% correctie moet mooier
+ {\bgroup
+ \dowithnextboxcontent
+ {\forgetall}
+ {\setlocalhsize
+ \getparameters[#1][#2]%
+ \getvalue{#1\c!before}%
+ \begingroup
+ \disableparpositions
+ \setbox\nextbox\hbox to \localhsize
+ {\getvalue{#1\c!left}%
+ \flushnextbox
+ \getvalue{#1\c!right}}%
+ \ifinsidefloat \else
+ \addlocalbackgroundtobox\nextbox
+ \fi
+ \ifgridsnapping
+ \doifundefined{#1\c!grid}{\letvalue{#1\c!grid}\v!middle}%
+ % unchecked
+ \doifinset{\getvalue{#1\c!margin}}{\v!standard,\v!yes}\noindent
+ \snaptogrid[\getvalue{#1\c!grid}]\hbox{\flushnextbox}%
+ \else
+ \doifvalue{#1\c!linecorrection}\v!on \startbaselinecorrection
+ \doifinset{\getvalue{#1\c!margin}}{\v!standard,\v!yes}\noindent
+ \flushnextbox
+ \doifvalue{#1\c!depthcorrection}\v!on\baselinecorrection
+ \doifvalue{#1\c!linecorrection }\v!on\stopbaselinecorrection
+ \fi
+ \endgroup
+ \getvalue{#1\c!after}%
+ \egroup}
+ \vbox}
+
% Te zijner tijd [plaats=boven,onder,midden] implementeren,
% in dat geval moet eerst de maximale hoogte worden bepaald.
%
% Overigens kan een en ander mooier met \halign.
-% \def\dodefineparagraphs[#1][#2]%
-% {\setvalue{\s!do\s!next#1}%
-% {\def\\{\getvalue{#1}}}%
-% \setvalue{#1}%
-% {\getvalue{\s!do\s!next#1}%
-% \dostartparagraphs{#1}}%
-% \setvalue{\e!next#1}%
-% {\getvalue{#1}}%
-% \setvalue{\e!start#1}%
-% {\bgroup
-% \letvalue{\s!do\s!next#1}\empty
-% \setvalue{\e!stop#1}%
-% {\getvalue{#1}%
-% \egroup}%
-% \getvalue{#1}}%
-% \getparameters[\??al#1]%
-% [\c!n=3,
-% \c!before=\blank,
-% \c!after=\blank,
-% \c!distance=1em,
-% \c!height=\v!fit,
-% \c!rule=\v!off,
-% \c!command=,
-% \c!align=,
-% \c!tolerance=\v!tolerant,
-% \c!rulethickness=\linewidth,
-% \c!style=,
-% \c!color=,
-% \c!top=,
-% \c!top=\vss,
-% \c!bottom=\vfill,
-% #2]%
-% \setvalue{\e!setup#1\e!endsetup}%
-% {\setupparagraphs[#1]}%
-% \dorecurse
-% {\getvalue{\??al#1\c!n}}
-% {\setupparagraphs[#1][\recurselevel]
-% [\c!width=,
-% \c!bottom=\getvalue{\??al#1\c!bottom},
-% \c!top=\getvalue{\??al#1\c!top},
-% \c!height=\getvalue{\??al#1\c!height},
-% \c!style=\getvalue{\??al#1\c!style},
-% \c!color=\getvalue{\??al#1\c!color},
-% \c!rule=\getvalue{\??al#1\c!rule},
-% \c!rulethickness=\getvalue{\??al#1\c!rulethickness},
-% \c!align=\getvalue{\??al#1\c!align},
-% \c!tolerance=\getvalue{\??al#1\c!tolerance},
-% \c!distance=\getvalue{\??al#1\c!distance}]}%
-% \setupparagraphs[#1][1][\c!distance=0em]}
-%
-% \def\defineparagraphs
-% {\dodoubleargument\dodefineparagraphs}
-%
-% \def\dosetupparagraphs[#1][#2][#3]%
-% {\doifelse{#2}\v!each
-% {\dorecurse
-% {\getvalue{\??al#1\c!n}}
-% {\getparameters[\??al#1\recurselevel][#3]}}
-% {\ConvertToConstant\doifelse{#3}{}
-% {\getparameters[\??al#1][#2]}
-% {\def\docommand##1%
-% {\getparameters[\??al#1##1][#3]}%
-% \processcommalist[#2]\docommand}}}
-%
-% \def\setupparagraphs
-% {\dotripleempty\dosetupparagraphs}
-%
-% \newcount\alcounter
-% \newcount\alnsize
-% \newdimen\alhsize
-%
-% \def\doparagraphrule#1#2%
-% {\doifelsevalue{\??al#2\the\alcounter\c!rule}\v!on
-% {\linewidth\getvalue{\??al#2\the\alcounter\c!rulethickness}%
-% \scratchdimen#1%
-% \advance\scratchdimen-\linewidth
-% \divide\scratchdimen \plustwo
-% \hskip\scratchdimen
-% \vrule\!!width\linewidth
-% \hskip\scratchdimen}
-% {\hskip#1}}
-%
-% \def\dostartparagraph#1%
-% {\doifelsevaluenothing{\??al#1\the\alcounter\c!width}
-% {\!!widtha\alhsize
-% \divide\!!widtha \alnsize}
-% {\!!widtha\getvalue{\??al#1\the\alcounter\c!width}}%
-% \dostartattributes
-% {\??al#1\the\alcounter}\c!style\c!color
-% \empty
-% \doifelsevalue{\??al#1\the\alcounter\c!height}\v!fit
-% {\setbox0\vtop}
-% {\setbox0\vtop to \getvalue{\??al#1\the\alcounter\c!height}}%
-% \bgroup
-% \blank[\v!disable]%
-% \forgetall
-% \getvalue{\??al#1\the\alcounter\c!top}%
-% \getvalue{\??al#1\c!inner}%
-% \hsize\!!widtha % setting \wd afterwards removed
-% \getvalue{\??al#1\the\alcounter\c!inner}%
-% \edef\!!stringa{\getvalue{\??al#1\the\alcounter\c!align}}% nodig?
-% \expandafter\setupalign\expandafter[\!!stringa]%
-% \edef\!!stringa{\getvalue{\??al#1\the\alcounter\c!tolerance}}% nodig?
-% \expandafter\setuptolerance\expandafter[\!!stringa]%
-% \ignorespaces
-% \endgraf
-% \ignorespaces
-% %
-% % Nadeel van de onderstaande constructie is dat \everypar
-% % binnen een groep kan staan en zo steeds \begstruts
-% % worden geplaatst. Mooi is anders dus moet het anders!
-% %
-% % Hier is \Everypar niet nodig.
-% %
-% \everypar{\begstrut\everypar\emptytoks}%
-% %
-% \ignorespaces\geenspatie % dubbel: \ignorespaces
-% \getvalue{\??al#1\the\alcounter\c!command}}
-%
-% \def\dostopparagraph#1%
-% {\ifvmode
-% \removelastskip
-% \else
-% \unskip\endstrut\endgraf
-% \fi
-% \getvalue{\??al#1\the\alcounter\c!bottom}%
-% \egroup
-% \ifdim\wd0=\zeropoint % no data
-% \wd0\!!widtha
-% \fi
-% \box0
-% \dostopattributes
-% %\ifnum\alcounter<\getvalue{\??al#1\c!n}\relax
-% % \def\next{\doparagraphcell{#1}}%
-% %\else
-% % \def\next{\dostopparagraphs{#1}}%
-% %\fi
-% %\next}
-% \ifnum\alcounter<\getvalue{\??al#1\c!n}\relax
-% \@EA\doparagraphcell
-% \else
-% \@EA\dostopparagraphs
-% \fi{#1}}
-%
-% \def\doparagraphcell#1%
-% {\global\advance\alcounter \plusone
-% \doifelsevaluenothing{\??al#1\the\alcounter\c!distance}
-% {\doifnot{\the\alcounter}{1}
-% {\hskip\getvalue{\??al#1\c!distance}}}
-% {\doifelse{\the\alcounter}{1}%
-% {\hskip\getvalue{\??al#1\the\alcounter\c!distance}}
-% {\doparagraphrule{\getvalue{\??al#1\the\alcounter\c!distance}}{#1}}}%
-% \setvalue{#1}{\dostopparagraph{#1}}%
-% \dostartparagraph{#1}}
-%
-% \def\dostartparagraphs#1%
-% {\global\alcounter\zerocount
-% \parindent\zeropoint
-% \setlocalhsize
-% \alhsize\localhsize
-% \alnsize\getvalue{\??al#1\c!n}\relax
-% \dorecurse
-% {\getvalue{\??al#1\c!n}}
-% {\doifelsevaluenothing{\??al#1\recurselevel\c!distance}
-% {\ifnum\recurselevel=\plusone\else
-% \global\advance\alhsize -\getvalue{\??al#1\c!distance}\relax
-% \fi}
-% {\global\advance\alhsize -\getvalue{\??al#1\recurselevel\c!distance}\relax}%
-% \doifvaluesomething{\??al#1\recurselevel\c!width}
-% {\global\advance\alnsize \minusone
-% \global\advance\alhsize -\getvalue{\??al#1\recurselevel\c!width}\relax}}%
-% %\whitespace % gaat fout bij \framed
-% \getvalue{\??al#1\c!before}%
-% \leavevmode % gaat wel goed bij \framed, brrr
-% \setbox\scratchbox\vbox\bgroup\hbox\bgroup\doparagraphcell{#1}}
-%
-% \def\dostopparagraphs#1%
-% {\egroup
-% \egroup
-% \iftrue
-% \hbox{\raise\strutheight\box\scratchbox}% new
-% \else
-% \box\scratchbox % old
-% \fi
-% \par
-% \getvalue{\??al#1\c!after}}%
-
% there is quite some historic balast in this mechanism, the next variant
% is a first cleanup
@@ -837,17 +678,40 @@
\def\setuphyphenmark
{\dodoubleargument\getparameters[\??kp]}
-\setuphyphenmark
- [\c!sign=\composedhyphen]
+\def\setuphyphenmark[#1]% sign=normal|wide
+ {\dodoubleargument\getparameters[\??kp][#1]%
+ \doifinsetelse\@@kpsign {\v!normal}
+ {\let\textmodehyphen\normalhyphen \let\textmodehyphendiscretionary\normalhyphendiscretionary}
+ {\let\textmodehyphen\composedhyphen\let\textmodehyphendiscretionary\composedhyphendiscretionary}}
+
+\setuphyphenmark[\c!sign=\v!wide]
+% % \setuphyphenmark[\c!sign=\v!normal]
-\def\defaultdiscretionaryhyphen{\@@kpsign}
+\definesymbol[\c!lefthyphen] [\languageparameter\c!lefthyphen]
+\definesymbol[\c!righthyphen] [\languageparameter\c!righthyphen]
+\definesymbol[\c!hyphen] [\languageparameter\c!hyphen]
+
+\def\normalhyphen
+ {\hbox{\directsymbol\empty\c!hyphen}}
\def\composedhyphen
+ {\hbox{\directsymbol\empty\c!compoundhyphen}}
+
+\def\normalhyphendiscretionary
+ {\discretionary
+ {\hbox{\directsymbol\empty\c!lefthyphen}}
+ {\hbox{\directsymbol\empty\c!righthyphen}}
+ {\hbox{\directsymbol\empty\c!hyphen}}}
+
+\def\composedhyphendiscretionary
{\discretionary
{\hbox{\directsymbol\empty\c!leftcompoundhyphen}}
{\hbox{\directsymbol\empty\c!rightcompoundhyphen}}
{\hbox{\directsymbol\empty\c!compoundhyphen}}}
+\let\textmodehyphen \composedhyphen
+\let\textmodehyphendiscretionary\composedhyphendiscretionary
+
\definesymbol[\c!leftcompoundhyphen] [\languageparameter\c!leftcompoundhyphen]
\definesymbol[\c!rightcompoundhyphen] [\languageparameter\c!rightcompoundhyphen]
\definesymbol[\c!compoundhyphen] [\languageparameter\c!compoundhyphen]
@@ -1111,23 +975,12 @@
\dochecknextindentation{\??ci\currentdelimitedtext}% AM: here
\dorechecknextindentation}% AM: This was missing!
-% \def\dostartdelimitedtexttxt
-% {\let\dostopdelimitedtext\dostopdelimitedtexttxt
-% \dostartattributes{\??ci\currentdelimitedtext}\c!style\c!color\empty
-% \dohandledelimitedtext\c!left
-% \ignorespaces}
-
\def\dostartdelimitedtexttxt
{\let\dostopdelimitedtext\dostopdelimitedtexttxt
\dostartattributes{\??ci\currentdelimitedtext}\c!style\c!color\empty
\dohandleleftdelimitedtext\c!left
\ignorespaces}
-% \def\dostopdelimitedtexttxt
-% {\removeunwantedspaces
-% \dohandledelimitedtext\c!right
-% \dostopattributes}
-
\def\dostopdelimitedtexttxt
{\removeunwantedspaces
\dohandlerightdelimitedtext\c!right
@@ -1139,13 +992,13 @@
\egroup}
\def\pushdelimitedtext#1%
- {\pushmacro\currentdelimitedtext
+ {\globalpushmacro\currentdelimitedtext
\def\currentdelimitedtext{#1}%
\doglobal\incrementvalue{\??ci\currentdelimitedtext\c!level}}
\def\popdelimitedtext
{\doglobal\decrementvalue{\??ci\currentdelimitedtext\c!level}%
- \popmacro\currentdelimitedtext}
+ \globalpopmacro\currentdelimitedtext}
\def\delimitedtext[#1]%
{\pushdelimitedtext{#1}%
@@ -1161,13 +1014,15 @@
\def\delimited {\delimitedtext}
\def\leftdelimitedtextmark
- {\dontleavehmode
- \setbox\scratchbox\hbox{\delimitedtextparameter\c!left}%
- \doif{\delimitedtextparameter\c!location}\v!margin{\hskip-\wd\scratchbox}%
- \box\scratchbox}
+ {\doifsomething{\delimitedtextparameter\c!left}
+ {\setbox\scratchbox\hbox{\delimitedtextparameter\c!left}%
+ \dontleavehmode
+ \doif{\delimitedtextparameter\c!location}\v!margin{\hskip-\wd\scratchbox}%
+ \box\scratchbox}}
\def\rightdelimitedtextmark
- {\hsmash{\delimitedtextparameter\c!right}}
+ {\doifsomething{\delimitedtextparameter\c!right}
+ {\hsmash{\delimitedtextparameter\c!right}}}
% \starttext
% \hyphenatedword{groepsvrijstellingsverordeningen}\par
@@ -1264,13 +1119,6 @@
\def\handlerightdelimitedtext#1%
{\dohandlerightdelimitedtext{#1}\relax}
-% \unexpanded\def\dodelimitedtextpar
-% {\dohandledelimitedtext\c!left\relax
-% \groupedcommand
-% \donothing
-% {\dohandledelimitedtext\c!right\removelastskip
-% \popdelimitedtext}}
-
\unexpanded\def\dodelimitedtextpar
{\dohandleleftdelimitedtext\c!left\relax
\groupedcommand
@@ -1282,14 +1130,6 @@
{\doifelse{\delimitedtextparameter\c!style}\v!normal
\doquoteddelimited\doattributeddelimited}
-% \def\doquoteddelimited
-% {\dohandledelimitedtext\c!left\relax
-% \groupedcommand
-% \donothing
-% {\dohandledelimitedtext\c!right
-% \removelastskip
-% \popdelimitedtext}}
-
\def\doquoteddelimited
{\dohandleleftdelimitedtext\c!left\relax
\groupedcommand
@@ -1503,74 +1343,74 @@
% old, will become obsolete or module, replace by bib module
-\defineenumeration
- [@publicatie]
- [\c!location=\v!left,
- \c!width=\@@pbwidth,\c!hang=,\c!sample=,
- \c!before=\@@pbbefore,\c!after=\@@pbafter,\c!inbetween=,
- \c!headstyle=\@@pbheadstyle,\c!style=,
- \c!headcolor=\@@pbheadcolor,\c!color=,
- \c!way=\@@pbway,\c!blockway=\@@pbblockway,
- \c!text=,\c!left=\@@pbleft,\c!right=\@@pbright]
-
-\def\dosetuppublications[#1]%
- {\getparameters[\??pb][#1]}
-
-\def\setuppublications%
- {\dosingleargument\dosetuppublications}
-
-\def\apa@publicatie
- {\doifsomething\@@pb@naam {\@@pb@naam,\space}%
- \doifsomething\@@pb@titel {{\sl\@@pb@titel}.\space}%
- \doifsomething\@@pb@jaar {(\@@pb@jaar).\space}%
- \doifsomething\@@pb@plaats {\@@pb@plaats\doifelsenothing\@@pb@uitgever{.}{:\space}}%
- \doifsomething\@@pb@uitgever{\@@pb@uitgever.}}
-
-\def\normaal@publicatie
- {\@@pb@naam, \@@pb@titel, \@@pb@jaar, \@@pb@pagina, \@@pb@plaats, \@@pb@uitgever.}
-
-\def\complexstartpublicatie[#1]#2\stoppublicatie
- {\bgroup
- \def\dosetpublicatie
- {\processcommalist
- [naam,titel,jaar,plaats,pagina,uitgever]
- \setpublicatie
- \ignorespaces}%
- \def\setpublicatie##1%
- {\letvalue{\??pb @##1}\empty
- \setvalue{##1}####1{\setvalue{\??pb @##1}{####1}\ignorespaces}}%
- \def\getpublicatie%
- {\doifsomething\@@pbalternative{\getvalue{\@@pbalternative @publicatie}}}%
- \doifelse\@@pbnumbering\v!yes
- {\@publicatie[#1]\dosetpublicatie#2\getpublicatie\par}%
- {\@@pbbefore
- \dosetpublicatie\ignorespaces#2\getpublicatie
- \@@pbafter}%
- \egroup}
-
-\definecomplexorsimpleempty\startpublicatie
-
-\def\publication#1[#2]%
- {\@@pbleft\in{#1}[#2]\@@pbright}
-
-\setuppublications
- [\c!numbering=\v!yes,
- \c!alternative=\c!apa,
- \c!width=2em,
- \c!hang=,
- \c!sample=,
- \c!before=,
- \c!after=,
- \c!inbetween=,
- \c!headstyle=,
- \c!headcolor=,
- \c!style=,
- \c!color=,
- \c!blockway=\v!by\v!text,
- \c!way=\v!by\v!text,
- \c!text=,
- \c!left={[},
- \c!right={]}]
+% \defineenumeration
+% [@publicatie]
+% [\c!location=\v!left,
+% \c!width=\@@pbwidth,\c!hang=,\c!sample=,
+% \c!before=\@@pbbefore,\c!after=\@@pbafter,\c!inbetween=,
+% \c!headstyle=\@@pbheadstyle,\c!style=,
+% \c!headcolor=\@@pbheadcolor,\c!color=,
+% \c!way=\@@pbway,\c!blockway=\@@pbblockway,
+% \c!text=,\c!left=\@@pbleft,\c!right=\@@pbright]
+
+% \def\dosetuppublications[#1]%
+% {\getparameters[\??pb][#1]}
+%
+% \def\setuppublications%
+% {\dosingleargument\dosetuppublications}
+%
+% \def\apa@publicatie
+% {\doifsomething\@@pb@naam {\@@pb@naam,\space}%
+% \doifsomething\@@pb@titel {{\sl\@@pb@titel}.\space}%
+% \doifsomething\@@pb@jaar {(\@@pb@jaar).\space}%
+% \doifsomething\@@pb@plaats {\@@pb@plaats\doifelsenothing\@@pb@uitgever{.}{:\space}}%
+% \doifsomething\@@pb@uitgever{\@@pb@uitgever.}}
+%
+% \def\normaal@publicatie
+% {\@@pb@naam, \@@pb@titel, \@@pb@jaar, \@@pb@pagina, \@@pb@plaats, \@@pb@uitgever.}
+%
+% \def\complexstartpublicatie[#1]#2\stoppublicatie
+% {\bgroup
+% \def\dosetpublicatie
+% {\processcommalist
+% [naam,titel,jaar,plaats,pagina,uitgever]
+% \setpublicatie
+% \ignorespaces}%
+% \def\setpublicatie##1%
+% {\letvalue{\??pb @##1}\empty
+% \setvalue{##1}####1{\setvalue{\??pb @##1}{####1}\ignorespaces}}%
+% \def\getpublicatie%
+% {\doifsomething\@@pbalternative{\getvalue{\@@pbalternative @publicatie}}}%
+% \doifelse\@@pbnumbering\v!yes
+% {\@publicatie[#1]\dosetpublicatie#2\getpublicatie\par}%
+% {\@@pbbefore
+% \dosetpublicatie\ignorespaces#2\getpublicatie
+% \@@pbafter}%
+% \egroup}
+%
+% \definecomplexorsimpleempty\startpublicatie
+%
+% \def\publication#1[#2]%
+% {\@@pbleft\in{#1}[#2]\@@pbright}
+%
+% \setuppublications
+% [\c!numbering=\v!yes,
+% \c!alternative=\c!apa,
+% \c!width=2em,
+% \c!hang=,
+% \c!sample=,
+% \c!before=,
+% \c!after=,
+% \c!inbetween=,
+% \c!headstyle=,
+% \c!headcolor=,
+% \c!style=,
+% \c!color=,
+% \c!blockway=\v!by\v!text,
+% \c!way=\v!by\v!text,
+% \c!text=,
+% \c!left={[},
+% \c!right={]}]
% only used at pragma, move from kernel to run time module
@@ -1647,37 +1487,21 @@
% THIS WAS MAIN-003.TEX
-\startmessages dutch library: systems
- 41: externe file -- in groep -- bestaat niet
-\stopmessages
+% messages moved
-\startmessages english library: systems
- 41: external file -- in group -- does not exist
-\stopmessages
+% messages moved
-\startmessages german library: systems
- 41: Externe Datei -- in Gruppe -- existiert nicht
-\stopmessages
+% messages moved
-\startmessages czech library: systems
- 41: externi soubor -- ve skupine -- neexistuje
-\stopmessages
+% messages moved
-\startmessages italian library: systems
- 41: il file esterno -- del gruppo -- non esiste
-\stopmessages
+% messages moved
-\startmessages norwegian library: systems
- 41: ekstern fil -- i gruppe -- eksisterer ikke
-\stopmessages
+% messages moved
-\startmessages romanian library: systems
- 41: fisierul extern -- din grupul -- nu exista
-\stopmessages
+% messages moved
-\startmessages french library: systems
- 41: le fichier externe -- du groupe -- n'existe pas
-\stopmessages
+% messages moved
\definetabulate
[\v!legend]
@@ -2039,8 +1863,6 @@
%D Goody:
-\newevery \everyinsidefloat \relax
-
\appendtoks
\global\resetsystemmode{combination}%
\global\resetsystemmode{pairedbox}%
@@ -2518,8 +2340,8 @@
\fi
\setbox\nextbox\vbox{\hbox{\raise\nextboxdp\flushnextbox}}%
\!!dimena \nextboxht
- \calculatecos\@@rorotation\edef\cos{\calculatedcos\@@rorotation}%
- \calculatesin\@@rorotation\edef\sin{\calculatedsin\@@rorotation}%
+ \setcalculatedcos\cos\@@rorotation
+ \setcalculatedsin\sin\@@rorotation
\@@layerxpos\zeropoint
\@@layerypos\zeropoint
\@@layerxoff\zeropoint
diff --git a/Master/texmf-dist/tex/context/base/core-mis.mkiv b/Master/texmf-dist/tex/context/base/core-mis.mkiv
new file mode 100644
index 00000000000..65cf273c620
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/core-mis.mkiv
@@ -0,0 +1,2466 @@
+%D \module
+%D [ file=core-mis,
+%D version=1998.01.29,
+%D title=\CONTEXT\ Core Macros,
+%D subtitle=Miscelaneous,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Core Macros / Misc Commands}
+
+% todo: kleur in legenda + letter
+
+% %D You would not expect the next macro in \CONTEXT,
+% %D wouldn't you? It's there to warn \LATEX\ users that
+% %D something is wrong.
+% %D
+% %D Obsolete now:
+% %
+% % \def\documentstyle{\showmessage\m!systems3\empty\stoptekst}
+% %
+% % \let\documentclass=\documentstyle
+% %D \macros
+% %D {simplifiedcommands, simplifycommands}
+% %D
+% %D I first needed this simplification in bookmarks. Users can
+% %D add their own if needed.
+
+\unprotect
+
+%D Sometimes (for instance in bookmarks) we need to simplify macro
+%D behaviour, so here is the hook.
+
+\ifx\simplifiedcommands\undefined \newtoks\simplifiedcommands \fi
+
+\def\simplifycommands{\the\simplifiedcommands}
+
+%D A possibly growing list:
+
+%appendtoks \def\executesynonym#1#2#3#4{#3}\to\simplifiedcommands
+%appendtoks \def\executesort#1#2#3{#3}\to\simplifiedcommands
+
+\appendtoks \def\ { }\to\simplifiedcommands
+\appendtoks \def\type#1{\letterbackslash\checkedstrippedcsname#1}\to\simplifiedcommands
+\appendtoks \def\tex#1{\letterbackslash#1}\to\simplifiedcommands
+\appendtoks \def\TeX{TeX}\to\simplifiedcommands
+\appendtoks \def\ConTeXt{ConTeXt}\to\simplifiedcommands
+\appendtoks \def\MetaPost{MetaPost}\to\simplifiedcommands
+\appendtoks \def\MetaFont{MetaFont}\to\simplifiedcommands
+\appendtoks \def\MetaFun{MetaFun}\to\simplifiedcommands
+%appendtoks \def||{-}\to\simplifiedcommands
+\appendtoks \def|#1|{\ifx#1\empty\empty-\else#1\fi}\to\simplifiedcommands
+
+\appendtoks\let\buildtextaccent\secondoftwoarguments\to\simplifiedcommands
+
+% THIS WAS MAIN-002.TEX
+
+%\def\checkinterlineskip
+% {\ifvmode
+% \ifdim\lastskip>\zeropoint
+% \nointerlineskip
+% \else\ifdim\lastkern>\zeropoint
+% \nointerlineskip
+% \fi\fi
+% \fi}
+
+\def\horitems#1#2% #1=breedte #2=commandos
+ {\scratchdimen#1%
+ \divide\scratchdimen \nofitems
+ \!!counta\zerocount
+ \def\docommand##1%
+ {\advance\!!counta \plusone
+ \processaction
+ [\@@isalign]
+ [ \v!left=>\hbox to \scratchdimen{\strut##1\hss},
+ \v!right=>\hbox to \scratchdimen{\hss\strut##1},
+ \v!middle=>\hbox to \scratchdimen{\hss\strut##1\hss},
+ \v!margin=>\ifnum\!!counta=\plusone\hss\else\hfill\fi
+ \strut##1%
+ \ifnum\!!counta=\nofitems\hss\else\hfill\fi,
+ \s!default=>\hbox to \scratchdimen{\hss\strut##1\hss}, % midden
+ \s!unknown=>\hbox to \scratchdimen{\strut##1\hss}]}% % links
+ \hbox to #1{\hss#2\hss}}
+
+\def\veritems#1#2% #1=breedte #2=commandos
+ {\scratchdimen#1%
+ \def\docommand##1%
+ {\ifdim\scratchdimen<\zeropoint % the - was a signal
+ \hbox to -\scratchdimen{\hss\strut##1}%
+ \else\ifdim\scratchdimen>\zeropoint
+ \hbox to \scratchdimen{\strut##1\hss}%
+ \else
+ \hbox{\strut##1}%
+ \fi\fi}%
+ \vbox{#2}}
+
+\def\dosetupitems[#1]%
+ {\getparameters[\??is][#1]%
+ \doif\@@iswidth\v!unknown
+ {\def\@@iswidth{\hsize}}%
+ \doifconversiondefinedelse\@@issymbol
+ {\def\doitembullet##1{\convertnumber{\@@issymbol}{##1}}}
+ {\doifsymboldefinedelse\@@issymbol
+ {\def\doitembullet##1{\symbol[\@@issymbol]}}{}}}
+
+\def\makeitemsandbullets#1%
+ {\doifelse\@@isn\v!unknown
+ {\getcommalistsize[#1]%
+ \edef\nofitems{\commalistsize}}
+ {\edef\nofitems{\@@isn}}%
+ \setbox0\hbox
+ {\doitems \@@iswidth
+ {\processcommalist[#1]\docommand}}%
+ \setbox2\hbox
+ {\doitems \@@isbulletbreedte
+ {\dorecurse\nofitems
+ {\docommand{\strut\doitembullet\recurselevel}}}}}
+
+\def\dostartitems#1#2#3%
+ {\let\doitems#2%
+ \def\@@isbulletbreedte{#3}%
+ \makeitemsandbullets{#1}%
+ \@@isbefore}
+
+\def\dostopitems
+ {\@@isafter
+ \egroup}
+
+\setvalue{doitems\v!top}#1%
+ {\dostartitems{#1}\horitems\@@iswidth
+ \noindent\vbox
+ {\forgetall
+ \doifsomething\@@issymbol
+ {\doifnot\@@issymbol\v!none
+ {\box2
+ \@@isinbetween
+ \nointerlineskip}}%
+ \box0}%
+ \dostopitems}
+
+\setvalue{doitems\v!bottom}#1%
+ {\dostartitems{#1}\horitems\@@iswidth
+ \noindent\vbox
+ {\forgetall
+ \box0
+ \doifsomething\@@issymbol
+ {\@@isinbetween
+ \nointerlineskip
+ \box2}}%
+ \dostopitems}
+
+\setvalue{doitems\v!inmargin}#1%
+ {\dostartitems{#1}\veritems{-1.5em}% - is a signal
+ \noindent\hbox{\llap{\box2\hskip\leftmargindistance}\box0}%
+ \dostopitems}
+
+\setvalue{doitems\v!left}#1%
+ {\advance\hsize -1.5em%
+ \dostartitems{#1}\veritems{1.5em}%
+ \noindent\hbox{\box2\box0}%
+ \dostopitems}
+
+\setvalue{doitems\v!right}#1%
+ {\dostartitems{#1}\veritems{0em}%
+ \noindent\hbox{\box0\hskip-\wd2\box2}%
+ \dostopitems}
+
+\def\setupitems
+ {\dosingleargument\dosetupitems}
+
+\def\complexitems[#1]%
+ {\bgroup
+ \setupitems[#1]%
+ \parindent\zeropoint
+ \setlocalhsize
+ \hsize\localhsize
+ \dontcomplain
+ %\doifundefined{doitems\@@islocation}%
+ % {\let\@@islocation\v!left}%
+ %\getvalue{doitems\@@islocation}}
+ \executeifdefined{doitems\@@islocation}{\let\@@islocation\v!left}}
+
+\definecomplexorsimpleempty\items
+
+\setupitems
+ [\c!location=\v!left,
+ \c!symbol=5,
+ \c!width=\hsize,
+ \c!align=\v!middle,
+ \c!n=\v!unknown,
+ \c!before=\blank,
+ \c!inbetween={\blank[\v!medium]},
+ \c!after=\blank]
+
+% \definieerplaats[naam][instellingen]
+% \stelplaatsin[naam][instellingen]
+% \plaats<naam>[[instellingen]]
+%
+% - still undocumented and also not in setupb yet
+% - kan ook intern/direct (scheelt duplicatie), zie \framedtext
+
+\def\dodefineplacement[#1][#2]%
+ {\getparameters
+ [\??pl#1]
+ [\c!left=\hss,
+ \c!right=\hss,
+ \c!linecorrection=\v!off,
+ \c!depthcorrection=\v!off,
+ \c!margin=\v!standard,
+ \c!grid=\v!middle,
+ %\c!before=,
+ %\c!after=,
+ #2]%
+ \setvalue{\e!place#1}{\doplacement[\??pl#1]}}
+
+\def\defineplacement
+ {\dodoubleempty\dodefineplacement}
+
+\def\setupplacement
+ {\dodoubleempty\dosetupplacement}
+
+\def\dosetupplacement[#1]%
+ {\dodoubleempty\getparameters[\??pl#1]}
+
+\def\doplacement
+ {\dodoubleempty\dodoplacement}
+
+\def\dodoplacement[#1][#2]% correctie moet mooier
+ {\bgroup
+ \dowithnextboxcontent
+ {\forgetall}
+ {\setlocalhsize
+ \getparameters[#1][#2]%
+ \getvalue{#1\c!before}%
+ \begingroup
+ \disableparpositions
+ \setbox\nextbox\hbox to \localhsize
+ {\getvalue{#1\c!left}%
+ \flushnextbox
+ \getvalue{#1\c!right}}%
+ \ifinsidefloat \else
+ \addlocalbackgroundtobox\nextbox
+ \fi
+ \ifgridsnapping
+ \doifundefined{#1\c!grid}{\letvalue{#1\c!grid}\v!middle}%
+ % unchecked
+ \doifinset{\getvalue{#1\c!margin}}{\v!standard,\v!yes}\noindent
+ \snaptogrid[\getvalue{#1\c!grid}]\hbox{\flushnextbox}%
+ \else
+ \doifvalue{#1\c!linecorrection}\v!on \startbaselinecorrection
+ \doifinset{\getvalue{#1\c!margin}}{\v!standard,\v!yes}\noindent
+ \flushnextbox
+ \doifvalue{#1\c!depthcorrection}\v!on\baselinecorrection
+ \doifvalue{#1\c!linecorrection }\v!on\stopbaselinecorrection
+ \fi
+ \endgroup
+ \getvalue{#1\c!after}%
+ \egroup}
+ \vbox}
+
+% Te zijner tijd [plaats=boven,onder,midden] implementeren,
+% in dat geval moet eerst de maximale hoogte worden bepaald.
+%
+% Overigens kan een en ander mooier met \halign.
+
+% there is quite some historic balast in this mechanism, the next variant
+% is a first cleanup
+
+\let\currentparagraph\empty
+
+\newcount\alcounter \newcount\alnsize \newdimen\alhsize
+
+\def\paragraphparameter#1% \checkedparameter\??al\currentparagraph#1
+ {\executeifdefined{\??al\currentparagraph#1}{\executeifdefined{\??al#1}\empty}}
+
+\def\paragraphcellmeter#1#2% \checkedparameter\??al\currentparagraph#1
+ {\executeifdefined{\??al\currentparagraph\number#1#2}{\paragraphparameter{#2}}}
+
+\def\dodefineparagraphs[#1][#2]%
+ {\edef\currentparagraph{#1}%
+ \setvalue{\s!do\s!next\currentparagraph}%
+ {\def\\{\getvalue\currentparagraph}}%
+ \setvalue\currentparagraph
+ {\getvalue{\s!do\s!next#1}%
+ \dostartparagraphs{#1}}%
+ \setvalue{\e!next\currentparagraph}%
+ {\getvalue{#1}}%
+ \setvalue{\e!start\currentparagraph}%
+ {\bgroup
+ \edef\currentparagraph{#1}%
+ \letvalue{\s!do\s!next\currentparagraph}\empty
+ \setvalue{\e!stop\currentparagraph}{\getvalue\currentparagraph\egroup}%
+ \getvalue\currentparagraph}%
+ \getparameters[\??al\currentparagraph]%
+ [%\c!n=3,
+ %\c!before=\blank,
+ %\c!after=\blank,
+ %\c!distance=1em,
+ %\c!height=\v!fit,
+ %\c!rule=\v!off,
+ %\c!command=,
+ %\c!align=,
+ %\c!tolerance=\v!tolerant,
+ %\c!rulethickness=\linewidth,
+ %\c!rulecolor=,
+ %\c!style=,
+ %\c!color=,
+ %\c!top=,
+ %\c!top=\vss,
+ %\c!bottom=\vfill,
+ #2]%
+ \setvalue{\e!setup#1\e!endsetup}%
+ {\setupparagraphs[#1]}%
+ \dorecurse
+ {\paragraphparameter\c!n}
+ {\setupparagraphs
+ [\currentparagraph]
+ [\recurselevel]
+ [\c!width=,
+ %\c!bottom=\paragraphparameter\c!bottom,
+ %\c!top=\paragraphparameter\c!top,
+ %\c!height=\paragraphparameter\c!height,
+ %\c!rule=\paragraphparameter\c!rule,
+ %\c!rulethickness=\paragraphparameter\c!rulethickness,
+ %\c!rulecolor=\paragraphparameter\c!rulecolor,
+ %\c!align=\paragraphparameter\c!align,
+ %\c!tolerance=\paragraphparameter\c!tolerance, % obsolete
+ %\c!distance=\paragraphparameter\c!distance,
+ \c!style=\paragraphparameter\c!style,
+ \c!color=\paragraphparameter\c!color]}%
+ \setupparagraphs[\currentparagraph][1][\c!distance=\zeropoint]}
+
+\def\defineparagraphs
+ {\dodoubleargument\dodefineparagraphs}
+
+\def\dosetupparagraphs[#1][#2][#3]%
+ {\edef\currentparagraph{#1}%
+ \ifsecondargument
+ \doifelse{#2}\v!each
+ {\dorecurse
+ {\paragraphparameter\c!n}
+ {\getparameters[\??al\currentparagraph\recurselevel][#3]}}
+ {\doifelsenothing{#3}
+ {\getparameters[\??al\currentparagraph][#2]}
+ {\def\docommand##1{\getparameters[\??al\currentparagraph##1][#3]}%
+ \processcommalist[#2]\docommand}}%
+ \else
+ \getparameters[\??al][#1]%
+ \fi}
+
+\def\setupparagraphs
+ {\dotripleempty\dosetupparagraphs}
+
+\setupparagraphs
+ [\c!n=3,
+ \c!before=\blank,
+ \c!after=\blank,
+ \c!distance=1em,
+ \c!height=\v!fit,
+ \c!rule=\v!off,
+ \c!command=,
+ \c!align=,
+ \c!tolerance=\v!tolerant, % obsolete
+ \c!rulethickness=\linewidth,
+ \c!rulecolor=,
+ \c!style=,
+ \c!color=,
+ \c!top=,
+ \c!top=\vss,
+ \c!bottom=\vfill]
+
+\def\doparagraphrule
+ {\doifelse{\paragraphcellmeter\alcounter\c!rule}\v!on
+ {\linewidth\paragraphcellmeter\alcounter\c!rulethickness
+ \scratchdimen\dimexpr(\paragraphcellmeter\alcounter\c!distance-\linewidth)/2\relax
+ \hskip\scratchdimen
+ \color[\paragraphcellmeter\alcounter\c!rulecolor]{\vrule\!!width\linewidth}%
+ \hskip\scratchdimen}
+ {\hskip\paragraphcellmeter\alcounter\c!distance}}
+
+\def\dostartparagraph
+ {\doifelsenothing{\paragraphcellmeter\alcounter\c!width}
+ {\!!widtha\alhsize
+ \divide\!!widtha \alnsize}
+ {\!!widtha\paragraphcellmeter\alcounter\c!width}%
+ \dostartattributes{\??al\currentparagraph\number\alcounter}\c!style\c!color\empty
+ \doifelse{\paragraphcellmeter\alcounter\c!height}\v!fit
+ {\setbox\scratchbox\vtop}
+ {\setbox\scratchbox\vtop to \paragraphcellmeter\alcounter\c!height}%
+ \bgroup
+ \blank[\v!disable]%
+ \forgetall
+ \paragraphcellmeter\alcounter\c!top
+ \paragraphparameter\c!inner
+ \hsize\!!widtha % setting \wd afterwards removed
+ \paragraphcellmeter\alcounter\c!inner % twice
+ \expanded{\setupalign [\paragraphcellmeter\alcounter\c!align ]}% {normal,verytolerant,stretch}
+ \expanded{\setuptolerance[\paragraphcellmeter\alcounter\c!tolerance]}% obsolete
+ \ignorespaces
+ \endgraf
+ \ignorespaces
+ %
+ % Nadeel van de onderstaande constructie is dat \everypar
+ % binnen een groep kan staan en zo steeds \begstruts
+ % worden geplaatst. Mooi is anders dus moet het anders!
+ %
+ % Hier is \Everypar niet nodig.
+ %
+ \everypar{\begstrut\everypar\emptytoks}%
+ %
+ \nospace % remove + ignore
+ \paragraphcellmeter\alcounter\c!command}
+
+\def\dostopparagraph
+ {\ifvmode
+ \removelastskip
+ \else
+ \unskip\endstrut\endgraf
+ \fi
+ \paragraphcellmeter\alcounter\c!bottom
+ \egroup
+ \ifdim\wd\scratchbox=\zeropoint % no data
+ \wd\scratchbox\!!widtha
+ \fi
+ \box\scratchbox
+ \dostopattributes
+ \ifnum\alcounter<\paragraphparameter\c!n\relax
+ \@EA\doparagraphcell
+ \else
+ \@EA\dostopparagraphs
+ \fi}
+
+\def\doparagraphcell
+ {\global\advance\alcounter \plusone
+ \doifelsenothing{\paragraphcellmeter\alcounter\c!distance}
+ {\ifnum\alcounter=\plusone\else
+ \hskip\paragraphparameter\c!distance
+ \fi}
+ {\ifnum\alcounter=\plusone
+ \hskip\paragraphcellmeter\alcounter\c!distance
+ \else
+ \doparagraphrule
+ \fi}%
+ \letvalue\currentparagraph\dostopparagraph
+ \dostartparagraph}
+
+\def\dostartparagraphs#1%
+ {\bgroup
+ \edef\currentparagraph{#1}%
+ \global\alcounter\zerocount
+ \parindent\zeropoint
+ \setlocalhsize
+ \alhsize\localhsize
+ \alnsize\paragraphparameter\c!n\relax
+ \dorecurse \alnsize
+ {\doifelsenothing{\paragraphcellmeter\recurselevel\c!distance}
+ {\ifnum\recurselevel=\plusone\else
+ \global\advance\alhsize -\paragraphparameter\c!distance
+ \fi}
+ {\global\advance\alhsize -\paragraphcellmeter\recurselevel\c!distance}%
+ \doifsomething{\paragraphcellmeter\recurselevel\c!width}
+ {\global\advance\alnsize \minusone
+ \global\advance\alhsize -\paragraphcellmeter\recurselevel\c!width}}%
+ %whitespace % gaat fout bij \framed
+ \paragraphparameter\c!before
+ \leavevmode % gaat wel goed bij \framed, brrr
+ \setbox\scratchbox\vbox\bgroup\hbox\bgroup\doparagraphcell}
+
+\def\dostopparagraphs
+ {\egroup
+ \egroup
+ \iftrue
+ \hbox{\raise\strutheight\box\scratchbox}% new
+ \else
+ \box\scratchbox % old
+ \fi
+ \par
+ \paragraphparameter\c!after
+ \egroup}
+
+\def\dosetuptab[#1]%
+ {\getparameters[\??ta]
+ [\c!headstyle=\v!normal,
+ \c!headcolor=,
+ \c!style=\v!normal,
+ \c!color=,
+ \c!width=\v!broad,
+ \c!sample={\hskip4em},
+ \c!before=,
+ \c!after=,
+ #1]%
+ \definedescription
+ [tab]
+ [\c!headstyle=\@@taheadstyle,
+ \c!headcolor=\@@tacolor,
+ \c!sample=\@@tasample,
+ \c!width=\@@tawidth,
+ \c!before=\@@tabefore,
+ \c!after=\@@taafter]}
+
+\def\setuptab
+ {\dosingleargument\dosetuptab}
+
+\setuptab
+ [\c!location=\v!left]
+
+\unexpanded\def\celsius #1{#1\mathematics{^\circ}C}
+\unexpanded\def\inch {\mathematics{\prime\prime}} % was: \hbox{\rm\char125\relax}
+\unexpanded\def\fraction#1#2{\mathematics{#1\over#2}}
+
+% very dutch
+
+\unexpanded\def\graden {\mathematics{^\circ}}
+
+\def\bedragprefix {\euro\normalfixedspace}
+\def\bedragsuffix {}
+\def\bedragempty {\euro}
+
+\unexpanded\def\bedrag#1%
+ {\strut\hbox\bgroup
+ \let\normalfixedspace\nonbreakablespace
+ \doifelsenothing{#1}
+ {\bedragempty}
+ {\bedragprefix\digits{#1}\bedragsuffix}%
+ \egroup}
+
+% \definieeralineas[test][n=3]
+%
+% \stelalineasin[test][3][breedte=4cm,uitlijnen=links]
+%
+% \startopelkaar
+% \test hans \\ ton \\ \bedrag{1.000,--} \\
+% \test hans \\ ton \\ \bedrag{~.~~1,--} \\
+% \test hans \\ ton \\ \bedrag{~.~~1,~~} \\
+% \test hans \\ ton \\ \bedrag{~.100,--} \\
+% \test hans \\ ton \\ \subtot{1.000,--} \\
+% \test hans \\ ton \\ \bedrag{1.000,--} \\
+% \test hans \\ ton \\ \bedrag{1.000,--} \\
+% \test hans \\ ton \\ \totaal{1.000,--} \\
+% \test hans \\ ton \\ \bedrag{nihil,--} \\
+% \test hans \\ ton \\ \totaal{nihil,--} \\
+% \test hans \\ ton \\ \subtot{nihil,--} \\
+% \stopopelkaar
+
+\def\periodswidth {.5em}
+\def\periodsdefault{3} % was 5, but now it's like \unknown
+
+\unexpanded\def\periods
+ {\dosingleempty\doperiods}
+
+\def\doperiods[#1]% todo: also n=,width= or maybe just #1,#2
+ {\dontleavehmode
+ \begingroup
+ \scratchdimen\periodswidth
+ \hbox to \iffirstargument#1\else\periodsdefault\fi \scratchdimen
+ {\leaders\hbox to \scratchdimen{\hss.\hss}\hss}%
+ \endgroup}
+
+\unexpanded\def\unknown
+ {\periods\relax} % relax prevents lookahead for []
+
+% Example by Wolfgang Schuster on the context list:
+%
+% \unexpanded\def\fourdots{{\def\periodswidth{.3em}\periods[4]}}
+%
+% Hello\fourdots\ World\fourdots \par Hello\fourdots\ World.
+
+% compatibility macros
+
+\def\doorsnede
+ {\hbox{\rlap/$\circ$} }
+
+\unexpanded\def\ongeveer
+ {\mathematics\pm}
+
+\chardef\boundarycharactermode\plusone
+
+\def\midboundarycharacter#1#2%
+ {\ifcase\boundarycharactermode
+ \or
+ %\nobreak
+ \hskip\hspaceamount\currentlanguage{#2}%
+ \languageparameter#1%
+ %\nobreak
+ \hskip\hspaceamount\currentlanguage{#2}%
+ \or
+ \languageparameter#1%
+ \fi
+ \chardef\boundarycharactermode\plusone}
+
+\def\leftboundarycharacter#1#2%
+ {\ifcase\boundarycharactermode
+ \or
+ \languageparameter#1%
+ \nobreak
+ \hskip\hspaceamount\currentlanguage{#2}%
+ \or
+ \languageparameter#1%
+ \fi
+ \chardef\boundarycharactermode\plusone}
+
+\def\rightboundarycharacter#1#2%
+ {\ifcase\boundarycharactermode
+ \or
+ \prewordbreak %\nobreak
+ \hskip\hspaceamount\currentlanguage{#2}%
+ \languageparameter#1%
+ \or
+ \languageparameter#1%
+ \fi
+ \chardef\boundarycharactermode\plusone}
+
+% actually this is pretty old, but temporary moved here
+%
+% obsolete:
+
+\def\setuphyphenmark
+ {\dodoubleargument\getparameters[\??kp]}
+
+\def\setuphyphenmark[#1]% sign=normal|wide
+ {\dodoubleargument\getparameters[\??kp][#1]%
+ \doifinsetelse\@@kpsign {\v!normal}
+ {\let\textmodehyphen\normalhyphen \let\textmodehyphendiscretionary\normalhyphendiscretionary}
+ {\let\textmodehyphen\composedhyphen\let\textmodehyphendiscretionary\composedhyphendiscretionary}}
+
+\setuphyphenmark[\c!sign=\v!wide]
+% % \setuphyphenmark[\c!sign=\v!normal]
+
+\definesymbol[\c!lefthyphen] [\languageparameter\c!lefthyphen]
+\definesymbol[\c!righthyphen] [\languageparameter\c!righthyphen]
+\definesymbol[\c!hyphen] [\languageparameter\c!hyphen]
+
+\def\normalhyphen
+ {\hbox{\directsymbol\empty\c!hyphen}}
+
+\def\composedhyphen
+ {\hbox{\directsymbol\empty\c!compoundhyphen}}
+
+\def\normalhyphendiscretionary
+ {\discretionary
+ {\hbox{\directsymbol\empty\c!lefthyphen}}
+ {\hbox{\directsymbol\empty\c!righthyphen}}
+ {\hbox{\directsymbol\empty\c!hyphen}}}
+
+\def\composedhyphendiscretionary
+ {\discretionary
+ {\hbox{\directsymbol\empty\c!leftcompoundhyphen}}
+ {\hbox{\directsymbol\empty\c!rightcompoundhyphen}}
+ {\hbox{\directsymbol\empty\c!compoundhyphen}}}
+
+\let\textmodehyphen \composedhyphen
+\let\textmodehyphendiscretionary\composedhyphendiscretionary
+
+\definesymbol[\c!leftcompoundhyphen] [\languageparameter\c!leftcompoundhyphen]
+\definesymbol[\c!rightcompoundhyphen] [\languageparameter\c!rightcompoundhyphen]
+\definesymbol[\c!compoundhyphen] [\languageparameter\c!compoundhyphen]
+
+\definehspace [sentence] [\zeropoint]
+\definehspace [intersentence] [.250em]
+
+\definesymbol
+ [\c!midsentence]
+ [\midboundarycharacter\c!midsentence{sentence}]
+
+\definesymbol
+ [\c!leftsentence]
+ [\leftboundarycharacter\c!leftsentence{sentence}]
+
+\definesymbol
+ [\c!rightsentence]
+ [\rightboundarycharacter\c!rightsentence{sentence}]
+
+\definesymbol
+ [\c!leftsubsentence]
+ [\leftboundarycharacter\c!leftsubsentence{sentence}]
+
+\definesymbol
+ [\c!rightsubsentence]
+ [\rightboundarycharacter\c!rightsubsentence{sentence}]
+
+\newsignal \subsentencesignal
+\newcount \subsentencelevel
+
+\let\beforesubsentence\donothing
+\let\aftersubsentence \donothing
+
+% todo: make this language option
+%
+% \def\beforesubsentence{\removeunwantedspaces}
+% \def\aftersubsentence {\ignorespaces}
+
+\def\midsentence
+ {\symbol[\c!midsentence]}
+
+\def\beginofsubsentence
+ {\beforesubsentence
+ \ifdim\lastkern=\subsentencesignal
+ \unskip
+ \kern\hspaceamount\currentlanguage{intersentence}%
+ \fi
+ \global\advance\subsentencelevel\plusone
+ \ifnum\subsentencelevel=\plusone
+ \dontleavehmode % was \leaveoutervmode
+ \fi
+ \symbol[\ifodd\subsentencelevel\c!leftsentence\else\c!leftsubsentence\fi]%
+ }% \ignorespaces}
+
+\def\endofsubsentence % relax prevents space gobbling
+ {\symbol[\ifodd\subsentencelevel\c!rightsentence\else\c!rightsubsentence\fi]%
+ \global\advance\subsentencelevel\minusone
+ \unskip
+ \kern\subsentencesignal\relax
+ \aftersubsentence}
+
+\def\beginofsubsentencespacing % relax prevents space gobbling
+ {\kern\subsentencesignal\relax}% \ignorespaces}
+
+\def\endofsubsentencespacing
+ {\ifdim\lastkern=\subsentencesignal
+ \unskip
+ \hskip\hspaceamount\currentlanguage{intersentence}%
+ % no good, actually language dependent:
+% \ignorespaces
+ \else
+ \unskip
+ \fi}
+
+%D \startbuffer
+%D test |<|test |<|test|>| test|>| test \par
+%D test|<|test|<|test|>|test|>|test \par
+%D test |<||<|test|>||>| test \par
+%D test \directdiscretionary{<}test\directdiscretionary{>} test \par
+%D \stopbuffer
+%D
+%D \typebuffer
+%D \getbuffer
+
+\def\startsubsentence{\beginofsubsentence \prewordbreak\beginofsubsentencespacing}
+\def\stopsubsentence {\endofsubsentencespacing\prewordbreak\endofsubsentence}
+
+%D \defineXMLenvironment [subsentence]
+%D {|<|}
+%D {|>|}
+%D \defineXMLenvironment [subsentence]
+%D {\directdiscretionary{<}}
+%D {\directdiscretionary{>}}
+%D \defineXMLenvironment [subsentence]
+%D {\startsubsentence}
+%D {\stopsubsentence}
+%D
+%D \startbuffer
+%D test <subsentence>test</subsentence> test
+%D \stopbuffer
+%D
+%D \typebuffer
+%D \processXMLbuffer
+
+\enableactivediscretionaries
+
+\definehspace [quotation] [\zeropoint]
+\definehspace [interquotation] [.125em]
+
+%definehspace [quote] [\zeropoint]
+%definehspace [speech] [\zeropoint]
+
+\definehspace [quote] [\hspaceamount\currentlanguage{quotation}]
+\definehspace [speech] [\hspaceamount\currentlanguage{quotation}]
+
+\definesymbol
+ [\c!leftquotation]
+ [\leftboundarycharacter\c!leftquotation{quotation}]
+
+\definesymbol
+ [\c!rightquotation]
+ [\rightboundarycharacter\c!rightquotation{quotation}]
+
+\definesymbol
+ [\c!leftquote]
+ [\leftboundarycharacter\c!leftquote{quote}]
+
+\definesymbol
+ [\c!rightquote]
+ [\rightboundarycharacter\c!rightquote{quote}]
+
+\definesymbol
+ [\c!leftspeech]
+ [\leftboundarycharacter\c!leftspeech{speech}]
+
+\definesymbol
+ [\c!rightspeech]
+ [\rightboundarycharacter\c!rightspeech{speech}]
+
+\definesymbol
+ [\c!middlespeech]
+ [\leftboundarycharacter\c!middlespeech{speech}]
+
+\appendtoks\def\quotation#1{"#1"}\to\simplifiedcommands
+\appendtoks\def\quote #1{'#1'}\to\simplifiedcommands
+
+%D The next features was so desperately needed by Giuseppe
+%D Bilotta that he made a module for it. Since this is a
+%D typical example of core functionality, I decided to extend
+%D the low level quotation macros in such a way that a speech
+%D feature could be build on top of it. The speech opening and
+%D closing symbols are defined per language. Italian is an
+%D example of a language that has them set.
+
+% this will replace the quotation and speed definitions
+
+\newsignal\delimitedtextsignal
+
+\let\currentdelimitedtext\s!unknown
+
+\def\delimitedtextlevel{\csname\??ci:\currentdelimitedtext:\c!level\endcsname}
+
+\def\doinitializetextlevel#1%
+ {\ifcsname\??ci:#1:\c!level\endcsname
+ \newcount\csname\??ci:#1:\c!level\endcsname\zerocount
+ \else
+ \expandafter\newcount\csname\??ci:#1:\c!level\endcsname
+ \fi}
+
+\def\delimitedtextparameter#1% will be sped up
+ {\executeifdefined{\??ci\currentdelimitedtext:\number\delimitedtextlevel#1}%
+ {\executeifdefined{\??ci\currentdelimitedtext#1}%
+ {\executeifdefined{\??ci#1}\empty}}}
+
+\def\definedelimitedtext
+ {\dodoubleempty\dodefinedelimitedtext}
+
+\def\dodefinedelimitedtext[#1][#2]%
+ {\doinitializetextlevel{#1}%
+ \doifassignmentelse{#2}
+ {\getparameters
+ [\??ci#1]
+ [\c!location=\v!margin, % \v!text \v!paragraph
+ \c!spacebefore=,
+ \c!spaceafter=\delimitedtextparameter\c!spacebefore,
+ \c!style=\v!normal,
+ \c!color=,
+ \c!leftmargin=\zeropoint,
+ \c!rightmargin=\delimitedtextparameter\c!leftmargin,
+ \c!indentnext=\v!yes,
+ \c!before=,
+ \c!after=,
+ \c!left=,
+ \c!right=,
+ %\c!level=0,
+ \c!repeat=\v!no,
+ \c!method=,
+ #2]}%
+ {\doifdefined{#2}
+ {\copyparameters[\??ci#1][\??ci#2]
+ [\c!location,\c!spacebefore,\c!spaceafter,\c!style,\c!color,
+ \c!leftmargin,\c!rightmargin,\c!indentnext,
+ \c!before,\c!after,\c!left,\c!right]}}%
+ \doifsomething{#1}
+ {\unexpanded\setvalue{#1}{\delimitedtext[#1]}%
+ \setvalue{\e!start#1}{\startdelimitedtext[#1]}%
+ \setvalue{\e!stop #1}{\stopdelimitedtext}}}
+
+\def\setupdelimitedtext
+ {\dotripleargument\dosetupdelimitedtext}
+
+\def\dosetupdelimitedtext[#1][#2][#3]% #2 = optional level
+ {\ifthirdargument
+ \getparameters[\??ci#1:#2][#3]%
+ \else\ifsecondargument
+ \getparameters[\??ci#1][#2]%
+ \else
+ \getparameters[\??ci][#1]%
+ \fi\fi}
+
+\def\dorepeatdelimitedtext
+ {\relax\ifcase\delimitedtextlevel\else
+ \dohandledelimitedtext\c!middle % maybe better \dohandleleftdelimitedtext
+ \fi}
+
+\let\dohandlerepeatdelimitedtext\relax
+
+\def\startdelimitedtext[#1]%
+ {\bgroup
+ \pushdelimitedtext{#1}%
+ \doifelse{\delimitedtextparameter\c!method}\s!font
+ {\def\dostopdelimitedtext
+ {\removeunwantedspaces\ignoredelimitedtext\c!right}%
+ \ignoredelimitedtext\c!left\ignorespaces}
+ {\doifelse{\delimitedtextparameter\c!repeat}\v!yes
+ {\let\dohandlerepeatdelimitedtext\dorepeatdelimitedtext}%
+ {\let\dohandlerepeatdelimitedtext\relax}%
+ \doifinsetelse{\delimitedtextparameter\c!location}{\v!paragraph,\v!margin}%
+ {\dosingleempty\dostartdelimitedtextpar}\dostartdelimitedtexttxt}}
+
+\def\dostartdelimitedtextpar[#1]%
+ {\let\dostopdelimitedtext\dostopdelimitedtextpar
+ \doifsomething{\delimitedtextparameter\c!spacebefore}
+ {\blank[\delimitedtextparameter\c!spacebefore]}%
+ \delimitedtextparameter\c!before
+ % nicer:
+ % \doadaptleftskip {\delimitedtextparameter\c!leftmargin}%
+ % \doadaptrightskip{\delimitedtextparameter\c!rightmargin}%
+ % backward compatible:
+ \doifelsenothing{#1}
+ {\endgraf
+ \doadaptleftskip {\delimitedtextparameter\c!leftmargin}%
+ \doadaptrightskip{\delimitedtextparameter\c!rightmargin}%
+ \let\dodostopdelimitedtextpar\endgraf}
+ {\startnarrower[#1]\let\dodostopdelimitedtextpar\stopnarrower}%
+ % so far
+ % \dochecknextindentation{\??ci\currentdelimitedtext}% AM: not here
+ \dostartattributes{\??ci\currentdelimitedtext}\c!style\c!color\empty
+ \leftdelimitedtextmark
+ \ignorespaces}
+
+\def\dostopdelimitedtextpar
+ {\removeunwantedspaces
+ \removelastskip
+ \rightdelimitedtextmark
+ \dostopattributes
+ \dodostopdelimitedtextpar
+ \delimitedtextparameter\c!after
+ \doifsomething{\delimitedtextparameter\c!spaceafter}
+ {\blank[\delimitedtextparameter\c!spaceafter]}%
+ \dochecknextindentation{\??ci\currentdelimitedtext}% AM: here
+ \dorechecknextindentation}% AM: This was missing!
+
+\def\dostartdelimitedtexttxt
+ {\let\dostopdelimitedtext\dostopdelimitedtexttxt
+ \dostartattributes{\??ci\currentdelimitedtext}\c!style\c!color\empty
+ \dohandleleftdelimitedtext\c!left
+ \ignorespaces}
+
+\def\dostopdelimitedtexttxt
+ {\removeunwantedspaces
+ \dohandlerightdelimitedtext\c!right
+ \dostopattributes}
+
+\def\stopdelimitedtext
+ {\dostopdelimitedtext
+ \popdelimitedtext
+ \egroup}
+
+\def\pushdelimitedtext#1%
+ {\globalpushmacro\currentdelimitedtext
+ \def\currentdelimitedtext{#1}%
+ \global\advance\delimitedtextlevel\plusone}
+
+\def\popdelimitedtext
+ {\global\advance\delimitedtextlevel\minusone
+ \globalpopmacro\currentdelimitedtext}
+
+\unexpanded\def\delimitedtext[#1]%
+ {\dontleavehmode % following ones can be omited
+ \pushdelimitedtext{#1}%
+ \doifelse{\delimitedtextparameter\c!method}\s!font
+ {\dofontdrivendelimited}
+ {\doifinsetelse{\delimitedtextparameter\c!location}{\v!paragraph,\v!margin}%
+ \dodelimitedtextpar\dodelimitedtexttxt}}
+
+% shortcuts
+
+\def\startdelimited{\startdelimitedtext}
+\def\stopdelimited {\stopdelimitedtext} % no let, dynamically assigned
+\def\delimited {\delimitedtext}
+
+\def\leftdelimitedtextmark
+ {\doifsomething{\delimitedtextparameter\c!left}
+ {\setbox\scratchbox\hbox{\delimitedtextparameter\c!left}%
+ \dontleavehmode
+ \doif{\delimitedtextparameter\c!location}\v!margin{\hskip-\wd\scratchbox}%
+ \box\scratchbox}}
+
+\def\rightdelimitedtextmark
+ {\doifsomething{\delimitedtextparameter\c!right}
+ {\hsmash{\delimitedtextparameter\c!right}}}
+
+% \starttext
+% \hyphenatedword{groepsvrijstellingsverordeningen}\par
+% \hyphenatedword{\quote{groepsvrijstellingsverordeningen}}\par
+% \dorecurse{100}{\hskip300pt\hskip\recurselevel pt test \quote{xxx xxxx}.\par}
+% \page \setuppapersize[A5][A4]
+% \quotation {overly beautiful pusillanimous sesquipedalian
+% longwinded} test test test test test test test test test test test
+% test test test test test test test test test test test test test
+% test test test test test test test test test test test test test
+% test test test test test test test test test test test test test
+% test test test
+% \stoptext
+
+\def\dohandledelimitedtext#1#2%
+ {\begingroup
+ \setbox\scratchbox\hbox{\delimitedtextparameter#1}%
+ \ifdim\wd\scratchbox>\zeropoint
+% \ifdim\lastskip=\delimitedtextsignal
+% \unskip
+ \ifdim\lastkern=\delimitedtextsignal
+ \unkern
+ \hskip\hspaceamount\currentlanguage{interquotation}%
+ \else
+ #2%
+ \fi
+ \ifhmode % else funny pagebeaks
+ \penalty\plustenthousand
+ \hskip\zeropoint % == \prewordbreak
+ \fi
+ \strut % new, needed below
+ \delimitedtextparameter#1% unhbox\scratchbox
+% \penalty\plustenthousand % else overfull boxes, but that's better than dangling periods
+ \kern\delimitedtextsignal % +- \prewordbreak
+ \fi
+ \endgroup}
+
+\def\dohandleleftdelimitedtext#1#2%
+ {\begingroup
+ \setbox\scratchbox\hbox{\delimitedtextparameter#1}%
+ \ifdim\wd\scratchbox>\zeropoint
+ \ifdim\lastkern=\delimitedtextsignal
+ \unkern
+ \hskip\hspaceamount\currentlanguage{interquotation}%
+ \else\ifdim\lastskip=\delimitedtextsignal
+ \unskip
+ \hskip\hspaceamount\currentlanguage{interquotation}%
+ \else
+ #2%
+ \fi\fi
+ \strut % new, needed below
+ \ifhmode % else funny pagebeaks
+ \penalty\plustenthousand
+ \hskip\zeropoint % == \prewordbreak
+ \fi
+ \strut % new, needed below
+ \delimitedtextparameter#1% unhbox\scratchbox
+ \hskip\delimitedtextsignal % +- \prewordbreak
+ \fi
+ \endgroup}
+
+\def\dohandlerightdelimitedtext#1#2%
+ {\begingroup
+ \setbox\scratchbox\hbox{\delimitedtextparameter#1}%
+ \ifdim\wd\scratchbox>\zeropoint
+ \ifdim\lastkern=\delimitedtextsignal
+ \unkern
+ \penalty\plustenthousand
+ \hskip\hspaceamount\currentlanguage{interquotation}%
+ \else\ifdim\lastskip=\delimitedtextsignal
+ \unskip
+ \penalty\plustenthousand
+ \hskip\hspaceamount\currentlanguage{interquotation}%
+ \else
+ #2%
+ \fi\fi
+ \ifhmode % else funny pagebeaks
+ \penalty\plustenthousand
+ \hskip\zeropoint % == \prewordbreak
+ \fi
+ \strut % new, needed below
+ \delimitedtextparameter#1% unhbox\scratchbox
+ \kern\delimitedtextsignal % +- \prewordbreak
+ \fi
+ \endgroup}
+
+
+\def\ignoredelimitedtext#1%
+ {\delimitedtextparameter#1}
+
+\def\handledelimitedtext#1%
+ {\dohandledelimitedtext{#1}\relax}
+
+\def\handleleftdelimitedtext#1%
+ {\dohandleleftdelimitedtext{#1}\relax}
+
+\def\handlerightdelimitedtext#1%
+ {\dohandlerightdelimitedtext{#1}\relax}
+
+\unexpanded\def\dodelimitedtextpar
+ {\dohandleleftdelimitedtext\c!left\relax
+ \groupedcommand
+ \donothing
+ {\dohandlerightdelimitedtext\c!right\removelastskip
+ \popdelimitedtext}}
+
+\unexpanded\def\dodelimitedtexttxt
+ {\doifelse{\delimitedtextparameter\c!style}\v!normal
+ \doquoteddelimited\doattributeddelimited}
+
+\def\doquoteddelimited
+ {\dohandleleftdelimitedtext\c!left\relax
+ \groupedcommand
+ \donothing
+ {\dohandlerightdelimitedtext\c!right
+ \removelastskip
+ \popdelimitedtext}}
+
+\def\doattributeddelimited
+ {\groupedcommand
+ {\dostartattributes{\??ci\currentdelimitedtext}\c!style\c!color}
+ {\dostopattributes
+ \popdelimitedtext}}
+
+\def\dofontdrivendelimited
+ {\simplegroupedcommand
+ {\languageparameter{\c!left\currentdelimitedtext}}
+ {\languageparameter{\c!right\currentdelimitedtext}%
+ \popdelimitedtext}}
+
+% testcase for nesting:
+%
+% \quotation{... \quotation{...} ...}
+% \startquotation ... \startquotation... \quotation{...} \stopquotation\space ...\stopquotation
+% \setupdelimitedtext[quotation][1][left=(,right=)]
+% \setupdelimitedtext[quotation][2][left={[},right={]}]
+% \setupdelimitedtext[quotation][3][left=\{,right=\}]
+% \quotation{... \quotation{...} ...}
+% \startquotation ... \startquotation... \quotation{...} \stopquotation\space ...\stopquotation
+
+\definedelimitedtext
+ [\v!quotation]
+ [\c!left={\symbol[\c!leftquotation]},
+ \c!right={\symbol[\c!rightquotation]},
+ \c!leftmargin=\v!standard]
+
+\definedelimitedtext
+ [\v!quote][\v!quotation]
+
+\setupdelimitedtext
+ [\v!quote]
+ [\c!location=\v!text,
+ \c!left={\symbol[\c!leftquote]},
+ \c!right={\symbol[\c!rightquote]}]
+
+\definedelimitedtext
+ [\v!blockquote][\v!quotation]
+
+\setupdelimitedtext
+ [\v!blockquote]
+ [\c!left=,
+ \c!right=]
+
+\definedelimitedtext
+ [\v!speech][\v!quotation]
+
+\setupdelimitedtext
+ [\v!speech]
+ [\c!repeat=\v!yes,
+ \c!left={\symbol[\c!leftspeech]},
+ \c!middle={\symbol[\c!middlespeech]},
+ \c!right={\symbol[\c!rightspeech]}]
+
+% how do we call an tight quote
+%
+% \definedelimitedtext
+% [\v!quotation][\v!quotation]
+%
+% \setupdelimitedtext
+% [\v!quotation]
+% [\c!indentnext=\v!no,
+% \c!spacebefore=\v!nowhite]
+
+\def\setupquotation{\setupdelimitedtext[\v!quotation]}
+\def\setupquote {\setupdelimitedtext[\v!quote]}
+
+% seldom used, move from kernel to run time module
+
+\ifx\tfx\undefined \let\tfx\relax \fi
+
+\def\basegrid
+ {\dosingleempty\dobasegrid}
+
+\def\dobasegrid[#1]%
+ {\begingroup
+ \getparameters[\??rt]
+ [\c!x=0,\c!y=0,
+ \c!nx=10,\c!ny=10,
+ \c!dx=.5,\c!dy=.5,
+ \c!xstep=0,\c!ystep=0,
+ \c!unit=\s!cm,
+ \c!scale=1,
+ \c!factor=1,
+ \c!offset=\v!yes,
+ \c!location=\v!left,
+ #1]%
+ \startpositioning
+ \dimen0=\@@rtdx\@@rtunit\relax
+ \dimen0=\@@rtscale\dimen0\relax
+ \dimen0=\@@rtfactor\dimen0\relax
+ \multiply\dimen0 \@@rtnx\relax
+ \dimen2=\@@rtdy\@@rtunit\relax
+ \dimen2=\@@rtscale\dimen2\relax
+ \dimen2=\@@rtfactor\dimen2\relax
+ \multiply\dimen2 \@@rtny\relax
+ \def\horline
+ {\vbox
+ {\hrule
+ \!!width \dimen0
+ \!!height \linewidth
+ \!!depth \!!zeropoint}}%
+ \def\verline%
+ {\vrule
+ \!!width \linewidth
+ \!!height \dimen2
+ \!!depth \!!zeropoint}%
+ \doglobal\newcounter\@@gridc
+ \doglobal\newcounter\@@gridd
+ \doglobal\newcounter\@@gride
+ \def\setlegend##1##2##3%
+ {\gdef\@@gridc{0}%
+ \dimen0=2em\relax
+ \dimen2=##2\@@rtunit\relax
+ \dimen2=\@@rtscale\dimen2\relax
+ \dimen2=\@@rtfactor\dimen2\relax
+ \divide\dimen0 \dimen2\relax
+ \xdef\@@gride{\number\dimen0}%
+ \ifnum\@@gride>50
+ \gdef\@@gride{100}%
+ \else\ifnum\@@gride>10
+ \gdef\@@gride{50}%
+ \else\ifnum\@@gride>5
+ \gdef\@@gride{10}%
+ \else\ifnum\@@gride>1
+ \gdef\@@gride{5}%
+ \else
+ \gdef\@@gride{1}%
+ \fi\fi\fi\fi
+ \gdef\@@gridd{0}%
+ \def\legend
+ {\ifnum\@@gridd=\zerocount
+ \vbox
+ {\increment(\@@gridc,##1)%
+ \hbox to 2em{\hss\@@gridc\hss}}%
+ \global\let\@@gridd=\@@gride
+ \fi
+ \doglobal\decrement\@@gridd
+ \doglobal\increment(\@@gridc,##1)}}%
+ \def\draw##1##2##3##4##5##6##7##8##9%
+ {\setuppositioning
+ [\c!state=##8,
+ \c!xstep=\v!absolute,
+ \c!ystep=\v!absolute,
+ \c!unit=\@@rtunit,
+ \c!scale=\@@rtscale,
+ \c!factor=\@@rtfactor,
+ \c!offset=\@@rtoffset,
+ \c!xoffset=##6,
+ \c!yoffset=##7]%
+ \doifelse{##9}\v!middle
+ {\scratchdimen##3pt\scratchdimen.5\scratchdimen
+ \edef\@@psxx{\withoutpt\the\scratchdimen}%
+ \scratchdimen##4pt\scratchdimen.5\scratchdimen
+ \edef\@@psyy{\withoutpt\the\scratchdimen}%
+ \scratchcounter##2\advance\scratchcounter -1
+ \edef\@@pszz{\the\scratchcounter}}
+ {\edef\@@psxx{0}\edef\@@psyy{0}\edef\@@pszz{##2}}%
+ \position(\@@psxx,\@@psyy){##1}%
+ \setuppositioning
+ [\c!state=##8,
+ \c!xstep=\v!relative,
+ \c!ystep=\v!relative,
+ \c!scale=\@@rtscale,
+ \c!factor=\@@rtfactor,
+ \c!offset=\@@rtoffset,
+ \c!unit=\@@rtunit]%
+ \dorecurse\@@pszz{\position(##3,##4){##5}}}%
+ \draw
+ \verline\@@rtnx\@@rtdx0\verline\!!zeropoint\!!zeropoint\v!start\empty
+ \draw
+ \horline\@@rtny0\@@rtdy\horline\!!zeropoint\!!zeropoint\v!start\empty
+ \tfx
+ \doifnot\@@rtxstep{0}
+ {\setlegend\@@rtxstep\@@rtdx\@@rtx
+ \draw\legend\@@rtnx\@@rtdx0\legend{-1em}{-1.5em}\v!overlay\@@rtlocation}%
+ \doifnot\@@rtystep{0}
+ {\setlegend\@@rtystep\@@rtdy\@@rty
+ \draw\legend\@@rtny0\@@rtdy\legend{-2em}{-.75ex}\v!overlay\@@rtlocation}%
+ \stoppositioning
+ \endgroup}
+
+\let\grid\basegrid
+
+% only used at pragma, move from kernel to run time module
+
+\def\referraldate
+ {\currentdate[\v!referral]}
+
+\def\doreferral[#1]%
+ {\noheaderandfooterlines
+ \bgroup
+ \getparameters
+ [\??km]
+ [\c!bet=\unknown,\c!dat=\unknown,\c!ken=\unknown,
+ \c!from=,\c!to=,\c!ref=,#1]%
+ % moet anders, hoort niet in 01b
+ \assigntranslation[\s!nl=referentie,\s!en=reference,\s!de=Referenz,\s!sp=referencia]\to\@@@kmref
+ \assigntranslation[\s!nl=van,\s!en=from,\s!de=Von,\s!sp=de]\to\@@@kmvan
+ \assigntranslation[\s!nl=aan,\s!en=to,\s!de=An,\s!sp=a]\to\@@@kmaan
+ \assigntranslation[\s!nl=betreft,\s!en=concerns,\s!de=Betreff,\s!sp=]\to\@@@kmbet
+ \assigntranslation[\s!nl=datum,\s!en=date,\s!de=Datum,\s!sp=fecha]\to\@@@kmdat
+ \assigntranslation[\s!nl=kenmerk,\s!en=mark,\s!de=Kennzeichen,\s!sp=]\to\@@@kmken
+ %
+ \definetabulate[\s!dummy][|l|p|]
+ \startdummy
+ \NC\@@@kmbet\EQ\@@kmbet\NC\NR
+ \NC\@@@kmdat\EQ\@@kmdat\NC\NR
+ \NC\@@@kmken\EQ\expanded{\smallcapped{\@@kmken}}\NC\NR
+ \doifsomething{\@@kmfrom\@@kmto}{\NC\NC\NC\NR}%
+ \doifsomething \@@kmfrom {\NC\@@@kmvan\EQ\@@kmfrom\NC\NR}%
+ \doifsomething \@@kmto {\NC\@@@kmaan\EQ\@@kmto\NC\NR}%
+ \doifsomething \@@kmref {\NC\NC\NC\NR\NC\@@@kmref\EQ\@@kmref\NC\NR}%
+ \stopdummy
+ \egroup}
+
+\def\referral
+ {\dosingleargument\doreferral}
+
+% FUZZY OLD STUFF: will be removed when not used in some manual;
+% rows instead of columns, i'd forgotten that this code exist
+%
+% \definesystemvariable{ri}
+%
+% \def\setuprows
+% {\dodoubleargument\getparameters[\??ri]}
+%
+% \definecomplexorsimpleempty\startrows
+%
+% \def\complexstartrows[#1]%
+% {\bgroup
+% \setuprows[#1]%
+% \let\do@@ribottom\relax
+% \def\row
+% {\do@@ribottom
+% \egroup
+% \dimen0\vsize
+% \divide\dimen0 \@@rin
+% \advance\dimen0 -\lineskip
+% \vbox to \dimen0
+% \bgroup
+% \@@ritop
+% \let\do@@ribottom\@@ribottom
+% \ignorespaces}%
+% \bgroup
+% \row}
+%
+% \def\stoprows
+% {\do@@ribottom
+% \egroup
+% \egroup}
+%
+% \setuprows
+% [\c!n=2,
+% \c!top=,
+% \c!bottom=\vfill]
+
+% THIS WAS MAIN-003.TEX
+
+% messages moved
+
+% messages moved
+
+% messages moved
+
+% messages moved
+
+% messages moved
+
+% messages moved
+
+% messages moved
+
+% messages moved
+
+\definetabulate
+ [\v!legend]
+ [|emj1|i1|mR|]
+
+\setuptabulate
+ [\v!legend]
+ [\c!unit=.75em,\c!inner=\setquicktabulate\leg,EQ={=}]
+
+\definetabulate
+ [\v!legend][\v!two]
+ [|emj1|emk1|i1|mR|]
+
+\definetabulate
+ [\v!fact]
+ [|R|ecmj1|i1mR|]
+
+\setuptabulate
+ [\v!fact]
+ [\c!unit=.75em,\c!inner=\setquicktabulate\fact,EQ={=}]
+
+\unexpanded\def\xbox
+ {\bgroup\aftergroup\egroup\hbox\bgroup\tx\let\next=}
+
+\unexpanded\def\xxbox
+ {\bgroup\aftergroup\egroup\hbox\bgroup\txx\let\next=}
+
+% \def\mrm#1%
+% {$\rm#1$}
+
+%D \macros
+%D {definepairedbox, setuppairedbox, placepairedbox}
+%D
+%D Paired boxes, formally called legends, but from now on a
+%D legend is just an instance, are primarily meant for
+%D typesetting some text alongside an illustration. Although
+%D there is quite some variation possible, the functionality is
+%D kept simple, if only because in most cases such pairs are
+%D typeset sober.
+%D
+%D The location specification accepts a pair, where the first
+%D keyword specifies the arrangement, and the second one the
+%D alignment. The first key of the location pair is one of
+%D \type {left}, \type {right}, \type {top} or \type {bottom},
+%D while the second key can also be \type {middle}.
+%D
+%D The first box is just collected in an horizontal box, but
+%D the second one is a vertical box that gets passed the
+%D bodyfont and alignment settings.
+
+%D Today we would implement this using layers .... but for the
+%D moment we keep it this way.
+
+% \startbuffer[test]
+% \test left \test left,top \test left,bottom \test left,middle
+% \test right \test right,top \test right,bottom \test right,middle
+% \test top \test top,left \test top,right \test top,middle
+% \test bottom \test bottom,left \test bottom,right \test bottom,middle
+% \stopbuffer
+%
+% \def\showtest#1%
+% {\pagina
+% \typebuffer[demo]
+% \def\test##1
+% {\startlinecorrection[blank]
+% \getbuffer[demo]%
+% \ruledhbox\placelegend
+% [bodyfont=6pt,location={##1}]
+% {\framed[width=.25\textwidth]{\tttf##1}}
+% {#1}
+% \stoplinecorrection}
+% \getbuffer[test]}
+%
+% \startbuffer[demo]
+% \setuplegend
+% [width=\hsize,maxwidth=\makeupwidth,
+% height=\vsize,maxheight=\makeupheight]
+% \stopbuffer
+%
+% \showtest{These examples demonstrate the default settings.}
+%
+% \startbuffer[demo]
+% \setuplegend
+% [width=\textwidth,
+% maxwidth=\textwidth]
+% \stopbuffer
+%
+% \showtest{\input tufte }
+%
+% \startbuffer[demo]
+% \setuplegend
+% [width=.65\textwidth]
+% \stopbuffer
+%
+% \showtest{\input knuth }
+%
+% \startbuffer[demo]
+% \setuplegend
+% [height=2cm]
+% \stopbuffer
+%
+% \showtest{These examples demonstrate some other settings.}
+%
+% \startbuffer[demo]
+% \setuplegend
+% [width=.65\textwidth,
+% height=2cm]
+% \stopbuffer
+%
+% \showtest{These examples demonstrate some other settings.}
+%
+% \startbuffer[demo]
+% \setuplegend
+% [n=2,align=right,width=.5\textwidth]
+% \stopbuffer
+%
+% \showtest{\input zapf }
+
+%D \macros
+%D {setuplegend, placelegend}
+%D
+%D It makes sense to typeset a legend to a figure in \TEX\
+%D and not in a drawing package. The macro \type {\placelegend}
+%D combines a figure (or something else) and its legend. This
+%D command is just a paired box.
+%D
+%D The legend is placed according to \type {location}, being
+%D \type {bottom} or \type {right}. The macro macro is used as
+%D follows.
+%D
+%D \starttyping
+%D \placefigure
+%D {whow}
+%D {\placelegend
+%D {\externalfigure[cow]}
+%D {\starttabulation
+%D \NC 1 \NC head \NC \NR
+%D \NC 2 \NC legs \NC \NR
+%D \NC 3 \NC tail \NC \NR
+%D \stoptabulation}}
+%D
+%D \placefigure
+%D {whow}
+%D {\placelegend
+%D {\externalfigure[cow]}
+%D {\starttabulation[|l|l|l|l|]
+%D \NC 1 \NC head \NC 3 \NC tail \NC \NR
+%D \NC 2 \NC legs \NC \NC \NC \NR
+%D \stoptabulation}}
+%D
+%D \placefigure
+%D {whow}
+%D {\placelegend[n=2]
+%D {\externalfigure[cow]}
+%D {\starttabulation
+%D \NC 1 \NC head \NC \NR
+%D \NC 2 \NC legs \NC \NR
+%D \NC 3 \NC tail \NC \NR
+%D \stoptabulation}}
+%D
+%D \placefigure
+%D {whow}
+%D {\placelegend[n=2]
+%D {\externalfigure[cow]}
+%D {head \par legs \par tail}}
+%D
+%D \placefigure
+%D {whow}
+%D {\placelegend[n=2]
+%D {\externalfigure[cow]}
+%D {\startitemize[packed]
+%D \item head \item legs \item tail \item belly \item horns
+%D \stopitemize}}
+%D
+%D \placefigure
+%D {whow}
+%D {\placelegend[n=2,width=.8\hsize]
+%D {\externalfigure[cow]}
+%D {\startitemize[packed]
+%D \item head \item legs \item tail \item belly \item horns
+%D \stopitemize}}
+%D \stoptyping
+
+\newbox\firstpairedbox
+\newbox\secondpairedbox
+
+\def\definepairedbox
+ {\dodoubleempty\dodefinepairedbox}
+
+\def\dodefinepairedbox[#1][#2]%
+ {\getparameters
+ [\??ld#1]
+ [\c!n=1,
+ \c!distance=\bodyfontsize,
+ \c!before=,
+ \c!after=,
+ \c!color=,
+ \c!style=,
+ \c!inbetween={\blank[\v!medium]},
+ \c!width=\hsize,
+ \c!height=\vsize,
+ \c!maxwidth=\textwidth, % \makeupwidth,
+ \c!maxheight=\textheight, % \makeupheight,
+ \c!bodyfont=,
+ \c!align=,
+ \c!location=\v!bottom,
+ #2]%
+ \setvalue{\e!setup#1\e!endsetup}{\setuppairedbox[#1]}%
+ \setvalue{\e!place#1}{\placepairedbox[#1]}}
+
+\def\setuppairedbox
+ {\dodoubleempty\dosetuppairedbox}
+
+\def\dosetuppairedbox[#1]%
+ {\getparameters[\??ld#1]}
+
+\def\placepairedbox
+ {\bgroup\dodoubleempty\doplacepairedbox}
+
+\def\doplacepairedbox[#1][#2]% watch the hsize/vsize tricks
+ {\setuppairedbox[#1][#2]% % and don't change them
+ \copyparameters % brrr
+ [\??ld][\??ld#1]
+ [\c!n,\c!distance,\c!inbetween,\c!before,\c!after,
+ \c!width,\c!height,\c!maxwidth,\c!maxheight,
+ \c!color,\c!style,\c!bodyfont,\c!align,\c!location]%
+ \@@ldbefore\bgroup
+ \global\setsystemmode{pairedbox}%
+ \beforefirstpairedbox
+ \dowithnextbox
+ {\betweenbothpairedboxes
+ \dowithnextbox
+ {\afterbothpairedboxes
+ \egroup\@@ldafter
+ \egroup}
+ \vbox\bgroup
+ \insidesecondpairedbox
+ \let\next=}
+ \hbox}
+
+\def\beforefirstpairedbox
+ {\chardef\pairedlocationa1 % left
+ \chardef\pairedlocationb4 % middle
+ \getfromcommacommand[\@@ldlocation][1]%
+ \processaction
+ [\commalistelement]
+ [ \v!left=>\chardef\pairedlocationa0,
+ \v!right=>\chardef\pairedlocationa1,
+ \v!top=>\chardef\pairedlocationa2,
+ \v!bottom=>\chardef\pairedlocationa3]%
+ \getfromcommacommand[\@@ldlocation][2]%
+ \processaction
+ [\commalistelement]
+ [ \v!left=>\chardef\pairedlocationb0,
+ \v!right=>\chardef\pairedlocationb1,
+ \v!high=>\chardef\pairedlocationb2,
+ \v!top=>\chardef\pairedlocationb2,
+ \v!low=>\chardef\pairedlocationb3,
+ \v!bottom=>\chardef\pairedlocationb3,
+ \v!middle=>\chardef\pairedlocationb4]}
+
+\def\betweenbothpairedboxes
+ {\switchtobodyfont[\@@ldbodyfont]% split under same regime
+ \setbox\firstpairedbox\flushnextbox
+ \ifnum\pairedlocationa<2
+ \hsize\wd\firstpairedbox % trick
+ \hsize\@@ldwidth
+ \scratchdimen\wd\firstpairedbox
+ \advance\scratchdimen \@@lddistance
+ \bgroup\advance\scratchdimen \hsize
+ \ifdim\scratchdimen>\@@ldmaxwidth\relax
+ \egroup
+ \hsize\@@ldmaxwidth
+ \advance\hsize -\scratchdimen
+ \else
+ \egroup
+ \fi
+ \else
+ \hsize\wd\firstpairedbox
+ \hsize\@@ldwidth % can be \hsize
+ \ifdim\hsize>\@@ldmaxwidth\relax \hsize\@@ldmaxwidth \fi % can be \hsize
+ \fi
+ \ifnum\@@ldn>\plusone
+ \setrigidcolumnhsize\hsize\@@lddistance\@@ldn
+ \fi}
+
+\def\afterbothpairedboxes
+ {\setbox\secondpairedbox\vbox
+ {\ifnum\@@ldn>1
+ \rigidcolumnbalance\nextbox
+ \else
+ \flushnextbox
+ \fi}%
+ \ifnum\pairedlocationa<2\hbox\else\vbox\fi\bgroup % hide vsize
+ \forgetall
+ \ifnum\pairedlocationa<2
+ \scratchdimen\maxoftwoboxdimens\ht\firstpairedbox\secondpairedbox
+ \vsize\scratchdimen
+ \ifdim\scratchdimen<\@@ldheight\relax % can be \vsize
+ \scratchdimen\@@ldheight
+ \fi
+ \ifdim\scratchdimen>\@@ldmaxheight\relax
+ \scratchdimen\@@ldmaxheight
+ \fi
+ \valignpairedbox\firstpairedbox \scratchdimen
+ \valignpairedbox\secondpairedbox\scratchdimen
+ \else
+ \scratchdimen\maxoftwoboxdimens\wd\firstpairedbox\secondpairedbox
+ \halignpairedbox\firstpairedbox \scratchdimen
+ \halignpairedbox\secondpairedbox\scratchdimen
+ \scratchdimen\ht\secondpairedbox
+ \vsize\scratchdimen
+ \ifdim\ht\secondpairedbox<\@@ldheight\relax % can be \vsize
+ \scratchdimen\@@ldheight\relax % \relax needed
+ \fi
+ \ifdim\scratchdimen>\@@ldmaxheight\relax % todo: totale hoogte
+ \scratchdimen\@@ldmaxheight\relax % \relax needed
+ \fi
+ \ifdim\scratchdimen>\ht\secondpairedbox
+ \setbox\secondpairedbox\vbox to \scratchdimen
+ {\ifnum\pairedlocationa=3 \vss\fi %
+ \box\secondpairedbox
+ \ifnum\pairedlocationa=2 \vss\fi}% \kern\zeropoint
+ \fi
+ \fi
+ \ifcase\pairedlocationa
+ \box\secondpairedbox\hskip\@@lddistance\box\firstpairedbox \or
+ \box\firstpairedbox \hskip\@@lddistance\box\secondpairedbox\or
+ \box\secondpairedbox\endgraf \nointerlineskip \@@ldinbetween \box\firstpairedbox \or
+ \box\firstpairedbox \endgraf \nointerlineskip \@@ldinbetween \box\secondpairedbox\else
+ \fi
+ \egroup}
+
+\def\insidesecondpairedbox
+ {\forgetall
+ \setupalign[\@@ldalign]%
+ \tolerantTABLEbreaktrue % hm.
+ \blank[\v!disable]%
+ \everypar{\begstrut}}
+
+\def\maxoftwoboxdimens#1#2#3%
+ {#1\ifdim#1#2>#1#3 #2\else#3\fi}
+
+\def\valignpairedbox#1#2%
+ {\setbox#1\vbox to #2
+ {\ifcase\pairedlocationb\or\or\or\vss\or\vss\fi
+ \box#1\relax
+ \ifcase\pairedlocationb\or\or\vss\or\or\vss\fi}}
+
+\def\halignpairedbox#1#2%
+ {\setbox#1\hbox to #2
+ {\ifcase\pairedlocationb\or\hss\or\or\or\hss\fi
+ \box#1\relax
+ \ifcase\pairedlocationb\hss\or\or\or\or\hss\fi}}
+
+\definepairedbox[\v!legend]
+
+%D Goody:
+
+\appendtoks
+ \global\resetsystemmode{combination}%
+ \global\resetsystemmode{pairedbox}%
+\to \everyinsidefloat
+
+% todo: \startcombination \startcomb \stopcomb ...
+
+\newcount\horcombination % counter
+\newcount\totcombination
+
+\def\definecombination
+ {\dodoubleempty\dodefinecombination}
+
+\def\dodefinecombination[#1][#2]%
+ {\copyparameters
+ [\??co#1][\??co]
+ [\c!width,\c!height,\c!distance,\c!location,%
+ \c!before,\c!inbetween,\c!after,\c!align,%
+ \c!style,\c!color]%
+ \getparameters
+ [\??co#1][#2]}
+
+\def\setupcombinations
+ {\dodoubleempty\dosetupcombinations}
+
+\def\dosetupcombinations[#1][#2]%
+ {\ifsecondargument
+ \getparameters[\??co#1][#2]%
+ \else
+ \getparameters[\??co][#1]%
+ \fi}
+
+\def\combinationparameter#1%
+ {\csname\??co\currentcombination#1\endcsname}%
+
+\def\startcombination
+ {\bgroup % so we can grab a group
+ \dodoubleempty\dostartcombination}
+
+% \startcombination {alpha} {a} {beta} {b} \stopcombination
+% \startcombination[2*1] {alpha} {a} {beta} {b} \stopcombination
+% \startcombination[1*2] {alpha} {a} {beta} {b} \stopcombination
+% \startcombination[2] {alpha} {a} {beta} {b} \stopcombination
+
+\def\dostartcombination[#1][#2]%
+ {\global\setsystemmode{combination}%
+ \doifnothing{#1}\firstargumentfalse % to be sure (when called in macros)
+ \doifnothing{#2}\secondargumentfalse % to be sure (when called in macros)
+ \ifsecondargument
+ \def\currentcombination{#1}%
+ \edef\currentcombinationspec{#2*1*}%
+ \else % better : \doifcombinationelse ... \??co#1\c!location
+ \doifinstringelse{*}{#1}
+ {\let\currentcombination\empty
+ \edef\currentcombinationspec{#1*1*}}
+ {\doifnumberelse{#1}
+ {\let\currentcombination\empty
+ \edef\currentcombinationspec{#1*1*}}
+ {\def\currentcombination{#1}%
+ \edef\currentcombinationspec{2*1*}}}%
+ \fi
+ \forgetall
+ \doifelse{\combinationparameter\c!height}\v!fit
+ \vbox {\vbox to \combinationparameter\c!height}%
+ \bgroup
+ \expanded{\dodostartcombination[\currentcombinationspec]}}
+
+\long\def\dodostartcombination[#1*#2*#3]%
+ {\setuphorizontaldivision
+ [\c!n=\v!fit,\c!distance=\combinationparameter\c!distance]%
+ \global\horcombination#1%
+ \global\totcombination#2%
+ \global\setbox\combinationstack\emptybox
+ \xdef\maxhorcombination{\the\horcombination}%
+ \multiply\totcombination\horcombination
+ \tabskip\zeropoint
+ \doifelse{\combinationparameter\c!width}\v!fit
+ {\halign}{\halign to \combinationparameter\c!width}%
+ \bgroup&%
+ %\hfil##\hfil% now : location={left,top}
+ \expanded{\doifnotinset{\v!left}{\combinationparameter\c!location}}\hfil
+ ##%
+ \expanded{\doifnotinset{\v!right}{\combinationparameter\c!location}}\hfil
+ &\tabskip\zeropoint \!!plus 1fill##\cr
+ \docombination}
+
+\def\docombination % we want to add struts but still ignore an empty box
+ {\dowithnextbox
+ {\setbox0\flushnextbox
+ \dowithnextbox
+ {\setbox2\flushnextbox
+ \dodocombination}%
+ \vtop\bgroup
+ \def\next
+ {\futurelet\nexttoken\nextnext}%
+ \def\nextnext
+ {\ifx\nexttoken\egroup \else % the next box is empty
+ \hsize\wd0
+ \setupalign[\combinationparameter\c!align]%
+ \dostartattributes{\??co\currentcombination}\c!style\c!color\empty
+ \bgroup
+ \aftergroup\endstrut
+ \aftergroup\dostopattributes
+ \aftergroup\egroup
+ \begstrut
+ \fi}%
+ \afterassignment\next\let\nexttoken=}
+ \hbox}
+
+\def\depthonlybox
+ {\dowithnextbox{\vtop{\hsize\wd\nextbox\kern\zeropoint\box\nextbox}}\vbox}
+
+\def\dodocombination
+ {\vbox
+ {\forgetall % \setupwhitespace[\v!none]%
+ \let\next\vbox
+ \expanded{\processallactionsinset[\combinationparameter\c!location]}
+ [ \v!top=>\let\next\depthonlybox, % \tbox,
+ \v!middle=>\let\next\halfwaybox]%
+ \next{\copy0}%
+ % we need to save the caption for a next alignment line
+ \saveoncombinationstack2}%
+ \ifnum\totcombination>\plusone
+ \global\advance\totcombination\minusone
+ \global\advance\horcombination\minusone
+ \ifnum\horcombination=\zerocount
+ \def\next
+ {\cr
+ \flushcombinationstack
+ \noalign
+ {\forgetall % \setupwhitespace[\v!none]% no
+ \global\setbox\combinationstack\emptybox
+ \nointerlineskip
+ \combinationparameter\c!after
+ \combinationparameter\c!before
+ \vss
+ \nointerlineskip}%
+ \global\horcombination\maxhorcombination\relax
+ \docombination}%
+ \else
+ \def\next
+ {&&&\hskip\combinationparameter\c!distance&\docombination}%
+ \fi
+ \else
+ \def\next
+ {\cr
+ \flushcombinationstack
+ \egroup}%
+ \fi
+ \next}
+
+% formally ok:
+%
+% \def\stopcombination
+% {\egroup
+% \egroup}
+%
+% more robust:
+%
+% \def\stopcombination
+% {{}{}{}{}{}{}{}{}% catches (at most 4) missing entries
+% \egroup
+% \egroup}
+%
+% even better:
+
+\def\stopcombination
+ {{\scratchtoks{{}{}{}}\dorecurse\totcombination{\appendtoks{}{}{}{}\to\scratchtoks}\expandafter}\the\scratchtoks
+ \egroup
+ \egroup}
+
+\newbox\combinationstack
+
+\def\saveoncombinationstack#1%
+ {\global\setbox\combinationstack\hbox
+ {\hbox{\box#1}\unhbox\combinationstack}}
+
+\def\flushcombinationstack
+ {\noalign
+ {\ifdim\ht\combinationstack>\zeropoint
+\nointerlineskip % nieuw
+ \combinationparameter\c!inbetween
+ \global\horcombination\maxhorcombination
+ \globallet\doflushcombinationstack\dodoflushcombinationstack
+ \else
+ \global\setbox\combinationstack\emptybox
+ \globallet\doflushcombinationstack\donothing
+ \fi}%
+ \doflushcombinationstack\crcr}
+
+\gdef\dodoflushcombinationstack
+ {\global\setbox\combinationstack\hbox
+ {\unhbox\combinationstack
+ \global\setbox1\lastbox}%
+ \box1% \ruledhbox{\box1}%
+ \global\advance\horcombination\minusone\relax
+ \ifnum\horcombination>\zerocount
+ \def\next{&&&&\doflushcombinationstack}%
+ \else
+ \global\setbox\combinationstack\emptybox
+ %\let\next\relax
+ \@EA\gobbleoneargument
+ \fi
+ \next}
+
+\setupcombinations
+ [\c!width=\v!fit,
+ \c!height=\v!fit,
+ \c!distance=1em,
+ \c!location=\v!bottom, % can be something {top,left}
+ \c!before=\blank,
+ \c!inbetween={\blank[\v!medium]},
+ \c!style=,
+ \c!color=,
+ \c!after=,
+ \c!align=\v!middle]
+
+%D \macros
+%D {startfloatcombination}
+%D
+%D \setupexternalfigures[directory={../sample}]
+%D \startbuffer
+%D \placefigure
+%D [left,none]
+%D {}
+%D {\startfloatcombination[2*2]
+%D \placefigure{alpha}{\externalfigure[cow.pdf][width=1cm]}
+%D \placefigure{beta} {\externalfigure[cow.pdf][width=2cm]}
+%D \placefigure{gamma}{\externalfigure[cow.pdf][width=3cm]}
+%D \placefigure{delta}{\externalfigure[cow.pdf][width=4cm]}
+%D \stopfloatcombination}
+%D
+%D \input tufte
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+
+\def\startfloatcombination
+ {\dodoubleempty\dostartfloatcombination}
+
+\def\dostartfloatcombination[#1][#2]%
+ {\vbox\bgroup
+ %\insidecolumnstrue % trick, forces no centering, todo: proper switch/feature
+ \chardef\postcenterfloatmethod\zerocount
+ \forcelocalfloats
+ \def\stopfloatcombination
+ {\scratchtoks\emptytoks
+ \dorecurse\noflocalfloats
+ {\appendetoks{\noexpand\getlocalfloat{\recurselevel}}{}\to\scratchtoks}%
+ \expanded{\startcombination[#1]\the\scratchtoks}\stopcombination
+ \resetlocalfloats
+ \egroup}}
+
+\def\placerelativetoeachother#1#2%
+ {\bgroup
+ \dowithnextbox
+ {\bgroup
+ \setbox0\box\nextbox
+ \dowithnextbox
+ {\setbox2\box\nextbox
+ #1{#2#########2\cr\box0\cr\box2\cr}
+ \egroup
+ \egroup}
+ \hbox}
+ \hbox}
+
+\def\placeontopofeachother{\placerelativetoeachother\halign\hss}
+\def\placesidebyside {\placerelativetoeachother\valign\vss}
+
+%D A couple of examples, demonstrating how the depth is
+%D taken care of:
+%D
+%D \startbuffer
+%D test\rotate[frame=on, rotation=0] {gans}%
+%D test\rotate[frame=on, rotation=90] {gans}%
+%D test\rotate[frame=on, rotation=180]{gans}%
+%D test\rotate[frame=on, rotation=270]{gans}%
+%D test
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+
+% When we rotate over arbitrary angles, we need to relocate the
+% resulting box because rotation brings that box onto the negative
+% axis. The calculations (mostly sin and cosine) need to be tuned for
+% the way a box is packages (i.e. the refence point). A typical example
+% of drawing, scribbling, and going back to the days of school math.
+%
+% We do a bit more calculations than needed, simply because that way
+% it's easier to debug the code.
+
+\def\dododorotatenextbox
+ {\setbox\nextbox\vbox to \@@layerysiz
+ {\vfill
+ \hbox to \@@layerxsiz
+ {\dostartrotation\@@rorotation
+ \nextboxwd\zeropoint
+ \nextboxht\zeropoint
+ \flushnextbox
+ \dostoprotation
+ \hfill}%
+ \kern\@@layerypos}%
+ \setbox\nextbox\hbox
+ {\kern\@@layerxpos
+ \kern\@@layerxoff
+ \lower\@@layeryoff\flushnextbox}}
+
+\def\dodorotatenextbox#1#2% quite some trial and error -)
+ {\dontshowcomposition
+ \dontcomplain
+ \ifnum#2=\plusfour
+ % new, location=middle
+ \!!widthb \nextboxwd
+ \!!heightb\nextboxht
+ \!!depthb \nextboxdp
+ \setbox\nextbox\vbox{\vskip.5\nextboxht\hskip-.5\nextboxwd\flushnextbox}%
+ \smashbox\nextbox
+ \fi
+ \!!widtha \nextboxwd
+ \!!heighta\nextboxht
+ \!!deptha \nextboxdp
+ \!!doneafalse
+ \!!donebfalse
+ \ifcase#2\or
+ % 1: fit
+ \or
+ % 2: depth, not fit
+ \!!doneatrue
+ \!!donebtrue
+ \or
+ % 3: depth, fit
+ \!!donebtrue
+ \fi
+ \setbox\nextbox\vbox{\hbox{\raise\nextboxdp\flushnextbox}}%
+ \!!dimena \nextboxht
+ \setcalculatedcos\cos\@@rorotation
+ \setcalculatedsin\sin\@@rorotation
+ \@@layerxpos\zeropoint
+ \@@layerypos\zeropoint
+ \@@layerxoff\zeropoint
+ \@@layeryoff\zeropoint
+ \ifdim\sin\points>\zeropoint
+ \ifdim\cos\points>\zeropoint
+ \@@layerxsiz \cos\!!widtha
+ \@@layerysiz \sin\!!widtha
+ \advance\@@layerxsiz \sin\!!dimena
+ \advance\@@layerysiz \cos\!!dimena
+ \@@layerypos \cos\!!dimena
+ \if!!donea
+ \@@layerxoff \negated\sin\!!dimena
+ \advance\@@layerxoff \sin\!!deptha
+ \fi
+ \if!!doneb
+ \@@layeryoff \cos\!!deptha
+ \fi
+ \dododorotatenextbox
+ \else
+ \@@layerxsiz \negated\cos\!!widtha
+ \@@layerysiz \sin\!!widtha
+ \advance\@@layerxsiz \sin\!!dimena
+ \advance\@@layerysiz \negated\cos\!!dimena
+ \@@layerxpos \negated\cos\!!widtha
+ \if!!donea
+ \@@layerxoff -\@@layerxsiz
+ \advance\@@layerxoff \sin\!!deptha
+ \fi
+ \if!!doneb
+ \@@layeryoff \negated\cos\!!heighta
+ \fi
+ \dododorotatenextbox
+ \wd\nextbox\if!!donea\sin\!!deptha\else\@@layerxsiz\fi
+ \fi
+ \else
+ \ifdim\cos\points<\zeropoint
+ \@@layerxsiz \negated\cos\!!widtha
+ \@@layerysiz \negated\sin\!!widtha
+ \advance\@@layerxsiz \negated\sin\!!dimena
+ \advance\@@layerysiz \negated\cos\!!dimena
+ \@@layerxpos \@@layerxsiz
+ \@@layerypos \negated\sin\!!widtha
+ \if!!donea
+ \@@layerxoff -\@@layerxsiz
+ \advance\@@layerxoff \negated\sin\!!heighta
+ \fi
+ \if!!doneb
+ \@@layeryoff \@@layerysiz
+ \advance\@@layeryoff \cos\!!deptha
+ \fi
+ \dododorotatenextbox
+ \wd\nextbox\if!!donea\negated\sin\!!heighta\else\@@layerxsiz\fi
+ \else
+ \@@layerxsiz \cos\!!widtha
+ \@@layerysiz \negated\sin\!!widtha
+ \advance\@@layerxsiz \negated\sin\!!dimena
+ \advance\@@layerysiz \cos\!!dimena
+ \ifdim\sin\points=\zeropoint
+ \@@layerxpos \zeropoint
+ \@@layerxoff \zeropoint
+ \@@layerypos \@@layerysiz
+ \if!!doneb
+ \@@layeryoff \!!deptha
+ \fi
+ \else
+ \@@layerypos \@@layerysiz
+ \@@layerxpos \negated\sin\!!dimena
+ \if!!donea
+ \@@layerxoff -\@@layerxsiz
+ \advance\@@layerxoff \negated\sin\!!heighta
+ \fi
+ \if!!doneb
+ \@@layeryoff \negated\sin\!!deptha
+ \fi
+ \fi
+ \dododorotatenextbox
+ \ifdim\sin\points=\zeropoint
+ \else
+ \wd\nextbox\if!!donea\negated\sin\!!heighta\else\@@layerxsiz\fi
+ \fi
+ \fi
+ \fi
+ % new, location=middle
+ \ifnum#2=\plusfour
+ \setbox\nextbox\vbox{\vskip-.5\!!heightb\hskip.5\!!heightb\flushnextbox}%
+ \nextboxwd\!!widthb
+ \nextboxht\!!heightb
+ \nextboxdp\!!depthb
+ \fi}
+
+\def\dorotatenextbox#1#2%
+ {\doifsomething{#1}
+ {\edef\@@rorotation{\realnumber{#1}}% get rid of leading zeros and spaces
+ \setbox\nextbox\vbox{\flushnextbox}% not really needed
+ \dodorotatenextbox\@@rorotation#2}%
+ \hbox{\boxcursor\flushnextbox}}
+
+\def\dodorotatebox#1% {angle} \hbox/\vbox/\vtop
+ {\bgroup\hbox\bgroup % compatibility hack
+ \dowithnextbox
+ {\dorotatenextbox{#1}\plusone
+ \egroup\egroup}}
+
+\def\dorotatebox#1% {angle} \hbox/\vbox/\vtop
+ {\ifcase#1\relax
+ \expandafter\gobbleoneargument
+ \else
+ \expandafter\dodorotatebox
+ \fi{#1}}
+
+\unexpanded\def\rotate % \bgroup: \rotate kan argument zijn
+ {\bgroup\complexorsimpleempty\rotate}
+
+% \def\complexrotate[#1]% framed met diepte !
+% {\getparameters[\??ro][#1]%
+% \processaction
+% [\@@rolocation]
+% [ \v!depth=>\!!counta\plusthree\donefalse,% depth fit - raw box
+% \v!fit=>\!!counta\plustwo \donefalse,% depth tight - raw box
+% \v!broad=>\!!counta\plusone \donefalse,% nodepth fit - raw box
+% \v!high=>\!!counta\plusone \donetrue ,% nodepth fit - framed
+% \v!middle=>\!!counta\plusfour \donefalse,% centered, keep dimensions
+% \s!default=>\!!counta\plusthree\donetrue ,% depth fit - framed
+% \s!unknown=>\!!counta\plusthree\donetrue ]% depth fit - framed
+% \ifdone
+% \def\docommand{\localframed[\??ro][#1,\c!location=]}%
+% \else
+% \let\docommand\relax
+% \fi
+% \dowithnextbox{\dorotatenextbox\@@rorotation\!!counta\egroup}\vbox\docommand}
+
+\setvalue{\??ro::\c!location::\v!depth }{\!!counta\plusthree\donefalse} % depth fit - raw box
+\setvalue{\??ro::\c!location::\v!fit }{\!!counta\plustwo \donefalse} % depth tight - raw box
+\setvalue{\??ro::\c!location::\v!broad }{\!!counta\plusone \donefalse} % nodepth fit - raw box
+\setvalue{\??ro::\c!location::\v!high }{\!!counta\plusone \donetrue } % nodepth fit - framed
+\setvalue{\??ro::\c!location::\v!middle }{\!!counta\plusfour \donefalse} % centered, keep dimensions
+\setvalue{\??ro::\c!location::\v!default}{\!!counta\plusthree\donetrue } % depth fit - framed
+
+\def\complexrotate[#1]% framed met diepte !
+ {\getparameters[\??ro][#1]%
+ \executeifdefined{\??ro::\c!location::\@@rolocation}{\!!counta\plusthree\donetrue}%
+ \ifdone
+ \def\docommand{\localframed[\??ro][#1,\c!location=]}%
+ \else
+ \let\docommand\relax
+ \fi
+ \dowithnextbox{\dorotatenextbox\@@rorotation\!!counta\egroup}\vbox\docommand}
+
+\presetlocalframed[\??ro]
+
+\def\setuprotate
+ {\dodoubleargument\getparameters[\??ro]}
+
+\setuprotate
+ [\c!rotation=90,
+ \c!location=\v!normal,
+ \c!width=\v!fit,
+ \c!height=\v!fit,
+ \c!offset=\v!overlay,
+ \c!frame=\v!off]
+
+% \dostepwiserecurse{0}{360}{10}
+% {\startlinecorrection[blank]
+% \hbox
+% {\expanded{\setuprotate[rotation=\recurselevel]}%
+% \traceboxplacementtrue
+% \hbox to .2\hsize{\hss\ruledhbox{\rotate[location=depth] {\ruledhbox{\bfb (depth)}}}}%
+% \hbox to .2\hsize{\hss\ruledhbox{\rotate[location=fit] {\ruledhbox{\bfb (fit)}}}}%
+% \hbox to .2\hsize{\hss\ruledhbox{\rotate[location=broad] {\ruledhbox{\bfb (broad)}}}}%
+% \hbox to .2\hsize{\hss\ruledhbox{\rotate[location=normal]{\ruledhbox{\bfb (normal)}}}}%
+% \hbox to .2\hsize{\hss\ruledhbox{\rotate[location=high] {\ruledhbox{\bfb (high)}}}}}
+% \stoplinecorrection}
+
+% to be used in some other places! todo!
+%
+% divides \hsize in fractions, will be made a bit more
+% clever and advanced when needed
+%
+% \horizontaldivision[n/m,elements,distance]
+%
+% \horizontaldivision[2/5,3,1em]
+% \horizontaldivision[2/5,3,1em]
+% \horizontaldivision[1/5,3,1em]
+%
+% \setuphorizontaldivision[afstand=,aantal=] (passend,passend)
+
+\def\??fr{@@fr}
+
+\def\setuphorizontaldivision
+ {\dodoubleargument\getparameters[\??fr]}
+
+\def\horizontaldivision
+ {\dosingleargument\dohorizontaldivision}
+
+\def\dohorizontaldivision[#1]%
+ {\dodohorizontaldivision[#1,,,,,,]}
+
+\def\dodohorizontaldivision[#1/#2,#3,#4,#5]%
+ {\doifelsenothing{#3}
+ {\doifelse\@@frn\v!fit
+ {\!!counta#2\relax}
+ {\!!counta\@@frn\relax}}
+ {\!!counta#3\relax}%
+ \doifelsenothing{#4}
+ {\doifelse\@@frdistance\v!fit
+ {\!!widtha\zeropoint}
+ {\!!widtha\@@frdistance}}
+ {\!!widtha#4}%
+ \advance\!!counta \minusone
+ \multiply\!!widtha \!!counta
+ \advance\hsize -\!!widtha
+ \divide\hsize #2\relax
+ \hsize#1\hsize}
+
+\setuphorizontaldivision
+ [\c!distance=\tfskipsize,
+ \c!n=\v!fit]
+
+%D This one is for Daniel Pittman, who wanted tight
+%D fractions. We show three versions. First the simple
+%D one using \type {\low} and \type {high}:
+%D
+%D \startbuffer
+%D \def\vfrac#1#2%
+%D {\hbox{\high{\tx#1\kern-.25em}/\low{\kern-.25em\tx#2}}}
+%D
+%D test \vfrac{1}{2} test \vfrac{123}{456} test
+%D \stopbuffer
+%D
+%D \typebuffer {\showmakeup\getbuffer}
+%D
+%D A better way to handle the kerning is the following, here
+%D we kind of assume that tye slash is symmetrical and has
+%D nearly zero width.
+%D
+%D \startbuffer
+%D \def\vfract#1#2%
+%D {\hbox{\high{\tx#1}\hbox to \zeropoint{\hss/\hss}\low{\tx#2}}}
+%D \stopbuffer
+%D
+%D \typebuffer {\showmakeup\getbuffer}
+%D
+%D The third and best alternative is the following:
+%D
+%D {\showmakeup\getbuffer}\crlf\getbuffer
+%D
+%D This time we measure the height of the \type {/} and
+%D shift over the maximum height and depths of this
+%D character and the fractional digits (we use 57 as
+%D sample). Here we combine all methods in one macros.
+
+\chardef\vulgarfractionmethod=3
+
+\definehspace[vulgarfraction][.25em] % [.15em]
+\definesymbol[vulgarfraction][/] % [\raise.2ex\hbox{/}]
+
+\unexpanded\def\vulgarfraction#1#2%
+ {\dontleavehmode
+ \hbox
+ {\def\vulgarfraction{vulgarfraction}%
+ \ifcase\vulgarfractionmethod
+ #1\symbol[\vulgarfraction]#2%
+ \or
+ \high{\tx#1\kern-\hspaceamount\empty\vulgarfraction}%
+ \symbol[\vulgarfraction]%
+ \low {\kern-\hspaceamount\empty\vulgarfraction\tx#2}%
+ \or
+ \high{\tx#1}%
+ \hbox to \zeropoint{\hss\symbol[\vulgarfraction]\hss}%
+ \low{\tx#2}%
+ \or
+ \setbox0\hbox{\symbol[\vulgarfraction]}%
+ \setbox2\hbox{\txx57}%
+ \raise\ht0\hbox{\lower\ht2\hbox{\txx#1}}%
+ \hbox to \zeropoint{\hss\symbol[\vulgarfraction]\hss}%
+ \lower\dp0\hbox{\raise\dp2\hbox{\txx#2}}%
+ \fi}}
+
+\ifx\vfrac\undefined \let\vfrac\vulgarfraction \fi
+
+%D \starttabulate
+%D \HL
+%D \NC \bf method \NC \bf visualization \NC\NR
+%D \HL
+%D \NC 0 \NC \chardef\vulgarfractionmethod0\vulgarfraction{1}{2} \NC\NR
+%D \NC 1 \NC \chardef\vulgarfractionmethod1\vulgarfraction{1}{2} \NC\NR
+%D \NC 2 \NC \chardef\vulgarfractionmethod2\vulgarfraction{1}{2} \NC\NR
+%D \NC 3 \NC \chardef\vulgarfractionmethod3\vulgarfraction{1}{2} \NC\NR
+%D \HL
+%D \stoptabulate
+
+%D Under construction:
+%D
+%D \starttyping
+%D \commalistsentence[aap,noot,mies]
+%D \commalistsentence[aap,noot]
+%D \commalistsentence[aap]
+%D \commalistsentence[a,b,c]
+%D \commalistsentence[a,b,c][{ \& },{ and }]
+%D \commalistsentence[a,b,c][+,-]
+%D \stoptyping
+
+\let\handlecommalistsentence\firstofoneargument
+
+\def\commalistsentenceone{and-1}
+\def\commalistsentencetwo{and-2}
+
+\def\commalistsentence
+ {\dodoubleempty\docommalistsentence}
+
+\def\docommalistsentence[#1][#2]%
+ {\bgroup
+ \getfromcommalist[#2][1]%
+ \ifx\commalistelement\empty
+ \def\@@commalistsentenceone{\labeltext\commalistsentenceone}%
+ \else
+ \let\@@commalistsentenceone\commalistelement
+ \fi
+ \getfromcommalist[#2][2]%
+ \ifx\commalistelement\empty
+ \def\@@commalistsentencetwo{\labeltext\commalistsentencetwo}%
+ \else
+ \let\@@commalistsentencetwo\commalistelement
+ \fi
+ \getcommalistsize[#1]%
+ \ifcase\commalistsize\relax
+ \def\serializedcommalist{#1}%
+ \else
+ \let\serializedcommalist\empty
+ \scratchcounter\zerocount
+ \def\docommand##1%
+ {\advance\scratchcounter \plusone
+ \ifnum\scratchcounter=\plusone
+ \scratchtoks{\handlecommalistsentence{##1}}%
+ \else
+ \ifnum\scratchcounter=\commalistsize
+ \appendtoks\@@commalistsentencetwo\handlecommalistsentence{##1}\to\scratchtoks
+ \else
+ \appendtoks\@@commalistsentenceone\handlecommalistsentence{##1}\to\scratchtoks
+ \fi
+ \fi}%
+ \processcommacommand[#1]\docommand
+ \edef\serializedcommalist{\the\scratchtoks}%
+ \fi
+ \serializedcommalist
+ \egroup}
+
+\def\commacommandsentence[#1]{\@EA\commalistsentence\@EA[#1]}
+
+\ifx\textcomma\undefined \def\textcomma{,} \fi
+
+\setuplabeltext [\s!nl] [and-1=\textcomma\ , and-2= en ]
+\setuplabeltext [\s!en] [and-1=\textcomma\ , and-2=\textcomma\ and ]
+\setuplabeltext [\s!de] [and-1=\textcomma\ , and-2= und ]
+
+%D \macros
+%D {somekindoftab}
+%D
+%D This macro can be used to create tabs:
+%D
+%D \starttyping
+%D \setupheadertexts[{\somekindoftab[alternative=horizontal]{\framed{\realfolio}}}]
+%D \setuptexttexts [{\somekindoftab[alternative=vertical] {\framed{\realfolio}}}]
+%D
+%D \starttext
+%D \showframe \dorecurse{10}{test\page}
+%D \stoptext
+%D \stoptyping
+
+\def\somekindoftab
+ {\dosingleempty\dosomekindoftab}
+
+\def\dosomekindoftab[#1]%
+ {\bgroup
+ \getparameters[xx]
+ [\c!alternative=\v!vertical,
+ \c!width=\textwidth,\c!height=\textheight,
+ \c!n=\lastpage,\c!m=\realpageno,
+ #1]%
+ \doifelse\xxalternative\v!vertical
+ {\dodosomekindoftab\vbox\vskip\xxheight}
+ {\dodosomekindoftab\hbox\hskip\xxwidth }}
+
+\def\dodosomekindoftab#1#2#3#4%
+ {#1 to #3 \bgroup
+ \forgetall
+ \ifnum\xxm>\plusone
+ #2\zeropoint \!!plus \the\numexpr\xxm -1\relax fill\relax
+ \fi
+ #4%
+ \ifnum\xxm<\xxn\relax
+ #2\zeropoint \!!plus \the\numexpr\xxn-\xxm\relax fill\relax
+ \fi
+ \egroup
+ \egroup}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-new.tex b/Master/texmf-dist/tex/context/base/core-new.tex
deleted file mode 100644
index b9b3ee43a5a..00000000000
--- a/Master/texmf-dist/tex/context/base/core-new.tex
+++ /dev/null
@@ -1,309 +0,0 @@
-%D \module
-%D [ file=core-nav,
-%D version=1995.01.01,
-%D title=\CONTEXT\ Core Macros,
-%D subtitle=New ones,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{Context Core Macros / New Ones}
-
-\unprotect
-
-\let\startsetups\relax % to please dep checker
-\let\stopsetups \relax % to please dep checker
-
-\expanded
- {\long\def\@EA\noexpand\csname\e!start\v!setups\endcsname
- {\begingroup\noexpand\doifnextcharelse[%
- {\noexpand\startsetupsA\@EA\noexpand\csname\e!stop\v!setups\endcsname}
- {\noexpand\startsetupsB\@EA\noexpand\csname\e!stop\v!setups\endcsname}}}
-
-\letvalue{\e!stop\v!setups}\relax
-
-\unexpanded \def\setups{\doifnextcharelse\bgroup\dosetupsA\dosetupsB} % {..} or [..]
-\unexpanded \def\setup {\doifnextcharelse\bgroup\dosetups \dosetupsC} % {..} or [..]
-
-\def\dosetupsA #1{\cleanuplabel{#1}\processcommacommand[\cleanlabel]\dosetups} % {..}
-\def\dosetupsB[#1]{\cleanuplabel{#1}\processcommacommand[\cleanlabel]\dosetups} % [..]
-\def\dosetupsC[#1]{\cleanuplabel{#1}\dosetups\cleanlabel} % [..]
-
-% \def\dosetups#1% the grid option will be extended to other main modes
-% {\executeifdefined{\??su\ifgridsnapping\v!grid\fi:#1}
-% {\executeifdefined{\??su :#1}\gobbleoneargument}\empty} % takes one argument
-%
-% \def\setupwithargument#1% the grid option will be extended to other main modes
-% {\executeifdefined{\??su:#1}\gobbleoneargument}
-
-% better:
-
-% \def\dosetups#1% the grid option will be extended to other main modes
-% {\executeifdefined{\??su\ifgridsnapping\v!grid\fi:#1}
-% {\executeifdefined{\??su :#1}\gobbleoneargument}\empty} % takes one argument
-%
-% \def\setupwithargument#1% the grid option will be extended to other main modes
-% {\executeifdefined{\??su:#1}\gobbleoneargument}
-
-% faster:
-
-\letvalue{\??su:\letterpercent}\gobbleoneargument
-
-\def\dosetups#1% the grid option will be extended to other main modes
- {\csname\??su
- \ifgridsnapping
- \ifcsname\??su\v!grid:#1\endcsname\v!grid:#1\else\ifcsname\??su:#1\endcsname:#1\else:\letterpercent\fi\fi
- \else
- \ifcsname\??su:#1\endcsname:#1\else:\letterpercent\fi
- \fi
- \endcsname\empty} % takes one argument
-
-\def\setupwithargument#1% the grid option will be extended to other main modes
- {\csname\??su:\ifcsname\??su:#1\endcsname#1\else\letterpercent\fi\endcsname}
-
-\let\directsetup\dosetups
-
-% somehow fails ...
-%
-% \letvalue{\??su:..}\gobbleoneargument
-%
-% \def\dosetups#1% the grid option will be extended to other main modes
-% {\csname \??su
-% \ifcsname\??su\ifgridsnapping\v!grid\fi:#1\endcsname\v!grid:#1\else
-% \ifcsname\??su :#1\endcsname :#1\else
-% :..\fi\fi
-% \endcsname\empty} % takes one argument
-%
-% \def\setupwithargument#1% the grid option will be extended to other main modes
-% {\csname\??su:\ifcsname\??su:#1\endcsname#1\else..\fi\endcsname}
-
-\let\directsetup\dosetups
-
-\def\doifsetupselse#1% to be done: grid
- {\doifdefinedelse{\??su:#1}}
-
-\chardef\setupseolmode\plusone
-
-\def\startsetups {\xxstartsetups\plusone \stopsetups } \let\stopsetups \relax
-\def\startlocalsetups{\xxstartsetups\plusone \stoplocalsetups} \let\stoplocalsetups\relax
-\def\startrawsetups {\xxstartsetups\zerocount\stoprawsetups } \let\stoprawsetups \relax
-\def\startxmlsetups {\xxstartsetups\plustwo \stopxmlsetups } \let\stopxmlsetups \relax
-
-\def\xxstartsetups#1#2%
- {\begingroup\chardef\setupseolmode#1\doifnextcharelse[{\startsetupsA#2}{\startsetupsB#2}}
-
-\def\startsetupsA#1% [ ] delimited
- {\ifcase\setupseolmode\or\catcode`\^^M\@@ignore\or\catcode`\^^M\@@ignore\catcode`\|\@@other\fi
- \dotripleempty\dostartsetups[#1]}
-
-\def\startsetupsB#1#2 % space delimited
- {\ifcase\setupseolmode\or\catcode`\^^M\@@ignore\or\catcode`\^^M\@@ignore\catcode`\|\@@other\fi
- \dodostartsetups#1\empty{#2}}
-
-\def\startsetupsC[#1][#2][#3]{\dodostartsetups#1{#2}{#3}} % [..] [..]
-\def\startsetupsD[#1][#2][#3]{\dodostartsetups#1\empty{#2}} % [..]
-
-\def\dostartsetups
- {\ifthirdargument\@EA\startsetupsC\else\@EA\startsetupsD\fi}
-
-% \long\def\dodostartsetups#1#2#3% watch out: not \grabuntil
-% {\dograbuntil#1{\endgroup\dodoglobal\long\setvalue{\??su#2:#3}}} % \doglobal
-%
-% better:
-
-% \long\def\dodostartsetups#1#2#3% watch out: not \grabuntil
-% {\cleanuplabel{\??su#2:#3}\dograbuntil#1{\endgroup\dodoglobal\long\setvalue\cleanlabel}} % \doglobal
-
-\long\def\dodostartsetups#1#2#3%
- {\cleanuplabel{\??su#2:#3}%
- \long\def\dododostartsetups##1#1{\endgroup\dodoglobal\long\setvalue\cleanlabel####1{##1}}\dododostartsetups}
-
-\def\systemsetupsprefix{*}
-
-\def\systemsetups#1{\dosetups{\systemsetupsprefix#1}}
-
-\def\resetsetups[#1]% see x-fo for usage
- {\ifundefined{\??su\ifgridsnapping\v!grid\fi:#1}%
- \dodoglobal\letbeundefined{\??su:#1}%
- \else
- \dodoglobal\letbeundefined{\??su\ifgridsnapping\v!grid\fi:#1}%
- \fi}
-
-% or
-%
-% \def\resetsetups[#1]%
-% {\letbeundefined
-% {\??su:%
-% \ifundefined{\??su\ifgridsnapping\v!grid\fi:#1}#1\else\ifgridsnapping\v!grid\fi%
-% #1}}
-
-%D new and beta
-
-% \def\defineshortcut
-% {\dodoubleargument\dodefineshortcut}
-%
-% \bgroup
-%
-% \catcode`\<=\@@active
-%
-% \gdef\dodefineshortcut[#1][#2]%
-% {\ifsecondargument
-% \catcode`\<=\@@active
-% \def<{\ifmmode\expandafter\normalless\else\expandafter\doshortcut\fi}%
-% \getparameters[\??te#1][\c!commands=,\c!command=,\c!style=,\c!color=,#2]%
-% \else
-% \defineshortcut[][#1]%
-% \fi}
-%
-% \egroup
-%
-% \def\doshortcut
-% {\bgroup
-% \catcode`\>=\@@other
-% \dodoshortcut}
-%
-% \def\dodoshortcut#1>%
-% {\def\shortcut{#1}%
-% \dododoshortcut#1:\end}
-%
-% \def\dododoshortcut#1:#2\end
-% {\doifelsenothing{#2}
-% {\doifundefinedelse{\??te\c!commands}
-% {\shortcut}
-% {\@EA\dodododoshortcut\@EA\??te\@EA:\shortcut:\end}}
-% {\doifundefinedelse{\??te#1\c!commands}
-% {\shortcut}
-% {\dodododoshortcut\??te#1:#2\end}}%
-% \egroup}
-%
-% \def\dodododoshortcut#1:#2:\end
-% {\getvalue{#1\c!commands}%
-% \doattributes{#1}\c!style\c!color{\getvalue{#1\c!command}{#2}}}
-
-\def\defineshortcut
- {\dotripleargument\dodefineshortcut}
-
-\def\dodefineshortcut[#1][#2][#3]%
- {\ifthirdargument
- \ConvertConstantAfter\doifelse{#1}{}
- {\dododefineshortcut[<>][#2][#3]}
- {\dododefineshortcut[#1][#2][#3]}%
- \else\ifsecondargument
- \dododefineshortcut[<>][#1][#2]%
- \else
- \dododefineshortcut[<>][][#1]%
- \fi\fi}
-
-\def\dododefineshortcut[#1#2][#3][#4]% #1 is the trigger, #2 the delimiter/tag
- {\doifundefined{\??te\??te\string#2}{\letvalue{\??te\??te\string#2}=#1}%
- \defineactivecharacter #1 {\@EA\doshortcut\string#2} %
- \getparameters
- [\??te\string#2#3]
- [\c!commands=,\c!command=,\c!style=,\c!color=,#4]}
-
-\def\doshortcut#1%
- {\ifmmode
- \getvalue{\??te\??te#1}%
- \else
- \bgroup
- \catcode`#1=\@@other
- \def\dodoshortcut##1#1%
- {\def\shorttag{\??te#1}%
- \def\shortcut{##1}%
- \dododoshortcut##1:\end}%
- \@EA\dodoshortcut
- \fi}
-
-\def\dododoshortcut#1:#2\end
- {\doifelsenothing{#2}
- {\doifundefinedelse{\shorttag\c!commands}
- {\shortcut}
- {\@EA\dodododoshortcut\@EA\shorttag\@EA:\shortcut:\end}}
- {\doifundefinedelse{\shorttag#1\c!commands}
- {\shortcut}
- {\dodododoshortcut\shorttag#1:#2\end}}%
- \egroup}
-
-\def\dodododoshortcut#1:#2:\end
- {\getvalue{#1\c!commands}%
- \doattributes{#1}\c!style\c!color{\getvalue{#1\c!command}{#2}}}
-
-%D \defineshortcut [style=type]
-%D \defineshortcut [b] [style=bold]
-%D \defineshortcut [e] [style=\em]
-%D \defineshortcut [t] [style=type]
-%D \defineshortcut [c] [style=cap]
-%D \defineshortcut [k] [style=cap]
-%D \defineshortcut [u] [style=type,command=\hyphenatedurl]
-%D
-%D \startlines
-%D test <ziezo> test
-%D test test <t:ziezo>
-%D test test <b:ziezo>
-%D test test <w:ziezo>
-%D zus<>zo zus<:>zo zus<::>zo
-%D test test <t:ziezo> dat (ziezo)
-%D test test <t::ziezo> dat (:ziezo)
-%D test test <t:ziezo:> dat (ziezo:)
-%D test test <t:zi:ezo:> dat (zi:ezo:)
-%D well, <u:http://www.pragma-ade.nl> looks fuzzy
-%D $10<20$
-%D \stoplines
-%D
-%D \defineshortcut [<>] [i] [style=\it]
-%D \defineshortcut [()] [b] [style=\bf]
-%D \defineshortcut [++] [s] [style=\sl]
-%D \defineshortcut [//] [u] [style=\underbars]
-%D \defineshortcut [--] [a] [style=\overstrike]
-%D
-%D \startlines
-%D it seems <i:to work> well
-%D it seems (b:to work) well
-%D it seems +s:to work+ well
-%D it seems /u:to work/ well
-%D it seems -a:to work- well
-%D \stoplines
-
-% \def\setupenv{\dodoubleargument\rawgetparameters[\??en]}
-%
-% \def\doifenvelse#1{\doifdefinedelse{\??en#1}} % speed up
-% \def\doifenv #1{\doifdefined {\??en#1}} % speed up
-% \def\doifnotenv #1{\doifundefined {\??en#1}} % speed up
-%
-% \def\env#1{\csname\??en#1\endcsname}
-%
-% \beginTEX
-%
-% \def\envvar#1#2%
-% {\@EA\ifx\csname\??en#1\endcsname\relax
-% #2\else\csname\??en#1\endcsname
-% \fi}
-%
-% \endTEX
-%
-% \beginETEX \ifcsname
-%
-% \def\envvar#1#2%
-% {\ifcsname\??en#1\endcsname
-% \csname\??en#1\endcsname\else#2%
-% \fi}
-%
-% \endETEX
-
-% low level change, now also accessible as \getvariable{environment}{...}; the
-% next macros will become obsolete some day in favor of normal variables
-
-\def\s!environment{environment}
-
-\def\setupenv {\dotripleargument\dosetvariables[\getrawparameters][\s!environment]}
-\def\doifenvelse{\doifelsevariable \s!environment}
-\def\doifenv {\doifvariable \s!environment}
-\def\doifnotenv {\doifnotvariable \s!environment}
-\def\env {\getvariable \s!environment}
-\def\envvar {\getvariabledefault\s!environment}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-obj.lua b/Master/texmf-dist/tex/context/base/core-obj.lua
deleted file mode 100644
index b94719993f2..00000000000
--- a/Master/texmf-dist/tex/context/base/core-obj.lua
+++ /dev/null
@@ -1,36 +0,0 @@
-if not modules then modules = { } end modules ['core-obj'] = {
- version = 1.001,
- comment = "companion to core-obj.tex",
- author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
- copyright = "PRAGMA ADE / ConTeXt Development Team",
- license = "see context related readme files"
-}
-
---[[ldx--
-<p>We save object references in the main utility table. Objects are
-reusable components.</p>
---ldx]]--
-
-if not jobs then jobs = { } end
-if not job then jobs['main'] = { } end job = jobs['main']
-if not job.objects then job.objects = { } end
-
-function job.getobjectreference(tag,default)
- if job.objects[tag] then
- tex.sprint(job.objects[tag][1] or default)
- else
- tex.sprint(default)
- end
-end
-
-function job.getobjectreferencepage(tag,default)
- if job.objects[tag] then
- tex.sprint(job.objects[tag][2] or default)
- else
- tex.sprint(default)
- end
-end
-
-function job.doifobjectreference(tag)
- cs.testcase(job.objects[tag])
-end
diff --git a/Master/texmf-dist/tex/context/base/core-obj.mkii b/Master/texmf-dist/tex/context/base/core-obj.mkii
deleted file mode 100644
index 361c1a9798a..00000000000
--- a/Master/texmf-dist/tex/context/base/core-obj.mkii
+++ /dev/null
@@ -1,74 +0,0 @@
-%D \module
-%D [ file=core-obj,
-%D version=1998.01.15,
-%D title=\CONTEXT\ Core Macros,
-%D subtitle=Object Handling,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%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
-
-\def\mkcheckobjectreferences
- {\startnointerference
- \protectlabels
- \doutilities{objectreferences}\jobname\empty\relax\relax
- \global\let\checkobjectreferences\relax
- \stopnointerference}
-
-\def\setobjectreferences
- {\def\objectreference##1##2##3##4%
- {\ifundefined{\r!driver##1::##2}%
- \setxvalue{\r!driver##1::##2}{{##3}{##4}}%
- \else
- \showmessage\m!references{31}{[##1 ##2=>##3/##4]}%
- \fi}}
-
-\def\resetobjectreferences
- {\let\objectreference\gobblefourarguments}
-
-\resetobjectreferences
-
-\def\mkregisterobjectreference#1#2#3%
- {\checkobjectreferences
- \blabelgroup
- \expanded{\writeutilitycommand{\noexpand\objectreference{#1}{#2}{#3}{\noexpand\realfolio}}}%
- \setxvalue{\r!driver#1::#2}{{#3}{\noexpand\realfolio}}%
- \elabelgroup}
-
-\def\mkoverloadobjectreference#1#2#3%
- {\checkobjectreferences
- \blabelgroup
- \setxvalue{\r!driver#1::#2}{{#3}{\noexpand\realfolio}}%
- \elabelgroup}
-
-\def\dodogetobjectreference#1#2#3#4#5%
- {\checkobjectreferences
- \blabelgroup
- \ifundefined{\r!driver#3::#4}%
- \showmessage\m!references{30}{[#3 #4=>#3/#4]}%
- \xdef#5{#2{#3}{#4}}%
- \else
- \xdef#5{\@EAEAEA#1\csname\r!driver#3::#4\endcsname}%
- \fi
- \elabelgroup}
-
-\def\mkgetobjectreference
- {\dodogetobjectreference\firstoftwoarguments\defaultobjectreference}
-
-\def\mkgetobjectreferencepage
- {\dodogetobjectreference\secondoftwoarguments\defaultobjectpage}
-
-\def\mkifobjectreferencefoundelse#1#2%
- {\checkobjectreferences
- \blabelgroup \ifcsname\r!driver#1::#2\endcsname
- \elabelgroup \expandafter\firstoftwoarguments
- \else
- \elabelgroup \expandafter\secondoftwoarguments
- \fi}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-obj.mkiv b/Master/texmf-dist/tex/context/base/core-obj.mkiv
deleted file mode 100644
index 022b6908d45..00000000000
--- a/Master/texmf-dist/tex/context/base/core-obj.mkiv
+++ /dev/null
@@ -1,55 +0,0 @@
-%D \module
-%D [ file=core-obj,
-%D version=2006.10.16,
-%D title=\CONTEXT\ Core Macros,
-%D subtitle=Object Handling,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%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
-
-\let\objectreference\gobblefourarguments % catch mkii tuo stuff
-
-\registerctxluafile{core-obj}{1.001}
-
-\appendtoks
- \immediatewriteutilitytua{if not job.objects then job.objects = { } end}%
- \immediatewriteutilitytua{local ob = job.objects}%
-\to \everyopenutilities
-
-\def\mkregisterobjectreference#1#2#3%
- {\blabelgroup
- \expanded{\writeutilitytua{ob['#1::#2']={"#3","\noexpand\realfolio"}}}%
- \expanded{\ctxlua{job.objects['#1::#2']={"#3","\noexpand\realfolio"}}}%
- \elabelgroup}
-
-\def\mkoverloadobjectreference#1#2#3%
- {\blabelgroup
- \expanded{\ctxlua{job.objects['#1::#2']={"#3","\noexpand\realfolio"}}}%
- \elabelgroup}
-
-\def\mkgetobjectreference#1#2#3%
- {\blabelgroup
- \xdef#3{\ctxlua{job.getobjectreference ('#1::#2',"\defaultobjectreference{#1}{#2}")}}%
- \elabelgroup}
-
-\def\mkgetobjectreferencepage#1#2#3%
- {\blabelgroup
- \xdef#3{\ctxlua{job.getobjectreferencepage('#1::#2',"\defaultobjectpage{#1}{#2}")}}%
- \elabelgroup}
-
-% \def\doifobjectreferencefoundelse#1#2
-% {\ctxlua{job.doifobjectreference('#1::#2')}}
-
-\def\doifobjectreferencefoundelse#1#2%
- {\blabelgroup
- \ctxlua{job.doifobjectreference('#1::#2')}%
- {\elabelgroup\firstoftwoarguments}
- {\elabelgroup\secondoftwoarguments}}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-par.tex b/Master/texmf-dist/tex/context/base/core-par.mkii
index aa58ebb1ed7..0b283b294a9 100644
--- a/Master/texmf-dist/tex/context/base/core-par.tex
+++ b/Master/texmf-dist/tex/context/base/core-par.mkii
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{ConTeXt Pararaph Tricks}
+\writestatus{loading}{ConTeXt Core Macros / Pararaph Tricks}
\unprotect
diff --git a/Master/texmf-dist/tex/context/base/core-pos.lua b/Master/texmf-dist/tex/context/base/core-pos.lua
deleted file mode 100644
index b1235a0dc0d..00000000000
--- a/Master/texmf-dist/tex/context/base/core-pos.lua
+++ /dev/null
@@ -1,94 +0,0 @@
-if not modules then modules = { } end modules ['core-pos'] = {
- version = 1.001,
- comment = "companion to core-pos.tex",
- author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
- copyright = "PRAGMA ADE / ConTeXt Development Team",
- license = "see context related readme files"
-}
-
---[[ldx--
-<p>We save positional information in the main utility table. Not only
-can we store much more information in <l n='lua'/> but it's also
-more efficient.</p>
---ldx]]--
-
-if not jobs then jobs = { } end
-if not job then jobs['main'] = { } end job = jobs['main']
-if not job.positions then job.positions = { } end
-
-local texprint = tex.print
-local positions = job.positions
-local concat = table.concat
-local format = string.format
-
-function job.MPp(id) local jpi = positions[id] texprint((jpi and jpi[1]) or '0' ) end
-function job.MPx(id) local jpi = positions[id] texprint((jpi and jpi[2]) or '0pt') end
-function job.MPy(id) local jpi = positions[id] texprint((jpi and jpi[3]) or '0pt') end
-function job.MPw(id) local jpi = positions[id] texprint((jpi and jpi[4]) or '0pt') end
-function job.MPh(id) local jpi = positions[id] texprint((jpi and jpi[5]) or '0pt') end
-function job.MPd(id) local jpi = positions[id] texprint((jpi and jpi[6]) or '0pt') end
-
--- the following are only for MP so there we can leave out the pt
-
-function job.MPxy(id)
- local jpi = positions[id]
- if jpi then
- texprint(format('(%s,%s)',jpi[2],jpi[3]))
- else
- texprint('(0,0)')
- end
-end
-
-function job.MPll(id)
- local jpi = positions[id]
- if jpi then
- texprint(format('(%s,%s-%s)',jpi[2],jpi[3],jpi[6]))
- else
- texprint('(0,0)')
- end
-end
-function job.MPlr(id)
- local jpi = positions[id]
- if jpi then
- texprint(format('(%s+%s,%s-%s)',jpi[2],jpi[4],jpi[3],jpi[6]))
- else
- texprint('(0,0)')
- end
-end
-function job.MPur(id)
- local jpi = positions[id]
- if jpi then
- texprint(format('(%s+%s,%s+%s)',jpi[2],jpi[4],jpi[3],jpi[5]))
- else
- texprint('(0,0)')
- end
-end
-function job.MPul(id)
- local jpi = positions[id]
- if jpi then
- texprint(format('(%s,%s+%s)',jpi[2],jpi[3],jpi[5]))
- else
- texprint('(0,0)')
- end
-end
-
--- todo
-
-function job.MPpos(id)
- local jpi = positions[id]
- if jpi then
- texprint(concat(jpi,',',1,6))
- else
- texprint('0,0,0,0,0,0')
- end
-end
-
-function job.MPplus(id,n,default)
- local jpi = positions[id]
- texprint((jpi and jpi[n]) or default)
-end
-
-function job.MPrest(id,default)
- local jpi = positions[id]
- texprint((jpi and jpi[8]) or default) -- was 7, bugged
-end
diff --git a/Master/texmf-dist/tex/context/base/core-pos.mkii b/Master/texmf-dist/tex/context/base/core-pos.mkii
deleted file mode 100644
index 754673cfa30..00000000000
--- a/Master/texmf-dist/tex/context/base/core-pos.mkii
+++ /dev/null
@@ -1,184 +0,0 @@
-%D \module
-%D [ file=core-pos,
-%D version=1999.08.01,
-%D title=\CONTEXT\ Core Macros,
-%D subtitle=Positioning Support,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%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 A unique prefix used for storing data.
-
-\def\POSprefix{POS::}
-
-%D Reading form the utility file.
-
-\def\pxypos {\pospxy} % obsolete
-\def\pxyposwhd {\pospxywhd} % obsolete
-\def\pxyposplus{\pospxyplus} % obsolete
-
-\def\resetpositions
- {\let\pospxy \gobblefourarguments
- \let\pospxywhd \gobblesevenarguments
- \let\pospxyplus\gobbleeightarguments}
-
-\def\setpositions
- {\let\pospxy \setpospxy
- \let\pospxywhd \setpospxywhd
- \let\pospxyplus\setpospxyplus}
-
-%D We need to initialize.
-
-\resetpositions
-
-\addutilityreset{positions}
-
-%D Core set macros:
-
-\def\setpospxy#1#2#3#4%
- {\@EA\xdef\csname\POSprefix#1\endcsname
- {\number#2,%
- \the\dimexpr#3\ifnum\positionanchormode=\plusone-\MPx\pageanchor\fi\relax,%
- \the\dimexpr#4\ifnum\positionanchormode=\plusone-\MPy\pageanchor\fi\relax}}
-
-\def\setpospxywhd#1#2#3#4#5#6#7%
- {\@EA\xdef\csname\POSprefix#1\endcsname
- {\number#2,%
- \the\dimexpr#3\ifnum\positionanchormode=\plusone-\MPx\pageanchor\fi\relax,%
- \the\dimexpr#4\ifnum\positionanchormode=\plusone-\MPy\pageanchor\fi\relax,%
- \the\dimexpr#5\relax,%
- \the\dimexpr#6\relax,%
- \the\dimexpr#7\relax}}
-
-\def\setpospxyplus#1#2#3#4#5#6#7#8%
- {\@EA\xdef\csname\POSprefix#1\endcsname
- {\number#2,%
- \the\dimexpr#3\ifnum\positionanchormode=\plusone-\MPx\pageanchor\fi\relax,%
- \the\dimexpr#4\ifnum\positionanchormode=\plusone-\MPy\pageanchor\fi\relax,%
- \the\dimexpr#5\relax,%
- \the\dimexpr#6\relax,%
- \the\dimexpr#7\relax,%
- #8}}
-
-%D Sometimes we want to trick the position handler a bit:
-
-\def\replacepospxywhd#1#2#3#4#5#6#7%
- {\@EA\xdef\csname\POSprefix#1\endcsname
- {\number#2,%
- \the\dimexpr#3\relax,%
- \the\dimexpr#4\relax,%
- \the\dimexpr#5\relax,%
- \the\dimexpr#6\relax,%
- \the\dimexpr#7\relax}}
-
-%D Writing to the utility file.
-
-\def\dolazysaveposition#1#2#3#4% tag page x y
- {\expanded{\writeutilitycommand{\noexpand\pospxy
- {#1}{#2}{#3}{#4}}}}
-
-\def\dolazysavepositionwhd#1#2#3#4#5#6#7% tag page x y w h d
- {\expanded{\writeutilitycommand{\noexpand\pospxywhd
- {#1}{#2}{#3}{#4}{#5}{#6}{#7}}}}
-
-\def\dolazysavepositionplus#1#2#3#4#5#6#7#8% tag page x y w h d list
- {\expanded{\writeutilitycommand{\noexpand\pospxyplus
- {#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}}}}
-
-\def\dosaveposition#1#2#3#4% tag page x y
- {\expanded{\immediatewriteutilitycommand{\noexpand\pospxy
- {#1}{#2}{#3}{#4}}}}
-
-\def\dosavepositionwhd#1#2#3#4#5#6#7% tag page x y w h d
- {\expanded{\immediatewriteutilitycommand{\noexpand\pospxywhd
- {#1}{#2}{#3}{#4}{#5}{#6}{#7}}}}
-
-\def\dosavepositionplus#1#2#3#4#5#6#7#8% tag page x y w h d list
- {\expanded{\immediatewriteutilitycommand{\noexpand\pospxyplus
- {#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}}}}
-
-\def\MPp {\doMPxyhdwlr\doMPp }
-\def\MPx {\doMPxyhdwlr\doMPx }
-\def\MPy {\doMPxyhdwlr\doMPy }
-\def\MPw {\doMPxyhdwlr\doMPw }
-\def\MPh {\doMPxyhdwlr\doMPh }
-\def\MPd {\doMPxyhdwlr\doMPd }
-\def\MPxy {\doMPxyhdwlr\doMPxy }
-\def\MPll {\doMPxyhdwlr\doMPll }
-\def\MPlr {\doMPxyhdwlr\doMPlr }
-\def\MPur {\doMPxyhdwlr\doMPur }
-\def\MPul {\doMPxyhdwlr\doMPul }
-\def\MPpos{\doMPxyhdwlr\doMPpos}
-
-\def\doMPp #1,#2,#3,#4,#5,#6,#7\relax{#1}
-\def\doMPx #1,#2,#3,#4,#5,#6,#7\relax{#2}
-\def\doMPy #1,#2,#3,#4,#5,#6,#7\relax{#3}
-\def\doMPw #1,#2,#3,#4,#5,#6,#7\relax{#4}
-\def\doMPh #1,#2,#3,#4,#5,#6,#7\relax{#5}
-\def\doMPd #1,#2,#3,#4,#5,#6,#7\relax{#6}
-\def\doMPxy #1,#2,#3,#4,#5,#6,#7\relax{(#2,#3)}
-\def\doMPll #1,#2,#3,#4,#5,#6,#7\relax{(#2,#3-#6)}
-\def\doMPlr #1,#2,#3,#4,#5,#6,#7\relax{(#2+#4,#3-#6)}
-\def\doMPur #1,#2,#3,#4,#5,#6,#7\relax{(#2+#4,#3+#5)}
-\def\doMPul #1,#2,#3,#4,#5,#6,#7\relax{(#2,#3+#5)}
-\def\doMPpos#1,#2,#3,#4,#5,#6,#7\relax{#1,#2,#3,#4,#5,#6}
-
-\def\doMPxyhdwlr#1#2%
- {\ifcsname\POSprefix#2\endcsname
- \@EA\@EA\@EA#1\csname\POSprefix#2\endcsname,0pt,0pt,0pt,0pt\relax
- \else
- #10,0pt,0pt,0pt,0pt,0pt,0pt\relax
- \fi}
-
-% \def\doMPxyhdwlr#1#2% evt kan \s!unknown leeg zijn
-% {\@EA\@EA\@EA#1\csname\POSprefix
-% \ifcsname\POSprefix#2\endcsname#2\else\s!unknown\fi\endcsname
-% ,0pt,0pt,0pt,0pt\relax}
-%
-% \setvalue{\POSprefix\s!unknown}{0,0pt,0pt}
-
-\def\MPplus {\MPdoplus\doMPplus}
-\def\MPrest#1{\MPdoplus\doMPrest{#1}{}}
-
-\def\MPdoplus#1#2#3#4%
- {\ifcsname\POSprefix#2\endcsname
- \@EA\@EA\@EA#1\csname\POSprefix#2\endcsname,,,,,,,,,\relax{#3}%
- \else
- #4%
- \fi}
-
-\def\doMPplus#1,#2,#3,#4,#5,#6,%
- {\dodoMPplus}
-
-\def\dodoMPplus#1,#2,#3,#4,#5,#6,#7,#8\relax#9%
- {\ifcase#9\or#1\or#2\or#3\or#4\or#5\or#6\or#7\else\dododoMPplus#8\relax{#9}\fi}
-
-\def\dododoMPplus#1,#2,#3,#4,#5,#6,#7,#8\relax#9%
- {\ifcase#9\or\or\or\or\or\or\or\or#1\or#2\or#3\or#4\or#5\or#6\or#7\fi}
-
-\def\doMPrest#1,#2,#3,#4,#5,#6,#7,,#8\relax#9%
- {#7}
-
-%D Testing:
-
-\def\doifpositionelse#1%
- {\ifcsname\POSprefix#1\endcsname
- \expandafter\firstoftwoarguments
- \else
- \expandafter\secondoftwoarguments
- \fi}
-
-%D Copying:
-
-\def\copyposition#1#2%
- {\ifcsname\POSprefix#2\endcsname
- \global\@EA\let\csname\POSprefix#1\@EA\endcsname\csname\POSprefix#2\endcsname
- \fi}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-pos.mkiv b/Master/texmf-dist/tex/context/base/core-pos.mkiv
deleted file mode 100644
index ad57a8ed1b2..00000000000
--- a/Master/texmf-dist/tex/context/base/core-pos.mkiv
+++ /dev/null
@@ -1,65 +0,0 @@
-%D \module
-%D [ file=core-pos,
-%D version=2006.09.18,
-%D title=\CONTEXT\ Core Macros,
-%D subtitle=Positioning Support,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%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
-
-\registerctxluafile{core-pos}{1.001}
-
-\appendtoks
- \immediatewriteutilitytua{if not job.positions then job.positions = { } end}%
- \immediatewriteutilitytua{local jp = job.positions}%
-\to \everyopenutilities
-
-\def\replacepospxywhd#1#2#3#4#5#6#7%
- {\ctxlua{job.positions['#1']={\number#2,"\the\dimexpr#3\relax","\the\dimexpr#4\relax",%
- "\the\dimexpr#5\relax","\the\dimexpr#6\relax","\the\dimexpr#7\relax"}}}
-
-\def\dolazysaveposition#1#2#3#4%
- {\expanded{\writeutilitytua{jp['#1']={#2,"#3","#4"}}}}
-
-\def\dolazysavepositionwhd#1#2#3#4#5#6#7%
- {\expanded{\writeutilitytua{jp['#1']={#2,"#3","#4","#5","#6","#7"}}}}
-
-\def\dolazysavepositionplus#1#2#3#4#5#6#7#8%
- {\expanded{\writeutilitytua{jp['#1']={#2,"#3","#4","#5","#6","#7","#8"}}}}
-
-\def\dosaveposition#1#2#3#4% tag page x y
- {\expanded{\immediatewriteutilitytua{jp['#1']={#2,"#3","#4"}}}}
-
-\def\dosavepositionwhd#1#2#3#4#5#6#7% tag page x y w h d
- {\expanded{\immediatewriteutilitytua{jp['#1']={#2,"#3","#4","#5","#6","#7"}}}}
-
-\def\dosavepositionplus#1#2#3#4#5#6#7#8% tag page x y w h d list
- {\expanded{\immediatewriteutilitytua{jp['#1']={#2,"#3","#4","#5","#6","#7","#8"}}}}
-
-\def\MPp #1{\ctxlua{job.MPp("#1")}}
-\def\MPx #1{\ctxlua{job.MPx("#1")}}
-\def\MPy #1{\ctxlua{job.MPy("#1")}}
-\def\MPw #1{\ctxlua{job.MPw("#1")}}
-\def\MPh #1{\ctxlua{job.MPh("#1")}}
-\def\MPd #1{\ctxlua{job.MPd("#1")}}
-\def\MPxy #1{\ctxlua{job.MPxy("#1")}}
-\def\MPll #1{\ctxlua{job.MPll("#1")}}
-\def\MPlr #1{\ctxlua{job.MPlr("#1")}}
-\def\MPur #1{\ctxlua{job.MPur("#1")}}
-\def\MPul #1{\ctxlua{job.MPul("#1")}}
-\def\MPpos#1{\ctxlua{job.MPpos("#1")}}
-
-\def\MPplus#1#2#3{\ctxlua{job.MPplus("#1",#2,"#3")}}
-\def\MPrest #1#2{\ctxlua{job.MPrest("#1","#2")}}
-
-\def\doifpositionelse#1{\ctxlua{cs.testcase(job.positions['#1'])}}
-
-\def\copyposition#1#2{\ctxlua{job.positions['#1']=job.positions['#2']}}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-reg.lua b/Master/texmf-dist/tex/context/base/core-reg.lua
deleted file mode 100644
index f490f2ccaab..00000000000
--- a/Master/texmf-dist/tex/context/base/core-reg.lua
+++ /dev/null
@@ -1,185 +0,0 @@
--- filename : core-reg.lua
--- comment : companion to core-reg.tex
--- author : Hans Hagen, PRAGMA-ADE, Hasselt NL
--- copyright: PRAGMA ADE / ConTeXt Development Team
--- license : see context related readme files
-
-if not versions then versions = { } end versions['core-reg'] = 1.001
-if not jobs then jobs = { } end
-if not job then jobs['main'] = { } end job = jobs['main']
-if not job.registers then job.registers = { } end
-
-function job.defineregister(id)
- if not job.registers[id] then
- job.registers[id] = { }
- end
-end
-
--- {'e','3','','test+test+test','2--0-0-0-0-0-0-0--1','1'}
-
--- load index (we could rease the original entry afterwards, freeing memory)
-
--- index sorting
-
-sorters = sorters or { }
-sorters.index = sorters.index or { }
-sorters.index.data = sorters.index.data or { }
-
-do
-
- function sorters.index.compare(a,b)
- local result = 0
- for i=1,4 do
- if result == 0 then
- result = sorters.comparers.basic(a,b,i)
- else
- return result
- end
- end
- if a[1] ~= 's' then -- e/f/t
- local page_a, page_b = a[3], b[3]
- if page_a < page_b then
- return -1
- elseif page_a > page_b then
- return 1
- end
- end
- return 0
- end
-
- function sorters.index.prepare(data)
- sorters.prepare(data,sorters.splitters.utf,4)
- end
-
- function sorters.index.sort(data)
- sorters.sort(data,sorters.index.compare)
- end
-
- function sorters.index.unique(data)
- sorters.unique(data)
- end
-
- function sorters.index.cleanup(data)
- sorters.cleanup(data)
- end
-
- function sorters.index.finalize(data)
- local split = { }
- for k,v in ipairs(data) do
- local entry, tag = v[2][1][3][1], ""
- local se = sorters.entries[sorters.language]
- if se and se[entry] then
- if type(se[entry]) == "number" then
- entry = se[entry]
- end
- tag = se[entry]
- else
- entry = 0
- tag = "unknown"
- end
- split[entry] = split[entry] or { tag = tag, data = { } }
- split[entry].data[#split[entry].data+1] = v
- end
- return split
- end
-
- -- \registerpage{index}{,}{6}{2--0-0-0-0-0-0-0--1}{1}
-
- -- for the moment we use the old structure, some day mkiv code
- -- will be different: more structure, less mess
-
- local template = {
- page = "\\registerpage{%s}{%s}{%s}{%s}{%s}",
- see = "\\registersee{%s}{%s}{%s}{%s}",
- letter = "\\registerentry{%s}{%s}",
- entry = {
- "\\registerentrya{%s}{%s}",
- "\\registerentryb{%s}{%s}",
- "\\registerentryc{%s}{%s}",
- "\\registerentryd{%s}{%s}",
- },
- }
-
- function sorters.index.flush(sorted,class,flush)
- flush = flush or print
- class = class or 'index'
- for k,v in ipairs(table.sortedkeys(sorted)) do
- local s = sorted[v]
- flush(template.letter:format(class,s.tag))
- local done = { false, false, false }
- for kk,vv in ipairs(s.data) do
- if vv[2][1] then
- local e = { false, false, false, false }
- for i=1,4,1 do
- if vv[2][i] then
- e[i] = vv[2][i][1]
- end
- if e[i] ~= done[i] then
- if e[i] and e[i] ~= "" then
- done[i] = e[i]
- flush(template.entry[i]:format(class,e[i]))
- else
- done[i] = false
- end
- end
- end
- if vv[1] == 'e' then
- -- format reference pagespec realpage
- flush(template.page:format(class,",",vv[4],vv[5],vv[3]))
- elseif vv[1] == 's' then
- flush(template.see:format(class,",",vv[5],vv[3]))
- end
- end
- end
- end
- end
-
- function sorters.index.process(data)
- return sorters.process('index',data)
- end
-
-end
-
--- { { entry, key }, { entry, key }, { entry, key }, { entry, key } }, kind, realpage|see, reference, pagespec
-
-function job.loadregister(class)
- if job.registers[class] then
- if not sorters.index.data[class] then
- sorters.index.data[class] = {
- language = 'en',
- entries = { },
- flush = function(s) tex.sprint(tex.ctxcatcodes,s) end,
- sorted = false,
- class = class
- }
- local entries = sorters.index.data[class].entries
- for k,v in ipairs(job.registers[class]) do
- if v[1] == 'l' then -- language
- sorters.index.data[class].language = v[2]
- else
- local key, entry = v[3], v[4]
- if type(entry) == 'string' then
- entry = entry:splitchr('+')
- end
- if type(key) == 'string' then
- key = key:splitchr('+')
- end
- entries[#entries+1] = {
- v[1], -- kind (e, f, t, s)
- {
- { entry[1] or "", key[1] or "" },
- { entry[2] or "", key[2] or "" },
- { entry[3] or "", key[3] or "" },
- { entry[4] or "", key[4] or "" }
- },
- v[6], -- realpage or seeword (check see)
- v[2], -- reference
- v[5], -- pagespec
- }
- end
- end
- end
- -- maybe we should also save the register result stream
- sorters.index.process(sorters.index.data[class])
- end
-end
diff --git a/Master/texmf-dist/tex/context/base/core-reg.mkii b/Master/texmf-dist/tex/context/base/core-reg.mkii
deleted file mode 100644
index bd925d56865..00000000000
--- a/Master/texmf-dist/tex/context/base/core-reg.mkii
+++ /dev/null
@@ -1,33 +0,0 @@
-%D \module
-%D [ file=core-reg,
-%D version=2007.05.07,
-%D title=\CONTEXT\ Core Macros,
-%D subtitle=Register Management,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%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
-
-% the spaces between } { are essential for texutil's split
-
-\def\mkdefineregister#1% class
- {\addutilityreset{#1}}
-
-\def\mksaveregisterentry#1#2#3#4#5#6#7% class type reference key entry pagespec realpage
- {\expanded{\writeutility{r #2 {#1} {#3} {#4} {#5} {#6} {#7}}}}
-
-\def\mksaveregistersee#1#2#3#4#5#6#7% class type reference key entry see pagespec
- {\expanded{\writeutility{r #2 {#1} {#3} {#4} {#5} {#6} {#7}}}}
-
-\def\mksaveregistervariable#1#2#3% class type value
- {\expanded{\immediatewriteutility{r #2 {#1} {#3}}}}
-
-\def\mkloadregister#1#2#3% class before after
- {\doutilities{#1}{\registerparameter\c!file}{#1}{#2}{#3}}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-reg.mkiv b/Master/texmf-dist/tex/context/base/core-reg.mkiv
deleted file mode 100644
index d6407612f7d..00000000000
--- a/Master/texmf-dist/tex/context/base/core-reg.mkiv
+++ /dev/null
@@ -1,57 +0,0 @@
-%D \module
-%D [ file=core-reg,
-%D version=2007.05.07,
-%D title=\CONTEXT\ Core Macros,
-%D subtitle=Register Management,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%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
-
-\registerctxluafile{core-reg}{1.001}
-
-\appendtoks
- \immediatewriteutilitytua{if not job.registers then job.registers = { } end}%
- \immediatewriteutilitytua{local jr = job.registers}%
-\to \everyopenutilities
-
-\let\allregisters\empty
-
-\appendtoks
- \processcommacommand[\allregisters]\mkdodefineregister
- \globallet\allregisters\empty
-\to \everyopenutilities
-
-\def\mkdodefineregister#1% class
- {\ctxlua{job.defineregister('#1')}%
- \immediatewriteutilitytua{job.defineregister('#1')}}
-
-\def\mkdefineregister#1% class
- {\mkdodefineregister{#1}%
- \doglobal\addtocommalist{#1}\allregisters}
-
-\def\mksaveregisterentry#1#2#3#4#5#6#7% class type reference key entry pagespec realpage
- {\expanded{\writeutilitytua{ti(jr['#1'],{'#2','#3',\!!bs#4\!!es,\!!bs#5\!!es,'#6','#7'})}}}
-
-\def\mksaveregistersee#1#2#3#4#5#6#7% class type reference key entry see pagespec
- {\expanded{\writeutilitytua{ti(jr['#1'],{'#2','#3',\!!bs#4\!!es,\!!bs#5\!!es,'#6','#7'})}}}
-
-\def\mksaveregistervariable#1#2#3% class type value
- {\expanded{\immediatewriteutilitytua{ti(jr['#1'],{'#2','#3'})}}}
-
-% Beware, we have no filename support here. For that we need to save the resulting
-% tex code in a file. No big deal.
-
-\def\mkloadregister#1#2#3% class, todo: loader macro just like mkii
- {\bgroup
- \getvalue{\s!set#1}% smells like a hack
- #2\ctxlua{job.loadregister('#1')}#3% par needed for hanging indentation
- \getvalue{\s!reset#1}%
- \egroup}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-spa.lua b/Master/texmf-dist/tex/context/base/core-spa.lua
index f5d6a11d1a4..ab08755cc66 100644
--- a/Master/texmf-dist/tex/context/base/core-spa.lua
+++ b/Master/texmf-dist/tex/context/base/core-spa.lua
@@ -6,10 +6,51 @@ if not modules then modules = { } end modules ['core-spa'] = {
license = "see context related readme files"
}
--- todo: test without unset
+-- this code dates from the beginning and is kind of experimental; it
+-- will be optimized and improved soon
+
+local next, type = next, type
+local format, gmatch, concat = string.format, string.gmatch, table.concat
+local texsprint, texlists = tex.sprint, tex.lists
+
+local ctxcatcodes = tex.ctxcatcodes
-- vertical space handler
+local trace_vbox_vspacing = false trackers.register("nodes.vbox_vspacing", function(v) trace_vbox_vspacing = v end)
+local trace_page_vspacing = false trackers.register("nodes.page_vspacing", function(v) trace_page_vspacing = v end)
+local trace_collect_vspacing = false trackers.register("nodes.collect_vspacing", function(v) trace_collect_vspacing = v end)
+local trace_vspacing = false trackers.register("nodes.vspacing", function(v) trace_vspacing = v end)
+
+local skip_category = attributes.private('skip-category')
+local skip_penalty = attributes.private('skip-penalty')
+local skip_order = attributes.private('skip-order')
+local snap_category = attributes.private('snap-category')
+local display_math = attributes.private('display-math')
+
+local has_attribute = node.has_attribute
+local unset_attribute = node.unset_attribute
+local set_attribute = node.set_attribute
+local find_node_tail = node.tail
+local free_node = node.free
+local copy_node = node.copy
+local traverse_nodes = node.traverse
+local insert_node_before = node.insert_before
+local insert_node_after = node.insert_after
+local remove_node = nodes.remove
+local make_penalty_node = nodes.penalty
+local count_nodes = nodes.count
+local node_ids_to_string = nodes.ids_to_string
+local hpack_node = node.hpack
+
+local glyph = node.id("glyph")
+local penalty = node.id("penalty")
+local kern = node.id("kern")
+local glue = node.id('glue')
+local hlist = node.id('hlist')
+local vlist = node.id('vlist')
+local adjust = node.id('adjust')
+
vspacing = vspacing or { }
vspacing.categories = {
@@ -23,12 +64,14 @@ vspacing.categories = {
[7] = 'goback',
}
+local categories = vspacing.categories
+
function vspacing.tocategories(str)
local t = { }
- for s in str:gmatch("[^, ]") do
+ for s in gmatch(str,"[^, ]") do
local n = tonumber(s)
if n then
- t[vspacing.categories[n]] = true
+ t[categories[n]] = true
else
t[b] = true
end
@@ -40,96 +83,90 @@ function vspacing.tocategory(str)
if type(str) == "string" then
return set.tonumber(vspacing.tocategories(str))
else
- return set.tonumber({ [vspacing.categories[str]] = true })
+ return set.tonumber({ [categories[str]] = true })
end
end
-function vspacing.tostring(t)
- local str = nil
- for k,v in pairs(vspacing.categories) do
- if t[v] then
- if str then str = str .. " +" .. v else str = "+" .. v end
- else
- if str then str = str .. " -" .. v else str = "-" .. v end
- end
- end
- return str or ""
-end
+vspacing.data = vspacing.data or { }
+vspacing.data.map = vspacing.data.map or { }
+vspacing.data.skip = vspacing.data.skip or { }
+
+storage.register("vspacing/data/map", vspacing.data.map, "vspacing.data.map")
+storage.register("vspacing/data/skip", vspacing.data.skip, "vspacing.data.skip")
-do
+do -- todo: interface.variables
- local map = { }
- local skip = { }
+ local function logger(c,s)
+ logs.report("vspacing",s)
+ texsprint(c,s)
+ end
vspacing.fixed = false
- function vspacing.analyse(str)
- local category, order, penalty, command, fixed = { }, 0, 0, { }, vspacing.fixed
- local function analyse(str)
- for sign,amount,_,keyword in str:gmatch("([+%-]*)([%.%d]*)([%*]*)([^,%* ]+)") do
- if keyword then
- if map[keyword] then
- analyse(map[keyword])
- elseif keyword == "fixed" then
- fixed = true
- elseif keyword == "flexible" then
- fixed = false
- else
- local a, b = keyword:match("(.-):(.-)$")
- if a and b then
- if a == "category" then
- -- is a set
- local n = tonumber(b)
- if n then
- category[vspacing.categories[n]] = true
- else
- category[b] = true
- end
- elseif a == "order" then
- -- last one counts
- order = tonumber(b) or 0
- elseif a == "penalty" then
- -- last one counts
- penalty = tonumber(b) or 0
- elseif a == "skip" then
- -- last one counts
- command[#command+1] = { 1, tonumber[b] }
- end
- else
- if amount == "" then amount = 1 end
- if sign == "-" then amount = -amount end
- if skip[keyword] then
- command[#command+1] = { amount, skip[keyword][1], skip[keyword][2] }
- end
+ local map = vspacing.data.map
+ local skip = vspacing.data.skip
+
+ local multiplier = lpeg.C(lpeg.S("+-")^0 * lpeg.R("09")^1) * lpeg.P("*")
+ local category = lpeg.P(":") * lpeg.C(lpeg.P(1)^1)
+ local keyword = lpeg.C((1-category)^1)
+ local splitter = (multiplier + lpeg.Cc(1)) * keyword * (category + lpeg.Cc(false))
+
+ local function analyse(str,oldcategory,texsprint)
+ for s in gmatch(str,"([^ ,]+)") do
+ local amount, keyword, detail = splitter:match(s)
+ if keyword then
+ local mk = map[keyword]
+ if mk then
+ category = analyse(mk,category,texsprint)
+ elseif keyword == "fixed" then
+ texsprint(ctxcatcodes,"\\fixedblankskip")
+ elseif keyword == "flexible" then
+ texsprint(ctxcatcodes,"\\flexibleblankskip")
+ elseif keyword == "category" then
+ local category = tonumber(detail)
+ if category then
+ texsprint(ctxcatcodes,format("\\setblankcategory{%s}",category))
+ if category ~= oldcategory then
+ texsprint(ctxcatcodes,"\\flushblankhandling")
+ oldcategory = category
end
end
+ elseif keyword == "order" and detail then
+ local order = tonumber(detail)
+ if order then
+ texsprint(ctxcatcodes,format("\\setblankorder{%s}",order))
+ end
+ elseif keyword == "penalty" and detail then
+ local penalty = tonumber(detail)
+ if penalty then
+ texsprint(ctxcatcodes,format("\\setblankpenalty{%s}",penalty))
+ texsprint(ctxcatcodes,"\\flushblankhandling")
+ end
+ else
+ amount = tonumber(amount) or 1
+ local sk = skip[keyword]
+ if sk then
+ texsprint(ctxcatcodes,format("\\addblankskip{%s}{%s}{%s}",amount,sk[1],sk[2] or sk[1]))
+ else -- no check
+ texsprint(ctxcatcodes,format("\\addblankskip{%s}{%s}{%s}",amount,keyword,keyword))
+ end
end
+ else
+ logs.report("vspacing","unknown directive: %s",s)
end
end
- analyse(str)
- category = set.tonumber(category)
- local p = print
- p("\\startblankhandling")
- if category > 0 then
- p(("\\setblankcategory{%s}"):format(category))
- end
- if order > 0 then
- p(("\\setblankorder{%s}"):format(order))
- end
- if penalty > 0 then
- p(("\\setblankpenalty{%s}"):format(penalty))
- end
- for k,v in ipairs(command) do
- p(("\\addblankskip{%s}{%s}{%s}"):format(v[1],v[2],v[3]))
- end
- if fixed then
- p("\\fixedblankskip")
- else
- p("\\flexibleblankskip")
- end
- p("\\stopblankhandling")
+ return category
+ end
+
+ function vspacing.analyse(str)
+ local texsprint = (trace_vspacing and logger) or texsprint
+ texsprint(ctxcatcodes,"\\startblankhandling")
+ analyse(str,1,texsprint)
+ texsprint(ctxcatcodes,"\\stopblankhandling")
end
+ --
+
function vspacing.setmap(from,to)
map[from] = to
end
@@ -151,922 +188,533 @@ function nodes.setsnapvalue(n,ht,dp)
nodes.snapvalues[n] = { ht, dp, ht+dp }
end
-do
-
- nodes.trace_collapse = false
-
- local kern, glue, penalty, hlist = node.id('kern'), node.id('glue'), node.id('penalty'), node.id('hlist')
+local trace_list, tracing_info, before, after = { }, false, "", ""
- local has_attribute = node.has_attribute
- local has_field = node.has_field
-
- local trace_list = { }
-
- local function reset_tracing()
- trace_list = { }
- end
- local function trace_skip(str,sc,so,sp,data)
- trace_list[#trace_list+1] = string.format("%s %10s %10s %10s %10s", str:padd(8), (data.spec and data.spec.width) or "?", sc or "-", so or "-", sp or "-")
- end
- local function trace_info(...)
- trace_list[#trace_list+1] = table.concat({...}," ")
+local function glue_to_string(glue)
+ local spec = glue.spec
+ if spec then
+ local t = { }
+ t[#t+1] = aux.strip_zeros(number.topoints(spec.width))
+ if spec.stretch_order and spec.stretch_order ~= 0 then
+ t[#t+1] = format("plus -%sfi%s",spec.stretch/65536,string.rep("l",math.abs(spec.stretch_order)-1))
+ elseif spec.stretch and spec.stretch ~= 0 then
+ t[#t+1] = format("plus %s",aux.strip_zeros(number.topoints(spec.stretch)))
+ end
+ if spec.shrink_order and spec.shrink_order ~= 0 then
+ t[#t+1] = format("minus -%sfi%s",spec.shrink/65536,string.rep("l",math.abs(spec.shrink_order)-1))
+ elseif spec.shrink and spec.shrink ~= 0 then
+ t[#t+1] = format("minus %s",aux.strip_zeros(number.topoints(spec.shrink)))
+ end
+ return concat(t," ")
+ else
+ return "[0pt]"
end
- local function trace_done(str,data)
- if data.id == penalty then
- trace_list[#trace_list+1] = string.format("%s %10s penalty", str:padd(8), data.penalty)
+end
+
+local function nodes_to_string(head)
+ local current, t = head, { }
+ while current do
+ local id = current.id
+ local ty = node.type(id)
+ if id == penalty then
+ t[#t+1] = format("%s:%s",ty,current.penalty)
+ elseif id == glue then
+ if current.spec then
+ t[#t+1] = format("%s:%s",ty,aux.strip_zeros(number.topoints(current.spec.width)))
+ else
+ t[#t+1] = format("%s:[0pt]",ty)
+ end
+ elseif id == kern then
+ t[#t+1] = format("%s:%s",ty,aux.strip_zeros(number.topoints(current.kern)))
else
- trace_list[#trace_list+1] = string.format("%s %10s glue", str:padd(8), (data.spec and data.spec.width) or "?")
+ t[#t+1] = ty
end
+ current = current.next
end
- local function show_tracing()
- texio.write_nl(table.concat(trace_list,"\n"))
- end
+ return concat(t," + ")
+end
- -- we assume that these are defined
+local function reset_tracing(head)
+ trace_list, tracing_info, before, after = { }, false, nodes_to_string(head), ""
+end
- local skip_category = attributes.numbers['skip-category'] or 101
- local skip_penalty = attributes.numbers['skip-penalty'] or 102
- local skip_order = attributes.numbers['skip-order'] or 103
- local snap_category = attributes.numbers['snap-category'] or 111
- local display_math = attributes.numbers['display-math'] or 121
+local function trace_skip(str,sc,so,sp,data)
+ trace_list[#trace_list+1] = { "skip", format("%s | %s | category %s | order %s | penalty %s", str, glue_to_string(data), sc or "-", so or "-", sp or "-") }
+ tracing_info = true
+end
- -- alignment box begin_of_par vmode_par hmode_par insert penalty before_display after_display
+local function trace_natural(str,data)
+ trace_list[#trace_list+1] = { "skip", format("%s | %s", str, glue_to_string(data)) }
+ tracing_info = true
+end
- local user_skip = 0
- local line_skip = 1
- local baseline_skip = 2
- local par_skip = 3
- local above_display_skip = 4
- local below_display_skip = 5
- local above_display_short_skip = 6
- local below_display_short_skip = 7
- local left_skip_code = 8
- local right_skip_code = 9
- local top_skip_code = 10
- local split_top_skip_code = 11
- local tab_skip_code = 12
- local space_skip_code = 13
- local xspace_skip_code = 14
- local par_fill_skip_code = 15
- local thin_mu_skip_code = 16
- local med_mu_skip_code = 17
- local thick_mu_skip_code = 18
+local function trace_info(message, where, what)
+ trace_list[#trace_list+1] = { "info", format("%s: %s/%s",message,where,what) }
+end
- local skips = {
- [ 0] = "user_skip",
- [ 1] = "line_skip",
- [ 2] = "baseline_skip",
- [ 3] = "par_skip",
- [ 4] = "above_display_skip",
- [ 5] = "below_display_skip",
- [ 6] = "above_display_short_skip",
- [ 7] = "below_display_short_skip",
- [ 8] = "left_skip_code",
- [ 9] = "right_skip_code",
- [10] = "top_skip_code",
- [11] = "split_top_skip_code",
- [12] = "tab_skip_code",
- [13] = "space_skip_code",
- [14] = "xspace_skip_code",
- [15] = "par_fill_skip_code",
- [16] = "thin_mu_skip_code",
- [17] = "med_mu_skip_code",
- [18] = "thick_mu_skip_code",
- }
+local function trace_node(what)
+ local nt = node.type(what.id)
+ local tl = trace_list[#trace_list]
+ if tl[1] == "node" then
+ trace_list[#trace_list] = { "node", tl[2] .. " + " .. nt }
+ else
+ trace_list[#trace_list+1] = { "node", nt }
+ end
+end
- function nodes.is_display_math(head)
- local n = head.prev
- while n do
- local id = n.id
- if id == penalty then
- elseif id == glue then
- if n.subtype == 6 then -- above_display_short_skip
- return true
- end
- else
- break
- end
- n = n.prev
- end
- n = head.next
- while n do
- local id = n.id
- if id == penalty then
- elseif id == glue then
- if n.subtype == 7 then -- below_display_short_skip
- return true
- end
+local function trace_done(str,data)
+ if data.id == penalty then
+ trace_list[#trace_list+1] = { "penalty", format("%s | %s", str, data.penalty) }
+ else
+ trace_list[#trace_list+1] = { "glue", format("%s | %s", str, glue_to_string(data)) }
+ end
+ tracing_info = true
+end
+
+local function show_tracing(head)
+ if tracing_info then
+ after = nodes_to_string(head)
+ for i=1,#trace_list do
+ local tag, text = unpack(trace_list[i])
+ if tag == "info" then
+ logs.report("collapse",text)
else
- break
+ logs.report("collapse"," %s: %s",tag,text)
end
- n = n.next
end
- return false
+ logs.report("collapse","before: %s",before)
+ logs.report("collapse","after : %s",after)
end
+end
- local function collapser(head,where)
- if head and head.next then
-node.slide(head) -- hm, why
- input.starttiming(nodes)
- local trace = nodes.trace_collapse
- local current, tail = head, nil
- local glue_order, glue_data = 0, nil
- local penalty_order, penalty_data, natural_penalty = 0, nil, nil
- if trace then reset_tracing() end
- local parskip, ignore_parskip, ignore_following, ignore_whitespace = nil, false, false, false
- if trace then trace_info("start analyzing") end
- while current do
- local id = current.id
- if id == glue and current.subtype == 0 then -- todo, other subtypes, like math
- local sc = has_attribute(current,skip_category)
- local so = has_attribute(current,skip_order ) or 1
- local sp = has_attribute(current,skip_penalty )
- if not sc then
- if glue_data then
- if trace then trace_done("before",glue_data) end
- head, current = nodes.before(head,current,glue_data)
- end
- if trace then trace_skip("natural",sc,so,sp,current) end
- glue_order, glue_data = 0, nil
- current = current.next
- else
- local sct = set.totable(sc)
- if trace then trace_info("catset",vspacing.tostring(sct)) end
- if sct.disable then
- ignore_following = true
- end
- if sct.nowhite then
- ignore_whitespace = true
- end
- if sct.discard then
- if trace then trace_skip("ignore",sc,so,sp,current) end
- head, current = nodes.remove(head, current, true)
- else
- if sp then
- if not penalty_data then
- penalty_data = sp
- elseif penalty_order < so then
- penalty_order, penalty_data = so, sp
- elseif penalty_order == so and sp > penalty_data then
- penalty_data = sp
- end
- end
- if ignore_following then
- if trace then trace_skip("disabled",sc,so,sp,current) end
- head, current = nodes.remove(head, current, true)
- elseif not glue_data then
- if trace then trace_skip("assign",sc,so,sp,current) end
- glue_order = so
- head, current, glue_data = nodes.remove(head, current)
- elseif glue_order < so then
- if trace then trace_skip("force",sc,so,sp,current) end
- glue_order = so
- node.free(glue_data)
- head, current, glue_data = nodes.remove(head, current)
- elseif glue_order == so then
- if sct.largest then
- if current.spec.width > glue_data.spec.width then
- if trace then trace_skip("larger",sc,so,sp,current) end
- node.free(glue_data)
- head, current, glue_data = nodes.remove(head, current)
- else
- if trace then trace_skip("smaller",sc,so,sp,current) end
- head, current = nodes.remove(head, current, true)
- end
- elseif sct.goback then
- if trace then trace_skip("force",sc,so,sp,current) end
- node.free(glue_data)
- head, current, glue_data = nodes.remove(head, current)
- elseif sct.force then
- -- todo: inject kern
- if trace then trace_skip("force",sc,so,sp,current) end
- node.free(glue_data)
- head, current, glue_data = nodes.remove(head, current)
- elseif sct.penalty then
- if trace then trace_skip("penalty",sc,so,sp,current) end
- node.free(glue_data)
- head, current = nodes.remove(head, current, true)
- elseif sct.add then
- if trace then trace_skip("add",sc,so,sp,current) end
- local old, new = glue_data.spec, current.spec
- old.width = old.width + new.width
- old.stretch = old.stretch + new.stretch
- old.shrink = old.shrink + new.shrink
- head, current = nodes.remove(head, current, true)
- else
- if trace then trace_skip("unknown",sc,so,sp,current) end
- head, current = nodes.remove(head, current, true)
- end
+-- alignment box begin_of_par vmode_par hmode_par insert penalty before_display after_display
+
+local user_skip = 0
+local line_skip = 1
+local baseline_skip = 2
+local par_skip = 3
+local above_display_skip = 4
+local below_display_skip = 5
+local above_display_short_skip = 6
+local below_display_short_skip = 7
+local left_skip_code = 8
+local right_skip_code = 9
+local top_skip_code = 10
+local split_top_skip_code = 11
+local tab_skip_code = 12
+local space_skip_code = 13
+local xspace_skip_code = 14
+local par_fill_skip_code = 15
+local thin_mu_skip_code = 16
+local med_mu_skip_code = 17
+local thick_mu_skip_code = 18
+
+local skips = {
+ [ 0] = "user_skip",
+ [ 1] = "line_skip",
+ [ 2] = "baseline_skip",
+ [ 3] = "par_skip",
+ [ 4] = "above_display_skip",
+ [ 5] = "below_display_skip",
+ [ 6] = "above_display_short_skip",
+ [ 7] = "below_display_short_skip",
+ [ 8] = "left_skip_code",
+ [ 9] = "right_skip_code",
+ [10] = "top_skip_code",
+ [11] = "split_top_skip_code",
+ [12] = "tab_skip_code",
+ [13] = "space_skip_code",
+ [14] = "xspace_skip_code",
+ [15] = "par_fill_skip_code",
+ [16] = "thin_mu_skip_code",
+ [17] = "med_mu_skip_code",
+ [18] = "thick_mu_skip_code",
+}
+
+local free_glue_node = free_node
+local free_glue_spec = free_node
+local discard, largest, force, penalty, add, disable, nowhite, goback = 0, 1, 2, 3, 4, 5, 6, 7
+
+local function collapser(head,where,what,trace) -- maybe also pass tail
+ if trace then
+ reset_tracing(head)
+ trace_info("start analyzing",where,what)
+ end
+ local current = head
+ local glue_order, glue_data = 0, nil
+ local penalty_order, penalty_data, natural_penalty = 0, nil, nil
+ local parskip, ignore_parskip, ignore_following, ignore_whitespace = nil, false, false, false
+ while current do
+ local id = current.id
+ if id == glue and current.subtype == 0 then -- todo, other subtypes, like math
+ local sc = has_attribute(current,skip_category) -- has no default, no unset (yet)
+ local so = has_attribute(current,skip_order ) or 1 -- has 1 default, no unset (yet)
+ local sp = has_attribute(current,skip_penalty ) -- has no degault, no unset (yet)
+ if not sc then
+ if glue_data then
+ if trace then trace_done("flush",glue_data) end
+ head, current = nodes.before(head,current,glue_data)
+ if trace then trace_natural("natural",current) end
+ else
+ -- not look back across head
+ local previous = current.prev
+ if previous and previous.id == glue and previous.subtype == 0 then
+ local ps = previous.spec
+ if ps then
+ local cs = current.spec
+ if cs and ps.stretch_order == 0 and ps.shrink_order == 0 and cs.stretch_order == 0 and cs.shrink_order == 0 then
+ local pw, pp, pm = ps.width, ps.stretch, ps.shrink
+ local cw, cp, cm = cs.width, cs.stretch, cs.shrink
+ ps.width, ps.stretch, ps.shrink = pw + cw, pp + cp, pm + cm
+ if trace then trace_natural("removed",current) end
+ head, current = remove_node(head, current, true)
+ current = previous
+ if trace then trace_natural("collapsed",current) end
else
- if trace then trace_skip("unknown",sc,so,sp,current) end
- head, current = nodes.remove(head, current, true)
+ if trace then trace_natural("filler",current) end
end
+ else
+ if trace then trace_natural("natural (no prev spec)",current) end
end
- end
- -- elseif id == penalty then
- -- natural_penalty = current.penalty
- -- head, current = nodes.remove(head, current, true)
- elseif id == glue and current.subtype == 2 then
- -- baselineskip
- local sn = has_attribute(current,snap_category)
- if sn then
- -- local sv = nodes.snapvalues[sn]
- -- if sv then
- head, current = nodes.remove(head, current, true)
- -- else
- -- current = current.next
- -- end
- elseif ignore_whitespace then
- head, current = nodes.remove(head, current, true)
else
- current = current.next
+ if trace then trace_natural("natural (no prev)",current) end
end
- elseif id == glue and current.subtype == 3 then
- parskip = current
+ end
+ glue_order, glue_data = 0, nil
+ if current then
current = current.next
+ end
+ else
+ if sc == disable then
+ ignore_following = true
+ if trace then trace_skip("disable",sc,so,sp,current) end
+ head, current = remove_node(head, current, true)
+ elseif sc == nowhite then
+ ignore_whitespace = true
+ head, current = remove_node(head, current, true)
+ elseif sc == discard then
+ if trace then trace_skip("discard",sc,so,sp,current) end
+ head, current = remove_node(head, current, true)
else
- if trace then trace_info(node.type(current)) end
- if glue_data then
- head, current = nodes.before(head,current,glue_data)
- if trace then trace_done("before",glue_data) end
- glue_order, glue_data = 0, nil
+ if sp then
+ if not penalty_data then
+ penalty_data = sp
+ elseif penalty_order < so then
+ penalty_order, penalty_data = so, sp
+ elseif penalty_order == so and sp > penalty_data then
+ penalty_data = sp
+ end
end
- if id == hlist and where == 'hmode_par' then
- local list = current.list
- if list then
- local sn = has_attribute(list,snap_category)
- if sn then
- local sv = nodes.snapvalues[sn]
- if sv then
- local height, depth, lineheight = sv[1], sv[2], sv[3]
- current.height = math.ceil((current.height-height)/lineheight)*lineheight + height
- current.depth = math.ceil((current.depth -depth )/lineheight)*lineheight + depth
- end
+ if ignore_following then
+ if trace then trace_skip("disabled",sc,so,sp,current) end
+ head, current = remove_node(head, current, true)
+ elseif not glue_data then
+ if trace then trace_skip("assign",sc,so,sp,current) end
+ glue_order = so
+ head, current, glue_data = remove_node(head, current)
+ elseif glue_order < so then
+ if trace then trace_skip("force",sc,so,sp,current) end
+ glue_order = so
+ free_glue_node(glue_data)
+ head, current, glue_data = remove_node(head, current)
+ elseif glue_order == so then
+ -- is now exclusive, maybe support goback as combi, else why a set
+ if sc == largest then
+ local cs, gs = current.spec, glue_data.spec
+ local cw = (cs and cs.width) or 0
+ local gw = (gs and gs.width) or 0
+ if cw > gw then
+ if trace then trace_skip('largest',sc,so,sp,current) end
+ free_glue_node(glue_data) -- also free spec
+ head, current, glue_data = remove_node(head, current)
+ else
+ if trace then trace_skip('remove smallest',sc,so,sp,current) end
+ head, current = remove_node(head, current, true)
end
+ elseif sc == goback then
+ if trace then trace_skip('goback',sc,so,sp,current) end
+ free_glue_node(glue_data) -- also free spec
+ head, current, glue_data = remove_node(head, current)
+ elseif sc == force then
+ -- todo: inject kern
+ if trace then trace_skip('force',sc,so,sp,current) end
+ free_glue_node(glue_data) -- also free spec
+ head, current, glue_data = remove_node(head, current)
+ elseif sc == penalty then
+ if trace then trace_skip('penalty',sc,so,sp,current) end
+ free_glue_node(glue_data) -- also free spec
+ glue_data = nil
+ head, current = remove_node(head, current, true)
+ elseif sc == add then
+ if trace then trace_skip('add',sc,so,sp,current) end
+ local old, new = glue_data.spec, current.spec
+ old.width = old.width + new.width
+ old.stretch = old.stretch + new.stretch
+ old.shrink = old.shrink + new.shrink
+ -- toto: order
+ head, current = remove_node(head, current, true)
+ else
+ if trace then trace_skip("unknown",sc,so,sp,current) end
+ head, current = remove_node(head, current, true)
end
+ else
+ if trace then trace_skip("unknown",sc,so,sp,current) end
+ head, current = remove_node(head, current, true)
end
- current = current.next
end
- tail = current -- WRONG ! ! ! !
end
- if trace then trace_info("stop analyzing") end
- -- if natural_penalty and (not penalty_data or natural_penalty > penalty_data) then
- -- penalty_data = natural_penalty
- -- end
- if trace then trace_info("start flushing") end
- if parskip and glue_data then
- local ps, gs = parskip.spec, glue_data.spec
- if ps and gs and ps.width > gs.width then
- gs.width = ps.width
- head, current = nodes.remove(head, parskip, true)
- end
- end
- if glue_data then
- if trace then trace_done("first",glue_data) end
- head, tail = nodes.after(head,tail,glue_data)
- end
- if penalty_data then
- local p = nodes.penalty(penalty_data)
- if trace then trace_done("second",p) end
- head, head = nodes.before(head,head,p)
+ elseif id == penalty then
+ --~ natural_penalty = current.penalty
+ --~ if trace then trace_done("removed penalty",current) end
+ --~ head, current = remove_node(head, current, true)
+ current = current.next
+ elseif id == glue and current.subtype == 2 then
+ local sn = has_attribute(current,snap_category)
+ if sn then
+ -- local sv = nodes.snapvalues[sn]
+ -- if sv then
+ if trace then trace_natural("removed baselineskip",current) end
+ head, current = remove_node(head, current, true)
+ -- else
+ -- current = current.next
+ -- end
+ else
+ if trace then trace_natural("keep baselineskip",current) end
+ current = current.next
end
- if trace then trace_info("stop flushing") end
- if trace then show_tracing() end
- input.stoptiming(nodes)
- end
- return head, true
- end
-
- local head, tail = nil, nil
-
- function nodes.flush_vertical_spacing()
- if head and head.next then
- local t = collapser(head)
- head = nil
- -- tail = nil
- return t
- else
- return head
- end
- end
-
- function nodes.handle_page_spacing(t, where)
- -- we need to add the latest t too, else we miss skips and such
- if t then
--- node.slide(t) -- redunant
- if t.next then
- local tt = node.slide(t)
- local id = tt.id
- if id == glue then -- or id == penalty then -- or maybe: if not hlist or vlist
- if head then
- t.prev = tail
- tail.next = t
- else
- head = t
- end
- tail = tt
- t = nil
+ elseif id == glue and current.subtype == 3 then
+ -- parskip always comes later
+ if ignore_whitespace then
+ if trace then trace_natural("ignored parskip",current) end
+ head, current = remove_node(head,current,true)
+ elseif glue_data then
+ local ps, gs = current.spec, glue_data.spec
+ if ps and gs and ps.width > gs.width then
+ -- free_glue_spec(glue_data.spec) -- result in double free
+ glue_data.spec = copy_node(ps)
+ if trace then trace_natural("taking parskip",current) end
else
- if head then
- t.prev = tail
- tail.next = t
- -- tail = tt
- t = collapser(head,where)
- head = nil
- -- tail = nil
- else
- t = collapser(t,where)
- end
+ if trace then trace_natural("removed parskip",current) end
end
- elseif head then
- t.prev = tail
- tail.next = t
- t = collapser(head,where)
- head = nil
+ head, current = remove_node(head, current,true)
else
- t = collapser(t,where)
+ if trace then trace_natural("honored parskip",current) end
+ head, current, glue_data = remove_node(head, current)
end
- end
- return t
- end
-
- function nodes.handle_vbox_spacing(t)
- if t and t.next then
- node.slide(t)
- return collapser(t,'whole')
+ --~ if trace then trace_natural("removed parskip",current) end
+ --~ current.spec = nil
+ --~ current = current.next
else
- return t
- end
- end
-
-end
-
--- experimental callback definitions will be moved elsewhere
-
--- not yet ... we need to get rid of lastskip stuff first
---
--- callback.register('vpack_filter', nodes.handle_vbox_spacing)
--- callback.register('buildpage_filter', nodes.handle_page_spacing)
-
--- horizontal stuff
-
--- probably a has_glyphs is rather fast too
-
-do
-
- local has_attribute = node.has_attribute
- local unset_attribute = node.unset_attribute
- local set_attribute = node.set_attribute
-
---~ local function unset_attribute(n,attribute)
---~ set_attribute(n,attribute,0)
---~ end
-
- local glyph = node.id("glyph")
- local kern = node.id("kern")
- local disc = node.id('disc')
- local glue = node.id('glue')
- local hlist = node.id('hlist')
- local vlist = node.id('vlist')
-
- spacings = spacings or { }
- spacings.mapping = spacings.mapping or { }
- spacings.enabled = false
-
- input.storage.register(false,"spacings/mapping", spacings.mapping, "spacings.mapping")
-
- function spacings.setspacing(id,char,left,right)
- local mapping = spacings.mapping[id]
- if not mapping then
- mapping = { }
- spacings.mapping[id] = mapping
- end
- local map = mapping[char]
- if not map then
- map = { }
- mapping[char] = map
- end
- map.left, map.right = left, right
- end
-
- -- todo: no ligatures
-
- function spacings.process(namespace,attribute,head)
- local done, mapping, fontids = false, spacings.mapping, fonts.tfm.id
- for start in node.traverse_id(glyph,head) do -- tricky since we inject
- local attr = has_attribute(start,attribute)
- if attr and attr > 0 then
- local map = mapping[attr]
- if map then
- map = map[start.char]
- unset_attribute(start,attribute)
- if map then
- local kern, prev = map.left, start.prev
- if kern and kern ~= 0 and prev and prev.id == glyph then
- node.insert_before(head,start,nodes.kern(tex.scale(fontids[start.font].parameters[6],kern)))
- -- node.insert_before(head,start,nodes.kern(fontids[start.font].parameters[6]*kern))
- done = true
- end
- local kern, next = map.right, start.next
- if kern and kern ~= 0 and next and next.id == glyph then
- node.insert_after(head,start,nodes.kern(tex.scale(fontids[start.font].parameters[6],kern)))
- -- node.insert_after(head,start,nodes.kern(fontids[start.font].parameters[6]*kern))
- done = true
+-- reversed
+ if penalty_data then
+ local p = make_penalty_node(penalty_data)
+ if trace then trace_done("flushed",p) end
+ head, current = insert_node_before(head,current,p)
+ penalty_data = nil
+ end
+ if glue_data then
+ if trace then trace_done("flushed",glue_data) end
+ head, current = insert_node_before(head,current,glue_data)
+ glue_order, glue_data = 0, nil
+ end
+ if trace then trace_node(current) end
+ if id == hlist and where == 'hmode_par' then
+ local list = current.list
+ if list then
+ local sn = has_attribute(list,snap_category)
+ if sn then
+ local sv = nodes.snapvalues[sn]
+ if sv then
+ local height, depth, lineheight = sv[1], sv[2], sv[3]
+ -- is math.ceil really needed?
+ current.height = math.ceil((current.height-height)/lineheight)*lineheight + height
+ current.depth = math.ceil((current.depth -depth )/lineheight)*lineheight + depth
end
end
end
end
+ current = current.next
end
- return head, done
end
-
- lists.plugins.spacing = {
- namespace = spacings,
- processor = spacings.process,
- }
-
- kerns = kerns or { }
- kerns.mapping = kerns.mapping or { }
- kerns.enabled = false
-
- input.storage.register(false, "kerns/mapping", kerns.mapping, "kerns.mapping")
-
- function kerns.setspacing(id,factor)
- kerns.mapping[id] = factor
+ if trace then trace_info("stop analyzing",where,what) end
+ --~ if natural_penalty and (not penalty_data or natural_penalty > penalty_data) then
+ --~ penalty_data = natural_penalty
+ --~ end
+ if trace and (glue_data or penalty_data) then
+ trace_info("start flushing",where,what)
end
-
--- local marks = fti[font].shared.otfdata.luatex.marks
--- if not marks[tchar] then
-
- function kerns.process(namespace,attribute,head) -- todo interchar kerns / disc nodes / can be made faster
- local fti, scale = fonts.tfm.id, tex.scale
- local start, done, mapping, fontids, lastfont = head, false, kerns.mapping, fonts.tfm.id, nil
- while start do
- -- faster to test for attr first
- local attr = has_attribute(start,attribute)
- if attr and attr > 0 then
- unset_attribute(start,attribute)
- local krn = mapping[attr]
- if krn and krn ~= 0 then
- local id = start.id
- if id == glyph then
- lastfont = start.font
- local c = start.components
- if c then
- local s = start
- local tail = node.slide(c)
- if s.prev then
- s.prev.next = c
- c.prev = s.prev
- else
- head = c
- end
- if s.next then
- s.next.prev = tail
- end
- tail.next = s.next
- start = c
- start.attr = s.attr
- s.attr = nil
- s.components = nil
- node.free(s)
- done = true
- end
- local prev = start.prev
- if prev then
- local pid = prev.id
- if not pid then
- -- nothing
- elseif pid == kern and prev.subtype == 0 then
- prev.subtype = 1
- prev.kern = prev.kern + scale(fontids[lastfont].parameters[6],krn)
- -- prev.kern = prev.kern + fontids[lastfont].parameters[6]*krn
- done = true
- elseif pid == glyph then
- -- fontdata access can be done more efficient
- if prev.font == lastfont then
- local prevchar, lastchar = prev.char, start.char
- local tfm = fti[lastfont].characters[prevchar]
- local ickern = tfm.kerns
- if ickern and ickern[lastchar] then
- krn = scale(ickern[lastchar]+fontids[lastfont].parameters[6],krn)
- -- krn = krn*(ickern[lastchar]+fontids[lastfont].parameters[6])
- else
- krn = scale(fontids[lastfont].parameters[6],krn)
- -- krn = krn*fontids[lastfont].parameters[6]
- end
- else
- krn = scale(fontids[lastfont].parameters[6],krn)
- -- krn = krn*fontids[lastfont].parameters[6]
- end
- node.insert_before(head,start,nodes.kern(krn))
- done = true
- elseif pid == disc then
- local disc = start.prev -- disc
- local pre, post, replace = disc.pre, disc.post, disc.replace
- if pre then -- must pair with start.prev
- local before = node.copy(disc.prev)
- pre.prev = before
- before.next = pre
- before.prev = nil
- pre = kerns.process(namespace,attribute,before)
- pre = pre.next
- pre.prev = nil
- disc.pre = pre
- node.free(before)
- end
- if post then -- must pair with start
- local after = node.copy(disc.next)
- local tail = node.slide(post)
- tail.next = after
- after.prev = tail
- after.next = nil
- post = kerns.process(namespace,attribute,post)
- tail.next = nil
- disc.post = post
- node.free(after)
- end
- if replace then -- must pair with start and start.prev
- local before = node.copy(disc.prev)
- local after = node.copy(disc.next)
- local tail = node.slide(post)
- replace.prev = before
- before.next = replace
- before.prev = nil
- tail.next = after
- after.prev = tail
- after.next = nil
- replace = kerns.process(namespace,attribute,before)
- replace = replace.next
- replace.prev = nil
- tail.next = nil
- disc.replace = replace
- node.free(after)
- node.free(before)
- end
- end
- end
- elseif id == glue and start.subtype == 0 then
- local s = start.spec
- local w = s.width
- if w > 0 then
- local width, stretch, shrink = w+2*scale(w,krn), s.stretch, s.shrink
- start.spec = nodes.glue_spec(width,scale(stretch,width/w),scale(shrink,width/w))
- -- local width, stretch, shrink = w+2*w*krn, s.stretch, s.shrink
- -- start.spec = nodes.glue_spec(width,stretch*width/w,shrink*width/w))
- done = true
- end
- elseif false and id == kern and start.subtype == 0 then -- handle with glyphs
- local sk = start.kern
- if sk > 0 then
- -- start.kern = scale(sk,krn)
- start.kern = sk*krn
- done = true
- end
- elseif lastfont and (id == hlist or id == vlist) then -- todo: lookahead
- if start.prev then
- node.insert_before(head,start,nodes.kern(scale(fontids[lastfont].parameters[6],krn)))
- -- node.insert_before(head,start,nodes.kern(fontids[lastfont].parameters[6]*krn))
- done = true
- end
- if start.next then
- node.insert_after(head,start,nodes.kern(scale(fontids[lastfont].parameters[6],krn)))
- -- node.insert_after(head,start,nodes.kern(fontids[lastfont].parameters[6]*krn))
- done = true
- end
- end
- end
- end
- if start then
- start = start.next
- end
+ local tail
+ if penalty_data then
+ tail = find_node_tail(head)
+ local p = make_penalty_node(penalty_data)
+ if trace then trace_done("result",p) end
+ head, tail = insert_node_after(head,tail,p)
+ end
+ if glue_data then
+ if not tail then tail = find_node_tail(head) end
+ if trace then trace_done("result",glue_data) end
+ head, tail = insert_node_after(head,tail,glue_data)
+ end
+ if trace then
+ if glue_data or penalty_data then
+ trace_info("stop flushing",where,what)
end
- return head, done
+ show_tracing(head)
end
+ return head, true
+end
- lists.plugins.kern = {
- namespace = kerns,
- processor = kerns.process,
- }
-
- -- spacing == attributename !! does not belong here but we will
- -- relocate node and attribute stuff once it's more complete !!
+-- alignment after_output end box new_graf vmode_par hmode_par insert penalty before_display after_display
+-- \par -> vmode_par
+--
+-- status.best_page_break
+-- tex.lists.best_page_break
+-- tex.lists.best_size (natural size to best_page_break)
+-- tex.lists.least_page_cost (badness of best_page_break)
+-- tex.lists.page_head
+-- tex.lists.contrib_head
- cases = cases or { }
- cases.enabled = false
- cases.actions = { }
+local stackhead, stacktail, stackhack = nil, nil, false
- -- hm needs to be run before glyphs: chars.plugins
+local function report(message,lst)
+ logs.report("vspacing",message,count_nodes(lst,true),node_ids_to_string(lst))
+end
- local function helper(start, code, codes)
- local data, char = characters.data, start.char
- local dc = data[char]
- if dc then
- local fnt = start.font
- local ifc = fonts.tfm.id[fnt].characters
- local ucs = dc[codes]
- if ucs then
- local ok = true
- for i=1,#ucs do
- ok = ok and ifc[ucs[i]]
- end
- if ok then
- local prev, original, copy = start, start, node.copy
- for i=1,#ucs do
- local chr = ucs[i]
- prev = start
- if i == 1 then
- start.char = chr
- else
- local g = copy(original)
- g.char = chr
- local next = start.next
- g.prev = start
- if next then
- g.next = next
- start.next = g
- next.prev = g
- end
- start = g
- end
+function nodes.handle_page_spacing(where)
+ local newhead = texlists.contrib_head
+ if newhead then
+ statistics.starttiming(vspacing)
+ local newtail = find_node_tail(newhead)
+ local flush = false
+ for n in traverse_nodes(newhead) do -- we could just look for glue nodes
+ local id = n.id
+ if id == glue then
+ if n.subtype == 0 then
+ if has_attribute(n,skip_category) then
+ stackhack = true
+ else
+ flush = true
end
- return prev, true
+ else
+ -- tricky
end
- return start, false
- end
- local uc = dc[code]
- if uc and ifc[uc] then
- start.char = uc
- return start, true
+ else
+ flush = true
end
end
- return start, false
- end
-
- local function upper(start)
- return helper(start,'uccode','uccodes')
- end
- local function lower(start)
- return helper(start,'lccode','lccodes')
- end
-
- cases.actions[1], cases.actions[2] = upper, lower
-
- cases.actions[3] = function(start)
- local prev = start.prev
- if prev and prev.id == kern and prev.subtype == 0 then
- prev = prev.prev
- end
- if not prev or prev.id ~= glyph then
- return upper(start)
- else
- return start, false
- end
- end
-
- cases.actions[4] = function(start)
- local prev, next = start.prev, start.next
- if prev and prev.id == kern and prev.subtype == 0 then
- prev = prev.prev
- end
- if next and next.id == kern and next.subtype == 0 then
- next = next.next
- end
- if (not prev or prev.id ~= glyph) and next and next.id == glyph then
- return upper(start)
- else
- return start, false
- end
- end
-
- cases.actions[5] = function(start)
- local data = characters.data
- local ch = start.char
- local mr = math.random
- local tfm = fonts.tfm.id[start.font].characters
- if data[ch].lccode then
- while true do
- local d = data[mr(1,0xFFFF)]
- if d then
- local uc = d.uccode
- if uc and tfm[uc] then
- start.char = uc
- return start, true
- end
- end
+ if flush then
+ if stackhead then
+ if trace_collect_vspacing then report("appending %s nodes to stack (final): %s",newhead) end
+ stacktail.next = newhead
+ newhead.prev = stacktail
+ newhead = stackhead
+ stackhead, stacktail = nil, nil
end
- elseif data[ch].uccode then
- while true do
- local d = data[mr(1,0xFFFF)]
- if d then
- local lc = d.lccode
- if lc and tfm[lc] then
- start.char = lc
- return start, true
- end
- end
+ if stackhack then
+ stackhack = false
+ if trace_collect_vspacing then report("processing %s nodes: %s",newhead) end
+ texlists.contrib_head = collapser(newhead,"page",where,trace_page_vspacing)
+ else
+ if trace_collect_vspacing then report("flushing %s nodes: %s",newhead) end
+ texlists.contrib_head = newhead
end
else
- return start, false
+ if stackhead then
+ if trace_collect_vspacing then report("appending %s nodes to stack (intermediate): %s",newhead) end
+ stacktail.next = newhead
+ newhead.prev = stacktail
+ else
+ if trace_collect_vspacing then report("storing %s nodes in stack (initial): %s",newhead) end
+ stackhead = newhead
+ end
+ stacktail = newtail
+ texlists.contrib_head = nil
end
+ statistics.stoptiming(vspacing)
end
+end
- -- node.traverse_id_attr
+local ignore = table.tohash {
+ "split_keep",
+ "split_off",
+ -- "vbox",
+}
- function cases.process(namespace,attribute,head) -- not real fast but also not used on much data
- local done, actions = false, cases.actions
- for start in node.traverse_id(glyph,head) do
- local attr = has_attribute(start,attribute)
- if attr and attr > 0 then
- unset_attribute(start,attribute)
- local action = actions[attr]
- if action then
- local _, ok = action(start)
- done = done and ok
- end
- end
- end
- return head, done
+function nodes.handle_vbox_spacing(head,where)
+ if head and not ignore[where] and head.next then
+ statistics.starttiming(vspacing)
+ head = collapser(head,"vbox",where,trace_vbox_vspacing)
+ statistics.stoptiming(vspacing)
end
+ return head
+end
- chars.plugins.case = {
- namespace = cases,
- processor = cases.process,
- }
-
- breakpoints = breakpoints or { }
- breakpoints.mapping = breakpoints.mapping or { }
- breakpoints.methods = breakpoints.methods or { }
- breakpoints.enabled = false
+statistics.register("v-node processing time", function()
+ if statistics.elapsedindeed(vspacing) then
+ return format("%s seconds", statistics.elapsedtime(vspacing))
+ end
+end)
- input.storage.register(false,"breakpoints/mapping", breakpoints.mapping, "breakpoints.mapping")
+-- these are experimental callback definitions that definitely will
+-- be moved elsewhere as part of a chain of vnode handling
- function breakpoints.setreplacement(id,char,kind,before,after)
- local mapping = breakpoints.mapping[id]
- if not mapping then
- mapping = { }
- breakpoints.mapping[id] = mapping
- end
- mapping[char] = { kind or 1, before or 1, after or 1 }
- end
+function vspacing.enable()
+--~ callback.register('vpack_filter', nodes.handle_vbox_spacing)
+ callback.register('buildpage_filter', nodes.handle_page_spacing)
+end
- breakpoints.methods[1] = function(head,start)
- -- no discretionary needed
- -- \def\prewordbreak {\penalty\plustenthousand\hskip\zeropoint\relax}
- -- \def\postwordbreak {\penalty\zerocount\hskip\zeropoint\relax}
- -- texio.write_nl(string.format("injecting replacement type %s for character %s",map[1],utf.char(start.char)))
- if start.prev and start.next then
- node.insert_before(head,start,nodes.penalty(10000))
- node.insert_before(head,start,nodes.glue(0))
- node.insert_after(head,start,nodes.glue(0))
- node.insert_after(head,start,nodes.penalty(0))
- end
- return head, start
- end
- breakpoints.methods[2] = function(head,start) -- ( => (-
- if start.prev and start.next then
- local tmp = start
- start = nodes.disc()
- start.prev, start.next = tmp.prev, tmp.next
- tmp.prev.next, tmp.next.prev = start, start
- tmp.prev, tmp.next = nil, nil
- start.replace = tmp
- local tmp, hyphen = node.copy(tmp), node.copy(tmp)
- hyphen.char = languages.prehyphenchar(tmp.lang)
- tmp.next, hyphen.prev = hyphen, tmp
- start.post = tmp
- node.insert_before(head,start,nodes.penalty(10000))
- node.insert_before(head,start,nodes.glue(0))
- node.insert_after(head,start,nodes.glue(0))
- node.insert_after(head,start,nodes.penalty(10000))
- end
- return head, start
- end
- breakpoints.methods[3] = function(head,start) -- ) => -)
- if start.prev and start.next then
- local tmp = start
- start = nodes.disc()
- start.prev, start.next = tmp.prev, tmp.next
- tmp.prev.next, tmp.next.prev = start, start
- tmp.prev, tmp.next = nil, nil
- start.replace = tmp
- local tmp, hyphen = node.copy(tmp), node.copy(tmp)
- hyphen.char = languages.prehyphenchar(tmp.lang)
- tmp.prev, hyphen.next = hyphen, tmp
- start.pre = hyphen
- node.insert_before(head,start,nodes.penalty(10000))
- node.insert_before(head,start,nodes.glue(0))
- node.insert_after(head,start,nodes.glue(0))
- node.insert_after(head,start,nodes.penalty(10000))
- end
- return head, start
- end
+function vspacing.disable()
+ callback.register('vpack_filter', nil)
+ callback.register('buildpage_filter', nil)
+end
- function breakpoints.process(namespace,attribute,head)
- local done, mapping, fontids = false, breakpoints.mapping, fonts.tfm.id
- local start, n = head, 0
- while start do
- local id = start.id
- if id == glyph then
- local attr = has_attribute(start,attribute)
- if attr and attr > 0 then
- unset_attribute(start,attribute) -- maybe test for subtype > 256 (faster)
- -- look ahead and back n chars
- local map = mapping[attr]
- if map then
- local smap = map[start.char]
- if smap then
- if n >= smap[2] then
- local m = smap[3]
- local next = start.next
- while next do -- gamble on same attribute
- local id = next.id
- if id == glyph then -- gamble on same attribute
- if map[next.char] then
- break
- elseif m == 1 then
- local method = breakpoints.methods[smap[1]]
- if method then
- head, start = method(head,start)
- done = true
- end
- break
- else
- m = m - 1
- next = next.next
- end
- elseif id == kern and next.subtype == 0 then
- next = next.next
- -- ignore intercharacter kerning, will go way
- else
- -- we can do clever and set n and jump ahead but ... not now
- break
- end
- end
- end
- n = 0
- else
- n = n + 1
+-- we will split this module hence the locals
+
+local attribute = attributes.private('graphicvadjust')
+
+local hlist = node.id('hlist')
+local vlist = node.id('vlist')
+
+local remove_node = nodes.remove
+local hpack_node = node.hpack
+local has_attribute = node.has_attribute
+
+function nodes.repackage_graphicvadjust(head,groupcode) -- we can make an actionchain for mvl only
+ if groupcode == "" then -- mvl only
+ local h, p, done = head, nil, false
+ while h do
+ local id = h.id
+ if id == hlist or id == vlist then
+ local a = has_attribute(h,attribute)
+ if a then
+ if p then
+ local n
+ head, h, n = remove_node(head,h)
+ local pl = p.list
+ if n.width ~= 0 then
+ n = hpack_node(n,0,'exactly')
+ end
+ if pl then
+ pl.prev = n
+ n.next = pl
end
+ p.list = n
+ done = true
else
- n = 0
+ -- can't happen
end
+ else
+ p = h
+ h = h.next
end
- elseif id == kern and start.subtype == 0 then
- -- ignore intercharacter kerning, will go way
else
- n = 0
+ h = h.next
end
- start = start.next
end
return head, done
+ else
+ return head, false
end
-
- chars.plugins.breakpoint = {
- namespace = breakpoints,
- processor = breakpoints.process,
- }
-
end
--- educational: snapper
-
---~ function demo_snapper(head,where) -- snap_category 105 / nodes.snapvalue = { [1] = { 8*65536, 4*65536, 12*65536 } }
---~ if head then
---~ local current, tail, dummy = head, nil, nil
---~ while current do
---~ local id = current.id
---~ if id == glue and current.subtype == 2 then
---~ local sn = has_attribute(current,snap_category)
---~ if sn then
---~ local sv = nodes.snapvalues[sn]
---~ if sv then
---~ head, current, dummy = node.delete(head, current)
---~ node.free(dummy)
---~ else
---~ current = current.next
---~ end
---~ else
---~ current = current.next
---~ end
---~ else
---~ if id == hlist and where == 'hmode_par' and current.list then
---~ local sn = has_attribute(current.list,snap_category)
---~ if sn then
---~ local sv = nodes.snapvalues[sn]
---~ if sv then
---~ local height, depth, lineheight = sv[1], sv[2], sv[3]
---~ current.height = math.ceil((current.height-height)/lineheight)*lineheight + height
---~ current.depth = math.ceil((current.depth -depth )/lineheight)*lineheight + depth
---~ end
---~ end
---~ end
---~ current = current.next
---~ end
---~ tail = current
---~ end
---~ end
---~ return head
---~ end
-
---~ callback.register('buildpage_filter', demo_snapper)
+--~ tasks.appendaction("finalizers", "lists", "nodes.repackage_graphicvadjust")
diff --git a/Master/texmf-dist/tex/context/base/core-spa.mkii b/Master/texmf-dist/tex/context/base/core-spa.mkii
index b3d71699d39..7c97bcc9c88 100644
--- a/Master/texmf-dist/tex/context/base/core-spa.mkii
+++ b/Master/texmf-dist/tex/context/base/core-spa.mkii
@@ -11,36 +11,4648 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+\writestatus{loading}{ConTeXt Core Macros / Spacing}
+
+% to be sorted out: dependencies, order of initialization / also some dutch code here
+
\unprotect
-% Just after we implemented the \MKIV\ code, Thanh posted a patch for
-% \PDFTEX. The following code is untested! (\LUATEX\ does not contain
-% this code!)
+% some will move to core-var
+
+\newif \ifgridsnapping
+\newif \iffuzzyvskip
+\let \fuzzyvskip \gobbleoneargument
+\let \removelastfuzzyvskip \relax
+
+\let \startbaselinecorrection \relax
+\let \stopbaselinecorrection \relax
+\let \baselinecorrection \relax
+\let \offbaselinecorrection \relax
+
+\appendtoks \spacing 1\to \everybodyfont
+\appendtoks \presetnormallineheight \to \everybodyfont
+\appendtoks \setnormalbaselines \to \everybodyfont % check if redundant
+\appendtoks \setstrut \to \everybodyfont % check if redundant
+\appendtoks \settopskip \to \everybodyfont
+\appendtoks \setmaxdepth \to \everybodyfont
+%appendtoks \spacing 1\to \everybodyfont
+\appendtoks \simplesetupindenting \to \everybodyfont
+\appendtoks \simplesetupblank \to \everybodyfont
+\appendtoks \simplesetupwhitespace \to \everybodyfont
+%appendtoks \checknotes \to \everybodyfont % not
+\appendtoks \simplesetupspacing \to \everybodyfont % nieuw
+\appendtoks \setrelativeinterlinespace \to \everybodyfont
+
+\appendtoks \updateraggedskips \to \everyfontswitch % under test
+\prependtoks \let\par\endgraf \to \everypagebody % see \fillinline
+\appendtoks \simplesetupspacing \to \everydefinedfont
+
+% if you want to hyphenate the first word of a paragraph ... \appendtoks\hskip0pt\to\everypar
+
+\def\stelfactorenin
+ {\simplesetupwhitespace
+ \simplesetupblank
+ \settopskip
+ \setmaxdepth}
+
+\def\softbreak
+ {\relax\ifhmode\hskip\parfillskip\break\fi}
+
+\let\poplastnode\relax
+
+\def\pushlastnode
+ {\ifdim\lastskip=\zeropoint
+ \ifnum\lastpenalty=\zerocount
+ \ifnum\lastkern=\zerocount
+ \let\poplastnode\relax
+ \else
+ \edef\poplastnode{\kern\the\lastkern\relax}\kern-\lastkern % untested
+ \fi
+ \else
+ \edef\poplastnode{\penalty\the\lastpenalty\relax}\nobreak % untested
+ \fi
+ \else
+ \edef\poplastnode{\vskip\the\lastskip\relax}\vskip-\lastskip % \removelastskip
+ \fi}
+
+%D The dreadful sequence \type {\bgroup} \unknown\
+%D \type {\carryoverpar} \unknown\ \type {\egroup} is needed
+%D when for instance sidefloats are used in combination with
+%D something that starts with a group. This is because
+%D otherwise the indentation as set (by the output routine)
+%D inside the group are forgotten afterwards. (I must
+%D not forget its existence).
+
+\global\let\carriedoverpar\relax
+
+\def\carryoverpar#1%
+ {\expanded % \scratchtoks{#1}%
+ {\noexpand#1% \the\scratchtoks
+ \hangindent\the\hangindent
+ \hangafter \the\hangafter
+ \parskip \the\parskip
+ \leftskip \the\leftskip
+ \rightskip \the\rightskip}}
+
+%D A quick way to determine left|/|middle|/|right states
+%D (experimental).
+
+\setvalue{\??as\v!left }{0}
+\setvalue{\??as\v!middle}{1}
+\setvalue{\??as\v!right }{2}
+
+\def\setalignmentswitch#1%
+ {\chardef\alignmentswitch0\csname\??as#1\endcsname\relax}
+
+%D There are two ways to influence the interline spacing. The
+%D most general and often most consistent way is using
+%D
+%D \showsetup{setupinterlinespace}
+%D
+%D For instance
+%D
+%D \starttyping
+%D \setupinterlinespace[line=2.8ex]
+%D \stoptyping
+%D
+%D This setting adapts itself to the bodyfontsize, while for
+%D 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
+%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}.
+
+\newif\iflocalinterlinespace
+
+% font-ini
+
+\ifx\bodyfontinterlinespecs\undefined
+
+ \let\bodyfontinterlinespecs\empty
+ \let\bodyfontinterlinespace\empty
+
+\fi
+
+\def\presetnormallineheight
+ {\edef\normallineheight{\@@itline}%
+% done elsewhere : \spacing\!!plusone % new per 10/08/2004, else problems in otr / !! needed
+ \iflocalinterlinespace \else
+ \doifdefined\bodyfontinterlinespecs
+ {\doifsomething\bodyfontinterlinespace
+ {\edef\normallineheight{\bodyfontinterlinespace}}}%
+ \fi}
+
+\def\setupspecifiedinterlinespace[#1]%
+ {\getparameters[\??it][#1]%
+ \scratchdimen0\@@itheight\points
+ \advance\scratchdimen 0\@@itdepth\points
+ \ifdim\scratchdimen>\onepoint
+ \showmessage\m!layouts{10}{\@@itheight,\@@itdepth}%
+ \let\@@itheight\strutheightfactor
+ \let\@@itdepth \strutdepthfactor
+ \else
+ \let\strutheightfactor\@@itheight
+ \let\strutdepthfactor \@@itdepth
+ \fi
+ \let\minimumstrutheight \@@itminheight
+ \let\minimumstrutdepth \@@itmindepth
+ \let\minimumlinedistance\@@itdistance
+ \let\normallineheight \@@itline % let ! ! ! ! ! ivm ex
+ \doifelse\@@ittop\v!height % new, topskip does more bad than good
+ {\let\topskipfactor \@@itheight}
+ {\let\topskipfactor \@@ittop }%
+ \let\maxdepthfactor \@@itbottom
+ \let\baselinegluefactor \@@itstretch
+ \setfontparameters % redundant, can be \setstrut, test first
+ \updateraggedskips} % yes indeed
+
+% \let\currentrelativeinterlinespace\empty
+%
+% \def\setuprelativeinterlinespace[#1]%
+% {\processallactionsinset
+% [#1]
+% [ \v!on=>\oninterlineskip,
+% \v!off=>\offinterlineskip,
+% \v!reset=>\let\currentrelativeinterlinespace\empty
+% \setfontparameters,% just \setstrut, test first
+% \s!unknown=>\assignvalue{#1}\currentrelativeinterlinespace{1.00}{1.25}{1.50}%
+% \spacing\currentrelativeinterlinespace]}
+
+% \setupinterlinespace[big] \switchtobodyfont[11pt] -> forgotten
+% \setupinterlinespace[auto,big] \switchtobodyfont[11pt] -> remembered
+
+\let\currentrelativeinterlinespace\empty
+
+\def\setuprelativeinterlinespace[#1]%
+ {\processallactionsinset
+ [#1]
+ [ \v!on=>\oninterlineskip,
+ \v!off=>\offinterlineskip,
+ \v!reset=>\let\currentrelativeinterlinespace\empty
+ \let\setrelativeinterlinespace\relax
+ \setfontparameters,
+ \v!auto=>\let\setrelativeinterlinespace\dosetrelativeinterlinespace,
+ \s!unknown=>\assignvalue\commalistelement\currentrelativeinterlinespace{1.00}{1.25}{1.50}%
+ \spacing\currentrelativeinterlinespace]}
+
+\def\dosetrelativeinterlinespace
+ {\ifx\currentrelativeinterlinespace\empty\else
+ \spacing\currentrelativeinterlinespace
+ \fi}
+
+\let\setrelativeinterlinespace\relax
+
+% \appendtoks \setrelativeinterlinespace \to \everybodyfont
+
+\def\complexsetupinterlinespace[#1]% \commalistelement ipv #1
+ {\doifassignmentelse{#1}\setupspecifiedinterlinespace\setuprelativeinterlinespace[#1]}
+
+\def\setuplocalinterlinespace[#1]%
+ {\localinterlinespacetrue
+ \setupinterlinespace[#1]%
+ \localinterlinespacefalse}
+
+\def\simplesetupinterlinespace
+ {\localinterlinespacetrue
+ \setfontparameters
+ \updateraggedskips % funny one here
+ \localinterlinespacefalse}
+
+\definecomplexorsimple\setupinterlinespace
+
+% In earlier versions \type{\bigskipamount} was
+% \type{\ht\strutbox} and the stretch was plus or minus
+% \type{.4\dp\strutbox}. Don't ask me why. The most recent
+% implementation is based on a user supplied distance, which
+% is by default \type{.75\normalskipamount} where
+% \type{\normalskipamount} equals the current baseline
+% distance.
+
+% \lineskiplimit = -\maxdimen -> freezes baselineskip
+
+% can be conditionals
+
+\newif\ifblanknowhite \blanknowhitefalse
+\newif\ifblankindeed \blankindeedfalse
+\newif\ifblankreset \blankresetfalse
+\newif\ifblankdisable \blankdisablefalse
+\newif\ifblankflexible \blankflexibletrue
+\newif\ifblankouter
+\newif\ifblankforce
+\newif\ifblankgoback
+
+\newskip\blankskip \blankskip=\bigskipamount
+\newskip\blankskipamount
+
+\def\skipfactor {.75}
+\def\skipgluefactor{.25}
+
+\def\normalskipamount
+ {\openlineheight
+ \ifgridsnapping \else \ifblankflexible
+ \!!plus \skipgluefactor\openlineheight
+ \!!minus\skipgluefactor\openlineheight
+ \fi \fi
+ \relax}
+
+\def\linedistance {\normalskipamount}
+\def\appliedblankskip{\skipfactor\linedistance}
+\def\lastblankskip {\blankskip}
+\def\currentblank {\v!big}
+\def\oldprevdepth {\prevdepth}
+\def\newprevdepth {-1001pt}
+\def\mindimen {1sp} % was: 0.00002pt
+
+\newif\iflocalblankfixed
+\newif\iflocalblankflexible
+
+\def\geenblanko{\removelastskip} % will become obsolete
+
+%%%% pas op, wordt ook in core-pos gebruikt
+
+\def\doassignsomeskip#1\to#2% ook nog \v!halfline+fuzzysnap
+ {\doifelse{#1}\v!line
+ {#2\openlineheight}
+ {\ifgridsnapping
+ \assigndimension{#1}{#2}{.25\openlineheight}{.5\openlineheight}\openlineheight
+ \else
+ \assigndimension{#1}{#2}\smallskipamount\medskipamount\bigskipamount
+ \fi}%
+ \relax}
+
+% \relax is really needed, else we may loose stretch due to lookahead; somehow
+% this bug was introduced a while ago but somehow went unnoticed; fixed 2/7/2008
+
+\def\addblankskip#1#2#3{\global\advance\blankskip#1\ifgridsnapping#3\else#2\fi\relax}
+
+\def\defineblankmethod[#1]#2{\setvalue{\??bo\??bo#1}{#2}}
+
+\defineblankmethod [\v!big] {\addblankskip+\bigskipamount \openlineheight}
+\defineblankmethod [-\v!big] {\addblankskip-\bigskipamount \openlineheight}
+\defineblankmethod [\v!medium] {\addblankskip+\medskipamount {.5\openlineheight}}
+\defineblankmethod [-\v!medium] {\addblankskip-\medskipamount {.5\openlineheight}}
+\defineblankmethod [\v!small] {\addblankskip+\smallskipamount{.25\openlineheight}}
+\defineblankmethod [-\v!small] {\addblankskip-\smallskipamount{.25\openlineheight}}
+\defineblankmethod [\v!white] {\addblankskip+\parskip \openlineheight}
+\defineblankmethod [-\v!white] {\addblankskip-\parskip \openlineheight}
+\defineblankmethod [\v!line] {\addblankskip+\openlineheight \openlineheight}
+\defineblankmethod [-\v!line] {\addblankskip-\openlineheight \openlineheight}
+
+\defineblankmethod [\v!formula] {\global\advance\blankskip\medskipamount}
+\defineblankmethod [\v!nowhite] {\global\blanknowhitetrue}
+\defineblankmethod [\v!disable] {\global\blankdisabletrue}
+\defineblankmethod [\v!force] {\global\blankforcetrue}
+\defineblankmethod [\v!outer] {\ifvmode\ifinner\blankoutertrue\fi\fi}
+\defineblankmethod [\v!reset] {\global\blankresettrue}
+\defineblankmethod [\v!flexible] {\global\localblankflexibletrue}
+\defineblankmethod [\v!fixed] {\global\localblankfixedtrue}
+\defineblankmethod [\v!back] {\global\blankgobacktrue} % {\geenblanko}
+\defineblankmethod [\v!halfline] {\ifgridsnapping\global\fuzzyvskiptrue\fi
+ \global\advance\blankskip .5\lineheight}
+\defineblankmethod [\v!none] {\global\blankresettrue}
+\defineblankmethod [\v!joinedup] {\ifvmode\nointerlineskip\fi}
+\defineblankmethod[\v!synchronize] {\verticalstrut\vskip-2\lineheight\verticalstrut}
+
+% \vtop{\blank[synchronize]\blank[line]test}
+
+\defineblankmethod [\v!always] {\redowhitespace} % experimental
+
+% happens often, so we speed this up:
+%
+% \defineblankmethod [2*\v!line] {\addblankskip+{2\openlineheight}{2\openlineheight}}
+% \defineblankmethod [2*\v!big] {\addblankskip+{2\bigskipamount }{2\openlineheight}}
+%
+% no, with 2\whatever we loose the stretch and shrink! Taco's alternative:
+
+\defineblankmethod
+ [2*\v!line]
+ {\addblankskip+\openlineheight\openlineheight
+ \addblankskip+\openlineheight\openlineheight}
+
+\defineblankmethod
+ [2*\v!big]
+ {\addblankskip+\bigskipamount\openlineheight
+ \addblankskip+\bigskipamount\openlineheight}
+
+\def\doblank#1%
+ {\edefconvertedargument\ascii{#1}%
+ \ifx\ascii\empty\else
+ \ifcsname\??bo\??bo\ascii\endcsname % internal def
+ \csname\??bo\??bo\ascii\endcsname
+ \else\ifcsname\??bo\ascii\endcsname % user def / slow
+ \@EA\rawprocesscommalist\@EA[\csname\??bo\ascii\endcsname]\doblank\relax
+ \else
+ \dorepeatwithcommand[#1]\redoblank
+ \fi\fi
+ \fi
+ \relax}
+
+\def\redoblank#1%
+ {\edefconvertedargument\ascii{#1}%
+ \ifx\ascii\empty\else
+ \ifcsname\??bo\??bo\ascii\endcsname % internal def
+ \csname\??bo\??bo\ascii\endcsname
+ \else\ifcsname\??bo\ascii\endcsname % user def / slow
+ \@EA\rawprocesscommalist\@EA[\csname\??bo\ascii\endcsname]\doblank\relax
+ \else
+ \global\advance\blankskip#1\relax
+ \fi\fi
+ \fi
+ \relax}
+
+\unexpanded\def\blank % the \relax is definitely needed due to the many \if's
+ {\relax\complexorsimple\doblank}
+
+\def\complexdoblank
+ {\flushnotes
+ \ifmmode
+ \@EA\nocomplexdoblank
+ \else
+ \ifopelkaar
+ \ifinpagebody
+ \@EA\@EAEAEA\@EA\docomplexdoblank
+ \else
+ \@EA\@EAEAEA\@EA\nocomplexdoblank
+ \fi
+ \else
+ \@EAEAEA\docomplexdoblank
+ \fi
+ \fi}
+
+\def\nocomplexdoblank[#1]%
+ {% evt blokkeerfalse
+ \ifmmode\else\par\fi}
+
+% Overloaded in cont-new!
+
+\newsignal\noblanksignal
+
+% \def\doinhibitblank
+% {\kern\noblanksignal}
+
+% \def\inhibitblank% the fast, local way
+% {\endgraf\ifvmode\prevdepth\newprevdepth\fi}
+
+% \def\docomplexdoblank[#1]% pas op \relax's zijn nodig ivm volgende \if
+% {\global\blankresetfalse
+% \global\blankdisablefalse
+% \global\blanknowhitefalse
+% \global\localblankflexiblefalse
+% \global\localblankfixedfalse
+% \global\blankskip\zeropoint
+% \global\blankforcefalse
+% \global\blankgobackfalse
+% \blankouterfalse
+% \expanded{\rawprocesscommalist[#1]}\doblank
+% \ifdim\blankskip=\zeropoint\relax
+% \iflocalblankflexible
+% \doglobal\advance\blankskip \currentblank
+% \else\iflocalblankfixed
+% \doglobal\advance\blankskip \currentblank
+% \fi\fi
+% \fi
+% \ifblankouter
+% \else
+% \par
+% \ifvmode
+% \ifblankgoback
+% \removelastskip
+% \fi
+% \ifblankforce
+% % dit gaat mis in pos fonts
+% % \ifdim\prevdepth>\zeropoint\else ...
+% % -1000pt signals top of page or column (\ejectcolumn)
+% \bgroup\forgeteverypar\verticalstrut\egroup\kern-\struttotal
+% \fi
+% \ifblankdisable
+% \global\blankindeedfalse
+% \ifgridsnapping
+% \ifdim\prevdepth<\zeropoint
+% % brrr
+% \else
+% % dirty trick: smaller blanks are ignored after
+% % a larger one, so 10 lines is probably safe; first make
+% % sure that we honor penalties
+% \scratchcounter\lastpenalty
+% % now comes the trick (cross our fingers that this works
+% % well in multi columns; maybe an ifinner test is needed
+% % \vskip-10\lineheight
+% % \ifnum\scratchcounter=\zerocount \else \penalty\lastpenalty \fi
+% % \vskip 10\lineheight
+% % allas, this leads to overfull pages, so we try this:
+% \kern-\noblanksignal
+% \ifnum\scratchcounter=\zerocount
+% \else
+% \penalty\lastpenalty
+% \fi
+% \kern\noblanksignal
+% % end-of-dirty-trick
+% \fi
+% \else
+% \ifdim\prevdepth<\zeropoint
+% % brrr
+% \else
+% % ensure at least a proper prevdepth, this should be
+% % an option
+% \vskip-\prevdepth
+% \vskip\strutdepth
+% \prevdepth\strutdepth
+% \fi
+% % the old crappy piece of code
+% \edef\oldprevdepth{\the\prevdepth}%
+% \prevdepth\newprevdepth
+% \fi
+% \else
+% \global\blankindeedtrue
+% \fi
+% \ifblankreset
+% \global\blankindeedtrue
+% \ifgridsnapping
+% % let's play safe and not fool around with the depth, if
+% % only because it took a lot of effort to sort out the grid
+% % stuff in the first place
+% \else
+% \ifdim\prevdepth=\newprevdepth
+% \prevdepth\oldprevdepth
+% \fi
+% \fi
+% \fi
+% \ifblankindeed
+% \ifdim1\lastskip<1\blankskip\relax
+% % else when \blanko[2*groot] + \blanko[3*groot] with parskip
+% % equaling 1*groot, gives a groot=\parskip so adding a small
+% % value makes it distinguishable; can also be done at parskip
+% % setting time (better)
+% \global\advance\blankskip \mindimen\relax % = skip
+% % test this on 2* + 3* and parskip groot
+% \ifblanknowhite
+% \global\advance\blankskip -\parskip
+% \else
+% \ifdim\lastskip=\parskip
+% \else % force this due to previous comment
+% \ifdim\parskip>\zeropoint\relax
+% \ifdim\blankskip<\parskip\relax
+% \global\blankskip\zeropoint
+% \else
+% \global\advance\blankskip -\parskip
+% \fi
+% \fi
+% \fi
+% \fi
+% \ifblankflexible \else
+% \blankskip1\blankskip
+% \fi
+% \iflocalblankfixed
+% \blankskip1\blankskip
+% \fi
+% \iflocalblankflexible
+% \blankskip1\blankskip
+% \!!plus\skipgluefactor\blankskip
+% \!!minus\skipgluefactor\blankskip
+% \fi
+% \ifdim\lastkern=\noblanksignal % controled and grid
+% \global\blankindeedfalse
+% \else\ifgridsnapping\else\ifdim\prevdepth=\newprevdepth
+% \global\blankindeedfalse
+% \fi\fi\fi
+% \ifblankindeed
+% \iffuzzyvskip
+% \removelastfuzzyvskip
+% \fuzzyvskip\blankskip\relax
+% \else
+% \removelastskip
+% \vskip\blankskip\relax
+% \fi
+% \fi
+% \else
+% \iffuzzyvskip
+% \removelastfuzzyvskip
+% \fuzzyvskip\blankskip\relax
+% \else
+% % new, test this on pascal
+% \ifdim\blankskip<\zeropoint
+% \advance\blankskip-\lastskip
+% \removelastskip
+% \ifdim\blankskip>\zeropoint
+% \vskip\blankskip
+% \else
+% \vskip\zeropoint
+% \fi
+% \else
+% % also new
+% \ifdim\blankskip=\zeropoint
+% \ifblanknowhite
+% \geenwitruimte
+% \fi
+% \fi
+% \fi
+% \fi
+% \fi
+% \fi
+% \fi
+% \fi
+% \global\fuzzyvskipfalse
+% \presetindentation}
+
+% goback was broken:
+
+% \def\doinhibitblank
+% {\kern\noblanksignal}
+
+% \def\inhibitblank% the fast, local way
+% {\endgraf\ifvmode\prevdepth\newprevdepth\fi}
+
+% problem: we cannot look back in the mvl so we need 3 kinds of signals
+
+\def\noblankpsignal{1010101}
+
+\def\inhibitgridblank % was doinhibitblank
+ {\ifvmode\else\endgraf\fi
+ \ifvmode
+ \ifnum\lastpenalty<10000
+ \kern-\noblanksignal % new
+ \kern \noblanksignal
+ \else
+ \penalty\noblankpsignal
+ \fi
+ \fi}
+
+\def\inhibittextblank % was inhibitblank
+ {\endgraf
+ \ifvmode
+ \prevdepth\newprevdepth
+ \fi}
+
+% new macro
+%
+% \def\inhibitblank % need some work
+% {\endgraf
+% \ifvmode
+% \ifgridsnapping
+% \inhibitgridblank
+% \else
+% % this one spoils the grid
+% \inhibittextblank
+% \fi
+% \fi}
+
+\def\doinhibitblank{\inhibitgridblank}
+\def\inhibitblank {\inhibittextblank}
+
+% will become obsolete
+
+\ifx\undefined\savedlastskip \newskip \savedlastskip \fi
+\ifx\undefined\savedlastpenalty \newcount\savedlastpenalty \fi
+
+% beware, prevdepth can have funny values (e.g. mvl value when in box)
+
+\def\docomplexdoblank[#1]% pas op \relax's zijn nodig ivm volgende \if
+ {\global\blankresetfalse
+ \global\blankdisablefalse
+ \global\blanknowhitefalse
+ \global\localblankflexiblefalse
+ \global\localblankfixedfalse
+ \global\blankforcefalse
+ \global\blankgobackfalse
+ \blankouterfalse
+ \global\blankskip\zeropoint
+%
+\edefconvertedargument\ascii{#1}% todo fast check for simple
+\ifcsname\??bo\??bo\ascii\endcsname % internal def
+ \csname\??bo\??bo\ascii\endcsname
+\else\ifcsname\??bo\ascii\endcsname % user def / slow
+ \@EA\rawprocesscommalist\@EA[\csname\??bo\ascii\endcsname]\doblank\relax
+\else
+ \expanded{\rawprocesscommalist[#1]}\doblank
+\fi\fi
+%
+ \relax % to be sure
+ \ifdim\blankskip=\zeropoint\relax
+ \iflocalblankflexible
+ \doglobal\advance\blankskip \currentblank
+ \else\iflocalblankfixed
+ \doglobal\advance\blankskip \currentblank
+ \fi\fi
+ \fi
+ \relax % to be sure
+ \ifblankouter
+ % do nothing
+ \else
+ \par
+ \ifvmode
+ \ifblankgoback
+ \ifdim\lastskip>\zeropoint \vskip-\lastskip \fi
+ \savedlastskip\zeropoint
+ \else\ifdim\lastskip>\zeropoint
+ \savedlastskip\lastskip
+ \else % todo: lastnode, dan namelijk geen skip !
+ \savedlastskip\zeropoint
+ \fi\fi
+ \ifblankforce
+ % dit gaat mis in pos fonts
+ % \ifdim\prevdepth>\zeropoint\else ...
+ % -1000pt signals top of page or column (\ejectcolumn)
+ \bgroup\forgeteverypar\verticalstrut\egroup\kern-\struttotal
+ \savedlastskip\zeropoint
+ \fi
+ \savedlastpenalty\lastpenalty % hm, now it gets lost
+ \ifblankdisable
+ \global\blankindeedfalse % keep this, i.e. disable current too
+ \ifgridsnapping
+ \ifdim\prevdepth<\zeropoint
+ % brrr
+ \else
+ % dirty trick: smaller blanks are ignored after a
+ % larger one, so 10 lines is probably safe; we need
+ % to make sure that we honor penalties; here comes the
+ % trick (cross our fingers that this works well in
+ % multi columns; maybe an ifinner test is needed
+ % \scratchcounter\lastpenalty
+ % \vskip-10\lineheight
+ % \ifnum\scratchcounter=\zerocount \else \penalty\lastpenalty \fi
+ % \vskip 10\lineheight
+ % alas, this leads to overfull pages, so we try this:
+ \inhibitgridblank
+ \fi
+ \else
+ \ifdim\prevdepth<\zeropoint
+ % brrr
+ \else
+ % ensure at least a proper prevdepth, this should be
+ % an option
+ \vskip-\prevdepth
+ \vskip\strutdepth
+ \prevdepth\strutdepth
+ \fi
+ % the old crappy piece of code
+ \edef\oldprevdepth{\the\prevdepth}%
+ \prevdepth\newprevdepth % == \inhibittextblank
+ \fi
+ \else
+ \global\blankindeedtrue
+ \fi
+ \ifblankreset
+ \global\blankindeedtrue
+ \ifgridsnapping
+ % let's play safe and not fool around with the depth, if
+ % only because it took a lot of effort to sort out the grid
+ % stuff in the first place
+ \else
+ \ifdim\prevdepth=\newprevdepth
+ \prevdepth\oldprevdepth
+ \fi
+ \fi
+ \fi
+ \ifblankindeed
+ \ifdim1\savedlastskip<1\blankskip\relax
+ % else when \blank[2*groot] + \blank[3*groot] with parskip
+ % equaling 1*groot, gives a groot=\parskip so adding a small
+ % value makes it distinguishable; can also be done at parskip
+ % setting time (better)
+ \global\advance\blankskip \mindimen\relax % = skip
+ % test this on 2* + 3* and parskip groot
+ \ifblanknowhite
+ \global\advance\blankskip -\parskip
+ \else
+ \ifdim\savedlastskip=\parskip
+ \else % force this due to previous comment
+ \ifdim\parskip>\zeropoint\relax
+ \ifdim\blankskip<\parskip\relax
+ \global\blankskip\zeropoint
+ \else
+ \global\advance\blankskip -\parskip
+ \fi
+ \fi
+ \fi
+ \fi
+ \ifblankflexible \else
+ \blankskip1\blankskip
+ \fi
+ \iflocalblankfixed
+ \blankskip1\blankskip
+ \fi
+ \iflocalblankflexible
+ \blankskip1\blankskip
+ \!!plus \skipgluefactor\blankskip
+ \!!minus\skipgluefactor\blankskip
+ \fi
+ \ifdim\lastkern=\noblanksignal\relax % controlled and grid
+ \global\blankindeedfalse
+ \else\ifnum\savedlastpenalty=\noblankpsignal\relax % controlled and grid
+ \global\blankindeedfalse
+ \else\ifgridsnapping\else\ifdim\prevdepth=\newprevdepth
+ \global\blankindeedfalse
+ \fi\fi\fi\fi
+ \ifblankindeed
+ \iffuzzyvskip
+ \removelastfuzzyvskip
+ \fuzzyvskip\blankskip\relax
+ \else
+ \relax\ifdim\savedlastskip=\zeropoint\else
+ \vskip-\savedlastskip
+ \fi
+ \vskip\blankskip\relax
+ \fi
+ \fi
+ \else
+ \iffuzzyvskip
+ \removelastfuzzyvskip
+ \fuzzyvskip\blankskip\relax
+ \else
+ % new, test this on pascal
+ \ifdim\blankskip<\zeropoint
+ \relax\ifdim\savedlastskip=\zeropoint\else
+ \advance\blankskip-\savedlastskip
+ \vskip-\savedlastskip
+ \fi
+ \ifdim\blankskip>\zeropoint
+ \vskip\blankskip
+ \else
+ \vskip\zeropoint
+ \fi
+ \else
+ % also new
+ \ifdim\blankskip=\zeropoint
+ \ifblanknowhite
+ \nowhitespace
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \global\fuzzyvskipfalse
+ \presetindentation}
+
+%D For a long time we had:
+%D
+%D \starttyping
+%D \def\simpledoblank%
+%D {\doifelse{\currentwhitespace}{\v!geen}
+%D {\blank[\currentblank]}
+%D {\blank[\currentwhitespace]}}
+%D \stoptyping
+%D
+%D But Berend de Boer wanted more control, so now we have:
+
+\def\simpledoblank % ...
+ {\doifelse\currentwhitespace\v!none
+ {\blank[\currentblank]}
+ {\blank[\s!default]}}
+
+%D Another useful definition would be:
+%D
+%D \starttyping
+%D \defineblank
+%D [\s!default]
+%D [\v!groot]
+%D \stoptyping
+
+\def\dosetupblank#1% amount are an plain inheritance
+ {\bigskipamount#1\relax
+ \ifblankflexible \else
+ \bigskipamount1\bigskipamount
+ \fi
+ \medskipamount \bigskipamount \divide\medskipamount \plustwo
+ \smallskipamount\bigskipamount \divide\smallskipamount\plusfour}%
+
+\def\complexsetupblank[#1]% more \let's -> this also wil become installable
+ {\ifgridsnapping
+ \blankflexiblefalse
+ \else
+ \ExpandFirstAfter\processallactionsinset
+ [#1]
+ [ \v!flexible=>\blankflexibletrue,
+ \v!fixed=>\blankflexiblefalse]%
+ \fi
+ \ExpandFirstAfter\processallactionsinset
+ [#1]
+ [ \v!flexible=>\dosetupblank\appliedblankskip,
+ \v!fixed=>\dosetupblank\appliedblankskip,
+ \v!line=>\edef\appliedblankskip{\linedistance}%
+ \dosetupblank\appliedblankskip,
+ \v!halfline=>\scratchskip.5\linedistance
+ \edef\appliedblankskip{\the\scratchskip}%
+ \dosetupblank\appliedblankskip,
+ \v!big=>\ifgridsnapping
+ \edef\appliedblankskip{\linedistance}%
+ \dosetupblank\appliedblankskip
+ \fi
+ \let\currentblank\v!big,
+ \v!medium=>\let\currentblank\v!medium,
+ \v!small=>\let\currentblank\v!small,
+ \v!global=>\let\currentblank\v!global,
+ \v!normal=>\dosetupblank\appliedblankskip,
+ \v!standard=>\edef\appliedblankskip{\skipfactor\linedistance}%
+ \dosetupblank\appliedblankskip,
+ \s!default=>\dosetupblank\appliedblankskip,
+ \s!unknown=>\let\appliedblankskip\commalistelement
+ \dosetupblank\appliedblankskip]%
+ \simplesetupwhitespace}
+
+% \definecomplexorsimpleempty\setupblank
+%
+% speed gain: 60 sec -> 30 sec
+
+\definecomplexorsimple\setupblank
+
+\def\simplesetupblank % == snelle \setupblank[\s!default]
+ {\ifgridsnapping
+ \blankflexiblefalse
+ \fi
+ \dosetupblank\appliedblankskip
+ % \let\deblanko\v!big
+ \simplesetupwhitespace}
+
+\def\restorestandardblank% \v!standard
+ {\edef\appliedblankskip{\skipfactor\linedistance}%
+ \dosetupblank\appliedblankskip
+ }%\let\deblanko\v!big}
+
+\def\dodefineblank[#1][#2]%
+ {\def\docommand##1{\setvalue{\??bo##1}{#2}}%
+ \processcommalist[#1]\docommand}
+
+\def\defineblank
+ {\dodoubleargument\dodefineblank}
+
+\def\savecurrentblank
+ {\edef\restorecurrentblank
+ {\bigskipamount\the\bigskipamount
+ \medskipamount\the\medskipamount
+ \smallskipamount\the\smallskipamount
+ \noexpand\def\noexpand\currentblank{\currentblank}%
+ \ifblankflexible
+ \noexpand\blankflexibletrue
+ \else
+ \noexpand\blankflexiblefalse
+ \fi}}
+
+%D Now.
+
+\defineblank [\s!default] [\v!white]
+\defineblank [\v!height] [\strutheight]
+\defineblank [\v!depth] [\strutdepth]
+
+% old implementation
+%
+% \let\currentindentation=\empty
+%
+% \newdimen\ctxparindent
+%
+% \newif\ifindentfirstparagraph % \indentfirstparagraphtrue
+%
+% \def\presetindentation
+% {\doifoutervmode{\ifindentfirstparagraph\else\noindentation\fi}}
+%
+% \definecomplexorsimple\setupindenting
+%
+% \def\complexsetupindenting[#1]%
+% {\processallactionsinset
+% [#1]
+% [ \v!first=>\indentfirstparagraphtrue,
+% \v!next=>\indentfirstparagraphfalse,
+% \s!default=>\simplesetupindenting,
+% \s!unknown=>\edef\currentindentation{\commalistelement}%
+% \simplesetupindenting]}
+%
+% \def\simplesetupindenting
+% {\assigndimension\currentindentation\ctxparindent{1em}{1.5em}{2em}%
+% \parindent\ctxparindent\relax}
+%
+% \def\indenting % watch out: \dodo and no \do
+% {\dosingleargument\dodoindenting}
+%
+% \def\dodoindenting[#1]% oeps, we needed a commalist handler here!
+% {\edef\currentindenting{#1}%
+% \processcommacommand[#1]\dododoindenting}
+%
+% \def\dododoindenting#1%
+% {\executeifdefined{\??in:#1}\donothing}
+%
+% \let\currentindenting\empty
+%
+% \def\defineindentingmethod[#1]#2%
+% {\setvalue{\??in:#1}{#2}}
+%
+% \defineindentingmethod [\v!no] {\parindent\ctxparindent\noindent}
+% \defineindentingmethod [\v!not] {\parindent\ctxparindent\noindent}
+%
+% \defineindentingmethod [\v!first] {\indentfirstparagraphtrue}
+% \defineindentingmethod [\v!next] {\indentfirstparagraphfalse}
+%
+% \defineindentingmethod [\v!yes] {\parindent\ctxparindent\relax} % no \indent !
+% \defineindentingmethod [\v!always] {\parindent\ctxparindent\relax} % no \indent !
+%
+% \defineindentingmethod [\v!never] {\parindent\zeropoint\relax} % no \indent !
+%
+% \def\noindenting{\indenting[\v!no,\v!next]} % was \nietinspringen
+% \def\doindenting{\indenting[\v!yes,\v!first]} % was \welinspringen
+%
+% \def\dochecknextindentation#1% internal one
+% {\checknextindentation[\getvalue{#1\c!indentnext}]}
+%
+% \def\checknextindentation[#1]%
+% {\processaction[#1][%\v!keep=>,
+% \v!yes=>\doindentation,
+% \v!no=>\noindentation,
+% \v!auto=>\autoindentation]}
+%
+% \def\doindentation% too simple
+% {\gdef\checkindentation{\global\indentationtrue}}
+%
+% \ifx\autoindentation\undefined
+% \let\autoindentation\relax
+% \fi
+%
+% \newif\ifindentation \indentationtrue % documenteren, naar buiten
+%
+% \let\checkindentation=\relax
+%
+% \def\donoindentation
+% {\ifdim\parindent=\zeropoint \else
+% \bgroup \setbox\scratchbox\lastbox \egroup
+% \fi}
+%
+% \def\noindentation % made global
+% {\ifinpagebody \else
+% \global\indentationfalse
+% \gdef\checkindentation
+% {\donoindentation
+% \gdef\checkindentation{\global\indentationtrue}}%
+% \fi}
+%
+% \def\nonoindentation % bv bij floats
+% {\ifinpagebody \else
+% \global\indentationtrue
+% \gdef\checkindentation{\global\indentationtrue}%
+% \fi}
+%
+% \def\indentation
+% {\ifvmode \ifdim\parindent=\zeropoint \else
+% % was : \hskip\parindent
+% % can be: \indent
+% % but we test:
+% \noindent\hskip\parindent
+% \fi \fi}
+
+\let\currentindentation\empty % amount/keyword
+% \let\normalindentation \empty % used for reinstating normal indentation
+\let\currentindenting \empty % method
+
+\newdimen\ctxparindent
+
+\newif\ifindentfirstparagraph % \indentfirstparagraphtrue
+
+\chardef\indentingtoggle\zerocount
+
+%D After a blank or comparable situation (left side floats) we
+%D need to check if the next paragraph has to be indented.
+
+\def\presetindentation
+ {\doifoutervmode{\ifindentfirstparagraph\else\noindentation\fi}}
+
+%D This sets up the (normally) global indentation behavior as well
+%D as the amounts.
+
+\definecomplexorsimple\setupindenting
+
+% \def\complexsetupindenting[#1]%
+% {\edef\currentindenting{#1}%
+% \indentfirstparagraphtrue
+% \parindent\ctxparindent
+% \chardef\indentingtoggle\zerocount
+% \processcommalist[#1]\docomplexsetupindenting
+% \ifindentfirstparagraph\else\noindentation\fi % added
+% \toggleindentation}
+
+\indentfirstparagraphtrue
+\parindent\ctxparindent
+\chardef\indentingtoggle\zerocount
+
+% \newtoks\savedeverypar \savedeverypar\everypar
+% \def\restoreeverypar{\everypar\savedeverypar}
+
+% we need a better everypar model: for each option a switch, which we
+% set to false with \forgetall and can enable when needed (context 4);
+% that way we can control the order of execution of options
+
+\def\checkeverypar % currently a hack
+ {\ifzeropt\parindent\else
+ \doifsometokselse\everypar\donothing{\appendtoks\checkindentation\to\everypar}%
+ \fi}
+
+\def\complexsetupindenting[#1]%
+ {\edef\currentindenting{#1}%
+ \doifsomething\currentindenting % handy when a parameter is passed
+ {% not here: \indentfirstparagraphtrue
+ % not here: \parindent\ctxparindent
+ % not here: \chardef\indentingtoggle\zerocount
+ % we use commacommand in order to catch #1 being a command (expanded parameter)
+ \processcommacommand[\currentindenting]\docomplexsetupindentingA % catch small, medium, etc
+ \processcommacommand[\currentindenting]\docomplexsetupindentingB % catch rest
+ \checkeverypar % only when non-empty #1
+ \ifindentfirstparagraph\else\noindentation\fi % added
+ \toggleindentation}}
+
+\def\docomplexsetupindentingA#1%
+ {\edefconvertedargument\!!stringa{#1}%
+ \doifundefined{\??in:\!!stringa}%
+ {\edef\currentindentation{#1}%
+ \let\normalindentation\currentindentation
+ \simplesetupindenting}}
+
+\def\docomplexsetupindentingB#1%
+ {\edefconvertedargument\!!stringa{#1}% catch #1=\somedimen
+ \executeifdefined{\??in:\!!stringa}\donothing}
+
+\def\simplesetupindenting % empty case, a it strange, needed this way?
+ {\assigndimension\currentindentation\ctxparindent{1em}{1.5em}{2em}}
+
+\def\indenting % kind of obsolete
+ {\dosingleargument\complexsetupindenting}
+
+% use \noindentation to suppress next indentation
+
+\def\defineindentingmethod[#1]#2%
+ {\setvalue{\??in:#1}{#2}}
+
+\defineindentingmethod [\v!no] {\parindent\zeropoint}% was: \ctxparindent\noindent}
+\defineindentingmethod [\v!not] {\parindent\zeropoint}% was: \ctxparindent\noindent}
+
+\defineindentingmethod [\v!first] {\indentfirstparagraphtrue}
+\defineindentingmethod [\v!next] {\indentfirstparagraphfalse}
+
+\defineindentingmethod [\v!yes] {\parindent\ctxparindent\relax} % no \indent !
+\defineindentingmethod [\v!always] {\parindent\ctxparindent\relax} % no \indent !
+
+\defineindentingmethod [\v!never] {\parindent\zeropoint\relax % no \indent !
+ \chardef\indentingtoggle\zerocount}
+
+\defineindentingmethod [\v!odd] {\chardef\indentingtoggle\plusone}
+\defineindentingmethod [\v!even] {\chardef\indentingtoggle\plustwo}
+
+\defineindentingmethod [\v!normal] {\ifx\normalindentation\empty\else
+ \let\currentindentation\normalindentation
+ \simplesetupindenting
+ \fi}
+
+\defineindentingmethod [\v!reset] {\indentfirstparagraphtrue
+ \parindent\zeropoint
+ \chardef\indentingtoggle\zerocount}
+
+\def\noindenting{\indenting[\v!no, \v!next ]}
+\def\doindenting{\indenting[\v!yes,\v!first]}
+
+%D This one sets up the local indentation behaviour (i.e. either or not
+%D a next paragraph will be indented).
+
+\def\dochecknextindentation#1% internal one
+ {\checknextindentation[\getvalue{#1\c!indentnext}]}
+
+\def\checknextindentation[#1]%
+ {\processaction
+ [#1]
+ [%\v!keep=>,
+ \v!yes=>\doindentation,
+ \v!no=>\noindentation,
+ \v!auto=>\autoindentation]}
+
+%D Here come the handlers.
+
+\newif\ifindentation \indentationtrue % documenteren, naar buiten
+
+\let\checkindentation\relax
+
+\ifx\autoindentation\undefined \let\autoindentation\relax \fi % hook
+
+\def\doindentation
+ {\gdef\checkindentation{\global\indentationtrue}}
+
+\def\noindentation % made global
+ {\ifinpagebody \else
+ \global\indentationfalse
+ \gdef\checkindentation
+ {\donoindentation
+ \gdef\checkindentation{\global\indentationtrue}}%
+ \fi}
+
+\def\nonoindentation % bv bij floats
+ {\ifinpagebody \else
+ \global\indentationtrue
+ \gdef\checkindentation{\global\indentationtrue}%
+ \fi}
+
+\def\donoindentation
+ {\ifdim\parindent=\zeropoint \else
+ \bgroup \setbox\scratchbox\lastbox \egroup
+ \fi}
+
+\def\indentation
+ {\ifvmode \ifdim\parindent=\zeropoint \else
+ % was : \hskip\parindent
+ % can be: \indent
+ % but we test:
+ \noindent\hskip\parindent
+ \fi \fi}
+
+\def\toggleindentation
+ {\ifcase\indentingtoggle
+ % nothing
+ \or
+ \notoggleindentation
+ \or
+ \dotoggleindentation
+ \fi}
+
+\def\dokillindentation
+ {\gdef\checkindentation{\global\indentationfalse\donoindentation}}
+
+\def\dotoggleindentation
+ {\gdef\checkindentation{\global\indentationfalse\notoggleindentation\donoindentation}}
+
+\def\notoggleindentation
+ {\gdef\checkindentation{\global\indentationtrue\dotoggleindentation}}
+
+\appendtoks
+ \pushmacro\checkindentation
+ \pushmacro\ifindentation
+\to \everypushsomestate
+
+\appendtoks
+ \popmacro\ifindentation
+ \popmacro\checkindentation
+\to \everypopsomestate
+
+% we need to save the state if we want to adapt behaviour to empty lines
+%
+% \def\setlasthvmode
+% {\global\chardef\savedhvmode\ifhmode\plusone\else\ifvmode\plustwo\else\zerocount\fi\fi}
+%
+% \def\resetlasthvmode
+% {\global\chardef\savedhvmode\zerocount}
+%
+% \chardef\savedhvmode\zerocount
+
+% This is a user requested hack (using the auto-hook).
+
+\chardef\recheckindentationmode\zerocount
+
+\def\dontrechecknextindentation
+ {\global\chardef\recheckindentationmode\zerocount}
+
+\def\dorechecknextindentation
+ {\ifcase\recheckindentationmode
+ % nothing
+ \or
+ \dontrechecknextindentation
+ \expandafter\doautoindentation
+ \fi}
+
+\def\doautoindentation
+ {\doifnextcharelse\par\donothing\noindentation}
+
+\def\autoindentation
+ {\global\chardef\recheckindentationmode\plusone}
+
+%D An example of usage:
+%D
+%D \starttyping
+%D \setupindenting[small,yes]
+%D
+%D \setupitemize [indentnext=auto]
+%D \setuptyping [indentnext=auto]
+%D \setupformulas[indentnext=auto]
+%D
+%D \input tufte
+%D
+%D \startitemize
+%D \item itemize
+%D \stopitemize
+%D \input tufte
+%D
+%D \startitemize
+%D \item itemize
+%D \stopitemize
+%D
+%D \input tufte
+%D
+%D \startitemize
+%D \item itemize
+%D \stopitemize
+%D
+%D \page
+%D
+%D \input tufte
+%D
+%D \starttyping
+%D verbatim
+%D \stoptyping
+%D \input tufte
+%D
+%D \starttyping
+%D verbatim
+%D \stoptyping
+%D
+%D \input tufte
+%D
+%D \starttyping
+%D verbatim
+%D \stoptyping
+%D
+%D \page
+%D
+%D \input tufte
+%D
+%D \startformula
+%D a = b
+%D \stopformula
+%D \input tufte
+%D
+%D \startformula
+%D a = b
+%D \stopformula
+%D
+%D \input tufte
+%D
+%D \startformula
+%D a = b
+%D \stopformula
+
+
+%D \macros
+%D {frenchspacing,nonfrenchspacing}
+%D
+%D Smehow \type{\frenchspacing} can lead to hyphenation between
+%D dashes so we now have \type {\newfrenchspacing} (moved from
+%D \type {syst-chr}).
+
+%D Hm ... todo:
+
+\sfcode`\)=0
+\sfcode`\'=0
+\sfcode`\]=0
+
+\def\setfrenchspacing#1%
+ {\sfcode`\.#1 \sfcode`\,#1\relax
+ \sfcode`\?#1 \sfcode`\!#1\relax
+ \sfcode`\:#1 \sfcode`\;#1\relax}
+
+\def\frenchspacing
+ {\setfrenchspacing{1000}}
+
+\def\resetfrenchspacing
+ {\sfcode`\.3000 \sfcode`\,1250
+ \sfcode`\?3000 \sfcode`\!3000
+ \sfcode`\:2000 \sfcode`\;1500 }
+
+\def\frenchspacing {\setfrenchspacing{1000}}
+\def\newfrenchspacing{\setfrenchspacing{1050}}
+\def\nonfrenchspacing{\resetfrenchspacing}
+
+\def\definespacingmethod[#1]#2{\setvalue{\??sg\??sg#1}{#2}}
+
+\definespacingmethod[\v!packed]{\newfrenchspacing}
+\definespacingmethod[\v!broad ]{\nonfrenchspacing}
+
+\def\complexsetupspacing[#1]%
+ {\executeifdefined{\??sg\??sg#1}\relax
+ \updateraggedskips}
+
+\def\simplesetupspacing
+ {\updateraggedskips}
+
+\definecomplexorsimple\setupspacing
+
+% \dorecurse{100}{\recurselevel\spacefactor 800 \space} \par
+% \dorecurse{100}{\recurselevel\spacefactor1200 \space} \par
+% \dorecurse{100}{\recurselevel\spacefactor 800 \normalspaceprimitive} \par
+% \dorecurse{100}{\recurselevel\spacefactor1200 \normalspaceprimitive} \par
+
+% When we don't add the % here, we effectively get \<endlinechar> and
+% since we have by default \def\^^M{\ } we get into a loop.
+
+\let\normalspaceprimitive=\ % space-comment is really needed
+
+\unexpanded\def\ {\mathortext\normalspaceprimitive\space} % no \dontleavehmode\space (else no frenchspacing)
+
+\unexpanded\def\nonbreakablespace{\penalty\plustenthousand\space}
+
+\letcatcodecommand \ctxcatcodes `\~ \nonbreakablespace % overloaded later
+
+\def\space { }
+\def\removelastspace{\ifhmode\unskip\fi}
+\def\nospace {\removelastspace\ignorespaces}
+
+% in tables we need:
+%
+% \def\fixedspace {\hskip.5em\relax}
+%
+% but, since not all fonts have .5em digits:
+
+\unexpanded\def\fixedspace
+ {\setbox\scratchbox\normalhbox{\mathortext{0}{0}}%
+ \hskip\wd\scratchbox\relax}
+
+\def\fixedspaces
+ {\letcatcodecommand \ctxcatcodes `\~ \fixedspace}
+
+\def\removeunwantedspaces
+ {\ifhmode % we also need to unskip 0pt skips
+ \unskip\unskip\unskip\unskip\unskip
+ \unskip\unskip\unskip\unskip\unskip
+ \fi}
+
+\appendtoks\let~\space\to\simplifiedcommands
+
+% still not fixed in aleph / luatex
+%
+% \def\removeunwantedspaces
+% {\ifhmode \ifnum\lastnodetype=\@@gluenode
+% \unskip \@EAEAEA\removeunwantedspaces
+% \fi \fi}
+
+%D For old time sake, will disappear soon.
+
+\let\hardespatie\fixedspace
+\let\geenspatie \nospace
+
+% \startbuffer
+% \startlines \tt \fixedspaces
+% 0~1~~2~~~3~~~~4~~~~~5
+% 0~~~~~~~~~~~~~~~~~~~5
+% $0~1~~2~~~3~~~~4~~~~~5$
+% $0~~~~~~~~~~~~~~~~~~~5$
+% \stoplines
+%
+% \starttabulate[|~|]
+% \NC 0~1~~2~~~3~~~~4~~~~~5 \NC \NR \NC 0~~~~~~~~~~~~~~~~~~~5 \NC \NR
+% \NC $0~1~~2~~~3~~~~4~~~~~5$ \NC \NR \NC $0~~~~~~~~~~~~~~~~~~~5$ \NC \NR
+% \stoptabulate
+%
+% \starttable[||]
+% \NC 0~1~~2~~~3~~~~4~~~~~5 \NC \AR \NC 0~~~~~~~~~~~~~~~~~~~5 \NC \AR
+% \NC $0~1~~2~~~3~~~~4~~~~~5$ \NC \AR \NC $0~~~~~~~~~~~~~~~~~~~5$ \NC \AR
+% \stoptable
+% \stopbuffer
+%
+% \setupbodyfont[cmr] \getbuffer
+% \setupbodyfont[lbr] \getbuffer
+
+\def\packed
+ {\nointerlineskip}
+
+\def\godown[#1]%
+ {\relax
+ \ifhmode\endgraf\fi
+ \ifvmode\nointerlineskip\vskip#1\relax\fi}
+
+%D A couple of plain macros:
+
+\ifx\thinspace\undefined
+
+ \def\thinspace {\kern .16667em }
+ \def\negthinspace{\kern-.16667em }
+ \def\enspace {\kern .5em }
-\ifx\pdfkeeplinedimen\undefined
+ \def\thinspace {\kern .16667\emwidth}
+ \def\negthinspace{\kern-.16667\emwidth}
+ \def\enspace {\kern .5\emwidth}
- \let\mksetupgridsnapping \relax
- \let\mkenablegridsnapping \relax
- \let\mkdisablegridsnapping\relax
+\fi
+
+\ifx\quad\undefined
+
+ \def\enskip{\hskip.5em\relax}
+ \def\quad {\hskip 1em\relax}
+ \def\qquad {\hskip 2em\relax}
+
+ \def\enskip{\hskip.5\emwidth}
+ \def\quad {\hskip \emwidth}
+ \def\qquad {\hskip 2\emwidth}
+
+\fi
+
+\let\emspace\quad
+
+\ifx\smallskip\undefined
+
+ \def\smallskip{\vskip\smallskipamount}
+ \def\medskip {\vskip\medskipamount}
+ \def\bigskip {\vskip\bigskipamount}
+
+\fi
+
+\ifx\allowbreak\undefined
+
+ \def\break {\penalty\ifhmode-\plustenthousand\else\ejectpenalty\fi}
+ \def\nobreak {\penalty \plustenthousand}
+ \def\allowbreak{\penalty \zeropoint}
+ \def\filbreak {\par\vfil\penalty-200\vfilneg}
+ \def\goodbreak {\par\penalty-500 }
+
+\fi
+
+%D Made slightly more readable:
+
+\ifx\vglue\undefined
+
+ \def\vglue {\afterassignment\dovglue\scratchskip=}
+ \def\hglue {\afterassignment\dohglue\scratchskip=}
+ \def\topglue{\nointerlineskip\vglue-\topskip\vglue}
+
+ \def\dovglue
+ {\par
+ \scratchdimen\prevdepth
+ \hrule\!!height\zeropoint
+ \nobreak\vskip\scratchskip
+ \prevdepth\scratchdimen}
+
+ \def\dohglue
+ {\dontleavehmode % \leavevmode
+ \scratchcounter\spacefactor
+ \vrule\!!width\zeropoint
+ \nobreak\hskip\scratchskip
+ \spacefactor\scratchcounter}
+
+\fi
+
+\ifx\eject\undefined
+
+ \def\eject{\par\break}
+
+\fi
+
+\ifx\supereject\undefined
+
+ \def\supereject{\par\penalty\superpenalty}
+
+\fi
+
+\ifx\dosupereject\undefined
+
+ \def\dosupereject
+ {\ifnum\insertpenalties>\zerocount % something is being held over
+ \line{}
+ \kern-\topskip
+ \nobreak
+ \vfill\supereject
+ \fi}
+
+\fi
+
+%D We adapt plain's \type {\removelastskip} a bit:
+
+\ifx\removelastskip\undefined
+
+ \def\removelastskip
+ {\ifvmode \ifdim\lastskip=\zeropoint \else
+ \vskip-\lastskip
+ \fi \fi}
+
+\fi
+
+\ifx\smallbreak\undefined
+
+\def\smallbreak
+ {\par
+ \ifdim\lastskip<\smallskipamount
+ \removelastskip
+ \penalty-50
+ \smallskip
+ \fi}
+
+\def\medbreak
+ {\par
+ \ifdim\lastskip<\medskipamount
+ \removelastskip
+ \penalty-100
+ \medskip
+ \fi}
+
+\def\bigbreak
+ {\par
+ \ifdim\lastskip<\bigskipamount
+ \removelastskip
+ \penalty-200
+ \bigskip
+ \fi}
+
+\fi
+
+\newskip\ctxparskip \ctxparskip\zeropoint
+
+\newconditional \flexiblewhitespace \settrue\flexiblewhitespace
+
+\def\blankokleinmaat {\smallskipamount}
+\def\blankomiddelmaat {\medskipamount}
+\def\blankogrootmaat {\bigskipamount}
+\def\currentwhitespace {\zeropoint}
+
+\definecomplexorsimple\setupwhitespace
+
+% \def\simplesetupwhitespace
+% {\doifnot\currentwhitespace\v!none\dosetupwhitespace}
+%
+% \def\complexsetupwhitespace[#1]%
+% {\doifelsenothing{#1}
+% {\simplesetupwhitespace}
+% {\edef\currentwhitespace{#1}%
+% \dosetupwhitespace}}
+%
+% \def\dosetupwhitespace
+% {\processcommacommand[\currentwhitespace]\dowhitespacemethod
+% \dodosetupwhitespace}
+
+\def\simplesetupwhitespace
+ {\doifnot\currentwhitespace\v!none\dosetupwhitespace}
+
+\def\complexsetupwhitespace[#1]%
+ {\edef\nextcurrentwhitespace{#1}%
+ \ifx\nextcurrentwhitespace\empty
+ \simplesetupwhitespace
+ \else
+ \let\currentwhitespace\nextcurrentwhitespace
+ \dosetupwhitespace
+ \fi}
+
+\def\dosetupwhitespace % quick test for no list
+ {\ifcsname\??ws\??ws\currentwhitespace\endcsname
+ \csname\??ws\??ws\currentwhitespace\endcsname
+ \else
+ \expandafter\processcommalist\expandafter[\currentwhitespace]\dowhitespacemethod % can be raw
+ \fi\relax
+ \ifgridsnapping
+ \setfalse\flexiblewhitespace
+ \ifdim\ctxparskip>\zeropoint
+ \ctxparskip
+ \ifcase\baselinegridmode
+ \baselineskip % normal ! ! ! ! !!
+ \or
+ \ifdim\scratchdimen=\baselineskip % maybe range
+ \baselineskip % normal ! ! ! ! !!
+ \else
+ \numexpr\ctxparskip/\dimexpr.5\lineheight\relax\relax\dimexpr.5\lineheight\relax
+ \fi
+ \else
+ \baselineskip % normal ! ! ! ! !!
+ \fi
+ \fi
+ \else
+ \ifconditional\flexiblewhitespace \else \ctxparskip1\ctxparskip \fi
+ \fi
+ \parskip\ctxparskip}
+
+\chardef\baselinegridmode=0 % option in layout / 1=permit_half_lines
+
+\def\dodosetupwhitespace
+ {\ifgridsnapping
+ \setfalse\flexiblewhitespace
+ \ctxparskip1\ctxparskip
+ \ifdim\ctxparskip>\zeropoint
+ \ifcase\baselinegridmode
+ \ctxparskip\baselineskip % normal ! ! ! ! !!
+ \or
+ \ifdim\scratchdimen=\baselineskip % maybe range
+ \ctxparskip\baselineskip % normal ! ! ! ! !!
+ \else
+ \ctxparskip\numexpr\ctxparskip/\dimexpr.5\lineheight\relax\relax\dimexpr.5\lineheight\relax
+ \fi
+ \else
+ \ctxparskip\baselineskip % normal ! ! ! ! !!
+ \fi
+ \fi
+ \else
+ \ifconditional\flexiblewhitespace \else \ctxparskip1\ctxparskip \fi
+ \fi
+ \parskip\ctxparskip}
+
+\definesystemvariable {ws} % whitespace
+
+\def\definewhitespacemethod[#1]#2{\setvalue{\??ws\??ws#1}{#2}}
+
+\definewhitespacemethod [\v!fix] {}
+\definewhitespacemethod [\v!fixed] {\setfalse\flexiblewhitespace}
+\definewhitespacemethod [\v!flexible] {\settrue\flexiblewhitespace}
+\definewhitespacemethod [\v!line] {\ctxparskip \baselineskip}
+\definewhitespacemethod [\v!halfline] {\ctxparskip.5\baselineskip}
+\definewhitespacemethod [\v!none] {\ctxparskip \zeropoint}
+\definewhitespacemethod [\v!big] {\ctxparskip \bigskipamount}
+\definewhitespacemethod [\v!medium] {\ctxparskip \medskipamount}
+\definewhitespacemethod [\v!small] {\ctxparskip \smallskipamount}
+
+\definewhitespacemethod [\s!default] {\simplesetupwhitespace} % {\stelwitruimteopnieuwin}
+
+% \def\dowhitespacemethod#1%
+% {\executeifdefined{\??ws\??ws#1}{\ctxparskip#1}\relax}
+
+\def\dowhitespacemethod#1%
+ {\ifcsname\??ws\??ws#1\endcsname\csname\??ws\??ws#1\endcsname\else\ctxparskip#1\fi\relax}
+
+\def\nowhitespace
+ {\ifdim\parskip>\zeropoint\relax
+ \ifdim\lastskip=-\parskip
+ \else
+ \vskip-\parskip
+ \fi
+ \fi}
+
+\def\nowhitespaceunlessskip
+ {\ifdim\lastskip>\zeropoint \else
+ \nowhitespace
+ \fi}
+
+\def\redowhitespace
+ {\ifdim\lastskip>-\parskip \else
+ \vskip\parskip
+ \fi}
+
+\def\savecurrentwhitespace
+ {\edef\restorecurrentwhitespace
+ {\ctxparskip\the\ctxparskip
+ \parskip\the\parskip
+ \noexpand\def\noexpand\currentwhitespace{\currentwhitespace}%
+ \ifconditional\flexiblewhitespace
+ \noexpand\settrue\flexiblewhitespace
+ \else
+ \noexpand\setfalse\flexiblewhitespace
+ \fi}}
+
+% deze variant is nodig binnen \startopelkaar
+% steeds testen:
+%
+% \hoofdstuk{..}
+% \plaatslijst[..]
+% \hoofdstuk{..}
+% \input tufte
+%
+% met/zonder witruimte
+
+\def\whitespace
+ {\par
+ \ifdim\parskip>\zeropoint\relax
+ %\ifdim\lastskip>\parskip \else
+ % \removelastskip interferes with blanko blokkeer en klein
+ \vskip\parskip
+ %\fi
+ \fi}
+
+\def\nonoblanko[#1]%
+ {\par}
+
+\def\noblanko
+ {\dosingleempty\nonoblanko}
+
+% De onderstaande macro handelt ook de situatie dat er geen
+% tekst tussen \start ... \stop is geplaatst. Daartoe wordt de
+% laatste skip over de lege tekst heen gehaald. Dit komt goed
+% van pas bij het plaatsen van (mogelijk lege) lijsten.
+
+\newif\ifopelkaar
+
+\newsignal \noparskipsignal % \def\noparskipsignal {0.00001pt}
+\def\lastdoneparskip {0pt}
+
+\def\startpacked
+ {\dosingleempty\dostartpacked}
+
+\def\dostartpacked[#1]% nesting afvangen
+ {\par
+ \ifvmode
+ \edef\lastdoneparskip {\the\lastskip}%
+ \edef\lastdoneprevdepth{\the\prevdepth}% zeer recent toegevoegd
+ \ifdim\prevdepth=-\thousandpoint % toegevoegd omdat binnen
+ \else % een vbox een extra skip
+ \whitespace % ongewenst is; dit kan
+ \baselinecorrection %% zie in \placeregister[n=1]
+ \vskip\noparskipsignal % waarschijnlijk ook in
+ \fi % blanko blokkeer
+ \bgroup
+ \doifelse{#1}\v!blank
+ \opelkaarfalse
+ \opelkaartrue
+ \blank[\v!disable] % dit is nog niet ok, gaat fout
+ \setupwhitespace[\v!none] % bovenin vtop (dwz, baseline)
+ \fi}
+
+\def\stoppacked
+ {\par
+ \ifvmode
+ \egroup
+ \ifdim\lastskip=\noparskipsignal\relax
+ \removelastskip
+ \nowhitespace
+ \vskip-\lastdoneparskip
+ \vskip+\lastdoneparskip
+ \prevdepth-\lastdoneprevdepth % zeer recent toegevoegd
+ \fi
+ \fi}
+
+\def\startunpacked
+ {\blank
+ \leavevmode
+ \bgroup}
+
+\def\stopunpacked
+ {\egroup
+ \blank}
+
+% De onderstaande macro's moeten nog eens nader worden uitgewerkt.
+% Ze spelen een rol bij de spatiering rond omkaderde teksten
+% en/of boxen zonder diepte.
+
+\def\toonregelcorrectie{\showbaselinecorrection}
+\def\regelcorrectie {\baselinecorrection}
+
+% \prevdepth crosses pageboundaries!
+%
+% todo: a version that works ok inside a box
+
+\let\doaroundlinecorrection\relax
+
+\def\startlinecorrection
+ {\dodoubleempty\dostartlinecorrection}
+
+\def\dostartlinecorrection[#1][#2]% #2 gobbles spaces
+ {\bgroup
+ \processaction
+ [#1]
+ [ \v!blank=>\let\doaroundlinecorrection\blank,
+ \s!default=>\let\doaroundlinecorrection\relax,
+ \s!unknown=>{\def\doaroundlinecorrection{\blank[#1]}}]%
+ \doaroundlinecorrection
+ \startbaselinecorrection
+ \offbaselinecorrection
+ \ignorespaces}
+
+\def\stoplinecorrection
+ {\stopbaselinecorrection
+ \doaroundlinecorrection
+ \egroup}
+
+\def\correctwhitespace
+ {\dowithnextbox
+ {\startbaselinecorrection
+ \flushnextbox
+ \stopbaselinecorrection}%
+ \vbox}
+
+\def\verticalstrut {\normalvbox{\hsize\zeropoint\forgetall\strut}}
+\def\horizontalstrut{\normalhbox {\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
+%
+% \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
+%
+% \leaveoutervmode
+
+% 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.
+
+\newdimen\strutdimen
+\newdimen\lineheight
+\newdimen\openlineheight
+\newdimen\openstrutheight
+\newdimen\openstrutdepth
+\newdimen\topskipgap
+\newdimen\struttotal
+
+\def\strutheightfactor {.72}
+\def\strutdepthfactor {.28}
+
+\def\baselinefactor {2.8}
+\def\baselinegluefactor {0}
+
+\def\minimumstrutheight {0pt}
+\def\minimumstrutdepth {0pt}
+
+\def\normallineheight {\baselinefactor ex}
+\def\minimumlinedistance {\lineskip}
+\def\strutheight {0pt}
+\def\strutdepth {0pt}
+\def\strutwidth {0pt}
+
+\def\spacingfactor {1}
+
+\def\topskipfactor {1.0}
+\def\maxdepthfactor {0.5}
+
+\def\systemtopskipfactor {\topskipfactor}
+\def\systemmaxdepthfactor {\maxdepthfactor}
+
+% De onderstaande definitie wordt in de font-module overruled
+
+\ifdefined\globalbodyfontsize\else
+ \newdimen\globalbodyfontsize
+ \globalbodyfontsize=12pt
+\fi
+
+\ifx\normalizedbodyfontsize\undefined
+ \def\normalizedbodyfontsize{12pt}
+\fi
+
+% door een \dimen. Dit is geen probleem omdat (1) de default
+% korpsgrootte 12pt is en (2) de fonts nog niet geladen zijn
+% en de instellingen bij het laden nogmaals plaatsvinden.
+
+% \def\topskipcorrection
+% {\ifdim\topskip>\openstrutheight
+% % == \vskip\topskipgap
+% \vskip\topskip
+% \vskip-\openstrutheight
+% \fi
+% \verticalstrut
+% \vskip-\struttotal}
+
+\def\topskipcorrection
+ {\simpletopskipcorrection
+ \vskip-\struttotal
+ \verticalstrut}
+
+\def\simpletopskipcorrection
+ {\ifdim\topskip>\openstrutheight
+ % == \vskip\topskipgap
+ \vskip\topskip
+ \vskip-\openstrutheight
+ \fi}
+
+% \def\settopskip % the extra test is needed for the lbr family
+% {\topskip\systemtopskipfactor\globalbodyfontsize
+% \ifgridsnapping \else
+% \ifr@ggedbottom\!!plus5\globalbodyfontsize\fi
+% \fi
+% \relax % the skip
+% \topskipgap\topskip
+% \advance\topskipgap -\openstrutheight\relax
+% \ifdim\topskip<\strutheightfactor\openlineheight
+% \topskip\strutheightfactor\openlineheight\relax
+% \fi}
+
+\def\settopskip % the extra test is needed for the lbr family
+ {\topskip\systemtopskipfactor\globalbodyfontsize
+ \ifgridsnapping \else
+ \ifr@ggedbottom\!!plus5\globalbodyfontsize\fi
+ \fi
+ \relax % the skip
+ \topskipgap\topskip
+ \advance\topskipgap -\openstrutheight\relax
+\ifdim\minimumstrutheight>\zeropoint
+ \ifdim\topskip<\minimumstrutheight
+ \topskip\minimumstrutheight\relax
+ \fi
\else
+ \ifdim\topskip<\strutheightfactor\openlineheight
+ \topskip\strutheightfactor\openlineheight\relax
+ \fi
+\fi}
+
+\def\setmaxdepth
+ {\maxdepth\systemmaxdepthfactor\globalbodyfontsize}
+
+\def\normalbaselines
+ {\baselineskip \normalbaselineskip
+ \lineskip \normallineskip
+ \lineskiplimit\normallineskiplimit}
+
+% \def\setnormalbaselines
+% {\ifdim\normallineheight>\zeropoint
+% \lineheight\normallineheight
+% \fi
+% \openlineheight\spacingfactor\lineheight
+% \openstrutheight\strutheightfactor\openlineheight
+% \openstrutdepth \strutdepthfactor \openlineheight
+% \normalbaselineskip\openlineheight
+% \!!plus\baselinegluefactor\openlineheight
+% \!!minus\baselinegluefactor\openlineheight
+% \normallineskip\minimumlinedistance\relax % \onepoint\relax
+% \normallineskiplimit\zeropoint\relax
+% \normalbaselines}
+
+\def\setnormalbaselines
+ {\ifdim\normallineheight>\zeropoint
+ \lineheight\normallineheight
+ \fi
+ \openlineheight\spacingfactor\lineheight
+ \openstrutheight \ifdim\minimumstrutheight>\zeropoint
+ \minimumstrutheight % new
+ \else
+ \strutheightfactor\openlineheight
+ \fi
+ \openstrutdepth \ifdim\minimumstrutdepth>\zeropoint
+ \minimumstrutdepth % new
+ \else
+ \strutdepthfactor \openlineheight
+ \fi
+ \ifdim\dimexpr\minimumstrutdepth+\minimumstrutheight\relax>\zeropoint
+ \openlineheight\dimexpr\openstrutheight+\openstrutdepth\relax % new
+ \fi
+ \normalbaselineskip\openlineheight
+ \ifgridsnapping\else
+ \!!plus \baselinegluefactor\openlineheight
+ \!!minus\baselinegluefactor\openlineheight
+ \fi
+ \normallineskip\minimumlinedistance\relax % \onepoint\relax
+ \normallineskiplimit\zeropoint\relax
+ \normalbaselines}
+
+% \def\setspacingfactor#1\to#2\by#3\\%
+% {\strutdimen#2\points
+% \strutdimen#3\strutdimen
+% \edef#1{\withoutpt\the\strutdimen}}
+%
+% \def\spacing#1%
+% {\ifgridsnapping
+% %\doifnot{#1}{1}{\showmessage\m!layouts{11}{#1}}%
+% \ifdim#1\points=\onepoint\else\showmessage\m!layouts{11}{#1}\fi
+% \edef\spacingfactor{1}%
+% \else
+% \edef\spacingfactor{#1}%
+% \fi
+% \setspacingfactor\systemtopskipfactor \to\topskipfactor \by#1\\% why no \spacingfactor ?
+% \setspacingfactor\systemmaxdepthfactor\to\maxdepthfactor\by#1\\% why no \spacingfactor ?
+% \setnormalbaselines
+% \setstrut}
+%
+% \def\setspacingfactor#1#2#3%
+% {\edef#1{\withoutpt\the\dimexpr#2\points*#3\relax}}
+
+\def\spacing#1%
+ {\ifgridsnapping
+ \ifdim#1\points=\onepoint\else\showmessage\m!layouts{11}{#1}\fi
+ \edef\spacingfactor{1}%
+ \else
+ \edef\spacingfactor{#1}%
+ \fi
+ %\setspacingfactor\systemtopskipfactor \topskipfactor {#1}% why no \spacingfactor ?
+ %\setspacingfactor\systemmaxdepthfactor\maxdepthfactor{#1}% why no \spacingfactor ?
+ \edef\systemtopskipfactor {\withoutpt\the\dimexpr#1\dimexpr\topskipfactor \points}%
+ \edef\systemmaxdepthfactor{\withoutpt\the\dimexpr#1\dimexpr\maxdepthfactor\points}%
+ \setnormalbaselines
+ \setstrut}
+
+%D Sometimes one needs to freeze the interlinespacing
+%D
+%D \starttyping
+%D \rm \saveinterlinespace .... {\ss \restoreinterlinespace .... \endgraf}
+%D \stoptyping
+
+\let\restoreinterlinespace\relax
- \def\mksetupgridsnapping
- {\pdfeachlineheight \openstrutheight
- \pdfeachlinedepth \openstrutdepth
- \pdffirstlineheight \pdfeachlineheight
- \pdflastlinedepth \pdfeachlinedepth}
+\def\saveinterlinespace
+ {\edef\restoreinterlinespace
+ {\lineheight \the\lineheight
+ \openstrutheight \the\openstrutheight
+ \openstrutdepth \the\openstrutdepth
+ \openlineheight \the\openlineheight
+ \normalbaselineskip \the\normalbaselineskip
+ \normallineskip \the\normallineskip
+ \normallineskiplimit\the\normallineskiplimit
+ \noexpand\def\noexpand\normallineheight{\the\dimexpr\normallineheight}%
+ \noexpand\normalbaselines}}
- \def\mkenablegridsnapping
- {\pdfkeeplinedimen\maxdimen
- \topskip\strutht
- \offinterlineskip}
+% plain definition:
+%
+% \def\strut{\relax\ifmmode\copy\strutbox\else\unhcopy\strutbox\fi}
+%
+% could be:
+%
+% \def\strut{\relax\ifmmode\copy\else\unhcopy\fi\strutbox}
- \def\mkdisablegridsnapping
- {\pdfkeeplinedimen\zeropoint
- % reset topskip
- \oninterlineskip}
+\ifx\strutbox\undefined
+
+ \newbox\strutbox
+
+ \setbox\strutbox=\normalhbox{\vrule height8.5pt depth3.5pt width\zeropoint}
+
+ %\def\strut{\relax\ifmmode\copy\strutbox\else\unhcopy\strutbox\fi}
+ \def\strut{\relax\ifmmode\copy\else\unhcopy\fi\strutbox}
\fi
+\let\normalstrut\strut
+
+% The double \hbox construction enables us to \backtrack
+% boxes.
+
+% \def\setstrutdimen#1#2#3% % een strut is n.m maal ex
+% {\strutdimen\normallineheight % wat niet per se \lineheight
+% \strutdimen#2\strutdimen % is omdat een strut lokaal
+% \strutdimen#3\strutdimen % kan afwijken van de globale
+% \edef#1{\the\strutdimen}} % macro % strut
+
+% \def\setstrutdimen#1#2#3% % een strut is n.m maal ex
+% {\strutdimen\normallineheight % wat niet per se \lineheight
+% \strutdimen#2\strutdimen % is omdat een strut lokaal
+% \strutdimen#3\strutdimen % kan afwijken van de globale
+% \edef#1{\the\strutdimen}} % macro % strut
+
+% \def\setstrut
+% {\setstrutdimen\strutheight\strutheightfactor\spacingfactor
+% \setstrutdimen\strutdepth \strutdepthfactor \spacingfactor
+% \let\strut=\normalstrut
+% \setbox\strutbox=\normalhbox
+% {\normalhbox
+% {\vrule
+% \!!width \strutwidth
+% \!!height \strutheight
+% \!!depth \strutdepth
+% \normalkern-\strutwidth}}}
+
+% \def\setstrut
+% {\setstrutdimen\strutheight\strutheightfactor\spacingfactor
+% \setstrutdimen\strutdepth \strutdepthfactor \spacingfactor
+% \dosetstrut}
+
+% \def\setstrut
+% {\strutdimen\normallineheight
+% \strutdimen\strutheightfactor\strutdimen
+% \strutdimen\spacingfactor\strutdimen
+% \edef\strutheight{\the\strutdimen}%
+% \strutdimen\normallineheight
+% \ifgridsnapping
+% \advance\strutdimen-\strutheight
+% \else
+% \strutdimen\strutdepthfactor\strutdimen
+% \strutdimen\spacingfactor\strutdimen
+% \fi
+% \edef\strutdepth{\the\strutdimen}%
+% \dosetstrut}
+
+% interesting, strutdepth is 4.05064pt vs 4.05066pt depending on grid
+% nasty rounding problem
+
+% \def\setstrut
+% {% height
+% \strutdimen\normallineheight
+% \ifdim\minimumstrutheight>\zeropoint
+% \strutdimen\minimumstrutheight
+% \else
+% \strutdimen\strutheightfactor\strutdimen
+% \fi
+% \strutdimen\spacingfactor\strutdimen
+% \edef\strutheight{\the\strutdimen}%
+% % depth
+% \strutdimen\normallineheight
+% \ifgridsnapping
+% \ifdim\minimumstrutdepth>\zeropoint
+% \strutdimen\minimumstrutdepth
+% \else
+% \advance\strutdimen-\strutheight
+% \fi
+% \else
+% \ifdim\minimumstrutdepth>\zeropoint
+% \strutdimen\minimumstrutdepth
+% \else
+% \strutdimen\strutdepthfactor\strutdimen
+% \fi
+% \strutdimen\spacingfactor\strutdimen
+% \fi
+% \edef\strutdepth{\the\strutdimen}%
+% % finish
+% \dosetstrut}
+
+% \def\setstrut
+% {% height
+% \ifdim\minimumstrutheight>\zeropoint
+% \edef\strutheight{\the\dimexpr\spacingfactor\dimexpr\minimumstrutheight}%
+% \else
+% \edef\strutheight{\the\dimexpr\spacingfactor\dimexpr\strutheightfactor\dimexpr\normallineheight}%
+% \fi
+% % depth
+% \ifgridsnapping
+% \ifdim\minimumstrutdepth>\zeropoint
+% \edef\strutdepth{\the\dimexpr\minimumstrutdepth}%
+% \else
+% \edef\strutdepth{\the\dimexpr\normallineheight-\strutheight}%
+% \fi
+% \else
+% \ifdim\minimumstrutdepth>\zeropoint
+% \edef\strutdepth{\the\dimexpr\spacingfactor\dimexpr\minimumstrutdepth}%
+% \else
+% \edef\strutdepth{\the\dimexpr\spacingfactor\dimexpr\strutdepthfactor\dimexpr\normallineheight}%
+% \fi
+% \fi
+% % finish
+% \dosetstrut}
+
+\unexpanded\def\setstrut
+ {% height
+ \edef\strutheight
+ {\the\dimexpr\spacingfactor\dimexpr
+ \ifdim\minimumstrutheight>\zeropoint
+ \minimumstrutheight
+ \else
+ \strutheightfactor\dimexpr\normallineheight
+ \fi}%
+ % depth
+ \edef\strutdepth
+ {\the\dimexpr
+ \ifgridsnapping
+ \ifdim\minimumstrutdepth>\zeropoint
+ \minimumstrutdepth
+ \else
+ \normallineheight-\strutheight
+ \fi
+ \else
+ \spacingfactor\dimexpr
+ \ifdim\minimumstrutdepth>\zeropoint
+ \minimumstrutdepth
+ \else
+ \strutdepthfactor\dimexpr\normallineheight
+ \fi
+ \fi}%
+ % finish
+ \dosetstrut}
+
+\unexpanded\def\setcharstrut#1%
+ {\setbox\strutbox\normalhbox{#1}%
+ \edef\strutheight{\the\strutht}%
+ \edef\strutdepth {\the\strutdp}%
+ \dosetstrut}
+
+% \def\setfontstrut
+% {\setcharstrut{(}}
+%
+% better, since some fonts have small (but descending Q etc)
+
+\unexpanded\def\setfontstrut
+ {\setcharstrut{(gplQT}}
+
+\unexpanded\def\setcapstrut% could be M, but Q has descender
+ {\setcharstrut{Q}}
+
+%D Handy for math (used in mathml):
+
+\def\charhtstrut
+ {\begingroup
+ \setcharstrut{GJY}%
+ \vrule\!!width\zeropoint\!!depth\zeropoint\!!height\strutht
+ \endgroup}
+
+\def\chardpstrut
+ {\begingroup
+ \setcharstrut{gjy}%
+ \vrule\!!width\zeropoint\!!depth\strutdp\!!height\zeropoint
+ \endgroup}
+
+%D Centered looks nicer:
+
+% \def\dosetstrut
+% {\let\strut\normalstrut
+% \setbox\strutbox\normalhbox
+% {\normalhbox to \zeropoint
+% {% \hss % new, will be option
+% \vrule
+% \!!width \strutwidth
+% \!!height\strutheight
+% \!!depth \strutdepth
+% \hss}}%
+% \struttotal\dimexpr\strutht+\strutdp\relax}
+%
+% 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
+
+\def\dosetstrut
+ {\let\strut\normalstrut
+ \ifdim\strutwidth=\zeropoint
+ \setbox\strutbox\normalhbox
+ {\vrule
+ \!!width \zeropoint
+ \!!height\strutheight
+ \!!depth \strutdepth}%
+ \else
+ \setbox\strutbox\normalhbox
+ {\normalhbox to \zeropoint
+ {% \hss % new, will be option
+ \vrule
+ \!!width \strutwidth
+ \!!height\strutheight
+ \!!depth \strutdepth
+ \hss}}%
+ \fi
+ \struttotal\dimexpr\strutht+\strutdp\relax}
+
+%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.
+
+%D Sometimes a capstrut comes in handy
+%D
+%D \starttabulate[|Tl|l|l|]
+%D \NC yes \NC normal strut \NC {\showstruts\setupstrut[yes]\strut} \NC \NR
+%D \NC no \NC no strut \NC {\showstruts\setupstrut[no]\strut} \NC \NR
+%D \NC kap \NC a capital strut (i.e. Q) \NC {\showstruts\setupstrut[cap]\strut} \NC \NR
+%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
+
+\def\setupstrut
+ {\dosingleempty\dosetupstrut}
+
+\def\dosetupstrut[#1]% yet undocumented, todo: fontstrut
+ {\processaction
+ [#1]
+ [ \v!yes=>\setstrut,
+ \v!auto=>\setautostrut,
+ \v!no=>\setnostrut,
+ \v!cap=>\setcapstrut,
+ \v!fit=>\setfontstrut,
+ \v!line=>\setstrut,
+ \s!default=>\setstrut,
+ \s!unknown=>\setcharstrut\commalistelement]}
+
+\def\setteststrut
+ {\def\strutwidth{.8pt}%
+ \setstrut}
+
+\def\autostrutfactor{1.1}
+
+\def\setautostrut
+ {\begingroup
+ \setbox\scratchbox\copy\strutbox
+ \setstrut
+ \ifdim\ht\strutbox>\autostrutfactor\ht\scratchbox
+ \endgroup \setstrut
+ \else\ifdim\dp\strutbox>\autostrutfactor\dp\scratchbox
+ \endgroup \setstrut
+ \else
+ \endgroup
+ \fi\fi}
+
+% simple version
+%
+% \def\begstrut
+% {\relax\ifcase\strutht\else
+% \strut
+% \normalpenalty\plustenthousand
+% \normalhskip\zeropoint
+% \ignorespaces
+% \fi}
+%
+% \def\endstrut
+% {\relax\ifhmode\ifcase\strutht\else
+% \removeunwantedspaces
+% \normalpenalty\plustenthousand
+% \normalhskip\zeropoint
+% \strut
+% \fi\fi}
+
+% when enabled, sigstruts will remove themselves if nothing
+% goes inbetween
+
+\newsignal\strutsignal \setfalse\sigstruts
+
+\def\begstrut
+ {\relax\ifcase\strutht\else
+ \ifconditional\sigstruts
+ \noindent\horizontalstrut
+ \normalpenalty\plustenthousand
+ \normalhskip-\strutsignal
+ \normalhskip\strutsignal
+ \else
+ \strut
+ \normalpenalty\plustenthousand
+ \normalhskip\zeropoint
+ \fi
+ \expandafter \ignorespaces
+ \fi}
+
+\def\endstrut
+ {\relax\ifhmode\ifcase\strutht\else
+ \ifconditional\sigstruts
+ \ifdim\lastskip=\strutsignal
+ \unskip\unskip\unpenalty\setbox\scratchbox\lastbox
+ \else
+ \normalpenalty\plustenthousand
+ \normalhskip\zeropoint
+ \strut
+ \fi
+ \else
+ \removeunwantedspaces
+ \normalpenalty\plustenthousand
+ \normalhskip\zeropoint
+ \strut
+ \fi
+ \fi\fi}
+
+\newbox\nostrutbox \setbox\nostrutbox\normalhbox{} % {\normalhbox{}}
+
+\def\setnostrut
+ {\setbox\strutbox\copy\nostrutbox
+ \let\strut\empty
+ \let\endstrut\empty
+ \let\begstrut\empty
+ \let\crlfplaceholder\empty}
+
+% unsave:
+%
+% \def\pseudostrut
+% {\bgroup
+% \setnostrut
+% \normalstrut
+% \egroup}
+%
+% try:
+%
+% \startchemie
+% \chemie[ONE,Z0,SB15,MOV1,SB15,Z0][C,C]
+% \stopchemie
+%
+% so:
+
+\def\pseudostrut
+ {\noindent} % better: \dontleavehmode
+
+\let\pseudobegstrut\pseudostrut
+
+\let\pseudoendstrut\removeunwantedspaces
+
+\def\resetteststrut
+ {\let\strutwidth\zeropoint
+ \setstrut}
+
+\ifx\setfontparameters\undefined
+ % problems ! ! ! !
+ \def\setfontparameters{\the\everybodyfont}
+\fi
+
+%D Handy:
+
+\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 The plain ones:
+
+\def\offinterlineskip
+ {\baselineskip-\thousandpoint
+ \lineskip\zeropoint
+ \lineskiplimit\maxdimen}
+
+\def\nointerlineskip
+ {\prevdepth-\thousandpoint}
+
+\let\normaloffinterlineskip=\offinterlineskip % knuth's original
+
+%D My own one:
+
+\def\offinterlineskip
+ {\ifdim\baselineskip>\zeropoint
+ \edef\oninterlineskip
+ {\baselineskip\the\baselineskip
+ \lineskip\the\lineskip
+ \lineskiplimit\the\lineskiplimit
+ \let\noexpand\offinterlineskip\noexpand\normaloffinterlineskip}%
+ \else
+ \let\oninterlineskip\setnormalbaselines
+ \fi
+ \normaloffinterlineskip}
+
+\let\oninterlineskip=\relax
+
+\def\leaveoutervmode
+ {\ifvmode\ifinner\else
+ \leavevmode
+ \fi\fi}
+
+% We stellen enkele penalties anders in dan Plain TEX:
+
+% oud
+%
+% \widowpenalty=\defaultwidowpenalty\relax
+% \clubpenalty =\defaultclubpenalty \relax
+
+\def\resetpenalties#1%
+ {\ifx#1\undefined\else
+ #1\minusone
+ \fi}
+
+\def\setpenalties#1#2#3%
+ {\ifx#1\undefined\else % space before #3 prevents lookahead problems, needed when #3=text
+ #1\numexpr#2+\plusone\relax\space\doexpandedrecurse{\the\numexpr#2\relax}{ #3}\zerocount\relax
+ \fi}
+
+\def\doexpandedrecurse#1#2%
+ {\ifnum#1>\zerocount#2\@EA\doexpandedrecurse\@EA{\the\numexpr#1-1\relax}{#2}\fi}
+
+%D \macros
+%D {keeplinestogether}
+%D
+%D Dirty hack, needed in margin content that can run of a page.
+
+\def\keeplinestogether#1%
+ {\xdef\restoreinterlinepenalty{\global\resetpenalties\interlinepenalties}%
+ \global\setpenalties\interlinepenalties{#1}\plustenthousand}
+
+\newif\ifgridsnapping % to be sure
+
+\def\defaultwidowpenalty {2000} % was: 1000
+\def\defaultclubpenalty {2000} % was: 800
+\def\defaultdisplaywidowpenalty {50}
+\def\defaultbrokenpenalty {100}
+
+\def\defaultgridwidowpenalty {0}
+\def\defaultgridclubpenalty {0}
+\def\defaultgriddisplaywidowpenalty {0}
+\def\defaultgridbrokenpenalty {0}
+
+% The original approach:
+%
+% \def\setdefaultpenalties
+% {\ifgridsnapping
+% \widowpenalty\defaultgridwidowpenalty
+% \clubpenalty \defaultgridclubpenalty
+% \else
+% \widowpenalty\defaultwidowpenalty
+% \clubpenalty \defaultclubpenalty
+% \fi}
+%
+% However, we will use setups:
+
+% to be documented
+
+\def\nopenalties
+ {\widowpenalty \zerocount
+ \clubpenalty \zerocount
+ \brokenpenalty \zerocount
+ \doublehyphendemerits\zerocount
+ \finalhyphendemerits \zerocount
+ \adjdemerits \zerocount}
+
+\def\setdefaultpenalties
+ {\directsetup{\systemsetupsprefix\s!default}}
+
+\startsetups [\systemsetupsprefix\s!reset]
+ \resetpenalties\widowpenalties
+ \resetpenalties\clubpenalties
+ \resetpenalties\interlinepenalties
+\stopsetups
+
+% we use \directsetup because it's faster and we know there is no csl
+
+\startsetups [\systemsetupsprefix\s!default]
+
+ \directsetup{\systemsetupsprefix\s!reset}
+
+ \widowpenalty \defaultwidowpenalty
+ \clubpenalty \defaultclubpenalty
+ \displaywidowpenalty\defaultdisplaywidowpenalty
+ \brokenpenalty \defaultbrokenpenalty
+
+\stopsetups
+
+\startsetups [\v!grid] [\systemsetupsprefix\s!default]
+
+ \directsetup{\systemsetupsprefix\s!reset}
+
+ \widowpenalty \defaultgridwidowpenalty
+ \clubpenalty \defaultgridclubpenalty
+ \displaywidowpenalty\defaultgriddisplaywidowpenalty
+ \brokenpenalty \defaultgridbrokenpenalty
+
+\stopsetups
+
+% as an illustration:
+
+\startsetups [\systemsetupsprefix\v!strict]
+
+ \directsetup{\systemsetupsprefix\s!reset}
+
+ \setpenalties\widowpenalties2\maxdimen
+ \setpenalties\clubpenalties 2\maxdimen
+ \brokenpenalty \maxdimen
+
+\stopsetups
+
+\setdefaultpenalties % will happen later in \setuplayout
+
+% Suggested by GB (not the name -):
+
+\def\rapfillskip{.5\hsize plus .092\hsize minus .5\hsize} % D.A.'s value
+
+% Bovendien definieren we enkele extra \fill's:
+
+\def\hfilll{\hskip\zeropoint\!!plus1filll\relax}
+\def\vfilll{\vskip\zeropoint\!!plus1filll\relax}
+
+% De onderstaande hulpmacro's moeten nog eens instelbaar worden
+% gemaakt.
+
+\def\tfskipsize{1em\relax}
+\def\tfkernsize{1ex\relax}
+
+\def\tfskip{\dotfskip\tfskipsize}
+\def\tfkern{\dotfkern\tfkernsize}
+
+\def\dotfskip#1{{\tf\hskip#1}}
+\def\dotfkern#1{{\tf\kern #1}}
+
+% needs a proper \definenarrower or installnarrower
+
+\newskip\ctxleftskip
+\newskip\ctxrightskip
+\newskip\ctxmidskip
+
+\def\dosinglenarrower#1%
+ {\processaction
+ [#1]
+ [ \v!left=>\global\advance\ctxleftskip \@@slleft,
+ \v!middle=>\global\advance\ctxmidskip \@@slmiddle,
+ \v!right=>\global\advance\ctxrightskip \@@slright,
+ \v!reset=>\global\ctxleftskip \zeropoint
+ \global\ctxmidskip \zeropoint
+ \global\ctxrightskip\zeropoint,
+ \v!none=>,
+ \s!unknown=>\global\advance\ctxmidskip \commalistelement]}
+
+% \def\donarrower[#1]% hm, can be dorepeat directly
+% {\processaction
+% [#1]
+% [ \v!left=>\global\advance\ctxleftskip \@@slleft,
+% \v!middle=>\global\advance\ctxmidskip \@@slmiddle,
+% \v!right=>\global\advance\ctxrightskip \@@slright,
+% \v!none=>,% handy for delimitedtexts
+% \s!unknown=>{\dorepeatwithcommand[#1]\dosinglenarrower}]}
+
+\def\donarrower[#1]% hm, can be dorepeat directly
+ {\dorepeatwithcommand[#1]\dosinglenarrower}
+
+\def\complexstartnarrower[#1]%
+ {\@@slbefore % was hard coded \par
+ \bgroup
+ \global\ctxleftskip \zeropoint
+ \global\ctxrightskip\zeropoint
+ \global\ctxmidskip \zeropoint
+ \processcommalistwithparameters[#1]\donarrower
+ \advance\leftskip \ctxleftskip
+ \advance\rightskip \ctxrightskip
+ \advance\leftskip \ctxmidskip
+ \advance\rightskip \ctxmidskip
+ \seteffectivehsize}
+
+% todo: definenarrower
+
+\def\simplestartnarrower
+ {\startnarrower[\v!middle]}
+
+\definecomplexorsimple\startnarrower
+
+\def\stopnarrower
+ {\@@slafter % was hard coded \par / needed, else skips forgotten
+ \egroup}
+
+\def\setupnarrower
+ {\dodoubleargument\getparameters[\??sl]}
+
+\newdimen\@@effectivehsize \def\effectivehsize {\hsize}
+\newdimen\@@effectiveleftskip \def\effectiveleftskip {\leftskip}
+\newdimen\@@effectiverightskip \def\effectiverightskip{\rightskip}
+
+\def\seteffectivehsize
+ {\setlocalhsize
+ \@@effectivehsize \localhsize
+ \@@effectiveleftskip \leftskip
+ \@@effectiverightskip \rightskip
+ \let\effectivehsize \@@effectivehsize
+ \let\effectiveleftskip \@@effectiveleftskip
+ \let\effectiverightskip\@@effectiverightskip}
+
+\def\dodefinehbox[#1][#2]%
+ {\setvalue{hbox#1}##1%
+ {\hbox to #2{\begstrut##1\endstrut\hss}}}
+
+\def\definehbox
+ {\dodoubleargument\dodefinehbox}
+
+\def\iobox#1#2#3#% here #3# is not really needed
+ {\vbox\bgroup % we want to return a vbox like the others
+ \hbox\bgroup% we need to pack the signal with the box
+ \signalrightpage
+ \dowithnextboxcontent
+ {\let\\=\endgraf\forgetall\doifrightpageelse#1#2}
+ {\box\nextbox\egroup\egroup}
+ \vbox#3}
+
+\def\obox{\iobox\raggedleft \raggedright} % outerbox
+\def\ibox{\iobox\raggedright\raggedleft} % innerbox
+
+\def\dosetraggedvbox#1%
+ {\let\raggedbox\vbox
+ \processfirstactioninset
+ [#1]
+ [ \v!left=>\let\raggedbox\lbox,
+ \v!right=>\let\raggedbox\rbox,
+ \v!middle=>\let\raggedbox\cbox,
+ \v!inner=>\let\raggedbox\ibox,
+ \v!outer=>\let\raggedbox\obox,
+ \v!flushleft=>\let\raggedbox\rbox,
+ \v!flushright=>\let\raggedbox\lbox,
+ \v!center=>\let\raggedbox\cbox,
+ \v!no=>\def\raggedbox{\vbox\bgroup\raggedright\let\next=}]}
+
+\def\dosetraggedhbox#1%
+ {\let\raggedbox\hbox
+ \processaction % slow
+ [#1]
+ [ \v!left=>\def\raggedbox{\doalignedline\v!left },
+ \v!right=>\def\raggedbox{\doalignedline\v!right },
+ \v!middle=>\def\raggedbox{\doalignedline\v!middle},
+ \v!inner=>\def\raggedbox{\doalignedline\v!inner },
+ \v!outer=>\def\raggedbox{\doalignedline\v!outer },
+ \v!flushleft=>\def\raggedbox{\doalignedline\v!right },
+ \v!flushright=>\def\raggedbox{\doalignedline\v!left },
+ \v!center=>\def\raggedbox{\doalignedline\v!middle}]}
+
+\def\dosetraggedcommand#1%
+ {\expanded{\dodosetraggedcommand{#1}}}
+
+% \def\dodosetraggedcommand#1% beware: #1=empty is ignored, keep that!
+% {\let\raggedcommand \relax
+% \let\raggedtopcommand \empty
+% \let\raggedbottomcommand\empty
+% \chardef\raggedoneliner\zerocount
+% \doifsomething{#1}
+% {\doifinsetelse\v!broad{#1}\!!doneatrue\!!doneafalse
+% \doifinsetelse\v!wide {#1}\!!donebtrue\!!donebfalse
+% \!!donectrue
+% \rawprocesscommalist[#1]\dododosetraggedcommand}}
+
+\newtoks\everyraggedcommand
+
+\def\raggedcommand{\the\everyraggedcommand}
+
+\def\dodosetraggedcommand#1% beware: #1=empty is ignored, keep that!
+ {\everyraggedcommand \emptytoks
+ \let\raggedtopcommand \empty
+ \let\raggedbottomcommand\empty
+ \chardef\raggedoneliner\zerocount
+ \doifsomething{#1}
+ {\doifinsetelse\v!broad{#1}\!!doneatrue\!!doneafalse
+ \doifinsetelse\v!wide {#1}\!!donebtrue\!!donebfalse
+ \!!donectrue
+ \rawprocesscommalist[#1]\dododosetraggedcommand}}
+
+\def\dododosetraggedcommand#1%
+ {\executeifdefined{\@@ragged@@command\string#1}\relax}
+
+\def\@@ragged@@command{@@raggedcommand}
+
+\setvalue{\@@ragged@@command\v!hanging }{\appendtoks\enableprotruding \to\everyraggedcommand}
+\setvalue{\@@ragged@@command\v!nothanging }{\appendtoks\disableprotruding \to\everyraggedcommand}
+\setvalue{\@@ragged@@command\v!hz }{\appendtoks\enableadjusting \to\everyraggedcommand}
+\setvalue{\@@ragged@@command\v!nohz }{\appendtoks\disableadjusting \to\everyraggedcommand}
+\setvalue{\@@ragged@@command\v!spacing }{\appendtoks\enablespacehandling
+ \enablekernhandling \to\everyraggedcommand}
+\setvalue{\@@ragged@@command\v!nospacing }{\appendtoks\disablespacehandling
+ \disablekernhandling \to\everyraggedcommand}
+\setvalue{\@@ragged@@command\v!hyphenated }{\appendtoks\dohyphens \to\everyraggedcommand}
+\setvalue{\@@ragged@@command\v!nothyphenated}{\appendtoks\nohyphens \to\everyraggedcommand}
+
+\setvalue{\@@ragged@@command\v!tolerant }{\appendtoks\tolerance3000\relax \to\everyraggedcommand}
+\setvalue{\@@ragged@@command\v!verytolerant}{\appendtoks\tolerance4500\relax \to\everyraggedcommand}
+\setvalue{\@@ragged@@command\v!stretch }{\appendtoks\emergencystretch\bodyfontsize\to\everyraggedcommand}
+
+\setvalue{\@@ragged@@command\v!left}%
+ {\if!!donea \appendtoks\veryraggedleft\to\everyraggedcommand
+ \else \appendtoks\raggedleft \to\everyraggedcommand
+ \fi
+ \!!donecfalse}
+
+\setvalue{\@@ragged@@command\v!right}%
+ {\if!!donea \appendtoks\veryraggedright\to\everyraggedcommand
+ \else \appendtoks\raggedright \to\everyraggedcommand
+ \fi
+ \!!donecfalse}
+
+\setvalue{\@@ragged@@command\v!middle}%
+ {\if!!donec
+ \if!!doneb \appendtoks\raggedwidecenter\to\everyraggedcommand
+ \else\if!!donea \appendtoks\veryraggedcenter\to\everyraggedcommand
+ \else \appendtoks\raggedcenter \to\everyraggedcommand
+ \fi\fi
+ \!!donecfalse
+ \else
+ \let\raggedbottomcommand\vfilll % bonus, pretty strong
+ \let\raggedtopcommand \vfilll % used with \framed for
+ \fi} % instance in tables
+
+\setvalue{\@@ragged@@command\v!flushleft }{\getvalue{\@@ragged@@command\v!right }}
+\setvalue{\@@ragged@@command\v!flushright}{\getvalue{\@@ragged@@command\v!left }}
+\setvalue{\@@ragged@@command\v!center }{\getvalue{\@@ragged@@command\v!middle}}
+
+\setvalue{\@@ragged@@command\v!high}%
+ {\let\raggedbottomcommand\vfilll} % and since we lack a
+
+\setvalue{\@@ragged@@command\v!low}%
+ {\let\raggedtopcommand\vfilll} % proper keyword, but
+
+\setvalue{\@@ragged@@command\v!lohi}%
+ {\let\raggedbottomcommand\vfilll % we do support the
+ \let\raggedtopcommand\vfilll} % ugly laho (lohi)
+
+\setvalue{\@@ragged@@command\v!no}%
+ {\appendtoks\raggedright\to\everyraggedcommand}
+
+\setvalue{\@@ragged@@command\v!yes}%
+ {\appendtoks\notragged\to\everyraggedcommand}
+
+\setvalue{\@@ragged@@command\v!normal}%
+ {\appendtoks\notragged\to\everyraggedcommand}
+
+\setvalue{\@@ragged@@command\v!inner}% not yet perfect
+ {\signalrightpage % may interfere
+ \doifrightpageelse
+ {\getvalue{\@@ragged@@command\v!right}}
+ {\getvalue{\@@ragged@@command\v!left}}}
+
+\setvalue{\@@ragged@@command\v!outer}% not yet perfect
+ {\signalrightpage % may interfere
+ \doifrightpageelse
+ {\getvalue{\@@ragged@@command\v!left}}
+ {\getvalue{\@@ragged@@command\v!right}}}
+
+\setvalue{\@@ragged@@command\v!lesshyphenation}%
+ {\appendtoks\lesshyphens\to\everyraggedcommand}
+\setvalue{\@@ragged@@command\v!morehyphenation}%
+ {\appendtoks\morehyphens\to\everyraggedcommand}
+
+% compare:
+%
+% \framed[width=4cm,align=no] {\hfil xxx}
+% \framed[width=4cm,align=disable]{\hfil xxx}
+
+\setvalue{\@@ragged@@command\v!disable}% for one liners
+ {\appendtoks\raggedright\parfillskip\zeropoint\to\everyraggedcommand}
+
+\chardef\raggedoneliner\zerocount
+
+\setvalue{\@@ragged@@command\v!line}%
+ {\chardef\raggedoneliner\plusone}
+
+%D Unofficial, may disappear. Now handled directly in the
+%D core-rul module.
+
+% \def\@@startraggedoneliner
+% {\ifcase\raggedoneliner\else
+% \dontleavehmode\hbox to \hsize \bgroup % hsize added, else useless
+% \ifcase\raggedstatus\or\hss\or\hss\fi
+% \ignorespaces
+% \bgroup
+% \aftergroup\removeunwantedspaces
+% \fi}
+
+% \def\@@stopraggedoneliner
+% {\ifcase\raggedoneliner\else
+% \egroup
+% \ifcase\raggedstatus\or\or\hss\or\hss\fi
+% \egroup
+% \ignorespaces % ? ? ?
+% \fi}
+
+% \def\@@handleoneliner
+% {\ifcase\raggedoneliner\else
+% \@@startraggedoneliner
+% \aftergroup\@@stopraggedoneliner
+% \fi}
+
+% Nog doen:
+%
+% \goodbreak -> \allowbreak en \dosomebreak{..} in koppen
+%
+% bij koppen zowieso: \blanko[reset]
+
+% Nog in commando verwerken:
+%
+% \voorkeur la \blanko
+%
+% Om ongewenste witruimte te voorkomen kan met \dosomebreak{\break}
+% een \penalty voor witruimte worden geplaatst.
+
+\def\removelastskip % a redefinition of plain
+ {\ifvmode\ifdim\lastskip=\zeropoint\else\vskip-\lastskip\fi\fi}
+
+% first version:
+%
+% \def\dosomebreak#1%
+% {\scratchskip\lastskip
+% \removelastskip
+% %\type{#1}%
+% #1\relax
+% \ifdim\scratchskip=\zeropoint \else
+% \vskip\scratchskip
+% \fi}
+%
+% don't change the next improvement:
+
+% \def\dosomebreak#1%
+% {\endgraf % beware, this forces a newline
+% \ifvmode
+% \ifdim\lastskip=\zeropoint
+% #1\relax
+% \else
+% \scratchskip\lastskip
+% \removelastskip
+% #1\relax
+% \vskip\scratchskip
+% \fi
+% \fi}
+
+% beter, vooral in \vbox; nog in \pagina toepassen s!
+
+\def\doifoutervmode#1%
+ {\ifvmode\ifinner\else#1\fi\fi}
+
+\ifx\dosomebreak\undefined % defined in mkiv
+
+ \def\dosomebreak#1%
+ {\doifoutervmode
+ {\scratchskip\lastskip
+ \removelastskip
+ %\leavevmode\type{#1}%
+ #1\relax
+ \ifdim\scratchskip=\zeropoint % else interference with footnotes
+ \else
+ \vskip\scratchskip
+ \fi}}
+
+\fi
+
+\def\forgeteverypar
+ {\everypar{\the\neverypar}}
+
+%\def\forgetparindent
+% {\forgeteverypar
+% \indentfirstparagraphtrue % recently added
+% \setupindenting[\v!geen]}
+
+%\def\forgetparskip
+% {\setupwhitespace[\v!geen]}
+
+\def\forgetparindent
+ {\forgeteverypar
+ \indentfirstparagraphtrue % recently added
+ \let\currentindentation\v!none
+ \ctxparindent\zeropoint
+ \parindent\zeropoint\relax}
+
+\def\forgetparskip
+ {\let\currentwhitespace\v!none
+ \ctxparskip\zeropoint
+ \parskip\zeropoint\relax}
+
+\def\forgetbothskips
+ {\tolerance1500
+ \leftskip\zeropoint
+ \rightskip\zeropoint\relax}
+
+\def\forgetspacing
+ {\emergencystretch\zeropoint}
+
+\newif\ifforgotten % rather good signal for inner
+
+\appendtoks \forgottentrue \to \everyforgetall
+\appendtoks \forgetragged \to \everyforgetall
+\appendtoks \forgetparskip \to \everyforgetall
+\appendtoks \forgetparindent \to \everyforgetall
+\appendtoks \forgetbothskips \to \everyforgetall
+\appendtoks \forgetspacing \to \everyforgetall % i.v.m. funny spacing in pagebody
+\appendtoks \spacing\!!plusone \to \everyforgetall % new per 10/08/2004, else problems in otr / !! needed
+\appendtoks \everypar\emptytoks \to \everyforgetall % indeed!
+
+\def\localvbox#1#%
+ {\vbox#1\bgroup
+ \forgetparskip
+ \setlocalhsize
+ \hsize\localhsize
+ \forgetparindent
+ \forgetbothskips
+ \forgeteverypar
+ \let\next=}
+
+% ach ja, hoort niet hier
+
+% \unexpanded\def\dostartattributes#1#2#3%
+% {\begingroup % geen \bgroup, anders in mathmode lege \hbox
+% \doifdefinedelse{#1#2}
+% {\def\fontattribute{\getvalue{#1#2}}}
+% {\let\fontattribute=\empty}%
+% \doifdefinedelse{#1#3}
+% {\def\colorattribute{\getvalue{#1#3}}}
+% {\let\colorattribute=\empty}%
+% \startcolor[\colorattribute]%
+% \@EA\doconvertfont\@EA{\fontattribute}}
+%
+% \unexpanded\def\dostopattributes%
+% {\stopcolor
+% \endgroup}
+%
+% \unexpanded\def\doattributes#1#2#3#4%
+% {\dostartattributes{#1}{#2}{#3}{#4}\dostopattributes}
+
+%D A hardly faster implementation follows. We cannot use
+%D \type {csname} testing since the first argument can be
+%D anything, even a raw fontswitch. No a real improvement
+%D (some 5 seconds on 260 seconds for the maps bibliography).
+
+\let\dostopattributes\relax % in case these commands end up in an edef
+
+\unexpanded\def\dostartattributes#1#2#3%
+ {\begingroup % geen \bgroup, anders in mathmode lege \hbox
+ \ifcsname#1#3\endcsname
+ \let\dostopattributes\@@dostopattributes
+ \startcolor[\csname#1#3\endcsname]%
+ \else
+ \let\dostopattributes\@@nostopattributes
+ \fi
+ \ifcsname#1#2\endcsname
+ \expandafter\doconvertfont
+ \else
+ \expandafter\gobbleoneargument
+ \fi{\csname#1#2\endcsname}}
+
+\newconditional \parbasedattributes
+
+\def\finishparbasedattributes
+ {\ifconditional\parbasedattributes
+ \setfalse\parbasedattributes
+ \par
+ \fi}
+
+\def\dostopparbasedattributes
+ {\settrue\parbasedattributes
+ \dostopattributes}
+
+\unexpanded\def\@@dostopattributes
+ {\stopcolor
+ \finishparbasedattributes
+ \endgroup}
+
+\unexpanded\def\@@nostopattributes
+ {\finishparbasedattributes
+ \endgroup}
+
+\unexpanded\def\doattributes#1#2#3#4%
+ {\dostartattributes{#1}{#2}{#3}{#4}\dostopattributes}
+
+% An even faster \ETEX\ version:
+
+\unexpanded\def\dostartattributes#1#2#3%
+ {\begingroup % geen \bgroup, anders in mathmode lege \hbox
+ \ifincolor
+ \ifcsname#1#3\endcsname
+ \let\dostopattributes\@@dostopattributes
+ \faststartcolor[\csname#1#3\endcsname]%
+ \else
+ \let\dostopattributes\@@nostopattributes
+ \fi
+ \else
+ \let\dostopattributes\@@nostopattributes
+ \fi
+ \ifcsname#1#2\endcsname
+ % \@EAEAEA\doconvertfont\@EA\@EA\csname#1#2\endcsname
+ \@EA\doconvertfont\csname#1#2\@EA\endcsname
+ \fi}
+
+\unexpanded\def\@@dostopattributes
+ {\faststopcolor
+ \finishparbasedattributes
+ \endgroup}
+
+\unexpanded\def\@@nostopattributes
+ {\finishparbasedattributes
+ \endgroup}
+
+%D Bonus macro, see core-sec.tex
+
+\unexpanded\def\dosetfontattribute#1#2%
+ {\ifcsname#1#2\endcsname
+ \@EA\doconvertfont\csname#1#2\@EA\endcsname
+ \fi\empty}
+
+%D Since this happens a lot, and sometimes large arguments
+%D are passed in \type {#4}, we just copy some code:
+
+\unexpanded\def\doattributes#1#2#3#4%
+ {\begingroup % geen \bgroup, anders in mathmode lege \hbox
+ \ifincolor
+ \ifcsname#1#3\endcsname
+ \let\dostopattributes\@@dostopattributes
+ \faststartcolor[\csname#1#3\endcsname]%
+ \else
+ \let\dostopattributes\endgroup
+ \fi
+ \else
+ \let\dostopattributes\endgroup
+ \fi
+ \ifcsname#1#2\endcsname
+ % \@EAEAEA\doconvertfont\@EA\@EA\csname#1#2\endcsname
+ \@EA\doconvertfont\csname#1#2\@EA\endcsname
+ \fi
+ {#4}%
+ \dostopattributes}
+
+% Kan vaker worden toegepast en moet bovendien sneller!
+
+\newskip\leftskipadaption
+\newskip\rightskipadaption
+
+\def\doadaptleftskip#1%
+ {\dosetleftskipadaption{#1}%
+ \advance\leftskip \leftskipadaption}
+
+\def\doadaptrightskip#1%
+ {\dosetrightskipadaption{#1}%
+ \advance\rightskip \rightskipadaption}
+
+\setvalue{@lsa@\v!standard}{\ifdim\ctxparindent=\zeropoint\@@slleft\else\ctxparindent\fi}
+\setvalue{@lsa@\v!yes }{\ifdim\ctxparindent=\zeropoint\@@slleft\else\ctxparindent\fi}
+\letvalue{@lsa@\v!no }\zeropoint
+\letvalue{@lsa@\empty }\zeropoint
+\setvalue{@rsa@\v!standard}{\@@slright}
+\setvalue{@rsa@\v!yes }{\@@slright}
+\letvalue{@rsa@\v!no }\zeropoint
+\letvalue{@rsa@\empty }\zeropoint
+
+% not safe for 2\parindent
+%
+% \def\dosetleftskipadaption#1%
+% {\leftskipadaption
+% \ifcsname @lsa@#1\endcsname
+% \csname @lsa@#1\endcsname
+% \else
+% #1%
+% \fi
+% \relax}
+
+\def\dosetleftskipadaption#1%
+ {\edefconvertedargument\ascii{@lsa@#1}%
+ \leftskipadaption
+ \ifcsname\ascii\endcsname
+ \csname\ascii\endcsname
+ \else
+ #1%
+ \fi
+ \relax}
+
+\def\dosetrightskipadaption#1%
+ {\edefconvertedargument\ascii{@rsa@#1}%
+ \rightskipadaption
+ \ifcsname\ascii\endcsname
+ \csname\ascii\endcsname
+ \else
+ #1%
+ \fi
+ \relax}
+
+\newcount \noftrackedpagestates
+\newif \ifpagestatemismatch
+\newcount \realpagestateno
+\chardef \frozenpagestate \zerocount
+
+\def\dotrackpagestate#1#2%
+ {\ifdoublesided \ifinpagebody \else
+ \doforcedtrackpagestate{#1}{#2}%
+ \fi \fi}
+
+\def\doforcedtrackpagestate#1#2%
+ {\ifcase\frozenpagestate
+ \global\advance\noftrackedpagestates\plusone
+ \global\advance#2\plusone
+ \lazysavetaggedtwopassdata{#1}{\number\noftrackedpagestates}{\number#2}{\noexpand\realfolio}%
+ %\llap{\infofont\number\noftrackedpagestates/\number#2}% tracing
+ \fi}
+
+\def\doifrightpagestateelse#1#2%
+ {\ifcase\frozenpagestate
+ \pagestatemismatchfalse
+ \realpagestateno\realfolio
+ \ifinpagebody
+ \ifdoublesided
+ \ifodd\realpageno\relax
+ \twopassdatafoundtrue \else \twopassdatafoundfalse
+ \fi
+ \else
+ \twopassdatafoundtrue
+ \fi
+ \else\ifdoublesided
+ \findtwopassdata{#1}{\number#2}%
+ \iftwopassdatafound
+ \realpagestateno\twopassdata\relax
+ \ifnum\twopassdata=\realpageno \else
+ \pagestatemismatchtrue
+ \fi
+ \ifodd\twopassdata\relax
+ \twopassdatafoundtrue \else \twopassdatafoundfalse
+ \fi
+ \else
+ \ifodd\realpageno\relax
+ \twopassdatafoundtrue \else \twopassdatafoundfalse
+ \fi
+ \fi
+ \else
+ \twopassdatafoundtrue
+ \fi\fi
+ \else
+ \ifodd\realpagestateno\relax
+ \twopassdatafoundtrue \else \twopassdatafoundfalse
+ \fi
+ \fi
+ \iftwopassdatafound
+ \@EA\firstoftwoarguments
+ \else
+ \@EA\secondoftwoarguments
+ \fi}
+
+\def\doifforcedrightpagestateelse#1#2%
+ {\ifcase\frozenpagestate
+ \pagestatemismatchfalse
+ \realpagestateno\realfolio
+ \findtwopassdata{#1}{\number#2}%
+ \iftwopassdatafound
+ \realpagestateno\twopassdata\relax
+ \ifnum\twopassdata=\realpageno \else
+ \pagestatemismatchtrue
+ \fi
+ \ifodd\twopassdata\relax
+ \twopassdatafoundtrue \else \twopassdatafoundfalse
+ \fi
+ \else
+ \ifodd\realpageno\relax
+ \twopassdatafoundtrue \else \twopassdatafoundfalse
+ \fi
+ \fi
+ \else
+ \ifodd\realpagestateno\relax
+ \twopassdatafoundtrue \else \twopassdatafoundfalse
+ \fi
+ \fi
+ \iftwopassdatafound
+ \@EA\firstoftwoarguments
+ \else
+ \@EA\secondoftwoarguments
+ \fi}
+
+\def\freezepagestate {\chardef\frozenpagestate\plusone }
+\def\defrostpagestate{\chardef\frozenpagestate\zerocount}
+
+% we can make more of these on top, but how to deal with mixed frozen states
+
+\definetwopasslist\s!paragraph \newcount \nofraggedparagraphs
+
+\def\signalrightpage {\dotrackpagestate \s!paragraph\nofraggedparagraphs}
+\def\doifrightpageelse{\doifrightpagestateelse\s!paragraph\nofraggedparagraphs}
+
+\newcount\pagesignallevel
+
+\def\startsignalrightpage % one may do a \postsignalrightplace
+ {\advance\pagesignallevel\plusone
+ \presignalrightpage
+ \let\signalrightpage\relax
+ \let\presignalrightpage\relax
+ \let\startsignalrightpage\relax
+ \doifrightpageelse\donothing\donothing
+ \freezepagestate}
+
+\def\stopsignalrightpage
+ {\ifcase\pagesignallevel\or\postsignalrightpage\fi
+ \advance\pagesignallevel\minusone}
+
+\def\setraggedparagraphmode
+ {\signalrightpage\doifrightpageelse} % move it there
+
+\ifx\swapmargins\undefined \let\swapmargins\undefined \fi % todo
+
+\def\doifswappedrightpageelse#1#2% alleen in box construction !
+ {\doifrightpageelse
+ {#1}
+ {\scratchcounter\realpageno
+ \realpageno\realpagestateno\relax
+ \swapmargins
+ \realpageno\scratchcounter
+ #2}}
+
+\newbox\signaledrightpage % this way we can avoid interference, i.e. postpone placement
+
+\def\presignalrightpage {\global\setbox\signaledrightpage\hbox{\signalrightpage}}
+\def\postsignalrightpage{\ifvoid\signaledrightpage\else\box\signaledrightpage\fi}
+
+% The next feature is is used in:
+%
+% \definenumber[test][way=bypage]
+%
+% \def\Test
+% {\incrementnumber[test]\rawnumber[test]/%
+% \incrementnumber[test]\rawnumber[test]/%
+% \incrementnumber[test]\rawnumber[test]\space
+% \checkpagechange{oeps}\changedpage{oeps}\space
+% \ifpagechanged TRUE\else FALSE\fi}
+%
+% \Test\page \Test\par \Test\page \Test\par \Test\page \Test\page
+%
+% (adapted from cont-new.tex:)
+
+\newif\ifpagechanged \let\lastchangedpage\empty
+
+\def\docheckpagestatechange#1#2#3%
+ {\pagechangedfalse
+ \doforcedtrackpagestate{#2}{#3}%
+ \findtwopassdata{#2}{\number#3}%
+ \iftwopassdatafound
+ \ifnum\twopassdata>0\getvalue{#2:p:#1}\relax
+ \pagechangedtrue
+ \fi
+ \fi
+ \ifpagechanged
+ \letgvalue{#2:p:#1}\twopassdata
+ \globallet\lastchangedpage\twopassdata
+ \else
+ \globallet\lastchangedpage\realfolio
+ \fi}
+
+\def\changedpagestate#1#2%
+ {\executeifdefined{#2:p:#1}{0}}
+
+\def\checkpagechange#1{\docheckpagestatechange{#1}\s!paragraph\nofraggedparagraphs}
+\def\changedpage #1{\changedpagestate{#1}\s!paragraph}
+
+% saved struts
+
+\ifx\savedstrutbox\undefined \newbox\savedstrutbox \fi
+
+\def\savestrut {\setbox\savedstrutbox\copy\strutbox}
+\def\savedstrut{\copy \savedstrutbox}
+
+% De onderstaande macro's zijn opgenomen in Plain TeX.
+%
+% \def\raggedright%
+% {\rightskip\zeropoint plus2em \spaceskip.3333em \xspaceskip.5em\relax}
+%
+% \def\ttraggedright%
+% {\tttf\rightskip\zeropoint plus2em\relax}
+%
+% \newif\ifr@ggedbottom
+%
+% \def\raggedbottom%
+% {\topskip 10\points plus60\points \r@ggedbottomtrue}
+%
+% \def\normalbottom%
+% {\topskip 10\points \r@ggedbottomfalse}
+%
+% en worden hieronder wat aangepast.
+
+% the three boolean will become obsolete some day in favour
+% of \bottomraggedness
+
+\chardef\bottomraggedness=0 % 0=ragged 1=normal/align 2=baseline
+
+\def\bottomalignlimit{3\lineheight}
+
+\newif\ifn@rmalbottom
+\newif\ifr@ggedbottom
+\newif\ifb@selinebottom
+
+\def\normalbottom
+ {% \topskip 10pt
+ \r@ggedbottomfalse}
+
+\def\raggedbottom
+ {\chardef\bottomraggedness\zerocount
+ \n@rmalbottomfalse
+ \r@ggedbottomtrue
+ \b@selinebottomfalse
+ \settopskip}
+
+\def\alignbottom
+ {\chardef\bottomraggedness\plusone
+ \n@rmalbottomtrue
+ \r@ggedbottomfalse
+ \b@selinebottomfalse
+ \settopskip}
+
+\def\baselinebottom
+ {\chardef\bottomraggedness\plustwo
+ \n@rmalbottomfalse
+ \r@ggedbottomfalse
+ \b@selinebottomtrue
+ \settopskip}
+
+\let\normalbottom=\alignbottom % downward compatible
+
+% so, the new one will be
+%
+% \chardef\bottomraggedness=0 % 0=ragged 1=normal/align 2=baseline
+%
+% \def\bottomalignlimit{3\lineheight} % will be settable
+%
+% \def\raggedbottom {\chardef\bottomraggedness=0 \settopskip}
+% \def\alignbottom {\chardef\bottomraggedness=1 \settopskip}
+% \def\baselinebottom{\chardef\bottomraggedness=2 \settopskip}
+%
+% \let\normalbottom =\alignbottom
+
+% \hyphenpenalty = ( 2.5 * \hsize ) / \raggedness
+% \tolerance >= 1500 % was 200
+% \raggedness = 2 .. 6\bodyfontsize
+
+\chardef\raggedstatus=0 % normal left center right
+
+\def\leftraggedness {2\bodyfontsize}
+\def\rightraggedness {2\bodyfontsize}
+\def\middleraggedness {6\bodyfontsize}
+
+\def\middleraggedness {.5\hsize} % was: 6\bodyfontsize, fails on: \placefigure{x $x=x$ x}{}
+
+% oeps, hsize can be 0pt in which case we get a strange division
+
+\def\middleraggedness {\ifdim\hsize=\zeropoint6\bodyfontsize\else.5\hsize\fi} % was: 6\bodyfontsize, fails on: \placefigure{x $x=x$ x}{}
+
+%D More hyphenation control, will be combined with align
+%D setup.
+
+\def\nohyphens
+ {\ifx\dohyphens\relax
+ \edef\dohyphens
+ {\hyphenpenalty\the\hyphenpenalty
+ \exhyphenpenalty\the\exhyphenpenalty\relax}%
+ \fi
+ \hyphenpenalty\plustenthousand
+ \exhyphenpenalty\plustenthousand}
+
+\let\dohyphens\relax
+
+%D To prevent unwanted side effects, we also have to check
+%D for hyphens here:
+
+% \def\setraggedness#1%
+% {\ifnum\tolerance<1500\relax % small values have
+% \tolerance1500\relax % unwanted side effects
+% \fi
+% \spaceskip2.5\hsize % we misuse these registers
+% \xspaceskip#1\relax % for temporary storage;
+% \divide\spaceskip \xspaceskip % they are changed anyway
+% \ifx\dohyphens\relax
+% \hyphenpenalty\spaceskip % \else no hyphens is active
+% \fi}
+
+\newskip\@@raggedskipa
+\newskip\@@raggedskipb
+
+\def\setraggedness#1%
+ {\ifnum\tolerance<1500\relax % small values have
+ \tolerance1500\relax % unwanted side effects
+ \fi
+ \ifx\dohyphens\relax
+ % this code will be reconsidered / kind of fuzzy (and old)
+ \@@raggedskipa 2.5\hsize
+ \@@raggedskipb #1\relax
+ \divide\@@raggedskipa \@@raggedskipb
+ \hyphenpenalty\@@raggedskipa
+ \fi}
+
+\let\updateraggedskips\relax
+
+\def\setraggedskips#1#2#3#4#5#6#7% never change this name
+ {\def\updateraggedskips{\dosetraggedskips{#1}{#2}{#3}{#4}{#5}{#6}{#7}}%
+ \updateraggedskips}
+
+\def\dosetraggedskips#1#2#3#4#5#6#7%
+ {\chardef \raggedstatus#1\relax
+ \leftskip 1\leftskip \!!plus#2\relax % zie: Tex By Topic 8.1.3
+ \rightskip 1\rightskip\!!plus#3\relax % zie: Tex By Topic 8.1.3
+ \spaceskip #4\relax
+ \xspaceskip #5\relax
+ \parfillskip\zeropoint\!!plus#6\relax
+ \parindent #7\relax}
+
+% \def\notragged%
+% {\setraggedskips{0}{0em}{0em}{0em}{0em}{1fil}{\parindent}}
+
+% older (context) names:
+
+\let\spaceamount \interwordspace
+\let\emspaceamount\emwidth
+
+% tracing:
+
+\def\doshowpardata#1%
+ {\ifx#1\relax\else
+ \hbox{\string#1: \the#1}\endgraf
+ \expandafter\doshowpardata
+ \fi}
+
+\def\showpardata
+ {\edef\thepardata
+ {\hbox{font: \fontname\font}\endgraf
+ \doshowpardata
+ \interwordspace \interwordstretch \interwordshrink \emwidth \exheight \extraspace
+ \hsize \vsize
+ \leftskip \rightskip
+ \spaceskip \xspaceskip
+ \parindent \parfillskip
+ \hyphenpenalty \exhyphenpenalty
+ \displaywidowpenalty \widowpenalty \clubpenalty \brokenpenalty
+ \doublehyphendemerits \finalhyphendemerits \adjdemerits
+ \relax}%
+ \begingroup
+ \dontshowcomposition
+ \inleftmargin{\vsmash
+ {\switchtobodyfont[7pt,tt]%
+ \framed[\c!align=\v!right]{\thepardata}}}%
+ \endgroup}
+
+\def\startshowpardata
+ {\begingroup
+ \showcomposition
+ \showstruts\tracepositionstrue \tracingparagraphs\maxdimen
+ \appendtoksonce\showpardata\let\showpardata\relax\to\everypar}
+
+\def\stopshowpardata
+ {\endgraf
+ \endgroup}
+
+% \defineXMLenvironment[showpardata] \startshowpardata \stopshowpardata
+% \defineXMLsingular [showpardata] \showpardata
+
+% defaults
+
+\def\raggedfillamount {1fil}
+\def\raggedhalffillamount{.5fil}
+\def\raggedspaceamount {\interwordspace} % {.3333em}
+\def\raggedxspaceamount {.5em}
+
+\def\notragged
+ {\chardef\raggedstatus\zerocount
+ \leftskip 1\leftskip
+ \rightskip 1\rightskip
+ \spaceskip \zeropoint
+ \xspaceskip \zeropoint
+ \parfillskip\zeropoint\!!plus\raggedfillamount\relax
+ \let\updateraggedskips\relax} % new
+
+\let\forgetragged\notragged
+
+\def\raggedleft
+ {\setraggedness\leftraggedness
+ \setraggedskips1\leftraggedness\zeropoint\raggedspaceamount
+ \raggedxspaceamount\zeropoint\zeropoint}
+
+\def\raggedcenter
+ {\setraggedness\middleraggedness
+ \setraggedskips2\middleraggedness\middleraggedness\raggedspaceamount
+ \raggedxspaceamount\zeropoint\zeropoint}
+
+%D We used to have:
+%D
+%D \starttyping
+%D \def\raggedright
+%D {\setraggedness\rightraggedness
+%D \setraggedskips{3}{0em}{\rightraggedness}{.3333em}{.5em}{0em}{\parindent}}
+%D \stoptyping
+%D
+%D However, the next alternative, suggested by Taco, is better.
+
+\def\raggedright
+ {\setraggedness\rightraggedness
+ \setraggedskips3\zeropoint\rightraggedness\raggedspaceamount
+ \raggedxspaceamount\raggedfillamount\parindent}
+
+\def\veryraggedleft
+ {\setraggedskips1\raggedfillamount\zeropoint\raggedspaceamount
+ \raggedxspaceamount\zeropoint\zeropoint}
+
+%D When we want the last line to have a natural width:
+%D
+%D \starttyping
+%D \def\veryraggedleft%
+%D {\setraggedskips{1}{1fil}{0em}{.3333em}{.5em}{0em}{-1fil}}
+%D \stoptyping
+%D
+%D but this one is not accepted by the macros.
+
+\def\veryraggedcenter
+ {\setraggedskips2\raggedfillamount\raggedfillamount\raggedspaceamount
+ \raggedxspaceamount\zeropoint\zeropoint}
+
+\def\veryraggedright
+ {\setraggedskips3\zeropoint\raggedfillamount\raggedspaceamount
+ \raggedxspaceamount\zeropoint\parindent}
+
+\def\ttraggedright
+ {\tttf
+ \setraggedskips3\zeropoint\rightraggedness
+ \zeropoint\zeropoint\zeropoint\parindent} % \ctxparindent
+
+%D A bonus one:
+
+\def\raggedwidecenter
+ {\setraggedness\middleraggedness
+ \setraggedskips2\raggedhalffillamount\raggedhalffillamount
+ \raggedspaceamount\raggedxspaceamount\zeropoint\zeropoint}
+
+\newif\if@@asragged \@@asraggedtrue % old method
+
+% todo
+%
+% \setuplayout[grid=yes,lines=44] \showgrid
+% \starttext
+% test \vfill test \endgraf \strut \endgraf \vskip-\lineheight \removedepth \pagina test
+% \stoptext
+
+% \setupalign[reset,new,right,old]
+
+\def\@@align@@rl{\if!!donea\veryraggedleft \else\raggedleft \fi}
+\def\@@align@@rr{\if!!donea\veryraggedright \else\raggedright \fi}
+\def\@@align@@rc{\if!!donea\veryraggedcenter\else\raggedcenter\fi}
+
+\setvalue{@@ngila@@\v!broad }{\!!doneatrue}
+\setvalue{@@ngila@@\v!wide }{\!!donebtrue}
+
+\def\installalign#1#2{\setvalue{@@align@@#1}{#2}} % can be used for overloads
+
+\installalign \v!new {\@@asraggedfalse}
+\installalign \v!old {\@@asraggedtrue}
+\installalign \empty {}
+
+\installalign \v!line {\baselinebottom}
+\installalign \v!bottom {\raggedbottom}
+\installalign \v!height {\normalbottom}
+\installalign \v!width {\notragged}
+\installalign \v!normal {\notragged}
+\installalign \v!yes {\notragged}
+\installalign \v!no {\raggedright}
+\installalign \v!inner {\if@@asragged \setraggedparagraphmode\@@align@@rl\@@align@@rr \else
+ \setraggedparagraphmode\@@align@@rr\@@align@@rl \fi}
+\installalign \v!outer {\if@@asragged \setraggedparagraphmode\@@align@@rr\@@align@@rl \else
+ \setraggedparagraphmode\@@align@@rl\@@align@@rr \fi}
+\installalign \v!left {\if@@asragged\@@align@@rl\else\@@align@@rr\fi}
+\installalign \v!right {\if@@asragged\@@align@@rr\else\@@align@@rl\fi}
+\installalign \v!middle {\if!!doneb\raggedwidecenter\else\@@align@@rc\fi}
+\installalign \v!flushleft {\if!!donea\veryraggedright \else\raggedright\fi}
+\installalign \v!flushright {\if!!donea\veryraggedleft \else\raggedleft \fi}
+\installalign \v!flushouter {\setraggedparagraphmode\raggedleft\raggedright}
+\installalign \v!flushinner {\setraggedparagraphmode\raggedright\raggedleft}
+\installalign \v!center {\if!!doneb\raggedwidecenter\else\@@align@@rc\fi}
+\installalign \v!hanging {\enableprotruding}
+\installalign \v!nothanging {\disableprotruding}
+\installalign \v!hz {\enableadjusting}
+\installalign \v!nohz {\disableadjusting}
+\installalign \v!spacing {\enablespacehandling \enablekernhandling}
+\installalign \v!nospacing {\disablespacehandling\disablekernhandling}
+\installalign \v!hyphenated {\dohyphens}
+\installalign \v!nothyphenated {\nohyphens}
+\installalign \v!new {\@@asraggedfalse} % so new will give you consistency
+\installalign \v!reset {\notragged\normalbottom}
+
+\installalign \v!tolerant {\tolerance3000 \relax}
+\installalign \v!verytolerant {\tolerance4500 \relax}
+\installalign \v!stretch {\emergencystretch\bodyfontsize}
+
+\newcount\hyphenminoffset
+
+\ifx\sethyphenationvariables\undefined \let\sethyphenationvariables\relax \fi
+
+\def\lesshyphens
+ {\advance\hyphenminoffset\plusone
+ \sethyphenationvariables}
+
+\def\morehyphens
+ {\ifcase\hyphenminoffset \else
+ \advance\hyphenminoffset\minusone
+ \fi
+ \sethyphenationvariables}
+
+\installalign \v!lesshyphenation {\lesshyphens}
+\installalign \v!morehyphenation {\morehyphens}
+
+\def\dodosetupalign#1{\csname @@align@@#1\endcsname}
+\def\dodosetupngila#1{\csname @@ngila@@#1\endcsname}
+
+\def\setupalign
+ {\dosingleargument\dosetupalign}
+
+\def\dosetupalign[#1]% can be made faster by checking for defined #1
+ {\!!doneafalse
+ \!!donebfalse
+ \processcommacommand[#1]\dodosetupngila
+ \processcommacommand[#1]\dodosetupalign}
+
+% \setupalign[flushleft] \input ward \par % lijnlinks
+% \setupalign[right] \input ward \par
+
+% \setupalign[flushright] \input ward \par % lijnrechts
+% \setupalign[left] \input ward \par
+
+% \setupalign[middle] \input ward \par % centreer
+% \setupalign[center] \input ward \par
+
+\def\startalignment
+ {\bgroup
+ \setupalign}
+
+\def\stopalignment
+ {\par
+ \egroup}
+
+\chardef\alignstrutmode=1
+
+% see later for the real definition, which in the simple case is:
+
+\newtoks \everyleftofalignedline
+\newtoks \everyrightofalignedline
+
+\def\shiftalignedline#1#2#3#4% left, right, inner, outer
+ {\rightorleftpageaction
+ {\everyleftofalignedline {\hskip\dimexpr#1+#3\relax}%
+ \everyrightofalignedline{\hskip\dimexpr#2+#4\relax}}
+ {\everyleftofalignedline {\hskip\dimexpr#1+#4\relax}%
+ \everyrightofalignedline{\hskip\dimexpr#2+#3\relax}}}
+
+% \def\doalignline#1#2% \\ == newline
+% {\begingroup
+% \setlocalhsize % new
+% \def\\{\egroup\par\doalignline{#1}{#2}\bgroup}%
+% \dowithnextbox
+% {\noindentation % was \noindent
+% \dontleavehmode % added in marrakesch at TUG 2006
+% \hbox to \localhsize
+% {\ifcase\alignstrutmode\or\strut\fi
+% \the\everyleftofalignedline
+% #1\unhbox\nextbox#2\relax
+% \the\everyrightofalignedline}%
+% \endgroup}
+% \hbox}
+
+\def\doalignline#1#2% \\ == newline
+ {\noindentation % was \noindent
+ \dontleavehmode % added in marrakesch at TUG 2006\begingroup
+ \begingroup
+ \setlocalhsize % new
+ \def\\{\egroup\par\doalignline{#1}{#2}\bgroup}%
+ \dowithnextbox
+ {\hbox to \localhsize
+ {\ifcase\alignstrutmode\or\strut\fi
+ \the\everyleftofalignedline
+ #1\unhbox\nextbox#2\relax
+ \the\everyrightofalignedline}%
+ \endgroup}
+ \hbox}
+
+% plain commands
+
+\ifx\undefined\line \def\line {\hbox to\hsize} \fi
+\ifx\undefined\leftline \def\leftline #1{\line{#1\hss}} \fi
+\ifx\undefined\rightline \def\rightline #1{\line{\hss#1}} \fi
+\ifx\undefined\centerline \def\centerline#1{\line{\hss#1\hss}} \fi
+
+% directe commando's
+
+\def\leftaligned {\doalignline \relax \hss }
+\def\midaligned {\doalignline \hss \hss }
+\def\rightaligned{\doalignline \hss \relax}
+
+\let\centeraligned\midaligned
+
+\def\regelbegrensd#1{\limitatetext{#1}{\hsize}{\unknown}} % to be translated
+
+% indirecte commando's
+
+\letvalue{\s!do\v!line\v!left }\leftaligned
+\letvalue{\s!do\v!line\v!right }\rightaligned
+\letvalue{\s!do\v!line\v!middle }\midaligned
+\letvalue{\s!do\v!line\v!flushleft }\rightaligned
+\letvalue{\s!do\v!line\v!flushright}\leftaligned
+\letvalue{\s!do\v!line\v!center }\midaligned
+
+\def\doalignedline#1{\csname\s!do\v!line#1\endcsname}
+
+%D Experimental:
+
+% simple version
+%
+% \def\doxalignline#1#2%
+% {\bgroup
+% \setlocalhsize
+% \def\\{\egroup\par\doxalignline{#1}{#2}\bgroup}% inefficient
+% \dowithnextbox
+% {\noindent\hbox to \localhsize
+% {\ifcase\alignstrutmode\or\strut\fi
+% \signalrightpage
+% \doifrightpageelse{#1\unhbox\nextbox#2}{#2\unhbox\nextbox#1}}%
+% \egroup}
+% \hbox}
+%
+% \setvalue{\s!do\v!regel\v!binnen}{\doxalignline\relax\hss}
+% \setvalue{\s!do\v!regel\v!buiten}{\doxalignline\hss\relax}
+%
+% more extensive:
+
+\def\doxalignline#1#2#3#4#5#6%
+ {\noindentation % was \noindent
+ \dontleavehmode % added in marrakesch at TUG 2006\begingroup
+ \begingroup
+ \setlocalhsize
+ \def\\{\egroup\par\doxalignline#1#2#3#4#5#6\bgroup}% inefficient
+ \dowithnextbox
+ {%\noindent moved up
+ \hbox to \localhsize
+ {#1\hskip\ifdone#2\else#3\fi#4%
+ \hbox to \localhsize
+ {\the\everyleftofalignedline
+ \ifcase\alignstrutmode\or\strut\fi
+ \ifdone#5\unhbox\nextbox#6\else#6\unhbox\nextbox#5\fi
+ \the\everyrightofalignedline}%
+ \hss}%
+ \endgroup}
+ \hbox}
+
+\def\doxcheckline
+ {\signalrightpage\doifrightpageelse\donetrue\donefalse}
+
+\setvalue{\s!do\v!line\v!inner }{\doxalignline\doxcheckline++\zeropoint \relax\hss }
+\setvalue{\s!do\v!line\v!outer }{\doxalignline\doxcheckline++\zeropoint \hss \relax}
+\setvalue{\s!do\v!line\v!innermargin}{\doxalignline\doxcheckline-+\innermargintotal\relax\hss }
+\setvalue{\s!do\v!line\v!outermargin}{\doxalignline\doxcheckline+-\outermargintotal\hss \relax}
+\setvalue{\s!do\v!line\v!inneredge }{\doxalignline\doxcheckline-+\inneredgetotal \relax\hss }
+\setvalue{\s!do\v!line\v!outeredge }{\doxalignline\doxcheckline+-\outeredgetotal \hss \relax}
+\setvalue{\s!do\v!line\v!backspace }{\doxalignline\doxcheckline-+\backspace \relax\hss }
+\setvalue{\s!do\v!line\v!cutspace }{\doxalignline\doxcheckline+-\cutspace \hss \relax}
+
+\setvalue{\s!do\v!line\v!leftmargin }{\doxalignline\donefalse --\leftmargintotal \hss \relax}
+\setvalue{\s!do\v!line\v!rightmargin}{\doxalignline\donefalse ++\rightmargintotal\relax\hss }
+\setvalue{\s!do\v!line\v!leftedge }{\doxalignline\donefalse --\leftedgetotal \hss \relax}
+\setvalue{\s!do\v!line\v!rightedge }{\doxalignline\donefalse ++\rightedgetotal \relax\hss }
+
+% ! ! ! beware, redefining \doalignline gives the wrong results ! ! !
+%
+% \def\doalignline{\doxalignline\donefalse++\zeropoint}
+
+%D Better:
+
+\def\doalignedline#1{\csname\s!do\v!line#1\endcsname}
+
+% \def\alignedline#1#2% setting default
+% {\csname
+% \s!do\v!line
+% \ifundefined{\s!do\v!line#1}#2\else#1\fi
+% \endcsname}
+
+\def\alignedline#1#2% setting default
+ {\csname\s!do\v!line\ifcsname\s!do\v!line#1\endcsname#1\else#2\fi\endcsname}
+
+%D ...
+
+\def\dosetuptolerance[#1]%
+ {\doifinsetelse\v!vertical{#1}%
+ {\ExpandFirstAfter\processallactionsinset
+ [#1]
+ [ \v!verystrict=>\def\bottomtolerance{},
+ \v!strict=>\def\bottomtolerance{.050},
+ \v!tolerant=>\def\bottomtolerance{.075},
+ \v!verytolerant=>\def\bottomtolerance{.100}]}%
+ {\ExpandFirstAfter\processallactionsinset
+ [#1]
+ [ \v!stretch=>\emergencystretch\bodyfontsize,
+ \v!space=>\spaceskip.5em\!!plus.25em\!!minus.25em\relax,
+ \v!verystrict=>\tolerance 200,
+ \v!strict=>\tolerance1500,
+ \v!tolerant=>\tolerance3000,
+ \v!verytolerant=>\tolerance4500]}}
+
+\def\setuptolerance
+ {\dosingleargument\dosetuptolerance}
+
+% \def\woordrechts
+% {\groupedcommand{\hfill\hbox}{\parfillskip\zeropoint}}
+
+% beware: \wordright{whatever\kern-\rightskip} should work!
+% so, no funny boxing here
+
+\def\dowordright[#1]%
+ {% don't change
+ \groupedcommand
+ {\removeunwantedspaces
+ \hfill
+ \allowbreak % changed back from \hskip\zeropoint
+ \strut
+ \hfill
+ \quad % decent spacing
+ \hbox}
+ {\doifelse{#1}\v!right{\kern-\rightskip}{\doifsomething{#1}{\kern-#1}}%
+ \parfillskip\zeropoint
+ %\finalhyphendemerits\zerocount % yes or no
+ \par}}
+
+\def\wordright
+ {\dosingleempty\dowordright}
+
+% \dorecurse{5}{something } \wordright{--someone} \endgraf
+% \dorecurse{6}{something } \wordright{--someone} \endgraf
+% \dorecurse{7}{something } \wordright{--someone} \endgraf
+%
+% \dorecurse{5}{something } \wordright{--someone else entirely} \endgraf
+% \dorecurse{6}{something } \wordright{--someone else entirely} \endgraf
+% \dorecurse{7}{something } \wordright{--someone else entirely} \endgraf
+%
+% \wordright[\rightskip]{whatever}
+
+% \simplealignedbox{2cm}{right}{x}
+
+\setvalue{\s!simple\c!align\v!right }#1#2{\hbox to #1{#2\hss}}
+\setvalue{\s!simple\c!align\v!left }#1#2{\hbox to #1{\hss#2}}
+\setvalue{\s!simple\c!align\v!flushright }#1#2{\hbox to #1{\hss#2}}
+\setvalue{\s!simple\c!align\v!flushleft }#1#2{\hbox to #1{#2\hss}}
+\setvalue{\s!simple\c!align\v!middle }#1#2{\hbox to #1{\hss#2\hss}}
+
+\def\simplealignedbox#1{\executeifdefined{\s!simple\c!align#1}{\getvalue{\s!simple\c!align\v!right}}}
+
+%D \macros
+%D {pushindentation,popindentation}
+%D
+%D The pushing and popping is done by:
+
+\newbox\indentationboxA
+\newbox\indentationboxB
+
+\def\pushindentation
+ {\bgroup
+ \ifhmode
+ \unskip
+ \setbox\indentationboxA\lastbox % get \strut if present
+ \unskip
+ \setbox\indentationboxB\lastbox % get \indent generated box
+ \unskip
+ \else
+ \hskip\zeropoint % switch to horizontal mode
+ \unskip
+ \setbox\indentationboxA\lastbox % get \indent generated box
+ \setbox\indentationboxB\emptybox
+ \fi}
+
+\def\popindentation
+ {\box\indentationboxB\box\indentationboxA % put back the boxes
+ \egroup}
+
+%D The only complication lays in \type{\strut}. In \PLAIN\
+%D \TEX\ a \type{\strut} is defined as:
+%D
+%D \starttyping
+%D \def\strut%
+%D {\relax\ifmmode\copy\strutbox\else\unhcopy\strutbox\fi}
+%D \stoptyping
+%D
+%D But what is a \type{\strut}? Normally it's a rule of width
+%D zero, but when made visual, it's a rule and a negative skip.
+%D The mechanism for putting things in the margins described
+%D here cannot handle this situation very well. One
+%D characteristic of \type{\strut} is that the \type{\unhcopy}
+%D results in entering horizontal mode, which in return leads
+%D to some indentation.
+%D
+%D To serve our purpose a bit better, the macro \type{\strut}
+%D can be redefined as:
+%D
+%D \starttyping
+%D \def\strut
+%D {\relax\ifmmode\else\hskip0pt\fi\copy\strutbox}
+%D \stoptyping
+%D
+%D Or more compatible:
+%D
+%D \starttyping
+%D \def\strut
+%D {\relax\ifmmode
+%D \copy\strutbox
+%D \else
+%D \bgroup\setbox\strutbox=\normalhbox{\box\strutbox}\unhcopy\strutbox\egroup
+%D \fi}
+%D \stoptyping
+%D
+%D In \CONTEXT\ however we save some processing time by putting
+%D an extra \type{\hbox} around the \type{\strutbox}.
+
+% moved from page-lin.tex to here (due to visualization added
+% in august 2003)
+%
+% \unexpanded \def\crlf
+% {\ifhmode\unskip\else\strut\fi\ifcase\raggedstatus\hfil\fi\break}
+
+\unexpanded \def\crlf
+ {\ifhmode
+ \unskip
+ \prewordbreak\crlfplaceholder
+ \ifcase\raggedstatus\hfil\or\or\or\hfil\fi
+ \break
+ \else
+ \crlfplaceholder
+ \endgraf
+ \fi}
+
+\def\crlfplaceholder
+ {\strut}
+
+\def\settestcrlf
+ {\def\crlfplaceholder
+ {\hbox to \zeropoint
+ {\strut{\infofont\kern.25em}\lohi{\infofont CR}{\infofont LF}\hss}}}
+
+%D \starttyping
+%D % \setuplayout[gridgrid=yes] \showgrid
+%D
+%D \startbuffer
+%D test 1\crlf
+%D test 2\crlf
+%D
+%D \crlf test 3
+%D
+%D test 4\crlf
+%D test 5
+%D
+%D \crlf
+%D \crlf
+%D \crlf
+%D test 6
+%D \stopbuffer
+%D
+%D \hbox
+%D {\hsize5em
+%D \ruledvtop{\getbuffer}\enspace
+%D \ruledvtop{\showstruts\getbuffer}\enspace
+%D \hsize15em \setuptyping[before=,after=]%
+%D \ruledvtop{\typebuffer}}
+%D \stoptyping
+
+\def\opeenregel % to be used grouped
+ {\def\crlf{\removelastspace\space}\let\\\crlf}
+
+\def\showstruts
+ {\setteststrut
+ \settestcrlf}
+
+\def\definehspace
+ {\dotripleempty\dodefinehspace}
+
+\def\dodefinehspace[#1][#2][#3]% #1 = optional namespace
+ {\ifthirdargument
+ \setvalue{\??hs#1:#2}{#3}%
+ \else
+ \setvalue{\??hs:#1}{#2}%
+ \fi}
+
+\unexpanded\def\hspace
+ {\dodoubleempty\dohspace}
+
+%\def\dohspace[#1][#2]%
+% {\ifhmode
+% \removeunwantedspaces
+% \hskip
+% \ifsecondargument
+% \hspaceamount{#1}{#2}%
+% \else
+% \hspaceamount\empty{\iffirstargument#1\else\s!default\fi}%
+% \fi
+% \expandafter\ignorespaces
+% \fi}
+
+\def\dohspace[#1][#2]%
+ {\ifsecondargument
+ \dodohspace[#1][#2]%
+ \else\iffirstargument
+ \hspace[][#1]%
+ \else
+ \hspace[][\s!default]%
+ \fi\fi}
+
+% \def\dodohspace[#1][#2#3]%
+% {\ifhmode
+% \removeunwantedspaces
+% \doifelse{#2}{-}
+% {{\scratchskip\hspaceamount{#1}{#3}\hskip-\scratchskip}}
+% {\hskip\hspaceamount{#1}{#2#3}}%
+% \expandafter\ignorespaces
+% \fi}
+%
+% not needed, tex handles -- as +
+
+\def\dodohspace[#1][#2]%
+ {\ifhmode
+ \removeunwantedspaces
+ \hskip\hspaceamount{#1}{#2}%
+ \expandafter\ignorespaces
+ \fi}
+
+\def\hspaceamount#1#2%
+ {\executeifdefined{\??hs#1:#2}{\executeifdefined{\??hs:#2}\zeropoint}}
+
+\definehspace [\v!small] [.25\emspaceamount]
+\definehspace [\v!medium] [.5\emspaceamount]
+\definehspace [\v!big] [1\emspaceamount]
+\definehspace [\v!normal] [1\spaceamount]
+\definehspace [\v!default] [\spaceamount]
+
+%D Taken from Taco's math module (cq. \AMS\ macros), but
+%D adapted to \type {\hspace}:
+
+\unexpanded\def\textormathspace#1#2#3%
+ {\ifmmode\mskip#1#2\else\kern#1\hspaceamount\empty{#3}\fi\relax}
+
+\newmuskip\hairmuskip \hairmuskip=.15mu
+
+\def\hairspace {\textormathspace+\hairmuskip{.5}}
+\def\thinspace {\textormathspace+\thinmuskip 1}
+\def\medspace {\textormathspace+\medmuskip 2}
+\def\thickspace {\textormathspace+\thickmuskip3}
+\def\neghairspace {\textormathspace-\thinmuskip{.5}}
+\def\negthinspace {\textormathspace-\thinmuskip 1}
+\def\negmedspace {\textormathspace-\medmuskip 2}
+\def\negthickspace{\textormathspace-\thickmuskip3}
+
+% needed for unicode:
+
+\def\twoperemspace {\hskip\dimexpr\emwidth/2\relax} % == \enspace
+\def\threeperemspace {\hskip\dimexpr\emwidth/3\relax}
+\def\fourperemspace {\hskip\dimexpr\emwidth/4\relax}
+\def\fiveperemspace {\hskip\dimexpr\emwidth/5\relax} % goodie
+\def\sixperemspace {\hskip\dimexpr\emwidth/6\relax}
+\def\figurespace {\begingroup\setbox\scratchbox\hbox{0}\hskip\wd\scratchbox\endgroup} % there is a command for this
+\def\punctuationspace {\begingroup\setbox\scratchbox\hbox{.}\hskip\wd\scratchbox\endgroup}
+\def\ideographicspace {\hskip\dimexpr\emwidth/1\relax}
+\def\ideographichalffillspace{\hskip\dimexpr\emwidth/2\relax}
+%def\nobreakspace {\penalty\plustenthousand\space}
+\def\nobreakspace {\penalty\plustenthousand\kern\interwordspace}
+\def\narrownobreakspace {\penalty\plustenthousand\thinspace}
+%def\zerowidthnobreakspace {\penalty\plustenthousand\hskip\zeropoint}
+\def\zerowidthnobreakspace {\penalty\plustenthousand\kern\zeropoint}
+\def\zerowidthspace {\hskip\zeropoint}
+
+\definehspace[.5][.1250\emspaceamount] % could also be [.1250\spaceamount]
+\definehspace[1] [.1667\emspaceamount]
+\definehspace[2] [.2222\emspaceamount]
+\definehspace[3] [.2777\emspaceamount]
+
+\let \, \thinspace
+\let \: \medspace
+\let \; \thickspace
+\let \! \negthinspace
+
+% this will become an alternative bunch of \blank settings
+%
+% \startlines
+% \scratchskip=.23pt plus 10pt minus 4pt \relax \number\scratchskip \space \the\scratchskip
+% \setsimplifiedskip\scratchskip1 \number\scratchskip \space \the\scratchskip
+% \setsimplifiedskip\scratchskip2 \number\scratchskip \space \the\scratchskip
+% \getsimplifiedskip\scratchskip\scratchcounter \number\scratchcounter
+% \stoplines
+%
+% \hrule width10cm \endgraf
+% \discardedskip{10pt}
+% \retainedskip {4pt}
+% \discardedskip {5pt}
+% \hrule width10cm \endgraf
+% \blockedskip{0pt}
+% \discardedskip{10pt}
+% \retainedskip {4pt}
+% \discardedskip {5pt}
+% \hrule width10cm \endgraf
+% \frozenskip {4cm}
+% \hrule width10cm \endgraf
+% \vskip10pt
+% \hrule width10cm \endgraf
+
+% ! ! ! etex only, evt splitskip macro gebruiken (syst-new)
+
+\newskip\simplifiedskip
+\newskip\simplifiedcounter
+
+\chardef\@@discardedskip1
+\chardef\@@retainedskip 2
+\chardef\@@forcedskip 3
+\chardef\@@blockedskip 4
+\chardef\@@frozenskip 5 % after heads, no break
+
+\def\setsimplifiedskip#1#2%
+ {#1\dimexpr(10\dimexpr(#1/10)) plus \gluestretch#1 minus \glueshrink#1\relax
+ \advance#1\numexpr(#2)sp\relax}
+
+\def\getsimplifiedskip#1#2%
+ {\simplifiedskip#1\relax
+ \ifzeropt\simplifiedskip % \ifdim\simplifiedskip=\zeropoint
+ #2\zerocount
+ \else
+ \simplifiedcounter\dimexpr10\dimexpr#1/10\relax\relax
+ \advance\simplifiedskip-\simplifiedcounter
+ #2\number\simplifiedskip\relax
+ \fi}
+
+\def\conditionalskip#1#2%
+ {\scratchskip#1\relax
+ \setsimplifiedskip\scratchskip#2\relax
+ \vskip\scratchskip\relax}
+
+\def\defrostskip
+ {\scratchskip\lastskip\penalty50000\normalvskip-\scratchskip\penalty50000\relax}
+
+\def\frozenskip#1%
+ {\endgraf
+ \ifvmode
+ \getsimplifiedskip\lastskip\scratchcounter
+ \ifdim\lastskip>#1\else
+ \defrostskip
+ \conditionalskip{#1}\@@frozenskip
+ \fi
+ \fi}
+
+\def\discardedskip#1%
+ {\endgraf
+ \ifvmode
+ \getsimplifiedskip\lastskip\scratchcounter
+ \ifcase\scratchcounter
+ \conditionalskip{#1}\@@discardedskip
+ \or % discard
+ \ifdim\lastskip>#1\else
+ \normalvskip-\lastskip
+ \conditionalskip{#1}\@@discardedskip
+ \fi
+ \or % retain
+ \ifdim\lastskip>#1\else
+ \normalvskip-\lastskip
+ \conditionalskip{#1}\@@discardedskip
+ \fi
+ \or % forced
+ \conditionalskip{#1}\@@discardedskip
+ \or % ignored
+ \or % frozen
+ \ifdim\lastskip>#1\else
+ \defrostskip
+ \conditionalskip{#1}\@@frozenskip
+ \fi
+ \else\ifdim#1=\zeropoint\else
+ \vskip#1\relax
+ \fi\fi
+ \fi}
+
+\def\retainedskip#1%
+ {\endgraf
+ \ifvmode
+ \getsimplifiedskip\lastskip\scratchcounter
+ \ifcase\scratchcounter
+ \conditionalskip{#1}\@@retainedskip
+ \or % discard
+ \normalvskip-\lastskip
+ \conditionalskip{#1}\@@retainedskip
+ \or % retain
+ \ifdim\lastskip>#1\else
+ \normalvskip-\lastskip
+ \conditionalskip{#1}\@@retainedskip
+ \fi
+ \or % forced
+ \conditionalskip{#1}\@@retainedskip
+ \or % ignored
+ \or % frozen
+ \ifdim\lastskip>#1\else
+ \defrostskip
+ \conditionalskip{#1}\@@frozenskip
+ \fi
+ \else\ifdim#1=\zeropoint\else
+ \vskip#1\relax
+ \fi\fi
+ \fi}
+
+\def\forcedskip#1%
+ {\endgraf
+ \ifvmode
+ \conditionalskip{#1}\@@forcedskip
+ \fi}
+
+\def\blockedskip#1%
+ {\endgraf
+ \ifvmode
+ \getsimplifiedskip\lastskip\scratchcounter
+ \ifcase\scratchcounter
+ \conditionalskip{#1}\@@blockedskip
+ \or % discard
+ \conditionalskip{#1}\@@blockedskip
+ \or % retain
+ \conditionalskip{#1}\@@blockedskip
+ \or % forced
+ \conditionalskip{#1}\@@blockedskip
+ \or % ignored
+ \or % frozen
+ \ifdim\lastskip>#1\else
+ \defrostskip
+ \conditionalskip{#1}\@@frozenskip
+ \fi
+ \else\ifdim#1=\zeropoint\else
+ \vskip#1\relax
+ \fi\fi
+ \fi}
+
+% beware, changing this will break some code (like pos/backgrounds)
+
+\newtoks\everyfirstparagraphintro
+\newtoks\everynextparagraphintro
+\newtoks\@@everyparagraphtoks
+
+\chardef\everyparagraphintro\zerocount
+
+\def\setupparagraphintro
+ {\dodoubleempty\dosetupparagraphintro}
+
+\def\dosetupparagraphintro[#1][#2]%
+ {\processallactionsinset
+ [#1]
+ [ \v!reset=>\global\chardef\everyparagraphintro\zerocount
+ \global\everyfirstparagraphintro\emptytoks
+ \global\everynextparagraphintro \emptytoks,
+ \v!first=>\global\chardef\everyparagraphintro\plusone
+ \doglobal\appendtoks#2\to\everyfirstparagraphintro,
+ \v!next=>\ifcase\everyparagraphintro\global\chardef\everyparagraphintro\plusone\fi
+ \doglobal\appendtoks#2\to\everynextparagraphintro,
+ \v!each=>\ifcase\everyparagraphintro\global\chardef\everyparagraphintro\plustwo\fi
+ \doglobal\appendtoks#2\to\everyfirstparagraphintro
+ \doglobal\appendtoks#2\to\everynextparagraphintro]}
+
+%D We can say:
+%D
+%D \starttyping
+%D \setupparagraphintro[first][\index{Knuth}]
+%D \stoptyping
+%D
+%D Maybe more convenient is:
+%D
+%D \starttyping
+%D \flushatparagraph{\index{Zapf}}
+%D \stoptyping
+
+\def\flushatparagraph#1%
+ {\global\chardef\everyparagraphintro\plusone
+ \global\appendtoks{#1}\to\everyfirstparagraphintro}
+
+% \def\doinsertparagraphintro
+% {\ifcase\everyparagraphintro\relax
+% % no data
+% \@@everyparagraphtoks\emptytoks
+% \or
+% % first data
+% \global\chardef\everyparagraphintro\plustwo
+% \@@everyparagraphtoks\everyfirstparagraphintro
+% \global\everyfirstparagraphintro\emptytoks
+% \or
+% % next data
+% \@@everyparagraphtoks\everynextparagraphintro
+% \fi
+% \the\@@everyparagraphtoks}
+
+\def\doinsertparagraphintro
+ {\begingroup
+ \everypar\emptytoks
+ \ifcase\everyparagraphintro\relax
+ % no data
+ \@@everyparagraphtoks\emptytoks
+ \or
+ % first data
+ \global\chardef\everyparagraphintro\plustwo
+ \@@everyparagraphtoks\everyfirstparagraphintro
+ \global\everyfirstparagraphintro\emptytoks
+ \or
+ % next data
+ \@@everyparagraphtoks\everynextparagraphintro
+ \fi
+ \the\@@everyparagraphtoks
+ \endgroup}
+
+\def\insertparagraphintro
+ {\ifcase\everyparagraphintro\else\@EA\doinsertparagraphintro\fi}
+
+% \appendtoksonce\insertparagraphintro\to\everypar % should come last
+
+%D \starttyping
+%D \setupparagraphintro[first][\hbox to 3.5em{\tt FIRST \hss}]
+%D \setupparagraphintro[first][\hbox to 3.5em{\tt TSRIF \hss}]
+%D \setupparagraphintro[next] [\hbox to 3.5em{\tt NEXT \hss}]
+%D \setupparagraphintro[next] [\hbox to 3.5em{\tt TXEN \hss}]
+%D \setupparagraphintro[each] [\hbox to 3.0em{\tt EACH \hss}]
+%D \setupparagraphintro[each] [\hbox to 3.0em{\tt HCEA \hss}]
+%D
+%D some paragraph \par
+%D some paragraph \par
+%D some paragraph \par
+%D
+%D \definelabel[parnumber]
+%D
+%D \setupparagraphintro[reset,each][\inleft{\slxx\parnumber}]
+%D
+%D some paragraph \par
+%D some paragraph \par
+%D some paragraph \par
+%D \stoptyping
+
+%D \macros
+%D {flushatnextpar}
+%D
+%D This macro collects data that will be flushed at the next paragraph.
+%D By using this macro you can avoid interfering nodes (writes, etc).
+
+\newbox \postponednodedata
+
+\def\flushatnextpar
+ {\bgroup
+ \dowithnextbox
+ {\global\setbox\postponednodedata\hbox{\box\postponednodedata\box\nextbox}\egroup}%
+ \hbox}
+
+\def\flushpostponednodedata
+ {\ifvoid\postponednodedata\else
+ \hbox{\smashedbox\postponednodedata}%
+ \fi}
+
+% Very nasty but needed for margin stuff inside colored
+% paragraphs.
+
+\let\normalvadjust\vadjust
+
+% \def\graphicvadjust % bad, those low level color calls here
+% {\dowithnextbox
+% {\normalvadjust
+% {\dostartgraphicgroup
+% \localstarttextcolor
+% \unvbox\nextbox
+% \localstoptextcolor
+% \dostopgraphicgroup}}%
+% \vbox}
+
+% test this prikkels/pascal margin text before heads (mode
+% 1) as well as uitwerkingen (mode 2)
+
+%chardef\graphicvadjustmode=0 % fake
+%chardef\graphicvadjustmode=1 % normal
+\chardef\graphicvadjustmode=2 % normal + compensate (== default)
+
+\def\graphicvadjust % bad, those low level color calls here
+ {\dowithnextboxcontent
+ {\forgetall}
+ {\ifcase\graphicvadjustmode \@EA \fakedvadjust \else \@EA\normalvadjust \fi
+ {\dostartgraphicgroup % don't ask
+ \localstarttextcolor
+ \unvbox\nextbox
+ \localstoptextcolor % don't ask
+ \dostopgraphicgroup
+ \ifcase\graphicvadjustmode \or \or
+ % corrects for one line paragraphs
+ \nointerlineskip
+ \kern-\struttotal
+ \nointerlineskip
+ \verticalstrut
+ \fi}}%
+ \vbox}
+
+%D This works only in a properly strutted line, and is meant
+%D for deeply burried operations, like in heads.
+
+\def\fakedvadjust
+ {\dowithnextbox
+ {\setbox\nextbox\hbox{\llap{\lower\strutdepth\box\nextbox}}%
+ \smashedbox\nextbox}%
+ \vtop}
+
+\def\flexiblespaceamount#1#2#3%
+ {#1\interwordspace
+ \!!plus#2\interwordstretch
+ \!!minus#3\interwordshrink}
+
+\def\fixedspaceamount#1%
+ {#1\interwordspace}
+
+%D This is a dangerous feature because it makes the \TEX\ source
+%D less portable, i.e. any parser now needs to apply exactly the
+%D same algorithm when it wants to interpret the source. We
+%D strongly recommend not to mention this feature in manuals! It's
+%D provided for users who are hooked to such a mechanism.
+%D
+%D \starttyping
+%D \setupsorting[logo][next=\autoinsertnextspace] \logo[TEX]{\TeX}
+%D
+%D bla bla \TEX bla bla \TEX (bla) bla (\TEX)
+%D \stoptyping
+
+\def\autoinsertnextspace{\futurelet\nexttoken\doautoinsertnextspace}
+
+\def\doautoinsertnextspace % slightly extended version of a user supplied macro
+ {\ifx\nexttoken \bgroup\else \ifx\nexttoken\begingroup\else
+ \ifx\nexttoken \egroup\else \ifx\nexttoken \endgroup\else
+ \ifx\nexttoken \/\else \ifx\nexttoken /\else \ifx\nexttoken ~\else
+ \ifx\nexttoken \ \else \ifx\nexttoken \blankspace\else \ifx\nexttoken \space\else
+ \ifx\nexttoken .\else \ifx\nexttoken ,\else
+ \ifx\nexttoken !\else \ifx\nexttoken ?\else
+ \ifx\nexttoken :\else \ifx\nexttoken ;\else
+ \ifx\nexttoken '\else \ifx\nexttoken "\else
+ \ifx\nexttoken )\else \ifx\nexttoken -\else \ifx\nexttoken |\else
+ \ifx\nexttoken \%\else \ifx\nexttoken \&\else
+ \space
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
+
+% moved from page-lin
+
+\def\installspacehandler#1#2% needs to set \obeyedspace
+ {\setvalue{\??sr#1}{#2}}
+
+\installspacehandler \v!on
+ {\obeyspaces
+ \def\obeyedspace{\mathortext\normalspace{\dontleavehmode{\tt\controlspace}}}%
+ \let\ =\obeyedspace}
+
+\installspacehandler \v!yes
+ {\obeyspaces
+ \def\obeyedspace{\mathortext\normalspace{\dontleavehmode \normalspace }}%
+ \let\ =\obeyedspace}
+
+\installspacehandler \v!off
+ {\normalspaces
+ \let\obeyedspace\normalspace
+ \let\ =\normalspace}
+
+\installspacehandler \v!fixed
+ {\obeyspaces
+ \def\obeyedspace{\mathortext\normalspace{\dontleavehmode\fixedspace}}%
+ \let\ =\obeyedspace}
+
+\def\activatespacehandler#1%
+ {\executeifdefined{\??sr#1}{\activatespacehandler\v!off}}
+
+% moved from page-lin
+
+%D When spacing is active we need to handle commands in
+%D a special way:
+%D
+%D \starttyping
+%D \setuplines[space=on]
+%D
+%D \startlines
+%D Let's talk about this{\ttsl\gobbleoneargument or}that.
+%D \stoplines
+%D
+%D \startlines
+%D Let's talk about this{\getvalue{ttsl}or}that.
+%D \stoplines
+%D \stoptyping
+%D
+%D One can indent in several ways:
+%D
+%D \starttyping
+%D \setupindenting[medium] \setuplines[indenting=odd] % no yes odd even
+%D
+%D \startlines
+%D first
+%D second
+%D third
+%D fourth
+%D \stoplines
+%D \stoptyping
+
+\def\setuplines
+ {\dodoubleargument\getparameters[\??rg]}
+
+\def\startlines
+ {\@@rgbefore
+ \pushmacro\checkindentation
+ \whitespace
+ %\page[\v!preference]} gaat mis na koppen, nieuw: later \nobreak
+ \begingroup
+ \setupindenting[\@@rgindenting]%
+ \typesettinglinestrue
+ \setupwhitespace[\v!none]%
+ \obeylines
+ \ignorespaces
+ \gdef\afterfirstobeyedline % tzt two pass, net als opsomming
+ {\gdef\afterfirstobeyedline
+ {\nobreak
+ \doifnot\@@rgoption\v!packed{\global\let\afterfirstobeyedline\relax}}}%
+ \def\obeyedline
+ {\par
+ \futurelet\next\dobetweenthelines}%
+ \activatespacehandler\@@rgspace
+ \GotoPar}
+
+\def\stoplines
+ {\endgroup
+ \popmacro\checkindentation
+ \@@rgafter}
+
+\def\dobetweenthelines
+ {\doifmeaningelse\next\obeyedline
+ {\@@rginbetween}
+ {\afterfirstobeyedline}}
+
+\setuplines
+ [\c!option=,
+ \c!before=\blank,
+ \c!after=\blank,
+ \c!inbetween=\blank,
+ \c!indenting=\v!no,
+ \c!space=\v!default]
+
+\def\emptylines
+ {\dosingleempty\doemptylines}
+
+\def\doemptylines[#1]%
+ {\endgraf\dorecurse{\iffirstargument#1\else3\fi}\crlf}
+
+\setupwhitespace
+ [\v!none]
+
+% still old-fashioned
+
+\indenting
+ [\v!never]
+
+\setupindenting
+ [\v!none]
+
+\setupblank
+ [\v!standard,
+ \v!big]
+
+\defineblank[\v!default] [\currentblank]
+\defineblank[\v!before] [\v!default]
+\defineblank[\v!inbetween][\v!default]
+\defineblank[\v!after] [\v!before]
+
+\setupinterlinespace
+ [\c!minheight=0pt, % only special purpose
+ \c!mindepth=0pt, % only special purpose
+ \c!height=.72,
+ \c!depth=.28,
+ \c!top=1.0,
+ \c!bottom=0.4,
+ \c!distance=1pt,
+ \c!line=2.8ex,
+ \c!stretch=0]
+
+\setupnarrower
+ [\c!before=\endgraf,
+ \c!after=\endgraf,
+ \c!left=1.5em,
+ \c!right=1.5em,
+ \c!middle=1.5em]
+
+\setuptolerance
+ [\v!horizontal,\v!verystrict]
+
+\setuptolerance
+ [\v!vertical,\v!strict]
+
+\setupalign
+ [\v!bottom,
+ \v!width]
+
+\setupspacing
+ [\v!packed]
+
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-spa.mkiv b/Master/texmf-dist/tex/context/base/core-spa.mkiv
index 1352e2582bf..5d7836f5b04 100644
--- a/Master/texmf-dist/tex/context/base/core-spa.mkiv
+++ b/Master/texmf-dist/tex/context/base/core-spa.mkiv
@@ -11,223 +11,2887 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Core Macros / Buffers}
+\writestatus{loading}{ConTeXt Core Macros / Spacing}
+
+% to be sorted out: dependencies, order of initialization / also some dutch code here
+% more documentation in the mkii file
\unprotect
-% category:
-%
-% 0 == discard
-% 1 == only if larger
-% 2 == force even if smaller
-% 3 == only take penalty component
-% 4 == add to existing skip
-% 5 == ignore following skips (== disable)
+% some will move to core-var
+
+\newif \ifgridsnapping
+\newif \iffuzzyvskip
+\let \fuzzyvskip \gobbleoneargument
+\let \removelastfuzzyvskip \relax
+
+\let \startbaselinecorrection \relax
+\let \stopbaselinecorrection \relax
+\let \baselinecorrection \relax
+\let \offbaselinecorrection \relax
+
+\appendtoks \spacing\plusone \to \everybodyfont
+\appendtoks \presetnormallineheight \to \everybodyfont
+\appendtoks \setnormalbaselines \to \everybodyfont % check if redundant
+\appendtoks \setstrut \to \everybodyfont % check if redundant
+\appendtoks \settopskip \to \everybodyfont
+\appendtoks \setmaxdepth \to \everybodyfont
+\appendtoks \simplesetupindenting \to \everybodyfont
+\appendtoks \simplesetupblank \to \everybodyfont
+\appendtoks \simplesetupwhitespace \to \everybodyfont
+%appendtoks \checknotes \to \everybodyfont % not
+\appendtoks \simplesetupspacing \to \everybodyfont % nieuw
+\appendtoks \setrelativeinterlinespace \to \everybodyfont
+
+\appendtoks \updateraggedskips \to \everyfontswitch % under test
+\prependtoks \let\par\endgraf \to \everypagebody % see \fillinline
+\appendtoks \simplesetupspacing \to \everydefinedfont
+
+% if you want to hyphenate the first word of a paragraph ... \appendtoks\hskip0pt\to\everypar
+
+\def\stelfactorenin
+ {\simplesetupwhitespace
+ \simplesetupblank
+ \settopskip
+ \setmaxdepth}
+
+\def\softbreak
+ {\relax\ifhmode\hskip\parfillskip\break\fi}
+
+\let\poplastnode\relax
+
+\def\pushlastnode
+ {\ifdim\lastskip=\zeropoint
+ \ifnum\lastpenalty=\zerocount
+ \ifnum\lastkern=\zerocount
+ \let\poplastnode\relax
+ \else
+ \edef\poplastnode{\kern\the\lastkern\relax}\kern-\lastkern % untested
+ \fi
+ \else
+ \edef\poplastnode{\penalty\the\lastpenalty\relax}\nobreak % untested
+ \fi
+ \else
+ \edef\poplastnode{\vskip\the\lastskip\relax}\vskip-\lastskip % \removelastskip
+ \fi}
+
+%D The dreadful sequence \type {\bgroup} \unknown\
+%D \type {\carryoverpar} \unknown\ \type {\egroup} is needed
+%D when for instance sidefloats are used in combination with
+%D something that starts with a group. This is because
+%D otherwise the indentation as set (by the output routine)
+%D inside the group are forgotten afterwards. (I must
+%D not forget its existence).
+
+\global\let\carriedoverpar\relax
+
+\def\carryoverpar#1%
+ {\normalexpanded % \scratchtoks{#1}%
+ {\noexpand#1% \the\scratchtoks
+ \hangindent\the\hangindent
+ \hangafter \the\hangafter
+ \parskip \the\parskip
+ \leftskip \the\leftskip
+ \rightskip \the\rightskip}}
+
+%D A quick way to determine left|/|middle|/|right states
+%D (experimental).
+
+\setvalue{\??as\v!left }{0}
+\setvalue{\??as\v!middle}{1}
+\setvalue{\??as\v!right }{2}
+
+\def\setalignmentswitch#1%
+ {\chardef\alignmentswitch0\csname\??as#1\endcsname\relax}
+
+%D There are two ways to influence the interline spacing. The
+%D most general and often most consistent way is using
+%D
+%D \showsetup{setupinterlinespace}
+%D
+%D For instance
+%D
+%D \starttyping
+%D \setupinterlinespace[line=2.8ex]
+%D \stoptyping
+%D
+%D This setting adapts itself to the bodyfontsize, while for
+%D 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
+%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}.
+
+\newif\iflocalinterlinespace
+
+% font-ini
+
+\ifx\bodyfontinterlinespecs\undefined
+
+ \let\bodyfontinterlinespecs\empty
+ \let\bodyfontinterlinespace\empty
+
+\fi
+
+\def\presetnormallineheight
+ {\edef\normallineheight{\@@itline}%
+% done elsewhere : \spacing\!!plusone % new per 10/08/2004, else problems in otr / !! needed
+ \iflocalinterlinespace \else
+ \doifdefined\bodyfontinterlinespecs
+ {\doifsomething\bodyfontinterlinespace
+ {\edef\normallineheight{\bodyfontinterlinespace}}}%
+ \fi}
+
+\def\setupspecifiedinterlinespace[#1]%
+ {\getparameters[\??it][#1]%
+ \scratchdimen0\@@itheight\points
+ \advance\scratchdimen 0\@@itdepth\points
+ \ifdim\scratchdimen>\onepoint
+ \showmessage\m!layouts{10}{\@@itheight,\@@itdepth}%
+ \let\@@itheight\strutheightfactor
+ \let\@@itdepth \strutdepthfactor
+ \else
+ \let\strutheightfactor\@@itheight
+ \let\strutdepthfactor \@@itdepth
+ \fi
+ \let\minimumstrutheight \@@itminheight
+ \let\minimumstrutdepth \@@itmindepth
+ \let\minimumlinedistance\@@itdistance
+ \let\normallineheight \@@itline % let ! ! ! ! ! ivm ex
+ \doifelse\@@ittop\v!height % new, topskip does more bad than good
+ {\let\topskipfactor \@@itheight}
+ {\let\topskipfactor \@@ittop }%
+ \let\maxdepthfactor \@@itbottom
+ \let\baselinegluefactor \@@itstretch
+ \setfontparameters % redundant, can be \setstrut, test first
+ \updateraggedskips} % yes indeed
+
+\let\currentrelativeinterlinespace\empty
+
+\def\setuprelativeinterlinespace[#1]%
+ {\processallactionsinset
+ [#1]
+ [ \v!on=>\oninterlineskip,
+ \v!off=>\offinterlineskip,
+ \v!reset=>\let\currentrelativeinterlinespace\empty
+ \let\setrelativeinterlinespace\relax
+ \setfontparameters,
+ \v!auto=>\let\setrelativeinterlinespace\dosetrelativeinterlinespace,
+ \s!unknown=>\assignvalue\commalistelement\currentrelativeinterlinespace{1.00}{1.25}{1.50}%
+ \spacing\currentrelativeinterlinespace]}
+
+\def\dosetrelativeinterlinespace
+ {\ifx\currentrelativeinterlinespace\empty\else
+ \spacing\currentrelativeinterlinespace
+ \fi}
+
+\let\setrelativeinterlinespace\relax
+
+% \appendtoks \setrelativeinterlinespace \to \everybodyfont
+
+\def\complexsetupinterlinespace[#1]% \commalistelement ipv #1
+ {\doifassignmentelse{#1}\setupspecifiedinterlinespace\setuprelativeinterlinespace[#1]}
+
+\def\setuplocalinterlinespace[#1]%
+ {\localinterlinespacetrue
+ \setupinterlinespace[#1]%
+ \localinterlinespacefalse}
+
+\def\simplesetupinterlinespace
+ {\localinterlinespacetrue
+ \setfontparameters
+ \updateraggedskips % funny one here
+ \localinterlinespacefalse}
+
+\definecomplexorsimple\setupinterlinespace
+
+% In earlier versions \type{\bigskipamount} was
+% \type{\ht\strutbox} and the stretch was plus or minus
+% \type{.4\dp\strutbox}. Don't ask me why. The most recent
+% implementation is based on a user supplied distance, which
+% is by default \type{.75\normalskipamount} where
+% \type{\normalskipamount} equals the current baseline
+% distance.
+
+% \lineskiplimit = -\maxdimen -> freezes baselineskip
+
+% can be conditionals
+
+\newif\ifblanknowhite \blanknowhitefalse
+\newif\ifblankindeed \blankindeedfalse
+\newif\ifblankreset \blankresetfalse
+\newif\ifblankdisable \blankdisablefalse
+\newif\ifblankflexible \blankflexibletrue
+\newif\ifblankouter
+\newif\ifblankforce
+\newif\ifblankgoback
+
+\newskip\blankskip \blankskip=\bigskipamount
+\newskip\blankskipamount
+
+\def\skipfactor {.75}
+\def\skipgluefactor{.25}
+
+\def\normalskipamount
+ {\openlineheight
+ \ifgridsnapping \else \ifblankflexible
+ \!!plus \skipgluefactor\openlineheight
+ \!!minus\skipgluefactor\openlineheight
+ \fi \fi
+ \relax}
+
+\def\linedistance {\normalskipamount}
+\def\appliedblankskip{\skipfactor\linedistance}
+\def\lastblankskip {\blankskip}
+\def\currentblank {\v!big}
+\def\oldprevdepth {\prevdepth}
+\def\newprevdepth {-1001pt}
+\def\mindimen {1sp} % was: 0.00002pt
+
+\newif\iflocalblankfixed
+\newif\iflocalblankflexible
+
+\def\geenblanko{\removelastskip} % will become obsolete
+
+%%%% pas op, wordt ook in core-pos gebruikt
+
+\def\doassignsomeskip#1\to#2% ook nog \v!halfline+fuzzysnap
+ {\doifelse{#1}\v!line
+ {#2\openlineheight}
+ {\ifgridsnapping
+ \assigndimension{#1}{#2}{.25\openlineheight}{.5\openlineheight}\openlineheight
+ \else
+ \assigndimension{#1}{#2}\smallskipamount\medskipamount\bigskipamount
+ \fi}%
+ \relax}
+
+% \relax is really needed, else we may loose stretch due to lookahead; somehow
+% this bug was introduced a while ago but somehow went unnoticed; fixed 2/7/2008
+
+\def\addblankskip#1#2#3{\global\advance\blankskip#1\ifgridsnapping#3\else#2\fi\relax}
-% penalty:
+\def\defineblankmethod[#1]#2{\setvalue{\??bo\??bo#1}{#2}}
+
+\defineblankmethod [\v!big] {\addblankskip+\bigskipamount \openlineheight}
+\defineblankmethod [-\v!big] {\addblankskip-\bigskipamount \openlineheight}
+\defineblankmethod [\v!medium] {\addblankskip+\medskipamount {.5\openlineheight}}
+\defineblankmethod [-\v!medium] {\addblankskip-\medskipamount {.5\openlineheight}}
+\defineblankmethod [\v!small] {\addblankskip+\smallskipamount{.25\openlineheight}}
+\defineblankmethod [-\v!small] {\addblankskip-\smallskipamount{.25\openlineheight}}
+\defineblankmethod [\v!white] {\addblankskip+\parskip \openlineheight}
+\defineblankmethod [-\v!white] {\addblankskip-\parskip \openlineheight}
+\defineblankmethod [\v!line] {\addblankskip+\openlineheight \openlineheight}
+\defineblankmethod [-\v!line] {\addblankskip-\openlineheight \openlineheight}
+
+\defineblankmethod [\v!formula] {\global\advance\blankskip\medskipamount}
+\defineblankmethod [\v!nowhite] {\global\blanknowhitetrue}
+\defineblankmethod [\v!disable] {\global\blankdisabletrue}
+\defineblankmethod [\v!force] {\global\blankforcetrue}
+\defineblankmethod [\v!outer] {\ifvmode\ifinner\blankoutertrue\fi\fi}
+\defineblankmethod [\v!reset] {\global\blankresettrue}
+\defineblankmethod [\v!flexible] {\global\localblankflexibletrue}
+\defineblankmethod [\v!fixed] {\global\localblankfixedtrue}
+\defineblankmethod [\v!back] {\global\blankgobacktrue} % {\geenblanko}
+\defineblankmethod [\v!halfline] {\ifgridsnapping\global\fuzzyvskiptrue\fi
+ \global\advance\blankskip .5\lineheight}
+\defineblankmethod [\v!none] {\global\blankresettrue}
+\defineblankmethod [\v!joinedup] {\ifvmode\nointerlineskip\fi}
+\defineblankmethod[\v!synchronize] {\verticalstrut\vskip-2\lineheight\verticalstrut}
+
+% \vtop{\blank[synchronize]\blank[line]test}
+
+\defineblankmethod [\v!always] {\redowhitespace} % experimental
+
+% happens often, so we speed this up:
+%
+% \defineblankmethod [2*\v!line] {\addblankskip+{2\openlineheight}{2\openlineheight}}
+% \defineblankmethod [2*\v!big] {\addblankskip+{2\bigskipamount }{2\openlineheight}}
%
-% larger wins
+% no, with 2\whatever we loose the stretch and shrink! Taco's alternative:
+
+\defineblankmethod
+ [2*\v!line]
+ {\addblankskip+\openlineheight\openlineheight
+ \addblankskip+\openlineheight\openlineheight}
+
+\defineblankmethod
+ [2*\v!big]
+ {\addblankskip+\bigskipamount\openlineheight
+ \addblankskip+\bigskipamount\openlineheight}
+
+\def\doblank#1%
+ {\edefconvertedargument\ascii{#1}%
+ \ifx\ascii\empty\else
+ \ifcsname\??bo\??bo\ascii\endcsname % internal def
+ \csname\??bo\??bo\ascii\endcsname
+ \else\ifcsname\??bo\ascii\endcsname % user def / slow
+ \@EA\rawprocesscommalist\@EA[\csname\??bo\ascii\endcsname]\doblank\relax
+ \else
+ \dorepeatwithcommand[#1]\redoblank
+ \fi\fi
+ \fi
+ \relax}
+
+\def\redoblank#1%
+ {\edefconvertedargument\ascii{#1}%
+ \ifx\ascii\empty\else
+ \ifcsname\??bo\??bo\ascii\endcsname % internal def
+ \csname\??bo\??bo\ascii\endcsname
+ \else\ifcsname\??bo\ascii\endcsname % user def / slow
+ \@EA\rawprocesscommalist\@EA[\csname\??bo\ascii\endcsname]\doblank\relax
+ \else
+ \global\advance\blankskip#1\relax
+ \fi\fi
+ \fi
+ \relax}
+
+\unexpanded\def\blank % the \relax is definitely needed due to the many \if's
+ {\relax\complexorsimple\doblank}
+
+\def\complexdoblank
+ {\flushnotes
+ \ifmmode
+ \@EA\nocomplexdoblank
+ \else
+ \ifopelkaar
+ \ifinpagebody
+ \@EA\@EAEAEA\@EA\docomplexdoblank
+ \else
+ \@EA\@EAEAEA\@EA\nocomplexdoblank
+ \fi
+ \else
+ \@EAEAEA\docomplexdoblank
+ \fi
+ \fi}
+
+\def\nocomplexdoblank[#1]%
+ {% evt blokkeerfalse
+ \ifmmode\else\par\fi}
+
+% Overloaded in cont-new!
+
+\newsignal\noblanksignal
+
+% problem: we cannot look back in the mvl so we need 3 kinds of signals
+
+\def\noblankpsignal{1010101}
-% order:
+\def\inhibitgridblank % was doinhibitblank
+ {\ifvmode\else\endgraf\fi
+ \ifvmode
+ \ifnum\lastpenalty<10000
+ \kern-\noblanksignal % new
+ \kern \noblanksignal
+ \else
+ \penalty\noblankpsignal
+ \fi
+ \fi}
+
+\def\inhibittextblank % was inhibitblank
+ {\endgraf
+ \ifvmode
+ \prevdepth\newprevdepth
+ \fi}
+
+% new macro
%
-% larger wins
+% \def\inhibitblank % need some work
+% {\endgraf
+% \ifvmode
+% \ifgridsnapping
+% \inhibitgridblank
+% \else
+% % this one spoils the grid
+% \inhibittextblank
+% \fi
+% \fi}
-\defineattribute[kern-chars]
+\def\doinhibitblank{\inhibitgridblank}
+\def\inhibitblank {\inhibittextblank}
-\defineattribute[skip-category]
-\defineattribute[skip-penalty]
-\defineattribute[skip-order]
+% will become obsolete
-\defineattribute[snap-category]
+\ifx\undefined\savedlastskip \newskip \savedlastskip \fi
+\ifx\undefined\savedlastpenalty \newcount\savedlastpenalty \fi
-\defineattribute[display-math]
+% beware, prevdepth can have funny values (e.g. mvl value when in box)
-\registerctxluafile{core-spa}{1.001}
+\def\docomplexdoblank[#1]% pas op \relax's zijn nodig ivm volgende \if
+ {\global\blankresetfalse
+ \global\blankdisablefalse
+ \global\blanknowhitefalse
+ \global\localblankflexiblefalse
+ \global\localblankfixedfalse
+ \global\blankforcefalse
+ \global\blankgobackfalse
+ \blankouterfalse
+ \global\blankskip\zeropoint
+%
+\edefconvertedargument\ascii{#1}% todo fast check for simple
+\ifcsname\??bo\??bo\ascii\endcsname % internal def
+ \csname\??bo\??bo\ascii\endcsname
+\else\ifcsname\??bo\ascii\endcsname % user def / slow
+ \@EA\rawprocesscommalist\@EA[\csname\??bo\ascii\endcsname]\doblank\relax
+\else
+ \rawprocesscommacommand[#1]\doblank
+\fi\fi
+%
+ \relax % to be sure
+ \ifdim\blankskip=\zeropoint\relax
+ \iflocalblankflexible
+ \doglobal\advance\blankskip \currentblank
+ \else\iflocalblankfixed
+ \doglobal\advance\blankskip \currentblank
+ \fi\fi
+ \fi
+ \relax % to be sure
+ \ifblankouter
+ % do nothing
+ \else
+ \par
+ \ifvmode
+ \ifblankgoback
+ \ifdim\lastskip>\zeropoint \vskip-\lastskip \fi
+ \savedlastskip\zeropoint
+ \else\ifdim\lastskip>\zeropoint
+ \savedlastskip\lastskip
+ \else % todo: lastnode, dan namelijk geen skip !
+ \savedlastskip\zeropoint
+ \fi\fi
+ \ifblankforce
+ % dit gaat mis in pos fonts
+ % \ifdim\prevdepth>\zeropoint\else ...
+ % -1000pt signals top of page or column (\ejectcolumn)
+ \bgroup\forgeteverypar\verticalstrut\egroup\kern-\struttotal
+ \savedlastskip\zeropoint
+ \fi
+ \savedlastpenalty\lastpenalty % hm, now it gets lost
+ \ifblankdisable
+ \global\blankindeedfalse % keep this, i.e. disable current too
+ \ifgridsnapping
+ \ifdim\prevdepth<\zeropoint
+ % brrr
+ \else
+ % dirty trick: smaller blanks are ignored after a
+ % larger one, so 10 lines is probably safe; we need
+ % to make sure that we honor penalties; here comes the
+ % trick (cross our fingers that this works well in
+ % multi columns; maybe an ifinner test is needed
+ % \scratchcounter\lastpenalty
+ % \vskip-10\lineheight
+ % \ifnum\scratchcounter=\zerocount \else \penalty\lastpenalty \fi
+ % \vskip 10\lineheight
+ % alas, this leads to overfull pages, so we try this:
+ \inhibitgridblank
+ \fi
+ \else
+ \ifdim\prevdepth<\zeropoint
+ % brrr
+ \else
+ % ensure at least a proper prevdepth, this should be
+ % an option
+ \vskip-\prevdepth
+ \vskip\strutdepth
+ \prevdepth\strutdepth
+ \fi
+ % the old crappy piece of code
+ \edef\oldprevdepth{\the\prevdepth}%
+ \prevdepth\newprevdepth % == \inhibittextblank
+ \fi
+ \else
+ \global\blankindeedtrue
+ \fi
+ \ifblankreset
+ \global\blankindeedtrue
+ \ifgridsnapping
+ % let's play safe and not fool around with the depth, if
+ % only because it took a lot of effort to sort out the grid
+ % stuff in the first place
+ \else
+ \ifdim\prevdepth=\newprevdepth
+ \prevdepth\oldprevdepth
+ \fi
+ \fi
+ \fi
+ \ifblankindeed
+ \ifdim1\savedlastskip<1\blankskip\relax
+ % else when \blank[2*groot] + \blank[3*groot] with parskip
+ % equaling 1*groot, gives a groot=\parskip so adding a small
+ % value makes it distinguishable; can also be done at parskip
+ % setting time (better)
+ \global\advance\blankskip \mindimen\relax % = skip
+ % test this on 2* + 3* and parskip groot
+ \ifblanknowhite
+ \global\advance\blankskip -\parskip
+ \else
+ \ifdim\savedlastskip=\parskip
+ \else % force this due to previous comment
+ \ifdim\parskip>\zeropoint\relax
+ \ifdim\blankskip<\parskip\relax
+ \global\blankskip\zeropoint
+ \else
+ \global\advance\blankskip -\parskip
+ \fi
+ \fi
+ \fi
+ \fi
+ \ifblankflexible \else
+ \blankskip1\blankskip
+ \fi
+ \iflocalblankfixed
+ \blankskip1\blankskip
+ \fi
+ \iflocalblankflexible
+ \blankskip1\blankskip
+ \!!plus \skipgluefactor\blankskip
+ \!!minus\skipgluefactor\blankskip
+ \fi
+ \ifdim\lastkern=\noblanksignal\relax % controlled and grid
+ \global\blankindeedfalse
+ \else\ifnum\savedlastpenalty=\noblankpsignal\relax % controlled and grid
+ \global\blankindeedfalse
+ \else\ifgridsnapping\else\ifdim\prevdepth=\newprevdepth
+ \global\blankindeedfalse
+ \fi\fi\fi\fi
+ \ifblankindeed
+ \iffuzzyvskip
+ \removelastfuzzyvskip
+ \fuzzyvskip\blankskip\relax
+ \else
+ \relax\ifdim\savedlastskip=\zeropoint\else
+ \vskip-\savedlastskip
+ \fi
+ \vskip\blankskip\relax
+ \fi
+ \fi
+ \else
+ \iffuzzyvskip
+ \removelastfuzzyvskip
+ \fuzzyvskip\blankskip\relax
+ \else
+ % new, test this on pascal
+ \ifdim\blankskip<\zeropoint
+ \relax\ifdim\savedlastskip=\zeropoint\else
+ \advance\blankskip-\savedlastskip
+ \vskip-\savedlastskip
+ \fi
+ \ifdim\blankskip>\zeropoint
+ \vskip\blankskip
+ \else
+ \vskip\zeropoint
+ \fi
+ \else
+ % also new
+ \ifdim\blankskip=\zeropoint
+ \ifblanknowhite
+ \nowhitespace
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \global\fuzzyvskipfalse
+ \presetindentation}
-% \start \dosetstretch{.25em} \setuptolerance[tolerant,stretch] \input tufte \endgraf \stop
-% \start \dosetstretch{.5em} effe flink doorfietsen \stop
+%D For a long time we had:
+%D
+%D \starttyping
+%D \def\simpledoblank%
+%D {\doifelse{\currentwhitespace}{\v!geen}
+%D {\blank[\currentblank]}
+%D {\blank[\currentwhitespace]}}
+%D \stoptyping
+%D
+%D But Berend de Boer wanted more control, so now we have:
+
+\def\simpledoblank % ...
+ {\doifelse\currentwhitespace\v!none
+ {\blank[\currentblank]}
+ {\blank[\s!default]}}
+
+%D Another useful definition would be:
+%D
+%D \starttyping
+%D \defineblank
+%D [\s!default]
+%D [\v!groot]
+%D \stoptyping
-\def\dosetstretch#1% to be interfaces
- {\relax\ifdim#1>\zeropoint
- \dosetattribute{kern-chars}{\number\dimexpr#1\relax}%
+\def\dosetupblank#1% amount are an plain inheritance
+ {\bigskipamount#1\relax
+ \ifblankflexible \else
+ \bigskipamount1\bigskipamount
+ \fi
+ \medskipamount \bigskipamount \divide\medskipamount \plustwo
+ \smallskipamount\bigskipamount \divide\smallskipamount\plusfour}%
+
+\def\complexsetupblank[#1]% more \let's -> this also wil become installable
+ {\ifgridsnapping
+ \blankflexiblefalse
\else
- \doresetattribute{kern-chars}%
+ \normalexpanded{\noexpand\processallactionsinset[#1]}
+ [ \v!flexible=>\blankflexibletrue,
+ \v!fixed=>\blankflexiblefalse]%
+ \fi
+ \normalexpanded{\noexpand\processallactionsinset[#1]}
+ [ \v!flexible=>\dosetupblank\appliedblankskip,
+ \v!fixed=>\dosetupblank\appliedblankskip,
+ \v!line=>\edef\appliedblankskip{\linedistance}%
+ \dosetupblank\appliedblankskip,
+ \v!halfline=>\scratchskip.5\linedistance
+ \edef\appliedblankskip{\the\scratchskip}%
+ \dosetupblank\appliedblankskip,
+ \v!big=>\ifgridsnapping
+ \edef\appliedblankskip{\linedistance}%
+ \dosetupblank\appliedblankskip
+ \fi
+ \let\currentblank\v!big,
+ \v!medium=>\let\currentblank\v!medium,
+ \v!small=>\let\currentblank\v!small,
+ \v!global=>\let\currentblank\v!global,
+ \v!normal=>\dosetupblank\appliedblankskip,
+ \v!standard=>\edef\appliedblankskip{\skipfactor\linedistance}%
+ \dosetupblank\appliedblankskip,
+ \s!default=>\dosetupblank\appliedblankskip,
+ \s!unknown=>\let\appliedblankskip\commalistelement
+ \dosetupblank\appliedblankskip]%
+ \simplesetupwhitespace}
+
+% \definecomplexorsimpleempty\setupblank
+%
+% speed gain: 60 sec -> 30 sec
+
+\definecomplexorsimple\setupblank
+
+\def\simplesetupblank % == snelle \setupblank[\s!default]
+ {\ifgridsnapping
+ \blankflexiblefalse
+ \fi
+ \dosetupblank\appliedblankskip
+ % \let\deblanko\v!big
+ \simplesetupwhitespace}
+
+\def\restorestandardblank% \v!standard
+ {\edef\appliedblankskip{\skipfactor\linedistance}%
+ \dosetupblank\appliedblankskip
+ }%\let\deblanko\v!big}
+
+\def\dodefineblank[#1][#2]% why #1 commalist?
+ {\def\docommand##1{\setvalue{\??bo##1}{#2}}%
+ \processcommalist[#1]\docommand}
+
+\def\defineblank
+ {\dodoubleargument\dodefineblank}
+
+% \def\savecurrentblank
+% {\edef\restorecurrentblank
+% {\bigskipamount\the\bigskipamount
+% \medskipamount\the\medskipamount
+% \smallskipamount\the\smallskipamount
+% \noexpand\def\noexpand\currentblank{\currentblank}%
+% \ifblankflexible
+% \noexpand\blankflexibletrue
+% \else
+% \noexpand\blankflexiblefalse
+% \fi}}
+
+\def\savecurrentblank {\edef\savedcurrentblank{\currentblank}}
+\def\restorecurrentblank{\edef\currentblank{\savedcurrentblank}}
+
+\def\savedcurrentblank{\currentblank}
+
+%D Now.
+
+\defineblank [\s!default] [\v!white]
+\defineblank [\v!height] [\strutheight]
+\defineblank [\v!depth] [\strutdepth]
+
+\let\currentindentation\empty % amount/keyword
+% \let\normalindentation \empty % used for reinstating normal indentation
+\let\currentindenting \empty % method
+
+\newdimen\ctxparindent
+
+\newif\ifindentfirstparagraph % \indentfirstparagraphtrue
+
+\chardef\indentingtoggle\zerocount
+
+%D After a blank or comparable situation (left side floats) we
+%D need to check if the next paragraph has to be indented.
+
+\def\presetindentation
+ {\doifoutervmode{\ifindentfirstparagraph\else\noindentation\fi}}
+
+%D This sets up the (normally) global indentation behavior as well
+%D as the amounts.
+
+\definecomplexorsimple\setupindenting
+
+\indentfirstparagraphtrue
+\parindent\ctxparindent
+\chardef\indentingtoggle\zerocount
+
+% we need a better everypar model: for each option a switch, which we
+% set to false with \forgetall and can enable when needed (context 4);
+% that way we can control the order of execution of options
+
+\def\checkeverypar % currently a hack
+ {\ifzeropt\parindent\else
+ \doifsometokselse\everypar\donothing{\appendtoks\checkindentation\to\everypar}%
\fi}
-\appendtoks\doresetattribute{kern-chars}\to\everyforgetall
+\def\complexsetupindenting[#1]%
+ {\edef\currentindenting{#1}%
+ \doifsomething\currentindenting % handy when a parameter is passed
+ {% not here: \indentfirstparagraphtrue
+ % not here: \parindent\ctxparindent
+ % not here: \chardef\indentingtoggle\zerocount
+ % we use commacommand in order to catch #1 being a command (expanded parameter)
+ \processcommacommand[\currentindenting]\docomplexsetupindentingA % catch small, medium, etc
+ \processcommacommand[\currentindenting]\docomplexsetupindentingB % catch rest
+ \checkeverypar % only when non-empty #1
+ \ifindentfirstparagraph\else\noindentation\fi % added
+ \toggleindentation}}
-\def\mksetupgridsnapping
- {\ctxlua{nodes.setsnapvalue(1,\number\openstrutheight,\number\openstrutdepth)}}
+\def\docomplexsetupindentingA#1%
+ {\edefconvertedargument\!!stringa{#1}% can this be doen differently now?
+ \ifcsname\??in:\!!stringa\endcsname \else
+ \edef\currentindentation{#1}%
+ \let\normalindentation\currentindentation
+ \simplesetupindenting
+ \fi}
-\def\mkenablegridsnapping
- {\dosetattribute{snap-category}{1}%
- \topskip\strutht
- \offinterlineskip}
+\def\docomplexsetupindentingB#1%
+ {\edefconvertedargument\!!stringa{#1}% catch #1=\somedimen
+ \executeifdefined{\??in:\!!stringa}\donothing}
-\def\mkdisablegridsnapping
- {\doresetattribute{snap-category}%
- % reset topskip
- \oninterlineskip}
+\def\simplesetupindenting % empty case, a it strange, needed this way?
+ {\assigndimension\currentindentation\ctxparindent{1em}{1.5em}{2em}}
+
+\def\indenting % kind of obsolete
+ {\dosingleargument\complexsetupindenting}
+
+% use \noindentation to suppress next indentation
+
+\def\defineindentingmethod[#1]#2%
+ {\setvalue{\??in:#1}{#2}}
+
+\defineindentingmethod [\v!no] {\parindent\zeropoint}% was: \ctxparindent\noindent}
+\defineindentingmethod [\v!not] {\parindent\zeropoint}% was: \ctxparindent\noindent}
+
+\defineindentingmethod [\v!first] {\indentfirstparagraphtrue}
+\defineindentingmethod [\v!next] {\indentfirstparagraphfalse}
+
+\defineindentingmethod [\v!yes] {\parindent\ctxparindent\relax} % no \indent !
+\defineindentingmethod [\v!always] {\parindent\ctxparindent\relax} % no \indent !
+
+\defineindentingmethod [\v!never] {\parindent\zeropoint\relax % no \indent !
+ \chardef\indentingtoggle\zerocount}
+
+\defineindentingmethod [\v!odd] {\chardef\indentingtoggle\plusone}
+\defineindentingmethod [\v!even] {\chardef\indentingtoggle\plustwo}
+
+\defineindentingmethod [\v!normal] {\ifx\normalindentation\empty\else
+ \let\currentindentation\normalindentation
+ \simplesetupindenting
+ \fi}
+
+\defineindentingmethod [\v!reset] {\indentfirstparagraphtrue
+ \parindent\zeropoint
+ \chardef\indentingtoggle\zerocount}
+
+\def\noindenting{\indenting[\v!no, \v!next ]}
+\def\doindenting{\indenting[\v!yes,\v!first]}
+
+%D This one sets up the local indentation behaviour (i.e. either or not
+%D a next paragraph will be indented).
+
+\def\dochecknextindentation#1% internal one
+ {\checknextindentation[\csname#1\c!indentnext\endcsname]}
+
+\setvalue{\??in->\s!empty}{}
+\setvalue{\??in->\v!yes }{\doindentation}
+\setvalue{\??in->\v!no }{\noindentation}
+\setvalue{\??in->\v!auto }{\autoindentation}
+
+\def\checknextindentation[#1]%
+ {\csname\??in->\ifcsname\??in->#1\endcsname#1\else\s!empty\fi\endcsname}
+
+%D Here come the handlers.
+
+\newif\ifindentation \indentationtrue % documenteren, naar buiten
+
+\let\checkindentation\relax
+
+\ifx\autoindentation\undefined \let\autoindentation\relax \fi % hook
+
+\def\doindentation
+ {\gdef\checkindentation{\global\indentationtrue}}
+
+\def\noindentation % made global
+ {\ifinpagebody \else
+ \global\indentationfalse
+ \gdef\checkindentation
+ {\donoindentation
+ \gdef\checkindentation{\global\indentationtrue}}%
+ \fi}
+
+\def\nonoindentation % bv bij floats
+ {\ifinpagebody \else
+ \global\indentationtrue
+ \gdef\checkindentation{\global\indentationtrue}%
+ \fi}
+
+\def\donoindentation
+ {\ifdim\parindent=\zeropoint \else
+ \bgroup \setbox\scratchbox\lastbox \egroup
+ \fi}
+
+\def\indentation
+ {\ifvmode \ifdim\parindent=\zeropoint \else
+ % was : \hskip\parindent
+ % can be: \indent
+ % but we test:
+ \noindent\hskip\parindent
+ \fi \fi}
+
+\def\toggleindentation
+ {\ifcase\indentingtoggle
+ % nothing
+ \or
+ \notoggleindentation
+ \or
+ \dotoggleindentation
+ \fi}
+
+\def\dokillindentation
+ {\gdef\checkindentation{\global\indentationfalse\donoindentation}}
+
+\def\dotoggleindentation
+ {\gdef\checkindentation{\global\indentationfalse\notoggleindentation\donoindentation}}
+
+\def\notoggleindentation
+ {\gdef\checkindentation{\global\indentationtrue\dotoggleindentation}}
+
+\appendtoks
+ \pushmacro\checkindentation
+ \pushmacro\ifindentation
+\to \everypushsomestate
+
+\appendtoks
+ \popmacro\ifindentation
+ \popmacro\checkindentation
+\to \everypopsomestate
+
+% we need to save the state if we want to adapt behaviour to empty lines
+%
+% \def\setlasthvmode
+% {\global\chardef\savedhvmode\ifhmode\plusone\else\ifvmode\plustwo\else\zerocount\fi\fi}
+%
+% \def\resetlasthvmode
+% {\global\chardef\savedhvmode\zerocount}
+%
+% \chardef\savedhvmode\zerocount
+
+% This is a user requested hack (using the auto-hook).
+
+\chardef\recheckindentationmode\zerocount
+
+\def\dontrechecknextindentation
+ {\global\chardef\recheckindentationmode\zerocount}
+
+\def\dorechecknextindentation
+ {\ifcase\recheckindentationmode
+ % nothing
+ \or
+ \dontrechecknextindentation
+ \expandafter\doautoindentation
+ \fi}
+
+\def\doautoindentation
+ {\doifnextcharelse\par\donothing\noindentation}
+
+\def\autoindentation
+ {\global\chardef\recheckindentationmode\plusone}
+
+%D An example of usage:
+%D
+%D \starttyping
+%D \setupindenting[small,yes]
+%D
+%D \setupitemize [indentnext=auto]
+%D \setuptyping [indentnext=auto]
+%D \setupformulas[indentnext=auto]
+%D
+%D \input tufte
+%D
+%D \startitemize
+%D \item itemize
+%D \stopitemize
+%D \input tufte
+%D
+%D \startitemize
+%D \item itemize
+%D \stopitemize
+%D
+%D \input tufte
+%D
+%D \startitemize
+%D \item itemize
+%D \stopitemize
+%D
+%D \page
+%D
+%D \input tufte
+%D
+%D \starttyping
+%D verbatim
+%D \stoptyping
+%D \input tufte
+%D
+%D \starttyping
+%D verbatim
+%D \stoptyping
+%D
+%D \input tufte
+%D
+%D \starttyping
+%D verbatim
+%D \stoptyping
+%D
+%D \page
+%D
+%D \input tufte
+%D
+%D \startformula
+%D a = b
+%D \stopformula
+%D \input tufte
+%D
+%D \startformula
+%D a = b
+%D \stopformula
+%D
+%D \input tufte
+%D
+%D \startformula
+%D a = b
+%D \stopformula
+
+
+%D \macros
+%D {frenchspacing,nonfrenchspacing}
+%D
+%D Smehow \type{\frenchspacing} can lead to hyphenation between
+%D dashes so we now have \type {\newfrenchspacing} (moved from
+%D \type {syst-chr}).
+
+%D Hm ... todo:
+
+\sfcode`\)=0
+\sfcode`\'=0
+\sfcode`\]=0
+
+\def\setfrenchspacing#1%
+ {\sfcode`\.#1 \sfcode`\,#1\relax
+ \sfcode`\?#1 \sfcode`\!#1\relax
+ \sfcode`\:#1 \sfcode`\;#1\relax}
+
+\def\frenchspacing
+ {\setfrenchspacing{1000}}
+
+\def\resetfrenchspacing
+ {\sfcode`\.3000 \sfcode`\,1250
+ \sfcode`\?3000 \sfcode`\!3000
+ \sfcode`\:2000 \sfcode`\;1500 }
+
+\def\frenchspacing {\setfrenchspacing{1000}}
+\def\newfrenchspacing{\setfrenchspacing{1050}}
+\def\nonfrenchspacing{\resetfrenchspacing}
+
+\def\definespacingmethod[#1]#2{\setvalue{\??sg\??sg#1}{#2}}
+
+\definespacingmethod[\v!packed]{\newfrenchspacing}
+\definespacingmethod[\v!broad ]{\nonfrenchspacing}
+
+\def\complexsetupspacing[#1]%
+ {\executeifdefined{\??sg\??sg#1}\relax
+ \updateraggedskips}
+
+\def\simplesetupspacing
+ {\updateraggedskips}
+
+\definecomplexorsimple\setupspacing
+
+% \dorecurse{100}{\recurselevel\spacefactor 800 \space} \par
+% \dorecurse{100}{\recurselevel\spacefactor1200 \space} \par
+% \dorecurse{100}{\recurselevel\spacefactor 800 \normalspaceprimitive} \par
+% \dorecurse{100}{\recurselevel\spacefactor1200 \normalspaceprimitive} \par
+
+% When we don't add the % here, we effectively get \<endlinechar> and
+% since we have by default \def\^^M{\ } we get into a loop.
+
+\let\normalspaceprimitive=\ % space-comment is really needed
-% experimental spacing
+% hm ...
+
+\unexpanded\def\ {\mathortext\normalspaceprimitive\space} % no \dontleavehmode\space (else no frenchspacing)
+
+% Because I strip spaces at the end of lines (in the editor) we need a bit of
+% a trick to define slash+newline, so \<space> and \<newline> are the same
+
+\ctxlua{tex.sprint(tex.ctxcatcodes,"\string\\unexpanded\string\\def\string\\\string\n{\string\\ }")}
+
+\unexpanded\def\nonbreakablespace{\penalty\plustenthousand\mathortext\ \space} % no space in math
+
+\letcatcodecommand \ctxcatcodes `\~ \nonbreakablespace % overloaded later
+
+\def\space { }
+\def\removelastspace{\ifhmode\unskip\fi}
+\def\nospace {\removelastspace\ignorespaces}
+
+% in tables we need:
+%
+% \def\fixedspace {\hskip.5em\relax}
%
-% test: oeps {\setcharacterspacing[frenchpunctuation]x: xx \bfd x: xx} oeps: test
+% but, since not all fonts have .5em digits:
+
+\unexpanded\def\fixedspace
+ {\setbox\scratchbox\normalhbox{\mathortext{0}{0}}%
+ \hskip\wd\scratchbox\relax}
-\defineattribute[spacing]
+\def\fixedspaces
+ {\letcatcodecommand \ctxcatcodes `\~ \fixedspace}
-\newcount \maxcharacterspacingid
+\appendtoks\let~\space\to\simplifiedcommands
+
+% \def\removeunwantedspaces
+% {\ifhmode % we also need to unskip 0pt skips
+% \unskip\unskip\unskip\unskip\unskip
+% \unskip\unskip\unskip\unskip\unskip
+% \fi}
+
+\unexpanded\def\removeunwantedspaces
+ {\ifhmode
+ \expandafter \doremoveunwantedspace
+ \fi}
-\def\definecharacterspacing[#1]%
- {\ifcsname\??ch#1\endcsname \else
- \global\advance\maxcharacterspacingid\plusone
- \setxvalue{\??ch:#1}{\the\maxcharacterspacingid}%
+\def\doremoveunwantedspace
+ {\ifnum\lastnodetype=\@@gluenode
+ \unskip \expandafter\doremoveunwantedspace
\fi}
+
+% \startbuffer
+% \startlines \tt \fixedspaces
+% 0~1~~2~~~3~~~~4~~~~~5
+% 0~~~~~~~~~~~~~~~~~~~5
+% $0~1~~2~~~3~~~~4~~~~~5$
+% $0~~~~~~~~~~~~~~~~~~~5$
+% \stoplines
+%
+% \starttabulate[|~|]
+% \NC 0~1~~2~~~3~~~~4~~~~~5 \NC \NR \NC 0~~~~~~~~~~~~~~~~~~~5 \NC \NR
+% \NC $0~1~~2~~~3~~~~4~~~~~5$ \NC \NR \NC $0~~~~~~~~~~~~~~~~~~~5$ \NC \NR
+% \stoptabulate
+%
+% \starttable[||]
+% \NC 0~1~~2~~~3~~~~4~~~~~5 \NC \AR \NC 0~~~~~~~~~~~~~~~~~~~5 \NC \AR
+% \NC $0~1~~2~~~3~~~~4~~~~~5$ \NC \AR \NC $0~~~~~~~~~~~~~~~~~~~5$ \NC \AR
+% \stoptable
+% \stopbuffer
+%
+% \setupbodyfont[cmr] \getbuffer
+% \setupbodyfont[lbr] \getbuffer
+
+\def\packed
+ {\nointerlineskip}
-\def\setupcharacterspacing
- {\dotripleargument\dosetupcharacterspacing}
+\def\godown[#1]%
+ {\relax
+ \ifhmode\endgraf\fi
+ \ifvmode\nointerlineskip\vskip#1\relax\fi}
+
+%D A couple of plain macros:
-\def\dosetupcharacterspacing[#1][#2][#3]%
- {\ifcsname\??ch:#1\endcsname
- \begingroup
- \getparameters[\??ch][\c!left=0,\c!right=0,#3]%
- \ctxlua{spacings.setspacing(\getvalue{\??ch:#1},\number#2,\@@chleft,\@@chright)}%
- \endgroup
+\ifx\thinspace\undefined
+
+ \def\thinspace {\kern .16667em }
+ \def\negthinspace{\kern-.16667em }
+ \def\enspace {\kern .5em }
+
+ \def\thinspace {\kern .16667\emwidth}
+ \def\negthinspace{\kern-.16667\emwidth}
+ \def\enspace {\kern .5\emwidth}
+
+\fi
+
+\ifx\quad\undefined
+
+ \def\enskip{\hskip.5em\relax}
+ \def\quad {\hskip 1em\relax}
+ \def\qquad {\hskip 2em\relax}
+
+ \def\enskip{\hskip.5\emwidth}
+ \def\quad {\hskip \emwidth}
+ \def\qquad {\hskip 2\emwidth}
+
+\fi
+
+\let\emspace\quad
+
+\ifx\smallskip\undefined
+
+ \def\smallskip{\vskip\smallskipamount}
+ \def\medskip {\vskip\medskipamount}
+ \def\bigskip {\vskip\bigskipamount}
+
+\fi
+
+\ifx\allowbreak\undefined
+
+ \def\break {\penalty\ifhmode-\plustenthousand\else\ejectpenalty\fi}
+ \def\nobreak {\penalty \plustenthousand}
+ \def\allowbreak{\penalty \zeropoint}
+ \def\filbreak {\par\vfil\penalty-200\vfilneg}
+ \def\goodbreak {\par\penalty-500 }
+
+\fi
+
+%D Made slightly more readable:
+
+\ifx\vglue\undefined
+
+ \def\vglue {\afterassignment\dovglue\scratchskip=}
+ \def\hglue {\afterassignment\dohglue\scratchskip=}
+ \def\topglue{\nointerlineskip\vglue-\topskip\vglue}
+
+ \def\dovglue
+ {\par
+ \scratchdimen\prevdepth
+ \hrule\!!height\zeropoint
+ \nobreak\vskip\scratchskip
+ \prevdepth\scratchdimen}
+
+ \def\dohglue
+ {\dontleavehmode % \leavevmode
+ \scratchcounter\spacefactor
+ \vrule\!!width\zeropoint
+ \nobreak\hskip\scratchskip
+ \spacefactor\scratchcounter}
+
+\fi
+
+\ifx\eject\undefined
+
+ \def\eject{\par\break}
+
+\fi
+
+\ifx\supereject\undefined
+
+ \def\supereject{\par\penalty\superpenalty}
+
+\fi
+
+\ifx\dosupereject\undefined
+
+ \def\dosupereject
+ {\ifnum\insertpenalties>\zerocount % something is being held over
+ \line{}
+ \kern-\topskip
+ \nobreak
+ \vfill\supereject
+ \fi}
+
+\fi
+
+%D We adapt plain's \type {\removelastskip} a bit:
+
+\ifx\removelastskip\undefined
+
+ \def\removelastskip
+ {\ifvmode \ifdim\lastskip=\zeropoint \else
+ \vskip-\lastskip
+ \fi \fi}
+
+\fi
+
+\ifx\smallbreak\undefined
+
+\def\smallbreak
+ {\par
+ \ifdim\lastskip<\smallskipamount
+ \removelastskip
+ \penalty-50
+ \smallskip
+ \fi}
+
+\def\medbreak
+ {\par
+ \ifdim\lastskip<\medskipamount
+ \removelastskip
+ \penalty-100
+ \medskip
+ \fi}
+
+\def\bigbreak
+ {\par
+ \ifdim\lastskip<\bigskipamount
+ \removelastskip
+ \penalty-200
+ \bigskip
+ \fi}
+
+\fi
+
+\newskip\ctxparskip \ctxparskip\zeropoint
+
+\newconditional \flexiblewhitespace \settrue\flexiblewhitespace
+
+\def\blankokleinmaat {\smallskipamount}
+\def\blankomiddelmaat {\medskipamount}
+\def\blankogrootmaat {\bigskipamount}
+\def\currentwhitespace {\zeropoint}
+
+\definecomplexorsimple\setupwhitespace
+
+\def\simplesetupwhitespace
+ {\doifnot\currentwhitespace\v!none\dosetupwhitespace}
+
+\def\complexsetupwhitespace[#1]%
+ {\edef\nextcurrentwhitespace{#1}%
+ \ifx\nextcurrentwhitespace\empty
+ \simplesetupwhitespace
+ \else
+ \let\currentwhitespace\nextcurrentwhitespace
+ \dosetupwhitespace
+ \fi}
+
+\def\dosetupwhitespace % quick test for no list
+ {\ifcsname\??ws\??ws\currentwhitespace\endcsname
+ \csname\??ws\??ws\currentwhitespace\endcsname
+ \else
+ \expandafter\processcommalist\expandafter[\currentwhitespace]\dowhitespacemethod % can be raw
+ \fi\relax
+ \ifgridsnapping
+ \setfalse\flexiblewhitespace
+ \ifdim\ctxparskip>\zeropoint
+ \ctxparskip
+ \ifcase\baselinegridmode
+ \baselineskip % normal ! ! ! ! !!
+ \or
+ \ifdim\scratchdimen=\baselineskip % maybe range
+ \baselineskip % normal ! ! ! ! !!
+ \else
+ \numexpr\ctxparskip/\dimexpr.5\lineheight\relax\relax\dimexpr.5\lineheight\relax
+ \fi
+ \else
+ \baselineskip % normal ! ! ! ! !!
+ \fi
+ \fi
+ \else
+ \ifconditional\flexiblewhitespace \else \ctxparskip1\ctxparskip \fi
+ \fi
+ \parskip\ctxparskip}
+
+\chardef\baselinegridmode=0 % option in layout / 1=permit_half_lines
+
+\def\dodosetupwhitespace
+ {\ifgridsnapping
+ \setfalse\flexiblewhitespace
+ \ctxparskip1\ctxparskip
+ \ifdim\ctxparskip>\zeropoint
+ \ifcase\baselinegridmode
+ \ctxparskip\baselineskip % normal ! ! ! ! !!
+ \or
+ \ifdim\scratchdimen=\baselineskip % maybe range
+ \ctxparskip\baselineskip % normal ! ! ! ! !!
+ \else
+ \ctxparskip\numexpr\ctxparskip/\dimexpr.5\lineheight\relax\relax\dimexpr.5\lineheight\relax
+ \fi
+ \else
+ \ctxparskip\baselineskip % normal ! ! ! ! !!
+ \fi
+ \fi
+ \else
+ \ifconditional\flexiblewhitespace \else \ctxparskip1\ctxparskip \fi
+ \fi
+ \parskip\ctxparskip}
+
+\definesystemvariable {ws} % whitespace
+
+\def\definewhitespacemethod[#1]#2{\setvalue{\??ws\??ws#1}{#2}}
+
+\definewhitespacemethod [\v!fix] {}
+\definewhitespacemethod [\v!fixed] {\setfalse\flexiblewhitespace}
+\definewhitespacemethod [\v!flexible] {\settrue\flexiblewhitespace}
+\definewhitespacemethod [\v!line] {\ctxparskip \baselineskip}
+\definewhitespacemethod [\v!halfline] {\ctxparskip.5\baselineskip}
+\definewhitespacemethod [\v!none] {\ctxparskip \zeropoint}
+\definewhitespacemethod [\v!big] {\ctxparskip \bigskipamount}
+\definewhitespacemethod [\v!medium] {\ctxparskip \medskipamount}
+\definewhitespacemethod [\v!small] {\ctxparskip \smallskipamount}
+
+\definewhitespacemethod [\s!default] {\simplesetupwhitespace} % {\stelwitruimteopnieuwin}
+
+% \def\dowhitespacemethod#1%
+% {\executeifdefined{\??ws\??ws#1}{\ctxparskip#1}\relax}
+
+\def\dowhitespacemethod#1%
+ {\ifcsname\??ws\??ws#1\endcsname\csname\??ws\??ws#1\endcsname\else\ctxparskip#1\fi\relax}
+
+\def\nowhitespace
+ {\ifdim\parskip>\zeropoint\relax
+ \ifdim\lastskip=-\parskip
+ \else
+ \vskip-\parskip
+ \fi
+ \fi}
+
+\def\nowhitespaceunlessskip
+ {\ifdim\lastskip>\zeropoint \else
+ \nowhitespace
+ \fi}
+
+\def\redowhitespace
+ {\ifdim\lastskip>-\parskip \else
+ \vskip\parskip
+ \fi}
+
+% \def\savecurrentwhitespace
+% {\edef\restorecurrentwhitespace
+% {\ctxparskip\the\ctxparskip
+% \parskip\the\parskip
+% \noexpand\def\noexpand\currentwhitespace{\currentwhitespace}%
+% \ifconditional\flexiblewhitespace
+% \noexpand\settrue\flexiblewhitespace
+% \else
+% \noexpand\setfalse\flexiblewhitespace
+% \fi}}
+
+\def\savecurrentwhitespace {\edef\savedcurrentwhitespace{\currentwhitespace}}
+\def\restorecurrentwhitespace{\edef\currentwhitespace{\savedcurrentwhitespace}}
+
+\def\savedcurrentwhitespace{\currentwhitespace}
+
+% deze variant is nodig binnen \startopelkaar
+% steeds testen:
+%
+% \hoofdstuk{..}
+% \plaatslijst[..]
+% \hoofdstuk{..}
+% \input tufte
+%
+% met/zonder witruimte
+
+\def\whitespace
+ {\par
+ \ifdim\parskip>\zeropoint\relax
+ %\ifdim\lastskip>\parskip \else
+ % \removelastskip interferes with blanko blokkeer en klein
+ \vskip\parskip
+ %\fi
+ \fi}
+
+\def\nonoblanko[#1]%
+ {\par}
+
+\def\noblanko
+ {\dosingleempty\nonoblanko}
+
+% I'm not sure if the restore is still needed. Anyway, when we do
+% restore, we get a parskip someplace in the output that will push
+% the content off page (\vbox to pageheight{skip smashed-box}) so
+% we have now disabled this hack. If it is introduced again it needs
+% to be more controlled. Test case:
+%
+% \setupwhitespace[big]
+% \starttext
+% \startcolumns[n=2]\dorecurse{200}{test\crlf}\stopcolumns
+% \stoptext
+%
+% \def\saveouterspacing
+% {\savecurrentblank
+% \savecurrentwhitespace
+% \def\restoreouterspacing
+% {\restorecurrentblank
+% \restorecurrentwhitespace}}
+%
+% \let\restoreouterspacing\relax
+% \let\saveouterspacing \relax % mult-ini: i will look into it when needed
+%
+% let's test this (restore before we restore the global bodyfont):
+
+\def\saveouterspacing
+ {\savecurrentblank
+ \savecurrentwhitespace}
+
+\def\restoreouterspacing
+ {\restorecurrentblank
+ \restorecurrentwhitespace}
+
+% De onderstaande macro handelt ook de situatie dat er geen
+% tekst tussen \start ... \stop is geplaatst. Daartoe wordt de
+% laatste skip over de lege tekst heen gehaald. Dit komt goed
+% van pas bij het plaatsen van (mogelijk lege) lijsten.
+
+\newif\ifopelkaar
+
+\newsignal \noparskipsignal % \def\noparskipsignal {0.00001pt}
+\def\lastdoneparskip {0pt}
+
+\def\startpacked
+ {\dosingleempty\dostartpacked}
+
+\def\dostartpacked[#1]% nesting afvangen
+ {\par
+ \ifvmode
+ \edef\lastdoneparskip {\the\lastskip}%
+ \edef\lastdoneprevdepth{\the\prevdepth}% zeer recent toegevoegd
+ \ifdim\prevdepth=-\thousandpoint % toegevoegd omdat binnen
+ \else % een vbox een extra skip
+ \whitespace % ongewenst is; dit kan
+ \baselinecorrection %% zie in \placeregister[n=1]
+ \vskip\noparskipsignal % waarschijnlijk ook in
+ \fi % blanko blokkeer
+ \bgroup
+ \doifelse{#1}\v!blank
+ \opelkaarfalse
+ \opelkaartrue
+ \blank[\v!disable] % dit is nog niet ok, gaat fout
+ \setupwhitespace[\v!none] % bovenin vtop (dwz, baseline)
+ \fi}
+
+\def\stoppacked
+ {\par
+ \ifvmode
+ \egroup
+ \ifdim\lastskip=\noparskipsignal\relax
+ \removelastskip
+ \nowhitespace
+ \vskip-\lastdoneparskip
+ \vskip+\lastdoneparskip
+ \prevdepth-\lastdoneprevdepth % zeer recent toegevoegd
+ \fi
+ \fi}
+
+\def\startunpacked
+ {\blank
+ \leavevmode
+ \bgroup}
+
+\def\stopunpacked
+ {\egroup
+ \blank}
+
+% De onderstaande macro's moeten nog eens nader worden uitgewerkt.
+% Ze spelen een rol bij de spatiering rond omkaderde teksten
+% en/of boxen zonder diepte.
+
+\def\toonregelcorrectie{\showbaselinecorrection}
+\def\regelcorrectie {\baselinecorrection}
+
+% \prevdepth crosses pageboundaries!
+%
+% todo: a version that works ok inside a box
+
+\let\doaroundlinecorrection\relax
+
+\def\startlinecorrection
+ {\dodoubleempty\dostartlinecorrection}
+
+\def\dostartlinecorrection[#1][#2]% #2 gobbles spaces
+ {\bgroup
+ \processaction
+ [#1]
+ [ \v!blank=>\let\doaroundlinecorrection\blank,
+ \s!default=>\let\doaroundlinecorrection\relax,
+ \s!unknown=>{\def\doaroundlinecorrection{\blank[#1]}}]%
+ \doaroundlinecorrection
+ \startbaselinecorrection
+ \offbaselinecorrection
+ \ignorespaces}
+
+\def\stoplinecorrection
+ {\stopbaselinecorrection
+ \doaroundlinecorrection
+ \egroup}
+
+\def\correctwhitespace
+ {\dowithnextbox
+ {\startbaselinecorrection
+ \flushnextbox
+ \stopbaselinecorrection}%
+ \vbox}
+
+\def\verticalstrut {\normalvbox{\hsize\zeropoint\forgetall\strut}}
+\def\horizontalstrut{\normalhbox {\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
+%
+% \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
+%
+% \leaveoutervmode
+
+% 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.
+
+\newdimen\strutdimen
+\newdimen\lineheight
+\newdimen\openlineheight
+\newdimen\openstrutheight
+\newdimen\openstrutdepth
+\newdimen\topskipgap
+\newdimen\struttotal
+
+\def\strutheightfactor {.72}
+\def\strutdepthfactor {.28}
+
+\def\baselinefactor {2.8}
+\def\baselinegluefactor {0}
+
+\def\minimumstrutheight {0pt}
+\def\minimumstrutdepth {0pt}
+
+\def\normallineheight {\baselinefactor ex}
+\def\minimumlinedistance {\lineskip}
+
+\def\strutheight {0pt}
+\def\strutdepth {0pt}
+\def\strutwidth {0pt}
+
+\let\spacingfactor \plusone
+
+\def\topskipfactor {1.0}
+\def\maxdepthfactor {0.5}
+
+\def\systemtopskipfactor {\topskipfactor}
+\def\systemmaxdepthfactor {\maxdepthfactor}
+
+% De onderstaande definitie wordt in de font-module overruled
+
+\ifdefined\globalbodyfontsize\else
+ \newdimen\globalbodyfontsize
+ \globalbodyfontsize=12pt
+\fi
+
+\ifx\normalizedbodyfontsize\undefined
+ \def\normalizedbodyfontsize{12pt}
+\fi
+
+% door een \dimen. Dit is geen probleem omdat (1) de default
+% korpsgrootte 12pt is en (2) de fonts nog niet geladen zijn
+% en de instellingen bij het laden nogmaals plaatsvinden.
+
+\def\topskipcorrection
+ {\simpletopskipcorrection
+ \vskip-\struttotal
+ \verticalstrut}
+
+\def\simpletopskipcorrection
+ {\ifdim\topskip>\openstrutheight
+ % == \vskip\topskipgap
+ \vskip\topskip
+ \vskip-\openstrutheight
\fi}
-\def\setcharacterspacing
- {\ctxlua{spacings.enabled=true}%
- \gdef\setcharacterspacing[##1]{\dosetattribute{spacing}{\csname\??ch:##1\endcsname}}%
- \setcharacterspacing}
+\def\settopskip % the extra test is needed for the lbr family
+ {\topskip\systemtopskipfactor\globalbodyfontsize
+ \ifgridsnapping \else
+ \ifr@ggedbottom\!!plus5\globalbodyfontsize\fi
+ \fi
+ \relax % the skip
+ \topskipgap\topskip
+ \advance\topskipgap -\openstrutheight\relax
+\ifdim\minimumstrutheight>\zeropoint
+ \ifdim\topskip<\minimumstrutheight
+ \topskip\minimumstrutheight\relax
+ \fi
+\else
+ \ifdim\topskip<\strutheightfactor\openlineheight
+ \topskip\strutheightfactor\openlineheight\relax
+ \fi
+\fi}
+
+\def\setmaxdepth
+ {\maxdepth\systemmaxdepthfactor\globalbodyfontsize}
+
+\def\normalbaselines
+ {\baselineskip \normalbaselineskip
+ \lineskip \normallineskip
+ \lineskiplimit\normallineskiplimit}
-\letvalue{\??ch:\s!reset}\minusone
+\def\setnormalbaselines
+ {\ifdim\normallineheight>\zeropoint
+ \lineheight\normallineheight
+ \fi
+ \openlineheight\spacingfactor\lineheight
+ \openstrutheight \ifdim\minimumstrutheight>\zeropoint
+ \minimumstrutheight % new
+ \else
+ \strutheightfactor\openlineheight
+ \fi
+ \openstrutdepth \ifdim\minimumstrutdepth>\zeropoint
+ \minimumstrutdepth % new
+ \else
+ \strutdepthfactor \openlineheight
+ \fi
+ \ifdim\dimexpr\minimumstrutdepth+\minimumstrutheight\relax>\zeropoint
+ \openlineheight\dimexpr\openstrutheight+\openstrutdepth\relax % new
+ \fi
+ \normalbaselineskip\openlineheight
+ \ifgridsnapping\else
+ \!!plus \baselinegluefactor\openlineheight
+ \!!minus\baselinegluefactor\openlineheight
+ \fi
+ \normallineskip\minimumlinedistance\relax % \onepoint\relax
+ \normallineskiplimit\zeropoint\relax
+ \normalbaselines
+ \dosetupgridsnapping}
+
+\def\spacing#1%
+ {\ifgridsnapping
+ %\ifdim#1\points=\onepoint\else\showmessage\m!layouts{11}{\withoutpt\the\dimexpr#1\points\relax}\fi
+ \let\spacingfactor\plusone
+ \else
+ \edef\spacingfactor{#1}%
+ \fi
+ \edef\systemtopskipfactor {\withoutpt\the\dimexpr#1\dimexpr\topskipfactor \points}%
+ \edef\systemmaxdepthfactor{\withoutpt\the\dimexpr#1\dimexpr\maxdepthfactor\points}%
+ \setnormalbaselines
+ \setstrut}
+
+%D Sometimes one needs to freeze the interlinespacing
+%D
+%D \starttyping
+%D \rm \saveinterlinespace .... {\ss \restoreinterlinespace .... \endgraf}
+%D \stoptyping
-\definecharacterspacing [frenchpunctuation] % name may change / unit is em
+\let\restoreinterlinespace\relax
-\setupcharacterspacing [frenchpunctuation] ["003A] [\c!left =.25] % :
-\setupcharacterspacing [frenchpunctuation] ["003B] [\c!left =.25] % ;
-\setupcharacterspacing [frenchpunctuation] ["003F] [\c!left =.25] % ?
-\setupcharacterspacing [frenchpunctuation] ["0021] [\c!left =.25] % !
-\setupcharacterspacing [frenchpunctuation] ["00AB] [\c!right=.25] % guillemotleft/leftguillemot
-\setupcharacterspacing [frenchpunctuation] ["00BB] [\c!left =.25] % guillemotright/rightguillemot
+\def\saveinterlinespace
+ {\edef\restoreinterlinespace
+ {\lineheight \the\lineheight
+ \openstrutheight \the\openstrutheight
+ \openstrutdepth \the\openstrutdepth
+ \openlineheight \the\openlineheight
+ \normalbaselineskip \the\normalbaselineskip
+ \normallineskip \the\normallineskip
+ \normallineskiplimit\the\normallineskiplimit
+ \noexpand\def\noexpand\normallineheight{\the\dimexpr\normallineheight}%
+ \noexpand\normalbaselines}}
-% more
+% plain definition:
+%
+% \def\strut{\relax\ifmmode\copy\strutbox\else\unhcopy\strutbox\fi}
%
-% {\setcharacterkerning[extrakerning]\input davis\relax}
+% could be:
+%
+% \def\strut{\relax\ifmmode\copy\else\unhcopy\fi\strutbox}
+
+\ifx\strutbox\undefined
+
+ \newbox\strutbox
+
+ \setbox\strutbox\normalhbox{\vrule height8.5pt depth3.5pt width\zeropoint}
+
+ \def\strut{\relax\ifmmode\copy\else\unhcopy\fi\strutbox}
+
+\fi
-\defineattribute[kern]
+\let\normalstrut\strut
-\newcount \maxcharacterkerningid
+% The double \hbox construction enables us to \backtrack
+% boxes.
-\def\definecharacterkerning
- {\dosingleargument\dodefinecharacterkerning}
+\let\strutht\undefined \newdimen\strutht
+\let\strutdp\undefined \newdimen\strutdp
-\def\dodefinecharacterkerning[#1]%
- {\ifcsname\??ck#1\endcsname \else
- \global\advance\maxcharacterkerningid\plusone
- \setxvalue{\??ck:#1}{\the\maxcharacterkerningid}%
+\unexpanded\def\setstrut
+ {\ifgridsnapping
+ \setstrutgridyes
+ \else
+ \setstrutgridnop
\fi}
-\def\setupcharacterkerning
- {\dodoubleargument\dosetupcharacterkerning}
+\unexpanded\def\setstrutgridyes
+ {\strutht\spacingfactor\dimexpr
+ \ifdim\minimumstrutheight>\zeropoint
+ \minimumstrutheight
+ \else
+ \strutheightfactor\dimexpr\normallineheight
+ \fi
+ \strutdp\dimexpr
+ \ifdim\minimumstrutdepth>\zeropoint
+ \minimumstrutdepth
+ \else
+ \normallineheight-\strutht
+ \fi
+ \dosetstrut}
+
+\unexpanded\def\setstrutgridnop
+ {\strutht\spacingfactor\dimexpr
+ \ifdim\minimumstrutheight>\zeropoint
+ \minimumstrutheight
+ \else
+ \strutheightfactor\dimexpr\normallineheight
+ \fi
+ \strutdp\spacingfactor\dimexpr
+ \ifdim\minimumstrutdepth>\zeropoint
+ \minimumstrutdepth
+ \else
+ \strutdepthfactor\dimexpr\normallineheight
+ \fi
+ \dosetstrut}
+
+\unexpanded\def\setcharstrut#1%
+ {\setbox\strutbox\normalhbox{#1}%
+ \strutht\ht\strutbox
+ \strutdp\dp\strutbox
+ \dosetstrut}
+
+\unexpanded\def\setfontstrut
+ {\setcharstrut{(gplQT}}
+
+\unexpanded\def\setcapstrut% could be M, but Q has descender
+ {\setcharstrut{Q}}
+
+%D Handy for math (used in mathml):
+
+\def\charhtstrut
+ {\begingroup
+ \setcharstrut{GJY}%
+ \vrule\!!width\zeropoint\!!depth\zeropoint\!!height\strutht
+ \endgroup}
+
+\def\chardpstrut
+ {\begingroup
+ \setcharstrut{gjy}%
+ \vrule\!!width\zeropoint\!!depth\strutdp\!!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
+
+\def\dosetstrut
+ {\let\strut\normalstrut
+ \edef\strutheight{\the\strutht}%
+ \edef\strutdepth {\the\strutdp}%
+ \ifdim\strutwidth=\zeropoint
+ \dosetstruthide
+ \else
+ \dosetstrutvide
+ \fi
+ \struttotal\dimexpr\strutht+\strutdp\relax}
+
+\def\dosetstruthide
+ {\setbox\strutbox\normalhbox
+ {\vrule
+ \!!width \zeropoint
+ \!!height\strutht
+ \!!depth \strutdp}}
+
+\def\dosetstrutvide
+ {\setbox\strutbox\normalhbox
+ {\normalhbox to \zeropoint
+ {% \hss % new, will be option
+ \vrule
+ \!!width \strutwidth
+ \!!height\strutht
+ \!!depth \strutdp
+ \hss}}}
+
+%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.
+
+% experiment
+
+\newbox\emptystrutbox \setbox\emptystrutbox\hbox{}
+
+\def\dosetstruthide
+ {\setbox\strutbox\copy\emptystrutbox
+ \ht\strutbox\strutht
+ \dp\strutbox\strutdp}
+
+\def\strut{\relax\dontleavehmode\copy\strutbox} % still callbacks for \hbox{\strut}
-\def\dosetupcharacterkerning[#1][#2]%
- {\ifcsname\??ck:#1\endcsname
- \begingroup
- \getparameters[\??ck][\c!factor=0,#2]%
- \ctxlua{kerns.setspacing(\getvalue{\??ck:#1},\@@ckfactor)}%
+
+\let\normalstrut\strut
+
+%D Sometimes a capstrut comes in handy
+%D
+%D \starttabulate[|Tl|l|l|]
+%D \NC yes \NC normal strut \NC {\showstruts\setupstrut[yes]\strut} \NC \NR
+%D \NC no \NC no strut \NC {\showstruts\setupstrut[no]\strut} \NC \NR
+%D \NC kap \NC a capital strut (i.e. Q) \NC {\showstruts\setupstrut[cap]\strut} \NC \NR
+%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
+
+\def\setupstrut
+ {\dosingleempty\dosetupstrut}
+
+\def\dosetupstrut[#1]% yet undocumented, todo: fontstrut
+ {\processaction
+ [#1]
+ [ \v!yes=>\setstrut,
+ \v!auto=>\setautostrut,
+ \v!no=>\setnostrut,
+ \v!cap=>\setcapstrut,
+ \v!fit=>\setfontstrut,
+ \v!line=>\setstrut,
+ \s!default=>\setstrut,
+ \s!unknown=>\setcharstrut\commalistelement]}
+
+\def\setteststrut
+ {\def\strutwidth{.8pt}%
+ \setstrut}
+
+\def\autostrutfactor{1.1}
+
+\def\setautostrut
+ {\begingroup
+ \setbox\scratchbox\copy\strutbox
+ \setstrut
+ \ifdim\strutht>\autostrutfactor\ht\scratchbox
+ \endgroup \setstrut
+ \else\ifdim\strutdp>\autostrutfactor\dp\scratchbox
+ \endgroup \setstrut
+ \else
\endgroup
+ \fi\fi}
+
+% when enabled, sigstruts will remove themselves if nothing
+% goes inbetween
+
+\newsignal\strutsignal \setfalse\sigstruts
+
+\def\begstrut
+ {\relax\ifcase\strutht\else
+ \ifconditional\sigstruts
+ \noindent\horizontalstrut
+ \normalpenalty\plustenthousand
+ \normalhskip-\strutsignal
+ \normalhskip\strutsignal
+ \else
+ \strut
+ \normalpenalty\plustenthousand
+ \normalhskip\zeropoint
+ \fi
+ \expandafter \ignorespaces
+ \fi}
+
+\def\endstrut
+ {\relax\ifhmode\ifcase\strutht\else
+ \ifconditional\sigstruts
+ \ifdim\lastskip=\strutsignal
+ \unskip\unskip\unpenalty\setbox\scratchbox\lastbox
+ \else
+ \normalpenalty\plustenthousand
+ \normalhskip\zeropoint
+ \strut
+ \fi
+ \else
+ \removeunwantedspaces
+ \normalpenalty\plustenthousand
+ \normalhskip\zeropoint
+ \strut
+ \fi
+ \fi\fi}
+
+\newbox\nostrutbox \setbox\nostrutbox\normalhbox{} % {\normalhbox{}}
+
+\def\setnostrut
+ {\setbox\strutbox\copy\nostrutbox
+ \let\strut\empty
+ \let\endstrut\empty
+ \let\begstrut\empty
+ \let\crlfplaceholder\empty}
+
+% unsave:
+%
+% \def\pseudostrut
+% {\bgroup
+% \setnostrut
+% \normalstrut
+% \egroup}
+%
+% try:
+%
+% \startchemie
+% \chemie[ONE,Z0,SB15,MOV1,SB15,Z0][C,C]
+% \stopchemie
+%
+% so:
+
+\def\pseudostrut
+ {\noindent} % better: \dontleavehmode
+
+\let\pseudobegstrut\pseudostrut
+
+\let\pseudoendstrut\removeunwantedspaces
+
+\def\resetteststrut
+ {\let\strutwidth\zeropoint
+ \setstrut}
+
+\ifx\setfontparameters\undefined
+ % problems ! ! ! !
+ \def\setfontparameters{\the\everybodyfont}
+\fi
+
+%D Handy:
+
+\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 The plain ones:
+
+\def\offinterlineskip
+ {\baselineskip-\thousandpoint
+ \lineskip\zeropoint
+ \lineskiplimit\maxdimen}
+
+\def\nointerlineskip
+ {\prevdepth-\thousandpoint}
+
+\let\normaloffinterlineskip=\offinterlineskip % knuth's original
+
+%D My own one:
+
+\def\dopushinterlineskip
+ {\edef\oninterlineskip
+ {\baselineskip\the\baselineskip
+ \lineskip\the\lineskip
+ \lineskiplimit\the\lineskiplimit
+ \let\noexpand\offinterlineskip\noexpand\normaloffinterlineskip}}
+
+\def\nopushinterlineskip
+ {\let\oninterlineskip\setnormalbaselines}
+
+\def\offinterlineskip
+ {\ifdim\baselineskip>\zeropoint
+ \dopushinterlineskip
+ \else
+ \nopushinterlineskip
+ \fi
+ \normaloffinterlineskip}
+
+\let\oninterlineskip=\relax
+
+\def\leaveoutervmode
+ {\ifvmode\ifinner\else
+ \leavevmode
+ \fi\fi}
+
+% We stellen enkele penalties anders in dan Plain TEX:
+
+% oud
+%
+% \widowpenalty=\defaultwidowpenalty\relax
+% \clubpenalty =\defaultclubpenalty \relax
+
+\def\resetpenalties#1%
+ {\ifx#1\undefined\else
+ #1\minusone
+ \fi}
+
+\def\setpenalties#1#2#3%
+ {\ifx#1\undefined\else % space before #3 prevents lookahead problems, needed when #3=text
+ #1\numexpr#2+\plusone\relax\space\doexpandedrecurse{\the\numexpr#2\relax}{ #3}\zerocount\relax
+ \fi}
+
+\def\doexpandedrecurse#1#2%
+ {\ifnum#1>\zerocount#2\@EA\doexpandedrecurse\@EA{\the\numexpr#1-1\relax}{#2}\fi}
+
+%D \macros
+%D {keeplinestogether}
+%D
+%D Dirty hack, needed in margin content that can run of a page.
+
+% just before margintexts ... will eventually be done differently in mkiv using
+% attributes
+
+\newcount\nofkeeplinestogether
+\let\restoreinterlinepenalty\relax
+
+\def\dorestoreinterlinepenalty
+ {\global\let\restoreinterlinepenalty\relax
+ \global\resetpenalties\interlinepenalties
+ \global\nofkeeplinestogether\zerocount}
+
+\def\keeplinestogether#1%
+ {\ifnum#1>\nofkeeplinestogether
+ \global\nofkeeplinestogether#1%
+ \global\setpenalties\interlinepenalties\nofkeeplinestogether\plustenthousand
+ \global\let\restoreinterlinepenalty\dorestoreinterlinepenalty
\fi}
-\def\setcharacterkerning
- {\ctxlua{kerns.enabled=true}%
- \gdef\setcharacterkerning[##1]{\dosetattribute{kern}{\csname\??ck:##1\endcsname}}%
- \setcharacterkerning}
+\newif\ifgridsnapping % to be sure
+
+\def\defaultwidowpenalty {2000} % was: 1000
+\def\defaultclubpenalty {2000} % was: 800
+\def\defaultdisplaywidowpenalty {50}
+\def\defaultbrokenpenalty {100}
+
+\def\defaultgridwidowpenalty {0}
+\def\defaultgridclubpenalty {0}
+\def\defaultgriddisplaywidowpenalty {0}
+\def\defaultgridbrokenpenalty {0}
+
+\def\nopenalties
+ {\widowpenalty \zerocount
+ \clubpenalty \zerocount
+ \brokenpenalty \zerocount
+ \doublehyphendemerits\zerocount
+ \finalhyphendemerits \zerocount
+ \adjdemerits \zerocount}
+
+\def\setdefaultpenalties
+ {\directsetup{\systemsetupsprefix\s!default}}
+
+\startsetups [\systemsetupsprefix\s!reset]
+ \resetpenalties\widowpenalties
+ \resetpenalties\clubpenalties
+ \resetpenalties\interlinepenalties
+\stopsetups
+
+% we use \directsetup because it's faster and we know there is no csl
+
+\startsetups [\systemsetupsprefix\s!default]
+
+ \directsetup{\systemsetupsprefix\s!reset}
+
+ \widowpenalty \defaultwidowpenalty
+ \clubpenalty \defaultclubpenalty
+ \displaywidowpenalty\defaultdisplaywidowpenalty
+ \brokenpenalty \defaultbrokenpenalty
+
+\stopsetups
+
+\startsetups [\v!grid] [\systemsetupsprefix\s!default]
+
+ \directsetup{\systemsetupsprefix\s!reset}
+
+ \widowpenalty \defaultgridwidowpenalty
+ \clubpenalty \defaultgridclubpenalty
+ \displaywidowpenalty\defaultgriddisplaywidowpenalty
+ \brokenpenalty \defaultgridbrokenpenalty
+
+\stopsetups
+
+% as an illustration:
+
+\startsetups [\systemsetupsprefix\v!strict]
+
+ \directsetup{\systemsetupsprefix\s!reset}
+
+ \setpenalties\widowpenalties2\maxdimen
+ \setpenalties\clubpenalties 2\maxdimen
+ \brokenpenalty \maxdimen
+
+\stopsetups
+
+\setdefaultpenalties % will happen later in \setuplayout
+
+% Suggested by GB (not the name -):
+
+\def\rapfillskip{.5\hsize plus .092\hsize minus .5\hsize} % D.A.'s value
+
+% Bovendien definieren we enkele extra \fill's:
+
+\def\hfilll{\hskip\zeropoint\!!plus1filll\relax}
+\def\vfilll{\vskip\zeropoint\!!plus1filll\relax}
+
+% De onderstaande hulpmacro's moeten nog eens instelbaar worden
+% gemaakt.
+
+\def\tfskipsize{1em\relax}
+\def\tfkernsize{1ex\relax}
+
+\def\tfskip{\dotfskip\tfskipsize}
+\def\tfkern{\dotfkern\tfkernsize}
+
+\def\dotfskip#1{{\tf\hskip#1}}
+\def\dotfkern#1{{\tf\kern #1}}
+
+% needs a proper \definenarrower or installnarrower
+
+\newskip\ctxleftskip
+\newskip\ctxrightskip
+\newskip\ctxmidskip
+
+\def\dosinglenarrower#1%
+ {\processaction
+ [#1]
+ [ \v!left=>\global\advance\ctxleftskip \@@slleft,
+ \v!middle=>\global\advance\ctxmidskip \@@slmiddle,
+ \v!right=>\global\advance\ctxrightskip \@@slright,
+ \v!reset=>\global\ctxleftskip \zeropoint
+ \global\ctxmidskip \zeropoint
+ \global\ctxrightskip\zeropoint,
+ \v!none=>,
+ \s!unknown=>\global\advance\ctxmidskip \commalistelement]}
+
+\def\donarrower[#1]% hm, can be dorepeat directly
+ {\dorepeatwithcommand[#1]\dosinglenarrower}
+
+\def\complexstartnarrower[#1]%
+ {\@@slbefore % was hard coded \par
+ \bgroup
+ \global\ctxleftskip \zeropoint
+ \global\ctxrightskip\zeropoint
+ \global\ctxmidskip \zeropoint
+ \processcommalistwithparameters[#1]\donarrower
+ \advance\leftskip \ctxleftskip
+ \advance\rightskip \ctxrightskip
+ \advance\leftskip \ctxmidskip
+ \advance\rightskip \ctxmidskip
+ \seteffectivehsize}
+
+% todo: definenarrower
+
+\def\simplestartnarrower
+ {\startnarrower[\v!middle]}
+
+\definecomplexorsimple\startnarrower
+
+\def\stopnarrower
+ {\@@slafter % was hard coded \par / needed, else skips forgotten
+ \egroup}
+
+\def\setupnarrower
+ {\dodoubleargument\getparameters[\??sl]}
+
+\newdimen\@@effectivehsize \def\effectivehsize {\hsize}
+\newdimen\@@effectiveleftskip \def\effectiveleftskip {\leftskip}
+\newdimen\@@effectiverightskip \def\effectiverightskip{\rightskip}
+
+\def\seteffectivehsize
+ {\setlocalhsize
+ \@@effectivehsize \localhsize
+ \@@effectiveleftskip \leftskip
+ \@@effectiverightskip \rightskip
+ \let\effectivehsize \@@effectivehsize
+ \let\effectiveleftskip \@@effectiveleftskip
+ \let\effectiverightskip\@@effectiverightskip}
+
+% We will not use bodydir and pagedir so we disable them. That way we get
+% normal hyperlink support.
+
+\let\@@bodydir\normalbodydir
+\let\@@pagedir\normalpagedir
+
+\unexpanded\def\bodydir{\afterassignment\do@@bodydir\@@bodydir} \let\normalbodydir\bodydir
+\unexpanded\def\pagedir{\afterassignment\do@@pagedir\@@pagedir} \let\normalpagedir\pagedir
+
+\def\do@@bodydir{\@@bodydir TLT\relax}
+\def\do@@pagedir{\@@pagedir TLT\relax}
+
+% This will become a more advanced layout controller soon:
+
+\unexpanded\def\lefttoright{\textdir TLT\pardir TLT\relax}
+\unexpanded\def\righttoleft{\textdir TRT\pardir TRT\relax}
+
+\def\dodefinehbox[#1][#2]%
+ {\setvalue{hbox#1}##1%
+ {\hbox to #2{\begstrut##1\endstrut\hss}}}
+
+\def\definehbox
+ {\dodoubleargument\dodefinehbox}
+
+\def\iobox#1#2#3#% here #3# is not really needed
+ {\vbox\bgroup % we want to return a vbox like the others
+ \hbox\bgroup% we need to pack the signal with the box
+ \signalrightpage
+ \dowithnextboxcontent
+ {\let\\=\endgraf\forgetall\doifrightpageelse#1#2}
+ {\box\nextbox\egroup\egroup}
+ \vbox#3}
+
+\def\obox{\iobox\raggedleft \raggedright} % outerbox
+\def\ibox{\iobox\raggedright\raggedleft} % innerbox
-\letvalue{\??ck:\s!reset}\minusone
+\def\dosetraggedvbox#1%
+ {\let\raggedbox\vbox
+ \processfirstactioninset
+ [#1]
+ [ \v!left=>\let\raggedbox\lbox,
+ \v!right=>\let\raggedbox\rbox,
+ \v!middle=>\let\raggedbox\cbox,
+ \v!inner=>\let\raggedbox\ibox,
+ \v!outer=>\let\raggedbox\obox,
+ \v!flushleft=>\let\raggedbox\rbox,
+ \v!flushright=>\let\raggedbox\lbox,
+ \v!center=>\let\raggedbox\cbox,
+ \v!no=>\def\raggedbox{\vbox\bgroup\raggedright\let\next=}]}
-\definecharacterkerning[extrakerning]
+\def\dosetraggedhbox#1%
+ {\let\raggedbox\hbox
+ \processaction % slow
+ [#1]
+ [ \v!left=>\def\raggedbox{\doalignedline\v!left },
+ \v!right=>\def\raggedbox{\doalignedline\v!right },
+ \v!middle=>\def\raggedbox{\doalignedline\v!middle},
+ \v!inner=>\def\raggedbox{\doalignedline\v!inner },
+ \v!outer=>\def\raggedbox{\doalignedline\v!outer },
+ \v!flushleft=>\def\raggedbox{\doalignedline\v!right },
+ \v!flushright=>\def\raggedbox{\doalignedline\v!left },
+ \v!center=>\def\raggedbox{\doalignedline\v!middle}]}
-\setupcharacterkerning[extrakerning][\c!factor=.125]
+\def\dosetraggedcommand#1%
+ {\normalexpanded{\noexpand\dodosetraggedcommand{#1}}}
-% sorry, here:
+\newtoks\everyraggedcommand
-% test \WORD{test TEST \TeX} test
-% test \word{test TEST \TeX} test
-% test \Word{test TEST \TeX} test
+\def\raggedcommand{\the\everyraggedcommand}
-\defineattribute[case]
+\def\dodosetraggedcommand#1% beware: #1=empty is ignored, keep that!
+ {\everyraggedcommand \emptytoks
+ \let\raggedtopcommand \empty
+ \let\raggedbottomcommand\empty
+ \chardef\raggedoneliner\zerocount
+ \doifsomething{#1}
+ {\doifinsetelse\v!broad{#1}\!!doneatrue\!!doneafalse
+ \doifinsetelse\v!wide {#1}\!!donebtrue\!!donebfalse
+ \!!donectrue
+ \rawprocesscommalist[#1]\dododosetraggedcommand}}
-\def\setcharactercasing
- {\ctxlua{cases.enabled=true}%
- \gdef\setcharactercasing[##1]{\dosetattribute{case}{\number##1}}%
- \setcharactercasing}
+\def\dododosetraggedcommand#1%
+ {\executeifdefined{\@@ragged@@command\string#1}\relax}
-\def\WORD{\groupedcommand{\setcharactercasing[\plusone ]}{}}
-\def\word{\groupedcommand{\setcharactercasing[\plustwo ]}{}}
-\def\Word{\groupedcommand{\setcharactercasing[\plusthree]}{}} % \plusfour
+\def\@@ragged@@command{@@raggedcommand}
-\let\WORDS\WORD
-\let\words\word
-\let\Words\Word
+\setvalue{\@@ragged@@command\v!hanging }{\appendtoks\enableprotruding \to\everyraggedcommand}
+\setvalue{\@@ragged@@command\v!nothanging }{\appendtoks\disableprotruding \to\everyraggedcommand}
+\setvalue{\@@ragged@@command\v!hz }{\appendtoks\enableadjusting \to\everyraggedcommand}
+\setvalue{\@@ragged@@command\v!nohz }{\appendtoks\disableadjusting \to\everyraggedcommand}
+\setvalue{\@@ragged@@command\v!spacing }{\appendtoks\enablespacehandling
+ \enablekernhandling \to\everyraggedcommand}
+\setvalue{\@@ragged@@command\v!nospacing }{\appendtoks\disablespacehandling
+ \disablekernhandling \to\everyraggedcommand}
+\setvalue{\@@ragged@@command\v!hyphenated }{\appendtoks\dohyphens \to\everyraggedcommand}
+\setvalue{\@@ragged@@command\v!nothyphenated}{\appendtoks\nohyphens \to\everyraggedcommand}
-% \definestartstop is not yet in available at core-spa time
+\setvalue{\@@ragged@@command\v!tolerant }{\appendtoks\tolerance3000\relax \to\everyraggedcommand}
+\setvalue{\@@ragged@@command\v!verytolerant}{\appendtoks\tolerance4500\relax \to\everyraggedcommand}
+\setvalue{\@@ragged@@command\v!stretch }{\appendtoks\emergencystretch\bodyfontsize\to\everyraggedcommand}
+
+\setvalue{\@@ragged@@command\v!left}%
+ {\if!!donea \appendtoks\veryraggedleft\to\everyraggedcommand
+ \else \appendtoks\raggedleft \to\everyraggedcommand
+ \fi
+ \!!donecfalse}
+
+\setvalue{\@@ragged@@command\v!right}%
+ {\if!!donea \appendtoks\veryraggedright\to\everyraggedcommand
+ \else \appendtoks\raggedright \to\everyraggedcommand
+ \fi
+ \!!donecfalse}
+
+\setvalue{\@@ragged@@command\v!middle}%
+ {\if!!donec
+ \if!!doneb \appendtoks\raggedwidecenter\to\everyraggedcommand
+ \else\if!!donea \appendtoks\veryraggedcenter\to\everyraggedcommand
+ \else \appendtoks\raggedcenter \to\everyraggedcommand
+ \fi\fi
+ \!!donecfalse
+ \else
+ \let\raggedbottomcommand\vfilll % bonus, pretty strong
+ \let\raggedtopcommand \vfilll % used with \framed for
+ \fi} % instance in tables
+
+\setvalue{\@@ragged@@command\v!flushleft }{\getvalue{\@@ragged@@command\v!right }}
+\setvalue{\@@ragged@@command\v!flushright}{\getvalue{\@@ragged@@command\v!left }}
+\setvalue{\@@ragged@@command\v!center }{\getvalue{\@@ragged@@command\v!middle}}
+
+\setvalue{\@@ragged@@command\v!high}%
+ {\let\raggedbottomcommand\vfilll} % and since we lack a
+
+\setvalue{\@@ragged@@command\v!low}%
+ {\let\raggedtopcommand\vfilll} % proper keyword, but
+
+\setvalue{\@@ragged@@command\v!lohi}%
+ {\let\raggedbottomcommand\vfilll % we do support the
+ \let\raggedtopcommand\vfilll} % ugly laho (lohi)
+
+\setvalue{\@@ragged@@command\v!no}%
+ {\appendtoks\raggedright\to\everyraggedcommand}
+
+\setvalue{\@@ragged@@command\v!yes}%
+ {\appendtoks\notragged\to\everyraggedcommand}
+
+\setvalue{\@@ragged@@command\v!normal}%
+ {\appendtoks\notragged\to\everyraggedcommand}
+
+\setvalue{\@@ragged@@command\v!inner}% not yet perfect
+ {\signalrightpage % may interfere
+ \doifrightpageelse
+ {\getvalue{\@@ragged@@command\v!right}}
+ {\getvalue{\@@ragged@@command\v!left}}}
+
+\setvalue{\@@ragged@@command\v!outer}% not yet perfect
+ {\signalrightpage % may interfere
+ \doifrightpageelse
+ {\getvalue{\@@ragged@@command\v!left}}
+ {\getvalue{\@@ragged@@command\v!right}}}
+
+\setvalue{\@@ragged@@command\v!lesshyphenation}%
+ {\appendtoks\lesshyphens\to\everyraggedcommand}
+\setvalue{\@@ragged@@command\v!morehyphenation}%
+ {\appendtoks\morehyphens\to\everyraggedcommand}
+
+\setvalue{\@@ragged@@command\v!lefttoright}{\appendtoks\lefttoright\to\everyraggedcommand}
+\setvalue{\@@ragged@@command\v!righttoleft}{\appendtoks\righttoleft\to\everyraggedcommand}
+\setvalue{\@@ragged@@command l2r}{\appendtoks\lefttoright\to\everyraggedcommand}
+\setvalue{\@@ragged@@command r2l}{\appendtoks\righttoleft\to\everyraggedcommand}
+
+% compare:
+%
+% \framed[width=4cm,align=no] {\hfil xxx}
+% \framed[width=4cm,align=disable]{\hfil xxx}
+
+\setvalue{\@@ragged@@command\v!disable}% for one liners
+ {\appendtoks\raggedright\parfillskip\zeropoint\to\everyraggedcommand}
+
+\chardef\raggedoneliner\zerocount
+
+\setvalue{\@@ragged@@command\v!line}%
+ {\chardef\raggedoneliner\plusone}
+
+% Nog doen:
+%
+% \goodbreak -> \allowbreak en \dosomebreak{..} in koppen
%
-% \startrandomized \input tufte \stoprandomized
+% bij koppen zowieso: \blanko[reset]
+
+% Nog in commando verwerken:
+%
+% \voorkeur la \blanko
%
-% \definestartstop[randomized][\c!before=\dosetattribute{case}\plusfour,\c!after=]
+% Om ongewenste witruimte te voorkomen kan met \dosomebreak{\break}
+% een \penalty voor witruimte worden geplaatst.
+
+\def\removelastskip % a redefinition of plain
+ {\ifvmode\ifdim\lastskip=\zeropoint\else\vskip-\lastskip\fi\fi}
-\def\randomizetext{\groupedcommand{\dosetattribute{case}\plusfive}{}}
+\def\doifoutervmode#1%
+ {\ifvmode\ifinner\else#1\fi\fi}
-% compound stuff (under construction)
+\ifx\dosomebreak\undefined % defined in mkiv
-\defineattribute[breakpoint]
+ \def\dosomebreak#1%
+ {\doifoutervmode
+ {\scratchskip\lastskip
+ \removelastskip
+ %\leavevmode\type{#1}%
+ #1\relax
+ \ifdim\scratchskip=\zeropoint % else interference with footnotes
+ \else
+ \vskip\scratchskip
+ \fi}}
-\newbox\breakpointbox
+\fi
-\definesystemvariable {bp} % BreakPoint
+\def\forgeteverypar
+ {\everypar{\the\neverypar}}
-\exhyphenchar=\minusone % we use a different order then base tex, so we really need this
+\def\forgetparindent
+ {\forgeteverypar
+ \indentfirstparagraphtrue % recently added
+ \let\currentindentation\v!none
+ \ctxparindent\zeropoint
+ \parindent\zeropoint\relax}
-\newcount \maxbreakpointsid
+\def\forgetparskip
+ {\let\currentwhitespace\v!none
+ \ctxparskip\zeropoint
+ \parskip\zeropoint\relax}
-\def\definebreakpoints
- {\dosingleargument\dodefinebreakpoints}
+\def\forgetbothskips
+ {\tolerance1500
+ \leftskip\zeropoint
+ \rightskip\zeropoint\relax}
-\def\dodefinebreakpoints[#1]%
- {\ifcsname\??bp:#1\endcsname \else
- \global\advance\maxbreakpointsid\plusone
- \setxvalue{\??bp:#1}{\the\maxbreakpointsid}%
+\def\forgetspacing
+ {\emergencystretch\zeropoint}
+
+\newif\ifforgotten % rather good signal for inner
+
+\appendtoks \forgottentrue \to \everyforgetall
+\appendtoks \forgetragged \to \everyforgetall
+\appendtoks \forgetparskip \to \everyforgetall
+\appendtoks \forgetparindent \to \everyforgetall
+\appendtoks \forgetbothskips \to \everyforgetall
+\appendtoks \forgetspacing \to \everyforgetall % i.v.m. funny spacing in pagebody
+\appendtoks \spacing\plusone \to \everyforgetall % new per 10/08/2004, else problems in otr / !! needed
+\appendtoks \everypar\emptytoks \to \everyforgetall % indeed!
+
+\def\localvbox#1#%
+ {\vbox#1\bgroup
+ \forgetparskip
+ \setlocalhsize
+ \hsize\localhsize
+ \forgetparindent
+ \forgetbothskips
+ \forgeteverypar
+ \let\next=}
+
+\let\dostopattributes\relax % in case these commands end up in an edef
+
+% \unexpanded\def\dostartattributes#1#2#3%
+% {\begingroup % geen \bgroup, anders in mathmode lege \hbox
+% \ifcsname#1#3\endcsname
+% \let\dostopattributes\@@dostopattributes
+% \startcolor[\csname#1#3\endcsname]%
+% \else
+% \let\dostopattributes\@@nostopattributes
+% \fi
+% \ifcsname#1#2\endcsname
+% \expandafter\doconvertfont
+% \else
+% \expandafter\gobbleoneargument
+% \fi{\csname#1#2\endcsname}}
+
+\newconditional \parbasedattributes
+
+\def\finishparbasedattributes
+ {\ifconditional\parbasedattributes
+ \setfalse\parbasedattributes
+ \par
\fi}
-\def\installbreakpoint
- {\dotripleempty\doinstallbreakpoint}
+\def\dostopparbasedattributes
+ {\settrue\parbasedattributes
+ \dostopattributes}
-% hm, we cannot prebuild lists, font dependent
+\unexpanded\def\@@dostopattributes
+ {\stopcolor
+ \finishparbasedattributes
+ \endgroup}
-\def\doinstallbreakpoint[#1][#2][#3]%
- {\ifcsname\??bp:#1\endcsname
- \begingroup
- \getparameters[\??bp][\c!type=1,\c!nleft=3,\c!nright=3,#3]%
- \ctxlua{breakpoints.setreplacement(\csname\??bp:#1\endcsname,#2,\@@bptype,\@@bpnleft,\@@bpnright)}%
- \endgroup
+\unexpanded\def\@@nostopattributes
+ {\finishparbasedattributes
+ \endgroup}
+
+\unexpanded\def\doattributes#1#2#3#4%
+ {\dostartattributes{#1}{#2}{#3}{#4}\dostopattributes}
+
+% An even faster \ETEX\ version:
+
+\unexpanded\def\dostartattributes#1#2#3%
+ {\begingroup % geen \bgroup, anders in mathmode lege \hbox
+ \ifincolor
+ \ifcsname#1#3\endcsname
+ \let\dostopattributes\@@dostopattributes
+ \faststartcolor[\csname#1#3\endcsname]%
+ \else
+ \let\dostopattributes\@@nostopattributes
+ \fi
+ \else
+ \let\dostopattributes\@@nostopattributes
+ \fi
+ \ifcsname#1#2\endcsname
+ % \@EAEAEA\doconvertfont\@EA\@EA\csname#1#2\endcsname
+ \@EA\doconvertfont\csname#1#2\@EA\endcsname
+ \fi}
+
+\unexpanded\def\@@dostopattributes
+ {\faststopcolor
+ \finishparbasedattributes
+ \endgroup}
+
+\unexpanded\def\@@nostopattributes
+ {\finishparbasedattributes
+ \endgroup}
+
+%D Bonus macro, see core-sec.tex
+
+\unexpanded\def\dosetfontattribute#1#2%
+ {\ifcsname#1#2\endcsname
+ \@EA\doconvertfont\csname#1#2\@EA\endcsname
+ \fi\empty}
+
+%D Since this happens a lot, and sometimes large arguments
+%D are passed in \type {#4}, we just copy some code:
+
+\unexpanded\def\doattributes#1#2#3#4%
+ {\begingroup % geen \bgroup, anders in mathmode lege \hbox
+ \ifincolor
+ \ifcsname#1#3\endcsname
+ \let\dostopattributes\@@dostopattributes
+ \faststartcolor[\csname#1#3\endcsname]%
+ \else
+ \let\dostopattributes\endgroup
+ \fi
+ \else
+ \let\dostopattributes\endgroup
+ \fi
+ \ifcsname#1#2\endcsname
+ % \@EAEAEA\doconvertfont\@EA\@EA\csname#1#2\endcsname
+ \@EA\doconvertfont\csname#1#2\@EA\endcsname
+ \fi
+ {#4}%
+ \dostopattributes}
+
+% Kan vaker worden toegepast en moet bovendien sneller!
+
+\newskip\leftskipadaption
+\newskip\rightskipadaption
+
+\def\doadaptleftskip#1%
+ {\dosetleftskipadaption{#1}%
+ \advance\leftskip \leftskipadaption}
+
+\def\doadaptrightskip#1%
+ {\dosetrightskipadaption{#1}%
+ \advance\rightskip \rightskipadaption}
+
+\setvalue{@lsa@\v!standard}{\ifdim\ctxparindent=\zeropoint\@@slleft\else\ctxparindent\fi}
+\setvalue{@lsa@\v!yes }{\ifdim\ctxparindent=\zeropoint\@@slleft\else\ctxparindent\fi}
+\letvalue{@lsa@\v!no }\zeropoint
+\letvalue{@lsa@\empty }\zeropoint
+\setvalue{@rsa@\v!standard}{\@@slright}
+\setvalue{@rsa@\v!yes }{\@@slright}
+\letvalue{@rsa@\v!no }\zeropoint
+\letvalue{@rsa@\empty }\zeropoint
+
+\def\dosetleftskipadaption#1%
+ {\edefconvertedargument\ascii{@lsa@#1}%
+ \leftskipadaption
+ \ifcsname\ascii\endcsname
+ \csname\ascii\endcsname
+ \else
+ #1%
+ \fi
+ \relax}
+
+\def\dosetrightskipadaption#1%
+ {\edefconvertedargument\ascii{@rsa@#1}%
+ \rightskipadaption
+ \ifcsname\ascii\endcsname
+ \csname\ascii\endcsname
+ \else
+ #1%
+ \fi
+ \relax}
+
+\newcount \noftrackedpagestates
+\newif \ifpagestatemismatch
+\newcount \realpagestateno
+\chardef \frozenpagestate \zerocount
+
+\def\dotrackpagestate#1#2%
+ {\ifdoublesided \ifinpagebody \else
+ \doforcedtrackpagestate{#1}{#2}%
+ \fi \fi}
+
+\def\doforcedtrackpagestate#1#2%
+ {\ifcase\frozenpagestate
+ \global\advance\noftrackedpagestates\plusone
+ \global\advance#2\plusone
+ \lazysavetaggedtwopassdata{#1}{\number\noftrackedpagestates}{\number#2}{\noexpand\realfolio}%
+ %\llap{\infofont\number\noftrackedpagestates/\number#2}% tracing
+ \fi}
+
+\def\doifrightpagestateelse#1#2%
+ {\ifcase\frozenpagestate
+ \pagestatemismatchfalse
+ \realpagestateno\realfolio
+ \ifinpagebody
+ \ifdoublesided
+ \ifodd\realpageno\relax
+ \twopassdatafoundtrue \else \twopassdatafoundfalse
+ \fi
+ \else
+ \twopassdatafoundtrue
+ \fi
+ \else\ifdoublesided
+ \findtwopassdata{#1}{\number#2}%
+ \iftwopassdatafound
+ \realpagestateno\twopassdata\relax
+ \ifnum\twopassdata=\realpageno \else
+ \pagestatemismatchtrue
+ \fi
+ \ifodd\twopassdata\relax
+ \twopassdatafoundtrue \else \twopassdatafoundfalse
+ \fi
+ \else
+ \ifodd\realpageno\relax
+ \twopassdatafoundtrue \else \twopassdatafoundfalse
+ \fi
+ \fi
+ \else
+ \twopassdatafoundtrue
+ \fi\fi
+ \else
+ \ifodd\realpagestateno\relax
+ \twopassdatafoundtrue \else \twopassdatafoundfalse
+ \fi
+ \fi
+ \iftwopassdatafound
+ \@EA\firstoftwoarguments
+ \else
+ \@EA\secondoftwoarguments
+ \fi}
+
+\def\doifforcedrightpagestateelse#1#2%
+ {\ifcase\frozenpagestate
+ \pagestatemismatchfalse
+ \realpagestateno\realfolio
+ \findtwopassdata{#1}{\number#2}%
+ \iftwopassdatafound
+ \realpagestateno\twopassdata\relax
+ \ifnum\twopassdata=\realpageno \else
+ \pagestatemismatchtrue
+ \fi
+ \ifodd\twopassdata\relax
+ \twopassdatafoundtrue \else \twopassdatafoundfalse
+ \fi
+ \else
+ \ifodd\realpageno\relax
+ \twopassdatafoundtrue \else \twopassdatafoundfalse
+ \fi
+ \fi
+ \else
+ \ifodd\realpagestateno\relax
+ \twopassdatafoundtrue \else \twopassdatafoundfalse
+ \fi
+ \fi
+ \iftwopassdatafound
+ \@EA\firstoftwoarguments
+ \else
+ \@EA\secondoftwoarguments
+ \fi}
+
+\def\freezepagestate {\chardef\frozenpagestate\plusone }
+\def\defrostpagestate{\chardef\frozenpagestate\zerocount}
+
+% we can make more of these on top, but how to deal with mixed frozen states
+
+\definetwopasslist\s!paragraph \newcount \nofraggedparagraphs
+
+\def\signalrightpage {\dotrackpagestate \s!paragraph\nofraggedparagraphs}
+\def\doifrightpageelse{\doifrightpagestateelse\s!paragraph\nofraggedparagraphs}
+
+\newcount\pagesignallevel
+
+\def\startsignalrightpage % one may do a \postsignalrightplace
+ {\advance\pagesignallevel\plusone
+ \presignalrightpage
+ \let\signalrightpage\relax
+ \let\presignalrightpage\relax
+ \let\startsignalrightpage\relax
+ \doifrightpageelse\donothing\donothing
+ \freezepagestate}
+
+\def\stopsignalrightpage
+ {\ifcase\pagesignallevel\or\postsignalrightpage\fi
+ \advance\pagesignallevel\minusone}
+
+\def\setraggedparagraphmode
+ {\signalrightpage\doifrightpageelse} % move it there
+
+\ifx\swapmargins\undefined \let\swapmargins\undefined \fi % todo
+
+\def\doifswappedrightpageelse#1#2% alleen in box construction !
+ {\doifrightpageelse
+ {#1}
+ {\scratchcounter\realpageno
+ \realpageno\realpagestateno\relax
+ \swapmargins
+ \realpageno\scratchcounter
+ #2}}
+
+\newbox\signaledrightpage % this way we can avoid interference, i.e. postpone placement
+
+\def\presignalrightpage {\global\setbox\signaledrightpage\hbox{\signalrightpage}}
+\def\postsignalrightpage{\ifvoid\signaledrightpage\else\box\signaledrightpage\fi}
+
+% The next feature is is used in:
+%
+% \definenumber[test][way=bypage]
+%
+% \def\Test
+% {\incrementnumber[test]\rawnumber[test]/%
+% \incrementnumber[test]\rawnumber[test]/%
+% \incrementnumber[test]\rawnumber[test]\space
+% \checkpagechange{oeps}\changedpage{oeps}\space
+% \ifpagechanged TRUE\else FALSE\fi}
+%
+% \Test\page \Test\par \Test\page \Test\par \Test\page \Test\page
+%
+% (adapted from cont-new.tex:)
+
+\newif\ifpagechanged \let\lastchangedpage\empty
+
+\def\docheckpagestatechange#1#2#3%
+ {\pagechangedfalse
+ \doforcedtrackpagestate{#2}{#3}%
+ \findtwopassdata{#2}{\number#3}%
+ \iftwopassdatafound
+ \ifnum\twopassdata>0\getvalue{#2:p:#1}\relax
+ \pagechangedtrue
+ \fi
+ \fi
+ \ifpagechanged
+ \letgvalue{#2:p:#1}\twopassdata
+ \globallet\lastchangedpage\twopassdata
+ \else
+ \globallet\lastchangedpage\realfolio
\fi}
-\def\setbreakpoints
- {\ctxlua{breakpoints.enabled=true}%
- \gdef\setbreakpoints[##1]{\dosetattribute{breakpoint}{\csname\??bp:##1\endcsname}}%
- \setbreakpoints}
+\def\changedpagestate#1#2%
+ {\executeifdefined{#2:p:#1}{0}}
+
+\def\checkpagechange#1{\docheckpagestatechange{#1}\s!paragraph\nofraggedparagraphs}
+\def\changedpage #1{\changedpagestate{#1}\s!paragraph}
+
+% saved struts
+
+\ifx\savedstrutbox\undefined \newbox\savedstrutbox \fi
+
+\def\savestrut {\setbox\savedstrutbox\copy\strutbox}
+\def\savedstrut{\copy \savedstrutbox}
+
+\chardef\bottomraggedness=0 % 0=ragged 1=normal/align 2=baseline
+
+\def\bottomalignlimit{3\lineheight}
+
+\newif\ifn@rmalbottom
+\newif\ifr@ggedbottom
+\newif\ifb@selinebottom
+
+\def\normalbottom
+ {% \topskip 10pt
+ \r@ggedbottomfalse}
+
+\def\raggedbottom
+ {\chardef\bottomraggedness\zerocount
+ \n@rmalbottomfalse
+ \r@ggedbottomtrue
+ \b@selinebottomfalse
+ \settopskip}
+
+\def\alignbottom
+ {\chardef\bottomraggedness\plusone
+ \n@rmalbottomtrue
+ \r@ggedbottomfalse
+ \b@selinebottomfalse
+ \settopskip}
+
+\def\baselinebottom
+ {\chardef\bottomraggedness\plustwo
+ \n@rmalbottomfalse
+ \r@ggedbottomfalse
+ \b@selinebottomtrue
+ \settopskip}
+
+\let\normalbottom=\alignbottom % downward compatible
+
+% new code, not in use yet
+
+% for future chinese typo-module:
+%
+% % \let\raggedleft\veryraggedleft
+% % \let\raggedleft\veryraggedright
+%
+% \startbuffer
+% 中中中中中中中中中中中中中中中中中中中中中中中中中%
+% 中中中中中中中中中中中中中中中中中中中中中中中中中%
+% 中中中中中中中中中中中中中中中中中中中中中中中中中%
+% 中中中中中中中中中中中中中中中中中中中中中中中中中%
+% \stopbuffer
+%
+% \framedtext
+% [align={broad,flushright},width=90mm]
+% {\getbuffer}
+%
+% \framedtext
+% [align={broad,flushleft},width=90mm]
+% {\getbuffer}
+%
+% \framedtext
+% [align=middle,width=90mm]
+% {\getbuffer}
+%
+% using just flushleft is not okay here due to the fact that
+% leftskip has less stretch than the inter character spacing
+
+\registerctxluafile{core-spa}{1.001}
+
+\definesystemattribute[kern-chars]
+\definesystemattribute[skip-category] \chardef\skipcategoryattribute \dogetattributeid{skip-category}
+\definesystemattribute[skip-penalty] \chardef\skippenaltyattribute \dogetattributeid{skip-penalty}
+\definesystemattribute[skip-order] \chardef\skiporderattribute \dogetattributeid{skip-order}
+\definesystemattribute[snap-category]
+\definesystemattribute[display-math]
-\letvalue{\??bp:\s!reset}\minusone
+% \start \dosetstretch{.25em} \setuptolerance[tolerant,stretch] \input tufte \endgraf \stop
+% \start \dosetstretch{.5em} effe flink doorfietsen \stop
-\definebreakpoints[compound]
+\def\dosetupgridsnapping % calls too often, only needed in gridsnapping
+ {\ctxlua{nodes.setsnapvalue(1,\number\openstrutheight,\number\openstrutdepth)}}
-\installbreakpoint [compound] [\number`+] [\c!left=3,\c!right=3,\c!type=1]
-\installbreakpoint [compound] [\number`-] [\c!left=3,\c!right=3,\c!type=1]
-\installbreakpoint [compound] [\number`/] [\c!left=3,\c!right=3,\c!type=1]
-\installbreakpoint [compound] [\number`(] [\c!left=3,\c!right=3,\c!type=2]
-\installbreakpoint [compound] [\number`)] [\c!left=3,\c!right=3,\c!type=3]
+\def\doenablegridsnapping
+ {\dosetattribute{snap-category}{1}%
+ \topskip\strutht
+ \offinterlineskip}
-% \setbreakpoints[compound]
+\def\dodisablegridsnapping
+ {\doresetattribute{snap-category}%
+ % reset topskip
+ \oninterlineskip}
% experimental code, not yet interfaced:
@@ -239,7 +2903,7 @@
% 4 == add to existing skip add
% 5 == disable (ignore following) disable
% 6 == kill whitespace nowhite
-% 7 == discard previous goback
+% 7 == discard previous back
%
% penalty: larger wins
% order: larger wins
@@ -253,51 +2917,95 @@
% todo, in grid mode: vspacing.fixed = false
-\def\startblankhandling{\begingroup \blankskip \zeropoint}
-\def\stopblankhandling {\vskip \blankskip \endgroup}
-\def\setblankcategory#1{\dosetattribute{skip-category}{#1}}
-\def\setblankorder #1{\dosetattribute{skip-order}{#1}}
-\def\setblankpenalty #1{\dosetattribute{skip-penalty}{#1}}
-\def\addblankskip#1#2#3{\advance\blankskip#1\dimexpr\ifgridsnapping#3\else#2\fi\relax}
-\def\fixedblankskip {\blankskip1\blankskip}
-\def\flexibleblankskip {\blankskip1\blankskip\!!plus \skipgluefactor\blankskip\!!minus\skipgluefactor\blankskip}
+\newtoks\everybeforeblankhandling
+\newtoks\everyafterblankhandling
+
+\appendtoks
+ \blankskip\zeropoint
+ \attribute\skipcategoryattribute\plusone
+ \attribute\skippenaltyattribute \attributeunsetvalue
+ \attribute\skiporderattribute \attributeunsetvalue
+ \ifblankflexible
+ \setfalse\blankisfixed
+ \else
+ \settrue\blankisfixed
+ \fi
+\to \everybeforeblankhandling
+
+\appendtoks
+ \ifconditional\blankisfixed
+ \blankskip1\blankskip
+ \else
+ \blankskip1\blankskip\!!plus\skipgluefactor\blankskip\!!minus\skipgluefactor\blankskip
+ \fi
+\to \everyafterblankhandling
+
+\def\setblankcategory#1{\attribute\skipcategoryattribute#1\relax}
+\def\setblankorder #1{\attribute\skiporderattribute #1\relax}
+\def\setblankpenalty #1{\attribute\skippenaltyattribute #1\relax}
+\def\addblankskip#1#2#3{\advance\blankskip#1\dimexpr\ifgridsnapping#3\else#2\fi\relax\relax}
+\def\fixedblankskip {\settrue \blankisfixed} % \blankskip1\blankskip}
+\def\flexibleblankskip {\setfalse\blankisfixed} % \blankskip1\blankskip\!!plus\skipgluefactor\blankskip\!!minus\skipgluefactor\blankskip}
+
+\def\startblankhandling
+ {\begingroup
+ \the\everybeforeblankhandling}
+
+\def\stopblankhandling
+ {\the\everyafterblankhandling
+ \vskip\blankskip
+ \endgroup}
+
+\def\flushblankhandling
+ {\the\everyafterblankhandling
+ \vskip\blankskip
+ \the\everybeforeblankhandling}
+
+% % % %
\def\definevspacingamount
{\dotripleempty\dodefinevspacingamount}
\def\dodefinevspacingamount[#1][#2][#3]%
- {\ctxlua{vspacing.setskip("#1","\detokenize{#2}","\detokenize{#3}")}}
+ {\ctxlua{vspacing.setskip("#1",\!!bs\detokenize{#2}\!!es,\!!bs\detokenize{#3}\!!es)}}
\def\definevspacing
{\dodoubleempty\dodefinevspacing}
\def\dodefinevspacing[#1][#2]%
- {\ctxlua{vspacing.setmap("#1","\detokenize{#2}")}}
+ {\ctxlua{vspacing.setmap("#1","#2")}}
-\def\vspacing
+\unexpanded\def\vspacing
{\dosingleempty\dovspacing}
\def\dovspacing[#1]%
{\ctxlua{vspacing.analyse("\iffirstargument#1\else default\fi")}}
-\definevspacingamount[\v!big] [\bigskipamount] [\openlineheight]
-\definevspacingamount[\v!medium] [\medskipamount] [.50\openlineheight]
-\definevspacingamount[\v!small] [\smallskipamount][.25\openlineheight]
-\definevspacingamount[\v!line] [\openlineheight] [\openlineheight]
-\definevspacingamount[\v!formula][\medskipamount] [.50\openlineheight]
-\definevspacingamount[\v!white] [\parskip] [\openlineheight]
-
-\definevspacing[\v!halfline][.5*\v!line]
-\definevspacing[weak] [order:0]
-\definevspacing[strong] [order:100]
-\definevspacing[samepage] [penalty:10000]
+% category:4 is default
+
+\definevspacingamount[\v!big] [\bigskipamount] [\openlineheight]
+\definevspacingamount[\v!medium] [\medskipamount] [0.50\openlineheight]
+\definevspacingamount[\v!small] [\smallskipamount] [0.25\openlineheight]
+\definevspacingamount[\v!line] [\openlineheight] [\openlineheight]
+\definevspacingamount[\v!halfline][0.50\openlineheight][0.50\openlineheight]
+\definevspacingamount[\v!formula] [\medskipamount] [0.50\openlineheight]
+\definevspacingamount[\v!white] [\parskip] [\openlineheight]
+
+\definevspacing[\s!default] [\v!big]
+\definevspacing[\v!samepage][penalty:10000]
+\definevspacing[\v!max] [category:1]
\definevspacing[\v!force] [category:2]
\definevspacing[\v!disable] [category:5]
\definevspacing[\v!nowhite] [category:6]
-\definevspacing[goback] [category:7]
+\definevspacing[\v!back] [category:7]
\definevspacing[\v!always] [category:0]
+\definevspacing[\v!weak] [order:0]
+\definevspacing[\v!strong] [order:100]
-\definevspacing[\s!default][\v!big]
+\defineblankmethod[\v!samepage]{\writestatus\m!systems{ignoring blank method '\v!samepage'}}
+\defineblankmethod[\v!max] {\writestatus\m!systems{ignoring blank method '\v!max'}}
+\defineblankmethod[\v!weak] {\writestatus\m!systems{ignoring blank method '\v!weak'}}
+\defineblankmethod[\v!strong] {\writestatus\m!systems{ignoring blank method '\v!strong'}}
% \definevspacing[whatever][4*big]
% \vspacing[2*big,-medium,-3*small,whatever,halfline,order:10,category:4,strong,samepage]
@@ -305,15 +3013,1217 @@
% \vspacing[2*big,disable]
% \vspacing[2*big,back]
-\def\enablevspacing{\ctxlua{
- callback.register('vpack_filter', nodes.handle_vbox_spacing)
- callback.register('buildpage_filter', nodes.handle_page_spacing)
-}}
+% some temporary hacks
+\setfalse\vspacingenabled
-\protect \endinput
+% ! ! ! ! ! later, now each newline does a \par and call to the callback
+
+\newtoks\everyenablevspacing
+\newtoks\everydisablevspacing
+
+\def\enablevspacing {\the\everyenablevspacing}
+\def\disablevspacing{\the\everydisablevspacing}
+
+\appendtoks
+ \writestatus\m!systems{! ! enabling vspacing ! !}%
+ \settrue\vspacingenabled
+ \ctxlua{vspacing.enable()}%
+\to \everyenablevspacing
+
+\appendtoks
+ \writestatus\m!systems{! ! disabling vspacing ! !}%
+ \setfalse\vspacingenabled
+ \ctxlua{vspacing.disable()}%
+\to \everydisablevspacing
+
+\let\originalblank \blank % we use \original for non-primitives
+\let\originalvspacing\vspacing
+
+\let\setupvspacing\setupblank % for the moment
+
+% so, the new one will be
+%
+% \chardef\bottomraggedness=0 % 0=ragged 1=normal/align 2=baseline
+%
+% \def\bottomalignlimit{3\lineheight} % will be settable
+%
+% \def\raggedbottom {\chardef\bottomraggedness=0 \settopskip}
+% \def\alignbottom {\chardef\bottomraggedness=1 \settopskip}
+% \def\baselinebottom{\chardef\bottomraggedness=2 \settopskip}
+%
+% \let\normalbottom =\alignbottom
+
+% \hyphenpenalty = ( 2.5 * \hsize ) / \raggedness
+% \tolerance >= 1500 % was 200
+% \raggedness = 2 .. 6\bodyfontsize
+
+\chardef\raggedstatus=0 % normal left center right
+
+\def\leftraggedness {2\bodyfontsize}
+\def\rightraggedness {2\bodyfontsize}
+\def\middleraggedness {6\bodyfontsize}
+
+\def\middleraggedness {.5\hsize} % was: 6\bodyfontsize, fails on: \placefigure{x $x=x$ x}{}
+
+% oeps, hsize can be 0pt in which case we get a strange division
+
+\def\middleraggedness {\ifdim\hsize=\zeropoint6\bodyfontsize\else.5\hsize\fi} % was: 6\bodyfontsize, fails on: \placefigure{x $x=x$ x}{}
+
+%D More hyphenation control, will be combined with align
+%D setup.
+
+\def\nohyphens
+ {\ifx\dohyphens\relax
+ \edef\dohyphens
+ {\hyphenpenalty\the\hyphenpenalty
+ \exhyphenpenalty\the\exhyphenpenalty\relax}%
+ \fi
+ \hyphenpenalty\plustenthousand
+ \exhyphenpenalty\plustenthousand}
+
+\let\dohyphens\relax
+
+%D To prevent unwanted side effects, we also have to check
+%D for hyphens here:
-\starttext
+\newskip\@@raggedskipa
+\newskip\@@raggedskipb
+
+\def\setraggedness#1%
+ {\ifnum\tolerance<1500\relax % small values have
+ \tolerance1500\relax % unwanted side effects
+ \fi
+ \ifx\dohyphens\relax
+ % this code will be reconsidered / kind of fuzzy (and old)
+ \@@raggedskipa 2.5\hsize
+ \@@raggedskipb #1\relax
+ \divide\@@raggedskipa \@@raggedskipb
+ \hyphenpenalty\@@raggedskipa
+ \fi}
+
+\let\updateraggedskips\relax
+
+\def\setraggedskips#1#2#3#4#5#6#7% never change this name
+ {\def\updateraggedskips{\dosetraggedskips{#1}{#2}{#3}{#4}{#5}{#6}{#7}}%
+ \updateraggedskips}
+
+\def\dosetraggedskips#1#2#3#4#5#6#7%
+ {\chardef \raggedstatus#1\relax
+ \leftskip 1\leftskip \!!plus#2\relax % zie: Tex By Topic 8.1.3
+ \rightskip 1\rightskip\!!plus#3\relax % zie: Tex By Topic 8.1.3
+ \spaceskip #4\relax
+ \xspaceskip #5\relax
+ \parfillskip\zeropoint\!!plus#6\relax
+ \parindent #7\relax}
+
+% \def\notragged%
+% {\setraggedskips{0}{0em}{0em}{0em}{0em}{1fil}{\parindent}}
+
+% older (context) names:
+
+\let\spaceamount \interwordspace
+\let\emspaceamount\emwidth
+
+% tracing:
+
+\def\doshowpardata#1%
+ {\ifx#1\relax\else
+ \hbox{\string#1: \the#1}\endgraf
+ \expandafter\doshowpardata
+ \fi}
+
+\def\showpardata
+ {\edef\thepardata
+ {\hbox{font: \fontname\font}\endgraf
+ \doshowpardata
+ \interwordspace \interwordstretch \interwordshrink \emwidth \exheight \extraspace
+ \hsize \vsize
+ \leftskip \rightskip
+ \spaceskip \xspaceskip
+ \parindent \parfillskip
+ \hyphenpenalty \exhyphenpenalty
+ \displaywidowpenalty \widowpenalty \clubpenalty \brokenpenalty
+ \doublehyphendemerits \finalhyphendemerits \adjdemerits
+ \relax}%
+ \begingroup
+ \dontshowcomposition
+ \inleftmargin{\vsmash
+ {\switchtobodyfont[7pt,tt]%
+ \framed[\c!align=\v!right]{\thepardata}}}%
+ \endgroup}
+
+\def\startshowpardata
+ {\begingroup
+ \showcomposition
+ \showstruts\tracepositionstrue \tracingparagraphs\maxdimen
+ \appendtoksonce\showpardata\let\showpardata\relax\to\everypar}
+
+\def\stopshowpardata
+ {\endgraf
+ \endgroup}
+
+% \defineXMLenvironment[showpardata] \startshowpardata \stopshowpardata
+% \defineXMLsingular [showpardata] \showpardata
+
+% defaults
+
+\def\raggedfillamount {1fil}
+\def\raggedhalffillamount{.5fil}
+\def\raggedspaceamount {\interwordspace} % {.3333em}
+\def\raggedxspaceamount {.5em}
+
+\def\notragged
+ {\chardef\raggedstatus\zerocount
+ \leftskip 1\leftskip
+ \rightskip 1\rightskip
+ \spaceskip \zeropoint
+ \xspaceskip \zeropoint
+ \parfillskip\zeropoint\!!plus\raggedfillamount\relax
+ \let\updateraggedskips\relax} % new
+
+\let\forgetragged\notragged
+
+\def\raggedleft
+ {\setraggedness\leftraggedness
+ \setraggedskips1\leftraggedness\zeropoint\raggedspaceamount
+ \raggedxspaceamount\zeropoint\zeropoint}
+
+\def\raggedcenter
+ {\setraggedness\middleraggedness
+ \setraggedskips2\middleraggedness\middleraggedness\raggedspaceamount
+ \raggedxspaceamount\zeropoint\zeropoint}
+
+%D We used to have:
+%D
+%D \starttyping
+%D \def\raggedright
+%D {\setraggedness\rightraggedness
+%D \setraggedskips{3}{0em}{\rightraggedness}{.3333em}{.5em}{0em}{\parindent}}
+%D \stoptyping
+%D
+%D However, the next alternative, suggested by Taco, is better.
+
+\def\raggedright
+ {\setraggedness\rightraggedness
+ \setraggedskips3\zeropoint\rightraggedness\raggedspaceamount
+ \raggedxspaceamount\raggedfillamount\parindent}
+
+\def\veryraggedleft
+ {\setraggedskips1\raggedfillamount\zeropoint\raggedspaceamount
+ \raggedxspaceamount\zeropoint\zeropoint}
+
+%D When we want the last line to have a natural width:
+%D
+%D \starttyping
+%D \def\veryraggedleft%
+%D {\setraggedskips{1}{1fil}{0em}{.3333em}{.5em}{0em}{-1fil}}
+%D \stoptyping
+%D
+%D but this one is not accepted by the macros.
+
+\def\veryraggedcenter
+ {\setraggedskips2\raggedfillamount\raggedfillamount\raggedspaceamount
+ \raggedxspaceamount\zeropoint\zeropoint}
+
+\def\veryraggedright
+ {\setraggedskips3\zeropoint\raggedfillamount\raggedspaceamount
+ \raggedxspaceamount\zeropoint\parindent}
+
+\def\ttraggedright
+ {\tttf
+ \setraggedskips3\zeropoint\rightraggedness
+ \zeropoint\zeropoint\zeropoint\parindent} % \ctxparindent
+
+%D A bonus one:
+
+\def\raggedwidecenter
+ {\setraggedness\middleraggedness
+ \setraggedskips2\raggedhalffillamount\raggedhalffillamount
+ \raggedspaceamount\raggedxspaceamount\zeropoint\zeropoint}
+
+\newif\if@@asragged \@@asraggedtrue % old method
+
+% todo
+%
+% \setuplayout[grid=yes,lines=44] \showgrid
+% \starttext
+% test \vfill test \endgraf \strut \endgraf \vskip-\lineheight \removedepth \pagina test
+% \stoptext
+
+% \setupalign[reset,new,right,old]
+
+\def\@@align@@rl{\if!!donea\veryraggedleft \else\raggedleft \fi}
+\def\@@align@@rr{\if!!donea\veryraggedright \else\raggedright \fi}
+\def\@@align@@rc{\if!!donea\veryraggedcenter\else\raggedcenter\fi}
+
+\setvalue{@@ngila@@\v!broad }{\!!doneatrue}
+\setvalue{@@ngila@@\v!wide }{\!!donebtrue}
+
+\def\installalign#1#2{\setvalue{@@align@@#1}{#2}} % can be used for overloads
+
+\installalign \v!new {\@@asraggedfalse}
+\installalign \v!old {\@@asraggedtrue}
+\installalign \empty {}
+
+\installalign \v!line {\baselinebottom}
+\installalign \v!bottom {\raggedbottom}
+\installalign \v!height {\normalbottom}
+\installalign \v!width {\notragged}
+\installalign \v!normal {\notragged}
+\installalign \v!yes {\notragged}
+\installalign \v!no {\raggedright}
+\installalign \v!inner {\if@@asragged \setraggedparagraphmode\@@align@@rl\@@align@@rr \else
+ \setraggedparagraphmode\@@align@@rr\@@align@@rl \fi}
+\installalign \v!outer {\if@@asragged \setraggedparagraphmode\@@align@@rr\@@align@@rl \else
+ \setraggedparagraphmode\@@align@@rl\@@align@@rr \fi}
+\installalign \v!left {\if@@asragged\@@align@@rl\else\@@align@@rr\fi}
+\installalign \v!right {\if@@asragged\@@align@@rr\else\@@align@@rl\fi}
+\installalign \v!middle {\if!!doneb\raggedwidecenter\else\@@align@@rc\fi}
+\installalign \v!flushleft {\if!!donea\veryraggedright \else\raggedright\fi}
+\installalign \v!flushright {\if!!donea\veryraggedleft \else\raggedleft \fi}
+\installalign \v!flushouter {\setraggedparagraphmode\raggedleft\raggedright}
+\installalign \v!flushinner {\setraggedparagraphmode\raggedright\raggedleft}
+\installalign \v!center {\if!!doneb\raggedwidecenter\else\@@align@@rc\fi}
+\installalign \v!hanging {\enableprotruding}
+\installalign \v!nothanging {\disableprotruding}
+\installalign \v!hz {\enableadjusting}
+\installalign \v!nohz {\disableadjusting}
+\installalign \v!spacing {\enablespacehandling \enablekernhandling}
+\installalign \v!nospacing {\disablespacehandling\disablekernhandling}
+\installalign \v!hyphenated {\dohyphens}
+\installalign \v!nothyphenated {\nohyphens}
+\installalign \v!new {\@@asraggedfalse} % so new will give you consistency
+\installalign \v!reset {\notragged\normalbottom}
+
+\installalign \v!tolerant {\tolerance3000 \relax}
+\installalign \v!verytolerant {\tolerance4500 \relax}
+\installalign \v!stretch {\emergencystretch\bodyfontsize}
+
+\installalign \v!grid {\doenablegridsnapping } % only mkiv
+\installalign \v!nogrid {\dodisablegridsnapping} % only mkiv
+
+\installalign \v!righttoleft {\lefttoright}
+\installalign \v!lefttoright {\righttoleft}
+\installalign {l2r} {\lefttoright}
+\installalign {r2l} {\righttoleft}
+
+\newcount\hyphenminoffset
+
+\ifx\sethyphenationvariables\undefined \let\sethyphenationvariables\relax \fi
+
+\def\lesshyphens
+ {\advance\hyphenminoffset\plusone
+ \sethyphenationvariables}
+
+\def\morehyphens
+ {\ifcase\hyphenminoffset \else
+ \advance\hyphenminoffset\minusone
+ \fi
+ \sethyphenationvariables}
+
+\installalign \v!lesshyphenation {\lesshyphens}
+\installalign \v!morehyphenation {\morehyphens}
+
+\def\dodosetupalign#1{\csname @@align@@#1\endcsname}
+\def\dodosetupngila#1{\csname @@ngila@@#1\endcsname}
+
+\def\setupalign
+ {\dosingleargument\dosetupalign}
+
+\def\dosetupalign[#1]% can be made faster by checking for defined #1
+ {\!!doneafalse
+ \!!donebfalse
+ \processcommacommand[#1]\dodosetupngila
+ \processcommacommand[#1]\dodosetupalign}
+
+% \setupalign[flushleft] \input ward \par % lijnlinks
+% \setupalign[right] \input ward \par
+
+% \setupalign[flushright] \input ward \par % lijnrechts
+% \setupalign[left] \input ward \par
+
+% \setupalign[middle] \input ward \par % centreer
+% \setupalign[center] \input ward \par
+
+\def\startalignment
+ {\bgroup
+ \setupalign}
+
+\def\stopalignment
+ {\par
+ \egroup}
+
+\chardef\alignstrutmode=1
+
+% see later for the real definition, which in the simple case is:
+
+\newtoks \everyleftofalignedline
+\newtoks \everyrightofalignedline
+
+\def\shiftalignedline#1#2#3#4% left, right, inner, outer
+ {\rightorleftpageaction
+ {\everyleftofalignedline {\hskip\dimexpr#1+#3\relax}%
+ \everyrightofalignedline{\hskip\dimexpr#2+#4\relax}}
+ {\everyleftofalignedline {\hskip\dimexpr#1+#4\relax}%
+ \everyrightofalignedline{\hskip\dimexpr#2+#3\relax}}}
+
+\def\doalignline#1#2% \\ == newline
+ {\noindentation % was \noindent
+ \dontleavehmode % added in marrakesch at TUG 2006\begingroup
+ \begingroup
+ \setlocalhsize % new
+ \def\\{\egroup\par\doalignline{#1}{#2}\bgroup}%
+ \dowithnextbox
+ {\hbox to \localhsize
+ {\ifcase\alignstrutmode\or\strut\fi
+ \the\everyleftofalignedline
+ #1\unhbox\nextbox#2\relax
+ \the\everyrightofalignedline}%
+ \endgroup}
+ \hbox}
+
+% plain commands
+
+\ifx\undefined\line \def\line {\hbox to\hsize} \fi
+\ifx\undefined\leftline \def\leftline #1{\line{#1\hss}} \fi
+\ifx\undefined\rightline \def\rightline #1{\line{\hss#1}} \fi
+\ifx\undefined\centerline \def\centerline#1{\line{\hss#1\hss}} \fi
+
+% directe commando's
+
+\def\leftaligned {\doalignline \relax \hss }
+\def\midaligned {\doalignline \hss \hss }
+\def\rightaligned{\doalignline \hss \relax}
+
+\let\centeraligned\midaligned
+
+\def\regelbegrensd#1{\limitatetext{#1}{\hsize}{\unknown}} % to be translated
+
+% indirecte commando's
+
+\letvalue{\s!do\v!line\v!left }\leftaligned
+\letvalue{\s!do\v!line\v!right }\rightaligned
+\letvalue{\s!do\v!line\v!middle }\midaligned
+\letvalue{\s!do\v!line\v!flushleft }\rightaligned
+\letvalue{\s!do\v!line\v!flushright}\leftaligned
+\letvalue{\s!do\v!line\v!center }\midaligned
+
+\def\doalignedline#1{\csname\s!do\v!line#1\endcsname}
+
+%D Experimental:
+
+\def\doxalignline#1#2#3#4#5#6%
+ {\noindentation % was \noindent
+ \dontleavehmode % added in marrakesch at TUG 2006\begingroup
+ \begingroup
+ \setlocalhsize
+ \def\\{\egroup\par\doxalignline#1#2#3#4#5#6\bgroup}% inefficient
+ \dowithnextbox
+ {%\noindent moved up
+ \hbox to \localhsize
+ {#1\hskip\ifdone#2\else#3\fi#4%
+ \hbox to \localhsize
+ {\the\everyleftofalignedline
+ \ifcase\alignstrutmode\or\strut\fi
+ \ifdone#5\unhbox\nextbox#6\else#6\unhbox\nextbox#5\fi
+ \the\everyrightofalignedline}%
+ \hss}%
+ \endgroup}
+ \hbox}
+
+\def\doxcheckline
+ {\signalrightpage\doifrightpageelse\donetrue\donefalse}
+
+\setvalue{\s!do\v!line\v!inner }{\doxalignline\doxcheckline++\zeropoint \relax\hss }
+\setvalue{\s!do\v!line\v!outer }{\doxalignline\doxcheckline++\zeropoint \hss \relax}
+\setvalue{\s!do\v!line\v!innermargin}{\doxalignline\doxcheckline-+\innermargintotal\relax\hss }
+\setvalue{\s!do\v!line\v!outermargin}{\doxalignline\doxcheckline+-\outermargintotal\hss \relax}
+\setvalue{\s!do\v!line\v!inneredge }{\doxalignline\doxcheckline-+\inneredgetotal \relax\hss }
+\setvalue{\s!do\v!line\v!outeredge }{\doxalignline\doxcheckline+-\outeredgetotal \hss \relax}
+\setvalue{\s!do\v!line\v!backspace }{\doxalignline\doxcheckline-+\backspace \relax\hss }
+\setvalue{\s!do\v!line\v!cutspace }{\doxalignline\doxcheckline+-\cutspace \hss \relax}
+
+\setvalue{\s!do\v!line\v!leftmargin }{\doxalignline\donefalse --\leftmargintotal \hss \relax}
+\setvalue{\s!do\v!line\v!rightmargin}{\doxalignline\donefalse ++\rightmargintotal\relax\hss }
+\setvalue{\s!do\v!line\v!leftedge }{\doxalignline\donefalse --\leftedgetotal \hss \relax}
+\setvalue{\s!do\v!line\v!rightedge }{\doxalignline\donefalse ++\rightedgetotal \relax\hss }
+
+% ! ! ! beware, redefining \doalignline gives the wrong results ! ! !
+%
+% \def\doalignline{\doxalignline\donefalse++\zeropoint}
+
+%D Better:
+
+\def\doalignedline#1{\csname\s!do\v!line#1\endcsname}
+
+\def\alignedline#1#2% setting default
+ {\csname\s!do\v!line\ifcsname\s!do\v!line#1\endcsname#1\else#2\fi\endcsname}
+
+%D ...
+
+\def\dosetuptolerance[#1]%
+ {\doifinsetelse\v!vertical{#1}%
+ {\normalexpanded{\noexpand\processallactionsinset[#1]}
+ [ \v!verystrict=>\def\bottomtolerance{},
+ \v!strict=>\def\bottomtolerance{.050},
+ \v!tolerant=>\def\bottomtolerance{.075},
+ \v!verytolerant=>\def\bottomtolerance{.100}]}%
+ {\normalexpanded{\noexpand\processallactionsinset[#1]}
+ [ \v!stretch=>\emergencystretch\bodyfontsize,
+ \v!space=>\spaceskip.5em\!!plus.25em\!!minus.25em\relax,
+ \v!verystrict=>\tolerance 200,
+ \v!strict=>\tolerance1500,
+ \v!tolerant=>\tolerance3000,
+ \v!verytolerant=>\tolerance4500]}}
+
+\def\setuptolerance
+ {\dosingleargument\dosetuptolerance}
+
+% \def\woordrechts
+% {\groupedcommand{\hfill\hbox}{\parfillskip\zeropoint}}
+
+% beware: \wordright{whatever\kern-\rightskip} should work!
+% so, no funny boxing here
+
+\def\dowordright[#1]%
+ {% don't change
+ \groupedcommand
+ {\removeunwantedspaces
+ \hfill
+ \allowbreak % changed back from \hskip\zeropoint
+ \strut
+ \hfill
+ \quad % decent spacing
+ \hbox}
+ {\doifelse{#1}\v!right{\kern-\rightskip}{\doifsomething{#1}{\kern-#1}}%
+ \parfillskip\zeropoint
+ %\finalhyphendemerits\zerocount % yes or no
+ \par}}
+
+\def\wordright
+ {\dosingleempty\dowordright}
+
+% \dorecurse{5}{something } \wordright{--someone} \endgraf
+% \dorecurse{6}{something } \wordright{--someone} \endgraf
+% \dorecurse{7}{something } \wordright{--someone} \endgraf
+%
+% \dorecurse{5}{something } \wordright{--someone else entirely} \endgraf
+% \dorecurse{6}{something } \wordright{--someone else entirely} \endgraf
+% \dorecurse{7}{something } \wordright{--someone else entirely} \endgraf
+%
+% \wordright[\rightskip]{whatever}
+
+% \simplealignedbox{2cm}{right}{x}
+
+\setvalue{\s!simple\c!align\v!right }#1#2{\hbox to #1{#2\hss}}
+\setvalue{\s!simple\c!align\v!left }#1#2{\hbox to #1{\hss#2}}
+\setvalue{\s!simple\c!align\v!flushright }#1#2{\hbox to #1{\hss#2}}
+\setvalue{\s!simple\c!align\v!flushleft }#1#2{\hbox to #1{#2\hss}}
+\setvalue{\s!simple\c!align\v!middle }#1#2{\hbox to #1{\hss#2\hss}}
+
+\def\simplealignedbox#1{\executeifdefined{\s!simple\c!align#1}{\getvalue{\s!simple\c!align\v!right}}}
+
+%D \macros
+%D {pushindentation,popindentation}
+%D
+%D The pushing and popping is done by:
+
+\newbox\indentationboxA
+\newbox\indentationboxB
+
+\def\pushindentation
+ {\bgroup
+ \ifhmode
+ \unskip
+ \setbox\indentationboxA\lastbox % get \strut if present
+ \unskip
+ \setbox\indentationboxB\lastbox % get \indent generated box
+ \unskip
+ \else
+ \hskip\zeropoint % switch to horizontal mode
+ \unskip
+ \setbox\indentationboxA\lastbox % get \indent generated box
+ \setbox\indentationboxB\emptybox
+ \fi}
+
+\def\popindentation
+ {\box\indentationboxB\box\indentationboxA % put back the boxes
+ \egroup}
+
+%D The only complication lays in \type{\strut}. In \PLAIN\
+%D \TEX\ a \type{\strut} is defined as:
+%D
+%D \starttyping
+%D \def\strut%
+%D {\relax\ifmmode\copy\strutbox\else\unhcopy\strutbox\fi}
+%D \stoptyping
+%D
+%D But what is a \type{\strut}? Normally it's a rule of width
+%D zero, but when made visual, it's a rule and a negative skip.
+%D The mechanism for putting things in the margins described
+%D here cannot handle this situation very well. One
+%D characteristic of \type{\strut} is that the \type{\unhcopy}
+%D results in entering horizontal mode, which in return leads
+%D to some indentation.
+%D
+%D To serve our purpose a bit better, the macro \type{\strut}
+%D can be redefined as:
+%D
+%D \starttyping
+%D \def\strut
+%D {\relax\ifmmode\else\hskip0pt\fi\copy\strutbox}
+%D \stoptyping
+%D
+%D Or more compatible:
+%D
+%D \starttyping
+%D \def\strut
+%D {\relax\ifmmode
+%D \copy\strutbox
+%D \else
+%D \bgroup\setbox\strutbox=\normalhbox{\box\strutbox}\unhcopy\strutbox\egroup
+%D \fi}
+%D \stoptyping
+%D
+%D In \CONTEXT\ however we save some processing time by putting
+%D an extra \type{\hbox} around the \type{\strutbox}.
+
+% moved from page-lin.tex to here (due to visualization added
+% in august 2003)
+%
+% \unexpanded \def\crlf
+% {\ifhmode\unskip\else\strut\fi\ifcase\raggedstatus\hfil\fi\break}
+
+\unexpanded \def\crlf
+ {\ifhmode
+ \unskip
+ \prewordbreak\crlfplaceholder
+ \ifcase\raggedstatus\hfil\or\or\or\hfil\fi
+ \break
+ \else
+ \crlfplaceholder
+ \endgraf
+ \fi}
+
+\def\crlfplaceholder
+ {\strut}
+
+\def\settestcrlf
+ {\def\crlfplaceholder
+ {\hbox to \zeropoint
+ {\strut{\infofont\kern.25em}\lohi{\infofont CR}{\infofont LF}\hss}}}
+
+%D \starttyping
+%D % \setuplayout[gridgrid=yes] \showgrid
+%D
+%D \startbuffer
+%D test 1\crlf
+%D test 2\crlf
+%D
+%D \crlf test 3
+%D
+%D test 4\crlf
+%D test 5
+%D
+%D \crlf
+%D \crlf
+%D \crlf
+%D test 6
+%D \stopbuffer
+%D
+%D \hbox
+%D {\hsize5em
+%D \ruledvtop{\getbuffer}\enspace
+%D \ruledvtop{\showstruts\getbuffer}\enspace
+%D \hsize15em \setuptyping[before=,after=]%
+%D \ruledvtop{\typebuffer}}
+%D \stoptyping
+
+\def\justonespace
+ {\removelastspace\space} % \removeunwantedspaces\space
+
+\def\ignorecrlf
+ {\let\crlf\justonespace\let\\\crlf}
+
+\def\showstruts
+ {\setteststrut
+ \settestcrlf}
+
+\def\definehspace
+ {\dotripleempty\dodefinehspace}
+
+\def\dodefinehspace[#1][#2][#3]% #1 = optional namespace
+ {\ifthirdargument
+ \setvalue{\??hs#1:#2}{#3}%
+ \else
+ \setvalue{\??hs:#1}{#2}%
+ \fi}
+
+\unexpanded\def\hspace
+ {\dodoubleempty\dohspace}
+
+\def\dohspace[#1][#2]%
+ {\ifsecondargument
+ \dodohspace[#1][#2]%
+ \else\iffirstargument
+ \hspace[][#1]%
+ \else
+ \hspace[][\s!default]%
+ \fi\fi}
+
+\def\dodohspace[#1][#2]%
+ {\ifhmode
+ \removeunwantedspaces
+ \hskip\hspaceamount{#1}{#2}%
+ \expandafter\ignorespaces
+ \fi}
+
+\def\hspaceamount#1#2%
+ {\executeifdefined{\??hs#1:#2}{\executeifdefined{\??hs:#2}\zeropoint}}
+
+\definehspace [\v!small] [.25\emspaceamount]
+\definehspace [\v!medium] [.5\emspaceamount]
+\definehspace [\v!big] [1\emspaceamount]
+\definehspace [\v!normal] [1\spaceamount]
+\definehspace [\v!default] [\spaceamount]
+
+%D Taken from Taco's math module (cq. \AMS\ macros), but
+%D adapted to \type {\hspace}:
+
+\unexpanded\def\textormathspace #1#2#3{\ifmmode\mskip#1#2\else\kern #1\hspaceamount\empty{#3}\fi\relax}
+\unexpanded\def\breakabletextormathspace#1#2#3{\ifmmode\mskip#1#2\else\hskip#1\hspaceamount\empty{#3}\fi\relax}
+
+\newmuskip\hairmuskip \hairmuskip=.15mu
+
+\unexpanded\def\hairspace {\textormathspace+\hairmuskip{.5}}
+\unexpanded\def\thinspace {\textormathspace+\thinmuskip 1}
+\unexpanded\def\medspace {\textormathspace+\medmuskip 2}
+\unexpanded\def\thickspace {\textormathspace+\thickmuskip3}
+\unexpanded\def\neghairspace {\textormathspace-\thinmuskip{.5}}
+\unexpanded\def\negthinspace {\textormathspace-\thinmuskip 1}
+\unexpanded\def\negmedspace {\textormathspace-\medmuskip 2}
+\unexpanded\def\negthickspace{\textormathspace-\thickmuskip3}
+
+% needed for unicode:
+
+\unexpanded\def\breakablethinspace {\breakabletextormathspace+\thinmuskip 1}
+
+\unexpanded\def\twoperemspace {\hskip\dimexpr\emwidth/2\relax} % == \enspace
+\unexpanded\def\threeperemspace {\hskip\dimexpr\emwidth/3\relax}
+\unexpanded\def\fourperemspace {\hskip\dimexpr\emwidth/4\relax}
+\unexpanded\def\fiveperemspace {\hskip\dimexpr\emwidth/5\relax} % goodie
+\unexpanded\def\sixperemspace {\hskip\dimexpr\emwidth/6\relax}
+\unexpanded\def\figurespace {\begingroup\setbox\scratchbox\hbox{0}\hskip\wd\scratchbox\endgroup} % there is a command for this
+\unexpanded\def\punctuationspace {\begingroup\setbox\scratchbox\hbox{.}\hskip\wd\scratchbox\endgroup}
+\unexpanded\def\ideographicspace {\hskip\dimexpr\emwidth/1\relax}
+\unexpanded\def\ideographichalffillspace{\hskip\dimexpr\emwidth/2\relax}
+%unexpanded\def\nobreakspace {\penalty\plustenthousand\space}
+\unexpanded\def\nobreakspace {\penalty\plustenthousand\kern\interwordspace}
+\unexpanded\def\narrownobreakspace {\penalty\plustenthousand\thinspace}
+%unexpanded\def\zerowidthnobreakspace {\penalty\plustenthousand\hskip\zeropoint}
+\unexpanded\def\zerowidthnobreakspace {\penalty\plustenthousand\kern\zeropoint}
+\unexpanded\def\zerowidthspace {\hskip\zeropoint}
+
+\definehspace[.5][.1250\emspaceamount] % could also be [.1250\spaceamount]
+\definehspace[1] [.1667\emspaceamount]
+\definehspace[2] [.2222\emspaceamount]
+\definehspace[3] [.2777\emspaceamount]
+
+\let \, \thinspace
+\let \: \medspace
+\let \; \thickspace
+\let \! \negthinspace
+
+% this will become an alternative bunch of \blank settings
+%
+% \startlines
+% \scratchskip=.23pt plus 10pt minus 4pt \relax \number\scratchskip \space \the\scratchskip
+% \setsimplifiedskip\scratchskip1 \number\scratchskip \space \the\scratchskip
+% \setsimplifiedskip\scratchskip2 \number\scratchskip \space \the\scratchskip
+% \getsimplifiedskip\scratchskip\scratchcounter \number\scratchcounter
+% \stoplines
+%
+% \hrule width10cm \endgraf
+% \discardedskip{10pt}
+% \retainedskip {4pt}
+% \discardedskip {5pt}
+% \hrule width10cm \endgraf
+% \blockedskip{0pt}
+% \discardedskip{10pt}
+% \retainedskip {4pt}
+% \discardedskip {5pt}
+% \hrule width10cm \endgraf
+% \frozenskip {4cm}
+% \hrule width10cm \endgraf
+% \vskip10pt
+% \hrule width10cm \endgraf
+
+\newskip\simplifiedskip
+\newskip\simplifiedcounter
+
+\chardef\@@discardedskip1
+\chardef\@@retainedskip 2
+\chardef\@@forcedskip 3
+\chardef\@@blockedskip 4
+\chardef\@@frozenskip 5 % after heads, no break
+
+\def\setsimplifiedskip#1#2%
+ {#1\dimexpr(10\dimexpr(#1/10)) plus \gluestretch#1 minus \glueshrink#1\relax
+ \advance#1\numexpr(#2)sp\relax}
+
+\def\getsimplifiedskip#1#2%
+ {\simplifiedskip#1\relax
+ \ifzeropt\simplifiedskip % \ifdim\simplifiedskip=\zeropoint
+ #2\zerocount
+ \else
+ \simplifiedcounter\dimexpr10\dimexpr#1/10\relax\relax
+ \advance\simplifiedskip-\simplifiedcounter
+ #2\number\simplifiedskip\relax
+ \fi}
+
+\def\conditionalskip#1#2%
+ {\scratchskip#1\relax
+ \setsimplifiedskip\scratchskip#2\relax
+ \vskip\scratchskip\relax}
+
+\def\defrostskip
+ {\scratchskip\lastskip\penalty50000\normalvskip-\scratchskip\penalty50000\relax}
+
+\def\frozenskip#1%
+ {\endgraf
+ \ifvmode
+ \getsimplifiedskip\lastskip\scratchcounter
+ \ifdim\lastskip>#1\else
+ \defrostskip
+ \conditionalskip{#1}\@@frozenskip
+ \fi
+ \fi}
+
+\def\discardedskip#1%
+ {\endgraf
+ \ifvmode
+ \getsimplifiedskip\lastskip\scratchcounter
+ \ifcase\scratchcounter
+ \conditionalskip{#1}\@@discardedskip
+ \or % discard
+ \ifdim\lastskip>#1\else
+ \normalvskip-\lastskip
+ \conditionalskip{#1}\@@discardedskip
+ \fi
+ \or % retain
+ \ifdim\lastskip>#1\else
+ \normalvskip-\lastskip
+ \conditionalskip{#1}\@@discardedskip
+ \fi
+ \or % forced
+ \conditionalskip{#1}\@@discardedskip
+ \or % ignored
+ \or % frozen
+ \ifdim\lastskip>#1\else
+ \defrostskip
+ \conditionalskip{#1}\@@frozenskip
+ \fi
+ \else\ifdim#1=\zeropoint\else
+ \vskip#1\relax
+ \fi\fi
+ \fi}
+
+\def\retainedskip#1%
+ {\endgraf
+ \ifvmode
+ \getsimplifiedskip\lastskip\scratchcounter
+ \ifcase\scratchcounter
+ \conditionalskip{#1}\@@retainedskip
+ \or % discard
+ \normalvskip-\lastskip
+ \conditionalskip{#1}\@@retainedskip
+ \or % retain
+ \ifdim\lastskip>#1\else
+ \normalvskip-\lastskip
+ \conditionalskip{#1}\@@retainedskip
+ \fi
+ \or % forced
+ \conditionalskip{#1}\@@retainedskip
+ \or % ignored
+ \or % frozen
+ \ifdim\lastskip>#1\else
+ \defrostskip
+ \conditionalskip{#1}\@@frozenskip
+ \fi
+ \else\ifdim#1=\zeropoint\else
+ \vskip#1\relax
+ \fi\fi
+ \fi}
+
+\def\forcedskip#1%
+ {\endgraf
+ \ifvmode
+ \conditionalskip{#1}\@@forcedskip
+ \fi}
+
+\def\blockedskip#1%
+ {\endgraf
+ \ifvmode
+ \getsimplifiedskip\lastskip\scratchcounter
+ \ifcase\scratchcounter
+ \conditionalskip{#1}\@@blockedskip
+ \or % discard
+ \conditionalskip{#1}\@@blockedskip
+ \or % retain
+ \conditionalskip{#1}\@@blockedskip
+ \or % forced
+ \conditionalskip{#1}\@@blockedskip
+ \or % ignored
+ \or % frozen
+ \ifdim\lastskip>#1\else
+ \defrostskip
+ \conditionalskip{#1}\@@frozenskip
+ \fi
+ \else\ifdim#1=\zeropoint\else
+ \vskip#1\relax
+ \fi\fi
+ \fi}
+
+% beware, changing this will break some code (like pos/backgrounds)
+
+\newtoks\everyfirstparagraphintro
+\newtoks\everynextparagraphintro
+\newtoks\@@everyparagraphtoks
+
+\chardef\everyparagraphintro\zerocount
+
+\def\setupparagraphintro
+ {\dodoubleempty\dosetupparagraphintro}
+
+\def\dosetupparagraphintro[#1][#2]%
+ {\processallactionsinset
+ [#1]
+ [ \v!reset=>\global\chardef\everyparagraphintro\zerocount
+ \global\everyfirstparagraphintro\emptytoks
+ \global\everynextparagraphintro \emptytoks,
+ \v!first=>\global\chardef\everyparagraphintro\plusone
+ \doglobal\appendtoks#2\to\everyfirstparagraphintro,
+ \v!next=>\ifcase\everyparagraphintro\global\chardef\everyparagraphintro\plusone\fi
+ \doglobal\appendtoks#2\to\everynextparagraphintro,
+ \v!each=>\ifcase\everyparagraphintro\global\chardef\everyparagraphintro\plustwo\fi
+ \doglobal\appendtoks#2\to\everyfirstparagraphintro
+ \doglobal\appendtoks#2\to\everynextparagraphintro]}
+
+%D We can say:
+%D
+%D \starttyping
+%D \setupparagraphintro[first][\index{Knuth}]
+%D \stoptyping
+%D
+%D Maybe more convenient is:
+%D
+%D \starttyping
+%D \flushatparagraph{\index{Zapf}}
+%D \stoptyping
+
+\def\flushatparagraph#1%
+ {\global\chardef\everyparagraphintro\plusone
+ \global\appendtoks{#1}\to\everyfirstparagraphintro
+ \global\let\insertparagraphintro\doinsertparagraphintro}
+
+\def\doinsertparagraphintro % can be merged with the next
+ {\ifcase\everyparagraphintro\else\@EA\dodoinsertparagraphintro\fi}
+
+\def\dodoinsertparagraphintro
+ {\begingroup
+ \everypar\emptytoks
+ \ifcase\everyparagraphintro\relax
+ % no data
+ \@@everyparagraphtoks\emptytoks
+ \or
+ % first data
+ \global\chardef\everyparagraphintro\plustwo
+ \@@everyparagraphtoks\everyfirstparagraphintro
+ \global\everyfirstparagraphintro\emptytoks
+ \or
+ % next data
+ \@@everyparagraphtoks\everynextparagraphintro
+ \fi
+ \the\@@everyparagraphtoks
+ \global\let\insertparagraphintro\relax
+ \endgroup}
+
+\let\insertparagraphintro\relax
+
+%D \starttyping
+%D \setupparagraphintro[first][\hbox to 3.5em{\tt FIRST \hss}]
+%D \setupparagraphintro[first][\hbox to 3.5em{\tt TSRIF \hss}]
+%D \setupparagraphintro[next] [\hbox to 3.5em{\tt NEXT \hss}]
+%D \setupparagraphintro[next] [\hbox to 3.5em{\tt TXEN \hss}]
+%D \setupparagraphintro[each] [\hbox to 3.0em{\tt EACH \hss}]
+%D \setupparagraphintro[each] [\hbox to 3.0em{\tt HCEA \hss}]
+%D
+%D some paragraph \par
+%D some paragraph \par
+%D some paragraph \par
+%D
+%D \definelabel[parnumber]
+%D
+%D \setupparagraphintro[reset,each][\inleft{\slxx\parnumber}]
+%D
+%D some paragraph \par
+%D some paragraph \par
+%D some paragraph \par
+%D \stoptyping
+
+%D \macros
+%D {flushatnextpar}
+%D
+%D This macro collects data that will be flushed at the next paragraph.
+%D By using this macro you can avoid interfering nodes (writes, etc).
+
+\newbox\postponednodedata
+\let\flushpostponednodedata\relax
+
+\def\flushatnextpar
+ {\bgroup
+ \global\let\flushpostponednodedata\doflushpostponednodedata
+ \dowithnextbox{\global\setbox\postponednodedata\hbox{\box\postponednodedata\box\nextbox}\egroup}\hbox}
+
+\def\doflushpostponednodedata
+ {\ifvoid\postponednodedata\else
+ \hbox{\smashedbox\postponednodedata}%
+ \fi
+ \global\let\flushpostponednodedata\relax}
+
+% Very nasty but needed for margin stuff inside colored
+% paragraphs.
+
+\let\normalvadjust\vadjust
+
+% \def\graphicvadjust % bad, those low level color calls here
+% {\dowithnextboxcontent
+% {\forgetall}
+% {\normalvadjust
+% {\unvbox\nextbox
+% % corrects for one line paragraphs
+% \nointerlineskip
+% \kern-\struttotal
+% \nointerlineskip
+% \verticalstrut}}%
+% \vbox}
+
+\def\graphicvadjust % nasty bidi handling
+ {\dowithnextboxcontent
+ {\forgetall}
+ {\vadjust{\vbox attr \graphicvadjustattribute \plusone
+ {\unvbox\nextbox
+ % corrects for one line paragraphs
+ \nointerlineskip
+ \kern-\struttotal
+ \nointerlineskip
+ \verticalstrut}}}%
+ \vbox}
+
+%D This works only in a properly strutted line, and is meant
+%D for deeply burried operations, like in heads.
+
+\def\fakedvadjust
+ {\dowithnextbox
+ {\setbox\nextbox\hbox{\llap{\lower\strutdepth\box\nextbox}}%
+ \smashedbox\nextbox}%
+ \vtop}
+
+\def\flexiblespaceamount#1#2#3%
+ {#1\interwordspace
+ \!!plus#2\interwordstretch
+ \!!minus#3\interwordshrink}
+
+\def\fixedspaceamount#1%
+ {#1\interwordspace}
+
+%D This is a dangerous feature because it makes the \TEX\ source
+%D less portable, i.e. any parser now needs to apply exactly the
+%D same algorithm when it wants to interpret the source. We
+%D strongly recommend not to mention this feature in manuals! It's
+%D provided for users who are hooked to such a mechanism.
+%D
+%D \starttyping
+%D \setupsorting[logo][next=\autoinsertnextspace] \logo[TEX]{\TeX}
+%D
+%D bla bla \TEX bla bla \TEX (bla) bla (\TEX)
+%D \stoptyping
+
+\def\autoinsertnextspace{\futurelet\nexttoken\doautoinsertnextspace}
+
+\def\doautoinsertnextspace % slightly extended version of a user supplied macro
+ {\ifx\nexttoken \bgroup\else \ifx\nexttoken\begingroup\else
+ \ifx\nexttoken \egroup\else \ifx\nexttoken \endgroup\else
+ \ifx\nexttoken \/\else \ifx\nexttoken /\else \ifx\nexttoken ~\else
+ \ifx\nexttoken \ \else \ifx\nexttoken \blankspace\else \ifx\nexttoken \space\else
+ \ifx\nexttoken .\else \ifx\nexttoken ,\else
+ \ifx\nexttoken !\else \ifx\nexttoken ?\else
+ \ifx\nexttoken :\else \ifx\nexttoken ;\else
+ \ifx\nexttoken '\else \ifx\nexttoken "\else
+ \ifx\nexttoken )\else \ifx\nexttoken -\else \ifx\nexttoken |\else
+ \ifx\nexttoken \%\else \ifx\nexttoken \&\else
+ \space
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
+
+% moved from page-lin
+
+\def\installspacehandler#1#2% needs to set \obeyedspace
+ {\setvalue{\??sr#1}{#2}}
+
+\installspacehandler \v!on
+ {\obeyspaces
+ \def\obeyedspace{\mathortext\normalspace{\dontleavehmode{\tt\controlspace}}}%
+ \let\ =\obeyedspace}
+
+\installspacehandler \v!yes
+ {\obeyspaces
+ \def\obeyedspace{\mathortext\normalspace{\dontleavehmode \normalspace }}%
+ \let\ =\obeyedspace}
+
+\installspacehandler \v!off
+ {\normalspaces
+ \let\obeyedspace\normalspace
+ \let\ =\normalspace}
+
+\installspacehandler \v!fixed
+ {\obeyspaces
+ \def\obeyedspace{\mathortext\normalspace{\dontleavehmode\fixedspace}}%
+ \let\ =\obeyedspace}
+
+\def\activatespacehandler#1%
+ {\executeifdefined{\??sr#1}{\activatespacehandler\v!off}}
+
+% moved from page-lin
+
+%D When spacing is active we need to handle commands in
+%D a special way:
+%D
+%D \starttyping
+%D \setuplines[space=on]
+%D
+%D \startlines
+%D Let's talk about this{\ttsl\gobbleoneargument or}that.
+%D \stoplines
+%D
+%D \startlines
+%D Let's talk about this{\getvalue{ttsl}or}that.
+%D \stoplines
+%D \stoptyping
+%D
+%D One can indent in several ways:
+%D
+%D \starttyping
+%D \setupindenting[medium] \setuplines[indenting=odd] % no yes odd even
+%D
+%D \startlines
+%D first
+%D second
+%D third
+%D fourth
+%D \stoplines
+%D \stoptyping
+
+\def\setuplines
+ {\dodoubleargument\getparameters[\??rg]}
+
+\def\startlines
+ {\@@rgbefore
+ \pushmacro\checkindentation
+ \whitespace
+ %\page[\v!preference]} gaat mis na koppen, nieuw: later \nobreak
+ \begingroup
+ \setupindenting[\@@rgindenting]%
+ \typesettinglinestrue
+ \setupwhitespace[\v!none]%
+ \obeylines
+ \ignorespaces
+ \gdef\afterfirstobeyedline % tzt two pass, net als opsomming
+ {\gdef\afterfirstobeyedline
+ {\nobreak
+ \doifnot\@@rgoption\v!packed{\global\let\afterfirstobeyedline\relax}}}%
+ \def\obeyedline
+ {\par
+ \futurelet\next\dobetweenthelines}%
+ \activatespacehandler\@@rgspace
+ \GotoPar}
+
+\def\stoplines
+ {\endgroup
+ \popmacro\checkindentation
+ \@@rgafter}
+
+\def\dobetweenthelines
+ {\doifmeaningelse\next\obeyedline
+ {\@@rginbetween}
+ {\afterfirstobeyedline}}
+
+\setuplines
+ [\c!option=,
+ \c!before=\blank,
+ \c!after=\blank,
+ \c!inbetween=\blank,
+ \c!indenting=\v!no,
+ \c!space=\v!default]
+
+\def\emptylines
+ {\dosingleempty\doemptylines}
+
+\def\doemptylines[#1]%
+ {\endgraf\dorecurse{\iffirstargument#1\else3\fi}\crlf}
+
+\setupwhitespace
+ [\v!none]
+
+% still old-fashioned
+
+\indenting
+ [\v!never]
+
+\setupindenting
+ [\v!none]
+
+\setupblank
+ [\v!standard,
+ \v!big]
+
+\defineblank[\v!default] [\currentblank]
+\defineblank[\v!before] [\v!default]
+\defineblank[\v!inbetween][\v!default]
+\defineblank[\v!after] [\v!before]
+
+\setupinterlinespace
+ [\c!minheight=0pt, % only special purpose
+ \c!mindepth=0pt, % only special purpose
+ \c!height=.72,
+ \c!depth=.28,
+ \c!top=1.0,
+ \c!bottom=0.4,
+ \c!distance=1pt,
+ \c!line=2.8ex,
+ \c!stretch=0]
+
+\setupnarrower
+ [\c!before=\endgraf,
+ \c!after=\endgraf,
+ \c!left=1.5em,
+ \c!right=1.5em,
+ \c!middle=1.5em]
+
+\setuptolerance
+ [\v!horizontal,\v!verystrict]
+
+\setuptolerance
+ [\v!vertical,\v!strict]
+
+\setupalign
+ [\v!bottom,
+ \v!width]
+
+\setupspacing
+ [\v!packed]
+
+\protect \endinput
\dorecurse{2}{
$2^{2^{2^{2}}}$ $2_{2_{2_{2}}}^{2^{2^{2^{2^{2^{2^{2^{2^{2}}}}}}}}}$
@@ -365,5 +4275,3 @@
\vskip10pt
fifth
}
-
-\stoptext
diff --git a/Master/texmf-dist/tex/context/base/core-spa.tex b/Master/texmf-dist/tex/context/base/core-spa.tex
deleted file mode 100644
index fae78327f03..00000000000
--- a/Master/texmf-dist/tex/context/base/core-spa.tex
+++ /dev/null
@@ -1,4474 +0,0 @@
-%D \module
-%D [ file=core-spa,
-%D version=1997.03.31,
-%D title=\CONTEXT\ Core Macros,
-%D subtitle=Spacing,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{Context Spacing Macros}
-
-% to be sorted out: dependencies, order of initialization / also some dutch code here
-
-\unprotect
-
-% interfacing mkii/mkiv
-
-\ifx\mksetupgridsnapping \undefined \let\mksetupgridsnapping \relax \fi
-\ifx\mkenablegridsnapping \undefined \let\mkenablegridsnapping \relax \fi
-\ifx\mkdisablegridsnapping\undefined \let\mkdisablegridsnapping\relax \fi
-
-% some will move to core-var
-
-\newif \ifgridsnapping
-\newif \iffuzzyvskip
-\let \fuzzyvskip \gobbleoneargument
-\let \removelastfuzzyvskip \relax
-
-\let \startbaselinecorrection \relax
-\let \stopbaselinecorrection \relax
-\let \baselinecorrection \relax
-\let \offbaselinecorrection \relax
-
-\appendtoks \spacing 1\to \everybodyfont
-\appendtoks \presetnormallineheight \to \everybodyfont
-\appendtoks \setnormalbaselines \to \everybodyfont % check if redundant
-\appendtoks \setstrut \to \everybodyfont % check if redundant
-\appendtoks \settopskip \to \everybodyfont
-\appendtoks \setmaxdepth \to \everybodyfont
-%appendtoks \spacing 1\to \everybodyfont
-\appendtoks \simplesetupindenting \to \everybodyfont
-\appendtoks \simplesetupblank \to \everybodyfont
-\appendtoks \simplesetupwhitespace \to \everybodyfont
-%appendtoks \checknotes \to \everybodyfont % not
-\appendtoks \simplesetupspacing \to \everybodyfont % nieuw
-\appendtoks \setrelativeinterlinespace \to \everybodyfont
-
-\appendtoks \updateraggedskips \to \everyfontswitch % under test
-\prependtoks \let\par\endgraf \to \everypagebody % see \fillinline
-\appendtoks \simplesetupspacing \to \everydefinedfont
-
-% if you want to hyphenate the first word of a paragraph ... \appendtoks\hskip0pt\to\everypar
-
-\def\stelfactorenin
- {\simplesetupwhitespace
- \simplesetupblank
- \settopskip
- \setmaxdepth}
-
-\def\softbreak
- {\relax\ifhmode\hskip\parfillskip\break\fi}
-
-\let\poplastnode\relax
-
-\def\pushlastnode
- {\ifdim\lastskip=\zeropoint
- \ifnum\lastpenalty=\zerocount
- \ifnum\lastkern=\zerocount
- \let\poplastnode\relax
- \else
- \edef\poplastnode{\kern\the\lastkern\relax}\kern-\lastkern % untested
- \fi
- \else
- \edef\poplastnode{\penalty\the\lastpenalty\relax}\nobreak % untested
- \fi
- \else
- \edef\poplastnode{\vskip\the\lastskip\relax}\vskip-\lastskip % \removelastskip
- \fi}
-
-%D The dreadful sequence \type {\bgroup} \unknown\
-%D \type {\carryoverpar} \unknown\ \type {\egroup} is needed
-%D when for instance sidefloats are used in combination with
-%D something that starts with a group. This is because
-%D otherwise the indentation as set (by the output routine)
-%D inside the group are forgotten afterwards. (I must
-%D not forget its existence).
-
-\global\let\carriedoverpar\relax
-
-\def\carryoverpar#1%
- {\expanded % \scratchtoks{#1}%
- {\noexpand#1% \the\scratchtoks
- \hangindent\the\hangindent
- \hangafter \the\hangafter
- \parskip \the\parskip
- \leftskip \the\leftskip
- \rightskip \the\rightskip}}
-
-%D A quick way to determine left|/|middle|/|right states
-%D (experimental).
-
-\setvalue{\??as\v!left }{0}
-\setvalue{\??as\v!middle}{1}
-\setvalue{\??as\v!right}{2}
-
-\def\setalignmentswitch#1%
- {\chardef\alignmentswitch0\csname\??as#1\endcsname\relax}
-
-%D There are two ways to influence the interline spacing. The
-%D most general and often most consistent way is using
-%D
-%D \showsetup{setupinterlinespace}
-%D
-%D For instance
-%D
-%D \starttyping
-%D \setupinterlinespace[line=2.8ex]
-%D \stoptyping
-%D
-%D This setting adapts itself to the bodyfontsize, while for
-%D 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
-%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}.
-
-\newif\iflocalinterlinespace
-
-% font-ini
-
-\ifx\bodyfontinterlinespecs\undefined
-
- \let\bodyfontinterlinespecs\empty
- \let\bodyfontinterlinespace\empty
-
-\fi
-
-\def\presetnormallineheight
- {\edef\normallineheight{\@@itline}%
-% done elsewhere : \spacing\!!plusone % new per 10/08/2004, else problems in otr / !! needed
- \iflocalinterlinespace \else
- \doifdefined\bodyfontinterlinespecs
- {\doifsomething\bodyfontinterlinespace
- {\edef\normallineheight{\bodyfontinterlinespace}}}%
- \fi}
-
-\def\setupspecifiedinterlinespace[#1]%
- {\getparameters[\??it][#1]%
- \scratchdimen0\@@itheight\points
- \advance\scratchdimen 0\@@itdepth\points
- \ifdim\scratchdimen>\onepoint
- \showmessage\m!layouts{10}{\@@itheight,\@@itdepth}%
- \let\@@itheight\strutheightfactor
- \let\@@itdepth \strutdepthfactor
- \else
- \let\strutheightfactor\@@itheight
- \let\strutdepthfactor \@@itdepth
- \fi
- \let\minimumstrutheight \@@itminheight
- \let\minimumstrutdepth \@@itmindepth
- \let\minimumlinedistance\@@itdistance
- \let\normallineheight \@@itline % let ! ! ! ! ! ivm ex
- \doifelse\@@ittop\v!height % new, topskip does more bad than good
- {\let\topskipfactor \@@itheight}
- {\let\topskipfactor \@@ittop }%
- \let\maxdepthfactor \@@itbottom
- \let\baselinegluefactor \@@itstretch
- \setfontparameters % redundant, can be \setstrut, test first
- \updateraggedskips} % yes indeed
-
-% \let\currentrelativeinterlinespace\empty
-%
-% \def\setuprelativeinterlinespace[#1]%
-% {\processallactionsinset
-% [#1]
-% [ \v!on=>\oninterlineskip,
-% \v!off=>\offinterlineskip,
-% \v!reset=>\let\currentrelativeinterlinespace\empty
-% \setfontparameters,% just \setstrut, test first
-% \s!unknown=>\assignvalue{#1}\currentrelativeinterlinespace{1.00}{1.25}{1.50}%
-% \spacing\currentrelativeinterlinespace]}
-
-% \setupinterlinespace[big] \switchtobodyfont[11pt] -> forgotten
-% \setupinterlinespace[auto,big] \switchtobodyfont[11pt] -> remembered
-
-\let\currentrelativeinterlinespace\empty
-
-\def\setuprelativeinterlinespace[#1]%
- {\processallactionsinset
- [#1]
- [ \v!on=>\oninterlineskip,
- \v!off=>\offinterlineskip,
- \v!reset=>\let\currentrelativeinterlinespace\empty
- \let\setrelativeinterlinespace\relax
- \setfontparameters,
- \v!auto=>\let\setrelativeinterlinespace\dosetrelativeinterlinespace,
- \s!unknown=>\assignvalue\commalistelement\currentrelativeinterlinespace{1.00}{1.25}{1.50}%
- \spacing\currentrelativeinterlinespace]}
-
-\def\dosetrelativeinterlinespace
- {\ifx\currentrelativeinterlinespace\empty\else
- \spacing\currentrelativeinterlinespace
- \fi}
-
-\let\setrelativeinterlinespace\relax
-
-% \appendtoks \setrelativeinterlinespace \to \everybodyfont
-
-\def\complexsetupinterlinespace[#1]% \commalistelement ipv #1
- {\doifassignmentelse{#1}\setupspecifiedinterlinespace\setuprelativeinterlinespace[#1]}
-
-\def\setuplocalinterlinespace[#1]%
- {\localinterlinespacetrue
- \setupinterlinespace[#1]%
- \localinterlinespacefalse}
-
-\def\simplesetupinterlinespace
- {\localinterlinespacetrue
- \setfontparameters
- \updateraggedskips % funny one here
- \localinterlinespacefalse}
-
-\definecomplexorsimple\setupinterlinespace
-
-% In earlier versions \type{\bigskipamount} was
-% \type{\ht\strutbox} and the stretch was plus or minus
-% \type{.4\dp\strutbox}. Don't ask me why. The most recent
-% implementation is based on a user supplied distance, which
-% is by default \type{.75\normalskipamount} where
-% \type{\normalskipamount} equals the current baseline
-% distance.
-
-% \lineskiplimit = -\maxdimen -> freezes baselineskip
-
-% can be conditionals
-
-\newif\ifblanknowhite \blanknowhitefalse
-\newif\ifblankindeed \blankindeedfalse
-\newif\ifblankreset \blankresetfalse
-\newif\ifblankdisable \blankdisablefalse
-\newif\ifblankflexible \blankflexibletrue
-\newif\ifblankouter
-\newif\ifblankforce
-\newif\ifblankgoback
-
-\newskip\blankskip \blankskip=\bigskipamount
-\newskip\blankskipamount
-
-\def\skipfactor {.75}
-\def\skipgluefactor{.25}
-
-\def\normalskipamount
- {\openlineheight
- \ifgridsnapping \else \ifblankflexible
- \!!plus \skipgluefactor\openlineheight
- \!!minus\skipgluefactor\openlineheight
- \fi \fi
- \relax}
-
-\def\linedistance {\normalskipamount}
-\def\appliedblankskip{\skipfactor\linedistance}
-\def\lastblankskip {\blankskip}
-\def\currentblank {\v!big}
-\def\oldprevdepth {\prevdepth}
-\def\newprevdepth {-1001pt}
-\def\mindimen {1sp} % was: 0.00002pt
-
-\newif\iflocalblankfixed
-\newif\iflocalblankflexible
-
-\def\geenblanko{\removelastskip} % will become obsolete
-
-%%%% pas op, wordt ook in core-pos gebruikt
-
-\def\doassignsomeskip#1\to#2% ook nog \v!halfline+fuzzysnap
- {\doifelse{#1}\v!line
- {#2\openlineheight}
- {\ifgridsnapping
- \assigndimension{#1}{#2}%
- {.25\openlineheight}{.5\openlineheight}\openlineheight
- \else
- \assigndimension{#1}{#2}%
- \smallskipamount\medskipamount\bigskipamount
- \fi}}
-
-
-\def\addblankskip#1#2#3{\global\advance\blankskip#1\ifgridsnapping#3\else#2\fi}
-
-\def\defineblankmethod[#1]#2{\setvalue{\??bo\??bo#1}{#2}}
-
-\defineblankmethod [\v!big] {\addblankskip+\bigskipamount \openlineheight}
-\defineblankmethod [-\v!big] {\addblankskip-\bigskipamount \openlineheight}
-\defineblankmethod [\v!medium] {\addblankskip+\medskipamount {.5\openlineheight}}
-\defineblankmethod [-\v!medium] {\addblankskip-\medskipamount {.5\openlineheight}}
-\defineblankmethod [\v!small] {\addblankskip+\smallskipamount{.25\openlineheight}}
-\defineblankmethod [-\v!small] {\addblankskip-\smallskipamount{.25\openlineheight}}
-\defineblankmethod [\v!white] {\addblankskip+\parskip \openlineheight}
-\defineblankmethod [-\v!white] {\addblankskip-\parskip \openlineheight}
-\defineblankmethod [\v!line] {\addblankskip+\openlineheight \openlineheight}
-\defineblankmethod [-\v!line] {\addblankskip-\openlineheight \openlineheight}
-
-\defineblankmethod [\v!formula] {\global\advance\blankskip\medskipamount}
-\defineblankmethod [\v!nowhite] {\global\blanknowhitetrue}
-\defineblankmethod [\v!disable] {\global\blankdisabletrue}
-\defineblankmethod [\v!force] {\global\blankforcetrue}
-\defineblankmethod [\v!outer] {\ifvmode\ifinner\blankoutertrue\fi\fi}
-\defineblankmethod [\v!reset] {\global\blankresettrue}
-\defineblankmethod [\v!flexible] {\global\localblankflexibletrue}
-\defineblankmethod [\v!fixed] {\global\localblankfixedtrue}
-\defineblankmethod [\v!back] {\global\blankgobacktrue} % {\geenblanko}
-\defineblankmethod [\v!halfline] {\ifgridsnapping\global\fuzzyvskiptrue\fi
- \global\advance\blankskip .5\lineheight}
-
-\defineblankmethod [\v!none] {\global\blankresettrue}
-\defineblankmethod [\v!joinedup] {\ifvmode\nointerlineskip\fi}
-
-\defineblankmethod [\v!always] {\redowhitespace} % experimental
-
-% happens often, so we speed this up:
-%
-% \defineblankmethod [2*\v!line] {\addblankskip+{2\openlineheight}{2\openlineheight}}
-% \defineblankmethod [2*\v!big] {\addblankskip+{2\bigskipamount }{2\openlineheight}}
-%
-% no, with 2\whatever we loose the stretch and shrink! Taco's alternative:
-
-\defineblankmethod
- [2*\v!line]
- {\addblankskip+\openlineheight\openlineheight
- \addblankskip+\openlineheight\openlineheight}
-
-\defineblankmethod
- [2*\v!big]
- {\addblankskip+\bigskipamount\openlineheight
- \addblankskip+\bigskipamount\openlineheight}
-
-\def\doblank#1%
- {\edefconvertedargument\ascii{#1}%
- \ifx\ascii\empty\else
- \ifcsname\??bo\??bo\ascii\endcsname % internal def
- \csname\??bo\??bo\ascii\endcsname
- \else\ifcsname\??bo\ascii\endcsname % user def / slow
- \@EA\rawprocesscommalist\@EA[\csname\??bo\ascii\endcsname]\doblank\relax
- \else
- \dorepeatwithcommand[#1]\redoblank
- \fi\fi
- \fi}
-
-\def\redoblank#1%
- {\edefconvertedargument\ascii{#1}%
- \ifx\ascii\empty\else
- \ifcsname\??bo\??bo\ascii\endcsname % internal def
- \csname\??bo\??bo\ascii\endcsname
- \else\ifcsname\??bo\ascii\endcsname % user def / slow
- \@EA\rawprocesscommalist\@EA[\csname\??bo\ascii\endcsname]\doblank\relax
- \else
- \global\advance\blankskip#1\relax
- \fi\fi
- \fi}
-
-\unexpanded\def\blank % the \relax is definitely needed due to the many \if's
- {\relax\complexorsimple\doblank}
-
-\def\complexdoblank
- {\flushnotes
- \ifmmode
- \@EA\nocomplexdoblank
- \else
- \ifopelkaar
- \ifinpagebody
- \@EA\@EAEAEA\@EA\docomplexdoblank
- \else
- \@EA\@EAEAEA\@EA\nocomplexdoblank
- \fi
- \else
- \@EAEAEA\docomplexdoblank
- \fi
- \fi}
-
-\def\nocomplexdoblank[#1]%
- {% evt blokkeerfalse
- \ifmmode\else\par\fi}
-
-% Overloaded in cont-new!
-
-\newsignal\noblanksignal
-
-% \def\doinhibitblank
-% {\kern\noblanksignal}
-
-% \def\inhibitblank% the fast, local way
-% {\endgraf\ifvmode\prevdepth\newprevdepth\fi}
-
-% \def\docomplexdoblank[#1]% pas op \relax's zijn nodig ivm volgende \if
-% {\global\blankresetfalse
-% \global\blankdisablefalse
-% \global\blanknowhitefalse
-% \global\localblankflexiblefalse
-% \global\localblankfixedfalse
-% \global\blankskip\zeropoint
-% \global\blankforcefalse
-% \global\blankgobackfalse
-% \blankouterfalse
-% \expanded{\rawprocesscommalist[#1]}\doblank
-% \ifdim\blankskip=\zeropoint\relax
-% \iflocalblankflexible
-% \doglobal\advance\blankskip \currentblank
-% \else\iflocalblankfixed
-% \doglobal\advance\blankskip \currentblank
-% \fi\fi
-% \fi
-% \ifblankouter
-% \else
-% \par
-% \ifvmode
-% \ifblankgoback
-% \removelastskip
-% \fi
-% \ifblankforce
-% % dit gaat mis in pos fonts
-% % \ifdim\prevdepth>\zeropoint\else ...
-% % -1000pt signals top of page or column (\ejectcolumn)
-% \bgroup\forgeteverypar\verticalstrut\egroup\kern-\struttotal
-% \fi
-% \ifblankdisable
-% \global\blankindeedfalse
-% \ifgridsnapping
-% \ifdim\prevdepth<\zeropoint
-% % brrr
-% \else
-% % dirty trick: smaller blanks are ignored after
-% % a larger one, so 10 lines is probably safe; first make
-% % sure that we honor penalties
-% \scratchcounter\lastpenalty
-% % now comes the trick (cross our fingers that this works
-% % well in multi columns; maybe an ifinner test is needed
-% % \vskip-10\lineheight
-% % \ifnum\scratchcounter=\zerocount \else \penalty\lastpenalty \fi
-% % \vskip 10\lineheight
-% % allas, this leads to overfull pages, so we try this:
-% \kern-\noblanksignal
-% \ifnum\scratchcounter=\zerocount
-% \else
-% \penalty\lastpenalty
-% \fi
-% \kern\noblanksignal
-% % end-of-dirty-trick
-% \fi
-% \else
-% \ifdim\prevdepth<\zeropoint
-% % brrr
-% \else
-% % ensure at least a proper prevdepth, this should be
-% % an option
-% \vskip-\prevdepth
-% \vskip\strutdepth
-% \prevdepth\strutdepth
-% \fi
-% % the old crappy piece of code
-% \edef\oldprevdepth{\the\prevdepth}%
-% \prevdepth\newprevdepth
-% \fi
-% \else
-% \global\blankindeedtrue
-% \fi
-% \ifblankreset
-% \global\blankindeedtrue
-% \ifgridsnapping
-% % let's play safe and not fool around with the depth, if
-% % only because it took a lot of effort to sort out the grid
-% % stuff in the first place
-% \else
-% \ifdim\prevdepth=\newprevdepth
-% \prevdepth\oldprevdepth
-% \fi
-% \fi
-% \fi
-% \ifblankindeed
-% \ifdim1\lastskip<1\blankskip\relax
-% % else when \blanko[2*groot] + \blanko[3*groot] with parskip
-% % equaling 1*groot, gives a groot=\parskip so adding a small
-% % value makes it distinguishable; can also be done at parskip
-% % setting time (better)
-% \global\advance\blankskip \mindimen\relax % = skip
-% % test this on 2* + 3* and parskip groot
-% \ifblanknowhite
-% \global\advance\blankskip -\parskip
-% \else
-% \ifdim\lastskip=\parskip
-% \else % force this due to previous comment
-% \ifdim\parskip>\zeropoint\relax
-% \ifdim\blankskip<\parskip\relax
-% \global\blankskip\zeropoint
-% \else
-% \global\advance\blankskip -\parskip
-% \fi
-% \fi
-% \fi
-% \fi
-% \ifblankflexible \else
-% \blankskip1\blankskip
-% \fi
-% \iflocalblankfixed
-% \blankskip1\blankskip
-% \fi
-% \iflocalblankflexible
-% \blankskip1\blankskip
-% \!!plus\skipgluefactor\blankskip
-% \!!minus\skipgluefactor\blankskip
-% \fi
-% \ifdim\lastkern=\noblanksignal % controled and grid
-% \global\blankindeedfalse
-% \else\ifgridsnapping\else\ifdim\prevdepth=\newprevdepth
-% \global\blankindeedfalse
-% \fi\fi\fi
-% \ifblankindeed
-% \iffuzzyvskip
-% \removelastfuzzyvskip
-% \fuzzyvskip\blankskip\relax
-% \else
-% \removelastskip
-% \vskip\blankskip\relax
-% \fi
-% \fi
-% \else
-% \iffuzzyvskip
-% \removelastfuzzyvskip
-% \fuzzyvskip\blankskip\relax
-% \else
-% % new, test this on pascal
-% \ifdim\blankskip<\zeropoint
-% \advance\blankskip-\lastskip
-% \removelastskip
-% \ifdim\blankskip>\zeropoint
-% \vskip\blankskip
-% \else
-% \vskip\zeropoint
-% \fi
-% \else
-% % also new
-% \ifdim\blankskip=\zeropoint
-% \ifblanknowhite
-% \geenwitruimte
-% \fi
-% \fi
-% \fi
-% \fi
-% \fi
-% \fi
-% \fi
-% \fi
-% \global\fuzzyvskipfalse
-% \presetindentation}
-
-% goback was broken:
-
-% \def\doinhibitblank
-% {\kern\noblanksignal}
-
-% \def\inhibitblank% the fast, local way
-% {\endgraf\ifvmode\prevdepth\newprevdepth\fi}
-
-% problem: we cannot look back in the mvl so we need 3 kinds of signals
-
-\def\noblankpsignal{1010101}
-
-\def\inhibitgridblank % was doinhibitblank
- {\ifvmode\else\endgraf\fi
- \ifvmode
- \ifnum\lastpenalty<10000
- \kern-\noblanksignal % new
- \kern \noblanksignal
- \else
- \penalty\noblankpsignal
- \fi
- \fi}
-
-\def\inhibittextblank % was inhibitblank
- {\endgraf
- \ifvmode
- \prevdepth\newprevdepth
- \fi}
-
-% new macro
-%
-% \def\inhibitblank % need some work
-% {\endgraf
-% \ifvmode
-% \ifgridsnapping
-% \inhibitgridblank
-% \else
-% % this one spoils the grid
-% \inhibittextblank
-% \fi
-% \fi}
-
-\def\doinhibitblank{\inhibitgridblank}
-\def\inhibitblank {\inhibittextblank}
-
-% will become obsolete
-
-\ifx\undefined\savedlastskip \newskip \savedlastskip \fi
-\ifx\undefined\savedlastpenalty \newcount\savedlastpenalty \fi
-
-% beware, prevdepth can have funny values (e.g. mvl value when in box)
-
-\def\docomplexdoblank[#1]% pas op \relax's zijn nodig ivm volgende \if
- {\global\blankresetfalse
- \global\blankdisablefalse
- \global\blanknowhitefalse
- \global\localblankflexiblefalse
- \global\localblankfixedfalse
- \global\blankforcefalse
- \global\blankgobackfalse
- \blankouterfalse
- \global\blankskip\zeropoint
- \expanded{\rawprocesscommalist[#1]}\doblank
- \ifdim\blankskip=\zeropoint\relax
- \iflocalblankflexible
- \doglobal\advance\blankskip \currentblank
- \else\iflocalblankfixed
- \doglobal\advance\blankskip \currentblank
- \fi\fi
- \fi
- \ifblankouter
- % do nothing
- \else
- \par
- \ifvmode
- \ifblankgoback
- \ifdim\lastskip>\zeropoint \vskip-\lastskip \fi
- \savedlastskip\zeropoint
- \else\ifdim\lastskip>\zeropoint
- \savedlastskip\lastskip
- \else % todo: lastnode, dan namelijk geen skip !
- \savedlastskip\zeropoint
- \fi\fi
- \ifblankforce
- % dit gaat mis in pos fonts
- % \ifdim\prevdepth>\zeropoint\else ...
- % -1000pt signals top of page or column (\ejectcolumn)
- \bgroup\forgeteverypar\verticalstrut\egroup\kern-\struttotal
- \savedlastskip\zeropoint
- \fi
- \savedlastpenalty\lastpenalty % hm, now it gets lost
- \ifblankdisable
- \global\blankindeedfalse % keep this, i.e. disable current too
- \ifgridsnapping
- \ifdim\prevdepth<\zeropoint
- % brrr
- \else
- % dirty trick: smaller blanks are ignored after a
- % larger one, so 10 lines is probably safe; we need
- % to make sure that we honor penalties; here comes the
- % trick (cross our fingers that this works well in
- % multi columns; maybe an ifinner test is needed
- % \scratchcounter\lastpenalty
- % \vskip-10\lineheight
- % \ifnum\scratchcounter=\zerocount \else \penalty\lastpenalty \fi
- % \vskip 10\lineheight
- % alas, this leads to overfull pages, so we try this:
- \inhibitgridblank
- \fi
- \else
- \ifdim\prevdepth<\zeropoint
- % brrr
- \else
- % ensure at least a proper prevdepth, this should be
- % an option
- \vskip-\prevdepth
- \vskip\strutdepth
- \prevdepth\strutdepth
- \fi
- % the old crappy piece of code
- \edef\oldprevdepth{\the\prevdepth}%
- \prevdepth\newprevdepth % == \inhibittextblank
- \fi
- \else
- \global\blankindeedtrue
- \fi
- \ifblankreset
- \global\blankindeedtrue
- \ifgridsnapping
- % let's play safe and not fool around with the depth, if
- % only because it took a lot of effort to sort out the grid
- % stuff in the first place
- \else
- \ifdim\prevdepth=\newprevdepth
- \prevdepth\oldprevdepth
- \fi
- \fi
- \fi
- \ifblankindeed
- \ifdim1\savedlastskip<1\blankskip\relax
- % else when \blank[2*groot] + \blank[3*groot] with parskip
- % equaling 1*groot, gives a groot=\parskip so adding a small
- % value makes it distinguishable; can also be done at parskip
- % setting time (better)
- \global\advance\blankskip \mindimen\relax % = skip
- % test this on 2* + 3* and parskip groot
- \ifblanknowhite
- \global\advance\blankskip -\parskip
- \else
- \ifdim\savedlastskip=\parskip
- \else % force this due to previous comment
- \ifdim\parskip>\zeropoint\relax
- \ifdim\blankskip<\parskip\relax
- \global\blankskip\zeropoint
- \else
- \global\advance\blankskip -\parskip
- \fi
- \fi
- \fi
- \fi
- \ifblankflexible \else
- \blankskip1\blankskip
- \fi
- \iflocalblankfixed
- \blankskip1\blankskip
- \fi
- \iflocalblankflexible
- \blankskip1\blankskip
- \!!plus \skipgluefactor\blankskip
- \!!minus\skipgluefactor\blankskip
- \fi
- \ifdim\lastkern=\noblanksignal\relax % controlled and grid
- \global\blankindeedfalse
- \else\ifnum\savedlastpenalty=\noblankpsignal\relax % controlled and grid
- \global\blankindeedfalse
- \else\ifgridsnapping\else\ifdim\prevdepth=\newprevdepth
- \global\blankindeedfalse
- \fi\fi\fi\fi
- \ifblankindeed
- \iffuzzyvskip
- \removelastfuzzyvskip
- \fuzzyvskip\blankskip\relax
- \else
- \relax\ifdim\savedlastskip=\zeropoint\else
- \vskip-\savedlastskip
- \fi
- \vskip\blankskip\relax
- \fi
- \fi
- \else
- \iffuzzyvskip
- \removelastfuzzyvskip
- \fuzzyvskip\blankskip\relax
- \else
- % new, test this on pascal
- \ifdim\blankskip<\zeropoint
- \relax\ifdim\savedlastskip=\zeropoint\else
- \advance\blankskip-\savedlastskip
- \vskip-\savedlastskip
- \fi
- \ifdim\blankskip>\zeropoint
- \vskip\blankskip
- \else
- \vskip\zeropoint
- \fi
- \else
- % also new
- \ifdim\blankskip=\zeropoint
- \ifblanknowhite
- \nowhitespace
- \fi
- \fi
- \fi
- \fi
- \fi
- \fi
- \fi
- \fi
- \global\fuzzyvskipfalse
- \presetindentation}
-
-%D For a long time we had:
-%D
-%D \starttyping
-%D \def\simpledoblank%
-%D {\doifelse{\currentwhitespace}{\v!geen}
-%D {\blank[\currentblank]}
-%D {\blank[\currentwhitespace]}}
-%D \stoptyping
-%D
-%D But Berend de Boer wanted more control, so now we have:
-
-\def\simpledoblank % ...
- {\doifelse\currentwhitespace\v!none
- {\blank[\currentblank]}
- {\blank[\s!default]}}
-
-%D Another useful definition would be:
-%D
-%D \starttyping
-%D \defineblank
-%D [\s!default]
-%D [\v!groot]
-%D \stoptyping
-
-\def\dosetupblank#1% amount are an plain inheritance
- {\bigskipamount#1\relax
- \ifblankflexible \else
- \bigskipamount1\bigskipamount
- \fi
- \medskipamount \bigskipamount \divide\medskipamount \plustwo
- \smallskipamount\bigskipamount \divide\smallskipamount\plusfour}%
-
-\def\complexsetupblank[#1]% more \let's -> this also wil become installable
- {\ifgridsnapping
- \blankflexiblefalse
- \else
- \ExpandFirstAfter\processallactionsinset
- [#1]
- [ \v!flexible=>\blankflexibletrue,
- \v!fixed=>\blankflexiblefalse]%
- \fi
- \ExpandFirstAfter\processallactionsinset
- [#1]
- [ \v!flexible=>\dosetupblank\appliedblankskip,
- \v!fixed=>\dosetupblank\appliedblankskip,
- \v!line=>\edef\appliedblankskip{\linedistance}%
- \dosetupblank\appliedblankskip,
- \v!halfline=>\scratchskip.5\linedistance
- \edef\appliedblankskip{\the\scratchskip}%
- \dosetupblank\appliedblankskip,
- \v!big=>\ifgridsnapping
- \edef\appliedblankskip{\linedistance}%
- \dosetupblank\appliedblankskip
- \fi
- \let\currentblank\v!big,
- \v!medium=>\let\currentblank\v!medium,
- \v!small=>\let\currentblank\v!small,
- \v!global=>\let\currentblank\v!global,
- \v!normal=>\dosetupblank\appliedblankskip,
- \v!standard=>\edef\appliedblankskip{\skipfactor\linedistance}%
- \dosetupblank\appliedblankskip,
- \s!default=>\dosetupblank\appliedblankskip,
- \s!unknown=>\let\appliedblankskip\commalistelement
- \dosetupblank\appliedblankskip]%
- \simplesetupwhitespace}
-
-% \definecomplexorsimpleempty\setupblank
-%
-% speed gain: 60 sec -> 30 sec
-
-\definecomplexorsimple\setupblank
-
-\def\simplesetupblank % == snelle \setupblank[\s!default]
- {\ifgridsnapping
- \blankflexiblefalse
- \fi
- \dosetupblank\appliedblankskip
- % \let\deblanko\v!big
- \simplesetupwhitespace}
-
-\def\restorestandardblank% \v!standard
- {\edef\appliedblankskip{\skipfactor\linedistance}%
- \dosetupblank\appliedblankskip
- }%\let\deblanko\v!big}
-
-\def\dodefineblank[#1][#2]%
- {\def\docommand##1{\setvalue{\??bo##1}{#2}}%
- \processcommalist[#1]\docommand}
-
-\def\defineblank
- {\dodoubleargument\dodefineblank}
-
-\def\savecurrentblank
- {\edef\restorecurrentblank
- {\bigskipamount\the\bigskipamount
- \medskipamount\the\medskipamount
- \smallskipamount\the\smallskipamount
- \noexpand\def\noexpand\currentblank{\currentblank}%
- \ifblankflexible
- \noexpand\blankflexibletrue
- \else
- \noexpand\blankflexiblefalse
- \fi}}
-
-%D Now.
-
-\defineblank [\s!default] [\v!white]
-\defineblank [\v!height] [\strutheight]
-\defineblank [\v!depth] [\strutdepth]
-
-% old implementation
-%
-% \let\currentindentation=\empty
-%
-% \newdimen\ctxparindent
-%
-% \newif\ifindentfirstparagraph % \indentfirstparagraphtrue
-%
-% \def\presetindentation
-% {\doifoutervmode{\ifindentfirstparagraph\else\noindentation\fi}}
-%
-% \definecomplexorsimple\setupindenting
-%
-% \def\complexsetupindenting[#1]%
-% {\processallactionsinset
-% [#1]
-% [ \v!first=>\indentfirstparagraphtrue,
-% \v!next=>\indentfirstparagraphfalse,
-% \s!default=>\simplesetupindenting,
-% \s!unknown=>\edef\currentindentation{\commalistelement}%
-% \simplesetupindenting]}
-%
-% \def\simplesetupindenting
-% {\assigndimension\currentindentation\ctxparindent{1em}{1.5em}{2em}%
-% \parindent\ctxparindent\relax}
-%
-% \def\indenting % watch out: \dodo and no \do
-% {\dosingleargument\dodoindenting}
-%
-% \def\dodoindenting[#1]% oeps, we needed a commalist handler here!
-% {\edef\currentindenting{#1}%
-% \processcommacommand[#1]\dododoindenting}
-%
-% \def\dododoindenting#1%
-% {\executeifdefined{\??in:#1}\donothing}
-%
-% \let\currentindenting\empty
-%
-% \def\defineindentingmethod[#1]#2%
-% {\setvalue{\??in:#1}{#2}}
-%
-% \defineindentingmethod [\v!no] {\parindent\ctxparindent\noindent}
-% \defineindentingmethod [\v!not] {\parindent\ctxparindent\noindent}
-%
-% \defineindentingmethod [\v!first] {\indentfirstparagraphtrue}
-% \defineindentingmethod [\v!next] {\indentfirstparagraphfalse}
-%
-% \defineindentingmethod [\v!yes] {\parindent\ctxparindent\relax} % no \indent !
-% \defineindentingmethod [\v!always] {\parindent\ctxparindent\relax} % no \indent !
-%
-% \defineindentingmethod [\v!never] {\parindent\zeropoint\relax} % no \indent !
-%
-% \def\noindenting{\indenting[\v!no,\v!next]} % was \nietinspringen
-% \def\doindenting{\indenting[\v!yes,\v!first]} % was \welinspringen
-%
-% \def\dochecknextindentation#1% internal one
-% {\checknextindentation[\getvalue{#1\c!indentnext}]}
-%
-% \def\checknextindentation[#1]%
-% {\processaction[#1][%\v!keep=>,
-% \v!yes=>\doindentation,
-% \v!no=>\noindentation,
-% \v!auto=>\autoindentation]}
-%
-% \def\doindentation% too simple
-% {\gdef\checkindentation{\global\indentationtrue}}
-%
-% \ifx\autoindentation\undefined
-% \let\autoindentation\relax
-% \fi
-%
-% \newif\ifindentation \indentationtrue % documenteren, naar buiten
-%
-% \let\checkindentation=\relax
-%
-% \def\donoindentation
-% {\ifdim\parindent=\zeropoint \else
-% \bgroup \setbox\scratchbox\lastbox \egroup
-% \fi}
-%
-% \def\noindentation % made global
-% {\ifinpagebody \else
-% \global\indentationfalse
-% \gdef\checkindentation
-% {\donoindentation
-% \gdef\checkindentation{\global\indentationtrue}}%
-% \fi}
-%
-% \def\nonoindentation % bv bij floats
-% {\ifinpagebody \else
-% \global\indentationtrue
-% \gdef\checkindentation{\global\indentationtrue}%
-% \fi}
-%
-% \def\indentation
-% {\ifvmode \ifdim\parindent=\zeropoint \else
-% % was : \hskip\parindent
-% % can be: \indent
-% % but we test:
-% \noindent\hskip\parindent
-% \fi \fi}
-
-\let\currentindentation\empty % amount/keyword
-% \let\normalindentation \empty % used for reinstating normal indentation
-\let\currentindenting \empty % method
-
-\newdimen\ctxparindent
-
-\newif\ifindentfirstparagraph % \indentfirstparagraphtrue
-
-\chardef\indentingtoggle\zerocount
-
-%D After a blank or comparable situation (left side floats) we
-%D need to check if the next paragraph has to be indented.
-
-\def\presetindentation
- {\doifoutervmode{\ifindentfirstparagraph\else\noindentation\fi}}
-
-%D This sets up the (normally) global indentation behavior as well
-%D as the amounts.
-
-\definecomplexorsimple\setupindenting
-
-% \def\complexsetupindenting[#1]%
-% {\edef\currentindenting{#1}%
-% \indentfirstparagraphtrue
-% \parindent\ctxparindent
-% \chardef\indentingtoggle\zerocount
-% \processcommalist[#1]\docomplexsetupindenting
-% \ifindentfirstparagraph\else\noindentation\fi % added
-% \toggleindentation}
-
-\indentfirstparagraphtrue
-\parindent\ctxparindent
-\chardef\indentingtoggle\zerocount
-
-% \newtoks\savedeverypar \savedeverypar\everypar
-% \def\restoreeverypar{\everypar\savedeverypar}
-
-% we need a better everypar model: for each option a switch, which we
-% set to false with \forgetall and can enable when needed (context 4);
-% that way we can control the order of execution of options
-
-\def\checkeverypar % currently a hack
- {\ifzeropt\parindent\else
- \doifsometokselse\everypar\donothing{\appendtoks\checkindentation\to\everypar}%
- \fi}
-
-\def\complexsetupindenting[#1]%
- {\edef\currentindenting{#1}%
- \doifsomething\currentindenting % handy when a parameter is passed
- {% not here: \indentfirstparagraphtrue
- % not here: \parindent\ctxparindent
- % not here: \chardef\indentingtoggle\zerocount
- % we use commacommand in order to catch #1 being a command (expanded parameter)
- \processcommacommand[\currentindenting]\docomplexsetupindentingA % catch small, medium, etc
- \processcommacommand[\currentindenting]\docomplexsetupindentingB % catch rest
- \checkeverypar % only when non-empty #1
- \ifindentfirstparagraph\else\noindentation\fi % added
- \toggleindentation}}
-
-\def\docomplexsetupindentingA#1%
- {\edefconvertedargument\!!stringa{#1}%
- \doifundefined{\??in:\!!stringa}%
- {\edef\currentindentation{#1}%
- \let\normalindentation\currentindentation
- \simplesetupindenting}}
-
-\def\docomplexsetupindentingB#1%
- {\edefconvertedargument\!!stringa{#1}% catch #1=\somedimen
- \executeifdefined{\??in:\!!stringa}\donothing}
-
-\def\simplesetupindenting % empty case, a it strange, needed this way?
- {\assigndimension\currentindentation\ctxparindent{1em}{1.5em}{2em}}
-
-\def\indenting % kind of obsolete
- {\dosingleargument\complexsetupindenting}
-
-% use \noindentation to suppress next indentation
-
-\def\defineindentingmethod[#1]#2%
- {\setvalue{\??in:#1}{#2}}
-
-\defineindentingmethod [\v!no] {\parindent\zeropoint}% was: \ctxparindent\noindent}
-\defineindentingmethod [\v!not] {\parindent\zeropoint}% was: \ctxparindent\noindent}
-
-\defineindentingmethod [\v!first] {\indentfirstparagraphtrue}
-\defineindentingmethod [\v!next] {\indentfirstparagraphfalse}
-
-\defineindentingmethod [\v!yes] {\parindent\ctxparindent\relax} % no \indent !
-\defineindentingmethod [\v!always] {\parindent\ctxparindent\relax} % no \indent !
-
-\defineindentingmethod [\v!never] {\parindent\zeropoint\relax % no \indent !
- \chardef\indentingtoggle\zerocount}
-
-\defineindentingmethod [\v!odd] {\chardef\indentingtoggle\plusone}
-\defineindentingmethod [\v!even] {\chardef\indentingtoggle\plustwo}
-
-\defineindentingmethod [\v!normal] {\ifx\normalindentation\empty\else
- \let\currentindentation\normalindentation
- \simplesetupindenting
- \fi}
-
-\defineindentingmethod [\v!reset] {\indentfirstparagraphtrue
- \parindent\zeropoint
- \chardef\indentingtoggle\zerocount}
-
-\def\noindenting{\indenting[\v!no, \v!next ]}
-\def\doindenting{\indenting[\v!yes,\v!first]}
-
-%D This one sets up the local indentation behaviour (i.e. either or not
-%D a next paragraph will be indented).
-
-\def\dochecknextindentation#1% internal one
- {\checknextindentation[\getvalue{#1\c!indentnext}]}
-
-\def\checknextindentation[#1]%
- {\processaction
- [#1]
- [%\v!keep=>,
- \v!yes=>\doindentation,
- \v!no=>\noindentation,
- \v!auto=>\autoindentation]}
-
-%D Here come the handlers.
-
-\newif\ifindentation \indentationtrue % documenteren, naar buiten
-
-\let\checkindentation\relax
-
-\ifx\autoindentation\undefined \let\autoindentation\relax \fi % hook
-
-\def\doindentation
- {\gdef\checkindentation{\global\indentationtrue}}
-
-\def\noindentation % made global
- {\ifinpagebody \else
- \global\indentationfalse
- \gdef\checkindentation
- {\donoindentation
- \gdef\checkindentation{\global\indentationtrue}}%
- \fi}
-
-\def\nonoindentation % bv bij floats
- {\ifinpagebody \else
- \global\indentationtrue
- \gdef\checkindentation{\global\indentationtrue}%
- \fi}
-
-\def\donoindentation
- {\ifdim\parindent=\zeropoint \else
- \bgroup \setbox\scratchbox\lastbox \egroup
- \fi}
-
-\def\indentation
- {\ifvmode \ifdim\parindent=\zeropoint \else
- % was : \hskip\parindent
- % can be: \indent
- % but we test:
- \noindent\hskip\parindent
- \fi \fi}
-
-\def\toggleindentation
- {\ifcase\indentingtoggle
- % nothing
- \or
- \notoggleindentation
- \or
- \dotoggleindentation
- \fi}
-
-\def\dokillindentation
- {\gdef\checkindentation{\global\indentationfalse\donoindentation}}
-
-\def\dotoggleindentation
- {\gdef\checkindentation{\global\indentationfalse\notoggleindentation\donoindentation}}
-
-\def\notoggleindentation
- {\gdef\checkindentation{\global\indentationtrue\dotoggleindentation}}
-
-\appendtoks
- \pushmacro\checkindentation
- \pushmacro\ifindentation
-\to \everypushsomestate
-
-\appendtoks
- \popmacro\ifindentation
- \popmacro\checkindentation
-\to \everypopsomestate
-
-% we need to save the state if we want to adapt behaviour to empty lines
-%
-% \def\setlasthvmode
-% {\global\chardef\savedhvmode\ifhmode\plusone\else\ifvmode\plustwo\else\zerocount\fi\fi}
-%
-% \def\resetlasthvmode
-% {\global\chardef\savedhvmode\zerocount}
-%
-% \chardef\savedhvmode\zerocount
-
-% This is a user requested hack (using the auto-hook).
-
-\chardef\recheckindentationmode\zerocount
-
-\def\dontrechecknextindentation
- {\global\chardef\recheckindentationmode\zerocount}
-
-\def\dorechecknextindentation
- {\ifcase\recheckindentationmode
- % nothing
- \or
- \dontrechecknextindentation
- \expandafter\doautoindentation
- \fi}
-
-\def\doautoindentation
- {\doifnextcharelse\par\donothing\noindentation}
-
-\def\autoindentation
- {\global\chardef\recheckindentationmode\plusone}
-
-%D An example of usage:
-%D
-%D \starttyping
-%D \setupindenting[small,yes]
-%D
-%D \setupitemize [indentnext=auto]
-%D \setuptyping [indentnext=auto]
-%D \setupformulas[indentnext=auto]
-%D
-%D \input tufte
-%D
-%D \startitemize
-%D \item itemize
-%D \stopitemize
-%D \input tufte
-%D
-%D \startitemize
-%D \item itemize
-%D \stopitemize
-%D
-%D \input tufte
-%D
-%D \startitemize
-%D \item itemize
-%D \stopitemize
-%D
-%D \page
-%D
-%D \input tufte
-%D
-%D \starttyping
-%D verbatim
-%D \stoptyping
-%D \input tufte
-%D
-%D \starttyping
-%D verbatim
-%D \stoptyping
-%D
-%D \input tufte
-%D
-%D \starttyping
-%D verbatim
-%D \stoptyping
-%D
-%D \page
-%D
-%D \input tufte
-%D
-%D \startformula
-%D a = b
-%D \stopformula
-%D \input tufte
-%D
-%D \startformula
-%D a = b
-%D \stopformula
-%D
-%D \input tufte
-%D
-%D \startformula
-%D a = b
-%D \stopformula
-
-% \frenchspacing leidt soms tot afbreken tussen -, vandaar
-% de variant \newfrenchspacing.
-
-\def\frenchspacing {\setfrenchspacing{1000}}
-\def\newfrenchspacing{\setfrenchspacing{1050}}
-\def\nonfrenchspacing{\resetfrenchspacing}
-
-\def\definespacingmethod[#1]#2{\setvalue{\??sg\??sg#1}{#2}}
-
-\definespacingmethod[\v!packed]{\newfrenchspacing}
-\definespacingmethod[\v!broad ]{\nonfrenchspacing}
-
-\def\complexsetupspacing[#1]%
- {\executeifdefined{\??sg\??sg#1}\relax
- \updateraggedskips}
-
-\def\simplesetupspacing
- {\updateraggedskips}
-
-\definecomplexorsimple\setupspacing
-
-\unexpanded\def\nonbreakablespace{\penalty\plustenthousand\ }
-
-\letcatcodecommand \ctxcatcodes `\~ \nonbreakablespace
-
-\def\space { }
-\def\removelastspace{\ifhmode\unskip\fi}
-\def\nospace {\removelastspace\ignorespaces}
-
-% in tables we need:
-%
-% \def\fixedspace {\hskip.5em\relax}
-%
-% but, since not all fonts have .5em digits:
-
-\unexpanded\def\fixedspace
- {\setbox\scratchbox\normalhbox{\mathortext{0}{0}}%
- \hskip\wd\scratchbox\relax}
-
-\def\fixedspaces
- {\letcatcodecommand \ctxcatcodes `\~ \fixedspace}
-
-\def\removeunwantedspaces
- {\ifhmode % we also need to unskip 0pt skips
- \unskip\unskip\unskip\unskip\unskip
- \unskip\unskip\unskip\unskip\unskip
- \fi}
-
-% still not fixed in aleph / luatex
-%
-% \beginETEX \lastnodetype
-%
-% \def\removeunwantedspaces
-% {\ifhmode \ifnum\lastnodetype=\@@gluenode
-% \unskip \@EAEAEA\removeunwantedspaces
-% \fi \fi}
-%
-% \endETEX
-
-%D For old time sake, will disappear soon.
-
-\let\hardespatie\fixedspace
-\let\geenspatie \nospace
-
-% \startbuffer
-% \startlines \tt \fixedspaces
-% 0~1~~2~~~3~~~~4~~~~~5
-% 0~~~~~~~~~~~~~~~~~~~5
-% $0~1~~2~~~3~~~~4~~~~~5$
-% $0~~~~~~~~~~~~~~~~~~~5$
-% \stoplines
-%
-% \starttabulate[|~|]
-% \NC 0~1~~2~~~3~~~~4~~~~~5 \NC \NR \NC 0~~~~~~~~~~~~~~~~~~~5 \NC \NR
-% \NC $0~1~~2~~~3~~~~4~~~~~5$ \NC \NR \NC $0~~~~~~~~~~~~~~~~~~~5$ \NC \NR
-% \stoptabulate
-%
-% \starttable[||]
-% \NC 0~1~~2~~~3~~~~4~~~~~5 \NC \AR \NC 0~~~~~~~~~~~~~~~~~~~5 \NC \AR
-% \NC $0~1~~2~~~3~~~~4~~~~~5$ \NC \AR \NC $0~~~~~~~~~~~~~~~~~~~5$ \NC \AR
-% \stoptable
-% \stopbuffer
-%
-% \setupbodyfont[cmr] \getbuffer
-% \setupbodyfont[lbr] \getbuffer
-
-\def\packed
- {\nointerlineskip}
-
-\def\godown[#1]%
- {\relax
- \ifhmode\endgraf\fi
- \ifvmode\nointerlineskip\vskip#1\relax\fi}
-
-%D A couple of plain macros:
-
-\ifx\thinspace\undefined
-
- \def\thinspace {\kern .16667em }
- \def\negthinspace{\kern-.16667em }
- \def\enspace {\kern .5em }
-
-\fi
-
-\ifx\quad\undefined
-
- \def\enskip{\hskip.5em\relax}
- \def\quad {\hskip 1em\relax}
- \def\qquad {\hskip 2em\relax}
-
-\fi
-
-\let\emspace\quad
-
-\ifx\smallskip\undefined
-
- \def\smallskip{\vskip\smallskipamount}
- \def\medskip {\vskip\medskipamount}
- \def\bigskip {\vskip\bigskipamount}
-
-\fi
-
-\ifx\allowbreak\undefined
-
- \def\break {\penalty\ifhmode-\plustenthousand\else\ejectpenalty\fi}
- \def\nobreak {\penalty \plustenthousand}
- \def\allowbreak{\penalty \zeropoint}
- \def\filbreak {\par\vfil\penalty-200\vfilneg}
- \def\goodbreak {\par\penalty-500 }
-
-\fi
-
-%D Made slightly more readable:
-
-\ifx\vglue\undefined
-
- \def\vglue {\afterassignment\dovglue\scratchskip=}
- \def\hglue {\afterassignment\dohglue\scratchskip=}
- \def\topglue{\nointerlineskip\vglue-\topskip\vglue}
-
- \def\dovglue
- {\par
- \scratchdimen\prevdepth
- \hrule\!!height\zeropoint
- \nobreak\vskip\scratchskip
- \prevdepth\scratchdimen}
-
- \def\dohglue
- {\leavevmode
- \scratchcounter\spacefactor
- \vrule\!!width\zeropoint
- \nobreak\hskip\scratchskip
- \spacefactor\scratchcounter}
-
-\fi
-
-\ifx\eject\undefined
-
- \def\eject{\par\break}
-
-\fi
-
-\ifx\supereject\undefined
-
- \def\supereject{\par\penalty\superpenalty}
-
-\fi
-
-\ifx\dosupereject\undefined
-
- \def\dosupereject
- {\ifnum\insertpenalties>\z@ % something is being held over
- \line{}
- \kern-\topskip
- \nobreak
- \vfill\supereject
- \fi}
-
-\fi
-
-%D We adapt plain's \type {\removelastskip} a bit:
-
-\ifx\removelastskip\undefined
-
- \def\removelastskip
- {\ifvmode \ifdim\lastskip=\zeropoint \else
- \vskip-\lastskip
- \fi \fi}
-
-\fi
-
-\ifx\smallbreak\undefined
-
-\def\smallbreak
- {\par
- \ifdim\lastskip<\smallskipamount
- \removelastskip
- \penalty-50
- \smallskip
- \fi}
-
-\def\medbreak
- {\par
- \ifdim\lastskip<\medskipamount
- \removelastskip
- \penalty-100
- \medskip
- \fi}
-
-\def\bigbreak
- {\par
- \ifdim\lastskip<\bigskipamount
- \removelastskip
- \penalty-200
- \bigskip
- \fi}
-
-\fi
-
-\newskip\ctxparskip \ctxparskip\zeropoint
-
-\newconditional \flexiblewhitespace \settrue\flexiblewhitespace
-
-\def\blankokleinmaat {\smallskipamount}
-\def\blankomiddelmaat {\medskipamount}
-\def\blankogrootmaat {\bigskipamount}
-\def\currentwhitespace {\zeropoint}
-
-\definecomplexorsimple\setupwhitespace
-
-\def\simplesetupwhitespace
- {\doifnot\currentwhitespace\v!none\dosetupwhitespace}
-
-\def\complexsetupwhitespace[#1]%
- {\doifelsenothing{#1}
- {\simplesetupwhitespace}
- {\edef\currentwhitespace{#1}%
- \dosetupwhitespace}}
-
-\def\dosetupwhitespace
- {\processcommacommand[\currentwhitespace]\dowhitespacemethod
- \dodosetupwhitespace}
-
-\chardef\baselinegridmode=0 % option in layout / 1=permit_half_lines
-
-\def\dodosetupwhitespace
- {\ifgridsnapping
- \setfalse\flexiblewhitespace
- \ctxparskip1\ctxparskip
- \ifdim\ctxparskip>\zeropoint
- \ifcase\baselinegridmode
- \ctxparskip\baselineskip % normal ! ! ! ! !!
- \or
- \ifdim\scratchdimen=\baselineskip % maybe range
- \ctxparskip\baselineskip % normal ! ! ! ! !!
- \else
- \ctxparskip\numexpr\ctxparskip/\dimexpr.5\lineheight\relax\relax\dimexpr.5\lineheight\relax
- \fi
- \else
- \ctxparskip\baselineskip % normal ! ! ! ! !!
- \fi
- \fi
- \else
- \ifconditional\flexiblewhitespace \else \ctxparskip1\ctxparskip \fi
- \fi
- \parskip\ctxparskip}
-
-\definesystemvariable {ws} % whitespace
-
-\def\definewhitespacemethod[#1]#2{\setvalue{\??ws\??ws#1}{#2}}
-
-\definewhitespacemethod [\v!fix] {}
-\definewhitespacemethod [\v!fixed] {\setfalse\flexiblewhitespace}
-\definewhitespacemethod [\v!flexible] {\settrue\flexiblewhitespace}
-\definewhitespacemethod [\v!line] {\ctxparskip \baselineskip}
-\definewhitespacemethod [\v!halfline] {\ctxparskip.5\baselineskip}
-\definewhitespacemethod [\v!none] {\ctxparskip \zeropoint}
-\definewhitespacemethod [\v!big] {\ctxparskip \bigskipamount}
-\definewhitespacemethod [\v!medium] {\ctxparskip \medskipamount}
-\definewhitespacemethod [\v!small] {\ctxparskip \smallskipamount}
-
-\definewhitespacemethod [\s!default] {\simplesetupwhitespace} % {\stelwitruimteopnieuwin}
-
-\def\dowhitespacemethod#1%
- {\executeifdefined{\??ws\??ws#1}{\ctxparskip#1}\relax}
-
-\def\nowhitespace
- {\ifdim\parskip>\zeropoint\relax
- \ifdim\lastskip=-\parskip
- \else
- \vskip-\parskip
- \fi
- \fi}
-
-\def\nowhitespaceunlessskip
- {\ifdim\lastskip>\zeropoint \else
- \nowhitespace
- \fi}
-
-\def\redowhitespace
- {\ifdim\lastskip>-\parskip \else
- \vskip\parskip
- \fi}
-
-\def\savecurrentwhitespace
- {\edef\restorecurrentwhitespace
- {\ctxparskip\the\ctxparskip
- \parskip\the\parskip
- \noexpand\def\noexpand\currentwhitespace{\currentwhitespace}%
- \ifconditional\flexiblewhitespace
- \noexpand\settrue\flexiblewhitespace
- \else
- \noexpand\setfalse\flexiblewhitespace
- \fi}}
-
-% deze variant is nodig binnen \startopelkaar
-% steeds testen:
-%
-% \hoofdstuk{..}
-% \plaatslijst[..]
-% \hoofdstuk{..}
-% \input tufte
-%
-% met/zonder witruimte
-
-\def\whitespace
- {\par
- \ifdim\parskip>\zeropoint\relax
- %\ifdim\lastskip>\parskip \else
- % \removelastskip interferes with blanko blokkeer en klein
- \vskip\parskip
- %\fi
- \fi}
-
-\def\nonoblanko[#1]%
- {\par}
-
-\def\noblanko
- {\dosingleempty\nonoblanko}
-
-% De onderstaande macro handelt ook de situatie dat er geen
-% tekst tussen \start ... \stop is geplaatst. Daartoe wordt de
-% laatste skip over de lege tekst heen gehaald. Dit komt goed
-% van pas bij het plaatsen van (mogelijk lege) lijsten.
-
-\newif\ifopelkaar
-
-\newsignal \noparskipsignal % \def\noparskipsignal {0.00001pt}
-\def\lastdoneparskip {0pt}
-
-\def\startpacked
- {\dosingleempty\dostartpacked}
-
-\def\dostartpacked[#1]% nesting afvangen
- {\par
- \ifvmode
- \edef\lastdoneparskip {\the\lastskip}%
- \edef\lastdoneprevdepth{\the\prevdepth}% zeer recent toegevoegd
- \ifdim\prevdepth=-\thousandpoint % toegevoegd omdat binnen
- \else % een vbox een extra skip
- \whitespace % ongewenst is; dit kan
- \baselinecorrection %% zie in \placeregister[n=1]
- \vskip\noparskipsignal % waarschijnlijk ook in
- \fi % blanko blokkeer
- \bgroup
- \doifelse{#1}\v!blank
- \opelkaarfalse
- \opelkaartrue
- \blank[\v!disable] % dit is nog niet ok, gaat fout
- \setupwhitespace[\v!none] % bovenin vtop (dwz, baseline)
- \fi}
-
-\def\stoppacked
- {\par
- \ifvmode
- \egroup
- \ifdim\lastskip=\noparskipsignal\relax
- \removelastskip
- \nowhitespace
- \vskip-\lastdoneparskip
- \vskip+\lastdoneparskip
- \prevdepth-\lastdoneprevdepth % zeer recent toegevoegd
- \fi
- \fi}
-
-\def\startunpacked
- {\blank
- \leavevmode
- \bgroup}
-
-\def\stopunpacked
- {\egroup
- \blank}
-
-% De onderstaande macro's moeten nog eens nader worden uitgewerkt.
-% Ze spelen een rol bij de spatiering rond omkaderde teksten
-% en/of boxen zonder diepte.
-
-\def\toonregelcorrectie{\showbaselinecorrection}
-\def\regelcorrectie {\baselinecorrection}
-
-% \prevdepth crosses pageboundaries!
-%
-% todo: a version that works ok inside a box
-
-\let\doaroundlinecorrection\relax
-
-\def\startlinecorrection
- {\dodoubleempty\dostartlinecorrection}
-
-\def\dostartlinecorrection[#1][#2]% #2 gobbles spaces
- {\bgroup
- \processaction
- [#1]
- [ \v!blank=>\let\doaroundlinecorrection\blank,
- \s!default=>\let\doaroundlinecorrection\relax,
- \s!unknown=>{\def\doaroundlinecorrection{\blank[#1]}}]%
- \doaroundlinecorrection
- \startbaselinecorrection
- \offbaselinecorrection
- \ignorespaces}
-
-\def\stoplinecorrection
- {\stopbaselinecorrection
- \doaroundlinecorrection
- \egroup}
-
-\def\correctwhitespace
- {\dowithnextbox
- {\startbaselinecorrection
- \flushnextbox
- \stopbaselinecorrection}%
- \vbox}
-
-\def\verticalstrut {\normalvbox{\hsize\zeropoint\forgetall\strut}}
-\def\horizontalstrut{\normalhbox {\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
-%
-% \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
-%
-% \leaveoutervmode
-
-% 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.
-
-\newdimen\strutdimen
-\newdimen\lineheight
-\newdimen\openlineheight
-\newdimen\openstrutheight
-\newdimen\openstrutdepth
-\newdimen\topskipgap
-\newdimen\struttotal
-
-\def\strutheightfactor {.72}
-\def\strutdepthfactor {.28}
-
-\def\baselinefactor {2.8}
-\def\baselinegluefactor {0}
-
-\def\minimumstrutheight {0pt}
-\def\minimumstrutdepth {0pt}
-
-\def\normallineheight {\baselinefactor ex}
-\def\minimumlinedistance {\lineskip}
-
-\def\strutheight {0pt}
-\def\strutdepth {0pt}
-\def\strutwidth {0pt}
-
-\def\spacingfactor {1}
-
-\def\topskipfactor {1.0}
-\def\maxdepthfactor {0.5}
-
-\def\systemtopskipfactor {\topskipfactor}
-\def\systemmaxdepthfactor {\maxdepthfactor}
-
-% De onderstaande definitie wordt in de font-module overruled
-
-\ifx\globalbodyfontsize\undefined
- \newdimen\globalbodyfontsize
- \globalbodyfontsize=12pt
-\fi
-
-\ifx\normalizedbodyfontsize\undefined
- \def\normalizedbodyfontsize{12pt}
-\fi
-
-% door een \dimen. Dit is geen probleem omdat (1) de default
-% korpsgrootte 12pt is en (2) de fonts nog niet geladen zijn
-% en de instellingen bij het laden nogmaals plaatsvinden.
-
-% \def\topskipcorrection
-% {\ifdim\topskip>\openstrutheight
-% % == \vskip\topskipgap
-% \vskip\topskip
-% \vskip-\openstrutheight
-% \fi
-% \verticalstrut
-% \vskip-\struttotal}
-
-\def\topskipcorrection
- {\simpletopskipcorrection
- \vskip-\struttotal
- \verticalstrut}
-
-\def\simpletopskipcorrection
- {\ifdim\topskip>\openstrutheight
- % == \vskip\topskipgap
- \vskip\topskip
- \vskip-\openstrutheight
- \fi}
-
-% \def\settopskip % the extra test is needed for the lbr family
-% {\topskip\systemtopskipfactor\globalbodyfontsize
-% \ifgridsnapping \else
-% \ifr@ggedbottom\!!plus5\globalbodyfontsize\fi
-% \fi
-% \relax % the skip
-% \topskipgap\topskip
-% \advance\topskipgap -\openstrutheight\relax
-% \ifdim\topskip<\strutheightfactor\openlineheight
-% \topskip\strutheightfactor\openlineheight\relax
-% \fi}
-
-\def\settopskip % the extra test is needed for the lbr family
- {\topskip\systemtopskipfactor\globalbodyfontsize
- \ifgridsnapping \else
- \ifr@ggedbottom\!!plus5\globalbodyfontsize\fi
- \fi
- \relax % the skip
- \topskipgap\topskip
- \advance\topskipgap -\openstrutheight\relax
-\ifdim\minimumstrutheight>\zeropoint
- \ifdim\topskip<\minimumstrutheight
- \topskip\minimumstrutheight\relax
- \fi
-\else
- \ifdim\topskip<\strutheightfactor\openlineheight
- \topskip\strutheightfactor\openlineheight\relax
- \fi
-\fi}
-
-\def\setmaxdepth
- {\maxdepth\systemmaxdepthfactor\globalbodyfontsize}
-
-\def\normalbaselines
- {\baselineskip \normalbaselineskip
- \lineskip \normallineskip
- \lineskiplimit\normallineskiplimit}
-
-% \def\setnormalbaselines
-% {\ifdim\normallineheight>\zeropoint
-% \lineheight\normallineheight
-% \fi
-% \openlineheight\spacingfactor\lineheight
-% \openstrutheight\strutheightfactor\openlineheight
-% \openstrutdepth \strutdepthfactor \openlineheight
-% \normalbaselineskip\openlineheight
-% \!!plus\baselinegluefactor\openlineheight
-% \!!minus\baselinegluefactor\openlineheight
-% \normallineskip\minimumlinedistance\relax % \onepoint\relax
-% \normallineskiplimit\zeropoint\relax
-% \normalbaselines}
-
-\def\setnormalbaselines
- {\ifdim\normallineheight>\zeropoint
- \lineheight\normallineheight
- \fi
- \openlineheight\spacingfactor\lineheight
- \openstrutheight \ifdim\minimumstrutheight>\zeropoint
- \minimumstrutheight % new
- \else
- \strutheightfactor\openlineheight
- \fi
- \openstrutdepth \ifdim\minimumstrutdepth>\zeropoint
- \minimumstrutdepth % new
- \else
- \strutdepthfactor \openlineheight
- \fi
- \begingroup % avoid interference
- \scratchdimen\minimumstrutdepth
- \advance\scratchdimen\minimumstrutheight
- \ifdim\scratchdimen>\zeropoint
- \endgroup
- \openlineheight\openstrutheight % new
- \advance\openlineheight\openstrutdepth % new
- \else
- \endgroup
- \fi
- \normalbaselineskip\openlineheight
- \ifgridsnapping\else
- \!!plus \baselinegluefactor\openlineheight
- \!!minus\baselinegluefactor\openlineheight
- \fi
- \normallineskip\minimumlinedistance\relax % \onepoint\relax
- \normallineskiplimit\zeropoint\relax
- \normalbaselines
- \mksetupgridsnapping}
-
-\def\setspacingfactor#1\to#2\by#3\\%
- {\strutdimen#2\points
- \strutdimen#3\strutdimen
- \edef#1{\withoutpt\the\strutdimen}}
-
-\def\spacing#1%
- {\ifgridsnapping
- %\doifnot{#1}{1}{\showmessage\m!layouts{11}{#1}}%
- \ifdim#1\points=\onepoint\else\showmessage\m!layouts{11}{#1}\fi
- \edef\spacingfactor{1}%
- \else
- \edef\spacingfactor{#1}%
- \fi
- \setspacingfactor\systemtopskipfactor \to\topskipfactor \by#1\\% why no \spacingfactor ?
- \setspacingfactor\systemmaxdepthfactor\to\maxdepthfactor\by#1\\% why no \spacingfactor ?
- \setnormalbaselines
- \setstrut}
-
-\def\setstrutdimen#1#2#3% % een strut is n.m maal ex
- {\strutdimen\normallineheight % wat niet per se \lineheight
- \strutdimen#2\strutdimen % is omdat een strut lokaal
- \strutdimen#3\strutdimen % kan afwijken van de globale
- \edef#1{\the\strutdimen}} % macro % strut
-
-%D Sometimes one needs to freeze the interlinespacing
-%D
-%D \starttyping
-%D \rm \saveinterlinespace .... {\ss \restoreinterlinespace .... \endgraf}
-%D \stoptyping
-
-\let\restoreinterlinespace\relax
-
-\def\saveinterlinespace
- {\edef\restoreinterlinespace
- {\lineheight \the\lineheight
- \openstrutheight \the\openstrutheight
- \openstrutdepth \the\openstrutdepth
- \openlineheight \the\openlineheight
- \normalbaselineskip \the\normalbaselineskip
- \normallineskip \the\normallineskip
- \normallineskiplimit\the\normallineskiplimit
- \noexpand\def\noexpand\normallineheight{\the\dimexpr\normallineheight\relax}%
- \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}
-
-\ifx\strutbox\undefined
-
- \newbox\strutbox
-
- \setbox\strutbox=\normalhbox{\vrule height8.5pt depth3.5pt width\z@}
-
- %\def\strut{\relax\ifmmode\copy\strutbox\else\unhcopy\strutbox\fi}
- \def\strut{\relax\ifmmode\copy\else\unhcopy\fi\strutbox}
-
-\fi
-
-\let\normalstrut=\strut
-
-% The double \hbox construction enables us to \backtrack
-% boxes.
-
-% \def\setstrut
-% {\setstrutdimen\strutheight\strutheightfactor\spacingfactor
-% \setstrutdimen\strutdepth \strutdepthfactor \spacingfactor
-% \let\strut=\normalstrut
-% \setbox\strutbox=\normalhbox
-% {\normalhbox
-% {\vrule
-% \!!width \strutwidth
-% \!!height \strutheight
-% \!!depth \strutdepth
-% \normalkern-\strutwidth}}}
-
-% \def\setstrut
-% {\setstrutdimen\strutheight\strutheightfactor\spacingfactor
-% \setstrutdimen\strutdepth \strutdepthfactor \spacingfactor
-% \dosetstrut}
-
-% \def\setstrut
-% {\strutdimen\normallineheight
-% \strutdimen\strutheightfactor\strutdimen
-% \strutdimen\spacingfactor\strutdimen
-% \edef\strutheight{\the\strutdimen}%
-% \strutdimen\normallineheight
-% \ifgridsnapping
-% \advance\strutdimen-\strutheight
-% \else
-% \strutdimen\strutdepthfactor\strutdimen
-% \strutdimen\spacingfactor\strutdimen
-% \fi
-% \edef\strutdepth{\the\strutdimen}%
-% \dosetstrut}
-
-% interesting, strutdepth is 4.05064pt vs 4.05066pt depending on grid
-% nasty rounding problem
-
-\def\setstrut
- {% height
- \strutdimen\normallineheight
- \ifdim\minimumstrutheight>\zeropoint
- \strutdimen\minimumstrutheight
- \else
- \strutdimen\strutheightfactor\strutdimen
- \fi
- \strutdimen\spacingfactor\strutdimen
- \edef\strutheight{\the\strutdimen}%
- % depth
- \strutdimen\normallineheight
- \ifgridsnapping
- \ifdim\minimumstrutdepth>\zeropoint
- \strutdimen\minimumstrutdepth
- \else
- \advance\strutdimen-\strutheight
- \fi
- \else
- \ifdim\minimumstrutdepth>\zeropoint
- \strutdimen\minimumstrutdepth
- \else
- \strutdimen\strutdepthfactor\strutdimen
- \fi
- \strutdimen\spacingfactor\strutdimen
- \fi
- \edef\strutdepth{\the\strutdimen}%
- % finish
- \dosetstrut}
-
-\def\setcharstrut#1%
- {\setbox\strutbox\normalhbox{#1}%
- \edef\strutheight{\the\strutht}%
- \edef\strutdepth {\the\strutdp}%
- \dosetstrut}
-
-% \def\setfontstrut
-% {\setcharstrut{(}}
-%
-% better, since some fonts have small (but descending Q etc)
-
-\def\setfontstrut
- {\setcharstrut{(gplQT}}
-
-\def\setcapstrut% could be M, but Q has descender
- {\setcharstrut{Q}}
-
-%D Handy for math (used in mathml):
-
-\def\charhtstrut
- {\begingroup
- \setcharstrut{GJY}%
- \vrule\!!width\zeropoint\!!depth\zeropoint\!!height\strutht
- \endgroup}
-
-\def\chardpstrut
- {\begingroup
- \setcharstrut{gjy}%
- \vrule\!!width\zeropoint\!!depth\strutdp\!!height\zeropoint
- \endgroup}
-
-%D Centered looks nicer:
-
-% \def\dosetstrut
-% {\let\strut\normalstrut
-% \setbox\strutbox\normalhbox
-% {\normalhbox to \zeropoint
-% {% \hss % new, will be option
-% \vrule
-% \!!width \strutwidth
-% \!!height\strutheight
-% \!!depth \strutdepth
-% \hss}}%
-% \struttotal\dimexpr\strutht+\strutdp\relax}
-%
-% 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
-
-\def\dosetstrut
- {\let\strut\normalstrut
- \ifdim\strutwidth=\zeropoint
- \setbox\strutbox\normalhbox
- {\vrule
- \!!width \zeropoint
- \!!height\strutheight
- \!!depth \strutdepth}%
- \else
- \setbox\strutbox\normalhbox
- {\normalhbox to \zeropoint
- {% \hss % new, will be option
- \vrule
- \!!width \strutwidth
- \!!height\strutheight
- \!!depth \strutdepth
- \hss}}%
- \fi
- \struttotal\dimexpr\strutht+\strutdp\relax}
-
-%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.
-
-%D Sometimes a capstrut comes in handy
-%D
-%D \starttabulate[|Tl|l|l|]
-%D \NC yes \NC normal strut \NC {\showstruts\setupstrut[yes]\strut} \NC \NR
-%D \NC no \NC no strut \NC {\showstruts\setupstrut[no]\strut} \NC \NR
-%D \NC kap \NC a capital strut (i.e. Q) \NC {\showstruts\setupstrut[cap]\strut} \NC \NR
-%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
-
-\def\setupstrut
- {\dosingleempty\dosetupstrut}
-
-\def\dosetupstrut[#1]% yet undocumented, todo: fontstrut
- {\processaction
- [#1]
- [ \v!yes=>\setstrut,
- \v!auto=>\setautostrut,
- \v!no=>\setnostrut,
- \v!cap=>\setcapstrut,
- \v!fit=>\setfontstrut,
- \v!line=>\setstrut,
- \s!default=>\setstrut,
- \s!unknown=>\setcharstrut\commalistelement]}
-
-\def\setteststrut
- {\def\strutwidth{.8pt}%
- \setstrut}
-
-\def\autostrutfactor{1.1}
-
-\def\setautostrut
- {\begingroup
- \setbox\scratchbox\copy\strutbox
- \setstrut
- \ifdim\ht\strutbox>\autostrutfactor\ht\scratchbox
- \endgroup \setstrut
- \else\ifdim\dp\strutbox>\autostrutfactor\dp\scratchbox
- \endgroup \setstrut
- \else
- \endgroup
- \fi\fi}
-
-% simple version
-%
-% \def\begstrut
-% {\relax\ifcase\strutht\else
-% \strut
-% \normalpenalty\plustenthousand
-% \normalhskip\zeropoint
-% \ignorespaces
-% \fi}
-%
-% \def\endstrut
-% {\relax\ifhmode\ifcase\strutht\else
-% \removeunwantedspaces
-% \normalpenalty\plustenthousand
-% \normalhskip\zeropoint
-% \strut
-% \fi\fi}
-
-% when enabled, sigstruts will remove themselves if nothing
-% goes inbetween
-
-\newsignal\strutsignal \setfalse\sigstruts
-
-\def\begstrut
- {\relax\ifcase\strutht\else
- \ifconditional\sigstruts
- \noindent\horizontalstrut
- \normalpenalty\plustenthousand
- \normalhskip-\strutsignal
- \normalhskip\strutsignal
- \else
- \strut
- \normalpenalty\plustenthousand
- \normalhskip\zeropoint
- \fi
- \expandafter \ignorespaces
- \fi}
-
-\def\endstrut
- {\relax\ifhmode\ifcase\strutht\else
- \ifconditional\sigstruts
- \ifdim\lastskip=\strutsignal
- \unskip\unskip\unpenalty\setbox\scratchbox\lastbox
- \else
- \normalpenalty\plustenthousand
- \normalhskip\zeropoint
- \strut
- \fi
- \else
- \removeunwantedspaces
- \normalpenalty\plustenthousand
- \normalhskip\zeropoint
- \strut
- \fi
- \fi\fi}
-
-\newbox\nostrutbox \setbox\nostrutbox\normalhbox{} % {\normalhbox{}}
-
-\def\setnostrut
- {\setbox\strutbox\copy\nostrutbox
- \let\strut\empty
- \let\endstrut\empty
- \let\begstrut\empty
- \let\crlfplaceholder\empty}
-
-% unsave:
-%
-% \def\pseudostrut
-% {\bgroup
-% \setnostrut
-% \normalstrut
-% \egroup}
-%
-% try:
-%
-% \startchemie
-% \chemie[ONE,Z0,SB15,MOV1,SB15,Z0][C,C]
-% \stopchemie
-%
-% so:
-
-\def\pseudostrut
- {\noindent} % better: \dontleavehmode
-
-\let\pseudobegstrut\pseudostrut
-
-\let\pseudoendstrut\removeunwantedspaces
-
-\def\resetteststrut
- {\let\strutwidth\zeropoint
- \setstrut}
-
-\ifx\setfontparameters\undefined
- % problems ! ! ! !
- \def\setfontparameters{\the\everybodyfont}
-\fi
-
-%D Handy:
-
-\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 The plain ones:
-
-\def\offinterlineskip
- {\baselineskip-\thousandpoint
- \lineskip\zeropoint
- \lineskiplimit\maxdimen}
-
-\def\nointerlineskip
- {\prevdepth-\thousandpoint}
-
-\let\normaloffinterlineskip=\offinterlineskip % knuth's original
-
-%D My own one:
-
-\def\offinterlineskip
- {\ifdim\baselineskip>\zeropoint
- \edef\oninterlineskip
- {\baselineskip\the\baselineskip
- \lineskip\the\lineskip
- \lineskiplimit\the\lineskiplimit
- \let\noexpand\offinterlineskip\noexpand\normaloffinterlineskip}%
- \else
- \let\oninterlineskip\setnormalbaselines
- \fi
- \normaloffinterlineskip}
-
-\let\oninterlineskip=\relax
-
-\def\leaveoutervmode
- {\ifvmode\ifinner\else
- \leavevmode
- \fi\fi}
-
-% We stellen enkele penalties anders in dan Plain TEX:
-
-% oud
-%
-% \widowpenalty=\defaultwidowpenalty\relax
-% \clubpenalty =\defaultclubpenalty \relax
-
-\def\resetpenalties#1%
- {\ifx#1\undefined\else
- #1\minusone
- \fi}
-
-\def\setpenalties#1#2#3%
- {\ifx#1\undefined\else % space before #3 prevents lookahead problems, needed when #3=text
- #1\numexpr#2+\plusone\relax\space\doexpandedrecurse{\the\numexpr#2\relax}{ #3}\zerocount\relax
- \fi}
-
-\def\doexpandedrecurse#1#2%
- {\ifnum#1>\zerocount#2\@EA\doexpandedrecurse\@EA{\the\numexpr#1-1\relax}{#2}\fi}
-
-%D \macros
-%D {keeplinestogether}
-%D
-%D Dirty hack, needed in margin content that can run of a page.
-
-\def\keeplinestogether#1%
- {\xdef\restoreinterlinepenalty{\global\resetpenalties\interlinepenalties}%
- \global\setpenalties\interlinepenalties{#1}\plustenthousand}
-
-\newif\ifgridsnapping % to be sure
-
-\def\defaultwidowpenalty {2000} % was: 1000
-\def\defaultclubpenalty {2000} % was: 800
-\def\defaultdisplaywidowpenalty {50}
-\def\defaultbrokenpenalty {100}
-
-\def\defaultgridwidowpenalty {0}
-\def\defaultgridclubpenalty {0}
-\def\defaultgriddisplaywidowpenalty {0}
-\def\defaultgridbrokenpenalty {0}
-
-% The original approach:
-%
-% \def\setdefaultpenalties
-% {\ifgridsnapping
-% \widowpenalty\defaultgridwidowpenalty
-% \clubpenalty \defaultgridclubpenalty
-% \else
-% \widowpenalty\defaultwidowpenalty
-% \clubpenalty \defaultclubpenalty
-% \fi}
-%
-% However, we will use setups:
-
-% to be documented
-
-\def\nopenalties
- {\widowpenalty \zerocount
- \clubpenalty \zerocount
- \brokenpenalty \zerocount
- \doublehyphendemerits\zerocount
- \finalhyphendemerits \zerocount
- \adjdemerits \zerocount}
-
-\def\setdefaultpenalties
- {\directsetup{\systemsetupsprefix\s!default}}
-
-\startsetups [\systemsetupsprefix\s!reset]
- \resetpenalties\widowpenalties
- \resetpenalties\clubpenalties
- \resetpenalties\interlinepenalties
-\stopsetups
-
-% we use \directsetup because it's faster and we know there is no csl
-
-\startsetups [\systemsetupsprefix\s!default]
-
- \directsetup{\systemsetupsprefix\s!reset}
-
- \widowpenalty \defaultwidowpenalty
- \clubpenalty \defaultclubpenalty
- \displaywidowpenalty\defaultdisplaywidowpenalty
- \brokenpenalty \defaultbrokenpenalty
-
-\stopsetups
-
-\startsetups [\v!grid] [\systemsetupsprefix\s!default]
-
- \directsetup{\systemsetupsprefix\s!reset}
-
- \widowpenalty \defaultgridwidowpenalty
- \clubpenalty \defaultgridclubpenalty
- \displaywidowpenalty\defaultgriddisplaywidowpenalty
- \brokenpenalty \defaultgridbrokenpenalty
-
-\stopsetups
-
-% as an illustration:
-
-\startsetups [\systemsetupsprefix\v!strict]
-
- \directsetup{\systemsetupsprefix\s!reset}
-
- \setpenalties\widowpenalties2\maxdimen
- \setpenalties\clubpenalties 2\maxdimen
- \brokenpenalty \maxdimen
-
-\stopsetups
-
-\setdefaultpenalties % will happen later in \setuplayout
-
-% Suggested by GB (not the name -):
-
-\def\rapfillskip{.5\hsize plus .092\hsize minus .5\hsize} % D.A.'s value
-
-% Bovendien definieren we enkele extra \fill's:
-
-\def\hfilll{\hskip\zeropoint\!!plus1filll\relax}
-\def\vfilll{\vskip\zeropoint\!!plus1filll\relax}
-
-% De onderstaande hulpmacro's moeten nog eens instelbaar worden
-% gemaakt.
-
-\def\tfskipsize{1em\relax}
-\def\tfkernsize{1ex\relax}
-
-\def\tfskip{\dotfskip\tfskipsize}
-\def\tfkern{\dotfkern\tfkernsize}
-
-\def\dotfskip#1{{\tf\hskip#1}}
-\def\dotfkern#1{{\tf\kern #1}}
-
-% needs a proper \definenarrower or installnarrower
-
-\newskip\ctxleftskip
-\newskip\ctxrightskip
-\newskip\ctxmidskip
-
-\def\dosinglenarrower#1%
- {\processaction
- [#1]
- [ \v!left=>\global\advance\ctxleftskip \@@slleft,
- \v!middle=>\global\advance\ctxmidskip \@@slmiddle,
- \v!right=>\global\advance\ctxrightskip \@@slright,
- \v!reset=>\global\ctxleftskip \zeropoint
- \global\ctxmidskip \zeropoint
- \global\ctxrightskip\zeropoint,
- \v!none=>,
- \s!unknown=>\global\advance\ctxmidskip \commalistelement]}
-
-% \def\donarrower[#1]% hm, can be dorepeat directly
-% {\processaction
-% [#1]
-% [ \v!left=>\global\advance\ctxleftskip \@@slleft,
-% \v!middle=>\global\advance\ctxmidskip \@@slmiddle,
-% \v!right=>\global\advance\ctxrightskip \@@slright,
-% \v!none=>,% handy for delimitedtexts
-% \s!unknown=>{\dorepeatwithcommand[#1]\dosinglenarrower}]}
-
-\def\donarrower[#1]% hm, can be dorepeat directly
- {\dorepeatwithcommand[#1]\dosinglenarrower}
-
-\def\complexstartnarrower[#1]%
- {\@@slbefore % was hard coded \par
- \bgroup
- \global\ctxleftskip \zeropoint
- \global\ctxrightskip\zeropoint
- \global\ctxmidskip \zeropoint
- \processcommalistwithparameters[#1]\donarrower
- \advance\leftskip \ctxleftskip
- \advance\rightskip \ctxrightskip
- \advance\leftskip \ctxmidskip
- \advance\rightskip \ctxmidskip
- \seteffectivehsize}
-
-% todo: definenarrower
-
-\def\simplestartnarrower
- {\startnarrower[\v!middle]}
-
-\definecomplexorsimple\startnarrower
-
-\def\stopnarrower
- {\@@slafter % was hard coded \par / needed, else skips forgotten
- \egroup}
-
-\def\setupnarrower
- {\dodoubleargument\getparameters[\??sl]}
-
-\newdimen\@@effectivehsize \def\effectivehsize {\hsize}
-\newdimen\@@effectiveleftskip \def\effectiveleftskip {\leftskip}
-\newdimen\@@effectiverightskip \def\effectiverightskip{\rightskip}
-
-\def\seteffectivehsize
- {\setlocalhsize
- \@@effectivehsize \localhsize
- \@@effectiveleftskip \leftskip
- \@@effectiverightskip \rightskip
- \let\effectivehsize \@@effectivehsize
- \let\effectiveleftskip \@@effectiveleftskip
- \let\effectiverightskip\@@effectiverightskip}
-
-\def\dodefinehbox[#1][#2]%
- {\setvalue{hbox#1}##1%
- {\hbox to #2{\begstrut##1\endstrut\hss}}}
-
-\def\definehbox
- {\dodoubleargument\dodefinehbox}
-
-\def\iobox#1#2#3#% here #3# is not really needed
- {\vbox\bgroup % we want to return a vbox like the others
- \hbox\bgroup% we need to pack the signal with the box
- \signalrightpage
- \dowithnextboxcontent
- {\let\\=\endgraf\forgetall\doifrightpageelse#1#2}
- {\box\nextbox\egroup\egroup}
- \vbox#3}
-
-\def\obox{\iobox\raggedleft \raggedright} % outerbox
-\def\ibox{\iobox\raggedright\raggedleft} % innerbox
-
-\def\dosetraggedvbox#1%
- {\let\raggedbox\vbox
- \processfirstactioninset
- [#1]
- [ \v!left=>\let\raggedbox\lbox,
- \v!right=>\let\raggedbox\rbox,
- \v!middle=>\let\raggedbox\cbox,
- \v!inner=>\let\raggedbox\ibox,
- \v!outer=>\let\raggedbox\obox,
- \v!flushleft=>\let\raggedbox\rbox,
- \v!flushright=>\let\raggedbox\lbox,
- \v!center=>\let\raggedbox\cbox,
- \v!no=>\def\raggedbox{\vbox\bgroup\raggedright\let\next=}]}
-
-\def\dosetraggedhbox#1%
- {\let\raggedbox\hbox
- \processaction % slow
- [#1]
- [ \v!left=>\def\raggedbox{\doalignedline\v!left },
- \v!right=>\def\raggedbox{\doalignedline\v!right },
- \v!middle=>\def\raggedbox{\doalignedline\v!middle},
- \v!inner=>\def\raggedbox{\doalignedline\v!inner },
- \v!outer=>\def\raggedbox{\doalignedline\v!outer },
- \v!flushleft=>\def\raggedbox{\doalignedline\v!right },
- \v!flushright=>\def\raggedbox{\doalignedline\v!left },
- \v!center=>\def\raggedbox{\doalignedline\v!middle}]}
-
-\def\dosetraggedcommand#1%
- {\expanded{\dodosetraggedcommand{#1}}}
-
-% \def\dodosetraggedcommand#1% beware: #1=empty is ignored, keep that!
-% {\let\raggedcommand \relax
-% \let\raggedtopcommand \empty
-% \let\raggedbottomcommand\empty
-% \chardef\raggedoneliner\zerocount
-% \doifsomething{#1}
-% {\doifinsetelse\v!broad{#1}\!!doneatrue\!!doneafalse
-% \doifinsetelse\v!wide {#1}\!!donebtrue\!!donebfalse
-% \!!donectrue
-% \rawprocesscommalist[#1]\dododosetraggedcommand}}
-
-\newtoks\everyraggedcommand
-
-\def\raggedcommand{\the\everyraggedcommand}
-
-\def\dodosetraggedcommand#1% beware: #1=empty is ignored, keep that!
- {\everyraggedcommand \emptytoks
- \let\raggedtopcommand \empty
- \let\raggedbottomcommand\empty
- \chardef\raggedoneliner\zerocount
- \doifsomething{#1}
- {\doifinsetelse\v!broad{#1}\!!doneatrue\!!doneafalse
- \doifinsetelse\v!wide {#1}\!!donebtrue\!!donebfalse
- \!!donectrue
- \rawprocesscommalist[#1]\dododosetraggedcommand}}
-
-\def\dododosetraggedcommand#1%
- {\executeifdefined{\@@ragged@@command\string#1}\relax}
-
-\def\@@ragged@@command{@@raggedcommand}
-
-\setvalue{\@@ragged@@command\v!hanging }{\appendtoks\enableprotruding \to\everyraggedcommand}
-\setvalue{\@@ragged@@command\v!nothanging }{\appendtoks\disableprotruding \to\everyraggedcommand}
-\setvalue{\@@ragged@@command\v!hz }{\appendtoks\enableadjusting \to\everyraggedcommand}
-\setvalue{\@@ragged@@command\v!nohz }{\appendtoks\disableadjusting \to\everyraggedcommand}
-\setvalue{\@@ragged@@command\v!spacing }{\appendtoks\enablespacehandling
- \enablekernhandling \to\everyraggedcommand}
-\setvalue{\@@ragged@@command\v!nospacing }{\appendtoks\disablespacehandling
- \disablekernhandling \to\everyraggedcommand}
-\setvalue{\@@ragged@@command\v!hyphenated }{\appendtoks\dohyphens \to\everyraggedcommand}
-\setvalue{\@@ragged@@command\v!nothyphenated}{\appendtoks\nohyphens \to\everyraggedcommand}
-
-\setvalue{\@@ragged@@command\v!tolerant }{\appendtoks\tolerance3000\relax \to\everyraggedcommand}
-\setvalue{\@@ragged@@command\v!verytolerant}{\appendtoks\tolerance4500\relax \to\everyraggedcommand}
-\setvalue{\@@ragged@@command\v!stretch }{\appendtoks\emergencystretch\bodyfontsize\to\everyraggedcommand}
-
-\setvalue{\@@ragged@@command\v!left}%
- {\if!!donea \appendtoks\veryraggedleft\to\everyraggedcommand
- \else \appendtoks\raggedleft \to\everyraggedcommand
- \fi
- \!!donecfalse}
-
-\setvalue{\@@ragged@@command\v!right}%
- {\if!!donea \appendtoks\veryraggedright\to\everyraggedcommand
- \else \appendtoks\raggedright \to\everyraggedcommand
- \fi
- \!!donecfalse}
-
-\setvalue{\@@ragged@@command\v!middle}%
- {\if!!donec
- \if!!doneb \appendtoks\raggedwidecenter\to\everyraggedcommand
- \else\if!!donea \appendtoks\veryraggedcenter\to\everyraggedcommand
- \else \appendtoks\raggedcenter \to\everyraggedcommand
- \fi\fi
- \!!donecfalse
- \else
- \let\raggedbottomcommand\vfilll % bonus, pretty strong
- \let\raggedtopcommand \vfilll % used with \framed for
- \fi} % instance in tables
-
-\setvalue{\@@ragged@@command\v!flushleft }{\getvalue{\@@ragged@@command\v!right }}
-\setvalue{\@@ragged@@command\v!flushright}{\getvalue{\@@ragged@@command\v!left }}
-\setvalue{\@@ragged@@command\v!center }{\getvalue{\@@ragged@@command\v!middle}}
-
-\setvalue{\@@ragged@@command\v!high}%
- {\let\raggedbottomcommand\vfilll} % and since we lack a
-
-\setvalue{\@@ragged@@command\v!low}%
- {\let\raggedtopcommand\vfilll} % proper keyword, but
-
-\setvalue{\@@ragged@@command\v!lohi}%
- {\let\raggedbottomcommand\vfilll % we do support the
- \let\raggedtopcommand\vfilll} % ugly laho (lohi)
-
-\setvalue{\@@ragged@@command\v!no}%
- {\appendtoks\raggedright\to\everyraggedcommand}
-
-\setvalue{\@@ragged@@command\v!yes}%
- {\appendtoks\notragged\to\everyraggedcommand}
-
-\setvalue{\@@ragged@@command\v!normal}%
- {\appendtoks\notragged\to\everyraggedcommand}
-
-\setvalue{\@@ragged@@command\v!inner}% not yet perfect
- {\signalrightpage % may interfere
- \doifrightpageelse
- {\getvalue{\@@ragged@@command\v!right}}
- {\getvalue{\@@ragged@@command\v!left}}}
-
-\setvalue{\@@ragged@@command\v!outer}% not yet perfect
- {\signalrightpage % may interfere
- \doifrightpageelse
- {\getvalue{\@@ragged@@command\v!left}}
- {\getvalue{\@@ragged@@command\v!right}}}
-
-\setvalue{\@@ragged@@command\v!lesshyphenation}%
- {\appendtoks\lesshyphens\to\everyraggedcommand}
-\setvalue{\@@ragged@@command\v!morehyphenation}%
- {\appendtoks\morehyphens\to\everyraggedcommand}
-
-% compare:
-%
-% \framed[width=4cm,align=no] {\hfil xxx}
-% \framed[width=4cm,align=disable]{\hfil xxx}
-
-\setvalue{\@@ragged@@command\v!disable}% for one liners
- {\appendtoks\raggedright\parfillskip\zeropoint\to\everyraggedcommand}
-
-\chardef\raggedoneliner\zerocount
-
-\setvalue{\@@ragged@@command\v!line}%
- {\chardef\raggedoneliner\plusone}
-
-%D Unofficial, may disappear. Now handled directly in the
-%D core-rul module.
-
-% \def\@@startraggedoneliner
-% {\ifcase\raggedoneliner\else
-% \dontleavehmode\hbox to \hsize \bgroup % hsize added, else useless
-% \ifcase\raggedstatus\or\hss\or\hss\fi
-% \ignorespaces
-% \bgroup
-% \aftergroup\removeunwantedspaces
-% \fi}
-
-% \def\@@stopraggedoneliner
-% {\ifcase\raggedoneliner\else
-% \egroup
-% \ifcase\raggedstatus\or\or\hss\or\hss\fi
-% \egroup
-% \ignorespaces % ? ? ?
-% \fi}
-
-% \def\@@handleoneliner
-% {\ifcase\raggedoneliner\else
-% \@@startraggedoneliner
-% \aftergroup\@@stopraggedoneliner
-% \fi}
-
-% Nodig i.v.m. inspringen eerste alineas
-
-\def\explicithmode{\unhbox\voidb@x} % can probably become \dontleavehmode
-
-% Nog doen:
-%
-% \goodbreak -> \allowbreak en \dosomebreak{..} in koppen
-%
-% bij koppen zowieso: \blanko[reset]
-
-% Nog in commando verwerken:
-%
-% \voorkeur la \blanko
-%
-% Om ongewenste witruimte te voorkomen kan met \dosomebreak{\break}
-% een \penalty voor witruimte worden geplaatst.
-
-\def\removelastskip % a redefinition of plain
- {\ifvmode\ifdim\lastskip=\zeropoint\else\vskip-\lastskip\fi\fi}
-
-% first version:
-%
-% \def\dosomebreak#1%
-% {\scratchskip\lastskip
-% \removelastskip
-% %\type{#1}%
-% #1\relax
-% \ifdim\scratchskip=\zeropoint \else
-% \vskip\scratchskip
-% \fi}
-%
-% don't change the next improvement:
-
-% \def\dosomebreak#1%
-% {\endgraf % beware, this forces a newline
-% \ifvmode
-% \ifdim\lastskip=\zeropoint
-% #1\relax
-% \else
-% \scratchskip\lastskip
-% \removelastskip
-% #1\relax
-% \vskip\scratchskip
-% \fi
-% \fi}
-
-% beter, vooral in \vbox; nog in \pagina toepassen s!
-
-\def\doifoutervmode#1%
- {\ifvmode\ifinner\else#1\fi\fi}
-
-\def\dosomebreak#1%
- {\doifoutervmode
- {\scratchskip\lastskip
- \removelastskip
- %\leavevmode\type{#1}%
- #1\relax
- \ifdim\scratchskip=\zeropoint % else interference with footnotes
- \else
- \vskip\scratchskip
- \fi}}
-
-\def\forgeteverypar
- {\everypar{\the\neverypar}}
-
-%\def\forgetparindent
-% {\forgeteverypar
-% \indentfirstparagraphtrue % recently added
-% \setupindenting[\v!geen]}
-
-%\def\forgetparskip
-% {\setupwhitespace[\v!geen]}
-
-\def\forgetparindent
- {\forgeteverypar
- \indentfirstparagraphtrue % recently added
- \let\currentindentation\v!none
- \ctxparindent\zeropoint
- \parindent\zeropoint\relax}
-
-\def\forgetparskip
- {\let\currentwhitespace\v!none
- \ctxparskip\zeropoint
- \parskip\zeropoint\relax}
-
-\def\forgetbothskips
- {\tolerance1500
- \leftskip\zeropoint
- \rightskip\zeropoint\relax}
-
-\def\forgetspacing
- {\emergencystretch\zeropoint}
-
-\newif\ifforgotten % rather good signal for inner
-
-\appendtoks \forgottentrue \to \everyforgetall
-\appendtoks \forgetragged \to \everyforgetall
-\appendtoks \forgetparskip \to \everyforgetall
-\appendtoks \forgetparindent \to \everyforgetall
-\appendtoks \forgetbothskips \to \everyforgetall
-\appendtoks \forgetspacing \to \everyforgetall % i.v.m. funny spacing in pagebody
-\appendtoks \spacing\!!plusone \to \everyforgetall % new per 10/08/2004, else problems in otr / !! needed
-\appendtoks \everypar\emptytoks \to \everyforgetall % indeed!
-
-\def\localvbox#1#%
- {\vbox#1\bgroup
- \forgetparskip
- \setlocalhsize
- \hsize\localhsize
- \forgetparindent
- \forgetbothskips
- \forgeteverypar
- \let\next=}
-
-% ach ja, hoort niet hier
-
-% \unexpanded\def\dostartattributes#1#2#3%
-% {\begingroup % geen \bgroup, anders in mathmode lege \hbox
-% \doifdefinedelse{#1#2}
-% {\def\fontattribute{\getvalue{#1#2}}}
-% {\let\fontattribute=\empty}%
-% \doifdefinedelse{#1#3}
-% {\def\colorattribute{\getvalue{#1#3}}}
-% {\let\colorattribute=\empty}%
-% \startcolor[\colorattribute]%
-% \@EA\doconvertfont\@EA{\fontattribute}}
-%
-% \unexpanded\def\dostopattributes%
-% {\stopcolor
-% \endgroup}
-%
-% \unexpanded\def\doattributes#1#2#3#4%
-% {\dostartattributes{#1}{#2}{#3}{#4}\dostopattributes}
-
-%D A hardly faster implementation follows. We cannot use
-%D \type {csname} testing since the first argument can be
-%D anything, even a raw fontswitch. No a real improvement
-%D (some 5 seconds on 260 seconds for the maps bibliography).
-
-\let\dostopattributes\relax % in case these commands end up in an edef
-
-\unexpanded\def\dostartattributes#1#2#3%
- {\begingroup % geen \bgroup, anders in mathmode lege \hbox
- \ifcsname#1#3\endcsname
- \let\dostopattributes\@@dostopattributes
- \startcolor[\csname#1#3\endcsname]%
- \else
- \let\dostopattributes\@@nostopattributes
- \fi
- \ifcsname#1#2\endcsname
- \expandafter\doconvertfont
- \else
- \expandafter\gobbleoneargument
- \fi{\csname#1#2\endcsname}}
-
-\newconditional \parbasedattributes
-
-\def\finishparbasedattributes
- {\ifconditional\parbasedattributes
- \setfalse\parbasedattributes
- \par
- \fi}
-
-\def\dostopparbasedattributes
- {\settrue\parbasedattributes
- \dostopattributes}
-
-\unexpanded\def\@@dostopattributes
- {\stopcolor
- \finishparbasedattributes
- \endgroup}
-
-\unexpanded\def\@@nostopattributes
- {\finishparbasedattributes
- \endgroup}
-
-\unexpanded\def\doattributes#1#2#3#4%
- {\dostartattributes{#1}{#2}{#3}{#4}\dostopattributes}
-
-% An even faster \ETEX\ version:
-
-\unexpanded\def\dostartattributes#1#2#3%
- {\begingroup % geen \bgroup, anders in mathmode lege \hbox
- \ifincolor
- \ifcsname#1#3\endcsname
- \let\dostopattributes\@@dostopattributes
- \faststartcolor[\csname#1#3\endcsname]%
- \else
- \let\dostopattributes\@@nostopattributes
- \fi
- \else
- \let\dostopattributes\@@nostopattributes
- \fi
- \ifcsname#1#2\endcsname
- % \@EAEAEA\doconvertfont\@EA\@EA\csname#1#2\endcsname
- \@EA\doconvertfont\csname#1#2\@EA\endcsname
- \fi}
-
-\unexpanded\def\@@dostopattributes
- {\faststopcolor
- \finishparbasedattributes
- \endgroup}
-
-\unexpanded\def\@@nostopattributes
- {\finishparbasedattributes
- \endgroup}
-
-%D Bonus macro, see core-sec.tex
-
-\unexpanded\def\dosetfontattribute#1#2%
- {\ifcsname#1#2\endcsname
- \@EA\doconvertfont\csname#1#2\@EA\endcsname
- \fi\empty}
-
-%D Since this happens a lot, and sometimes large arguments
-%D are passed in \type {#4}, we just copy some code:
-
-\unexpanded\def\doattributes#1#2#3#4%
- {\begingroup % geen \bgroup, anders in mathmode lege \hbox
- \ifincolor
- \ifcsname#1#3\endcsname
- \let\dostopattributes\@@dostopattributes
- \faststartcolor[\csname#1#3\endcsname]%
- \else
- \let\dostopattributes\endgroup
- \fi
- \else
- \let\dostopattributes\endgroup
- \fi
- \ifcsname#1#2\endcsname
- % \@EAEAEA\doconvertfont\@EA\@EA\csname#1#2\endcsname
- \@EA\doconvertfont\csname#1#2\@EA\endcsname
- \fi
- {#4}%
- \dostopattributes}
-
-% Kan vaker worden toegepast en moet bovendien sneller!
-
-\newskip\leftskipadaption
-\newskip\rightskipadaption
-
-\def\doadaptleftskip#1%
- {\dosetleftskipadaption{#1}%
- \advance\leftskip \leftskipadaption}
-
-\def\doadaptrightskip#1%
- {\dosetrightskipadaption{#1}%
- \advance\rightskip \rightskipadaption}
-
-\setvalue{@lsa@\v!standard}{\ifdim\ctxparindent=\zeropoint\@@slleft\else\ctxparindent\fi}
-\setvalue{@lsa@\v!yes }{\ifdim\ctxparindent=\zeropoint\@@slleft\else\ctxparindent\fi}
-\letvalue{@lsa@\v!no }\zeropoint
-\letvalue{@lsa@\empty }\zeropoint
-\setvalue{@rsa@\v!standard}{\@@slright}
-\setvalue{@rsa@\v!yes }{\@@slright}
-\letvalue{@rsa@\v!no }\zeropoint
-\letvalue{@rsa@\empty }\zeropoint
-
-% not safe for 2\parindent
-%
-% \def\dosetleftskipadaption#1%
-% {\leftskipadaption
-% \ifcsname @lsa@#1\endcsname
-% \csname @lsa@#1\endcsname
-% \else
-% #1%
-% \fi
-% \relax}
-
-\def\dosetleftskipadaption#1%
- {\edefconvertedargument\ascii{@lsa@#1}%
- \leftskipadaption
- \ifcsname\ascii\endcsname
- \csname\ascii\endcsname
- \else
- #1%
- \fi
- \relax}
-
-\def\dosetrightskipadaption#1%
- {\edefconvertedargument\ascii{@rsa@#1}%
- \rightskipadaption
- \ifcsname\ascii\endcsname
- \csname\ascii\endcsname
- \else
- #1%
- \fi
- \relax}
-
-\newcount \noftrackedpagestates
-\newif \ifpagestatemismatch
-\newcount \realpagestateno
-\chardef \frozenpagestate \zerocount
-
-\def\dotrackpagestate#1#2%
- {\ifdoublesided \ifinpagebody \else
- \doforcedtrackpagestate{#1}{#2}%
- \fi \fi}
-
-\def\doforcedtrackpagestate#1#2%
- {\ifcase\frozenpagestate
- \global\advance\noftrackedpagestates\plusone
- \global\advance#2\plusone
- \lazysavetaggedtwopassdata{#1}{\number\noftrackedpagestates}{\number#2}{\noexpand\realfolio}%
- %\llap{\infofont\number\noftrackedpagestates/\number#2}% tracing
- \fi}
-
-\def\doifrightpagestateelse#1#2%
- {\ifcase\frozenpagestate
- \pagestatemismatchfalse
- \realpagestateno\realfolio
- \ifinpagebody
- \ifdoublesided
- \ifodd\realpageno\relax
- \twopassdatafoundtrue \else \twopassdatafoundfalse
- \fi
- \else
- \twopassdatafoundtrue
- \fi
- \else\ifdoublesided
- \findtwopassdata{#1}{\number#2}%
- \iftwopassdatafound
- \realpagestateno\twopassdata\relax
- \ifnum\twopassdata=\realpageno \else
- \pagestatemismatchtrue
- \fi
- \ifodd\twopassdata\relax
- \twopassdatafoundtrue \else \twopassdatafoundfalse
- \fi
- \else
- \ifodd\realpageno\relax
- \twopassdatafoundtrue \else \twopassdatafoundfalse
- \fi
- \fi
- \else
- \twopassdatafoundtrue
- \fi\fi
- \else
- \ifodd\realpagestateno\relax
- \twopassdatafoundtrue \else \twopassdatafoundfalse
- \fi
- \fi
- \iftwopassdatafound
- \@EA\firstoftwoarguments
- \else
- \@EA\secondoftwoarguments
- \fi}
-
-\def\doifforcedrightpagestateelse#1#2%
- {\ifcase\frozenpagestate
- \pagestatemismatchfalse
- \realpagestateno\realfolio
- \findtwopassdata{#1}{\number#2}%
- \iftwopassdatafound
- \realpagestateno\twopassdata\relax
- \ifnum\twopassdata=\realpageno \else
- \pagestatemismatchtrue
- \fi
- \ifodd\twopassdata\relax
- \twopassdatafoundtrue \else \twopassdatafoundfalse
- \fi
- \else
- \ifodd\realpageno\relax
- \twopassdatafoundtrue \else \twopassdatafoundfalse
- \fi
- \fi
- \else
- \ifodd\realpagestateno\relax
- \twopassdatafoundtrue \else \twopassdatafoundfalse
- \fi
- \fi
- \iftwopassdatafound
- \@EA\firstoftwoarguments
- \else
- \@EA\secondoftwoarguments
- \fi}
-
-\def\freezepagestate {\chardef\frozenpagestate\plusone }
-\def\defrostpagestate{\chardef\frozenpagestate\zerocount}
-
-% we can make more of these on top, but how to deal with mixed frozen states
-
-\definetwopasslist\s!paragraph \newcount \nofraggedparagraphs
-
-\def\signalrightpage {\dotrackpagestate \s!paragraph\nofraggedparagraphs}
-\def\doifrightpageelse{\doifrightpagestateelse\s!paragraph\nofraggedparagraphs}
-
-\newcount\pagesignallevel
-
-\def\startsignalrightpage % one may do a \postsignalrightplace
- {\advance\pagesignallevel\plusone
- \presignalrightpage
- \let\signalrightpage\relax
- \let\presignalrightpage\relax
- \let\startsignalrightpage\relax
- \doifrightpageelse\donothing\donothing
- \freezepagestate}
-
-\def\stopsignalrightpage
- {\ifcase\pagesignallevel\or\postsignalrightpage\fi
- \advance\pagesignallevel\minusone}
-
-\def\setraggedparagraphmode
- {\signalrightpage\doifrightpageelse} % move it there
-
-\ifx\swapmargins\undefined \let\swapmargins\undefined \fi % todo
-
-\def\doifswappedrightpageelse#1#2% alleen in box construction !
- {\doifrightpageelse
- {#1}
- {\scratchcounter\realpageno
- \realpageno\realpagestateno\relax
- \swapmargins
- \realpageno\scratchcounter
- #2}}
-
-\newbox\signaledrightpage % this way we can avoid interference, i.e. postpone placement
-
-\def\presignalrightpage {\global\setbox\signaledrightpage\hbox{\signalrightpage}}
-\def\postsignalrightpage{\ifvoid\signaledrightpage\else\box\signaledrightpage\fi}
-
-% The next feature is is used in:
-%
-% \definenumber[test][way=bypage]
-%
-% \def\Test
-% {\incrementnumber[test]\rawnumber[test]/%
-% \incrementnumber[test]\rawnumber[test]/%
-% \incrementnumber[test]\rawnumber[test]\space
-% \checkpagechange{oeps}\changedpage{oeps}\space
-% \ifpagechanged TRUE\else FALSE\fi}
-%
-% \Test\page \Test\par \Test\page \Test\par \Test\page \Test\page
-%
-% (adapted from cont-new.tex:)
-
-\newif\ifpagechanged \let\lastchangedpage\empty
-
-\def\docheckpagestatechange#1#2#3%
- {\pagechangedfalse
- \doforcedtrackpagestate{#2}{#3}%
- \findtwopassdata{#2}{\number#3}%
- \iftwopassdatafound
- \ifnum\twopassdata>0\getvalue{#2:p:#1}\relax
- \pagechangedtrue
- \fi
- \fi
- \ifpagechanged
- \letgvalue{#2:p:#1}\twopassdata
- \globallet\lastchangedpage\twopassdata
- \else
- \globallet\lastchangedpage\realfolio
- \fi}
-
-\def\changedpagestate#1#2%
- {\executeifdefined{#2:p:#1}{0}}
-
-\def\checkpagechange#1{\docheckpagestatechange{#1}\s!paragraph\nofraggedparagraphs}
-\def\changedpage #1{\changedpagestate{#1}\s!paragraph}
-
-% saved struts
-
-\ifx\savedstrutbox\undefined \newbox\savedstrutbox \fi
-
-\def\savestrut {\setbox\savedstrutbox\copy\strutbox}
-\def\savedstrut{\copy \savedstrutbox}
-
-% De onderstaande macro's zijn opgenomen in Plain TeX.
-%
-% \def\raggedright%
-% {\rightskip\z@ plus2em \spaceskip.3333em \xspaceskip.5em\relax}
-%
-% \def\ttraggedright%
-% {\tttf\rightskip\z@ plus2em\relax}
-%
-% \newif\ifr@ggedbottom
-%
-% \def\raggedbottom%
-% {\topskip 10\p@ plus60\p@ \r@ggedbottomtrue}
-%
-% \def\normalbottom%
-% {\topskip 10\p@ \r@ggedbottomfalse}
-%
-% en worden hieronder wat aangepast.
-
-% the three boolean will become obsolete some day in favour
-% of \bottomraggedness
-
-\chardef\bottomraggedness=0 % 0=ragged 1=normal/align 2=baseline
-
-\def\bottomalignlimit{3\lineheight}
-
-\newif\ifn@rmalbottom
-\newif\ifr@ggedbottom
-\newif\ifb@selinebottom
-
-\def\normalbottom
- {% \topskip 10pt
- \r@ggedbottomfalse}
-
-\def\raggedbottom
- {\chardef\bottomraggedness\zerocount
- \n@rmalbottomfalse
- \r@ggedbottomtrue
- \b@selinebottomfalse
- \settopskip}
-
-\def\alignbottom
- {\chardef\bottomraggedness\plusone
- \n@rmalbottomtrue
- \r@ggedbottomfalse
- \b@selinebottomfalse
- \settopskip}
-
-\def\baselinebottom
- {\chardef\bottomraggedness\plustwo
- \n@rmalbottomfalse
- \r@ggedbottomfalse
- \b@selinebottomtrue
- \settopskip}
-
-\let\normalbottom=\alignbottom % downward compatible
-
-% so, the new one will be
-%
-% \chardef\bottomraggedness=0 % 0=ragged 1=normal/align 2=baseline
-%
-% \def\bottomalignlimit{3\lineheight} % will be settable
-%
-% \def\raggedbottom {\chardef\bottomraggedness=0 \settopskip}
-% \def\alignbottom {\chardef\bottomraggedness=1 \settopskip}
-% \def\baselinebottom{\chardef\bottomraggedness=2 \settopskip}
-%
-% \let\normalbottom =\alignbottom
-
-% \hyphenpenalty = ( 2.5 * \hsize ) / \raggedness
-% \tolerance >= 1500 % was 200
-% \raggedness = 2 .. 6\bodyfontsize
-
-\chardef\raggedstatus=0 % normal left center right
-
-\def\leftraggedness {2\bodyfontsize}
-\def\rightraggedness {2\bodyfontsize}
-\def\middleraggedness {6\bodyfontsize}
-
-\def\middleraggedness {.5\hsize} % was: 6\bodyfontsize, fails on: \placefigure{x $x=x$ x}{}
-
-% oeps, hsize can be 0pt in which case we get a strange division
-
-\def\middleraggedness {\ifdim\hsize=\zeropoint6\bodyfontsize\else.5\hsize\fi} % was: 6\bodyfontsize, fails on: \placefigure{x $x=x$ x}{}
-
-%D More hyphenation control, will be combined with align
-%D setup.
-
-\def\nohyphens
- {\ifx\dohyphens\relax
- \edef\dohyphens
- {\hyphenpenalty\the\hyphenpenalty
- \exhyphenpenalty\the\exhyphenpenalty\relax}%
- \fi
- \hyphenpenalty\plustenthousand
- \exhyphenpenalty\plustenthousand}
-
-\let\dohyphens\relax
-
-%D To prevent unwanted side effects, we also have to check
-%D for hyphens here:
-
-% \def\setraggedness#1%
-% {\ifnum\tolerance<1500\relax % small values have
-% \tolerance1500\relax % unwanted side effects
-% \fi
-% \spaceskip2.5\hsize % we misuse these registers
-% \xspaceskip#1\relax % for temporary storage;
-% \divide\spaceskip \xspaceskip % they are changed anyway
-% \ifx\dohyphens\relax
-% \hyphenpenalty\spaceskip % \else no hyphens is active
-% \fi}
-
-\newskip\@@raggedskipa
-\newskip\@@raggedskipb
-
-\def\setraggedness#1%
- {\ifnum\tolerance<1500\relax % small values have
- \tolerance1500\relax % unwanted side effects
- \fi
- \ifx\dohyphens\relax
- % this code will be reconsidered / kind of fuzzy (and old)
- \@@raggedskipa 2.5\hsize
- \@@raggedskipb #1\relax
- \divide\@@raggedskipa \@@raggedskipb
- \hyphenpenalty\@@raggedskipa
- \fi}
-
-\let\updateraggedskips\relax
-
-\def\setraggedskips#1#2#3#4#5#6#7% never change this name
- {\def\updateraggedskips{\dosetraggedskips{#1}{#2}{#3}{#4}{#5}{#6}{#7}}%
- \updateraggedskips}
-
-\def\dosetraggedskips#1#2#3#4#5#6#7%
- {\chardef \raggedstatus#1\relax
- \leftskip 1\leftskip \!!plus#2\relax % zie: Tex By Topic 8.1.3
- \rightskip 1\rightskip\!!plus#3\relax % zie: Tex By Topic 8.1.3
- \spaceskip #4\relax
- \xspaceskip #5\relax
- \parfillskip\zeropoint\!!plus#6\relax
- \parindent #7\relax}
-
-% \def\notragged%
-% {\setraggedskips{0}{0em}{0em}{0em}{0em}{1fil}{\parindent}}
-
-% older (context) names:
-
-\let\spaceamount \interwordspace
-\let\emspaceamount\emwidth
-
-% tracing:
-
-\def\doshowpardata#1%
- {\ifx#1\relax\else
- \hbox{\string#1: \the#1}\endgraf
- \expandafter\doshowpardata
- \fi}
-
-\def\showpardata
- {\edef\thepardata
- {\hbox{font: \fontname\font}\endgraf
- \doshowpardata
- \interwordspace \interwordstretch \interwordshrink \emwidth \exheight \extraspace
- \hsize \vsize
- \leftskip \rightskip
- \spaceskip \xspaceskip
- \parindent \parfillskip
- \hyphenpenalty \exhyphenpenalty
- \displaywidowpenalty \widowpenalty \clubpenalty \brokenpenalty
- \doublehyphendemerits \finalhyphendemerits \adjdemerits
- \relax}%
- \begingroup
- \dontshowcomposition
- \inleftmargin{\vsmash
- {\switchtobodyfont[7pt,tt]%
- \framed[\c!align=\v!right]{\thepardata}}}%
- \endgroup}
-
-\def\startshowpardata
- {\begingroup
- \showcomposition
- \showstruts\tracepositionstrue \tracingparagraphs\maxdimen
- \appendtoksonce\showpardata\let\showpardata\relax\to\everypar}
-
-\def\stopshowpardata
- {\endgraf
- \endgroup}
-
-% \defineXMLenvironment[showpardata] \startshowpardata \stopshowpardata
-% \defineXMLsingular [showpardata] \showpardata
-
-% defaults
-
-\def\raggedfillamount {1fil}
-\def\raggedhalffillamount{.5fil}
-\def\raggedspaceamount {\interwordspace} % {.3333em}
-\def\raggedxspaceamount {.5em}
-
-\def\notragged
- {\chardef\raggedstatus\zerocount
- \leftskip 1\leftskip
- \rightskip 1\rightskip
- \spaceskip \zeropoint
- \xspaceskip \zeropoint
- \parfillskip\zeropoint\!!plus\raggedfillamount\relax
- \let\updateraggedskips\relax} % new
-
-\let\forgetragged\notragged
-
-\def\raggedleft
- {\setraggedness\leftraggedness
- \setraggedskips1\leftraggedness\zeropoint\raggedspaceamount
- \raggedxspaceamount\zeropoint\zeropoint}
-
-\def\raggedcenter
- {\setraggedness\middleraggedness
- \setraggedskips2\middleraggedness\middleraggedness\raggedspaceamount
- \raggedxspaceamount\zeropoint\zeropoint}
-
-%D We used to have:
-%D
-%D \starttyping
-%D \def\raggedright
-%D {\setraggedness\rightraggedness
-%D \setraggedskips{3}{0em}{\rightraggedness}{.3333em}{.5em}{0em}{\parindent}}
-%D \stoptyping
-%D
-%D However, the next alternative, suggested by Taco, is better.
-
-\def\raggedright
- {\setraggedness\rightraggedness
- \setraggedskips3\zeropoint\rightraggedness\raggedspaceamount
- \raggedxspaceamount\raggedfillamount\parindent}
-
-\def\veryraggedleft
- {\setraggedskips1\raggedfillamount\zeropoint\raggedspaceamount
- \raggedxspaceamount\zeropoint\zeropoint}
-
-%D When we want the last line to have a natural width:
-%D
-%D \starttyping
-%D \def\veryraggedleft%
-%D {\setraggedskips{1}{1fil}{0em}{.3333em}{.5em}{0em}{-1fil}}
-%D \stoptyping
-%D
-%D but this one is not accepted by the macros.
-
-\def\veryraggedcenter
- {\setraggedskips2\raggedfillamount\raggedfillamount\raggedspaceamount
- \raggedxspaceamount\zeropoint\zeropoint}
-
-\def\veryraggedright
- {\setraggedskips3\zeropoint\raggedfillamount\raggedspaceamount
- \raggedxspaceamount\zeropoint\parindent}
-
-\def\ttraggedright
- {\tttf
- \setraggedskips3\zeropoint\rightraggedness
- \zeropoint\zeropoint\zeropoint\parindent} % \ctxparindent
-
-%D A bonus one:
-
-\def\raggedwidecenter
- {\setraggedness\middleraggedness
- \setraggedskips2\raggedhalffillamount\raggedhalffillamount
- \raggedspaceamount\raggedxspaceamount\zeropoint\zeropoint}
-
-\newif\if@@asragged \@@asraggedtrue % old method
-
-% todo
-%
-% \setuplayout[grid=yes,lines=44] \showgrid
-% \starttext
-% test \vfill test \endgraf \strut \endgraf \vskip-\lineheight \removedepth \pagina test
-% \stoptext
-
-% \setupalign[reset,new,right,old]
-
-\def\@@align@@rl{\if!!donea\veryraggedleft \else\raggedleft \fi}
-\def\@@align@@rr{\if!!donea\veryraggedright \else\raggedright \fi}
-\def\@@align@@rc{\if!!donea\veryraggedcenter\else\raggedcenter\fi}
-
-\setvalue{@@ngila@@\v!broad }{\!!doneatrue}
-\setvalue{@@ngila@@\v!wide }{\!!donebtrue}
-
-\def\installalign#1#2{\setvalue{@@align@@#1}{#2}} % can be used for overloads
-
-\installalign \v!new {\@@asraggedfalse}
-\installalign \v!old {\@@asraggedtrue}
-\installalign \empty {}
-
-\installalign \v!line {\baselinebottom}
-\installalign \v!bottom {\raggedbottom}
-\installalign \v!height {\normalbottom}
-\installalign \v!width {\notragged}
-\installalign \v!normal {\notragged}
-\installalign \v!yes {\notragged}
-\installalign \v!no {\raggedright}
-\installalign \v!inner {\if@@asragged \setraggedparagraphmode\@@align@@rl\@@align@@rr \else
- \setraggedparagraphmode\@@align@@rr\@@align@@rl \fi}
-\installalign \v!outer {\if@@asragged \setraggedparagraphmode\@@align@@rr\@@align@@rl \else
- \setraggedparagraphmode\@@align@@rl\@@align@@rr \fi}
-\installalign \v!left {\if@@asragged\@@align@@rl\else\@@align@@rr\fi}
-\installalign \v!right {\if@@asragged\@@align@@rr\else\@@align@@rl\fi}
-\installalign \v!middle {\if!!doneb\raggedwidecenter\else\@@align@@rc\fi}
-\installalign \v!flushleft {\if!!donea\veryraggedright \else\raggedright\fi}
-\installalign \v!flushright {\if!!donea\veryraggedleft \else\raggedleft \fi}
-\installalign \v!flushouter {\setraggedparagraphmode\raggedleft\raggedright}
-\installalign \v!flushinner {\setraggedparagraphmode\raggedright\raggedleft}
-\installalign \v!center {\if!!doneb\raggedwidecenter\else\@@align@@rc\fi}
-\installalign \v!hanging {\enableprotruding}
-\installalign \v!nothanging {\disableprotruding}
-\installalign \v!hz {\enableadjusting}
-\installalign \v!nohz {\disableadjusting}
-\installalign \v!spacing {\enablespacehandling \enablekernhandling}
-\installalign \v!nospacing {\disablespacehandling\disablekernhandling}
-\installalign \v!hyphenated {\dohyphens}
-\installalign \v!nothyphenated {\nohyphens}
-\installalign \v!new {\@@asraggedfalse} % so new will give you consistency
-\installalign \v!reset {\notragged\normalbottom}
-
-\installalign \v!tolerant {\tolerance3000 \relax}
-\installalign \v!verytolerant {\tolerance4500 \relax}
-\installalign \v!stretch {\emergencystretch\bodyfontsize}
-
-\installalign \v!grid {\mkenablegridsnapping } % only mkiv
-\installalign \v!nogrid {\mkdisablegridsnapping} % only mkiv
-
-\newcount\hyphenminoffset
-
-\ifx\sethyphenationvariables\undefined \let\sethyphenationvariables\relax \fi
-
-\def\lesshyphens
- {\advance\hyphenminoffset\plusone
- \sethyphenationvariables}
-
-\def\morehyphens
- {\ifcase\hyphenminoffset \else
- \advance\hyphenminoffset\minusone
- \fi
- \sethyphenationvariables}
-
-\installalign \v!lesshyphenation {\lesshyphens}
-\installalign \v!morehyphenation {\morehyphens}
-
-\def\dodosetupalign#1{\csname @@align@@#1\endcsname}
-\def\dodosetupngila#1{\csname @@ngila@@#1\endcsname}
-
-\def\setupalign
- {\dosingleargument\dosetupalign}
-
-\def\dosetupalign[#1]%
- {\!!doneafalse
- \!!donebfalse
- \processcommacommand[#1]\dodosetupngila
- \processcommacommand[#1]\dodosetupalign}
-
-% \setupalign[flushleft] \input ward \par % lijnlinks
-% \setupalign[right] \input ward \par
-
-% \setupalign[flushright] \input ward \par % lijnrechts
-% \setupalign[left] \input ward \par
-
-% \setupalign[middle] \input ward \par % centreer
-% \setupalign[center] \input ward \par
-
-\def\startalignment
- {\bgroup
- \setupalign}
-
-\def\stopalignment
- {\par
- \egroup}
-
-\chardef\alignstrutmode=1
-
-% see later for the real definition, which in the simple case is:
-
-\newtoks \everyleftofalignedline
-\newtoks \everyrightofalignedline
-
-\def\shiftalignedline#1#2#3#4% left, right, inner, outer
- {\rightorleftpageaction
- {\everyleftofalignedline {\hskip\dimexpr#1+#3\relax}%
- \everyrightofalignedline{\hskip\dimexpr#2+#4\relax}}
- {\everyleftofalignedline {\hskip\dimexpr#1+#4\relax}%
- \everyrightofalignedline{\hskip\dimexpr#2+#3\relax}}}
-
-% \def\doalignline#1#2% \\ == newline
-% {\begingroup
-% \setlocalhsize % new
-% \def\\{\egroup\par\doalignline{#1}{#2}\bgroup}%
-% \dowithnextbox
-% {\noindentation % was \noindent
-% \dontleavehmode % added in marrakesch at TUG 2006
-% \hbox to \localhsize
-% {\ifcase\alignstrutmode\or\strut\fi
-% \the\everyleftofalignedline
-% #1\unhbox\nextbox#2\relax
-% \the\everyrightofalignedline}%
-% \endgroup}
-% \hbox}
-
-\def\doalignline#1#2% \\ == newline
- {\noindentation % was \noindent
- \dontleavehmode % added in marrakesch at TUG 2006\begingroup
- \begingroup
- \setlocalhsize % new
- \def\\{\egroup\par\doalignline{#1}{#2}\bgroup}%
- \dowithnextbox
- {\hbox to \localhsize
- {\ifcase\alignstrutmode\or\strut\fi
- \the\everyleftofalignedline
- #1\unhbox\nextbox#2\relax
- \the\everyrightofalignedline}%
- \endgroup}
- \hbox}
-
-% directe commando's
-
-\def\leftaligned {\doalignline \relax \hss }
-\def\midaligned {\doalignline \hss \hss }
-\def\rightaligned{\doalignline \hss \relax}
-
-\def\regelbegrensd#1{\limitatetext{#1}{\hsize}{\unknown}} % to be translated
-
-% indirecte commando's
-
-\letvalue{\s!do\v!line\v!left }\leftaligned
-\letvalue{\s!do\v!line\v!right }\rightaligned
-\letvalue{\s!do\v!line\v!middle }\midaligned
-\letvalue{\s!do\v!line\v!flushleft }\rightaligned
-\letvalue{\s!do\v!line\v!flushright}\leftaligned
-\letvalue{\s!do\v!line\v!center }\midaligned
-
-\def\doalignedline#1{\csname\s!do\v!line#1\endcsname}
-
-%D Experimental:
-
-% simple version
-%
-% \def\doxalignline#1#2%
-% {\bgroup
-% \setlocalhsize
-% \def\\{\egroup\par\doxalignline{#1}{#2}\bgroup}% inefficient
-% \dowithnextbox
-% {\noindent\hbox to \localhsize
-% {\ifcase\alignstrutmode\or\strut\fi
-% \signalrightpage
-% \doifrightpageelse{#1\unhbox\nextbox#2}{#2\unhbox\nextbox#1}}%
-% \egroup}
-% \hbox}
-%
-% \setvalue{\s!do\v!regel\v!binnen}{\doxalignline\relax\hss}
-% \setvalue{\s!do\v!regel\v!buiten}{\doxalignline\hss\relax}
-%
-% more extensive:
-
-\def\doxalignline#1#2#3#4#5#6%
- {\noindentation % was \noindent
- \dontleavehmode % added in marrakesch at TUG 2006\begingroup
- \begingroup
- \setlocalhsize
- \def\\{\egroup\par\doxalignline#1#2#3#4#5#6\bgroup}% inefficient
- \dowithnextbox
- {%\noindent moved up
- \hbox to \localhsize
- {#1\hskip\ifdone#2\else#3\fi#4%
- \hbox to \localhsize
- {\the\everyleftofalignedline
- \ifcase\alignstrutmode\or\strut\fi
- \ifdone#5\unhbox\nextbox#6\else#6\unhbox\nextbox#5\fi
- \the\everyrightofalignedline}%
- \hss}%
- \endgroup}
- \hbox}
-
-\def\doxcheckline
- {\signalrightpage\doifrightpageelse\donetrue\donefalse}
-
-\setvalue{\s!do\v!line\v!inner }{\doxalignline\doxcheckline++\zeropoint \relax\hss }
-\setvalue{\s!do\v!line\v!outer }{\doxalignline\doxcheckline++\zeropoint \hss \relax}
-\setvalue{\s!do\v!line\v!innermargin}{\doxalignline\doxcheckline-+\innermargintotal\relax\hss }
-\setvalue{\s!do\v!line\v!outermargin}{\doxalignline\doxcheckline+-\outermargintotal\hss \relax}
-\setvalue{\s!do\v!line\v!inneredge }{\doxalignline\doxcheckline-+\inneredgetotal \relax\hss }
-\setvalue{\s!do\v!line\v!outeredge }{\doxalignline\doxcheckline+-\outeredgetotal \hss \relax}
-\setvalue{\s!do\v!line\v!backspace }{\doxalignline\doxcheckline-+\backspace \relax\hss }
-\setvalue{\s!do\v!line\v!cutspace }{\doxalignline\doxcheckline+-\cutspace \hss \relax}
-
-\setvalue{\s!do\v!line\v!leftmargin }{\doxalignline\donefalse --\leftmargintotal \hss \relax}
-\setvalue{\s!do\v!line\v!rightmargin}{\doxalignline\donefalse ++\rightmargintotal\relax\hss }
-\setvalue{\s!do\v!line\v!leftedge }{\doxalignline\donefalse --\leftedgetotal \hss \relax}
-\setvalue{\s!do\v!line\v!rightedge }{\doxalignline\donefalse ++\rightedgetotal \relax\hss }
-
-% ! ! ! beware, redefining \doalignline gives the wrong results ! ! !
-%
-% \def\doalignline{\doxalignline\donefalse++\zeropoint}
-
-%D Better:
-
-\def\doalignedline#1{\csname\s!do\v!line#1\endcsname}
-
-% \def\alignedline#1#2% setting default
-% {\csname
-% \s!do\v!line
-% \ifundefined{\s!do\v!line#1}#2\else#1\fi
-% \endcsname}
-
-\def\alignedline#1#2% setting default
- {\csname\s!do\v!line\ifcsname\s!do\v!line#1\endcsname#1\else#2\fi\endcsname}
-
-%D ...
-
-\def\dosetuptolerance[#1]%
- {\doifinsetelse\v!vertical{#1}%
- {\ExpandFirstAfter\processallactionsinset
- [#1]
- [ \v!verystrict=>\def\bottomtolerance{},
- \v!strict=>\def\bottomtolerance{.050},
- \v!tolerant=>\def\bottomtolerance{.075},
- \v!verytolerant=>\def\bottomtolerance{.100}]}%
- {\ExpandFirstAfter\processallactionsinset
- [#1]
- [ \v!stretch=>\emergencystretch\bodyfontsize,
- \v!space=>\spaceskip.5em\!!plus.25em\!!minus.25em\relax,
- \v!verystrict=>\tolerance 200,
- \v!strict=>\tolerance1500,
- \v!tolerant=>\tolerance3000,
- \v!verytolerant=>\tolerance4500]}}
-
-\def\setuptolerance
- {\dosingleargument\dosetuptolerance}
-
-% \def\woordrechts
-% {\groupedcommand{\hfill\hbox}{\parfillskip\zeropoint}}
-
-% beware: \wordright{whatever\kern-\rightskip} should work!
-% so, no funny boxing here
-
-\def\dowordright[#1]%
- {% don't change
- \groupedcommand
- {\removeunwantedspaces
- \hfill
- \allowbreak % changed back from \hskip\zeropoint
- \strut
- \hfill
- \quad % decent spacing
- \hbox}
- {\doifelse{#1}\v!right{\kern-\rightskip}{\doifsomething{#1}{\kern-#1}}%
- \parfillskip\zeropoint
- %\finalhyphendemerits\zerocount % yes or no
- \par}}
-
-\def\wordright
- {\dosingleempty\dowordright}
-
-% \dorecurse{5}{something } \wordright{--someone} \endgraf
-% \dorecurse{6}{something } \wordright{--someone} \endgraf
-% \dorecurse{7}{something } \wordright{--someone} \endgraf
-%
-% \dorecurse{5}{something } \wordright{--someone else entirely} \endgraf
-% \dorecurse{6}{something } \wordright{--someone else entirely} \endgraf
-% \dorecurse{7}{something } \wordright{--someone else entirely} \endgraf
-%
-% \wordright[\rightskip]{whatever}
-
-% \simplealignedbox{2cm}{right}{x}
-
-\setvalue{\s!simple\c!align\v!right }#1#2{\hbox to #1{#2\hss}}
-\setvalue{\s!simple\c!align\v!left }#1#2{\hbox to #1{\hss#2}}
-\setvalue{\s!simple\c!align\v!flushright }#1#2{\hbox to #1{\hss#2}}
-\setvalue{\s!simple\c!align\v!flushleft }#1#2{\hbox to #1{#2\hss}}
-\setvalue{\s!simple\c!align\v!middle }#1#2{\hbox to #1{\hss#2\hss}}
-
-\def\simplealignedbox#1{\executeifdefined{\s!simple\c!align#1}{\getvalue{\s!simple\c!align\v!right}}}
-
-%D \macros
-%D {pushindentation,popindentation}
-%D
-%D The pushing and popping is done by:
-
-\newbox\indentationboxA
-\newbox\indentationboxB
-
-\def\pushindentation
- {\bgroup
- \ifhmode
- \unskip
- \setbox\indentationboxA\lastbox % get \strut if present
- \unskip
- \setbox\indentationboxB\lastbox % get \indent generated box
- \unskip
- \else
- \hskip\zeropoint % switch to horizontal mode
- \unskip
- \setbox\indentationboxA\lastbox % get \indent generated box
- \setbox\indentationboxB\box\voidb@x
- \fi}
-
-\def\popindentation
- {\box\indentationboxB\box\indentationboxA % put back the boxes
- \egroup}
-
-%D The only complication lays in \type{\strut}. In \PLAIN\
-%D \TEX\ a \type{\strut} is defined as:
-%D
-%D \starttyping
-%D \def\strut%
-%D {\relax\ifmmode\copy\strutbox\else\unhcopy\strutbox\fi}
-%D \stoptyping
-%D
-%D But what is a \type{\strut}? Normally it's a rule of width
-%D zero, but when made visual, it's a rule and a negative skip.
-%D The mechanism for putting things in the margins described
-%D here cannot handle this situation very well. One
-%D characteristic of \type{\strut} is that the \type{\unhcopy}
-%D results in entering horizontal mode, which in return leads
-%D to some indentation.
-%D
-%D To serve our purpose a bit better, the macro \type{\strut}
-%D can be redefined as:
-%D
-%D \starttyping
-%D \def\strut
-%D {\relax\ifmmode\else\hskip0pt\fi\copy\strutbox}
-%D \stoptyping
-%D
-%D Or more compatible:
-%D
-%D \starttyping
-%D \def\strut
-%D {\relax\ifmmode
-%D \copy\strutbox
-%D \else
-%D \bgroup\setbox\strutbox=\normalhbox{\box\strutbox}\unhcopy\strutbox\egroup
-%D \fi}
-%D \stoptyping
-%D
-%D In \CONTEXT\ however we save some processing time by putting
-%D an extra \type{\hbox} around the \type{\strutbox}.
-
-% moved from page-lin.tex to here (due to visualization added
-% in august 2003)
-%
-% \unexpanded \def\crlf
-% {\ifhmode\unskip\else\strut\fi\ifcase\raggedstatus\hfil\fi\break}
-
-\unexpanded \def\crlf
- {\ifhmode
- \unskip
- \prewordbreak\crlfplaceholder
- \ifcase\raggedstatus\hfil\or\or\or\hfil\fi
- \break
- \else
- \crlfplaceholder
- \endgraf
- \fi}
-
-\def\crlfplaceholder
- {\strut}
-
-\def\settestcrlf
- {\def\crlfplaceholder
- {\hbox to \zeropoint
- {\strut{\infofont\kern.25em}\lohi{\infofont CR}{\infofont LF}\hss}}}
-
-%D \starttyping
-%D % \setuplayout[gridgrid=yes] \showgrid
-%D
-%D \startbuffer
-%D test 1\crlf
-%D test 2\crlf
-%D
-%D \crlf test 3
-%D
-%D test 4\crlf
-%D test 5
-%D
-%D \crlf
-%D \crlf
-%D \crlf
-%D test 6
-%D \stopbuffer
-%D
-%D \hbox
-%D {\hsize5em
-%D \ruledvtop{\getbuffer}\enspace
-%D \ruledvtop{\showstruts\getbuffer}\enspace
-%D \hsize15em \setuptyping[before=,after=]%
-%D \ruledvtop{\typebuffer}}
-%D \stoptyping
-
-\def\opeenregel % to be used grouped
- {\def\crlf{\removelastspace\space}\let\\\crlf}
-
-\def\showstruts
- {\setteststrut
- \settestcrlf}
-
-\def\definehspace
- {\dotripleempty\dodefinehspace}
-
-\def\dodefinehspace[#1][#2][#3]% #1 = optional namespace
- {\ifthirdargument
- \setvalue{\??hs#1:#2}{#3}%
- \else
- \setvalue{\??hs:#1}{#2}%
- \fi}
-
-\unexpanded\def\hspace
- {\dodoubleempty\dohspace}
-
-%\def\dohspace[#1][#2]%
-% {\ifhmode
-% \removeunwantedspaces
-% \hskip
-% \ifsecondargument
-% \hspaceamount{#1}{#2}%
-% \else
-% \hspaceamount\empty{\iffirstargument#1\else\s!default\fi}%
-% \fi
-% \expandafter\ignorespaces
-% \fi}
-
-\def\dohspace[#1][#2]%
- {\ifsecondargument
- \dodohspace[#1][#2]%
- \else\iffirstargument
- \hspace[][#1]%
- \else
- \hspace[][\s!default]%
- \fi\fi}
-
-% \def\dodohspace[#1][#2#3]%
-% {\ifhmode
-% \removeunwantedspaces
-% \doifelse{#2}{-}
-% {{\scratchskip\hspaceamount{#1}{#3}\hskip-\scratchskip}}
-% {\hskip\hspaceamount{#1}{#2#3}}%
-% \expandafter\ignorespaces
-% \fi}
-%
-% not needed, tex handles -- as +
-
-\def\dodohspace[#1][#2]%
- {\ifhmode
- \removeunwantedspaces
- \hskip\hspaceamount{#1}{#2}%
- \expandafter\ignorespaces
- \fi}
-
-\def\hspaceamount#1#2%
- {\executeifdefined{\??hs#1:#2}{\executeifdefined{\??hs:#2}\zeropoint}}
-
-\definehspace [\v!small] [.25\emspaceamount]
-\definehspace [\v!medium] [.5\emspaceamount]
-\definehspace [\v!big] [1\emspaceamount]
-\definehspace [\v!normal] [1\spaceamount]
-\definehspace [\v!default] [\spaceamount]
-
-%D Taken from Taco's math module (cq. \AMS\ macros), but
-%D adapted to \type {\hspace}:
-
-\unexpanded\def\textormathspace#1#2#3%
- {\ifmmode\mskip#1#2\else\kern#1\hspaceamount\empty{#3}\fi\relax}
-
-\newmuskip\hairmuskip \hairmuskip=.15mu
-
-\def\hairspace {\textormathspace+\hairmuskip{.5}}
-\def\thinspace {\textormathspace+\thinmuskip 1}
-\def\medspace {\textormathspace+\medmuskip 2}
-\def\thickspace {\textormathspace+\thickmuskip3}
-\def\neghairspace {\textormathspace-\thinmuskip{.5}}
-\def\negthinspace {\textormathspace-\thinmuskip 1}
-\def\negmedspace {\textormathspace-\medmuskip 2}
-\def\negthickspace{\textormathspace-\thickmuskip3}
-
-\definehspace[.5][.1250\emspaceamount] % could also be [.1250\spaceamount]
-\definehspace[1] [.1667\emspaceamount]
-\definehspace[2] [.2222\emspaceamount]
-\definehspace[3] [.2777\emspaceamount]
-
-\let \, \thinspace
-\let \: \medspace
-\let \; \thickspace
-\let \! \negthinspace
-
-% this will become an alternative bunch of \blank settings
-%
-% \startlines
-% \scratchskip=.23pt plus 10pt minus 4pt \relax \number\scratchskip \space \the\scratchskip
-% \setsimplifiedskip\scratchskip1 \number\scratchskip \space \the\scratchskip
-% \setsimplifiedskip\scratchskip2 \number\scratchskip \space \the\scratchskip
-% \getsimplifiedskip\scratchskip\scratchcounter \number\scratchcounter
-% \stoplines
-%
-% \hrule width10cm \endgraf
-% \discardedskip{10pt}
-% \retainedskip {4pt}
-% \discardedskip {5pt}
-% \hrule width10cm \endgraf
-% \blockedskip{0pt}
-% \discardedskip{10pt}
-% \retainedskip {4pt}
-% \discardedskip {5pt}
-% \hrule width10cm \endgraf
-% \frozenskip {4cm}
-% \hrule width10cm \endgraf
-% \vskip10pt
-% \hrule width10cm \endgraf
-
-% ! ! ! etex only, evt splitskip macro gebruiken (syst-new)
-
-\newskip\simplifiedskip
-\newskip\simplifiedcounter
-
-\chardef\@@discardedskip1
-\chardef\@@retainedskip 2
-\chardef\@@forcedskip 3
-\chardef\@@blockedskip 4
-\chardef\@@frozenskip 5 % after heads, no break
-
-\def\setsimplifiedskip#1#2%
- {#1\dimexpr(10\dimexpr(#1/10)) plus \gluestretch#1 minus \glueshrink#1\relax
- \advance#1\numexpr(#2)sp\relax}
-
-\def\getsimplifiedskip#1#2%
- {\simplifiedskip#1\relax
- \ifzeropt\simplifiedskip % \ifdim\simplifiedskip=\zeropoint
- #2\zerocount
- \else
- \simplifiedcounter\dimexpr10\dimexpr#1/10\relax\relax
- \advance\simplifiedskip-\simplifiedcounter
- #2\number\simplifiedskip\relax
- \fi}
-
-\def\conditionalskip#1#2%
- {\scratchskip#1\relax
- \setsimplifiedskip\scratchskip#2\relax
- \vskip\scratchskip\relax}
-
-\def\defrostskip
- {\scratchskip\lastskip\penalty50000\normalvskip-\scratchskip\penalty50000\relax}
-
-\def\frozenskip#1%
- {\endgraf
- \ifvmode
- \getsimplifiedskip\lastskip\scratchcounter
- \ifdim\lastskip>#1\else
- \defrostskip
- \conditionalskip{#1}\@@frozenskip
- \fi
- \fi}
-
-\def\discardedskip#1%
- {\endgraf
- \ifvmode
- \getsimplifiedskip\lastskip\scratchcounter
- \ifcase\scratchcounter
- \conditionalskip{#1}\@@discardedskip
- \or % discard
- \ifdim\lastskip>#1\else
- \normalvskip-\lastskip
- \conditionalskip{#1}\@@discardedskip
- \fi
- \or % retain
- \ifdim\lastskip>#1\else
- \normalvskip-\lastskip
- \conditionalskip{#1}\@@discardedskip
- \fi
- \or % forced
- \conditionalskip{#1}\@@discardedskip
- \or % ignored
- \or % frozen
- \ifdim\lastskip>#1\else
- \defrostskip
- \conditionalskip{#1}\@@frozenskip
- \fi
- \else\ifdim#1=\zeropoint\else
- \vskip#1\relax
- \fi\fi
- \fi}
-
-\def\retainedskip#1%
- {\endgraf
- \ifvmode
- \getsimplifiedskip\lastskip\scratchcounter
- \ifcase\scratchcounter
- \conditionalskip{#1}\@@retainedskip
- \or % discard
- \normalvskip-\lastskip
- \conditionalskip{#1}\@@retainedskip
- \or % retain
- \ifdim\lastskip>#1\else
- \normalvskip-\lastskip
- \conditionalskip{#1}\@@retainedskip
- \fi
- \or % forced
- \conditionalskip{#1}\@@retainedskip
- \or % ignored
- \or % frozen
- \ifdim\lastskip>#1\else
- \defrostskip
- \conditionalskip{#1}\@@frozenskip
- \fi
- \else\ifdim#1=\zeropoint\else
- \vskip#1\relax
- \fi\fi
- \fi}
-
-\def\forcedskip#1%
- {\endgraf
- \ifvmode
- \conditionalskip{#1}\@@forcedskip
- \fi}
-
-\def\blockedskip#1%
- {\endgraf
- \ifvmode
- \getsimplifiedskip\lastskip\scratchcounter
- \ifcase\scratchcounter
- \conditionalskip{#1}\@@blockedskip
- \or % discard
- \conditionalskip{#1}\@@blockedskip
- \or % retain
- \conditionalskip{#1}\@@blockedskip
- \or % forced
- \conditionalskip{#1}\@@blockedskip
- \or % ignored
- \or % frozen
- \ifdim\lastskip>#1\else
- \defrostskip
- \conditionalskip{#1}\@@frozenskip
- \fi
- \else\ifdim#1=\zeropoint\else
- \vskip#1\relax
- \fi\fi
- \fi}
-
-% beware, changing this will break some code (like pos/backgrounds)
-
-\newtoks\everyfirstparagraphintro
-\newtoks\everynextparagraphintro
-\newtoks\@@everyparagraphtoks
-
-\chardef\everyparagraphintro\zerocount
-
-\def\setupparagraphintro
- {\dodoubleempty\dosetupparagraphintro}
-
-\def\dosetupparagraphintro[#1][#2]%
- {\processallactionsinset
- [#1]
- [ \v!reset=>\global\chardef\everyparagraphintro\zerocount
- \global\everyfirstparagraphintro\emptytoks
- \global\everynextparagraphintro \emptytoks,
- \v!first=>\global\chardef\everyparagraphintro\plusone
- \doglobal\appendtoks#2\to\everyfirstparagraphintro,
- \v!next=>\ifcase\everyparagraphintro\global\chardef\everyparagraphintro\plusone\fi
- \doglobal\appendtoks#2\to\everynextparagraphintro,
- \v!each=>\ifcase\everyparagraphintro\global\chardef\everyparagraphintro\plustwo\fi
- \doglobal\appendtoks#2\to\everyfirstparagraphintro
- \doglobal\appendtoks#2\to\everynextparagraphintro]}
-
-%D We can say:
-%D
-%D \starttyping
-%D \setupparagraphintro[first][\index{Knuth}]
-%D \stoptyping
-%D
-%D Maybe more convenient is:
-%D
-%D \starttyping
-%D \flushatparagraph{\index{Zapf}}
-%D \stoptyping
-
-\def\flushatparagraph#1%
- {\global\chardef\everyparagraphintro\plusone
- \global\appendtoks{#1}\to\everyfirstparagraphintro}
-
-% \def\doinsertparagraphintro
-% {\ifcase\everyparagraphintro\relax
-% % no data
-% \@@everyparagraphtoks\emptytoks
-% \or
-% % first data
-% \global\chardef\everyparagraphintro\plustwo
-% \@@everyparagraphtoks\everyfirstparagraphintro
-% \global\everyfirstparagraphintro\emptytoks
-% \or
-% % next data
-% \@@everyparagraphtoks\everynextparagraphintro
-% \fi
-% \the\@@everyparagraphtoks}
-
-\def\doinsertparagraphintro
- {\begingroup
- \everypar\emptytoks
- \ifcase\everyparagraphintro\relax
- % no data
- \@@everyparagraphtoks\emptytoks
- \or
- % first data
- \global\chardef\everyparagraphintro\plustwo
- \@@everyparagraphtoks\everyfirstparagraphintro
- \global\everyfirstparagraphintro\emptytoks
- \or
- % next data
- \@@everyparagraphtoks\everynextparagraphintro
- \fi
- \the\@@everyparagraphtoks
- \endgroup}
-
-\def\insertparagraphintro
- {\ifcase\everyparagraphintro\else\@EA\doinsertparagraphintro\fi}
-
-% \appendtoksonce\insertparagraphintro\to\everypar % should come last
-
-%D \starttyping
-%D \setupparagraphintro[first][\hbox to 3.5em{\tt FIRST \hss}]
-%D \setupparagraphintro[first][\hbox to 3.5em{\tt TSRIF \hss}]
-%D \setupparagraphintro[next] [\hbox to 3.5em{\tt NEXT \hss}]
-%D \setupparagraphintro[next] [\hbox to 3.5em{\tt TXEN \hss}]
-%D \setupparagraphintro[each] [\hbox to 3.0em{\tt EACH \hss}]
-%D \setupparagraphintro[each] [\hbox to 3.0em{\tt HCEA \hss}]
-%D
-%D some paragraph \par
-%D some paragraph \par
-%D some paragraph \par
-%D
-%D \definelabel[parnumber]
-%D
-%D \setupparagraphintro[reset,each][\inleft{\slxx\parnumber}]
-%D
-%D some paragraph \par
-%D some paragraph \par
-%D some paragraph \par
-%D \stoptyping
-
-%D \macros
-%D {flushatnextpar}
-%D
-%D This macro collects data that will be flushed at the next paragraph.
-%D By using this macro you can avoid interfering nodes (writes, etc).
-
-\newbox \postponednodedata
-
-\def\flushatnextpar
- {\bgroup
- \dowithnextbox
- {\global\setbox\postponednodedata\hbox{\box\postponednodedata\box\nextbox}\egroup}%
- \hbox}
-
-\def\flushpostponednodedata
- {\ifvoid\postponednodedata\else
- \hbox{\smashedbox\postponednodedata}%
- \fi}
-
-% Very nasty but needed for margin stuff inside colored
-% paragraphs.
-
-\let\normalvadjust\vadjust
-
-% \def\graphicvadjust % bad, those low level color calls here
-% {\dowithnextbox
-% {\normalvadjust
-% {\dostartgraphicgroup
-% \localstarttextcolor
-% \unvbox\nextbox
-% \localstoptextcolor
-% \dostopgraphicgroup}}%
-% \vbox}
-
-% test this prikkels/pascal margin text before heads (mode
-% 1) as well as uitwerkingen (mode 2)
-
-%chardef\graphicvadjustmode=0 % fake
-%chardef\graphicvadjustmode=1 % normal
-\chardef\graphicvadjustmode=2 % normal + compensate (== default)
-
-\def\graphicvadjust % bad, those low level color calls here
- {\dowithnextboxcontent
- {\forgetall}
- {\ifcase\graphicvadjustmode \@EA \fakedvadjust \else \@EA\normalvadjust \fi
- {\dostartgraphicgroup % don't ask
- \localstarttextcolor
- \unvbox\nextbox
- \localstoptextcolor % don't ask
- \dostopgraphicgroup
- \ifcase\graphicvadjustmode \or \or
- % corrects for one line paragraphs
- \nointerlineskip
- \kern-\struttotal
- \nointerlineskip
- \verticalstrut
- \fi}}%
- \vbox}
-
-%D This works only in a properly strutted line, and is meant
-%D for deeply burried operations, like in heads.
-
-\def\fakedvadjust
- {\dowithnextbox
- {\setbox\nextbox\hbox{\llap{\lower\strutdepth\box\nextbox}}%
- \smashedbox\nextbox}%
- \vtop}
-
-\def\flexiblespaceamount#1#2#3%
- {#1\interwordspace
- \!!plus#2\interwordstretch
- \!!minus#3\interwordshrink}
-
-\def\fixedspaceamount#1%
- {#1\interwordspace}
-
-%D This is a dangerous feature because it makes the \TEX\ source
-%D less portable, i.e. any parser now needs to apply exactly the
-%D same algorithm when it wants to interpret the source. We
-%D strongly recommend not to mention this feature in manuals! It's
-%D provided for users who are hooked to such a mechanism.
-%D
-%D \starttyping
-%D \setupsorting[logo][next=\autoinsertnextspace] \logo[TEX]{\TeX}
-%D
-%D bla bla \TEX bla bla \TEX (bla) bla (\TEX)
-%D \stoptyping
-
-\def\autoinsertnextspace{\futurelet\nexttoken\doautoinsertnextspace}
-
-\def\doautoinsertnextspace % slightly extended version of a user supplied macro
- {\ifx\nexttoken \bgroup\else \ifx\nexttoken\begingroup\else
- \ifx\nexttoken \egroup\else \ifx\nexttoken \endgroup\else
- \ifx\nexttoken \/\else \ifx\nexttoken /\else \ifx\nexttoken ~\else
- \ifx\nexttoken \ \else \ifx\nexttoken \blankspace\else \ifx\nexttoken \space\else
- \ifx\nexttoken .\else \ifx\nexttoken ,\else
- \ifx\nexttoken !\else \ifx\nexttoken ?\else
- \ifx\nexttoken :\else \ifx\nexttoken ;\else
- \ifx\nexttoken '\else \ifx\nexttoken "\else
- \ifx\nexttoken )\else \ifx\nexttoken -\else \ifx\nexttoken |\else
- \ifx\nexttoken \%\else \ifx\nexttoken \&\else
- \space
- \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
-
-% moved from page-lin
-
-\def\installspacehandler#1#2% needs to set \obeyedspace
- {\setvalue{\??sr#1}{#2}}
-
-\installspacehandler \v!on
- {\obeyspaces
- \def\obeyedspace{\mathortext\normalspace{\dontleavehmode{\tt\controlspace}}}%
- \let\ =\obeyedspace}
-
-\installspacehandler \v!yes
- {\obeyspaces
- \def\obeyedspace{\mathortext\normalspace{\dontleavehmode \normalspace }}%
- \let\ =\obeyedspace}
-
-\installspacehandler \v!off
- {\normalspaces
- \let\obeyedspace\normalspace
- \let\ =\normalspace}
-
-\installspacehandler \v!fixed
- {\obeyspaces
- \def\obeyedspace{\mathortext\normalspace{\dontleavehmode\fixedspace}}%
- \let\ =\obeyedspace}
-
-\def\activatespacehandler#1%
- {\executeifdefined{\??sr#1}{\activatespacehandler\v!off}}
-
-% moved from page-lin
-
-%D When spacing is active we need to handle commands in
-%D a special way:
-%D
-%D \starttyping
-%D \setuplines[space=on]
-%D
-%D \startlines
-%D Let's talk about this{\ttsl\gobbleoneargument or}that.
-%D \stoplines
-%D
-%D \startlines
-%D Let's talk about this{\getvalue{ttsl}or}that.
-%D \stoplines
-%D \stoptyping
-%D
-%D One can indent in several ways:
-%D
-%D \starttyping
-%D \setupindenting[medium] \setuplines[indenting=odd] % no yes odd even
-%D
-%D \startlines
-%D first
-%D second
-%D third
-%D fourth
-%D \stoplines
-%D \stoptyping
-
-\def\setuplines
- {\dodoubleargument\getparameters[\??rg]}
-
-\def\startlines
- {\@@rgbefore
- \pushmacro\checkindentation
- \whitespace
- %\page[\v!preference]} gaat mis na koppen, nieuw: later \nobreak
- \begingroup
- \setupindenting[\@@rgindenting]%
- \typesettinglinestrue
- \setupwhitespace[\v!none]%
- \obeylines
- \ignorespaces
- \gdef\afterfirstobeyedline % tzt two pass, net als opsomming
- {\gdef\afterfirstobeyedline
- {\nobreak
- \global\let\afterfirstobeyedline\relax}}%
- \def\obeyedline
- {\par
- \afterfirstobeyedline
- \futurelet\next\dobetweenthelines}%
- \activatespacehandler\@@rgspace
- \GotoPar}
-
-\def\stoplines
- {\endgroup
- \popmacro\checkindentation
- \@@rgafter}
-
-\def\dobetweenthelines
- {\doifmeaningelse\next\obeyedline\@@rginbetween\donothing}
-
-\setuplines
- [\c!before=\blank,
- \c!after=\blank,
- \c!inbetween=\blank,
- \c!indenting=\v!no,
- \c!space=\v!default]
-
-\def\emptylines
- {\dosingleempty\doemptylines}
-
-\def\doemptylines[#1]%
- {\endgraf\dorecurse{\iffirstargument#1\else3\fi}\crlf}
-
-% plugins
-
-\loadmarkfile{core-spa}
-
-\setupwhitespace
- [\v!none]
-
-% still old-fashioned
-
-\indenting
- [\v!never]
-
-\setupindenting
- [\v!none]
-
-\setupblank
- [\v!standard,
- \v!big]
-
-\defineblank[\v!default] [\currentblank]
-\defineblank[\v!before] [\v!default]
-\defineblank[\v!inbetween][\v!default]
-\defineblank[\v!after] [\v!before]
-
-\setupinterlinespace
- [\c!minheight=0pt, % only special purpose
- \c!mindepth=0pt, % only special purpose
- \c!height=.72,
- \c!depth=.28,
- \c!top=1.0,
- \c!bottom=0.4,
- \c!distance=1pt,
- \c!line=2.8ex,
- \c!stretch=0]
-
-\setupnarrower
- [\c!before=\endgraf,
- \c!after=\endgraf,
- \c!left=1.5em,
- \c!right=1.5em,
- \c!middle=1.5em]
-
-\setuptolerance
- [\v!horizontal,\v!verystrict]
-
-\setuptolerance
- [\v!vertical,\v!strict]
-
-\setupalign
- [\v!bottom,
- \v!width]
-
-\setupspacing
- [\v!packed]
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-stg.tex b/Master/texmf-dist/tex/context/base/core-stg.mkii
index 94e5250e500..429e1e894ac 100644
--- a/Master/texmf-dist/tex/context/base/core-stg.tex
+++ b/Master/texmf-dist/tex/context/base/core-stg.mkii
@@ -12,7 +12,7 @@
%C details.
%D This is a prelude to strategies. It is rather old code
-%D used in a project may years ago. Use with care since I
+%D used in a project many years ago. Use with care since I
%D will pick up this thread. (moved from cont-new)
\unprotect
@@ -28,7 +28,7 @@
\definetwopasslist{\s!strategy}
-\def\registerstrategypass%
+\def\registerstrategypass
{\ifnum\currentstrategypass>\maximumstrategypass \else
\ifconditional\strategypassforced
\doglobal\increment\currentstrategypass
diff --git a/Master/texmf-dist/tex/context/base/core-syn.lua b/Master/texmf-dist/tex/context/base/core-syn.lua
deleted file mode 100644
index 1b4eb1e92d5..00000000000
--- a/Master/texmf-dist/tex/context/base/core-syn.lua
+++ /dev/null
@@ -1,116 +0,0 @@
--- filename : core-syn.lua
--- comment : companion to core-syn.tex
--- author : Hans Hagen, PRAGMA-ADE, Hasselt NL
--- copyright: PRAGMA ADE / ConTeXt Development Team
--- license : see context related readme files
-
-if not versions then versions = { } end versions['core-syn'] = 1.001
-if not jobs then jobs = { } end
-if not job then jobs['main'] = { } end job = jobs['main']
-if not job.sortedlists then job.sortedlists = { } end
-
-function job.definesortedlist(id)
- if not job.sortedlists[id] then
- job.sortedlists[id] = { }
- end
-end
-
-sorters = sorters or { }
-sorters.list = sorters.list or { }
-sorters.list.data = sorters.list.data or { }
-
-do
-
- function sorters.list.compare(a,b)
- return sorters.comparers.basic(a,b,1)
- end
-
- function sorters.list.prepare(data)
- sorters.prepare(data,sorters.splitters.utf,1)
- end
-
- function sorters.list.sort(data)
- sorters.sort(data,sorters.list.compare)
- end
-
- function sorters.list.unique(data)
- sorters.unique(data)
- end
-
- function sorters.list.cleanup(data)
- sorters.cleanup(data)
- end
-
- function sorters.list.finalize(data)
- -- we use the same splitter as with indices
- local split = { }
- for k,v in ipairs(data) do
- local entry, tag = v[2][1][3][1], ""
- local se = sorters.entries[sorters.language]
- if se and se[entry] then
- if type(se[entry]) == "number" then
- entry = se[entry]
- end
- tag = se[entry]
- else
- entry = 0
- tag = "unknown"
- end
- split[entry] = split[entry] or { tag = tag, data = { } }
- split[entry].data[#split[entry].data+1] = v
- end
- return split
- end
-
- -- for the moment we use the old structure, some day mkiv code
- -- will be different: more structure, less mess
-
- local template = {
- entry = "\\synonymentry{%s}{%s}{%s}{%s}"
- }
-
- function sorters.list.flush(sorted,class,flush)
- -- for the moment we don't add split data (letters) yet
- flush = flush or print
- class = class or 'abbreviation'
- for k,v in ipairs(table.sortedkeys(sorted)) do
- for _, vv in ipairs(sorted[v].data) do
- flush(string.format(template.entry,class,vv[2][1][1],vv[2][1][2],vv[3]))
- end
- end
- end
-
- function sorters.list.process(data)
- return sorters.process('list',data)
- end
-
-end
-
--- { { entry, key } }, meaning
-
-function job.loadsortedlist(class)
- if job.sortedlists[class] then
- if not sorters.list.data[class] then
- sorters.list.data[class] = {
- language = 'en',
- entries = { },
- flush = function(s) tex.sprint(tex.ctxcatcodes,s) end,
- sorted = false,
- class = class
- }
- local entries = sorters.list.data[class].entries
- for k,v in ipairs(job.sortedlists[class]) do
- if v[1] == 'l' then -- language
- sorters.list.data[class].language = v[2]
- else
- entries[#entries+1] = {
- v[1], -- kind (e)
- { { v[2], v[3] } }, -- entry, key
- v[4] -- optional meaning
- }
- end
- end
- end
- sorters.list.process(sorters.list.data[class])
- end
-end
diff --git a/Master/texmf-dist/tex/context/base/core-syn.mkii b/Master/texmf-dist/tex/context/base/core-syn.mkii
deleted file mode 100644
index b3fdb173890..00000000000
--- a/Master/texmf-dist/tex/context/base/core-syn.mkii
+++ /dev/null
@@ -1,28 +0,0 @@
-%D \module
-%D [ file=core-syn,
-%D version=1997.03.31,
-%D title=\CONTEXT\ Core Macros,
-%D subtitle=Synonyms and Sorts,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%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
-
-\def\mkdefinesortedlist#1% class
- {\addutilityreset{#1}}
-
-\def\mksavesortedlistentry#1#2#3#4%
- {\immediatewriteutility{s e {#1} {#2} {#3} {#4}}}
-
-\def\mksavesortedlistvariable#1#2#3% class type value
- {\immediatewriteutility{s #2 {#1} {#3}}}
-
-\def\mkloadsortedlist#1% class
- {\doutilities{#1}\jobname{#1}\relax\relax}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-syn.mkiv b/Master/texmf-dist/tex/context/base/core-syn.mkiv
deleted file mode 100644
index 23385c9e604..00000000000
--- a/Master/texmf-dist/tex/context/base/core-syn.mkiv
+++ /dev/null
@@ -1,51 +0,0 @@
-%D \module
-%D [ file=core-syn,
-%D version=1997.03.31,
-%D title=\CONTEXT\ Core Macros,
-%D subtitle=Synonyms and Sorts,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%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
-
-\registerctxluafile{core-syn}{1.001}
-
-\appendtoks
- \immediatewriteutilitytua{if not job.sortedlists then job.sortedlists = { } end}%
- \immediatewriteutilitytua{local js = job.sortedlists}%
-\to \everyopenutilities
-
-\let\allsortedlists\empty
-
-\appendtoks
- \processcommacommand[\allsortedlists]\mkdodefinesortedlist
- \globallet\allsortedlists\empty
-\to \everyopenutilities
-
-\def\mkdodefinesortedlist#1% class
- {\ctxlua{job.definesortedlist('#1')}%
- \immediatewriteutilitytua{job.definesortedlist('#1')}}
-
-\def\mkdefinesortedlist#1% class
- {\mkdodefinesortedlist{#1}%
- \doglobal\addtocommalist{#1}\allsortedlists}
-
-\def\mksavesortedlistentry#1#2#3#4% class key entry meaning
- {\immediatewriteutilitytua{ti(js['#1'],{'e','#2',\!!bs#3\!!es,\!!bs#4\!!es})}}
-
-\def\mksavesortedlistvariable#1#2#3% class type value
- {\immediatewriteutilitytua{ti(js['#1'],{'#2','#3'})}}
-
-\def\mkloadsortedlist#1% class
- {\bgroup
- \getvalue{\s!set#1}%
- \ctxlua{job.loadsortedlist('#1')}%
- \getvalue{\s!reset#1}%
- \egroup}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-sys.mkii b/Master/texmf-dist/tex/context/base/core-sys.mkii
index 6816364de7b..24975ffb634 100644
--- a/Master/texmf-dist/tex/context/base/core-sys.mkii
+++ b/Master/texmf-dist/tex/context/base/core-sys.mkii
@@ -11,4 +11,386 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-%D For the moment this file is empty.
+\writestatus{loading}{ConTeXt Core Macros / System}
+
+\unprotect
+
+%D Version checking:
+
+\def\newcontextversion#1%
+ {\doifelse{#1}\contextversion
+ {\let\newcontextversion\gobbleoneargument}
+ {\writeline
+ \writestatus{Fatal Error}{Your format does not match the base files!}%
+ \writeline
+ \writestatus{Format Version}{\contextversion\space\contextmark}%
+ \writestatus{Files Version}{#1}%
+ \batchmode
+ \normalend}}
+
+%D End of lines to the output. \TEX\ will map this onto the platform specific
+%D line ending. I hate this mess.
+
+%newlinechar=10 \def\outputnewlinechar{\rawcharacter{10}}
+\newlinechar=10 \edef\outputnewlinechar{^^J}
+
+% in case formats are shared:
+
+\def\initializenewlinechar
+ {\bgroup\newlinechar=10\xdef\outputnewlinechar{^^J}\egroup}
+
+%D Job names.
+
+\def\outputfilename {\@@svfile}
+\def\inputfilename {\@@svinputfile}
+\def\operatingsystem{\@@svtype}
+
+\let\jobfilename \jobname
+\let\jobfilesuffix\c!tex
+
+\def\splitjobfilename % todo: mkiv
+ {\resetsystemmode{suffix-\jobfilesuffix}%
+ \edef\ascii{\inputfilename}\defconvertedcommand\ascii\ascii
+ \splitstring\ascii\at.\to\jobfilename\and\jobfilesuffix
+ \lowercasestring\jobfilesuffix\to\jobfilesuffix
+ \doifnothing\jobfilename {\let\jobfilename \jobname}%
+ % todo and totest: \defconvertedcommand\jobfilename\jobfilename
+ \doifnothing\jobfilesuffix{\let\jobfilesuffix\c!tex}%
+ \setsystemmode{suffix-\jobfilesuffix}}
+
+% Some mechanisms (see x-res-01) use either \jobfilename or
+% \jobfilename.somesuffix, in which case we need to use the
+% full name if given or a default (like \jobfilename.xml);
+% this comes down to replacing the default tex suffix.
+
+\def\jobfullname{\jobfilename.\jobfilesuffix}
+
+\def\setjobfullname#1% #1 = default if not given
+ {\doifelsenothing\jobfilename
+ {\let\jobfullname\empty}
+ {\doif\jobfilesuffix\c!tex{\edef\jobfullname{\jobfilename.#1}}}}
+
+% ...
+
+\def\dosetupsystem[#1]%
+ {\getparameters[\??sv][#1]%
+ \setuprandomize[\@@svrandom]%
+ \beforesplitstring\@@svresolution\at dpi\to\@@svresolution
+ \let\outputresolution\@@svresolution
+ \ifcase\@@svn
+ % % 0 : unknown
+ \or
+ \setsystemmode\v!first % 1 : first run
+ \or
+ % % 2 : successive run
+ \or
+ \setsystemmode\v!first % 3 : first and only run
+ \or
+ \setsystemmode\v!last % 4 : (extra) last run
+ \fi
+% \processaction
+% [\@@svtype]
+% %[ mswin=>\edef\@@svline{\rawcharacter{13}\rawcharacter{10}}, % crlf
+% [ mswin=>\edef\@@svline{\rawcharacter{13}}, % cr % crlf
+% darwin=>\edef\@@svline{\rawcharacter{13}}, % cr
+% \s!unknown=>\edef\@@svline{\rawcharacter{10}}]% % lf
+ \splitjobfilename}
+
+% \edef\@@svline{\rawcharacter{10}} % unix is the most critical/sensitive system
+
+\let\systemendofline\outputnewlinechar % will become obsolete
+
+\def\setupsystem
+ {\dosingleargument\dosetupsystem}
+
+\def\systemparameter#1{\executeifdefined{\??sv#1}\empty}
+
+%D The system modes set by the setup command can be used in
+%D situations like:
+%D
+%D \starttyping
+%D \startmode[*first]
+%D \executesystemcommand{cleanupxml text.xml clean-text.xml}
+%D \stopmode
+%D
+%D \starttext
+%D \typefile{clean-text.xml}
+%D \stoptext
+%D \stoptyping
+
+\def\setuprandomize[#1]%
+ {\doifsomething{#1}
+ {\bgroup
+ % tex's time is in minutes
+ \scratchcounter\normaltime
+ \processaction
+ [#1]
+ [ \v!small=>\divide\scratchcounter 15, % 900,
+ \v!medium=>\divide\scratchcounter 30, % 1800,
+ \v!big=>\divide\scratchcounter 60, % 3600,
+ \v!normal=>\getnewrandomseed\scratchcounter,
+ \s!default=>\getnewrandomseed\scratchcounter,
+ \s!unknown=>\scratchcounter#1]%
+ \expanded{\setrandomseed{\the\scratchcounter}}%
+% \writestatus\m!systems{randomseed: \the\scratchcounter}%
+ \egroup}}
+
+
+\setupsystem
+ [\c!directory=,
+ \c!n=0, % 0:unknown 1: one run 2: first 3: successive 4: final run
+ \c!resolution=600dpi,
+ \c!random=,
+ \c!file=\jobname,
+ \c!inputfile=\outputfilename,
+ \c!type=unix, % windows is normally less sensitive to handle
+ \c!bodyfont=\normalizedlocalbodyfontsize] % of iets anders
+
+%D Remark: windows programs normally handle \type {cr|lf|crlf} but unix
+%D is more picky, so we default to the \type {cr}. I never understood why
+%D \type {crlf} was not used in all systems, since it makes most sense.
+
+\def\dostartglobaldefs#1#2%
+ {\edef\!!stringa{\the\globaldefs}%
+ \ifnum\globaldefs#10
+ \globaldefs-\globaldefs
+ \fi
+ \advance\globaldefs #21
+ \setevalue{@gd@\the\globaldefs}{\!!stringa}}
+
+\def\dostopglobaldefs
+ {\doifdefinedelse{@gd@\the\globaldefs}
+ {\globaldefs\getvalue{@gd@\the\globaldefs}\relax}
+ {\globaldefs\zerocount}}
+
+\def\startlocal {\dostartglobaldefs>-}
+\def\stoplocal {\dostopglobaldefs}
+\def\startglobal {\dostartglobaldefs<+}
+\def\stopglobal {\dostopglobaldefs}
+
+\def\complexstart[#1]{\bgroup\getvalue{\e!start#1}}
+\def\complexstop [#1]{\getvalue{\e!stop #1}\egroup}
+
+\let\simplestart\bgroup
+\let\simplestop \egroup
+
+\definecomplexorsimple\start
+\definecomplexorsimple\stop
+
+\def\dododefinestartstop[#1][#2]% todo: use indirect commands
+ {\getparameters
+ [\??be#1]
+ [\c!before=,
+ \c!after=,
+ \c!inbetween=,
+ \c!commands=,
+ \c!style=,
+ #2]%
+ \unexpanded\setvalue{#1}%
+ {\groupedcommand
+ {\getvalue{\??be#1\c!commands}%
+ \dostartattributes{\??be#1}\c!style\c!color}
+ {\dostopattributes
+ \getvalue{\??be#1\c!inbetween}}}%
+ \setvalue{\e!start#1}%
+ {\getvalue{\??be#1\c!before}%
+ \bgroup
+ \getvalue{\??be#1\c!commands}%
+ \dostartattributes{\??be#1}\c!style\c!color\empty}%
+ \setvalue{\e!stop#1}%
+ {\dostopattributes
+ \egroup
+ \getvalue{\??be#1\c!after}}}
+
+\def\dodefinestartstop[#1][#2]%
+ {\def\docommand##1{\dododefinestartstop[##1][#2]}%
+ \processcommalist[#1]\docommand}
+
+\def\definestartstop
+ {\dodoubleargument\dodefinestartstop}
+
+\def\dosetupstartstop[#1][#2]%
+ {\def\docommand##1{\getparameters[\??be##1][#2]}%
+ \processcommalist[#1]\docommand}
+
+\def\setupstartstop
+ {\dodoubleargument\dosetupstartstop}
+
+% \docommand kan niet worden gebruikt omdat deze macro
+% soms lokaal wordt gebruikt
+
+% te zijner tijd:
+%
+% \definevariable {pc} % ProtectedCommand
+%
+% \def\executeprotected#1%
+% {\csname\??pc\string#1\endcsname}
+%
+% \def\defineprotected#1#2%
+% {\expandafter\def\csname\??pc\string#2\endcsname}
+%
+% \def\defineunprotected#1%
+% {\def#1}
+%
+% \def\doprotected%
+% {\ifx\next\define
+% \let\next=\defineprotected
+% \else
+% \let\next=\executeprotected
+% \fi
+% \next}
+%
+% \def\unexpanded%
+% {\futurelet\next\doprotected}
+%
+% \unexpanded\define\ziezo{ziezo}
+%
+% \unexpanded\ziezo
+
+\def\complexdefine[#1]#2#3%
+ {\ifx#2\undefined
+ \else
+ \showmessage\m!systems4{\string#2}%
+ \fi
+ \ifcase0#1\def#2{#3}%
+ \or\def#2##1{#3}%
+ \or\def#2##1##2{#3}%
+ \or\def#2##1##2##3{#3}%
+ \or\def#2##1##2##3##4{#3}%
+ \or\def#2##1##2##3##4##5{#3}%
+ \or\def#2##1##2##3##4##5##6{#3}%
+ \or\def#2##1##2##3##4##5##6##7{#3}%
+ \or\def#2##1##2##3##4##5##6##7##8{#3}%
+ \or\def#2##1##2##3##4##5##6##7##8##9{#3}%
+ \else\def#2{#3}%
+ \fi}
+
+\definecomplexorsimpleempty\define
+
+\unexpanded\def\macroname#1% brrr
+ {\executeifdefined{#1}\empty}
+
+\def\usecommands#1%
+ {\bgroup
+ \def\docommand##1{\setbox0\hbox{\getvalue{\string##1}##1}}%
+ \processcommalist[#1]\docommand
+ \egroup}
+
+\newif\ifforcefileexpansion % handy for document level overload
+
+%D The next implementation is about 4 times as faster than a
+%D processaction alternative on an string of average length.
+%D Since this feature is used in XML processing, it made sense
+%D to support this faster alternative. It's installable as well.
+
+\def\installexpander#1#2#3% changed, no longer \convert..\to...
+ {\setvalue{\s!do\c!expansion#1l}{#2}%
+ \setvalue{\s!do\c!expansion#1g}{#3}}%
+
+% \convertexpanded is obsolete
+
+\long\def\doconvertexpanded#1#2#3% #4 % [l|g] \cs {kind} {data}
+ {\csname % that we assign all exp a value
+ \s!do\c!expansion
+ \ifforcefileexpansion
+ \v!yes
+ \else\ifcsname\s!do\c!expansion#3#1\endcsname
+ #3%
+ \else
+ \s!default
+ \fi\fi
+ #1%
+ \endcsname#2}% #3
+
+\long\def\defconvertexpanded {\doconvertexpanded l}
+\long\def\gdefconvertexpanded{\doconvertexpanded g}
+
+\installexpander\v!command \defconvertedcommand \gdefconvertedcommand
+\installexpander\s!default \defconvertedargument \gdefconvertedargument
+\installexpander\empty \defconvertedargument \gdefconvertedargument
+\installexpander\v!no \defconvertedargument \gdefconvertedargument
+\installexpander\v!yes \defconvertedmeaning \gdefconvertedmeaning
+\installexpander\v!yes \defconvertedmeaning \gdefconvertedmeaning
+\installexpander\v!strict \defreducedargument \gdefreducedargument
+\installexpander {utf} \defreducedtoutf \gdefreducedtoutf
+
+%installexpander {xml} {see xtag-ext}
+
+\def\dodefconvertedmeaning#1#2#3% watch the double expansion !
+ {\bgroup
+ \honorunexpanded
+ \convertencodedtokens % can be overloaded
+ \xdef\@@globalexpanded{#3}%
+ \xdef\@@globalexpanded{\@@globalexpanded}%
+ \egroup
+ #1#2\@@globalexpanded}
+
+\def\defconvertedmeaning {\dodefconvertedmeaning\defconvertedcommand}
+\def\gdefconvertedmeaning{\dodefconvertedmeaning\gdefconvertedcommand}
+
+\def\dodefreducedargument#1#2#3%
+ {\begingroup
+ \reducetocoding[raw]%
+ \edef\ascii{#3}%
+ \expandafter\endgroup\expandafter#1\expandafter#2\expandafter{\ascii}}
+
+\def\defreducedargument {\dodefreducedargument\edef}
+\def\gdefreducedargument{\dodefreducedargument\xdef}
+
+% \setupindex[expansion=utf]\index{\eacute}
+
+\def\dodefreducedtoutf#1#2#3%
+ {\begingroup
+ \reducetocoding[uc]%
+ \let\uchar\uchartoutf
+ \let\unicodechar\numbertoutf
+ \edef\ascii{#3}%
+ \expandafter\endgroup\expandafter#1\expandafter#2\expandafter{\ascii}}
+
+\def\defreducedtoutf {\dodefreducedtoutf\edef}
+\def\gdefreducedtoutf{\dodefreducedtoutf\xdef}
+
+% old syntax:
+
+\def\convertmeaning#1\to#2% watch the double expansion !
+ {\bgroup
+ \honorunexpanded
+ \convertencodedtokens % can be overloaded
+ \xdef\@@globalexpanded{#1}%
+ \xdef\@@globalexpanded{\@@globalexpanded}%
+ \egroup
+ \defconvertedcommand#2\@@globalexpanded}
+
+\def\reduceargument#1\to#2%
+ {\begingroup
+ \reducetocoding[raw]%
+ \edef\ascii{#1}%
+ \expandafter\endgroup\expandafter\edef\expandafter#2\expandafter{\ascii}}
+
+\def\reducetoutf#1\to#2%
+ {\begingroup
+ \reducetocoding[uc]%
+ \let\uchar\uchartoutf
+ \let\unicodechar\numbertoutf
+ \edef\ascii{#1}%
+ \expandafter\endgroup\expandafter\edef\expandafter#2\expandafter{\ascii}}
+
+% \setvalue{statevalue\v!stop }{0}
+% \setvalue{statevalue\v!start }{1}
+% \setvalue{statevalue\v!normaal}{2}
+% \setvalue{statevalue\v!leeg }{3}
+% \setvalue{statevalue\v!geen }{4}
+%
+% \def\setcurrentstate#1%
+% {\chardef\currentstate=0\getvalue{statevalue\getvalue{#1\c!state}\relax}
+%
+% \ifcase\currentstate ...
+
+\def\redo{\dorepeat} % [n*10], kind of obsolete
+
+% obsolete, use \dorecurse instead
+%
+% \def\herhaler {\repeater}
+% \def\herhaalmetcommando {\dorepeatwithcommand}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-sys.mkiv b/Master/texmf-dist/tex/context/base/core-sys.mkiv
index 0cef6c2368e..f30c8a958cb 100644
--- a/Master/texmf-dist/tex/context/base/core-sys.mkiv
+++ b/Master/texmf-dist/tex/context/base/core-sys.mkiv
@@ -1,6 +1,6 @@
%D \module
-%D [ file=core-sys,
-%D version=2006.09.18,
+%D [ file=core-sys, % moved from main-001
+%D version=1997.03.31,
%D title=\CONTEXT\ Core Macros,
%D subtitle=System,
%D author=Hans Hagen,
@@ -11,6 +11,408 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+% we need to mkiv-ize this file !
+
+\writestatus{loading}{ConTeXt Core Macros / System}
+
+\unprotect
+
+%D Version checking:
+
+\def\newcontextversion#1%
+ {\doifelse{#1}\contextversion
+ {\let\newcontextversion\gobbleoneargument}
+ {\writeline
+ \writestatus{Fatal Error}{Your format does not match the base files!}%
+ \writeline
+ \writestatus{Format Version}{\contextversion\space\contextmark}%
+ \writestatus{Files Version}{#1}%
+ \batchmode
+ \normalend}}
+
+%D End of lines to the output. \TEX\ will map this onto the platform specific
+%D line ending. I hate this mess.
+
+%newlinechar=10 \def\outputnewlinechar{\rawcharacter{10}}
+\newlinechar=10 \edef\outputnewlinechar{^^J}
+
+% in case formats are shared:
+
+\def\initializenewlinechar
+ {\bgroup\newlinechar=10\xdef\outputnewlinechar{^^J}\egroup}
+
+%D Job names.
+
+\def\outputfilename {\@@svfile}
+\def\inputfilename {\@@svinputfile}
+\def\operatingsystem{\@@svtype}
+
+\let\jobfilename \jobname
+\let\jobfilesuffix\c!tex
+
+\def\splitjobfilename % todo: mkiv
+ {\resetsystemmode{suffix-\jobfilesuffix}%
+ \edef\ascii{\inputfilename}\defconvertedcommand\ascii\ascii
+ \splitstring\ascii\at.\to\jobfilename\and\jobfilesuffix
+ \lowercasestring\jobfilesuffix\to\jobfilesuffix
+ \doifnothing\jobfilename {\let\jobfilename \jobname}%
+ % todo and totest: \defconvertedcommand\jobfilename\jobfilename
+ \doifnothing\jobfilesuffix{\let\jobfilesuffix\c!tex}%
+ \setsystemmode{suffix-\jobfilesuffix}}
+
+% Some mechanisms (see x-res-01) use either \jobfilename or
+% \jobfilename.somesuffix, in which case we need to use the
+% full name if given or a default (like \jobfilename.xml);
+% this comes down to replacing the default tex suffix.
+
+\def\jobfullname{\jobfilename.\jobfilesuffix}
+
+\def\setjobfullname#1% #1 = default if not given
+ {\doifelsenothing\jobfilename
+ {\let\jobfullname\empty}
+ {\doif\jobfilesuffix\c!tex{\edef\jobfullname{\jobfilename.#1}}}}
+
+% ...
+
+\def\dosetupsystem[#1]%
+ {\getparameters[\??sv][#1]%
+ \setuprandomize[\@@svrandom]%
+ \beforesplitstring\@@svresolution\at dpi\to\@@svresolution
+ \let\outputresolution\@@svresolution
+ \ifcase\@@svn
+ % % 0 : unknown
+ \or
+ \setsystemmode\v!first % 1 : first run
+ \or
+ % % 2 : successive run
+ \or
+ \setsystemmode\v!first % 3 : first and only run
+ \or
+ \setsystemmode\v!last % 4 : (extra) last run
+ \fi
+% \processaction
+% [\@@svtype]
+% %[ mswin=>\edef\@@svline{\rawcharacter{13}\rawcharacter{10}}, % crlf
+% [ mswin=>\edef\@@svline{\rawcharacter{13}}, % cr % crlf
+% darwin=>\edef\@@svline{\rawcharacter{13}}, % cr
+% \s!unknown=>\edef\@@svline{\rawcharacter{10}}]% % lf
+ \splitjobfilename}
+
+% \edef\@@svline{\rawcharacter{10}} % unix is the most critical/sensitive system
+
+\let\systemendofline\outputnewlinechar % will become obsolete
+
+\def\setupsystem
+ {\dosingleargument\dosetupsystem}
+
+\def\systemparameter#1{\executeifdefined{\??sv#1}\empty}
+
+%D The system modes set by the setup command can be used in
+%D situations like:
+%D
+%D \starttyping
+%D \startmode[*first]
+%D \executesystemcommand{cleanupxml text.xml clean-text.xml}
+%D \stopmode
+%D
+%D \starttext
+%D \typefile{clean-text.xml}
+%D \stoptext
+%D \stoptyping
+
+\def\setuprandomize[#1]%
+ {\doifsomething{#1}
+ {\bgroup
+ % tex's time is in minutes
+ \scratchcounter\normaltime
+ \processaction
+ [#1]
+ [ \v!small=>\divide\scratchcounter 15, % 900,
+ \v!medium=>\divide\scratchcounter 30, % 1800,
+ \v!big=>\divide\scratchcounter 60, % 3600,
+ \v!normal=>\getnewrandomseed\scratchcounter,
+ \s!default=>\getnewrandomseed\scratchcounter,
+ \s!unknown=>\scratchcounter#1]%
+ \expanded{\setrandomseed{\the\scratchcounter}}%
+% \writestatus\m!systems{randomseed: \the\scratchcounter}%
+ \egroup}}
+
+\setupsystem
+ [\c!directory=,
+ \c!n=0, % 0:unknown 1: one run 2: first 3: successive 4: final run
+ \c!resolution=600dpi,
+ \c!random=,
+ \c!file=\jobname,
+ \c!inputfile=\outputfilename,
+ \c!type=unix, % windows is normally less sensitive to handle
+ \c!bodyfont=\normalizedlocalbodyfontsize] % of iets anders
+
+%D Remark: windows programs normally handle \type {cr|lf|crlf} but unix
+%D is more picky, so we default to the \type {cr}. I never understood why
+%D \type {crlf} was not used in all systems, since it makes most sense.
+
+\def\dostartglobaldefs#1#2%
+ {\edef\!!stringa{\the\globaldefs}%
+ \ifnum\globaldefs#10
+ \globaldefs-\globaldefs
+ \fi
+ \advance\globaldefs #21
+ \setevalue{@gd@\the\globaldefs}{\!!stringa}}
+
+\def\dostopglobaldefs
+ {\doifdefinedelse{@gd@\the\globaldefs}
+ {\globaldefs\getvalue{@gd@\the\globaldefs}\relax}
+ {\globaldefs\zerocount}}
+
+\def\startlocal {\dostartglobaldefs>-}
+\def\stoplocal {\dostopglobaldefs}
+\def\startglobal {\dostartglobaldefs<+}
+\def\stopglobal {\dostopglobaldefs}
+
+\def\complexstart[#1]{\bgroup\getvalue{\e!start#1}}
+\def\complexstop [#1]{\getvalue{\e!stop #1}\egroup}
+
+\let\simplestart\bgroup
+\let\simplestop \egroup
+
+\definecomplexorsimple\start
+\definecomplexorsimple\stop
+
+\def\dododefinestartstop[#1][#2]% todo: use indirect commands
+ {\getparameters
+ [\??be#1]
+ [\c!before=,
+ \c!after=,
+ \c!inbetween=,
+ \c!commands=,
+ \c!style=,
+ #2]%
+ \unexpanded\setvalue{#1}%
+ {\groupedcommand
+ {\getvalue{\??be#1\c!commands}%
+ \dostartattributes{\??be#1}\c!style\c!color}
+ {\dostopattributes
+ \getvalue{\??be#1\c!inbetween}}}%
+ \setvalue{\e!start#1}%
+ {\getvalue{\??be#1\c!before}%
+ \bgroup
+ \getvalue{\??be#1\c!commands}%
+ \dostartattributes{\??be#1}\c!style\c!color\empty}%
+ \setvalue{\e!stop#1}%
+ {\dostopattributes
+ \egroup
+ \getvalue{\??be#1\c!after}}}
+
+\def\dodefinestartstop[#1][#2]%
+ {\def\docommand##1{\dododefinestartstop[##1][#2]}%
+ \processcommalist[#1]\docommand}
+
+\def\definestartstop
+ {\dodoubleargument\dodefinestartstop}
+
+\def\dosetupstartstop[#1][#2]%
+ {\def\docommand##1{\getparameters[\??be##1][#2]}%
+ \processcommalist[#1]\docommand}
+
+\def\setupstartstop
+ {\dodoubleargument\dosetupstartstop}
+
+% \docommand kan niet worden gebruikt omdat deze macro
+% soms lokaal wordt gebruikt
+
+% te zijner tijd:
+%
+% \definevariable {pc} % ProtectedCommand
+%
+% \def\executeprotected#1%
+% {\csname\??pc\string#1\endcsname}
+%
+% \def\defineprotected#1#2%
+% {\expandafter\def\csname\??pc\string#2\endcsname}
+%
+% \def\defineunprotected#1%
+% {\def#1}
+%
+% \def\doprotected%
+% {\ifx\next\define
+% \let\next=\defineprotected
+% \else
+% \let\next=\executeprotected
+% \fi
+% \next}
+%
+% \def\unexpanded%
+% {\futurelet\next\doprotected}
+%
+% \unexpanded\define\ziezo{ziezo}
+%
+% \unexpanded\ziezo
+
+\def\complexdefine[#1]#2#3%
+ {\ifx#2\undefined
+ \else
+ \showmessage\m!systems4{\string#2}%
+ \fi
+ \ifcase0#1\def#2{#3}%
+ \or\def#2##1{#3}%
+ \or\def#2##1##2{#3}%
+ \or\def#2##1##2##3{#3}%
+ \or\def#2##1##2##3##4{#3}%
+ \or\def#2##1##2##3##4##5{#3}%
+ \or\def#2##1##2##3##4##5##6{#3}%
+ \or\def#2##1##2##3##4##5##6##7{#3}%
+ \or\def#2##1##2##3##4##5##6##7##8{#3}%
+ \or\def#2##1##2##3##4##5##6##7##8##9{#3}%
+ \else\def#2{#3}%
+ \fi}
+
+\definecomplexorsimpleempty\define
+
+% \startluacode
+% local texsprint, ctxcatcodes = tex.sprint, tex.ctxcatcodes
+% local format, match, gmatch, rep = string.format, string.match, string.gmatch, string.rep
+% local empty = {
+% "single",
+% "double",
+% "triple",
+% "quadruple",
+% "quintuple",
+% }
+% local check = {
+% "first",
+% "second",
+% "third",
+% "fourth",
+% "fifth",
+% }
+% function commands.define(str)
+% -- we could store the defaults in lua and call lua instead but why bother
+% local arg, cmd = match(str,"(.*)\\(.-)$")
+% local a = { }
+% for s in gmatch(arg,"%[(.-)%]") do
+% a[#a+1] = s
+% end
+% local n = tonumber(a[#a])
+% if n then
+% a[#a] = nil
+% else
+% n = 0
+% end
+% texsprint(ctxcatcodes,format("\\unexpanded\\def\\%s",cmd))
+% if #a > 0 then
+% texsprint(ctxcatcodes,format("{\\do%sempty\\do%s}",empty[#a],cmd))
+% texsprint(ctxcatcodes,format("\\def\\do%s",cmd))
+% for i=1,#a do
+% texsprint(ctxcatcodes,"[#",i,"]")
+% end
+% texsprint(ctxcatcodes,"{")
+% for i=#a,1,-1 do
+% texsprint(ctxcatcodes,format("\\if%sargument",check[i]))
+% texsprint(ctxcatcodes,format("\\def\\next{\\dodo%s",cmd))
+% for j=1,#a-i do
+% texsprint(ctxcatcodes,format("[%s]",a[j]))
+% end
+% for j=1,i do
+% texsprint(ctxcatcodes,format("[#%s]",j))
+% end
+% texsprint(ctxcatcodes,"}")
+% if i == 1 then
+% texsprint(ctxcatcodes,rep("\\fi",#a))
+% else
+% texsprint(ctxcatcodes,"\\else")
+% end
+% end
+% texsprint(ctxcatcodes,"\\next}")
+% texsprint(ctxcatcodes,format("\\def\\dodo%s",cmd))
+% for i=1,#a do
+% texsprint(ctxcatcodes,"[#",i,"]")
+% end
+% end
+% for i=1,n do
+% texsprint(ctxcatcodes,"#",#a+i)
+% end
+% end
+% \stopluacode
+%
+% \def\define#1#{\ctxlua{commands.define([[\detokenize{#1}]])}}
+%
+% \starttext
+% \define[2]\whatevera{#1+#2}
+% \whatevera{A}{B}
+% \define[me][too][2]\whateverb{#1+#2+#3+#4}
+% \whateverb[A]{B}{C}
+% \whateverb[A][B]{C}{D}
+% \stoptext
+
+\unexpanded\def\macroname#1% brrr
+ {\executeifdefined{#1}\empty}
+
+\def\usecommands#1%
+ {\bgroup
+ \def\docommand##1{\setbox0\hbox{\getvalue{\string##1}##1}}%
+ \processcommalist[#1]\docommand
+ \egroup}
+
+\newif\ifforcefileexpansion % handy for document level overload
+
+%D The next implementation is about 4 times as faster than a
+%D processaction alternative on an string of average length.
+%D Since this feature is used in XML processing, it made sense
+%D to support this faster alternative. It's installable as well.
+%D
+%D We keep this around for \MKII\ \XML\ but it's not used in \MKIV\
+%D code as expansion is controlled in another way there.
+
+\def\installexpander#1#2#3% changed, no longer \convert..\to...
+ {\setvalue{\s!do\c!expansion#1l}{#2}%
+ \setvalue{\s!do\c!expansion#1g}{#3}}%
+
+% \convertexpanded is obsolete
+
+\long\def\doconvertexpanded#1#2#3% #4 % [l|g] \cs {kind} {data}
+ {\csname % that we assign all exp a value
+ \s!do\c!expansion
+ \ifforcefileexpansion
+ \v!yes
+ \else\ifcsname\s!do\c!expansion#3#1\endcsname
+ #3%
+ \else
+ \s!default
+ \fi\fi
+ #1%
+ \endcsname#2}% #3
+
+\long\def\defconvertexpanded {\doconvertexpanded l}
+\long\def\gdefconvertexpanded{\doconvertexpanded g}
+
+\installexpander\v!command \defconvertedcommand \gdefconvertedcommand
+\installexpander\s!default \defconvertedargument \gdefconvertedargument
+\installexpander\empty \defconvertedargument \gdefconvertedargument
+\installexpander\v!no \defconvertedargument \gdefconvertedargument
+\installexpander\v!yes \defconvertedmeaning \gdefconvertedmeaning
+\installexpander\v!yes \defconvertedmeaning \gdefconvertedmeaning
+\installexpander\v!strict \defreducedargument \gdefreducedargument
+\installexpander {utf} \defreducedtoutf \gdefreducedtoutf
+
+\def\dodefconvertedmeaning#1#2#3% watch the double expansion !
+ {\bgroup
+ \xdef\@@globalexpanded{#3}%
+ \xdef\@@globalexpanded{\@@globalexpanded}%
+ \egroup
+ #1#2\@@globalexpanded}
+
+\def\defconvertedmeaning {\dodefconvertedmeaning\defconvertedcommand}
+\def\gdefconvertedmeaning{\dodefconvertedmeaning\gdefconvertedcommand}
+
+\def\dodefreducedargument#1#2#3%
+ {\begingroup
+ \reducetocoding[raw]%
+ \edef\ascii{#3}%
+ \expandafter\endgroup\expandafter#1\expandafter#2\expandafter{\ascii}}
+
+\def\defreducedargument {\dodefreducedargument\edef}
+\def\gdefreducedargument{\dodefreducedargument\xdef}
+
\startruntimeluacode
\ctxlua {
environment.inputfilename = "\inputfilename"
@@ -19,5 +421,5 @@
environment.jobfilesuffix = "\jobfilesuffix"
}
\stopruntimeluacode
-
-\endinput
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-sys.tex b/Master/texmf-dist/tex/context/base/core-sys.tex
deleted file mode 100644
index 65afae1ca50..00000000000
--- a/Master/texmf-dist/tex/context/base/core-sys.tex
+++ /dev/null
@@ -1,401 +0,0 @@
-%D \module
-%D [ file=core-sys, % moved from main-001
-%D version=1997.03.31,
-%D title=\CONTEXT\ Core Macros,
-%D subtitle=System,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{Context Core Macros (System)}
-
-\unprotect
-
-%D Version checking:
-
-\def\newcontextversion#1%
- {\doifelse{#1}\contextversion
- {\let\newcontextversion\gobbleoneargument}
- {\writeline
- \writestatus{Fatal Error}{Your format does not match the base files!}%
- \writeline
- \writestatus{Format Version}{\contextversion\space\contextmark}%
- \writestatus{Files Version}{#1}%
- \batchmode
- \normalend}}
-
-%D End of lines to the output. \TEX\ will map this onto the platform specific
-%D line ending. I hate this mess.
-
-%newlinechar=10 \def\outputnewlinechar{\rawcharacter{10}}
-\newlinechar=10 \edef\outputnewlinechar{^^J}
-
-% in case formats are shared:
-
-\appendtoks
- \bgroup\newlinechar=10\xdef\outputnewlinechar{^^J}\egroup
-\to \everyjob
-
-%D Job names.
-
-\def\outputfilename {\@@svfile}
-\def\inputfilename {\@@svinputfile}
-\def\operatingsystem{\@@svtype}
-
-\let\jobfilename \jobname
-\let\jobfilesuffix\c!tex
-
-\def\splitjobfilename % todo: mkiv
- {\resetsystemmode{suffix-\jobfilesuffix}%
- \edef\ascii{\inputfilename}\defconvertedcommand\ascii\ascii
- \splitstring\ascii\at.\to\jobfilename\and\jobfilesuffix
- \lowercasestring\jobfilesuffix\to\jobfilesuffix
- \doifnothing\jobfilename {\let\jobfilename \jobname}%
- % todo and totest: \defconvertedcommand\jobfilename\jobfilename
- \doifnothing\jobfilesuffix{\let\jobfilesuffix\c!tex}%
- \setsystemmode{suffix-\jobfilesuffix}}
-
-\appendtoks \splitjobfilename \to \everyjob
-
-% Some mechanisms (see x-res-01) use either \jobfilename or
-% \jobfilename.somesuffix, in which case we need to use the
-% full name if given or a default (like \jobfilename.xml);
-% this comes down to replacing the default tex suffix.
-
-\def\jobfullname{\jobfilename.\jobfilesuffix}
-
-\def\setjobfullname#1% #1 = default if not given
- {\doifelsenothing\jobfilename
- {\let\jobfullname\empty}
- {\doif\jobfilesuffix\c!tex{\edef\jobfullname{\jobfilename.#1}}}}
-
-% ...
-
-\def\dosetupsystem[#1]%
- {\getparameters[\??sv][#1]%
- \setuprandomize[\@@svrandom]%
- \beforesplitstring\@@svresolution\at dpi\to\@@svresolution
- \let\outputresolution\@@svresolution
- \ifcase\@@svn
- % % 0 : unknown
- \or
- \setsystemmode\v!first % 1 : first run
- \or
- % % 2 : successive run
- \or
- \setsystemmode\v!first % 3 : first and only run
- \or
- \setsystemmode\v!last % 4 : (extra) last run
- \fi
-% \processaction
-% [\@@svtype]
-% %[ mswin=>\edef\@@svline{\rawcharacter{13}\rawcharacter{10}}, % crlf
-% [ mswin=>\edef\@@svline{\rawcharacter{13}}, % cr % crlf
-% darwin=>\edef\@@svline{\rawcharacter{13}}, % cr
-% \s!unknown=>\edef\@@svline{\rawcharacter{10}}]% % lf
- \splitjobfilename}
-
-% \edef\@@svline{\rawcharacter{10}} % unix is the most critical/sensitive system
-
-\let\systemendofline\outputnewlinechar % will become obsolete
-
-\def\setupsystem
- {\dosingleargument\dosetupsystem}
-
-\def\systemparameter#1{\executeifdefined{\??sv#1}\empty}
-
-%D The system modes set by the setup command can be used in
-%D situations like:
-%D
-%D \starttyping
-%D \startmode[*first]
-%D \executesystemcommand{cleanupxml text.xml clean-text.xml}
-%D \stopmode
-%D
-%D \starttext
-%D \typefile{clean-text.xml}
-%D \stoptext
-%D \stoptyping
-
-\def\setuprandomize[#1]%
- {\doifsomething{#1}
- {\bgroup
- % tex's time is in minutes
- \scratchcounter\normaltime
- \processaction
- [#1]
- [ \v!small=>\divide\scratchcounter 15, % 900,
- \v!medium=>\divide\scratchcounter 30, % 1800,
- \v!big=>\divide\scratchcounter 60, % 3600,
- \v!normal=>\getnewrandomseed\scratchcounter,
- \s!default=>\getnewrandomseed\scratchcounter,
- \s!unknown=>\scratchcounter#1]%
- \expanded{\setrandomseed{\the\scratchcounter}}%
- \egroup}}
-
-\setupsystem
- [\c!directory=,
- \c!n=0, % 0:unknown 1: one run 2: first 3: successive 4: final run
- \c!resolution=600dpi,
- \c!random=,
- \c!file=\jobname,
- \c!inputfile=\outputfilename,
- \c!type=unix, % windows is normally less sensitive to handle
- \c!bodyfont=\normalizedlocalbodyfontsize] % of iets anders
-
-%D Remark: windows programs normally handle \type {cr|lf|crlf} but unix
-%D is more picky, so we default to the \type {cr}. I never understood why
-%D \type {crlf} was not used in all systems, since it makes most sense.
-
-\def\dostartglobaldefs#1#2%
- {\edef\!!stringa{\the\globaldefs}%
- \ifnum\globaldefs#10
- \globaldefs-\globaldefs
- \fi
- \advance\globaldefs #21
- \setevalue{@gd@\the\globaldefs}{\!!stringa}}
-
-\def\dostopglobaldefs
- {\doifdefinedelse{@gd@\the\globaldefs}
- {\globaldefs\getvalue{@gd@\the\globaldefs}\relax}
- {\globaldefs\zerocount}}
-
-\def\startlocal {\dostartglobaldefs>-}
-\def\stoplocal {\dostopglobaldefs}
-\def\startglobal {\dostartglobaldefs<+}
-\def\stopglobal {\dostopglobaldefs}
-
-\def\complexstart[#1]{\bgroup\getvalue{\e!start#1}}
-\def\complexstop [#1]{\getvalue{\e!stop #1}\egroup}
-
-\let\simplestart\bgroup
-\let\simplestop \egroup
-
-\definecomplexorsimple\start
-\definecomplexorsimple\stop
-
-\def\dododefinestartstop[#1][#2]% todo: use indirect commands
- {\getparameters
- [\??be#1]
- [\c!before=,
- \c!after=,
- \c!inbetween=,
- \c!commands=,
- \c!style=,
- #2]%
- \unexpanded\setvalue{#1}%
- {\groupedcommand
- {\getvalue{\??be#1\c!commands}%
- \dostartattributes{\??be#1}\c!style\c!color}
- {\dostopattributes
- \getvalue{\??be#1\c!inbetween}}}%
- \setvalue{\e!start#1}%
- {\getvalue{\??be#1\c!before}%
- \bgroup
- \getvalue{\??be#1\c!commands}%
- \dostartattributes{\??be#1}\c!style\c!color\empty}%
- \setvalue{\e!stop#1}%
- {\dostopattributes
- \egroup
- \getvalue{\??be#1\c!after}}}
-
-\def\dodefinestartstop[#1][#2]%
- {\def\docommand##1{\dododefinestartstop[##1][#2]}%
- \processcommalist[#1]\docommand}
-
-\def\definestartstop
- {\dodoubleargument\dodefinestartstop}
-
-\def\dosetupstartstop[#1][#2]%
- {\def\docommand##1{\getparameters[\??be##1][#2]}%
- \processcommalist[#1]\docommand}
-
-\def\setupstartstop
- {\dodoubleargument\dosetupstartstop}
-
-% \docommand kan niet worden gebruikt omdat deze macro
-% soms lokaal wordt gebruikt
-
-% te zijner tijd:
-%
-% \definevariable {pc} % ProtectedCommand
-%
-% \def\executeprotected#1%
-% {\csname\??pc\string#1\endcsname}
-%
-% \def\defineprotected#1#2%
-% {\expandafter\def\csname\??pc\string#2\endcsname}
-%
-% \def\defineunprotected#1%
-% {\def#1}
-%
-% \def\doprotected%
-% {\ifx\next\define
-% \let\next=\defineprotected
-% \else
-% \let\next=\executeprotected
-% \fi
-% \next}
-%
-% \def\unexpanded%
-% {\futurelet\next\doprotected}
-%
-% \unexpanded\define\ziezo{ziezo}
-%
-% \unexpanded\ziezo
-
-\def\complexdefine[#1]#2#3%
- {\ifx#2\undefined
- \else
- \showmessage\m!systems4{\string#2}%
- \fi
- \ifcase0#1\def#2{#3}%
- \or\def#2##1{#3}%
- \or\def#2##1##2{#3}%
- \or\def#2##1##2##3{#3}%
- \or\def#2##1##2##3##4{#3}%
- \or\def#2##1##2##3##4##5{#3}%
- \or\def#2##1##2##3##4##5##6{#3}%
- \or\def#2##1##2##3##4##5##6##7{#3}%
- \or\def#2##1##2##3##4##5##6##7##8{#3}%
- \or\def#2##1##2##3##4##5##6##7##8##9{#3}%
- \else\def#2{#3}%
- \fi}
-
-\definecomplexorsimpleempty\define
-
-\unexpanded\def\macroname#1% brrr
- {\executeifdefined{#1}\empty}
-
-\def\usecommands#1%
- {\bgroup
- \def\docommand##1{\setbox0\hbox{\getvalue{\string##1}##1}}%
- \processcommalist[#1]\docommand
- \egroup}
-
-\newif\ifforcefileexpansion % handy for document level overload
-
-%D The next implementation is about 4 times as faster than a
-%D processaction alternative on an string of average length.
-%D Since this feature is used in XML processing, it made sense
-%D to support this faster alternative. It's installable as well.
-
-\def\installexpander#1#2#3% changed, no longer \convert..\to...
- {\setvalue{\s!do\c!expansion#1l}{#2}%
- \setvalue{\s!do\c!expansion#1g}{#3}}%
-
-% \convertexpanded is obsolete
-
-\long\def\doconvertexpanded#1#2#3% #4 % [l|g] \cs {kind} {data}
- {\csname % that we assign all exp a value
- \s!do\c!expansion
- \ifforcefileexpansion
- \v!yes
- \else\ifcsname\s!do\c!expansion#3#1\endcsname
- #3%
- \else
- \s!default
- \fi\fi
- #1%
- \endcsname#2}% #3
-
-\long\def\defconvertexpanded {\doconvertexpanded l}
-\long\def\gdefconvertexpanded{\doconvertexpanded g}
-
-\installexpander\v!command \defconvertedcommand \gdefconvertedcommand
-\installexpander\s!default \defconvertedargument \gdefconvertedargument
-\installexpander\empty \defconvertedargument \gdefconvertedargument
-\installexpander\v!no \defconvertedargument \gdefconvertedargument
-\installexpander\v!yes \defconvertedmeaning \gdefconvertedmeaning
-\installexpander\v!yes \defconvertedmeaning \gdefconvertedmeaning
-\installexpander\v!strict \defreducedargument \gdefreducedargument
-\installexpander {utf} \defreducedtoutf \gdefreducedtoutf
-
-%installexpander {xml} {see xtag-ext}
-
-\def\dodefconvertedmeaning#1#2#3% watch the double expansion !
- {\bgroup
- \honorunexpanded
- \convertencodedtokens % can be overloaded
- \xdef\@@globalexpanded{#3}%
- \xdef\@@globalexpanded{\@@globalexpanded}%
- \egroup
- #1#2\@@globalexpanded}
-
-\def\defconvertedmeaning {\dodefconvertedmeaning\defconvertedcommand}
-\def\gdefconvertedmeaning{\dodefconvertedmeaning\gdefconvertedcommand}
-
-\def\dodefreducedargument#1#2#3%
- {\begingroup
- \reducetocoding[raw]%
- \edef\ascii{#3}%
- \expandafter\endgroup\expandafter#1\expandafter#2\expandafter{\ascii}}
-
-\def\defreducedargument {\dodefreducedargument\edef}
-\def\gdefreducedargument{\dodefreducedargument\xdef}
-
-% \setupindex[expansion=utf]\index{\eacute}
-
-\def\dodefreducedtoutf#1#2#3%
- {\begingroup
- \reducetocoding[uc]%
- \let\uchar\uchartoutf
- \let\unicodechar\numbertoutf
- \edef\ascii{#3}%
- \expandafter\endgroup\expandafter#1\expandafter#2\expandafter{\ascii}}
-
-\def\defreducedtoutf {\dodefreducedtoutf\edef}
-\def\gdefreducedtoutf{\dodefreducedtoutf\xdef}
-
-% old syntax:
-
-\def\convertmeaning#1\to#2% watch the double expansion !
- {\bgroup
- \honorunexpanded
- \convertencodedtokens % can be overloaded
- \xdef\@@globalexpanded{#1}%
- \xdef\@@globalexpanded{\@@globalexpanded}%
- \egroup
- \defconvertedcommand#2\@@globalexpanded}
-
-\def\reduceargument#1\to#2%
- {\begingroup
- \reducetocoding[raw]%
- \edef\ascii{#1}%
- \expandafter\endgroup\expandafter\edef\expandafter#2\expandafter{\ascii}}
-
-\def\reducetoutf#1\to#2%
- {\begingroup
- \reducetocoding[uc]%
- \let\uchar\uchartoutf
- \let\unicodechar\numbertoutf
- \edef\ascii{#1}%
- \expandafter\endgroup\expandafter\edef\expandafter#2\expandafter{\ascii}}
-
-% \setvalue{statevalue\v!stop }{0}
-% \setvalue{statevalue\v!start }{1}
-% \setvalue{statevalue\v!normaal}{2}
-% \setvalue{statevalue\v!leeg }{3}
-% \setvalue{statevalue\v!geen }{4}
-%
-% \def\setcurrentstate#1%
-% {\chardef\currentstate=0\getvalue{statevalue\getvalue{#1\c!state}\relax}
-%
-% \ifcase\currentstate ...
-
-\def\redo{\dorepeat} % [n*10], kind of obsolete
-
-% obsolete, use \dorecurse instead
-%
-% \def\herhaler {\repeater}
-% \def\herhaalmetcommando {\dorepeatwithcommand}
-
-%D Plugins
-
-\loadmarkfile{core-sys}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-two.lua b/Master/texmf-dist/tex/context/base/core-two.lua
index 45f1d0f46d1..50c356f7be6 100644
--- a/Master/texmf-dist/tex/context/base/core-two.lua
+++ b/Master/texmf-dist/tex/context/base/core-two.lua
@@ -6,78 +6,130 @@ if not modules then modules = { } end modules ['core-two'] = {
license = "see context related readme files"
}
+local remove, concat = table.remove, table.concat
+
+local texprint = tex.print
+
--[[ldx--
-<p>We save multi-pass information in the main utility table.</p>
+<p>We save multi-pass information in the main utility table. This is a
+bit of a mess because we support old and new methods.</p>
--ldx]]--
-if not jobs then jobs = { } end
-if not job then jobs['main'] = { } end job = jobs['main']
-if not job.twopass then job.twopass = { } end
+jobpasses = jobpasses or { }
+jobpasses.collected = jobpasses.collected or { }
+jobpasses.tobesaved = jobpasses.tobesaved or { }
-function job.definetwopassdata(id)
- job.twopass[id] = job.twopass[id] or { }
+local collected, tobesaved = jobpasses.collected, jobpasses.tobesaved
+
+local function initializer()
+ collected, tobesaved = jobpasses.collected, jobpasses.tobesaved
end
-function job.gettwopassdata(id)
- local jti = job.twopass[id]
- if jti and #jti > 0 then
- tex.print(jti[1])
- table.remove(jti,1)
+job.register('jobpasses.collected', jobpasses.tobesaved, initializer, nil)
+
+local function allocate(id)
+ local p = tobesaved[id]
+ if not p then
+ p = { }
+ tobesaved[id] = p
end
+ return p
+end
+
+jobpasses.define = allocate
+
+function jobpasses.save(id,str)
+ local jti = allocate(id)
+ jti[#jti+1] = str
end
-function job.checktwopassdata(id)
- local jti = job.twopass[id]
+function jobpasses.savetagged(id,tag,str)
+ local jti = allocate(id)
+ jti[tag] = str
+end
+
+function jobpasses.getcollected(id)
+ return collected[id] or { }
+end
+
+function jobpasses.gettobesaved(id)
+ return allocate(id)
+end
+
+function jobpasses.get(id)
+ local jti = collected[id]
if jti and #jti > 0 then
- tex.print(jti[1])
+ texprint(remove(jti,1))
end
end
-function job.getfromtwopassdata(id,n)
- local jti = job.twopass[id]
- if jti and jti[n] then
- tex.print(jti[n])
+function jobpasses.first(id)
+ local jti = collected[id]
+ if jti and #jti > 0 then
+ texprint(jti[1])
end
end
-job.findtwopassdata = job.getfromtwopassdata
-job.getfirstpassdata = job.checktwopassdata
-
-function job.getlasttwopassdata(id)
- local jti = job.twopass[id]
+function jobpasses.last(id)
+ local jti = collected[id]
if jti and #jti > 0 then
- tex.print(jti[#jti])
+ texprint(jti[#jti])
end
end
-function job.noftwopassitems(id)
- local jti = job.twopass[id]
- if jti then
- tex.print(#jti)
- else
- tex.print('0')
+jobpasses.check = jobpasses.first
+
+function jobpasses.find(id,n)
+ local jti = collected[id]
+ if jti and jti[n] then
+ texprint(jti[n])
end
end
-function job.twopassdatalist(id)
- local jti = job.twopass[id]
+function jobpasses.count(id)
+ local jti = collected[id]
+ texprint((jti and #jti) or 0)
+end
+
+function jobpasses.list(id)
+ local jti = collected[id]
if jti then
- tex.print(table.concat(jti,','))
+ texprint(concat(jti,','))
end
end
-function job.doifelseintwopassdata(id,str)
- local jti = job.twopass[id]
+function jobpasses.doifinlistelse(id,str)
+ local jti = collected[id]
if jti then
local found = false
- for _, v in pairs(jti) do
+ for _, v in next, jti do
if v == str then
found = true
break
end
end
- cs.testcase(found)
+ commands.testcase(found)
else
- cs.testcase(false)
+ commands.testcase(false)
end
end
+
+--
+
+function jobpasses.savedata(id,data)
+ local jti = allocate(id)
+ jti[#jti+1] = data
+ return #jti
+end
+
+function jobpasses.getdata(id,index,default)
+ local jti = collected[id]
+ texprint((jit and jti[index]) or default)
+end
+
+function jobpasses.getfield(id,index,tag,default)
+ local jti = collected[id]
+ jti = jti and jti[index]
+ texprint((jti and jti[tag]) or default)
+end
+
diff --git a/Master/texmf-dist/tex/context/base/core-two.mkii b/Master/texmf-dist/tex/context/base/core-two.mkii
index a14586dc48e..0f2e0048c8e 100644
--- a/Master/texmf-dist/tex/context/base/core-two.mkii
+++ b/Master/texmf-dist/tex/context/base/core-two.mkii
@@ -11,9 +11,72 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+\writestatus{loading}{ConTeXt Core Macros / Two Pass Data}
+
+%D This is a rather old mechanism which has not changed much over
+%D time, apart from adding a few more selectors. This code used
+%D to be part of \type {core-uti}. The following examples demonstrate
+%D the interface.
+%D
+%D \startbuffer
+%D \definetwopasslist{test-1}
+%D
+%D \gettwopassdatalist{test-1} [\twopassdatalist=]
+%D \checktwopassdata {test-1} [\twopassdata=]
+%D \checktwopassdata {test-1} [\twopassdata=]
+%D \gettwopassdata {test-1} [\twopassdata=]
+%D \gettwopassdata {test-1} [\twopassdata=]
+%D
+%D \definetwopasslist{test-2}
+%D
+%D \lazysavetwopassdata{test-2}{1}{x}
+%D \lazysavetwopassdata{test-2}{2}{y}
+%D \lazysavetwopassdata{test-2}{3}{z}
+%D
+%D \gettwopassdatalist{test-2} [\twopassdatalist=x,y,z]
+%D \checktwopassdata {test-2} [\twopassdata=x]
+%D \checktwopassdata {test-2} [\twopassdata=x]
+%D \gettwopassdata {test-2} [\twopassdata=x]
+%D \gettwopassdata {test-2} [\twopassdata=y]
+%D \gettwopassdata {test-2} [\twopassdata=z]
+%D \gettwopassdata {test-2} [\twopassdata=]
+%D
+%D \definetwopasslist{test-3}
+%D
+%D \lazysavetaggedtwopassdata{test-3}{1}{x}{a}
+%D \lazysavetaggedtwopassdata{test-3}{2}{y}{b}
+%D \lazysavetaggedtwopassdata{test-3}{3}{z}{c}
+%D
+%D \findtwopassdata{test-3}{x} [\twopassdata=a]
+%D \findtwopassdata{test-3}{y} [\twopassdata=b]
+%D \findtwopassdata{test-3}{z} [\twopassdata=c]
+%D \findtwopassdata{test-3}{w} [\twopassdata=]
+%D
+%D \definetwopasslist{test-4}
+%D
+%D \lazysavetwopassdata{test-4}{1}{A}
+%D \lazysavetwopassdata{test-4}{2}{B}
+%D \lazysavetwopassdata{test-4}{3}{C}
+%D
+%D \getfirsttwopassdata{test-4} [\twopassdata=A]
+%D \getlasttwopassdata {test-4} [\twopassdata=C]
+%D \getfirsttwopassdata{test-4} [\twopassdata=A]
+%D \getlasttwopassdata {test-4} [\twopassdata=C]
+%D \getfromtwopassdata {test-4}{1} [\twopassdata=A]
+%D \getfromtwopassdata {test-4}{3} [\twopassdata=C]
+%D \getfromtwopassdata {test-4}{2} [\twopassdata=B]
+%D \stopbuffer
+%D
+%D \getbuffer \typebuffer
+
\unprotect
-%D We save two pass information in the utility file.
+\let\alltwopasslists\empty
+\let\twopassentry \gobblethreearguments % permits loading a MK II file
+\let\twopassdata \empty
+\let\twopassdatalist\empty
+
+\newif\iftwopassdatafound
\addutilityreset{twopassentries}
diff --git a/Master/texmf-dist/tex/context/base/core-two.mkiv b/Master/texmf-dist/tex/context/base/core-two.mkiv
index bbdc6d4890a..98d396d080a 100644
--- a/Master/texmf-dist/tex/context/base/core-two.mkiv
+++ b/Master/texmf-dist/tex/context/base/core-two.mkiv
@@ -1,6 +1,6 @@
%D \module
%D [ file=core-two, % moved from core-uti
-%D version=2006.09.24,
+%D version=1997.03.31,
%D title=\CONTEXT\ Core Macros,
%D subtitle=Two Pass Data,
%D author=Hans Hagen,
@@ -11,73 +11,96 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+\writestatus{loading}{ConTeXt Core Macros / Two Pass Data}
+
+%D This is a rather old mechanism which has not changed much over
+%D time, apart from adding a few more selectors. This code used
+%D to be part of \type {core-uti}. The following examples demonstrate
+%D the interface.
+%D
+%D \startbuffer
+%D \definetwopasslist{test-1}
+%D
+%D \gettwopassdatalist{test-1} [\twopassdatalist=]
+%D \checktwopassdata {test-1} [\twopassdata=]
+%D \checktwopassdata {test-1} [\twopassdata=]
+%D \gettwopassdata {test-1} [\twopassdata=]
+%D \gettwopassdata {test-1} [\twopassdata=]
+%D
+%D \definetwopasslist{test-2}
+%D
+%D \lazysavetwopassdata{test-2}{1}{x}
+%D \lazysavetwopassdata{test-2}{2}{y}
+%D \lazysavetwopassdata{test-2}{3}{z}
+%D
+%D \gettwopassdatalist{test-2} [\twopassdatalist=x,y,z]
+%D \checktwopassdata {test-2} [\twopassdata=x]
+%D \checktwopassdata {test-2} [\twopassdata=x]
+%D \gettwopassdata {test-2} [\twopassdata=x]
+%D \gettwopassdata {test-2} [\twopassdata=y]
+%D \gettwopassdata {test-2} [\twopassdata=z]
+%D \gettwopassdata {test-2} [\twopassdata=]
+%D
+%D \definetwopasslist{test-3}
+%D
+%D \lazysavetaggedtwopassdata{test-3}{1}{x}{a}
+%D \lazysavetaggedtwopassdata{test-3}{2}{y}{b}
+%D \lazysavetaggedtwopassdata{test-3}{3}{z}{c}
+%D
+%D \findtwopassdata{test-3}{x} [\twopassdata=a]
+%D \findtwopassdata{test-3}{y} [\twopassdata=b]
+%D \findtwopassdata{test-3}{z} [\twopassdata=c]
+%D \findtwopassdata{test-3}{w} [\twopassdata=]
+%D
+%D \definetwopasslist{test-4}
+%D
+%D \lazysavetwopassdata{test-4}{1}{A}
+%D \lazysavetwopassdata{test-4}{2}{B}
+%D \lazysavetwopassdata{test-4}{3}{C}
+%D
+%D \getfirsttwopassdata{test-4} [\twopassdata=A]
+%D \getlasttwopassdata {test-4} [\twopassdata=C]
+%D \getfirsttwopassdata{test-4} [\twopassdata=A]
+%D \getlasttwopassdata {test-4} [\twopassdata=C]
+%D \getfromtwopassdata {test-4}{1} [\twopassdata=A]
+%D \getfromtwopassdata {test-4}{3} [\twopassdata=C]
+%D \getfromtwopassdata {test-4}{2} [\twopassdata=B]
+%D \stopbuffer
+%D
+%D \getbuffer \typebuffer
+
\unprotect
-\registerctxluafile{core-two}{1.001}
+\let\twopassdatalist\empty
-\appendtoks
- \immediatewriteutilitytua{if not job.twopass then job.twopass = { } end}%
- \immediatewriteutilitytua{local tp = job.twopass}%
-\to \everyopenutilities
+\newif\iftwopassdatafound
-%D I'm not that sure if this behaves exactly like mkii. This needs a cleanup.
+\registerctxluafile{core-two}{1.001}
-% \def\immediatesavetwopassdata #1#2#3{\immediatewriteutilitycommand{\twopassentry{#1}{#2}{#3}}}
-% \def\savetwopassdata #1#2#3{\writeutilitycommand{\twopassentry{#1}{#2}{#3}}}
-% \def\lazysavetwopassdata #1#2#3{\expanded{\writeutilitycommand{\noexpand\twopassentry{#1}{#2}{#3}}}} % expanded !
-% \def\savetaggedtwopassdata #1#2#3#4{\immediatewriteutilitycommand{\twopassentry{#1}{#2}{#3::#4}}}
-% \def\lazysavetaggedtwopassdata#1#2#3#4{\expanded{\writeutilitycommand{\noexpand\twopassentry{#1}{#2}{#3::#4}}}} % expanded !
+%D I'm not that sure if this behaves exactly like mkii. This needs a cleanup.
-\def\immediatesavetwopassdata #1#2#3{\expanded{\immediatewriteutilitytua{ti(tp['#1'],"#3")}}}
-\def\savetwopassdata #1#2#3{\expanded{\writeutilitytua {ti(tp['#1'],"#3")}}}
-\def\lazysavetwopassdata #1#2#3{\expanded{\writeutilitytua {ti(tp['#1'],"#3")}}}
-\def\savetaggedtwopassdata #1#2#3#4{\expanded{\immediatewriteutilitytua{tp['#1']['#3']="#4"}}}
-\def\lazysavetaggedtwopassdata #1#2#3#4{\expanded{\writeutilitytua {tp['#1']['#3']="#4"}}}
+\def\immediatesavetwopassdata #1#2#3{\normalexpanded{\noexpand\ctxlua {jobpasses.save('#1',"#3")}}}
+\def\savetwopassdata #1#2#3{\normalexpanded{\noexpand\ctxlatelua{jobpasses.save('#1',"#3")}}}
+\def\lazysavetwopassdata #1#2#3{\normalexpanded{\noexpand\ctxlatelua{jobpasses.save('#1',"#3")}}}
+\def\savetaggedtwopassdata #1#2#3#4{\normalexpanded{\noexpand\ctxlua {jobpasses.savetagged('#1','#3',"#4")}}}
+\def\lazysavetaggedtwopassdata#1#2#3#4{\normalexpanded{\noexpand\ctxlatelua{jobpasses.savetagged('#1','#3',"#4")}}}
% temp hack: needs a proper \starteverytimeluacode
-\def\dodefinetwopasslist#1%
- {\ctxlua{job.definetwopassdata('#1')}%
- \immediatewriteutilitytua{job.definetwopassdata('#1')}}
-
-\def\definetwopasslist#1%
- {\dodefinetwopasslist{#1}%
- \doglobal\addtocommalist{#1}\alltwopasslists}
-
-\appendtoks
- \processcommacommand[\alltwopasslists]\dodefinetwopasslist
- \globallet\alltwopasslists\empty
-\to \everyopenutilities
-
-\def\testtwopassdata
- {\ifx\twopassdata\empty\twopassdatafoundfalse\else\twopassdatafoundtrue\fi}
-
-\def\gettwopassdata#1%
- {\edef\twopassdata{\ctxlua{job.gettwopassdata("#1")}}\testtwopassdata}
-
-\def\checktwopassdata#1%
- {\edef\twopassdata{\ctxlua{job.checktwopassdata("#1")}}\testtwopassdata}
-
-\def\findtwopassdata#1#2%
- {\edef\twopassdata{\ctxlua{job.findtwopassdata("#1","#2")}}\testtwopassdata}
-
-\let\getfirsttwopassdata\checktwopassdata
-
-\def\getlasttwopassdata#1%
- {\edef\noftwopassitems{\ctxlua{job.noftwopassitems("#1")}}%
- \edef\twopassdata {\ctxlua{job.getlasttwopassdata("#1")}}%
- \testtwopassdata}
-
-\def\getfromtwopassdata#1#2%
- {\edef\twopassdata{\ctxlua{job.getfromtwopassdata("#1",#2)}}\testtwopassdata}
+\def\testtwopassdata{\ifx\twopassdata\empty\twopassdatafoundfalse\else\twopassdatafoundtrue\fi}
-\def\gettwopassdatalist
- {\getnamedtwopassdatalist\twopassdatalist}
+% todo: move the edef to lua
-\def\getnamedtwopassdatalist#1#2% \cs tag
- {\edef#1{\ctxlua{job.twopassdatalist("#2")}}}
+\def\definetwopasslist #1{\ctxlua{jobpasses.define('#1')}}
+\def\gettwopassdata #1{\edef\twopassdata{\ctxlua{jobpasses.get("#1")}}\testtwopassdata}
+\def\checktwopassdata #1{\edef\twopassdata{\ctxlua{jobpasses.check("#1")}}\testtwopassdata}
+\def\findtwopassdata #1#2{\edef\twopassdata{\ctxlua{jobpasses.find("#1","#2")}}\testtwopassdata}
+\def\getfirsttwopassdata #1{\edef\twopassdata{\ctxlua{jobpasses.first("#1")}}\testtwopassdata}
+\def\getlasttwopassdata #1{\edef\twopassdata{\ctxlua{jobpasses.last("#1")}}\edef\noftwopassitems{\ctxlua{jobpasses.count("#1")}}\testtwopassdata}
+\def\getnamedtwopassdatalist#1#2{\edef#1{\ctxlua{jobpasses.list("#2")}}}
+\def\gettwopassdatalist #1{\edef\twopassdatalist{\ctxlua{jobpasses.list("#1")}}}
+\def\doifelseintwopassdata #1#2{\ctxlua{jobpasses.doifinlistelse("#1","#2")}}
-\def\doifelseintwopassdata#1#2% tag dat
- {\ctxlua{job.doifelseintwopassdata("#1","#2"))}}
+\let\getfromtwopassdata\findtwopassdata
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-two.tex b/Master/texmf-dist/tex/context/base/core-two.tex
deleted file mode 100644
index 5a845c61462..00000000000
--- a/Master/texmf-dist/tex/context/base/core-two.tex
+++ /dev/null
@@ -1,103 +0,0 @@
-%D \module
-%D [ file=core-two, % moved from core-uti
-%D version=1997.03.31,
-%D title=\CONTEXT\ Core Macros,
-%D subtitle=Two Pass Data,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{Context Core Macros / Two Pass Data}
-
-%D This is a rather old mechanism which has not changed much over
-%D time, apart from adding a few more selectors. This code used
-%D to be part of \type {core-uti}. The following examples demonstrate
-%D the interface.
-%D
-%D \startbuffer
-%D \definetwopasslist{test-1}
-%D
-%D \gettwopassdatalist{test-1} [\twopassdatalist=]
-%D \checktwopassdata {test-1} [\twopassdata=]
-%D \checktwopassdata {test-1} [\twopassdata=]
-%D \gettwopassdata {test-1} [\twopassdata=]
-%D \gettwopassdata {test-1} [\twopassdata=]
-%D
-%D \definetwopasslist{test-2}
-%D
-%D \lazysavetwopassdata{test-2}{1}{x}
-%D \lazysavetwopassdata{test-2}{2}{y}
-%D \lazysavetwopassdata{test-2}{3}{z}
-%D
-%D \gettwopassdatalist{test-2} [\twopassdatalist=x,y,z]
-%D \checktwopassdata {test-2} [\twopassdata=x]
-%D \checktwopassdata {test-2} [\twopassdata=x]
-%D \gettwopassdata {test-2} [\twopassdata=x]
-%D \gettwopassdata {test-2} [\twopassdata=y]
-%D \gettwopassdata {test-2} [\twopassdata=z]
-%D \gettwopassdata {test-2} [\twopassdata=]
-%D
-%D \definetwopasslist{test-3}
-%D
-%D \lazysavetaggedtwopassdata{test-3}{1}{x}{a}
-%D \lazysavetaggedtwopassdata{test-3}{2}{y}{b}
-%D \lazysavetaggedtwopassdata{test-3}{3}{z}{c}
-%D
-%D \findtwopassdata{test-3}{x} [\twopassdata=a]
-%D \findtwopassdata{test-3}{y} [\twopassdata=b]
-%D \findtwopassdata{test-3}{z} [\twopassdata=c]
-%D \findtwopassdata{test-3}{w} [\twopassdata=]
-%D
-%D \definetwopasslist{test-4}
-%D
-%D \lazysavetwopassdata{test-4}{1}{A}
-%D \lazysavetwopassdata{test-4}{2}{B}
-%D \lazysavetwopassdata{test-4}{3}{C}
-%D
-%D \getfirsttwopassdata{test-4} [\twopassdata=A]
-%D \getlasttwopassdata {test-4} [\twopassdata=C]
-%D \getfirsttwopassdata{test-4} [\twopassdata=A]
-%D \getlasttwopassdata {test-4} [\twopassdata=C]
-%D \getfromtwopassdata {test-4}{1} [\twopassdata=A]
-%D \getfromtwopassdata {test-4}{3} [\twopassdata=C]
-%D \getfromtwopassdata {test-4}{2} [\twopassdata=B]
-%D \stopbuffer
-%D
-%D \getbuffer \typebuffer
-
-\unprotect
-
-\let\alltwopasslists\empty
-\let\twopassentry \empty
-\let\twopassdata \empty
-\let\twopassdatalist\empty
-
-\newif\iftwopassdatafound
-
-\let\savetwopassdata \gobblethreearguments
-\let\immediatesavetwopassdata \gobblethreearguments
-\let\lazysavetwopassdata \gobblethreearguments
-\let\savetaggedtwopassdata \gobblefourarguments
-\let\lazysavetaggedtwopassdata\gobblefourarguments
-
-\let\twopassentry \gobblethreearguments % permits loading a MK II file
-\let\loadtwopassdata\relax % permits loading a MK II file
-
-\let\definetwopasslist\gobbleoneargument
-
-\def\gettwopassdata #1{\let\twopassdata \empty \twopassdatafoundfalse}
-\def\checktwopassdata #1{\let\twopassdata \empty \twopassdatafoundfalse}
-\def\findtwopassdata #1#2{\let\twopassdata \empty \twopassdatafoundfalse}
-\def\getlasttwopassdata #1{\let\twopassdata \empty \twopassdatafoundfalse}
-\def\getfromtwopassdata #1#2{\let\twopassdata \empty \twopassdatafoundfalse}
-\def\gettwopassdatalist #1{\let\twopassdatalist\empty \twopassdatafoundfalse}
-\def\getnamedtwopassdatalist#1#2{\let#1 \empty \twopassdatafoundfalse}
-\def\doifelseintwopassdata #1#2{\secondoftwoarguments}
-
-\loadmarkfile{core-two}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-uti.lua b/Master/texmf-dist/tex/context/base/core-uti.lua
index 00811e528e1..98e60be2e66 100644
--- a/Master/texmf-dist/tex/context/base/core-uti.lua
+++ b/Master/texmf-dist/tex/context/base/core-uti.lua
@@ -6,6 +6,9 @@ if not modules then modules = { } end modules ['core-uti'] = {
license = "see context related readme files"
}
+-- todo: keep track of changes here (hm, track access, and only true when
+-- accessed and changed)
+
--[[ldx--
<p>A utility file has always been part of <l n='context'/> and with
the move to <l n='luatex'/> we also moved a lot of multi-pass info
@@ -14,9 +17,13 @@ utility file under different setups, we now load a table once. This
saves much runtime but at the cost of more memory usage.</p>
--ldx]]--
-if not jobs then jobs = { } end
-if not job then jobs['main'] = { } end job = jobs['main']
-if not job.variables then job.variables = { } end
+local sort, concat, format = table.sort, table.concat, string.format
+local next, type, tostring = next, type, tostring
+
+if not jobs then jobs = { } end
+if not job then jobs['main'] = { } end job = jobs['main']
+
+jobs.version = 1.10
--[[ldx--
<p>Variables are saved using in the previously defined table and passed
@@ -24,6 +31,263 @@ onto <l n='tex'/> using the following method. Of course one can also
directly access the variable using a <l n='lua'/> call.</p>
--ldx]]--
-function job.initializevariable(cs,value)
- tex.sprint("\\xdef\\"..cs.."{"..value.."}")
+local savelist, comment = { }, { }
+
+function job.comment(str)
+ comment[#comment+1] = str
+end
+
+job.comment(format("version: %1.2f",jobs.version))
+
+job._save_, job._load_ = { }, { }
+
+function job.initialize(loadname,savename)
+ job.load(loadname)
+ main.register_stop_actions(function()
+ if not status.lasterrorstring or status.lasterrorstring == "" then
+ job.save(savename)
+ end
+ end)
+end
+
+function job.register(...) -- collected, tobesaved, initializer, finalizer
+ savelist[#savelist+1] = { ... }
+end
+
+-- as an example we implement variables
+
+jobvariables = jobvariables or { }
+jobvariables.collected = jobvariables.collected or { }
+jobvariables.tobesaved = jobvariables.tobesaved or { }
+
+jobvariables.checksums = jobvariables.checksums or { }
+
+if not jobvariables.checksums.old then jobvariables.checksums.old = md5.HEX("old") end
+if not jobvariables.checksums.new then jobvariables.checksums.new = md5.HEX("new") end
+
+job.register('jobvariables.checksums', jobvariables.checksums)
+
+local function initializer()
+ local r = jobvariables.collected.randomseed
+ if not r then
+ r = math.random()
+ end
+ math.randomseed(r)
+ jobvariables.tobesaved.randomseed = r
+ for cs, value in next, jobvariables.collected do
+ tex.sprint(format("\\xdef\\%s{%s}",cs,value))
+ end
+end
+
+job.register('jobvariables.collected', jobvariables.tobesaved, initializer)
+
+function jobvariables.save(cs,value)
+ jobvariables.tobesaved[cs] = value
+end
+
+-- experiment (bugged: some loop in running)
+
+-- for the moment here, very experimental stuff
+
+packer = packer or { }
+packer.version = 1.00
+
+local function hashed(t)
+ local s = { }
+ for k, v in next, t do
+ if type(v) == "table" then
+ s[#s+1] = k.."={"..hashed(v).."}"
+ else
+ s[#s+1] = k.."="..tostring(v)
+ end
+ end
+ sort(s)
+ return concat(s,",")
+end
+
+local function pack(t,keys,hash,index)
+ for k,v in next, t do
+ if type(v) == "table" then
+ pack(v,keys,hash,index)
+ end
+ if keys[k] and type(v) == "table" then
+ local h = hashed(v)
+ local i = hash[h]
+ if not i then
+ i = #index+1
+ index[i] = v
+ hash[h] = i
+ end
+ t[k] = i
+ end
+ end
+end
+
+local function unpack(t,keys,index)
+ for k,v in next, t do
+ if keys[k] and type(v) == "number" then
+ local iv = index[v]
+ if iv then
+ v = iv
+ t[k] = v
+ end
+ end
+ if type(v) == "table" then
+ unpack(v,keys,index)
+ end
+ end
+end
+
+function packer.new(keys,version)
+ return {
+ version = version or packer.version,
+ keys = table.tohash(keys),
+ hash = { },
+ index = { },
+ }
+end
+
+function packer.pack(t,p,shared)
+ if shared then
+ pack(t,p.keys,p.hash,p.index)
+ elseif not t.packer then
+ pack(t,p.keys,p.hash,p.index)
+ if #p.index > 0 then
+ t.packer = {
+ version = p.version or packer.version,
+ keys = p.keys,
+ index = p.index,
+ }
+ end
+ p.hash, p.index = { }, { }
+ end
+end
+
+function packer.unpack(t,p,shared)
+ if shared then
+ if p then
+ unpack(t,p.keys,p.index)
+ end
+ else
+ local tp = t.packer
+ if tp then
+ if tp.version == (p and p.version or packer.version) then
+ unpack(t,tp.keys,tp.index)
+ else
+ -- fatal error, wrong version
+ end
+ t.packer = nil
+ end
+ end
+end
+
+function packer.strip(p)
+ p.hash = nil
+end
+
+
+local packlist = {
+ "numbers",
+ "metadata",
+ "sectiondata",
+ "prefixdata",
+ "numberdata",
+ "pagedata",
+ "directives",
+ "specification",
+--~ "references",
+}
+
+local jobpacker = packer.new(packlist,1.01)
+
+job.pack = true
+
+function job.save(filename)
+ statistics.starttiming(job._save_)
+ local f = io.open(filename,'w')
+ if f then
+ for c=1,#comment do
+ f:write("-- ",comment[c],"\n")
+ end
+ f:write("\n")
+ for l=1,#savelist do
+ local list = savelist[l]
+ local target, data, finalizer = list[1], list[2], list[4]
+ if type(finalizer) == "function" then
+ finalizer()
+ end
+ if job.pack then
+ packer.pack(data,jobpacker,true)
+ end
+ f:write(aux.definetable(target),"\n")
+ f:write(table.serialize(data,target,true,true),"\n")
+ end
+ if job.pack then
+ packer.strip(jobpacker)
+ f:write(table.serialize(jobpacker,"job.packer",true,true),"\n")
+ end
+ f:close()
+ end
+ statistics.stoptiming(job._save_)
+end
+
+function job.load(filename)
+ statistics.starttiming(job._load_)
+ local data = io.loaddata(filename)
+ if data and data ~= "" then
+ local version = tonumber(data:match("^-- version: ([%d%.]+)"))
+ if version ~= jobs.version then
+ logs.report("job","version mismatch with jobfile: %s <> %s", version or "?", jobs.version)
+ else
+ local data = loadstring(data)
+ if data then
+ data()
+ end
+ for l=1,#savelist do
+ local list = savelist[l]
+ local target, initializer = list[1], list[3]
+ packer.unpack(aux.accesstable(target),job.packer,true)
+ if type(initializer) == "function" then
+ initializer(aux.accesstable(target))
+ end
+ end
+ job.packer = nil
+ end
+ end
+ statistics.stoptiming(job._load_)
+end
+
+-- eventually this will end up in strc-ini
+
+statistics.register("startup time", function()
+ if statistics.elapsedindeed(ctx) then
+ return format("%s seconds (including runtime option file processing)", statistics.elapsedtime(ctx))
+ end
+end)
+
+statistics.register("jobdata time",function()
+ if statistics.elapsedindeed(job._save_) or statistics.elapsedindeed(job._load_) then
+ return format("%s seconds saving, %s seconds loading", statistics.elapsedtime(job._save_), statistics.elapsedtime(job._load_))
+ end
+end)
+
+statistics.register("callbacks", function()
+ local total, indirect = status.callbacks or 0, status.indirect_callbacks or 0
+ local pages = tex.count['realpageno'] - 1
+ if pages > 1 then
+ return format("direct: %s, indirect: %s, total: %s (%i per page)", total-indirect, indirect, total, total/pages)
+ else
+ return format("direct: %s, indirect: %s, total: %s", total-indirect, indirect, total)
+ end
+end)
+
+function statistics.formatruntime(runtime)
+ local shipped = tex.count['nofshipouts']
+ local pages = tex.count['realpageno'] - 1
+ if shipped > 0 or pages > 0 then
+ local persecond = shipped / runtime
+ return format("%s seconds, %i processed pages, %i shipped pages, %.3f pages/second",runtime,pages,shipped,persecond)
+ else
+ return format("%s seconds",runtime)
+ end
end
diff --git a/Master/texmf-dist/tex/context/base/core-uti.mkii b/Master/texmf-dist/tex/context/base/core-uti.mkii
index 8d8fc6dcbbd..5b8f66f5008 100644
--- a/Master/texmf-dist/tex/context/base/core-uti.mkii
+++ b/Master/texmf-dist/tex/context/base/core-uti.mkii
@@ -11,6 +11,154 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+\writestatus{loading}{ConTeXt Core Macros / Utility File Handling}
+
+\unprotect
+
+% todo : safe lan etc too
+% todo : load all commands at once (tok)
+% todo : merge status info patch into tui file (language, encoding, etc),
+
+% Utility-file
+%
+% De onderstaande macro's ondersteunen het gebruik van de
+% zogeheten utility-file. Alle extern onder te brengen
+% informatie wordt opgeslagen in de file \jobname.tui, tenzij
+% er selectief pagina's worden gezet. In dat geval wordt de
+% file \jobname.tmp gebruikt. Informatie wordt ingelezen uit
+% de file \jobname.tuo, welke door TeXUtil wordt aangemaakt.
+
+\edef\utilityversion{1998.07.07} % was: 1996.03.15 % status variables
+\edef\utilityversion{1998.12.20} % was: 1998.07.07 % index attributes
+\edef\utilityversion{2003.07.19} % was: 1998.12.20 % object pages
+\edef\utilityversion{2006.06.23} % was: 2003.07.19 % -- instead of :
+\edef\utilityversion{2006.09.21} % pt in pos
+\edef\utilityversion{2008.10.14} % moved more to lua in mkiv
+
+% Bepaalde commando's worden als string weggeschreven. Deze
+% zijn aan het eind van deze file gedefinieerd.
+
+% Om een opbouw van spaties te voorkomen (???) moet ^^M een
+% andere betekenis krijgen:
+%
+% \catcode`\^^M=14 (comment)
+%
+% read file
+%
+% \catcode`\^^M=5 (end of line)
+
+\newwrite\utility@tui
+\newif\ifutilitydone
+
+\ifx\sectionseparator\undefined \def\sectionseparator{-} \fi
+
+\def\@@utilityerrormessage
+ {\showmessage\m!systems8\empty
+ \globallet\@@utilityerrormessage\relax}
+
+\def\thisisutilityversion#1%
+ {\doifelse\utilityversion{#1}%
+ {\checksectionseparator}
+ {\@@utilityerrormessage\resetutilities\endinput}}
+
+\def\checksectionseparator % catches backward compatibility conflict
+ {}% \doifnot\sectionseparator:\endinput} % this dependency may go in a few years
+
+\def\dosplitofffoliopart[#1--#2--#3]{#3}
+
+\def\thisissectionseparator#1%
+ {\bgroup
+ \globallet\checksectionseparator\relax
+ \defconvertedcommand \asciia\sectionseparator
+ \defconvertedargument\asciib{#1}%
+ \expanded{\gdef\noexpand\dosplitofffoliopart[####1\sectionseparator
+ \sectionseparator####2\sectionseparator\sectionseparator####3]{####3}}%
+ \ifx\asciia\asciib
+ \egroup
+ \else
+ \egroup
+ % todo \@@utilityerrormessage
+ \resetutilities
+ \endinput
+ \fi}
+
+\def\writeutility {\write\utility@tui}
+\def\writeutilitycommand#1{\write\utility@tui{c \string#1}}
+
+% less tokens
+%
+% \def\immediatewriteutility {\immediate\writeutility}
+% \def\immediatewriteutilitycommand{\immediate\writeutilitycommand}
+%
+% more flexible (for overloading)
+
+\def\immediatewriteutility {\immediate\write\utility@tui}
+\def\immediatewriteutilitycommand#1{\immediate\write\utility@tui{c \string#1}}
+
+% as in:
+
+\def\cwriteutility#1%
+ {\write\utility@tui{\noexpand\checkedutility{\number\nofshipouts}{#1}}}
+
+\def\cwriteutilitycommand#1%
+ {\write\utility@tui{\noexpand\checkedutility{\number\nofshipouts}{c \string#1}}}
+
+\let\checkedutility\secondoftwoarguments
+
+\def\docheckedutility#1#2{\ifnum#1=\nofshipouts#2\else\letterpercent\fi}
+
+\prependtoks
+ \let\checkedutility\docheckedutility
+\to \everybeforeshipout
+
+% Better use marks.
+
+\newtoks \everyopenutilities
+\newtoks \everycloseutilities
+\newtoks \everycheckutilities
+
+\def\openutilities {\the\everyopenutilities } % \global\everyopenutilities\emptytoks
+\def\closeutilities{\the\everycloseutilities}
+\def\checkutilities{\the\everycheckutilities}
+
+\appendtoks
+ \let\writeutility \cwriteutility
+ \let\writeutilitycommand \cwriteutilitycommand
+ %\let\immediatewriteutility \cimmediatewriteutility
+ %\let\immediatewriteutilitycommand\cimmediatewriteutilitycommand
+ \let\checkutilities \relax
+\to \everycheckutilities
+
+\appendtoks
+ \immediate\openout\utility@tui\jobname.\f!inputextension
+ \immediatewriteutilitycommand{\thisissectionseparator{\sectionseparator}}% for the moment
+ \immediatewriteutilitycommand{\thisisutilityversion {\utilityversion }}% in this order
+\to \everyopenutilities
+
+\appendtoks
+% \immediate\closeout\utility@tui % niet echt nodig
+ \reportutilityproblems
+ % should be a message :
+ \let\writeutilitycommand \gobbleoneargument
+ \let\writeutility \gobbleoneargument
+ \let\immediatewriteutilitycommand\gobbleoneargument
+ \let\immediatewriteutility \gobbleoneargument
+\to \everycloseutilities
+
+% \def\reopenutilities
+% {\immediate\closeout\utility@tui
+% \openutilities}
+
+\def\abortutilitygeneration
+ {\immediatewriteutilitycommand\utilitygenerationaborted
+ \immediatewriteutility{q {quit}}}
+
+\def\utilitygenerationaborted
+ {\showmessage\m!systems{21}\empty
+ \globallet\utilitygenerationaborted\endinput
+ \gdef\reportutilityproblems{\showmessage\m!systems{22}\empty}%
+ \endinput}
+
\def\savecurrentvalue#1#2%
{\immediatewriteutilitycommand{\initializevariable\string#1{#2}}}
@@ -20,28 +168,182 @@
\globallet\initializevariable\gobbletwoarguments
\to \everyafterutilityread
-\edef\testbytesequence
- {\rawcharacter{7}%
- \rawcharacter{27}%
- %rawcharacter{227}% invalid in xetex, which expects utf
- \rawcharacter{195}\rawcharacter{128}} % valid utf code
-
-\def\thisisbytesequence#1%
- {\ifx\testbytesequence\empty\else
- \defconvertedcommand\testbytesequence\testbytesequence
- \defconvertedargument\ascii{#1}%
- \ifx\testbytesequence\ascii \else
- \writestatus\m!systems{possible problem with 8 bit output}%
- \fi
- \fi
- \global\let\thisisbytesequence\gobbleoneargument}
+\let\reportutilityproblems\relax
+
+\newtoks\utilityresetlist
+
+\def\addutilityreset#1%
+ {\@EA\appendtoks\csname\s!reset#1\endcsname\to\utilityresetlist}
+
+\def\resetutilities
+ {\the\utilityresetlist}
+
+% #1=type #2=file #3=melding #4=voor #5=na
+%
+% Er wordt gegroepeerd. Als binnen een lijst (bijvoorbeeld) de
+% \leftskip is aangepast, maar nog geen \par is gegeven, dan
+% geldt buiten de groep de oude \leftskip. Aan #5 kan dan
+% ook \par worden meegegeven om de paragraaf af te sluiten.
+
+\newif\ifdoinpututilities
+\newif\ifunprotectutilities % voor't geval er \v!xxxxxx's zijn
-\beginXETEX
- \let\testbytesequence\empty
-\endXETEX
+\def\currentutilityfilename{\jobname}
+
+% we need to pop and push, else problems with reading
+% utility files (toc) in xml mode and (e.g.) in a toc
+% entry doing a doifmode
+%
+% the following is not ok because we have no way to signal
+% xml content (yet), so for the moment we use this:
\appendtoks
- \immediatewriteutilitycommand{\thisisbytesequence{\testbytesequence}}%
-\to \everyopenutilities
+ \ifprocessingXML
+ \processingXMLfalse
+ \enableXML
+ \catcode`\\=\@@escape
+ \catcode`\{=\@@begingroup
+ \catcode`\}=\@@endgroup
+ \catcode`\%=\@@comment\relax
+ \fi
+\to \everybeforeutilityread
+
+% \edef\testbytesequence
+% {\rawcharacter{7}%
+% \rawcharacter{27}%
+% %rawcharacter{227}% invalid in xetex, which expects utf
+% \rawcharacter{195}\rawcharacter{128}} % valid utf code
+%
+% \def\thisisbytesequence#1%
+% {\ifx\testbytesequence\empty\else
+% \defconvertedcommand\testbytesequence\testbytesequence
+% \defconvertedargument\ascii{#1}%
+% \ifx\testbytesequence\ascii \else
+% \writestatus\m!systems{possible problem with 8 bit output}%
+% \fi
+% \fi
+% \global\let\thisisbytesequence\gobbleoneargument}
+%
+% \ifnum\texengine=\xetexengine
+% \let\testbytesequence\empty
+% \fi
+%
+% \appendtoks
+% \immediatewriteutilitycommand{\thisisbytesequence{\testbytesequence}}%
+% \to \everyopenutilities
+
+\let\testbytesequence \empty % keep this
+\let\thisisbytesequence\gobbleoneargument % keep this
+
+\long\def\doutilities#1#2#3#4#5% % introduceren in utility file
+ {\resetutilities
+ % more than one utility thing can be handled in one pass,
+ % for instance lists, so we process ##1 as list
+ \def\douticommand##1{\csname\s!set##1\endcsname}%
+ \processcommacommand[#1]\douticommand
+ \begingroup
+ \def\currentutilityfilename{#2}%
+ \notesenabledfalse
+ \doinpututilitiestrue
+ \global\utilitydonefalse
+ \pushendofline % geeft problemen zodra andere file wordt ingelezen
+ \pushcatcodetable
+ \setcatcodetable\ctxcatcodes
+ \ifunprotectutilities % nog nodig ?
+ \unprotect
+ \fi
+ #4%
+ \the\everybeforeutilityread
+ \readjobfile{#2.\f!outputextension}\donothing\donothing
+ \the\everyafterutilityread
+ \popcatcodetable
+ #5%
+ \relax
+ \ifunprotectutilities
+ \protect
+ \fi
+ \popendofline
+ \ifutilitydone\else
+ \doifsomething{#3}
+ {\showmessage\m!systems9{{#3}}%
+ \doifconcepttracing
+ {\blank
+ \setmessagetext\m!systems9{{#3}}%
+ \type{[\currentmessagetext]}%
+ \blank}}%
+ \fi
+ \endgroup}
+
+% Default-instellingen (verborgen)
+
+\prependtoks \resetutilities \to \everyjob
+
+% Experiment
+%
+% \installprogram{Hello World}
+% \installprogram[hw]{Hello World}
+% \installedprogram[hw]
+
+\def\installprogram
+ {\dosingleempty\doinstallprogram}
+
+\def\doinstallprogram[#1]#2%
+ {\doifelsenothing{#1}
+ {\dodoinstallprogram{#2}}
+ {\setvalue{\??up#1}{\dodoinstallprogram{#2}}}}
+
+\def\dodoinstallprogram#1%
+ {\immediatewriteutility{e p {#1}}}
+
+\def\installedprogram[#1]%
+ {\getvalue{\??up#1}}
+
+% \writeplugindata{texutil}{{alpha}}
+% \writeplugindata{texutil}{{beta}}
+% \writeplugindata{texutil}{{gamma}}
+% \writeplugindata{texutil}{{delta}}
+%
+% \loadplugindata {plugintest}
+
+\def\immediatewriteplugindata#1#2%
+ {\immediatewriteutility{p u {#1} #2}}
+
+\def\writeplugindata#1#2%
+ {\writeutility{p u {#1} #2}}
+
+\def\loadplugindata#1%
+ {\doutilities{#1}\jobname\empty\relax\relax}
+
+% \plugincommand{\command{}{}{}}
+%
+% this way we can catch undefined commands
+
+\long\def\plugincommand#1%
+ {\doplugincommand#1\relax}
+
+\long\def\doplugincommand#1%
+ {\ifx#1\undefined
+ \expandafter\noplugincommand
+ \else
+ \expandafter#1%
+ \fi}
+
+\long\def\noplugincommand#1\relax
+ {}
+
+% \addutilityreset{plugintest}
+%
+% \def\resetplugintest{\let\plugintest\gobbletwoarguments}
+% \def\setplugintest {\let\plugintest\writestatus}
+%
+% \installplugin
+% {plugintest}
+% {\let\plugintest\gobbletwoarguments}
+% {\let\plugintest\writestatus}
+
+\long\def\installplugin#1#2#3%
+ {\addutilityreset {#1}%
+ \long\setvalue{\s!reset#1}{#2}%
+ \long\setvalue{\s!set #1}{#3}}
-\endinput
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-uti.mkiv b/Master/texmf-dist/tex/context/base/core-uti.mkiv
index 9b2f35c3002..29e6342be60 100644
--- a/Master/texmf-dist/tex/context/base/core-uti.mkiv
+++ b/Master/texmf-dist/tex/context/base/core-uti.mkiv
@@ -1,6 +1,6 @@
%D \module
%D [ file=core-uti,
-%D version=2006.09.19,
+%D version=1997.03.31, % 2006.09.19 mkiv
%D title=\CONTEXT\ Core Macros,
%D subtitle=Utility File Handling,
%D author=Hans Hagen,
@@ -11,112 +11,54 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+\writestatus{loading}{ConTeXt Core Macros / Utility File Handling}
+
\unprotect
\registerctxluafile{core-uti}{1.001}
-%D We need a way to pass strings safely to \LUA\ without the
-%D need for tricky escaping. Compare:
-%D
-%D \starttyping
-%D \ctxlua {something("anything tricky can go here")}
-%D \ctxlua {something([\luastringsep[anything tricky can go here]\luastringsep])}
-%D \stoptyping
-
-\def\luastringsep{===} % this permits \typefile{self} otherwise nested b/e sep problems
-
-\edef\!!bs{[\luastringsep[}
-\edef\!!es{]\luastringsep]}
-
-%D We have a the following available as primitive so there is no need
-%D for it:
-%D
-%D \starttyping
-%D \long\edef\luaescapestring#1{\!!bs#1\!!es}
-%D \stoptyping
-
-%D Next we implement a few helpers:
-
-\newwrite\utility@tua
-
-\prependtoks
- \def \writeutilitytua {\write\utility@tua}
- \def\immediatewriteutilitytua{\immediate\write\utility@tua}
-\to \everyjob
-
-\let \writeutilitytua\gobbleoneargument
-\let\immediatewriteutilitytua\gobbleoneargument
-
-\appendtoks
- \immediate\openout\utility@tua=\jobname.tua
- \immediatewriteutilitytua{-- file\space\space\space: \jobname}%
- \immediatewriteutilitytua{-- format\space: \contextformat}%
- \immediatewriteutilitytua{-- stamp\space\space: \contextversion}%
- \immediatewriteutilitytua{-- escape\space: \!!bs\space...\space\!!es}%
- \immediatewriteutilitytua{-- version: \utilityversion}%
- \immediatewriteutilitytua{}%
- \immediatewriteutilitytua{-- begin of utility file}%
- \immediatewriteutilitytua{}%
-% \immediatewriteutilitytua{do}%
- \immediatewriteutilitytua{if job and job.version and not job.version == "\utilityversion" then return end}%
- \immediatewriteutilitytua{if not job then job = { } end}%
- \immediatewriteutilitytua{job.version = "\utilityversion"}%
- \immediatewriteutilitytua{local ti = table.insert}%
-\to \everyopenutilities
-
-\appendtoks
-% \immediatewriteutilitytua{end}%
-% \immediatewriteutilitytua{}%
-% \immediatewriteutilitytua{-- end of utility file}%
- %\immediate\closeout\utility@tua
-\to \everycloseutilities
-
-% The next file can be in lua or luc format:
-
-\appendtoks
- \ctxlua { do
- if not job then job = { } end
- job.version = "\utilityversion"
- local settings = io.loaddata("\jobname.tuc")
- if settings then
- % if settings and settings:find("\letterpercent -\letterpercent -\letterpercent s*end of utility file\letterpercent s*$") then
- settings = loadstring(settings)
- if settings then
- settings()
- else
- logs.report("utilityfile","invalid, not loaded")
- end
- else
- logs.report("utilityfile","not present")
- end
- end}%
-\to \everyjob
-
-% variables
-
-\appendtoks
- \immediatewriteutilitytua{if not job.variables then job.variables = { } end}%
-\to \everyopenutilities
-
\def\savecurrentvalue#1#2%
- {\immediatewriteutilitytua{job.initializevariable("\strippedcsname#1","#2")}}
-
-% temp
-
-\let\thisisbytesequence\gobbleoneargument
-
-% wrong place but we need to have it someplace
+ {\ctxlua{jobvariables.save("\strippedcsname#1","#2")}}
\appendtoks
- \ctxlua{input.storage.dump()}%
+ \ctxlua{storage.dump()}% will move to lua
\to \everydump
\appendtoks
- \ctxlua{input.storage.finalize()}%
+ \ctxlua{storage.finalize()}% will move to lua
\to \everyfinalizeluacode
\appendtoks
- \ctxlua{nodes.cleanup_reserved()}%
+ \ctxlua{nodes.cleanup_reserved()}% will move to lua
\to \everydump
+\appendtoks
+ \ctxlua {
+ job.comment("file: \jobname")
+ job.comment("format: \contextformat")
+ job.comment("stamp: \contextversion")
+ job.comment("escape: \!!bs\space...\space\!!es")
+ job.initialize("\jobname.tuc","\jobname.tua")
+ }%
+\to \everystarttext
+
+% cleaner, for the moment
+
+% \appendtoks
+% \ctxlua {
+% os.remove("\jobname.tui")
+% os.remove("\jobname.tuo")
+% }%
+% \to \everystarttext
+
+%D Some styles might use these use these commands:
+
+\newif \ifutilitydone
+\let \checkutilities \relax
+\let \currentutilityfilename \jobname
+\def \installprogram {\dosingleempty\doinstallprogram}
+\def \doinstallprogram [#1]{\gobbleoneargument}
+\def \installedprogram [#1]{}
+\let \installplugin \gobblethreearguments
+
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-uti.tex b/Master/texmf-dist/tex/context/base/core-uti.tex
deleted file mode 100644
index b564347c178..00000000000
--- a/Master/texmf-dist/tex/context/base/core-uti.tex
+++ /dev/null
@@ -1,381 +0,0 @@
-%D \module
-%D [ file=core-uti,
-%D version=1997.03.31,
-%D title=\CONTEXT\ Core Macros,
-%D subtitle=Utility File Handling,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{Context Core Macros / Utility File Handling}
-
-\unprotect
-
-% todo : safe lan etc too
-% todo : load all commands at once (tok)
-% todo : merge status info patch into tui file (language, encoding, etc),
-
-% Utility-file
-%
-% De onderstaande macro's ondersteunen het gebruik van de
-% zogeheten utility-file. Alle extern onder te brengen
-% informatie wordt opgeslagen in de file \jobname.tui, tenzij
-% er selectief pagina's worden gezet. In dat geval wordt de
-% file \jobname.tmp gebruikt. Informatie wordt ingelezen uit
-% de file \jobname.tuo, welke door TeXUtil wordt aangemaakt.
-
-\edef\utilityversion{1998.07.07} % was: 1996.03.15 % status variables
-\edef\utilityversion{1998.12.20} % was: 1998.07.07 % index attributes
-\edef\utilityversion{2003.07.19} % was: 1998.12.20 % object pages
-\edef\utilityversion{2006.06.23} % was: 2003.07.19 % -- instead of :
-\edef\utilityversion{2006.09.21} % pt in pos
-
-% Bepaalde commando's worden als string weggeschreven. Deze
-% zijn aan het eind van deze file gedefinieerd.
-
-% Om een opbouw van spaties te voorkomen (???) moet ^^M een
-% andere betekenis krijgen:
-%
-% \catcode`\^^M=14 (comment)
-%
-% read file
-%
-% \catcode`\^^M=5 (end of line)
-
-\newwrite\utility@tui
-\newif\ifutilitydone
-
-\def\@@utilityerrormessage
- {\showmessage\m!systems8\empty
- \globallet\@@utilityerrormessage\relax}
-
-\def\thisisutilityversion#1%
- {\doifelse\utilityversion{#1}%
- {\checksectionseparator}
- {\@@utilityerrormessage\resetutilities\endinput}}
-
-\def\checksectionseparator % catches backward compatibility conflict
- {}% \doifnot\sectionseparator:\endinput} % this dependency may go in a few years
-
-\def\dosplitofffoliopart[#1--#2--#3]{#3}
-
-\def\thisissectionseparator#1%
- {\bgroup
- \globallet\checksectionseparator\relax
- \defconvertedcommand \asciia\sectionseparator
- \defconvertedargument\asciib{#1}%
- \expanded{\gdef\noexpand\dosplitofffoliopart[####1\sectionseparator
- \sectionseparator####2\sectionseparator\sectionseparator####3]{####3}}%
- \ifx\asciia\asciib
- \egroup
- \else
- \egroup
- % todo \@@utilityerrormessage
- \resetutilities
- \endinput
- \fi}
-
-\def\writeutility {\write\utility@tui}
-\def\writeutilitycommand#1{\write\utility@tui{c \string#1}}
-
-% less tokens
-%
-% \def\immediatewriteutility {\immediate\writeutility}
-% \def\immediatewriteutilitycommand{\immediate\writeutilitycommand}
-%
-% more flexible (for overloading)
-
-\def\immediatewriteutility {\immediate\write\utility@tui}
-\def\immediatewriteutilitycommand#1{\immediate\write\utility@tui{c \string#1}}
-
-% as in:
-
-\def\cwriteutility#1%
- {\write\utility@tui{\noexpand\checkedutility{\number\nofshipouts}{#1}}}
-
-\def\cwriteutilitycommand#1%
- {\write\utility@tui{\noexpand\checkedutility{\number\nofshipouts}{c \string#1}}}
-
-\let\checkedutility\secondoftwoarguments
-
-\def\docheckedutility#1#2{\ifnum#1=\nofshipouts#2\else\letterpercent\fi}
-
-\prependtoks
- \let\checkedutility\docheckedutility
-\to \everybeforeshipout
-
-% Better use marks.
-
-\newtoks \everyopenutilities
-\newtoks \everycloseutilities
-\newtoks \everycheckutilities
-
-\def\openutilities {\the\everyopenutilities }
-\def\closeutilities{\the\everycloseutilities}
-\def\checkutilities{\the\everycheckutilities}
-
-\appendtoks
- \let\writeutility \cwriteutility
- \let\writeutilitycommand \cwriteutilitycommand
- %\let\immediatewriteutility \cimmediatewriteutility
- %\let\immediatewriteutilitycommand\cimmediatewriteutilitycommand
- \let\checkutilities \relax
-\to \everycheckutilities
-
-\appendtoks
- \immediate\openout\utility@tui\jobname.\f!inputextension
- \immediatewriteutilitycommand{\thisissectionseparator{\sectionseparator}}% for the moment
- \immediatewriteutilitycommand{\thisisutilityversion {\utilityversion }}% in this order
-\to \everyopenutilities
-
-\appendtoks
-% \immediate\closeout\utility@tui % niet echt nodig
- \reportutilityproblems
- % should be a message :
- \let\writeutilitycommand \gobbleoneargument
- \let\writeutility \gobbleoneargument
- \let\immediatewriteutilitycommand\gobbleoneargument
- \let\immediatewriteutility \gobbleoneargument
-\to \everycloseutilities
-
-% \def\reopenutilities
-% {\immediate\closeout\utility@tui
-% \openutilities}
-
-\def\abortutilitygeneration
- {\immediatewriteutilitycommand\utilitygenerationaborted
- \immediatewriteutility{q {quit}}}
-
-\def\utilitygenerationaborted
- {\showmessage\m!systems{21}\empty
- \globallet\utilitygenerationaborted\endinput
- \gdef\reportutilityproblems{\showmessage\m!systems{22}\empty}%
- \endinput}
-
-\let\savecurrentvalue \gobbletwoarguments % mkii/mkiv
-\let\initializevariable\gobbletwoarguments % mkii/mkiv
-
-\appendtoks
- \globallet\initializevariable\gobbletwoarguments
-\to \everyafterutilityread
-
-\let\reportutilityproblems\relax
-\let\utilityresetlist \empty
-
-\newtoks\utilityresetlist
-
-\def\addutilityreset#1%
- {\@EA\appendtoks\csname\s!reset#1\endcsname\to\utilityresetlist}
-
-\def\resetutilities
- {\the\utilityresetlist}
-
-% #1=type
-% #2=file
-% #3=melding
-
-% #4=voor
-% #5=na
-
-% Er wordt gegroepeerd. Als binnen een lijst (bijvoorbeeld) de
-% \leftskip is aangepast, maar nog geen \par is gegeven, dan
-% geldt buiten de groep de oude \leftskip. Aan #5 kan dan
-% ook \par worden meegegeven om de paragraaf af te sluiten.
-
-\newif\ifdoinpututilities
-\newif\ifunprotectutilities % voor't geval er \v!xxxxxx's zijn
-
-\def\currentutilityfilename{\jobname}
-
-% \long\def\doutilities#1#2#3#4#5% % introduceren in utility file
-% {\restorecatcodes
-% \resetutilities
-% % more than one utility thing can be handled in one pass,
-% % for instance lists, so we process ##1 as list
-% \def\douticommand##1{\csname\s!set##1\endcsname}%
-% \processcommacommand[#1]\douticommand
-% \begingroup
-% \def\currentutilityfilename{#2}%
-% \notesenabledfalse
-% \doinpututilitiestrue
-% \global\utilitydonefalse
-% \catcode`\\=\@@escape
-% \catcode`\{=\@@begingroup
-% \catcode`\}=\@@endgroup
-% \catcode`\%=\@@comment\relax
-% \pushendofline % geeft problemen zodra andere file wordt ingelezen
-% \ifunprotectutilities % nog nodig ?
-% \unprotect
-% \fi
-% \ifnum\catcode`\@=\@@active \else
-% \catcode`\@=\@@letter % permits expanded commands with \@'s
-% \fi
-% \ifnum\catcode`\!=\@@active \else
-% \catcode`\!=\@@letter % permits multilingual constants
-% \fi
-% #4%
-% \the\everybeforeutilityread
-% \readjobfile{#2.\f!outputextension}\donothing\donothing
-% \the\everyafterutilityread
-% #5%
-% \relax
-% \ifunprotectutilities
-% \protect
-% \fi
-% \popendofline
-% \ifutilitydone\else
-% \doifsomething{#3}
-% {\showmessage\m!systems9{{#3}}%
-% \doifconcepttracing
-% {\blank
-% \type{[\currentmessagetext]}%
-% \blank}}%
-% \fi
-% \endgroup}
-
-% we need to pop and push, else problems with reading
-% utility files (toc) in xml mode and (e.g.) in a toc
-% entry doing a doifmode
-%
-% the following is not ok because we have no way to signal
-% xml content (yet), so for the moment we use this:
-
-\appendtoks
- \ifprocessingXML
- \processingXMLfalse
- \enableXML
- \catcode`\\=\@@escape
- \catcode`\{=\@@begingroup
- \catcode`\}=\@@endgroup
- \catcode`\%=\@@comment\relax
- \fi
-\to \everybeforeutilityread
-
-\long\def\doutilities#1#2#3#4#5% % introduceren in utility file
- {\resetutilities
- % more than one utility thing can be handled in one pass,
- % for instance lists, so we process ##1 as list
- \def\douticommand##1{\csname\s!set##1\endcsname}%
- \processcommacommand[#1]\douticommand
- \begingroup
- \def\currentutilityfilename{#2}%
- \notesenabledfalse
- \doinpututilitiestrue
- \global\utilitydonefalse
- \pushendofline % geeft problemen zodra andere file wordt ingelezen
- \pushcatcodetable
- \setcatcodetable\ctxcatcodes
- \ifunprotectutilities % nog nodig ?
- \unprotect
- \fi
- #4%
- \the\everybeforeutilityread
- \readjobfile{#2.\f!outputextension}\donothing\donothing
- \the\everyafterutilityread
- \popcatcodetable
- #5%
- \relax
- \ifunprotectutilities
- \protect
- \fi
- \popendofline
- \ifutilitydone\else
- \doifsomething{#3}
- {\showmessage\m!systems9{{#3}}%
- \doifconcepttracing
- {\blank
- \setmessagetext\m!systems9{{#3}}%
- \type{[\currentmessagetext]}%
- \blank}}%
- \fi
- \endgroup}
-
-% Default-instellingen (verborgen)
-
-\prependtoks \resetutilities \to \everyjob
-
-% Experiment
-%
-% \installprogram{Hello World}
-% \installprogram[hw]{Hello World}
-% \installedprogram[hw]
-
-\def\installprogram
- {\dosingleempty\doinstallprogram}
-
-\def\doinstallprogram[#1]#2%
- {\doifelsenothing{#1}
- {\dodoinstallprogram{#2}}
- {\setvalue{\??up#1}{\dodoinstallprogram{#2}}}}
-
-% \def\doinstallprogram[#1][#2]% less code
-% {\doifsomething{#1}{\setvalue{\??up#1}}{\dodoinstallprogram{#2}}}
-
-\def\dodoinstallprogram#1%
- {\immediatewriteutility{e p {#1}}}
-
-\def\installedprogram[#1]%
- {\getvalue{\??up#1}}
-
-% \writeplugindata{texutil}{{alpha}}
-% \writeplugindata{texutil}{{beta}}
-% \writeplugindata{texutil}{{gamma}}
-% \writeplugindata{texutil}{{delta}}
-%
-% \loadplugindata {plugintest}
-
-\def\immediatewriteplugindata#1#2%
- {\immediatewriteutility{p u {#1} #2}}
-
-\def\writeplugindata#1#2%
- {\writeutility{p u {#1} #2}}
-
-\def\loadplugindata#1%
- {\doutilities{#1}\jobname\empty\relax\relax}
-
-% \plugincommand{\command{}{}{}}
-%
-% this way we can catch undefined commands
-
-\long\def\plugincommand#1%
- {\doplugincommand#1\relax}
-
-\long\def\doplugincommand#1%
- {\ifx#1\undefined
- \expandafter\noplugincommand
- \else
- \expandafter#1%
- \fi}
-
-% shorter:
-%
-% \long\def\doplugincommand#1%
-% {\ifx#1\undefined\expandafter\noplugincommand\fi#1}
-
-\long\def\noplugincommand#1\relax
- {}
-
-% \addutilityreset{plugintest}
-%
-% \def\resetplugintest{\let\plugintest\gobbletwoarguments}
-% \def\setplugintest {\let\plugintest\writestatus}
-%
-% \installplugin
-% {plugintest}
-% {\let\plugintest\gobbletwoarguments}
-% {\let\plugintest\writestatus}
-
-\long\def\installplugin#1#2#3%
- {\addutilityreset {#1}%
- \long\setvalue{\s!reset#1}{#2}%
- \long\setvalue{\s!set #1}{#3}}
-
-% plugins
-
-\loadmarkfile{core-uti}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-var.mkii b/Master/texmf-dist/tex/context/base/core-var.mkii
new file mode 100644
index 00000000000..4de1b871848
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/core-var.mkii
@@ -0,0 +1,286 @@
+%D \module
+%D [ file=core-var,
+%D version=1998.02.21,
+%D title=\CONTEXT\ Core Macros,
+%D subtitle=Variables,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Core Macros / Variables}
+
+\unprotect
+
+%D We introduce a couple of variables that are used all over
+%D \CONTEXT. Alternatively we could define them in each module
+%D but as they are part of the bigger picture we prefer to do
+%D it here.
+
+%D \macros
+%D {every...}
+%D
+%D A few every's. Some are only used in \MKII\ or \MKIV.
+
+%D Output routine:
+
+\newtoks \everybeforeoutput
+\newtoks \everyafteroutput
+
+%D Shipout:
+
+\newtoks \everyshipout
+\newtoks \everybeforeshipout
+\newtoks \everyaftershipout
+\newtoks \everyfirstshipout
+\newtoks \everylastshipout
+
+%D End of run:
+
+\newtoks \everybye
+\newtoks \everygoodbye
+\newtoks \everynotabene
+
+%D Document
+
+\newtoks \everysetupdocument
+\newtoks \everyendoftextbody
+
+\newtoks \everystarttext
+\newtoks \everystoptext
+
+%D Purity:
+
+\newtoks \everyforgetall
+\newtoks \everycleanupfeatures
+
+\def\cleanupfeatures{\the\everycleanupfeatures}
+\def\forgetall {\the\everyforgetall}
+
+%D Page building:
+
+\newtoks \everybeforepagebody
+\newtoks \everyafterpagebody
+
+\let \everypagebody \everybeforepagebody % backward compatible
+
+%D Multipass:
+
+\newtoks \everybeforeutilityread
+\newtoks \everyafterutilityread
+
+%D Floats:
+
+\newtoks \everyinsidefloat
+
+%D Sectioning:
+
+\newtoks \everyheadstart
+
+%D Par building (experimental, used in xml <p> .. </p>)
+
+\newtoks \everybeginofpar
+\newtoks \everyendofpar
+%newtoks \everyparflush
+
+\def\bpar{\the\everybeginofpar\ignorespaces} % may interfere with \everypar
+\def\epar{\ifhmode\removeunwantedspaces\the\everyendofpar\fi} % test prevents problems with \bpar\epar
+
+%D Lists:
+
+\newtoks \everylistentry
+\newtoks \everysavesortkeys
+
+%D Marks:
+
+\newtoks \everymarking
+
+%D Fonts:
+
+\newtoks \everyfont
+\newtoks \everyglobalbodyfont
+\newtoks \everydefinedfont
+
+\newevery \everybodyfont \EveryBodyFont
+\newevery \everyfontswitch \EveryFontSwitch
+
+%D Math:
+
+\newtoks \everybeforedisplayformula
+\newtoks \everymathematics
+
+\prependtoks \the\everymathematics \to \everymath
+\prependtoks \the\everymathematics \to \everydisplay
+
+%D Tables
+
+\newtoks \everytable
+
+%D State mess:
+
+\newtoks \everypushsomestate
+\newtoks \everypopsomestate
+
+\def\pushsomestates{\the\everypushsomestate}
+\def\popsomestates {\the\everypopsomestate }
+
+%D More generic (used to be pushcolor etc)
+
+\newtoks\everypushproperties
+\newtoks\everypopproperties
+\newtoks\everypopsplitproperties
+
+\newtoks\everystarttextproperties
+\newtoks\everystoptextproperties
+
+\def\pushproperties {\the\everypushproperties}
+\def\popproperties {\the\everypopproperties}
+\def\popsplitproperties {\the\everypopsplitproperties}
+
+\def\starttextproperties{\the\everystarttextproperties}
+\def\stoptextproperties {\the\everystoptextproperties}
+
+%D This is pretty important (esp since we now ignore shipouts).
+%D Actually we should nil all writes, marks, specials.
+
+\appendtoks \globallet\popproperties \relax \to \everylastshipout
+\appendtoks \globallet\popsplitproperties\relax \to \everylastshipout
+
+%D \macros
+%D {defineinputmode,setinputmode}
+%D
+%D New. Some work needs to be done.
+
+% not in mkiv
+
+\def\defineinputmode[#1]{\@EA\newtoks\csname every#1inputmode\endcsname}
+\def\setinputmode [#1]{\the\executeifdefined{every#1inputmode}\emptytoks}
+
+\defineinputmode [TEX]
+\defineinputmode [XML]
+
+\setinputmode [TEX]
+
+%D \macros
+%D {trialtypesetting}
+%D
+%D We disable trial typesetting in the output routine,
+%D just to be sure.
+
+\newif\iftrialtypesetting
+
+\prependtoks \trialtypesettingfalse \to \everybeforepagebody
+
+%D \macros
+%D {ifinpagebody,ifinsidecolumns,ifdoublesided,ifsinglesided}
+
+\newif \ifinpagebody
+\newif \ifinsidecolumns
+\newif \ifdoublesided \doublesidedfalse
+\newif \ifsinglesided \singlesidedtrue
+\newif \ifinsidefloat
+\newif \ifdoingblocks
+\newif \ifgridsnapping
+
+%D \macros
+%D {ifprocessingXML}
+%D
+%D We need this one even if no \XML\ is supported.
+
+\newif\ifprocessingXML % old way
+
+%D \macros
+%D {ifproductionrun}
+%D
+%D This boolean can be used to bypass certain
+%D initializations.
+
+\ifx\protectionlevel\undefined \newcount\protectionlevel \fi
+
+\newif\ifproductionrun
+
+\appendtoks \productionruntrue \to \everydump
+
+\appendtoks \ifcase\protectionlevel\else\reportunprotection\fi \to \everydump
+
+%D \macros
+%D {everyboxedcontent, ifboxedcontent,
+%D startboxedcontent, stopboxedcontent}
+%D
+%D This one is relatively new and will be used as a more
+%D robust test for inner situations.
+
+\newif \ifboxedcontent
+\newtoks\everyboxedcontent
+
+\appendtoks \boxedcontenttrue \to \everyboxedcontent
+
+\def\startboxedcontent{\bgroup\the\everyboxedcontent}
+\let\stopboxedcontent \egroup
+
+%D \macros
+%D {fastmode,silentmode}
+%D
+%D These commands are obsolete.
+
+\let\fastmode \relax
+\let\silentmode\relax
+
+%D \macros
+%D {defineselector,setupselector}
+%D
+%D \starttyping
+%D \defineselector[caption][max=2,n=2]
+%D
+%D \start
+%D \setupselector[caption][n=1]
+%D \placelist[figure][criterium=all]
+%D \stop
+%D
+%D \starttext
+%D \placefigure
+%D {\select{caption}{zapf}{\input zapf \relax}}
+%D {}
+%D \stoptext
+%D \stoptyping
+
+\def\defineselector{\dodoubleargument\dodefineselector}
+\def\setupselector {\dodoubleargument\dosetupselector}
+
+\def\dodefineselector[#1][#2]{\getparameters[\??sx#1][\c!max=2,\c!n=1,#2]}
+\def\dosetupselector [#1][#2]{\getparameters[\??sx#1][#2]}
+
+\unexpanded\def\select#1%
+ {\filterfromnext
+ {\executeifdefined{\??sx#1\c!max}1}
+ {\executeifdefined{\??sx#1\c!n }1}}
+
+%D We store some original meanings, maybe in \type
+%D {math-ini}.
+
+\let\normalat \at
+\let\normalin \in
+\let\normalfrom \from
+%let\normalover \over
+\let\normalabout\about
+
+%D Add-ons:
+
+\let\startlayoutcomponent\gobbletwoarguments
+\let\stoplayoutcomponent \relax
+
+%D Concepts:
+
+\chardef\conceptmode\zerocount
+
+\def\doifconcepttracing
+ {\ifnum\conceptmode>\plustwo
+ \expandafter\firstofoneargument
+ \else
+ \expandafter\gobbleoneargument
+ \fi}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-var.mkiv b/Master/texmf-dist/tex/context/base/core-var.mkiv
new file mode 100644
index 00000000000..d6e02e392ff
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/core-var.mkiv
@@ -0,0 +1,267 @@
+%D \module
+%D [ file=core-var,
+%D version=1998.02.21,
+%D title=\CONTEXT\ Core Macros,
+%D subtitle=Variables,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Core Macros / Variables}
+
+\unprotect
+
+%D We introduce a couple of variables that are used all over
+%D \CONTEXT. Alternatively we could define them in each module
+%D but as they are part of the bigger picture we prefer to do
+%D it here.
+
+%D \macros
+%D {every...}
+%D
+%D A few every's. Some are only used in \MKII\ or \MKIV.
+
+%D Output routine:
+
+\newtoks \everybeforeoutput
+\newtoks \everyafteroutput
+
+%D Shipout:
+
+\newtoks \everyshipout
+\newtoks \everybeforeshipout
+\newtoks \everyaftershipout
+\newtoks \everyfirstshipout
+\newtoks \everylastshipout
+
+%D End of run:
+
+\newtoks \everybye
+\newtoks \everygoodbye
+\newtoks \everynotabene
+
+%D Document
+
+\newtoks \everysetupdocument
+\newtoks \everyendoftextbody
+
+\newtoks \everystarttext
+\newtoks \everystoptext
+
+%D Purity:
+
+\newtoks \everyforgetall
+\newtoks \everycleanupfeatures
+
+\def\cleanupfeatures{\the\everycleanupfeatures}
+\def\forgetall {\the\everyforgetall}
+
+%D Page building:
+
+\newtoks \everybeforepagebody
+\newtoks \everyafterpagebody
+
+\let \everypagebody \everybeforepagebody % backward compatible
+
+%D Multipass:
+
+\newtoks \everybeforeutilityread
+\newtoks \everyafterutilityread
+
+%D Floats:
+
+\newtoks \everyinsidefloat
+
+%D Sectioning:
+
+\newtoks \everyheadstart
+
+%D Par building (experimental, used in xml <p> .. </p>)
+
+\newtoks \everybeginofpar
+\newtoks \everyendofpar
+%newtoks \everyparflush
+
+\def\bpar{\the\everybeginofpar\ignorespaces} % may interfere with \everypar
+\def\epar{\ifhmode\removeunwantedspaces\the\everyendofpar\fi} % test prevents problems with \bpar\epar
+
+%D Lists:
+
+\newtoks \everylistentry
+\newtoks \everysavesortkeys
+
+%D Marks:
+
+\newtoks \everymarking
+
+%D Fonts:
+
+\newtoks \everyfont
+\newtoks \everyglobalbodyfont
+\newtoks \everydefinedfont
+
+\newevery \everybodyfont \EveryBodyFont
+\newevery \everyfontswitch \EveryFontSwitch
+
+%D Math:
+
+\newtoks \everybeforedisplayformula
+\newtoks \everymathematics
+
+\prependtoks \the\everymathematics \to \everymath
+\prependtoks \the\everymathematics \to \everydisplay
+
+%D Tables
+
+\newtoks \everytable
+
+%D State mess:
+
+\newtoks \everypushsomestate
+\newtoks \everypopsomestate
+
+\def\pushsomestates{\the\everypushsomestate}
+\def\popsomestates {\the\everypopsomestate }
+
+%D More generic (used to be pushcolor etc)
+
+\newtoks\everystarttextproperties
+\newtoks\everystoptextproperties
+
+\def\starttextproperties{\the\everystarttextproperties}
+\def\stoptextproperties {\the\everystoptextproperties}
+
+%D \macros
+%D {defineinputmode,setinputmode}
+%D
+%D New. Some work needs to be done.
+
+% not in mkiv
+
+\def\defineinputmode[#1]{\@EA\newtoks\csname every#1inputmode\endcsname}
+\def\setinputmode [#1]{\the\executeifdefined{every#1inputmode}\emptytoks}
+
+\defineinputmode [TEX]
+\defineinputmode [XML]
+
+\setinputmode [TEX]
+
+%D \macros
+%D {trialtypesetting}
+%D
+%D We disable trial typesetting in the output routine,
+%D just to be sure.
+
+\newif\iftrialtypesetting
+
+\prependtoks \trialtypesettingfalse \to \everybeforepagebody
+
+%D \macros
+%D {ifinpagebody,ifinsidecolumns,ifdoublesided,ifsinglesided}
+
+\newif \ifinpagebody
+\newif \ifinsidecolumns
+\newif \ifdoublesided \doublesidedfalse
+\newif \ifsinglesided \singlesidedtrue
+\newif \ifinsidefloat
+\newif \ifdoingblocks
+\newif \ifgridsnapping
+
+%D \macros
+%D {ifprocessingXML}
+%D
+%D We need this one even if no \XML\ is supported.
+
+\newif\ifprocessingXML % old way
+
+%D \macros
+%D {ifproductionrun}
+%D
+%D This boolean can be used to bypass certain
+%D initializations.
+
+\newif\ifproductionrun \appendtoks \productionruntrue \to \everydump
+
+%D \macros
+%D {everyboxedcontent, ifboxedcontent,
+%D startboxedcontent, stopboxedcontent}
+%D
+%D This one is relatively new and will be used as a more
+%D robust test for inner situations.
+
+\newif \ifboxedcontent
+\newtoks\everyboxedcontent
+
+\appendtoks \boxedcontenttrue \to \everyboxedcontent
+
+\def\startboxedcontent{\bgroup\the\everyboxedcontent}
+\let\stopboxedcontent \egroup
+
+%D \macros
+%D {fastmode,silentmode}
+%D
+%D These commands are obsolete.
+
+\let\fastmode \relax
+\let\silentmode\relax
+
+%D \macros
+%D {defineselector,setupselector}
+%D
+%D \starttyping
+%D \defineselector[caption][max=2,n=2]
+%D
+%D \start
+%D \setupselector[caption][n=1]
+%D \placelist[figure][criterium=all]
+%D \stop
+%D
+%D \starttext
+%D \placefigure
+%D {\select{caption}{zapf}{\input zapf \relax}}
+%D {}
+%D \stoptext
+%D \stoptyping
+
+\def\defineselector{\dodoubleargument\dodefineselector}
+\def\setupselector {\dodoubleargument\dosetupselector}
+
+\def\dodefineselector[#1][#2]{\getparameters[\??sx#1][\c!max=2,\c!n=1,#2]}
+\def\dosetupselector [#1][#2]{\getparameters[\??sx#1][#2]}
+
+\unexpanded\def\select#1%
+ {\filterfromnext
+ {\executeifdefined{\??sx#1\c!max}1}
+ {\executeifdefined{\??sx#1\c!n }1}}
+
+%D We store some original meanings, maybe in \type
+%D {math-ini}.
+
+\let\normalat \at
+\let\normalin \in
+\let\normalfrom \from
+%let\normalover \over
+\let\normalabout\about
+
+%D Add-ons:
+
+\let\setlayoutcomponentattribute \gobbletwoarguments
+\let\resetlayoutcomponentattribute\relax
+\let\layoutcomponentboxattribute \empty
+
+%D Concepts:
+
+\chardef\conceptmode\zerocount
+
+\def\doifconcepttracing
+ {\ifnum\conceptmode>\plustwo
+ \expandafter\firstofoneargument
+ \else
+ \expandafter\gobbleoneargument
+ \fi}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-var.tex b/Master/texmf-dist/tex/context/base/core-var.tex
deleted file mode 100644
index 61a8c87e799..00000000000
--- a/Master/texmf-dist/tex/context/base/core-var.tex
+++ /dev/null
@@ -1,687 +0,0 @@
-%D \module
-%D [ file=core-var,
-%D version=1998.02.21,
-%D title=\CONTEXT\ Core Macros,
-%D subtitle=Variables,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{Context Core Macros / Variables}
-
-\unprotect
-
-%D Modes:
-%D
-%D \starttyping
-%D \enablemode[screen,paper,bound]
-%D
-%D \doifmodeelse {paper} {this} {that}
-%D \doifmode {paper,screen} {this}
-%D \doifnotmode {paper,bound} {that}
-%D
-%D \startmode [list]
-%D \stopmode
-%D
-%D \startnotmode [list]
-%D \stopnotmode
-%D \stoptyping
-%D
-%D system modes have a * as prefix
-%D
-%D Sometimes, we want to prevent a mode for being set. Think
-%D of situations where a style enables a mode, but an outer
-%D level style does not want that. Preventing can be
-%D considered a permanent disabling on forehand.
-
-% \def\systemmodeprefix{*}
-%
-% \let\currentmode \empty
-% \let\preventedmodes\empty
-%
-% \def\preventmode[#1]%
-% {\expanded{\addtocommalist{#1}\noexpand\preventedmodes}}
-%
-% \def\enablemode[#1]%
-% {\expanded
-% {\doifnotinset{#1}{\preventedmodes}
-% {\noexpand\addtocommalist{#1}\noexpand\currentmode}}}
-%
-% \def\disablemode[#1]%
-% {\expanded{\removefromcommalist{#1}\noexpand\currentmode}}
-%
-% \def\doifmodeelse{\unprotect\dodoifmodeelse}
-% \def\doifmode {\unprotect\dodoifmode }
-% \def\doifnotmode {\unprotect\dodoifnotmode }
-% \def\startmode {\unprotect\dostartmode }
-% \def\startnotmode{\unprotect\dostartnotmode}
-%
-% \long\def\dodoifmodeelse#1%
-% {\protect\expanded{\doifcommonelse{#1}{\currentmode}}}
-%
-% \long\def\dodoifmode#1%
-% {\protect\expanded{\doifcommon {#1}{\currentmode}}}
-%
-% \long\def\dodoifnotmode#1%
-% {\protect\expanded{\doifnotcommon {#1}{\currentmode}}}
-%
-% \let\stopmode \relax
-% \let\stopnotmode\relax
-%
-% \long\def\dostartmode[#1]%
-% {\protect
-% \expanded{\doifnotcommon{#1}{\currentmode}}{\gobbleuntil\stopmode}}
-%
-% \long\def\dostartnotmode[#1]%
-% {\protect
-% \expanded{\doifcommon {#1}{\currentmode}}{\gobbleuntil\stopnotmode}}
-%
-% \def\doifallmodeselse{\unprotect\dodoifallmodeselse}
-% \def\doifallmodes {\unprotect\dodoifallmodes}
-% \def\doifnotallmodes {\unprotect\dodoifnotallmodes}
-% \def\startallmodes {\unprotect\dostartallmodes}
-% \def\startnotallmodes{\unprotect\dostartnotallmodes}
-%
-% \long\def\dodoifallmodeselse#1%
-% {\protect\expanded{\doifallcommonelse{#1}{\currentmode}}}
-%
-% \long\def\dodoifallmodes#1%
-% {\protect\expanded{\doifallcommon {#1}{\currentmode}}}
-%
-% \long\def\dodoifnotallmodes#1%
-% {\protect\expanded{\doifnotallcommon {#1}{\currentmode}}}
-%
-% \let\stopallmodes \relax
-% \let\stopnotallmodes\relax
-%
-% \long\def\dostartallmodes[#1]%
-% {\protect
-% \expanded{\doifnotallcommon{#1}{\currentmode}}{\gobbleuntil\stopallmodes}}
-%
-% \long\def\dostartnotallmodes[#1]%
-% {\protect
-% \expanded{\doifallcommon {#1}{\currentmode}}{\gobbleuntil\stopnotallmodes}}
-
-% faster
-
-\def\@mode@{@md@}
-
-\def\systemmodeprefix{*}
-
-\def\disabledmode {0}
-\def\enabledmode {1}
-\def\preventedmode {2}
-
-% fast internal ones
-
-\def\setmode #1{\@EA\let\csname\@mode@#1\endcsname\enabledmode }
-\def\resetmode#1{\@EA\let\csname\@mode@#1\endcsname\disabledmode}
-
-\def\setsystemmode #1{\@EA\let\csname\@mode@\systemmodeprefix#1\endcsname\enabledmode }
-\def\resetsystemmode#1{\@EA\let\csname\@mode@\systemmodeprefix#1\endcsname\disabledmode}
-
-% user ones
-
-\def\preventmode{\unprotect\dopreventmode}
-\def\enablemode {\unprotect\doenablemode }
-\def\disablemode{\unprotect\dodisablemode}
-
-% \def\dopreventmode[#1]{\protect\rawprocesscommalist[#1]\dodopreventmode}
-% \def\doenablemode [#1]{\protect\rawprocesscommalist[#1]\dodoenablemode }
-% \def\dodisablemode[#1]{\protect\rawprocesscommalist[#1]\dododisablemode}
-%
-% better:
-
-\def\dopreventmode[#1]{\protect\cleanuplabel{#1}\rawprocesscommalist[\cleanlabel]\dodopreventmode}
-\def\doenablemode [#1]{\protect\cleanuplabel{#1}\rawprocesscommalist[\cleanlabel]\dodoenablemode }
-\def\dodisablemode[#1]{\protect\cleanuplabel{#1}\rawprocesscommalist[\cleanlabel]\dododisablemode}
-
-\def\dodopreventmode#1%
- {\@EA\let\csname\@mode@#1\endcsname\preventedmode}
-
-\def\dodoenablemode#1% mode can be relax
- {\ifcase0\csname\@mode@#1\endcsname\relax
- \@EA\let\csname\@mode@#1\endcsname\enabledmode
- \fi}
-
-\def\dododisablemode#1%
- {\ifcase0\csname\@mode@#1\endcsname\or
- \@EA\let\csname\@mode@#1\endcsname\disabledmode
- \fi}
-
-% handy for mp
-
-\def\booleanmodevalue#1% can be \relax
- {\expandafter\ifx\csname\@mode@#1\endcsname\relax
- fals%
- \else\ifnum0\csname\@mode@#1\endcsname=0
- fals%
- \else
- tru%
- \fi\fi e}
-
-% check macros
-
-\newif\ifcheckedmode
-
-\def\dodocheckformode#1%
- {\ifcase0\csname\@mode@#1\endcsname\or\checkedmodetrue\fi}
-
-\def\docheckformode#1#2#3% will be sped up with a quit
- {\cleanuplabel{#3}%
- \protect\checkedmodefalse\rawprocesscommacommand[\cleanlabel]\dodocheckformode
- \ifcheckedmode\@EA#1\else\@EA#2\fi}
-
-\def\dodocheckforallmodes#1%
- {\ifcase0\csname\@mode@#1\endcsname\relax\checkedmodefalse\or\or\checkedmodefalse\fi}
-
-\def\docheckforallmodes#1#2#3% will be sped up with a quit
- {\cleanuplabel{#3}%
- \protect\checkedmodetrue\rawprocesscommacommand[\cleanlabel]\dodocheckforallmodes
- \ifcheckedmode\@EA#1\else\@EA#2\fi}
-
-% simple ones
-
-\def\doifmodeelse{\unprotect\dodoifmodeelse}
-\def\doifmode {\unprotect\dodoifmode}
-\def\doifnotmode {\unprotect\dodoifnotmode}
-\def\startmode {\unprotect\dostartmode}
-\def\startnotmode{\unprotect\dostartnotmode}
-
-\def\dodoifmodeelse
- {\docheckformode\firstoftwoarguments\secondoftwoarguments}
-
-\def\dodoifmode
- {\docheckformode\firstofoneargument\gobbleoneargument}
-
-\def\dodoifnotmode
- {\docheckformode\gobbleoneargument\firstofoneargument}
-
-\long\def\dostartmode[#1]%
- {\docheckformode\donothing\dostopmode{#1}}
-
-\long\def\dostartnotmode[#1]%
- {\docheckformode\dostopnotmode\donothing{#1}}
-
-\let\stopmode \donothing
-\let\stopnotmode\donothing
-
-\long\def\dostopmode #1\stopmode {}
-\long\def\dostopnotmode#1\stopnotmode{}
-
-\def\doifallmodeselse{\unprotect\dodoifallmodeselse}
-\def\doifallmodes {\unprotect\dodoifallmodes}
-\def\doifnotallmodes {\unprotect\dodoifnotallmodes}
-\def\startallmodes {\unprotect\dostartallmodes}
-\def\startnotallmodes{\unprotect\dostartnotallmodes}
-
-\def\dodoifallmodeselse
- {\docheckforallmodes\firstoftwoarguments\secondoftwoarguments}
-
-\def\dodoifallmodes
- {\docheckforallmodes\firstofoneargument\gobbleoneargument}
-
-\def\dodoifnotallmodes
- {\docheckforallmodes\gobbleoneargument\firstofoneargument}
-
-\long\def\dostartallmodes[#1]%
- {\docheckforallmodes\donothing\dostopallmodes{#1}}
-
-\long\def\dostartnotallmodes[#1]%
- {\docheckforallmodes\dostopnotallmodes\donothing{#1}}
-
-\let\stopallmodes \donothing
-\let\stopnotallmodes\donothing
-
-\long\def\dostopallmodes #1\stopallmodes {}
-\long\def\dostopnotallmodes#1\stopnotallmodes{}
-
-%D \macros
-%D {every...}
-%D
-%D A few every's.
-
-\newevery \everyshipout \relax
-\newevery \everybeforeshipout \relax
-\newevery \everyaftershipout \relax
-\newevery \everyfirstshipout \relax
-\newevery \everylastshipout \relax
-\newevery \everybye \relax
-\newevery \everygoodbye \relax
-\newevery \everystarttext \relax
-\newevery \everystoptext \relax
-\newevery \everyforgetall \relax
-\newevery \everybeforepagebody \relax
-\newevery \everyafterpagebody \relax
-\newevery \everybeforeutilityread \relax
-\newevery \everyafterutilityread \relax
-
-\let \everypagebody \everybeforepagebody % backward compatible
-
-%newevery \everybeforeutilitywrite \relax
-
-\newevery \everycleanupfeatures \relax
-\newevery \everyinsidefloat \relax
-\newevery \everyheadstart \relax
-\newevery \everyendoftextbody \relax
-\newevery \everybeginofpar \relax
-\newevery \everyendofpar \relax
-\newevery \everylistentry \relax
-\newevery \everymarking \relax
-\newevery \everysavesortkeys \relax
-
-\newevery \everyfont \relax
-\newevery \everybodyfont \EveryBodyFont
-\newevery \everyglobalbodyfont \relax
-\newevery \everyfontswitch \EveryFontSwitch
-\newevery \everydefinedfont \relax
-
-\newevery \everybeforeoutput \relax
-\newevery \everyafteroutput \relax
-
-\newevery \everybeforedisplayformula \relax
-
-\def\cleanupfeatures{\the\everycleanupfeatures}
-\def\forgetall {\the\everyforgetall}
-
-%D State mess:
-
-\newtoks \everypushsomestate
-\newtoks \everypopsomestate
-
-\def\pushsomestates{\the\everypushsomestate}
-\def\popsomestates {\the\everypopsomestate }
-
-%D For shared \type {\everymath} and \type {\everydisplay}:
-
-\newevery \everymathematics \relax
-
-\prependtoks \the\everymathematics \to \everymath
-\prependtoks \the\everymathematics \to \everydisplay
-
-% \newevery \everyparflush \relax % collected nodes
-
-%D Experimental (used in xml <p> .. </p>
-
-\def\bpar{\the\everybeginofpar\ignorespaces} % may interfere with \everypar
-\def\epar{\ifhmode\removeunwantedspaces\the\everyendofpar\fi} % test prevents problems with \bpar\epar
-
-%D More generic (used to be pushcolor etc)
-
-\newtoks\everypushproperties
-\newtoks\everypopproperties
-\newtoks\everypopsplitproperties
-
-\newtoks\everystarttextproperties
-\newtoks\everystoptextproperties
-
-\def\pushproperties {\the\everypushproperties}
-\def\popproperties {\the\everypopproperties}
-\def\popsplitproperties {\the\everypopsplitproperties}
-
-\def\starttextproperties{\the\everystarttextproperties}
-\def\stoptextproperties {\the\everystoptextproperties}
-
-%D This is pretty important (esp since we now ignore shipouts).
-%D Actually we should nil all writes, marks, specials.
-
-\appendtoks \globallet\popproperties \relax \to \everylastshipout
-\appendtoks \globallet\popsplitproperties\relax \to \everylastshipout
-
-%D \macros
-%D {defineinputmode,setinputmode}
-%D
-%D New. Some work needs to be done.
-
-\def\defineinputmode[#1]{\@EA\newtoks\csname every#1inputmode\endcsname}
-%def\setinputmode [#1]{\the \csname every#1inputmode\endcsname}
-\def\setinputmode [#1]{\the\executeifdefined{every#1inputmode}\emptytoks}
-
-\defineinputmode [TEX]
-\defineinputmode [XML]
-
-\setinputmode [TEX]
-
-%D \macros
-%D {trialtypesetting}
-%D
-%D We disable trial typesetting in the output routine,
-%D just to be sure.
-
-% defined in syst-ext
-
-\prependtoks \trialtypesettingfalse \to \everybeforepagebody
-
-%D \macros
-%D {ifinpagebody,ifinsidecolumns,ifdoublesided,ifsinglesided}
-
-\newif \ifinpagebody
-\newif \ifinsidecolumns
-\newif \ifdoublesided \doublesidedfalse
-\newif \ifsinglesided \singlesidedtrue
-\newif \ifinsidefloat
-\newif \ifdoingblocks
-\newif \ifgridsnapping
-
-%D \macros
-%D {ifprocessingXML}
-%D
-%D We need this one even if no \XML\ is supported.
-
-\newif\ifprocessingXML
-
-%D \macros
-%D {ifproductionrun}
-%D
-%D This boolean can be used to bypass certain
-%D initializations.
-
-\ifx\protectionlevel\undefined \newcount\protectionlevel \fi
-
-\newif\ifproductionrun \appendtoks \productionruntrue \to \everydump
-
-\appendtoks \ifcase\protectionlevel\else\reportunprotection\fi \to \everydump
-
-%D \macros
-%D {everyboxedcontent, ifboxedcontent,
-%D startboxedcontent, stopboxedcontent}
-%D
-%D This one is relatively new and will be used as a more
-%D robust test for inner situations.
-
-\newif \ifboxedcontent
-\newevery \everyboxedcontent \relax
-
-\appendtoks \boxedcontenttrue \to \everyboxedcontent
-
-\def\startboxedcontent{\bgroup\the\everyboxedcontent}
-\let\stopboxedcontent \egroup
-
-%D \macros
-%D {fastmode}
-%D
-%D The command \type {\fastmode} disables some time consuming
-%D typesetting.
-
-\newevery \everyfastmode \relax
-
-\newif\iffastmode
-
-\def\fastmode
- {\fastmodetrue
- \the\everyfastmode}
-
-\def\silentmode % ook hier \everysilentmode net als \fastmode
- {\showmessagesfalse
- \showwarningsfalse
- \let\writestatus\gobbletwoarguments}
-
-%D \macros
-%D {pdfoutput}
-%D
-%D There are some fundamental differences between producing
-%D \DVI\ and \PDF\ output, especially when we use \PDFTEX, like
-%D object reuse, one pass graphic inclusion and the lack of a
-%D postprocessing stage. Because we must make sure that
-%D \CONTEXT\ knows what it's up to, we always default to \DVI\
-%D mode, even when users explicitly ask for \PDF\ output in the
-%D \PDFTEX\ configuration file.
-
-\ifx\pdfoutput\undefined \else
-
- \prependtoks \pdfoutput=0 \to \everyjob
-
-\fi
-
-%D \macros
-%D {setvariables,getvariable,getvariabledefault}
-%D
-%D \starttyping
-%D \setvariables[xx][title=]
-%D \setvariables[xx][title=test test]
-%D \setvariables[xx][title=test $x=1$ test] % fatal error reported
-%D \setvariables[xx][title=test {$x=1$} test]
-%D \setvariables[xx][title] % fatal error reported
-%D \setvariables[xx][titletitel=e]
-%D \stoptyping
-
-\def\??vars{@@vars}
-
-\def\setvariables {\dotripleargument\dosetvariables[\getrawparameters ]}
-\def\setevariables{\dotripleargument\dosetvariables[\getraweparameters]}
-\def\setgvariables{\dotripleargument\dosetvariables[\getrawgparameters]}
-\def\setxvariables{\dotripleargument\dosetvariables[\getrawxparameters]}
-
-\def\globalsetvariables % obsolete
- {\dotripleargument\dosetvariables[\globalgetrawparameters]}
-
-% \long\def\dosetvariables[#1][#2][#3]%
-% {\errorisfataltrue
-% \def\currentvariableclass{#2}%
-% \getvariable{#2}\s!reset
-% #1[\??vars:#2:][#3]%
-% \getvariable{#2}\s!set
-% \errorisfatalfalse}
-%
-% permit nested definitions while preventing nested set/reset
-%
-% wrong:
-%
-% \long\def\dosetvariables[#1][#2][#3]%
-% {\errorisfataltrue
-% \getrawparameters[\??vars:*:][\s!reset=*,\s!set=*,#3]%
-% \doifelse{\getvalue{\??vars:*:\s!reset}\getvalue{\??vars:*:\s!set}}{**}
-% {\doifelse{#2}\currentvariableclass
-% {#1[\??vars:#2:][#3]}
-% {\pushmacro\currentvariableclass
-% \def\currentvariableclass{#2}%
-% \getvariable{#2}\s!reset
-% #1[\??vars:#2:][#3]%
-% \getvariable{#2}\s!set
-% \popmacro\currentvariableclass}}%
-% {#1[\??vars:#2:][#3]}%
-% \errorisfatalfalse}
-
-\long\def\dosetvariables[#1][#2][#3]% tricky, test on s-pre-60
- {\errorisfataltrue
- \doifelse{#2}\currentvariableclass
- {#1[\??vars:#2:][#3]}%
- {\pushmacro\currentvariableclass
- \def\currentvariableclass{#2}%
- \getvariable{#2}\s!reset
- #1[\??vars:#2:][#3]%
- \getvariable{#2}\s!set
- \popmacro\currentvariableclass}%
- \errorisfatalfalse}
-
-\long\def\setvariable #1#2#3{\long\setvalue {\??vars:#1:#2}{#3}}
-\long\def\setevariable#1#2#3{\long\setevalue{\??vars:#1:#2}{#3}}
-\long\def\setgvariable#1#2#3{\long\setgvalue{\??vars:#1:#2}{#3}}
-\long\def\setxvariable#1#2#3{\long\setxvalue{\??vars:#1:#2}{#3}}
-
-\beginTEX
-
-\def\getvariable#1#2% to be sped up
- {\csname
- \ifundefined{\??vars:#1:#2}\s!empty\else\??vars:#1:#2\fi
- \endcsname}
-
-\endTEX
-
-\beginETEX \ifcsname
-
-\def\getvariable#1#2% to be sped up
- {\csname
- \ifcsname\??vars:#1:#2\endcsname\??vars:#1:#2\else\s!empty\fi
- \endcsname}
-
-\endETEX
-
-\def\showvariable#1#2%
- {\showvalue{\ifundefined{\??vars:#1:#2}\s!empty\else\??vars:#1:#2\fi}}
-
-\let\currentvariableclass\empty
-
-%D \macros
-%D {doifelsevariable,doifvariable,doifnotvariable}
-%D
-%D A few trivial macros:
-
-\def\doifelsevariable#1#2%
- {\ifundefined{\??vars:#1:#2}%
- \expandafter\secondoftwoarguments
- \else
- \expandafter\firstoftwoarguments
- \fi}
-
-\def\doifvariable#1#2%
- {\ifundefined{\??vars:#1:#2}%
- \expandafter\gobbleoneargument
- \else
- \expandafter\firstofoneargument
- \fi}
-
-\def\doifnotvariable#1#2%
- {\ifundefined{\??vars:#1:#2}%
- \expandafter\firstofoneargument
- \else
- \expandafter\gobbleoneargument
- \fi}
-
-\def\getvariabledefault#1#2% #3%
- {\executeifdefined{\??vars:#1:#2}}% {#3}
-
-%D \macros
-%D {defineselector,setupselector}
-%D
-%D \starttyping
-%D \defineselector[caption][max=2,n=2]
-%D
-%D \start
-%D \setupselector[caption][n=1]
-%D \placelist[figure][criterium=all]
-%D \stop
-%D
-%D \starttext
-%D \placefigure
-%D {\select{caption}{zapf}{\input zapf \relax}}
-%D {}
-%D \stoptext
-%D \stoptyping
-
-\def\defineselector{\dodoubleargument\dodefineselector}
-\def\setupselector {\dodoubleargument\dosetupselector}
-
-\def\dodefineselector[#1][#2]{\getparameters[\??sx#1][\c!max=2,\c!n=1,#2]}
-\def\dosetupselector [#1][#2]{\getparameters[\??sx#1][#2]}
-
-\unexpanded\def\select#1%
- {\filterfromnext
- {\executeifdefined{\??sx#1\c!max}1}
- {\executeifdefined{\??sx#1\c!n }1}}
-
-%D \macros
-%D {checkvariables}
-%D
-%D I'll probably forget that this on exists.
-
-\def\checkvariables
- {\dodoubleargument\docheckvariables}
-
-\def\docheckvariables
- {\dogetparameters\docheckrawvalue}
-
-\def\docheckrawvalue#1#2#3%
- {\doifundefined {\??vars:#1:#2}{\setvalue{\??vars:#1:#2}{#3}}
- {\doifvaluenothing{\??vars:#1:#2}{\setvalue{\??vars:#1:#2}{#3}}}}
-
-%D We store some original meanings, maybe in \type
-%D {math-ini}.
-
-\let\normalat \at
-\let\normalin \in
-\let\normalfrom \from
-\let\normalover \over
-\let\normalabout \about
-
-\let\normalabove \above
-\let\normalatop \atop
-
-\let\normaloverwithdelims \overwithdelims
-\let\normalabovewithdelims\abovewithdelims
-\let\normalatopwithdelims \atopwithdelims
-
-%D Add-ons:
-
-\let\startlayoutcomponent\gobbletwoarguments
-\let\stoplayoutcomponent \relax
-
-%D Label cleanup:
-
-\bgroup % some day this will go away / we could use detokenize as well
-
-% actually we should handle all discretionaries here
-
-\catcode`:=\@@active
-
-\gdef\cleanuplabel#1%
- {\begingroup
- \let:\lettercolon
- \xdef\cleanlabel{#1}%
- \endgroup}
-
-\gdef\cleanupprefixedlabel#1#2%
- {\begingroup
- \let:\lettercolon
- \xdef\cleanprefix{#1}%
- \xdef\cleanlabel {#2}%
- \endgroup}
-
-\gdef\protectlabels
- {\let:\lettercolon}
-
-\global\def\blabelgroup {\begingroup \let:\lettercolon}
-\global\let\elabelgroup \endgroup
-
-\gdef\labelcsname
- {\begingroup\let:\lettercolon
- \expandafter\endgroup\csname}
-
-\gdef\labelvalue#1%
- {\labelcsname#1\endcsname}
-
-\egroup
-
-%D TO BE TESTED FIRST (needs changes in usage too)
-
-% \def\cleanuplabel#1%
-% {\edef\cleanlabel{\detokenize{#1}}}
-%
-% \def\cleanupprefixedlabel#1#2%
-% {\edef\cleanprefix{\detokenize{#1}}%
-% \edef\cleanlabel {\detokenize{#2}}}
-%
-% \def\labelvalue#1%
-% {\csname\detokenize{#1}\endcsname}
-%
-% \let\protectlabels\donothing
-%
-% \def\blabelgroup {\begingroup} % why no \let ?
-% \let\elabelgroup \endgroup
-
-%D Concepts:
-
-\chardef\conceptmode\zerocount
-
-\def\doifconcepttracing
- {\ifnum\conceptmode>\plustwo
- \expandafter\firstofoneargument
- \else
- \expandafter\gobbleoneargument
- \fi}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-ver.mkii b/Master/texmf-dist/tex/context/base/core-ver.mkii
deleted file mode 100644
index 4e51c934c0c..00000000000
--- a/Master/texmf-dist/tex/context/base/core-ver.mkii
+++ /dev/null
@@ -1,298 +0,0 @@
-%D \module
-%D [ file=core-ver,
-%D version=2000.05.09,
-%D title=\CONTEXT\ Core Macros,
-%D subtitle=Verbatim,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%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
-
-% uses \prettyidentifier and sets \setupprettytype
-
-\def\mksetupprettiesintype
- {\doifundefined{setuppretty\prettyidentifier type}%
- {\startnointerference
- \restorecatcodes % also needed when loading during \newpretty
- \startreadingfile % restore < and > if needed
- \lowercasestring verb-\prettyidentifier.tex\to\filename
- \readsysfile\filename\donothing\donothing
- \stopreadingfile
- \stopnointerference}%
- \doifdefinedelse{setuppretty\prettyidentifier type}%
- {\let\uncatcodecharacters\uncatcodeallcharacters % ugly, should be switch / todo
- \def\mksetupprettytype{\getvalue{setuppretty\prettyidentifier type}}}
- {\let\mksetupprettytype\relax}}
-
-% not that fast but catches \type{\command} % nothing more after \command
-%
-% \setupcolors[state=start]
-% \setuptype[option=TEX]
-% \setupcolors[textcolor=red]
-%
-% The options \type{before=\startsolutionbackground } and
-% \type{after=\stopsolutionbackground} take care of putting a frame,
-% which can
-%
-% {\blue The options \type{before=\startsolutionbackground } and
-% \type{after=\stopsolutionbackground} take care of putting a frame,
-% which} can
-
-\def\resumecoloraftergroup
- {\localstartcolor[\s!black]%
- \localstartcolor[\maintextcolor]%
- \aftergroup\localstopcolor
- \aftergroup\localstopcolor}
-
-% the rather messy \type command
-
-\def\mktype#1% was \dotype
- {\bgroup
- \resumecoloraftergroup % a problem is that we can still be in color mode, tricky hack
- \begstrut % new, enables leading space in \type { abc } at par start / begstrut else no hyphenation
- \let\currenttypingclass\??ty
- \edef\currenttyping{#1}%
- \catcode`\<=\@@other
- \catcode`\>=\@@other
- \futurelet\next\dodotype}
-
-\def\dodotypeA
- {\initializetype
- \initializetypegrouping
- \verbatimfont
- \verbatimcolor
- \afterassignment\protectfirsttype\let\next=}
-
-\def\dodotypeB
- {\initializetype
- \setupnotypegrouping
- \verbatimfont
- \verbatimcolor
- \let\next=}
-
-\def\dodotypeC<#1%
- {\initializetype
- \verbatimfont
- \verbatimcolor
- \if#1<%
- \@EA\setupalternativetypegrouping
- \else
- \@EA#1%
- \fi}
-
-\def\dodotypeD#1%
- {\initializetype
- \verbatimfont
- \verbatimcolor
- \catcode`#1=\@@endgroup}
-
-\def\dodotype
- {\ifx\next\bgroup
- \@EA\dodotypeA
- \else\if\next<%
- \doifelse{\typingparameter\c!option}\v!none
- {\@EAEAEA\dodotypeB}{\@EAEAEA\dodotypeC}%
- \else
- \@EAEAEA\dodotypeD
- \fi\fi}
-
-% Verbatim does not work when passed as an argument, so here is a
-% workaround. Beware, spaces are introduced after a \type {\csname}.
-
-\chardef\recodeverbatimmode\zerocount % 0=nothing 1=rescan 2=autorescan
-
-% \appendtoks \chardef\recodeverbatimmode\plustwo \to \everytabulate
-% \appendtoks \chardef\recodeverbatimmode\plustwo \to \everytable
-
-\def\dodotypeA
- {\initializetype
- \initializetypegrouping
- \verbatimfont
- \verbatimcolor
- \ifcase\recodeverbatimmode
- \@EA\dodotypeAA
- \or
- \@EA\dodotypeAB
- \or
- \ifnum\catcode`\{=\@@active
- \@EAEAEA\dodotypeAB
- \else
- \@EAEAEA\dodotypeAA
- \fi
- \else
- \@EA\dodotypeAA
- \fi}
-
-\def\dodotypeAA
- {\afterassignment\protectfirsttype\let\next=}
-
-\def\dodotypeAB
- {\bgroup
- \catcode`\}=\@@endgroup
- \catcode`\{=\@@begingroup
- \afterassignment\redotypeAB\global\globalscratchtoks}
-
-\def\redotypeAB
- {\egroup
- \expandafter\defconvertedargument\expandafter\ascii\expandafter{\the\globalscratchtoks}% == \edefconvertedargument\ascii{\the\globalscratchtoks}%
- \ifx\scantokens\undefined\ascii\else\everyeof{\hskip-\spaceskip}\scantokens\expandafter{\ascii}\fi
- \egroup}
-
-\bgroup
-\catcode`\[=\@@begingroup
-\catcode`\]=\@@endgroup
-\catcode`\{=\@@active
-\catcode`\}=\@@active
-\gdef\initializetypegrouping
- [\ifnum\catcode`\{=\@@active
- \let\normalactivebgroup{%
- \let\normalactiveegroup}%
- \else
- \catcode`\{=\@@active
- \catcode`\}=\@@active
- \let\normalactivebgroup\leftargument
- \let\normalactiveegroup\rightargument
- \fi
- \def\activeleftargument
- [\bgroup
- \catcode`\}=\@@active
- \let}\activerightargument
- \normalactivebgroup]%
- \def\activerightargument
- [\normalactiveegroup
- \egroup]%
- \let{=\activeleftargument
- % not \let}=\egroup, otherwise things go wrong in alignments (???)
- \catcode`\}=\@@endgroup]
-\egroup
-
-\bgroup
-\catcode`\<=\@@active
-\catcode`\>=\@@active
-\gdef\setupalternativetypegrouping
- {\catcode`\<=\@@active
- \catcode`\>=\@@active
- \def\doless
- {\ifx<\next
- \def\next
- {\bgroup\switchslantedtype
- \let\next=}%
- \else
- \let\next\lesscharacter
- \fi
- \next}%
- \def\domore
- {\ifx>\next
- \def\next
- {\egroup
- \let\next=}%
- \else
- \let\next\morecharacter
- \fi
- \next}%
- \def<{\futurelet\next\doless}%
- \def>{\futurelet\next\domore}}
-\egroup
-
-\def\setupnotypegrouping
- {\catcode`\<=\@@begingroup
- \catcode`\>=\@@endgroup}
-
-\def\doenterdoublelesstype
- {\ifx\next\egroup
- \lesscharacter\null\lesscharacter
- \else
- \bgroup\switchslantedtype
- \let\doenterdoublemoretype\egroup
- \fi}
-
-\def\doenterdoublemoretype
- {\def\doenterdoubletype
- {\ifx\next\egroup
- \morecharacter\null\morecharacter
- \fi}}
-
-\bgroup
-\catcode`\<=\@@active
-\catcode`\>=\@@active
-\gdef\setupgroupedtype
- {\catcode`\<=\@@active
- \catcode`\>=\@@active
- \def\doless
- {\ifx<\next
- \def\next
- {\def\enterdoubletype{\futurelet\next\doenterdoublelesstype}%
- \afterassignment\enterdoubletype
- \let\next=}%
- \else
- \let\next\lesscharacter
- \fi
- \next}%
- \def\domore
- {\ifx>\next
- \def\next
- {\def\enterdoubletype{\futurelet\next\doenterdoublemoretype}%
- \afterassignment\enterdoubletype
- \let\next=}%
- \else
- \let\next\morecharacter
- \fi
- \next}%
- \def<{\futurelet\next\doless}%
- \def>{\futurelet\next\domore}}
-\egroup
-
-\def\mksetupcommandsintype% can also be \string\
- {\setupgroupedtype
- \edef\\{\typingparameter\c!escape}%
- \letvalue{\\}=\\% for instance \/=/
- \@EA\catcode\@EA`\\=\@@escape
- \def\BTEX##1\ETEX##2% ##2 gobbles active space
- {\naturaltextext##1\unskip\relax}}
-
-\def\mksetupslantedtype
- {\setupgroupedtype}
-
-\let\protectedfirsttype\string % \relax for special cases
-
-% The next one is safe for: \def\xx#1{\type{#1}} \xx{\ifx}
-
-\bgroup
-\catcode`\<=\active
-\catcode`\>=\active
-\gdef\doprotectfirsttype
- {\normalifx\next<%
- \endrobusttest \let\next\relax
- \normalelse\normalifx\next\bgroup
- \endrobusttest \let\next\relax
- \normalelse\normalifx\next\egroup % takes care of \type{}
- \endrobusttest \let\next\relax
- \normalelse\normalifx\next\activeleftargument
- \endrobusttest \let\next\relax
- \normalelse
- \endrobusttest \let\next\protectedfirsttype
- \normalfi\normalfi\normalfi\normalfi
- \next}
-\egroup
-
-\def\protectfirsttype
- {\beginrobusttest
- \futurelet\next\doprotectfirsttype}
-
-% typing:
-
-\def\mktypeblockverbatim#1#2%
- {\processdisplayverbatim{#2}} % needs to be fixed
-
-% typefile:
-
-\def\mktypefileverbatim {\processfileverbatim \readfilename} % #1
-\def\mktypefilelinesverbatim{\processfilelinesverbatim\readfilename} % #1 / #2#3
-
-\protect \endinput
-
diff --git a/Master/texmf-dist/tex/context/base/core-ver.mkiv b/Master/texmf-dist/tex/context/base/core-ver.mkiv
deleted file mode 100644
index 701d19b41e4..00000000000
--- a/Master/texmf-dist/tex/context/base/core-ver.mkiv
+++ /dev/null
@@ -1,208 +0,0 @@
-%D \module
-%D [ file=core-ver,
-%D version=2000.10.13,
-%D title=\CONTEXT\ Core Macros,
-%D subtitle=Verbatim,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%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
-
-\def\mksetupprettiesintype
- {\begingroup
- \lowercasestring verb-\prettyidentifier\to\filename
- \doonlyonce\filename{\ctxluafileload\filename\empty}%
- \endgroup}
-
-% todo: obeytabs|spaces|lines|pages
-
-\def\mksetupprettytype % todo check
- {\processingverbatimtrue % will move
- \ctxlua{buffers.doifelsevisualizer("\prettyidentifier")}
- {\ctxlua{buffers.setvisualizer("\prettyidentifier")}%
- \localcolortrue % tricky, maybe not here
- \def\obs{\obeyedspace}%
- \def\bop{\bgroup\beginofpretty}%
- \def\eop{\endofpretty\egroup}%
- \def\sop{\endofpretty\egroup\bgroup\beginofpretty}}
- {\def\obs{\obeyedspace}}}
-
-\def\mkinitializeverbatim
- {\ctxlua{buffers.visualizers.reset()}%
- \def\obs{\obeyedspace}%
- \verbatimfont
- \resetfontfeature
- \obeycharacters}
-
-% \ctxluafileload{verb-tex}{}
-% \ctxluafileload{verb-mp} {}
-
-% \registerctxluafile{core-buf-tex}{}
-% \registerctxluafile{core-buf-mp} {}
-
-% \def\mktype#1%
-% {\bgroup
-% \begstrut % new, enables leading space in \type { abc } at par start
-% \let\currenttypingclass\??ty
-% \edef\currenttyping{#1}%
-% \initializetype % probably too much
-% \verbatimcolor
-% \setcatcodetable \vrbcatcodes
-% \catcode`\{=\plusone
-% \catcode`\}=\plustwo
-% \dodotype}
-
-% \def\dodotype#1%
-% {\obeycharacters % everyinitializeverbatim
-% \ctxlua{buffers.hooks.flush_line(\!!bs\detokenize{#1}\!!es)}%
-% \egroup}
-
-\let\mksetupslantedtype \relax
-
-\def\mksetupcommandsintype% can also be \string\
- {\ctxlua{
- buffers.visualizers.enableescape = true
- buffers.visualizers.escapetoken = \!!bs\typingparameter\c!escape\!!es
- }%
- \setevalue{\typingparameter\c!escape}{\typingparameter\c!escape}}
-
-\def\mktype#1% was \dotype
- {\bgroup
- \begstrut % new, enables leading space in \type { abc } at par start / begstrut else no hyphenation
- \let\currenttypingclass\??ty
- \edef\currenttyping{#1}%
- \catcode`\<=\@@other
- \catcode`\>=\@@other
- \futurelet\next\dodotype}
-
-\def\dodotype
- {\ifx\next\bgroup
- \@EA\dodotypeA
- \else\if\next<%
- \doifelse{\typingparameter\c!option}\v!none
- {\@EAEAEA\dodotypeB}{\@EAEAEA\dodotypeC}%
- \else
- \@EAEAEA\dodotypeD
- \fi\fi}
-
-\def\dodotypeA
- {\initializetype % probably too much
- \verbatimcolor
- \setcatcodetable \vrbcatcodes
- \catcode`\{=\plusone
- \catcode`\}=\plustwo
- \dodotypeAA}
-
-\def\dodotypeAA#1%
- {\mkinitializeverbatim
-\def\obs{\obeyedspace}%
- \ctxlua{buffers.hooks.flush_line(\!!bs\detokenize{#1}\!!es)}%
- \egroup}
-
-\def\dodotypeB#1%
- {\initializetype
- \verbatimcolor
- \setcatcodetable \vrbcatcodes
- \catcode`\<=\plusone
- \catcode`\>=\plustwo
- \dodotypeBB}
-
-\def\dodotypeBB#1%
- {\mkinitializeverbatim
- \ctxlua{buffers.visualizers.flush_nested(\!!bs\detokenize{#1}\!!es,false)}%
- \egroup
- \gobbleoneargument} % grab last >
-
-\def\dodotypeC#1%
- {\initializetype
- \verbatimcolor
- \setcatcodetable \vrbcatcodes
- \catcode`\<=\plusone
- \catcode`\>=\plustwo
- \dodotypeCC}
-
-\def\dodotypeCC#1%
- {\mkinitializeverbatim
- \ifx\obeycharacters\setupprettytype % temp hack, we need a proper signal
- \ctxlua{buffers.hooks.flush_line([\!!bs\detokenize{#1}\!!es,true)}%
- \else
- \def\obs{\obeyedspace}%
- \ctxlua{buffers.visualizers.flush_nested(\!!bs\detokenize{#1}\!!es,true)}%
- \fi
- \egroup
- \gobbleoneargument} % grab last >
-
-\def\dodotypeD#1%
- {\initializetype
- \verbatimcolor
- \setcatcodetable \vrbcatcodes
- \def\dodotypeDD##1#1{\dodotypeAA{##1}}%
- \dodotypeDD}
-
-\def\dodotypeDD#1%
- {\mkinitializeverbatim
- \ctxlua{buffers.hooks.flush_line(\!!bs\detokenize{#1}\!!es,true)}%
- \egroup
- \gobbleoneargument} % grab last >
-
-% \typing:
-
-\def\mktypeblockverbatim#1#2%
- {\dowithbuffer{_typing_}{#1}{#2}
- {}
- {\mkinitializeverbatim
- \beginofverbatimlines
- \ctxlua{buffers.type("_typing_")}%
- \endofverbatimlines
- \getvalue{\strippedcsname#2}}}
-
-% \typefile:
-
-\def\mktypefileverbatim
- {\mkinitializeverbatim
- \ctxlua{buffers.typefile("\readfilename")}}
-
-\def\mktypefilelinesverbatim#1#2%
- {#1%
- \mkinitializeverbatim
- \ctxlua{buffers.typefile("\readfilename")}%
- #2}
-
-% patched from verb-ini (todo)
-
-\let\beginverbatimline \relax
-\let\endverbatimline \relax
-\let\doopenupverbatimline\empty
-
-\def\doverbatimbeginofline#1% linenumber
- {\bgroup % due to pretty status
- \iflinepar\else\EveryPar{}\fi
- \noindent % was wrong: \dontleavehmode
- \xdef\dokeepverbatimlinedata % hm, still needed?
- {\parindent \the\parindent
- \hangindent\the\hangindent
- \hangafter \the\hangafter
- \leftskip \the\leftskip
- \rightskip \the\rightskip}%
- \egroup
- \dokeepverbatimlinedata
- \doopenupverbatimline
- \the\everyline\strut
- \beginverbatimline}
-
-\def\doverbatimendofline
- {\endverbatimline
- \global\lineparfalse
- \obeyedline\par}
-
-\def\doverbatimemptyline
- {\strut
- \par
- \global\linepartrue}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/data-aux.lua b/Master/texmf-dist/tex/context/base/data-aux.lua
new file mode 100644
index 00000000000..492cce6fdd2
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/data-aux.lua
@@ -0,0 +1,57 @@
+if not modules then modules = { } end modules ['data-aux'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local find = string.find
+
+local trace_verbose = false trackers.register("resolvers.verbose", function(v) trace_verbose = v end)
+
+function resolvers.update_script(oldname,newname) -- oldname -> own.name, not per se a suffix
+ local scriptpath = "scripts/context/lua"
+ newname = file.addsuffix(newname,"lua")
+ local oldscript = resolvers.clean_path(oldname)
+ if trace_verbose then
+ logs.report("fileio","to be replaced old script %s", oldscript)
+ end
+ local newscripts = resolvers.find_files(newname) or { }
+ if #newscripts == 0 then
+ if trace_verbose then
+ logs.report("fileio","unable to locate new script")
+ end
+ else
+ for i=1,#newscripts do
+ local newscript = resolvers.clean_path(newscripts[i])
+ if trace_verbose then
+ logs.report("fileio","checking new script %s", newscript)
+ end
+ if oldscript == newscript then
+ if trace_verbose then
+ logs.report("fileio","old and new script are the same")
+ end
+ elseif not find(newscript,scriptpath) then
+ if trace_verbose then
+ logs.report("fileio","new script should come from %s",scriptpath)
+ end
+ elseif not (find(oldscript,file.removesuffix(newname).."$") or find(oldscript,newname.."$")) then
+ if trace_verbose then
+ logs.report("fileio","invalid new script name")
+ end
+ else
+ local newdata = io.loaddata(newscript)
+ if newdata then
+ if trace_verbose then
+ logs.report("fileio","old script content replaced by new content")
+ end
+ io.savedata(oldscript,newdata)
+ break
+ elseif trace_verbose then
+ logs.report("fileio","unable to load new script")
+ end
+ end
+ end
+ end
+end
diff --git a/Master/texmf-dist/tex/context/base/data-bin.lua b/Master/texmf-dist/tex/context/base/data-bin.lua
new file mode 100644
index 00000000000..5f342c33981
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/data-bin.lua
@@ -0,0 +1,26 @@
+if not modules then modules = { } end modules ['data-bin'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local finders, openers, loaders = resolvers.finders, resolvers.openers, resolvers.loaders
+
+function resolvers.findbinfile(filename, filetype)
+ return resolvers.methodhandler('finders',file.collapse_path(filename), filetype)
+end
+
+function resolvers.openbinfile(filename)
+ return resolvers.methodhandler('loaders',file.collapse_path(filename))
+end
+
+function resolvers.loadbinfile(filename, filetype)
+ local fname = resolvers.findbinfile(file.collapse_path(filename), filetype)
+ if fname and fname ~= "" then
+ return resolvers.openbinfile(fname)
+ else
+ return unpack(loaders.notfound)
+ end
+end
diff --git a/Master/texmf-dist/tex/context/base/data-con.lua b/Master/texmf-dist/tex/context/base/data-con.lua
new file mode 100644
index 00000000000..02ee9eeddd9
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/data-con.lua
@@ -0,0 +1,122 @@
+if not modules then modules = { } end modules ['data-con'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local format, lower, gsub = string.format, string.lower, string.gsub
+
+local trace_cache = false trackers.register("resolvers.cache", function(v) trace_cache = v end)
+local trace_containers = false trackers.register("resolvers.containers", function(v) trace_containers = v end)
+local trace_storage = false trackers.register("resolvers.storage", function(v) trace_storage = v end)
+local trace_verbose = false trackers.register("resolvers.verbose", function(v) trace_verbose = v end)
+local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v trackers.enable("resolvers.verbose") end)
+
+--[[ldx--
+<p>Once we found ourselves defining similar cache constructs
+several times, containers were introduced. Containers are used
+to collect tables in memory and reuse them when possible based
+on (unique) hashes (to be provided by the calling function).</p>
+
+<p>Caching to disk is disabled by default. Version numbers are
+stored in the saved table which makes it possible to change the
+table structures without bothering about the disk cache.</p>
+
+<p>Examples of usage can be found in the font related code.</p>
+--ldx]]--
+
+containers = containers or { }
+
+containers.usecache = true
+
+local function report(container,tag,name)
+ if trace_cache or trace_containers then
+ logs.report(format("%s cache",container.subcategory),"%s: %s",tag,name or 'invalid')
+ end
+end
+
+local allocated = { }
+
+-- tracing
+
+function containers.define(category, subcategory, version, enabled)
+ return function()
+ if category and subcategory then
+ local c = allocated[category]
+ if not c then
+ c = { }
+ allocated[category] = c
+ end
+ local s = c[subcategory]
+ if not s then
+ s = {
+ category = category,
+ subcategory = subcategory,
+ storage = { },
+ enabled = enabled,
+ version = version or 1.000,
+ trace = false,
+ path = caches and caches.setpath and caches.setpath(category,subcategory),
+ }
+ c[subcategory] = s
+ end
+ return s
+ else
+ return nil
+ end
+ end
+end
+
+function containers.is_usable(container, name)
+ return container.enabled and caches and caches.iswritable(container.path, name)
+end
+
+function containers.is_valid(container, name)
+ if name and name ~= "" then
+ local storage = container.storage[name]
+ return storage and not table.is_empty(storage) and storage.cache_version == container.version
+ else
+ return false
+ end
+end
+
+function containers.read(container,name)
+ if container.enabled and caches and not container.storage[name] and containers.usecache then
+ container.storage[name] = caches.loaddata(container.path,name)
+ if containers.is_valid(container,name) then
+ report(container,"loaded",name)
+ else
+ container.storage[name] = nil
+ end
+ end
+ if container.storage[name] then
+ report(container,"reusing",name)
+ end
+ return container.storage[name]
+end
+
+function containers.write(container, name, data)
+ if data then
+ data.cache_version = container.version
+ if container.enabled and caches then
+ local unique, shared = data.unique, data.shared
+ data.unique, data.shared = nil, nil
+ caches.savedata(container.path, name, data)
+ report(container,"saved",name)
+ data.unique, data.shared = unique, shared
+ end
+ report(container,"stored",name)
+ container.storage[name] = data
+ end
+ return data
+end
+
+function containers.content(container,name)
+ return container.storage[name]
+end
+
+function containers.cleanname(name)
+ return (gsub(lower(name),"[^%w%d]+","-"))
+end
diff --git a/Master/texmf-dist/tex/context/base/data-crl.lua b/Master/texmf-dist/tex/context/base/data-crl.lua
new file mode 100644
index 00000000000..5cad241a689
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/data-crl.lua
@@ -0,0 +1,58 @@
+if not modules then modules = { } end modules ['data-crl'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+curl = curl or { }
+
+curl.cached = { }
+curl.cachepath = caches.definepath("curl")
+
+local finders, openers, loaders = resolvers.finders, resolvers.openers, resolvers.loaders
+
+function curl.fetch(protocol, name)
+ local cachename = curl.cachepath() .. "/" .. name:gsub("[^%a%d%.]+","-")
+-- cachename = cachename:gsub("[\\/]", io.fileseparator)
+ cachename = cachename:gsub("[\\]", "/") -- cleanup
+ if not curl.cached[name] then
+ if not io.exists(cachename) then
+ curl.cached[name] = cachename
+ local command = "curl --silent --create-dirs --output " .. cachename .. " " .. name -- no protocol .. "://"
+ os.spawn(command)
+ end
+ if io.exists(cachename) then
+ curl.cached[name] = cachename
+ else
+ curl.cached[name] = ""
+ end
+ end
+ return curl.cached[name]
+end
+
+function finders.curl(protocol,filename)
+ local foundname = curl.fetch(protocol, filename)
+ return finders.generic(protocol,foundname,filetype)
+end
+
+function openers.curl(protocol,filename)
+ return openers.generic(protocol,filename)
+end
+
+function loaders.curl(protocol,filename)
+ return loaders.generic(protocol,filename)
+end
+
+-- todo: metamethod
+
+function curl.install(protocol)
+ finders[protocol] = function (filename,filetype) return finders.curl(protocol,filename) end
+ openers[protocol] = function (filename) return openers.curl(protocol,filename) end
+ loaders[protocol] = function (filename) return loaders.curl(protocol,filename) end
+end
+
+curl.install('http')
+curl.install('https')
+curl.install('ftp')
diff --git a/Master/texmf-dist/tex/context/base/data-ctx.lua b/Master/texmf-dist/tex/context/base/data-ctx.lua
new file mode 100644
index 00000000000..00d307b6d8b
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/data-ctx.lua
@@ -0,0 +1,29 @@
+if not modules then modules = { } end modules ['data-ctx'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local format = string.format
+
+function resolvers.save_used_files_in_trees(filename,jobname)
+ if not filename then filename = 'luatex.jlg' end
+ local found = instance.foundintrees
+ local f = io.open(filename,'w')
+ if f then
+ f:write("<?xml version='1.0' standalone='yes'?>\n")
+ f:write("<rl:job>\n")
+ if jobname then
+ f:write(format("\t<rl:name>%s</rl:name>\n",jobname))
+ end
+ f:write("\t<rl:files>\n")
+ for _,v in ipairs(table.sortedkeys(found)) do
+ f:write(format("\t\t<rl:file n='%s'>%s</rl:file>\n",found[v],v))
+ end
+ f:write("\t</rl:files>\n")
+ f:write("</rl:usedfiles>\n")
+ f:close()
+ end
+end
diff --git a/Master/texmf-dist/tex/context/base/data-gen.lua b/Master/texmf-dist/tex/context/base/data-gen.lua
new file mode 100644
index 00000000000..8537b052602
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/data-gen.lua
@@ -0,0 +1,9 @@
+if not modules then modules = { } end modules ['data-gen'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- move generators here
diff --git a/Master/texmf-dist/tex/context/base/data-inp.lua b/Master/texmf-dist/tex/context/base/data-inp.lua
new file mode 100644
index 00000000000..700e982c2d9
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/data-inp.lua
@@ -0,0 +1,15 @@
+if not modules then modules = { } end modules ['data-inp'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+resolvers.finders = resolvers.finders or { }
+resolvers.openers = resolvers.openers or { }
+resolvers.loaders = resolvers.loaders or { }
+
+resolvers.finders.notfound = { nil }
+resolvers.openers.notfound = { nil }
+resolvers.loaders.notfound = { false, nil, 0 }
diff --git a/Master/texmf-dist/tex/context/base/data-kps.lua b/Master/texmf-dist/tex/context/base/data-kps.lua
new file mode 100644
index 00000000000..09d50240947
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/data-kps.lua
@@ -0,0 +1,101 @@
+if not modules then modules = { } end modules ['luat-kps'] = {
+ version = 1.001,
+ comment = "companion to luatools.lua",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+--[[ldx--
+<p>This file is used when we want the input handlers to behave like
+<type>kpsewhich</type>. What to do with the following:</p>
+
+<typing>
+{$SELFAUTOLOC,$SELFAUTODIR,$SELFAUTOPARENT}{,{/share,}/texmf{-local,}/web2c}
+$SELFAUTOLOC : /usr/tex/bin/platform
+$SELFAUTODIR : /usr/tex/bin
+$SELFAUTOPARENT : /usr/tex
+</typing>
+
+<p>How about just forgetting about them?</p>
+--ldx]]--
+
+local suffixes = resolvers.suffixes
+local formats = resolvers.formats
+
+suffixes['gf'] = { '<resolution>gf' }
+suffixes['pk'] = { '<resolution>pk' }
+suffixes['base'] = { 'base' }
+suffixes['bib'] = { 'bib' }
+suffixes['bst'] = { 'bst' }
+suffixes['cnf'] = { 'cnf' }
+suffixes['mem'] = { 'mem' }
+suffixes['mf'] = { 'mf' }
+suffixes['mfpool'] = { 'pool' }
+suffixes['mft'] = { 'mft' }
+suffixes['mppool'] = { 'pool' }
+suffixes['graphic/figure'] = { 'eps', 'epsi' }
+suffixes['texpool'] = { 'pool' }
+suffixes['PostScript header'] = { 'pro' }
+suffixes['ist'] = { 'ist' }
+suffixes['web'] = { 'web', 'ch' }
+suffixes['cweb'] = { 'w', 'web', 'ch' }
+suffixes['cmap files'] = { 'cmap' }
+suffixes['lig files'] = { 'lig' }
+suffixes['bitmap font'] = { }
+suffixes['MetaPost support'] = { }
+suffixes['TeX system documentation'] = { }
+suffixes['TeX system sources'] = { }
+suffixes['dvips config'] = { }
+suffixes['type42 fonts'] = { }
+suffixes['web2c files'] = { }
+suffixes['other text files'] = { }
+suffixes['other binary files'] = { }
+suffixes['opentype fonts'] = { 'otf' }
+
+suffixes['fmt'] = { 'fmt' }
+suffixes['texmfscripts'] = { 'rb','lua','py','pl' }
+
+suffixes['pdftex config'] = { }
+suffixes['Troff fonts'] = { }
+
+suffixes['ls-R'] = { }
+
+--[[ldx--
+<p>If you wondered abou tsome of the previous mappings, how about
+the next bunch:</p>
+--ldx]]--
+
+formats['bib'] = ''
+formats['bst'] = ''
+formats['mft'] = ''
+formats['ist'] = ''
+formats['web'] = ''
+formats['cweb'] = ''
+formats['MetaPost support'] = ''
+formats['TeX system documentation'] = ''
+formats['TeX system sources'] = ''
+formats['Troff fonts'] = ''
+formats['dvips config'] = ''
+formats['graphic/figure'] = ''
+formats['ls-R'] = ''
+formats['other text files'] = ''
+formats['other binary files'] = ''
+
+formats['gf'] = ''
+formats['pk'] = ''
+formats['base'] = 'MFBASES'
+formats['cnf'] = ''
+formats['mem'] = 'MPMEMS'
+formats['mf'] = 'MFINPUTS'
+formats['mfpool'] = 'MFPOOL'
+formats['mppool'] = 'MPPOOL'
+formats['texpool'] = 'TEXPOOL'
+formats['PostScript header'] = 'TEXPSHEADERS'
+formats['cmap files'] = 'CMAPFONTS'
+formats['type42 fonts'] = 'T42FONTS'
+formats['web2c files'] = 'WEB2C'
+formats['pdftex config'] = 'PDFTEXCONFIG'
+formats['texmfscripts'] = 'TEXMFSCRIPTS'
+formats['bitmap font'] = ''
+formats['lig files'] = 'LIGFONTS'
diff --git a/Master/texmf-dist/tex/context/base/data-lst.lua b/Master/texmf-dist/tex/context/base/data-lst.lua
new file mode 100644
index 00000000000..10d3ea479a8
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/data-lst.lua
@@ -0,0 +1,58 @@
+if not modules then modules = { } end modules ['data-lst'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- used in mtxrun
+
+local find, concat, upper, format = string.find, table.concat, string.upper, string.format
+
+resolvers.listers = resolvers.listers or { }
+
+local function tabstr(str)
+ if type(str) == 'table' then
+ return concat(str," | ")
+ else
+ return str
+ end
+end
+
+local function list(list,report)
+ local instance = resolvers.instance
+ local pat = upper(pattern or "","")
+ local report = report or texio.write_nl
+ for _,key in pairs(table.sortedkeys(list)) do
+ if instance.pattern == "" or find(upper(key),pat) then
+ if instance.kpseonly then
+ if instance.kpsevars[key] then
+ report(format("%s=%s",key,tabstr(list[key])))
+ end
+ else
+ report(format('%s %s=%s',(instance.kpsevars[key] and 'K') or 'E',key,tabstr(list[key])))
+ end
+ end
+ end
+end
+
+function resolvers.listers.variables () list(resolvers.instance.variables ) end
+function resolvers.listers.expansions() list(resolvers.instance.expansions) end
+
+function resolvers.listers.configurations(report)
+ local report = report or texio.write_nl
+ local instance = resolvers.instance
+ for _,key in ipairs(table.sortedkeys(instance.kpsevars)) do
+ if not instance.pattern or (instance.pattern=="") or find(key,instance.pattern) then
+ report(format("%s\n",key))
+ for i,c in ipairs(instance.order) do
+ local str = c[key]
+ if str then
+ report(format("\t%s\t%s",i,str))
+ end
+ end
+ report("")
+ end
+ end
+end
diff --git a/Master/texmf-dist/tex/context/base/data-lua.lua b/Master/texmf-dist/tex/context/base/data-lua.lua
new file mode 100644
index 00000000000..86231b3a3a9
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/data-lua.lua
@@ -0,0 +1,55 @@
+if not modules then modules = { } end modules ['data-lua'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- some loading stuff ... we might move this one to slot 1 depending
+-- on the developments (the loaders must not trigger kpse); we could
+-- of course use a more extensive lib path spec
+
+local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v end)
+
+local gsub = string.gsub
+
+local libformats = { 'luatexlibs', 'tex', 'texmfscripts', 'othertextfiles' }
+local libpaths = file.split_path(package.path)
+
+package.loaders[#package.loaders+1] = function(name)
+ for i=1,#libformats do
+ local format = libformats[i]
+ local resolved = resolvers.find_file(name,format) or ""
+ if resolved ~= "" then
+ if trace_locating then
+ logs.report("fileio","! lib '%s' located via environment: '%s'",name,resolved)
+ end
+ return function() return dofile(resolved) end
+ end
+ end
+ local simple = file.removesuffix(name)
+ for i=1,#libpaths do
+ local resolved = gsub(libpaths[i],"?",simple)
+ if resolvers.isreadable.file(resolved) then
+ if trace_locating then
+ logs.report("fileio","! lib '%s' located via 'package.path': '%s'",name,resolved)
+ end
+ return function() return dofile(resolved) end
+ end
+ end
+ -- just in case the distribution is messed up
+ local resolved = resolvers.find_file(file.basename(name),'luatexlibs') or ""
+ if resolved ~= "" then
+ if trace_locating then
+ logs.report("fileio","! lib '%s' located by basename via environment: '%s'",name,resolved)
+ end
+ return function() return dofile(resolved) end
+ end
+ if trace_locating then
+ logs.report("fileio",'? unable to locate lib: %s',name)
+ end
+ return "unable to locate " .. name
+end
+
+resolvers.loadlualib = require
diff --git a/Master/texmf-dist/tex/context/base/data-out.lua b/Master/texmf-dist/tex/context/base/data-out.lua
new file mode 100644
index 00000000000..b774e25fcf8
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/data-out.lua
@@ -0,0 +1,10 @@
+if not modules then modules = { } end modules ['data-out'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+outputs = outputs or { }
+
diff --git a/Master/texmf-dist/tex/context/base/data-pre.lua b/Master/texmf-dist/tex/context/base/data-pre.lua
new file mode 100644
index 00000000000..deee9ebf46f
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/data-pre.lua
@@ -0,0 +1,90 @@
+if not modules then modules = { } end modules ['data-res'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+--~ print(resolvers.resolve("abc env:tmp file:cont-en.tex path:cont-en.tex full:cont-en.tex rel:zapf/one/p-chars.tex"))
+
+local upper, lower, gsub = string.upper, string.lower, string.gsub
+
+local prefixes = { }
+
+prefixes.environment = function(str)
+ return resolvers.clean_path(os.getenv(str) or os.getenv(upper(str)) or os.getenv(lower(str)) or "")
+end
+
+prefixes.relative = function(str,n)
+ if io.exists(str) then
+ -- nothing
+ elseif io.exists("./" .. str) then
+ str = "./" .. str
+ else
+ local p = "../"
+ for i=1,n or 2 do
+ if io.exists(p .. str) then
+ str = p .. str
+ break
+ else
+ p = p .. "../"
+ end
+ end
+ end
+ return resolvers.clean_path(str)
+end
+
+prefixes.locate = function(str)
+ local fullname = resolvers.find_given_file(str) or ""
+ return resolvers.clean_path((fullname ~= "" and fullname) or str)
+end
+
+prefixes.filename = function(str)
+ local fullname = resolvers.find_given_file(str) or ""
+ return resolvers.clean_path(file.basename((fullname ~= "" and fullname) or str))
+end
+
+prefixes.pathname = function(str)
+ local fullname = resolvers.find_given_file(str) or ""
+ return resolvers.clean_path(file.dirname((fullname ~= "" and fullname) or str))
+end
+
+prefixes.env = prefixes.environment
+prefixes.rel = prefixes.relative
+prefixes.loc = prefixes.locate
+prefixes.kpse = prefixes.locate
+prefixes.full = prefixes.locate
+prefixes.file = prefixes.filename
+prefixes.path = prefixes.pathname
+
+local function _resolve_(method,target)
+ if prefixes[method] then
+ return prefixes[method](target)
+ else
+ return method .. ":" .. target
+ end
+end
+
+local function resolve(str)
+ if type(str) == "table" then
+ for k, v in pairs(str) do -- ipairs
+ str[k] = resolve(v) or v
+ end
+ elseif str and str ~= "" then
+ str = gsub(str,"([a-z]+):([^ \"\']*)",_resolve_)
+ end
+ return str
+end
+
+resolvers.resolve = resolve
+
+if os.uname then
+
+ for k, v in pairs(os.uname()) do
+ if not prefixes[k] then
+ prefixes[k] = function() return v end
+ end
+ end
+
+end
diff --git a/Master/texmf-dist/tex/context/base/data-res.lua b/Master/texmf-dist/tex/context/base/data-res.lua
new file mode 100644
index 00000000000..39e4aa208fc
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/data-res.lua
@@ -0,0 +1,2030 @@
+if not modules then modules = { } end modules ['data-inp'] = {
+ version = 1.001,
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files",
+ comment = "companion to luat-lib.tex",
+}
+
+-- After a few years using the code the large luat-inp.lua file
+-- has been split up a bit. In the process some functionality was
+-- dropped:
+--
+-- * support for reading lsr files
+-- * selective scanning (subtrees)
+-- * some public auxiliary functions were made private
+--
+-- TODO: os.getenv -> os.env[]
+-- TODO: instances.[hashes,cnffiles,configurations,522] -> ipairs (alles check, sneller)
+-- TODO: check escaping in find etc, too much, too slow
+
+-- This lib is multi-purpose and can be loaded again later on so that
+-- additional functionality becomes available. We will split thislogs.report("fileio",
+-- module in components once we're done with prototyping. This is the
+-- first code I wrote for LuaTeX, so it needs some cleanup. Before changing
+-- something in this module one can best check with Taco or Hans first; there
+-- is some nasty trickery going on that relates to traditional kpse support.
+
+-- To be considered: hash key lowercase, first entry in table filename
+-- (any case), rest paths (so no need for optimization). Or maybe a
+-- separate table that matches lowercase names to mixed case when
+-- present. In that case the lower() cases can go away. I will do that
+-- only when we run into problems with names ... well ... Iwona-Regular.
+
+-- Beware, loading and saving is overloaded in luat-tmp!
+
+local format, gsub, find, lower, upper, match, gmatch = string.format, string.gsub, string.find, string.lower, string.upper, string.match, string.gmatch
+local concat, insert, sortedkeys = table.concat, table.insert, table.sortedkeys
+local next, type = next, type
+
+local trace_locating, trace_detail, trace_verbose = false, false, false
+
+trackers.register("resolvers.verbose", function(v) trace_verbose = v end)
+trackers.register("resolvers.locating", function(v) trace_locating = v trackers.enable("resolvers.verbose") end)
+trackers.register("resolvers.detail", function(v) trace_detail = v trackers.enable("resolvers.verbose,resolvers.detail") end)
+
+if not resolvers then
+ resolvers = {
+ suffixes = { },
+ formats = { },
+ dangerous = { },
+ suffixmap = { },
+ alternatives = { },
+ locators = { }, -- locate databases
+ hashers = { }, -- load databases
+ generators = { }, -- generate databases
+ }
+end
+
+local resolvers = resolvers
+
+resolvers.locators .notfound = { nil }
+resolvers.hashers .notfound = { nil }
+resolvers.generators.notfound = { nil }
+
+resolvers.cacheversion = '1.0.1'
+resolvers.cnfname = 'texmf.cnf'
+resolvers.luaname = 'texmfcnf.lua'
+resolvers.homedir = os.env[os.platform == "windows" and 'USERPROFILE'] or os.env['HOME'] or '~'
+resolvers.cnfdefault = '{$SELFAUTODIR,$SELFAUTOPARENT}{,{/share,}/texmf{-local,.local,}/web2c}'
+
+local dummy_path_expr = "^!*unset/*$"
+
+local formats = resolvers.formats
+local suffixes = resolvers.suffixes
+local dangerous = resolvers.dangerous
+local suffixmap = resolvers.suffixmap
+local alternatives = resolvers.alternatives
+
+formats['afm'] = 'AFMFONTS' suffixes['afm'] = { 'afm' }
+formats['enc'] = 'ENCFONTS' suffixes['enc'] = { 'enc' }
+formats['fmt'] = 'TEXFORMATS' suffixes['fmt'] = { 'fmt' }
+formats['map'] = 'TEXFONTMAPS' suffixes['map'] = { 'map' }
+formats['mp'] = 'MPINPUTS' suffixes['mp'] = { 'mp' }
+formats['ocp'] = 'OCPINPUTS' suffixes['ocp'] = { 'ocp' }
+formats['ofm'] = 'OFMFONTS' suffixes['ofm'] = { 'ofm', 'tfm' }
+formats['otf'] = 'OPENTYPEFONTS' suffixes['otf'] = { 'otf' } -- 'ttf'
+formats['opl'] = 'OPLFONTS' suffixes['opl'] = { 'opl' }
+formats['otp'] = 'OTPINPUTS' suffixes['otp'] = { 'otp' }
+formats['ovf'] = 'OVFFONTS' suffixes['ovf'] = { 'ovf', 'vf' }
+formats['ovp'] = 'OVPFONTS' suffixes['ovp'] = { 'ovp' }
+formats['tex'] = 'TEXINPUTS' suffixes['tex'] = { 'tex' }
+formats['tfm'] = 'TFMFONTS' suffixes['tfm'] = { 'tfm' }
+formats['ttf'] = 'TTFONTS' suffixes['ttf'] = { 'ttf', 'ttc', 'dfont' }
+formats['pfb'] = 'T1FONTS' suffixes['pfb'] = { 'pfb', 'pfa' }
+formats['vf'] = 'VFFONTS' suffixes['vf'] = { 'vf' }
+
+formats['fea'] = 'FONTFEATURES' suffixes['fea'] = { 'fea' }
+formats['cid'] = 'FONTCIDMAPS' suffixes['cid'] = { 'cid', 'cidmap' }
+
+formats ['texmfscripts'] = 'TEXMFSCRIPTS' -- new
+suffixes['texmfscripts'] = { 'rb', 'pl', 'py' } -- 'lua'
+
+formats ['lua'] = 'LUAINPUTS' -- new
+suffixes['lua'] = { 'lua', 'luc', 'tma', 'tmc' }
+
+-- backward compatible ones
+
+alternatives['map files'] = 'map'
+alternatives['enc files'] = 'enc'
+alternatives['cid files'] = 'cid'
+alternatives['fea files'] = 'fea'
+alternatives['opentype fonts'] = 'otf'
+alternatives['truetype fonts'] = 'ttf'
+alternatives['truetype collections'] = 'ttc'
+alternatives['truetype dictionary'] = 'dfont'
+alternatives['type1 fonts'] = 'pfb'
+
+-- obscure ones
+
+formats ['misc fonts'] = ''
+suffixes['misc fonts'] = { }
+
+formats ['sfd'] = 'SFDFONTS'
+suffixes ['sfd'] = { 'sfd' }
+alternatives['subfont definition files'] = 'sfd'
+
+-- In practice we will work within one tds tree, but i want to keep
+-- the option open to build tools that look at multiple trees, which is
+-- why we keep the tree specific data in a table. We used to pass the
+-- instance but for practical pusposes we now avoid this and use a
+-- instance variable.
+
+-- here we catch a few new thingies (todo: add these paths to context.tmf)
+--
+-- FONTFEATURES = .;$TEXMF/fonts/fea//
+-- FONTCIDMAPS = .;$TEXMF/fonts/cid//
+
+-- we always have one instance active
+
+resolvers.instance = resolvers.instance or nil -- the current one (slow access)
+local instance = resolvers.instance or nil -- the current one (fast access)
+
+function resolvers.newinstance()
+
+ -- store once, freeze and faster (once reset we can best use
+ -- instance.environment) maybe better have a register suffix
+ -- function
+
+ for k, v in next, suffixes do
+ for i=1,#v do
+ local vi = v[i]
+ if vi then
+ suffixmap[vi] = k
+ end
+ end
+ end
+
+ -- because vf searching is somewhat dangerous, we want to prevent
+ -- too liberal searching esp because we do a lookup on the current
+ -- path anyway; only tex (or any) is safe
+
+ for k, v in next, formats do
+ dangerous[k] = true
+ end
+ dangerous.tex = nil
+
+ -- the instance
+
+ local newinstance = {
+ rootpath = '',
+ treepath = '',
+ progname = 'context',
+ engine = 'luatex',
+ format = '',
+ environment = { },
+ variables = { },
+ expansions = { },
+ files = { },
+ remap = { },
+ configuration = { },
+ setup = { },
+ order = { },
+ found = { },
+ foundintrees = { },
+ kpsevars = { },
+ hashes = { },
+ cnffiles = { },
+ luafiles = { },
+ lists = { },
+ remember = true,
+ diskcache = true,
+ renewcache = false,
+ scandisk = true,
+ cachepath = nil,
+ loaderror = false,
+ sortdata = false,
+ savelists = true,
+ cleanuppaths = true,
+ allresults = false,
+ pattern = nil, -- lists
+ data = { }, -- only for loading
+ force_suffixes = true,
+ fakepaths = { },
+ }
+
+ local ne = newinstance.environment
+
+ for k,v in next, os.env do
+ ne[k] = resolvers.bare_variable(v)
+ end
+
+ return newinstance
+
+end
+
+function resolvers.setinstance(someinstance)
+ instance = someinstance
+ resolvers.instance = someinstance
+ return someinstance
+end
+
+function resolvers.reset()
+ return resolvers.setinstance(resolvers.newinstance())
+end
+
+local function reset_hashes()
+ instance.lists = { }
+ instance.found = { }
+end
+
+local function check_configuration() -- not yet ok, no time for debugging now
+ local ie, iv = instance.environment, instance.variables
+ local function fix(varname,default)
+ local proname = varname .. "." .. instance.progname or "crap"
+ local p, v = ie[proname], ie[varname] or iv[varname]
+ if not ((p and p ~= "") or (v and v ~= "")) then
+ iv[varname] = default -- or environment?
+ end
+ end
+ local name = os.name
+ if name == "windows" then
+ fix("OSFONTDIR", "c:/windows/fonts//")
+ elseif name == "macosx" then
+ fix("OSFONTDIR", "$HOME/Library/Fonts//;/Library/Fonts//;/System/Library/Fonts//")
+ else
+ -- bad luck
+ end
+ fix("LUAINPUTS" , ".;$TEXINPUTS;$TEXMFSCRIPTS") -- no progname, hm
+ fix("FONTFEATURES", ".;$TEXMF/fonts/fea//;$OPENTYPEFONTS;$TTFONTS;$T1FONTS;$AFMFONTS")
+ fix("FONTCIDMAPS" , ".;$TEXMF/fonts/cid//;$OPENTYPEFONTS;$TTFONTS;$T1FONTS;$AFMFONTS")
+ fix("LUATEXLIBS" , ".;$TEXMF/luatex/lua//")
+end
+
+function resolvers.bare_variable(str) -- assumes str is a string
+ return (gsub(str,"\s*([\"\']?)(.+)%1\s*", "%2"))
+end
+
+function resolvers.settrace(n) -- no longer number but: 'locating' or 'detail'
+ if n then
+ trackers.disable("resolvers.*")
+ trackers.enable("resolvers."..n)
+ end
+end
+
+resolvers.settrace(os.getenv("MTX.resolvers.TRACE") or os.getenv("MTX_INPUT_TRACE"))
+
+function resolvers.osenv(key)
+ local ie = instance.environment
+ local value = ie[key]
+ if value == nil then
+ -- local e = os.getenv(key)
+ local e = os.env[key]
+ if e == nil then
+ -- value = "" -- false
+ else
+ value = resolvers.bare_variable(e)
+ end
+ ie[key] = value
+ end
+ return value or ""
+end
+
+function resolvers.env(key)
+ return instance.environment[key] or resolvers.osenv(key)
+end
+
+--
+
+local function expand_vars(lst) -- simple vars
+ local variables, env = instance.variables, resolvers.env
+ local function resolve(a)
+ return variables[a] or env(a)
+ end
+ for k=1,#lst do
+ lst[k] = gsub(lst[k],"%$([%a%d%_%-]+)",resolve)
+ end
+end
+
+local function expanded_var(var) -- simple vars
+ local function resolve(a)
+ return instance.variables[a] or resolvers.env(a)
+ end
+ return (gsub(var,"%$([%a%d%_%-]+)",resolve))
+end
+
+local function entry(entries,name)
+ if name and (name ~= "") then
+ name = gsub(name,'%$','')
+ local result = entries[name..'.'..instance.progname] or entries[name]
+ if result then
+ return result
+ else
+ result = resolvers.env(name)
+ if result then
+ instance.variables[name] = result
+ resolvers.expand_variables()
+ return instance.expansions[name] or ""
+ end
+ end
+ end
+ return ""
+end
+
+local function is_entry(entries,name)
+ if name and name ~= "" then
+ name = gsub(name,'%$','')
+ return (entries[name..'.'..instance.progname] or entries[name]) ~= nil
+ else
+ return false
+ end
+end
+
+-- {a,b,c,d}
+-- a,b,c/{p,q,r},d
+-- a,b,c/{p,q,r}/d/{x,y,z}//
+-- a,b,c/{p,q/{x,y,z},r},d/{p,q,r}
+-- a,b,c/{p,q/{x,y,z},r},d/{p,q,r}
+-- a{b,c}{d,e}f
+-- {a,b,c,d}
+-- {a,b,c/{p,q,r},d}
+-- {a,b,c/{p,q,r}/d/{x,y,z}//}
+-- {a,b,c/{p,q/{x,y,z}},d/{p,q,r}}
+-- {a,b,c/{p,q/{x,y,z},w}v,d/{p,q,r}}
+-- {$SELFAUTODIR,$SELFAUTOPARENT}{,{/share,}/texmf{-local,.local,}/web2c}
+
+-- this one is better and faster, but it took me a while to realize
+-- that this kind of replacement is cleaner than messy parsing and
+-- fuzzy concatenating we can probably gain a bit with selectively
+-- applying lpeg, but experiments with lpeg parsing this proved not to
+-- work that well; the parsing is ok, but dealing with the resulting
+-- table is a pain because we need to work inside-out recursively
+
+local function splitpathexpr(str, t, validate)
+ -- no need for further optimization as it is only called a
+ -- few times, we can use lpeg for the sub; we could move
+ -- the local functions outside the body
+ t = t or { }
+ str = gsub(str,",}",",@}")
+ str = gsub(str,"{,","{@,")
+ -- str = "@" .. str .. "@"
+ local ok, done
+ local function do_first(a,b)
+ local t = { }
+ for s in gmatch(b,"[^,]+") do t[#t+1] = a .. s end
+ return "{" .. concat(t,",") .. "}"
+ end
+ local function do_second(a,b)
+ local t = { }
+ for s in gmatch(a,"[^,]+") do t[#t+1] = s .. b end
+ return "{" .. concat(t,",") .. "}"
+ end
+ local function do_both(a,b)
+ local t = { }
+ for sa in gmatch(a,"[^,]+") do
+ for sb in gmatch(b,"[^,]+") do
+ t[#t+1] = sa .. sb
+ end
+ end
+ return "{" .. concat(t,",") .. "}"
+ end
+ local function do_three(a,b,c)
+ return a .. b.. c
+ end
+ while true do
+ done = false
+ while true do
+ str, ok = gsub(str,"([^{},]+){([^{}]+)}",do_first)
+ if ok > 0 then done = true else break end
+ end
+ while true do
+ str, ok = gsub(str,"{([^{}]+)}([^{},]+)",do_second)
+ if ok > 0 then done = true else break end
+ end
+ while true do
+ str, ok = gsub(str,"{([^{}]+)}{([^{}]+)}",do_both)
+ if ok > 0 then done = true else break end
+ end
+ str, ok = gsub(str,"({[^{}]*){([^{}]+)}([^{}]*})",do_three)
+ if ok > 0 then done = true end
+ if not done then break end
+ end
+ str = gsub(str,"[{}]", "")
+ str = gsub(str,"@","")
+ if validate then
+ for s in gmatch(str,"[^,]+") do
+ s = validate(s)
+ if s then t[#t+1] = s end
+ end
+ else
+ for s in gmatch(str,"[^,]+") do
+ t[#t+1] = s
+ end
+ end
+ return t
+end
+
+local function expanded_path_from_list(pathlist) -- maybe not a list, just a path
+ -- a previous version fed back into pathlist
+ local newlist, ok = { }, false
+ for k=1,#pathlist do
+ if find(pathlist[k],"[{}]") then
+ ok = true
+ break
+ end
+ end
+ if ok then
+ local function validate(s)
+ s = file.collapse_path(s)
+ return s ~= "" and not find(s,dummy_path_expr) and s
+ end
+ for k=1,#pathlist do
+ splitpathexpr(pathlist[k],newlist,validate)
+ end
+ else
+ for k=1,#pathlist do
+ for p in gmatch(pathlist[k],"([^,]+)") do
+ p = file.collapse_path(p)
+ if p ~= "" then newlist[#newlist+1] = p end
+ end
+ end
+ end
+ return newlist
+end
+
+-- we follow a rather traditional approach:
+--
+-- (1) texmf.cnf given in TEXMFCNF
+-- (2) texmf.cnf searched in default variable
+--
+-- also we now follow the stupid route: if not set then just assume *one*
+-- cnf file under texmf (i.e. distribution)
+
+resolvers.ownpath = resolvers.ownpath or nil
+resolvers.ownbin = resolvers.ownbin or arg[-2] or arg[-1] or arg[0] or "luatex"
+resolvers.autoselfdir = true -- false may be handy for debugging
+
+function resolvers.getownpath()
+ if not resolvers.ownpath then
+ if resolvers.autoselfdir and os.selfdir then
+ resolvers.ownpath = os.selfdir
+ else
+ local binary = resolvers.ownbin
+ if os.platform == "windows" then
+ binary = file.replacesuffix(binary,"exe")
+ end
+ for p in gmatch(os.getenv("PATH"),"[^"..io.pathseparator.."]+") do
+ local b = file.join(p,binary)
+ if lfs.isfile(b) then
+ -- we assume that after changing to the path the currentdir function
+ -- resolves to the real location and use this side effect here; this
+ -- trick is needed because on the mac installations use symlinks in the
+ -- path instead of real locations
+ local olddir = lfs.currentdir()
+ if lfs.chdir(p) then
+ local pp = lfs.currentdir()
+ if trace_verbose and p ~= pp then
+ logs.report("fileio","following symlink %s to %s",p,pp)
+ end
+ resolvers.ownpath = pp
+ lfs.chdir(olddir)
+ else
+ if trace_verbose then
+ logs.report("fileio","unable to check path %s",p)
+ end
+ resolvers.ownpath = p
+ end
+ break
+ end
+ end
+ end
+ if not resolvers.ownpath then resolvers.ownpath = '.' end
+ end
+ return resolvers.ownpath
+end
+
+local own_places = { "SELFAUTOLOC", "SELFAUTODIR", "SELFAUTOPARENT", "TEXMFCNF" }
+
+local function identify_own()
+ local ownpath = resolvers.getownpath() or lfs.currentdir()
+ local ie = instance.environment
+ if ownpath then
+ if resolvers.env('SELFAUTOLOC') == "" then os.env['SELFAUTOLOC'] = file.collapse_path(ownpath) end
+ if resolvers.env('SELFAUTODIR') == "" then os.env['SELFAUTODIR'] = file.collapse_path(ownpath .. "/..") end
+ if resolvers.env('SELFAUTOPARENT') == "" then os.env['SELFAUTOPARENT'] = file.collapse_path(ownpath .. "/../..") end
+ else
+ logs.report("fileio","error: unable to locate ownpath")
+ os.exit()
+ end
+ if resolvers.env('TEXMFCNF') == "" then os.env['TEXMFCNF'] = resolvers.cnfdefault end
+ if resolvers.env('TEXOS') == "" then os.env['TEXOS'] = resolvers.env('SELFAUTODIR') end
+ if resolvers.env('TEXROOT') == "" then os.env['TEXROOT'] = resolvers.env('SELFAUTOPARENT') end
+ if trace_verbose then
+ for i=1,#own_places do
+ local v = own_places[i]
+ logs.report("fileio","variable %s set to %s",v,resolvers.env(v) or "unknown")
+ end
+ end
+ identify_own = function() end
+end
+
+function resolvers.identify_cnf()
+ if #instance.cnffiles == 0 then
+ -- fallback
+ identify_own()
+ -- the real search
+ resolvers.expand_variables()
+ local t = resolvers.split_path(resolvers.env('TEXMFCNF'))
+ t = expanded_path_from_list(t)
+ expand_vars(t) -- redundant
+ local function locate(filename,list)
+ for i=1,#t do
+ local ti = t[i]
+ local texmfcnf = file.collapse_path(file.join(ti,filename))
+ if lfs.isfile(texmfcnf) then
+ list[#list+1] = texmfcnf
+ end
+ end
+ end
+ locate(resolvers.luaname,instance.luafiles)
+ locate(resolvers.cnfname,instance.cnffiles)
+ end
+end
+
+local function load_cnf_file(fname)
+ fname = resolvers.clean_path(fname)
+ local lname = file.replacesuffix(fname,'lua')
+ local f = io.open(lname)
+ if f then -- this will go
+ f:close()
+ local dname = file.dirname(fname)
+ if not instance.configuration[dname] then
+ resolvers.load_data(dname,'configuration',lname and file.basename(lname))
+ instance.order[#instance.order+1] = instance.configuration[dname]
+ end
+ else
+ f = io.open(fname)
+ if f then
+ if trace_verbose then
+ logs.report("fileio","loading %s", fname)
+ end
+ local line, data, n, k, v
+ local dname = file.dirname(fname)
+ if not instance.configuration[dname] then
+ instance.configuration[dname] = { }
+ instance.order[#instance.order+1] = instance.configuration[dname]
+ end
+ local data = instance.configuration[dname]
+ while true do
+ local line, n = f:read(), 0
+ if line then
+ while true do -- join lines
+ line, n = gsub(line,"\\%s*$", "")
+ if n > 0 then
+ line = line .. f:read()
+ else
+ break
+ end
+ end
+ if not find(line,"^[%%#]") then
+ local l = gsub(line,"%s*%%.*$","")
+ local k, v = match(l,"%s*(.-)%s*=%s*(.-)%s*$")
+ if k and v and not data[k] then
+ v = gsub(v,"[%%#].*",'')
+ data[k] = gsub(v,"~","$HOME")
+ instance.kpsevars[k] = true
+ end
+ end
+ else
+ break
+ end
+ end
+ f:close()
+ elseif trace_verbose then
+ logs.report("fileio","skipping %s", fname)
+ end
+ end
+end
+
+local function collapse_cnf_data() -- potential optimization: pass start index (setup and configuration are shared)
+ for _,c in ipairs(instance.order) do
+ for k,v in next, c do
+ if not instance.variables[k] then
+ if instance.environment[k] then
+ instance.variables[k] = instance.environment[k]
+ else
+ instance.kpsevars[k] = true
+ instance.variables[k] = resolvers.bare_variable(v)
+ end
+ end
+ end
+ end
+end
+
+function resolvers.load_cnf()
+ local function loadoldconfigdata()
+ for _, fname in ipairs(instance.cnffiles) do
+ load_cnf_file(fname)
+ end
+ end
+ -- instance.cnffiles contain complete names now !
+ if #instance.cnffiles == 0 then
+ if trace_verbose then
+ logs.report("fileio","no cnf files found (TEXMFCNF may not be set/known)")
+ end
+ else
+ instance.rootpath = instance.cnffiles[1]
+ for k,fname in ipairs(instance.cnffiles) do
+ instance.cnffiles[k] = file.collapse_path(gsub(fname,"\\",'/'))
+ end
+ for i=1,3 do
+ instance.rootpath = file.dirname(instance.rootpath)
+ end
+ instance.rootpath = file.collapse_path(instance.rootpath)
+ if instance.diskcache and not instance.renewcache then
+ resolvers.loadoldconfig(instance.cnffiles)
+ if instance.loaderror then
+ loadoldconfigdata()
+ resolvers.saveoldconfig()
+ end
+ else
+ loadoldconfigdata()
+ if instance.renewcache then
+ resolvers.saveoldconfig()
+ end
+ end
+ collapse_cnf_data()
+ end
+ check_configuration()
+end
+
+function resolvers.load_lua()
+ if #instance.luafiles == 0 then
+ -- yet harmless
+ else
+ instance.rootpath = instance.luafiles[1]
+ for k,fname in ipairs(instance.luafiles) do
+ instance.luafiles[k] = file.collapse_path(gsub(fname,"\\",'/'))
+ end
+ for i=1,3 do
+ instance.rootpath = file.dirname(instance.rootpath)
+ end
+ instance.rootpath = file.collapse_path(instance.rootpath)
+ resolvers.loadnewconfig()
+ collapse_cnf_data()
+ end
+ check_configuration()
+end
+
+-- database loading
+
+function resolvers.load_hash()
+ resolvers.locatelists()
+ if instance.diskcache and not instance.renewcache then
+ resolvers.loadfiles()
+ if instance.loaderror then
+ resolvers.loadlists()
+ resolvers.savefiles()
+ end
+ else
+ resolvers.loadlists()
+ if instance.renewcache then
+ resolvers.savefiles()
+ end
+ end
+end
+
+function resolvers.append_hash(type,tag,name)
+ if trace_locating then
+ logs.report("fileio","= hash append: %s",tag)
+ end
+ insert(instance.hashes, { ['type']=type, ['tag']=tag, ['name']=name } )
+end
+
+function resolvers.prepend_hash(type,tag,name)
+ if trace_locating then
+ logs.report("fileio","= hash prepend: %s",tag)
+ end
+ insert(instance.hashes, 1, { ['type']=type, ['tag']=tag, ['name']=name } )
+end
+
+function resolvers.extend_texmf_var(specification) -- crap, we could better prepend the hash
+-- local t = resolvers.expanded_path_list('TEXMF') -- full expansion
+ local t = resolvers.split_path(resolvers.env('TEXMF'))
+ insert(t,1,specification)
+ local newspec = concat(t,";")
+ if instance.environment["TEXMF"] then
+ instance.environment["TEXMF"] = newspec
+ elseif instance.variables["TEXMF"] then
+ instance.variables["TEXMF"] = newspec
+ else
+ -- weird
+ end
+ resolvers.expand_variables()
+ reset_hashes()
+end
+
+-- locators
+
+function resolvers.locatelists()
+ for _, path in ipairs(resolvers.clean_path_list('TEXMF')) do
+ if trace_verbose then
+ logs.report("fileio","locating list of %s",path)
+ end
+ resolvers.locatedatabase(file.collapse_path(path))
+ end
+end
+
+function resolvers.locatedatabase(specification)
+ return resolvers.methodhandler('locators', specification)
+end
+
+function resolvers.locators.tex(specification)
+ if specification and specification ~= '' and lfs.isdir(specification) then
+ if trace_locating then
+ logs.report("fileio",'! tex locator found: %s',specification)
+ end
+ resolvers.append_hash('file',specification,filename)
+ elseif trace_locating then
+ logs.report("fileio",'? tex locator not found: %s',specification)
+ end
+end
+
+-- hashers
+
+function resolvers.hashdatabase(tag,name)
+ return resolvers.methodhandler('hashers',tag,name)
+end
+
+function resolvers.loadfiles()
+ instance.loaderror = false
+ instance.files = { }
+ if not instance.renewcache then
+ for _, hash in ipairs(instance.hashes) do
+ resolvers.hashdatabase(hash.tag,hash.name)
+ if instance.loaderror then break end
+ end
+ end
+end
+
+function resolvers.hashers.tex(tag,name)
+ resolvers.load_data(tag,'files')
+end
+
+-- generators:
+
+function resolvers.loadlists()
+ for _, hash in ipairs(instance.hashes) do
+ resolvers.generatedatabase(hash.tag)
+ end
+end
+
+function resolvers.generatedatabase(specification)
+ return resolvers.methodhandler('generators', specification)
+end
+
+-- starting with . or .. etc or funny char
+
+local weird = lpeg.P(".")^1 + lpeg.anywhere(lpeg.S("~`!#$%^&*()={}[]:;\"\'||<>,?\n\r\t"))
+
+function resolvers.generators.tex(specification)
+ local tag = specification
+ if trace_verbose then
+ logs.report("fileio","scanning path %s",specification)
+ end
+ instance.files[tag] = { }
+ local files = instance.files[tag]
+ local n, m, r = 0, 0, 0
+ local spec = specification .. '/'
+ local attributes = lfs.attributes
+ local directory = lfs.dir
+ local function action(path)
+ local full
+ if path then
+ full = spec .. path .. '/'
+ else
+ full = spec
+ end
+ for name in directory(full) do
+ if not weird:match(name) then
+ local mode = attributes(full..name,'mode')
+ if mode == 'file' then
+ if path then
+ n = n + 1
+ local f = files[name]
+ if f then
+ if type(f) == 'string' then
+ files[name] = { f, path }
+ else
+ f[#f+1] = path
+ end
+ else -- probably unique anyway
+ files[name] = path
+ local lower = lower(name)
+ if name ~= lower then
+ files["remap:"..lower] = name
+ r = r + 1
+ end
+ end
+ end
+ elseif mode == 'directory' then
+ m = m + 1
+ if path then
+ action(path..'/'..name)
+ else
+ action(name)
+ end
+ end
+ end
+ end
+ end
+ action()
+ if trace_verbose then
+ logs.report("fileio","%s files found on %s directories with %s uppercase remappings",n,m,r)
+ end
+end
+
+-- savers, todo
+
+function resolvers.savefiles()
+ resolvers.save_data('files')
+end
+
+-- A config (optionally) has the paths split in tables. Internally
+-- we join them and split them after the expansion has taken place. This
+-- is more convenient.
+
+function resolvers.splitconfig()
+ for i,c in ipairs(instance) do
+ for k,v in pairs(c) do
+ if type(v) == 'string' then
+ local t = file.split_path(v)
+ if #t > 1 then
+ c[k] = t
+ end
+ end
+ end
+ end
+end
+
+function resolvers.joinconfig()
+ for i,c in ipairs(instance.order) do
+ for k,v in pairs(c) do -- ipairs?
+ if type(v) == 'table' then
+ c[k] = file.join_path(v)
+ end
+ end
+ end
+end
+function resolvers.split_path(str)
+ if type(str) == 'table' then
+ return str
+ else
+ return file.split_path(str)
+ end
+end
+function resolvers.join_path(str)
+ if type(str) == 'table' then
+ return file.join_path(str)
+ else
+ return str
+ end
+end
+
+function resolvers.splitexpansions()
+ local ie = instance.expansions
+ for k,v in next, ie do
+ local t, h = { }, { }
+ for _,vv in ipairs(file.split_path(v)) do
+ if vv ~= "" and not h[vv] then
+ t[#t+1] = vv
+ h[vv] = true
+ end
+ end
+ if #t > 1 then
+ ie[k] = t
+ else
+ ie[k] = t[1]
+ end
+ end
+end
+
+-- end of split/join code
+
+function resolvers.saveoldconfig()
+ resolvers.splitconfig()
+ resolvers.save_data('configuration')
+ resolvers.joinconfig()
+end
+
+resolvers.configbanner = [[
+-- This is a Luatex configuration file created by 'luatools.lua' or
+-- 'luatex.exe' directly. For comment, suggestions and questions you can
+-- contact the ConTeXt Development Team. This configuration file is
+-- not copyrighted. [HH & TH]
+]]
+
+function resolvers.serialize(files)
+ -- This version is somewhat optimized for the kind of
+ -- tables that we deal with, so it's much faster than
+ -- the generic serializer. This makes sense because
+ -- luatools and mtxtools are called frequently. Okay,
+ -- we pay a small price for properly tabbed tables.
+ local t = { }
+ local function dump(k,v,m) -- could be moved inline
+ if type(v) == 'string' then
+ return m .. "['" .. k .. "']='" .. v .. "',"
+ elseif #v == 1 then
+ return m .. "['" .. k .. "']='" .. v[1] .. "',"
+ else
+ return m .. "['" .. k .. "']={'" .. concat(v,"','").. "'},"
+ end
+ end
+ t[#t+1] = "return {"
+ if instance.sortdata then
+ for _, k in pairs(sortedkeys(files)) do -- ipairs
+ local fk = files[k]
+ if type(fk) == 'table' then
+ t[#t+1] = "\t['" .. k .. "']={"
+ for _, kk in pairs(sortedkeys(fk)) do -- ipairs
+ t[#t+1] = dump(kk,fk[kk],"\t\t")
+ end
+ t[#t+1] = "\t},"
+ else
+ t[#t+1] = dump(k,fk,"\t")
+ end
+ end
+ else
+ for k, v in next, files do
+ if type(v) == 'table' then
+ t[#t+1] = "\t['" .. k .. "']={"
+ for kk,vv in next, v do
+ t[#t+1] = dump(kk,vv,"\t\t")
+ end
+ t[#t+1] = "\t},"
+ else
+ t[#t+1] = dump(k,v,"\t")
+ end
+ end
+ end
+ t[#t+1] = "}"
+ return concat(t,"\n")
+end
+
+function resolvers.save_data(dataname, makename) -- untested without cache overload
+ for cachename, files in next, instance[dataname] do
+ local name = (makename or file.join)(cachename,dataname)
+ local luaname, lucname = name .. ".lua", name .. ".luc"
+ if trace_verbose then
+ logs.report("fileio","preparing %s for %s",dataname,cachename)
+ end
+ for k, v in next, files do
+ if type(v) == "table" and #v == 1 then
+ files[k] = v[1]
+ end
+ end
+ local data = {
+ type = dataname,
+ root = cachename,
+ version = resolvers.cacheversion,
+ date = os.date("%Y-%m-%d"),
+ time = os.date("%H:%M:%S"),
+ content = files,
+ }
+ local ok = io.savedata(luaname,resolvers.serialize(data))
+ if ok then
+ if trace_verbose then
+ logs.report("fileio","%s saved in %s",dataname,luaname)
+ end
+ if utils.lua.compile(luaname,lucname,false,true) then -- no cleanup but strip
+ if trace_verbose then
+ logs.report("fileio","%s compiled to %s",dataname,lucname)
+ end
+ else
+ if trace_verbose then
+ logs.report("fileio","compiling failed for %s, deleting file %s",dataname,lucname)
+ end
+ os.remove(lucname)
+ end
+ elseif trace_verbose then
+ logs.report("fileio","unable to save %s in %s (access error)",dataname,luaname)
+ end
+ end
+end
+
+function resolvers.load_data(pathname,dataname,filename,makename) -- untested without cache overload
+ filename = ((not filename or (filename == "")) and dataname) or filename
+ filename = (makename and makename(dataname,filename)) or file.join(pathname,filename)
+ local blob = loadfile(filename .. ".luc") or loadfile(filename .. ".lua")
+ if blob then
+ local data = blob()
+ if data and data.content and data.type == dataname and data.version == resolvers.cacheversion then
+ if trace_verbose then
+ logs.report("fileio","loading %s for %s from %s",dataname,pathname,filename)
+ end
+ instance[dataname][pathname] = data.content
+ else
+ if trace_verbose then
+ logs.report("fileio","skipping %s for %s from %s",dataname,pathname,filename)
+ end
+ instance[dataname][pathname] = { }
+ instance.loaderror = true
+ end
+ elseif trace_verbose then
+ logs.report("fileio","skipping %s for %s from %s",dataname,pathname,filename)
+ end
+end
+
+-- some day i'll use the nested approach, but not yet (actually we even drop
+-- engine/progname support since we have only luatex now)
+--
+-- first texmfcnf.lua files are located, next the cached texmf.cnf files
+--
+-- return {
+-- TEXMFBOGUS = 'effe checken of dit werkt',
+-- }
+
+function resolvers.resetconfig()
+ identify_own()
+ instance.configuration, instance.setup, instance.order, instance.loaderror = { }, { }, { }, false
+end
+
+function resolvers.loadnewconfig()
+ for _, cnf in ipairs(instance.luafiles) do
+ local pathname = file.dirname(cnf)
+ local filename = file.join(pathname,resolvers.luaname)
+ local blob = loadfile(filename)
+ if blob then
+ local data = blob()
+ if data then
+ if trace_verbose then
+ logs.report("fileio","loading configuration file %s",filename)
+ end
+ if true then
+ -- flatten to variable.progname
+ local t = { }
+ for k, v in next, data do -- v = progname
+ if type(v) == "string" then
+ t[k] = v
+ else
+ for kk, vv in next, v do -- vv = variable
+ if type(vv) == "string" then
+ t[vv.."."..v] = kk
+ end
+ end
+ end
+ end
+ instance['setup'][pathname] = t
+ else
+ instance['setup'][pathname] = data
+ end
+ else
+ if trace_verbose then
+ logs.report("fileio","skipping configuration file %s",filename)
+ end
+ instance['setup'][pathname] = { }
+ instance.loaderror = true
+ end
+ elseif trace_verbose then
+ logs.report("fileio","skipping configuration file %s",filename)
+ end
+ instance.order[#instance.order+1] = instance.setup[pathname]
+ if instance.loaderror then break end
+ end
+end
+
+function resolvers.loadoldconfig()
+ if not instance.renewcache then
+ for _, cnf in ipairs(instance.cnffiles) do
+ local dname = file.dirname(cnf)
+ resolvers.load_data(dname,'configuration')
+ instance.order[#instance.order+1] = instance.configuration[dname]
+ if instance.loaderror then break end
+ end
+ end
+ resolvers.joinconfig()
+end
+
+function resolvers.expand_variables()
+ local expansions, environment, variables = { }, instance.environment, instance.variables
+ local env = resolvers.env
+ instance.expansions = expansions
+ if instance.engine ~= "" then environment['engine'] = instance.engine end
+ if instance.progname ~= "" then environment['progname'] = instance.progname end
+ for k,v in next, environment do
+ local a, b = match(k,"^(%a+)%_(.*)%s*$")
+ if a and b then
+ expansions[a..'.'..b] = v
+ else
+ expansions[k] = v
+ end
+ end
+ for k,v in next, environment do -- move environment to expansions
+ if not expansions[k] then expansions[k] = v end
+ end
+ for k,v in next, variables do -- move variables to expansions
+ if not expansions[k] then expansions[k] = v end
+ end
+ local busy = false
+ local function resolve(a)
+ busy = true
+ return expansions[a] or env(a)
+ end
+ while true do
+ busy = false
+ for k,v in next, expansions do
+ local s, n = gsub(v,"%$([%a%d%_%-]+)",resolve)
+ local s, m = gsub(s,"%$%{([%a%d%_%-]+)%}",resolve)
+ if n > 0 or m > 0 then
+ expansions[k]= s
+ end
+ end
+ if not busy then break end
+ end
+ for k,v in next, expansions do
+ expansions[k] = gsub(v,"\\", '/')
+ end
+end
+
+function resolvers.variable(name)
+ return entry(instance.variables,name)
+end
+
+function resolvers.expansion(name)
+ return entry(instance.expansions,name)
+end
+
+function resolvers.is_variable(name)
+ return is_entry(instance.variables,name)
+end
+
+function resolvers.is_expansion(name)
+ return is_entry(instance.expansions,name)
+end
+
+function resolvers.unexpanded_path_list(str)
+ local pth = resolvers.variable(str)
+ local lst = resolvers.split_path(pth)
+ return expanded_path_from_list(lst)
+end
+
+function resolvers.unexpanded_path(str)
+ return file.join_path(resolvers.unexpanded_path_list(str))
+end
+
+do -- no longer needed
+
+ local done = { }
+
+ function resolvers.reset_extra_path()
+ local ep = instance.extra_paths
+ if not ep then
+ ep, done = { }, { }
+ instance.extra_paths = ep
+ elseif #ep > 0 then
+ instance.lists, done = { }, { }
+ end
+ end
+
+ function resolvers.register_extra_path(paths,subpaths)
+ local ep = instance.extra_paths or { }
+ local n = #ep
+ if paths and paths ~= "" then
+ if subpaths and subpaths ~= "" then
+ for p in gmatch(paths,"[^,]+") do
+ -- we gmatch each step again, not that fast, but used seldom
+ for s in gmatch(subpaths,"[^,]+") do
+ local ps = p .. "/" .. s
+ if not done[ps] then
+ ep[#ep+1] = resolvers.clean_path(ps)
+ done[ps] = true
+ end
+ end
+ end
+ else
+ for p in gmatch(paths,"[^,]+") do
+ if not done[p] then
+ ep[#ep+1] = resolvers.clean_path(p)
+ done[p] = true
+ end
+ end
+ end
+ elseif subpaths and subpaths ~= "" then
+ for i=1,n do
+ -- we gmatch each step again, not that fast, but used seldom
+ for s in gmatch(subpaths,"[^,]+") do
+ local ps = ep[i] .. "/" .. s
+ if not done[ps] then
+ ep[#ep+1] = resolvers.clean_path(ps)
+ done[ps] = true
+ end
+ end
+ end
+ end
+ if #ep > 0 then
+ instance.extra_paths = ep -- register paths
+ end
+ if #ep > n then
+ instance.lists = { } -- erase the cache
+ end
+ end
+
+end
+
+local function made_list(instance,list)
+ local ep = instance.extra_paths
+ if not ep or #ep == 0 then
+ return list
+ else
+ local done, new = { }, { }
+ -- honour . .. ../.. but only when at the start
+ for k=1,#list do
+ local v = list[k]
+ if not done[v] then
+ if find(v,"^[%.%/]$") then
+ done[v] = true
+ new[#new+1] = v
+ else
+ break
+ end
+ end
+ end
+ -- first the extra paths
+ for k=1,#ep do
+ local v = ep[k]
+ if not done[v] then
+ done[v] = true
+ new[#new+1] = v
+ end
+ end
+ -- next the formal paths
+ for k=1,#list do
+ local v = list[k]
+ if not done[v] then
+ done[v] = true
+ new[#new+1] = v
+ end
+ end
+ return new
+ end
+end
+
+function resolvers.clean_path_list(str)
+ local t = resolvers.expanded_path_list(str)
+ if t then
+ for i=1,#t do
+ t[i] = file.collapse_path(resolvers.clean_path(t[i]))
+ end
+ end
+ return t
+end
+
+function resolvers.expand_path(str)
+ return file.join_path(resolvers.expanded_path_list(str))
+end
+
+function resolvers.expanded_path_list(str)
+ if not str then
+ return ep or { }
+ elseif instance.savelists then
+ -- engine+progname hash
+ str = gsub(str,"%$","")
+ if not instance.lists[str] then -- cached
+ local lst = made_list(instance,resolvers.split_path(resolvers.expansion(str)))
+ instance.lists[str] = expanded_path_from_list(lst)
+ end
+ return instance.lists[str]
+ else
+ local lst = resolvers.split_path(resolvers.expansion(str))
+ return made_list(instance,expanded_path_from_list(lst))
+ end
+end
+
+function resolvers.expanded_path_list_from_var(str) -- brrr
+ local tmp = resolvers.var_of_format_or_suffix(gsub(str,"%$",""))
+ if tmp ~= "" then
+ return resolvers.expanded_path_list(str)
+ else
+ return resolvers.expanded_path_list(tmp)
+ end
+end
+
+function resolvers.expand_path_from_var(str)
+ return file.join_path(resolvers.expanded_path_list_from_var(str))
+end
+
+function resolvers.format_of_var(str)
+ return formats[str] or formats[alternatives[str]] or ''
+end
+function resolvers.format_of_suffix(str)
+ return suffixmap[file.extname(str)] or 'tex'
+end
+
+function resolvers.variable_of_format(str)
+ return formats[str] or formats[alternatives[str]] or ''
+end
+
+function resolvers.var_of_format_or_suffix(str)
+ local v = formats[str]
+ if v then
+ return v
+ end
+ v = formats[alternatives[str]]
+ if v then
+ return v
+ end
+ v = suffixmap[file.extname(str)]
+ if v then
+ return formats[isf]
+ end
+ return ''
+end
+
+function resolvers.expand_braces(str) -- output variable and brace expansion of STRING
+ local ori = resolvers.variable(str)
+ local pth = expanded_path_from_list(resolvers.split_path(ori))
+ return file.join_path(pth)
+end
+
+resolvers.isreadable = { }
+
+function resolvers.isreadable.file(name)
+ local readable = lfs.isfile(name) -- brrr
+ if trace_detail then
+ if readable then
+ logs.report("fileio","+ readable: %s",name)
+ else
+ logs.report("fileio","- readable: %s", name)
+ end
+ end
+ return readable
+end
+
+resolvers.isreadable.tex = resolvers.isreadable.file
+
+-- name
+-- name/name
+
+local function collect_files(names)
+ local filelist = { }
+ for k=1,#names do
+ local fname = names[k]
+ if trace_detail then
+ logs.report("fileio","? blobpath asked: %s",fname)
+ end
+ local bname = file.basename(fname)
+ local dname = file.dirname(fname)
+ if dname == "" or find(dname,"^%.") then
+ dname = false
+ else
+ dname = "/" .. dname .. "$"
+ end
+ local hashes = instance.hashes
+ for h=1,#hashes do
+ local hash = hashes[h]
+ local blobpath = hash.tag
+ local files = blobpath and instance.files[blobpath]
+ if files then
+ if trace_detail then
+ logs.report("fileio",'? blobpath do: %s (%s)',blobpath,bname)
+ end
+ local blobfile = files[bname]
+ if not blobfile then
+ local rname = "remap:"..bname
+ blobfile = files[rname]
+ if blobfile then
+ bname = files[rname]
+ blobfile = files[bname]
+ end
+ end
+ if blobfile then
+ if type(blobfile) == 'string' then
+ if not dname or find(blobfile,dname) then
+ filelist[#filelist+1] = {
+ hash.type,
+ file.join(blobpath,blobfile,bname), -- search
+ resolvers.concatinators[hash.type](blobpath,blobfile,bname) -- result
+ }
+ end
+ else
+ for kk=1,#blobfile do
+ local vv = blobfile[kk]
+ if not dname or find(vv,dname) then
+ filelist[#filelist+1] = {
+ hash.type,
+ file.join(blobpath,vv,bname), -- search
+ resolvers.concatinators[hash.type](blobpath,vv,bname) -- result
+ }
+ end
+ end
+ end
+ end
+ elseif trace_locating then
+ logs.report("fileio",'! blobpath no: %s (%s)',blobpath,bname)
+ end
+ end
+ end
+ if #filelist > 0 then
+ return filelist
+ else
+ return nil
+ end
+end
+
+function resolvers.suffix_of_format(str)
+ if suffixes[str] then
+ return suffixes[str][1]
+ else
+ return ""
+ end
+end
+
+function resolvers.suffixes_of_format(str)
+ if suffixes[str] then
+ return suffixes[str]
+ else
+ return {}
+ end
+end
+
+function resolvers.register_in_trees(name)
+ if not find(name,"^%.") then
+ instance.foundintrees[name] = (instance.foundintrees[name] or 0) + 1 -- maybe only one
+ end
+end
+
+-- split the next one up for readability (bu this module needs a cleanup anyway)
+
+local function can_be_dir(name) -- can become local
+ local fakepaths = instance.fakepaths
+ if not fakepaths[name] then
+ if lfs.isdir(name) then
+ fakepaths[name] = 1 -- directory
+ else
+ fakepaths[name] = 2 -- no directory
+ end
+ end
+ return (fakepaths[name] == 1)
+end
+
+local function collect_instance_files(filename,collected) -- todo : plugin (scanners, checkers etc)
+ local result = collected or { }
+ local stamp = nil
+ filename = file.collapse_path(filename) -- elsewhere
+ filename = file.collapse_path(gsub(filename,"\\","/")) -- elsewhere
+ -- speed up / beware: format problem
+ if instance.remember then
+ stamp = filename .. "--" .. instance.engine .. "--" .. instance.progname .. "--" .. instance.format
+ if instance.found[stamp] then
+ if trace_locating then
+ logs.report("fileio",'! remembered: %s',filename)
+ end
+ return instance.found[stamp]
+ end
+ end
+ if not dangerous[instance.format or "?"] then
+ if resolvers.isreadable.file(filename) then
+ if trace_detail then
+ logs.report("fileio",'= found directly: %s',filename)
+ end
+ instance.found[stamp] = { filename }
+ return { filename }
+ end
+ end
+ if find(filename,'%*') then
+ if trace_locating then
+ logs.report("fileio",'! wildcard: %s', filename)
+ end
+ result = resolvers.find_wildcard_files(filename)
+ elseif file.is_qualified_path(filename) then
+ if resolvers.isreadable.file(filename) then
+ if trace_locating then
+ logs.report("fileio",'! qualified: %s', filename)
+ end
+ result = { filename }
+ else
+ local forcedname, ok, suffix = "", false, file.extname(filename)
+ if suffix == "" then -- why
+ if instance.format == "" then
+ forcedname = filename .. ".tex"
+ if resolvers.isreadable.file(forcedname) then
+ if trace_locating then
+ logs.report("fileio",'! no suffix, forcing standard filetype: tex')
+ end
+ result, ok = { forcedname }, true
+ end
+ else
+ local suffixes = resolvers.suffixes_of_format(instance.format)
+ for _, s in next, suffixes do
+ forcedname = filename .. "." .. s
+ if resolvers.isreadable.file(forcedname) then
+ if trace_locating then
+ logs.report("fileio",'! no suffix, forcing format filetype: %s', s)
+ end
+ result, ok = { forcedname }, true
+ break
+ end
+ end
+ end
+ end
+ if not ok and suffix ~= "" then
+ -- try to find in tree (no suffix manipulation), here we search for the
+ -- matching last part of the name
+ local basename = file.basename(filename)
+ local pattern = (filename .. "$"):gsub("([%.%-])","%%%1")
+ local savedformat = instance.format
+ local format = savedformat or ""
+ if format == "" then
+ instance.format = resolvers.format_of_suffix(suffix)
+ end
+ if not format then
+ instance.format = "othertextfiles" -- kind of everything, maybe texinput is better
+ end
+ --
+ local resolved = collect_instance_files(basename)
+ if #result == 0 then
+ local lowered = lower(basename)
+ if filename ~= lowered then
+ resolved = collect_instance_files(lowered)
+ end
+ end
+ resolvers.format = savedformat
+ --
+ for r=1,#resolved do
+ local rr = resolved[r]
+ if rr:find(pattern) then
+ result[#result+1], ok = rr, true
+ end
+ end
+ -- a real wildcard:
+ --
+ -- if not ok then
+ -- local filelist = collect_files({basename})
+ -- for f=1,#filelist do
+ -- local ff = filelist[f][3] or ""
+ -- if ff:find(pattern) then
+ -- result[#result+1], ok = ff, true
+ -- end
+ -- end
+ -- end
+ end
+ if not ok and trace_locating then
+ logs.report("fileio",'? qualified: %s', filename)
+ end
+ end
+ else
+ -- search spec
+ local filetype, extra, done, wantedfiles, ext = '', nil, false, { }, file.extname(filename)
+ if ext == "" then
+ if not instance.force_suffixes then
+ wantedfiles[#wantedfiles+1] = filename
+ end
+ else
+ wantedfiles[#wantedfiles+1] = filename
+ end
+ if instance.format == "" then
+ if ext == "" then
+ local forcedname = filename .. '.tex'
+ wantedfiles[#wantedfiles+1] = forcedname
+ filetype = resolvers.format_of_suffix(forcedname)
+ if trace_locating then
+ logs.report("fileio",'! forcing filetype: %s',filetype)
+ end
+ else
+ filetype = resolvers.format_of_suffix(filename)
+ if trace_locating then
+ logs.report("fileio",'! using suffix based filetype: %s',filetype)
+ end
+ end
+ else
+ if ext == "" then
+ local suffixes = resolvers.suffixes_of_format(instance.format)
+ for _, s in next, suffixes do
+ wantedfiles[#wantedfiles+1] = filename .. "." .. s
+ end
+ end
+ filetype = instance.format
+ if trace_locating then
+ logs.report("fileio",'! using given filetype: %s',filetype)
+ end
+ end
+ local typespec = resolvers.variable_of_format(filetype)
+ local pathlist = resolvers.expanded_path_list(typespec)
+ if not pathlist or #pathlist == 0 then
+ -- no pathlist, access check only / todo == wildcard
+ if trace_detail then
+ logs.report("fileio",'? filename: %s',filename)
+ logs.report("fileio",'? filetype: %s',filetype or '?')
+ logs.report("fileio",'? wanted files: %s',concat(wantedfiles," | "))
+ end
+ for k=1,#wantedfiles do
+ local fname = wantedfiles[k]
+ if fname and resolvers.isreadable.file(fname) then
+ filename, done = fname, true
+ result[#result+1] = file.join('.',fname)
+ break
+ end
+ end
+ -- this is actually 'other text files' or 'any' or 'whatever'
+ local filelist = collect_files(wantedfiles)
+ local fl = filelist and filelist[1]
+ if fl then
+ filename = fl[3]
+ result[#result+1] = filename
+ done = true
+ end
+ else
+ -- list search
+ local filelist = collect_files(wantedfiles)
+ local doscan, recurse
+ if trace_detail then
+ logs.report("fileio",'? filename: %s',filename)
+ end
+ -- a bit messy ... esp the doscan setting here
+ for k=1,#pathlist do
+ local path = pathlist[k]
+ if find(path,"^!!") then doscan = false else doscan = true end
+ if find(path,"//$") then recurse = true else recurse = false end
+ local pathname = gsub(path,"^!+", '')
+ done = false
+ -- using file list
+ if filelist and not (done and not instance.allresults) and recurse then
+ -- compare list entries with permitted pattern
+ pathname = gsub(pathname,"([%-%.])","%%%1") -- this also influences
+ pathname = gsub(pathname,"/+$", '/.*') -- later usage of pathname
+ pathname = gsub(pathname,"//", '/.-/') -- not ok for /// but harmless
+ local expr = "^" .. pathname
+ for k=1,#filelist do
+ local fl = filelist[k]
+ local f = fl[2]
+ if find(f,expr) then
+ if trace_detail then
+ logs.report("fileio",'= found in hash: %s',f)
+ end
+ --- todo, test for readable
+ result[#result+1] = fl[3]
+ resolvers.register_in_trees(f) -- for tracing used files
+ done = true
+ if not instance.allresults then break end
+ end
+ end
+ end
+ if not done and doscan then
+ -- check if on disk / unchecked / does not work at all / also zips
+ if resolvers.splitmethod(pathname).scheme == 'file' then -- ?
+ local pname = gsub(pathname,"%.%*$",'')
+ if not find(pname,"%*") then
+ local ppname = gsub(pname,"/+$","")
+ if can_be_dir(ppname) then
+ for k=1,#wantedfiles do
+ local w = wantedfiles[k]
+ local fname = file.join(ppname,w)
+ if resolvers.isreadable.file(fname) then
+ if trace_detail then
+ logs.report("fileio",'= found by scanning: %s',fname)
+ end
+ result[#result+1] = fname
+ done = true
+ if not instance.allresults then break end
+ end
+ end
+ else
+ -- no access needed for non existing path, speedup (esp in large tree with lots of fake)
+ end
+ end
+ end
+ end
+ if not done and doscan then
+ -- todo: slow path scanning
+ end
+ if done and not instance.allresults then break end
+ end
+ end
+ end
+ for k=1,#result do
+ result[k] = file.collapse_path(result[k])
+ end
+ if instance.remember then
+ instance.found[stamp] = result
+ end
+ return result
+end
+
+if not resolvers.concatinators then resolvers.concatinators = { } end
+
+resolvers.concatinators.tex = file.join
+resolvers.concatinators.file = resolvers.concatinators.tex
+
+function resolvers.find_files(filename,filetype,mustexist)
+ if type(mustexist) == boolean then
+ -- all set
+ elseif type(filetype) == 'boolean' then
+ filetype, mustexist = nil, false
+ elseif type(filetype) ~= 'string' then
+ filetype, mustexist = nil, false
+ end
+ instance.format = filetype or ''
+ local result = collect_instance_files(filename)
+ if #result == 0 then
+ local lowered = lower(filename)
+ if filename ~= lowered then
+ return collect_instance_files(lowered)
+ end
+ end
+ instance.format = ''
+ return result
+end
+
+function resolvers.find_file(filename,filetype,mustexist)
+ return (resolvers.find_files(filename,filetype,mustexist)[1] or "")
+end
+
+function resolvers.find_given_files(filename)
+ local bname, result = file.basename(filename), { }
+ local hashes = instance.hashes
+ for k=1,#hashes do
+ local hash = hashes[k]
+ local files = instance.files[hash.tag]
+ local blist = files[bname]
+ if not blist then
+ local rname = "remap:"..bname
+ blist = files[rname]
+ if blist then
+ bname = files[rname]
+ blist = files[bname]
+ end
+ end
+ if blist then
+ if type(blist) == 'string' then
+ result[#result+1] = resolvers.concatinators[hash.type](hash.tag,blist,bname) or ""
+ if not instance.allresults then break end
+ else
+ for kk=1,#blist do
+ local vv = blist[kk]
+ result[#result+1] = resolvers.concatinators[hash.type](hash.tag,vv,bname) or ""
+ if not instance.allresults then break end
+ end
+ end
+ end
+ end
+ return result
+end
+
+function resolvers.find_given_file(filename)
+ return (resolvers.find_given_files(filename)[1] or "")
+end
+
+local function doit(path,blist,bname,tag,kind,result,allresults)
+ local done = false
+ if blist and kind then
+ if type(blist) == 'string' then
+ -- make function and share code
+ if find(lower(blist),path) then
+ result[#result+1] = resolvers.concatinators[kind](tag,blist,bname) or ""
+ done = true
+ end
+ else
+ for kk=1,#blist do
+ local vv = blist[kk]
+ if find(lower(vv),path) then
+ result[#result+1] = resolvers.concatinators[kind](tag,vv,bname) or ""
+ done = true
+ if not allresults then break end
+ end
+ end
+ end
+ end
+ return done
+end
+
+function resolvers.find_wildcard_files(filename) -- todo: remap:
+ local result = { }
+ local bname, dname = file.basename(filename), file.dirname(filename)
+ local path = gsub(dname,"^*/","")
+ path = gsub(path,"*",".*")
+ path = gsub(path,"-","%%-")
+ if dname == "" then
+ path = ".*"
+ end
+ local name = bname
+ name = gsub(name,"*",".*")
+ name = gsub(name,"-","%%-")
+ path = lower(path)
+ name = lower(name)
+ local files, allresults, done = instance.files, instance.allresults, false
+ if find(name,"%*") then
+ local hashes = instance.hashes
+ for k=1,#hashes do
+ local hash = hashes[k]
+ local tag, kind = hash.tag, hash.type
+ for kk, hh in next, files[hash.tag] do
+ if not find(kk,"^remap:") then
+ if find(lower(kk),name) then
+ if doit(path,hh,kk,tag,kind,result,allresults) then done = true end
+ if done and not allresults then break end
+ end
+ end
+ end
+ end
+ else
+ local hashes = instance.hashes
+ for k=1,#hashes do
+ local hash = hashes[k]
+ local tag, kind = hash.tag, hash.type
+ if doit(path,files[tag][bname],bname,tag,kind,result,allresults) then done = true end
+ if done and not allresults then break end
+ end
+ end
+ -- we can consider also searching the paths not in the database, but then
+ -- we end up with a messy search (all // in all path specs)
+ return result
+end
+
+function resolvers.find_wildcard_file(filename)
+ return (resolvers.find_wildcard_files(filename)[1] or "")
+end
+
+-- main user functions
+
+function resolvers.automount()
+ -- implemented later
+end
+
+function resolvers.load(option)
+ statistics.starttiming(instance)
+ resolvers.resetconfig()
+ resolvers.identify_cnf()
+ resolvers.load_lua()
+ resolvers.expand_variables()
+ resolvers.load_cnf()
+ resolvers.expand_variables()
+ if option ~= "nofiles" then
+ resolvers.load_hash()
+ resolvers.automount()
+ end
+ statistics.stoptiming(instance)
+end
+
+function resolvers.for_files(command, files, filetype, mustexist)
+ if files and #files > 0 then
+ local function report(str)
+ if trace_verbose then
+ logs.report("fileio",str) -- has already verbose
+ else
+ print(str)
+ end
+ end
+ if trace_verbose then
+ report('')
+ end
+ for _, file in ipairs(files) do
+ local result = command(file,filetype,mustexist)
+ if type(result) == 'string' then
+ report(result)
+ else
+ for _,v in ipairs(result) do
+ report(v)
+ end
+ end
+ end
+ end
+end
+
+-- strtab
+
+resolvers.var_value = resolvers.variable -- output the value of variable $STRING.
+resolvers.expand_var = resolvers.expansion -- output variable expansion of STRING.
+
+function resolvers.show_path(str) -- output search path for file type NAME
+ return file.join_path(resolvers.expanded_path_list(resolvers.format_of_var(str)))
+end
+
+-- resolvers.find_file(filename)
+-- resolvers.find_file(filename, filetype, mustexist)
+-- resolvers.find_file(filename, mustexist)
+-- resolvers.find_file(filename, filetype)
+
+function resolvers.register_file(files, name, path)
+ if files[name] then
+ if type(files[name]) == 'string' then
+ files[name] = { files[name], path }
+ else
+ files[name] = path
+ end
+ else
+ files[name] = path
+ end
+end
+
+function resolvers.splitmethod(filename)
+ if not filename then
+ return { } -- safeguard
+ elseif type(filename) == "table" then
+ return filename -- already split
+ elseif not find(filename,"://") then
+ return { scheme="file", path = filename, original=filename } -- quick hack
+ else
+ return url.hashed(filename)
+ end
+end
+
+function table.sequenced(t,sep) -- temp here
+ local s = { }
+ for k, v in pairs(t) do -- pairs?
+ s[#s+1] = k .. "=" .. v
+ end
+ return concat(s, sep or " | ")
+end
+
+function resolvers.methodhandler(what, filename, filetype) -- ...
+ local specification = (type(filename) == "string" and resolvers.splitmethod(filename)) or filename -- no or { }, let it bomb
+ local scheme = specification.scheme
+ if resolvers[what][scheme] then
+ if trace_locating then
+ logs.report("fileio",'= handler: %s -> %s -> %s',specification.original,what,table.sequenced(specification))
+ end
+ return resolvers[what][scheme](filename,filetype) -- todo: specification
+ else
+ return resolvers[what].tex(filename,filetype) -- todo: specification
+ end
+end
+
+function resolvers.clean_path(str)
+ if str then
+ str = gsub(str,"\\","/")
+ str = gsub(str,"^!+","")
+ str = gsub(str,"^~",resolvers.homedir)
+ return str
+ else
+ return nil
+ end
+end
+
+function resolvers.do_with_path(name,func)
+ for _, v in pairs(resolvers.expanded_path_list(name)) do -- pairs?
+ func("^"..resolvers.clean_path(v))
+ end
+end
+
+function resolvers.do_with_var(name,func)
+ func(expanded_var(name))
+end
+
+function resolvers.with_files(pattern,handle)
+ for _, hash in ipairs(instance.hashes) do
+ local blobpath = hash.tag
+ local blobtype = hash.type
+ if blobpath then
+ local files = instance.files[blobpath]
+ if files then
+ for k,v in next, files do
+ if find(k,"^remap:") then
+ k = files[k]
+ v = files[k] -- chained
+ end
+ if find(k,pattern) then
+ if type(v) == "string" then
+ handle(blobtype,blobpath,v,k)
+ else
+ for _,vv in pairs(v) do -- ipairs?
+ handle(blobtype,blobpath,vv,k)
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+end
+
+function resolvers.locate_format(name)
+ local barename, fmtname = name:gsub("%.%a+$",""), ""
+ if resolvers.usecache then
+ local path = file.join(caches.setpath("formats")) -- maybe platform
+ fmtname = file.join(path,barename..".fmt") or ""
+ end
+ if fmtname == "" then
+ fmtname = resolvers.find_files(barename..".fmt")[1] or ""
+ end
+ fmtname = resolvers.clean_path(fmtname)
+ if fmtname ~= "" then
+ local barename = file.removesuffix(fmtname)
+ local luaname, lucname, luiname = barename .. ".lua", barename .. ".luc", barename .. ".lui"
+ if lfs.isfile(luiname) then
+ return barename, luiname
+ elseif lfs.isfile(lucname) then
+ return barename, lucname
+ elseif lfs.isfile(luaname) then
+ return barename, luaname
+ end
+ end
+ return nil, nil
+end
+
+function resolvers.boolean_variable(str,default)
+ local b = resolvers.expansion(str)
+ if b == "" then
+ return default
+ else
+ b = toboolean(b)
+ return (b == nil and default) or b
+ end
+end
+
+texconfig.kpse_init = false
+
+kpse = { original = kpse } setmetatable(kpse, { __index = function(k,v) return resolvers[v] end } )
+
+-- for a while
+
+input = resolvers
diff --git a/Master/texmf-dist/tex/context/base/data-tex.lua b/Master/texmf-dist/tex/context/base/data-tex.lua
new file mode 100644
index 00000000000..16b6b125f4a
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/data-tex.lua
@@ -0,0 +1,221 @@
+if not modules then modules = { } end modules ['data-tex'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- special functions that deal with io
+
+local format, lower = string.format, string.lower
+
+local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v end)
+
+local texiowrite_nl = (texio and texio.write_nl) or print
+local texiowrite = (texio and texio.write) or print
+
+local finders, openers, loaders = resolvers.finders, resolvers.openers, resolvers.loaders
+
+function finders.generic(tag,filename,filetype)
+ local foundname = resolvers.find_file(filename,filetype)
+ if foundname and foundname ~= "" then
+ if trace_locating then
+ logs.report("fileio",'+ finder: %s, file: %s', tag,filename)
+ end
+ return foundname
+ else
+ if trace_locating then
+ logs.report("fileio",'- finder: %s, file: %s', tag,filename)
+ end
+ return unpack(finders.notfound)
+ end
+end
+
+--~ local getlines = lpeg.Ct(lpeg.linebyline)
+
+local input_translator, utf_translator, user_translator = nil, nil, nil
+
+function resolvers.install_text_filter(name,func)
+ if name == "input" then input_translator = func
+ elseif name == "utf" then utf_translator = func
+ elseif name == "user" then user_translator = func end
+end
+
+function openers.text_opener(filename,file_handle,tag)
+ local u = unicode.utftype(file_handle)
+ local t = { }
+ if u > 0 then
+ if trace_locating then
+ logs.report("fileio",'+ opener: %s (%s), file: %s',tag,unicode.utfname[u],filename)
+ end
+ local l
+ if u > 2 then
+ l = unicode.utf32_to_utf8(file_handle:read("*a"),u==4)
+ else
+ l = unicode.utf16_to_utf8(file_handle:read("*a"),u==2)
+ end
+ file_handle:close()
+ t = {
+ utftype = u, -- may go away
+ lines = l,
+ current = 0, -- line number, not really needed
+ handle = nil,
+ noflines = #l,
+ close = function()
+ if trace_locating then
+ logs.report("fileio",'= closer: %s (%s), file: %s',tag,unicode.utfname[u],filename)
+ end
+ logs.show_close(filename)
+ t = nil
+ end,
+ reader = function(self)
+ self = self or t
+ local current, lines = self.current, self.lines
+ if current >= #lines then
+ return nil
+ else
+ current = current + 1
+ self.current = current
+ local line = lines[current]
+ if not line then
+ return nil
+ elseif line == "" then
+ return ""
+ else
+ if input_translator then
+ line = input_translator(line)
+ end
+ if utf_translator then
+ line = utf_translator(line)
+ end
+ if user_translator then
+ line = user_translator(line)
+ end
+ return line
+ end
+ end
+ end
+ }
+ else
+ if trace_locating then
+ logs.report("fileio",'+ opener: %s, file: %s',tag,filename)
+ end
+ -- todo: file;name -> freeze / eerste regel scannen -> freeze
+ --~ local data = getlines:match(file_handle:read("*a"))
+ --~ local n = 0
+ t = {
+ reader = function() -- self
+ local line = file_handle:read()
+ --~ n = n + 1
+ --~ local line = data[n]
+ --~ print(line)
+ if not line then
+ return nil
+ elseif line == "" then
+ return ""
+ else
+ if input_translator then
+ line = input_translator(line)
+ end
+ if utf_translator then
+ line = utf_translator(line)
+ end
+ if user_translator then
+ line = user_translator(line)
+ end
+ return line
+ end
+ end,
+ close = function()
+ if trace_locating then
+ logs.report("fileio",'= closer: %s, file: %s',tag,filename)
+ end
+ logs.show_close(filename)
+ file_handle:close()
+ t = nil
+collectgarbage("step")
+ end,
+ handle = function()
+ return file_handle
+ end,
+ noflines = function()
+ t.noflines = io.noflines(file_handle)
+ return t.noflines
+ end
+ }
+ end
+ return t
+end
+
+function openers.generic(tag,filename)
+ if filename and filename ~= "" then
+ local f = io.open(filename,"r")
+ if f then
+ logs.show_open(filename)
+ return openers.text_opener(filename,f,tag)
+ end
+ end
+ if trace_locating then
+ logs.report("fileio",'- opener: %s, file: %s',tag,filename)
+ end
+ return unpack(openers.notfound)
+end
+
+function loaders.generic(tag,filename)
+ if filename and filename ~= "" then
+ local f = io.open(filename,"rb")
+ if f then
+ logs.show_load(filename)
+ if trace_locating then
+ logs.report("fileio",'+ loader: %s, file: %s',tag,filename)
+ end
+ local s = f:read("*a")
+ if garbagecollector and garbagecollector.check then garbagecollector.check(#s) end
+ f:close()
+ if s then
+ return true, s, #s
+ end
+ end
+ end
+ if trace_locating then
+ logs.report("fileio",'- loader: %s, file: %s',tag,filename)
+ end
+ return unpack(loaders.notfound)
+end
+
+function finders.tex(filename,filetype)
+ return finders.generic('tex',filename,filetype)
+end
+
+function openers.tex(filename)
+ return openers.generic('tex',filename)
+end
+
+function loaders.tex(filename)
+ return loaders.generic('tex',filename)
+end
+
+function resolvers.findtexfile(filename, filetype)
+ return resolvers.methodhandler('finders',file.collapse_path(filename), filetype)
+end
+
+function resolvers.opentexfile(filename)
+ return resolvers.methodhandler('openers',file.collapse_path(filename))
+end
+
+function resolvers.openfile(filename)
+ local fullname = resolvers.findtexfile(filename)
+ if fullname and (fullname ~= "") then
+ return resolvers.opentexfile(fullname)
+ else
+ return nil
+ end
+end
+
+function resolvers.texdatablob(filename, filetype)
+ local ok, data, size = resolvers.loadbinfile(filename, filetype)
+ return data or ""
+end
+
+resolvers.loadtexfile = resolvers.texdatablob
diff --git a/Master/texmf-dist/tex/context/base/data-tmf.lua b/Master/texmf-dist/tex/context/base/data-tmf.lua
new file mode 100644
index 00000000000..302841a65a6
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/data-tmf.lua
@@ -0,0 +1,72 @@
+if not modules then modules = { } end modules ['data-tmf'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- loads *.tmf files in minimal tree roots (to be optimized and documented)
+
+function resolvers.check_environment(tree)
+ logs.simpleline()
+ os.setenv('TMP', os.getenv('TMP') or os.getenv('TEMP') or os.getenv('TMPDIR') or os.getenv('HOME'))
+ os.setenv('TEXOS', os.getenv('TEXOS') or ("texmf-" .. os.currentplatform()))
+ os.setenv('TEXPATH', (tree or "tex"):gsub("\/+$",''))
+ os.setenv('TEXMFOS', os.getenv('TEXPATH') .. "/" .. os.getenv('TEXOS'))
+ logs.simpleline()
+ logs.simple("preset : TEXPATH => %s", os.getenv('TEXPATH'))
+ logs.simple("preset : TEXOS => %s", os.getenv('TEXOS'))
+ logs.simple("preset : TEXMFOS => %s", os.getenv('TEXMFOS'))
+ logs.simple("preset : TMP => %s", os.getenv('TMP'))
+ logs.simple('')
+end
+
+function resolvers.load_environment(name) -- todo: key=value as well as lua
+ local f = io.open(name)
+ if f then
+ for line in f:lines() do
+ if line:find("^[%%%#]") then
+ -- skip comment
+ else
+ local key, how, value = line:match("^(.-)%s*([<=>%?]+)%s*(.*)%s*$")
+ if how then
+ value = value:gsub("%%(.-)%%", function(v) return os.getenv(v) or "" end)
+ if how == "=" or how == "<<" then
+ os.setenv(key,value)
+ elseif how == "?" or how == "??" then
+ os.setenv(key,os.getenv(key) or value)
+ elseif how == "<" or how == "+=" then
+ if os.getenv(key) then
+ os.setenv(key,os.getenv(key) .. io.fileseparator .. value)
+ else
+ os.setenv(key,value)
+ end
+ elseif how == ">" or how == "=+" then
+ if os.getenv(key) then
+ os.setenv(key,value .. io.pathseparator .. os.getenv(key))
+ else
+ os.setenv(key,value)
+ end
+ end
+ end
+ end
+ end
+ f:close()
+ end
+end
+
+function resolvers.load_tree(tree)
+ if tree and tree ~= "" then
+ local setuptex = 'setuptex.tmf'
+ if lfs.attributes(tree, "mode") == "directory" then -- check if not nil
+ setuptex = tree .. "/" .. setuptex
+ else
+ setuptex = tree
+ end
+ if io.exists(setuptex) then
+ resolvers.check_environment(tree)
+ resolvers.load_environment(setuptex)
+ end
+ end
+end
diff --git a/Master/texmf-dist/tex/context/base/data-tmp.lua b/Master/texmf-dist/tex/context/base/data-tmp.lua
new file mode 100644
index 00000000000..72875dcb714
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/data-tmp.lua
@@ -0,0 +1,176 @@
+if not modules then modules = { } end modules ['data-tmp'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+--[[ldx--
+<p>This module deals with caching data. It sets up the paths and
+implements loaders and savers for tables. Best is to set the
+following variable. When not set, the usual paths will be
+checked. Personally I prefer the (users) temporary path.</p>
+
+</code>
+TEXMFCACHE=$TMP;$TEMP;$TMPDIR;$TEMPDIR;$HOME;$TEXMFVAR;$VARTEXMF;.
+</code>
+
+<p>Currently we do no locking when we write files. This is no real
+problem because most caching involves fonts and the chance of them
+being written at the same time is small. We also need to extend
+luatools with a recache feature.</p>
+--ldx]]--
+
+local format, lower, gsub = string.format, string.lower, string.gsub
+
+local trace_cache = false trackers.register("resolvers.cache", function(v) trace_cache = v end)
+
+caches = caches or { }
+
+caches.path = caches.path or nil
+caches.base = caches.base or "luatex-cache"
+caches.more = caches.more or "context"
+caches.direct = false -- true is faster but may need huge amounts of memory
+caches.tree = false
+caches.paths = caches.paths or nil
+caches.force = false
+caches.defaults = { "TEXMFCACHE", "TMPDIR", "TEMPDIR", "TMP", "TEMP", "HOME", "HOMEPATH" }
+
+function caches.temp()
+ local cachepath = nil
+ local function check(list,isenv)
+ if not cachepath then
+ for k=1,#list do
+ local v = list[k]
+ cachepath = (isenv and (os.env[v] or "")) or v or ""
+ if cachepath == "" then
+ -- next
+ else
+ cachepath = resolvers.clean_path(cachepath)
+ if lfs.isdir(cachepath) and file.iswritable(cachepath) then -- lfs.attributes(cachepath,"mode") == "directory"
+ break
+ elseif caches.force or io.ask(format("\nShould I create the cache path %s?",cachepath), "no", { "yes", "no" }) == "yes" then
+ dir.mkdirs(cachepath)
+ if lfs.isdir(cachepath) and file.iswritable(cachepath) then
+ break
+ end
+ end
+ end
+ cachepath = nil
+ end
+ end
+ end
+ check(resolvers.clean_path_list("TEXMFCACHE") or { })
+ check(caches.defaults,true)
+ if not cachepath then
+ print("\nfatal error: there is no valid (writable) cache path defined\n")
+ os.exit()
+ elseif not lfs.isdir(cachepath) then -- lfs.attributes(cachepath,"mode") ~= "directory"
+ print(format("\nfatal error: cache path %s is not a directory\n",cachepath))
+ os.exit()
+ end
+ cachepath = file.collapse_path(cachepath)
+ function caches.temp()
+ return cachepath
+ end
+ return cachepath
+end
+
+function caches.configpath()
+ return table.concat(resolvers.instance.cnffiles,";")
+end
+
+function caches.hashed(tree)
+ return md5.hex(gsub(lower(tree),"[\\\/]+","/"))
+end
+
+function caches.treehash()
+ local tree = caches.configpath()
+ if not tree or tree == "" then
+ return false
+ else
+ return caches.hashed(tree)
+ end
+end
+
+function caches.setpath(...)
+ if not caches.path then
+ if not caches.path then
+ caches.path = caches.temp()
+ end
+ caches.path = resolvers.clean_path(caches.path) -- to be sure
+ caches.tree = caches.tree or caches.treehash()
+ if caches.tree then
+ caches.path = dir.mkdirs(caches.path,caches.base,caches.more,caches.tree)
+ else
+ caches.path = dir.mkdirs(caches.path,caches.base,caches.more)
+ end
+ end
+ if not caches.path then
+ caches.path = '.'
+ end
+ caches.path = resolvers.clean_path(caches.path)
+ if not table.is_empty({...}) then
+ local pth = dir.mkdirs(caches.path,...)
+ return pth
+ end
+ caches.path = dir.expand_name(caches.path)
+ return caches.path
+end
+
+function caches.definepath(category,subcategory)
+ return function()
+ return caches.setpath(category,subcategory)
+ end
+end
+
+function caches.setluanames(path,name)
+ return path .. "/" .. name .. ".tma", path .. "/" .. name .. ".tmc"
+end
+
+function caches.loaddata(path,name)
+ local tmaname, tmcname = caches.setluanames(path,name)
+ local loader = loadfile(tmcname) or loadfile(tmaname)
+ if loader then
+ loader = loader()
+ collectgarbage("step")
+ return loader
+ else
+ return false
+ end
+end
+
+--~ function caches.loaddata(path,name)
+--~ local tmaname, tmcname = caches.setluanames(path,name)
+--~ return dofile(tmcname) or dofile(tmaname)
+--~ end
+
+function caches.iswritable(filepath,filename)
+ local tmaname, tmcname = caches.setluanames(filepath,filename)
+ return file.iswritable(tmaname)
+end
+
+function caches.savedata(filepath,filename,data,raw)
+ local tmaname, tmcname = caches.setluanames(filepath,filename)
+ local reduce, simplify = true, true
+ if raw then
+ reduce, simplify = false, false
+ end
+ if caches.direct then
+ file.savedata(tmaname, table.serialize(data,'return',false,true,false)) -- no hex
+ else
+ table.tofile(tmaname, data,'return',false,true,false) -- maybe not the last true
+ end
+ local cleanup = resolvers.boolean_variable("PURGECACHE", false)
+ local strip = resolvers.boolean_variable("LUACSTRIP", true)
+ utils.lua.compile(tmaname, tmcname, cleanup, strip)
+end
+
+-- here we use the cache for format loading (texconfig.[formatname|jobname])
+
+--~ if tex and texconfig and texconfig.formatname and texconfig.formatname == "" then
+if tex and texconfig and (not texconfig.formatname or texconfig.formatname == "") and input and resolvers.instance then
+ if not texconfig.luaname then texconfig.luaname = "cont-en.lua" end -- or luc
+ texconfig.formatname = caches.setpath("formats") .. "/" .. gsub(texconfig.luaname,"%.lu.$",".fmt")
+end
diff --git a/Master/texmf-dist/tex/context/base/data-tre.lua b/Master/texmf-dist/tex/context/base/data-tre.lua
new file mode 100644
index 00000000000..9cac73b8ec7
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/data-tre.lua
@@ -0,0 +1,43 @@
+if not modules then modules = { } end modules ['data-tre'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- \input tree://oeps1/**/oeps.tex
+
+local finders, openers, loaders = resolvers.finders, resolvers.openers, resolvers.loaders
+
+local done, found = { }, { }
+
+function finders.tree(specification,filetype)
+ local fnd = found[specification]
+ if not fnd then
+ local spec = resolvers.splitmethod(specification).path or ""
+ if spec ~= "" then
+ local path, name = file.dirname(spec), file.basename(spec)
+ if path == "" then path = "." end
+ local hash = done[path]
+ if not hash then
+ local pattern = path .. "/*" -- we will use the proper splitter
+ hash = dir.glob(pattern)
+ done[path] = hash
+ end
+ local pattern = "/" .. name:gsub("([%.%-%+])", "%%%1") .. "$"
+ for k, v in pairs(hash) do
+ if v:find(pattern) then
+ found[specification] = v
+ return v
+ end
+ end
+ end
+ fnd = unpack(finders.notfound)
+ found[specification] = fnd
+ end
+ return fnd
+end
+
+openers.tree = openers.generic
+loaders.tree = loaders.generic
diff --git a/Master/texmf-dist/tex/context/base/data-use.lua b/Master/texmf-dist/tex/context/base/data-use.lua
new file mode 100644
index 00000000000..609ffd88f90
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/data-use.lua
@@ -0,0 +1,127 @@
+if not modules then modules = { } end modules ['data-use'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local format, lower, gsub = string.format, string.lower, string.gsub
+
+local trace_verbose = false trackers.register("resolvers.verbose", function(v) trace_verbose = v end)
+local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v trackers.enable("resolvers.verbose") end)
+
+-- since we want to use the cache instead of the tree, we will now
+-- reimplement the saver.
+
+local save_data = resolvers.save_data
+local load_data = resolvers.load_data
+
+resolvers.cachepath = nil -- public, for tracing
+resolvers.usecache = true -- public, for tracing
+
+function resolvers.save_data(dataname)
+ save_data(dataname, function(cachename,dataname)
+ resolvers.usecache = not toboolean(resolvers.expansion("CACHEINTDS") or "false",true)
+ if resolvers.usecache then
+ resolvers.cachepath = resolvers.cachepath or caches.definepath("trees")
+ return file.join(resolvers.cachepath(),caches.hashed(cachename))
+ else
+ return file.join(cachename,dataname)
+ end
+ end)
+end
+
+function resolvers.load_data(pathname,dataname,filename)
+ load_data(pathname,dataname,filename,function(dataname,filename)
+ resolvers.usecache = not toboolean(resolvers.expansion("CACHEINTDS") or "false",true)
+ if resolvers.usecache then
+ resolvers.cachepath = resolvers.cachepath or caches.definepath("trees")
+ return file.join(resolvers.cachepath(),caches.hashed(pathname))
+ else
+ if not filename or (filename == "") then
+ filename = dataname
+ end
+ return file.join(pathname,filename)
+ end
+ end)
+end
+
+-- we will make a better format, maybe something xml or just text or lua
+
+resolvers.automounted = resolvers.automounted or { }
+
+function resolvers.automount(usecache)
+ local mountpaths = resolvers.clean_path_list(resolvers.expansion('TEXMFMOUNT'))
+ if table.is_empty(mountpaths) and usecache then
+ mountpaths = { caches.setpath("mount") }
+ end
+ if not table.is_empty(mountpaths) then
+ statistics.starttiming(resolvers.instance)
+ for k, root in pairs(mountpaths) do
+ local f = io.open(root.."/url.tmi")
+ if f then
+ for line in f:lines() do
+ if line then
+ if line:find("^[%%#%-]") then -- or %W
+ -- skip
+ elseif line:find("^zip://") then
+ if trace_locating then
+ logs.report("fileio","mounting %s",line)
+ end
+ table.insert(resolvers.automounted,line)
+ resolvers.usezipfile(line)
+ end
+ end
+ end
+ f:close()
+ end
+ end
+ statistics.stoptiming(resolvers.instance)
+ end
+end
+
+-- status info
+
+statistics.register("used config path", function() return caches.configpath() end)
+statistics.register("used cache path", function() return caches.temp() or "?" end)
+
+-- experiment (code will move)
+
+function statistics.save_fmt_status(texname,formatbanner,sourcefile) -- texname == formatname
+ local enginebanner = status.list().banner
+ if formatbanner and enginebanner and sourcefile then
+ local luvname = file.replacesuffix(texname,"luv")
+ local luvdata = {
+ enginebanner = enginebanner,
+ formatbanner = formatbanner,
+ sourcehash = md5.hex(io.loaddata(resolvers.find_file(sourcefile)) or "unknown"),
+ sourcefile = sourcefile,
+ }
+ io.savedata(luvname,table.serialize(luvdata,true))
+ end
+end
+
+function statistics.check_fmt_status(texname)
+ local enginebanner = status.list().banner
+ if enginebanner and texname then
+ local luvname = file.replacesuffix(texname,"luv")
+ if lfs.isfile(luvname) then
+ local luv = dofile(luvname)
+ if luv and luv.sourcefile then
+ local sourcehash = md5.hex(io.loaddata(resolvers.find_file(luv.sourcefile)) or "unknown")
+ if luv.enginebanner and luv.enginebanner ~= enginebanner then
+ return "engine mismatch"
+ end
+ if luv.sourcehash and luv.sourcehash ~= sourcehash then
+ return "source mismatch"
+ end
+ else
+ return "invalid status file"
+ end
+ else
+ return "missing status file"
+ end
+ end
+ return true
+end
diff --git a/Master/texmf-dist/tex/context/base/data-zip.lua b/Master/texmf-dist/tex/context/base/data-zip.lua
new file mode 100644
index 00000000000..dcb6b170a33
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/data-zip.lua
@@ -0,0 +1,241 @@
+if not modules then modules = { } end modules ['data-zip'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local format, find = string.format, string.find
+
+local trace_locating, trace_verbose = false, false
+
+trackers.register("resolvers.verbose", function(v) trace_verbose = v end)
+trackers.register("resolvers.locating", function(v) trace_locating = v trace_verbose = v end)
+
+zip = zip or { }
+zip.archives = zip.archives or { }
+zip.registeredfiles = zip.registeredfiles or { }
+
+local finders, openers, loaders = resolvers.finders, resolvers.openers, resolvers.loaders
+local locators, hashers, concatinators = resolvers.locators, resolvers.hashers, resolvers.concatinators
+
+local archives = zip.archives
+
+-- zip:///oeps.zip?name=bla/bla.tex
+-- zip:///oeps.zip?tree=tex/texmf-local
+
+local function validzip(str) -- todo: use url splitter
+ if not find(str,"^zip://") then
+ return "zip:///" .. str
+ else
+ return str
+ end
+end
+
+function zip.openarchive(name)
+ if not name or name == "" then
+ return nil
+ else
+ local arch = archives[name]
+ if not arch then
+ local full = resolvers.find_file(name) or ""
+ arch = (full ~= "" and zip.open(full)) or false
+ archives[name] = arch
+ end
+ return arch
+ end
+end
+
+function zip.closearchive(name)
+ if not name or (name == "" and archives[name]) then
+ zip.close(archives[name])
+ archives[name] = nil
+ end
+end
+
+-- zip:///texmf.zip?tree=/tex/texmf
+-- zip:///texmf.zip?tree=/tex/texmf-local
+-- zip:///texmf-mine.zip?tree=/tex/texmf-projects
+
+function locators.zip(specification) -- where is this used? startup zips (untested)
+ specification = resolvers.splitmethod(specification)
+ local zipfile = specification.path
+ local zfile = zip.openarchive(name) -- tricky, could be in to be initialized tree
+ if trace_locating then
+ if zfile then
+ logs.report("fileio",'! zip locator, found: %s',specification.original)
+ else
+ logs.report("fileio",'? zip locator, not found: %s',specification.original)
+ end
+ end
+end
+
+function hashers.zip(tag,name)
+ if trace_verbose then
+ logs.report("fileio","loading zip file %s as %s",name,tag)
+ end
+ resolvers.usezipfile(format("%s?tree=%s",tag,name))
+end
+
+function concatinators.zip(tag,path,name)
+ if not path or path == "" then
+ return format('%s?name=%s',tag,name)
+ else
+ return format('%s?name=%s/%s',tag,path,name)
+ end
+end
+
+function resolvers.isreadable.zip(name)
+ return true
+end
+
+function finders.zip(specification,filetype)
+ specification = resolvers.splitmethod(specification)
+ if specification.path then
+ local q = url.query(specification.query)
+ if q.name then
+ local zfile = zip.openarchive(specification.path)
+ if zfile then
+ if trace_locating then
+ logs.report("fileio",'! zip finder, path: %s',specification.path)
+ end
+ local dfile = zfile:open(q.name)
+ if dfile then
+ dfile = zfile:close()
+ if trace_locating then
+ logs.report("fileio",'+ zip finder, name: %s',q.name)
+ end
+ return specification.original
+ end
+ elseif trace_locating then
+ logs.report("fileio",'? zip finder, path %s',specification.path)
+ end
+ end
+ end
+ if trace_locating then
+ logs.report("fileio",'- zip finder, name: %s',filename)
+ end
+ return unpack(finders.notfound)
+end
+
+function openers.zip(specification)
+ local zipspecification = resolvers.splitmethod(specification)
+ if zipspecification.path then
+ local q = url.query(zipspecification.query)
+ if q.name then
+ local zfile = zip.openarchive(zipspecification.path)
+ if zfile then
+ if trace_locating then
+ logs.report("fileio",'+ zip starter, path: %s',zipspecification.path)
+ end
+ local dfile = zfile:open(q.name)
+ if dfile then
+ logs.show_open(specification)
+ return openers.text_opener(specification,dfile,'zip')
+ end
+ elseif trace_locating then
+ logs.report("fileio",'- zip starter, path %s',zipspecification.path)
+ end
+ end
+ end
+ if trace_locating then
+ logs.report("fileio",'- zip opener, name: %s',filename)
+ end
+ return unpack(openers.notfound)
+end
+
+function loaders.zip(specification)
+ specification = resolvers.splitmethod(specification)
+ if specification.path then
+ local q = url.query(specification.query)
+ if q.name then
+ local zfile = zip.openarchive(specification.path)
+ if zfile then
+ if trace_locating then
+ logs.report("fileio",'+ zip starter, path: %s',specification.path)
+ end
+ local dfile = zfile:open(q.name)
+ if dfile then
+ logs.show_load(filename)
+ if trace_locating then
+ logs.report("fileio",'+ zip loader, name: %s',filename)
+ end
+ local s = dfile:read("*all")
+ dfile:close()
+ return true, s, #s
+ end
+ elseif trace_locating then
+ logs.report("fileio",'- zip starter, path: %s',specification.path)
+ end
+ end
+ end
+ if trace_locating then
+ logs.report("fileio",'- zip loader, name: %s',filename)
+ end
+ return unpack(openers.notfound)
+end
+
+-- zip:///somefile.zip
+-- zip:///somefile.zip?tree=texmf-local -> mount
+
+function resolvers.usezipfile(zipname)
+ zipname = validzip(zipname)
+ if trace_locating then
+ logs.report("fileio",'! zip use, file: %s',zipname)
+ end
+ local specification = resolvers.splitmethod(zipname)
+ local zipfile = specification.path
+ if zipfile and not zip.registeredfiles[zipname] then
+ local tree = url.query(specification.query).tree or ""
+ if trace_locating then
+ logs.report("fileio",'! zip register, file: %s',zipname)
+ end
+ local z = zip.openarchive(zipfile)
+ if z then
+ local instance = resolvers.instance
+ if trace_locating then
+ logs.report("fileio","= zipfile, registering: %s",zipname)
+ end
+ statistics.starttiming(instance)
+ resolvers.prepend_hash('zip',zipname,zipfile)
+ resolvers.extend_texmf_var(zipname) -- resets hashes too
+ zip.registeredfiles[zipname] = z
+ instance.files[zipname] = resolvers.register_zip_file(z,tree or "")
+ statistics.stoptiming(instance)
+ elseif trace_locating then
+ logs.report("fileio","? zipfile, unknown: %s",zipname)
+ end
+ elseif trace_locating then
+ logs.report("fileio",'! zip register, no file: %s',zipname)
+ end
+end
+
+function resolvers.register_zip_file(z,tree)
+ local files, filter = { }, ""
+ if tree == "" then
+ filter = "^(.+)/(.-)$"
+ else
+ filter = format("^%s/(.+)/(.-)$",tree)
+ end
+ if trace_locating then
+ logs.report("fileio",'= zip filter: %s',filter)
+ end
+ local register, n = resolvers.register_file, 0
+ for i in z:files() do
+ local path, name = i.filename:match(filter)
+ if path then
+ if name and name ~= '' then
+ register(files, name, path)
+ n = n + 1
+ else
+ -- directory
+ end
+ else
+ register(files, i.filename, '')
+ n = n + 1
+ end
+ end
+ logs.report("fileio",'= zip entries: %s',n)
+ return files
+end
diff --git a/Master/texmf-dist/tex/context/base/enco-032.tex b/Master/texmf-dist/tex/context/base/enco-032.mkii
index d7e15126c94..d7e15126c94 100644
--- a/Master/texmf-dist/tex/context/base/enco-032.tex
+++ b/Master/texmf-dist/tex/context/base/enco-032.mkii
diff --git a/Master/texmf-dist/tex/context/base/enco-037.tex b/Master/texmf-dist/tex/context/base/enco-037.mkii
index d9fc653b2c5..d9fc653b2c5 100644
--- a/Master/texmf-dist/tex/context/base/enco-037.tex
+++ b/Master/texmf-dist/tex/context/base/enco-037.mkii
diff --git a/Master/texmf-dist/tex/context/base/enco-acc.tex b/Master/texmf-dist/tex/context/base/enco-acc.mkii
index e02536be6fe..e02536be6fe 100644
--- a/Master/texmf-dist/tex/context/base/enco-acc.tex
+++ b/Master/texmf-dist/tex/context/base/enco-acc.mkii
diff --git a/Master/texmf-dist/tex/context/base/enco-agr.tex b/Master/texmf-dist/tex/context/base/enco-agr.mkii
index cfd86dfd344..cfd86dfd344 100644
--- a/Master/texmf-dist/tex/context/base/enco-agr.tex
+++ b/Master/texmf-dist/tex/context/base/enco-agr.mkii
diff --git a/Master/texmf-dist/tex/context/base/enco-ans.tex b/Master/texmf-dist/tex/context/base/enco-ans.mkii
index 7a48b5b5548..7a48b5b5548 100644
--- a/Master/texmf-dist/tex/context/base/enco-ans.tex
+++ b/Master/texmf-dist/tex/context/base/enco-ans.mkii
diff --git a/Master/texmf-dist/tex/context/base/enco-cas.tex b/Master/texmf-dist/tex/context/base/enco-cas.mkii
index 38d12f9fa83..38d12f9fa83 100644
--- a/Master/texmf-dist/tex/context/base/enco-cas.tex
+++ b/Master/texmf-dist/tex/context/base/enco-cas.mkii
diff --git a/Master/texmf-dist/tex/context/base/enco-chi.tex b/Master/texmf-dist/tex/context/base/enco-chi.mkii
index 9d77893a01a..9d77893a01a 100644
--- a/Master/texmf-dist/tex/context/base/enco-chi.tex
+++ b/Master/texmf-dist/tex/context/base/enco-chi.mkii
diff --git a/Master/texmf-dist/tex/context/base/enco-com.tex b/Master/texmf-dist/tex/context/base/enco-com.mkii
index 42d0d4774ee..42d0d4774ee 100644
--- a/Master/texmf-dist/tex/context/base/enco-com.tex
+++ b/Master/texmf-dist/tex/context/base/enco-com.mkii
diff --git a/Master/texmf-dist/tex/context/base/enco-cyr.tex b/Master/texmf-dist/tex/context/base/enco-cyr.mkii
index 0ac82207ff4..36bca82b5e7 100644
--- a/Master/texmf-dist/tex/context/base/enco-cyr.tex
+++ b/Master/texmf-dist/tex/context/base/enco-cyr.mkii
@@ -256,6 +256,8 @@
% \definecharacter textperthousand {\%\char 24 }
% \definecharacter textpertenthousand {\%\char 24\char 24 }
+\definecharacter cyrillicgheupturn 160 % to satisfy the patterns
+
\stopencoding
\startmapping[t2b]
diff --git a/Master/texmf-dist/tex/context/base/enco-def.tex b/Master/texmf-dist/tex/context/base/enco-def.mkii
index 5d0dd51dfba..b6d66bb6c2c 100644
--- a/Master/texmf-dist/tex/context/base/enco-def.tex
+++ b/Master/texmf-dist/tex/context/base/enco-def.mkii
@@ -505,10 +505,12 @@
\definecharacter greekbeta {\beta}
\definecharacter greekgamma {\gamma}
\definecharacter greekdelta {\delta}
-\definecharacter greekepsilon {\epsilon}
+\definecharacter greekepsilon {\varepsilon}
+\definecharacter greekepsilonalt {\epsilon}
\definecharacter greekzeta {\zeta}
\definecharacter greeketa {\eta}
\definecharacter greektheta {\theta}
+\definecharacter greekthetaalt {\vartheta}
\definecharacter greekiota {\iota}
\definecharacter greekkappa {\kappa}
\definecharacter greeklambda {\lambda}
@@ -518,11 +520,12 @@
\definecharacter greekomicron {\omicron}
\definecharacter greekpi {\pi}
\definecharacter greekrho {\rho}
-\definecharacter greekfinalsigma {\sigma}
\definecharacter greeksigma {\sigma}
+\definecharacter greekfinalsigma {\varsigma}
\definecharacter greektau {\tau}
\definecharacter greekupsilon {\upsilon}
-\definecharacter greekphi {\phi}
+\definecharacter greekphi {\varphi}
+\definecharacter greekphialt {\phi}
\definecharacter greekchi {\chi}
\definecharacter greekpsi {\psi}
\definecharacter greekomega {\omega}
@@ -706,6 +709,9 @@
\stopencoding
+\def\cyrillicio{\cyrillicyo}
+\def\cyrillicIO{\cyrillicYO}
+
%D Hebrew:
\startencoding[default]
@@ -890,7 +896,7 @@
\startencoding[\s!default]
-\definecharacter texthorizontalbar {{--\kern\zeropoint--}}
+\definecharacter texthorizontalbar {{\endash\kern\zeropoint\endash}}
\definecharacter textdong {\underbar{\dstroke}}
\stopencoding
diff --git a/Master/texmf-dist/tex/context/base/enco-ec.tex b/Master/texmf-dist/tex/context/base/enco-ec.mkii
index 4f1dfed1b8d..1ac41cadf24 100644
--- a/Master/texmf-dist/tex/context/base/enco-ec.tex
+++ b/Master/texmf-dist/tex/context/base/enco-ec.mkii
@@ -43,6 +43,7 @@
\definecasemaps 192 to 223 lc +32 uc 0
\definecasemaps 224 to 254 lc 0 uc -32
\definecaseswap 255 223 % ssharp (else patterns fail)
+\definecaseswap 25 `I % dotless i
% 156 vs. 188 IJligature
diff --git a/Master/texmf-dist/tex/context/base/enco-ecm.tex b/Master/texmf-dist/tex/context/base/enco-ecm.mkii
index b744739607d..b744739607d 100644
--- a/Master/texmf-dist/tex/context/base/enco-ecm.tex
+++ b/Master/texmf-dist/tex/context/base/enco-ecm.mkii
diff --git a/Master/texmf-dist/tex/context/base/enco-el.tex b/Master/texmf-dist/tex/context/base/enco-el.mkii
index 24729967bae..24729967bae 100644
--- a/Master/texmf-dist/tex/context/base/enco-el.tex
+++ b/Master/texmf-dist/tex/context/base/enco-el.mkii
diff --git a/Master/texmf-dist/tex/context/base/enco-fde.tex b/Master/texmf-dist/tex/context/base/enco-fde.mkii
index da104b802b7..a7c11abfcfa 100644
--- a/Master/texmf-dist/tex/context/base/enco-fde.tex
+++ b/Master/texmf-dist/tex/context/base/enco-fde.mkii
@@ -11,6 +11,8 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+\doifmode{mkiv}{\endinput}
+
\unprotect
\installactivecharacter "
diff --git a/Master/texmf-dist/tex/context/base/enco-ffr.tex b/Master/texmf-dist/tex/context/base/enco-ffr.mkii
index abe3627504d..c321153e8f0 100644
--- a/Master/texmf-dist/tex/context/base/enco-ffr.tex
+++ b/Master/texmf-dist/tex/context/base/enco-ffr.mkii
@@ -11,6 +11,8 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+\doifmode{mkiv}{\endinput}
+
% \definehspace[fr][:][.25em]
% \definehspace[fr][;][.25em]
% \definehspace[fr][!][.25em]
diff --git a/Master/texmf-dist/tex/context/base/enco-fpl.tex b/Master/texmf-dist/tex/context/base/enco-fpl.mkii
index ee9d98dc8bf..14d102ff1ce 100644
--- a/Master/texmf-dist/tex/context/base/enco-fpl.tex
+++ b/Master/texmf-dist/tex/context/base/enco-fpl.mkii
@@ -21,7 +21,7 @@
\startlanguagespecifics[\s!pl]
- \appendtoks \makecharacteractive / \to \everynormalcatcodes
+% \appendtoks \makecharacteractive / \to \everynormalcatcodes % obsolete
\installcompoundcharacter /a {\aogonek}
\installcompoundcharacter /c {\cacute}
diff --git a/Master/texmf-dist/tex/context/base/enco-fro.tex b/Master/texmf-dist/tex/context/base/enco-fro.mkii
index e5f5e1257f2..e5f5e1257f2 100644
--- a/Master/texmf-dist/tex/context/base/enco-fro.tex
+++ b/Master/texmf-dist/tex/context/base/enco-fro.mkii
diff --git a/Master/texmf-dist/tex/context/base/enco-fsl.tex b/Master/texmf-dist/tex/context/base/enco-fsl.mkii
index 86a41c88a37..86a41c88a37 100644
--- a/Master/texmf-dist/tex/context/base/enco-fsl.tex
+++ b/Master/texmf-dist/tex/context/base/enco-fsl.mkii
diff --git a/Master/texmf-dist/tex/context/base/enco-grk.tex b/Master/texmf-dist/tex/context/base/enco-grk.mkii
index 882a3c9b0cd..882a3c9b0cd 100644
--- a/Master/texmf-dist/tex/context/base/enco-grk.tex
+++ b/Master/texmf-dist/tex/context/base/enco-grk.mkii
diff --git a/Master/texmf-dist/tex/context/base/enco-heb.tex b/Master/texmf-dist/tex/context/base/enco-heb.mkii
index 44374575273..44374575273 100644
--- a/Master/texmf-dist/tex/context/base/enco-heb.tex
+++ b/Master/texmf-dist/tex/context/base/enco-heb.mkii
diff --git a/Master/texmf-dist/tex/context/base/enco-ibm.tex b/Master/texmf-dist/tex/context/base/enco-ibm.mkii
index 48695ca5298..48695ca5298 100644
--- a/Master/texmf-dist/tex/context/base/enco-ibm.tex
+++ b/Master/texmf-dist/tex/context/base/enco-ibm.mkii
diff --git a/Master/texmf-dist/tex/context/base/enco-il2.tex b/Master/texmf-dist/tex/context/base/enco-il2.mkii
index 9fb87b2fd77..9fb87b2fd77 100644
--- a/Master/texmf-dist/tex/context/base/enco-il2.tex
+++ b/Master/texmf-dist/tex/context/base/enco-il2.mkii
diff --git a/Master/texmf-dist/tex/context/base/enco-ini.mkii b/Master/texmf-dist/tex/context/base/enco-ini.mkii
index d39a64fca41..1ac491e62fe 100644
--- a/Master/texmf-dist/tex/context/base/enco-ini.mkii
+++ b/Master/texmf-dist/tex/context/base/enco-ini.mkii
@@ -1,34 +1,1137 @@
%D \module
%D [ file=enco-ini,
-%D version=2007.02.19,
+%D version=2007.02.19, % 2000.12.27, % 1998.12.03,
%D title=\CONTEXT\ Encoding Macros,
%D subtitle=Initialization,
%D author=Hans Hagen,
%D date=\currentdate,
-%D copyright=\PRAGMA]
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
%C
%C This module is part of the \CONTEXT\ macro||package and is
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-%D In the end we will cleanup enco-ini.tex!
+%D Quite some code will be moved to the mk files once we're ready
+%D for it.
+
+%D This module is a reimplementation of the module that handled
+%D composed characters and non \ASCII\ characters. The changed
+%D are not that fundamental, and mainly concerns moving
+%D definitions of specific glyphs and accents to other files as
+%D well as moving plain handling of accents to this module
+%D instead of overloading plain \TEX\ commands.
+
+%D Patterns are kind of mixed with font encodings and
+%D mappings. Alas.
+
+\ifx\synchronizepatterns\undefined \let\synchronizepatterns\relax \fi
+
+%D While dealing with input (the text source) and output (the
+%D glyphs), encoding comes into view. To summarize a few:
+%D
+%D \startitemize
+%D \item Bytes in the input file are mapped to an internal
+%D representation. An~\type {a} often stays an~\type {a},
+%D but~\type {\"e} can become either one code or become
+%D two codes (ending in overlapping glyphs).
+%D \item Characters can be made active and mapped onto another
+%D character.
+%D \item When changing case, characters are mapped onto
+%D themselves, their case||counterpart or a reasonable
+%D alternative, like~\"e onto~e.
+%D \item Single character representations in a \DVI\ file can
+%D be mapped onto one or more characters, either of not
+%D in more than one font file (virtual fonts).
+%D \item In the final format, fonts collections can be
+%D partially embedded, thereby losing the one||to||one
+%D relation between several instances of one font.
+%D \item For special purposes, individual characters should be
+%D mapped onto a dedicated encoding vector, for instance
+%D \PDF\ document encoding.
+%D \stopitemize
+%D
+%D These and other kind of mappings are to be dealt with, and
+%D the exact way of dealing often depends on the language to be
+%D typeset.
+
+\writestatus{loading}{ConTeXt Encoding Macros / Initialization}
\unprotect
-\beginOLDTEX
+%D First we define a few local or not yet initialized constants.
- \useencoding[ans,il2,ec,tbo,pdf,pol,qx,t5,cyr,agr] % pol and il2 will go away, not needed in mkiv, uc removed
+\def\@map@{@m@ap@} % mapping prefix
+\def\@fha@{@f@ha@} % font prefix
+\def\@cas@{@c@as@} % casecom prefix
- \useencoding[032,033,037] % fallbacks for some unicode chars
+\ifx\currentlanguage\undefined \let\currentlanguage\s!en \fi
- \setupencoding[\s!default=ec] % was: [\s!default=\s!default]
+%D \macros
+%D {setupencoding}
+%D
+%D The following setup command is used to tune encoding
+%D handling.
-\endOLDTEX
+\def\setupencoding
+ {\dosingleargument\dosetupencoding}
-\beginXETEX
+\def\dosetupencoding[#1]%
+ {\getparameters[\??ec][#1]%
+ \edef\defaultencoding
+ {\ifx\@@ecdefault\empty\s!default\else\@@ecdefault\fi}}
- \setupencoding[\s!default=\s!default]
+%D \macros
+%D {useencoding}
+%D
+%D Encodings things are defined in separate files and are
+%D loaded only once, using:
+%D
+%D \showsetup{useencoding}
+
+\def\douseencoding#1%
+ {\doifundefined{\c!file\f!encodingprefix#1}%
+ {\letvalue{\c!file\f!encodingprefix#1}\empty
+ \makeshortfilename[\truefilename{\f!encodingprefix#1}]%
+ \startreadingfile
+ \readsysfile{\shortfilename.mkii}
+ {\showmessage\m!encodings2{#1}}
+ {\showmessage\m!encodings3{#1}}%
+ \stopreadingfile}}
+
+\def\useencoding[#1]%
+ {\processcommalist[#1]\douseencoding}
+
+%D \macros
+%D {startmapping,enablemapping}
+%D
+%D In order to process patterns, convert from lower to
+%D uppercase and vise versa and some more, we provide a
+%D mechanism to define mappings. The first real application
+%D of this command was:
+%D
+%D \starttyping
+%D \startmapping [something]
+%D \definecasemap 165 181 165
+%D \definecasemap 171 187 171
+%D ...
+%D \defineuppercasecom \i {I}
+%D \defineuppercasecom \l \L
+%D \definelowercasecom \AE \ae
+%D ...
+%D \stopmapping
+%D \stoptyping
+%D
+%D So, character 165 becomes 181 in uppercase and 165 in
+%D lowercase. A mapping is activated with \type {\enablemapping}.
+
+\def\startsavingmappingtoks#1%
+ {\bgroup
+ \edef\charactermapping{@#1@}%
+ \checkmappingtoks
+ \setmappingtoks
+ \the\mappingtoks}
+
+\def\stopsavingmappingtoks
+ {\global\mappingtoks\emptytoks
+ \dostepwiserecurse{0}{255}\plusone
+ {\edef\@@expanded
+ {\the\mappingtoks
+ \ifnum\recurselevel>127
+ \noexpand\settoletterunlessactive{\recurselevel}%
+ \fi
+ \lccode\recurselevel\ifnum\lccode\recurselevel=\zerocount\zerocount\else\space\the\lccode\recurselevel\space\fi
+ \uccode\recurselevel\ifnum\uccode\recurselevel=\zerocount\zerocount\else\space\the\uccode\recurselevel\space\fi
+ \ifnum\sfcode\recurselevel=\plusthousand\else\sfcode\recurselevel=\the\sfcode\recurselevel\space\fi
+ }%
+ \global\mappingtoks\expandafter{\@@expanded}}%
+ \egroup
+ \let\enabledmapping\empty
+ \enablemapping[\currentmapping]}
+
+\def\startmapping[#1]%
+ {\startsavingmappingtoks{#1}}
+
+\def\stopmapping
+ {\stopsavingmappingtoks}
+
+\def\optimizemapping[#1]%
+ {\startsavingmappingtoks{#1}%
+ % nothing, just an automatic cleanup
+ \stopsavingmappingtoks
+ % we need to resync
+ %\let\enabledmapping\relax
+ }%\enablemapping[\currentmapping]}
+
+\def\setmappingtoks
+ {\@EA\let\@EA\mappingtoks\csname\@map@\charactermapping\endcsname
+ \@EA\let\@EA\casecomtoks\csname\@cas@\charactermapping\endcsname}
+
+\def\checkmappingtoks
+ {\ifundefined{\@map@\charactermapping}%
+ \expandafter\newtoks\csname\@map@\charactermapping\endcsname
+ \fi
+ \ifundefined{\@cas@\charactermapping}%
+ \expandafter\newtoks\csname\@cas@\charactermapping\endcsname
+ \fi}
+
+\def\definecasemap #1 #2 #3 % code lower upper
+ {\doifelse{#2}{to}
+ {\presetcaserange{#1}{#3}}
+ {\lccode#1=#2\relax
+ \uccode#1=#3\relax}%
+ \ignorespaces}
+
+%D Saves a few tokens
+
+\def\definecaseswap #1 #2 % lower upper
+ {\lccode#1=#1\relax
+ \uccode#2=#2\relax
+ \lccode#2=#1\relax
+ \uccode#1=#2\relax
+ \ignorespaces}
+
+\def\definecaseself #1 % lower=upper=self
+ {\lccode#1=#1\relax
+ \uccode#1=#1\relax
+ \ignorespaces}
+
+%D Watch the \type {\definecasemap 127 to 255} option!
+%D Dedicated to Taco there is also:
+
+\def\definecasemaps #1 to #2 lc #3 uc #4 % from to lc+ uc+
+ {\dostepwiserecurse{#1}{#2}\plusone
+ {\scratchcounter\recurselevel\advance\scratchcounter#3\lccode\recurselevel=\scratchcounter
+ \scratchcounter\recurselevel\advance\scratchcounter#4\uccode\recurselevel=\scratchcounter}%
+ \ignorespaces}
+
+%D This can be used like:
+%D
+%D \starttyping
+%D \definecasemaps 128 to 156 lc 32 uc 0
+%D \definecasemaps 160 to 188 lc -32 uc 0
+%D \definecasemaps 160 to 188 lc -32 uc 0
+%D \definecasemaps 192 to 255 lc 32 uc 0
+%D \stoptyping
+%D
+%D and saves a lot of typing (copying).
+
+\def\resetcaserange #1 to #2
+ {\dostepwiserecurse{#1}{#2}\plusone
+ {\lccode\recurselevel\zerocount
+ \uccode\recurselevel\zerocount}%
+ \ignorespaces}
+
+\def\presetcaserange#1#2% could be pre-expanded
+ {\dostepwiserecurse{#1}{#2}\plusone
+ {\lccode\recurselevel=\recurselevel
+ \uccode\recurselevel=\recurselevel}%
+ \ignorespaces}
+
+\def\setcasemap #1 #2 #3 %
+ {\settoletterunlessactive{#1}%
+ \lccode #1=#2
+ \uccode #1=#3 }
+
+\def\setcaseswap #1 #2 %
+ {\settoletterunlessactive{#1}%
+ \settoletterunlessactive{#2}%
+ \lccode #1=#1
+ \uccode #2=#2
+ \lccode #2=#1
+ \uccode #1=#2 }
+
+\def\setcaseself #1 %
+ {\settoletterunlessactive{#1}%
+ \lccode #1=#1
+ \uccode #1=#1 }
+
+\def\definespacemap #1 #2 % code sfcode
+ {\sfcode#1=#2%
+ \ignorespaces}
+
+\def\setspacemap #1 #2 %
+ {\settootherunlessactive{#1}%
+ %\lccode #1=\zerocount
+ %\uccode #1=\zerocount
+ \sfcode #1=#2 }
+
+\def\defineuppercasecom#1#2%
+ {\global\casecomtoks\expandafter{\the\casecomtoks\setuppercasecom#1{#2}}%
+ \ignorespaces}
+
+\def\definelowercasecom#1#2%
+ {\global\casecomtoks\expandafter{\the\casecomtoks\setlowercasecom#1{#2}}%
+ \ignorespaces}
+
+\let\setuppercasecom\gobbletwoarguments
+\let\setlowercasecom\gobbletwoarguments
+
+\def\setcasecom#1#2{\def#1{#2}}
+
+\let\enabledmapping\empty % indirect, needed to handle default too
+
+\def\enablemapping[#1]%
+ {\edef\charactermapping{@#1@}%
+ \ifx\enabledmapping\charactermapping \else
+ \doifdefined{\@map@\charactermapping}
+ {%\expandafter\showthe\csname\@map@\charactermapping\endcsname\endcsname
+ \the\csname\@map@\charactermapping\endcsname}%
+ % == \the\executeifdefined{\@map@\charactermapping}\emptytoks
+ \edef\enabledmapping{\charactermapping}%
+ \enablelanguagespecifics[\currentlanguage]% new
+ % \edef\enabledmapping{\charactermapping\currentlanguage}% can be comma list
+ \fi
+ \synchronizepatterns}
+
+% on behalf of font switching:
+
+\def\fastenablemapping#1%
+ {\edef\charactermapping{@#1@}%
+ \ifx\enabledmapping\charactermapping \else
+ \@EA\ifx\csname\@map@\charactermapping\endcsname\relax\else
+ \the\csname\@map@\charactermapping\endcsname
+ \fi
+ % == \the\executeifdefined{\@map@\charactermapping}\emptytoks
+ \let\enabledmapping\charactermapping
+ \enablelanguagespecifics[\currentlanguage]% to faster
+ \fi}
+
+%D This macro wil be implemented in \type {lang-ini.tex}.
+
+\ifx\enablelanguagespecifics\undefined
+ \def\enablelanguagespecifics[#1]{}
+\fi
+
+%D Further on we have to take some precautions when dealing
+%D with special characters like~\type{~}, \type{_}
+%D and~\type{^}, so let us define ourselve some handy macros
+%D first.
+
+\def\protectfontcharacters
+ {\edef\unprotectfontcharacters
+ {\catcode`\noexpand ~=\the\catcode`~\relax
+ \catcode`\noexpand _=\the\catcode`_\relax
+ \catcode`\noexpand ^=\the\catcode`^\relax}%
+ \catcode`~=\@@letter
+ \catcode`_=\@@letter
+ \catcode`^=\@@letter\relax}
+
+%D The completeness of the Computer Modern Roman typefaces
+%D makes clear how incomplete other faces are. To honour 7~bit
+%D \ASCII, these fonts were designed using only the first 127
+%D values of the 256 ones that can be presented by one byte.
+%D Nowadays 8~bit character codings are more common, mainly
+%D because they permit us to predefine some composed
+%D characters, which are needed in most european languages.
+%D
+%D Supporting more than the standard \TEX\ encoding vector
+%D |<|which in itself is far from standard and differs per
+%D font|>| puts a burden on the fonts mechanism. The \CONTEXT\
+%D mechanism is far from complete, but can handle several
+%D schemes at once. The main problem lays in the accented
+%D characters and ligatures like~ff, although handling
+%D ligatures is not the responsibility of this module.
+%D
+%D By default, we use \PLAIN\ \TEX's approach of placing
+%D accents. All other schemes sooner or later give problems
+%D when we distribute \DVI||files are distributed across
+%D machines and platforms. Nevertheless, we have to take care
+%D of different encoding vectors, which tell us where to find
+%D the characters we need. This means that all kind of
+%D character placement macro's like \type{\"} and \type{\ae}
+%D have to be implemented and adapted in a way that suits
+%D these vectors.
+%D
+%D The main difference between different vector is the way
+%D accents are ordered and/or the availability of prebuilt
+%D accented characters. Accented characters can for instance be
+%D called for by sequences like \type{\"e}. Here the \type{\"}
+%D is defined as:
+%D
+%D \starttyping
+%D \def\"#1{{\accent"7F #1}}
+%D \stoptyping
+%D
+%D This macro places the accent \accent"7F {} on top of an~e
+%D gives \"e. Some fonts however can have prebuild accents and
+%D use a more direct approach like
+%D
+%D \starttyping
+%D \def\"#1{\if#1e\char 235\else ... \fi}
+%D \stoptyping
+%D
+%D The latter approach is not used in \CONTEXT, because we
+%D store relevant combinations of accents and characters in
+%D individual macros.
+
+%D We define character substitutes and commands with definition
+%D commands like:
+%D
+%D \starttyping
+%D \startcoding[texnansi]
+%D
+%D \defineaccent " a 228
+%D \defineaccent ^ e 234
+%D \defineaccent ' {\dotlessi} 237
+%D
+%D \definecharacter ae 230
+%D \definecharacter oe 156
+%D
+%D \definecommand b \texnansiencodedb
+%D \definecommand c \texnansiencodedc
+%D
+%D \stopcoding
+%D \stoptyping
+%D
+%D The last argument of \type{\defineaccent} and
+%D \type{\definecharacter} tells \TEX\ the position of the
+%D accented character in the encoding vector. In order to
+%D complish this, we tag each implementation with the character
+%D coding identifier. We therefore need two auxiliary variables
+%D \type{\characterencoding} and \type{\nocharacterencoding}. These
+%D contain the current and default encoding vectors and both
+%D default to the \PLAIN\ one.
+
+\edef\characterencoding {@\s!default @}
+\edef\nocharacterencoding {@\s!default @}
+\edef\charactermapping {@\s!default @}
+
+% todo, else \d j == \dj, print file and check
+
+\def\accentprefix {}%{*}
+\def\commandprefix {}%{=}
+\def\characterprefix{}%{-}
+
+%D \macros
+%D {startcoding, reducetocoding}
+%D
+%D Before we can redefine accents and special characters, we
+%D have to tell \CONTEXT\ what encoding is in force. The next
+%D command is responsible for doing this and also takes care of
+%D the definition of the recoding commands. We use the \type
+%D {\start}||\type {\stop}||commands for definitions and the
+%D \type {\reduceto}||command for local switching to
+%D simplified commands.
+
+% etex : \ifcsname
+
+\def\justhandleaccent#1#2% \empty makes #2={} save % no \unexpanded
+ {\ifundefined{\accentprefix\characterencoding#1\string#2\empty}%
+ #2%
+ \else
+ \csname\accentprefix\characterencoding#1\string#2\empty\endcsname
+ \fi}
+
+\def\justhandlecommand#1% % no \unexpanded, otherwise pdfdoc will fail
+ {\ifundefined{\commandprefix\characterencoding#1}% as well as hyph patterns
+ #1%
+ \else
+ \csname\commandprefix\characterencoding#1\endcsname
+ \fi}
+
+\def\enableencoding
+ {\dodoubleempty\doenableencoding}
+
+\def\doenableencoding[#1][#2]% main fallback
+ {\iffirstargument\edef\characterencoding{@#1@}\fi
+ \edef\nocharacterencoding{@\ifsecondargument#2\else\s!default\fi @}%
+ \synchronizepatterns}
+
+\edef\xnocharacterencoding{@\s!default @}
+
+\def\fastenableencoding#1%
+ {\edef\characterencoding{@#1@}%
+ \let\nocharacterencoding\xnocharacterencoding}
+
+\def\startencoding
+ {\dodoubleempty\dostartencoding}
+
+\def\dostartencoding[#1][#2]% encoding regime
+ {%\showmessage\m!encodings1{#1}%
+ \pushmacro\characterencoding
+ \pushmacro\currentregime
+ \pushmacro\dohandleaccent % still needed?
+ \pushmacro\dohandlecommand % still needed?
+ \pushmacro\doautosetregime
+ \let\dohandleaccent\donthandleaccent % still needed?
+ \let\dohandlecommand\donthandlecommand % still needed?
+ %let\definesortkey\savesortkey
+ \edef\characterencoding{@#1@}%
+ \doifelsenothing{#2}%
+ {\let\doautosetregime\gobbletwoarguments}
+ {\def\currentregime{#2}}}
+
+\def\stopencoding
+ {\popmacro\doautosetregime
+ \popmacro\dohandlecommand % still needed?
+ \popmacro\dohandleaccent % still needed?
+ \popmacro\currentregime
+ \popmacro\characterencoding}
+
+% probably obsolete (hm, not yet)
+
+\def\reducetocoding[#1]% use grouped!
+ {\doifsomething{#1}
+ {\let\dohandleaccent \justhandleaccent
+ \let\dohandlecommand\justhandlecommand
+ \enableencoding[#1]%
+ \enablelanguagespecifics[\currentlanguage]}}
+
+\let\startcoding \startencoding
+\def\stopcoding {\stopencoding}
+\let\enablecoding \enableencoding
+
+%D The use of these macros are not limited to font
+%D definition files, but may also be used when loading
+%D patterns.
+
+%D \macros
+%D {definesortkey,flushsortkeys,flushsortkey}
+%D
+%D Yet another definition concerns sorting of indexes and
+%D lists.
+%D
+%D \starttyping
+%D \definesortkey {\'e} {e} {a} {\'e}
+%D \stoptyping
+%D
+%D The first argument denotes the string to be treated. The
+%D second argument is the raw replacement, while the third
+%D argument determines the sort order given the replacement.
+%D The last argument is used as entry in the index (a, b, etc).
+%D
+%D The keys can be flushed using \type {\flushsortkeys}
+%D which in turn results in a sequence of calls to \type
+%D {\flushsortkey}, a macro taking 4~arguments.
+%D
+%D This mechanism is currently being tested and subjected to
+%D changes! Obsolete:
+
+\let\definesortkey\gobblefourarguments
+\let\savesortkey \gobblefourarguments
+\let\flushsortkeys\relax
+\let\flushsortkey \relax
+
+%D \macros
+%D {defineaccent, definecharacter, definecommand}
+%D
+%D The actual definition of accents, special characters and
+%D commands is done with the next three commands.
+
+\def\defineaccent
+ {\protectfontcharacters
+ \dodefineaccent}
+
+\def\dodefineaccent#1 #2 %
+ {\unprotectfontcharacters
+ \dododefineaccent#1 #2 }
+
+\def\dododefineaccent#1 #2 #3 %
+ {\setvalue{#1}{\dohandleaccent{#1}}%
+ \doifnumberelse{\string#3}
+ {\setvalue{\accentprefix\characterencoding#1\string#2}{\char#3 }} % space added
+ {\setvalue{\accentprefix\characterencoding#1\string#2}{#3}}}
+
+\def\dohandleaccent#1#2%
+ {\ifcsname\accentprefix\characterencoding#1\string#2\empty\endcsname
+ \csname\accentprefix\characterencoding#1\string#2\empty\endcsname
+ \else\ifcsname\accentprefix\nocharacterencoding#1\string#2\empty\endcsname
+ \csname\accentprefix\nocharacterencoding#1\string#2\empty\endcsname
+ \else\ifcsname\accentprefix\characterencoding#1\endcsname
+ \csname\accentprefix\characterencoding#1\endcsname{#2}%
+ \else%\ifcsname\accentprefix\nocharacterencoding#1\endcsname
+ \csname\accentprefix\nocharacterencoding#1\endcsname{#2}%
+% \else
+% \donormaltextaccent{#1}{#2}%
+ \fi\fi\fi}%\fi}
+
+\def\patternchar#1 {\rawcharacter{#1}} % space is part of character definition !
+
+% \ifx \enablepatterntokens\undefined
+% \def\handlepatterntoken#1]{\csname#1\endcsname}
+% \fi
+
+% we need to postpone catcode changes, e.g. hr patterns
+% have \catcode" -> which fails when " is letter
+
+\def\pathypsettings
+ {\ifx \enablepatterntokens\undefined
+ \defineactivecharacter [ {\handlepatterntoken}%
+ \else
+ \enablepatterntokens
+ \fi
+ \let\dochar\thechr
+ \lccode16=16 % brrr, extra quote in ec (turkish)
+ \lccode17=17 % brrr, extra quote in ec (turkish)
+ \lccode`\-=`\-
+ \lccode`\'=`\'
+ \lccode`\"=`\"
+ \relax}
+
+\def\patterns {\pathypsettings\normalpatterns }
+\def\hyphenation{\pathypsettings\normalhyphenation}
+
+%D Because we don't want to use the second command grouped, we
+%D (re)define it as follows:
+
+\def\hyphenation
+ {\begingroup\def\hyphenation{\normalhyphenation{\the\scratchtoks}\endgroup}%
+ \pathypsettings\afterassignment\hyphenation\scratchtoks=}
+
+%D This is not needed for patterns because they are loaded grouped
+%D anyway and it saves us an assignment. Can go ... no longer
+%D shared patterns.
+
+\def\startpatternloading#1#2#3% % we should use \everypatternloading
+ {\startreadingfile
+ \bgroup
+ % let's get rid of interfering stuff
+ \let\everyjob\scratchtoks
+ \let\message \gobbleoneargument
+ % we want direct characters
+ \let\char\patternchar
+ \doifelsenothing{#2}{\enableencoding[ec]}{\enableencoding[#2]}%
+ \doifelsenothing{#3}{\enablemapping [ec]}{\enablemapping [#3]}%
+ \expanded{\doifinstring{\f!languageprefix}{#1}}
+ {\ifx \enablepatternxml\undefined \else
+ \enablepatternxml
+ \fi}%
+ \let\dohandleaccent\normaldohandleaccent}
+
+\def\stoppatternloading
+ {\egroup
+ \stopreadingfile}
+
+ \def\thechr#1{\char#1 } % just in case \relax interferes
+\unexpanded\def\numchr#1{\char#1\relax}
+\unexpanded\def\strchr#1{\csname#1\endcsname}
+
+\let\dochar\numchr
+
+\def\startdirectcharacters {\pushmacro\dochar \let\dochar\thechr}
+\def\stopdirectcharacters {\popmacro \dochar}
+
+\def\definecharacter#1 #2 %
+ {\ifundefined{#1}\setvalue{#1}{\dohandlecharacter{#1}}\fi
+ \doifnumberelse{\string#2}
+ {\setvalue{\characterprefix\characterencoding\string#1}{\dochar{#2}}%
+ \doautosetregime{#1}{#2}}
+ {\setvalue{\characterprefix\characterencoding\string#1}{#2}}}
+
+\def\dohandlecharacter#1%
+ {\csname\characterprefix\ifcsname\characterprefix\characterencoding#1\endcsname
+ \characterencoding\else\nocharacterencoding\fi#1\endcsname}
+
+% \def\fallbackpatternchar{x} % makes no sense, duplicate patterns
+
+\def\defaultcharacter#1%
+ {\csname\characterprefix\nocharacterencoding\strippedcsname#1\endcsname}
+
+%D Instead of numbers, a command may be entered.
+
+\def\definecommand#1 #2 %
+ {\setvalue{\string#1}{\dohandlecommand{#1}}%
+ %\redefinecommand #1 % just to be sure
+ \setvalue{\commandprefix\characterencoding\string#1}{#2}}
+
+%D Here we see that redefining accents is characters is more
+%D or less the same as redefining commands. We also could have
+%D said:
+%D
+%D \starttyping
+%D \def\defineaccent#1 #2 {\definecommand#1\string#2 \char}
+%D \def\definecharacter#1 {\definecommand#1 \char}
+%D \stoptyping
+
+%D \macros
+%D {defineaccentcommand}
+%D
+%D When needed, one can overload the default positions of the
+%D accents. The \PLAIN\ \TEX\ defaults are:
+%D
+%D \starttyping
+%D \defineaccentcommand ` 18
+%D \defineaccentcommand ' 19
+%D \defineaccentcommand v 20
+%D \defineaccentcommand u 21
+%D \defineaccentcommand = 22
+%D \defineaccentcommand ^ 94
+%D \defineaccentcommand . 95
+%D \defineaccentcommand H 125 % "7D
+%D \defineaccentcommand ~ 126 % "7E
+%D \defineaccentcommand " 127 % "7F
+%D \stoptyping
-\endXETEX
+\def\defineaccentcommand
+ {\protectfontcharacters
+ \dodefineaccentcommand}
+
+\def\dodefineaccentcommand#1 #2 % \string toegevoegd
+ {\doifnumberelse{\string#2}
+ {\setvalue{\accentprefix\characterencoding\string#1}##1{{\accent#2 ##1}}}
+ {\setvalue{\accentprefix\characterencoding\string#1}##1{{#2##1}}}%
+ \unprotectfontcharacters}
+
+%D We don't have to define them for the default \PLAIN\ case.
+%D Commands may be used instead of character codes.
+
+%D \macros
+%D {redefinecommand}
+%D
+%D Redefinition of encoding dependant commands like \type{\b}
+%D and \type{\c} can be triggered by:
+%D
+%D \starttyping
+%D \redefinecommand b % something math
+%D \redefinecommand c % something math
+%D \stoptyping
+%D
+%D Handling of characters is easier than handling accents
+%D because here we don't have to take care of arguments. We
+%D just call for the right glyph in the right place.
+%D
+%D The \type{\next} construction permits handling of commands
+%D that take arguments. This means that we can use this
+%D command to redefine accent handling commands too
+%D (although today the next is not needed any longer in test
+%D macros).
+
+\def\redefinecommand#1 %
+ {% no \unexpanded, else pdfdoc fails
+ \setvalue{\string#1}{\dohandlecommand{#1}}}%
+
+\def\dohandlecommand#1%
+ {\csname\commandprefix
+ \ifcsname\commandprefix\characterencoding#1\endcsname
+ \characterencoding
+ \else
+ \nocharacterencoding
+ \fi
+ #1\endcsname}
+
+%D \macros
+%D {currentencoding, currentmapping}
+%D
+%D When we show 'm, we don't want to see the protection
+%D measures.
+
+\def\currentencoding{\@EA\dopureencodingname\characterencoding}
+\def\currentmapping {\@EA\dopureencodingname\charactermapping }
+
+\def\dopureencodingname @#1@{#1}
+
+\def\pureencodingname#1{\@EA\dopureencodingname#1}
+
+%D \macros
+%D {showaccents, showcharacters,
+%D showcharacterbounds, showhyphenations}
+%D
+%D Encoding is a tricky business. Therefore we provide a
+%D a few macros that show most of the characters involved. The
+%D next two tables show the result of \type {\showaccents}.
+%D
+%D \placetable
+%D {The special glyphs in default encoding.}
+%D {\showaccents}
+%D
+%D \placetable
+%D {The special glyphs in texnansi encoding.}
+%D {\switchtobodyfont[lbr]\showaccents}
+%D
+%D The command
+%D
+%D \starttyping
+%D \showhyphenations{doordefini\"eren}
+%D \stoptyping
+%D
+%D can be used to check the correct loading of hyphenation
+%D patterns.
+
+\fetchruntimecommand \showaccents {\f!encodingprefix\s!run.mkii}
+\fetchruntimecommand \showcharacters {\f!encodingprefix\s!run.mkii}
+\fetchruntimecommand \showcharacterbounds {\f!encodingprefix\s!run.mkii}
+\fetchruntimecommand \showhyphenations {\f!encodingprefix\s!run.mkii}
+\fetchruntimecommand \showmapping {\f!encodingprefix\s!run.mkii}
+
+%D \macros
+%D {everyuppercase, EveryUppercase,
+%D everyuppercase, EveryUppercase}
+%D
+%D When we want to uppercase strings of characters, we have to
+%D take care of those characters that have a special meaning or
+%D are only accessible by means of macros. The next hack was
+%D introduced when Tobias Burnus started translating head and
+%D label texts into spanish and italian. The first application
+%D of this token register therefore can be found in the module
+%D that deals with these texts.
+
+\newevery \everyuppercase \EveryUppercase
+\newevery \everylowercase \EveryLowercase
+
+%D This magic trick maps takes care of mapping from lower to
+%D upper case and reverse.
+
+\def\reloadmapping{\the\executeifdefined{\@cas@\charactermapping}\emptytoks}
+
+\appendtoks\let\setuppercasecom\setcasecom\to\everyuppercase
+\appendtoks\let\setlowercasecom\setcasecom\to\everylowercase
+
+\appendtoks\reloadmapping\to\everyuppercase % slow, will be sped up
+\appendtoks\reloadmapping\to\everylowercase % slow, will be sped up
+
+\newtoks\everyULmap
+
+\appendtoks\let\remapcase\remapuppercase\the\everyULmap\to\everyuppercase
+\appendtoks\let\remapcase\remaplowercase\the\everyULmap\to\everylowercase
+
+\let\remapcase\gobbletwoarguments
+
+\def\remapuppercase#1#2{\let#2#1} % more efficient:
+\def\remaplowercase#1#2{\let#1#2} \let\remaplowercase\let
+
+\def\defineLCcharacter #1 #2 %
+ {\appendtoks\let\to\everylowercase
+ \@EA\appendtoks\csname#1\endcsname\to\everylowercase
+ \@EA\appendtoks\csname#2\endcsname\to\everylowercase}
+
+\def\defineUCcharacter #1 #2 %
+ {\appendtoks\let\to\everyuppercase
+ \@EA\appendtoks\csname#1\endcsname\to\everyuppercase
+ \@EA\appendtoks\csname#2\endcsname\to\everyuppercase}
+
+\def\defineULcharacter #1 #2 %
+ {\appendtoks\remapcase\to\everyULmap
+ \@EA\appendtoks\csname#1\endcsname\to\everyULmap
+ \@EA\appendtoks\csname#2\endcsname\to\everyULmap}
+
+% slightly faster with \smallcapped's but far more hash and stringspace
+%
+% \newif\ifuppercase \appendtoks\uppercasetrue\to\everyuppercase
+% \newif\iflowercase \appendtoks\lowercasetrue\to\everylowercase
+%
+% \def\defineULcharacter #1 #2 %
+% {\def\!!stringa{@#1}\@EA\letvalue\@EA\!!stringa\csname#1\endcsname
+% \def\!!stringa{@#2}\@EA\letvalue\@EA\!!stringa\csname#2\endcsname
+% \setvalue{#1}{\getvalue{@\ifuppercase#2\else#1\fi}}%
+% \setvalue{#2}{\getvalue{@\iflowercase#1\else#2\fi}}}
+
+% 2 = tricky, since expanding \definedfont[lowcasename] ... goes wrong
+
+\chardef\uppercasemode\plusthree % 0=ignore 1=normal 2=expand 3=auto
+\chardef\casecommode \plusone % 0=noexpand 1=expand
+
+\def\setcasecom #1#2{\def#1{\ifcase\casecommode\noexpand#1\else#2\fi}}
+
+% \def\OEPS{whatever}
+%
+% \startmapping[ec]
+% \defineuppercasecom \oeps {\getvalue{OEPS}}
+% \stopmapping
+%
+% \WORD{xx \oeps}
+
+\def\douppercase#1%
+ {\bgroup
+ \let\douppercase\firstofoneargument
+ \the\everyuppercase % currently also checks uppercasemode
+ \let\dochar\rawcharacter
+ \ifcase\uppercasemode
+ #1%
+ \or % No expansion here, otherwise \getvalue problems! Default!!!
+ %\edef\next{#1}% keep this to prevent roll back
+ %\uppercase\expandafter{\next}% keep this to prevent roll back
+ \uppercase{#1}%
+ \or
+ \chardef\casecommode\zerocount
+ \let\docasecom\firstoftwoarguments
+ \edef\ascii{#1}%
+ \edef\ascii{\expandafter\uppercase\expandafter{\ascii}}% needed when in regime
+ \chardef\casecommode\plusone
+ \ascii
+ \else
+ % mode three may trigger setting 2 elsewhere (e.g. regime test)
+ \uppercase{#1}%
+ \fi
+ \egroup}
+
+\prependtoksonce
+ \doifnot\currentregime\s!default
+ {\ifnum\uppercasemode=\plusthree \chardef\uppercasemode\plustwo \fi}%
+\to \everyuppercase
+
+%D \macros
+%D {everysanitize, EverySanitize}
+%D
+%D Whenever we are sanitizing strings, like we sometimes do
+%D when we deal with specials, the next token register can be
+%D called.
+
+\newevery \everysanitize \EverySanitize
+
+%D \macros
+%D {defineuclass,defineudigit,udigit}
+%D
+%D The next few macros are experimental and needed for unicoded
+%D chinese characters.
+
+\def\defineuclass #1 #2 #3 %
+ {\setvalue{uc\the\numexpr#2*256+#3\relax}{#1}}
+
+\def\defineudigit #1 #2 #3 {\setvalue{\characterencoding uc#1}{\uchar{#2}{#3}}}
+
+%D It may look strange, but for the moment, we want the encoding
+%D to be part of the digit specification. This may change!
+
+\unexpanded\def\udigit#1#2{\getvalue{@#1@uc\number#2}}
+
+%D \macros
+%D {uchar, octuchar, hexuchar}
+
+\ifx\uchar\undefined \def\uchar#1#2{(\number#1,\number#2)} \fi
+
+\def\octuchar#1#2{\uchar{`#1}{`#2}}
+\def\hexuchar#1#2{\uchar{"#1}{"#2}}
+
+%D Basics and fallbacks.
+
+\newif\ifignoreaccent
+
+\let\textaccent \accent
+\let\normaltextaccent\textaccent
+
+% ** we will explicitly embrace the two arguments, since in definitions
+% this may not be the case, and we don't want faulty expansions like
+% "\dobuildtextaccent \char 18 a" but "\dobuildtextaccent {\char 18}{a}"
+% instead
+
+\def\buildmathaccent#1%
+ {\mathaccent#1 }
+
+\def\buildtextaccent#1#2% **
+ {\ifignoreaccent
+ \expandafter\nobuildtextaccent
+ \else
+ \expandafter\dobuildtextaccent
+ \fi{#1}{#2}}
+
+\unexpanded\def\nobuildtextaccent#1#2%
+ {#2}
+
+\unexpanded\def\dobuildtextaccent#1#2%
+ {{\let\char\normalaccent#1\let\char\normalchar#2}}
+
+% some fake ones, name will change into build
+
+\unexpanded\def\bottomaccent#1#2#3#4#5% down right slantcorrection accent char
+ {\dontleavehmode % why this align mess
+ \vtop
+ {\forgetall
+ \baselineskip\zeropoint
+ \lineskip#1%
+ \everycr\emptytoks
+ \tabskip\zeropoint
+ \lineskiplimit\zeropoint
+ \setbox0\hbox{#4}%
+ \halign
+ {##\crcr\hbox{#5}\crcr
+ \hidewidth
+ \hskip#2\wd0
+ \hskip-#3\slantperpoint % in plain 1ex * dimenless value
+ \vbox to .2ex{\box0\vss}\hidewidth
+ \crcr}}}
+
+\def\buildtextmacron {\bottomaccent{.25ex}{0}{15}{\textmacron}}
+\def\buildtextbottomdot{\bottomaccent{.25ex}{0}{5}{\textbottomdot}}
+\def\buildtextcedilla {\bottomaccent{0ex}{0}{5}{\textcedilla}}
+\def\buildtextogonek {\bottomaccent{-.1ex}{.5}{0}{\textogonek}}
+
+%D A collectors item:
+
+\def\buildtextbottomcomma{\bottomaccent{.15ex}{0}{5}{\tx,}}
+
+%D Rarely needed but there:
+
+\unexpanded\def\topaccent#1#2#3#4#5% down right slantcorrection accent char
+ {\dontleavehmode
+ \bgroup
+ \setbox0\hbox{#4}%
+ \setbox2\hbox{#5}%
+ \hbox to \wd2 \bgroup
+ \hss\copy2\hss
+ \hskip-\wd2
+ \hss\hskip#2\wd0\hskip-#3\slantperpoint\raise#1\hbox{#4}\hss
+ \egroup
+ \egroup}
+
+\def\buildtextgrave{\topaccent{0pt}{0}{15}{\textgrave}} % e.g.
+
+% \definecharacter schwa {\hbox{\rotate[rotation=180,location=high]{\hbox{e}}}}
+% \definecharacter schwagrave {\buildtextgrave\schwa}
+
+% math stuff, will change
+
+\def\definemathaccent#1 #2%
+ {\setvalue{\string#1}{#2}%
+ \setvalue{normalmathaccent\string#1}{#2}}
+
+\def\donormalmathaccent#1%
+ {\getvalue{normalmathaccent\string#1}}
+
+%D Some precautions:
+
+\ifx\usepdffontresource\undefined
+ \def\usepdffontresource #1 {} % this will be defined elsewhere
+\fi
+
+\def\donthandleaccent #1{\expandafter\string\csname#1\endcsname\space}
+\def\donthandlecommand #1{\expandafter\string\csname#1\endcsname\space}
+\def\donthandlecharacter #1{\expandafter\string\csname#1\endcsname\space}
+
+\def\stringifyhandleaccent #1{\strchr{#1}}
+\def\stringifyhandlecommand #1{\strchr{#1}}
+\def\stringifyhandlecharacter#1{\strchr{#1}}
+
+\def\keephandleaccent #1{\expandafter\noexpand\csname#1\endcsname}
+\def\keephandlecommand #1{\expandafter\noexpand\csname#1\endcsname}
+\def\keephandlecharacter #1{\expandafter\noexpand\csname#1\endcsname}
+
+\def\handleaccent #1{\csname#1\endcsname}
+\def\handlecommand #1{\csname#1\endcsname}
+\def\handlecharacter #1{\csname#1\endcsname}
+
+\def\dontexpandencoding
+ {\let\dohandleaccent \donthandleaccent
+ \let\dohandlecommand \donthandlecommand
+ \let\dohandlecharacter\donthandlecharacter}
+
+\def\keepencodedtokens
+ {\let\dohandleaccent \keephandleaccent
+ \let\dohandlecommand \keephandlecommand
+ \let\dohandlecharacter\keephandlecharacter}
+
+\def\literateencodedtokens
+ {% \let\dohandleaccent \keephandleaccent
+ % \let\dohandlecommand \keephandlecommand
+ \let\dohandlecharacter\keephandlecharacter}
+
+\def\stringifyencodedtokens
+ {% \let\dohandleaccent \stringifyhandleaccent
+ % \let\dohandlecommand \stringifyhandlecommand
+ \let\dohandlecharacter\stringifyhandlecharacter}
+
+\unexpanded\def\uhandleaccent #1{\csname#1\endcsname}
+\unexpanded\def\uhandlecommand #1{\csname#1\endcsname}
+\unexpanded\def\uhandlecharacter#1{\csname#1\endcsname}
+
+\def\dontexpandencodedtokens
+ {\def\dohandleaccent {\uhandleaccent}%
+ \def\dohandlecommand {\uhandlecommand}%
+ \def\dohandlecharacter{\uhandlecharacter}}
+
+% no longer: \def\convertencodedtokens{\dontexpandencoding} but:
+
+\def\convertencodedtokens{\stringifyencodedtokens}
+
+% test case:
+%
+% \enableregime[cp1250]
+% \mainlanguage[cz]
+%
+% \starttext
+%
+% \title{Ϭuޯu餭 kon졺p
+% \placelist[chapter][criterium=all]
+%
+% \startbuffer
+% <chapter>
+% <title>Ϭuޯu餭 kon졺p󛱴itle>
+% </chapter>
+% \stopbuffer
+%
+% \defineXMLenvironment
+% [chapter]
+% {\defineXMLsave[title]}
+% {\expanded{\chapter{\XMLflush{title}}}}
+% \processXMLbuffer
+%
+% \setuphead[chapter][expansion=yes]
+% \defineXMLenvironment
+% [chapter]
+% {\defineXMLsave[title]}
+% {\chapter{\XMLflush{title}}}
+% \processXMLbuffer
+%
+% \stoptext
+
+%D Still valid? To be checked:
+
+\def\doignoreaccent #1#2{\string#1\string#2}%
+\def\doignorecommand #1{\string#1}
+\def\doignorecharacter#1{\string#1}
+
+\def\ignoreencoding
+ {\let\dohandleaccent \doignoreaccent
+ \let\dohandlecommand \doignorecommand
+ \let\dohandlecharacter\doignorecharacter}
+
+\appendtoks
+ \ignoreencoding
+\to \everycleanupfeatures
+
+\appendtoks
+ \keepencodedtokens
+\to \everysafeexpanded
+
+%D Now we will not redefine any more, so:
+
+\let\normaldohandleaccent \dohandleaccent
+\let\normaldohandlecharacter\dohandlecharacter
+
+\definecommand ` {\buildtextaccent\textgrave}
+\definecommand ' {\buildtextaccent\textacute}
+\definecommand r {\buildtextaccent\textring}
+\definecommand v {\buildtextaccent\textcaron}
+\definecommand u {\buildtextaccent\textbreve}
+\definecommand = {\buildtextaccent\textmacron}
+\definecommand ^ {\buildtextaccent\textcircumflex}
+\definecommand . {\buildtextaccent\textdotaccent}
+\definecommand H {\buildtextaccent\texthungarumlaut}
+\definecommand ~ {\buildtextaccent\texttilde}
+\definecommand " {\buildtextaccent\textdiaeresis}
+
+\definecommand c {\buildtextcedilla}
+\definecommand b {\buildtextmacron}
+\definecommand d {\buildtextbottomdot}
+\definecommand k {\buildtextogonek}
+
+\definemathaccent acute {\buildmathaccent\mathacute}
+\definemathaccent grave {\buildmathaccent\mathgrave}
+\definemathaccent ddot {\buildmathaccent\mathddot}
+\definemathaccent tilde {\buildmathaccent\mathtilde}
+\definemathaccent bar {\buildmathaccent\mathbar}
+\definemathaccent breve {\buildmathaccent\mathbreve}
+\definemathaccent check {\buildmathaccent\mathcheck}
+\definemathaccent hat {\buildmathaccent\mathhat}
+\definemathaccent vec {\buildmathaccent\mathvec}
+\definemathaccent dot {\buildmathaccent\mathdot}
+\definemathaccent widetilde {\buildmathaccent\mathwidetilde}
+\definemathaccent widehat {\buildmathaccent\mathwidehat}
+
+\useencoding[def] % defaults (partly simplified)
+\useencoding[acc] % accent commands
+\useencoding[raw] % simplified (incomplete)
+\useencoding[com] % a few commands
+\useencoding[cas] % case mapping, not needed in mkiv
+\useencoding[mis] % a few commands
+
+%D We preload several encodings:
+
+\ifnum\texengine=\xetexengine
+ \setupencoding[\s!default=\s!default]
+\else
+ \useencoding[ans,il2,ec,tbo,pdf,pol,qx,t5,cyr,agr] % pol and il2 will go away, not needed in mkiv, uc removed
+ \useencoding[032,033,037] % fallbacks for some unicode chars
+ \setupencoding[\s!default=ec] % was: [\s!default=\s!default]
+\fi
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/enco-ini.mkiv b/Master/texmf-dist/tex/context/base/enco-ini.mkiv
index cf29b0323d8..112c5596a8a 100644
--- a/Master/texmf-dist/tex/context/base/enco-ini.mkiv
+++ b/Master/texmf-dist/tex/context/base/enco-ini.mkiv
@@ -1,46 +1,103 @@
%D \module
%D [ file=enco-ini,
-%D version=2007.02.19,
+%D version=2007.02.19, % 2000.12.27, % 1998.12.03,
%D title=\CONTEXT\ Encoding Macros,
%D subtitle=Initialization,
%D author=Hans Hagen,
%D date=\currentdate,
-%D copyright=\PRAGMA]
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
%C
%C This module is part of the \CONTEXT\ macro||package and is
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-%D In the end we will cleanup enco-ini.tex!
+%D This is stripped down version of th eoriginal enco-ini.tex
+%D file. For more details you might want to study the \MKII\ file
+%D but since \LUATEX\ is unicode inside we need less code.
-% could also be a new kind of table \definecharacter {name} {char} {fallback}
+% When dealing with characters we have four cases to take into account
+% when moving from mkii to mkiv:
-\startruntimectxluacode
- characters.context.rehash()
-\stopruntimectxluacode
+% 1. <byte 200> => ref to slot 200 in current font
+% 2. \char 200 => ref to slot 200 in current font
+% 3. <active 200> => can (e.g.) map to another slot in current font
+% 4. \namedglyph => can map to some slot in some font
-\ctxlua{characters.context.define()}
+% Using case 2 for special characters is doomed to fail because we are not going
+% to intercept these on the fly as happens automatically with traditional font
+% encoding handling. We could do that in a node pass but it's not worth the effort
+% because we seldom use this case in a document source.
-\startextendcatcodetable\ctxcatcodes \ctxlua{characters.context.activate()}\stopextendcatcodetable
-\startextendcatcodetable\xmlcatcodesn\ctxlua{characters.context.activate()}\stopextendcatcodetable
-\startextendcatcodetable\xmlcatcodese\ctxlua{characters.context.activate()}\stopextendcatcodetable
-\startextendcatcodetable\xmlcatcodesr\ctxlua{characters.context.activate()}\stopextendcatcodetable
+% We can consider using utf as internal format for mkii. The main reason for not
+% doing this before was that it was slow. On the other hand, it would make dealing
+% with utility files easier. However, we've now kind of frozen mkii.
-% [[[\utfchar{8194}]]][[[\utfchar{8195}]]] \par
-% $[[[\utfchar{8194}]]][[[\utfchar{8195}]]]$\par
-% {\setcatcodetable\ctxcatcodes [[[\utfchar{8194}]]][[[\utfchar{8195}]]]}\par
-% {\setcatcodetable\texcatcodes [[[\utfchar{8194}]]][[[\utfchar{8195}]]]}\par
-% {\setcatcodetable\prtcatcodes [[[\utfchar{8194}]]][[[\utfchar{8195}]]]}\par
-% \startXMLdata
-% <oeps>((( )))</oeps>
-% \stopXMLdata
-% $\alpha\char945 \utfchar{945} abc 123$
+\writestatus{loading}{ConTeXt Encoding Macros / Initialization}
\unprotect
+%D Quite some commands are now obsolete. We keep only a few commands
+%D around, just in case they are used in styles (and in for instance
+%D symb and xtag files).
+
+\def\startencoding [#1]{} % used in symb
+\let\stopencoding \relax
+\def\setupencoding [#1]{}
+\def\enablemapping [#1]{}
+\def\enableencoding[#1]{}
+
+\def\currentencoding{utf}
+\def\currentmapping {utf}
+\let\defaultencoding\s!default
+
+% todo:
+
+% \def\showaccents {\f!encodingprefix\s!run}
+% \def\showcharacters {\f!encodingprefix\s!run}
+% \def\showcharacterbounds {\f!encodingprefix\s!run}
+% \def\showhyphenations {\f!encodingprefix\s!run}
+% \def\showmapping {\f!encodingprefix\s!run}
+
+%D \macros
+%D {defineaccent, definecharacter, definecommand}
+
+\def\defineaccent#1 #2 #3 %
+ {\setevalue{\string#1}{\noexpand\dohandleaccent{\string#1}}%
+ \setvalue{\??ac\string#1\string#2}{#3}}
+
+\def\dohandleaccent#1#2%
+ {\csname\??ac\string#1\string#2\endcsname}
+
+\def\definecharacter#1 #2 %
+ {\doifnumberelse{\string#2}
+ {\setevalue{\string#1}{\utfchar{#2}}} % or {\expandafter\chardef\csname#1\endcsname#2\relax}
+ {\unexpanded\setvalue {\string#1}{#2}}}
+
+\def\definecommand#1 #2 %
+ {\unexpanded\setvalue{\string#1}{#2}}
+
+%D \macros
+%D {everyuppercase, EveryUppercase,
+%D everyuppercase, EveryUppercase,
+%D everysanitize, EverySanitize}
+
+\newevery \everyuppercase \EveryUppercase
+\newevery \everylowercase \EveryLowercase
+\newevery \everysanitize \EverySanitize
+
+%D Some saved meanings (not really needed):
+
+\let\textaccent \accent
+\let\normaltextaccent\accent
+
+%D Accent handling (try to avoid this):
+
\newbox\accenttestbox
-\unexpanded\def\dobuildtextaccent#1#2%
+\def\buildmathaccent#1%
+ {\mathaccent#1 }
+
+\unexpanded\def\buildtextaccent#1#2%
{\begingroup
\global\setbox\accenttestbox\hbox{#1}%
\scratchcounter\ctxlua{characters.charcode(\number\accenttestbox)}%
@@ -48,47 +105,390 @@
\relax#2%
\endgroup}
-\useencoding[032,033,037] % fallbacks for some unicode chars, todo
+\unexpanded\def\bottomaccent#1#2#3#4#5% down right slantcorrection accent char
+ {\dontleavehmode % why this align mess
+ \vtop
+ {\forgetall
+ \baselineskip\zeropoint
+ \lineskip#1%
+ \everycr\emptytoks
+ \tabskip\zeropoint
+ \lineskiplimit\zeropoint
+ \setbox0\hbox{#4}%
+ \halign
+ {##\crcr\hbox{#5}\crcr
+ \hidewidth
+ \hskip#2\wd0
+ \hskip-#3\slantperpoint % in plain 1ex * dimenless value
+ \vbox to .2ex{\box0\vss}\hidewidth
+ \crcr}}}
-\setupencoding[\s!default=ec] % for the moment keep it this way, till fonts are there
+\def\buildtextmacron {\bottomaccent{.25ex}{0}{15}{\textmacron}}
+\def\buildtextbottomdot {\bottomaccent{.25ex}{0}{5}{\textbottomdot}}
+\def\buildtextcedilla {\bottomaccent{0ex}{0}{5}{\textcedilla}}
+\def\buildtextogonek {\bottomaccent{-.1ex}{.5}{0}{\textogonek}}
+\def\buildtextbottomcomma{\bottomaccent{.15ex}{0}{5}{\tx,}}
-\protect \endinput
+\unexpanded\def\topaccent#1#2#3#4#5% down right slantcorrection accent char
+ {\dontleavehmode
+ \bgroup
+ \setbox0\hbox{#4}%
+ \setbox2\hbox{#5}%
+ \hbox to \wd2 \bgroup
+ \hss\copy2\hss
+ \hskip-\wd2
+ \hss\hskip#2\wd0\hskip-#3\slantperpoint\raise#1\hbox{#4}\hss
+ \egroup
+ \egroup}
+
+\def\buildtextgrave{\topaccent{0pt}{0}{15}{\textgrave}} % e.g.
+
+\def\definemathaccent#1 #2%
+ {\setvalue{#1}{\mathaccent#2 }}
+
+%D Math (will move):
+
+\definemathaccent acute \mathacute
+\definemathaccent grave \mathgrave
+\definemathaccent ddot \mathddot
+\definemathaccent tilde \mathtilde
+\definemathaccent bar \mathbar
+\definemathaccent breve \mathbreve
+\definemathaccent check \mathcheck
+\definemathaccent hat \mathhat
+\definemathaccent vec \mathvec
+\definemathaccent dot \mathdot
+\definemathaccent widetilde \mathwidetilde
+\definemathaccent widehat \mathwidehat
+
+% from enco-com:
+
+\def\AA{\Aring}
+\def\aa{\aring}
+\def\AE{\AEligature}
+\def\ae{\aeligature}
+\def\CC{\Ccedilla}
+\def\cc{\ccedilla}
+\def \L{\Lstroke}
+\def \l{\lstroke}
+\def \O{\Ostroke}
+\def \o{\ostroke}
+\def\OE{\OEligature}
+\def\oe{\oeligature}
+\def\SZ{\Ssharp}
+\def\sz{\ssharp}
+\def\SS{\ssharp}
+\def\IJ{\IJligature}
+\def\ij{\ijligature}
+\def \i{\dotlessi}
+\def \j{\dotlessj}
+
+% from enco-def:
+
+\def\dotlessI {I}
+\def\dotlessJ {J}
+
+\def\Ssharp {SS}
+
+\def\eszett {\ssharp}
+\def\Eszett {\Ssharp}
+
+\def\lslash {\lstroke}
+\def\Lslash {\Lstroke}
+\def\dslash {\dstroke}
+\def\Dslash {\Dstroke}
+\def\oslash {\ostroke}
+\def\Oslash {\Ostroke}
+\def\dcroat {\dstroke}
+\def\Dcroat {\Dstroke}
+
+\def\Kcedilla {\Kcommaaccent}
+\def\kcedilla {\kcommaaccent}
+\def\Lcedilla {\Lcommaaccent}
+\def\lcedilla {\lcommaaccent}
+\def\Ncedilla {\Ncommaaccent}
+\def\ncedilla {\ncommaaccent}
+\def\Rcedilla {\Rcommaaccent}
+\def\rcedilla {\rcommaaccent}
+
+\def\S {\sectionmark}
+\def\P {\paragraphmark}
+
+\def\aumlaut {\adiaeresis}
+\def\eumlaut {\ediaeresis}
+\def\iumlaut {\idiaeresis}
+\def\oumlaut {\odiaeresis}
+\def\uumlaut {\udiaeresis}
+\def\Aumlaut {\Adiaeresis}
+\def\Eumlaut {\Ediaeresis}
+\def\Iumlaut {\Idiaeresis}
+\def\Oumlaut {\Odiaeresis}
+\def\Uumlaut {\Udiaeresis}
+
+% for latex users
+
+\def\textS {\sectionmark}
+\def\textP {\paragraphmark}
+
+% for old times sake
+
+\def\textflorin{\fhook}
+\def\florin {\textflorin}
+\def\dollar {\textdollar}
+\def\pound {\textsterling}
+\def\sterling {\textsterling}
+\def\promille {\perthousand}
+\def\permille {\perthousand}
+\def\procent {\percent}
+\def\permine {\fakepermine}
+
+% some more
+
+\def\hyphen {\softhyphen}
+\def\compoundwordmark {\hyphen}
+\def\cwm {\hyphen}
+\def\nonbreakinghyphen{\hyphen}
+\def\breakinghyphen {\hyphen\prewordbreak}
+
+% quotes
+
+\def\lowerleftsingleninequote {\quotesinglebase}
+\def\lowerleftdoubleninequote {\quotedblbase}
+\def\lowerrightsingleninequote {\quotesinglebase}
+\def\lowerrightdoubleninequote {\quotedblbase}
+
+\def\upperleftsingleninequote {\quoteright}
+\def\upperleftdoubleninequote {\quotedblright}
+\def\upperrightsingleninequote {\quoteright}
+\def\upperrightdoubleninequote {\quotedblright}
-When dealing with characters we have four cases to take into account when moving
-from mkii to mkiv:
-
-1. <byte 200> => ref to slot 200 in current font
-2. \char 200 => ref to slot 200 in current font
-3. <active 200> => can (e.g.) map to another slot in current font
-4. \namedglyph => can map to some slot in some font
-
-Using case 2 for special characters is doomed to fail because we are not going
-to intercept these on the fly as happens automatically with traditional font
-encoding handling. We could do that in a node pass but it's not worth the effort
-because we seldom use this case in a document source.
-
-We can consider using utf as internal format for mkii. The main reason for not
-doing this before was that it was slow. On the other hand, it would make dealing
-with utility files easier.
-
-These are the only cases where char references are used:
-
-enco-def.tex : 46 : \definecharacter dotlessi {\char"10 }
-enco-def.tex : 47 : \definecharacter dotlessj {\char"11 }
-enco-def.tex : 54 : \definecharacter aeligature {\char26 } % "1A
-enco-def.tex : 55 : \definecharacter AEligature {\char29 } % "1D
-enco-def.tex : 58 : \definecharacter oeligature {\char27 } % "1B
-enco-def.tex : 59 : \definecharacter OEligature {\char30 } % "1E
-enco-def.tex : 61 : \definecharacter ssharp {\char25 } % "19
-enco-def.tex : 336 : \definecharacter Lstroke {\hsmash{\char32}L}
-enco-def.tex : 337 : \definecharacter lstroke {\hsmash{\char32}l}
-enco-def.tex : 338 : \definecharacter Ostroke {\char31 } % "1F
-enco-def.tex : 339 : \definecharacter ostroke {\char28 } % "1C
-enco-il2.tex : 147 : {\dontleavehmode{\char32l}}
-enco-il2.tex : 152 : \hbox to\wd0{\hss\char32L}%
-symb-eur.tex : 37 : \definesymbol [euro] [\getglyph{Euro}{\char160}]
-symb-glm.tex : 61 : \definesymbol [xleftguillemot] [\getglyph{Guil}{\char19}]
-symb-glm.tex : 62 : \definesymbol [xrightguillemot] [\getglyph{Guil}{\char20}]
-symb-glm.tex : 64 : \definesymbol [xguilsingleleft] [\getglyph{Guil}{\char14}]
-symb-glm.tex : 65 : \definesymbol [xguilsingleright] [\getglyph{Guil}{\char15}]
+\def\upperleftsinglesixquote {\quoteleft}
+\def\upperleftdoublesixquote {\quotedblleft}
+\def\upperrightsinglesixquote {\quoteleft}
+\def\upperrightdoublesixquote {\quotedblleft}
+\def\leftsubguillemot {\guilsingleleft}
+\def\rightsubguillemot {\guilsingleright}
+
+% obsolete:
+
+% \greekleftquot {[obsolete]}
+% \greekrightquot {[obsolete]}
+% \greekapostrophos {[obsolete]}
+% \greekupsilondialytika{[obsolete]}
+% \Ycaron {[obsolete]}
+% \ycaron {[obsolete]}
+
+% to be done in char-def:
+
+% \definecharacter cyrillicGUP {GUP}
+% \definecharacter cyrillicGHCRS {GHCRS}
+% \definecharacter cyrillicZHDSC {ZHDSC}
+% \definecharacter cyrillicKDSC {KDSC}
+% \definecharacter cyrillicKBEAK {KBEAK}
+% \definecharacter cyrillicKVCRS {KVCRS}
+% \definecharacter cyrillicNG {NG}
+% \definecharacter cyrillicOTLD {OTLD}
+% \definecharacter cyrillicY {Y}
+% \definecharacter cyrillicYHCRS {YHCRS}
+% \definecharacter cyrillicHDSC {HDSC}
+% \definecharacter cyrillicCHVCRS {CHVCRS}
+% \definecharacter cyrillicCHRDSC {CHRDSC}
+% \definecharacter cyrillicQ {Q}
+% \definecharacter cyrillicW {W}
+%
+% \definecharacter cyrillicgup {gup}
+% \definecharacter cyrillicghcrs {ghcrs}
+% \definecharacter cyrilliczhdsc {zhdsc}
+% \definecharacter cyrillickdsc {kdsc}
+% \definecharacter cyrillickbeak {kbeak}
+% \definecharacter cyrillickvcrs {kvcrs}
+% \definecharacter cyrillicng {ng}
+% \definecharacter cyrillicotld {otld}
+% \definecharacter cyrillicy {y}
+% \definecharacter cyrillicyhcrs {yhcrs}
+% \definecharacter cyrillichdsc {hdsc}
+% \definecharacter cyrillicchvcrs {chvcrs}
+% \definecharacter cyrillicchrdsc {chrdsc}
+% \definecharacter cyrillicq {q}
+% \definecharacter cyrillicw {w}
+
+% \definecharacter softhyphen 45
+% \definecharacter compoundwordmark 23
+
+% left-overs (some day in private unicode space, so that we can roundtrip)
+
+\unexpanded\def\textblacksquare {\dontleavehmode\hbox{\vrule\!!width.3\s!em\!!height.4\s!em\!!depth-.1\s!em}}
+\unexpanded\def\schwa {\hbox{\rotate[\c!rotation=180,\c!location=\v!high]{\hbox{e}}}}
+\unexpanded\def\schwagrave {\buildtextgrave\schwa}
+
+\unexpanded\def\normalcontrolspace{\getglyph{ComputerModernMono}{\char32}}
+\unexpanded\def\textvisiblespace {\fakecontrolspace}
+\unexpanded\def\fakecontrolspace {\let\normalcontrolspace\fakedcontrolspace}
+
+% helpers
+
+\def\fakepercent
+ {\mathematics{^{\scriptscriptstyle0}\kern-.25em/\kern-.2em_{\scriptscriptstyle0}}}
+
+\def\fakeperthousand
+ {\mathematics{^{\scriptscriptstyle0}\kern-.25em/\kern-.2em_{\scriptscriptstyle00}}}
+
+\def\fakepermine
+ {\dontleavehmode
+ \bgroup
+ \setbox\scratchbox\hbox
+ {\mathematics{+}}%
+ \hbox to \wd\scratchbox
+ {\hss\mathematics{^{\scriptscriptstyle-}\kern-.4em/\kern-.3em_{\scriptscriptstyle-}}\hss}%
+ \egroup}
+
+\def\fakedcontrolspace % can be virtual in luatex
+ {\dontleavehmode\hbox
+ {\scratchdimen.1ex%
+ \kern\scratchdimen
+ \vrule \!!width\scratchdimen \!!height5.5\scratchdimen\!!depth3\scratchdimen
+ \vrule \!!width\dimexpr.5em-4\scratchdimen\!!height -2\scratchdimen\!!depth3\scratchdimen
+ \vrule \!!width\scratchdimen \!!height5.5\scratchdimen\!!depth3\scratchdimen
+ \kern\scratchdimen}}
+
+% from enco-acc:
+
+\defineaccent ^ A {\Acircumflex} \defineaccent ^ a {\acircumflex}
+\defineaccent ^ C {\Ccircumflex} \defineaccent ^ c {\ccircumflex}
+\defineaccent ^ E {\Ecircumflex} \defineaccent ^ e {\ecircumflex}
+\defineaccent ^ G {\Gcircumflex} \defineaccent ^ g {\gcircumflex}
+\defineaccent ^ H {\Hcircumflex} \defineaccent ^ h {\hcircumflex}
+\defineaccent ^ I {\Icircumflex} \defineaccent ^ i {\icircumflex} \defineaccent ^ {\i} {\icircumflex}
+\defineaccent ^ J {\Jcircumflex} \defineaccent ^ j {\jcircumflex} \defineaccent ^ {\j} {\jcircumflex}
+\defineaccent ^ O {\Ocircumflex} \defineaccent ^ o {\ocircumflex}
+\defineaccent ^ S {\Scircumflex} \defineaccent ^ s {\scircumflex}
+\defineaccent ^ U {\Ucircumflex} \defineaccent ^ u {\ucircumflex}
+\defineaccent ^ W {\Wcircumflex} \defineaccent ^ w {\wcircumflex}
+\defineaccent ^ Y {\Ycircumflex} \defineaccent ^ y {\ycircumflex}
+
+\defineaccent ` A {\Agrave} \defineaccent ` a {\agrave}
+\defineaccent ` E {\Egrave} \defineaccent ` e {\egrave}
+\defineaccent ` I {\Igrave} \defineaccent ` i {\igrave} \defineaccent ` {\i} {\igrave}
+\defineaccent ` O {\Ograve} \defineaccent ` o {\ograve}
+\defineaccent ` U {\Ugrave} \defineaccent ` u {\ugrave}
+\defineaccent ` Y {\Ygrave} \defineaccent ` y {\ygrave}
+
+\defineaccent ~ A {\Atilde} \defineaccent ~ a {\atilde}
+\defineaccent ~ I {\Itilde} \defineaccent ~ i {\itilde} \defineaccent ~ {\i} {\itilde}
+\defineaccent ~ O {\Otilde} \defineaccent ~ o {\otilde}
+\defineaccent ~ U {\Utilde} \defineaccent ~ u {\utilde}
+\defineaccent ~ N {\Ntilde} \defineaccent ~ n {\ntilde}
+
+\defineaccent " A {\Adiaeresis} \defineaccent " a {\adiaeresis}
+\defineaccent " E {\Ediaeresis} \defineaccent " e {\ediaeresis}
+\defineaccent " I {\Idiaeresis} \defineaccent " i {\idiaeresis} \defineaccent " {\i} {\idiaeresis}
+\defineaccent " O {\Odiaeresis} \defineaccent " o {\odiaeresis}
+\defineaccent " U {\Udiaeresis} \defineaccent " u {\udiaeresis}
+\defineaccent " Y {\Ydiaeresis} \defineaccent " y {\ydiaeresis}
+
+\defineaccent ' A {\Aacute} \defineaccent ' a {\aacute}
+\defineaccent ' C {\Cacute} \defineaccent ' c {\cacute}
+\defineaccent ' E {\Eacute} \defineaccent ' e {\eacute}
+\defineaccent ' I {\Iacute} \defineaccent ' i {\iacute} \defineaccent ' {\i} {\iacute}
+\defineaccent ' L {\Lacute} \defineaccent ' l {\lacute}
+\defineaccent ' N {\Nacute} \defineaccent ' n {\nacute}
+\defineaccent ' O {\Oacute} \defineaccent ' o {\oacute}
+\defineaccent ' R {\Racute} \defineaccent ' r {\racute}
+\defineaccent ' S {\Sacute} \defineaccent ' s {\sacute}
+\defineaccent ' U {\Uacute} \defineaccent ' u {\uacute}
+\defineaccent ' Y {\Yacute} \defineaccent ' y {\yacute}
+\defineaccent ' Z {\Zacute} \defineaccent ' z {\zacute}
+
+\defineaccent . C {\Cdotaccent} \defineaccent . c {\cdotaccent}
+\defineaccent . E {\Edotaccent} \defineaccent . e {\edotaccent}
+\defineaccent . G {\Gdotaccent} \defineaccent . g {\gdotaccent}
+\defineaccent . I {\Idotaccent} \defineaccent . i {\idotaccent} \defineaccent . {\i} {\idotaccent}
+\defineaccent . Z {\Zdotaccent} \defineaccent . z {\zdotaccent}
+
+\defineaccent = A {\Amacron} \defineaccent = a {\amacron}
+\defineaccent = E {\Emacron} \defineaccent = e {\emacron}
+\defineaccent = I {\Imacron} \defineaccent = i {\imacron} \defineaccent = {\i} {\imacron}
+\defineaccent = O {\Omacron} \defineaccent = o {\omacron}
+\defineaccent = U {\Umacron} \defineaccent = u {\umacron}
+
+\defineaccent c C {\Ccedilla} \defineaccent c c {\ccedilla}
+\defineaccent c K {\Kcedilla} \defineaccent c k {\kcedilla}
+\defineaccent c L {\Lcedilla} \defineaccent c l {\lcedilla}
+\defineaccent c N {\Ncedilla} \defineaccent c n {\ncedilla}
+\defineaccent c R {\Rcedilla} \defineaccent c r {\rcedilla}
+\defineaccent c S {\Scedilla} \defineaccent c s {\scedilla}
+\defineaccent c T {\Tcedilla} \defineaccent c t {\tcedilla}
+
+\defineaccent H O {\Ohungarumlaut} \defineaccent H o {\ohungarumlaut}
+\defineaccent H u {\uhungarumlaut} \defineaccent H U {\Uhungarumlaut}
+
+\defineaccent k A {\Aogonek} \defineaccent k a {\aogonek}
+\defineaccent k E {\Eogonek} \defineaccent k e {\eogonek}
+\defineaccent k I {\Iogonek} \defineaccent k i {\iogonek}
+\defineaccent k U {\Uogonek} \defineaccent k u {\uogonek}
+
+\defineaccent r A {\Aring} \defineaccent r a {\aring}
+\defineaccent r U {\Uring} \defineaccent r u {\uring}
+
+\defineaccent u A {\Abreve} \defineaccent u a {\abreve}
+\defineaccent u E {\Ebreve} \defineaccent u e {\ebreve}
+\defineaccent u G {\Gbreve} \defineaccent u g {\gbreve}
+\defineaccent u I {\Ibreve} \defineaccent u i {\ibreve} \defineaccent u {\i} {\ibreve}
+\defineaccent u O {\Obreve} \defineaccent u o {\obreve}
+\defineaccent u U {\Ubreve} \defineaccent u u {\ubreve}
+
+\defineaccent v C {\Ccaron} \defineaccent v c {\ccaron}
+\defineaccent v D {\Dcaron} \defineaccent v d {\dcaron}
+\defineaccent v E {\Ecaron} \defineaccent v e {\ecaron}
+\defineaccent v L {\Lcaron} \defineaccent v l {\lcaron}
+\defineaccent v N {\Ncaron} \defineaccent v n {\ncaron}
+\defineaccent v R {\Rcaron} \defineaccent v r {\rcaron}
+\defineaccent v S {\Scaron} \defineaccent v s {\scaron}
+\defineaccent v T {\Tcaron} \defineaccent v t {\tcaron}
+\defineaccent v Z {\Zcaron} \defineaccent v z {\zcaron}
+
+% from enco-mis:
+
+\def\fakepercent
+ {\mathematics{^{\scriptscriptstyle0}\kern-.25em/\kern-.2em_{\scriptscriptstyle0}}}
+
+\def\fakeperthousand
+ {\mathematics{^{\scriptscriptstyle0}\kern-.25em/\kern-.2em_{\scriptscriptstyle00}}}
+
+\def\fakepermine
+ {\dontleavehmode
+ \bgroup
+ \setbox\scratchbox\hbox
+ {\mathematics{+}}%
+ \hbox to \wd\scratchbox
+ {\hss
+ \mathematics{^{\scriptscriptstyle-}\kern-.4em/\kern-.3em_{\scriptscriptstyle-}}%
+ \hss}%
+ \egroup}
+
+%D A smaller and bolder variant, more like the math and monospaced ones.
+
+\def\fakeunderscore
+ {\leavevmode\hbox
+ {\setbox\scratchbox\hbox{(}%
+ \scratchdimen.2\dp\scratchbox
+ \setbox\scratchbox\hbox{\space}%
+ \vrule
+ \!!depth \scratchdimen
+ \!!width \wd\scratchbox
+ \!!height\zeropoint}}
+
+\def\fakeunderscores{\let\_\fakeunderscore}
+\def\textunderscores{\let\_\textunderscore}
+
+\textunderscores
+
+\ifx\mathunderscore\undefined \let\mathunderscore\fakeunderscore \fi
+\ifx\textunderscore\undefined \let\textunderscore\fakeunderscore \fi
+
+\unexpanded\def\normalunderscore{\ifmmode\mathunderscore\else\textunderscore\fi}
+
+\let\_\normalunderscore
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/enco-ini.tex b/Master/texmf-dist/tex/context/base/enco-ini.tex
deleted file mode 100644
index 4c85bac5b25..00000000000
--- a/Master/texmf-dist/tex/context/base/enco-ini.tex
+++ /dev/null
@@ -1,1228 +0,0 @@
-%D \module
-%D [ file=enco-ini,
-%D version=2000.12.27, % 1998.12.03,
-%D title=\CONTEXT\ Encoding Macros,
-%D subtitle=Initialization,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D Quite some code will be moved to the mk files once we're ready
-%D for it.
-
-%D This module is a reimplementation of the module that handled
-%D composed characters and non \ASCII\ characters. The changed
-%D are not that fundamental, and mainly concerns moving
-%D definitions of specific glyphs and accents to other files as
-%D well as moving plain handling of accents to this module
-%D instead of overloading plain \TEX\ commands.
-
-%D Patterns are kind of mixed with font encodings and
-%D mappings. Alas.
-
-\ifx\synchronizepatterns\undefined \let\synchronizepatterns\relax \fi
-
-%D While dealing with input (the text source) and output (the
-%D glyphs), encoding comes into view. To summarize a few:
-%D
-%D \startitemize
-%D \item Bytes in the input file are mapped to an internal
-%D representation. An~\type {a} often stays an~\type {a},
-%D but~\type {\"e} can become either one code or become
-%D two codes (ending in overlapping glyphs).
-%D \item Characters can be made active and mapped onto another
-%D character.
-%D \item When changing case, characters are mapped onto
-%D themselves, their case||counterpart or a reasonable
-%D alternative, like~\"e onto~e.
-%D \item Single character representations in a \DVI\ file can
-%D be mapped onto one or more characters, either of not
-%D in more than one font file (virtual fonts).
-%D \item In the final format, fonts collections can be
-%D partially embedded, thereby losing the one||to||one
-%D relation between several instances of one font.
-%D \item For special purposes, individual characters should be
-%D mapped onto a dedicated encoding vector, for instance
-%D \PDF\ document encoding.
-%D \stopitemize
-%D
-%D These and other kind of mappings are to be dealt with, and
-%D the exact way of dealing often depends on the language to be
-%D typeset.
-
-\writestatus{loading}{Context Encoding Macros (ini)}
-
-\unprotect
-
-\startmessages dutch library: encodings
- title: encoding
- 1: codering --
- 2: codering -- wordt geladen
- 3: onbekende codering --
-\stopmessages
-
-\startmessages english library: encodings
- title: encoding
- 1: coding --
- 2: coding -- is loaded
- 3: unknown coding --
-\stopmessages
-
-\startmessages german library: encodings
- title: Kodierung
- 1: Kodierung --
- 2: Kodierung -- ist geladen
- 3: Unbekannte Kodierung --
-\stopmessages
-
-\startmessages czech library: encodings
- title: kodovani
- 1: kodovani --
- 2: je nacteno kodovani --
- 3: nezname kodovani --
-\stopmessages
-
-\startmessages italian library: encodings
- title: codifica
- 1: codifica --
- 2: codifica -- caricata
- 3: codifica sconosciuta --
-\stopmessages
-
-\startmessages norwegian library: encodings
- title: koding
- 1: koding --
- 2: koding -- er lest inn
- 3: ukjent koding --
-\stopmessages
-
-\startmessages romanian library: encodings
- title: codificari
- 1: codificarea --
- 2: codificarea -- este Encarcata
- 3: codificarea -- este necunoscuta
-\stopmessages
-
-\startmessages french library: encodings
- title: encodage
- 1: encodage --
- 2: l'encodage -- est chargé
- 3: encodage -- inconnu
-\stopmessages
-
-%D First we define a few local or not yet initialized constants.
-
-\def\@map@{@m@ap@} % mapping prefix
-\def\@fha@{@f@ha@} % font prefix
-\def\@cas@{@c@as@} % casecom prefix
-
-\ifx\currentlanguage\undefined \let\currentlanguage\s!en \fi
-
-%D \macros
-%D {setupencoding}
-%D
-%D The following setup command is used to tune encoding
-%D handling.
-
-\def\setupencoding
- {\dosingleargument\dosetupencoding}
-
-\def\dosetupencoding[#1]%
- {\getparameters[\??ec][#1]%
- \edef\defaultencoding
- {\ifx\@@ecdefault\empty\s!default\else\@@ecdefault\fi}}
-
-%D \macros
-%D {useencoding}
-%D
-%D Encodings things are defined in separate files and are
-%D loaded only once, using:
-%D
-%D \showsetup{useencoding}
-
-\def\douseencoding#1%
- {\doifundefined{\c!file\f!encodingprefix#1}%
- {\letvalue{\c!file\f!encodingprefix#1}\empty
- \makeshortfilename[\truefilename{\f!encodingprefix#1}]%
- \startreadingfile
- \readsysfile\shortfilename
- {\showmessage\m!encodings2{#1}}
- {\showmessage\m!encodings3{#1}}%
- \stopreadingfile}}
-
-\def\useencoding[#1]%
- {\processcommalist[#1]\douseencoding}
-
-%D \macros
-%D {startmapping,enablemapping}
-%D
-%D In order to process patterns, convert from lower to
-%D uppercase and vise versa and some more, we provide a
-%D mechanism to define mappings. The first real application
-%D of this command was:
-%D
-%D \starttyping
-%D \startmapping [something]
-%D \definecasemap 165 181 165
-%D \definecasemap 171 187 171
-%D ...
-%D \defineuppercasecom \i {I}
-%D \defineuppercasecom \l \L
-%D \definelowercasecom \AE \ae
-%D ...
-%D \stopmapping
-%D \stoptyping
-%D
-%D So, character 165 becomes 181 in uppercase and 165 in
-%D lowercase. A mapping is activated with \type {\enablemapping}.
-
-\def\startsavingmappingtoks#1%
- {\bgroup
- \edef\charactermapping{@#1@}%
- \checkmappingtoks
- \setmappingtoks
- \the\mappingtoks}
-
-\def\stopsavingmappingtoks
- {\global\mappingtoks\emptytoks
- \dostepwiserecurse{0}{255}\plusone
- {\edef\@@expanded
- {\the\mappingtoks
- \ifnum\recurselevel>127
- \noexpand\settoletterunlessactive{\recurselevel}%
- \fi
- \lccode\recurselevel\ifnum\lccode\recurselevel=\zerocount\zerocount\else\space\the\lccode\recurselevel\space\fi
- \uccode\recurselevel\ifnum\uccode\recurselevel=\zerocount\zerocount\else\space\the\uccode\recurselevel\space\fi
- \ifnum\sfcode\recurselevel=\plusthousand\else\sfcode\recurselevel=\the\sfcode\recurselevel\space\fi
- }%
- \global\mappingtoks\expandafter{\@@expanded}}%
- \egroup
- \let\enabledmapping\empty
- \enablemapping[\currentmapping]}
-
-\def\startmapping[#1]%
- {\startsavingmappingtoks{#1}}
-
-\def\stopmapping
- {\stopsavingmappingtoks}
-
-\def\optimizemapping[#1]%
- {\startsavingmappingtoks{#1}%
- % nothing, just an automatic cleanup
- \stopsavingmappingtoks
- % we need to resync
- %\let\enabledmapping\relax
- }%\enablemapping[\currentmapping]}
-
-\def\setmappingtoks
- {\@EA\let\@EA\mappingtoks\csname\@map@\charactermapping\endcsname
- \@EA\let\@EA\casecomtoks\csname\@cas@\charactermapping\endcsname}
-
-\def\checkmappingtoks
- {\ifundefined{\@map@\charactermapping}%
- \expandafter\newtoks\csname\@map@\charactermapping\endcsname
- \fi
- \ifundefined{\@cas@\charactermapping}%
- \expandafter\newtoks\csname\@cas@\charactermapping\endcsname
- \fi}
-
-\def\definecasemap #1 #2 #3 % code lower upper
- {\doifelse{#2}{to}
- {\presetcaserange{#1}{#3}}
- {\lccode#1=#2\relax
- \uccode#1=#3\relax}%
- \ignorespaces}
-
-%D Saves a few tokens
-
-\def\definecaseswap #1 #2 % lower upper
- {\lccode#1=#1\relax
- \uccode#2=#2\relax
- \lccode#2=#1\relax
- \uccode#1=#2\relax
- \ignorespaces}
-
-\def\definecaseself #1 % lower=upper=self
- {\lccode#1=#1\relax
- \uccode#1=#1\relax
- \ignorespaces}
-
-%D Watch the \type {\definecasemap 127 to 255} option!
-%D Dedicated to Taco there is also:
-
-\def\definecasemaps #1 to #2 lc #3 uc #4 % from to lc+ uc+
- {\dostepwiserecurse{#1}{#2}\plusone
- {\scratchcounter\recurselevel\advance\scratchcounter#3\lccode\recurselevel=\scratchcounter
- \scratchcounter\recurselevel\advance\scratchcounter#4\uccode\recurselevel=\scratchcounter}%
- \ignorespaces}
-
-%D This can be used like:
-%D
-%D \starttyping
-%D \definecasemaps 128 to 156 lc 32 uc 0
-%D \definecasemaps 160 to 188 lc -32 uc 0
-%D \definecasemaps 160 to 188 lc -32 uc 0
-%D \definecasemaps 192 to 255 lc 32 uc 0
-%D \stoptyping
-%D
-%D and saves a lot of typing (copying).
-
-\def\resetcaserange #1 to #2
- {\dostepwiserecurse{#1}{#2}\plusone
- {\lccode\recurselevel\zerocount
- \uccode\recurselevel\zerocount}%
- \ignorespaces}
-
-\def\presetcaserange#1#2% could be pre-expanded
- {\dostepwiserecurse{#1}{#2}\plusone
- {\lccode\recurselevel=\recurselevel
- \uccode\recurselevel=\recurselevel}%
- \ignorespaces}
-
-\def\setcasemap #1 #2 #3 %
- {\settoletterunlessactive{#1}%
- \lccode #1=#2
- \uccode #1=#3 }
-
-\def\setcaseswap #1 #2 %
- {\settoletterunlessactive{#1}%
- \settoletterunlessactive{#2}%
- \lccode #1=#1
- \uccode #2=#2
- \lccode #2=#1
- \uccode #1=#2 }
-
-\def\setcaseself #1 %
- {\settoletterunlessactive{#1}%
- \lccode #1=#1
- \uccode #1=#1 }
-
-\def\definespacemap #1 #2 % code sfcode
- {\sfcode#1=#2%
- \ignorespaces}
-
-\def\setspacemap #1 #2 %
- {\settootherunlessactive{#1}%
- %\lccode #1=\zerocount
- %\uccode #1=\zerocount
- \sfcode #1=#2 }
-
-\def\defineuppercasecom#1#2%
- {\global\casecomtoks\expandafter{\the\casecomtoks\setuppercasecom#1{#2}}%
- \ignorespaces}
-
-\def\definelowercasecom#1#2%
- {\global\casecomtoks\expandafter{\the\casecomtoks\setlowercasecom#1{#2}}%
- \ignorespaces}
-
-\let\setuppercasecom\gobbletwoarguments
-\let\setlowercasecom\gobbletwoarguments
-
-\def\setcasecom#1#2{\def#1{#2}}
-
-\let\enabledmapping\empty % indirect, needed to handle default too
-
-\def\enablemapping[#1]%
- {\edef\charactermapping{@#1@}%
- \ifx\enabledmapping\charactermapping \else
- \doifdefined{\@map@\charactermapping}
- {%\expandafter\showthe\csname\@map@\charactermapping\endcsname\endcsname
- \the\csname\@map@\charactermapping\endcsname}%
- % == \the\executeifdefined{\@map@\charactermapping}\emptytoks
- \edef\enabledmapping{\charactermapping}%
- \enablelanguagespecifics[\currentlanguage]% new
- % \edef\enabledmapping{\charactermapping\currentlanguage}% can be comma list
- \fi
- \synchronizepatterns}
-
-% on behalf of font switching:
-
-\def\fastenablemapping#1%
- {\edef\charactermapping{@#1@}%
- \ifx\enabledmapping\charactermapping \else
- \@EA\ifx\csname\@map@\charactermapping\endcsname\relax\else
- \the\csname\@map@\charactermapping\endcsname
- \fi
- % == \the\executeifdefined{\@map@\charactermapping}\emptytoks
- \let\enabledmapping\charactermapping
- \enablelanguagespecifics[\currentlanguage]% to faster
- \fi}
-
-%D This macro wil be implemented in \type {lang-ini.tex}.
-
-\ifx\enablelanguagespecifics\undefined
- \def\enablelanguagespecifics[#1]{}
-\fi
-
-%D Further on we have to take some precautions when dealing
-%D with special characters like~\type{~}, \type{_}
-%D and~\type{^}, so let us define ourselve some handy macros
-%D first.
-
-\def\protectfontcharacters
- {\edef\unprotectfontcharacters
- {\catcode`\noexpand ~=\the\catcode`~\relax
- \catcode`\noexpand _=\the\catcode`_\relax
- \catcode`\noexpand ^=\the\catcode`^\relax}%
- \catcode`~=\@@letter
- \catcode`_=\@@letter
- \catcode`^=\@@letter\relax}
-
-%D The completeness of the Computer Modern Roman typefaces
-%D makes clear how incomplete other faces are. To honour 7~bit
-%D \ASCII, these fonts were designed using only the first 127
-%D values of the 256 ones that can be presented by one byte.
-%D Nowadays 8~bit character codings are more common, mainly
-%D because they permit us to predefine some composed
-%D characters, which are needed in most european languages.
-%D
-%D Supporting more than the standard \TEX\ encoding vector
-%D |<|which in itself is far from standard and differs per
-%D font|>| puts a burden on the fonts mechanism. The \CONTEXT\
-%D mechanism is far from complete, but can handle several
-%D schemes at once. The main problem lays in the accented
-%D characters and ligatures like~ff, although handling
-%D ligatures is not the responsibility of this module.
-%D
-%D By default, we use \PLAIN\ \TEX's approach of placing
-%D accents. All other schemes sooner or later give problems
-%D when we distribute \DVI||files are distributed across
-%D machines and platforms. Nevertheless, we have to take care
-%D of different encoding vectors, which tell us where to find
-%D the characters we need. This means that all kind of
-%D character placement macro's like \type{\"} and \type{\ae}
-%D have to be implemented and adapted in a way that suits
-%D these vectors.
-%D
-%D The main difference between different vector is the way
-%D accents are ordered and/or the availability of prebuilt
-%D accented characters. Accented characters can for instance be
-%D called for by sequences like \type{\"e}. Here the \type{\"}
-%D is defined as:
-%D
-%D \starttyping
-%D \def\"#1{{\accent"7F #1}}
-%D \stoptyping
-%D
-%D This macro places the accent \accent"7F {} on top of an~e
-%D gives \"e. Some fonts however can have prebuild accents and
-%D use a more direct approach like
-%D
-%D \starttyping
-%D \def\"#1{\if#1e\char 235\else ... \fi}
-%D \stoptyping
-%D
-%D The latter approach is not used in \CONTEXT, because we
-%D store relevant combinations of accents and characters in
-%D individual macros.
-
-%D We define character substitutes and commands with definition
-%D commands like:
-%D
-%D \starttyping
-%D \startcoding[texnansi]
-%D
-%D \defineaccent " a 228
-%D \defineaccent ^ e 234
-%D \defineaccent ' {\dotlessi} 237
-%D
-%D \definecharacter ae 230
-%D \definecharacter oe 156
-%D
-%D \definecommand b \texnansiencodedb
-%D \definecommand c \texnansiencodedc
-%D
-%D \stopcoding
-%D \stoptyping
-%D
-%D The last argument of \type{\defineaccent} and
-%D \type{\definecharacter} tells \TEX\ the position of the
-%D accented character in the encoding vector. In order to
-%D complish this, we tag each implementation with the character
-%D coding identifier. We therefore need two auxiliary variables
-%D \type{\characterencoding} and \type{\nocharacterencoding}. These
-%D contain the current and default encoding vectors and both
-%D default to the \PLAIN\ one.
-
-\edef\characterencoding {@\s!default @}
-\edef\nocharacterencoding {@\s!default @}
-\edef\charactermapping {@\s!default @}
-
-% todo, else \d j == \dj, print file and check
-
-\def\accentprefix {}%{*}
-\def\commandprefix {}%{=}
-\def\characterprefix{}%{-}
-
-%D \macros
-%D {startcoding, reducetocoding}
-%D
-%D Before we can redefine accents and special characters, we
-%D have to tell \CONTEXT\ what encoding is in force. The next
-%D command is responsible for doing this and also takes care of
-%D the definition of the recoding commands. We use the \type
-%D {\start}||\type {\stop}||commands for definitions and the
-%D \type {\reduceto}||command for local switching to
-%D simplified commands.
-
-% etex : \ifcsname
-
-\def\justhandleaccent#1#2% \empty makes #2={} save % no \unexpanded
- {\ifundefined{\accentprefix\characterencoding#1\string#2\empty}%
- #2%
- \else
- \csname\accentprefix\characterencoding#1\string#2\empty\endcsname
- \fi}
-
-\def\justhandlecommand#1% % no \unexpanded, otherwise pdfdoc will fail
- {\ifundefined{\commandprefix\characterencoding#1}% as well as hyph patterns
- #1%
- \else
- \csname\commandprefix\characterencoding#1\endcsname
- \fi}
-
-\def\enableencoding
- {\dodoubleempty\doenableencoding}
-
-\def\doenableencoding[#1][#2]% main fallback
- {\iffirstargument\edef\characterencoding{@#1@}\fi
- \edef\nocharacterencoding{@\ifsecondargument#2\else\s!default\fi @}%
- \synchronizepatterns}
-
-\edef\xnocharacterencoding{@\s!default @}
-
-\def\fastenableencoding#1%
- {\edef\characterencoding{@#1@}%
- \let\nocharacterencoding\xnocharacterencoding}
-
-\def\startencoding
- {\dodoubleempty\dostartencoding}
-
-\def\dostartencoding[#1][#2]% encoding regime
- {%\showmessage\m!encodings1{#1}%
- \pushmacro\characterencoding
- \pushmacro\currentregime
- \pushmacro\dohandleaccent % still needed?
- \pushmacro\dohandlecommand % still needed?
- \pushmacro\doautosetregime
- \let\dohandleaccent\donthandleaccent % still needed?
- \let\dohandlecommand\donthandlecommand % still needed?
- %let\definesortkey\savesortkey
- \edef\characterencoding{@#1@}%
- \doifelsenothing{#2}%
- {\let\doautosetregime\gobbletwoarguments}
- {\def\currentregime{#2}}}
-
-\def\stopencoding
- {\popmacro\doautosetregime
- \popmacro\dohandlecommand % still needed?
- \popmacro\dohandleaccent % still needed?
- \popmacro\currentregime
- \popmacro\characterencoding}
-
-% probably obsolete (hm, not yet)
-
-\def\reducetocoding[#1]% use grouped!
- {\doifsomething{#1}
- {\let\dohandleaccent \justhandleaccent
- \let\dohandlecommand\justhandlecommand
- \enableencoding[#1]%
- \enablelanguagespecifics[\currentlanguage]}}
-
-\let\startcoding \startencoding
-\def\stopcoding {\stopencoding}
-\let\enablecoding \enableencoding
-
-%D The use of these macros are not limited to font
-%D definition files, but may also be used when loading
-%D patterns.
-
-%D \macros
-%D {definesortkey,flushsortkeys,flushsortkey}
-%D
-%D Yet another definition concerns sorting of indexes and
-%D lists.
-%D
-%D \starttyping
-%D \definesortkey {\'e} {e} {a} {\'e}
-%D \stoptyping
-%D
-%D The first argument denotes the string to be treated. The
-%D second argument is the raw replacement, while the third
-%D argument determines the sort order given the replacement.
-%D The last argument is used as entry in the index (a, b, etc).
-%D
-%D The keys can be flushed using \type {\flushsortkeys}
-%D which in turn results in a sequence of calls to \type
-%D {\flushsortkey}, a macro taking 4~arguments.
-%D
-%D This mechanism is currently being tested and subjected to
-%D changes! Obsolete:
-
-\let\definesortkey\gobblefourarguments
-\let\savesortkey \gobblefourarguments
-\let\flushsortkeys\relax
-\let\flushsortkey \relax
-
-%D \macros
-%D {defineaccent, definecharacter, definecommand}
-%D
-%D The actual definition of accents, special characters and
-%D commands is done with the next three commands.
-
-\def\defineaccent
- {\protectfontcharacters
- \dodefineaccent}
-
-\def\dodefineaccent#1 #2 %
- {\unprotectfontcharacters
- \dododefineaccent#1 #2 }
-
-\def\dododefineaccent#1 #2 #3 %
- {\setvalue{#1}{\dohandleaccent{#1}}%
- \doifnumberelse{\string#3}
- {\setvalue{\accentprefix\characterencoding#1\string#2}{\char#3 }} % space added
- {\setvalue{\accentprefix\characterencoding#1\string#2}{#3}}}
-
-\def\dohandleaccent#1#2%
- {\ifcsname\accentprefix\characterencoding#1\string#2\empty\endcsname
- \csname\accentprefix\characterencoding#1\string#2\empty\endcsname
- \else\ifcsname\accentprefix\nocharacterencoding#1\string#2\empty\endcsname
- \csname\accentprefix\nocharacterencoding#1\string#2\empty\endcsname
- \else\ifcsname\accentprefix\characterencoding#1\endcsname
- \csname\accentprefix\characterencoding#1\endcsname{#2}%
- \else%\ifcsname\accentprefix\nocharacterencoding#1\endcsname
- \csname\accentprefix\nocharacterencoding#1\endcsname{#2}%
-% \else
-% \donormaltextaccent{#1}{#2}%
- \fi\fi\fi}%\fi}
-
-%D In patterns, characters have to be bytes. These will be
-%D mapped onto the compact pattern arrays.
-
-\let\normalpatterns \patterns
-\let\normalhyphenation\hyphenation
-
-\def\patternchar#1 {\rawcharacter{#1}} % space is part of character definition !
-
-% \ifx \enablepatterntokens\undefined
-% \def\handlepatterntoken#1]{\csname#1\endcsname}
-% \fi
-
-% we need to postpone catcode changes, e.g. hr patterns
-% have \catcode" -> which fails when " is letter
-
-\def\pathypsettings
- {\ifx \enablepatterntokens\undefined
- \defineactivecharacter [ {\handlepatterntoken}%
- \else
- \enablepatterntokens
- \fi
- \let\dochar\thechr
- \lccode16=16 % brrr, extra quote in ec (turkish)
- \lccode17=17 % brrr, extra quote in ec (turkish)
- \lccode`\-=`\-
- \lccode`\'=`\'
- \lccode`\"=`\"
- \relax}
-
-\def\patterns {\pathypsettings\normalpatterns }
-\def\hyphenation{\pathypsettings\normalhyphenation}
-
-%D Because we don't want to use the second command grouped, we
-%D (re)define it as follows:
-
-\def\hyphenation
- {\begingroup\def\hyphenation{\normalhyphenation{\the\scratchtoks}\endgroup}%
- \pathypsettings\afterassignment\hyphenation\scratchtoks=}
-
-%D This is not needed for patterns because they are loaded grouped
-%D anyway and it saves us an assignment. Can go ... no longer
-%D shared patterns.
-
-\def\startpatternloading#1#2#3% % we should use \everypatternloading
- {\startreadingfile
- \bgroup
- % let's get rid of interfering stuff
- \let\everyjob\scratchtoks
- \let\message \gobbleoneargument
- % we want direct characters
- \let\char\patternchar
- \doifelsenothing{#2}{\enableencoding[ec]}{\enableencoding[#2]}%
- \doifelsenothing{#3}{\enablemapping [ec]}{\enablemapping [#3]}%
- \expanded{\doifinstring{\f!languageprefix}{#1}}
- {\ifx \enablepatternxml\undefined \else
- \enablepatternxml
- \fi}%
- \let\dohandleaccent\normaldohandleaccent}
-
-\def\stoppatternloading
- {\egroup
- \stopreadingfile}
-
- \def\thechr#1{\char#1 } % just in case \relax interferes
-\unexpanded\def\numchr#1{\char#1\relax}
-\unexpanded\def\strchr#1{\csname#1\endcsname}
-
-\let\dochar\numchr
-
-\def\startdirectcharacters {\pushmacro\dochar \let\dochar\thechr}
-\def\stopdirectcharacters {\popmacro \dochar}
-
-\def\definecharacter#1 #2 %
- {\ifundefined{#1}\setvalue{#1}{\dohandlecharacter{#1}}\fi
- \doifnumberelse{\string#2}
- {\setvalue{\characterprefix\characterencoding\string#1}{\dochar{#2}}%
- \doautosetregime{#1}{#2}}
- {\setvalue{\characterprefix\characterencoding\string#1}{#2}}}
-
-\def\dohandlecharacter#1%
- {\csname\characterprefix\ifcsname\characterprefix\characterencoding#1\endcsname
- \characterencoding\else\nocharacterencoding\fi#1\endcsname}
-
-% \def\fallbackpatternchar{x} % makes no sense, duplicate patterns
-
-\def\defaultcharacter#1%
- {\csname\characterprefix\nocharacterencoding\strippedcsname#1\endcsname}
-
-%D Instead of numbers, a command may be entered.
-
-\def\definecommand#1 #2 %
- {\setvalue{\string#1}{\dohandlecommand{#1}}%
- %\redefinecommand #1 % just to be sure
- \setvalue{\commandprefix\characterencoding\string#1}{#2}}
-
-%D Here we see that redefining accents is characters is more
-%D or less the same as redefining commands. We also could have
-%D said:
-%D
-%D \starttyping
-%D \def\defineaccent#1 #2 {\definecommand#1\string#2 \char}
-%D \def\definecharacter#1 {\definecommand#1 \char}
-%D \stoptyping
-
-%D \macros
-%D {defineaccentcommand}
-%D
-%D When needed, one can overload the default positions of the
-%D accents. The \PLAIN\ \TEX\ defaults are:
-%D
-%D \starttyping
-%D \defineaccentcommand ` 18
-%D \defineaccentcommand ' 19
-%D \defineaccentcommand v 20
-%D \defineaccentcommand u 21
-%D \defineaccentcommand = 22
-%D \defineaccentcommand ^ 94
-%D \defineaccentcommand . 95
-%D \defineaccentcommand H 125 % "7D
-%D \defineaccentcommand ~ 126 % "7E
-%D \defineaccentcommand " 127 % "7F
-%D \stoptyping
-
-\def\defineaccentcommand
- {\protectfontcharacters
- \dodefineaccentcommand}
-
-\def\dodefineaccentcommand#1 #2 % \string toegevoegd
- {\doifnumberelse{\string#2}
- {\setvalue{\accentprefix\characterencoding\string#1}##1{{\accent#2 ##1}}}
- {\setvalue{\accentprefix\characterencoding\string#1}##1{{#2##1}}}%
- \unprotectfontcharacters}
-
-%D We don't have to define them for the default \PLAIN\ case.
-%D Commands may be used instead of character codes.
-
-%D \macros
-%D {normalaccent,normalchar}
-%D
-%D Accents are either placed by \TEX's \type {\accent}
-%D primitive, or part of the glyph. By default the former
-%D method is used, unless overruled in the encoding
-%D definitions.
-
-\let\normalchar =\char
-\let\normalaccent=\accent
-
-%D \macros
-%D {redefinecommand}
-%D
-%D Redefinition of encoding dependant commands like \type{\b}
-%D and \type{\c} can be triggered by:
-%D
-%D \starttyping
-%D \redefinecommand b % something math
-%D \redefinecommand c % something math
-%D \stoptyping
-%D
-%D Handling of characters is easier than handling accents
-%D because here we don't have to take care of arguments. We
-%D just call for the right glyph in the right place.
-%D
-%D The \type{\next} construction permits handling of commands
-%D that take arguments. This means that we can use this
-%D command to redefine accent handling commands too
-%D (although today the next is not needed any longer in test
-%D macros).
-
-\def\redefinecommand#1 %
- {% no \unexpanded, else pdfdoc fails
- \setvalue{\string#1}{\dohandlecommand{#1}}}%
-
-\def\dohandlecommand#1%
- {\csname\commandprefix
- \ifcsname\commandprefix\characterencoding#1\endcsname
- \characterencoding
- \else
- \nocharacterencoding
- \fi
- #1\endcsname}
-
-%D \macros
-%D {currentencoding, currentmapping}
-%D
-%D When we show 'm, we don't want to see the protection
-%D measures.
-
-\def\currentencoding{\@EA\dopureencodingname\characterencoding}
-\def\currentmapping {\@EA\dopureencodingname\charactermapping }
-
-\def\dopureencodingname @#1@{#1}
-
-\def\pureencodingname#1{\@EA\dopureencodingname#1}
-
-%D \macros
-%D {showaccents, showcharacters,
-%D showcharacterbounds, showhyphenations}
-%D
-%D Encoding is a tricky business. Therefore we provide a
-%D a few macros that show most of the characters involved. The
-%D next two tables show the result of \type {\showaccents}.
-%D
-%D \placetable
-%D {The special glyphs in default encoding.}
-%D {\showaccents}
-%D
-%D \placetable
-%D {The special glyphs in texnansi encoding.}
-%D {\switchtobodyfont[lbr]\showaccents}
-%D
-%D The command
-%D
-%D \starttyping
-%D \showhyphenations{doordefini\"eren}
-%D \stoptyping
-%D
-%D can be used to check the correct loading of hyphenation
-%D patterns.
-
-\fetchruntimecommand \showaccents {\f!encodingprefix\s!run}
-\fetchruntimecommand \showcharacters {\f!encodingprefix\s!run}
-\fetchruntimecommand \showcharacterbounds {\f!encodingprefix\s!run}
-\fetchruntimecommand \showhyphenations {\f!encodingprefix\s!run}
-\fetchruntimecommand \showmapping {\f!encodingprefix\s!run}
-
-%D \macros
-%D {everyuppercase, EveryUppercase,
-%D everyuppercase, EveryUppercase}
-%D
-%D When we want to uppercase strings of characters, we have to
-%D take care of those characters that have a special meaning or
-%D are only accessible by means of macros. The next hack was
-%D introduced when Tobias Burnus started translating head and
-%D label texts into spanish and italian. The first application
-%D of this token register therefore can be found in the module
-%D that deals with these texts.
-
-\newevery \everyuppercase \EveryUppercase
-\newevery \everylowercase \EveryLowercase
-
-%D This magic trick maps takes care of mapping from lower to
-%D upper case and reverse.
-
-\def\reloadmapping{\the\executeifdefined{\@cas@\charactermapping}\emptytoks}
-
-\appendtoks\let\setuppercasecom\setcasecom\to\everyuppercase
-\appendtoks\let\setlowercasecom\setcasecom\to\everylowercase
-
-\appendtoks\reloadmapping\to\everyuppercase % slow, will be sped up
-\appendtoks\reloadmapping\to\everylowercase % slow, will be sped up
-
-\newtoks\everyULmap
-
-\appendtoks\let\remapcase\remapuppercase\the\everyULmap\to\everyuppercase
-\appendtoks\let\remapcase\remaplowercase\the\everyULmap\to\everylowercase
-
-\let\remapcase\gobbletwoarguments
-
-\def\remapuppercase#1#2{\let#2#1} % more efficient:
-\def\remaplowercase#1#2{\let#1#2} \let\remaplowercase\let
-
-\def\defineLCcharacter #1 #2 %
- {\appendtoks\let\to\everylowercase
- \@EA\appendtoks\csname#1\endcsname\to\everylowercase
- \@EA\appendtoks\csname#2\endcsname\to\everylowercase}
-
-\def\defineUCcharacter #1 #2 %
- {\appendtoks\let\to\everyuppercase
- \@EA\appendtoks\csname#1\endcsname\to\everyuppercase
- \@EA\appendtoks\csname#2\endcsname\to\everyuppercase}
-
-\def\defineULcharacter #1 #2 %
- {\appendtoks\remapcase\to\everyULmap
- \@EA\appendtoks\csname#1\endcsname\to\everyULmap
- \@EA\appendtoks\csname#2\endcsname\to\everyULmap}
-
-% slightly faster with \smallcapped's but far more hash and stringspace
-%
-% \newif\ifuppercase \appendtoks\uppercasetrue\to\everyuppercase
-% \newif\iflowercase \appendtoks\lowercasetrue\to\everylowercase
-%
-% \def\defineULcharacter #1 #2 %
-% {\def\!!stringa{@#1}\@EA\letvalue\@EA\!!stringa\csname#1\endcsname
-% \def\!!stringa{@#2}\@EA\letvalue\@EA\!!stringa\csname#2\endcsname
-% \setvalue{#1}{\getvalue{@\ifuppercase#2\else#1\fi}}%
-% \setvalue{#2}{\getvalue{@\iflowercase#1\else#2\fi}}}
-
-% 2 = tricky, since expanding \definedfont[lowcasename] ... goes wrong
-
-\chardef\uppercasemode\plusthree % 0=ignore 1=normal 2=expand 3=auto
-\chardef\casecommode \plusone % 0=noexpand 1=expand
-
-\def\setcasecom #1#2{\def#1{\ifcase\casecommode\noexpand#1\else#2\fi}}
-
-% \def\OEPS{whatever}
-%
-% \startmapping[ec]
-% \defineuppercasecom \oeps {\getvalue{OEPS}}
-% \stopmapping
-%
-% \WORD{xx \oeps}
-
-\def\douppercase#1%
- {\bgroup
- \let\douppercase\firstofoneargument
- \the\everyuppercase % currently also checks uppercasemode
- \let\dochar\rawcharacter
- \ifcase\uppercasemode
- #1%
- \or % No expansion here, otherwise \getvalue problems! Default!!!
- %\edef\next{#1}% keep this to prevent roll back
- %\uppercase\expandafter{\next}% keep this to prevent roll back
- \uppercase{#1}%
- \or
- \chardef\casecommode\zerocount
- \let\docasecom\firstoftwoarguments
- \edef\ascii{#1}%
- \edef\ascii{\expandafter\uppercase\expandafter{\ascii}}% needed when in regime
- \chardef\casecommode\plusone
- \ascii
- \else
- % mode three may trigger setting 2 elsewhere (e.g. regime test)
- \uppercase{#1}%
- \fi
- \egroup}
-
-\prependtoksonce
- \doifnot\currentregime\s!default
- {\ifnum\uppercasemode=\plusthree \chardef\uppercasemode\plustwo \fi}%
-\to \everyuppercase
-
-%D \macros
-%D {everysanitize, EverySanitize}
-%D
-%D Whenever we are sanitizing strings, like we sometimes do
-%D when we deal with specials, the next token register can be
-%D called.
-
-\newevery \everysanitize \EverySanitize
-
-%D \macros
-%D {defineuclass,defineudigit,udigit}
-%D
-%D The next few macros are experimental and needed for unicoded
-%D chinese characters.
-
-\def\defineuclass #1 #2 #3 %
- {\setvalue{uc\the\numexpr#2*256+#3\relax}{#1}}
-
-\def\defineudigit #1 #2 #3 {\setvalue{\characterencoding uc#1}{\uchar{#2}{#3}}}
-
-%D It may look strange, but for the moment, we want the encoding
-%D to be part of the digit specification. This may change!
-
-\unexpanded\def\udigit#1#2{\getvalue{@#1@uc\number#2}}
-
-%D \macros
-%D {uchar, octuchar, hexuchar}
-
-\ifx\uchar\undefined \def\uchar#1#2{(\number#1,\number#2)} \fi
-
-\def\octuchar#1#2{\uchar{`#1}{`#2}}
-\def\hexuchar#1#2{\uchar{"#1}{"#2}}
-
-%D Basics and fallbacks.
-
-\newif\ifignoreaccent
-
-\let\textaccent \accent
-
-\let\normalaccent \accent
-\let\normaltextaccent\textaccent
-\let\normalmathaccent\mathaccent
-\let\normalchar \char
-
-% ** we will explicitly embrace the two arguments, since in definitions
-% this may not be the case, and we don't want faulty expansions like
-% "\dobuildtextaccent \char 18 a" but "\dobuildtextaccent {\char 18}{a}"
-% instead
-
-\def\buildmathaccent#1%
- {\mathaccent#1 }
-
-\def\buildtextaccent#1#2% **
- {\ifignoreaccent
- \expandafter\nobuildtextaccent
- \else
- \expandafter\dobuildtextaccent
- \fi{#1}{#2}}
-
-\unexpanded\def\nobuildtextaccent#1#2%
- {#2}
-
-\unexpanded\def\dobuildtextaccent#1#2%
- {{\let\char\normalaccent#1\let\char\normalchar#2}}
-
-% EVENTUALLY THIS CODE WILL MOVE TO AN mkiv module
-
-\beginLUATEX
-
-\newbox\accenttestbox
-
-\unexpanded\def\dobuildtextaccent#1#2%
- {\begingroup
- \global\setbox\accenttestbox\hbox{#1}%
- \scratchcounter\ctxlua{characters.charcode(\number\accenttestbox)}%
- \ifcase\scratchcounter\else\accent\scratchcounter\fi
- \relax#2%
- \endgroup}
-
-\endLUATEX
-
-% some fake ones, name will change into build
-
-\unexpanded\def\bottomaccent#1#2#3#4#5% down right slantcorrection accent char
- {\dontleavehmode % why this align mess
- \vtop
- {\forgetall
- \baselineskip\zeropoint
- \lineskip#1%
- \everycr\emptytoks
- \tabskip\zeropoint
- \lineskiplimit\zeropoint
- \setbox0\hbox{#4}%
- \halign
- {##\crcr\hbox{#5}\crcr
- \hidewidth
- \hskip#2\wd0
- \hskip-#3\slantperpoint % in plain 1ex * dimenless value
- \vbox to .2ex{\box0\vss}\hidewidth
- \crcr}}}
-
-\def\buildtextmacron {\bottomaccent{.25ex}{0}{15}{\textmacron}}
-\def\buildtextbottomdot{\bottomaccent{.25ex}{0}{5}{\textbottomdot}}
-\def\buildtextcedilla {\bottomaccent{0ex}{0}{5}{\textcedilla}}
-\def\buildtextogonek {\bottomaccent{-.1ex}{.5}{0}{\textogonek}}
-
-%D A collectors item:
-
-\def\buildtextbottomcomma{\bottomaccent{.15ex}{0}{5}{\tx,}}
-
-%D Rarely needed but there:
-
-\unexpanded\def\topaccent#1#2#3#4#5% down right slantcorrection accent char
- {\dontleavehmode
- \bgroup
- \setbox0\hbox{#4}%
- \setbox2\hbox{#5}%
- \hbox to \wd2 \bgroup
- \hss\copy2\hss
- \hskip-\wd2
- \hss\hskip#2\wd0\hskip-#3\slantperpoint\raise#1\hbox{#4}\hss
- \egroup
- \egroup}
-
-\def\buildtextgrave{\topaccent{0pt}{0}{15}{\textgrave}} % e.g.
-
-% \definecharacter schwa {\hbox{\rotate[rotation=180,location=high]{\hbox{e}}}}
-% \definecharacter schwagrave {\buildtextgrave\schwa}
-
-% math stuff, will change
-
-\def\definemathaccent#1 #2%
- {\setvalue{\string#1}{#2}%
- \setvalue{normalmathaccent\string#1}{#2}}
-
-\def\donormalmathaccent#1%
- {\getvalue{normalmathaccent\string#1}}
-
-%D Some precautions:
-
-\ifx\usepdffontresource\undefined
- \def\usepdffontresource #1 {} % this will be defined elsewhere
-\fi
-
-\def\donthandleaccent #1{\expandafter\string\csname#1\endcsname\space}
-\def\donthandlecommand #1{\expandafter\string\csname#1\endcsname\space}
-\def\donthandlecharacter #1{\expandafter\string\csname#1\endcsname\space}
-
-\def\stringifyhandleaccent #1{\strchr{#1}}
-\def\stringifyhandlecommand #1{\strchr{#1}}
-\def\stringifyhandlecharacter#1{\strchr{#1}}
-
-\def\keephandleaccent #1{\expandafter\noexpand\csname#1\endcsname}
-\def\keephandlecommand #1{\expandafter\noexpand\csname#1\endcsname}
-\def\keephandlecharacter #1{\expandafter\noexpand\csname#1\endcsname}
-
-\def\handleaccent #1{\csname#1\endcsname}
-\def\handlecommand #1{\csname#1\endcsname}
-\def\handlecharacter #1{\csname#1\endcsname}
-
-\def\dontexpandencoding
- {\let\dohandleaccent \donthandleaccent
- \let\dohandlecommand \donthandlecommand
- \let\dohandlecharacter\donthandlecharacter}
-
-\def\keepencodedtokens
- {\let\dohandleaccent \keephandleaccent
- \let\dohandlecommand \keephandlecommand
- \let\dohandlecharacter\keephandlecharacter}
-
-\def\literateencodedtokens
- {% \let\dohandleaccent \keephandleaccent
- % \let\dohandlecommand \keephandlecommand
- \let\dohandlecharacter\keephandlecharacter}
-
-\def\stringifyencodedtokens
- {% \let\dohandleaccent \stringifyhandleaccent
- % \let\dohandlecommand \stringifyhandlecommand
- \let\dohandlecharacter\stringifyhandlecharacter}
-
-\unexpanded\def\uhandleaccent #1{\csname#1\endcsname}
-\unexpanded\def\uhandlecommand #1{\csname#1\endcsname}
-\unexpanded\def\uhandlecharacter#1{\csname#1\endcsname}
-
-\def\dontexpandencodedtokens
- {\def\dohandleaccent {\uhandleaccent}%
- \def\dohandlecommand {\uhandlecommand}%
- \def\dohandlecharacter{\uhandlecharacter}}
-
-% no longer: \def\convertencodedtokens{\dontexpandencoding} but:
-
-\def\convertencodedtokens{\stringifyencodedtokens}
-
-% test case:
-%
-% \enableregime[cp1250]
-% \mainlanguage[cz]
-%
-% \starttext
-%
-% \title{luouc kon p}
-% \placelist[chapter][criterium=all]
-%
-% \startbuffer
-% <chapter>
-% <title>luouc kon p</title>
-% </chapter>
-% \stopbuffer
-%
-% \defineXMLenvironment
-% [chapter]
-% {\defineXMLsave[title]}
-% {\expanded{\chapter{\XMLflush{title}}}}
-% \processXMLbuffer
-%
-% \setuphead[chapter][expansion=yes]
-% \defineXMLenvironment
-% [chapter]
-% {\defineXMLsave[title]}
-% {\chapter{\XMLflush{title}}}
-% \processXMLbuffer
-%
-% \stoptext
-
-%D Still valid? To be checked:
-
-\def\doignoreaccent #1#2{\string#1\string#2}%
-\def\doignorecommand #1{\string#1}
-\def\doignorecharacter#1{\string#1}
-
-\def\ignoreencoding
- {\let\dohandleaccent \doignoreaccent
- \let\dohandlecommand \doignorecommand
- \let\dohandlecharacter\doignorecharacter}
-
-\appendtoks
- \ignoreencoding
-\to \everycleanupfeatures
-
-\appendtoks
- \keepencodedtokens
-\to \everysafeexpanded
-
-%D Now we will not redefine any more, so:
-
-\let\normaldohandleaccent \dohandleaccent
-\let\normaldohandlecharacter\dohandlecharacter
-
-%D We preload several encodings:
-
-\loadmarkfile{enco-ini}
-
-\definecommand ` {\buildtextaccent\textgrave}
-\definecommand ' {\buildtextaccent\textacute}
-\definecommand r {\buildtextaccent\textring}
-\definecommand v {\buildtextaccent\textcaron}
-\definecommand u {\buildtextaccent\textbreve}
-\definecommand = {\buildtextaccent\textmacron}
-\definecommand ^ {\buildtextaccent\textcircumflex}
-\definecommand . {\buildtextaccent\textdotaccent}
-\definecommand H {\buildtextaccent\texthungarumlaut}
-\definecommand ~ {\buildtextaccent\texttilde}
-\definecommand " {\buildtextaccent\textdiaeresis}
-
-\definecommand c {\buildtextcedilla}
-\definecommand b {\buildtextmacron}
-\definecommand d {\buildtextbottomdot}
-\definecommand k {\buildtextogonek}
-
-\definemathaccent acute {\buildmathaccent\mathacute}
-\definemathaccent grave {\buildmathaccent\mathgrave}
-\definemathaccent ddot {\buildmathaccent\mathddot}
-\definemathaccent tilde {\buildmathaccent\mathtilde}
-\definemathaccent bar {\buildmathaccent\mathbar}
-\definemathaccent breve {\buildmathaccent\mathbreve}
-\definemathaccent check {\buildmathaccent\mathcheck}
-\definemathaccent hat {\buildmathaccent\mathhat}
-\definemathaccent vec {\buildmathaccent\mathvec}
-\definemathaccent dot {\buildmathaccent\mathdot}
-\definemathaccent widetilde {\buildmathaccent\mathwidetilde}
-\definemathaccent widehat {\buildmathaccent\mathwidehat}
-
-\useencoding[def] % defaults (partly simplified)
-\useencoding[acc] % accent commands
-\useencoding[raw] % simplified (incomplete)
-\useencoding[com] % a few commands
-\useencoding[cas] % case mapping, not needed in mkiv
-\useencoding[mis] % a few commands
-
-% \useencoding[ans,il2,ec,tbo,pdf,uc,pol,qx,t5,cyr,agr] % pol and il2 will go away, not needed in mkiv
-% \useencoding[032,033,037] % fallbacks for some unicode chars
-% \setupencoding[\s!default=ec] % was: [\s!default=\s!default]
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/enco-lat.tex b/Master/texmf-dist/tex/context/base/enco-lat.mkii
index 2623aae8d7d..2623aae8d7d 100644
--- a/Master/texmf-dist/tex/context/base/enco-lat.tex
+++ b/Master/texmf-dist/tex/context/base/enco-lat.mkii
diff --git a/Master/texmf-dist/tex/context/base/enco-mis.tex b/Master/texmf-dist/tex/context/base/enco-mis.mkii
index b04d4ab7dc6..92dc61b3f06 100644
--- a/Master/texmf-dist/tex/context/base/enco-mis.tex
+++ b/Master/texmf-dist/tex/context/base/enco-mis.mkii
@@ -36,30 +36,6 @@
\unprotect
-% \def\pseudoencodeddj % like in babel
-% {\leavevmode\hbox\bgroup
-% \setbox0\hbox{d}%
-% \dimen0=\ht0
-% \advance\dimen0 1ex
-% \dimen0=.45\dimen0
-% \dimen2=\withoutpt\the\slantperpoint\dimen0
-% \advance\dimen2 .5ex
-% \rlap{\raise\dimen0\hbox{\kern\dimen2\vbox{\hrule\!!height0.1ex\!!width0.3em}}}%
-% \box0
-% \egroup}
-%
-% \def\pseudoencodedDJ % like in babel
-% {\leavevmode
-% \hbox\bgroup
-% \setbox0\hbox{D}%
-% \dimen0=.55\ht0
-% \dimen2=\withoutpt\the\slantperpoint\dimen0
-% \advance\dimen2 .15ex
-% \advance\dimen2 -.15\extraspace
-% \rlap{\raise\dimen0\hbox{\kern\dimen2\vbox{\hrule\!!height0.1ex\!!width0.33em}}}%
-% \box0
-% \egroup}
-
\def\pseudoencodeddj % like in babel, but safer
{\dontleavehmode\hbox\bgroup
\setbox\scratchbox\hbox{d}%
@@ -73,19 +49,6 @@
\raise\scratchdimen\hbox{\kern\dimen2\vbox{\hrule\!!height0.1ex\!!width0.3em}}}%
\egroup}
-% \def\pseudoencodedDJ % like in babel, but safer
-% {\leavevmode
-% \hbox\bgroup
-% \setbox\scratchbox\hbox{D}%
-% \scratchdimen.55\ht\scratchbox
-% \dimen2=\withoutpt\the\slantperpoint\scratchdimen
-% \advance\dimen2 .15ex
-% \advance\dimen2 -.15\extraspace
-% \hbox to \wd\scratchbox
-% {\box\scratchbox\hss
-% \raise\scratchdimen\hbox{\kern\dimen2\vbox{\hrule\!!height0.1ex\!!width0.3em}}}%
-% \egroup}
-
\def\pseudoencodedDJ % design: taco; quality assurance: mojca; cleanup: hans
{\dontleavehmode
\hbox\bgroup
diff --git a/Master/texmf-dist/tex/context/base/enco-pdf.tex b/Master/texmf-dist/tex/context/base/enco-pdf.mkii
index a03e81df25d..a03e81df25d 100644
--- a/Master/texmf-dist/tex/context/base/enco-pdf.tex
+++ b/Master/texmf-dist/tex/context/base/enco-pdf.mkii
diff --git a/Master/texmf-dist/tex/context/base/enco-pfr.mkii b/Master/texmf-dist/tex/context/base/enco-pfr.mkii
index aec926e226b..b279e40aae5 100644
--- a/Master/texmf-dist/tex/context/base/enco-pfr.mkii
+++ b/Master/texmf-dist/tex/context/base/enco-pfr.mkii
@@ -2,7 +2,7 @@
%D [ file=enco-pfr,
%D version=2000.12.10, % adapted 2005.08.14 to more delayed loading
%D title=\CONTEXT\ Encoding Macros,
-%D subtitle=PDF Font Resource Inclusion,
+%D subtitle=PDF Resources,
%D author=Hans Hagen,
%D date=\currentdate,
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
@@ -11,10 +11,295 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+\ifnum\texengine>\pdftexengine
+ \expandafter \endinput
+\fi
+
+\ifdefined\pdffontresource \else
+ \expandafter \endinput
+\fi
+
+\writestatus{loading}{ConTeXt Encoding Macros / PDF Resources}
+
+%D This is an experimental module in which we implement
+%D font resource inclusion in \PDF. One reason to include
+%D font resources is that it enables a search engine to
+%D perform a search (I'm told). This feature ws requested by
+%D Petr Ferdus from Czech.
+
+%D A simple test file may look like this (watch how we first
+%D load the encoding and then the font; previous font
+%D definitions are left untouched.)
+%D
+%D \starttyping
+%D % output=pdftex interface=en
+%D
+%D \useencoding[pfr]
+%D \setupbodyfont[csr]
+%D
+%D \starttext
+%D test \`z \'z \bf test \sl test \bs quite funny \`z \page
+%D test \`z \'z \bf test \sl test \bs quite funny \`z \page
+%D \stoptext
+%D \stoptyping
+%D
+%D We do our best to include a (often large) font resources
+%D only once. The current implementation is not that
+%D general which is also due to the fact that \type
+%D {\pdffontattr} is expanded instantly and persistent. A
+%D more versatile (but also slower) approach is to keep track
+%D of the fonts and either flush the information at shipout
+%D time, or at the end of the document.
+
+%D \macros
+%D {ifincludepdffontresources}
+%D
+%D You can turn of this feature using the following switch.
+
+\newif\ifincludepdffontresources \includepdffontresourcestrue
+
\ifx\pdfglyphtounicode\undefined \else
\appendtoks
- \doif\jobsuffix{pdf}{\readfile{pdfr-def.tex}\donothing\donothing}%
+ \doif\jobsuffix{pdf}{\readfile{pdfr-def.mkii}\donothing\donothing}%
\to \everystarttext
\fi
-\endinput
+% somehow we cannot preload this beast; also, it's mk dependent
+%
+% \appendtoks
+% \doifelse{\jobsuffix}{pdf}{\loadmkiifile{pdfr-def.mkii}}%
+% \to \everystarttext
+
+% ugly, this should go to the driver spec-tpd
+
+\ifx\pdfgentounicode\undefined \else
+ \ifcase\pdfgentounicode \else
+ \expandafter \expandafter \expandafter \endinput
+ \fi
+\fi
+
+\unprotect
+
+% a problem is that there is always an ec vector added even when
+% we switch to texnansi early; this has to do with the fact that
+% we need to setup fonts at startup; this a pain when we have
+% textless documents, so we should have a way around, i.e. an
+% extension to pdftex where we can tag numbers inside user specs
+% and attributes.
+%
+% currently we need to use immediate so we end up with entries
+
+%D The name of the resource is stored in a macro, as is its
+%D object reference. A resource is only processed once. When
+%D done, the resource name is erased, and we use this fact to
+%D prevent redefinition as well as well as reloading. So, a
+%D macro defined with \type {\pdffontfileresource} can have
+%D three states:
+%D
+%D \startitemize[packed]
+%D \item undefined: not yet loaded, and not yet included
+%D \item some value: loaded, but not yet included
+%D \item empty: loaded, and already included
+%D \stopitemize
+
+\def\pdffontresource {pdfr:\currentencoding}
+\def\pdffontfileresource{pdff:\pdffontresource}
+
+%D A resource is defined in a file prefixed by \type {pdfr-}.
+%D The following \PDF\ code is composed by Ondrej Koala Vacha (I
+%D probably mispelled this name).
+%D
+%D \starttyping
+%D \startpdffontresource[il2]
+%D /CIDInit /ProcSet findresource begin
+%D 12 dict begin
+%D begincmap
+%D /CIDSystemInfo
+%D << /Registry (Adobe)
+%D /Ordering (T1UV)
+%D /Supplement 0
+%D >> def
+%D /CMapName /Adobe-Identity-UCS def
+%D /CMapType 1 def
+%D 1 begincodespacerange
+%D <00> <FF>
+%D endcodespacerange
+%D %%FontSpecificEncoding
+%D 191 beginbfrange
+%D <20> <20> <0020> % space dec: 32 oct:040 hex:20
+%D .... .... ...... . ........ .... .. ....... ......
+%D <ff> <ff> <00ff> % dotaccent dec:255 oct:377 hex:ff
+%D endbfrange
+%D endcmap
+%D CMapName currentdict /CMap defineresource pop end
+%D end
+%D \stoppdffontresource
+%D \stoptyping
+%D
+%D We don't preload such huge definitions, and process them
+%D run||time to save memory. Therefore, in the encoding
+%D vector, we only add an entry like:
+%D
+%D \starttyping
+%D \startencoding [il2]
+%D \usepdffontresource il2
+%D \stopencoding
+%D \stoptyping
+%D
+%D This macro is defined as follows.
+
+\def\usepdffontresource #1 %
+ {\doifundefinedelse\pdffontfileresource % okay, undefined, so either
+ {\setxvalue\pdffontfileresource{#1}} % brand new, or not yet loaded
+ {\doifvaluesomething\pdffontfileresource % only if not loaded in which
+ {\setxvalue\pdffontfileresource{#1}}}} % case it's made empty
+
+%D Watch how we check for duplicated loading. The resource
+%D itself, when asked for, is included immediately, after which
+%D we save its reference. Normally a document will have one
+%D such a resource.
+
+% \long\def\startpdffontresource[#1]#2\stoppdffontresource
+% {\doif{#1}\currentencoding
+% {\immediate\pdfobj useobjnum \getvalue{\pdffontresource} stream {#2}}}
+
+% alternatively we can use object references
+
+% fails when we switch back and forward between dvi/pdf mode
+%
+% \long\def\startpdffontresource[#1]#2\stoppdffontresource
+% {\doif{#1}\currentencoding{\doifdefined\pdffontresource
+% {\immediate\pdfobj useobjnum \getvalue{\pdffontresource} stream {#2}}}}
+
+\long\def\startpdffontresource[#1]#2\stoppdffontresource
+ {\doif{#1}\currentencoding{\doifdefined\pdffontresource
+ {\expanded{\doshipoutpdffontresource{\getvalue{\pdffontresource}}{#2}}}}}
+
+\def\doshipoutpdffontresource#1#2%
+ {\ifnum\realpageno<\plustwo
+ \doglobal\appendtoks
+ \ifcase\pdfoutput\else\immediate\pdfobj useobjnum #1 stream {#2}\fi
+ \to\everyfirstshipout
+ \else
+ \ifcase\pdfoutput\else\immediate\pdfobj useobjnum #1 stream {#2}\fi
+ \fi}
+
+% cleaner but not better:
+%
+% \newtoks \collectedpdffontresources
+%
+% \def\doshipoutpdffontresource#1#2%
+% {\doglobal\appendtoks
+% \ifcase\pdfoutput\else\immediate\pdfobj useobjnum #1 stream {#2}\fi
+% \to \collectedpdffontresources}
+%
+% \def\dofluspdffontresources
+% {\the\collectedpdffontresources
+% \global\collectedpdffontresources\emptytoks}
+%
+% \appendtoks \dofluspdffontresources \to \everybeforeshipout
+
+%D The reference to such a vector is to be handled at font
+%D definition time, which is why we hook it into the font
+%D loading routine. A little bit of indirectness speeds up
+%D the process when this feature is disabled and keeps the
+%D macros readable.
+
+% \newevery \everyfont \relax
+
+\appendtoksonce \includepdffontresource \to \everyfont
+
+% \def\includepdffontresource
+% {\ifincludepdffontresources
+% \ifx\pdffontattr\undefined
+% % we're not using (a recent version of) pdftex
+% \else\ifcase\pdfoutput
+% % we're not in pdf mode
+% \else
+% \doincludepdffontresource
+% \fi\fi
+% \fi}
+
+\def\includepdffontresource
+ {\ifx\pdfgentounicode\undefined
+ \expandafter\ifx\the\font\nullfont \else
+ \ifx\pdffontattr\undefined
+ % we're not using (a recent version of) pdftex
+ \else\ifcase\pdfoutput
+ % we're not in pdf mode
+ \else
+ \doincludepdffontresource
+ \fi\fi
+ \fi
+ \else\ifcase\pdfgentounicode
+ \ifincludepdffontresources
+ \expandafter\ifx\the\font\nullfont \else
+ \ifx\pdffontattr\undefined
+ % we're not using (a recent version of) pdftex
+ \else\ifcase\pdfoutput
+ % we're not in pdf mode
+ \else
+ \doincludepdffontresource
+ \fi\fi
+ \fi
+ \fi
+ \or
+ \global\let\includepdffontresource\relax % automatic, built in
+ \fi\fi}
+
+\def\dododoincludepdffontresource#1% encoding
+ {\bgroup
+ \edef\currentencoding{#1}%
+ \doifvaluesomething\pdffontfileresource
+ {\startreadingfile
+ \ignorelines % just in case \par is redefined; this thing can get called anywhere
+ \readsysfile{pdfr-\getvalue\pdffontfileresource.mkii}\donothing\donothing
+ \stopreadingfile
+ \letgvalue\pdffontfileresource\empty}%
+ \egroup}
+
+\def\doincludepdffontresource
+ {\ifcsname\s!ucmap\fontfile\endcsname\else
+ \dodoincludepdffontresource
+ \fi}
+
+\def\dodoincludepdffontresource
+ {% does this font has an encoding specified vector
+ \doifsomething\currentencoding % no \ifx
+ {% is there a pdf font encoding resource file defined
+ \ifcsname\pdffontresource\endcsname
+ % (fake) object defined
+ \else\ifcsname\pdffontfileresource\endcsname
+ % is there a resource already included
+ \doifsomething\pdffontfileresource
+ {\pdfobj reserveobjnum {}%
+ \setxvalue\pdffontresource{\the\pdflastobj}%
+ \flushatshipout{\dododoincludepdffontresource{\currentencoding}}}%
+% \doglobal\appendetoks
+% \noexpand\dododoincludepdffontresource{\currentencoding}%
+% \to \everybeforeshipout}% prevent multiple loading
+ \fi\fi
+ \ifcsname\pdffontresource\endcsname
+ \expanded{\pdffontattr\font{/ToUnicode \csname\pdffontresource\endcsname\space0 R}}%
+ % do it only once for each font
+ \letgvalue{\s!ucmap\fontfile}\empty
+ \fi}}
+
+%D For the moment, we keep this definition here, if only
+%D because \type {\usepdffontencoding} is not defined in the
+%D core. In the end, this will go to \type {enco-*.tex}.
+%D
+%D Test:
+%D
+%D \starttyping
+%D \useencoding[pfr] \usetypescript[palatino][ec] \setupbodyfont[palatino]
+%D
+%D \starttext
+%D fi ff ffi
+%D \stoptext
+%D \stoptyping
+
+\startencoding [il2] \usepdffontresource il2 \stopencoding
+\startencoding [ec] \usepdffontresource ec \stopencoding
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/enco-pfr.mkiv b/Master/texmf-dist/tex/context/base/enco-pfr.mkiv
deleted file mode 100644
index 52ef0cc3b21..00000000000
--- a/Master/texmf-dist/tex/context/base/enco-pfr.mkiv
+++ /dev/null
@@ -1,22 +0,0 @@
-%D \module
-%D [ file=enco-pfr,
-%D version=2000.12.10, % adapted 2005.08.14 to more delayed loading
-%D title=\CONTEXT\ Encoding Macros,
-%D subtitle=PDF Font Resource Inclusion,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% obsolete, at least for wide fonts, we may need to support it otherwise
-%
-% \ifx\pdfglyphtounicode\undefined \else
-% \appendtoks
-% \doif\jobsuffix{pdf}{\ctxlua{characters.setpdfunicodes()}}% pdftounicode mappings can only be done runtime
-% \to \everystarttext
-% \fi
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/enco-pfr.tex b/Master/texmf-dist/tex/context/base/enco-pfr.tex
deleted file mode 100644
index 902eb7bcd55..00000000000
--- a/Master/texmf-dist/tex/context/base/enco-pfr.tex
+++ /dev/null
@@ -1,303 +0,0 @@
-%D \module
-%D [ file=enco-pfr,
-%D version=2000.12.10, % adapted 2005.08.14 to more delayed loading
-%D title=\CONTEXT\ Encoding Macros,
-%D subtitle=PDF Font Resource Inclusion,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\beginXETEX
- \endinput
-\endXETEX
-
-\beginLUATEX
- \endinput
-\endLUATEX
-
-\ifx\pdffontresource\undefined\else\endinput\fi
-
-\writestatus{loading}{Context Encoding Macros (pdf)}
-
-%D This is an experimental module in which we implement
-%D font resource inclusion in \PDF. One reason to include
-%D font resources is that it enables a search engine to
-%D perform a search (I'm told). This feature ws requested by
-%D Petr Ferdus from Czech.
-
-%D A simple test file may look like this (watch how we first
-%D load the encoding and then the font; previous font
-%D definitions are left untouched.)
-%D
-%D \starttyping
-%D % output=pdftex interface=en
-%D
-%D \useencoding[pfr]
-%D \setupbodyfont[csr]
-%D
-%D \starttext
-%D test \`z \'z \bf test \sl test \bs quite funny \`z \page
-%D test \`z \'z \bf test \sl test \bs quite funny \`z \page
-%D \stoptext
-%D \stoptyping
-%D
-%D We do our best to include a (often large) font resources
-%D only once. The current implementation is not that
-%D general which is also due to the fact that \type
-%D {\pdffontattr} is expanded instantly and persistent. A
-%D more versatile (but also slower) approach is to keep track
-%D of the fonts and either flush the information at shipout
-%D time, or at the end of the document.
-
-%D \macros
-%D {ifincludepdffontresources}
-%D
-%D You can turn of this feature using the following switch.
-
-\newif\ifincludepdffontresources \includepdffontresourcestrue
-
-\ifx\pdfglyphtounicode\undefined \else \loadmarkfile{enco-pfr} \fi
-
-% somehow we cannot preload this beast; also, it's mk dependent
-%
-% \appendtoks
-% \doifelse{\jobsuffix}{pdf}{\loadmkiifile{pdfr-def.tex}}%
-% \to \everystarttext
-
-% ugly, this should go to the driver spec-tpd
-
-\ifx\pdfgentounicode\undefined \else
- \ifcase\pdfgentounicode \else
- \expandafter \expandafter \expandafter \endinput
- \fi
-\fi
-
-\unprotect
-
-% a problem is that there is always an ec vector added even when
-% we switch to texnansi early; this has to do with the fact that
-% we need to setup fonts at startup; this a pain when we have
-% textless documents, so we should have a way around, i.e. an
-% extension to pdftex where we can tag numbers inside user specs
-% and attributes.
-%
-% currently we need to use immediate so we end up with entries
-
-%D The name of the resource is stored in a macro, as is its
-%D object reference. A resource is only processed once. When
-%D done, the resource name is erased, and we use this fact to
-%D prevent redefinition as well as well as reloading. So, a
-%D macro defined with \type {\pdffontfileresource} can have
-%D three states:
-%D
-%D \startitemize[packed]
-%D \item undefined: not yet loaded, and not yet included
-%D \item some value: loaded, but not yet included
-%D \item empty: loaded, and already included
-%D \stopitemize
-
-\def\pdffontresource {pdfr:\currentencoding}
-\def\pdffontfileresource{pdff:\pdffontresource}
-
-%D A resource is defined in a file prefixed by \type {pdfr-}.
-%D The following \PDF\ code is composed by Ondrej Koala Vacha (I
-%D probably mispelled this name).
-%D
-%D \starttyping
-%D \startpdffontresource[il2]
-%D /CIDInit /ProcSet findresource begin
-%D 12 dict begin
-%D begincmap
-%D /CIDSystemInfo
-%D << /Registry (Adobe)
-%D /Ordering (T1UV)
-%D /Supplement 0
-%D >> def
-%D /CMapName /Adobe-Identity-UCS def
-%D /CMapType 1 def
-%D 1 begincodespacerange
-%D <00> <FF>
-%D endcodespacerange
-%D %%FontSpecificEncoding
-%D 191 beginbfrange
-%D <20> <20> <0020> % space dec: 32 oct:040 hex:20
-%D .... .... ...... . ........ .... .. ....... ......
-%D <ff> <ff> <00ff> % dotaccent dec:255 oct:377 hex:ff
-%D endbfrange
-%D endcmap
-%D CMapName currentdict /CMap defineresource pop end
-%D end
-%D \stoppdffontresource
-%D \stoptyping
-%D
-%D We don't preload such huge definitions, and process them
-%D run||time to save memory. Therefore, in the encoding
-%D vector, we only add an entry like:
-%D
-%D \starttyping
-%D \startencoding [il2]
-%D \usepdffontresource il2
-%D \stopencoding
-%D \stoptyping
-%D
-%D This macro is defined as follows.
-
-\def\usepdffontresource #1 %
- {\doifundefinedelse\pdffontfileresource % okay, undefined, so either
- {\setxvalue\pdffontfileresource{#1}} % brand new, or not yet loaded
- {\doifvaluesomething\pdffontfileresource % only if not loaded in which
- {\setxvalue\pdffontfileresource{#1}}}} % case it's made empty
-
-%D Watch how we check for duplicated loading. The resource
-%D itself, when asked for, is included immediately, after which
-%D we save its reference. Normally a document will have one
-%D such a resource.
-
-% \long\def\startpdffontresource[#1]#2\stoppdffontresource
-% {\doif{#1}\currentencoding
-% {\immediate\pdfobj useobjnum \getvalue{\pdffontresource} stream {#2}}}
-
-% alternatively we can use object references
-
-% fails when we switch back and forward between dvi/pdf mode
-%
-% \long\def\startpdffontresource[#1]#2\stoppdffontresource
-% {\doif{#1}\currentencoding{\doifdefined\pdffontresource
-% {\immediate\pdfobj useobjnum \getvalue{\pdffontresource} stream {#2}}}}
-
-\long\def\startpdffontresource[#1]#2\stoppdffontresource
- {\doif{#1}\currentencoding{\doifdefined\pdffontresource
- {\expanded{\doshipoutpdffontresource{\getvalue{\pdffontresource}}{#2}}}}}
-
-\def\doshipoutpdffontresource#1#2%
- {\ifnum\realpageno<\plustwo
- \doglobal\appendtoks
- \ifcase\pdfoutput\else\immediate\pdfobj useobjnum #1 stream {#2}\fi
- \to\everyfirstshipout
- \else
- \ifcase\pdfoutput\else\immediate\pdfobj useobjnum #1 stream {#2}\fi
- \fi}
-
-% cleaner but not better:
-%
-% \newtoks \collectedpdffontresources
-%
-% \def\doshipoutpdffontresource#1#2%
-% {\doglobal\appendtoks
-% \ifcase\pdfoutput\else\immediate\pdfobj useobjnum #1 stream {#2}\fi
-% \to \collectedpdffontresources}
-%
-% \def\dofluspdffontresources
-% {\the\collectedpdffontresources
-% \global\collectedpdffontresources\emptytoks}
-%
-% \appendtoks \dofluspdffontresources \to \everybeforeshipout
-
-%D The reference to such a vector is to be handled at font
-%D definition time, which is why we hook it into the font
-%D loading routine. A little bit of indirectness speeds up
-%D the process when this feature is disabled and keeps the
-%D macros readable.
-
-% \newevery \everyfont \relax
-
-\appendtoksonce \includepdffontresource \to \everyfont
-
-% \def\includepdffontresource
-% {\ifincludepdffontresources
-% \ifx\pdffontattr\undefined
-% % we're not using (a recent version of) pdftex
-% \else\ifcase\pdfoutput
-% % we're not in pdf mode
-% \else
-% \doincludepdffontresource
-% \fi\fi
-% \fi}
-
-\def\includepdffontresource
- {\ifx\pdfgentounicode\undefined
- \expandafter\ifx\the\font\nullfont \else
- \ifx\pdffontattr\undefined
- % we're not using (a recent version of) pdftex
- \else\ifcase\pdfoutput
- % we're not in pdf mode
- \else
- \doincludepdffontresource
- \fi\fi
- \fi
- \else\ifcase\pdfgentounicode
- \ifincludepdffontresources
- \expandafter\ifx\the\font\nullfont \else
- \ifx\pdffontattr\undefined
- % we're not using (a recent version of) pdftex
- \else\ifcase\pdfoutput
- % we're not in pdf mode
- \else
- \doincludepdffontresource
- \fi\fi
- \fi
- \fi
- \or
- \global\let\includepdffontresource\relax % automatic, built in
- \fi\fi}
-
-\def\dododoincludepdffontresource#1% encoding
- {\bgroup
- \edef\currentencoding{#1}%
- \doifvaluesomething\pdffontfileresource
- {\startreadingfile
- \ignorelines % just in case \par is redefined; this thing can get called anywhere
- \readsysfile{pdfr-\getvalue\pdffontfileresource}\donothing\donothing
- \stopreadingfile
- \letgvalue\pdffontfileresource\empty}%
- \egroup}
-
-\def\doincludepdffontresource
- {\ifcsname\s!ucmap\fontfile\endcsname\else
- \dodoincludepdffontresource
- \fi}
-
-\def\dodoincludepdffontresource
- {% does this font has an encoding specified vector
- \doifsomething\currentencoding % no \ifx
- {% is there a pdf font encoding resource file defined
- \ifcsname\pdffontresource\endcsname
- % (fake) object defined
- \else\ifcsname\pdffontfileresource\endcsname
- % is there a resource already included
- \doifsomething\pdffontfileresource
- {\pdfobj reserveobjnum {}%
- \setxvalue\pdffontresource{\the\pdflastobj}%
- \flushatshipout{\dododoincludepdffontresource{\currentencoding}}}%
-% \doglobal\appendetoks
-% \noexpand\dododoincludepdffontresource{\currentencoding}%
-% \to \everybeforeshipout}% prevent multiple loading
- \fi\fi
- \ifcsname\pdffontresource\endcsname
- \expanded{\pdffontattr\font{/ToUnicode \csname\pdffontresource\endcsname\space0 R}}%
- % do it only once for each font
- \letgvalue{\s!ucmap\fontfile}\empty
- \fi}}
-
-%D For the moment, we keep this definition here, if only
-%D because \type {\usepdffontencoding} is not defined in the
-%D core. In the end, this will go to \type {enco-*.tex}.
-%D
-%D Test:
-%D
-%D \starttyping
-%D \useencoding[pfr] \usetypescript[palatino][ec] \setupbodyfont[palatino]
-%D
-%D \starttext
-%D fi ff ffi
-%D \stoptext
-%D \stoptyping
-
-\startencoding [il2] \usepdffontresource il2 \stopencoding
-\startencoding [ec] \usepdffontresource ec \stopencoding
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/enco-pol.tex b/Master/texmf-dist/tex/context/base/enco-pol.mkii
index a012f03708c..a012f03708c 100644
--- a/Master/texmf-dist/tex/context/base/enco-pol.tex
+++ b/Master/texmf-dist/tex/context/base/enco-pol.mkii
diff --git a/Master/texmf-dist/tex/context/base/enco-qx.tex b/Master/texmf-dist/tex/context/base/enco-qx.mkii
index 407d60bd736..407d60bd736 100644
--- a/Master/texmf-dist/tex/context/base/enco-qx.tex
+++ b/Master/texmf-dist/tex/context/base/enco-qx.mkii
diff --git a/Master/texmf-dist/tex/context/base/enco-raw.tex b/Master/texmf-dist/tex/context/base/enco-raw.mkii
index e3a46e3d768..e3a46e3d768 100644
--- a/Master/texmf-dist/tex/context/base/enco-raw.tex
+++ b/Master/texmf-dist/tex/context/base/enco-raw.mkii
diff --git a/Master/texmf-dist/tex/context/base/enco-run.tex b/Master/texmf-dist/tex/context/base/enco-run.mkii
index d78b6e4c8f3..50fb52e158b 100644
--- a/Master/texmf-dist/tex/context/base/enco-run.tex
+++ b/Master/texmf-dist/tex/context/base/enco-run.mkii
@@ -98,53 +98,52 @@
% {\font\test=uplr8t \test \ruledhbox{t}
% \font\test=uplr8r \test \ruledhbox{t}}
-\beginETEX \fontcharwd
+\ifnum\texengine=\pdftexengine
-\gdef\showcharacterbounds
- {\bgroup
- \localcolortrue
- \dorecurse{255}
- {\ifdim\fontcharwd\font\recurselevel>\zeropoint
- \noindent\ruledhbox{\darkgray\char\recurselevel}\space
- \fi}\unskip
- \egroup}
+ \gdef\showhyphenations#1%
+ {\starttabulate[|le|l|]
+ \NC language \NC \currentlanguage\ (internal code:\the\normallanguage) \NC \NR
+ \NC font \NC \fontname\font \NC \NR
+ \NC encoding \NC \ifx\@@fontencoding\empty not set\else\@@fontencoding\fi \NC \NR
+ \NC mapping \NC \ifx\@@fontmapping \empty not set\else\@@fontmapping \fi \NC \NR
+ \NC handling \NC \ifx\@@fonthandling\empty not set\else\@@fonthandling\fi \NC \NR
+ \NC sample \NC \hyphenatedword{#1} \NC \NR
+ \stoptabulate}
-\endETEX
+ \gdef\showmapping
+ {\dostepwiserecurse{128}{255}{1}
+ {\hbox\bgroup
+ \hbox to 2em{\hss\recurselevel}%
+ \hbox to 2em{\hss\char\recurselevel\hss}%
+ \hbox to 3em{\hss\ifcase\lccode\recurselevel\else\the \lccode\recurselevel\fi}%
+ \hbox to 2em{\hss\ifcase\lccode\recurselevel\else\char\lccode\recurselevel\fi\hss}%
+ \hbox to 3em{\hss\ifcase\lccode\recurselevel\else\the \uccode\recurselevel\fi}%
+ \hbox to 2em{\hss\ifcase\uccode\recurselevel\else\char\uccode\recurselevel\fi\hss}%
+ \egroup
+ \endgraf}}
-\beginTEX
+ \gdef\showcharacterbounds
+ {\bgroup
+ \localcolortrue
+ \dorecurse{255}
+ {\ifdim\fontcharwd\font\recurselevel>\zeropoint
+ \noindent\ruledhbox{\darkgray\char\recurselevel}\space
+ \fi}\unskip
+ \egroup}
-\gdef\showcharacterbounds
- {\bgroup
- \localcolortrue
- \dorecurse{255}
- {\setbox\scratchbox\ruledhbox{\darkgray\char\recurselevel}%
- \ifnum\wd\scratchbox>\zeropoint
- \noindent\box\scratchbox\space
- \fi}\unskip
- \egroup}
+\else
+
+ \gdef\showhyphenations#1%
+ {\starttabulate[|le|l|]
+ \NC language \NC \currentlanguage\ (internal code:\the\normallanguage) \NC \NR
+ \NC font \NC \fontname\font \NC \NR
+ \NC sample \NC \hyphenatedword{#1} \NC \NR
+ \stoptabulate}
+
+ \globallet\showmapping\relax
+
+ \globallet\showcharacterbounds\relax
-\endTEX
-
-\gdef\showhyphenations#1%
- {\starttabulate[|le|l|]
- \NC language \NC \currentlanguage\ (internal code:\the\normallanguage) \NC \NR
- \NC font \NC \fontname\font \NC \NR
- \NC encoding \NC \ifx\@@fontencoding\empty not set\else\@@fontencoding\fi \NC \NR
- \NC mapping \NC \ifx\@@fontmapping \empty not set\else\@@fontmapping \fi \NC \NR
- \NC handling \NC \ifx\@@fonthandling\empty not set\else\@@fonthandling\fi \NC \NR
- \NC sample \NC \hyphenatedword{#1} \NC \NR
- \stoptabulate}
-
-\gdef\showmapping
- {\dostepwiserecurse{128}{255}{1}
- {\hbox\bgroup
- \hbox to 2em{\hss\recurselevel}%
- \hbox to 2em{\hss\char\recurselevel\hss}%
- \hbox to 3em{\hss\ifcase\lccode\recurselevel\else\the \lccode\recurselevel\fi}%
- \hbox to 2em{\hss\ifcase\lccode\recurselevel\else\char\lccode\recurselevel\fi\hss}%
- \hbox to 3em{\hss\ifcase\lccode\recurselevel\else\the \uccode\recurselevel\fi}%
- \hbox to 2em{\hss\ifcase\uccode\recurselevel\else\char\uccode\recurselevel\fi\hss}%
- \egroup
- \endgraf}}
+\fi
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/enco-t5.tex b/Master/texmf-dist/tex/context/base/enco-t5.mkii
index ee9fa4856a6..251c6876591 100644
--- a/Master/texmf-dist/tex/context/base/enco-t5.tex
+++ b/Master/texmf-dist/tex/context/base/enco-t5.mkii
@@ -210,8 +210,8 @@
%
% \def\xfiveencodedAA%
% {\leavevmode
-% \setbox\z@\hbox{h}%
-% \dimen@\ht\z@
+% \setbox\zerocount\hbox{h}%
+% \dimen@\ht\zerocount
% \advance\dimen@ -1ex
% \rlap{\raise.67\dimen@\hbox{\char23}}A}
diff --git a/Master/texmf-dist/tex/context/base/enco-tbo.tex b/Master/texmf-dist/tex/context/base/enco-tbo.mkii
index 475be4602f8..475be4602f8 100644
--- a/Master/texmf-dist/tex/context/base/enco-tbo.tex
+++ b/Master/texmf-dist/tex/context/base/enco-tbo.mkii
diff --git a/Master/texmf-dist/tex/context/base/enco-uc.tex b/Master/texmf-dist/tex/context/base/enco-uc.mkii
index 981eb6ae455..981eb6ae455 100644
--- a/Master/texmf-dist/tex/context/base/enco-uc.tex
+++ b/Master/texmf-dist/tex/context/base/enco-uc.mkii
diff --git a/Master/texmf-dist/tex/context/base/enco-utf.tex b/Master/texmf-dist/tex/context/base/enco-utf.tex
deleted file mode 100644
index bfb42738128..00000000000
--- a/Master/texmf-dist/tex/context/base/enco-utf.tex
+++ /dev/null
@@ -1,3126 +0,0 @@
-% filename : enco-utf.tex
-% comment : generated by mtxrun --script chars --utf
-% author : Hans Hagen, PRAGMA-ADE, Hasselt NL
-% copyright: PRAGMA ADE / ConTeXt Development Team
-% license : see context related readme files
-
-\ifx\setcclcucx\undefined
-
- \def\setcclcucx #1 #2 #3 %
- {\global\catcode"#1=11
- \global\lccode "#1="#2
- \global\uccode "#1="#3 }
-
-\fi
-
-% lc/uc/catcode mappings
-
-\setcclcucx 0041 0061 0041 % LATIN CAPITAL LETTER A
-\setcclcucx 0042 0062 0042 % LATIN CAPITAL LETTER B
-\setcclcucx 0043 0063 0043 % LATIN CAPITAL LETTER C
-\setcclcucx 0044 0064 0044 % LATIN CAPITAL LETTER D
-\setcclcucx 0045 0065 0045 % LATIN CAPITAL LETTER E
-\setcclcucx 0046 0066 0046 % LATIN CAPITAL LETTER F
-\setcclcucx 0047 0067 0047 % LATIN CAPITAL LETTER G
-\setcclcucx 0048 0068 0048 % LATIN CAPITAL LETTER H
-\setcclcucx 0049 0069 0049 % LATIN CAPITAL LETTER I
-\setcclcucx 004A 006A 004A % LATIN CAPITAL LETTER J
-\setcclcucx 004B 006B 004B % LATIN CAPITAL LETTER K
-\setcclcucx 004C 006C 004C % LATIN CAPITAL LETTER L
-\setcclcucx 004D 006D 004D % LATIN CAPITAL LETTER M
-\setcclcucx 004E 006E 004E % LATIN CAPITAL LETTER N
-\setcclcucx 004F 006F 004F % LATIN CAPITAL LETTER O
-\setcclcucx 0050 0070 0050 % LATIN CAPITAL LETTER P
-\setcclcucx 0051 0071 0051 % LATIN CAPITAL LETTER Q
-\setcclcucx 0052 0072 0052 % LATIN CAPITAL LETTER R
-\setcclcucx 0053 0073 0053 % LATIN CAPITAL LETTER S
-\setcclcucx 0054 0074 0054 % LATIN CAPITAL LETTER T
-\setcclcucx 0055 0075 0055 % LATIN CAPITAL LETTER U
-\setcclcucx 0056 0076 0056 % LATIN CAPITAL LETTER V
-\setcclcucx 0057 0077 0057 % LATIN CAPITAL LETTER W
-\setcclcucx 0058 0078 0058 % LATIN CAPITAL LETTER X
-\setcclcucx 0059 0079 0059 % LATIN CAPITAL LETTER Y
-\setcclcucx 005A 007A 005A % LATIN CAPITAL LETTER Z
-\setcclcucx 0061 0061 0041 % LATIN SMALL LETTER A
-\setcclcucx 0062 0062 0042 % LATIN SMALL LETTER B
-\setcclcucx 0063 0063 0043 % LATIN SMALL LETTER C
-\setcclcucx 0064 0064 0044 % LATIN SMALL LETTER D
-\setcclcucx 0065 0065 0045 % LATIN SMALL LETTER E
-\setcclcucx 0066 0066 0046 % LATIN SMALL LETTER F
-\setcclcucx 0067 0067 0047 % LATIN SMALL LETTER G
-\setcclcucx 0068 0068 0048 % LATIN SMALL LETTER H
-\setcclcucx 0069 0069 0049 % LATIN SMALL LETTER I
-\setcclcucx 006A 006A 004A % LATIN SMALL LETTER J
-\setcclcucx 006B 006B 004B % LATIN SMALL LETTER K
-\setcclcucx 006C 006C 004C % LATIN SMALL LETTER L
-\setcclcucx 006D 006D 004D % LATIN SMALL LETTER M
-\setcclcucx 006E 006E 004E % LATIN SMALL LETTER N
-\setcclcucx 006F 006F 004F % LATIN SMALL LETTER O
-\setcclcucx 0070 0070 0050 % LATIN SMALL LETTER P
-\setcclcucx 0071 0071 0051 % LATIN SMALL LETTER Q
-\setcclcucx 0072 0072 0052 % LATIN SMALL LETTER R
-\setcclcucx 0073 0073 0053 % LATIN SMALL LETTER S
-\setcclcucx 0074 0074 0054 % LATIN SMALL LETTER T
-\setcclcucx 0075 0075 0055 % LATIN SMALL LETTER U
-\setcclcucx 0076 0076 0056 % LATIN SMALL LETTER V
-\setcclcucx 0077 0077 0057 % LATIN SMALL LETTER W
-\setcclcucx 0078 0078 0058 % LATIN SMALL LETTER X
-\setcclcucx 0079 0079 0059 % LATIN SMALL LETTER Y
-\setcclcucx 007A 007A 005A % LATIN SMALL LETTER Z
-\setcclcucx 00AA 00AA 00AA % FEMININE ORDINAL INDICATOR
-\setcclcucx 00B5 00B5 039C % MICRO SIGN
-\setcclcucx 00BA 00BA 00BA % MASCULINE ORDINAL INDICATOR
-\setcclcucx 00C0 00E0 00C0 % LATIN CAPITAL LETTER A WITH GRAVE
-\setcclcucx 00C1 00E1 00C1 % LATIN CAPITAL LETTER A WITH ACUTE
-\setcclcucx 00C2 00E2 00C2 % LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-\setcclcucx 00C3 00E3 00C3 % LATIN CAPITAL LETTER A WITH TILDE
-\setcclcucx 00C4 00E4 00C4 % LATIN CAPITAL LETTER A WITH DIAERESIS
-\setcclcucx 00C5 00E5 00C5 % LATIN CAPITAL LETTER A WITH RING ABOVE
-\setcclcucx 00C6 00E6 00C6 % LATIN CAPITAL LETTER AE
-\setcclcucx 00C7 00E7 00C7 % LATIN CAPITAL LETTER C WITH CEDILLA
-\setcclcucx 00C8 00E8 00C8 % LATIN CAPITAL LETTER E WITH GRAVE
-\setcclcucx 00C9 00E9 00C9 % LATIN CAPITAL LETTER E WITH ACUTE
-\setcclcucx 00CA 00EA 00CA % LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-\setcclcucx 00CB 00EB 00CB % LATIN CAPITAL LETTER E WITH DIAERESIS
-\setcclcucx 00CC 00EC 00CC % LATIN CAPITAL LETTER I WITH GRAVE
-\setcclcucx 00CD 00ED 00CD % LATIN CAPITAL LETTER I WITH ACUTE
-\setcclcucx 00CE 00EE 00CE % LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-\setcclcucx 00CF 00EF 00CF % LATIN CAPITAL LETTER I WITH DIAERESIS
-\setcclcucx 00D0 00F0 00D0 % LATIN CAPITAL LETTER ETH
-\setcclcucx 00D1 00F1 00D1 % LATIN CAPITAL LETTER N WITH TILDE
-\setcclcucx 00D2 00F2 00D2 % LATIN CAPITAL LETTER O WITH GRAVE
-\setcclcucx 00D3 00F3 00D3 % LATIN CAPITAL LETTER O WITH ACUTE
-\setcclcucx 00D4 00F4 00D4 % LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-\setcclcucx 00D5 00F5 00D5 % LATIN CAPITAL LETTER O WITH TILDE
-\setcclcucx 00D6 00F6 00D6 % LATIN CAPITAL LETTER O WITH DIAERESIS
-\setcclcucx 00D8 00F8 00D8 % LATIN CAPITAL LETTER O WITH STROKE
-\setcclcucx 00D9 00F9 00D9 % LATIN CAPITAL LETTER U WITH GRAVE
-\setcclcucx 00DA 00FA 00DA % LATIN CAPITAL LETTER U WITH ACUTE
-\setcclcucx 00DB 00FB 00DB % LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-\setcclcucx 00DC 00FC 00DC % LATIN CAPITAL LETTER U WITH DIAERESIS
-\setcclcucx 00DD 00FD 00DD % LATIN CAPITAL LETTER Y WITH ACUTE
-\setcclcucx 00DE 00FE 00DE % LATIN CAPITAL LETTER THORN
-\setcclcucx 00DF 00DF 00DF % LATIN SMALL LETTER SHARP S
-\setcclcucx 00E0 00E0 00C0 % LATIN SMALL LETTER A WITH GRAVE
-\setcclcucx 00E1 00E1 00C1 % LATIN SMALL LETTER A WITH ACUTE
-\setcclcucx 00E2 00E2 00C2 % LATIN SMALL LETTER A WITH CIRCUMFLEX
-\setcclcucx 00E3 00E3 00C3 % LATIN SMALL LETTER A WITH TILDE
-\setcclcucx 00E4 00E4 00C4 % LATIN SMALL LETTER A WITH DIAERESIS
-\setcclcucx 00E5 00E5 00C5 % LATIN SMALL LETTER A WITH RING ABOVE
-\setcclcucx 00E6 00E6 00C6 % LATIN SMALL LETTER AE
-\setcclcucx 00E7 00E7 00C7 % LATIN SMALL LETTER C WITH CEDILLA
-\setcclcucx 00E8 00E8 00C8 % LATIN SMALL LETTER E WITH GRAVE
-\setcclcucx 00E9 00E9 00C9 % LATIN SMALL LETTER E WITH ACUTE
-\setcclcucx 00EA 00EA 00CA % LATIN SMALL LETTER E WITH CIRCUMFLEX
-\setcclcucx 00EB 00EB 00CB % LATIN SMALL LETTER E WITH DIAERESIS
-\setcclcucx 00EC 00EC 00CC % LATIN SMALL LETTER I WITH GRAVE
-\setcclcucx 00ED 00ED 00CD % LATIN SMALL LETTER I WITH ACUTE
-\setcclcucx 00EE 00EE 00CE % LATIN SMALL LETTER I WITH CIRCUMFLEX
-\setcclcucx 00EF 00EF 00CF % LATIN SMALL LETTER I WITH DIAERESIS
-\setcclcucx 00F0 00F0 00D0 % LATIN SMALL LETTER ETH
-\setcclcucx 00F1 00F1 00D1 % LATIN SMALL LETTER N WITH TILDE
-\setcclcucx 00F2 00F2 00D2 % LATIN SMALL LETTER O WITH GRAVE
-\setcclcucx 00F3 00F3 00D3 % LATIN SMALL LETTER O WITH ACUTE
-\setcclcucx 00F4 00F4 00D4 % LATIN SMALL LETTER O WITH CIRCUMFLEX
-\setcclcucx 00F5 00F5 00D5 % LATIN SMALL LETTER O WITH TILDE
-\setcclcucx 00F6 00F6 00D6 % LATIN SMALL LETTER O WITH DIAERESIS
-\setcclcucx 00F8 00F8 00D8 % LATIN SMALL LETTER O WITH STROKE
-\setcclcucx 00F9 00F9 00D9 % LATIN SMALL LETTER U WITH GRAVE
-\setcclcucx 00FA 00FA 00DA % LATIN SMALL LETTER U WITH ACUTE
-\setcclcucx 00FB 00FB 00DB % LATIN SMALL LETTER U WITH CIRCUMFLEX
-\setcclcucx 00FC 00FC 00DC % LATIN SMALL LETTER U WITH DIAERESIS
-\setcclcucx 00FD 00FD 00DD % LATIN SMALL LETTER Y WITH ACUTE
-\setcclcucx 00FE 00FE 00DE % LATIN SMALL LETTER THORN
-\setcclcucx 00FF 00FF 0178 % LATIN SMALL LETTER Y WITH DIAERESIS
-\setcclcucx 0100 0101 0100 % LATIN CAPITAL LETTER A WITH MACRON
-\setcclcucx 0101 0101 0100 % LATIN SMALL LETTER A WITH MACRON
-\setcclcucx 0102 0103 0102 % LATIN CAPITAL LETTER A WITH BREVE
-\setcclcucx 0103 0103 0102 % LATIN SMALL LETTER A WITH BREVE
-\setcclcucx 0104 0105 0104 % LATIN CAPITAL LETTER A WITH OGONEK
-\setcclcucx 0105 0105 0104 % LATIN SMALL LETTER A WITH OGONEK
-\setcclcucx 0106 0107 0106 % LATIN CAPITAL LETTER C WITH ACUTE
-\setcclcucx 0107 0107 0106 % LATIN SMALL LETTER C WITH ACUTE
-\setcclcucx 0108 0109 0108 % LATIN CAPITAL LETTER C WITH CIRCUMFLEX
-\setcclcucx 0109 0109 0108 % LATIN SMALL LETTER C WITH CIRCUMFLEX
-\setcclcucx 010A 010B 010A % LATIN CAPITAL LETTER C WITH DOT ABOVE
-\setcclcucx 010B 010B 010A % LATIN SMALL LETTER C WITH DOT ABOVE
-\setcclcucx 010C 010D 010C % LATIN CAPITAL LETTER C WITH CARON
-\setcclcucx 010D 010D 010C % LATIN SMALL LETTER C WITH CARON
-\setcclcucx 010E 010F 010E % LATIN CAPITAL LETTER D WITH CARON
-\setcclcucx 010F 010F 010E % LATIN SMALL LETTER D WITH CARON
-\setcclcucx 0110 0111 0110 % LATIN CAPITAL LETTER D WITH STROKE
-\setcclcucx 0111 0111 0110 % LATIN SMALL LETTER D WITH STROKE
-\setcclcucx 0112 0113 0112 % LATIN CAPITAL LETTER E WITH MACRON
-\setcclcucx 0113 0113 0112 % LATIN SMALL LETTER E WITH MACRON
-\setcclcucx 0114 0115 0114 % LATIN CAPITAL LETTER E WITH BREVE
-\setcclcucx 0115 0115 0114 % LATIN SMALL LETTER E WITH BREVE
-\setcclcucx 0116 0117 0116 % LATIN CAPITAL LETTER E WITH DOT ABOVE
-\setcclcucx 0117 0117 0116 % LATIN SMALL LETTER E WITH DOT ABOVE
-\setcclcucx 0118 0119 0118 % LATIN CAPITAL LETTER E WITH OGONEK
-\setcclcucx 0119 0119 0118 % LATIN SMALL LETTER E WITH OGONEK
-\setcclcucx 011A 011B 011A % LATIN CAPITAL LETTER E WITH CARON
-\setcclcucx 011B 011B 011A % LATIN SMALL LETTER E WITH CARON
-\setcclcucx 011C 011D 011C % LATIN CAPITAL LETTER G WITH CIRCUMFLEX
-\setcclcucx 011D 011D 011C % LATIN SMALL LETTER G WITH CIRCUMFLEX
-\setcclcucx 011E 011F 011E % LATIN CAPITAL LETTER G WITH BREVE
-\setcclcucx 011F 011F 011E % LATIN SMALL LETTER G WITH BREVE
-\setcclcucx 0120 0121 0120 % LATIN CAPITAL LETTER G WITH DOT ABOVE
-\setcclcucx 0121 0121 0120 % LATIN SMALL LETTER G WITH DOT ABOVE
-\setcclcucx 0122 0123 0122 % LATIN CAPITAL LETTER G WITH CEDILLA
-\setcclcucx 0123 0123 0122 % LATIN SMALL LETTER G WITH CEDILLA
-\setcclcucx 0124 0125 0124 % LATIN CAPITAL LETTER H WITH CIRCUMFLEX
-\setcclcucx 0125 0125 0124 % LATIN SMALL LETTER H WITH CIRCUMFLEX
-\setcclcucx 0126 0127 0126 % LATIN CAPITAL LETTER H WITH STROKE
-\setcclcucx 0127 0127 0126 % LATIN SMALL LETTER H WITH STROKE
-\setcclcucx 0128 0129 0128 % LATIN CAPITAL LETTER I WITH TILDE
-\setcclcucx 0129 0129 0128 % LATIN SMALL LETTER I WITH TILDE
-\setcclcucx 012A 012B 012A % LATIN CAPITAL LETTER I WITH MACRON
-\setcclcucx 012B 012B 012A % LATIN SMALL LETTER I WITH MACRON
-\setcclcucx 012C 012D 012C % LATIN CAPITAL LETTER I WITH BREVE
-\setcclcucx 012D 012D 012C % LATIN SMALL LETTER I WITH BREVE
-\setcclcucx 012E 012F 012E % LATIN CAPITAL LETTER I WITH OGONEK
-\setcclcucx 012F 012F 012E % LATIN SMALL LETTER I WITH OGONEK
-\setcclcucx 0130 0069 0130 % LATIN CAPITAL LETTER I WITH DOT ABOVE
-\setcclcucx 0131 0131 0049 % LATIN SMALL LETTER DOTLESS I
-\setcclcucx 0132 0133 0132 % LATIN CAPITAL LIGATURE IJ
-\setcclcucx 0133 0133 0132 % LATIN SMALL LIGATURE IJ
-\setcclcucx 0134 0135 0134 % LATIN CAPITAL LETTER J WITH CIRCUMFLEX
-\setcclcucx 0135 0135 0134 % LATIN SMALL LETTER J WITH CIRCUMFLEX
-\setcclcucx 0136 0137 0136 % LATIN CAPITAL LETTER K WITH CEDILLA
-\setcclcucx 0137 0137 0136 % LATIN SMALL LETTER K WITH CEDILLA
-\setcclcucx 0138 0138 0138 % LATIN SMALL LETTER KRA
-\setcclcucx 0139 013A 0139 % LATIN CAPITAL LETTER L WITH ACUTE
-\setcclcucx 013A 013A 0139 % LATIN SMALL LETTER L WITH ACUTE
-\setcclcucx 013B 013C 013B % LATIN CAPITAL LETTER L WITH CEDILLA
-\setcclcucx 013C 013C 013B % LATIN SMALL LETTER L WITH CEDILLA
-\setcclcucx 013D 013E 013D % LATIN CAPITAL LETTER L WITH CARON
-\setcclcucx 013E 013E 013D % LATIN SMALL LETTER L WITH CARON
-\setcclcucx 013F 0140 013F % LATIN CAPITAL LETTER L WITH MIDDLE DOT
-\setcclcucx 0140 0140 013F % LATIN SMALL LETTER L WITH MIDDLE DOT
-\setcclcucx 0141 0142 0141 % LATIN CAPITAL LETTER L WITH STROKE
-\setcclcucx 0142 0142 0141 % LATIN SMALL LETTER L WITH STROKE
-\setcclcucx 0143 0144 0143 % LATIN CAPITAL LETTER N WITH ACUTE
-\setcclcucx 0144 0144 0143 % LATIN SMALL LETTER N WITH ACUTE
-\setcclcucx 0145 0146 0145 % LATIN CAPITAL LETTER N WITH CEDILLA
-\setcclcucx 0146 0146 0145 % LATIN SMALL LETTER N WITH CEDILLA
-\setcclcucx 0147 0148 0147 % LATIN CAPITAL LETTER N WITH CARON
-\setcclcucx 0148 0148 0147 % LATIN SMALL LETTER N WITH CARON
-\setcclcucx 0149 0149 0149 % LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
-\setcclcucx 014A 014B 014A % LATIN CAPITAL LETTER ENG
-\setcclcucx 014B 014B 014A % LATIN SMALL LETTER ENG
-\setcclcucx 014C 014D 014C % LATIN CAPITAL LETTER O WITH MACRON
-\setcclcucx 014D 014D 014C % LATIN SMALL LETTER O WITH MACRON
-\setcclcucx 014E 014F 014E % LATIN CAPITAL LETTER O WITH BREVE
-\setcclcucx 014F 014F 014E % LATIN SMALL LETTER O WITH BREVE
-\setcclcucx 0150 0151 0150 % LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-\setcclcucx 0151 0151 0150 % LATIN SMALL LETTER O WITH DOUBLE ACUTE
-\setcclcucx 0152 0153 0152 % LATIN CAPITAL LIGATURE OE
-\setcclcucx 0153 0153 0152 % LATIN SMALL LIGATURE OE
-\setcclcucx 0154 0155 0154 % LATIN CAPITAL LETTER R WITH ACUTE
-\setcclcucx 0155 0155 0154 % LATIN SMALL LETTER R WITH ACUTE
-\setcclcucx 0156 0157 0156 % LATIN CAPITAL LETTER R WITH CEDILLA
-\setcclcucx 0157 0157 0156 % LATIN SMALL LETTER R WITH CEDILLA
-\setcclcucx 0158 0159 0158 % LATIN CAPITAL LETTER R WITH CARON
-\setcclcucx 0159 0159 0158 % LATIN SMALL LETTER R WITH CARON
-\setcclcucx 015A 015B 015A % LATIN CAPITAL LETTER S WITH ACUTE
-\setcclcucx 015B 015B 015A % LATIN SMALL LETTER S WITH ACUTE
-\setcclcucx 015C 015D 015C % LATIN CAPITAL LETTER S WITH CIRCUMFLEX
-\setcclcucx 015D 015D 015C % LATIN SMALL LETTER S WITH CIRCUMFLEX
-\setcclcucx 015E 015F 015E % LATIN CAPITAL LETTER S WITH CEDILLA
-\setcclcucx 015F 015F 015E % LATIN SMALL LETTER S WITH CEDILLA
-\setcclcucx 0160 0161 0160 % LATIN CAPITAL LETTER S WITH CARON
-\setcclcucx 0161 0161 0160 % LATIN SMALL LETTER S WITH CARON
-\setcclcucx 0162 0163 0162 % LATIN CAPITAL LETTER T WITH CEDILLA
-\setcclcucx 0163 0163 0162 % LATIN SMALL LETTER T WITH CEDILLA
-\setcclcucx 0164 0165 0164 % LATIN CAPITAL LETTER T WITH CARON
-\setcclcucx 0165 0165 0164 % LATIN SMALL LETTER T WITH CARON
-\setcclcucx 0166 0167 0166 % LATIN CAPITAL LETTER T WITH STROKE
-\setcclcucx 0167 0167 0166 % LATIN SMALL LETTER T WITH STROKE
-\setcclcucx 0168 0169 0168 % LATIN CAPITAL LETTER U WITH TILDE
-\setcclcucx 0169 0169 0168 % LATIN SMALL LETTER U WITH TILDE
-\setcclcucx 016A 016B 016A % LATIN CAPITAL LETTER U WITH MACRON
-\setcclcucx 016B 016B 016A % LATIN SMALL LETTER U WITH MACRON
-\setcclcucx 016C 016D 016C % LATIN CAPITAL LETTER U WITH BREVE
-\setcclcucx 016D 016D 016C % LATIN SMALL LETTER U WITH BREVE
-\setcclcucx 016E 016F 016E % LATIN CAPITAL LETTER U WITH RING ABOVE
-\setcclcucx 016F 016F 016E % LATIN SMALL LETTER U WITH RING ABOVE
-\setcclcucx 0170 0171 0170 % LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-\setcclcucx 0171 0171 0170 % LATIN SMALL LETTER U WITH DOUBLE ACUTE
-\setcclcucx 0172 0173 0172 % LATIN CAPITAL LETTER U WITH OGONEK
-\setcclcucx 0173 0173 0172 % LATIN SMALL LETTER U WITH OGONEK
-\setcclcucx 0174 0175 0174 % LATIN CAPITAL LETTER W WITH CIRCUMFLEX
-\setcclcucx 0175 0175 0174 % LATIN SMALL LETTER W WITH CIRCUMFLEX
-\setcclcucx 0176 0177 0176 % LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
-\setcclcucx 0177 0177 0176 % LATIN SMALL LETTER Y WITH CIRCUMFLEX
-\setcclcucx 0178 00FF 0178 % LATIN CAPITAL LETTER Y WITH DIAERESIS
-\setcclcucx 0179 017A 0179 % LATIN CAPITAL LETTER Z WITH ACUTE
-\setcclcucx 017A 017A 0179 % LATIN SMALL LETTER Z WITH ACUTE
-\setcclcucx 017B 017C 017B % LATIN CAPITAL LETTER Z WITH DOT ABOVE
-\setcclcucx 017C 017C 017B % LATIN SMALL LETTER Z WITH DOT ABOVE
-\setcclcucx 017D 017E 017D % LATIN CAPITAL LETTER Z WITH CARON
-\setcclcucx 017E 017E 017D % LATIN SMALL LETTER Z WITH CARON
-\setcclcucx 017F 017F 0053 % LATIN SMALL LETTER LONG S
-\setcclcucx 0180 0180 0243 % LATIN SMALL LETTER B WITH STROKE
-\setcclcucx 0181 0253 0181 % LATIN CAPITAL LETTER B WITH HOOK
-\setcclcucx 0182 0183 0182 % LATIN CAPITAL LETTER B WITH TOPBAR
-\setcclcucx 0183 0183 0182 % LATIN SMALL LETTER B WITH TOPBAR
-\setcclcucx 0184 0185 0184 % LATIN CAPITAL LETTER TONE SIX
-\setcclcucx 0185 0185 0184 % LATIN SMALL LETTER TONE SIX
-\setcclcucx 0186 0254 0186 % LATIN CAPITAL LETTER OPEN O
-\setcclcucx 0187 0188 0187 % LATIN CAPITAL LETTER C WITH HOOK
-\setcclcucx 0188 0188 0187 % LATIN SMALL LETTER C WITH HOOK
-\setcclcucx 0189 0256 0189 % LATIN CAPITAL LETTER AFRICAN D
-\setcclcucx 018A 0257 018A % LATIN CAPITAL LETTER D WITH HOOK
-\setcclcucx 018B 018C 018B % LATIN CAPITAL LETTER D WITH TOPBAR
-\setcclcucx 018C 018C 018B % LATIN SMALL LETTER D WITH TOPBAR
-\setcclcucx 018D 018D 018D % LATIN SMALL LETTER TURNED DELTA
-\setcclcucx 018E 01DD 018E % LATIN CAPITAL LETTER REVERSED E
-\setcclcucx 018F 0259 018F % LATIN CAPITAL LETTER SCHWA
-\setcclcucx 0190 025B 0190 % LATIN CAPITAL LETTER OPEN E
-\setcclcucx 0191 0192 0191 % LATIN CAPITAL LETTER F WITH HOOK
-\setcclcucx 0192 0192 0191 % LATIN SMALL LETTER F WITH HOOK
-\setcclcucx 0193 0260 0193 % LATIN CAPITAL LETTER G WITH HOOK
-\setcclcucx 0194 0263 0194 % LATIN CAPITAL LETTER GAMMA
-\setcclcucx 0195 0195 01F6 % LATIN SMALL LETTER HV
-\setcclcucx 0196 0269 0196 % LATIN CAPITAL LETTER IOTA
-\setcclcucx 0197 0268 0197 % LATIN CAPITAL LETTER I WITH STROKE
-\setcclcucx 0198 0199 0198 % LATIN CAPITAL LETTER K WITH HOOK
-\setcclcucx 0199 0199 0198 % LATIN SMALL LETTER K WITH HOOK
-\setcclcucx 019A 019A 023D % LATIN SMALL LETTER L WITH BAR
-\setcclcucx 019B 019B 019B % LATIN SMALL LETTER LAMBDA WITH STROKE
-\setcclcucx 019C 026F 019C % LATIN CAPITAL LETTER TURNED M
-\setcclcucx 019D 0272 019D % LATIN CAPITAL LETTER N WITH LEFT HOOK
-\setcclcucx 019E 019E 0220 % LATIN SMALL LETTER N WITH LONG RIGHT LEG
-\setcclcucx 019F 0275 019F % LATIN CAPITAL LETTER O WITH MIDDLE TILDE
-\setcclcucx 01A0 01A1 01A0 % LATIN CAPITAL LETTER O WITH HORN
-\setcclcucx 01A1 01A1 01A0 % LATIN SMALL LETTER O WITH HORN
-\setcclcucx 01A2 01A3 01A2 % LATIN CAPITAL LETTER OI
-\setcclcucx 01A3 01A3 01A2 % LATIN SMALL LETTER OI
-\setcclcucx 01A4 01A5 01A4 % LATIN CAPITAL LETTER P WITH HOOK
-\setcclcucx 01A5 01A5 01A4 % LATIN SMALL LETTER P WITH HOOK
-\setcclcucx 01A6 0280 01A6 % LATIN LETTER YR
-\setcclcucx 01A7 01A8 01A7 % LATIN CAPITAL LETTER TONE TWO
-\setcclcucx 01A8 01A8 01A7 % LATIN SMALL LETTER TONE TWO
-\setcclcucx 01A9 0283 01A9 % LATIN CAPITAL LETTER ESH
-\setcclcucx 01AA 01AA 01AA % LATIN LETTER REVERSED ESH LOOP
-\setcclcucx 01AB 01AB 01AB % LATIN SMALL LETTER T WITH PALATAL HOOK
-\setcclcucx 01AC 01AD 01AC % LATIN CAPITAL LETTER T WITH HOOK
-\setcclcucx 01AD 01AD 01AC % LATIN SMALL LETTER T WITH HOOK
-\setcclcucx 01AE 0288 01AE % LATIN CAPITAL LETTER T WITH RETROFLEX HOOK
-\setcclcucx 01AF 01B0 01AF % LATIN CAPITAL LETTER U WITH HORN
-\setcclcucx 01B0 01B0 01AF % LATIN SMALL LETTER U WITH HORN
-\setcclcucx 01B1 028A 01B1 % LATIN CAPITAL LETTER UPSILON
-\setcclcucx 01B2 028B 01B2 % LATIN CAPITAL LETTER V WITH HOOK
-\setcclcucx 01B3 01B4 01B3 % LATIN CAPITAL LETTER Y WITH HOOK
-\setcclcucx 01B4 01B4 01B3 % LATIN SMALL LETTER Y WITH HOOK
-\setcclcucx 01B5 01B6 01B5 % LATIN CAPITAL LETTER Z WITH STROKE
-\setcclcucx 01B6 01B6 01B5 % LATIN SMALL LETTER Z WITH STROKE
-\setcclcucx 01B7 0292 01B7 % LATIN CAPITAL LETTER EZH
-\setcclcucx 01B8 01B9 01B8 % LATIN CAPITAL LETTER EZH REVERSED
-\setcclcucx 01B9 01B9 01B8 % LATIN SMALL LETTER EZH REVERSED
-\setcclcucx 01BA 01BA 01BA % LATIN SMALL LETTER EZH WITH TAIL
-\setcclcucx 01BC 01BD 01BC % LATIN CAPITAL LETTER TONE FIVE
-\setcclcucx 01BD 01BD 01BC % LATIN SMALL LETTER TONE FIVE
-\setcclcucx 01BE 01BE 01BE % LATIN LETTER INVERTED GLOTTAL STOP WITH STROKE
-\setcclcucx 01BF 01BF 01F7 % LATIN LETTER WYNN
-\setcclcucx 01C4 01C6 01C5 % LATIN CAPITAL LETTER DZ WITH CARON
-\setcclcucx 01C5 01C6 01C4 % LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON
-\setcclcucx 01C6 01C6 01C4 % LATIN SMALL LETTER DZ WITH CARON
-\setcclcucx 01C7 01C9 01C8 % LATIN CAPITAL LETTER LJ
-\setcclcucx 01C8 01C9 01C7 % LATIN CAPITAL LETTER L WITH SMALL LETTER J
-\setcclcucx 01C9 01C9 01C7 % LATIN SMALL LETTER LJ
-\setcclcucx 01CA 01CC 01CB % LATIN CAPITAL LETTER NJ
-\setcclcucx 01CB 01CC 01CA % LATIN CAPITAL LETTER N WITH SMALL LETTER J
-\setcclcucx 01CC 01CC 01CA % LATIN SMALL LETTER NJ
-\setcclcucx 01CD 01CE 01CD % LATIN CAPITAL LETTER A WITH CARON
-\setcclcucx 01CE 01CE 01CD % LATIN SMALL LETTER A WITH CARON
-\setcclcucx 01CF 01D0 01CF % LATIN CAPITAL LETTER I WITH CARON
-\setcclcucx 01D0 01D0 01CF % LATIN SMALL LETTER I WITH CARON
-\setcclcucx 01D1 01D2 01D1 % LATIN CAPITAL LETTER O WITH CARON
-\setcclcucx 01D2 01D2 01D1 % LATIN SMALL LETTER O WITH CARON
-\setcclcucx 01D3 01D4 01D3 % LATIN CAPITAL LETTER U WITH CARON
-\setcclcucx 01D4 01D4 01D3 % LATIN SMALL LETTER U WITH CARON
-\setcclcucx 01D5 01D6 01D5 % LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-\setcclcucx 01D6 01D6 01D5 % LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-\setcclcucx 01D7 01D8 01D7 % LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-\setcclcucx 01D8 01D8 01D7 % LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-\setcclcucx 01D9 01DA 01D9 % LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-\setcclcucx 01DA 01DA 01D9 % LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-\setcclcucx 01DB 01DC 01DB % LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-\setcclcucx 01DC 01DC 01DB % LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-\setcclcucx 01DD 01DD 018E % LATIN SMALL LETTER TURNED E
-\setcclcucx 01DE 01DF 01DE % LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
-\setcclcucx 01DF 01DF 01DE % LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
-\setcclcucx 01E0 01E1 01E0 % LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
-\setcclcucx 01E1 01E1 01E0 % LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON
-\setcclcucx 01E2 01E3 01E2 % LATIN CAPITAL LETTER AE WITH MACRON
-\setcclcucx 01E3 01E3 01E2 % LATIN SMALL LETTER AE WITH MACRON
-\setcclcucx 01E4 01E5 01E4 % LATIN CAPITAL LETTER G WITH STROKE
-\setcclcucx 01E5 01E5 01E4 % LATIN SMALL LETTER G WITH STROKE
-\setcclcucx 01E6 01E7 01E6 % LATIN CAPITAL LETTER G WITH CARON
-\setcclcucx 01E7 01E7 01E6 % LATIN SMALL LETTER G WITH CARON
-\setcclcucx 01E8 01E9 01E8 % LATIN CAPITAL LETTER K WITH CARON
-\setcclcucx 01E9 01E9 01E8 % LATIN SMALL LETTER K WITH CARON
-\setcclcucx 01EA 01EB 01EA % LATIN CAPITAL LETTER O WITH OGONEK
-\setcclcucx 01EB 01EB 01EA % LATIN SMALL LETTER O WITH OGONEK
-\setcclcucx 01EC 01ED 01EC % LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
-\setcclcucx 01ED 01ED 01EC % LATIN SMALL LETTER O WITH OGONEK AND MACRON
-\setcclcucx 01EE 01EF 01EE % LATIN CAPITAL LETTER EZH WITH CARON
-\setcclcucx 01EF 01EF 01EE % LATIN SMALL LETTER EZH WITH CARON
-\setcclcucx 01F0 01F0 01F0 % LATIN SMALL LETTER J WITH CARON
-\setcclcucx 01F1 01F3 01F2 % LATIN CAPITAL LETTER DZ
-\setcclcucx 01F2 01F3 01F1 % LATIN CAPITAL LETTER D WITH SMALL LETTER Z
-\setcclcucx 01F3 01F3 01F1 % LATIN SMALL LETTER DZ
-\setcclcucx 01F4 01F5 01F4 % LATIN CAPITAL LETTER G WITH ACUTE
-\setcclcucx 01F5 01F5 01F4 % LATIN SMALL LETTER G WITH ACUTE
-\setcclcucx 01F6 0195 01F6 % LATIN CAPITAL LETTER HWAIR
-\setcclcucx 01F7 01BF 01F7 % LATIN CAPITAL LETTER WYNN
-\setcclcucx 01F8 01F9 01F8 % LATIN CAPITAL LETTER N WITH GRAVE
-\setcclcucx 01F9 01F9 01F8 % LATIN SMALL LETTER N WITH GRAVE
-\setcclcucx 01FA 01FB 01FA % LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
-\setcclcucx 01FB 01FB 01FA % LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
-\setcclcucx 01FC 01FD 01FC % LATIN CAPITAL LETTER AE WITH ACUTE
-\setcclcucx 01FD 01FD 01FC % LATIN SMALL LETTER AE WITH ACUTE
-\setcclcucx 01FE 01FF 01FE % LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
-\setcclcucx 01FF 01FF 01FE % LATIN SMALL LETTER O WITH STROKE AND ACUTE
-\setcclcucx 0200 0201 0200 % LATIN CAPITAL LETTER A WITH DOUBLE GRAVE
-\setcclcucx 0201 0201 0200 % LATIN SMALL LETTER A WITH DOUBLE GRAVE
-\setcclcucx 0202 0203 0202 % LATIN CAPITAL LETTER A WITH INVERTED BREVE
-\setcclcucx 0203 0203 0202 % LATIN SMALL LETTER A WITH INVERTED BREVE
-\setcclcucx 0204 0205 0204 % LATIN CAPITAL LETTER E WITH DOUBLE GRAVE
-\setcclcucx 0205 0205 0204 % LATIN SMALL LETTER E WITH DOUBLE GRAVE
-\setcclcucx 0206 0207 0206 % LATIN CAPITAL LETTER E WITH INVERTED BREVE
-\setcclcucx 0207 0207 0206 % LATIN SMALL LETTER E WITH INVERTED BREVE
-\setcclcucx 0208 0209 0208 % LATIN CAPITAL LETTER I WITH DOUBLE GRAVE
-\setcclcucx 0209 0209 0208 % LATIN SMALL LETTER I WITH DOUBLE GRAVE
-\setcclcucx 020A 020B 020A % LATIN CAPITAL LETTER I WITH INVERTED BREVE
-\setcclcucx 020B 020B 020A % LATIN SMALL LETTER I WITH INVERTED BREVE
-\setcclcucx 020C 020D 020C % LATIN CAPITAL LETTER O WITH DOUBLE GRAVE
-\setcclcucx 020D 020D 020C % LATIN SMALL LETTER O WITH DOUBLE GRAVE
-\setcclcucx 020E 020F 020E % LATIN CAPITAL LETTER O WITH INVERTED BREVE
-\setcclcucx 020F 020F 020E % LATIN SMALL LETTER O WITH INVERTED BREVE
-\setcclcucx 0210 0211 0210 % LATIN CAPITAL LETTER R WITH DOUBLE GRAVE
-\setcclcucx 0211 0211 0210 % LATIN SMALL LETTER R WITH DOUBLE GRAVE
-\setcclcucx 0212 0213 0212 % LATIN CAPITAL LETTER R WITH INVERTED BREVE
-\setcclcucx 0213 0213 0212 % LATIN SMALL LETTER R WITH INVERTED BREVE
-\setcclcucx 0214 0215 0214 % LATIN CAPITAL LETTER U WITH DOUBLE GRAVE
-\setcclcucx 0215 0215 0214 % LATIN SMALL LETTER U WITH DOUBLE GRAVE
-\setcclcucx 0216 0217 0216 % LATIN CAPITAL LETTER U WITH INVERTED BREVE
-\setcclcucx 0217 0217 0216 % LATIN SMALL LETTER U WITH INVERTED BREVE
-\setcclcucx 0218 0219 0218 % LATIN CAPITAL LETTER S WITH COMMA BELOW
-\setcclcucx 0219 0219 0218 % LATIN SMALL LETTER S WITH COMMA BELOW
-\setcclcucx 021A 021B 021A % LATIN CAPITAL LETTER T WITH COMMA BELOW
-\setcclcucx 021B 021B 021A % LATIN SMALL LETTER T WITH COMMA BELOW
-\setcclcucx 021C 021D 021C % LATIN CAPITAL LETTER YOGH
-\setcclcucx 021D 021D 021C % LATIN SMALL LETTER YOGH
-\setcclcucx 021E 021F 021E % LATIN CAPITAL LETTER H WITH CARON
-\setcclcucx 021F 021F 021E % LATIN SMALL LETTER H WITH CARON
-\setcclcucx 0220 019E 0220 % LATIN CAPITAL LETTER N WITH LONG RIGHT LEG
-\setcclcucx 0221 0221 0221 % LATIN SMALL LETTER D WITH CURL
-\setcclcucx 0222 0223 0222 % LATIN CAPITAL LETTER OU
-\setcclcucx 0223 0223 0222 % LATIN SMALL LETTER OU
-\setcclcucx 0224 0225 0224 % LATIN CAPITAL LETTER Z WITH HOOK
-\setcclcucx 0225 0225 0224 % LATIN SMALL LETTER Z WITH HOOK
-\setcclcucx 0226 0227 0226 % LATIN CAPITAL LETTER A WITH DOT ABOVE
-\setcclcucx 0227 0227 0226 % LATIN SMALL LETTER A WITH DOT ABOVE
-\setcclcucx 0228 0229 0228 % LATIN CAPITAL LETTER E WITH CEDILLA
-\setcclcucx 0229 0229 0228 % LATIN SMALL LETTER E WITH CEDILLA
-\setcclcucx 022A 022B 022A % LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
-\setcclcucx 022B 022B 022A % LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
-\setcclcucx 022C 022D 022C % LATIN CAPITAL LETTER O WITH TILDE AND MACRON
-\setcclcucx 022D 022D 022C % LATIN SMALL LETTER O WITH TILDE AND MACRON
-\setcclcucx 022E 022F 022E % LATIN CAPITAL LETTER O WITH DOT ABOVE
-\setcclcucx 022F 022F 022E % LATIN SMALL LETTER O WITH DOT ABOVE
-\setcclcucx 0230 0231 0230 % LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON
-\setcclcucx 0231 0231 0230 % LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON
-\setcclcucx 0232 0233 0232 % LATIN CAPITAL LETTER Y WITH MACRON
-\setcclcucx 0233 0233 0232 % LATIN SMALL LETTER Y WITH MACRON
-\setcclcucx 0234 0234 0234 % LATIN SMALL LETTER L WITH CURL
-\setcclcucx 0235 0235 0235 % LATIN SMALL LETTER N WITH CURL
-\setcclcucx 0236 0236 0236 % LATIN SMALL LETTER T WITH CURL
-\setcclcucx 0237 0237 0237 % LATIN SMALL LETTER DOTLESS J
-\setcclcucx 0238 0238 0238 % LATIN SMALL LETTER DB DIGRAPH
-\setcclcucx 0239 0239 0239 % LATIN SMALL LETTER QP DIGRAPH
-\setcclcucx 023A 2C65 023A % LATIN CAPITAL LETTER A WITH STROKE
-\setcclcucx 023B 023C 023B % LATIN CAPITAL LETTER C WITH STROKE
-\setcclcucx 023C 023C 023B % LATIN SMALL LETTER C WITH STROKE
-\setcclcucx 023D 019A 023D % LATIN CAPITAL LETTER L WITH BAR
-\setcclcucx 023E 2C66 023E % LATIN CAPITAL LETTER T WITH DIAGONAL STROKE
-\setcclcucx 023F 023F 023F % LATIN SMALL LETTER S WITH SWASH TAIL
-\setcclcucx 0240 0240 0240 % LATIN SMALL LETTER Z WITH SWASH TAIL
-\setcclcucx 0241 0242 0241 % LATIN CAPITAL LETTER GLOTTAL STOP
-\setcclcucx 0242 0242 0241 % LATIN SMALL LETTER GLOTTAL STOP
-\setcclcucx 0243 0180 0243 % LATIN CAPITAL LETTER B WITH STROKE
-\setcclcucx 0244 0289 0244 % LATIN CAPITAL LETTER U BAR
-\setcclcucx 0245 028C 0245 % LATIN CAPITAL LETTER TURNED V
-\setcclcucx 0246 0247 0246 % LATIN CAPITAL LETTER E WITH STROKE
-\setcclcucx 0247 0247 0246 % LATIN SMALL LETTER E WITH STROKE
-\setcclcucx 0248 0249 0248 % LATIN CAPITAL LETTER J WITH STROKE
-\setcclcucx 0249 0249 0248 % LATIN SMALL LETTER J WITH STROKE
-\setcclcucx 024A 024B 024A % LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL
-\setcclcucx 024B 024B 024A % LATIN SMALL LETTER Q WITH HOOK TAIL
-\setcclcucx 024C 024D 024C % LATIN CAPITAL LETTER R WITH STROKE
-\setcclcucx 024D 024D 024C % LATIN SMALL LETTER R WITH STROKE
-\setcclcucx 024E 024F 024E % LATIN CAPITAL LETTER Y WITH STROKE
-\setcclcucx 024F 024F 024E % LATIN SMALL LETTER Y WITH STROKE
-\setcclcucx 0250 0250 0250 % LATIN SMALL LETTER TURNED A
-\setcclcucx 0251 0251 0251 % LATIN SMALL LETTER ALPHA
-\setcclcucx 0252 0252 0252 % LATIN SMALL LETTER TURNED ALPHA
-\setcclcucx 0253 0253 0181 % LATIN SMALL LETTER B WITH HOOK
-\setcclcucx 0254 0254 0186 % LATIN SMALL LETTER OPEN O
-\setcclcucx 0255 0255 0255 % LATIN SMALL LETTER C WITH CURL
-\setcclcucx 0256 0256 0189 % LATIN SMALL LETTER D WITH TAIL
-\setcclcucx 0257 0257 018A % LATIN SMALL LETTER D WITH HOOK
-\setcclcucx 0258 0258 0258 % LATIN SMALL LETTER REVERSED E
-\setcclcucx 0259 0259 018F % LATIN SMALL LETTER SCHWA
-\setcclcucx 025A 025A 025A % LATIN SMALL LETTER SCHWA WITH HOOK
-\setcclcucx 025B 025B 0190 % LATIN SMALL LETTER OPEN E
-\setcclcucx 025C 025C 025C % LATIN SMALL LETTER REVERSED OPEN E
-\setcclcucx 025D 025D 025D % LATIN SMALL LETTER REVERSED OPEN E WITH HOOK
-\setcclcucx 025E 025E 025E % LATIN SMALL LETTER CLOSED REVERSED OPEN E
-\setcclcucx 025F 025F 025F % LATIN SMALL LETTER DOTLESS J WITH STROKE
-\setcclcucx 0260 0260 0193 % LATIN SMALL LETTER G WITH HOOK
-\setcclcucx 0261 0261 0261 % LATIN SMALL LETTER SCRIPT G
-\setcclcucx 0262 0262 0262 % LATIN LETTER SMALL CAPITAL G
-\setcclcucx 0263 0263 0194 % LATIN SMALL LETTER GAMMA
-\setcclcucx 0264 0264 0264 % LATIN SMALL LETTER RAMS HORN
-\setcclcucx 0265 0265 0265 % LATIN SMALL LETTER TURNED H
-\setcclcucx 0266 0266 0266 % LATIN SMALL LETTER H WITH HOOK
-\setcclcucx 0267 0267 0267 % LATIN SMALL LETTER HENG WITH HOOK
-\setcclcucx 0268 0268 0197 % LATIN SMALL LETTER I WITH STROKE
-\setcclcucx 0269 0269 0196 % LATIN SMALL LETTER IOTA
-\setcclcucx 026A 026A 026A % LATIN LETTER SMALL CAPITAL I
-\setcclcucx 026B 026B 2C62 % LATIN SMALL LETTER L WITH MIDDLE TILDE
-\setcclcucx 026C 026C 026C % LATIN SMALL LETTER L WITH BELT
-\setcclcucx 026D 026D 026D % LATIN SMALL LETTER L WITH RETROFLEX HOOK
-\setcclcucx 026E 026E 026E % LATIN SMALL LETTER LEZH
-\setcclcucx 026F 026F 019C % LATIN SMALL LETTER TURNED M
-\setcclcucx 0270 0270 0270 % LATIN SMALL LETTER TURNED M WITH LONG LEG
-\setcclcucx 0271 0271 0271 % LATIN SMALL LETTER M WITH HOOK
-\setcclcucx 0272 0272 019D % LATIN SMALL LETTER N WITH LEFT HOOK
-\setcclcucx 0273 0273 0273 % LATIN SMALL LETTER N WITH RETROFLEX HOOK
-\setcclcucx 0274 0274 0274 % LATIN LETTER SMALL CAPITAL N
-\setcclcucx 0275 0275 019F % LATIN SMALL LETTER BARRED O
-\setcclcucx 0276 0276 0276 % LATIN LETTER SMALL CAPITAL OE
-\setcclcucx 0277 0277 0277 % LATIN SMALL LETTER CLOSED OMEGA
-\setcclcucx 0278 0278 0278 % LATIN SMALL LETTER PHI
-\setcclcucx 0279 0279 0279 % LATIN SMALL LETTER TURNED R
-\setcclcucx 027A 027A 027A % LATIN SMALL LETTER TURNED R WITH LONG LEG
-\setcclcucx 027B 027B 027B % LATIN SMALL LETTER TURNED R WITH HOOK
-\setcclcucx 027C 027C 027C % LATIN SMALL LETTER R WITH LONG LEG
-\setcclcucx 027D 027D 2C64 % LATIN SMALL LETTER R WITH TAIL
-\setcclcucx 027E 027E 027E % LATIN SMALL LETTER R WITH FISHHOOK
-\setcclcucx 027F 027F 027F % LATIN SMALL LETTER REVERSED R WITH FISHHOOK
-\setcclcucx 0280 0280 01A6 % LATIN LETTER SMALL CAPITAL R
-\setcclcucx 0281 0281 0281 % LATIN LETTER SMALL CAPITAL INVERTED R
-\setcclcucx 0282 0282 0282 % LATIN SMALL LETTER S WITH HOOK
-\setcclcucx 0283 0283 01A9 % LATIN SMALL LETTER ESH
-\setcclcucx 0284 0284 0284 % LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK
-\setcclcucx 0285 0285 0285 % LATIN SMALL LETTER SQUAT REVERSED ESH
-\setcclcucx 0286 0286 0286 % LATIN SMALL LETTER ESH WITH CURL
-\setcclcucx 0287 0287 0287 % LATIN SMALL LETTER TURNED T
-\setcclcucx 0288 0288 01AE % LATIN SMALL LETTER T WITH RETROFLEX HOOK
-\setcclcucx 0289 0289 0244 % LATIN SMALL LETTER U BAR
-\setcclcucx 028A 028A 01B1 % LATIN SMALL LETTER UPSILON
-\setcclcucx 028B 028B 01B2 % LATIN SMALL LETTER V WITH HOOK
-\setcclcucx 028C 028C 0245 % LATIN SMALL LETTER TURNED V
-\setcclcucx 028D 028D 028D % LATIN SMALL LETTER TURNED W
-\setcclcucx 028E 028E 028E % LATIN SMALL LETTER TURNED Y
-\setcclcucx 028F 028F 028F % LATIN LETTER SMALL CAPITAL Y
-\setcclcucx 0290 0290 0290 % LATIN SMALL LETTER Z WITH RETROFLEX HOOK
-\setcclcucx 0291 0291 0291 % LATIN SMALL LETTER Z WITH CURL
-\setcclcucx 0292 0292 01B7 % LATIN SMALL LETTER EZH
-\setcclcucx 0293 0293 0293 % LATIN SMALL LETTER EZH WITH CURL
-\setcclcucx 0295 0295 0295 % LATIN LETTER PHARYNGEAL VOICED FRICATIVE
-\setcclcucx 0296 0296 0296 % LATIN LETTER INVERTED GLOTTAL STOP
-\setcclcucx 0297 0297 0297 % LATIN LETTER STRETCHED C
-\setcclcucx 0298 0298 0298 % LATIN LETTER BILABIAL CLICK
-\setcclcucx 0299 0299 0299 % LATIN LETTER SMALL CAPITAL B
-\setcclcucx 029A 029A 029A % LATIN SMALL LETTER CLOSED OPEN E
-\setcclcucx 029B 029B 029B % LATIN LETTER SMALL CAPITAL G WITH HOOK
-\setcclcucx 029C 029C 029C % LATIN LETTER SMALL CAPITAL H
-\setcclcucx 029D 029D 029D % LATIN SMALL LETTER J WITH CROSSED-TAIL
-\setcclcucx 029E 029E 029E % LATIN SMALL LETTER TURNED K
-\setcclcucx 029F 029F 029F % LATIN LETTER SMALL CAPITAL L
-\setcclcucx 02A0 02A0 02A0 % LATIN SMALL LETTER Q WITH HOOK
-\setcclcucx 02A1 02A1 02A1 % LATIN LETTER GLOTTAL STOP WITH STROKE
-\setcclcucx 02A2 02A2 02A2 % LATIN LETTER REVERSED GLOTTAL STOP WITH STROKE
-\setcclcucx 02A3 02A3 02A3 % LATIN SMALL LETTER DZ DIGRAPH
-\setcclcucx 02A4 02A4 02A4 % LATIN SMALL LETTER DEZH DIGRAPH
-\setcclcucx 02A5 02A5 02A5 % LATIN SMALL LETTER DZ DIGRAPH WITH CURL
-\setcclcucx 02A6 02A6 02A6 % LATIN SMALL LETTER TS DIGRAPH
-\setcclcucx 02A7 02A7 02A7 % LATIN SMALL LETTER TESH DIGRAPH
-\setcclcucx 02A8 02A8 02A8 % LATIN SMALL LETTER TC DIGRAPH WITH CURL
-\setcclcucx 02A9 02A9 02A9 % LATIN SMALL LETTER FENG DIGRAPH
-\setcclcucx 02AA 02AA 02AA % LATIN SMALL LETTER LS DIGRAPH
-\setcclcucx 02AB 02AB 02AB % LATIN SMALL LETTER LZ DIGRAPH
-\setcclcucx 02AC 02AC 02AC % LATIN LETTER BILABIAL PERCUSSIVE
-\setcclcucx 02AD 02AD 02AD % LATIN LETTER BIDENTAL PERCUSSIVE
-\setcclcucx 02AE 02AE 02AE % LATIN SMALL LETTER TURNED H WITH FISHHOOK
-\setcclcucx 02AF 02AF 02AF % LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL
-\setcclcucx 037B 037B 03FD % GREEK SMALL REVERSED LUNATE SIGMA SYMBOL
-\setcclcucx 037C 037C 03FE % GREEK SMALL DOTTED LUNATE SIGMA SYMBOL
-\setcclcucx 037D 037D 03FF % GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL
-\setcclcucx 0386 03AC 0386 % GREEK CAPITAL LETTER ALPHA WITH TONOS
-\setcclcucx 0388 03AD 0388 % GREEK CAPITAL LETTER EPSILON WITH TONOS
-\setcclcucx 0389 03AE 0389 % GREEK CAPITAL LETTER ETA WITH TONOS
-\setcclcucx 038A 03AF 038A % GREEK CAPITAL LETTER IOTA WITH TONOS
-\setcclcucx 038C 03CC 038C % GREEK CAPITAL LETTER OMICRON WITH TONOS
-\setcclcucx 038E 03CD 038E % GREEK CAPITAL LETTER UPSILON WITH TONOS
-\setcclcucx 038F 03CE 038F % GREEK CAPITAL LETTER OMEGA WITH TONOS
-\setcclcucx 0390 0390 0390 % GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
-\setcclcucx 0391 03B1 0391 % GREEK CAPITAL LETTER ALPHA
-\setcclcucx 0392 03B2 0392 % GREEK CAPITAL LETTER BETA
-\setcclcucx 0393 03B3 0393 % GREEK CAPITAL LETTER GAMMA
-\setcclcucx 0394 03B4 0394 % GREEK CAPITAL LETTER DELTA
-\setcclcucx 0395 03B5 0395 % GREEK CAPITAL LETTER EPSILON
-\setcclcucx 0396 03B6 0396 % GREEK CAPITAL LETTER ZETA
-\setcclcucx 0397 03B7 0397 % GREEK CAPITAL LETTER ETA
-\setcclcucx 0398 03B8 0398 % GREEK CAPITAL LETTER THETA
-\setcclcucx 0399 03B9 0399 % GREEK CAPITAL LETTER IOTA
-\setcclcucx 039A 03BA 039A % GREEK CAPITAL LETTER KAPPA
-\setcclcucx 039B 03BB 039B % GREEK CAPITAL LETTER LAMDA
-\setcclcucx 039C 03BC 039C % GREEK CAPITAL LETTER MU
-\setcclcucx 039D 03BD 039D % GREEK CAPITAL LETTER NU
-\setcclcucx 039E 03BE 039E % GREEK CAPITAL LETTER XI
-\setcclcucx 039F 03BF 039F % GREEK CAPITAL LETTER OMICRON
-\setcclcucx 03A0 03C0 03A0 % GREEK CAPITAL LETTER PI
-\setcclcucx 03A1 03C1 03A1 % GREEK CAPITAL LETTER RHO
-\setcclcucx 03A3 03C3 03A3 % GREEK CAPITAL LETTER SIGMA
-\setcclcucx 03A4 03C4 03A4 % GREEK CAPITAL LETTER TAU
-\setcclcucx 03A5 03C5 03A5 % GREEK CAPITAL LETTER UPSILON
-\setcclcucx 03A6 03C6 03A6 % GREEK CAPITAL LETTER PHI
-\setcclcucx 03A7 03C7 03A7 % GREEK CAPITAL LETTER CHI
-\setcclcucx 03A8 03C8 03A8 % GREEK CAPITAL LETTER PSI
-\setcclcucx 03A9 03C9 03A9 % GREEK CAPITAL LETTER OMEGA
-\setcclcucx 03AA 03CA 03AA % GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
-\setcclcucx 03AB 03CB 03AB % GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
-\setcclcucx 03AC 03AC 0386 % GREEK SMALL LETTER ALPHA WITH TONOS
-\setcclcucx 03AD 03AD 0388 % GREEK SMALL LETTER EPSILON WITH TONOS
-\setcclcucx 03AE 03AE 0389 % GREEK SMALL LETTER ETA WITH TONOS
-\setcclcucx 03AF 03AF 038A % GREEK SMALL LETTER IOTA WITH TONOS
-\setcclcucx 03B0 03B0 03B0 % GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
-\setcclcucx 03B1 03B1 0391 % GREEK SMALL LETTER ALPHA
-\setcclcucx 03B2 03B2 0392 % GREEK SMALL LETTER BETA
-\setcclcucx 03B3 03B3 0393 % GREEK SMALL LETTER GAMMA
-\setcclcucx 03B4 03B4 0394 % GREEK SMALL LETTER DELTA
-\setcclcucx 03B5 03B5 0395 % GREEK SMALL LETTER EPSILON
-\setcclcucx 03B6 03B6 0396 % GREEK SMALL LETTER ZETA
-\setcclcucx 03B7 03B7 0397 % GREEK SMALL LETTER ETA
-\setcclcucx 03B8 03B8 0398 % GREEK SMALL LETTER THETA
-\setcclcucx 03B9 03B9 0399 % GREEK SMALL LETTER IOTA
-\setcclcucx 03BA 03BA 039A % GREEK SMALL LETTER KAPPA
-\setcclcucx 03BB 03BB 039B % GREEK SMALL LETTER LAMDA
-\setcclcucx 03BC 03BC 039C % GREEK SMALL LETTER MU
-\setcclcucx 03BD 03BD 039D % GREEK SMALL LETTER NU
-\setcclcucx 03BE 03BE 039E % GREEK SMALL LETTER XI
-\setcclcucx 03BF 03BF 039F % GREEK SMALL LETTER OMICRON
-\setcclcucx 03C0 03C0 03A0 % GREEK SMALL LETTER PI
-\setcclcucx 03C1 03C1 03A1 % GREEK SMALL LETTER RHO
-\setcclcucx 03C2 03C2 03A3 % GREEK SMALL LETTER FINAL SIGMA
-\setcclcucx 03C3 03C3 03A3 % GREEK SMALL LETTER SIGMA
-\setcclcucx 03C4 03C4 03A4 % GREEK SMALL LETTER TAU
-\setcclcucx 03C5 03C5 03A5 % GREEK SMALL LETTER UPSILON
-\setcclcucx 03C6 03C6 03A6 % GREEK SMALL LETTER PHI
-\setcclcucx 03C7 03C7 03A7 % GREEK SMALL LETTER CHI
-\setcclcucx 03C8 03C8 03A8 % GREEK SMALL LETTER PSI
-\setcclcucx 03C9 03C9 03A9 % GREEK SMALL LETTER OMEGA
-\setcclcucx 03CA 03CA 03AA % GREEK SMALL LETTER IOTA WITH DIALYTIKA
-\setcclcucx 03CB 03CB 03AB % GREEK SMALL LETTER UPSILON WITH DIALYTIKA
-\setcclcucx 03CC 03CC 038C % GREEK SMALL LETTER OMICRON WITH TONOS
-\setcclcucx 03CD 03CD 038E % GREEK SMALL LETTER UPSILON WITH TONOS
-\setcclcucx 03CE 03CE 038F % GREEK SMALL LETTER OMEGA WITH TONOS
-\setcclcucx 03D0 03D0 0392 % GREEK BETA SYMBOL
-\setcclcucx 03D1 03D1 0398 % GREEK THETA SYMBOL
-\setcclcucx 03D2 03D2 03D2 % GREEK UPSILON WITH HOOK SYMBOL
-\setcclcucx 03D3 03D3 03D3 % GREEK UPSILON WITH ACUTE AND HOOK SYMBOL
-\setcclcucx 03D4 03D4 03D4 % GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL
-\setcclcucx 03D5 03D5 03A6 % GREEK PHI SYMBOL
-\setcclcucx 03D6 03D6 03A0 % GREEK PI SYMBOL
-\setcclcucx 03D7 03D7 03D7 % GREEK KAI SYMBOL
-\setcclcucx 03D8 03D9 03D8 % GREEK LETTER ARCHAIC KOPPA
-\setcclcucx 03D9 03D9 03D8 % GREEK SMALL LETTER ARCHAIC KOPPA
-\setcclcucx 03DA 03DB 03DA % GREEK LETTER STIGMA
-\setcclcucx 03DB 03DB 03DA % GREEK SMALL LETTER STIGMA
-\setcclcucx 03DC 03DD 03DC % GREEK LETTER DIGAMMA
-\setcclcucx 03DD 03DD 03DC % GREEK SMALL LETTER DIGAMMA
-\setcclcucx 03DE 03DF 03DE % GREEK LETTER KOPPA
-\setcclcucx 03DF 03DF 03DE % GREEK SMALL LETTER KOPPA
-\setcclcucx 03E0 03E1 03E0 % GREEK LETTER SAMPI
-\setcclcucx 03E1 03E1 03E0 % GREEK SMALL LETTER SAMPI
-\setcclcucx 03E2 03E3 03E2 % COPTIC CAPITAL LETTER SHEI
-\setcclcucx 03E3 03E3 03E2 % COPTIC SMALL LETTER SHEI
-\setcclcucx 03E4 03E5 03E4 % COPTIC CAPITAL LETTER FEI
-\setcclcucx 03E5 03E5 03E4 % COPTIC SMALL LETTER FEI
-\setcclcucx 03E6 03E7 03E6 % COPTIC CAPITAL LETTER KHEI
-\setcclcucx 03E7 03E7 03E6 % COPTIC SMALL LETTER KHEI
-\setcclcucx 03E8 03E9 03E8 % COPTIC CAPITAL LETTER HORI
-\setcclcucx 03E9 03E9 03E8 % COPTIC SMALL LETTER HORI
-\setcclcucx 03EA 03EB 03EA % COPTIC CAPITAL LETTER GANGIA
-\setcclcucx 03EB 03EB 03EA % COPTIC SMALL LETTER GANGIA
-\setcclcucx 03EC 03ED 03EC % COPTIC CAPITAL LETTER SHIMA
-\setcclcucx 03ED 03ED 03EC % COPTIC SMALL LETTER SHIMA
-\setcclcucx 03EE 03EF 03EE % COPTIC CAPITAL LETTER DEI
-\setcclcucx 03EF 03EF 03EE % COPTIC SMALL LETTER DEI
-\setcclcucx 03F0 03F0 039A % GREEK KAPPA SYMBOL
-\setcclcucx 03F1 03F1 03A1 % GREEK RHO SYMBOL
-\setcclcucx 03F2 03F2 03F9 % GREEK LUNATE SIGMA SYMBOL
-\setcclcucx 03F3 03F3 03F3 % GREEK LETTER YOT
-\setcclcucx 03F4 03B8 03F4 % GREEK CAPITAL THETA SYMBOL
-\setcclcucx 03F5 03F5 0395 % GREEK LUNATE EPSILON SYMBOL
-\setcclcucx 03F7 03F8 03F7 % GREEK CAPITAL LETTER SHO
-\setcclcucx 03F8 03F8 03F7 % GREEK SMALL LETTER SHO
-\setcclcucx 03F9 03F2 03F9 % GREEK CAPITAL LUNATE SIGMA SYMBOL
-\setcclcucx 03FA 03FB 03FA % GREEK CAPITAL LETTER SAN
-\setcclcucx 03FB 03FB 03FA % GREEK SMALL LETTER SAN
-\setcclcucx 03FC 03FC 03FC % GREEK RHO WITH STROKE SYMBOL
-\setcclcucx 03FD 037B 03FD % GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL
-\setcclcucx 03FE 037C 03FE % GREEK CAPITAL DOTTED LUNATE SIGMA SYMBOL
-\setcclcucx 03FF 037D 03FF % GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL
-\setcclcucx 0400 0450 0400 % CYRILLIC CAPITAL LETTER IE WITH GRAVE
-\setcclcucx 0401 0451 0401 % CYRILLIC CAPITAL LETTER IO
-\setcclcucx 0402 0452 0402 % CYRILLIC CAPITAL LETTER DJE
-\setcclcucx 0403 0453 0403 % CYRILLIC CAPITAL LETTER GJE
-\setcclcucx 0404 0454 0404 % CYRILLIC CAPITAL LETTER UKRAINIAN IE
-\setcclcucx 0405 0455 0405 % CYRILLIC CAPITAL LETTER DZE
-\setcclcucx 0406 0456 0406 % CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
-\setcclcucx 0407 0457 0407 % CYRILLIC CAPITAL LETTER YI
-\setcclcucx 0408 0458 0408 % CYRILLIC CAPITAL LETTER JE
-\setcclcucx 0409 0459 0409 % CYRILLIC CAPITAL LETTER LJE
-\setcclcucx 040A 045A 040A % CYRILLIC CAPITAL LETTER NJE
-\setcclcucx 040B 045B 040B % CYRILLIC CAPITAL LETTER TSHE
-\setcclcucx 040C 045C 040C % CYRILLIC CAPITAL LETTER KJE
-\setcclcucx 040D 045D 040D % CYRILLIC CAPITAL LETTER I WITH GRAVE
-\setcclcucx 040E 045E 040E % CYRILLIC CAPITAL LETTER SHORT U
-\setcclcucx 040F 045F 040F % CYRILLIC CAPITAL LETTER DZHE
-\setcclcucx 0410 0430 0410 % CYRILLIC CAPITAL LETTER A
-\setcclcucx 0411 0431 0411 % CYRILLIC CAPITAL LETTER BE
-\setcclcucx 0412 0432 0412 % CYRILLIC CAPITAL LETTER VE
-\setcclcucx 0413 0433 0413 % CYRILLIC CAPITAL LETTER GHE
-\setcclcucx 0414 0434 0414 % CYRILLIC CAPITAL LETTER DE
-\setcclcucx 0415 0435 0415 % CYRILLIC CAPITAL LETTER IE
-\setcclcucx 0416 0436 0416 % CYRILLIC CAPITAL LETTER ZHE
-\setcclcucx 0417 0437 0417 % CYRILLIC CAPITAL LETTER ZE
-\setcclcucx 0418 0438 0418 % CYRILLIC CAPITAL LETTER I
-\setcclcucx 0419 0439 0419 % CYRILLIC CAPITAL LETTER SHORT I
-\setcclcucx 041A 043A 041A % CYRILLIC CAPITAL LETTER KA
-\setcclcucx 041B 043B 041B % CYRILLIC CAPITAL LETTER EL
-\setcclcucx 041C 043C 041C % CYRILLIC CAPITAL LETTER EM
-\setcclcucx 041D 043D 041D % CYRILLIC CAPITAL LETTER EN
-\setcclcucx 041E 043E 041E % CYRILLIC CAPITAL LETTER O
-\setcclcucx 041F 043F 041F % CYRILLIC CAPITAL LETTER PE
-\setcclcucx 0420 0440 0420 % CYRILLIC CAPITAL LETTER ER
-\setcclcucx 0421 0441 0421 % CYRILLIC CAPITAL LETTER ES
-\setcclcucx 0422 0442 0422 % CYRILLIC CAPITAL LETTER TE
-\setcclcucx 0423 0443 0423 % CYRILLIC CAPITAL LETTER U
-\setcclcucx 0424 0444 0424 % CYRILLIC CAPITAL LETTER EF
-\setcclcucx 0425 0445 0425 % CYRILLIC CAPITAL LETTER HA
-\setcclcucx 0426 0446 0426 % CYRILLIC CAPITAL LETTER TSE
-\setcclcucx 0427 0447 0427 % CYRILLIC CAPITAL LETTER CHE
-\setcclcucx 0428 0448 0428 % CYRILLIC CAPITAL LETTER SHA
-\setcclcucx 0429 0449 0429 % CYRILLIC CAPITAL LETTER SHCHA
-\setcclcucx 042A 044A 042A % CYRILLIC CAPITAL LETTER HARD SIGN
-\setcclcucx 042B 044B 042B % CYRILLIC CAPITAL LETTER YERU
-\setcclcucx 042C 044C 042C % CYRILLIC CAPITAL LETTER SOFT SIGN
-\setcclcucx 042D 044D 042D % CYRILLIC CAPITAL LETTER E
-\setcclcucx 042E 044E 042E % CYRILLIC CAPITAL LETTER YU
-\setcclcucx 042F 044F 042F % CYRILLIC CAPITAL LETTER YA
-\setcclcucx 0430 0430 0410 % CYRILLIC SMALL LETTER A
-\setcclcucx 0431 0431 0411 % CYRILLIC SMALL LETTER BE
-\setcclcucx 0432 0432 0412 % CYRILLIC SMALL LETTER VE
-\setcclcucx 0433 0433 0413 % CYRILLIC SMALL LETTER GHE
-\setcclcucx 0434 0434 0414 % CYRILLIC SMALL LETTER DE
-\setcclcucx 0435 0435 0415 % CYRILLIC SMALL LETTER IE
-\setcclcucx 0436 0436 0416 % CYRILLIC SMALL LETTER ZHE
-\setcclcucx 0437 0437 0417 % CYRILLIC SMALL LETTER ZE
-\setcclcucx 0438 0438 0418 % CYRILLIC SMALL LETTER I
-\setcclcucx 0439 0439 0419 % CYRILLIC SMALL LETTER SHORT I
-\setcclcucx 043A 043A 041A % CYRILLIC SMALL LETTER KA
-\setcclcucx 043B 043B 041B % CYRILLIC SMALL LETTER EL
-\setcclcucx 043C 043C 041C % CYRILLIC SMALL LETTER EM
-\setcclcucx 043D 043D 041D % CYRILLIC SMALL LETTER EN
-\setcclcucx 043E 043E 041E % CYRILLIC SMALL LETTER O
-\setcclcucx 043F 043F 041F % CYRILLIC SMALL LETTER PE
-\setcclcucx 0440 0440 0420 % CYRILLIC SMALL LETTER ER
-\setcclcucx 0441 0441 0421 % CYRILLIC SMALL LETTER ES
-\setcclcucx 0442 0442 0422 % CYRILLIC SMALL LETTER TE
-\setcclcucx 0443 0443 0423 % CYRILLIC SMALL LETTER U
-\setcclcucx 0444 0444 0424 % CYRILLIC SMALL LETTER EF
-\setcclcucx 0445 0445 0425 % CYRILLIC SMALL LETTER HA
-\setcclcucx 0446 0446 0426 % CYRILLIC SMALL LETTER TSE
-\setcclcucx 0447 0447 0427 % CYRILLIC SMALL LETTER CHE
-\setcclcucx 0448 0448 0428 % CYRILLIC SMALL LETTER SHA
-\setcclcucx 0449 0449 0429 % CYRILLIC SMALL LETTER SHCHA
-\setcclcucx 044A 044A 042A % CYRILLIC SMALL LETTER HARD SIGN
-\setcclcucx 044B 044B 042B % CYRILLIC SMALL LETTER YERU
-\setcclcucx 044C 044C 042C % CYRILLIC SMALL LETTER SOFT SIGN
-\setcclcucx 044D 044D 042D % CYRILLIC SMALL LETTER E
-\setcclcucx 044E 044E 042E % CYRILLIC SMALL LETTER YU
-\setcclcucx 044F 044F 042F % CYRILLIC SMALL LETTER YA
-\setcclcucx 0450 0450 0400 % CYRILLIC SMALL LETTER IE WITH GRAVE
-\setcclcucx 0451 0451 0401 % CYRILLIC SMALL LETTER IO
-\setcclcucx 0452 0452 0402 % CYRILLIC SMALL LETTER DJE
-\setcclcucx 0453 0453 0403 % CYRILLIC SMALL LETTER GJE
-\setcclcucx 0454 0454 0404 % CYRILLIC SMALL LETTER UKRAINIAN IE
-\setcclcucx 0455 0455 0405 % CYRILLIC SMALL LETTER DZE
-\setcclcucx 0456 0456 0406 % CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
-\setcclcucx 0457 0457 0407 % CYRILLIC SMALL LETTER YI
-\setcclcucx 0458 0458 0408 % CYRILLIC SMALL LETTER JE
-\setcclcucx 0459 0459 0409 % CYRILLIC SMALL LETTER LJE
-\setcclcucx 045A 045A 040A % CYRILLIC SMALL LETTER NJE
-\setcclcucx 045B 045B 040B % CYRILLIC SMALL LETTER TSHE
-\setcclcucx 045C 045C 040C % CYRILLIC SMALL LETTER KJE
-\setcclcucx 045D 045D 040D % CYRILLIC SMALL LETTER I WITH GRAVE
-\setcclcucx 045E 045E 040E % CYRILLIC SMALL LETTER SHORT U
-\setcclcucx 045F 045F 040F % CYRILLIC SMALL LETTER DZHE
-\setcclcucx 0460 0461 0460 % CYRILLIC CAPITAL LETTER OMEGA
-\setcclcucx 0461 0461 0460 % CYRILLIC SMALL LETTER OMEGA
-\setcclcucx 0462 0463 0462 % CYRILLIC CAPITAL LETTER YAT
-\setcclcucx 0463 0463 0462 % CYRILLIC SMALL LETTER YAT
-\setcclcucx 0464 0465 0464 % CYRILLIC CAPITAL LETTER IOTIFIED E
-\setcclcucx 0465 0465 0464 % CYRILLIC SMALL LETTER IOTIFIED E
-\setcclcucx 0466 0467 0466 % CYRILLIC CAPITAL LETTER LITTLE YUS
-\setcclcucx 0467 0467 0466 % CYRILLIC SMALL LETTER LITTLE YUS
-\setcclcucx 0468 0469 0468 % CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS
-\setcclcucx 0469 0469 0468 % CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS
-\setcclcucx 046A 046B 046A % CYRILLIC CAPITAL LETTER BIG YUS
-\setcclcucx 046B 046B 046A % CYRILLIC SMALL LETTER BIG YUS
-\setcclcucx 046C 046D 046C % CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS
-\setcclcucx 046D 046D 046C % CYRILLIC SMALL LETTER IOTIFIED BIG YUS
-\setcclcucx 046E 046F 046E % CYRILLIC CAPITAL LETTER KSI
-\setcclcucx 046F 046F 046E % CYRILLIC SMALL LETTER KSI
-\setcclcucx 0470 0471 0470 % CYRILLIC CAPITAL LETTER PSI
-\setcclcucx 0471 0471 0470 % CYRILLIC SMALL LETTER PSI
-\setcclcucx 0472 0473 0472 % CYRILLIC CAPITAL LETTER FITA
-\setcclcucx 0473 0473 0472 % CYRILLIC SMALL LETTER FITA
-\setcclcucx 0474 0475 0474 % CYRILLIC CAPITAL LETTER IZHITSA
-\setcclcucx 0475 0475 0474 % CYRILLIC SMALL LETTER IZHITSA
-\setcclcucx 0476 0477 0476 % CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
-\setcclcucx 0477 0477 0476 % CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
-\setcclcucx 0478 0479 0478 % CYRILLIC CAPITAL LETTER UK
-\setcclcucx 0479 0479 0478 % CYRILLIC SMALL LETTER UK
-\setcclcucx 047A 047B 047A % CYRILLIC CAPITAL LETTER ROUND OMEGA
-\setcclcucx 047B 047B 047A % CYRILLIC SMALL LETTER ROUND OMEGA
-\setcclcucx 047C 047D 047C % CYRILLIC CAPITAL LETTER OMEGA WITH TITLO
-\setcclcucx 047D 047D 047C % CYRILLIC SMALL LETTER OMEGA WITH TITLO
-\setcclcucx 047E 047F 047E % CYRILLIC CAPITAL LETTER OT
-\setcclcucx 047F 047F 047E % CYRILLIC SMALL LETTER OT
-\setcclcucx 0480 0481 0480 % CYRILLIC CAPITAL LETTER KOPPA
-\setcclcucx 0481 0481 0480 % CYRILLIC SMALL LETTER KOPPA
-\setcclcucx 048A 048B 048A % CYRILLIC CAPITAL LETTER SHORT I WITH TAIL
-\setcclcucx 048B 048B 048A % CYRILLIC SMALL LETTER SHORT I WITH TAIL
-\setcclcucx 048C 048D 048C % CYRILLIC CAPITAL LETTER SEMISOFT SIGN
-\setcclcucx 048D 048D 048C % CYRILLIC SMALL LETTER SEMISOFT SIGN
-\setcclcucx 048E 048F 048E % CYRILLIC CAPITAL LETTER ER WITH TICK
-\setcclcucx 048F 048F 048E % CYRILLIC SMALL LETTER ER WITH TICK
-\setcclcucx 0490 0491 0490 % CYRILLIC CAPITAL LETTER GHE WITH UPTURN
-\setcclcucx 0491 0491 0490 % CYRILLIC SMALL LETTER GHE WITH UPTURN
-\setcclcucx 0492 0493 0492 % CYRILLIC CAPITAL LETTER GHE WITH STROKE
-\setcclcucx 0493 0493 0492 % CYRILLIC SMALL LETTER GHE WITH STROKE
-\setcclcucx 0494 0495 0494 % CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK
-\setcclcucx 0495 0495 0494 % CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK
-\setcclcucx 0496 0497 0496 % CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER
-\setcclcucx 0497 0497 0496 % CYRILLIC SMALL LETTER ZHE WITH DESCENDER
-\setcclcucx 0498 0499 0498 % CYRILLIC CAPITAL LETTER ZE WITH DESCENDER
-\setcclcucx 0499 0499 0498 % CYRILLIC SMALL LETTER ZE WITH DESCENDER
-\setcclcucx 049A 049B 049A % CYRILLIC CAPITAL LETTER KA WITH DESCENDER
-\setcclcucx 049B 049B 049A % CYRILLIC SMALL LETTER KA WITH DESCENDER
-\setcclcucx 049C 049D 049C % CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE
-\setcclcucx 049D 049D 049C % CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE
-\setcclcucx 049E 049F 049E % CYRILLIC CAPITAL LETTER KA WITH STROKE
-\setcclcucx 049F 049F 049E % CYRILLIC SMALL LETTER KA WITH STROKE
-\setcclcucx 04A0 04A1 04A0 % CYRILLIC CAPITAL LETTER BASHKIR KA
-\setcclcucx 04A1 04A1 04A0 % CYRILLIC SMALL LETTER BASHKIR KA
-\setcclcucx 04A2 04A3 04A2 % CYRILLIC CAPITAL LETTER EN WITH DESCENDER
-\setcclcucx 04A3 04A3 04A2 % CYRILLIC SMALL LETTER EN WITH DESCENDER
-\setcclcucx 04A4 04A5 04A4 % CYRILLIC CAPITAL LIGATURE EN GHE
-\setcclcucx 04A5 04A5 04A4 % CYRILLIC SMALL LIGATURE EN GHE
-\setcclcucx 04A6 04A7 04A6 % CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK
-\setcclcucx 04A7 04A7 04A6 % CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK
-\setcclcucx 04A8 04A9 04A8 % CYRILLIC CAPITAL LETTER ABKHASIAN HA
-\setcclcucx 04A9 04A9 04A8 % CYRILLIC SMALL LETTER ABKHASIAN HA
-\setcclcucx 04AA 04AB 04AA % CYRILLIC CAPITAL LETTER ES WITH DESCENDER
-\setcclcucx 04AB 04AB 04AA % CYRILLIC SMALL LETTER ES WITH DESCENDER
-\setcclcucx 04AC 04AD 04AC % CYRILLIC CAPITAL LETTER TE WITH DESCENDER
-\setcclcucx 04AD 04AD 04AC % CYRILLIC SMALL LETTER TE WITH DESCENDER
-\setcclcucx 04AE 04AF 04AE % CYRILLIC CAPITAL LETTER STRAIGHT U
-\setcclcucx 04AF 04AF 04AE % CYRILLIC SMALL LETTER STRAIGHT U
-\setcclcucx 04B0 04B1 04B0 % CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE
-\setcclcucx 04B1 04B1 04B0 % CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE
-\setcclcucx 04B2 04B3 04B2 % CYRILLIC CAPITAL LETTER HA WITH DESCENDER
-\setcclcucx 04B3 04B3 04B2 % CYRILLIC SMALL LETTER HA WITH DESCENDER
-\setcclcucx 04B4 04B5 04B4 % CYRILLIC CAPITAL LIGATURE TE TSE
-\setcclcucx 04B5 04B5 04B4 % CYRILLIC SMALL LIGATURE TE TSE
-\setcclcucx 04B6 04B7 04B6 % CYRILLIC CAPITAL LETTER CHE WITH DESCENDER
-\setcclcucx 04B7 04B7 04B6 % CYRILLIC SMALL LETTER CHE WITH DESCENDER
-\setcclcucx 04B8 04B9 04B8 % CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE
-\setcclcucx 04B9 04B9 04B8 % CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE
-\setcclcucx 04BA 04BB 04BA % CYRILLIC CAPITAL LETTER SHHA
-\setcclcucx 04BB 04BB 04BA % CYRILLIC SMALL LETTER SHHA
-\setcclcucx 04BC 04BD 04BC % CYRILLIC CAPITAL LETTER ABKHASIAN CHE
-\setcclcucx 04BD 04BD 04BC % CYRILLIC SMALL LETTER ABKHASIAN CHE
-\setcclcucx 04BE 04BF 04BE % CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER
-\setcclcucx 04BF 04BF 04BE % CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER
-\setcclcucx 04C0 04CF 04C0 % CYRILLIC LETTER PALOCHKA
-\setcclcucx 04C1 04C2 04C1 % CYRILLIC CAPITAL LETTER ZHE WITH BREVE
-\setcclcucx 04C2 04C2 04C1 % CYRILLIC SMALL LETTER ZHE WITH BREVE
-\setcclcucx 04C3 04C4 04C3 % CYRILLIC CAPITAL LETTER KA WITH HOOK
-\setcclcucx 04C4 04C4 04C3 % CYRILLIC SMALL LETTER KA WITH HOOK
-\setcclcucx 04C5 04C6 04C5 % CYRILLIC CAPITAL LETTER EL WITH TAIL
-\setcclcucx 04C6 04C6 04C5 % CYRILLIC SMALL LETTER EL WITH TAIL
-\setcclcucx 04C7 04C8 04C7 % CYRILLIC CAPITAL LETTER EN WITH HOOK
-\setcclcucx 04C8 04C8 04C7 % CYRILLIC SMALL LETTER EN WITH HOOK
-\setcclcucx 04C9 04CA 04C9 % CYRILLIC CAPITAL LETTER EN WITH TAIL
-\setcclcucx 04CA 04CA 04C9 % CYRILLIC SMALL LETTER EN WITH TAIL
-\setcclcucx 04CB 04CC 04CB % CYRILLIC CAPITAL LETTER KHAKASSIAN CHE
-\setcclcucx 04CC 04CC 04CB % CYRILLIC SMALL LETTER KHAKASSIAN CHE
-\setcclcucx 04CD 04CE 04CD % CYRILLIC CAPITAL LETTER EM WITH TAIL
-\setcclcucx 04CE 04CE 04CD % CYRILLIC SMALL LETTER EM WITH TAIL
-\setcclcucx 04CF 04CF 04C0 % CYRILLIC SMALL LETTER PALOCHKA
-\setcclcucx 04D0 04D1 04D0 % CYRILLIC CAPITAL LETTER A WITH BREVE
-\setcclcucx 04D1 04D1 04D0 % CYRILLIC SMALL LETTER A WITH BREVE
-\setcclcucx 04D2 04D3 04D2 % CYRILLIC CAPITAL LETTER A WITH DIAERESIS
-\setcclcucx 04D3 04D3 04D2 % CYRILLIC SMALL LETTER A WITH DIAERESIS
-\setcclcucx 04D4 04D5 04D4 % CYRILLIC CAPITAL LIGATURE A IE
-\setcclcucx 04D5 04D5 04D4 % CYRILLIC SMALL LIGATURE A IE
-\setcclcucx 04D6 04D7 04D6 % CYRILLIC CAPITAL LETTER IE WITH BREVE
-\setcclcucx 04D7 04D7 04D6 % CYRILLIC SMALL LETTER IE WITH BREVE
-\setcclcucx 04D8 04D9 04D8 % CYRILLIC CAPITAL LETTER SCHWA
-\setcclcucx 04D9 04D9 04D8 % CYRILLIC SMALL LETTER SCHWA
-\setcclcucx 04DA 04DB 04DA % CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS
-\setcclcucx 04DB 04DB 04DA % CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS
-\setcclcucx 04DC 04DD 04DC % CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
-\setcclcucx 04DD 04DD 04DC % CYRILLIC SMALL LETTER ZHE WITH DIAERESIS
-\setcclcucx 04DE 04DF 04DE % CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
-\setcclcucx 04DF 04DF 04DE % CYRILLIC SMALL LETTER ZE WITH DIAERESIS
-\setcclcucx 04E0 04E1 04E0 % CYRILLIC CAPITAL LETTER ABKHASIAN DZE
-\setcclcucx 04E1 04E1 04E0 % CYRILLIC SMALL LETTER ABKHASIAN DZE
-\setcclcucx 04E2 04E3 04E2 % CYRILLIC CAPITAL LETTER I WITH MACRON
-\setcclcucx 04E3 04E3 04E2 % CYRILLIC SMALL LETTER I WITH MACRON
-\setcclcucx 04E4 04E5 04E4 % CYRILLIC CAPITAL LETTER I WITH DIAERESIS
-\setcclcucx 04E5 04E5 04E4 % CYRILLIC SMALL LETTER I WITH DIAERESIS
-\setcclcucx 04E6 04E7 04E6 % CYRILLIC CAPITAL LETTER O WITH DIAERESIS
-\setcclcucx 04E7 04E7 04E6 % CYRILLIC SMALL LETTER O WITH DIAERESIS
-\setcclcucx 04E8 04E9 04E8 % CYRILLIC CAPITAL LETTER BARRED O
-\setcclcucx 04E9 04E9 04E8 % CYRILLIC SMALL LETTER BARRED O
-\setcclcucx 04EA 04EB 04EA % CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS
-\setcclcucx 04EB 04EB 04EA % CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS
-\setcclcucx 04EC 04ED 04EC % CYRILLIC CAPITAL LETTER E WITH DIAERESIS
-\setcclcucx 04ED 04ED 04EC % CYRILLIC SMALL LETTER E WITH DIAERESIS
-\setcclcucx 04EE 04EF 04EE % CYRILLIC CAPITAL LETTER U WITH MACRON
-\setcclcucx 04EF 04EF 04EE % CYRILLIC SMALL LETTER U WITH MACRON
-\setcclcucx 04F0 04F1 04F0 % CYRILLIC CAPITAL LETTER U WITH DIAERESIS
-\setcclcucx 04F1 04F1 04F0 % CYRILLIC SMALL LETTER U WITH DIAERESIS
-\setcclcucx 04F2 04F3 04F2 % CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE
-\setcclcucx 04F3 04F3 04F2 % CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE
-\setcclcucx 04F4 04F5 04F4 % CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
-\setcclcucx 04F5 04F5 04F4 % CYRILLIC SMALL LETTER CHE WITH DIAERESIS
-\setcclcucx 04F6 04F7 04F6 % CYRILLIC CAPITAL LETTER GHE WITH DESCENDER
-\setcclcucx 04F7 04F7 04F6 % CYRILLIC SMALL LETTER GHE WITH DESCENDER
-\setcclcucx 04F8 04F9 04F8 % CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
-\setcclcucx 04F9 04F9 04F8 % CYRILLIC SMALL LETTER YERU WITH DIAERESIS
-\setcclcucx 04FA 04FB 04FA % CYRILLIC CAPITAL LETTER GHE WITH STROKE AND HOOK
-\setcclcucx 04FB 04FB 04FA % CYRILLIC SMALL LETTER GHE WITH STROKE AND HOOK
-\setcclcucx 04FC 04FD 04FC % CYRILLIC CAPITAL LETTER HA WITH HOOK
-\setcclcucx 04FD 04FD 04FC % CYRILLIC SMALL LETTER HA WITH HOOK
-\setcclcucx 04FE 04FF 04FE % CYRILLIC CAPITAL LETTER HA WITH STROKE
-\setcclcucx 04FF 04FF 04FE % CYRILLIC SMALL LETTER HA WITH STROKE
-\setcclcucx 0500 0501 0500 % CYRILLIC CAPITAL LETTER KOMI DE
-\setcclcucx 0501 0501 0500 % CYRILLIC SMALL LETTER KOMI DE
-\setcclcucx 0502 0503 0502 % CYRILLIC CAPITAL LETTER KOMI DJE
-\setcclcucx 0503 0503 0502 % CYRILLIC SMALL LETTER KOMI DJE
-\setcclcucx 0504 0505 0504 % CYRILLIC CAPITAL LETTER KOMI ZJE
-\setcclcucx 0505 0505 0504 % CYRILLIC SMALL LETTER KOMI ZJE
-\setcclcucx 0506 0507 0506 % CYRILLIC CAPITAL LETTER KOMI DZJE
-\setcclcucx 0507 0507 0506 % CYRILLIC SMALL LETTER KOMI DZJE
-\setcclcucx 0508 0509 0508 % CYRILLIC CAPITAL LETTER KOMI LJE
-\setcclcucx 0509 0509 0508 % CYRILLIC SMALL LETTER KOMI LJE
-\setcclcucx 050A 050B 050A % CYRILLIC CAPITAL LETTER KOMI NJE
-\setcclcucx 050B 050B 050A % CYRILLIC SMALL LETTER KOMI NJE
-\setcclcucx 050C 050D 050C % CYRILLIC CAPITAL LETTER KOMI SJE
-\setcclcucx 050D 050D 050C % CYRILLIC SMALL LETTER KOMI SJE
-\setcclcucx 050E 050F 050E % CYRILLIC CAPITAL LETTER KOMI TJE
-\setcclcucx 050F 050F 050E % CYRILLIC SMALL LETTER KOMI TJE
-\setcclcucx 0510 0511 0510 % CYRILLIC CAPITAL LETTER REVERSED ZE
-\setcclcucx 0511 0511 0510 % CYRILLIC SMALL LETTER REVERSED ZE
-\setcclcucx 0512 0513 0512 % CYRILLIC CAPITAL LETTER EL WITH HOOK
-\setcclcucx 0513 0513 0512 % CYRILLIC SMALL LETTER EL WITH HOOK
-\setcclcucx 0531 0561 0531 % ARMENIAN CAPITAL LETTER AYB
-\setcclcucx 0532 0562 0532 % ARMENIAN CAPITAL LETTER BEN
-\setcclcucx 0533 0563 0533 % ARMENIAN CAPITAL LETTER GIM
-\setcclcucx 0534 0564 0534 % ARMENIAN CAPITAL LETTER DA
-\setcclcucx 0535 0565 0535 % ARMENIAN CAPITAL LETTER ECH
-\setcclcucx 0536 0566 0536 % ARMENIAN CAPITAL LETTER ZA
-\setcclcucx 0537 0567 0537 % ARMENIAN CAPITAL LETTER EH
-\setcclcucx 0538 0568 0538 % ARMENIAN CAPITAL LETTER ET
-\setcclcucx 0539 0569 0539 % ARMENIAN CAPITAL LETTER TO
-\setcclcucx 053A 056A 053A % ARMENIAN CAPITAL LETTER ZHE
-\setcclcucx 053B 056B 053B % ARMENIAN CAPITAL LETTER INI
-\setcclcucx 053C 056C 053C % ARMENIAN CAPITAL LETTER LIWN
-\setcclcucx 053D 056D 053D % ARMENIAN CAPITAL LETTER XEH
-\setcclcucx 053E 056E 053E % ARMENIAN CAPITAL LETTER CA
-\setcclcucx 053F 056F 053F % ARMENIAN CAPITAL LETTER KEN
-\setcclcucx 0540 0570 0540 % ARMENIAN CAPITAL LETTER HO
-\setcclcucx 0541 0571 0541 % ARMENIAN CAPITAL LETTER JA
-\setcclcucx 0542 0572 0542 % ARMENIAN CAPITAL LETTER GHAD
-\setcclcucx 0543 0573 0543 % ARMENIAN CAPITAL LETTER CHEH
-\setcclcucx 0544 0574 0544 % ARMENIAN CAPITAL LETTER MEN
-\setcclcucx 0545 0575 0545 % ARMENIAN CAPITAL LETTER YI
-\setcclcucx 0546 0576 0546 % ARMENIAN CAPITAL LETTER NOW
-\setcclcucx 0547 0577 0547 % ARMENIAN CAPITAL LETTER SHA
-\setcclcucx 0548 0578 0548 % ARMENIAN CAPITAL LETTER VO
-\setcclcucx 0549 0579 0549 % ARMENIAN CAPITAL LETTER CHA
-\setcclcucx 054A 057A 054A % ARMENIAN CAPITAL LETTER PEH
-\setcclcucx 054B 057B 054B % ARMENIAN CAPITAL LETTER JHEH
-\setcclcucx 054C 057C 054C % ARMENIAN CAPITAL LETTER RA
-\setcclcucx 054D 057D 054D % ARMENIAN CAPITAL LETTER SEH
-\setcclcucx 054E 057E 054E % ARMENIAN CAPITAL LETTER VEW
-\setcclcucx 054F 057F 054F % ARMENIAN CAPITAL LETTER TIWN
-\setcclcucx 0550 0580 0550 % ARMENIAN CAPITAL LETTER REH
-\setcclcucx 0551 0581 0551 % ARMENIAN CAPITAL LETTER CO
-\setcclcucx 0552 0582 0552 % ARMENIAN CAPITAL LETTER YIWN
-\setcclcucx 0553 0583 0553 % ARMENIAN CAPITAL LETTER PIWR
-\setcclcucx 0554 0584 0554 % ARMENIAN CAPITAL LETTER KEH
-\setcclcucx 0555 0585 0555 % ARMENIAN CAPITAL LETTER OH
-\setcclcucx 0556 0586 0556 % ARMENIAN CAPITAL LETTER FEH
-\setcclcucx 0561 0561 0531 % ARMENIAN SMALL LETTER AYB
-\setcclcucx 0562 0562 0532 % ARMENIAN SMALL LETTER BEN
-\setcclcucx 0563 0563 0533 % ARMENIAN SMALL LETTER GIM
-\setcclcucx 0564 0564 0534 % ARMENIAN SMALL LETTER DA
-\setcclcucx 0565 0565 0535 % ARMENIAN SMALL LETTER ECH
-\setcclcucx 0566 0566 0536 % ARMENIAN SMALL LETTER ZA
-\setcclcucx 0567 0567 0537 % ARMENIAN SMALL LETTER EH
-\setcclcucx 0568 0568 0538 % ARMENIAN SMALL LETTER ET
-\setcclcucx 0569 0569 0539 % ARMENIAN SMALL LETTER TO
-\setcclcucx 056A 056A 053A % ARMENIAN SMALL LETTER ZHE
-\setcclcucx 056B 056B 053B % ARMENIAN SMALL LETTER INI
-\setcclcucx 056C 056C 053C % ARMENIAN SMALL LETTER LIWN
-\setcclcucx 056D 056D 053D % ARMENIAN SMALL LETTER XEH
-\setcclcucx 056E 056E 053E % ARMENIAN SMALL LETTER CA
-\setcclcucx 056F 056F 053F % ARMENIAN SMALL LETTER KEN
-\setcclcucx 0570 0570 0540 % ARMENIAN SMALL LETTER HO
-\setcclcucx 0571 0571 0541 % ARMENIAN SMALL LETTER JA
-\setcclcucx 0572 0572 0542 % ARMENIAN SMALL LETTER GHAD
-\setcclcucx 0573 0573 0543 % ARMENIAN SMALL LETTER CHEH
-\setcclcucx 0574 0574 0544 % ARMENIAN SMALL LETTER MEN
-\setcclcucx 0575 0575 0545 % ARMENIAN SMALL LETTER YI
-\setcclcucx 0576 0576 0546 % ARMENIAN SMALL LETTER NOW
-\setcclcucx 0577 0577 0547 % ARMENIAN SMALL LETTER SHA
-\setcclcucx 0578 0578 0548 % ARMENIAN SMALL LETTER VO
-\setcclcucx 0579 0579 0549 % ARMENIAN SMALL LETTER CHA
-\setcclcucx 057A 057A 054A % ARMENIAN SMALL LETTER PEH
-\setcclcucx 057B 057B 054B % ARMENIAN SMALL LETTER JHEH
-\setcclcucx 057C 057C 054C % ARMENIAN SMALL LETTER RA
-\setcclcucx 057D 057D 054D % ARMENIAN SMALL LETTER SEH
-\setcclcucx 057E 057E 054E % ARMENIAN SMALL LETTER VEW
-\setcclcucx 057F 057F 054F % ARMENIAN SMALL LETTER TIWN
-\setcclcucx 0580 0580 0550 % ARMENIAN SMALL LETTER REH
-\setcclcucx 0581 0581 0551 % ARMENIAN SMALL LETTER CO
-\setcclcucx 0582 0582 0552 % ARMENIAN SMALL LETTER YIWN
-\setcclcucx 0583 0583 0553 % ARMENIAN SMALL LETTER PIWR
-\setcclcucx 0584 0584 0554 % ARMENIAN SMALL LETTER KEH
-\setcclcucx 0585 0585 0555 % ARMENIAN SMALL LETTER OH
-\setcclcucx 0586 0586 0556 % ARMENIAN SMALL LETTER FEH
-\setcclcucx 0587 0587 0587 % ARMENIAN SMALL LIGATURE ECH YIWN
-\setcclcucx 10A0 2D00 10A0 % GEORGIAN CAPITAL LETTER AN
-\setcclcucx 10A1 2D01 10A1 % GEORGIAN CAPITAL LETTER BAN
-\setcclcucx 10A2 2D02 10A2 % GEORGIAN CAPITAL LETTER GAN
-\setcclcucx 10A3 2D03 10A3 % GEORGIAN CAPITAL LETTER DON
-\setcclcucx 10A4 2D04 10A4 % GEORGIAN CAPITAL LETTER EN
-\setcclcucx 10A5 2D05 10A5 % GEORGIAN CAPITAL LETTER VIN
-\setcclcucx 10A6 2D06 10A6 % GEORGIAN CAPITAL LETTER ZEN
-\setcclcucx 10A7 2D07 10A7 % GEORGIAN CAPITAL LETTER TAN
-\setcclcucx 10A8 2D08 10A8 % GEORGIAN CAPITAL LETTER IN
-\setcclcucx 10A9 2D09 10A9 % GEORGIAN CAPITAL LETTER KAN
-\setcclcucx 10AA 2D0A 10AA % GEORGIAN CAPITAL LETTER LAS
-\setcclcucx 10AB 2D0B 10AB % GEORGIAN CAPITAL LETTER MAN
-\setcclcucx 10AC 2D0C 10AC % GEORGIAN CAPITAL LETTER NAR
-\setcclcucx 10AD 2D0D 10AD % GEORGIAN CAPITAL LETTER ON
-\setcclcucx 10AE 2D0E 10AE % GEORGIAN CAPITAL LETTER PAR
-\setcclcucx 10AF 2D0F 10AF % GEORGIAN CAPITAL LETTER ZHAR
-\setcclcucx 10B0 2D10 10B0 % GEORGIAN CAPITAL LETTER RAE
-\setcclcucx 10B1 2D11 10B1 % GEORGIAN CAPITAL LETTER SAN
-\setcclcucx 10B2 2D12 10B2 % GEORGIAN CAPITAL LETTER TAR
-\setcclcucx 10B3 2D13 10B3 % GEORGIAN CAPITAL LETTER UN
-\setcclcucx 10B4 2D14 10B4 % GEORGIAN CAPITAL LETTER PHAR
-\setcclcucx 10B5 2D15 10B5 % GEORGIAN CAPITAL LETTER KHAR
-\setcclcucx 10B6 2D16 10B6 % GEORGIAN CAPITAL LETTER GHAN
-\setcclcucx 10B7 2D17 10B7 % GEORGIAN CAPITAL LETTER QAR
-\setcclcucx 10B8 2D18 10B8 % GEORGIAN CAPITAL LETTER SHIN
-\setcclcucx 10B9 2D19 10B9 % GEORGIAN CAPITAL LETTER CHIN
-\setcclcucx 10BA 2D1A 10BA % GEORGIAN CAPITAL LETTER CAN
-\setcclcucx 10BB 2D1B 10BB % GEORGIAN CAPITAL LETTER JIL
-\setcclcucx 10BC 2D1C 10BC % GEORGIAN CAPITAL LETTER CIL
-\setcclcucx 10BD 2D1D 10BD % GEORGIAN CAPITAL LETTER CHAR
-\setcclcucx 10BE 2D1E 10BE % GEORGIAN CAPITAL LETTER XAN
-\setcclcucx 10BF 2D1F 10BF % GEORGIAN CAPITAL LETTER JHAN
-\setcclcucx 10C0 2D20 10C0 % GEORGIAN CAPITAL LETTER HAE
-\setcclcucx 10C1 2D21 10C1 % GEORGIAN CAPITAL LETTER HE
-\setcclcucx 10C2 2D22 10C2 % GEORGIAN CAPITAL LETTER HIE
-\setcclcucx 10C3 2D23 10C3 % GEORGIAN CAPITAL LETTER WE
-\setcclcucx 10C4 2D24 10C4 % GEORGIAN CAPITAL LETTER HAR
-\setcclcucx 10C5 2D25 10C5 % GEORGIAN CAPITAL LETTER HOE
-\setcclcucx 1D00 1D00 1D00 % LATIN LETTER SMALL CAPITAL A
-\setcclcucx 1D01 1D01 1D01 % LATIN LETTER SMALL CAPITAL AE
-\setcclcucx 1D02 1D02 1D02 % LATIN SMALL LETTER TURNED AE
-\setcclcucx 1D03 1D03 1D03 % LATIN LETTER SMALL CAPITAL BARRED B
-\setcclcucx 1D04 1D04 1D04 % LATIN LETTER SMALL CAPITAL C
-\setcclcucx 1D05 1D05 1D05 % LATIN LETTER SMALL CAPITAL D
-\setcclcucx 1D06 1D06 1D06 % LATIN LETTER SMALL CAPITAL ETH
-\setcclcucx 1D07 1D07 1D07 % LATIN LETTER SMALL CAPITAL E
-\setcclcucx 1D08 1D08 1D08 % LATIN SMALL LETTER TURNED OPEN E
-\setcclcucx 1D09 1D09 1D09 % LATIN SMALL LETTER TURNED I
-\setcclcucx 1D0A 1D0A 1D0A % LATIN LETTER SMALL CAPITAL J
-\setcclcucx 1D0B 1D0B 1D0B % LATIN LETTER SMALL CAPITAL K
-\setcclcucx 1D0C 1D0C 1D0C % LATIN LETTER SMALL CAPITAL L WITH STROKE
-\setcclcucx 1D0D 1D0D 1D0D % LATIN LETTER SMALL CAPITAL M
-\setcclcucx 1D0E 1D0E 1D0E % LATIN LETTER SMALL CAPITAL REVERSED N
-\setcclcucx 1D0F 1D0F 1D0F % LATIN LETTER SMALL CAPITAL O
-\setcclcucx 1D10 1D10 1D10 % LATIN LETTER SMALL CAPITAL OPEN O
-\setcclcucx 1D11 1D11 1D11 % LATIN SMALL LETTER SIDEWAYS O
-\setcclcucx 1D12 1D12 1D12 % LATIN SMALL LETTER SIDEWAYS OPEN O
-\setcclcucx 1D13 1D13 1D13 % LATIN SMALL LETTER SIDEWAYS O WITH STROKE
-\setcclcucx 1D14 1D14 1D14 % LATIN SMALL LETTER TURNED OE
-\setcclcucx 1D15 1D15 1D15 % LATIN LETTER SMALL CAPITAL OU
-\setcclcucx 1D16 1D16 1D16 % LATIN SMALL LETTER TOP HALF O
-\setcclcucx 1D17 1D17 1D17 % LATIN SMALL LETTER BOTTOM HALF O
-\setcclcucx 1D18 1D18 1D18 % LATIN LETTER SMALL CAPITAL P
-\setcclcucx 1D19 1D19 1D19 % LATIN LETTER SMALL CAPITAL REVERSED R
-\setcclcucx 1D1A 1D1A 1D1A % LATIN LETTER SMALL CAPITAL TURNED R
-\setcclcucx 1D1B 1D1B 1D1B % LATIN LETTER SMALL CAPITAL T
-\setcclcucx 1D1C 1D1C 1D1C % LATIN LETTER SMALL CAPITAL U
-\setcclcucx 1D1D 1D1D 1D1D % LATIN SMALL LETTER SIDEWAYS U
-\setcclcucx 1D1E 1D1E 1D1E % LATIN SMALL LETTER SIDEWAYS DIAERESIZED U
-\setcclcucx 1D1F 1D1F 1D1F % LATIN SMALL LETTER SIDEWAYS TURNED M
-\setcclcucx 1D20 1D20 1D20 % LATIN LETTER SMALL CAPITAL V
-\setcclcucx 1D21 1D21 1D21 % LATIN LETTER SMALL CAPITAL W
-\setcclcucx 1D22 1D22 1D22 % LATIN LETTER SMALL CAPITAL Z
-\setcclcucx 1D23 1D23 1D23 % LATIN LETTER SMALL CAPITAL EZH
-\setcclcucx 1D24 1D24 1D24 % LATIN LETTER VOICED LARYNGEAL SPIRANT
-\setcclcucx 1D25 1D25 1D25 % LATIN LETTER AIN
-\setcclcucx 1D26 1D26 1D26 % GREEK LETTER SMALL CAPITAL GAMMA
-\setcclcucx 1D27 1D27 1D27 % GREEK LETTER SMALL CAPITAL LAMDA
-\setcclcucx 1D28 1D28 1D28 % GREEK LETTER SMALL CAPITAL PI
-\setcclcucx 1D29 1D29 1D29 % GREEK LETTER SMALL CAPITAL RHO
-\setcclcucx 1D2A 1D2A 1D2A % GREEK LETTER SMALL CAPITAL PSI
-\setcclcucx 1D2B 1D2B 1D2B % CYRILLIC LETTER SMALL CAPITAL EL
-\setcclcucx 1D62 1D62 1D62 % LATIN SUBSCRIPT SMALL LETTER I
-\setcclcucx 1D63 1D63 1D63 % LATIN SUBSCRIPT SMALL LETTER R
-\setcclcucx 1D64 1D64 1D64 % LATIN SUBSCRIPT SMALL LETTER U
-\setcclcucx 1D65 1D65 1D65 % LATIN SUBSCRIPT SMALL LETTER V
-\setcclcucx 1D66 1D66 1D66 % GREEK SUBSCRIPT SMALL LETTER BETA
-\setcclcucx 1D67 1D67 1D67 % GREEK SUBSCRIPT SMALL LETTER GAMMA
-\setcclcucx 1D68 1D68 1D68 % GREEK SUBSCRIPT SMALL LETTER RHO
-\setcclcucx 1D69 1D69 1D69 % GREEK SUBSCRIPT SMALL LETTER PHI
-\setcclcucx 1D6A 1D6A 1D6A % GREEK SUBSCRIPT SMALL LETTER CHI
-\setcclcucx 1D6B 1D6B 1D6B % LATIN SMALL LETTER UE
-\setcclcucx 1D6C 1D6C 1D6C % LATIN SMALL LETTER B WITH MIDDLE TILDE
-\setcclcucx 1D6D 1D6D 1D6D % LATIN SMALL LETTER D WITH MIDDLE TILDE
-\setcclcucx 1D6E 1D6E 1D6E % LATIN SMALL LETTER F WITH MIDDLE TILDE
-\setcclcucx 1D6F 1D6F 1D6F % LATIN SMALL LETTER M WITH MIDDLE TILDE
-\setcclcucx 1D70 1D70 1D70 % LATIN SMALL LETTER N WITH MIDDLE TILDE
-\setcclcucx 1D71 1D71 1D71 % LATIN SMALL LETTER P WITH MIDDLE TILDE
-\setcclcucx 1D72 1D72 1D72 % LATIN SMALL LETTER R WITH MIDDLE TILDE
-\setcclcucx 1D73 1D73 1D73 % LATIN SMALL LETTER R WITH FISHHOOK AND MIDDLE TILDE
-\setcclcucx 1D74 1D74 1D74 % LATIN SMALL LETTER S WITH MIDDLE TILDE
-\setcclcucx 1D75 1D75 1D75 % LATIN SMALL LETTER T WITH MIDDLE TILDE
-\setcclcucx 1D76 1D76 1D76 % LATIN SMALL LETTER Z WITH MIDDLE TILDE
-\setcclcucx 1D77 1D77 1D77 % LATIN SMALL LETTER TURNED G
-\setcclcucx 1D79 1D79 1D79 % LATIN SMALL LETTER INSULAR G
-\setcclcucx 1D7A 1D7A 1D7A % LATIN SMALL LETTER TH WITH STRIKETHROUGH
-\setcclcucx 1D7B 1D7B 1D7B % LATIN SMALL CAPITAL LETTER I WITH STROKE
-\setcclcucx 1D7C 1D7C 1D7C % LATIN SMALL LETTER IOTA WITH STROKE
-\setcclcucx 1D7D 1D7D 2C63 % LATIN SMALL LETTER P WITH STROKE
-\setcclcucx 1D7E 1D7E 1D7E % LATIN SMALL CAPITAL LETTER U WITH STROKE
-\setcclcucx 1D7F 1D7F 1D7F % LATIN SMALL LETTER UPSILON WITH STROKE
-\setcclcucx 1D80 1D80 1D80 % LATIN SMALL LETTER B WITH PALATAL HOOK
-\setcclcucx 1D81 1D81 1D81 % LATIN SMALL LETTER D WITH PALATAL HOOK
-\setcclcucx 1D82 1D82 1D82 % LATIN SMALL LETTER F WITH PALATAL HOOK
-\setcclcucx 1D83 1D83 1D83 % LATIN SMALL LETTER G WITH PALATAL HOOK
-\setcclcucx 1D84 1D84 1D84 % LATIN SMALL LETTER K WITH PALATAL HOOK
-\setcclcucx 1D85 1D85 1D85 % LATIN SMALL LETTER L WITH PALATAL HOOK
-\setcclcucx 1D86 1D86 1D86 % LATIN SMALL LETTER M WITH PALATAL HOOK
-\setcclcucx 1D87 1D87 1D87 % LATIN SMALL LETTER N WITH PALATAL HOOK
-\setcclcucx 1D88 1D88 1D88 % LATIN SMALL LETTER P WITH PALATAL HOOK
-\setcclcucx 1D89 1D89 1D89 % LATIN SMALL LETTER R WITH PALATAL HOOK
-\setcclcucx 1D8A 1D8A 1D8A % LATIN SMALL LETTER S WITH PALATAL HOOK
-\setcclcucx 1D8B 1D8B 1D8B % LATIN SMALL LETTER ESH WITH PALATAL HOOK
-\setcclcucx 1D8C 1D8C 1D8C % LATIN SMALL LETTER V WITH PALATAL HOOK
-\setcclcucx 1D8D 1D8D 1D8D % LATIN SMALL LETTER X WITH PALATAL HOOK
-\setcclcucx 1D8E 1D8E 1D8E % LATIN SMALL LETTER Z WITH PALATAL HOOK
-\setcclcucx 1D8F 1D8F 1D8F % LATIN SMALL LETTER A WITH RETROFLEX HOOK
-\setcclcucx 1D90 1D90 1D90 % LATIN SMALL LETTER ALPHA WITH RETROFLEX HOOK
-\setcclcucx 1D91 1D91 1D91 % LATIN SMALL LETTER D WITH HOOK AND TAIL
-\setcclcucx 1D92 1D92 1D92 % LATIN SMALL LETTER E WITH RETROFLEX HOOK
-\setcclcucx 1D93 1D93 1D93 % LATIN SMALL LETTER OPEN E WITH RETROFLEX HOOK
-\setcclcucx 1D94 1D94 1D94 % LATIN SMALL LETTER REVERSED OPEN E WITH RETROFLEX HOOK
-\setcclcucx 1D95 1D95 1D95 % LATIN SMALL LETTER SCHWA WITH RETROFLEX HOOK
-\setcclcucx 1D96 1D96 1D96 % LATIN SMALL LETTER I WITH RETROFLEX HOOK
-\setcclcucx 1D97 1D97 1D97 % LATIN SMALL LETTER OPEN O WITH RETROFLEX HOOK
-\setcclcucx 1D98 1D98 1D98 % LATIN SMALL LETTER ESH WITH RETROFLEX HOOK
-\setcclcucx 1D99 1D99 1D99 % LATIN SMALL LETTER U WITH RETROFLEX HOOK
-\setcclcucx 1D9A 1D9A 1D9A % LATIN SMALL LETTER EZH WITH RETROFLEX HOOK
-\setcclcucx 1E00 1E01 1E00 % LATIN CAPITAL LETTER A WITH RING BELOW
-\setcclcucx 1E01 1E01 1E00 % LATIN SMALL LETTER A WITH RING BELOW
-\setcclcucx 1E02 1E03 1E02 % LATIN CAPITAL LETTER B WITH DOT ABOVE
-\setcclcucx 1E03 1E03 1E02 % LATIN SMALL LETTER B WITH DOT ABOVE
-\setcclcucx 1E04 1E05 1E04 % LATIN CAPITAL LETTER B WITH DOT BELOW
-\setcclcucx 1E05 1E05 1E04 % LATIN SMALL LETTER B WITH DOT BELOW
-\setcclcucx 1E06 1E07 1E06 % LATIN CAPITAL LETTER B WITH LINE BELOW
-\setcclcucx 1E07 1E07 1E06 % LATIN SMALL LETTER B WITH LINE BELOW
-\setcclcucx 1E08 1E09 1E08 % LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
-\setcclcucx 1E09 1E09 1E08 % LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
-\setcclcucx 1E0A 1E0B 1E0A % LATIN CAPITAL LETTER D WITH DOT ABOVE
-\setcclcucx 1E0B 1E0B 1E0A % LATIN SMALL LETTER D WITH DOT ABOVE
-\setcclcucx 1E0C 1E0D 1E0C % LATIN CAPITAL LETTER D WITH DOT BELOW
-\setcclcucx 1E0D 1E0D 1E0C % LATIN SMALL LETTER D WITH DOT BELOW
-\setcclcucx 1E0E 1E0F 1E0E % LATIN CAPITAL LETTER D WITH LINE BELOW
-\setcclcucx 1E0F 1E0F 1E0E % LATIN SMALL LETTER D WITH LINE BELOW
-\setcclcucx 1E10 1E11 1E10 % LATIN CAPITAL LETTER D WITH CEDILLA
-\setcclcucx 1E11 1E11 1E10 % LATIN SMALL LETTER D WITH CEDILLA
-\setcclcucx 1E12 1E13 1E12 % LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW
-\setcclcucx 1E13 1E13 1E12 % LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW
-\setcclcucx 1E14 1E15 1E14 % LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
-\setcclcucx 1E15 1E15 1E14 % LATIN SMALL LETTER E WITH MACRON AND GRAVE
-\setcclcucx 1E16 1E17 1E16 % LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
-\setcclcucx 1E17 1E17 1E16 % LATIN SMALL LETTER E WITH MACRON AND ACUTE
-\setcclcucx 1E18 1E19 1E18 % LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW
-\setcclcucx 1E19 1E19 1E18 % LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW
-\setcclcucx 1E1A 1E1B 1E1A % LATIN CAPITAL LETTER E WITH TILDE BELOW
-\setcclcucx 1E1B 1E1B 1E1A % LATIN SMALL LETTER E WITH TILDE BELOW
-\setcclcucx 1E1C 1E1D 1E1C % LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
-\setcclcucx 1E1D 1E1D 1E1C % LATIN SMALL LETTER E WITH CEDILLA AND BREVE
-\setcclcucx 1E1E 1E1F 1E1E % LATIN CAPITAL LETTER F WITH DOT ABOVE
-\setcclcucx 1E1F 1E1F 1E1E % LATIN SMALL LETTER F WITH DOT ABOVE
-\setcclcucx 1E20 1E21 1E20 % LATIN CAPITAL LETTER G WITH MACRON
-\setcclcucx 1E21 1E21 1E20 % LATIN SMALL LETTER G WITH MACRON
-\setcclcucx 1E22 1E23 1E22 % LATIN CAPITAL LETTER H WITH DOT ABOVE
-\setcclcucx 1E23 1E23 1E22 % LATIN SMALL LETTER H WITH DOT ABOVE
-\setcclcucx 1E24 1E25 1E24 % LATIN CAPITAL LETTER H WITH DOT BELOW
-\setcclcucx 1E25 1E25 1E24 % LATIN SMALL LETTER H WITH DOT BELOW
-\setcclcucx 1E26 1E27 1E26 % LATIN CAPITAL LETTER H WITH DIAERESIS
-\setcclcucx 1E27 1E27 1E26 % LATIN SMALL LETTER H WITH DIAERESIS
-\setcclcucx 1E28 1E29 1E28 % LATIN CAPITAL LETTER H WITH CEDILLA
-\setcclcucx 1E29 1E29 1E28 % LATIN SMALL LETTER H WITH CEDILLA
-\setcclcucx 1E2A 1E2B 1E2A % LATIN CAPITAL LETTER H WITH BREVE BELOW
-\setcclcucx 1E2B 1E2B 1E2A % LATIN SMALL LETTER H WITH BREVE BELOW
-\setcclcucx 1E2C 1E2D 1E2C % LATIN CAPITAL LETTER I WITH TILDE BELOW
-\setcclcucx 1E2D 1E2D 1E2C % LATIN SMALL LETTER I WITH TILDE BELOW
-\setcclcucx 1E2E 1E2F 1E2E % LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
-\setcclcucx 1E2F 1E2F 1E2E % LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
-\setcclcucx 1E30 1E31 1E30 % LATIN CAPITAL LETTER K WITH ACUTE
-\setcclcucx 1E31 1E31 1E30 % LATIN SMALL LETTER K WITH ACUTE
-\setcclcucx 1E32 1E33 1E32 % LATIN CAPITAL LETTER K WITH DOT BELOW
-\setcclcucx 1E33 1E33 1E32 % LATIN SMALL LETTER K WITH DOT BELOW
-\setcclcucx 1E34 1E35 1E34 % LATIN CAPITAL LETTER K WITH LINE BELOW
-\setcclcucx 1E35 1E35 1E34 % LATIN SMALL LETTER K WITH LINE BELOW
-\setcclcucx 1E36 1E37 1E36 % LATIN CAPITAL LETTER L WITH DOT BELOW
-\setcclcucx 1E37 1E37 1E36 % LATIN SMALL LETTER L WITH DOT BELOW
-\setcclcucx 1E38 1E39 1E38 % LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
-\setcclcucx 1E39 1E39 1E38 % LATIN SMALL LETTER L WITH DOT BELOW AND MACRON
-\setcclcucx 1E3A 1E3B 1E3A % LATIN CAPITAL LETTER L WITH LINE BELOW
-\setcclcucx 1E3B 1E3B 1E3A % LATIN SMALL LETTER L WITH LINE BELOW
-\setcclcucx 1E3C 1E3D 1E3C % LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW
-\setcclcucx 1E3D 1E3D 1E3C % LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW
-\setcclcucx 1E3E 1E3F 1E3E % LATIN CAPITAL LETTER M WITH ACUTE
-\setcclcucx 1E3F 1E3F 1E3E % LATIN SMALL LETTER M WITH ACUTE
-\setcclcucx 1E40 1E41 1E40 % LATIN CAPITAL LETTER M WITH DOT ABOVE
-\setcclcucx 1E41 1E41 1E40 % LATIN SMALL LETTER M WITH DOT ABOVE
-\setcclcucx 1E42 1E43 1E42 % LATIN CAPITAL LETTER M WITH DOT BELOW
-\setcclcucx 1E43 1E43 1E42 % LATIN SMALL LETTER M WITH DOT BELOW
-\setcclcucx 1E44 1E45 1E44 % LATIN CAPITAL LETTER N WITH DOT ABOVE
-\setcclcucx 1E45 1E45 1E44 % LATIN SMALL LETTER N WITH DOT ABOVE
-\setcclcucx 1E46 1E47 1E46 % LATIN CAPITAL LETTER N WITH DOT BELOW
-\setcclcucx 1E47 1E47 1E46 % LATIN SMALL LETTER N WITH DOT BELOW
-\setcclcucx 1E48 1E49 1E48 % LATIN CAPITAL LETTER N WITH LINE BELOW
-\setcclcucx 1E49 1E49 1E48 % LATIN SMALL LETTER N WITH LINE BELOW
-\setcclcucx 1E4A 1E4B 1E4A % LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW
-\setcclcucx 1E4B 1E4B 1E4A % LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW
-\setcclcucx 1E4C 1E4D 1E4C % LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
-\setcclcucx 1E4D 1E4D 1E4C % LATIN SMALL LETTER O WITH TILDE AND ACUTE
-\setcclcucx 1E4E 1E4F 1E4E % LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
-\setcclcucx 1E4F 1E4F 1E4E % LATIN SMALL LETTER O WITH TILDE AND DIAERESIS
-\setcclcucx 1E50 1E51 1E50 % LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
-\setcclcucx 1E51 1E51 1E50 % LATIN SMALL LETTER O WITH MACRON AND GRAVE
-\setcclcucx 1E52 1E53 1E52 % LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
-\setcclcucx 1E53 1E53 1E52 % LATIN SMALL LETTER O WITH MACRON AND ACUTE
-\setcclcucx 1E54 1E55 1E54 % LATIN CAPITAL LETTER P WITH ACUTE
-\setcclcucx 1E55 1E55 1E54 % LATIN SMALL LETTER P WITH ACUTE
-\setcclcucx 1E56 1E57 1E56 % LATIN CAPITAL LETTER P WITH DOT ABOVE
-\setcclcucx 1E57 1E57 1E56 % LATIN SMALL LETTER P WITH DOT ABOVE
-\setcclcucx 1E58 1E59 1E58 % LATIN CAPITAL LETTER R WITH DOT ABOVE
-\setcclcucx 1E59 1E59 1E58 % LATIN SMALL LETTER R WITH DOT ABOVE
-\setcclcucx 1E5A 1E5B 1E5A % LATIN CAPITAL LETTER R WITH DOT BELOW
-\setcclcucx 1E5B 1E5B 1E5A % LATIN SMALL LETTER R WITH DOT BELOW
-\setcclcucx 1E5C 1E5D 1E5C % LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
-\setcclcucx 1E5D 1E5D 1E5C % LATIN SMALL LETTER R WITH DOT BELOW AND MACRON
-\setcclcucx 1E5E 1E5F 1E5E % LATIN CAPITAL LETTER R WITH LINE BELOW
-\setcclcucx 1E5F 1E5F 1E5E % LATIN SMALL LETTER R WITH LINE BELOW
-\setcclcucx 1E60 1E61 1E60 % LATIN CAPITAL LETTER S WITH DOT ABOVE
-\setcclcucx 1E61 1E61 1E60 % LATIN SMALL LETTER S WITH DOT ABOVE
-\setcclcucx 1E62 1E63 1E62 % LATIN CAPITAL LETTER S WITH DOT BELOW
-\setcclcucx 1E63 1E63 1E62 % LATIN SMALL LETTER S WITH DOT BELOW
-\setcclcucx 1E64 1E65 1E64 % LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE
-\setcclcucx 1E65 1E65 1E64 % LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE
-\setcclcucx 1E66 1E67 1E66 % LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE
-\setcclcucx 1E67 1E67 1E66 % LATIN SMALL LETTER S WITH CARON AND DOT ABOVE
-\setcclcucx 1E68 1E69 1E68 % LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE
-\setcclcucx 1E69 1E69 1E68 % LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE
-\setcclcucx 1E6A 1E6B 1E6A % LATIN CAPITAL LETTER T WITH DOT ABOVE
-\setcclcucx 1E6B 1E6B 1E6A % LATIN SMALL LETTER T WITH DOT ABOVE
-\setcclcucx 1E6C 1E6D 1E6C % LATIN CAPITAL LETTER T WITH DOT BELOW
-\setcclcucx 1E6D 1E6D 1E6C % LATIN SMALL LETTER T WITH DOT BELOW
-\setcclcucx 1E6E 1E6F 1E6E % LATIN CAPITAL LETTER T WITH LINE BELOW
-\setcclcucx 1E6F 1E6F 1E6E % LATIN SMALL LETTER T WITH LINE BELOW
-\setcclcucx 1E70 1E71 1E70 % LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW
-\setcclcucx 1E71 1E71 1E70 % LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW
-\setcclcucx 1E72 1E73 1E72 % LATIN CAPITAL LETTER U WITH DIAERESIS BELOW
-\setcclcucx 1E73 1E73 1E72 % LATIN SMALL LETTER U WITH DIAERESIS BELOW
-\setcclcucx 1E74 1E75 1E74 % LATIN CAPITAL LETTER U WITH TILDE BELOW
-\setcclcucx 1E75 1E75 1E74 % LATIN SMALL LETTER U WITH TILDE BELOW
-\setcclcucx 1E76 1E77 1E76 % LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW
-\setcclcucx 1E77 1E77 1E76 % LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW
-\setcclcucx 1E78 1E79 1E78 % LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
-\setcclcucx 1E79 1E79 1E78 % LATIN SMALL LETTER U WITH TILDE AND ACUTE
-\setcclcucx 1E7A 1E7B 1E7A % LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS
-\setcclcucx 1E7B 1E7B 1E7A % LATIN SMALL LETTER U WITH MACRON AND DIAERESIS
-\setcclcucx 1E7C 1E7D 1E7C % LATIN CAPITAL LETTER V WITH TILDE
-\setcclcucx 1E7D 1E7D 1E7C % LATIN SMALL LETTER V WITH TILDE
-\setcclcucx 1E7E 1E7F 1E7E % LATIN CAPITAL LETTER V WITH DOT BELOW
-\setcclcucx 1E7F 1E7F 1E7E % LATIN SMALL LETTER V WITH DOT BELOW
-\setcclcucx 1E80 1E81 1E80 % LATIN CAPITAL LETTER W WITH GRAVE
-\setcclcucx 1E81 1E81 1E80 % LATIN SMALL LETTER W WITH GRAVE
-\setcclcucx 1E82 1E83 1E82 % LATIN CAPITAL LETTER W WITH ACUTE
-\setcclcucx 1E83 1E83 1E82 % LATIN SMALL LETTER W WITH ACUTE
-\setcclcucx 1E84 1E85 1E84 % LATIN CAPITAL LETTER W WITH DIAERESIS
-\setcclcucx 1E85 1E85 1E84 % LATIN SMALL LETTER W WITH DIAERESIS
-\setcclcucx 1E86 1E87 1E86 % LATIN CAPITAL LETTER W WITH DOT ABOVE
-\setcclcucx 1E87 1E87 1E86 % LATIN SMALL LETTER W WITH DOT ABOVE
-\setcclcucx 1E88 1E89 1E88 % LATIN CAPITAL LETTER W WITH DOT BELOW
-\setcclcucx 1E89 1E89 1E88 % LATIN SMALL LETTER W WITH DOT BELOW
-\setcclcucx 1E8A 1E8B 1E8A % LATIN CAPITAL LETTER X WITH DOT ABOVE
-\setcclcucx 1E8B 1E8B 1E8A % LATIN SMALL LETTER X WITH DOT ABOVE
-\setcclcucx 1E8C 1E8D 1E8C % LATIN CAPITAL LETTER X WITH DIAERESIS
-\setcclcucx 1E8D 1E8D 1E8C % LATIN SMALL LETTER X WITH DIAERESIS
-\setcclcucx 1E8E 1E8F 1E8E % LATIN CAPITAL LETTER Y WITH DOT ABOVE
-\setcclcucx 1E8F 1E8F 1E8E % LATIN SMALL LETTER Y WITH DOT ABOVE
-\setcclcucx 1E90 1E91 1E90 % LATIN CAPITAL LETTER Z WITH CIRCUMFLEX
-\setcclcucx 1E91 1E91 1E90 % LATIN SMALL LETTER Z WITH CIRCUMFLEX
-\setcclcucx 1E92 1E93 1E92 % LATIN CAPITAL LETTER Z WITH DOT BELOW
-\setcclcucx 1E93 1E93 1E92 % LATIN SMALL LETTER Z WITH DOT BELOW
-\setcclcucx 1E94 1E95 1E94 % LATIN CAPITAL LETTER Z WITH LINE BELOW
-\setcclcucx 1E95 1E95 1E94 % LATIN SMALL LETTER Z WITH LINE BELOW
-\setcclcucx 1E96 1E96 1E96 % LATIN SMALL LETTER H WITH LINE BELOW
-\setcclcucx 1E97 1E97 1E97 % LATIN SMALL LETTER T WITH DIAERESIS
-\setcclcucx 1E98 1E98 1E98 % LATIN SMALL LETTER W WITH RING ABOVE
-\setcclcucx 1E99 1E99 1E99 % LATIN SMALL LETTER Y WITH RING ABOVE
-\setcclcucx 1E9A 1E9A 1E9A % LATIN SMALL LETTER A WITH RIGHT HALF RING
-\setcclcucx 1E9B 1E9B 1E60 % LATIN SMALL LETTER LONG S WITH DOT ABOVE
-\setcclcucx 1EA0 1EA1 1EA0 % LATIN CAPITAL LETTER A WITH DOT BELOW
-\setcclcucx 1EA1 1EA1 1EA0 % LATIN SMALL LETTER A WITH DOT BELOW
-\setcclcucx 1EA2 1EA3 1EA2 % LATIN CAPITAL LETTER A WITH HOOK ABOVE
-\setcclcucx 1EA3 1EA3 1EA2 % LATIN SMALL LETTER A WITH HOOK ABOVE
-\setcclcucx 1EA4 1EA5 1EA4 % LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
-\setcclcucx 1EA5 1EA5 1EA4 % LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
-\setcclcucx 1EA6 1EA7 1EA6 % LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
-\setcclcucx 1EA7 1EA7 1EA6 % LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
-\setcclcucx 1EA8 1EA9 1EA8 % LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
-\setcclcucx 1EA9 1EA9 1EA8 % LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
-\setcclcucx 1EAA 1EAB 1EAA % LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
-\setcclcucx 1EAB 1EAB 1EAA % LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
-\setcclcucx 1EAC 1EAD 1EAC % LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
-\setcclcucx 1EAD 1EAD 1EAC % LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
-\setcclcucx 1EAE 1EAF 1EAE % LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
-\setcclcucx 1EAF 1EAF 1EAE % LATIN SMALL LETTER A WITH BREVE AND ACUTE
-\setcclcucx 1EB0 1EB1 1EB0 % LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
-\setcclcucx 1EB1 1EB1 1EB0 % LATIN SMALL LETTER A WITH BREVE AND GRAVE
-\setcclcucx 1EB2 1EB3 1EB2 % LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
-\setcclcucx 1EB3 1EB3 1EB2 % LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
-\setcclcucx 1EB4 1EB5 1EB4 % LATIN CAPITAL LETTER A WITH BREVE AND TILDE
-\setcclcucx 1EB5 1EB5 1EB4 % LATIN SMALL LETTER A WITH BREVE AND TILDE
-\setcclcucx 1EB6 1EB7 1EB6 % LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
-\setcclcucx 1EB7 1EB7 1EB6 % LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
-\setcclcucx 1EB8 1EB9 1EB8 % LATIN CAPITAL LETTER E WITH DOT BELOW
-\setcclcucx 1EB9 1EB9 1EB8 % LATIN SMALL LETTER E WITH DOT BELOW
-\setcclcucx 1EBA 1EBB 1EBA % LATIN CAPITAL LETTER E WITH HOOK ABOVE
-\setcclcucx 1EBB 1EBB 1EBA % LATIN SMALL LETTER E WITH HOOK ABOVE
-\setcclcucx 1EBC 1EBD 1EBC % LATIN CAPITAL LETTER E WITH TILDE
-\setcclcucx 1EBD 1EBD 1EBC % LATIN SMALL LETTER E WITH TILDE
-\setcclcucx 1EBE 1EBF 1EBE % LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-\setcclcucx 1EBF 1EBF 1EBE % LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-\setcclcucx 1EC0 1EC1 1EC0 % LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-\setcclcucx 1EC1 1EC1 1EC0 % LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-\setcclcucx 1EC2 1EC3 1EC2 % LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-\setcclcucx 1EC3 1EC3 1EC2 % LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-\setcclcucx 1EC4 1EC5 1EC4 % LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
-\setcclcucx 1EC5 1EC5 1EC4 % LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
-\setcclcucx 1EC6 1EC7 1EC6 % LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-\setcclcucx 1EC7 1EC7 1EC6 % LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-\setcclcucx 1EC8 1EC9 1EC8 % LATIN CAPITAL LETTER I WITH HOOK ABOVE
-\setcclcucx 1EC9 1EC9 1EC8 % LATIN SMALL LETTER I WITH HOOK ABOVE
-\setcclcucx 1ECA 1ECB 1ECA % LATIN CAPITAL LETTER I WITH DOT BELOW
-\setcclcucx 1ECB 1ECB 1ECA % LATIN SMALL LETTER I WITH DOT BELOW
-\setcclcucx 1ECC 1ECD 1ECC % LATIN CAPITAL LETTER O WITH DOT BELOW
-\setcclcucx 1ECD 1ECD 1ECC % LATIN SMALL LETTER O WITH DOT BELOW
-\setcclcucx 1ECE 1ECF 1ECE % LATIN CAPITAL LETTER O WITH HOOK ABOVE
-\setcclcucx 1ECF 1ECF 1ECE % LATIN SMALL LETTER O WITH HOOK ABOVE
-\setcclcucx 1ED0 1ED1 1ED0 % LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
-\setcclcucx 1ED1 1ED1 1ED0 % LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
-\setcclcucx 1ED2 1ED3 1ED2 % LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
-\setcclcucx 1ED3 1ED3 1ED2 % LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
-\setcclcucx 1ED4 1ED5 1ED4 % LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-\setcclcucx 1ED5 1ED5 1ED4 % LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-\setcclcucx 1ED6 1ED7 1ED6 % LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
-\setcclcucx 1ED7 1ED7 1ED6 % LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
-\setcclcucx 1ED8 1ED9 1ED8 % LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-\setcclcucx 1ED9 1ED9 1ED8 % LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-\setcclcucx 1EDA 1EDB 1EDA % LATIN CAPITAL LETTER O WITH HORN AND ACUTE
-\setcclcucx 1EDB 1EDB 1EDA % LATIN SMALL LETTER O WITH HORN AND ACUTE
-\setcclcucx 1EDC 1EDD 1EDC % LATIN CAPITAL LETTER O WITH HORN AND GRAVE
-\setcclcucx 1EDD 1EDD 1EDC % LATIN SMALL LETTER O WITH HORN AND GRAVE
-\setcclcucx 1EDE 1EDF 1EDE % LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
-\setcclcucx 1EDF 1EDF 1EDE % LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
-\setcclcucx 1EE0 1EE1 1EE0 % LATIN CAPITAL LETTER O WITH HORN AND TILDE
-\setcclcucx 1EE1 1EE1 1EE0 % LATIN SMALL LETTER O WITH HORN AND TILDE
-\setcclcucx 1EE2 1EE3 1EE2 % LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
-\setcclcucx 1EE3 1EE3 1EE2 % LATIN SMALL LETTER O WITH HORN AND DOT BELOW
-\setcclcucx 1EE4 1EE5 1EE4 % LATIN CAPITAL LETTER U WITH DOT BELOW
-\setcclcucx 1EE5 1EE5 1EE4 % LATIN SMALL LETTER U WITH DOT BELOW
-\setcclcucx 1EE6 1EE7 1EE6 % LATIN CAPITAL LETTER U WITH HOOK ABOVE
-\setcclcucx 1EE7 1EE7 1EE6 % LATIN SMALL LETTER U WITH HOOK ABOVE
-\setcclcucx 1EE8 1EE9 1EE8 % LATIN CAPITAL LETTER U WITH HORN AND ACUTE
-\setcclcucx 1EE9 1EE9 1EE8 % LATIN SMALL LETTER U WITH HORN AND ACUTE
-\setcclcucx 1EEA 1EEB 1EEA % LATIN CAPITAL LETTER U WITH HORN AND GRAVE
-\setcclcucx 1EEB 1EEB 1EEA % LATIN SMALL LETTER U WITH HORN AND GRAVE
-\setcclcucx 1EEC 1EED 1EEC % LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
-\setcclcucx 1EED 1EED 1EEC % LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
-\setcclcucx 1EEE 1EEF 1EEE % LATIN CAPITAL LETTER U WITH HORN AND TILDE
-\setcclcucx 1EEF 1EEF 1EEE % LATIN SMALL LETTER U WITH HORN AND TILDE
-\setcclcucx 1EF0 1EF1 1EF0 % LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
-\setcclcucx 1EF1 1EF1 1EF0 % LATIN SMALL LETTER U WITH HORN AND DOT BELOW
-\setcclcucx 1EF2 1EF3 1EF2 % LATIN CAPITAL LETTER Y WITH GRAVE
-\setcclcucx 1EF3 1EF3 1EF2 % LATIN SMALL LETTER Y WITH GRAVE
-\setcclcucx 1EF4 1EF5 1EF4 % LATIN CAPITAL LETTER Y WITH DOT BELOW
-\setcclcucx 1EF5 1EF5 1EF4 % LATIN SMALL LETTER Y WITH DOT BELOW
-\setcclcucx 1EF6 1EF7 1EF6 % LATIN CAPITAL LETTER Y WITH HOOK ABOVE
-\setcclcucx 1EF7 1EF7 1EF6 % LATIN SMALL LETTER Y WITH HOOK ABOVE
-\setcclcucx 1EF8 1EF9 1EF8 % LATIN CAPITAL LETTER Y WITH TILDE
-\setcclcucx 1EF9 1EF9 1EF8 % LATIN SMALL LETTER Y WITH TILDE
-\setcclcucx 1F00 1F00 1F08 % GREEK SMALL LETTER ALPHA WITH PSILI
-\setcclcucx 1F01 1F01 1F09 % GREEK SMALL LETTER ALPHA WITH DASIA
-\setcclcucx 1F02 1F02 1F0A % GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA
-\setcclcucx 1F03 1F03 1F0B % GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA
-\setcclcucx 1F04 1F04 1F0C % GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA
-\setcclcucx 1F05 1F05 1F0D % GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA
-\setcclcucx 1F06 1F06 1F0E % GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI
-\setcclcucx 1F07 1F07 1F0F % GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI
-\setcclcucx 1F08 1F00 1F08 % GREEK CAPITAL LETTER ALPHA WITH PSILI
-\setcclcucx 1F09 1F01 1F09 % GREEK CAPITAL LETTER ALPHA WITH DASIA
-\setcclcucx 1F0A 1F02 1F0A % GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA
-\setcclcucx 1F0B 1F03 1F0B % GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA
-\setcclcucx 1F0C 1F04 1F0C % GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA
-\setcclcucx 1F0D 1F05 1F0D % GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA
-\setcclcucx 1F0E 1F06 1F0E % GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI
-\setcclcucx 1F0F 1F07 1F0F % GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI
-\setcclcucx 1F10 1F10 1F18 % GREEK SMALL LETTER EPSILON WITH PSILI
-\setcclcucx 1F11 1F11 1F19 % GREEK SMALL LETTER EPSILON WITH DASIA
-\setcclcucx 1F12 1F12 1F1A % GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA
-\setcclcucx 1F13 1F13 1F1B % GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA
-\setcclcucx 1F14 1F14 1F1C % GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA
-\setcclcucx 1F15 1F15 1F1D % GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
-\setcclcucx 1F18 1F10 1F18 % GREEK CAPITAL LETTER EPSILON WITH PSILI
-\setcclcucx 1F19 1F11 1F19 % GREEK CAPITAL LETTER EPSILON WITH DASIA
-\setcclcucx 1F1A 1F12 1F1A % GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA
-\setcclcucx 1F1B 1F13 1F1B % GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA
-\setcclcucx 1F1C 1F14 1F1C % GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA
-\setcclcucx 1F1D 1F15 1F1D % GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
-\setcclcucx 1F20 1F20 1F28 % GREEK SMALL LETTER ETA WITH PSILI
-\setcclcucx 1F21 1F21 1F29 % GREEK SMALL LETTER ETA WITH DASIA
-\setcclcucx 1F22 1F22 1F2A % GREEK SMALL LETTER ETA WITH PSILI AND VARIA
-\setcclcucx 1F23 1F23 1F2B % GREEK SMALL LETTER ETA WITH DASIA AND VARIA
-\setcclcucx 1F24 1F24 1F2C % GREEK SMALL LETTER ETA WITH PSILI AND OXIA
-\setcclcucx 1F25 1F25 1F2D % GREEK SMALL LETTER ETA WITH DASIA AND OXIA
-\setcclcucx 1F26 1F26 1F2E % GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI
-\setcclcucx 1F27 1F27 1F2F % GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI
-\setcclcucx 1F28 1F20 1F28 % GREEK CAPITAL LETTER ETA WITH PSILI
-\setcclcucx 1F29 1F21 1F29 % GREEK CAPITAL LETTER ETA WITH DASIA
-\setcclcucx 1F2A 1F22 1F2A % GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA
-\setcclcucx 1F2B 1F23 1F2B % GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA
-\setcclcucx 1F2C 1F24 1F2C % GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA
-\setcclcucx 1F2D 1F25 1F2D % GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA
-\setcclcucx 1F2E 1F26 1F2E % GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI
-\setcclcucx 1F2F 1F27 1F2F % GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI
-\setcclcucx 1F30 1F30 1F38 % GREEK SMALL LETTER IOTA WITH PSILI
-\setcclcucx 1F31 1F31 1F39 % GREEK SMALL LETTER IOTA WITH DASIA
-\setcclcucx 1F32 1F32 1F3A % GREEK SMALL LETTER IOTA WITH PSILI AND VARIA
-\setcclcucx 1F33 1F33 1F3B % GREEK SMALL LETTER IOTA WITH DASIA AND VARIA
-\setcclcucx 1F34 1F34 1F3C % GREEK SMALL LETTER IOTA WITH PSILI AND OXIA
-\setcclcucx 1F35 1F35 1F3D % GREEK SMALL LETTER IOTA WITH DASIA AND OXIA
-\setcclcucx 1F36 1F36 1F3E % GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI
-\setcclcucx 1F37 1F37 1F3F % GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI
-\setcclcucx 1F38 1F30 1F38 % GREEK CAPITAL LETTER IOTA WITH PSILI
-\setcclcucx 1F39 1F31 1F39 % GREEK CAPITAL LETTER IOTA WITH DASIA
-\setcclcucx 1F3A 1F32 1F3A % GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA
-\setcclcucx 1F3B 1F33 1F3B % GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA
-\setcclcucx 1F3C 1F34 1F3C % GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA
-\setcclcucx 1F3D 1F35 1F3D % GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA
-\setcclcucx 1F3E 1F36 1F3E % GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI
-\setcclcucx 1F3F 1F37 1F3F % GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI
-\setcclcucx 1F40 1F40 1F48 % GREEK SMALL LETTER OMICRON WITH PSILI
-\setcclcucx 1F41 1F41 1F49 % GREEK SMALL LETTER OMICRON WITH DASIA
-\setcclcucx 1F42 1F42 1F4A % GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA
-\setcclcucx 1F43 1F43 1F4B % GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA
-\setcclcucx 1F44 1F44 1F4C % GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA
-\setcclcucx 1F45 1F45 1F4D % GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
-\setcclcucx 1F48 1F40 1F48 % GREEK CAPITAL LETTER OMICRON WITH PSILI
-\setcclcucx 1F49 1F41 1F49 % GREEK CAPITAL LETTER OMICRON WITH DASIA
-\setcclcucx 1F4A 1F42 1F4A % GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA
-\setcclcucx 1F4B 1F43 1F4B % GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA
-\setcclcucx 1F4C 1F44 1F4C % GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA
-\setcclcucx 1F4D 1F45 1F4D % GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
-\setcclcucx 1F50 1F50 1F50 % GREEK SMALL LETTER UPSILON WITH PSILI
-\setcclcucx 1F51 1F51 1F59 % GREEK SMALL LETTER UPSILON WITH DASIA
-\setcclcucx 1F52 1F52 1F52 % GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA
-\setcclcucx 1F53 1F53 1F5B % GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA
-\setcclcucx 1F54 1F54 1F54 % GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA
-\setcclcucx 1F55 1F55 1F5D % GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA
-\setcclcucx 1F56 1F56 1F56 % GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI
-\setcclcucx 1F57 1F57 1F5F % GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
-\setcclcucx 1F59 1F51 1F59 % GREEK CAPITAL LETTER UPSILON WITH DASIA
-\setcclcucx 1F5B 1F53 1F5B % GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
-\setcclcucx 1F5D 1F55 1F5D % GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
-\setcclcucx 1F5F 1F57 1F5F % GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI
-\setcclcucx 1F60 1F60 1F68 % GREEK SMALL LETTER OMEGA WITH PSILI
-\setcclcucx 1F61 1F61 1F69 % GREEK SMALL LETTER OMEGA WITH DASIA
-\setcclcucx 1F62 1F62 1F6A % GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA
-\setcclcucx 1F63 1F63 1F6B % GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA
-\setcclcucx 1F64 1F64 1F6C % GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA
-\setcclcucx 1F65 1F65 1F6D % GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA
-\setcclcucx 1F66 1F66 1F6E % GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI
-\setcclcucx 1F67 1F67 1F6F % GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI
-\setcclcucx 1F68 1F60 1F68 % GREEK CAPITAL LETTER OMEGA WITH PSILI
-\setcclcucx 1F69 1F61 1F69 % GREEK CAPITAL LETTER OMEGA WITH DASIA
-\setcclcucx 1F6A 1F62 1F6A % GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA
-\setcclcucx 1F6B 1F63 1F6B % GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA
-\setcclcucx 1F6C 1F64 1F6C % GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA
-\setcclcucx 1F6D 1F65 1F6D % GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA
-\setcclcucx 1F6E 1F66 1F6E % GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI
-\setcclcucx 1F6F 1F67 1F6F % GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI
-\setcclcucx 1F70 1F70 1FBA % GREEK SMALL LETTER ALPHA WITH VARIA
-\setcclcucx 1F71 1F71 1FBB % GREEK SMALL LETTER ALPHA WITH OXIA
-\setcclcucx 1F72 1F72 1FC8 % GREEK SMALL LETTER EPSILON WITH VARIA
-\setcclcucx 1F73 1F73 1FC9 % GREEK SMALL LETTER EPSILON WITH OXIA
-\setcclcucx 1F74 1F74 1FCA % GREEK SMALL LETTER ETA WITH VARIA
-\setcclcucx 1F75 1F75 1FCB % GREEK SMALL LETTER ETA WITH OXIA
-\setcclcucx 1F76 1F76 1FDA % GREEK SMALL LETTER IOTA WITH VARIA
-\setcclcucx 1F77 1F77 1FDB % GREEK SMALL LETTER IOTA WITH OXIA
-\setcclcucx 1F78 1F78 1FF8 % GREEK SMALL LETTER OMICRON WITH VARIA
-\setcclcucx 1F79 1F79 1FF9 % GREEK SMALL LETTER OMICRON WITH OXIA
-\setcclcucx 1F7A 1F7A 1FEA % GREEK SMALL LETTER UPSILON WITH VARIA
-\setcclcucx 1F7B 1F7B 1FEB % GREEK SMALL LETTER UPSILON WITH OXIA
-\setcclcucx 1F7C 1F7C 1FFA % GREEK SMALL LETTER OMEGA WITH VARIA
-\setcclcucx 1F7D 1F7D 1FFB % GREEK SMALL LETTER OMEGA WITH OXIA
-\setcclcucx 1F80 1F80 1F88 % GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI
-\setcclcucx 1F81 1F81 1F89 % GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI
-\setcclcucx 1F82 1F82 1F8A % GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
-\setcclcucx 1F83 1F83 1F8B % GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
-\setcclcucx 1F84 1F84 1F8C % GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
-\setcclcucx 1F85 1F85 1F8D % GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
-\setcclcucx 1F86 1F86 1F8E % GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
-\setcclcucx 1F87 1F87 1F8F % GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
-\setcclcucx 1F88 1F80 1F88 % GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI
-\setcclcucx 1F89 1F81 1F89 % GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI
-\setcclcucx 1F8A 1F82 1F8A % GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
-\setcclcucx 1F8B 1F83 1F8B % GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
-\setcclcucx 1F8C 1F84 1F8C % GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
-\setcclcucx 1F8D 1F85 1F8D % GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
-\setcclcucx 1F8E 1F86 1F8E % GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
-\setcclcucx 1F8F 1F87 1F8F % GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
-\setcclcucx 1F90 1F90 1F98 % GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI
-\setcclcucx 1F91 1F91 1F99 % GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI
-\setcclcucx 1F92 1F92 1F9A % GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
-\setcclcucx 1F93 1F93 1F9B % GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
-\setcclcucx 1F94 1F94 1F9C % GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
-\setcclcucx 1F95 1F95 1F9D % GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
-\setcclcucx 1F96 1F96 1F9E % GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
-\setcclcucx 1F97 1F97 1F9F % GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
-\setcclcucx 1F98 1F90 1F98 % GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI
-\setcclcucx 1F99 1F91 1F99 % GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI
-\setcclcucx 1F9A 1F92 1F9A % GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
-\setcclcucx 1F9B 1F93 1F9B % GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
-\setcclcucx 1F9C 1F94 1F9C % GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
-\setcclcucx 1F9D 1F95 1F9D % GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
-\setcclcucx 1F9E 1F96 1F9E % GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
-\setcclcucx 1F9F 1F97 1F9F % GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
-\setcclcucx 1FA0 1FA0 1FA8 % GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI
-\setcclcucx 1FA1 1FA1 1FA9 % GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI
-\setcclcucx 1FA2 1FA2 1FAA % GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
-\setcclcucx 1FA3 1FA3 1FAB % GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
-\setcclcucx 1FA4 1FA4 1FAC % GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
-\setcclcucx 1FA5 1FA5 1FAD % GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
-\setcclcucx 1FA6 1FA6 1FAE % GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
-\setcclcucx 1FA7 1FA7 1FAF % GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
-\setcclcucx 1FA8 1FA0 1FA8 % GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI
-\setcclcucx 1FA9 1FA1 1FA9 % GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI
-\setcclcucx 1FAA 1FA2 1FAA % GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
-\setcclcucx 1FAB 1FA3 1FAB % GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
-\setcclcucx 1FAC 1FA4 1FAC % GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
-\setcclcucx 1FAD 1FA5 1FAD % GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
-\setcclcucx 1FAE 1FA6 1FAE % GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
-\setcclcucx 1FAF 1FA7 1FAF % GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
-\setcclcucx 1FB0 1FB0 1FB8 % GREEK SMALL LETTER ALPHA WITH VRACHY
-\setcclcucx 1FB1 1FB1 1FB9 % GREEK SMALL LETTER ALPHA WITH MACRON
-\setcclcucx 1FB2 1FB2 1FB2 % GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI
-\setcclcucx 1FB3 1FB3 1FBC % GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI
-\setcclcucx 1FB4 1FB4 1FB4 % GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
-\setcclcucx 1FB6 1FB6 1FB6 % GREEK SMALL LETTER ALPHA WITH PERISPOMENI
-\setcclcucx 1FB7 1FB7 1FB7 % GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI
-\setcclcucx 1FB8 1FB0 1FB8 % GREEK CAPITAL LETTER ALPHA WITH VRACHY
-\setcclcucx 1FB9 1FB1 1FB9 % GREEK CAPITAL LETTER ALPHA WITH MACRON
-\setcclcucx 1FBA 1F70 1FBA % GREEK CAPITAL LETTER ALPHA WITH VARIA
-\setcclcucx 1FBB 1F71 1FBB % GREEK CAPITAL LETTER ALPHA WITH OXIA
-\setcclcucx 1FBC 1FB3 1FBC % GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI
-\setcclcucx 1FBE 1FBE 0399 % GREEK PROSGEGRAMMENI
-\setcclcucx 1FC2 1FC2 1FC2 % GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI
-\setcclcucx 1FC3 1FC3 1FCC % GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI
-\setcclcucx 1FC4 1FC4 1FC4 % GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
-\setcclcucx 1FC6 1FC6 1FC6 % GREEK SMALL LETTER ETA WITH PERISPOMENI
-\setcclcucx 1FC7 1FC7 1FC7 % GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI
-\setcclcucx 1FC8 1F72 1FC8 % GREEK CAPITAL LETTER EPSILON WITH VARIA
-\setcclcucx 1FC9 1F73 1FC9 % GREEK CAPITAL LETTER EPSILON WITH OXIA
-\setcclcucx 1FCA 1F74 1FCA % GREEK CAPITAL LETTER ETA WITH VARIA
-\setcclcucx 1FCB 1F75 1FCB % GREEK CAPITAL LETTER ETA WITH OXIA
-\setcclcucx 1FCC 1FC3 1FCC % GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI
-\setcclcucx 1FD0 1FD0 1FD8 % GREEK SMALL LETTER IOTA WITH VRACHY
-\setcclcucx 1FD1 1FD1 1FD9 % GREEK SMALL LETTER IOTA WITH MACRON
-\setcclcucx 1FD2 1FD2 1FD2 % GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA
-\setcclcucx 1FD3 1FD3 1FD3 % GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
-\setcclcucx 1FD6 1FD6 1FD6 % GREEK SMALL LETTER IOTA WITH PERISPOMENI
-\setcclcucx 1FD7 1FD7 1FD7 % GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI
-\setcclcucx 1FD8 1FD0 1FD8 % GREEK CAPITAL LETTER IOTA WITH VRACHY
-\setcclcucx 1FD9 1FD1 1FD9 % GREEK CAPITAL LETTER IOTA WITH MACRON
-\setcclcucx 1FDA 1F76 1FDA % GREEK CAPITAL LETTER IOTA WITH VARIA
-\setcclcucx 1FDB 1F77 1FDB % GREEK CAPITAL LETTER IOTA WITH OXIA
-\setcclcucx 1FE0 1FE0 1FE8 % GREEK SMALL LETTER UPSILON WITH VRACHY
-\setcclcucx 1FE1 1FE1 1FE9 % GREEK SMALL LETTER UPSILON WITH MACRON
-\setcclcucx 1FE2 1FE2 1FE2 % GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA
-\setcclcucx 1FE3 1FE3 1FE3 % GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA
-\setcclcucx 1FE4 1FE4 1FE4 % GREEK SMALL LETTER RHO WITH PSILI
-\setcclcucx 1FE5 1FE5 1FEC % GREEK SMALL LETTER RHO WITH DASIA
-\setcclcucx 1FE6 1FE6 1FE6 % GREEK SMALL LETTER UPSILON WITH PERISPOMENI
-\setcclcucx 1FE7 1FE7 1FE7 % GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI
-\setcclcucx 1FE8 1FE0 1FE8 % GREEK CAPITAL LETTER UPSILON WITH VRACHY
-\setcclcucx 1FE9 1FE1 1FE9 % GREEK CAPITAL LETTER UPSILON WITH MACRON
-\setcclcucx 1FEA 1F7A 1FEA % GREEK CAPITAL LETTER UPSILON WITH VARIA
-\setcclcucx 1FEB 1F7B 1FEB % GREEK CAPITAL LETTER UPSILON WITH OXIA
-\setcclcucx 1FEC 1FE5 1FEC % GREEK CAPITAL LETTER RHO WITH DASIA
-\setcclcucx 1FF2 1FF2 1FF2 % GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI
-\setcclcucx 1FF3 1FF3 1FFC % GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI
-\setcclcucx 1FF4 1FF4 1FF4 % GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
-\setcclcucx 1FF6 1FF6 1FF6 % GREEK SMALL LETTER OMEGA WITH PERISPOMENI
-\setcclcucx 1FF7 1FF7 1FF7 % GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI
-\setcclcucx 1FF8 1F78 1FF8 % GREEK CAPITAL LETTER OMICRON WITH VARIA
-\setcclcucx 1FF9 1F79 1FF9 % GREEK CAPITAL LETTER OMICRON WITH OXIA
-\setcclcucx 1FFA 1F7C 1FFA % GREEK CAPITAL LETTER OMEGA WITH VARIA
-\setcclcucx 1FFB 1F7D 1FFB % GREEK CAPITAL LETTER OMEGA WITH OXIA
-\setcclcucx 1FFC 1FF3 1FFC % GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
-\setcclcucx 2071 2071 2071 % SUPERSCRIPT LATIN SMALL LETTER I
-\setcclcucx 207F 207F 207F % SUPERSCRIPT LATIN SMALL LETTER N
-\setcclcucx 2102 2102 2102 % DOUBLE-STRUCK CAPITAL C
-\setcclcucx 2107 2107 2107 % EULER CONSTANT
-\setcclcucx 210A 210A 210A % SCRIPT SMALL G
-\setcclcucx 210B 210B 210B % SCRIPT CAPITAL H
-\setcclcucx 210C 210C 210C % BLACK-LETTER CAPITAL H
-\setcclcucx 210D 210D 210D % DOUBLE-STRUCK CAPITAL H
-\setcclcucx 210E 210E 210E % PLANCK CONSTANT
-\setcclcucx 210F 210F 210F % PLANCK CONSTANT OVER TWO PI
-\setcclcucx 2110 2110 2110 % SCRIPT CAPITAL I
-\setcclcucx 2111 2111 2111 % BLACK-LETTER CAPITAL I
-\setcclcucx 2112 2112 2112 % SCRIPT CAPITAL L
-\setcclcucx 2113 2113 2113 % SCRIPT SMALL L
-\setcclcucx 2115 2115 2115 % DOUBLE-STRUCK CAPITAL N
-\setcclcucx 2119 2119 2119 % DOUBLE-STRUCK CAPITAL P
-\setcclcucx 211A 211A 211A % DOUBLE-STRUCK CAPITAL Q
-\setcclcucx 211B 211B 211B % SCRIPT CAPITAL R
-\setcclcucx 211C 211C 211C % BLACK-LETTER CAPITAL R
-\setcclcucx 211D 211D 211D % DOUBLE-STRUCK CAPITAL R
-\setcclcucx 2124 2124 2124 % DOUBLE-STRUCK CAPITAL Z
-\setcclcucx 2126 03C9 2126 % OHM SIGN
-\setcclcucx 2128 2128 2128 % BLACK-LETTER CAPITAL Z
-\setcclcucx 212A 006B 212A % KELVIN SIGN
-\setcclcucx 212B 00E5 212B % ANGSTROM SIGN
-\setcclcucx 212C 212C 212C % SCRIPT CAPITAL B
-\setcclcucx 212D 212D 212D % BLACK-LETTER CAPITAL C
-\setcclcucx 212F 212F 212F % SCRIPT SMALL E
-\setcclcucx 2130 2130 2130 % SCRIPT CAPITAL E
-\setcclcucx 2131 2131 2131 % SCRIPT CAPITAL F
-\setcclcucx 2132 214E 2132 % TURNED CAPITAL F
-\setcclcucx 2133 2133 2133 % SCRIPT CAPITAL M
-\setcclcucx 2134 2134 2134 % SCRIPT SMALL O
-\setcclcucx 2139 2139 2139 % INFORMATION SOURCE
-\setcclcucx 213C 213C 213C % DOUBLE-STRUCK SMALL PI
-\setcclcucx 213D 213D 213D % DOUBLE-STRUCK SMALL GAMMA
-\setcclcucx 213E 213E 213E % DOUBLE-STRUCK CAPITAL GAMMA
-\setcclcucx 213F 213F 213F % DOUBLE-STRUCK CAPITAL PI
-\setcclcucx 2145 2145 2145 % DOUBLE-STRUCK ITALIC CAPITAL D
-\setcclcucx 2146 2146 2146 % DOUBLE-STRUCK ITALIC SMALL D
-\setcclcucx 2147 2147 2147 % DOUBLE-STRUCK ITALIC SMALL E
-\setcclcucx 2148 2148 2148 % DOUBLE-STRUCK ITALIC SMALL I
-\setcclcucx 2149 2149 2149 % DOUBLE-STRUCK ITALIC SMALL J
-\setcclcucx 214E 214E 2132 % TURNED SMALL F
-\setcclcucx 2183 2184 2183 % ROMAN NUMERAL REVERSED ONE HUNDRED
-\setcclcucx 2184 2184 2183 % LATIN SMALL LETTER REVERSED C
-\setcclcucx 2C00 2C30 2C00 % GLAGOLITIC CAPITAL LETTER AZU
-\setcclcucx 2C01 2C31 2C01 % GLAGOLITIC CAPITAL LETTER BUKY
-\setcclcucx 2C02 2C32 2C02 % GLAGOLITIC CAPITAL LETTER VEDE
-\setcclcucx 2C03 2C33 2C03 % GLAGOLITIC CAPITAL LETTER GLAGOLI
-\setcclcucx 2C04 2C34 2C04 % GLAGOLITIC CAPITAL LETTER DOBRO
-\setcclcucx 2C05 2C35 2C05 % GLAGOLITIC CAPITAL LETTER YESTU
-\setcclcucx 2C06 2C36 2C06 % GLAGOLITIC CAPITAL LETTER ZHIVETE
-\setcclcucx 2C07 2C37 2C07 % GLAGOLITIC CAPITAL LETTER DZELO
-\setcclcucx 2C08 2C38 2C08 % GLAGOLITIC CAPITAL LETTER ZEMLJA
-\setcclcucx 2C09 2C39 2C09 % GLAGOLITIC CAPITAL LETTER IZHE
-\setcclcucx 2C0A 2C3A 2C0A % GLAGOLITIC CAPITAL LETTER INITIAL IZHE
-\setcclcucx 2C0B 2C3B 2C0B % GLAGOLITIC CAPITAL LETTER I
-\setcclcucx 2C0C 2C3C 2C0C % GLAGOLITIC CAPITAL LETTER DJERVI
-\setcclcucx 2C0D 2C3D 2C0D % GLAGOLITIC CAPITAL LETTER KAKO
-\setcclcucx 2C0E 2C3E 2C0E % GLAGOLITIC CAPITAL LETTER LJUDIJE
-\setcclcucx 2C0F 2C3F 2C0F % GLAGOLITIC CAPITAL LETTER MYSLITE
-\setcclcucx 2C10 2C40 2C10 % GLAGOLITIC CAPITAL LETTER NASHI
-\setcclcucx 2C11 2C41 2C11 % GLAGOLITIC CAPITAL LETTER ONU
-\setcclcucx 2C12 2C42 2C12 % GLAGOLITIC CAPITAL LETTER POKOJI
-\setcclcucx 2C13 2C43 2C13 % GLAGOLITIC CAPITAL LETTER RITSI
-\setcclcucx 2C14 2C44 2C14 % GLAGOLITIC CAPITAL LETTER SLOVO
-\setcclcucx 2C15 2C45 2C15 % GLAGOLITIC CAPITAL LETTER TVRIDO
-\setcclcucx 2C16 2C46 2C16 % GLAGOLITIC CAPITAL LETTER UKU
-\setcclcucx 2C17 2C47 2C17 % GLAGOLITIC CAPITAL LETTER FRITU
-\setcclcucx 2C18 2C48 2C18 % GLAGOLITIC CAPITAL LETTER HERU
-\setcclcucx 2C19 2C49 2C19 % GLAGOLITIC CAPITAL LETTER OTU
-\setcclcucx 2C1A 2C4A 2C1A % GLAGOLITIC CAPITAL LETTER PE
-\setcclcucx 2C1B 2C4B 2C1B % GLAGOLITIC CAPITAL LETTER SHTA
-\setcclcucx 2C1C 2C4C 2C1C % GLAGOLITIC CAPITAL LETTER TSI
-\setcclcucx 2C1D 2C4D 2C1D % GLAGOLITIC CAPITAL LETTER CHRIVI
-\setcclcucx 2C1E 2C4E 2C1E % GLAGOLITIC CAPITAL LETTER SHA
-\setcclcucx 2C1F 2C4F 2C1F % GLAGOLITIC CAPITAL LETTER YERU
-\setcclcucx 2C20 2C50 2C20 % GLAGOLITIC CAPITAL LETTER YERI
-\setcclcucx 2C21 2C51 2C21 % GLAGOLITIC CAPITAL LETTER YATI
-\setcclcucx 2C22 2C52 2C22 % GLAGOLITIC CAPITAL LETTER SPIDERY HA
-\setcclcucx 2C23 2C53 2C23 % GLAGOLITIC CAPITAL LETTER YU
-\setcclcucx 2C24 2C54 2C24 % GLAGOLITIC CAPITAL LETTER SMALL YUS
-\setcclcucx 2C25 2C55 2C25 % GLAGOLITIC CAPITAL LETTER SMALL YUS WITH TAIL
-\setcclcucx 2C26 2C56 2C26 % GLAGOLITIC CAPITAL LETTER YO
-\setcclcucx 2C27 2C57 2C27 % GLAGOLITIC CAPITAL LETTER IOTATED SMALL YUS
-\setcclcucx 2C28 2C58 2C28 % GLAGOLITIC CAPITAL LETTER BIG YUS
-\setcclcucx 2C29 2C59 2C29 % GLAGOLITIC CAPITAL LETTER IOTATED BIG YUS
-\setcclcucx 2C2A 2C5A 2C2A % GLAGOLITIC CAPITAL LETTER FITA
-\setcclcucx 2C2B 2C5B 2C2B % GLAGOLITIC CAPITAL LETTER IZHITSA
-\setcclcucx 2C2C 2C5C 2C2C % GLAGOLITIC CAPITAL LETTER SHTAPIC
-\setcclcucx 2C2D 2C5D 2C2D % GLAGOLITIC CAPITAL LETTER TROKUTASTI A
-\setcclcucx 2C2E 2C5E 2C2E % GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE
-\setcclcucx 2C30 2C30 2C00 % GLAGOLITIC SMALL LETTER AZU
-\setcclcucx 2C31 2C31 2C01 % GLAGOLITIC SMALL LETTER BUKY
-\setcclcucx 2C32 2C32 2C02 % GLAGOLITIC SMALL LETTER VEDE
-\setcclcucx 2C33 2C33 2C03 % GLAGOLITIC SMALL LETTER GLAGOLI
-\setcclcucx 2C34 2C34 2C04 % GLAGOLITIC SMALL LETTER DOBRO
-\setcclcucx 2C35 2C35 2C05 % GLAGOLITIC SMALL LETTER YESTU
-\setcclcucx 2C36 2C36 2C06 % GLAGOLITIC SMALL LETTER ZHIVETE
-\setcclcucx 2C37 2C37 2C07 % GLAGOLITIC SMALL LETTER DZELO
-\setcclcucx 2C38 2C38 2C08 % GLAGOLITIC SMALL LETTER ZEMLJA
-\setcclcucx 2C39 2C39 2C09 % GLAGOLITIC SMALL LETTER IZHE
-\setcclcucx 2C3A 2C3A 2C0A % GLAGOLITIC SMALL LETTER INITIAL IZHE
-\setcclcucx 2C3B 2C3B 2C0B % GLAGOLITIC SMALL LETTER I
-\setcclcucx 2C3C 2C3C 2C0C % GLAGOLITIC SMALL LETTER DJERVI
-\setcclcucx 2C3D 2C3D 2C0D % GLAGOLITIC SMALL LETTER KAKO
-\setcclcucx 2C3E 2C3E 2C0E % GLAGOLITIC SMALL LETTER LJUDIJE
-\setcclcucx 2C3F 2C3F 2C0F % GLAGOLITIC SMALL LETTER MYSLITE
-\setcclcucx 2C40 2C40 2C10 % GLAGOLITIC SMALL LETTER NASHI
-\setcclcucx 2C41 2C41 2C11 % GLAGOLITIC SMALL LETTER ONU
-\setcclcucx 2C42 2C42 2C12 % GLAGOLITIC SMALL LETTER POKOJI
-\setcclcucx 2C43 2C43 2C13 % GLAGOLITIC SMALL LETTER RITSI
-\setcclcucx 2C44 2C44 2C14 % GLAGOLITIC SMALL LETTER SLOVO
-\setcclcucx 2C45 2C45 2C15 % GLAGOLITIC SMALL LETTER TVRIDO
-\setcclcucx 2C46 2C46 2C16 % GLAGOLITIC SMALL LETTER UKU
-\setcclcucx 2C47 2C47 2C17 % GLAGOLITIC SMALL LETTER FRITU
-\setcclcucx 2C48 2C48 2C18 % GLAGOLITIC SMALL LETTER HERU
-\setcclcucx 2C49 2C49 2C19 % GLAGOLITIC SMALL LETTER OTU
-\setcclcucx 2C4A 2C4A 2C1A % GLAGOLITIC SMALL LETTER PE
-\setcclcucx 2C4B 2C4B 2C1B % GLAGOLITIC SMALL LETTER SHTA
-\setcclcucx 2C4C 2C4C 2C1C % GLAGOLITIC SMALL LETTER TSI
-\setcclcucx 2C4D 2C4D 2C1D % GLAGOLITIC SMALL LETTER CHRIVI
-\setcclcucx 2C4E 2C4E 2C1E % GLAGOLITIC SMALL LETTER SHA
-\setcclcucx 2C4F 2C4F 2C1F % GLAGOLITIC SMALL LETTER YERU
-\setcclcucx 2C50 2C50 2C20 % GLAGOLITIC SMALL LETTER YERI
-\setcclcucx 2C51 2C51 2C21 % GLAGOLITIC SMALL LETTER YATI
-\setcclcucx 2C52 2C52 2C22 % GLAGOLITIC SMALL LETTER SPIDERY HA
-\setcclcucx 2C53 2C53 2C23 % GLAGOLITIC SMALL LETTER YU
-\setcclcucx 2C54 2C54 2C24 % GLAGOLITIC SMALL LETTER SMALL YUS
-\setcclcucx 2C55 2C55 2C25 % GLAGOLITIC SMALL LETTER SMALL YUS WITH TAIL
-\setcclcucx 2C56 2C56 2C26 % GLAGOLITIC SMALL LETTER YO
-\setcclcucx 2C57 2C57 2C27 % GLAGOLITIC SMALL LETTER IOTATED SMALL YUS
-\setcclcucx 2C58 2C58 2C28 % GLAGOLITIC SMALL LETTER BIG YUS
-\setcclcucx 2C59 2C59 2C29 % GLAGOLITIC SMALL LETTER IOTATED BIG YUS
-\setcclcucx 2C5A 2C5A 2C2A % GLAGOLITIC SMALL LETTER FITA
-\setcclcucx 2C5B 2C5B 2C2B % GLAGOLITIC SMALL LETTER IZHITSA
-\setcclcucx 2C5C 2C5C 2C2C % GLAGOLITIC SMALL LETTER SHTAPIC
-\setcclcucx 2C5D 2C5D 2C2D % GLAGOLITIC SMALL LETTER TROKUTASTI A
-\setcclcucx 2C5E 2C5E 2C2E % GLAGOLITIC SMALL LETTER LATINATE MYSLITE
-\setcclcucx 2C60 2C61 2C60 % LATIN CAPITAL LETTER L WITH DOUBLE BAR
-\setcclcucx 2C61 2C61 2C60 % LATIN SMALL LETTER L WITH DOUBLE BAR
-\setcclcucx 2C62 026B 2C62 % LATIN CAPITAL LETTER L WITH MIDDLE TILDE
-\setcclcucx 2C63 1D7D 2C63 % LATIN CAPITAL LETTER P WITH STROKE
-\setcclcucx 2C64 027D 2C64 % LATIN CAPITAL LETTER R WITH TAIL
-\setcclcucx 2C65 2C65 023A % LATIN SMALL LETTER A WITH STROKE
-\setcclcucx 2C66 2C66 023E % LATIN SMALL LETTER T WITH DIAGONAL STROKE
-\setcclcucx 2C67 2C68 2C67 % LATIN CAPITAL LETTER H WITH DESCENDER
-\setcclcucx 2C68 2C68 2C67 % LATIN SMALL LETTER H WITH DESCENDER
-\setcclcucx 2C69 2C6A 2C69 % LATIN CAPITAL LETTER K WITH DESCENDER
-\setcclcucx 2C6A 2C6A 2C69 % LATIN SMALL LETTER K WITH DESCENDER
-\setcclcucx 2C6B 2C6C 2C6B % LATIN CAPITAL LETTER Z WITH DESCENDER
-\setcclcucx 2C6C 2C6C 2C6B % LATIN SMALL LETTER Z WITH DESCENDER
-\setcclcucx 2C74 2C74 2C74 % LATIN SMALL LETTER V WITH CURL
-\setcclcucx 2C75 2C76 2C75 % LATIN CAPITAL LETTER HALF H
-\setcclcucx 2C76 2C76 2C75 % LATIN SMALL LETTER HALF H
-\setcclcucx 2C77 2C77 2C77 % LATIN SMALL LETTER TAILLESS PHI
-\setcclcucx 2C80 2C81 2C80 % COPTIC CAPITAL LETTER ALFA
-\setcclcucx 2C81 2C81 2C80 % COPTIC SMALL LETTER ALFA
-\setcclcucx 2C82 2C83 2C82 % COPTIC CAPITAL LETTER VIDA
-\setcclcucx 2C83 2C83 2C82 % COPTIC SMALL LETTER VIDA
-\setcclcucx 2C84 2C85 2C84 % COPTIC CAPITAL LETTER GAMMA
-\setcclcucx 2C85 2C85 2C84 % COPTIC SMALL LETTER GAMMA
-\setcclcucx 2C86 2C87 2C86 % COPTIC CAPITAL LETTER DALDA
-\setcclcucx 2C87 2C87 2C86 % COPTIC SMALL LETTER DALDA
-\setcclcucx 2C88 2C89 2C88 % COPTIC CAPITAL LETTER EIE
-\setcclcucx 2C89 2C89 2C88 % COPTIC SMALL LETTER EIE
-\setcclcucx 2C8A 2C8B 2C8A % COPTIC CAPITAL LETTER SOU
-\setcclcucx 2C8B 2C8B 2C8A % COPTIC SMALL LETTER SOU
-\setcclcucx 2C8C 2C8D 2C8C % COPTIC CAPITAL LETTER ZATA
-\setcclcucx 2C8D 2C8D 2C8C % COPTIC SMALL LETTER ZATA
-\setcclcucx 2C8E 2C8F 2C8E % COPTIC CAPITAL LETTER HATE
-\setcclcucx 2C8F 2C8F 2C8E % COPTIC SMALL LETTER HATE
-\setcclcucx 2C90 2C91 2C90 % COPTIC CAPITAL LETTER THETHE
-\setcclcucx 2C91 2C91 2C90 % COPTIC SMALL LETTER THETHE
-\setcclcucx 2C92 2C93 2C92 % COPTIC CAPITAL LETTER IAUDA
-\setcclcucx 2C93 2C93 2C92 % COPTIC SMALL LETTER IAUDA
-\setcclcucx 2C94 2C95 2C94 % COPTIC CAPITAL LETTER KAPA
-\setcclcucx 2C95 2C95 2C94 % COPTIC SMALL LETTER KAPA
-\setcclcucx 2C96 2C97 2C96 % COPTIC CAPITAL LETTER LAULA
-\setcclcucx 2C97 2C97 2C96 % COPTIC SMALL LETTER LAULA
-\setcclcucx 2C98 2C99 2C98 % COPTIC CAPITAL LETTER MI
-\setcclcucx 2C99 2C99 2C98 % COPTIC SMALL LETTER MI
-\setcclcucx 2C9A 2C9B 2C9A % COPTIC CAPITAL LETTER NI
-\setcclcucx 2C9B 2C9B 2C9A % COPTIC SMALL LETTER NI
-\setcclcucx 2C9C 2C9D 2C9C % COPTIC CAPITAL LETTER KSI
-\setcclcucx 2C9D 2C9D 2C9C % COPTIC SMALL LETTER KSI
-\setcclcucx 2C9E 2C9F 2C9E % COPTIC CAPITAL LETTER O
-\setcclcucx 2C9F 2C9F 2C9E % COPTIC SMALL LETTER O
-\setcclcucx 2CA0 2CA1 2CA0 % COPTIC CAPITAL LETTER PI
-\setcclcucx 2CA1 2CA1 2CA0 % COPTIC SMALL LETTER PI
-\setcclcucx 2CA2 2CA3 2CA2 % COPTIC CAPITAL LETTER RO
-\setcclcucx 2CA3 2CA3 2CA2 % COPTIC SMALL LETTER RO
-\setcclcucx 2CA4 2CA5 2CA4 % COPTIC CAPITAL LETTER SIMA
-\setcclcucx 2CA5 2CA5 2CA4 % COPTIC SMALL LETTER SIMA
-\setcclcucx 2CA6 2CA7 2CA6 % COPTIC CAPITAL LETTER TAU
-\setcclcucx 2CA7 2CA7 2CA6 % COPTIC SMALL LETTER TAU
-\setcclcucx 2CA8 2CA9 2CA8 % COPTIC CAPITAL LETTER UA
-\setcclcucx 2CA9 2CA9 2CA8 % COPTIC SMALL LETTER UA
-\setcclcucx 2CAA 2CAB 2CAA % COPTIC CAPITAL LETTER FI
-\setcclcucx 2CAB 2CAB 2CAA % COPTIC SMALL LETTER FI
-\setcclcucx 2CAC 2CAD 2CAC % COPTIC CAPITAL LETTER KHI
-\setcclcucx 2CAD 2CAD 2CAC % COPTIC SMALL LETTER KHI
-\setcclcucx 2CAE 2CAF 2CAE % COPTIC CAPITAL LETTER PSI
-\setcclcucx 2CAF 2CAF 2CAE % COPTIC SMALL LETTER PSI
-\setcclcucx 2CB0 2CB1 2CB0 % COPTIC CAPITAL LETTER OOU
-\setcclcucx 2CB1 2CB1 2CB0 % COPTIC SMALL LETTER OOU
-\setcclcucx 2CB2 2CB3 2CB2 % COPTIC CAPITAL LETTER DIALECT-P ALEF
-\setcclcucx 2CB3 2CB3 2CB2 % COPTIC SMALL LETTER DIALECT-P ALEF
-\setcclcucx 2CB4 2CB5 2CB4 % COPTIC CAPITAL LETTER OLD COPTIC AIN
-\setcclcucx 2CB5 2CB5 2CB4 % COPTIC SMALL LETTER OLD COPTIC AIN
-\setcclcucx 2CB6 2CB7 2CB6 % COPTIC CAPITAL LETTER CRYPTOGRAMMIC EIE
-\setcclcucx 2CB7 2CB7 2CB6 % COPTIC SMALL LETTER CRYPTOGRAMMIC EIE
-\setcclcucx 2CB8 2CB9 2CB8 % COPTIC CAPITAL LETTER DIALECT-P KAPA
-\setcclcucx 2CB9 2CB9 2CB8 % COPTIC SMALL LETTER DIALECT-P KAPA
-\setcclcucx 2CBA 2CBB 2CBA % COPTIC CAPITAL LETTER DIALECT-P NI
-\setcclcucx 2CBB 2CBB 2CBA % COPTIC SMALL LETTER DIALECT-P NI
-\setcclcucx 2CBC 2CBD 2CBC % COPTIC CAPITAL LETTER CRYPTOGRAMMIC NI
-\setcclcucx 2CBD 2CBD 2CBC % COPTIC SMALL LETTER CRYPTOGRAMMIC NI
-\setcclcucx 2CBE 2CBF 2CBE % COPTIC CAPITAL LETTER OLD COPTIC OOU
-\setcclcucx 2CBF 2CBF 2CBE % COPTIC SMALL LETTER OLD COPTIC OOU
-\setcclcucx 2CC0 2CC1 2CC0 % COPTIC CAPITAL LETTER SAMPI
-\setcclcucx 2CC1 2CC1 2CC0 % COPTIC SMALL LETTER SAMPI
-\setcclcucx 2CC2 2CC3 2CC2 % COPTIC CAPITAL LETTER CROSSED SHEI
-\setcclcucx 2CC3 2CC3 2CC2 % COPTIC SMALL LETTER CROSSED SHEI
-\setcclcucx 2CC4 2CC5 2CC4 % COPTIC CAPITAL LETTER OLD COPTIC SHEI
-\setcclcucx 2CC5 2CC5 2CC4 % COPTIC SMALL LETTER OLD COPTIC SHEI
-\setcclcucx 2CC6 2CC7 2CC6 % COPTIC CAPITAL LETTER OLD COPTIC ESH
-\setcclcucx 2CC7 2CC7 2CC6 % COPTIC SMALL LETTER OLD COPTIC ESH
-\setcclcucx 2CC8 2CC9 2CC8 % COPTIC CAPITAL LETTER AKHMIMIC KHEI
-\setcclcucx 2CC9 2CC9 2CC8 % COPTIC SMALL LETTER AKHMIMIC KHEI
-\setcclcucx 2CCA 2CCB 2CCA % COPTIC CAPITAL LETTER DIALECT-P HORI
-\setcclcucx 2CCB 2CCB 2CCA % COPTIC SMALL LETTER DIALECT-P HORI
-\setcclcucx 2CCC 2CCD 2CCC % COPTIC CAPITAL LETTER OLD COPTIC HORI
-\setcclcucx 2CCD 2CCD 2CCC % COPTIC SMALL LETTER OLD COPTIC HORI
-\setcclcucx 2CCE 2CCF 2CCE % COPTIC CAPITAL LETTER OLD COPTIC HA
-\setcclcucx 2CCF 2CCF 2CCE % COPTIC SMALL LETTER OLD COPTIC HA
-\setcclcucx 2CD0 2CD1 2CD0 % COPTIC CAPITAL LETTER L-SHAPED HA
-\setcclcucx 2CD1 2CD1 2CD0 % COPTIC SMALL LETTER L-SHAPED HA
-\setcclcucx 2CD2 2CD3 2CD2 % COPTIC CAPITAL LETTER OLD COPTIC HEI
-\setcclcucx 2CD3 2CD3 2CD2 % COPTIC SMALL LETTER OLD COPTIC HEI
-\setcclcucx 2CD4 2CD5 2CD4 % COPTIC CAPITAL LETTER OLD COPTIC HAT
-\setcclcucx 2CD5 2CD5 2CD4 % COPTIC SMALL LETTER OLD COPTIC HAT
-\setcclcucx 2CD6 2CD7 2CD6 % COPTIC CAPITAL LETTER OLD COPTIC GANGIA
-\setcclcucx 2CD7 2CD7 2CD6 % COPTIC SMALL LETTER OLD COPTIC GANGIA
-\setcclcucx 2CD8 2CD9 2CD8 % COPTIC CAPITAL LETTER OLD COPTIC DJA
-\setcclcucx 2CD9 2CD9 2CD8 % COPTIC SMALL LETTER OLD COPTIC DJA
-\setcclcucx 2CDA 2CDB 2CDA % COPTIC CAPITAL LETTER OLD COPTIC SHIMA
-\setcclcucx 2CDB 2CDB 2CDA % COPTIC SMALL LETTER OLD COPTIC SHIMA
-\setcclcucx 2CDC 2CDD 2CDC % COPTIC CAPITAL LETTER OLD NUBIAN SHIMA
-\setcclcucx 2CDD 2CDD 2CDC % COPTIC SMALL LETTER OLD NUBIAN SHIMA
-\setcclcucx 2CDE 2CDF 2CDE % COPTIC CAPITAL LETTER OLD NUBIAN NGI
-\setcclcucx 2CDF 2CDF 2CDE % COPTIC SMALL LETTER OLD NUBIAN NGI
-\setcclcucx 2CE0 2CE1 2CE0 % COPTIC CAPITAL LETTER OLD NUBIAN NYI
-\setcclcucx 2CE1 2CE1 2CE0 % COPTIC SMALL LETTER OLD NUBIAN NYI
-\setcclcucx 2CE2 2CE3 2CE2 % COPTIC CAPITAL LETTER OLD NUBIAN WAU
-\setcclcucx 2CE3 2CE3 2CE2 % COPTIC SMALL LETTER OLD NUBIAN WAU
-\setcclcucx 2CE4 2CE4 2CE4 % COPTIC SYMBOL KAI
-\setcclcucx 2D00 2D00 10A0 % GEORGIAN SMALL LETTER AN
-\setcclcucx 2D01 2D01 10A1 % GEORGIAN SMALL LETTER BAN
-\setcclcucx 2D02 2D02 10A2 % GEORGIAN SMALL LETTER GAN
-\setcclcucx 2D03 2D03 10A3 % GEORGIAN SMALL LETTER DON
-\setcclcucx 2D04 2D04 10A4 % GEORGIAN SMALL LETTER EN
-\setcclcucx 2D05 2D05 10A5 % GEORGIAN SMALL LETTER VIN
-\setcclcucx 2D06 2D06 10A6 % GEORGIAN SMALL LETTER ZEN
-\setcclcucx 2D07 2D07 10A7 % GEORGIAN SMALL LETTER TAN
-\setcclcucx 2D08 2D08 10A8 % GEORGIAN SMALL LETTER IN
-\setcclcucx 2D09 2D09 10A9 % GEORGIAN SMALL LETTER KAN
-\setcclcucx 2D0A 2D0A 10AA % GEORGIAN SMALL LETTER LAS
-\setcclcucx 2D0B 2D0B 10AB % GEORGIAN SMALL LETTER MAN
-\setcclcucx 2D0C 2D0C 10AC % GEORGIAN SMALL LETTER NAR
-\setcclcucx 2D0D 2D0D 10AD % GEORGIAN SMALL LETTER ON
-\setcclcucx 2D0E 2D0E 10AE % GEORGIAN SMALL LETTER PAR
-\setcclcucx 2D0F 2D0F 10AF % GEORGIAN SMALL LETTER ZHAR
-\setcclcucx 2D10 2D10 10B0 % GEORGIAN SMALL LETTER RAE
-\setcclcucx 2D11 2D11 10B1 % GEORGIAN SMALL LETTER SAN
-\setcclcucx 2D12 2D12 10B2 % GEORGIAN SMALL LETTER TAR
-\setcclcucx 2D13 2D13 10B3 % GEORGIAN SMALL LETTER UN
-\setcclcucx 2D14 2D14 10B4 % GEORGIAN SMALL LETTER PHAR
-\setcclcucx 2D15 2D15 10B5 % GEORGIAN SMALL LETTER KHAR
-\setcclcucx 2D16 2D16 10B6 % GEORGIAN SMALL LETTER GHAN
-\setcclcucx 2D17 2D17 10B7 % GEORGIAN SMALL LETTER QAR
-\setcclcucx 2D18 2D18 10B8 % GEORGIAN SMALL LETTER SHIN
-\setcclcucx 2D19 2D19 10B9 % GEORGIAN SMALL LETTER CHIN
-\setcclcucx 2D1A 2D1A 10BA % GEORGIAN SMALL LETTER CAN
-\setcclcucx 2D1B 2D1B 10BB % GEORGIAN SMALL LETTER JIL
-\setcclcucx 2D1C 2D1C 10BC % GEORGIAN SMALL LETTER CIL
-\setcclcucx 2D1D 2D1D 10BD % GEORGIAN SMALL LETTER CHAR
-\setcclcucx 2D1E 2D1E 10BE % GEORGIAN SMALL LETTER XAN
-\setcclcucx 2D1F 2D1F 10BF % GEORGIAN SMALL LETTER JHAN
-\setcclcucx 2D20 2D20 10C0 % GEORGIAN SMALL LETTER HAE
-\setcclcucx 2D21 2D21 10C1 % GEORGIAN SMALL LETTER HE
-\setcclcucx 2D22 2D22 10C2 % GEORGIAN SMALL LETTER HIE
-\setcclcucx 2D23 2D23 10C3 % GEORGIAN SMALL LETTER WE
-\setcclcucx 2D24 2D24 10C4 % GEORGIAN SMALL LETTER HAR
-\setcclcucx 2D25 2D25 10C5 % GEORGIAN SMALL LETTER HOE
-\setcclcucx FB00 FB00 FB00 % LATIN SMALL LIGATURE FF
-\setcclcucx FB01 FB01 FB01 % LATIN SMALL LIGATURE FI
-\setcclcucx FB02 FB02 FB02 % LATIN SMALL LIGATURE FL
-\setcclcucx FB03 FB03 FB03 % LATIN SMALL LIGATURE FFI
-\setcclcucx FB04 FB04 FB04 % LATIN SMALL LIGATURE FFL
-\setcclcucx FB05 FB05 FB05 % LATIN SMALL LIGATURE LONG S T
-\setcclcucx FB06 FB06 FB06 % LATIN SMALL LIGATURE ST
-\setcclcucx FB13 FB13 FB13 % ARMENIAN SMALL LIGATURE MEN NOW
-\setcclcucx FB14 FB14 FB14 % ARMENIAN SMALL LIGATURE MEN ECH
-\setcclcucx FB15 FB15 FB15 % ARMENIAN SMALL LIGATURE MEN INI
-\setcclcucx FB16 FB16 FB16 % ARMENIAN SMALL LIGATURE VEW NOW
-\setcclcucx FB17 FB17 FB17 % ARMENIAN SMALL LIGATURE MEN XEH
-\setcclcucx FF21 FF41 FF21 % FULLWIDTH LATIN CAPITAL LETTER A
-\setcclcucx FF22 FF42 FF22 % FULLWIDTH LATIN CAPITAL LETTER B
-\setcclcucx FF23 FF43 FF23 % FULLWIDTH LATIN CAPITAL LETTER C
-\setcclcucx FF24 FF44 FF24 % FULLWIDTH LATIN CAPITAL LETTER D
-\setcclcucx FF25 FF45 FF25 % FULLWIDTH LATIN CAPITAL LETTER E
-\setcclcucx FF26 FF46 FF26 % FULLWIDTH LATIN CAPITAL LETTER F
-\setcclcucx FF27 FF47 FF27 % FULLWIDTH LATIN CAPITAL LETTER G
-\setcclcucx FF28 FF48 FF28 % FULLWIDTH LATIN CAPITAL LETTER H
-\setcclcucx FF29 FF49 FF29 % FULLWIDTH LATIN CAPITAL LETTER I
-\setcclcucx FF2A FF4A FF2A % FULLWIDTH LATIN CAPITAL LETTER J
-\setcclcucx FF2B FF4B FF2B % FULLWIDTH LATIN CAPITAL LETTER K
-\setcclcucx FF2C FF4C FF2C % FULLWIDTH LATIN CAPITAL LETTER L
-\setcclcucx FF2D FF4D FF2D % FULLWIDTH LATIN CAPITAL LETTER M
-\setcclcucx FF2E FF4E FF2E % FULLWIDTH LATIN CAPITAL LETTER N
-\setcclcucx FF2F FF4F FF2F % FULLWIDTH LATIN CAPITAL LETTER O
-\setcclcucx FF30 FF50 FF30 % FULLWIDTH LATIN CAPITAL LETTER P
-\setcclcucx FF31 FF51 FF31 % FULLWIDTH LATIN CAPITAL LETTER Q
-\setcclcucx FF32 FF52 FF32 % FULLWIDTH LATIN CAPITAL LETTER R
-\setcclcucx FF33 FF53 FF33 % FULLWIDTH LATIN CAPITAL LETTER S
-\setcclcucx FF34 FF54 FF34 % FULLWIDTH LATIN CAPITAL LETTER T
-\setcclcucx FF35 FF55 FF35 % FULLWIDTH LATIN CAPITAL LETTER U
-\setcclcucx FF36 FF56 FF36 % FULLWIDTH LATIN CAPITAL LETTER V
-\setcclcucx FF37 FF57 FF37 % FULLWIDTH LATIN CAPITAL LETTER W
-\setcclcucx FF38 FF58 FF38 % FULLWIDTH LATIN CAPITAL LETTER X
-\setcclcucx FF39 FF59 FF39 % FULLWIDTH LATIN CAPITAL LETTER Y
-\setcclcucx FF3A FF5A FF3A % FULLWIDTH LATIN CAPITAL LETTER Z
-\setcclcucx FF41 FF41 FF21 % FULLWIDTH LATIN SMALL LETTER A
-\setcclcucx FF42 FF42 FF22 % FULLWIDTH LATIN SMALL LETTER B
-\setcclcucx FF43 FF43 FF23 % FULLWIDTH LATIN SMALL LETTER C
-\setcclcucx FF44 FF44 FF24 % FULLWIDTH LATIN SMALL LETTER D
-\setcclcucx FF45 FF45 FF25 % FULLWIDTH LATIN SMALL LETTER E
-\setcclcucx FF46 FF46 FF26 % FULLWIDTH LATIN SMALL LETTER F
-\setcclcucx FF47 FF47 FF27 % FULLWIDTH LATIN SMALL LETTER G
-\setcclcucx FF48 FF48 FF28 % FULLWIDTH LATIN SMALL LETTER H
-\setcclcucx FF49 FF49 FF29 % FULLWIDTH LATIN SMALL LETTER I
-\setcclcucx FF4A FF4A FF2A % FULLWIDTH LATIN SMALL LETTER J
-\setcclcucx FF4B FF4B FF2B % FULLWIDTH LATIN SMALL LETTER K
-\setcclcucx FF4C FF4C FF2C % FULLWIDTH LATIN SMALL LETTER L
-\setcclcucx FF4D FF4D FF2D % FULLWIDTH LATIN SMALL LETTER M
-\setcclcucx FF4E FF4E FF2E % FULLWIDTH LATIN SMALL LETTER N
-\setcclcucx FF4F FF4F FF2F % FULLWIDTH LATIN SMALL LETTER O
-\setcclcucx FF50 FF50 FF30 % FULLWIDTH LATIN SMALL LETTER P
-\setcclcucx FF51 FF51 FF31 % FULLWIDTH LATIN SMALL LETTER Q
-\setcclcucx FF52 FF52 FF32 % FULLWIDTH LATIN SMALL LETTER R
-\setcclcucx FF53 FF53 FF33 % FULLWIDTH LATIN SMALL LETTER S
-\setcclcucx FF54 FF54 FF34 % FULLWIDTH LATIN SMALL LETTER T
-\setcclcucx FF55 FF55 FF35 % FULLWIDTH LATIN SMALL LETTER U
-\setcclcucx FF56 FF56 FF36 % FULLWIDTH LATIN SMALL LETTER V
-\setcclcucx FF57 FF57 FF37 % FULLWIDTH LATIN SMALL LETTER W
-\setcclcucx FF58 FF58 FF38 % FULLWIDTH LATIN SMALL LETTER X
-\setcclcucx FF59 FF59 FF39 % FULLWIDTH LATIN SMALL LETTER Y
-\setcclcucx FF5A FF5A FF3A % FULLWIDTH LATIN SMALL LETTER Z
-
-% named characters mapped onto utf (\\char is needed for accents)
-
-\def\textbackslash {\char"005C } % REVERSE SOLIDUS: \
-\def\textasciicircum {\char"005E } % CIRCUMFLEX ACCENT: ^
-\def\textunderscore {\char"005F } % LOW LINE: _
-\def\textgrave {\char"0060 } % GRAVE ACCENT: `
-\def\textbraceleft {\char"007B } % LEFT CURLY BRACKET: {
-\def\textbar {\char"007C } % VERTICAL LINE: |
-\def\textbraceright {\char"007D } % RIGHT CURLY BRACKET: }
-\def\textasciitilde {\char"007E } % TILDE: ~
-\def\nonbreakablespace {\char"00A0 } % NO-BREAK SPACE:  
-\def\exclamdown {\char"00A1 } % INVERTED EXCLAMATION MARK: ¡
-\def\textcent {\char"00A2 } % CENT SIGN: ¢
-\def\textsterling {\char"00A3 } % POUND SIGN: £
-\def\textcurrency {\char"00A4 } % CURRENCY SIGN: ¤
-\def\textyen {\char"00A5 } % YEN SIGN: ¥
-\def\textbrokenbar {\char"00A6 } % BROKEN BAR: ¦
-\def\sectionmark {\char"00A7 } % SECTION SIGN: §
-\def\textdiaeresis {\char"00A8 } % DIAERESIS: ¨
-\def\copyright {\char"00A9 } % COPYRIGHT SIGN: ©
-\def\ordfeminine {\char"00AA } % FEMININE ORDINAL INDICATOR: ª
-\def\leftguillemot {\char"00AB } % LEFT-POINTING DOUBLE ANGLE QUOTATION MARK: «
-\def\textlognot {\char"00AC } % NOT SIGN: ¬
-\def\softhyphen {\char"00AD } % SOFT HYPHEN: ­
-\def\registered {\char"00AE } % REGISTERED SIGN: ®
-\def\textmacron {\char"00AF } % MACRON: ¯
-\def\textdegree {\char"00B0 } % DEGREE SIGN: °
-\def\textpm {\char"00B1 } % PLUS-MINUS SIGN: ±
-\def\twosuperior {\char"00B2 } % SUPERSCRIPT TWO: ²
-\def\threesuperior {\char"00B3 } % SUPERSCRIPT THREE: ³
-\def\textacute {\char"00B4 } % ACUTE ACCENT: ´
-\def\textmu {\char"00B5 } % MICRO SIGN: µ
-\def\paragraphmark {\char"00B6 } % PILCROW SIGN: ¶
-\def\periodcentered {\char"00B7 } % MIDDLE DOT: ·
-\def\textcedilla {\char"00B8 } % CEDILLA: ¸
-\def\onesuperior {\char"00B9 } % SUPERSCRIPT ONE: ¹
-\def\ordmasculine {\char"00BA } % MASCULINE ORDINAL INDICATOR: º
-\def\rightguillemot {\char"00BB } % RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK: »
-\def\onequarter {\char"00BC } % VULGAR FRACTION ONE QUARTER: ¼
-\def\onehalf {\char"00BD } % VULGAR FRACTION ONE HALF: ½
-\def\threequarter {\char"00BE } % VULGAR FRACTION THREE QUARTERS: ¾
-\def\questiondown {\char"00BF } % INVERTED QUESTION MARK: ¿
-\def\Agrave {\char"00C0 } % LATIN CAPITAL LETTER A WITH GRAVE: À
-\def\Aacute {\char"00C1 } % LATIN CAPITAL LETTER A WITH ACUTE: Á
-\def\Acircumflex {\char"00C2 } % LATIN CAPITAL LETTER A WITH CIRCUMFLEX: Â
-\def\Atilde {\char"00C3 } % LATIN CAPITAL LETTER A WITH TILDE: Ã
-\def\Adiaeresis {\char"00C4 } % LATIN CAPITAL LETTER A WITH DIAERESIS: Ä
-\def\Aring {\char"00C5 } % LATIN CAPITAL LETTER A WITH RING ABOVE: Å
-\def\AEligature {\char"00C6 } % LATIN CAPITAL LETTER AE: Æ
-\def\Ccedilla {\char"00C7 } % LATIN CAPITAL LETTER C WITH CEDILLA: Ç
-\def\Egrave {\char"00C8 } % LATIN CAPITAL LETTER E WITH GRAVE: È
-\def\Eacute {\char"00C9 } % LATIN CAPITAL LETTER E WITH ACUTE: É
-\def\Ecircumflex {\char"00CA } % LATIN CAPITAL LETTER E WITH CIRCUMFLEX: Ê
-\def\Ediaeresis {\char"00CB } % LATIN CAPITAL LETTER E WITH DIAERESIS: Ë
-\def\Igrave {\char"00CC } % LATIN CAPITAL LETTER I WITH GRAVE: Ì
-\def\Iacute {\char"00CD } % LATIN CAPITAL LETTER I WITH ACUTE: Í
-\def\Icircumflex {\char"00CE } % LATIN CAPITAL LETTER I WITH CIRCUMFLEX: Î
-\def\Idiaeresis {\char"00CF } % LATIN CAPITAL LETTER I WITH DIAERESIS: Ï
-\def\Eth {\char"00D0 } % LATIN CAPITAL LETTER ETH: Ð
-\def\Ntilde {\char"00D1 } % LATIN CAPITAL LETTER N WITH TILDE: Ñ
-\def\Ograve {\char"00D2 } % LATIN CAPITAL LETTER O WITH GRAVE: Ò
-\def\Oacute {\char"00D3 } % LATIN CAPITAL LETTER O WITH ACUTE: Ó
-\def\Ocircumflex {\char"00D4 } % LATIN CAPITAL LETTER O WITH CIRCUMFLEX: Ô
-\def\Otilde {\char"00D5 } % LATIN CAPITAL LETTER O WITH TILDE: Õ
-\def\Odiaeresis {\char"00D6 } % LATIN CAPITAL LETTER O WITH DIAERESIS: Ö
-\def\textmultiply {\char"00D7 } % MULTIPLICATION SIGN: ×
-\def\Ostroke {\char"00D8 } % LATIN CAPITAL LETTER O WITH STROKE: Ø
-\def\Ugrave {\char"00D9 } % LATIN CAPITAL LETTER U WITH GRAVE: Ù
-\def\Uacute {\char"00DA } % LATIN CAPITAL LETTER U WITH ACUTE: Ú
-\def\Ucircumflex {\char"00DB } % LATIN CAPITAL LETTER U WITH CIRCUMFLEX: Û
-\def\Udiaeresis {\char"00DC } % LATIN CAPITAL LETTER U WITH DIAERESIS: Ü
-\def\Yacute {\char"00DD } % LATIN CAPITAL LETTER Y WITH ACUTE: Ý
-\def\Thorn {\char"00DE } % LATIN CAPITAL LETTER THORN: Þ
-\def\ssharp {\char"00DF } % LATIN SMALL LETTER SHARP S: ß
-\def\agrave {\char"00E0 } % LATIN SMALL LETTER A WITH GRAVE: à
-\def\aacute {\char"00E1 } % LATIN SMALL LETTER A WITH ACUTE: á
-\def\acircumflex {\char"00E2 } % LATIN SMALL LETTER A WITH CIRCUMFLEX: â
-\def\atilde {\char"00E3 } % LATIN SMALL LETTER A WITH TILDE: ã
-\def\adiaeresis {\char"00E4 } % LATIN SMALL LETTER A WITH DIAERESIS: ä
-\def\aring {\char"00E5 } % LATIN SMALL LETTER A WITH RING ABOVE: å
-\def\aeligature {\char"00E6 } % LATIN SMALL LETTER AE: æ
-\def\ccedilla {\char"00E7 } % LATIN SMALL LETTER C WITH CEDILLA: ç
-\def\egrave {\char"00E8 } % LATIN SMALL LETTER E WITH GRAVE: è
-\def\eacute {\char"00E9 } % LATIN SMALL LETTER E WITH ACUTE: é
-\def\ecircumflex {\char"00EA } % LATIN SMALL LETTER E WITH CIRCUMFLEX: ê
-\def\ediaeresis {\char"00EB } % LATIN SMALL LETTER E WITH DIAERESIS: ë
-\def\igrave {\char"00EC } % LATIN SMALL LETTER I WITH GRAVE: ì
-\def\iacute {\char"00ED } % LATIN SMALL LETTER I WITH ACUTE: í
-\def\icircumflex {\char"00EE } % LATIN SMALL LETTER I WITH CIRCUMFLEX: î
-\def\idiaeresis {\char"00EF } % LATIN SMALL LETTER I WITH DIAERESIS: ï
-\def\eth {\char"00F0 } % LATIN SMALL LETTER ETH: ð
-\def\ntilde {\char"00F1 } % LATIN SMALL LETTER N WITH TILDE: ñ
-\def\ograve {\char"00F2 } % LATIN SMALL LETTER O WITH GRAVE: ò
-\def\oacute {\char"00F3 } % LATIN SMALL LETTER O WITH ACUTE: ó
-\def\ocircumflex {\char"00F4 } % LATIN SMALL LETTER O WITH CIRCUMFLEX: ô
-\def\otilde {\char"00F5 } % LATIN SMALL LETTER O WITH TILDE: õ
-\def\odiaeresis {\char"00F6 } % LATIN SMALL LETTER O WITH DIAERESIS: ö
-\def\textdiv {\char"00F7 } % DIVISION SIGN: ÷
-\def\ostroke {\char"00F8 } % LATIN SMALL LETTER O WITH STROKE: ø
-\def\ugrave {\char"00F9 } % LATIN SMALL LETTER U WITH GRAVE: ù
-\def\uacute {\char"00FA } % LATIN SMALL LETTER U WITH ACUTE: ú
-\def\ucircumflex {\char"00FB } % LATIN SMALL LETTER U WITH CIRCUMFLEX: û
-\def\udiaeresis {\char"00FC } % LATIN SMALL LETTER U WITH DIAERESIS: ü
-\def\yacute {\char"00FD } % LATIN SMALL LETTER Y WITH ACUTE: ý
-\def\thorn {\char"00FE } % LATIN SMALL LETTER THORN: þ
-\def\ydiaeresis {\char"00FF } % LATIN SMALL LETTER Y WITH DIAERESIS: ÿ
-\def\Amacron {\char"0100 } % LATIN CAPITAL LETTER A WITH MACRON: Ā
-\def\amacron {\char"0101 } % LATIN SMALL LETTER A WITH MACRON: ā
-\def\Abreve {\char"0102 } % LATIN CAPITAL LETTER A WITH BREVE: Ă
-\def\abreve {\char"0103 } % LATIN SMALL LETTER A WITH BREVE: ă
-\def\Aogonek {\char"0104 } % LATIN CAPITAL LETTER A WITH OGONEK: Ą
-\def\aogonek {\char"0105 } % LATIN SMALL LETTER A WITH OGONEK: ą
-\def\Cacute {\char"0106 } % LATIN CAPITAL LETTER C WITH ACUTE: Ć
-\def\cacute {\char"0107 } % LATIN SMALL LETTER C WITH ACUTE: ć
-\def\Ccircumflex {\char"0108 } % LATIN CAPITAL LETTER C WITH CIRCUMFLEX: Ĉ
-\def\ccircumflex {\char"0109 } % LATIN SMALL LETTER C WITH CIRCUMFLEX: ĉ
-\def\Cdotaccent {\char"010A } % LATIN CAPITAL LETTER C WITH DOT ABOVE: Ċ
-\def\cdotaccent {\char"010B } % LATIN SMALL LETTER C WITH DOT ABOVE: ċ
-\def\Ccaron {\char"010C } % LATIN CAPITAL LETTER C WITH CARON: Č
-\def\ccaron {\char"010D } % LATIN SMALL LETTER C WITH CARON: č
-\def\Dcaron {\char"010E } % LATIN CAPITAL LETTER D WITH CARON: Ď
-\def\dcaron {\char"010F } % LATIN SMALL LETTER D WITH CARON: ď
-\def\Dstroke {\char"0110 } % LATIN CAPITAL LETTER D WITH STROKE: Đ
-\def\dstroke {\char"0111 } % LATIN SMALL LETTER D WITH STROKE: đ
-\def\Emacron {\char"0112 } % LATIN CAPITAL LETTER E WITH MACRON: Ē
-\def\emacron {\char"0113 } % LATIN SMALL LETTER E WITH MACRON: ē
-\def\Ebreve {\char"0114 } % LATIN CAPITAL LETTER E WITH BREVE: Ĕ
-\def\ebreve {\char"0115 } % LATIN SMALL LETTER E WITH BREVE: ĕ
-\def\Edotaccent {\char"0116 } % LATIN CAPITAL LETTER E WITH DOT ABOVE: Ė
-\def\edotaccent {\char"0117 } % LATIN SMALL LETTER E WITH DOT ABOVE: ė
-\def\Eogonek {\char"0118 } % LATIN CAPITAL LETTER E WITH OGONEK: Ę
-\def\eogonek {\char"0119 } % LATIN SMALL LETTER E WITH OGONEK: ę
-\def\Ecaron {\char"011A } % LATIN CAPITAL LETTER E WITH CARON: Ě
-\def\ecaron {\char"011B } % LATIN SMALL LETTER E WITH CARON: ě
-\def\Gcircumflex {\char"011C } % LATIN CAPITAL LETTER G WITH CIRCUMFLEX: Ĝ
-\def\gcircumflex {\char"011D } % LATIN SMALL LETTER G WITH CIRCUMFLEX: ĝ
-\def\Gbreve {\char"011E } % LATIN CAPITAL LETTER G WITH BREVE: Ğ
-\def\gbreve {\char"011F } % LATIN SMALL LETTER G WITH BREVE: ğ
-\def\Gdotaccent {\char"0120 } % LATIN CAPITAL LETTER G WITH DOT ABOVE: Ġ
-\def\gdotaccent {\char"0121 } % LATIN SMALL LETTER G WITH DOT ABOVE: ġ
-\def\Gcommaaccent {\char"0122 } % LATIN CAPITAL LETTER G WITH CEDILLA: Ģ
-\def\gcommaaccent {\char"0123 } % LATIN SMALL LETTER G WITH CEDILLA: ģ
-\def\Hcircumflex {\char"0124 } % LATIN CAPITAL LETTER H WITH CIRCUMFLEX: Ĥ
-\def\hcircumflex {\char"0125 } % LATIN SMALL LETTER H WITH CIRCUMFLEX: ĥ
-\def\Hstroke {\char"0126 } % LATIN CAPITAL LETTER H WITH STROKE: Ħ
-\def\hstroke {\char"0127 } % LATIN SMALL LETTER H WITH STROKE: ħ
-\def\Itilde {\char"0128 } % LATIN CAPITAL LETTER I WITH TILDE: Ĩ
-\def\itilde {\char"0129 } % LATIN SMALL LETTER I WITH TILDE: ĩ
-\def\Imacron {\char"012A } % LATIN CAPITAL LETTER I WITH MACRON: Ī
-\def\imacron {\char"012B } % LATIN SMALL LETTER I WITH MACRON: ī
-\def\Ibreve {\char"012C } % LATIN CAPITAL LETTER I WITH BREVE: Ĭ
-\def\ibreve {\char"012D } % LATIN SMALL LETTER I WITH BREVE: ĭ
-\def\Iogonek {\char"012E } % LATIN CAPITAL LETTER I WITH OGONEK: Į
-\def\iogonek {\char"012F } % LATIN SMALL LETTER I WITH OGONEK: į
-\def\Idotaccent {\char"0130 } % LATIN CAPITAL LETTER I WITH DOT ABOVE: İ
-\def\dotlessi {\char"0131 } % LATIN SMALL LETTER DOTLESS I: ı
-\def\IJligature {\char"0132 } % LATIN CAPITAL LIGATURE IJ: IJ
-\def\ijligature {\char"0133 } % LATIN SMALL LIGATURE IJ: ij
-\def\Jcircumflex {\char"0134 } % LATIN CAPITAL LETTER J WITH CIRCUMFLEX: Ĵ
-\def\jcircumflex {\char"0135 } % LATIN SMALL LETTER J WITH CIRCUMFLEX: ĵ
-\def\Kcommaaccent {\char"0136 } % LATIN CAPITAL LETTER K WITH CEDILLA: Ķ
-\def\kcommaaccent {\char"0137 } % LATIN SMALL LETTER K WITH CEDILLA: ķ
-\def\kkra {\char"0138 } % LATIN SMALL LETTER KRA: ĸ
-\def\Lacute {\char"0139 } % LATIN CAPITAL LETTER L WITH ACUTE: Ĺ
-\def\lacute {\char"013A } % LATIN SMALL LETTER L WITH ACUTE: ĺ
-\def\Lcommaaccent {\char"013B } % LATIN CAPITAL LETTER L WITH CEDILLA: Ļ
-\def\lcommaaccent {\char"013C } % LATIN SMALL LETTER L WITH CEDILLA: ļ
-\def\Lcaron {\char"013D } % LATIN CAPITAL LETTER L WITH CARON: Ľ
-\def\lcaron {\char"013E } % LATIN SMALL LETTER L WITH CARON: ľ
-\def\Ldotmiddle {\char"013F } % LATIN CAPITAL LETTER L WITH MIDDLE DOT: Ŀ
-\def\ldotmiddle {\char"0140 } % LATIN SMALL LETTER L WITH MIDDLE DOT: ŀ
-\def\Lstroke {\char"0141 } % LATIN CAPITAL LETTER L WITH STROKE: Ł
-\def\lstroke {\char"0142 } % LATIN SMALL LETTER L WITH STROKE: ł
-\def\Nacute {\char"0143 } % LATIN CAPITAL LETTER N WITH ACUTE: Ń
-\def\nacute {\char"0144 } % LATIN SMALL LETTER N WITH ACUTE: ń
-\def\Ncommaaccent {\char"0145 } % LATIN CAPITAL LETTER N WITH CEDILLA: Ņ
-\def\ncommaaccent {\char"0146 } % LATIN SMALL LETTER N WITH CEDILLA: ņ
-\def\Ncaron {\char"0147 } % LATIN CAPITAL LETTER N WITH CARON: Ň
-\def\ncaron {\char"0148 } % LATIN SMALL LETTER N WITH CARON: ň
-\def\napostrophe {\char"0149 } % LATIN SMALL LETTER N PRECEDED BY APOSTROPHE: ʼn
-\def\Neng {\char"014A } % LATIN CAPITAL LETTER ENG: Ŋ
-\def\neng {\char"014B } % LATIN SMALL LETTER ENG: ŋ
-\def\Omacron {\char"014C } % LATIN CAPITAL LETTER O WITH MACRON: Ō
-\def\omacron {\char"014D } % LATIN SMALL LETTER O WITH MACRON: ō
-\def\Obreve {\char"014E } % LATIN CAPITAL LETTER O WITH BREVE: Ŏ
-\def\obreve {\char"014F } % LATIN SMALL LETTER O WITH BREVE: ŏ
-\def\Ohungarumlaut {\char"0150 } % LATIN CAPITAL LETTER O WITH DOUBLE ACUTE: Ő
-\def\ohungarumlaut {\char"0151 } % LATIN SMALL LETTER O WITH DOUBLE ACUTE: ő
-\def\OEligature {\char"0152 } % LATIN CAPITAL LIGATURE OE: Œ
-\def\oeligature {\char"0153 } % LATIN SMALL LIGATURE OE: œ
-\def\Racute {\char"0154 } % LATIN CAPITAL LETTER R WITH ACUTE: Ŕ
-\def\racute {\char"0155 } % LATIN SMALL LETTER R WITH ACUTE: ŕ
-\def\Rcommaaccent {\char"0156 } % LATIN CAPITAL LETTER R WITH CEDILLA: Ŗ
-\def\rcommaaccent {\char"0157 } % LATIN SMALL LETTER R WITH CEDILLA: ŗ
-\def\Rcaron {\char"0158 } % LATIN CAPITAL LETTER R WITH CARON: Ř
-\def\rcaron {\char"0159 } % LATIN SMALL LETTER R WITH CARON: ř
-\def\Sacute {\char"015A } % LATIN CAPITAL LETTER S WITH ACUTE: Ś
-\def\sacute {\char"015B } % LATIN SMALL LETTER S WITH ACUTE: ś
-\def\Scircumflex {\char"015C } % LATIN CAPITAL LETTER S WITH CIRCUMFLEX: Ŝ
-\def\scircumflex {\char"015D } % LATIN SMALL LETTER S WITH CIRCUMFLEX: ŝ
-\def\Scedilla {\char"015E } % LATIN CAPITAL LETTER S WITH CEDILLA: Ş
-\def\scedilla {\char"015F } % LATIN SMALL LETTER S WITH CEDILLA: ş
-\def\Scaron {\char"0160 } % LATIN CAPITAL LETTER S WITH CARON: Š
-\def\scaron {\char"0161 } % LATIN SMALL LETTER S WITH CARON: š
-\def\Tcedilla {\char"0162 } % LATIN CAPITAL LETTER T WITH CEDILLA: Ţ
-\def\tcedilla {\char"0163 } % LATIN SMALL LETTER T WITH CEDILLA: ţ
-\def\Tcaron {\char"0164 } % LATIN CAPITAL LETTER T WITH CARON: Ť
-\def\tcaron {\char"0165 } % LATIN SMALL LETTER T WITH CARON: ť
-\def\Tstroke {\char"0166 } % LATIN CAPITAL LETTER T WITH STROKE: Ŧ
-\def\tstroke {\char"0167 } % LATIN SMALL LETTER T WITH STROKE: ŧ
-\def\Utilde {\char"0168 } % LATIN CAPITAL LETTER U WITH TILDE: Ũ
-\def\utilde {\char"0169 } % LATIN SMALL LETTER U WITH TILDE: ũ
-\def\Umacron {\char"016A } % LATIN CAPITAL LETTER U WITH MACRON: Ū
-\def\umacron {\char"016B } % LATIN SMALL LETTER U WITH MACRON: ū
-\def\Ubreve {\char"016C } % LATIN CAPITAL LETTER U WITH BREVE: Ŭ
-\def\ubreve {\char"016D } % LATIN SMALL LETTER U WITH BREVE: ŭ
-\def\Uring {\char"016E } % LATIN CAPITAL LETTER U WITH RING ABOVE: Ů
-\def\uring {\char"016F } % LATIN SMALL LETTER U WITH RING ABOVE: ů
-\def\Uhungarumlaut {\char"0170 } % LATIN CAPITAL LETTER U WITH DOUBLE ACUTE: Ű
-\def\uhungarumlaut {\char"0171 } % LATIN SMALL LETTER U WITH DOUBLE ACUTE: ű
-\def\Uogonek {\char"0172 } % LATIN CAPITAL LETTER U WITH OGONEK: Ų
-\def\uogonek {\char"0173 } % LATIN SMALL LETTER U WITH OGONEK: ų
-\def\Wcircumflex {\char"0174 } % LATIN CAPITAL LETTER W WITH CIRCUMFLEX: Ŵ
-\def\wcircumflex {\char"0175 } % LATIN SMALL LETTER W WITH CIRCUMFLEX: ŵ
-\def\Ycircumflex {\char"0176 } % LATIN CAPITAL LETTER Y WITH CIRCUMFLEX: Ŷ
-\def\ycircumflex {\char"0177 } % LATIN SMALL LETTER Y WITH CIRCUMFLEX: ŷ
-\def\Ydiaeresis {\char"0178 } % LATIN CAPITAL LETTER Y WITH DIAERESIS: Ÿ
-\def\Zacute {\char"0179 } % LATIN CAPITAL LETTER Z WITH ACUTE: Ź
-\def\zacute {\char"017A } % LATIN SMALL LETTER Z WITH ACUTE: ź
-\def\Zdotaccent {\char"017B } % LATIN CAPITAL LETTER Z WITH DOT ABOVE: Ż
-\def\zdotaccent {\char"017C } % LATIN SMALL LETTER Z WITH DOT ABOVE: ż
-\def\Zcaron {\char"017D } % LATIN CAPITAL LETTER Z WITH CARON: Ž
-\def\zcaron {\char"017E } % LATIN SMALL LETTER Z WITH CARON: ž
-\def\slong {\char"017F } % LATIN SMALL LETTER LONG S: ſ
-\def\bstroke {\char"0180 } % LATIN SMALL LETTER B WITH STROKE: ƀ
-\def\Bhook {\char"0181 } % LATIN CAPITAL LETTER B WITH HOOK: Ɓ
-\def\Chook {\char"0187 } % LATIN CAPITAL LETTER C WITH HOOK: Ƈ
-\def\chook {\char"0188 } % LATIN SMALL LETTER C WITH HOOK: ƈ
-\def\Dafrican {\char"0189 } % LATIN CAPITAL LETTER AFRICAN D: Ɖ
-\def\Dhook {\char"018A } % LATIN CAPITAL LETTER D WITH HOOK: Ɗ
-\def\Schwa {\char"018F } % LATIN CAPITAL LETTER SCHWA: Ə
-\def\Fhook {\char"0191 } % LATIN CAPITAL LETTER F WITH HOOK: Ƒ
-\def\fhook {\char"0192 } % LATIN SMALL LETTER F WITH HOOK: ƒ
-\def\Ghook {\char"0193 } % LATIN CAPITAL LETTER G WITH HOOK: Ɠ
-\def\Istroke {\char"0197 } % LATIN CAPITAL LETTER I WITH STROKE: Ɨ
-\def\Khook {\char"0198 } % LATIN CAPITAL LETTER K WITH HOOK: Ƙ
-\def\khook {\char"0199 } % LATIN SMALL LETTER K WITH HOOK: ƙ
-\def\lbar {\char"019A } % LATIN SMALL LETTER L WITH BAR: ƚ
-\def\Ohorn {\char"01A0 } % LATIN CAPITAL LETTER O WITH HORN: Ơ
-\def\ohorn {\char"01A1 } % LATIN SMALL LETTER O WITH HORN: ơ
-\def\Phook {\char"01A4 } % LATIN CAPITAL LETTER P WITH HOOK: Ƥ
-\def\phook {\char"01A5 } % LATIN SMALL LETTER P WITH HOOK: ƥ
-\def\Thook {\char"01AC } % LATIN CAPITAL LETTER T WITH HOOK: Ƭ
-\def\thook {\char"01AD } % LATIN SMALL LETTER T WITH HOOK: ƭ
-\def\Uhorn {\char"01AF } % LATIN CAPITAL LETTER U WITH HORN: Ư
-\def\uhorn {\char"01B0 } % LATIN SMALL LETTER U WITH HORN: ư
-\def\Uhook {\char"01B2 } % LATIN CAPITAL LETTER V WITH HOOK: Ʋ
-\def\Yhook {\char"01B3 } % LATIN CAPITAL LETTER Y WITH HOOK: Ƴ
-\def\yhook {\char"01B4 } % LATIN SMALL LETTER Y WITH HOOK: ƴ
-\def\Zstroke {\char"01B5 } % LATIN CAPITAL LETTER Z WITH STROKE: Ƶ
-\def\zstroke {\char"01B6 } % LATIN SMALL LETTER Z WITH STROKE: ƶ
-\def\DZcaronligature {\char"01C4 } % LATIN CAPITAL LETTER DZ WITH CARON: DŽ
-\def\Dzcaronligature {\char"01C5 } % LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON: Dž
-\def\dzcaronligature {\char"01C6 } % LATIN SMALL LETTER DZ WITH CARON: dž
-\def\LJligature {\char"01C7 } % LATIN CAPITAL LETTER LJ: LJ
-\def\Ljligature {\char"01C8 } % LATIN CAPITAL LETTER L WITH SMALL LETTER J: Lj
-\def\ljligature {\char"01C9 } % LATIN SMALL LETTER LJ: lj
-\def\NJligature {\char"01CA } % LATIN CAPITAL LETTER NJ: NJ
-\def\Njligature {\char"01CB } % LATIN CAPITAL LETTER N WITH SMALL LETTER J: Nj
-\def\njligature {\char"01CC } % LATIN SMALL LETTER NJ: nj
-\def\Acaron {\char"01CD } % LATIN CAPITAL LETTER A WITH CARON: Ǎ
-\def\acaron {\char"01CE } % LATIN SMALL LETTER A WITH CARON: ǎ
-\def\Icaron {\char"01CF } % LATIN CAPITAL LETTER I WITH CARON: Ǐ
-\def\icaron {\char"01D0 } % LATIN SMALL LETTER I WITH CARON: ǐ
-\def\Ocaron {\char"01D1 } % LATIN CAPITAL LETTER O WITH CARON: Ǒ
-\def\ocaron {\char"01D2 } % LATIN SMALL LETTER O WITH CARON: ǒ
-\def\Ucaron {\char"01D3 } % LATIN CAPITAL LETTER U WITH CARON: Ǔ
-\def\ucaron {\char"01D4 } % LATIN SMALL LETTER U WITH CARON: ǔ
-\def\Udiaeresismacron {\char"01D5 } % LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON: Ǖ
-\def\udiaeresismacron {\char"01D6 } % LATIN SMALL LETTER U WITH DIAERESIS AND MACRON: ǖ
-\def\Udiaeresisacute {\char"01D7 } % LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE: Ǘ
-\def\udiaeresisacute {\char"01D8 } % LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE: ǘ
-\def\Udiaeresiscaron {\char"01D9 } % LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON: Ǚ
-\def\udiaeresiscaron {\char"01DA } % LATIN SMALL LETTER U WITH DIAERESIS AND CARON: ǚ
-\def\Udiaeresisgrave {\char"01DB } % LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE: Ǜ
-\def\udiaeresisgrave {\char"01DC } % LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE: ǜ
-\def\Adiaeresismacron {\char"01DE } % LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON: Ǟ
-\def\adiaeresismacron {\char"01DF } % LATIN SMALL LETTER A WITH DIAERESIS AND MACRON: ǟ
-\def\Adotaccentmacron {\char"01E0 } % LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON: Ǡ
-\def\adotaccentmacron {\char"01E1 } % LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON: ǡ
-\def\AEmacron {\char"01E2 } % LATIN CAPITAL LETTER AE WITH MACRON: Ǣ
-\def\aemacron {\char"01E3 } % LATIN SMALL LETTER AE WITH MACRON: ǣ
-\def\Gstroke {\char"01E4 } % LATIN CAPITAL LETTER G WITH STROKE: Ǥ
-\def\gstroke {\char"01E5 } % LATIN SMALL LETTER G WITH STROKE: ǥ
-\def\Gcaron {\char"01E6 } % LATIN CAPITAL LETTER G WITH CARON: Ǧ
-\def\gcaron {\char"01E7 } % LATIN SMALL LETTER G WITH CARON: ǧ
-\def\Kcaron {\char"01E8 } % LATIN CAPITAL LETTER K WITH CARON: Ǩ
-\def\kcaron {\char"01E9 } % LATIN SMALL LETTER K WITH CARON: ǩ
-\def\Oogonek {\char"01EA } % LATIN CAPITAL LETTER O WITH OGONEK: Ǫ
-\def\oogonek {\char"01EB } % LATIN SMALL LETTER O WITH OGONEK: ǫ
-\def\Oogonekmacron {\char"01EC } % LATIN CAPITAL LETTER O WITH OGONEK AND MACRON: Ǭ
-\def\oogonekmacron {\char"01ED } % LATIN SMALL LETTER O WITH OGONEK AND MACRON: ǭ
-\def\jcaron {\char"01F0 } % LATIN SMALL LETTER J WITH CARON: ǰ
-\def\DZligature {\char"01F1 } % LATIN CAPITAL LETTER DZ: DZ
-\def\Dzligature {\char"01F2 } % LATIN CAPITAL LETTER D WITH SMALL LETTER Z: Dz
-\def\dzligature {\char"01F3 } % LATIN SMALL LETTER DZ: dz
-\def\Gacute {\char"01F4 } % LATIN CAPITAL LETTER G WITH ACUTE: Ǵ
-\def\gacute {\char"01F5 } % LATIN SMALL LETTER G WITH ACUTE: ǵ
-\def\Ngrave {\char"01F8 } % LATIN CAPITAL LETTER N WITH GRAVE: Ǹ
-\def\ngrave {\char"01F9 } % LATIN SMALL LETTER N WITH GRAVE: ǹ
-\def\Aringacute {\char"01FA } % LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE: Ǻ
-\def\aringacute {\char"01FB } % LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE: ǻ
-\def\AEacute {\char"01FC } % LATIN CAPITAL LETTER AE WITH ACUTE: Ǽ
-\def\aeacute {\char"01FD } % LATIN SMALL LETTER AE WITH ACUTE: ǽ
-\def\Ostrokeacute {\char"01FE } % LATIN CAPITAL LETTER O WITH STROKE AND ACUTE: Ǿ
-\def\ostrokeacute {\char"01FF } % LATIN SMALL LETTER O WITH STROKE AND ACUTE: ǿ
-\def\Adoublegrave {\char"0200 } % LATIN CAPITAL LETTER A WITH DOUBLE GRAVE: Ȁ
-\def\adoublegrave {\char"0201 } % LATIN SMALL LETTER A WITH DOUBLE GRAVE: ȁ
-\def\Ainvertedbreve {\char"0202 } % LATIN CAPITAL LETTER A WITH INVERTED BREVE: Ȃ
-\def\ainvertedbreve {\char"0203 } % LATIN SMALL LETTER A WITH INVERTED BREVE: ȃ
-\def\Edoublegrave {\char"0204 } % LATIN CAPITAL LETTER E WITH DOUBLE GRAVE: Ȅ
-\def\edoublegrave {\char"0205 } % LATIN SMALL LETTER E WITH DOUBLE GRAVE: ȅ
-\def\Einvertedbreve {\char"0206 } % LATIN CAPITAL LETTER E WITH INVERTED BREVE: Ȇ
-\def\einvertedbreve {\char"0207 } % LATIN SMALL LETTER E WITH INVERTED BREVE: ȇ
-\def\Idoublegrave {\char"0208 } % LATIN CAPITAL LETTER I WITH DOUBLE GRAVE: Ȉ
-\def\idoublegrave {\char"0209 } % LATIN SMALL LETTER I WITH DOUBLE GRAVE: ȉ
-\def\Iinvertedbreve {\char"020A } % LATIN CAPITAL LETTER I WITH INVERTED BREVE: Ȋ
-\def\iinvertedbreve {\char"020B } % LATIN SMALL LETTER I WITH INVERTED BREVE: ȋ
-\def\Odoublegrave {\char"020C } % LATIN CAPITAL LETTER O WITH DOUBLE GRAVE: Ȍ
-\def\odoublegrave {\char"020D } % LATIN SMALL LETTER O WITH DOUBLE GRAVE: ȍ
-\def\Oinvertedbreve {\char"020E } % LATIN CAPITAL LETTER O WITH INVERTED BREVE: Ȏ
-\def\oinvertedbreve {\char"020F } % LATIN SMALL LETTER O WITH INVERTED BREVE: ȏ
-\def\Rdoublegrave {\char"0210 } % LATIN CAPITAL LETTER R WITH DOUBLE GRAVE: Ȑ
-\def\rdoublegrave {\char"0211 } % LATIN SMALL LETTER R WITH DOUBLE GRAVE: ȑ
-\def\Rinvertedbreve {\char"0212 } % LATIN CAPITAL LETTER R WITH INVERTED BREVE: Ȓ
-\def\rinvertedbreve {\char"0213 } % LATIN SMALL LETTER R WITH INVERTED BREVE: ȓ
-\def\Udoublegrave {\char"0214 } % LATIN CAPITAL LETTER U WITH DOUBLE GRAVE: Ȕ
-\def\udoublegrave {\char"0215 } % LATIN SMALL LETTER U WITH DOUBLE GRAVE: ȕ
-\def\Uinvertedbreve {\char"0216 } % LATIN CAPITAL LETTER U WITH INVERTED BREVE: Ȗ
-\def\uinvertedbreve {\char"0217 } % LATIN SMALL LETTER U WITH INVERTED BREVE: ȗ
-\def\Scommaaccent {\char"0218 } % LATIN CAPITAL LETTER S WITH COMMA BELOW: Ș
-\def\scommaaccent {\char"0219 } % LATIN SMALL LETTER S WITH COMMA BELOW: ș
-\def\Tcommaaccent {\char"021A } % LATIN CAPITAL LETTER T WITH COMMA BELOW: Ț
-\def\tcommaaccent {\char"021B } % LATIN SMALL LETTER T WITH COMMA BELOW: ț
-\def\Hcaron {\char"021E } % LATIN CAPITAL LETTER H WITH CARON: Ȟ
-\def\hcaron {\char"021F } % LATIN SMALL LETTER H WITH CARON: ȟ
-\def\dcurl {\char"0221 } % LATIN SMALL LETTER D WITH CURL: ȡ
-\def\Zhook {\char"0224 } % LATIN CAPITAL LETTER Z WITH HOOK: Ȥ
-\def\zhook {\char"0225 } % LATIN SMALL LETTER Z WITH HOOK: ȥ
-\def\Adotaccent {\char"0226 } % LATIN CAPITAL LETTER A WITH DOT ABOVE: Ȧ
-\def\adotaccent {\char"0227 } % LATIN SMALL LETTER A WITH DOT ABOVE: ȧ
-\def\Ecedilla {\char"0228 } % LATIN CAPITAL LETTER E WITH CEDILLA: Ȩ
-\def\ecedilla {\char"0229 } % LATIN SMALL LETTER E WITH CEDILLA: ȩ
-\def\Odiaeresismacron {\char"022A } % LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON: Ȫ
-\def\odiaeresismacron {\char"022B } % LATIN SMALL LETTER O WITH DIAERESIS AND MACRON: ȫ
-\def\Otildemacron {\char"022C } % LATIN CAPITAL LETTER O WITH TILDE AND MACRON: Ȭ
-\def\otildemacron {\char"022D } % LATIN SMALL LETTER O WITH TILDE AND MACRON: ȭ
-\def\Odotaccent {\char"022E } % LATIN CAPITAL LETTER O WITH DOT ABOVE: Ȯ
-\def\odotaccent {\char"022F } % LATIN SMALL LETTER O WITH DOT ABOVE: ȯ
-\def\Odotaccentmacron {\char"0230 } % LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON: Ȱ
-\def\odotaccentmacron {\char"0231 } % LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON: ȱ
-\def\Ymacron {\char"0232 } % LATIN CAPITAL LETTER Y WITH MACRON: Ȳ
-\def\ymacron {\char"0233 } % LATIN SMALL LETTER Y WITH MACRON: ȳ
-\def\lcurl {\char"0234 } % LATIN SMALL LETTER L WITH CURL: ȴ
-\def\ncurl {\char"0235 } % LATIN SMALL LETTER N WITH CURL: ȵ
-\def\tcurl {\char"0236 } % LATIN SMALL LETTER T WITH CURL: ȶ
-\def\dotlessj {\char"0237 } % LATIN SMALL LETTER DOTLESS J: ȷ
-\def\Astroke {\char"023A } % LATIN CAPITAL LETTER A WITH STROKE: Ⱥ
-\def\Cstroke {\char"023B } % LATIN CAPITAL LETTER C WITH STROKE: Ȼ
-\def\cstroke {\char"023C } % LATIN SMALL LETTER C WITH STROKE: ȼ
-\def\Lbar {\char"023D } % LATIN CAPITAL LETTER L WITH BAR: Ƚ
-\def\bhook {\char"0253 } % LATIN SMALL LETTER B WITH HOOK: ɓ
-\def\ccurl {\char"0255 } % LATIN SMALL LETTER C WITH CURL: ɕ
-\def\dtail {\char"0256 } % LATIN SMALL LETTER D WITH TAIL: ɖ
-\def\dhook {\char"0257 } % LATIN SMALL LETTER D WITH HOOK: ɗ
-\def\schwa {\char"0259 } % LATIN SMALL LETTER SCHWA: ə
-\def\schwahook {\char"025A } % LATIN SMALL LETTER SCHWA WITH HOOK: ɚ
-\def\dotlessjstroke {\char"025F } % LATIN SMALL LETTER DOTLESS J WITH STROKE: ɟ
-\def\textcircumflex {\char"02C6 } % MODIFIER LETTER CIRCUMFLEX ACCENT: ˆ
-\def\textcaron {\char"02C7 } % CARON: ˇ
-\def\textbreve {\char"02D8 } % BREVE: ˘
-\def\textdotaccent {\char"02D9 } % DOT ABOVE: ˙
-\def\textring {\char"02DA } % RING ABOVE: ˚
-\def\textogonek {\char"02DB } % OGONEK: ˛
-\def\texttilde {\char"02DC } % SMALL TILDE: ˜
-\def\texthungarumlaut {\char"02DD } % DOUBLE ACUTE ACCENT: ˝
-\def\greektonos {\char"0384 } % GREEK TONOS: ΄
-\def\greekdialytikatonos {\char"0385 } % GREEK DIALYTIKA TONOS: ΅
-\def\greekAlphatonos {\char"0386 } % GREEK CAPITAL LETTER ALPHA WITH TONOS: Ά
-\def\greekEpsilontonos {\char"0388 } % GREEK CAPITAL LETTER EPSILON WITH TONOS: Έ
-\def\greekEtatonos {\char"0389 } % GREEK CAPITAL LETTER ETA WITH TONOS: Ή
-\def\greekIotatonos {\char"038A } % GREEK CAPITAL LETTER IOTA WITH TONOS: Ί
-\def\greekOmicrontonos {\char"038C } % GREEK CAPITAL LETTER OMICRON WITH TONOS: Ό
-\def\greekUpsilontonos {\char"038E } % GREEK CAPITAL LETTER UPSILON WITH TONOS: Ύ
-\def\greekOmegatonos {\char"038F } % GREEK CAPITAL LETTER OMEGA WITH TONOS: Ώ
-\def\greekiotadialytikatonos {\char"0390 } % GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS: ΐ
-\def\greekAlpha {\char"0391 } % GREEK CAPITAL LETTER ALPHA: Α
-\def\greekBeta {\char"0392 } % GREEK CAPITAL LETTER BETA: Β
-\def\greekGamma {\char"0393 } % GREEK CAPITAL LETTER GAMMA: Γ
-\def\greekDelta {\char"0394 } % GREEK CAPITAL LETTER DELTA: Δ
-\def\greekEpsilon {\char"0395 } % GREEK CAPITAL LETTER EPSILON: Ε
-\def\greekZeta {\char"0396 } % GREEK CAPITAL LETTER ZETA: Ζ
-\def\greekEta {\char"0397 } % GREEK CAPITAL LETTER ETA: Η
-\def\greekTheta {\char"0398 } % GREEK CAPITAL LETTER THETA: Θ
-\def\greekIota {\char"0399 } % GREEK CAPITAL LETTER IOTA: Ι
-\def\greekKappa {\char"039A } % GREEK CAPITAL LETTER KAPPA: Κ
-\def\greekLambda {\char"039B } % GREEK CAPITAL LETTER LAMDA: Λ
-\def\greekMu {\char"039C } % GREEK CAPITAL LETTER MU: Μ
-\def\greekNu {\char"039D } % GREEK CAPITAL LETTER NU: Ν
-\def\greekXi {\char"039E } % GREEK CAPITAL LETTER XI: Ξ
-\def\greekOmicron {\char"039F } % GREEK CAPITAL LETTER OMICRON: Ο
-\def\greekPi {\char"03A0 } % GREEK CAPITAL LETTER PI: Π
-\def\greekRho {\char"03A1 } % GREEK CAPITAL LETTER RHO: Ρ
-\def\greekSigma {\char"03A3 } % GREEK CAPITAL LETTER SIGMA: Σ
-\def\greekTau {\char"03A4 } % GREEK CAPITAL LETTER TAU: Τ
-\def\greekUpsilon {\char"03A5 } % GREEK CAPITAL LETTER UPSILON: Υ
-\def\greekPhi {\char"03A6 } % GREEK CAPITAL LETTER PHI: Φ
-\def\greekChi {\char"03A7 } % GREEK CAPITAL LETTER CHI: Χ
-\def\greekPsi {\char"03A8 } % GREEK CAPITAL LETTER PSI: Ψ
-\def\greekOmega {\char"03A9 } % GREEK CAPITAL LETTER OMEGA: Ω
-\def\greekIotadialytika {\char"03AA } % GREEK CAPITAL LETTER IOTA WITH DIALYTIKA: Ϊ
-\def\greekUpsilondialytika {\char"03AB } % GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA: Ϋ
-\def\greekalphatonos {\char"03AC } % GREEK SMALL LETTER ALPHA WITH TONOS: ά
-\def\greekepsilontonos {\char"03AD } % GREEK SMALL LETTER EPSILON WITH TONOS: έ
-\def\greeketatonos {\char"03AE } % GREEK SMALL LETTER ETA WITH TONOS: ή
-\def\greekiotatonos {\char"03AF } % GREEK SMALL LETTER IOTA WITH TONOS: ί
-\def\greekupsilondialytikatonos {\char"03B0 } % GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS: ΰ
-\def\greekalpha {\char"03B1 } % GREEK SMALL LETTER ALPHA: α
-\def\greekbeta {\char"03B2 } % GREEK SMALL LETTER BETA: β
-\def\greekgamma {\char"03B3 } % GREEK SMALL LETTER GAMMA: γ
-\def\greekdelta {\char"03B4 } % GREEK SMALL LETTER DELTA: δ
-\def\greekepsilon {\char"03B5 } % GREEK SMALL LETTER EPSILON: ε
-\def\greekzeta {\char"03B6 } % GREEK SMALL LETTER ZETA: ζ
-\def\greeketa {\char"03B7 } % GREEK SMALL LETTER ETA: η
-\def\greektheta {\char"03B8 } % GREEK SMALL LETTER THETA: θ
-\def\greekiota {\char"03B9 } % GREEK SMALL LETTER IOTA: ι
-\def\greekkappa {\char"03BA } % GREEK SMALL LETTER KAPPA: κ
-\def\greeklambda {\char"03BB } % GREEK SMALL LETTER LAMDA: λ
-\def\greekmu {\char"03BC } % GREEK SMALL LETTER MU: μ
-\def\greeknu {\char"03BD } % GREEK SMALL LETTER NU: ν
-\def\greekxi {\char"03BE } % GREEK SMALL LETTER XI: ξ
-\def\greekomicron {\char"03BF } % GREEK SMALL LETTER OMICRON: ο
-\def\greekpi {\char"03C0 } % GREEK SMALL LETTER PI: π
-\def\greekrho {\char"03C1 } % GREEK SMALL LETTER RHO: ρ
-\def\greekfinalsigma {\char"03C2 } % GREEK SMALL LETTER FINAL SIGMA: ς
-\def\greeksigma {\char"03C3 } % GREEK SMALL LETTER SIGMA: σ
-\def\greektau {\char"03C4 } % GREEK SMALL LETTER TAU: τ
-\def\greekupsilon {\char"03C5 } % GREEK SMALL LETTER UPSILON: υ
-\def\greekphi {\char"03C6 } % GREEK SMALL LETTER PHI: φ
-\def\greekchi {\char"03C7 } % GREEK SMALL LETTER CHI: χ
-\def\greekpsi {\char"03C8 } % GREEK SMALL LETTER PSI: ψ
-\def\greekomega {\char"03C9 } % GREEK SMALL LETTER OMEGA: ω
-\def\greekiotadialytika {\char"03CA } % GREEK SMALL LETTER IOTA WITH DIALYTIKA: ϊ
-\def\greekupsilondiaeresis {\char"03CB } % GREEK SMALL LETTER UPSILON WITH DIALYTIKA: ϋ
-\def\greekomicrontonos {\char"03CC } % GREEK SMALL LETTER OMICRON WITH TONOS: ό
-\def\greekupsilontonos {\char"03CD } % GREEK SMALL LETTER UPSILON WITH TONOS: ύ
-\def\greekomegatonos {\char"03CE } % GREEK SMALL LETTER OMEGA WITH TONOS: ώ
-\def\greekthetaalt {\char"03D1 } % GREEK THETA SYMBOL: ϑ
-\def\greekphialt {\char"03D5 } % GREEK PHI SYMBOL: ϕ
-\def\greekpialt {\char"03D6 } % GREEK PI SYMBOL: ϖ
-\def\greekkoppa {\char"03D9 } % GREEK SMALL LETTER ARCHAIC KOPPA: ϙ
-\def\greekstigma {\char"03DB } % GREEK SMALL LETTER STIGMA: ϛ
-\def\greekdigamma {\char"03DD } % GREEK SMALL LETTER DIGAMMA: ϝ
-\def\greeknumkoppa {\char"03DF } % GREEK SMALL LETTER KOPPA: ϟ
-\def\greeksampi {\char"03E1 } % GREEK SMALL LETTER SAMPI: ϡ
-\def\greekrhoalt {\char"03F1 } % GREEK RHO SYMBOL: ϱ
-\def\greeksigmalunate {\char"03F2 } % GREEK LUNATE SIGMA SYMBOL: ϲ
-\def\greekepsilonalt {\char"03F5 } % GREEK LUNATE EPSILON SYMBOL: ϵ
-\def\greekSigmalunate {\char"03F9 } % GREEK CAPITAL LUNATE SIGMA SYMBOL: Ϲ
-\def\cyrillicEgrave {\char"0400 } % CYRILLIC CAPITAL LETTER IE WITH GRAVE: Ѐ
-\def\cyrillicYO {\char"0401 } % CYRILLIC CAPITAL LETTER IO: Ё
-\def\cyrillicDJE {\char"0402 } % CYRILLIC CAPITAL LETTER DJE: Ђ
-\def\cyrillicGJE {\char"0403 } % CYRILLIC CAPITAL LETTER GJE: Ѓ
-\def\cyrillicIE {\char"0404 } % CYRILLIC CAPITAL LETTER UKRAINIAN IE: Є
-\def\cyrillicDZE {\char"0405 } % CYRILLIC CAPITAL LETTER DZE: Ѕ
-\def\cyrillicII {\char"0406 } % CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I: І
-\def\cyrillicYI {\char"0407 } % CYRILLIC CAPITAL LETTER YI: Ї
-\def\cyrillicJE {\char"0408 } % CYRILLIC CAPITAL LETTER JE: Ј
-\def\cyrillicLJE {\char"0409 } % CYRILLIC CAPITAL LETTER LJE: Љ
-\def\cyrillicNJE {\char"040A } % CYRILLIC CAPITAL LETTER NJE: Њ
-\def\cyrillicTSHE {\char"040B } % CYRILLIC CAPITAL LETTER TSHE: Ћ
-\def\cyrillicKJE {\char"040C } % CYRILLIC CAPITAL LETTER KJE: Ќ
-\def\cyrillicIgrave {\char"040D } % CYRILLIC CAPITAL LETTER I WITH GRAVE: Ѝ
-\def\cyrillicUSHRT {\char"040E } % CYRILLIC CAPITAL LETTER SHORT U: Ў
-\def\cyrillicDZHE {\char"040F } % CYRILLIC CAPITAL LETTER DZHE: Џ
-\def\cyrillicA {\char"0410 } % CYRILLIC CAPITAL LETTER A: А
-\def\cyrillicB {\char"0411 } % CYRILLIC CAPITAL LETTER BE: Б
-\def\cyrillicV {\char"0412 } % CYRILLIC CAPITAL LETTER VE: В
-\def\cyrillicG {\char"0413 } % CYRILLIC CAPITAL LETTER GHE: Г
-\def\cyrillicD {\char"0414 } % CYRILLIC CAPITAL LETTER DE: Д
-\def\cyrillicE {\char"0415 } % CYRILLIC CAPITAL LETTER IE: Е
-\def\cyrillicZH {\char"0416 } % CYRILLIC CAPITAL LETTER ZHE: Ж
-\def\cyrillicZ {\char"0417 } % CYRILLIC CAPITAL LETTER ZE: З
-\def\cyrillicI {\char"0418 } % CYRILLIC CAPITAL LETTER I: И
-\def\cyrillicISHRT {\char"0419 } % CYRILLIC CAPITAL LETTER SHORT I: Й
-\def\cyrillicK {\char"041A } % CYRILLIC CAPITAL LETTER KA: К
-\def\cyrillicL {\char"041B } % CYRILLIC CAPITAL LETTER EL: Л
-\def\cyrillicM {\char"041C } % CYRILLIC CAPITAL LETTER EM: М
-\def\cyrillicN {\char"041D } % CYRILLIC CAPITAL LETTER EN: Н
-\def\cyrillicO {\char"041E } % CYRILLIC CAPITAL LETTER O: О
-\def\cyrillicP {\char"041F } % CYRILLIC CAPITAL LETTER PE: П
-\def\cyrillicR {\char"0420 } % CYRILLIC CAPITAL LETTER ER: Р
-\def\cyrillicS {\char"0421 } % CYRILLIC CAPITAL LETTER ES: С
-\def\cyrillicT {\char"0422 } % CYRILLIC CAPITAL LETTER TE: Т
-\def\cyrillicU {\char"0423 } % CYRILLIC CAPITAL LETTER U: У
-\def\cyrillicF {\char"0424 } % CYRILLIC CAPITAL LETTER EF: Ф
-\def\cyrillicH {\char"0425 } % CYRILLIC CAPITAL LETTER HA: Х
-\def\cyrillicC {\char"0426 } % CYRILLIC CAPITAL LETTER TSE: Ц
-\def\cyrillicCH {\char"0427 } % CYRILLIC CAPITAL LETTER CHE: Ч
-\def\cyrillicSH {\char"0428 } % CYRILLIC CAPITAL LETTER SHA: Ш
-\def\cyrillicSHCH {\char"0429 } % CYRILLIC CAPITAL LETTER SHCHA: Щ
-\def\cyrillicHRDSN {\char"042A } % CYRILLIC CAPITAL LETTER HARD SIGN: Ъ
-\def\cyrillicERY {\char"042B } % CYRILLIC CAPITAL LETTER YERU: Ы
-\def\cyrillicSFTSN {\char"042C } % CYRILLIC CAPITAL LETTER SOFT SIGN: Ь
-\def\cyrillicEREV {\char"042D } % CYRILLIC CAPITAL LETTER E: Э
-\def\cyrillicYU {\char"042E } % CYRILLIC CAPITAL LETTER YU: Ю
-\def\cyrillicYA {\char"042F } % CYRILLIC CAPITAL LETTER YA: Я
-\def\cyrillica {\char"0430 } % CYRILLIC SMALL LETTER A: а
-\def\cyrillicb {\char"0431 } % CYRILLIC SMALL LETTER BE: б
-\def\cyrillicv {\char"0432 } % CYRILLIC SMALL LETTER VE: в
-\def\cyrillicg {\char"0433 } % CYRILLIC SMALL LETTER GHE: г
-\def\cyrillicd {\char"0434 } % CYRILLIC SMALL LETTER DE: д
-\def\cyrillice {\char"0435 } % CYRILLIC SMALL LETTER IE: е
-\def\cyrilliczh {\char"0436 } % CYRILLIC SMALL LETTER ZHE: ж
-\def\cyrillicz {\char"0437 } % CYRILLIC SMALL LETTER ZE: з
-\def\cyrillici {\char"0438 } % CYRILLIC SMALL LETTER I: и
-\def\cyrillicishrt {\char"0439 } % CYRILLIC SMALL LETTER SHORT I: й
-\def\cyrillick {\char"043A } % CYRILLIC SMALL LETTER KA: к
-\def\cyrillicl {\char"043B } % CYRILLIC SMALL LETTER EL: л
-\def\cyrillicm {\char"043C } % CYRILLIC SMALL LETTER EM: м
-\def\cyrillicn {\char"043D } % CYRILLIC SMALL LETTER EN: н
-\def\cyrillico {\char"043E } % CYRILLIC SMALL LETTER O: о
-\def\cyrillicp {\char"043F } % CYRILLIC SMALL LETTER PE: п
-\def\cyrillicr {\char"0440 } % CYRILLIC SMALL LETTER ER: р
-\def\cyrillics {\char"0441 } % CYRILLIC SMALL LETTER ES: с
-\def\cyrillict {\char"0442 } % CYRILLIC SMALL LETTER TE: т
-\def\cyrillicu {\char"0443 } % CYRILLIC SMALL LETTER U: у
-\def\cyrillicf {\char"0444 } % CYRILLIC SMALL LETTER EF: ф
-\def\cyrillich {\char"0445 } % CYRILLIC SMALL LETTER HA: х
-\def\cyrillicc {\char"0446 } % CYRILLIC SMALL LETTER TSE: ц
-\def\cyrillicch {\char"0447 } % CYRILLIC SMALL LETTER CHE: ч
-\def\cyrillicsh {\char"0448 } % CYRILLIC SMALL LETTER SHA: ш
-\def\cyrillicshch {\char"0449 } % CYRILLIC SMALL LETTER SHCHA: щ
-\def\cyrillichrdsn {\char"044A } % CYRILLIC SMALL LETTER HARD SIGN: ъ
-\def\cyrillicery {\char"044B } % CYRILLIC SMALL LETTER YERU: ы
-\def\cyrillicsftsn {\char"044C } % CYRILLIC SMALL LETTER SOFT SIGN: ь
-\def\cyrillicerev {\char"044D } % CYRILLIC SMALL LETTER E: э
-\def\cyrillicyu {\char"044E } % CYRILLIC SMALL LETTER YU: ю
-\def\cyrillicya {\char"044F } % CYRILLIC SMALL LETTER YA: я
-\def\cyrillicegrave {\char"0450 } % CYRILLIC SMALL LETTER IE WITH GRAVE: ѐ
-\def\cyrillicyo {\char"0451 } % CYRILLIC SMALL LETTER IO: ё
-\def\cyrillicdje {\char"0452 } % CYRILLIC SMALL LETTER DJE: ђ
-\def\cyrillicgje {\char"0453 } % CYRILLIC SMALL LETTER GJE: ѓ
-\def\cyrillicie {\char"0454 } % CYRILLIC SMALL LETTER UKRAINIAN IE: є
-\def\cyrillicdze {\char"0455 } % CYRILLIC SMALL LETTER DZE: ѕ
-\def\cyrillicii {\char"0456 } % CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I: і
-\def\cyrillicyi {\char"0457 } % CYRILLIC SMALL LETTER YI: ї
-\def\cyrillicje {\char"0458 } % CYRILLIC SMALL LETTER JE: ј
-\def\cyrilliclje {\char"0459 } % CYRILLIC SMALL LETTER LJE: љ
-\def\cyrillicnje {\char"045A } % CYRILLIC SMALL LETTER NJE: њ
-\def\cyrillictshe {\char"045B } % CYRILLIC SMALL LETTER TSHE: ћ
-\def\cyrillickje {\char"045C } % CYRILLIC SMALL LETTER KJE: ќ
-\def\cyrillicigrave {\char"045D } % CYRILLIC SMALL LETTER I WITH GRAVE: ѝ
-\def\cyrillicushrt {\char"045E } % CYRILLIC SMALL LETTER SHORT U: ў
-\def\cyrillicdzhe {\char"045F } % CYRILLIC SMALL LETTER DZHE: џ
-\def\cyrillicOMEGA {\char"0460 } % CYRILLIC CAPITAL LETTER OMEGA: Ѡ
-\def\cyrillicomega {\char"0461 } % CYRILLIC SMALL LETTER OMEGA: ѡ
-\def\cyrillicYAT {\char"0462 } % CYRILLIC CAPITAL LETTER YAT: Ѣ
-\def\cyrillicyat {\char"0463 } % CYRILLIC SMALL LETTER YAT: ѣ
-\def\cyrillicEiotified {\char"0464 } % CYRILLIC CAPITAL LETTER IOTIFIED E: Ѥ
-\def\cyrilliceiotified {\char"0465 } % CYRILLIC SMALL LETTER IOTIFIED E: ѥ
-\def\cyrillicLITTLEYUS {\char"0466 } % CYRILLIC CAPITAL LETTER LITTLE YUS: Ѧ
-\def\cyrilliclittleyus {\char"0467 } % CYRILLIC SMALL LETTER LITTLE YUS: ѧ
-\def\cyrillicLITTLEYUSiotified {\char"0468 } % CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS: Ѩ
-\def\cyrilliclittleyusiotified {\char"0469 } % CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS: ѩ
-\def\cyrillicBIGYUS {\char"046A } % CYRILLIC CAPITAL LETTER BIG YUS: Ѫ
-\def\cyrillicbigyus {\char"046B } % CYRILLIC SMALL LETTER BIG YUS: ѫ
-\def\cyrillicBIGYUSiotified {\char"046C } % CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS: Ѭ
-\def\cyrillicbigyusiotified {\char"046D } % CYRILLIC SMALL LETTER IOTIFIED BIG YUS: ѭ
-\def\cyrillicKSI {\char"046E } % CYRILLIC CAPITAL LETTER KSI: Ѯ
-\def\cyrillicksi {\char"046F } % CYRILLIC SMALL LETTER KSI: ѯ
-\def\cyrillicPSI {\char"0470 } % CYRILLIC CAPITAL LETTER PSI: Ѱ
-\def\cyrillicpsi {\char"0471 } % CYRILLIC SMALL LETTER PSI: ѱ
-\def\cyrillicFITA {\char"0472 } % CYRILLIC CAPITAL LETTER FITA: Ѳ
-\def\cyrillicfita {\char"0473 } % CYRILLIC SMALL LETTER FITA: ѳ
-\def\cyrillicIZHITSA {\char"0474 } % CYRILLIC CAPITAL LETTER IZHITSA: Ѵ
-\def\cyrillicizhitsa {\char"0475 } % CYRILLIC SMALL LETTER IZHITSA: ѵ
-\def\cyrillicIZHITSAdoublegrave {\char"0476 } % CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT: Ѷ
-\def\cyrillicizhitsadoublegrave {\char"0477 } % CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT: ѷ
-\def\cyrillicUK {\char"0478 } % CYRILLIC CAPITAL LETTER UK: Ѹ
-\def\cyrillicuk {\char"0479 } % CYRILLIC SMALL LETTER UK: ѹ
-\def\cyrillicOMEGAround {\char"047A } % CYRILLIC CAPITAL LETTER ROUND OMEGA: Ѻ
-\def\cyrillicomegaround {\char"047B } % CYRILLIC SMALL LETTER ROUND OMEGA: ѻ
-\def\cyrillicOMEGAtitlo {\char"047C } % CYRILLIC CAPITAL LETTER OMEGA WITH TITLO: Ѽ
-\def\cyrillicomegatitlo {\char"047D } % CYRILLIC SMALL LETTER OMEGA WITH TITLO: ѽ
-\def\cyrillicOT {\char"047E } % CYRILLIC CAPITAL LETTER OT: Ѿ
-\def\cyrillicot {\char"047F } % CYRILLIC SMALL LETTER OT: ѿ
-\def\cyrillicKOPPA {\char"0480 } % CYRILLIC CAPITAL LETTER KOPPA: Ҁ
-\def\cyrillickoppa {\char"0481 } % CYRILLIC SMALL LETTER KOPPA: ҁ
-\def\cyrillicTITLO {\char"0483 } % COMBINING CYRILLIC TITLO: ҃
-\def\cyrillicPALATALIZATION {\char"0484 } % COMBINING CYRILLIC PALATALIZATION: ҄
-\def\cyrillicDASIAPNEUMATA {\char"0485 } % COMBINING CYRILLIC DASIA PNEUMATA: ҅
-\def\cyrillicPSILIPNEUMATA {\char"0486 } % COMBINING CYRILLIC PSILI PNEUMATA: ҆
-\def\cyrillicISHRTtail {\char"048A } % CYRILLIC CAPITAL LETTER SHORT I WITH TAIL: Ҋ
-\def\cyrillicishrttail {\char"048B } % CYRILLIC SMALL LETTER SHORT I WITH TAIL: ҋ
-\def\cyrillicSEMISOFT {\char"048C } % CYRILLIC CAPITAL LETTER SEMISOFT SIGN: Ҍ
-\def\cyrillicsemisoft {\char"048D } % CYRILLIC SMALL LETTER SEMISOFT SIGN: ҍ
-\def\cyrillicERtick {\char"048E } % CYRILLIC CAPITAL LETTER ER WITH TICK: Ҏ
-\def\cyrillicertick {\char"048F } % CYRILLIC SMALL LETTER ER WITH TICK: ҏ
-\def\cyrillicGHEupturn {\char"0490 } % CYRILLIC CAPITAL LETTER GHE WITH UPTURN: Ґ
-\def\cyrillicgheupturn {\char"0491 } % CYRILLIC SMALL LETTER GHE WITH UPTURN: ґ
-\def\cyrillicGHEstroke {\char"0492 } % CYRILLIC CAPITAL LETTER GHE WITH STROKE: Ғ
-\def\cyrillicghestroke {\char"0493 } % CYRILLIC SMALL LETTER GHE WITH STROKE: ғ
-\def\cyrillicGHEmidhook {\char"0494 } % CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK: Ҕ
-\def\cyrillicghemidhook {\char"0495 } % CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK: ҕ
-\def\cyrillicZHEdescender {\char"0496 } % CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER: Җ
-\def\cyrilliczhedescender {\char"0497 } % CYRILLIC SMALL LETTER ZHE WITH DESCENDER: җ
-\def\cyrillicZDSC {\char"0498 } % CYRILLIC CAPITAL LETTER ZE WITH DESCENDER: Ҙ
-\def\cyrilliczdsc {\char"0499 } % CYRILLIC SMALL LETTER ZE WITH DESCENDER: ҙ
-\def\cyrillicKADC {\char"049A } % CYRILLIC CAPITAL LETTER KA WITH DESCENDER: Қ
-\def\cyrillickadc {\char"049B } % CYRILLIC SMALL LETTER KA WITH DESCENDER: қ
-\def\cyrillicKAvertstroke {\char"049C } % CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE: Ҝ
-\def\cyrillickavertstroke {\char"049D } % CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE: ҝ
-\def\cyrillicKAstroke {\char"049E } % CYRILLIC CAPITAL LETTER KA WITH STROKE: Ҟ
-\def\cyrillickastroke {\char"049F } % CYRILLIC SMALL LETTER KA WITH STROKE: ҟ
-\def\cyrillicKAbashkir {\char"04A0 } % CYRILLIC CAPITAL LETTER BASHKIR KA: Ҡ
-\def\cyrillickabashkir {\char"04A1 } % CYRILLIC SMALL LETTER BASHKIR KA: ҡ
-\def\cyrillicENDC {\char"04A2 } % CYRILLIC CAPITAL LETTER EN WITH DESCENDER: Ң
-\def\cyrillicendc {\char"04A3 } % CYRILLIC SMALL LETTER EN WITH DESCENDER: ң
-\def\cyrillicENGHE {\char"04A4 } % CYRILLIC CAPITAL LIGATURE EN GHE: Ҥ
-\def\cyrillicenghe {\char"04A5 } % CYRILLIC SMALL LIGATURE EN GHE: ҥ
-\def\cyrillicPEmidhook {\char"04A6 } % CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK: Ҧ
-\def\cyrillicpemidhook {\char"04A7 } % CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK: ҧ
-\def\cyrillicHA {\char"04A8 } % CYRILLIC CAPITAL LETTER ABKHASIAN HA: Ҩ
-\def\cyrillicha {\char"04A9 } % CYRILLIC SMALL LETTER ABKHASIAN HA: ҩ
-\def\cyrillicSDSC {\char"04AA } % CYRILLIC CAPITAL LETTER ES WITH DESCENDER: Ҫ
-\def\cyrillicsdsc {\char"04AB } % CYRILLIC SMALL LETTER ES WITH DESCENDER: ҫ
-\def\cyrillicTEDC {\char"04AC } % CYRILLIC CAPITAL LETTER TE WITH DESCENDER: Ҭ
-\def\cyrillictedc {\char"04AD } % CYRILLIC SMALL LETTER TE WITH DESCENDER: ҭ
-\def\cyrillicYstr {\char"04AE } % CYRILLIC CAPITAL LETTER STRAIGHT U: Ү
-\def\cyrillicystr {\char"04AF } % CYRILLIC SMALL LETTER STRAIGHT U: ү
-\def\cyrillicYstrstroke {\char"04B0 } % CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE: Ұ
-\def\cyrillicystrstroke {\char"04B1 } % CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE: ұ
-\def\cyrillicHADC {\char"04B2 } % CYRILLIC CAPITAL LETTER HA WITH DESCENDER: Ҳ
-\def\cyrillichadc {\char"04B3 } % CYRILLIC SMALL LETTER HA WITH DESCENDER: ҳ
-\def\cyrillicTETSE {\char"04B4 } % CYRILLIC CAPITAL LIGATURE TE TSE: Ҵ
-\def\cyrillictetse {\char"04B5 } % CYRILLIC SMALL LIGATURE TE TSE: ҵ
-\def\cyrillicCHEDC {\char"04B6 } % CYRILLIC CAPITAL LETTER CHE WITH DESCENDER: Ҷ
-\def\cyrillicchedc {\char"04B7 } % CYRILLIC SMALL LETTER CHE WITH DESCENDER: ҷ
-\def\cyrillicCHEvertstroke {\char"04B8 } % CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE: Ҹ
-\def\cyrillicchevertstroke {\char"04B9 } % CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE: ҹ
-\def\cyrillicSHHA {\char"04BA } % CYRILLIC CAPITAL LETTER SHHA: Һ
-\def\cyrillicshha {\char"04BB } % CYRILLIC SMALL LETTER SHHA: һ
-\def\cyrillicCHEabkhasian {\char"04BC } % CYRILLIC CAPITAL LETTER ABKHASIAN CHE: Ҽ
-\def\cyrilliccheabkhasian {\char"04BD } % CYRILLIC SMALL LETTER ABKHASIAN CHE: ҽ
-\def\cyrillicCHEDCabkhasian {\char"04BE } % CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER: Ҿ
-\def\cyrillicchedcabkhasian {\char"04BF } % CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER: ҿ
-\def\cyrillicPALOCHKA {\char"04C0 } % CYRILLIC LETTER PALOCHKA: Ӏ
-\def\cyrillicZHEbreve {\char"04C1 } % CYRILLIC CAPITAL LETTER ZHE WITH BREVE: Ӂ
-\def\cyrilliczhebreve {\char"04C2 } % CYRILLIC SMALL LETTER ZHE WITH BREVE: ӂ
-\def\cyrillicKAhook {\char"04C3 } % CYRILLIC CAPITAL LETTER KA WITH HOOK: Ӄ
-\def\cyrillickahook {\char"04C4 } % CYRILLIC SMALL LETTER KA WITH HOOK: ӄ
-\def\cyrillicELtail {\char"04C5 } % CYRILLIC CAPITAL LETTER EL WITH TAIL: Ӆ
-\def\cyrilliceltail {\char"04C6 } % CYRILLIC SMALL LETTER EL WITH TAIL: ӆ
-\def\cyrillicENhook {\char"04C7 } % CYRILLIC CAPITAL LETTER EN WITH HOOK: Ӈ
-\def\cyrillicenhook {\char"04C8 } % CYRILLIC SMALL LETTER EN WITH HOOK: ӈ
-\def\cyrillicENtail {\char"04C9 } % CYRILLIC CAPITAL LETTER EN WITH TAIL: Ӊ
-\def\cyrillicentail {\char"04CA } % CYRILLIC SMALL LETTER EN WITH TAIL: ӊ
-\def\cyrillicCHEkhakassian {\char"04CB } % CYRILLIC CAPITAL LETTER KHAKASSIAN CHE: Ӌ
-\def\cyrillicchekhakassian {\char"04CC } % CYRILLIC SMALL LETTER KHAKASSIAN CHE: ӌ
-\def\cyrillicEMtail {\char"04CD } % CYRILLIC CAPITAL LETTER EM WITH TAIL: Ӎ
-\def\cyrillicemtail {\char"04CE } % CYRILLIC SMALL LETTER EM WITH TAIL: ӎ
-\def\cyrillicAbreve {\char"04D0 } % CYRILLIC CAPITAL LETTER A WITH BREVE: Ӑ
-\def\cyrillicabreve {\char"04D1 } % CYRILLIC SMALL LETTER A WITH BREVE: ӑ
-\def\cyrillicAdiaeresis {\char"04D2 } % CYRILLIC CAPITAL LETTER A WITH DIAERESIS: Ӓ
-\def\cyrillicadiaeresis {\char"04D3 } % CYRILLIC SMALL LETTER A WITH DIAERESIS: ӓ
-\def\cyrillicAE {\char"04D4 } % CYRILLIC CAPITAL LIGATURE A IE: Ӕ
-\def\cyrillicae {\char"04D5 } % CYRILLIC SMALL LIGATURE A IE: ӕ
-\def\cyrillicEbreve {\char"04D6 } % CYRILLIC CAPITAL LETTER IE WITH BREVE: Ӗ
-\def\cyrillicebreve {\char"04D7 } % CYRILLIC SMALL LETTER IE WITH BREVE: ӗ
-\def\cyrillicSCHWA {\char"04D8 } % CYRILLIC CAPITAL LETTER SCHWA: Ә
-\def\cyrillicschwa {\char"04D9 } % CYRILLIC SMALL LETTER SCHWA: ә
-\def\cyrillicSCHWAdiaeresis {\char"04DA } % CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS: Ӛ
-\def\cyrillicschwadiaeresis {\char"04DB } % CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS: ӛ
-\def\cyrillicZHEdiaeresis {\char"04DC } % CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS: Ӝ
-\def\cyrilliczhediaeresis {\char"04DD } % CYRILLIC SMALL LETTER ZHE WITH DIAERESIS: ӝ
-\def\cyrillicZEdiaeresis {\char"04DE } % CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS: Ӟ
-\def\cyrilliczediaeresis {\char"04DF } % CYRILLIC SMALL LETTER ZE WITH DIAERESIS: ӟ
-\def\cyrillicDZEabkhasian {\char"04E0 } % CYRILLIC CAPITAL LETTER ABKHASIAN DZE: Ӡ
-\def\cyrillicdzeabkhasian {\char"04E1 } % CYRILLIC SMALL LETTER ABKHASIAN DZE: ӡ
-\def\cyrillicImacron {\char"04E2 } % CYRILLIC CAPITAL LETTER I WITH MACRON: Ӣ
-\def\cyrillicimacron {\char"04E3 } % CYRILLIC SMALL LETTER I WITH MACRON: ӣ
-\def\cyrillicIdiaeresis {\char"04E4 } % CYRILLIC CAPITAL LETTER I WITH DIAERESIS: Ӥ
-\def\cyrillicidiaeresis {\char"04E5 } % CYRILLIC SMALL LETTER I WITH DIAERESIS: ӥ
-\def\cyrillicOdiaeresis {\char"04E6 } % CYRILLIC CAPITAL LETTER O WITH DIAERESIS: Ӧ
-\def\cyrillicodiaeresis {\char"04E7 } % CYRILLIC SMALL LETTER O WITH DIAERESIS: ӧ
-\def\cyrillicObarred {\char"04E8 } % CYRILLIC CAPITAL LETTER BARRED O: Ө
-\def\cyrillicobarred {\char"04E9 } % CYRILLIC SMALL LETTER BARRED O: ө
-\def\cyrillicObarreddiaeresis {\char"04EA } % CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS: Ӫ
-\def\cyrillicobarreddiaeresis {\char"04EB } % CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS: ӫ
-\def\cyrillicEdiaeresis {\char"04EC } % CYRILLIC CAPITAL LETTER E WITH DIAERESIS: Ӭ
-\def\cyrillicediaeresis {\char"04ED } % CYRILLIC SMALL LETTER E WITH DIAERESIS: ӭ
-\def\cyrillicUmacron {\char"04EE } % CYRILLIC CAPITAL LETTER U WITH MACRON: Ӯ
-\def\cyrillicumacron {\char"04EF } % CYRILLIC SMALL LETTER U WITH MACRON: ӯ
-\def\cyrillicUdiaeresis {\char"04F0 } % CYRILLIC CAPITAL LETTER U WITH DIAERESIS: Ӱ
-\def\cyrillicudiaeresis {\char"04F1 } % CYRILLIC SMALL LETTER U WITH DIAERESIS: ӱ
-\def\cyrillicUdoubleacute {\char"04F2 } % CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE: Ӳ
-\def\cyrillicudoubleacute {\char"04F3 } % CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE: ӳ
-\def\cyrillicCHEdiaeresis {\char"04F4 } % CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS: Ӵ
-\def\cyrillicchediaeresis {\char"04F5 } % CYRILLIC SMALL LETTER CHE WITH DIAERESIS: ӵ
-\def\cyrillicYERUdiaeresis {\char"04F8 } % CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS: Ӹ
-\def\cyrillicyerudiaeresis {\char"04F9 } % CYRILLIC SMALL LETTER YERU WITH DIAERESIS: ӹ
-\def\hebrewAlef {\char"05D0 } % HEBREW LETTER ALEF: א
-\def\hebrewBet {\char"05D1 } % HEBREW LETTER BET: ב
-\def\hebrewGimel {\char"05D2 } % HEBREW LETTER GIMEL: ג
-\def\hebrewDalet {\char"05D3 } % HEBREW LETTER DALET: ד
-\def\hebrewHe {\char"05D4 } % HEBREW LETTER HE: ה
-\def\hebrewVav {\char"05D5 } % HEBREW LETTER VAV: ו
-\def\hebrewZayin {\char"05D6 } % HEBREW LETTER ZAYIN: ז
-\def\hebrewHet {\char"05D7 } % HEBREW LETTER HET: ח
-\def\hebrewTet {\char"05D8 } % HEBREW LETTER TET: ט
-\def\hebrewYod {\char"05D9 } % HEBREW LETTER YOD: י
-\def\hebrewKaffinal {\char"05DA } % HEBREW LETTER FINAL KAF: ך
-\def\hebrewKaf {\char"05DB } % HEBREW LETTER KAF: כ
-\def\hebrewLamed {\char"05DC } % HEBREW LETTER LAMED: ל
-\def\hebrewMemfinal {\char"05DD } % HEBREW LETTER FINAL MEM: ם
-\def\hebrewMem {\char"05DE } % HEBREW LETTER MEM: מ
-\def\hebrewNunfinal {\char"05DF } % HEBREW LETTER FINAL NUN: ן
-\def\hebrewNun {\char"05E0 } % HEBREW LETTER NUN: נ
-\def\hebrewSamekh {\char"05E1 } % HEBREW LETTER SAMEKH: ס
-\def\hebrewAyin {\char"05E2 } % HEBREW LETTER AYIN: ע
-\def\hebrewPefinal {\char"05E3 } % HEBREW LETTER FINAL PE: ף
-\def\hebrewPe {\char"05E4 } % HEBREW LETTER PE: פ
-\def\hebrewTsadifinal {\char"05E5 } % HEBREW LETTER FINAL TSADI: ץ
-\def\hebrewTsadi {\char"05E6 } % HEBREW LETTER TSADI: צ
-\def\hebrewQof {\char"05E7 } % HEBREW LETTER QOF: ק
-\def\hebrewResh {\char"05E8 } % HEBREW LETTER RESH: ר
-\def\hebrewShin {\char"05E9 } % HEBREW LETTER SHIN: ש
-\def\hebrewTav {\char"05EA } % HEBREW LETTER TAV: ת
-\def\Adotbelow {\char"1EA0 } % LATIN CAPITAL LETTER A WITH DOT BELOW: Ạ
-\def\adotbelow {\char"1EA1 } % LATIN SMALL LETTER A WITH DOT BELOW: ạ
-\def\Ahook {\char"1EA2 } % LATIN CAPITAL LETTER A WITH HOOK ABOVE: Ả
-\def\ahook {\char"1EA3 } % LATIN SMALL LETTER A WITH HOOK ABOVE: ả
-\def\Acircumflexacute {\char"1EA4 } % LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE: Ấ
-\def\acircumflexacute {\char"1EA5 } % LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE: ấ
-\def\Acircumflexgrave {\char"1EA6 } % LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE: Ầ
-\def\acircumflexgrave {\char"1EA7 } % LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE: ầ
-\def\Acircumflexhook {\char"1EA8 } % LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE: Ẩ
-\def\acircumflexhook {\char"1EA9 } % LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE: ẩ
-\def\Acircumflextilde {\char"1EAA } % LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE: Ẫ
-\def\acircumflextilde {\char"1EAB } % LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE: ẫ
-\def\Acircumflexdotbelow {\char"1EAC } % LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW: Ậ
-\def\acircumflexdotbelow {\char"1EAD } % LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW: ậ
-\def\Abreveacute {\char"1EAE } % LATIN CAPITAL LETTER A WITH BREVE AND ACUTE: Ắ
-\def\abreveacute {\char"1EAF } % LATIN SMALL LETTER A WITH BREVE AND ACUTE: ắ
-\def\Abrevegrave {\char"1EB0 } % LATIN CAPITAL LETTER A WITH BREVE AND GRAVE: Ằ
-\def\abrevegrave {\char"1EB1 } % LATIN SMALL LETTER A WITH BREVE AND GRAVE: ằ
-\def\Abrevehook {\char"1EB2 } % LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE: Ẳ
-\def\abrevehook {\char"1EB3 } % LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE: ẳ
-\def\Abrevetilde {\char"1EB4 } % LATIN CAPITAL LETTER A WITH BREVE AND TILDE: Ẵ
-\def\abrevetilde {\char"1EB5 } % LATIN SMALL LETTER A WITH BREVE AND TILDE: ẵ
-\def\Abrevedotbelow {\char"1EB6 } % LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW: Ặ
-\def\abrevedotbelow {\char"1EB7 } % LATIN SMALL LETTER A WITH BREVE AND DOT BELOW: ặ
-\def\Edotbelow {\char"1EB8 } % LATIN CAPITAL LETTER E WITH DOT BELOW: Ẹ
-\def\edotbelow {\char"1EB9 } % LATIN SMALL LETTER E WITH DOT BELOW: ẹ
-\def\Ehook {\char"1EBA } % LATIN CAPITAL LETTER E WITH HOOK ABOVE: Ẻ
-\def\ehook {\char"1EBB } % LATIN SMALL LETTER E WITH HOOK ABOVE: ẻ
-\def\Etilde {\char"1EBC } % LATIN CAPITAL LETTER E WITH TILDE: Ẽ
-\def\etilde {\char"1EBD } % LATIN SMALL LETTER E WITH TILDE: ẽ
-\def\Ecircumflexacute {\char"1EBE } % LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE: Ế
-\def\ecircumflexacute {\char"1EBF } % LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE: ế
-\def\Ecircumflexgrave {\char"1EC0 } % LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE: Ề
-\def\ecircumflexgrave {\char"1EC1 } % LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE: ề
-\def\Ecircumflexhook {\char"1EC2 } % LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE: Ể
-\def\ecircumflexhook {\char"1EC3 } % LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE: ể
-\def\Ecircumflextilde {\char"1EC4 } % LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE: Ễ
-\def\ecircumflextilde {\char"1EC5 } % LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE: ễ
-\def\Ecircumflexdotbelow {\char"1EC6 } % LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW: Ệ
-\def\ecircumflexdotbelow {\char"1EC7 } % LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW: ệ
-\def\Ihook {\char"1EC8 } % LATIN CAPITAL LETTER I WITH HOOK ABOVE: Ỉ
-\def\ihook {\char"1EC9 } % LATIN SMALL LETTER I WITH HOOK ABOVE: ỉ
-\def\Idotbelow {\char"1ECA } % LATIN CAPITAL LETTER I WITH DOT BELOW: Ị
-\def\idotbelow {\char"1ECB } % LATIN SMALL LETTER I WITH DOT BELOW: ị
-\def\Odotbelow {\char"1ECC } % LATIN CAPITAL LETTER O WITH DOT BELOW: Ọ
-\def\odotbelow {\char"1ECD } % LATIN SMALL LETTER O WITH DOT BELOW: ọ
-\def\Ohook {\char"1ECE } % LATIN CAPITAL LETTER O WITH HOOK ABOVE: Ỏ
-\def\ohook {\char"1ECF } % LATIN SMALL LETTER O WITH HOOK ABOVE: ỏ
-\def\Ocircumflexacute {\char"1ED0 } % LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE: Ố
-\def\ocircumflexacute {\char"1ED1 } % LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE: ố
-\def\Ocircumflexgrave {\char"1ED2 } % LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE: Ồ
-\def\ocircumflexgrave {\char"1ED3 } % LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE: ồ
-\def\Ocircumflexhook {\char"1ED4 } % LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE: Ổ
-\def\ocircumflexhook {\char"1ED5 } % LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE: ổ
-\def\Ocircumflextilde {\char"1ED6 } % LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE: Ỗ
-\def\ocircumflextilde {\char"1ED7 } % LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE: ỗ
-\def\Ocircumflexdotbelow {\char"1ED8 } % LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW: Ộ
-\def\ocircumflexdotbelow {\char"1ED9 } % LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW: ộ
-\def\Ohornacute {\char"1EDA } % LATIN CAPITAL LETTER O WITH HORN AND ACUTE: Ớ
-\def\ohornacute {\char"1EDB } % LATIN SMALL LETTER O WITH HORN AND ACUTE: ớ
-\def\Ohorngrave {\char"1EDC } % LATIN CAPITAL LETTER O WITH HORN AND GRAVE: Ờ
-\def\ohorngrave {\char"1EDD } % LATIN SMALL LETTER O WITH HORN AND GRAVE: ờ
-\def\Ohornhook {\char"1EDE } % LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE: Ở
-\def\ohornhook {\char"1EDF } % LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE: ở
-\def\Ohorntilde {\char"1EE0 } % LATIN CAPITAL LETTER O WITH HORN AND TILDE: Ỡ
-\def\ohorntilde {\char"1EE1 } % LATIN SMALL LETTER O WITH HORN AND TILDE: ỡ
-\def\Ohorndotbelow {\char"1EE2 } % LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW: Ợ
-\def\ohorndotbelow {\char"1EE3 } % LATIN SMALL LETTER O WITH HORN AND DOT BELOW: ợ
-\def\Udotbelow {\char"1EE4 } % LATIN CAPITAL LETTER U WITH DOT BELOW: Ụ
-\def\udotbelow {\char"1EE5 } % LATIN SMALL LETTER U WITH DOT BELOW: ụ
-\def\Uhook {\char"1EE6 } % LATIN CAPITAL LETTER U WITH HOOK ABOVE: Ủ
-\def\uhook {\char"1EE7 } % LATIN SMALL LETTER U WITH HOOK ABOVE: ủ
-\def\Uhornacute {\char"1EE8 } % LATIN CAPITAL LETTER U WITH HORN AND ACUTE: Ứ
-\def\uhornacute {\char"1EE9 } % LATIN SMALL LETTER U WITH HORN AND ACUTE: ứ
-\def\Uhorngrave {\char"1EEA } % LATIN CAPITAL LETTER U WITH HORN AND GRAVE: Ừ
-\def\uhorngrave {\char"1EEB } % LATIN SMALL LETTER U WITH HORN AND GRAVE: ừ
-\def\Uhornhook {\char"1EEC } % LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE: Ử
-\def\uhornhook {\char"1EED } % LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE: ử
-\def\Uhorntilde {\char"1EEE } % LATIN CAPITAL LETTER U WITH HORN AND TILDE: Ữ
-\def\uhorntilde {\char"1EEF } % LATIN SMALL LETTER U WITH HORN AND TILDE: ữ
-\def\Uhorndotbelow {\char"1EF0 } % LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW: Ự
-\def\uhorndotbelow {\char"1EF1 } % LATIN SMALL LETTER U WITH HORN AND DOT BELOW: ự
-\def\Ygrave {\char"1EF2 } % LATIN CAPITAL LETTER Y WITH GRAVE: Ỳ
-\def\ygrave {\char"1EF3 } % LATIN SMALL LETTER Y WITH GRAVE: ỳ
-\def\Ydotbelow {\char"1EF4 } % LATIN CAPITAL LETTER Y WITH DOT BELOW: Ỵ
-\def\ydotbelow {\char"1EF5 } % LATIN SMALL LETTER Y WITH DOT BELOW: ỵ
-\def\Yhook {\char"1EF6 } % LATIN CAPITAL LETTER Y WITH HOOK ABOVE: Ỷ
-\def\yhook {\char"1EF7 } % LATIN SMALL LETTER Y WITH HOOK ABOVE: ỷ
-\def\Ytilde {\char"1EF8 } % LATIN CAPITAL LETTER Y WITH TILDE: Ỹ
-\def\ytilde {\char"1EF9 } % LATIN SMALL LETTER Y WITH TILDE: ỹ
-\def\greekalphapsili {\char"1F00 } % GREEK SMALL LETTER ALPHA WITH PSILI: ἀ
-\def\greekalphadasia {\char"1F01 } % GREEK SMALL LETTER ALPHA WITH DASIA: ἁ
-\def\greekalphapsilivaria {\char"1F02 } % GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA: ἂ
-\def\greekalphadasiavaria {\char"1F03 } % GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA: ἃ
-\def\greekalphapsilitonos {\char"1F04 } % GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA: ἄ
-\def\greekalphadasiatonos {\char"1F05 } % GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA: ἅ
-\def\greekalphapsiliperispomeni {\char"1F06 } % GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI: ἆ
-\def\greekalphadasiaperispomeni {\char"1F07 } % GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI: ἇ
-\def\greekAlphapsili {\char"1F08 } % GREEK CAPITAL LETTER ALPHA WITH PSILI: Ἀ
-\def\greekAlphadasia {\char"1F09 } % GREEK CAPITAL LETTER ALPHA WITH DASIA: Ἁ
-\def\greekAlphapsilivaria {\char"1F0A } % GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA: Ἂ
-\def\greekAlphadasiavaria {\char"1F0B } % GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA: Ἃ
-\def\greekAlphapsilitonos {\char"1F0C } % GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA: Ἄ
-\def\greekAlphadasiatonos {\char"1F0D } % GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA: Ἅ
-\def\greekAlphapsiliperispomeni {\char"1F0E } % GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI: Ἆ
-\def\greekAlphadasiaperispomeni {\char"1F0F } % GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI: Ἇ
-\def\greekepsilonpsili {\char"1F10 } % GREEK SMALL LETTER EPSILON WITH PSILI: ἐ
-\def\greekepsilondasia {\char"1F11 } % GREEK SMALL LETTER EPSILON WITH DASIA: ἑ
-\def\greekepsilonpsilivaria {\char"1F12 } % GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA: ἒ
-\def\greekepsilondasiavaria {\char"1F13 } % GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA: ἓ
-\def\greekepsilonpsilitonos {\char"1F14 } % GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA: ἔ
-\def\greekepsilondasiatonos {\char"1F15 } % GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA: ἕ
-\def\greekEpsilonpsili {\char"1F18 } % GREEK CAPITAL LETTER EPSILON WITH PSILI: Ἐ
-\def\greekEpsilondasia {\char"1F19 } % GREEK CAPITAL LETTER EPSILON WITH DASIA: Ἑ
-\def\greekEpsilonpsilivaria {\char"1F1A } % GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA: Ἒ
-\def\greekEpsilondasiavaria {\char"1F1B } % GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA: Ἓ
-\def\greekEpsilonpsilitonos {\char"1F1C } % GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA: Ἔ
-\def\greekEpsilondasiatonos {\char"1F1D } % GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA: Ἕ
-\def\greeketapsili {\char"1F20 } % GREEK SMALL LETTER ETA WITH PSILI: ἠ
-\def\greeketadasia {\char"1F21 } % GREEK SMALL LETTER ETA WITH DASIA: ἡ
-\def\greeketapsilivaria {\char"1F22 } % GREEK SMALL LETTER ETA WITH PSILI AND VARIA: ἢ
-\def\greeketadasiavaria {\char"1F23 } % GREEK SMALL LETTER ETA WITH DASIA AND VARIA: ἣ
-\def\greeketapsilitonos {\char"1F24 } % GREEK SMALL LETTER ETA WITH PSILI AND OXIA: ἤ
-\def\greeketadasiatonos {\char"1F25 } % GREEK SMALL LETTER ETA WITH DASIA AND OXIA: ἥ
-\def\greeketapsiliperispomeni {\char"1F26 } % GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI: ἦ
-\def\greeketadasiaperispomeni {\char"1F27 } % GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI: ἧ
-\def\greekEtapsili {\char"1F28 } % GREEK CAPITAL LETTER ETA WITH PSILI: Ἠ
-\def\greekEtadasia {\char"1F29 } % GREEK CAPITAL LETTER ETA WITH DASIA: Ἡ
-\def\greekEtapsilivaria {\char"1F2A } % GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA: Ἢ
-\def\greekEtadasiavaria {\char"1F2B } % GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA: Ἣ
-\def\greekEtapsilitonos {\char"1F2C } % GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA: Ἤ
-\def\greekEtadasiatonos {\char"1F2D } % GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA: Ἥ
-\def\greekEtapsiliperispomeni {\char"1F2E } % GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI: Ἦ
-\def\greekEtadasiaperispomeni {\char"1F2F } % GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI: Ἧ
-\def\greekiotapsili {\char"1F30 } % GREEK SMALL LETTER IOTA WITH PSILI: ἰ
-\def\greekiotadasia {\char"1F31 } % GREEK SMALL LETTER IOTA WITH DASIA: ἱ
-\def\greekiotapsilivaria {\char"1F32 } % GREEK SMALL LETTER IOTA WITH PSILI AND VARIA: ἲ
-\def\greekiotadasiavaria {\char"1F33 } % GREEK SMALL LETTER IOTA WITH DASIA AND VARIA: ἳ
-\def\greekiotapsilitonos {\char"1F34 } % GREEK SMALL LETTER IOTA WITH PSILI AND OXIA: ἴ
-\def\greekiotadasiatonos {\char"1F35 } % GREEK SMALL LETTER IOTA WITH DASIA AND OXIA: ἵ
-\def\greekiotapsiliperispomeni {\char"1F36 } % GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI: ἶ
-\def\greekiotadasiaperispomeni {\char"1F37 } % GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI: ἷ
-\def\greekIotapsili {\char"1F38 } % GREEK CAPITAL LETTER IOTA WITH PSILI: Ἰ
-\def\greekIotadasia {\char"1F39 } % GREEK CAPITAL LETTER IOTA WITH DASIA: Ἱ
-\def\greekIotapsilivaria {\char"1F3A } % GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA: Ἲ
-\def\greekIotadasiavaria {\char"1F3B } % GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA: Ἳ
-\def\greekIotapsilitonos {\char"1F3C } % GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA: Ἴ
-\def\greekIotadasiatonos {\char"1F3D } % GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA: Ἵ
-\def\greekIotapsiliperispomeni {\char"1F3E } % GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI: Ἶ
-\def\greekIotadasiaperispomeni {\char"1F3F } % GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI: Ἷ
-\def\greekomicronpsili {\char"1F40 } % GREEK SMALL LETTER OMICRON WITH PSILI: ὀ
-\def\greekomicrondasia {\char"1F41 } % GREEK SMALL LETTER OMICRON WITH DASIA: ὁ
-\def\greekomicronpsilivaria {\char"1F42 } % GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA: ὂ
-\def\greekomicrondasiavaria {\char"1F43 } % GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA: ὃ
-\def\greekomicronpsilitonos {\char"1F44 } % GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA: ὄ
-\def\greekomicrondasiatonos {\char"1F45 } % GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA: ὅ
-\def\greekOmicronpsili {\char"1F48 } % GREEK CAPITAL LETTER OMICRON WITH PSILI: Ὀ
-\def\greekOmicrondasia {\char"1F49 } % GREEK CAPITAL LETTER OMICRON WITH DASIA: Ὁ
-\def\greekOmicronpsilivaria {\char"1F4A } % GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA: Ὂ
-\def\greekOmicrondasiavaria {\char"1F4B } % GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA: Ὃ
-\def\greekOmicronpsilitonos {\char"1F4C } % GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA: Ὄ
-\def\greekOmicrondasiatonos {\char"1F4D } % GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA: Ὅ
-\def\greekupsilonpsili {\char"1F50 } % GREEK SMALL LETTER UPSILON WITH PSILI: ὐ
-\def\greekupsilondasia {\char"1F51 } % GREEK SMALL LETTER UPSILON WITH DASIA: ὑ
-\def\greekupsilonpsilivaria {\char"1F52 } % GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA: ὒ
-\def\greekupsilondasiavaria {\char"1F53 } % GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA: ὓ
-\def\greekupsilonpsilitonos {\char"1F54 } % GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA: ὔ
-\def\greekupsilondasiatonos {\char"1F55 } % GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA: ὕ
-\def\greekupsilonpsiliperispomeni {\char"1F56 } % GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI: ὖ
-\def\greekupsilondasiaperispomeni {\char"1F57 } % GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI: ὗ
-\def\greekUpsilondasia {\char"1F59 } % GREEK CAPITAL LETTER UPSILON WITH DASIA: Ὑ
-\def\greekUpsilondasiavaria {\char"1F5B } % GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA: Ὓ
-\def\greekUpsilondasiatonos {\char"1F5D } % GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA: Ὕ
-\def\greekUpsilondasiaperispomeni {\char"1F5F } % GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI: Ὗ
-\def\greekomegapsili {\char"1F60 } % GREEK SMALL LETTER OMEGA WITH PSILI: ὠ
-\def\greekomegadasia {\char"1F61 } % GREEK SMALL LETTER OMEGA WITH DASIA: ὡ
-\def\greekomegapsilivaria {\char"1F62 } % GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA: ὢ
-\def\greekomegadasiavaria {\char"1F63 } % GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA: ὣ
-\def\greekomegapsilitonos {\char"1F64 } % GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA: ὤ
-\def\greekomegadasiatonos {\char"1F65 } % GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA: ὥ
-\def\greekomegapsiliperispomeni {\char"1F66 } % GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI: ὦ
-\def\greekomegadasiaperispomeni {\char"1F67 } % GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI: ὧ
-\def\greekOmegapsili {\char"1F68 } % GREEK CAPITAL LETTER OMEGA WITH PSILI: Ὠ
-\def\greekOmegadasia {\char"1F69 } % GREEK CAPITAL LETTER OMEGA WITH DASIA: Ὡ
-\def\greekOmegapsilivaria {\char"1F6A } % GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA: Ὢ
-\def\greekOmegadasiavaria {\char"1F6B } % GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA: Ὣ
-\def\greekOmegapsilitonos {\char"1F6C } % GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA: Ὤ
-\def\greekOmegadasiatonos {\char"1F6D } % GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA: Ὥ
-\def\greekOmegapsiliperispomeni {\char"1F6E } % GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI: Ὦ
-\def\greekOmegadasiaperispomeni {\char"1F6F } % GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI: Ὧ
-\def\greekalphavaria {\char"1F70 } % GREEK SMALL LETTER ALPHA WITH VARIA: ὰ
-\def\greekalphaoxia {\char"1F71 } % GREEK SMALL LETTER ALPHA WITH OXIA: ά
-\def\greekepsilonvaria {\char"1F72 } % GREEK SMALL LETTER EPSILON WITH VARIA: ὲ
-\def\greekepsilonoxia {\char"1F73 } % GREEK SMALL LETTER EPSILON WITH OXIA: έ
-\def\greeketavaria {\char"1F74 } % GREEK SMALL LETTER ETA WITH VARIA: ὴ
-\def\greeketaoxia {\char"1F75 } % GREEK SMALL LETTER ETA WITH OXIA: ή
-\def\greekiotavaria {\char"1F76 } % GREEK SMALL LETTER IOTA WITH VARIA: ὶ
-\def\greekiotaoxia {\char"1F77 } % GREEK SMALL LETTER IOTA WITH OXIA: ί
-\def\greekomicronvaria {\char"1F78 } % GREEK SMALL LETTER OMICRON WITH VARIA: ὸ
-\def\greekomicronoxia {\char"1F79 } % GREEK SMALL LETTER OMICRON WITH OXIA: ό
-\def\greekupsilonvaria {\char"1F7A } % GREEK SMALL LETTER UPSILON WITH VARIA: ὺ
-\def\greekupsilonoxia {\char"1F7B } % GREEK SMALL LETTER UPSILON WITH OXIA: ύ
-\def\greekomegavaria {\char"1F7C } % GREEK SMALL LETTER OMEGA WITH VARIA: ὼ
-\def\greekomegaoxia {\char"1F7D } % GREEK SMALL LETTER OMEGA WITH OXIA: ώ
-\def\greekalphaiotasubpsili {\char"1F80 } % GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI: ᾀ
-\def\greekalphaiotasubdasia {\char"1F81 } % GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI: ᾁ
-\def\greekalphaiotasubpsilivaria {\char"1F82 } % GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI: ᾂ
-\def\greekalphaiotasubdasiavaria {\char"1F83 } % GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI: ᾃ
-\def\greekalphaiotasubpsilitonos {\char"1F84 } % GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI: ᾄ
-\def\greekalphaiotasubdasiatonos {\char"1F85 } % GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI: ᾅ
-\def\greekalphaiotasubpsiliperispomeni{\char"1F86 } % GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI: ᾆ
-\def\greekalphaiotasubdasiaperispomeni{\char"1F87 } % GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI: ᾇ
-\def\greekAlphaiotasubpsili {\char"1F88 } % GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI: ᾈ
-\def\greekAlphaiotasubdasia {\char"1F89 } % GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI: ᾉ
-\def\greekAlphaiotasubpsilivaria {\char"1F8A } % GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI: ᾊ
-\def\greekAlphaiotasubdasiavaria {\char"1F8B } % GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI: ᾋ
-\def\greekAlphaiotasubpsilitonos {\char"1F8C } % GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI: ᾌ
-\def\greekAlphaiotasubdasiatonos {\char"1F8D } % GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI: ᾍ
-\def\greekAlphaiotasubpsiliperispomeni{\char"1F8E } % GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI: ᾎ
-\def\greekAlphaiotasubdasiaperispomeni{\char"1F8F } % GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI: ᾏ
-\def\greeketaiotasubpsili {\char"1F90 } % GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI: ᾐ
-\def\greeketaiotasubdasia {\char"1F91 } % GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI: ᾑ
-\def\greeketaiotasubpsilivaria {\char"1F92 } % GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI: ᾒ
-\def\greeketaiotasubdasiavaria {\char"1F93 } % GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI: ᾓ
-\def\greeketaiotasubpsilitonos {\char"1F94 } % GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI: ᾔ
-\def\greeketaiotasubdasiatonos {\char"1F95 } % GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI: ᾕ
-\def\greeketaiotasubpsiliperispomeni {\char"1F96 } % GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI: ᾖ
-\def\greeketaiotasubdasiaperispomeni {\char"1F97 } % GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI: ᾗ
-\def\greekEtaiotasubpsili {\char"1F98 } % GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI: ᾘ
-\def\greekEtaiotasubdasia {\char"1F99 } % GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI: ᾙ
-\def\greekEtaiotasubpsilivaria {\char"1F9A } % GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI: ᾚ
-\def\greekEtaiotasubdasiavaria {\char"1F9B } % GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI: ᾛ
-\def\greekEtaiotasubpsilitonos {\char"1F9C } % GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI: ᾜ
-\def\greekEtaiotasubdasiatonos {\char"1F9D } % GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI: ᾝ
-\def\greekEtaiotasubpsiliperispomeni {\char"1F9E } % GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI: ᾞ
-\def\greekEtaiotasubdasiaperispomeni {\char"1F9F } % GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI: ᾟ
-\def\greekomegaiotasubpsili {\char"1FA0 } % GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI: ᾠ
-\def\greekomegaiotasubdasia {\char"1FA1 } % GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI: ᾡ
-\def\greekomegaiotasubpsilivaria {\char"1FA2 } % GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI: ᾢ
-\def\greekomegaiotasubdasiavaria {\char"1FA3 } % GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI: ᾣ
-\def\greekomegaiotasubpsilitonos {\char"1FA4 } % GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI: ᾤ
-\def\greekomegaiotasubdasiatonos {\char"1FA5 } % GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI: ᾥ
-\def\greekomegaiotasubpsiliperispomeni{\char"1FA6 } % GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI: ᾦ
-\def\greekomegaiotasubdasiaperispomeni{\char"1FA7 } % GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI: ᾧ
-\def\greekOmegaiotasubpsili {\char"1FA8 } % GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI: ᾨ
-\def\greekOmegaiotasubdasia {\char"1FA9 } % GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI: ᾩ
-\def\greekOmegaiotasubpsilivaria {\char"1FAA } % GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI: ᾪ
-\def\greekOmegaiotasubdasiavaria {\char"1FAB } % GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI: ᾫ
-\def\greekOmegaiotasubpsilitonos {\char"1FAC } % GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI: ᾬ
-\def\greekOmegaiotasubdasiatonos {\char"1FAD } % GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI: ᾭ
-\def\greekOmegaiotasubpsiliperispomeni{\char"1FAE } % GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI: ᾮ
-\def\greekOmegaiotasubdasiaperispomeni{\char"1FAF } % GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI: ᾯ
-\def\greekalphavrachy {\char"1FB0 } % GREEK SMALL LETTER ALPHA WITH VRACHY: ᾰ
-\def\greekalphamacron {\char"1FB1 } % GREEK SMALL LETTER ALPHA WITH MACRON: ᾱ
-\def\greekalphaiotasubvaria {\char"1FB2 } % GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI: ᾲ
-\def\greekalphaiotasub {\char"1FB3 } % GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI: ᾳ
-\def\greekalphaiotasubtonos {\char"1FB4 } % GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI: ᾴ
-\def\greekalphaperispomeni {\char"1FB6 } % GREEK SMALL LETTER ALPHA WITH PERISPOMENI: ᾶ
-\def\greekalphaiotasubperispomeni {\char"1FB7 } % GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI: ᾷ
-\def\greekAlphavrachy {\char"1FB8 } % GREEK CAPITAL LETTER ALPHA WITH VRACHY: Ᾰ
-\def\greekAlphamacron {\char"1FB9 } % GREEK CAPITAL LETTER ALPHA WITH MACRON: Ᾱ
-\def\greekAlphavaria {\char"1FBA } % GREEK CAPITAL LETTER ALPHA WITH VARIA: Ὰ
-\def\greekAlphatonos {\char"1FBB } % GREEK CAPITAL LETTER ALPHA WITH OXIA: Ά
-\def\greekAlphaiotasub {\char"1FBC } % GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI: ᾼ
-\def\greekCoronis {\char"1FBD } % GREEK KORONIS: ᾽
-\def\greekprosgegrammeni {\char"1FBE } % GREEK PROSGEGRAMMENI: ι
-\def\greekpsili {\char"1FBF } % GREEK PSILI: ᾿
-\def\greekperispomeni {\char"1FC0 } % GREEK PERISPOMENI: ῀
-\def\greekdialytikaperispomeni {\char"1FC1 } % GREEK DIALYTIKA AND PERISPOMENI: ῁
-\def\greeketaiotasubvaria {\char"1FC2 } % GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI: ῂ
-\def\greeketaiotasub {\char"1FC3 } % GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI: ῃ
-\def\greeketaiotasubtonos {\char"1FC4 } % GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI: ῄ
-\def\greeketaperispomeni {\char"1FC6 } % GREEK SMALL LETTER ETA WITH PERISPOMENI: ῆ
-\def\greeketaiotasubperispomeni {\char"1FC7 } % GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI: ῇ
-\def\greekEpsilonvaria {\char"1FC8 } % GREEK CAPITAL LETTER EPSILON WITH VARIA: Ὲ
-\def\greekEpsilontonos {\char"1FC9 } % GREEK CAPITAL LETTER EPSILON WITH OXIA: Έ
-\def\greekEtavaria {\char"1FCA } % GREEK CAPITAL LETTER ETA WITH VARIA: Ὴ
-\def\greekEtatonos {\char"1FCB } % GREEK CAPITAL LETTER ETA WITH OXIA: Ή
-\def\greekEtaiotasub {\char"1FCC } % GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI: ῌ
-\def\greekpsilivaria {\char"1FCD } % GREEK PSILI AND VARIA: ῍
-\def\greekpsilitonos {\char"1FCE } % GREEK PSILI AND OXIA: ῎
-\def\greekpsiliperispomeni {\char"1FCF } % GREEK PSILI AND PERISPOMENI: ῏
-\def\greekiotavrachy {\char"1FD0 } % GREEK SMALL LETTER IOTA WITH VRACHY: ῐ
-\def\greekiotamacron {\char"1FD1 } % GREEK SMALL LETTER IOTA WITH MACRON: ῑ
-\def\greekiotadialytikavaria {\char"1FD2 } % GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA: ῒ
-\def\greekiotadialytikatonos {\char"1FD3 } % GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA: ΐ
-\def\greekiotaperispomeni {\char"1FD6 } % GREEK SMALL LETTER IOTA WITH PERISPOMENI: ῖ
-\def\greekiotadialytikaperispomeni {\char"1FD7 } % GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI: ῗ
-\def\greekIotavrachy {\char"1FD8 } % GREEK CAPITAL LETTER IOTA WITH VRACHY: Ῐ
-\def\greekIotamacron {\char"1FD9 } % GREEK CAPITAL LETTER IOTA WITH MACRON: Ῑ
-\def\greekIotavaria {\char"1FDA } % GREEK CAPITAL LETTER IOTA WITH VARIA: Ὶ
-\def\greekIotatonos {\char"1FDB } % GREEK CAPITAL LETTER IOTA WITH OXIA: Ί
-\def\greekdasiavaria {\char"1FDD } % GREEK DASIA AND VARIA: ῝
-\def\greekdasiatonos {\char"1FDE } % GREEK DASIA AND OXIA: ῞
-\def\greekdasiaperispomeni {\char"1FDF } % GREEK DASIA AND PERISPOMENI: ῟
-\def\greekupsilonvrachy {\char"1FE0 } % GREEK SMALL LETTER UPSILON WITH VRACHY: ῠ
-\def\greekupsilonmacron {\char"1FE1 } % GREEK SMALL LETTER UPSILON WITH MACRON: ῡ
-\def\greekupsilondialytikavaria {\char"1FE2 } % GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA: ῢ
-\def\greekupsilondialytikatonos {\char"1FE3 } % GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA: ΰ
-\def\greekrhopsili {\char"1FE4 } % GREEK SMALL LETTER RHO WITH PSILI: ῤ
-\def\greekrhodasia {\char"1FE5 } % GREEK SMALL LETTER RHO WITH DASIA: ῥ
-\def\greekupsilonperispomeni {\char"1FE6 } % GREEK SMALL LETTER UPSILON WITH PERISPOMENI: ῦ
-\def\greekupsilondialytikaperispomeni {\char"1FE7 } % GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI: ῧ
-\def\greekUpsilonvrachy {\char"1FE8 } % GREEK CAPITAL LETTER UPSILON WITH VRACHY: Ῠ
-\def\greekUpsilonmacron {\char"1FE9 } % GREEK CAPITAL LETTER UPSILON WITH MACRON: Ῡ
-\def\greekUpsilonvaria {\char"1FEA } % GREEK CAPITAL LETTER UPSILON WITH VARIA: Ὺ
-\def\greekUpsilontonos {\char"1FEB } % GREEK CAPITAL LETTER UPSILON WITH OXIA: Ύ
-\def\greekRhodasia {\char"1FEC } % GREEK CAPITAL LETTER RHO WITH DASIA: Ῥ
-\def\greekdialytikavaria {\char"1FED } % GREEK DIALYTIKA AND VARIA: ῭
-\def\greekdialytikatonos {\char"1FEE } % GREEK DIALYTIKA AND OXIA: ΅
-\def\greekvaria {\char"1FEF } % GREEK VARIA: `
-\def\greekomegaiotasubvaria {\char"1FF2 } % GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI: ῲ
-\def\greekomegaiotasub {\char"1FF3 } % GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI: ῳ
-\def\greekomegaiotasubtonos {\char"1FF4 } % GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI: ῴ
-\def\greekomegaperispomeni {\char"1FF6 } % GREEK SMALL LETTER OMEGA WITH PERISPOMENI: ῶ
-\def\greekomegaiotasubperispomeni {\char"1FF7 } % GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI: ῷ
-\def\greekOmicronvaria {\char"1FF8 } % GREEK CAPITAL LETTER OMICRON WITH VARIA: Ὸ
-\def\greekOmicrontonos {\char"1FF9 } % GREEK CAPITAL LETTER OMICRON WITH OXIA: Ό
-\def\greekOmegavaria {\char"1FFA } % GREEK CAPITAL LETTER OMEGA WITH VARIA: Ὼ
-\def\greekOmegatonos {\char"1FFB } % GREEK CAPITAL LETTER OMEGA WITH OXIA: Ώ
-\def\greekOmegaiotasub {\char"1FFC } % GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI: ῼ
-\def\greekoxia {\char"1FFD } % GREEK OXIA: ´
-\def\greekdasia {\char"1FFE } % GREEK DASIA: ῾
-\def\enspace {\char"2002 } % EN SPACE:  
-\def\emspace {\char"2003 } % EM SPACE:  
-\def\thinspace {\char"2009 } % THIN SPACE:  
-\def\hairspace {\char"200A } % HAIR SPACE:  
-\def\textminus {\char"2012 } % FIGURE DASH: ‒
-\def\endash {\char"2013 } % EN DASH: –
-\def\emdash {\char"2014 } % EM DASH: —
-\def\texthorizontalbar {\char"2015 } % HORIZONTAL BAR: ―
-\def\quoteleft {\char"2018 } % LEFT SINGLE QUOTATION MARK: ‘
-\def\quoteright {\char"2019 } % RIGHT SINGLE QUOTATION MARK: ’
-\def\quotesinglebase {\char"201A } % SINGLE LOW-0x0009 QUOTATION MARK: ‚
-\def\quotedblleft {\char"201C } % LEFT DOUBLE QUOTATION MARK: “
-\def\quotedblright {\char"201D } % RIGHT DOUBLE QUOTATION MARK: ”
-\def\quotedblbase {\char"201E } % DOUBLE LOW-0x0009 QUOTATION MARK: „
-\def\textdag {\char"2020 } % DAGGER: †
-\def\textddag {\char"2021 } % DOUBLE DAGGER: ‡
-\def\textbullet {\char"2022 } % BULLET: •
-\def\textellipsis {\char"2026 } % HORIZONTAL ELLIPSIS: …
-\def\perthousand {\char"2030 } % PER MILLE SIGN: ‰
-\def\guilsingleleft {\char"2039 } % SINGLE LEFT-POINTING ANGLE QUOTATION MARK: ‹
-\def\guilsingleright {\char"203A } % SINGLE RIGHT-POINTING ANGLE QUOTATION MARK: ›
-\def\textdong {\char"20AB } % DONG SIGN: ₫
-\def\texteuro {\char"20AC } % EURO SIGN: €
-\def\textnumero {\char"2116 } % NUMERO SIGN: №
-\def\trademark {\char"2122 } % TRADE MARK SIGN: ™
-\def\onethird {\char"2153 } % VULGAR FRACTION ONE THIRD: ⅓
-\def\twothirds {\char"2154 } % VULGAR FRACTION TWO THIRDS: ⅔
-\def\onefifth {\char"2155 } % VULGAR FRACTION ONE FIFTH: ⅕
-\def\twofifths {\char"2156 } % VULGAR FRACTION TWO FIFTHS: ⅖
-\def\threefifths {\char"2157 } % VULGAR FRACTION THREE FIFTHS: ⅗
-\def\fourfifths {\char"2158 } % VULGAR FRACTION FOUR FIFTHS: ⅘
-\def\onesixth {\char"2159 } % VULGAR FRACTION ONE SIXTH: ⅙
-\def\fivesixths {\char"215A } % VULGAR FRACTION FIVE SIXTHS: ⅚
-\def\oneeighth {\char"215B } % VULGAR FRACTION ONE EIGHTH: ⅛
-\def\threeeighths {\char"215C } % VULGAR FRACTION THREE EIGHTHS: ⅜
-\def\fiveeighths {\char"215D } % VULGAR FRACTION FIVE EIGHTHS: ⅝
-\def\seveneighths {\char"215E } % VULGAR FRACTION SEVEN EIGHTHS: ⅞
-\def\romanI {\char"2160 } % ROMAN NUMERAL ONE: Ⅰ
-\def\romanII {\char"2161 } % ROMAN NUMERAL TWO: Ⅱ
-\def\romanIII {\char"2162 } % ROMAN NUMERAL THREE: Ⅲ
-\def\romanIV {\char"2163 } % ROMAN NUMERAL FOUR: Ⅳ
-\def\romanV {\char"2164 } % ROMAN NUMERAL FIVE: Ⅴ
-\def\romanVI {\char"2165 } % ROMAN NUMERAL SIX: Ⅵ
-\def\romanVII {\char"2166 } % ROMAN NUMERAL SEVEN: Ⅶ
-\def\romanVIII {\char"2167 } % ROMAN NUMERAL EIGHT: Ⅷ
-\def\romanIX {\char"2168 } % ROMAN NUMERAL NINE: Ⅸ
-\def\romanX {\char"2169 } % ROMAN NUMERAL TEN: Ⅹ
-\def\romanXI {\char"216A } % ROMAN NUMERAL ELEVEN: Ⅺ
-\def\romanXII {\char"216B } % ROMAN NUMERAL TWELVE: Ⅻ
-\def\romanL {\char"216C } % ROMAN NUMERAL FIFTY: Ⅼ
-\def\romanC {\char"216D } % ROMAN NUMERAL ONE HUNDRED: Ⅽ
-\def\romanD {\char"216E } % ROMAN NUMERAL FIVE HUNDRED: Ⅾ
-\def\romanM {\char"216F } % ROMAN NUMERAL ONE THOUSAND: Ⅿ
-\def\romani {\char"2170 } % SMALL ROMAN NUMERAL ONE: ⅰ
-\def\romanii {\char"2171 } % SMALL ROMAN NUMERAL TWO: ⅱ
-\def\romaniii {\char"2172 } % SMALL ROMAN NUMERAL THREE: ⅲ
-\def\romaniv {\char"2173 } % SMALL ROMAN NUMERAL FOUR: ⅳ
-\def\romanv {\char"2174 } % SMALL ROMAN NUMERAL FIVE: ⅴ
-\def\romanvi {\char"2175 } % SMALL ROMAN NUMERAL SIX: ⅵ
-\def\romanvii {\char"2176 } % SMALL ROMAN NUMERAL SEVEN: ⅶ
-\def\romanviii {\char"2177 } % SMALL ROMAN NUMERAL EIGHT: ⅷ
-\def\romanix {\char"2178 } % SMALL ROMAN NUMERAL NINE: ⅸ
-\def\romanx {\char"2179 } % SMALL ROMAN NUMERAL TEN: ⅹ
-\def\romanxi {\char"217A } % SMALL ROMAN NUMERAL ELEVEN: ⅺ
-\def\romanxii {\char"217B } % SMALL ROMAN NUMERAL TWELVE: ⅻ
-\def\romanl {\char"217C } % SMALL ROMAN NUMERAL FIFTY: ⅼ
-\def\romanc {\char"217D } % SMALL ROMAN NUMERAL ONE HUNDRED: ⅽ
-\def\romand {\char"217E } % SMALL ROMAN NUMERAL FIVE HUNDRED: ⅾ
-\def\romanm {\char"217F } % SMALL ROMAN NUMERAL ONE THOUSAND: ⅿ
-\def\ffligature {\char"FB00 } % LATIN SMALL LIGATURE FF: ff
-\def\filigature {\char"FB01 } % LATIN SMALL LIGATURE FI: fi
-\def\flligature {\char"FB02 } % LATIN SMALL LIGATURE FL: fl
-\def\ffiligature {\char"FB03 } % LATIN SMALL LIGATURE FFI: ffi
-\def\fflligature {\char"FB04 } % LATIN SMALL LIGATURE FFL: ffl
-\def\stligature {\char"FB06 } % LATIN SMALL LIGATURE ST: st
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/enco-vis.tex b/Master/texmf-dist/tex/context/base/enco-vis.mkii
index 3c1fd776566..3c1fd776566 100644
--- a/Master/texmf-dist/tex/context/base/enco-vis.tex
+++ b/Master/texmf-dist/tex/context/base/enco-vis.mkii
diff --git a/Master/texmf-dist/tex/context/base/enco-vna.tex b/Master/texmf-dist/tex/context/base/enco-vna.mkii
index 05753f37b01..05753f37b01 100644
--- a/Master/texmf-dist/tex/context/base/enco-vna.tex
+++ b/Master/texmf-dist/tex/context/base/enco-vna.mkii
diff --git a/Master/texmf-dist/tex/context/base/enco-win.tex b/Master/texmf-dist/tex/context/base/enco-win.mkii
index 826371d8a68..826371d8a68 100644
--- a/Master/texmf-dist/tex/context/base/enco-win.tex
+++ b/Master/texmf-dist/tex/context/base/enco-win.mkii
diff --git a/Master/texmf-dist/tex/context/base/enco-x5.tex b/Master/texmf-dist/tex/context/base/enco-x5.mkii
index 32a7399ca49..f82ec6c5c41 100644
--- a/Master/texmf-dist/tex/context/base/enco-x5.tex
+++ b/Master/texmf-dist/tex/context/base/enco-x5.mkii
@@ -8,12 +8,12 @@
%D copyright=Hans Hagen]
%C
%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
-%D This module is derived from the some files Han The Thanh
-%D prepared for \LATEX. The dual accent support is still
-%D preliminary, but works ok.
+%D This module is derived from the some files Han The Thanh
+%D prepared for \LATEX. The dual accent support is still
+%D preliminary, but works ok.
\startencoding[x5]
@@ -28,8 +28,8 @@
\definecharacter textbreve 8
\definecharacter textmacron 9
\definecharacter textdotaccent 10
-\definecharacter textcedilla 11
-\definecharacter textogonek 12
+\definecharacter textcedilla 11
+\definecharacter textogonek 12
\definecharacter dotlessi 25
\definecharacter DJ 30
@@ -168,24 +168,24 @@
\defineaccent h y 27
\defineaccent d y 29
-\stopencoding
+\stopencoding
-\endinput
+\endinput
% \startencoding [x5]
-%
+%
% \definecharacter aa {\xfiveencodedaa}
% \definecharacter AA {\xfiveencodedAA}
-%
-% \stopencoding
-%
+%
+% \stopencoding
+%
% \def\xfiveencodedaa%
% {\accent23a}
%
% \def\xfiveencodedAA%
% {\leavevmode
-% \setbox\z@\hbox{h}%
-% \dimen@\ht\z@
+% \setbox\zerocount\hbox{h}%
+% \dimen@\ht\zerocount
% \advance\dimen@ -1ex
% \rlap{\raise.67\dimen@\hbox{\char23}}A}
@@ -200,8 +200,8 @@
% \textendash 21
% \textemdash 22
% \textcompwordmark 23
-% \textperthousand \% \char 24
-% \textpertenthousand \%\char 24\char 24
+% \textperthousand \% \char 24
+% \textpertenthousand \%\char 24\char 24
% \textvisiblespace 32
% \textquotedbl `\"
% \textdollar `\$
diff --git a/Master/texmf-dist/tex/context/base/filt-bas.tex b/Master/texmf-dist/tex/context/base/filt-bas.mkii
index ca3bc3d7007..ca3bc3d7007 100644
--- a/Master/texmf-dist/tex/context/base/filt-bas.tex
+++ b/Master/texmf-dist/tex/context/base/filt-bas.mkii
diff --git a/Master/texmf-dist/tex/context/base/filt-ini.tex b/Master/texmf-dist/tex/context/base/filt-ini.mkii
index 98c88546786..6e1a16e9ae6 100644
--- a/Master/texmf-dist/tex/context/base/filt-ini.tex
+++ b/Master/texmf-dist/tex/context/base/filt-ini.mkii
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Filter Macros (ini)}
+\writestatus{loading}{ConTeXt Filter Macros / Initialization}
% \ifx\OmegaVersion\undefined
@@ -28,42 +28,6 @@
%D The real work starts here.
-\startmessages dutch library: filters
- title: filter
- 1: filter -- wordt geladen
- 2: onbekend filter --
-\stopmessages
-
-\startmessages english library: filters
- title: filter
- 1: filter -- is loaded
- 2: unknown filter --
-\stopmessages
-
-\startmessages german library: filters
- title: filter
- 1: filter -- ist geladen
- 2: unknown filter --
-\stopmessages
-
-\startmessages czech library: filters
- title: filter
- 1: filter -- is loaded
- 2: unknown filter --
-\stopmessages
-
-\startmessages italian library: filters
- title: filtri
- 1: filtro -- caricato
- 2: filtro sconosciuto --
-\stopmessages
-
-\startmessages french library: filters
- title: filtre
- 1: le filtre -- est chargé
- 2: filtre -- inconnu
-\stopmessages
-
% We need the {\??ot::#1} check because otherwise aleph will crash. Taco's
% torture test:
%
@@ -108,12 +72,6 @@
\def\magicocpnumber{1}
-% \def\dodousefiltersequence#1%
-% {\expandafter\ocp\csname\??or:#1\endcsname=\truefiltername{#1}\relax
-% \@EA \appendtoks
-% \@EA \addbeforeocplist \@EA \magicocpnumber \csname\??or:#1\endcsname
-% \to \scratchtoks}
-
% one can do:
%
% \definefiltersequence
@@ -135,14 +93,6 @@
\expandafter\noexpand\csname\??or:\!!stringa\endcsname
\to \scratchtoks}
-% \unexpanded\def\usefiltersequence[#1]%
-% {\edef\currentfiltersequence{\getvalue{\??ot#1}}%
-% \scratchtoks\emptytoks
-% \processcommacommand[\currentfiltersequence]\dodousefiltersequence
-% % \showthe\scratchtoks
-% \expanded{\ocplist\csname\??ot:#1\endcsname=\the\scratchtoks}\nullocplist
-% \expanded{\pushocplist\csname\??ot:#1\endcsname}\relax}
-
\unexpanded\def\usefiltersequence[#1]%
{\doifdefined{\??ot::#1}%
{\doifvalue{\??ot::#1}\v!stop
@@ -160,7 +110,7 @@
{\letvalue{\c!file\f!filterprefix#1}\empty
\makeshortfilename[\truefilename{\f!filterprefix#1}]%
\startreadingfile
- \readsysfile\shortfilename
+ \readsysfile{\shortfilename.mkii}
{\showmessage\m!filters1{#1}}
{\showmessage\m!filters2{#1}}%
\stopreadingfile}}
diff --git a/Master/texmf-dist/tex/context/base/font-afm.lua b/Master/texmf-dist/tex/context/base/font-afm.lua
index fd931547233..81b47a2698c 100644
--- a/Master/texmf-dist/tex/context/base/font-afm.lua
+++ b/Master/texmf-dist/tex/context/base/font-afm.lua
@@ -17,18 +17,27 @@ where we handles font encodings. Eventually font encoding goes
away.</p>
--ldx]]--
-fonts = fonts or { }
-fonts.afm = fonts.afm or { }
-fonts.afm.version = 1.26 -- incrementing this number one up will force a re-cache
-fonts.afm.syncspace = true -- when true, nicer stretch values
-fonts.afm.enhance_data = true -- best leave this set to true
-fonts.afm.trace_features = false
-fonts.afm.features = { }
-fonts.afm.features.aux = { }
-fonts.afm.features.data = { }
-fonts.afm.features.list = { }
-fonts.afm.features.default = { }
-fonts.afm.cache = containers.define("fonts", "afm", fonts.afm.version, true)
+local trace_features = false trackers.register("afm.features", function(v) trace_features = v end)
+local trace_indexing = false trackers.register("afm.indexing", function(v) trace_indexing = v end)
+local trace_loading = false trackers.register("afm.loading", function(v) trace_loading = v end)
+
+local format, match, gmatch, lower = string.format, string.match, string.gmatch, string.lower
+
+fonts = fonts or { }
+fonts.afm = fonts.afm or { }
+
+local afm = fonts.afm
+local tfm = fonts.tfm
+
+afm.version = 1.400 -- incrementing this number one up will force a re-cache
+afm.syncspace = true -- when true, nicer stretch values
+afm.enhance_data = true -- best leave this set to true
+afm.features = { }
+afm.features.aux = { }
+afm.features.data = { }
+afm.features.list = { }
+afm.features.default = { }
+afm.cache = containers.define("fonts", "afm", afm.version, true)
--[[ldx--
<p>We start with the basic reader which we give a name similar to the
@@ -51,199 +60,197 @@ built in <l n='tfm'/> and <l n='otf'/> reader.</p>
--~ Comment DELIM 2390 1010
--~ Comment AXISHEIGHT 250
-do
-
- local c = lpeg.P("Comment")
- local s = lpeg.S(" \t")
- local l = lpeg.S("\n\r")
- local w = lpeg.C((1 - l)^1)
- local n = lpeg.C((lpeg.R("09") + lpeg.S("."))^1) / tonumber * s^0
-
- local fd = { }
-
- local pattern = ( c * s^1 * (
- ("CODINGSCHEME" * s^1 * w ) / function(a) end +
- ("DESIGNSIZE" * s^1 * n * w ) / function(a) fd[ 1] = a end +
- ("CHECKSUM" * s^1 * n * w ) / function(a) fd[ 2] = a end +
- ("SPACE" * s^1 * n * "plus" * n * "minus" * n) / function(a,b,c) fd[ 3], fd[ 4], fd[ 5] = a, b, c end +
- ("QUAD" * s^1 * n ) / function(a) fd[ 6] = a end +
- ("EXTRASPACE" * s^1 * n ) / function(a) fd[ 7] = a end +
- ("NUM" * s^1 * n * n * n ) / function(a,b,c) fd[ 8], fd[ 9], fd[10] = a, b, c end +
- ("DENOM" * s^1 * n * n ) / function(a,b ) fd[11], fd[12] = a, b end +
- ("SUP" * s^1 * n * n * n ) / function(a,b,c) fd[13], fd[14], fd[15] = a, b, c end +
- ("SUB" * s^1 * n * n ) / function(a,b) fd[16], fd[17] = a, b end +
- ("SUPDROP" * s^1 * n ) / function(a) fd[18] = a end +
- ("SUBDROP" * s^1 * n ) / function(a) fd[19] = a end +
- ("DELIM" * s^1 * n * n ) / function(a,b) fd[20], fd[21] = a, b end +
- ("AXISHEIGHT" * s^1 * n ) / function(a) fd[22] = a end +
- (1-l)^0
- ) + (1-c)^1)^0
-
- function fonts.afm.scan_comment(str)
- fd = { }
- pattern:match(str)
- return fd
- end
-
+local c = lpeg.P("Comment")
+local s = lpeg.S(" \t")
+local l = lpeg.S("\n\r")
+local w = lpeg.C((1 - l)^1)
+local n = lpeg.C((lpeg.R("09") + lpeg.S("."))^1) / tonumber * s^0
+
+local fd = { }
+
+local pattern = ( c * s^1 * (
+ ("CODINGSCHEME" * s^1 * w ) / function(a) end +
+ ("DESIGNSIZE" * s^1 * n * w ) / function(a) fd[ 1] = a end +
+ ("CHECKSUM" * s^1 * n * w ) / function(a) fd[ 2] = a end +
+ ("SPACE" * s^1 * n * "plus" * n * "minus" * n) / function(a,b,c) fd[ 3], fd[ 4], fd[ 5] = a, b, c end +
+ ("QUAD" * s^1 * n ) / function(a) fd[ 6] = a end +
+ ("EXTRASPACE" * s^1 * n ) / function(a) fd[ 7] = a end +
+ ("NUM" * s^1 * n * n * n ) / function(a,b,c) fd[ 8], fd[ 9], fd[10] = a, b, c end +
+ ("DENOM" * s^1 * n * n ) / function(a,b ) fd[11], fd[12] = a, b end +
+ ("SUP" * s^1 * n * n * n ) / function(a,b,c) fd[13], fd[14], fd[15] = a, b, c end +
+ ("SUB" * s^1 * n * n ) / function(a,b) fd[16], fd[17] = a, b end +
+ ("SUPDROP" * s^1 * n ) / function(a) fd[18] = a end +
+ ("SUBDROP" * s^1 * n ) / function(a) fd[19] = a end +
+ ("DELIM" * s^1 * n * n ) / function(a,b) fd[20], fd[21] = a, b end +
+ ("AXISHEIGHT" * s^1 * n ) / function(a) fd[22] = a end +
+ (1-l)^0
+) + (1-c)^1)^0
+
+local function scan_comment(str)
+ fd = { }
+ pattern:match(str)
+ return fd
end
-do
-
- -- On a rainy day I will rewrite this in lpeg ...
-
- local keys = { }
-
- function keys.FontName (data,line) data.fullname = line:strip() end
- function keys.ItalicAngle (data,line) data.italicangle = tonumber (line) end
- function keys.IsFixedPitch(data,line) data.isfixedpitch = toboolean(line,true) end
- function keys.CharWidth (data,line) data.charwidth = tonumber (line) end
- function keys.XHeight (data,line) data.xheight = tonumber (line) end
- function keys.Descender (data,line) data.descender = tonumber (line) end
- function keys.Ascender (data,line) data.ascender = tonumber (line) end
- function keys.Comment (data,line)
- -- Comment DesignSize 12 (pts)
- -- Comment TFM designsize: 12 (in points)
- line = line:lower()
- local designsize = line:match("designsize[^%d]*(%d+)")
- if designsize then data.designsize = tonumber(designsize) end
- end
+-- On a rainy day I will rewrite this in lpeg ...
+
+local keys = { }
+
+function keys.FontName (data,line) data.metadata.fullname = line:strip() end
+function keys.ItalicAngle (data,line) data.metadata.italicangle = tonumber (line) end
+function keys.IsFixedPitch(data,line) data.metadata.isfixedpitch = toboolean(line,true) end
+function keys.CharWidth (data,line) data.metadata.charwidth = tonumber (line) end
+function keys.XHeight (data,line) data.metadata.xheight = tonumber (line) end
+function keys.Descender (data,line) data.metadata.descender = tonumber (line) end
+function keys.Ascender (data,line) data.metadata.ascender = tonumber (line) end
+function keys.Comment (data,line)
+ -- Comment DesignSize 12 (pts)
+ -- Comment TFM designsize: 12 (in points)
+ line = lower(line)
+ local designsize = match(line,"designsize[^%d]*(%d+)")
+ if designsize then data.metadata.designsize = tonumber(designsize) end
+end
- local function get_charmetrics(data,charmetrics,vector)
- local characters = data.characters
- local chr, str, ind = { }, "", 0
- for k,v in charmetrics:gmatch("([%a]+) +(.-) *;") do
- if k == 'C' then
- if str ~= "" then characters[str] = chr end
- chr = { }
- str = ""
- v = tonumber(v)
- if v < 0 then
- ind = ind + 1
- else
- ind = v
- end
- chr.index = ind
- elseif k == 'WX' then
- chr.width = v
- elseif k == 'N' then
- str = v
- elseif k == 'B' then
- local llx, lly, urx, ury = v:match("^ *(.-) +(.-) +(.-) +(.-)$")
- chr.boundingbox = { tonumber(llx), tonumber(lly), tonumber(urx), tonumber(ury) }
- elseif k == 'L' then
- local plus, becomes = v:match("^(.-) +(.-)$")
- if not chr.ligatures then chr.ligatures = { } end
- chr.ligatures[plus] = becomes
+local function get_charmetrics(data,charmetrics,vector)
+ local characters = data.characters
+ local chr, str, ind = { }, "", 0
+ for k,v in gmatch(charmetrics,"([%a]+) +(.-) *;") do
+ if k == 'C' then
+ if str ~= "" then characters[str] = chr end
+ chr = { }
+ str = ""
+ v = tonumber(v)
+ if v < 0 then
+ ind = ind + 1
+ else
+ ind = v
end
- end
- if str ~= "" then
- characters[str] = chr
+ chr.index = ind
+ elseif k == 'WX' then
+ chr.width = v
+ elseif k == 'N' then
+ str = v
+ elseif k == 'B' then
+ local llx, lly, urx, ury = match(v,"^ *(.-) +(.-) +(.-) +(.-)$")
+ chr.boundingbox = { tonumber(llx), tonumber(lly), tonumber(urx), tonumber(ury) }
+ elseif k == 'L' then
+ local plus, becomes = match(v,"^(.-) +(.-)$")
+ if not chr.ligatures then chr.ligatures = { } end
+ chr.ligatures[plus] = becomes
end
end
+ if str ~= "" then
+ characters[str] = chr
+ end
+end
- local function get_kernpairs(data,kernpairs)
- local characters = data.characters
- for one, two, value in kernpairs:gmatch("KPX +(.-) +(.-) +(.-)\n") do
- local chr = characters[one]
- if chr then
- if not chr.kerns then chr.kerns = { } end
- chr.kerns[two] = tonumber(value)
- end
+local function get_kernpairs(data,kernpairs)
+ local characters = data.characters
+ for one, two, value in gmatch(kernpairs,"KPX +(.-) +(.-) +(.-)\n") do
+ local chr = characters[one]
+ if chr then
+ if not chr.kerns then chr.kerns = { } end
+ chr.kerns[two] = tonumber(value)
end
end
+end
- local function get_variables(data,fontmetrics)
- for key, rest in fontmetrics:gmatch("(%a+) *(.-)[\n\r]") do
- if keys[key] then keys[key](data,rest) end
- end
+local function get_variables(data,fontmetrics)
+ for key, rest in gmatch(fontmetrics,"(%a+) *(.-)[\n\r]") do
+ if keys[key] then keys[key](data,rest) end
end
+end
- local function get_indexes(data,filename)
- local trace = fonts.trace
- local pfbname = input.find_file(texmf.instance,file.removesuffix(file.basename(filename))..".pfb","pfb") or ""
- if pfbname ~= "" then
- data.luatex = data.luatex or { }
- data.luatex.filename = pfbname
- local pfbblob = fontforge.open(pfbname)
- if pfbblob then
- local characters = data.characters
- local pfbdata = fontforge.to_table(pfbblob)
- --~ print(table.serialize(pfbdata))
- if pfbdata then
- local glyphs = pfbdata.glyphs
- if glyphs then
- if trace then
- logs.report("load afm", string.format("getting index data from %s",pfbname))
- end
- -- local offset = (glyphs[0] and glyphs[0] != .notdef) or 0
- for index, glyph in pairs(glyphs) do
- local name = glyph.name
- if name then
- local char = characters[name]
- if char then
- if trace then
- logs.report("load afm", string.format("glyph %s has index %s",name,index))
- end
- char.index = index
+local function get_indexes(data,filename)
+ local pfbfile = file.replacesuffix(filename,"pfb")
+ local pfbname = resolvers.find_file(pfbfile,"pfb") or ""
+ if pfbname == "" then
+ pfbname = resolvers.find_file(file.basename(pfbfile),"pfb") or ""
+ end
+ if pfbname ~= "" then
+ data.luatex.filename = pfbname
+ local pfbblob = fontloader.open(pfbname)
+ if pfbblob then
+ local characters = data.characters
+ local pfbdata = fontloader.to_table(pfbblob)
+ --~ print(table.serialize(pfbdata))
+ if pfbdata then
+ local glyphs = pfbdata.glyphs
+ if glyphs then
+ if trace_loading then
+ logs.report("load afm","getting index data from %s",pfbname)
+ end
+ -- local offset = (glyphs[0] and glyphs[0] != .notdef) or 0
+ for index, glyph in next, glyphs do
+ local name = glyph.name
+ if name then
+ local char = characters[name]
+ if char then
+ if trace_indexing then
+ logs.report("load afm","glyph %s has index %s",name,index)
end
+ char.index = index
end
end
- elseif trace then
- logs.report("load afm", string.format("no glyph data in pfb file %s",pfbname))
end
- elseif trace then
- logs.report("load afm", string.format("no data in pfb file %s",pfbname))
+ elseif trace_loading then
+ logs.report("load afm","no glyph data in pfb file %s",pfbname)
end
- elseif trace then
- logs.report("load afm", string.format("invalid pfb file %s",pfbname))
+ elseif trace_loading then
+ logs.report("load afm","no data in pfb file %s",pfbname)
end
- elseif trace then
- logs.report("load afm", string.format("no pfb file for %s",filename))
+ fontloader.close(pfbblob)
+ elseif trace_loading then
+ logs.report("load afm","invalid pfb file %s",pfbname)
end
+ elseif trace_loading then
+ logs.report("load afm","no pfb file for %s",filename)
end
+end
- function fonts.afm.read_afm(filename)
- local ok, afmblob, size = input.loadbinfile(texmf.instance,filename) -- has logging
- -- local ok, afmblob = true, file.readdata(filename)
- if ok and afmblob then
- local data = {
- version = version or '0',
- characters = { },
+function afm.read_afm(filename)
+ local ok, afmblob, size = resolvers.loadbinfile(filename) -- has logging
+-- local ok, afmblob = true, file.readdata(filename)
+ if ok and afmblob then
+ local data = {
+ characters = { },
+ metadata = {
+ version = version or '0', -- hm
filename = file.removesuffix(file.basename(filename))
}
- afmblob = afmblob:gsub("StartCharMetrics(.-)EndCharMetrics", function(charmetrics)
- if fonts.trace then
- logs.report("load afm", "loading char metrics")
- end
- get_charmetrics(data,charmetrics,vector)
- return ""
- end)
- afmblob = afmblob:gsub("StartKernPairs(.-)EndKernPairs", function(kernpairs)
- if fonts.trace then
- logs.report("load afm", "loading kern pairs")
- end
- get_kernpairs(data,kernpairs)
- return ""
- end)
- afmblob = afmblob:gsub("StartFontMetrics%s+([%d%.]+)(.-)EndFontMetrics", function(version,fontmetrics)
- if fonts.trace then
- logs.report("load afm", "loading variables")
- end
- data.afmversion = version
- get_variables(data,fontmetrics)
- data.fontdimens = fonts.afm.scan_comment(fontmetrics) -- todo: all lpeg, no time now
- return ""
- end)
- get_indexes(data,filename)
- return data
- else
- if fonts.trace then
- logs.report("load afm", "no valid afm file " .. filename)
+ }
+ afmblob = afmblob:gsub("StartCharMetrics(.-)EndCharMetrics", function(charmetrics)
+ if trace_loading then
+ logs.report("load afm","loading char metrics")
+ end
+ get_charmetrics(data,charmetrics,vector)
+ return ""
+ end)
+ afmblob = afmblob:gsub("StartKernPairs(.-)EndKernPairs", function(kernpairs)
+ if trace_loading then
+ logs.report("load afm","loading kern pairs")
+ end
+ get_kernpairs(data,kernpairs)
+ return ""
+ end)
+ afmblob = afmblob:gsub("StartFontMetrics%s+([%d%.]+)(.-)EndFontMetrics", function(version,fontmetrics)
+ if trace_loading then
+ logs.report("load afm","loading variables")
end
- return nil
+ data.afmversion = version
+ get_variables(data,fontmetrics)
+ data.fontdimens = scan_comment(fontmetrics) -- todo: all lpeg, no time now
+ return ""
+ end)
+ data.luatex = { }
+ get_indexes(data,filename)
+ return data
+ else
+ if trace_loading then
+ logs.report("load afm","no valid afm file %s",filename)
end
+ return nil
end
-
end
--[[ldx--
@@ -252,56 +259,84 @@ by adding ligatures and kern information to the afm derived data. That
way we can set them faster when defining a font.</p>
--ldx]]--
-function fonts.afm.load(filename)
- local name = file.removesuffix(filename)
- local data = containers.read(fonts.afm.cache(),name)
- local size = lfs.attributes(name,"size") or 0
- if data and data.size ~= size then
- data = nil
- end
- if not data then
- local foundname = input.find_file(texmf.instance,filename,'afm')
- if foundname and foundname ~= "" then
- data = fonts.afm.read_afm(foundname)
+function afm.load(filename)
+ -- hm, for some reasons not resolved yet
+ filename = resolvers.find_file(filename,'afm') or ""
+ if filename ~= "" then
+ local name = file.removesuffix(file.basename(filename))
+ local data = containers.read(afm.cache(),name)
+ local size = lfs.attributes(filename,"size") or 0
+ if not data or data.verbose ~= fonts.verbose or data.size ~= size then
+ logs.report("load afm", "reading %s",filename)
+ data = afm.read_afm(filename)
if data then
- fonts.afm.unify(data,filename)
- if fonts.afm.enhance_data then
- fonts.afm.add_ligatures(data,'ligatures') -- easier this way
- fonts.afm.add_ligatures(data,'texligatures') -- easier this way
- fonts.afm.add_kerns(data) -- faster this way
+ -- data.luatex = data.luatex or { }
+ logs.report("load afm", "unifying %s",filename)
+ afm.unify(data,filename)
+ if afm.enhance_data then
+ logs.report("load afm", "add ligatures")
+ afm.add_ligatures(data,'ligatures') -- easier this way
+ logs.report("load afm", "add tex-ligatures")
+ afm.add_ligatures(data,'texligatures') -- easier this way
+ logs.report("load afm", "add extra kerns")
+ afm.add_kerns(data) -- faster this way
end
- logs.report("load afm","file size: " .. size)
data.size = size
- logs.report("load afm","saving: in cache")
- data = containers.write(fonts.afm.cache(), name, data)
+ data.verbose = fonts.verbose
+ logs.report("load afm","saving: %s in cache",name)
+ data = containers.write(afm.cache(), name, data)
+ data = containers.read(afm.cache(),name)
end
end
+ return data
+ else
+ return nil
end
- return data
end
-function fonts.afm.unify(data, filename)
---~ local unicode, unicodes, private = fonts.enc.load('unicode').hash, { }, 0x0F0000
- local unicode, unicodes, private = fonts.enc.load('unicode').hash, { }, fonts.private
- for name, blob in pairs(data.characters) do
- local code = unicode[name] -- or characters.name_to_unicode[name]
+function afm.unify(data, filename)
+ local unicodevector = fonts.enc.load('unicode').hash
+ local glyphs, indices, unicodes, names = { }, { }, { }, { }
+ local verbose, private = fonts.verbose, fonts.private
+ for name, blob in next, data.characters do
+ local code = unicodevector[name] -- or characters.name_to_unicode[name]
if not code then
- local u = name:match("^uni(%x+)$")
+ local u = match(name,"^uni(%x+)$")
code = u and tonumber(u,16)
if not code then
code = private
private = private + 1
- logs.report("afm glyph", string.format("assigning private slot 0x%04X for unknown glyph name %s", code, name))
+ logs.report("afm glyph", "assigning private slot U+%04X for unknown glyph name %s", code, name)
end
end
- blob.unicode = code
+ local index = blob.index
unicodes[name] = code
+ indices[code] = index
+ glyphs[index] = blob
+ names[name] = index
+ blob.name = name
+ if verbose then
+ local bu = blob.unicode
+ if not bu then
+ blob.unicode = code
+ elseif type(bu) == "table" then
+ bu[#bu+1] = code
+ else
+ blob.unicode = { bu, code }
+ end
+ else
+ blob.index = nil
+ end
end
- data.luatex = {
- filename = file.basename(filename),
- -- version = fonts.afm.version,
- unicodes = unicodes
- }
+ data.glyphs = glyphs
+ data.characters = nil
+ local luatex = data.luatex
+ luatex.filename = luatex.filename or file.removesuffix(file.basename(filename))
+ luatex.unicodes = unicodes -- name to unicode
+ luatex.indices = indices -- unicode to index
+ luatex.marks = { } -- todo
+ luatex.names = names -- name to index
+ luatex.private = private
end
--[[ldx--
@@ -309,14 +344,15 @@ end
and extra kerns. This saves quite some lookups later.</p>
--ldx]]--
-function fonts.afm.add_ligatures(afmdata,ligatures)
- local chars = afmdata.characters
- for k,v in pairs(characters[ligatures]) do
- local one = chars[k]
+function afm.add_ligatures(afmdata,ligatures)
+ local glyphs, luatex = afmdata.glyphs, afmdata.luatex
+ local indices, unicodes, names = luatex.indices, luatex.unicodes, luatex.names
+ for k,v in next, characters[ligatures] do -- main characters table
+ local one = glyphs[names[k]]
if one then
- for _, b in pairs(v) do
+ for _, b in next, v do
two, three = b[1], b[2]
- if two and three and chars[two] and chars[three] then
+ if two and three and names[two] and names[three] then
local ol = one[ligatures]
if ol then
if not ol[two] then -- was one.ligatures ... bug
@@ -336,39 +372,55 @@ end
them selectively.</p>
--ldx]]--
-function fonts.afm.add_kerns(afmdata)
- local chars = afmdata.characters
- -- add complex with values of simplified when present
+function afm.add_kerns(afmdata)
+ local glyphs = afmdata.glyphs
+ local names = afmdata.luatex.names
+ local uncomposed = characters.uncomposed
local function do_it_left(what)
- for _,v in pairs(chars) do
- if v.kerns then
- local k = { }
- for complex,simple in pairs(characters.uncomposed[what]) do
- local ks = k[simple]
- if ks and not k[complex] then
- k[complex] = ks
+ for index, glyph in next, glyphs do
+ local kerns = glyph.kerns
+ if kerns then
+ local extrakerns = glyph.extrakerns or { }
+ for complex, simple in next, uncomposed[what] do
+ if names[compex] then
+ local ks = kerns[simple]
+ if ks and not kerns[complex] then
+ extrakerns[complex] = ks
+ end
end
end
- if not table.is_empty(k) then
- v.extrakerns = k
+ if next(extrakerns) then
+ glyph.extrakerns = extrakerns
end
end
end
end
- do_it_left("left")
- do_it_left("both")
- -- copy kerns from simple char to complex char unless set
local function do_it_copy(what)
- for complex,simple in pairs(characters.uncomposed[what]) do
- local c = chars[complex]
+ for complex, simple in next, uncomposed[what] do
+ local c = glyphs[names[complex]]
if c then -- optional
- local s = chars[simple]
- if s and s.kerns then
- c.extrakerns = s.kerns -- ok ? no merge ?
+ local s = glyphs[names[simple]]
+ if s then
+ if not c.kerns then
+ c.extrakerns = s.kerns or { }
+ end
+ if s.extrakerns then
+ local extrakerns = c.extrakerns or { }
+ for k, v in next, s.extrakerns do
+ extrakerns[k] = v
+ end
+ if next(extrakerns) then
+ s.extrakerns = extrakerns
+ end
+ end
end
end
end
end
+ -- add complex with values of simplified when present
+ do_it_left("left")
+ do_it_left("both")
+ -- copy kerns from simple char to complex char unless set
do_it_copy("both")
do_it_copy("right")
end
@@ -380,101 +432,137 @@ end
-- once we have otf sorted out (new format) we can try to make the afm
-- cache similar to it (similar tables)
-function fonts.afm.add_dimensions(data) -- we need to normalize afm to otf i.e. indexed table instead of name
+function afm.add_dimensions(data) -- we need to normalize afm to otf i.e. indexed table instead of name
if data then
- for n, d in pairs(data.characters) do
- local bb = d.boundingbox
+ for index, glyph in next, data.glyphs do
+ local bb = glyph.boundingbox
if bb then
local ht, dp = bb[4], -bb[2]
- if ht ~= 0 then d.height = ht end
- if dp ~= 0 then d.depth = dp end
+ if ht == 0 or ht < 0 then
+ -- no need to set it and no negative heights, nil == 0
+ else
+ glyph.height = ht
+ end
+ if dp == 0 or dp < 0 then
+ -- no negative depths and no negative depths, nil == 0
+ else
+ glyph.depth = dp
+ end
end
- d.name = n
end
end
end
-function fonts.afm.copy_to_tfm(data)
- if data and data.characters then
- local tfm = { characters = { }, parameters = { } }
- local afmcharacters = data.characters
- local characters, parameters = tfm.characters, tfm.parameters
- if afmcharacters then
- for k, v in pairs(afmcharacters) do
- characters[v.unicode] = { description = v }
+function afm.copy_to_tfm(data)
+ if data then
+ local glyphs = data.glyphs
+ if glyphs then
+ local metadata, luatex = data.metadata, data.luatex
+ local unicodes, indices = luatex.unicodes, luatex.indices
+ local characters, parameters, descriptions = { }, { }, { }
+ local tfm = {
+ characters = characters,
+ parameters = parameters,
+ descriptions = descriptions,
+ indices = indices,
+ unicodes = unicodes,
+ luatex = luatex,
+ }
+ for u, i in next, indices do
+ local d = glyphs[i]
+ characters[u] = { }
+ descriptions[u] = d
end
- end
- tfm.encodingbytes = data.encodingbytes or 2
- tfm.fullname = data.fullname
- tfm.filename = data.filename
- tfm.name = tfm.fullname -- data.name or tfm.fullname
- tfm.type = "real"
- tfm.units = 1000
- tfm.stretch = stretch
- tfm.slant = slant
- tfm.direction = 0
- tfm.boundarychar_label = 0
- tfm.boundarychar = 65536
- --~ tfm.false_boundarychar = 65536 -- produces invalid tfm in luatex
- tfm.designsize = (data.designsize or 10)*65536
- local spaceunits = 500
- tfm.spacer = "500 units"
- if data.isfixedpitch then
- if afmcharacters['space'] and afmcharacters['space'].width then
- spaceunits, tfm.spacer = afmcharacters['space'].width, "space"
- elseif afmcharacters['emdash'] and afmcharacters['emdash'].width then -- funny default
- spaceunits, tfm.spacer = afmcharacters['emdash'].width, "emdash"
- elseif data.charwidth then
- spaceunits, tfm.spacer = data.charwidth, "charwidth"
+ tfm.encodingbytes = metadata.encodingbytes or 2
+ tfm.fullname = metadata.fullname
+ tfm.filename = metadata.filename
+ tfm.name = tfm.fullname
+ tfm.psname = tfm.fullname
+ tfm.type = "real"
+ tfm.units = 1000
+ tfm.stretch = stretch -- nil
+ tfm.slant = slant -- nil
+ tfm.direction = 0
+ tfm.boundarychar_label = 0
+ tfm.boundarychar = 65536
+ --~ tfm.false_boundarychar = 65536 -- produces invalid tfm in luatex
+ tfm.designsize = (metadata.designsize or 10)*65536
+ local spaceunits = 500
+ tfm.spacer = "500 units"
+ -- same as otf
+ local endash, emdash = unicodes['space'], unicodes['emdash']
+ if metadata.isfixedpitch then
+ if descriptions[endash] then
+ spaceunits, tfm.spacer = descriptions[endash].width, "space"
+ end
+ if not spaceunits and descriptions[emdash] then
+ spaceunits, tfm.spacer = descriptions[emdash].width, "emdash"
+ end
+ if not spaceunits and metadata.charwidth then
+ spaceunits, tfm.spacer = metadata.charwidth, "charwidth"
+ end
+ else
+ if descriptions[endash] then
+ spaceunits, tfm.spacer = descriptions[endash].width, "space"
+ end
+ -- if not spaceunits and descriptions[emdash] then
+ -- spaceunits, tfm.spacer = descriptions[emdash].width/2, "emdash/2"
+ -- end
+ if not spaceunits and metadata.charwidth then
+ spaceunits, tfm.spacer = metadata.charwidth, "charwidth"
+ end
end
- elseif afmcharacters['space'] and afmcharacters['space'].width then
- spaceunits, tfm.spacer = afmcharacters['space'].width, "space"
- elseif data.charwidth then
- spaceunits, tfm.spacer = data.charwidth, "charwidth variable"
- end
- spaceunits = tonumber(spaceunits)
- parameters.slant = 0
- parameters.space = spaceunits
- parameters.space_stretch = 500
- parameters.space_shrink = 333
- parameters.x_height = 400
- parameters.quad = 1000
- parameters.extra_space = 0
- if spaceunits < 200 then
- -- todo: warning
- end
- tfm.italicangle = data.italicangle
- tfm.ascender = math.abs(data.ascender or 0)
- tfm.descender = math.abs(data.descender or 0)
- if data.italicangle then
- parameters.slant = parameters.slant - math.round(math.tan(data.italicangle*math.pi/180))
- end
- if data.isfixedpitch then
- parameters.space_stretch = 0
- parameters.space_shrink = 0
- elseif fonts.afm.syncspace then
- parameters.space_stretch = spaceunits/2
- parameters.space_shrink = spaceunits/3
- end
- if data.xheight and data.xheight > 0 then
- parameters.x_height = data.xheight
- elseif afmcharacters['x'] and afmcharacters['x'].height then
- parameters.x_height = afmcharacters['x'].height or 0
- end
- local fd = data.fontdimens
- if fd and fd[8] and fd[9] and fd[10] then -- math
- for k,v in pairs(fd) do
- parameters[k] = v
+ --
+ spaceunits = tonumber(spaceunits)
+ parameters.slant = 0
+ parameters.space = spaceunits
+ parameters.space_stretch = 500
+ parameters.space_shrink = 333
+ parameters.x_height = 400
+ parameters.quad = 1000
+ if spaceunits < 200 then
+ -- todo: warning
+ end
+ tfm.ascender = math.abs(metadata.ascender or 0)
+ tfm.descender = math.abs(metadata.descender or 0)
+ local italicangle = data.metadata.italicangle
+ if italicangle then
+ tfm.italicangle = italicangle
+ parameters.slant = parameters.slant - math.round(math.tan(italicangle*math.pi/180))
+ end
+ if metadata.isfixedpitch then
+ parameters.space_stretch = 0
+ parameters.space_shrink = 0
+ elseif afm.syncspace then
+ parameters.space_stretch = spaceunits/2
+ parameters.space_shrink = spaceunits/3
+ end
+ parameters.extra_space = parameters.space_shrink
+ if metadata.xheight and metadata.xheight > 0 then
+ parameters.x_height = metadata.xheight
+ else
+ -- same as otf
+ local x = unicodes['x']
+ if x then
+ local x = descriptions[x]
+ if x then
+ parameters.x_height = x.height
+ end
+ end
+ --
+ end
+ local fd = data.fontdimens
+ if fd and fd[8] and fd[9] and fd[10] then -- math
+ for k,v in next, fd do
+ parameters[k] = v
+ end
+ end
+ if next(characters) then
+ return tfm
end
end
- if table.is_empty(characters) then
- return nil
- else
- return tfm
- end
- else
- return nil
end
+ return nil
end
--[[ldx--
@@ -484,86 +572,90 @@ to treat this fontformat like any other and handle features in a
more configurable way.</p>
--ldx]]--
-function fonts.afm.features.register(name,default)
- fonts.afm.features.list[#fonts.afm.features.list+1] = name
- fonts.afm.features.default[name] = default
+function afm.features.register(name,default)
+ afm.features.list[#afm.features.list+1] = name
+ afm.features.default[name] = default
end
-function fonts.afm.set_features(tfmdata)
+function afm.set_features(tfmdata)
local shared = tfmdata.shared
local afmdata = shared.afmdata
- -- elsewhere: shared.features = fonts.define.check(shared.features,fonts.afm.features.default)
local features = shared.features
---~ texio.write_nl(table.serialize(features))
if not table.is_empty(features) then
local mode = tfmdata.mode or fonts.mode
- local fi = fonts.initializers[mode]
- if fi and fi.afm then
- local function initialize(list) -- using tex lig and kerning
+ local initializers = fonts.initializers
+ local fi = initializers[mode]
+ local fiafm = fi and fi.afm
+ if fiafm then
+ local lists = {
+ fonts.triggers,
+ afm.features.list,
+ fonts.manipulators,
+ }
+ for l=1,3 do
+ local list = lists[l]
if list then
- for _, f in ipairs(list) do
+ for i=1,#list do
+ local f = list[i]
local value = features[f]
- if value and fi.afm[f] then -- brr
- if fonts.afm.trace_features then
- logs.report("define afm",string.format("initializing feature %s to %s for mode %s for font %s",f,tostring(value),mode or 'unknown',tfmdata.name or 'unknown'))
+ if value and fiafm[f] then -- brr
+ if trace_features then
+ logs.report("define afm","initializing feature %s to %s for mode %s for font %s",f,tostring(value),mode or 'unknown',tfmdata.name or 'unknown')
end
- fi.afm[f](tfmdata,value)
+ fiafm[f](tfmdata,value)
mode = tfmdata.mode or fonts.mode
- fi = fonts.initializers[mode]
+ fiafm = initializers[mode].afm
end
end
end
end
- initialize(fonts.triggers)
- initialize(fonts.afm.features.list)
- initialize(fonts.manipulators)
end
local fm = fonts.methods[mode]
- if fm and fm.afm then
- local function register(list) -- node manipulations
+ local fmafm = fm and fm.afm
+ if fmfm then
+ local lists = {
+ afm.features.list,
+ }
+ local sp = shared.processors
+ for l=1,1 do
+ local list = lists[l]
if list then
- for _, f in ipairs(list) do
- if features[f] and fm.afm[f] then -- brr
- if not shared.processors then -- maybe also predefine
- shared.processors = { fm.afm[f] }
+ for i=1,#list do
+ local f = list[i]
+ if features[f] and fmafm[f] then -- brr
+ if not sp then
+ sp = { fmafm[f] }
+ shared.processors = sp
else
- shared.processors[#shared.processors+1] = fm.afm[f]
+ sp[#sp+1] = fmafm[f]
end
end
end
end
end
- register(fonts.afm.features.list)
end
end
end
-function fonts.afm.check_features(specification)
- local features, done = fonts.define.check(specification.features.normal,fonts.afm.features.default)
+function afm.check_features(specification)
+ local features, done = fonts.define.check(specification.features.normal,afm.features.default)
if done then
specification.features.normal = features
- fonts.tfm.hash_instance(specification,true)
+ tfm.hash_instance(specification,true)
end
end
-function fonts.afm.afm_to_tfm(specification)
+function afm.afm_to_tfm(specification)
local afmname = specification.filename or specification.name
- local encoding, filename = afmname:match("^(.-)%-(.*)$") -- context: encoding-name.*
- if encoding and filename and fonts.enc.known[encoding] then
- fonts.tfm.set_normal_feature(specification,'encoding',encoding) -- will go away
- if fonts.trace then
- logs.report("load afm", string.format("stripping encoding prefix from filename %s",afmname))
- end
- afmname = filename
- elseif specification.forced == "afm" then
- if fonts.trace then
- logs.report("load afm", string.format("forcing afm format for %s",afmname))
+ if specification.forced == "afm" or specification.format == "afm" then -- move this one up
+ if trace_loading then
+ logs.report("load afm","forcing afm format for %s",afmname)
end
else
- local tfmname = input.findbinfile(texmf.instance,afmname,"ofm") or ""
+ local tfmname = resolvers.findbinfile(afmname,"ofm") or ""
if tfmname ~= "" then
- if fonts.trace then
- logs.report("load afm", string.format("fallback from afm to tfm for %s",afmname))
+ if trace_loading then
+ logs.report("load afm","fallback from afm to tfm for %s",afmname)
end
afmname = ""
end
@@ -571,27 +663,27 @@ function fonts.afm.afm_to_tfm(specification)
if afmname == "" then
return nil
else
- fonts.afm.check_features(specification)
+ afm.check_features(specification)
specification = fonts.define.resolve(specification) -- new, was forgotten
local features = specification.features.normal
local cache_id = specification.hash
- local tfmdata = containers.read(fonts.tfm.cache(), cache_id) -- cache with features applied
+ local tfmdata = containers.read(tfm.cache(), cache_id) -- cache with features applied
if not tfmdata then
- local afmdata = fonts.afm.load(afmname)
+ local afmdata = afm.load(afmname)
if not table.is_empty(afmdata) then
- fonts.afm.add_dimensions(afmdata)
- tfmdata = fonts.afm.copy_to_tfm(afmdata)
+ afm.add_dimensions(afmdata)
+ tfmdata = afm.copy_to_tfm(afmdata)
if not table.is_empty(tfmdata) then
tfmdata.shared = tfmdata.shared or { }
tfmdata.unique = tfmdata.unique or { }
tfmdata.shared.afmdata = afmdata
tfmdata.shared.features = features
- fonts.afm.set_features(tfmdata)
+ afm.set_features(tfmdata)
end
- elseif fonts.trace then
- logs.report("load afm", string.format("no (valid) afm file found with name %s",afmname))
+ elseif trace_loading then
+ logs.report("load afm","no (valid) afm file found with name %s",afmname)
end
- tfmdata = containers.write(fonts.tfm.cache(),cache_id,tfmdata)
+ tfmdata = containers.write(tfm.cache(),cache_id,tfmdata)
end
return tfmdata
end
@@ -605,9 +697,9 @@ those cases, but now that we can handle <l n='opentype'/> directly we no longer
need this features.</p>
--ldx]]--
-fonts.tfm.default_encoding = 'unicode'
+tfm.default_encoding = 'unicode'
-function fonts.tfm.set_normal_feature(specification,name,value)
+function tfm.set_normal_feature(specification,name,value)
if specification and name then
specification.features = specification.features or { }
specification.features.normal = specification.features.normal or { }
@@ -615,15 +707,11 @@ function fonts.tfm.set_normal_feature(specification,name,value)
end
end
-function fonts.tfm.read_from_afm(specification)
---~ local fullname = input.findbinfile(texmf.instance,specification.name,"afm") or ""
---~ if fullname ~= "" then
---~ specification.filename = fullname
---~ end
- local tfmtable = fonts.afm.afm_to_tfm(specification)
+function tfm.read_from_afm(specification)
+ local tfmtable = afm.afm_to_tfm(specification)
if tfmtable then
tfmtable.name = specification.name
- tfmtable = fonts.tfm.scale(tfmtable, specification.size)
+ tfmtable = tfm.scale(tfmtable, specification.size)
local afmdata = tfmtable.shared.afmdata
local filename = afmdata and afmdata.luatex and afmdata.luatex.filename
if not filename then
@@ -631,8 +719,8 @@ function fonts.tfm.read_from_afm(specification)
end
if filename then
tfmtable.encodingbytes = 2
- tfmtable.filename = input.findbinfile(texmf.instance,filename,"") or filename
- tfmtable.fullname = afmdata.fontname or afmdata.fullname
+ tfmtable.filename = resolvers.findbinfile(filename,"") or filename
+ tfmtable.fullname = afmdata.metadata.fontname or afmdata.metadata.fullname
tfmtable.format = 'type1'
tfmtable.name = afmdata.luatex.filename or tfmtable.fullname
end
@@ -649,39 +737,56 @@ end
those that make sense for this format.</p>
--ldx]]--
-function fonts.afm.features.prepare_ligatures(tfmdata,ligatures,value) -- probably faulty / check index
+function afm.features.prepare_ligatures(tfmdata,ligatures,value)
if value then
- local charlist = tfmdata.shared.afmdata.characters
- for k,v in pairs(tfmdata.characters) do
- local ac = charlist[v.name]
- if ac then
- local al = ac[ligatures]
- if al then
- local ligatures = { }
- for k,v in pairs(al) do
- ligatures[charlist[k].unicode] = {
- char = charlist[v].unicode,
+ local afmdata = tfmdata.shared.afmdata
+ local luatex = afmdata.luatex
+ local unicodes = luatex.unicodes
+ local descriptions = tfmdata.descriptions
+ for u, chr in next, tfmdata.characters do
+ local d = descriptions[u]
+ local l = d[ligatures]
+ if l then
+ local ligatures = chr.ligatures
+ if not ligatures then
+ ligatures = { }
+ chr.ligatures = ligatures
+ end
+ for k, v in next, l do
+ local uk, uv = unicodes[k], unicodes[v]
+ if uk and uv then
+ ligatures[uk] = {
+ char = uv,
type = 0
}
end
- v.ligatures = ligatures
end
end
end
end
end
-function fonts.afm.features.prepare_kerns(tfmdata,kerns,value)
+function afm.features.prepare_kerns(tfmdata,kerns,value)
if value then
- local charlist = tfmdata.shared.afmdata.characters
- for _, chr in pairs(tfmdata.characters) do
- local newkerns = charlist[chr.description.name][kerns]
+ local afmdata = tfmdata.shared.afmdata
+ local luatex = afmdata.luatex
+ local unicodes = luatex.unicodes
+ local descriptions = tfmdata.descriptions
+ for u, chr in next, tfmdata.characters do
+ local d = descriptions[u]
+ local newkerns = d[kerns]
if newkerns then
- local t = chr.kerns or { }
- for k,v in pairs(newkerns) do
- t[charlist[k].unicode] = v
+ local kerns = chr.kerns
+ if not kerns then
+ kerns = { }
+ chr.kerns = kerns
+ end
+ for k,v in next, newkerns do
+ local uk = unicodes[k]
+ if uk then
+ kerns[uk] = v
+ end
end
- chr.kerns = t
end
end
end
@@ -689,14 +794,14 @@ end
-- hm, register?
-function fonts.initializers.base.afm.ligatures (tfmdata,value) fonts.afm.features.prepare_ligatures(tfmdata,'ligatures', value) end
-function fonts.initializers.base.afm.texligatures(tfmdata,value) fonts.afm.features.prepare_ligatures(tfmdata,'texligatures',value) end
-function fonts.initializers.base.afm.kerns (tfmdata,value) fonts.afm.features.prepare_kerns (tfmdata,'kerns', value) end
-function fonts.initializers.base.afm.extrakerns (tfmdata,value) fonts.afm.features.prepare_kerns (tfmdata,'extrakerns', value) end
+function fonts.initializers.base.afm.ligatures (tfmdata,value) afm.features.prepare_ligatures(tfmdata,'ligatures', value) end
+function fonts.initializers.base.afm.texligatures(tfmdata,value) afm.features.prepare_ligatures(tfmdata,'texligatures',value) end
+function fonts.initializers.base.afm.kerns (tfmdata,value) afm.features.prepare_kerns (tfmdata,'kerns', value) end
+function fonts.initializers.base.afm.extrakerns (tfmdata,value) afm.features.prepare_kerns (tfmdata,'extrakerns', value) end
-fonts.afm.features.register('liga',true)
-fonts.afm.features.register('kerns',true)
-fonts.afm.features.register('extrakerns') -- needed?
+afm.features.register('liga',true)
+afm.features.register('kerns',true)
+afm.features.register('extrakerns') -- needed?
fonts.initializers.node.afm.ligatures = fonts.initializers.base.afm.ligatures
fonts.initializers.node.afm.texligatures = fonts.initializers.base.afm.texligatures
@@ -708,11 +813,11 @@ fonts.initializers.node.afm.liga = fonts.initializers.base.afm.ligatures
fonts.initializers.base.afm.tlig = fonts.initializers.base.afm.texligatures
fonts.initializers.node.afm.tlig = fonts.initializers.base.afm.texligatures
-fonts.initializers.base.afm.trep = fonts.tfm.replacements
-fonts.initializers.node.afm.trep = fonts.tfm.replacements
+fonts.initializers.base.afm.trep = tfm.replacements
+fonts.initializers.node.afm.trep = tfm.replacements
-fonts.afm.features.register('tlig',true) -- todo: also proper features for afm
-fonts.afm.features.register('trep',true) -- todo: also proper features for afm
+afm.features.register('tlig',true) -- todo: also proper features for afm
+afm.features.register('trep',true) -- todo: also proper features for afm
-- tfm features
@@ -728,7 +833,7 @@ fonts.initializers.node.afm.compose = fonts.initializers.common.compose
-- afm specific, encodings ...kind of obsolete
-fonts.afm.features.register('encoding')
+afm.features.register('encoding')
fonts.initializers.base.afm.encoding = fonts.initializers.common.encoding
fonts.initializers.node.afm.encoding = fonts.initializers.common.encoding
@@ -739,7 +844,7 @@ fonts.initializers.base.afm.onum = fonts.initializers.common.oldstyle
fonts.initializers.base.afm.smcp = fonts.initializers.common.smallcaps
fonts.initializers.base.afm.fkcp = fonts.initializers.common.fakecaps
-fonts.afm.features.register('onum',false)
-fonts.afm.features.register('smcp',false)
-fonts.afm.features.register('fkcp',false)
+afm.features.register('onum',false)
+afm.features.register('smcp',false)
+afm.features.register('fkcp',false)
diff --git a/Master/texmf-dist/tex/context/base/font-arb.tex b/Master/texmf-dist/tex/context/base/font-arb.mkii
index 3ec0395f32a..3ec0395f32a 100644
--- a/Master/texmf-dist/tex/context/base/font-arb.tex
+++ b/Master/texmf-dist/tex/context/base/font-arb.mkii
diff --git a/Master/texmf-dist/tex/context/base/font-bfm.tex b/Master/texmf-dist/tex/context/base/font-bfm.mkii
index a7bf398ef13..23e3176c4cd 100644
--- a/Master/texmf-dist/tex/context/base/font-bfm.tex
+++ b/Master/texmf-dist/tex/context/base/font-bfm.mkii
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Font Macros / Mixed Bold Math Support}
+\writestatus{loading}{ConTeXt Font Macros / Mixed Bold Math Support}
%D The following example demonstrates how to use normal, bold, and mixed
%D normal|/|bold math. Since not everyone has the Lucida on his|/|her
diff --git a/Master/texmf-dist/tex/context/base/font-chi.tex b/Master/texmf-dist/tex/context/base/font-chi.mkii
index cf30470d7e5..0acf710d529 100644
--- a/Master/texmf-dist/tex/context/base/font-chi.tex
+++ b/Master/texmf-dist/tex/context/base/font-chi.mkii
@@ -22,7 +22,7 @@
%D unicode codepoints (yet); if it were possible we could use
%D just one table per input encoding.
-\writestatus{loading}{Context Font Macros / Chinese}
+\writestatus{loading}{ConTeXt Font Macros / Chinese}
% much will to typo-chi.tex
diff --git a/Master/texmf-dist/tex/context/base/font-chk.lua b/Master/texmf-dist/tex/context/base/font-chk.lua
new file mode 100644
index 00000000000..382f671d8a8
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/font-chk.lua
@@ -0,0 +1,76 @@
+if not modules then modules = { } end modules ['font-chk'] = {
+ version = 1.001,
+ comment = "companion to font-ini.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- possible optimization: delayed initialization of vectors
+
+fonts = fonts or { }
+fonts.checkers = fonts.checkers or { }
+
+local checkers = fonts.checkers
+local fontdata = fonts.ids
+local is_character = characters.is_character
+local chardata = characters.data
+
+local glyph = node.id('glyph')
+local traverse_id = node.traverse_id
+local remove_node = nodes.remove
+
+-- maybe in fonts namespace
+-- deletion can be option
+
+checkers.enabled = false
+checkers.delete = false
+
+function fonts.register_message(font,char,message)
+ local tfmdata = fontdata[font]
+ local shared = tfmdata.shared
+ local messages = shared.messages
+ if not messages then
+ messages = { }
+ shared.messages = messages
+ end
+ local category = messages[message]
+ if not category then
+ category = { }
+ messages[message] = category
+ end
+ if not category[char] then
+ logs.report("fonts","char U+%04X in font '%s' with id %s: %s",char,tfmdata.fullname,font,message)
+ category[char] = true
+ end
+end
+
+function checkers.missing(head)
+ if checkers.enabled then
+ local lastfont, characters, found = nil, nil, nil
+ for n in traverse_id(glyph,head) do
+ local font, char = n.font, n.char
+ if font ~= lastfont then
+ characters = fontdata[font].characters
+ end
+ if not characters[char] and is_character[chardata[char].category] then
+ if checkers.delete then
+ fonts.register_message(font,char,"missing (will be deleted)")
+ else
+ fonts.register_message(font,char,"missing")
+ end
+ if not found then
+ found = { n }
+ else
+ found[#found+1] = n
+ end
+ end
+ end
+ if found and checkers.delete then
+ for i=1,#found do
+ head = remove_node(head,found[i],true)
+ end
+ end
+ end
+ return head, false
+end
diff --git a/Master/texmf-dist/tex/context/base/font-cid.lua b/Master/texmf-dist/tex/context/base/font-cid.lua
new file mode 100644
index 00000000000..13e9cce8949
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/font-cid.lua
@@ -0,0 +1,144 @@
+if not modules then modules = { } end modules ['font-cid'] = {
+ version = 1.001,
+ comment = "companion to font-otf.lua (cidmaps)",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local format, match = string.format, string.match
+local tonumber = tonumber
+
+local trace_loading = false trackers.register("otf.loading", function(v) trace_loading = v end)
+
+fonts = fonts or { }
+fonts.cid = fonts.cid or { }
+fonts.cid.map = fonts.cid.map or { }
+fonts.cid.max = fonts.cid.max or 10
+
+
+-- original string parser: 0.109, lpeg parser: 0.036 seconds for Adobe-CNS1-4.cidmap
+--
+-- 18964 18964 (leader)
+-- 0 /.notdef
+-- 1..95 0020
+-- 99 3000
+
+local number = lpeg.C(lpeg.R("09","af","AF")^1)
+local space = lpeg.S(" \n\r\t")
+local spaces = space^0
+local period = lpeg.P(".")
+local periods = period * period
+local name = lpeg.P("/") * lpeg.C((1-space)^1)
+
+local unicodes, names = { }, { }
+
+local function do_one(a,b)
+ unicodes[tonumber(a)] = tonumber(b,16)
+end
+
+local function do_range(a,b,c)
+ c = tonumber(c,16)
+ for i=tonumber(a),tonumber(b) do
+ unicodes[i] = c
+ c = c + 1
+ end
+end
+
+local function do_name(a,b)
+ names[tonumber(a)] = b
+end
+
+local grammar = lpeg.P { "start",
+ start = number * spaces * number * lpeg.V("series"),
+ series = (spaces * (lpeg.V("one") + lpeg.V("range") + lpeg.V("named")) )^1,
+ one = (number * spaces * number) / do_one,
+ range = (number * periods * number * spaces * number) / do_range,
+ named = (number * spaces * name) / do_name
+}
+
+function fonts.cid.load(filename)
+ local data = io.loaddata(filename)
+ if data then
+ unicodes, names = { }, { }
+ grammar:match(data)
+ local supplement, registry, ordering = match(filename,"^(.-)%-(.-)%-()%.(.-)$")
+ return {
+ supplement = supplement,
+ registry = registry,
+ ordering = ordering,
+ filename = filename,
+ unicodes = unicodes,
+ names = names
+ }
+ else
+ return nil
+ end
+end
+
+local template = "%s-%s-%s.cidmap"
+
+local function locate(registry,ordering,supplement)
+ local filename = string.lower(format(template,registry,ordering,supplement))
+ local cidmap = fonts.cid.map[filename]
+ if not cidmap then
+ if trace_loading then
+ logs.report("load otf","checking cidmap, registry: %s, ordering: %s, supplement: %s, filename: %s",registry,ordering,supplement,filename)
+ end
+ local fullname = resolvers.find_file(filename,'cid') or ""
+ if fullname ~= "" then
+ cidmap = fonts.cid.load(fullname)
+ if cidmap then
+ if trace_loading then
+ logs.report("load otf","using cidmap file %s",filename)
+ end
+ fonts.cid.map[filename] = cidmap
+ cidmap.usedname = file.basename(filename)
+ return cidmap
+ end
+ end
+ end
+ return cidmap
+end
+
+function fonts.cid.getmap(registry,ordering,supplement)
+ -- cf Arthur R. we can safely scan upwards since cids are downward compatible
+ local supplement = tonumber(supplement)
+ if trace_loading then
+ logs.report("load otf","needed cidmap, registry: %s, ordering: %s, supplement: %s",registry,ordering,supplement)
+ end
+ local cidmap = locate(registry,ordering,supplement)
+ if not cidmap then
+ local cidnum = nil
+ -- next highest (alternatively we could start high)
+ if supplement < fonts.cid.max then
+ for supplement=supplement+1,fonts.cid.max do
+ local c = locate(registry,ordering,supplement)
+ if c then
+ cidmap, cidnum = c, supplement
+ break
+ end
+ end
+ end
+ -- next lowest (least worse fit)
+ if not cidmap and supplement > 0 then
+ for supplement=supplement-1,0,-1 do
+ local c = locate(registry,ordering,supplement)
+ if c then
+ cidmap, cidnum = c, supplement
+ break
+ end
+ end
+ end
+ -- prevent further lookups
+ if cidmap and cidnum > 0 then
+ for s=0,cidnum-1 do
+ filename = format(template,registry,ordering,s)
+ if not fonts.cid.map[filename] then
+ fonts.cid.map[filename] = cidmap -- copy of ref
+ end
+ end
+ end
+ end
+ return cidmap
+end
diff --git a/Master/texmf-dist/tex/context/base/font-col.lua b/Master/texmf-dist/tex/context/base/font-col.lua
new file mode 100644
index 00000000000..f2ee3f1ae4b
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/font-col.lua
@@ -0,0 +1,215 @@
+if not modules then modules = { } end modules ['font-col'] = {
+ version = 1.001,
+ comment = "companion to font-ini.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- possible optimization: delayed initialization of vectors
+
+local format, gmatch, texsprint, type = string.format, string.gmatch, tex.sprint, type
+local traverse_id, first_character = node.traverse_id, node.first_character
+
+local ctxcatcodes = tex.ctxcatcodes
+
+local trace_collecting = false trackers.register("fonts.collecting", function(v) trace_collecting = v end)
+
+local fontdata = fonts.ids
+
+local glyph = node.id('glyph')
+
+fonts.normalizers = fonts.normalizers or { }
+
+fonts.collections = fonts.collections or { }
+fonts.collections.definitions = fonts.collections.definitions or { }
+fonts.collections.vectors = fonts.collections.vectors or { }
+
+local collections = fonts.collections
+local definitions = fonts.collections.definitions
+local vectors = fonts.collections.vectors
+
+local list, current, active = { }, 0, false
+
+-- maybe also a copy
+
+function collections.reset(name,font)
+ if font and font ~= "" then
+ local d = definitions[name]
+ if d then
+ d[font] = nil
+ if not next(d) then
+ definitions[name] = nil
+ end
+ end
+ else
+ definitions[name] = nil
+ end
+end
+
+function collections.define(name,font,ranges,details)
+ -- todo: details -> method=force|conditional rscale=
+ -- todo: remap=name
+ local d = definitions[name]
+ if d then
+ if name and trace_collecting then
+ logs.report("fonts","def: extending set %s using %s",name, font)
+ end
+ else
+ if name and trace_collecting then
+ logs.report("fonts","def: defining set %s using %s",name, font)
+ end
+ d = { }
+ definitions[name] = d
+ end
+ details = aux.settings_to_hash(details)
+ -- todo, combine per font start/stop as arrays
+ for s in gmatch(ranges,"([^, ]+)") do
+ local start, stop, description = characters.getrange(s)
+ if start and stop then
+ if trace_collecting then
+ if description then
+ logs.report("fonts","def: using range %s (U+%04x-U+%04X, %s)",s,start,stop,description)
+ end
+ for i=1,#d do
+ local di = d[i]
+ if (start >= di.start and start <= di.stop) or (stop >= di.start and stop <= di.stop) then
+ logs.report("fonts","def: overlapping ranges U+%04x-U+%04X and U+%04x-U+%04X",start,stop,di.start,di.stop)
+ end
+ end
+ end
+ details.font, details.start, details.stop = font, start, stop
+ d[#d+1] = table.fastcopy(details)
+ end
+ end
+end
+
+function collections.stage_1(name)
+ local last = font.current()
+ if trace_collecting then
+ logs.report("fonts","def: registering font %s with name %s",last,name)
+ end
+ list[#list+1] = last
+end
+
+function collections.stage_2(name)
+ statistics.starttiming(fonts)
+ local d = definitions[name]
+ local t = { }
+ if trace_collecting then
+ logs.report("fonts","def: process collection %s",name)
+ end
+ for i=1,#d do
+ local f = d[i]
+ local id = list[i]
+ local start, stop = f.start, f.stop
+ if trace_collecting then
+ logs.report("fonts","def: remapping font %s to %s for range U+%04X - U+%04X",current,id,start,stop)
+ end
+ local check = toboolean(f.check or "false",true)
+ local force = toboolean(f.force or "true",true)
+ local remap = f.remap or nil
+ -- check: when true, only set when present in font
+ -- force: when false, then not set when already set
+ local oldchars = fontdata[current].characters
+ local newchars = fontdata[id].characters
+ if check then
+ for i=start,stop do
+ if newchars[i] and (force or (not t[i] and not oldchars[i])) then
+ if remap then
+ t[i] = { id, remap[i] }
+ else
+ t[i] = id
+ end
+ end
+ end
+ else
+ for i=start,stop do
+ if force or (not t[i] and not oldchars[i]) then
+ if remap then
+ t[i] = { id, remap[i] }
+ else
+ t[i] = id
+ end
+ end
+ end
+ end
+ end
+ vectors[current] = t
+ if trace_collecting then
+ logs.report("fonts","def: activating collection %s for font %s",name,current)
+ end
+ active = true
+ statistics.stoptiming(fonts)
+end
+
+local P, Cc = lpeg.P, lpeg.Cc
+local spec = (P("sa") + P("at") + P("scaled") + P("at") + P("mo")) * P(" ")^1 * (1-P(" "))^1 * P(" ")^0 * -1
+local okay = ((1-spec)^1 * spec * Cc(true)) + Cc(false)
+
+-- todo: check for already done
+
+function collections.prepare(name)
+ current = font.current()
+ if vectors[current] then
+ return
+ end
+ local d = definitions[name]
+ if d then
+ if trace_collecting then
+ local filename = file.basename(fontdata[current].filename or "?")
+ logs.report("fonts","def: applying collection %s to %s (file: %s)",name,current,filename)
+ end
+ list = { }
+ texsprint(ctxcatcodes,"\\dostartcloningfonts") -- move this to tex \dostart...
+ for i=1,#d do
+ local f = d[i]
+ local name = f.font
+ local scale = f.rscale or 1
+ if okay:match(name) then
+ texsprint(ctxcatcodes,format("\\doclonefonta{%s}{%s}",name,scale)) -- define with unique specs
+ else
+ texsprint(ctxcatcodes,format("\\doclonefontb{%s}{%s}",name,scale)) -- define with inherited specs
+ end
+ texsprint(ctxcatcodes,format("\\ctxlua{fonts.collections.stage_1('%s')}",name)) -- registering main font
+ end
+ texsprint(ctxcatcodes,format("\\ctxlua{fonts.collections.stage_2('%s')}",name)) -- preparing clone vectors
+ texsprint(ctxcatcodes,"\\dostopcloningfonts")
+ elseif trace_collecting then
+ local filename = file.basename(fontdata[current].filename or "?")
+ logs.report("fonts","def: error in applying collection %s to %s (file: %s)",name,current,filename)
+ end
+end
+
+function collections.message(message)
+ if trace_collecting then
+ logs.report("fonts","tex: %s",message)
+ end
+end
+
+function collections.process(head)
+ if active then
+ local done = false
+ for n in traverse_id(glyph,head) do
+ local v = vectors[n.font]
+ if v then
+ local id = v[n.char]
+ if id then
+ if type(id) == "table" then
+ local newid, newchar = id[1], id[2]
+ if trace_collecting then
+ logs.report("fonts","lst: remapping character %s in font %s to character %s in font %s",n.char,n.font,newchar,newid)
+ end
+ n.font, n.char = newid, newchar
+ else
+ if trace_collecting then
+ logs.report("fonts","lst: remapping font %s to %s for character %s",n.font,id,n.char)
+ end
+ n.font = id
+ end
+ end
+ end
+ end
+ end
+ return head, done
+end
diff --git a/Master/texmf-dist/tex/context/base/font-col.mkiv b/Master/texmf-dist/tex/context/base/font-col.mkiv
new file mode 100644
index 00000000000..22a67ac8eab
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/font-col.mkiv
@@ -0,0 +1,146 @@
+%D \module
+%D [ file=font-col,
+%D version=2008.06.11,
+%D title=\CONTEXT\ Font Macros,
+%D subtitle=Fallbacks (collections),
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+% ! EXPERIMENTAL ! code will be made more nice
+
+% todo: missing only, force always, multiple fallbacks with test, scale
+%
+% \resetfontfallback [whatever]
+%
+% \definefontfallback [whatever] [Slanted] [0x0060-0x007F] [force=yes]
+% \definefontfallback [whatever] [Bold] [0x0080-0x00FF,0x00A0-0x00AF] [rscale=1.2]
+% \definefontfallback [whatever] [BoldSlanted] [0x00C0-0x00C7] [check=yes,force=yes]
+
+\writestatus{loading}{ConTeXt Font Macros / Collections}
+
+\registerctxluafile{font-col}{1.001}
+
+\unprotect
+
+\def\definefontfallback
+ {\doquadrupleempty\dodefinefontfallback}
+
+\def\dodefinefontfallback[#1][#2][#3][#4]%
+ {\ctxlua{fonts.collections.define("#1","#2",\!!bs#3\!!es,\!!bs#4\!!es)}}
+
+\def\resetfontfallback
+ {\dodoubleempty\doresetfontfallback}
+
+\def\doresetfontfallback[#1][#2]%
+ {\ctxlua{fonts.collections.reset("#1","#2")}}
+
+% add fallbacks to last font
+
+\def\dodefinefontfallbacks#1%
+ {\ctxlua{fonts.collections.prepare("#1")}}
+
+% we might as well move the handling to lua but then we need to pass the
+% fallbacks, skewchar etc.
+
+\setfalse\doingfontfallbacks
+
+\def\dodefinefontfallbacksindeed#1%
+ {\begingroup
+ \settrue\doingfontfallbacks
+ \lastrawfontcall % sets current font id
+ \dodefinefontfallbacks#1%
+ \endgroup}
+
+\appendtoks
+ \ifconditional\doingfontfallbacks\else
+ \ifx\@@fontfallbacks\empty
+ \ifx\@@fontclassfallbacks\empty
+ \else
+ \dodefinefontfallbacksindeed\@@fontclassfallbacks
+ \fi
+ \else
+ \dodefinefontfallbacksindeed\@@fontfallbacks
+ \fi
+ \fi
+\to\everydefinefont
+
+\def\dostartcloningfonts
+ {\bgroup
+ \let\savedfontspec\somefontspec}
+
+\def\dostopcloningfonts
+ {\egroup}
+
+\def\doclonefonta#1#2% kind of dododefinefont
+ {\ctxlua{fonts.collections.message("defining #1 (relative scale: #2)")}%
+ \autofontsizefalse
+ \let\lastfontidentifier\s!dummy
+ \def\localrelativefontsize{#2}%
+ \let\localabsolutefontsize\fontbody
+ \lowleveldefinefont{#1}\rawfontidentifier
+ \csname\rawfontidentifier\endcsname
+ \autofontsizefalse
+ %\setfontcharacteristics
+ }%\the\everyfontswitch}
+
+\def\doclonefontb#1% #2
+ {\doclonefonta{#1 \savedfontspec}}
+
+% check : only replace when present in replacement font (default: no)
+% force : force replacent even when basefont has glyph (default: yes)
+
+% \definefontfallback [whatever] [Slanted] [0x0060-0x007F] [force=yes]
+% \definefontfallback [whatever] [Bold] [0x0080:0x00FF,0x00A0:0x00AF] [rscale=2.0]
+% \definefontfallback [whatever] [BoldSlanted] ["00C0-"00C7] [check=yes,force=yes]
+% \definefontfallback [whatever] [Mono] [latinextendeda] [force=yes] % 0x0100:0x017F
+% \definefontfallback [whatever] [Mono] [latin extended a] [force=yes] % 0x0100:0x017F
+%
+% \definefontsynonym[SerifPlus][Serif][fallbacks=whatever]
+%
+% \definefont[MySerif][SerifPlus at 10pt]
+%
+% \startcolumns[n=6]
+% \MySerif
+% \dostepwiserecurse {0} {65000} {1} {
+% \iffontchar\font\recurselevel
+% {\tttf\uchexnumbers\recurselevel:} \char\recurselevel\par
+% \fi
+% }
+% \stopcolumns
+
+% \definefontfeature[zh][mode=node,script=hang,lang=zhs]
+% \definefontfallback[serifwhatever] [lmroman10-regular] [0x0000-0x0400][force=yes]
+% \definefontfallback[serifboldwhatever] [lmroman10-bold] [0x0000-0x0400][force=yes]
+% \definefontfallback[serifitalicwhatever] [lmroman10-italic] [0x0000-0x0400][force=yes]
+% \definefontfallback[serifbolditalicwhatever][lmroman10-bolditalic][0x0000-0x0400][force=yes]
+%
+% \starttypescript [serif] [zhfont]
+% \definefontsynonym [zhserif] [AdobeSongStd-Light] [features=zh,fallbacks=serifwhatever]
+% \definefontsynonym [zhserifbold] [AdobeHeitiStd-Regular][features=zh,fallbacks=serifboldwhatever]
+% \definefontsynonym [zhserifitalic] [AdobeKaitiStd-Regular][features=zh,fallbacks=serifitalicwhatever]
+% \definefontsynonym [zhserifbolditalic][AdobeHeitiStd-Regular][features=zh,fallbacks=serifbolditalicwhatever]
+% \stoptypescript
+%
+% \starttypescript [serif][zhfont][name]
+% \definefontsynonym[Serif] [zhserif] % [fallbacks=serifwhatever]
+% \definefontsynonym[SerifBold] [zhserifbold] % [fallbacks=serifboldwhatever]
+% \definefontsynonym[SerifItalic] [zhserifitalic] % [fallbacks=serifitalicwhatever]
+% \definefontsynonym[SerifBoldItalic] [zhserifbolditalic] % [fallbacks=serifbolditalicwhatever]
+% \stoptypescript
+%
+% \starttypescript[myfont]
+% \definetypeface[myfont][rm][serif][zhfont]
+% \stoptypescript
+%
+% \usetypescript[myfont] \setupbodyfont[myfont,rm,12pt]
+%
+% \starttext
+% fonts {\bf fonts} {\bi fonts} {\it fonts}
+% \stoptext
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/font-ctx.lua b/Master/texmf-dist/tex/context/base/font-ctx.lua
new file mode 100644
index 00000000000..2f51c5229bc
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/font-ctx.lua
@@ -0,0 +1,392 @@
+if not modules then modules = { } end modules ['font-ctx'] = {
+ version = 1.001,
+ comment = "companion to font-ini.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local texsprint, count = tex.sprint, tex.count
+local format, concat, gmatch, match, find, lower = string.format, table.concat, string.gmatch, string.match, string.find, string.lower
+local tostring, next = tostring, next
+
+local ctxcatcodes = tex.ctxcatcodes
+
+local trace_defining = false trackers.register("fonts.defining", function(v) trace_defining = v end)
+
+local tfm = fonts.tfm
+local define = fonts.define
+local fontdata = fonts.ids
+local specify = define.specify
+
+specify.context_setups = specify.context_setups or { }
+specify.context_numbers = specify.context_numbers or { }
+specify.context_merged = specify.context_merged or { }
+specify.synonyms = specify.synonyms or { }
+
+local setups = specify.context_setups
+local numbers = specify.context_numbers
+local merged = specify.context_merged
+local synonyms = specify.synonyms
+local triggers = fonts.triggers
+
+--[[ldx--
+<p>So far we haven't really dealt with features (or whatever we want
+to pass along with the font definition. We distinguish the following
+situations:</p>
+situations:</p>
+
+<code>
+name:xetex like specs
+name@virtual font spec
+name*context specification
+</code>
+--ldx]]--
+
+function specify.predefined(specification)
+ local detail = specification.detail
+ if detail ~= "" then
+ -- detail = detail:gsub("["..define.splitsymbols.."].*$","") -- get rid of *whatever specs and such
+ if define.methods[detail] then -- since these may be appended at the
+ specification.features.vtf = { preset = detail } -- tex end by default
+ end
+ end
+ return specification
+end
+
+define.register_split("@", specify.predefined)
+
+storage.register("fonts/setups" , define.specify.context_setups , "fonts.define.specify.context_setups" )
+storage.register("fonts/numbers", define.specify.context_numbers, "fonts.define.specify.context_numbers")
+storage.register("fonts/merged", define.specify.context_merged, "fonts.define.specify.context_merged")
+storage.register("fonts/synonyms", define.specify.synonyms, "fonts.define.specify.synonyms")
+
+local normalize_meanings = fonts.otf.meanings.normalize
+local settings_to_hash = aux.settings_to_hash
+local default_features = fonts.otf.features.default
+
+local function preset_context(name,parent,features) -- currently otf only
+ if features == "" then
+ if find(parent,"=") then
+ features = parent
+ parent = ""
+ end
+ end
+ local number = (setups[name] and setups[name].number) or 0
+ local t = (features == "" and { }) or normalize_meanings(settings_to_hash(features))
+ -- todo: synonyms, and not otf bound
+ if parent ~= "" then
+ for p in gmatch(parent,"[^, ]+") do
+ local s = setups[p]
+ if s then
+ for k,v in next, s do
+ if t[k] == nil then
+ t[k] = v
+ end
+ end
+ end
+ end
+ end
+ -- these are auto set so in order to prevent redundant definitions
+ -- we need to preset them (we hash the features and adding a default
+ -- setting during initialization may result in a different hash)
+ for k,v in next, triggers do
+ if type(t[v]) == "nil" then
+ local vv = default_features[v]
+ if vv then t[v] = vv end
+ end
+ end
+ -- sparse 'm so that we get a better hash and less test (experimental
+ -- optimization)
+ local tt = { } -- maybe avoid tt
+ for k,v in next, t do
+ if v then tt[k] = v end
+ end
+ -- needed for dynamic features
+ if number == 0 then
+ number = #numbers + 1
+ numbers[number] = name
+ end
+ tt.number = number
+ setups[name] = tt
+ return number
+end
+
+local function context_number(name) -- will be replaced
+ local t = setups[name]
+ if not t then
+ return 0
+ elseif t.auto then
+ local lng = tonumber(tex.language)
+ local tag = name .. ":" .. lng
+ local s = setups[tag]
+ if s then
+ return s.number or 0
+ else
+ local script, language = languages.association(lng)
+ if t.script ~= script or t.language ~= language then
+ local s = table.fastcopy(t)
+ local n = #numbers + 1
+ setups[tag] = s
+ numbers[n] = tag
+ s.number = n
+ s.script = script
+ s.language = language
+ return n
+ else
+ setups[tag] = t
+ return t.number or 0
+ end
+ end
+ else
+ return t.number or 0
+ end
+end
+
+local function merge_context(currentnumber,extraname,option)
+ local current = setups[numbers[currentnumber]]
+ local extra = setups[extraname]
+ if extra then
+ local mergedfeatures, mergedname = { }, nil
+ if option < 0 then
+ if current then
+ for k, v in next, current do
+ if not extra[k] then
+ mergedfeatures[k] = v
+ end
+ end
+ end
+ mergedname = currentnumber .. "-" .. extraname
+ else
+ if current then
+ for k, v in next, current do
+ mergedfeatures[k] = v
+ end
+ end
+ for k, v in next, extra do
+ mergedfeatures[k] = v
+ end
+ mergedname = currentnumber .. "+" .. extraname
+ end
+ local number = #numbers + 1
+ mergedfeatures.number = number
+ numbers[number] = mergedname
+ merged[number] = option
+ setups[mergedname] = mergedfeatures
+ return number -- context_number(mergedname)
+ else
+ return currentnumber
+ end
+end
+
+local function register_context(fontnumber,extraname,option)
+ local extra = setups[extraname]
+ if extra then
+ local mergedfeatures, mergedname = { }, nil
+ if option < 0 then
+ mergedname = fontnumber .. "-" .. extraname
+ else
+ mergedname = fontnumber .. "+" .. extraname
+ end
+ for k, v in next, extra do
+ mergedfeatures[k] = v
+ end
+ local number = #numbers + 1
+ mergedfeatures.number = number
+ numbers[number] = mergedname
+ merged[number] = option
+ setups[mergedname] = mergedfeatures
+ return number -- context_number(mergedname)
+ else
+ return 0
+ end
+end
+
+specify.preset_context = preset_context
+specify.context_number = context_number
+specify.merge_context = merge_context
+specify.register_context = register_context
+
+local current_font = font.current
+local tex_attribute = tex.attribute
+
+local cache = { } -- concat might be less efficient than nested tables
+
+function fonts.withset(name,what)
+ local zero = tex_attribute[0]
+ local hash = zero .. "+" .. name .. "*" .. what
+ local done = cache[hash]
+ if not done then
+ done = merge_context(zero,name,what)
+ cache[hash] = done
+ end
+ tex_attribute[0] = done
+end
+function fonts.withfnt(name,what)
+ local font = current_font()
+ local hash = font .. "*" .. name .. "*" .. what
+ local done = cache[hash]
+ if not done then
+ done = register_context(font,name,what)
+ cache[hash] = done
+ end
+ tex_attribute[0] = done
+end
+
+function specify.show_context(name)
+ return setups[name] or setups[numbers[name]] or setups[numbers[tonumber(name)]] or { }
+end
+
+local function split_context(features)
+ return setups[features] or (preset_context(features,"","") and setups[features])
+end
+
+specify.split_context = split_context
+
+function specify.context_tostring(name,kind,separator,yes,no,strict,omit) -- not used
+ return aux.hash_to_string(table.merged(fonts[kind].features.default or {},setups[name] or {}),separator,yes,no,strict,omit)
+end
+
+local splitter = lpeg.splitat(",")
+
+function specify.starred(features) -- no longer fallbacks here
+ local detail = features.detail
+ if detail and detail ~= "" then
+ features.features.normal = split_context(detail)
+ else
+ features.features.normal = { }
+ end
+ return features
+end
+
+define.register_split('*',specify.starred)
+
+-- define (two steps)
+
+local P, C, Cc = lpeg.P, lpeg.C, lpeg.Cc
+
+local space = P(" ")
+local spaces = space^0
+local value = C((1-space)^1)
+local rest = C(P(1)^0)
+local scale_none = Cc(0)
+local scale_at = P("at") * Cc(1) * spaces * value
+local scale_sa = P("sa") * Cc(2) * spaces * value
+local scale_mo = P("mo") * Cc(3) * spaces * value
+local scale_scaled = P("scaled") * Cc(4) * spaces * value
+
+local sizepattern = spaces * (scale_at + scale_sa + scale_mo + scale_scaled + scale_none)
+local splitpattern = spaces * value * spaces * rest
+
+local specification --
+
+local get_specification = define.get_specification
+
+-- we can make helper macros which saves parsing (but normaly not
+-- that many calls, e.g. in mk a couple of 100 and in metafun 3500)
+
+function define.command_1(str)
+ statistics.starttiming(fonts)
+ local fullname, size = splitpattern:match(str)
+ local lookup, name, sub, method, detail = get_specification(fullname)
+ if not name then
+ logs.report("define font","strange definition '%s'",str)
+ texsprint(ctxcatcodes,"\\fcglet\\somefontname\\defaultfontfile")
+ elseif name == "unknown" then
+ texsprint(ctxcatcodes,"\\fcglet\\somefontname\\defaultfontfile")
+ else
+ texsprint(ctxcatcodes,format("\\fcxdef\\somefontname{%s}",name))
+ end
+ -- we can also use a count for the size
+ if size and size ~= "" then
+ local mode, size = sizepattern:match(size)
+ if size and mode then
+ count.scaledfontmode = mode
+ texsprint(ctxcatcodes,format("\\def\\somefontsize{%s}",size))
+ else
+ count.scaledfontmode = 0
+ texsprint(ctxcatcodes,format("\\let\\somefontsize\\empty",size))
+ end
+ elseif true then
+ -- so we don't need to check in tex
+ count.scaledfontmode = 2
+--~ texsprint(ctxcatcodes,format("\\def\\somefontsize{*}",size))
+ texsprint(ctxcatcodes,format("\\let\\somefontsize\\empty",size))
+ else
+ count.scaledfontmode = 0
+ texsprint(ctxcatcodes,format("\\let\\somefontsize\\empty",size))
+ end
+ specification = define.makespecification(str,lookup,name,sub,method,detail,size)
+end
+
+local n = 0
+
+function define.command_2(global,cs,str,size,classfeatures,fontfeatures,classfallbacks,fontfallbacks,mathsize,textsize)
+ -- name is now resolved and size is scaled cf sa/mo
+ local lookup, name, sub, method, detail = get_specification(str or "")
+ -- asome settings can be overloaded
+ if lookup and lookup ~= "" then specification.lookup = lookup end
+ specification.name = name
+ specification.size = size
+ specification.sub = sub
+ specification.mathsize = mathsize
+ specification.textsize = textsize
+ if detail and detail ~= "" then
+ specification.method, specification.detail = method or "*", detail
+ elseif specification.detail and specification.detail ~= "" then
+ -- already set
+ elseif fontfeatures and fontfeatures ~= "" then
+ specification.method, specification.detail = "*", fontfeatures
+ elseif classfeatures and classfeatures ~= "" then
+ specification.method, specification.detail = "*", classfeatures
+ end
+ if trace_defining then
+ logs.report("define font","memory usage before: %s",statistics.memused())
+ end
+ if fontfallbacks and fontfallbacks ~= "" then
+ specification.fallbacks = fontfallbacks
+ elseif classfallbacks and classfallbacks ~= "" then
+ specification.fallbacks = classfallbacks
+ end
+ local tfmdata = define.read(specification,size) -- id not yet known
+ if not tfmdata then
+ logs.report("define font","unable to define %s as \\%s",name,cs)
+ elseif type(tfmdata) == "number" then
+ if trace_defining then
+ logs.report("define font","reusing %s with id %s as \\%s (features: %s/%s, fallbacks: %s/%s)",name,tfmdata,cs,classfeatures,fontfeatures,classfallbacks,fontfallbacks)
+ end
+ tex.definefont(global,cs,tfmdata)
+ -- resolved (when designsize is used):
+ texsprint(ctxcatcodes,format("\\def\\somefontsize{%isp}",fontdata[tfmdata].size))
+ else
+ -- local t = os.clock(t)
+ local id = font.define(tfmdata)
+ -- print(name,os.clock()-t)
+ tfmdata.id = id
+ define.register(tfmdata,id)
+ tex.definefont(global,cs,id)
+ tfm.cleanup_table(tfmdata)
+ if trace_defining then
+ logs.report("define font","defining %s with id %s as \\%s (features: %s/%s, fallbacks: %s/%s)",name,id,cs,classfeatures,fontfeatures,classfallbacks,fontfallbacks)
+ end
+ -- resolved (when designsize is used):
+ texsprint(ctxcatcodes,format("\\def\\somefontsize{%isp}",tfmdata.size))
+ --~ if specification.fallbacks then
+ --~ fonts.collections.prepare(specification.fallbacks)
+ --~ end
+ end
+ if trace_defining then
+ logs.report("define font","memory usage after: %s",statistics.memused())
+ end
+ statistics.stoptiming(fonts)
+end
+
+--~ table.insert(readers.sequence,1,'vtf')
+
+--~ function readers.vtf(specification)
+--~ if specification.features.vtf and specification.features.vtf.preset then
+--~ return tfm.make(specification)
+--~ else
+--~ return nil
+--~ end
+--~ end
diff --git a/Master/texmf-dist/tex/context/base/font-def.lua b/Master/texmf-dist/tex/context/base/font-def.lua
index af6f5f39460..28afe670b55 100644
--- a/Master/texmf-dist/tex/context/base/font-def.lua
+++ b/Master/texmf-dist/tex/context/base/font-def.lua
@@ -6,7 +6,13 @@ if not modules then modules = { } end modules ['font-def'] = {
license = "see context related readme files"
}
--- check reuse of lmroman1o-regular vs lmr10
+local format, concat, gmatch, match, find, lower = string.format, table.concat, string.gmatch, string.match, string.find, string.lower
+local tostring, next = tostring, next
+
+local trace_defining = false trackers.register("fonts.defining", function(v) trace_defining = v end)
+
+trackers.register("fonts.loading", "fonts.defining", "otf.loading", "afm.loading", "tfm.loading")
+trackers.register("fonts.all", "fonts.*", "otf.*", "afm.*", "tfm.*")
--[[ldx--
<p>Here we deal with defining fonts. We do so by intercepting the
@@ -16,40 +22,31 @@ default loader that only handles <l n='tfm'/>.</p>
fonts = fonts or { }
fonts.define = fonts.define or { }
fonts.tfm = fonts.tfm or { }
+fonts.ids = fonts.ids or { }
fonts.vf = fonts.vf or { }
fonts.used = fonts.used or { }
-fonts.tfm.version = 1.01
-fonts.tfm.cache = containers.define("fonts", "tfm", fonts.tfm.version, false) -- better in font-tfm
+local tfm = fonts.tfm
+local vf = fonts.vf
+local define = fonts.define
---[[ldx--
-<p>Choosing a font by name and specififying its size is only part of the
-game. In order to prevent complex commands, <l n='xetex'/> introduced
-a method to pass feature information as part of the font name. At the
-risk of introducing nasty parsing and compatinility problems, this
-syntax was expanded over time.</p>
-
-<p>For the sake of users who have defined fonts using that syntax, we
-will support it, but we will provide additional methods as well.
-Normally users will not use this direct way, but use a more abstract
-interface.</p>
- --ldx]]--
-
---~ name, kind, features = fonts.features.split_xetex("blabla / B : + lnum ; foo = bar ; - whatever ; whow ; + hans ; test = yes")
-
-fonts.define.method = 3 -- 1: tfm 2: tfm and if not then afm 3: afm and if not then tfm
-fonts.define.auto_afm = true
-fonts.define.auto_otf = true
-fonts.define.specify = fonts.define.specify or { }
-fonts.define.splitsymbols = ""
-fonts.define.methods = fonts.define.methods or { }
-
-fonts.tfm.fonts = fonts.tfm.fonts or { }
-fonts.tfm.readers = fonts.tfm.readers or { }
-fonts.tfm.internalized = fonts.tfm.internalized or { } -- internal tex numbers
-fonts.tfm.id = fonts.tfm.id or { } -- font data, maybe use just fonts.ids (faster lookup)
-
-fonts.tfm.readers.sequence = { 'otf', 'ttf', 'afm', 'tfm' }
+tfm.version = 1.01
+tfm.cache = containers.define("fonts", "tfm", tfm.version, false) -- better in font-tfm
+
+define.method = "afm or tfm" -- afm, tfm, afm or tfm, tfm or afm
+define.specify = fonts.define.specify or { }
+define.methods = fonts.define.methods or { }
+
+tfm.fonts = tfm.fonts or { }
+tfm.readers = tfm.readers or { }
+tfm.internalized = tfm.internalized or { } -- internal tex numbers
+
+tfm.readers.sequence = { 'otf', 'ttf', 'afm', 'tfm' }
+
+tfm.auto_afm = true
+
+local readers = tfm.readers
+local sequence = readers.sequence
--[[ldx--
<p>We hardly gain anything when we cache the final (pre scaled)
@@ -72,28 +69,52 @@ synonym table.</p>
and prepares a table that will move along as we proceed.</p>
--ldx]]--
-function fonts.define.analyze(name, size, id)
- name = name or 'unknown'
- local specification = name
- local lookup, rest = specification:match("^(.-):(.+)$")
- local sub = ""
- if lookup == 'file' or lookup == 'name' then
- name = rest
- else
- lookup = 'file'
- end
- local font, method, detail = name:match("^(.-)(["..fonts.define.splitsymbols.."])(.+)$")
- if method and detail then
- name = font
- else
- method, detail = "", ""
+-- beware, we discard additional specs
+--
+-- method:name method:name(sub) method:name(sub)*spec method:name*spec
+-- name name(sub) name(sub)*spec name*spec
+-- name@spec*oeps
+
+local splitter, specifiers = nil, ""
+
+function define.add_specifier(symbol)
+ specifiers = specifiers .. symbol
+ local left = lpeg.P("(")
+ local right = lpeg.P(")")
+ local colon = lpeg.P(":")
+ local method = lpeg.S(specifiers)
+ local lookup = lpeg.C(lpeg.P("file")+lpeg.P("name")) * colon -- hard test, else problems with : method
+ local sub = left * lpeg.C(lpeg.P(1-left-right-method)^1) * right
+--~ local specification = lpeg.C(method) * lpeg.C(lpeg.P(1-method)^1)
+ local specification = lpeg.C(method) * lpeg.C(lpeg.P(1)^1)
+ local name = lpeg.C((1-sub-specification)^1)
+ splitter = lpeg.P((lookup + lpeg.Cc("")) * name * (sub + lpeg.Cc("")) * (specification + lpeg.Cc("")))
+end
+
+function define.get_specification(str)
+ return splitter:match(str)
+end
+
+function define.register_split(symbol,action)
+ define.add_specifier(symbol)
+ define.specify[symbol] = action
+end
+
+function define.makespecification(specification, lookup, name, sub, method, detail, size)
+ size = size or 655360
+ if trace_defining then
+ logs.report("define font","%s -> lookup: %s, name: %s, sub: %s, method: %s, detail: %s",
+ specification, (lookup ~= "" and lookup) or "[file]", (name ~= "" and name) or "-",
+ (sub ~= "" and sub) or "-", (method ~= "" and method) or "-", (detail ~= "" and detail) or "-")
end
- local mainfont, subfont = name:match("^(.*-)(%(.*-)(%)$")
- if mainfont and subfont then
- name, sub = mainfont, subfont
+--~ if specification.lookup then
+--~ lookup = specification.lookup -- can come from xetex [] syntax
+--~ specification.lookup = nil
+--~ end
+ if lookup ~= 'name' then -- for the moment only two lookups, maybe some day also system:
+ lookup = 'file'
end
- size = size or (65536*10)
- return {
+ local t = {
lookup = lookup, -- forced type
specification = specification, -- full specification
size = size, -- size in scaled points or -1000*n
@@ -103,55 +124,55 @@ function fonts.define.analyze(name, size, id)
detail = detail, -- specification
resolved = "", -- resolved font name
forced = "", -- forced loader
- id = id, -- font id
features = { }, -- preprocessed features
- -- hash = nil
- -- filename = nil,
- -- encoding = nil,
- -- format = nil,
}
+ return t
end
-function fonts.define.register_split(symbol,action)
- fonts.define.splitsymbols = fonts.define.splitsymbols .. "%" .. symbol
- fonts.define.specify[symbol] = action
+function define.analyze(specification, size)
+ -- can be optimized with locals
+ local lookup, name, sub, method, detail = define.get_specification(specification or "")
+ return define.makespecification(specification,lookup, name, sub, method, detail, size)
end
--[[ldx--
<p>A unique hash value is generated by:</p>
--ldx]]--
-function fonts.tfm.hash_features(specification)
- if specification.features then
+local sortedhashkeys = table.sortedhashkeys
+
+function tfm.hash_features(specification)
+ local features = specification.features
+ if features then
local t = { }
- local normal = specification.features.normal
- if not table.is_empty(normal) then
- for _, v in pairs(table.sortedkeys(normal)) do
- if v ~= "number" then
+ local normal = features.normal
+ if normal and next(normal) then
+ local f = sortedhashkeys(normal)
+ for i=1,#f do
+ local v = f[i]
+ if v ~= "number" and v ~= "features" then -- i need to figure this out, features
t[#t+1] = v .. '=' .. tostring(normal[v])
end
end
end
- local vtf = specification.features.vtf
- if not table.is_empty(vtf) then
- for _, v in pairs(table.sortedkeys(vtf)) do
+ local vtf = features.vtf
+ if vtf and next(vtf) then
+ local f = sortedhashkeys(vtf)
+ for i=1,#f do
+ local v = f[i]
t[#t+1] = v .. '=' .. tostring(vtf[v])
end
end
- if next(t) then
- return table.concat(t,"+")
+--~ if specification.mathsize then
+--~ t[#t+1] = "mathsize=" .. specification.mathsize
+--~ end
+ if #t > 0 then
+ return concat(t,"+")
end
end
return "unknown"
end
---~ function fonts.tfm.hash_instance(specification)
---~ if not specification.hash then
---~ specification.hash = fonts.tfm.hash_features(specification)
---~ end
---~ return specification.hash .. ' @ ' .. tostring(specification.size)
---~ end
-
fonts.designsizes = { }
--[[ldx--
@@ -162,38 +183,57 @@ when we get rid of base mode we can optimize even further by sharing, but then w
loose our testcases for <l n='luatex'/>.</p>
--ldx]]--
-function fonts.tfm.hash_instance(specification,force)
- local hash, size = specification.hash, specification.size
+function tfm.hash_instance(specification,force)
+ local hash, size, fallbacks = specification.hash, specification.size, specification.fallbacks
if force or not hash then
- hash = fonts.tfm.hash_features(specification)
+ hash = tfm.hash_features(specification)
specification.hash = hash
end
if size < 1000 and fonts.designsizes[hash] then
- size = fonts.tfm.scaled(size, fonts.designsizes[hash])
+ size = math.round(tfm.scaled(size, fonts.designsizes[hash]))
specification.size = size
end
- return hash .. ' @ ' .. tostring(size)
+--~ local mathsize = specification.mathsize or 0
+--~ if mathsize > 0 then
+--~ local textsize = specification.textsize
+--~ if fallbacks then
+--~ return hash .. ' @ ' .. tostring(size) .. ' [ ' .. tostring(mathsize) .. ' : ' .. tostring(textsize) .. ' ] @ ' .. fallbacks
+--~ else
+--~ return hash .. ' @ ' .. tostring(size) .. ' [ ' .. tostring(mathsize) .. ' : ' .. tostring(textsize) .. ' ]'
+--~ end
+--~ else
+ if fallbacks then
+ return hash .. ' @ ' .. tostring(size) .. ' @ ' .. fallbacks
+ else
+ return hash .. ' @ ' .. tostring(size)
+ end
+--~ end
end
--[[ldx--
<p>We can resolve the filename using the next function:</p>
--ldx]]--
-function fonts.define.resolve(specification)
- if specification.lookup == 'name' then
- specification.resolved, specification.sub = fonts.names.resolve(specification.name,specification.sub)
- if specification.resolved then
- specification.forced = file.extname(specification.resolved)
- specification.name = file.removesuffix(specification.resolved)
+function define.resolve(specification)
+ if not specification.resolved or specification.resolved == "" then -- resolved itself not per se in mapping hash
+ if specification.lookup == 'name' then
+ specification.resolved, specification.sub = fonts.names.resolve(specification.name,specification.sub)
+ if specification.resolved then
+ specification.forced = file.extname(specification.resolved)
+ specification.name = file.removesuffix(specification.resolved)
+ end
+ elseif specification.lookup == 'file' then
+ specification.forced = file.extname(specification.name)
+ specification.name = file.removesuffix(specification.name)
end
- elseif specification.lookup == 'file' then
- specification.forced = file.extname(specification.name)
- specification.name = file.removesuffix(specification.name)
end
if specification.forced == "" then
specification.forced = nil
+ else
+ specification.forced = specification.forced
end
- specification.hash = specification.name .. ' @ ' .. fonts.tfm.hash_features(specification)
+--~ specification.hash = specification.name .. ' @ ' .. tfm.hash_features(specification)
+ specification.hash = lower(specification.name .. ' @ ' .. tfm.hash_features(specification))
if specification.sub and specification.sub ~= "" then
specification.hash = specification.sub .. ' @ ' .. specification.hash
end
@@ -216,25 +256,29 @@ features (esp in virtual fonts) so let's not do that now.</p>
specification yet.</p>
--ldx]]--
-function fonts.tfm.read(specification)
- garbagecollector.push()
- input.starttiming(fonts)
- local hash = fonts.tfm.hash_instance(specification)
- local tfmtable = fonts.tfm.fonts[hash] -- hashes by size !
+function tfm.read(specification)
+ local hash = tfm.hash_instance(specification)
+ local tfmtable = tfm.fonts[hash] -- hashes by size !
if not tfmtable then
- if specification.forced and specification.forced ~= "" then
- tfmtable = fonts.tfm.readers[specification.forced](specification)
+ local forced = specification.forced or ""
+ if forced ~= "" then
+ tfmtable = readers[lower(forced)](specification)
if not tfmtable then
- logs.error("define font",string.format("forced type %s of %s not found",specification.forced,specification.name))
+ logs.report("define font","forced type %s of %s not found",forced,specification.name)
end
else
- for _, reader in ipairs(fonts.tfm.readers.sequence) do
- if fonts.tfm.readers[reader] then -- not really needed
- if fonts.trace then
- logs.report("define font",string.format("trying type %s for %s with file %s",reader,specification.name,specification.filename or "unknown"))
+ for s=1,#sequence do -- reader sequence
+ local reader = sequence[s]
+ if readers[reader] then -- not really needed
+ if trace_defining then
+ logs.report("define font","trying (sequence driven) type %s for %s with file %s",reader,specification.name,specification.filename or "unknown")
+ end
+ tfmtable = readers[reader](specification)
+ if tfmtable then
+ break
+ else
+ specification.filename = nil
end
- tfmtable = fonts.tfm.readers[reader](specification)
- if tfmtable then break end
end
end
end
@@ -244,15 +288,13 @@ function fonts.tfm.read(specification)
else
tfmtable.embedding = "subset"
end
- fonts.tfm.fonts[hash] = tfmtable
+ tfm.fonts[hash] = tfmtable
fonts.designsizes[specification.hash] = tfmtable.designsize -- we only know this for sure after loading once
--~ tfmtable.mode = specification.features.normal.mode or "base"
end
end
- input.stoptiming(fonts)
- garbagecollector.pop()
if not tfmtable then
- logs.error("define font",string.format("font with name %s is not found",specification.name))
+ logs.report("define font","font with name %s is not found",specification.name)
end
return tfmtable
end
@@ -261,319 +303,159 @@ end
<p>For virtual fonts we need a slightly different approach:</p>
--ldx]]--
-function fonts.tfm.read_and_define(name,size) -- no id
- local specification = fonts.define.analyze(name,size,nil)
- if specification.method and fonts.define.specify[specification.method] then
- specification = fonts.define.specify[specification.method](specification)
+function tfm.read_and_define(name,size) -- no id
+ local specification = define.analyze(name,size)
+ local method = specification.method
+ if method and define.specify[method] then
+ specification = define.specify[method](specification)
end
- specification = fonts.define.resolve(specification)
- local hash = fonts.tfm.hash_instance(specification)
- local id = fonts.tfm.internalized[hash]
+ specification = define.resolve(specification)
+ local hash = tfm.hash_instance(specification)
+ local id = define.registered(hash)
if not id then
- local fontdata = fonts.tfm.read(specification)
+ local fontdata = tfm.read(specification)
if fontdata then
- if not fonts.tfm.internalized[hash] then
- id = font.define(fontdata)
- fonts.tfm.id[id] = fontdata
- fonts.tfm.internalized[hash] = id
- if fonts.trace then
- logs.report("define font", string.format("loading at 1 id %s, hash: %s",id,hash))
- end
- else
- id = fonts.tfm.internalized[hash]
- end
+ fontdata.hash = hash
+ id = font.define(fontdata)
+ define.register(fontdata,id)
+ tfm.cleanup_table(fontdata)
else
id = 0 -- signal
end
end
- return fonts.tfm.id[id], id
+ return fonts.ids[id], id
end
--[[ldx--
-<p>A naive callback could be the following:</p>
-
-<code>
-callback.register('define_font', function(name,size,id)
- return fonts.define.read(fonts.define.resolve(fonts.define.analyze(name,size,id)))
-end)
-</code>
---ldx]]--
-
-
---[[ldx--
<p>Next follow the readers. This code was written while <l n='luatex'/>
evolved. Each one has its own way of dealing with its format.</p>
--ldx]]--
-function fonts.tfm.readers.opentype(specification,suffix,what)
- if fonts.define.auto_otf then
- local fullname, tfmtable = nil, nil
- fullname = input.findbinfile(texmf.instance,specification.name,suffix) or ""
- if fullname == "" then
- local fb = fonts.names.old_to_new[specification.name]
- if fb then
- fullname = input.findbinfile(texmf.instance,fb,suffix) or ""
- end
- end
- if fullname == "" then
- local fb = fonts.names.new_to_old[specification.name]
- if fb then
- fullname = input.findbinfile(texmf.instance,fb,suffix) or ""
- end
- end
- if fullname ~= "" then
- specification.filename, specification.format = fullname, what -- hm, so we do set the filename, then
- tfmtable = fonts.tfm.read_from_open_type(specification) -- we need to do it for all matches / todo
- end
- return tfmtable
- else
- return nil
+local function check_tfm(specification,fullname)
+ -- ofm directive blocks local path search unless set; btw, in context we
+ -- don't support ofm files anyway as this format is obsolete
+ local foundname = resolvers.findbinfile(fullname, 'tfm') or "" -- just to be sure
+ if foundname == "" then
+ foundname = resolvers.findbinfile(fullname, 'ofm') or "" -- bonus for usage outside context
end
-end
-
-function fonts.tfm.readers.otf(specification) return fonts.tfm.readers.opentype(specification,"otf","opentype") end
-function fonts.tfm.readers.ttf(specification) return fonts.tfm.readers.opentype(specification,"ttf","truetype") end
-function fonts.tfm.readers.ttc(specification) return fonts.tfm.readers.opentype(specification,"ttf","truetype") end -- !!
-
-function fonts.tfm.readers.afm(specification,method)
- local fullname, tfmtable = nil, nil
- method = method or fonts.define.method
- if method == 2 then
- fullname = input.findbinfile(texmf.instance,specification.name,"ofm") or ""
- if fullname == "" then
- tfmtable = fonts.tfm.read_from_afm(specification)
- else -- redundant
- specification.filename = fullname
- tfmtable = fonts.tfm.read_from_tfm(specification)
- end
- elseif method == 3 then -- maybe also findbinfile here
- if fonts.define.auto_afm then
- tfmtable = fonts.tfm.read_from_afm(specification)
- end
- elseif method == 4 then -- maybe also findbinfile here
- tfmtable = fonts.tfm.read_from_afm(specification)
- end
- return tfmtable
-end
-
-function fonts.tfm.readers.tfm(specification)
- local fullname, tfmtable = nil, nil
- tfmtable = fonts.tfm.read_from_tfm(specification)
- return tfmtable
-end
-
---[[ldx--
-<p>So far we haven't really dealt with features (or whatever we want
-to pass along with the font definition. We distinguish the following
-situations:</p>
-situations:</p>
-
-<code>
-name:xetex like specs
-name@virtual font spec
-name*context specification
-</code>
-
-<p>Of course one can always define more.</p>
---ldx]]--
-
-function fonts.define.specify.predefined(specification)
- if specification.detail ~= "" and fonts.define.methods[specification.detail] then
- specification.features.vtf = { preset = specification.detail }
+ if foundname ~= "" then
+ specification.filename, specification.format = foundname, "ofm"
+ return tfm.read_from_tfm(specification)
end
- return specification
end
-fonts.define.register_split("@", fonts.define.specify.predefined)
-
-function fonts.define.specify.colonized(specification) -- xetex mode
- local list = { }
- if specification.detail and specification.detail ~= "" then
- local expanded_features = { }
- local function expand(features)
- for _,v in pairs(features:split(";")) do
- expanded_features[#expanded_features+1] = v
- end
- end
- expand(specification.detail)
- for _,v in pairs(expanded_features) do
- local a, b = v:match("^%s*(%S+)%s*=%s*(%S+)%s*$")
- if a and b then
- list[a] = b:is_boolean()
- if type(list[a]) == "nil" then
- list[a] = b
- end
- else
- local a, b = v:match("^%s*([%+%-]?)%s*(%S+)%s*$")
- if a and b then
- list[b] = a ~= "-"
+local function check_afm(specification,fullname)
+ local foundname = resolvers.findbinfile(fullname, 'afm') or "" -- just to be sure
+ if foundname == "" and tfm.auto_afm then
+ local encoding, shortname = match(fullname,"^(.-)%-(.*)$") -- context: encoding-name.*
+ if encoding and shortname and fonts.enc.known[encoding] then
+ shortname = resolvers.findbinfile(shortname,'afm') or "" -- just to be sure
+ if shortname ~= "" then
+ foundname = shortname
+ -- tfm.set_normal_feature(specification,'encoding',encoding) -- will go away
+ if trace_loading then
+ logs.report("load afm","stripping encoding prefix from filename %s",afmname)
end
end
end
end
- specification.features.normal = list
- return specification
+ if foundname ~= "" then
+ specification.filename, specification.format = foundname, "afm"
+ return tfm.read_from_afm(specification)
+ end
end
-function fonts.tfm.make(specification)
- local fvm = fonts.define.methods[specification.features.vtf.preset]
- if fvm then
- return fvm(specification)
+function readers.tfm(specification)
+ local fullname, tfmtable = specification.filename or "", nil
+ if fullname == "" then
+ local forced = specification.forced or ""
+ if forced ~= "" then
+ tfmtable = check_tfm(specification,specification.name .. "." .. forced)
+ end
+ if not tfmtable then
+ tfmtable = check_tfm(specification,specification.name)
+ end
else
- return nil
+ tfmtable = check_tfm(specification,fullname)
end
+ return tfmtable
end
-fonts.define.register_split(":", fonts.define.specify.colonized)
-
-fonts.define.specify.context_setups = fonts.define.specify.context_setups or { }
-fonts.define.specify.context_numbers = fonts.define.specify.context_numbers or { }
-fonts.define.specify.synonyms = fonts.define.specify.synonyms or { }
-
-input.storage.register(false,"fonts/setups" , fonts.define.specify.context_setups , "fonts.define.specify.context_setups" )
-input.storage.register(false,"fonts/numbers", fonts.define.specify.context_numbers, "fonts.define.specify.context_numbers")
-
---~ local t = aux.settings_to_hash(features)
---~ for k,v in pairs(t) do
---~ k = synonyms[k] or k
---~ t[k] = v:is_boolean()
---~ if type(t[k]) == "nil" then
---~ t[k] = v
---~ end
---~ end
-
-fonts.triggers = fonts.triggers or { }
-
-function fonts.define.specify.preset_context(name,parent,features)
- if features == "" then
- if parent:find("=") then
- features = parent
- parent = ""
+function readers.afm(specification,method)
+ local fullname, tfmtable = specification.filename or "", nil
+ if fullname == "" then
+ local forced = specification.forced or ""
+ if forced ~= "" then
+ tfmtable = check_afm(specification,specification.name .. "." .. forced)
end
- end
- local fds = fonts.define.specify
- local setups, numbers, synonyms = fds.context_setups, fds.context_numbers, fds.synonyms
- local number = (setups[name] and setups[name].number) or 0
- local t = (features == "" and { }) or fonts.otf.meanings.normalize(aux.settings_to_hash(features))
- -- todo: synonyms, and not otf bound
- if parent ~= "" then
- for p in parent:gmatch("[^, ]+") do
- local s = setups[p]
- if s then
- for k,v in pairs(s) do
- if t[k] == nil then
- t[k] = v
- end
- end
+ if not tfmtable then
+ method = method or define.method or "afm or tfm"
+ if method == "tfm" then
+ tfmtable = check_tfm(specification,specification.name)
+ elseif method == "afm" then
+ tfmtable = check_afm(specification,specification.name)
+ elseif method == "tfm or afm" then
+ tfmtable = check_tfm(specification,specification.name) or check_afm(specification,specification.name)
+ else -- method == "afm or tfm" or method == "" then
+ tfmtable = check_afm(specification,specification.name) or check_tfm(specification,specification.name)
end
end
- end
- -- these are auto set so in order to prevent redundant definitions
- -- we need to preset them (we hash the features and adding a default
- -- setting during initialization may result in a different hash)
- local default = fonts.otf.features.default
- for k,v in pairs(fonts.triggers) do
- if type(t[v]) == "nil" then
- local vv = default[v]
- if vv then t[v] = vv end
- end
- end
- -- sparse 'm so that we get a better hash and less test (experimental
- -- optimization)
- local tt = { }
- for k,v in pairs(t) do
- if v then tt[k] = v end
- end
- -- needed for dynamic features
- if number == 0 then
- numbers[#numbers+1] = name
- tt.number = #numbers
else
- tt.number = number
+ tfmtable = check_afm(specification,fullname)
end
- setups[name] = tt
+ return tfmtable
end
---~ function fonts.define.specify.context_number(name)
---~ local s = fonts.define.specify.context_setups[name]
---~ return (s and s.number) or -1
---~ end
-
-do
-
- -- here we clone features according to languages
-
- local default = 0
- local setups = fonts.define.specify.context_setups
- local numbers = fonts.define.specify.context_numbers
-
- function fonts.define.specify.context_number(name)
- local t = setups[name]
- if not t then
- return default
- elseif t.auto then
- local lng = tonumber(tex.language)
- local tag = name .. ":" .. lng
- local s = setups[tag]
- if s then
- return s.number or default
- else
- local script, language = languages.association(lng)
- if t.script ~= script or t.language ~= language then
- local s = table.fastcopy(t)
- local n = #numbers + 1
- setups[tag] = s
- numbers[n] = tag
- s.number = n
- s.script = script
- s.language = language
- return n
- else
- setups[tag] = t
- return t.number or default
- end
- end
- else
- return t.number or default
+local function check_otf(specification,suffix,what)
+ local fullname, tfmtable = resolvers.findbinfile(specification.name,suffix) or "", nil
+ if fullname == "" then
+ local fb = fonts.names.old_to_new[specification.name]
+ if fb then
+ fullname = resolvers.findbinfile(fb,suffix) or ""
end
end
-
-end
-
-function fonts.define.specify.context_tostring(name,kind,separator,yes,no,strict,omit)
- return aux.hash_to_string(table.merged(fonts[kind].features.default or {},fonts.define.specify.context_setups[name] or {}),separator,yes,no,strict,omit)
-end
-
-function fonts.define.specify.split_context(features)
- if fonts.define.specify.context_setups[features] then
- return fonts.define.specify.context_setups[features]
- else -- ? ? ?
- return fonts.define.specify.preset_context("***",features)
+ if fullname == "" then
+ local fb = fonts.names.new_to_old[specification.name]
+ if fb then
+ fullname = resolvers.findbinfile(fb,suffix) or ""
+ end
end
+ if fullname ~= "" then
+ specification.filename, specification.format = fullname, what -- hm, so we do set the filename, then
+ tfmtable = tfm.read_from_open_type(specification) -- we need to do it for all matches / todo
+ end
+ return tfmtable
end
-function fonts.define.specify.starred(features)
- if features.detail and features.detail ~= "" then
- features.features.normal = fonts.define.specify.split_context(features.detail)
+function readers.opentype(specification,suffix,what)
+ local forced = specification.forced or ""
+ if forced == "otf" then
+ return check_otf(specification,forced,"opentype")
+ elseif forced == "ttf" then
+ return check_otf(specification,forced,"truetype")
+ elseif forced == "ttf" then
+ return check_otf(specification,forced,"truetype")
else
- features.features.normal = { }
+ return check_otf(specification,suffix,what)
end
- return features
end
-fonts.define.register_split('*',fonts.define.specify.starred)
+function readers.otf (specification) return readers.opentype(specification,"otf","opentype") end
+function readers.ttf (specification) return readers.opentype(specification,"ttf","truetype") end
+function readers.ttc (specification) return readers.opentype(specification,"ttf","truetype") end -- !!
+function readers.dfont(specification) return readers.opentype(specification,"ttf","truetype") end -- !!
--[[ldx--
<p>We need to check for default features. For this we provide
a helper function.</p>
--ldx]]--
-function fonts.define.check(features,defaults) -- nb adapts features !
+function define.check(features,defaults) -- nb adapts features !
local done = false
if table.is_empty(features) then
features, done = table.fastcopy(defaults), true
else
- for k,v in pairs(defaults) do
+ for k,v in next, defaults do
if features[k] == nil then
features[k], done = v, true
end
@@ -594,43 +476,84 @@ not gain much. By the way, passing id's back to in the callback was
introduced later in the development.</p>
--ldx]]--
-function fonts.define.read(name,size,id)
- local specification = fonts.define.analyze(name,size,id)
- if specification.method and fonts.define.specify[specification.method] then
- specification = fonts.define.specify[specification.method](specification)
+define.last = nil
+
+function define.register(fontdata,id)
+ if fontdata and id then
+ local hash = fontdata.hash
+ if not tfm.internalized[hash] then
+ if trace_defining then
+ logs.report("define font","loading at 2 id %s, hash: %s",id or "?",hash or "?")
+ end
+ fonts.ids[id] = fontdata
+ tfm.internalized[hash] = id
+ end
end
- specification = fonts.define.resolve(specification)
- local hash = fonts.tfm.hash_instance(specification)
- if true then
- --~ local fontdata = containers.read(fonts.cache(),hash) -- for tracing purposes
+end
+
+function define.registered(hash)
+ local id = tfm.internalized[hash]
+ return id, id and fonts.ids[id]
+end
+
+local cache_them = false
+
+function tfm.make(specification)
+ -- currently fonts are scaled while constructing the font, so we
+ -- have to do scaling of commands in the vf at that point using
+ -- e.g. "local scale = g.factor or 1" after all, we need to work
+ -- with copies anyway and scaling needs to be done at some point;
+ -- however, when virtual tricks are used as feature (makes more
+ -- sense) we scale the commands in fonts.tfm.scale (and set the
+ -- factor there)
+ local fvm = define.methods[specification.features.vtf.preset]
+ if fvm then
+ return fvm(specification)
+ else
+ return nil
+ end
+end
+
+function define.read(specification,size,id) -- id can be optional, name can already be table
+ statistics.starttiming(fonts)
+ if type(specification) == "string" then
+ specification = define.analyze(specification,size)
+ end
+ local method = specification.method
+ if method and define.specify[method] then
+ specification = define.specify[method](specification)
+ end
+ specification = define.resolve(specification)
+ local hash = tfm.hash_instance(specification)
+ if cache_them then
+ local fontdata = containers.read(fonts.cache(),hash) -- for tracing purposes
end
- local fontdata = fonts.tfm.internalized[hash] -- id
+ local fontdata = define.registered(hash) -- id
if not fontdata then
if specification.features.vtf and specification.features.vtf.preset then
- fontdata = fonts.tfm.make(specification)
+ fontdata = tfm.make(specification)
else
- fontdata = fonts.tfm.read(specification)
+ fontdata = tfm.read(specification)
if fontdata then
- fonts.tfm.check_virtual_id(fontdata)
+ tfm.check_virtual_id(fontdata)
end
end
- if true then
- --~ fontdata = containers.write(fonts.cache(),hash,fontdata) -- for tracing purposes
+ if cache_them then
+ fontdata = containers.write(fonts.cache(),hash,fontdata) -- for tracing purposes
end
- if not fonts.tfm.internalized[hash] then
- fonts.tfm.id[id] = fontdata
- fonts.tfm.internalized[hash] = id
- if fonts.trace then
- logs.report("define font", string.format("loading at 2 id %s, hash: %s",id,hash))
+ if fontdata then
+ fontdata.hash = hash
+ fontdata.cache = "no"
+ if id then
+ define.register(fontdata,id)
end
- else
- fontdata = fonts.tfm.internalized[hash]
end
end
+ define.last = fontdata or id -- todo ! ! ! ! !
if not fontdata then
- logs.error("define font", string.format("unknown font %s, loading aborted",specification.name))
- elseif fonts.trace and type(fontdata) == "table" then
- logs.report("define font",string.format("using %s font with id %s, n:%s s:%s b:%s e:%s p:%s f:%s",
+ logs.report("define font", "unknown font %s, loading aborted",specification.name)
+ elseif trace_defining and type(fontdata) == "table" then
+ logs.report("define font","using %s font with id %s, name:%s size:%s bytes:%s encoding:%s fullname:%s filename:%s",
fontdata.type or "unknown",
id or "?",
fontdata.name or "?",
@@ -638,41 +561,33 @@ function fonts.define.read(name,size,id)
fontdata.encodingbytes or "?",
fontdata.encodingname or "unicode",
fontdata.fullname or "?",
- file.basename(fontdata.filename or "?")))
+ file.basename(fontdata.filename or "?"))
+
end
+ statistics.stoptiming(fonts)
return fontdata
end
---~ table.insert(fonts.tfm.readers.sequence,1,'vtf')
-
---~ function fonts.tfm.readers.vtf(specification)
---~ if specification.features.vtf and specification.features.vtf.preset then
---~ return fonts.tfm.make(specification)
---~ else
---~ return nil
---~ end
---~ end
-
-function fonts.vf.find(name)
+function vf.find(name)
name = file.removesuffix(file.basename(name))
- if fonts.tfm.resolve_vf then
+ if tfm.resolve_vf then
local format = fonts.logger.format(name)
if format == 'tfm' or format == 'ofm' then
- if fonts.trace then
- logs.report("define font",string.format("locating vf for %s",name))
+ if trace_defining then
+ logs.report("define font","locating vf for %s",name)
end
- return input.findbinfile(texmf.instance,name,"ovf")
+ return resolvers.findbinfile(name,"ovf")
else
- if fonts.trace then
- logs.report("define font",string.format("vf for %s is already taken care of",name))
+ if trace_defining then
+ logs.report("define font","vf for %s is already taken care of",name)
end
return nil -- ""
end
else
- if fonts.trace then
- logs.report("define font",string.format("locating vf for %s",name))
+ if trace_defining then
+ logs.report("define font","locating vf for %s",name)
end
- return input.findbinfile(texmf.instance,name,"ovf")
+ return resolvers.findbinfile(name,"ovf")
end
end
@@ -680,5 +595,5 @@ end
<p>We overload both the <l n='tfm'/> and <l n='vf'/> readers.</p>
--ldx]]--
-callback.register('define_font' , fonts.define.read)
-callback.register('find_vf_file', fonts.vf.find ) -- not that relevant any more
+callback.register('define_font' , define.read)
+callback.register('find_vf_file', vf.find ) -- not that relevant any more
diff --git a/Master/texmf-dist/tex/context/base/font-dum.lua b/Master/texmf-dist/tex/context/base/font-dum.lua
new file mode 100644
index 00000000000..ef267a42c14
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/font-dum.lua
@@ -0,0 +1,116 @@
+if not modules then modules = { } end modules ['font-dum'] = {
+ version = 1.001,
+ comment = "companion to luatex-*.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+fonts = fonts or { }
+
+-- general
+
+fonts.otf.pack = false
+fonts.tfm.resolve_vf = false -- no sure about this
+
+-- readers
+
+fonts.tfm.readers = fonts.tfm.readers or { }
+fonts.tfm.readers.sequence = { 'otf', 'ttf', 'tfm' }
+fonts.tfm.readers.afm = nil
+
+-- define
+
+fonts.define = fonts.define or { }
+
+--~ fonts.define.method = "tfm"
+
+fonts.define.specify.colonized_default_lookup = "name"
+
+function fonts.define.get_specification(str)
+ return "", str, "", ":", str
+end
+
+-- logger
+
+fonts.logger = fonts.logger or { }
+
+function fonts.logger.save()
+end
+
+-- names
+
+fonts.names = fonts.names or { }
+
+fonts.names.basename = "luatex-fonts-names.lua"
+fonts.names.new_to_old = { }
+fonts.names.old_to_new = { }
+
+local data, loaded = nil, false
+
+function fonts.names.resolve(name,sub)
+ if not loaded then
+ local basename = fonts.names.basename
+ if basename and basename ~= "" then
+ for _, format in ipairs { "lua", "tex", "other text files" } do
+ local foundname = resolvers.find_file(basename,format) or ""
+ if foundname ~= "" then
+ data = dofile(foundname)
+ if data then
+ local d = { }
+ for k, v in pairs(data.mapping) do
+ local t = v[1]
+ if t == "ttf" or t == "otf" or t == "ttc" or t == "dfont" then
+ d[k] = v
+ end
+ end
+ data.mapping = d
+ end
+ break
+ end
+ end
+ end
+ loaded = true
+ end
+ if type(data) == "table" and data.version == 1.08 then
+ local condensed = string.gsub(string.lower(name),"[^%a%d]","")
+ local found = data.mapping and data.mapping[condensed]
+ if found then
+ local filename, is_sub = found[3], found[4]
+ if is_sub then is_sub = found[2] end
+ return filename, is_sub
+ else
+ return name, false -- fallback to filename
+ end
+ end
+end
+
+-- For the moment we put this (adapted) pseudo feature here.
+
+table.insert(fonts.triggers,"itlc")
+
+local function itlc(tfmdata,value)
+ if value then
+ -- the magic 40 and it formula come from Dohyun Kim
+ local metadata = tfmdata.shared.otfdata.metadata
+ if metadata then
+ local italicangle = metadata.italicangle
+ if italicangle and italicangle ~= 0 then
+ local uwidth = (metadata.uwidth or 40)/2
+ for unicode, d in next, tfmdata.descriptions do
+ local it = d.boundingbox[3] - d.width + uwidth
+ if it ~= 0 then
+ d.italic = it
+ end
+ end
+ tfmdata.has_italic = true
+ end
+ end
+ end
+end
+
+fonts.initializers.base.otf.itlc = itlc
+fonts.initializers.node.otf.itlc = itlc
+
+function fonts.register_message()
+end
diff --git a/Master/texmf-dist/tex/context/base/font-enc.lua b/Master/texmf-dist/tex/context/base/font-enc.lua
index fc77aefb946..faeae3a1084 100644
--- a/Master/texmf-dist/tex/context/base/font-enc.lua
+++ b/Master/texmf-dist/tex/context/base/font-enc.lua
@@ -6,6 +6,8 @@ if not modules then modules = { } end modules ['font-enc'] = {
license = "see context related readme files"
}
+local match, gmatch, gsub = string.match, string.gmatch, string.gsub
+
--[[ldx--
<p>Because encodings are going to disappear, we don't bother defining
them in tables. But we may do so some day, for consistency.</p>
@@ -62,15 +64,15 @@ function fonts.enc.load(filename)
return data
end
local vector, tag, hash, unicodes = { }, "", { }, { }
- local foundname = input.find_file(texmf.instance,filename,'enc')
+ local foundname = resolvers.find_file(filename,'enc')
if foundname and foundname ~= "" then
- local ok, encoding, size = input.loadbinfile(texmf.instance,foundname)
+ local ok, encoding, size = resolvers.loadbinfile(foundname)
if ok and encoding then
- local enccodes = characters.context.enccodes
- encoding = encoding:gsub("%%(.-)\n","")
- local tag, vec = encoding:match("/(%w+)%s*%[(.*)%]%s*def")
+ local enccodes = characters.enccodes
+ encoding = gsub(encoding,"%%(.-)\n","")
+ local tag, vec = match(encoding,"/(%w+)%s*%[(.*)%]%s*def")
local i = 0
- for ch in vec:gmatch("/([%a%d%.]+)") do
+ for ch in gmatch(vec,"/([%a%d%.]+)") do
if ch ~= ".notdef" then
vector[i] = ch
if not hash[ch] then
@@ -105,7 +107,7 @@ one.</p>
function fonts.enc.make_unicode_vector()
local vector, hash = { }, { }
- for code, v in pairs(characters.data) do
+ for code, v in next, characters.data do
local name = v.adobename
if name then
vector[code], hash[name] = name, code
@@ -113,7 +115,7 @@ function fonts.enc.make_unicode_vector()
vector[code] = '.notdef'
end
end
- for name, code in pairs(characters.synonyms) do
+ for name, code in next, characters.synonyms do
vector[code], hash[name] = name, code
end
return containers.write(fonts.enc.cache(), 'unicode', { name='unicode', tag='unicode', vector=vector, hash=hash })
diff --git a/Master/texmf-dist/tex/context/base/font-ext.lua b/Master/texmf-dist/tex/context/base/font-ext.lua
index 2b360c57c5e..17c302c5325 100644
--- a/Master/texmf-dist/tex/context/base/font-ext.lua
+++ b/Master/texmf-dist/tex/context/base/font-ext.lua
@@ -6,7 +6,191 @@ if not modules then modules = { } end modules ['font-ext'] = {
license = "see context related readme files"
}
-local byte = string.byte
+local next, type, byte = next, type, string.byte
+
+--[[ldx--
+<p>When we implement functions that deal with features, most of them
+will depend of the font format. Here we define the few that are kind
+of neutral.</p>
+--ldx]]--
+
+fonts.triggers = fonts.triggers or { }
+fonts.initializers = fonts.initializers or { }
+fonts.initializers.common = fonts.initializers.common or { }
+
+local initializers = fonts.initializers
+
+--[[ldx--
+<p>This feature will remove inter-digit kerns.</p>
+--ldx]]--
+
+table.insert(fonts.triggers,"equaldigits")
+
+function initializers.common.equaldigits(tfmdata,value)
+ if value then
+ local chr = tfmdata.characters
+ for i = utfbyte('0'), utfbyte('9') do
+ local c = chr[i]
+ if c then
+ c.kerns = nil
+ end
+ end
+ end
+end
+
+--[[ldx--
+<p>This feature will give all glyphs an equal height and/or depth. Valid
+values are <type>none</type>, <type>height</type>, <type>depth</type> and
+<type>both</type>.</p>
+--ldx]]--
+
+table.insert(fonts.triggers,"lineheight")
+
+function initializers.common.lineheight(tfmdata,value)
+ if value and type(value) == "string" then
+ if value == "none" then
+ for _,v in next, tfmdata.characters do
+ v.height, v.depth = 0, 0
+ end
+ else
+ local ascender, descender = tfmdata.ascender, tfmdata.descender
+ if ascender and descender then
+ local ht, dp = ascender or 0, descender or 0
+ if value == "height" then
+ dp = 0
+ elseif value == "depth" then
+ ht = 0
+ end
+ if ht > 0 then
+ if dp > 0 then
+ for _,v in next, tfmdata.characters do
+ v.height, v.depth = ht, dp
+ end
+ else
+ for _,v in next, tfmdata.characters do
+ v.height = ht
+ end
+ end
+ elseif dp > 0 then
+ for _,v in next, tfmdata.characters do
+ v.depth = dp
+ end
+ end
+ end
+ end
+ end
+end
+
+--[[ldx--
+<p>It does not make sense any more to support messed up encoding vectors
+so we stick to those that implement oldstyle and small caps. After all,
+we move on. We can extend the next function on demand. This features is
+only used with <l n='afm'/> files.</p>
+--ldx]]--
+
+--~ do
+--~
+--~ local smallcaps = lpeg.P(".sc") + lpeg.P(".smallcaps") + lpeg.P(".caps") + lpeg.P("small")
+--~ local oldstyle = lpeg.P(".os") + lpeg.P(".oldstyle") + lpeg.P(".onum")
+--~
+--~ smallcaps = lpeg.Cs((1-smallcaps)^1) * smallcaps^1
+--~ oldstyle = lpeg.Cs((1-oldstyle )^1) * oldstyle ^1
+--~
+--~ function initializers.common.encoding(tfmdata,value)
+--~ if value then
+--~ local afmdata = tfmdata.shared.afmdata
+--~ if afmdata then
+--~ local encodingfile = value .. '.enc'
+--~ local encoding = fonts.enc.load(encodingfile)
+--~ if encoding then
+--~ local vector = encoding.vector
+--~ local characters = tfmdata.characters
+--~ local unicodes = afmdata.luatex.unicodes
+--~ local function remap(pattern,name)
+--~ local p = pattern:match(name)
+--~ if p then
+--~ local oldchr, newchr = unicodes[p], unicodes[name]
+--~ if oldchr and newchr and type(oldchr) == "number" and type(newchr) == "number" then
+--~ -- logs.report("encoding","%s (%s) -> %s (%s)",p,oldchr or -1,name,newchr or -1)
+--~ characters[oldchr] = characters[newchr]
+--~ end
+--~ end
+--~ return p
+--~ end
+--~ for _, name in next, vector do
+--~ local ok = remap(smallcaps,name) or remap(oldstyle,name)
+--~ end
+--~ if fonts.map.data[tfmdata.name] then
+--~ fonts.map.data[tfmdata.name].encoding = encodingfile
+--~ end
+--~ end
+--~ end
+--~ end
+--~ end
+--~
+--~ -- when needed we can provide this as features in e.g. afm files
+--~
+--~ function initializers.common.remap(tfmdata,value,pattern) -- will go away
+--~ if value then
+--~ local afmdata = tfmdata.shared.afmdata
+--~ if afmdata then
+--~ local characters = tfmdata.characters
+--~ local descriptions = tfmdata.descriptions
+--~ local unicodes = afmdata.luatex.unicodes
+--~ local done = false
+--~ for u, _ in next, characters do
+--~ local name = descriptions[u].name
+--~ if name then
+--~ local p = pattern:match(name)
+--~ if p then
+--~ local oldchr, newchr = unicodes[p], unicodes[name]
+--~ if oldchr and newchr and type(oldchr) == "number" and type(newchr) == "number" then
+--~ characters[oldchr] = characters[newchr]
+--~ end
+--~ end
+--~ end
+--~ end
+--~ end
+--~ end
+--~ end
+--~
+--~ function initializers.common.oldstyle(tfmdata,value)
+--~ initializers.common.remap(tfmdata,value,oldstyle)
+--~ end
+--~ function initializers.common.smallcaps(tfmdata,value)
+--~ initializers.common.remap(tfmdata,value,smallcaps)
+--~ end
+--~
+--~ function initializers.common.fakecaps(tfmdata,value)
+--~ if value then
+--~ -- todo: scale down
+--~ local afmdata = tfmdata.shared.afmdata
+--~ if afmdata then
+--~ local characters = tfmdata.characters
+--~ local descriptions = tfmdata.descriptions
+--~ local unicodes = afmdata.luatex.unicodes
+--~ for u, _ in next, characters do
+--~ local name = descriptions[u].name
+--~ if name then
+--~ local p = lower(name)
+--~ if p then
+--~ local oldchr, newchr = unicodes[p], unicodes[name]
+--~ if oldchr and newchr and type(oldchr) == "number" and type(newchr) == "number" then
+--~ characters[oldchr] = characters[newchr]
+--~ end
+--~ end
+--~ end
+--~ end
+--~ end
+--~ end
+--~ end
+--~
+--~ end
+--~
+--~ function initializers.common.install(format,feature) -- 'afm','lineheight'
+--~ initializers.base[format][feature] = initializers.common[feature]
+--~ initializers.node[format][feature] = initializers.common[feature]
+--~ end
-- -- -- -- -- --
-- expansion (hz)
@@ -16,19 +200,23 @@ fonts.expansions = fonts.expansions or { }
fonts.expansions.classes = fonts.expansions.classes or { }
fonts.expansions.vectors = fonts.expansions.vectors or { }
+local expansions = fonts.expansions
+local classes = fonts.expansions.classes
+local vectors = fonts.expansions.vectors
+
-- beware, pdftex itself uses percentages * 10
-fonts.expansions.classes.preset = { stretch = 2, shrink = 2, step = .5, factor = 1 }
+classes.preset = { stretch = 2, shrink = 2, step = .5, factor = 1 }
function commands.setupfontexpansion(class,settings)
- aux.getparameters(fonts.expansions.classes,class,'preset',settings)
+ aux.getparameters(classes,class,'preset',settings)
end
-fonts.expansions.classes['quality'] = {
+classes['quality'] = {
stretch = 2, shrink = 2, step = .5, vector = 'default', factor = 1
}
-fonts.expansions.vectors['default'] = {
+vectors['default'] = {
[byte('A')] = 0.5, [byte('B')] = 0.7, [byte('C')] = 0.7, [byte('D')] = 0.5, [byte('E')] = 0.7,
[byte('F')] = 0.7, [byte('G')] = 0.5, [byte('H')] = 0.7, [byte('K')] = 0.7, [byte('M')] = 0.7,
[byte('N')] = 0.7, [byte('O')] = 0.5, [byte('P')] = 0.7, [byte('Q')] = 0.5, [byte('R')] = 0.7,
@@ -40,11 +228,11 @@ fonts.expansions.vectors['default'] = {
[byte('2')] = 0.7, [byte('3')] = 0.7, [byte('6')] = 0.7, [byte('8')] = 0.7, [byte('9')] = 0.7,
}
-function fonts.initializers.common.expansion(tfmdata,value)
+function initializers.common.expansion(tfmdata,value)
if value then
- local class = fonts.expansions.classes[value]
+ local class = classes[value]
if class then
- local vector = fonts.expansions.vectors[class.vector]
+ local vector = vectors[class.vector]
if vector then
tfmdata.stretch = (class.stretch or 0) * 10
tfmdata.shrink = (class.shrink or 0) * 10
@@ -52,7 +240,7 @@ function fonts.initializers.common.expansion(tfmdata,value)
tfmdata.auto_expand = true
local factor = class.factor or 1
local data = characters.data
- for i, chr in pairs(tfmdata.characters) do
+ for i, chr in next, tfmdata.characters do
local v = vector[i]
if not v then
local d = data[i]
@@ -80,11 +268,11 @@ end
table.insert(fonts.manipulators,"expansion")
-fonts.initializers.base.otf.expansion = fonts.initializers.common.expansion
-fonts.initializers.node.otf.expansion = fonts.initializers.common.expansion
+initializers.base.otf.expansion = initializers.common.expansion
+initializers.node.otf.expansion = initializers.common.expansion
-fonts.initializers.base.afm.expansion = fonts.initializers.common.expansion
-fonts.initializers.node.afm.expansion = fonts.initializers.common.expansion
+initializers.base.afm.expansion = initializers.common.expansion
+initializers.node.afm.expansion = initializers.common.expansion
-- -- -- -- -- --
-- protrusion
@@ -94,28 +282,32 @@ fonts.protrusions = fonts.protrusions or { }
fonts.protrusions.classes = fonts.protrusions.classes or { }
fonts.protrusions.vectors = fonts.protrusions.vectors or { }
+local protrusions = fonts.protrusions
+local classes = fonts.protrusions.classes
+local vectors = fonts.protrusions.vectors
+
-- the values need to be revisioned
-fonts.protrusions.classes.preset = { factor = 1 }
+classes.preset = { factor = 1 }
function commands.setupfontprotrusion(class,settings)
- aux.getparameters(fonts.protrusions.classes,class,'preset',settings)
+ aux.getparameters(classes,class,'preset',settings)
end
-fonts.protrusions.classes['pure'] = {
+classes['pure'] = {
vector = 'pure', factor = 1
}
-fonts.protrusions.classes['punctuation'] = {
+classes['punctuation'] = {
vector = 'punctuation', factor = 1
}
-fonts.protrusions.classes['alpha'] = {
+classes['alpha'] = {
vector = 'alpha', factor = 1
}
-fonts.protrusions.classes['quality'] = {
+classes['quality'] = {
vector = 'quality', factor = 1
}
-fonts.protrusions.vectors['pure'] = {
+vectors['pure'] = {
[0x002C] = { 0, 1 }, -- comma
[0x002E] = { 0, 1 }, -- period
@@ -124,10 +316,15 @@ fonts.protrusions.vectors['pure'] = {
[0x002D] = { 0, 1 }, -- hyphen
[0x2013] = { 0, 0.50 }, -- endash
[0x2014] = { 0, 0.33 }, -- emdash
+ [0x3001] = { 0, 1 }, -- ideographic comma 、
+ [0x3002] = { 0, 1 }, -- ideographic full stop 。
+ [0x060C] = { 0, 1 }, -- arabic comma ،
+ [0x061B] = { 0, 1 }, -- arabic semicolon ؛
+ [0x06D4] = { 0, 1 }, -- arabic full stop ۔
}
-fonts.protrusions.vectors['punctuation'] = {
+vectors['punctuation'] = {
[0x003F] = { 0, 0.20 }, -- ?
[0x00BF] = { 0, 0.20 }, -- ¿
@@ -144,12 +341,30 @@ fonts.protrusions.vectors['punctuation'] = {
[0x002D] = { 0, 0.70 }, -- hyphen
[0x2013] = { 0, 0.30 }, -- endash
[0x2014] = { 0, 0.20 }, -- emdash
+ [0x060C] = { 0, 0.70 }, -- arabic comma
+ [0x061B] = { 0, 0.50 }, -- arabic semicolon
+ [0x06D4] = { 0, 0.70 }, -- arabic full stop
+ [0x061F] = { 0, 0.20 }, -- ؟
-- todo: left and right quotes: .5 double, .7 single
+ [0x2039] = { 0.70, 0.70 }, -- left single guillemet ‹
+ [0x203A] = { 0.70, 0.70 }, -- right single guillemet ›
+ [0x00AB] = { 0.50, 0.50 }, -- left guillemet «
+ [0x00BB] = { 0.50, 0.50 }, -- right guillemet »
+
+ [0x2018] = { 0.70, 0.70 }, -- left single quotation mark ‘
+ [0x2019] = { 0, 0.70 }, -- right single quotation mark ’
+ [0x201A] = { 0.70, 0 }, -- single low-9 quotation mark ,
+ [0x201B] = { 0.70, 0 }, -- single high-reversed-9 quotation mark ‛
+ [0x201C] = { 0.50, 0.50 }, -- left double quotation mark “
+ [0x201D] = { 0, 0.50 }, -- right double quotation mark ”
+ [0x201E] = { 0.50, 0 }, -- double low-9 quotation mark „
+ [0x201F] = { 0.50, 0 }, -- double high-reversed-9 quotation mark ‟
+
}
-fonts.protrusions.vectors['alpha'] = {
+vectors['alpha'] = {
[byte("A")] = { .05, .05 },
[byte("F")] = { 0, .05 },
@@ -172,21 +387,22 @@ fonts.protrusions.vectors['alpha'] = {
}
-fonts.protrusions.vectors['quality'] = table.merge( {},
- fonts.protrusions.vectors['punctuation'],
- fonts.protrusions.vectors['alpha']
+vectors['quality'] = table.merge( {},
+ vectors['punctuation'],
+ vectors['alpha']
)
-function fonts.initializers.common.protrusion(tfmdata,value)
+function initializers.common.protrusion(tfmdata,value)
if value then
- local class = fonts.protrusions.classes[value]
+ local class = classes[value]
if class then
- local vector = fonts.protrusions.vectors[class.vector]
+ local vector = vectors[class.vector]
if vector then
local factor = class.factor or 1
local data = characters.data
local emwidth = tfmdata.parameters.quad
- for i, chr in pairs(tfmdata.characters) do
+ tfmdata.auto_protrude = true
+ for i, chr in next, tfmdata.characters do
local v, pl, pr = vector[i], nil, nil
if v then
pl, pr = v[1], v[2]
@@ -218,8 +434,46 @@ end
table.insert(fonts.manipulators,"protrusion")
-fonts.initializers.base.otf.protrusion = fonts.initializers.common.protrusion
-fonts.initializers.node.otf.protrusion = fonts.initializers.common.protrusion
+initializers.base.otf.protrusion = initializers.common.protrusion
+initializers.node.otf.protrusion = initializers.common.protrusion
+
+initializers.base.afm.protrusion = initializers.common.protrusion
+initializers.node.afm.protrusion = initializers.common.protrusion
+
+function initializers.common.nostackmath(tfmdata,value)
+ tfmdata.ignore_stack_math = value
+end
+
+table.insert(fonts.manipulators,"nostackmath")
+
+initializers.base.otf.nostackmath = initializers.common.nostackmath
+initializers.node.otf.nostackmath = initializers.common.nostackmath
+
+table.insert(fonts.triggers,"itlc")
+
+function initializers.common.itlc(tfmdata,value)
+ if value then
+ -- the magic 40 and it formula come from Dohyun Kim
+ local fontdata = tfmdata.shared.otfdata or tfmdata.shared.afmdata
+ local metadata = fontdata and fontdata.metadata
+ if metadata then
+ local italicangle = metadata.italicangle
+ if italicangle and italicangle ~= 0 then
+ local uwidth = (metadata.uwidth or 40)/2
+ for unicode, d in next, tfmdata.descriptions do
+ local it = d.boundingbox[3] - d.width + uwidth
+ if it ~= 0 then
+ d.italic = it
+ end
+ end
+ tfmdata.has_italic = true
+ end
+ end
+ end
+end
+
+initializers.base.otf.itlc = initializers.common.itlc
+initializers.node.otf.itlc = initializers.common.itlc
-fonts.initializers.base.afm.protrusion = fonts.initializers.common.protrusion
-fonts.initializers.node.afm.protrusion = fonts.initializers.common.protrusion
+initializers.base.afm.itlc = initializers.common.itlc
+initializers.node.afm.itlc = initializers.common.itlc
diff --git a/Master/texmf-dist/tex/context/base/font-fbk.lua b/Master/texmf-dist/tex/context/base/font-fbk.lua
index 0d1ae6218eb..6c4f78a3c54 100644
--- a/Master/texmf-dist/tex/context/base/font-fbk.lua
+++ b/Master/texmf-dist/tex/context/base/font-fbk.lua
@@ -6,72 +6,77 @@ if not modules then modules = { } end modules ['font-fbk'] = {
license = "see context related readme files"
}
+local cos, tan, rad, format = math.cos, math.tan, math.rad, string.format
+
+local trace_combining = false trackers.register("fonts.combining", function(v) trace_combining = v end)
+
--[[ldx--
<p>This is very experimental code!</p>
--ldx]]--
-fonts = fonts or { }
-fonts.fallbacks = fonts.fallbacks or { }
-fonts.vf.aux.combine.trace = false
+fonts.fallbacks = fonts.fallbacks or { }
-fonts.vf.aux.combine.commands["enable-tracing"] = function(g,v)
- fonts.vf.aux.combine.trace = true
+local vf = fonts.vf
+local tfm = fonts.tfm
+
+vf.aux.combine.commands["enable-tracing"] = function(g,v)
+ trace_combining = true
end
-fonts.vf.aux.combine.commands["disable-tracing"] = function(g,v)
- fonts.vf.aux.combine.trace = false
+vf.aux.combine.commands["disable-tracing"] = function(g,v)
+ trace_combining = false
end
-fonts.vf.aux.combine.commands["set-tracing"] = function(g,v)
+vf.aux.combine.commands["set-tracing"] = function(g,v)
if v[2] == nil then
- fonts.vf.aux.combine.trace = true
+ trace_combining = true
else
- fonts.vf.aux.combine.trace = v[2]
+ trace_combining = v[2]
end
end
-function fonts.vf.aux.combine.initialize_trace()
- if fonts.vf.aux.combine.trace then
+function vf.aux.combine.initialize_trace()
+ if trace_combining then
return "special", "pdf: .8 0 0 rg .8 0 0 RG", "pdf: 0 .8 0 rg 0 .8 0 RG", "pdf: 0 0 .8 rg 0 0 .8 RG", "pdf: 0 g 0 G"
else
return "comment", "", "", "", ""
end
end
-fonts.vf.aux.combine.force_fallback = false
+vf.aux.combine.force_fallback = false
-fonts.vf.aux.combine.commands["fake-character"] = function(g,v) -- g, nr, fallback_id
+vf.aux.combine.commands["fake-character"] = function(g,v) -- g, nr, fallback_id
local index, fallback = v[2], v[3]
- if fonts.vf.aux.combine.force_fallback or not g.characters[index] then
+ if vf.aux.combine.force_fallback or not g.characters[index] then
if fonts.fallbacks[fallback] then
- g.characters[index] = fonts.fallbacks[fallback](g)
+ g.characters[index], g.descriptions[index] = fonts.fallbacks[fallback](g)
end
end
end
fonts.fallbacks['textcent'] = function (g)
- local c = string.byte("c")
+ local c = ("c"):byte()
local t = table.fastcopy(g.characters[c])
- local s = fonts.tfm.scaled(g.specification.size or g.size)
- local a = - math.tan(math.rad(g.italicangle or 0))
- local special, red, green, blue, black = fonts.vf.aux.combine.initialize_trace()
+ local a = - tan(rad(g.italicangle or 0))
+ local special, red, green, blue, black = vf.aux.combine.initialize_trace()
+ local quad = g.parameters.quad
if a == 0 then
t.commands = {
{"push"}, {"slot", 1, c}, {"pop"},
{"right", .5*t.width},
{"down", .2*t.height},
{special, green},
- {"rule", 1.4*t.height, .02*s},
+ {"rule", 1.4*t.height, .02*quad},
{special, black},
}
else
t.commands = {
{"push"},
- {"right", .5*t.width-.025*s},
+ {"right", .5*t.width-.025*quad},
{"down", .2*t.height},
- {"special",string.format("pdf: q 1 0 %s 1 0 0 cm",a)},
+ {"special",format("pdf: q 1 0 %s 1 0 0 cm",a)},
{special, green},
- {"rule", 1.4*t.height, .025*s},
+ {"rule", 1.4*t.height, .025*quad},
{special, black},
{"special","pdf: Q"},
{"pop"},
@@ -82,15 +87,17 @@ fonts.fallbacks['textcent'] = function (g)
-- todo: set height
t.height = 1.2*t.height
t.depth = 0.2*t.height
- return t
+ g.virtualized = true
+ local d = g.descriptions
+ return t, d and d[c]
end
fonts.fallbacks['texteuro'] = function (g)
- local c = string.byte("C")
+ local c = ("C"):byte()
local t = table.fastcopy(g.characters[c])
- local s = fonts.tfm.scaled(g.specification.size or g.size)
- local d = math.cos(math.rad(90+(g.italicangle)))
- local special, red, green, blue, black = fonts.vf.aux.combine.initialize_trace()
+ local d = cos(rad(90+(g.italicangle)))
+ local special, red, green, blue, black = vf.aux.combine.initialize_trace()
+ local quad = g.parameters.quad
t.width = 1.05*t.width
t.commands = {
{"right", .05*t.width},
@@ -98,28 +105,40 @@ fonts.fallbacks['texteuro'] = function (g)
{"right", .5*t.width*d},
{"down", -.5*t.height},
{special, green},
- {"rule", .05*s, .4*s},
+ {"rule", .05*quad, .4*quad},
{special, black},
}
- return t
+ g.virtualized = true
+ return t, g.descriptions[c]
end
-- maybe store llx etc instead of bbox in tfm blob / more efficient
-fonts.vf.aux.combine.force_composed = false
+vf.aux.combine.force_composed = false
+
+local push, pop = { "push" }, { "pop" }
-function fonts.vf.aux.compose_characters(g) -- todo: scaling depends on call location
+local cache = { } -- we could make these weak
+
+function vf.aux.compose_characters(g) -- todo: scaling depends on call location
-- this assumes that slot 1 is self, there will be a proper self some day
- local chars = g.characters
- local fastcopy = table.fastcopy
- local xchar = chars[string.byte("X")]
- if xchar and xchar.description then
- local cap_lly = xchar.description.boundingbox[4]
- local ita_cor = math.cos(math.rad(90+(g.italicangle or 0)))
- local force = fonts.vf.aux.combine.force_composed
- local fallbacks = characters.context.fallbacks
- local special, red, green, blue, black = fonts.vf.aux.combine.initialize_trace()
- for i,c in pairs(characters.data) do
+ local chars, descs = g.characters, g.descriptions
+ local X = ("X"):byte()
+ local xchar = chars[X]
+ local xdesc = descs[X]
+ if xchar and xdesc then
+ local scale = g.factor or 1
+ local cap_lly = scale*xdesc.boundingbox[4]
+ local ita_cor = cos(rad(90+(g.italicangle or 0)))
+ local force = vf.aux.combine.force_composed
+ local fallbacks = characters.fallbacks
+ local special, red, green, blue, black
+ if trace_combining then
+ special, red, green, blue, black = vf.aux.combine.initialize_trace()
+ red, green, blue, black = { special, red }, { special, green }, { special, blue }, { special, black }
+ end
+ local done = false
+ for i,c in next, characters.data do
if force or not chars[i] then
local s = c.specials
if s and s[1] == 'char' then
@@ -129,71 +148,132 @@ function fonts.vf.aux.compose_characters(g) -- todo: scaling depends on call loc
local cc = c.category
if cc == 'll' or cc == 'lu' or cc == 'lt' then
local acc = s[3]
- local t = fastcopy(charschr)
- local d = t.description
- d.name = c.adobename or "unknown"
- d.unicode = i
+ local t = { }
+ for k, v in next, charschr do
+ if k ~= "commands" then
+ t[k] = v
+ end
+ end
local charsacc = chars[acc]
+--~ local ca = charsacc.category
+--~ if ca == "mn" then
+--~ -- mark nonspacing
+--~ elseif ca == "ms" then
+--~ -- mark spacing combining
+--~ elseif ca == "me" then
+--~ -- mark enclosing
+--~ else
if not charsacc then
acc = fallbacks[acc]
charsacc = acc and chars[acc]
end
if charsacc then
- local cb = charschr.description.boundingbox
- local ab = charsacc.description.boundingbox
+ local chr_t = cache[chr]
+ if not cht_t then
+ chr_t = {"slot", 1, chr}
+ cache[chr] = chr_t
+ end
+ local acc_t = cache[acc]
+ if not acc_t then
+ acc_t = {"slot", 1, acc}
+ cache[acc] = acc_t
+ end
+ local cb = descs[chr].boundingbox
+ local ab = descs[acc].boundingbox
if cb and ab then
- local c_llx, c_lly, c_urx, c_ury = cb[1], cb[2], cb[3], cb[4]
- local a_llx, a_lly, a_urx, a_ury = ab[1], ab[2], ab[3], ab[4]
+ -- can be sped up for scale == 1
+ local c_llx, c_lly, c_urx, c_ury = scale*cb[1], scale*cb[2], scale*cb[3], scale*cb[4]
+ local a_llx, a_lly, a_urx, a_ury = scale*ab[1], scale*ab[2], scale*ab[3], scale*ab[4]
local dx = (c_urx - a_urx - a_llx + c_llx)/2
- local dd = (c_urx-c_llx)*ita_cor
+ local dd = (c_urx - c_llx)*ita_cor
if a_ury < 0 then
- local dy = cap_lly-a_lly
- t.commands = {
- {"push"},
- {"right", dx-dd},
- {"down", -dy}, -- added
- {special, red},
- {"slot", 1, acc},
- {special, black},
- {"pop"},
- {"slot", 1, chr},
- }
+ if trace_combining then
+ t.commands = {
+ push,
+ {"right", dx-dd},
+ red,
+ acc_t,
+ black,
+ pop,
+ chr_t,
+ }
+ else
+ t.commands = {
+ push,
+ {"right", dx-dd},
+ acc_t,
+ pop,
+ chr_t,
+ }
+ end
elseif c_ury > a_lly then
local dy = cap_lly-a_lly
- t.commands = {
- {"push"},
- {"right", dx+dd},
- {"down", -dy},
- {special, green},
- {"slot", 1, acc},
- {special, black},
- {"pop"},
- {"slot", 1, chr},
- }
+ if trace_combining then
+ t.commands = {
+ push,
+ {"right", dx+dd},
+ {"down", -dy},
+ green,
+ acc_t,
+ black,
+ pop,
+ chr_t,
+ }
+ else
+ t.commands = {
+ push,
+ {"right", dx+dd},
+ {"down", -dy},
+ acc_t,
+ pop,
+ chr_t,
+ }
+ end
else
- t.commands = {
- {"push"},
- {"right", dx+dd},
- {special, blue},
- {"slot", 1, acc},
- {special, black},
- {"pop"},
- {"slot", 1, chr},
- }
+ if trace_combining then
+ t.commands = {
+ {"push"},
+ {"right", dx+dd},
+ blue,
+ acc_t,
+ black,
+ {"pop"},
+ chr_t,
+ }
+ else
+ t.commands = {
+ {"push"},
+ {"right", dx+dd},
+ acc_t,
+ {"pop"},
+ chr_t,
+ }
+ end
end
+ done = true
end
end
chars[i] = t
+ local d = { }
+ for k, v in next, descs[chr] do
+ d[k] = v
+ end
+ d.name = c.adobename or "unknown"
+ -- d.unicode = i
+ descs[i] = d
end
end
end
end
end
+ if done then
+ g.virtualized = true
+ end
end
end
-fonts.vf.aux.combine.commands["complete-composed-characters"] = function(g,v)
- fonts.vf.aux.compose_characters(g)
+vf.aux.combine.commands["complete-composed-characters"] = function(g,v)
+ vf.aux.compose_characters(g)
end
--~ {'special', 'pdf: q ' .. s .. ' 0 0 '.. s .. ' 0 0 cm'},
@@ -209,13 +289,13 @@ fonts.define.methods.install("fallback", { -- todo: auto-fallback with loop over
{ "fake-character", 0x20AC, 'texteuro' }
})
-fonts.vf.aux.combine.commands["enable-force"] = function(g,v)
- fonts.vf.aux.combine.force_composed = true
- fonts.vf.aux.combine.force_fallback = true
+vf.aux.combine.commands["enable-force"] = function(g,v)
+ vf.aux.combine.force_composed = true
+ vf.aux.combine.force_fallback = true
end
-fonts.vf.aux.combine.commands["disable-force"] = function(g,v)
- fonts.vf.aux.combine.force_composed = false
- fonts.vf.aux.combine.force_fallback = false
+vf.aux.combine.commands["disable-force"] = function(g,v)
+ vf.aux.combine.force_composed = false
+ vf.aux.combine.force_fallback = false
end
fonts.define.methods.install("demo-2", {
diff --git a/Master/texmf-dist/tex/context/base/font-heb.tex b/Master/texmf-dist/tex/context/base/font-heb.mkii
index 3ec0395f32a..3ec0395f32a 100644
--- a/Master/texmf-dist/tex/context/base/font-heb.tex
+++ b/Master/texmf-dist/tex/context/base/font-heb.mkii
diff --git a/Master/texmf-dist/tex/context/base/font-ini.lua b/Master/texmf-dist/tex/context/base/font-ini.lua
index a3eefa9db9a..4005726a59a 100644
--- a/Master/texmf-dist/tex/context/base/font-ini.lua
+++ b/Master/texmf-dist/tex/context/base/font-ini.lua
@@ -10,33 +10,49 @@ if not modules then modules = { } end modules ['font-ini'] = {
<p>Not much is happening here.</p>
--ldx]]--
+local utf = unicode.utf8
+
+if not fontloader then fontloader = fontforge end
+
+fontloader.totable = fontloader.to_table
+
-- vtf comes first
-- fix comes last
-fonts = fonts or { }
+fonts = fonts or { }
+fonts.ids = fonts.ids or { } -- aka fontdata
+fonts.tfm = fonts.tfm or { }
-fonts.trace = false -- true
fonts.mode = 'base'
-fonts.private = 0xE000
+fonts.private = 0xF0000 -- 0x10FFFF
+fonts.verbose = false -- more verbose cache tables
-fonts.methods = {
+fonts.ids[0] = { -- nullfont
+ characters = { },
+ descriptions = { },
+}
+
+fonts.methods = fonts.methods or {
base = { tfm = { }, afm = { }, otf = { }, vtf = { }, fix = { } },
node = { tfm = { }, afm = { }, otf = { }, vtf = { }, fix = { } },
}
-fonts.initializers = {
+fonts.initializers = fonts.initializers or {
base = { tfm = { }, afm = { }, otf = { }, vtf = { }, fix = { } },
node = { tfm = { }, afm = { }, otf = { }, vtf = { }, fix = { } }
}
-fonts.triggers = {
+fonts.triggers = fonts.triggers or {
'mode',
'language',
'script',
'strategy',
}
-fonts.manipulators = {
+fonts.processors = fonts.processors or {
+}
+
+fonts.manipulators = fonts.manipulators or {
}
fonts.define = fonts.define or { }
@@ -45,24 +61,37 @@ fonts.define.specify.synonyms = fonts.define.specify.synonyms or { }
-- tracing
-do
+fonts.color = fonts.color or { }
- fonts.color = fonts.color or { }
+local attribute = attributes.private('color')
+local mapping = (attributes and attributes.list[attribute]) or { }
- fonts.color.trace = false
+local set_attribute = node.set_attribute
+local unset_attribute = node.unset_attribute
- local attribute = attributes.numbers['color'] or 7 -- we happen to know this -)
- local mapping = attributes.list[attribute]
-
- local set_attribute = node.set_attribute
- local unset_attribute = node.unset_attribute
-
- function fonts.color.set(n,c)
- -- local mc = mapping[c] if mc then unset_attribute((n,attribute) else set_attribute(n,attribute,mc) end
- set_attribute(n,attribute,mapping[c] or -1) -- also handles -1 now
- end
- function fonts.color.reset(n)
+function fonts.color.set(n,c)
+ local mc = mapping[c]
+ if not mc then
unset_attribute(n,attribute)
+ else
+ set_attribute(n,attribute,mc)
end
+end
+function fonts.color.reset(n)
+ unset_attribute(n,attribute)
+end
+-- this will change ...
+
+function fonts.show_char_data(n)
+ local tfmdata = fonts.ids[font.current()]
+ if tfmdata then
+ if type(n) == "string" then
+ n = utf.byte(n)
+ end
+ local chr = tfmdata.characters[n]
+ if chr then
+ texio.write_nl(table.serialize(chr,string.format("U_%04X",n)))
+ end
+ end
end
diff --git a/Master/texmf-dist/tex/context/base/font-ini.mkii b/Master/texmf-dist/tex/context/base/font-ini.mkii
index f3f40160b09..f614a07cd09 100644
--- a/Master/texmf-dist/tex/context/base/font-ini.mkii
+++ b/Master/texmf-dist/tex/context/base/font-ini.mkii
@@ -1,6 +1,7 @@
%D \module
%D [ file=font-ini,
-%D version=2007.01.10,
+%D version=1998.09.11, % (second)
+%D version=2001.02.20, % (third)
%D title=\CONTEXT\ Font Macros,
%D subtitle=Initialization,
%D author=Hans Hagen,
@@ -11,17 +12,3118 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+\writestatus{loading}{ConTeXt Font Macros / Initialization}
+
\unprotect
-% not that efficient but inheritance is seldom used (untested)
+% \def\fontrange#1%
+% {\dofontrange{#1 =\bodyfontsize}}
+%
+% \def\dofontrange#1%
+% {\dodofontrange#1 \relax}% \fontstringA
+%
+% \def\dodofontrange#1 #2 %
+% {\ifdim\bodyfontsize#2%
+% #1\expandafter\gobbleuntilrelax
+% \else
+% \expandafter\dodofontrange
+% \fi}
+%
+% \definefont
+% [crap]
+% [\fontrange
+% {Regular <10pt
+% RegularBold <12pt
+% RegularSlanted <15pt
+% Regular} sa 1]
+%
+% may be better:
+%
+% \definefontrange
+% [crap]
+% [Regular <10pt
+% RegularBold <12pt
+% RegularSlanted <15pt]
+% [Regular sa 1]
+%
+%
+% \dostepwiserecurse{2}{15}{1}
+% {{\switchtobodyfont[\recurselevel pt]\crap test}\endgraf}
+
+% adapted, else wrong interlinespace
-\def\mkdefinefontfeature#1#2#3%
- {\doifassignmentelse{#2}
- {\setevalue{\??fa#1}{#2}}
- {\let\!!stringa\empty
- \def\mkdodefinefontfeature##1{\edef\!!stringa{\ifx\!!stringa\empty\else\!!stringa,\fi##1}}%
- \processcommalist[#2]\mkdodefinefontfeature
- \setevalue{\??fa#1}{\ifx\!!stringa\empty\else\!!stringa,\fi#3}}}
+\def\setfontparameters
+ {\synchronizefontsfalse
+ \the\everybodyfont
+ \synchronizefontstrue}
+
+% handy
+
+\newcounter\pushedfont
+
+\def\savefont
+ {\edef\savedfont{\the\font}%
+ \pushmacro\savedfont
+ \pushmacro\currentregime
+ \pushmacro\charactermapping
+ \pushmacro\characterencoding}
+
+\def\restorefont
+ {\popmacro\characterencoding
+ \popmacro\charactermapping
+ \popmacro\currentregime
+ \popmacro\savedfont
+ \savedfont}
+
+\def\pushcurrentfont
+ {\edef\popcurrentfont
+ {\noexpand\def\noexpand\fontbody{\fontbody}%
+ \noexpand\def\noexpand\fontstyle{\fontstyle}%
+ \noexpand\dosetcurrentfontalternative{\fontalternative}%
+ \noexpand\dosetcurrentfontsize{\fontsize}%
+ \noexpand\synchronizefont}}
+
+% \definetypeface[one][rm][serif][computer-roman][default]
+% \definetypeface[two][rm][serif][computer-roman][default][rscale=.9]
+%
+% {\one \bf test \two test}
+% {\one \bf test \pushcurrentfont \two \popcurrentfont test}
+
+%D \macros
+%D {definedfont,startfont,doiffontcharelse}
+%D
+%D A couple of relatively new macros:
+
+\newevery \everydefinedfont \relax
+
+\def\dodefinedfont[#1]%
+ {\iffirstargument\definefont[\string\thedefinedfont][#1]\fi
+ \csname\string\thedefinedfont\endcsname % can be \relax
+ \the\everydefinedfont} % hm, redundant
+
+\unexpanded\def\definedfont
+ {\dosingleempty\dodefinedfont}
+
+\unexpanded\def\startfont
+ {\bgroup\definedfont}
+
+\def\stopfont
+ {\egroup}
+
+\def\doiffontcharelse#1#2%
+ {\bgroup
+ \definedfont[#1]%
+ \iffontchar\font#2\relax
+ \egroup\expandafter\firstoftwoarguments
+ \else
+ \egroup\expandafter\secondoftwoarguments
+ \fi}
+
+%%% message 14 added
+
+% messages moved
+
+% messages moved
+
+% messages moved
+
+% messages moved
+
+% messages moved
+
+% messages moved
+
+% messages moved
+
+% messages moved
+
+%D This module is one of the oldest modules of \CONTEXT. The
+%D macros below evolved out of the \PLAIN\ \TEX\ macros and
+%D therefore use a similar naming scheme (\type{\rm},
+%D \type{\bf}, etc). This module grew out of our needs. We
+%D started with the \PLAIN\ \TEX\ definitions, generalized the
+%D underlaying macros, and extended those to a level at which
+%D probably no one will ever recognize them.
+%D
+%D In 2001 we ran into a couple of projects where more than
+%D one combined set of fonts was involved in a document. To
+%D make definitions more readable, as well as to overcome the
+%D problem of ever growing file name lists, and also because
+%D we needed to scale fonts relative to each other, the low
+%D level implementation was partly rewritten. Global
+%D font assignments, relative scaling, font classes and alike
+%D were added then. At the same time some macros were made a
+%D bit more readable, and math support was extended to the
+%D larger sizes.
+%D
+%D One important characteristic of the font mechanism presented
+%D here is the postponing of font loading. This makes it
+%D possible to distribute \type{fmt} files without bothering
+%D about the specific breed of \type{tfm} files.
+%D
+%D Another feature implemented here is the massive switching
+%D from roman to {\ss sans serif}, {\tt teletype} or else. This
+%D means one doesn't have to take care of all kind of relations
+%D between fonts.
+%D
+%D \page[bigpreference]
+
+%D \macros
+%D {rm,ss,tt,hw,cg}
+%D
+%D Fonts are defined in separate files. When we define a font,
+%D we distinguish between several styles. In most cases we will
+%D use:
+%D
+%D \startlinecorrection
+%D \starttable[|l||]
+%D \HL
+%D \NC roman regular serif \NC \type{\rm} \NC\FR
+%D \NC sansserif sans support \NC \type{\ss} \NC\MR
+%D \NC type teletype mono \NC \type{\tt} \NC\LR
+%D \HL
+%D \stoptable
+%D \stoplinecorrection
+%D
+%D The number of styles is not limited to these three. When
+%D using Lucida Bright we can for instance also define:
+%D
+%D \startlinecorrection
+%D \starttable[|l||]
+%D \HL
+%D \NC handwritten \NC \type{\hw} \NC\FR
+%D \NC calligraphic \NC \type{\cg} \NC\LR
+%D \HL
+%D \stoptable
+%D \stoplinecorrection
+%D
+%D Anyone who feels the need, can define additional ones, like
+%D
+%D \startlinecorrection
+%D \starttable[|l||]
+%D \HL
+%D \NC faxfont \NC \type{\ff} \NC\FR
+%D \NC blackboard \NC \type{\bb} \NC\LR
+%D \HL
+%D \stoptable
+%D \stoplinecorrection
+%D
+%D Or even
+%D
+%D \startlinecorrection
+%D \starttable[|l||]
+%D \HL
+%D \NC hebrew \NC \type{\hb} \NC\SR
+%D \HL
+%D \stoptable
+%D \stoplinecorrection
+%D
+%D Styles are grouped in font sets. At the moment there are
+%D three main sets defined:
+%D
+%D \startlinecorrection
+%D \starttable[|l|l||]
+%D \HL
+%D \NC Computer Modern Roman \NC Knuth \NC \type{cmr} \NC\FR
+%D \NC Lucida Bright \NC Bigelow \& Holmes \NC \type{lbr} \NC\MR
+%D \NC Standard Postscript Fonts \NC Adobe \NC \type{pos} \NC\LR
+%D \HL
+%D \stoptable
+%D \stoplinecorrection
+%D
+%D There are also some Computer Modern Roman alternatives:
+%D
+%D \startlinecorrection
+%D \starttable[|l|l||]
+%D \HL
+%D \NC Computer Modern Roman \NC Knuth \& Sauter \NC \type{sau} \NC\FR
+%D \NC Euler fonts \NC Zapf \NC \type{eul} \NC\MR
+%D \NC Computer Modern Concrete \NC Knuth \& Zapf \NC \type{con} \NC\LR
+%D \HL
+%D \stoptable
+%D \stoplinecorrection
+%D
+%D All these definitions are ordered in files with names like
+%D \type{font-cmr} and \type{font-pos}, where the last three
+%D characters specify the name as known to \CONTEXT.
+%D
+%D Within such a font set (\type{cmr}) and style (\type{\rm})
+%D we can define a number of text font alternatives:
+%D
+%D \startlinecorrection
+%D \starttable[|l||]
+%D \HL
+%D \NC typeface \NC \type{\tf} \NC\FR
+%D \NC boldface \NC \type{\bf} \NC\MR
+%D \NC slanted \NC \type{\sl} \NC\MR
+%D \NC italic \NC \type{\it} \NC\MR
+%D \NC boldslanted \NC \type{\bs} \NC\MR
+%D \NC bolditalic \NC \type{\bi} \NC\MR
+%D \NC smallcaps \NC \type{\sc} \NC\LR
+%D \HL
+%D \stoptable
+%D \stoplinecorrection
+
+%D For old stylish Frans Goddijn we have:
+%D
+%D \startlinecorrection
+%D \starttable[|l||]
+%D \HL
+%D \NC oldstyle \NC \type{\os} \NC\SR
+%D \HL
+%D \stoptable
+%D \stoplinecorrection
+%D
+%D The availability of these alternatives depends on the
+%D completeness of a font family and of course the definitions
+%D in the font files.
+%D
+%D But let's not forget math. In addition to the previous \TEX\
+%D families (the mysterious \type{\fam}'s) we've got some more:
+%D
+%D \startlinecorrection
+%D \starttable[|l||]
+%D \HL
+%D \NC Math Roman \NC \type{\mr} \NC\FR
+%D \NC Math Italic \NC \type{\mi} \NC\MR
+%D \NC Math Symbol \NC \type{\sy} \NC\MR
+%D \NC Math Extra \NC \type{\ex} \NC\MR
+%D \NC Math A \NC \type{\ma} \NC\MR
+%D \NC Math B \NC \type{\mb} \NC\MR
+%D \NC Math C \NC \type{\mc} \NC\LR
+%D \HL
+%D \stoptable
+%D \stoplinecorrection
+%D
+%D Users can call for specific fonts in many ways. Switches to
+%D other typefaces, like the switch from normal to bold, are as
+%D intuitive as possible, which means that all dependant fonts
+%D also switch. One can imagine that this takes quite some
+%D processing time.
+%D
+%D Internally fonts are stored as combination of size, style
+%D and alternative, e.g. \type{12pt}+\type{\ss}+\type{\bf}.
+%D Users are not confronted with sizes, but use the style or
+%D style+alternative to activate them.
+%D
+%D During the definition of a bodyfont one can also declare the
+%D available larger alternatives:
+%D
+%D \starttyping
+%D \tf \tfa \tfb \tfc ...
+%D \bf \bfa \bfb \bfc ...
+%D \sl \sla \slb \slc ...
+%D \stoptyping
+%D
+%D The smaller ones are automatically supplied and derived from
+%D the the bodyfont environment.
+%D
+%D \starttyping
+%D \tfx \tfxx
+%D \bfx \bfxx
+%D \slx \slxx
+%D \stoptyping
+%D
+%D There are only two smaller alternatives per style. The
+%D larger alternatives on the other hand have no limitations.
+%D
+%D These larger alternatives are mostly used in chapter and
+%D section titles or on title pages. When one switches to a
+%D larger alternative, the bold an other ones automatically
+%D adapt themselves:
+%D
+%D \startbuffer
+%D \tfd Hi \bf there\sl, here \tfb I \bf am
+%D \stopbuffer
+%D
+%S \startnarrower
+%D \typebuffer
+%S \stopnarrower
+%D
+%D therefore becomes:
+%D
+%D \startvoorbeeld
+%D \getbuffer
+%D \stopvoorbeeld
+%D
+%D Maybe this mechanism isn't always as logic, but as said
+%D before, we tried to make it as intuitive as possible.
+%D
+%D So a specific kind of glyph can be characterized by:
+%D
+%D \startnarrower
+%D family (cmr) + bodyfont (12pt) + style (rm) + alternative (bf) + size (a)
+%D \stopnarrower
+%D
+%D The last component (the size) is optional.
+%D
+%D We introduced \type{\tf} as command to call for the current
+%D normally sized typeface. This commands results in roman,
+%D sans serif, teletype or whatever style is in charge. Such
+%D rather massive switches of style sometimes take more
+%D processing time than comfortable. Of course there is a
+%D workaround for this: we can call fonts directly by means of
+%D commands like:
+%D
+%D \starttyping
+%D \rmtf \sssl \tttf \rmbsa
+%D \stoptyping
+%D
+%D One should realize that this fast calls have limitations,
+%D they lack for instance automatic super- and subscript
+%D support.
+%D
+%D This leaves us two more commands: \type{\tx} and
+%D \type{\txx}. These activate a smaller and even more smaller
+%D font than the current one and adapt themselves to the
+%D current alternative, so when \type{\bf} is active,
+%D \type{\tx} gives a smaller boldface, which in turn can be
+%D called directly by \type{\bfx}.
+%D
+%D These two smaller alternatives are specified by the bodyfont
+%D environment and therefore not necessarily have similar sizes
+%D as \type{\scriptsize} and \type{\scriptscriptsize}. The main
+%D reason for this incompatibility (which can easily be undone)
+%D lays in the fact that we often want a bit bigger characters
+%D than in math mode. In \CONTEXT\ for instance the \type{\tx}
+%D and \type{\txx} commands are used for surrogate
+%D \cap{smallcaps} which support both nesting and alternatives,
+%D like in {\bf\cap{a \cap{small} world}}, which was typeset by
+%D
+%D \starttyping
+%D \bf\cap{a \cap{small} world}
+%D \stoptyping
+%D
+%D And compare $\rm \scriptstyle THIS$ with the slightly larger
+%D \cap{THIS}: \ruledhbox{$\rm \scriptstyle scriptstyle: THIS$}
+%D or \ruledhbox{\cap{x style: THIS}} makes a big difference.
+
+%D The \type{x..d} sizes should be used grouped. If you
+%D don't group them, i.e. call them in a row, \CONTEXT\ will
+%D not be able to sort out your intention (\type {x} inside
+%D \type {d} inside \type {x}. etc.). The following table
+%D demonstrates this:
+%D
+%D \def\FontState{\setstrut\ruledhbox{\strut Hello}}
+%D
+%D \starttabulate[|||||]
+%D \HL
+%D \NC \rlap{\quad\bf grouped} \NC \NC \type {\tx} \NC \type {\txx} \NC \NR
+%D \HL
+%D \NC \type{\tfx} \NC \tfx \FontState \NC \tfx \tx \FontState \NC \tfx \txx \FontState \NC \NR
+%D \NC \type{\tfxx} \NC \tfxx \FontState \NC \tfxx\tx \FontState \NC \tfxx\txx \FontState \NC \NR
+%D \NC \type{\tf} \NC \tf \FontState \NC \tf \tx \FontState \NC \tf \txx \FontState \NC \NR
+%D \NC \type{\tfa} \NC \tfa \FontState \NC \tfa \tx \FontState \NC \tfa \txx \FontState \NC \NR
+%D \NC \type{\tfb} \NC \tfb \FontState \NC \tfb \tx \FontState \NC \tfb \txx \FontState \NC \NR
+%D \NC \type{\tfc} \NC \tfc \FontState \NC \tfc \tx \FontState \NC \tfc \txx \FontState \NC \NR
+%D \NC \type{\tfd} \NC \tfd \FontState \NC \tfd \tx \FontState \NC \tfd \txx \FontState \NC \NR
+%D \NC \type{\tfx} \NC \tfx \FontState \NC \tfx \tx \FontState \NC \tfx \txx \FontState \NC \NR
+%D \NC \type{\tfxx} \NC \tfxx \FontState \NC \tfxx\tx \FontState \NC \tfxx\txx \FontState \NC \NR
+%D \HL
+%D \stoptabulate
+%D
+%D \blank
+%D
+%D \starttabulate[|||||]
+%D \HL
+%D \NC \rlap{\quad\bf stacked} \NC \NC \type {\tx} \NC \type {\txx} \NC \NR
+%D \HL
+%D \NC \type{\tfx}
+%D \NC \tfx \FontState
+%D \NC \tfx \tx \FontState
+%D \NC \tfx \txx \FontState
+%D \NC \NR
+%D \NC \type{\tfxx}
+%D \NC \tfx\tfxx \FontState
+%D \NC \tfx\tfxx \tx \FontState
+%D \NC \tfx\tfxx \txx \FontState
+%D \NC \NR
+%D \NC \type{\tf}
+%D \NC \tfx\tfxx\tf \FontState
+%D \NC \tfx\tfxx\tf \tx \FontState
+%D \NC \tfx\tfxx\tf \txx \FontState
+%D \NC \NR
+%D \NC \type{\tfa}
+%D \NC \tfx\tfxx\tf\tfa \FontState
+%D \NC \tfx\tfxx\tf\tfa \tx \FontState
+%D \NC \tfx\tfxx\tf\tfa \txx \FontState
+%D \NC \NR
+%D \NC \type{\tfb}
+%D \NC \tfx\tfxx\tf\tfa\tfb \FontState
+%D \NC \tfx\tfxx\tf\tfa\tfb \tx \FontState
+%D \NC \tfx\tfxx\tf\tfa\tfb \txx \FontState
+%D \NC \NR
+%D \NC \type{\tfc}
+%D \NC \tfx\tfxx\tf\tfa\tfb\tfc \FontState
+%D \NC \tfx\tfxx\tf\tfa\tfb\tfc \tx \FontState
+%D \NC \tfx\tfxx\tf\tfa\tfb\tfc \txx \FontState
+%D \NC \NR
+%D \NC \type{\tfd}
+%D \NC \tfx\tfxx\tf\tfa\tfb\tfd \FontState
+%D \NC \tfx\tfxx\tf\tfa\tfb\tfd \tx \FontState
+%D \NC \tfx\tfxx\tf\tfa\tfb\tfd \txx \FontState
+%D \NC \NR
+%D \NC \type{\tfx}
+%D \NC \tfx\tfxx\tf\tfa\tfb\tfc\tfx \FontState
+%D \NC \tfx\tfxx\tf\tfa\tfb\tfc\tfx \tx \FontState
+%D \NC \tfx\tfxx\tf\tfa\tfb\tfc\tfx \txx \FontState
+%D \NC \NR
+%D \NC \type{\tfxx}
+%D \NC \tfx\tfxx\tf\tfa\tfb\tfc\tfx\tfxx \FontState
+%D \NC \tfx\tfxx\tf\tfa\tfb\tfc\tfx\tfxx \tx \FontState
+%D \NC \tfx\tfxx\tf\tfa\tfb\tfc\tfx\tfxx \txx \FontState
+%D \NC \NR
+%D \HL
+%D \stoptabulate
+
+%D \macros
+%D {mf}
+%D
+%D Math fonts are a species in their own. They are tightly
+%D hooked into smaller and even smaller ones of similar breed
+%D to form a tight family. Let's first see how these are
+%D related:
+%D
+%D \startbuffer
+%D $\tf x^2+\bf x^2+\sl x^2+\it x^2+\bs x^2+ \bi x^2 =\rm 6x^2$
+%D $\tf x^2+\bf x^2+\sl x^2+\it x^2+\bs x^2+{\bi x^2}=\rm 6x^2$
+%D $\tf x^2+\bf x^2+\sl x^2+\it x^2+\bs x^2+ \bi x^2 =\tf 6x^2$
+%D $\tf x^2+\bf x^2+\sl x^2+\it x^2+\bs x^2+{\bi x^2}=\tf 6x^2$
+%D $\tf x^2+\bf x^2+\sl x^2+\it x^2+\bs x^2+ \bi x^2 =\bf 6x^2$
+%D $\tf x^2+\bf x^2+\sl x^2+\it x^2+\bs x^2+{\bi x^2}=\bf 6x^2$
+%D $\tf x^2+\bf x^2+\sl x^2+\it x^2+\bs x^2+ \bi x^2 =\sl 6x^2$
+%D $\tf x^2+\bf x^2+\sl x^2+\it x^2+\bs x^2+{\bi x^2}=\sl 6x^2$
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D Gives both an expected and unexpected result:
+%D
+%D \startvoorbeeld
+%D \startlines
+%D \getbuffer
+%D \stoplines
+%D \stopvoorbeeld
+%D
+%D We see here that the character shapes change accordingly to
+%D the current family, but that the symbols are always typeset
+%D in the font assigned to \type{\fam0}.
+%D
+%D \startbuffer
+%D $\tf\mf x^2 + x^2 + x^2 + x^2 + x^2 + x^2 = 6x^2$
+%D $\bf\mf x^2 + x^2 + x^2 + x^2 + x^2 + x^2 = 6x^2$
+%D $\sl\mf x^2 + x^2 + x^2 + x^2 + x^2 + x^2 = 6x^2$
+%D $\bs\mf x^2 + x^2 + x^2 + x^2 + x^2 + x^2 = 6x^2$
+%D $\it\mf x^2 + x^2 + x^2 + x^2 + x^2 + x^2 = 6x^2$
+%D $\bi\mf x^2 + x^2 + x^2 + x^2 + x^2 + x^2 = 6x^2$
+%D \stopbuffer
+%D
+%D \startvoorbeeld
+%D \startlines
+%D \getbuffer
+%D \stoplines
+%D \stopvoorbeeld
+%D
+%D In this example we see a new command \type{\mf} surface
+%D which means as much as {\em math font}. This commands
+%D reactivates the last font alternative and therefore equals
+%D \type{\bf}, \type{\sl} etc. but by default it equals
+%D \type{\tf}:
+
+\unexpanded\def\mf
+ {\dodosetmathfont\fontalternative
+ \csname\fontalternative\endcsname}
+
+%D The previous example was typeset saying:
+%D
+%D \typebuffer
+%D
+%D Beware: the exact location of \type{\mf} is not that
+%D important, we could as well has said
+%D
+%D \startbuffer
+%D $\bf x^2 + x^2 + x^2 + x^2 + x^2 + x^2 = \mf 6x^2$
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D This is due to the way \TEX\ handles fonts in math mode.
+%D
+%D Of course we'll have to redefine \type{\mf} every time we
+%D change the current \type{\fam}.
+
+%D \macros
+%D {mbox,enablembox,mathop}
+%D
+%D Now how can we put this to use? Will the next sequence
+%D give the desired result?
+%D
+%D \startbuffer
+%D $\bf x^2 + \hbox{\mf whatever} + \sin(2x)$
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D It won't!
+%D
+%D \startvoorbeeld
+%D \let\mathop=\normalmathop \getbuffer
+%D \stopvoorbeeld
+%D
+%D The reason for this is that \type{\sin} is defined as:
+%D
+%D \starttyping
+%D \def\sin{\mathop{\rm sin}\nolimits}
+%D \stoptyping
+%D
+%D We can fix this by defining
+
+\unexpanded\def\mathop
+ {\normalmathop
+ \bgroup
+ \let\rm\mf
+ \let\next=}
+
+%D We can fix arbitrary horizontal boxes by redefining the
+%D \TEX\ primitive \type{\hbox}:
+%D
+%D \starttyping
+%D \def\hbox{\ifmmode\mbox\else\normalhbox\fi}
+%D \stoptyping
+%D
+%D with
+%D
+%D \starttyping
+%D \def\mbox#1#%
+%D {\normalhbox#1\bgroup\mf\let\next=}
+%D \stoptyping
+%D
+%D or more robust, that is, also accepting \type{\hbox\bgroup}:
+%D
+%D \starttyping
+%D \def\mbox%
+%D {\normalhbox\bgroup\mf
+%D \dowithnextbox{\flushnextbox\egroup}%
+%D \normalhbox}
+%D \stoptyping
+%D
+%D And now:
+%D
+%D \startbuffer
+%D $\bf x^2 + \hbox{whatever} + \sin(2x)$
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D Indeed gives:
+%D
+%D \startvoorbeeld
+%D \enablembox\getbuffer
+%D \stopvoorbeeld
+%D
+%D But, do we want this kind of trickery to be activated? No,
+%D simply because we cannot be sure of incompatibilities,
+%D although for instance unboxing goes ok. Therefore we
+%D introduce:
+
+% best can go to math-ini and make \mf a hook then
+
+% better use \dowithnextboxcontent
+
+\def\normalmbox
+ {\normalhbox\bgroup\mf
+ \dowithnextbox{\flushnextbox\egroup}\normalhbox}
+
+% to test:
+%
+% \def\normalmbox
+% {\dowithnextboxcontent\mf\flushnextbox\normalhbox}
+
+\def\mbox
+ {\ifmmode\normalmbox\else\normalhbox\fi}
+
+\def\enablembox
+ {\appendtoks
+ \ifx\normalhbox\undefined\let\normalhbox\hbox\fi
+ \let\hbox\mbox
+ \to\everymathematics}
+
+%D So in fact one can enable this feature if needed. I would say:
+%D go along, but use grouping if needed!
+
+%D \macros
+%D {mrfam,mifam,syfam,exfam,
+%D bsfam,bifam,scfam,tffam,
+%D mafam,mbfam,msfam}
+%D
+%D After this short mathematical excursion, we enter the world
+%D of fonts and fontswitching. We start with something very
+%D \TEX: \type{\fam} specified font families. \TEX\ uses
+%D families for managing fonts in math mode. Such a family has
+%D three members: text, script and scriptscript: $x^{y^z}$. In
+%D \CONTEXT\ we take a bit different approach than \PLAIN\
+%D \TEX\ does. \PLAIN\ \TEX\ needs at least four families for
+%D typesetting math. We use those but give them symbolic names.
+
+\chardef\mrfam = 0 % (Plain TeX) Math Roman
+\chardef\mifam = 1 % (Plain TeX) Math Italic
+\chardef\syfam = 2 % (Plain TeX) Math Symbol
+\chardef\exfam = 3 % (Plain TeX) Math Extra
+
+%D \PLAIN\ \TEX\ also defines families for {\it italic}, {\sl
+%D slanted} and {\bf bold} typefaces, so we don't have to
+%D define them here.
+
+\ifx\itfam\undefined
+
+\chardef\itfam = 4 % (Plain TeX) Italic
+\chardef\slfam = 5 % (Plain TeX) Slanted
+\chardef\bffam = 6 % (Plain TeX) Boldface
+
+\fi
+
+%D Family~7 in \PLAIN\ \TEX\ is not used in \CONTEXT, because
+%D we do massive switches from roman to sans serif, teletype or
+%D other faces.
+
+\ifx\ttfam\undefined
+
+\chardef\ttfam = 7 % (Plain TeX) can be reused!
+
+\fi
+
+%D We define ourselves some more families for {\bs bold
+%D slanted}, {\bi bold italic} and {\sc Small Caps}, so
+%D we can use them in math mode too. Instead of separate
+%D families for {\ss sans serif} and \type{teletype} we use the
+%D more general \type{\tffam}, which stands for typeface.
+
+\chardef\bsfam = 8 % (ConTeXt) BoldSlanted
+\chardef\bifam = 9 % (ConTeXt) BoldItalic
+\chardef\scfam = 10 % (ConTeXt) SmallCaps
+\chardef\tffam = 11 % (ConTeXt) TypeFace
+
+%D Because Taco needs a few more math families, we reuse
+%D family~7 for all those typefaces that have no related
+%D family, and therefore are grouped into one.
+
+\chardef\nnfam = 7 % (ReUsed) NoName
+
+%D Normally \type{\mrfam} equals \type{\tffam}, but a more
+%D distinctive alternatives are possible, for instance the
+%D Euler and Concrete Typefaces.
+%D
+%D After having defined all those in nature non||mathematical
+%D families, we define ourselves some real math ones. These are
+%D needed for the \AMS\ Symbol Fonts and Extended Lucida
+%D Bright.
+
+\chardef\mafam = 12 % (ConTeXt) Math A Fam (AmsTeX A)
+\chardef\mbfam = 13 % (ConTeXt) Math B Fam (AmsTeX B)
+\chardef\mcfam = 14 % (ConTeXt) Math C Fam (MathTime)
+\chardef\mdfam = 15 % (ConTeXt) Math D Fam (MathTime)
+
+%D Because there are 16~families and because \type{\ttfam}
+%D is reused, at the moment we have no so many families
+%D left. By default, we map any newly defined family on the
+%D last one (F).
+
+\def\newfam#1{\chardef#1=15 }
+
+%D This hack is also needed because in \ETEX\ we are going
+%D to reuse the \type {\newfam} allocation counter.
+
+%D To ease the support of font packages, we als define
+%D shortcuts to these familynames. This is necessary because
+%D the family names are in fact \type{\chardef}'s, which means
+%D that we're dealing with numbers (one can check this by
+%D applying \type{\showthe} and \type{\show}). In the
+%D specification of math symbols however we need hexadecimal
+%D numbers, so we have to convert the \type{\fam}'s value.
+
+\edef\hexmrfam {\hexnumber\mrfam} \edef\hexbsfam {\hexnumber\bsfam}
+\edef\hexmifam {\hexnumber\mifam} \edef\hexbifam {\hexnumber\bifam}
+\edef\hexsyfam {\hexnumber\syfam} \edef\hexscfam {\hexnumber\scfam}
+\edef\hexexfam {\hexnumber\exfam} \edef\hextffam {\hexnumber\tffam}
+\edef\hexitfam {\hexnumber\itfam} \edef\hexmafam {\hexnumber\mafam}
+\edef\hexslfam {\hexnumber\slfam} \edef\hexmbfam {\hexnumber\mbfam}
+\edef\hexbffam {\hexnumber\bffam} \edef\hexmcfam {\hexnumber\mcfam}
+\edef\hexnnfam {\hexnumber\nnfam} \edef\hexmdfam {\hexnumber\mdfam}
+
+%D \macros
+%D {uchar}
+%D
+%D This macro prepares \CONTEXT\ for \UNICODE\ support. By
+%D defining it here, we have at least an safeguard for utility
+%D file reading.
+
+\ifx\uchar\undefined \unexpanded\def\uchar#1#2{[#1,#2]} \fi
+
+%D We define some (very private) constants to improve speed,
+%D memory usage and consistency.
+
+\def\@size@ {@f@si@} % bodyfont size prefix (12pt etc)
+\def\@style@ {@f@st@} % full style prefix (roman etc)
+\def\@shortstyle@ {@f@sh@} % short style prefix (rm etc)
+\def\@letter@ {@f@le@} % first alternative typeface
+\def\@noletter@ {@f@no@} % second alternative typeface
+\def\@fontclass@ {@f@cl@} % fontclass
+
+%D The families can be grouped into math specific ones and
+%D more text related families, although text ones can be
+%D mapped onto the math ones to get for instance bold math.
+%D
+%D Both groups of families are handles by a couple of token
+%D list tagged as strategies. This implementation makes
+%D implementing extensions more comfortable.
+
+\newtoks \textstrategies
+\newtoks \mathstrategies
+\newtoks \symbstrategies
+
+\newif\ifsynchronizemathfonts \synchronizemathfontstrue
+
+\def\synchronizetext % stylish text in mmode
+ {\ifsynchronizemathfonts\the\textstrategies\fi} % \if...\fam\minusone\fi}
+
+\def\synchronizemath % math stuff in mmode
+ {\ifsynchronizemathfonts\the\mathstrategies\fi} % \if...\fam\minusone\fi}
+
+\def\synchronizesymb % stylish math stuff in mmode
+ {\ifsynchronizemathfonts\the\symbstrategies\fi} % \if...\fam\minusone\fi}
+
+%D By not setting the family we can append a font switch to \type
+%D {\everymath}. On the other hand, one never knows in what family
+%D state the strategies brought us.
+%D
+%D \starttyping
+%D {\bfa $\the\fam$} {\bfa \everymath{} $\the\fam$}
+%D \stoptyping
+
+%D \macros
+%D {textonly}
+%D
+%D We can inhibit this slow||downer with:
+
+\def\textonly{\synchronizemathfontsfalse} % document this
+
+\appendtoks
+ \dosettextfamily\c!tf
+ \dosettextfamily\c!bf
+ \dosettextfamily\c!sl
+ \dosettextfamily\c!it
+ \dosettextfamily\c!bs
+ \dosettextfamily\c!bi
+ \dosettextfamily\c!sc
+\to \textstrategies
+
+\def\dosettextfamily#1% better pass fontbody to dodoset
+ {\let\savedfontbody\fontbody
+ \let\fontfamily#1%
+ \let\fontbody\scriptscriptface\dodosettextfamily\scriptscriptfont
+ \let\fontbody\scriptface \dodosettextfamily \scriptfont
+ \let\fontbody\textface \dodosettextfamily \textfont
+ \let\fontbody\savedfontbody}
+
+% \def\s!nullfont{nullfont}
+
+\def\dodosettextfamily
+ {\ifx\fontclass\empty
+ \@EA\dodosettextfamilyA
+ \else
+ \@EA\dodosettextfamilyB
+ \fi}
+
+\def\dodosettextfamilyA#1%
+ {\ifcsname \fontbody\c!mm\fontfamily\fontsize\endcsname \autofontsizefalse
+ \csname \fontbody\c!mm\fontfamily\fontsize\endcsname \else
+ \ifcsname \fontbody\c!mm\fontfamily\endcsname \autofontsizetrue
+ \csname \fontbody\c!mm\fontfamily\endcsname \else
+ \ifcsname \fontbody\c!rm\fontfamily\fontsize\endcsname \autofontsizefalse
+ \csname \fontbody\c!rm\fontfamily\fontsize\endcsname \else
+ \ifcsname \fontbody\c!rm\fontfamily\endcsname \autofontsizetrue
+ \csname \fontbody\c!rm\fontfamily\endcsname \else
+ \nullfont \autofontsizetrue
+ \fi\fi\fi\fi
+ #1\csname\fontfamily\s!fam\endcsname\font}
+
+\def\dodosettextfamilyB#1%
+ {\ifcsname\fontclass\fontbody\c!mm\fontfamily\fontsize\endcsname \autofontsizefalse
+ \csname\fontclass\fontbody\c!mm\fontfamily\fontsize\endcsname \else
+ \ifcsname\fontclass\fontbody\c!mm\fontfamily\endcsname \autofontsizetrue
+ \csname\fontclass\fontbody\c!mm\fontfamily\endcsname \else
+ \ifcsname\fontclass\fontbody\c!rm\fontfamily\fontsize\endcsname \autofontsizefalse
+ \csname\fontclass\fontbody\c!rm\fontfamily\fontsize\endcsname \else
+ \ifcsname\fontclass\fontbody\c!rm\fontfamily\endcsname \autofontsizetrue
+ \csname\fontclass\fontbody\c!rm\fontfamily\endcsname \else
+ \dodosettextfamilyA#1%
+ \fi\fi\fi\fi
+ #1\csname\fontfamily\s!fam\endcsname\font}
+
+\def\mrfallback{\c!rm\c!tf}
+
+\appendtoks
+ \dosetmathfamily\mrfam\textface\scriptface\scriptscriptface\c!mr\mrfallback
+ \dosetmathfamily\mifam\textface\scriptface\scriptscriptface\c!mi\empty
+ \dosetmathfamily\syfam\textface\scriptface\scriptscriptface\c!sy\empty
+ \dosetmathfamily\exfam\textface\textface \textface \c!ex\empty
+ \dosetmathfamily\mafam\textface\scriptface\scriptscriptface\c!ma\empty
+ \dosetmathfamily\mbfam\textface\scriptface\scriptscriptface\c!mb\empty
+ \dosetmathfamily\mcfam\textface\scriptface\scriptscriptface\c!mc\empty
+% \dosetmathfamily\mdfam\textface\scriptface\scriptscriptface\c!md\empty
+ \dosetmathfamily\nnfam\textface\scriptface\scriptscriptface\c!nn\empty
+\to \mathstrategies
+
+\appendtoks
+ \dosetskewchar\mifam\defaultskewcharmi % implemented later on
+ \dosetskewchar\syfam\defaultskewcharsy % implemented later on
+\to \mathstrategies
+
+\def\dosetmathfamily#1#2#3#4#5#6%
+ {\let\savedfontbody\fontbody % op hoger plan
+ \let\fontfamily#5%
+ \let\backfamily#6%
+ \let\fontbody #4\dodosetmathfamily\scriptscriptfont#1%
+ \let\fontbody #3\dodosetmathfamily \scriptfont#1%
+ \let\fontbody #2\dodosetmathfamily \textfont#1%
+ \let\fontbody\savedfontbody}
+
+\def\dodosetmathfamily
+ {\ifx\fontclass\empty
+ \@EA\dodosetmathfamilyA
+ \else
+ \@EA\dodosetmathfamilyB
+ \fi}
+
+\def\dodosetmathfamilyA#1#2%
+ {\ifcsname \fontbody\c!mm\fontfamily\fontsize\endcsname \autofontsizefalse
+ \csname \fontbody\c!mm\fontfamily\fontsize\endcsname \else
+ \ifcsname \fontbody\c!mm\fontfamily \endcsname \autofontsizetrue
+ \csname \fontbody\c!mm\fontfamily \endcsname \else
+ \ifcsname \fontbody \backfamily\fontsize\endcsname \autofontsizefalse
+ \csname \fontbody \backfamily\fontsize\endcsname \else
+ \ifcsname \fontbody \backfamily \endcsname \autofontsizetrue
+ \csname \fontbody \backfamily \endcsname \else
+ \nullfont \autofontsizetrue
+ \fi\fi\fi\fi
+ #1#2\font}
+
+\def\dodosetmathfamilyB#1#2%
+ {\ifcsname\fontclass\fontbody\c!mm\fontfamily\fontsize\endcsname \autofontsizefalse
+ \csname\fontclass\fontbody\c!mm\fontfamily\fontsize\endcsname \else
+ \ifcsname\fontclass\fontbody\c!mm\fontfamily \endcsname \autofontsizetrue
+ \csname\fontclass\fontbody\c!mm\fontfamily \endcsname \else
+ \ifcsname\fontclass\fontbody \backfamily\fontsize\endcsname \autofontsizefalse
+ \csname\fontclass\fontbody \backfamily\fontsize\endcsname \else
+ \ifcsname\fontclass\fontbody \backfamily \endcsname \autofontsizetrue
+ \csname\fontclass\fontbody \backfamily \endcsname \else
+ \dodosetmathfamilyA#1#2%
+ \fi\fi\fi\fi
+ #1#2\font}
+
+\appendtoks
+ \dosetsymbfamily\mrfam\textface\scriptface\scriptscriptface\c!mr
+ \dosetsymbfamily\mifam\textface\scriptface\scriptscriptface\c!mi
+ \dosetsymbfamily\syfam\textface\scriptface\scriptscriptface\c!sy
+ \dosetsymbfamily\exfam\textface\textface \textface \c!ex
+ \dosetsymbfamily\mafam\textface\scriptface\scriptscriptface\c!ma
+ \dosetsymbfamily\mbfam\textface\scriptface\scriptscriptface\c!mb
+ \dosetsymbfamily\mcfam\textface\scriptface\scriptscriptface\c!mc
+% \dosetsymbfamily\mdfam\textface\scriptface\scriptscriptface\c!md % also ?
+\to \symbstrategies
+
+\def\dosetsymbfamily#1#2#3#4#5%
+ {\let\savedfontbody\fontbody
+ \let\fontfamily#5%
+ \let\fontbody #4\dodosetsymbfamily\scriptscriptfont#1%
+ \let\fontbody #3\dodosetsymbfamily \scriptfont#1%
+ \let\fontbody #2\dodosetsymbfamily \textfont#1%
+ \let\fontbody\savedfontbody}
+
+\def\dodosetsymbfamily#1#2%
+ {\ifcsname\fontclass\fontbody\c!mm\fontfamily\fontalternative\fontsize\endcsname
+ \csname\fontclass\fontbody\c!mm\fontfamily\fontalternative\fontsize\endcsname
+ #1#2\font
+ \else\ifcsname\fontbody\c!mm\fontfamily\fontalternative\fontsize\endcsname
+ \csname\fontbody\c!mm\fontfamily\fontalternative\fontsize\endcsname
+ #1#2\font
+ \fi\fi}
+
+%D All used styles, like rm, ss and tt, are saved in a comma
+%D separated list. Appart from practical limitations one can
+%D define as many styles as needed.
+
+\def\fontrelativesizelist{\s!text,\s!script,\s!scriptscript,\c!x,\c!xx,\c!big,\c!small}
+
+%D \macros
+%D {magfactor,magfactorhalf}
+%D
+%D There are several ways to specify a font. Three of them are
+%D pure \TeX\ ones, the fourth one is new:
+%D
+%D \starttyping
+%D \font\name=cmr12
+%D \font\name=cmr12 at 10pt
+%D \font\name=cmr12 scaled \magstep2
+%D \font\name=cmr12 sa 1.440
+%D \stoptyping
+%D
+%D The non||\TEX\ alternative \type{sa} stands for {\em scaled
+%D at}. This means as much as: scale the bodyfontsize with this
+%D factor. The value 1.440 in this example is derived
+%D from the \type{\magstep}'s as mentioned in
+%D \in{table}[tab:magstep]. We therefore introduce
+%D \type{\magfactor} as an alternative for \type{\magstep}.
+%D
+%D \placetable[here][tab:magstep]
+%D {Factors to be used with \type{sa.}}
+%D \starttable[|c|c|c|]
+%D \HL
+%D \NC \bf magstep \NC \bf equivalent \NC \bf factor \NC\SR
+%D \HL
+%D \NC 1 \NC \type{\magfactor1} \NC 1.200 \NC\FR
+%D \NC 2 \NC \type{\magfactor2} \NC 1.440 \NC\MR
+%D \NC 3 \NC \type{\magfactor3} \NC 1.728 \NC\MR
+%D \NC 4 \NC \type{\magfactor4} \NC 2.074 \NC\MR
+%D \NC 5 \NC \type{\magfactor5} \NC 2.488 \NC\LR
+%D \HL
+%D \stoptable
+
+\def\magstep#1% \relax removed, otherwise space after it sticks, else added
+ {\ifcase#1 1000\or1200\or1440\or1728\or2074\or2488\or1000\fi}
+
+\def\magstephalf
+ {1095}
+
+\def\magfactor#1%
+ {\ifcase#1 1.000\or1.200\or1.440\or1.728\or2.074\or2.488\or1\fi}
+
+\def\magfactorhalf
+ {1.095}
+
+%D These macros enable the use of definitions like \type{sa
+%D \magfactor3} which saves us both (mis|)|calculations and
+%D potential mistypings.
+%D
+%D Because \type {sa} (scaled at) and \type {mo} (mapped on)
+%D are not low level \TEX\ supported alternatives, we have to
+%D test for it ourselves. In doing so, we need an auxiliary
+%D \DIMENSION. We cannot use \type{\scratchdimen} because font
+%D loading can happen at any moment due to postponed loading.
+%D We could instead have used dirty grouping tricks, but this
+%D one works too.
+
+\let\defaultrelativefontsize \plusone
+\let\localrelativefontsize \plusone
+\def\localabsolutefontsize {\fontbody}
+
+\let\relativefontsize \defaultrelativefontsize
+
+\def\saverelativefontsize#1#2% #1=rm|ss|.. #2=waarde
+ {\setxvalue{\fontclass#1\s!rscale}{#2}}
+
+\def\checkrelativefontsize#1%
+ {\edef\relativefontsize
+ {\ifcsname\fontclass#1\s!rscale\endcsname
+ \csname\fontclass#1\s!rscale\endcsname
+ \else
+ \defaultrelativefontsize
+ \fi}}
+
+%D We also save:
+
+\def\savemathtextstyle#1% #1=rm|ss|..
+ {\doifsomething{#1}{\setxvalue{\fontclass\c!mm\s!text}{#1}}}
+
+\def\currentmathtextstyle % we default to empty !
+ {\executeifdefined{\fontclass\c!mm\s!text}\empty}
+
+%D Scaling macros:
+
+\newdimen\scaledfont
+
+\let\somefontspec\empty
+
+\def\@fs@{@fs@}
+
+% \def\parsefontspec#1%
+% {\xdef\somefontspec{#1\space\relax}%
+% \@EA\doparsefontspec\somefontspec]% =>#1 \relax]
+% \donoparsefontspec}
+%
+% but, better:
+
+\let\somefontname\empty
+
+\def\parsefontspec#1%
+ {\xdef\somefontspec{#1\space}%
+ \@EA\doparsefontspec\somefontspec\relax]% =>#1 \relax]
+ \donoparsefontspec}
+
+\def\doparsefontspec#1 #2%
+ {\def\somefontname{#1}%
+ \ifx\somefontname\empty % space before fontname
+ \@EA\doparsefontspec
+ \else\ifx#2\relax
+ \@EAEAEA\setnaturalfontspec
+ \else
+ \@EAEAEA\setforcedfontspec
+ \fi\fi
+ #2}
+
+\def\setnaturalfontspec#1]%
+ {\@fs@scaled\plusthousand\relax}
+
+\def\setforcedfontspec#1 #2\relax]%
+ {\csname\@fs@#1\endcsname#2\relax}
+
+\def\@fs@scaled
+ {\afterassignment\do@fs@scaled\scratchcounter}
+
+\def\do@fs@scaled#1\relax
+ {\scaledfont\number\scratchcounter\points
+ \scaledfont\localrelativefontsize\scaledfont
+ \ifautofontsize\scaledfont\currentfontbodyscale\scaledfont\fi
+ \scratchcounter\scaledfont % \scaledfont is now pretty large
+ \advance\scratchcounter \medcard
+ \divide\scratchcounter \maxcard
+ \xdef\somefontspec{ scaled \the\scratchcounter}}
+
+\def\@fs@at
+ {\afterassignment\do@fs@at\scaledfont}
+
+\def\do@fs@at#1\relax
+ {\scaledfont\localrelativefontsize\scaledfont
+ \ifautofontsize\scaledfont\currentfontbodyscale\scaledfont\fi
+ \xdef\somefontspec{ at \the\scaledfont}}
+
+\def\@fs@sa
+ {\scaledfont\localabsolutefontsize
+ \setsamofontspec}
+
+\def\@fs@mo
+ {\scaledfont\setmappedfontsize\localabsolutefontsize
+ \setsamofontspec}
+
+\def\setsamofontspec#1\relax
+ {\checkfontscale#1\end\scaledfont
+ \scaledfont\localrelativefontsize\scaledfont
+ \ifautofontsize\scaledfont\currentfontbodyscale\scaledfont\fi
+ \xdef\somefontspec{ at \the\scaledfont}}
+
+\def\getfontparameters
+ {\expandafter\dogetfontparameter\@@fontdata,]=,}
+
+\def\getglobalfontparameters
+ {\expandafter\dogetglobalfontparameter\@@fontdata,]=,}
+
+\def\dogetfontparameter#1=#2,%
+ {\if]#1\else
+ \expandafter\def\csname\??ff\@@fontfile#1\endcsname{#2}%
+ \expandafter\dogetfontparameter
+ \fi}
+
+\def\dogetglobalfontparameter#1=#2,%
+ {\if]#1\else
+ \expandafter\gdef\csname\??ff\@@fontfile#1\endcsname{#2}%
+ \expandafter\dogetglobalfontparameter
+ \fi}
+
+\let\@@fontencoding\empty
+\let\@@fontmapping \empty
+\let\@@fonthandling\empty
+\let\@@fontfeatures\empty
+\let\@@skewchar \empty
+\let\@@hyphenchar \empty % todo, will go to encoding
+
+%D This brings down maps processing from 466 to 309 seconds
+%D ($-33$\%) and mfonts from 42 to 34 seconds ($-15$\%).
+
+\newif\ifskipfontcharacteristics \skipfontcharacteristicstrue
+
+%D When fontclasses are used, we define the font global,
+%D since namespaces are used. Otherwise we parse the specs
+%D each time.
+
+% wrong: this way we cannot set encoding etc
+%
+% \def\donoparsefontspec#1%
+% {\edef\fontfile{\truefontname\somefontname}%
+% \ifx\fontfile\s!unknown \let\fontfile\defaultfontfile \fi
+% \edef\lastfontname{\fontfile\somefontspec}%
+% \ifx\fontclass\empty\else\global\fi
+% \expandafter\font\csname#1\endcsname\lastfontname\relax
+% \relax}
+
+\let\fontfile\s!unknown
+
+\ifx\checkfontfilename\undefined \let\checkfontfilename\relax \fi
+
+% \definefontsynonym
+% [blabla]
+% [name:Latin Modern Something]
+% \definefontsynonym
+% [blabla]
+% [file:texnansi-lmr10]
+% [encoding=texnansi]
+% \definedfont[blabla] test \currentencoding/\fontfile \par
+% \definefontsynonym
+% [blabla]
+% [texnansi-lmtt10]
+% [encoding=texnansi]
+% \definedfont[blabla] test \currentencoding/\fontfile \par
+% \definefontsynonym
+% [blabla]
+% [ec-lmtt10]
+% [encoding=ec]
+% \definedfont[blabla] test \currentencoding/\fontfile \par
+
+\def\checkfontfilename
+ {\expandafter\docheckfontfilename\fontfile:\empty:\empty\relax}
+
+\def\docheckfontfilename#1:#2:#3#4\relax
+ {\edef\!!stringa{#1}%
+ \edef\!!stringb{#2}%
+ \ifx\!!stringb\empty
+ \edef\checkedfontfile{\!!stringa}%
+ \else\ifx\!!stringa\v!file
+ \edef\checkedfontfile{"\!!stringb"}%
+ \else\ifx\!!stringa\v!name
+ \edef\checkedfontfile{"\!!stringb"}%
+ \else
+ \edef\checkedfontfile{\!!stringb}%
+ \fi\fi\fi}
+
+% \definefontfeature[default] [liga=yes,texligatures=yes,texquotes=yes]
+% \definefontfeature[default-caps][liga=yes,texligatures=yes,texquotes=yes,smcp=yes,script=latn]
+%
+% \starttypescript [serif] [palatino-nova-regular] [name]
+% \definefontsynonym[Serif] [palatinonova-regular][features=default]
+% \definefontsynonym[SerifCaps][palatinonova-regular][features=default-caps] % also sets Serif
+% \stoptypescript
+%
+% \starttypescript [serif] [palatino-nova-regular] [name]
+% \definefontsynonym[Serif] [palatinonova-regular*default]
+% \definefontsynonym[SerifCaps] [palatinonova-regular*default-caps]
+% \stoptypescript
+
+% \definetypeface[mainface][rm][serif][palatino-nova-regular][default] \setupbodyfont[mainface]
+%
+% \starttext
+% ``Test'' -- --- ff fi fl \sc ``Test'' -- --- ff fi fl
+% \stoptext
+
+% \starttext
+% \definefont
+% [blabla]
+% [name:Latin Modern Something]
+% \definefont
+% [blabla]
+% [file:texnansi-lmr10]
+% \blabla test
+% \definefont
+% [blabla]
+% [texnansi-lmtt10]
+% \blabla test
+% \stoptext
+
+% \starttext
+%
+% \setupcolors[state=start]
+%
+% \definefontfeature
+% [default-base]
+% [script=latn,language=dflt,liga=yes,kern=yes,tlig=yes,trep=yes]
+% \definefontfeature
+% [default-node]
+% [script=latn,language=dflt,liga=yes,kern=yes,tlig=yes,trep=yes,mode=node]
+% \definefontfeature
+% [default-none]
+% [script=latn,language=dflt,liga=yes,kern=no, tlig=yes,trep=yes]
+%
+% \startoverlay
+% {\vtop{\color[red] {\font\test=name:lmroman12regular*default-node \test \input ward \input zapf \input linden }}}
+% {\vtop{\color[green]{\font\test=name:lmroman12regular*default-base \test \input ward \input zapf \input linden }}}
+% {\vtop{\color[blue] {\font\test=name:lmroman12regular*default-none \test \input ward \input zapf \input linden }}}
+% \stopoverlay
+%
+% \blank
+%
+% \startoverlay
+% {\vtop{\color[red] {\font\test=name:texgyrepagella*default-node \test \input ward \input zapf \input linden }}}
+% {\vtop{\color[green]{\font\test=name:texgyrepagella*default-base \test \input ward \input zapf \input linden }}}
+% {\vtop{\color[blue] {\font\test=name:texgyrepagella*default-none \test \input ward \input zapf \input linden }}}
+% \stopoverlay
+%
+% \blank
+%
+% \startoverlay
+% {\vtop{\color[red] {\font\test=name:palatinonovaregular*default-node \test \input ward \input zapf \input linden }}}
+% {\vtop{\color[green]{\font\test=name:palatinonovaregular*default-base \test \input ward \input zapf \input linden }}}
+% {\vtop{\color[blue] {\font\test=name:palatinonovaregular*default-none \test \input ward \input zapf \input linden }}}
+% \stopoverlay
+%
+% \startoverlay
+% {\vtop{\color[red] {\font\test=name:OfficinaSerifBookITC*default-node \test \input ward \input zapf \input linden }}}
+% {\vtop{\color[green]{\font\test=name:OfficinaSerifBookITC*default-base \test \input ward \input zapf \input linden }}}
+% {\vtop{\color[blue] {\font\test=name:OfficinaSerifBookITC*default-none \test \input ward \input zapf \input linden }}}
+% \stopoverlay
+%
+% \definefontfeature[superdefault][default][compose=yes]
+%
+% {\font\oeps=name:lmroman10regular*default at 30pt \oeps test \char7683}
+% {\font\oeps=name:lmroman10regular*superdefault at 30pt \oeps test \char7683}
+%
+% \stoptext
+
+\let\doshowcheckedfontfeatures\relax
+
+\def\showcheckedfontfeatures
+ {\def\doshowcheckedfontfeatures{\writestatus\m!fonts{checked: \checkedfontfile}}}
+
+\def\checkedfontfile{\fontfile} % default
+
+\newtoks\everydefinefont
+
+\def\donoparsefontspec % #1 == \cs
+ {\edef\fontfile{\truefontname\somefontname}%
+ \ifx\fontfile\s!unknown \let\fontfile\defaultfontfile \fi % can for instance happen with MathGamma
+ \updatefontparameters
+ \checkfontfilename
+ \edef\lastfontname{\checkedfontfile\somefontspec}%
+ \ifx\fontclass\empty
+ \expandafter\definefontlocal
+ \else
+ \expandafter\definefontglobal
+ \fi} % #1 == \cs
+
+\def\definefontlocal#1%
+ {\expandafter\edef\csname#1\endcsname % ! ! ! ! not needed in luatex ! ! ! !
+ {\noexpand\csname#1:\endcsname
+ \noexpand\reactivatefont{\somefontname}{\fontfile}}%
+ \expandafter\font\csname#1:\endcsname\lastfontname\relax
+ \expandafter\let\expandafter\lastrawfontcall\csname#1:\endcsname
+ \the\everydefinefont}
+
+\def\definefontglobal#1% stores \somefontname=Mono and \fontfile=cmtt10
+ {\expandafter\xdef\csname#1\endcsname % ! ! ! ! not needed in luatex ! ! ! !
+ {\noexpand\csname#1:\endcsname
+ \noexpand\reactivatefont{\somefontname}{\fontfile}}%
+ \global\expandafter\font\csname#1:\endcsname\lastfontname\relax
+ \expandafter\let\expandafter\lastrawfontcall\csname#1:\endcsname
+ \the\everydefinefont}
+
+\def\reactivatefont#1#2%
+ {\def\somefontname{#1}%
+ \def\fontfile {#2}%
+ \updatefontparameters}
+
+% can be handy for tracing purposes
+%
+% \def\reportfontdefinition
+% {\bgroup
+% \expanded{\infofont
+% [\lastfontidentifier
+% ->\newfontidentifier
+% ->\fontname\csname\newfontidentifier\endcsname]}%
+% \endgraf
+% \egroup}
+
+%D An additional the second \type {\font} definition can
+%D prevent fuzzy font refs
+%D
+%D \starttyping
+%D \expandafter\font\csname\dummyfontname\endcsname\lastfontname
+%D \stoptyping
+%D
+%D but somehow they changed \TEX\ so that it does not matter
+%D any more.
+
+\def \defaultfontfile{\truefontname{Normal}} % was cmtt10, but that one is gone
+\edef\nullfontname {\fontname\nullfont}
+\edef\dummyfontname {font\strippedcsname\\}
+
+%D \macros
+%D {everyfont,everyfontswitch}
+%D
+%D For special purposes, we provide a hook.
+
+% \newevery \everyfont \relax
+% \newevery \everyfontswitch \relax
+
+% safer but sometimes introducing newlines in the log
+%
+% \batchmode
+% \font\lastloadedfont\fontfile\somefontspec\relax
+% \errorstopmode
+% \edef\lastfontname{\fontname\lastloadedfont}%
+% \ifx\lastfontname\nullfontname
+% \showmessage\m!fonts{10}{\fontfile}%
+% \expandafter\font\csname#1\endcsname=\defaultfontfile\somefontspec\relax
+% \else
+% \expandafter\let\csname#1\endcsname\lastloadedfont
+% \fi
+
+%D We also accept \type{sa a}||\type{sa d} as specification.
+
+\def\checkfontscale#1#2\end#3%
+ {#3\ifcsname\??ft\s!default\noexpand#1\endcsname
+ \csname\??ft\s!default\noexpand#1\endcsname\else#1#2%
+ \fi#3}
+
+%D The duplicate font definition, using the ever the same dummy
+%D font name, results in less fuzzy error messages. In the log
+%D file, for instance when overfull boxes are reported, the
+%D simple keyword `font' replaces the \TEX\ ordinated name. The
+%D latter can be too misleading, due to the fact that \TEX\ has
+%D a rather optimized font memory management. Thanks to Taco
+%D for helping me sort this out.
+
+%D \macros
+%D {definefontsynonym, doifelsefontsynonym,
+%D expandfontsynonym, truefontname, truefontdata}
+%D
+%D While looking for fonts, fontsynonyms are used for accessing
+%D the files!
+%D
+%D \starttyping
+%D \definefontsynonym[Serif][Lucida-Bright]
+%D \definefontsynonym[Lucida-Bright][lbr][encoding=texnansi]
+%D \stoptyping
+%D
+%D The definitions can be accessed by:
+%D
+%D \startlines
+%D name: \type {\truefontname{Lucida-Bright}}
+%D data: \type {\truefontdata{\truefontname{Lucida-Bright}}}
+%D \stoplines
+
+% \def\definefontsynonym
+% {\dotripleempty\dodefinefontsynonym}
+%
+% \def\dodefinefontsynonym[#1][#2][#3]%
+% {\@EA\edef\csname\??ff\fontclass#1\endcsname{#2}%
+% \ifthirdargument
+% \edef\@@fontdata{#3}%
+% \ifx\@@fontdata\empty \else
+% \edef\@@fontfile{#2}%
+% \ifx\fontclass\empty
+% \getfontparameters
+% \else
+% \getglobalfontparameters
+% \fi
+% \fi
+% \fi}
+%
+% slightly faster, noticable when loading many typefaces,
+%
+% \testfeatureonce{5000}{\definefontsynonym[somefont][somename]} \end
+
+\def\classfont#1#2{#1#2} % \definefont[whatever][\classfont{xx}{yy} at 10pt]
+
+\def\definefontsynonym[#1]#2[#3]%
+ {\edef\@@fontfile{#3}%
+ \@EA\let\csname\??ff\fontclass#1\endcsname\@@fontfile
+ \doifnextoptionalelse\dodefinefontsynonym\donothing}
+
+\def\dodefinefontsynonym[#1]%
+ {\edef\@@fontdata{#1}%
+ \ifx\@@fontdata\empty \else \ifx\fontclass\empty
+ \getfontparameters
+ \else
+ \getglobalfontparameters
+ \fi \fi}
+
+\let\definefontfile\definefontsynonym % dedicated to Taco Hoekwater
+
+\def\setupfontsynonym
+ {\dodoubleempty\dosetupfontsynonym}
+
+\def\dosetupfontsynonym[#1][#2]%
+ {\edef\@@fontdata{#2}%
+ \ifx\@@fontdata\empty \else
+ \edef\@@fontfile{#1}%
+ \ifx\fontclass\empty
+ \getfontparameters
+ \else
+ \getglobalfontparameters
+ \fi
+ \fi}
+
+\def\truefontdata#1#2%
+ {\ifcsname\??ff#1#2\endcsname
+ % raw(Regular) raw(key)
+ \csname\??ff#1#2\endcsname
+ \else\ifcsname\??ff\fontclass#1\endcsname
+ % exp(palatino Regular) raw(key)
+ \expandafter\truefontdata\csname\??ff\fontclass#1\endcsname#2%
+ \else\ifcsname\??ff#1\endcsname
+ % exp(Regular) raw(key)
+ \expandafter\truefontdata\csname\??ff#1\endcsname#2%
+ \else\ifcsname\??ff#2\endcsname
+ % raw(key)
+ \csname\??ff#2\endcsname
+ \fi\fi\fi\fi}
+
+\def\truefontname#1%
+ {\ifcsname\??ff\fontclass#1\endcsname
+ \@EA\truefontname\csname\??ff\fontclass#1\endcsname
+ \else\ifcsname\??ff#1\endcsname
+ \@EA\truefontname\csname\??ff#1\endcsname
+ \else
+ #1%
+ \fi\fi}
+
+\def\expandfontsynonym#1#2% #2 := onelevelexpansion(#1)
+ {\ifcsname\??ff\fontclass#2\endcsname
+ \expandafter\def\expandafter#1\expandafter{\csname\??ff\fontclass#2\endcsname}%
+ \fi}
+
+\def\doifelsefontsynonym#1%
+ {\ifcsname\??ff\fontclass#1\endcsname
+ \expandafter\firstoftwoarguments
+ \else
+ \expandafter\secondoftwoarguments
+ \fi}
+
+% \definetypeface[palatino][rm][serif][palatino,allbold][default]
+%
+% \startfontclass[palatino]
+% \definefontsynonym [Serif] [SerifBold]
+% \definefontsynonym [SerifItalic] [SerifBoldItalic]
+% \definefontsynonym [SerifSlanted] [SerifBoldSlanted]
+% \definefontsynonym [SerifCaps] [SerifBold]
+% \stopfontclass
+%
+% \setupbodyfont[palatino]
+
+\def\startfontclass
+ {\dosingleempty\dostartfontclass}
+
+\def\dostartfontclass[#1]%
+ {\pushmacro\fontclass
+ \doifelse{#1}{\v!each}
+ {\let\fontclass\empty}
+ {\doifsomething{#1}{\def\fontclass{#1}}}}
+
+\def\stopfontclass
+ {\popmacro\fontclass}
+
+%D \macros
+%D {tracedfontname}
+%D
+%D A goody:
+
+\def\tracedfontencoding#1%
+ {\ifcsname\??ff#1\s!encoding\endcsname
+ \space[\csname\??ff#1\s!encoding\endcsname]%
+ \fi}
+
+\def\tracedfontname#1%
+ {\ifcsname\??ff\fontclass#1\endcsname
+ #1\tracedfontencoding{\fontclass#1}\space->\space
+ \@EA\tracedfontname\csname\??ff\fontclass#1\endcsname
+ \else\ifcsname\??ff#1\endcsname
+ #1\tracedfontencoding{#1}\space->\space
+ \@EA\tracedfontname\csname\??ff#1\endcsname
+ \else
+ #1%
+ \fi\fi}
+
+%D \macros
+%D {getfontfileparameters}
+%D
+%D For special purposes, one can use the next macro to
+%D access font file characteristics, for instance:
+%D
+%D \starttyping
+%D \getfontfileparameters{Regular}
+%D \stoptyping
+%D
+%D can result in:
+%D
+%D \starttyping
+%D \def\currentfontfileencoding{texnansi}
+%D \stoptyping
+
+% \def\@@currentfontfile{currentfontfile}
+%
+% \def\getfontfileparameters#1%
+% {\edef\fontdata{\truefontdata{\truefontname{#1}}}%
+% \expanded{\getparameters[\@@currentfontfile][\fontdata]}}
+
+\def\getfontfileparameters#1% can be simpler for mkii
+ {\edef\@@truefontname{\truefontname{#1}}%
+ \edef\currentfontfileencoding{\truefontdata\@@truefontname\s!encoding}%
+ \edef\currentfontfilemapping {\truefontdata\@@truefontname\s!mapping }%
+ \edef\currentfontfilehandling{\truefontdata\@@truefontname\s!handling}%
+ \edef\currentfontfilefeatures{\truefontdata\@@truefontname\s!features}}
+
+%D \macros
+%D {definefont}
+%D
+%D Before we implement the main definition macro, we first show
+%D one for local use:
+%D
+%D \starttyping
+%D \definefont[Some][LucidaBright at 100pt] \Some some
+%D \definefont[More][LucidaBright scaled 3000] \More more
+%D \definefont[Nice][LucidaBright mp 2] \Nice nice
+%D \definefont[Text][LucidaBright sa 5.4] \Text last
+%D \stoptyping
+%D
+%D The implementation looks as follows:
+
+\def\definefont
+ {\dotripleempty\dodefinefont}
+
+\def\dodefinefont[#1][#2][#3]% [name][spec][1.6 | line=10pt | setup_id]
+ {\doifinstringelse{ }{#2}
+ {\ifthirdargument
+ \unexpanded\setvalue{#1}{\redodefinefont{#1}{#2}{#3}}%
+ \else
+ \unexpanded\setvalue{#1}{\dododefinefont{#1}{#2}}%
+ \fi}
+ {\definefont[#1][#2 sa *][#3]}}
+
+\def\redodefinefont#1#2#3%
+ {\dododefinefont{#1}{#2}%
+ \doifsetupselse{#3}
+ {\setups[#3]} % don't forget to document this !
+ {\setuplocalinterlinespace[#3]%
+ \setupspacing}} % needed ?
+
+\def\definefrozenfont
+ {\dotripleempty\dodefinefrozenfont}
+
+\def\dodefinefrozenfont[#1][#2][#3]%
+ {\dodefinefont[#1][#2][#3]%
+ \expandafter\let\csname\lastfontidentifier\expandafter\endcsname\csname\rawfontidentifier\endcsname}
+
+% \def\defineclassfont
+% {\doquadrupleempty\dodefineclassfont}
+%
+% \def\dodefineclassfont[#1][#2][#3][#4]% #2 = class
+% {\iffourthargument
+% \definefont[#1][#2#3][#4]%
+% %\else\ifthirdargument
+% % \definefont[#1][#2#3]%
+% \else
+% \definefont[#1][#2]%
+% \fi}
+
+%D The \type {*} makes the switch local, so that we can redefine a
+%D logical name and/or change the size in between.
+
+\newif\ifautofontsize \autofontsizetrue
+
+\let\lastfontidentifier\empty
+
+\def\rawfontidentifier{**\lastfontidentifier\fontsize**}
+\def\newfontidentifier{*\fontclass\lastfontidentifier\fontsize*}
+
+% best we can add the style as well because otherwise we get math encoding mixups
+%
+% \setupbodyfont [8pt] [\currentencoding/\ccaron\scaron\zcaron]
+% \blank
+% \switchtobodyfont[7pt] [\currentencoding/\ccaron\scaron\zcaron]
+
+\def\newfontidentifier{*\fontclass\lastfontidentifier\fontstyle\fontsize*}
+
+\def\dododefinefont#1#2%
+ {\edef\lastfontidentifier{#1}%
+ \let\localrelativefontsize\defaultrelativefontsize
+ \let\localabsolutefontsize\fontbody
+ \parsefontspec{#2}\rawfontidentifier
+ \let\localrelativefontsize\defaultrelativefontsize % not needed
+ \csname\rawfontidentifier\endcsname
+ \autofontsizefalse
+ \setfontcharacteristics
+ \the\everyfontswitch}
+
+\def\xxdododefinefont#1#2#3#4% \autofontsizetrue is set by calling routine
+ {\edef\lastfontidentifier{#3}%
+ \ifcsname\newfontidentifier\endcsname\else
+ \def\localrelativefontsize{#1}%
+ \def\localabsolutefontsize{#2}%
+ \parsefontspec{#4}\newfontidentifier
+ \let\localrelativefontsize\defaultrelativefontsize % not needed
+ \fi
+ \csname\newfontidentifier\endcsname
+ \autofontsizefalse
+ %\edef\lastfontidentifier{#3}%
+ \ifskipfontcharacteristics \else
+ \setfontcharacteristics
+ \the\everyfontswitch
+ \fi}
+
+%D I considered checking for mistakenly use of \PLAIN's
+%D \type{\magstep}'s but although it would take only a few
+%D lines of code, this would not add to consistent use. I
+%D therefore removed this check.
+
+%D \macros
+%D {mapfontsize}
+%D
+%D For special purposes, like in math, you may want to use
+%D slightly different sizes than the ones given. This happens
+%D for instance with the Math Times fonts. Mapped font sizes
+%D can be specified by using the \type {mo} key instead of
+%D \type {sa} in font definitions.
+%D
+%D \startbuffer
+%D \mapfontsize[10pt][11pt]
+%D \mapfontsize[11pt][12pt]
+%D \mapfontsize[12pt][13pt]
+%D
+%D \definefont[test][Serif]\test TEST \par
+%D \definefont[test][Serif sa 5]\test TEST \par
+%D \definefont[test][Serif mo 5]\test TEST \par
+%D \definefont[test][Serif sa d]\test TEST \par
+%D \definefont[test][Serif at 60pt]\test TEST \par
+%D \definefont[test][Serif scaled 6000]\test TEST \par
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D \startpacked
+%D \getbuffer
+%D \stoppacked
+
+\def\mapfontsize
+ {\dodoubleargument\domapfontsize}
+
+\def\domapfontsize[#1][#2]%
+ {\scratchdimen#1\relax % \relax is really needed here
+ \setvalue{\??ft*\the\scratchdimen}{#2}}
+
+\def\setmappedfontsize#1%
+ {\ifcsname\??ft*#1\endcsname
+ \csname\??ft*#1\endcsname
+ \else
+ #1%
+ \fi}
+
+%D \macros
+%D {getfontname}
+%D
+%D The names of the fonts can be called with the rather simple
+%D macro \type{\getfontname}. When for instance we pass
+%D \type{12ptrmtf} as argument, we get \getfontname{12ptrmtf}.
+
+\def\getfontname#1%
+ {\csname\??ft#1\endcsname}
+
+%D To be documented.
+
+\let\fontsizelist\empty
+\let\fontstylelist\empty
+
+\def\definefontsize[#1]% sneller met toks
+ {\addtocommalist{#1}\fontsizelist
+ \def\docommand##1%
+ {\def\dodocommand####1%
+ {\def\dododocommand########1%
+ %{\checkbodyfont{}{########1}{####1}{##1}}%
+ {\checkbodyfont{########1}{####1}{##1}}%
+ \processcommacommand[\fontstylelist]\dododocommand}%
+ \processcommacommand[\fontalternativelist]\dodocommand}%
+ \processcommacommand[\fontsizelist]\docommand}
+
+\def\fontalternativetextlist{\c!tf,\c!bf,\c!it,\c!sl,\c!bs,\c!bi,\c!sc}
+\def\fontalternativemathlist{\c!mr,\c!mi,\c!sy,\c!ex,\c!ma,\c!mb}
+
+\let\fontalternativelist\fontalternativetextlist % upward compatible
+
+%D \macros
+%D {currentfontscale,currentfontbodyscale}
+%D
+%D Sometimes we need to have access to the font scale
+%D including the \type{a}||\type{d} sizes. The next macro
+%D returns the current scaling factor. Take a look at
+%D \type {cont-log.tex} for an example of its use.
+
+\def\currentfontscale
+ {\csname\??ft\s!default
+ \ifcsname\??ft\s!default\xfontsize\endcsname \xfontsize \else
+ \ifcsname\??ft\s!default\s!text \endcsname \s!text \fi\fi
+ \endcsname}
+
+\def\currentfontbodyscale
+ {\csname\??ft\s!default
+ \ifcsname\??ft\s!default\fontsize\endcsname \fontsize \else
+ \ifcsname\??ft\s!default\s!text \endcsname \s!text \fi\fi
+ \endcsname}
+
+\setvalue{\??ft\s!default}{1}
+
+%D Both alternatives use \type {\xfontsize}, a macro that
+%D expands to the current size in terms of \type {a} \unknown
+%D \type {d}, nothing, or \type {x} \unknown \type {xx}.
+
+\def\xfontsize{\ifcase\currentxfontsize\fontsize\or\c!x\else\c!xx\fi}
+
+%D A typical use of this command is in commands that switch
+%D to another font bypassing the font mechanism:
+%D
+%D \starttyping
+%D \font\myfont=\truefontname{MyFont} at \currentfontscale\bodyfontsize
+%D \stoptyping
+
+%D Now we enter the area of font switching. The switching
+%D mechanism has to take care of several situations, like:
+%D
+%D \startitemize[packed]
+%D \item changing the overal document fonts (including margins,
+%D headers and footers)
+%D \item changing local fonts (only the running text)
+%D \item smaller and even more smaller alternatives (super-
+%D and subscripts)
+%D \stopitemize
+%D
+%D \TEX\ offers a powerfull family mechanism for super- and
+%D subscripts in math mode. In text mode however, we don't use
+%D families for the smaller alternatives, and therefore have
+%D to take care of it otherwise.
+
+%D \macros
+%D {definebodyfontenvironment,setupbodyfontenvironment}
+%D
+%D The relationship between the several sizes of a font, is
+%D defined by:
+%D
+%D \showsetup{definebodyfontenvironment}
+%D
+%D Later on we will see how these parameters are used, so for
+%D the moment we stick with an example:
+%D
+%D \starttyping
+%D \definebodyfontenvironment
+%D [12pt]
+%D [ text=12pt,
+%D script=9pt,
+%D scriptscript=7pt,
+%D x=10pt,
+%D xx=8pt,
+%D big=12pt,
+%D small=10pt]
+%D \stoptyping
+%D
+%D The first argument specifies the bodyfont size to which the
+%D settings apply. All second parameters are specified in
+%D dimensions and tell us more about related sizes.
+%D
+%D Afterwards, one can change values with
+%D
+%D \showsetup{setupbodyfontenvironment}
+%D
+%D Due to the fact that \type{\c!text} and \type{\s!text} can
+%D have a similar meaning, and therefore can lead to an
+%D unwanted loop, we temporary redefine \type{\c!text}. For
+%D the moment this in only place that some trickery is needed
+%D to fool the multilingual interface.
+%D
+%D When instead of a size the keyword \type{unknown} is
+%D passed, fractions (relations) are used instead of fixed
+%D sizes.
+
+\let\bodyfontenvironmentlist\empty
+
+\newcount\@@fontdefhack
+
+\def\@@beginfontdef
+ {\ifcase\@@fontdefhack
+ \let\k!savedtext \k!text \let\k!text \s!text
+ \let\k!k!savedtext \k!k!text \let\k!k!text \!!plusone
+ \let\k!saveddefault \k!default \let\k!default \s!default
+ \let\k!k!saveddefault\k!k!default \let\k!k!default \!!plusone
+ \fi
+ \advance\@@fontdefhack \plusone }
+
+\def\@@endfontdef
+ {\advance\@@fontdefhack \minusone
+ \ifcase\@@fontdefhack
+ \let\k!k!default\k!k!saveddefault
+ \let\k!default \k!saveddefault
+ \let\k!k!text \k!k!savedtext
+ \let\k!text \k!savedtext
+ \fi}
+
+\def\definebodyfontenvironment
+ {\dotripleempty\dodefinebodyfontenvironment}
+
+\def\dodefinebodyfontenvironment[#1][#2][#3]% class size settings
+ {\ifthirdargument
+ \@@beginfontdef
+ \doifelse{#2}\s!default
+ {\getparameters[\??ft\s!default][#3]}
+ {\normalizebodyfontsize#2\to\tempbodyfontsize
+ \addtocommalist\tempbodyfontsize\bodyfontenvironmentlist
+ \@EA\dododefinebodyfontenvironment\@EA[\tempbodyfontsize][#1][#3]}%
+ \@@endfontdef
+ \else
+ \definebodyfontenvironment[\fontclass][#1][#2]% change */*
+ \fi}
+
+\def\dododefinebodyfontenvironment[#1][#2][#3]% size class settings
+ {\@@beginfontdef
+ \doifundefined{\??ft#2#1\c!em} % \s!text goes wrong in testing because
+ {\def\docommand##1% % the 12pt alternative will called when
+ {\scratchdimen#1\relax % typesetting the test (or so)
+ \scratchdimen\csname\??ft\s!default##1\endcsname\scratchdimen
+ \normalizebodyfontsize\scratchdimen\to\tempbodyfontsize
+ \setevalue{\??ft#2#1##1}{\tempbodyfontsize}}%
+ \processcommacommand[\fontrelativesizelist]\docommand
+ \copyparameters
+ [\??ft#2#1][\??ft\s!default]
+ [\c!interlinespace,\c!em]}%
+ \getparameters[\??ft#2#1][#3]%
+ \@@endfontdef
+ % new code, see remark
+ \ifloadingfonts \else % only runtime
+ \doifundefined{\@size@#1} % only once
+ {\letvalue{\@size@#1}\empty % prevent loop
+ \defineunknownfont{#1}}% % safeguard
+ \fi
+ % so far
+ \setvalue{\@size@#1}{\docompletefontswitch[#1]}}
+
+%D {\bf Remark:} We need to cover the following cases,
+%D otherwise users can get confused:
+%D
+%D \starttyping
+%D \setupbodyfont[23pt]
+%D
+%D \definebodyfontenvironment[23pt]
+%D \setupbodyfont[23pt]
+%D
+%D \definebodyfontenvironment[23pt]
+%D \definebodyfont[23pt][rm,ss,tt][default]
+%D \setupbodyfont[23pt]
+%D \stoptyping
+
+%D Beware: while some font defs can be global, the bodyfont
+%D environment checks local. This means that multiple local
+%D checks resulting in definitions are not that efficient.
+%D So, apart from an occasional switch, one should define an
+%D environment at the outer level.
+
+\def\checkbodyfontenvironment[#1]%
+ {\definebodyfontenvironment[\fontclass][#1][]}
+
+% original
+%
+% \def\setupbodyfontenvironment
+% {\dotripleempty\dosetupbodyfontenvironment}
+%
+% \def\dosetupbodyfontenvironment[#1][#2][#3]% class size settings
+% {\@@beginfontdef
+% \ifthirdargument
+% \getparameters[\??ft#1#2][#3]%
+% \else
+% \getparameters[\??ft#1][#2]%
+% \fi
+% \@@endfontdef}
+%
+% this one already catches both define/setup
+
+\def\setupbodyfontenvironment{\definebodyfontenvironment}
+
+% officially, but not needed (yet):
+%
+% \def\dosetupbodyfontenvironment[#1][#2][#3]% class size settings
+% {\ifthirdargument
+% \localbodyfontsize#2\relax
+% \normalizebodyfontsize\localbodyfontsize\to\normalizedbodyfontsize
+% \doifundefinedelse{\??ft#1\normalizedbodyfontsize\c!em}
+% {\definebodyfontenvironment[#1][#2][#3]}%
+% {\getparameters[\??ft#1\normalizedbodyfontsize][#3]}%
+% \else
+% \localbodyfontsize#1\relax
+% \normalizebodyfontsize\localbodyfontsize\to\normalizedbodyfontsize
+% \doifundefinedelse{\??ft\normalizedbodyfontsize\c!em}
+% {\definebodyfontenvironment[#1][#2]}%
+% {\getparameters[\??ft\normalizedbodyfontsize][#2]}%
+% \fi}
+
+%D Just a couple of interface macros:
+
+\def\bodyfontvariable#1%
+ {\??ft\ifcsname\??ft\fontclass#1\endcsname\fontclass\fi#1}
+
+\def\bodyfontcsname
+ {\csname\bodyfontvariable}
+
+\def\bodyfontinterlinespecs
+ {\bodyfontvariable{\normalizedbodyfontsize\c!interlinespace}}
+
+\def\bodyfontinterlinespace
+ {\csname\bodyfontinterlinespecs\endcsname}
+
+%D We default all parameters to the main bodyfont size (begin
+%D \type{#1}), so the next setup is valid too:
+%D
+%D \starttyping
+%D \definebodyfontenvironment[24pt]
+%D \stoptyping
+%D
+%D All parameters can be redefined when needed, so one does
+%D not have to stick to the default ones.
+
+%D \macros
+%D {definebodyfont}
+%D
+%D The next step in defining a bodyfont involves the actual font
+%D files, which can be recognized by their extension
+%D \type{tfm}. Installing those file is often beyond the
+%D scope of the user and up to the system administrator.
+%D
+%D \showsetup{definebodyfont}
+%D
+%D This commands takes three arguments: a (series of) bodyfont
+%D size(s), the style group to which the definitions belong,
+%D and an alternative, as specified by the \TEX\ (math) families,
+%D extended with~a, b~\unknown.
+%D
+%D We show two examples, that show all the alternative
+%D scaling options. The \type{\tfa} alternatives can be
+%D extended with \type{\bfa}, \type{\slb}, etc. or even
+%D \type{e} and higher alternatives.
+%D
+%D \starttyping
+%D \definebodyfont [12pt] [rm]
+%D [tf=cmr12,
+%D bf=cmbx12,
+%D it=cmti12,
+%D sl=cmsl12,
+%D bi=cmbxti10 at 12pt,
+%D bs=cmbxsl10 at 12pt,
+%D tfa=cmr12 scaled \magstep1,
+%D tfb=cmr12 scaled \magstep2,
+%D tfc=cmr12 scaled \magstep3,
+%D tfd=cmr12 scaled \magstep4,
+%D sc=cmcsc10 at 12pt]
+%D
+%D \definebodyfont [12pt,11pt,10pt,9pt,8pt] [rm]
+%D [tf=lbr sa 1,
+%D bf=lbd sa 1,
+%D it=lbi sa 1,
+%D sl=lbsl sa 1,
+%D bi=lbdi sa 1,
+%D bs=lbdi sa 1,
+%D tfa=lbr sa 1.200,
+%D tfb=lbr sa 1.440,
+%D tfc=lbr sa 1.728,
+%D tfd=lbr sa 2.074,
+%D sc=lbr sa 0.833]
+%D \stoptyping
+%D
+%D The second example shows that we can define more sizes at
+%D once. The main difference between these examples is that the
+%D Computer Modern Roman come in many design sizes. This means
+%D that there we cannot define them in bulk using \type{sa}.
+%D Instead of \type{rm} (roman) one can define \type{ss} (sans
+%D serif), \type{tt} (teletype), \type{hw} (hand written),
+%D \type{cg} (calygraphic) and whatever styles.
+%D
+%D The first argument may be a comma separated list. This,
+%D combined with specifications using \type{sa} can save a lot
+%D of typing. Although all arguments should be specified, we
+%D treat the second argument as optional.
+%D
+%D Defining a bodyfont involves two actions: defining the
+%D specific style related alternatives, like \type{\rma},
+%D \type{\bfa} and \type{\rmsla}, and storing the definitions
+%D of their bodyfont size related fonts. The first step is
+%D bodyfont independant but executed every time. This permits
+%D user definitions like \type{\tfw} or \type{\bfq} for real
+%D large alternatives.
+
+\def\definebodyfont
+ {\doquadrupleempty\redefinebodyfont}
+
+\def\redefinebodyfont[#1][#2][#3][#4]%
+ {\iffourthargument
+ \processcommacommand[#1]{\reredefinebodyfont[#2][#3][#4]}%
+ \else
+ \dodefinebodyfont[#1][#2][#3]%
+ \fi}
+
+\def\reredefinebodyfont[#1][#2][#3]#4%
+ {\pushmacro\fontclass
+ \doifelse{#4}\s!default
+ {\let\fontclass\empty}
+ {\def\fontclass{#4}}%
+ \definebodyfont[#1][#2][#3]%
+ \popmacro\fontclass}
+
+\def\dodefinebodyfont[#1][#2][#3]% body|identifier style defs|identifier
+ {\ifthirdargument
+ \doifnumberelse{#1}
+ {\doifassignmentelse{#3}
+ {% [12pt] [style] [settings]
+ \doifundefined{#2}{\expanded{\definefontstyle[#2][#2]}}% new
+ \processcommalist[#1]{\dododefinebodyfont{#2}{#3}}}
+ {% [12pt] [style] [identifier]
+ \dodefinedefaultbodyfont[#1][#2][#3]}} % body style identifier
+ {% [identifier] [style] [settings] % see ***
+ \setvalue{\s!default#1#2}##1##2{\expanded{\xdodefinebodyfont[##1][##2][#3]}}}%
+ \else\ifsecondargument
+ \definebodyfont[#1][\c!rm][#2]%
+ \else
+ \doifundefined{\@size@#1} % Maybe there are default dependancies
+ {\defineunknownfont{#1}}% defined which we can use ([unknown])
+ \doifundefined{\@size@#1} % and if not, then we have at least to
+ {\definebodyfont[#1][\c!rm][]}% make sure some basics are set up.
+ \fi\fi}
+
+\def\xdodefinebodyfont[#1][#2][#3]% body|identifier style defs|identifier
+ {%\writestatus{[#1]}{[#2][#3]}%
+ \checkrelativefontsize{#2}% rather new, inherit from other defs
+ \ifundefined{#2}\expanded{\definefontstyle[#2][#2]}\fi % new
+ \processcommalist[#1]{\dododefinebodyfont{#2}{#3}}%
+ \let\relativefontsize\defaultrelativefontsize}
+
+\def\dododefinebodyfont#1#2#3% style defs body
+ {\checkbodyfontenvironment[#3]% just to be sure.
+ \processcommalist[#2]{\dodododefinebodyfont{#1}{#3}}}
+
+\def\dodododefinebodyfont#1#2#3% style body def
+ {\dododododefinebodyfont{#1}{#2}[#3]}
+
+\newif \ifresolvefontfile % protected by fontclass anyway
+
+\def\resolvefontname#1 {\truefontname{#1} }
+
+\def\iflocalclassfonts{\ifx\fontclass\empty}
+
+\def\dododododefinebodyfont#1#2[#3#4#5=#6]% style body def
+ {\ifundefined{#1#3#4#5}%
+ %\checkbodyfont{#2}{#1}{#3#4}{#5}% not \definefontsize[#5]
+ \checkbodyfont{#1}{#3#4}{#5}% not \definefontsize[#5]
+ \fi
+ \iflocalclassfonts
+ \letbeundefined{*\fontclass#2#1#3#4#5*}%
+ \scratchtoks{#6}%
+ \expanded{\unexpanded\noexpand\setvalue{#2#1#3#4#5}%
+ {\noexpand\xxdododefinefont{\relativefontsize}{#2}%
+ {#2#1#3#4#5}{\the\scratchtoks}}}%
+ \else
+ %\expanded{\writestatus{defining}{[\fontclass][#2#1#3#4#5] \resolvefontname#6 }}%
+ \global\letbeundefined{*\fontclass#2#1#3#4#5*}%
+ \ifresolvefontfile
+ \unexpanded\setxvalue{\fontclass#2#1#3#4#5}%
+ {\noexpand\xxdododefinefont{\relativefontsize}{#2}%
+ {#2#1#3#4#5}{\resolvefontname#6 }}%
+ \else
+ \scratchtoks{#6}%
+ \expanded{\unexpanded\noexpand\setgvalue{\fontclass#2#1#3#4#5}%
+ {\noexpand\xxdododefinefont{\relativefontsize}{#2}%
+ {#2#1#3#4#5}{\the\scratchtoks}}}%
+ \fi
+ \fi}
+
+% \def\checkbodyfont#1#2#3#4% body style alt size / gdef % #4 can be empty
+% {\def\c!!mm{#2}%
+% \ifx\c!!mm\c!mm % prevents \max and alike (re)defs
+% \unexpanded\setgvalue {#2}{\setcurrentfontstyle {#2}}% \rm
+% \unexpanded\setgvalue {#3}{\setcurrentfontalternative {#3}}% \sl
+% \else
+% \unexpanded\setgvalue {#2#4}{\setcurrentfontstylesize {#2}{#4}}% \rma
+% \unexpanded\setgvalue {#3#4}{\setcurrentfontalternativesize {#3}{#4}}% \sla
+% \unexpanded\setgvalue {#2#3#4}{\setcurrentfontstylealternativesize{#2}{#3}{#4}}% \rmsla
+% \unexpanded\setgvalue {#2}{\setcurrentfontstyle {#2}}% \rm
+% \unexpanded\setgvalue {#3}{\setcurrentfontalternative {#3}}% \sl
+% \unexpanded\setgvalue {#2\c!x}{\setcurrentfontxstylealternative {#2}}% \rmx
+% \unexpanded\setgvalue{#2\c!xx}{\setcurrentfontxxstylealternative {#2}}% \rmxx
+% \unexpanded\setgvalue {#3\c!x}{\setcurrentfontxalternative {#3}}% \slx
+% \unexpanded\setgvalue{#3\c!xx}{\setcurrentfontxxalternative {#3}}% \slxx
+% \unexpanded\setgvalue {#2#3}{\setcurrentfontstylealternative {#2}{#3}}% \rmsl
+% \fi}
+%
+% leaner
+
+\def\checkbodyfont#1% tests for ttsl mmbf
+ {\def\c!!mm{#1}%
+ \ifx\c!!mm\c!mm % prevents \max and alike (re)defs
+ \expandafter\checkmathbodyfont
+ \else
+ \expandafter\checktextbodyfont
+ \fi{#1}} % no \c!!mm, not expanded later on
+
+\def\checkmathbodyfont#1#2#3% style alt size / gdef % #3 can be empty
+ {%\message{!m #1 #2 #3!}%
+ % #1 #2 #3 = signal
+ \unexpanded\setgvalue {#1#2#3}{\setcurrentfontstylealternativesize{#1}{#2}{#3}}% \mmsla
+ \unexpanded\setgvalue {#1}{\setcurrentfontstyle {#1}}% \mm
+ \unexpanded\setgvalue {#2}{\setcurrentfontalternative {#2}}}% \sl
+
+\def\checktextbodyfont#1#2#3% style alt size / gdef % #3 can be empty
+ {%\message{!t #1 #2 #3!}%
+ \unexpanded\setgvalue {#1#3}{\setcurrentfontstylesize {#1}{#3}}% \rma
+ \unexpanded\setgvalue {#2#3}{\setcurrentfontalternativesize {#2}{#3}}% \sla
+ \unexpanded\setgvalue {#1#2#3}{\setcurrentfontstylealternativesize{#1}{#2}{#3}}% \rmsla
+ \unexpanded\setgvalue {#1}{\setcurrentfontstyle {#1}}% \rm
+ \unexpanded\setgvalue {#2}{\setcurrentfontalternative {#2}}% \sl
+ \unexpanded\setgvalue {#1\c!x}{\setcurrentfontxstylealternative {#1}}% \rmx
+ \unexpanded\setgvalue{#1\c!xx}{\setcurrentfontxxstylealternative {#1}}% \rmxx
+ \unexpanded\setgvalue {#2\c!x}{\setcurrentfontxalternative {#2}}% \slx
+ \unexpanded\setgvalue{#2\c!xx}{\setcurrentfontxxalternative {#2}}% \slxx
+ \unexpanded\setgvalue {#1#2}{\setcurrentfontstylealternative {#1}{#2}}}% \rmsl
+
+\def\dodefinedefaultbodyfont[#1][#2][#3]% sizes styles identifier
+ {\def\dododefinedefaultbodyfont##1%
+ {\def\dodododefinedefaultbodyfont####1%
+ {\def\dododododefinedefaultbodyfont########1%
+ {\doifdefined{\s!default########1####1}
+ {% [12pt] [style] [identifier]
+ \getvalue{\s!default########1####1}{##1}{####1}}}%
+ \processcommalist[#3]\dododododefinedefaultbodyfont}%
+ \processcommalist[#2]\dodododefinedefaultbodyfont}%
+ \processcommalist[#1]\dododefinedefaultbodyfont}
+
+%D Unknown families are added to the family list! For the
+%D moment we also set the direct calls here. Some day a better
+%D solution will be implemented. The good news is that unknown
+%D fonts are defined automatically.
+
+\newif\ifdefiningunknownfont
+
+% \def\defineunknownfont#1%
+% {\let\c!savedtext\c!text
+% \let\c!text\s!text
+% \donefalse
+% \def\docommand##1%
+% {\doifdefined{\??ft\s!default##1}
+% {\donetrue
+% \scratchdimen#1\relax
+% \scratchdimen\csname\??ft\s!default##1\endcsname\scratchdimen
+% \normalizebodyfontsize\scratchdimen\to\!!stringa
+% \letvalue{\??ft#1##1}\!!stringa}}%
+% \processcommacommand[\fontrelativesizelist]\docommand
+% \let\c!text\c!savedtext
+% \ifdone
+% \donefalse
+% \def\defineunknownbodyfont##1% see ***
+% %{\doifdefined{\s!default##1}
+% % {\donetrue\getvalue{\s!default##1}{#1}}}%
+% {\doifdefined{\s!default\s!default##1}
+% {\donetrue\getvalue{\s!default\s!default##1}{#1}{##1}}}%
+% \processcommacommand
+% [\fontstylelist]
+% \defineunknownbodyfont
+% \ifdone
+% \setvalue{\@size@#1}{\docompletefontswitch[#1]}%
+% \ifdefiningunknownfont \else
+% \definingunknownfonttrue
+% \def\defineunknownsubfont##1%
+% {\doifundefined{\@size@\getvalue{\??ft#1##1}}
+% {\defineunknownfont{\getvalue{\??ft#1##1}}}}%
+% \processcommacommand[\fontrelativesizelist]\defineunknownsubfont
+% \definingunknownfontfalse
+% \fi
+% \fi
+% \ifdone
+% \showmessage\m!fonts{14}{#1}%
+% \fi
+% \fi}
+
+\def\dodefineunknownfont#1#2%
+ {\doifdefined{\??ft\s!default#2}
+ {\donetrue
+ \scratchdimen#1\relax
+ \scratchdimen\csname\??ft\s!default#2\endcsname\scratchdimen
+ \normalizebodyfontsize\scratchdimen\to\!!stringa
+ \letvalue{\??ft#1#2}\!!stringa}}
+
+% \def\dodefineunknownbodyfont#1#2% see ***
+% {\doifdefined{\s!default\s!default#2}
+% {\donetrue
+% \getvalue{\s!default\s!default#2}{#1}{#2}}}
+%
+% but ... it needs to be as follows:
+%
+% \def\dodefineunknownbodyfont#1#2% see ***
+% {\doifdefined{\s!default\fontclass#2}% was \s!default\s!default (related to change */*)
+% {\donetrue
+% \getvalue{\s!default\fontclass#2}{#1}{#2}}}
+%
+% eh ... this does not work so we revert back to:
+
+\def\dodefineunknownbodyfont#1#2% see ***
+ {\doifdefined{\s!default\s!default#2}% somehow related to */*
+ {\donetrue
+ \getvalue{\s!default\s!default#2}{#1}{#2}}}
+
+\def\dodefineunknownsubfont#1#2%
+ {\doifundefined{\@size@\getvalue{\??ft#1#2}}
+ {\donetrue
+ \defineunknownfont{\getvalue{\??ft#1#2}}}}
+
+\def\defineunknownfont#1%
+ {\let\c!savedtext\c!text
+ \let\c!text\s!text
+ \donefalse
+ \processcommacommand[\fontrelativesizelist]{\dodefineunknownfont{#1}}%
+ \let\c!text\c!savedtext
+ \ifdone
+ \donefalse
+ \processcommacommand
+ [\fontstylelist]
+ {\dodefineunknownbodyfont{#1}}%
+ \ifdone
+ \donefalse
+ \setvalue{\@size@#1}{\docompletefontswitch[#1]}%
+ \ifdefiningunknownfont \else
+ \definingunknownfonttrue
+ \processcommacommand[\fontrelativesizelist]{\dodefineunknownsubfont{#1}}%
+ \definingunknownfontfalse
+ \fi
+ \fi
+ \ifdone
+ \showmessage\m!fonts{14}{#1}%
+ \fi
+ \fi}
+
+% \def\defineunknownfontstyles#1%
+% {\def\defineunknownbodyfont##1% see ***
+% {\executeifdefined{\s!default\s!default##1}\gobbletwoarguments{#1}{##1}}%
+% \rawprocesscommacommand[\fontstylelist]\defineunknownbodyfont}
+
+%D These macros show that quite some definitions take place.
+%D Fonts are not loaded yet! This means that at format
+%D generation time, no font files are preloaded.
+
+%D A previous implementation used:
+%D
+%D \starttyping
+%D \type {\setvalue{name}{\donottest...}}
+%D \stoptyping
+%D
+%D instead of the more memory hungry:
+%D
+%D \starttyping
+%D \unexpanded\setvalue{name}{...}
+%D \stoptyping
+%D
+%D The first alternative saves about 500 hash entries (about
+%D 2.5\% of the total number of entries used. The second
+%D alternative is currently used, because that one can more
+%D easily be made \ETEX\ aware.
+
+%D \macros
+%D {everybodyfont,Everybodyfont,everyglobalbodyfont}
+%D
+%D Every change in bodyfont size has conseqences for the baseline
+%D distance and skips between paragraphs. These are initialized
+%D in other modules. Here we only provide the hooks that
+%D garantees their handling.
+
+% \ifx\everybodyfont\undefined % permits reloading
+% \newevery \everybodyfont \EveryBodyFont
+% \fi
+
+%D At the system level one can initialize thing like:
+%D
+%D \starttyping
+%D \appendtoks \setupspacing \to \everybodyfont
+%D \stoptyping
+%D
+%D While users can add their own non standard commands like:
+%D
+%D \starttyping
+%D \EveryBodyFont{\message{changing to bodyfont \the\bodyfontsize}}
+%D \stoptyping
+%D
+%D Personnaly I never felt the need for such extensions, but
+%D at least its possible.
+
+%D \macros
+%D {globalbodyfontsize,localbodyfontsize}
+%D
+%D Next we'll do the tough job of font switching. Here we
+%D have to distinguish between the global (overal) bodyfont
+%D size and the local (sometimes in the textflow) size. We
+%D store these dimensions in two \DIMENSION\ registers.
+
+\ifdefined\globalbodyfontsize\else \newdimen\globalbodyfontsize \fi \globalbodyfontsize=12pt
+\ifdefined\localbodyfontsize \else \newdimen\localbodyfontsize \fi \localbodyfontsize =\globalbodyfontsize
+
+%D \macros
+%D {bodyfontsize}
+%D
+%D These two registers are not to be misused in calculations.
+%D For this purpose we keep a copy:
+
+\newdimen\bodyfontsize \bodyfontsize=\globalbodyfontsize
+
+%D \macros
+%D {outputresolution}
+%D
+%D Sometimes (to be honest: not in this module) we need to
+%D take the system resolution into account. Therefore we also
+%D define a macro:
+
+\def\outputresolution {600}
+
+%D \macros
+%D {bodyfontfactor,bodyfontpoints}
+%D
+%D For multiplication purposes we keep an auxiliary counter
+%D and macro (here the expansion is not explicitly needed):
+
+\newcount\bodyfontpoints \dimensiontocount\bodyfontsize\bodyfontpoints
+
+\edef\bodyfontfactor{\withoutpt\the\bodyfontsize}
+
+%D When we assign for instance 12pt to a \DIMENSION\ register
+%D the \type{\the}'d value comes out as 12.0pt, which is
+%D often not the way users specify the bodyfont size. Therefore
+%D we also store the normalized value.
+
+\chardef\fontdigits=2 % was 1
+
+% \def\normalizebodyfontsize#1\to#2%
+% {\scratchdimen#1\relax
+% \ifcase\fontdigits\advance\scratchdimen.5\points\fi
+% \@EA\@EA\@EA\donormalizedbodyfontsize\@EA\WITHOUTPT\the\scratchdimen00\to#2}
+%
+% \def\donormalizedbodyfontsize#1.#2#3#4\to#5% \points ?
+% {\edef#5%
+% {#1%
+% \ifcase\fontdigits\or
+% \ifcase#2 \else.#2\fi % and not: \ifcase#2\else ...
+% \else
+% \ifcase#2#3 \else.#2\ifcase#3 \else#3\fi\fi % not: \ifcase#2#3\else ...
+% \fi
+% \s!pt}}
+
+\def\normalizebodyfontsize#1\to#2%
+ {\scratchdimen\dimexpr#1+\ifcase\fontdigits.5\or.05\or.005\fi\points\relax
+ \@EA\@EA\@EA\donormalizedbodyfontsize\@EA\WITHOUTPT\the\scratchdimen000\to#2}
+
+\def\donormalizedbodyfontsize#1.#2#3#4#5\to#6% \points ?
+ {\edef#6% not \ifcase#2\else due to \relax adding
+ {#1%
+ \ifcase\fontdigits
+ \or \ifcase#2 \else .#2\fi % 1
+ \or \ifcase#2#3 \else .#2\ifcase#3 \else #3\fi\fi % 2
+ \else \ifcase#2#3#4 \else .#2\ifcase#4 \ifcase#3 \else#3\fi \else#3#4\fi\fi % 3
+ \fi
+ \s!pt}}
+
+%D To be internationalized:
+
+\def\korpsgrootte {\bodyfontsize}
+\def\korpspunten {\bodyfontpoints}
+
+%D some day.
+
+%D \macros
+%D {fontstyle,fontalternative,fontsize}
+%D
+%D Within a bodyfont, fonts can come in different sizes. For
+%D instance \type{\tf} is accompanied by \type{\tfa},
+%D \type{\tfb} etc. The first two characters denote the
+%D alternative, while the third character in these sequences
+%D represents the size. The actual size is saved in a macro
+%D
+%D The style, being roman (\type{\rm}), sans serif (\type{\ss})
+%D etc. is also available in a macro in \type{rm}, \type{ss}
+%D etc. form:
+
+\let\defaultfontalternative = \c!tf
+\let\defaultfontstyle = \empty
+\let\defaultfontsize = \empty
+
+\let\fontalternative = \defaultfontalternative
+\let\fontstyle = \defaultfontstyle
+\let\fontsize = \defaultfontsize
+
+%D {\em The following approach is obsolete.}
+%D
+%D All things related to fonts are grouped into files with
+%D names like \type{font-cmr}. These files are loaded by:
+
+\def\resetfontdefinitionfile[#1]%
+ {\letbeundefined{\c!file\f!fontprefix#1}}
+
+\newif\ifloadfontfileonce
+
+\def\doreadfontdefinitionfile#1#2% #1 = set/switch state
+ {\doifundefined{\c!file\f!fontprefix#2}%
+ {\ifloadfontfileonce
+ \letvalue{\c!file\f!fontprefix#2}\empty
+ \fi
+ \makeshortfilename[\truefilename{\f!fontprefix#2}]%
+ \startreadingfile
+ \readsysfile{\shortfilename.mkii}
+ {\showmessage\m!fonts2{#2}}
+ {\showmessage\m!fonts3{#2}}%
+ \stopreadingfile}}
+
+%D When \type {\loadfontfileoncetrue}, such files are
+%D only loaded once! This permits redundant loading, but at
+%D the same time forced grouping when we want continuously mix
+%D all kind of font, which of course is a kind of
+%D typographically sin. The \type{"} is made inactive if
+%D needed to prevent problems with loading files that use this
+%D character in numbers.
+
+\def\doswitchpoints[#1]%
+ {\expanded{\dodoswitchpoints{#1}}}
+
+\def\dodoswitchpoints#1%
+ {\doifundefined{\@size@#1}
+ {\defineunknownfont{#1}}%
+ %\defineunknownfontstyles{#1}%
+ \doifdefinedelse{\@size@#1}
+ {\getvalue{\@size@#1}%
+ \localbodyfontsize#1\relax
+ \normalizebodyfontsize\localbodyfontsize\to\normalizedbodyfontsize
+ \checkbodyfontenvironment[\normalizedbodyfontsize]}
+ {\showmessage\m!fonts4{#1}}}
+
+\unprotected \def\doswitchstyle[#1]%
+ {\doifdefinedelse{\@style@#1}
+ {\getvalue{\@style@#1}%
+ \edef\fontstyle{#1}%
+ \ifmmode\mr\fi % in order to be compatible with \rm in math mode
+ }% \the\everybodyfont} % cleaner, in setting size as well as style
+ {\showmessage\m!fonts5{#1}}}
+
+%D \TEX\ loads font metric files like \type{cmr10.tfm} and
+%D \type{tir.tfm} only once. In \PLAIN\ \TEX\ some font files
+%D are {\em preloaded}. This means that the font files are
+%D loaded, but not accessible yet by name. This is accomplished
+%D by saying:
+%D
+%D \starttyping
+%D \font\preloaded=cmr10 at 11pt
+%D \stoptyping
+%D
+%D and using the name \type{\preloaded} again and again, so
+%D fonts are indeed loaded, but unnamed, and therefore
+%D unaccessible. In \CONTEXT\ we don't preload fonts, not even
+%D the \PLAIN\ \TEX\ ones, although users can access them. Now
+%D why is this done?
+
+%D Defining fonts using \type{\definebodyfont} takes time, so we
+%D prefer to predefine at least the Computer Modern Roman
+%D fonts. However, loading all those fonts at definition time
+%D would take both time and space. But even worse, once fonts
+%D are loaded into memory, their encoding vector is fixed,
+%D which is a handicap when we want to distribute the compact
+%D \type{fmt} files. So what we want to do is defining fonts in
+%D a way that postpones the loading. We accomplish this by only
+%D loading the fonts when we switch to another bodyfont size.
+%D Among the other alternatives, such as loading the font at
+%D the moment of activation and redefining the activation
+%D macro afterwards, this proved to be the most efficient
+%D alternative.
+%D
+%D The next few macros take care of the one exeption on this
+%D scheme. When at format generation time we load the default
+%D font file, the one that defines the Computer Modern Fonts,
+%D we don't want the fonts metrics to end up in the format
+%D file, so we temporary prohibit loading. This means that at
+%D runtime we have to load the default bodyfont size just before
+%D we start typesetting.
+%D
+%D Therefore we have to signal the font switching macros that
+%D we are preloading fonts. As long as the next boolean is,
+%D true, no loading is done.
+
+\newif\ifloadingfonts \loadingfontstrue
+
+%D \macros
+%D {preloadfonts}
+%D
+%D Preloading is only called for once, during the startup
+%D sequence of a session. After the loading job is done, the
+%D macro relaxes itself and reset the signal.
+
+\def\preloadfonts % never called, needs a clean up
+ {\showmessage\m!fonts6{\normalizedbodyfontsize\normalspace\fontstyle}%
+ \global\loadingfontsfalse
+ \doswitchpoints[\normalizedbodyfontsize]%
+ \doswitchstyle[\fontstyle]%
+ \the\everybodyfont
+ \the\everyglobalbodyfont
+ \saveinterlinespace
+ \global\let\preloadfonts\relax}
+
+% \prependtoks \preloadfonts \to \everydump % saves .1 s on a DELL P60 - 2GHZ
+
+%D Here comes the main font switching macros. These macros
+%D handle changes in size as well as returning to the global
+%D bodyfont size.
+
+\def\dosetfont#1#2% #1 = set/switch state
+ {\doifelse{#2}\v!global
+ {\restoreglobalbodyfont}
+ {\processcommacommand[#2]{\dodosetfont{#1}}% ##1 get also passed
+ \ifloadingfonts\else
+ \doswitchpoints[\normalizedbodyfontsize]%
+ \doswitchstyle[\fontstyle]%
+ \fi}%
+ \chardef\currentxfontsize\zerocount}
+
+\def\dodosetfont#1#2% #1 = set/switch state | check fo rempty, else space
+ {\doifsomething{#2}{\dododosetfont{#1}{#2}{\showmessage\m!fonts4{#2}}}}
+
+\def\dododosetfont#1#2#3% #1 = set/switch state
+ {\doifnumberelse{#2}
+ {\dodododosetfont{#1}{#2}{#3}}
+ {\doifdefinedelse{\??ft\normalizedbodyfontsize\interfaced{#2}}
+ {\edef\fontstep{\bodyfontcsname\normalizedbodyfontsize\interfaced{#2}\endcsname}%
+ \expanded{\dodododosetfont{#1}{\fontstep}}{#3}}
+ {\doifelse{#2}\v!reset
+ {\let\fontstyle\empty % new 31/7/2006
+ \let\fontsize \empty}
+ {\doifdefinedelse{\@style@#2}
+ {\edef\fontstyle{#2}}
+ {\doreadfontdefinitionfile{#1}{#2}}}}}}
+
+\def\dodododosetfont#1#2#3% #1 = set/switch state
+ {\scratchdimen#2\relax
+ \normalizebodyfontsize\scratchdimen\to\normalizedsetfont
+ \doifundefined{\@size@\normalizedsetfont}
+ {\defineunknownfont{#2}}%
+ \doifdefinedelse{\@size@\normalizedsetfont}
+ {\localbodyfontsize\normalizedsetfont
+ \let\normalizedbodyfontsize\normalizedsetfont}
+ {#3\dosetsubstitutefont{#1}{#2}}}
+
+%D In the previous macros we use \type{\currentxfontsize} to
+%D hold the current x||size of the font. This enables us to
+%D support for instance \type{\sl} inside a \type{\tx} switch.
+
+\chardef\currentxfontsize=0
+
+%D When users specify for instance a 13 point bodyfont while no
+%D such bodyfont is defined, the system automatically tries to
+%D find a best fit, that is the nearest smaller defined
+%D bodyfontzize. A smaller one is definitely better than a larger
+%D one, simply because otherwise a lot of overfull box messages
+%D are more probable to occur. By taking a value slightly
+%D smaller than half a point, we can use the next method.
+
+\def\dosetsubstitutefont#1#2% #1 = set/switch state
+ {\scratchdimen#2\relax
+ \advance\scratchdimen .499\points
+ \dimensiontocount\scratchdimen\scratchcounter
+ \advance\scratchcounter \minusone
+ \ifnum\scratchcounter>\plusthree
+ \dododosetfont{#1}{\the\scratchcounter\s!pt}{}%
+ \fi}
+
+% The following bunch of macros deals with the (run time)
+% expansion of names onto the definitions made by \type
+% {\definebodyfont}.
+
+% \let\fontbody \empty % ... 10pt 11pt 12pt ...
+% \let\fontstyle \empty % rm ss tt mm hw cg ...
+% \let\fontalternative\empty % tf bf sl it bs bi sc ...
+% \let\fontsize \empty % xy-abcd ...
+
+\def\defaultfontbody{\normalizedbodyfontsize}
+
+\let\fontbody\defaultfontbody
+
+\let\fontclass\empty \let\globalfontclass\fontclass
+
+% \def\setcurrentfontclass#1%
+% {\edef\fontclass{#1}}
+
+\def\registerfontclass#1%
+ {\letgvalue{\@fontclass@#1}\v!yes} % global ?
+
+\def\setcurrentfontclass#1%
+ {\ifcsname\@fontclass@#1\endcsname
+ \edef\fontclass{#1}%
+ \fi}
+
+\let\defaultfontstyle \c!rm
+\let\defaultfontalternative \c!tf
+\let\defaultfontsize \empty
+
+%D \macros
+%D {bigmath,nobigmath}
+%D
+%D We can inhibit this slow||downer with:
+
+% these can best be combined
+
+% 0=never 1=everymath 2=always
+
+\chardef\synchronizebigmathflag=1
+
+\appendtoks
+ \ifcase\synchronizebigmathflag
+ % never
+ \or
+ \synchronizebigmath
+ \or
+ % always
+ \fi
+\to \everymathematics
+
+\def\nobigmath{\chardef\synchronizebigmathflag 0 }
+\def\bigmath {\chardef\synchronizebigmathflag 2 \synchronizebigmath}
+
+\let\bigmathfontsize\empty
+
+\def\synchronizebigmath
+ {\ifx\bigmathfontsize\fontsize
+ % already in sync
+ \else
+ \let\bigmathfontsize\fontsize
+ \synchronizemath \synchronizetext
+ \fi}
+
+\def\checkbigmathsynchronization
+ {\ifcase\synchronizebigmathflag
+ % never
+ \or
+ \ifmmode \synchronizebigmath \fi
+ \or
+ \synchronizebigmath
+ \fi}
+
+%D So far for synchronisation.
+
+\def\dosetcurrentfontsize#1%
+ {\edef\fontsize{#1}%
+ \checkbigmathsynchronization}
+
+\def\dosetcurrentfontalternative#1%
+ {\edef\fontalternative{#1}%
+ \ifmmode % maybe no test, or actually, an option
+ \fam\csname\fontalternative\s!fam\endcsname
+ \fi}
+
+\def\setcurrentfont#1#2#3#4%
+ {%\message{[1 #1 #2 #3 #4]}%
+ \edef\fontbody{#1}%
+ \edef\fontstyle{#2}%
+ \dosetcurrentfontalternative{#3}%
+ \dosetcurrentfontsize{#4}%
+ \synchronizefont}
+
+\def\setcurrentfontbody#1%
+ {%\message{[2 #1]}%
+ \edef\fontbody{#1}%
+ \synchronizefont}
+
+% \def\setcurrentfontstyle#1%
+% {%\message{[3 #1]}%
+% \edef\fontstyle{#1}%
+% \ifmmode\mr\fi % otherwise \rm not downward compatible
+% \synchronizefont}
+%
+% For Taco: optional fall backs:
+
+\ifx\checkfontclass\undefined \let\checkfontclass\gobbleoneargument \fi % implemented in type-ini
+
+\def\setcurrentfontstyle#1%
+ {%\message{[3 #1]}%
+ \checkfontclass{#1}%
+ \edef\fontstyle{#1}%
+ \ifmmode\mr\fi % otherwise \rm not downward compatible
+ \synchronizefont}
+
+\def\setcurrentfontbodyalternative#1#2%
+ {%\message{[4 #1 #2]}%
+ \edef\fontbody{#1}%
+ \dosetcurrentfontalternative{#2}%
+ \synchronizefont}
+
+\def\setcurrentfontalternative#1%
+ {%\message{[5 #1]}%
+ \dosetcurrentfontalternative{#1}%
+ \synchronizefont}
+
+\def\setcurrentfontsize#1%
+ {%\message{[6 #1]}%
+ \dosetcurrentfontsize{#1}%
+ \synchronizefont}
+
+\def\setcurrentfontstylealternative#1#2% \rmsl
+ {%\message{[7 #1 #2]}%
+ \edef\fontstyle{#1}%
+ \dosetcurrentfontalternative{#2}%
+ \synchronizefont}
+
+\def\setcurrentfontstylesize#1#2% \rmsla
+ {%\message{[8 #1 #2]}%
+ \edef\fontstyle{#1}%
+ \dosetcurrentfontsize{#2}%
+ \synchronizefont}
+
+\def\setcurrentfontalternativesize#1#2% \sla
+ {%\message{[9 #1 #2]}%
+ \dosetcurrentfontalternative{#1}%
+ \dosetcurrentfontsize{#2}%
+ \synchronizefont}
+
+\def\setcurrentfontstylealternativesize#1#2#3% \rmsla
+ {%\message{[10 #1 #2 #3]}%
+ \edef\fontstyle{#1}%
+ \dosetcurrentfontalternative{#2}%
+ \dosetcurrentfontsize{#3}%
+ \synchronizefont}
+
+%D In principle one can assign alternative fallback routines.
+%D Some day we will.
+
+\newtoks\fontstrategies
+\newif\iftryingfont
+
+\let\fontstrategy\relax
+
+\def\synchronizefont
+ {\tryingfonttrue
+ \ifx\fontclass\empty\else
+ \global\let\fontstrategy\dofontclassstrategy
+ \the\fontstrategies \relax % \relax still needed ?
+ \fi
+ \iftryingfont
+ \global\let\fontstrategy\dofontstrategy
+ \the\fontstrategies \relax % \relax still needed ?
+ \fi
+ \ifskipfontcharacteristics
+ \setfontcharacteristics
+ \the\everyfontswitch
+ \fi}
+
+\def\dofontstrategy#1#2#3#4#5%
+ {\ifcsname#2#3#4#5\endcsname
+ #1\csname#2#3#4#5\endcsname \tryingfontfalse
+ \fi}
+
+\def\dofontclassstrategy#1#2#3#4#5%
+ {\ifcsname\fontclass#2#3#4#5\endcsname
+ #1\csname\fontclass#2#3#4#5\endcsname \tryingfontfalse
+ \fi}
+
+\appendtoks \iftryingfont \fontstrategy \autofontsizefalse % --- --- --- --- % pt tt bf a
+ \fontbody \fontstyle \fontalternative \fontsize
+\fi \to \fontstrategies
+
+\appendtoks \iftryingfont \fontstrategy \autofontsizetrue % --- --- --- def % pt tt bf
+ \fontbody \fontstyle \fontalternative \defaultfontsize
+\fi \to \fontstrategies
+
+\appendtoks \iftryingfont \fontstrategy \autofontsizetrue % --- --- def --- % pt tt tf a
+ \fontbody \fontstyle \defaultfontalternative \fontsize
+\fi \to \fontstrategies
+
+\appendtoks \iftryingfont \fontstrategy \autofontsizetrue % --- --- def def % pt tt tf
+ \fontbody \fontstyle \defaultfontalternative \defaultfontsize
+\fi \to \fontstrategies
+
+\appendtoks \iftryingfont \fontstrategy \autofontsizefalse % --- def def def % pt rm tf
+ \fontbody \defaultfontstyle \defaultfontalternative \defaultfontsize
+\fi \to \fontstrategies
+
+\appendtoks \iftryingfont \fontstrategy \autofontsizetrue % def def def def % rm tf
+ \defaultfontbody \defaultfontstyle \defaultfontalternative \defaultfontsize
+\fi \to \fontstrategies
+
+%D Let's synchronize:
+
+\newif\ifsynchronizefonts \synchronizefontstrue
+
+\prependtoks
+ \ifsynchronizefonts
+ \synchronizemath
+ \synchronizetext
+ \synchronizefont % problem: syncs last font
+ \fi
+\to \everybodyfont
+
+%D Setting the normal sized as well as the x and xx smaller
+%D sizes is accomplished by the next set of macros. When in
+%D math mode, the commands \type{\tx} and \type{\txx} are
+%D just a switch to the script and double script styles, but
+%D in text mode the values defined by the bodyfontenvironment are
+%D used. Here we also set \type{\currentxfontsize}.
+
+\def\dosetcurrentfontxxxalternative#1#2#3#4%
+ {\chardef\currentxfontsize#2\relax
+ \ifmmode
+ #4%
+ \else\ifcsname\bodyfontvariable{\normalizedbodyfontsize#3}\endcsname
+ \setcurrentfontbodyalternative{\bodyfontcsname\normalizedbodyfontsize#3\endcsname}{#1}%
+ \fi\fi}
+
+\def\setcurrentfontxalternative#1%
+ {\dosetcurrentfontxxxalternative{#1}1\c!x\scriptstyle
+ \let\tx\txx}
+
+\def\setcurrentfontxxalternative#1%
+ {\dosetcurrentfontxxxalternative{#1}2\c!xx\scriptscriptstyle
+ \let\tx\empty
+ \let\txx\empty}
+
+\def\checknestedxfontsize % option
+ {\ifcase\currentxfontsize\else\ifx\fontsize\empty\else
+ \chardef\currentxfontsize\zeropoint
+ \let\fontsize\empty
+ \let\tx\normaltx
+ \let\txx\normaltxx
+ \fi\fi}
+
+\def\setcurrentfontxalternative#1%
+ {\checknestedxfontsize
+ \dosetcurrentfontxxxalternative{#1}1\c!x\scriptstyle
+ \let\tx\txx}
+
+\def\setcurrentfontxxalternative#1%
+ {\checknestedxfontsize
+ \dosetcurrentfontxxxalternative{#1}2\c!xx\scriptscriptstyle
+ \let\tx\empty
+ \let\txx\empty}
+
+% This alterative is not really needed, but for old time's sake
+% we keep it there. We can speed it up when needed.
+
+% \def\setcurrentfontxstylealternative #1{\csname#1\endcsname\tfx}
+% \def\setcurrentfontxxstylealternative#1{\csname#1\endcsname\tfxx}
+
+\def\setcurrentfontxstylealternative #1{\csname#1\endcsname\tx}
+\def\setcurrentfontxxstylealternative#1{\csname#1\endcsname\txx}
+
+%D These macros also show us that when we call for \type{\tx},
+%D this macro is redefined to be \type{\txx}. Therefore calls
+%D like:
+%D
+%D \startbuffer
+%D {small \tx is \tx beautiful}
+%D {small \tx is \txx beautiful}
+%D {small \txx is \tx beautiful}
+%D {small \txx is \txx beautiful}
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D result in:
+%D
+%D \startvoorbeeld
+%D \startlines
+%D \getbuffer
+%D \stoplines
+%D \stopvoorbeeld
+%D
+%D Setting the main size involves the style list and therefore
+%D takes a bit more time. Keep in mind that the fontsize is
+%D represented by a character or empty.
+
+\unexpanded\def\tx {\setcurrentfontxalternative \fontalternative}
+\unexpanded\def\txx{\setcurrentfontxxalternative\fontalternative}
+
+\let\normaltx \tx
+\let\normaltxx\txx
+
+%D \macros
+%D {definefontstyle}
+%D
+%D When setting of switching the overall style we can use the
+%D short identifier like rm and ss, but when defined we can
+%D also use more verbose names like roman or sansserif. Such
+%D names are defined by:
+%D
+%D \starttyping
+%D \definefontstyle [serif,rm] [rm]
+%D \definefontstyle [sansserif,ss] [ss]
+%D \stoptyping
+
+\def\dodefinefontstyle[#1][#2]%
+ {\rawdoifinsetelse{#2}{\fontstylelist}
+ {}%\debuggerinfo\m!fonts{unknown style #2}}
+ {\addtocommalist{#2}\fontstylelist
+ \showmessage\m!fonts8{#2\space (#1)}}%
+ % check kan hier
+ \def\docommand##1%
+ {\setvalue{\@shortstyle@##1}{#2}%
+ \setvalue{\@style@##1}{\csname#2\endcsname}}%
+ \processcommalist[#1]\docommand}
+
+\def\definefontstyle
+ {\dodoubleargument\dodefinefontstyle}
+
+\def\setfontstyle#1#2% #1:name (roman, romaan) #2:style (rm)
+ {\edef\fontstyle{#1}%
+ \setcurrentfontstyle\normalizedbodyfontsize}
+
+\chardef\defaultskewcharmi=127 % '177
+\chardef\defaultskewcharsy= 48 % '60
+
+% \def\dosetskewchar#1%
+% {\skewchar\font\ifx\@@fontskewchar\empty#1\else\@@fontskewchar\fi}
+
+\def\dosetskewchar#1#2%
+ {\ifx\@@fontskewchar\empty
+ \skewchar\textfont #1#2%
+ \skewchar\scriptfont #1#2%
+ \skewchar\scriptscriptfont#1#2%
+ \else
+ \skewchar\textfont #1\@@fontskewchar
+ \skewchar\scriptfont #1\@@fontskewchar
+ \skewchar\scriptscriptfont#1\@@fontskewchar
+ \fi}
+
+%D The previous macros show that it's is not always
+%D neccessary to define the whole bunch of fonts, take for
+%D instance the sequence:
+%D
+%D \starttyping
+%D \setupbodyfont
+%D [ams]
+%D
+%D \definebodyfont [24pt] [mm]
+%D [ma=msam10 at 24pt,
+%D mb=msbm10 at 24pt]
+%D
+%D \switchtobodyfont
+%D [24pt]
+%D
+%D This is a 24pt $\blacktriangleleft$
+%D \stoptyping
+%D
+%D Here we didn't define the 24 point bodyfont environment, so
+%D it's defined automatically. Of course one can always use the
+%D \TEX\ primitive \type{\font} to switch to whatever font
+%D needed.
+
+%D When asking for a complete font switch, for instance from 10
+%D to 12~points, the next macro does the job. First we
+%D normalize the size, next we define the current range of
+%D text, script and scriptscript sizes, then we set the text
+%D fonts and the math families and finally we activate the
+%D default typeface and also set the font specific parameters
+%D assigned to \type{\everybodyfont}
+
+\def\dosetbodyfontface#1#2%
+ {\edef#1{\bodyfontcsname\normalizedbodyfontsize#2\endcsname}}
+
+\def\docompletefontswitch[#1]%
+ {\bodyfontsize#1\relax
+ \dimensiontocount\bodyfontsize\bodyfontpoints
+ \edef\bodyfontfactor{\withoutpt\the\bodyfontsize}%
+ \normalizebodyfontsize\bodyfontsize\to\normalizedbodyfontsize
+ \dosetbodyfontface \textface \s!text
+ \dosetbodyfontface \scriptface \s!script
+ \dosetbodyfontface \scriptscriptface \s!scriptscript}
+
+\docompletefontswitch[12pt] % init
+
+%D \macros
+%D {setupbodyfont,switchtobodyfont}
+%D
+%D The next two macros are user ones. With \type{\setupbodyfont}
+%D one can set the document bodyfont size, font family, style
+%D and/or options defined in files, for example:
+%D
+%D \starttyping
+%D \setupbodyfont[cmr,ams,12pt,roman]
+%D \stoptyping
+%D
+%D This command affects the document as a whole: text, headers
+%D and footers. The second macro however affects only the text:
+%D
+%D \starttyping
+%D \switchtobodyfont[10pt]
+%D \stoptyping
+%D
+%D So we've got:
+%D
+%D \showsetup{setupbodyfont}
+%D \showsetup{switchtobodyfont}
+%D
+%D Both macros look alike. The second one also has to take
+%D all kind of keywords into account.
+
+\ifx\saveinterlinespace \undefined \let\saveinterlinespace \relax \fi
+\ifx\restoreinterlinespace\undefined \let\restoreinterlinespace\relax \fi
+
+\chardef\bodyfontsetstate=0
+
+\definecomplexorsimple\setupbodyfont
+
+\def\simplesetupbodyfont
+ {\restoreglobalbodyfont
+ \saveinterlinespace}
+
+\def\complexsetupbodyfont[#1]%
+ {\doifsomething{#1}
+ {\dosetfont1{#1}%
+ \globalbodyfontsize\localbodyfontsize
+ \normalizebodyfontsize\globalbodyfontsize\to\normalizedglobalbodyfontsize
+ \let\globalfontstyle\fontstyle
+ \ifloadingfonts\else
+ \the\everybodyfont
+ \the\everyglobalbodyfont
+ \saveinterlinespace
+ \fi}}
+
+\unexpanded\def\switchtobodyfont[#1]%
+ {\doifsomething{#1}
+ {\doifdefinedelse{\??ft\normalizedbodyfontsize\interfaced{#1}}
+ {\setbodyfontstep{#1}} % so we have a fast [small] switch
+ {\dosetfont0{#1}}%
+ \the\everybodyfont}} % indeed needed in case nothing is executed
+
+%D The following alternative is meant for math||to||text
+%D switching and will be optimized.
+
+\def\fastswitchtobodyfont#1%
+ {\ifcsname\??ft\normalizedbodyfontsize#1\endcsname
+ \edef\futurebodyfontsize
+ {\csname\??ft\normalizedbodyfontsize#1\endcsname}%
+ \ifcsname\@size@\futurebodyfontsize\endcsname
+ \csname\@size@\futurebodyfontsize\endcsname
+ \localbodyfontsize\futurebodyfontsize\relax
+ \fi
+ \fi
+ \csname\@style@\fontstyle\endcsname
+ \the\everybodyfont}
+
+%D Because the last macro can appear in arguments or be assigned
+%D to parameters, we protect this one for unwanted expansion.
+
+\def\dodosetmathfont#1%
+ {\setcurrentfontalternative{#1}%
+ % \doifdefinedelse{#1\s!fam} % adapted
+ % {\edef\mffam{\getvalue{#1\s!fam}}}
+ % {\edef\mffam{\getvalue{\c!nn\s!fam}}}%
+ \textfont \mrfam\textfont \mffam
+ \scriptfont \mrfam\scriptfont \mffam
+ \scriptscriptfont\mrfam\scriptscriptfont\mffam}
+
+\def\domffam#1%
+ {\csname\ifcsname#1\s!fam\endcsname#1\else\c!nn\fi\s!fam\endcsname}
+
+\def\mffam
+ {\domffam\fontalternative}
+
+\def\dosetmathfont
+ {\def\rm{\fam\mrfam}\dodosetmathfont}
+
+\def\enableencodinginmath
+ {\appendtoks
+ \everyhbox{\mr\everyhbox\emptytoks}%
+ \everyvbox{\mr\everyvbox\emptytoks}%
+ \to \everymathematics} % was \everymath
+
+% \enableencodinginmath % too untested to enable by default
+
+%D \starttyping
+%D $\cases{& \ccaron}$ $x=\hbox{\ccaron $x=\hbox{\ccaron}$}$
+%D \stoptyping
+
+%D The font specific features are bound to the filename.
\def\updatefontparameters
{\edef\@@fontencoding{\truefontdata\fontfile \s!encoding}%
@@ -52,6 +3154,1414 @@
\the\everyfont
\synchronizepatternswithfont}
-\ifx\synchronizepatternswithfont\undefined \def\synchronizepatternswithfont{\synchronizepatterns} \fi
+\ifx\synchronizepatternswithfont\undefined
+ \def\synchronizepatternswithfont{\synchronizepatterns}
+\fi
+
+%D Experimental:
+
+\def\definefontfeature
+ {\dotripleargument\dodefinefontfeature}
+
+\def\dodefinefontfeature[#1][#2][#3]%
+ {\doifassignmentelse{#2}
+ {\setevalue{\??fa#1}{#2}}
+ {\let\!!stringa\empty
+ \def\mkdodefinefontfeature##1{\edef\!!stringa{\ifx\!!stringa\empty\else\!!stringa,\fi##1}}%
+ \processcommalist[#2]\mkdodefinefontfeature
+ \setevalue{\??fa#1}{\ifx\!!stringa\empty\else\!!stringa,\fi#3}}}
+
+\definefontfeature
+ [default]
+ [liga=yes,kern=yes,tlig=yes,trep=yes] % texligatures=yes,texquotes=yes
+
+\definefontfeature
+ [smallcaps]
+ [liga=yes,kern=yes,tlig=yes,trep=yes,smcp=yes] % texligatures=yes,texquotes=yes
+
+\definefontfeature
+ [oldstyle]
+ [liga=yes,kern=yes,tlig=yes,trep=yes,onum=yes] % texligatures=yes,texquotes=yes
+
+\definefontfeature % no calt
+ [arabic]
+ [mode=node,language=dflt,script=arab,
+ init=yes,medi=yes,fina=yes,isol=yes,
+ liga=yes,dlig=yes,rlig=yes,clig=yes,
+ mark=yes,mkmk=yes,kern=yes,curs=yes]
+
+%D The next auxilliary macro is an alternative to \type
+%D {\fontname}.
+
+% \def\purefontname#1{\expandafter\splitoffpurefontname\fontname#1 \\}
+%
+% extra level is needed:
+
+\def\purefontname#1{\@EA\splitoffpurefontname\@EA{\@EA{\@EA\unstringed\fontname#1}} \\}
+
+\def\splitoffpurefontname#1 #2\\{#1}
+
+%D \macros
+%D {switchstyleonly}
+%D
+%D For switching a style but keeping the alternative, there
+%D is:
+%D
+%D \starttyping
+%D {\bf text \switchstyleonly\ss text}
+%D {\bf text \switchstyleonly[ss]text}
+%D {\sl text \switchstyleonly[sansserif]text}
+%D \stoptyping
+
+\definecomplexorsimple\switchstyleonly
+
+\def\simpleswitchstyleonly#1% stupid version
+ {\complexswitchstyleonly[\strippedcsname#1]}
+
+\def\complexswitchstyleonly[#1]% todo : check
+ {\setcurrentfontstyle{\getvalue{\@shortstyle@#1}}%
+ \the\everybodyfont} % needed ?
+
+%D \macros
+%D {os,frak, goth, cal}
+%D
+%D Old style numerals can be typeset with \type{\os} and look
+%D like {\os 1234567890} instead of the more common looking
+%D 1234567890.
+%D
+%D On behalf of {\frac Tobias Burnus}, we define some more of
+%D these. Later we will link these names to real file names.
+
+% older
+%
+% \definefont [os] [OldStyle sa *]
+% \definefont [frak] [Fraktur sa *]
+% \definefont [goth] [Gothic sa *]
+% \definefont [cal] [Calligraphic sa *]
+% \definefont [bbd] [Blackboard sa *]
+%
+% newer
+
+\def\os {\mathortext{\fam\purefamily {oldstyle}}{\symbolicfont {OldStyle}}}
+\def\frak{\mathortext{\fam\purefamily {fraktur}}{\symbolicfont {Fraktur}}}
+\def\goth{\mathortext{\fam\purefamily {gothic}}{\symbolicfont {Gothic}}}
+\def\cal {\mathortext{\fam\purefamily{calligraphic}}{\symbolicfont{Calligraphic}}}
+\def\bbd {\mathortext{\fam\purefamily {blackboard}}{\symbolicfont {Blackboard}}}
+
+\definefontsynonym [OldStyle] [Serif]
+\definefontsynonym [Fraktur] [Serif]
+\definefontsynonym [Gothic] [Serif]
+\definefontsynonym [Calligraphic] [Serif]
+\definefontsynonym [Blackboard] [Serif]
+
+%D \macros
+%D {fraktur, gothic, calligraphic, blackboard}
+%D
+%D These macros assume that we use text fonts, and not math
+%D families.
+
+\ifx\mathtext\undefined \let\mathtext\hbox \fi
+
+\def\fraktur #1{\mathortext\domathtext\donothing{\frak#1}}
+\def\gothic #1{\mathortext\domathtext\donothing{\goth#1}}
+\def\calligraphic#1{\mathortext\domathtext\donothing{\cal #1}}
+\def\blackboard #1{\mathortext\domathtext\donothing{\bbd#1}}
+
+%D Torture test:
+%D
+%D \starttyping
+%D \usetypescript[modern] [texnansi]
+%D \usetypescript[lucida] [texnansi]
+%D \usetypescript[palatino][texnansi]
+%D \usetypescript[times] [texnansi]
+%D \usetypescript[fourier] [ec]
+%D
+%D \startbuffer
+%D \section{\blackboard{T\high{\blackboard{T}}} \blackboard{E}\high{\blackboard{E}} \blackboard{X}\high{\blackboard{X}}}
+%D
+%D {\fontclass: 123 \os123 \cal TEX $\os 123$}
+%D
+%D $\blackboard{T}^{\blackboard{T}} \blackboard{E}^{\blackboard{E}} \blackboard{X}^{\blackboard{X}}$
+%D \blackboard{T}\high{\blackboard{T}} \blackboard{E}\high{\blackboard{E}} \blackboard{X}\high{\blackboard{X}}
+%D \stopbuffer
+%D
+%D {\setupbodyfont[lucida] \getbuffer}
+%D {\setupbodyfont[modern] \getbuffer}
+%D {\setupbodyfont[palatino] \getbuffer}
+%D {\setupbodyfont[times] \getbuffer}
+%D {\setupbodyfont[fourier] \getbuffer}
+%D \stoptyping
+
+%D \macros
+%D {definebodyfontswitch}
+%D
+%D \PLAIN\ \TEX\ defines some macro's like \type{\tenpoint}
+%D to switch to a specific bodyfontsize. Just for the sake of
+%D compatibility we can define them like:
+%D
+%D \starttyping
+%D \definebodyfontswitch [twelvepoint] [12pt]
+%D \stoptyping
+%D
+%D We don't support language specific synonyms here, mainly
+%D because \PLAIN\ \TEX\ is english anyway.
+
+\def\dodefinebodyfontswitch[#1][#2]%
+ {\def\docommand##1{\setvalue{##1}{\switchtobodyfont[#2]}}%
+ \processcommalist[#1]\docommand}
+
+\def\definebodyfontswitch
+ {\dodoubleargument\dodefinebodyfontswitch}
+
+%D \macros
+%D {setsmallbodyfont,setmainbodyfont,setbigbodyfont}
+%D
+%D When we're typesetting at for instance 10pt, we can call for
+%D the \type{small} as well as the \type{big} alternative,
+%D related to this main size, using \type{\switchtobodyfont[small]}.
+%D The three alternatives can be activated by the next three
+%D system calls and are defined by the bodyfontenvironment.
+
+\let\fontstep\empty % we can use \fontstep for tracing purposes
+
+\def\setbodyfontstep#1%
+ {\edef\fontstep{\bodyfontcsname\normalizedbodyfontsize\interfaced{#1}\endcsname}%
+ \doswitchpoints[\fontstep]%
+ \doswitchstyle[\fontstyle]}
+
+\unexpanded\def\setsmallbodyfont{\setbodyfontstep\v!small\the\everybodyfont}
+\unexpanded\def\setbigbodyfont {\setbodyfontstep\v!big \the\everybodyfont}
+
+\unexpanded\def\setmainbodyfont
+ {\doswitchpoints[\normalizedbodyfontsize]%
+ \doswitchstyle[\fontstyle]%
+ \the\everybodyfont
+ \the\everyglobalbodyfont
+ \saveinterlinespace}
+
+%D \macros
+%D {restoreglobalbodyfont}
+%D
+%D Users can set whatever font available while typesetting text.
+%D Pagenumbers, footers, headers etc. however must be typeset
+%D in the main bodyfont and style of the document. Returning to
+%D the global state can be done with the next macro:
+
+\let\mainfontclass\empty
+
+\def\fullrestoreglobalbodyfont
+ {\let\fontsize\defaultfontsize
+ \let\fontbody\defaultfontbody
+ \chardef\currentxfontsize\zerocount
+ \let\fontclass\globalfontclass
+ \doswitchpoints[\normalizedglobalbodyfontsize]%
+ \doswitchstyle[\globalfontstyle]%
+ \redoconvertfont % just in case a pagebreak occurs
+ \tf
+ \the\everybodyfont
+ \the\everyglobalbodyfont
+ \saveinterlinespace}
+
+\def\partialrestoreglobalbodyfont
+ {\let\fontsize\defaultfontsize
+ \let\fontbody\defaultfontbody
+ \chardef\currentxfontsize\zerocount
+ \redoconvertfont
+ \tf
+ \saveinterlinespace}
+
+\def\restoreglobalbodyfont % ook style etc
+ {\ifx\fontclass\globalfontclass
+ \ifx\fontstyle\globalfontstyle
+ \ifx\normalizedbodyfontsize\normalizedglobalbodyfontsize
+ \partialrestoreglobalbodyfont
+ \else
+ \fullrestoreglobalbodyfont
+ \fi
+ \else
+ \fullrestoreglobalbodyfont
+ \fi
+ \else
+ \fullrestoreglobalbodyfont
+ \fi}
+
+% in case of troubles: \let\restorebodyfont\fullrestoreglobalbodyfont
+
+%D This macro has to be called when entering the pagebody
+%D handling routine as well as the footnote insert routine.
+%D Users can access this feature |<|for instance when one wants
+%D to typeset tables and alike in the main bodyfont and style
+%D while the running text is temporary set to a smaller one|>|
+%D by saying \type{\switchtobodyfont[global]}.
+
+%D \macros
+%D {rasterfont}
+%D
+%D There are (at the moment) two situations in which we want to
+%D have fast access to a particular font. When we are using
+%D \TEX\ to typeset rasters, we use small {\rasterfont.}'s
+%D (a rather small period indeed), the same as \PICTEX\ uses
+%D for drawing purposes.
+
+\definefont [rasterfont] [Serif at 5pt]
+
+%D \macros
+%D {infofont}
+%D
+%D The second situation occurs when we enable the info mode,
+%D and put all kind of status information in the margin. We
+%D don't want huge switches to the main bodyfont and style, so
+%D here too we use a direct method.
+
+% old mechanism
+%
+% \def\infofont{\getvalue{\!!sixpoint\c!tt\c!tf}\the\everybodyfont}
+
+\let\infofont\relax % satisfy dep checker
+
+\definefont [infofont] [Mono at 6pt] % todo \the\everybodyfont
+
+%D \macros
+%D {definealternativestyle}
+%D
+%D In the main modules we are going to implement lots of
+%D parameterized commands and one of these parameters will
+%D concern the font to use. To suit consistent use of fonts we
+%D here implement a mechanism for defining the keywords that
+%D present a particular style or alternative.
+%D
+%D \starttyping
+%D \definealternativestyle [keywords] [\style] [\nostyle]
+%D \stoptyping
+%D
+%D The first command is used in the normal textflow, while the
+%D second command takes care of headings and alike. Consider
+%D the next two definitions:
+%D
+%D \starttyping
+%D \definealternativestyle [bold] [\bf] []
+%D \definealternativestyle [cap] [\cap] [\cap]
+%D \stoptyping
+%D
+%D A change \type{\bf} in a heading which is to be set in
+%D \type{\tfd} does not look that well, so therefore we leave
+%D the second argument of \type{\definealternativestyle} empty.
+%D When we capatalize characters using the pseudo small cap
+%D command \type{\cap}, we want this to take effect in both
+%D text and headings, which is accomplished by assigning both
+%D arguments.
+
+\def\dodefinealternativestyle[#1][#2][#3]%
+ {\def\docommand##1%
+ {\doifundefined{##1}{\setvalue{##1}{\groupedcommand{#2}{}}}%
+ \setvalue{\@letter@ ##1}{#2}%
+ \setvalue{\@noletter@##1}{#3}}%
+ \processcommalist[#1]\docommand}
+
+\def\definealternativestyle
+ {\dotripleempty\dodefinealternativestyle}
+
+\def\definestyle{\definealternativestyle}
+
+%D Maybe too geneneric, but probably ok is the following. (Maybe one
+%D day we will use a dedicated grouped command for styles.)
+
+\appendtoks
+ \let\groupedcommand\thirdofthreearguments
+\to \simplifiedcommands
+
+%D This command also defines the keyword as command. This means
+%D that the example definition of \type{bold} we gave before,
+%D results in a command \type{\bold} which can be used as:
+%D
+%D \startbuffer
+%D He's a \bold{bold} man with a {\bold head}.
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D or
+%D
+%D \startvoorbeeld
+%D \definealternativestyle[bold][\bf][]\getbuffer
+%D \stopvoorbeeld
+%D
+%D Such definitions are of course unwanted for \type{\cap}
+%D because this would result in an endless recursive call.
+%D Therefore we check on the existance of both the command and
+%D the substitution. The latter is needed because for instance
+%D \type{\type} is an entirely diferent command. That command
+%D handles verbatim, while the style command would just switch
+%D to teletype font. This is just an example of a tricky
+%D naming coincidence.
+
+%D \macros
+%D {doconvertfont,noconvertfont,
+%D dontconvertfont,redoconvertfont}
+%D
+%D After having defined such keywords, we can call for them by
+%D using
+%D
+%D \starttyping
+%D \doconvertfont{keyword}{text}
+%D \stoptyping
+%D
+%D We deliberately pass an argument. This enables us to
+%D assign converters that handle one agrument, like
+%D \type{\cap}.
+%D
+%D By default the first specification is used to set the style,
+%D exept when we say \type{\dontconvertfont}, after which the
+%D second specification is used. We can also directly call for
+%D \type{\noconvertfont}. In nested calls, we can restore the
+%D conversion by saying \type{\redoconvertfont}.
+
+\def\@@dodoconvertfont#1{\csname\@letter@ #1\endcsname}
+\def\@@donoconvertfont#1{\csname\@noletter@#1\endcsname}
+
+\unexpanded\def\dodoconvertfont#1% #2% we need the protection
+ {\doifdefinedelse{\@letter@#1} % in testing
+ {\doifelsenothing{#1}\gobbleoneargument\@@dodoconvertfont}
+ {\doifdefinedelse{#1}\getvalue \firstofoneargument}%
+ {#1}} % {#2}}
+
+\let\doconvertfont\dodoconvertfont
+
+\def\noconvertfont#1% #2%
+ {\doifdefinedelse{\@noletter@#1}
+ {\doifelsenothing{#1}\gobbleoneargument\@@donoconvertfont}\gobbleoneargument
+ {#1}} % {#2}}
+
+%D Extras:
+
+\unexpanded\def\dontconvertfont
+ {\let\doconvertfont\noconvertfont}
+
+\unexpanded\def\redoconvertfont
+ {\let\doconvertfont\dodoconvertfont}
+
+%D These commands are not grouped! Grouping is most probably
+%D done by the calling macro's and would lead to unnecessary
+%D overhead.
+
+%D \macros
+%D {em,emphasistypeface,emphasisboldface}
+%D
+%D The next macro started as a copy of Donald Arseneau's
+%D \type{\em} (\TUGNEWS\ Vol.~3, no.~1, 1994). His
+%D implementation was a bit more sophisticated version of the
+%D standard \LATEX\ one. We furter enhanced the macro, so now
+%D it also adapts itself to boldface mode. Because we favor
+%D {\sl slanted} type over {\it italic}, we made the emphasis
+%D adaptable, for instance:
+%D
+%D \starttyping
+%D \def\emphasistypeface {\it}
+%D \def\emphasisboldface {\bi}
+%D \stoptyping
+%D
+%D But we prefer:
+
+\def\emphasistypeface {\sl}
+\def\emphasisboldface {\bs}
+
+%D or even better:
+
+% \def\doemphasistypeface#1#2%
+% {\doifelsevalue{\??ft\fontclass\normalizedbodyfontsize\c!em}\v!slanted#1%
+% {\doifelsevalue{\??ft\fontclass\normalizedbodyfontsize\c!em}\v!italic #2%
+% {\doifelsevalue{\??ft \normalizedbodyfontsize\c!em}\v!slanted#1%
+% {\doifvalue {\??ft \normalizedbodyfontsize\c!em}\v!italic #2}}}}
+
+\def\doemphasistypeface#1#2%
+ {\doifelsevalue{\??ft\fontclass\normalizedbodyfontsize\c!em}\v!slanted
+ {#1}%
+ {\doifelsevalue{\??ft\fontclass\normalizedbodyfontsize\c!em}\v!italic
+ {#2}%
+ {\doifelsevaluenothing{\??ft\fontclass\normalizedbodyfontsize\c!em}
+ {\doifelsevalue{\??ft\normalizedbodyfontsize\c!em}\v!slanted
+ {#1}%
+ {\doifelsevalue{\??ft\normalizedbodyfontsize\c!em}\v!italic
+ {#2}%
+ {\getvalue{\??ft\normalizedbodyfontsize\c!em}}}}
+ {\getvalue{\??ft\fontclass\normalizedbodyfontsize\c!em}}}}}
+
+\def\emphasistypeface{\doemphasistypeface\sl\it}
+\def\emphasisboldface{\doemphasistypeface\bs\bi}
+
+%D To be set with the default body font environment: \type
+%D {em} being \type {slanted} or \type {italic}.
+
+\newconditional\emneeded
+
+\newtoks\everyemphasized
+
+\unexpanded\def\em
+ {\relax
+ \ifdim\slantperpoint>\zeropoint
+ \settrue\emneeded
+ \else
+ \setfalse\emneeded
+ \fi
+ \setemphasisboldface % new
+ \ifx\fontalternative\c!it % \ifnum\fam=\itfam
+ \def\emphasistypeface{\it}\tf
+ \else\ifx\fontalternative\c!sl % \ifnum\fam=\slfam
+ \def\emphasistypeface{\sl}\tf
+ \else\ifx\fontalternative\c!bf % \ifnum\fam=\bffam
+ \emphasisboldface
+ \else\ifx\fontalternative\c!bs % \ifnum\fam=\bsfam
+ \def\emphasisboldface{\bs}\bf
+ \else\ifx\fontalternative\c!bi % \ifnum\fam=\bifam
+ \def\emphasisboldface{\bi}\bf
+ \else
+ \emphasistypeface
+ \fi\fi\fi\fi\fi
+ \the\everyemphasized
+ \ifconditional\emneeded\relax
+ \else
+ \expandafter\aftergroup
+ \fi
+ \emphasiscorrection}
+
+% compare ...
+%
+% \appendtoks \red \to \everyemphasized
+% \setupbodyfontenvironment [default] [em={\italic\color[red]}]
+
+%D The next feature was not present in previous versions. It
+%D takes care of \type {\em \bf ...} sitiations.
+
+\def\setemphasisboldface
+ {\let\normalbf\bf
+ \let\setemphasisboldface\relax
+ \unexpanded\def\bf
+ {%\relax
+ \let\bf\relax % new
+ \ifx\fontalternative\c!it % \ifnum\fam=\itfam
+ \bi
+ \else\ifx\fontalternative\c!sl % \ifnum\fam=\slfam
+ \bs
+ \else
+ \normalbf
+ \fi\fi
+ \let\bf\normalbf}}
+
+%D Donald's (adapted) macros take the next character into
+%D account when placing italic correction. As a bonus we also
+%D look for something that looks like a dash, in which case we
+%D don't correct.
+
+\let\italiccorrection=\/
+
+\def\emphasiscorrection
+ {\ifhmode
+ \expandafter\emphasislook
+ \fi}
+
+\def\emphasislook
+ {\begingroup
+ \beginrobusttest
+ \futurelet\next\emphasistest}
+
+\def\emphasistest
+ {\normalifcat\noexpand\next,%
+ \endrobusttest\expandafter\doemphasiscorrection
+ \normalelse
+ \endrobusttest\expandafter\dododoemphasiscorrection
+ \normalfi}
+
+\def\doemphasiscorrection
+ {\futurelet\next\dodoemphasiscorrection}
+
+\def\dodoemphasiscorrection
+ {\setbox\scratchbox\hbox{\next}%
+ \ifdim\ht\scratchbox=\zeropoint % probably a space
+ \expandafter\dododoemphasiscorrection
+ \else\ifdim\ht\scratchbox<.3ex
+ \expandafter\expandafter\expandafter\endgroup
+ \else
+ \expandafter\expandafter\expandafter\dododoemphasiscorrection
+ \fi\fi}
+
+\def\dododoemphasiscorrection
+ {\scratchskip\lastskip
+ \ifdim\scratchskip=\zeropoint\relax % == \ifzeropt\scratchskip
+ \italiccorrection\relax
+ \else
+ \unskip\italiccorrection\hskip\scratchskip
+ \fi
+ \endgroup}
+
+%D We end with some examples which show the behavior when
+%D some punctuation is met. We also show how the mechanism
+%D adapts itself to bold, italic and slanted typing.
+%D
+%D \startbuffer
+%D test {test}test \par
+%D test {\sl test}test \par
+%D test {\em test}test \par
+%D test {\em test}--test \par
+%D
+%D test {test}, test \par
+%D test {\em test}, test \par
+%D
+%D test {\em test {\em test {\em test} test} test} test \par
+%D test {\bf test {\em test {\em test} test} test} test \par
+%D test {\sl test {\em test {\em test} test} test} test \par
+%D test {\it test {\em test {\em test} test} test} test \par
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D We get:
+%D
+%D \startvoorbeeld
+%D \startpacked
+%D \getbuffer
+%D \stoppacked
+%D \stopvoorbeeld
+
+%D \macros
+%D {emphbf,emphit,emphsl,emphtf}
+%D
+%D The next emphasis alternatives are for \THANH. They adapt
+%D their style as good as possible.
+
+\def\emphbf{\groupedcommand{\bf\def\emphit{\bi}\def\emphsl{\bs}}{}}
+\def\emphit{\groupedcommand{\it\def\emphbf{\bi}\def\emphsl{\sl}}{}}
+\def\emphsl{\groupedcommand{\sl\def\emphbf{\bs}\def\emphit{\it}}{}}
+\def\emphtf{\groupedcommand{\tf\def\emphbf{\bf}\def\emphit{\it}\def\emphsl{\sl}}{}}
+
+%D \startbuffer
+%D TEXT {\emphbf text \emphit text \emphtf text \emphsl text} TEXT
+%D TEXT \emphbf{text \emphit{text} \emphtf{text} \emphsl{text}} TEXT
+%D \stopbuffer
+%D
+%D \typebuffer
+%D \startlines
+%D \getbuffer
+%D \stoplines
+
+%D \macros
+%D {setfont}
+%D
+%D Every now and then we want to define a font directly, for
+%D instance when we typeset title pages. The next macro saves
+%D some typing:
+
+\def\setfont% geen \dosetfont mogelijk
+ {\def\next{\nextfont\setupinterlinespace}%
+ \afterassignment\next\font\nextfont=}
+
+%D One can call this macro as:
+%D
+%D \starttyping
+%D \setfont cmr10 at 60pt
+%D \stoptyping
+%D
+%D After which the font is active and the baselines and
+%D struts are set.
+
+%D \macros
+%D {showbodyfont}
+%D
+%D One can call for a rather simple overview of a bodyfont and the
+%D relations between its alternative fonts.
+%D
+%D \showsetup{showbodyfont}
+%D
+%D The current bodyfont (here we omitted the argument) looks like:
+%D
+%D \showbodyfont
+%D
+%D The implementation is rather straightforward in using
+%D \type{\halign}.
+
+\fetchruntimecommand \showbodyfont {\f!fontprefix\s!run.mkii}
+
+%D \macros
+%D {showfontstrip, testminimalbaseline, showminimalbaseline}
+%D
+%D The next command can come in handy when combining
+%D different fonts into a collection (typeface) and
+%D determining optimal baseline distances.
+%D
+%D \showfontstrip \blank \showminimalbaseline
+
+\fetchruntimecommand \showfontstrip {\f!fontprefix\s!run.mkii}
+\fetchruntimecommand \testminimalbaseline {\f!fontprefix\s!run.mkii}
+\fetchruntimecommand \showminimalbaseline {\f!fontprefix\s!run.mkii}
+
+%D \macros
+%D {showkerning}
+%D
+%D A goody is:
+%D
+%D \showkerning{Can you guess what kerning is?}
+
+\fetchruntimecommand \showkerning {\f!fontprefix\s!run.mkii}
+
+%D \macros
+%D {showbodyfontenvironment}
+%D
+%D The current bodyfontenvironment is:
+%D
+%D \showbodyfontenvironment
+%D
+%D This overview is generated using:
+%D
+%D \showsetup{showbodyfontenvironment}
+
+\fetchruntimecommand \showbodyfontenvironment {\f!fontprefix\s!run.mkii}
+
+%D \macros
+%D {showfont,showfontstyle,showligatures}
+%D
+%D The following command generates a fontmap:
+%D
+%D \startbuffer
+%D \showfont[SansBold at 12pt]
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D Below the table the name, encoding, mapping and handling are
+%D shown. Special characters like the \type {\skewchar} and
+%D \type {\hyphenchar} als marked.
+%D
+%D \getbuffer
+
+% to be internationalized
+
+\fetchruntimecommand \showfont {\f!fontprefix\s!run.mkii}
+\fetchruntimecommand \showfontstyle {\f!fontprefix\s!run.mkii}
+\fetchruntimecommand \showligature {\f!fontprefix\s!run.mkii}
+\fetchruntimecommand \showligatures {\f!fontprefix\s!run.mkii}
+\fetchruntimecommand \showcharratio {\f!fontprefix\s!run.mkii}
+
+%D \macros
+%D {getglyph, symbolicfont}
+%D
+%D Individual glyphs can be accessed by using
+%D
+%D \starttyping
+%D \getglyph{fontname}{character}
+%D \stoptyping
+%D
+%D This macro is used in for instance the symbol modules and
+%D as one can see, it does obey the small and even smaller
+%D sizes. The \type {\symbolicfont} macro can be used to
+%D switch to a font named \type {fontname} (see \type
+%D {cont-log} and \type {symb-eur} for examples of symbolic
+%D definitions.
+
+\def\fontstringA
+ {\ifx\fontstyle\c!rm \s!Serif \else
+ \ifx\fontstyle\c!ss \s!Sans \else
+ \ifx\fontstyle\c!tt \s!Mono \else
+ \s!Serif \fi\fi\fi}
+
+\def\fontstringB
+ {\ifx\fontstyle\c!rm \s!Regular \else
+ \ifx\fontstyle\c!ss \s!Support \else
+ \ifx\fontstyle\c!tt \s!Type \else
+ \s!Serif \fi\fi\fi}
+
+\def\fontstringC
+ {\ifx\fontalternative\c!bf \s!Bold \else
+ \ifx\fontalternative\c!sl \s!Slanted \else
+ \ifx\fontalternative\c!it \s!Italic \else
+ \ifx\fontalternative\c!bs \s!BoldSlanted \else
+ \ifx\fontalternative\c!bi \s!BoldItalic \fi\fi\fi\fi\fi}
+
+\def\fontstringD % default fontstyle
+ {\expandafter\ifx\csname\??tf\fontclass\s!default\endcsname\c!rm \s!Serif \else
+ \expandafter\ifx\csname\??tf\fontclass\s!default\endcsname\c!ss \s!Sans \else
+ \expandafter\ifx\csname\??tf\fontclass\s!default\endcsname\c!tt \s!Mono \else
+ \s!Serif \fi\fi\fi}
+
+% potential generalization:
+
+% \letvalue{\??ff:t:\c!rm}\s!Serif
+% \letvalue{\??ff:t:\c!ss}\s!Sans
+% \letvalue{\??ff:t:\c!tt}\s!Mono
+%
+% \letvalue{\??ff:s:\c!bf}\s!Bold
+% \letvalue{\??ff:s:\c!sl}\s!Slanted
+% \letvalue{\??ff:s:\c!it}\s!Italic
+% \letvalue{\??ff:s:\c!bs}\s!BoldSlanted
+% \letvalue{\??ff:s:\c!bi}\s!BoldItalic
+%
+% \letvalue{\??ff:a:\c!rm}\s!Regular
+% \letvalue{\??ff:a:\c!ss}\s!Support
+% \letvalue{\??ff:a:\c!tt}\s!Type
+%
+% \def\fontstringA{\executeifdefined{\??ff:t:\fontstyle}\s!Serif}
+% \def\fontstringB{\executeifdefined{\??ff:a:\fontstyle}\s!Serif}
+% \def\fontstringC{\executeifdefined{\??ff:s:\fontstyle}\empty}
+% \def\fontstringD{\executeifdefined{\??ff:t:\csname\??tf\fontclass\s!default\endcsname}\s!Serif}
+
+\def\glyphfontfile#1%
+ {#1%
+ \ifcsname\??ff#1\fontstringA\fontstringC\endcsname
+ \fontstringA\fontstringC
+ \else\ifcsname\??ff#1\fontstringB\fontstringC\endcsname
+ \fontstringB\fontstringC
+ \else\ifcsname\??ff#1\fontstringA\endcsname
+ \fontstringA
+ \else\ifcsname\??ff#1\fontstringB\endcsname
+ \fontstringB
+ \else\ifcsname\??ff#1\fontstringC\endcsname
+ \fontstringC
+ \fi\fi\fi\fi\fi}
+
+%D The next macro can be used to make decisions based on the shape:
+
+\def\doifitalicelse#1#2%
+ {\ifx\fontalternative\c!sl#1\else
+ \ifx\fontalternative\c!it#1\else
+ \ifx\fontalternative\c!bs#1\else
+ \ifx\fontalternative\c!bi#1\else#2\fi\fi\fi\fi}
+
+%D For an example of usage of the following command,
+%D see \type {cont-log.tex}.
+%D
+%D \starttyping
+%D \def\symbolicfont#1%
+%D {\definedfont[\glyphfontfile{#1} sa *]}
+%D \stoptyping
+%D
+%D Since we know what scaling it to be applied, we can
+%D implement a much faster alternative:
+
+\let\thedefinedfont\relax
+
+% \def\symbolicscaledfont#1#2%
+% {\scaledfont\fontbody
+% \scaledfont#1\scaledfont
+% \font\thedefinedfont\truefontname{\glyphfontfile{#2}} at
+% \currentfontbodyscale\scaledfont
+% \thedefinedfont}
+%
+% \unexpanded\def\symbolicfont
+% {\symbolicscaledfont\plusone}
+%
+% even more control (needed for mthsqrt etc)
+
+\def\symbolicsizedfont#1#2#3%
+ {\scaledfont#1%
+ \scaledfont#2\scaledfont
+ \font\thedefinedfont\truefontname{\glyphfontfile{#3}} at
+ \currentfontbodyscale\scaledfont
+ \thedefinedfont}
+
+\def\symbolicscaledfont
+ {\symbolicsizedfont\fontbody}
+
+\unexpanded\def\symbolicfont
+ {\symbolicsizedfont\fontbody\plusone}
+
+\unexpanded\def\getglyph#1#2% slow, faster, much faster
+ %{{\definefont[\s!dummy][\glyphfontfile{#1} sa \currentfontscale]\dummy#2}}
+ %{{\definefont[\s!dummy][\glyphfontfile{#1} sa *]\dummy#2}}
+ %{{\symbolicfont{#1}#2}}
+ {{\symbolicfont{#1}\doifnumberelse{#2}\char\donothing#2}}
+
+\unexpanded\def\getscaledglyph#1#2#3%
+ {{\symbolicscaledfont{#1}{#2}\doifnumberelse{#3}\char\donothing#3}}
+
+\unexpanded\def\getrawglyph#1#2% for simple symbols
+ {{\scaledfont\fontbody
+ \font\thedefinedfont=#1 at \currentfontbodyscale\scaledfont
+ \thedefinedfont\doifnumberelse{#2}\char\donothing#2}}
+
+%D The last implementation of \type {\getglyph} permits
+%D definitions like:
+%D
+%D \starttyping
+%D \definefontsynonym [EuroSans] [eurose]
+%D \definefontsynonym [EuroSansBold] [euroseb]
+%D \definefontsynonym [EuroSansItalic] [eurosei]
+%D \definefontsynonym [EuroSansSlanted] [eurosei]
+%D \definefontsynonym [EuroSansBoldItalic] [eurosebi]
+%D \definefontsynonym [EuroSansBoldSlanted] [eurosebi]
+%D
+%D \definesymbol [euro] [\getglyph{Euro}{\char160}]
+%D
+%D \def\euro{\symbol[euro]}
+%D \stoptyping
+%D
+%D These definitions guarantee that the next calls work okay:
+%D
+%D \starttyping
+%D \ss \tf\euro \bf\euro \sla\euro \itd\euro \bs\euro \bic\euro
+%D \stoptyping
+%D
+%D The shape as well as the size is adapted to the current
+%D environment.
+
+%D Fonts can only be used when loaded. In \CONTEXT\ we
+%D postpone the loading of fonts, even when we load \PLAIN.
+%D This means that we have to redefine one of the \PLAIN\
+%D macros. Let's tell that to the user first:
+
+\writestatus{loading}{Postponed Plain TeX Font Definitions}
+
+%D \macros
+%D {bordermatrix}
+%D
+%D In \PLAIN\ \TEX\ the width of a parenthesis is stored in
+%D the \DIMENSION\ \type{\mathparentwd}. This value is derived from
+%D the width of \type{\tenrm B}, so let's take care of it now:
+
+\let\normalbordermatrix=\bordermatrix
+
+\def\bordermatrix%
+ {\bgroup
+ \setbox0\hbox{\getvalue{\textface\c!mm\c!ex}B}%
+ \global\mathparentwd\wd0\relax
+ \egroup
+ \normalbordermatrix}
+
+%D Because we want to be as \PLAIN\ compatible as possible, we
+%D make most of \PLAIN's font mechanisme available to the
+%D \CONTEXT\ user.
+
+\def\setplainfonts#1#2%
+ {\setvalue {ten#1}{\getvalue{\!!tenpoint #2}}%
+ \setvalue{seven#1}{\getvalue{\!!sevenpoint#2}}%
+ \setvalue {five#1}{\getvalue{\!!fivepoint #2}}}
+
+\setplainfonts {\c!rm} {\c!rm\c!tf}
+\setplainfonts {\c!bf} {\c!rm\c!bf}
+\setplainfonts {\c!sl} {\c!rm\c!sl}
+\setplainfonts {\c!it} {\c!rm\c!it}
+\setplainfonts {\c!tt} {\c!rm\c!tt}
+\setplainfonts {\c!sy} {\c!mm\c!sy}
+\setplainfonts {\c!ex} {\c!mm\c!ex}
+\setplainfonts {\c!i} {\c!mm\c!mi}
+
+\let\setplainfonts=\undefined
+
+%D \macros
+%D {ss, SS, sz}
+%D
+%D We are going to redefine \type{\ss} but for those wo still
+%D want to have access to the german \SS, we save it's value in
+%D \type{\SS}. Ok, I should have used \type{\sf} instead of
+%D \type{\ss} in the first place.
+
+\ifx\undefined\SS \let\SS=\ss \fi
+\ifx\undefined\sz \let\sz=\ss \fi
+
+%D \macros
+%D {xi}
+%D
+%D We are going to redefine \type{\xi}, but fortunately this
+%D is a math mode character, so we can just say:
+
+\let\normalxi=\xi
+
+%D \macros
+%D {smashaccent}
+%D
+%D When we let \TEX\ put an accent on top of a character, such
+%D composed characters can get more height that height of a
+%D standard \type{\strut}. The next macro takes care of such
+%D unwanted compositions.
+%D
+%D We need to reach over the number that specifies the accent,
+%D and in doing so we use \type{\scratchcounter} as a placeholder
+%D because it accepts 8 bit numbers in octal, decimal or
+%D hexadecimal format. Next we set the height of the accented
+%D character to the natural height of the character.
+
+\unexpanded\def\smashaccent#1%
+ {\dontleavehmode
+ \bgroup
+ \setbox\scratchbox\hbox{#1}%
+ \ifdim\ht\scratchbox>\strutheight\relax\ht\scratchbox\strutheight\fi
+ \ifdim\dp\scratchbox>\strutdepth \relax\dp\scratchbox\strutdepth \fi
+ \box\scratchbox
+ \egroup}
+
+%D For instance we can say:
+%D
+%D \starttyping
+%D \smashaccent{\"Uberhaupt}
+%D \stoptyping
+%D
+%D But normally one will use it as a prefix in definitions.
+%D The difference is in the height:
+%D
+%D \leavevmode\ruledhbox
+%D {\ruledhbox{\smashaccent{\"U}berhaupt}\quad
+%D oder\quad
+%D \ruledhbox{\"Uberhaupt}}
+
+%D \macros
+%D {moveaccent}
+%D
+%D Exact positioning of accents can be realized by saying:
+%D
+%D \starttyping
+%D \moveaccent{-.1ex}{\"u}berhaupt
+%D \stoptyping
+%D
+%D Again, this one will mostly used as a prefix in definitions.
+%D Here the difference is in the position:
+%D
+%D \leavevmode\ruledhbox
+%D {\ruledhbox{\moveaccent{-.1ex}{\"}Uberhaupt}\quad
+%D oder\quad
+%D \ruledhbox{\"Uberhaupt}}
+
+\unexpanded\def\moveaccent#1#2%
+ {\smashaccent
+ {\dimen0\exheight
+ \dimen2\dimen0
+ \advance\dimen2 -#1%
+ \exheight\dimen2
+ #2\relax
+ \exheight\dimen0}}
+
+%D Personally I think that using \TEX\ is complicated by the
+%D way fonts are handled. Apart from the many encodings, we
+%D also deal with different naming schemes. Confronted with
+%D this problem, I decided to change the definitions into:
+%D
+%D \starttyping
+%D \definebodyfont [12pt] [rm] [tf=Times-Roman at 12pt]
+%D \stoptyping
+%D
+%D combined with for instance:
+%D
+%D \starttyping
+%D \definefontsynonym [Times-Roman] [tir]
+%D \stoptyping
+
+%D Now we're up to some definitions.
+
+\definebodyfontenvironment
+ [\s!default]
+ [ \s!text=1.0,
+ \s!script=0.7,
+ \s!scriptscript=0.5,
+ \c!a=1.200,
+ \c!b=1.440,
+ \c!c=1.728,
+ \c!d=2.074,
+ *=\currentfontscale, % wildcard
+ \c!x=0.8,
+ \c!xx=0.6,
+ \c!big=1.2,
+ \c!small=0.8,
+ \c!interlinespace=,
+ \c!em=\v!slanted]
+
+\definebodyfontenvironment
+ [20.7pt]
+ [ \s!text=20.7pt,
+ \s!script=\!!fourteenpointfour,
+ \s!scriptscript=\!!twelvepoint,
+ \c!x=17.3pt,
+ \c!xx=\!!fourteenpointfour,
+ \c!big=20.7pt, % !!!!
+ \c!small=17.3pt]
+
+\definebodyfontenvironment
+ [17.3pt]
+ [ \s!text=17.3pt,
+ \s!script=\!!twelvepoint,
+ \s!scriptscript=\!!tenpoint,
+ \c!x=\!!fourteenpointfour,
+ \c!xx=\!!twelvepoint,
+ \c!big=20.7pt,
+ \c!small=\!!fourteenpointfour]
+
+\definebodyfontenvironment
+ [\!!fourteenpointfour]
+ [ \s!text=\!!fourteenpointfour,
+ \s!script=\!!elevenpoint,
+ \s!scriptscript=\!!ninepoint,
+ \c!x=\!!twelvepoint,
+ \c!xx=\!!tenpoint,
+ \c!big=17.3pt,
+ \c!small=\!!twelvepoint]
+
+\definebodyfontenvironment
+ [\!!twelvepoint]
+ [ \s!text=\!!twelvepoint,
+ \s!script=\!!ninepoint,
+ \s!scriptscript=\!!sevenpoint,
+ \c!x=\!!tenpoint,
+ \c!xx=\!!eightpoint,
+ \c!big=\!!fourteenpointfour,
+ \c!small=\!!tenpoint]
+
+\definebodyfontenvironment
+ [\!!elevenpoint]
+ [ \s!text=\!!elevenpoint,
+ \s!script=\!!eightpoint,
+ \s!scriptscript=\!!sixpoint,
+ \c!x=\!!ninepoint,
+ \c!xx=\!!sevenpoint,
+ \c!big=\!!twelvepoint,
+ \c!small=\!!ninepoint]
+
+\definebodyfontenvironment
+ [\!!tenpoint]
+ [ \s!text=\!!tenpoint,
+ \s!script=\!!sevenpoint,
+ \s!scriptscript=\!!fivepoint,
+ \c!x=\!!eightpoint,
+ \c!xx=\!!sixpoint,
+ \c!big=\!!twelvepoint,
+ \c!small=\!!eightpoint]
+
+\definebodyfontenvironment
+ [\!!ninepoint]
+ [ \s!text=\!!ninepoint,
+ \s!script=\!!sevenpoint,
+ \s!scriptscript=\!!fivepoint,
+ \c!x=\!!sevenpoint,
+ \c!xx=\!!fivepoint,
+ \c!big=\!!elevenpoint,
+ \c!small=\!!sevenpoint]
+
+\definebodyfontenvironment
+ [\!!eightpoint]
+ [ \s!text=\!!eightpoint,
+ \s!script=\!!sixpoint,
+ \s!scriptscript=\!!fivepoint,
+ \c!x=\!!sixpoint,
+ \c!xx=\!!fivepoint,
+ \c!big=\!!tenpoint,
+ \c!small=\!!sixpoint]
+
+\definebodyfontenvironment
+ [\!!sevenpoint]
+ [ \s!text=\!!sevenpoint,
+ \s!script=\!!sixpoint,
+ \s!scriptscript=\!!fivepoint,
+ \c!x=\!!sixpoint,
+ \c!xx=\!!fivepoint,
+ \c!big=\!!ninepoint,
+ \c!small=\!!fivepoint]
+
+\definebodyfontenvironment
+ [\!!sixpoint]
+ [ \s!text=\!!sixpoint,
+ \s!script=\!!fivepoint,
+ \s!scriptscript=\!!fivepoint,
+ \c!x=\!!fivepoint,
+ \c!xx=\!!fivepoint,
+ \c!big=\!!eightpoint,
+ \c!small=\!!fivepoint]
+
+\definebodyfontenvironment
+ [\!!fivepoint]
+ [ \s!text=\!!fivepoint,
+ \s!script=\!!fivepoint,
+ \s!scriptscript=\!!fivepoint,
+ \c!x=\!!fivepoint,
+ \c!xx=\!!fivepoint,
+ \c!big=\!!sevenpoint,
+ \c!small=\!!fivepoint]
+
+\definebodyfontenvironment
+ [\!!fourpoint]
+ [ \s!text=\!!fourpoint,
+ \s!script=\!!fourpoint,
+ \s!scriptscript=\!!fourpoint,
+ \c!x=\!!fourpoint,
+ \c!xx=\!!fourpoint,
+ \c!big=\!!sixpoint,
+ \c!small=\!!fourpoint]
+
+\definebodyfontswitch [fourteenpointfour] [\!!fourteenpointfour]
+\definebodyfontswitch [twelvepoint] [\!!twelvepoint]
+\definebodyfontswitch [elevenpoint] [\!!elevenpoint]
+\definebodyfontswitch [tenpoint] [\!!tenpoint]
+\definebodyfontswitch [ninepoint] [\!!ninepoint]
+\definebodyfontswitch [eightpoint] [\!!eightpoint]
+\definebodyfontswitch [sevenpoint] [\!!sevenpoint]
+\definebodyfontswitch [sixpoint] [\!!sixpoint]
+\definebodyfontswitch [fivepoint] [\!!fivepoint]
+\definebodyfontswitch [fourpoint] [\!!fourpoint]
+
+\definebodyfontswitch [xii] [\!!twelvepoint]
+\definebodyfontswitch [xi] [\!!elevenpoint]
+\definebodyfontswitch [x] [\!!tenpoint]
+\definebodyfontswitch [ix] [\!!ninepoint]
+\definebodyfontswitch [viii] [\!!eightpoint]
+\definebodyfontswitch [vii] [\!!sevenpoint]
+\definebodyfontswitch [vi] [\!!sixpoint]
+
+%D So far.
+
+\definefontstyle [\c!mm] [\c!mm]
+\definefontstyle [\c!rm,\v!roman,\v!serif,\v!regular] [\c!rm]
+\definefontstyle [\c!ss,\v!sansserif,\v!sans,\v!support] [\c!ss]
+\definefontstyle [\c!tt,\v!teletype,\v!type,\v!mono] [\c!tt]
+\definefontstyle [\c!hw,\v!handwritten] [\c!hw]
+\definefontstyle [\c!cg,\v!calligraphic] [\c!cg]
+
+\definefontsize[\c!a] \definefontsize[\c!b]
+\definefontsize[\c!c] \definefontsize[\c!d]
+
+\definealternativestyle [\v!mediaeval] [\os] []
+\definealternativestyle [\v!normal] [\tf] []
+\definealternativestyle [\v!bold] [\bf] []
+\definealternativestyle [\v!type] [\tt] []
+\definealternativestyle [\v!mono] [\tt] []
+\definealternativestyle [\v!slanted] [\sl] []
+\definealternativestyle [\v!italic] [\it] []
+\definealternativestyle [\v!boldslanted,\v!slantedbold] [\bs] []
+\definealternativestyle [\v!bolditalic,\v!italicbold] [\bi] []
+\definealternativestyle [\v!small,\v!smallnormal] [\tfx] []
+\definealternativestyle [\v!smallbold] [\bfx] []
+\definealternativestyle [\v!smalltype] [\ttx] []
+\definealternativestyle [\v!smallslanted] [\slx] []
+\definealternativestyle [\v!smallboldslanted,\v!smallslantedbold] [\bsx] []
+\definealternativestyle [\v!smallbolditalic,\v!smallitalicbold] [\bix] []
+
+\definealternativestyle [\v!sans,\v!sansserif] [\ss] []
+\definealternativestyle [\v!sansbold] [\ss\bf] []
+
+%D Slow but handy:
+
+\definealternativestyle [\v!smallbodyfont] [\setsmallbodyfont] []
+\definealternativestyle [\v!bigbodyfont] [\setbigbodyfont] []
+
+%D We treat {\sc Small Caps} and \cap {Pseudo Caps} a bit
+%D different. We also provide an \WORD {uppercase} style.
+
+\definealternativestyle [\v!cap,\v!capital] [\smallcapped] [\smallcapped]
+\definealternativestyle [\v!smallcaps] [\sc] [\sc]
+\definealternativestyle [\v!WORD] [\WORD] [\WORD]
+
+%D \macros
+%D {...math}
+%D
+%D New or old?
+
+% tzt proper \define...
+%
+% watch out: \synchronizesymb resets the family so we need a second
+% \mf (or maybe \mr): messy and to be sorted out
+
+\def\tfmath{\tf\mf\synchronizesymb\mf}
+\def\bfmath{\bf\mf\synchronizesymb\mf}
+\def\slmath{\sl\mf\synchronizesymb\mf}
+\def\itmath{\it\mf\synchronizesymb\mf}
+\def\bsmath{\bs\mf\synchronizesymb\mf}
+\def\bimath{\bi\mf\synchronizesymb\mf}
+\def\scmath{\sc\mf\synchronizesymb\mf}
+\def\nnmath{\nn\mf\synchronizesymb\mf}
+
+\def\textmath {\synchronizesymb}
+
+%D \macros
+%D {fontstylesuffix}
+%D
+%D The next macro is used to map non latin fontnames on
+%D fonts. See \type {font-uni} for an example of its use.
+
+%\def\fontstylesuffix%
+% {\ifnum\fam=\tffam \s!Regular \else
+% \ifnum\fam=\bffam \s!Bold \else
+% \ifnum\fam=\slfam \s!Slanted \else
+% \ifnum\fam=\itfam \s!Italic \else
+% \ifnum\fam=\bsfam \s!BoldSlanted \else
+% \ifnum\fam=\bifam \s!BoldItalic \else
+% \s!Regular \fi\fi\fi\fi\fi\fi}%
+
+\def\fontstylesuffix% why the \s!Regular ? see \getglyph
+ {\ifx\fontalternative\c!tf \s!Regular \else
+ \ifx\fontalternative\c!bf \s!Bold \else
+ \ifx\fontalternative\c!sl \s!Slanted \else
+ \ifx\fontalternative\c!it \s!Italic \else
+ \ifx\fontalternative\c!bs \s!BoldSlanted \else
+ \ifx\fontalternative\c!bi \s!BoldItalic \else
+ \ifx\fontalternative\c!sc \s!Caps \else
+ \s!Regular \fi\fi\fi\fi\fi\fi\fi}%
+
+%D We still have to take care of \type{\xi}, so:
+
+\def\xi{\ifmmode\normalxi\else\elevenpoint\fi}
+
+%D \macros
+%D {definefontvariant,fontvariant,variant}
+%D
+%D A slightly adapted version of Adam Lindsays variant patches:
+%D
+%D \starttyping
+%D \usetypescriptfile[type-psc] \loadmapfile[texnansi-public-fpl]
+%D \usetypescript[palatino][texnansi] \setupbodyfont[palatino]
+%D
+%D \definefontvariant [Serif][osf] [OsF]
+%D
+%D \startlines
+%D {\sc abcdefgHIJKlmnop}
+%D 123{\Var[osf]456}789
+%D {\Var[osf] 123{\Var[reset]456}789}
+%D {\it 123{\Var[osf]456}789
+%D {\Var[osf]123{\Var[reset]456}789}}
+%D {\tfb\bf 123{\Var[osf]456}789
+%D {\Var[osf] 123{\Var[reset]456}789}}
+%D {\sc 123{\Var[osf]456}789
+%D {\Var[osf] 123{\Var[reset]456}789}}
+%D \stoplines
+%D \stoptyping
+
+\def\definefontvariant
+ {\dotripleargument\dodefinefontvariant}
+
+\def\dodefinefontvariant[#1][#2][#3]%
+ {\setvalue{\??fv#1#2}{#3}}
+
+\def\fontvariant#1#2{\executeifdefined{\??fv#1#2}\empty}
+
+\def\dosetscaledfont
+ {\checkrelativefontsize\fontstyle
+ \scaledfont\currentfontscale\bodyfontsize
+ \scaledfont\relativefontsize\scaledfont}
+
+\unexpanded\def\variant[#1]% slow
+ {\dosetscaledfont
+ \expanded{\definedfont
+ [\truefontname{\fontstringA\fontstylesuffix\fontvariant\fontstringA{#1}}
+ at \scaledfont]}%
+ \ignoreimplicitspaces}
+
+\ifx\Var\undefined \let\Var\variant \fi
+
+%D By default we load the Computer Modern Roman fonts (but
+%D not yet at this moment) and activate the 12pt roman
+%D bodyfont. Sans serif and teletype are also available and
+%D can be called for by \type{\ss} and \type{\tt}.
+
+% \setupbodyfont [unk, rm]
+
+%D Also needed is:
+
+\definefont[tinyfont][Mono at 1ex]
+
+%D \macros
+%D {doiffontpresentelse}
+%D
+%D Some unused left||overs:
+%D
+%D \starttyping
+%D \def\doiffontpresentelse#1#2#3%
+%D {\bgroup
+%D \batchmode\font\dummy=\truefontname{#1}\errorstopmode
+%D \edef\lastfontname{\fontname\dummy}%
+%D \ifx\lastfontname\nullfontname\egroup#3\else\egroup#2\fi}
+%D
+%D \def\abortiffontnotfound#1%
+%D {\doiffontpresentelse{#1}{}{\showmessage\m!fonts{10}{\truefontname{#1}}\endinput}}
+%D \stoptyping
+%D
+%D We now provide (slow, but sometimes handy):
+%D
+%D \starttyping
+%D \doiffontpresentelse{texnansi-lmr10}{YES}{NO}
+%D \doiffontpresentelse{adam-lindsay-modern-serif}{YES}{NO}
+%D \stoptyping
+
+\def\doiffontpresentelse#1%
+ {\bgroup
+ \scratchcounter\interactionmode
+ \batchmode
+ \font\dummy=\truefontname{#1}\relax
+ \interactionmode\scratchcounter
+ \edef\lastfontname{\fontname\dummy}%
+ \ifx\lastfontname\nullfontname
+ \egroup\expandafter\secondoftwoarguments
+ \else
+ \egroup\expandafter\firstoftwoarguments
+ \fi}
+
+%D New commands (not yet interfaced):
+
+\def\style[#1]% for inline usage, like \color
+ {\groupedcommand{\ifcsname#1\endcsname\csname#1\endcsname\else\definedfont[#1]\fi}{}}
+
+\def\startstyle[#1]%
+ {\begingroup
+ \ifcsname#1\endcsname\csname#1\endcsname\else\definedfont[#1]\fi}
+
+\def\stopstyle
+ {\endgroup}
+
+%D Still experimental (might even go away).
+
+% \definestylecollection[mine]
+
+% \definestyleinstance[mine][default][sorry]
+% \definestyleinstance[mine][tt][bs][ttbs:\rm\sl]
+% \definestyleinstance[mine][tt][bf][ttbf:\rm\sl]
+% \definestyleinstance[mine][bf][\sl]
+% \definestyleinstance[mine][sl][\tt]
+
+% {\bf test \mine test \sl test \mine test \bs oeps \mine oeps {\tt test \mine \bf test}}
+
+\definesystemvariable{sx}
+
+\def\definestylecollection
+ {\dosingleargument\dodefinestylecollection}
+
+\def\dodefinestylecollection[#1]%
+ {\iffirstargument
+ \unexpanded\setvalue{#1}{\styleinstance[#1]}%
+ \def\docommand##1%
+ {\def\dodocommand####1{\letbeundefined{\??sx##1:####1:\commalistelement}}%
+ \processcommacommand[\fontalternativelist,\s!default]\dodocommand}%
+ \processcommacommand[\fontstylelist,\s!default]\docommand
+ \fi}
+
+\def\definestyleinstance
+ {\doquadrupleargument\dodefinestyleinstance}
+
+\def\dodefinestyleinstance[#1][#2][#3][#4]% [name] [rm|ss|tt|..] [sl|bf|...] [whatever]
+ {\iffirstargument
+ \doifundefined{#1}{\definestylecollection[#1]}%
+ \fi
+ \iffourthargument
+ \setvalue{\??sx#1:#2:#3}{#4}%
+ \else\ifthirdargument
+ \setvalue{\??sx#1::#2}{#3}%
+ \else\ifsecondargument
+ \letvalue{\??sx#1::#2}\empty
+ \fi\fi\fi}
+
+\unexpanded\def\styleinstance[#1]% will be faster
+ {%\begingroup\expanded{\infofont[#1:\fontstyle:\fontalternative]}\endgroup
+ \executeifdefined{\??sx#1:\fontstyle:\fontalternative}%
+ {\executeifdefined{\??sx#1:\fontstyle:\s!default}%
+ {\executeifdefined{\??sx#1::\fontalternative}
+ {\getvalue {\??sx#1::\s!default}}}}}
+
+% \unexpanded\def\styleinstance[#1]%
+% {\csname\??sx#1%
+% \ifcsname:\fontstyle:\fontalternative\endcsname
+% :\fontstyle:\fontalternative
+% \else\ifcsname:\fontstyle:\s!default\endcsname
+% :\fontstyle:\s!default
+% \else\ifcsname::\fontalternative\endcsname
+% ::\fontalternative
+% \else\ifcsname::\s!default\endcsname
+% ::\s!default
+% \else
+% % nothing, \relax
+% \fi\fi\fi\fi
+% \endcsname}
+
+%D \Compatibility with \MKIV:
+
+\def\somefontsize{\scaledfont}
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/font-ini.mkiv b/Master/texmf-dist/tex/context/base/font-ini.mkiv
index 7d9a8e850bd..c39bdb8b79c 100644
--- a/Master/texmf-dist/tex/context/base/font-ini.mkiv
+++ b/Master/texmf-dist/tex/context/base/font-ini.mkiv
@@ -1,6 +1,7 @@
%D \module
%D [ file=font-ini,
-%D version=2007.01.10,
+%D version=1998.09.11, % (second)
+%D version=2001.02.20, % (third)
%D title=\CONTEXT\ Font Macros,
%D subtitle=Initialization,
%D author=Hans Hagen,
@@ -11,62 +12,2772 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+% simplification ... we no longer deal with specific mmtfa specifications
+
+% todo: always fontclass, then less testing
+
+% \definefontfeature[smallcaps][smcp=yes,script=latn]
+% \definefontfeature[smallcaps][SmallCapitals=yes,script=latn]
+% \definefontfeature[smallcaps][Small Capitals=yes,script=latn]
+% \definefontfeature[smallcaps][small capitals=yes,script=latn]
+% \definefontfeature[smallcaps][smallcapitals=yes,script=latn]
+%
+% \definedfont[cambria*smallcaps] test
+
+% \starttext
+% \definefontfeature[basekerned][default][mode=base]
+% \definefontfeature[nodekerned][default][mode=node]
+% \definefontfeature[nonekerned][default][mode=base,kern=no]
+% \setupcolors[state=start]
+% \startoverlay
+% {\vbox{\red \definedfont[Serif*nonekerned at 12pt]\input tufte }}
+% {\vbox{\blue \definedfont[Serif*basekerned at 12pt]\input tufte }}
+% {\vbox{\green\definedfont[Serif*nodekerned at 12pt]\input tufte }}
+% \stopoverlay
+% \stoptext
+
+% \enabletrackers[otf.kerns]
+%
+% \definefontfeature[withkern][default][mode=node]
+% \definefontfeature[nokern] [default][mode=node,kern=no]
+% \definefontfeature[single] [default][mode=node,cpsp=yes]
+% \definefontfeature[simple] [default][mode=node,cpsp=yes,kern=no]
+%
+% {\definedfont[Serif*default] [FGFGFGFGFGFGFGFGFGFGFGFGFG ABCDEFGHIJKLMNOPQRSTUVWXYZ] \par}
+% {\definedfont[Serif*nokern] [FGFGFGFGFGFGFGFGFGFGFGFGFG ABCDEFGHIJKLMNOPQRSTUVWXYZ] \par}
+% {\definedfont[Serif*single] [FGFGFGFGFGFGFGFGFGFGFGFGFG ABCDEFGHIJKLMNOPQRSTUVWXYZ] \par}
+% {\definedfont[Serif*simple] [FGFGFGFGFGFGFGFGFGFGFGFGFG ABCDEFGHIJKLMNOPQRSTUVWXYZ] \par}
+
+% figure out why \fontbody is not expanded
+
+\writestatus{loading}{ConTeXt Font Macros / Initialization}
+
\registerctxluafile{font-ini}{1.001}
+\registerctxluafile{node-fnt}{1.001} % here
\registerctxluafile{font-enc}{1.001}
\registerctxluafile{font-map}{1.001}
\registerctxluafile{font-syn}{1.001}
+\registerctxluafile{font-log}{1.001}
\registerctxluafile{font-tfm}{1.001}
\registerctxluafile{font-afm}{1.001}
-\registerctxluafile{font-otf}{1.001}
+\registerctxluafile{font-cid}{1.001} % cid maps
+\registerctxluafile{font-ott}{1.001} % otf tables
+\registerctxluafile{font-otf}{1.001} % otf main
+\registerctxluafile{font-otd}{1.001} % otf dynamics
+\registerctxluafile{font-oti}{1.001} % otf initialization
+\registerctxluafile{font-otb}{1.001} % otf main base
+\registerctxluafile{font-otn}{1.001} % otf main node
+\registerctxluafile{font-ota}{1.001} % otf analyzers
+\registerctxluafile{font-otp}{1.001} % otf pack
+\registerctxluafile{font-otc}{1.001} % otf context
\registerctxluafile{font-vf} {1.001}
\registerctxluafile{font-def}{1.001}
+\registerctxluafile{font-ctx}{1.001}
+\registerctxluafile{font-xtx}{1.001}
\registerctxluafile{font-fbk}{1.001}
\registerctxluafile{font-ext}{1.001}
-
-% \startruntimectxluacode
-% fonts.enc.make_unicode_vector() -- each time, brrr
-% \stopruntimectxluacode
+\registerctxluafile{font-pat}{1.001}
+\registerctxluafile{font-chk}{1.001}
\unprotect
-\def\mkdefinefontfeature#1#2#3%
- {\ctxlua{fonts.define.specify.preset_context("#1","#2","#3")}}
+% \def\fontrange#1%
+% {\dofontrange{#1 =\bodyfontsize}}
+%
+% \def\dofontrange#1%
+% {\dodofontrange#1 \relax}% \fontstringA
+%
+% \def\dodofontrange#1 #2 %
+% {\ifdim\bodyfontsize#2%
+% #1\expandafter\gobbleuntilrelax
+% \else
+% \expandafter\dodofontrange
+% \fi}
+%
+% \definefont
+% [crap]
+% [\fontrange
+% {Regular <10pt
+% RegularBold <12pt
+% RegularSlanted <15pt
+% Regular} sa 1]
+%
+% may be better:
+%
+% \definefontrange
+% [crap]
+% [Regular <10pt
+% RegularBold <12pt
+% RegularSlanted <15pt]
+% [Regular sa 1]
+%
+%
+% \dostepwiserecurse{2}{15}{1}
+% {{\switchtobodyfont[\recurselevel pt]\crap test}\endgraf}
+
+% adapted, else wrong interlinespace
-% handy for manuals
+\def\setfontparameters
+ {\synchronizefontsfalse
+ \the\everybodyfont
+ \synchronizefontstrue}
+
+% handy
-\def\otfchar#1{\ctxlua{fonts.otf.char("#1")}}
+\newcounter\pushedfont
-%D: We cannot yet inherit because no colors are predefined.
+\def\savefont
+ {\edef\savedfont{\the\font}%
+ \pushmacro\savedfont}
-\definecolor[font:init][r=.75]
-\definecolor[font:medi][g=.75]
-\definecolor[font:fina][b=.75]
-\definecolor[font:isol][y=.75]
-\definecolor[font:mark][m=.75]
-\definecolor[font:rest][c=.75]
+\def\restorefont
+ {\popmacro\savedfont
+ \savedfont}
+
+\def\pushcurrentfont
+ {\edef\popcurrentfont
+ {\noexpand\def\noexpand\fontbody{\fontbody}%
+ \noexpand\def\noexpand\fontstyle{\fontstyle}%
+ \noexpand\dosetcurrentfontalternative{\fontalternative}%
+ \noexpand\dosetcurrentfontsize{\fontsize}%
+ \noexpand\synchronizefont}}
+
+% \definetypeface[one][rm][serif][computer-roman][default]
+% \definetypeface[two][rm][serif][computer-roman][default][rscale=.9]
+%
+% {\one \bf test \two test}
+% {\one \bf test \pushcurrentfont \two \popcurrentfont test}
+
+%D \macros
+%D {definedfont,startfont,doiffontcharelse}
+%D
+%D A couple of relatively new macros:
+
+% \newtoks \everydefinedfont % not ot be confused with \everydefinefont
+
+\def\dodefinedfont[#1]%
+ {\iffirstargument\definefont[thedefinedfont][#1]\fi % we can speed this one up
+ \csname thedefinedfont\endcsname
+ \the\everydefinedfont}
+
+\unexpanded\def\definedfont
+ {\dosingleempty\dodefinedfont}
-%D goodies:
+\unexpanded\def\startfont
+ {\bgroup\definedfont}
+
+\def\stopfont
+ {\egroup}
+
+\def\doiffontcharelse#1#2%
+ {\bgroup
+ \definedfont[#1]%
+ \iffontchar\font#2\relax
+ \egroup\expandafter\firstoftwoarguments
+ \else
+ \egroup\expandafter\secondoftwoarguments
+ \fi}
+
+%D For more detailed (and historic information) we refer to the file
+%D \type {font-ini.mkii}. Here we have a much simplified lower level
+%D implementation due to a different approach to math. Also the chapter
+%D on fonts in the reference manual explains a lot.
+
+%D \macros
+%D {rm,ss,tt,hw,cg}
+%D
+%D Fonts are defined in separate files. When we define a font,
+%D we distinguish between several styles. In most cases we will
+%D use:
+%D
+%D \startlinecorrection
+%D \starttable[|l||]
+%D \HL
+%D \NC roman regular serif \NC \type{\rm} \NC\FR
+%D \NC sansserif sans support \NC \type{\ss} \NC\MR
+%D \NC type teletype mono \NC \type{\tt} \NC\LR
+%D \HL
+%D \stoptable
+%D \stoplinecorrection
+%D
+%D The number of styles is not limited to these three. When
+%D using Lucida Bright we can for instance also define:
+%D
+%D \startlinecorrection
+%D \starttable[|l||]
+%D \HL
+%D \NC handwritten \NC \type{\hw} \NC\FR
+%D \NC calligraphic \NC \type{\cg} \NC\LR
+%D \HL
+%D \stoptable
+%D \stoplinecorrection
+%D
+%D Within such a font set (\type{cmr}) and style (\type{\rm})
+%D we can define a number of text font alternatives:
+%D
+%D \startlinecorrection
+%D \starttable[|l||]
+%D \HL
+%D \NC typeface \NC \type{\tf} \NC\FR
+%D \NC boldface \NC \type{\bf} \NC\MR
+%D \NC slanted \NC \type{\sl} \NC\MR
+%D \NC italic \NC \type{\it} \NC\MR
+%D \NC boldslanted \NC \type{\bs} \NC\MR
+%D \NC bolditalic \NC \type{\bi} \NC\MR
+%D \NC smallcaps \NC \type{\sc} \NC\LR
+%D \HL
+%D \stoptable
+%D \stoplinecorrection
+%D
+%D Internally fonts are stored as combination of size, style
+%D and alternative, e.g. \type{12pt}+\type{\ss}+\type{\bf}.
+%D Users are not confronted with sizes, but use the style or
+%D style+alternative to activate them.
+%D
+%D During the definition of a bodyfont one can also declare the
+%D available larger alternatives:
+%D
+%D \starttyping
+%D \tf \tfa \tfb \tfc ...
+%D \bf \bfa \bfb \bfc ...
+%D \sl \sla \slb \slc ...
+%D \stoptyping
+%D
+%D The smaller ones are automatically supplied and derived from
+%D the the bodyfont environment.
+%D
+%D \starttyping
+%D \tfx \tfxx
+%D \bfx \bfxx
+%D \slx \slxx
+%D \stoptyping
+%D
+%D There are only two smaller alternatives per style. The
+%D larger alternatives on the other hand have no limitations.
+%D
+%D These larger alternatives are mostly used in chapter and
+%D section titles or on title pages. When one switches to a
+%D larger alternative, the bold an other ones automatically
+%D adapt themselves:
+%D
+%D \startbuffer
+%D \tfd Hi \bf there\sl, here \tfb I \bf am
+%D \stopbuffer
+%D
+%S \startnarrower
+%D \typebuffer
+%S \stopnarrower
+%D
+%D therefore becomes:
+%D
+%D \startvoorbeeld
+%D \getbuffer
+%D \stopvoorbeeld
+%D
+%D Maybe this mechanism isn't always as logic, but as said
+%D before, we tried to make it as intuitive as possible.
+%D
+%D So a specific kind of glyph can be characterized by:
+%D
+%D \startnarrower
+%D family (cmr) + bodyfont (12pt) + style (rm) + alternative (bf) + size (a)
+%D \stopnarrower
+%D
+%D The last component (the size) is optional.
+%D
+%D We introduced \type{\tf} as command to call for the current
+%D normally sized typeface. This commands results in roman,
+%D sans serif, teletype or whatever style is in charge. Such
+%D rather massive switches of style sometimes take more
+%D processing time than comfortable. Of course there is a
+%D workaround for this: we can call fonts directly by means of
+%D commands like:
+%D
+%D \starttyping
+%D \rmtf \sssl \tttf \rmbsa
+%D \stoptyping
+%D
+%D One should realize that this fast calls have limitations,
+%D they lack for instance automatic super- and subscript
+%D support.
+%D
+%D This leaves us two more commands: \type{\tx} and
+%D \type{\txx}. These activate a smaller and even more smaller
+%D font than the current one and adapt themselves to the
+%D current alternative, so when \type{\bf} is active,
+%D \type{\tx} gives a smaller boldface, which in turn can be
+%D called directly by \type{\bfx}.
+%D
+%D These two smaller alternatives are specified by the bodyfont
+%D environment and therefore not necessarily have similar sizes
+%D as \type{\scriptsize} and \type{\scriptscriptsize}. The main
+%D reason for this incompatibility (which can easily be undone)
+%D lays in the fact that we often want a bit bigger characters
+%D than in math mode. In \CONTEXT\ for instance the \type{\tx}
+%D and \type{\txx} commands are used for surrogate
+%D \cap{smallcaps} which support both nesting and alternatives,
+%D like in {\bf\cap{a \cap{small} world}}, which was typeset by
%D
%D \starttyping
-%D \showinstalledfonts[officinasans.*][all]
-%D \showinstalledfonts[officinaserif.*][all]
-%D \showinstalledfonts[officina.*itc.*][all]
+%D \bf\cap{a \cap{small} world}
+%D \stoptyping
+%D
+%D And compare $\rm \scriptstyle THIS$ with the slightly larger
+%D \cap{THIS}: \ruledhbox{$\rm \scriptstyle scriptstyle: THIS$}
+%D or \ruledhbox{\cap{x style: THIS}} makes a big difference.
+%D
+%D The \type{x..d} sizes should be used grouped. If you
+%D don't group them, i.e. call them in a row, \CONTEXT\ will
+%D not be able to sort out your intention (\type {x} inside
+%D \type {d} inside \type {x}. etc.). The following table
+%D demonstrates this:
+%D
+%D \def\FontState{\setstrut\ruledhbox{\strut Hello}}
+%D
+%D \starttabulate[|||||]
+%D \HL
+%D \NC \rlap{\quad\bf grouped} \NC \NC \type {\tx} \NC \type {\txx} \NC \NR
+%D \HL
+%D \NC \type{\tfx} \NC \tfx \FontState \NC \tfx \tx \FontState \NC \tfx \txx \FontState \NC \NR
+%D \NC \type{\tfxx} \NC \tfxx \FontState \NC \tfxx\tx \FontState \NC \tfxx\txx \FontState \NC \NR
+%D \NC \type{\tf} \NC \tf \FontState \NC \tf \tx \FontState \NC \tf \txx \FontState \NC \NR
+%D \NC \type{\tfa} \NC \tfa \FontState \NC \tfa \tx \FontState \NC \tfa \txx \FontState \NC \NR
+%D \NC \type{\tfb} \NC \tfb \FontState \NC \tfb \tx \FontState \NC \tfb \txx \FontState \NC \NR
+%D \NC \type{\tfc} \NC \tfc \FontState \NC \tfc \tx \FontState \NC \tfc \txx \FontState \NC \NR
+%D \NC \type{\tfd} \NC \tfd \FontState \NC \tfd \tx \FontState \NC \tfd \txx \FontState \NC \NR
+%D \NC \type{\tfx} \NC \tfx \FontState \NC \tfx \tx \FontState \NC \tfx \txx \FontState \NC \NR
+%D \NC \type{\tfxx} \NC \tfxx \FontState \NC \tfxx\tx \FontState \NC \tfxx\txx \FontState \NC \NR
+%D \HL
+%D \stoptabulate
+%D
+%D \blank
+%D
+%D \starttabulate[|||||]
+%D \HL
+%D \NC \rlap{\quad\bf stacked} \NC \NC \type {\tx} \NC \type {\txx} \NC \NR
+%D \HL
+%D \NC \type{\tfx}
+%D \NC \tfx \FontState
+%D \NC \tfx \tx \FontState
+%D \NC \tfx \txx \FontState
+%D \NC \NR
+%D \NC \type{\tfxx}
+%D \NC \tfx\tfxx \FontState
+%D \NC \tfx\tfxx \tx \FontState
+%D \NC \tfx\tfxx \txx \FontState
+%D \NC \NR
+%D \NC \type{\tf}
+%D \NC \tfx\tfxx\tf \FontState
+%D \NC \tfx\tfxx\tf \tx \FontState
+%D \NC \tfx\tfxx\tf \txx \FontState
+%D \NC \NR
+%D \NC \type{\tfa}
+%D \NC \tfx\tfxx\tf\tfa \FontState
+%D \NC \tfx\tfxx\tf\tfa \tx \FontState
+%D \NC \tfx\tfxx\tf\tfa \txx \FontState
+%D \NC \NR
+%D \NC \type{\tfb}
+%D \NC \tfx\tfxx\tf\tfa\tfb \FontState
+%D \NC \tfx\tfxx\tf\tfa\tfb \tx \FontState
+%D \NC \tfx\tfxx\tf\tfa\tfb \txx \FontState
+%D \NC \NR
+%D \NC \type{\tfc}
+%D \NC \tfx\tfxx\tf\tfa\tfb\tfc \FontState
+%D \NC \tfx\tfxx\tf\tfa\tfb\tfc \tx \FontState
+%D \NC \tfx\tfxx\tf\tfa\tfb\tfc \txx \FontState
+%D \NC \NR
+%D \NC \type{\tfd}
+%D \NC \tfx\tfxx\tf\tfa\tfb\tfd \FontState
+%D \NC \tfx\tfxx\tf\tfa\tfb\tfd \tx \FontState
+%D \NC \tfx\tfxx\tf\tfa\tfb\tfd \txx \FontState
+%D \NC \NR
+%D \NC \type{\tfx}
+%D \NC \tfx\tfxx\tf\tfa\tfb\tfc\tfx \FontState
+%D \NC \tfx\tfxx\tf\tfa\tfb\tfc\tfx \tx \FontState
+%D \NC \tfx\tfxx\tf\tfa\tfb\tfc\tfx \txx \FontState
+%D \NC \NR
+%D \NC \type{\tfxx}
+%D \NC \tfx\tfxx\tf\tfa\tfb\tfc\tfx\tfxx \FontState
+%D \NC \tfx\tfxx\tf\tfa\tfb\tfc\tfx\tfxx \tx \FontState
+%D \NC \tfx\tfxx\tf\tfa\tfb\tfc\tfx\tfxx \txx \FontState
+%D \NC \NR
+%D \HL
+%D \stoptabulate
+%D
+%D Remark: math support has changed a bit.
+
+%D \macros
+%D {uchar}
+%D
+%D This macro prepares \CONTEXT\ for \UNICODE\ support. By
+%D defining it here, we have at least an safeguard for utility
+%D file reading.
+
+\ifdefined\uchar\else \unexpanded\def\uchar#1#2{[#1,#2]} \fi
+
+%D We define some (very private) constants to improve speed,
+%D memory usage and consistency.
+
+\def\@size@ {@f@si@} % bodyfont size prefix (12pt etc)
+\def\@style@ {@f@st@} % full style prefix (roman etc)
+\def\@shortstyle@ {@f@sh@} % short style prefix (rm etc)
+\def\@letter@ {@f@le@} % first alternative typeface
+\def\@noletter@ {@f@no@} % second alternative typeface
+\def\@fontclass@ {@f@cl@} % fontclass
+
+%D \macros
+%D {fontclass, defaultfontclass}
+%D
+%D The fontclass model was introduced a while after we implement
+%D the basic font model and at that time we still defaulted to
+%D no model at all. Nowadays we default to the \type {modern}
+%D fontclass.
+
+\let\fontclass \empty
+\let\defaultfontclass\empty
+
+%D \macros
+%D {textonly}
+%D
+%D Traditionally math has a big impact on font definitions, mainly
+%D because we need to define alphabet variants using families and
+%D fonts. This means that one can easily get 10 fonts loaded per
+%D math size. In \MKIV\ we use a different approach: one family
+%D which has either a virtual font made of traditional fonts, or
+%D an \OPENTYPE\ font that has it all.
+%D
+%D We currently use only one math family but in the future we
+%D might consider using a second one for bold math. For the
+%D moment we keep the \MKII\ method of using a token register
+%D for definitions but we already dropped the text and symbols
+%D ones since they now live in the same family.
+
+\newtoks \mathstrategies
+
+\newif\ifsynchronizemathfonts \synchronizemathfontstrue
+
+\def\synchronizemath % math stuff in mmode
+ {\ifsynchronizemathfonts\the\mathstrategies\fi}
+
+\def\textonly{\synchronizemathfontsfalse} % document this
+
+%D The main math font definer. We have removed some optimized
+%D code simply because we now always have a fontclass. We could
+%D check for fontclass being default or empty and save a few
+%D tests but it does not help us when no math is defined.
+
+\chardef\mrfam\zerocount % math regular
+\chardef\mbfam\plusone % math bold
+
+\unexpanded\def\mr{\ifmmode\fam\zerocount\else\setcurrentfontalternative\c!mr\fi} % \fam\csname\c!mr fam\endcsname
+\unexpanded\def\mb{\ifmmode\fam\plusone \else\setcurrentfontalternative\c!mb\fi} % \fam\csname\c!mb fam\endcsname
+
+\def\mathtextsuffix {-text}
+\def\mathscriptsuffix {-script}
+\def\mathscriptscriptsuffix{-scriptscript}
+
+% \let\mathsizesuffix\empty
+
+\let\currentmathsize\empty
+
+\def\mathsizesuffix{\ifcase0\currentmathsize\or\mathtextsuffix\or\mathscriptscriptsuffix\or\mathscriptsuffix\fi}
+
+\def\dodosetmathfamily#1#2%
+ {\ifcsname\fontclass \fontbody\c!mm\fontfamily\fontsize\currentmathsize\endcsname \autofontsizefalse
+ \csname\fontclass \fontbody\c!mm\fontfamily\fontsize\currentmathsize\endcsname \else
+ \ifcsname\fontclass \fontbody\c!mm\fontfamily \currentmathsize\endcsname \autofontsizetrue
+ \csname\fontclass \fontbody\c!mm\fontfamily \currentmathsize\endcsname \else
+ \dodosetmathfamilyx#1#2%
+ \fi\fi
+ #1#2\font}
+
+\def\dodosetmathfamilyx#1#2%
+ {\ifcsname\defaultfontclass\fontbody\c!mm\fontfamily\fontsize\currentmathsize\endcsname \autofontsizefalse
+ \csname\defaultfontclass\fontbody\c!mm\fontfamily\fontsize\currentmathsize\endcsname \else
+ \ifcsname\defaultfontclass\fontbody\c!mm\fontfamily \currentmathsize\endcsname \autofontsizetrue
+ \csname\defaultfontclass\fontbody\c!mm\fontfamily \currentmathsize\endcsname \else
+ \dodosetmathfamilyxx#1#2%
+ \fi\fi}
+
+\def\dodosetmathfamilyxx#1#2%
+ {\ifcsname \fontbody\c!mm\fontfamily\fontsize\currentmathsize\endcsname \autofontsizefalse
+ \csname \fontbody\c!mm\fontfamily\fontsize\currentmathsize\endcsname \else
+ \ifcsname \fontbody\c!mm\fontfamily \currentmathsize\endcsname \autofontsizetrue
+ \csname \fontbody\c!mm\fontfamily \currentmathsize\endcsname \else
+ \nullfont \autofontsizetrue
+ \fi\fi}
+
+\def\dosetmathfamily#1#2%
+ {\let\savedfontbody\fontbody % op hoger plan
+ \let\fontfamily#2%
+ \let\currentmathsize\!!plusthree\let\fontbody\scriptscriptface\dodosetmathfamily\scriptscriptfont#1%
+ \let\currentmathsize\!!plustwo \let\fontbody\scriptface \dodosetmathfamily\scriptfont #1%
+ \let\currentmathsize\!!plusone \let\fontbody\textface \dodosetmathfamily\textfont #1%
+ \let\currentmathsize\empty
+ \let\fontbody\savedfontbody
+ \autofontsizefalse}
+
+\appendtoks
+ \dosetmathfamily\mrfam\c!mr
+\to \mathstrategies
+
+% not official !
+
+\chardef\boldmathmode\zerocount % might change ... maybe \mathfontsupport 1 (normal) 2 (bold too)
+
+\def\enableboldmath {\chardef\boldmathmode\plusone } % todo: \setupbodyfont[boldmath,...]
+\def\disableboldmath{\chardef\boldmathmode\zerocount}
+
+\appendtoks
+ \ifcase\boldmathmode\or\dosetmathfamily\mbfam\c!mb\fi
+\to \mathstrategies
+
+%D All used styles, like rm, ss and tt, are saved in a comma
+%D separated list. Appart from practical limitations one can
+%D define as many styles as needed.
+
+\def\fontrelativesizelist{\s!text,\s!script,\s!scriptscript,\c!x,\c!xx,\c!big,\c!small}
+
+%D There are several ways to specify a font. Three of them are
+%D pure \TeX\ ones, the fourth one is new:
%D
-%D \showinstalledfonts[officina.*itc.*][all,new]
+%D \starttyping
+%D \font\name=cmr12
+%D \font\name=cmr12 at 10pt
+%D \font\name=cmr12 scaled 2
+%D \font\name=cmr12 sa 1.440
%D \stoptyping
+%D
+%D The non||\TEX\ alternative \type{sa} stands for {\em scaled
+%D at}. This means as much as: scale the bodyfontsize with this
+%D factor. The scaled option is not that useful as one needs to
+%D know the design size.
+%D
+%D Because \type {sa} (scaled at) and \type {mo} (mapped on)
+%D are not low level \TEX\ supported alternatives, we have to
+%D test for it ourselves. In doing so, we need an auxiliary
+%D \DIMENSION. We cannot use \type{\scratchdimen} because font
+%D loading can happen at any moment due to postponed loading.
+%D We could instead have used dirty grouping tricks, but this
+%D one works too.
-\def\showinstalledfonts
- {\dodoubleempty\doshowinstalledfonts}
+\let\defaultrelativefontsize \plusone
+\let\localrelativefontsize \plusone
+\def\localabsolutefontsize {\fontbody}
-\def\doshowinstalledfonts[#1][#2]%
- {\bgroup
- \def\pattern{#1}%
- \def\all{false}%
- \def\reload{false}%
- \doifnothing\pattern{\def\pattern{.*}}%
- \processallactionsinset[#2][\v!new=>\def\reload{true},\v!all=>\def\all{true}]%
- \ctxlua{fonts.names.table("#1",\reload,\all)}%
- \egroup}
+\let\relativefontsize \defaultrelativefontsize
+
+\def\saverelativefontsize#1#2% #1=rm|ss|.. #2=waarde
+ {\setxvalue{\fontclass#1\s!rscale}{#2}}
+
+\def\checkrelativefontsize#1%
+ {\edef\relativefontsize
+ {\ifcsname\fontclass#1\s!rscale\endcsname
+ \csname\fontclass#1\s!rscale\endcsname
+ \else\ifcsname\defaultfontclass#1\s!rscale\endcsname
+ \csname\defaultfontclass#1\s!rscale\endcsname
+ \else
+ \defaultrelativefontsize
+ \fi\fi}}
+
+% \letvalue{\s!default\s!rscale}\defaultrelativefontsize
+%
+% \def\checkrelativefontsize#1%
+% {\edef\relativefontsize
+% {\csname
+% \ifcsname\fontclass#1\s!rscale\endcsname
+% \fontclass#1%
+% \else\ifcsname\defaultfontclass#1\s!rscale\endcsname
+% \defaultfontclass#1%
+% \else
+% \s!default
+% \fi\fi
+% \s!rscale\endcsname}}
+
+%D We also save:
+
+\def\savemathtextstyle#1% #1=rm|ss|..
+ {\doifsomething{#1}{\setxvalue{\fontclass\c!mm\s!text}{#1}}}
+
+\def\currentmathtextstyle % we default to empty !
+ {\executeifdefined{\fontclass\c!mm\s!text}\empty}
+
+%D Scaling macros:
+%D
+%D This system is somewhat complicated by two (possible conflicting)
+%D demands:
+%D
+%D \startitemize
+%D \item We support wildcards like \type {sa *} which will adapt
+%D to the current size. This is also the default specification.
+%D \item We support named scales like \type {sa d}; beware: \type
+%D {x} and \type {xx} are valid scales but they are not alway
+%D the same as the ones used in for instance \type {\bfx} because
+%D there the sized come from the bodyfont environment. In the
+%D future there maybe a switch that also honors the environment
+%D in named scales.
+%D \stopitemize
+
+%D Keep in mind that the smaller sizes are just for text super and
+%D subscripts while larger sizes can be used in titles where for
+%D instance math follows the size.
+
+% b:x{\definedfont[SerifBold sa b]x}{\bfb x $x^x$}\par
+% 1:x{\definedfont[SerifBold sa 1]x}{\bf x $x^x$}\par
+% x:x{\definedfont[SerifBold sa x]x}{\bfx x $x^x$}\par
+% xx:x{\definedfont[SerifBold sa xx]x}{\bfxx x $x^x$}\par
+%
+% *:x{\definedfont[Serif sa *]x}\par
+% 1:x{\definedfont[Serif sa 1]x}\par
+% 2:x{\definedfont[Serif sa 2]x}\par
+% 3:x{\definedfont[Serif sa 3]x}\par
+% 4:x{\definedfont[Serif sa 4]x}\par
+% 5:x{\definedfont[Serif sa 5]x}\par
+%
+% {\definedfont[cmbx10 at 10pt]x\definedfont[cmbx8 at 10pt]x}
+
+\def\safontscale{\number\dimexpr\localabsolutefontsize\relax}
+\def\mofontscale{\number\dimexpr\setmappedfontsize\localabsolutefontsize\relax}
+
+\let\somefontname\s!unknown
+\let\somefontspec\s!unknown
+\let\somefontsize\zerocount
+
+\newcount\scaledfontmode
+\newdimen\scaledfontsize
+\newtoks\everydefinefont
+
+\def\currentfontbodysize
+ {\ifcsname\??ft\s!default\somefontsize\endcsname
+ \csname\??ft\s!default\somefontsize\endcsname
+ \else
+ \somefontsize
+ \fi}
+
+\def\lowleveldefinefont#1#2% #2 = cs
+ {%
+ \ctxlua{fonts.define.command_1("\luaescapestring{#1}")}% the escapestring catches at \somedimen
+ % sets \scaledfontmode and \somefontname and \somefontsize
+ \ifcase\scaledfontmode\relax
+ % none, avoid the designsize if possible
+ \scaledfontsize-1000\scaledpoint
+ \or
+ % at
+ \scaledfontsize\somefontsize
+ \or
+ % sa
+ \scaledfontsize\localabsolutefontsize\relax
+ \scaledfontsize\currentfontbodysize\scaledfontsize
+ \or
+ % mo
+ \scaledfontsize\setmappedfontsize\localabsolutefontsize
+ \scaledfontsize\currentfontbodysize\scaledfontsize
+ \or
+ % scaled, don't use this one as it's unpredictable
+ \scaledfontsize-\somefontsize\scaledpoint
+ \fi
+ \scaledfontsize\localrelativefontsize\scaledfontsize
+ \ifautofontsize
+ \scaledfontsize\currentfontbodyscale\scaledfontsize
+ \fi
+ \edef\somefontspec{at \number\scaledfontsize sp}%
+ \edef\somefontfile{\truefontname\somefontname}%
+ \ifx\somefontfile\s!unknown
+ \edef\somefontfile{\defaultfontfile}%
+ \fi
+ \updatefontparameters
+ \updatefontclassparameters
+ \ctxlua{fonts.define.command_2(
+ \ifx\fontclass\empty false\else true\fi,
+ "#2", % cs, trailing % is gone
+ "\somefontfile",
+ \number\scaledfontsize,
+ "\@@fontclassfeatures",
+ "\@@fontfeatures",
+ "\@@fontclassfallbacks",
+ "\@@fontfallbacks",
+ 0\currentmathsize,
+ \number\dimexpr\textface\relax
+ )}%
+ \edef\somefontspec{at \somefontsize}% we need the resolved designsize (for fallbacks)
+ \expandafter\let\expandafter\lastrawfontcall\csname#2\endcsname
+ \the\everydefinefont}
+
+\def\updatefontclassparameters
+ {\edef\@@fontclassfeatures {\ifcsname\fontclass\s!features \endcsname\csname\fontclass\s!features \endcsname\fi}%
+ \edef\@@fontclassfallbacks{\ifcsname\fontclass\s!fallbacks\endcsname\csname\fontclass\s!fallbacks\endcsname\fi}}
+
+% resolve
+
+\def\@@thefeaturesyes#1%
+ {\ifcsname\??ff\fontclass#1\s!features \endcsname\@EA\let\@EA\@@fontfeatures \csname\??ff\fontclass#1\s!features \endcsname\else
+ \ifcsname\??ff #1\s!features \endcsname\@EA\let\@EA\@@fontfeatures \csname\??ff #1\s!features \endcsname\else
+ \ifcsname\??ff\fontclass #1\endcsname\@EA \@@thefeaturesyes \csname\??ff\fontclass #1\endcsname\else
+ \ifcsname\??ff #1\endcsname\@EA \@@thefeaturesyes \csname\??ff #1\endcsname\else
+ \let \@@fontfeatures \empty \fi\fi\fi\fi}
+
+\def\@@thefallbacksyes#1%
+ {\ifcsname\??ff\fontclass#1\s!fallbacks\endcsname\@EA\let\@EA\@@fontfallbacks \csname\??ff\fontclass#1\s!fallbacks\endcsname\else
+ \ifcsname\??ff #1\s!fallbacks\endcsname\@EA\let\@EA\@@fontfallbacks \csname\??ff #1\s!fallbacks\endcsname\else
+ \ifcsname\??ff\fontclass #1\endcsname\@EA \@@thefallbacksyes\csname\??ff\fontclass #1\endcsname\else
+ \ifcsname\??ff #1\endcsname\@EA \@@thefallbacksyes\csname\??ff #1\endcsname\else
+ \let \@@fontfallbacks \empty \fi\fi\fi\fi}
+
+\def\@@thefeaturesnop#1%
+ {\ifcsname\??ff#1\s!features \endcsname\@EA\let\@EA\@@fontfeatures \csname\??ff#1\s!features \endcsname\else
+ \ifcsname\??ff #1\endcsname\@EA \@@thefeaturesnop \csname\??ff #1\endcsname\else
+ \let \@@fontfeatures \empty \fi\fi}
+
+\def\@@thefallbacksnop#1%
+ {\ifcsname\??ff#1\s!fallbacks\endcsname\@EA\let\@EA\@@fontfallbacks \csname\??ff#1\s!fallbacks\endcsname\else
+ \ifcsname\??ff #1\endcsname\@EA \@@thefallbacksnop\csname\??ff #1\endcsname\else
+ \let \@@fontfallbacks \empty \fi\fi}
+
+\def\updatefontparametersyes
+ {\@@thefeaturesyes \somefontname
+ \@@thefallbacksyes\somefontname}
+
+\def\updatefontparametersnop
+ {\@@thefeaturesnop \somefontname
+ \@@thefallbacksnop\somefontname}
+
+\def\updatefontparameters
+ {\ifx\fontclass\empty\updatefontparametersnop\else\updatefontparametersyes\fi}
+
+\let\@@fontclassfeatures \empty
+\let\@@fontclassfallbacks\empty
+
+\let\@@fontfallbacks\empty
+\let\@@fontfeatures \empty
+\let\@@hyphenchar \empty % todo, will go to encoding
+
+%D This brings down maps processing from 466 to 309 seconds
+%D ($-33$\%) and mfonts from 42 to 34 seconds ($-15$\%).
+
+\newif\ifskipfontcharacteristics \skipfontcharacteristicstrue
+
+%D When fontclasses are used, we define the font global,
+%D since namespaces are used. Otherwise we parse the specs
+%D each time.
+
+\let\fontfile\s!unknown
+
+% \definefontfeature[default] [liga=yes,texligatures=yes,texquotes=yes]
+% \definefontfeature[default-caps][liga=yes,texligatures=yes,texquotes=yes,smcp=yes,script=latn]
+%
+% \starttypescript [serif] [palatino-nova-regular] [name]
+% \definefontsynonym[Serif] [palatinonova-regular][features=default]
+% \definefontsynonym[SerifCaps][palatinonova-regular][features=default-caps] % also sets Serif
+% \stoptypescript
+%
+% \starttypescript [serif] [palatino-nova-regular] [name]
+% \definefontsynonym[Serif] [palatinonova-regular*default]
+% \definefontsynonym[SerifCaps] [palatinonova-regular*default-caps]
+% \stoptypescript
+
+% \definetypeface[mainface][rm][serif][palatino-nova-regular][default] \setupbodyfont[mainface]
+%
+% \starttext
+% ``Test'' -- --- ff fi fl \sc ``Test'' -- --- ff fi fl
+% \stoptext
+
+% \starttext
+% \definefont
+% [blabla]
+% [name:Latin Modern Something]
+% \definefont
+% [blabla]
+% [file:texnansi-lmr10]
+% \blabla test
+% \definefont
+% [blabla]
+% [texnansi-lmtt10]
+% \blabla test
+% \stoptext
+
+% \starttext
+%
+% \setupcolors[state=start]
+%
+% \definefontfeature
+% [default-base]
+% [script=latn,language=dflt,liga=yes,kern=yes,tlig=yes,trep=yes]
+% \definefontfeature
+% [default-node]
+% [script=latn,language=dflt,liga=yes,kern=yes,tlig=yes,trep=yes,mode=node]
+% \definefontfeature
+% [default-none]
+% [script=latn,language=dflt,liga=yes,kern=no, tlig=yes,trep=yes]
+%
+% \startoverlay
+% {\vtop{\color[red] {\font\test=name:lmroman12regular*default-node \test \input ward \input zapf \input linden }}}
+% {\vtop{\color[green]{\font\test=name:lmroman12regular*default-base \test \input ward \input zapf \input linden }}}
+% {\vtop{\color[blue] {\font\test=name:lmroman12regular*default-none \test \input ward \input zapf \input linden }}}
+% \stopoverlay
+%
+% \blank
+%
+% \startoverlay
+% {\vtop{\color[red] {\font\test=name:texgyrepagella*default-node \test \input ward \input zapf \input linden }}}
+% {\vtop{\color[green]{\font\test=name:texgyrepagella*default-base \test \input ward \input zapf \input linden }}}
+% {\vtop{\color[blue] {\font\test=name:texgyrepagella*default-none \test \input ward \input zapf \input linden }}}
+% \stopoverlay
+%
+% \blank
+%
+% \startoverlay
+% {\vtop{\color[red] {\font\test=name:palatinonovaregular*default-node \test \input ward \input zapf \input linden }}}
+% {\vtop{\color[green]{\font\test=name:palatinonovaregular*default-base \test \input ward \input zapf \input linden }}}
+% {\vtop{\color[blue] {\font\test=name:palatinonovaregular*default-none \test \input ward \input zapf \input linden }}}
+% \stopoverlay
+%
+% \startoverlay
+% {\vtop{\color[red] {\font\test=name:OfficinaSerifBookITC*default-node \test \input ward \input zapf \input linden }}}
+% {\vtop{\color[green]{\font\test=name:OfficinaSerifBookITC*default-base \test \input ward \input zapf \input linden }}}
+% {\vtop{\color[blue] {\font\test=name:OfficinaSerifBookITC*default-none \test \input ward \input zapf \input linden }}}
+% \stopoverlay
+%
+% \definefontfeature[superdefault][default][compose=yes]
+%
+% {\font\oeps=name:lmroman10regular*default at 30pt \oeps test \char7683}
+% {\font\oeps=name:lmroman10regular*superdefault at 30pt \oeps test \char7683}
+%
+% \stoptext
+
+\def \defaultfontfile{\truefontname{Normal}} % was cmtt10, but that one is gone
+\edef\nullfontname {\fontname\nullfont}
+
+%D \macros
+%D {everyfont,everyfontswitch}
+%D
+%D For special purposes, we provide a hook.
+
+% \newevery \everyfont \relax
+% \newevery \everyfontswitch \relax
+
+%D We also accept \type{sa a}||\type{sa d} as specification.
+
+%D \macros
+%D {definefontsynonym, doifelsefontsynonym,
+%D expandfontsynonym, truefontname, truefontdata}
+%D
+%D While looking for fonts, fontsynonyms are used for accessing
+%D the files!
+%D
+%D \starttyping
+%D \definefontsynonym[Serif][Lucida-Bright]
+%D \definefontsynonym[Lucida-Bright][lbr][encoding=texnansi]
+%D \stoptyping
+
+\def\classfont#1#2{#1#2} % \definefont[whatever][\classfont{xx}{yy} at 10pt]
+
+% We need to move the feature into the filename else it may be
+% overloaded by another reference. For instance the definition of
+% a regular and caps variant can use the same font.
+
+% We could use an indirect method ... store in 'array' and refer to
+% slot.
+
+\def\definefontsynonym[#1]#2[#3]%
+ {\edef\@@fontname{#1}%
+ \edef\@@fontfile{#3}%
+ \ifx\fontclass\empty
+ \expandafter\dodefinefontsynonymnop
+ \else
+ \expandafter\dodefinefontsynonymyes
+ \fi}
+
+\def\dodefinefontsynonymnop
+ {\@EA\let\csname\??ff\@@fontname\endcsname\@@fontfile % maybe just #1 #3, saves expansion
+ \doifnextoptionalelse\dododefinefontsynonymnop\nonodefinefontsynonymnop}
+
+\def\dodefinefontsynonymyes
+ {\@EA\let\csname\??ff\fontclass\@@fontname\endcsname\@@fontfile % maybe just #1 #3, saves expansion
+ \doifnextoptionalelse\dododefinefontsynonymyes\nonodefinefontsynonymyes}
+
+\def\dododefinefontsynonymnop[#1]%
+ {\let\@@ff@@features \undefined
+ \let\@@ff@@fallbacks\undefined
+ \expandafter\dogetfontparameternop#1,]=,}
+
+\def\dododefinefontsynonymyes[#1]%
+ {\let\@@ff@@features \undefined
+ \let\@@ff@@fallbacks\undefined
+ \expandafter\dogetfontparameteryes#1,]=,}
+
+\def\dogetfontparameternop#1=#2,%
+ {\if]#1%
+ \dodododefinefontsynonymnop
+ \else
+ \expandafter\def\csname @@ff@@#1\endcsname{#2}%
+ \expandafter\dogetfontparameternop
+ \fi}
+
+\def\dogetfontparameteryes#1=#2,%
+ {\if]#1%
+ \dodododefinefontsynonymyes
+ \else
+ \expandafter\def\csname @@ff@@#1\endcsname{#2}%
+ \expandafter\dogetfontparameteryes
+ \fi}
+
+% hm, was wrong, class/global reversed
+
+\let\fcglobal\global
+\let\fcxdef \xdef
+\let\fcglet \glet
+
+\def\nonodefinefontsynonymnop
+ {\@EA\let\csname\??ff\@@fontname\s!features \endcsname\undefined
+ \@EA\let\csname\??ff\@@fontname\s!fallbacks\endcsname\undefined}
+
+\def\nonodefinefontsynonymyes
+ {\fcglobal\@EA\let\csname\??ff\fontclass\@@fontname\s!features \endcsname\undefined
+ \fcglobal\@EA\let\csname\??ff\fontclass\@@fontname\s!fallbacks\endcsname\undefined}
+
+\def\dodododefinefontsynonymnop
+ {\@EA\let\csname\??ff\@@fontname\s!features \endcsname\@@ff@@features
+ \@EA\let\csname\??ff\@@fontname\s!fallbacks\endcsname\@@ff@@fallbacks}
+
+\def\dodododefinefontsynonymyes
+ {\fcglobal\@EA\let\csname\??ff\fontclass\@@fontname\s!features \endcsname\@@ff@@features
+ \fcglobal\@EA\let\csname\??ff\fontclass\@@fontname\s!fallbacks\endcsname\@@ff@@fallbacks}
+
+\let\definefontfile\definefontsynonym % dedicated to Taco Hoekwater
+
+\def\setupfontsynonym
+ {\dodoubleempty\dosetupfontsynonym}
+
+\def\dosetupfontsynonym[#1][#2]%
+ {\edef\@@fontdata{#2}%
+ \ifx\@@fontdata\empty \else
+ \edef\@@fontfile{#1}%
+ \ifx\fontclass\empty
+ \getfontparameters
+ \else
+ \getglobalfontparameters
+ \fi
+ \fi}
+
+\def\truefontname#1%
+ {\@EA\dotruefontname#1*\empty*\relax}
+
+\def\dotruefontname#1*#2#3*#4\relax
+ {\ifcsname\??ff\fontclass#1\endcsname
+ \ifx#2\empty
+ \@EA\truefontname\csname\??ff\fontclass#1\endcsname
+ \else
+ \@EA\redotruefontname\csname\??ff\fontclass#1\endcsname*#2#3%
+ \fi
+ \else\ifcsname\??ff\defaultfontclass#1\endcsname
+ \ifx#2\empty
+ \@EA\truefontname\csname\??ff\defaultfontclass#1\endcsname
+ \else
+ \@EA\redotruefontname\csname\??ff\defaultfontclass#1\endcsname*#2#3%
+ \fi
+ \else\ifcsname\??ff#1\endcsname
+ \ifx#2\empty
+ \@EA\truefontname\csname\??ff#1\endcsname
+ \else
+ \@EA\redotruefontname\csname\??ff#1\endcsname*#2#3%
+ \fi
+ \else
+ #1\ifx#2\empty\else*#2#3\fi
+ \fi\fi\fi}
+
+\def\redotruefontname#1%
+ {\@EA\dodotruefontname#1*\relax}
+
+\def\dodotruefontname#1*#2\relax
+ {\ifcsname\??ff\fontclass#1\endcsname
+ \@EA\redotruefontname\csname\??ff\fontclass#1\endcsname
+ \else\ifcsname\??ff\defaultfontclass#1\endcsname
+ \@EA\redotruefontname\csname\??ff\defaultfontclass#1\endcsname
+ \else\ifcsname\??ff#1\endcsname
+ \@EA\redotruefontname\csname\??ff#1\endcsname
+ \else
+ #1%
+ \fi\fi\fi}
+
+\def\expandfontsynonym#1#2% #2 := onelevelexpansion(#1)
+ {\ifcsname\??ff\fontclass#2\endcsname
+ \expandafter\def\expandafter#1\expandafter{\csname\??ff\fontclass#2\endcsname}%
+ \else\ifcsname\??ff\defaultfontclass#2\endcsname
+ \expandafter\def\expandafter#1\expandafter{\csname\??ff\defaultfontclass#2\endcsname}%
+ \fi\fi}
+
+\def\doifelsefontsynonym#1%
+ {\ifcsname\??ff\fontclass#1\endcsname
+ \@EA\firstoftwoarguments
+ \else\ifcsname\??ff\defaultfontclass#1\endcsname
+ \@EAEAEA\firstoftwoarguments
+ \else
+ \@EAEAEA\secondoftwoarguments
+ \fi\fi}
+
+% \definetypeface[palatino][rm][serif][palatino,allbold][default]
+%
+% \startfontclass[palatino]
+% \definefontsynonym [Serif] [SerifBold]
+% \definefontsynonym [SerifItalic] [SerifBoldItalic]
+% \definefontsynonym [SerifSlanted] [SerifBoldSlanted]
+% \definefontsynonym [SerifCaps] [SerifBold]
+% \stopfontclass
+%
+% \setupbodyfont[palatino]
+
+\def\startfontclass
+ {\dosingleempty\dostartfontclass}
+
+\def\dostartfontclass[#1]%
+ {\pushmacro\fontclass
+ \doifelse{#1}\v!each
+ {\let\fontclass\empty}
+ {\doifsomething{#1}{\def\fontclass{#1}}}}
+
+\def\stopfontclass
+ {\popmacro\fontclass}
+
+%D \macros
+%D {tracedfontname}
+%D
+%D A goody:
+
+\def\tracedfontname#1%
+ {#1\ifcsname\??ff\fontclass#1\endcsname
+ \@EA\tracedfontname\csname\??ff\fontclass#1\endcsname
+ \else\ifcsname\??ff#1\endcsname
+ \@EA\tracedfontname\csname\??ff#1\endcsname
+ \fi\fi}
+
+%D \macros
+%D {definefont}
+%D
+%D Before we implement the main definition macro, we first show
+%D one for local use:
+%D
+%D \starttyping
+%D \definefont[Some][LucidaBright at 100pt] \Some some
+%D \definefont[More][LucidaBright scaled 3000] \More more
+%D \definefont[Nice][LucidaBright mo 2] \Nice nice
+%D \definefont[Text][LucidaBright sa 5.4] \Text last
+%D \stoptyping
+%D
+%D The implementation looks as follows:
+
+\def\definefont
+ {\dotripleempty\dodefinefont}
+
+\def\dodefinefont[#1][#2][#3]% [name][spec][1.6 | line=10pt | setup_id]
+ {\ifthirdargument
+ \unexpanded\setvalue{#1}{\redodefinefont{#1}{#2}{#3}}%
+ \else
+ \unexpanded\setvalue{#1}{\dododefinefont{#1}{#2}}%
+ \fi}
+
+\def\redodefinefont#1#2#3%
+ {\dododefinefont{#1}{#2}%
+ \doifsetupselse{#3}
+ {\setups[#3]} % don't forget to document this !
+ {\setuplocalinterlinespace[#3]%
+ \setupspacing}} % needed ?
+
+\def\definefrozenfont
+ {\dotripleempty\dodefinefrozenfont}
+
+\def\dodefinefrozenfont[#1][#2][#3]%
+ {\dodefinefont[#1][#2][#3]%
+ \expandafter\let\csname\lastfontidentifier\expandafter\endcsname\csname\rawfontidentifier\endcsname}
+
+%D The \type {*} makes the switch local, so that we can redefine a
+%D logical name and/or change the size in between.
+
+\newif\ifautofontsize \autofontsizetrue
+
+\let\lastfontidentifier\empty
+
+\def\rawfontidentifier{**\lastfontidentifier\fontsize\currentmathsize**}
+\def\newfontidentifier{*\fontclass\lastfontidentifier\fontsize\currentmathsize*}
+
+\let\oldrawfontidentifier\rawfontidentifier
+\let\oldnewfontidentifier\newfontidentifier
+
+\def\newfontidentifier{*\fontclass\lastfontidentifier\fontstyle\fontsize*}
+
+\def\dododefinefont#1#2%
+ {\edef\lastfontidentifier{#1}%
+ \let\localrelativefontsize\defaultrelativefontsize
+ \let\localabsolutefontsize\fontbody
+ \lowleveldefinefont{#2}\rawfontidentifier
+% \let\localrelativefontsize\defaultrelativefontsize % not needed
+ \csname\rawfontidentifier\endcsname
+ \autofontsizefalse
+ \setfontcharacteristics
+ \the\everyfontswitch
+ \let\rawfontidentifier\oldrawfontidentifier}
+
+\def\xxdododefinefont#1#2#3#4% \autofontsizetrue is set by calling routine
+ {\edef\lastfontidentifier{#3}%
+ \ifcsname\newfontidentifier\endcsname\else
+ \def\localrelativefontsize{#1}%
+ \def\localabsolutefontsize{#2}%
+ \lowleveldefinefont{#4}\newfontidentifier
+% \let\localrelativefontsize\defaultrelativefontsize % not needed
+ \fi
+ \csname\newfontidentifier\endcsname
+ \autofontsizefalse
+ %\edef\lastfontidentifier{#3}%
+ \ifskipfontcharacteristics \else
+ \setfontcharacteristics
+ \the\everyfontswitch
+ \fi
+ \let\newfontidentifier\oldnewfontidentifier}
+
+%D \macros
+%D {mapfontsize}
+%D
+%D For special purposes, like in math, you may want to use
+%D slightly different sizes than the ones given. This happens
+%D for instance with the Math Times fonts. Mapped font sizes
+%D can be specified by using the \type {mo} key instead of
+%D \type {sa} in font definitions.
+%D
+%D \startbuffer
+%D \mapfontsize[10pt][11pt]
+%D \mapfontsize[11pt][12pt]
+%D \mapfontsize[12pt][13pt]
+%D
+%D \definefont[test][Serif]\test TEST \par
+%D \definefont[test][Serif sa 5]\test TEST \par
+%D \definefont[test][Serif mo 5]\test TEST \par
+%D \definefont[test][Serif sa d]\test TEST \par
+%D \definefont[test][Serif at 60pt]\test TEST \par
+%D \definefont[test][Serif scaled 6000]\test TEST \par
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D \startpacked
+%D \getbuffer
+%D \stoppacked
+
+\def\mapfontsize
+ {\dodoubleargument\domapfontsize}
+
+\def\domapfontsize[#1][#2]%
+ {\setvalue{\??ft*\the\dimexpr#1\relax}{#2}}
+
+\def\setmappedfontsize#1%
+ {\ifcsname\??ft*#1\endcsname
+ \csname\??ft*#1\endcsname
+ \else
+ #1%
+ \fi}
+
+%D \macros
+%D {getfontname}
+%D
+%D The names of the fonts can be called with the rather simple
+%D macro \type{\getfontname}. When for instance we pass
+%D \type{12ptrmtf} as argument, we get \getfontname{12ptrmtf}.
+
+\def\getfontname#1%
+ {\csname\??ft#1\endcsname}
+
+%D To be documented.
+
+\let\fontsizelist \empty
+\let\fontalternativelist\empty
+\let\fontstylelist \empty
+
+\def\checkfontnamecombinations % we need to split math and text here ... todo (math only has mr and mb)
+ {\def\docommand##1%
+ {\def\dodocommand####1%
+ {\def\dododocommand########1{\checkbodyfont{########1}{####1}{##1}}%
+ \processcommacommand[\fontstylelist]\dododocommand}%
+ \processcommacommand[\fontalternativelist]\dodocommand}%
+ \processcommacommand[\fontsizelist]\docommand}
+
+\def\definefontsize[#1]% sneller met toks
+ {\addtocommalist{#1}\fontsizelist
+ \checkfontnamecombinations}
+
+\def\definefontalternative[#1]%
+ {\addtocommalist{#1}\fontalternativelist
+ \checkfontnamecombinations}
+
+%D \macros
+%D {currentfontscale,currentfontbodyscale}
+%D
+%D Sometimes we need to have access to the font scale
+%D including the \type{a}||\type{d} sizes. The next macro
+%D returns the current scaling factor. Take a look at
+%D \type {cont-log.tex} for an example of its use.
+
+\def\currentfontscale
+ {\csname\??ft\s!default
+ \ifcsname\??ft\s!default\xfontsize\endcsname \xfontsize \else
+ \ifcsname\??ft\s!default\s!text \endcsname \s!text \fi\fi
+ \endcsname}
+
+\def\currentfontbodyscale
+ {\csname\??ft\s!default
+ \ifcsname\??ft\s!default\fontsize\endcsname \fontsize \else
+ \ifcsname\??ft\s!default\s!text \endcsname \s!text \fi\fi
+ \endcsname}
+
+\setvalue{\??ft\s!default}{1}
+
+%D Both alternatives use \type {\xfontsize}, a macro that
+%D expands to the current size in terms of \type {a} \unknown
+%D \type {d}, nothing, or \type {x} \unknown \type {xx}.
+
+\def\xfontsize{\ifcase\currentxfontsize\fontsize\or\c!x\else\c!xx\fi}
+
+%D A typical use of this command is in commands that switch
+%D to another font bypassing the font mechanism:
+%D
+%D \starttyping
+%D \font\myfont=\truefontname{MyFont} at \the\dimexpr\currentfontscale\bodyfontsize\relax
+%D \stoptyping
+
+%D Now we enter the area of font switching. The switching
+%D mechanism has to take care of several situations, like:
+%D
+%D \startitemize[packed]
+%D \item changing the overal document fonts (including margins,
+%D headers and footers)
+%D \item changing local fonts (only the running text)
+%D \item smaller and even more smaller alternatives (super-
+%D and subscripts)
+%D \stopitemize
+%D
+%D \TEX\ offers a powerfull family mechanism for super- and
+%D subscripts in math mode. In text mode however, we don't use
+%D families for the smaller alternatives, and therefore have
+%D to take care of it otherwise.
+
+%D \macros
+%D {definebodyfontenvironment,setupbodyfontenvironment}
+%D
+%D The relationship between the several sizes of a font, is
+%D defined by:
+%D
+%D \showsetup{definebodyfontenvironment}
+%D
+%D Later on we will see how these parameters are used, so for
+%D the moment we stick with an example:
+%D
+%D \starttyping
+%D \definebodyfontenvironment
+%D [12pt]
+%D [ text=12pt,
+%D script=9pt,
+%D scriptscript=7pt,
+%D x=10pt,
+%D xx=8pt,
+%D big=12pt,
+%D small=10pt]
+%D \stoptyping
+%D
+%D The first argument specifies the bodyfont size to which the
+%D settings apply. All second parameters are specified in
+%D dimensions and tell us more about related sizes.
+%D
+%D Afterwards, one can change values with
+%D
+%D \showsetup{setupbodyfontenvironment}
+%D
+%D Due to the fact that \type{\c!text} and \type{\s!text} can
+%D have a similar meaning, and therefore can lead to an
+%D unwanted loop, we temporary redefine \type{\c!text}. For
+%D the moment this in only place that some trickery is needed
+%D to fool the multilingual interface.
+%D
+%D When instead of a size the keyword \type{unknown} is
+%D passed, fractions (relations) are used instead of fixed
+%D sizes.
+
+\let\bodyfontenvironmentlist\empty
+
+\newcount\@@fontdefhack % check if this is still needed
+
+\def\@@beginfontdef
+ {\ifcase\@@fontdefhack
+ \let\k!savedtext \k!text \let\k!text \s!text
+ \let\k!k!savedtext \k!k!text \let\k!k!text \!!plusone
+ \let\k!saveddefault \k!default \let\k!default \s!default
+ \let\k!k!saveddefault\k!k!default \let\k!k!default \!!plusone
+ \fi
+ \advance\@@fontdefhack \plusone }
+
+\def\@@endfontdef
+ {\advance\@@fontdefhack \minusone
+ \ifcase\@@fontdefhack
+ \let\k!k!default\k!k!saveddefault
+ \let\k!default \k!saveddefault
+ \let\k!k!text \k!k!savedtext
+ \let\k!text \k!savedtext
+ \fi}
+
+\def\definebodyfontenvironment
+ {\dotripleempty\dodefinebodyfontenvironment}
+
+\def\dodefinebodyfontenvironment[#1][#2][#3]% class size settings
+ {\ifthirdargument
+ \@@beginfontdef
+ \doifelse{#2}\s!default
+ {\getparameters[\??ft\s!default][#3]}
+ {\normalizebodyfontsize#2\to\tempbodyfontsize
+ \addtocommalist\tempbodyfontsize\bodyfontenvironmentlist
+ \@EA\dododefinebodyfontenvironment\@EA[\tempbodyfontsize][#1][#3]}%
+ \@@endfontdef
+ \else
+ \ifx\fontclass\empty\else
+ \writestatus\m!fonts{beware: fontclass ignored (if needed use: [fontclass][size][settings])}%
+ \fi
+ \pushmacro\fontclass
+ \let\fontclass\empty
+ \definebodyfontenvironment[\fontclass][#1][#2]% change */*
+ \popmacro\fontclass
+ \fi}
+
+\def\dododefinebodyfontenvironment[#1][#2][#3]% size class settings
+ {\@@beginfontdef % \s!text goes wrong in testing because the 12pt alternative will called when typesetting the test (or so)
+ \ifcsname\??ft#2#1\c!em\endcsname
+ % we test for em as we assume it to be set
+ \else
+ \def\docommand##1%
+% fails: \def\checkbodyfontenvironment[#1]{! #1 ! \definebodyfontenvironment[\fontclass][#1][]} \setupbodyfont[8.5pt]
+% {\normalizebodyfontsize\csname\??ft\s!default##1\endcsname\dimexpr#1\relax\to\tempbodyfontsize
+% \letvalue{\??ft#2#1##1}\tempbodyfontsize}%
+ {\scratchdimen\csname\??ft\s!default##1\endcsname\dimexpr#1\relax
+ \normalizebodyfontsize\scratchdimen\to\tempbodyfontsize
+ \letvalue{\??ft#2#1##1}\tempbodyfontsize}%
+ \processcommacommand[\fontrelativesizelist]\docommand
+ \copyparameters
+ [\??ft#2#1][\??ft\s!default]
+ [\c!interlinespace,\c!em]%
+ \fi
+ \getparameters[\??ft#2#1][#3]%
+ \@@endfontdef
+ % new code, see remark
+ \ifloadingfonts
+ % only runtime
+ \else\ifcsname\@size@#1\endcsname
+ % only once
+ \else
+ % prevent loop (hence \empty)
+ \letvalue{\@size@#1}\empty
+ \defineunknownfont{#1}%
+ \fi\fi
+ % so far
+ \setvalue{\@size@#1}{\docompletefontswitch[#1]}}
+
+%D {\bf Remark:} We need to cover the following cases,
+%D otherwise users can get confused:
+%D
+%D \starttyping
+%D \setupbodyfont[23pt]
+%D
+%D \definebodyfontenvironment[23pt]
+%D \setupbodyfont[23pt]
+%D
+%D \definebodyfontenvironment[23pt]
+%D \definebodyfont[23pt][rm,ss,tt][default]
+%D \setupbodyfont[23pt]
+%D \stoptyping
+
+%D Beware: while some font defs can be global, the bodyfont
+%D environment checks local. This means that multiple local
+%D checks resulting in definitions are not that efficient.
+%D So, apart from an occasional switch, one should define an
+%D environment at the outer level.
+
+\def\checkbodyfontenvironment[#1]%
+ {\definebodyfontenvironment[\fontclass][#1][]}
+
+\def\checkbodyfontenvironment[#1]%
+ {\ifcsname\??ft\fontclass#1\c!em\endcsname
+ % we test for em as we assume it to be set
+ \else
+ \definebodyfontenvironment[\fontclass][#1][]%
+ \fi}
+
+% this one already catches both define/setup
+
+\def\setupbodyfontenvironment{\definebodyfontenvironment}
+
+%D Just a couple of interface macros:
+
+\def\bodyfontvariable#1%
+ {\??ft\ifcsname\??ft\fontclass#1\endcsname\fontclass\fi#1}
+
+\def\bodyfontinterlinespecs
+ {\bodyfontvariable{\normalizedbodyfontsize\c!interlinespace}}
+
+\def\bodyfontinterlinespace
+ {\csname\bodyfontinterlinespecs\endcsname}
+
+%D We default all parameters to the main bodyfont size (begin
+%D \type{#1}), so the next setup is valid too:
+%D
+%D \starttyping
+%D \definebodyfontenvironment[24pt]
+%D \stoptyping
+%D
+%D All parameters can be redefined when needed, so one does
+%D not have to stick to the default ones.
+
+%D \macros
+%D {definebodyfont}
+%D
+%D The next step in defining a bodyfont involves the actual font
+%D files, which can be recognized by their extension
+%D \type{tfm}. Installing those file is often beyond the
+%D scope of the user and up to the system administrator.
+%D
+%D \showsetup{definebodyfont}
+%D
+%D This commands takes three arguments: a (series of) bodyfont
+%D size(s), the style group to which the definitions belong,
+%D and an alternative, as specified by the \TEX\ (math) families,
+%D extended with~a, b~\unknown.
+%D
+%D We show two examples, that show all the alternative
+%D scaling options. The \type{\tfa} alternatives can be
+%D extended with \type{\bfa}, \type{\slb}, etc. or even
+%D \type{e} and higher alternatives. The magic scaled
+%D values are derived from plain \TEX's \type {\magstep}:
+%D
+%D \starttyping
+%D \definebodyfont [12pt] [rm]
+%D [tf=cmr12,
+%D bf=cmbx12,
+%D it=cmti12,
+%D sl=cmsl12,
+%D bi=cmbxti10 at 12pt,
+%D bs=cmbxsl10 at 12pt,
+%D tfa=cmr12 scaled 1.200,
+%D tfb=cmr12 scaled 1.440,
+%D tfc=cmr12 scaled 1.728,
+%D tfd=cmr12 scaled 2.074,
+%D sc=cmcsc10 at 12pt]
+%D
+%D \definebodyfont [12pt,11pt,10pt,9pt,8pt] [rm]
+%D [tf=lbr sa 1,
+%D bf=lbd sa 1,
+%D it=lbi sa 1,
+%D sl=lbsl sa 1,
+%D bi=lbdi sa 1,
+%D bs=lbdi sa 1,
+%D tfa=lbr sa 1.200,
+%D tfb=lbr sa 1.440,
+%D tfc=lbr sa 1.728,
+%D tfd=lbr sa 2.074,
+%D sc=lbr sa 0.833]
+%D \stoptyping
+%D
+%D The second example shows that we can define more sizes at
+%D once. The main difference between these examples is that the
+%D Computer Modern Roman come in many design sizes. This means
+%D that there we cannot define them in bulk using \type{sa}.
+%D Instead of \type{rm} (roman) one can define \type{ss} (sans
+%D serif), \type{tt} (teletype), \type{hw} (hand written),
+%D \type{cg} (calygraphic) and whatever styles.
+%D
+%D The first argument may be a comma separated list. This,
+%D combined with specifications using \type{sa} can save a lot
+%D of typing. Although all arguments should be specified, we
+%D treat the second argument as optional.
+%D
+%D Defining a bodyfont involves two actions: defining the
+%D specific style related alternatives, like \type{\rma},
+%D \type{\bfa} and \type{\rmsla}, and storing the definitions
+%D of their bodyfont size related fonts. The first step is
+%D bodyfont independant but executed every time. This permits
+%D user definitions like \type{\tfw} or \type{\bfq} for real
+%D large alternatives.
+
+\def\definebodyfont
+ {\doquadrupleempty\redefinebodyfont}
+
+\def\redefinebodyfont[#1][#2][#3][#4]%
+ {\iffourthargument
+ \processcommacommand[#1]{\reredefinebodyfont[#2][#3][#4]}%
+ \else
+ \dodefinebodyfont[#1][#2][#3]%
+ \fi}
+
+\def\reredefinebodyfont[#1][#2][#3]#4%
+ {\pushmacro\fontclass
+ \doifelse{#4}\s!default
+ {\let\fontclass\empty}
+ {\def\fontclass{#4}}%
+ \definebodyfont[#1][#2][#3]%
+ \popmacro\fontclass}
+
+\def\dodefinebodyfont[#1][#2][#3]% body|identifier style defs|identifier
+ {\ifthirdargument
+ \doifnumberelse{#1}
+ {\doifassignmentelse{#3}
+ {% [12pt] [style] [settings]
+ \ifcsname#2\endcsname\else\normalexpanded{\noexpand\definefontstyle[#2][#2]}\fi % new
+ \processcommalist[#1]{\dododefinebodyfont{#2}{#3}}}
+ {% [12pt] [style] [identifier]
+ \dodefinedefaultbodyfont[#1][#2][#3]}} % body style identifier
+ {% [identifier] [style] [settings] % see ***
+ \setvalue{\s!default#1#2}##1##2{\normalexpanded{\noexpand\xdodefinebodyfont[##1][##2][#3]}}}%
+ \else\ifsecondargument
+ \definebodyfont[#1][\c!rm][#2]%
+ \else
+ % Maybe there are default dependencies defined which we can use ([unknown]) and
+ % if not, then we have at least to make sure some basics are set up.
+ \ifcsname\@size@#1\endcsname \else
+ \defineunknownfont{#1}%
+ \fi
+ \ifcsname\@size@#1\endcsname \else
+ \definebodyfont[#1][\c!rm][]%
+ \fi
+ \fi\fi}
+
+\def\xdodefinebodyfont[#1][#2][#3]% body|identifier style defs|identifier
+ {\checkrelativefontsize{#2}% rather new, inherit from other defs
+ \ifcsname#2\endcsname\else\normalexpanded{\noexpand\definefontstyle[#2][#2]}\fi % new
+ \processcommalist[#1]{\dododefinebodyfont{#2}{#3}}%
+ \let\relativefontsize\defaultrelativefontsize}
+
+\def\dododefinebodyfont#1#2#3% style defs body
+ {\checkbodyfontenvironment[#3]% just to be sure.
+ \processcommalist[#2]{\dodododefinebodyfont{#1}{#3}}}
+
+\def\dodododefinebodyfont#1#2#3% style body def
+ {\dododododefinebodyfont{#1}{#2}[#3]}
+
+\def\dododododefinebodyfont
+ {\ifx\fontclass\empty
+ \expandafter\dododododefinebodyfontnop
+ \else
+ \expandafter\dododododefinebodyfontyes
+ \fi}
+
+\def\dododododefinebodyfontyes#1% style body def
+ {\edef\askedbodyfontstyle{#1}%
+ \ifx\askedbodyfontstyle\c!mm
+ \expandafter\dodefinebodyfontyesmm
+ \else
+ \expandafter\dodefinebodyfontyesxx
+ \fi\askedbodyfontstyle} % we can get rid of #1
+
+\def\dododododefinebodyfontnop#1% style body def
+ {\edef\askedbodyfontstyle{#1}%
+ \ifx\askedbodyfontstyle\c!mm
+ \expandafter\dodefinebodyfontnopmm
+ \else
+ \expandafter\dodefinebodyfontnopxx
+ \fi\askedbodyfontstyle} % we can get rid of #1
+
+\def\dodefinebodyfontnopxx#1#2[#3#4#5=#6]% style body def
+ {\ifcsname#1#3#4#5\endcsname\else\checkbodyfont{#1}{#3#4}{#5}\fi% not \definefontsize[#5]
+ \@EA\let\csname*#2#1#3#4#5*\endcsname\undefined
+ \normalprotected\@EA\edef\csname#2#1#3#4#5\endcsname{\noexpand\xxdododefinefont{\number\relativefontsize}{#2}{#2#1#3#4#5}{\normalunexpanded{#6}}}}
+
+\def\dodefinebodyfontyesxx#1#2[#3#4#5=#6]% style body def
+ {\ifcsname#1#3#4#5\endcsname\else\checkbodyfont{#1}{#3#4}{#5}\fi% not \definefontsize[#5]
+ \fcglobal\@EA\let\csname*\fontclass#2#1#3#4#5*\endcsname\undefined
+ \normalprotected\@EA\fcxdef\csname\fontclass#2#1#3#4#5\endcsname{\noexpand\xxdododefinefont{\number\relativefontsize}{#2}{#2#1#3#4#5}{\normalunexpanded{#6}}}}
+
+\def\dodefinebodyfontnopmm#1#2[#3#4#5=#6]% style body def
+ {\ifcsname#1#3#4#5\endcsname\else\checkbodyfont{#1}{#3#4}{#5}\fi% not \definefontsize[#5]
+ \@EA\let\csname*#2#1#3#4#51*\endcsname\undefined
+ \@EA\let\csname*#2#1#3#4#52*\endcsname\undefined
+ \@EA\let\csname*#2#1#3#4#53*\endcsname\undefined
+ \normalprotected\@EA\edef\csname#2#1#3#4#51\endcsname{\noexpand\xxdododefinefont{\number\relativefontsize}{#2}{#2#1#3#4#51}{\normalunexpanded{#6}}}%
+ \normalprotected\@EA\edef\csname#2#1#3#4#52\endcsname{\noexpand\xxdododefinefont{\number\relativefontsize}{#2}{#2#1#3#4#52}{\normalunexpanded{#6}}}%
+ \normalprotected\@EA\edef\csname#2#1#3#4#53\endcsname{\noexpand\xxdododefinefont{\number\relativefontsize}{#2}{#2#1#3#4#53}{\normalunexpanded{#6}}}}
+
+\def\dodefinebodyfontyesmm#1#2[#3#4#5=#6]% style body def
+ {\ifcsname#1#3#4#5\endcsname\else\checkbodyfont{#1}{#3#4}{#5}\fi% not \definefontsize[#5]
+ \fcglobal\@EA\let\csname*\fontclass#2#1#3#4#51*\endcsname\undefined
+ \fcglobal\@EA\let\csname*\fontclass#2#1#3#4#52*\endcsname\undefined
+ \fcglobal\@EA\let\csname*\fontclass#2#1#3#4#53*\endcsname\undefined
+ \normalprotected\@EA\fcxdef\csname\fontclass#2#1#3#4#51\endcsname{\noexpand\xxdododefinefont{\number\relativefontsize}{#2}{#2#1#3#4#51}{\normalunexpanded{#6}}}%
+ \normalprotected\@EA\fcxdef\csname\fontclass#2#1#3#4#52\endcsname{\noexpand\xxdododefinefont{\number\relativefontsize}{#2}{#2#1#3#4#52}{\normalunexpanded{#6}}}%
+ \normalprotected\@EA\fcxdef\csname\fontclass#2#1#3#4#53\endcsname{\noexpand\xxdododefinefont{\number\relativefontsize}{#2}{#2#1#3#4#53}{\normalunexpanded{#6}}}}
+
+\def\checkbodyfont#1% tests for ttsl mmbf
+ {\edef\c!!mm{#1}%
+ \ifx\c!!mm\c!mm % prevents \max and alike (re)defs
+ \expandafter\checkmathbodyfont
+ \else
+ \expandafter\checktextbodyfont
+ \fi{#1}} % no \c!!mm, not expanded later on
+
+% some day we can do an auto-fam if needed
+
+\def\checkmathbodyfont#1#2#3% style alt size / gdef % #3 can be empty
+ {%\message{!m #1 #2 #3!}%
+ % #1 #2 #3 = signal
+ %unexpanded\setgvalue {#2}{\setcurrentfontalternative {#2}}% \mr \mb
+ \unexpanded\setgvalue {#1}{\setcurrentfontstyle {#1}}}% \mm
+
+\def\checktextbodyfont#1#2#3% style alt size / gdef % #3 can be empty
+ {%\message{!t #1 #2 #3!}%
+ \unexpanded\setgvalue {#1#3}{\setcurrentfontstylesize {#1}{#3}}% \rma
+ \unexpanded\setgvalue {#2#3}{\setcurrentfontalternativesize {#2}{#3}}% \sla
+ \unexpanded\setgvalue {#1#2#3}{\setcurrentfontstylealternativesize{#1}{#2}{#3}}% \rmsla
+ \unexpanded\setgvalue {#1}{\setcurrentfontstyle {#1}}% \rm
+ \unexpanded\setgvalue {#2}{\setcurrentfontalternative {#2}}% \sl
+ \unexpanded\setgvalue {#1\c!x}{\setcurrentfontxstylealternative {#1}}% \rmx
+ \unexpanded\setgvalue{#1\c!xx}{\setcurrentfontxxstylealternative {#1}}% \rmxx
+ \unexpanded\setgvalue {#2\c!x}{\setcurrentfontxalternative {#2}}% \slx
+ \unexpanded\setgvalue{#2\c!xx}{\setcurrentfontxxalternative {#2}}% \slxx
+ \unexpanded\setgvalue {#1#2}{\setcurrentfontstylealternative {#1}{#2}}}% \rmsl
+
+\def\dodefinedefaultbodyfont[#1][#2][#3]% sizes styles identifier
+ {\def\dododefinedefaultbodyfont##1%
+ {\def\dodododefinedefaultbodyfont####1%
+ {\def\dododododefinedefaultbodyfont########1%
+ {\ifcsname\s!default########1####1\endcsname
+ % [12pt] [style] [identifier]
+ \csname\s!default########1####1\endcsname{##1}{####1}%
+ \fi}%
+ \processcommalist[#3]\dododododefinedefaultbodyfont}%
+ \processcommalist[#2]\dodododefinedefaultbodyfont}%
+ \processcommalist[#1]\dododefinedefaultbodyfont}
+
+%D Unknown families are added to the family list! For the
+%D moment we also set the direct calls here. Some day a better
+%D solution will be implemented. The good news is that unknown
+%D fonts are defined automatically.
+
+\newif\ifdefiningunknownfont
+
+\def\dodefineunknownfont#1#2%
+ {\ifcsname\??ft\s!default#2\endcsname
+ \donetrue
+ \normalizebodyfontsize\csname\??ft\s!default#2\endcsname\dimexpr#1\relax\to\tempbodyfontsize
+ \letvalue{\??ft#1#2}\tempbodyfontsize
+ \fi}
+
+\def\dodefineunknownbodyfont#1#2% see ***
+ {\ifcsname\s!default\s!default#2\endcsname % somehow related to */*
+ \donetrue
+ \csname\s!default\s!default#2\endcsname{#1}{#2}%
+ \fi}
+
+\def\dodefineunknownsubfont#1#2%
+ {\ifcsname\@size@\csname\??ft#1#2\endcsname\endcsname
+ \else
+ \donetrue
+ \defineunknownfont{\csname\??ft#1#2\endcsname}%
+ \fi}
+
+\def\defineunknownfont#1%
+ {\let\c!savedtext\c!text
+ \let\c!text\s!text
+ \donefalse
+ \processcommacommand[\fontrelativesizelist]{\dodefineunknownfont{#1}}%
+ \let\c!text\c!savedtext
+ \ifdone
+ \donefalse
+ \processcommacommand
+ [\fontstylelist]
+ {\dodefineunknownbodyfont{#1}}%
+ \ifdone
+ \donefalse
+ \setvalue{\@size@#1}{\docompletefontswitch[#1]}%
+ \ifdefiningunknownfont \else
+ \definingunknownfonttrue
+ \processcommacommand[\fontrelativesizelist]{\dodefineunknownsubfont{#1}}%
+ \definingunknownfontfalse
+ \fi
+ \fi
+ \ifdone
+ \showmessage\m!fonts{14}{#1}%
+ \fi
+ \fi}
+
+%D These macros show that quite some definitions take place.
+%D Fonts are not loaded yet! This means that at format
+%D generation time, no font files are preloaded.
+
+%D A previous implementation used:
+%D
+%D \starttyping
+%D \type {\setvalue{name}{\donottest...}}
+%D \stoptyping
+%D
+%D instead of the more memory hungry:
+%D
+%D \starttyping
+%D \unexpanded\setvalue{name}{...}
+%D \stoptyping
+%D
+%D The first alternative saves about 500 hash entries (about
+%D 2.5\% of the total number of entries used. The second
+%D alternative is currently used, because that one can more
+%D easily be made \ETEX\ aware.
+
+%D \macros
+%D {everybodyfont,Everybodyfont,everyglobalbodyfont}
+%D
+%D Every change in bodyfont size has conseqences for the baseline
+%D distance and skips between paragraphs. These are initialized
+%D in other modules. Here we only provide the hooks that
+%D garantees their handling.
+
+%D At the system level one can initialize thing like:
+%D
+%D \starttyping
+%D \appendtoks \setupspacing \to \everybodyfont
+%D \stoptyping
+%D
+%D While users can add their own non standard commands like:
+%D
+%D \starttyping
+%D \EveryBodyFont{\message{changing to bodyfont \the\bodyfontsize}}
+%D \stoptyping
+%D
+%D Personnaly I never felt the need for such extensions, but
+%D at least its possible.
+
+%D \macros
+%D {globalbodyfontsize,localbodyfontsize}
+%D
+%D Next we'll do the tough job of font switching. Here we
+%D have to distinguish between the global (overal) bodyfont
+%D size and the local (sometimes in the textflow) size. We
+%D store these dimensions in two \DIMENSION\ registers.
+
+\ifdefined\globalbodyfontsize\else \newdimen\globalbodyfontsize \fi \globalbodyfontsize=12pt
+\ifdefined\localbodyfontsize \else \newdimen\localbodyfontsize \fi \localbodyfontsize =\globalbodyfontsize
+
+%D \macros
+%D {bodyfontsize}
+%D
+%D These two registers are not to be misused in calculations.
+%D For this purpose we keep a copy:
+
+\newdimen\bodyfontsize \bodyfontsize=\globalbodyfontsize
+
+%D \macros
+%D {outputresolution}
+%D
+%D Sometimes (to be honest: not in this module) we need to
+%D take the system resolution into account. Therefore we also
+%D define a macro:
+
+\def\outputresolution {600}
+
+%D \macros
+%D {bodyfontfactor,bodyfontpoints}
+%D
+%D For multiplication purposes we keep an auxiliary counter
+%D and macro (here the expansion is not explicitly needed):
+
+\newcount\bodyfontpoints \dimensiontocount\bodyfontsize\bodyfontpoints
+
+\edef\bodyfontfactor{\withoutpt\the\bodyfontsize}
+
+%D When we assign for instance 12pt to a \DIMENSION\ register
+%D the \type{\the}'d value comes out as 12.0pt, which is
+%D often not the way users specify the bodyfont size. Therefore
+%D we also store the normalized value.
+
+\chardef\fontdigits=2 % was 1
+
+\def\normalizebodyfontsize#1\to#2%
+ {\@EA\@EA\@EA\donormalizedbodyfontsize\@EA\WITHOUTPT\the\dimexpr#1+\ifcase\fontdigits.5\or.05\or.005\fi\points\relax000\to#2}
+
+\def\donormalizedbodyfontsize#1.#2#3#4#5\to#6% \points ?
+ {\edef#6% not \ifcase#2\else due to \relax adding
+ {#1%
+ \ifcase\fontdigits
+ \or \ifcase#2 \else .#2\fi % 1
+ \or \ifcase#2#3 \else .#2\ifcase#3 \else #3\fi\fi % 2
+ \else \ifcase#2#3#4 \else .#2\ifcase#4 \ifcase#3 \else#3\fi \else#3#4\fi\fi % 3
+ \fi
+ \s!pt}}
+
+% not faster, just less tracing
+%
+% \def\setfontdigits#1%
+% {\chardef\fontdigits\ifnum#1>\plusthree\plusthree\else#1\fi\relax
+% \@EA\let\@EA\normalizedbfs\csname normalizedbfs\number\fontdigits\endcsname}
+%
+% \def\normalizebodyfontsize#1\to#2%
+% {\@EA\@EA\@EA\normalizedbfs\@EA\WITHOUTPT\the\dimexpr#1+\ifcase\fontdigits.5\or.05\or.005\fi\points\relax000\to#2}
+%
+% \setvalue{normalizedbfs0}#1.#2\to #3{\edef#3{#1\s!pt}}
+% \setvalue{normalizedbfs1}#1.#2#3\to #4{\edef#4{#1\ifcase#2 \else.#2\fi\s!pt}}
+% \setvalue{normalizedbfs2}#1.#2#3#4\to #5{\edef#5{#1\ifcase#2#3 \else.#2\ifcase#3 \else#3\fi\fi\s!pt}}
+% \setvalue{normalizedbfs3}#1.#2#3#4#5\to#6{\edef#6{#1\ifcase#2#3#4 \else.#2\ifcase#4 \ifcase#3 \else#3\fi\else#3#4\fi\fi\s!pt}}
+%
+% \setfontdigits2
+
+\normalizebodyfontsize\bodyfontsize\to\normalizedglobalbodyfontsize
+\normalizebodyfontsize\bodyfontsize\to\normalizedlocalbodyfontsize
+\normalizebodyfontsize\bodyfontsize\to\normalizedbodyfontsize
+
+%D \macros
+%D {fontstyle,fontalternative,fontsize}
+%D
+%D Within a bodyfont, fonts can come in different sizes. For
+%D instance \type{\tf} is accompanied by \type{\tfa},
+%D \type{\tfb} etc. The first two characters denote the
+%D alternative, while the third character in these sequences
+%D represents the size. The actual size is saved in a macro
+%D
+%D The style, being roman (\type{\rm}), sans serif (\type{\ss})
+%D etc. is also available in a macro in \type{rm}, \type{ss}
+%D etc. form:
+
+\let\defaultfontalternative = \c!tf
+\let\defaultfontstyle = \empty
+\let\defaultfontsize = \empty
+
+\let\fontalternative = \defaultfontalternative
+\let\fontstyle = \defaultfontstyle
+\let\fontsize = \defaultfontsize
+
+%D When \type {\loadfontfileoncetrue}, such files are
+%D only loaded once! This permits redundant loading, but at
+%D the same time forced grouping when we want continuously mix
+%D all kind of font, which of course is a kind of
+%D typographically sin. The \type{"} is made inactive if
+%D needed to prevent problems with loading files that use this
+%D character in numbers.
+
+% can be made faster (only used internally now)
+
+\def\doswitchpoints[#1]%
+ {\normalexpanded{\dodoswitchpoints{#1}}}
+
+\unexpanded \def\dodoswitchpoints#1%
+ {\ifcsname\@size@#1\endcsname \else
+ \defineunknownfont{#1}%
+ \fi%
+ %\defineunknownfontstyles{#1}%
+ \ifcsname\@size@#1\endcsname
+ \csname\@size@#1\endcsname
+ \localbodyfontsize#1\relax
+ \normalizebodyfontsize\localbodyfontsize\to\normalizedbodyfontsize
+ % \edef\fontbody{\fontbody}% to be tested but we can clean up mkiv further
+ \checkbodyfontenvironment[\normalizedbodyfontsize]%
+ \else
+ \showmessage\m!fonts4{#1}%
+ \fi}
+
+\unexpanded \def\doswitchstyle[#1]%
+ {\ifcsname\@style@#1\endcsname
+ \csname\@style@#1\endcsname
+ \edef\fontstyle{#1}%
+ \ifmmode\mr\fi % in order to be compatible with \rm in math mode
+ % \the\everybodyfont % cleaner, in setting size as well as style
+ \else
+ \showmessage\m!fonts5{#1}%
+ \fi}
+
+%D \TEX\ loads font metric files like \type{cmr10.tfm} and
+%D \type{tir.tfm} only once. In \PLAIN\ \TEX\ some font files
+%D are {\em preloaded}. This means that the font files are
+%D loaded, but not accessible yet by name. This is accomplished
+%D by saying:
+%D
+%D \starttyping
+%D \font\preloaded=cmr10 at 11pt
+%D \stoptyping
+%D
+%D and using the name \type{\preloaded} again and again, so
+%D fonts are indeed loaded, but unnamed, and therefore
+%D unaccessible. In \CONTEXT\ we don't preload fonts, not even
+%D the \PLAIN\ \TEX\ ones, although users can access them. Now
+%D why is this done?
+
+%D Defining fonts using \type{\definebodyfont} takes time, so we
+%D prefer to predefine at least the Computer Modern Roman
+%D fonts. However, loading all those fonts at definition time
+%D would take both time and space. But even worse, once fonts
+%D are loaded into memory, their encoding vector is fixed,
+%D which is a handicap when we want to distribute the compact
+%D \type{fmt} files. So what we want to do is defining fonts in
+%D a way that postpones the loading. We accomplish this by only
+%D loading the fonts when we switch to another bodyfont size.
+%D Among the other alternatives, such as loading the font at
+%D the moment of activation and redefining the activation
+%D macro afterwards, this proved to be the most efficient
+%D alternative.
+%D
+%D The next few macros take care of the one exeption on this
+%D scheme. When at format generation time we load the default
+%D font file, the one that defines the Computer Modern Fonts,
+%D we don't want the fonts metrics to end up in the format
+%D file, so we temporary prohibit loading. This means that at
+%D runtime we have to load the default bodyfont size just before
+%D we start typesetting.
+%D
+%D Therefore we have to signal the font switching macros that
+%D we are preloading fonts. As long as the next boolean is,
+%D true, no loading is done.
+
+\newif\ifloadingfonts \loadingfontstrue
+
+%D \macros
+%D {preloadfonts}
+%D
+%D Preloading is only called for once, during the startup
+%D sequence of a session. After the loading job is done, the
+%D macro relaxes itself and reset the signal.
+
+% \appendtoks
+% \to \everysetupdocument
+
+\newconditional\fontsareloaded
+
+\def\preloadfonts % never called, needs a clean up
+ {\global\loadingfontsfalse
+ \ifconditional\fontsareloaded \else
+ \doifmodeelse {*nofonts}
+ {\writestatus\m!fonts{latin modern fonts are not preloaded}}
+ {\writestatus\m!fonts{preloading latin modern fonts}%
+ \usetypescript[modern]%
+ \setuptypeface[modern]%
+ \showmessage\m!fonts6{\normalizedbodyfontsize\normalspace\fontstyle}}%
+ \fi
+ \global\let\preloadfonts\relax}
+
+% maybe add this to \everystarttext
+%
+% \ifconditional\fontsareloaded\else
+% \usetypescript[modern]%
+% \setuptypeface[modern]%
+% \fi
+
+%D Here comes the main font switching macros. These macros
+%D handle changes in size as well as returning to the global
+%D bodyfont size.
+
+\def\dosetfont#1#2% #1 = set/switch state
+ {\doifelse{#2}\v!global
+ {\restoreglobalbodyfont}
+ {\processcommacommand[#2]{\dodosetfont{#1}}% ##1 get also passed
+ \ifloadingfonts\else
+ \global\settrue\fontsareloaded
+ \doswitchpoints[\normalizedbodyfontsize]%
+ \doswitchstyle[\fontstyle]%
+ \ifx\defaultfontclass\empty
+ \let\defaultfontclass\fontclass
+ \fi
+ \fi}%
+ \chardef\currentxfontsize\zerocount}
+
+\def\dodosetfont#1#2% #1 = set/switch state | check fo rempty, else space
+ {\doifsomething{#2}{\dododosetfont{#1}{#2}{\showmessage\m!fonts4{#2}}}}
+
+% % % this can be retrofitted in mkii code % % %
+
+% \def\normalizebodyfontsize#1\to#2%
+% {\@EA\@EA\@EA\donormalizedbodyfontsize\@EA\WITHOUTPT\the\dimexpr#1+\ifcase\fontdigits.5\or.05\or.005\fi\points\relax000\to#2}
+
+\def\dododosetfont#1#2#3% #1 = set/switch state ! ! ! !could also be used for mkii
+ {\doifnumberelse{#2}\dodododosetfont\redododosetfont{#1}{#2}{#3}}
+
+\def\redododosetfont#1#2#3% #1 = set/switch state ! ! ! !could also be used for mkii
+ {\edef\expandedfontthing{#2}%
+ \def\interfacedfontsize{\normalizedbodyfontsize\interfaced\expandedfontthing}%
+ \ifcsname\??ft\interfacedfontsize\endcsname
+ \edef\fontstep{\csname\bodyfontvariable\interfacedfontsize\endcsname}%
+ \normalexpanded{\noexpand\dodododosetfont{#1}{\fontstep}}{#3}%
+ \else\ifx\expandedfontthing\v!reset
+ \let\fontstyle\empty % new 31/7/2006
+ \let\fontsize \empty
+ \else
+ \ifcsname\@style@\expandedfontthing\endcsname
+ \let\fontstyle\expandedfontthing
+ \else
+ \setcurrentfontclass\expandedfontthing
+ \ifcase#1\relax
+ \let\globalfontclass\globalfontclass
+ \else
+ \let\globalfontclass\fontclass
+ \fi
+ \ifx\fontclass\empty
+ \let\fontstyle\c!rm
+ \else\ifcsname\??tf\fontclass\s!default\endcsname
+ \edef\fontstyle{\csname\??tf\fontclass\s!default\endcsname}%
+ \else
+ \let\fontstyle\c!rm
+ \fi\fi
+ \fi
+ \fi\fi}
+
+\def\dodododosetfont#1#2#3% #1 = set/switch state
+ {\normalizebodyfontsize#2\to\normalizedsetfont
+ \ifcsname\@size@\normalizedsetfont\endcsname \else
+ \defineunknownfont{#2}%
+ \fi
+ \ifcsname\@size@\normalizedsetfont\endcsname
+ \localbodyfontsize\normalizedsetfont
+ \let\normalizedbodyfontsize\normalizedsetfont
+ \else
+ #3\dosetsubstitutefont{#1}{#2}%
+ \fi}
+
+% % %
+
+%D In the previous macros we use \type{\currentxfontsize} to
+%D hold the current x||size of the font. This enables us to
+%D support for instance \type{\sl} inside a \type{\tx} switch.
+
+\chardef\currentxfontsize=0
+
+%D When users specify for instance a 13 point bodyfont while no
+%D such bodyfont is defined, the system automatically tries to
+%D find a best fit, that is the nearest smaller defined
+%D bodyfontzize. A smaller one is definitely better than a larger
+%D one, simply because otherwise a lot of overfull box messages
+%D are more probable to occur. By taking a value slightly
+%D smaller than half a point, we can use the next method.
+
+\def\dosetsubstitutefont#1#2% #1 = set/switch state
+ {\scratchdimen#2\relax
+ \advance\scratchdimen .499\points
+ \dimensiontocount\scratchdimen\scratchcounter
+ \advance\scratchcounter \minusone
+ \ifnum\scratchcounter>\plusthree
+ \dododosetfont{#1}{\the\scratchcounter\s!pt}{}%
+ \fi}
+
+% The following bunch of macros deals with the (run time)
+% expansion of names onto the definitions made by \type
+% {\definebodyfont}.
+
+% \let\fontbody \empty % ... 10pt 11pt 12pt ...
+% \let\fontstyle \empty % rm ss tt mm hw cg ...
+% \let\fontalternative\empty % tf bf sl it bs bi sc ...
+% \let\fontsize \empty % xy-abcd ...
+
+\def\defaultfontbody{\normalizedbodyfontsize}
+
+\let\fontbody\defaultfontbody
+
+\let\fontclass\empty \let\globalfontclass\fontclass
+
+% we need to check the fontclass
+
+\def\registerfontclass#1%
+ {\letgvalue{\@fontclass@#1}\v!yes} % global ?
+
+\def\setcurrentfontclass#1%
+ {\ifcsname\@fontclass@#1\endcsname
+ \edef\fontclass{#1}%
+ \fi}
+
+\let\defaultfontstyle \c!rm
+\let\defaultfontalternative \c!tf
+\let\defaultfontsize \empty
+
+%D \macros
+%D {bigmath,nobigmath}
+%D
+%D We can inhibit this slow||downer with:
+
+% these can best be combined
+
+% 0=never 1=everymath 2=always
+
+\chardef\synchronizebigmathflag=1
+
+\appendtoks
+ \ifcase\synchronizebigmathflag
+ % never
+ \or
+ \synchronizebigmath
+ \or
+ % always
+ \fi
+\to \everymathematics
+
+\def\nobigmath {\chardef\synchronizebigmathflag\zerocount}
+\def\autobigmath{\chardef\synchronizebigmathflag\plusone\synchronizebigmath}
+\def\bigmath {\chardef\synchronizebigmathflag\plustwo\synchronizebigmath}
+
+\let\bigmathfontsize\empty
+
+\def\synchronizebigmath
+ {\ifx\bigmathfontsize\fontsize
+ % already in sync
+ \else
+ \let\bigmathfontsize\fontsize
+ \synchronizemath
+ \fi}
+
+\def\checkbigmathsynchronization
+ {\ifcase\synchronizebigmathflag
+ % never
+ \or
+ \ifmmode \synchronizebigmath \fi
+ \or
+ \synchronizebigmath
+ \fi}
+
+%D So far for synchronisation. (We can inline the following macros.)
+
+\def\dosetcurrentfontsize#1%
+ {\edef\fontsize{#1}%
+ \checkbigmathsynchronization}
+
+\def\dosetcurrentfontalternative#1%
+ {\edef\fontalternative{#1}}
+
+\def\setcurrentfont#1#2#3#4%
+ {%\message{[1 #1 #2 #3 #4]}%
+ \edef\fontbody{#1}%
+ \edef\fontstyle{#2}%
+ \dosetcurrentfontalternative{#3}%
+ \dosetcurrentfontsize{#4}%
+ \synchronizefont}
+
+\def\setcurrentfontbody#1%
+ {%\message{[2 #1]}%
+ \edef\fontbody{#1}%
+ \synchronizefont}
+
+% For Taco: optional fall backs:
+
+\ifx\checkfontclass\undefined \let\checkfontclass\gobbleoneargument \fi % implemented in type-ini
+
+% \def\setcurrentfontstyle#1%
+% {%\message{[3 #1]}%
+% \checkfontclass{#1}%
+% \edef\fontstyle{#1}%
+% \ifmmode\mr\fi % otherwise \rm not downward compatible
+% \synchronizefont}
+
+\def\setcurrentfontstyle#1%
+ {%\message{[3 #1]}%
+ \edef\fontstyle{#1}%
+ \checkfontclass\fontstyle
+ \ifmmode\mr\fi % otherwise \rm not downward compatible
+ \synchronizefont}
+
+\def\setcurrentfontbodyalternative#1#2%
+ {%\message{[4 #1 #2]}%
+ \edef\fontbody{#1}%
+ \dosetcurrentfontalternative{#2}%
+ \synchronizefont}
+
+\def\setcurrentfontalternative#1%
+ {%\message{[5 #1]}%
+ \dosetcurrentfontalternative{#1}%
+ \synchronizefont}
+
+\def\setcurrentfontsize#1%
+ {%\message{[6 #1]}%
+ \dosetcurrentfontsize{#1}%
+ \synchronizefont}
+
+\def\setcurrentfontstylealternative#1#2% \rmsl
+ {%\message{[7 #1 #2]}%
+ \edef\fontstyle{#1}%
+ \dosetcurrentfontalternative{#2}%
+ \synchronizefont}
+
+\def\setcurrentfontstylesize#1#2% \rmsla
+ {%\message{[8 #1 #2]}%
+ \edef\fontstyle{#1}%
+ \dosetcurrentfontsize{#2}%
+ \synchronizefont}
+
+\def\setcurrentfontalternativesize#1#2% \sla
+ {%\message{[9 #1 #2]}%
+ \dosetcurrentfontalternative{#1}%
+ \dosetcurrentfontsize{#2}%
+ \synchronizefont}
+
+\def\setcurrentfontstylealternativesize#1#2#3% \rmsla
+ {%\message{[10 #1 #2 #3]}%
+ \edef\fontstyle{#1}%
+ \dosetcurrentfontalternative{#2}%
+ \dosetcurrentfontsize{#3}%
+ \synchronizefont}
+
+%D In principle one can assign alternative fallback routines.
+%D Some day we will.
+
+\newtoks\fontstrategies
+\newif\iftryingfont
+
+\let\fontstrategy\relax
+
+% \def\synchronizefont
+% {\tryingfonttrue
+% \ifx\fontclass\empty\else
+% \global\let\fontstrategy\dofontclassstrategy
+% \the\fontstrategies \relax % \relax still needed ?
+% \fi
+% \iftryingfont
+% \global\let\fontstrategy\dofontstrategy
+% \the\fontstrategies \relax % \relax still needed ?
+% \fi
+% \autofontsizefalse
+% \ifskipfontcharacteristics
+% \setfontcharacteristics
+% \the\everyfontswitch
+% \fi}
+
+% \def\dofontstrategy#1#2#3#4#5%
+% {\ifcsname#2#3#4#5\endcsname
+% #1\csname#2#3#4#5\endcsname \tryingfontfalse
+% \fi}
+
+% \def\dofontclassstrategy#1#2#3#4#5%
+% {\ifcsname\fontclass#2#3#4#5\endcsname
+% #1\csname\fontclass#2#3#4#5\endcsname \tryingfontfalse
+% \fi}
+
+% \def\synchronizefont % we can have dups i.e. no need to let fontstrategy
+% {\tryingfonttrue
+% \ifx\fontclass\empty\else
+% \global\let\fontstrategy\dofontclassstrategy
+% \applyfontstrategies
+% \fi
+% \iftryingfont
+% \global\let\fontstrategy\dofontstrategy
+% \applyfontstrategies
+% \fi
+% \autofontsizefalse
+% \ifskipfontcharacteristics
+% \setfontcharacteristics
+% \the\everyfontswitch
+% \fi}
+
+\def\synchronizefont % we can have dups i.e. no need to let fontstrategy
+ {\tryingfonttrue
+ \ifx\fontclass\empty
+ \applyfontstrategies
+ \else
+ \applyfontclassstrategies
+ \fi
+ \autofontsizefalse
+ \ifskipfontcharacteristics
+ \setfontcharacteristics
+ \the\everyfontswitch
+ \fi}
+
+% \appendtoks \iftryingfont \fontstrategy \autofontsizefalse % --- --- --- --- % pt tt bf a
+% \fontbody \fontstyle \fontalternative \fontsize
+% \fi \to \fontstrategies
+%
+% \appendtoks \iftryingfont \fontstrategy \autofontsizetrue % --- --- --- def % pt tt bf
+% \fontbody \fontstyle \fontalternative \defaultfontsize
+% \fi \to \fontstrategies
+%
+% \appendtoks \iftryingfont \fontstrategy \autofontsizetrue % --- --- def --- % pt tt tf a
+% \fontbody \fontstyle \defaultfontalternative \fontsize
+% \fi \to \fontstrategies
+%
+% \appendtoks \iftryingfont \fontstrategy \autofontsizetrue % --- --- def def % pt tt tf
+% \fontbody \fontstyle \defaultfontalternative \defaultfontsize
+% \fi \to \fontstrategies
+%
+% \appendtoks \iftryingfont \fontstrategy \autofontsizefalse % --- def def def % pt rm tf
+% \fontbody \defaultfontstyle \defaultfontalternative \defaultfontsize
+% \fi \to \fontstrategies
+%
+% \appendtoks \iftryingfont \fontstrategy \autofontsizetrue % def def def def % rm tf
+% \defaultfontbody \defaultfontstyle \defaultfontalternative \defaultfontsize
+% \fi \to \fontstrategies
+
+% \def\fontstrategiesa % --- --- --- --- % pt tt bf a
+% {\fontstrategy \autofontsizefalse \fontbody \fontstyle \fontalternative \fontsize
+% \iftryingfont \fontstrategiesb \fi}
+% \def\fontstrategiesb % --- --- --- def % pt tt bf
+% {\fontstrategy \autofontsizetrue \fontbody \fontstyle \fontalternative \defaultfontsize
+% \iftryingfont \fontstrategiesc \fi}
+% \def\fontstrategiesc % --- --- def --- % pt tt tf a
+% {\fontstrategy \autofontsizetrue \fontbody \fontstyle \defaultfontalternative \fontsize
+% \iftryingfont \fontstrategiesd \fi}
+% \def\fontstrategiesd % --- --- def def % pt tt tf
+% {\fontstrategy \autofontsizetrue \fontbody \fontstyle \defaultfontalternative \defaultfontsize
+% \iftryingfont \fontstrategiese \fi}
+% \def\fontstrategiese % --- def def def % pt rm tf
+% {\fontstrategy \autofontsizefalse \fontbody \defaultfontstyle \defaultfontalternative \defaultfontsize
+% \iftryingfont \fontstrategiesf \fi}
+% \def\fontstrategiesf % def def def def % rm tf
+% {\fontstrategy \autofontsizetrue \defaultfontbody \defaultfontstyle \defaultfontalternative \defaultfontsize}
+
+% \fontstrategies {\fontstrategiesa}
+% \let\applyfontstrategies\fontstrategiesa
+
+% \def\fontclassstrategiesa % --- --- --- --- % pt tt bf a
+% {\dofontclassstrategy \autofontsizefalse \fontbody \fontstyle \fontalternative \fontsize
+% \iftryingfont \fontclassstrategiesb \fi}
+% \def\fontclassstrategiesb % --- --- --- def % pt tt bf
+% {\dofontclassstrategy \autofontsizetrue \fontbody \fontstyle \fontalternative \defaultfontsize
+% \iftryingfont \fontclassstrategiesc \fi}
+% \def\fontclassstrategiesc % --- --- def --- % pt tt tf a
+% {\dofontclassstrategy \autofontsizetrue \fontbody \fontstyle \defaultfontalternative \fontsize
+% \iftryingfont \fontclassstrategiesd \fi}
+% \def\fontclassstrategiesd % --- --- def def % pt tt tf
+% {\dofontclassstrategy \autofontsizetrue \fontbody \fontstyle \defaultfontalternative \defaultfontsize
+% \iftryingfont \fontclassstrategiese \fi}
+% \def\fontclassstrategiese % --- def def def % pt rm tf
+% {\dofontclassstrategy \autofontsizefalse \fontbody \defaultfontstyle \defaultfontalternative \defaultfontsize
+% \iftryingfont \fontclassstrategiesf \fi}
+% \def\fontclassstrategiesf % def def def def % rm tf
+% {\dofontclassstrategy \autofontsizetrue \defaultfontbody \defaultfontstyle \defaultfontalternative \defaultfontsize}
+
+\def\fontclassstrategiesa % --- --- --- --- % pt tt bf a
+ {\ifcsname\fontclass\fontbody \fontstyle \fontalternative \fontsize\endcsname
+ \autofontsizefalse
+ \csname\fontclass\fontbody \fontstyle \fontalternative \fontsize\endcsname
+ \else
+ \expandafter\fontclassstrategiesb
+ \fi}
+
+\def\fontclassstrategiesb % --- --- --- def % pt tt bf
+ {\ifcsname\fontclass\fontbody \fontstyle \fontalternative \defaultfontsize\endcsname
+ \autofontsizetrue
+ \csname\fontclass\fontbody \fontstyle \fontalternative \defaultfontsize\endcsname
+ \else
+ \expandafter\fontclassstrategiesc
+ \fi}
+
+\def\fontclassstrategiesc % --- --- def --- % pt tt tf a
+ {\ifcsname\fontclass\fontbody \fontstyle \defaultfontalternative \fontsize\endcsname
+ \autofontsizetrue
+ \csname\fontclass\fontbody \fontstyle \defaultfontalternative \fontsize\endcsname
+ \else
+ \expandafter\fontclassstrategiesd
+ \fi}
+
+\def\fontclassstrategiesd % --- --- def def % pt tt tf
+ {\ifcsname\fontclass\fontbody \fontstyle \defaultfontalternative \defaultfontsize\endcsname
+ \autofontsizetrue
+ \csname\fontclass\fontbody \fontstyle \defaultfontalternative \defaultfontsize\endcsname
+ \else
+ \expandafter\fontclassstrategiese
+ \fi}
+
+\def\fontclassstrategiese % --- def def def % pt rm tf
+ {\ifcsname\fontclass\fontbody \defaultfontstyle \defaultfontalternative \defaultfontsize\endcsname
+ \autofontsizefalse
+ \csname\fontclass\fontbody \defaultfontstyle \defaultfontalternative \defaultfontsize\endcsname
+ \else
+ \expandafter\fontclassstrategiesf
+ \fi}
+
+\def\fontclassstrategiesf % def def def def % rm tf
+ {\ifcsname\fontclass\defaultfontbody \defaultfontstyle \defaultfontalternative \defaultfontsize\endcsname
+ \autofontsizetrue
+ \csname\fontclass\defaultfontbody \defaultfontstyle \defaultfontalternative \defaultfontsize\endcsname
+ \else
+ \expandafter\fontstrategiesa
+ \fi}
+
+% no class
+
+% \def\fontstrategiesa % --- --- --- --- % pt tt bf a
+% {\dofontstrategy \autofontsizefalse \fontbody \fontstyle \fontalternative \fontsize
+% \iftryingfont \fontstrategiesb \fi}
+% \def\fontstrategiesb % --- --- --- def % pt tt bf
+% {\dofontstrategy \autofontsizetrue \fontbody \fontstyle \fontalternative \defaultfontsize
+% \iftryingfont \fontstrategiesc \fi}
+% \def\fontstrategiesc % --- --- def --- % pt tt tf a
+% {\dofontstrategy \autofontsizetrue \fontbody \fontstyle \defaultfontalternative \fontsize
+% \iftryingfont \fontstrategiesd \fi}
+% \def\fontstrategiesd % --- --- def def % pt tt tf
+% {\dofontstrategy \autofontsizetrue \fontbody \fontstyle \defaultfontalternative \defaultfontsize
+% \iftryingfont \fontstrategiese \fi}
+% \def\fontstrategiese % --- def def def % pt rm tf
+% {\dofontstrategy \autofontsizefalse \fontbody \defaultfontstyle \defaultfontalternative \defaultfontsize
+% \iftryingfont \fontstrategiesf \fi}
+% \def\fontstrategiesf % def def def def % rm tf
+% {\dofontstrategy \autofontsizetrue \defaultfontbody \defaultfontstyle \defaultfontalternative \defaultfontsize}
+
+\def\fontstrategiesa % --- --- --- --- % pt tt bf a
+ {\ifcsname\fontbody \fontstyle \fontalternative \fontsize\endcsname
+ \autofontsizefalse
+ \csname\fontbody \fontstyle \fontalternative \fontsize\endcsname
+ \else
+ \expandafter\fontstrategiesb
+ \fi}
+
+\def\fontstrategiesb % --- --- --- --- % pt tt bf a
+ {\ifcsname\fontbody \fontstyle \fontalternative \defaultfontsize\endcsname
+ \autofontsizetrue
+ \csname\fontbody \fontstyle \fontalternative \defaultfontsize\endcsname
+ \else
+ \expandafter\fontstrategiesc
+ \fi}
+
+\def\fontstrategiesc % --- --- --- --- % pt tt bf a
+ {\ifcsname\fontbody \fontstyle \defaultfontalternative \fontsize\endcsname
+ \autofontsizetrue
+ \csname\fontbody \fontstyle \defaultfontalternative \fontsize\endcsname
+ \else
+ \expandafter\fontstrategiesd
+ \fi}
+
+\def\fontstrategiesd % --- --- --- --- % pt tt bf a
+ {\ifcsname\fontbody \fontstyle \defaultfontalternative \defaultfontsize\endcsname
+ \autofontsizetrue
+ \csname\fontbody \fontstyle \defaultfontalternative \defaultfontsize\endcsname
+ \else
+ \expandafter\fontstrategiese
+ \fi}
+
+\def\fontstrategiese % --- --- --- --- % pt tt bf a
+ {\ifcsname\fontbody \defaultfontstyle \defaultfontalternative \defaultfontsize\endcsname
+ \autofontsizefalse
+ \csname\fontbody \defaultfontstyle \defaultfontalternative \defaultfontsize\endcsname
+ \else
+ \expandafter\fontstrategiesf
+ \fi}
+
+\def\fontstrategiesf % --- --- --- --- % pt tt bf a
+ {\ifcsname\defaultfontbody \defaultfontstyle \defaultfontalternative \defaultfontsize\endcsname
+ \autofontsizetrue
+ \csname\defaultfontbody \defaultfontstyle \defaultfontalternative \defaultfontsize\endcsname
+ \fi}
+
+\let\applyfontstrategies \fontstrategiesa
+\let\applyfontclassstrategies\fontclassstrategiesa
+
+%D Let's synchronize:
+
+\newif\ifsynchronizefonts \synchronizefontstrue
+
+\prependtoks
+ \ifsynchronizefonts
+ \synchronizemath
+ \synchronizefont % problem: syncs last font
+ \fi
+\to \everybodyfont
+
+%D Setting the normal sizes as well as the x and xx smaller
+%D sizes is accomplished by the next set of macros. When in
+%D math mode, the commands \type{\tx} and \type{\txx} are
+%D just a switch to the script and double script styles, but
+%D in text mode the values defined by the bodyfontenvironment are
+%D used. Here we also set \type{\currentxfontsize}.
+
+\def\dosetcurrentfontxxxalternative#1#2#3#4%
+ {\chardef\currentxfontsize#2\relax
+ \ifmmode
+ #4%
+ \else\ifcsname\bodyfontvariable{\normalizedbodyfontsize#3}\endcsname
+ \setcurrentfontbodyalternative{\csname\bodyfontvariable\normalizedbodyfontsize#3\endcsname}{#1}%
+ \fi\fi}
+
+\def\setcurrentfontxalternative#1%
+ {\dosetcurrentfontxxxalternative{#1}1\c!x\scriptstyle
+ \let\tx\txx}
+
+\def\setcurrentfontxxalternative#1%
+ {\dosetcurrentfontxxxalternative{#1}2\c!xx\scriptscriptstyle
+ \let\tx\empty
+ \let\txx\empty}
+
+\def\checknestedxfontsize % option
+ {\ifcase\currentxfontsize\else\ifx\fontsize\empty\else
+ \chardef\currentxfontsize\zeropoint
+ \let\fontsize\empty
+ \let\tx\normaltx
+ \let\txx\normaltxx
+ \fi\fi}
+
+\def\setcurrentfontxalternative#1%
+ {\checknestedxfontsize
+ \dosetcurrentfontxxxalternative{#1}1\c!x\scriptstyle
+ \let\tx\txx}
+
+\def\setcurrentfontxxalternative#1%
+ {\checknestedxfontsize
+ \dosetcurrentfontxxxalternative{#1}2\c!xx\scriptscriptstyle
+ \let\tx\empty
+ \let\txx\empty}
+
+% This alterative is not really needed, but for old time's sake
+% we keep it there. We can speed it up when needed.
+
+\def\setcurrentfontxstylealternative #1{\csname#1\endcsname\tx}
+\def\setcurrentfontxxstylealternative#1{\csname#1\endcsname\txx}
+
+%D These macros also show us that when we call for \type{\tx},
+%D this macro is redefined to be \type{\txx}. Therefore calls
+%D like:
+%D
+%D \startbuffer
+%D {small \tx is \tx beautiful}
+%D {small \tx is \txx beautiful}
+%D {small \txx is \tx beautiful}
+%D {small \txx is \txx beautiful}
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D result in:
+%D
+%D \startvoorbeeld
+%D \startlines
+%D \getbuffer
+%D \stoplines
+%D \stopvoorbeeld
+%D
+%D Setting the main size involves the style list and therefore
+%D takes a bit more time. Keep in mind that the fontsize is
+%D represented by a character or empty.
+
+\unexpanded\def\tx {\setcurrentfontxalternative \fontalternative}
+\unexpanded\def\txx{\setcurrentfontxxalternative\fontalternative}
+
+\let\normaltx \tx
+\let\normaltxx\txx
+
+%D \macros
+%D {definefontstyle}
+%D
+%D When setting of switching the overall style we can use the
+%D short identifier like rm and ss, but when defined we can
+%D also use more verbose names like roman or sansserif. Such
+%D names are defined by:
+%D
+%D \starttyping
+%D \definefontstyle [serif,rm] [rm]
+%D \definefontstyle [sansserif,ss] [ss]
+%D \stoptyping
+
+\def\dodefinefontstyle[#1][#2]%
+ {\rawdoifinsetelse{#2}{\fontstylelist}
+ {%\debuggerinfo\m!fonts{unknown style #2}%
+ }
+ {%\debuggerinfo\m!fonts8{#2\space (#1)}%
+ \addtocommalist{#2}\fontstylelist}%
+ % check kan hier
+ \def\docommand##1%
+ {\setvalue{\@shortstyle@##1}{#2}%
+ \setvalue{\@style@##1}{\csname#2\endcsname}}%
+ \processcommalist[#1]\docommand}
+
+\def\definefontstyle
+ {\dodoubleargument\dodefinefontstyle}
+
+\def\setfontstyle#1#2% #1:name (roman, romaan) #2:style (rm)
+ {\edef\fontstyle{#1}%
+ \checkfontnamecombinations
+ \setcurrentfontstyle\normalizedbodyfontsize}
+
+%D The previous macros show that it's is not always
+%D neccessary to define the whole bunch of fonts, take for
+%D instance the sequence:
+%D
+%D \starttyping
+%D \setupbodyfont
+%D [ams]
+%D
+%D \definebodyfont [24pt] [mm]
+%D [ma=msam10 at 24pt,
+%D mb=msbm10 at 24pt]
+%D
+%D \switchtobodyfont
+%D [24pt]
+%D
+%D This is a 24pt $\blacktriangleleft$
+%D \stoptyping
+%D
+%D Here we didn't define the 24 point bodyfont environment, so
+%D it's defined automatically. Of course one can always use the
+%D \TEX\ primitive \type{\font} to switch to whatever font
+%D needed.
+
+%D When asking for a complete font switch, for instance from 10
+%D to 12~points, the next macro does the job. First we
+%D normalize the size, next we define the current range of
+%D text, script and scriptscript sizes, then we set the text
+%D fonts and the math families and finally we activate the
+%D default typeface and also set the font specific parameters
+%D assigned to \type{\everybodyfont}
+
+\def\dosetbodyfontface#1#2%
+ {\edef#1{\csname\bodyfontvariable\normalizedbodyfontsize#2\endcsname}}
+
+\def\docompletefontswitch[#1]%
+ {\bodyfontsize#1\relax
+ \dimensiontocount\bodyfontsize\bodyfontpoints % rounded, still used in m-chart
+ \edef\bodyfontfactor{\withoutpt\the\bodyfontsize}%
+ \normalizebodyfontsize\bodyfontsize\to\normalizedbodyfontsize
+ \dosetbodyfontface \textface \s!text
+ \dosetbodyfontface \scriptface \s!script
+ \dosetbodyfontface \scriptscriptface \s!scriptscript}
+
+\docompletefontswitch[12pt] % init
+
+%D \macros
+%D {setupbodyfont,switchtobodyfont}
+%D
+%D The next two macros are user ones. With \type{\setupbodyfont}
+%D one can set the document bodyfont size, font family, style
+%D and/or options defined in files, for example:
+%D
+%D \starttyping
+%D \setupbodyfont[cmr,ams,12pt,roman]
+%D \stoptyping
+%D
+%D This command affects the document as a whole: text, headers
+%D and footers. The second macro however affects only the text:
+%D
+%D \starttyping
+%D \switchtobodyfont[10pt]
+%D \stoptyping
+%D
+%D So we've got:
+%D
+%D \showsetup{setupbodyfont}
+%D \showsetup{switchtobodyfont}
+%D
+%D Both macros look alike. The second one also has to take
+%D all kind of keywords into account.
+
+\ifx\saveinterlinespace \undefined \let\saveinterlinespace \relax \fi
+\ifx\restoreinterlinespace\undefined \let\restoreinterlinespace\relax \fi
+
+\chardef\bodyfontsetstate=0
+
+\definecomplexorsimple\setupbodyfont
+
+\def\simplesetupbodyfont
+ {\restoreglobalbodyfont
+ \saveinterlinespace}
+
+\def\complexsetupbodyfont[#1]%
+ {\doifsomething{#1}
+ {\dosetfont1{#1}%
+ \globalbodyfontsize\localbodyfontsize
+ \normalizebodyfontsize\globalbodyfontsize\to\normalizedglobalbodyfontsize
+ \let\globalfontstyle\fontstyle
+ \ifloadingfonts\else
+ \the\everybodyfont
+ \the\everyglobalbodyfont
+ \saveinterlinespace
+ \fi}}
+
+\unexpanded\def\switchtobodyfont[#1]%
+ {\doifsomething{#1}
+ {\ifcsname\??ft\normalizedbodyfontsize\interfaced{#1}\endcsname
+ \setbodyfontstep{#1}% so we have a fast [small] switch
+ \else
+ \dosetfont0{#1}%
+ \fi
+ \the\everybodyfont}} % indeed needed in case nothing is executed
+
+%D The following alternative is meant for math||to||text
+%D switching and will be optimized.
+
+\def\fastswitchtobodyfont#1%
+ {\ifcsname\??ft\normalizedbodyfontsize#1\endcsname
+ \edef\futurebodyfontsize{\csname\??ft\normalizedbodyfontsize#1\endcsname}%
+ \ifcsname\@size@\futurebodyfontsize\endcsname
+ \csname\@size@\futurebodyfontsize\endcsname
+ \localbodyfontsize\futurebodyfontsize\relax
+ \fi
+ \fi
+ \csname\@style@\fontstyle\endcsname
+ \the\everybodyfont}
+
+%D \starttyping
+%D $\cases{& \ccaron}$ $x=\hbox{\ccaron $x=\hbox{\ccaron}$}$
+%D \stoptyping
+
+\def\setfontcharacteristics
+ {\the\everyfont}
+
+%D Predefined:
+
+% \installfontfeature[otf][tlig]
+% \installfontfeature[otf][trep]
+
+%D tricky but ok:
+
+\appendtoks\ctxlua{fonts.tfm.cleanup()}\to\everyshipout
+
+%D Todo:
+
+% \def\os{\groupedcommand{\setfontfeature{oldstyle}}{}}
+
+%D Experimental:
+
+\def\definefontfeature
+ {\dotripleargument\dodefinefontfeature}
+
+\def\dodefinefontfeature[#1][#2][#3]%
+ {\global\expandafter\chardef\csname\??fq=#1\endcsname
+ \ctxlua{tex.write(fonts.define.specify.preset_context("#1","#2","#3"))}\relax}
+
+\definefontfeature
+ [default]
+ [%mode=node,%
+ liga=yes,kern=yes,tlig=yes,trep=yes] % texligatures=yes,texquotes=yes
+
+\definefontfeature
+ [smallcaps]
+ [%mode=node,%
+ liga=yes,kern=yes,tlig=yes,trep=yes,smcp=yes] % texligatures=yes,texquotes=yes
+
+\definefontfeature
+ [oldstyle]
+ [%mode=node,%
+ liga=yes,kern=yes,tlig=yes,trep=yes,onum=yes] % texligatures=yes,texquotes=yes
+
+\definefontfeature % can be used for type1 fonts
+ [complete]
+ [liga=yes,kern=yes,compose=yes,tlig=yes,trep=yes]
+
+\definefontfeature
+ [arabic]
+ [mode=node,language=dflt,script=arab,ccmp=yes,
+ init=yes,medi=yes,fina=yes,isol=yes,
+ liga=yes,dlig=yes,rlig=yes,clig=yes,calt=yes,
+ mark=yes,mkmk=yes,kern=yes,curs=yes]
+
+\definefontfeature
+ [none]
+ [mode=none,features=off]
+
+\definefontfeature
+ [virtualmath]
+ [mode=base,liga=yes,kern=yes,tlig=yes,trep=yes]
+
+% for the moment here, this will change but we need it for mk.tex
+
+\definefontfeature[math-text] [virtualmath][ssty=no]
+\definefontfeature[math-script] [virtualmath][ssty=1,mathsize=yes]
+\definefontfeature[math-scriptscript][virtualmath][ssty=2,mathsize=yes]
+
+\definefontfeature [math-nostack-text] [math-text] [nostackmath=yes]
+\definefontfeature [math-nostack-script] [math-script] [nostackmath=yes]
+\definefontfeature [math-nostack-scriptscript][math-scriptscript][nostackmath=yes]
+
+% \definefontfeature[mathtext] [math-text]
+% \definefontfeature[mathscript] [math-script]
+% \definefontfeature[mathscriptscript] [math-scriptscript]
+
+%D Also new:
+
+% handy for manuals
+
+\def\otfchar#1{\ctxlua{fonts.otf.char("#1")}}
+
+%D: We cannot yet inherit because no colors are predefined.
+
+\definecolor[font:init][r=.75]
+\definecolor[font:medi][g=.75]
+\definecolor[font:fina][b=.75]
+\definecolor[font:isol][r=.75,g=.75] % [y=.75]
+\definecolor[font:mark][r=.75,b=.75] % [m=.75]
+\definecolor[font:rest][g=.75,b=.75] % [c=.75]
%D Experimental!
@@ -74,7 +2785,7 @@
{\dodoubleargument\doinstallfontfeature}
\def\doinstallfontfeature[#1][#2]%
- {\ctxlua{fonts.install_feature("#1","#2")}}
+ {\writestatus\m!fonts{installing font features was experimental}} % \ctxlua{fonts.install_feature("#1","#2")}}
%D Not yet in \MKII.
@@ -84,41 +2795,1227 @@
\def\dofontfeatureslist[#1][#2]% todo: arg voor type
{\ctxlua{tex.sprint(tex.ctxcatcodes,fonts.define.specify.context_tostring("#1","otf","\luaescapestring{#2}","yes","no",true,{"number"}))}}
-\def\definefontlocal#1%
- {\expandafter\font\csname#1\endcsname\lastfontname\relax}
-
-\def\definefontglobal#1%
- {\global\expandafter\font\csname#1:\endcsname\lastfontname\relax}
-
\attribute\zerocount\zerocount % first in list, so fast match
-% \def\featureattribute#1{\ctxlua{tex.sprint(fonts.define.specify.context_number("#1"))}}
-% \def\setfontfeature #1{\attribute\zerocount\featureattribute{#1}\relax}
-% \def\resetfontfeature#1{\attribute\zerocount\zerocount}
-
\let\currentfeature\empty
+% ! ! ! very experimental, some test code for idris advanced features ! ! !
+%
+% \startbuffer
+% \definefontfeature[smallcaps][smallcaps][script=latn]
+% \definefontfeature[oldstyle] [oldstyle] [script=latn]
+%
+% \definedfont[name:cambria at 15pt]
+%
+% Hello there {\setff{smallcaps}capped 123 \setff{oldstyle}123!} \blank
+% Hello there {\addff{smallcaps}capped 123 \addff{oldstyle}123!} \blank
+% Hello there {\addff{smallcaps}capped \subff{smallcaps}normal} \blank
+% \stopbuffer
+%
+% \typebuffer \getbuffer
+
\def\featureattribute#1{\ctxlua{tex.sprint(fonts.define.specify.context_number("#1"))}}
\def\setfontfeature #1{\edef\currentfeature{#1}\attribute\zerocount\featureattribute{#1}\relax}
-\def\resetfontfeature#1{\let\currentfeature\empty\attribute\zerocount\zerocount}
+\def\resetfontfeature#1{\let\currentfeature\empty\attribute\zerocount\zerocount} % initial value
+
+\def\addfontfeaturetoset #1{\ctxlua{fonts.withset("#1", 1)}}
+\def\subtractfontfeaturefromset #1{\ctxlua{fonts.withset("#1",-1)}}
+\def\addfontfeaturetofont #1{\ctxlua{fonts.withfnt("#1", 2)}}
+\def\subtractfontfeaturefromfont#1{\ctxlua{fonts.withfnt("#1",-2)}}
+
+\let\setff\setfontfeature
+\let\addfs\addfontfeaturetoset
+\let\subfs\subtractfontfeaturefromset
+\let\addff\addfontfeaturetofont
+\let\subff\subtractfontfeaturefromfont
+
+%D The next auxilliary macro is an alternative to \type
+%D {\fontname}.
+
+% \def\purefontname#1{\expandafter\splitoffpurefontname\fontname#1 \\}
+%
+% extra level is needed:
+
+\def\purefontname#1{\@EA\splitoffpurefontname\@EA{\@EA{\@EA\unstringed\fontname#1}} \\}
+
+\def\splitoffpurefontname#1 #2\\{#1}
+
+%D \macros
+%D {switchstyleonly}
+%D
+%D For switching a style but keeping the alternative, there
+%D is:
+%D
+%D \starttyping
+%D {\bf text \switchstyleonly\ss text}
+%D {\bf text \switchstyleonly[ss]text}
+%D {\sl text \switchstyleonly[sansserif]text}
+%D \stoptyping
+
+\definecomplexorsimple\switchstyleonly
+
+\def\simpleswitchstyleonly#1% stupid version
+ {\complexswitchstyleonly[\checkedstrippedcsname#1]}
+
+\def\complexswitchstyleonly[#1]% todo : check
+ {\setcurrentfontstyle{\csname\@shortstyle@#1\endcsname}%
+ \the\everybodyfont} % needed ?
+
+%D \macros
+%D {os}
+%D
+%D In good old \TEX, the old style numerals were often taken
+%D from the math fonts. No longer.
+
+\definefontfeature
+ [just-os]
+ [mode=node,onum=yes]
+
+% \def\sc{\setfontfeature{smallcaps}}
+\def\os{\setfontfeature{just-os}}
+
+%D Code for swithcing to fraktur and script has also been
+%D changed. We now have an alphabet switcher.
+
+\ifx\mathtext\undefined \let\mathtext\hbox \fi
+
+%D \macros
+%D {definebodyfontswitch}
+%D
+%D \PLAIN\ \TEX\ defines some macro's like \type{\tenpoint}
+%D to switch to a specific bodyfontsize. Just for the sake of
+%D compatibility we can define them like:
+%D
+%D \starttyping
+%D \definebodyfontswitch [twelvepoint] [12pt]
+%D \stoptyping
+%D
+%D We don't support language specific synonyms here, mainly
+%D because \PLAIN\ \TEX\ is english anyway.
+
+\def\dodefinebodyfontswitch[#1][#2]%
+ {\def\docommand##1{\setvalue{##1}{\switchtobodyfont[#2]}}%
+ \processcommalist[#1]\docommand}
+
+\def\definebodyfontswitch
+ {\dodoubleargument\dodefinebodyfontswitch}
+
+%D \macros
+%D {setsmallbodyfont,setmainbodyfont,setbigbodyfont}
+%D
+%D When we're typesetting at for instance 10pt, we can call for
+%D the \type{small} as well as the \type{big} alternative,
+%D related to this main size, using \type{\switchtobodyfont[small]}.
+%D The three alternatives can be activated by the next three
+%D system calls and are defined by the bodyfontenvironment.
+
+\let\fontstep\empty % we can use \fontstep for tracing purposes
+
+\def\setbodyfontstep#1%
+ {\edef\fontstep{\csname\bodyfontvariable\normalizedbodyfontsize\interfaced{#1}\endcsname}%
+ \doswitchpoints[\fontstep]%
+ \doswitchstyle[\fontstyle]}
+
+\unexpanded\def\setsmallbodyfont{\setbodyfontstep\v!small\the\everybodyfont}
+\unexpanded\def\setbigbodyfont {\setbodyfontstep\v!big \the\everybodyfont}
+
+\unexpanded\def\setmainbodyfont
+ {\doswitchpoints[\normalizedbodyfontsize]%
+ \doswitchstyle[\fontstyle]%
+ \the\everybodyfont
+ \the\everyglobalbodyfont
+ \saveinterlinespace}
+
+%D \macros
+%D {restoreglobalbodyfont}
+%D
+%D Users can set whatever font available while typesetting text.
+%D Pagenumbers, footers, headers etc. however must be typeset
+%D in the main bodyfont and style of the document. Returning to
+%D the global state can be done with the next macro:
+
+\let\globalfontstyle\c!rm
+
+\def\fullrestoreglobalbodyfont
+ {\let\fontsize\defaultfontsize
+ \let\fontbody\defaultfontbody
+ \chardef\currentxfontsize\zerocount
+ \let\fontclass\globalfontclass
+ \doswitchpoints[\normalizedglobalbodyfontsize]%
+ \doswitchstyle[\globalfontstyle]%
+ \redoconvertfont % just in case a pagebreak occurs
+ \tf
+ \the\everybodyfont
+ \the\everyglobalbodyfont
+ \saveinterlinespace}
+
+\def\partialrestoreglobalbodyfont
+ {\let\fontsize\defaultfontsize
+ \let\fontbody\defaultfontbody
+ \chardef\currentxfontsize\zerocount
+ \redoconvertfont
+ \tf
+ \saveinterlinespace}
+
+\def\restoreglobalbodyfont % ook style etc
+ {\ifx\fontclass\globalfontclass
+ \ifx\fontstyle\globalfontstyle
+ \ifx\normalizedbodyfontsize\normalizedglobalbodyfontsize
+ \partialrestoreglobalbodyfont
+ \else
+ \fullrestoreglobalbodyfont
+ \fi
+ \else
+ \fullrestoreglobalbodyfont
+ \fi
+ \else
+ \fullrestoreglobalbodyfont
+ \fi}
+
+% in case of troubles: \let\restorebodyfont\fullrestoreglobalbodyfont
+
+%D This macro has to be called when entering the pagebody
+%D handling routine as well as the footnote insert routine.
+%D Users can access this feature |<|for instance when one wants
+%D to typeset tables and alike in the main bodyfont and style
+%D while the running text is temporary set to a smaller one|>|
+%D by saying \type{\switchtobodyfont[global]}.
+
+%D \macros
+%D {rasterfont}
+%D
+%D There are (at the moment) two situations in which we want to
+%D have fast access to a particular font. When we are using
+%D \TEX\ to typeset rasters, we use small {\rasterfont.}'s
+%D (a rather small period indeed), the same as \PICTEX\ uses
+%D for drawing purposes.
+
+\definefont [rasterfont] [Serif at 5pt]
+
+%D \macros
+%D {infofont}
+%D
+%D The second situation occurs when we enable the info mode,
+%D and put all kind of status information in the margin. We
+%D don't want huge switches to the main bodyfont and style, so
+%D here too we use a direct method.
+
+\let\infofont\relax % satisfy dep checker
+
+\definefont [infofont] [Mono at 6pt] % todo \the\everybodyfont
+
+%D \macros
+%D {definealternativestyle}
+%D
+%D In the main modules we are going to implement lots of
+%D parameterized commands and one of these parameters will
+%D concern the font to use. To suit consistent use of fonts we
+%D here implement a mechanism for defining the keywords that
+%D present a particular style or alternative.
+%D
+%D \starttyping
+%D \definealternativestyle [keywords] [\style] [\nostyle]
+%D \stoptyping
+%D
+%D The first command is used in the normal textflow, while the
+%D second command takes care of headings and alike. Consider
+%D the next two definitions:
+%D
+%D \starttyping
+%D \definealternativestyle [bold] [\bf] []
+%D \definealternativestyle [cap] [\cap] [\cap]
+%D \stoptyping
+%D
+%D A change \type{\bf} in a heading which is to be set in
+%D \type{\tfd} does not look that well, so therefore we leave
+%D the second argument of \type{\definealternativestyle} empty.
+%D When we capatalize characters using the pseudo small cap
+%D command \type{\cap}, we want this to take effect in both
+%D text and headings, which is accomplished by assigning both
+%D arguments.
+
+\def\dodefinealternativestyle[#1][#2][#3]%
+ {\def\docommand##1%
+ {\ifcsname##1\endcsname\else\setvalue{##1}{\groupedcommand{#2}{}}\fi
+ \setvalue{\@letter@ ##1}{#2}%
+ \setvalue{\@noletter@##1}{#3}}%
+ \processcommalist[#1]\docommand}
+
+\def\definealternativestyle
+ {\dotripleempty\dodefinealternativestyle}
+
+\def\definestyle{\definealternativestyle}
+
+%D Maybe too geneneric, but probably ok is the following. (Maybe one
+%D day we will use a dedicated grouped command for styles.)
\appendtoks
- \setfontfeature\currentfeature
-\to \everylanguage
+ \let\groupedcommand\thirdofthreearguments
+\to \simplifiedcommands
-%D Simpler:
+%D This command also defines the keyword as command. This means
+%D that the example definition of \type{bold} we gave before,
+%D results in a command \type{\bold} which can be used as:
+%D
+%D \startbuffer
+%D He's a \bold{bold} man with a {\bold head}.
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D or
+%D
+%D \startvoorbeeld
+%D \definealternativestyle[bold][\bf][]\getbuffer
+%D \stopvoorbeeld
+%D
+%D Such definitions are of course unwanted for \type{\cap}
+%D because this would result in an endless recursive call.
+%D Therefore we check on the existance of both the command and
+%D the substitution. The latter is needed because for instance
+%D \type{\type} is an entirely diferent command. That command
+%D handles verbatim, while the style command would just switch
+%D to teletype font. This is just an example of a tricky
+%D naming coincidence.
-\def\updatefontparameters
- {\edef\@@fonthandling{\truefontdata\somefontname\s!handling}%
- \edef\@@fontfeatures{\truefontdata\fontfile \s!features}%
- \edef\@@fontskewchar{\truefontdata\fontfile \s!skewchar}}
+%D \macros
+%D {doconvertfont,noconvertfont,
+%D dontconvertfont,redoconvertfont}
+%D
+%D After having defined such keywords, we can call for them by
+%D using
+%D
+%D \starttyping
+%D \doconvertfont{keyword}{text}
+%D \stoptyping
+%D
+%D We deliberately pass an argument. This enables us to
+%D assign converters that handle one argument, like
+%D \type{\cap}.
+%D
+%D By default the first specification is used to set the style,
+%D exept when we say \type{\dontconvertfont}, after which the
+%D second specification is used. We can also directly call for
+%D \type{\noconvertfont}. In nested calls, we can restore the
+%D conversion by saying \type{\redoconvertfont}.
-\def\setfontcharacteristics
- {\the\everyfont}
+% subtle ... \expandafter is needed else problems with lookahead caps
-%D Predefined:
+\def\@@dodoconvertfont{\csname\@letter@ \p!defined\expandafter\endcsname\gobbleoneargument}
+\def\@@donoconvertfont{\csname\@noletter@\p!defined\endcsname}
+\def\@@redoconvertfont{\csname \p!defined\expandafter\endcsname\gobbleoneargument}
-% \installfontfeature[otf][tlig]
-% \installfontfeature[otf][trep]
+% beware: p!defined can contain crap like \edef crap {...} and such
+% so we need to pass #1 as well
+
+\unexpanded\def\dodoconvertfont#1% #2% we need the protection
+ {\edef\p!defined{#1}%
+ \ifx\p!defined\empty\else
+ \@EA\dododoconvertfont
+ \fi{#1}}
+
+\def\dododoconvertfont % #1
+ {\ifcsname\@letter@\detokenize\@EA{\p!defined}\endcsname
+ \@EA\@@dodoconvertfont
+ \else\ifcsname\detokenize\@EA{\p!defined}\endcsname
+ \@EAEAEA\@@redoconvertfont
+ \else
+ \@EAEAEA\firstofoneargument
+ \fi\fi} % {#1}
+
+\let\doconvertfont\dodoconvertfont
+
+\unexpanded\def\noconvertfont#1% #2%
+ {\edef\p!defined{#1}%
+ \ifx\p!defined\empty
+ \else
+ \@EA\nononoconvertfont
+ \fi}
+
+\def\nononoconvertfont
+ {\ifcsname\@noletter@\detokenize\@EA{\p!defined}\endcsname
+ \@EA\@@donoconvertfont
+ \fi}
+
+%D Extras:
+
+\unexpanded\def\dontconvertfont{\let\doconvertfont\noconvertfont}
+\unexpanded\def\redoconvertfont{\let\doconvertfont\dodoconvertfont}
+
+%D These commands are not grouped! Grouping is most probably
+%D done by the calling macro's and would lead to unnecessary
+%D overhead.
+
+%D \macros
+%D {em,emphasistypeface,emphasisboldface}
+%D
+%D The next macro started as a copy of Donald Arseneau's
+%D \type{\em} (\TUGNEWS\ Vol.~3, no.~1, 1994). His
+%D implementation was a bit more sophisticated version of the
+%D standard \LATEX\ one. We furter enhanced the macro, so now
+%D it also adapts itself to boldface mode. Because we favor
+%D {\sl slanted} type over {\it italic}, we made the emphasis
+%D adaptable, for instance:
+%D
+%D \starttyping
+%D \def\emphasistypeface {\it}
+%D \def\emphasisboldface {\bi}
+%D \stoptyping
+%D
+%D But we prefer:
+
+\def\emphasistypeface {\sl}
+\def\emphasisboldface {\bs}
+
+%D or even better:
+
+% \def\doemphasistypeface#1#2% slow
+% {\doifelsevalue{\??ft\fontclass\normalizedbodyfontsize\c!em}\v!slanted
+% {#1}%
+% {\doifelsevalue{\??ft\fontclass\normalizedbodyfontsize\c!em}\v!italic
+% {#2}%
+% {\doifelsevaluenothing{\??ft\fontclass\normalizedbodyfontsize\c!em}
+% {\doifelsevalue{\??ft\normalizedbodyfontsize\c!em}\v!slanted
+% {#1}%
+% {\doifelsevalue{\??ft\normalizedbodyfontsize\c!em}\v!italic
+% {#2}%
+% {\getvalue{\??ft\normalizedbodyfontsize\c!em}}}}
+% {\getvalue{\??ft\fontclass\normalizedbodyfontsize\c!em}}}}}
+
+\def\doemphasistypeface#1#2%
+ {\edef\emphasizedtypeface{\csname\??ft\fontclass\normalizedbodyfontsize\c!em\endcsname}%
+ \ifx\emphasizedtypeface\v!slanted
+ #1%
+ \else\ifx\emphasizedtypeface\v!italic
+ #2%
+ \else\ifx\emphasizedtypeface\v!empty
+ \edef\emphasizedtypeface{\csname\??ft\normalizedbodyfontsize\c!em\endcsname}%
+ \ifx\emphasizedtypeface\v!slanted
+ #1%
+ \else\ifx\emphasizedtypeface\v!italic
+ #2%
+ \else
+ \getvalue\emphasizedtypeface
+ \fi\fi
+ \else
+ \getvalue\emphasizedtypeface
+ \fi\fi\fi}
+
+\def\emphasistypeface{\doemphasistypeface\sl\it}
+\def\emphasisboldface{\doemphasistypeface\bs\bi}
+
+%D To be set with the default body font environment: \type
+%D {em} being \type {slanted} or \type {italic}.
+
+\newconditional\emneeded
+
+\newtoks\everyemphasized
+
+\unexpanded\def\em
+ {\relax
+ \ifdim\slantperpoint>\zeropoint
+ \settrue\emneeded
+ \else
+ \setfalse\emneeded
+ \fi
+ \setemphasisboldface % new
+ \ifx\fontalternative\c!it
+ \def\emphasistypeface{\it}\tf
+ \else\ifx\fontalternative\c!sl
+ \def\emphasistypeface{\sl}\tf
+ \else\ifx\fontalternative\c!bf
+ \emphasisboldface
+ \else\ifx\fontalternative\c!bs
+ \def\emphasisboldface{\bs}\bf
+ \else\ifx\fontalternative\c!bi
+ \def\emphasisboldface{\bi}\bf
+ \else
+ \emphasistypeface
+ \fi\fi\fi\fi\fi
+ \the\everyemphasized
+ \ifconditional\emneeded\relax
+ \else
+ \expandafter\aftergroup
+ \fi
+ \emphasiscorrection}
+
+% compare ...
+%
+% \appendtoks \red \to \everyemphasized
+% \setupbodyfontenvironment [default] [em={\italic\color[red]}]
+
+%D The next feature was not present in previous versions. It
+%D takes care of \type {\em \bf ...} sitiations.
+
+\def\setemphasisboldface
+ {\let\normalbf\bf
+ \let\setemphasisboldface\relax
+ \unexpanded\def\bf
+ {%\relax
+ \let\bf\relax % new
+ \ifx\fontalternative\c!it
+ \bi
+ \else\ifx\fontalternative\c!sl
+ \bs
+ \else
+ \normalbf
+ \fi\fi
+ \let\bf\normalbf}}
+
+%D Donald's (adapted) macros take the next character into
+%D account when placing italic correction. As a bonus we also
+%D look for something that looks like a dash, in which case we
+%D don't correct.
+
+\let\italiccorrection=\/ % tex primitive
+
+\def\emphasiscorrection
+ {\ifhmode
+ \expandafter\emphasislook
+ \fi}
+
+% \def\emphasislook
+% {\begingroup
+% \beginrobusttest
+% \futurelet\next\emphasistest}
+
+% \def\emphasistest
+% {\normalifcat\noexpand\next,%
+% \endrobusttest\expandafter\doemphasiscorrection
+% \normalelse
+% \endrobusttest\expandafter\dododoemphasiscorrection
+% \normalfi}
+
+\def\emphasislook
+ {\begingroup
+ \futurelet\next\emphasistest}
+
+\def\emphasistest
+ {\ifcat\noexpand\next,% still ok?
+ \expandafter\doemphasiscorrection
+ \else
+ \expandafter\dododoemphasiscorrection
+ \fi}
+
+\def\doemphasiscorrection
+ {\futurelet\next\dodoemphasiscorrection}
+
+\def\dodoemphasiscorrection
+ {\setbox\scratchbox\hbox{\next}%
+ \ifdim\ht\scratchbox=\zeropoint % probably a space
+ \expandafter\dododoemphasiscorrection
+ \else\ifdim\ht\scratchbox<.3ex
+ \expandafter\expandafter\expandafter\endgroup
+ \else
+ \expandafter\expandafter\expandafter\dododoemphasiscorrection
+ \fi\fi}
+
+\def\dododoemphasiscorrection
+ {\scratchskip\lastskip
+ \ifdim\scratchskip=\zeropoint\relax % == \ifzeropt\scratchskip
+ \italiccorrection\relax
+ \else
+ \unskip\italiccorrection\hskip\scratchskip
+ \fi
+ \endgroup}
+
+%D We end with some examples which show the behavior when
+%D some punctuation is met. We also show how the mechanism
+%D adapts itself to bold, italic and slanted typing.
+%D
+%D \startbuffer
+%D test {test}test \par
+%D test {\sl test}test \par
+%D test {\em test}test \par
+%D test {\em test}--test \par
+%D
+%D test {test}, test \par
+%D test {\em test}, test \par
+%D
+%D test {\em test {\em test {\em test} test} test} test \par
+%D test {\bf test {\em test {\em test} test} test} test \par
+%D test {\sl test {\em test {\em test} test} test} test \par
+%D test {\it test {\em test {\em test} test} test} test \par
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D We get:
+%D
+%D \startvoorbeeld
+%D \startpacked
+%D \getbuffer
+%D \stoppacked
+%D \stopvoorbeeld
+
+%D \macros
+%D {emphbf,emphit,emphsl,emphtf}
+%D
+%D The next emphasis alternatives are for \THANH. They adapt
+%D their style as good as possible.
+
+\def\emphbf{\groupedcommand{\bf\def\emphit{\bi}\def\emphsl{\bs}}{}}
+\def\emphit{\groupedcommand{\it\def\emphbf{\bi}\def\emphsl{\sl}}{}}
+\def\emphsl{\groupedcommand{\sl\def\emphbf{\bs}\def\emphit{\it}}{}}
+\def\emphtf{\groupedcommand{\tf\def\emphbf{\bf}\def\emphit{\it}\def\emphsl{\sl}}{}}
+
+%D \startbuffer
+%D TEXT {\emphbf text \emphit text \emphtf text \emphsl text} TEXT
+%D TEXT \emphbf{text \emphit{text} \emphtf{text} \emphsl{text}} TEXT
+%D \stopbuffer
+%D
+%D \typebuffer
+%D \startlines
+%D \getbuffer
+%D \stoplines
+
+%D \macros
+%D {setfont}
+%D
+%D Every now and then we want to define a font directly, for
+%D instance when we typeset title pages. The next macro saves
+%D some typing:
+
+\def\setfont% geen \dosetfont mogelijk
+ {\def\next{\nextfont\setupinterlinespace}%
+ \afterassignment\next\font\nextfont=}
+
+%D One can call this macro as:
+%D
+%D \starttyping
+%D \setfont cmr10 at 60pt
+%D \stoptyping
+%D
+%D After which the font is active and the baselines and
+%D struts are set.
+
+%D \macros
+%D {showbodyfont}
+%D
+%D One can call for a rather simple overview of a bodyfont and the
+%D relations between its alternative fonts.
+%D
+%D \showsetup{showbodyfont}
+%D
+%D The current bodyfont (here we omitted the argument) looks like:
+%D
+%D \showbodyfont
+%D
+%D The implementation is rather straightforward in using
+%D \type{\halign}.
+
+\fetchruntimecommand \showbodyfont {\f!fontprefix\s!run.mkii}
+
+%D \macros
+%D {showfontstrip, testminimalbaseline, showminimalbaseline}
+%D
+%D The next command can come in handy when combining
+%D different fonts into a collection (typeface) and
+%D determining optimal baseline distances.
+%D
+%D \showfontstrip \blank \showminimalbaseline
+
+\fetchruntimecommand \showfontstrip {\f!fontprefix\s!run.mkii}
+\fetchruntimecommand \testminimalbaseline {\f!fontprefix\s!run.mkii}
+\fetchruntimecommand \showminimalbaseline {\f!fontprefix\s!run.mkii}
+
+%D \macros
+%D {showkerning}
+%D
+%D A goody is:
+%D
+%D \showkerning{Can you guess what kerning is?}
+
+\fetchruntimecommand \showkerning {\f!fontprefix\s!run.mkii}
+
+%D \macros
+%D {showbodyfontenvironment}
+%D
+%D The current bodyfontenvironment is:
+%D
+%D \showbodyfontenvironment
+%D
+%D This overview is generated using:
+%D
+%D \showsetup{showbodyfontenvironment}
+
+\fetchruntimecommand \showbodyfontenvironment {\f!fontprefix\s!run.mkii}
+
+%D \macros
+%D {showfont,showfontstyle,showligatures}
+%D
+%D The following command generates a fontmap:
+%D
+%D \startbuffer
+%D \showfont[SansBold at 12pt]
+%D \stopbuffer
+%D
+%D \typebuffer
+%D \getbuffer
+
+% to be internationalized
+
+\fetchruntimecommand \showfont {\f!fontprefix\s!run.mkii}
+\fetchruntimecommand \showfontstyle {\f!fontprefix\s!run.mkii}
+\fetchruntimecommand \showligature {\f!fontprefix\s!run.mkii}
+\fetchruntimecommand \showligatures {\f!fontprefix\s!run.mkii}
+\fetchruntimecommand \showcharratio {\f!fontprefix\s!run.mkii}
+
+%D \macros
+%D {getglyph, symbolicfont}
+%D
+%D Individual glyphs can be accessed by using
+%D
+%D \starttyping
+%D \getglyph{fontname}{character}
+%D \stoptyping
+%D
+%D This macro is used in for instance the symbol modules and
+%D as one can see, it does obey the small and even smaller
+%D sizes. The \type {\symbolicfont} macro can be used to
+%D switch to a font named \type {fontname} (see \type
+%D {cont-log} and \type {symb-eur} for examples of symbolic
+%D definitions.
+
+\def\fontstringA
+ {\ifx\fontstyle\c!rm \s!Serif \else
+ \ifx\fontstyle\c!ss \s!Sans \else
+ \ifx\fontstyle\c!tt \s!Mono \else
+ \s!Serif \fi\fi\fi}
+
+\def\fontstringB
+ {\ifx\fontstyle\c!rm \s!Regular \else
+ \ifx\fontstyle\c!ss \s!Support \else
+ \ifx\fontstyle\c!tt \s!Type \else
+ \s!Serif \fi\fi\fi}
+
+\def\fontstringC
+ {\ifx\fontalternative\c!bf \s!Bold \else
+ \ifx\fontalternative\c!sl \s!Slanted \else
+ \ifx\fontalternative\c!it \s!Italic \else
+ \ifx\fontalternative\c!bs \s!BoldSlanted \else
+ \ifx\fontalternative\c!bi \s!BoldItalic \fi\fi\fi\fi\fi}
+
+\def\fontstringD % default fontstyle
+ {\expandafter\ifx\csname\??tf\fontclass\s!default\endcsname\c!rm \s!Serif \else
+ \expandafter\ifx\csname\??tf\fontclass\s!default\endcsname\c!ss \s!Sans \else
+ \expandafter\ifx\csname\??tf\fontclass\s!default\endcsname\c!tt \s!Mono \else
+ \s!Serif \fi\fi\fi}
+
+% potential generalization:
+
+% \letvalue{\??ff:t:\c!rm}\s!Serif
+% \letvalue{\??ff:t:\c!ss}\s!Sans
+% \letvalue{\??ff:t:\c!tt}\s!Mono
+%
+% \letvalue{\??ff:s:\c!bf}\s!Bold
+% \letvalue{\??ff:s:\c!sl}\s!Slanted
+% \letvalue{\??ff:s:\c!it}\s!Italic
+% \letvalue{\??ff:s:\c!bs}\s!BoldSlanted
+% \letvalue{\??ff:s:\c!bi}\s!BoldItalic
+%
+% \letvalue{\??ff:a:\c!rm}\s!Regular
+% \letvalue{\??ff:a:\c!ss}\s!Support
+% \letvalue{\??ff:a:\c!tt}\s!Type
+%
+% \def\fontstringA{\executeifdefined{\??ff:t:\fontstyle}\s!Serif}
+% \def\fontstringB{\executeifdefined{\??ff:a:\fontstyle}\s!Serif}
+% \def\fontstringC{\executeifdefined{\??ff:s:\fontstyle}\empty}
+% \def\fontstringD{\executeifdefined{\??ff:t:\csname\??tf\fontclass\s!default\endcsname}\s!Serif}
+
+\def\glyphfontfile#1%
+ {#1%
+ \ifcsname\??ff#1\fontstringA\fontstringC\endcsname
+ \fontstringA\fontstringC
+ \else\ifcsname\??ff#1\fontstringB\fontstringC\endcsname
+ \fontstringB\fontstringC
+ \else\ifcsname\??ff#1\fontstringA\endcsname
+ \fontstringA
+ \else\ifcsname\??ff#1\fontstringB\endcsname
+ \fontstringB
+ \else\ifcsname\??ff#1\fontstringC\endcsname
+ \fontstringC
+ \fi\fi\fi\fi\fi}
+
+%D The next macro can be used to make decisions based on the shape:
+
+\def\doifitalicelse#1#2%
+ {\ifx\fontalternative\c!sl#1\else
+ \ifx\fontalternative\c!it#1\else
+ \ifx\fontalternative\c!bs#1\else
+ \ifx\fontalternative\c!bi#1\else#2\fi\fi\fi\fi}
+
+%D For an example of usage of the following command,
+%D see \type {cont-log.tex}.
+%D
+%D \starttyping
+%D \def\symbolicfont#1{\definedfont[\glyphfontfile{#1} sa *]}
+%D \stoptyping
+%D
+%D Since we know what scaling it to be applied, we can
+%D implement a much faster alternative:
+
+\let\thedefinedfont\relax
+
+\def\symbolicsizedfont#1#2#3%
+ {\scaledfontsize#1%
+ \scaledfontsize#2\scaledfontsize
+ \font\thedefinedfont=\truefontname{\glyphfontfile{#3}} at \currentfontbodyscale\scaledfontsize\relax
+ \thedefinedfont}
+
+\def\symbolicscaledfont
+ {\symbolicsizedfont\fontbody}
+
+\unexpanded\def\symbolicfont
+ {\symbolicsizedfont\fontbody\plusone}
+
+\unexpanded\def\getglyph#1#2% slow, faster, much faster
+ %{{\definefont[\s!dummy][\glyphfontfile{#1} sa \currentfontscale]\dummy#2}}
+ %{{\definefont[\s!dummy][\glyphfontfile{#1} sa *]\dummy#2}}
+ %{{\symbolicfont{#1}#2}}
+ {{\symbolicfont{#1}\doifnumberelse{#2}\char\donothing#2}}
+
+\unexpanded\def\getscaledglyph#1#2#3%
+ {{\symbolicscaledfont{#1}{#2}\doifnumberelse{#3}\char\donothing#3}}
+
+\unexpanded\def\getrawglyph#1#2% for simple symbols
+ {{\scaledfontsize\fontbody
+ \font\thedefinedfont=#1 at \currentfontbodyscale\scaledfontsize\relax
+ \thedefinedfont\doifnumberelse{#2}\char\donothing#2}}
+
+%D The last implementation of \type {\getglyph} permits
+%D definitions like:
+%D
+%D \starttyping
+%D \definefontsynonym [EuroSans] [eurose]
+%D \definefontsynonym [EuroSansBold] [euroseb]
+%D \definefontsynonym [EuroSansItalic] [eurosei]
+%D \definefontsynonym [EuroSansSlanted] [eurosei]
+%D \definefontsynonym [EuroSansBoldItalic] [eurosebi]
+%D \definefontsynonym [EuroSansBoldSlanted] [eurosebi]
+%D
+%D \definesymbol [euro] [\getglyph{Euro}{\char160}]
+%D
+%D \def\euro{\symbol[euro]}
+%D \stoptyping
+%D
+%D These definitions guarantee that the next calls work okay:
+%D
+%D \starttyping
+%D \ss \tf\euro \bf\euro \sla\euro \itd\euro \bs\euro \bic\euro
+%D \stoptyping
+%D
+%D The shape as well as the size is adapted to the current
+%D environment.
+
+%D \macros
+%D {ss, SS, sz}
+%D
+%D We are going to redefine \type{\ss} but for those wo still
+%D want to have access to the german \SS, we save it's value in
+%D \type{\SS}. Ok, I should have used \type{\sf} instead of
+%D \type{\ss} in the first place.
+
+\ifx\undefined\SS \let\SS=\ss \fi
+\ifx\undefined\sz \let\sz=\ss \fi
+
+%D Personally I think that using \TEX\ macro packages is
+%D complicated by the way fonts are handled. Apart from the
+%D many encodings, we also deal with different naming schemes.
+%D Confronted with this problem, I decided to change the
+%D definitions into:
+%D
+%D \starttyping
+%D \definebodyfont [12pt] [rm] [tf=Times-Roman at 12pt]
+%D \stoptyping
+%D
+%D combined with for instance:
+%D
+%D \starttyping
+%D \definefontsynonym [Times-Roman] [tir]
+%D \stoptyping
+
+%D Now we're up to some definitions.
+
+\definebodyfontenvironment
+ [\s!default]
+ [ \s!text=1.0,
+ \s!script=0.7,
+ \s!scriptscript=0.5,
+ \c!a=1.200,
+ \c!b=1.440,
+ \c!c=1.728,
+ \c!d=2.074,
+ *=\currentfontscale, % wildcard
+ \c!x=0.8,
+ \c!xx=0.6,
+ \c!big=1.2,
+ \c!small=0.8,
+ \c!interlinespace=,
+ \c!em=\v!slanted]
+
+\definebodyfontenvironment
+ [20.7pt]
+ [ \s!text=20.7pt,
+ \s!script=\!!fourteenpointfour,
+ \s!scriptscript=\!!twelvepoint,
+ \c!x=17.3pt,
+ \c!xx=\!!fourteenpointfour,
+ \c!big=20.7pt, % !!!!
+ \c!small=17.3pt]
+
+\definebodyfontenvironment
+ [17.3pt]
+ [ \s!text=17.3pt,
+ \s!script=\!!twelvepoint,
+ \s!scriptscript=\!!tenpoint,
+ \c!x=\!!fourteenpointfour,
+ \c!xx=\!!twelvepoint,
+ \c!big=20.7pt,
+ \c!small=\!!fourteenpointfour]
+
+\definebodyfontenvironment
+ [\!!fourteenpointfour]
+ [ \s!text=\!!fourteenpointfour,
+ \s!script=\!!elevenpoint,
+ \s!scriptscript=\!!ninepoint,
+ \c!x=\!!twelvepoint,
+ \c!xx=\!!tenpoint,
+ \c!big=17.3pt,
+ \c!small=\!!twelvepoint]
+
+\definebodyfontenvironment
+ [\!!twelvepoint]
+ [ \s!text=\!!twelvepoint,
+ \s!script=\!!ninepoint,
+ \s!scriptscript=\!!sevenpoint,
+ \c!x=\!!tenpoint,
+ \c!xx=\!!eightpoint,
+ \c!big=\!!fourteenpointfour,
+ \c!small=\!!tenpoint]
+
+\definebodyfontenvironment
+ [\!!elevenpoint]
+ [ \s!text=\!!elevenpoint,
+ \s!script=\!!eightpoint,
+ \s!scriptscript=\!!sixpoint,
+ \c!x=\!!ninepoint,
+ \c!xx=\!!sevenpoint,
+ \c!big=\!!twelvepoint,
+ \c!small=\!!ninepoint]
+
+\definebodyfontenvironment
+ [\!!tenpoint]
+ [ \s!text=\!!tenpoint,
+ \s!script=\!!sevenpoint,
+ \s!scriptscript=\!!fivepoint,
+ \c!x=\!!eightpoint,
+ \c!xx=\!!sixpoint,
+ \c!big=\!!twelvepoint,
+ \c!small=\!!eightpoint]
+
+\definebodyfontenvironment
+ [\!!ninepoint]
+ [ \s!text=\!!ninepoint,
+ \s!script=\!!sevenpoint,
+ \s!scriptscript=\!!fivepoint,
+ \c!x=\!!sevenpoint,
+ \c!xx=\!!fivepoint,
+ \c!big=\!!elevenpoint,
+ \c!small=\!!sevenpoint]
+
+\definebodyfontenvironment
+ [\!!eightpoint]
+ [ \s!text=\!!eightpoint,
+ \s!script=\!!sixpoint,
+ \s!scriptscript=\!!fivepoint,
+ \c!x=\!!sixpoint,
+ \c!xx=\!!fivepoint,
+ \c!big=\!!tenpoint,
+ \c!small=\!!sixpoint]
+
+\definebodyfontenvironment
+ [\!!sevenpoint]
+ [ \s!text=\!!sevenpoint,
+ \s!script=\!!sixpoint,
+ \s!scriptscript=\!!fivepoint,
+ \c!x=\!!sixpoint,
+ \c!xx=\!!fivepoint,
+ \c!big=\!!ninepoint,
+ \c!small=\!!fivepoint]
+
+\definebodyfontenvironment
+ [\!!sixpoint]
+ [ \s!text=\!!sixpoint,
+ \s!script=\!!fivepoint,
+ \s!scriptscript=\!!fivepoint,
+ \c!x=\!!fivepoint,
+ \c!xx=\!!fivepoint,
+ \c!big=\!!eightpoint,
+ \c!small=\!!fivepoint]
+
+\definebodyfontenvironment
+ [\!!fivepoint]
+ [ \s!text=\!!fivepoint,
+ \s!script=\!!fivepoint,
+ \s!scriptscript=\!!fivepoint,
+ \c!x=\!!fivepoint,
+ \c!xx=\!!fivepoint,
+ \c!big=\!!sevenpoint,
+ \c!small=\!!fivepoint]
+
+\definebodyfontenvironment
+ [\!!fourpoint]
+ [ \s!text=\!!fourpoint,
+ \s!script=\!!fourpoint,
+ \s!scriptscript=\!!fourpoint,
+ \c!x=\!!fourpoint,
+ \c!xx=\!!fourpoint,
+ \c!big=\!!sixpoint,
+ \c!small=\!!fourpoint]
+
+\definebodyfontswitch [fourteenpointfour] [\!!fourteenpointfour]
+\definebodyfontswitch [twelvepoint] [\!!twelvepoint]
+\definebodyfontswitch [elevenpoint] [\!!elevenpoint]
+\definebodyfontswitch [tenpoint] [\!!tenpoint]
+\definebodyfontswitch [ninepoint] [\!!ninepoint]
+\definebodyfontswitch [eightpoint] [\!!eightpoint]
+\definebodyfontswitch [sevenpoint] [\!!sevenpoint]
+\definebodyfontswitch [sixpoint] [\!!sixpoint]
+\definebodyfontswitch [fivepoint] [\!!fivepoint]
+\definebodyfontswitch [fourpoint] [\!!fourpoint]
+
+% \definebodyfontswitch [xii] [\!!twelvepoint]
+% \definebodyfontswitch [xi] [\!!elevenpoint]
+% \definebodyfontswitch [x] [\!!tenpoint]
+% \definebodyfontswitch [ix] [\!!ninepoint]
+% \definebodyfontswitch [viii] [\!!eightpoint]
+% \definebodyfontswitch [vii] [\!!sevenpoint]
+% \definebodyfontswitch [vi] [\!!sixpoint]
+
+%D So far.
+
+\definefontstyle [\c!mm] [\c!mm]
+\definefontstyle [\c!rm,\v!roman,\v!serif,\v!regular] [\c!rm]
+\definefontstyle [\c!ss,\v!sansserif,\v!sans,\v!support] [\c!ss]
+\definefontstyle [\c!tt,\v!teletype,\v!type,\v!mono] [\c!tt]
+\definefontstyle [\c!hw,\v!handwritten] [\c!hw]
+\definefontstyle [\c!cg,\v!calligraphic] [\c!cg]
+
+\definefontalternative[\c!tf]
+\definefontalternative[\c!bf]
+\definefontalternative[\c!it]
+\definefontalternative[\c!sl]
+\definefontalternative[\c!bs]
+\definefontalternative[\c!bi]
+\definefontalternative[\c!sc]
+
+\definefontsize[\c!a] \definefontsize[\c!b]
+\definefontsize[\c!c] \definefontsize[\c!d]
+
+\definealternativestyle [\v!mediaeval] [\os] []
+\definealternativestyle [\v!normal] [\tf] []
+\definealternativestyle [\v!bold] [\bf] []
+\definealternativestyle [\v!type] [\tt] []
+\definealternativestyle [\v!mono] [\tt] []
+\definealternativestyle [\v!slanted] [\sl] []
+\definealternativestyle [\v!italic] [\it] []
+\definealternativestyle [\v!boldslanted,\v!slantedbold] [\bs] []
+\definealternativestyle [\v!bolditalic,\v!italicbold] [\bi] []
+\definealternativestyle [\v!small,\v!smallnormal] [\tfx] []
+\definealternativestyle [\v!smallbold] [\bfx] []
+\definealternativestyle [\v!smalltype] [\ttx] []
+\definealternativestyle [\v!smallslanted] [\slx] []
+\definealternativestyle [\v!smallboldslanted,\v!smallslantedbold] [\bsx] []
+\definealternativestyle [\v!smallbolditalic,\v!smallitalicbold] [\bix] []
+
+\definealternativestyle [\v!sans,\v!sansserif] [\ss] []
+\definealternativestyle [\v!sansbold] [\ss\bf] []
+
+%D Slow but handy:
+
+\definealternativestyle [\v!smallbodyfont] [\setsmallbodyfont] []
+\definealternativestyle [\v!bigbodyfont] [\setbigbodyfont] []
+
+%D We treat {\sc Small Caps} and \cap {Pseudo Caps} a bit
+%D different. We also provide an \WORD {uppercase} style.
+
+\definealternativestyle [\v!cap,\v!capital] [\smallcapped] [\smallcapped]
+\definealternativestyle [\v!smallcaps] [\sc] [\sc]
+\definealternativestyle [\v!WORD] [\WORD] [\WORD]
+
+%D \macros
+%D {fontstylesuffix}
+%D
+%D The next macro is used to map non latin fontnames on
+%D fonts. See \type {font-uni} for an example of its use.
+
+\def\fontstylesuffix% why the \s!Regular ? see \getglyph
+ {\ifx\fontalternative\c!tf \s!Regular \else
+ \ifx\fontalternative\c!bf \s!Bold \else
+ \ifx\fontalternative\c!sl \s!Slanted \else
+ \ifx\fontalternative\c!it \s!Italic \else
+ \ifx\fontalternative\c!bs \s!BoldSlanted \else
+ \ifx\fontalternative\c!bi \s!BoldItalic \else
+ \ifx\fontalternative\c!sc \s!Caps \else
+ \s!Regular \fi\fi\fi\fi\fi\fi\fi}%
+
+%D \macros
+%D {definefontvariant,fontvariant,variant}
+%D
+%D A slightly adapted version of Adam Lindsays variant patches:
+%D
+%D \starttyping
+%D \usetypescriptfile[type-psc] \loadmapfile[texnansi-public-fpl]
+%D \usetypescript[palatino][texnansi] \setupbodyfont[palatino]
+%D
+%D \definefontvariant [Serif][osf] [OsF]
+%D
+%D \startlines
+%D {\sc abcdefgHIJKlmnop}
+%D 123{\Var[osf]456}789
+%D {\Var[osf] 123{\Var[reset]456}789}
+%D {\it 123{\Var[osf]456}789
+%D {\Var[osf]123{\Var[reset]456}789}}
+%D {\tfb\bf 123{\Var[osf]456}789
+%D {\Var[osf] 123{\Var[reset]456}789}}
+%D {\sc 123{\Var[osf]456}789
+%D {\Var[osf] 123{\Var[reset]456}789}}
+%D \stoplines
+%D \stoptyping
+
+\def\definefontvariant
+ {\dotripleargument\dodefinefontvariant}
+
+\def\dodefinefontvariant[#1][#2][#3]%
+ {\setvalue{\??fv#1#2}{#3}}
+
+\def\fontvariant#1#2{\executeifdefined{\??fv#1#2}\empty}
+
+\def\dosetscaledfont
+ {\checkrelativefontsize\fontstyle
+ \scaledfontsize\currentfontscale\bodyfontsize
+ \scaledfontsize\relativefontsize\scaledfontsize}
+
+\unexpanded\def\variant[#1]% slow
+ {\dosetscaledfont
+ \normalexpanded{\noexpand\definedfont[\fontstringA\fontstylesuffix\fontvariant\fontstringA{#1} at \the\dimexpr\scaledfontsize\relax]}%
+ \ignoreimplicitspaces}
+
+\ifx\Var\undefined \let\Var\variant \fi
+
+%D By default we load the Computer Modern Roman fonts (but
+%D not yet at this moment) and activate the 12pt roman
+%D bodyfont. Sans serif and teletype are also available and
+%D can be called for by \type{\ss} and \type{\tt}.
+
+% \setupbodyfont [unk, rm]
+% \setupbodyfont [rm]
+
+%D Also needed is:
+
+\definefont[tinyfont][Mono at 1ex]
+
+% \tracinglostchars=1
+
+% this needs some interfacing
+%
+% \setupfonts[check=...]
+
+\def\checkcharactersinfont {\ctxlua{fonts.checkers.enabled=true}}
+\def\removemissingcharacters{\ctxlua{fonts.checkers.enabled=true fonts.checkers.delete=true}}
+
+%D New commands (not yet interfaced):
+
+\def\style[#1]% for inline usage, like \color
+ {\groupedcommand{\ifcsname#1\endcsname\csname#1\endcsname\else\definedfont[#1]\fi}{}}
+
+\def\startstyle[#1]%
+ {\begingroup
+ \ifcsname#1\endcsname\csname#1\endcsname\else\definedfont[#1]\fi}
+
+\def\stopstyle
+ {\endgroup}
+
+%D Still experimental (might even go away).
+
+% \definestylecollection[mine]
+
+% \definestyleinstance[mine][default][sorry]
+% \definestyleinstance[mine][tt][bs][ttbs:\rm\sl]
+% \definestyleinstance[mine][tt][bf][ttbf:\rm\sl]
+% \definestyleinstance[mine][bf][\sl]
+% \definestyleinstance[mine][sl][\tt]
+
+% {\bf test \mine test \sl test \mine test \bs oeps \mine oeps {\tt test \mine \bf test}}
+
+\definesystemvariable{sx}
+
+\def\definestylecollection
+ {\dosingleargument\dodefinestylecollection}
+
+\def\dodefinestylecollection[#1]%
+ {\iffirstargument
+ \unexpanded\setvalue{#1}{\styleinstance[#1]}%
+ \def\docommand##1%
+ {\def\dodocommand####1{\letbeundefined{\??sx##1:####1:\commalistelement}}%
+ \processcommacommand[\fontalternativelist,\s!default]\dodocommand}%
+ \processcommacommand[\fontstylelist,\s!default]\docommand
+ \fi}
+
+\def\definestyleinstance
+ {\doquadrupleargument\dodefinestyleinstance}
+
+\def\dodefinestyleinstance[#1][#2][#3][#4]% [name] [rm|ss|tt|..] [sl|bf|...] [whatever]
+ {\iffirstargument
+ \ifcsname#1\endcsname\else\definestylecollection[#1]\fi
+ \fi
+ \iffourthargument
+ \setvalue{\??sx#1:#2:#3}{#4}%
+ \else\ifthirdargument
+ \setvalue{\??sx#1::#2}{#3}%
+ \else\ifsecondargument
+ \letvalue{\??sx#1::#2}\empty
+ \fi\fi\fi}
+
+\unexpanded\def\styleinstance[#1]% will be made faster
+ {%\begingroup\normalexpanded{\noexpand\infofont[#1:\fontstyle:\fontalternative]}\endgroup
+ \executeifdefined{\??sx#1:\fontstyle:\fontalternative}%
+ {\executeifdefined{\??sx#1:\fontstyle:\s!default}%
+ {\executeifdefined{\??sx#1::\fontalternative}
+ {\getvalue {\??sx#1::\s!default}}}}}
+
+% \unexpanded\def\styleinstance[#1]%
+% {\csname\??sx#1%
+% \ifcsname:\fontstyle:\fontalternative\endcsname
+% :\fontstyle:\fontalternative
+% \else\ifcsname:\fontstyle:\s!default\endcsname
+% :\fontstyle:\s!default
+% \else\ifcsname::\fontalternative\endcsname
+% ::\fontalternative
+% \else\ifcsname::\s!default\endcsname
+% ::\s!default
+% \else
+% % nothing, \relax
+% \fi\fi\fi\fi
+% \endcsname}
\protect \endinput
+
+% \startluacode
+% function commands.doifelsecurrentfonthasfeature(name)
+% local f = fonts.ids[font.current()]
+% f = f and f.shared
+% f = f and f.otfdata
+% f = f and f.luatex
+% f = f and f.features
+% commands.doifelse(f and (f.gpos[name] or f.gsub[name]))
+% end
+% \stopluacode
+
+% \def\doifelsecurrentfonthasfeature#1%
+% {\ctxlua{commands.doifelsecurrentfonthasfeature("#1")}}
+
+% \doifelsecurrentfonthasfeature{smcp}{YES}{NO}
+% \doifelsecurrentfonthasfeature{crap}{YES}{NO}
+% \doifelsecurrentfonthasfeature{kern}{YES}{NO}
diff --git a/Master/texmf-dist/tex/context/base/font-ini.tex b/Master/texmf-dist/tex/context/base/font-ini.tex
deleted file mode 100644
index d528d51d47d..00000000000
--- a/Master/texmf-dist/tex/context/base/font-ini.tex
+++ /dev/null
@@ -1,4845 +0,0 @@
-%D \module
-%D [ file=font-ini,
-%D version=1998.09.11, % (second)
-%D version=2001.02.20, % (third)
-%D title=\CONTEXT\ Font Macros,
-%D subtitle=Initialization,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{Context Font Macros (ini)}
-
-\loadmarkfile{font-ini}
-
-\unprotect
-
-% \def\fontrange#1%
-% {\dofontrange{#1 =\bodyfontsize}}
-%
-% \def\dofontrange#1%
-% {\dodofontrange#1 \relax}% \fontstringA
-%
-% \def\dodofontrange#1 #2 %
-% {\ifdim\bodyfontsize#2%
-% #1\expandafter\gobbleuntilrelax
-% \else
-% \expandafter\dodofontrange
-% \fi}
-%
-% \definefont
-% [crap]
-% [\fontrange
-% {Regular <10pt
-% RegularBold <12pt
-% RegularSlanted <15pt
-% Regular} sa 1]
-%
-% may be better:
-%
-% \definefontrange
-% [crap]
-% [Regular <10pt
-% RegularBold <12pt
-% RegularSlanted <15pt]
-% [Regular sa 1]
-%
-%
-% \dostepwiserecurse{2}{15}{1}
-% {{\switchtobodyfont[\recurselevel pt]\crap test}\endgraf}
-
-% adapted, else wrong interlinespace
-
-\def\setfontparameters
- {\synchronizefontsfalse
- \the\everybodyfont
- \synchronizefontstrue}
-
-% handy
-
-\newcounter\pushedfont
-
-\def\savefont
- {\edef\savedfont{\the\font}%
- \pushmacro\savedfont
- \pushmacro\currentregime
- \pushmacro\charactermapping
- \pushmacro\characterencoding}
-
-\def\restorefont
- {\popmacro\characterencoding
- \popmacro\charactermapping
- \popmacro\currentregime
- \popmacro\savedfont
- \savedfont}
-
-\def\pushcurrentfont
- {\edef\popcurrentfont
- {\noexpand\def\noexpand\fontbody{\fontbody}%
- \noexpand\def\noexpand\fontstyle{\fontstyle}%
- \noexpand\dosetcurrentfontalternative{\fontalternative}%
- \noexpand\dosetcurrentfontsize{\fontsize}%
- \noexpand\synchronizefont}}
-
-% \definetypeface[one][rm][serif][computer-roman][default]
-% \definetypeface[two][rm][serif][computer-roman][default][rscale=.9]
-%
-% {\one \bf test \two test}
-% {\one \bf test \pushcurrentfont \two \popcurrentfont test}
-
-%D \macros
-%D {definedfont,startfont,doiffontcharelse}
-%D
-%D A couple of relatively new macros:
-
-\newevery \everydefinedfont \relax
-
-\def\dodefinedfont[#1]%
- {\iffirstargument\definefont[\string\thedefinedfont][#1]\fi
- \csname\string\thedefinedfont\endcsname % can be \relax
- \the\everydefinedfont}
-
-\unexpanded\def\definedfont
- {\dosingleempty\dodefinedfont}
-
-\unexpanded\def\startfont
- {\bgroup\definedfont}
-
-\def\stopfont
- {\egroup}
-
-\def\doiffontcharelse#1#2%
- {\bgroup
- \definedfont[#1]%
- \iffontchar\font#2\relax
- \egroup\expandafter\firstoftwoarguments
- \else
- \egroup\expandafter\secondoftwoarguments
- \fi}
-
-%%% message 14 added
-
-\startmessages dutch library: fonts
- title: korps
- 1: codering --
- 2: variant -- wordt geladen
- 3: onbekende variant --
- 4: korps -- is niet gedefinieerd
- 5: stijl -- is niet gedefinieerd
- 6: -- wordt geladen
- 7: onbekend formaat --
- 8: stijl -- gedefinieerd
-% 9: mapping -- is geladen
- 10: onbekende font file --
- 14: korps -- is gedefinieerd (kan beter globaal plaatsvinden)
-\stopmessages
-
-\startmessages english library: fonts
- title: bodyfont
- 1: coding --
- 2: variant -- is loaded
- 3: unknown variant --
- 4: bodyfont -- is not defined
- 5: style -- is not defined
- 6: -- is loaded
- 7: unknown format --
- 8: style -- defined
-% 9: mapping -- is loaded
- 10: unknown font file --
- 14: bodyfont -- is defined (can better be done global)
-\stopmessages
-
-\startmessages german library: fonts
- title: Fliesstext
- 1: Kodierung --
- 2: Variante -- ist geladen
- 3: Unbekannte Variante --
- 4: Fliesstext -- ist nicht definiert
- 5: Stil -- ist nicht definiert
- 6: -- ist geladen
- 7: unbekanntes Format --
- 8: Stil -- definiert
-% 9: Map -- ist geladen
- 10: unbekanntes Font --
- 14: Fliesstext -- wurde definiert (besser waere globale Definition)
-\stopmessages
-
-\startmessages czech library: fonts
- title: zakladnifont
- 1: kodovani --
- 2: varianta -- je nactena
- 3: neznama varianta --
- 4: zakladni font -- neni definovan
- 5: styl -- neni definovan
- 6: -- je nacten
- 7: neznamy format --
- 8: styl -- definovan
-% 9: mapovani -- je nacteno
- 10: neznamy font --
- 14: bodyfont -- is defined (can better be done global)
-\stopmessages
-
-\startmessages italian library: fonts
- title: font del corpo
- 1: codifica --
- 2: variante -- caricata
- 3: variante sconosciuta --
- 4: corpo del testo -- non definito
- 5: stile -- non definito
- 6: -- caricato
- 7: formato sconosciuto --
- 8: stile -- definito
-% 9: mappatura -- caricata
- 10: file di font sconosciuto --
- 14: corpo del testo -- definito (sarebbe meglio globale)
-\stopmessages
-
-\startmessages norwegian library: fonts
- title: hovedfont
- 1: koding --
- 2: variant -- er lest inn
- 3: ukjent variant --
- 4: hovedfont -- er ikke definert
- 5: stil -- er ikke definert
- 6: -- er lest inn
- 7: ukjent format --
- 8: stil -- definert
-% 9: avbildning -- er lest inn
- 10: ukjent fontfil --
- 14: bodyfont -- is defined (can better be done global)
-\stopmessages
-
-\startmessages romanian library: fonts
- title: corp de litere
- 1: codificarea --
- 2: varianta -- este incarcata
- 3: varianta necunoscuta --
- 4: corpul de litere -- nu este definit
- 5: stilul -- nu este definit
- 6: -- este incarcat
- 7: format necunoscut --
- 8: stilul -- definit
-% 9: maparea -- este incarcat
- 10: fisier font necunoscut --
- 14: bodyfont -- is defined (can better be done global)
-\stopmessages
-
-\startmessages french library: fonts
- title: corps de texte
- 1: encodage --
- 2: la variante -- est chargée
- 3: variante -- inconnue
- 4: policecorps -- n'est pas définie
- 5: le style -- n'est pas défini
- 6: -- est chargé
- 7: format -- inconnu
- 8: style -- défini
-% 9: mapping -- is loaded
- 10: fichier de police -- inconnu
- 14: policecorps -- est défini (une définition globale pourrait être plus adéquat)
-\stopmessages
-
-%D This module is one of the oldest modules of \CONTEXT. The
-%D macros below evolved out of the \PLAIN\ \TEX\ macros and
-%D therefore use a similar naming scheme (\type{\rm},
-%D \type{\bf}, etc). This module grew out of our needs. We
-%D started with the \PLAIN\ \TEX\ definitions, generalized the
-%D underlaying macros, and extended those to a level at which
-%D probably no one will ever recognize them.
-%D
-%D In 2001 we ran into a couple of projects where more than
-%D one combined set of fonts was involved in a document. To
-%D make definitions more readable, as well as to overcome the
-%D problem of ever growing file name lists, and also because
-%D we needed to scale fonts relative to each other, the low
-%D level implementation was partly rewritten. Global
-%D font assignments, relative scaling, font classes and alike
-%D were added then. At the same time some macros were made a
-%D bit more readable, and math support was extended to the
-%D larger sizes.
-%D
-%D One important characteristic of the font mechanism presented
-%D here is the postponing of font loading. This makes it
-%D possible to distribute \type{fmt} files without bothering
-%D about the specific breed of \type{tfm} files.
-%D
-%D Another feature implemented here is the massive switching
-%D from roman to {\ss sans serif}, {\tt teletype} or else. This
-%D means one doesn't have to take care of all kind of relations
-%D between fonts.
-%D
-%D \page[bigpreference]
-
-%D \macros
-%D {rm,ss,tt,hw,cg}
-%D
-%D Fonts are defined in separate files. When we define a font,
-%D we distinguish between several styles. In most cases we will
-%D use:
-%D
-%D \startlinecorrection
-%D \starttable[|l||]
-%D \HL
-%D \NC roman regular serif \NC \type{\rm} \NC\FR
-%D \NC sansserif sans support \NC \type{\ss} \NC\MR
-%D \NC type teletype mono \NC \type{\tt} \NC\LR
-%D \HL
-%D \stoptable
-%D \stoplinecorrection
-%D
-%D The number of styles is not limited to these three. When
-%D using Lucida Bright we can for instance also define:
-%D
-%D \startlinecorrection
-%D \starttable[|l||]
-%D \HL
-%D \NC handwritten \NC \type{\hw} \NC\FR
-%D \NC calligraphic \NC \type{\cg} \NC\LR
-%D \HL
-%D \stoptable
-%D \stoplinecorrection
-%D
-%D Anyone who feels the need, can define additional ones, like
-%D
-%D \startlinecorrection
-%D \starttable[|l||]
-%D \HL
-%D \NC faxfont \NC \type{\ff} \NC\FR
-%D \NC blackboard \NC \type{\bb} \NC\LR
-%D \HL
-%D \stoptable
-%D \stoplinecorrection
-%D
-%D Or even
-%D
-%D \startlinecorrection
-%D \starttable[|l||]
-%D \HL
-%D \NC hebrew \NC \type{\hb} \NC\SR
-%D \HL
-%D \stoptable
-%D \stoplinecorrection
-%D
-%D Styles are grouped in font sets. At the moment there are
-%D three main sets defined:
-%D
-%D \startlinecorrection
-%D \starttable[|l|l||]
-%D \HL
-%D \NC Computer Modern Roman \NC Knuth \NC \type{cmr} \NC\FR
-%D \NC Lucida Bright \NC Bigelow \& Holmes \NC \type{lbr} \NC\MR
-%D \NC Standard Postscript Fonts \NC Adobe \NC \type{pos} \NC\LR
-%D \HL
-%D \stoptable
-%D \stoplinecorrection
-%D
-%D There are also some Computer Modern Roman alternatives:
-%D
-%D \startlinecorrection
-%D \starttable[|l|l||]
-%D \HL
-%D \NC Computer Modern Roman \NC Knuth \& Sauter \NC \type{sau} \NC\FR
-%D \NC Euler fonts \NC Zapf \NC \type{eul} \NC\MR
-%D \NC Computer Modern Concrete \NC Knuth \& Zapf \NC \type{con} \NC\LR
-%D \HL
-%D \stoptable
-%D \stoplinecorrection
-%D
-%D All these definitions are ordered in files with names like
-%D \type{font-cmr} and \type{font-pos}, where the last three
-%D characters specify the name as known to \CONTEXT.
-%D
-%D Within such a font set (\type{cmr}) and style (\type{\rm})
-%D we can define a number of text font alternatives:
-%D
-%D \startlinecorrection
-%D \starttable[|l||]
-%D \HL
-%D \NC typeface \NC \type{\tf} \NC\FR
-%D \NC boldface \NC \type{\bf} \NC\MR
-%D \NC slanted \NC \type{\sl} \NC\MR
-%D \NC italic \NC \type{\it} \NC\MR
-%D \NC boldslanted \NC \type{\bs} \NC\MR
-%D \NC bolditalic \NC \type{\bi} \NC\MR
-%D \NC smallcaps \NC \type{\sc} \NC\LR
-%D \HL
-%D \stoptable
-%D \stoplinecorrection
-
-%D For old stylish Frans Goddijn we have:
-%D
-%D \startlinecorrection
-%D \starttable[|l||]
-%D \HL
-%D \NC oldstyle \NC \type{\os} \NC\SR
-%D \HL
-%D \stoptable
-%D \stoplinecorrection
-%D
-%D The availability of these alternatives depends on the
-%D completeness of a font family and of course the definitions
-%D in the font files.
-%D
-%D But let's not forget math. In addition to the previous \TEX\
-%D families (the mysterious \type{\fam}'s) we've got some more:
-%D
-%D \startlinecorrection
-%D \starttable[|l||]
-%D \HL
-%D \NC Math Roman \NC \type{\mr} \NC\FR
-%D \NC Math Italic \NC \type{\mi} \NC\MR
-%D \NC Math Symbol \NC \type{\sy} \NC\MR
-%D \NC Math Extra \NC \type{\ex} \NC\MR
-%D \NC Math A \NC \type{\ma} \NC\MR
-%D \NC Math B \NC \type{\mb} \NC\MR
-%D \NC Math C \NC \type{\mc} \NC\LR
-%D \HL
-%D \stoptable
-%D \stoplinecorrection
-%D
-%D Users can call for specific fonts in many ways. Switches to
-%D other typefaces, like the switch from normal to bold, are as
-%D intuitive as possible, which means that all dependant fonts
-%D also switch. One can imagine that this takes quite some
-%D processing time.
-%D
-%D Internally fonts are stored as combination of size, style
-%D and alternative, e.g. \type{12pt}+\type{\ss}+\type{\bf}.
-%D Users are not confronted with sizes, but use the style or
-%D style+alternative to activate them.
-%D
-%D During the definition of a bodyfont one can also declare the
-%D available larger alternatives:
-%D
-%D \starttyping
-%D \tf \tfa \tfb \tfc ...
-%D \bf \bfa \bfb \bfc ...
-%D \sl \sla \slb \slc ...
-%D \stoptyping
-%D
-%D The smaller ones are automatically supplied and derived from
-%D the the bodyfont environment.
-%D
-%D \starttyping
-%D \tfx \tfxx
-%D \bfx \bfxx
-%D \slx \slxx
-%D \stoptyping
-%D
-%D There are only two smaller alternatives per style. The
-%D larger alternatives on the other hand have no limitations.
-%D
-%D These larger alternatives are mostly used in chapter and
-%D section titles or on title pages. When one switches to a
-%D larger alternative, the bold an other ones automatically
-%D adapt themselves:
-%D
-%D \startbuffer
-%D \tfd Hi \bf there\sl, here \tfb I \bf am
-%D \stopbuffer
-%D
-%S \startnarrower
-%D \typebuffer
-%S \stopnarrower
-%D
-%D therefore becomes:
-%D
-%D \startvoorbeeld
-%D \getbuffer
-%D \stopvoorbeeld
-%D
-%D Maybe this mechanism isn't always as logic, but as said
-%D before, we tried to make it as intuitive as possible.
-%D
-%D So a specific kind of glyph can be characterized by:
-%D
-%D \startnarrower
-%D family (cmr) + bodyfont (12pt) + style (rm) + alternative (bf) + size (a)
-%D \stopnarrower
-%D
-%D The last component (the size) is optional.
-%D
-%D We introduced \type{\tf} as command to call for the current
-%D normally sized typeface. This commands results in roman,
-%D sans serif, teletype or whatever style is in charge. Such
-%D rather massive switches of style sometimes take more
-%D processing time than comfortable. Of course there is a
-%D workaround for this: we can call fonts directly by means of
-%D commands like:
-%D
-%D \starttyping
-%D \rmtf \sssl \tttf \rmbsa
-%D \stoptyping
-%D
-%D One should realize that this fast calls have limitations,
-%D they lack for instance automatic super- and subscript
-%D support.
-%D
-%D This leaves us two more commands: \type{\tx} and
-%D \type{\txx}. These activate a smaller and even more smaller
-%D font than the current one and adapt themselves to the
-%D current alternative, so when \type{\bf} is active,
-%D \type{\tx} gives a smaller boldface, which in turn can be
-%D called directly by \type{\bfx}.
-%D
-%D These two smaller alternatives are specified by the bodyfont
-%D environment and therefore not necessarily have similar sizes
-%D as \type{\scriptsize} and \type{\scriptscriptsize}. The main
-%D reason for this incompatibility (which can easily be undone)
-%D lays in the fact that we often want a bit bigger characters
-%D than in math mode. In \CONTEXT\ for instance the \type{\tx}
-%D and \type{\txx} commands are used for surrogate
-%D \cap{smallcaps} which support both nesting and alternatives,
-%D like in {\bf\cap{a \cap{small} world}}, which was typeset by
-%D
-%D \starttyping
-%D \bf\cap{a \cap{small} world}
-%D \stoptyping
-%D
-%D And compare $\rm \scriptstyle THIS$ with the slightly larger
-%D \cap{THIS}: \ruledhbox{$\rm \scriptstyle scriptstyle: THIS$}
-%D or \ruledhbox{\cap{x style: THIS}} makes a big difference.
-
-%D The \type{x..d} sizes should be used grouped. If you
-%D don't group them, i.e. call them in a row, \CONTEXT\ will
-%D not be able to sort out your intention (\type {x} inside
-%D \type {d} inside \type {x}. etc.). The following table
-%D demonstrates this:
-%D
-%D \def\FontState{\setstrut\ruledhbox{\strut Hello}}
-%D
-%D \starttabulate[|||||]
-%D \HL
-%D \NC \rlap{\quad\bf grouped} \NC \NC \type {\tx} \NC \type {\txx} \NC \NR
-%D \HL
-%D \NC \type{\tfx} \NC \tfx \FontState \NC \tfx \tx \FontState \NC \tfx \txx \FontState \NC \NR
-%D \NC \type{\tfxx} \NC \tfxx \FontState \NC \tfxx\tx \FontState \NC \tfxx\txx \FontState \NC \NR
-%D \NC \type{\tf} \NC \tf \FontState \NC \tf \tx \FontState \NC \tf \txx \FontState \NC \NR
-%D \NC \type{\tfa} \NC \tfa \FontState \NC \tfa \tx \FontState \NC \tfa \txx \FontState \NC \NR
-%D \NC \type{\tfb} \NC \tfb \FontState \NC \tfb \tx \FontState \NC \tfb \txx \FontState \NC \NR
-%D \NC \type{\tfc} \NC \tfc \FontState \NC \tfc \tx \FontState \NC \tfc \txx \FontState \NC \NR
-%D \NC \type{\tfd} \NC \tfd \FontState \NC \tfd \tx \FontState \NC \tfd \txx \FontState \NC \NR
-%D \NC \type{\tfx} \NC \tfx \FontState \NC \tfx \tx \FontState \NC \tfx \txx \FontState \NC \NR
-%D \NC \type{\tfxx} \NC \tfxx \FontState \NC \tfxx\tx \FontState \NC \tfxx\txx \FontState \NC \NR
-%D \HL
-%D \stoptabulate
-%D
-%D \blank
-%D
-%D \starttabulate[|||||]
-%D \HL
-%D \NC \rlap{\quad\bf stacked} \NC \NC \type {\tx} \NC \type {\txx} \NC \NR
-%D \HL
-%D \NC \type{\tfx}
-%D \NC \tfx \FontState
-%D \NC \tfx \tx \FontState
-%D \NC \tfx \txx \FontState
-%D \NC \NR
-%D \NC \type{\tfxx}
-%D \NC \tfx\tfxx \FontState
-%D \NC \tfx\tfxx \tx \FontState
-%D \NC \tfx\tfxx \txx \FontState
-%D \NC \NR
-%D \NC \type{\tf}
-%D \NC \tfx\tfxx\tf \FontState
-%D \NC \tfx\tfxx\tf \tx \FontState
-%D \NC \tfx\tfxx\tf \txx \FontState
-%D \NC \NR
-%D \NC \type{\tfa}
-%D \NC \tfx\tfxx\tf\tfa \FontState
-%D \NC \tfx\tfxx\tf\tfa \tx \FontState
-%D \NC \tfx\tfxx\tf\tfa \txx \FontState
-%D \NC \NR
-%D \NC \type{\tfb}
-%D \NC \tfx\tfxx\tf\tfa\tfb \FontState
-%D \NC \tfx\tfxx\tf\tfa\tfb \tx \FontState
-%D \NC \tfx\tfxx\tf\tfa\tfb \txx \FontState
-%D \NC \NR
-%D \NC \type{\tfc}
-%D \NC \tfx\tfxx\tf\tfa\tfb\tfc \FontState
-%D \NC \tfx\tfxx\tf\tfa\tfb\tfc \tx \FontState
-%D \NC \tfx\tfxx\tf\tfa\tfb\tfc \txx \FontState
-%D \NC \NR
-%D \NC \type{\tfd}
-%D \NC \tfx\tfxx\tf\tfa\tfb\tfd \FontState
-%D \NC \tfx\tfxx\tf\tfa\tfb\tfd \tx \FontState
-%D \NC \tfx\tfxx\tf\tfa\tfb\tfd \txx \FontState
-%D \NC \NR
-%D \NC \type{\tfx}
-%D \NC \tfx\tfxx\tf\tfa\tfb\tfc\tfx \FontState
-%D \NC \tfx\tfxx\tf\tfa\tfb\tfc\tfx \tx \FontState
-%D \NC \tfx\tfxx\tf\tfa\tfb\tfc\tfx \txx \FontState
-%D \NC \NR
-%D \NC \type{\tfxx}
-%D \NC \tfx\tfxx\tf\tfa\tfb\tfc\tfx\tfxx \FontState
-%D \NC \tfx\tfxx\tf\tfa\tfb\tfc\tfx\tfxx \tx \FontState
-%D \NC \tfx\tfxx\tf\tfa\tfb\tfc\tfx\tfxx \txx \FontState
-%D \NC \NR
-%D \HL
-%D \stoptabulate
-
-%D \macros
-%D {mf}
-%D
-%D Math fonts are a species in their own. They are tightly
-%D hooked into smaller and even smaller ones of similar breed
-%D to form a tight family. Let's first see how these are
-%D related:
-%D
-%D \startbuffer
-%D $\tf x^2+\bf x^2+\sl x^2+\it x^2+\bs x^2+ \bi x^2 =\rm 6x^2$
-%D $\tf x^2+\bf x^2+\sl x^2+\it x^2+\bs x^2+{\bi x^2}=\rm 6x^2$
-%D $\tf x^2+\bf x^2+\sl x^2+\it x^2+\bs x^2+ \bi x^2 =\tf 6x^2$
-%D $\tf x^2+\bf x^2+\sl x^2+\it x^2+\bs x^2+{\bi x^2}=\tf 6x^2$
-%D $\tf x^2+\bf x^2+\sl x^2+\it x^2+\bs x^2+ \bi x^2 =\bf 6x^2$
-%D $\tf x^2+\bf x^2+\sl x^2+\it x^2+\bs x^2+{\bi x^2}=\bf 6x^2$
-%D $\tf x^2+\bf x^2+\sl x^2+\it x^2+\bs x^2+ \bi x^2 =\sl 6x^2$
-%D $\tf x^2+\bf x^2+\sl x^2+\it x^2+\bs x^2+{\bi x^2}=\sl 6x^2$
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D Gives both an expected and unexpected result:
-%D
-%D \startvoorbeeld
-%D \startlines
-%D \getbuffer
-%D \stoplines
-%D \stopvoorbeeld
-%D
-%D We see here that the character shapes change accordingly to
-%D the current family, but that the symbols are always typeset
-%D in the font assigned to \type{\fam0}.
-%D
-%D \startbuffer
-%D $\tf\mf x^2 + x^2 + x^2 + x^2 + x^2 + x^2 = 6x^2$
-%D $\bf\mf x^2 + x^2 + x^2 + x^2 + x^2 + x^2 = 6x^2$
-%D $\sl\mf x^2 + x^2 + x^2 + x^2 + x^2 + x^2 = 6x^2$
-%D $\bs\mf x^2 + x^2 + x^2 + x^2 + x^2 + x^2 = 6x^2$
-%D $\it\mf x^2 + x^2 + x^2 + x^2 + x^2 + x^2 = 6x^2$
-%D $\bi\mf x^2 + x^2 + x^2 + x^2 + x^2 + x^2 = 6x^2$
-%D \stopbuffer
-%D
-%D \startvoorbeeld
-%D \startlines
-%D \getbuffer
-%D \stoplines
-%D \stopvoorbeeld
-%D
-%D In this example we see a new command \type{\mf} surface
-%D which means as much as {\em math font}. This commands
-%D reactivates the last font alternative and therefore equals
-%D \type{\bf}, \type{\sl} etc. but by default it equals
-%D \type{\tf}:
-
-\unexpanded\def\mf
- {\dodosetmathfont\fontalternative
- \csname\fontalternative\endcsname}
-
-%D The previous example was typeset saying:
-%D
-%D \typebuffer
-%D
-%D Beware: the exact location of \type{\mf} is not that
-%D important, we could as well has said
-%D
-%D \startbuffer
-%D $\bf x^2 + x^2 + x^2 + x^2 + x^2 + x^2 = \mf 6x^2$
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D This is due to the way \TEX\ handles fonts in math mode.
-%D
-%D Of course we'll have to redefine \type{\mf} every time we
-%D change the current \type{\fam}.
-
-%D \macros
-%D {mbox,enablembox,mathop}
-%D
-%D Now how can we put this to use? Will the next sequence
-%D give the desired result?
-%D
-%D \startbuffer
-%D $\bf x^2 + \hbox{\mf whatever} + \sin(2x)$
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D It won't!
-%D
-%D \startvoorbeeld
-%D \let\mathop=\normalmathop \getbuffer
-%D \stopvoorbeeld
-%D
-%D The reason for this is that \type{\sin} is defined as:
-%D
-%D \starttyping
-%D \def\sin{\mathop{\rm sin}\nolimits}
-%D \stoptyping
-%D
-%D We can fix this by defining
-
-\let\normalmathop=\mathop
-
-\def\mathop
- {\normalmathop
- \bgroup
- \let\rm\mf
- \let\next=}
-
-%D We can fix arbitrary horizontal boxes by redefining the
-%D \TEX\ primitive \type{\hbox}:
-%D
-%D \starttyping
-%D \let\normalhbox=\hbox
-%D
-%D \def\hbox{\ifmmode\mbox\else\normalhbox\fi}
-%D \stoptyping
-%D
-%D with
-%D
-%D \starttyping
-%D \def\mbox#1#%
-%D {\normalhbox#1\bgroup\mf\let\next=}
-%D \stoptyping
-%D
-%D or more robust, that is, also accepting \type{\hbox\bgroup}:
-%D
-%D \starttyping
-%D \def\mbox%
-%D {\normalhbox\bgroup\mf
-%D \dowithnextbox{\flushnextbox\egroup}%
-%D \normalhbox}
-%D \stoptyping
-%D
-%D And now:
-%D
-%D \startbuffer
-%D $\bf x^2 + \hbox{whatever} + \sin(2x)$
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D Indeed gives:
-%D
-%D \startvoorbeeld
-%D \enablembox\getbuffer
-%D \stopvoorbeeld
-%D
-%D But, do we want this kind of trickery to be activated? No,
-%D simply because we cannot be sure of incompatibilities,
-%D although for instance unboxing goes ok. Therefore we
-%D introduce:
-
-% best can go to math-ini and make \mf a hook then
-
-% better use \dowithnextboxcontent
-
-\def\normalmbox
- {\normalhbox\bgroup\mf
- \dowithnextbox{\flushnextbox\egroup}\normalhbox}
-
-% to test:
-%
-% \def\normalmbox
-% {\dowithnextboxcontent\mf\flushnextbox\normalhbox}
-
-\def\mbox
- {\ifmmode\normalmbox\else\normalhbox\fi}
-
-\def\enablembox
- {\appendtoks
- \ifx\normalhbox\undefined\let\normalhbox\hbox\fi
- \let\hbox\mbox
- \to\everymathematics}
-
-%D So in fact one can enable this feature if needed. I would say:
-%D go along, but use grouping if needed!
-
-%D \macros
-%D {mrfam,mifam,syfam,exfam,
-%D bsfam,bifam,scfam,tffam,
-%D mafam,mbfam,msfam}
-%D
-%D After this short mathematical excursion, we enter the world
-%D of fonts and fontswitching. We start with something very
-%D \TEX: \type{\fam} specified font families. \TEX\ uses
-%D families for managing fonts in math mode. Such a family has
-%D three members: text, script and scriptscript: $x^{y^z}$. In
-%D \CONTEXT\ we take a bit different approach than \PLAIN\
-%D \TEX\ does. \PLAIN\ \TEX\ needs at least four families for
-%D typesetting math. We use those but give them symbolic names.
-
-\chardef\mrfam = 0 % (Plain TeX) Math Roman
-\chardef\mifam = 1 % (Plain TeX) Math Italic
-\chardef\syfam = 2 % (Plain TeX) Math Symbol
-\chardef\exfam = 3 % (Plain TeX) Math Extra
-
-%D \PLAIN\ \TEX\ also defines families for {\it italic}, {\sl
-%D slanted} and {\bf bold} typefaces, so we don't have to
-%D define them here.
-
-\ifx\itfam\undefined
-
-\chardef\itfam = 4 % (Plain TeX) Italic
-\chardef\slfam = 5 % (Plain TeX) Slanted
-\chardef\bffam = 6 % (Plain TeX) Boldface
-
-\fi
-
-%D Family~7 in \PLAIN\ \TEX\ is not used in \CONTEXT, because
-%D we do massive switches from roman to sans serif, teletype or
-%D other faces.
-
-\ifx\ttfam\undefined
-
-\chardef\ttfam = 7 % (Plain TeX) can be reused!
-
-\fi
-
-%D We define ourselves some more families for {\bs bold
-%D slanted}, {\bi bold italic} and {\sc Small Caps}, so
-%D we can use them in math mode too. Instead of separate
-%D families for {\ss sans serif} and \type{teletype} we use the
-%D more general \type{\tffam}, which stands for typeface.
-
-\chardef\bsfam = 8 % (ConTeXt) BoldSlanted
-\chardef\bifam = 9 % (ConTeXt) BoldItalic
-\chardef\scfam = 10 % (ConTeXt) SmallCaps
-\chardef\tffam = 11 % (ConTeXt) TypeFace
-
-%D Because Taco needs a few more math families, we reuse
-%D family~7 for all those typefaces that have no related
-%D family, and therefore are grouped into one.
-
-\chardef\nnfam = 7 % (ReUsed) NoName
-
-%D Normally \type{\mrfam} equals \type{\tffam}, but a more
-%D distinctive alternatives are possible, for instance the
-%D Euler and Concrete Typefaces.
-%D
-%D After having defined all those in nature non||mathematical
-%D families, we define ourselves some real math ones. These are
-%D needed for the \AMS\ Symbol Fonts and Extended Lucida
-%D Bright.
-
-\chardef\mafam = 12 % (ConTeXt) Math A Fam (AmsTeX A)
-\chardef\mbfam = 13 % (ConTeXt) Math B Fam (AmsTeX B)
-\chardef\mcfam = 14 % (ConTeXt) Math C Fam (MathTime)
-\chardef\mdfam = 15 % (ConTeXt) Math D Fam (MathTime)
-
-%D Because there are 16~families and because \type{\ttfam}
-%D is reused, at the moment we have no so many families
-%D left. By default, we map any newly defined family on the
-%D last one (F).
-
-\def\newfam#1{\chardef#1=15 }
-
-%D This hack is also needed because in \ETEX\ we are going
-%D to reuse the \type {\newfam} allocation counter.
-
-%D To ease the support of font packages, we als define
-%D shortcuts to these familynames. This is necessary because
-%D the family names are in fact \type{\chardef}'s, which means
-%D that we're dealing with numbers (one can check this by
-%D applying \type{\showthe} and \type{\show}). In the
-%D specification of math symbols however we need hexadecimal
-%D numbers, so we have to convert the \type{\fam}'s value.
-
-\edef\hexmrfam {\hexnumber\mrfam} \edef\hexbsfam {\hexnumber\bsfam}
-\edef\hexmifam {\hexnumber\mifam} \edef\hexbifam {\hexnumber\bifam}
-\edef\hexsyfam {\hexnumber\syfam} \edef\hexscfam {\hexnumber\scfam}
-\edef\hexexfam {\hexnumber\exfam} \edef\hextffam {\hexnumber\tffam}
-\edef\hexitfam {\hexnumber\itfam} \edef\hexmafam {\hexnumber\mafam}
-\edef\hexslfam {\hexnumber\slfam} \edef\hexmbfam {\hexnumber\mbfam}
-\edef\hexbffam {\hexnumber\bffam} \edef\hexmcfam {\hexnumber\mcfam}
-\edef\hexnnfam {\hexnumber\nnfam} \edef\hexmdfam {\hexnumber\mdfam}
-
-%D \macros
-%D {uchar}
-%D
-%D This macro prepares \CONTEXT\ for \UNICODE\ support. By
-%D defining it here, we have at least an safeguard for utility
-%D file reading.
-
-\ifx\uchar\undefined \unexpanded\def\uchar#1#2{[#1,#2]} \fi
-
-%D We define some (very private) constants to improve speed,
-%D memory usage and consistency.
-
-\def\@size@ {@f@si@} % bodyfont size prefix (12pt etc)
-\def\@style@ {@f@st@} % full style prefix (roman etc)
-\def\@shortstyle@ {@f@sh@} % short style prefix (rm etc)
-\def\@letter@ {@f@le@} % first alternative typeface
-\def\@noletter@ {@f@no@} % second alternative typeface
-
-%D The families can be grouped into math specific ones and
-%D more text related families, although text ones can be
-%D mapped onto the math ones to get for instance bold math.
-%D
-%D Both groups of families are handles by a couple of token
-%D list tagged as strategies. This implementation makes
-%D implementing extensions more comfortable.
-
-\newtoks \textstrategies
-\newtoks \mathstrategies
-\newtoks \symbstrategies
-
-\newif\ifsynchronizemathfonts \synchronizemathfontstrue
-
-\def\synchronizetext % stylish text in mmode
- {\ifsynchronizemathfonts\the\textstrategies\fi} % \if...\fam\minusone\fi}
-
-\def\synchronizemath % math stuff in mmode
- {\ifsynchronizemathfonts\the\mathstrategies\fi} % \if...\fam\minusone\fi}
-
-\def\synchronizesymb % stylish math stuff in mmode
- {\ifsynchronizemathfonts\the\symbstrategies\fi} % \if...\fam\minusone\fi}
-
-%D By not setting the family we can append a font switch to \type
-%D {\everymath}. On the other hand, one never knows in what family
-%D state the strategies brought us.
-%D
-%D \starttyping
-%D {\bfa $\the\fam$} {\bfa \everymath{} $\the\fam$}
-%D \stoptyping
-
-%D \macros
-%D {textonly}
-%D
-%D We can inhibit this slow||downer with:
-
-\def\textonly{\synchronizemathfontsfalse} % document this
-
-\appendtoks
- \dosettextfamily\c!tf
- \dosettextfamily\c!bf
- \dosettextfamily\c!sl
- \dosettextfamily\c!it
- \dosettextfamily\c!bs
- \dosettextfamily\c!bi
- \dosettextfamily\c!sc
-\to \textstrategies
-
-\def\dosettextfamily#1% better pass fontbody to dodoset
- {\let\savedfontbody\fontbody
- \let\fontfamily#1%
- \let\fontbody\scriptscriptface\dodosettextfamily\scriptscriptfont
- \let\fontbody\scriptface \dodosettextfamily \scriptfont
- \let\fontbody\textface \dodosettextfamily \textfont
- \let\fontbody\savedfontbody}
-
-% \def\s!nullfont{nullfont}
-
-\def\dodosettextfamily
- {\ifx\fontclass\empty
- \@EA\dodosettextfamilyA
- \else
- \@EA\dodosettextfamilyB
- \fi}
-
-\def\dodosettextfamilyA#1%
- {\ifcsname \fontbody\c!mm\fontfamily\fontsize\endcsname \autofontsizefalse
- \csname \fontbody\c!mm\fontfamily\fontsize\endcsname \else
- \ifcsname \fontbody\c!mm\fontfamily\endcsname \autofontsizetrue
- \csname \fontbody\c!mm\fontfamily\endcsname \else
- \ifcsname \fontbody\c!rm\fontfamily\fontsize\endcsname \autofontsizefalse
- \csname \fontbody\c!rm\fontfamily\fontsize\endcsname \else
- \ifcsname \fontbody\c!rm\fontfamily\endcsname \autofontsizetrue
- \csname \fontbody\c!rm\fontfamily\endcsname \else
- \nullfont \autofontsizetrue
- \fi\fi\fi\fi
- #1\csname\fontfamily\s!fam\endcsname\font}
-
-\def\dodosettextfamilyB#1%
- {\ifcsname\fontclass\fontbody\c!mm\fontfamily\fontsize\endcsname \autofontsizefalse
- \csname\fontclass\fontbody\c!mm\fontfamily\fontsize\endcsname \else
- \ifcsname\fontclass\fontbody\c!mm\fontfamily\endcsname \autofontsizetrue
- \csname\fontclass\fontbody\c!mm\fontfamily\endcsname \else
- \ifcsname\fontclass\fontbody\c!rm\fontfamily\fontsize\endcsname \autofontsizefalse
- \csname\fontclass\fontbody\c!rm\fontfamily\fontsize\endcsname \else
- \ifcsname\fontclass\fontbody\c!rm\fontfamily\endcsname \autofontsizetrue
- \csname\fontclass\fontbody\c!rm\fontfamily\endcsname \else
- \dodosettextfamilyA#1%
- \fi\fi\fi\fi
- #1\csname\fontfamily\s!fam\endcsname\font}
-
-\def\mrfallback{\c!rm\c!tf}
-
-\appendtoks
- \dosetmathfamily\mrfam\textface\scriptface\scriptscriptface\c!mr\mrfallback
- \dosetmathfamily\mifam\textface\scriptface\scriptscriptface\c!mi\empty
- \dosetmathfamily\syfam\textface\scriptface\scriptscriptface\c!sy\empty
- \dosetmathfamily\exfam\textface\textface \textface \c!ex\empty
- \dosetmathfamily\mafam\textface\scriptface\scriptscriptface\c!ma\empty
- \dosetmathfamily\mbfam\textface\scriptface\scriptscriptface\c!mb\empty
- \dosetmathfamily\mcfam\textface\scriptface\scriptscriptface\c!mc\empty
-% \dosetmathfamily\mdfam\textface\scriptface\scriptscriptface\c!md\empty
- \dosetmathfamily\nnfam\textface\scriptface\scriptscriptface\c!nn\empty
-\to \mathstrategies
-
-\appendtoks
- \dosetskewchar\mifam\defaultskewcharmi % implemented later on
- \dosetskewchar\syfam\defaultskewcharsy % implemented later on
-\to \mathstrategies
-
-\def\dosetmathfamily#1#2#3#4#5#6%
- {\let\savedfontbody\fontbody % op hoger plan
- \let\fontfamily#5%
- \let\backfamily#6%
- \let\fontbody #4\dodosetmathfamily\scriptscriptfont#1%
- \let\fontbody #3\dodosetmathfamily \scriptfont#1%
- \let\fontbody #2\dodosetmathfamily \textfont#1%
- \let\fontbody\savedfontbody}
-
-\def\dodosetmathfamily
- {\ifx\fontclass\empty
- \@EA\dodosetmathfamilyA
- \else
- \@EA\dodosetmathfamilyB
- \fi}
-
-\def\dodosetmathfamilyA#1#2%
- {\ifcsname \fontbody\c!mm\fontfamily\fontsize\endcsname \autofontsizefalse
- \csname \fontbody\c!mm\fontfamily\fontsize\endcsname \else
- \ifcsname \fontbody\c!mm\fontfamily \endcsname \autofontsizetrue
- \csname \fontbody\c!mm\fontfamily \endcsname \else
- \ifcsname \fontbody \backfamily\fontsize\endcsname \autofontsizefalse
- \csname \fontbody \backfamily\fontsize\endcsname \else
- \ifcsname \fontbody \backfamily \endcsname \autofontsizetrue
- \csname \fontbody \backfamily \endcsname \else
- \nullfont \autofontsizetrue
- \fi\fi\fi\fi
- #1#2\font}
-
-\def\dodosetmathfamilyB#1#2%
- {\ifcsname\fontclass\fontbody\c!mm\fontfamily\fontsize\endcsname \autofontsizefalse
- \csname\fontclass\fontbody\c!mm\fontfamily\fontsize\endcsname \else
- \ifcsname\fontclass\fontbody\c!mm\fontfamily \endcsname \autofontsizetrue
- \csname\fontclass\fontbody\c!mm\fontfamily \endcsname \else
- \ifcsname\fontclass\fontbody \backfamily\fontsize\endcsname \autofontsizefalse
- \csname\fontclass\fontbody \backfamily\fontsize\endcsname \else
- \ifcsname\fontclass\fontbody \backfamily \endcsname \autofontsizetrue
- \csname\fontclass\fontbody \backfamily \endcsname \else
- \dodosetmathfamilyA#1#2%
- \fi\fi\fi\fi
- #1#2\font}
-
-\appendtoks
- \dosetsymbfamily\mrfam\textface\scriptface\scriptscriptface\c!mr
- \dosetsymbfamily\mifam\textface\scriptface\scriptscriptface\c!mi
- \dosetsymbfamily\syfam\textface\scriptface\scriptscriptface\c!sy
- \dosetsymbfamily\exfam\textface\textface \textface \c!ex
- \dosetsymbfamily\mafam\textface\scriptface\scriptscriptface\c!ma
- \dosetsymbfamily\mbfam\textface\scriptface\scriptscriptface\c!mb
- \dosetsymbfamily\mcfam\textface\scriptface\scriptscriptface\c!mc
-% \dosetsymbfamily\mdfam\textface\scriptface\scriptscriptface\c!md % also ?
-\to \symbstrategies
-
-\def\dosetsymbfamily#1#2#3#4#5%
- {\let\savedfontbody\fontbody
- \let\fontfamily#5%
- \let\fontbody #4\dodosetsymbfamily\scriptscriptfont#1%
- \let\fontbody #3\dodosetsymbfamily \scriptfont#1%
- \let\fontbody #2\dodosetsymbfamily \textfont#1%
- \let\fontbody\savedfontbody}
-
-\def\dodosetsymbfamily#1#2%
- {\ifcsname\fontclass\fontbody\c!mm\fontfamily\fontalternative\fontsize\endcsname
- \csname\fontclass\fontbody\c!mm\fontfamily\fontalternative\fontsize\endcsname
- #1#2\font
- \else\ifcsname\fontbody\c!mm\fontfamily\fontalternative\fontsize\endcsname
- \csname\fontbody\c!mm\fontfamily\fontalternative\fontsize\endcsname
- #1#2\font
- \fi\fi}
-
-%D All used styles, like rm, ss and tt, are saved in a comma
-%D separated list. Appart from practical limitations one can
-%D define as many styles as needed.
-
-\let\stylelist=\empty
-
-\def\fontsizelist{\s!text,\s!script,\s!scriptscript,\c!x,\c!xx,\c!big,\c!small}
-
-%D \macros
-%D {magfactor,magfactorhalf}
-%D
-%D There are several ways to specify a font. Three of them are
-%D pure \TeX\ ones, the fourth one is new:
-%D
-%D \starttyping
-%D \font\name=cmr12
-%D \font\name=cmr12 at 10pt
-%D \font\name=cmr12 scaled \magstep2
-%D \font\name=cmr12 sa 1.440
-%D \stoptyping
-%D
-%D The non||\TEX\ alternative \type{sa} stands for {\em scaled
-%D at}. This means as much as: scale the bodyfontsize with this
-%D factor. The value 1.440 in this example is derived
-%D from the \type{\magstep}'s as mentioned in
-%D \in{table}[tab:magstep]. We therefore introduce
-%D \type{\magfactor} as an alternative for \type{\magstep}.
-%D
-%D \placetable[here][tab:magstep]
-%D {Factors to be used with \type{sa.}}
-%D \starttable[|c|c|c|]
-%D \HL
-%D \NC \bf magstep \NC \bf equivalent \NC \bf factor \NC\SR
-%D \HL
-%D \NC 1 \NC \type{\magfactor1} \NC 1.200 \NC\FR
-%D \NC 2 \NC \type{\magfactor2} \NC 1.440 \NC\MR
-%D \NC 3 \NC \type{\magfactor3} \NC 1.728 \NC\MR
-%D \NC 4 \NC \type{\magfactor4} \NC 2.074 \NC\MR
-%D \NC 5 \NC \type{\magfactor5} \NC 2.488 \NC\LR
-%D \HL
-%D \stoptable
-
-\def\magstep#1% \relax removed, otherwise space after it sticks, else added
- {\ifcase#1 \@m\or1200\or1440\or1728\or2074\or2488\or\@m\fi}
-
-\def\magstephalf
- {1095}
-
-\def\magfactor#1%
- {\ifcase#1 1.000\or1.200\or1.440\or1.728\or2.074\or2.488\or1\fi}
-
-\def\magfactorhalf
- {1.095}
-
-%D These macros enable the use of definitions like \type{sa
-%D \magfactor3} which saves us both (mis|)|calculations and
-%D potential mistypings.
-%D
-%D Because \type {sa} (scaled at) and \type {mo} (mapped on)
-%D are not low level \TEX\ supported alternatives, we have to
-%D test for it ourselves. In doing so, we need an auxiliary
-%D \DIMENSION. We cannot use \type{\scratchdimen} because font
-%D loading can happen at any moment due to postponed loading.
-%D We could instead have used dirty grouping tricks, but this
-%D one works too.
-
-\let\defaultrelativefontsize \plusone
-\let\localrelativefontsize \plusone
-\def\localabsolutefontsize {\fontbody}
-
-\let\relativefontsize \defaultrelativefontsize
-
-\def\saverelativefontsize#1#2% #1=rm|ss|.. #2=waarde
- {\setxvalue{\fontclass#1\s!rscale}{#2}}
-
-\def\checkrelativefontsize#1%
- {\edef\relativefontsize
- {\ifcsname\fontclass#1\s!rscale\endcsname
- \csname\fontclass#1\s!rscale\endcsname
- \else
- \defaultrelativefontsize
- \fi}}
-
-%D We also save:
-
-\def\savemathtextstyle#1% #1=rm|ss|..
- {\doifsomething{#1}{\setxvalue{\fontclass\c!mm\s!text}{#1}}}
-
-\def\currentmathtextstyle % we default to empty !
- {\executeifdefined{\fontclass\c!mm\s!text}\empty}
-
-%D Scaling macros:
-
-\newdimen\scaledfont
-
-\let\somefontspec\empty
-
-\def\@fs@{@fs@}
-
-% \def\parsefontspec#1%
-% {\xdef\somefontspec{#1\space\relax}%
-% \@EA\doparsefontspec\somefontspec]% =>#1 \relax]
-% \donoparsefontspec}
-%
-% but, better:
-
-\let\somefontname\empty
-
-\def\parsefontspec#1%
- {\xdef\somefontspec{#1\space}%
- \@EA\doparsefontspec\somefontspec\relax]% =>#1 \relax]
- \donoparsefontspec}
-
-\def\doparsefontspec#1 #2%
- {\def\somefontname{#1}%
- \ifx\somefontname\empty % space before fontname
- \@EA\doparsefontspec
- \else\ifx#2\relax
- \@EAEAEA\setnaturalfontspec
- \else
- \@EAEAEA\setforcedfontspec
- \fi\fi
- #2}
-
-\def\setnaturalfontspec#1]%
- {\@fs@scaled\plusthousand\relax}
-
-\def\setforcedfontspec#1 #2\relax]%
- {\csname\@fs@#1\endcsname#2\relax}
-
-\def\@fs@scaled
- {\afterassignment\do@fs@scaled\scratchcounter}
-
-\def\do@fs@scaled#1\relax
- {\scaledfont\number\scratchcounter\points
- \scaledfont\localrelativefontsize\scaledfont
- \ifautofontsize\scaledfont\currentfontbodyscale\scaledfont\fi
- \scratchcounter\scaledfont % \scaledfont is now pretty large
- \advance\scratchcounter \medcard
- \divide\scratchcounter \maxcard
- \xdef\somefontspec{ scaled \the\scratchcounter}}
-
-\def\@fs@at
- {\afterassignment\do@fs@at\scaledfont}
-
-\def\do@fs@at#1\relax
- {\scaledfont\localrelativefontsize\scaledfont
- \ifautofontsize\scaledfont\currentfontbodyscale\scaledfont\fi
- \xdef\somefontspec{ at \the\scaledfont}}
-
-\def\@fs@sa
- {\scaledfont\localabsolutefontsize
- \setsamofontspec}
-
-\def\@fs@mo
- {\scaledfont\setmappedfontsize\localabsolutefontsize
- \setsamofontspec}
-
-\def\setsamofontspec#1\relax
- {\checkfontscale#1\end\scaledfont
- \scaledfont\localrelativefontsize\scaledfont
- \ifautofontsize\scaledfont\currentfontbodyscale\scaledfont\fi
- \xdef\somefontspec{ at \the\scaledfont}}
-
-\def\getfontparameters
- {\expandafter\dogetfontparameter\@@fontdata,]=,}
-
-\def\getglobalfontparameters
- {\expandafter\dogetglobalfontparameter\@@fontdata,]=,}
-
-\def\dogetfontparameter#1=#2,%
- {\if]#1\else
- \expandafter\def\csname\??ff\@@fontfile#1\endcsname{#2}%
- \expandafter\dogetfontparameter
- \fi}
-
-\def\dogetglobalfontparameter#1=#2,%
- {\if]#1\else
- \expandafter\gdef\csname\??ff\@@fontfile#1\endcsname{#2}%
- \expandafter\dogetglobalfontparameter
- \fi}
-
-\let\@@fontencoding\empty
-\let\@@fontmapping \empty
-\let\@@fonthandling\empty
-\let\@@fontfeatures\empty
-\let\@@skewchar \empty
-\let\@@hyphenchar \empty % todo, will go to encoding
-
-%D This brings down maps processing from 466 to 309 seconds
-%D ($-33$\%) and mfonts from 42 to 34 seconds ($-15$\%).
-
-\newif\ifskipfontcharacteristics \skipfontcharacteristicstrue
-
-%D When fontclasses are used, we define the font global,
-%D since namespaces are used. Otherwise we parse the specs
-%D each time.
-
-% wrong: this way we cannot set encoding etc
-%
-% \def\donoparsefontspec#1%
-% {\edef\fontfile{\truefontname\somefontname}%
-% \ifx\fontfile\s!unknown \let\fontfile\defaultfontfile \fi
-% \edef\lastfontname{\fontfile\somefontspec}%
-% \ifx\fontclass\empty\else\global\fi
-% \expandafter\font\csname#1\endcsname\lastfontname\relax
-% \relax}
-
-\let\fontfile\s!unknown
-
-\ifx\checkfontfilename\undefined \let\checkfontfilename\relax \fi
-
-% \definefontsynonym
-% [blabla]
-% [name:Latin Modern Something]
-% \definefontsynonym
-% [blabla]
-% [file:texnansi-lmr10]
-% [encoding=texnansi]
-% \definedfont[blabla] test \currentencoding/\fontfile \par
-% \definefontsynonym
-% [blabla]
-% [texnansi-lmtt10]
-% [encoding=texnansi]
-% \definedfont[blabla] test \currentencoding/\fontfile \par
-% \definefontsynonym
-% [blabla]
-% [ec-lmtt10]
-% [encoding=ec]
-% \definedfont[blabla] test \currentencoding/\fontfile \par
-
-\beginOLDTEX
-
- \def\checkfontfilename
- {\expandafter\docheckfontfilename\fontfile:\empty:\empty\relax}
-
- \def\docheckfontfilename#1:#2:#3#4\relax
- {\edef\!!stringa{#1}%
- \edef\!!stringb{#2}%
- \ifx\!!stringb\empty
- \edef\checkedfontfile{\!!stringa}%
- \else\ifx\!!stringa\v!file
- \edef\checkedfontfile{"\!!stringb"}%
- \else\ifx\!!stringa\v!name
- \edef\checkedfontfile{"\!!stringb"}%
- \else
- \edef\checkedfontfile{\!!stringb}%
- \fi\fi\fi}
-
-\endOLDTEX
-
-% \definefontfeature[default] [liga=yes,texligatures=yes,texquotes=yes]
-% \definefontfeature[default-caps][liga=yes,texligatures=yes,texquotes=yes,smcp=yes,script=latn]
-%
-% \starttypescript [serif] [palatino-nova-regular] [name]
-% \definefontsynonym[Serif] [palatinonova-regular][features=default]
-% \definefontsynonym[SerifCaps][palatinonova-regular][features=default-caps] % also sets Serif
-% \stoptypescript
-%
-% \starttypescript [serif] [palatino-nova-regular] [name]
-% \definefontsynonym[Serif] [palatinonova-regular*default]
-% \definefontsynonym[SerifCaps] [palatinonova-regular*default-caps]
-% \stoptypescript
-
-% \definetypeface[mainface][rm][serif][palatino-nova-regular][default] \setupbodyfont[mainface]
-%
-% \starttext
-% ``Test'' -- --- ff fi fl \sc ``Test'' -- --- ff fi fl
-% \stoptext
-
-% \starttext
-% \definefont
-% [blabla]
-% [name:Latin Modern Something]
-% \definefont
-% [blabla]
-% [file:texnansi-lmr10]
-% \blabla test
-% \definefont
-% [blabla]
-% [texnansi-lmtt10]
-% \blabla test
-% \stoptext
-
-% \starttext
-%
-% \setupcolors[state=start]
-%
-% \definefontfeature
-% [default-base]
-% [script=latn,language=dflt,liga=yes,kern=yes,tlig=yes,trep=yes]
-% \definefontfeature
-% [default-node]
-% [script=latn,language=dflt,liga=yes,kern=yes,tlig=yes,trep=yes,mode=node]
-% \definefontfeature
-% [default-none]
-% [script=latn,language=dflt,liga=yes,kern=no, tlig=yes,trep=yes]
-%
-% \startoverlay
-% {\vtop{\color[red] {\font\test=name:lmroman12regular*default-node \test \input ward \input zapf \input linden }}}
-% {\vtop{\color[green]{\font\test=name:lmroman12regular*default-base \test \input ward \input zapf \input linden }}}
-% {\vtop{\color[blue] {\font\test=name:lmroman12regular*default-none \test \input ward \input zapf \input linden }}}
-% \stopoverlay
-%
-% \blank
-%
-% \startoverlay
-% {\vtop{\color[red] {\font\test=name:texgyrepagella*default-node \test \input ward \input zapf \input linden }}}
-% {\vtop{\color[green]{\font\test=name:texgyrepagella*default-base \test \input ward \input zapf \input linden }}}
-% {\vtop{\color[blue] {\font\test=name:texgyrepagella*default-none \test \input ward \input zapf \input linden }}}
-% \stopoverlay
-%
-% \blank
-%
-% \startoverlay
-% {\vtop{\color[red] {\font\test=name:palatinonovaregular*default-node \test \input ward \input zapf \input linden }}}
-% {\vtop{\color[green]{\font\test=name:palatinonovaregular*default-base \test \input ward \input zapf \input linden }}}
-% {\vtop{\color[blue] {\font\test=name:palatinonovaregular*default-none \test \input ward \input zapf \input linden }}}
-% \stopoverlay
-%
-% \startoverlay
-% {\vtop{\color[red] {\font\test=name:OfficinaSerifBookITC*default-node \test \input ward \input zapf \input linden }}}
-% {\vtop{\color[green]{\font\test=name:OfficinaSerifBookITC*default-base \test \input ward \input zapf \input linden }}}
-% {\vtop{\color[blue] {\font\test=name:OfficinaSerifBookITC*default-none \test \input ward \input zapf \input linden }}}
-% \stopoverlay
-%
-% \definefontfeature[superdefault][default][compose=yes]
-%
-% {\font\oeps=name:lmroman10regular*default at 30pt \oeps test \char7683}
-% {\font\oeps=name:lmroman10regular*superdefault at 30pt \oeps test \char7683}
-%
-% \stoptext
-
-\beginLUATEX
-
- \def\checkfontfilename% -- todo: integrate so that we call do.. directly
- {\expandafter\docheckfontfilename\fontfile*\empty*\relax}
-
- \def\docheckfontfilename#1*#2#3*#4\relax % class overrules file
- {\edef\checkedfontfile{{%
- #1%
- \expandafter\ifx\csname\fontclass\s!features\endcsname\empty
- \ifx\@@fontfeatures\empty\ifx#2\empty\else*#2#3\fi\else*\@@fontfeatures\fi
- \else
- *\csname\fontclass\s!features\endcsname
- \fi
- }}%
- \doshowcheckedfontfeatures}
-
-\endLUATEX
-
-% xetex / todo: disable default features ! file:, name:, [], "" etc etc
-
-\beginXETEX
-
- % for some reason xetex does not support [filename] for tfm files and
- % quotes also behave kind of strange " vs ' vs [ vs ...
-
- % we need to use the specs,
- %
- % \font\myfont = msam7 % ok
- % \font\myfont = "msam7" % also ok
- % \font\myfont = "msam7" at 8pt % error
-
- \ifx\suppressfontnotfounderror\undefined
-
- \newcount\xetexsavedinteractionmode
- \newbox \xetexcrappyhackbox
-
- \def\doiffoundxetexfontelse#1#2%
- {\xetexsavedinteractionmode\interactionmode
- \batchmode
- \setbox\xetexcrappyhackbox\vbox{\par}% resets error count
- \font\xetextempfont=#2\somefontspec\relax
- \edef\xetextempfont{\fontname\xetextempfont}%
- \ifx\xetextempfont\nullfontname
- \interactionmode\xetexsavedinteractionmode
- %\writestatus\m!fonts{fails #1: #2 (\xetextempfont)}%
- \expandafter\secondoftwoarguments
- \else
- \interactionmode\xetexsavedinteractionmode
- %\writestatus\m!fonts{succeeds #1: #2 (\xetextempfont)}%
- \expandafter\firstoftwoarguments
- \fi}
-
- \else
-
- \def\doiffoundxetexfontelse#1#2%
- {\suppressfontnotfounderror\plusone
- \font\xetextempfont=#2\somefontspec\relax
- \suppressfontnotfounderror\zerocount
- \edef\xetextempfont{\fontname\xetextempfont}%
- \ifx\xetextempfont\nullfontname
- %\writestatus\m!fonts{fails #1: #2 (\xetextempfont)}%
- \expandafter\secondoftwoarguments
- \else
- %\writestatus\m!fonts{succeeds #1: #2 (\xetextempfont)}%
- \expandafter\firstoftwoarguments
- \fi}
-
- \fi
-
- \def\docheckfontfilenameprefix#1:#2:#3#4\relax
- {\edef\!!stringa{#1}%
- \edef\!!stringb{#2}%
- \ifx\!!stringb\empty
- % no prefix
- \let\checkedfontfile\!!stringa
- \doiffoundxetexfontelse{1a}{\checkedfontfile\checkedfontfeatures}
- {\edef\checkedfontfile{\checkedfontfile\checkedfontfeatures}}
- {\doiffoundxetexfontelse{1b}{"\checkedfontfile\checkedfontfeatures"}
- {\edef\checkedfontfile{"\checkedfontfile\checkedfontfeatures"}}
- {\doiffoundxetexfontelse{1c}{"[\checkedfontfile]\checkedfontfeatures"}
- {\edef\checkedfontfile{"[\checkedfontfile]\checkedfontfeatures"}}
- {}}}%
- \else\ifx\!!stringa\v!file
- % force file, only file check when no spaces
- \let\checkedfontfile\!!stringb
- \doiffoundxetexfontelse{2b}{"[\checkedfontfile]\checkedfontfeatures"}
- {\edef\checkedfontfile{"[\checkedfontfile]\checkedfontfeatures"}}
- {\doiffoundxetexfontelse{2c}{"\checkedfontfile\checkedfontfeatures"}
- {\edef\checkedfontfile{"\checkedfontfile\checkedfontfeatures"}}
- {}}%
- \else\ifx\!!stringa\v!name
- % force name, always lookup by xetex itself, "" forces otf/ttf/type1
- \edef\checkedfontfile{"\!!stringb\checkedfontfeatures"}%
- \else
- % whatever, maybe even xetex spec, forget about features
- \edef\checkedfontfile{"\!!stringa\!!stringb"}%
- \fi\fi\fi}
-
- \def\checkfontfilename% -- todo: integrate so that we call do.. directly
- {\expandafter\docheckfontfilename\fontfile*\empty*\relax}
-
- \def\docheckfontfilename#1*#2#3*#4\relax % class overrules file
- {\edef\checkedfontfeatures
- {\expandafter\ifx\csname\fontclass\s!features\endcsname\empty
- \ifx\@@fontfeatures\empty\ifx#2\empty\else#2#3\fi\else\@@fontfeatures\fi
- \else\expandafter\ifx\csname\fontclass\s!features\endcsname\relax % redundant, will go away
- \ifx\@@fontfeatures\empty\ifx#2\empty\else#2#3\fi\else\@@fontfeatures\fi
- \else
- \csname\fontclass\s!features\endcsname
- \fi\fi}%
- \ifx\checkedfontfeatures\empty
- % done
- \else
- \edef\checkedfontfeatures{\executeifdefined{\??fa\checkedfontfeatures}\empty}%
- \ifx\checkedfontfeatures\empty
- % done
- \else
- \let\convertedfontfeatures\empty
- \processcommacommand[\checkedfontfeatures]\doconvertfontfeatures % raw
- \ifx\convertedfontfeatures\empty
- \let\checkedfontfeatures\empty
- \else
- \edef\checkedfontfeatures{:\convertedfontfeatures}%
- \fi
- \fi
- \fi
- \docheckfontfilenameprefix#1:\empty:\empty\relax
- \doshowcheckedfontfeatures}
-
- \def\dodoconvertfontfeatures#1=#2#3=#4\relax
- {\ifx#2\empty
- % invalid feature
- \else\ifcsname @xtx@#1@#2#3\endcsname
- \edef\convertedfontfeatures{\convertedfontfeatures\csname @xtx@#1@#2#3\endcsname;}%
- \else
- \edef\!!stringa{#1}%
- \edef\!!stringb{#2#3}%
- \edef\convertedfontfeatures
- {\convertedfontfeatures
- \ifx\!!stringb\v!yes
- +\!!stringa
- \else\ifx\!!stringb\v!no
- -\!!stringa
- \else
- \!!stringa=\!!stringb
- \fi\fi;}%
- \fi\fi}
-
- \def\doconvertfontfeatures#1%
- {\dodoconvertfontfeatures#1=\empty=\relax}
-
- \def\remapfontfeature #1 #2 #3 {\setvalue{@xtx@#1@#2}{#3}}
-
- % this may move to another file, maybe font-xtx
-
- \remapfontfeature tlig yes mapping=tlig
- %remapfontfeature tlig no mapping=
- %remapfontfeature trep yes mapping=tex-text
- %remapfontfeature trep no mapping=
- \remapfontfeature texligatures yes mapping=tlig
- %remapfontfeature texligatures no mapping=
- %remapfontfeature texquotes yes mapping=tex-text
- %remapfontfeature texquotes no mapping=
-
-\endXETEX
-
-\let\doshowcheckedfontfeatures\relax
-
-\def\showcheckedfontfeatures
- {\def\doshowcheckedfontfeatures{\writestatus\m!fonts{checked: \checkedfontfile}}}
-
-\def\checkedfontfile{\fontfile} % default
-
-% todo: adapt this to luatex, i.e. no encoding etc mess
-
-\def\donoparsefontspec % #1 == \cs
- {\edef\fontfile{\truefontname\somefontname}%
- \ifx\fontfile\s!unknown \let\fontfile\defaultfontfile \fi
- \updatefontparameters
- \checkfontfilename
- \edef\lastfontname{\checkedfontfile\somefontspec}%
- \ifx\fontclass\empty
- \expandafter\definefontlocal
- \else
- \expandafter\definefontglobal
- \fi} % #1 == \cs
-
-\def\definefontlocal#1%
- {\expandafter\edef\csname#1\endcsname % ! ! ! ! not needed in luatex ! ! ! !
- {\noexpand\csname#1:\endcsname
- \noexpand\reactivatefont{\somefontname}{\fontfile}}%
- \expandafter\font\csname#1:\endcsname\lastfontname\relax}
-
-\def\definefontglobal#1% stores \somefontname=Mono and \fontfile=cmtt10
- {\expandafter\xdef\csname#1\endcsname % ! ! ! ! not needed in luatex ! ! ! !
- {\noexpand\csname#1:\endcsname
- \noexpand\reactivatefont{\somefontname}{\fontfile}}%
- \global\expandafter\font\csname#1:\endcsname\lastfontname\relax}
-
-\def\reactivatefont#1#2%
- {\def\somefontname{#1}%
- \def\fontfile {#2}%
- \updatefontparameters}
-
-% can be handy for tracing purposes
-%
-% \def\reportfontdefinition
-% {\bgroup
-% \expanded{\infofont
-% [\lastfontidentifier
-% ->\newfontidentifier
-% ->\fontname\csname\newfontidentifier\endcsname]}%
-% \endgraf
-% \egroup}
-
-%D An additional the second \type {\font} definition can
-%D prevent fuzzy font refs
-%D
-%D \starttyping
-%D \expandafter\font\csname\dummyfontname\endcsname\lastfontname
-%D \stoptyping
-%D
-%D but somehow they changed \TEX\ so that it does not matter
-%D any more.
-
-\def \defaultfontfile{\truefontname{Normal}} % was cmtt10, but that one is gone
-\edef\nullfontname {\fontname\nullfont}
-\edef\dummyfontname {font\strippedcsname\\}
-
-\beginXETEX
- \def\defaultfontfile{lmtypewriter10-regular}
-\endXETEX
-
-%D \macros
-%D {everyfont,everyfontswitch}
-%D
-%D For special purposes, we provide a hook.
-
-% \newevery \everyfont \relax
-% \newevery \everyfontswitch \relax
-
-% safer but sometimes introducing newlines in the log
-%
-% \batchmode
-% \font\lastloadedfont\fontfile\somefontspec\relax
-% \errorstopmode
-% \edef\lastfontname{\fontname\lastloadedfont}%
-% \ifx\lastfontname\nullfontname
-% \showmessage\m!fonts{10}{\fontfile}%
-% \expandafter\font\csname#1\endcsname=\defaultfontfile\somefontspec\relax
-% \else
-% \expandafter\let\csname#1\endcsname\lastloadedfont
-% \fi
-
-%D We also accept \type{sa a}||\type{sa d} as specification.
-
-\def\checkfontscale#1#2\end#3%
- {#3\ifcsname\??ft\s!default\noexpand#1\endcsname
- \csname\??ft\s!default\noexpand#1\endcsname\else#1#2%
- \fi#3}
-
-%D The duplicate font definition, using the ever the same dummy
-%D font name, results in less fuzzy error messages. In the log
-%D file, for instance when overfull boxes are reported, the
-%D simple keyword `font' replaces the \TEX\ ordinated name. The
-%D latter can be too misleading, due to the fact that \TEX\ has
-%D a rather optimized font memory management. Thanks to Taco
-%D for helping me sort this out.
-
-%D \macros
-%D {definefontsynonym, doifelsefontsynonym,
-%D expandfontsynonym, truefontname, truefontdata}
-%D
-%D While looking for fonts, fontsynonyms are used for accessing
-%D the files!
-%D
-%D \starttyping
-%D \definefontsynonym[Serif][Lucida-Bright]
-%D \definefontsynonym[Lucida-Bright][lbr][encoding=texnansi]
-%D \stoptyping
-%D
-%D The definitions can be accessed by:
-%D
-%D \startlines
-%D name: \type {\truefontname{Lucida-Bright}}
-%D data: \type {\truefontdata{\truefontname{Lucida-Bright}}}
-%D \stoplines
-
-% \def\definefontsynonym
-% {\dotripleempty\dodefinefontsynonym}
-%
-% \def\dodefinefontsynonym[#1][#2][#3]%
-% {\@EA\edef\csname\??ff\fontclass#1\endcsname{#2}%
-% \ifthirdargument
-% \edef\@@fontdata{#3}%
-% \ifx\@@fontdata\empty \else
-% \edef\@@fontfile{#2}%
-% \ifx\fontclass\empty
-% \getfontparameters
-% \else
-% \getglobalfontparameters
-% \fi
-% \fi
-% \fi}
-%
-% slightly faster, noticable when loading many typefaces,
-%
-% \testfeatureonce{5000}{\definefontsynonym[somefont][somename]} \end
-
-\def\classfont#1#2{#1#2} % \definefont[whatever][\classfont{xx}{yy} at 10pt]
-
-\beginOLDTEX
-
-\def\definefontsynonym[#1]#2[#3]%
- {\edef\@@fontfile{#3}%
- \@EA\let\csname\??ff\fontclass#1\endcsname\@@fontfile
- \doifnextcharelse[\dodefinefontsynonym\donothing}
-
-\def\dodefinefontsynonym[#1]%
- {\edef\@@fontdata{#1}%
- \ifx\@@fontdata\empty \else \ifx\fontclass\empty
- \getfontparameters
- \else
- \getglobalfontparameters
- \fi \fi}
-
-\endOLDTEX
-
-% We need to move the feature into the filename else it may be
-% overloaded by another reference. For instance the definition of
-% a regular and caps variant can use the same font.
-
-% We could use an indirect method ... store in 'array' and refer to
-% slot.
-
-\beginNEWTEX
-
-\def\definefontsynonym[#1]#2[#3]%
- {\edef\@@fontname{#1}%
- \edef\@@fontfile{#3}%
- \doifnextcharelse[\dodefinefontsynonym\nodefinefontsynonym}
-
-\def\nodefinefontsynonym
- {\@EA\let\csname\??ff\fontclass\@@fontname\endcsname\@@fontfile}
-
-\def\dodefinefontsynonym[#1]%
- {\edef\@@fontdata{#1}%
- \ifx\@@fontdata\empty
- \nodefinefontsynonym
- \else
- \ifx\fontclass\empty
- \getfontparameters
- \else
- \getglobalfontparameters
- \fi
- \ifcsname\??ff\@@fontfile\s!features\endcsname
- \@EA\edef\csname\??ff\fontclass\@@fontname\endcsname{\@@fontfile*\csname\??ff\@@fontfile\s!features\endcsname}%
- \@EA\let\csname\??ff\@@fontfile\s!features\endcsname\undefined
- \else
- \nodefinefontsynonym
- \fi
- \fi}
-
-\endNEWTEX
-
-% \def\resetfontsynonym[#1]% fails
-% {\letbeundefined{\??ff\fontclass#1}\letbeundefined{\??ff#1}}
-
-\let\definefontfile\definefontsynonym % dedicated to Taco Hoekwater
-
-\def\setupfontsynonym
- {\dodoubleempty\dosetupfontsynonym}
-
-\def\dosetupfontsynonym[#1][#2]%
- {\edef\@@fontdata{#2}%
- \ifx\@@fontdata\empty \else
- \edef\@@fontfile{#1}%
- \ifx\fontclass\empty
- \getfontparameters
- \else
- \getglobalfontparameters
- \fi
- \fi}
-
-\def\truefontdata#1#2%
- {\ifcsname\??ff#1#2\endcsname
- % raw(Regular) raw(key)
- \csname\??ff#1#2\endcsname
- \else\ifcsname\??ff\fontclass#1\endcsname
- % exp(palatino Regular) raw(key)
- \expandafter\truefontdata\csname\??ff\fontclass#1\endcsname#2%
- \else\ifcsname\??ff#1\endcsname
- % exp(Regular) raw(key)
- \expandafter\truefontdata\csname\??ff#1\endcsname#2%
- \else\ifcsname\??ff#2\endcsname
- % raw(key)
- \csname\??ff#2\endcsname
- \fi\fi\fi\fi}
-
-\beginOLDTEX
-
-\def\truefontname#1%
- {\ifcsname\??ff\fontclass#1\endcsname
- \@EA\truefontname\csname\??ff\fontclass#1\endcsname
- \else\ifcsname\??ff#1\endcsname
- \@EA\truefontname\csname\??ff#1\endcsname
- \else
- #1%
- \fi\fi}
-
-\endOLDTEX
-
-\beginNEWTEX
-
-% simple version
-%
-% \def\truefontname#1%
-% {\@EA\dotruefontname#1*\relax}
-%
-% \def\dotruefontname#1*#2\relax
-% {\ifcsname\??ff\fontclass#1\endcsname
-% \@EA\truefontname\csname\??ff\fontclass#1\endcsname
-% \else\ifcsname\??ff#1\endcsname
-% \@EA\truefontname\csname\??ff#1\endcsname
-% \else
-% #1%
-% \fi\fi}
-%
-% last counts
-%
-% \def\truefontname#1%
-% {\@EA\dotruefontname#1*\empty*\relax}
-%
-% \def\dotruefontname#1*#2#3*#4\relax
-% {\ifcsname\??ff\fontclass#1\endcsname
-% \ifx#2\empty
-% \@EA\truefontname\csname\??ff\fontclass#1\endcsname
-% \else
-% \@EA\truefontname\csname\??ff\fontclass#1\endcsname*#2#3%
-% \fi
-% \else\ifcsname\??ff#1\endcsname
-% \ifx#2\empty
-% \@EA\truefontname\csname\??ff#1\endcsname
-% \else
-% \@EA\truefontname\csname\??ff#1\endcsname*#2#3%
-% \fi
-% \else
-% \ifx#2\empty
-% #1%
-% \else
-% #1*#2#3%
-% \fi
-% \fi\fi}
-%
-% first counts
-
-\def\truefontname#1%
- {\@EA\dotruefontname#1*\empty*\relax}
-
-\def\dotruefontname#1*#2#3*#4\relax
- {\ifcsname\??ff\fontclass#1\endcsname
- \ifx#2\empty
- \@EA\truefontname\csname\??ff\fontclass#1\endcsname
- \else
- \@EA\redotruefontname\csname\??ff\fontclass#1\endcsname*#2#3%
- \fi
- \else\ifcsname\??ff#1\endcsname
- \ifx#2\empty
- \@EA\truefontname\csname\??ff#1\endcsname
- \else
- \@EA\redotruefontname\csname\??ff#1\endcsname*#2#3%
- \fi
- \else
- #1\ifx#2\empty\else*#2#3\fi
- \fi\fi}
-
-\def\redotruefontname#1%
- {\@EA\dodotruefontname#1*\relax}
-
-\def\dodotruefontname#1*#2\relax
- {\ifcsname\??ff\fontclass#1\endcsname
- \@EA\redotruefontname\csname\??ff\fontclass#1\endcsname
- \else\ifcsname\??ff#1\endcsname
- \@EA\redotruefontname\csname\??ff#1\endcsname
- \else
- #1%
- \fi\fi}
-
-\endNEWTEX
-
-\def\expandfontsynonym#1#2% #2 := onelevelexpansion(#1)
- {\ifcsname\??ff\fontclass#2\endcsname
- \expandafter\def\expandafter#1\expandafter{\csname\??ff\fontclass#2\endcsname}%
- \fi}
-
-\def\doifelsefontsynonym#1%
- {\ifcsname\??ff\fontclass#1\endcsname
- \expandafter\firstoftwoarguments
- \else
- \expandafter\secondoftwoarguments
- \fi}
-
-% \definetypeface[palatino][rm][serif][palatino,allbold][default]
-%
-% \startfontclass[palatino]
-% \definefontsynonym [Serif] [SerifBold]
-% \definefontsynonym [SerifItalic] [SerifBoldItalic]
-% \definefontsynonym [SerifSlanted] [SerifBoldSlanted]
-% \definefontsynonym [SerifCaps] [SerifBold]
-% \stopfontclass
-%
-% \setupbodyfont[palatino]
-
-\def\startfontclass
- {\dosingleempty\dostartfontclass}
-
-\def\dostartfontclass[#1]%
- {\pushmacro\fontclass
- \doifelse{#1}{\v!each}
- {\let\fontclass\empty}
- {\doifsomething{#1}{\def\fontclass{#1}}}}
-
-\def\stopfontclass
- {\popmacro\fontclass}
-
-%D \macros
-%D {tracedfontname}
-%D
-%D A goody:
-
-\def\tracedfontencoding#1%
- {\ifcsname\??ff#1\s!encoding\endcsname
- \space[\csname\??ff#1\s!encoding\endcsname]%
- \fi}
-
-\def\tracedfontname#1%
- {\ifcsname\??ff\fontclass#1\endcsname
- #1\tracedfontencoding{\fontclass#1}\space->\space
- \@EA\tracedfontname\csname\??ff\fontclass#1\endcsname
- \else\ifcsname\??ff#1\endcsname
- #1\tracedfontencoding{#1}\space->\space
- \@EA\tracedfontname\csname\??ff#1\endcsname
- \else
- #1%
- \fi\fi}
-
-%D \macros
-%D {getfontfileparameters}
-%D
-%D For special purposes, one can use the next macro to
-%D access font file characteristics, for instance:
-%D
-%D \starttyping
-%D \getfontfileparameters{Regular}
-%D \stoptyping
-%D
-%D can result in:
-%D
-%D \starttyping
-%D \def\currentfontfileencoding{texnansi}
-%D \stoptyping
-
-% \def\@@currentfontfile{currentfontfile}
-%
-% \def\getfontfileparameters#1%
-% {\edef\fontdata{\truefontdata{\truefontname{#1}}}%
-% \expanded{\getparameters[\@@currentfontfile][\fontdata]}}
-
-\def\getfontfileparameters#1% can be simpler for mkii
- {\edef\@@truefontname{\truefontname{#1}}%
- \edef\currentfontfileencoding{\truefontdata\@@truefontname\s!encoding}%
- \edef\currentfontfilemapping {\truefontdata\@@truefontname\s!mapping }%
- \edef\currentfontfilehandling{\truefontdata\@@truefontname\s!handling}%
- \edef\currentfontfilefeatures{\truefontdata\@@truefontname\s!features}}
-
-%D \macros
-%D {definefont}
-%D
-%D Before we implement the main definition macro, we first show
-%D one for local use:
-%D
-%D \starttyping
-%D \definefont[Some][LucidaBright at 100pt] \Some some
-%D \definefont[More][LucidaBright scaled 3000] \More more
-%D \definefont[Nice][LucidaBright mp 2] \Nice nice
-%D \definefont[Text][LucidaBright sa 5.4] \Text last
-%D \stoptyping
-%D
-%D The implementation looks as follows:
-
-\def\definefont
- {\dotripleempty\dodefinefont}
-
-\def\dodefinefont[#1][#2][#3]% [name][spec][1.6 | line=10pt | setup_id]
- {\doifinstringelse{ }{#2}
- {\ifthirdargument
- \unexpanded\setvalue{#1}{\redodefinefont{#1}{#2}{#3}}%
- \else
- \unexpanded\setvalue{#1}{\dododefinefont{#1}{#2}}%
- \fi}
- {\definefont[#1][#2 sa *][#3]}}
-
-\def\redodefinefont#1#2#3%
- {\dododefinefont{#1}{#2}%
- \doifsetupselse{#3}
- {\setups[#3]} % don't forget to document this !
- {\setuplocalinterlinespace[#3]%
- \setupspacing}} % needed ?
-
-\def\definefrozenfont
- {\dotripleempty\dodefinefrozenfont}
-
-\def\dodefinefrozenfont[#1][#2][#3]%
- {\dodefinefont[#1][#2][#3]%
- \expandafter\let\csname\lastfontidentifier\expandafter\endcsname\csname\rawfontidentifier\endcsname}
-
-% \def\defineclassfont
-% {\doquadrupleempty\dodefineclassfont}
-%
-% \def\dodefineclassfont[#1][#2][#3][#4]% #2 = class
-% {\iffourthargument
-% \definefont[#1][#2#3][#4]%
-% %\else\ifthirdargument
-% % \definefont[#1][#2#3]%
-% \else
-% \definefont[#1][#2]%
-% \fi}
-
-%D The \type {*} makes the switch local, so that we can redefine a
-%D logical name and/or change the size in between.
-
-\newif\ifautofontsize \autofontsizetrue
-
-\let\lastfontidentifier\empty
-
-\def\rawfontidentifier{**\lastfontidentifier\fontsize**}
-\def\newfontidentifier{*\fontclass\lastfontidentifier\fontsize*}
-
-% best we can add the style as well because otherwise we get math encoding mixups
-%
-% \setupbodyfont [8pt] [\currentencoding/\ccaron\scaron\zcaron]
-% \blank
-% \switchtobodyfont[7pt] [\currentencoding/\ccaron\scaron\zcaron]
-
-\def\newfontidentifier{*\fontclass\lastfontidentifier\fontstyle\fontsize*}
-
-\def\dododefinefont#1#2%
- {\edef\lastfontidentifier{#1}%
- \let\localrelativefontsize\defaultrelativefontsize
- \let\localabsolutefontsize\fontbody
- \parsefontspec{#2}\rawfontidentifier
- \let\localrelativefontsize\defaultrelativefontsize % not needed
- \csname\rawfontidentifier\endcsname
- \autofontsizefalse
- \setfontcharacteristics
- \the\everyfontswitch}
-
-\def\xxdododefinefont#1#2#3#4% \autofontsizetrue is set by calling routine
- {\edef\lastfontidentifier{#3}%
- \ifcsname\newfontidentifier\endcsname\else
- \def\localrelativefontsize{#1}%
- \def\localabsolutefontsize{#2}%
- \parsefontspec{#4}\newfontidentifier
- \let\localrelativefontsize\defaultrelativefontsize % not needed
- \fi
- \csname\newfontidentifier\endcsname
- \autofontsizefalse
- %\edef\lastfontidentifier{#3}%
- \ifskipfontcharacteristics \else
- \setfontcharacteristics
- \the\everyfontswitch
- \fi}
-
-%D I considered checking for mistakenly use of \PLAIN's
-%D \type{\magstep}'s but although it would take only a few
-%D lines of code, this would not add to consistent use. I
-%D therefore removed this check.
-
-%D \macros
-%D {mapfontsize}
-%D
-%D For special purposes, like in math, you may want to use
-%D slightly different sizes than the ones given. This happens
-%D for instance with the Math Times fonts. Mapped font sizes
-%D can be specified by using the \type {mo} key instead of
-%D \type {sa} in font definitions.
-%D
-%D \startbuffer
-%D \mapfontsize[10pt][11pt]
-%D \mapfontsize[11pt][12pt]
-%D \mapfontsize[12pt][13pt]
-%D
-%D \definefont[test][Serif]\test TEST \par
-%D \definefont[test][Serif sa 5]\test TEST \par
-%D \definefont[test][Serif mo 5]\test TEST \par
-%D \definefont[test][Serif sa d]\test TEST \par
-%D \definefont[test][Serif at 60pt]\test TEST \par
-%D \definefont[test][Serif scaled 6000]\test TEST \par
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D \startpacked
-%D \getbuffer
-%D \stoppacked
-
-\def\mapfontsize
- {\dodoubleargument\domapfontsize}
-
-\def\domapfontsize[#1][#2]%
- {\scratchdimen#1\relax % \relax is really needed here
- \setvalue{\??ft*\the\scratchdimen}{#2}}
-
-\def\setmappedfontsize#1%
- {\ifcsname\??ft*#1\endcsname
- \csname\??ft*#1\endcsname
- \else
- #1%
- \fi}
-
-%D \macros
-%D {getfontname}
-%D
-%D The names of the fonts can be called with the rather simple
-%D macro \type{\getfontname}. When for instance we pass
-%D \type{12ptrmtf} as argument, we get \getfontname{12ptrmtf}.
-
-\def\getfontname#1%
- {\csname\??ft#1\endcsname}
-
-%D To be documented.
-
-\let\sizelist\empty
-
-\def\definefontsize[#1]% sneller met toks
- {\addtocommalist{#1}\sizelist
- \def\docommand##1%
- {\def\dodocommand####1%
- {\def\dododocommand########1%
- %{\checkbodyfont{}{########1}{####1}{##1}}%
- {\checkbodyfont{########1}{####1}{##1}}%
- \processcommacommand[\stylelist]\dododocommand}%
- \processcommacommand[\alternativelist]\dodocommand}%
- \processcommacommand[\sizelist]\docommand}
-
-\def\alternativetextlist{\c!tf,\c!bf,\c!it,\c!sl,\c!bs,\c!bi,\c!sc}
-\def\alternativemathlist{\c!mr,\c!mi,\c!sy,\c!ex,\c!ma,\c!mb}
-
-\let\alternativelist\alternativetextlist % upward compatible
-
-%\definefontsize[\c!a] \definefontsize[\c!b]
-%\definefontsize[\c!c] \definefontsize[\c!d]
-
-%D \macros
-%D {currentfontscale,currentfontbodyscale}
-%D
-%D Sometimes we need to have access to the font scale
-%D including the \type{a}||\type{d} sizes. The next macro
-%D returns the current scaling factor. Take a look at
-%D \type {cont-log.tex} for an example of its use.
-
-\def\currentfontscale
- {\csname\??ft\s!default
- \ifcsname\??ft\s!default\xfontsize\endcsname \xfontsize \else
- \ifcsname\??ft\s!default\s!text \endcsname \s!text \fi\fi
- \endcsname}
-
-\def\currentfontbodyscale
- {\csname\??ft\s!default
- \ifcsname\??ft\s!default\fontsize\endcsname \fontsize \else
- \ifcsname\??ft\s!default\s!text \endcsname \s!text \fi\fi
- \endcsname}
-
-\setvalue{\??ft\s!default}{1}
-
-%D Both alternatives use \type {\xfontsize}, a macro that
-%D expands to the current size in terms of \type {a} \unknown
-%D \type {d}, nothing, or \type {x} \unknown \type {xx}.
-
-\def\xfontsize{\ifcase\currentxfontsize\fontsize\or\c!x\else\c!xx\fi}
-
-%D A typical use of this command is in commands that switch
-%D to another font bypassing the font mechanism:
-%D
-%D \starttyping
-%D \font\myfont=\truefontname{MyFont} at \currentfontscale\bodyfontsize
-%D \stoptyping
-
-%D Now we enter the area of font switching. The switching
-%D mechanism has to take care of several situations, like:
-%D
-%D \startitemize[packed]
-%D \item changing the overal document fonts (including margins,
-%D headers and footers)
-%D \item changing local fonts (only the running text)
-%D \item smaller and even more smaller alternatives (super-
-%D and subscripts)
-%D \stopitemize
-%D
-%D \TEX\ offers a powerfull family mechanism for super- and
-%D subscripts in math mode. In text mode however, we don't use
-%D families for the smaller alternatives, and therefore have
-%D to take care of it otherwise.
-
-%D \macros
-%D {definebodyfontenvironment,setupbodyfontenvironment}
-%D
-%D The relationship between the several sizes of a font, is
-%D defined by:
-%D
-%D \showsetup{definebodyfontenvironment}
-%D
-%D Later on we will see how these parameters are used, so for
-%D the moment we stick with an example:
-%D
-%D \starttyping
-%D \definebodyfontenvironment
-%D [12pt]
-%D [ text=12pt,
-%D script=9pt,
-%D scriptscript=7pt,
-%D x=10pt,
-%D xx=8pt,
-%D big=12pt,
-%D small=10pt]
-%D \stoptyping
-%D
-%D The first argument specifies the bodyfont size to which the
-%D settings apply. All second parameters are specified in
-%D dimensions and tell us more about related sizes.
-%D
-%D Afterwards, one can change values with
-%D
-%D \showsetup{setupbodyfontenvironment}
-%D
-%D Due to the fact that \type{\c!text} and \type{\s!text} can
-%D have a similar meaning, and therefore can lead to an
-%D unwanted loop, we temporary redefine \type{\c!text}. For
-%D the moment this in only place that some trickery is needed
-%D to fool the multilingual interface.
-%D
-%D When instead of a size the keyword \type{unknown} is
-%D passed, fractions (relations) are used instead of fixed
-%D sizes.
-
-\let\bodyfontenvironmentlist\empty
-
-\newcount\@@fontdefhack
-
-\def\@@beginfontdef
- {\ifcase\@@fontdefhack
- \let\k!savedtext \k!text \let\k!text \s!text
- \let\k!k!savedtext \k!k!text \let\k!k!text \!!plusone
- \let\k!saveddefault \k!default \let\k!default \s!default
- \let\k!k!saveddefault\k!k!default \let\k!k!default \!!plusone
- \fi
- \advance\@@fontdefhack \plusone }
-
-\def\@@endfontdef
- {\advance\@@fontdefhack \minusone
- \ifcase\@@fontdefhack
- \let\k!k!default\k!k!saveddefault
- \let\k!default \k!saveddefault
- \let\k!k!text \k!k!savedtext
- \let\k!text \k!savedtext
- \fi}
-
-\def\definebodyfontenvironment
- {\dotripleempty\dodefinebodyfontenvironment}
-
-\def\dodefinebodyfontenvironment[#1][#2][#3]% class size settings
- {\ifthirdargument
- \@@beginfontdef
- \doifelse{#2}\s!default
- {\getparameters[\??ft\s!default][#3]}
- {\normalizebodyfontsize#2\to\tempbodyfontsize
- \addtocommalist\tempbodyfontsize\bodyfontenvironmentlist
- \@EA\dododefinebodyfontenvironment\@EA[\tempbodyfontsize][#1][#3]}%
- \@@endfontdef
- \else
- \definebodyfontenvironment[\fontclass][#1][#2]% change */*
- \fi}
-
-\def\dododefinebodyfontenvironment[#1][#2][#3]% size class settings
- {\@@beginfontdef
- \doifundefined{\??ft#2#1\c!em} % \s!text goes wrong in testing because
- {\def\docommand##1% % the 12pt alternative will called when
- {\scratchdimen#1\relax % typesetting the test (or so)
- \scratchdimen\csname\??ft\s!default##1\endcsname\scratchdimen
- \normalizebodyfontsize\scratchdimen\to\tempbodyfontsize
- \setevalue{\??ft#2#1##1}{\tempbodyfontsize}}%
- \processcommacommand[\fontsizelist]\docommand
- \copyparameters
- [\??ft#2#1][\??ft\s!default]
- [\c!interlinespace,\c!em]}%
- \getparameters[\??ft#2#1][#3]%
- \@@endfontdef
- % new code, see remark
- \ifloadingfonts \else % only runtime
- \doifundefined{\@size@#1} % only once
- {\letvalue{\@size@#1}\empty % prevent loop
- \defineunknownfont{#1}}% % safeguard
- \fi
- % so far
- \setvalue{\@size@#1}{\docompletefontswitch[#1]}}
-
-%D {\bf Remark:} We need to cover the following cases,
-%D otherwise users can get confused:
-%D
-%D \starttyping
-%D \setupbodyfont[23pt]
-%D
-%D \definebodyfontenvironment[23pt]
-%D \setupbodyfont[23pt]
-%D
-%D \definebodyfontenvironment[23pt]
-%D \definebodyfont[23pt][rm,ss,tt][default]
-%D \setupbodyfont[23pt]
-%D \stoptyping
-
-%D Beware: while some font defs can be global, the bodyfont
-%D environment checks local. This means that multiple local
-%D checks resulting in definitions are not that efficient.
-%D So, apart from an occasional switch, one should define an
-%D environment at the outer level.
-
-\def\checkbodyfontenvironment[#1]%
- {\definebodyfontenvironment[\fontclass][#1][]}
-
-% original
-%
-% \def\setupbodyfontenvironment
-% {\dotripleempty\dosetupbodyfontenvironment}
-%
-% \def\dosetupbodyfontenvironment[#1][#2][#3]% class size settings
-% {\@@beginfontdef
-% \ifthirdargument
-% \getparameters[\??ft#1#2][#3]%
-% \else
-% \getparameters[\??ft#1][#2]%
-% \fi
-% \@@endfontdef}
-%
-% this one already catches both define/setup
-
-\def\setupbodyfontenvironment{\definebodyfontenvironment}
-
-% officially, but not needed (yet):
-%
-% \def\dosetupbodyfontenvironment[#1][#2][#3]% class size settings
-% {\ifthirdargument
-% \localbodyfontsize#2\relax
-% \normalizebodyfontsize\localbodyfontsize\to\normalizedbodyfontsize
-% \doifundefinedelse{\??ft#1\normalizedbodyfontsize\c!em}
-% {\definebodyfontenvironment[#1][#2][#3]}%
-% {\getparameters[\??ft#1\normalizedbodyfontsize][#3]}%
-% \else
-% \localbodyfontsize#1\relax
-% \normalizebodyfontsize\localbodyfontsize\to\normalizedbodyfontsize
-% \doifundefinedelse{\??ft\normalizedbodyfontsize\c!em}
-% {\definebodyfontenvironment[#1][#2]}%
-% {\getparameters[\??ft\normalizedbodyfontsize][#2]}%
-% \fi}
-
-%D Just a couple of interface macros:
-
-\def\bodyfontvariable#1%
- {\??ft\ifcsname\??ft\fontclass#1\endcsname\fontclass\fi#1}
-
-\def\bodyfontcsname
- {\csname\bodyfontvariable}
-
-\def\bodyfontinterlinespecs
- {\bodyfontvariable{\normalizedbodyfontsize\c!interlinespace}}
-
-\def\bodyfontinterlinespace
- {\csname\bodyfontinterlinespecs\endcsname}
-
-%D We default all parameters to the main bodyfont size (begin
-%D \type{#1}), so the next setup is valid too:
-%D
-%D \starttyping
-%D \definebodyfontenvironment[24pt]
-%D \stoptyping
-%D
-%D All parameters can be redefined when needed, so one does
-%D not have to stick to the default ones.
-
-%D \macros
-%D {definebodyfont}
-%D
-%D The next step in defining a bodyfont involves the actual font
-%D files, which can be recognized by their extension
-%D \type{tfm}. Installing those file is often beyond the
-%D scope of the user and up to the system administrator.
-%D
-%D \showsetup{definebodyfont}
-%D
-%D This commands takes three arguments: a (series of) bodyfont
-%D size(s), the style group to which the definitions belong,
-%D and an alternative, as specified by the \TEX\ (math) families,
-%D extended with~a, b~\unknown.
-%D
-%D We show two examples, that show all the alternative
-%D scaling options. The \type{\tfa} alternatives can be
-%D extended with \type{\bfa}, \type{\slb}, etc. or even
-%D \type{e} and higher alternatives.
-%D
-%D \starttyping
-%D \definebodyfont [12pt] [rm]
-%D [tf=cmr12,
-%D bf=cmbx12,
-%D it=cmti12,
-%D sl=cmsl12,
-%D bi=cmbxti10 at 12pt,
-%D bs=cmbxsl10 at 12pt,
-%D tfa=cmr12 scaled \magstep1,
-%D tfb=cmr12 scaled \magstep2,
-%D tfc=cmr12 scaled \magstep3,
-%D tfd=cmr12 scaled \magstep4,
-%D sc=cmcsc10 at 12pt]
-%D
-%D \definebodyfont [12pt,11pt,10pt,9pt,8pt] [rm]
-%D [tf=lbr sa 1,
-%D bf=lbd sa 1,
-%D it=lbi sa 1,
-%D sl=lbsl sa 1,
-%D bi=lbdi sa 1,
-%D bs=lbdi sa 1,
-%D tfa=lbr sa 1.200,
-%D tfb=lbr sa 1.440,
-%D tfc=lbr sa 1.728,
-%D tfd=lbr sa 2.074,
-%D sc=lbr sa 0.833]
-%D \stoptyping
-%D
-%D The second example shows that we can define more sizes at
-%D once. The main difference between these examples is that the
-%D Computer Modern Roman come in many design sizes. This means
-%D that there we cannot define them in bulk using \type{sa}.
-%D Instead of \type{rm} (roman) one can define \type{ss} (sans
-%D serif), \type{tt} (teletype), \type{hw} (hand written),
-%D \type{cg} (calygraphic) and whatever styles.
-%D
-%D The first argument may be a comma separated list. This,
-%D combined with specifications using \type{sa} can save a lot
-%D of typing. Although all arguments should be specified, we
-%D treat the second argument as optional.
-%D
-%D Defining a bodyfont involves two actions: defining the
-%D specific style related alternatives, like \type{\rma},
-%D \type{\bfa} and \type{\rmsla}, and storing the definitions
-%D of their bodyfont size related fonts. The first step is
-%D bodyfont independant but executed every time. This permits
-%D user definitions like \type{\tfw} or \type{\bfq} for real
-%D large alternatives.
-
-\def\definebodyfont
- {\doquadrupleempty\redefinebodyfont}
-
-\def\redefinebodyfont[#1][#2][#3][#4]%
- {\iffourthargument
- \processcommacommand[#1]{\reredefinebodyfont[#2][#3][#4]}%
- \else
- \dodefinebodyfont[#1][#2][#3]%
- \fi}
-
-\def\reredefinebodyfont[#1][#2][#3]#4%
- {\pushmacro\fontclass
- \doifelse{#4}\s!default
- {\let\fontclass\empty}
- {\def\fontclass{#4}}%
- \definebodyfont[#1][#2][#3]%
- \popmacro\fontclass}
-
-\def\dodefinebodyfont[#1][#2][#3]% body|identifier style defs|identifier
- {\ifthirdargument
- \doifnumberelse{#1}
- {\doifassignmentelse{#3}
- {% [12pt] [style] [settings]
- \doifundefined{#2}{\expanded{\definefontstyle[#2][#2]}}% new
- \processcommalist[#1]{\dododefinebodyfont{#2}{#3}}}
- {% [12pt] [style] [identifier]
- \dodefinedefaultbodyfont[#1][#2][#3]}} % body style identifier
- {% [identifier] [style] [settings] % see ***
- \setvalue{\s!default#1#2}##1##2{\expanded{\xdodefinebodyfont[##1][##2][#3]}}}%
- \else\ifsecondargument
- \definebodyfont[#1][\c!rm][#2]%
- \else
- \doifundefined{\@size@#1} % Maybe there are default dependancies
- {\defineunknownfont{#1}}% defined which we can use ([unknown])
- \doifundefined{\@size@#1} % and if not, then we have at least to
- {\definebodyfont[#1][\c!rm][]}% make sure some basics are set up.
- \fi\fi}
-
-\def\xdodefinebodyfont[#1][#2][#3]% body|identifier style defs|identifier
- {%\writestatus{[#1]}{[#2][#3]}%
- \checkrelativefontsize{#2}% rather new, inherit from other defs
- \ifundefined{#2}\expanded{\definefontstyle[#2][#2]}\fi % new
- \processcommalist[#1]{\dododefinebodyfont{#2}{#3}}%
- \let\relativefontsize\defaultrelativefontsize}
-
-\def\dododefinebodyfont#1#2#3% style defs body
- {\checkbodyfontenvironment[#3]% just to be sure.
- \processcommalist[#2]{\dodododefinebodyfont{#1}{#3}}}
-
-\def\dodododefinebodyfont#1#2#3% style body def
- {\dododododefinebodyfont{#1}{#2}[#3]}
-
-\newif \ifresolvefontfile % protected by fontclass anyway
-
-\def\resolvefontname#1 {\truefontname{#1} }
-
-\def\iflocalclassfonts{\ifx\fontclass\empty}
-
-\def\dododododefinebodyfont#1#2[#3#4#5=#6]% style body def
- {\ifundefined{#1#3#4#5}%
- %\checkbodyfont{#2}{#1}{#3#4}{#5}% not \definefontsize[#5]
- \checkbodyfont{#1}{#3#4}{#5}% not \definefontsize[#5]
- \fi
- \iflocalclassfonts
- \letbeundefined{*\fontclass#2#1#3#4#5*}%
- \scratchtoks{#6}%
- \expanded{\unexpanded\noexpand\setvalue{#2#1#3#4#5}%
- {\noexpand\xxdododefinefont{\relativefontsize}{#2}%
- {#2#1#3#4#5}{\the\scratchtoks}}}%
- \else
- %\expanded{\writestatus{defining}{[\fontclass][#2#1#3#4#5] \resolvefontname#6 }}%
- \global\letbeundefined{*\fontclass#2#1#3#4#5*}%
- \ifresolvefontfile
- \unexpanded\setxvalue{\fontclass#2#1#3#4#5}%
- {\noexpand\xxdododefinefont{\relativefontsize}{#2}%
- {#2#1#3#4#5}{\resolvefontname#6 }}%
- \else
- \scratchtoks{#6}%
- \expanded{\unexpanded\noexpand\setgvalue{\fontclass#2#1#3#4#5}%
- {\noexpand\xxdododefinefont{\relativefontsize}{#2}%
- {#2#1#3#4#5}{\the\scratchtoks}}}%
- \fi
- \fi}
-
-% \def\checkbodyfont#1#2#3#4% body style alt size / gdef % #4 can be empty
-% {\def\c!!mm{#2}%
-% \ifx\c!!mm\c!mm % prevents \max and alike (re)defs
-% \unexpanded\setgvalue {#2}{\setcurrentfontstyle {#2}}% \rm
-% \unexpanded\setgvalue {#3}{\setcurrentfontalternative {#3}}% \sl
-% \else
-% \unexpanded\setgvalue {#2#4}{\setcurrentfontstylesize {#2}{#4}}% \rma
-% \unexpanded\setgvalue {#3#4}{\setcurrentfontalternativesize {#3}{#4}}% \sla
-% \unexpanded\setgvalue {#2#3#4}{\setcurrentfontstylealternativesize{#2}{#3}{#4}}% \rmsla
-% \unexpanded\setgvalue {#2}{\setcurrentfontstyle {#2}}% \rm
-% \unexpanded\setgvalue {#3}{\setcurrentfontalternative {#3}}% \sl
-% \unexpanded\setgvalue {#2\c!x}{\setcurrentfontxstylealternative {#2}}% \rmx
-% \unexpanded\setgvalue{#2\c!xx}{\setcurrentfontxxstylealternative {#2}}% \rmxx
-% \unexpanded\setgvalue {#3\c!x}{\setcurrentfontxalternative {#3}}% \slx
-% \unexpanded\setgvalue{#3\c!xx}{\setcurrentfontxxalternative {#3}}% \slxx
-% \unexpanded\setgvalue {#2#3}{\setcurrentfontstylealternative {#2}{#3}}% \rmsl
-% \fi}
-%
-% leaner
-
-\def\checkbodyfont#1% tests for ttsl mmbf
- {\def\c!!mm{#1}%
- \ifx\c!!mm\c!mm % prevents \max and alike (re)defs
- \expandafter\checkmathbodyfont
- \else
- \expandafter\checktextbodyfont
- \fi{#1}} % no \c!!mm, not expanded later on
-
-\def\checkmathbodyfont#1#2#3% style alt size / gdef % #3 can be empty
- {%\message{!m #1 #2 #3!}%
- % #1 #2 #3 = signal
- \unexpanded\setgvalue {#1#2#3}{\setcurrentfontstylealternativesize{#1}{#2}{#3}}% \mmsla
- \unexpanded\setgvalue {#1}{\setcurrentfontstyle {#1}}% \mm
- \unexpanded\setgvalue {#2}{\setcurrentfontalternative {#2}}}% \sl
-
-\def\checktextbodyfont#1#2#3% style alt size / gdef % #3 can be empty
- {%\message{!t #1 #2 #3!}%
- \unexpanded\setgvalue {#1#3}{\setcurrentfontstylesize {#1}{#3}}% \rma
- \unexpanded\setgvalue {#2#3}{\setcurrentfontalternativesize {#2}{#3}}% \sla
- \unexpanded\setgvalue {#1#2#3}{\setcurrentfontstylealternativesize{#1}{#2}{#3}}% \rmsla
- \unexpanded\setgvalue {#1}{\setcurrentfontstyle {#1}}% \rm
- \unexpanded\setgvalue {#2}{\setcurrentfontalternative {#2}}% \sl
- \unexpanded\setgvalue {#1\c!x}{\setcurrentfontxstylealternative {#1}}% \rmx
- \unexpanded\setgvalue{#1\c!xx}{\setcurrentfontxxstylealternative {#1}}% \rmxx
- \unexpanded\setgvalue {#2\c!x}{\setcurrentfontxalternative {#2}}% \slx
- \unexpanded\setgvalue{#2\c!xx}{\setcurrentfontxxalternative {#2}}% \slxx
- \unexpanded\setgvalue {#1#2}{\setcurrentfontstylealternative {#1}{#2}}}% \rmsl
-
-\def\dodefinedefaultbodyfont[#1][#2][#3]% sizes styles identifier
- {\def\dododefinedefaultbodyfont##1%
- {\def\dodododefinedefaultbodyfont####1%
- {\def\dododododefinedefaultbodyfont########1%
- {\doifdefined{\s!default########1####1}
- {% [12pt] [style] [identifier]
- \getvalue{\s!default########1####1}{##1}{####1}}}%
- \processcommalist[#3]\dododododefinedefaultbodyfont}%
- \processcommalist[#2]\dodododefinedefaultbodyfont}%
- \processcommalist[#1]\dododefinedefaultbodyfont}
-
-%D Unknown families are added to the family list! For the
-%D moment we also set the direct calls here. Some day a better
-%D solution will be implemented. The good news is that unknown
-%D fonts are defined automatically.
-
-\newif\ifdefiningunknownfont
-
-% \def\defineunknownfont#1%
-% {\let\c!savedtext\c!text
-% \let\c!text\s!text
-% \donefalse
-% \def\docommand##1%
-% {\doifdefined{\??ft\s!default##1}
-% {\donetrue
-% \scratchdimen#1\relax
-% \scratchdimen\csname\??ft\s!default##1\endcsname\scratchdimen
-% \normalizebodyfontsize\scratchdimen\to\!!stringa
-% \letvalue{\??ft#1##1}\!!stringa}}%
-% \processcommacommand[\fontsizelist]\docommand
-% \let\c!text\c!savedtext
-% \ifdone
-% \donefalse
-% \def\defineunknownbodyfont##1% see ***
-% %{\doifdefined{\s!default##1}
-% % {\donetrue\getvalue{\s!default##1}{#1}}}%
-% {\doifdefined{\s!default\s!default##1}
-% {\donetrue\getvalue{\s!default\s!default##1}{#1}{##1}}}%
-% \processcommacommand
-% [\stylelist]
-% \defineunknownbodyfont
-% \ifdone
-% \setvalue{\@size@#1}{\docompletefontswitch[#1]}%
-% \ifdefiningunknownfont \else
-% \definingunknownfonttrue
-% \def\defineunknownsubfont##1%
-% {\doifundefined{\@size@\getvalue{\??ft#1##1}}
-% {\defineunknownfont{\getvalue{\??ft#1##1}}}}%
-% \processcommacommand[\fontsizelist]\defineunknownsubfont
-% \definingunknownfontfalse
-% \fi
-% \fi
-% \ifdone
-% \showmessage\m!fonts{14}{#1}%
-% \fi
-% \fi}
-
-\def\dodefineunknownfont#1#2%
- {\doifdefined{\??ft\s!default#2}
- {\donetrue
- \scratchdimen#1\relax
- \scratchdimen\csname\??ft\s!default#2\endcsname\scratchdimen
- \normalizebodyfontsize\scratchdimen\to\!!stringa
- \letvalue{\??ft#1#2}\!!stringa}}
-
-% \def\dodefineunknownbodyfont#1#2% see ***
-% {\doifdefined{\s!default\s!default#2}
-% {\donetrue
-% \getvalue{\s!default\s!default#2}{#1}{#2}}}
-%
-% but ... it needs to be as follows:
-%
-% \def\dodefineunknownbodyfont#1#2% see ***
-% {\doifdefined{\s!default\fontclass#2}% was \s!default\s!default (related to change */*)
-% {\donetrue
-% \getvalue{\s!default\fontclass#2}{#1}{#2}}}
-%
-% eh ... this does not work so we revert back to:
-
-\def\dodefineunknownbodyfont#1#2% see ***
- {\doifdefined{\s!default\s!default#2}% somehow related to */*
- {\donetrue
- \getvalue{\s!default\s!default#2}{#1}{#2}}}
-
-\def\dodefineunknownsubfont#1#2%
- {\doifundefined{\@size@\getvalue{\??ft#1#2}}
- {\donetrue
- \defineunknownfont{\getvalue{\??ft#1#2}}}}
-
-\def\defineunknownfont#1%
- {\let\c!savedtext\c!text
- \let\c!text\s!text
- \donefalse
- \processcommacommand[\fontsizelist]{\dodefineunknownfont{#1}}%
- \let\c!text\c!savedtext
- \ifdone
- \donefalse
- \processcommacommand
- [\stylelist]
- {\dodefineunknownbodyfont{#1}}%
- \ifdone
- \donefalse
- \setvalue{\@size@#1}{\docompletefontswitch[#1]}%
- \ifdefiningunknownfont \else
- \definingunknownfonttrue
- \processcommacommand[\fontsizelist]{\dodefineunknownsubfont{#1}}%
- \definingunknownfontfalse
- \fi
- \fi
- \ifdone
- \showmessage\m!fonts{14}{#1}%
- \fi
- \fi}
-
-% \def\defineunknownfontstyles#1%
-% {\def\defineunknownbodyfont##1% see ***
-% {\executeifdefined{\s!default\s!default##1}\gobbletwoarguments{#1}{##1}}%
-% \rawprocesscommacommand[\stylelist]\defineunknownbodyfont}
-
-%D These macros show that quite some definitions take place.
-%D Fonts are not loaded yet! This means that at format
-%D generation time, no font files are preloaded.
-
-%D A previous implementation used:
-%D
-%D \starttyping
-%D \type {\setvalue{name}{\donottest...}}
-%D \stoptyping
-%D
-%D instead of the more memory hungry:
-%D
-%D \starttyping
-%D \unexpanded\setvalue{name}{...}
-%D \stoptyping
-%D
-%D The first alternative saves about 500 hash entries (about
-%D 2.5\% of the total number of entries used. The second
-%D alternative is currently used, because that one can more
-%D easily be made \ETEX\ aware.
-
-%D \macros
-%D {everybodyfont,Everybodyfont,everyglobalbodyfont}
-%D
-%D Every change in bodyfont size has conseqences for the baseline
-%D distance and skips between paragraphs. These are initialized
-%D in other modules. Here we only provide the hooks that
-%D garantees their handling.
-
-% \ifx\everybodyfont\undefined % permits reloading
-% \newevery \everybodyfont \EveryBodyFont
-% \fi
-
-%D At the system level one can initialize thing like:
-%D
-%D \starttyping
-%D \appendtoks \setupspacing \to \everybodyfont
-%D \stoptyping
-%D
-%D While users can add their own non standard commands like:
-%D
-%D \starttyping
-%D \EveryBodyFont{\message{changing to bodyfont \the\bodyfontsize}}
-%D \stoptyping
-%D
-%D Personnaly I never felt the need for such extensions, but
-%D at least its possible.
-
-%D \macros
-%D {globalbodyfontsize,localbodyfontsize}
-%D
-%D Next we'll do the tough job of font switching. Here we
-%D have to distinguish between the global (overal) bodyfont
-%D size and the local (sometimes in the textflow) size. We
-%D store these dimensions in two \DIMENSION\ registers.
-
-\newdimen\globalbodyfontsize \globalbodyfontsize=12pt
-\newdimen\localbodyfontsize \localbodyfontsize =\globalbodyfontsize
-
-%D \macros
-%D {bodyfontsize}
-%D
-%D These two registers are not to be misused in calculations.
-%D For this purpose we keep a copy:
-
-\newdimen\bodyfontsize \bodyfontsize=\globalbodyfontsize
-
-%D \macros
-%D {outputresolution}
-%D
-%D Sometimes (to be honest: not in this module) we need to
-%D take the system resolution into account. Therefore we also
-%D define a macro:
-
-\def\outputresolution {600}
-
-%D \macros
-%D {bodyfontfactor,bodyfontpoints}
-%D
-%D For multiplication purposes we keep an auxiliary counter
-%D and macro (here the expansion is not explicitly needed):
-
-\newcount\bodyfontpoints \dimensiontocount\bodyfontsize\bodyfontpoints
-
-\edef\bodyfontfactor{\withoutpt\the\bodyfontsize}
-
-%D When we assign for instance 12pt to a \DIMENSION\ register
-%D the \type{\the}'d value comes out as 12.0pt, which is
-%D often not the way users specify the bodyfont size. Therefore
-%D we also store the normalized value.
-
-\chardef\fontdigits=1
-
-\def\normalizebodyfontsize#1\to#2%
- {\scratchdimen#1\relax
- \ifcase\fontdigits\advance\scratchdimen.5\points\fi
- \@EA\@EA\@EA\donormalizedbodyfontsize\@EA\WITHOUTPT\the\scratchdimen00\to#2}
-
-\def\donormalizedbodyfontsize#1.#2#3#4\to#5% \points ?
- {\edef#5%
- {#1%
- \ifcase\fontdigits\or
- \ifcase#2 \else.#2\fi % and not: \ifcase#2\else ...
- \else
- \ifcase#2#3 \else.#2\ifcase#3 \else#3\fi\fi % not: \ifcase#2#3\else ...
- \fi
- \s!pt}}
-
-\normalizebodyfontsize\bodyfontsize\to\normalizedglobalbodyfontsize
-\normalizebodyfontsize\bodyfontsize\to\normalizedlocalbodyfontsize
-\normalizebodyfontsize\bodyfontsize\to\normalizedbodyfontsize
-
-%D To be internationalized:
-
-\def\korpsgrootte {\bodyfontsize}
-\def\korpspunten {\bodyfontpoints}
-
-%D some day.
-
-%D \macros
-%D {fontstyle,fontalternative,fontsize}
-%D
-%D Within a bodyfont, fonts can come in different sizes. For
-%D instance \type{\tf} is accompanied by \type{\tfa},
-%D \type{\tfb} etc. The first two characters denote the
-%D alternative, while the third character in these sequences
-%D represents the size. The actual size is saved in a macro
-%D
-%D The style, being roman (\type{\rm}), sans serif (\type{\ss})
-%D etc. is also available in a macro in \type{rm}, \type{ss}
-%D etc. form:
-
-\let\defaultfontalternative = \c!tf
-\let\defaultfontstyle = \empty
-\let\defaultfontsize = \empty
-
-\let\fontalternative = \defaultfontalternative
-\let\fontstyle = \defaultfontstyle
-\let\fontsize = \defaultfontsize
-
-%D {\em The following approach is obsolete.}
-%D
-%D All things related to fonts are grouped into files with
-%D names like \type{font-cmr}. These files are loaded by:
-
-\def\resetfontdefinitionfile[#1]%
- {\letbeundefined{\c!file\f!fontprefix#1}}
-
-\newif\ifloadfontfileonce
-
-\def\doreadfontdefinitionfile#1#2% #1 = set/switch state
- {\doifundefined{\c!file\f!fontprefix#2}%
- {\ifloadfontfileonce
- \letvalue{\c!file\f!fontprefix#2}\empty
- \fi
- \makeshortfilename[\truefilename{\f!fontprefix#2}]%
- \startreadingfile
- \readsysfile\shortfilename
- {\showmessage\m!fonts2{#2}}
- {\showmessage\m!fonts3{#2}}%
- \stopreadingfile}}
-
-%D When \type {\loadfontfileoncetrue}, such files are
-%D only loaded once! This permits redundant loading, but at
-%D the same time forced grouping when we want continuously mix
-%D all kind of font, which of course is a kind of
-%D typographically sin. The \type{"} is made inactive if
-%D needed to prevent problems with loading files that use this
-%D character in numbers.
-
-\def\doswitchpoints[#1]%
- {\expanded{\dodoswitchpoints{#1}}}
-
-\def\dodoswitchpoints#1%
- {\doifundefined{\@size@#1}
- {\defineunknownfont{#1}}%
- %\defineunknownfontstyles{#1}%
- \doifdefinedelse{\@size@#1}
- {\getvalue{\@size@#1}%
- \localbodyfontsize#1\relax
- \normalizebodyfontsize\localbodyfontsize\to\normalizedbodyfontsize
- \checkbodyfontenvironment[\normalizedbodyfontsize]}
- {\showmessage\m!fonts4{#1}}}
-
-\unprotected \def\doswitchstyle[#1]%
- {\doifdefinedelse{\@style@#1}
- {\getvalue{\@style@#1}%
- \edef\fontstyle{#1}%
- \ifmmode\mr\fi % in order to be compatible with \rm in math mode
- }% \the\everybodyfont} % cleaner, in setting size as well as style
- {\showmessage\m!fonts5{#1}}}
-
-%D \TEX\ loads font metric files like \type{cmr10.tfm} and
-%D \type{tir.tfm} only once. In \PLAIN\ \TEX\ some font files
-%D are {\em preloaded}. This means that the font files are
-%D loaded, but not accessible yet by name. This is accomplished
-%D by saying:
-%D
-%D \starttyping
-%D \font\preloaded=cmr10 at 11pt
-%D \stoptyping
-%D
-%D and using the name \type{\preloaded} again and again, so
-%D fonts are indeed loaded, but unnamed, and therefore
-%D unaccessible. In \CONTEXT\ we don't preload fonts, not even
-%D the \PLAIN\ \TEX\ ones, although users can access them. Now
-%D why is this done?
-
-%D Defining fonts using \type{\definebodyfont} takes time, so we
-%D prefer to predefine at least the Computer Modern Roman
-%D fonts. However, loading all those fonts at definition time
-%D would take both time and space. But even worse, once fonts
-%D are loaded into memory, their encoding vector is fixed,
-%D which is a handicap when we want to distribute the compact
-%D \type{fmt} files. So what we want to do is defining fonts in
-%D a way that postpones the loading. We accomplish this by only
-%D loading the fonts when we switch to another bodyfont size.
-%D Among the other alternatives, such as loading the font at
-%D the moment of activation and redefining the activation
-%D macro afterwards, this proved to be the most efficient
-%D alternative.
-%D
-%D The next few macros take care of the one exeption on this
-%D scheme. When at format generation time we load the default
-%D font file, the one that defines the Computer Modern Fonts,
-%D we don't want the fonts metrics to end up in the format
-%D file, so we temporary prohibit loading. This means that at
-%D runtime we have to load the default bodyfont size just before
-%D we start typesetting.
-%D
-%D Therefore we have to signal the font switching macros that
-%D we are preloading fonts. As long as the next boolean is,
-%D true, no loading is done.
-
-\newif\ifloadingfonts \loadingfontstrue
-
-%D \macros
-%D {preloadfonts}
-%D
-%D Preloading is only called for once, during the startup
-%D sequence of a session. After the loading job is done, the
-%D macro relaxes itself and reset the signal.
-
-\def\preloadfonts % never called, needs a clean up
- {\showmessage\m!fonts6{\normalizedbodyfontsize\normalspace\fontstyle}%
- \global\loadingfontsfalse
- \doswitchpoints[\normalizedbodyfontsize]%
- \doswitchstyle[\fontstyle]%
- \the\everybodyfont
- \the\everyglobalbodyfont
- \saveinterlinespace
- \global\let\preloadfonts\relax}
-
-% \prependtoks \preloadfonts \to \everydump % saves .1 s on a DELL P60 - 2GHZ
-
-%D Here comes the main font switching macros. These macros
-%D handle changes in size as well as returning to the global
-%D bodyfont size.
-
-\def\dosetfont#1#2% #1 = set/switch state
- {\doifelse{#2}\v!global
- {\restoreglobalbodyfont}
- {\processcommacommand[#2]{\dodosetfont{#1}}% ##1 get also passed
- \ifloadingfonts\else
- \doswitchpoints[\normalizedbodyfontsize]%
- \doswitchstyle[\fontstyle]%
- \fi}%
- \chardef\currentxfontsize\zerocount}
-
-\def\dodosetfont#1#2% #1 = set/switch state | check fo rempty, else space
- {\doifsomething{#2}{\dododosetfont{#1}{#2}{\showmessage\m!fonts4{#2}}}}
-
-\def\dododosetfont#1#2#3% #1 = set/switch state
- {\doifnumberelse{#2}
- {\dodododosetfont{#1}{#2}{#3}}
- {\doifdefinedelse{\??ft\normalizedbodyfontsize\interfaced{#2}}
- {\edef\fontstep{\bodyfontcsname\normalizedbodyfontsize\interfaced{#2}\endcsname}%
- \expanded{\dodododosetfont{#1}{\fontstep}}{#3}}
- {\doifelse{#2}\v!reset
- {\let\fontstyle\empty % new 31/7/2006
- \let\fontsize \empty}
- {\doifdefinedelse{\@style@#2}
- {\edef\fontstyle{#2}}
- {\doreadfontdefinitionfile{#1}{#2}}}}}}
-
-\def\dodododosetfont#1#2#3% #1 = set/switch state
- {\scratchdimen#2\relax
- \normalizebodyfontsize\scratchdimen\to\normalizedsetfont
- \doifundefined{\@size@\normalizedsetfont}
- {\defineunknownfont{#2}}%
- \doifdefinedelse{\@size@\normalizedsetfont}
- {\localbodyfontsize\normalizedsetfont
- \let\normalizedbodyfontsize\normalizedsetfont}
- {#3\dosetsubstitutefont{#1}{#2}}}
-
-%D In the previous macros we use \type{\currentxfontsize} to
-%D hold the current x||size of the font. This enables us to
-%D support for instance \type{\sl} inside a \type{\tx} switch.
-
-\chardef\currentxfontsize=0
-
-%D When users specify for instance a 13 point bodyfont while no
-%D such bodyfont is defined, the system automatically tries to
-%D find a best fit, that is the nearest smaller defined
-%D bodyfontzize. A smaller one is definitely better than a larger
-%D one, simply because otherwise a lot of overfull box messages
-%D are more probable to occur. By taking a value slightly
-%D smaller than half a point, we can use the next method.
-
-\def\dosetsubstitutefont#1#2% #1 = set/switch state
- {\scratchdimen#2\relax
- \advance\scratchdimen .499\points
- \dimensiontocount\scratchdimen\scratchcounter
- \advance\scratchcounter \minusone
- \ifnum\scratchcounter>\plusthree
- \dododosetfont{#1}{\the\scratchcounter\s!pt}{}%
- \fi}
-
-% The following bunch of macros deals with the (run time)
-% expansion of names onto the definitions made by \type
-% {\definebodyfont}.
-
-% \let\fontbody \empty % ... 10pt 11pt 12pt ...
-% \let\fontstyle \empty % rm ss tt mm hw cg ...
-% \let\fontalternative\empty % tf bf sl it bs bi sc ...
-% \let\fontsize \empty % xy-abcd ...
-
-\def\defaultfontbody{\normalizedbodyfontsize}
-
-\let\fontbody\defaultfontbody
-
-\let\fontclass\empty \let\globalfontclass\fontclass
-
-\def\setcurrentfontclass#1%
- {\edef\fontclass{#1}}
-
-\let\defaultfontstyle \c!rm
-\let\defaultfontalternative \c!tf
-\let\defaultfontsize \empty
-
-%D \macros
-%D {bigmath,nobigmath}
-%D
-%D We can inhibit this slow||downer with:
-
-% these can best be combined
-
-% 0=never 1=everymath 2=always
-
-\chardef\synchronizebigmathflag=1
-
-\appendtoks
- \ifcase\synchronizebigmathflag
- % never
- \or
- \synchronizebigmath
- \or
- % always
- \fi
-\to \everymathematics
-
-\def\nobigmath{\chardef\synchronizebigmathflag 0 }
-\def\bigmath {\chardef\synchronizebigmathflag 2 \synchronizebigmath}
-
-\let\bigmathfontsize\empty
-
-\def\synchronizebigmath
- {\ifx\bigmathfontsize\fontsize
- % already in sync
- \else
- \let\bigmathfontsize\fontsize
- \synchronizemath \synchronizetext
- \fi}
-
-\def\checkbigmathsynchronization
- {\ifcase\synchronizebigmathflag
- % never
- \or
- \ifmmode \synchronizebigmath \fi
- \or
- \synchronizebigmath
- \fi}
-
-%D So far for synchronisation.
-
-\def\dosetcurrentfontsize#1%
- {\edef\fontsize{#1}%
- \checkbigmathsynchronization}
-
-\def\dosetcurrentfontalternative#1%
- {\edef\fontalternative{#1}%
- \ifmmode % maybe no test, or actually, an option
- \fam\csname\fontalternative\s!fam\endcsname
- \fi}
-
-\def\setcurrentfont#1#2#3#4%
- {%\message{[1 #1 #2 #3 #4]}%
- \edef\fontbody{#1}%
- \edef\fontstyle{#2}%
- \dosetcurrentfontalternative{#3}%
- \dosetcurrentfontsize{#4}%
- \synchronizefont}
-
-\def\setcurrentfontbody#1%
- {%\message{[2 #1]}%
- \edef\fontbody{#1}%
- \synchronizefont}
-
-% \def\setcurrentfontstyle#1%
-% {%\message{[3 #1]}%
-% \edef\fontstyle{#1}%
-% \ifmmode\mr\fi % otherwise \rm not downward compatible
-% \synchronizefont}
-%
-% For Taco: optional fall backs:
-
-\ifx\checkfontclass\undefined \let\checkfontclass\gobbleoneargument \fi % implemented in type-ini
-
-\def\setcurrentfontstyle#1%
- {%\message{[3 #1]}%
- \checkfontclass{#1}%
- \edef\fontstyle{#1}%
- \ifmmode\mr\fi % otherwise \rm not downward compatible
- \synchronizefont}
-
-\def\setcurrentfontbodyalternative#1#2%
- {%\message{[4 #1 #2]}%
- \edef\fontbody{#1}%
- \dosetcurrentfontalternative{#2}%
- \synchronizefont}
-
-\def\setcurrentfontalternative#1%
- {%\message{[5 #1]}%
- \dosetcurrentfontalternative{#1}%
- \synchronizefont}
-
-\def\setcurrentfontsize#1%
- {%\message{[6 #1]}%
- \dosetcurrentfontsize{#1}%
- \synchronizefont}
-
-\def\setcurrentfontstylealternative#1#2% \rmsl
- {%\message{[7 #1 #2]}%
- \edef\fontstyle{#1}%
- \dosetcurrentfontalternative{#2}%
- \synchronizefont}
-
-\def\setcurrentfontstylesize#1#2% \rmsla
- {%\message{[8 #1 #2]}%
- \edef\fontstyle{#1}%
- \dosetcurrentfontsize{#2}%
- \synchronizefont}
-
-\def\setcurrentfontalternativesize#1#2% \sla
- {%\message{[9 #1 #2]}%
- \dosetcurrentfontalternative{#1}%
- \dosetcurrentfontsize{#2}%
- \synchronizefont}
-
-\def\setcurrentfontstylealternativesize#1#2#3% \rmsla
- {%\message{[10 #1 #2 #3]}%
- \edef\fontstyle{#1}%
- \dosetcurrentfontalternative{#2}%
- \dosetcurrentfontsize{#3}%
- \synchronizefont}
-
-%D In principle one can assign alternative fallback routines.
-%D Some day we will.
-
-\newtoks\fontstrategies
-\newif\iftryingfont
-
-\let\fontstrategy\relax
-
-\def\synchronizefont
- {\tryingfonttrue
- \ifx\fontclass\empty\else
- \global\let\fontstrategy\dofontclassstrategy
- \the\fontstrategies \relax % \relax still needed ?
- \fi
- \iftryingfont
- \global\let\fontstrategy\dofontstrategy
- \the\fontstrategies \relax % \relax still needed ?
- \fi
- \ifskipfontcharacteristics
- \setfontcharacteristics
- \the\everyfontswitch
- \fi}
-
-\def\dofontstrategy#1#2#3#4#5%
- {\ifcsname#2#3#4#5\endcsname
- #1\csname#2#3#4#5\endcsname \tryingfontfalse
- \fi}
-
-\def\dofontclassstrategy#1#2#3#4#5%
- {\ifcsname\fontclass#2#3#4#5\endcsname
- #1\csname\fontclass#2#3#4#5\endcsname \tryingfontfalse
- \fi}
-
-\appendtoks \iftryingfont \fontstrategy \autofontsizefalse % --- --- --- --- % pt tt bf a
- \fontbody \fontstyle \fontalternative \fontsize
-\fi \to \fontstrategies
-
-\appendtoks \iftryingfont \fontstrategy \autofontsizetrue % --- --- --- def % pt tt bf
- \fontbody \fontstyle \fontalternative \defaultfontsize
-\fi \to \fontstrategies
-
-\appendtoks \iftryingfont \fontstrategy \autofontsizetrue % --- --- def --- % pt tt tf a
- \fontbody \fontstyle \defaultfontalternative \fontsize
-\fi \to \fontstrategies
-
-\appendtoks \iftryingfont \fontstrategy \autofontsizetrue % --- --- def def % pt tt tf
- \fontbody \fontstyle \defaultfontalternative \defaultfontsize
-\fi \to \fontstrategies
-
-\appendtoks \iftryingfont \fontstrategy \autofontsizefalse % --- def def def % pt rm tf
- \fontbody \defaultfontstyle \defaultfontalternative \defaultfontsize
-\fi \to \fontstrategies
-
-\appendtoks \iftryingfont \fontstrategy \autofontsizetrue % def def def def % rm tf
- \defaultfontbody \defaultfontstyle \defaultfontalternative \defaultfontsize
-\fi \to \fontstrategies
-
-%D Let's synchronize:
-
-\newif\ifsynchronizefonts \synchronizefontstrue
-
-\prependtoks
- \ifsynchronizefonts
- \synchronizemath
- \synchronizetext
- \synchronizefont % problem: syncs last font
- \fi
-\to \everybodyfont
-
-%D Setting the normal sized as well as the x and xx smaller
-%D sizes is accomplished by the next set of macros. When in
-%D math mode, the commands \type{\tx} and \type{\txx} are
-%D just a switch to the script and double script styles, but
-%D in text mode the values defined by the bodyfontenvironment are
-%D used. Here we also set \type{\currentxfontsize}.
-
-\def\dosetcurrentfontxxxalternative#1#2#3#4%
- {\chardef\currentxfontsize#2\relax
- \ifmmode
- #4%
- \else\ifcsname\bodyfontvariable{\normalizedbodyfontsize#3}\endcsname
- \setcurrentfontbodyalternative{\bodyfontcsname\normalizedbodyfontsize#3\endcsname}{#1}%
- \fi\fi}
-
-\def\setcurrentfontxalternative#1%
- {\dosetcurrentfontxxxalternative{#1}1\c!x\scriptstyle
- \let\tx\txx}
-
-\def\setcurrentfontxxalternative#1%
- {\dosetcurrentfontxxxalternative{#1}2\c!xx\scriptscriptstyle
- \let\tx\empty
- \let\txx\empty}
-
-\def\checknestedxfontsize % option
- {\ifcase\currentxfontsize\else\ifx\fontsize\empty\else
- \chardef\currentxfontsize\zeropoint
- \let\fontsize\empty
- \let\tx\normaltx
- \let\txx\normaltxx
- \fi\fi}
-
-\def\setcurrentfontxalternative#1%
- {\checknestedxfontsize
- \dosetcurrentfontxxxalternative{#1}1\c!x\scriptstyle
- \let\tx\txx}
-
-\def\setcurrentfontxxalternative#1%
- {\checknestedxfontsize
- \dosetcurrentfontxxxalternative{#1}2\c!xx\scriptscriptstyle
- \let\tx\empty
- \let\txx\empty}
-
-% This alterative is not really needed, but for old time's sake
-% we keep it there. We can speed it up when needed.
-
-% \def\setcurrentfontxstylealternative #1{\csname#1\endcsname\tfx}
-% \def\setcurrentfontxxstylealternative#1{\csname#1\endcsname\tfxx}
-
-\def\setcurrentfontxstylealternative #1{\csname#1\endcsname\tx}
-\def\setcurrentfontxxstylealternative#1{\csname#1\endcsname\txx}
-
-%D These macros also show us that when we call for \type{\tx},
-%D this macro is redefined to be \type{\txx}. Therefore calls
-%D like:
-%D
-%D \startbuffer
-%D {small \tx is \tx beautiful}
-%D {small \tx is \txx beautiful}
-%D {small \txx is \tx beautiful}
-%D {small \txx is \txx beautiful}
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D result in:
-%D
-%D \startvoorbeeld
-%D \startlines
-%D \getbuffer
-%D \stoplines
-%D \stopvoorbeeld
-%D
-%D Setting the main size involves the style list and therefore
-%D takes a bit more time. Keep in mind that the fontsize is
-%D represented by a character or empty.
-
-\unexpanded\def\tx {\setcurrentfontxalternative \fontalternative}
-\unexpanded\def\txx{\setcurrentfontxxalternative\fontalternative}
-
-\let\normaltx \tx
-\let\normaltxx\txx
-
-%D \macros
-%D {definefontstyle}
-%D
-%D When setting of switching the overall style we can use the
-%D short identifier like rm and ss, but when defined we can
-%D also use more verbose names like roman or sansserif. Such
-%D names are defined by:
-%D
-%D \starttyping
-%D \definefontstyle [serif,rm] [rm]
-%D \definefontstyle [sansserif,ss] [ss]
-%D \stoptyping
-
-\def\dodefinefontstyle[#1][#2]%
- {\rawdoifinsetelse{#2}{\stylelist}
- {}%\debuggerinfo\m!fonts{unknown style #2}}
- {\addtocommalist{#2}\stylelist
- \showmessage\m!fonts8{#2\space (#1)}}%
- % check kan hier
- \def\docommand##1%
- {\setvalue{\@shortstyle@##1}{#2}%
- \setvalue{\@style@##1}{\csname#2\endcsname}}%
- \processcommalist[#1]\docommand}
-
-\def\definefontstyle
- {\dodoubleargument\dodefinefontstyle}
-
-\def\setfontstyle#1#2% #1:name (roman, romaan) #2:style (rm)
- {\edef\fontstyle{#1}%
- \setcurrentfontstyle\normalizedbodyfontsize}
-
-\chardef\defaultskewcharmi=127 % '177
-\chardef\defaultskewcharsy= 48 % '60
-
-% \def\dosetskewchar#1%
-% {\skewchar\font\ifx\@@fontskewchar\empty#1\else\@@fontskewchar\fi}
-
-\def\dosetskewchar#1#2%
- {\ifx\@@fontskewchar\empty
- \skewchar\textfont #1#2%
- \skewchar\scriptfont #1#2%
- \skewchar\scriptscriptfont#1#2%
- \else
- \skewchar\textfont #1\@@fontskewchar
- \skewchar\scriptfont #1\@@fontskewchar
- \skewchar\scriptscriptfont#1\@@fontskewchar
- \fi}
-
-%D The previous macros show that it's is not always
-%D neccessary to define the whole bunch of fonts, take for
-%D instance the sequence:
-%D
-%D \starttyping
-%D \setupbodyfont
-%D [ams]
-%D
-%D \definebodyfont [24pt] [mm]
-%D [ma=msam10 at 24pt,
-%D mb=msbm10 at 24pt]
-%D
-%D \switchtobodyfont
-%D [24pt]
-%D
-%D This is a 24pt $\blacktriangleleft$
-%D \stoptyping
-%D
-%D Here we didn't define the 24 point bodyfont environment, so
-%D it's defined automatically. Of course one can always use the
-%D \TEX\ primitive \type{\font} to switch to whatever font
-%D needed.
-
-%D When asking for a complete font switch, for instance from 10
-%D to 12~points, the next macro does the job. First we
-%D normalize the size, next we define the current range of
-%D text, script and scriptscript sizes, then we set the text
-%D fonts and the math families and finally we activate the
-%D default typeface and also set the font specific parameters
-%D assigned to \type{\everybodyfont}
-
-\def\dosetbodyfontface#1#2%
- {\edef#1{\bodyfontcsname\normalizedbodyfontsize#2\endcsname}}
-
-\def\docompletefontswitch[#1]%
- {\bodyfontsize#1\relax
- \dimensiontocount\bodyfontsize\bodyfontpoints
- \edef\bodyfontfactor{\withoutpt\the\bodyfontsize}%
- \normalizebodyfontsize\bodyfontsize\to\normalizedbodyfontsize
- \dosetbodyfontface \textface \s!text
- \dosetbodyfontface \scriptface \s!script
- \dosetbodyfontface \scriptscriptface \s!scriptscript}
-
-\docompletefontswitch[12pt] % init
-
-%D \macros
-%D {setupbodyfont,switchtobodyfont}
-%D
-%D The next two macros are user ones. With \type{\setupbodyfont}
-%D one can set the document bodyfont size, font family, style
-%D and/or options defined in files, for example:
-%D
-%D \starttyping
-%D \setupbodyfont[cmr,ams,12pt,roman]
-%D \stoptyping
-%D
-%D This command affects the document as a whole: text, headers
-%D and footers. The second macro however affects only the text:
-%D
-%D \starttyping
-%D \switchtobodyfont[10pt]
-%D \stoptyping
-%D
-%D So we've got:
-%D
-%D \showsetup{setupbodyfont}
-%D \showsetup{switchtobodyfont}
-%D
-%D Both macros look alike. The second one also has to take
-%D all kind of keywords into account.
-
-\ifx\saveinterlinespace \undefined \let\saveinterlinespace \relax \fi
-\ifx\restoreinterlinespace\undefined \let\restoreinterlinespace\relax \fi
-
-\chardef\bodyfontsetstate=0
-
-\definecomplexorsimple\setupbodyfont
-
-\def\simplesetupbodyfont
- {\restoreglobalbodyfont
- \saveinterlinespace}
-
-\def\complexsetupbodyfont[#1]%
- {\doifsomething{#1}
- {\dosetfont1{#1}%
- \globalbodyfontsize\localbodyfontsize
- \normalizebodyfontsize\globalbodyfontsize\to\normalizedglobalbodyfontsize
- \let\globalfontstyle\fontstyle
- \ifloadingfonts\else
- \the\everybodyfont
- \the\everyglobalbodyfont
- \saveinterlinespace
- \fi}}
-
-\unexpanded\def\switchtobodyfont[#1]%
- {\doifsomething{#1}
- {\doifdefinedelse{\??ft\normalizedbodyfontsize\interfaced{#1}}
- {\setbodyfontstep{#1}} % so we have a fast [small] switch
- {\dosetfont0{#1}}%
- \the\everybodyfont}} % indeed needed in case nothing is executed
-
-%D The following alternative is meant for math||to||text
-%D switching and will be optimized.
-
-\def\fastswitchtobodyfont#1%
- {\ifcsname\??ft\normalizedbodyfontsize#1\endcsname
- \edef\futurebodyfontsize
- {\csname\??ft\normalizedbodyfontsize#1\endcsname}%
- \ifcsname\@size@\futurebodyfontsize\endcsname
- \csname\@size@\futurebodyfontsize\endcsname
- \localbodyfontsize\futurebodyfontsize\relax
- \fi
- \fi
- \csname\@style@\fontstyle\endcsname
- \the\everybodyfont}
-
-%D Because the last macro can appear in arguments or be assigned
-%D to parameters, we protect this one for unwanted expansion.
-
-\def\dodosetmathfont#1%
- {\setcurrentfontalternative{#1}%
- % \doifdefinedelse{#1\s!fam} % adapted
- % {\edef\mffam{\getvalue{#1\s!fam}}}
- % {\edef\mffam{\getvalue{\c!nn\s!fam}}}%
- \textfont \mrfam\textfont \mffam
- \scriptfont \mrfam\scriptfont \mffam
- \scriptscriptfont\mrfam\scriptscriptfont\mffam}
-
-\def\domffam#1%
- {\csname\ifcsname#1\s!fam\endcsname#1\else\c!nn\fi\s!fam\endcsname}
-
-\def\mffam
- {\domffam\fontalternative}
-
-\def\dosetmathfont
- {\def\rm{\fam\mrfam}\dodosetmathfont}
-
-\def\enableencodinginmath
- {\appendtoks
- \everyhbox{\mr\everyhbox\emptytoks}%
- \everyvbox{\mr\everyvbox\emptytoks}%
- \to \everymathematics} % was \everymath
-
-% \enableencodinginmath % too untested to enable by default
-
-%D \starttyping
-%D $\cases{& \ccaron}$ $x=\hbox{\ccaron $x=\hbox{\ccaron}$}$
-%D \stoptyping
-
-%D The font specific features are bound to the filename.
-
-\ifx\updatefontparameters \undefined \let\updatefontparameters \relax \fi
-\ifx\setfontcharacteristics\undefined \let\setfontcharacteristics\relax \fi
-
-%D Experimental:
-
-\def\definefontfeature
- {\dotripleargument\dodefinefontfeature}
-
-\def\dodefinefontfeature[#1][#2][#3]%
- {\mkdefinefontfeature{#1}{#2}{#3}}
-
-\ifx\mkdefinefontfeature\undefined \let\mkdefinefontfeature\gobbletwoarguments \fi
-
-\definefontfeature
- [default]
- [liga=yes,kern=yes,tlig=yes,trep=yes] % texligatures=yes,texquotes=yes
-
-\definefontfeature
- [smallcaps]
- [liga=yes,kern=yes,tlig=yes,trep=yes,smcp=yes] % texligatures=yes,texquotes=yes
-
-\definefontfeature
- [oldstyle]
- [liga=yes,kern=yes,tlig=yes,trep=yes,onum=yes] % texligatures=yes,texquotes=yes
-
-%D The next auxilliary macro is an alternative to \type
-%D {\fontname}.
-
-% \def\purefontname#1{\expandafter\splitoffpurefontname\fontname#1 \\}
-%
-% extra level is needed:
-
-\def\purefontname#1{\@EA\splitoffpurefontname\@EA{\@EA{\@EA\unstringed\fontname#1}} \\}
-
-\def\splitoffpurefontname#1 #2\\{#1}
-
-%D \macros
-%D {switchstyleonly}
-%D
-%D For switching a style but keeping the alternative, there
-%D is:
-%D
-%D \starttyping
-%D {\bf text \switchstyleonly\ss text}
-%D {\bf text \switchstyleonly[ss]text}
-%D {\sl text \switchstyleonly[sansserif]text}
-%D \stoptyping
-
-\definecomplexorsimple\switchstyleonly
-
-\def\simpleswitchstyleonly#1% stupid version
- {\complexswitchstyleonly[\strippedcsname#1]}
-
-\def\complexswitchstyleonly[#1]% todo : check
- {\setcurrentfontstyle{\getvalue{\@shortstyle@#1}}%
- \the\everybodyfont} % needed ?
-
-%D \macros
-%D {os,frak, goth, cal}
-%D
-%D Old style numerals can be typeset with \type{\os} and look
-%D like {\os 1234567890} instead of the more common looking
-%D 1234567890.
-%D
-%D On behalf of {\frac Tobias Burnus}, we define some more of
-%D these. Later we will link these names to real file names.
-
-% older
-%
-% \definefont [os] [OldStyle sa *]
-% \definefont [frak] [Fraktur sa *]
-% \definefont [goth] [Gothic sa *]
-% \definefont [cal] [Calligraphic sa *]
-% \definefont [bbd] [Blackboard sa *]
-%
-% newer
-
-\def\os {\mathortext{\fam\purefamily {oldstyle}}{\symbolicfont {OldStyle}}}
-\def\frak{\mathortext{\fam\purefamily {fraktur}}{\symbolicfont {Fraktur}}}
-\def\goth{\mathortext{\fam\purefamily {gothic}}{\symbolicfont {Gothic}}}
-\def\cal {\mathortext{\fam\purefamily{calligraphic}}{\symbolicfont{Calligraphic}}}
-\def\bbd {\mathortext{\fam\purefamily {blackboard}}{\symbolicfont {Blackboard}}}
-
-\definefontsynonym [OldStyle] [Serif]
-\definefontsynonym [Fraktur] [Serif]
-\definefontsynonym [Gothic] [Serif]
-\definefontsynonym [Calligraphic] [Serif]
-\definefontsynonym [Blackboard] [Serif]
-
-%D \macros
-%D {fraktur, gothic, calligraphic, blackboard}
-%D
-%D These macros assume that we use text fonts, and not math
-%D families.
-
-\ifx\mathtext\undefined \let\mathtext\hbox \fi
-
-\def\fraktur #1{\mathortext\domathtext\donothing{\frak#1}}
-\def\gothic #1{\mathortext\domathtext\donothing{\goth#1}}
-\def\calligraphic#1{\mathortext\domathtext\donothing{\cal #1}}
-\def\blackboard #1{\mathortext\domathtext\donothing{\bbd#1}}
-
-%D Torture test:
-%D
-%D \starttyping
-%D \usetypescript[modern] [texnansi]
-%D \usetypescript[lucida] [texnansi]
-%D \usetypescript[palatino][texnansi]
-%D \usetypescript[times] [texnansi]
-%D \usetypescript[fourier] [ec]
-%D
-%D \startbuffer
-%D \section{\blackboard{T\high{\blackboard{T}}} \blackboard{E}\high{\blackboard{E}} \blackboard{X}\high{\blackboard{X}}}
-%D
-%D {\fontclass: 123 \os123 \cal TEX $\os 123$}
-%D
-%D $\blackboard{T}^{\blackboard{T}} \blackboard{E}^{\blackboard{E}} \blackboard{X}^{\blackboard{X}}$
-%D \blackboard{T}\high{\blackboard{T}} \blackboard{E}\high{\blackboard{E}} \blackboard{X}\high{\blackboard{X}}
-%D \stopbuffer
-%D
-%D {\setupbodyfont[lucida] \getbuffer}
-%D {\setupbodyfont[modern] \getbuffer}
-%D {\setupbodyfont[palatino] \getbuffer}
-%D {\setupbodyfont[times] \getbuffer}
-%D {\setupbodyfont[fourier] \getbuffer}
-%D \stoptyping
-
-%D \macros
-%D {definebodyfontswitch}
-%D
-%D \PLAIN\ \TEX\ defines some macro's like \type{\tenpoint}
-%D to switch to a specific bodyfontsize. Just for the sake of
-%D compatibility we can define them like:
-%D
-%D \starttyping
-%D \definebodyfontswitch [twelvepoint] [12pt]
-%D \stoptyping
-%D
-%D We don't support language specific synonyms here, mainly
-%D because \PLAIN\ \TEX\ is english anyway.
-
-\def\dodefinebodyfontswitch[#1][#2]%
- {\def\docommand##1{\setvalue{##1}{\switchtobodyfont[#2]}}%
- \processcommalist[#1]\docommand}
-
-\def\definebodyfontswitch
- {\dodoubleargument\dodefinebodyfontswitch}
-
-%D \macros
-%D {setsmallbodyfont,setmainbodyfont,setbigbodyfont}
-%D
-%D When we're typesetting at for instance 10pt, we can call for
-%D the \type{small} as well as the \type{big} alternative,
-%D related to this main size, using \type{\switchtobodyfont[small]}.
-%D The three alternatives can be activated by the next three
-%D system calls and are defined by the bodyfontenvironment.
-
-\let\fontstep\empty % we can use \fontstep for tracing purposes
-
-\def\setbodyfontstep#1%
- {\edef\fontstep{\bodyfontcsname\normalizedbodyfontsize\interfaced{#1}\endcsname}%
- \doswitchpoints[\fontstep]%
- \doswitchstyle[\fontstyle]}
-
-\unexpanded\def\setsmallbodyfont{\setbodyfontstep\v!small\the\everybodyfont}
-\unexpanded\def\setbigbodyfont {\setbodyfontstep\v!big \the\everybodyfont}
-
-\unexpanded\def\setmainbodyfont
- {\doswitchpoints[\normalizedbodyfontsize]%
- \doswitchstyle[\fontstyle]%
- \the\everybodyfont
- \the\everyglobalbodyfont
- \saveinterlinespace}
-
-%D \macros
-%D {restoreglobalbodyfont}
-%D
-%D Users can set whatever font available while typesetting text.
-%D Pagenumbers, footers, headers etc. however must be typeset
-%D in the main bodyfont and style of the document. Returning to
-%D the global state can be done with the next macro:
-
-\let\mainfontclass\empty
-
-\def\fullrestoreglobalbodyfont
- {\let\fontsize\defaultfontsize
- \let\fontbody\defaultfontbody
- \chardef\currentxfontsize\zerocount
- \let\fontclass\globalfontclass
- \doswitchpoints[\normalizedglobalbodyfontsize]%
- \doswitchstyle[\globalfontstyle]%
- \redoconvertfont % just in case a pagebreak occurs
- \tf
- \the\everybodyfont
- \the\everyglobalbodyfont
- \saveinterlinespace}
-
-\def\partialrestoreglobalbodyfont
- {\let\fontsize\defaultfontsize
- \let\fontbody\defaultfontbody
- \chardef\currentxfontsize\zerocount
- \redoconvertfont
- \tf
- \saveinterlinespace}
-
-\def\restoreglobalbodyfont % ook style etc
- {\ifx\fontclass\globalfontclass
- \ifx\fontstyle\globalfontstyle
- \ifx\normalizedbodyfontsize\normalizedglobalbodyfontsize
- \partialrestoreglobalbodyfont
- \else
- \fullrestoreglobalbodyfont
- \fi
- \else
- \fullrestoreglobalbodyfont
- \fi
- \else
- \fullrestoreglobalbodyfont
- \fi}
-
-% in case of troubles: \let\restorebodyfont\fullrestoreglobalbodyfont
-
-%D This macro has to be called when entering the pagebody
-%D handling routine as well as the footnote insert routine.
-%D Users can access this feature |<|for instance when one wants
-%D to typeset tables and alike in the main bodyfont and style
-%D while the running text is temporary set to a smaller one|>|
-%D by saying \type{\switchtobodyfont[global]}.
-
-%D \macros
-%D {rasterfont}
-%D
-%D There are (at the moment) two situations in which we want to
-%D have fast access to a particular font. When we are using
-%D \TEX\ to typeset rasters, we use small {\rasterfont.}'s
-%D (a rather small period indeed), the same as \PICTEX\ uses
-%D for drawing purposes.
-
-\definefont [rasterfont] [Serif at 5pt]
-
-%D \macros
-%D {infofont}
-%D
-%D The second situation occurs when we enable the info mode,
-%D and put all kind of status information in the margin. We
-%D don't want huge switches to the main bodyfont and style, so
-%D here too we use a direct method.
-
-% old mechanism
-%
-% \def\infofont{\getvalue{\!!sixpoint\c!tt\c!tf}\the\everybodyfont}
-
-\let\infofont\relax % satisfy dep checker
-
-\definefont [infofont] [Mono at 6pt] % todo \the\everybodyfont
-
-%D \macros
-%D {definealternativestyle}
-%D
-%D In the main modules we are going to implement lots of
-%D parameterized commands and one of these parameters will
-%D concern the font to use. To suit consistent use of fonts we
-%D here implement a mechanism for defining the keywords that
-%D present a particular style or alternative.
-%D
-%D \starttyping
-%D \definealternativestyle [keywords] [\style] [\nostyle]
-%D \stoptyping
-%D
-%D The first command is used in the normal textflow, while the
-%D second command takes care of headings and alike. Consider
-%D the next two definitions:
-%D
-%D \starttyping
-%D \definealternativestyle [bold] [\bf] []
-%D \definealternativestyle [cap] [\cap] [\cap]
-%D \stoptyping
-%D
-%D A change \type{\bf} in a heading which is to be set in
-%D \type{\tfd} does not look that well, so therefore we leave
-%D the second argument of \type{\definealternativestyle} empty.
-%D When we capatalize characters using the pseudo small cap
-%D command \type{\cap}, we want this to take effect in both
-%D text and headings, which is accomplished by assigning both
-%D arguments.
-
-\def\dodefinealternativestyle[#1][#2][#3]%
- {\def\docommand##1%
- {\doifundefined{##1}{\setvalue{##1}{\groupedcommand{#2}{}}}%
- \setvalue{\@letter@ ##1}{#2}%
- \setvalue{\@noletter@##1}{#3}}%
- \processcommalist[#1]\docommand}
-
-\def\definealternativestyle
- {\dotripleempty\dodefinealternativestyle}
-
-\def\definestyle{\definealternativestyle}
-
-%D Maybe too geneneric, but probably ok is the following. (Maybe one
-%D day we will use a dedicated grouped command for styles.)
-
-\appendtoks
- \let\groupedcommand\thirdofthreearguments
-\to \simplifiedcommands
-
-%D This command also defines the keyword as command. This means
-%D that the example definition of \type{bold} we gave before,
-%D results in a command \type{\bold} which can be used as:
-%D
-%D \startbuffer
-%D He's a \bold{bold} man with a {\bold head}.
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D or
-%D
-%D \startvoorbeeld
-%D \definealternativestyle[bold][\bf][]\getbuffer
-%D \stopvoorbeeld
-%D
-%D Such definitions are of course unwanted for \type{\cap}
-%D because this would result in an endless recursive call.
-%D Therefore we check on the existance of both the command and
-%D the substitution. The latter is needed because for instance
-%D \type{\type} is an entirely diferent command. That command
-%D handles verbatim, while the style command would just switch
-%D to teletype font. This is just an example of a tricky
-%D naming coincidence.
-
-%D \macros
-%D {doconvertfont,noconvertfont,
-%D dontconvertfont,redoconvertfont}
-%D
-%D After having defined such keywords, we can call for them by
-%D using
-%D
-%D \starttyping
-%D \doconvertfont{keyword}{text}
-%D \stoptyping
-%D
-%D We deliberately pass an argument. This enables us to
-%D assign converters that handle one agrument, like
-%D \type{\cap}.
-%D
-%D By default the first specification is used to set the style,
-%D exept when we say \type{\dontconvertfont}, after which the
-%D second specification is used. We can also directly call for
-%D \type{\noconvertfont}. In nested calls, we can restore the
-%D conversion by saying \type{\redoconvertfont}.
-
-\def\@@dodoconvertfont#1{\csname\@letter@ #1\endcsname}
-\def\@@donoconvertfont#1{\csname\@noletter@#1\endcsname}
-
-\unexpanded\def\dodoconvertfont#1% #2% we need the protection
- {\doifdefinedelse{\@letter@#1} % in testing
- {\doifelsenothing{#1}\gobbleoneargument\@@dodoconvertfont}
- {\doifdefinedelse{#1}\getvalue \firstofoneargument}%
- {#1}} % {#2}}
-
-\let\doconvertfont\dodoconvertfont
-
-\def\noconvertfont#1% #2%
- {\doifdefinedelse{\@noletter@#1}
- {\doifelsenothing{#1}\gobbleoneargument\@@donoconvertfont}\gobbleoneargument
- {#1}} % {#2}}
-
-%D Extras:
-
-\unexpanded\def\dontconvertfont
- {\let\doconvertfont\noconvertfont}
-
-\unexpanded\def\redoconvertfont
- {\let\doconvertfont\dodoconvertfont}
-
-%D These commands are not grouped! Grouping is most probably
-%D done by the calling macro's and would lead to unnecessary
-%D overhead.
-
-%D \macros
-%D {em,emphasistypeface,emphasisboldface}
-%D
-%D The next macro started as a copy of Donald Arseneau's
-%D \type{\em} (\TUGNEWS\ Vol.~3, no.~1, 1994). His
-%D implementation was a bit more sophisticated version of the
-%D standard \LATEX\ one. We furter enhanced the macro, so now
-%D it also adapts itself to boldface mode. Because we favor
-%D {\sl slanted} type over {\it italic}, we made the emphasis
-%D adaptable, for instance:
-%D
-%D \starttyping
-%D \def\emphasistypeface {\it}
-%D \def\emphasisboldface {\bi}
-%D \stoptyping
-%D
-%D But we prefer:
-
-\def\emphasistypeface {\sl}
-\def\emphasisboldface {\bs}
-
-%D or even better:
-
-\def\doemphasistypeface#1#2%
- {\doifelsevalue{\??ft\fontclass\normalizedbodyfontsize\c!em}\v!slanted#1%
- {\doifelsevalue{\??ft\fontclass\normalizedbodyfontsize\c!em}\v!italic#2%
- {\doifelsevalue{\??ft \normalizedbodyfontsize\c!em}\v!slanted#1%
- {\doifvalue {\??ft \normalizedbodyfontsize\c!em}\v!italic#2}}}}
-
-\def\emphasistypeface{\doemphasistypeface\sl\it}
-\def\emphasisboldface{\doemphasistypeface\bs\bi}
-
-%D To be set with the default body font environment: \type
-%D {em} being \type {slanted} or \type {italic}.
-
-\newconditional\emneeded
-
-\unexpanded\def\em
- {\relax
- \ifdim\slantperpoint>\zeropoint
- \settrue\emneeded
- \else
- \setfalse\emneeded
- \fi
- \setemphasisboldface % new
- \ifx\fontalternative\c!it % \ifnum\fam=\itfam
- \def\emphasistypeface{\it}\tf
- \else\ifx\fontalternative\c!sl % \ifnum\fam=\slfam
- \def\emphasistypeface{\sl}\tf
- \else\ifx\fontalternative\c!bf % \ifnum\fam=\bffam
- \emphasisboldface
- \else\ifx\fontalternative\c!bs % \ifnum\fam=\bsfam
- \def\emphasisboldface{\bs}\bf
- \else\ifx\fontalternative\c!bi % \ifnum\fam=\bifam
- \def\emphasisboldface{\bi}\bf
- \else
- \emphasistypeface
- \fi\fi\fi\fi\fi
- \ifconditional\emneeded\relax
- \else
- \expandafter\aftergroup
- \fi
- \emphasiscorrection}
-
-%D The next feature was not present in previous versions. It
-%D takes care of \type {\em \bf ...} sitiations.
-
-\def\setemphasisboldface
- {\let\normalbf\bf
- \let\setemphasisboldface\relax
- \unexpanded\def\bf
- {%\relax
- \let\bf\relax % new
- \ifx\fontalternative\c!it % \ifnum\fam=\itfam
- \bi
- \else\ifx\fontalternative\c!sl % \ifnum\fam=\slfam
- \bs
- \else
- \normalbf
- \fi\fi
- \let\bf\normalbf}}
-
-%D Donald's (adapted) macros take the next character into
-%D account when placing italic correction. As a bonus we also
-%D look for something that looks like a dash, in which case we
-%D don't correct.
-
-\let\italiccorrection=\/
-
-\def\emphasiscorrection
- {\ifhmode
- \expandafter\emphasislook
- \fi}
-
-\def\emphasislook
- {\begingroup
- \beginrobusttest
- \futurelet\next\emphasistest}
-
-\def\emphasistest
- {\normalifcat\noexpand\next,%
- \endrobusttest\expandafter\doemphasiscorrection
- \normalelse
- \endrobusttest\expandafter\dododoemphasiscorrection
- \normalfi}
-
-\def\doemphasiscorrection
- {\futurelet\next\dodoemphasiscorrection}
-
-\def\dodoemphasiscorrection
- {\setbox\scratchbox\hbox{\next}%
- \ifdim\ht\scratchbox=\zeropoint % probably a space
- \expandafter\dododoemphasiscorrection
- \else\ifdim\ht\scratchbox<.3ex
- \expandafter\expandafter\expandafter\endgroup
- \else
- \expandafter\expandafter\expandafter\dododoemphasiscorrection
- \fi\fi}
-
-\def\dododoemphasiscorrection
- {\scratchskip\lastskip
- \ifdim\scratchskip=\zeropoint\relax % == \ifzeropt\scratchskip
- \italiccorrection\relax
- \else
- \unskip\italiccorrection\hskip\scratchskip
- \fi
- \endgroup}
-
-%D We end with some examples which show the behavior when
-%D some punctuation is met. We also show how the mechanism
-%D adapts itself to bold, italic and slanted typing.
-%D
-%D \startbuffer
-%D test {test}test \par
-%D test {\sl test}test \par
-%D test {\em test}test \par
-%D test {\em test}--test \par
-%D
-%D test {test}, test \par
-%D test {\em test}, test \par
-%D
-%D test {\em test {\em test {\em test} test} test} test \par
-%D test {\bf test {\em test {\em test} test} test} test \par
-%D test {\sl test {\em test {\em test} test} test} test \par
-%D test {\it test {\em test {\em test} test} test} test \par
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D We get:
-%D
-%D \startvoorbeeld
-%D \startpacked
-%D \getbuffer
-%D \stoppacked
-%D \stopvoorbeeld
-
-%D \macros
-%D {emphbf,emphit,emphsl,emphtf}
-%D
-%D The next emphasis alternatives are for \THANH. They adapt
-%D their style as good as possible.
-
-\def\emphbf{\groupedcommand{\bf\def\emphit{\bi}\def\emphsl{\bs}}{}}
-\def\emphit{\groupedcommand{\it\def\emphbf{\bi}\def\emphsl{\sl}}{}}
-\def\emphsl{\groupedcommand{\sl\def\emphbf{\bs}\def\emphit{\it}}{}}
-\def\emphtf{\groupedcommand{\tf\def\emphbf{\bf}\def\emphit{\it}\def\emphsl{\sl}}{}}
-
-%D \startbuffer
-%D TEXT {\emphbf text \emphit text \emphtf text \emphsl text} TEXT
-%D TEXT \emphbf{text \emphit{text} \emphtf{text} \emphsl{text}} TEXT
-%D \stopbuffer
-%D
-%D \typebuffer
-%D \startlines
-%D \getbuffer
-%D \stoplines
-
-%D \macros
-%D {setfont}
-%D
-%D Every now and then we want to define a font directly, for
-%D instance when we typeset title pages. The next macro saves
-%D some typing:
-
-\def\setfont% geen \dosetfont mogelijk
- {\def\next{\nextfont\setupinterlinespace}%
- \afterassignment\next\font\nextfont=}
-
-%D One can call this macro as:
-%D
-%D \starttyping
-%D \setfont cmr10 at 60pt
-%D \stoptyping
-%D
-%D After which the font is active and the baselines and
-%D struts are set.
-
-%D \macros
-%D {showbodyfont}
-%D
-%D One can call for a rather simple overview of a bodyfont and the
-%D relations between its alternative fonts.
-%D
-%D \showsetup{showbodyfont}
-%D
-%D The current bodyfont (here we omitted the argument) looks like:
-%D
-%D \showbodyfont
-%D
-%D The implementation is rather straightforward in using
-%D \type{\halign}.
-
-\fetchruntimecommand \showbodyfont {\f!fontprefix\s!run}
-
-%D \macros
-%D {showfontstrip, testminimalbaseline, showminimalbaseline}
-%D
-%D The next command can come in handy when combining
-%D different fonts into a collection (typeface) and
-%D determining optimal baseline distances.
-%D
-%D \showfontstrip \blank \showminimalbaseline
-
-\fetchruntimecommand \showfontstrip {\f!fontprefix\s!run}
-\fetchruntimecommand \testminimalbaseline {\f!fontprefix\s!run}
-\fetchruntimecommand \showminimalbaseline {\f!fontprefix\s!run}
-
-%D \macros
-%D {showkerning}
-%D
-%D A goody is:
-%D
-%D \showkerning{Can you guess what kerning is?}
-
-\fetchruntimecommand \showkerning {\f!fontprefix\s!run}
-
-%D \macros
-%D {showbodyfontenvironment}
-%D
-%D The current bodyfontenvironment is:
-%D
-%D \showbodyfontenvironment
-%D
-%D This overview is generated using:
-%D
-%D \showsetup{showbodyfontenvironment}
-
-\fetchruntimecommand \showbodyfontenvironment {\f!fontprefix\s!run}
-
-%D \macros
-%D {showfont,showfontstyle,showligatures}
-%D
-%D The following command generates a fontmap:
-%D
-%D \startbuffer
-%D \showfont[SansBold at 12pt]
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D Below the table the name, encoding, mapping and handling are
-%D shown. Special characters like the \type {\skewchar} and
-%D \type {\hyphenchar} als marked.
-%D
-%D \getbuffer
-
-% to be internationalized
-
-\fetchruntimecommand \showfont {\f!fontprefix\s!run}
-\fetchruntimecommand \showfontstyle {\f!fontprefix\s!run}
-\fetchruntimecommand \showligature {\f!fontprefix\s!run}
-\fetchruntimecommand \showligatures {\f!fontprefix\s!run}
-\fetchruntimecommand \showcharratio {\f!fontprefix\s!run}
-
-%D \macros
-%D {getglyph, symbolicfont}
-%D
-%D Individual glyphs can be accessed by using
-%D
-%D \starttyping
-%D \getglyph{fontname}{character}
-%D \stoptyping
-%D
-%D This macro is used in for instance the symbol modules and
-%D as one can see, it does obey the small and even smaller
-%D sizes. The \type {\symbolicfont} macro can be used to
-%D switch to a font named \type {fontname} (see \type
-%D {cont-log} and \type {symb-eur} for examples of symbolic
-%D definitions.
-
-\def\fontstringA
- {\ifx\fontstyle\c!rm \s!Serif \else
- \ifx\fontstyle\c!ss \s!Sans \else
- \ifx\fontstyle\c!tt \s!Mono \else
- \s!Serif \fi\fi\fi}
-
-\def\fontstringB
- {\ifx\fontstyle\c!rm \s!Regular \else
- \ifx\fontstyle\c!ss \s!Support \else
- \ifx\fontstyle\c!tt \s!Type \else
- \s!Serif \fi\fi\fi}
-
-\def\fontstringC
- {\ifx\fontalternative\c!bf \s!Bold \else
- \ifx\fontalternative\c!sl \s!Slanted \else
- \ifx\fontalternative\c!it \s!Italic \else
- \ifx\fontalternative\c!bs \s!BoldSlanted \else
- \ifx\fontalternative\c!bi \s!BoldItalic \fi\fi\fi\fi\fi}
-
-\def\fontstringD % default fontstyle
- {\expandafter\ifx\csname\??tf\fontclass\s!default\endcsname\c!rm \s!Serif \else
- \expandafter\ifx\csname\??tf\fontclass\s!default\endcsname\c!ss \s!Sans \else
- \expandafter\ifx\csname\??tf\fontclass\s!default\endcsname\c!tt \s!Mono \else
- \s!Serif \fi\fi\fi}
-
-% potential generalization:
-
-% \letvalue{\??ff:t:\c!rm}\s!Serif
-% \letvalue{\??ff:t:\c!ss}\s!Sans
-% \letvalue{\??ff:t:\c!tt}\s!Mono
-%
-% \letvalue{\??ff:s:\c!bf}\s!Bold
-% \letvalue{\??ff:s:\c!sl}\s!Slanted
-% \letvalue{\??ff:s:\c!it}\s!Italic
-% \letvalue{\??ff:s:\c!bs}\s!BoldSlanted
-% \letvalue{\??ff:s:\c!bi}\s!BoldItalic
-%
-% \letvalue{\??ff:a:\c!rm}\s!Regular
-% \letvalue{\??ff:a:\c!ss}\s!Support
-% \letvalue{\??ff:a:\c!tt}\s!Type
-%
-% \def\fontstringA{\executeifdefined{\??ff:t:\fontstyle}\s!Serif}
-% \def\fontstringB{\executeifdefined{\??ff:a:\fontstyle}\s!Serif}
-% \def\fontstringC{\executeifdefined{\??ff:s:\fontstyle}\empty}
-% \def\fontstringD{\executeifdefined{\??ff:t:\csname\??tf\fontclass\s!default\endcsname}\s!Serif}
-
-\def\glyphfontfile#1%
- {#1%
- \ifcsname\??ff#1\fontstringA\fontstringC\endcsname
- \fontstringA\fontstringC
- \else\ifcsname\??ff#1\fontstringB\fontstringC\endcsname
- \fontstringB\fontstringC
- \else\ifcsname\??ff#1\fontstringA\endcsname
- \fontstringA
- \else\ifcsname\??ff#1\fontstringB\endcsname
- \fontstringB
- \else\ifcsname\??ff#1\fontstringC\endcsname
- \fontstringC
- \fi\fi\fi\fi\fi}
-
-%D The next macro can be used to make decisions based on the shape:
-
-\def\doifitalicelse#1#2%
- {\ifx\fontalternative\c!sl#1\else
- \ifx\fontalternative\c!it#1\else
- \ifx\fontalternative\c!bs#1\else
- \ifx\fontalternative\c!bi#1\else#2\fi\fi\fi\fi}
-
-%D For an example of usage of the following command,
-%D see \type {cont-log.tex}.
-%D
-%D \starttyping
-%D \def\symbolicfont#1%
-%D {\definedfont[\glyphfontfile{#1} sa *]}
-%D \stoptyping
-%D
-%D Since we know what scaling it to be applied, we can
-%D implement a much faster alternative:
-
-\let\thedefinedfont\relax
-
-% \def\symbolicscaledfont#1#2%
-% {\scaledfont\fontbody
-% \scaledfont#1\scaledfont
-% \font\thedefinedfont\truefontname{\glyphfontfile{#2}} at
-% \currentfontbodyscale\scaledfont
-% \thedefinedfont}
-%
-% \unexpanded\def\symbolicfont
-% {\symbolicscaledfont\plusone}
-%
-% even more control (needed for mthsqrt etc)
-
-\def\symbolicsizedfont#1#2#3%
- {\scaledfont#1%
- \scaledfont#2\scaledfont
- \font\thedefinedfont\truefontname{\glyphfontfile{#3}} at
- \currentfontbodyscale\scaledfont
- \thedefinedfont}
-
-\def\symbolicscaledfont
- {\symbolicsizedfont\fontbody}
-
-\unexpanded\def\symbolicfont
- {\symbolicsizedfont\fontbody\plusone}
-
-\unexpanded\def\getglyph#1#2% slow, faster, much faster
- %{{\definefont[\s!dummy][\glyphfontfile{#1} sa \currentfontscale]\dummy#2}}
- %{{\definefont[\s!dummy][\glyphfontfile{#1} sa *]\dummy#2}}
- %{{\symbolicfont{#1}#2}}
- {{\symbolicfont{#1}\doifnumberelse{#2}\char\donothing#2}}
-
-\unexpanded\def\getscaledglyph#1#2#3%
- {{\symbolicscaledfont{#1}{#2}\doifnumberelse{#3}\char\donothing#3}}
-
-\unexpanded\def\getrawglyph#1#2% for simple symbols
- {{\scaledfont\fontbody
- \font\thedefinedfont=#1 at \currentfontbodyscale\scaledfont
- \thedefinedfont\doifnumberelse{#2}\char\donothing#2}}
-
-%D The last implementation of \type {\getglyph} permits
-%D definitions like:
-%D
-%D \starttyping
-%D \definefontsynonym [EuroSans] [eurose]
-%D \definefontsynonym [EuroSansBold] [euroseb]
-%D \definefontsynonym [EuroSansItalic] [eurosei]
-%D \definefontsynonym [EuroSansSlanted] [eurosei]
-%D \definefontsynonym [EuroSansBoldItalic] [eurosebi]
-%D \definefontsynonym [EuroSansBoldSlanted] [eurosebi]
-%D
-%D \definesymbol [euro] [\getglyph{Euro}{\char160}]
-%D
-%D \def\euro{\symbol[euro]}
-%D \stoptyping
-%D
-%D These definitions guarantee that the next calls work okay:
-%D
-%D \starttyping
-%D \ss \tf\euro \bf\euro \sla\euro \itd\euro \bs\euro \bic\euro
-%D \stoptyping
-%D
-%D The shape as well as the size is adapted to the current
-%D environment.
-
-%D Fonts can only be used when loaded. In \CONTEXT\ we
-%D postpone the loading of fonts, even when we load \PLAIN.
-%D This means that we have to redefine one of the \PLAIN\
-%D macros. Let's tell that to the user first:
-
-\writestatus{loading}{Postponed Plain TeX Font Definitions}
-
-%D \macros
-%D {bordermatrix}
-%D
-%D In \PLAIN\ \TEX\ the width of a parenthesis is stored in
-%D the \DIMENSION\ \type{\p@renwd}. This value is derived from
-%D the width of \type{\tenrm B}, so let's take care of it now:
-
-\let\normalbordermatrix=\bordermatrix
-
-\def\bordermatrix%
- {\bgroup
- \setbox0\hbox{\getvalue{\textface\c!mm\c!ex}B}%
- \global\p@renwd\wd0\relax
- \egroup
- \normalbordermatrix}
-
-%D Because we want to be as \PLAIN\ compatible as possible, we
-%D make most of \PLAIN's font mechanisme available to the
-%D \CONTEXT\ user.
-
-\def\setplainfonts#1#2%
- {\setvalue {ten#1}{\getvalue{\!!tenpoint #2}}%
- \setvalue{seven#1}{\getvalue{\!!sevenpoint#2}}%
- \setvalue {five#1}{\getvalue{\!!fivepoint #2}}}
-
-\setplainfonts {\c!rm} {\c!rm\c!tf}
-\setplainfonts {\c!bf} {\c!rm\c!bf}
-\setplainfonts {\c!sl} {\c!rm\c!sl}
-\setplainfonts {\c!it} {\c!rm\c!it}
-\setplainfonts {\c!tt} {\c!rm\c!tt}
-\setplainfonts {\c!sy} {\c!mm\c!sy}
-\setplainfonts {\c!ex} {\c!mm\c!ex}
-\setplainfonts {\c!i} {\c!mm\c!mi}
-
-\let\setplainfonts=\undefined
-
-%D \macros
-%D {ss, SS, sz}
-%D
-%D We are going to redefine \type{\ss} but for those wo still
-%D want to have access to the german \SS, we save it's value in
-%D \type{\SS}. Ok, I should have used \type{\sf} instead of
-%D \type{\ss} in the first place.
-
-\ifx\undefined\SS \let\SS=\ss \fi
-\ifx\undefined\sz \let\sz=\ss \fi
-
-%D \macros
-%D {xi}
-%D
-%D We are going to redefine \type{\xi}, but fortunately this
-%D is a math mode character, so we can just say:
-
-\let\normalxi=\xi
-
-%D \macros
-%D {smashaccent}
-%D
-%D When we let \TEX\ put an accent on top of a character, such
-%D composed characters can get more height that height of a
-%D standard \type{\strut}. The next macro takes care of such
-%D unwanted compositions.
-%D
-%D We need to reach over the number that specifies the accent,
-%D and in doing so we use \type{\scratchcounter} as a placeholder
-%D because it accepts 8 bit numbers in octal, decimal or
-%D hexadecimal format. Next we set the height of the accented
-%D character to the natural height of the character.
-
-\unexpanded\def\smashaccent#1%
- {\dontleavehmode
- \bgroup
- \setbox\scratchbox\hbox{#1}%
- \ifdim\ht\scratchbox>\strutheight\relax\ht\scratchbox\strutheight\fi
- \ifdim\dp\scratchbox>\strutdepth \relax\dp\scratchbox\strutdepth \fi
- \box\scratchbox
- \egroup}
-
-%D For instance we can say:
-%D
-%D \starttyping
-%D \smashaccent{\"Uberhaupt}
-%D \stoptyping
-%D
-%D But normally one will use it as a prefix in definitions.
-%D The difference is in the height:
-%D
-%D \leavevmode\ruledhbox
-%D {\ruledhbox{\smashaccent{\"U}berhaupt}\quad
-%D oder\quad
-%D \ruledhbox{\"Uberhaupt}}
-
-%D \macros
-%D {moveaccent}
-%D
-%D Exact positioning of accents can be realized by saying:
-%D
-%D \starttyping
-%D \moveaccent{-.1ex}{\"u}berhaupt
-%D \stoptyping
-%D
-%D Again, this one will mostly used as a prefix in definitions.
-%D Here the difference is in the position:
-%D
-%D \leavevmode\ruledhbox
-%D {\ruledhbox{\moveaccent{-.1ex}{\"}Uberhaupt}\quad
-%D oder\quad
-%D \ruledhbox{\"Uberhaupt}}
-
-\unexpanded\def\moveaccent#1#2%
- {\smashaccent
- {\dimen0\exheight
- \dimen2\dimen0
- \advance\dimen2 -#1%
- \exheight\dimen2
- #2\relax
- \exheight\dimen0}}
-
-%D Personally I think that using \TEX\ is complicated by the
-%D way fonts are handled. Apart from the many encodings, we
-%D also deal with different naming schemes. Confronted with
-%D this problem, I decided to change the definitions into:
-%D
-%D \starttyping
-%D \definebodyfont [12pt] [rm] [tf=Times-Roman at 12pt]
-%D \stoptyping
-%D
-%D combined with for instance:
-%D
-%D \starttyping
-%D \definefontsynonym [Times-Roman] [tir]
-%D \stoptyping
-
-%D Now we're up to some definitions.
-
-\definebodyfontenvironment
- [\s!default]
- [ \s!text=1.0,
- \s!script=0.7,
- \s!scriptscript=0.5,
- \c!a=1.200,
- \c!b=1.440,
- \c!c=1.728,
- \c!d=2.074,
- *=\currentfontscale, % wildcard
- \c!x=0.8,
- \c!xx=0.6,
- \c!big=1.2,
- \c!small=0.8,
- \c!interlinespace=,
- \c!em=\v!slanted]
-
-\definebodyfontenvironment
- [20.7pt]
- [ \s!text=20.7pt,
- \s!script=\!!fourteenpointfour,
- \s!scriptscript=\!!twelvepoint,
- \c!x=17.3pt,
- \c!xx=\!!fourteenpointfour,
- \c!big=20.7pt, % !!!!
- \c!small=17.3pt]
-
-\definebodyfontenvironment
- [17.3pt]
- [ \s!text=17.3pt,
- \s!script=\!!twelvepoint,
- \s!scriptscript=\!!tenpoint,
- \c!x=\!!fourteenpointfour,
- \c!xx=\!!twelvepoint,
- \c!big=20.7pt,
- \c!small=\!!fourteenpointfour]
-
-\definebodyfontenvironment
- [\!!fourteenpointfour]
- [ \s!text=\!!fourteenpointfour,
- \s!script=\!!elevenpoint,
- \s!scriptscript=\!!ninepoint,
- \c!x=\!!twelvepoint,
- \c!xx=\!!tenpoint,
- \c!big=17.3pt,
- \c!small=\!!twelvepoint]
-
-\definebodyfontenvironment
- [\!!twelvepoint]
- [ \s!text=\!!twelvepoint,
- \s!script=\!!ninepoint,
- \s!scriptscript=\!!sevenpoint,
- \c!x=\!!tenpoint,
- \c!xx=\!!eightpoint,
- \c!big=\!!fourteenpointfour,
- \c!small=\!!tenpoint]
-
-\definebodyfontenvironment
- [\!!elevenpoint]
- [ \s!text=\!!elevenpoint,
- \s!script=\!!eightpoint,
- \s!scriptscript=\!!sixpoint,
- \c!x=\!!ninepoint,
- \c!xx=\!!sevenpoint,
- \c!big=\!!twelvepoint,
- \c!small=\!!ninepoint]
-
-\definebodyfontenvironment
- [\!!tenpoint]
- [ \s!text=\!!tenpoint,
- \s!script=\!!sevenpoint,
- \s!scriptscript=\!!fivepoint,
- \c!x=\!!eightpoint,
- \c!xx=\!!sixpoint,
- \c!big=\!!twelvepoint,
- \c!small=\!!eightpoint]
-
-\definebodyfontenvironment
- [\!!ninepoint]
- [ \s!text=\!!ninepoint,
- \s!script=\!!sevenpoint,
- \s!scriptscript=\!!fivepoint,
- \c!x=\!!sevenpoint,
- \c!xx=\!!fivepoint,
- \c!big=\!!elevenpoint,
- \c!small=\!!sevenpoint]
-
-\definebodyfontenvironment
- [\!!eightpoint]
- [ \s!text=\!!eightpoint,
- \s!script=\!!sixpoint,
- \s!scriptscript=\!!fivepoint,
- \c!x=\!!sixpoint,
- \c!xx=\!!fivepoint,
- \c!big=\!!tenpoint,
- \c!small=\!!sixpoint]
-
-\definebodyfontenvironment
- [\!!sevenpoint]
- [ \s!text=\!!sevenpoint,
- \s!script=\!!sixpoint,
- \s!scriptscript=\!!fivepoint,
- \c!x=\!!sixpoint,
- \c!xx=\!!fivepoint,
- \c!big=\!!ninepoint,
- \c!small=\!!fivepoint]
-
-\definebodyfontenvironment
- [\!!sixpoint]
- [ \s!text=\!!sixpoint,
- \s!script=\!!fivepoint,
- \s!scriptscript=\!!fivepoint,
- \c!x=\!!fivepoint,
- \c!xx=\!!fivepoint,
- \c!big=\!!eightpoint,
- \c!small=\!!fivepoint]
-
-\definebodyfontenvironment
- [\!!fivepoint]
- [ \s!text=\!!fivepoint,
- \s!script=\!!fivepoint,
- \s!scriptscript=\!!fivepoint,
- \c!x=\!!fivepoint,
- \c!xx=\!!fivepoint,
- \c!big=\!!sevenpoint,
- \c!small=\!!fivepoint]
-
-\definebodyfontenvironment
- [\!!fourpoint]
- [ \s!text=\!!fourpoint,
- \s!script=\!!fourpoint,
- \s!scriptscript=\!!fourpoint,
- \c!x=\!!fourpoint,
- \c!xx=\!!fourpoint,
- \c!big=\!!sixpoint,
- \c!small=\!!fourpoint]
-
-\definebodyfontswitch [fourteenpointfour] [\!!fourteenpointfour]
-\definebodyfontswitch [twelvepoint] [\!!twelvepoint]
-\definebodyfontswitch [elevenpoint] [\!!elevenpoint]
-\definebodyfontswitch [tenpoint] [\!!tenpoint]
-\definebodyfontswitch [ninepoint] [\!!ninepoint]
-\definebodyfontswitch [eightpoint] [\!!eightpoint]
-\definebodyfontswitch [sevenpoint] [\!!sevenpoint]
-\definebodyfontswitch [sixpoint] [\!!sixpoint]
-\definebodyfontswitch [fivepoint] [\!!fivepoint]
-\definebodyfontswitch [fourpoint] [\!!fourpoint]
-
-\definebodyfontswitch [xii] [\!!twelvepoint]
-\definebodyfontswitch [xi] [\!!elevenpoint]
-\definebodyfontswitch [x] [\!!tenpoint]
-\definebodyfontswitch [ix] [\!!ninepoint]
-\definebodyfontswitch [viii] [\!!eightpoint]
-\definebodyfontswitch [vii] [\!!sevenpoint]
-\definebodyfontswitch [vi] [\!!sixpoint]
-
-%D So far.
-
-\definefontstyle [\c!rm,\v!roman,\v!serif,\v!regular] [\c!rm]
-\definefontstyle [\c!ss,\v!sansserif,\v!sans,\v!support] [\c!ss]
-\definefontstyle [\c!tt,\v!teletype,\v!type,\v!mono] [\c!tt]
-\definefontstyle [\c!hw,\v!handwritten] [\c!hw]
-\definefontstyle [\c!cg,\v!calligraphic] [\c!cg]
-
-\definefontsize[\c!a] \definefontsize[\c!b]
-\definefontsize[\c!c] \definefontsize[\c!d]
-
-\definealternativestyle [\v!mediaeval] [\os] []
-\definealternativestyle [\v!normal] [\tf] []
-\definealternativestyle [\v!bold] [\bf] []
-\definealternativestyle [\v!type] [\tt] []
-\definealternativestyle [\v!mono] [\tt] []
-\definealternativestyle [\v!slanted] [\sl] []
-\definealternativestyle [\v!italic] [\it] []
-\definealternativestyle [\v!boldslanted,\v!slantedbold] [\bs] []
-\definealternativestyle [\v!bolditalic,\v!italicbold] [\bi] []
-\definealternativestyle [\v!small,\v!smallnormal] [\tfx] []
-\definealternativestyle [\v!smallbold] [\bfx] []
-\definealternativestyle [\v!smalltype] [\ttx] []
-\definealternativestyle [\v!smallslanted] [\slx] []
-\definealternativestyle [\v!smallboldslanted,\v!smallslantedbold] [\bsx] []
-\definealternativestyle [\v!smallbolditalic,\v!smallitalicbold] [\bix] []
-
-\definealternativestyle [\v!sans,\v!sansserif] [\ss] []
-\definealternativestyle [\v!sansbold] [\ss\bf] []
-
-%D Slow but handy:
-
-\definealternativestyle [\v!smallbodyfont] [\setsmallbodyfont] []
-\definealternativestyle [\v!bigbodyfont] [\setbigbodyfont] []
-
-%D We treat {\sc Small Caps} and \cap {Pseudo Caps} a bit
-%D different. We also provide an \WORD {uppercase} style.
-
-\definealternativestyle [\v!cap,\v!capital] [\smallcapped] [\smallcapped]
-\definealternativestyle [\v!smallcaps] [\sc] [\sc]
-\definealternativestyle [\v!WORD] [\WORD] [\WORD]
-
-%D \macros
-%D {...math}
-%D
-%D New or old?
-
-% tzt proper \define...
-%
-% watch out: \synchronizesymb resets the family so we need a second
-% \mf (or maybe \mr): messy and to be sorted out
-
-\def\tfmath{\tf\mf\synchronizesymb\mf}
-\def\bfmath{\bf\mf\synchronizesymb\mf}
-\def\slmath{\sl\mf\synchronizesymb\mf}
-\def\itmath{\it\mf\synchronizesymb\mf}
-\def\bsmath{\bs\mf\synchronizesymb\mf}
-\def\bimath{\bi\mf\synchronizesymb\mf}
-\def\scmath{\sc\mf\synchronizesymb\mf}
-\def\nnmath{\nn\mf\synchronizesymb\mf}
-
-\def\textmath {\synchronizesymb}
-
-%D \macros
-%D {fontstylesuffix}
-%D
-%D The next macro is used to map non latin fontnames on
-%D fonts. See \type {font-uni} for an example of its use.
-
-%\def\fontstylesuffix%
-% {\ifnum\fam=\tffam \s!Regular \else
-% \ifnum\fam=\bffam \s!Bold \else
-% \ifnum\fam=\slfam \s!Slanted \else
-% \ifnum\fam=\itfam \s!Italic \else
-% \ifnum\fam=\bsfam \s!BoldSlanted \else
-% \ifnum\fam=\bifam \s!BoldItalic \else
-% \s!Regular \fi\fi\fi\fi\fi\fi}%
-
-\def\fontstylesuffix% why the \s!Regular ? see \getglyph
- {\ifx\fontalternative\c!tf \s!Regular \else
- \ifx\fontalternative\c!bf \s!Bold \else
- \ifx\fontalternative\c!sl \s!Slanted \else
- \ifx\fontalternative\c!it \s!Italic \else
- \ifx\fontalternative\c!bs \s!BoldSlanted \else
- \ifx\fontalternative\c!bi \s!BoldItalic \else
- \ifx\fontalternative\c!sc \s!Caps \else
- \s!Regular \fi\fi\fi\fi\fi\fi\fi}%
-
-%D We still have to take care of \type{\xi}, so:
-
-\def\xi{\ifmmode\normalxi\else\elevenpoint\fi}
-
-%D \macros
-%D {definefontvariant,fontvariant,variant}
-%D
-%D A slightly adapted version of Adam Lindsays variant patches:
-%D
-%D \starttyping
-%D \usetypescriptfile[type-psc] \loadmapfile[texnansi-public-fpl]
-%D \usetypescript[palatino][texnansi] \setupbodyfont[palatino]
-%D
-%D \definefontvariant [Serif][osf] [OsF]
-%D
-%D \startlines
-%D {\sc abcdefgHIJKlmnop}
-%D 123{\Var[osf]456}789
-%D {\Var[osf] 123{\Var[reset]456}789}
-%D {\it 123{\Var[osf]456}789
-%D {\Var[osf]123{\Var[reset]456}789}}
-%D {\tfb\bf 123{\Var[osf]456}789
-%D {\Var[osf] 123{\Var[reset]456}789}}
-%D {\sc 123{\Var[osf]456}789
-%D {\Var[osf] 123{\Var[reset]456}789}}
-%D \stoplines
-%D \stoptyping
-
-\def\definefontvariant
- {\dotripleargument\dodefinefontvariant}
-
-\def\dodefinefontvariant[#1][#2][#3]%
- {\setvalue{\??fv#1#2}{#3}}
-
-\def\fontvariant#1#2{\executeifdefined{\??fv#1#2}\empty}
-
-% original:
-%
-% \def\variant[#1]%
-% {\expanded{\definedfont
-% [\truefontname{\fontstringA\fontstylesuffix\fontvariant\fontstringA{#1}}
-% at \currentfontscale\bodyfontsize]}}
-%
-% \beginXETEX \font
-%
-% \def\variant[#1]%
-% {\font\variantfont\truefontname{\fontstringA\fontstylesuffix\fontvariant\fontstringA{#1}}
-% at \currentfontscale\bodyfontsize
-% \variantfont}
-%
-% \endXETEX
-%
-% better
-
-\def\dosetscaledfont
- {\checkrelativefontsize\fontstyle
- \scaledfont\currentfontscale\bodyfontsize
- \scaledfont\relativefontsize\scaledfont}
-
-\unexpanded\def\variant[#1]% slow
- {\dosetscaledfont
- \expanded{\definedfont
- [\truefontname{\fontstringA\fontstylesuffix\fontvariant\fontstringA{#1}}
- at \scaledfont]}%
- \ignoreimplicitspaces}
-
-\beginXETEX \font
-
- \unexpanded\def\variant[#1]%
- {\dosetscaledfont
- \font\variantfont\truefontname{\fontstringA\fontstylesuffix\fontvariant\fontstringA{#1}}
- at \scaledfont
- \variantfont}
-
-\endXETEX
-
-\ifx\Var\undefined \let\Var\variant \fi
-
-%D By default we load the Computer Modern Roman fonts (but
-%D not yet at this moment) and activate the 12pt roman
-%D bodyfont. Sans serif and teletype are also available and
-%D can be called for by \type{\ss} and \type{\tt}.
-
-\setupbodyfont [unk, rm]
-
-%D Also needed is:
-
-\definefont[tinyfont][Mono at 1ex]
-
-%D \macros
-%D {doiffontpresentelse}
-%D
-%D Some unused left||overs:
-%D
-%D \starttyping
-%D \def\doiffontpresentelse#1#2#3%
-%D {\bgroup
-%D \batchmode\font\dummy=\truefontname{#1}\errorstopmode
-%D \edef\lastfontname{\fontname\dummy}%
-%D \ifx\lastfontname\nullfontname\egroup#3\else\egroup#2\fi}
-%D
-%D \def\abortiffontnotfound#1%
-%D {\doiffontpresentelse{#1}{}{\showmessage\m!fonts{10}{\truefontname{#1}}\endinput}}
-%D \stoptyping
-%D
-%D We now provide (slow, but sometimes handy):
-%D
-%D \starttyping
-%D \doiffontpresentelse{texnansi-lmr10}{YES}{NO}
-%D \doiffontpresentelse{adam-lindsay-modern-serif}{YES}{NO}
-%D \stoptyping
-
-\def\doiffontpresentelse#1%
- {\bgroup
- \scratchcounter\interactionmode
- \batchmode
- \font\dummy=\truefontname{#1}\relax
- \interactionmode\scratchcounter
- \edef\lastfontname{\fontname\dummy}%
- \ifx\lastfontname\nullfontname
- \egroup\expandafter\secondoftwoarguments
- \else
- \egroup\expandafter\firstoftwoarguments
- \fi}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/font-jap.tex b/Master/texmf-dist/tex/context/base/font-jap.mkii
index 6bb813cccd1..42480df43fa 100644
--- a/Master/texmf-dist/tex/context/base/font-jap.tex
+++ b/Master/texmf-dist/tex/context/base/font-jap.mkii
@@ -15,7 +15,7 @@
\ifx\handlejapaneseunicodeglyph\undefined \else \endinput \fi
\ifx\handlechineseunicodeglyph \undefined \input font-chi.tex \fi
-\writestatus{loading}{Context Font Macros / Japanese}
+\writestatus{loading}{ConTeXt Font Macros / Japanese}
\unprotect
diff --git a/Master/texmf-dist/tex/context/base/font-log.lua b/Master/texmf-dist/tex/context/base/font-log.lua
new file mode 100644
index 00000000000..af0b2552fb4
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/font-log.lua
@@ -0,0 +1,58 @@
+if not modules then modules = { } end modules ['font-log'] = {
+ version = 1.001,
+ comment = "companion to font-ini.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local next, format, lower, concat = next, string.format, string.lower, table.concat
+
+local trace_defining = false trackers.register("fonts.defining", function(v) trace_defining = v end)
+
+fonts.logger = fonts.logger or { }
+
+--[[ldx--
+<p>The following functions are used for reporting about the fonts
+used. The message itself is not that useful in regular runs but since
+we now have several readers it may be handy to know what reader is
+used for which font.</p>
+--ldx]]--
+
+function fonts.logger.save(tfmtable,source,specification) -- save file name in spec here ! ! ! ! ! !
+ if tfmtable and specification and specification.specification then
+ local name = lower(specification.name)
+ if trace_defining and not fonts.used[name] then
+ logs.report("define font","registering %s as %s (used: %s)",file.basename(specification.name),source,file.basename(specification.filename))
+ end
+ specification.source = source
+ fonts.loaded[lower(specification.specification)] = specification
+ -- fonts.used[name] = source
+ fonts.used[lower(specification.filename or specification.name)] = source
+ end
+end
+
+function fonts.logger.report(complete)
+ local t = { }
+ for name, used in table.sortedpairs(fonts.used) do
+ if complete then
+ t[#t+1] = used .. "->" .. file.basename(name)
+ else
+ t[#t+1] = file.basename(name)
+ end
+ end
+ return t
+end
+
+function fonts.logger.format(name)
+ return fonts.used[name] or "unknown"
+end
+
+statistics.register("loaded fonts", function()
+ if next(fonts.used) then
+ local t = fonts.logger.report()
+ return (#t > 0 and format("%s files: %s",#t,concat(t,separator or " "))) or "none"
+ else
+ return nil
+ end
+end)
diff --git a/Master/texmf-dist/tex/context/base/font-map.lua b/Master/texmf-dist/tex/context/base/font-map.lua
index 64ff268fb7e..c597d48552b 100644
--- a/Master/texmf-dist/tex/context/base/font-map.lua
+++ b/Master/texmf-dist/tex/context/base/font-map.lua
@@ -6,9 +6,16 @@ if not modules then modules = { } end modules ['font-map'] = {
license = "see context related readme files"
}
+local match, format, find, concat = string.match, string.format, string.find, table.concat
+
+local trace_loading = false trackers.register("otf.loading", function(v) trace_loading = v end)
+
+local ctxcatcodes = tex.ctxcatcodes
+
--[[ldx--
<p>Eventually this code will disappear because map files are kind
of obsolete. Some code may move to runtime or auxiliary modules.</p>
+<p>The name to unciode related code will stay of course.</p>
--ldx]]--
fonts = fonts or { }
@@ -29,21 +36,21 @@ function fonts.map.line.pdftex(e) -- so far no combination of slant and stretch
local fullname = e.fullname or ""
if e.slant and e.slant ~= 0 then
if e.encoding then
- return fonts.map.line.pdfmapline("=",string.format('%s %s "%g SlantFont" <%s <%s',e.name,fullname,e.slant,e.encoding,e.fontfile))
+ return fonts.map.line.pdfmapline("=",format('%s %s "%g SlantFont" <%s <%s',e.name,fullname,e.slant,e.encoding,e.fontfile))
else
- return fonts.map.line.pdfmapline("=",string.format('%s %s "%g SlantFont" <%s',e.name,fullname,e.slant,e.fontfile))
+ return fonts.map.line.pdfmapline("=",format('%s %s "%g SlantFont" <%s',e.name,fullname,e.slant,e.fontfile))
end
elseif e.stretch and e.stretch ~= 1 and e.stretch ~= 0 then
if e.encoding then
- return fonts.map.line.pdfmapline("=",string.format('%s %s "%g ExtendFont" <%s <%s',e.name,fullname,e.stretch,e.encoding,e.fontfile))
+ return fonts.map.line.pdfmapline("=",format('%s %s "%g ExtendFont" <%s <%s',e.name,fullname,e.stretch,e.encoding,e.fontfile))
else
- return fonts.map.line.pdfmapline("=",string.format('%s %s "%g ExtendFont" <%s',e.name,fullname,e.stretch,e.fontfile))
+ return fonts.map.line.pdfmapline("=",format('%s %s "%g ExtendFont" <%s',e.name,fullname,e.stretch,e.fontfile))
end
else
if e.encoding then
- return fonts.map.line.pdfmapline("=",string.format('%s %s <%s <%s',e.name,fullname,e.encoding,e.fontfile))
+ return fonts.map.line.pdfmapline("=",format('%s %s <%s <%s',e.name,fullname,e.encoding,e.fontfile))
else
- return fonts.map.line.pdfmapline("=",string.format('%s %s <%s',e.name,fullname,e.fontfile))
+ return fonts.map.line.pdfmapline("=",format('%s %s <%s',e.name,fullname,e.fontfile))
end
end
else
@@ -54,7 +61,7 @@ end
function fonts.map.flush(backend) -- will also erase the accumulated data
local flushline = fonts.map.line[backend or "pdftex"] or fonts.map.line.pdftex
for _, e in pairs(fonts.map.data) do
- tex.sprint(tex.ctxcatcodes,flushline(e))
+ tex.sprint(ctxcatcodes,flushline(e))
end
fonts.map.data = { }
end
@@ -76,27 +83,27 @@ function fonts.map.load_file(filename, entries, encodings)
if f then
local data = f:read("*a")
if data then
- for line in data:gmatch("(.-)[\n\t]") do
- if line:find("^[%#%%%s]") then
+ for line in gmatch(data,"(.-)[\n\t]") do
+ if find(line,"^[%#%%%s]") then
-- print(line)
else
local stretch, slant, name, fullname, fontfile, encoding
line = line:gsub('"(.+)"', function(s)
- stretch = s:find('"([^"]+) ExtendFont"')
- slant = s:find('"([^"]+) SlantFont"')
+ stretch = find(s,'"([^"]+) ExtendFont"')
+ slant = find(s,'"([^"]+) SlantFont"')
return ""
end)
if not name then
-- name fullname encoding fontfile
- name, fullname, encoding, fontfile = line:match("^(%S+)%s+(%S*)[%s<]+(%S*)[%s<]+(%S*)%s*$")
+ name, fullname, encoding, fontfile = match(line,"^(%S+)%s+(%S*)[%s<]+(%S*)[%s<]+(%S*)%s*$")
end
if not name then
-- name fullname (flag) fontfile encoding
- name, fullname, fontfile, encoding = line:match("^(%S+)%s+(%S*)[%d%s<]+(%S*)[%s<]+(%S*)%s*$")
+ name, fullname, fontfile, encoding = match(line,"^(%S+)%s+(%S*)[%d%s<]+(%S*)[%s<]+(%S*)%s*$")
end
if not name then
-- name fontfile
- name, fontfile = line:match("^(%S+)%s+[%d%s<]+(%S*)%s*$")
+ name, fontfile = match(line,"^(%S+)%s+[%d%s<]+(%S*)%s*$")
end
if name then
if encoding == "" then encoding = nil end
@@ -119,3 +126,93 @@ function fonts.map.load_file(filename, entries, encodings)
end
return entries, encodings
end
+
+function fonts.map.load_lum_table(filename)
+ local lumname = file.replacesuffix(file.basename(filename),"lum")
+ local lumfile = resolvers.find_file(lumname,"map") or ""
+ if lumfile ~= "" and lfs.isfile(lumfile) then
+ if trace_loading or trace_unimapping then
+ logs.report("load otf","enhance: loading %s ",lumfile)
+ end
+ lumunic = dofile(lumfile)
+ return lumunic, lumfile
+ end
+end
+
+local hex = lpeg.R("AF","09")
+local hexfour = (hex*hex*hex*hex) / function(s) return tonumber(s,16) end
+local dec = (lpeg.R("09")^1) / tonumber
+local period = lpeg.P(".")
+
+local unicode = lpeg.P("uni") * (hexfour * (period + lpeg.P(-1)) * lpeg.Cc(false) + lpeg.Ct(hexfour^1) * lpeg.Cc(true))
+local index = lpeg.P("index") * dec * lpeg.Cc(false)
+
+local parser = unicode + index
+
+local parsers = { }
+
+function fonts.map.make_name_parser(str)
+ if not str or str == "" then
+ return parser
+ else
+ local p = parsers[str]
+ if not p then
+ p = lpeg.P(str) * period * dec * lpeg.Cc(false)
+ parsers[str] = p
+ end
+ return p
+ end
+end
+
+--~ local parser = fonts.map.make_name_parser("Japan1")
+--~ local function test(str)
+--~ local b, a = parser:match(str)
+--~ print((a and table.serialize(b)) or b)
+--~ end
+--~ test("uni1234")
+--~ test("uni1234.xx")
+--~ test("uni12349876")
+--~ test("index1234")
+--~ test("Japan1.123")
+
+function fonts.map.tounicode16(unicode)
+ if unicode < 0x10000 then
+ return format("%04X",unicode)
+ else
+ return format("%04X%04X",unicode/1024+0xD800,unicode%1024+0xDC00)
+ end
+end
+
+function fonts.map.tounicode16sequence(unicodes)
+ local t = { }
+ for l=1,#unicodes do
+ local unicode = unicodes[l]
+ if unicode < 0x10000 then
+ t[l] = format("%04X",unicode)
+ else
+ t[l] = format("%04X%04X",unicode/1024+0xD800,unicode%1024+0xDC00)
+ end
+ end
+ return concat(t)
+end
+
+--~ This is quite a bit faster but at the cost of some memory but if we
+--~ do this we will also use it elsewhere so let's not follow this route
+--~ now. I might use this method in the plain variant (no caching there)
+--~ but then I need a flag that distinguishes between code branches.
+--~
+--~ local cache = { }
+--~
+--~ function fonts.map.tounicode16(unicode)
+--~ local s = cache[unicode]
+--~ if not s then
+--~ if unicode < 0x10000 then
+--~ s = format("%04X",unicode)
+--~ else
+--~ s = format("%04X%04X",unicode/1024+0xD800,unicode%1024+0xDC00)
+--~ end
+--~ cache[unicode] = s
+--~ end
+--~ return s
+--~ end
+
diff --git a/Master/texmf-dist/tex/context/base/font-mis.lua b/Master/texmf-dist/tex/context/base/font-mis.lua
new file mode 100644
index 00000000000..cc20b97119a
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/font-mis.lua
@@ -0,0 +1,91 @@
+if not modules then modules = { } end modules ['font-mis'] = {
+ version = 1.001,
+ comment = "companion to luatex-fonts.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local next, pairs, ipairs = next, pairs, ipairs
+local lower, strip = string.lower, string.strip
+
+fonts.otf = fonts.otf or { }
+
+fonts.otf.version = fonts.otf.version or 2.628
+fonts.otf.pack = true
+fonts.otf.cache = containers.define("fonts", "otf", fonts.otf.version, true)
+
+function fonts.otf.loadcached(filename,format,sub)
+ -- no recache when version mismatch
+ local name = file.basename(file.removesuffix(filename))
+ if sub == "" then sub = false end
+ local hash = name
+ if sub then
+ hash = hash .. "-" .. sub
+ end
+ hash = containers.cleanname(hash)
+ local data = containers.read(fonts.otf.cache(), hash)
+ if data and not data.verbose then
+ fonts.otf.enhancers.unpack(data)
+ return data
+ else
+ return nil
+ end
+end
+
+function fonts.get_features(name,t,script,language)
+ local t = lower(t or (name and file.extname(name)) or "")
+ if t == "otf" or t == "ttf" or t == "ttc" then
+ local filename = resolvers.find_file(name,t) or ""
+ if filename ~= "" then
+ local data = fonts.otf.loadcached(filename)
+ if data and data.luatex and data.luatex.features then
+ return data.luatex.features
+ else
+ local ff = fontloader.open(filename)
+ if ff then
+ local data = fontloader.to_table(ff)
+ fontloader.close(ff)
+ local features = { }
+ for k, what in pairs { "gsub", "gpos" } do
+ local dw = data[what]
+ if dw then
+ local f = { }
+ features[what] = f
+ for _, d in ipairs(dw) do
+ if d.features then
+ for _, df in ipairs(d.features) do
+ local tag = strip(lower(df.tag))
+ local ft = f[tag] if not ft then ft = {} f[tag] = ft end
+ for _, ds in ipairs(df.scripts) do
+ local scri = strip(lower(ds.script))
+ local fts = ft[scri] if not fts then fts = {} ft[scri] = fts end
+ for _, lang in ipairs(ds.langs) do
+ lang = strip(lower(lang))
+ if scri == script then
+ if lang == language then
+ fts[lang] = 'sl'
+ else
+ fts[lang] = 's'
+ end
+ else
+ if lang == language then
+ fts[lang] = 'l'
+ else
+ fts[lang] = true
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ return features
+ end
+ end
+ end
+ end
+ return nil, nil
+end
diff --git a/Master/texmf-dist/tex/context/base/font-ota.lua b/Master/texmf-dist/tex/context/base/font-ota.lua
new file mode 100644
index 00000000000..72e7414c8af
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/font-ota.lua
@@ -0,0 +1,320 @@
+if not modules then modules = { } end modules ['font-ota'] = {
+ version = 1.001,
+ comment = "companion to font-otf.lua (analysing)",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- this might become scrp-*.lua
+
+local type, tostring, match, format, concat = type, tostring, string.match, string.format, table.concat
+
+if not trackers then trackers = { register = function() end } end
+
+local trace_analyzing = false trackers.register("otf.analyzing", function(v) trace_analyzing = v end)
+local trace_cjk = false trackers.register("cjk.injections", function(v) trace_cjk = v end)
+
+trackers.register("cjk.analyzing","otf.analyzing")
+
+fonts = fonts or { }
+fonts.analyzers = fonts.analyzers or { }
+fonts.analyzers.initializers = fonts.analyzers.initializers or { node = { otf = { } } }
+fonts.analyzers.methods = fonts.analyzers.methods or { node = { otf = { } } }
+
+local otf = fonts.otf
+local tfm = fonts.tfm
+
+local initializers = fonts.analyzers.initializers
+local methods = fonts.analyzers.methods
+
+local glyph = node.id('glyph')
+local glue = node.id('glue')
+local penalty = node.id('penalty')
+
+local set_attribute = node.set_attribute
+local has_attribute = node.has_attribute
+local traverse_id = node.traverse_id
+local delete_node = nodes.delete
+local replace_node = nodes.replace
+local insert_node_after = node.insert_after
+local insert_node_before = node.insert_before
+local traverse_node_list = node.traverse
+
+local fontdata = fonts.ids
+local state = attributes.private('state')
+
+local fcs = (fonts.color and fonts.color.set) or function() end
+local fcr = (fonts.color and fonts.color.reset) or function() end
+
+local a_to_script = otf.a_to_script
+local a_to_language = otf.a_to_language
+
+-- in the future we will use language/script attributes instead of the
+-- font related value, but then we also need dynamic features which is
+-- somewhat slower; and .. we need a chain of them
+
+
+function fonts.initializers.node.otf.analyze(tfmdata,value,attr)
+ if attr and attr > 0 then
+ script, language = a_to_script[attr], a_to_language[attr]
+ else
+ script, language = tfmdata.script, tfmdata.language
+ end
+ local action = initializers[script]
+ if action then
+ if type(action) == "function" then
+ return action(tfmdata,value)
+ else
+ local action = action[language]
+ if action then
+ return action(tfmdata,value)
+ end
+ end
+ end
+ return nil
+end
+
+function fonts.methods.node.otf.analyze(head,font,attr)
+ local tfmdata = fontdata[font]
+ local script, language
+ if attr and attr > 0 then
+ script, language = a_to_script[attr], a_to_language[attr]
+ else
+ script, language = tfmdata.script, tfmdata.language
+ end
+ local action = methods[script]
+ if action then
+ if type(action) == "function" then
+ return action(head,font,attr)
+ else
+ action = action[language]
+ if action then
+ return action(head,font,attr)
+ end
+ end
+ end
+ return head, false
+end
+
+otf.features.register("analyze",true) -- we always analyze
+table.insert(fonts.triggers,"analyze") -- we need a proper function for doing this
+
+-- latin
+
+fonts.analyzers.methods.latn = fonts.analyzers.aux.setstate
+
+-- this info eventually will go into char-def
+
+local zwnj = 0x200C
+local zwj = 0x200D
+
+local isol = {
+ [0x0600] = true, [0x0601] = true, [0x0602] = true, [0x0603] = true,
+ [0x0608] = true, [0x060B] = true, [0x0621] = true, [0x0674] = true,
+ [0x06DD] = true, [zwnj] = true,
+}
+
+local isol_fina = {
+ [0x0622] = true, [0x0623] = true, [0x0624] = true, [0x0625] = true,
+ [0x0627] = true, [0x0629] = true, [0x062F] = true, [0x0630] = true,
+ [0x0631] = true, [0x0632] = true, [0x0648] = true, [0x0671] = true,
+ [0x0672] = true, [0x0673] = true, [0x0675] = true, [0x0676] = true,
+ [0x0677] = true, [0x0688] = true, [0x0689] = true, [0x068A] = true,
+ [0x068B] = true, [0x068C] = true, [0x068D] = true, [0x068E] = true,
+ [0x068F] = true, [0x0690] = true, [0x0691] = true, [0x0692] = true,
+ [0x0693] = true, [0x0694] = true, [0x0695] = true, [0x0696] = true,
+ [0x0697] = true, [0x0698] = true, [0x0699] = true, [0x06C0] = true,
+ [0x06C3] = true, [0x06C4] = true, [0x06C5] = true, [0x06C6] = true,
+ [0x06C7] = true, [0x06C8] = true, [0x06C9] = true, [0x06CA] = true,
+ [0x06CB] = true, [0x06CD] = true, [0x06CF] = true, [0x06D2] = true,
+ [0x06D3] = true, [0x06D5] = true, [0x06EE] = true, [0x06EF] = true,
+ [0x0759] = true, [0x075A] = true, [0x075B] = true, [0x076B] = true,
+ [0x076C] = true, [0x0771] = true, [0x0773] = true, [0x0774] = true,
+ [0x0778] = true, [0x0779] = true,
+}
+
+local isol_fina_medi_init = {
+ [0x0626] = true, [0x0628] = true, [0x062A] = true, [0x062B] = true,
+ [0x062C] = true, [0x062D] = true, [0x062E] = true, [0x0633] = true,
+ [0x0634] = true, [0x0635] = true, [0x0636] = true, [0x0637] = true,
+ [0x0638] = true, [0x0639] = true, [0x063A] = true, [0x063B] = true,
+ [0x063C] = true, [0x063D] = true, [0x063E] = true, [0x063F] = true,
+ [0x0640] = true, [0x0641] = true, [0x0642] = true, [0x0643] = true,
+ [0x0644] = true, [0x0645] = true, [0x0646] = true, [0x0647] = true,
+ [0x0649] = true, [0x064A] = true, [0x066E] = true, [0x066F] = true,
+ [0x0678] = true, [0x0679] = true, [0x067A] = true, [0x067B] = true,
+ [0x067C] = true, [0x067D] = true, [0x067E] = true, [0x067F] = true,
+ [0x0680] = true, [0x0681] = true, [0x0682] = true, [0x0683] = true,
+ [0x0684] = true, [0x0685] = true, [0x0686] = true, [0x0687] = true,
+ [0x069A] = true, [0x069B] = true, [0x069C] = true, [0x069D] = true,
+ [0x069E] = true, [0x069F] = true, [0x06A0] = true, [0x06A1] = true,
+ [0x06A2] = true, [0x06A3] = true, [0x06A4] = true, [0x06A5] = true,
+ [0x06A6] = true, [0x06A7] = true, [0x06A8] = true, [0x06A9] = true,
+ [0x06AA] = true, [0x06AB] = true, [0x06AC] = true, [0x06AD] = true,
+ [0x06AE] = true, [0x06AF] = true, [0x06B0] = true, [0x06B1] = true,
+ [0x06B2] = true, [0x06B3] = true, [0x06B4] = true, [0x06B5] = true,
+ [0x06B6] = true, [0x06B7] = true, [0x06B8] = true, [0x06B9] = true,
+ [0x06BA] = true, [0x06BB] = true, [0x06BC] = true, [0x06BD] = true,
+ [0x06BE] = true, [0x06BF] = true, [0x06C1] = true, [0x06C2] = true,
+ [0x06CC] = true, [0x06CE] = true, [0x06D0] = true, [0x06D1] = true,
+ [0x06FA] = true, [0x06FB] = true, [0x06FC] = true, [0x06FF] = true,
+ [0x0750] = true, [0x0751] = true, [0x0752] = true, [0x0753] = true,
+ [0x0754] = true, [0x0755] = true, [0x0756] = true, [0x0757] = true,
+ [0x0758] = true, [0x075C] = true, [0x075D] = true, [0x075E] = true,
+ [0x075F] = true, [0x0760] = true, [0x0761] = true, [0x0762] = true,
+ [0x0763] = true, [0x0764] = true, [0x0765] = true, [0x0766] = true,
+ [0x0767] = true, [0x0768] = true, [0x0769] = true, [0x076A] = true,
+ [0x076D] = true, [0x076E] = true, [0x076F] = true, [0x0770] = true,
+ [0x0772] = true, [0x0775] = true, [0x0776] = true, [0x0777] = true,
+ [0x077A] = true, [0x077B] = true, [0x077C] = true, [0x077D] = true,
+ [0x077E] = true, [0x077F] = true, [zwj] = true,
+}
+
+local arab_warned = { }
+
+-- todo: gref
+
+local function warning(current,what)
+ local char = current.char
+ if not arab_warned[char] then
+ log.report("analyze","arab: character %s (U+%04X) has no %s class", char, char, what)
+ arab_warned[char] = true
+ end
+end
+
+function fonts.analyzers.methods.nocolor(head,font,attr)
+ for n in traverse_node_list(head,glyph) do
+ if not font or n.font == font then
+ fcr(n)
+ end
+ end
+ return head, true
+end
+
+otf.remove_joiners = false -- true -- for idris who want it as option
+
+local function finish(first,last)
+ if last then
+ if first == last then
+ local fc = first.char
+ if isol_fina_medi_init[fc] or isol_fina[fc] then
+ set_attribute(first,state,4) -- isol
+ if trace_analyzing then fcs(first,"font:isol") end
+ else
+ warning(first,"isol")
+ set_attribute(first,state,0) -- error
+ if trace_analyzing then fcr(first) end
+ end
+ else
+ local lc = last.char
+ if isol_fina_medi_init[lc] or isol_fina[lc] then -- why isol here ?
+ -- if laststate == 1 or laststate == 2 or laststate == 4 then
+ set_attribute(last,state,3) -- fina
+ if trace_analyzing then fcs(last,"font:fina") end
+ else
+ warning(last,"fina")
+ set_attribute(last,state,0) -- error
+ if trace_analyzing then fcr(last) end
+ end
+ end
+ first, last = nil, nil
+ elseif first then
+ -- first and last are either both set so we never com here
+ local fc = first.char
+ if isol_fina_medi_init[fc] or isol_fina[fc] then
+ set_attribute(first,state,4) -- isol
+ if trace_analyzing then fcs(first,"font:isol") end
+ else
+ warning(first,"isol")
+ set_attribute(first,state,0) -- error
+ if trace_analyzing then fcr(first) end
+ end
+ first = nil
+ end
+ return first, last
+end
+
+function fonts.analyzers.methods.arab(head,font,attr) -- maybe make a special version with no trace
+ local tfmdata = fontdata[font]
+ local marks = tfmdata.marks
+ local first, last, current, done = nil, nil, head, false
+ local joiners, nonjoiners
+ local removejoiners = tfmdata.remove_joiners -- or otf.remove_joiners
+ if removejoiners then
+ joiners, nonjoiners = { }, { }
+ end
+ while current do
+ if current.id == glyph and current.subtype<256 and current.font == font and not has_attribute(current,state) then
+ done = true
+ local char = current.char
+ if removejoiners then
+ if char == zwj then
+ joiners[#joiners+1] = current
+ elseif char == zwnj then
+ nonjoiners[#nonjoiners+1] = current
+ end
+ end
+ if marks[char] then
+ set_attribute(current,state,5) -- mark
+ if trace_analyzing then fcs(current,"font:mark") end
+ elseif isol[char] then -- can be zwj or zwnj too
+ first, last = finish(first,last)
+ set_attribute(current,state,4) -- isol
+ if trace_analyzing then fcs(current,"font:isol") end
+ first, last = nil, nil
+ elseif not first then
+ if isol_fina_medi_init[char] then
+ set_attribute(current,state,1) -- init
+ if trace_analyzing then fcs(current,"font:init") end
+ first, last = first or current, current
+ elseif isol_fina[char] then
+ set_attribute(current,state,4) -- isol
+ if trace_analyzing then fcs(current,"font:isol") end
+ first, last = nil, nil
+ else -- no arab
+ first, last = finish(first,last)
+ end
+ elseif isol_fina_medi_init[char] then
+ first, last = first or current, current
+ set_attribute(current,state,2) -- medi
+ if trace_analyzing then fcs(current,"font:medi") end
+ elseif isol_fina[char] then
+ if not has_attribute(last,state,1) then
+ -- tricky, we need to check what last may be !
+ set_attribute(last,state,2) -- medi
+ if trace_analyzing then fcs(last,"font:medi") end
+ end
+ set_attribute(current,state,3) -- fina
+ if trace_analyzing then fcs(current,"font:fina") end
+ first, last = nil, nil
+ elseif char >= 0x0600 and char <= 0x06FF then
+ if trace_analyzing then fcs(current,"font:rest") end
+ first, last = finish(first,last)
+ else --no
+ first, last = finish(first,last)
+ end
+ else
+ first, last = finish(first,last)
+ end
+ current = current.next
+ end
+ first, last = finish(first,last)
+ if removejoiners then
+ for i=1,#joiners do
+ head = delete_node(head,joiners[i])
+ end
+ for i=1,#nonjoiners do
+ head = replace_node(head,nonjoiners[i],nodes.glue(0)) -- or maybe a kern
+ end
+ end
+ return head, done
+end
+
+table.insert(fonts.manipulators,"joiners")
+
+function fonts.initializers.node.otf.joiners(tfmdata,value)
+ if value == "strip" then
+ tfmdata.remove_joiners = true
+ end
+end
diff --git a/Master/texmf-dist/tex/context/base/font-otb.lua b/Master/texmf-dist/tex/context/base/font-otb.lua
new file mode 100644
index 00000000000..a4606d31951
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/font-otb.lua
@@ -0,0 +1,371 @@
+if not modules then modules = { } end modules ['font-otb'] = {
+ version = 1.001,
+ comment = "companion to font-ini.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local concat = table.concat
+local format, gmatch, gsub, find, match, lower, strip = string.format, string.gmatch, string.gsub, string.find, string.match, string.lower, string.strip
+local type, next, tonumber, tostring = type, next, tonumber, tostring
+
+local otf = fonts.otf
+local tfm = fonts.tfm
+
+local trace_baseinit = false trackers.register("otf.baseinit", function(v) trace_baseinit = v end)
+local trace_singles = false trackers.register("otf.singles", function(v) trace_singles = v end)
+local trace_multiples = false trackers.register("otf.multiples", function(v) trace_multiples = v end)
+local trace_alternatives = false trackers.register("otf.alternatives", function(v) trace_alternatives = v end)
+local trace_ligatures = false trackers.register("otf.ligatures", function(v) trace_ligatures = v end)
+local trace_kerns = false trackers.register("otf.kerns", function(v) trace_kerns = v end)
+local trace_preparing = false trackers.register("otf.preparing", function(v) trace_preparing = v end)
+
+local wildcard = "*"
+local default = "dflt"
+
+local split_at_space = lpeg.Ct(lpeg.splitat(" ")) -- no trailing or multiple spaces anyway
+
+local pcache, fcache = { }, { } -- could be weak
+
+local function gref(descriptions,n)
+ if type(n) == "number" then
+ local name = descriptions[n].name
+ if name then
+ return format("U+%04X (%s)",n,name)
+ else
+ return format("U+%04X")
+ end
+ elseif n then
+ local num, nam = { }, { }
+ for i=1,#n do
+ local ni = n[i]
+ num[i] = format("U+%04X",ni)
+ nam[i] = descriptions[ni].name or "?"
+ end
+ return format("%s (%s)",concat(num," "), concat(nam," "))
+ else
+ return "?"
+ end
+end
+
+local function cref(kind,lookupname)
+ if lookupname then
+ return format("feature %s, lookup %s",kind,lookupname)
+ else
+ return format("feature %s",kind)
+ end
+end
+
+local function resolve_ligatures(tfmdata,ligatures,kind)
+ kind = kind or "unknown"
+ local unicodes = tfmdata.unicodes
+ local characters = tfmdata.characters
+ local descriptions = tfmdata.descriptions
+ local changed = tfmdata.changed
+ local done = { }
+ while true do
+ local ok = false
+ for k,v in next, ligatures do
+ local lig = v[1]
+ if not done[lig] then
+ local ligs = split_at_space:match(lig)
+ if #ligs == 2 then
+ local uc = v[2]
+ local c, f, s = characters[uc], ligs[1], ligs[2]
+ local uft, ust = unicodes[f] or 0, unicodes[s] or 0
+ if not uft or not ust then
+ logs.report("define otf","%s: unicode problem with base ligature %s = %s + %s",cref(kind),gref(descriptions,uc),gref(descriptions,uft),gref(descriptions,ust))
+ -- some kind of error
+ else
+ if type(uft) == "number" then uft = { uft } end
+ if type(ust) == "number" then ust = { ust } end
+ for ufi=1,#uft do
+ local uf = uft[ufi]
+ for usi=1,#ust do
+ local us = ust[usi]
+ if changed[uf] or changed[us] then
+ if trace_baseinit and trace_ligatures then
+ logs.report("define otf","%s: base ligature %s + %s ignored",cref(kind),gref(descriptions,uf),gref(descriptions,us))
+ end
+ else
+ local first, second = characters[uf], us
+ if first and second then
+ local t = first.ligatures
+ if not t then
+ t = { }
+ first.ligatures = t
+ end
+ if type(uc) == "number" then
+ t[second] = { type = 0, char = uc }
+ else
+ t[second] = { type = 0, char = uc[1] } -- can this still happen?
+ end
+ if trace_baseinit and trace_ligatures then
+ logs.report("define otf","%s: base ligature %s + %s => %s",cref(kind),gref(descriptions,uf),gref(descriptions,us),gref(descriptions,uc))
+ end
+ end
+ end
+ end
+ end
+ end
+ ok, done[lig] = true, descriptions[uc].name
+ end
+ end
+ end
+ if ok then
+ -- done has "a b c" = "a_b_c" and ligatures the already set ligatures: "a b" = 123
+ -- and here we add extras (f i i = fi + i and alike)
+ --
+ -- we could use a hash for fnc and pattern
+ --
+ -- this might be interfering !
+ for d,n in next, done do
+ local pattern = pcache[d] if not pattern then pattern = "^(" .. d .. ") " pcache[d] = pattern end
+ local fnc = fcache[n] if not fnc then fnc = function() return n .. " " end fcache[n] = fnc end
+ for k,v in next, ligatures do
+ v[1] = gsub(v[1],pattern,fnc)
+ end
+ end
+ else
+ break
+ end
+ end
+end
+
+local function collect_lookups(otfdata,kind,script,language)
+ -- maybe store this in the font
+ local sequences = otfdata.luatex.sequences
+ if sequences then
+ local featuremap, featurelist = { }, { }
+ for s=1,#sequences do
+ local sequence = sequences[s]
+ local features = sequence.features
+ features = features and features[kind]
+ features = features and (features[script] or features[default] or features[wildcard])
+ features = features and (features[language] or features[default] or features[wildcard])
+ if features then
+ local subtables = sequence.subtables
+ if subtables then
+ for s=1,#subtables do
+ local ss = subtables[s]
+ if not featuremap[s] then
+ featuremap[ss] = true
+ featurelist[#featurelist+1] = ss
+ end
+ end
+ end
+ end
+ end
+ if #featurelist > 0 then
+ return featuremap, featurelist
+ end
+ end
+ return nil, nil
+end
+
+local splitter = lpeg.splitat(" ")
+
+function prepare_base_substitutions(tfmdata,kind,value) -- we can share some code with the node features
+ if value then
+ local otfdata = tfmdata.shared.otfdata
+ local validlookups, lookuplist = collect_lookups(otfdata,kind,tfmdata.script,tfmdata.language)
+ if validlookups then
+ local ligatures = { }
+ local unicodes = tfmdata.unicodes -- names to unicodes
+ local indices = tfmdata.indices
+ local characters = tfmdata.characters
+ local descriptions = tfmdata.descriptions
+ local changed = tfmdata.changed
+ for k,c in next, characters do
+ local glyph = descriptions[k]
+ local lookups = glyph.lookups
+ if lookups then
+ for l=1,#lookuplist do
+ local lookup = lookuplist[l]
+ local ps = lookups[lookup]
+ if ps then
+ for i=1,#ps do
+ local p = ps[i]
+ local t = p[1]
+ if t == 'substitution' then
+ local pv = p[2] -- p.variant
+ if pv then
+ local upv = unicodes[pv]
+ if upv then
+ if type(upv) == "table" then
+ upv = upv[1]
+ end
+ if characters[upv] then
+ if trace_baseinit and trace_singles then
+ logs.report("define otf","%s: base substitution %s => %s",cref(kind,lookup),gref(descriptions,k),gref(descriptions,upv))
+ end
+ changed[k] = upv
+ end
+ end
+ end
+ elseif t == 'alternate' then
+ local pc = p[2] -- p.components
+ if pc then
+ -- a bit optimized ugliness
+ if value == 1 then
+ pc = splitter:match(pc)
+ elseif value == 2 then
+ local a, b = splitter:match(pc)
+ pc = b or a
+ else
+ pc = { splitter:match(pc) }
+ pc = pc[value] or pc[#pc]
+ end
+ if pc then
+ local upc = unicodes[pc]
+ if upc then
+ if type(upc) == "table" then
+ upc = upc[1]
+ end
+ if characters[upc] then
+ if trace_baseinit and trace_alternatives then
+ logs.report("define otf","%s: base alternate %s => %s",cref(kind,lookup),gref(descriptions,k),gref(descriptions,upc))
+ end
+ changed[k] = upc
+ end
+ end
+ end
+ end
+ elseif t == 'ligature' and not changed[k] then
+ local pc = p[2]
+ if pc then
+ if trace_baseinit and trace_ligatures then
+ local upc = { splitter:match(pc) }
+ for i=1,#upc do upc[i] = unicodes[upc[i]] end
+ -- we assume that it's no table
+ logs.report("define otf","%s: base ligature %s => %s",cref(kind,lookup),gref(descriptions,upc),gref(descriptions,k))
+ end
+ ligatures[#ligatures+1] = { pc, k }
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ resolve_ligatures(tfmdata,ligatures,kind)
+ end
+ else
+ tfmdata.ligatures = tfmdata.ligatures or { } -- left over from what ?
+ end
+end
+
+local function prepare_base_kerns(tfmdata,kind,value) -- todo what kind of kerns, currently all
+ if value then
+ local otfdata = tfmdata.shared.otfdata
+ local validlookups, lookuplist = collect_lookups(otfdata,kind,tfmdata.script,tfmdata.language)
+ if validlookups then
+ local unicodes = tfmdata.unicodes -- names to unicodes
+ local indices = tfmdata.indices
+ local characters = tfmdata.characters
+ local descriptions = tfmdata.descriptions
+ for u, chr in next, characters do
+ local d = descriptions[u]
+ if d then
+ local dk = d.mykerns
+ if dk then
+ local t, done = chr.kerns or { }, false
+ for l=1,#lookuplist do
+ local lookup = lookuplist[l]
+ local kerns = dk[lookup]
+ if kerns then
+ for k, v in next, kerns do
+ if v ~= 0 and not t[k] then -- maybe no 0 test here
+ t[k], done = v, true
+ if trace_baseinit and trace_kerns then
+ logs.report("define otf","%s: base kern %s + %s => %s",cref(kind,lookup),gref(descriptions,u),gref(descriptions,k),v)
+ end
+ end
+ end
+ end
+ end
+ if done then
+ chr.kerns = t -- no empty assignments
+ end
+ -- elseif d.kerns then
+ -- logs.report("define otf","%s: invalid mykerns for %s",cref(kind),gref(descriptions,u))
+ end
+ end
+ end
+ end
+ end
+end
+
+-- In principle we could register each feature individually which was
+-- what we did in earlier versions. However, after the rewrite it
+-- made more sense to collect them in an overall features initializer
+-- just as with the node variant. There it was needed because we need
+-- to do complete mixed runs and not run featurewise (as we did before).
+
+local supported_gsub = {
+ 'liga','dlig','rlig','hlig',
+ 'pnum','onum','tnum','lnum',
+ 'zero',
+ 'smcp','cpsp','c2sc','ornm','aalt',
+ 'hwid','fwid',
+ 'ssty', -- math
+}
+
+local supported_gpos = {
+ 'kern'
+}
+
+function otf.features.register_base_substitution(tag)
+ supported_gsub[#supported_gsub+1] = tag
+end
+function otf.features.register_base_kern(tag)
+ supported_gsub[#supported_gpos+1] = tag
+end
+
+local basehash, basehashes = { }, 1
+
+function fonts.initializers.base.otf.features(tfmdata,value)
+ if true then -- value then
+ -- not shared
+ local t = trace_preparing and os.clock()
+ local features = tfmdata.shared.features
+ if features then
+ local h = { }
+ for f=1,#supported_gsub do
+ local feature = supported_gsub[f]
+ local value = features[feature]
+ prepare_base_substitutions(tfmdata,feature,value)
+ if value then
+ h[#h+1] = feature .. "=" .. tostring(value)
+ end
+ end
+ for f=1,#supported_gpos do
+ local feature = supported_gpos[f]
+ local value = features[feature]
+ prepare_base_kerns(tfmdata,feature,features[feature])
+ if value then
+ h[#h+1] = feature .. "=" .. tostring(value)
+ end
+ end
+ local hash = concat(h," ")
+ local base = basehash[hash]
+ if not base then
+ basehashes = basehashes + 1
+ base = basehashes
+ basehash[hash] = base
+ end
+ -- We need to make sure that luatex sees the difference between
+ -- base fonts that have different glyphs in the same slots in fonts
+ -- that have the same fullname (or filename). LuaTeX will merge fonts
+ -- eventually (and subset later on). If needed we can use a more
+ -- verbose name as long as we don't use <()<>[]{}/%> and the length
+ -- is < 128.
+ tfmdata.fullname = tfmdata.fullname .. "-" .. base -- tfmdata.psname is the original
+ --~ logs.report("otf define","fullname base hash: '%s', featureset '%s'",tfmdata.fullname,hash)
+ end
+ if trace_preparing then
+ logs.report("otf define","preparation time is %0.3f seconds for %s",os.clock()-t,tfmdata.fullname or "?")
+ end
+ end
+end
diff --git a/Master/texmf-dist/tex/context/base/font-otc.lua b/Master/texmf-dist/tex/context/base/font-otc.lua
new file mode 100644
index 00000000000..f75da39cdab
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/font-otc.lua
@@ -0,0 +1,238 @@
+if not modules then modules = { } end modules ['font-otc'] = {
+ version = 1.001,
+ comment = "companion to font-otf.lua (context)",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local format, insert = string.format, table.insert
+local type, next = type, next
+
+local ctxcatcodes = tex.ctxcatcodes
+
+-- we assume that the other otf stuff is loaded already
+
+local trace_loading = false trackers.register("otf.loading", function(v) trace_loading = v end)
+
+local otf = fonts.otf
+local tfm = fonts.tfm
+
+-- instead of "script = "DFLT", langs = { 'dflt' }" we now use wildcards (we used to
+-- have always); some day we can write a "force always when true" trick for other
+-- features as well
+
+local extra_lists = {
+ tlig = {
+ {
+ endash = "hyphen hyphen",
+ emdash = "hyphen hyphen hyphen",
+ -- quotedblleft = "quoteleft quoteleft",
+ -- quotedblright = "quoteright quoteright",
+ -- quotedblleft = "grave grave",
+ -- quotedblright = "quotesingle quotesingle",
+ -- quotedblbase = "comma comma",
+ },
+ },
+ trep = {
+ {
+ -- [0x0022] = 0x201D,
+ [0x0027] = 0x2019,
+ -- [0x0060] = 0x2018,
+ },
+ },
+ anum = {
+ { -- arabic
+ [0x0030] = 0x0660,
+ [0x0031] = 0x0661,
+ [0x0032] = 0x0662,
+ [0x0033] = 0x0663,
+ [0x0034] = 0x0664,
+ [0x0035] = 0x0665,
+ [0x0036] = 0x0666,
+ [0x0037] = 0x0667,
+ [0x0038] = 0x0668,
+ [0x0039] = 0x0669,
+ },
+ { -- persian
+ [0x0030] = 0x06F0,
+ [0x0031] = 0x06F1,
+ [0x0032] = 0x06F2,
+ [0x0033] = 0x06F3,
+ [0x0034] = 0x06F4,
+ [0x0035] = 0x06F5,
+ [0x0036] = 0x06F6,
+ [0x0037] = 0x06F7,
+ [0x0038] = 0x06F8,
+ [0x0039] = 0x06F9,
+ },
+ },
+}
+
+local extra_features = { -- maybe just 1..n so that we prescribe order
+ tlig = {
+ {
+ features = { { scripts = { { script = "*", langs = { "*" }, } }, tag = "tlig", comment = "added bij mkiv" }, },
+ name = "ctx_tlig_1",
+ subtables = { { name = "ctx_tlig_1_s" } },
+ type = "gsub_ligature",
+ flags = { },
+ },
+ },
+ trep = {
+ {
+ features = { { scripts = { { script = "*", langs = { "*" }, } }, tag = "trep", comment = "added bij mkiv" }, },
+ name = "ctx_trep_1",
+ subtables = { { name = "ctx_trep_1_s" } },
+ type = "gsub_single",
+ flags = { },
+ },
+ },
+ anum = {
+ {
+ features = { { scripts = { { script = "arab", langs = { "dflt", "FAR" }, } }, tag = "anum", comment = "added bij mkiv" }, },
+ name = "ctx_anum_1",
+ subtables = { { name = "ctx_anum_1_s" } },
+ type = "gsub_single",
+ flags = { },
+ },
+ {
+ features = { { scripts = { { script = "arab", langs = { "URD" }, } }, tag = "anum", comment = "added bij mkiv" }, },
+ name = "ctx_anum_2",
+ subtables = { { name = "ctx_anum_2_s" } },
+ type = "gsub_single",
+ flags = { },
+ },
+ },
+}
+
+fonts.otf.enhancers["add some missing characters"] = function(data,filename)
+ -- todo
+end
+
+fonts.otf.enhancers["enrich with features"] = function(data,filename)
+ -- could be done elsewhere (true can be #)
+ local used = { }
+ for i=1,#otf.glists do
+ local g = data[otf.glists[i]]
+ if g then
+ for i=1,#g do
+ local f = g[i].features
+ if f then
+ for i=1,#f do
+ local t = f[i].tag
+ if t then used[t] = true end
+ end
+ end
+ end
+ end
+ end
+ --
+ local glyphs = data.glyphs
+ local indices = data.map.map
+ data.gsub = data.gsub or { }
+ for kind, specifications in next, extra_features do
+ if not used[kind] then
+ local done = 0
+ for s=1,#specifications do
+ local added = false
+ local specification = specifications[s]
+ local list = extra_lists[kind][s]
+ local name = specification.name .. "_s"
+ if specification.type == "gsub_ligature" then
+ for unicode, index in next, indices do
+ local glyph = glyphs[index]
+ local ligature = list[glyph.name]
+ if ligature then
+ local o = glyph.lookups or { }
+ -- o[name] = { "ligature", ligature, glyph.name }
+ o[name] = {
+ {
+ ["type"] = "ligature",
+ ["specification"] = {
+ char = glyph.name,
+ components = ligature,
+ }
+ }
+ }
+ glyph.lookups, done, added = o, done+1, true
+ end
+ end
+ elseif specification.type == "gsub_single" then
+ for unicode, index in next, indices do
+ local glyph = glyphs[index]
+ local r = list[unicode]
+ if r then
+ local replacement = indices[r]
+ if replacement and glyphs[replacement] then
+ local o = glyph.lookups or { }
+ -- o[name] = { { "substitution", glyphs[replacement].name } }
+ o[name] = {
+ {
+ ["type"] = "substitution",
+ ["specification"] = {
+ variant = glyphs[replacement].name,
+ }
+ }
+ }
+ glyph.lookups, done, added = o, done+1, true
+ end
+ end
+ end
+ end
+ if added then
+ insert(data.gsub,s,table.fastcopy(specification)) -- right order
+ end
+ end
+ if done > 0 then
+ if trace_loading then
+ logs.report("load otf","enhance: registering %s feature (%s glyphs affected)",kind,done)
+ end
+ end
+ end
+ end
+end
+
+otf.tables.features['tlig'] = 'TeX Ligatures'
+otf.tables.features['trep'] = 'TeX Replacements'
+otf.tables.features['anum'] = 'Arabic Digits'
+
+otf.features.register_base_substitution('tlig')
+otf.features.register_base_substitution('trep')
+otf.features.register_base_substitution('anum')
+
+-- the functionality is defined elsewhere
+
+fonts.initializers.base.otf.equaldigits = fonts.initializers.common.equaldigits
+fonts.initializers.node.otf.equaldigits = fonts.initializers.common.equaldigits
+
+fonts.initializers.base.otf.lineheight = fonts.initializers.common.lineheight
+fonts.initializers.node.otf.lineheight = fonts.initializers.common.lineheight
+
+fonts.initializers.base.otf.compose = fonts.initializers.common.compose
+fonts.initializers.node.otf.compose = fonts.initializers.common.compose
+
+-- bonus function
+
+function otf.name_to_slot(name) -- todo: afm en tfm
+ local tfmdata = fonts.ids[font.current()]
+ if tfmdata and tfmdata.shared then
+ local otfdata = tfmdata.shared.otfdata
+ local unicode = otfdata.luatex.unicodes[name]
+ if type(unicode) == "number" then
+ return unicode
+ else
+ return unicode[1]
+ end
+ end
+ return nil
+end
+
+function otf.char(n) -- todo: afm en tfm
+ if type(n) == "string" then
+ n = otf.name_to_slot(n)
+ end
+ if n then
+ tex.sprint(ctxcatcodes,format("\\char%s ",n))
+ end
+end
diff --git a/Master/texmf-dist/tex/context/base/font-otd.lua b/Master/texmf-dist/tex/context/base/font-otd.lua
new file mode 100644
index 00000000000..78a82814654
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/font-otd.lua
@@ -0,0 +1,78 @@
+if not modules then modules = { } end modules ['font-otd'] = {
+ version = 1.001,
+ comment = "companion to font-ini.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local trace_dynamics = false trackers.register("otf.dynamics", function(v) trace_dynamics = v end)
+
+fonts = fonts or { }
+fonts.otf = fonts.otf or { }
+
+local otf = fonts.otf
+local fontdata = fonts.ids
+
+otf.features = otf.features or { }
+otf.features.default = otf.features.default or { }
+
+local context_setups = fonts.define.specify.context_setups
+local context_numbers = fonts.define.specify.context_numbers
+
+local a_to_script = { } otf.a_to_script = a_to_script
+local a_to_language = { } otf.a_to_language = a_to_language
+
+function otf.set_dynamics(font,dynamics,attribute)
+ features = context_setups[context_numbers[attribute]] -- can be moved to caller
+ if features then
+ local script = features.script or 'dflt'
+ local language = features.language or 'dflt'
+ local ds = dynamics[script]
+ if not ds then
+ ds = { }
+ dynamics[script] = ds
+ end
+ local dsl = ds[language]
+ if not dsl then
+ dsl = { }
+ ds[language] = dsl
+ end
+ local dsla = dsl[attribute]
+ if dsla then
+ -- if trace_dynamics then
+ -- logs.report("otf define","using dynamics %s: attribute %s, script %s, language %s",context_numbers[attribute],attribute,script,language)
+ -- end
+ return dsla
+ else
+ local tfmdata = fontdata[font]
+ a_to_script [attribute] = script
+ a_to_language[attribute] = language
+ -- we need to save some values
+ local saved = {
+ script = tfmdata.script,
+ language = tfmdata.language,
+ mode = tfmdata.mode,
+ features = tfmdata.shared.features
+ }
+ tfmdata.mode = "node"
+ tfmdata.language = language
+ tfmdata.script = script
+ tfmdata.shared.features = { }
+ -- end of save
+ dsla = otf.set_features(tfmdata,fonts.define.check(features,otf.features.default))
+ if trace_dynamics then
+ logs.report("otf define","setting dynamics %s: attribute %s, script %s, language %s",context_numbers[attribute],attribute,script,language)
+ end
+ -- we need to restore some values
+ tfmdata.script = saved.script
+ tfmdata.language = saved.language
+ tfmdata.mode = saved.mode
+ tfmdata.shared.features = saved.features
+ -- end of restore
+ dynamics[script][language][attribute] = dsla -- cache
+ return dsla
+ end
+ end
+ return nil -- { }
+end
diff --git a/Master/texmf-dist/tex/context/base/font-otf.lua b/Master/texmf-dist/tex/context/base/font-otf.lua
index 5c0db392dba..e8867c53d37 100644
--- a/Master/texmf-dist/tex/context/base/font-otf.lua
+++ b/Master/texmf-dist/tex/context/base/font-otf.lua
@@ -1,4 +1,4 @@
- if not modules then modules = { } end modules ['font-otf'] = {
+if not modules then modules = { } end modules ['font-otf'] = {
version = 1.001,
comment = "companion to font-ini.tex",
author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
@@ -6,1170 +6,679 @@
license = "see context related readme files"
}
--- once we have all features working, i will redo this module .. caching lookups and such
+local utf = unicode.utf8
--- the flattening code is a prelude to a more compact table format (so, we're now
--- at the fourth version); maybe we will go unicode, although that will mean that we
--- miss some glyphs (unicode -1)
+local concat, getn, utfbyte = table.concat, table.getn, utf.byte
+local format, gmatch, gsub, find, match, lower, strip = string.format, string.gmatch, string.gsub, string.find, string.match, string.lower, string.strip
+local type, next, tonumber, tostring = type, next, tonumber, tostring
--- todo: featuredata is now indexed by kind,lookup but probably lookup is okay too
+local trace_private = false trackers.register("otf.private", function(v) trace_private = v end)
+local trace_loading = false trackers.register("otf.loading", function(v) trace_loading = v end)
+local trace_features = false trackers.register("otf.features", function(v) trace_features = v end)
+local trace_dynamics = false trackers.register("otf.dynamics", function(v) trace_dynamics = v end)
+local trace_sequences = false trackers.register("otf.sequences", function(v) trace_sequences = v end)
+local trace_math = false trackers.register("otf.math", function(v) trace_math = v end)
+local trace_unimapping = false trackers.register("otf.unimapping", function(v) trace_unimapping = v end)
--- todo: now that we pack ... resolve strings to unicode points
--- todo: unpack already in tmc file, i.e. save tables and return ref''d version
--- todo: dependents etc resolve too, maybe even reorder glyphs to unicode
--- todo: pack ignoreflags
+--~ trackers.enable("otf.loading")
--- abvf abvs blwf blws dist falt half halt jalt lfbd ljmo
--- mset opbd palt pwid qwid rand rtbd rtla ruby size tjmo twid valt vatu vert
--- vhal vjmo vkna vkrn vpal vrt2
-
--- The specification of OpenType is vague, very vague. Apart from a lack of proper
--- specifications (a free one) there's also the problem that Microsoft and Adobe
--- may have their own rules. Anyhow, the following is from Adobe's feature file
--- specification:
---
--- http://www.adobe.com/devnet/opentype/afdko/topic_feature_file_syntax.html#6.h
---
--- The following is a reference summary of the algorithm used by an OpenType layout
--- (OTL) engine to perform substitutions and positionings. The important aspect of
--- this for a feature file editor is that each lookup corresponds to one "pass" over
--- the glyph run (see step 4 below). Thus, each lookup has as input the accumulated
--- result of all previous lookups in the LookupList (whether in the same feature or
--- in other features).
--- 1. All glyphs in the client's glyph run must belong to the same language
--- system. Glyph sequence matching may not occur across language
--- systems. Do the following first for the GSUB and then for the GPOS:
--- 2. Assemble all features (including any required feature) for the glyph
--- run's language system.
--- 3. Assemble all lookups in these features, in LookupList order, removing
--- any duplicates. All features and thus all lookups needn't be applied to
--- every glyph in the run.
--- 4. For each lookup:
--- 5. For each glyph in the glyph run:
--- 6. If the lookup is applied to that glyph and the lookupflag doesn't
--- indicate that that glyph is to be ignored:
--- 7. For each subtable in the lookup:
--- 8. If the subtable's target context is matched:
--- 9. Do the glyph substitution or positioning,
--- --- OR: ---
--- If this is a (chain) contextual lookup do the following
--- [(10)-(11)] in the subtable's Subst/PosLookupRecord order:
--- 10. For each (sequenceIndex, lookupListIndex) pair:
--- 11. Apply lookup[lookupListIndex] at input sequence[sequenceIndex]
--- [steps (7)-(11)]
--- 12. Goto the glyph after the input sequence matched in (8)
--- (i.e. skip any remaining subtables in the lookup).
--- The "target context" in step 8 above comprises the input sequence and any
--- backtrack and lookahead sequences.
--- The input sequence must be matched entirely within the lookup's "application
--- range" at that glyph (that contiguous subrun of glyphs including and around
--- the current glyph on which the lookup is applied). There is no such restriction
--- on the backtrack and lookahead sequences.
--- "Matching" includes matching any glyphs designated to be skipped in the
--- lookup's LookupFlag.
+local zwnj = 0x200C
+local zwj = 0x200D
--[[ldx--
-<p>This module is sparsely documented because it is a moving target.
-The table format of the reader changes and we experiment a lot with
-different methods for supporting features.</p>
-
-<p>As with the <l n='afm'/> code, we may decide to store more information
-in the <l n='otf'/> table.</p>
-
-<p>Incrementing the version number will force a re-cache. We jump the
-number by one when there's a fix in the <l n='fontforge'/> library or
-<l n='lua'/> code that results in different tables.</p>
+<p>The fontforge table has organized lookups in a certain way. A first implementation
+of this code was organized featurewise: information related to features was
+collected and processing boiled down to a run over the features. The current
+implementation honors the order in the main feature table. Since we can reorder this
+table as we want, we can eventually support several models of processing. We kept
+the static as well as dynamic feature processing, because it had proved to be
+rather useful. The formerly three loop variants have beem discarded but will
+reapear at some time.</p>
+
+<itemize>
+<item>we loop over all lookups</item>
+<item>for each lookup we do a run over the list of glyphs</item>
+<item>but we only process them for features that are enabled</item>
+<item>if we're dealing with a contextual lookup, we loop over all contexts</item>
+<item>in that loop we quit at a match and then process the list of sublookups</item>
+<item>we always continue after the match</item>
+</itemize>
+
+<p>In <l n='context'/> we do this for each font that is used in a list, so in
+practice we have quite some nested loops.</p>
+
+<p>We process the whole list and then consult the glyph nodes. An alternative approach
+is to collect strings of characters using the same font including spaces (because some
+lookups involve spaces). However, we then need to reconstruct the list which is no fun.
+Also, we need to carry quite some information, like attributes, so eventually we don't
+gain much (if we gain something at all).</p>
+
+<p>Another consideration has been to operate on sublists (subhead, subtail) but again
+this would complicate matters as we then neext to keep track of a changing subhead
+and subtail. On the other hand, this might save some runtime. The number of changes
+involved is not that large. This only makes sense when we have many fonts in a list
+and don't change to frequently.</p>
--ldx]]--
---~ The node based processing functions look quite complex which is mainly due to
---~ the fact that we need to share data and cache resolved issues (saves much memory and
---~ is also faster). A further complication is that we support static as well as dynamic
---~ features.
+fonts = fonts or { }
+fonts.otf = fonts.otf or { }
+fonts.tfm = fonts.tfm or { }
-fonts = fonts or { }
-fonts.otf = fonts.otf or { }
-fonts.otf.version = 2.09
-fonts.otf.pack = true
-fonts.otf.tables = fonts.otf.tables or { }
-fonts.otf.meanings = fonts.otf.meanings or { }
-fonts.otf.enhance_data = false
-fonts.otf.syncspace = true
-fonts.otf.features = { }
-fonts.otf.features.aux = { }
-fonts.otf.features.data = { }
-fonts.otf.features.list = { } -- not (yet) used, oft fonts have gpos/gsub lists
-fonts.otf.features.default = { }
-fonts.otf.trace_features = false
-fonts.otf.trace_set_features = false
-fonts.otf.trace_replacements = false
-fonts.otf.trace_contexts = false
-fonts.otf.trace_anchors = false
-fonts.otf.trace_ligatures = false
-fonts.otf.trace_kerns = false
-fonts.otf.trace_cursive = false
-fonts.otf.notdef = false
-fonts.otf.cache = containers.define("fonts", "otf", fonts.otf.version, true)
+local otf = fonts.otf
+local tfm = fonts.tfm
-function fonts.otf.trace_process()
- fonts.otf.trace_replacements = true
- fonts.otf.trace_contexts = true
- fonts.otf.trace_anchors = true
- fonts.otf.trace_ligatures = true
- fonts.otf.trace_kerns = true
- fonts.otf.trace_cursive = true
-end
+local fontdata = fonts.ids
---[[ldx--
-<p>We start with a lot of tables and related functions.</p>
---ldx]]--
+otf.tables = otf.tables or { } -- defined in font-ott.lua
+otf.meanings = otf.meanings or { } -- defined in font-ott.lua
+otf.tables.features = otf.tables.features or { } -- defined in font-ott.lua
+otf.tables.languages = otf.tables.languages or { } -- defined in font-ott.lua
+otf.tables.scripts = otf.tables.scripts or { } -- defined in font-ott.lua
-fonts.otf.tables.scripts = {
- ['dflt'] = 'Default',
+otf.features = otf.features or { }
+otf.features.list = otf.features.list or { }
+otf.features.default = otf.features.default or { }
- ['arab'] = 'Arabic',
- ['armn'] = 'Armenian',
- ['bali'] = 'Balinese',
- ['beng'] = 'Bengali',
- ['bopo'] = 'Bopomofo',
- ['brai'] = 'Braille',
- ['bugi'] = 'Buginese',
- ['buhd'] = 'Buhid',
- ['byzm'] = 'Byzantine Music',
- ['cans'] = 'Canadian Syllabics',
- ['cher'] = 'Cherokee',
- ['copt'] = 'Coptic',
- ['cprt'] = 'Cypriot Syllabary',
- ['cyrl'] = 'Cyrillic',
- ['deva'] = 'Devanagari',
- ['dsrt'] = 'Deseret',
- ['ethi'] = 'Ethiopic',
- ['geor'] = 'Georgian',
- ['glag'] = 'Glagolitic',
- ['goth'] = 'Gothic',
- ['grek'] = 'Greek',
- ['gujr'] = 'Gujarati',
- ['guru'] = 'Gurmukhi',
- ['hang'] = 'Hangul',
- ['hani'] = 'CJK Ideographic',
- ['hano'] = 'Hanunoo',
- ['hebr'] = 'Hebrew',
- ['ital'] = 'Old Italic',
- ['jamo'] = 'Hangul Jamo',
- ['java'] = 'Javanese',
- ['kana'] = 'Hiragana and Katakana',
- ['khar'] = 'Kharosthi',
- ['khmr'] = 'Khmer',
- ['knda'] = 'Kannada',
- ['lao' ] = 'Lao',
- ['latn'] = 'Latin',
- ['limb'] = 'Limbu',
- ['linb'] = 'Linear B',
- ['math'] = 'Mathematical Alphanumeric Symbols',
- ['mlym'] = 'Malayalam',
- ['mong'] = 'Mongolian',
- ['musc'] = 'Musical Symbols',
- ['mymr'] = 'Myanmar',
- ['nko' ] = "N'ko",
- ['ogam'] = 'Ogham',
- ['orya'] = 'Oriya',
- ['osma'] = 'Osmanya',
- ['phag'] = 'Phags-pa',
- ['phnx'] = 'Phoenician',
- ['runr'] = 'Runic',
- ['shaw'] = 'Shavian',
- ['sinh'] = 'Sinhala',
- ['sylo'] = 'Syloti Nagri',
- ['syrc'] = 'Syriac',
- ['tagb'] = 'Tagbanwa',
- ['tale'] = 'Tai Le',
- ['talu'] = 'Tai Lu',
- ['taml'] = 'Tamil',
- ['telu'] = 'Telugu',
- ['tfng'] = 'Tifinagh',
- ['tglg'] = 'Tagalog',
- ['thaa'] = 'Thaana',
- ['thai'] = 'Thai',
- ['tibt'] = 'Tibetan',
- ['ugar'] = 'Ugaritic Cuneiform',
- ['xpeo'] = 'Old Persian Cuneiform',
- ['xsux'] = 'Sumero-Akkadian Cuneiform',
- ['yi' ] = 'Yi'
-}
+otf.enhancers = otf.enhancers or { }
+otf.glists = { "gsub", "gpos" }
-fonts.otf.tables.languages = {
- ['dflt'] = 'Default',
+otf.version = 2.628 -- beware: also sync font-mis.lua
+otf.pack = true -- beware: also sync font-mis.lua
+otf.syncspace = true
+otf.notdef = false
+otf.cache = containers.define("fonts", "otf", otf.version, true)
+otf.cleanup_aat = false -- only context
- ['aba'] = 'Abaza',
- ['abk'] = 'Abkhazian',
- ['ady'] = 'Adyghe',
- ['afk'] = 'Afrikaans',
- ['afr'] = 'Afar',
- ['agw'] = 'Agaw',
- ['als'] = 'Alsatian',
- ['alt'] = 'Altai',
- ['amh'] = 'Amharic',
- ['ara'] = 'Arabic',
- ['ari'] = 'Aari',
- ['ark'] = 'Arakanese',
- ['asm'] = 'Assamese',
- ['ath'] = 'Athapaskan',
- ['avr'] = 'Avar',
- ['awa'] = 'Awadhi',
- ['aym'] = 'Aymara',
- ['aze'] = 'Azeri',
- ['bad'] = 'Badaga',
- ['bag'] = 'Baghelkhandi',
- ['bal'] = 'Balkar',
- ['bau'] = 'Baule',
- ['bbr'] = 'Berber',
- ['bch'] = 'Bench',
- ['bcr'] = 'Bible Cree',
- ['bel'] = 'Belarussian',
- ['bem'] = 'Bemba',
- ['ben'] = 'Bengali',
- ['bgr'] = 'Bulgarian',
- ['bhi'] = 'Bhili',
- ['bho'] = 'Bhojpuri',
- ['bik'] = 'Bikol',
- ['bil'] = 'Bilen',
- ['bkf'] = 'Blackfoot',
- ['bli'] = 'Balochi',
- ['bln'] = 'Balante',
- ['blt'] = 'Balti',
- ['bmb'] = 'Bambara',
- ['bml'] = 'Bamileke',
- ['bos'] = 'Bosnian',
- ['bre'] = 'Breton',
- ['brh'] = 'Brahui',
- ['bri'] = 'Braj Bhasha',
- ['brm'] = 'Burmese',
- ['bsh'] = 'Bashkir',
- ['bti'] = 'Beti',
- ['cat'] = 'Catalan',
- ['ceb'] = 'Cebuano',
- ['che'] = 'Chechen',
- ['chg'] = 'Chaha Gurage',
- ['chh'] = 'Chattisgarhi',
- ['chi'] = 'Chichewa',
- ['chk'] = 'Chukchi',
- ['chp'] = 'Chipewyan',
- ['chr'] = 'Cherokee',
- ['chu'] = 'Chuvash',
- ['cmr'] = 'Comorian',
- ['cop'] = 'Coptic',
- ['cos'] = 'Corsican',
- ['cre'] = 'Cree',
- ['crr'] = 'Carrier',
- ['crt'] = 'Crimean Tatar',
- ['csl'] = 'Church Slavonic',
- ['csy'] = 'Czech',
- ['dan'] = 'Danish',
- ['dar'] = 'Dargwa',
- ['dcr'] = 'Woods Cree',
- ['deu'] = 'German',
- ['dgr'] = 'Dogri',
- ['div'] = 'Divehi',
- ['djr'] = 'Djerma',
- ['dng'] = 'Dangme',
- ['dnk'] = 'Dinka',
- ['dri'] = 'Dari',
- ['dun'] = 'Dungan',
- ['dzn'] = 'Dzongkha',
- ['ebi'] = 'Ebira',
- ['ecr'] = 'Eastern Cree',
- ['edo'] = 'Edo',
- ['efi'] = 'Efik',
- ['ell'] = 'Greek',
- ['eng'] = 'English',
- ['erz'] = 'Erzya',
- ['esp'] = 'Spanish',
- ['eti'] = 'Estonian',
- ['euq'] = 'Basque',
- ['evk'] = 'Evenki',
- ['evn'] = 'Even',
- ['ewe'] = 'Ewe',
- ['fan'] = 'French Antillean',
- ['far'] = 'Farsi',
- ['fin'] = 'Finnish',
- ['fji'] = 'Fijian',
- ['fle'] = 'Flemish',
- ['fne'] = 'Forest Nenets',
- ['fon'] = 'Fon',
- ['fos'] = 'Faroese',
- ['fra'] = 'French',
- ['fri'] = 'Frisian',
- ['frl'] = 'Friulian',
- ['fta'] = 'Futa',
- ['ful'] = 'Fulani',
- ['gad'] = 'Ga',
- ['gae'] = 'Gaelic',
- ['gag'] = 'Gagauz',
- ['gal'] = 'Galician',
- ['gar'] = 'Garshuni',
- ['gaw'] = 'Garhwali',
- ['gez'] = "Ge'ez",
- ['gil'] = 'Gilyak',
- ['gmz'] = 'Gumuz',
- ['gon'] = 'Gondi',
- ['grn'] = 'Greenlandic',
- ['gro'] = 'Garo',
- ['gua'] = 'Guarani',
- ['guj'] = 'Gujarati',
- ['hai'] = 'Haitian',
- ['hal'] = 'Halam',
- ['har'] = 'Harauti',
- ['hau'] = 'Hausa',
- ['haw'] = 'Hawaiin',
- ['hbn'] = 'Hammer-Banna',
- ['hil'] = 'Hiligaynon',
- ['hin'] = 'Hindi',
- ['hma'] = 'High Mari',
- ['hnd'] = 'Hindko',
- ['ho'] = 'Ho',
- ['hri'] = 'Harari',
- ['hrv'] = 'Croatian',
- ['hun'] = 'Hungarian',
- ['hye'] = 'Armenian',
- ['ibo'] = 'Igbo',
- ['ijo'] = 'Ijo',
- ['ilo'] = 'Ilokano',
- ['ind'] = 'Indonesian',
- ['ing'] = 'Ingush',
- ['inu'] = 'Inuktitut',
- ['iri'] = 'Irish',
- ['irt'] = 'Irish Traditional',
- ['isl'] = 'Icelandic',
- ['ism'] = 'Inari Sami',
- ['ita'] = 'Italian',
- ['iwr'] = 'Hebrew',
- ['jan'] = 'Japanese',
- ['jav'] = 'Javanese',
- ['jii'] = 'Yiddish',
- ['jud'] = 'Judezmo',
- ['jul'] = 'Jula',
- ['kab'] = 'Kabardian',
- ['kac'] = 'Kachchi',
- ['kal'] = 'Kalenjin',
- ['kan'] = 'Kannada',
- ['kar'] = 'Karachay',
- ['kat'] = 'Georgian',
- ['kaz'] = 'Kazakh',
- ['keb'] = 'Kebena',
- ['kge'] = 'Khutsuri Georgian',
- ['kha'] = 'Khakass',
- ['khk'] = 'Khanty-Kazim',
- ['khm'] = 'Khmer',
- ['khs'] = 'Khanty-Shurishkar',
- ['khv'] = 'Khanty-Vakhi',
- ['khw'] = 'Khowar',
- ['kik'] = 'Kikuyu',
- ['kir'] = 'Kirghiz',
- ['kis'] = 'Kisii',
- ['kkn'] = 'Kokni',
- ['klm'] = 'Kalmyk',
- ['kmb'] = 'Kamba',
- ['kmn'] = 'Kumaoni',
- ['kmo'] = 'Komo',
- ['kms'] = 'Komso',
- ['knr'] = 'Kanuri',
- ['kod'] = 'Kodagu',
- ['koh'] = 'Korean Old Hangul',
- ['kok'] = 'Konkani',
- ['kon'] = 'Kikongo',
- ['kop'] = 'Komi-Permyak',
- ['kor'] = 'Korean',
- ['koz'] = 'Komi-Zyrian',
- ['kpl'] = 'Kpelle',
- ['kri'] = 'Krio',
- ['krk'] = 'Karakalpak',
- ['krl'] = 'Karelian',
- ['krm'] = 'Karaim',
- ['krn'] = 'Karen',
- ['krt'] = 'Koorete',
- ['ksh'] = 'Kashmiri',
- ['ksi'] = 'Khasi',
- ['ksm'] = 'Kildin Sami',
- ['kui'] = 'Kui',
- ['kul'] = 'Kulvi',
- ['kum'] = 'Kumyk',
- ['kur'] = 'Kurdish',
- ['kuu'] = 'Kurukh',
- ['kuy'] = 'Kuy',
- ['kyk'] = 'Koryak',
- ['lad'] = 'Ladin',
- ['lah'] = 'Lahuli',
- ['lak'] = 'Lak',
- ['lam'] = 'Lambani',
- ['lao'] = 'Lao',
- ['lat'] = 'Latin',
- ['laz'] = 'Laz',
- ['lcr'] = 'L-Cree',
- ['ldk'] = 'Ladakhi',
- ['lez'] = 'Lezgi',
- ['lin'] = 'Lingala',
- ['lma'] = 'Low Mari',
- ['lmb'] = 'Limbu',
- ['lmw'] = 'Lomwe',
- ['lsb'] = 'Lower Sorbian',
- ['lsm'] = 'Lule Sami',
- ['lth'] = 'Lithuanian',
- ['ltz'] = 'Luxembourgish',
- ['lub'] = 'Luba',
- ['lug'] = 'Luganda',
- ['luh'] = 'Luhya',
- ['luo'] = 'Luo',
- ['lvi'] = 'Latvian',
- ['maj'] = 'Majang',
- ['mak'] = 'Makua',
- ['mal'] = 'Malayalam Traditional',
- ['man'] = 'Mansi',
- ['map'] = 'Mapudungun',
- ['mar'] = 'Marathi',
- ['maw'] = 'Marwari',
- ['mbn'] = 'Mbundu',
- ['mch'] = 'Manchu',
- ['mcr'] = 'Moose Cree',
- ['mde'] = 'Mende',
- ['men'] = "Me'en",
- ['miz'] = 'Mizo',
- ['mkd'] = 'Macedonian',
- ['mle'] = 'Male',
- ['mlg'] = 'Malagasy',
- ['mln'] = 'Malinke',
- ['mlr'] = 'Malayalam Reformed',
- ['mly'] = 'Malay',
- ['mnd'] = 'Mandinka',
- ['mng'] = 'Mongolian',
- ['mni'] = 'Manipuri',
- ['mnk'] = 'Maninka',
- ['mnx'] = 'Manx Gaelic',
- ['moh'] = 'Mohawk',
- ['mok'] = 'Moksha',
- ['mol'] = 'Moldavian',
- ['mon'] = 'Mon',
- ['mor'] = 'Moroccan',
- ['mri'] = 'Maori',
- ['mth'] = 'Maithili',
- ['mts'] = 'Maltese',
- ['mun'] = 'Mundari',
- ['nag'] = 'Naga-Assamese',
- ['nan'] = 'Nanai',
- ['nas'] = 'Naskapi',
- ['ncr'] = 'N-Cree',
- ['ndb'] = 'Ndebele',
- ['ndg'] = 'Ndonga',
- ['nep'] = 'Nepali',
- ['new'] = 'Newari',
- ['ngr'] = 'Nagari',
- ['nhc'] = 'Norway House Cree',
- ['nis'] = 'Nisi',
- ['niu'] = 'Niuean',
- ['nkl'] = 'Nkole',
- ['nko'] = "N'ko",
- ['nld'] = 'Dutch',
- ['nog'] = 'Nogai',
- ['nor'] = 'Norwegian',
- ['nsm'] = 'Northern Sami',
- ['nta'] = 'Northern Tai',
- ['nto'] = 'Esperanto',
- ['nyn'] = 'Nynorsk',
- ['oci'] = 'Occitan',
- ['ocr'] = 'Oji-Cree',
- ['ojb'] = 'Ojibway',
- ['ori'] = 'Oriya',
- ['oro'] = 'Oromo',
- ['oss'] = 'Ossetian',
- ['paa'] = 'Palestinian Aramaic',
- ['pal'] = 'Pali',
- ['pan'] = 'Punjabi',
- ['pap'] = 'Palpa',
- ['pas'] = 'Pashto',
- ['pgr'] = 'Polytonic Greek',
- ['pil'] = 'Pilipino',
- ['plg'] = 'Palaung',
- ['plk'] = 'Polish',
- ['pro'] = 'Provencal',
- ['ptg'] = 'Portuguese',
- ['qin'] = 'Chin',
- ['raj'] = 'Rajasthani',
- ['rbu'] = 'Russian Buriat',
- ['rcr'] = 'R-Cree',
- ['ria'] = 'Riang',
- ['rms'] = 'Rhaeto-Romanic',
- ['rom'] = 'Romanian',
- ['roy'] = 'Romany',
- ['rsy'] = 'Rusyn',
- ['rua'] = 'Ruanda',
- ['rus'] = 'Russian',
- ['sad'] = 'Sadri',
- ['san'] = 'Sanskrit',
- ['sat'] = 'Santali',
- ['say'] = 'Sayisi',
- ['sek'] = 'Sekota',
- ['sel'] = 'Selkup',
- ['sgo'] = 'Sango',
- ['shn'] = 'Shan',
- ['sib'] = 'Sibe',
- ['sid'] = 'Sidamo',
- ['sig'] = 'Silte Gurage',
- ['sks'] = 'Skolt Sami',
- ['sky'] = 'Slovak',
- ['sla'] = 'Slavey',
- ['slv'] = 'Slovenian',
- ['sml'] = 'Somali',
- ['smo'] = 'Samoan',
- ['sna'] = 'Sena',
- ['snd'] = 'Sindhi',
- ['snh'] = 'Sinhalese',
- ['snk'] = 'Soninke',
- ['sog'] = 'Sodo Gurage',
- ['sot'] = 'Sotho',
- ['sqi'] = 'Albanian',
- ['srb'] = 'Serbian',
- ['srk'] = 'Saraiki',
- ['srr'] = 'Serer',
- ['ssl'] = 'South Slavey',
- ['ssm'] = 'Southern Sami',
- ['sur'] = 'Suri',
- ['sva'] = 'Svan',
- ['sve'] = 'Swedish',
- ['swa'] = 'Swadaya Aramaic',
- ['swk'] = 'Swahili',
- ['swz'] = 'Swazi',
- ['sxt'] = 'Sutu',
- ['syr'] = 'Syriac',
- ['tab'] = 'Tabasaran',
- ['taj'] = 'Tajiki',
- ['tam'] = 'Tamil',
- ['tat'] = 'Tatar',
- ['tcr'] = 'TH-Cree',
- ['tel'] = 'Telugu',
- ['tgn'] = 'Tongan',
- ['tgr'] = 'Tigre',
- ['tgy'] = 'Tigrinya',
- ['tha'] = 'Thai',
- ['tht'] = 'Tahitian',
- ['tib'] = 'Tibetan',
- ['tkm'] = 'Turkmen',
- ['tmn'] = 'Temne',
- ['tna'] = 'Tswana',
- ['tne'] = 'Tundra Nenets',
- ['tng'] = 'Tonga',
- ['tod'] = 'Todo',
- ['trk'] = 'Turkish',
- ['tsg'] = 'Tsonga',
- ['tua'] = 'Turoyo Aramaic',
- ['tul'] = 'Tulu',
- ['tuv'] = 'Tuvin',
- ['twi'] = 'Twi',
- ['udm'] = 'Udmurt',
- ['ukr'] = 'Ukrainian',
- ['urd'] = 'Urdu',
- ['usb'] = 'Upper Sorbian',
- ['uyg'] = 'Uyghur',
- ['uzb'] = 'Uzbek',
- ['ven'] = 'Venda',
- ['vit'] = 'Vietnamese',
- ['wa' ] = 'Wa',
- ['wag'] = 'Wagdi',
- ['wcr'] = 'West-Cree',
- ['wel'] = 'Welsh',
- ['wlf'] = 'Wolof',
- ['xbd'] = 'Tai Lue',
- ['xhs'] = 'Xhosa',
- ['yak'] = 'Yakut',
- ['yba'] = 'Yoruba',
- ['ycr'] = 'Y-Cree',
- ['yic'] = 'Yi Classic',
- ['yim'] = 'Yi Modern',
- ['zhh'] = 'Chinese Hong Kong',
- ['zhp'] = 'Chinese Phonetic',
- ['zhs'] = 'Chinese Simplified',
- ['zht'] = 'Chinese Traditional',
- ['znd'] = 'Zande',
- ['zul'] = 'Zulu'
-}
+--[[ldx--
+<p>We start with a lot of tables and related functions.</p>
+--ldx]]--
-fonts.otf.tables.features = {
- ['aalt'] = 'Access All Alternates',
- ['abvf'] = 'Above-Base Forms',
- ['abvm'] = 'Above-Base Mark Positioning',
- ['abvs'] = 'Above-Base Substitutions',
- ['afrc'] = 'Alternative Fractions',
- ['akhn'] = 'Akhands',
- ['blwf'] = 'Below-Base Forms',
- ['blwm'] = 'Below-Base Mark Positioning',
- ['blws'] = 'Below-Base Substitutions',
- ['c2pc'] = 'Petite Capitals From Capitals',
- ['c2sc'] = 'Small Capitals From Capitals',
- ['calt'] = 'Contextual Alternates',
- ['case'] = 'Case-Sensitive Forms',
- ['ccmp'] = 'Glyph Composition/Decomposition',
- ['cjct'] = 'Conjunct Forms',
- ['clig'] = 'Contextual Ligatures',
- ['cpsp'] = 'Capital Spacing',
- ['cswh'] = 'Contextual Swash',
- ['curs'] = 'Cursive Positioning',
- ['dflt'] = 'Default Processing',
- ['dist'] = 'Distances',
- ['dlig'] = 'Discretionary Ligatures',
- ['dnom'] = 'Denominators',
- ['expt'] = 'Expert Forms',
- ['falt'] = 'Final glyph Alternates',
- ['fin2'] = 'Terminal Forms #2',
- ['fin3'] = 'Terminal Forms #3',
- ['fina'] = 'Terminal Forms',
- ['frac'] = 'Fractions',
- ['fwid'] = 'Full Width',
- ['half'] = 'Half Forms',
- ['haln'] = 'Halant Forms',
- ['halt'] = 'Alternate Half Width',
- ['hist'] = 'Historical Forms',
- ['hkna'] = 'Horizontal Kana Alternates',
- ['hlig'] = 'Historical Ligatures',
- ['hngl'] = 'Hangul',
- ['hojo'] = 'Hojo Kanji Forms',
- ['hwid'] = 'Half Width',
- ['init'] = 'Initial Forms',
- ['isol'] = 'Isolated Forms',
- ['ital'] = 'Italics',
- ['jalt'] = 'Justification Alternatives',
- ['jp04'] = 'JIS2004 Forms',
- ['jp78'] = 'JIS78 Forms',
- ['jp83'] = 'JIS83 Forms',
- ['jp90'] = 'JIS90 Forms',
- ['kern'] = 'Kerning',
- ['lfbd'] = 'Left Bounds',
- ['liga'] = 'Standard Ligatures',
- ['ljmo'] = 'Leading Jamo Forms',
- ['lnum'] = 'Lining Figures',
- ['locl'] = 'Localized Forms',
- ['mark'] = 'Mark Positioning',
- ['med2'] = 'Medial Forms #2',
- ['medi'] = 'Medial Forms',
- ['mgrk'] = 'Mathematical Greek',
- ['mkmk'] = 'Mark to Mark Positioning',
- ['mset'] = 'Mark Positioning via Substitution',
- ['nalt'] = 'Alternate Annotation Forms',
- ['nlck'] = 'NLC Kanji Forms',
- ['nukt'] = 'Nukta Forms',
- ['numr'] = 'Numerators',
- ['onum'] = 'Old Style Figures',
- ['opbd'] = 'Optical Bounds',
- ['ordn'] = 'Ordinals',
- ['ornm'] = 'Ornaments',
- ['palt'] = 'Proportional Alternate Width',
- ['pcap'] = 'Petite Capitals',
- ['pnum'] = 'Proportional Figures',
- ['pref'] = 'Pre-base Forms',
- ['pres'] = 'Pre-base Substitutions',
- ['pstf'] = 'Post-base Forms',
- ['psts'] = 'Post-base Substitutions',
- ['pwid'] = 'Proportional Widths',
- ['qwid'] = 'Quarter Widths',
- ['rand'] = 'Randomize',
- ['rkrf'] = 'Rakar Forms',
- ['rlig'] = 'Required Ligatures',
- ['rphf'] = 'Reph Form',
- ['rtbd'] = 'Right Bounds',
- ['rtla'] = 'Right-To-Left Alternates',
- ['ruby'] = 'Ruby Notation Forms',
- ['salt'] = 'Stylistic Alternates',
- ['sinf'] = 'Scientific Inferiors',
- ['size'] = 'Optical Size',
- ['smcp'] = 'Small Capitals',
- ['smpl'] = 'Simplified Forms',
- ['ss01'] = 'Stylistic Set 1',
- ['ss02'] = 'Stylistic Set 2',
- ['ss03'] = 'Stylistic Set 3',
- ['ss04'] = 'Stylistic Set 4',
- ['ss05'] = 'Stylistic Set 5',
- ['ss06'] = 'Stylistic Set 6',
- ['ss07'] = 'Stylistic Set 7',
- ['ss08'] = 'Stylistic Set 8',
- ['ss09'] = 'Stylistic Set 9',
- ['ss10'] = 'Stylistic Set 10',
- ['ss11'] = 'Stylistic Set 11',
- ['ss12'] = 'Stylistic Set 12',
- ['ss13'] = 'Stylistic Set 13',
- ['ss14'] = 'Stylistic Set 14',
- ['ss15'] = 'Stylistic Set 15',
- ['ss16'] = 'Stylistic Set 16',
- ['ss17'] = 'Stylistic Set 17',
- ['ss18'] = 'Stylistic Set 18',
- ['ss19'] = 'Stylistic Set 19',
- ['ss20'] = 'Stylistic Set 20',
- ['subs'] = 'Subscript',
- ['sups'] = 'Superscript',
- ['swsh'] = 'Swash',
- ['titl'] = 'Titling',
- ['tjmo'] = 'Trailing Jamo Forms',
- ['tnam'] = 'Traditional Name Forms',
- ['tnum'] = 'Tabular Figures',
- ['trad'] = 'Traditional Forms',
- ['twid'] = 'Third Widths',
- ['unic'] = 'Unicase',
- ['valt'] = 'Alternate Vertical Metrics',
- ['vatu'] = 'Vattu Variants',
- ['vert'] = 'Vertical Writing',
- ['vhal'] = 'Alternate Vertical Half Metrics',
- ['vjmo'] = 'Vowel Jamo Forms',
- ['vkna'] = 'Vertical Kana Alternates',
- ['vkrn'] = 'Vertical Kerning',
- ['vpal'] = 'Proportional Alternate Vertical Metrics',
- ['vrt2'] = 'Vertical Rotation',
- ['zero'] = 'Slashed Zero'
+otf.tables.global_fields = table.tohash {
+ "lookups",
+ "glyphs",
+ "subfonts",
+ "luatex",
+ "pfminfo",
+ "cidinfo",
+ "tables",
+ "names",
+ "unicodes",
+ "names",
+ "anchor_classes",
+ "kern_classes",
+ "gpos",
+ "gsub"
}
-fonts.otf.tables.baselines = {
- ['hang'] = 'Hanging baseline',
- ['icfb'] = 'Ideographic character face bottom edge baseline',
- ['icft'] = 'Ideographic character face tope edige baseline',
- ['ideo'] = 'Ideographic em-box bottom edge baseline',
- ['idtp'] = 'Ideographic em-box top edge baseline',
- ['math'] = 'Mathmatical centered baseline',
- ['romn'] = 'Roman baseline'
+otf.tables.valid_fields = {
+ "anchor_classes",
+ "ascent",
+ "cache_version",
+ "cidinfo",
+ "copyright",
+ "creationtime",
+ "descent",
+ "design_range_bottom",
+ "design_range_top",
+ "design_size",
+ "encodingchanged",
+ "extrema_bound",
+ "familyname",
+ "fontname",
+ "fontstyle_id",
+ "fontstyle_name",
+ "fullname",
+ "glyphs",
+ "hasvmetrics",
+ "head_optimized_for_cleartype",
+ "horiz_base",
+ "issans",
+ "isserif",
+ "italicangle",
+ "kerns",
+ "lookups",
+ -- "luatex",
+ "macstyle",
+ "modificationtime",
+ "onlybitmaps",
+ "origname",
+ "os2_version",
+ "pfminfo",
+ "private",
+ "serifcheck",
+ "sfd_version",
+ -- "size",
+ "strokedfont",
+ "strokewidth",
+ "subfonts",
+ "table_version",
+ -- "tables",
+ -- "ttf_tab_saved",
+ "ttf_tables",
+ "uni_interp",
+ "uniqueid",
+ "units_per_em",
+ "upos",
+ "use_typo_metrics",
+ "uwidth",
+ "validation_state",
+ "verbose",
+ "version",
+ "vert_base",
+ "weight",
+ "weight_width_slope_only",
+ "xuid",
}
-function fonts.otf.tables.to_tag(id)
- return stringformat("%4s",id:lower())
-end
+--[[ldx--
+<p>Here we go.</p>
+--ldx]]--
-function fonts.otf.meanings.resolve(tab,id)
- if tab and id then
- id = id:lower()
- return tab[id] or tab[id:gsub(" ","")] or tab['dflt'] or ''
- else
- return "unknown"
+local function load_featurefile(ff,featurefile)
+ if featurefile then
+ featurefile = resolvers.find_file(file.addsuffix(featurefile,'fea')) -- "FONTFEATURES"
+ if featurefile and featurefile ~= "" then
+ if trace_loading then
+ logs.report("load otf", "featurefile: %s", featurefile)
+ end
+ fontloader.apply_featurefile(ff, featurefile)
+ end
end
end
-function fonts.otf.meanings.script(id)
- return fonts.otf.meanings.resolve(fonts.otf.tables.scripts,id)
-end
-function fonts.otf.meanings.language(id)
- return fonts.otf.meanings.resolve(fonts.otf.tables.languages,id)
-end
-function fonts.otf.meanings.feature(id)
- return fonts.otf.meanings.resolve(fonts.otf.tables.features,id)
-end
-function fonts.otf.meanings.baseline(id)
- return fonts.otf.meanings.resolve(fonts.otf.tables.baselines,id)
-end
-
-fonts.otf.tables.to_scripts = table.reverse_hash(fonts.otf.tables.scripts )
-fonts.otf.tables.to_languages = table.reverse_hash(fonts.otf.tables.languages)
-fonts.otf.tables.to_features = table.reverse_hash(fonts.otf.tables.features )
-
-do
-
- local scripts = fonts.otf.tables.scripts
- local languages = fonts.otf.tables.languages
- local features = fonts.otf.tables.features
-
- local to_scripts = fonts.otf.tables.to_scripts
- local to_languages = fonts.otf.tables.to_languages
- local to_features = fonts.otf.tables.to_features
-
- function fonts.otf.meanings.normalize(features)
- local h = { }
- for k,v in pairs(features) do
- k = k:lower() -- :gsub("[^a-z0-9%-%.]" -- not needed
- if k == "language" or k == "lang" then
- v = (v:lower()):gsub("[^a-z0-9%-]","")
- k = language
- if not languages[v] then
- h.language = to_languages[v] or "dflt"
- else
- h.language = v
- end
- elseif k == "script" then
- v = (v:lower()):gsub("[^a-z0-9%-]","")
- if not scripts[v] then
- h.script = to_scripts[v] or "dflt"
- else
- h.script = v
- end
- else
- if type(v) == "string" then
- local b = v:is_boolean()
- if type(b) == "nil" then
- v = tonumber(v) or v:lower() -- gsub("[^a-z0-9%-]") -- too dangerous, e.g. featurefiles
- else
- v = b
- end
- end
- h[to_features[k] or k] = v
- end
+function otf.enhance(name,data,filename,verbose)
+ local enhancer = otf.enhancers[name]
+ if enhancer then
+ if (verbose ~= nil and verbose) or trace_loading then
+ logs.report("load otf","enhance: %s",name)
end
- return h
+ enhancer(data,filename)
end
-
end
---[[ldx--
-<p>Here we go.</p>
---ldx]]--
-
-fonts.otf.enhance = fonts.otf.enhance or { }
-fonts.otf.enhance.add_kerns = true
-
-fonts.otf.featurefiles = {
---~ "texhistoric.fea"
+local enhancers = {
+ -- pack and unpack are handled separately; they might even be moved
+ -- away from the enhancers namespace
+ "patch bugs",
+ "merge cid fonts", "prepare unicode", "cleanup ttf tables", "compact glyphs", "reverse coverage",
+ "cleanup aat", "enrich with features", "add some missing characters",
+ "reorganize kerns", -- moved here
+ "flatten glyph lookups", "flatten anchor tables", "flatten feature tables",
+ "prepare luatex tables",
+ "analyse features", "rehash features",
+ "analyse anchors", "analyse marks", "analyse unicodes", "analyse subtables",
+ "check italic correction","check math",
+ "share widths",
+ "strip not needed data",
+ "migrate metadata",
}
-function fonts.otf.load(filename,format,sub,featurefile)
+function otf.load(filename,format,sub,featurefile)
local name = file.basename(file.removesuffix(filename))
if featurefile then
name = name .. "@" .. file.removesuffix(file.basename(featurefile))
end
if sub == "" then sub = false end
local hash = name
- if sub then -- name cleanup will move to cache code
+ if sub then
hash = hash .. "-" .. sub
- hash = hash:lower()
- hash = hash:gsub("[^%w%d]+","-")
end
- local data = containers.read(fonts.otf.cache(), hash)
+ hash = containers.cleanname(hash)
+ local data = containers.read(otf.cache(), hash)
local size = lfs.attributes(filename,"size") or 0
- if data and data.size ~= size then
- data = nil
- end
- if not data then
- logs.report("load otf","loading: " .. filename)
+ if not data or data.verbose ~= fonts.verbose or data.size ~= size then
+ logs.report("load otf","loading: %s",filename)
local ff, messages
if sub then
- ff, messages = fontforge.open(filename,sub)
+ ff, messages = fontloader.open(filename,sub)
else
- ff, messages = fontforge.open(filename)
+ ff, messages = fontloader.open(filename)
end
- if messages and #messages > 0 then
- for _, m in ipairs(messages) do
- logs.report("load otf","warning: " .. m)
+ if trace_loading and messages and #messages > 0 then
+ for m=1,#messages do
+ logs.report("load otf","warning: %s",messages[m])
end
end
if ff then
- local function load_featurefile(featurefile)
- if featurefile then
- featurefile = input.find_file(texmf.instance,file.addsuffix(featurefile,'fea')) -- "FONTFEATURES"
- if featurefile and featurefile ~= "" then
- logs.report("load otf", "featurefile: " .. featurefile)
- fontforge.apply_featurefile(ff, featurefile)
- end
- end
- end
- -- for _, featurefile in pairs(fonts.otf.featurefiles) do
- -- load_featurefile(featurefile)
- -- end
- load_featurefile(featurefile)
- data = fontforge.to_table(ff)
- fontforge.close(ff)
+ load_featurefile(ff,featurefile)
+ data = fontloader.to_table(ff)
+ fontloader.close(ff)
if data then
- logs.report("load otf","enhance: before")
- fonts.otf.enhance.before(data,filename)
- logs.report("load otf","enhance: enrich")
- fonts.otf.enhance.enrich(data,filename)
- logs.report("load otf","enhance: flatten")
- fonts.otf.enhance.flatten(data,filename)
- logs.report("load otf","enhance: analyze")
- fonts.otf.enhance.analyze(data,filename)
- logs.report("load otf","enhance: after")
- fonts.otf.enhance.after(data,filename)
- logs.report("load otf","enhance: patch")
- fonts.otf.enhance.patch(data,filename)
- logs.report("load otf","enhance: strip")
- fonts.otf.enhance.strip(data,filename)
- if fonts.otf.pack then
- logs.report("load otf","enhance: pack")
- fonts.otf.enhance.pack(data)
+ logs.report("load otf","file size: %s", size)
+ logs.report("load otf","enhancing ...")
+ for e=1,#enhancers do
+ otf.enhance(enhancers[e],data,filename)
+ end
+ if otf.pack and not fonts.verbose then
+ otf.enhance("pack",data,filename)
end
- logs.report("load otf","file size: " .. size)
data.size = size
- logs.report("load otf","saving: in cache")
- data = containers.write(fonts.otf.cache(), hash, data)
+ data.verbose = fonts.verbose
+ logs.report("load otf","saving in cache: %s",filename)
+ data = containers.write(otf.cache(), hash, data)
+ collectgarbage("collect")
+ data = containers.read(otf.cache(), hash) -- this frees the old table and load the sparse one
+ collectgarbage("collect")
else
- logs.error("load otf","loading failed (table conversion error)")
+ logs.report("load otf","loading failed (table conversion error)")
end
else
- logs.error("load otf","loading failed (file read error)")
+ logs.report("load otf","loading failed (file read error)")
+ end
+ end
+ if data then
+ otf.enhance("unpack",data,filename,false) -- no message here
+ otf.add_dimensions(data)
+ if trace_sequences then
+ otf.show_feature_order(data,filename)
end
end
- fonts.otf.enhance.unpack(data)
return data
end
--- memory saver ..
-
-function fonts.otf.enhance.pack(data)
+function otf.add_dimensions(data)
+ -- todo: forget about the width if it's the defaultwidth (saves mem)
+ -- we could also build the marks hash here (instead of storing it)
if data then
- local h, t = { }, { }
- local concat = table.concat
- local function tabstr(t)
- for i=1,#t do
- if type(t[i]) == "boolean" then
- local s = tostring(t[1])
- for i=2,#t do
- s = s .. ",".. tostring(t[i])
- end
- return s
- end
- end
- return concat(t,",")
- end
- local function pack(v)
- local tag = tabstr(v,",")
- if not h[tag] then
- t[#t+1] = v
- h[tag] = #t
+ local force = otf.notdef
+ local luatex = data.luatex
+ local defaultwidth = luatex.defaultwidth or 0
+ local defaultheight = luatex.defaultheight or 0
+ local defaultdepth = luatex.defaultdepth or 0
+ for _, d in next, data.glyphs do
+ local bb, wd = d.boundingbox, d.width
+ if not wd then
+ d.width = defaultwidth
+ elseif wd ~= 0 and d.class == "mark" then
+ d.width = -wd
end
- return h[tag]
- end
- for k, v in pairs(data.glyphs) do
- v.boundingbox = pack(v.boundingbox)
- if v.lookups then
- for k,v in pairs(v.lookups) do
- for kk, vv in ipairs(v) do
- v[kk] = pack(vv)
- end
- end
+ if force and not d.name then
+ d.name = ".notdef"
end
- end
- if data.lookups then
- for k, v in pairs(data.lookups) do
- if v.rules then
- for kk, vv in pairs(v.rules) do
- local l = vv.lookups
- if l then
- vv.lookups = pack(l)
- end
- local c = vv.coverage
- if c then
- c.before = c.before and pack(c.before )
- c.after = c.after and pack(c.after )
- c.current = c.current and pack(c.current)
- end
- end
+ if bb then
+ local ht, dp = bb[4], -bb[2]
+ if ht == 0 or ht < 0 then
+ -- no need to set it and no negative heights, nil == 0
+ else
+ d.height = ht
end
- end
- end
- if data.luatex then
- local li = data.luatex.ignore_flags
- if li then
- for k, v in pairs(li) do
- li[k] = pack(v)
+ if dp == 0 or dp < 0 then
+ -- no negative depths and no negative depths, nil == 0
+ else
+ d.depth = dp
end
end
end
- if #t > 0 then
- data.tables = t
- end
end
end
-function fonts.otf.enhance.unpack(data)
- if data then
- local t = data.tables
- if t then
- for k, v in pairs(data.glyphs) do
- v.boundingbox = t[v.boundingbox]
- local l = v.lookups
- if l then
- for k,v in pairs(l) do
- for i=1,#v do
- v[i] = t[v[i]]
- end
- end
- end
+function otf.show_feature_order(otfdata,filename)
+ local sequences = otfdata.luatex.sequences
+ if sequences and #sequences > 0 then
+ if trace_loading then
+ logs.report("otf check","font %s has %s sequences",filename,#sequences)
+ logs.report("otf check"," ")
+ end
+ for nos=1,#sequences do
+ local sequence = sequences[nos]
+ local typ = sequence.type or "no-type"
+ local name = sequence.name or "no-name"
+ local subtables = sequence.subtables or { "no-subtables" }
+ local features = sequence.features
+ if trace_loading then
+ logs.report("otf check","%3i %-15s %-20s [%s]",nos,name,typ,concat(subtables,","))
end
- if data.lookups then
- for k, v in pairs(data.lookups) do
- local r = v.rules
- if r then
- for kk, vv in pairs(r) do
- local l = vv.lookups
- if l then
- vv.lookups = t[l]
- end
- local c = vv.coverage
- if c then
- local cc = c.before if cc then c.before = t[cc] end
- cc = c.after if cc then c.after = t[cc] end
- cc = c.current if cc then c.current = t[cc] end
- end
+ if features then
+ for feature, scripts in next, features do
+ local tt = { }
+ for script, languages in next, scripts do
+ local ttt = { }
+ for language, _ in next, languages do
+ ttt[#ttt+1] = language
end
+ tt[#tt+1] = format("[%s: %s]",script,concat(ttt," "))
end
- end
- end
- if data.luatex then
- local li = data.luatex.ignore_flags
- if li then
- for k, v in pairs(li) do
- li[k] = t[v]
+ if trace_loading then
+ logs.report("otf check"," %s: %s",feature,concat(tt," "))
end
end
end
- data.tables = nil
end
+ if trace_loading then
+ logs.report("otf check","\n")
+ end
+ elseif trace_loading then
+ logs.report("otf check","font %s has no sequences",filename)
end
end
-- todo: normalize, design_size => designsize
-function fonts.otf.enhance.analyze(data,filename)
- local t = {
- filename = file.basename(filename),
- version = fonts.otf.version,
- creator = "context mkiv",
- unicodes = fonts.otf.analyze_unicodes(data),
- gposfeatures = fonts.otf.analyze_features(data.gpos),
- gsubfeatures = fonts.otf.analyze_features(data.gsub),
- marks = fonts.otf.analyze_class(data,'mark'),
- }
- t.subtables, t.name_to_type, t.internals, t.always_valid, t.ignore_flags, t.ctx_always = fonts.otf.analyze_subtables(data)
- data.luatex = t
+otf.enhancers["prepare luatex tables"] = function(data,filename)
+ data.luatex = data.luatex or { }
+ local luatex = data.luatex
+ luatex.filename = filename
+ luatex.version = otf.version
+ luatex.creator = "context mkiv"
end
-do
- -- original string parser: 0.109, lpeg parser: 0.036 seconds for Adobe-CNS1-4.cidmap
- --
- -- 18964 18964 (leader)
- -- 0 /.notdef
- -- 1..95 0020
- -- 99 3000
-
- local number = lpeg.C(lpeg.R("09","af","AF")^1)
- local space = lpeg.S(" \n\r\t")
- local spaces = space^0
- local period = lpeg.P(".")
- local periods = period * period
- local name = lpeg.P("/") * lpeg.C((1-space)^1)
-
- local unicodes, names = { }, {}
-
- local tonumber = tonumber
-
- local function do_one(a,b)
- unicodes[tonumber(a)] = tonumber(b,16)
+otf.enhancers["cleanup aat"] = function(data,filename)
+ if otf.cleanup_aat then
end
- local function do_range(a,b,c)
- c = tonumber(c,16)
- for i=tonumber(a),tonumber(b) do
- unicodes[i] = c
- c = c + 1
+end
+
+local function analyze_features(g, features)
+ if g then
+ local t, done = { }, { }
+ for k=1,#g do
+ local f = features or g[k].features
+ if f then
+ for k=1,#f do
+ -- scripts and tag
+ local tag = f[k].tag
+ if not done[tag] then
+ t[#t+1] = tag
+ done[tag] = true
+ end
+ end
+ end
+ end
+ if #t > 0 then
+ return t
end
end
- local function do_name(a,b)
- names[tonumber(a)] = b
- end
+ return nil
+end
- local grammar = lpeg.P { "start",
- start = number * spaces * number * lpeg.V("series"),
- series = (spaces * (lpeg.V("one") + lpeg.V("range") + lpeg.V("named")) )^1,
- one = (number * spaces * number) / do_one,
- range = (number * periods * number * spaces * number) / do_range,
- named = (number * spaces * name) / do_name
- }
+otf.enhancers["analyse features"] = function(data,filename)
+ -- local luatex = data.luatex
+ -- luatex.gposfeatures = analyze_features(data.gpos)
+ -- luatex.gsubfeatures = analyze_features(data.gsub)
+end
- function fonts.otf.load_cidmap(filename) -- lpeg
- local data = io.loaddata(filename)
- if data then
- unicodes, names = { }, { }
- grammar:match(data)
- local supplement, registry, ordering = filename:match("^(.-)%-(.-)%-()%.(.-)$")
- return {
- supplement = supplement,
- registry = registry,
- ordering = ordering,
- filename = filename,
- unicodes = unicodes,
- names = names
- }
- else
- return nil
+otf.enhancers["rehash features"] = function(data,filename)
+ local features = { }
+ data.luatex.features = features
+ for k, what in next, otf.glists do
+ local dw = data[what]
+ if dw then
+ local f = { }
+ features[what] = f
+ for i=1,#dw do
+ local d= dw[i]
+ local dfeatures = d.features
+ if dfeatures then
+ for i=1,#dfeatures do
+ local df = dfeatures[i]
+ local tag = strip(lower(df.tag))
+ local ft = f[tag] if not ft then ft = {} f[tag] = ft end
+ local dscripts = df.scripts
+ for script, languages in next, dscripts do
+ script = strip(lower(script))
+ local fts = ft[script] if not fts then fts = {} ft[script] = fts end
+ for i=1,#languages do
+ fts[strip(lower(languages[i]))] = true
+ end
+ end
+ end
+ end
+ end
end
end
+end
+otf.enhancers["analyse anchors"] = function(data,filename)
+ local classes = data.anchor_classes
+ local luatex = data.luatex
+ local anchor_to_lookup, lookup_to_anchor = { }, { }
+ luatex.anchor_to_lookup, luatex.lookup_to_anchor = anchor_to_lookup, lookup_to_anchor
+ if classes then
+ for c=1,#classes do
+ local class = classes[c]
+ local anchor = class.name
+ local lookups = class.lookup
+ if type(lookups) ~= "table" then
+ lookups = { lookups }
+ end
+ local a = anchor_to_lookup[anchor]
+ if not a then a = { } anchor_to_lookup[anchor] = a end
+ for l=1,#lookups do
+ local lookup = lookups[l]
+ local l = lookup_to_anchor[lookup]
+ if not l then l = { } lookup_to_anchor[lookup] = l end
+ l[anchor] = true
+ a[lookup] = true
+ end
+ end
+ end
end
-fonts.otf.cidmaps = { }
-fonts.otf.cidmax = 10
+otf.enhancers["analyse marks"] = function(data,filename)
+ local glyphs = data.glyphs
+ local marks = { }
+ data.luatex.marks = marks
+ for unicode, index in next, data.luatex.indices do
+ local glyph = glyphs[index]
+ if glyph.class == "mark" then
+ marks[unicode] = true
+ end
+ end
+end
-function fonts.otf.cidmap(registry,ordering,supplement)
- -- cf Arthur R. we can safely scan upwards since cids are downward compatible
- local template = "%s-%s-%s.cidmap"
- local supplement = tonumber(supplement)
- logs.report("load otf",string.format("needed cidmap, registry: %s, ordering: %s, supplement: %s",registry,ordering,supplement))
- local function locate(registry,ordering,supplement)
- local filename = string.format(template,registry,ordering,supplement)
- local cidmap = fonts.otf.cidmaps[filename]
- if not cidmap then
- logs.report("load otf",string.format("checking cidmap, registry: %s, ordering: %s, supplement: %s, filename: %s",registry,ordering,supplement,filename))
- local fullname = input.find_file(texmf.instance,filename,'cid') or ""
- if fullname ~= "" then
- cidmap = fonts.otf.load_cidmap(fullname)
- if cidmap then
- logs.report("load otf",string.format("using cidmap file %s",filename))
- fonts.otf.cidmaps[filename] = cidmap
- return cidmap
+local separator = lpeg.S("_.")
+local other = lpeg.C((1 - separator)^1)
+local ligsplitter = lpeg.Ct(other * (separator * other)^0)
+
+--~ print(table.serialize(ligsplitter:match("this")))
+--~ print(table.serialize(ligsplitter:match("this.that")))
+--~ print(table.serialize(ligsplitter:match("japan1.123")))
+--~ print(table.serialize(ligsplitter:match("such_so_more")))
+--~ print(table.serialize(ligsplitter:match("such_so_more.that")))
+
+otf.enhancers["analyse unicodes"] = function(data,filename)
+ local tounicode16, tounicode16sequence = fonts.map.tounicode16, fonts.map.tounicode16sequence
+ local unicodes = data.luatex.unicodes
+ -- we need to move this code
+ unicodes['space'] = unicodes['space'] or 32 -- handly later on
+ unicodes['hyphen'] = unicodes['hyphen'] or 45 -- handly later on
+ unicodes['zwj'] = unicodes['zwj'] or zwj -- handly later on
+ unicodes['zwnj'] = unicodes['zwnj'] or zwnj -- handly later on
+ -- the tounicode mapping is sparse and only needed for alternatives
+ local tounicode, originals, ns, nl, private, unknown = { }, { }, 0, 0, fonts.private, format("%04X",utfbyte("?"))
+ data.luatex.tounicode, data.luatex.originals = tounicode, originals
+ local lumunic, uparser, oparser
+ if false then -- will become an option
+ lumunic = fonts.map.load_lum_table(filename)
+ lumunic = lumunic and lumunic.tounicode
+ end
+ local cidinfo, cidnames, cidcodes = data.cidinfo
+ local usedmap = cidinfo and cidinfo.usedname
+ usedmap = usedmap and fonts.cid.map[usedmap]
+ if usedmap then
+ oparser = usedmap and fonts.map.make_name_parser(cidinfo.ordering)
+ cidnames = usedmap.names
+ cidcodes = usedmap.unicodes
+ end
+ uparser = fonts.map.make_name_parser()
+ for index, glyph in next, data.glyphs do
+ local name, unic = glyph.name, glyph.unicode or -1 -- play safe
+ if unic == -1 or unic >= private or (unic >= 0xE000 and unic <= 0xF8FF) or unic == 0xFFFE or unic == 0xFFFF then
+ local unicode = lumunic and lumunic[name]
+ if unicode then
+ originals[index], tounicode[index], ns = unicode, tounicode16(unicode), ns + 1
+ end
+ -- cidmap heuristics, beware, there is no guarantee for a match unless
+ -- the chain resolves
+ if not unicode and usedmap then
+ local foundindex = oparser:match(name)
+ if foundindex then
+ unicode = cidcodes[foundindex] -- name to number
+ if not unicode then
+ local reference = cidnames[foundindex] -- number to name
+ if reference then
+ local foundindex = oparser:match(reference)
+ if foundindex then
+ unicode = cidcodes[foundindex]
+ if unicode then
+ originals[index], tounicode[index], ns = unicode, tounicode16(unicode), ns + 1
+ end
+ end
+ if not unicode then
+ local foundcodes, multiple = uparser:match(reference)
+ if foundcodes then
+ if multiple then
+ originals[index], tounicode[index], nl, unicode = foundcodes, tounicode16sequence(foundcodes), nl + 1, true
+ else
+ originals[index], tounicode[index], ns, unicode = foundcodes, tounicode16(foundcodes), ns + 1, foundcodes
+ end
+ end
+ end
+ end
+ end
end
end
- end
- return cidmap
- end
- local cidmap = locate(registry,ordering,supplement)
- if not cidmap then
- local cidnum = nil
- -- next highest (alternatively we could start high)
- if supplement < fonts.otf.cidmax then
- for supplement=supplement+1,fonts.otf.cidmax do
- local c = locate(registry,ordering,supplement)
- if c then
- cidmap, cidnum = c, supplement
- break
+ -- a.whatever or a_b_c.whatever or a_b_c (no numbers)
+ if not unicode then
+ local split = ligsplitter:match(name)
+ local nplit = (split and #split) or 0
+ if nplit == 0 then
+ -- skip
+ elseif nplit == 1 then
+ unicode = unicodes[split[1]]
+ if unicode then
+ if type(unicode) == "table" then
+ unicode = unicode[1]
+ end
+ originals[index], tounicode[index], ns = unicode, tounicode16(unicode), ns + 1
+ end
+ else
+ local done = true
+ for l=1,nplit do
+ local u = unicodes[split[l]]
+ if not u then
+ done = false
+ break
+ elseif type(u) == "table" then
+ split[l] = u[1]
+ else
+ split[l] = u
+ end
+ end
+ if done then
+ originals[index], tounicode[index], nl, unicode = split, tounicode16sequence(split), nl + 1, true
+ end
end
end
- end
- -- next lowest (least worse fit)
- if not cidmap and supplement > 0 then
- for supplement=supplement-1,0,-1 do
- local c = locate(registry,ordering,supplement)
- if c then
- cidmap, cidnum = c, supplement
- break
+ -- last resort
+ if not unicode then
+ local foundcodes, multiple = uparser:match(name)
+ if foundcodes then
+ if multiple then
+ originals[index], tounicode[index], nl, unicode = foundcodes, tounicode16sequence(foundcodes), nl + 1, true
+ else
+ originals[index], tounicode[index], ns, unicode = foundcodes, tounicode16(foundcodes), ns + 1, foundcodes
+ end
end
end
+ if not unicode then
+ originals[index], tounicode[index] = 0xFFFD, "FFFD"
+ end
end
- -- prevent further lookups
- if cidmap and cidnum > 0 then
- for s=0,cidnum-1 do
- filename = string.format(template,registry,ordering,s)
- if not fonts.otf.cidmaps[filename] then
- fonts.otf.cidmaps[filename] = cidmap -- copy of ref
- end
+ end
+ if trace_unimapping then
+ for index, glyph in table.sortedpairs(data.glyphs) do
+ local toun, name, unic = tounicode[index], glyph.name, glyph.unicode or -1 -- play safe
+ if toun then
+ logs.report("load otf","internal: 0x%05X, name: %s, unicode: 0x%05X, tounicode: %s",index,name,unic,toun)
+ else
+ logs.report("load otf","internal: 0x%05X, name: %s, unicode: 0x%05X",index,name,unic)
end
end
end
- return cidmap
+ if trace_loading and (ns > 0 or nl > 0) then
+ logs.report("load otf","enhance: %s tounicode entries added (%s ligatures)",nl+ns, ns)
+ end
end
---~ ["cidinfo"]={
---~ ["ordering"]="Japan1",
---~ ["registry"]="Adobe",
---~ ["supplement"]=6,
---~ ["version"]=6,
---~ },
+otf.enhancers["analyse subtables"] = function(data,filename)
+ data.luatex = data.luatex or { }
+ local luatex = data.luatex
+ local sequences = { }
+ local lookups = { }
+ luatex.sequences = sequences
+ luatex.lookups = lookups
+ for _, g in next, { data.gsub, data.gpos } do
+ for k=1,#g do
+ local gk = g[k]
+ local typ = gk.type
+ if typ == "gsub_contextchain" or typ == "gpos_contextchain" then
+ gk.chain = 1
+ elseif typ == "gsub_reversecontextchain" or typ == "gpos_reversecontextchain" then
+ gk.chain = -1
+ else
+ gk.chain = 0
+ end
+ local features = gk.features
+ if features then
+ sequences[#sequences+1] = gk
+ -- scripts, tag, ismac
+ local t = { }
+ for f=1,#features do
+ local feature = features[f]
+ local hash = { }
+ -- only script and langs matter
+ for s, languages in next, feature.scripts do
+ s = lower(s)
+ local h = hash[s]
+ if not h then h = { } hash[s] = h end
+ for l=1,#languages do
+ h[strip(lower(languages[l]))] = true
+ end
+ end
+ t[feature.tag] = hash
+ end
+ gk.features = t
+ else
+ lookups[gk.name] = gk
+ gk.name = nil
+ end
+ local subtables = gk.subtables
+ if subtables then
+ local t = { }
+ for s=1,#subtables do
+ local subtable = subtables[s]
+ local name = subtable.name
+ t[#t+1] = name
+ end
+ gk.subtables = t
+ end
+ local flags = gk.flags
+ if flags then
+ gk.flags = { -- forcing false packs nicer
+ (flags.ignorecombiningmarks and "mark") or false,
+ (flags.ignoreligatures and "ligature") or false,
+ (flags.ignorebaseglyphs and "base") or false,
+ flags.r2l or false
+ }
+ end
+ end
+ end
+end
-function fonts.otf.enhance.before(data,filename)
- local private = fonts.private
+otf.enhancers["merge cid fonts"] = function(data,filename)
+ -- we can also move the names to data.luatex.names which might
+ -- save us some more memory (at the cost of harder tracing)
if data.subfonts and table.is_empty(data.glyphs) then
local cidinfo = data.cidinfo
+ local verbose = fonts.verbose
if cidinfo.registry then
- local cidmap = fonts.otf.cidmap(cidinfo.registry,cidinfo.ordering,cidinfo.supplement)
+ local cidmap, cidname = fonts.cid.getmap(cidinfo.registry,cidinfo.ordering,cidinfo.supplement)
if cidmap then
+ cidinfo.usedname = cidmap.usedname
local glyphs, uni_to_int, int_to_uni, nofnames, nofunicodes = { }, { }, { }, 0, 0
local unicodes, names = cidmap.unicodes, cidmap.names
- for n, subfont in pairs(data.subfonts) do
- for index, g in pairs(subfont.glyphs) do
+ for n, subfont in next, data.subfonts do
+ for index, g in next, subfont.glyphs do
if not next(g) then
-- dummy entry
else
@@ -1178,91 +687,143 @@ function fonts.otf.enhance.before(data,filename)
g.boundingbox = g.boundingbox -- or zerobox
g.name = g.name or name or "unknown"
if unicode then
- g.unicode = unicode
uni_to_int[unicode] = index
int_to_uni[index] = unicode
nofunicodes = nofunicodes + 1
+ g.unicode = unicode
elseif name then
- g.unicode = -1
nofnames = nofnames + 1
+ g.unicode = -1
end
glyphs[index] = g
end
end
subfont.glyphs = nil
end
- logs.report("load otf",string.format("cid font remapped, %s unicode points, %s symbolic names, %s glyphs",nofunicodes, nofnames, nofunicodes+nofnames))
+ if trace_loading then
+ logs.report("load otf","cid font remapped, %s unicode points, %s symbolic names, %s glyphs",nofunicodes, nofnames, nofunicodes+nofnames)
+ end
data.glyphs = glyphs
data.map = data.map or { }
data.map.map = uni_to_int
data.map.backmap = int_to_uni
- else
- logs.report("load otf",string.format("unable to remap cid font, missing cid file for %s",filename))
+ elseif trace_loading then
+ logs.report("load otf","unable to remap cid font, missing cid file for %s",filename)
end
- else
- logs.report("load otf",string.format("font %s has no glyphs",filename))
+ elseif trace_loading then
+ logs.report("load otf","font %s has no glyphs",filename)
end
end
- if data.map then
- local uni_to_int = data.map.map -- [unic] = slot
- local int_to_uni = data.map.backmap -- { [0|1] = unic, ... }
- for index, glyph in pairs(data.glyphs) do
- if glyph.name then
- local unic = glyph.unicode or glyph.unicodeenc or -1
- glyph.unicodeenc = nil -- older luatex version
- if index > 0 and (unic == -1 or unic >= 0x110000) then
- while uni_to_int[private] do
- private = private + 1
- end
- uni_to_int[private] = index
- int_to_uni[index] = private
+end
+
+otf.enhancers["prepare unicode"] = function(data,filename)
+ local luatex = data.luatex
+ if not luatex then luatex = { } data.luatex = luatex end
+ local indices, unicodes, multiples, internals = { }, { }, { }, { }
+ local glyphs = data.glyphs
+ local mapmap = data.map
+ if not mapmap then
+ logs.report("load otf","no map in %s",filename)
+ mapmap = { }
+ data.map = { map = mapmap }
+ elseif not mapmap.map then
+ logs.report("load otf","no unicode map in %s",filename)
+ mapmap = { }
+ data.map.map = mapmap
+ else
+ mapmap = mapmap.map
+ end
+ local criterium = fonts.private
+ local private = fonts.private
+ for index, glyph in next, glyphs do
+ if index > 0 then
+ local name = glyph.name
+ if name then
+ local unicode = glyph.unicode
+ if unicode == -1 or unicode >= criterium then
glyph.unicode = private
- if fonts.trace then
- logs.report("load otf",string.format("enhance: glyph %s at index %s is moved to private unicode slot %s",glyph.name,index,private))
+ indices[private] = index
+ unicodes[name] = private
+ internals[index] = true
+ if trace_private then
+ logs.report("load otf","enhance: glyph %s at index U+%04X is moved to private unicode slot U+%04X",name,index,private)
end
+ private = private + 1
else
- glyph.unicode = unic -- safeguard for older version
+ indices[unicode] = index
+ unicodes[name] = unicode
end
end
end
- local n = 0
- for k,v in pairs(int_to_uni) do
- if v == -1 or v >= 0x110000 then
- int_to_uni[k], n = nil, n+1
- end
- end
- if fonts.trace then
- logs.report("load otf",string.format("enhance: %s entries removed from map.backmap",n))
- end
- local n = 0
- for k,v in pairs(uni_to_int) do
- if k == -1 or k >= 0x110000 then
- uni_to_int[k], n = nil, n+1
+ end
+ -- beware: the indeces table is used to initialize the tfm table
+ for unicode, index in next, mapmap do
+ if not internals[index] then
+ local name = glyphs[index].name
+ if name then
+ local un = unicodes[name]
+ if not un then
+ unicodes[name] = unicode -- or 0
+ elseif type(un) == "number" then
+ if un ~= unicode then
+ multiples[#multiples+1] = name
+ unicodes[name] = { un, unicode }
+ indices[unicode] = index
+ end
+ else
+ local ok = false
+ for u=1,#un do
+ if un[u] == unicode then
+ ok = true
+ break
+ end
+ end
+ if not ok then
+ multiples[#multiples+1] = name
+ un[#un+1] = unicode
+ indices[unicode] = index
+ end
+ end
end
end
- if fonts.trace then
- logs.report("load otf",string.format("enhance: %s entries removed from map.mapmap",n))
+ end
+ if trace_loading then
+ if #multiples > 0 then
+ logs.report("load otf","%s glyph are reused: %s",#multiples, concat(multiples," "))
+ else
+ logs.report("load otf","no glyph are reused")
end
- else
- data.map = { map = {}, backmap = {} }
end
- if data.ttf_tables then
- for _, v in ipairs(data.ttf_tables) do
- if v.data then v.data = "deleted" end
- --~ if v.data then v.data = v.data:gsub("\026","\\026") end -- does not work out well
+ luatex.indices = indices
+ luatex.unicodes = unicodes
+ luatex.private = private
+end
+
+otf.enhancers["cleanup ttf tables"] = function(data,filename)
+ local ttf_tables = data.ttf_tables
+ if ttf_tables then
+ for k=1,#ttf_tables do
+ if ttf_tables[k].data then ttf_tables[k].data = "deleted" end
end
end
- table.compact(data.glyphs)
+ data.ttf_tab_saved = nil
+end
+
+otf.enhancers["compact glyphs"] = function(data,filename)
+ table.compact(data.glyphs) -- needed?
if data.subfonts then
- for _, subfont in pairs(data.subfonts) do
- table.compact(subfont.glyphs)
+ for _, subfont in next, data.subfonts do
+ table.compact(subfont.glyphs) -- needed?
end
end
+end
+
+otf.enhancers["reverse coverage"] = function(data,filename)
-- we prefer the before lookups in a normal order
if data.lookups then
- for _, v in pairs(data.lookups) do
+ for _, v in next, data.lookups do
if v.rules then
- for _, vv in pairs(v.rules) do
+ for _, vv in next, v.rules do
local c = vv.coverage
if c and c.before then
c.before = table.reverse(c.before)
@@ -1271,79 +832,241 @@ function fonts.otf.enhance.before(data,filename)
end
end
end
---~ for index, glyph in pairs(data.glyphs) do
---~ for k,v in pairs(glyph) do
---~ if v == 0 then glyph[k] = nil end
---~ end
---~ end
end
-function fonts.otf.enhance.after(data,filename) -- to be split
- if fonts.otf.enhance.add_kerns then
- local glyphs, mapmap, unicodes = data.glyphs, data.map.map, data.luatex.unicodes
- local mkdone = false
- for index, glyph in pairs(data.glyphs) do
- if glyph.kerns then
- local mykerns = { } -- unicode indexed !
- for k,v in pairs(glyph.kerns) do
- local vc, vo, vl = v.char, v.off, v.lookup
- if vc and vo and vl then -- brrr, wrong! we miss the non unicode ones
- local uvc = unicodes[vc]
- if uvc then
- local mkl = mykerns[vl]
+otf.enhancers["check italic correction"] = function(data,filename)
+ local glyphs = data.glyphs
+ local ok = false
+ for index, glyph in next, glyphs do
+ local ic = glyph.italic_correction
+ if ic then
+ if ic ~= 0 then
+ glyph.italic = ic
+ end
+ glyph.italic_correction = nil
+ ok = true
+ end
+ end
+ -- we can use this to avoid calculations
+ otf.tables.valid_fields[#otf.tables.valid_fields+1] = "has_italic"
+ data.has_italic = true
+end
+
+otf.enhancers["check math"] = function(data,filename)
+ if data.math then
+ -- we move the math stuff into a math subtable because we then can
+ -- test faster in the tfm copy
+ local glyphs = data.glyphs
+ local unicodes = data.luatex.unicodes
+ for index, glyph in next, glyphs do
+ local mk = glyph.mathkern
+ local hv = glyph.horiz_variants
+ local vv = glyph.vert_variants
+ if mk or hv or vv then
+ local math = { }
+ glyph.math = math
+ if mk then
+ for k, v in next, mk do
+ if not next(v) then
+ mk[k] = nil
+ end
+ end
+ math.kerns = mk
+ glyph.mathkern = nil
+ end
+ if hv then
+ math.horiz_variants = hv.variants
+ local p = hv.parts
+ if p then
+ if #p>0 then
+ for i=1,#p do
+ local pi = p[i]
+ pi.glyph = unicodes[pi.component] or 0
+ end
+ math.horiz_parts = p
+ end
+ end
+ local ic = hv.italic_correction
+ if ic and ic ~= 0 then
+ math.horiz_italic_correction = ic
+ end
+ glyph.horiz_variants = nil
+ end
+ if vv then
+ local uc = unicodes[index]
+ math.vert_variants = vv.variants
+ local p = vv.parts
+ if p then
+ if #p>0 then
+ for i=1,#p do
+ local pi = p[i]
+ pi.glyph = unicodes[pi.component] or 0
+ end
+ math.vert_parts = p
+ end
+ end
+ local ic = vv.italic_correction
+ if ic and ic ~= 0 then
+ math.vert_italic_correction = ic
+ end
+ glyph.vert_variants = nil
+ end
+ local ic = glyph.italic_correction
+ if ic then
+ if ic ~= 0 then
+ math.italic_correction = ic
+ end
+ glyph.italic_correction = nil
+ end
+ end
+ end
+ end
+end
+
+otf.enhancers["share widths"] = function(data,filename)
+ local glyphs = data.glyphs
+ local widths = { }
+ for index, glyph in next, glyphs do
+ local width = glyph.width
+ widths[width] = (widths[width] or 0) + 1
+ end
+ -- share width for cjk fonts
+ local wd, most = 0, 1
+ for k,v in next, widths do
+ if v > most then
+ wd, most = k, v
+ end
+ end
+ if most > 1000 then
+ if trace_loading then
+ logs.report("load otf", "most common width: %s (%s times), sharing (cjk font)",wd,most)
+ end
+ for k, v in next, glyphs do
+ if v.width == wd then
+ v.width = nil
+ end
+ end
+ data.luatex.defaultwidth = wd
+ end
+end
+
+-- kern: ttf has a table with kerns
+
+otf.enhancers["reorganize kerns"] = function(data,filename)
+ local glyphs, mapmap, unicodes = data.glyphs, data.luatex.indices, data.luatex.unicodes
+ local mkdone = false
+ for index, glyph in next, data.glyphs do
+ if glyph.kerns then
+ local mykerns = { }
+ for k,v in next, glyph.kerns do
+ local vc, vo, vl = v.char, v.off, v.lookup
+ if vc and vo and vl then -- brrr, wrong! we miss the non unicode ones
+ local uvc = unicodes[vc]
+ if not uvc then
+ if trace_loading then
+ logs.report("load otf","problems with unicode %s of kern %s at glyph %s",vc,k,index)
+ end
+ else
+ if type(vl) ~= "table" then
+ vl = { vl }
+ end
+ for l=1,#vl do
+ local vll = vl[l]
+ local mkl = mykerns[vll]
if not mkl then
- mkl = { [unicodes[vc]] = vo }
- mykerns[v.lookup] = mkl
+ mkl = { }
+ mykerns[vll] = mkl
+ end
+ if type(uvc) == "table" then
+ for u=1,#uvc do
+ mkl[uvc[u]] = vo
+ end
else
- mkl[unicodes[vc]] = vo
+ mkl[uvc] = vo
end
- else
- logs.report("load otf", string.format("problems with unicode %s of kern %s at glyph %s",vc,k,index))
end
end
end
- glyph.mykerns = mykerns
- glyph.kerns = nil -- saves space and time
- mkdone = true
end
+ glyph.mykerns = mykerns
+ glyph.kerns = nil -- saves space and time
+ mkdone = true
end
- if mkdone then
- logs.report("load otf", "replacing 'kerns' tables by 'mykerns' tables")
+ end
+ if trace_loading and mkdone then
+ logs.report("load otf", "replacing 'kerns' tables by 'mykerns' tables")
+ end
+ if data.kerns then
+ if trace_loading then
+ logs.report("load otf", "removing global 'kern' table")
end
- if data.gpos then
- for _, gpos in ipairs(data.gpos) do
- if gpos.subtables then
- for _, subtable in ipairs(gpos.subtables) do
- local kernclass = subtable.kernclass
- if kernclass then
- for _, kcl in ipairs(kernclass) do
- local firsts, seconds, offsets, lookup = kcl.firsts, kcl.seconds, kcl.offsets, kcl.lookup
- local maxfirsts, maxseconds = table.getn(firsts), table.getn(seconds)
- logs.report("load otf", string.format("adding kernclass %s with %s times %s pairs)",lookup, maxfirsts, maxseconds))
- for fk, fv in pairs(firsts) do
- for first in fv:gmatch("[^ ]+") do
- local glyph = glyphs[mapmap[unicodes[first]]]
- local mykerns = glyph.mykerns
- if not mykerns then
- mykerns = { } -- unicode indexed !
- glyph.mykerns = mykerns
- end
- local lookupkerns = mykerns[lookup]
- if not lookupkerns then
- lookupkerns = { }
- mykerns[lookup] = lookupkerns
+ data.kerns = nil
+ end
+ local dgpos = data.gpos
+ if dgpos then
+ for gp=1,#dgpos do
+ local gpos = dgpos[gp]
+ local subtables = gpos.subtables
+ if subtables then
+ for s=1,#subtables do
+ local subtable = subtables[s]
+ local kernclass = subtable.kernclass -- name is inconsistent with anchor_classes
+ if kernclass then
+ for k=1,#kernclass do
+ local kcl = kernclass[k]
+ local firsts, seconds, offsets, lookups = kcl.firsts, kcl.seconds, kcl.offsets, kcl.lookup -- singular
+ if type(lookups) ~= "table" then
+ lookups = { lookups }
+ end
+ for l=1,#lookups do
+ local lookup = lookups[l]
+ local maxfirsts, maxseconds = getn(firsts), getn(seconds)
+ if trace_loading then
+ logs.report("load otf", "adding kernclass %s with %s times %s pairs",lookup, maxfirsts, maxseconds)
+ end
+ for fk, fv in next, firsts do
+ for first in gmatch(fv,"[^ ]+") do
+ local first_unicode = unicodes[first]
+ if type(first_unicode) == "number" then
+ first_unicode = { first_unicode }
end
- for sk, sv in pairs(seconds) do
- for second in sv:gmatch("[^ ]+") do
- lookupkerns[unicodes[second]] = offsets[(fk-1) * maxseconds + sk]
+ for f=1,#first_unicode do
+ local glyph = glyphs[mapmap[first_unicode[f]]]
+ if glyph then
+ local mykerns = glyph.mykerns
+ if not mykerns then
+ mykerns = { } -- unicode indexed !
+ glyph.mykerns = mykerns
+ end
+ local lookupkerns = mykerns[lookup]
+ if not lookupkerns then
+ lookupkerns = { }
+ mykerns[lookup] = lookupkerns
+ end
+ for sk, sv in next, seconds do
+ local offset = offsets[(fk-1) * maxseconds + sk]
+ --~ local offset = offsets[sk] -- (fk-1) * maxseconds + sk]
+ for second in gmatch(sv,"[^ ]+") do
+ local second_unicode = unicodes[second]
+ if type(second_unicode) == "number" then
+ lookupkerns[second_unicode] = offset
+ else
+ for s=1,#second_unicode do
+ lookupkerns[second_unicode[s]] = offset
+ end
+ end
+ end
+ end
+ elseif trace_loading then
+ logs.report("load otf", "no glyph data for U+%04X", first_unicode[f])
end
end
end
end
end
- subtable.comment = "The kernclass table is merged into mykerns in the indexed glyph tables."
- subtable.kernclass = { }
end
+ subtable.comment = "The kernclass table is merged into mykerns in the indexed glyph tables."
+ subtable.kernclass = { }
end
end
end
@@ -1351,22 +1074,70 @@ function fonts.otf.enhance.after(data,filename) -- to be split
end
end
-function fonts.otf.enhance.strip(data)
- for k, v in pairs(data.glyphs) do
+otf.enhancers["strip not needed data"] = function(data,filename)
+ local verbose = fonts.verbose
+ local int_to_uni = data.luatex.unicodes
+ for k, v in next, data.glyphs do
local d = v.dependents
if d then v.dependents = nil end
+ local a = v.altuni
+ if a then v.altuni = nil end
+ if verbose then
+ local code = int_to_uni[k]
+ -- looks like this is done twice ... bug?
+ if code then
+ local vu = v.unicode
+ if not vu then
+ v.unicode = code
+ elseif type(vu) == "table" then
+ if vu[#vu] == code then
+ -- weird
+ else
+ vu[#vu+1] = code
+ end
+ elseif vu ~= code then
+ v.unicode = { vu, code }
+ end
+ end
+ else
+ v.unicode = nil
+ v.index = nil
+ end
end
- data.map = nil
- data.names = nil
data.luatex.comment = "Glyph tables have their original index. When present, mykern tables are indexed by unicode."
+ data.map = nil
+ data.names = nil -- funny names for editors
+ data.glyphcnt = nil
+ data.glyphmax = nil
+ if true then
+ data.gpos = nil
+ data.gsub = nil
+ data.anchor_classes = nil
+ end
end
-function fonts.otf.enhance.flatten(data,filename) -- to be split
- logs.report("load otf", "flattening 'specifications' tables")
- for k, v in pairs(data.glyphs) do
+otf.enhancers["migrate metadata"] = function(data,filename)
+ local global_fields = otf.tables.global_fields
+ local metadata = { }
+ for k,v in next, data do
+ if not global_fields[k] then
+ metadata[k] = v
+ data[k] = nil
+ end
+ end
+ data.metadata = metadata
+ -- goodies
+ local pfminfo = data.pfminfo
+ metadata.isfixedpitch = metadata.isfixedpitch or (pfminfo.panose and pfminfo.panose["proportion"] == "Monospaced")
+ metadata.charwidth = pfminfo and pfminfo.avgwidth
+end
+
+otf.enhancers["flatten glyph lookups"] = function(data,filename)
+ for k, v in next, data.glyphs do
if v.lookups then
- for kk, vv in pairs(v.lookups) do
- for kkk, vvv in ipairs(vv) do
+ for kk, vv in next, v.lookups do
+ for kkk=1,#vv do
+ local vvv = vv[kkk]
local s = vvv.specification
if s then
local t = vvv.type
@@ -1379,27 +1150,29 @@ function fonts.otf.enhance.flatten(data,filename) -- to be split
elseif t == "multiple" then
vv[kkk] = { "multiple", s.components }
elseif t == "position" then
- vv[kkk] = { "position", s.x or 0, s.y or 0, s.h or 0, s.v or 0 }
+ vv[kkk] = { "position", { s.x or 0, s.y or 0, s.h or 0, s.v or 0 } }
elseif t == "pair" then
local one, two, paired = s.offsets[1], s.offsets[2], s.paired or ""
if one then
if two then
- vv[kkk] = { "pair", paired, one.x or 0, one.y or 0, one.h or 0, one.v or 0, two.x or 0, two.y or 0, two.h or 0, two.v or 0 }
+ vv[kkk] = { "pair", paired, { one.x or 0, one.y or 0, one.h or 0, one.v or 0 }, { two.x or 0, two.y or 0, two.h or 0, two.v or 0 } }
else
- vv[kkk] = { "pair", paired, one.x or 0, one.y or 0, one.h or 0 }
+ vv[kkk] = { "pair", paired, { one.x or 0, one.y or 0, one.h or 0, one.v or 0 } }
end
else
if two then
- vv[kkk] = { "pair", paired, 0, 0, 0, 0, two.x or 0, two.y or 0, two.h or 0, two.v or 0 }
+ vv[kkk] = { "pair", paired, { }, { two.x or 0, two.y or 0, two.h or 0, two.v or 0} } -- maybe nil instead of { }
else
vv[kkk] = { "pair", paired }
end
end
else
- logs.report("load otf", "flattening needed, warn Hans and/or Taco")
- for a, b in pairs(s) do
- if vvv[a] then
- logs.report("load otf", "flattening conflict, warn Hans and/or Taco")
+ if trace_loading then
+ logs.report("load otf", "flattening needed, report to context list")
+ end
+ for a, b in next, s do
+ if trace_loading and vvv[a] then
+ logs.report("load otf", "flattening conflict, report to context list")
end
vvv[a] = b
end
@@ -1410,15 +1183,18 @@ function fonts.otf.enhance.flatten(data,filename) -- to be split
end
end
end
- logs.report("load otf", "flattening 'anchor' tables")
- for k, v in pairs(data.glyphs) do
+end
+
+otf.enhancers["flatten anchor tables"] = function(data,filename)
+ for k, v in next, data.glyphs do
if v.anchors then
- for kk, vv in pairs(v.anchors) do
- for kkk, vvv in pairs(vv) do
- if vvv.x or vvv.y then -- kkk == "centry"
+ for kk, vv in next, v.anchors do
+ for kkk, vvv in next, vv do
+ if vvv.x or vvv.y then
vv[kkk] = { vvv.x or 0, vvv.y or 0 }
else
- for kkkk, vvvv in ipairs(vvv) do
+ for kkkk=1,#vvv do
+ local vvvv = vvv[kkkk]
vvv[kkkk] = { vvvv.x or 0, vvvv.y or 0 }
end
end
@@ -1426,14 +1202,24 @@ function fonts.otf.enhance.flatten(data,filename) -- to be split
end
end
end
- for _, tag in pairs({"gpos","gsub"}) do
+end
+
+otf.enhancers["flatten feature tables"] = function(data,filename)
+ -- is this needed? do we still use them at all?
+ for _, tag in next, otf.glists do
if data[tag] then
- logs.report("load otf", "flattening '" .. tag.. "' tables")
- for k, v in pairs(data[tag]) do
- if v.features then
- for kk, vv in ipairs(v.features) do
+ if trace_loading then
+ logs.report("load otf", "flattening %s table", tag)
+ end
+ for k, v in next, data[tag] do
+ local features = v.features
+ if features then
+ for kk=1,#features do
+ local vv = features[kk]
local t = { }
- for kkk, vvv in ipairs(vv.scripts) do
+ local scripts = vv.scripts
+ for kkk=1,#scripts do
+ local vvv = scripts[kkk]
t[vvv.script] = vvv.langs
end
vv.scripts = t
@@ -1444,12 +1230,12 @@ function fonts.otf.enhance.flatten(data,filename) -- to be split
end
end
-fonts.otf.enhance.patches = { }
+otf.enhancers.patches = otf.enhancers.patches or { }
-function fonts.otf.enhance.patch(data,filename)
- local basename = file.basename(filename)
- for pattern, action in pairs(fonts.otf.enhance.patches) do
- if basename:find(pattern) then
+otf.enhancers["patch bugs"] = function(data,filename)
+ local basename = file.basename(lower(filename))
+ for pattern, action in next, otf.enhancers.patches do
+ if find(basename,pattern) then
action(data,filename)
end
end
@@ -1457,374 +1243,228 @@ end
-- tex features
-function fonts.otf.enhance.enrich(data,filename)
- -- later
-end
-
--- patching
-
-do -- will move to a typescript
-
- local function patch(data,filename)
- if data.design_size == 0 then
- local ds = (file.basename(filename)):match("(%d+)")
- if ds then
- logs.report("load otf",string.format("patching design size (%s)",ds))
- data.design_size = tonumber(ds) * 10
- end
- end
- end
-
- fonts.otf.enhance.patches["^lmroman"] = patch
- fonts.otf.enhance.patches["^lmsans"] = patch
- fonts.otf.enhance.patches["^lmtypewriter"] = patch
-
+fonts.otf.enhancers["enrich with features"] = function(data,filename)
+ -- later, ctx only
end
-function fonts.otf.analyze_class(data,class)
- local classes = { }
- for index, glyph in pairs(data.glyphs) do
- if glyph.class == class then
- classes[glyph.unicode] = true
- end
- end
- return classes
+function otf.features.register(name,default)
+ otf.features.list[#otf.features.list+1] = name
+ otf.features.default[name] = default
end
-function fonts.otf.analyze_subtables(data)
- local subtables, name_to_type, internals, always_valid, ignore_flags, ctx_always = { }, { }, { }, { }, { }, { }
- local function collect(g)
- if g then
- for k,v in ipairs(g) do
- if v.features then
- local ignored = { false, false, false }
- if v.flags.ignorecombiningmarks then ignored[1] = 'mark' end
- if v.flags.ignorebasechars then ignored[2] = 'base' end
- if v.flags.ignoreligatures then ignored[3] = 'ligature' end
- if v.subtables then
- local type = v.type
- for _, feature in ipairs(v.features) do
- local ft = feature.tag:lower()
- subtables[ft] = subtables[ft] or { }
- ctx_always[ft] = v.always
- for script, languages in pairs(feature.scripts) do
- script = script:lower()
- script = script:strip()
- sft = subtables[ft]
- local sfts = sft[script]
- if not sfts then
- sfts = { }
- sft[script] = sfts
- end
- for _, language in ipairs(languages) do
- language = language:lower()
- language = language:strip()
- local sftsl = sfts[language]
- if not sftsl then
- sftsl = sfts[language] or { }
- sfts[language] = sftsl
- end
- local lookups, valid = sftsl.lookups or { }, sftsl.valid or { }
- for n, subtable in ipairs(v.subtables) do
- local stl = subtable.name
- if stl then
- lookups[#lookups+1] = stl
- valid[stl] = true
- name_to_type[stl] = type
- ignore_flags[stl] = ignored
- end
- end
- sftsl.lookups, sftsl.valid = lookups, valid
- end
- end
- end
- end
- else
- -- we have an internal feature, say ss_l_83 that resolves to
- -- subfeatures like ss_l_83_s which we find in the glyphs
- name_to_type[v.name] = v.type
- local lookups, valid = { }, { }
- for n, subtable in ipairs(v.subtables) do
- local stl = subtable.name
- if stl then
- lookups[#lookups+1] = stl
- valid[stl] = true
- always_valid[stl] = true
- end
- end
- internals[v.name] = {
- lookups = lookups,
- valid = valid
- }
- always_valid[v.name] = true -- bonus
- end
- end
- end
- end
- collect(data.gsub)
- collect(data.gpos)
- return subtables, name_to_type, internals, always_valid, ignore_flags, ctx_always
-end
-
-function fonts.otf.analyze_unicodes(data)
- local unicodes = { }
- for _, blob in pairs(data.glyphs) do
- if blob.name then
- unicodes[blob.name] = blob.unicode or 0
- end
- end
- unicodes['space'] = unicodes['space'] or 32 -- handly later on
- return unicodes
-end
-
-function fonts.otf.analyze_features(g, features)
- if g then
- local t, done = { }, { }
- for k=1,#g do
- local f = features or g[k].features
- if f then
- for k=1,#f do
- -- scripts and tag
- local tag = f[k].tag
- if not done[tag] then
- t[#t+1] = tag
- done[tag] = true
- end
- end
- end
- end
- if #t > 0 then
- return t
- end
- end
- return nil
-end
-
-function fonts.otf.valid_subtable(otfdata,kind,script,language)
- local tk = otfdata.luatex.subtables[kind]
- if tk then
- local tks = tk[script] or tk.dflt
- if tks then
- local tksl = tks[language] or tks.dflt
- if tksl then
- return tksl.lookups
- end
- end
- end
- return false
-end
-
-function fonts.otf.features.register(name,default)
- fonts.otf.features.list[#fonts.otf.features.list+1] = name
- fonts.otf.features.default[name] = default
-end
-
-function fonts.otf.set_features(tfmdata) -- node and base, simple mapping
- local shared = tfmdata.shared
- local otfdata = shared.otfdata
- shared.features = fonts.define.check(shared.features,fonts.otf.features.default)
- local features = shared.features
- local trace = fonts.otf.trace_features or fonts.otf.trace_set_features
- if not tfmdata.language then tfmdata.language = 'dflt' end
- if not tfmdata.script then tfmdata.script = 'dflt' end
+function otf.set_features(tfmdata,features)
+ local processes = { }
if not table.is_empty(features) then
- local gposlist = otfdata.luatex.gposfeatures
- local gsublist = otfdata.luatex.gsubfeatures
- local mode = tfmdata.mode or fonts.mode
+ local lists = {
+ fonts.triggers,
+ fonts.processors,
+ fonts.manipulators,
+ }
+ local mode = tfmdata.mode or fonts.mode -- or features.mode
local initializers = fonts.initializers
local fi = initializers[mode]
- if fi then -- todo: delay initilization for mode 'node'
+ if fi then
local fiotf = fi.otf
if fiotf then
local done = { }
- local function initialize(list) -- using tex lig and kerning
+ for l=1,4 do
+ local list = lists[l]
if list then
for i=1,#list do
local f = list[i]
local value = features[f]
if value and fiotf[f] then -- brr
if not done[f] then -- so, we can move some to triggers
- if trace then
- logs.report("define otf",string.format("initializing feature %s to %s for mode %s for font %s",f,tostring(value),mode or 'unknown', tfmdata.fullname or 'unknown'))
+ if trace_features then
+ logs.report("define otf","initializing feature %s to %s for mode %s for font %s",f,tostring(value),mode or 'unknown', tfmdata.fullname or 'unknown')
end
fiotf[f](tfmdata,value) -- can set mode (no need to pass otf)
mode = tfmdata.mode or fonts.mode -- keep this, mode can be set local !
- local fi = initializers[mode]
- fiotf = fi.otf
+ local im = initializers[mode]
+ if im then
+ fiotf = initializers[mode].otf
+ end
done[f] = true
end
end
end
end
end
- initialize(fonts.triggers)
- initialize(gsublist)
- initialize(gposlist)
- initialize(fonts.manipulators)
end
end
local fm = fonts.methods[mode]
if fm then
local fmotf = fm.otf
- local sp = shared.processors
if fmotf then
- local function register(list) -- node manipulations
+ for l=1,4 do
+ local list = lists[l]
if list then
for i=1,#list do
local f = list[i]
- if features[f] and fmotf[f] then -- brr
- if trace then
- logs.report("define otf",string.format("installing feature handler %s for mode %s for font %s",f,mode or 'unknown', tfmdata.fullname or 'unknown'))
+ if fmotf[f] then -- brr
+ if trace_features then
+ logs.report("define otf","installing feature handler %s for mode %s for font %s",f,mode or 'unknown', tfmdata.fullname or 'unknown')
end
- sp[#sp+1] = fmotf[f]
+ processes[#processes+1] = fmotf[f]
end
end
end
end
- register(fonts.triggers)
- register(gsublist)
- register(gposlist)
- register(fonts.manipulators)
end
+ else
+ -- message
end
end
+ return processes, features
end
-function fonts.otf.otf_to_tfm(specification)
+function otf.otf_to_tfm(specification)
local name = specification.name
local sub = specification.sub
local filename = specification.filename
local format = specification.format
local features = specification.features.normal
local cache_id = specification.hash
- local tfmdata = containers.read(fonts.tfm.cache(),cache_id)
+ local tfmdata = containers.read(tfm.cache(),cache_id)
+--~ print(cache_id)
if not tfmdata then
- local otfdata = fonts.otf.load(filename,format,sub,features and features.featurefile)
+ local otfdata = otf.load(filename,format,sub,features and features.featurefile)
if not table.is_empty(otfdata) then
- fonts.otf.add_dimensions(otfdata)
- if true then
- otfdata._shared_ = otfdata._shared_ or { -- aggressive sharing
- processes = { },
- lookuptable = { },
- featuredata = { },
- featurecache = { },
- }
- end
- tfmdata = fonts.otf.copy_to_tfm(otfdata)
+ otfdata.shared = otfdata.shared or {
+ featuredata = { },
+ anchorhash = { },
+ initialized = false,
+ }
+ tfmdata = otf.copy_to_tfm(otfdata,cache_id)
if not table.is_empty(tfmdata) then
tfmdata.unique = tfmdata.unique or { }
tfmdata.shared = tfmdata.shared or { } -- combine
local shared = tfmdata.shared
shared.otfdata = otfdata
- shared.features = features
- shared.processors = { }
+ shared.features = features -- default
shared.dynamics = { }
shared.processes = { }
- shared.lookuptable = { }
- shared.featuredata = { }
- shared.featurecache = { }
- if otfdata._shared_ then
- shared.processes = otfdata._shared_.processes
- shared.lookuptable = otfdata._shared_.lookuptable
- shared.featuredata = otfdata._shared_.featuredata
- shared.featurecache = otfdata._shared_.featurecache
- end
- fonts.otf.set_features(tfmdata)
- end
- end
- containers.write(fonts.tfm.cache(),cache_id,tfmdata)
+ shared.set_dynamics = otf.set_dynamics -- fast access and makes other modules independent
+ -- this will be done later anyway, but it's convenient to have
+ -- them already for fast access
+ tfmdata.luatex = otfdata.luatex
+ tfmdata.indices = otfdata.luatex.indices
+ tfmdata.unicodes = otfdata.luatex.unicodes
+ tfmdata.marks = otfdata.luatex.marks
+ tfmdata.originals = otfdata.luatex.originals
+ tfmdata.changed = { }
+ tfmdata.has_italic = otfdata.metadata.has_italic
+ if not tfmdata.language then tfmdata.language = 'dflt' end
+ if not tfmdata.script then tfmdata.script = 'dflt' end
+ shared.processes, shared.features = otf.set_features(tfmdata,fonts.define.check(features,otf.features.default))
+ end
+ end
+ containers.write(tfm.cache(),cache_id,tfmdata)
end
return tfmdata
end
-function fonts.otf.features.prepare_base_kerns(tfmdata,kind,value) -- todo what kind of kerns, currently all
- if value then
- local otfdata = tfmdata.shared.otfdata
- local charlist = otfdata.glyphs
- local unicodes = otfdata.luatex.unicodes
- local somevalid = fonts.otf.some_valid_feature(otfdata,kind,tfmdata.script,tfmdata.language)
- for _, chr in pairs(tfmdata.characters) do
- local d = charlist[chr.description.index]
- if d then
- local dk = d.mykerns
- if dk then
- local t, done = chr.kerns or { }, false
- for lookup,kerns in pairs(dk) do
- if somevalid[lookup] then
- for k, v in pairs(kerns) do
- if v ~= 0 then
- t[k], done = v, true
- end
+--~ {
+--~ ['boundingbox']={ 95, -458, 733, 1449 },
+--~ ['class']="base",
+--~ ['name']="braceleft",
+--~ ['unicode']=123,
+--~ ['vert_variants']={
+--~ ['italic_correction']=0,
+--~ ['parts']={
+--~ { ['component']="uni23A9", ['endConnectorLength']=1000, ['fullAdvance']=2546, ['is_extender']=0, ['startConnectorLength']=0, }, -- bot
+--~ { ['component']="uni23AA", ['endConnectorLength']=2500, ['fullAdvance']=2501, ['is_extender']=1, ['startConnectorLength']=2500, }, -- rep
+--~ { ['component']="uni23A8", ['endConnectorLength']=1000, ['fullAdvance']=4688, ['is_extender']=0, ['startConnectorLength']=1000, }, -- mid
+--~ { ['component']="uni23AA", ['endConnectorLength']=2500, ['fullAdvance']=2501, ['is_extender']=1, ['startConnectorLength']=2500, }, -- rep
+--~ { ['component']="uni23A7", ['endConnectorLength']=0, ['fullAdvance']=2546, ['is_extender']=0, ['startConnectorLength']=1000, }, -- top
+--~ },
+--~ ['variants']="braceleft braceleft.vsize1 braceleft.vsize2 braceleft.vsize3 braceleft.vsize4 braceleft.vsize5 braceleft.vsize6 braceleft.vsize7",
+--~ },
+--~ ['width']=793,
+--~ },
+
+-- the first version made a top/mid/not extensible table, now we just pass on the variants data
+-- and deal with it in the tfm scaler (there is no longer an extensible table anyway)
+
+-- we cannot share descriptions as virtual fonts might extend them (ok, we could
+-- use a cache with a hash
+
+function otf.copy_to_tfm(data,cache_id) -- we can save a copy when we reorder the tma to unicode (nasty due to one->many)
+ if data then
+ local glyphs, pfminfo, metadata = data.glyphs or { }, data.pfminfo or { }, data.metadata or { }
+ local luatex = data.luatex
+ local unicodes = luatex.unicodes -- names to unicodes
+ local indices = luatex.indices
+ local characters, parameters, math_parameters, descriptions = { }, { }, { }, { }
+ local tfm = {
+ characters = characters,
+ parameters = parameters,
+ math_parameters = math_parameters,
+ descriptions = descriptions,
+ indices = indices,
+ unicodes = unicodes,
+ }
+ -- indices maps from unicodes to indices
+ for u, i in next, indices do
+ characters[u] = { } -- we need this because for instance we add protruding info and loop over characters
+ descriptions[u] = glyphs[i]
+ end
+ -- math
+ if metadata.math then
+ -- parameters
+ for name, value in next, metadata.math do
+ math_parameters[name] = value
+ end
+ -- we could use a subset
+ for u, char in next, characters do
+ local d = descriptions[u]
+ local m = d.math
+ -- we have them shared because that packs nicer
+ -- we could prepare the variants and keep 'm in descriptions
+ if m then
+ local variants = m.horiz_variants
+ if variants then
+ local c = char
+ for n in variants:gmatch("[^ ]+") do
+ local un = unicodes[n]
+ if un and u ~= un then
+ c.next = un
+ c = characters[un]
end
end
- end
- if done then
- chr.kerns = t -- no empty assignments
- end
- else
- dk = d.kerns
- if dk then
- local t, done = chr.kerns or { }, false
- for _, v in pairs(dk) do
- if somevalid[v.lookup] then
- local k = unicodes[v.char]
- if k > 0 then
- t[k], done = v.off, true
+ c.horiz_variants = m.horiz_parts
+ else
+ local variants = m.vert_variants
+ if variants then
+ local c = char
+ for n in variants:gmatch("[^ ]+") do
+ local un = unicodes[n]
+ if un and u ~= un then
+ c.next = un
+ c = characters[un]
end
end
+ c.vert_variants = m.vert_parts
end
- if done then
- chr.kerns = t -- no empty assignments
- end
+ end
+ local kerns = m.kerns
+ if kerns then
+ char.mathkerns = kerns
end
end
end
end
- end
-end
-
-function fonts.otf.add_dimensions(data)
- if data then
- local force = fonts.otf.notdef
- for k, d in pairs(data.glyphs) do
- local bb, wd = d.boundingbox, d.width or 0
- if force and not d.name then
- d.name = ".notdef"
- end
- if wd ~= 0 and d.class == "mark" then
- d.width = -wd
- end
- if bb then
- local ht, dp = bb[4], -bb[2]
- if ht ~= 0 then d.height = ht end
- if dp ~= 0 then d.depth = dp end
- end
- d.index = k
- end
- end
-end
-
-function fonts.otf.copy_to_tfm(data) -- we can save a copy when we reorder the tma to unicode
- if data then
- local tfm = { characters = { }, parameters = { } }
- local unicodes = data.luatex.unicodes
- local characters = tfm.characters
- local parameters = tfm.parameters
- local glyphs = data.glyphs
- for k, d in pairs(glyphs) do
- if d.name then
- characters[d.unicode] = { description = d }
- end
- end
- local designsize = data.designsize or data.design_size or 100
+ -- end math
+ local designsize = metadata.designsize or metadata.design_size or 100
if designsize == 0 then
designsize = 100
end
local spaceunits = 500
- tfm.units = data.units_per_em or 1000
+ tfm.units = metadata.units_per_em or 1000
-- we need a runtime lookup because of running from cdrom or zip, brrr
- tfm.filename = input.findbinfile(texmf.instance,data.luatex.filename,"") or data.luatex.filename
- tfm.fullname = data.fontname or data.fullname
+ tfm.filename = resolvers.findbinfile(luatex.filename,"") or luatex.filename
+ tfm.fullname = metadata.fontname or metadata.fullname
+ tfm.psname = tfm.fullname
tfm.encodingbytes = 2
tfm.cidinfo = data.cidinfo
tfm.cidinfo.registry = tfm.cidinfo.registry or ""
@@ -1836,63 +1476,62 @@ function fonts.otf.copy_to_tfm(data) -- we can save a copy when we reorder the t
tfm.boundarychar = 65536
tfm.designsize = (designsize/10)*65536
tfm.spacer = "500 units"
- data.isfixedpitch = data.pfminfo and data.pfminfo.panose and data.pfminfo.panose["proportion"] == "Monospaced"
- data.charwidth = nil
- if data.pfminfo then
- data.charwidth = data.pfminfo.avgwidth
- end
- local endash, emdash = unicodes['space'], unicodes['emdash']
- if data.isfixedpitch then
- if characters[endash] then
- spaceunits, tfm.spacer = characters[endash].description.width, "space"
+ local endash, emdash = 0x20, 0x2014 -- unicodes['space'], unicodes['emdash']
+ if metadata.isfixedpitch then
+ if descriptions[endash] then
+ spaceunits, tfm.spacer = descriptions[endash].width, "space"
end
- if not spaceunits and characters[emdash] then
- spaceunits, tfm.spacer = characters[emdash].description.width, "emdash"
+ if not spaceunits and descriptions[emdash] then
+ spaceunits, tfm.spacer = descriptions[emdash].width, "emdash"
end
- if not spaceunits and data.charwidth then
- spaceunits, tfm.spacer = data.charwidth, "charwidth"
+ if not spaceunits and metadata.charwidth then
+ spaceunits, tfm.spacer = metadata.charwidth, "charwidth"
end
else
- if characters[endash] then
- spaceunits, tfm.spacer = characters[endash].description.width, "space"
+ if descriptions[endash] then
+ spaceunits, tfm.spacer = descriptions[endash].width, "space"
end
- if not spaceunits and characters[emdash] then
- spaceunits, tfm.spacer = characters[emdash].description.width/2, "emdash/2"
+ if not spaceunits and descriptions[emdash] then
+ spaceunits, tfm.spacer = descriptions[emdash].width/2, "emdash/2"
end
- if not spaceunits and data.charwidth then
- spaceunits, tfm.spacer = data.charwidth, "charwidth"
+ if not spaceunits and metadata.charwidth then
+ spaceunits, tfm.spacer = metadata.charwidth, "charwidth"
end
end
spaceunits = tonumber(spaceunits) or tfm.units/2 -- 500 -- brrr
parameters.slant = 0
- parameters.space = spaceunits
- parameters.space_stretch = tfm.units/2 -- 500
- parameters.space_shrink = 2*tfm.units/3 -- 333
- parameters.x_height = 4*tfm.units/5 -- 400
+ parameters.space = spaceunits -- 3.333 (cmr10)
+ parameters.space_stretch = tfm.units/2 -- 500 -- 1.666 (cmr10)
+ parameters.space_shrink = 1*tfm.units/3 -- 333 -- 1.111 (cmr10)
+ parameters.x_height = 2*tfm.units/5 -- 400
parameters.quad = tfm.units -- 1000
- parameters.extra_space = 0
if spaceunits < 2*tfm.units/5 then
-- todo: warning
end
- tfm.italicangle = data.italicangle
- tfm.ascender = math.abs(data.ascent or 0)
- tfm.descender = math.abs(data.descent or 0)
- if data.italicangle then -- maybe also in afm _
- parameters.slant = parameters.slant - math.round(math.tan(data.italicangle*math.pi/180))
+ local italicangle = metadata.italicangle
+ tfm.ascender = math.abs(metadata.ascent or 0)
+ tfm.descender = math.abs(metadata.descent or 0)
+ if italicangle then -- maybe also in afm _
+ tfm.italicangle = italicangle
+ parameters.slant = parameters.slant - math.round(math.tan(italicangle*math.pi/180))
end
- if data.isfixedpitch then
+ if metadata.isfixedpitch then
parameters.space_stretch = 0
parameters.space_shrink = 0
- elseif fonts.otf.syncspace then --
+ elseif otf.syncspace then --
parameters.space_stretch = spaceunits/2
parameters.space_shrink = spaceunits/3
end
- if data.pfminfo and data.pfminfo.os2_xheight and data.pfminfo.os2_xheight > 0 then
- parameters.x_height = data.pfminfo.os2_xheight
+ parameters.extra_space = parameters.space_shrink -- 1.111 (cmr10)
+ if pfminfo.os2_xheight and pfminfo.os2_xheight > 0 then
+ parameters.x_height = pfminfo.os2_xheight
else
- local x = characters[unicodes['x']]
+ local x = 0x78 -- unicodes['x']
if x then
- parameters.x_height = x.description.height
+ local x = descriptions[x]
+ if x then
+ parameters.x_height = x.height
+ end
end
end
-- [6]
@@ -1902,23 +1541,55 @@ function fonts.otf.copy_to_tfm(data) -- we can save a copy when we reorder the t
end
end
-function fonts.tfm.read_from_open_type(specification)
- local tfmtable = fonts.otf.otf_to_tfm(specification)
+otf.features.register('mathsize')
+
+function tfm.read_from_open_type(specification)
+ local tfmtable = otf.otf_to_tfm(specification)
if tfmtable then
+ local otfdata = tfmtable.shared.otfdata
tfmtable.name = specification.name
tfmtable.sub = specification.sub
- tfmtable = fonts.tfm.scale(tfmtable, specification.size)
+ local s = specification.size
+ local m = otfdata.metadata.math
+ if m then
+ local f = specification.features
+ if f then
+ local f = f.normal
+ if f and f.mathsize then
+ local mathsize = specification.mathsize or 0
+ if mathsize == 2 then
+ local p = m.ScriptPercentScaleDown
+ if p then
+ local ps = p * specification.textsize / 100
+ if trace_math then
+ logs.report("define font","asked script size: %s, used: %s (%2.2f %%)",s,ps,(ps/s)*100)
+ end
+ s = ps
+ end
+ elseif mathsize == 3 then
+ local p = m.ScriptScriptPercentScaleDown
+ if p then
+ local ps = p * specification.textsize / 100
+ if trace_math then
+ logs.report("define font","asked scriptscript size: %s, used: %s (%2.2f %%)",s,ps,(ps/s)*100)
+ end
+ s = ps
+ end
+ end
+ end
+ end
+ end
+ tfmtable = tfm.scale(tfmtable,s)
-- here we resolve the name; file can be relocated, so this info is not in the cache
- local otfdata = tfmtable.shared.otfdata
local filename = (otfdata and otfdata.luatex and otfdata.luatex.filename) or specification.filename
if not filename then
-- try to locate anyway and set otfdata.luatex.filename
end
if filename then
tfmtable.encodingbytes = 2
- tfmtable.filename = input.findbinfile(texmf.instance,filename,"") or filename
- tfmtable.fullname = otfdata.fontname or otfdata.fullname
- local order = otfdata and otfdata.order2
+ tfmtable.filename = resolvers.findbinfile(filename,"") or filename
+ tfmtable.fullname = tfmtable.fullname or otfdata.metadata.fontname or otfdata.metadata.fullname
+ local order = otfdata and otfdata.metadata.order2
if order == 0 then
tfmtable.format = 'opentype'
elseif order == 1 then
@@ -1930,2882 +1601,6 @@ function fonts.tfm.read_from_open_type(specification)
end
fonts.logger.save(tfmtable,file.extname(specification.filename),specification)
end
+--~ print(tfmtable.fullname)
return tfmtable
end
-
-function fonts.otf.analyze_only(otfdata)
- local analyze = fonts.otf.analyze_features
- return analyze(otfdata.gpos), analyze(otfdata.gsub)
-end
-
-local a_to_script = { }
-local a_to_language = { }
-
-do
-
- local context_setups = fonts.define.specify.context_setups
- local context_numbers = fonts.define.specify.context_numbers
-
- function fonts.otf.set_dynamics(tfmdata,attribute,features) --currently experimental and slow / hackery
- local shared = tfmdata.shared
- if shared then
- local dynamics = shared.dynamics
- if dynamics then
- features = features or context_setups[context_numbers[attribute]]
- if features then
- local script = features.script or 'dflt'
- local language = features.language or 'dflt'
- local ds = dynamics[script]
- if not ds then
- ds = { }
- dynamics[script] = ds
- end
- local dsl = ds[language]
- if not dsl then
- dsl = { }
- ds[language] = dsl
- end
- local dsla = dsl[attribute]
- if dsla then
- return dsla
- else
- a_to_script [attribute] = script
- a_to_language[attribute] = language
- dsla = { }
- local otfdata = shared.otfdata
- local methods = fonts.methods.node.otf
- local initializers = fonts.initializers.node.otf
- local gposfeatures, gsubfeatures = fonts.otf.analyze_only(otfdata,features)
- local default = fonts.otf.features.default
- local function register(list)
- if list then
- for i=1,#list do
- local f = list[i]
- local value = features[f] or default[f]
- if value then
- local i, m = initializers[f], methods[f]
- if i then
- i(tfmdata,value)
- end
- if m then
- dsla[#dsla+1] = m
- end
- end
- end
- end
- end
- register(fonts.triggers)
- register(gsubfeatures)
- register(gposfeatures)
- dynamics[script][language][attribute] = dsla
- return dsla
- end
- end
- end
- end
- return { } -- todo: false
- end
-
-end
-
--- scripts
-
-fonts.otf.default_language = 'latn'
-fonts.otf.default_script = 'dflt'
-
-function fonts.otf.valid_feature(otfdata,kind,script,language) -- return hash is faster
- if otfdata.luatex.ctx_always[kind] then
- script, language = 'dflt', 'dflt'
- else
- script = script or fonts.otf.default_script
- language = language or fonts.otf.default_language
- end
- script, language = script:lower(), language:lower() -- will go away, we will lowercase values
- local ft = otfdata.luatex.subtables[kind]
- local st = ft[script] or ft.dflt
- local lt = st and (st[language] or st.dflt)
- return false, otfdata.luatex.always_valid, lt.valid
-end
-
-function fonts.otf.some_valid_feature(otfdata,kind,script,language)
- if otfdata.luatex.ctx_always[kind] then
- script, language = 'dflt', 'dflt'
- else
- script = script or fonts.otf.default_script
- language = language or fonts.otf.default_language
- script, language = script:lower(), language:lower() -- will go away, we will lowercase values
- end
- local t = otfdata.luatex.subtables[kind]
- if t then
- local ts = t[script] or t.dflt
- if ts then
- local tsl = ts[language] or ts.dflt
- return (tsl and tsl.valid) or { }
- end
- end
- return { }
-end
-
-function fonts.otf.features.aux.resolve_ligatures(tfmdata,ligatures,kind)
- local otfdata = tfmdata.shared.otfdata
- local unicodes = otfdata.luatex.unicodes
- local chars = tfmdata.characters
- local changed = tfmdata.changed or { }
- local done = { }
- kind = kind or "unknown"
- local trace = fonts.otf.trace_features
- while true do
- local ok = false
- for k,v in pairs(ligatures) do
- local lig = v[1]
- if not done[lig] then
- local ligs = { }
- for s in lig:gmatch("[^ ]+") do
- ligs[#ligs+1] = s
- end
- if #ligs == 2 then
- local c, f, s = chars[v[2]], ligs[1], ligs[2]
- local uf, us = unicodes[f], unicodes[s]
- if changed[uf] or changed[us] then
- if trace then
- logs.report("define otf",string.format("%s: %s (%s) + %s (%s) ignored",kind,f,uf,s,us))
- end
- else
- local first, second = chars[uf], us
- if first and second then
- local t = first.ligatures
- if not t then
- t = { }
- first.ligatures = t
- end
- t[second] = {
- char = unicodes[c.description.name],
- type = 0
- }
- if trace then
- logs.report("define otf",string.format("%s: %s (%s) + %s (%s) = %s (%s)",kind,f,uf,s,us,c.description.name,unicodes[c.description.name]))
- end
- end
- end
- ok, done[lig] = true, c.description.name
- end
- end
- end
- if ok then
- for d,n in pairs(done) do
- local pattern = "^(" .. d .. ") "
- for k,v in pairs(ligatures) do
- v[1] = v[1]:gsub(pattern, function(str)
- return n .. " "
- end)
- end
- end
- else
- break
- end
- end
-end
-
-function fonts.otf.features.prepare_base_substitutions(tfmdata,kind,value) -- we can share some code with the node features
- if value then
- local ligatures = { }
- local otfdata = tfmdata.shared.otfdata
- local unicodes = otfdata.luatex.unicodes
- local trace = fonts.otf.trace_features
- local chars = tfmdata.characters
- local somevalid = fonts.otf.some_valid_feature(otfdata,kind,tfmdata.script,tfmdata.language)
- if not table.is_empty(somevalid) then
- tfmdata.changed = tfmdata.changed or { }
- local changed = tfmdata.changed
- local glyphs = otfdata.glyphs
- for k,c in pairs(chars) do
- local o = glyphs[c.description.index]
- if o and o.lookups then
- for lookup,ps in pairs(o.lookups) do
- if somevalid[lookup] then
- for i=1,#ps do
- local p = ps[i]
- local t = p[1]
- if t == 'substitution' then
- local pv = p[2] -- p.variant
- if pv then
- local upv = unicodes[pv]
- if upv and chars[upv] then
- if trace then
- logs.report("define otf",string.format("%s: %s (%s) => %s (%s)",kind,chars[k].description.name,k,chars[upv].description.name,upv))
- end
- chars[k] = chars[upv]
- changed[k] = true
- end
- end
- elseif t == 'alternate' then
- local pc = p[2] -- p.components
- if pc then
- pc = pa.components:match("([^ ]+)")
- if pc then
- local upc = unicodes[pc]
- if upc and chars[upc] then
- if trace then
- logs.report("define otf",string.format("%s: %s (%s) => %s (%s)",kind,chars[k].description.name,k,chars[upc].description.name,upc))
- end
- chars[k] = chars[upc]
- changed[k] = true
- end
- end
- end
- elseif t == 'ligature' and not changed[k] then
- local pc = p[2]
- if pc then
- if trace then
- logs.report("define otf",string.format("%s: %s => %s (%s)",kind,pc,chars[k].description.name,k))
- end
- ligatures[#ligatures+1] = { pc, k }
- end
- end
- end
- end
- end
- end
- end
- fonts.otf.features.aux.resolve_ligatures(tfmdata,ligatures,kind)
- end
- else
- tfmdata.ligatures = tfmdata.ligatures or { }
- end
-end
-
-function fonts.initializers.base.otf.liga(tfm,value) fonts.otf.features.prepare_base_substitutions(tfm,'liga',value) end
-function fonts.initializers.base.otf.dlig(tfm,value) fonts.otf.features.prepare_base_substitutions(tfm,'dlig',value) end
-function fonts.initializers.base.otf.rlig(tfm,value) fonts.otf.features.prepare_base_substitutions(tfm,'rlig',value) end
-function fonts.initializers.base.otf.hlig(tfm,value) fonts.otf.features.prepare_base_substitutions(tfm,'hlig',value) end
-function fonts.initializers.base.otf.pnum(tfm,value) fonts.otf.features.prepare_base_substitutions(tfm,'pnum',value) end
-function fonts.initializers.base.otf.onum(tfm,value) fonts.otf.features.prepare_base_substitutions(tfm,'onum',value) end
-function fonts.initializers.base.otf.tnum(tfm,value) fonts.otf.features.prepare_base_substitutions(tfm,'tnum',value) end
-function fonts.initializers.base.otf.lnum(tfm,value) fonts.otf.features.prepare_base_substitutions(tfm,'lnum',value) end
-function fonts.initializers.base.otf.zero(tfm,value) fonts.otf.features.prepare_base_substitutions(tfm,'zero',value) end
-function fonts.initializers.base.otf.smcp(tfm,value) fonts.otf.features.prepare_base_substitutions(tfm,'smcp',value) end
-function fonts.initializers.base.otf.cpsp(tfm,value) fonts.otf.features.prepare_base_substitutions(tfm,'cpsp',value) end
-function fonts.initializers.base.otf.c2sc(tfm,value) fonts.otf.features.prepare_base_substitutions(tfm,'c2sc',value) end
-function fonts.initializers.base.otf.ornm(tfm,value) fonts.otf.features.prepare_base_substitutions(tfm,'ornm',value) end
-function fonts.initializers.base.otf.aalt(tfm,value) fonts.otf.features.prepare_base_substitutions(tfm,'aalt',value) end
-
-function fonts.initializers.base.otf.hwid(tfm,value) fonts.otf.features.prepare_base_substitutions(tfm,'hwid',value) end
-function fonts.initializers.base.otf.fwid(tfm,value) fonts.otf.features.prepare_base_substitutions(tfm,'fwid',value) end
-
--- Here comes the real thing ... node processing! The next session prepares
--- things. The main features (unchained by rules) have their own caches,
--- while the private ones cache locally.
-
-do
-
- fonts.otf.features.prepare = { }
-
- local falsetable = { false, false, false }
-
- function fonts.otf.features.prepare.feature(tfmdata,kind,value)
- if value then
- local language, script = tfmdata.language or "dflt", tfmdata.script or "dflt"
- local shared = tfmdata.shared
- local otfdata = shared.otfdata
- local lookuptable = fonts.otf.valid_subtable(otfdata,kind,script,language)
- if lookuptable then
- local fullkind = kind .. script .. language
- if not shared.lookuptable [fullkind] then
- --~ print(tfmdata,file.basename(tfmdata.fullname or ""),kind,script,language,lookuptable,fullkind)
- local processes = { }
- -- featuredata and featurecache are indexed by lookup so we can share them
- shared.featuredata [kind] = shared.featuredata [kind] or { }
- shared.featurecache[kind] = shared.featurecache[kind] or false -- signal
- shared.lookuptable [fullkind] = lookuptable
- shared.processes [fullkind] = processes
- local types = otfdata.luatex.name_to_type
- local flags = otfdata.luatex.ignore_flags
- local preparers = fonts.otf.features.prepare
- local process = fonts.otf.features.process
- for i=1,#lookuptable do
- local lookupname = lookuptable[i]
- local lookuptype = types[lookupname]
- local prepare = preparers[lookuptype]
- if prepare then
- local processdata = prepare(tfmdata,kind,lookupname)
- if processdata then
- local processflags = flags[lookupname] or falsetable --- share false table
- -- local chain = (lookuptype == "gsub_contextchain") or (lookuptype == "gpos_contextchain")
- local chain = lookuptype:find("context") ~= nil
- processes[#processes+1] = { process[lookuptype], lookupname, processdata, processflags, chain }
- end
- end
- end
- end
- end
- end
- end
-
- -- helper: todo, we don't need to store non local ones for chains so we can pass the
- -- validator as parameter
-
- local pairs = pairs
-
- function fonts.otf.features.collect_ligatures(tfmdata,kind) -- ligs are spread all over the place
- local otfdata = tfmdata.shared.otfdata
- local unicodes = tfmdata.shared.otfdata.luatex.unicodes -- actually the char index is ok too
- local trace = fonts.otf.trace_features
- local ligatures = { }
- local function collect(lookup,o,ps)
- for i=1,#ps do
- local p = ps[i]
- if p[1] == 'ligature' then
- if trace then
- logs.report("define otf",string.format("feature %s lookup %s ligature %s => %s",kind,lookup,p[2],o.name))
- end
- local t = ligatures[lookup]
- if not t then
- t = { }
- ligatures[lookup] = t
- end
- local first = true
- for s in p[2]:gmatch("[^ ]+") do
- local u = unicodes[s]
- if first then
- if not t[u] then
- t[u] = { { } }
- end
- t = t[u]
- first = false
- else
- local t1 = t[1]
- if not t1[u] then
- t1[u] = { { } }
- end
- t = t1[u]
- end
- end
- t[2] = o.unicode
- end
- end
- end
- local forced, always, okay = fonts.otf.valid_feature(otfdata,kind,tfmdata.script,tfmdata.language)
- for _,o in pairs(otfdata.glyphs) do
- local lookups = o.lookups
- if lookups then
- if forced then
- for lookup, ps in pairs(lookups) do collect(lookup,o,ps) end
- elseif okay then
- for lookup, ps in pairs(lookups) do if always[lookup] or okay[lookup] then collect(lookup,o,ps) end end
- else
- for lookup, ps in pairs(lookups) do if always[lookup] then collect(lookup,o,ps) end end
- end
- end
- end
- return ligatures
- end
-
- -- gsub_single -> done
- -- gsub_multiple -> done
- -- gsub_alternate -> done
- -- gsub_ligature -> done
- -- gsub_context -> todo
- -- gsub_contextchain -> done
- -- gsub_reversecontextchain -> todo
-
- -- we used to share code in the following functions but that was relatively
- -- due to extensive calls to functions (easily hundreds of thousands per
- -- document)
-
- function fonts.otf.features.prepare.gsub_single(tfmdata,kind,lookupname)
- local featuredata = tfmdata.shared.featuredata[kind]
- local substitutions = featuredata[lookupname]
- if not substitutions then
- substitutions = { }
- featuredata[lookupname] = substitutions
- local otfdata = tfmdata.shared.otfdata
- local unicodes = otfdata.luatex.unicodes
- local trace = fonts.otf.trace_features
- for _, o in pairs(otfdata.glyphs) do
- local lookups = o.lookups
- if lookups then
- for lookup,ps in pairs(lookups) do
- if lookup == lookupname then
- for i=1,#ps do
- local p = ps[i]
- if p[1] == 'substitution' then
- local old, new = o.unicode, unicodes[p[2]]
- substitutions[old] = new
- if trace then
- logs.report("define otf",string.format("%s:%s substitution %s => %s",kind,lookupname,old,new))
- end
- end
- end
- end
- end
- end
- end
- end
- return substitutions
- end
-
- function fonts.otf.features.prepare.gsub_multiple(tfmdata,kind,lookupname)
- local featuredata = tfmdata.shared.featuredata[kind]
- local substitutions = featuredata[lookupname]
- if not substitutions then
- substitutions = { }
- featuredata[lookupname] = substitutions
- local otfdata = tfmdata.shared.otfdata
- local unicodes = otfdata.luatex.unicodes
- local trace = fonts.otf.trace_features
- for _,o in pairs(otfdata.glyphs) do
- local lookups = o.lookups
- if lookups then
- for lookup,ps in pairs(lookups) do
- if lookup == lookupname then
- for i=1,#ps do
- local p = ps[i]
- if p[1] == 'multiple' then
- local old, new = o.unicode, { }
- substitutions[old] = new
- for pc in p[2]:gmatch("[^ ]+") do
- new[#new+1] = unicodes[pc]
- end
- if trace then
- logs.report("define otf",string.format("%s:%s multiple %s => %s",kind,lookupname,old,table.concat(new," ")))
- end
- end
- end
- end
- end
- end
- end
- end
- return substitutions
- end
-
- function fonts.otf.features.prepare.gsub_alternate(tfmdata,kind,lookupname)
- -- todo: configurable preference list
- local featuredata = tfmdata.shared.featuredata[kind]
- local substitutions = featuredata[lookupname]
- if not substitutions then
- featuredata[lookupname] = { }
- substitutions = featuredata[lookupname]
- local otfdata = tfmdata.shared.otfdata
- local unicodes = otfdata.luatex.unicodes
- local trace = fonts.otf.trace_features
- for _,o in pairs(otfdata.glyphs) do
- local lookups = o.lookups
- if lookups then
- for lookup,ps in pairs(lookups) do
- if lookup == lookupname then
- for i=1,#ps do
- local p = ps[i]
- if p[1] == 'alternate' then
- local old = o.unicode
- local t = { }
- for pc in p[2]:gmatch("[^ ]+") do
- t[#t+1] = unicodes[pc]
- end
- substitutions[old] = t
- if trace then
- logs.report("define otf",string.format("%s:%s alternate %s => %s",kind,lookupname,old,table.concat(substitutions,"|")))
- end
- end
- end
- end
- end
- end
- end
- end
- return substitutions
- end
-
- function fonts.otf.features.prepare.gsub_ligature(tfmdata,kind,lookupname)
- -- we collect them for all lookups, this saves loops, we only use the
- -- lookupname for testing, we need to check if this leads to redundant
- -- collections
- local ligatures = tfmdata.shared.featuredata[kind]
- if not ligatures[lookupname] then
- ligatures = fonts.otf.features.collect_ligatures(tfmdata,kind)
- tfmdata.shared.featuredata[kind] = ligatures
- end
- return ligatures[lookupname]
- end
-
- function fonts.otf.features.prepare.contextchain(tfmdata,kind,lookupname)
- local featuredata = tfmdata.shared.featuredata[kind]
- local contexts = featuredata[lookupname]
- if not contexts then
- featuredata[lookupname] = { }
- contexts = featuredata[lookupname]
- local otfdata = tfmdata.shared.otfdata
- local unicodes = otfdata.luatex.unicodes
- local internals = otfdata.luatex.internals
- local flags = otfdata.luatex.ignore_flags
- local types = otfdata.luatex.name_to_type
- otfdata.luatex.covers = otfdata.luatex.covers or { }
- local characters = tfmdata.characters
- local cache = otfdata.luatex.covers
- local function uncover(covers,result)
- -- lpeg hardly faster (.005 sec on mk)
- for n=1,#covers do
- local c = covers[n]
- local cc = cache[c]
- if not cc then
- local t = { }
- for s in c:gmatch("[^ ]+") do
- t[unicodes[s]] = true
- end
- cache[c] = t
- result[#result+1] = t
- else
- result[#result+1] = cc
- end
- end
- end
- local lookupdata = otfdata.lookups[lookupname]
- if not lookupdata then
- logs.error("otf process", string.format("missing lookupdata table %s",lookupname))
- elseif lookupdata.rules then
- local rules = lookupdata.rules
- local center_match = fonts.otf.center_match
- for nofrules=1,#rules do
- local rule = rules[nofrules]
- local coverage = rule.coverage
- if coverage and coverage.current then
- local current, before, after, sequence = coverage.current, coverage.before, coverage.after, { }
- if before then
- uncover(before,sequence)
- end
- local start = #sequence + 1
- uncover(current,sequence)
- local stop = #sequence
- if after then
- uncover(after,sequence)
- end
- if sequence[1] then
- local lookups, lookuptype = rule.lookups, 'self'
- -- for the moment only lookup index 1
- if lookups then
- if #lookups > 1 then
- logs.report("otf process","WARNING: more than one lookup in rule")
- end
- lookuptype = types[lookups[1]]
- end
- -- this may be wrong; we cannot copy inside the for loop (out of memory with hz);
- -- so we may end up with a different usage of sequence in the chainproc handlers
- sequence = table.copy(sequence)
- -- we trigger on the first character in current
- for unic, _ in pairs(sequence[start]) do
- local t = contexts[unic]
- if not t then
- contexts[unic] = { lookups={}, flags=flags[lookupname] }
- t = contexts[unic].lookups
- end
- t[#t+1] = { nofrules, lookuptype, sequence, start, stop, lookups }
- end
- end
- end
- end
- end
- end
- return contexts
- end
-
- fonts.otf.features.prepare.gsub_context = fonts.otf.features.prepare.contextchain
- fonts.otf.features.prepare.gsub_contextchain = fonts.otf.features.prepare.contextchain
- fonts.otf.features.prepare.gsub_reversecontextchain = fonts.otf.features.prepare.contextchain
-
- -- ruled->lookup=ks_latn_l_27_c_4 => internal[ls_l_84] => valid[ls_l_84_s]
-
- -- gpos_mark2base -> done
- -- gpos_mark2ligature -> done
- -- gpos_mark2mark -> done
- -- gpos_single -> not done
- -- gpos_pair -> not done
- -- gpos_cursive -> not done
- -- gpos_context -> not done
- -- gpos_reversecontextchain -> not done
-
- function fonts.otf.features.prepare.anchors(tfmdata,kind,lookupname) -- tracing
- local featuredata = tfmdata.shared.featuredata[kind]
- local anchors = featuredata[lookupname]
- if not anchors then
- anchors = { }
- featuredata[lookupname] = anchors
- local otfdata = tfmdata.shared.otfdata
- local unicodes = otfdata.luatex.unicodes
- local validanchors = { }
- local glyphs = otfdata.glyphs
- local trace = fonts.otf.trace_features
- if otfdata.anchor_classes then
- local classes = otfdata.anchor_classes
- for k=1,#classes do
- local class = classes[k]
- if class.lookup == lookupname then
- if trace then
- logs.report("define otf",string.format("%s:%s anchor -> %s",kind,lookupname,class.name))
- end
- validanchors[class.name] = true
- end
- end
- end
- for _,o in pairs(glyphs) do
- local oanchor = o.anchors
- if oanchor then
- local t, ok = { }, false
- for type, anchors in pairs(oanchor) do -- types
- local tt = false
- for name, anchor in pairs(anchors) do
- if validanchors[name] then
- if not tt then
- tt = { [name] = anchor }
- t[type] = tt
- ok = true
- else
- tt[name] = anchor
- end
- end
- end
- end
- if ok then
- anchors[o.unicode] = t
- end
- end
- end
- end
---~ if kind == "mkmk" then print(lookupname,table.serialize(anchors)) end
- return anchors
- end
-
- fonts.otf.features.prepare.gpos_mark2base = fonts.otf.features.prepare.anchors
- fonts.otf.features.prepare.gpos_mark2ligature = fonts.otf.features.prepare.anchors
- fonts.otf.features.prepare.gpos_mark2mark = fonts.otf.features.prepare.anchors
- fonts.otf.features.prepare.gpos_cursive = fonts.otf.features.prepare.anchors
- fonts.otf.features.prepare.gpos_context = fonts.otf.features.prepare.contextchain
- fonts.otf.features.prepare.gpos_contextchain = fonts.otf.features.prepare.contextchain
-
- function fonts.otf.features.prepare.gpos_single(tfmdata,kind,lookupname)
- logs.report("otf define","gpos_single not yet supported")
- end
-
- -- ["kerns"]={ { ["char"]="ytilde", ["lookup"]="pp_l_1_s", ["off"]=-83, ...
- -- ["mykerns"] = { ["pp_l_1_s"] = { [67] = -28, ...
-
- function fonts.otf.features.prepare.gpos_pair(tfmdata,kind,lookupname)
- local featuredata = tfmdata.shared.featuredata[kind]
- local kerns = featuredata[lookupname]
- if not kerns then
- local trace = fonts.otf.trace_features
- featuredata[lookupname] = { }
- kerns = featuredata[lookupname]
- local otfdata = tfmdata.shared.otfdata
- local unicodes = otfdata.luatex.unicodes
- local glyphs = otfdata.glyphs
- -- ff has isolated kerns in a separate table
- for k,o in pairs(glyphs) do
- local list = o.mykerns
- if list then
- local omk = list[lookupname]
- if omk then
- local one = o.unicode
- for char, off in pairs(omk) do
- local two = char
- local krn = kerns[one]
- if krn then
- krn[two] = off
- else
- kerns[one] = { two = off }
- end
- if trace then
- logs.report("define otf",string.format("feature %s kern pair %s - %s",kind,one,two))
- end
- end
- end
- elseif o.kerns then
- local one = o.unicode
- local okerns = o.kerns
- for ok=1,#okerns do
- local k = okerns[ok]
- if k.lookup == lookupname then
- local char = k.char
- if char then
- local two = unicodes[char]
- local krn = kerns[one]
- if krn then
- krn[two] = k.off
- else
- kerns[one] = { two = k.off }
- end
- if trace then
- logs.report("define otf",string.format("feature %s kern pair %s - %s",kind,one,two))
- end
- end
- end
- end
- end
- list = o.lookups
- if list then
- local one = o.unicode
- for lookup,ps in pairs(list) do
- if lookup == lookupname then
- for i=1,#ps do
- local p = ps[i]
- if p[1] == 'pair' then
- local two = unicodes[p[2]]
- local krn = kerns[one]
- if krn then
- krn[two] = p
- else
- kerns[one] = { two = p }
- end
- if trace then
- logs.report("define otf",string.format("feature %s kern pair %s - %s",kind,one,two))
- end
- end
- end
- end
- end
- end
- end
- end
- return kerns
- end
-
- fonts.otf.features.prepare.gpos_contextchain = fonts.otf.features.prepare.contextchain
-
-end
-
--- can be generalized: one loop in main
-
-do
-
- local prepare = fonts.otf.features.prepare.feature
-
- function fonts.initializers.node.otf.aalt(tfm,value) return prepare(tfm,'aalt',value) end
- function fonts.initializers.node.otf.abvm(tfm,value) return prepare(tfm,'abvm',value) end
- function fonts.initializers.node.otf.afrc(tfm,value) return prepare(tfm,'afrc',value) end
- function fonts.initializers.node.otf.akhn(tfm,value) return prepare(tfm,'akhn',value) end
- function fonts.initializers.node.otf.blwm(tfm,value) return prepare(tfm,'blwm',value) end
- function fonts.initializers.node.otf.c2pc(tfm,value) return prepare(tfm,'c2pc',value) end
- function fonts.initializers.node.otf.c2sc(tfm,value) return prepare(tfm,'c2sc',value) end
- function fonts.initializers.node.otf.calt(tfm,value) return prepare(tfm,'calt',value) end
- function fonts.initializers.node.otf.case(tfm,value) return prepare(tfm,'case',value) end
- function fonts.initializers.node.otf.ccmp(tfm,value) return prepare(tfm,'ccmp',value) end
- function fonts.initializers.node.otf.clig(tfm,value) return prepare(tfm,'clig',value) end
- function fonts.initializers.node.otf.cpsp(tfm,value) return prepare(tfm,'cpsp',value) end
- function fonts.initializers.node.otf.cswh(tfm,value) return prepare(tfm,'cswh',value) end
- function fonts.initializers.node.otf.curs(tfm,value) return prepare(tfm,'curs',value) end
- function fonts.initializers.node.otf.dlig(tfm,value) return prepare(tfm,'dlig',value) end
- function fonts.initializers.node.otf.dnom(tfm,value) return prepare(tfm,'dnom',value) end
- function fonts.initializers.node.otf.expt(tfm,value) return prepare(tfm,'expt',value) end
- function fonts.initializers.node.otf.fin2(tfm,value) return prepare(tfm,'fin2',value) end
- function fonts.initializers.node.otf.fin3(tfm,value) return prepare(tfm,'fin3',value) end
- function fonts.initializers.node.otf.fina(tfm,value) return prepare(tfm,'fina',value) end
- function fonts.initializers.node.otf.frac(tfm,value) return prepare(tfm,'frac',value) end
- function fonts.initializers.node.otf.fwid(tfm,value) return prepare(tfm,'fwid',value) end
- function fonts.initializers.node.otf.haln(tfm,value) return prepare(tfm,'haln',value) end
- function fonts.initializers.node.otf.hist(tfm,value) return prepare(tfm,'hist',value) end
- function fonts.initializers.node.otf.hkna(tfm,value) return prepare(tfm,'hkna',value) end
- function fonts.initializers.node.otf.hlig(tfm,value) return prepare(tfm,'hlig',value) end
- function fonts.initializers.node.otf.hngl(tfm,value) return prepare(tfm,'hngl',value) end
- function fonts.initializers.node.otf.hwid(tfm,value) return prepare(tfm,'hwid',value) end
- function fonts.initializers.node.otf.init(tfm,value) return prepare(tfm,'init',value) end
- function fonts.initializers.node.otf.isol(tfm,value) return prepare(tfm,'isol',value) end
- function fonts.initializers.node.otf.ital(tfm,value) return prepare(tfm,'ital',value) end
- function fonts.initializers.node.otf.jp78(tfm,value) return prepare(tfm,'jp78',value) end
- function fonts.initializers.node.otf.jp83(tfm,value) return prepare(tfm,'jp83',value) end
- function fonts.initializers.node.otf.jp90(tfm,value) return prepare(tfm,'jp90',value) end
- function fonts.initializers.node.otf.kern(tfm,value) return prepare(tfm,'kern',value) end
- function fonts.initializers.node.otf.liga(tfm,value) return prepare(tfm,'liga',value) end
- function fonts.initializers.node.otf.lnum(tfm,value) return prepare(tfm,'lnum',value) end
- function fonts.initializers.node.otf.locl(tfm,value) return prepare(tfm,'locl',value) end
- function fonts.initializers.node.otf.mark(tfm,value) return prepare(tfm,'mark',value) end
- function fonts.initializers.node.otf.med2(tfm,value) return prepare(tfm,'med2',value) end
- function fonts.initializers.node.otf.medi(tfm,value) return prepare(tfm,'medi',value) end
- function fonts.initializers.node.otf.mgrk(tfm,value) return prepare(tfm,'mgrk',value) end
- function fonts.initializers.node.otf.mkmk(tfm,value) return prepare(tfm,'mkmk',value) end
- function fonts.initializers.node.otf.nalt(tfm,value) return prepare(tfm,'nalt',value) end
- function fonts.initializers.node.otf.nlck(tfm,value) return prepare(tfm,'nlck',value) end
- function fonts.initializers.node.otf.nukt(tfm,value) return prepare(tfm,'nukt',value) end
- function fonts.initializers.node.otf.numr(tfm,value) return prepare(tfm,'numr',value) end
- function fonts.initializers.node.otf.onum(tfm,value) return prepare(tfm,'onum',value) end
- function fonts.initializers.node.otf.ordn(tfm,value) return prepare(tfm,'ordn',value) end
- function fonts.initializers.node.otf.ornm(tfm,value) return prepare(tfm,'ornm',value) end
- function fonts.initializers.node.otf.pnum(tfm,value) return prepare(tfm,'pnum',value) end
- function fonts.initializers.node.otf.pref(tfm,value) return prepare(tfm,'pref',value) end
- function fonts.initializers.node.otf.pres(tfm,value) return prepare(tfm,'pres',value) end
- function fonts.initializers.node.otf.pstf(tfm,value) return prepare(tfm,'pstf',value) end
- function fonts.initializers.node.otf.rlig(tfm,value) return prepare(tfm,'rlig',value) end
- function fonts.initializers.node.otf.rphf(tfm,value) return prepare(tfm,'rphf',value) end
- function fonts.initializers.node.otf.salt(tfm,value) return prepare(tfm,'salt',value) end
- function fonts.initializers.node.otf.sinf(tfm,value) return prepare(tfm,'sinf',value) end
- function fonts.initializers.node.otf.smcp(tfm,value) return prepare(tfm,'smcp',value) end
- function fonts.initializers.node.otf.smpl(tfm,value) return prepare(tfm,'smpl',value) end
- function fonts.initializers.node.otf.ss01(tfm,value) return prepare(tfm,'ss01',value) end
- function fonts.initializers.node.otf.ss02(tfm,value) return prepare(tfm,'ss02',value) end
- function fonts.initializers.node.otf.ss03(tfm,value) return prepare(tfm,'ss03',value) end
- function fonts.initializers.node.otf.ss04(tfm,value) return prepare(tfm,'ss04',value) end
- function fonts.initializers.node.otf.ss05(tfm,value) return prepare(tfm,'ss05',value) end
- function fonts.initializers.node.otf.ss06(tfm,value) return prepare(tfm,'ss06',value) end
- function fonts.initializers.node.otf.ss07(tfm,value) return prepare(tfm,'ss07',value) end
- function fonts.initializers.node.otf.ss08(tfm,value) return prepare(tfm,'ss08',value) end
- function fonts.initializers.node.otf.ss09(tfm,value) return prepare(tfm,'ss09',value) end
- function fonts.initializers.node.otf.subs(tfm,value) return prepare(tfm,'subs',value) end
- function fonts.initializers.node.otf.sups(tfm,value) return prepare(tfm,'sups',value) end
- function fonts.initializers.node.otf.swsh(tfm,value) return prepare(tfm,'swsh',value) end
- function fonts.initializers.node.otf.titl(tfm,value) return prepare(tfm,'titl',value) end
- function fonts.initializers.node.otf.tnam(tfm,value) return prepare(tfm,'tnam',value) end
- function fonts.initializers.node.otf.tnum(tfm,value) return prepare(tfm,'tnum',value) end
- function fonts.initializers.node.otf.trad(tfm,value) return prepare(tfm,'trad',value) end
- function fonts.initializers.node.otf.unic(tfm,value) return prepare(tfm,'unic',value) end
- function fonts.initializers.node.otf.zero(tfm,value) return prepare(tfm,'zero',value) end
-
-end
-
-do
-
- -- todo: use nodes helpers
-
- local glyph = node.id('glyph')
- local glue = node.id('glue')
- local kern = node.id('kern')
- local disc = node.id('disc')
-
- local fontdata = fonts.tfm.id
- local has_attribute = node.has_attribute
- local set_attribute = node.set_attribute
- local state = attributes.numbers['state'] or 100
- local marknumber = attributes.numbers['mark'] or 200
- local format = string.format
- local report = logs.report
- local scale = tex.scale
-
- fonts.otf.features.process = { }
-
- -- we share some vars here, after all, we have no nested lookups and
- -- less code
-
- local tfmdata = false
- local otfdata = false
- local characters = false
- local marks = false
- local glyphs = false
- local currentfont = false
-
- -- we cheat a bit and assume that a font,attr combination are kind of ranged
-
- local context_setups = fonts.define.specify.context_setups
- local context_numbers = fonts.define.specify.context_numbers
-
- -- 1 loop over glyphs loop over lookups, quit at match
- -- 2 loop over glyphs loop over lookups, continue at match
- -- 3 loop over lookups loop over glyphs
-
- fonts.otf.strategy = 2
-
- function fonts.otf.features.process.feature(head,font,attr,kind,attribute)
- tfmdata = fontdata[font]
- local shared = tfmdata.shared
- otfdata = shared.otfdata
- characters = tfmdata.characters
- marks = otfdata.luatex.marks
- glyphs = otfdata.glyphs
- currentfont = font
- local script, language, strategy
- if attr and attr > 0 then
- local features = context_setups[context_numbers[attr]]
- language, script, strategy = features.language or "dflt", features.script or "dflt", features.strategy or fonts.otf.strategy
- else
- language, script, strategy = tfmdata.language or "dflt", tfmdata.script or "dflt", tfmdata.strategy or fonts.otf.strategy
- end
- local fullkind = kind .. script .. language
- local lookuptable = shared.lookuptable[fullkind]
- if lookuptable then
- -- local strategy = fonts.otf.strategy
- local types = otfdata.luatex.name_to_type
- local start, done, ok = head, false, false
- local processes = shared.processes[fullkind]
- if #processes == 1 then
- local p = processes[1]
- while start do -- evt splitsen
- if start.id == glyph then
- if start.subtype<256 and start.font == font and
- (not attr or has_attribute(start,0,attr)) and -- dynamic feature
- (not attribute or has_attribute(start,state,attribute)) then
- -- we can make the p vars also global to this closure
- local pp = p[3] -- all lookups
- local pc = pp[start.char]
- if pc then
- start, ok = p[1](start,kind,p[2],pc,pp,p[4])
- done = done or ok
- if start then start = start.next end
- else
- start = start.next
- end
- else
- start = start.next
- end
- elseif start.id == glue and p[5] then
- local pp = p[3] -- all lookups
- local pc = pp[32] -- space
- if pc then
- start, ok = p[1](start,kind,p[2],pc,pp,p[4])
- done = done or ok
- if start then start = start.next end
- else
- start = start.next
- end
- else
- start = start.next
- end
- end
- elseif strategy == 3 then
- for i=1,#processes do local p = processes[i]
- local pp = p[3]
- start = head
- while start do
- if start.id == glyph then
- if start.subtype<256 and start.font == font and
- (not attr or has_attribute(start,0,attr)) and -- dynamic feature
- (not attribute or has_attribute(start,state,attribute)) then
- local pc = pp[start.char]
- if pc then
- start, ok = p[1](start,kind,p[2],pc,pp,p[4])
- if ok then
- done = true
- end -- else
- if start then start = start.next end
- else
- start = start.next
- end
- else
- start = start.next
- end
- elseif start.id == glue then
- if p[5] then -- chain
- local pc = pp[32]
- if pc then
- start, ok = p[1](start,kind,p[2],pc,p[3],p[4])
- if ok then
- done = true
- end
- if start then start = start.next end
- else
- start = start.next
- end
- else
- start = start.next
- end
- else
- start = start.next
- end
- end
- end
- else
- while start do
- if start.id == glyph then
- if start.subtype<256 and start.font == font and
- (not attr or has_attribute(start,0,attr)) and -- dynamic feature
- (not attribute or has_attribute(start,state,attribute)) then
- local chr = start.char -- used ?
- for i=1,#processes do local p = processes[i]
- local pp = p[3]
---~ local pc = pp[chr]
- local pc = pp[start.char]
- if pc then
- start, ok = p[1](start,kind,p[2],pc,pp,p[4])
- if ok then
- done = true
- if strategy == 1 then
- break
- end
- end -- else
- if not start then
- break
- end
- end
- end
- if start then start = start.next end
- elseif start.id == glue then
- for i=1,#processes do local p = processes[i]
- if p[5] then -- chain
- local pp = p[3]
- local pc = pp[32]
- if pc then
- start, ok = p[1](start,kind,p[2],pc,pp,p[4])
- if ok then
- done = true
- if strategy == 1 then
- break
- end
- end
- if not start then
- break
- end
- end
- end
- end
- if start then start = start.next end
- else
- start = start.next
- end
- else
- start = start.next
- end
- end
- end
- return head, done
- else
- return head, false
- end
- end
-
- -- we can assume that languages that use marks are not hyphenated
- -- we can also assume that at most one discretionary is present
-
- local function toligature(start,stop,char,markflag,discfound) -- brr head
- if start ~= stop then
- if discfound then
- local lignode = node.copy(start)
- lignode.font = start.font
- lignode.char = char
- lignode.subtype = 2
- start = node.do_ligature_n(start, stop, lignode)
- if start.id == disc then
- local prev = start.prev
- start = start.next
- end
- else
- local deletemarks = markflag ~= "mark"
- start.components = node.copy_list(start,stop)
- node.slide(start.components)
- -- todo: components
- start.subtype = 2
- start.char = char
- local marknum = 1
- local next = start.next
- while true do
- if marks[next.char] then
- if not deletemarks then
- set_attribute(next,marknumber,marknum)
- end
- else
- marknum = marknum + 1
- end
- if next == stop then
- break
- else
- next = next.next
- end
- end
- next = stop.next
- while next do
- if next.id == glyph and next.font == currentfont and marks[next.char] then
- set_attribute(next,marknumber,marknum)
- next = next.next
- else
- break
- end
- end
- local next = start.next
- while next do
- if next == stop or deletemarks or marks[next.char] then
- local crap = next
- local np, nn = next.prev, next.next
- np.next = nn
- if nn then
- nn.prev = np
- end
- if next == stop then
- stop = crap.prev
- node.free(crap)
- break
- else
- next = nn
- node.free(crap)
- end
- else
- next = nn
- end
- end
- end
- end
- return start
- end
-
- function fonts.otf.features.process.gsub_single(start,kind,lookupname,replacements)
- if replacements then
- if fonts.otf.trace_replacements then
- report("otf process",format("%s:%s replacing 0x%04X by 0x%04X",kind,lookupname,start.char,replacements))
- end
- start.char = replacements
- return start, true
- else
- return start, false
- end
- end
-
- function fonts.otf.features.process.gsub_alternate(start,kind,lookupname,alternatives)
- if alternatives then
- if fonts.otf.trace_replacements then
- report("otf process",format("%s:%s alternative 0x%04X => %s",kind,lookupname,start.char,table.hexed(alternatives)))
- end
- start.char = alternatives[1] -- will be preference
- return start, true
- else
- return start, false
- end
- end
-
- function fonts.otf.features.process.gsub_multiple(start,kind,lookupname,multiples)
- if multiples then
- if fonts.otf.trace_replacements then
- report("otf process",format("%s:%s multiple 0x%04X => %s",kind,lookupname,start.char,table.hexed(multiples)))
- end
- start.char = multiples[1]
- if #multiples > 1 then
- for k=2,#multiples do
- local n = node.copy(start)
- local sn = start.next
- n.char = multiples[k]
- n.next = sn
- n.prev = start
- if sn then
- sn.prev = n
- end
- start.next = n
- start = n
- end
- end
- return start, true
- else
- return start, false
- end
- end
-
- function fonts.otf.features.process.gsub_ligature(start,kind,lookupname,ligatures,alldata,flags)
- local s, stop, discfound = start.next, nil, false
- while s do
- local id = s.id
- if id == glyph and s.subtype<256 then
- if s.font == currentfont then
- if marks[s.char] then
- s = s.next
- else
- local lg = ligatures[1][s.char]
- if not lg then
- break
- else
- stop = s
- ligatures = lg
- s = s.next
- end
- end
- else
- break
- end
- elseif id == disc then
- discfound = true
- s = s.next
- else
- break
- end
- end
- if stop and ligatures[2] then
- start = toligature(start,stop,ligatures[2],flags[1],discfound)
- if fonts.otf.trace_ligatures then
- report("otf process",format("%s: inserting ligature 0x%04X (%s)",kind,start.char,utf.char(start.char)))
- end
- return start, true
- end
- return start, false
- end
-
- function fonts.otf.features.process.gpos_mark2base(start,kind,lookupname,m_anchors,b_anchors)
- local markchar = start.char
- if marks[markchar] then
- local markanchors = m_anchors['mark']
- if markanchors then
- local component = start.prev
- while component and component.id == glyph and component.subtype<256 and component.font == currentfont do
- local basechar = component.char
- if marks[basechar] then
- component = component.prev
- else
- local baseanchors = b_anchors[basechar]
- if baseanchors then
- baseanchors = baseanchors['basechar']
- if baseanchors then
- for anchor, ma in pairs(markanchors) do
- local ba = baseanchors[anchor]
- if ba then
- local factor = tfmdata.factor
- local dx, dy = scale(ba[1]-ma[1],factor), scale(ba[2]-ma[2],factor)
- start.xoffset, start.yoffset = component.xoffset - dx, component.yoffset + dy
- if fonts.otf.trace_anchors then
- report("otf process",format("%s: anchoring mark 0x%04X to basechar 0x%04X => (%s,%s) => (%s,%s)",
- kind,markchar,basechar,dx,dy,start.xoffset,start.yoffset))
- end
- return start, true
- end
- end
- end
- end
- break
- end
- end
- end
- end
- return start, false
- end
-
- function fonts.otf.features.process.gpos_mark2ligature(start,kind,lookupname,m_anchors,b_anchors) -- maybe use copies
- local markchar = start.char
- if marks[markchar] then
- local markanchors = m_anchors['mark']
- if markanchors then
- local component = start.prev
- while component and component.id == glyph and component.subtype<256 and component.font == currentfont do
- local basechar = component.char
- if marks[basechar] then
- component = component.prev
- else
- local baseanchors = b_anchors[basechar]
- if baseanchors then
- baseanchors = baseanchors['baselig']
- if baseanchors then
- for anchor, ma in pairs(markanchors) do
- local ba = baseanchors[anchor]
- if ba then
- local n = has_attribute(start,marknumber)
- ba = ba[n]
- if ba then
- local factor = tfmdata.factor
- local dx, dy = scale(ba[1]-ma[1],factor), scale(ba[2]-ma[2],factor)
- start.xoffset, start.yoffset = component.xoffset - dx, component.yoffset + dy
- if fonts.otf.trace_anchors then
- report("otf process",format("%s: anchoring mark 0x%04X to baseligature 0x%04X => (%s,%s) => (%s,%s)",
- kind,markchar,basechar,dx,dy,component.xoffset,component.yoffset))
- end
- return start, true
- end
- end
- end
- end
- end
- break
- end
- end
- return start, done
- end
- end
- return start, false
- end
-
- function fonts.otf.features.process.gpos_mark2mark(start,kind,lookupname,b_anchors,m_anchors)
- local basemarkchar = start.char
---~ print(lookupname)
- if marks[basemarkchar] then
---~ print('')
---~ print('basemarkchar',basemarkchar)
---~ print('basemarkanchors', table.serialize(b_anchors))
- local baseanchors = b_anchors['basemark']
- if baseanchors then
- local component = start.next
- while component and component.id == glyph and component.subtype<256 and component.font == currentfont do
- local markchar = component.char
- if not marks[markchar] then
- break
- else
---~ print('markchar',markchar)
- local basemarkattr = has_attribute(start, marknumber) or 1
- local markattr = has_attribute(component,marknumber) or 1
---~ print(basemarkattr,markattr)
- if basemarkattr == markattr then -- still needed?
---~ print('markanchors *', table.serialize(m_anchors))
-
- local markanchors = m_anchors[markchar]
- if markanchors then
---~ print('markanchors')
- local markanchor = markanchors['mark']
- if markanchor then
- for anchor,ma in pairs(markanchor) do
- local ba = baseanchors[anchor]
- if ba then
- local factor = tfmdata.factor
- local dx, dy = scale(ba[1]-ma[1],factor), scale(ba[2]-ma[2],factor)
- component.xoffset, component.yoffset = start.xoffset - dx, start.yoffset + dy
- if fonts.otf.trace_anchors then
- report("otf process",format("%s:%s:%s anchoring mark 0x%04X to basemark 0x%04X => (%s,%s) => (%s,%s)",
- kind,anchor,markattr,markchar,basemarkchar,dx,dy,component.xoffset,component.yoffset))
- end
- return start, true
- end
- end
- end
- end
- component = component.next
- end
- end
- end
- end
- end
- return start, false
- end
-
- -- the following can be optimized, also, we can share the table (no need to collect)
-
- function fonts.otf.features.process.gpos_cursive(start,kind,lookupname,exitanchors,anchors)
- local trace = fonts.otf.trace_anchors
- local next, done, x, y, total_x, total_y, tx, ty, first = start.next, false, 0, 0, 0, 0, { }, { }, nil
- local factor = tfmdata.factor
- local function finish()
- local i = 0
- while first and first.id == glyph do
- if marks[first.char] then
- first = first.next
- else
- i = i + 1
- first.yoffset = scale(total_y, factor)
- if fonts.otf.trace_cursive then
- report("otf process",format("%s:%s move 0x%04X cursive (%s,%s)",kind,lookupname,first.char,"?",total_y))
- end
- if first == next then
- break
- else
- total_y = total_y - (ty[i] or 0)
- first = first.next
- end
- end
- end
- x, y, total_x, total_y, tx, ty, first = 0, 0, 0, 0, { }, { }, nil
- end
- while next do
- if next.id == glyph and next.subtype<256 and next.font == currentfont then
- local nextchar = next.char
- if marks[nextchar] then
- next = next.next
- else
- local entryanchors, exitanchors = anchors[nextchar], anchors[start.char]
- if entryanchors and exitanchors then
- local centry, cexit = entryanchors['centry'], exitanchors['cexit']
- if centry and cexit then
- for anchor, entry in pairs(centry) do
- local exit = cexit[anchor]
- if exit then
- if not first then first = start end
- local dx, dy = exit[1] + entry[1], -exit[2] + entry[2]
- tx[#tx+1], ty[#ty+1] = dx, dy
- total_x, total_y = total_x + dx, total_y + dy
- done = true
- break
- end
- end
- else
- finish()
- end
- else
- finish()
- end
- start = next
- next = start.next
- end
- else
- finish()
- break
- end
- end
- return start, done
- end
-
- function fonts.otf.features.process.gpos_single(start,kind,lookupname,basekerns,kerns)
- report("otf process","gpos_single not yet supported")
- return start, false
- end
-
- function fonts.otf.features.process.gpos_pair(start,kind,lookupname,basekerns,kerns)
- local next, prev, done = start.next, start, false
- -- to be optimized
- local trace = fonts.otf.trace_kerns
- local factor = tfmdata.factor
- while next and next.id == glyph and next.subtype<256 and next.font == currentfont do
- local cn = characters[next.char]
- if not cn or cn.description.class == 'mark' then
- prev = next
- next = next.next
- else
- local krn = basekerns[next.char]
- if not krn then
- -- skip
- elseif type(krn) == "table" then
- local a, b = krn[3], krn[7]
- if a and a ~= 0 then
- local k = nodes.kern(scale(a,factor))
- k.next = next
- k.prev = prev
- prev.next = k
- next.prev = k
- if trace then
- -- todo
- end
- end
- if b and b ~= 0 then
- report("otf process","we need to do something with the second kern xoff " .. b)
- end
- else
- -- todo, just start, next = node.insert_before(head,next,nodes.kern(scale(kern,factor)))
- if fonts.otf.trace_kerns then
- report("otf process",format("%s: inserting kern %s between 0x%04X and 0x%04X",kind,krn,prev.char,next.char))
- end
- local k = nodes.kern(scale(krn,factor))
- k.next = next
- k.prev = prev
- prev.next = k
- next.prev = k
- end
- break
- end
- end
- return start, done
- end
-
- local chainprocs = { } -- we can probably optimize this because they're all internal lookups
-
- -- For the moment we save each looked up glyph in the sequence, which is ok because
- -- each lookup in the chain has its own sequence. This saves memory. Only ligatures
- -- are stored in the featurecache, because we don't want to loop over all characters
- -- in order to locate them.
-
- function chainprocs.gsub_single(start,stop,kind,lookupname,sequence,f,l,lookups)
- local trace = fonts.otf.trace_replacements
- local c, r = trace and { }, trace and { }
- local lookup, index, current = 1, f, start
- while current ~= nil do
- if current.id == glyph then -- test for more ?
- local char = current.char
- local cacheslot = sequence[index]
- local replacement = cacheslot[char]
- if replacement == true then
- if lookups then
- local looks = glyphs[tfmdata.characters[char].description.index].lookups -- SLOW, USE OTFDATA
- if looks then
- local glyphlookups = otfdata.luatex.internals[lookups[lookup]].lookups
- local unicodes = otfdata.luatex.unicodes
- for gl=1,#glyphlookups do
- local lv = looks[glyphlookups[gl]]
- if lv then
- replacement = unicodes[lv[1][2]] or char
- cacheslot[char] = replacement
- break
- end
- end
- else
- replacement, cacheslot[char] = char, char
- end
- else
- replacement, cacheslot[char] = char, char
- end
- end
- if trace then
- c[#c+1], r[#r+1] = char, replacement
- end
- current.char = replacement
- if current == stop then
- break
- else
- current, lookup, index = current.next, lookup + 1, index + 1
- end
- elseif current == stop then
- break
- else
- current = current.next
- end
- end
- if trace then
- report("otf chain",format("%s: single replacement %s by %s",kind,table.hexed(c),table.hexed(r)))
- end
- return start
- end
-
- function chainprocs.gsub_multiple(start,stop,kind,lookupname,sequence,f,l,lookups)
- local char = start.char
- local cacheslot = sequence[f] -- [1]
- local replacement = cacheslot[char]
- if replacement == true then
- if lookups then
- local looks = glyphs[tfmdata.characters[char].description.index].lookups
- if looks then
- local lookups = otfdata.luatex.internals[lookups[1]].lookups
- local unicodes = otfdata.luatex.unicodes
- for l=1,#lookups do
- local lv = looks[lookups[l]]
- if lv then
- replacement = { }
- for c in lv[1][2]:gmatch("[^ ]+") do
- replacement[#replacement+1] = unicodes[c]
- end
- cacheslot[char] = replacement
- break
- end
- end
- else
- replacement = { char }
- cacheslot[char] = replacement
- end
- else
- replacement = { char }
- cacheslot[char] = replacement
- end
- end
- if fonts.otf.trace_replacements then
- report("otf chain",format("%s: replacing character 0x%04X by multiple 0x%04X",kind,char,table.hexed(replacement)))
- end
- start.char = replacement[1]
- if #replacement > 1 then
- for k=2,#replacement do
- local n = node.copy(start)
- local sn = start.next
- n.char = replacement[k]
- n.next = sn
- n.prev = start
- if sn then
- sn.prev = n
- end
- start.next = n
- start = n
- end
- end
- return start
- end
-
- function chainprocs.gsub_alternate(start,stop,kind,lookupname,sequence,f,l,lookups)
- local char = start.char
- local cacheslot = sequence[f] -- [1]
- local replacement = cacheslot[char]
- if replacement == true then
- if lookups then
- local looks = glyphs[tfmdata.characters[char].description.index].lookups
- if looks then
- local lookups = otfdata.luatex.internals[lookups[1]].lookups
- local unicodes = otfdata.luatex.unicodes
- for l=1,#lookups do
- local lv = looks[lookups[l]]
- if lv then
- replacement = { }
- for c in lv[1][2]:gmatch("[^ ]+") do
- replacement[#replacement+1] = unicodes[c]
- end
- cacheslot[char] = replacement
- break
- end
- end
- else
- replacement = { char }
- cacheslot[char] = replacement
- end
- else
- replacement = { char }
- cacheslot[char] = replacement
- end
- end
- if fonts.otf.trace_replacements then
- report("otf chain",format("%s: replacing character 0x%04X by alternate",kind,char))
- end
- start.char = replacement[1]
- return start
- end
-
- function chainprocs.gsub_ligature(start,stop,kind,lookupname,sequence,f,l,lookups,flags)
- if lookups then
- local featurecache = fontdata[currentfont].shared.featurecache
- if not featurecache[kind] then
- featurecache[kind] = fonts.otf.features.collect_ligatures(tfmdata,kind) -- double cached ?
- end
- local lookups = otfdata.luatex.internals[lookups[1]].lookups
- local ligaturecache = featurecache[kind]
- local trace = fonts.otf.trace_ligatures
- for i=1,#lookups do
- local ligatures = ligaturecache[lookups[i]]
- if ligatures and ligatures[start.char] then
- ligatures = ligatures[start.char]
- local s, discfound = start.next, false
- while s do
- local id = s.id
- if id == disc then
- s = s.next
- discfound = true
- elseif characters[s.char].description.class == 'mark' then -- marks
- s = s.next
- else
- local lg = ligatures[1][s.char]
- if not lg then
- break
- else
- ligatures = lg
- if s == stop then
- break
- else
- s = s.next
- end
- end
- end
- end
- if ligatures[2] then
- if trace then
- if start == stop then
- report("otf chain",format("%s: replacing character 0x%04X by ligature 0x%04X",kind,start.char,ligatures[2]))
- else
- report("otf chain",format("%s: replacing character 0x%04X upto 0x%04X by ligature 0x%04X",kind,start.char,stop.char,ligatures[2]))
- end
- end
- return toligature(start,stop,ligatures[2],flags[1],discfound)
- end
- break
- end
- end
- end
- return stop
- end
-
- -- weird, mkmk can have a mark2base, in idris font
-
- function chainprocs.gpos_mark2base(start,stop,kind,lookupname,sequence,f,l,lookups,flags)
- -- dynamic resolver
- local markchar = start.char
- if marks[markchar] then
- local anchortag = sequence[f][markchar]
- if anchortag == true then
- local ok = false
- local classes = otfdata.anchor_classes
- local lookups = otfdata.luatex.internals[lookups[1]].lookups
- for k=1,#classes do
- local v = classes[k]
- if v.lookup == lookups[1] then -- let's gamble for uniqueness: and v.type == kind then
- anchortag = v.name
- sequence[f][markchar] = anchortag
- ok = true
- break
- end
- end
- if not ok and fonts.otf.trace_anchors then
- report("otf chain",format("%s: no matching mark2base anchor class for 0x%04X, lookup %s",kind,markchar,lookups[1]))
- end
- end
- if anchortag ~= true then
- local component = start.prev
- while component and component.id == glyph and component.subtype<256 and component.font == currentfont do
- local basechar = component.char
- if marks[basechar] then
- component = component.prev
- else
- local bglyph = glyphs[characters[basechar].description.index] -- startchar
- local baseanchors = bglyph.anchors['basechar']
- if baseanchors then
- local ba = baseanchors[anchortag]
- if ba then
- local mglyph = glyphs[characters[markchar].description.index]
- local markanchors = mglyph.anchors['mark']
- if markanchors then
- local ma = markanchors[anchortag]
- if ma then
- local factor = tfmdata.factor
- local dx, dy = scale(ba[1]-ma[1],factor), scale(ba[2]-ma[2],factor)
- start.xoffset, start.yoffset = component.xoffset - dx, component.yoffset + dy
- if fonts.otf.trace_anchors then
- report("otf chain",format("%s: anchoring mark 0x%04X to basechar 0x%04X => (%s,%s) => (%s,%s)",
- kind,markchar,basechar,dx,dy,start.xoffset,start.yoffset))
- end
- return start, true
- end
- end
- end
- end
- break
- end
- end
- end
- end
- return start, false
- end
-
- function chainprocs.gpos_mark2ligature(start,stop,kind,lookupname,sequence,f,l,lookups,flags)
- -- dynamic resolver
- local markchar = start.char
- if marks[markchar] then
- local anchortag = sequence[f][markchar]
- if anchortag == true then
- local classes = otfdata.anchor_classes
- local lookups = otfdata.luatex.internals[lookups[1]].lookups
- local ok = false
- for k=1,#classes do
- local v = classes[k]
- if v.lookup == lookups[1] then -- and v.type == kind then
- anchortag = v.name
- sequence[f][markchar] = anchortag
- ok = true
- break
- end
- end
- if not ok and fonts.otf.trace_anchors then
- report("otf chain",format("%s: no matching mark2ligature anchor class for 0x%04X, lookup %s",kind,markchar,lookups[1]))
- end
- end
- if anchortag ~= true then
- local component = start.prev
- while component and component.id == glyph and component.subtype<256 and component.font == currentfont do
- local basechar = component.char
- if marks[basechar] then
- component = component.prev
- else
- local bglyph = glyphs[characters[basechar].description.index] -- startchar
- local baseanchors = bglyph.anchors['baselig']
- if baseanchors then
- local ba = baseanchors[anchortag]
- if ba then
- local n = has_attribute(start,marknumber)
- ba = ba[n] -- ok ?
- if ba then
- local mglyph = glyphs[characters[markchar].description.index]
- local markanchors = mglyph.anchors['mark']
- if markanchors then
- local ma = markanchors[anchortag]
- if ma then
- local factor = tfmdata.factor
- local dx, dy = scale(ba[1]-ma[1],factor), scale(ba[2]-ma[2],factor)
- start.xoffset, start.yoffset = component.xoffset - dx, component.yoffset + dy
- if fonts.otf.trace_anchors then
- report("otf chain",format("%s: anchoring mark 0x%04X to baseligature 0x%04X => (%s,%s) => (%s,%s)",
- kind,basechar,markchar,dx,dy,start.xoffset,start.yoffset))
- end
- return start, true
- end
- end
- end
- end
- end
- break
- end
- end
- end
- end
- return start, false
- end
-
- -- to be checked
-
- function chainprocs.gpos_mark2mark(start,stop,kind,lookupname,sequence,f,l,lookups)
- local component = start.next
- if component and component.id == glyph and component.subtype<256 and component.font == currentfont and marks[component.char] then
- local markchar = start.char
- local anchortag = sequence[f][markchar] -- [1][char]
- if anchortag == true then
- local classes = otfdata.anchor_classes
- local ok = false
- for k=1,#classes do
- local v = classes[k]
- if v.lookup == lookupname then -- and v.type == kind then
- anchortag = v.name
- sequence[f][markchar] = anchortag
- ok = true
- break
- end
- end
- if not ok and fonts.otf.trace_anchors then
- report("otf chain",format("%s: no matching mark2mark anchor class for 0x%04X, lookup %s",kind,markchar,lookups[1]))
- end
- end
- if anchortag ~= true then
- -- the following may have been be spoiled while idrising the other ones
- local markattr = has_attribute(start, marknumber) or 1 -- i need to check this ! 1 is new !
- local baseattr = has_attribute(component,marknumber) or 1 -- i need to check this ! 1 is new !
- if baseattr == markattr then
- local glyph = glyphs[characters[markchar].description.index]
- if glyph.anchors and glyph.anchors[anchortag] then
- local trace = fonts.otf.trace_anchors
- local done = false
- local baseanchors = glyph.anchors['basemark'][anchortag]
- while true do
- local basechar = component.char
- local charnext = characters[basechar]
- local markanchors = glyphs[charnext.description.index].anchors['mark'][anchortag]
- if markanchors then
- for anchor,data in pairs(markanchors) do
- local ba = baseanchors[anchor]
- if ba then
- local factor = tfmdata.factor
- local dx, dy = scale(ba[1]-ma[1],factor), scale(ba[2]-ma[2],factor)
- start.xoffset, start.yoffset = component.xoffset - dx, component.yoffset + dy
- if fonts.otf.trace_anchors then
- report("otf chain",format("%s: anchoring mark 0x%04X to basemark 0x%04X => (%s,%s) => (%s,%s)",
- kind,markchar,basechar,dx,dy,component.xoffset,component.yoffset))
- end
- done = true
- break
- end
- end
- end
- component = component.next
- if component and component.id == glyph and component.subtype<256 and component.font == currentfont and marks[component.char] then
- markattr = has_attribute(component,marknumber)
- if baseattr ~= markattr then
- break
- end
- else
- break
- end
- end
- return start, done
- end
- end
- end
- end
- return start, false
- end
-
- function chainprocs.gpos_cursive(start,stop,kind,lookupname,sequence,f,l,lookups)
- report("otf chain","chainproc gpos_cursive not yet supported")
- return start
- end
- function chainprocs.gpos_single(start,stop,kind,lookupname,sequence,f,l,lookups)
- report("otf process","chainproc gpos_single not yet supported")
- return start
- end
- function chainprocs.gpos_pair(start,stop,kind,lookupname,sequence,f,l,lookups)
- report("otf process","chainproc gpos_pair not yet supported")
- return start
- end
-
- function chainprocs.self(start,stop,kind,lookupname,sequence,f,l,lookups)
- report("otf process","self refering lookup cannot happen")
- return stop
- end
-
- local zwnj = 0x200C
- local zwj = 0x200D
-
- -- what pointer to return, spec says stop
-
- function fonts.otf.features.process.contextchain(start,kind,lookupname,contextdata)
- local contexts, flags, done = contextdata.lookups, contextdata.flags, false
- local skipmark, skipligature, skipbase = unpack(flags) -- unpack slower than assignment
- for k=1,#contexts do
- local match, next, last = true, start, start
- local rule, lookuptype, sequence, f, l, lookups = unpack(contexts[k]) -- unpack is slow
- local s = #sequence
- if s == 1 then
- match = next.id == glyph and next.subtype<256 and next.font == currentfont and sequence[1][next.char]
- else
- -- todo: better space check (maybe check for glue)
- local n = f
- while n <= l do
- if last then
- local id = last.id
- if id == glyph and last.subtype<256 and last.font == currentfont then
- local char = last.char
- local class = characters[char].description.class
- if class == skipmark or class == skipligature or class == skipbase then
- -- skip 'm
- last = last.next
- elseif sequence[n][char] then
- if n < l then
- last = last.next
- end
- n = n + 1
- else
- match = false break
- end
- elseif id == disc then -- what to do with kerns?
- last = last.next
- else
- match = false break
- end
- else
- match = false break
- end
- end
- if match and f > 1 then
- local prev = start.prev
- if prev then
- if f == 2 then
- match = prev.id == glyph and prev.subtype<256 and prev.font == currentfont and sequence[1][prev.char]
- else
- local n = f-1
- while n >= 1 do
- if prev then
- local id = prev.id
- if id == glyph and prev.subtype<256 and prev.font == currentfont then -- normal char
- local char = prev.char
- local class = characters[char].description.class
- if class == skipmark or class == skipligature or class == skipbase then
- -- skip 'm
- elseif sequence[n][char] then
- n = n -1
- else
- match = false break
- end
- elseif id == disc then
- -- skip 'm
- elseif sequence[n][32] then
- n = n -1
- else
- match = false break
- end
- prev = prev.prev
- elseif sequence[n][32] then
- n = n -1
- else
- match = false break
- end
- end
- end
- elseif f == 2 then
- match = sequence[1][32]
- else
- for n=f-1,1 do
- if not sequence[n][32] then
- match = false break
- end
- end
- end
- end
- if match and s > l then
- local next = last.next
- if next then
- if s-l == 1 then
- match = next.id == glyph and next.subtype<256 and next.font == currentfont and sequence[s][next.char]
- else
- local n = l+ 1
- while n <= s do
- if next then
- local id = next.id
- if id == glyph and next.subtype<256 and next.font == currentfont then -- normal char
- local char = next.char
- local class = characters[char].description.class
- if class == skipmark or class == skipligature or class == skipbase then
- -- skip 'm
- elseif sequence[n][char] then
- n = n + 1
- else
- match = false break
- end
- elseif id == disc then
- -- skip 'm
- elseif sequence[n][32] then -- brrr
- n = n + 1
- else
- match = false break
- end
- next = next.next
- elseif sequence[n][32] then
- n = n + 1
- else
- match = false break
- end
- end
- end
- elseif s-l == 1 then
- match = sequence[s][32]
- else
- for n=l+1,s do
- if not sequence[n][32] then
- match = false break
- end
- end
- end
- end
- end
- if match then
- local trace = fonts.otf.trace_contexts
- if trace then
- local char = start.char
- report("otf chain",format("%s: rule %s of %s matches at char 0x%04X (%s) for (%s,%s,%s) chars, lookuptype %s",kind,rule,lookupname,char,utf.char(char),f-1,l-f+1,s-l,lookuptype))
- end
- if lookups then
- local cp = chainprocs[lookuptype]
- if cp then
- start = cp(start,last,kind,lookupname,sequence,f,l,lookups,flags)
- else
- report("otf chain",format("%s: lookuptype %s not supported yet for %s",kind,lookuptype,lookupname))
- end
- elseif trace then
- report("otf chain",format("%s: skipping match for %s",kind,lookupname))
- end
- done = true
- break
- end
- end
- return start, done
- end
-
---~ if true then
---~ if n < f then
---~ texio.write_nl(string.format("%s before %s %04x %s %s %s",lookupname,n,char,class,skipmark or "?",tostring(sequence[n][char])))
---~ elseif n > l then
---~ texio.write_nl(string.format("%s after %s %04x %s %s %s",lookupname,n,char,class,skipmark or "?",tostring(sequence[n][char])))
---~ else
---~ texio.write_nl(string.format("%s current %s %04x %s %s %s",lookupname,n,char,class,skipmark or "?",tostring(sequence[n][char])))
---~ end
---~ end
-
---~ elseif char == zwnj and sequence[n][32] then -- brrr
-
- -- this needs to be fixed ! ! ! ! ! ! ! !
-
- function fonts.otf.features.process.reversecontextchain(start,kind,lookupname,contextdata)
- -- PROBABLY WRONG, WE NEED TO WALK BACK OVER THE LIST
- local done = false
- local contexts = contextdata.lookups
- local flags = contextdata.flags
- local skipmark, skipligature, skipbase = unpack(flags)
- for k=1,#contexts do
- local match, next, first, last = true, start, start, start
- local rule, lookuptype, sequence, f, l, lookups = unpack(contexts[k]) -- unpack is slow
- if #sequence == 1 then
- match = next.id == glyph and next.subtype<256 and next.font == currentfont and sequence[1][next.char]
- else
- local n, s = #sequence, 1
- while n > 0 do
- if next then
- local id = next.id
- if id == glyph and next.subtype<256 and next.font == currentfont then -- normal char
- local char = next.char
- local class = characters[char].description.class
- if class == skipmark or class == skipligature or class == skipbase then
- -- skip
- elseif sequence[n][char] then
- if n == f then
- first = next -- ok ?
- end
- if n == l then
- last = next -- ok ?
- end
- n = n - 1
- else
- match = false break
- end
- elseif id == disc then
- -- skip
- elseif not sequence[n][32] then -- brrr
- match = false break
- end
- next = next.next
- elseif sequence[n][32] then
- n = n - 1
- else
- match = false break
- end
- end
- end
- if match then
- local trace = fonts.otf.trace_contexts
- if trace then
- local char = first.char
- report("otf reverse chain",format("%s: rule %s of %s matches, replacing starts at char 0x%04X (%s) lookuptype %s",kind,rule,lookupname,char,utf.char(char),lookuptype))
- end
- if lookups then
- local cp = chainprocs[lookuptype]
- if cp then
- if start == first then
- start = cp(first,last,kind,lookupname,sequence,f,l,lookups,flags)
- else
- first = cp(first,last,kind,lookupname,sequence,f,l,lookups,flags)
- end
- else
- report("otf reverse chain",format("%s: lookuptype %s not supported yet for %s",kind,lookuptype,lookupname))
- end
- elseif trace then
- report("otf reverse chain",format("%s: skipping match for %s",kind,lookupname))
- end
- done = true
- break
- end
- end
- return start, done
- end
-
- fonts.otf.features.process.gsub_context = fonts.otf.features.process.contextchain
- fonts.otf.features.process.gsub_contextchain = fonts.otf.features.process.contextchain
- fonts.otf.features.process.gsub_reversecontextchain = fonts.otf.features.process.reversecontextchain
-
- fonts.otf.features.process.gpos_contextchain = fonts.otf.features.process.contextchain
- fonts.otf.features.process.gpos_context = fonts.otf.features.process.contextchain
-
-end
-
-do
-
- local process = fonts.otf.features.process.feature
-
- function fonts.methods.node.otf.aalt(head,font,attr) return process(head,font,attr,'aalt') end
- function fonts.methods.node.otf.abvm(head,font,attr) return process(head,font,attr,'abvm') end
- function fonts.methods.node.otf.afrc(head,font,attr) return process(head,font,attr,'afrc') end
- function fonts.methods.node.otf.akhn(head,font,attr) return process(head,font,attr,'akhn') end
- function fonts.methods.node.otf.blwm(head,font,attr) return process(head,font,attr,'blwm') end
- function fonts.methods.node.otf.c2pc(head,font,attr) return process(head,font,attr,'c2pc') end
- function fonts.methods.node.otf.c2sc(head,font,attr) return process(head,font,attr,'c2sc') end
- function fonts.methods.node.otf.calt(head,font,attr) return process(head,font,attr,'calt') end
- function fonts.methods.node.otf.case(head,font,attr) return process(head,font,attr,'case') end
- function fonts.methods.node.otf.ccmp(head,font,attr) return process(head,font,attr,'ccmp') end
- function fonts.methods.node.otf.clig(head,font,attr) return process(head,font,attr,'clig') end
- function fonts.methods.node.otf.cpsp(head,font,attr) return process(head,font,attr,'cpsp') end
- function fonts.methods.node.otf.cswh(head,font,attr) return process(head,font,attr,'cswh') end
- function fonts.methods.node.otf.curs(head,font,attr) return process(head,font,attr,'curs') end
- function fonts.methods.node.otf.dlig(head,font,attr) return process(head,font,attr,'dlig') end
- function fonts.methods.node.otf.dnom(head,font,attr) return process(head,font,attr,'dnom') end
- function fonts.methods.node.otf.expt(head,font,attr) return process(head,font,attr,'expt') end
- function fonts.methods.node.otf.fin2(head,font,attr) return process(head,font,attr,'fin2') end
- function fonts.methods.node.otf.fin3(head,font,attr) return process(head,font,attr,'fin3') end
- function fonts.methods.node.otf.fina(head,font,attr) return process(head,font,attr,'fina',3) end
- function fonts.methods.node.otf.frac(head,font,attr) return process(head,font,attr,'frac') end
- function fonts.methods.node.otf.fwid(head,font,attr) return process(head,font,attr,'fwid') end
- function fonts.methods.node.otf.haln(head,font,attr) return process(head,font,attr,'haln') end
- function fonts.methods.node.otf.hist(head,font,attr) return process(head,font,attr,'hist') end
- function fonts.methods.node.otf.hkna(head,font,attr) return process(head,font,attr,'hkna') end
- function fonts.methods.node.otf.hlig(head,font,attr) return process(head,font,attr,'hlig') end
- function fonts.methods.node.otf.hngl(head,font,attr) return process(head,font,attr,'hngl') end
- function fonts.methods.node.otf.hwid(head,font,attr) return process(head,font,attr,'hwid') end
- function fonts.methods.node.otf.init(head,font,attr) return process(head,font,attr,'init',1) end
- function fonts.methods.node.otf.isol(head,font,attr) return process(head,font,attr,'isol',4) end
- function fonts.methods.node.otf.ital(head,font,attr) return process(head,font,attr,'ital') end
- function fonts.methods.node.otf.jp78(head,font,attr) return process(head,font,attr,'jp78') end
- function fonts.methods.node.otf.jp83(head,font,attr) return process(head,font,attr,'jp83') end
- function fonts.methods.node.otf.jp90(head,font,attr) return process(head,font,attr,'jp90') end
- function fonts.methods.node.otf.kern(head,font,attr) return process(head,font,attr,'kern') end
- function fonts.methods.node.otf.liga(head,font,attr) return process(head,font,attr,'liga') end
- function fonts.methods.node.otf.lnum(head,font,attr) return process(head,font,attr,'lnum') end
- function fonts.methods.node.otf.locl(head,font,attr) return process(head,font,attr,'locl') end
- function fonts.methods.node.otf.mark(head,font,attr) return process(head,font,attr,'mark') end
- function fonts.methods.node.otf.med2(head,font,attr) return process(head,font,attr,'med2') end
- function fonts.methods.node.otf.medi(head,font,attr) return process(head,font,attr,'medi',2) end
- function fonts.methods.node.otf.mgrk(head,font,attr) return process(head,font,attr,'mgrk') end
- function fonts.methods.node.otf.mkmk(head,font,attr) return process(head,font,attr,'mkmk') end
- function fonts.methods.node.otf.nalt(head,font,attr) return process(head,font,attr,'nalt') end
- function fonts.methods.node.otf.nlck(head,font,attr) return process(head,font,attr,'nlck') end
- function fonts.methods.node.otf.nukt(head,font,attr) return process(head,font,attr,'nukt') end
- function fonts.methods.node.otf.numr(head,font,attr) return process(head,font,attr,'numr') end
- function fonts.methods.node.otf.onum(head,font,attr) return process(head,font,attr,'onum') end
- function fonts.methods.node.otf.ordn(head,font,attr) return process(head,font,attr,'ordn') end
- function fonts.methods.node.otf.ornm(head,font,attr) return process(head,font,attr,'ornm') end
- function fonts.methods.node.otf.pnum(head,font,attr) return process(head,font,attr,'pnum') end
- function fonts.methods.node.otf.pref(head,font,attr) return process(head,font,attr,'pref') end
- function fonts.methods.node.otf.pres(head,font,attr) return process(head,font,attr,'pres') end
- function fonts.methods.node.otf.pstf(head,font,attr) return process(head,font,attr,'pstf') end
- function fonts.methods.node.otf.rlig(head,font,attr) return process(head,font,attr,'rlig') end
- function fonts.methods.node.otf.rphf(head,font,attr) return process(head,font,attr,'rphf') end
- function fonts.methods.node.otf.salt(head,font,attr) return process(head,font,attr,'calt') end
- function fonts.methods.node.otf.sinf(head,font,attr) return process(head,font,attr,'sinf') end
- function fonts.methods.node.otf.smcp(head,font,attr) return process(head,font,attr,'smcp') end
- function fonts.methods.node.otf.smpl(head,font,attr) return process(head,font,attr,'smpl') end
- function fonts.methods.node.otf.ss01(head,font,attr) return process(head,font,attr,'ss01') end
- function fonts.methods.node.otf.ss02(head,font,attr) return process(head,font,attr,'ss02') end
- function fonts.methods.node.otf.ss03(head,font,attr) return process(head,font,attr,'ss03') end
- function fonts.methods.node.otf.ss04(head,font,attr) return process(head,font,attr,'ss04') end
- function fonts.methods.node.otf.ss05(head,font,attr) return process(head,font,attr,'ss05') end
- function fonts.methods.node.otf.ss06(head,font,attr) return process(head,font,attr,'ss06') end
- function fonts.methods.node.otf.ss07(head,font,attr) return process(head,font,attr,'ss07') end
- function fonts.methods.node.otf.ss08(head,font,attr) return process(head,font,attr,'ss08') end
- function fonts.methods.node.otf.ss09(head,font,attr) return process(head,font,attr,'ss09') end
- function fonts.methods.node.otf.subs(head,font,attr) return process(head,font,attr,'subs') end
- function fonts.methods.node.otf.sups(head,font,attr) return process(head,font,attr,'sups') end
- function fonts.methods.node.otf.swsh(head,font,attr) return process(head,font,attr,'swsh') end
- function fonts.methods.node.otf.titl(head,font,attr) return process(head,font,attr,'titl') end
- function fonts.methods.node.otf.tnam(head,font,attr) return process(head,font,attr,'tnam') end
- function fonts.methods.node.otf.tnum(head,font,attr) return process(head,font,attr,'tnum') end
- function fonts.methods.node.otf.trad(head,font,attr) return process(head,font,attr,'trad') end
- function fonts.methods.node.otf.unic(head,font,attr) return process(head,font,attr,'unic') end
- function fonts.methods.node.otf.zero(head,font,attr) return process(head,font,attr,'zero') end
-
-end
-
--- common stuff
-
-function fonts.otf.features.language(tfmdata,value)
- if value then
- value = value:lower()
- if fonts.otf.tables.languages[value] then
- tfmdata.language = value
- end
- end
-end
-
-function fonts.otf.features.script(tfmdata,value)
- if value then
- value = value:lower()
- if fonts.otf.tables.scripts[value] then
- tfmdata.script = value
- end
- end
-end
-
-function fonts.otf.features.mode(tfmdata,value)
- if value then
- tfmdata.mode = value:lower()
- end
-end
-
-function fonts.otf.features.strategy(tfmdata,value)
- if value then
- tfmdata.strategy = tonumber(value) or fonts.otf.strategy
- end
-end
-
-fonts.initializers.base.otf.language = fonts.otf.features.language
-fonts.initializers.base.otf.script = fonts.otf.features.script
-fonts.initializers.base.otf.mode = fonts.otf.features.mode
-fonts.initializers.base.otf.method = fonts.otf.features.mode
-fonts.initializers.base.otf.strategy = fonts.otf.features.strategy -- not needed
-
-fonts.initializers.node.otf.language = fonts.otf.features.language
-fonts.initializers.node.otf.script = fonts.otf.features.script
-fonts.initializers.node.otf.mode = fonts.otf.features.mode
-fonts.initializers.node.otf.method = fonts.otf.features.mode
-fonts.initializers.node.otf.strategy = fonts.otf.features.strategy
-
-do
-
- local tlig_list = {
- endash = "hyphen hyphen",
- emdash = "hyphen hyphen hyphen",
---~ quotedblleft = "quoteleft quoteleft",
---~ quotedblright = "quoteright quoteright",
---~ quotedblleft = "grave grave",
---~ quotedblright = "quotesingle quotesingle",
---~ quotedblbase = "comma comma",
- }
- local trep_list = {
---~ [0x0022] = 0x201D,
- [0x0027] = 0x2019,
---~ [0x0060] = 0x2018,
- }
-
- local tlig_feature = {
- features = { { scripts = { { script = "DFLT", langs = { "dflt" }, } }, tag = "tlig", comment = "added bij mkiv" }, },
- name = "ctx_tlig",
- subtables = { { name = "ctx_tlig_1" } },
- type = "gsub_ligature",
- flags = { },
- always = true
- }
- local trep_feature = {
- features = { { scripts = { { script = "DFLT", langs = { "dflt" }, } }, tag = "trep", comment = "added bij mkiv" }, },
- name = "ctx_trep",
- subtables = { { name = "ctx_trep_1" } },
- type = "gsub_single",
- flags = { },
- always = true
- }
-
- function fonts.otf.enhance.enrich(data,filename)
- for index, glyph in pairs(data.glyphs) do
- local l = tlig_list[glyph.name]
- if l then
- local o = glyph.lookups or { }
- o["ctx_tlig_1"] = { { "ligature", l, glyph.name } }
- glyph.lookups = o
- end
- local r = trep_list[glyph.unicode]
- if r then
- local replacement = data.map.map[r]
- if replacement then
- local o = glyph.lookups or { }
- o["ctx_trep_1"] = { { "substitution", data.glyphs[replacement].name } } ---
- glyph.lookups = o
- end
- end
- end
- data.gsub = data.gsub or { }
- logs.report("load otf","enhance: registering tlig feature")
- table.insert(data.gsub,1,table.fastcopy(tlig_feature))
- logs.report("load otf","enhance: registering trep feature")
- table.insert(data.gsub,1,table.fastcopy(trep_feature))
- end
-
- local prepare = fonts.otf.features.prepare.feature
- local process = fonts.otf.features.process.feature
-
- fonts.otf.tables.features['tlig'] = 'TeX Ligatures'
- fonts.otf.tables.features['trep'] = 'TeX Replacements'
-
- function fonts.initializers.node.otf.tlig(tfm,value) return prepare(tfm,'tlig',value) end
- function fonts.initializers.node.otf.trep(tfm,value) return prepare(tfm,'trep',value) end
-
- function fonts.methods.node.otf.tlig(head,font,attr) return process(head,font,attr,'tlig') end
- function fonts.methods.node.otf.trep(head,font,attr) return process(head,font,attr,'trep') end
-
- function fonts.initializers.base.otf.tlig(tfm,value) fonts.otf.features.prepare_base_substitutions(tfm,'tlig',value) end
- function fonts.initializers.base.otf.trep(tfm,value) fonts.otf.features.prepare_base_substitutions(tfm,'trep',value) end
-
-end
-
--- we need this because fonts can be bugged
-
--- \definefontfeature[calt][language=nld,script=latn,mode=node,calt=yes,clig=yes,rlig=yes]
--- \definefontfeature[dflt][language=nld,script=latn,mode=node,calt=no, clig=yes,rlig=yes]
--- \definefontfeature[fixd][language=nld,script=latn,mode=node,calt=no, clig=yes,rlig=yes,ignoredrules={44,45,47}]
-
--- \starttext
-
--- {\type{dflt:}\font\test=ZapfinoExtraLTPro*dflt at 24pt \test \char57777\char57812 c/o} \endgraf
--- {\type{calt:}\font\test=ZapfinoExtraLTPro*calt at 24pt \test \char57777\char57812 c/o} \endgraf
--- {\type{fixd:}\font\test=ZapfinoExtraLTPro*fixd at 24pt \test \char57777\char57812 c/o} \endgraf
-
--- \stoptext
-
---~ table.insert(fonts.triggers,"ignoredrules")
-
---~ function fonts.initializers.node.otf.ignoredrules(tfmdata,value)
---~ if value then
---~ -- these tests must move !
---~ tfmdata.unique = tfmdata.unique or { }
---~ tfmdata.unique.ignoredrules = tfmdata.unique.ignoredrules or { }
---~ local ignored = tfmdata.unique.ignoredrules
---~ -- value is already ok now
---~ for s in string.gmatch(value:gsub("[{}]","")..",", "%s*(.-),") do
---~ ignored[tonumber(s)] = true
---~ end
---~ end
---~ end
-
-fonts.initializers.base.otf.equaldigits = fonts.initializers.common.equaldigits
-fonts.initializers.node.otf.equaldigits = fonts.initializers.common.equaldigits
-
-fonts.initializers.base.otf.lineheight = fonts.initializers.common.lineheight
-fonts.initializers.node.otf.lineheight = fonts.initializers.common.lineheight
-
-fonts.initializers.base.otf.compose = fonts.initializers.common.compose
-fonts.initializers.node.otf.compose = fonts.initializers.common.compose
-
--- temp hack, may change
-
-function fonts.initializers.base.otf.kern(tfmdata,value)
- fonts.otf.features.prepare_base_kerns(tfmdata,'kern',value)
-end
-
--- bonus function
-
-function fonts.otf.name_to_slot(name) -- todo: afm en tfm
- local tfmdata = fonts.tfm.id[font.current()]
- if tfmdata and tfmdata.shared then
- local otfdata = tfmdata.shared.otfdata
- if otfdata and otfdata.luatex then
- return otfdata.luatex.unicodes[name]
- end
- end
- return nil
-end
-
-function fonts.otf.char(n) -- todo: afm en tfm
- if type(n) == "string" then
- n = fonts.otf.name_to_slot(n)
- end
- if n then
- tex.sprint(tex.ctxcatcodes,string.format("\\char%s ",n))
- end
-end
-
---~ function fonts.otf.name_to_table(name)
---~ lcoal temp, result = { }
---~ local tfmdata = fonts.tfm.id[font.current()]
---~ if tfmdata and tfmdata.shared then
---~ local otfdata = tfmdata.shared.otfdata
---~ if otfdata and otfdata.luatex then
---~ for k,v in pairs(otfdata.glyphs) do
---~ if v.name:find(name) then
---~ temp[v.name] = v.unicode
---~ end
---~ end
---~ end
---~ end
---~ for k,v in pairs(table.sortedkeys(temp)) do
---~ result[#result+1] = { v, temp[v] }
---~ end
---~ return result
---~ end
-
--- Here we plug in some analyzing code
-
--- will move to font-tfm
-
-do
-
- local glyph = node.id('glyph')
- local glue = node.id('glue')
- local penalty = node.id('penalty')
-
- local fontdata = fonts.tfm.id
- local set_attribute = node.set_attribute
- local has_attribute = node.has_attribute
- local state = attributes.numbers['state'] or 100
-
- local fcs = fonts.color.set
- local fcr = fonts.color.reset
-
- -- in the future we will use language/script attributes instead of the
- -- font related value, but then we also need dynamic features which is
- -- somewhat slower; and .. we need a chain of them
-
- local type = type
-
- local initializers, methods = fonts.analyzers.initializers, fonts.analyzers.methods
-
- function fonts.initializers.node.otf.analyze(tfmdata,value,attr)
- if attr and attr > 0 then
- script, language = a_to_script[attr], a_to_language[attr]
- else
- script, language = tfmdata.script, tfmdata.language
- end
- local action = initializers[script]
- if action then
- if type(action) == "function" then
- return action(tfmdata,value)
- else
- local action = action[language]
- if action then
- return action(tfmdata,value)
- end
- end
- end
- return nil
- end
-
- function fonts.methods.node.otf.analyze(head,font,attr)
- local tfmdata = fontdata[font]
- local script, language
- if attr and attr > 0 then
- script, language = a_to_script[attr], a_to_language[attr]
- else
- script, language = tfmdata.script, tfmdata.language
- end
- local action = methods[script]
- if action then
- if type(action) == "function" then
- return action(head,font,attr)
- else
- action = action[language]
- if action then
- return action(head,font,attr)
- end
- end
- end
- return head, false
- end
-
- fonts.otf.features.register("analyze",true) -- we always analyze
- table.insert(fonts.triggers,"analyze") -- we need a proper function for doing this
-
- -- latin
-
- fonts.analyzers.methods.latn = fonts.analyzers.aux.setstate
-
- -- this info eventually will go into char-def
-
- local zwnj = 0x200C
- local zwj = 0x200D
-
- local isol = {
- [0x0621] = true, [zwnj] = true,
- }
-
- local isol_fina = {
- [0x0622] = true, [0x0623] = true, [0x0624] = true, [0x0625] = true, [0x0627] = true, [0x062F] = true,
- [0x0630] = true, [0x0631] = true, [0x0632] = true,
- [0x0648] = true,
- [0xFEF5] = true, [0xFEF7] = true, [0xFEF9] = true, [0xFEFB] = true,
- }
-
- local isol_fina_medi_init = {
- [0x0626] = true, [0x0628] = true, [0x0629] = true, [0x062A] = true, [0x062B] = true, [0x062C] = true, [0x062D] = true, [0x062E] = true,
- [0x0633] = true, [0x0634] = true, [0x0635] = true, [0x0636] = true, [0x0637] = true, [0x0638] = true, [0x0639] = true, [0x063A] = true,
- [0x0640] = true, -- tadwil
- [0x0641] = true, [0x0642] = true, [0x0643] = true, [0x0644] = true, [0x0645] = true, [0x0646] = true, [0x0647] = true, [0x0649] = true, [0x064A] = true,
- [0x067E] = true,
- [0x0686] = true, [zwj] = true,
- }
-
- local arab_warned = { }
-
- local function warning(current,what)
- local char = current.char
- if not arab_warned[char] then
- log.report("analyze",string.format("arab: character %s (0x%04X) has no %s class", char, char, what))
- arab_warned[char] = true
- end
- end
-
- function fonts.analyzers.methods.nocolor(head,font,attr)
- for n in node.traverse(head,glyph) do
- if not font or n.font == font then
- fcr(n)
- end
- end
- return head, true
- end
-
- function fonts.analyzers.methods.arab(head,font,attr) -- maybe make a special version with no trace
- local characters = fontdata[font].characters
- local first, last, current, done = nil, nil, head, false
- local trace = fonts.color.trace
- --~ local laststate = 0
- local function finish()
- if last then
- if first == last then
- if isol_fina_medi_init[first.char] or isol_fina[first.char] then
- set_attribute(first,state,4) -- isol
- if trace then fcs(first,"font:isol") end
- else
- warning(first,"isol")
- set_attribute(first,state,0) -- error
- if trace then fcr(first) end
- end
- else
- if isol_fina_medi_init[last.char] or isol_fina[last.char] then -- why isol here ?
- -- if laststate == 1 or laststate == 2 or laststate == 4 then
- set_attribute(last,state,3) -- fina
- if trace then fcs(last,"font:fina") end
- else
- warning(last,"fina")
- set_attribute(last,state,0) -- error
- if trace then fcr(last) end
- end
- end
- first, last = nil, nil
- elseif first then
- -- first and last are either both set so we never com here
- if isol_fina_medi_init[first.char] or isol_fina[first.char] then
- set_attribute(first,state,4) -- isol
- if trace then fcs(first,"font:isol") end
- else
- warning(first,"isol")
- set_attribute(first,state,0) -- error
- if trace then fcr(first) end
- end
- first = nil
- end
- --~ laststate = 0
- end
- while current do
- if current.id == glyph and current.subtype<256 and current.font == font then
- done = true
- local char = current.char
- local chardata = characters[char] -- some day we will make a characters.marks hash
- if not chardata then -- this is also more efficient since it's shared
- -- troubles
- -- elseif char == zwj then
- -- -- can probably be ignored, we could turn it into a kern or penalty
- -- elseif char == zwnj then
- -- -- acts like a space, we could turn it into a kern or penalty
- -- finish()
- elseif chardata.description.class == "mark" then
- set_attribute(current,state,5) -- mark
- if trace then fcs(current,"font:mark") end
- elseif isol[char] then
- finish()
- set_attribute(current,state,4) -- isol
- if trace then fcs(current,"font:isol") end
- first, last = nil, nil
- --~ laststate = 0
- elseif not first then
- if isol_fina_medi_init[char] then
- set_attribute(current,state,1) -- init
- if trace then fcs(current,"font:init") end
- first, last = first or current, current
- --~ laststate = 1
- elseif isol_fina[char] then
- set_attribute(current,state,4) -- isol
- if trace then fcs(current,"font:isol") end
- first, last = nil, nil
- --~ laststate = 0
- else -- no arab
- finish()
- end
- elseif isol_fina_medi_init[char] then
- first, last = first or current, current
- set_attribute(current,state,2) -- medi
- if trace then fcs(current,"font:medi") end
- --~ laststate = 2
- elseif isol_fina[char] then
- -- if not laststate == 1 then
- if not has_attribute(last,state,1) then
- -- tricky, we need to check what last may be !
- set_attribute(last,state,2) -- medi
- if trace then fcs(last,"font:medi") end
- end
- set_attribute(current,state,3) -- fina
- if trace then fcs(current,"font:fina") end
- first, last = nil, nil
- --~ laststate = 0
- elseif char >= 0x0600 and char <= 0x06FF then
- if trace then fcs(current,"font:rest") end
- finish()
- else --no
- finish()
- end
- else
- finish()
- end
- current = current.next
- end
- finish()
- return head, done
- end
-
- -- han (chinese) (unfinished)
-
- -- this info eventually will go into char-def
-
- -- in the future we will use language/script attributes instead of the
- -- font related value, but then we also need dynamic features which is
- -- somewhat slower; and .. we need a chain of them
-
- local type = type
-
- local opening_parenthesis_hw = table.tohash { -- half width
- 0x0028,
- 0x005B,
- 0x007B,
- 0x2018, -- ‘
- 0x201C, -- “
- }
-
- local opening_parenthesis_fw = table.tohash { -- full width
- 0x3008, -- 〈 Left book quote
- 0x300A, -- 《 Left double book quote
- 0x300C, -- 「 left quote
- 0x300E, -- 『 left double quote
- 0x3010, -- 【 left double book quote
- 0x3014, -- 〔 left book quote
- 0x3016, --〖 left double book quote
- 0x3018, -- left tortoise bracket
- 0x301A, -- left square bracket
- 0x301D, -- reverse double prime qm
- 0xFF08, -- ( left parenthesis
- 0xFF3B, -- [ left square brackets
- 0xFF5B, -- { left curve bracket
- 0xFF62, -- left corner bracket
- }
-
- local closing_parenthesis_hw = table.tohash { -- half width
- 0x0029,
- 0x005D,
- 0x007D,
- 0x2019, -- ’ right quote, right
- 0x201D, -- ” right double quote
- }
-
- local closing_parenthesis_fw = table.tohash { -- full width
- 0x3009, -- 〉 book quote
- 0x300B, -- 》 double book quote
- 0x300D, -- 」 right quote, right
- 0x300F, -- 』 right double quote
- 0x3011, -- 】 right double book quote
- 0x3015, -- 〕 right book quote
- 0x3017, -- 〗 right double book quote
- 0x3019, -- right tortoise bracket
- 0x301B, -- right square bracket
- 0x301E, -- double prime qm
- 0x301F, -- low double prime qm
- 0xFF09, -- ) right parenthesis
- 0xFF3D, -- ] right square brackets
- 0xFF5D, -- } right curve brackets
- 0xFF63, -- right corner bracket
- }
-
- local opening_vertical = table.tohash {
- 0xFE35, 0xFE37, 0xFE39, 0xFE3B, 0xFE3D, 0xFE3F, 0xFE41, 0xFE43, 0xFE47,
- }
-
- local closing_vertical = table.tohash {
- 0xFE36, 0xFE38, 0xFE3A, 0xFE3C, 0xFE3E, 0xFE40, 0xFE42, 0xFE44, 0xFE48,
- }
-
- local opening_punctuation_hw = table.tohash { -- half width
- }
-
- local opening_punctuation_fw = table.tohash {
- -- 0x2236, -- ∶
- -- 0xFF0C, -- ,
- }
-
- local closing_punctuation_hw = table.tohash { -- half width
- 0x0021, -- !
- 0x002C, -- ,
- 0x002E, -- .
- 0x003A, -- :
- 0x003B, -- ;
- 0x003F, -- ?
- 0xFF61, -- hw full stop
- }
-
- local closing_punctuation_fw = table.tohash { -- full width
- 0x3001, -- 、
- 0x3002, -- 。
- 0xFF01, -- !
- 0xFF0C, -- ,
- 0xFF0E, -- .
- 0xFF1A, -- :
- 0xFF1B, -- ;
- 0xFF1F, -- ?
- }
-
- local non_starter = table.tohash { -- japanese
- 0x3005, 0x3041, 0x3043, 0x3045, 0x3047,
- 0x3049, 0x3063, 0x3083, 0x3085, 0x3087,
- 0x308E, 0x3095, 0x3096, 0x309B, 0x309C,
- 0x309D, 0x309E, 0x30A0, 0x30A1, 0x30A3,
- 0x30A5, 0x30A7, 0x30A9, 0x30C3, 0x30E3,
- 0x30E5, 0x30E7, 0x30EE, 0x30F5, 0x30F6,
- 0x30FC, 0x30FD, 0x30FE, 0x31F0, 0x31F1,
- 0x30F2, 0x30F3, 0x30F4, 0x31F5, 0x31F6,
- 0x30F7, 0x30F8, 0x30F9, 0x31FA, 0x31FB,
- 0x30FC, 0x30FD, 0x30FE, 0x31FF,
- }
-
- -- the characters below are always appear in a double form, so there
- -- will be two Chinese ellipsis characters together that denote
- -- ellipsis marks and it is not allowed to break between them
-
- local hyphenation = table.tohash {
- 0x2026, -- … ellipsis
- 0x2014, -- — hyphen
- }
-
- local function is_han_character(char)
- return
- (char>=0x04E00 and char<=0x09FFF) or
- (char>=0x03400 and char<=0x04DFF) or
- (char>=0x20000 and char<=0x2A6DF) or
- (char>=0x0F900 and char<=0x0FAFF) or
- (char>=0x2F800 and char<=0x2FA1F)
- end
-
- --~ opening_parenthesis_hw / closing_parenthesis_hw
- --~ opening_parenthesis_fw / closing_parenthesis_fw
- --~ opening_punctuation_hw / closing_punctuation_hw
- --~ opening_punctuation_fw / closing_punctuation_fw
-
- --~ non_starter
- --~ hyphenation
-
- --~ opening_vertical / closing_vertical
-
- fonts.analyzers.methods.stretch_hang = true
-
- fonts.analyzers.methods.hang_data = {
- inter_char_stretch_factor = 2.00, -- we started with 0.5, then 1.0
- inter_char_half_factor = 0.50, -- normally there is no reason to change this
- inter_char_half_shrink_factor = 0.25, -- normally there is no reason to change this
- }
-
- local hang_data = fonts.analyzers.methods.hang_data
-
- local insert_after, insert_before, delete = node.insert_after, node.insert_before, nodes.delete
-
- local function nobreak_before(head,current)
- local p = current.prev
- if p then
- p = p.prev
- if p and p.id == penalty then
- p.penalty = 10000
- return head, current
- end
- end
- return insert_before(head,current,nodes.penalty(10000))
- end
-
- function fonts.analyzers.methods.hani(head,font,attr)
- -- maybe make a special version with no trace
- local characters = fontdata[font].characters
- local current, done, stretch, prevclass = head, false, 0, 0
- if fonts.analyzers.methods.stretch_hang then
- stretch = fontdata[font].parameters.quad
- end
- -- penalty before break
- local interspecialskip = - stretch * hang_data.inter_char_half_factor
- local interspecialshrink = stretch * hang_data.inter_char_half_shrink_factor
- local internormalstretch = stretch * hang_data.inter_char_stretch_factor
- local trace = fonts.color.trace
--- todo: check for first and last
- while current do
- if current.id == glyph and current.subtype<256 then
- if current.font == font then
- local char = current.char
- if false then
- -- don't ask -)
- elseif opening_punctuation_fw[char] or opening_parenthesis_fw[char] then
- if trace then fcs(current,"font:init") end
-if head ~= current then
- head, _ = insert_before(head,current,nodes.glue(interspecialskip,0,interspecialshrink))
-end
- head, current = insert_after(head,current,nodes.penalty(10000))
- head, current = insert_after(head,current,nodes.glue(0,internormalstretch,0))
- prevclass, done = 1, true
- elseif closing_punctuation_fw[char] or closing_parenthesis_fw[char] then
- if trace then fcs(current,"font:fina") end
- if prevclass > 0 then
- head, current = nobreak_before(head,current)
- head, current = insert_after(head,current,nodes.penalty(10000))
- head, current = insert_after(head,current,nodes.glue(interspecialskip,0,interspecialshrink))
- head, current = insert_after(head,current,nodes.penalty(0))
- head, current = insert_after(head,current,nodes.glue(0,internormalstretch,0))
- end
- prevclass, done = 2, true
- elseif opening_punctuation_hw[char] or opening_parenthesis_hw[char] then
- if trace then fcs(current,"font:init") end
- head, current = insert_after(head,current,nodes.penalty(10000))
- head, current = insert_after(head,current,nodes.glue(0,internormalstretch,0))
- prevclass, done = 3, true
- elseif closing_punctuation_hw[char] or closing_parenthesis_hw[char] then
- if trace then fcs(current,"font:fina") end
- if prevclass > 0 then
- head, current = nobreak_before(head,current)
- head, current = insert_after(head,current,nodes.penalty(0))
- head, current = insert_after(head,current,nodes.glue(0,internormalstretch,0))
- end
- prevclass, done = 4, true
- elseif hyphenation[char] then
- if trace then fcs(current,"font:medi") end
- if prevclass > 0 then
- head, current = nobreak_before(head,current)
- head, current = insert_after(head,current,nodes.penalty(0))
- head, current = insert_after(head,current,nodes.glue(0,internormalstretch,0))
- end
- prevclass, done = 5, true
- elseif non_starter[char] then
- if trace then fcs(current,"font:isol") end
- head, current = insert_after(head,current,nodes.penalty(10000))
- head, current = insert_after(head,current,nodes.glue(0,internormalstretch,0))
- prevclass, done = 6, true
- elseif is_han_character(char) then
- prevclass, done = 7, true
- head, current = insert_after(head,current,nodes.penalty(0))
- head, current = insert_after(head,current,nodes.glue(0,internormalstretch,0))
- end
- else
- prevclass = 0
- end
- elseif prevclass > 0 and current.id == glue and current.spec and current.spec.width > 0 then
- head, current = delete(head,current)
- end
- if current then
- current = current.next
- end
- end
- return head, done
- end
-
- fonts.analyzers.methods.hang = fonts.analyzers.methods.hani
-
-end
-
--- experimental and will probably change
-
-do
- local process = fonts.otf.features.process.feature
- local prepare = fonts.otf.features.prepare.feature
- function fonts.install_feature(type,...)
- if fonts[type] and fonts[type].install_feature then
- fonts[type].install_feature(...)
- end
- end
- function fonts.otf.install_feature(tag)
- fonts.methods.node.otf [tag] = function(head,font,attr) return process(head,font,attr,tag) end
- fonts.initializers.node.otf[tag] = function(tfm,value) return prepare(tfm,tag,value) end
- end
-end
diff --git a/Master/texmf-dist/tex/context/base/font-oti.lua b/Master/texmf-dist/tex/context/base/font-oti.lua
new file mode 100644
index 00000000000..cbac6d36a84
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/font-oti.lua
@@ -0,0 +1,57 @@
+if not modules then modules = { } end modules ['font-oti'] = {
+ version = 1.001,
+ comment = "companion to font-ini.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- i need to check features=yes|no also in relation to hashing
+
+local lower = string.lower
+
+local otf = fonts.otf
+
+otf.default_language = 'latn'
+otf.default_script = 'dflt'
+
+local languages = otf.tables.languages
+local scripts = otf.tables.scripts
+
+function otf.features.language(tfmdata,value)
+ if value then
+ value = lower(value)
+ if languages[value] then
+ tfmdata.language = value
+ end
+ end
+end
+
+function otf.features.script(tfmdata,value)
+ if value then
+ value = lower(value)
+ if scripts[value] then
+ tfmdata.script = value
+ end
+ end
+end
+
+function otf.features.mode(tfmdata,value)
+ if value then
+ tfmdata.mode = lower(value)
+ end
+end
+
+fonts.initializers.base.otf.language = otf.features.language
+fonts.initializers.base.otf.script = otf.features.script
+fonts.initializers.base.otf.mode = otf.features.mode
+fonts.initializers.base.otf.method = otf.features.mode
+
+fonts.initializers.node.otf.language = otf.features.language
+fonts.initializers.node.otf.script = otf.features.script
+fonts.initializers.node.otf.mode = otf.features.mode
+fonts.initializers.node.otf.method = otf.features.mode
+
+otf.features.register("features",true) -- we always do features
+table.insert(fonts.processors,"features") -- we need a proper function for doing this
+
diff --git a/Master/texmf-dist/tex/context/base/font-otn.lua b/Master/texmf-dist/tex/context/base/font-otn.lua
new file mode 100644
index 00000000000..3c11b84f1b4
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/font-otn.lua
@@ -0,0 +1,2496 @@
+if not modules then modules = { } end modules ['font-otn'] = {
+ version = 1.001,
+ comment = "companion to font-ini.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- this is still somewhat preliminary and it will get better in due time;
+-- much functionality could only be implemented thanks to the husayni font
+-- of Idris Samawi Hamid to who we dedicate this module.
+
+-- we can use more lpegs when lpeg is extended with function args and so
+-- resolving to unicode does not gain much
+
+-- in retrospect it always looks easy but believe it or not, it took a lot
+-- of work to get proper open type support done: buggy fonts, fuzzy specs,
+-- special made testfonts, many skype sessions between taco, idris and me,
+-- torture tests etc etc ... unfortunately the code does not show how much
+-- time it took ...
+
+-- todo:
+--
+-- kerning is probably not yet ok for latin around dics nodes
+-- extension infrastructure (for usage out of context)
+-- sorting features according to vendors/renderers
+-- alternative loop quitters
+-- check cursive and r2l
+-- find out where ignore-mark-classes went
+-- remove unused tables
+-- slide tail (always glue at the end so only needed once
+-- default features (per language, script)
+-- cleanup kern(class) code, remove double info
+-- handle positions (we need example fonts)
+-- handle gpos_single (we might want an extra width field in glyph nodes because adding kerns might interfere)
+
+--[[ldx--
+<p>This module is a bit more split up that I'd like but since we also want to test
+with plain <l n='tex'/> it has to be so. This module is part of <l n='context'/>
+and discussion about improvements and functionality mostly happens on the
+<l n='context'/> mailing list.</p>
+
+<p>The specification of OpenType is kind of vague. Apart from a lack of a proper
+free specifications there's also the problem that Microsoft and Adobe
+may have their own interpretation of how and in what order to apply features.
+In general the Microsoft website has more detailed specifications and is a
+better reference. There is also some information in the FontForge help files.</p>
+
+<p>Because there is so much possible, fonts might contain bugs and/or be made to
+work with certain rederers. These may evolve over time which may have the side
+effect that suddenly fonts behave differently.</p>
+
+<p>After a lot of experiments (mostly by Taco, me and Idris) we're now at yet another
+implementation. Of course all errors are mine and of course the code can be
+improved. There are quite some optimizations going on here and processing speed
+is currently acceptable. Not all functions are implemented yet, often because I
+lack the fonts for testing. Many scripts are not yet supported either, but I will
+look into them as soon as <l n='context'/> users ask for it.</p>
+
+<p>Because there are different interpretations possible, I will extend the code
+with more (configureable) variants. I can also add hooks for users so that they can
+write their own extensions.</p>
+
+<p>Glyphs are indexed not by unicode but in their own way. This is because there is no
+relationship with unicode at all, apart from the fact that a font might cover certain
+ranges of characters. One character can have multiple shapes. However, at the
+<l n='tex'/> end we use unicode so and all extra glyphs are mapped into a private
+space. This is needed because we need to access them and <l n='tex'/> has to include
+then in the output eventually.</p>
+
+<p>The raw table as it coms from <l n='fontforge'/> gets reorganized in to fit out needs.
+In <l n='context'/> that table is packed (similar tables are shared) and cached on disk
+so that successive runs can use the optimized table (after loading the table is
+unpacked). The flattening code used later is a prelude to an even more compact table
+format (and as such it keeps evolving).</p>
+
+<p>This module is sparsely documented because it is a moving target. The table format
+of the reader changes and we experiment a lot with different methods for supporting
+features.</p>
+
+<p>As with the <l n='afm'/> code, we may decide to store more information in the
+<l n='otf'/> table.</p>
+
+<p>Incrementing the version number will force a re-cache. We jump the number by one
+when there's a fix in the <l n='fontforge'/> library or <l n='lua'/> code that
+results in different tables.</p>
+--ldx]]--
+
+-- action handler chainproc chainmore comment
+--
+-- gsub_single ok ok ok
+-- gsub_multiple ok ok not implemented yet
+-- gsub_alternate ok ok not implemented yet
+-- gsub_ligature ok ok ok
+-- gsub_context ok --
+-- gsub_contextchain ok --
+-- gsub_reversecontextchain ok --
+-- chainsub -- ok
+-- reversesub -- ok
+-- gpos_mark2base ok ok
+-- gpos_mark2ligature ok ok
+-- gpos_mark2mark ok ok
+-- gpos_cursive ok untested
+-- gpos_single ok ok
+-- gpos_pair ok ok
+-- gpos_context ok --
+-- gpos_contextchain ok --
+--
+-- actions:
+--
+-- handler : actions triggered by lookup
+-- chainproc : actions triggered by contextual lookup
+-- chainmore : multiple substitutions triggered by contextual lookup (e.g. fij -> f + ij)
+--
+-- remark: the 'not implemented yet' variants will be done when we have fonts that use them
+-- remark: we need to check what to do with discretionaries
+
+local concat = table.concat
+local format, gmatch, gsub, find, match, lower, strip = string.format, string.gmatch, string.gsub, string.find, string.match, string.lower, string.strip
+local type, next, tonumber, tostring = type, next, tonumber, tostring
+
+local otf = fonts.otf
+local tfm = fonts.tfm
+
+local trace_lookups = false trackers.register("otf.lookups", function(v) trace_lookups = v end)
+local trace_singles = false trackers.register("otf.singles", function(v) trace_singles = v end)
+local trace_multiples = false trackers.register("otf.multiples", function(v) trace_multiples = v end)
+local trace_alternatives = false trackers.register("otf.alternatives", function(v) trace_alternatives = v end)
+local trace_ligatures = false trackers.register("otf.ligatures", function(v) trace_ligatures = v end)
+local trace_contexts = false trackers.register("otf.contexts", function(v) trace_contexts = v end)
+local trace_marks = false trackers.register("otf.marks", function(v) trace_marks = v end)
+local trace_kerns = false trackers.register("otf.kerns", function(v) trace_kerns = v end)
+local trace_cursive = false trackers.register("otf.cursive", function(v) trace_cursive = v end)
+local trace_preparing = false trackers.register("otf.preparing", function(v) trace_preparing = v end)
+local trace_bugs = false trackers.register("otf.bugs", function(v) trace_bugs = v end)
+local trace_details = false trackers.register("otf.details", function(v) trace_details = v end)
+local trace_applied = false trackers.register("otf.applied", function(v) trace_applied = v end)
+local trace_steps = false trackers.register("otf.steps", function(v) trace_steps = v end)
+
+trackers.register("otf.verbose_chain", function(v) otf.setcontextchain(v and "verbose") end)
+trackers.register("otf.normal_chain", function(v) otf.setcontextchain(v and "normal") end)
+
+trackers.register("otf.replacements", "otf.singles,otf.multiples,otf.alternatives,otf.ligatures")
+trackers.register("otf.positions","otf.marks,otf.kerns,otf.cursive")
+trackers.register("otf.actions","otf.replacements,otf.positions")
+trackers.register("otf.injections","nodes.injections")
+
+trackers.register("*otf.sample","otf.steps,otf.actions,otf.analyzing")
+
+local insert_node_after = node.insert_after
+local delete_node = nodes.delete
+local copy_node = node.copy
+local find_node_tail = node.tail or node.slide
+local set_attribute = node.set_attribute
+local has_attribute = node.has_attribute
+
+local zwnj = 0x200C
+local zwj = 0x200D
+local wildcard = "*"
+local default = "dflt"
+
+local split_at_space = lpeg.Ct(lpeg.splitat(" ")) -- no trailing or multiple spaces anyway
+
+local glyph = node.id('glyph')
+local glue = node.id('glue')
+local kern = node.id('kern')
+local disc = node.id('disc')
+local whatsit = node.id('whatsit')
+
+local state = attributes.private('state')
+local markbase = attributes.private('markbase')
+local markmark = attributes.private('markmark')
+local markdone = attributes.private('markdone')
+local cursbase = attributes.private('cursbase')
+local curscurs = attributes.private('curscurs')
+local cursdone = attributes.private('cursdone')
+local kernpair = attributes.private('kernpair')
+
+local set_mark = nodes.set_mark
+local set_cursive = nodes.set_cursive
+local set_kern = nodes.set_kern
+local set_pair = nodes.set_pair
+
+local markonce = true
+local cursonce = true
+local kernonce = true
+
+local fontdata = fonts.ids
+
+otf.features.process = { }
+
+-- we share some vars here, after all, we have no nested lookups and
+-- less code
+
+local tfmdata = false
+local otfdata = false
+local characters = false
+local descriptions = false
+local marks = false
+local indices = false
+local unicodes = false
+local currentfont = false
+local lookuptable = false
+local anchorlookups = false
+local handlers = { }
+local rlmode = 0
+local featurevalue = false
+
+-- we cheat a bit and assume that a font,attr combination are kind of ranged
+
+local context_setups = fonts.define.specify.context_setups
+local context_numbers = fonts.define.specify.context_numbers
+local context_merged = fonts.define.specify.context_merged
+
+-- we cannot optimize with "start = first_character(head)" because then we don't
+-- know which rlmode we're in which messes up cursive handling later on
+--
+-- head is always a whatsit so we can safely assume that head is not changed
+
+local special_attributes = {
+ init = 1,
+ medi = 2,
+ fina = 3,
+ isol = 4
+}
+
+-- we use this for special testing and documentation
+
+local checkstep = (nodes and nodes.tracers and nodes.tracers.steppers.check) or function() end
+local registerstep = (nodes and nodes.tracers and nodes.tracers.steppers.register) or function() end
+local registermessage = (nodes and nodes.tracers and nodes.tracers.steppers.message) or function() end
+
+local function logprocess(...)
+ if trace_steps then
+ registermessage(...)
+ end
+ logs.report("otf direct",...)
+end
+local function logwarning(...)
+ logs.report("otf direct",...)
+end
+
+local function gref(n)
+ if type(n) == "number" then
+ local description = descriptions[n]
+ local name = description and description.name
+ if name then
+ return format("U+%04X (%s)",n,name)
+ else
+ return format("U+%04X",n)
+ end
+ elseif not n then
+ return "<error in tracing>"
+ else
+ local num, nam = { }, { }
+ for i=1,#n do
+ local ni = n[i]
+ num[#num+1] = format("U+%04X",ni)
+ local dni = descriptions[ni]
+ nam[#num] = (dni and dni.name) or "?"
+ end
+ return format("%s (%s)",concat(num," "), concat(nam," "))
+ end
+end
+
+local function cref(kind,chainname,chainlookupname,lookupname,index)
+ if index then
+ return format("feature %s, chain %s, sub %s, lookup %s, index %s",kind,chainname,chainlookupname,lookupname,index)
+ elseif lookupname then
+ return format("feature %s, chain %s, sub %s, lookup %s",kind,chainname or "?",chainlookupname or "?",lookupname)
+ elseif chainlookupname then
+ return format("feature %s, chain %s, sub %s",kind,chainname or "?",chainlookupname)
+ elseif chainname then
+ return format("feature %s, chain %s",kind,chainname)
+ else
+ return format("feature %s",kind)
+ end
+end
+
+local function pref(kind,lookupname)
+ return format("feature %s, lookup %s",kind,lookupname)
+end
+
+-- we can assume that languages that use marks are not hyphenated
+-- we can also assume that at most one discretionary is present
+
+local function markstoligature(kind,lookupname,start,stop,char)
+ local n = copy_node(start)
+ local keep = start
+ local current
+ current, start = insert_node_after(start,start,n)
+ local snext = stop.next
+ current.next = snext
+ if snext then
+ snext.prev = current
+ end
+ start.prev, stop.next = nil, nil
+ current.char, current.subtype, current.components = char, 2, start
+ return keep
+end
+
+local function toligature(kind,lookupname,start,stop,char,markflag,discfound) -- brr head
+ if start ~= stop then
+ if discfound then
+ local lignode = copy_node(start)
+ lignode.font = start.font
+ lignode.char = char
+ lignode.subtype = 2
+ start = node.do_ligature_n(start, stop, lignode)
+ if start.id == disc then
+ local prev = start.prev
+ start = start.next
+ end
+ else -- start is the ligature
+ local deletemarks = markflag ~= "mark"
+ local n = copy_node(start)
+ local current
+ current, start = insert_node_after(start,start,n)
+ local snext = stop.next
+ current.next = snext
+ if snext then
+ snext.prev = current
+ end
+ start.prev, stop.next = nil, nil
+ current.char, current.subtype, current.components = char, 2, start
+ local head = current
+ if deletemarks then
+ if trace_marks then
+ while start do
+ if marks[start.char] then
+ logwarning("%s: remove mark %s",pref(kind,lookupname),gref(start.char))
+ end
+ start = start.next
+ end
+ end
+ else
+ local i = 0
+ while start do
+ if marks[start.char] then
+ set_attribute(start,markdone,i)
+ if trace_marks then
+ logwarning("%s: keep mark %s, gets index %s",pref(kind,lookupname),gref(start.char),i)
+ end
+ head, current = insert_node_after(head,current,copy_node(start))
+ else
+ i = i + 1
+ end
+ start = start.next
+ end
+ start = current.next
+ while start and start.id == glyph do
+ if marks[start.char] then
+ set_attribute(start,markdone,i)
+ if trace_marks then
+ logwarning("%s: keep mark %s, gets index %s",pref(kind,lookupname),gref(start.char),i)
+ end
+ else
+ break
+ end
+ start = start.next
+ end
+ end
+ return head
+ end
+ else
+ start.char = char
+ end
+ return start
+end
+
+function handlers.gsub_single(start,kind,lookupname,replacement)
+ if trace_singles then
+ logprocess("%s: replacing %s by single %s",pref(kind,lookupname),gref(start.char),gref(replacement))
+ end
+ start.char = replacement
+ return start, true
+end
+
+local function alternative_glyph(start,alternatives,kind,chainname,chainlookupname,lookupname) -- chainname and chainlookupname optional
+ local value, choice, n = featurevalue or tfmdata.shared.features[kind], nil, #alternatives -- global value, brrr
+ if value == "random" then
+ local r = math.random(1,n)
+ value, choice = format("random, choice %s",r), alternatives[r]
+ elseif value == "first" then
+ value, choice = format("first, choice %s",1), alternatives[1]
+ elseif value == "last" then
+ value, choice = format("last, choice %s",n), alternatives[n]
+ elseif type(value) ~= "number" then
+ value, choice = "default, choice 1", alternatives[1]
+ elseif value > n then
+ value, choice = format("no %s variants, taking %s",value,n), alternatives[n]
+ elseif value == 0 then
+ value, choice = format("choice %s (no change)",value), start.char
+ elseif value < 1 then
+ value, choice = format("no %s variants, taking %s",value,1), alternatives[1]
+ else
+ value, choice = format("choice %s",value), alternatives[value]
+ end
+ if not choice then
+ logwarning("%s: no variant %s for %s",cref(kind,chainname,chainlookupname,lookupname),value,gref(start.char))
+ choice, value = start.char, format("no replacement instead of %s",value)
+ end
+ return choice, value
+end
+
+function handlers.gsub_alternate(start,kind,lookupname,alternative,sequence)
+ local choice, index = alternative_glyph(start,alternative,kind,lookupname)
+ if trace_alternatives then
+ logprocess("%s: replacing %s by alternative %s (%s)",pref(kind,lookupname),gref(start.char),gref(choice),index)
+ end
+ start.char = choice
+ return start, true
+end
+
+function handlers.gsub_multiple(start,kind,lookupname,multiple)
+ if trace_multiples then
+ logprocess("%s: replacing %s by multiple %s",pref(kind,lookupname),gref(start.char),gref(multiple))
+ end
+ start.char = multiple[1]
+ if #multiple > 1 then
+ for k=2,#multiple do
+ local n = copy_node(start)
+ n.char = multiple[k]
+ local sn = start.next
+ n.next = sn
+ n.prev = start
+ if sn then
+ sn.prev = n
+ end
+ start.next = n
+ start = n
+ end
+ end
+ return start, true
+end
+
+function handlers.gsub_ligature(start,kind,lookupname,ligature,sequence) --or maybe pass lookup ref
+ local s, stop, discfound = start.next, nil, false
+ if marks[start.char] then
+ while s do
+ local id = s.id
+ if id == glyph and s.subtype<256 then
+ if s.font == currentfont then
+ local char = s.char
+ local lg = ligature[1][char]
+ if not lg then
+ break
+ else
+ stop = s
+ ligature = lg
+ s = s.next
+ end
+ else
+ break
+ end
+ else
+ break
+ end
+ end
+ if stop and ligature[2] then
+ if trace_ligatures then
+ local startchar, stopchar = start.char, stop.char
+ start = markstoligature(kind,lookupname,start,stop,ligature[2])
+ logprocess("%s: replacing %s upto %s by ligature %s",pref(kind,lookupname),gref(startchar),gref(stopchar),gref(start.char))
+ else
+ start = markstoligature(kind,lookupname,start,stop,ligature[2])
+ end
+ return start, true
+ end
+ else
+ local skipmark = sequence.flags[1]
+ while s do
+ local id = s.id
+ if id == glyph and s.subtype<256 then
+ if s.font == currentfont then
+ local char = s.char
+ if skipmark and marks[char] then
+ s = s.next
+ else
+ local lg = ligature[1][char]
+ if not lg then
+ break
+ else
+ stop = s
+ ligature = lg
+ s = s.next
+ end
+ end
+ else
+ break
+ end
+ elseif id == disc then
+ discfound = true
+ s = s.next
+ else
+ break
+ end
+ end
+ if stop and ligature[2] then
+ if trace_ligatures then
+ local startchar, stopchar = start.char, stop.char
+ start = toligature(kind,lookupname,start,stop,ligature[2],skipmark,discfound)
+ logprocess("%s: replacing %s upto %s by ligature %s",pref(kind,lookupname),gref(startchar),gref(stopchar),gref(start.char))
+ else
+ start = toligature(kind,lookupname,start,stop,ligature[2],skipmark,discfound)
+ end
+ return start, true
+ end
+ end
+ return start, false
+end
+
+--[[ldx--
+<p>We get hits on a mark, but we're not sure if the it has to be applied so
+we need to explicitly test for basechar, baselig and basemark entries.</p>
+--ldx]]--
+
+function handlers.gpos_mark2base(start,kind,lookupname,markanchors,sequence)
+ local markchar = start.char
+ if marks[markchar] then
+ local base = start.prev -- [glyph] [start=mark]
+ if base and base.id == glyph and base.subtype<256 and base.font == currentfont then
+ local basechar = base.char
+ if marks[basechar] then
+ while true do
+ base = base.prev
+ if base and base.id == glyph and base.subtype<256 and base.font == currentfont then
+ basechar = base.char
+ if not marks[basechar] then
+ break
+ end
+ else
+ if trace_bugs then
+ logwarning("%s: no base for mark %s",pref(kind,lookupname),gref(markchar))
+ end
+ return start, false
+ end
+ end
+ end
+ local baseanchors = descriptions[basechar]
+ if baseanchors then
+ baseanchors = baseanchors.anchors
+ end
+ if baseanchors then
+ local baseanchors = baseanchors['basechar']
+ if baseanchors then
+ local al = anchorlookups[lookupname]
+ for anchor,ba in next, baseanchors do
+ if al[anchor] then
+ local ma = markanchors[anchor]
+ if ma then
+ local dx, dy, bound = set_mark(start,base,tfmdata.factor,rlmode,ba,ma)
+ if trace_marks then
+ logprocess("%s, anchor %s, bound %s: anchoring mark %s to basechar %s => (%s,%s)",
+ pref(kind,lookupname),anchor,bound,gref(markchar),gref(basechar),dx,dy)
+ end
+ return start, true
+ end
+ end
+ end
+ if trace_bugs then
+ logwarning("%s, no matching anchors for mark %s and base %s",pref(kind,lookupname),gref(markchar),gref(basechar))
+ end
+ end
+ else -- if trace_bugs then
+ -- logwarning("%s: char %s is missing in font",pref(kind,lookupname),gref(basechar))
+ fonts.register_message(currentfont,basechar,"no base anchors")
+ end
+ elseif trace_bugs then
+ logwarning("%s: prev node is no char",pref(kind,lookupname))
+ end
+ elseif trace_bugs then
+ logwarning("%s: mark %s is no mark",pref(kind,lookupname),gref(markchar))
+ end
+ return start, false
+end
+
+function handlers.gpos_mark2ligature(start,kind,lookupname,markanchors,sequence)
+ -- check chainpos variant
+ local markchar = start.char
+ if marks[markchar] then
+ local base = start.prev -- [glyph] [optional marks] [start=mark]
+ local index = 1
+ if base and base.id == glyph and base.subtype<256 and base.font == currentfont then
+ local basechar = base.char
+ if marks[basechar] then
+ index = index + 1
+ while true do
+ base = base.prev
+ if base and base.id == glyph and base.subtype<256 and base.font == currentfont then
+ basechar = base.char
+ if marks[basechar] then
+ index = index + 1
+ else
+ break
+ end
+ else
+ if trace_bugs then
+ logwarning("%s: no base for mark %s",pref(kind,lookupname),gref(markchar))
+ end
+ return start, false
+ end
+ end
+ end
+ local i = has_attribute(start,markdone)
+ if i then index = i end
+ local baseanchors = descriptions[basechar]
+ if baseanchors then
+ baseanchors = baseanchors.anchors
+ if baseanchors then
+ local baseanchors = baseanchors['baselig']
+ if baseanchors then
+ local al = anchorlookups[lookupname]
+ for anchor,ba in next, baseanchors do
+ if al[anchor] then
+ local ma = markanchors[anchor]
+ if ma then
+ ba = ba[index]
+ if ba then
+ local dx, dy, bound = set_mark(start,base,tfmdata.factor,rlmode,ba,ma,index)
+ if trace_marks then
+ logprocess("%s, anchor %s, index %s, bound %s: anchoring mark %s to baselig %s at index %s => (%s,%s)",
+ pref(kind,lookupname),anchor,index,bound,gref(markchar),gref(basechar),index,dx,dy)
+ end
+ return start, true
+ end
+ end
+ end
+ end
+ if trace_bugs then
+ logwarning("%s: no matching anchors for mark %s and baselig %s",pref(kind,lookupname),gref(markchar),gref(basechar))
+ end
+ end
+ end
+ else -- if trace_bugs then
+ -- logwarning("%s: char %s is missing in font",pref(kind,lookupname),gref(basechar))
+ fonts.register_message(currentfont,basechar,"no base anchors")
+ end
+ elseif trace_bugs then
+ logwarning("%s: prev node is no char",pref(kind,lookupname))
+ end
+ elseif trace_bugs then
+ logwarning("%s: mark %s is no mark",pref(kind,lookupname),gref(markchar))
+ end
+ return start, false
+end
+
+function handlers.gpos_mark2mark(start,kind,lookupname,markanchors,sequence)
+ local markchar = start.char
+ if marks[markchar] then
+--~ local alreadydone = markonce and has_attribute(start,markmark)
+--~ if not alreadydone then
+ local base = start.prev -- [glyph] [basemark] [start=mark]
+ if base and base.id == glyph and base.subtype<256 and base.font == currentfont then -- subtype test can go
+ local basechar = base.char
+ local baseanchors = descriptions[basechar]
+ if baseanchors then
+ baseanchors = baseanchors.anchors
+ if baseanchors then
+ baseanchors = baseanchors['basemark']
+ if baseanchors then
+ local al = anchorlookups[lookupname]
+ for anchor,ba in next, baseanchors do
+ if al[anchor] then
+ local ma = markanchors[anchor]
+ if ma then
+ local dx, dy, bound = set_mark(start,base,tfmdata.factor,rlmode,ba,ma)
+ if trace_marks then
+ logprocess("%s, anchor %s, bound %s: anchoring mark %s to basemark %s => (%s,%s)",
+ pref(kind,lookupname),anchor,bound,gref(markchar),gref(basechar),dx,dy)
+ end
+ return start,true
+ end
+ end
+ end
+ if trace_bugs then
+ logwarning("%s: no matching anchors for mark %s and basemark %s",pref(kind,lookupname),gref(markchar),gref(basechar))
+ end
+ end
+ end
+ else -- if trace_bugs then
+ -- logwarning("%s: char %s is missing in font",pref(kind,lookupname),gref(basechar))
+ fonts.register_message(currentfont,basechar,"no base anchors")
+ end
+ elseif trace_bugs then
+ logwarning("%s: prev node is no mark",pref(kind,lookupname))
+ end
+--~ elseif trace_marks and trace_details then
+--~ logprocess("%s, mark %s is already bound (n=%s), ignoring mark2mark",pref(kind,lookupname),gref(markchar),alreadydone)
+--~ end
+ elseif trace_bugs then
+ logwarning("%s: mark %s is no mark",pref(kind,lookupname),gref(markchar))
+ end
+ return start,false
+end
+
+function handlers.gpos_cursive(start,kind,lookupname,exitanchors,sequence) -- to be checked
+ local alreadydone = cursonce and has_attribute(start,cursbase)
+ if not alreadydone then
+ local done = false
+ local startchar = start.char
+ if marks[startchar] then
+ if trace_cursive then
+ logprocess("%s: ignoring cursive for mark %s",pref(kind,lookupname),gref(startchar))
+ end
+ else
+ local nxt = start.next
+ while not done and nxt and nxt.id == glyph and nxt.subtype<256 and nxt.font == currentfont do
+ local nextchar = nxt.char
+ if marks[nextchar] then
+ -- should not happen (maybe warning)
+ nxt = nxt.next
+ else
+ local entryanchors = descriptions[nextchar]
+ if entryanchors then
+ entryanchors = entryanchors.anchors
+ if entryanchors then
+ entryanchors = entryanchors['centry']
+ if entryanchors then
+ local al = anchorlookups[lookupname]
+ for anchor, entry in next, entryanchors do
+ if al[anchor] then
+ local exit = exitanchors[anchor]
+ if exit then
+ local dx, dy, bound = set_cursive(start,nxt,tfmdata.factor,rlmode,exit,entry,characters[startchar],characters[nextchar])
+ if trace_cursive then
+ logprocess("%s: moving %s to %s cursive (%s,%s) using anchor %s and bound %s",pref(kind,lookupname),gref(startchar),gref(nextchar),dx,dy,anchor,bound)
+ end
+ done = true
+ break
+ end
+ end
+ end
+ end
+ end
+ else -- if trace_bugs then
+ -- logwarning("%s: char %s is missing in font",pref(kind,lookupname),gref(startchar))
+ fonts.register_message(currentfont,startchar,"no entry anchors")
+ end
+ break
+ end
+ end
+ end
+ return start, done
+ else
+ if trace_cursive and trace_details then
+ logprocess("%s, cursive %s is already done",pref(kind,lookupname),gref(start.char),alreadydone)
+ end
+ return start, false
+ end
+end
+
+function handlers.gpos_single(start,kind,lookupname,kerns,sequence)
+ local startchar = start.char
+ local dx, dy = set_pair(start,tfmdata.factor,rlmode,kerns,characters[startchar])
+ if trace_kerns then
+ logprocess("%s: shifting single %s by (%s,%s)",pref(kind,lookupname),gref(startchar),dx,dy)
+ end
+ return start, false
+end
+
+function handlers.gpos_pair(start,kind,lookupname,kerns,sequence)
+ -- todo: kerns in disc nodes: pre, post, replace -> loop over disc too
+ -- todo: kerns in components of ligatures
+ local snext = start.next
+ if not snext then
+ return start, false
+ else
+ local prev, done = start, false
+ local factor = tfmdata.factor
+ while snext and snext.id == glyph and snext.subtype<256 and snext.font == currentfont do
+ local nextchar = snext.char
+local krn = kerns[nextchar]
+ if not krn and marks[nextchar] then
+ prev = snext
+ snext = snext.next
+ else
+ local krn = kerns[nextchar]
+ if not krn then
+ -- skip
+ elseif type(krn) == "table" then
+ if krn[1] == "pair" then
+ local a, b = krn[3], krn[4]
+ if a and #a > 0 then
+ local startchar = start.char
+ local x, y, w, h = set_pair(start,factor,rlmode,a,characters[startchar])
+ if trace_kerns then
+ logprocess("%s: shifting first of pair %s and %s by (%s,%s) and correction (%s,%s)",pref(kind,lookupname),gref(startchar),gref(nextchar),x,y,w,h)
+ end
+ end
+ if b and #b > 0 then
+ local startchar = start.char
+ local x, y, w, h = set_pair(snext,factor,rlmode,b,characters[nextchar])
+ if trace_kerns then
+ logprocess("%s: shifting second of pair %s and %s by (%s,%s) and correction (%s,%s)",pref(kind,lookupname),gref(startchar),gref(nextchar),x,y,w,h)
+ end
+ end
+ else
+ logs.report("%s: check this out (old kern stuff)",pref(kind,lookupname))
+ local a, b = krn[3], krn[7]
+ if a and a ~= 0 then
+ local k = set_kern(snext,factor,rlmode,a)
+ if trace_kerns then
+ logprocess("%s: inserting first kern %s between %s and %s",pref(kind,lookupname),k,gref(prev.char),gref(nextchar))
+ end
+ end
+ if b and b ~= 0 then
+ logwarning("%s: ignoring second kern xoff %s",pref(kind,lookupname),b*factor)
+ end
+ end
+ done = true
+ elseif krn ~= 0 then
+ local k = set_kern(snext,factor,rlmode,krn)
+ if trace_kerns then
+ logprocess("%s: inserting kern %s between %s and %s",pref(kind,lookupname),k,gref(prev.char),gref(nextchar))
+ end
+ done = true
+ end
+ break
+ end
+ end
+ return start, done
+ end
+end
+
+--[[ldx--
+<p>I will implement multiple chain replacements once I run into a font that uses
+it. It's not that complex to handle.</p>
+--ldx]]--
+
+local chainmores = { }
+local chainprocs = { }
+
+local function logprocess(...)
+ if trace_steps then
+ registermessage(...)
+ end
+ logs.report("otf subchain",...)
+end
+local function logwarning(...)
+ logs.report("otf subchain",...)
+end
+
+-- ['coverage']={
+-- ['after']={ "r" },
+-- ['before']={ "q" },
+-- ['current']={ "a", "b", "c" },
+-- },
+-- ['lookups']={ "ls_l_1", "ls_l_1", "ls_l_1" },
+
+function chainmores.chainsub(start,stop,kind,chainname,currentcontext,cache,lookuplist,chainlookupname,n)
+ logprocess("%s: a direct call to chainsub cannot happen",cref(kind,chainname,chainlookupname))
+ return start, false
+end
+
+-- handled later:
+--
+-- function chainmores.gsub_single(start,stop,kind,chainname,currentcontext,cache,currentlookup,chainlookupname,n)
+-- return chainprocs.gsub_single(start,stop,kind,chainname,currentcontext,cache,currentlookup,chainlookupname,n)
+-- end
+
+function chainmores.gsub_multiple(start,stop,kind,chainname,currentcontext,cache,currentlookup,chainlookupname,n)
+ logprocess("%s: gsub_multiple not yet supported",cref(kind,chainname,chainlookupname))
+ return start, false
+end
+function chainmores.gsub_alternate(start,stop,kind,chainname,currentcontext,cache,currentlookup,chainlookupname,n)
+ logprocess("%s: gsub_alternate not yet supported",cref(kind,chainname,chainlookupname))
+ return start, false
+end
+
+-- handled later:
+--
+-- function chainmores.gsub_ligature(start,stop,kind,chainname,currentcontext,cache,currentlookup,chainlookupname,n)
+-- return chainprocs.gsub_ligature(start,stop,kind,chainname,currentcontext,cache,currentlookup,chainlookupname,n)
+-- end
+
+local function logprocess(...)
+ if trace_steps then
+ registermessage(...)
+ end
+ logs.report("otf chain",...)
+end
+local function logwarning(...)
+ logs.report("otf chain",...)
+end
+
+-- We could share functions but that would lead to extra function calls with many
+-- arguments, redundant tests and confusing messages.
+
+function chainprocs.chainsub(start,stop,kind,chainname,currentcontext,cache,lookuplist,chainlookupname)
+ logwarning("%s: a direct call to chainsub cannot happen",cref(kind,chainname,chainlookupname))
+ return start, false
+end
+
+-- The reversesub is a special case, which is why we need to store the replacements
+-- in a bit weird way. There is no lookup and the replacement comes from the lookup
+-- itself. It is meant mostly for dealing with Urdu.
+
+function chainprocs.reversesub(start,stop,kind,chainname,currentcontext,cache,replacements)
+ local char = start.char
+ local replacement = replacements[char]
+ if replacement then
+ if trace_singles then
+ logprocess("%s: single reverse replacement of %s by %s",cref(kind,chainname),gref(char),gref(replacement))
+ end
+ start.char = replacement
+ return start, true
+ else
+ return start, false
+ end
+end
+
+--[[ldx--
+<p>This chain stuff is somewhat tricky since we can have a sequence of actions to be
+applied: single, alternate, multiple or ligature where ligature can be an invalid
+one in the sense that it will replace multiple by one but not neccessary one that
+looks like the combination (i.e. it is the counterpart of multiple then). For
+example, the following is valid:</p>
+
+<typing>
+<line>xxxabcdexxx [single a->A][multiple b->BCD][ligature cde->E] xxxABCDExxx</line>
+</typing>
+
+<p>Therefore we we don't really do the replacement here already unless we have the
+single lookup case. The efficiency of the replacements can be improved by deleting
+as less as needed but that would also mke the code even more messy.</p>
+--ldx]]--
+
+local function delete_till_stop(start,stop,ignoremarks)
+ if start ~= stop then
+ -- todo keep marks
+ local done = false
+ while not done do
+ done = start == stop
+ delete_node(start,start.next)
+ end
+ end
+end
+
+--[[ldx--
+<p>Here we replace start by a single variant, First we delete the rest of the
+match.</p>
+--ldx]]--
+
+function chainprocs.gsub_single(start,stop,kind,chainname,currentcontext,cache,currentlookup,chainlookupname,chainindex)
+ -- todo: marks ?
+ if not chainindex then
+ delete_till_stop(start,stop) -- ,currentlookup.flags[1])
+ end
+ local current = start
+ local subtables = currentlookup.subtables
+ while current do
+ if current.id == glyph then
+ local currentchar = current.char
+ local lookupname = subtables[1]
+ local replacement = cache.gsub_single[lookupname]
+ if not replacement then
+ if trace_bugs then
+ logwarning("%s: no single hits",cref(kind,chainname,chainlookupname,lookupname,chainindex))
+ end
+ else
+ replacement = replacement[currentchar]
+ if not replacement then
+ if trace_bugs then
+ logwarning("%s: no single for %s",cref(kind,chainname,chainlookupname,lookupname,chainindex),gref(currentchar))
+ end
+ else
+ if trace_singles then
+ logprocess("%s: replacing single %s by %s",cref(kind,chainname,chainlookupname,lookupname,chainindex),gref(currentchar),gref(replacement))
+ end
+ current.char = replacement
+ end
+ end
+ return start, true
+ elseif current == stop then
+ break
+ else
+ current = current.next
+ end
+ end
+ return start, false
+end
+
+chainmores.gsub_single = chainprocs.gsub_single
+
+--[[ldx--
+<p>Here we replace start by a sequence of new glyphs. First we delete the rest of
+the match.</p>
+--ldx]]--
+
+function chainprocs.gsub_multiple(start,stop,kind,chainname,currentcontext,cache,currentlookup,chainlookupname)
+ delete_till_stop(start,stop)
+ local startchar = start.char
+ local subtables = currentlookup.subtables
+ local lookupname = subtables[1]
+ local replacements = cache.gsub_multiple[lookupname]
+ if not replacements then
+ if trace_bugs then
+ logwarning("%s: no multiple hits",cref(kind,chainname,chainlookupname,lookupname))
+ end
+ else
+ replacements = replacements[startchar]
+ if not replacements then
+ if trace_bugs then
+ logwarning("%s: no multiple for %s",cref(kind,chainname,chainlookupname,lookupname),gref(startchar))
+ end
+ else
+ if trace_multiples then
+ logprocess("%s: replacing %s by multiple characters %s",cref(kind,chainname,chainlookupname,lookupname),gref(startchar),gref(replacements))
+ end
+ local sn = start.next
+ for k=1,#replacements do
+ if k == 1 then
+ start.char = replacements[k]
+ else
+ local n = copy_node(start) -- maybe delete the components and such
+ n.char = replacements[k]
+ n.next, n.prev = sn, start
+ if sn then
+ sn.prev = n
+ end
+ start.next, start = n, n
+ end
+ end
+ return start, true
+ end
+ end
+ return start, false
+end
+
+--[[ldx--
+<p>Here we replace start by new glyph. First we delete the rest of the match.</p>
+--ldx]]--
+
+function chainprocs.gsub_alternate(start,stop,kind,lookupname,currentcontext,cache,currentlookup)
+ -- todo: marks ?
+ delete_till_stop(start,stop)
+ local current = start
+ local subtables = currentlookup.subtables
+ while current do
+ if current.id == glyph then
+ local currentchar = current.char
+ local lookupname = subtables[1]
+ local alternatives = cache.gsub_alternate[lookupname]
+ if not alternatives then
+ if trace_bugs then
+ logwarning("%s: no alternative hits",cref(kind,chainname,chainlookupname,lookupname))
+ end
+ else
+ alternatives = alternatives[currentchar]
+ if not alternatives then
+ if trace_bugs then
+ logwarning("%s: no alternative for %s",cref(kind,chainname,chainlookupname,lookupname),gref(currentchar))
+ end
+ else
+ local choice, index = alternative_glyph(current,alternatives,kind,chainname,chainlookupname,lookupname)
+ current.char = choice
+ if trace_alternatives then
+ logprocess("%s: replacing single %s by alternative %s (%s)",cref(kind,chainname,chainlookupname,lookupname),index,gref(currentchar),gref(choice),index)
+ end
+ end
+ end
+ return start, true
+ elseif current == stop then
+ break
+ else
+ current = current.next
+ end
+ end
+ return start, false
+end
+
+--[[ldx--
+<p>When we replace ligatures we use a helper that handles the marks. I might change
+this function (move code inline and handle the marks by a separate function). We
+assume rather stupid ligatures (no complex disc nodes).</p>
+--ldx]]--
+
+function chainprocs.gsub_ligature(start,stop,kind,chainname,currentcontext,cache,currentlookup,chainlookupname,chainindex)
+ local startchar = start.char
+ local subtables = currentlookup.subtables
+ local lookupname = subtables[1]
+ local ligatures = cache.gsub_ligature[lookupname]
+ if not ligatures then
+ if trace_bugs then
+ logwarning("%s: no ligature hits",cref(kind,chainname,chainlookupname,lookupname,chainindex))
+ end
+ else
+ ligatures = ligatures[startchar]
+ if not ligatures then
+ if trace_bugs then
+ logwarning("%s: no ligatures starting with %s",cref(kind,chainname,chainlookupname,lookupname,chainindex),gref(startchar))
+ end
+ else
+ local s, discfound, last, nofreplacements = start.next, false, stop, 0
+ while s do
+ local id = s.id
+ if id == disc then
+ s = s.next
+ discfound = true
+ else
+ local schar = s.char
+ if marks[schar] then -- marks
+ s = s.next
+ else
+ local lg = ligatures[1][schar]
+ if not lg then
+ break
+ else
+ ligatures, last, nofreplacements = lg, s, nofreplacements + 1
+ if s == stop then
+ break
+ else
+ s = s.next
+ end
+ end
+ end
+ end
+ end
+ local l2 = ligatures[2]
+ if l2 then
+ if chainindex then
+ stop = last
+ end
+ if trace_ligatures then
+ if start == stop then
+ logprocess("%s: replacing character %s by ligature %s",cref(kind,chainname,chainlookupname,lookupname,chainindex),gref(startchar),gref(l2))
+ else
+ logprocess("%s: replacing character %s upto %s by ligature %s",cref(kind,chainname,chainlookupname,lookupname,chainindex),gref(startchar),gref(stop.char),gref(l2))
+ end
+ end
+ start = toligature(kind,lookup,start,stop,l2,currentlookup.flags[1],discfound)
+ return start, true, nofreplacements
+ elseif trace_bugs then
+ if start == stop then
+ logwarning("%s: replacing character %s by ligature fails",cref(kind,chainname,chainlookupname,lookupname,chainindex),gref(startchar))
+ else
+ logwarning("%s: replacing character %s upto %s by ligature fails",cref(kind,chainname,chainlookupname,lookupname,chainindex),gref(startchar),gref(stop.char))
+ end
+ end
+ end
+ end
+ return start, false, 0
+end
+
+chainmores.gsub_ligature = chainprocs.gsub_ligature
+
+function chainprocs.gpos_mark2base(start,stop,kind,chainname,currentcontext,cache,currentlookup,chainlookupname)
+ local markchar = start.char
+ if marks[markchar] then
+ local subtables = currentlookup.subtables
+ local lookupname = subtables[1]
+ local markanchors = cache.gpos_mark2base[lookupname]
+ if markanchors then
+ markanchors = markanchors[markchar]
+ end
+ if markanchors then
+ local base = start.prev -- [glyph] [start=mark]
+ if base and base.id == glyph and base.subtype<256 and base.font == currentfont then
+ local basechar = base.char
+ if marks[basechar] then
+ while true do
+ base = base.prev
+ if base and base.id == glyph and base.subtype<256 and base.font == currentfont then
+ basechar = base.char
+ if not marks[basechar] then
+ break
+ end
+ else
+ if trace_bugs then
+ logwarning("%s: no base for mark %s",pref(kind,lookupname),gref(markchar))
+ end
+ return start, false
+ end
+ end
+ end
+ local baseanchors = descriptions[basechar].anchors
+ if baseanchors then
+ local baseanchors = baseanchors['basechar']
+ if baseanchors then
+ local al = anchorlookups[lookupname]
+ for anchor,ba in next, baseanchors do
+ if al[anchor] then
+ local ma = markanchors[anchor]
+ if ma then
+ local dx, dy, bound = set_mark(start,base,tfmdata.factor,rlmode,ba,ma)
+ if trace_marks then
+ logprocess("%s, anchor %s, bound %s: anchoring mark %s to basechar %s => (%s,%s)",
+ cref(kind,chainname,chainlookupname,lookupname),anchor,bound,gref(markchar),gref(basechar),dx,dy)
+ end
+ return start, true
+ end
+ end
+ end
+ if trace_bugs then
+ logwarning("%s, no matching anchors for mark %s and base %s",cref(kind,chainname,chainlookupname,lookupname),gref(markchar),gref(basechar))
+ end
+ end
+ end
+ elseif trace_bugs then
+ logwarning("%s: prev node is no char",cref(kind,chainname,chainlookupname,lookupname))
+ end
+ elseif trace_bugs then
+ logwarning("%s: mark %s has no anchors",cref(kind,chainname,chainlookupname,lookupname),gref(markchar))
+ end
+ elseif trace_bugs then
+ logwarning("%s: mark %s is no mark",cref(kind,chainname,chainlookupname),gref(markchar))
+ end
+ return start, false
+end
+
+function chainprocs.gpos_mark2ligature(start,stop,kind,chainname,currentcontext,cache,currentlookup,chainlookupname)
+ local markchar = start.char
+ if marks[markchar] then
+ local subtables = currentlookup.subtables
+ local lookupname = subtables[1]
+ local markanchors = cache.gpos_mark2ligature[lookupname]
+ if markanchors then
+ markanchors = markanchors[markchar]
+ end
+ if markanchors then
+ local base = start.prev -- [glyph] [optional marks] [start=mark]
+ local index = 1
+ if base and base.id == glyph and base.subtype<256 and base.font == currentfont then
+ local basechar = base.char
+ if marks[basechar] then
+ index = index + 1
+ while true do
+ base = base.prev
+ if base and base.id == glyph and base.subtype<256 and base.font == currentfont then
+ basechar = base.char
+ if marks[basechar] then
+ index = index + 1
+ else
+ break
+ end
+ else
+ if trace_bugs then
+ logwarning("%s: no base for mark %s",cref(kind,chainname,chainlookupname,lookupname),markchar)
+ end
+ return start, false
+ end
+ end
+ end
+ -- todo: like marks a ligatures hash
+ local i = has_attribute(start,markdone)
+ if i then index = i end
+ local baseanchors = descriptions[basechar].anchors
+ if baseanchors then
+ local baseanchors = baseanchors['baselig']
+ if baseanchors then
+ local al = anchorlookups[lookupname]
+ for anchor,ba in next, baseanchors do
+ if al[anchor] then
+ local ma = markanchors[anchor]
+ if ma then
+ ba = ba[index]
+ if ba then
+ local dx, dy, bound = set_mark(start,base,tfmdata.factor,rlmode,ba,ma,index)
+ if trace_marks then
+ logprocess("%s, anchor %s, bound %s: anchoring mark %s to baselig %s at index %s => (%s,%s)",
+ cref(kind,chainname,chainlookupname,lookupname),anchor,a or bound,gref(markchar),gref(basechar),index,dx,dy)
+ end
+ return start, true
+ end
+ end
+ end
+ end
+ if trace_bugs then
+ logwarning("%s: no matching anchors for mark %s and baselig %s",cref(kind,chainname,chainlookupname,lookupname),gref(markchar),gref(basechar))
+ end
+ end
+ end
+ elseif trace_bugs then
+ logwarning("feature %s, lookup %s: prev node is no char",kind,lookupname)
+ end
+ elseif trace_bugs then
+ logwarning("%s: mark %s has no anchors",cref(kind,chainname,chainlookupname,lookupname),gref(markchar))
+ end
+ elseif trace_bugs then
+ logwarning("%s: mark %s is no mark",cref(kind,chainname,chainlookupname),gref(markchar))
+ end
+ return start, false
+end
+
+function chainprocs.gpos_mark2mark(start,stop,kind,chainname,currentcontext,cache,currentlookup,chainlookupname)
+ local markchar = start.char
+ if marks[markchar] then
+--~ local alreadydone = markonce and has_attribute(start,markmark)
+--~ if not alreadydone then
+ -- local markanchors = descriptions[markchar].anchors markanchors = markanchors and markanchors.mark
+ local subtables = currentlookup.subtables
+ local lookupname = subtables[1]
+ local markanchors = cache.gpos_mark2mark[lookupname]
+ if markanchors then
+ markanchors = markanchors[markchar]
+ end
+ if markanchors then
+ local base = start.prev -- [glyph] [basemark] [start=mark]
+ if base and base.id == glyph and base.subtype<256 and base.font == currentfont then -- subtype test can go
+ local basechar = base.char
+ local baseanchors = descriptions[basechar].anchors
+ if baseanchors then
+ baseanchors = baseanchors['basemark']
+ if baseanchors then
+ local al = anchorlookups[lookupname]
+ for anchor,ba in next, baseanchors do
+ if al[anchor] then
+ local ma = markanchors[anchor]
+ if ma then
+ local dx, dy, bound = set_mark(start,base,tfmdata.factor,rlmode,ba,ma)
+ if trace_marks then
+ logprocess("%s, anchor %s, bound %s: anchoring mark %s to basemark %s => (%s,%s)",
+ cref(kind,chainname,chainlookupname,lookupname),anchor,bound,gref(markchar),gref(basechar),dx,dy)
+ end
+ return start, true
+ end
+ end
+ end
+ if trace_bugs then
+ logwarning("%s: no matching anchors for mark %s and basemark %s",gref(kind,chainname,chainlookupname,lookupname),gref(markchar),gref(basechar))
+ end
+ end
+ end
+ elseif trace_bugs then
+ logwarning("%s: prev node is no mark",cref(kind,chainname,chainlookupname,lookupname))
+ end
+ elseif trace_bugs then
+ logwarning("%s: mark %s has no anchors",cref(kind,chainname,chainlookupname,lookupname),gref(markchar))
+ end
+--~ elseif trace_marks and trace_details then
+--~ logprocess("%s, mark %s is already bound (n=%s), ignoring mark2mark",pref(kind,lookupname),gref(markchar),alreadydone)
+--~ end
+ elseif trace_bugs then
+ logwarning("%s: mark %s is no mark",cref(kind,chainname,chainlookupname),gref(markchar))
+ end
+ return start, false
+end
+
+-- ! ! ! untested ! ! !
+
+function chainprocs.gpos_cursive(start,stop,kind,chainname,currentcontext,cache,currentlookup,chainlookupname)
+ local alreadydone = cursonce and has_attribute(start,cursbase)
+ if not alreadydone then
+ local startchar = start.char
+ local subtables = currentlookup.subtables
+ local lookupname = subtables[1]
+ local exitanchors = cache.gpos_cursive[lookupname]
+ if exitanchors then
+ exitanchors = exitanchors[startchar]
+ end
+ if exitanchors then
+ local done = false
+ if marks[startchar] then
+ if trace_cursive then
+ logprocess("%s: ignoring cursive for mark %s",pref(kind,lookupname),gref(startchar))
+ end
+ else
+ local nxt = start.next
+ while not done and nxt and nxt.id == glyph and nxt.subtype<256 and nxt.font == currentfont do
+ local nextchar = nxt.char
+ if marks[nextchar] then
+ -- should not happen (maybe warning)
+ nxt = nxt.next
+ else
+ local entryanchors = descriptions[nextchar]
+ if entryanchors then
+ entryanchors = entryanchors.anchors
+ if entryanchors then
+ entryanchors = entryanchors['centry']
+ if entryanchors then
+ local al = anchorlookups[lookupname]
+ for anchor, entry in next, entryanchors do
+ if al[anchor] then
+ local exit = exitanchors[anchor]
+ if exit then
+ local dx, dy, bound = set_cursive(start,nxt,tfmdata.factor,rlmode,exit,entry,characters[startchar],characters[nextchar])
+ if trace_cursive then
+ logprocess("%s: moving %s to %s cursive (%s,%s) using anchor %s and bound %s",pref(kind,lookupname),gref(startchar),gref(nextchar),dx,dy,anchor,bound)
+ end
+ done = true
+ break
+ end
+ end
+ end
+ end
+ end
+ else -- if trace_bugs then
+ -- logwarning("%s: char %s is missing in font",pref(kind,lookupname),gref(startchar))
+ fonts.register_message(currentfont,startchar,"no entry anchors")
+ end
+ break
+ end
+ end
+ end
+ return start, done
+ else
+ if trace_cursive and trace_details then
+ logprocess("%s, cursive %s is already done",pref(kind,lookupname),gref(start.char),alreadydone)
+ end
+ return start, false
+ end
+ end
+ return start, false
+end
+
+function chainprocs.gpos_single(start,stop,kind,chainname,currentcontext,cache,currentlookup,chainlookupname)
+ -- untested
+ local startchar = start.char
+ local subtables = currentlookup.subtables
+ local lookupname = subtables[1]
+ local kerns = cache.gpos_single[lookupname]
+ if kerns then
+ kerns = kerns[startchar]
+ if kerns then
+ local dx, dy = set_pair(start,tfmdata.factor,rlmode,kerns,characters[startchar])
+ if trace_kerns then
+ logprocess("%s: shifting single %s by (%s,%s)",cref(kind,chainname,chainlookupname),gref(startchar),dx,dy)
+ end
+ end
+ end
+ return start, false
+end
+
+-- when machines become faster i will make a shared function
+
+function chainprocs.gpos_pair(start,stop,kind,chainname,currentcontext,cache,currentlookup,chainlookupname)
+-- logwarning("%s: gpos_pair not yet supported",cref(kind,chainname,chainlookupname))
+ local snext = start.next
+ if snext then
+ local startchar = start.char
+ local subtables = currentlookup.subtables
+ local lookupname = subtables[1]
+ local kerns = cache.gpos_pair[lookupname]
+ if kerns then
+ kerns = kerns[startchar]
+ if kerns then
+ local prev, done = start, false
+ local factor = tfmdata.factor
+ while snext and snext.id == glyph and snext.subtype<256 and snext.font == currentfont do
+ local nextchar = snext.char
+local krn = kerns[nextchar]
+ if not krn and marks[nextchar] then
+ prev = snext
+ snext = snext.next
+ else
+--~ local krn = kerns[nextchar]
+ if not krn then
+ -- skip
+ elseif type(krn) == "table" then
+ if krn[1] == "pair" then
+ local a, b = krn[3], krn[4]
+ if a and #a > 0 then
+ local startchar = start.char
+ local x, y, w, h = set_pair(start,factor,rlmode,a,characters[startchar])
+ if trace_kerns then
+ logprocess("%s: shifting first of pair %s and %s by (%s,%s) and correction (%s,%s)",cref(kind,chainname,chainlookupname),gref(startchar),gref(nextchar),x,y,w,h)
+ end
+ end
+ if b and #b > 0 then
+ local startchar = start.char
+ local x, y, w, h = set_pair(snext,factor,rlmode,b,characters[nextchar])
+ if trace_kerns then
+ logprocess("%s: shifting second of pair %s and %s by (%s,%s) and correction (%s,%s)",cref(kind,chainname,chainlookupname),gref(startchar),gref(nextchar),x,y,w,h)
+ end
+ end
+ else
+ logs.report("%s: check this out (old kern stuff)",cref(kind,chainname,chainlookupname))
+ local a, b = krn[3], krn[7]
+ if a and a ~= 0 then
+ local k = set_kern(snext,factor,rlmode,a)
+ if trace_kerns then
+ logprocess("%s: inserting first kern %s between %s and %s",cref(kind,chainname,chainlookupname),k,gref(prev.char),gref(nextchar))
+ end
+ end
+ if b and b ~= 0 then
+ logwarning("%s: ignoring second kern xoff %s",cref(kind,chainname,chainlookupname),b*factor)
+ end
+ end
+ done = true
+ elseif krn ~= 0 then
+ local k = set_kern(snext,factor,rlmode,krn)
+ if trace_kerns then
+ logprocess("%s: inserting kern %s between %s and %s",cref(kind,chainname,chainlookupname),k,gref(prev.char),gref(nextchar))
+ end
+ done = true
+ end
+ break
+ end
+ end
+ return start, done
+ end
+ end
+ end
+ return start, false
+end
+
+-- what pointer to return, spec says stop
+-- to be discussed ... is bidi changer a space?
+-- elseif char == zwnj and sequence[n][32] then -- brrr
+
+-- somehow l or f is global
+-- we don't need to pass the currentcontext, saves a bit
+-- make a slow variant then can be activated but with more tracing
+
+local function normal_handle_contextchain(start,kind,chainname,contexts,sequence,cache)
+ -- local rule, lookuptype, sequence, f, l, lookups = ck[1], ck[2] ,ck[3], ck[4], ck[5], ck[6]
+ local flags, done = sequence.flags, false
+ local skipmark, skipligature, skipbase = flags[1], flags[2], flags[3]
+ local someskip = skipmark or skipligature or skipbase -- could be stored in flags for a fast test (hm, flags could be false !)
+ for k=1,#contexts do
+ local match, current, last = true, start, start
+ local ck = contexts[k]
+ local sequence = ck[3]
+ local s = #sequence
+ if s == 1 then
+ -- never happens
+ match = current.id == glyph and current.subtype<256 and current.font == currentfont and sequence[1][current.char]
+ else
+ -- todo: better space check (maybe check for glue)
+ local f, l = ck[4], ck[5]
+ if f == l then
+ -- already a hit
+ match = true
+ else
+ -- no need to test first hit (to be optimized)
+ local n = f + 1
+ last = last.next
+ -- we cannot optimize for n=2 because there can be disc nodes
+ -- if not someskip and n == l then
+ -- -- n=2 and no skips then faster loop
+ -- match = last and last.id == glyph and last.subtype<256 and last.font == currentfont and sequence[n][last.char]
+ -- else
+ while n <= l do
+ if last then
+ local id = last.id
+ if id == glyph then
+ if last.subtype<256 and last.font == currentfont then
+ local char = last.char
+ local ccd = descriptions[char]
+ if ccd then
+ local class = ccd.class
+ if class == skipmark or class == skipligature or class == skipbase then
+--~ if someskip and class == skipmark or class == skipligature or class == skipbase then
+ -- skip 'm
+ last = last.next
+ elseif sequence[n][char] then
+ if n < l then
+ last = last.next
+ end
+ n = n + 1
+ else
+ match = false break
+ end
+ else
+ match = false break
+ end
+ else
+ match = false break
+ end
+ elseif id == disc then -- what to do with kerns?
+ last = last.next
+ else
+ match = false break
+ end
+ else
+ match = false break
+ end
+ end
+ -- end
+ end
+ if match and f > 1 then
+ local prev = start.prev
+ if prev then
+ local n = f-1
+ while n >= 1 do
+ if prev then
+ local id = prev.id
+ if id == glyph then
+ if prev.subtype<256 and prev.font == currentfont then -- normal char
+ local char = prev.char
+ local ccd = descriptions[char]
+ if ccd then
+ local class = ccd.class
+ if class == skipmark or class == skipligature or class == skipbase then
+--~ if someskip and class == skipmark or class == skipligature or class == skipbase then
+ -- skip 'm
+ elseif sequence[n][char] then
+ n = n -1
+ else
+ match = false break
+ end
+ else
+ match = false break
+ end
+ else
+ match = false break
+ end
+ elseif id == disc then
+ -- skip 'm
+ elseif sequence[n][32] then
+ n = n -1
+ else
+ match = false break
+ end
+ prev = prev.prev
+ elseif sequence[n][32] then
+ n = n -1
+ else
+ match = false break
+ end
+ end
+ elseif f == 2 then
+ match = sequence[1][32]
+ else
+ for n=f-1,1 do
+ if not sequence[n][32] then
+ match = false break
+ end
+ end
+ end
+ end
+ if match and s > l then
+ local current = last.next
+ if current then
+ -- removed optimiziation for s-l == 1, we have to deal with marks anyway
+ local n = l + 1
+ while n <= s do
+ if current then
+ local id = current.id
+ if id == glyph then
+ if current.subtype<256 and current.font == currentfont then -- normal char
+ local char = current.char
+ local ccd = descriptions[char]
+ if ccd then
+ local class = ccd.class
+ if class == skipmark or class == skipligature or class == skipbase then
+--~ if someskip and class == skipmark or class == skipligature or class == skipbase then
+ -- skip 'm
+ elseif sequence[n][char] then
+ n = n + 1
+ else
+ match = false break
+ end
+ else
+ match = false break
+ end
+ else
+ match = false break
+ end
+ elseif id == disc then
+ -- skip 'm
+ elseif sequence[n][32] then -- brrr
+ n = n + 1
+ else
+ match = false break
+ end
+ current = current.next
+ elseif sequence[n][32] then
+ n = n + 1
+ else
+ match = false break
+ end
+ end
+ elseif s-l == 1 then
+ match = sequence[s][32]
+ else
+ for n=l+1,s do
+ if not sequence[n][32] then
+ match = false break
+ end
+ end
+ end
+ end
+ end
+ if match then
+ -- ck == currentcontext
+ if trace_contexts then
+ local rule, lookuptype, sequence, f, l = ck[1], ck[2] ,ck[3], ck[4], ck[5]
+ local char = start.char
+ if ck[9] then
+ logwarning("%s: rule %s matches at char %s for (%s,%s,%s) chars, lookuptype %s (%s=>%s)",cref(kind,chainname),rule,gref(char),f-1,l-f+1,s-l,lookuptype,ck[9],ck[10])
+ else
+ logwarning("%s: rule %s matches at char %s for (%s,%s,%s) chars, lookuptype %s",cref(kind,chainname),rule,gref(char),f-1,l-f+1,s-l,lookuptype)
+ end
+ end
+ local chainlookups = ck[6]
+ if chainlookups then
+ local nofchainlookups = #chainlookups
+ -- we can speed this up if needed
+ if nofchainlookups == 1 then
+ local chainlookupname = chainlookups[1]
+ local chainlookup = lookuptable[chainlookupname]
+ local cp = chainprocs[chainlookup.type]
+ if cp then
+ start, done = cp(start,last,kind,chainname,ck,cache,chainlookup,chainlookupname)
+ else
+ logprocess("%s: %s is not yet supported",cref(kind,chainname,chainlookupname),chainlookup.type)
+ end
+ else
+ -- actually this needs a more complex treatment for which we will use chainmores
+ local i = 1
+ repeat
+ local chainlookupname = chainlookups[i]
+ local chainlookup = lookuptable[chainlookupname]
+ local cp = chainmores[chainlookup.type]
+ if cp then
+ local ok, n
+ start, ok, n = cp(start,last,kind,chainname,ck,cache,chainlookup,chainlookupname,i)
+ -- messy since last can be changed !
+ if ok then
+ done = true
+ start = start.next
+ if n then
+ -- skip next one(s) if ligature
+ i = i + n - 1
+ end
+ end
+ else
+ logprocess("%s: multiple subchains for %s are not yet supported",cref(kind,chainname,chainlookupname),chainlookup.type)
+ end
+ i = i + 1
+ until i > nofchainlookups
+ end
+ else
+ local replacements = ck[7]
+ if replacements then
+ start, done = chainprocs.reversesub(start,last,kind,chainname,ck,cache,replacements)
+ else
+ done = true -- can be meant to be skipped
+ if trace_contexts then
+ logprocess("%s: skipping match",cref(kind,chainname))
+ end
+ end
+ end
+ end
+ end
+ return start, done
+end
+
+-- Because we want to keep this elsewhere (an because speed is less an issue) we
+-- pass the font id so that the verbose variant can access the relevant helper tables.
+
+local verbose_handle_contextchain = function(font,...)
+ logwarning("no verbose handler installed, reverting to 'normal'")
+ otf.setcontextchain()
+ return normal_handle_contextchain(...)
+end
+
+otf.chainhandlers = {
+ normal = normal_handle_contextchain,
+ verbose = verbose_handle_contextchain,
+}
+
+function otf.setcontextchain(method)
+ if not method or method == "normal" or not otf.chainhandlers[method] then
+ if handlers.contextchain then -- no need for a message while making the format
+ logwarning("installing normal contextchain handler")
+ end
+ handlers.contextchain = normal_handle_contextchain
+ else
+ logwarning("installing contextchain handler '%s'",method)
+ local handler = otf.chainhandlers[method]
+ handlers.contextchain = function(...)
+ return handler(currentfont,...) -- hm, get rid of ...
+ end
+ end
+ handlers.gsub_context = handlers.contextchain
+ handlers.gsub_contextchain = handlers.contextchain
+ handlers.gsub_reversecontextchain = handlers.contextchain
+ handlers.gpos_contextchain = handlers.contextchain
+ handlers.gpos_context = handlers.contextchain
+end
+
+otf.setcontextchain()
+
+local missing = { } -- we only report once
+
+local function logprocess(...)
+ if trace_steps then
+ registermessage(...)
+ end
+ logs.report("otf process",...)
+end
+local function logwarning(...)
+ logs.report("otf process",...)
+end
+
+local function report_missing_cache(typ,lookup)
+ local f = missing[currentfont] if not f then f = { } missing[currentfont] = f end
+ local t = f[typ] if not t then t = { } f[typ] = t end
+ if not t[lookup] then
+ t[lookup] = true
+ logwarning("missing cache for lookup %s of type %s in font %s (%s)",lookup,typ,currentfont,tfmdata.fullname)
+ end
+end
+
+local resolved = { } -- we only resolve a font,script,language pair once
+
+function fonts.methods.node.otf.features(head,font,attr)
+ if trace_steps then
+ checkstep(head)
+ end
+ tfmdata = fontdata[font]
+ local shared = tfmdata.shared
+ otfdata = shared.otfdata
+ local luatex = otfdata.luatex
+ descriptions = tfmdata.descriptions
+ characters = tfmdata.characters
+ indices = tfmdata.indices
+ unicodes = tfmdata.unicodes
+ marks = tfmdata.marks
+ anchorlookups = luatex.lookup_to_anchor
+ currentfont = font
+ rlmode = 0
+ local featuredata = otfdata.shared.featuredata -- can be made local to closure
+ local sequences = luatex.sequences
+ lookuptable = luatex.lookups
+ local done = false
+ local script, language, s_enabled, a_enabled, dyn
+ local attribute_driven = attr and attr ~= 0
+ if attribute_driven then
+ local features = context_setups[context_numbers[attr]] -- could be a direct list
+ dyn = context_merged[attr] or 0
+ language, script = features.language or "dflt", features.script or "dflt"
+ a_enabled = features -- shared.features -- can be made local to the resolver
+ if dyn == 2 or dyn == -2 then
+ -- font based
+ s_enabled = shared.features
+ end
+ else
+ language, script = tfmdata.language or "dflt", tfmdata.script or "dflt"
+ s_enabled = shared.features -- can be made local to the resolver
+ dyn = 0
+ end
+ -- we can save some runtime by caching feature tests
+ local res = resolved[font] if not res then res = { } resolved[font] = res end
+ local rs = res [script] if not rs then rs = { } res [script] = rs end
+ local rl = rs [language] if not rl then rl = { } rs [language] = rl end
+ local ra = rl [attr] if ra == nil then ra = { } rl [attr] = ra end -- attr can be false
+ -- sequences always > 1 so no need for optimization
+ for s=1,#sequences do
+ local success = false
+ local sequence = sequences[s]
+ local r = ra[s] -- cache
+ if r == nil then
+ --
+ -- this bit will move to font-ctx and become a function
+ ---
+ local chain = sequence.chain or 0
+ local features = sequence.features
+ if not features then
+ -- indirect lookup, part of chain (todo: make this a separate table)
+ r = false -- { false, false, chain }
+ else
+ local valid, attribute, kind, what = false, false
+ for k,v in next, features do
+ -- we can quit earlier but for the moment we want the tracing
+ local s_e = s_enabled and s_enabled[k]
+ local a_e = a_enabled and a_enabled[k]
+ if s_e or a_e then
+ local l = v[script] or v[wildcard]
+ if l then
+ -- not l[language] or l[default] or l[wildcard] because we want tracing
+ -- only first attribute match check, so we assume simple fina's
+ -- default can become a font feature itself
+ if l[language] then
+--~ valid, what = true, language
+ valid, what = s_e or a_e, language
+ -- elseif l[default] then
+ -- valid, what = true, default
+ elseif l[wildcard] then
+--~ valid, what = true, wildcard
+ valid, what = s_e or a_e, wildcard
+ end
+ if valid then
+ kind, attribute = k, special_attributes[k] or false
+ if a_e and dyn < 0 then
+ valid = false
+ end
+ if trace_applied then
+ local typ, action = match(sequence.type,"(.*)_(.*)")
+ logs.report("otf node mode",
+ "%s font: %03i, dynamic: %03i, kind: %s, lookup: %3i, script: %-4s, language: %-4s (%-4s), type: %s, action: %s, name: %s",
+ (valid and "+") or "-",font,attr or 0,kind,s,script,language,what,typ,action,sequence.name)
+ end
+ break
+ end
+ end
+ end
+ end
+ if valid then
+ r = { valid, attribute, chain, kind }
+ else
+ r = false -- { valid, attribute, chain, "generic" } -- false anyway, could be flag instead of table
+ end
+ end
+ ra[s] = r
+ end
+ featurevalue = r and r[1] -- todo: pass to function instead of using a global
+ if featurevalue then
+ local attribute, chain, typ, subtables = r[2], r[3], sequence.type, sequence.subtables
+ if chain < 0 then
+ -- this is a limited case, no special treatments like 'init' etc
+ local handler = handlers[typ]
+ local thecache = featuredata[typ] or { }
+ -- we need to get rid of this slide !
+ start = find_node_tail(head) -- slow (we can store tail because there's always a skip at the end): todo
+ while start do
+ local id = start.id
+ if id == glyph then
+--~ if start.subtype<256 and start.font == font and (not attr or has_attribute(start,0,attr)) then
+ if start.subtype<256 and start.font == font and has_attribute(start,0,attr) then
+ for i=1,#subtables do
+ local lookupname = subtables[i]
+ local lookupcache = thecache[lookupname]
+ if lookupcache then
+ local lookupmatch = lookupcache[start.char]
+ if lookupmatch then
+ start, success = handler(start,r[4],lookupname,lookupmatch,sequence,featuredata,i)
+ if success then
+ break
+ end
+ end
+ else
+ report_missing_cache(typ,lookupname)
+ end
+ end
+ if start then start = start.prev end
+ else
+ start = start.prev
+ end
+ else
+ start = start.prev
+ end
+ end
+ else
+ local handler = handlers[typ]
+ local ns = #subtables
+ local thecache = featuredata[typ] or { }
+ start = head -- local ?
+ rlmode = 0
+ if ns == 1 then
+ local lookupname = subtables[1]
+ local lookupcache = thecache[lookupname]
+ if not lookupcache then
+ report_missing_cache(typ,lookupname)
+ else
+ while start do
+ local id = start.id
+ if id == glyph then
+--~ if start.font == font and start.subtype<256 and (not attr or has_attribute(start,0,attr)) and (not attribute or has_attribute(start,state,attribute)) then
+ if start.font == font and start.subtype<256 and has_attribute(start,0,attr) and (not attribute or has_attribute(start,state,attribute)) then
+ local lookupmatch = lookupcache[start.char]
+ if lookupmatch then
+ -- sequence kan weg
+ local ok
+ start, ok = handler(start,r[4],lookupname,lookupmatch,sequence,featuredata,1)
+ if ok then
+ success = true
+ end
+ end
+ if start then start = start.next end
+ else
+ start = start.next
+ end
+ -- elseif id == glue then
+ -- if p[5] then -- chain
+ -- local pc = pp[32]
+ -- if pc then
+ -- start, ok = start, false -- p[1](start,kind,p[2],pc,p[3],p[4])
+ -- if ok then
+ -- done = true
+ -- end
+ -- if start then start = start.next end
+ -- else
+ -- start = start.next
+ -- end
+ -- else
+ -- start = start.next
+ -- end
+ elseif id == whatsit then
+ local subtype = start.subtype
+ if subtype == 7 then
+ local dir = start.dir
+ if dir == "+TRT" then
+ rlmode = -1
+ elseif dir == "+TLT" then
+ rlmode = 1
+ else
+ rlmode = 0
+ end
+ elseif subtype == 6 then
+ local dir = start.dir
+ if dir == "TRT" then
+ rlmode = -1
+ elseif dir == "TLT" then
+ rlmode = 1
+ else
+ rlmode = 0
+ end
+ end
+ start = start.next
+ else
+ start = start.next
+ end
+ end
+
+ end
+ else
+ while start do
+ local id = start.id
+ if id == glyph then
+--~ if start.subtype<256 and start.font == font and (not attr or has_attribute(start,0,attr)) and (not attribute or has_attribute(start,state,attribute)) then
+ if start.subtype<256 and start.font == font and has_attribute(start,0,attr) and (not attribute or has_attribute(start,state,attribute)) then
+ for i=1,ns do
+ local lookupname = subtables[i]
+ local lookupcache = thecache[lookupname]
+ if lookupcache then
+ local lookupmatch = lookupcache[start.char]
+ if lookupmatch then
+ -- we could move all code inline but that makes things even more unreadable
+ local ok
+ start, ok = handler(start,r[4],lookupname,lookupmatch,sequence,featuredata,i)
+ if ok then
+ success = true
+ break
+ end
+ end
+ else
+ report_missing_cache(typ,lookupname)
+ end
+ end
+ if start then start = start.next end
+ else
+ start = start.next
+ end
+ -- elseif id == glue then
+ -- if p[5] then -- chain
+ -- local pc = pp[32]
+ -- if pc then
+ -- start, ok = start, false -- p[1](start,kind,p[2],pc,p[3],p[4])
+ -- if ok then
+ -- done = true
+ -- end
+ -- if start then start = start.next end
+ -- else
+ -- start = start.next
+ -- end
+ -- else
+ -- start = start.next
+ -- end
+ elseif id == whatsit then
+ local subtype = start.subtype
+ if subtype == 7 then
+ local dir = start.dir
+ if dir == "+TRT" then
+ rlmode = -1
+ elseif dir == "+TLT" then
+ rlmode = 1
+ else
+ rlmode = 0
+ end
+ elseif subtype == 6 then
+ local dir = start.dir
+ if dir == "TRT" then
+ rlmode = -1
+ elseif dir == "TLT" then
+ rlmode = 1
+ else
+ rlmode = 0
+ end
+ end
+ start = start.next
+ else
+ start = start.next
+ end
+ end
+ end
+ end
+ if success then
+ done = true
+ end
+ if trace_steps then -- ?
+ registerstep(head)
+ end
+ end
+ end
+ return head, done
+end
+
+otf.features.prepare = { }
+
+-- we used to share code in the following functions but that costs a lot of
+-- memory due to extensive calls to functions (easily hundreds of thousands per
+-- document)
+
+local function split(replacement,original,cache,unicodes)
+ -- we can cache this too, but not the same
+ local o, t, n = { }, { }, 0
+ for s in gmatch(original,"[^ ]+") do
+ local us = unicodes[s]
+ if type(us) == "number" then
+ o[#o+1] = us
+ else
+ o[#o+1] = us[1]
+ end
+ end
+ for s in gmatch(replacement,"[^ ]+") do
+ n = n + 1
+ local us = unicodes[s]
+ if type(us) == "number" then
+ t[o[n]] = us
+ else
+ t[o[n]] = us[1]
+ end
+ end
+ return t
+end
+
+local function uncover(covers,result,cache,unicodes)
+ -- lpeg hardly faster (.005 sec on mk)
+ for n=1,#covers do
+ local c = covers[n]
+ local cc = cache[c]
+ if not cc then
+ local t = { }
+ for s in gmatch(c,"[^ ]+") do
+ local us = unicodes[s]
+ if type(us) == "number" then
+ t[us] = true
+ else
+ for i=1,#us do
+ t[us[i]] = true
+ end
+ end
+ end
+ cache[c] = t
+ result[#result+1] = t
+ else
+ result[#result+1] = cc
+ end
+ end
+end
+
+local function prepare_lookups(tfmdata)
+ local otfdata = tfmdata.shared.otfdata
+ local featuredata = otfdata.shared.featuredata
+ local anchor_to_lookup = otfdata.luatex.anchor_to_lookup
+ local lookup_to_anchor = otfdata.luatex.lookup_to_anchor
+ --
+ local multiple = featuredata.gsub_multiple
+ local alternate = featuredata.gsub_alternate
+ local single = featuredata.gsub_single
+ local ligature = featuredata.gsub_ligature
+ local pair = featuredata.gpos_pair
+ local position = featuredata.gpos_single
+ local kerns = featuredata.gpos_pair
+ local mark = featuredata.gpos_mark2mark
+ local cursive = featuredata.gpos_cursive
+ --
+ local unicodes = tfmdata.unicodes -- names to unicodes
+ local indices = tfmdata.indices
+ local descriptions = tfmdata.descriptions
+ --
+ -- we can change the otf table after loading but then we need to adapt base mode
+ -- as well (no big deal)
+ --
+ for unicode, glyph in next, descriptions do
+ local lookups = glyph.lookups
+ if lookups then
+ for lookup, whatever in next, lookups do
+ for i=1,#whatever do -- normaly one
+ local p = whatever[i]
+ local what = p[1]
+ if what == 'substitution' then
+ local old, new = unicode, unicodes[p[2]]
+ if type(new) == "table" then
+ new = new[1]
+ end
+ local s = single[lookup]
+ if not s then s = { } single[lookup] = s end
+ s[old] = new
+--~ if trace_lookups then
+--~ logs.report("define otf","lookup %s: substitution %s => %s",lookup,old,new)
+--~ end
+ break
+ elseif what == 'multiple' then
+ local old, new = unicode, { }
+ local m = multiple[lookup]
+ if not m then m = { } multiple[lookup] = m end
+ m[old] = new
+ for pc in gmatch(p[2],"[^ ]+") do
+ local upc = unicodes[pc]
+ if type(upc) == "number" then
+ new[#new+1] = upc
+ else
+ new[#new+1] = upc[1]
+ end
+ end
+--~ if trace_lookups then
+--~ logs.report("define otf","lookup %s: multiple %s => %s",lookup,old,concat(new," "))
+--~ end
+ break
+ elseif what == 'alternate' then
+ local old, new = unicode, { }
+ local a = alternate[lookup]
+ if not a then a = { } alternate[lookup] = a end
+ a[old] = new
+ for pc in gmatch(p[2],"[^ ]+") do
+ local upc = unicodes[pc]
+ if type(upc) == "number" then
+ new[#new+1] = upc
+ else
+ new[#new+1] = upc[1]
+ end
+ end
+--~ if trace_lookups then
+--~ logs.report("define otf","lookup %s: alternate %s => %s",lookup,old,concat(new,"|"))
+--~ end
+ break
+ elseif what == "ligature" then
+--~ if trace_lookups then
+--~ logs.report("define otf","lookup %s: ligature %s => %s",lookup,p[2],glyph.name)
+--~ end
+ local first = true
+ local t = ligature[lookup]
+ if not t then t = { } ligature[lookup] = t end
+ for s in gmatch(p[2],"[^ ]+") do
+ if first then
+ local u = unicodes[s]
+ if not u then
+ logs.report("define otf","lookup %s: ligature %s => %s ignored due to invalid unicode",lookup,p[2],glyph.name)
+ break
+ elseif type(u) == "number" then
+ if not t[u] then
+ t[u] = { { } }
+ end
+ t = t[u]
+ else
+ local tt = t
+ local tu
+ for i=1,#u do
+ local u = u[i]
+ if i==1 then
+ if not t[u] then
+ t[u] = { { } }
+ end
+ tu = t[u]
+ t = tu
+ else
+ if not t[u] then
+ tt[u] = tu
+ end
+ end
+ end
+ end
+ first = false
+ else
+ s = unicodes[s]
+ local t1 = t[1]
+ if not t1[s] then
+ t1[s] = { { } }
+ end
+ t = t1[s]
+ end
+ end
+ t[2] = unicode
+ elseif what == 'position' then
+ -- not used
+ local s = position[lookup]
+ if not s then s = { } position[lookup] = s end
+ s[unicode] = p[2] -- direct pointer to kern spec
+ elseif what == 'pair' then
+ local s = pair[lookup]
+ if not s then s = { } pair[lookup] = s end
+ local others = s[unicode]
+ if not others then others = { } s[unicode] = others end
+ -- todo: fast check for space
+ local two = p[2]
+ local upc = unicodes[two]
+ if not upc then
+ for pc in gmatch(two,"[^ ]+") do
+ local upc = unicodes[pc]
+ if type(upc) == "number" then
+ others[upc] = p -- direct pointer to main table
+ else
+ for i=1,#upc do
+ others[upc[i]] = p -- direct pointer to main table
+ end
+ end
+ end
+ elseif type(upc) == "number" then
+ others[upc] = p -- direct pointer to main table
+ else
+ for i=1,#upc do
+ others[upc[i]] = p -- direct pointer to main table
+ end
+ end
+--~ if trace_lookups then
+--~ logs.report("define otf","lookup %s: pair for U+%04X",lookup,unicode)
+--~ end
+ end
+ end
+ end
+ end
+ local list = glyph.mykerns
+ if list then
+ for lookup, krn in next, list do
+ local k = kerns[lookup]
+ if not k then k = { } kerns[lookup] = k end
+ k[unicode] = krn -- ref to glyph, saves lookup
+--~ if trace_lookups then
+--~ logs.report("define otf","lookup %s: kern for U+%04X",lookup,unicode)
+--~ end
+ end
+ end
+ local oanchor = glyph.anchors
+ if oanchor then
+ for typ, anchors in next, oanchor do -- types
+ if typ == "mark" then
+ for name, anchor in next, anchors do
+ local lookups = anchor_to_lookup[name]
+ if lookups then
+ for lookup, _ in next, lookups do
+ local f = mark[lookup]
+ if not f then f = { } mark[lookup] = f end
+ f[unicode] = anchors -- ref to glyph, saves lookup
+--~ if trace_lookups then
+--~ logs.report("define otf","lookup %s: mark anchor %s for U+%04X",lookup,name,unicode)
+--~ end
+ end
+ end
+ end
+ elseif typ == "cexit" then -- or entry?
+ for name, anchor in next, anchors do
+ local lookups = anchor_to_lookup[name]
+ if lookups then
+ for lookup, _ in next, lookups do
+ local f = cursive[lookup]
+ if not f then f = { } cursive[lookup] = f end
+ f[unicode] = anchors -- ref to glyph, saves lookup
+--~ if trace_lookups then
+--~ logs.report("define otf","lookup %s: exit anchor %s for U+%04X",lookup,name,unicode)
+--~ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+end
+
+-- local cache = { }
+luatex = luatex or {} -- this has to change ... we need a better one
+
+function prepare_contextchains(tfmdata)
+ local otfdata = tfmdata.shared.otfdata
+ local lookups = otfdata.lookups
+ if lookups then
+ local featuredata = otfdata.shared.featuredata
+ local contextchain = featuredata.gsub_contextchain -- shared with gpos
+ local reversecontextchain = featuredata.gsub_reversecontextchain -- shared with gpos
+ local characters = tfmdata.characters
+ local unicodes = tfmdata.unicodes
+ local indices = tfmdata.indices
+ local cache = luatex.covers
+ if not cache then
+ cache = { }
+ luatex.covers = cache
+ end
+ --
+ for lookupname, lookupdata in next, otfdata.lookups do
+ local lookuptype = lookupdata.type
+ if not lookuptype then
+ logs.report("otf process","missing lookuptype for %s",lookupname)
+ else
+ local rules = lookupdata.rules
+ if rules then
+ local fmt = lookupdata.format
+ -- contextchain[lookupname][unicode]
+ if fmt == "coverage" then
+ if lookuptype ~= "chainsub" and lookuptype ~= "chainpos" then
+ logs.report("otf process","unsupported coverage %s for %s",lookuptype,lookupname)
+ else
+ local contexts = contextchain[lookupname]
+ if not contexts then
+ contexts = { }
+ contextchain[lookupname] = contexts
+ end
+ local t = { }
+ for nofrules=1,#rules do -- does #rules>1 happen often?
+ local rule = rules[nofrules]
+ local coverage = rule.coverage
+ if coverage and coverage.current then
+ local current, before, after, sequence = coverage.current, coverage.before, coverage.after, { }
+ if before then
+ uncover(before,sequence,cache,unicodes)
+ end
+ local start = #sequence + 1
+ uncover(current,sequence,cache,unicodes)
+ local stop = #sequence
+ if after then
+ uncover(after,sequence,cache,unicodes)
+ end
+ if sequence[1] then
+ t[#t+1] = { nofrules, lookuptype, sequence, start, stop, rule.lookups }
+ for unic, _ in next, sequence[start] do
+ local cu = contexts[unic]
+ if not cu then
+ contexts[unic] = t
+ end
+ end
+ end
+ end
+ end
+ end
+ elseif fmt == "reversecoverage" then
+ if lookuptype ~= "reversesub" then
+ logs.report("otf process","unsupported reverse coverage %s for %s",lookuptype,lookupname)
+ else
+ local contexts = reversecontextchain[lookupname]
+ if not contexts then
+ contexts = { }
+ reversecontextchain[lookupname] = contexts
+ end
+ local t = { }
+ for nofrules=1,#rules do
+ local rule = rules[nofrules]
+ local reversecoverage = rule.reversecoverage
+ if reversecoverage and reversecoverage.current then
+ local current, before, after, replacements, sequence = reversecoverage.current, reversecoverage.before, reversecoverage.after, reversecoverage.replacements, { }
+ if before then
+ uncover(before,sequence,cache,unicodes)
+ end
+ local start = #sequence + 1
+ uncover(current,sequence,cache,unicodes)
+ local stop = #sequence
+ if after then
+ uncover(after,sequence,cache,unicodes)
+ end
+ if replacements then
+ replacements = split(replacements,current[1],cache,unicodes)
+ end
+ if sequence[1] then
+ -- this is different from normal coverage, we assume only replacements
+ t[#t+1] = { nofrules, lookuptype, sequence, start, stop, rule.lookups, replacements }
+ for unic, _ in next, sequence[start] do
+ local cu = contexts[unic]
+ if not cu then
+ contexts[unic] = t
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+end
+
+function fonts.initializers.node.otf.features(tfmdata,value)
+ if true then -- value then
+ if not tfmdata.shared.otfdata.shared.initialized then
+ local t = trace_preparing and os.clock()
+ local otfdata = tfmdata.shared.otfdata
+ local featuredata = otfdata.shared.featuredata
+ -- caches
+ featuredata.gsub_multiple = { }
+ featuredata.gsub_alternate = { }
+ featuredata.gsub_single = { }
+ featuredata.gsub_ligature = { }
+ featuredata.gsub_contextchain = { }
+ featuredata.gsub_reversecontextchain = { }
+ featuredata.gpos_pair = { }
+ featuredata.gpos_single = { }
+ featuredata.gpos_mark2base = { }
+ featuredata.gpos_mark2ligature = featuredata.gpos_mark2base
+ featuredata.gpos_mark2mark = featuredata.gpos_mark2base
+ featuredata.gpos_cursive = { }
+ featuredata.gpos_contextchain = featuredata.gsub_contextchain
+ featuredata.gpos_reversecontextchain = featuredata.gsub_reversecontextchain
+ --
+ prepare_contextchains(tfmdata)
+ prepare_lookups(tfmdata)
+ otfdata.shared.initialized = true
+ if trace_preparing then
+ logs.report("otf process","preparation time is %0.3f seconds for %s",os.clock()-t,tfmdata.fullname or "?")
+ end
+ end
+ end
+end
diff --git a/Master/texmf-dist/tex/context/base/font-otp.lua b/Master/texmf-dist/tex/context/base/font-otp.lua
new file mode 100644
index 00000000000..3cdc8073720
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/font-otp.lua
@@ -0,0 +1,420 @@
+if not modules then modules = { } end modules ['font-otp'] = {
+ version = 1.001,
+ comment = "companion to font-otf.lua (packing)",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- todo: pack math (but not that much to share)
+
+local next = next
+
+local trace_loading = false trackers.register("otf.loading", function(v) trace_loading = v end)
+
+fonts = fonts or { }
+fonts.otf = fonts.otf or { }
+fonts.otf.enhancers = fonts.otf.enhancers or { }
+fonts.otf.glists = fonts.otf.glists or { "gsub", "gpos" }
+
+local criterium, threshold, tabstr = 1, 0, table.serialize
+
+function fonts.otf.enhancers.pack(data)
+ if data then
+ local h, t, c = { }, { }, { }
+ local hh, tt, cc = { }, { }, { }
+ local function pack_1(v)
+ -- v == table
+ local tag = tabstr(v)
+ local ht = h[tag]
+ if not ht then
+ ht = #t+1
+ t[ht] = v
+ h[tag] = ht
+ c[ht] = 1
+ else
+ c[ht] = c[ht] + 1
+ end
+ return ht
+ end
+ local function pack_2(v)
+ -- v == number
+ if c[v] <= criterium then
+ return t[v]
+ else
+ -- compact hash
+ local hv = hh[v]
+ if not hv then
+ hv = #tt+1
+ tt[hv] = t[v]
+ hh[v] = hv
+ cc[hv] = c[v]
+ end
+ return hv
+ end
+ end
+ local function success(stage,pass)
+ if #t == 0 then
+ if trace_loading then
+ logs.report("load otf","pack quality: nothing to pack")
+ end
+ return false
+ elseif #t >= threshold then
+ local one, two, rest = 0, 0, 0
+ if pass == 1 then
+ for k,v in next, c do
+ if v == 1 then
+ one = one + 1
+ elseif v == 2 then
+ two = two + 1
+ else
+ rest = rest + 1
+ end
+ end
+ else
+ for k,v in next, cc do
+ if v >20 then
+ rest = rest + 1
+ elseif v >10 then
+ two = two + 1
+ else
+ one = one + 1
+ end
+ end
+ data.tables = tt
+ end
+ if trace_loading then
+ logs.report("load otf","pack quality: stage %s, pass %s, %s packed, 1-10:%s, 11-20:%s, rest:%s (criterium: %s)", stage, pass, one+two+rest, one, two, rest, criterium)
+ end
+ return true
+ else
+ if trace_loading then
+ logs.report("load otf","pack quality: stage %s, pass %s, %s packed, aborting pack (threshold: %s)", stage, pass, #t, threshold)
+ end
+ return false
+ end
+ end
+ for pass=1,2 do
+ local pack = (pass == 1 and pack_1) or pack_2
+ for k, v in next, data.glyphs do
+ v.boundingbox = pack(v.boundingbox)
+ local l = v.lookups
+ if l then
+ for k,v in next, l do
+ for kk=1,#v do
+ local vkk = v[kk]
+ local what = vkk[1]
+ if what == "pair" then
+ local t = vkk[3] if t then vkk[3] = pack(t) end
+ local t = vkk[4] if t then vkk[4] = pack(t) end
+ elseif what == "position" then
+ local t = vkk[2] if t then vkk[2] = pack(t) end
+ end
+ -- v[kk] = pack(vkk)
+ end
+ end
+ end
+ local m = v.mykerns
+ if m then
+ for k,v in next, m do
+ m[k] = pack(v)
+ end
+ end
+ local m = v.math
+ if m then
+ local mk = m.kerns
+ if mk then
+ for k,v in next, mk do
+ mk[k] = pack(v)
+ end
+ end
+ end
+ local a = v.anchors
+ if a then
+ for k,v in next, a do
+ if k == "baselig" then
+ for kk, vv in next, v do
+ for kkk=1,#vv do
+ vv[kkk] = pack(vv[kkk])
+ end
+ end
+ else
+ for kk, vv in next, v do
+ v[kk] = pack(vv)
+ end
+ end
+ end
+ end
+ end
+ if data.lookups then
+ for k, v in next, data.lookups do
+ if v.rules then
+ for kk, vv in next, v.rules do
+ local l = vv.lookups
+ if l then
+ vv.lookups = pack(l)
+ end
+ local c = vv.coverage
+ if c then
+ c.before = c.before and pack(c.before )
+ c.after = c.after and pack(c.after )
+ c.current = c.current and pack(c.current)
+ end
+ local c = vv.reversecoverage
+ if c then
+ c.before = c.before and pack(c.before )
+ c.after = c.after and pack(c.after )
+ c.current = c.current and pack(c.current)
+ end
+ end
+ end
+ end
+ end
+ if data.luatex then
+ local la = data.luatex.anchor_to_lookup
+ if la then
+ for lookup, ldata in next, la do
+ la[lookup] = pack(ldata)
+ end
+ end
+ local la = data.luatex.lookup_to_anchor
+ if la then
+ for lookup, ldata in next, la do
+ la[lookup] = pack(ldata)
+ end
+ end
+ local ls = data.luatex.sequences
+ if ls then
+ for feature, fdata in next, ls do
+ local flags = fdata.flags
+ if flags then
+ fdata.flags = pack(flags)
+ end
+ local subtables = fdata.subtables
+ if subtables then
+ fdata.subtables = pack(subtables)
+ end
+ local features = fdata.features
+ if features then
+ for script, sdata in next, features do
+ features[script] = pack(sdata)
+ end
+ end
+ end
+ end
+ local ls = data.luatex.lookups
+ if ls then
+ for lookup, fdata in next, ls do
+ local flags = fdata.flags
+ if flags then
+ fdata.flags = pack(flags)
+ end
+ local subtables = fdata.subtables
+ if subtables then
+ fdata.subtables = pack(subtables)
+ end
+ end
+ end
+ local lf = data.luatex.features
+ if lf then
+ for _, g in next, fonts.otf.glists do
+ local gl = lf[g]
+ if gl then
+ for feature, spec in next, gl do
+ gl[feature] = pack(spec)
+ end
+ end
+ end
+ end
+ end
+ if not success(1,pass) then
+ return
+ end
+ end
+ if #t > 0 then
+ for pass=1,2 do
+ local pack = (pass == 1 and pack_1) or pack_2
+ for k, v in next, data.glyphs do
+ local m = v.mykerns
+ if m then
+ v.mykerns = pack(m)
+ end
+ local m = v.math
+ if m then
+ local mk = m.kerns
+ if mk then
+ m.kerns = pack(mk)
+ end
+ end
+ local a = v.anchors
+ if a then
+ v.anchors = pack(a)
+ end
+ local l = v.lookups
+ if l then
+ for k,v in next, l do
+ for kk=1,#v do
+ v[kk] = pack(v[kk])
+ end
+ end
+ end
+ end
+ local ls = data.luatex.sequences
+ if ls then
+ for feature, fdata in next, ls do
+ fdata.features = pack(fdata.features)
+ end
+ end
+ if not success(2,pass) then
+--~ return
+ end
+ end
+ end
+ end
+end
+
+function fonts.otf.enhancers.unpack(data)
+ if data then
+ local t = data.tables
+ if t then
+ for k, v in next, data.glyphs do
+ local tv = t[v.boundingbox] if tv then v.boundingbox = tv end
+ local l = v.lookups
+ if l then
+ for k,v in next, l do
+ for i=1,#v do
+ local tv = t[v[i]] if tv then v[i] = tv end
+ local vi = v[i]
+ local what = vi[1]
+ if what == "pair" then
+ local tv = t[vi[3]] if tv then vi[3] = tv end
+ local tv = t[vi[4]] if tv then vi[4] = tv end
+ elseif what == "position" then
+ local tv = t[vi[2]] if tv then vi[2] = tv end
+ end
+ end
+ end
+ end
+ local m = v.mykerns
+ if m then
+ local tv = t[m] if tv then m = tv v.mykerns = m end -- secondary optimization
+ for k,v in next, m do
+ local tv = t[v] if tv then m[k] = tv end
+ end
+ end
+ local m = v.math
+ if m then
+ local mk = m.kerns
+ if mk then
+ local tv = t[mk] if tv then mk = tv m.kerns = mk end -- secondary optimization
+ for k,v in next, mk do
+ local tv = t[v] if tv then mk[k] = tv end
+ end
+ end
+ end
+ local a = v.anchors
+ if a then
+ local tv = t[a] if tv then a = tv v.anchors = a end -- secondary optimization
+ for k,v in next, a do
+ if k == "baselig" then
+ for kk, vv in next, v do
+ for kkk=1,#vv do
+ local tv = t[vv[kkk]] if tv then vv[kkk] = tv end
+ end
+ end
+ else
+ for kk, vv in next, v do
+ local tv = t[vv] if tv then v[kk] = tv end
+ end
+ end
+ end
+ end
+ end
+ if data.lookups then
+ for k, v in next, data.lookups do
+ local r = v.rules
+ if r then
+ for kk, vv in next, r do
+ local l = vv.lookups
+ if l then
+ local tv = t[l] if tv then vv.lookups = tv end
+ end
+ local c = vv.coverage
+ if c then
+ local cc = c.before if cc then local tv = t[cc] if tv then c.before = tv end end
+ cc = c.after if cc then local tv = t[cc] if tv then c.after = tv end end
+ cc = c.current if cc then local tv = t[cc] if tv then c.current = tv end end
+ end
+ local c = vv.reversecoverage
+ if c then
+ local cc = c.before if cc then local tv = t[cc] if tv then c.before = tv end end
+ cc = c.after if cc then local tv = t[cc] if tv then c.after = tv end end
+ cc = c.current if cc then local tv = t[cc] if tv then c.current = tv end end
+ end
+ end
+ end
+ end
+ end
+ local luatex = data.luatex
+ if luatex then
+ local la = luatex.anchor_to_lookup
+ if la then
+ for lookup, ldata in next, la do
+ local tv = t[ldata] if tv then la[lookup] = tv end
+ end
+ end
+ local la = luatex.lookup_to_anchor
+ if la then
+ for lookup, ldata in next, la do
+ local tv = t[ldata] if tv then la[lookup] = tv end
+ end
+ end
+ local ls = luatex.sequences
+ if ls then
+ for feature, fdata in next, ls do
+ local flags = fdata.flags
+ if flags then
+ local tv = t[flags] if tv then fdata.flags = tv end
+ end
+ local subtables = fdata.subtables
+ if subtables then
+ local tv = t[subtables] if tv then fdata.subtables = tv end
+ end
+ local features = fdata.features
+ if features then
+ local tv = t[features] if tv then fdata.features = tv features = tv end -- secondary pack
+ for script, sdata in next, features do
+ local tv = t[sdata] if tv then features[script] = tv end
+ end
+ end
+ end
+ end
+ local ls = luatex.lookups
+ if ls then
+ for lookups, fdata in next, ls do
+ local flags = fdata.flags
+ if flags then
+ local tv = t[flags] if tv then fdata.flags = tv end
+ end
+ local subtables = fdata.subtables
+ if subtables then
+ local tv = t[subtables] if tv then fdata.subtables = tv end
+ end
+ end
+ end
+ local lf = luatex.features
+ if lf then
+ for _, g in next, fonts.otf.glists do
+ local gl = lf[g]
+ if gl then
+ for feature, spec in next, gl do
+ local tv = t[spec] if tv then gl[feature] = tv end
+ end
+ end
+ end
+ end
+ end
+ data.tables = nil
+ end
+ end
+end
diff --git a/Master/texmf-dist/tex/context/base/font-ott.lua b/Master/texmf-dist/tex/context/base/font-ott.lua
new file mode 100644
index 00000000000..47c2e0e9fe0
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/font-ott.lua
@@ -0,0 +1,945 @@
+if not modules then modules = { } end modules ['font-otf'] = {
+ version = 1.001,
+ comment = "companion to font-otf.lua (tables)",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local type, next, tonumber, tostring = type, next, tonumber, tostring
+local gsub, lower = string.gsub, string.lower
+
+fonts = fonts or { }
+fonts.otf = fonts.otf or { }
+
+local otf = fonts.otf
+
+otf.tables = otf.tables or { }
+otf.meanings = otf.meanings or { }
+
+otf.tables.scripts = {
+ ['dflt'] = 'Default',
+
+ ['arab'] = 'Arabic',
+ ['armn'] = 'Armenian',
+ ['bali'] = 'Balinese',
+ ['beng'] = 'Bengali',
+ ['bopo'] = 'Bopomofo',
+ ['brai'] = 'Braille',
+ ['bugi'] = 'Buginese',
+ ['buhd'] = 'Buhid',
+ ['byzm'] = 'Byzantine Music',
+ ['cans'] = 'Canadian Syllabics',
+ ['cher'] = 'Cherokee',
+ ['copt'] = 'Coptic',
+ ['cprt'] = 'Cypriot Syllabary',
+ ['cyrl'] = 'Cyrillic',
+ ['deva'] = 'Devanagari',
+ ['dsrt'] = 'Deseret',
+ ['ethi'] = 'Ethiopic',
+ ['geor'] = 'Georgian',
+ ['glag'] = 'Glagolitic',
+ ['goth'] = 'Gothic',
+ ['grek'] = 'Greek',
+ ['gujr'] = 'Gujarati',
+ ['guru'] = 'Gurmukhi',
+ ['hang'] = 'Hangul',
+ ['hani'] = 'CJK Ideographic',
+ ['hano'] = 'Hanunoo',
+ ['hebr'] = 'Hebrew',
+ ['ital'] = 'Old Italic',
+ ['jamo'] = 'Hangul Jamo',
+ ['java'] = 'Javanese',
+ ['kana'] = 'Hiragana and Katakana',
+ ['khar'] = 'Kharosthi',
+ ['khmr'] = 'Khmer',
+ ['knda'] = 'Kannada',
+ ['lao' ] = 'Lao',
+ ['latn'] = 'Latin',
+ ['limb'] = 'Limbu',
+ ['linb'] = 'Linear B',
+ ['math'] = 'Mathematical Alphanumeric Symbols',
+ ['mlym'] = 'Malayalam',
+ ['mong'] = 'Mongolian',
+ ['musc'] = 'Musical Symbols',
+ ['mymr'] = 'Myanmar',
+ ['nko' ] = "N'ko",
+ ['ogam'] = 'Ogham',
+ ['orya'] = 'Oriya',
+ ['osma'] = 'Osmanya',
+ ['phag'] = 'Phags-pa',
+ ['phnx'] = 'Phoenician',
+ ['runr'] = 'Runic',
+ ['shaw'] = 'Shavian',
+ ['sinh'] = 'Sinhala',
+ ['sylo'] = 'Syloti Nagri',
+ ['syrc'] = 'Syriac',
+ ['tagb'] = 'Tagbanwa',
+ ['tale'] = 'Tai Le',
+ ['talu'] = 'Tai Lu',
+ ['taml'] = 'Tamil',
+ ['telu'] = 'Telugu',
+ ['tfng'] = 'Tifinagh',
+ ['tglg'] = 'Tagalog',
+ ['thaa'] = 'Thaana',
+ ['thai'] = 'Thai',
+ ['tibt'] = 'Tibetan',
+ ['ugar'] = 'Ugaritic Cuneiform',
+ ['xpeo'] = 'Old Persian Cuneiform',
+ ['xsux'] = 'Sumero-Akkadian Cuneiform',
+ ['yi' ] = 'Yi'
+}
+
+otf.tables.languages = {
+ ['dflt'] = 'Default',
+
+ ['aba'] = 'Abaza',
+ ['abk'] = 'Abkhazian',
+ ['ady'] = 'Adyghe',
+ ['afk'] = 'Afrikaans',
+ ['afr'] = 'Afar',
+ ['agw'] = 'Agaw',
+ ['als'] = 'Alsatian',
+ ['alt'] = 'Altai',
+ ['amh'] = 'Amharic',
+ ['ara'] = 'Arabic',
+ ['ari'] = 'Aari',
+ ['ark'] = 'Arakanese',
+ ['asm'] = 'Assamese',
+ ['ath'] = 'Athapaskan',
+ ['avr'] = 'Avar',
+ ['awa'] = 'Awadhi',
+ ['aym'] = 'Aymara',
+ ['aze'] = 'Azeri',
+ ['bad'] = 'Badaga',
+ ['bag'] = 'Baghelkhandi',
+ ['bal'] = 'Balkar',
+ ['bau'] = 'Baule',
+ ['bbr'] = 'Berber',
+ ['bch'] = 'Bench',
+ ['bcr'] = 'Bible Cree',
+ ['bel'] = 'Belarussian',
+ ['bem'] = 'Bemba',
+ ['ben'] = 'Bengali',
+ ['bgr'] = 'Bulgarian',
+ ['bhi'] = 'Bhili',
+ ['bho'] = 'Bhojpuri',
+ ['bik'] = 'Bikol',
+ ['bil'] = 'Bilen',
+ ['bkf'] = 'Blackfoot',
+ ['bli'] = 'Balochi',
+ ['bln'] = 'Balante',
+ ['blt'] = 'Balti',
+ ['bmb'] = 'Bambara',
+ ['bml'] = 'Bamileke',
+ ['bos'] = 'Bosnian',
+ ['bre'] = 'Breton',
+ ['brh'] = 'Brahui',
+ ['bri'] = 'Braj Bhasha',
+ ['brm'] = 'Burmese',
+ ['bsh'] = 'Bashkir',
+ ['bti'] = 'Beti',
+ ['cat'] = 'Catalan',
+ ['ceb'] = 'Cebuano',
+ ['che'] = 'Chechen',
+ ['chg'] = 'Chaha Gurage',
+ ['chh'] = 'Chattisgarhi',
+ ['chi'] = 'Chichewa',
+ ['chk'] = 'Chukchi',
+ ['chp'] = 'Chipewyan',
+ ['chr'] = 'Cherokee',
+ ['chu'] = 'Chuvash',
+ ['cmr'] = 'Comorian',
+ ['cop'] = 'Coptic',
+ ['cos'] = 'Corsican',
+ ['cre'] = 'Cree',
+ ['crr'] = 'Carrier',
+ ['crt'] = 'Crimean Tatar',
+ ['csl'] = 'Church Slavonic',
+ ['csy'] = 'Czech',
+ ['dan'] = 'Danish',
+ ['dar'] = 'Dargwa',
+ ['dcr'] = 'Woods Cree',
+ ['deu'] = 'German',
+ ['dgr'] = 'Dogri',
+ ['div'] = 'Divehi',
+ ['djr'] = 'Djerma',
+ ['dng'] = 'Dangme',
+ ['dnk'] = 'Dinka',
+ ['dri'] = 'Dari',
+ ['dun'] = 'Dungan',
+ ['dzn'] = 'Dzongkha',
+ ['ebi'] = 'Ebira',
+ ['ecr'] = 'Eastern Cree',
+ ['edo'] = 'Edo',
+ ['efi'] = 'Efik',
+ ['ell'] = 'Greek',
+ ['eng'] = 'English',
+ ['erz'] = 'Erzya',
+ ['esp'] = 'Spanish',
+ ['eti'] = 'Estonian',
+ ['euq'] = 'Basque',
+ ['evk'] = 'Evenki',
+ ['evn'] = 'Even',
+ ['ewe'] = 'Ewe',
+ ['fan'] = 'French Antillean',
+ ['far'] = 'Farsi',
+ ['fin'] = 'Finnish',
+ ['fji'] = 'Fijian',
+ ['fle'] = 'Flemish',
+ ['fne'] = 'Forest Nenets',
+ ['fon'] = 'Fon',
+ ['fos'] = 'Faroese',
+ ['fra'] = 'French',
+ ['fri'] = 'Frisian',
+ ['frl'] = 'Friulian',
+ ['fta'] = 'Futa',
+ ['ful'] = 'Fulani',
+ ['gad'] = 'Ga',
+ ['gae'] = 'Gaelic',
+ ['gag'] = 'Gagauz',
+ ['gal'] = 'Galician',
+ ['gar'] = 'Garshuni',
+ ['gaw'] = 'Garhwali',
+ ['gez'] = "Ge'ez",
+ ['gil'] = 'Gilyak',
+ ['gmz'] = 'Gumuz',
+ ['gon'] = 'Gondi',
+ ['grn'] = 'Greenlandic',
+ ['gro'] = 'Garo',
+ ['gua'] = 'Guarani',
+ ['guj'] = 'Gujarati',
+ ['hai'] = 'Haitian',
+ ['hal'] = 'Halam',
+ ['har'] = 'Harauti',
+ ['hau'] = 'Hausa',
+ ['haw'] = 'Hawaiin',
+ ['hbn'] = 'Hammer-Banna',
+ ['hil'] = 'Hiligaynon',
+ ['hin'] = 'Hindi',
+ ['hma'] = 'High Mari',
+ ['hnd'] = 'Hindko',
+ ['ho'] = 'Ho',
+ ['hri'] = 'Harari',
+ ['hrv'] = 'Croatian',
+ ['hun'] = 'Hungarian',
+ ['hye'] = 'Armenian',
+ ['ibo'] = 'Igbo',
+ ['ijo'] = 'Ijo',
+ ['ilo'] = 'Ilokano',
+ ['ind'] = 'Indonesian',
+ ['ing'] = 'Ingush',
+ ['inu'] = 'Inuktitut',
+ ['iri'] = 'Irish',
+ ['irt'] = 'Irish Traditional',
+ ['isl'] = 'Icelandic',
+ ['ism'] = 'Inari Sami',
+ ['ita'] = 'Italian',
+ ['iwr'] = 'Hebrew',
+ ['jan'] = 'Japanese',
+ ['jav'] = 'Javanese',
+ ['jii'] = 'Yiddish',
+ ['jud'] = 'Judezmo',
+ ['jul'] = 'Jula',
+ ['kab'] = 'Kabardian',
+ ['kac'] = 'Kachchi',
+ ['kal'] = 'Kalenjin',
+ ['kan'] = 'Kannada',
+ ['kar'] = 'Karachay',
+ ['kat'] = 'Georgian',
+ ['kaz'] = 'Kazakh',
+ ['keb'] = 'Kebena',
+ ['kge'] = 'Khutsuri Georgian',
+ ['kha'] = 'Khakass',
+ ['khk'] = 'Khanty-Kazim',
+ ['khm'] = 'Khmer',
+ ['khs'] = 'Khanty-Shurishkar',
+ ['khv'] = 'Khanty-Vakhi',
+ ['khw'] = 'Khowar',
+ ['kik'] = 'Kikuyu',
+ ['kir'] = 'Kirghiz',
+ ['kis'] = 'Kisii',
+ ['kkn'] = 'Kokni',
+ ['klm'] = 'Kalmyk',
+ ['kmb'] = 'Kamba',
+ ['kmn'] = 'Kumaoni',
+ ['kmo'] = 'Komo',
+ ['kms'] = 'Komso',
+ ['knr'] = 'Kanuri',
+ ['kod'] = 'Kodagu',
+ ['koh'] = 'Korean Old Hangul',
+ ['kok'] = 'Konkani',
+ ['kon'] = 'Kikongo',
+ ['kop'] = 'Komi-Permyak',
+ ['kor'] = 'Korean',
+ ['koz'] = 'Komi-Zyrian',
+ ['kpl'] = 'Kpelle',
+ ['kri'] = 'Krio',
+ ['krk'] = 'Karakalpak',
+ ['krl'] = 'Karelian',
+ ['krm'] = 'Karaim',
+ ['krn'] = 'Karen',
+ ['krt'] = 'Koorete',
+ ['ksh'] = 'Kashmiri',
+ ['ksi'] = 'Khasi',
+ ['ksm'] = 'Kildin Sami',
+ ['kui'] = 'Kui',
+ ['kul'] = 'Kulvi',
+ ['kum'] = 'Kumyk',
+ ['kur'] = 'Kurdish',
+ ['kuu'] = 'Kurukh',
+ ['kuy'] = 'Kuy',
+ ['kyk'] = 'Koryak',
+ ['lad'] = 'Ladin',
+ ['lah'] = 'Lahuli',
+ ['lak'] = 'Lak',
+ ['lam'] = 'Lambani',
+ ['lao'] = 'Lao',
+ ['lat'] = 'Latin',
+ ['laz'] = 'Laz',
+ ['lcr'] = 'L-Cree',
+ ['ldk'] = 'Ladakhi',
+ ['lez'] = 'Lezgi',
+ ['lin'] = 'Lingala',
+ ['lma'] = 'Low Mari',
+ ['lmb'] = 'Limbu',
+ ['lmw'] = 'Lomwe',
+ ['lsb'] = 'Lower Sorbian',
+ ['lsm'] = 'Lule Sami',
+ ['lth'] = 'Lithuanian',
+ ['ltz'] = 'Luxembourgish',
+ ['lub'] = 'Luba',
+ ['lug'] = 'Luganda',
+ ['luh'] = 'Luhya',
+ ['luo'] = 'Luo',
+ ['lvi'] = 'Latvian',
+ ['maj'] = 'Majang',
+ ['mak'] = 'Makua',
+ ['mal'] = 'Malayalam Traditional',
+ ['man'] = 'Mansi',
+ ['map'] = 'Mapudungun',
+ ['mar'] = 'Marathi',
+ ['maw'] = 'Marwari',
+ ['mbn'] = 'Mbundu',
+ ['mch'] = 'Manchu',
+ ['mcr'] = 'Moose Cree',
+ ['mde'] = 'Mende',
+ ['men'] = "Me'en",
+ ['miz'] = 'Mizo',
+ ['mkd'] = 'Macedonian',
+ ['mle'] = 'Male',
+ ['mlg'] = 'Malagasy',
+ ['mln'] = 'Malinke',
+ ['mlr'] = 'Malayalam Reformed',
+ ['mly'] = 'Malay',
+ ['mnd'] = 'Mandinka',
+ ['mng'] = 'Mongolian',
+ ['mni'] = 'Manipuri',
+ ['mnk'] = 'Maninka',
+ ['mnx'] = 'Manx Gaelic',
+ ['moh'] = 'Mohawk',
+ ['mok'] = 'Moksha',
+ ['mol'] = 'Moldavian',
+ ['mon'] = 'Mon',
+ ['mor'] = 'Moroccan',
+ ['mri'] = 'Maori',
+ ['mth'] = 'Maithili',
+ ['mts'] = 'Maltese',
+ ['mun'] = 'Mundari',
+ ['nag'] = 'Naga-Assamese',
+ ['nan'] = 'Nanai',
+ ['nas'] = 'Naskapi',
+ ['ncr'] = 'N-Cree',
+ ['ndb'] = 'Ndebele',
+ ['ndg'] = 'Ndonga',
+ ['nep'] = 'Nepali',
+ ['new'] = 'Newari',
+ ['ngr'] = 'Nagari',
+ ['nhc'] = 'Norway House Cree',
+ ['nis'] = 'Nisi',
+ ['niu'] = 'Niuean',
+ ['nkl'] = 'Nkole',
+ ['nko'] = "N'ko",
+ ['nld'] = 'Dutch',
+ ['nog'] = 'Nogai',
+ ['nor'] = 'Norwegian',
+ ['nsm'] = 'Northern Sami',
+ ['nta'] = 'Northern Tai',
+ ['nto'] = 'Esperanto',
+ ['nyn'] = 'Nynorsk',
+ ['oci'] = 'Occitan',
+ ['ocr'] = 'Oji-Cree',
+ ['ojb'] = 'Ojibway',
+ ['ori'] = 'Oriya',
+ ['oro'] = 'Oromo',
+ ['oss'] = 'Ossetian',
+ ['paa'] = 'Palestinian Aramaic',
+ ['pal'] = 'Pali',
+ ['pan'] = 'Punjabi',
+ ['pap'] = 'Palpa',
+ ['pas'] = 'Pashto',
+ ['pgr'] = 'Polytonic Greek',
+ ['pil'] = 'Pilipino',
+ ['plg'] = 'Palaung',
+ ['plk'] = 'Polish',
+ ['pro'] = 'Provencal',
+ ['ptg'] = 'Portuguese',
+ ['qin'] = 'Chin',
+ ['raj'] = 'Rajasthani',
+ ['rbu'] = 'Russian Buriat',
+ ['rcr'] = 'R-Cree',
+ ['ria'] = 'Riang',
+ ['rms'] = 'Rhaeto-Romanic',
+ ['rom'] = 'Romanian',
+ ['roy'] = 'Romany',
+ ['rsy'] = 'Rusyn',
+ ['rua'] = 'Ruanda',
+ ['rus'] = 'Russian',
+ ['sad'] = 'Sadri',
+ ['san'] = 'Sanskrit',
+ ['sat'] = 'Santali',
+ ['say'] = 'Sayisi',
+ ['sek'] = 'Sekota',
+ ['sel'] = 'Selkup',
+ ['sgo'] = 'Sango',
+ ['shn'] = 'Shan',
+ ['sib'] = 'Sibe',
+ ['sid'] = 'Sidamo',
+ ['sig'] = 'Silte Gurage',
+ ['sks'] = 'Skolt Sami',
+ ['sky'] = 'Slovak',
+ ['sla'] = 'Slavey',
+ ['slv'] = 'Slovenian',
+ ['sml'] = 'Somali',
+ ['smo'] = 'Samoan',
+ ['sna'] = 'Sena',
+ ['snd'] = 'Sindhi',
+ ['snh'] = 'Sinhalese',
+ ['snk'] = 'Soninke',
+ ['sog'] = 'Sodo Gurage',
+ ['sot'] = 'Sotho',
+ ['sqi'] = 'Albanian',
+ ['srb'] = 'Serbian',
+ ['srk'] = 'Saraiki',
+ ['srr'] = 'Serer',
+ ['ssl'] = 'South Slavey',
+ ['ssm'] = 'Southern Sami',
+ ['sur'] = 'Suri',
+ ['sva'] = 'Svan',
+ ['sve'] = 'Swedish',
+ ['swa'] = 'Swadaya Aramaic',
+ ['swk'] = 'Swahili',
+ ['swz'] = 'Swazi',
+ ['sxt'] = 'Sutu',
+ ['syr'] = 'Syriac',
+ ['tab'] = 'Tabasaran',
+ ['taj'] = 'Tajiki',
+ ['tam'] = 'Tamil',
+ ['tat'] = 'Tatar',
+ ['tcr'] = 'TH-Cree',
+ ['tel'] = 'Telugu',
+ ['tgn'] = 'Tongan',
+ ['tgr'] = 'Tigre',
+ ['tgy'] = 'Tigrinya',
+ ['tha'] = 'Thai',
+ ['tht'] = 'Tahitian',
+ ['tib'] = 'Tibetan',
+ ['tkm'] = 'Turkmen',
+ ['tmn'] = 'Temne',
+ ['tna'] = 'Tswana',
+ ['tne'] = 'Tundra Nenets',
+ ['tng'] = 'Tonga',
+ ['tod'] = 'Todo',
+ ['trk'] = 'Turkish',
+ ['tsg'] = 'Tsonga',
+ ['tua'] = 'Turoyo Aramaic',
+ ['tul'] = 'Tulu',
+ ['tuv'] = 'Tuvin',
+ ['twi'] = 'Twi',
+ ['udm'] = 'Udmurt',
+ ['ukr'] = 'Ukrainian',
+ ['urd'] = 'Urdu',
+ ['usb'] = 'Upper Sorbian',
+ ['uyg'] = 'Uyghur',
+ ['uzb'] = 'Uzbek',
+ ['ven'] = 'Venda',
+ ['vit'] = 'Vietnamese',
+ ['wa' ] = 'Wa',
+ ['wag'] = 'Wagdi',
+ ['wcr'] = 'West-Cree',
+ ['wel'] = 'Welsh',
+ ['wlf'] = 'Wolof',
+ ['xbd'] = 'Tai Lue',
+ ['xhs'] = 'Xhosa',
+ ['yak'] = 'Yakut',
+ ['yba'] = 'Yoruba',
+ ['ycr'] = 'Y-Cree',
+ ['yic'] = 'Yi Classic',
+ ['yim'] = 'Yi Modern',
+ ['zhh'] = 'Chinese Hong Kong',
+ ['zhp'] = 'Chinese Phonetic',
+ ['zhs'] = 'Chinese Simplified',
+ ['zht'] = 'Chinese Traditional',
+ ['znd'] = 'Zande',
+ ['zul'] = 'Zulu'
+}
+
+otf.tables.features = {
+ ['aalt'] = 'Access All Alternates',
+ ['abvf'] = 'Above-Base Forms',
+ ['abvm'] = 'Above-Base Mark Positioning',
+ ['abvs'] = 'Above-Base Substitutions',
+ ['afrc'] = 'Alternative Fractions',
+ ['akhn'] = 'Akhands',
+ ['blwf'] = 'Below-Base Forms',
+ ['blwm'] = 'Below-Base Mark Positioning',
+ ['blws'] = 'Below-Base Substitutions',
+ ['c2pc'] = 'Petite Capitals From Capitals',
+ ['c2sc'] = 'Small Capitals From Capitals',
+ ['calt'] = 'Contextual Alternates',
+ ['case'] = 'Case-Sensitive Forms',
+ ['ccmp'] = 'Glyph Composition/Decomposition',
+ ['cjct'] = 'Conjunct Forms',
+ ['clig'] = 'Contextual Ligatures',
+ ['cpsp'] = 'Capital Spacing',
+ ['cswh'] = 'Contextual Swash',
+ ['curs'] = 'Cursive Positioning',
+ ['dflt'] = 'Default Processing',
+ ['dist'] = 'Distances',
+ ['dlig'] = 'Discretionary Ligatures',
+ ['dnom'] = 'Denominators',
+ ['dtls'] = 'Dotless Forms', -- math
+ ['expt'] = 'Expert Forms',
+ ['falt'] = 'Final glyph Alternates',
+ ['fin2'] = 'Terminal Forms #2',
+ ['fin3'] = 'Terminal Forms #3',
+ ['fina'] = 'Terminal Forms',
+ ['flac'] = 'Flattened Accents Over Capitals', -- math
+ ['frac'] = 'Fractions',
+ ['fwid'] = 'Full Width',
+ ['half'] = 'Half Forms',
+ ['haln'] = 'Halant Forms',
+ ['halt'] = 'Alternate Half Width',
+ ['hist'] = 'Historical Forms',
+ ['hkna'] = 'Horizontal Kana Alternates',
+ ['hlig'] = 'Historical Ligatures',
+ ['hngl'] = 'Hangul',
+ ['hojo'] = 'Hojo Kanji Forms',
+ ['hwid'] = 'Half Width',
+ ['init'] = 'Initial Forms',
+ ['isol'] = 'Isolated Forms',
+ ['ital'] = 'Italics',
+ ['jalt'] = 'Justification Alternatives',
+ ['jp04'] = 'JIS2004 Forms',
+ ['jp78'] = 'JIS78 Forms',
+ ['jp83'] = 'JIS83 Forms',
+ ['jp90'] = 'JIS90 Forms',
+ ['kern'] = 'Kerning',
+ ['lfbd'] = 'Left Bounds',
+ ['liga'] = 'Standard Ligatures',
+ ['ljmo'] = 'Leading Jamo Forms',
+ ['lnum'] = 'Lining Figures',
+ ['locl'] = 'Localized Forms',
+ ['mark'] = 'Mark Positioning',
+ ['med2'] = 'Medial Forms #2',
+ ['medi'] = 'Medial Forms',
+ ['mgrk'] = 'Mathematical Greek',
+ ['mkmk'] = 'Mark to Mark Positioning',
+ ['mset'] = 'Mark Positioning via Substitution',
+ ['nalt'] = 'Alternate Annotation Forms',
+ ['nlck'] = 'NLC Kanji Forms',
+ ['nukt'] = 'Nukta Forms',
+ ['numr'] = 'Numerators',
+ ['onum'] = 'Old Style Figures',
+ ['opbd'] = 'Optical Bounds',
+ ['ordn'] = 'Ordinals',
+ ['ornm'] = 'Ornaments',
+ ['palt'] = 'Proportional Alternate Width',
+ ['pcap'] = 'Petite Capitals',
+ ['pnum'] = 'Proportional Figures',
+ ['pref'] = 'Pre-base Forms',
+ ['pres'] = 'Pre-base Substitutions',
+ ['pstf'] = 'Post-base Forms',
+ ['psts'] = 'Post-base Substitutions',
+ ['pwid'] = 'Proportional Widths',
+ ['qwid'] = 'Quarter Widths',
+ ['rand'] = 'Randomize',
+ ['rkrf'] = 'Rakar Forms',
+ ['rlig'] = 'Required Ligatures',
+ ['rphf'] = 'Reph Form',
+ ['rtbd'] = 'Right Bounds',
+ ['rtla'] = 'Right-To-Left Alternates',
+ ['ruby'] = 'Ruby Notation Forms',
+ ['salt'] = 'Stylistic Alternates',
+ ['sinf'] = 'Scientific Inferiors',
+ ['size'] = 'Optical Size',
+ ['smcp'] = 'Small Capitals',
+ ['smpl'] = 'Simplified Forms',
+ ['ss01'] = 'Stylistic Set 1',
+ ['ss02'] = 'Stylistic Set 2',
+ ['ss03'] = 'Stylistic Set 3',
+ ['ss04'] = 'Stylistic Set 4',
+ ['ss05'] = 'Stylistic Set 5',
+ ['ss06'] = 'Stylistic Set 6',
+ ['ss07'] = 'Stylistic Set 7',
+ ['ss08'] = 'Stylistic Set 8',
+ ['ss09'] = 'Stylistic Set 9',
+ ['ss10'] = 'Stylistic Set 10',
+ ['ss11'] = 'Stylistic Set 11',
+ ['ss12'] = 'Stylistic Set 12',
+ ['ss13'] = 'Stylistic Set 13',
+ ['ss14'] = 'Stylistic Set 14',
+ ['ss15'] = 'Stylistic Set 15',
+ ['ss16'] = 'Stylistic Set 16',
+ ['ss17'] = 'Stylistic Set 17',
+ ['ss18'] = 'Stylistic Set 18',
+ ['ss19'] = 'Stylistic Set 19',
+ ['ss20'] = 'Stylistic Set 20',
+ ['ssty'] = 'Script Style', -- math
+ ['subs'] = 'Subscript',
+ ['sups'] = 'Superscript',
+ ['swsh'] = 'Swash',
+ ['titl'] = 'Titling',
+ ['tjmo'] = 'Trailing Jamo Forms',
+ ['tnam'] = 'Traditional Name Forms',
+ ['tnum'] = 'Tabular Figures',
+ ['trad'] = 'Traditional Forms',
+ ['twid'] = 'Third Widths',
+ ['unic'] = 'Unicase',
+ ['valt'] = 'Alternate Vertical Metrics',
+ ['vatu'] = 'Vattu Variants',
+ ['vert'] = 'Vertical Writing',
+ ['vhal'] = 'Alternate Vertical Half Metrics',
+ ['vjmo'] = 'Vowel Jamo Forms',
+ ['vkna'] = 'Vertical Kana Alternates',
+ ['vkrn'] = 'Vertical Kerning',
+ ['vpal'] = 'Proportional Alternate Vertical Metrics',
+ ['vrt2'] = 'Vertical Rotation',
+ ['zero'] = 'Slashed Zero',
+
+ ['trep'] = 'Traditional TeX Replacements',
+ ['tlig'] = 'Traditional TeX Ligatures',
+}
+
+otf.tables.baselines = {
+ ['hang'] = 'Hanging baseline',
+ ['icfb'] = 'Ideographic character face bottom edge baseline',
+ ['icft'] = 'Ideographic character face tope edige baseline',
+ ['ideo'] = 'Ideographic em-box bottom edge baseline',
+ ['idtp'] = 'Ideographic em-box top edge baseline',
+ ['math'] = 'Mathmatical centered baseline',
+ ['romn'] = 'Roman baseline'
+}
+
+-- can be sped up by local tables
+
+function otf.tables.to_tag(id)
+ return stringformat("%4s",lower(id))
+end
+
+local function resolve(tab,id)
+ if tab and id then
+ id = lower(id)
+ return tab[id] or tab[gsub(id," ","")] or tab['dflt'] or ''
+ else
+ return "unknown"
+ end
+end
+
+function otf.meanings.script(id)
+ return resolve(otf.tables.scripts,id)
+end
+function otf.meanings.language(id)
+ return resolve(otf.tables.languages,id)
+end
+function otf.meanings.feature(id)
+ return resolve(otf.tables.features,id)
+end
+function otf.meanings.baseline(id)
+ return resolve(otf.tables.baselines,id)
+end
+
+otf.tables.to_scripts = table.reverse_hash(otf.tables.scripts )
+otf.tables.to_languages = table.reverse_hash(otf.tables.languages)
+otf.tables.to_features = table.reverse_hash(otf.tables.features )
+
+local scripts = otf.tables.scripts
+local languages = otf.tables.languages
+local features = otf.tables.features
+
+local to_scripts = otf.tables.to_scripts
+local to_languages = otf.tables.to_languages
+local to_features = otf.tables.to_features
+
+for k, v in pairs(to_features) do
+ local stripped = gsub(k,"%-"," ")
+ to_features[stripped] = v
+ local stripped = gsub(k,"[^a-zA-Z0-9]","")
+ to_features[stripped] = v
+end
+for k, v in pairs(to_features) do
+ to_features[lower(k)] = v
+end
+
+function otf.meanings.normalize(features)
+ local h = { }
+ for k,v in next, features do
+ k = lower(k)
+ if k == "language" or k == "lang" then
+ v = gsub(lower(v),"[^a-z0-9%-]","")
+ k = language
+ if not languages[v] then
+ h.language = to_languages[v] or "dflt"
+ else
+ h.language = v
+ end
+ elseif k == "script" then
+ v = gsub(lower(v),"[^a-z0-9%-]","")
+ if not scripts[v] then
+ h.script = to_scripts[v] or "dflt"
+ else
+ h.script = v
+ end
+ else
+ if type(v) == "string" then
+ local b = v:is_boolean()
+ if type(b) == "nil" then
+ v = tonumber(v) or lower(v)
+ else
+ v = b
+ end
+ end
+ h[to_features[k] or k] = v
+ end
+ end
+ return h
+end
+
+-- When I feel the need ...
+
+--~ otf.tables.aat = {
+--~ [ 0] = {
+--~ name = "allTypographicFeaturesType",
+--~ [ 0] = "allTypeFeaturesOnSelector",
+--~ [ 1] = "allTypeFeaturesOffSelector",
+--~ },
+--~ [ 1] = {
+--~ name = "ligaturesType",
+--~ [0 ] = "requiredLigaturesOnSelector",
+--~ [1 ] = "requiredLigaturesOffSelector",
+--~ [2 ] = "commonLigaturesOnSelector",
+--~ [3 ] = "commonLigaturesOffSelector",
+--~ [4 ] = "rareLigaturesOnSelector",
+--~ [5 ] = "rareLigaturesOffSelector",
+--~ [6 ] = "logosOnSelector ",
+--~ [7 ] = "logosOffSelector ",
+--~ [8 ] = "rebusPicturesOnSelector",
+--~ [9 ] = "rebusPicturesOffSelector",
+--~ [10] = "diphthongLigaturesOnSelector",
+--~ [11] = "diphthongLigaturesOffSelector",
+--~ [12] = "squaredLigaturesOnSelector",
+--~ [13] = "squaredLigaturesOffSelector",
+--~ [14] = "abbrevSquaredLigaturesOnSelector",
+--~ [15] = "abbrevSquaredLigaturesOffSelector",
+--~ },
+--~ [ 2] = {
+--~ name = "cursiveConnectionType",
+--~ [ 0] = "unconnectedSelector",
+--~ [ 1] = "partiallyConnectedSelector",
+--~ [ 2] = "cursiveSelector ",
+--~ },
+--~ [ 3] = {
+--~ name = "letterCaseType",
+--~ [ 0] = "upperAndLowerCaseSelector",
+--~ [ 1] = "allCapsSelector ",
+--~ [ 2] = "allLowerCaseSelector",
+--~ [ 3] = "smallCapsSelector ",
+--~ [ 4] = "initialCapsSelector",
+--~ [ 5] = "initialCapsAndSmallCapsSelector",
+--~ },
+--~ [ 4] = {
+--~ name = "verticalSubstitutionType",
+--~ [ 0] = "substituteVerticalFormsOnSelector",
+--~ [ 1] = "substituteVerticalFormsOffSelector",
+--~ },
+--~ [ 5] = {
+--~ name = "linguisticRearrangementType",
+--~ [ 0] = "linguisticRearrangementOnSelector",
+--~ [ 1] = "linguisticRearrangementOffSelector",
+--~ },
+--~ [ 6] = {
+--~ name = "numberSpacingType",
+--~ [ 0] = "monospacedNumbersSelector",
+--~ [ 1] = "proportionalNumbersSelector",
+--~ },
+--~ [ 7] = {
+--~ name = "appleReserved1Type",
+--~ },
+--~ [ 8] = {
+--~ name = "smartSwashType",
+--~ [ 0] = "wordInitialSwashesOnSelector",
+--~ [ 1] = "wordInitialSwashesOffSelector",
+--~ [ 2] = "wordFinalSwashesOnSelector",
+--~ [ 3] = "wordFinalSwashesOffSelector",
+--~ [ 4] = "lineInitialSwashesOnSelector",
+--~ [ 5] = "lineInitialSwashesOffSelector",
+--~ [ 6] = "lineFinalSwashesOnSelector",
+--~ [ 7] = "lineFinalSwashesOffSelector",
+--~ [ 8] = "nonFinalSwashesOnSelector",
+--~ [ 9] = "nonFinalSwashesOffSelector",
+--~ },
+--~ [ 9] = {
+--~ name = "diacriticsType",
+--~ [ 0] = "showDiacriticsSelector",
+--~ [ 1] = "hideDiacriticsSelector",
+--~ [ 2] = "decomposeDiacriticsSelector",
+--~ },
+--~ [10] = {
+--~ name = "verticalPositionType",
+--~ [ 0] = "normalPositionSelector",
+--~ [ 1] = "superiorsSelector ",
+--~ [ 2] = "inferiorsSelector ",
+--~ [ 3] = "ordinalsSelector ",
+--~ },
+--~ [11] = {
+--~ name = "fractionsType",
+--~ [ 0] = "noFractionsSelector",
+--~ [ 1] = "verticalFractionsSelector",
+--~ [ 2] = "diagonalFractionsSelector",
+--~ },
+--~ [12] = {
+--~ name = "appleReserved2Type",
+--~ },
+--~ [13] = {
+--~ name = "overlappingCharactersType",
+--~ [ 0] = "preventOverlapOnSelector",
+--~ [ 1] = "preventOverlapOffSelector",
+--~ },
+--~ [14] = {
+--~ name = "typographicExtrasType",
+--~ [0 ] = "hyphensToEmDashOnSelector",
+--~ [1 ] = "hyphensToEmDashOffSelector",
+--~ [2 ] = "hyphenToEnDashOnSelector",
+--~ [3 ] = "hyphenToEnDashOffSelector",
+--~ [4 ] = "unslashedZeroOnSelector",
+--~ [5 ] = "unslashedZeroOffSelector",
+--~ [6 ] = "formInterrobangOnSelector",
+--~ [7 ] = "formInterrobangOffSelector",
+--~ [8 ] = "smartQuotesOnSelector",
+--~ [9 ] = "smartQuotesOffSelector",
+--~ [10] = "periodsToEllipsisOnSelector",
+--~ [11] = "periodsToEllipsisOffSelector",
+--~ },
+--~ [15] = {
+--~ name = "mathematicalExtrasType",
+--~ [ 0] = "hyphenToMinusOnSelector",
+--~ [ 1] = "hyphenToMinusOffSelector",
+--~ [ 2] = "asteriskToMultiplyOnSelector",
+--~ [ 3] = "asteriskToMultiplyOffSelector",
+--~ [ 4] = "slashToDivideOnSelector",
+--~ [ 5] = "slashToDivideOffSelector",
+--~ [ 6] = "inequalityLigaturesOnSelector",
+--~ [ 7] = "inequalityLigaturesOffSelector",
+--~ [ 8] = "exponentsOnSelector",
+--~ [ 9] = "exponentsOffSelector",
+--~ },
+--~ [16] = {
+--~ name = "ornamentSetsType",
+--~ [ 0] = "noOrnamentsSelector",
+--~ [ 1] = "dingbatsSelector ",
+--~ [ 2] = "piCharactersSelector",
+--~ [ 3] = "fleuronsSelector ",
+--~ [ 4] = "decorativeBordersSelector",
+--~ [ 5] = "internationalSymbolsSelector",
+--~ [ 6] = "mathSymbolsSelector",
+--~ },
+--~ [17] = {
+--~ name = "characterAlternativesType",
+--~ [ 0] = "noAlternatesSelector",
+--~ },
+--~ [18] = {
+--~ name = "designComplexityType",
+--~ [ 0] = "designLevel1Selector",
+--~ [ 1] = "designLevel2Selector",
+--~ [ 2] = "designLevel3Selector",
+--~ [ 3] = "designLevel4Selector",
+--~ [ 4] = "designLevel5Selector",
+--~ },
+--~ [19] = {
+--~ name = "styleOptionsType",
+--~ [ 0] = "noStyleOptionsSelector",
+--~ [ 1] = "displayTextSelector",
+--~ [ 2] = "engravedTextSelector",
+--~ [ 3] = "illuminatedCapsSelector",
+--~ [ 4] = "titlingCapsSelector",
+--~ [ 5] = "tallCapsSelector ",
+--~ },
+--~ [20] = {
+--~ name = "characterShapeType",
+--~ [0 ] = "traditionalCharactersSelector",
+--~ [1 ] = "simplifiedCharactersSelector",
+--~ [2 ] = "jis1978CharactersSelector",
+--~ [3 ] = "jis1983CharactersSelector",
+--~ [4 ] = "jis1990CharactersSelector",
+--~ [5 ] = "traditionalAltOneSelector",
+--~ [6 ] = "traditionalAltTwoSelector",
+--~ [7 ] = "traditionalAltThreeSelector",
+--~ [8 ] = "traditionalAltFourSelector",
+--~ [9 ] = "traditionalAltFiveSelector",
+--~ [10] = "expertCharactersSelector",
+--~ },
+--~ [21] = {
+--~ name = "numberCaseType",
+--~ [ 0] = "lowerCaseNumbersSelector",
+--~ [ 1] = "upperCaseNumbersSelector",
+--~ },
+--~ [22] = {
+--~ name = "textSpacingType",
+--~ [ 0] = "proportionalTextSelector",
+--~ [ 1] = "monospacedTextSelector",
+--~ [ 2] = "halfWidthTextSelector",
+--~ [ 3] = "normallySpacedTextSelector",
+--~ },
+--~ [23] = {
+--~ name = "transliterationType",
+--~ [ 0] = "noTransliterationSelector",
+--~ [ 1] = "hanjaToHangulSelector",
+--~ [ 2] = "hiraganaToKatakanaSelector",
+--~ [ 3] = "katakanaToHiraganaSelector",
+--~ [ 4] = "kanaToRomanizationSelector",
+--~ [ 5] = "romanizationToHiraganaSelector",
+--~ [ 6] = "romanizationToKatakanaSelector",
+--~ [ 7] = "hanjaToHangulAltOneSelector",
+--~ [ 8] = "hanjaToHangulAltTwoSelector",
+--~ [ 9] = "hanjaToHangulAltThreeSelector",
+--~ },
+--~ [24] = {
+--~ name = "annotationType",
+--~ [ 0] = "noAnnotationSelector",
+--~ [ 1] = "boxAnnotationSelector",
+--~ [ 2] = "roundedBoxAnnotationSelector",
+--~ [ 3] = "circleAnnotationSelector",
+--~ [ 4] = "invertedCircleAnnotationSelector",
+--~ [ 5] = "parenthesisAnnotationSelector",
+--~ [ 6] = "periodAnnotationSelector",
+--~ [ 7] = "romanNumeralAnnotationSelector",
+--~ [ 8] = "diamondAnnotationSelector",
+--~ },
+--~ [25] = {
+--~ name = "kanaSpacingType",
+--~ [ 0] = "fullWidthKanaSelector",
+--~ [ 1] = "proportionalKanaSelector",
+--~ },
+--~ [26] = {
+--~ name = "ideographicSpacingType",
+--~ [ 0] = "fullWidthIdeographsSelector",
+--~ [ 1] = "proportionalIdeographsSelector",
+--~ },
+--~ [103] = {
+--~ name = "cjkRomanSpacingType",
+--~ [ 0] = "halfWidthCJKRomanSelector",
+--~ [ 1] = "proportionalCJKRomanSelector",
+--~ [ 2] = "defaultCJKRomanSelector",
+--~ [ 3] = "fullWidthCJKRomanSelector",
+--~ },
+--~ }
diff --git a/Master/texmf-dist/tex/context/base/font-pat.lua b/Master/texmf-dist/tex/context/base/font-pat.lua
new file mode 100644
index 00000000000..ae91700a90e
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/font-pat.lua
@@ -0,0 +1,94 @@
+if not modules then modules = { } end modules ['font-pat'] = {
+ version = 1.001,
+ comment = "companion to font-ini.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local match, lower = string.match, string.lower
+
+local trace_loading = false trackers.register("otf.loading", function(v) trace_loading = v end)
+
+-- older versions of latin modern didn't have the designsize set
+-- so for them we get it from the name
+
+local patches = fonts.otf.enhancers.patches
+
+local function patch(data,filename)
+ if data.design_size == 0 then
+ local ds = match(file.basename(lower(filename)),"(%d+)")
+ if ds then
+ if trace_loading then
+ logs.report("load otf","patching design size (%s)",ds)
+ end
+ data.design_size = tonumber(ds) * 10
+ end
+ end
+ local uni_to_ind = data.map.map
+ if not uni_to_ind[0x391] then
+ -- beware, this is a hack, features for latin often don't apply to greek
+ -- but lm has not much features anyway (and only greek for math)
+ if trace_loading then
+ logs.report("load otf","adding 13 greek capitals")
+ end
+ uni_to_ind[0x391] = uni_to_ind[0x41]
+ uni_to_ind[0x392] = uni_to_ind[0x42]
+ uni_to_ind[0x395] = uni_to_ind[0x45]
+ uni_to_ind[0x397] = uni_to_ind[0x48]
+ uni_to_ind[0x399] = uni_to_ind[0x49]
+ uni_to_ind[0x39A] = uni_to_ind[0x4B]
+ uni_to_ind[0x39C] = uni_to_ind[0x4D]
+ uni_to_ind[0x39D] = uni_to_ind[0x4E]
+ uni_to_ind[0x39F] = uni_to_ind[0x4F]
+ uni_to_ind[0x3A1] = uni_to_ind[0x52]
+ uni_to_ind[0x3A4] = uni_to_ind[0x54]
+ uni_to_ind[0x3A7] = uni_to_ind[0x58]
+ uni_to_ind[0x396] = uni_to_ind[0x5A]
+ end
+ -- better make this into a feature
+ --
+ -- local glyphs = data.glyphs
+ -- for i=0x300,0x36F do
+ -- local c = glyphs[uni_to_ind[i]]
+ -- if c and c.width == 0 then
+ -- local boundingbox = c.boundingbox
+ -- c.width = boundingbox[3] - boundingbox[1]
+ -- end
+ -- end
+end
+
+patches["^lmroman"] = patch
+patches["^lmsans"] = patch
+patches["^lmtypewriter"] = patch
+
+-- for some reason (either it's a bug in the font, or it's
+-- a problem in the library) the palatino arabic fonts don't
+-- have the mkmk features properly set up
+
+local function patch(data,filename)
+ local gpos = data.gpos
+ if gpos then
+ for k=1,#gpos do
+ local v = gpos[k]
+ if not v.features and v.type == "gpos_mark2mark" then
+ if trace_loading then
+ logs.report("load otf","patching mkmk feature (name: %s)", v.name or "?")
+ end
+ v.features = {
+ {
+ scripts = {
+ {
+ langs = { "ARA ", "FAR ", "URD ", "dflt" },
+ script = "arab",
+ },
+ },
+ tag = "mkmk"
+ }
+ }
+ end
+ end
+ end
+end
+
+patches["palatino.*arabic"] = patch
diff --git a/Master/texmf-dist/tex/context/base/font-run.tex b/Master/texmf-dist/tex/context/base/font-run.mkii
index 2703600f5de..0a0ddd05790 100644
--- a/Master/texmf-dist/tex/context/base/font-run.tex
+++ b/Master/texmf-dist/tex/context/base/font-run.mkii
@@ -106,12 +106,6 @@
\gdef\showfont
{\dodoubleempty\doshowfont}
-\beginTEX \iffontchar
-
- \gdef\iffontchar#1#2{\iftrue}
-
-\endTEX
-
\gdef\doshowfont[#1][#2]%
{\bgroup
\boxrulewidth=.1pt
@@ -219,8 +213,7 @@
\processcommalist[#2]\docommand
\egroup
\else\ifsecondargument
- \showfontstyle[#1][#2][\alternativetextlist]%
- \doif{#2}{\c!mm}{\showfontstyle[#1][#2][\alternativemathlist]}%
+ \showfontstyle[#1][#2][\fontalternativelist]% math is gone
\else
\showfontstyle[#1][\c!rm]\showfontstyle[#1][\c!ss]
\showfontstyle[#1][\c!tt]\showfontstyle[#1][\c!mm]
diff --git a/Master/texmf-dist/tex/context/base/font-run.mkiv b/Master/texmf-dist/tex/context/base/font-run.mkiv
new file mode 100644
index 00000000000..4cc098e2ce1
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/font-run.mkiv
@@ -0,0 +1,326 @@
+%D \module
+%D [ file=font-run,
+%D version=1998.09.11, % (second)
+%D version=2001.02.20, % (third)
+%D title=\CONTEXT\ Font Macros,
+%D subtitle=Runtime Macros,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D [This code is hooked into the core macros and saves some
+%D format space.]
+
+\unprotect
+
+\gdef\@@onlyenglish#1%
+ {\blank{\tttf \type {#1} is only available in the english interface}\blank}
+
+\gdef\dosetshowfonttitle#1%
+ {\tabskip\zeropoint
+ \parindent\zeropoint
+ \setlocalhsize
+ \doifelsenothing{#1}
+ {\def\title{[\the\bodyfontsize]}}
+ {\switchtobodyfont[#1]\def\title{[#1]}}
+ \doifsomething\fontclass
+ {\doifnot{[\fontclass]}\title
+ {\edef\title{[\fontclass]\space\title}}}}
+
+\gdef\showbodyfont
+ {\dosingleempty\doshowbodyfont}
+
+\gdef\doshowbodyfont[#1]%
+ {\ifinsidefloat\else\startbaselinecorrection\fi
+ \vbox
+ {\dosetshowfonttitle{#1}%
+ \def\bigstrut##1##2%
+ {\hbox{\vrule
+ \!!height##1\strutht
+ \!!depth ##2\strutdp
+ \!!width \zeropoint}}
+ \def\next##1##2##3%
+ {&&##1&&##2\tf##3&&##2\sc##3%
+ &&##2\sl##3&&##2\it##3&&##2\bf##3&&##2\bs##3&&##2\bi##3%
+ &&##2\tfx##3&&##2\tfxx##3%
+ &&##2\tfa##3&&##2\tfb##3&&##2\tfc##3&&##2\tfd##3&\cr}%
+ \halign to \localhsize
+ {\bigstrut{1.5}{2}##&\vrule##
+ \tabskip=\!!zeropoint \!!plus 1fill
+ &\hfil##\hfil&\vrule##&\hfil##\hfil&\vrule##
+ &\hfil##\hfil&\vrule##&\hfil##\hfil&\vrule##
+ &\hfil##\hfil&\vrule##&\hfil##\hfil&\vrule##
+ &\hfil##\hfil&\vrule##&\hfil##\hfil&\vrule##
+ &\hfil##\hfil&\vrule##&\hfil##\hfil&\vrule##
+ &\hfil##\hfil&\vrule##&\hfil##\hfil&\vrule##
+ &\hfil##\hfil&\vrule##&\hfil##\hfil&##\vrule
+ \tabskip=\!!zeropoint\cr
+ \noalign{\hrule}
+ &\multispan{29}{\vrule\hfil\tttf\strut\title\hfil
+ \llap{\string\mr\hbox to 1em{\hss:\hss}$\mr \languageparameter\c!text$\quad}\vrule}\cr
+ \noalign{\hrule}\next{}{\tt\string}{}
+ \noalign{\hrule}\next{\tt\string\rm}\rm{\languageparameter\c!text}
+ \noalign{\hrule}\next{\tt\string\ss}\ss{\languageparameter\c!text}
+ \noalign{\hrule}\next{\tt\string\tt}\tt{\languageparameter\c!text}
+ \noalign{\hrule}}}
+ \ifinsidefloat\else\stopbaselinecorrection\fi}
+
+\gdef\showbodyfontenvironment
+ {\dosingleempty\doshowbodyfontenvironment}
+
+\gdef\doshowbodyfontenvironment[#1]%
+ {\ifinsidefloat\else\startbaselinecorrection\fi
+ \vbox
+ {\dosetshowfonttitle{#1}%
+ \def\next##1%
+ {&&\getvalue{\bodyfontvariable{##1\s!text}}%
+ &&\getvalue{\bodyfontvariable{##1\s!script}}%
+ &&\getvalue{\bodyfontvariable{##1\s!scriptscript}}%
+ &&\getvalue{\bodyfontvariable{##1\c!x}}%
+ &&\getvalue{\bodyfontvariable{##1\c!xx}}%
+ &&\getvalue{\bodyfontvariable{##1\interfaced\v!small}}%
+ &&\getvalue{\bodyfontvariable{##1\interfaced\v!big}}%
+ &&\edef\next{\getvalue{\bodyfontvariable{##1\c!interlinespace}}}\ifx\next\empty not set\else\next\fi&\cr
+ \noalign{\hrule}}
+ \halign to \localhsize
+ {##&\vrule##\strut
+ \tabskip=\!!zeropoint \!!plus 1fill
+ &\hfil##\hfil&\vrule##&\hfil##\hfil&\vrule##&\hfil##\hfil&\vrule##
+ &\hfil##\hfil&\vrule##&\hfil##\hfil&\vrule##&\hfil##\hfil&\vrule##
+ &\hfil##\hfil&\vrule##&\hfil##\hfil&##\vrule
+ \tabskip\zeropoint\cr
+ \noalign{\hrule}
+ &\multispan{17}{\vrule\hfil\tttf\strut\title\hfil}\vrule\cr
+ \noalign{\hrule}
+ &&\tttf\tx\s!text&&\tttf\tx\s!script&&\tttf\tx\s!scriptscript
+ &&\tttf\tx\c!x&&\tttf\tx\c!xx&&\tttf\tx\v!small&&\tttf\tx\v!big
+ &&\tttf\tx\c!interlinespace&\cr
+ \noalign{\hrule}
+ \@EA\globalprocesscommalist\@EA[\bodyfontenvironmentlist]\next}}
+ \ifinsidefloat\else\stopbaselinecorrection\fi}
+
+\gdef\showfont
+ {\dodoubleempty\doshowfont}
+
+\gdef\doshowfont[#1][#2]%
+ {\bgroup
+ \boxrulewidth=.1pt
+ \setupcolors[\c!state=\v!local]%
+ \iffirstargument
+ \definefont[\s!dummy][#1]\dummy
+ \else\ifdim2.5em>.05\hsize \tx
+ \ifdim2.5em>.05\hsize \txx
+ \fi\fi\fi
+ \ifinsidefloat\else\startbaselinecorrection\fi
+ \vbox\bgroup
+ \forgetall
+ \startoverlay
+ {\vbox
+ {\tf \setstrut \dummy
+ \offinterlineskip
+ \dostepwiserecurse{0}{15}{1}
+ {\let\row\recurselevel
+ \hbox
+ {\red
+ \dostepwiserecurse{0}{15}{1}
+ {\let\col\recurselevel
+ \@EA\scratchcounter\string"\hexnumber\row\hexnumber\col\relax
+ \edef\rowcol{\the\scratchcounter}%
+ \iffontchar\font\scratchcounter
+ \setbox\scratchbox\ruledhbox{\black\char\scratchcounter}%
+ \ifdim\wd\scratchbox>\zeropoint
+ \donetrue \else \donefalse
+ \fi
+ \else
+ \setbox\scratchbox\hbox{\gray\vrule\!!width1ex\!!height.5ex\!!depth.5ex}%
+ \fi
+ \startoverlay
+ {\tf\vbox to 2.5em
+ {\vss
+ \hbox to 2.5em
+ {\dummy\ifdim\interwordspace=\zeropoint
+ \setbox\scratchbox\hbox
+ {\raise.5\dp\scratchbox\hbox
+ {\lower.5\ht\scratchbox\copy\scratchbox}}%
+ \ht\scratchbox\zeropoint
+ \dp\scratchbox\zeropoint
+ \else
+ \ht\scratchbox\strutht
+ \dp\scratchbox\strutdp
+ \strut
+ \fi
+ \hss\copy\scratchbox\hss}
+ \vss}}
+ {\tf\vbox to 2.3em
+ {\ifdone
+ \hsize2.4em
+ \blue
+ \edef\theshowfontspecs
+ {\ifnum\hyphenchar\font=\rowcol hyph\else
+ \ifnum\skewchar \font=\rowcol skew\fi\fi}%
+ \tinyfont % after \edef, else wrong font analyzed
+ \doifnot\v!unknown{#2}{{\red\theshowfontspecs}}\hfill\number\rowcol
+ \vfill
+ \octnumber\rowcol\hfill\lchexnumbers\rowcol
+ \par
+ \fi}}
+ \stopoverlay}}}
+ \par}}
+ {\tf\basegrid[\c!nx=16,\c!ny=16,\c!dx=2.5,\c!dy=2.5,\c!unit=em]}
+ \stopoverlay
+ \nointerlineskip
+ \vskip2pt
+ % the \noexpand before \blank is needed for non etex
+ \edef\ascii{name: {\noexpand\black\fontname\font}}
+ \def\do##1##2{\ifx##1\undefined\else\ifx##1\empty\else##2\fi\fi}%
+ \doifelse\v!unknown{#2}
+ {\edef\theshowfontspecs
+ {name: {\noexpand\black\fontname\font}}}
+ {\edef\theshowfontspecs
+ {name: {\noexpand\black\fontname\font}\noexpand\quad
+ \do\currentencoding{encoding: {\noexpand\black\currentencoding\noexpand\quad}}%
+ \do\currentmapping {mapping: {\noexpand\black\currentmapping \noexpand\quad}}%
+ \do\fonthandling {handling: {\noexpand\black\fonthandling }}}}%
+ \tf % also sets em
+ \hbox to 40em{\blue\hfill\tinyfont\setstrut\strut\theshowfontspecs}
+ \egroup
+ \ifinsidefloat\else\stopbaselinecorrection\fi
+ \egroup}
+
+\gdef\showfontstyle
+ {\dotripleempty\doshowfontstyle}
+
+\gdef\doshowfontstyle[#1][#2][#3]%
+ {\ifthirdargument
+ \bgroup
+ \raggedright
+ \switchtobodyfont[#1]
+ \def\dodocommand##1##2%
+ {\starttextrule{\tttf #1 ##1 ##2}
+ \nobreak \getvalue{##2}%
+ \dorecurse{255}
+ {\iffontchar\font\recurselevel\relax
+ \char\recurselevel\relax\space
+ \fi}
+ \par \nobreak
+ \stoptextrule}
+ \def\docommand##1%
+ {\getvalue{##1}\processcommacommand[#3]{\dodocommand{##1}}}
+ \processcommalist[#2]\docommand
+ \egroup
+ \else\ifsecondargument
+ \showfontstyle[#1][#2][\fontalternativelist]% math is gone
+ \else
+ \showfontstyle[#1][\c!rm]\showfontstyle[#1][\c!ss]
+ \showfontstyle[#1][\c!tt]\showfontstyle[#1][\c!mm]
+ \fi\fi}
+
+\gdef\showligature#1%
+ {\hbox{\type{#1}\enspace\red\ruledhbox{\black#1}}}
+
+\gdef\showligatures[#1]%
+ {\ifx\starttabulate\undefined
+ \@@onlyenglish\showligatures
+ \else
+ \bgroup
+ \setupcolors[\c!state=\v!local]%
+ \def\show##1{\hbox{\red\ruledhbox{\black##1}}}%
+ \definefont[\s!dummy][#1]\dummy
+ \starttabulate[|*{9}{c|}]
+ \NC\type{ff}\NC\type{fi}\NC\type{fl}\NC\type{ffi}\NC\type{ffl}\NC
+ \type{``}\NC\type{''}\NC\type{--}\NC\type{---}\NC\NR
+ \NC\show{ff}\NC\show{fi}\NC\show{fl}\NC\show{ffi}\NC\show{ffl}\NC
+ \show{``}\NC\show{''}\NC\show{--}\NC\show{---}\NC\NR
+ \stoptabulate
+ \egroup
+ \fi}
+
+\gdef\showfontstrip
+ {\dosingleempty\doshowfontstrip}
+
+\gdef\doshowfontstrip[#1]%
+ {\ifx\starttabulate\undefined
+ \@@onlyenglish\showfontstrip
+ \else
+ \bgroup
+ \def\dofontstripa##1##2%
+ {\tttf\string##1}
+ \def\dofontstripb##1##2%
+ {\ruledhbox{\switchtobodyfont[#1]##1{##2}}}
+ \def\dofontstripc##1##2%
+ {\setbox\scratchbox\hbox{\switchtobodyfont[#1]##1{##2}}%
+ \tt\tfx\the\ht\scratchbox}%
+ \def\dofontstripd##1##2%
+ {\setbox\scratchbox\hbox{\switchtobodyfont[#1]##1{##2}}%
+ \tt\tfx\the\wd\scratchbox}%
+ \def\fontstrip##1##2##3%
+ {\NC##2\rm{##3}\NC
+ ##2\ss{##3}\NC
+ ##2\tt{##3}\NC
+ ##2\mathematics{##3}\NC
+ \tttf##1\NR}
+ \starttabulate[|c|c|c|c|c|]
+ \fontstrip\relax\dofontstripa\empty
+ \TB
+ \fontstrip\relax\dofontstripb{xxxx}
+ \fontstrip\relax\dofontstripb{12345}
+ \fontstrip\relax\dofontstripb{(Agw)}
+ \TB
+ \fontstrip{(x height)}\dofontstripc{x}
+ \fontstrip{(m width)}\dofontstripd{m}
+ \stoptabulate
+ \egroup
+ \fi}
+
+\ifx\databox\undefined \newbox\databox \fi
+
+\gdef\testminimalbaseline#1%
+ {\setbox\databox\ruledhbox{#1}%
+ \scratchdimen\ht\databox
+ \advance\scratchdimen\dp\databox
+ \scratchtoks{#1}%
+ \expanded
+ {\NC \ruledhbox{\the\scratchtoks}
+ \noexpand \NC ->
+ \noexpand \NC \the\scratchdimen
+ \noexpand \NC =
+ \noexpand \NC \the\ht\databox
+ \noexpand \NC +
+ \noexpand \NC \the\dp\databox
+ \noexpand \NC \ifdim\scratchdimen<\baselineskip <
+ \else\ifdim\scratchdimen=\baselineskip =
+ \else > \fi\fi
+ \noexpand \NC \the\baselineskip
+ \noexpand \NC (\ifdim\scratchdimen>\baselineskip not \fi ok)
+ \noexpand \NC \noexpand \NR }}
+
+\gdef\showminimalbaseline
+ {\ifx\starttabulate\undefined
+ \@@onlyenglish\showminimalbaseline
+ \else
+ \starttabulate[||T|T|T|T|T|T|T|T|T|]
+ \testminimalbaseline{\hbox to 1em{\hss\showstruts\strut\hss}}%
+ \testminimalbaseline{(/)}%
+ \testminimalbaseline{$\frac{1}{2}x^2_3$}
+ \stoptabulate
+ \fi}
+
+\gdef\showkerning#1%
+ {\bgroup
+ \let\MPfshowcommand\ruledhbox
+ \setMPtext\s!dummy{#1}%
+ \startMPcode draw textext(\MPstring\s!dummy);\stopMPcode
+ \egroup}
+
+\gdef\showcharratio
+ {\dowithnextboxcontent
+ {\switchtobodyfont[10pt]}%
+ {(\expanded{\withoutpt\the\nextboxht},%
+ \expanded{\withoutpt\the\nextboxdp})}%
+ \hbox}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/font-syn.lua b/Master/texmf-dist/tex/context/base/font-syn.lua
index d9917771626..828808ec59d 100644
--- a/Master/texmf-dist/tex/context/base/font-syn.lua
+++ b/Master/texmf-dist/tex/context/base/font-syn.lua
@@ -6,57 +6,77 @@ if not modules then modules = { } end modules ['font-syn'] = {
license = "see context related readme files"
}
+local next = next
+local gsub, lower, match, find, lower, upper = string.gsub, string.lower, string.match, string.find, string.lower, string.upper
+
+local trace_names = false trackers.register("fonts.names", function(v) trace_names = v end)
+
--[[ldx--
<p>This module implements a name to filename resolver. Names are resolved
using a table that has keys filtered from the font related files.</p>
--ldx]]--
+local texsprint = (tex and tex.sprint) or print
+
fonts = fonts or { }
input = input or { }
texmf = texmf or { }
-fonts.names = { }
-fonts.names.filters = { }
-fonts.names.data = { }
-fonts.names.version = 1.04
-fonts.names.saved = false
-fonts.names.loaded = false
-fonts.names.be_clever = true
-fonts.names.enabled = true
-fonts.names.autoreload = toboolean(os.env['MTX.FONTS.AUTOLOAD'] or os.env['MTX_FONTS_AUTOLOAD'] or "no")
-fonts.names.cache = containers.define("fonts","data",fonts.names.version,true)
+fonts.names = fonts.names or { }
+fonts.names.filters = fonts.names.filters or { }
+fonts.names.data = fonts.names.data or { }
+
+local names = fonts.names
+local filters = fonts.names.filters
+
+names.version = 1.08 -- when adapting this, also changed font-dum.lua
+names.basename = "names"
+names.saved = false
+names.loaded = false
+names.be_clever = true
+names.enabled = true
+names.autoreload = toboolean(os.env['MTX.FONTS.AUTOLOAD'] or os.env['MTX_FONTS_AUTOLOAD'] or "no")
+names.cache = containers.define("fonts","data",names.version,true)
--[[ldx--
<p>It would make sense to implement the filters in the related modules,
but to keep the overview, we define them here.</p>
--ldx]]--
-fonts.names.filters.otf = fontforge.info
-fonts.names.filters.ttf = fontforge.info
-fonts.names.filters.ttc = fontforge.info
-
-function fonts.names.filters.afm(name)
- local f = io.open(name)
- if f then
- local hash = { }
- for line in f:lines() do
- local key, value = line:match("^(.+)%s+(.+)%s*$")
- if key and #key > 0 then
- hash[key:lower()] = value
- end
- if line:find("StartCharMetrics") then
- break
+filters.otf = fontloader.info
+filters.ttf = fontloader.info
+filters.ttc = fontloader.info
+filters.dfont = fontloader.info
+
+function filters.afm(name)
+ -- we could parse the afm file as well, and then report an error but
+ -- it's not worth the trouble
+ local pfbname = resolvers.find_file(file.removesuffix(name)..".pfb","pfb") or ""
+ if pfbname == "" then
+ pfbname = resolvers.find_file(file.removesuffix(file.basename(name))..".pfb","pfb") or ""
+ end
+ if pfbname ~= "" then
+ local f = io.open(name)
+ if f then
+ local hash = { }
+ for line in f:lines() do
+ local key, value = match(line,"^(.+)%s+(.+)%s*$")
+ if key and #key > 0 then
+ hash[lower(key)] = value
+ end
+ if find(line,"StartCharMetrics") then
+ break
+ end
end
+ f:close()
+ return hash
end
- f:close()
- return hash
- else
- return nil
end
+ return nil, "no matching pfb file"
end
-function fonts.names.filters.pfb(name)
- return fontforge.info(name)
+function filters.pfb(name)
+ return fontloader.info(name)
end
--[[ldx--
@@ -65,172 +85,320 @@ the file databases. Watch how we check not only for the names, but also
for combination with the weight of a font.</p>
--ldx]]--
-fonts.names.filters.list = {
- "otf", "ttf", "ttc", "afm" -- pfb is quite messy, too many messages, maybe broken
+filters.list = {
+ "otf", "ttf", "ttc", "dfont", "afm",
}
-fonts.names.filters.fixes = {
+filters.fixes = {
{ "reg$", "regular", },
{ "ita$", "italic", },
{ "ital$", "italic", },
{ "cond$", "condensed", },
+ { "book$", "", },
}
-fonts.names.xml_configuration_file = "fonts.conf" -- a bit weird format, bonus feature
-fonts.names.environment_path_variable = "osfontdir" -- the official way, in minimals etc
+names.xml_configuration_file = "fonts.conf" -- a bit weird format, bonus feature
+names.environment_path_variable = "OSFONTDIR" -- the official way, in minimals etc
+
+filters.paths = { }
+filters.names = { }
-function fonts.names.getpaths(instance)
+function names.getpaths(trace)
local hash, result = { }, { }
local function collect(t)
for i=1, #t do
- local v = input.clean_path(t[i])
- v = v:gsub("/+$","")
- local key = v:lower()
+ local v = resolvers.clean_path(t[i])
+ v = gsub(v,"/+$","")
+ local key = lower(v)
if not hash[key] then
hash[key], result[#result+1] = true, v
end
end
end
- local path = fonts.names.environment_path_variable
- if path and path ~= "" then
- collect(input.expanded_path_list(instance,path))
+ local path = names.environment_path_variable or ""
+ if path ~= "" then
+ collect(resolvers.expanded_path_list(path))
end
- local name = fonts.names.xml_configuration_file
- if name and not name == "" then
- local name = input.find_file(instance,name,"other")
- if name ~= "" then
- collect(xml.collect_texts(xml.load(name),"dir",true))
+ if xml then
+ local confname = names.xml_configuration_file or ""
+ if confname ~= "" then
+ -- first look in the tex tree
+ local name = resolvers.find_file(confname,"other")
+ if name == "" then
+ -- after all, fontconfig is a unix thing
+ name = file.join("/etc",confname)
+ if not lfs.isfile(name) then
+ name = "" -- force quit
+ end
+ end
+ if name ~= "" and lfs.isfile(name) then
+ if trace then
+ logs.report("fontnames","loading fontconfig file: %s",name)
+ end
+ local xmldata = xml.load(name)
+ -- begin of untested mess
+ xml.include(xmldata,"include","",true,function(incname)
+ if not file.is_qualified_path(incname) then
+ local path = file.dirname(name) -- main name
+ if path ~= "" then
+ incname = file.join(path,incname)
+ end
+ end
+ if lfs.isfile(incname) then
+ if trace then
+ logs.report("fontnames","merging included fontconfig file: %s",incname)
+ end
+ return io.loaddata(incname)
+ elseif trace then
+ logs.report("fontnames","ignoring included fontconfig file: %s",incname)
+ end
+ end)
+ -- end of untested mess
+ local fontdirs = xml.collect_texts(xmldata,"dir",true)
+ if trace then
+ logs.report("fontnames","%s dirs found in fontconfig",#fontdirs)
+ end
+ collect(fontdirs)
+ end
end
end
- function fonts.names.getpaths()
+ function names.getpaths()
return result
end
return result
end
-function fonts.names.identify()
- fonts.names.data = {
+function names.cleanname(name)
+ return (gsub(lower(name),"[^%a%d]",""))
+end
+
+function names.identify(verbose) -- lsr is for kpse
+ names.data = {
+ version = names.version,
mapping = { },
- version = fonts.names.version
+ -- sorted = { },
+ fallback_mapping = { },
+ -- fallback_sorted = { },
}
- local done, mapping, nofread, nofok = { }, fonts.names.data.mapping, 0, 0
- local function add(n,fontname,filename,suffix, sub)
- n = n:lower()
- if not mapping[n] then mapping[n], nofok = { suffix, fontname, filename, sub }, nofok + 1 end
- n = n:gsub("[^%a%d]","")
- if not mapping[n] then mapping[n], nofok = { suffix, fontname, filename, sub }, nofok + 1 end
- end
+ local done, mapping, fallback_mapping, nofread, nofok = { }, names.data.mapping, names.data.fallback_mapping, 0, 0
+ local cleanname = names.cleanname
local function check(result, filename, suffix, is_sub)
local fontname = result.fullname
if fontname then
- add(result.fullname, fontname, filename, suffix, is_sub)
+ local n = cleanname(result.fullname)
+ if not mapping[n] then
+ mapping[n], nofok = { lower(suffix), fontname, filename, is_sub }, nofok + 1
+ end
end
if result.fontname then
fontname = fontname or result.fontname
- add(result.fontname, fontname, filename, suffix, is_sub)
+ local n = cleanname(result.fontname)
+ if not mapping[n] then
+ mapping[n], nofok = { lower(suffix), fontname, filename, is_sub }, nofok + 1
+ end
end
- if result.familyname and result.weight then
+ if result.familyname and result.weight and result.italicangle == 0 then
local madename = result.familyname .. " " .. result.weight
fontname = fontname or madename
- add(madename, fontname, filename, suffix, is_sub)
+ local n = cleanname(fontname)
+ if not mapping[n] and not fallback_mapping[n] then
+ fallback_mapping[n], nofok = { lower(suffix), fontname, filename, is_sub }, nofok + 1
+ end
end
end
- local function identify(completename,name,suffix)
+ local trace = verbose or trace_names
+ local skip_paths = filters.paths
+ local skip_names = filters.names
+ local function identify(completename,name,suffix,storedname)
if not done[name] and io.exists(completename) then
nofread = nofread + 1
- logs.info("fontnames", "identifying " .. suffix .. " font " .. completename)
- logs.push()
- local result = fonts.names.filters[suffix](completename)
- logs.pop()
+ if #skip_paths > 0 then
+ local path = file.dirname(completename)
+ for i=1,#skip_paths do
+ if find(path,skip_paths[i]) then
+ if trace then
+ logs.report("fontnames","rejecting path of %s font %s",suffix,completename)
+ logs.push()
+ end
+ return
+ end
+ end
+ end
+ if #skip_names > 0 then
+ local base = file.basename(completename)
+ for i=1,#skip_paths do
+ if find(base,skip_names[i]) then
+ done[name] = true
+ if trace then
+ logs.report("fontnames","rejecting name of %s font %s",suffix,completename)
+ logs.push()
+ end
+ return
+ end
+ end
+ end
+ if trace_names then
+ logs.report("fontnames","identifying %s font %s",suffix,completename)
+ logs.push()
+ end
+ local result, message = filters[lower(suffix)](completename)
+ if trace then
+ logs.pop()
+ end
if result then
if not result[1] then
- check(result,name,suffix,false)
- else for _, r in ipairs(result) do
- check(r,name,suffix,true)
- end end
+ check(result,storedname,suffix,false) -- was name
+ else
+ for r=1,#result do
+ check(result[r],storedname,suffix,true) -- was name
+ end
+ end
+ if message and message ~= "" then
+ logs.report("fontnames","warning when identifying %s font %s: %s",suffix,completename,message)
+ end
+ else
+ logs.report("fontnames","error when identifying %s font %s: %s",suffix,completename,message or "unknown")
end
done[name] = true
end
end
+ local totalread, totalok = 0, 0
local function traverse(what, method)
- for n, suffix in pairs(fonts.names.filters.list) do
+ for n, suffix in ipairs(filters.list) do
nofread, nofok = 0, 0
local t = os.gettimeofday() -- use elapser
- logs.report("fontnames", string.format("identifying %s font files with suffix %s",what,suffix))
+ suffix = lower(suffix)
+ logs.report("fontnames", "identifying %s font files with suffix %s",what,suffix)
method(suffix)
- logs.report("fontnames", string.format("%s %s files identified, %s hash entries added, runtime %s seconds", nofread, what,nofok, os.gettimeofday()-t))
+ suffix = upper(suffix)
+ logs.report("fontnames", "identifying %s font files with suffix %s",what,suffix)
+ method(suffix)
+ logs.report("fontnames", "%s %s files identified, %s hash entries added, runtime %0.3f seconds",nofread,what,nofok,os.gettimeofday()-t)
+ totalread, totalok = totalread + nofread, totalok + nofok
end
end
- traverse("tree", function(suffix)
- input.with_files(texmf.instance,".*%." .. suffix .. "$", function(method,root,path,name)
- if method == "file" then
- identify(root .."/" .. path .. "/" .. name,name,suffix)
- end
- end)
- end)
- traverse("system", function(suffix)
- local pathlist = fonts.names.getpaths(texmf.instance) -- input.expanded_path_list(texmf.instance,"osfontdir")
+ local function walk_tree(pathlist,suffix)
if pathlist then
for _, path in ipairs(pathlist) do
- path = input.clean_path(path .. "/")
- path = path:gsub("/+","/")
- local pattern = path .. "*." .. suffix
- logs.report("fontnames", "globbing path " .. pattern)
+ path = resolvers.clean_path(path .. "/")
+ path = gsub(path,"/+","/")
+ local pattern = path .. "**." .. suffix -- ** forces recurse
+ logs.report("fontnames", "globbing path %s",pattern)
local t = dir.glob(pattern)
- for _, name in pairs(t) do -- ipairs
- local mode = lfs.attributes(name,'mode')
- if mode == "file" then
- identify(name,file.basename(name),suffix)
- end
+ for _, completename in pairs(t) do -- ipairs
+ identify(completename,file.basename(completename),suffix,completename)
end
end
end
+ end
+ traverse("tree", function(suffix) -- TEXTREE only
+ resolvers.with_files(".*%." .. suffix .. "$", function(method,root,path,name)
+ if method == "file" then
+ local completename = root .."/" .. path .. "/" .. name
+ identify(completename,name,suffix,name,name)
+ end
+ end)
end)
+ if texconfig.kpse_init then
+ -- we do this only for a stupid names run, not used for context itself,
+ -- using the vars is to clumsy so we just stick to a full scan instead
+ traverse("lsr", function(suffix) -- all trees
+ local pathlist = resolvers.split_path(resolvers.show_path("ls-R") or "")
+ walk_tree(pathlist,suffix)
+ end)
+ else
+ traverse("system", function(suffix) -- OSFONTDIR cum suis
+ walk_tree(names.getpaths(trace),suffix)
+ end)
+ end
local t = { }
- for _, f in ipairs(fonts.names.filters.fixes) do
+ for _, f in ipairs(filters.fixes) do
local expression, replacement = f[1], f[2]
- for k,v in pairs(mapping) do
- local fix, pos = k:gsub(expression,replacement)
+ for k,v in next, mapping do
+ local fix, pos = gsub(k,expression,replacement)
if pos > 0 and not mapping[fix] then
t[fix] = v
end
end
end
- for k,v in pairs(t) do
+ local n = 0
+ for k,v in next, t do
mapping[k] = v
+ n = n + 1
+ end
+ local rejected = 0
+ for k, v in next, mapping do
+ local kind, filename = v[1], v[3]
+ if not file.is_qualified_path(filename) and resolvers.find_file(filename,kind) == "" then
+ mapping[k] = nil
+ rejected = rejected + 1
+ end
+ end
+ if n > 0 then
+ logs.report("fontnames", "%s files read, %s normal and %s extra entries added, %s rejected, %s valid",totalread,totalok,n,rejected,totalok+n-rejected)
end
end
-function fonts.names.load(reload)
- if not fonts.names.loaded then
+function names.is_permitted(name)
+ return containers.is_usable(names.cache(), name)
+end
+function names.write_data(name,data)
+ containers.write(names.cache(),name,data)
+end
+function names.read_data(name)
+ return containers.read(names.cache(),name)
+end
+
+function names.load(reload,verbose)
+ if not names.loaded then
if reload then
- if containers.is_usable(fonts.names.cache(), "names") then
- fonts.names.identify()
- containers.write(fonts.names.cache(), "names", fonts.names.data)
+ if names.is_permitted(names.basename) then
+ names.identify(verbose)
+ names.write_data(names.basename,names.data)
+ else
+ logs.report("font table", "unable to access database cache")
end
- fonts.names.saved = true
+ names.saved = true
else
- fonts.names.data = containers.read(fonts.names.cache(), "names")
- if not fonts.names.saved then
- if table.is_empty(fonts.names.data) or table.is_empty(fonts.names.data.mapping) then
- fonts.names.load(true)
+ names.data = names.read_data(names.basename)
+ if not names.saved then
+ if table.is_empty(names.data) or table.is_empty(names.data.mapping) then
+ names.load(true)
end
- fonts.names.saved = true
+ names.saved = true
end
end
- fonts.names.loaded = true
+ local data = names.data
+ if data then
+ data.sorted = table.sortedkeys(data.mapping or { }) or { }
+ data.fallback_sorted = table.sortedkeys(data.fallback_mapping or { }) or { }
+ else
+ logs.report("font table", "accessing the data table failed")
+ end
+ names.loaded = true
end
end
-function fonts.names.list(pattern,reload)
- fonts.names.load(reload)
- if fonts.names.loaded then
+function names.list(pattern,reload)
+ names.load(reload)
+ if names.loaded then
local t = { }
- for k,v in pairs(fonts.names.data.mapping) do
- if k:find(pattern) then
- t[k] = v
+ local function list_them(mapping,sorted)
+ if mapping[pattern] then
+ t[pattern] = mapping[pattern]
+ else
+ for k,v in ipairs(sorted) do
+ if find(v,pattern) then
+ t[v] = mapping[v]
+ end
+ end
end
end
+ local data = names.data
+ if data then
+ list_them(data.mapping,data.sorted)
+ list_them(data.fallback_mapping,data.fallback_sorted)
+ end
return t
else
return nil
@@ -243,99 +411,81 @@ here is for testing purposes only (it deals with names prefixed by an
encoding name).</p>
--ldx]]--
-do
-
- local function found(name)
- if fonts.names.data then
- local result, mapping = nil, fonts.names.data.mapping
- local mn = mapping[name]
- if mn then
- return mn[2], mn[3], mn[4]
- end
- if fonts.names.be_clever then -- this will become obsolete
- local encoding, tag = name:match("^(.-)[%-%:](.+)$")
- local mt = mapping[tag]
- if tag and fonts.enc.is_known(encoding) and mt then
- return mt[1], encoding .. "-" .. mt[3], mt[4]
- end
- end
- -- name, type, file
- for k,v in pairs(mapping) do
- if k:find(name) then
- return v[2], v[3], v[4]
- end
- end
- local condensed = name:gsub("[^%a%d]","")
- local mc = mapping[condensed]
- if mc then
- return mc[2], mc[3], mc[4]
- end
- for k,v in pairs(mapping) do
- if k:find(condensed) then
- return v[2], v[3], v[4]
- end
- end
+local function found_indeed(mapping,sorted,name)
+ local mn = mapping[name]
+ if mn then
+ return mn[2], mn[3], mn[4]
+ end
+ if names.be_clever then -- this will become obsolete
+ local encoding, tag = match(name,"^(.-)[%-%:](.+)$")
+ local mt = mapping[tag]
+ if tag and fonts.enc.is_known(encoding) and mt then
+ return mt[1], encoding .. "-" .. mt[3], mt[4]
end
- return nil, nil, nil
end
-
- local reloaded = false
-
- function fonts.names.resolve(askedname, sub)
- if not askedname then
- return nil, nil
- elseif fonts.names.enabled then
- askedname = askedname:lower()
- fonts.names.load()
- local name, filename, is_sub = found(askedname)
- if not filename and not reloaded and fonts.names.autoreload then
- fonts.names.loaded = false
- reloaded = true
- io.flush()
- fonts.names.load(true)
- name, filename, is_sub = found(askedname)
- end
- if is_sub then
- return filename, name
- else
- return filename, sub
- end
- else
- return filename, sub
+ -- name, type, file
+ for k,v in next, mapping do
+ if find(k,name) then
+ return v[2], v[3], v[4]
end
end
+ local condensed = gsub(name,"[^%a%d]","")
+ local mc = mapping[condensed]
+ if mc then
+ return mc[2], mc[3], mc[4]
+ end
+ for k=1,#sorted do
+ local v = sorted[k]
+ if find(v,condensed) then
+ v = mapping[v]
+ return v[2], v[3], v[4]
+ end
+ end
+ return nil, nil, nil
+end
+local function found(name)
+ if name and name ~= "" and names.data then
+ name = names.cleanname(name)
+ local data = names.data
+ local fontname, filename, is_sub = found_indeed(data.mapping, data.sorted, name)
+ if not fontname or not filename then
+ fontname, filename, is_sub = found_indeed(data.fallback_mapping, data.fallback_sorted, name)
+ end
+ return fontname, filename, is_sub
+ else
+ return nil, nil, nil
+ end
end
---[[ldx--
-<p>A handy helper.</p>
---ldx]]--
+local reloaded = false
-function fonts.names.table(pattern,reload,all)
- local t = fonts.names.list(pattern,reload)
- if t then
- tex.sprint(tex.ctxcatcodes,"\\start\\nonknuthmode\\starttabulate[|T|T|T|T|T|]")
- tex.sprint(tex.ctxcatcodes,"\\NC hashname\\NC type\\NC fontname\\NC filename\\NC\\NR\\HL")
- for k,v in pairs(table.sortedkeys(t)) do
- if all or v == t[v][2]:lower() then
- local type, name, file = unpack(t[v])
- if type and name and file then
- tex.sprint(tex.ctxcatcodes,string.format("\\NC %s\\NC %s\\NC %s\\NC %s\\NC\\NR",v,type, name, file))
- else
- logs.report("font table", "skipping ".. v)
- end
- end
+function names.specification(askedname, sub)
+ if askedname and askedname ~= "" and names.enabled then
+ askedname = lower(askedname)
+ names.load()
+ local name, filename, is_sub = found(askedname)
+ if not filename and not reloaded and names.autoreload then
+ names.loaded = false
+ reloaded = true
+ io.flush()
+ names.load(true)
+ name, filename, is_sub = found(askedname)
end
- tex.sprint(tex.ctxcatcodes,"\\stoptabulate\\stop")
+ return name, filename, is_sub
end
end
+function names.resolve(askedname, sub)
+ local name, filename, is_sub = names.specification(askedname, sub)
+ return filename, (is_sub and name) or sub
+end
--[[ldx--
<p>Fallbacks, not permanent but a transition thing.</p>
--ldx]]--
-fonts.names.new_to_old = {
+names.new_to_old = {
["lmroman10-capsregular"] = "lmromancaps10-oblique",
["lmroman10-capsoblique"] = "lmromancaps10-regular",
["lmroman10-demi"] = "lmromandemi10-oblique",
@@ -377,4 +527,19 @@ fonts.names.new_to_old = {
["lmtypewritervarwd10-darkoblique"] = "lmmonoproplt10-boldoblique",
}
-fonts.names.old_to_new = table.swapped(fonts.names.new_to_old)
+names.old_to_new = table.swapped(names.new_to_old)
+
+function names.exists(name)
+ local fna, found = names.autoreload, false
+ names.autoreload = false
+ for k,v in ipairs(filters.list) do
+ found = (resolvers.find_file(name,v) or "") ~= ""
+ if found then
+ break
+ end
+ end
+ found = found or (resolvers.find_file(name,"tfm") or "") ~= ""
+ found = found or (names.resolve(name) or "") ~= ""
+ names.autoreload = fna
+ return found
+end
diff --git a/Master/texmf-dist/tex/context/base/font-tfm.lua b/Master/texmf-dist/tex/context/base/font-tfm.lua
index d0a838bcd50..b2015723e36 100644
--- a/Master/texmf-dist/tex/context/base/font-tfm.lua
+++ b/Master/texmf-dist/tex/context/base/font-tfm.lua
@@ -6,94 +6,103 @@ if not modules then modules = { } end modules ['font-tfm'] = {
license = "see context related readme files"
}
+local utf = unicode.utf8
+
+local next, format, match, lower, gsub = next, string.format, string.match, string.lower, string.gsub
+local concat, sortedkeys, utfbyte, serialize = table.concat, table.sortedkeys, utf.byte, table.serialize
+
+local trace_defining = false trackers.register("fonts.defining", function(v) trace_defining = v end)
+local trace_scaling = false trackers.register("fonts.scaling" , function(v) trace_scaling = v end)
+
+-- tfmdata has also fast access to indices and unicodes
+-- to be checked: otf -> tfm -> tfmscaled
+--
+-- watch out: no negative depths and negative eights permitted in regular fonts
+
--[[ldx--
<p>Here we only implement a few helper functions.</p>
--ldx]]--
-fonts = fonts or { }
-fonts.loaded = fonts.loaded or { }
-fonts.dontembed = fonts.dontembed or { }
-fonts.logger = fonts.logger or { }
-fonts.loadtime = 0
-fonts.tfm = fonts.tfm or { }
-fonts.triggers = fonts.triggers or { } -- brrr
+fonts = fonts or { }
+fonts.tfm = fonts.tfm or { }
+fonts.ids = fonts.ids or { }
+
+local tfm = fonts.tfm
+
+fonts.loaded = fonts.loaded or { }
+fonts.dontembed = fonts.dontembed or { }
+fonts.triggers = fonts.triggers or { } -- brrr
+fonts.initializers = fonts.initializers or { }
+fonts.initializers.common = fonts.initializers.common or { }
+
+local fontdata = fonts.ids
+local glyph = node.id('glyph')
+local set_attribute = node.set_attribute
--[[ldx--
<p>The next function encapsulates the standard <l n='tfm'/> loader as
supplied by <l n='luatex'/>.</p>
--ldx]]--
-fonts.tfm.resolve_vf = true -- false
+tfm.resolve_vf = true -- false
+tfm.share_base_kerns = false -- true (.5 sec slower on mk but brings down mem from 410M to 310M, beware: then script/lang share too)
+tfm.mathactions = { }
-function fonts.tfm.enhance(tfmdata,specification)
+function tfm.enhance(tfmdata,specification)
local name, size = specification.name, specification.size
- local encoding, filename = name:match("^(.-)%-(.*)$") -- context: encoding-name.*
+ local encoding, filename = match(name,"^(.-)%-(.*)$") -- context: encoding-name.*
if filename and encoding and fonts.enc.known[encoding] then
local data = fonts.enc.load(encoding)
if data then
local characters = tfmdata.characters
tfmdata.encoding = encoding
local vector = data.vector
- for k, v in pairs(characters) do
+ local original = { }
+ for k, v in next, characters do
v.name = vector[k]
v.index = k
+ original[k] = v
end
- for k,v in pairs(data.unicodes) do
+ for k,v in next, data.unicodes do
if k ~= v then
- -- if not characters[k] then
- if fonts.trace then
- logs.report("define font",string.format("mapping %s onto %s",k,v))
- end
- characters[k] = characters[v]
- -- end
+ if trace_defining then
+ logs.report("define font","mapping %s onto %s",k,v)
+ end
+ characters[k] = original[v]
end
end
end
end
end
-function fonts.tfm.read_from_tfm(specification)
- local fname, tfmdata = specification.filename, nil
- if fname then
- -- safeguard, we use tfm as fallback
- local suffix = file.extname(fname)
- if suffix ~= "" and suffix ~= "tfm" then
- fname = ""
- end
- end
- if not fname or fname == "" then
- fname = input.findbinfile(texmf.instance, specification.name, 'ofm')
- else
- fname = input.findbinfile(texmf.instance, fname, 'ofm')
- end
- if fname and fname ~= "" then
- if fonts.trace then
- logs.report("define font",string.format("loading tfm file %s at size %s",fname,specification.size))
+function tfm.read_from_tfm(specification)
+ local fname, tfmdata = specification.filename or "", nil
+ if fname ~= "" then
+ if trace_defining then
+ logs.report("define font","loading tfm file %s at size %s",fname,specification.size)
end
tfmdata = font.read_tfm(fname,specification.size) -- not cached, fast enough
if tfmdata then
- if fonts.tfm.resolve_vf then
+ tfmdata.descriptions = tfmdata.descriptions or { }
+ if tfm.resolve_vf then
fonts.logger.save(tfmdata,file.extname(fname),specification) -- strange, why here
- fname = input.findbinfile(texmf.instance, specification.name, 'ovf')
+ fname = resolvers.findbinfile(specification.name, 'ovf')
if fname and fname ~= "" then
local vfdata = font.read_vf(fname,specification.size) -- not cached, fast enough
if vfdata then
local chars = tfmdata.characters
- for k,v in pairs(vfdata.characters) do -- no ipairs, can have holes
+ for k,v in next, vfdata.characters do
chars[k].commands = v.commands
end
tfmdata.type = 'virtual'
tfmdata.fonts = vfdata.fonts
end
end
---~ print(table.serialize(tfmdata))
end
- fonts.tfm.enhance(tfmdata,specification)
- end
- else
- if fonts.trace then
- logs.report("define font",string.format("loading tfm with name %s fails",specification.name))
+ tfm.enhance(tfmdata,specification)
end
+ elseif trace_defining then
+ logs.report("define font","loading tfm with name %s fails",specification.name)
end
return tfmdata
end
@@ -104,51 +113,39 @@ do with the fact that <l n='tex'/> uses a negative multiple of 1000 as
a signal for a font scaled based on the design size.</p>
--ldx]]--
-do
-
- local factors = {
- pt = 65536.0,
- bp = 65781.8,
- }
-
- function fonts.tfm.setfactor(f)
- fonts.tfm.factor = factors[f or 'pt'] or factors.pt
- end
-
- fonts.tfm.setfactor()
+local factors = {
+ pt = 65536.0,
+ bp = 65781.8,
+}
+function tfm.setfactor(f)
+ tfm.factor = factors[f or 'pt'] or factors.pt
end
-function fonts.tfm.scaled(scaledpoints, designsize) -- handles designsize in sp as well
+tfm.setfactor()
+
+function tfm.scaled(scaledpoints, designsize) -- handles designsize in sp as well
if scaledpoints < 0 then
if designsize then
- if designsize > fonts.tfm.factor then -- or just 1000 / when? mp?
+ if designsize > tfm.factor then -- or just 1000 / when? mp?
return (- scaledpoints/1000) * designsize -- sp's
else
- return (- scaledpoints/1000) * designsize * fonts.tfm.factor
+ return (- scaledpoints/1000) * designsize * tfm.factor
end
else
- return (- scaledpoints/1000) * 10 * fonts.tfm.factor
+ return (- scaledpoints/1000) * 10 * tfm.factor
end
else
return scaledpoints
end
end
---~ function fonts.tfm.scaled(scaledpoints, designsize)
---~ if scaledpoints < 0 then
---~ return (- scaledpoints/1000) * (designsize or 10) * fonts.tfm.factor
---~ else
---~ return scaledpoints
---~ end
---~ end
-
--[[ldx--
<p>Before a font is passed to <l n='tex'/> we scale it. Here we also need
to scale virtual characters.</p>
--ldx]]--
-function fonts.tfm.get_virtual_id(tfmdata)
+function tfm.get_virtual_id(tfmdata)
-- since we don't know the id yet, we use 0 as signal
if not tfmdata.fonts then
tfmdata.type = "virtual"
@@ -160,14 +157,16 @@ function fonts.tfm.get_virtual_id(tfmdata)
end
end
-function fonts.tfm.check_virtual_id(tfmdata, id)
+function tfm.check_virtual_id(tfmdata, id)
if tfmdata and tfmdata.type == "virtual" then
if not tfmdata.fonts or #tfmdata.fonts == 0 then
tfmdata.type, tfmdata.fonts = "real", nil
else
- for k,v in ipairs(tfmdata.fonts) do
- if v.id and v.id == 0 then
- v.id = id
+ local vfonts = tfmdata.fonts
+ for f=1,#vfonts do
+ local fnt = vfonts[f]
+ if fnt.id and fnt.id == 0 then
+ fnt.id = id
end
end
end
@@ -182,24 +181,91 @@ excessive memory usage in CJK fonts, we no longer pass the boundingbox.)</p>
fonts.trace_scaling = false
-function fonts.tfm.do_scale(tfmtable, scaledpoints)
- local trace = fonts.trace_scaling
+-- the following hack costs a bit of runtime but safes memory
+--
+-- basekerns are scaled and will be hashed by table id
+-- sharedkerns are unscaled and are be hashed by concatenated indexes
+
+function tfm.check_base_kerns(tfmdata)
+ if tfm.share_base_kerns then
+ local sharedkerns = tfmdata.sharedkerns
+ if sharedkerns then
+ local basekerns = { }
+ tfmdata.basekerns = basekerns
+ return sharedkerns, basekerns
+ end
+ end
+ return nil, nil
+end
+
+function tfm.prepare_base_kerns(tfmdata)
+ if tfm.share_base_kerns and not tfmdata.sharedkerns then
+ local sharedkerns = { }
+ tfmdata.sharedkerns = sharedkerns
+ for u, chr in next, tfmdata.characters do
+ local kerns = chr.kerns
+ if kerns then
+ local hash = concat(sortedkeys(kerns), " ")
+ local base = sharedkerns[hash]
+ if not base then
+ sharedkerns[hash] = kerns
+ else
+ chr.kerns = base
+ end
+ end
+ end
+ end
+end
+
+-- we can have cache scaled characters when we are in node mode and don't have
+-- protruding and expansion: hash == fullname @ size @ protruding @ expansion
+-- but in practice (except from mk) the otf hash will be enough already so it
+-- makes no sense to mess up the code now
+
+local charactercache = { }
+
+-- The scaler is only used for otf and afm and virtual fonts. If
+-- a virtual font has italic correction make sure to set the
+-- has_italic flag. Some more flags will be added in the future.
+
+function tfm.do_scale(tfmtable, scaledpoints)
+ tfm.prepare_base_kerns(tfmtable) -- optimalization
if scaledpoints < 0 then
scaledpoints = (- scaledpoints/1000) * tfmtable.designsize -- already in sp
end
local delta = scaledpoints/(tfmtable.units or 1000) -- brr, some open type fonts have 2048
local t = { }
- t.factor = delta
- for k,v in pairs(tfmtable) do
- t[k] = (type(v) == "table" and { }) or v
+ -- unicoded unique descriptions shared cidinfo characters changed parameters indices
+ for k,v in next, tfmtable do
+ if type(v) == "table" then
+ -- print(k)
+ else
+ t[k] = v
+ end
end
- -- new
+ -- status
+ local isvirtual = tfmtable.type == "virtual" or tfmtable.virtualized
+ local hasmath = (tfmtable.math_parameters ~= nil and next(tfmtable.math_parameters) ~= nil) or (tfmtable.MathConstants ~= nil and next(tfmtable.MathConstants) ~= nil)
+ local nodemode = tfmtable.mode == "node"
+ local hasquality = tfmtable.auto_expand or tfmtable.auto_protrude
+ local hasitalic = tfmtable.has_italic
+ --
+ t.parameters = { }
+ t.characters = { }
+ t.MathConstants = { }
+ -- fast access
+ local descriptions = tfmtable.descriptions or { }
+ t.unicodes = tfmtable.unicodes
+ t.indices = tfmtable.indices
+ t.marks = tfmtable.marks
+ t.descriptions = descriptions
if tfmtable.fonts then
- t.fonts = table.fastcopy(tfmtable.fonts)
+ t.fonts = table.fastcopy(tfmtable.fonts) -- hm also at the end
end
- -- local zerobox = { 0, 0, 0, 0 }
local tp = t.parameters
+ local mp = t.math_parameters
local tfmp = tfmtable.parameters -- let's check for indexes
+ --
tp.slant = (tfmp.slant or tfmp[1] or 0)
tp.space = (tfmp.space or tfmp[2] or 0)*delta
tp.space_stretch = (tfmp.space_stretch or tfmp[3] or 0)*delta
@@ -209,83 +275,288 @@ function fonts.tfm.do_scale(tfmtable, scaledpoints)
tp.extra_space = (tfmp.extra_space or tfmp[7] or 0)*delta
local protrusionfactor = (tp.quad ~= 0 and 1000/tp.quad) or 0
local tc = t.characters
- for k,v in pairs(tfmtable.characters) do
- local description = v.description or v -- shared data
- local chr = {
- description = description,
- unicode = description.unicode,
- name = description.name,
- index = description.index or k,
- width = delta*(description.width or 0),
- height = delta*(description.height or 0),
- depth = delta*(description.depth or 0),
- class = description.class
- }
- if trace then
- logs.report("define font", string.format("n=%s, u=%s, i=%s, n=%s c=%s",k,description.unicode,description.index,description.name or '-',description.class or '-'))
- end
- -- local vb = v.boundingbox
- -- if vb then
- -- chr.boundingbox = { vb[1]*delta, vb[2]*delta, vb[3]*delta, vb[4]*delta }
- -- else
- -- -- chr.boundingbox = zerobox -- most afm en otf files have bboxes so ..
- -- end
- local ve = v.expansion_factor
- if ve then
- chr.expansion_factor = ve*1000 -- expansionfactor
+ local characters = tfmtable.characters
+ local nameneeded = not tfmtable.shared.otfdata --hack
+ local changed = tfmtable.changed or { } -- for base mode
+ local ischanged = not table.is_empty(changed)
+ local indices = tfmtable.indices
+ local luatex = tfmtable.luatex
+ local tounicode = luatex and luatex.tounicode
+ local defaultwidth = luatex and luatex.defaultwidth or 0
+ local defaultheight = luatex and luatex.defaultheight or 0
+ local defaultdepth = luatex and luatex.defaultdepth or 0
+ -- experimental, sharing kerns (unscaled and scaled) saves memory
+ local sharedkerns, basekerns = tfm.check_base_kerns(tfmtable)
+ -- loop over descriptions (afm and otf have descriptions, tfm not)
+ -- there is no need (yet) to assign a value to chr.tonunicode
+ local scaledwidth = defaultwidth * delta
+ local scaledheight = defaultheight * delta
+ local scaleddepth = defaultdepth * delta
+ local stackmath = tfmtable.ignore_stack_math ~= true
+local private = fonts.private
+ for k,v in next, characters do
+ local chr, description, index
+ if ischanged then
+ -- basemode hack
+ local c = changed[k]
+ if c then
+ description = descriptions[c] or v
+ v = characters[c] or v
+ index = (indices and indices[c]) or c
+ else
+ description = descriptions[k] or v
+ index = (indices and indices[k]) or k
+ end
+ else
+ description = descriptions[k] or v
+ index = (indices and indices[k]) or k
end
- local vl = v.left_protruding
- if vl then
- chr.left_protruding = protrusionfactor*chr.width*vl
+ local width = description.width
+ local height = description.height
+ local depth = description.depth
+ if width then width = delta*width else width = scaledwidth end
+ if height then height = delta*height else height = scaledheight end
+ -- if depth then depth = delta*depth else depth = scaleddepth end
+ if depth and depth ~= 0 then
+ depth = delta*depth
+ if nameneeded then
+ chr = {
+ name = description.name,
+ index = index,
+ height = height,
+ depth = depth,
+ width = width,
+ }
+ else
+ chr = {
+ index = index,
+ height = height,
+ depth = depth,
+ width = width,
+ }
+ end
+ else
+ -- this saves a little bit of memory time and memory, esp for big cjk fonts
+ if nameneeded then
+ chr = {
+ name = description.name,
+ index = index,
+ height = height,
+ width = width,
+ }
+ else
+ chr = {
+ index = index,
+ height = height,
+ width = width,
+ }
+ end
end
- local vr = v.right_protruding
- if vr then
- chr.right_protruding = protrusionfactor*chr.width*vr
+ -- if trace_scaling then
+ -- logs.report("define font","t=%s, u=%s, i=%s, n=%s c=%s",k,chr.tounicode or k,description.index,description.name or '-',description.class or '-')
+ -- end
+ if tounicode then
+ local tu = tounicode[index] -- nb: index!
+ if tu then
+ chr.tounicode = tu
+ end
end
- local vi = description.italic
- if vi then
- chr.italic = vi*delta
+ if hasquality then
+ local ve = v.expansion_factor
+ if ve then
+ chr.expansion_factor = ve*1000 -- expansionfactor, hm, can happen elsewhere
+ end
+ local vl = v.left_protruding
+ if vl then
+ chr.left_protruding = protrusionfactor*width*vl
+ end
+ local vr = v.right_protruding
+ if vr then
+ chr.right_protruding = protrusionfactor*width*vr
+ end
end
- local vk = v.kerns
- if vk then
- local tt = {}
- for k,v in pairs(vk) do tt[k] = v*delta end
- chr.kerns = tt
+ -- todo: hasitalic
+ if hasitalic then
+ local vi = description.italic or v.italic
+ if vi and vi ~= 0 then
+ chr.italic = vi*delta
+ end
end
- local vl = v.ligatures
- if vl then
- if true then
- chr.ligatures = vl -- shared
+ -- to be tested
+ if hasmath then
+ -- todo, just operate on descriptions.math
+ local vn = v.next
+ if vn then
+ chr.next = vn
else
- local tt = { }
- for i,l in pairs(vl) do
- tt[i] = l
+ local vv = v.vert_variants
+ if vv then
+ local t = { }
+ for i=1,#vv do
+ local vvi = vv[i]
+ t[i] = {
+ ["start"] = (vvi["start"] or 0)*delta,
+ ["end"] = (vvi["end"] or 0)*delta,
+ ["advance"] = (vvi["advance"] or 0)*delta,
+ ["extender"] = vvi["extender"],
+ ["glyph"] = vvi["glyph"],
+ }
+ end
+ chr.vert_variants = t
+ else
+ local hv = v.horiz_variants
+ if hv then
+ local t = { }
+ for i=1,#hv do
+ local hvi = hv[i]
+ t[i] = {
+ ["start"] = (hvi["start"] or 0)*delta,
+ ["end"] = (hvi["end"] or 0)*delta,
+ ["advance"] = (hvi["advance"] or 0)*delta,
+ ["extender"] = hvi["extender"],
+ ["glyph"] = hvi["glyph"],
+ }
+ end
+ chr.horiz_variants = t
+ end
+ end
+ end
+ local vt = description.top_accent
+ if vt then
+ chr.top_accent = delta*vt
+ end
+ if stackmath then
+ local mk = v.mathkerns
+ if mk then
+ local kerns = { }
+ -- for k, v in next, mk do
+ -- local kk = { }
+ -- for i=1,#v do
+ -- local vi = v[i]
+ -- kk[i] = { height = delta*vi.height, kern = delta*vi.kern }
+ -- end
+ -- kerns[k] = kk
+ -- end
+ local v = mk.top_right if v then local k = { } for i=1,#v do local vi = v[i]
+ k[i] = { height = delta*vi.height, kern = delta*vi.kern }
+ end kerns.top_right = k end
+ local v = mk.top_left if v then local k = { } for i=1,#v do local vi = v[i]
+ k[i] = { height = delta*vi.height, kern = delta*vi.kern }
+ end kerns.top_left = k end
+ local v = mk.bottom_left if v then local k = { } for i=1,#v do local vi = v[i]
+ k[i] = { height = delta*vi.height, kern = delta*vi.kern }
+ end kerns.bottom_left = k end
+ local v = mk.bottom_right if v then local k = { } for i=1,#v do local vi = v[i]
+ k[i] = { height = delta*vi.height, kern = delta*vi.kern }
+ end kerns.bottom_right = k end
+ chr.mathkern = kerns -- singular
end
- chr.ligatures = tt
end
end
- local vc = v.commands
- if vc then
- -- we assume non scaled commands here
- local tt = { }
- for i=1,#vc do
- local ivc = vc[i]
- local key = ivc[1]
- if key == "right" or key == "left" or key == "down" or key == "up" then
- tt[#tt+1] = { key, ivc[2]*delta }
- else -- not comment
- tt[#tt+1] = ivc -- shared since in cache and untouched
+ if not nodemode then
+ local vk = v.kerns
+ if vk then
+ if sharedkerns then
+ local base = basekerns[vk] -- hashed by table id, not content
+ if not base then
+ base = {}
+ for k,v in next, vk do base[k] = v*delta end
+ basekerns[vk] = base
+ end
+ chr.kerns = base
+ else
+ local tt = {}
+ for k,v in next, vk do tt[k] = v*delta end
+ chr.kerns = tt
+ end
+ end
+ local vl = v.ligatures
+ if vl then
+ if true then
+ chr.ligatures = vl -- shared
+ else
+ local tt = { }
+ for i,l in next, vl do
+ tt[i] = l
+ end
+ chr.ligatures = tt
+ end
+ end
+ end
+ if isvirtual then
+ local vc = v.commands
+ if vc then
+ -- we assume non scaled commands here
+ local ok = false
+ for i=1,#vc do
+ local key = vc[i][1]
+ if key == "right" or key == "down" then
+ ok = true
+ break
+ end
+ end
+ if ok then
+ local tt = { }
+ for i=1,#vc do
+ local ivc = vc[i]
+ local key = ivc[1]
+ if key == "right" or key == "down" then
+ tt[#tt+1] = { key, ivc[2]*delta }
+ else -- not comment
+ tt[#tt+1] = ivc -- shared since in cache and untouched
+ end
+ end
+ chr.commands = tt
+ else
+ chr.commands = vc
end
end
- chr.commands = tt
end
tc[k] = chr
end
-- t.encodingbytes, t.filename, t.fullname, t.name: elsewhere
t.size = scaledpoints
+ t.factor = delta
if t.fonts then
t.fonts = table.fastcopy(t.fonts) -- maybe we virtualize more afterwards
end
+ if hasmath then
+ -- mathematics.extras.copy(t) -- can be done elsewhere if needed
+ local ma = tfm.mathactions
+ for i=1,#ma do
+ ma[i](t,tfmtable,delta)
+ end
+ end
+ -- needed for \high cum suis
+ local tpx = tp.x_height
+if hasmath then
+ if not tp[13] then tp[13] = .86*tpx end -- mathsupdisplay
+ if not tp[14] then tp[14] = .86*tpx end -- mathsupnormal
+ if not tp[15] then tp[15] = .86*tpx end -- mathsupcramped
+ if not tp[16] then tp[16] = .48*tpx end -- mathsubnormal
+ if not tp[17] then tp[17] = .48*tpx end -- mathsubcombined
+ if not tp[22] then tp[22] = 0 end -- mathaxisheight
+ if t.MathConstants then t.MathConstants.AccentBaseHeight = nil end -- safeguard
+end
+ t.tounicode = 1
+ t.cidinfo = tfmtable.cidinfo
+ -- we have t.name=metricfile and t.fullname=RealName and t.filename=diskfilename
+ -- when collapsing fonts, luatex looks as both t.name and t.fullname as ttc files
+ -- can have multiple subfonts
+ if hasmath then
+ if trace_defining then
+ logs.report("define font","math enabled for: %s %s %s",t.name or "noname",t.fullname or "nofullname",t.filename or "nofilename")
+ end
+ else
+ if trace_defining then
+ logs.report("define font","math disabled for: %s %s %s",t.name or "noname",t.fullname or "nofullname",t.filename or "nofilename")
+ end
+ t.nomath, t.MathConstants = true, nil
+ end
+ -- fullname is used in the subsetting
+ if not t.psname then
+ t.psname = t.fullname -- else bad luck
+ end
return t, delta
end
@@ -296,426 +567,269 @@ make this profitable and the <l n='lua'/> based variant was just faster. A days
wasted day but an experience richer.</p>
--ldx]]--
-function fonts.tfm.scale(tfmtable, scaledpoints)
- local t, factor = fonts.tfm.do_scale(tfmtable, scaledpoints)
+tfm.auto_cleanup = true
+
+local lastfont = nil
+
+-- we can get rid of the tfm instance when we have fast access to the
+-- scaled character dimensions at the tex end, e.g. a fontobject.width
+--
+-- flushing the kern and ligature tables from memory saves a lot (only
+-- base mode) but it complicates vf building where the new characters
+-- demand this data
+
+--~ for id, f in pairs(fonts.ids) do -- or font.fonts
+--~ local ffi = font.fonts[id]
+--~ f.characters = ffi.characters
+--~ f.kerns = ffi.kerns
+--~ f.ligatures = ffi.ligatures
+--~ end
+
+function tfm.cleanup_table(tfmdata) -- we need a cleanup callback, now we miss the last one
+ if tfm.auto_cleanup then -- ok, we can hook this into everyshipout or so ... todo
+ if tfmdata.type == 'virtual' or tfmdata.virtualized then
+ for k, v in next, tfmdata.characters do
+ if v.commands then v.commands = nil end
+ end
+ end
+ end
+end
+
+function tfm.cleanup(tfmdata) -- we need a cleanup callback, now we miss the last one
+end
+
+function tfm.scale(tfmtable, scaledpoints)
+ local t, factor = tfm.do_scale(tfmtable, scaledpoints)
t.factor = factor
t.ascender = factor*(tfmtable.ascender or 0)
t.descender = factor*(tfmtable.descender or 0)
t.shared = tfmtable.shared or { }
t.unique = table.fastcopy(tfmtable.unique or {})
---~ print("scaling", t.name, t.factor) -- , fonts.tfm.hash_features(tfmtable.specification))
+--~ print("scaling", t.name, t.factor) -- , tfm.hash_features(tfmtable.specification))
+ tfm.cleanup(t)
return t
end
--[[ldx--
-<p>The following functions are used for reporting about the fonts
-used. The message itself is not that useful in regular runs but since
-we now have several readers it may be handy to know what reader is
-used for which font.</p>
+<p>Analyzers run per script and/or language and are needed in order to
+process features right.</p>
--ldx]]--
-function fonts.logger.save(tfmtable,source,specification) -- save file name in spec here ! ! ! ! ! !
- if tfmtable and specification and specification.specification then
- if fonts.trace then
- logs.report("define font",string.format("registering %s as %s",specification.name,source))
- end
- specification.source = source
- fonts.loaded[specification.specification] = specification
- fonts.used[specification.name] = source
- end
-end
+fonts.analyzers = fonts.analyzers or { }
+fonts.analyzers.aux = fonts.analyzers.aux or { }
+fonts.analyzers.methods = fonts.analyzers.methods or { }
+fonts.analyzers.initializers = fonts.analyzers.initializers or { }
-function fonts.logger.report(separator)
- local s = table.sortedkeys(fonts.loaded)
- if #s > 0 then
- local t = { }
- for _,v in ipairs(s) do
- t[#t+1] = v .. ":" .. fonts.loaded[v].source
+-- todo: analyzers per script/lang, cross font, so we need an font id hash -> script
+-- e.g. latin -> hyphenate, arab -> 1/2/3 analyze
+
+-- an example analyzer (should move to font-ota.lua)
+
+local state = attributes.private('state')
+
+function fonts.analyzers.aux.setstate(head,font)
+ local tfmdata = fontdata[font]
+ local characters = tfmdata.characters
+ local descriptions = tfmdata.descriptions
+ local first, last, current, n, done = nil, nil, head, 0, false -- maybe make n boolean
+ while current do
+ if current.id == glyph and current.font == font then
+ local d = descriptions[current.char]
+ if d then
+ if d.class == "mark" then
+ done = true
+ set_attribute(current,state,5) -- mark
+ elseif n == 0 then
+ first, last, n = current, current, 1
+ set_attribute(current,state,1) -- init
+ else
+ last, n = current, n+1
+ set_attribute(current,state,2) -- medi
+ end
+ else -- finish
+ if first and first == last then
+ set_attribute(last,state,4) -- isol
+ elseif last then
+ set_attribute(last,state,3) -- fina
+ end
+ first, last, n = nil, nil, 0
+ end
+ else -- finish
+ if first and first == last then
+ set_attribute(last,state,4) -- isol
+ elseif last then
+ set_attribute(last,state,3) -- fina
+ end
+ first, last, n = nil, nil, 0
end
- return table.concat(t,separator or " ")
- else
- return "none"
+ current = current.next
+ end
+ if first and first == last then
+ set_attribute(last,state,4) -- isol
+ elseif last then
+ set_attribute(last,state,3) -- fina
end
+ return head, done
end
-function fonts.logger.format(name)
- return fonts.used[name] or "unknown"
+function tfm.replacements(tfm,value)
+ -- tfm.characters[0x0022] = table.fastcopy(tfm.characters[0x201D])
+ -- tfm.characters[0x0027] = table.fastcopy(tfm.characters[0x2019])
+ -- tfm.characters[0x0060] = table.fastcopy(tfm.characters[0x2018])
+ -- tfm.characters[0x0022] = tfm.characters[0x201D]
+ tfm.characters[0x0027] = tfm.characters[0x2019]
+ -- tfm.characters[0x0060] = tfm.characters[0x2018]
end
---[[ldx--
-<p>When we implement functions that deal with features, most of them
-will depend of the font format. Here we define the few that are kind
-of neutral.</p>
---ldx]]--
-
-fonts.initializers = fonts.initializers or { }
-fonts.initializers.common = fonts.initializers.common or { }
-
---[[ldx--
-<p>This feature will remove inter-digit kerns.</p>
---ldx]]--
+-- auto complete font with missing composed characters
-table.insert(fonts.triggers,"equaldigits")
+table.insert(fonts.manipulators,"compose")
-function fonts.initializers.common.equaldigits(tfmdata,value)
+function fonts.initializers.common.compose(tfmdata,value)
if value then
- local chr = tfmdata.characters
- for i = utf.byte('0'), utf.byte('9') do
- local c = chr[i]
- if c then
- c.kerns = nil
- end
- end
+ fonts.vf.aux.compose_characters(tfmdata)
end
end
---[[ldx--
-<p>This feature will give all glyphs an equal height and/or depth. Valid
-values are <type>none</type>, <type>height</type>, <type>depth</type> and
-<type>both</type>.</p>
---ldx]]--
-
-table.insert(fonts.triggers,"lineheight")
-
-function fonts.initializers.common.lineheight(tfmdata,value)
- if value and type(value) == "string" then
- if value == "none" then
- for _,v in pairs(tfmdata.characters) do
- v.height, v.depth = 0, 0
- end
- else
- local ascender, descender = tfmdata.ascender, tfmdata.descender
- if ascender and descender then
- local ht, dp = ascender or 0, descender or 0
- if value == "height" then
- dp = 0
- elseif value == "depth" then
- ht = 0
- end
- if ht > 0 then
- if dp > 0 then
- for _,v in pairs(tfmdata.characters) do
- v.height, v.depth = ht, dp
- end
- else
- for _,v in pairs(tfmdata.characters) do
- v.height = ht
- end
- end
- elseif dp > 0 then
- for _,v in pairs(tfmdata.characters) do
- v.depth = dp
- end
- end
- end
+-- tfm features, experimental
+
+tfm.features = tfm.features or { }
+tfm.features.list = tfm.features.list or { }
+tfm.features.default = tfm.features.default or { }
+
+function tfm.enhance(tfmdata,specification)
+ -- we don't really share tfm data because we always reload
+ -- but this is more in sycn with afm and such
+ local features = (specification.features and specification.features.normal ) or { }
+ tfmdata.shared = tfmdata.shared or { }
+ tfmdata.shared.features = features
+ -- tfmdata.shared.tfmdata = tfmdata -- circular
+ tfmdata.filename = specification.name
+ if not features.encoding then
+ local name, size = specification.name, specification.size
+ local encoding, filename = match(name,"^(.-)%-(.*)$") -- context: encoding-name.*
+ if filename and encoding and fonts.enc.known[encoding] then
+ features.encoding = encoding
end
end
+ tfm.set_features(tfmdata)
end
---[[ldx--
-<p>It does not make sense any more to support messed up encoding vectors
-so we stick to those that implement oldstyle and small caps. After all,
-we move on. We can extend the next function on demand. This features is
-only used with <l n='afm'/> files.</p>
---ldx]]--
-
-do
-
- local smallcaps = lpeg.P(".sc") + lpeg.P(".smallcaps") + lpeg.P(".caps") + lpeg.P("small")
- local oldstyle = lpeg.P(".os") + lpeg.P(".oldstyle") + lpeg.P(".onum")
-
- smallcaps = lpeg.Cs((1-smallcaps)^1) * smallcaps^1
- oldstyle = lpeg.Cs((1-oldstyle )^1) * oldstyle ^1
-
- function fonts.initializers.common.encoding(tfmdata,value)
- if value then
- local encodingfile = value .. '.enc'
- local encoding = fonts.enc.load(encodingfile)
- if encoding then
- -- tfmdata.encoding = value
- local vector = encoding.vector
- local afmdata = tfmdata.shared.afmdata
- local characters = tfmdata.characters
- local unicodes = afmdata.luatex.unicodes
- local function remap(pattern,name)
- local p = pattern:match(name)
- if p then
- local oldchr, newchr = unicodes[p], unicodes[name]
- if oldchr and newchr then
- -- texio.write_nl(string.format("%s (%s) -> %s (%s)",p,oldchr or -1,name,newchr or -1))
- characters[oldchr] = characters[newchr]
+function tfm.set_features(tfmdata)
+ -- todo: no local functions
+ local shared = tfmdata.shared
+-- local tfmdata = shared.tfmdata
+ local features = shared.features
+ if not table.is_empty(features) then
+ local mode = tfmdata.mode or fonts.mode
+ local fi = fonts.initializers[mode]
+ if fi and fi.tfm then
+ local function initialize(list) -- using tex lig and kerning
+ if list then
+ for i=1,#list do
+ local f = list[i]
+ local value = features[f]
+ if value and fi.tfm[f] then -- brr
+ if tfm.trace_features then
+ logs.report("define font","initializing feature %s to %s for mode %s for font %s",f,tostring(value),mode or 'unknown',tfmdata.name or 'unknown')
+ end
+ fi.tfm[f](tfmdata,value)
+ mode = tfmdata.mode or fonts.mode
+ fi = fonts.initializers[mode]
end
end
- return p
- end
- for _, name in pairs(vector) do
- local ok = remap(smallcaps,name) or remap(oldstyle,name)
- end
- if fonts.map.data[tfmdata.name] then
- fonts.map.data[tfmdata.name].encoding = encodingfile
end
end
+ initialize(fonts.triggers)
+ initialize(tfm.features.list)
+ initialize(fonts.manipulators)
end
- end
-
- -- when needed we can provide this as features in e.g. afm files
-
- function fonts.initializers.common.remap(tfmdata,value,pattern)
- if value then
- local afmdata = tfmdata.shared.afmdata
- local characters = tfmdata.characters
- local unicodes = afmdata.luatex.unicodes
- local done = false
- for i, blob in pairs(characters) do
- local name = blob.description.name
- if name then
- local p = pattern:match(name)
- if p then
- local oldchr, newchr = unicodes[p], unicodes[name]
- if oldchr and newchr then
- characters[oldchr] = characters[newchr]
- end
- end
- end
- end
- end
- end
-
- function fonts.initializers.common.oldstyle(tfmdata,value)
- fonts.initializers.common.remap(tfmdata,value,oldstyle)
- end
- function fonts.initializers.common.smallcaps(tfmdata,value)
- fonts.initializers.common.remap(tfmdata,value,smallcaps)
- end
-
- function fonts.initializers.common.fakecaps(tfmdata,value)
- if value then
- -- todo: scale down
- local afmdata = tfmdata.shared.afmdata
- local characters = tfmdata.characters
- local unicodes = afmdata.luatex.unicodes
- for i, blob in pairs(characters) do
- local name = blob.description.name
- if name then
- local p = name:lower()
- if p then
- local oldchr, newchr = unicodes[p], unicodes[name]
- if oldchr and newchr then
- characters[oldchr] = characters[newchr]
+ local fm = fonts.methods[mode]
+ if fm and fm.tfm then
+ local function register(list) -- node manipulations
+ if list then
+ for i=1,#list do
+ local f = list[i]
+ if features[f] and fm.tfm[f] then -- brr
+ if not shared.processors then -- maybe also predefine
+ shared.processors = { fm.tfm[f] }
+ else
+ shared.processors[#shared.processors+1] = fm.tfm[f]
+ end
end
end
end
end
+ register(tfm.features.list)
end
end
-
end
---~ function fonts.initializers.common.install(format,feature) -- 'afm','lineheight'
---~ fonts.initializers.base[format][feature] = fonts.initializers.common[feature]
---~ fonts.initializers.node[format][feature] = fonts.initializers.common[feature]
---~ end
-
---[[ldx--
-<p>Analyzers run per script and/or language and are needed in order to
-process features right.</p>
---ldx]]--
-
-fonts.analyzers = fonts.analyzers or { }
-fonts.analyzers.aux = fonts.analyzers.aux or { }
-fonts.analyzers.methods = fonts.analyzers.methods or { }
-fonts.analyzers.initializers = fonts.analyzers.initializers or { }
+function tfm.features.register(name,default)
+ tfm.features.list[#tfm.features.list+1] = name
+ tfm.features.default[name] = default
+end
-do
-
- local glyph = node.id('glyph')
- local fontdata = fonts.tfm.id
- local set_attribute = node.set_attribute
--- local unset_attribute = node.unset_attribute
--- local has_attribute = node.has_attribute
-
- local state = attributes.numbers['state'] or 100
-
- -- todo: analyzers per script/lang, cross font, so we need an font id hash -> script
- -- e.g. latin -> hyphenate, arab -> 1/2/3 analyze
-
- -- an example analyzer
-
- function fonts.analyzers.aux.setstate(head,font)
- local characters = fontdata[font].characters
- local first, last, current, n, done = nil, nil, head, 0, false -- maybe make n boolean
- while current do
- if current.id == glyph and current.font == font then
- local c = characters[current.char]
- if c then
- if c.description.class == "mark" then
- done = true
- set_attribute(current,state,5) -- mark
- elseif n == 0 then
- first, last, n = current, current, 1
- set_attribute(current,state,1) -- init
- else
- last, n = current, n+1
- set_attribute(current,state,2) -- medi
- end
- else -- finish
- if first and first == last then
- set_attribute(last,state,4) -- isol
- elseif last then
- set_attribute(last,state,3) -- fina
+function tfm.reencode(tfmdata,encoding)
+ if encoding and fonts.enc.known[encoding] then
+ local data = fonts.enc.load(encoding)
+ if data then
+ local characters, original, vector = tfmdata.characters, { }, data.vector
+ tfmdata.encoding = encoding -- not needed
+ for k, v in next, characters do
+ v.name, v.index, original[k] = vector[k], k, v
+ end
+ for k,v in next, data.unicodes do
+ if k ~= v then
+ if trace_defining then
+ logs.report("define font","reencoding U+%04X to U+%04X",k,v)
end
- first, last, n = nil, nil, 0
- end
- else -- finish
- if first and first == last then
- set_attribute(last,state,4) -- isol
- elseif last then
- set_attribute(last,state,3) -- fina
+ characters[k] = original[v]
end
- first, last, n = nil, nil, 0
end
- current = current.next
end
- if first and first == last then
- set_attribute(last,state,4) -- isol
- elseif last then
- set_attribute(last,state,3) -- fina
- end
- return head, done
end
-
end
---[[ldx--
-<p>We move marks into the components list. This saves much nasty testing later on.</p>
---ldx]]--
+tfm.features.register('reencode')
-do
-
- local glyph = node.id('glyph')
- local fontdata = fonts.tfm.id
- local marknumber = attributes.numbers['mark'] or 200
- local set_attribute = node.set_attribute
-
- function fonts.pushmarks(head,font)
- local tfmdata = fontdata[font]
- local characters = tfmdata.characters
- local current, last, done, n = head, nil, false, 0
- while current do
- if current.id == glyph and current.font == font then
- local c = characters[current.char]
- if c and c.description.class == "mark" then
- -- check if head
- if last and not last.components then
- last.components = current
- current.prev = nil -- last.components.prev = nil
- done = true
- n = 1
- else
- n = n + 1
- end
- set_attribute(current,marknumber,n)
- current = current.next
- elseif last and last.components then
- -- finish 'm
- current.prev.next = nil
- current.prev = last
- last.next = current
- last = current
- last = nil
- else
- last = current
- current = current.next
- end
- elseif last and last.components then
- current.prev.next = nil
- current.prev = last
- last.next = current
- last = nil
- else
- last = nil
- current = current.next
- end
- end
- if last and last.components then
- last.next = nil
- end
- tfmdata.shared.markspushed = done
- return head, done
- end
+fonts.initializers.base.tfm.reencode = tfm.reencode
+fonts.initializers.node.tfm.reencode = tfm.reencode
- function fonts.removemarks(head,font)
- local current, done, characters = head, false, tfmdata.characters
- while current do
- if current.id == glyph and current.font == font and characters[current.char].description.class == "mark" then
- local next, prev = current.next, current.prev
- if next then
- next.prev = prev
- end
- if prev then
- prev.next = next
- else
- head = next
- end
- node.free(current)
- current = next
- done = true
- else
- current = current.next
- end
- end
- return head, done
- end
+fonts.enc = fonts.enc or { }
+fonts.enc.remappings = fonts.enc.remappings or { }
- function fonts.popmarks(head,font)
- local tfmdata = fontdata[font]
- if tfmdata.shared.markspushed then
- local current, done, characters = head, false, tfmdata.characters
- while current do
- if current.id == glyph and current.font == font then
- local components = current.components
- if components then
- local last, next = components, current.next
- while last.next do last = last.next end
- if next then
- next.prev = last
- end
- last.next= next
- current.next = components
- components.prev = current
- current.components = nil
- current = last.next
- done = true
- else
- current = current.next
- end
- else
- current = current.next
+function tfm.remap(tfmdata,remapping)
+ local vector = remapping and fonts.enc.remappings[remapping]
+ if vector then
+ local characters, original = tfmdata.characters, { }
+ for k, v in next, characters do
+ original[k], characters[k] = v, nil
+ end
+ for k,v in next, vector do
+ if k ~= v then
+ if trace_defining then
+ logs.report("define font","remapping U+%04X to U+%04X",k,v)
end
+ local c = original[k]
+ characters[v] = c
+ c.index = k
end
- return head, done
- else
- return head, false
end
+ tfmdata.encodingbytes = 2
+ tfmdata.format = 'type1'
end
-
end
-function fonts.tfm.replacements(tfm,value)
---~ tfm.characters[0x0022] = table.fastcopy(tfm.characters[0x201D])
---~ tfm.characters[0x0027] = table.fastcopy(tfm.characters[0x2019])
---~ tfm.characters[0x0060] = table.fastcopy(tfm.characters[0x2018])
---~ tfm.characters[0x0022] = tfm.characters[0x201D]
- tfm.characters[0x0027] = tfm.characters[0x2019]
---~ tfm.characters[0x0060] = tfm.characters[0x2018]
-end
+tfm.features.register('remap')
--- auto complete font with missing composed characters
+fonts.initializers.base.tfm.remap = tfm.remap
+fonts.initializers.node.tfm.remap = tfm.remap
-table.insert(fonts.manipulators,"compose")
+-- status info
-function fonts.initializers.common.compose(tfmdata,value)
- if value then
- fonts.vf.aux.compose_characters(tfmdata)
+statistics.register("fonts load time", function()
+ if statistics.elapsedindeed(fonts) then
+ return format("%s seconds",statistics.elapsedtime(fonts))
end
-end
+end)
diff --git a/Master/texmf-dist/tex/context/base/font-tra.mkiv b/Master/texmf-dist/tex/context/base/font-tra.mkiv
new file mode 100644
index 00000000000..c45e1394d83
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/font-tra.mkiv
@@ -0,0 +1,113 @@
+%D \module
+%D [ file=font-tra,
+%D version=2009.01.02, % or so
+%D title=\CONTEXT\ Font Macros,
+%D subtitle=Tracing,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%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 {doiffontpresentelse}
+%D
+%D \starttyping
+%D \doiffontpresentelse{texnansi-lmr10}{YES}{NO}
+%D \doiffontpresentelse{adam-lindsay-modern-serif}{YES}{NO}
+%D \stoptyping
+
+\def\doiffontpresentelse#1{\ctxlua{commands.doifelse(fonts.names.exists("#1"))}}
+
+% experimental, maybe this becomes a module
+
+\newbox\otfcollector
+
+\def\startotfcollecting{\ctxlua{nodes.tracers.steppers.start()}}
+\def\stopotfcollecting {\ctxlua{nodes.tracers.steppers.stop()}}
+\def\resetotfcollecting{\ctxlua{nodes.tracers.steppers.reset()}}
+
+% Rather experimental:
+%
+% \page \showotfcomposition{arabtype*arab-default at 48pt}{-1}{الضَّرَّ} \page
+% \page \showotfcomposition{arabtype*arab-default at 48pt}{-1}{لِلّٰهِ} \page
+
+\def\showotfstepglyphs#1%
+ {\ctxlua{nodes.tracers.steppers.glyphs(\number\otfcollector,#1)}%
+ \unhbox\otfcollector}
+
+\def\otfstepcharcommand#1#2% font char
+ {\removeunwantedspaces
+ \hskip.5em plus .125em\relax
+ U+\hexnumber{#2}:\ruledhbox{\ctxlua{nodes.tracers.fontchar(#1,#2)}}%
+ \hskip.5em plus .125em\relax}
+
+\def\otfstepmessagecommand#1#2%
+ {\begingroup
+ \tttf\language\minusone
+ \veryraggedright
+ \hangindent1em
+ \hangafter\plusone
+ \dontleavehmode\hbox{\detokenize{#1}}\removeunwantedspaces
+ \doifsomething{#2}{\break\detokenize{#2}}\endgraf
+ \endgroup
+ \blank}
+
+\def\showotfstepchars#1%
+ {\ctxlua{nodes.tracers.steppers.codes(#1,\!!bs\detokenize{\otfstepcharcommand}\!!es)}}
+
+\def\showotfstepmessages#1%
+ {\ctxlua{nodes.tracers.steppers.messages(#1,\!!bs\detokenize{\otfstepmessagecommand}\!!es,true)}}
+
+\def\showotfstepfeatures
+ {\ctxlua{nodes.tracers.steppers.features()}}
+
+\def\showotfsteps
+ {\dontleavehmode\bgroup\tttf \language\minusone features: \showotfstepfeatures\egroup
+ \blank
+ \dontleavehmode\bgroup\tttf result:\egroup
+ \blank
+ \startlinecorrection
+ \ruledhbox\bgroup\box\otfcompositionbox\egroup
+ \stoplinecorrection
+ \dorecurse{\ctxlua{nodes.tracers.steppers.nofsteps()}}
+ {\blank
+ \showotfstepmessages\recurselevel
+ \blank
+ \startlinecorrection
+ \dontleavehmode\bgroup\resetallattributes\pardir TLT\textdir TLT\relax\tttf\recurselevel: \showotfstepchars\recurselevel\egroup
+ \stoplinecorrection
+ \blank
+ \startlinecorrection
+ \ruledhbox % can be mode
+ \bgroup\resetallattributes\showotfstepglyphs\recurselevel\egroup % reset is new, we don't want additional processing
+ \stoplinecorrection
+ \blank}}
+
+\def\startotfsample
+ {\enabletrackers[*otf.sample]% beware, kind of global
+ \startotfcollecting
+ \begingroup}
+
+\def\stopotfsample
+ {\endgroup
+ \stopotfcollecting
+ \disabletrackers[*otf.sample]% beware, kind of global: otf.sample
+ \showotfsteps
+ \resetotfcollecting}
+
+\newbox\otfcompositionbox
+
+\def\showotfcomposition#1#2#3% {font*features at size}, rl=-1, text
+ {\begingroup
+ \setupcolors[\c!state=\v!start]% can be option
+ \startotfsample
+ \global\setbox\otfcompositionbox\hbox{\definedfont[#1]\ifnum#2<0 \textdir TRT\else\ifnum#2>0 \textdir TLT\fi\fi\relax#3}%
+ \stopotfsample
+ \endgroup}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/font-uni.tex b/Master/texmf-dist/tex/context/base/font-uni.mkii
index 5d9e7a8819f..02ab6ce2cee 100644
--- a/Master/texmf-dist/tex/context/base/font-uni.tex
+++ b/Master/texmf-dist/tex/context/base/font-uni.mkii
@@ -2,7 +2,7 @@
%D [ file=font-uni,
%D version=1999.10.10,
%D title=\CONTEXT\ Font Macros,
-%D subtitle=\UNICODE\ Initialization,
+%D subtitle=\UNICODE,
%D author=Hans Hagen,
%D date=\currentdate,
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
@@ -11,7 +11,18 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Font Macros / UNICODE Support}
+\writestatus{loading}{ConTeXt Font Macros / Unicode}
+
+%D In \XETEX, unicode support is straightforward, so we
+%D simply output a \type {\char} with a 16||bit number.
+
+\ifnum\texengine=\xetexengine
+ \unexpanded\def\uchar#1#2{\char\numexpr#2+#1*\pluscclvi\relax}
+ \let\uc\uchar
+ \expandafter \endinput
+\fi
+
+%D Now comes the more traditional 8 bit \TEX\ hackery.
%D I wrote this module when Wang Lei asked me how to use
%D Chinese in \CONTEXT. From the samples he sent me, I deduced
@@ -25,30 +36,6 @@
%D is involved, which is why the macros handling those
%D characters look ahead.
-\startmessages dutch library: fonts
- 21: het is veiliger om (pdf)eTeX te gebruiken
-\stopmessages
-
-\startmessages english library: fonts
- 21: using (pdf)eTeX is more save
-\stopmessages
-
-\startmessages german library: fonts
- 21: Verwenden von (pdf)eTeX ist sicherer
-\stopmessages
-
-\startmessages italian library: fonts
- 21: l'uso di (pdf)eTeX è più sicuro
-\stopmessages
-
-\startmessages norwegian library: fonts
- 21: å bruke (pdf)eTeX er tryggere
-\stopmessages
-
-\startmessages french library: fonts
- 21: l'utilisation de (pdf)eTeX est plus économe
-\stopmessages
-
\unprotect
%D \macros
@@ -141,19 +128,6 @@
{\def\dolookaheaduchar{\uchar{#1}{#2}\let\nextutoken\relax}%
\futurelet\nextutoken\dolookaheaduchar}
-%D In \XETEX, unicode support is straightforward, so we
-%D simply output a \type {\char} with a 16||bit number.
-%D
-%D \starttyping
-%D \def\uchar#1#2{\char\numexpr(#2+(#1*256))\relax}
-%D \stoptyping
-
-\beginXETEX \uchar
-
- \unexpanded\def\uchar#1#2{\char\numexpr#2+#1*\@cclvi\relax}
-
-\endXETEX
-
\def\dohandleucflowglyph
{\unicodeposition\numexpr\unicodeone*256+\unicodetwo\relax
\handleunicodeglyph
@@ -390,26 +364,11 @@
%D Specific initializations can be assigned to \type
%D {commands}.
-\beginTEX
-
- \def\unicodeTEXwarning
- {\writeline\showmessage\m!fonts{21}\empty\writeline
- \global\let\unicodeTEXwarning\relax}
-
-\endTEX
-
-\beginETEX
-
- \let\unicodeTEXwarning\relax
-
-\endETEX
-
\def\defineunicodefont
{\dotripleempty\dodefineunicodefont}
\def\dodefineunicodefont[#1][#2][#3]%
- {\unicodeTEXwarning
- \doifassignmentelse{#3}
+ {\doifassignmentelse{#3}
{\setupunicodefont[#1][#3]}
{\doifelsenothing{#3}
{\setupunicodefont[#1][#3]}
diff --git a/Master/texmf-dist/tex/context/base/font-uni.mkiv b/Master/texmf-dist/tex/context/base/font-uni.mkiv
new file mode 100644
index 00000000000..40ab75ed6c2
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/font-uni.mkiv
@@ -0,0 +1,26 @@
+%D \module
+%D [ file=font-uni,
+%D version=2008.11.03, % 1999.10.10,
+%D title=\CONTEXT\ Font Macros,
+%D subtitle=\UNICODE,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Font Macros / Unicode}
+
+%D In \MKIV\ we only provide the \type {\uchar} macro and
+%D implement it as just an \UTF\ converter. We expand it so
+%D best not use not use it for active characters.
+
+\unprotect
+
+\def\uchar#1#2{\ctxlua{commands.uchar(\number#1,\number#2)}}
+
+\let\uc\uchar
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/font-unk.tex b/Master/texmf-dist/tex/context/base/font-unk.mkii
index 4e450ae74e7..30f82478186 100644
--- a/Master/texmf-dist/tex/context/base/font-unk.tex
+++ b/Master/texmf-dist/tex/context/base/font-unk.mkii
@@ -16,6 +16,8 @@
%D completely independant of real font names. First we map
%D some meaningful names onto unknown filenames.
+\unprotect
+
\definefontsynonym [Serif] [unknown]
\definefontsynonym [SerifBold] [unknown]
\definefontsynonym [SerifItalic] [unknown]
@@ -182,4 +184,4 @@
%D mapped onto real file names (or names that themselves are
%D mapped).
-\endinput
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/font-unk.mkiv b/Master/texmf-dist/tex/context/base/font-unk.mkiv
new file mode 100644
index 00000000000..bd699ef71c9
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/font-unk.mkiv
@@ -0,0 +1,162 @@
+%D \module
+%D [ file=font-unk,
+%D version=1998.09.10,
+%D title=\CONTEXT\ Font Macros,
+%D subtitle=Unknown Defaults,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D This module is rather important, because it enables us to
+%D define and call for not yet defined fonts in a way
+%D completely independant of real font names. First we map
+%D some meaningful names onto unknown filenames.
+
+\unprotect
+
+\definefontsynonym [Serif] [unknown]
+\definefontsynonym [SerifBold] [unknown]
+\definefontsynonym [SerifItalic] [unknown]
+\definefontsynonym [SerifSlanted] [unknown]
+\definefontsynonym [SerifBoldItalic] [unknown]
+\definefontsynonym [SerifBoldSlanted] [unknown]
+\definefontsynonym [SerifCaps] [unknown]
+
+\definefontsynonym [Sans] [unknown]
+\definefontsynonym [SansBold] [unknown]
+\definefontsynonym [SansItalic] [unknown]
+\definefontsynonym [SansSlanted] [unknown]
+\definefontsynonym [SansBoldItalic] [unknown]
+\definefontsynonym [SansBoldSlanted] [unknown]
+\definefontsynonym [SansCaps] [unknown]
+
+\definefontsynonym [Mono] [unknown]
+\definefontsynonym [MonoBold] [unknown]
+\definefontsynonym [MonoItalic] [unknown]
+\definefontsynonym [MonoSlanted] [unknown]
+\definefontsynonym [MonoBoldItalic] [unknown]
+\definefontsynonym [MonoBoldSlanted] [unknown]
+\definefontsynonym [MonoCaps] [unknown]
+
+\definefontsynonym [MathRoman] [unknown]
+\definefontsynonym [MathExtension] [unknown]
+\definefontsynonym [MathItalic] [unknown]
+\definefontsynonym [MathSymbol] [unknown]
+
+\definefontsynonym [MathNoName] [unknown]
+
+\definefontsynonym [MathAlpha] [unknown]
+\definefontsynonym [MathBeta] [unknown]
+\definefontsynonym [MathGamma] [unknown]
+\definefontsynonym [MathDelta] [unknown]
+
+\definefontsynonym [MathRomanBold] [MathRoman] % todo:
+\definefontsynonym [MathExtensionBold] [MathExtension] % [MathRoman]
+\definefontsynonym [MathItalicBold] [MathItalic] % [MathRoman]
+\definefontsynonym [MathSymbolBold] [MathSymbol] % [MathRoman]
+\definefontsynonym [MathAlphaBold] [MathAlpha] % [MathRoman]
+\definefontsynonym [MathBetaBold] [MathBeta] % [MathRoman]
+\definefontsynonym [MathGammaBold] [MathGamma] % [MathRoman]
+\definefontsynonym [MathDeltaBold] [MathDelta] % [MathRoman]
+
+\definefontsynonym [Handwriting] [unknown]
+\definefontsynonym [Calligraphic] [unknown]
+
+%D This permit us to define (use) fonts that refer to the default
+%D style (so, Bold may expand to SansBold or SerifBold, depending
+%D on the default style in the typeface).
+
+\definefontsynonym[\s!Normal] [\noexpand\fontstringD]
+\definefontsynonym[\s!Bold] [\noexpand\fontstringD\noexpand\s!Bold]
+\definefontsynonym[\s!Italic] [\noexpand\fontstringD\noexpand\s!Italic]
+\definefontsynonym[\s!Slanted] [\noexpand\fontstringD\noexpand\s!Slanted]
+\definefontsynonym[\s!BoldItalic] [\noexpand\fontstringD\noexpand\s!BoldItalic]
+\definefontsynonym[\s!BoldSlanted][\noexpand\fontstringD\noexpand\s!BoldSlanted]
+\definefontsynonym[\s!Caps] [\noexpand\fontstringD\noexpand\s!Caps]
+
+%D Also handy:
+
+\definefontsynonym [Regular] [Serif]
+\definefontsynonym [RegularBold] [SerifBold]
+\definefontsynonym [RegularItalic] [SerifItalic]
+\definefontsynonym [RegularSlanted] [SerifSlanted]
+\definefontsynonym [RegularBoldItalic] [SerifBoldItalic]
+\definefontsynonym [RegularBoldSlanted] [SerifBoldSlanted]
+\definefontsynonym [RegularCaps] [SerifCaps]
+
+\definefontsynonym [Support] [Sans]
+\definefontsynonym [SupportBold] [SansBold]
+\definefontsynonym [SupportItalic] [SansItalic]
+\definefontsynonym [SupportSlanted] [SansSlanted]
+\definefontsynonym [SupportBoldItalic] [SansBoldItalic]
+\definefontsynonym [SupportBoldSlanted] [SansBoldSlanted]
+\definefontsynonym [SupportCaps] [SansCaps]
+
+%D Well, not that good an idea:
+
+\definefontsynonym [Roman] [Serif]
+\definefontsynonym [RomanBold] [SerifBold]
+\definefontsynonym [RomanItalic] [SerifItalic]
+\definefontsynonym [RomanSlanted] [SerifSlanted]
+\definefontsynonym [RomanBoldItalic] [SerifBoldItalic]
+\definefontsynonym [RomanBoldSlanted] [SerifBoldSlanted]
+\definefontsynonym [RomanCaps] [SerifCaps]
+
+\definefontsynonym [Type] [Mono]
+\definefontsynonym [TypeBold] [MonoBold]
+\definefontsynonym [TypeItalic] [MonoItalic]
+\definefontsynonym [TypeSlanted] [MonoSlanted]
+\definefontsynonym [TypeBoldItalic] [MonoBoldItalic]
+\definefontsynonym [TypeBoldSlanted] [MonoBoldSlanted]
+\definefontsynonym [TypeCaps] [MonoCaps]
+
+%D Next we define roman, sans and monospaced font sets.
+
+\definebodyfont [default] [rm]
+ [tf=Serif sa 1,
+ bf=SerifBold sa 1,
+ it=SerifItalic sa 1,
+ sl=SerifSlanted sa 1,
+ bi=SerifBoldItalic sa 1,
+ bs=SerifBoldSlanted sa 1,
+ sc=SerifCaps sa 1]
+
+\definebodyfont [default] [ss]
+ [tf=Sans sa 1,
+ bf=SansBold sa 1,
+ it=SansItalic sa 1,
+ sl=SansSlanted sa 1,
+ bi=SansBoldItalic sa 1,
+ bs=SansBoldSlanted sa 1,
+ sc=SansCaps sa 1]
+
+\definebodyfont [default] [tt]
+ [tf=Mono sa 1,
+ bf=MonoBold sa 1,
+ it=MonoItalic sa 1,
+ sl=MonoSlanted sa 1,
+ bi=MonoBoldItalic sa 1,
+ bs=MonoBoldSlanted sa 1,
+ sc=MonoCaps sa 1]
+
+\definebodyfont [default] [mm]
+ [mr=MathRoman mo 1]
+
+\definebodyfont [bfmath] [mm]
+ [mr=MathRomanBold mo 1]
+
+\definebodyfont [default] [hw]
+ [tf=Handwriting sa 1]
+
+\definebodyfont [default] [cg]
+ [tf=Calligraphy sa 1]
+
+%D These definitions come into action as soon as names are
+%D mapped onto real file names (or names that themselves are
+%D mapped).
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/font-vf.lua b/Master/texmf-dist/tex/context/base/font-vf.lua
index 9b9052b4766..c103555a3be 100644
--- a/Master/texmf-dist/tex/context/base/font-vf.lua
+++ b/Master/texmf-dist/tex/context/base/font-vf.lua
@@ -7,113 +7,124 @@ if not modules then modules = { } end modules ['font-vf'] = {
}
--[[ldx--
-<p>This is very experimental code! Not yet adapted to recent changes. This will
-change.</p>
+<p>This is very experimental code! Not yet adapted to recent
+changes. This will change.</p>
--ldx]]--
-- define.methods elsewhere !
-fonts = fonts or { }
+fonts = fonts or { }
+fonts.vf = fonts.vf or { }
+
+local vf = fonts.vf
+local tfm = fonts.tfm
fonts.define = fonts.define or { }
fonts.define.methods = fonts.define.methods or { }
-fonts.vf = fonts.vf or { }
-fonts.vf.combinations = fonts.vf.combinations or { }
-fonts.vf.aux = fonts.vf.aux or { }
-fonts.vf.aux.combine = fonts.vf.aux.combine or { }
+vf.combinations = vf.combinations or { }
+vf.aux = vf.aux or { }
+vf.aux.combine = vf.aux.combine or { }
function fonts.define.methods.install(tag, rules)
- fonts.vf.combinations[tag] = rules
+ vf.combinations[tag] = rules
fonts.define.methods[tag] = function(specification)
- return fonts.vf.combine(specification,tag)
+ return vf.combine(specification,tag)
end
end
-function fonts.vf.aux.combine.assign(g, name, from, to, start, force)
- local f, id = fonts.vf.aux.combine.load(g,name)
+function vf.aux.combine.assign(g, name, from, to, start, force)
+ local f, id = vf.aux.combine.load(g,name)
if f and id then
-- optimize for whole range, then just g = f
if not from then from, to = 0, 0xFF00 end
if not to then to = from end
if not start then start = from end
local fc, gc = f.characters, g.characters
- g.fonts[#g.fonts+1] = { id = id } -- no need to be sparse
- local hn = #g.fonts
+ local fd, gd = f.descriptions, g.descriptions
+ local hn = #g.fonts+1
+ g.fonts[hn] = { id = id } -- no need to be sparse
for i=from,to do
if fc[i] and (force or not gc[i]) then
- gc[i] = table.fastcopy(fc[i])
+ gc[i] = table.fastcopy(fc[i]) -- can be optimized
gc[i].commands = { { 'slot', hn, start } }
+ gd[i] = fd[i]
end
start = start + 1
end
if not g.parameters and #g.fonts > 0 then -- share this code !
- g.parameters = table.fastcopy(f.parameters)
- g.italicangle = f.italicangle
- g.ascender = f.ascender
- g.descender = f.descender
+ g.parameters = table.fastcopy(f.parameters)
+ g.italicangle = f.italicangle
+ g.ascender = f.ascender
+ g.descender = f.descender
+ g.factor = f.factor -- brrr
end
end
end
-function fonts.vf.aux.combine.process(g,list)
+function vf.aux.combine.process(g,list)
if list then
- for _,v in pairs(list) do
- (fonts.vf.aux.combine.commands[v[1]] or nop)(g,v)
+ for _,v in next, list do
+ (vf.aux.combine.commands[v[1]] or nop)(g,v)
end
end
end
-function fonts.vf.aux.combine.load(g,name)
- return fonts.tfm.read_and_define(name or g.specification.name,g.specification.size)
+function vf.aux.combine.load(g,name)
+ return tfm.read_and_define(name or g.specification.name,g.specification.size)
end
-function fonts.vf.aux.combine.names(g,name,force)
- local f, id = fonts.tfm.read_and_define(name,g.specification.size)
+function vf.aux.combine.names(g,name,force)
+ local f, id = tfm.read_and_define(name,g.specification.size)
if f and id then
local fc, gc = f.characters, g.characters
+ local fd, gd = f.descriptions, g.descriptions
g.fonts[#g.fonts+1] = { id = id } -- no need to be sparse
local hn = #g.fonts
- for k, v in pairs(fc) do
+ for k, v in next, fc do
if force or not gc[k] then
gc[k] = table.fastcopy(v)
gc[k].commands = { { 'slot', hn, k } }
+ gd[i] = fd[i]
end
end
if not g.parameters and #g.fonts > 0 then -- share this code !
- g.parameters = table.fastcopy(f.parameters)
- g.italicangle = f.italicangle
- g.ascender = f.ascender
- g.descender = f.descender
+ g.parameters = table.fastcopy(f.parameters)
+ g.italicangle = f.italicangle
+ g.ascender = f.ascender
+ g.descender = f.descender
+ g.factor = f.factor -- brrr
end
end
end
-fonts.vf.aux.combine.commands = {
- ["initialize"] = function(g,v) fonts.vf.aux.combine.assign (g,g.name) end,
- ["include-method"] = function(g,v) fonts.vf.aux.combine.process (g,fonts.vf.combinations[v[2]]) end, -- name
- ["copy-parameters"] = function(g,v) fonts.vf.aux.combine.parameters(g,v[2]) end, -- name
- ["copy-range"] = function(g,v) fonts.vf.aux.combine.assign (g,v[2],v[3],v[4],v[5],true) end, -- name, from-start, from-end, to-start
- ["copy-char"] = function(g,v) fonts.vf.aux.combine.assign (g,v[2],v[3],v[3],v[4],true) end, -- name, from, to
- ["fallback-range"] = function(g,v) fonts.vf.aux.combine.assign (g,v[2],v[3],v[4],v[5],false) end, -- name, from-start, from-end, to-start
- ["fallback-char"] = function(g,v) fonts.vf.aux.combine.assign (g,v[2],v[3],v[3],v[4],false) end, -- name, from, to
- ["copy_names"] = function(g,v) fonts.vf.aux.combine.names (g,v[2],true) end,
- ["fallback_names"] = function(g,v) fonts.vf.aux.combine.names (g,v[2],false) end,
+vf.aux.combine.commands = {
+ ["initialize"] = function(g,v) vf.aux.combine.assign (g,g.name) end,
+ ["include-method"] = function(g,v) vf.aux.combine.process (g,vf.combinations[v[2]]) end, -- name
+ ["copy-parameters"] = function(g,v) vf.aux.combine.parameters(g,v[2]) end, -- name
+ ["copy-range"] = function(g,v) vf.aux.combine.assign (g,v[2],v[3],v[4],v[5],true) end, -- name, from-start, from-end, to-start
+ ["copy-char"] = function(g,v) vf.aux.combine.assign (g,v[2],v[3],v[3],v[4],true) end, -- name, from, to
+ ["fallback-range"] = function(g,v) vf.aux.combine.assign (g,v[2],v[3],v[4],v[5],false) end, -- name, from-start, from-end, to-start
+ ["fallback-char"] = function(g,v) vf.aux.combine.assign (g,v[2],v[3],v[3],v[4],false) end, -- name, from, to
+ ["copy_names"] = function(g,v) vf.aux.combine.names (g,v[2],true) end,
+ ["fallback_names"] = function(g,v) vf.aux.combine.names (g,v[2],false) end,
}
-function fonts.vf.combine(specification,tag)
+function vf.combine(specification,tag)
local g = {
name = specification.name,
- type = 'virtual',
+ -- type = 'virtual',
+ virtualized = true,
fonts = { },
characters = { },
+ descriptions = { },
specification = table.fastcopy(specification)
}
- fonts.vf.aux.combine.process(g,fonts.vf.combinations[tag])
+ vf.aux.combine.process(g,vf.combinations[tag])
return g
end
-fonts.vf.aux.combine.commands["feature"] = function(g,v)
+vf.aux.combine.commands["feature"] = function(g,v)
local key, value = v[2], v[3]
if key then
if value == nil then
@@ -170,77 +181,33 @@ fonts.define.methods.install(
fonts.define.methods["demo-1"] = function(specification)
local name = specification.name -- symbolic name
local size = specification.size -- given size
---~ specification.name = 'lmroman10-regular' -- forced base name
---~ specification.features.vtf = { }
- local f, id = fonts.tfm.read_and_define('lmroman10-regular',size)
+ local f, id = tfm.read_and_define('lmroman10-regular',size)
if f and id then
local capscale, digscale = 0.85, 0.75
- f.name, f.type = name, 'virtual'
+ -- f.name, f.type = name, 'virtual'
+ f.name, f.virtualized = name, true
f.fonts = {
- {id=id},
- {name='lmsans10-regular' , size=size*capscale}, -- forced extra name
- {name='lmtypewriter10-regular', size=size*digscale} -- forced extra name
+ { id = id },
+ { name = 'lmsans10-regular' , size = size*capscale }, -- forced extra name
+ { name = 'lmtypewriter10-regular', size = size*digscale } -- forced extra name
}
- for k,v in pairs(f.characters) do
- local u = v.unicode
- if u and characters.i_is_of_category(u,'lu') then
+ local i_is_of_category = characters.i_is_of_category
+ local characters, descriptions = f.characters, f.descriptions
+ local red = {'special','pdf: 1 0 0 rg'}
+ local green = {'special','pdf: 0 1 0 rg'}
+ local blue = {'special','pdf: 0 0 1 rg'}
+ local black = {'special','pdf: 0 g'}
+ for u,v in next, characters do
+ if u and i_is_of_category(u,'lu') then
v.width = capscale*v.width
- v.commands = {
- {'special','pdf: 1 0 0 rg'},
- {'slot',2, k},
- {'special','pdf: 0 g'},
- }
- elseif u and characters.i_is_of_category(u,'nd') then
- v.width = digscale*v.width
- v.commands = {
- {'special','pdf: 0 0 1 rg'},
- {'slot',3,k},
- {'special','pdf: 0 g'},
- }
+ v.commands = { red, {'slot',2,u}, black }
+ elseif u and i_is_of_category(u,'nd') then
+ v.width = digscale*v.width
+ v.commands = { blue, {'slot',3,u}, black }
else
- v.commands = {
- {'special','pdf: 0 1 0 rg'},
- {'slot',1,k},
- {'special','pdf: 0 g'},
- }
+ v.commands = { green, {'slot',1,u}, black }
end
end
end
return f
end
-
--- keep as example, now tfm feature
-
---~ fonts.vf.aux.combine.commands["lineheight"] = function(g,v)
---~ if g.ascender and g.descender then
---~ local ht, dp = g.ascender or 0, g.descender or 0
---~ if v[2] == "none" then
---~ for _,v in pairs(g.characters) do
---~ v.height = 0
---~ v.depth = 0
---~ end
---~ else
---~ if v[2] == "height" then
---~ dp = 0
---~ elseif v[2] == "depth" then
---~ ht = 0
---~ end
---~ if ht > 0 then
---~ if dp > 0 then
---~ for _,v in pairs(g.characters) do
---~ v.height = ht
---~ v.depth = dp
---~ end
---~ else
---~ for _,v in pairs(g.characters) do
---~ v.height = ht
---~ end
---~ end
---~ elseif dp > 0 then
---~ for _,v in pairs(g.characters) do
---~ v.depth = dp
---~ end
---~ end
---~ end
---~ end
---~ end
diff --git a/Master/texmf-dist/tex/context/base/font-xtx.lua b/Master/texmf-dist/tex/context/base/font-xtx.lua
new file mode 100644
index 00000000000..7b3f1ec8196
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/font-xtx.lua
@@ -0,0 +1,115 @@
+if not modules then modules = { } end modules ['font-xtx'] = {
+ version = 1.001,
+ comment = "companion to font-ini.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local texsprint, count = tex.sprint, tex.count
+local format, concat, gmatch, match, find, lower = string.format, table.concat, string.gmatch, string.match, string.find, string.lower
+local tostring, next = tostring, next
+
+local trace_defining = false trackers.register("fonts.defining", function(v) trace_defining = v end)
+
+--[[ldx--
+<p>Choosing a font by name and specififying its size is only part of the
+game. In order to prevent complex commands, <l n='xetex'/> introduced
+a method to pass feature information as part of the font name. At the
+risk of introducing nasty parsing and compatinility problems, this
+syntax was expanded over time.</p>
+
+<p>For the sake of users who have defined fonts using that syntax, we
+will support it, but we will provide additional methods as well.
+Normally users will not use this direct way, but use a more abstract
+interface.</p>
+
+<p>The next one is the official one. However, in the plain
+variant we need to support the crappy [] specification as
+well and that does not work too well with the general design
+of the specifier.</p>
+--ldx]]--
+
+--~ function fonts.define.specify.colonized(specification) -- xetex mode
+--~ local list = { }
+--~ if specification.detail and specification.detail ~= "" then
+--~ for v in gmatch(specification.detail,"%s*([^;]+)%s*") do
+--~ local a, b = match(v,"^(%S*)%s*=%s*(%S*)$")
+--~ if a and b then
+--~ list[a] = b:is_boolean()
+--~ if type(list[a]) == "nil" then
+--~ list[a] = b
+--~ end
+--~ else
+--~ local a, b = match(v,"^([%+%-]?)%s*(%S+)$")
+--~ if a and b then
+--~ list[b] = a ~= "-"
+--~ end
+--~ end
+--~ end
+--~ end
+--~ specification.features.normal = list
+--~ return specification
+--~ end
+
+--~ check("oeps/BI:+a;-b;c=d")
+--~ check("[oeps]/BI:+a;-b;c=d")
+--~ check("file:oeps/BI:+a;-b;c=d")
+--~ check("name:oeps/BI:+a;-b;c=d")
+
+local list = { }
+
+fonts.define.specify.colonized_default_lookup = "file"
+
+local function issome () list.lookup = fonts.define.specify.colonized_default_lookup end
+local function isfile () list.lookup = 'file' end
+local function isname () list.lookup = 'name' end
+local function thename(s) list.name = s end
+local function issub (v) list.sub = v end
+local function iscrap (s) list.crap = string.lower(s) end
+local function istrue (s) list[s] = 'yes' end
+local function isfalse(s) list[s] = 'no' end
+local function iskey (k,v) list[k] = v end
+
+local spaces = lpeg.P(" ")^0
+local namespec = (1-lpeg.S("/:("))^0 -- was: (1-lpeg.S("/: ("))^0
+local crapspec = spaces * lpeg.P("/") * (((1-lpeg.P(":"))^0)/iscrap) * spaces
+local filename = (lpeg.P("file:")/isfile * (namespec/thename)) + (lpeg.P("[") * lpeg.P(true)/isname * (((1-lpeg.P("]"))^0)/thename) * lpeg.P("]"))
+local fontname = (lpeg.P("name:")/isname * (namespec/thename)) + lpeg.P(true)/issome * (namespec/thename)
+local sometext = (lpeg.R("az") + lpeg.R("AZ") + lpeg.R("09"))^1
+local truevalue = lpeg.P("+") * spaces * (sometext/istrue)
+local falsevalue = lpeg.P("-") * spaces * (sometext/isfalse)
+local keyvalue = (lpeg.C(sometext) * spaces * lpeg.P("=") * spaces * lpeg.C(sometext))/iskey
+local somevalue = sometext/istrue
+local subvalue = lpeg.P("(") * (lpeg.C(lpeg.P(1-lpeg.S("()"))^1)/issub) * lpeg.P(")") -- for Kim
+local option = spaces * (keyvalue + falsevalue + truevalue + somevalue) * spaces
+local options = lpeg.P(":") * spaces * (lpeg.P(";")^0 * option)^0
+local pattern = (filename + fontname) * subvalue^0 * crapspec^0 * options^0
+
+function fonts.define.specify.colonized(specification) -- xetex mode
+ list = { }
+ pattern:match(specification.specification)
+ for k, v in next, list do
+ list[k] = v:is_boolean()
+ if type(list[a]) == "nil" then
+ list[k] = v
+ end
+ end
+ list.crap = nil -- style not supported, maybe some day
+ if list.name then
+ specification.name = list.name
+ list.name = nil
+ end
+ if list.lookup then
+ specification.lookup = list.lookup
+ list.lookup = nil
+ end
+ if list.sub then
+ specification.sub = list.sub
+ list.sub = nil
+ end
+ specification.features.normal = list
+ return specification
+end
+
+fonts.define.register_split(":", fonts.define.specify.colonized)
diff --git a/Master/texmf-dist/tex/context/base/font-xtx.mkii b/Master/texmf-dist/tex/context/base/font-xtx.mkii
new file mode 100644
index 00000000000..5f4b85879af
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/font-xtx.mkii
@@ -0,0 +1,357 @@
+%D \module
+%D [ file=font-xtx,
+%D version=2004.09.11,
+%D title=\CONTEXT\ Font Macros,
+%D subtitle=\XETEX\ Hacks,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=\PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\ifnum\texengine=\xetexengine
+ \writestatus{loading}{ConTeXt Font Macros / XeTeX Hacks}
+\else
+ \endinput
+\fi
+
+\unprotect
+
+%D Loading:
+
+%D for some reason xetex does not support [filename] for tfm files and
+%D quotes also behave kind of strange " vs ' vs [ vs ...
+%D
+%D \starttyping
+%D \font\myfont = msam7 % ok
+%D \font\myfont = "msam7" % also ok
+%D \font\myfont = "msam7" at 8pt % error
+%D \stoptyping
+
+\newconditional\tracexetexfonts
+
+%D Because \XETEX\ is not that fast on locating fonts we cache lookups so
+%D that we minimize the test. It saves a little bit of runtime, depending
+%D on the number of fonts loaded (which is normally not that much).
+
+\def\doiffoundXTXfontelse#1#2%
+ {\ifcsname xtx@fnt@#2\somefontspec\endcsname
+ \ifconditional\tracexetexfonts
+ \writestatus\m!fonts{already checked #1: #2\somefontspec\space (state: \number\csname xtx@fnt@#2\somefontspec\endcsname)}%
+ \fi
+ \else
+ \suppressfontnotfounderror\plusone
+ \font\xetextempfont=#2\somefontspec\relax
+ \suppressfontnotfounderror\zerocount
+ \edef\xetextempfont{\fontname\xetextempfont}%
+ \global\expandafter\chardef\csname xtx@fnt@#2\somefontspec\endcsname
+ \ifx\xetextempfont\nullfontname
+ \zerocount \ifconditional\tracexetexfonts
+ \writestatus\m!fonts{not found #1: #2\somefontspec}%
+ \fi
+ \else
+ \plusone \ifconditional\tracexetexfonts
+ \writestatus\m!fonts{found #1: #2\somefontspec}%
+ \fi
+ \fi
+ \fi
+ \ifcase\csname xtx@fnt@#2\somefontspec\endcsname
+ \expandafter\secondoftwoarguments
+ \else
+ \expandafter\firstoftwoarguments
+ \fi}
+
+\def\docheckfontfilenameprefix#1:#2:#3#4\relax
+ {\edef\!!stringa{#1}%
+ \edef\!!stringb{#2}%
+ \ifx\!!stringb\empty
+ % no prefix
+ \let\checkedfontfile\!!stringa
+ \doiffoundXTXfontelse{1a}{\checkedfontfile\checkedfontfeatures}
+ {\edef\checkedfontfile{\checkedfontfile\checkedfontfeatures}}
+ {\doiffoundXTXfontelse{1b}{"\checkedfontfile\checkedfontfeatures"}
+ {\edef\checkedfontfile{"\checkedfontfile\checkedfontfeatures"}}
+ {\doiffoundXTXfontelse{1c}{"[\checkedfontfile]\checkedfontfeatures"}
+ {\edef\checkedfontfile{"[\checkedfontfile]\checkedfontfeatures"}}
+ {}}}%
+ \else\ifx\!!stringa\v!file
+ % force file, only file check when no spaces
+ \let\checkedfontfile\!!stringb
+ \doiffoundXTXfontelse{2a}{"[\checkedfontfile]\checkedfontfeatures"}
+ {\edef\checkedfontfile{"[\checkedfontfile]\checkedfontfeatures"}}
+ {\doiffoundXTXfontelse{2b}{"\checkedfontfile\checkedfontfeatures"}
+ {\edef\checkedfontfile{"\checkedfontfile\checkedfontfeatures"}}
+ {}}%
+ \else\ifx\!!stringa\v!name
+ % force name, always lookup by xetex itself, "" forces otf/ttf/type1
+ \edef\checkedfontfile{"\!!stringb\checkedfontfeatures"}%
+ \ifconditional\tracexetexfonts
+ \writestatus\m!fonts{no checking 3a: \checkedfontfile}%
+ \fi
+ \else
+ % whatever, maybe even xetex spec, forget about features
+ \edef\checkedfontfile{"\!!stringa\!!stringb"}%
+ \ifconditional\tracexetexfonts
+ \writestatus\m!fonts{no checking 3b: \checkedfontfile}%
+ \fi
+ \fi\fi\fi}
+
+\def\checkfontfilename% -- todo: integrate so that we call do.. directly
+ {\expandafter\docheckfontfilename\fontfile*\empty*\relax}
+
+\def\docheckfontfilename#1*#2#3*#4\relax % class overrules file
+ {\edef\checkedfontfeatures
+ {\expandafter\ifx\csname\fontclass\s!features\endcsname\empty
+ \ifx\@@fontfeatures\empty\ifx#2\empty\else#2#3\fi\else\@@fontfeatures\fi
+ \else\expandafter\ifx\csname\fontclass\s!features\endcsname\relax % redundant, will go away
+ \ifx\@@fontfeatures\empty\ifx#2\empty\else#2#3\fi\else\@@fontfeatures\fi
+ \else
+ \csname\fontclass\s!features\endcsname
+ \fi\fi}%
+ \ifx\checkedfontfeatures\empty
+ % done
+ \else
+ \edef\checkedfontfeatures{\executeifdefined{\??fa\checkedfontfeatures}\empty}%
+ \ifx\checkedfontfeatures\empty
+ % done
+ \else
+ \let\convertedfontfeatures\empty
+ \processcommacommand[\checkedfontfeatures]\doconvertfontfeatures % raw
+ \ifx\convertedfontfeatures\empty
+ \let\checkedfontfeatures\empty
+ \else
+ \edef\checkedfontfeatures{:\convertedfontfeatures}%
+ \fi
+ \fi
+ \fi
+ \docheckfontfilenameprefix#1:\empty:\empty\relax
+ \doshowcheckedfontfeatures}
+
+\def\dodoconvertfontfeatures#1=#2#3=#4\relax
+ {\ifx#2\empty
+ % invalid feature
+ \else\ifcsname @xtx@#1@#2#3\endcsname
+ \expandafter\ifx\csname @xtx@#1@#2#3\endcsname\empty\else
+ \edef\convertedfontfeatures{\convertedfontfeatures\csname @xtx@#1@#2#3\endcsname;}%
+ \fi
+ \else
+ \edef\!!stringa{#1}%
+ \edef\!!stringb{#2#3}%
+ \edef\convertedfontfeatures
+ {\convertedfontfeatures
+ \ifx\!!stringb\v!yes
+ +\!!stringa
+ \else\ifx\!!stringb\v!no
+ -\!!stringa
+ \else
+ \!!stringa=\!!stringb
+ \fi\fi;}%
+ \fi\fi}
+
+\def\doconvertfontfeatures#1%
+ {\dodoconvertfontfeatures#1=\empty=\relax}
+
+\def\remapfontfeature #1 #2 #3 {\setevalue{@xtx@#1@#2}{#3}}
+
+% this may move to another file, maybe font-xtx
+
+\remapfontfeature tlig yes mapping=tlig
+%remapfontfeature tlig no mapping=
+\remapfontfeature trep yes {}
+\remapfontfeature trep no {}
+\remapfontfeature texligatures yes mapping=tlig
+%remapfontfeature texligatures no mapping=
+%remapfontfeature texquotes yes mapping=tex-text
+%remapfontfeature texquotes no mapping=
+
+%D Variants:
+
+\unexpanded\def\variant[#1]%
+ {\dosetscaledfont
+ \font\variantfont\truefontname{\fontstringA\fontstylesuffix\fontvariant\fontstringA{#1}} at \scaledfont
+ \variantfont}
+
+%D Possible optimizations:
+
+% \def\updatefontparameters
+% {\edef\@@fontfeatures{\truefontdata\fontfile\s!features}%
+% \edef\@@fontskewchar{\truefontdata\fontfile\s!skewchar}}
+
+% \def\setfontcharacteristics
+% {\updatefontparameters % redundant, will go away, faster too
+% \the\everyfont}
+
+% \let\synchronizepatternswithfont\relax
+
+%D Names:
+
+% We need to move the feature into the filename else it may be
+% overloaded by another reference. For instance the definition of
+% a regular and caps variant can use the same font.
+
+% We could use an indirect method ... store in 'array' and refer to
+% slot.
+
+\def\definefontsynonym[#1]#2[#3]%
+ {\edef\@@fontname{#1}%
+ \edef\@@fontfile{#3}%
+ \doifnextoptionalelse\dodefinefontsynonym\nodefinefontsynonym}
+
+\def\nodefinefontsynonym
+ {\@EA\let\csname\??ff\fontclass\@@fontname\endcsname\@@fontfile}
+
+\def\dodefinefontsynonym[#1]%
+ {\edef\@@fontdata{#1}%
+ \ifx\@@fontdata\empty
+ \nodefinefontsynonym
+ \else
+ \ifx\fontclass\empty
+ \getfontparameters
+ \else
+ \getglobalfontparameters
+ \fi
+ \ifcsname\??ff\@@fontfile\s!features\endcsname
+ \@EA\edef\csname\??ff\fontclass\@@fontname\endcsname{\@@fontfile*\csname\??ff\@@fontfile\s!features\endcsname}%
+ \@EA\let\csname\??ff\@@fontfile\s!features\endcsname\undefined
+ \else
+ \nodefinefontsynonym
+ \fi
+ \fi}
+
+\let\definefontfile\definefontsynonym % dedicated to Taco Hoekwater
+
+% simple version
+%
+% \def\truefontname#1%
+% {\@EA\dotruefontname#1*\relax}
+%
+% \def\dotruefontname#1*#2\relax
+% {\ifcsname\??ff\fontclass#1\endcsname
+% \@EA\truefontname\csname\??ff\fontclass#1\endcsname
+% \else\ifcsname\??ff#1\endcsname
+% \@EA\truefontname\csname\??ff#1\endcsname
+% \else
+% #1%
+% \fi\fi}
+%
+% last counts
+%
+% \def\truefontname#1%
+% {\@EA\dotruefontname#1*\empty*\relax}
+%
+% \def\dotruefontname#1*#2#3*#4\relax
+% {\ifcsname\??ff\fontclass#1\endcsname
+% \ifx#2\empty
+% \@EA\truefontname\csname\??ff\fontclass#1\endcsname
+% \else
+% \@EA\truefontname\csname\??ff\fontclass#1\endcsname*#2#3%
+% \fi
+% \else\ifcsname\??ff#1\endcsname
+% \ifx#2\empty
+% \@EA\truefontname\csname\??ff#1\endcsname
+% \else
+% \@EA\truefontname\csname\??ff#1\endcsname*#2#3%
+% \fi
+% \else
+% \ifx#2\empty
+% #1%
+% \else
+% #1*#2#3%
+% \fi
+% \fi\fi}
+%
+% first counts
+
+\def\truefontname#1%
+ {\@EA\dotruefontname#1*\empty*\relax}
+
+\def\dotruefontname#1*#2#3*#4\relax
+ {\ifcsname\??ff\fontclass#1\endcsname
+ \ifx#2\empty
+ \@EA\truefontname\csname\??ff\fontclass#1\endcsname
+ \else
+ \@EA\redotruefontname\csname\??ff\fontclass#1\endcsname*#2#3%
+ \fi
+ \else\ifcsname\??ff#1\endcsname
+ \ifx#2\empty
+ \@EA\truefontname\csname\??ff#1\endcsname
+ \else
+ \@EA\redotruefontname\csname\??ff#1\endcsname*#2#3%
+ \fi
+ \else
+ #1\ifx#2\empty\else*#2#3\fi
+ \fi\fi}
+
+\def\redotruefontname#1%
+ {\@EA\dodotruefontname#1*\relax}
+
+\def\dodotruefontname#1*#2\relax
+ {\ifcsname\??ff\fontclass#1\endcsname
+ \@EA\redotruefontname\csname\??ff\fontclass#1\endcsname
+ \else\ifcsname\??ff#1\endcsname
+ \@EA\redotruefontname\csname\??ff#1\endcsname
+ \else
+ #1%
+ \fi\fi}
+
+%D Default:
+
+\def\defaultfontfile{file:lmmono10-regular}
+
+%D Maybe:
+
+% \def\updatefontparameters
+% {\edef\@@fontfeatures{\truefontdata\fontfile \s!features}%
+% \edef\@@fontskewchar{\truefontdata\fontfile \s!skewchar}}
+
+% \def\setfontcharacteristics
+% {%\updatefontparameters % redundant, will go away, faster too
+% \the\everyfont
+% \synchronizepatternswithfont}
+
+\protect \endinput
+
+% \starttypescript[serif] [myzhfont]
+% \definefontsynonym [Serif] [file:SimSun]
+% \definefontsynonym [SerifBold] [file:SimSun]
+% \definefontsynonym [SerifItalic] [file:SimSun]
+% \definefontsynonym [SerifBoldItalic] [file:SimSun]
+% \stoptypescript
+% \starttypescript[sans] [myzhfont]
+% \definefontsynonym [Sans] [file:SimSun]
+% \definefontsynonym [SansBold] [file:SimSun]
+% \definefontsynonym [SansItalic] [file:SimSun]
+% \definefontsynonym [SansBoldItalic] [file:SimSun]
+% \stoptypescript
+% \starttypescript[mono] [myzhfont]
+% \definefontsynonym [Mono] [file:SimSun]
+% \definefontsynonym [MonoBold] [file:SimSun]
+% \definefontsynonym [MonoItalic] [file:SimSun]
+% \definefontsynonym [MonoBoldItalic] [file:SimSun]
+% \stoptypescript
+% \definetypeface [myzhfont] [rm] [serif][myzhfont] [default]
+% \definetypeface [myzhfont] [ss] [sans] [myzhfont] [default]
+% \definetypeface [myzhfont] [tt] [mono] [myzhfont] [default]
+
+% \starttext
+% % on windows: make sure fonts.conf has no cache mentioned
+% %
+% % 64 sec xetex, 11 sec luatex (56 sec xetex when \nobigmath)
+% %
+% \setupbodyfont[myzhfont] \dorecurse{10000}{{hello {\switchtobodyfont[myzhfont] 你好}}\par}
+% %
+% % 67 sec xetex, 11.5 sec luatex
+% %
+% % \dorecurse{10000}{{hello {\switchtobodyfont[myzhfont] 你好}}\par}
+% %
+% % 5 sec xetex, 7 sec luatex
+% %
+% % \setupbodyfont[myzhfont] \dorecurse{10000}{{hello {你好}}\par}
+% %
+% % 5 sec xetex, 7 sec luatex
+% %
+% % \setupbodyfont[myzhfont] \dorecurse{10000}{{\bf hello {你好}}\par}
+% \stoptext
+
diff --git a/Master/texmf-dist/tex/context/base/core-fig.tex b/Master/texmf-dist/tex/context/base/grph-fig.mkii
index 5eed8fbf1c7..c7f990af276 100644
--- a/Master/texmf-dist/tex/context/base/core-fig.tex
+++ b/Master/texmf-dist/tex/context/base/grph-fig.mkii
@@ -1,7 +1,7 @@
%D \module
-%D [ file=core-fig,
+%D [ file=grph-fig,
%D version=2006.08.26, % overhaul of 1997.03.31
-%D title=\CONTEXT\ Core Macros,
+%D title=\CONTEXT\ Graphic Macros,
%D subtitle=Figure Inclusion,
%D author=Hans Hagen,
%D date=\currentdate,
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Core Macros / Figure Handling}
+\writestatus{loading}{ConTeXt Graphic Macros / Figure Handling}
\unprotect
@@ -33,14 +33,21 @@
\def\doplaceexternalfigure[#1][#2][#3][#4][#5]%
{\doifsomething{#2}% catches \defineexternalfigure dummies
- {\bgroup
- \pushmacro\textunderscore
- \edef\textunderscore{\string_}% brrr, temp hack, still needed?
- \calculateexternalfigure [][#1][#2][#3][#4][#5]% [] is dummy dwcomp
- \calculateexternalscreenfigure[][#1][#2][#3][#4][#5]% [] is dummy dwcomp
- \popmacro\textunderscore
- \box\foundexternalfigure
- \egroup}}
+ {\doifundefinedelse{\??ef\??ef#2}
+ {\dodoplaceexternalfigure[#1][#2][#3][#4][#5]}
+ {\doifelse{#1}{#2}
+ {\dodoplaceexternalfigure[#1][#2][#3][#4][#5]}
+ {\getvalue{\??ef\??ef#2}[#5]}}}}
+
+\def\dodoplaceexternalfigure[#1][#2][#3][#4][#5]%
+ {\bgroup
+ \pushmacro\textunderscore
+ \edef\textunderscore{\string_}% brrr, temp hack, still needed?
+ \calculateexternalfigure [][#1][#2][#3][#4][#5]% [] is dummy dwcomp
+ \calculateexternalscreenfigure[][#1][#2][#3][#4][#5]% [] is dummy dwcomp
+ \popmacro\textunderscore
+ \box\foundexternalfigure
+ \egroup}
\def\externalfigurereplacement#1#2#3%
{\setupcolors
@@ -484,8 +491,6 @@
\doglobal\beforesplitstring#3\at.\to\typesetfilename
\externalfigure[\typesetfilename.pdf][#2,#4]}
-\appendtoks \setupexternalfigures[\c!option=\v!empty] \to \everyfastmode
-
\setupexternalfigures
[\c!option=,
\c!object=\v!yes, % we only check for no
@@ -504,6 +509,8 @@
\c!prefix=,
\c!cache=,
% \c!grid=,
+ \c!equalwidth=,
+ \c!equalheight=,
\c!location={\v!local,\v!global}]
\setupexternalfigures
@@ -515,3 +522,38 @@
[buffer] [\jobname] [\c!type=\v!buffer,\c!object=\v!no]
\protect \endinput
+
+% alternative for positioning
+
+% \definelayer[figure][width=\overlaywidth,height=\overlayheight]
+% \defineoverlay[figure][{\directsetup{figure}\tightlayer[figure]}]
+
+% \setupcolors[state=start]
+
+% \starttext
+
+% \startsetups figure
+% \setlayerframed[figure][preset=rightbottom,x=.25\layerwidth,y=.25\layerheight]{HERE}
+% \setlayerframed[figure][preset=leftbottom, x=.15\layerwidth,y=.35\layerheight]{THERE}
+% \stopsetups
+
+% \externalfigure[cow][background={foreground,figure},width=4cm,height=8cm]
+
+% \startsetups figure
+% \setlayerframed[figure][preset=righttop,x=.25\layerwidth,y=.25\layerheight]{MORE}
+% \setlayerframed[figure][preset=middle,foregroundcolor=green]{EVEN MORE}
+% \stopsetups
+
+% \externalfigure[cow][background={foreground,figure},width=14cm,height=2cm]
+
+% \defineexternalfigure[whatever][background={foreground,figure}]
+
+% \startsetups figure
+% \setlayerframed[figure][preset=righttop,x=.25\layerwidth,y=.25\layerheight]{\red MORE}
+% \setlayerframed[figure][preset=middle,foregroundcolor=green]{EVEN MORE}
+% \stopsetups
+
+% \externalfigure[cow][whatever][width=14cm,height=4cm]
+
+% \stoptext
+
diff --git a/Master/texmf-dist/tex/context/base/grph-fig.mkiv b/Master/texmf-dist/tex/context/base/grph-fig.mkiv
new file mode 100644
index 00000000000..415a2aa7623
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/grph-fig.mkiv
@@ -0,0 +1,526 @@
+%D \module
+%D [ file=grph-fig,
+%D version=2006.08.26, % overhaul of 1997.03.31
+%D title=\CONTEXT\ Graphic Macros,
+%D subtitle=Figure Inclusion,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Graphic Macros / Figure Handling}
+
+\unprotect
+
+\def\setupexternalfigures
+ {\dosingleempty\dosetupexternalfigures}
+
+\def\dosetupexternalfigures[#1]%
+ {\getparameters[\??ef][#1]% local settings
+ \getparameters[\??ex][#1]% global settings
+ \setfigurepathlist} % the path may be used elsewhere too (as in x-res-04)
+
+\presetlocalframed[\??ef]
+
+\newconditional\externalfigurelevel % true=background false=normal
+\newconditional\externalfigureflush % true=place false=ignore
+
+\setfalse\externalfigurelevel
+\settrue \externalfigureflush
+
+\def\doplaceexternalfigure[#1][#2][#3][#4][#5]%
+ {\doifsomething{#2}% catches \defineexternalfigure dummies
+ {\doifundefinedelse{\??ef\??ef#2}
+ {\dodoplaceexternalfigure[#1][#2][#3][#4][#5]}
+ {\doifelse{#1}{#2}
+ {\dodoplaceexternalfigure[#1][#2][#3][#4][#5]}
+ {\getvalue{\??ef\??ef#2}[#5]}}}}
+
+\def\dodoplaceexternalfigure[#1][#2][#3][#4][#5]%
+ {\bgroup
+ \pushmacro\textunderscore
+ \edef\textunderscore{\string_}% brrr, temp hack, still needed?
+ \calculateexternalfigure[][#1][#2][#3][#4][#5]% [] is dummy dwcomp
+ \popmacro\textunderscore
+ \box\foundexternalfigure
+ \egroup}
+
+\def\externalfigurereplacement#1#2#3%
+ {\setupcolors
+ [\c!state=\v!local]%
+ \expanded{\localframed
+ [\??ef]
+ [\c!width=\figurewidth,
+ \c!height=\figureheight,
+ \c!background=\v!color,
+ \c!backgroundcolor=missingfigurecolor,
+ \c!frame=\@@efframe]}%
+ {\tt\tfxx \nohyphens
+ name: \expanded{\verbatimstring{#1}}\\%
+ file: \expanded{\verbatimstring{#2}}\\%
+ state: \expanded{\verbatimstring{#3}}}}
+
+\definecolor[missingfigurecolor][s=.8]
+
+\def\externalfigureplaceholder#1#2#3%
+ {\localframed
+ [\??ef]
+ [\c!width=#2,
+ \c!height=#3,
+ \c!frame=\v!on]%
+ {\tt\tfxx \nohyphens
+ name: \expanded{\verbatimstring{#1}}\\%
+ state: \expanded{\verbatimstring{placeholder}}}}
+
+% new: more convenient/efficient than
+%
+% \use..[a][a][setting] \externalfigure[b][a]
+%
+% is equivalent to:
+%
+% \def..[a][setting] \externalfigure[b][a]
+%
+% see x-res modules for usage:
+%
+% \defineexternalfigure[name][settings]
+
+\def\defineexternalfigure
+ {\dodoubleargument\dodefineexternalfigure}
+
+\def\dodefineexternalfigure[#1][#2]%
+ {\setvalue{\??ef\??ef#1}{\doplaceexternalfigure[#1][][][#2]}}
+
+\def\getexternalfigure#1% efef has 4 args already and take an 5th
+ {\wait} % OBSOLETE
+
+% \useexternalfigure[alpha][koe]
+% \useexternalfigure[beta] [koe] [breedte=1cm]
+% \useexternalfigure[gamma][koe][alpha]
+% \useexternalfigure[delta][koe][alpha][breedte=2cm]
+%
+% volle breedte: \externalfigure[koe] \par
+% 3cm breed: \externalfigure[koe] [breedte=3cm] \par
+% volle breedte: \externalfigure[alpha] \par
+% 1cm breed: \externalfigure[beta] \par
+% volle breedte: \externalfigure[gamma] \par
+% 2cm breed: \externalfigure[delta] \par
+% 4cm breed: \externalfigure[beta] [breedte=4cm] \par
+% 5cm breed: \externalfigure[gamma][breedte=5cm] \par
+
+% \defineexternalfigure[a][width=10cm]
+% \defineexternalfigure[b][width=5cm]
+% \externalfigure[cow][a]
+% \externalfigure[cow][b][height=8cm]
+
+% \useexternalfigure[x][cow][width=10cm,height=1cm]
+% \externalfigure[x]
+% \externalfigure[x][width=3cm]
+
+\def\useexternalfigure
+ {\doquadrupleempty\douseexternalfigure}
+
+% [label] [filename]
+% [label] [filename] [parent]
+% [label] [filename] [parent] [settings]
+% [label] [filename] [settings]
+
+\def\useexternalfigure
+ {\doquadrupleempty\douseexternalfigure}
+
+\def\douseexternalfigure[#1][#2][#3][#4]%
+ {\doifelsenothing{#1}
+ {\doifsomething{#2}
+ {\doifassignmentelse{#3}
+ {\setvalue{\??ef\??ef#2}{\doplaceexternalfigure[#2][#2][#3][#4]}}
+ {\setvalue{\??ef\??ef#2}{\doplaceexternalfigure[#2][#2][][#4]}}}}
+ {\doifelsenothing{#2}
+ {\doifassignmentelse{#3}
+ {\setvalue{\??ef\??ef#1}{\doplaceexternalfigure[#1][#1][][#3]}}
+ {\setvalue{\??ef\??ef#1}{\doplaceexternalfigure[#1][#1][#3][#4]}}}
+ {\doifassignmentelse{#3}
+ {\setvalue{\??ef\??ef#1}{\doplaceexternalfigure[#1][#2][][#3]}}
+ {\setvalue{\??ef\??ef#1}{\doplaceexternalfigure[#1][#2][#3][#4]}}}}}
+
+\def\dosetefparameters#1#2#3% parent_id use_settings current_settings
+ {\doifelsenothing{#1} % inherit from parent
+ {\getparameters[\??ef][#2,#3]}
+ {\doifdefinedelse{\??ef\??ef#1}
+ {\pushmacro\doplaceexternalfigure
+ \def\doplaceexternalfigure[##1][##2][##3][##4]{\getparameters[\??ef][##4,#2,#3]}%
+ \getvalue{\??ef\??ef#1}%
+ \popmacro\doplaceexternalfigure}
+ {\getparameters[\??ef][#2,#3]}}}
+
+\unexpanded\def\externalfigure
+ {\dotripleempty\doexternalfigure}
+
+\def\doexternalfigure[#1][#2][#3]% [label][file][settings] | [file][settings] | [file][parent][settings]
+ {\bgroup
+ \doifelsenothing{#1}
+ {\framed[\c!width=\defaultfigurewidth,\c!height=\defaultfigureheight]{external\\figure\\no name}}
+ {\doifundefinedelse{\??ef\??ef#1}
+ {\useexternalfigure[\s!dummy][#1][#2][#3]%
+ \getvalue{\??ef\??ef\s!dummy}[]} % [] is dummy arg 5
+ {\doifassignmentelse{#2}
+ {\getvalue{\??ef\??ef#1}[#2]}%
+ {\getvalue{\??ef\??ef#1}[#3]}}}%
+ \globallet\currentresourcecomment\empty
+ \egroup}
+
+\long\def\resourcecomment#1%
+ {\long\gdef\currentresourcecomment{#1}}
+
+\long\def\startresourcecomment#1\stopresourcecomment
+ {\long\gdef\currentresourcecomment{#1}}
+
+\let\currentresourcecomment\empty
+
+\def\showexternalfigures % maybe run time command is better, but no core-run, unless figs-run ...
+ {%\writestatus\m!systems{for \string\showexternalfigures\space see \truefilename{x-res-20}.tex}
+ \usemodule[res-20]\showexternalfigures} % so for the moment we do it this way
+
+\def\overlayfigure#1%
+ {\externalfigure[#1][\c!width=\overlaywidth,\c!height=\overlayheight]}
+
+%D Still undocumented! No one uses it I think, better be done with layers.
+
+% when there is need for this i'll reimplement it
+%
+% \newcount\efreference
+% \newdimen\efxsteps
+% \newdimen\efysteps
+%
+% \def\calculateefsteps
+% {\ifnum0\@@exxmax=\zerocount
+% \ifnum0\@@exymax=\zerocount
+% \def\@@exymax{24}%
+% \fi
+% \efysteps\figureheight \divide\efysteps \@@exymax
+% \efxsteps\efysteps
+% \dimen0=\figurewidth
+% \advance\dimen0 \efysteps
+% \divide \dimen0 \efysteps
+% \edef\@@exxmax{\number\dimen0}%
+% \else
+% \efxsteps\figurewidth \divide\efxsteps \@@exxmax
+% \efysteps\figureheight \divide\efysteps \@@exymax
+% \fi}
+%
+% \def\efcomment#1(#2,#3)#4(#5,#6)% {kader}(x,y)(h,b)[...]{tekst}
+% {\def\complexefdocomment[##1]##2%
+% {\position(#2,#3)%
+% {\setnostrut
+% \framed
+% [\c!width=#5\efxsteps,
+% \c!height=#6\exysteps,
+% \c!offset=\v!none,
+% \c!frame=#1,
+% ##1]%
+% {##2}}}%
+% \complexorsimpleempty\efdocomment}
+%
+% \def\efnocomment(#1,#2)#3(#4,#5)% (x,y)(h,b)[...]{tekst}
+% {\def\complexefdonocomment[##1]##2{}%
+% \complexorsimpleempty\efdonocomment}
+%
+% \def\efdomarker(#1,#2)#3#4% (h,b){kader}{tekst}
+% {\framed
+% [\c!width=#1\efxsteps,
+% \c!height=#2\efysteps,
+% \c!offset=\v!none,
+% \c!frame=#3]%
+% {#4}}
+%
+% \def\effigure#1%
+% {\position(0,0){\getvalue{#1}}}
+%
+% \def\efdoarea(#1,#2)#3#4% (h,b){kader}{tekst}
+% {\bgroup
+% \setnostrut
+% \framed
+% [\c!width=#1\efxsteps,
+% \c!height=#2\efysteps,
+% \c!offset=\!!zeropoint,
+% \c!frame=#3]
+% {#4}%
+% \egroup}
+%
+% \def\efgoto(#1,#2)#3[#4]% (h,b)kader[ref]
+% {\setbox0=\vbox{\efdoarea(#1,#2)#3{}}%
+% \gotobox{\copy0}[#4]}
+%
+% \def\efmark(#1,#2)#3(#4,#5)#6[#7]%
+% {\advance\efreference \plusone
+% \position(#1,#2)
+% {\hbox{\the\efreference}}%
+% \position(#1,#2)
+% {\gotosomeinternal\s!vwb{#7}\realfolio
+% {\efdomarker(#4,#5)\v!on{\thisissomeinternal\s!vwa{#7}}}}}
+%
+% \def\eftext#1(#2,#3)#4(#5,#6)#7[#8]%
+% {\advance\efreference \plusone
+% \hbox
+% {\quad
+% \thisissomeinternal\s!vwb{#8}%
+% \gotosomeinternal \s!vwa{#8}\realfolio
+% {\hbox to 1.5em{\the\efreference\presetgoto\hfill}}%
+% \quad#1 (#2,#3) (#5,#6) [#8]\hfill}%
+% \endgraf}
+%
+% \def\efthisis(#1,#2)#3[#4]%
+% {\efdoarea(#1,#2){#3}{\pagereference[#4]}}
+
+\newbox\colorbarbox
+
+\def\makecolorbar[#1]%
+ {\def\docommand##1%
+ {\color[##1]
+ {\blackrule
+ [\c!width=2em,
+ \c!height=1ex,
+ \c!depth=\!!zeropoint]}%
+ \endgraf}%
+ \global\setbox\colorbarbox\vbox
+ {\forgetall
+ \processcommalist[#1]\docommand}%
+ \global\setbox\colorbarbox\vbox
+ {\hskip2em\box\colorbarbox}%
+ \global\wd\colorbarbox\zeropoint}
+
+\def\placestartfigure[#1][#2][#3]#4\placestopfigure[#5]%
+ {\hbox
+ {\setbox0\hbox
+ {\useexternalfigure[\s!dummy][#2][#3,#5]%
+ \externalfigure[\s!dummy]}%
+ \calculateefsteps
+ \startpositioning
+ \def\referring(##1,##2)##3(##4,##5)##6[##7]%
+ {\position(##1,##2){\efgoto(##4,##5){\@@exframes}[##7]}}%
+ \def\marking(##1,##2)##3(##4,##5)##6[##7]%
+ {\position(##1,##2){\efthisis(##4,##5){\@@exframes}[##7]}}%
+ \def\remark{\efnocomment}%
+ \def\colorbar##1[##2]{}%
+ \position(0,0){\box0}%
+ \linewidth\onepoint
+ \setuppositioning
+ [\c!unit=pt,
+ \c!xscale=\withoutpt\the\efxsteps,
+ \c!yscale=\withoutpt\the\efysteps,
+ \c!factor=1]%
+ \ignorespaces#4%
+ \def\referring(##1,##2)##3(##4,##5)##6[##7]%
+ {}%
+ \let\marking\referring
+ \def\remark{\efcomment\v!no}%
+ \def\colorbar##1[##2]{\makecolorbar[##2]}%
+ \ignorespaces#4%
+ \stoppositioning
+ \box\colorbarbox}}
+
+\def\dodostartfigure[#1][#2][#3]#4\stopfigure
+ {\doifelse\v!test\@@exoption
+ {\teststartfigure[#1][#2][#3]#4\teststopfigure
+ \let\@@exframes\v!on}
+ {\let\@@exframes\v!off}%
+ \setvalue{\??ef\??ef#1}%
+ {\dosingleempty{\placestartfigure[#1][#2][#3]#4\placestopfigure}}%
+ }% no longer \doifundefined{#1}{\setvalue{#1}{\getexternalfigure{#1}}}}
+
+% De onderstaande macro mag niet zondermeer worden aangepast
+% en is afgestemd op gebruik in de handleiding.
+
+\def\teststartfigure[#1][#2][#3]#4\teststopfigure%
+ {\begingroup
+ \setbox0\hbox
+ {\useexternalfigure[\s!dummy][#2][\c!wfactor=\v!max]%
+ \externalfigure[\s!dummy]}%
+ \def\referring{\efmark}%
+ \def\marking{\efmark}%
+ \def\remark{\efcomment\v!yes}%
+ \def\colorbar##1[##2]{}%
+ \efreference\zerocount
+ \setbox0\vbox
+ {\hsize240pt
+ \startpositioning
+ \calculateefsteps
+ \position(0,0)
+ {\box0}%
+ \position(0,0)
+ {\basegrid
+ [\c!nx=\@@exxmax,
+ \c!dx=\withoutpt\the\efxsteps,
+ \c!ny=\@@exymax,
+ \c!dy=\withoutpt\the\efysteps,
+ \c!xstep=1,
+ \c!ystep=1,
+ \c!scale=1,
+ \c!offset=\v!no,
+ \c!unit=pt]}%
+ \setuppositioning
+ [\c!unit=pt,
+ \c!xscale=\withoutpt\the\efxsteps,
+ \c!yscale=\withoutpt\the\efysteps,
+ \c!factor=1]%
+ \linewidth\onepoint
+ \ignorespaces#4\relax
+ \stoppositioning
+ \vfill}%
+ \efreference\zerocount
+ \def\referring{\eftext{$\rightarrow$}}%
+ \def\marking{\eftext{$\leftarrow$}}%
+ \def\remark{\efnocomment}%
+ \def\colorbar##1[##2]{}%
+ \setbox2\vbox
+ {{\tfa\doifelsenothing{#1}{#2}{#1}}
+ \blank
+ \tfxx#4
+ \vfilll}%
+ \ifdim\ht0>\ht2
+ \ht2\ht0
+ \else
+ \ht0\ht2
+ \fi
+ \hbox
+ {\hskip3em
+ \vtop{\vskip12pt\box0\vskip6pt}%
+ \vtop{\vskip12pt\box2\vskip6pt}}%
+ \endgroup}
+
+\def\dodostartfigure[#1][#2][#3]#4\stopfigure
+ {\doifelse\v!test\@@exoption
+ {\teststartfigure[#1][#2][#3]#4\teststopfigure
+ \let\@@exframe\v!on}
+ {\let\@@exframe\v!off}%
+ \setvalue{\??ef\??ef#1}%
+ {\def\next{\placestartfigure[#1][#2][#3]#4\placestopfigure}%
+ \dosingleempty\next}%
+ }% no longer: \doifundefined{#1}{\setvalue{#1}{\getexternalfigure{#1}}}}
+
+\long\def\dostartfigure#1%
+ {\dotripleargument\dodostartfigure#1\stopfigure}
+
+\def\startfigure
+ {\grabuntil{\e!stop\v!figure}\dostartfigure}
+
+%D NEW: used in styledesign manual
+
+% \setbuffer[typeset-b]\endbuffer
+% \setbuffer[typeset-a]\endbuffer
+%
+% todo:
+%
+% \appendtoks \setbuffer[typeset-b]\endbuffer\to \everystarttext
+% \appendtoks \setbuffer[typeset-a]\endbuffer\to \everystarttext
+
+\newcount\noftypesetbuffers
+
+\def\typesetbuffer
+ {\dodoubleempty\dotypesetbuffer}
+
+\def\dotypesetbuffer[#1][#2]% beware: this will mix up the mp graphics
+ {\ifsecondargument
+ \dodotypesetbuffer[#1][#2]%
+ \else\iffirstargument
+ \doifassignmentelse{#1}
+ {\dodotypesetbuffer[\jobname][#1]}%
+ {\dodotypesetbuffer[#1][]}%
+ \else
+ \dodotypesetbuffer[\jobname][]
+ \fi\fi}
+
+\def\dodotypesetbuffer[#1][#2]% beware: this will mix up the mp graphics
+ {\bgroup
+ \global\advance\noftypesetbuffers\plusone
+ \edef\bufferfilename{\jobname-buffer-\the\noftypesetbuffers}%
+ \ctxlua{buffers.save("\bufferfilename.tmp","#1",true)}%
+ \executesystemcommand{context \bufferfilename.tmp}%
+ \externalfigure[\bufferfilename.pdf][#2]%
+ \egroup}
+
+% for me only (manuals and such)
+
+\definesystemvariable{tz}
+
+\def\definetypesetting{\dotripleempty\dodefinetypesetting}
+\def\typesetfile {\dotripleempty\dotypesetfile}
+
+\def\dodefinetypesetting[#1][#2][#3]%
+ {\doifsomething{#1}{\setvalue{\??tz#1}{\dodotypesetfile{#2}{#3}}}}
+
+\def\dotypesetfile[#1][#2][#3]%
+ {\executeifdefined{\??tz#1}\gobbletwoarguments{#2}{#3}}
+
+\def\dodotypesetfile#1#2#3#4% args settings file settings
+ {\doifmode{*\v!first}{\executesystemcommand{texmfstart texexec.pl --batch --pdf #1 #3}}%
+ \doglobal\beforesplitstring#3\at.\to\typesetfilename
+ \externalfigure[\typesetfilename.pdf][#2,#4]}
+
+\setupexternalfigures
+ [\c!option=,
+ \c!object=\v!yes, % we only check for no
+ \c!reset=\v!no,
+ \c!maxwidth=\@@efwidth,
+ \c!maxheight=\@@efheight,
+ \c!bodyfont=\bodyfontsize,
+ \c!directory=,
+ \c!file=\f!utilityfilename.\f!figureextension,
+ \c!radius=.5\bodyfontsize,
+ \c!corner=\v!rectangular,
+ \c!frame=\v!off,
+ \c!background=, % new
+ \c!splitcolor=\s!white,
+ \c!conversion=,
+ \c!prefix=,
+ \c!cache=,
+% \c!grid=,
+ \c!equalwidth=,
+ \c!equalheight=,
+ \c!location={\v!local,\v!global}]
+
+\setupexternalfigures
+ [\c!frames=\v!off,
+ \c!ymax=24,
+ \c!xmax=]
+
+\useexternalfigure
+ [buffer] [\jobname.buffer] [\c!object=\v!no]
+
+\protect \endinput
+
+% alternative for positioning
+
+% \definelayer[figure][width=\overlaywidth,height=\overlayheight]
+% \defineoverlay[figure][{\directsetup{figure}\tightlayer[figure]}]
+
+% \setupcolors[state=start]
+
+% \starttext
+
+% \startsetups figure
+% \setlayerframed[figure][preset=rightbottom,x=.25\layerwidth,y=.25\layerheight]{HERE}
+% \setlayerframed[figure][preset=leftbottom, x=.15\layerwidth,y=.35\layerheight]{THERE}
+% \stopsetups
+
+% \externalfigure[cow][background={foreground,figure},width=4cm,height=8cm]
+
+% \startsetups figure
+% \setlayerframed[figure][preset=righttop,x=.25\layerwidth,y=.25\layerheight]{MORE}
+% \setlayerframed[figure][preset=middle,foregroundcolor=green]{EVEN MORE}
+% \stopsetups
+
+% \externalfigure[cow][background={foreground,figure},width=14cm,height=2cm]
+
+% \defineexternalfigure[whatever][background={foreground,figure}]
+
+% \startsetups figure
+% \setlayerframed[figure][preset=righttop,x=.25\layerwidth,y=.25\layerheight]{\red MORE}
+% \setlayerframed[figure][preset=middle,foregroundcolor=green]{EVEN MORE}
+% \stopsetups
+
+% \externalfigure[cow][whatever][width=14cm,height=4cm]
+
+% \stoptext
+
diff --git a/Master/texmf-dist/tex/context/base/grph-inc.lua b/Master/texmf-dist/tex/context/base/grph-inc.lua
new file mode 100644
index 00000000000..3dfcee739ff
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/grph-inc.lua
@@ -0,0 +1,883 @@
+if not modules then modules = { } end modules ['grph-inc'] = {
+ version = 1.001,
+ comment = "companion to grph-inc.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- lowercase types
+-- mps tex tmp svg
+-- partly qualified
+-- dimensions
+-- consult rlx
+
+--[[
+The ConTeXt figure inclusion mechanisms are among the oldest code
+in ConTeXt and evolve dinto a complex whole. One reason is that we
+deal with backend in an abstract way. What complicates matters is
+that we deal with internal graphics as well: TeX code, MetaPost code,
+etc. Later on figure databases were introduced, which resulted in
+a plug in model for locating images. On top of that runs a conversion
+mechanism (with caching) and resource logging.
+
+Porting that to Lua is not that trivial because quite some
+status information is kept between al these stages. Of course, image
+reuse also has some price, and so I decided to implement the graphics
+inclusion in several layers: detection, loading, inclusion, etc.
+
+Object sharing and scaling can happen at each stage, depending on the
+way the resource is dealt with.
+
+The TeX-Lua mix is suboptimal. This has to do with the fact that we cannot
+run TeX code from within Lua. Some more functionality will move to Lua.
+]]--
+
+local texsprint, format, lower, find, match = tex.sprint, string.format, string.lower, string.find, string.match
+
+local ctxcatcodes = tex.ctxcatcodes
+local variables = interfaces.variables
+
+local trace_figures = false trackers.register("figures.locating",function(v) trace_figures = v end)
+
+--- some extra img functions ---
+
+local imgkeys = img.keys()
+
+function img.totable(imgtable)
+ local result = { }
+ for k=1,#imgkeys do
+ local key = imgkeys[k]
+ result[key] = imgtable[key]
+ end
+ return result
+end
+
+function img.serialize(i)
+ return table.serialize(img.totable(i))
+end
+
+function img.clone(i,data)
+ i.width = data.width or i.width
+ i.height = data.height or i.height
+ -- attr etc
+ return i
+end
+
+local validsizes = table.tohash(img.boxes())
+local validtypes = table.tohash(img.types())
+
+function img.check_size(size)
+ if size then
+ size = size:gsub("box","")
+ return (validsizes[size] and size) or "crop"
+ else
+ return "crop"
+ end
+end
+
+---
+
+figures = figures or { }
+figures.loaded = figures.loaded or { }
+figures.used = figures.used or { }
+figures.found = figures.found or { }
+figures.suffixes = figures.suffixes or { }
+figures.patterns = figures.patterns or { }
+figures.boxnumber = figures.boxid or 0
+figures.defaultsearch = true
+figures.defaultwidth = 0
+figures.defaultheight = 0
+figures.defaultdepth = 0
+figures.n = 0
+figures.prefer_quality = true -- quality over location
+
+figures.localpaths = {
+ ".", "..", "../.."
+}
+figures.cachepaths = {
+ prefix = "",
+ path = ".",
+ subpath = ".",
+}
+
+figures.paths = table.copy(figures.localpaths)
+
+figures.order = {
+ "pdf", "mps", "jpg", "png", "jbig", "svg", "eps", "mov", "buffer", "tex"
+}
+
+figures.formats = {
+ ["pdf"] = { list = { "pdf" } },
+ ["mps"] = { patterns = { "mps", "%d+" } },
+ ["jpg"] = { list = { "jpg", "jpeg" } },
+ ["png"] = { list = { "png" } },
+ ["jbig"] = { list = { "jbig", "jbig2", "jb2" } },
+ ["svg"] = { list = { "svg", "svgz" } },
+ ["eps"] = { list = { "eps", "ai" } },
+ ["mov"] = { list = { "mov", "avi" } },
+ ["buffer"] = { list = { "tmp", "buffer", "buf" } },
+ ["tex"] = { list = { "tex" } },
+}
+
+function figures.setlookups()
+ figures.suffixes, figures.patterns = { }, { }
+ for _, format in pairs(figures.order) do
+ local data = figures.formats[format]
+ local fs, fp = figures.suffixes, figures.patterns
+ if data.list then
+ for _, s in ipairs(data.list) do
+ fs[s] = format -- hash
+ end
+ else
+ fs[format] = format
+ end
+ if data.patterns then
+ for _, s in ipairs(data.patterns) do
+ fp[#fp+1] = { s, format } -- array
+ end
+ end
+ end
+end
+
+figures.setlookups()
+
+local function register(tag,target,what)
+ local data = figures.formats[target] -- resolver etc
+ if not data then
+ data = { }
+ figures.formats[target] = data
+ end
+ local d = data[tag] -- list or pattern
+ if d and not table.contains(d,what) then
+ d[#d+1] = what -- suffix or patternspec
+ else
+ data[tag] = { what }
+ end
+ if not table.contains(figures.order,target) then
+ figures.order[#figures.order+1] = target
+ end
+ figures.setlookups()
+end
+
+function figures.registersuffix (suffix, target) register('list', target,suffix ) end
+function figures.registerpattern(pattern,target) register('pattern',target,pattern) end
+
+local last_locationset, last_pathlist = last_locationset or nil, last_pathlist or nil
+
+function figures.setpaths(locationset,pathlist)
+ if last_locationset == locationset and last_pathlist == pathlist then
+ -- this function can be called each graphic so we provide this optimization
+ return
+ end
+ local iv, t, h = interfaces.variables, figures.paths, locationset:tohash()
+ if last_locationset ~= locationset then
+ -- change == reset (actually, a 'reset' would indeed reset
+ if h[iv["local"]] then
+ t = table.fastcopy(figures.localpaths or { })
+ else
+ t = { }
+ end
+ figures.defaultsearch = h[iv["default"]]
+ last_locationset = locationset
+ end
+ if h[iv["global"]] then
+ for s in pathlist:gmatch("([^, ]+)") do
+ if not table.contains(t,s) then
+ t[#t+1] = s
+ end
+ end
+ end
+ figures.paths, last_pathlist = t, pathlist
+ if trace_figures then
+ logs.report("figures","locations: %s",last_locationset)
+ logs.report("figures","path list: %s",table.concat(figures.paths))
+ end
+end
+
+-- check conversions and handle it here
+
+--~ local keys = img.keys()
+
+--~ function figures.hash(data)
+--~ local i = data.status.private
+--~ local t = { }
+--~ for _, v in ipairs(keys) do
+--~ local iv = i[v]
+--~ if iv then
+--~ t[#t+1] = v .. '=' .. iv
+--~ end
+--~ end
+--~ return table.concat(t,"+")
+--~ end
+
+function figures.hash(data)
+ return data.status.hash or tostring(data.status.private) -- the <img object>
+-- return data.status.fullname .. "+".. (data.status.page or data.request.page or 1) -- img is still not perfect
+end
+
+-- interfacing to tex
+
+do
+
+ local figuredata = { }
+ local callstack = { }
+
+ function figures.new()
+ figuredata = {
+ request = {
+ name = false,
+ label = false,
+ format = false,
+ page = false,
+ width = false,
+ height = false,
+ preview = false,
+ ["repeat"] = false,
+ controls = false,
+ display = false,
+ conversion = false,
+ cache = false,
+ prefix = false,
+ size = false,
+ },
+ used = {
+ fullname = false,
+ format = false,
+ name = false,
+ path = false,
+ suffix = false,
+ width = false,
+ height = false,
+ },
+ status = {
+ status = 0,
+ converted = false,
+ cached = false,
+ fullname = false,
+ format = false,
+ },
+ }
+ return figuredata
+ end
+
+ function figures.push(request)
+ statistics.starttiming(figures)
+ local figuredata = figures.new()
+ if request then
+ local iv = interfaces.variables
+ -- request.width/height are strings and are only used when no natural dimensions
+ -- can be determined; at some point the handlers might set them to numbers instead
+--~ local w, h = tonumber(request.width), tonumber(request.height)
+ request.page = math.max(tonumber(request.page) or 1,1)
+ request.size = img.check_size(request.size)
+ request.object = iv[request.object] == variables.yes
+ request["repeat"] = iv[request["repeat"]] == variables.yes
+ request.preview = iv[request.preview] == variables.yes
+ request.cache = request.cache ~= "" and request.cache
+ request.prefix = request.prefix ~= "" and request.prefix
+ request.format = request.format ~= "" and request.format
+--~ request.width = (w and w > 0) or false
+--~ request.height = (h and h > 0) or false
+ table.merge(figuredata.request,request)
+ end
+ callstack[#callstack+1] = figuredata
+ return figuredata
+ end
+ function figures.pop()
+ figuredata = callstack[#callstack]
+ callstack[#callstack] = nil
+ statistics.stoptiming(figures)
+ end
+ -- maybe move texsprint to tex
+ function figures.get(category,tag,default)
+ local value = figuredata[category][tag]
+ if not value or value == "" or value == true then
+ return default or ""
+ else
+ return value
+ end
+ end
+ function figures.tprint(category,tag,default)
+ texsprint(ctxcatcodes,figures.get(category,tag,default))
+ end
+ function figures.current()
+ return callstack[#callstack]
+ end
+
+end
+
+local function register(askedname,specification)
+ if specification then
+ local format = specification.format
+ if format then
+ local converter = figures.converters[format]
+ if converter then
+ local oldname = specification.fullname
+ local newformat = "pdf" -- todo, other target than pdf
+ local newpath = file.dirname(oldname)
+ local newbase = file.replacesuffix(file.basename(oldname),newformat)
+ local fc = specification.cache or figures.cachepaths.path
+ if fc and fc ~= "" and fc ~= "." then
+ newpath = fc
+ end
+ local subpath = specification.subpath or figures.cachepaths.subpath
+ if subpath and subpath ~= "" and subpath ~= "." then
+ newpath = newpath .. "/" .. subpath
+ end
+ local prefix = specification.prefix or figures.cachepaths.prefix
+ if prefix and prefix ~= "" then
+ newbase = prefix .. newbase
+ end
+ local newname = file.join(newpath,newbase)
+ dir.makedirs(newpath)
+ local oldtime = lfs.attributes(oldname,'modification') or 0
+ local newtime = lfs.attributes(newname,'modification') or 0
+ if oldtime > newtime then
+ converter(oldname,newname)
+ end
+ if io.exists(newname) then
+ specification.foundname = oldname
+ specification.fullname = newname
+ specification.prefix = prefix
+ specification.subpath = subpath
+ specification.converted = true
+ format = newformat
+ elseif io.exists(oldname) then
+ specification.fullname = newname
+ specification.converted = false
+ end
+ end
+ end
+ local found = figures.suffixes[format] -- validtypes[format]
+ if not found then
+ specification.found = false
+ if trace_figures then
+ logs.report("figures","format not supported: %s",format)
+ end
+ else
+ specification.found = true
+ if trace_figures then
+ if validtypes[format] then
+ logs.report("figures","format natively supported by backend: %s",format)
+ else
+ logs.report("figures","format supported by output file format: %s",format)
+ end
+ end
+ end
+ else
+ specification = { }
+ end
+ specification.foundname = specification.foundname or specification.fullname
+ figures.found[askedname] = specification
+ return specification
+end
+
+local function locate(request) -- name, format, cache
+ local askedname = resolvers.clean_path(request.name)
+ if figures.found[askedname] then
+ return figures.found[askedname]
+ end
+ local askedpath= file.dirname(askedname)
+ local askedbase = file.basename(askedname)
+ local askedformat = (request.format ~= "" and request.format ~= "unknown" and request.format) or file.extname(askedname) or ""
+ local askedcache = request.cache
+ if askedformat ~= "" then
+ askedformat = lower(askedformat)
+ local format = figures.suffixes[askedformat]
+ if not format then
+ for _, pattern in ipairs(figures.patterns) do
+ if find(askedformat,pattern[1]) then
+ format = pattern[2]
+ break
+ end
+ end
+ end
+ if format then
+ local foundname = figures.exists(askedname,format) -- not askedformat
+ if foundname then
+ return register(askedname, {
+ askedname = askedname,
+ fullname = askedname,
+ format = format,
+ cache = askedcache,
+ foundname = foundname,
+ })
+ end
+ end
+ if askedpath ~= "" then
+ -- path and type given, todo: strip pieces of path
+ if figures.exists(askedname,askedformat) then
+ return register(askedname, {
+ askedname = askedname,
+ fullname = askedname,
+ format = askedformat,
+ cache = askedcache,
+ })
+ end
+ else
+ -- type given
+ for _, path in ipairs(figures.paths) do
+ local check = path .. "/" .. askedname
+ if figures.exists(check,askedformat) then
+ return register(check, {
+ askedname = askedname,
+ fullname = check,
+ format = askedformat,
+ cache = askedcache,
+ })
+ end
+ end
+ if figures.defaultsearch then
+ local check = resolvers.find_file(askedname)
+ if check and check ~= "" then
+ return register(askedname, {
+ askedname = askedname,
+ fullname = check,
+ format = askedformat,
+ cache = askedcache,
+ })
+ end
+ end
+ end
+ elseif askedpath ~= "" then
+ for _, format in ipairs(figures.order) do
+ local list = figures.formats[format].list or { format }
+ for _, suffix in ipairs(list) do
+ local check = file.addsuffix(askedname,suffix)
+ if figures.exists(check,format) then
+ return register(askedname, {
+ askedname = askedname,
+ fullname = check,
+ format = format,
+ cache = askedcache,
+ })
+ end
+ end
+ end
+ else
+ if figures.prefer_quality then
+ for _, format in ipairs(figures.order) do
+ local list = figures.formats[format].list or { format }
+ for _, suffix in ipairs(list) do
+ local name = file.replacesuffix(askedbase,suffix)
+ for _, path in ipairs(figures.paths) do
+ local check = path .. "/" .. name
+ if figures.exists(check,format) then
+ return register(askedname, {
+ askedname = askedname,
+ fullname = check,
+ format = format,
+ cache = askedcache,
+ })
+ end
+ end
+ end
+ end
+ else -- 'location'
+ for _, path in ipairs(figures.paths) do
+ for _, format in ipairs(figures.order) do
+ local list = figures.formats[format].list or { format }
+ for _, suffix in ipairs(list) do
+ local check = path .. "/" .. file.replacesuffix(askedbase,suffix)
+ if figures.exists(check,format) then
+ return register(askedname, {
+ askedname = askedname,
+ fullname = check,
+ format = format,
+ cache = askedcache,
+ })
+ end
+ end
+ end
+ end
+ end
+ if figures.defaultsearch then
+ for _, format in ipairs(figures.order) do
+ local list = figures.formats[format].list or { format }
+ for _, suffix in ipairs(list) do
+ local check = resolvers.find_file(file.replacesuffix(askedname,suffix))
+ if check and check ~= "" then
+ return register(askedname, {
+ askedname = askedname,
+ fullname = check,
+ format = format,
+ cache = askedcache,
+ })
+ end
+ end
+ end
+ end
+ end
+ return register(askedname)
+end
+
+-- -- -- plugins -- -- --
+
+figures.existers = figures.existers or { }
+figures.checkers = figures.checkers or { }
+figures.includers = figures.includers or { }
+figures.converters = figures.converters or { }
+figures.identifiers = figures.identifiers or { }
+
+figures.identifiers.list = {
+ figures.identifiers.default
+}
+
+function figures.identifiers.default(data)
+ local dr, du, ds = data.request, data.used, data.status
+ local l = locate(dr)
+ local foundname = l.foundname
+ local fullname = l.fullname or foundname
+ if fullname then
+ du.format = l.format or false
+ du.fullname = fullname -- can be cached
+ ds.fullname = foundname -- original
+ ds.format = l.format
+ ds.status = (l.found and 10) or 0
+ end
+ return data
+end
+
+function figures.identify(data)
+ data = data or figures.current()
+ for _, identifier in ipairs(figures.identifiers.list) do
+ data = identifier(data)
+ if data.status.status > 0 then
+ break
+ end
+ end
+ return data
+end
+function figures.exists(askedname,format)
+ return (figures.existers[format] or figures.existers.generic)(askedname)
+end
+function figures.check(data)
+ data = data or figures.current()
+ local dr, du, ds = data.request, data.used, data.status
+ return (figures.checkers[ds.format] or figures.checkers.generic)(data)
+end
+function figures.include(data)
+ data = data or figures.current()
+ local dr, du, ds = data.request, data.used, data.status
+ return (figures.includers[ds.format] or figures.includers.generic)(data)
+end
+function figures.scale(data) -- will become lua code
+ texsprint(ctxcatcodes,"\\doscalefigure")
+ return data
+end
+function figures.done(data)
+ figures.n = figures.n + 1
+ data = data or figures.current()
+ local dr, du, ds = data.request, data.used, data.status
+ ds.width = tex.wd[figures.boxnumber]
+ ds.height = tex.ht[figures.boxnumber]
+ ds.xscale = ds.width/(du.width or 1)
+ ds.yscale = ds.height/(du.height or 1)
+ return data
+end
+
+function figures.dummy(data) -- fails
+--~ data = data or figures.current()
+--~ local dr, du, ds = data.request, data.used, data.status
+--~ local r = node.new("rule")
+--~ r.width = du.width or figures.defaultwidth
+--~ r.height = du.height or figures.defaultheight
+--~ r.depth = du.depth or figures.defaultdepth
+--~ tex.box[figures.boxnumber] = node.write(r)
+ texsprint(ctxcatcodes,"\\emptyfoundexternalfigure")
+end
+
+-- -- -- generic -- -- --
+
+function figures.existers.generic(askedname)
+--~ local result = io.exists(askedname)
+--~ result = (result==true and askedname) or result
+--~ local result = resolvers.find_file(askedname) or ""
+ local result = resolvers.findbinfile(askedname) or ""
+ if result == "" then result = false end
+ if trace_figures then
+ if result then
+ logs.report("figures","found: %s -> %s",askedname,result)
+ else
+ logs.report("figures","not found: %s",askedname)
+ end
+ end
+ return result
+end
+function figures.checkers.generic(data)
+ local dr, du, ds = data.request, data.used, data.status
+ local name, page, size, color = du.fullname or "unknown generic", du.page or dr.page, dr.size or "crop", dr.color or "natural"
+ local hash = name .. "->" .. page .. "->" .. size .. "->" .. color
+ local figure = figures.loaded[hash]
+ if figure == nil then
+ figure = img.new { filename = name, page = page, pagebox = dr.size }
+ backends.codeinjections.setfigurecolorspace(data,figure)
+ figure = (figure and img.scan(figure)) or false
+ local f, d = backends.codeinjections.setfigurealternative(data,figure)
+ figure, data = f or figure, d or data
+ figures.loaded[hash] = figure
+ end
+ if figure then
+ du.width = figure.width
+ du.height = figure.height
+ du.pages = figure.pages
+ ds.private = figure
+ ds.hash = hash
+ end
+ return data
+end
+function figures.includers.generic(data)
+ local dr, du, ds = data.request, data.used, data.status
+ -- here we set the 'natural dimensions'
+ dr.width = du.width
+ dr.height = du.height
+ local hash = figures.hash(data)
+ local figure = figures.used[hash]
+ if figure == nil then
+ figure = ds.private
+ if figure then
+ figure = img.copy(figure)
+ figure = (figure and img.clone(figure,data.request)) or false
+ end
+ figures.used[hash] = figure
+ end
+ if figure then
+ local n = figures.boxnumber
+ tex.box[n] = img.node(figure) -- img.write(figure)
+ tex.wd[n], tex.ht[n], tex.dp[n] = figure.width, figure.height, 0 -- new, hm, tricky, we need to do that in tex (yet)
+ ds.objectnumber = figure.objnum
+ texsprint(ctxcatcodes,"\\relocateexternalfigure")
+ end
+ return data
+end
+
+-- -- -- nongeneric -- -- --
+
+function figures.checkers.nongeneric(data,command)
+ local dr, du, ds = data.request, data.used, data.status
+ local name = du.fullname or "unknown nongeneric"
+ local hash = name
+ if dr.object then
+ -- hm, bugged
+ if not jobobjects.get("FIG::"..hash) then
+ texsprint(ctxcatcodes,command)
+ texsprint(ctxcatcodes,format("\\setobject{FIG}{%s}\\vbox{\\box\\foundexternalfigure}",hash))
+ end
+ texsprint(ctxcatcodes,format("\\global\\setbox\\foundexternalfigure\\vbox{\\getobject{FIG}{%s}}",hash))
+ else
+ texsprint(ctxcatcodes,command)
+ end
+ return data
+end
+function figures.includers.nongeneric(data)
+ return data
+end
+
+-- -- -- mov -- -- --
+
+function figures.checkers.mov(data)
+ local dr, du, ds = data.request, data.used, data.status
+ dr.width = (dr.width or figures.defaultwidth):todimen()
+ dr.height = (dr.height or figures.defaultheight):todimen()
+ du.width = dr.width
+ du.height = dr.height
+ du.foundname = du.fullname
+ local code = backends.codeinjections.insertmovie {
+ width = du.width or dr.width,
+ height = du.height or dr.height,
+ factor = number.dimenfactors.bp,
+ ["repeat"] = dr["repeat"],
+ controls = dr.controls,
+ preview = dr.preview,
+ label = dr.label,
+ foundname = du.foundname,
+ }
+ texsprint(ctxcatcodes,format("\\startfoundexternalfigure{%ssp}{%ssp}%s\\stopfoundexternalfigure",du.width,du.height,code))
+ return data
+end
+
+figures.includers.mov = figures.includers.nongeneric
+
+-- -- -- mps -- -- --
+
+local function internal(askedname)
+ local spec, mprun, mpnum = match(lower(askedname),"mprun(:?)(.-)%.(%d+)")
+ if spec == ":" then
+ return mprun, mpnum
+ else
+ return "", mpnum
+ end
+end
+
+function figures.existers.mps(askedname)
+ local mprun, mpnum = internal(askedname)
+ if mpnum then
+ return askedname
+ else
+ return figures.existers.generic(askedname)
+ end
+end
+function figures.checkers.mps(data)
+ local mprun, mpnum = internal(data.used.fullname)
+ if mpnum then
+ return figures.checkers.nongeneric(data,format("\\docheckfiguremprun{%s}{%s}",mprun,mpnum))
+ else
+ return figures.checkers.nongeneric(data,format("\\docheckfiguremps{%s}",data.used.fullname))
+ end
+end
+figures.includers.mps = figures.includers.nongeneric
+
+-- -- -- buffer -- -- --
+
+function figures.existers.buffer(askedname)
+ askedname = file.nameonly(askedname)
+ return buffers.exists(askedname) and askedname
+end
+function figures.checkers.buffer(data)
+ return figures.checkers.nongeneric(data,format("\\docheckfigurebuffer{%s}", file.nameonly(data.used.fullname)))
+end
+figures.includers.buffers = figures.includers.nongeneric
+
+-- -- -- tex -- -- --
+
+function figures.existers.tex(askedname)
+ askedname = resolvers.find_file(askedname)
+ return (askedname ~= "" and askedname) or false
+end
+function figures.checkers.tex(data)
+ return figures.checkers.nongeneric(data,format("\\docheckfiguretex{%s}", data.used.fullname))
+end
+figures.includers.tex = figures.includers.nongeneric
+
+-- -- -- eps -- -- --
+
+function figures.converters.eps(oldname,newname)
+ -- hack, we need a lua based converter script, or better, we should use
+ -- rlx as alternative
+ local outputpath = file.dirname(newname)
+ local outputbase = file.basename(newname)
+ local command = format("mtxrun bin:pstopdf --outputpath=%s %s",outputpath,oldname)
+ os.spawn(command)
+end
+
+figures.converters.svg = figures.converters.eps
+
+-- -- -- lowres -- -- --
+
+--~ function figures.converters.pdf(oldname,newname)
+--~ local outputpath = file.dirname(newname)
+--~ local outputbase = file.basename(newname)
+--~ local command = format("mtxrun bin:pstopdf --method=4 --outputpath=%s %s",outputpath,oldname)
+--~ os.spawn(command)
+--~ end
+
+figures.bases = { }
+figures.bases.list = { } -- index => { basename, fullname, xmlroot }
+figures.bases.used = { } -- [basename] => { basename, fullname, xmlroot } -- pointer to list
+figures.bases.found = { }
+figures.bases.enabled = false
+
+local bases = figures.bases
+
+function bases.use(basename)
+ if basename == "reset" then
+ bases.list = { }
+ bases.used = { }
+ bases.found = { }
+ bases.enabled = false
+ else
+ basename = file.addsuffix(basename,"xml")
+ if not bases.used[basename] then
+ local t = { basename, nil, nil }
+ bases.used[basename] = t
+ bases.list[#bases.list+1] = t
+ if not bases.enabled then
+ bases.enabled = true
+ xml.registerns("rlx","http://www.pragma-ade.com/schemas/rlx") -- we should be able to do this per xml file
+ end
+ end
+ end
+end
+
+function bases.find(basename,askedlabel)
+ basename = file.addsuffix(basename,"xml")
+ local t = bases.found[askedlabel]
+ if t == nil then
+ local base = bases.used[basename]
+ local page = 0
+ if base[2] == nil then
+ -- no yet located
+ for _, path in ipairs(figures.paths) do
+ local xmlfile = path .. "/" .. basename
+ if io.exists(xmlfile) then
+ base[2] = xmlfile
+ base[3] = xml.load(xmlfile)
+ break
+ end
+ end
+ end
+ t = false
+ if base[2] and base[3] then -- rlx:library
+ for e, d, k in xml.elements(base[3],"/(*:library|figurelibrary)/*:figure/*:label") do
+ page = page + 1
+ if xml.content(d[k]) == askedlabel then
+ t = {
+ base = file.replacesuffix(base[2],"pdf"),
+ format = "pdf",
+ name = xml.filters.text(e,"*:file"),
+ page = page,
+ }
+ bases.found[askedlabel] = t
+ return t
+ end
+ end
+ end
+ end
+ return t
+end
+
+-- we can access sequential or by name
+
+function bases.locate(askedlabel)
+ for _, entry in ipairs(bases.list) do
+ local t = bases.find(entry[1],askedlabel)
+ if t then
+ return t
+ end
+ end
+ return false
+end
+
+function figures.identifiers.base(data)
+ if bases.enabled then
+ local dr, du, ds = data.request, data.used, data.status
+ local fbl = bases.locate(dr.name or dr.label)
+ if fbl then
+ du.page = fbl.page
+ du.format = fbl.format
+ du.fullname = fbl.base
+ ds.fullname = fbl.name
+ ds.format = fbl.format
+ ds.page = fbl.page
+ ds.status = 10
+ end
+ end
+ return data
+end
+
+figures.identifiers.list = {
+ figures.identifiers.base,
+ figures.identifiers.default
+}
+
+-- tracing
+
+statistics.register("graphics processing time", function()
+ local n = figures.n
+ if n > 0 then
+ return format("%s seconds including tex, n=%s", statistics.elapsedtime(figures),n)
+ else
+ return nil
+ end
+end)
diff --git a/Master/texmf-dist/tex/context/base/core-inc.mkii b/Master/texmf-dist/tex/context/base/grph-inc.mkii
index fe3894d57d5..dde7ab2e60f 100644
--- a/Master/texmf-dist/tex/context/base/core-inc.mkii
+++ b/Master/texmf-dist/tex/context/base/grph-inc.mkii
@@ -1,7 +1,7 @@
%D \module
-%D [ file=core-inc, % moved from core-fig
+%D [ file=grph-inc, % moved from core-fig
%D version=2006.08.26, % overhaul of 1997.03.31
-%D title=\CONTEXT\ Core Macros,
+%D title=\CONTEXT\ Graphic Macros,
%D subtitle=Figure Inclusion,
%D author=Hans Hagen,
%D date=\currentdate,
@@ -11,6 +11,8 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+\writestatus{loading}{ConTeXt Graphic Macros / Figure Inclusion}
+
% todo: directory : system -> \allinputpaths (so that we can \usesubpath)
%D This is a reimplementation of the original module, which
@@ -30,83 +32,6 @@
\unprotect
-\startmessages dutch library: figures
- title: figuren
- 1: figuur -- is niet te vinden
- 2: figuur -- wordt niet preset
- 3: maten van -- worden extern vastgesteld
- 4: maten van -- geladen uit figuurfile zelf
- 5: maten van -- zijn onbekend
- 6: maten van -- berekend door rlxtools
- 8: figuurobject -- wordt opnieuw gebruikt
-\stopmessages
-
-\startmessages english library: figures
- title: figures
- 1: figure -- can not be found
- 2: figure -- is not preset
- 3: dimensions of -- are determined externally
- 4: dimensions of -- loaded from figurefile itself
- 5: dimensions of -- are unknown
- 6: dimensions of -- calculated by rlxtools
- 8: figureobject -- is reused
-\stopmessages
-
-\startmessages german library: figures
- title: Abbildungen
- 1: Abbildung -- kann nicht gefunden werden
- 2: Abbildung -- wird nicht erstellt
- 3: dimensions of -- are determined externally
- 4: Dimensionen von -- geladen aus der Abbildungsdatei selbst
- 5: Dimensions of -- are unknown
- 6: Dimensionen von -- ausgerechnet durch rlxtools
- 8: Abbildungobjekt -- wurde wiederverwandt
-\stopmessages
-
-\startmessages czech library: figures
- title: obrazy
- 1: obraz -- nelze nalezt
- 2: obraz -- nepritomen
- 3: dimensions of -- are determined externally
- 4: dimenze obrazu -- nacteny primo z jeho souboru
- 5: dimensions of -- are unknown
- 6: dimenze obrazu -- spocteny programem rlxtools
- 8: obrazovy objekt -- je znovu pouzit
-\stopmessages
-
-\startmessages italian library: figures
- title: figure
- 1: figura -- non trovata
- 2: la figura -- non è preimpostata
- 3: dimensions of -- are determined externally
- 4: dimensioni di -- caricate dal file di immagini stesso
- 5: dimensions of -- are unknown
- 6: dimensioni di -- calcolate da rlxtools
- 8: oggetto-figura -- riutilizzato
-\stopmessages
-
-\startmessages romanian library: figures
- title: figuri
- 1: figura -- nu poate fi gasita
- 2: figura -- nu este presetata
- 3: dimensions of -- are determined externally
- 4: dimensiunea figurii -- se incarca din fisierul insusi
- 5: dimensions of -- are unknown
- 6: dimensiunea figurii -- este calculata de rlxtools
- 8: obiectul figura -- este refolosit
-\stopmessages
-
-\startmessages french library: figures
- title: figures
- 1: la figure -- ne peut être trouvée
- 2: la figure -- n'est pas pré-sélectionnée
- 3: dimensions of -- are determined externally
- 4: les dimensions de -- chargées implicitement à partir du fichier de figure
- 5: dimensions of -- are unknown
- 6: les dimensions de -- calculées par rlxtools
- 8: figureobject -- est réutilisé
-\stopmessages
-
%D Due to the mere fact that \DVI|/|\PDF\ drivers differ in their
%D needs for figure dimensions, we have to provide the width,
%D height, horizontal and vertical scale. Also we want to
@@ -686,6 +611,7 @@
\doshowfigurestate{state : figure not found (\expandedfigurename)}%
\global\setbox\foundexternalfigure\naturalvbox
{\doscalebox\??ef{\blackrule[\c!width=\naturalfigurewidth,\c!height=\naturalfigureheight]}}%
+ \xdef\noffigurepages{0}%
\or
\doshowfiguremessage8\expandedfigurename
\doshowfigurestate{state : reusing existing figure}%
@@ -827,8 +753,8 @@
\def\insertscaledfiguredriverdata
{\insertfiguredriverdata\finalscaleboxwidth\finalscaleboxheight}
-\ifx\externalfigurereplacement\undefined\let\externalfigurereplacement\gobblethrearguments\fi
-\ifx\externalfigureplaceholder\undefined\let\externalfigureplaceholder\gobblethrearguments\fi
+\ifx\externalfigurereplacement\undefined\let\externalfigurereplacement\gobblethreearguments\fi
+\ifx\externalfigureplaceholder\undefined\let\externalfigureplaceholder\gobblethreearguments\fi
\def\registerexternalfigure % no placement, handy for preprocessing
{\dotripleempty\doregisterexternalfigure}
@@ -971,8 +897,8 @@
\doresetobjects}
\def\doiffigureelse#1%
- {\getfiguredimensions[#1]%
- \ifcase\figurewidth
+ {\getfiguredimensions[#1]% so data is available !
+ \ifdim\analyzedfigurewidth=\zeropoint % todo: \figurestatus
\expandafter\secondoftwoarguments
\else
\expandafter\firstoftwoarguments
@@ -1134,42 +1060,6 @@
\expanded{\doifinset{\v!default}{\@@exlocation}}
{\appendtocommalist\defaultfigurepathsignal\figurepathlist}}
-% \def\analyzefigurefilename#1#2%
-% {\sanitizefilename#1\to\expandedfigurename
-% \expanded{\checkfilename{\expandedfigurename}}%
-% \ifcase\kindoffile
-% \splitfigurefilename
-% \ifcase\splitoffkind
-% \let\wantedfigurepath\empty % no . either
-% \setfigurepathlist
-% \setfalse\figurefileisqualified
-% \else
-% \splitfigurefilename
-% \let\figurepathlist\wantedfigurepath
-% \let\wantedfigurepath\empty
-% \settrue\figurefileisqualified
-% \fi
-% \else % fully qualified
-% \splitfigurefilename
-% \let\figurepathlist\wantedfigurepath
-% \let\wantedfigurepath\empty
-% \settrue\figurefileisqualified
-% \fi
-% \ifx\figurepathlist\empty
-% \let\figurepathlist\defaultfigurepathsignal % will prepend no path
-% \fi
-% \doifelsenothing\wantedfiguretype
-% {\doifparentfileelse\wantedfigurename
-% {\@EA\removefromcommalist\@EA{\jobsuffix }\wantedfiguretypelist
-% \@EA\removefromcommalist\@EA{\jobfilesuffix}\wantedfiguretypelist}
-% {}}
-% {\let\wantedfiguretypelist\empty
-% \let\wantedfiguretypespec\wantedfiguretype}%
-% \edef\wantedfigurelabel{#2}%
-% \doshowfigurestate{type check : \ifx\wantedfiguretypelist\empty forced type \wantedfiguretypespec\else\wantedfiguretypelist\fi}%
-% \doshowfigurestate{file specs : \wantedfigurefull\space [\wantedfigurepath] [\wantedfigurename] [\wantedfiguretype]}%
-% \doshowfigurestate{file type : \ifconditional\figurefileisqualified qualified\else simple\fi}}
-
% The combined path and qualified path hack is dedicated to Onno Tomson,
% our partner in fighting inconsistent and faulty image specifications in
% user files.
@@ -1323,4 +1213,28 @@
\setanalyzedfiguredimensions\plustwo
\fi}
+%D This is \MKII\ only and comes from cont-new (maybe used in a project).
+
+% maybe to be integrated (option=...)
+
+\def\directexternalfigure
+ {\dodoubleempty\dodirectexternalfigure}
+
+\def\dodirectexternalfigure[#1][#2]%
+ {\bgroup
+ \getparameters[\??ef][\c!type=\splitofftype,\c!page=1,#2]%
+ \sanitizefilename#1\to\expandedfigurename
+ \splitfilename\expandedfigurename
+ \let\@@DriverImageWidth \!!zeropoint
+ \let\@@DriverImageHeight \!!zeropoint
+ \let\@@DriverImageFile \splitofffull
+ \let\@@DriverImageType \@@eftype
+ \let\@@DriverImageMethod \@@eftype
+ \let\@@DriverImageLabel \empty
+ \let\@@DriverImagePage \@@efpage
+ \doinsertfile
+ \egroup}
+
+% \directexternalfigure[cow.pdf]
+
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-inc.mkiv b/Master/texmf-dist/tex/context/base/grph-inc.mkiv
index 24a78e65750..c8c0e36b74b 100644
--- a/Master/texmf-dist/tex/context/base/core-inc.mkiv
+++ b/Master/texmf-dist/tex/context/base/grph-inc.mkiv
@@ -1,7 +1,7 @@
%D \module
-%D [ file=core-inc, % moved from core-fig
+%D [ file=grph-inc, % moved from core-fig
%D version=2006.08.26, % overhaul of 1997.03.31
-%D title=\CONTEXT\ Core Macros,
+%D title=\CONTEXT\ Graphic Macros,
%D subtitle=Figure Inclusion,
%D author=Hans Hagen,
%D date=\currentdate,
@@ -11,14 +11,16 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+\writestatus{loading}{ConTeXt Graphic Macros / Figure Inclusion}
+
%D todo:
%D
%D - color conversion
-%D - color separation
%D - alternative images
%D - a few more obscure things
-\registerctxluafile{core-inc}{1.001}
+\registerctxluafile{grph-inc}{1.001}
+\registerctxluafile{grph-u3d}{1.001} % this will change
\unprotect
@@ -30,7 +32,6 @@
\newtoks \everyexternalfigureresets
\newtoks \everyexternalfigurechecks
\newtoks \externalfigurepostprocessors
-\chardef \splitexternalfigure \zerocount % 0 nosplit 1 split/yes 2 split/no
\let\traceexternalfigures \traceexternalfigurestrue
@@ -150,6 +151,8 @@
\let\@@efpreview \v!no
\let\@@efrepeat \v!no
%
+ \let\@@efforegroundcolor\empty
+ %
\let\@@efhfactor \empty
\let\@@efwfactor \empty
\let\@@effactor \empty
@@ -165,6 +168,8 @@
\let\@@eflines \empty
\let\@@efgrid \empty}
+\resetfigureusersettings
+
\appendtoks
\resetfigureusersettings
\to \everyexternalfigureresets
@@ -176,26 +181,13 @@
\doif\@@exoption\v!empty
{\skipexternalfigurestrue
\let\@@efframe\v!off}%
- % seperation, seldom used
- \doifseparatingcolorselse
- {\let\@@efforegroundcolor\empty
- \doifelsenothing\@@efsplit
- {\chardef\splitexternalfigure\zerocount}
- {\doifcolorchannelelse\@@efsplit
- {\let\@@efobject\v!no % why?
- \chardef\splitexternalfigure\plusone}
- {\chardef\splitexternalfigure\plustwo}}}
- {\chardef\splitexternalfigure\zerocount}%
+ \doifsomething\@@efwidth {\doifdimensionelse\@@efwidth {\edef\@@efwidth {\the\dimexpr\@@efwidth }}\donothing}%
+ \doifsomething\@@efheight{\doifdimensionelse\@@efheight{\edef\@@efheight{\the\dimexpr\@@efheight}}\donothing}%
% fake color in gray bitmaps, assumes that
% a transparent color is used
\doifsomething\@@efforegroundcolor
{\def\@@efbackground{\v!foreground,\v!color}%
- \def\@@efbackgroundcolor{\@@efforegroundcolor}}%
- \doifsomething\@@efcolor
- {\doifcolorelse\@@efcolor
- {\checkpredefinedcolor[\@@efcolor]%
- \doregisterfigurecolor\@@efcolor}}%
- \donothing}
+ \def\@@efbackgroundcolor{\@@efforegroundcolor}}}
\appendtoks
\checkfigureusersettings
@@ -212,9 +204,10 @@
\def\doprocessmpslikefigure#1% retrofit into mkii
{\global\setbox\foundexternalfigure\vbox{\convertMPtoPDF{#1}11}}
-\def\docheckfigurebuffer#1{\doprocesstexlikefigure{\getbuffer[#1]}}
-\def\docheckfiguretex #1{\doprocesstexlikefigure{\input#1\relax}}
-\def\docheckfiguremps #1{\doprocessmpslikefigure{#1}}
+\def\docheckfigurebuffer #1{\doprocesstexlikefigure{\getbuffer[#1]}}
+\def\docheckfiguretex #1{\doprocesstexlikefigure{\input#1\relax}}
+\def\docheckfiguremps #1{\doprocessmpslikefigure{#1}}
+\def\docheckfiguremprun #1#2{\doprocesstexlikefigure{\useMPrun{#1}{#2}}}
\def\doscalefigure
{\global\setbox\foundexternalfigure\vbox{\doscalebox\??ef{\dowithfigure{\box\foundexternalfigure}}}}
@@ -228,6 +221,9 @@
\resetfigurevariables
\dosetefparameters{#4}{#5}{#6}%
\checkfigurevariables
+% \begingroup
+% \color[\@@efcolor]{\xdef\globcolorattr{\internalspotcolorname}}
+% \endgroup
\ctxlua{figures.push {
name="#3",
label="#2", % todo: \@eflabel
@@ -241,6 +237,7 @@
controls="\@@efcontrols",
preview="\@@efpreview",
display="\@@efdisplay",
+ color="\internalspotcolorparent\@@efcolor", % hack is needed
["repeat"]="\@@efrepeat",
width="\@@efwidth", % can be crap
height="\@@efheight", % can be crap
@@ -273,11 +270,11 @@
\egroup
\egroup}
-\def\signalexternalfigure
+\def\signalexternalfigure % global
{\ifcase\figurestatus
- \resetsystemmode\v!figure % todo, also: \v!resource
+ \global\resetsystemmode\v!figure % todo, also: \v!resource
\else
- \setsystemmode \v!figure % todo, also: \v!resource
+ \global\setsystemmode \v!figure % todo, also: \v!resource
\fi}
\def\startfoundexternalfigure#1#2%
@@ -302,10 +299,10 @@
\fakebox\foundexternalfigure
\else\ifcase\figurestatus
% nothing
- \else\ifnum\splitexternalfigure=\plustwo\else
+ \else
\the\externalfigurepostprocessors
\box\foundexternalfigure
- \fi\fi\fi
+ \fi\fi
\else
\iftrialtypesetting \else \feedbackexternalfigure \fi
\settrue\externalfigurelevel
@@ -317,8 +314,6 @@
\fi
\else\ifcase\figurestatus
\externalfigurereplacement\figurelabel\figurefileoriginal{unknown}%
- \else\ifnum\splitexternalfigure=\plustwo
- \backgroundline[\@@efsplitcolor]{\fakebox\foundexternalfigure}%
\else
\the\externalfigurepostprocessors
\doifelse\@@efreset\v!yes
@@ -331,60 +326,34 @@
[\c!offset=\v!overlay,
\c!width=\figurewidth,
\c!height=\figureheight]
- {\vfilll
- \ifnum\splitexternalfigure=\plusone
- % hm, eigenlijk in dit geval achtergrondkleur
- \hidesplitcolorfalse % really needed
- \backgroundline[\@@efsplitcolor]{\box\foundexternalfigure}%
- \else % = 0, no split mode
- \box\foundexternalfigure
- \fi}}%
- \fi\fi\fi
+ {\vfilll\box\foundexternalfigure}}%
+ \fi\fi
\fi
\else
% maybe also \the\externalfigurepostprocessors
\iftrialtypesetting \else \feedbackexternalfigure \fi
\fi}}
-\ifx\externalfigurereplacement\undefined\let\externalfigurereplacement\gobblethrearguments\fi
-\ifx\externalfigureplaceholder\undefined\let\externalfigureplaceholder\gobblethrearguments\fi
+\ifx\externalfigurereplacement\undefined\let\externalfigurereplacement\gobblethreearguments\fi
+\ifx\externalfigureplaceholder\undefined\let\externalfigureplaceholder\gobblethreearguments\fi
\let\feedbackexternalfigure\relax % \gobblefourarguments
\let\dowithfigure \relax
-% \let\lastfigureobjectname\empty
-
-\def\calculateexternalscreenfigure[#1][#2][#3][#4][#5][#6]%
- {\ifx\@@efdisplay\empty\else
-% \doifnot\@@efobject\v!no
-% {\doifobjectssupportedelse
-% {\doifspecialavailableelse\doregisterfigure
-% {\doshowfigurestate{screen alternative : start}%
-% \bgroup
-% \dosetefparameters{#4}{#5}{#6}%
-% \doregisterfigure{FIG}{\lastfigureobjectname}%
-% \let\@@ef@@scherm\@@efdisplay
-% \calculateexternalfigure[#1][\@@ef@@scherm][\@@ef@@scherm][#4,\c!display=][#5][#6]%
-% \doshowfigurestate{screen alternative : stop}%
-% \egroup}
-% {}}
-% {}}%
- \fi}
-
\def\getfiguredimensions
{\dodoubleempty\dogetfiguredimensions}
\def\dogetfiguredimensions[#1][#2]%
{\startnointerference
- \testexternalfigureonly
+ \settrue\testexternalfigureonly
\externalfigure[#1][#2,\c!display=,\c!object=\v!no]%
\stopnointerference}
\let\getfiguredimensionsonly\getfiguredimensions
\def\doiffigureelse#1%
- {\getfiguredimensions[#1]%
- \ifcase\figurewidth % todo: \figurestatus
+ {\getfiguredimensions[#1]% so data is available !
+ \ifdim\figurewidth=\zeropoint % todo: \figurestatus
\expandafter\secondoftwoarguments
\else
\expandafter\firstoftwoarguments
@@ -407,3 +376,49 @@
{\ctxlua{figures.bases.use("#1")}}
\protect \endinput
+
+% \startbuffer
+% \definecolor [blue] [c=1,m=.38,y=0,k=.64]
+% \definecolor [yellow] [c=0,m=.28,y=1,k=.06]
+%
+% \definespotcolor [blue-100] [blue] [p=1]
+% \definespotcolor [yellow-100] [yellow] [p=1]
+%
+% \definemultitonecolor [combicolor] [blue=.12,yellow=.28] [c=.1,m=.1,y=.3,k=.1]
+%
+% \definemultitonecolor [combicolor-b] [blue=1] [c=1,m=.38,y=0,k=.64] % force multitone
+% \definemultitonecolor [combicolor-y] [yellow=1] [c=0,m=.28,y=1,k=.06] % force multitone
+%
+% \useexternalfigure[demo-a][mill.png] [object=no,width=.2\textwidth]
+% \useexternalfigure[demo-b][hacker-bw.jpg][object=no,width=.2\textwidth]
+%
+% \startbaselinecorrection \startcombination[4*1]
+% {\externalfigure[demo-a]} {no color}
+% {\externalfigure[demo-a][color=combicolor]} {indexed duotone}
+% {\externalfigure[demo-a][color=combicolor-b]} {spot color}
+% {\externalfigure[demo-a][color=combicolor-y]} {spot color}
+% \stopcombination \stopbaselinecorrection
+%
+% \startbaselinecorrection \startcombination[4*1]
+% {\externalfigure[demo-b]} {no color}
+% {\externalfigure[demo-b][color=combicolor]} {indexed duotone}
+% {\externalfigure[demo-b][color=combicolor-b]} {spot color}
+% {\externalfigure[demo-b][color=combicolor-y]} {spot color}
+% \stopcombination \stopbaselinecorrection
+%
+% \startbaselinecorrection \startcombination[4*1]
+% {\externalfigure[demo-a]} {no color}
+% {\externalfigure[demo-a][color=combicolor]} {indexed duotone}
+% {\externalfigure[demo-a][color=blue-100]} {spot color}
+% {\externalfigure[demo-a][color=yellow-100]} {spot color}
+% \stopcombination \stopbaselinecorrection
+%
+% \startbaselinecorrection \startcombination[4*1]
+% {\externalfigure[demo-b]} {no color}
+% {\externalfigure[demo-b][color=combicolor]} {indexed duotone}
+% {\externalfigure[demo-b][color=blue-100]} {spot color}
+% {\externalfigure[demo-b][color=yellow-100]} {spot color}
+% \stopcombination \stopbaselinecorrection
+% \stopbuffer
+%
+% \getbuffer \typebuffer
diff --git a/Master/texmf-dist/tex/context/base/core-trf.tex b/Master/texmf-dist/tex/context/base/grph-trf.mkii
index e31f8a33afc..798a9b0b470 100644
--- a/Master/texmf-dist/tex/context/base/core-trf.tex
+++ b/Master/texmf-dist/tex/context/base/grph-trf.mkii
@@ -1,7 +1,7 @@
%D \module
-%D [ file=core-fig,
+%D [ file=grph-fig,
%D version=2006.08.26, % overhaul/split of 1997.03.31 core-fig
-%D title=\CONTEXT\ Core Macros,
+%D title=\CONTEXT\ Graphic Macros,
%D subtitle=Transformations,
%D author=Hans Hagen,
%D date=\currentdate,
@@ -14,7 +14,7 @@
%D It may be that some functionality got lost. If it concerns
%D defined features, let me know and it will be sorted out.
-\writestatus{loading}{Context Core Macros / Transformations}
+\writestatus{loading}{ConTeXt Graphic Macros / Transformations}
\unprotect
@@ -62,6 +62,7 @@
[#1]
[\c!scale=,\c!xscale=,\c!yscale=,\c!width=,\c!height=,\c!lines=,
\c!factor=,\c!hfactor=,\c!wfactor=,\c!grid=,\c!sx=1,\c!sy=1,
+ \c!equalwidth=,\c!equalheight=,
\c!maxwidth=\scaleparameter\c!width,\c!maxheight=\scaleparameter\c!height,
#2]%
\dowithnextbox{\dodoscalenextbox{#1}\egroup}\hbox}
@@ -74,6 +75,9 @@
\def\scaleparameter#1%
{\csname\currentscaletag#1\endcsname}
+\def\setscaleparameter#1#2%
+ {\setvalue{\currentscaletag#1}{#2}}
+
\def\dodoscalenextbox#1%
{\edef\currentscaletag{#1}%
\doif{\scaleparameter\c!depth}\v!no{\setbox\nextbox\hbox{\raise\nextboxdp\box\nextbox}}% new
@@ -82,6 +86,7 @@
\dontcomplain
\doscaleboxcalculations
\doscaleboxindeed
+ \doscaleboxposition
\flushnextbox}
\def\doscaleboxindeed
@@ -176,13 +181,14 @@
\scaleboxscax \plusone % see note * (core-fig)
\scaleboxscay \plusone % see note * (core-fig)
% preparations
+ \setfalse\scaleboxscalingdone
\checkscaleboxsettings
% calculators
% beware, they operate in sequence, and calculate missing dimensions / messy
%setscaleboxbynature % when? needed?
- \setscaleboxbyfactor
- \setscaleboxbyscale
- \setscaleboxbydimension
+ \ifconditional\scaleboxscalingdone\else\setscaleboxbyfactor \fi
+ \ifconditional\scaleboxscalingdone\else\setscaleboxbyscale \fi
+ \ifconditional\scaleboxscalingdone\else\setscaleboxbydimension\fi
% finalizers / to be done (no longer needed this way, clean up)
\convertscaleboxinsertscale\scaleboxhsize\figx\scaleboxscax\scax
\convertscaleboxinsertscale\scaleboxvsize\figy\scaleboxscay\scay
@@ -194,6 +200,14 @@
\xdef\finalscaleboxxscale {\withoutpt\the\dimexpr\scax\points/\plushundred\relax}%
\xdef\finalscaleboxyscale {\withoutpt\the\dimexpr\scay\points/\plushundred\relax}}
+
+\setvalue{\??xy:\c!grid:\v!yes }{\getnoflines \fighei\setevalue{\currentscaletag\c!height}{\the\noflines\lineheight}}
+\setvalue{\??xy:\c!grid:\v!height }{\getrawnoflines\fighei\setevalue{\currentscaletag\c!height}{\the\dimexpr\noflines\lineheight+\strutdepth\relax}}
+\setvalue{\??xy:\c!grid:\v!depth }{\getrawnoflines\fighei\setevalue{\currentscaletag\c!height}{\the\dimexpr\noflines\lineheight-\strutdepth\relax}}
+\setvalue{\??xy:\c!grid:\v!halfline}{\getrawnoflines\fighei\setevalue{\currentscaletag\c!height}{\the\dimexpr\noflines\lineheight+.5\lineheight\relax}}
+\setvalue{\??xy:\c!grid:\v!fit }{\getrawnoflines\fighei\setevalue{\currentscaletag\c!height}{\the\noflines\lineheight}}
+\letvalue{\??xy:\c!grid:\empty }\donothing
+
\def\checkscaleboxsettings
{\doifsomething{\scaleparameter\c!maxwidth }% can be defined in itself
{\setevalue{\currentscaletag\c!maxwidth }{\the\dimexpr\scaleparameter\c!maxwidth \relax}}%
@@ -201,19 +215,7 @@
{\setevalue{\currentscaletag\c!maxheight}{\the\dimexpr\scaleparameter\c!maxheight\relax}}%
\doifsomething{\scaleparameter\c!lines}
{\setevalue{\currentscaletag\c!height}{\the\dimexpr\scaleparameter\c!lines\lineheight\relax}}%
- \doifsomething{\scaleparameter\c!grid}
- {\processaction
- [\scaleparameter\c!grid]
- [ \v!yes=>\getnoflines\fighei
- \setevalue{\currentscaletag\c!height}{\the\noflines\lineheight},
- \v!height=>\getrawnoflines\fighei
- \setevalue{\currentscaletag\c!height}{\the\dimexpr\noflines\lineheight+\strutdepth\relax},
- \v!depth=>\getrawnoflines\fighei
- \setevalue{\currentscaletag\c!height}{\the\dimexpr\noflines\lineheight-\strutdepth\relax},
- \v!halfline=>\getrawnoflines\fighei
- \setevalue{\currentscaletag\c!height}{\the\dimexpr\noflines\lineheight+.5\lineheight\relax},
- \v!fit=>\getrawnoflines\fighei
- \setevalue{\currentscaletag\c!height}{\the\noflines\lineheight}]}}
+ \getvalue{\??xy:\c!grid:\scaleparameter\c!grid}}
\def\setscaleboxbynature % where ! ! ! ! !
{\doifsomething{\scaleparameter\c!width }{\global\scaleboxdimx\scaleparameter\c!width }%
@@ -223,8 +225,13 @@
\doifsomething{\scaleparameter\c!xscale} {\scaleboxscax\scaleparameter\c!xscale}%
\doifsomething{\scaleparameter\c!yscale} {\scaleboxscay\scaleparameter\c!yscale}} % oeps, was x
+% \defineexternalfigure[width-6][factor=auto,maxwidth=\textheight,maxheight=\textwidth]
+% \defineexternalfigure[width-7][factor=auto,maxwidth=\textwidth,maxheight=\textheight]
+% \placefigure{none}{\rotate[frame=on,offset=overlay]{\externalfigure[t:/sources/cow.pdf][width-6]}} \page
+% \placefigure{none}{\framed[frame=on,offset=overlay]{\externalfigure[t:/sources/cow.pdf][width-7]}}
+
\def\setscaleboxbyfactor
- {\doifinsetelse{\scaleparameter\c!factor}{\v!max,\v!fit,\v!broad}
+ {\doifinsetelse{\scaleparameter\c!factor}{\v!max,\v!fit,\v!broad,\v!auto}
{\doapplyscaleboxsize
\ifdim\scaleboxsizex>\scaleboxsizey
\docalculatescaleboxnorm \scaleboxdimx\c!factor\c!maxwidth\hsize\scaleboxhsize
@@ -234,12 +241,12 @@
\docalculatescaleboxscales\scaleboxdimy\scaleboxsizey\scaleboxdimx\scaleboxsizex
\fi
\donetrue}
- {\doifinsetelse{\scaleparameter\c!hfactor}{\v!max,\v!fit,\v!broad}
+ {\doifinsetelse{\scaleparameter\c!hfactor}{\v!max,\v!fit,\v!broad,\v!auto}
{\doapplyscaleboxsize
\docalculatescaleboxnorm \scaleboxdimy\c!hfactor\c!maxheight\scaleboxoutervsize\scaleboxvsize
\docalculatescaleboxscales\scaleboxdimy\scaleboxsizey\scaleboxdimx\scaleboxsizex
\donetrue}
- {\doifinsetelse{\scaleparameter\c!wfactor}{\v!max,\v!fit,\v!broad}
+ {\doifinsetelse{\scaleparameter\c!wfactor}{\v!max,\v!fit,\v!broad,\v!auto}
{\doapplyscaleboxsize
\docalculatescaleboxnorm \scaleboxdimx\c!wfactor\c!maxwidth\hsize\scaleboxhsize
\docalculatescaleboxscales\scaleboxdimx\scaleboxsizex\scaleboxdimy\scaleboxsizey
@@ -249,6 +256,7 @@
\docalculatescaleboxnorm\scaleboxdimx\c!wfactor\c!width \hsize \hsize
\donefalse}}}%
\ifdone
+ \settrue\scaleboxscalingdone
\ifdim\scaleboxdimx>\scaleboxhsize
\global\scaleboxdimy\zeropoint \global\scaleboxdimx\scaleboxhsize
\else\ifdim\scaleboxdimy>\scaleboxvsize
@@ -315,12 +323,13 @@
#3\relax
\fi}}
-\def\docalculatescaleboxnorm#1#2#3#4#5% 2 3 parameters
+\def\docalculatescaleboxnorm#1#2#3#4#5% 2 3 parameters (dodo:speedup)
{\processaction
[\scaleparameter#2]
[ \v!max=>\global#1\dimexpr#4\relax,
\v!fit=>\global#1\dimexpr#5\relax,
\v!broad=>\global#1\dimexpr#5-4\@@exbodyfont\relax,
+ \v!auto=>\doifsomething{\scaleparameter#3}{\global#1\dimexpr\scaleparameter#3\relax},
\s!default=>\doifsomething{\scaleparameter#3}{\global#1\dimexpr\scaleparameter#3\relax},
\s!unknown=>\global#1\dimexpr\scaleparameter#2\dimexpr\@@exbodyfont/10\relax\relax]}
@@ -398,6 +407,22 @@
\fi
\edef#4{\withoutpt\the\scratchdimen}}
+% \startcombination
+% {\externalfigure[cow.pdf] [frame=on,height=3cm,equalwidth=6cm]} {}
+% {\externalfigure[mill.png][frame=on,height=3cm,equalwidth=6cm]} {}
+% \stopcombination
+
+\def\doscaleboxposition
+ {\doifsomething{\scaleparameter\c!equalwidth}
+ {\scratchdimen\scaleparameter\c!equalwidth\relax
+ \ifdim\wd\nextbox<\scratchdimen
+ \setbox\nextbox\hbox to \scratchdimen{\hss\box\nextbox\hss}%
+ \fi}%
+ \doifsomething{\scaleparameter\c!equalheight}
+ {\scratchdimen\scaleparameter\c!equalheight\relax
+ \ifdim\ht\nextbox<\scratchdimen
+ \setbox\nextbox\vbox to \scratchdimen{\vss\box\nextbox\vss}%
+ \fi}}
%D \macros
%D {clip, setupclipping}
diff --git a/Master/texmf-dist/tex/context/base/grph-trf.mkiv b/Master/texmf-dist/tex/context/base/grph-trf.mkiv
new file mode 100644
index 00000000000..798a9b0b470
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/grph-trf.mkiv
@@ -0,0 +1,577 @@
+%D \module
+%D [ file=grph-fig,
+%D version=2006.08.26, % overhaul/split of 1997.03.31 core-fig
+%D title=\CONTEXT\ Graphic Macros,
+%D subtitle=Transformations,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D It may be that some functionality got lost. If it concerns
+%D defined features, let me know and it will be sorted out.
+
+\writestatus{loading}{ConTeXt Graphic Macros / Transformations}
+
+\unprotect
+
+%D Scaling:
+
+\unexpanded\def\scale{\dodoubleempty\doscalenextbox[\??xy]}
+
+% probably too many dimens / the width calculations can go
+% since we may assume scaling is available (was not true
+% long ago which is why we also calculate the width)
+
+\newdimen\scaleboxwidth
+\newdimen\scaleboxheight
+\newdimen\scaleboxdepth
+
+\newdimen\scaleboxsizex
+\newdimen\scaleboxsizey
+\newdimen\scaleboxoffsetx
+\newdimen\scaleboxoffsety
+
+\newdimen\scaleboxhsize
+\newdimen\scaleboxvsize
+
+% global
+
+\newdimen\scaleboxdimx \let\figwid \scaleboxdimx
+\newdimen\scaleboxdimy \let\fighei \scaleboxdimy
+\newcount\scaleboxscax \let\figxsca\scaleboxscax
+\newcount\scaleboxscay \let\figysca\scaleboxscay
+
+\newdimen\scaleboxoutervsize % we cannot manipulate any global vsize !
+
+\let\finalscaleboxxscale \!!plusone
+\let\finalscaleboxyscale \!!plusone
+\let\finalscaleboxwidth \!!zeropoint
+\let\finalscaleboxheight \!!zeropoint
+\let\finalscaleboxxfactor\!!hundred
+\let\finalscaleboxyfactor\!!hundred
+
+\newconditional\scaleboxdone
+
+\def\doscalenextbox[#1][#2]%
+ {\bgroup
+ \getparameters
+ [#1]
+ [\c!scale=,\c!xscale=,\c!yscale=,\c!width=,\c!height=,\c!lines=,
+ \c!factor=,\c!hfactor=,\c!wfactor=,\c!grid=,\c!sx=1,\c!sy=1,
+ \c!equalwidth=,\c!equalheight=,
+ \c!maxwidth=\scaleparameter\c!width,\c!maxheight=\scaleparameter\c!height,
+ #2]%
+ \dowithnextbox{\dodoscalenextbox{#1}\egroup}\hbox}
+
+\def\doscalebox#1%
+ {\bgroup\dowithnextbox{\dodoscalenextbox{#1}\egroup}\hbox}
+
+\let\currentscaletag\??xy
+
+\def\scaleparameter#1%
+ {\csname\currentscaletag#1\endcsname}
+
+\def\setscaleparameter#1#2%
+ {\setvalue{\currentscaletag#1}{#2}}
+
+\def\dodoscalenextbox#1%
+ {\edef\currentscaletag{#1}%
+ \doif{\scaleparameter\c!depth}\v!no{\setbox\nextbox\hbox{\raise\nextboxdp\box\nextbox}}% new
+ \forgetall
+ \dontshowcomposition
+ \dontcomplain
+ \doscaleboxcalculations
+ \doscaleboxindeed
+ \doscaleboxposition
+ \flushnextbox}
+
+\def\doscaleboxindeed
+ {\ifconditional\scaleboxdone
+ \scaleboxwidth \finalscaleboxxscale\nextboxwd
+ \scaleboxheight\finalscaleboxyscale\nextboxht
+ \scaleboxdepth \finalscaleboxyscale\nextboxdp
+ \setbox\nextbox\hbox
+ {\dostartscaling \finalscaleboxxscale \finalscaleboxyscale
+ \smashedbox\nextbox
+ \dostopscaling}%
+ \nextboxwd\scaleboxwidth
+ \nextboxht\scaleboxheight
+ \nextboxdp\scaleboxdepth
+ \fi}
+
+\def\doscaleboxcalculations
+ {\setfalse\scaleboxdone
+ % initial final value
+ \global\let\finalscaleboxxscale \!!plusone
+ \global\let\finalscaleboxyscale \!!plusone
+ \xdef \finalscaleboxwidth {\the\nextboxwd}%
+ \xdef \finalscaleboxheight{\the\nextboxht}%
+ \global\let\finalscaleboxxfactor\!!hundred
+ \global\let\finalscaleboxyfactor\!!hundred
+ \ifdim\nextboxht>\zeropoint \ifdim\nextboxwd>\zeropoint
+ \edef\scaleboxstampa % slow way [can be combined]
+ {\scaleparameter\c!scale \scaleparameter\c!xscale \scaleparameter\c!yscale
+ \scaleparameter\c!factor\scaleparameter\c!wfactor\scaleparameter\c!hfactor
+ \scaleparameter\c!lines \scaleparameter\c!width \scaleparameter\c!height}%
+ \edef\scaleboxstampb % fast way [just sx/sy]
+ {\scaleparameter\c!sx
+ \scaleparameter\c!sy}%
+ \edef\scaleboxstampc
+ {11}%
+ \ifx\scaleboxstampa\empty
+ \ifx\scaleboxstampb\scaleboxstampc
+ % no scaling, but still check; new, gone again
+% wrong: scaled proportionally as side effect
+% \doifsomething{\scaleparameter\c!maxwidth }{\letvalue{\currentscaletag\c!factor}\v!fit}%
+% \doifsomething{\scaleparameter\c!maxheight}{\letvalue{\currentscaletag\c!factor}\v!fit}%
+ \insidefloattrue % trick
+ \dodoscaleboxcalculations
+ \else
+ \dosetscalboxsxsy
+ \nodoscaleboxcalculations
+ \fi
+ \else
+ \ifx\scaleboxstampb\empty
+ % no need to check further
+ \else
+ \dosetscalboxsxsy
+ \fi
+ \dodoscaleboxcalculations
+ \fi
+ \fi \fi}
+
+\def\dosetscalboxsxsy
+ {\ifdim\scaleparameter\c!sx\onepoint=\onepoint\else
+ \setevalue{\currentscaletag\c!width }{\the\dimexpr\scaleparameter\c!sx\wd\nextbox\relax}%
+ \fi
+ \ifdim\scaleparameter\c!sy\onepoint=\onepoint\else
+ \setevalue{\currentscaletag\c!height}{\the\dimexpr\scaleparameter\c!sy\ht\nextbox\relax}%
+ \fi}
+
+\def\doscaleboxrounding#1.#2\relax{#1}
+
+\def\scaleboxrounding#1%
+ {\@EA\@EA\@EA\doscaleboxrounding\@EA\WITHOUTPT\the\dimexpr#1\points*100+32768sp\relax.\relax}
+
+\def\nodoscaleboxcalculations
+ {\settrue\scaleboxdone
+ \xdef\finalscaleboxwidth {\the\dimexpr\scaleparameter\c!sx\wd\nextbox\relax}%
+ \xdef\finalscaleboxheight {\the\dimexpr\scaleparameter\c!sy\ht\nextbox\relax}%
+ \xdef\finalscaleboxxscale {\scaleparameter\c!sx}%
+ \xdef\finalscaleboxyscale {\scaleparameter\c!sy}%
+ \ifx\finalscaleboxxscale\empty\let\finalscaleboxxscale\!!plusone\fi
+ \ifx\finalscaleboxyscale\empty\let\finalscaleboxyscale\!!plusone\fi
+ \xdef\finalscaleboxxfactor{\scaleboxrounding\finalscaleboxxscale}%
+ \xdef\finalscaleboxyfactor{\scaleboxrounding\finalscaleboxyscale}}
+
+\def\dodoscaleboxcalculations
+ {\settrue\scaleboxdone
+ % initial values
+ \scaleboxoffsetx\zeropoint
+ \scaleboxoffsety\zeropoint
+ \scaleboxsizex \nextboxwd
+ \scaleboxsizey \nextboxht % alleen ht wordt geschaald!
+ % final values
+ \global\scaleboxdimx \zeropoint % see note * (core-fig)
+ \global\scaleboxdimy \zeropoint % see note * (core-fig)
+ \scaleboxscax \plusone % see note * (core-fig)
+ \scaleboxscay \plusone % see note * (core-fig)
+ % preparations
+ \setfalse\scaleboxscalingdone
+ \checkscaleboxsettings
+ % calculators
+ % beware, they operate in sequence, and calculate missing dimensions / messy
+ %setscaleboxbynature % when? needed?
+ \ifconditional\scaleboxscalingdone\else\setscaleboxbyfactor \fi
+ \ifconditional\scaleboxscalingdone\else\setscaleboxbyscale \fi
+ \ifconditional\scaleboxscalingdone\else\setscaleboxbydimension\fi
+ % finalizers / to be done (no longer needed this way, clean up)
+ \convertscaleboxinsertscale\scaleboxhsize\figx\scaleboxscax\scax
+ \convertscaleboxinsertscale\scaleboxvsize\figy\scaleboxscay\scay
+ % used in actual scaling
+ \xdef\finalscaleboxwidth {\the\scaleboxdimx}%
+ \xdef\finalscaleboxheight {\the\scaleboxdimy}%
+ \xdef\finalscaleboxxfactor{\the\scaleboxscax}%
+ \xdef\finalscaleboxyfactor{\the\scaleboxscay}%
+ \xdef\finalscaleboxxscale {\withoutpt\the\dimexpr\scax\points/\plushundred\relax}%
+ \xdef\finalscaleboxyscale {\withoutpt\the\dimexpr\scay\points/\plushundred\relax}}
+
+
+\setvalue{\??xy:\c!grid:\v!yes }{\getnoflines \fighei\setevalue{\currentscaletag\c!height}{\the\noflines\lineheight}}
+\setvalue{\??xy:\c!grid:\v!height }{\getrawnoflines\fighei\setevalue{\currentscaletag\c!height}{\the\dimexpr\noflines\lineheight+\strutdepth\relax}}
+\setvalue{\??xy:\c!grid:\v!depth }{\getrawnoflines\fighei\setevalue{\currentscaletag\c!height}{\the\dimexpr\noflines\lineheight-\strutdepth\relax}}
+\setvalue{\??xy:\c!grid:\v!halfline}{\getrawnoflines\fighei\setevalue{\currentscaletag\c!height}{\the\dimexpr\noflines\lineheight+.5\lineheight\relax}}
+\setvalue{\??xy:\c!grid:\v!fit }{\getrawnoflines\fighei\setevalue{\currentscaletag\c!height}{\the\noflines\lineheight}}
+\letvalue{\??xy:\c!grid:\empty }\donothing
+
+\def\checkscaleboxsettings
+ {\doifsomething{\scaleparameter\c!maxwidth }% can be defined in itself
+ {\setevalue{\currentscaletag\c!maxwidth }{\the\dimexpr\scaleparameter\c!maxwidth \relax}}%
+ \doifsomething{\scaleparameter\c!maxheight}% can be defined in itself
+ {\setevalue{\currentscaletag\c!maxheight}{\the\dimexpr\scaleparameter\c!maxheight\relax}}%
+ \doifsomething{\scaleparameter\c!lines}
+ {\setevalue{\currentscaletag\c!height}{\the\dimexpr\scaleparameter\c!lines\lineheight\relax}}%
+ \getvalue{\??xy:\c!grid:\scaleparameter\c!grid}}
+
+\def\setscaleboxbynature % where ! ! ! ! !
+ {\doifsomething{\scaleparameter\c!width }{\global\scaleboxdimx\scaleparameter\c!width }%
+ \doifsomething{\scaleparameter\c!height}{\global\scaleboxdimy\scaleparameter\c!height}%
+ \doifsomething{\scaleparameter\c!scale } {\scaleboxscax\scaleparameter\c!scale
+ \scaleboxscay\scaleparameter\c!scale }%
+ \doifsomething{\scaleparameter\c!xscale} {\scaleboxscax\scaleparameter\c!xscale}%
+ \doifsomething{\scaleparameter\c!yscale} {\scaleboxscay\scaleparameter\c!yscale}} % oeps, was x
+
+% \defineexternalfigure[width-6][factor=auto,maxwidth=\textheight,maxheight=\textwidth]
+% \defineexternalfigure[width-7][factor=auto,maxwidth=\textwidth,maxheight=\textheight]
+% \placefigure{none}{\rotate[frame=on,offset=overlay]{\externalfigure[t:/sources/cow.pdf][width-6]}} \page
+% \placefigure{none}{\framed[frame=on,offset=overlay]{\externalfigure[t:/sources/cow.pdf][width-7]}}
+
+\def\setscaleboxbyfactor
+ {\doifinsetelse{\scaleparameter\c!factor}{\v!max,\v!fit,\v!broad,\v!auto}
+ {\doapplyscaleboxsize
+ \ifdim\scaleboxsizex>\scaleboxsizey
+ \docalculatescaleboxnorm \scaleboxdimx\c!factor\c!maxwidth\hsize\scaleboxhsize
+ \docalculatescaleboxscales\scaleboxdimx\scaleboxsizex\scaleboxdimy\scaleboxsizey
+ \else
+ \docalculatescaleboxnorm \scaleboxdimy\c!factor\c!maxheight\scaleboxoutervsize\scaleboxvsize
+ \docalculatescaleboxscales\scaleboxdimy\scaleboxsizey\scaleboxdimx\scaleboxsizex
+ \fi
+ \donetrue}
+ {\doifinsetelse{\scaleparameter\c!hfactor}{\v!max,\v!fit,\v!broad,\v!auto}
+ {\doapplyscaleboxsize
+ \docalculatescaleboxnorm \scaleboxdimy\c!hfactor\c!maxheight\scaleboxoutervsize\scaleboxvsize
+ \docalculatescaleboxscales\scaleboxdimy\scaleboxsizey\scaleboxdimx\scaleboxsizex
+ \donetrue}
+ {\doifinsetelse{\scaleparameter\c!wfactor}{\v!max,\v!fit,\v!broad,\v!auto}
+ {\doapplyscaleboxsize
+ \docalculatescaleboxnorm \scaleboxdimx\c!wfactor\c!maxwidth\hsize\scaleboxhsize
+ \docalculatescaleboxscales\scaleboxdimx\scaleboxsizex\scaleboxdimy\scaleboxsizey
+ \donetrue}
+ {\docalculatescaleboxnorm\scaleboxdimy\c!factor \c!height \textheight\scaleboxvsize
+ \docalculatescaleboxnorm\scaleboxdimy\c!hfactor\c!height \textheight\scaleboxvsize
+ \docalculatescaleboxnorm\scaleboxdimx\c!wfactor\c!width \hsize \hsize
+ \donefalse}}}%
+ \ifdone
+ \settrue\scaleboxscalingdone
+ \ifdim\scaleboxdimx>\scaleboxhsize
+ \global\scaleboxdimy\zeropoint \global\scaleboxdimx\scaleboxhsize
+ \else\ifdim\scaleboxdimy>\scaleboxvsize
+ \global\scaleboxdimx\zeropoint \global\scaleboxdimy\scaleboxvsize
+ \fi\fi
+ \fi}
+
+\def\setscaleboxbyscale
+ {\doifsomething{\scaleparameter\c!scale\scaleparameter\c!xscale\scaleparameter\c!yscale}
+ {\doapplyscaleboxscale\scaleboxdimx\scaleboxsizex\scaleboxscax\c!xscale
+ \doapplyscaleboxscale\scaleboxdimy\scaleboxsizey\scaleboxscay\c!yscale
+ \global\scaleboxdimx\zeropoint
+ \global\scaleboxdimy\zeropoint
+ \doifelsenothing{\scaleparameter\c!maxwidth}
+ {\doifsomething{\scaleparameter\c!maxheight}
+ {\ifdim\scaleboxsizey>\scaleparameter\c!maxheight\relax
+ \global\scaleboxdimy\scaleparameter\c!maxheight
+ \fi}}
+ {\ifdim\scaleboxsizex>\scaleparameter\c!maxwidth\relax
+ \global\scaleboxdimx\scaleparameter\c!maxwidth
+ \fi}}}
+
+\def\setscaleboxbydimension
+ {\ifdim\scaleboxdimx>\zeropoint
+ \ifdim\scaleboxdimy>\zeropoint
+ \dosetdimensionscaleboxsize
+ {\docalculatescaleboxscale\scaleboxdimy\scaleboxsizey\scaleboxscay
+ \docalculatescaleboxscale\scaleboxdimx\scaleboxsizex\scaleboxscax}%
+ {\docalculatescaleboxscale\scaleboxdimy\scaleboxsizey\scaleboxscay
+ \docalculatescaleboxscale\scaleboxdimx\scaleboxsizex\scaleboxscax}%
+ {\docalculatescaleboxscale\scaleboxdimy\scaleboxsizey\scaleboxscay
+ \docalculatescaleboxscale\scaleboxdimx\scaleboxsizex\scaleboxscax}%
+ \else
+ \dosetdimensionscaleboxsize
+ {\docalculatescaleboxscales\scaleboxdimx\scaleboxsizex\scaleboxdimy\scaleboxsizey}%
+ {\docalculatescaleboxscales\scaleboxdimx\scaleboxsizex\scaleboxdimy\scaleboxsizey}%
+ {\docalculatescaleboxscales\scaleboxdimx\scaleboxsizex\scaleboxdimy\scaleboxsizey}%
+ \fi
+ \else
+ \ifdim\scaleboxdimy>\zeropoint
+ \dosetdimensionscaleboxsize
+ {\docalculatescaleboxscales\scaleboxdimy\scaleboxsizey\scaleboxdimx\scaleboxsizex}%
+ {\docalculatescaleboxscales\scaleboxdimy\scaleboxsizey\scaleboxdimx\scaleboxsizex}%
+ {\docalculatescaleboxscales\scaleboxdimy\scaleboxsizey\scaleboxdimx\scaleboxsizex}%
+ \else
+ \dosetdimensionscaleboxsize
+ {\doapplyscaleboxscale\scaleboxdimx\scaleboxsizex\scaleboxscax\c!xscale
+ \doapplyscaleboxscale\scaleboxdimy\scaleboxsizey\scaleboxscay\c!yscale}%
+ {\docalculatescaleboxscales\scaleboxdimx\scaleboxsizex\scaleboxdimy\scaleboxsizey}%
+ {\docalculatescaleboxscales\scaleboxdimy\scaleboxsizey\scaleboxdimx\scaleboxsizex}%
+ \fi
+ \fi}
+
+\def\dosetdimensionscaleboxsize#1#2#3%
+ {#1\relax
+ \doifsomething{\scaleparameter\c!maxwidth}
+ {\ifdim\scaleboxdimx>\scaleparameter\c!maxwidth\relax
+ \global\scaleboxdimx\scaleparameter\c!maxwidth
+ #2\relax
+ \fi}%
+ \doifsomething{\scaleparameter\c!maxheight}
+ {\ifdim\scaleboxdimy>\scaleparameter\c!maxheight\relax
+ \global\scaleboxdimy\scaleparameter\c!maxheight
+ #3\relax
+ \fi}}
+
+\def\docalculatescaleboxnorm#1#2#3#4#5% 2 3 parameters (dodo:speedup)
+ {\processaction
+ [\scaleparameter#2]
+ [ \v!max=>\global#1\dimexpr#4\relax,
+ \v!fit=>\global#1\dimexpr#5\relax,
+ \v!broad=>\global#1\dimexpr#5-4\@@exbodyfont\relax,
+ \v!auto=>\doifsomething{\scaleparameter#3}{\global#1\dimexpr\scaleparameter#3\relax},
+ \s!default=>\doifsomething{\scaleparameter#3}{\global#1\dimexpr\scaleparameter#3\relax},
+ \s!unknown=>\global#1\dimexpr\scaleparameter#2\dimexpr\@@exbodyfont/10\relax\relax]}
+
+\def\docalculatescaleboxscales#1#2#3#4%
+ {\scratchdimen\dimexpr#1/\dimexpr#2/\plusthousand\relax\relax
+ \scaleboxscax\scratchdimen
+ \scaleboxscay\scratchdimen
+ #3\dimexpr\scaleboxscax\dimexpr#4/\plusthousand\relax\relax}
+
+\def\docalculatescaleboxscale#1#2#3%
+ {#3\dimexpr#1/\dimexpr#2/\plusthousand\relax\relax}
+
+\def\doapplyscaleboxscale#1#2#3#4% $4 = parameter / scale can be empty
+ {\ifcase0\scaleparameter#4\relax
+ \ifcase0\scaleparameter\c!scale\relax
+ #3=\plusthousand
+ \else
+ #3=\scaleparameter\c!scale
+ \fi
+ \else
+ #3=\scaleparameter#4%
+ \fi
+ \relax % important ! still ?
+ \global#1\ifnum#3=\plusthousand#2\else\dimexpr#3\dimexpr#2/\plusthousand\relax\relax\fi
+ \relax}
+
+\def\doapplyscaleboxsize
+ {\doifelsenothing{\scaleparameter\c!maxheight}
+ {\scaleboxoutervsize\textheight
+ \ifinner
+ \scaleboxoutervsize \vsize % \textheight =\vsize
+ \scratchdimen\vsize % \scratchdimen=\textheight
+ \else\ifinsidefloat
+ \scaleboxoutervsize \vsize % \textheight =\vsize
+ \scratchdimen\vsize % \scratchdimen=\textheight
+ \else\ifinpagebody
+ \scaleboxoutervsize \vsize % \textheight =\vsize
+ \scratchdimen\vsize % \scratchdimen=\textheight
+ \else % hm, there should be an option to force this
+ \ifdim\pagegoal<\maxdimen
+ \ifdim\pagetotal<\pagegoal
+ \scratchdimen\pagegoal
+ \advance\scratchdimen -\pagetotal
+ \else
+ \scratchdimen\scaleboxoutervsize % \textheight
+ \fi
+ \else
+ \scratchdimen\scaleboxoutervsize % \textheight
+ \fi
+ \fi\fi\fi}
+ {\scaleboxoutervsize\scaleparameter\c!maxheight}%
+ \doifelsenothing{\scaleparameter\c!height}
+ {\scaleboxvsize\scratchdimen}
+ {\scaleboxvsize\scaleparameter\c!height}%
+ \doifelsenothing{\scaleparameter\c!width}
+ {\scaleboxhsize\hsize}
+ {\scaleboxhsize\scaleparameter\c!width}}
+
+\def\convertscaleboxinsertscale#1#2#3#4%
+ {\scratchdimen#1\relax
+ \ifnum#3=\plusthousand
+ % == scale 1
+ \else
+ % better 1000 100 10 ranges, evt round 2sp
+ \divide\scratchdimen \plusthousand
+ \multiply\scratchdimen #3\relax
+ \fi
+ \scratchdimen-\scratchdimen % beter hier - dan in driver
+ \edef#2{\the\scratchdimen}%
+ \scratchcounter#3\relax
+ \ifnum\scratchcounter>\plustenthousand
+ \divide\scratchcounter\!!ten \scratchdimen\the\scratchcounter\points
+ \else
+ \scratchdimen\the\scratchcounter\points \divide\scratchdimen\!!ten
+ \fi
+ \edef#4{\withoutpt\the\scratchdimen}}
+
+% \startcombination
+% {\externalfigure[cow.pdf] [frame=on,height=3cm,equalwidth=6cm]} {}
+% {\externalfigure[mill.png][frame=on,height=3cm,equalwidth=6cm]} {}
+% \stopcombination
+
+\def\doscaleboxposition
+ {\doifsomething{\scaleparameter\c!equalwidth}
+ {\scratchdimen\scaleparameter\c!equalwidth\relax
+ \ifdim\wd\nextbox<\scratchdimen
+ \setbox\nextbox\hbox to \scratchdimen{\hss\box\nextbox\hss}%
+ \fi}%
+ \doifsomething{\scaleparameter\c!equalheight}
+ {\scratchdimen\scaleparameter\c!equalheight\relax
+ \ifdim\ht\nextbox<\scratchdimen
+ \setbox\nextbox\vbox to \scratchdimen{\vss\box\nextbox\vss}%
+ \fi}}
+
+%D \macros
+%D {clip, setupclipping}
+%D
+%D Although related to figures, clipping can be applied to
+%D arbitrary content. We can use \METAPOST\ to provide a non
+%D rectangular clipping path.
+%D
+%D \starttyping
+%D \startMPclip{fun}
+%D clip currentpicture to fullcircle
+%D shifted (.5,.5) xscaled \width yscaled \height ;
+%D \stopMPclip
+%D \stoptyping
+%D
+%D We get a rectangular piece of the figure when we say:
+%D
+%D \starttyping
+%D \clip[x=2,y=1]{\externalfigure[photo]}
+%D \stoptyping
+%D
+%D When we want to clip to the oval we defined a few lines ago,
+%D we say:
+%D
+%D \starttyping
+%D \clip[nx=1,ny=1,x=1,y=1,mp=fun]{\externalfigure[photo]}
+%D \stoptyping
+%D
+%D The general characteristics of clipping can be set up with
+%D
+%D \showsetup{setupclipping}
+
+\def\setupclipping
+ {\dodoubleargument\getparameters[\??cp]}
+
+\def\clip
+ {\dosingleempty\doclip}
+
+\def\doclip[#1]% nb top->bottom left->right
+ {\bgroup
+ \getparameters[\??cp][#1]%
+ \doifelse\@@cpstate\v!start\dodoclip{\egroup\hbox}}
+
+\def\dodoclip
+ {\dowithnextbox
+ {\ifdim\@@cpwidth>\zeropoint
+ \!!dimena\@@cpwidth
+ \!!dimenc\@@cphoffset
+ \else
+ \!!dimena\nextboxwd
+ \divide\!!dimena \@@cpnx
+ \!!dimenc\@@cpx\!!dimena
+ \advance\!!dimenc -\!!dimena
+ \!!dimena\@@cpsx\!!dimena
+ \fi
+ \relax % sure
+ \ifdim\@@cpheight>\zeropoint
+ \!!dimenb\@@cpheight
+ \!!dimend\nextboxht
+ \advance\!!dimend -\@@cpvoffset
+ \advance\!!dimend -\!!dimenb
+ \else
+ \!!dimenb\nextboxht
+ \divide\!!dimenb \@@cpny
+ \!!dimend-\@@cpy\!!dimenb
+ \advance\!!dimend -\@@cpsy\!!dimenb
+ \advance\!!dimend \!!dimenb
+ \!!dimenb\@@cpsy\!!dimenb
+ \advance\!!dimend \nextboxht % dimend !
+ \fi
+ \setbox\nextbox\hbox % old
+ {\advance\!!dimenc -\@@cpleftoffset % new !
+ \advance\!!dimend -\@@cpbottomoffset % new ! % - added
+ \hskip-\!!dimenc\lower\!!dimend\flushnextbox}% old
+ \nextboxwd\zeropoint
+ \nextboxht\zeropoint
+ \nextboxdp\zeropoint
+ \setbox\nextbox\hbox
+ {\advance\!!dimena \@@cpleftoffset % new !
+ \advance\!!dimena \@@cprightoffset % new !
+ \advance\!!dimenb \@@cpbottomoffset % new !
+ \advance\!!dimenb \@@cptopoffset % new !
+ \dostartclipping\@@cpmp\!!dimena\!!dimenb % old
+ \flushnextbox
+ \dostopclipping}%
+ \setbox\nextbox\hbox % new !
+ {\!!dimena-\@@cpleftoffset % new !
+ \!!dimenb \@@cpbottomoffset % new ! % - removed
+ \hskip\!!dimena\lower\!!dimenb\flushnextbox}% new !
+ \nextboxwd\!!dimena
+ \nextboxht\!!dimenb
+ \nextboxdp\zeropoint
+ \flushnextbox
+ \egroup}%
+ \hbox}
+
+\setupclipping
+ [\c!state=\v!start,
+ \c!n=1, % was 2
+ \c!nx=\@@cpn,\c!x=1,\c!sx=1,
+ \c!ny=\@@cpn,\c!y=1,\c!sy=1,
+ \c!width=\!!zeropoint,
+ \c!height=\!!zeropoint,
+ \c!hoffset=\!!zeropoint,
+ \c!voffset=\!!zeropoint,
+ \c!offset=\zeropoint,
+ \c!leftoffset=\@@cpoffset, % \zeropoint,
+ \c!rightoffset=\@@cpoffset, % \zeropoint,
+ \c!topoffset=\@@cpoffset, % \zeropoint,
+ \c!bottomoffset=\@@cpoffset,% \zeropoint,
+ \c!mp=]
+
+%D \startbuffer
+%D \startuseMPgraphic{test}
+%D path p ; p := fullcircle scaled 4cm ;
+%D draw p withpen pencircle scaled 1cm ;
+%D setbounds currentpicture to boundingbox p ;
+%D \stopuseMPgraphic
+%D
+%D \hbox to \hsize \bgroup
+%D \hss
+%D \ruledhbox{\useMPgraphic{test}}%
+%D \hss
+%D \ruledhbox{\clip{\useMPgraphic{test}}}%
+%D \hss
+%D \egroup
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+
+%D Mirroring.
+
+\def\domirrorbox % \hbox/\vbox/\vtop
+ {\bgroup
+ \dowithnextbox
+ {\dontshowcomposition
+ \scratchdimen\nextboxwd
+ % better use an hbox (if no \forgetall, leftskip etc may creep in)
+ %\setbox\nextbox\vbox{\forgetall\dostartmirroring\hskip-\nextboxwd\flushnextbox\dostopmirroring}%
+ \setbox\nextbox\hbox{\dostartmirroring\hskip-\nextboxwd\flushnextbox\dostopmirroring}%
+ \nextboxwd\scratchdimen
+ \flushnextbox
+ \egroup}}
+
+\unexpanded\def\mirror
+ {\domirrorbox\hbox}
+
+% \setbox0=\hbox{gans}
+% \ruledhbox{\copy0 \schaal[sx=2,sy=2]{\copy0}}
+% \mirror{\ruledhbox{\copy0 \schaal{\box0}}}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/grph-u3d.lua b/Master/texmf-dist/tex/context/base/grph-u3d.lua
new file mode 100644
index 00000000000..e5944691c00
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/grph-u3d.lua
@@ -0,0 +1,45 @@
+if not modules then modules = { } end modules ['grph-u3d'] = {
+ version = 1.001,
+ comment = "companion to grph-inc.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- see lpdf-u3d.lua for comment
+
+local format = string.format
+
+local texsprint = tex.sprint
+local ctxcatcodes = tex.ctxcatcodes
+
+function figures.checkers.u3d(data)
+ local dr, du, ds = data.request, data.used, data.status
+ local width = (dr.width or figures.defaultwidth):todimen()
+ local height = (dr.height or figures.defaultheight):todimen()
+ local foundname = du.fullname
+ dr.width, dr.height = width, height
+ du.width, du.height, du.foundname = width, height, foundname
+ texsprint(ctxcatcodes,format("\\startfoundexternalfigure{%ssp}{%ssp}",width,height))
+ local annot, preview, ref = backends.pdf.helpers.insert3d {
+ foundname = foundname,
+ width = width,
+ height = height,
+ factor = number.dimenfactors.bp,
+ display = dr.display,
+ controls = dr.controls,
+ label = dr.label,
+ }
+ -- node.write(nodes.pdfannot(width,-height,0,annot()))
+ texsprint(ctxcatcodes,format("\\pdfannot width %ssp height %ssp {%s}",width,height,annot())) -- brrrr
+--~ if ref then -- wrong ! a direct ref should work
+--~ texsprint(ctxcatcodes,format("\\smash{\\pdfrefximage%s\\relax}",ref)) -- brrrr
+--~ end
+ texsprint(ctxcatcodes,"\\stopfoundexternalfigure")
+ return data
+end
+
+figures.includers.u3d = figures.includers.nongeneric
+
+figures.registersuffix("u3d","u3d")
+figures.registersuffix("prc","u3d")
diff --git a/Master/texmf-dist/tex/context/base/hand-def.tex b/Master/texmf-dist/tex/context/base/hand-def.mkii
index 0a19ce270d1..0a19ce270d1 100644
--- a/Master/texmf-dist/tex/context/base/hand-def.tex
+++ b/Master/texmf-dist/tex/context/base/hand-def.mkii
diff --git a/Master/texmf-dist/tex/context/base/hand-ini.mkii b/Master/texmf-dist/tex/context/base/hand-ini.mkii
index 1936cb21123..ac8a946961f 100644
--- a/Master/texmf-dist/tex/context/base/hand-ini.mkii
+++ b/Master/texmf-dist/tex/context/base/hand-ini.mkii
@@ -16,62 +16,6 @@
\unprotect
-\startmessages dutch library: handlings
- title: handling
- 1: font afhandeling --
- 2: font afhandeling -- wordt geladen
- 3: onbekende font afhandeling --
-\stopmessages
-
-\startmessages english library: handlings
- title: handling
- 1: font handling --
- 2: font handling -- is loaded
- 3: unknown font handling --
-\stopmessages
-
-\startmessages german library: handlings % to do
- title: handling
- 1: Font Verarbeitung --
- 2: Font Verarbeitung -- ist geladen
- 3: unknown font handling --
-\stopmessages
-
-\startmessages czech library: handlings % to do
- title: handling
- 1: font handling --
- 2: font handling -- is loaded
- 3: unknown font handling --
-\stopmessages
-
-\startmessages italian library: handlings % to do
- title: handling
- 1: font handling --
- 2: font handling -- is loaded
- 3: unknown font handling --
-\stopmessages
-
-\startmessages norwegian library: handlings % to do
- title: handling
- 1: font handling --
- 2: font handling -- is loaded
- 3: unknown font handling --
-\stopmessages
-
-\startmessages romanian library: handlings % to do
- title: handling
- 1: font handling --
- 2: font handling -- is loaded
- 3: unknown font handling --
-\stopmessages
-
-\startmessages french library: handlings
- title: manipulation
- 1: manipulation -- de police
- 2: la manipulation -- de police est chargée
- 3: manipulation -- inconnue de police
-\stopmessages
-
\newif\iftracefonthandling % \tracefonthandlingtrue
\newif\ifskiphandlingdef \skiphandlingdeffalse
@@ -81,8 +25,6 @@
% much in common with hz/protruding defs
% todo: fix others
-\let\normalchar\char % also done in enco-ini
-
\def\dosetsomehandling#1#2#3 #4 % no define since directly set
{\ifskiphandlingdef \else
\doifnumberelse{\string#2}
@@ -105,17 +47,6 @@
\let\char\normalchar}}%
\fi}
-% \def\dosettriplethandling#1#2#3 #4 #5 #6 % no define since directly set
-% {\ifskiphandlingdef \else
-% \doifnumberelse{\string#2}
-% {#1{#2#3}{#4}{#5}{#6}}
-% {\doifelsenothing{#3}
-% {#1{`#2}{#4}{#5}{#6}}
-% {\let\char\empty
-% \doifnumberelse{\csname#2#3\endcsname}{#1{\csname#2#3\endcsname}{#4}{#5}{#6}}\donothing
-% \let\char\normalchar}}%
-% \fi}
-
\def\dosetquartethandling#1#2#3 #4 #5 #6 #7 % no define since directly set
{\ifskiphandlingdef \else
\doifnumberelse{\string#2}
@@ -127,14 +58,6 @@
\let\char\normalchar}}%
\fi}
-
-% \def\doinhsomehandling#1#2 #3 %
-% {\ifskiphandlingdef \else
-% \let\char\empty
-% \doifnumberelse{\csname#2\endcsname}{#1{\csname#2\endcsname}{`#3}}\donothing
-% \let\char\normalchar
-% \fi}
-
\def\doinhsomehandling#1#2#3 #4 % to be checked
{\ifskiphandlingdef \else
\if#3\relax\relax
@@ -169,17 +92,8 @@
\appendtoks \disableadjusting \to \everyforgetall % Here or not here?
\def\dododefineadjustfactor#1#2%
- {\adjustdimen#2pt\multiply\adjustdimen\plusthousand\divide\adjustdimen\maxcard\relax
- \efcode\handledfont#1\adjustdimen}
-
- \beginETEX
-
- \def\dododefineadjustfactor#1#2%
-% {\efcode\handledfont#1\dimexpr#2pt*\plusthousand/\maxcard\relax}
{\efcode\handledfont#1\dimexpr#2\onepoint*\plusthousand/\maxcard\relax}
- \endETEX
-
\def\dodoinheritadjustfactor#1#2%
{\efcode\handledfont#1\efcode\handledfont#2\relax}
@@ -251,112 +165,40 @@
\def\setprotrudingfactor#1%
{\doifvalue{\@fha@\@fha@#1\c!type}\v!hanging{\dosetprotrudingfactor{#1}}}
- \beginTEX
-
- \def\dosetprotrudingfactor#1% no \onepoint instead of pt
- {\lproddimen\csname\@fha@\@fha@#1\c!left\endcsname\s!pt
- \multiply\lproddimen\plusthousand\divide\lproddimen\maxcard\relax
- \rproddimen\csname\@fha@\@fha@#1\c!right\endcsname\s!pt
- \multiply\rproddimen\plusthousand\divide\rproddimen\maxcard\relax
- \iftracefonthandling\showprotrudingfactor{#1}\fi}
-
- \endTEX
-
- \beginETEX \dimexpr
-
\def\dosetprotrudingfactor#1% no \onepoint instead of pt
{\lproddimen\dimexpr\csname\@fha@\@fha@#1\c!left \endcsname\onepoint*\plusthousand/\maxcard\relax
\rproddimen\dimexpr\csname\@fha@\@fha@#1\c!right\endcsname\onepoint*\plusthousand/\maxcard\relax
\iftracefonthandling\showprotrudingfactor{#1}\fi}
- \endETEX
-
\def\showprotrudingfactor#1%
{\writestatus\m!handlings{[protrude]\space#1\space
\csname\@fha@\@fha@#1\c!left \endcsname\space
\csname\@fha@\@fha@#1\c!right\endcsname\space
\fontname\handledfont}}
- \beginETEX \fontcharwd
-
% division before multiplication, else overflow with "sa>5"
- \newdimen\protrudethreshold \protrudethreshold=36pt
-
- % keep this
-
- % \def\redodefineprotrudefactor#1%
- % {\ifdim\emwidth>\protrudethreshold
- % \divide\scratchdimen\emwidth
- % \multiply\scratchdimen\fontcharwd\handledfont#1\relax
- % \else
- % \multiply\scratchdimen\fontcharwd\handledfont#1\relax
- % \divide\scratchdimen\emwidth
- % \fi}
-
- % \def\dododefineprotrudefactor#1#2#3%
- % {\scratchdimen#2\lproddimen
- % \ifembasedprotruding \else
- % \redodefineprotrudefactor{#1}%
- % \fi
- % \lpcode\handledfont#1\scratchdimen
- % \scratchdimen#3\rproddimen
- % \ifembasedprotruding \else
- % \redodefineprotrudefactor{#1}%
- % \fi
- % \rpcode\handledfont#1\scratchdimen}
-
- \def\dododefineprotrudefactor#1#2#3%
- {\lpcode\handledfont#1\dimexpr#2\lproddimen
- \ifembasedprotruding \else
- \ifdim\emwidth>\protrudethreshold
- /\emwidth*\fontcharwd\handledfont#1%
- \else
- *\fontcharwd\handledfont#1/\emwidth
- \fi
- \fi
- \relax
- \rpcode\handledfont#1\dimexpr#3\rproddimen
- \ifembasedprotruding \else
- \ifdim\emwidth>\protrudethreshold
- /\emwidth*\fontcharwd\handledfont#1%
- \else
- *\fontcharwd\handledfont#1/\emwidth
- \fi
- \fi
- \relax}
-
- \endETEX
-
- \beginTEX
-
- \ifx\undefined\charbox \newbox\charbox \fi
-
- \def\protrudethreshold{36\onepoint}
-
- \def\redodefineprotrudefactor
- {\ifdim\emwidth>\protrudethreshold
- \divide\scratchdimen\emwidth
- \multiply\scratchdimen\wd\charbox
- \else
- \multiply\scratchdimen\wd\charbox
- \divide\scratchdimen\emwidth
- \fi}
+ \newdimen\protrudethreshold \protrudethreshold=36pt
- \def\dododefineprotrudefactor#1#2#3%
- {\setbox\charbox{\handledfont\char#1}% ! yet untested !
- \scratchdimen#2\lproddimen
+ \def\dododefineprotrudefactor#1#2#3%
+ {\lpcode\handledfont#1\dimexpr#2\lproddimen
\ifembasedprotruding \else
- \redodefineprotrudefactor
+ \ifdim\emwidth>\protrudethreshold
+ /\emwidth*\fontcharwd\handledfont#1%
+ \else
+ *\fontcharwd\handledfont#1/\emwidth
+ \fi
\fi
- \lpcode\handledfont#1\scratchdimen
- \scratchdimen#3\rproddimen
+ \relax
+ \rpcode\handledfont#1\dimexpr#3\rproddimen
\ifembasedprotruding \else
- \redodefineprotrudefactor
+ \ifdim\emwidth>\protrudethreshold
+ /\emwidth*\fontcharwd\handledfont#1%
+ \else
+ *\fontcharwd\handledfont#1/\emwidth
+ \fi
\fi
- \rpcode\handledfont#1\scratchdimen}
-
- \endTEX
+ \relax}
\def\dodoinheritprotrudefactor#1#2%
{\lpcode\handledfont#1\lpcode\handledfont#2\relax
@@ -475,27 +317,12 @@
\let\fonthandling\empty
-\beginTEX
-
- \def\startfonthandling[#1]%
- {\def\fonthandling{#1}%
- \expandafter\ifx\csname\@fha@\fonthandling\endcsname\relax
- \expandafter\newtoks\csname\@fha@\fonthandling\endcsname
- \fi
- \setfonttoks}
-
-\endTEX
-
-\beginETEX
-
- \def\startfonthandling[#1]%
- {\def\fonthandling{#1}%
- \ifcsname\@fha@\fonthandling\endcsname\else
- \expandafter\newtoks\csname\@fha@\fonthandling\endcsname
- \fi
- \setfonttoks}
-
-\endETEX
+\def\startfonthandling[#1]%
+ {\def\fonthandling{#1}%
+ \ifcsname\@fha@\fonthandling\endcsname\else
+ \expandafter\newtoks\csname\@fha@\fonthandling\endcsname
+ \fi
+ \setfonttoks}
\def\stopfonthandling
{\let\fonthandling\empty}
@@ -532,33 +359,6 @@
\def\doenablehandling[#1][#2]% handling / symbolic fontname
{\fastenablehandling{#1}{#2}} % for the moment the same as:
-\beginTEX
-
-\def\fastenablehandling#1#2%
- {\edef\askedfonthandling{#1}%
- \edef\filoffonthandling{#2}%
- \@EA\ifx\csname\@fha@\@fha@\@fha@\askedfonthandling\endcsname\relax
- \@EA\ifx\csname\@fha@\@fha@\askedfonthandling\endcsname\relax
- \@EAEAEA\nofastenablehandling
- \else
- \@EAEAEA\dofastenablehandling
- \fi
- \else
- \@EA\redofastenablehandling
- \fi}
-
-\def\xfastenablehandling#1%
- {\edef\askedfonthandling{#1}%
- \@EA\ifx\csname\@fha@\@fha@\askedfonthandling\endcsname
- \@EA\nofastenablehandling
- \else
- \@EA\dofastenablehandling
- \fi}
-
-\endTEX
-
-\beginETEX \ifcsname
-
\def\fastenablehandling#1#2% also gets #2 passed
{\edef\askedfonthandling{#1}%
\edef\filoffonthandling{#2}%
@@ -578,8 +378,6 @@
\@EA\nofastenablehandling
\fi}
-\endETEX
-
\def\redofastenablehandling
{\startdirectcharacters
\edef\fonthandling{\csname\@fha@\@fha@\@fha@\askedfonthandling\endcsname}%
@@ -600,24 +398,11 @@
\let\fonthandling\askedfonthandling
\dodoenablehandling\fonthandling}
-\beginTEX
-
-\def\dodoenablehandling#1%
- {\@EA\ifx\csname\@fha@#1\endcsname\relax\else
- \the\csname\@fha@#1\endcsname
- \fi}
-
-\endTEX
-
-\beginETEX \ifcsname
-
\def\dodoenablehandling#1%
{\ifcsname\@fha@#1\endcsname
\the\csname\@fha@#1\endcsname
\fi}
-\endETEX
-
%D We must not use \type {\purefontname} here (was a bug)!
% not robust as long as tex reuses definitions internally
@@ -651,7 +436,7 @@
{\letvalueempty{\c!file\f!handlingprefix#1}%
\makeshortfilename[\truefilename{\f!handlingprefix#1}]%
\startreadingfile
- \readsysfile\shortfilename
+ \readsysfile{\shortfilename.mkii}
{\showmessage\m!handlings2{#1}}
{\showmessage\m!handlings3{#1}}%
\stopreadingfile}}
diff --git a/Master/texmf-dist/tex/context/base/hand-ini.mkiv b/Master/texmf-dist/tex/context/base/hand-ini.mkiv
index 527c32da7c2..41e9db415fb 100644
--- a/Master/texmf-dist/tex/context/base/hand-ini.mkiv
+++ b/Master/texmf-dist/tex/context/base/hand-ini.mkiv
@@ -36,7 +36,7 @@
\appendtoks \disableadjusting \to \everyforgetall % Here or not here?
\appendtoks \disableprotruding \to \everyforgetall % Here or not here?
-\def\startfonthandling #1{\fonthandlingerror\gobbleuntil\stopfonthandling} % can't happen
+\def\startfonthandling #1{\fonthandlingerror\fonthandlingerror\gobbleuntil\stopfonthandling} % can't happen
\def\definefonthandling {\dotripleempty\dodefinefonthandling}
\def\setupfonthandling {\dodoubleempty\dosetupfonthandling }
\def\dodefinefonthandling[#1][#2][#3]{\fonthandlingerror}
diff --git a/Master/texmf-dist/tex/context/base/java-fld.tex b/Master/texmf-dist/tex/context/base/java-fld.tex
index e6e5ee03a50..3c24b7e02db 100644
--- a/Master/texmf-dist/tex/context/base/java-fld.tex
+++ b/Master/texmf-dist/tex/context/base/java-fld.tex
@@ -19,15 +19,7 @@
function Sanitized_TeX_String (value)
{ var v = value ;
- % v = v.replace(/\\\\\\/L/g,"\\225") ; % problematic
- % v = v.replace( /\\\\OE/g,"\\226") ; % problematic
- % v = v.replace( /\\\\vS/g,"\\227") ; % problematic
- % v = v.replace( /\\\\"Y/g,"\\230") ; % problematic
- % v = v.replace( /\\\\vZ/g,"\\231") ; % problematic
- % v = v.replace(/\\\\\\/l/g,"\\233") ; % problematic
v = v.replace( /\\\\oe/g,"\\234") ;
- % v = v.replace( /\\\\vs/g,"\\235") ; % problematic
- % v = v.replace( /\\\\vz/g,"\\236") ; % problematic
v = v.replace( /\\\\<</g,"\\253") ;
v = v.replace( /\\\\>>/g,"\\273") ;
v = v.replace( /\\\\`A/g,"\\300") ;
@@ -52,7 +44,6 @@
v = v.replace( /\\\\^O/g,"\\324") ;
v = v.replace( /\\\\~O/g,"\\325") ;
v = v.replace( /\\\\"O/g,"\\326") ;
- % v = v.replace(/\\\\\\/O/g,"\\330") ; % problematic
v = v.replace( /\\\\`U/g,"\\331") ;
v = v.replace( /\\\\'U/g,"\\332") ;
v = v.replace( /\\\\^U/g,"\\333") ;
@@ -81,7 +72,6 @@
v = v.replace( /\\\\^o/g,"\\364") ;
v = v.replace( /\\\\~o/g,"\\365") ;
v = v.replace( /\\\\"o/g,"\\366") ;
- % v = v.replace(/\\\\\\/o/g,"\\370") ; % problematic
v = v.replace( /\\\\`u/g,"\\371") ;
v = v.replace( /\\\\'u/g,"\\372") ;
v = v.replace( /\\\\^u/g,"\\373") ;
@@ -129,7 +119,7 @@
\startJSpreamble fields_1 used now
-var visible_field = new Array() ; % no garbage collection !
+var visible_field = new Array() ;
var visible_fields = 0 ;
function PresetFields ( )
@@ -140,13 +130,11 @@ function Preset_Fields ( )
function Hide_When_Down ( )
{ event.target.hidden = true }
-% { event.target.display = display.hidden }
function Hide_Field ( Name )
{ var v = this.getField(Name) ;
if (v)
{ v.hidden = true ;
- % { v.display = display.hidden ;
v.readonly = true ;
this.dirty = false } }
@@ -156,7 +144,6 @@ function Do_Vide_Field ( Name, Closable )
{ ++visible_fields ;
visible_field[visible_fields] = Name ;
v.hidden = false ;
- % v.display = display.visible ;
if (Closable)
{ v.readonly = false ;
v.value = "On" }
@@ -173,11 +160,11 @@ function Hide_Fields ()
{ Hide_Field(visible_field[visible_fields]) ;
--visible_fields } }
-function Vide_Fields ( Name ) % show only one field
+function Vide_Fields ( Name )
{ Hide_Fields () ;
Vide_Field ( Name) }
-function Vide_Hide_Fields ( Name ) % show only one field
+function Vide_Hide_Fields ( Name )
{ Hide_Fields () ;
Vide_Hide_Field ( Name) }
@@ -185,10 +172,6 @@ function Toggle_Hide ( Name )
{ var v = this.getField(Name) ;
if (v)
{ v.hidden = !v.hidden ;
- % if v.display == display.hidden
- % { v.display = display.visible }
- % else
- % { v.display = display.hidden }
this.dirty = false } }
function Field_On ( Name )
@@ -218,10 +201,6 @@ function Flip_Fields ( Name )
{ v = this.getField(Names[i]) ;
if (v)
{ v.hidden = !v.hidden ;
- % if v.display == display.hidden
- % { v.display = display.visible }
- % else
- % { v.display = display.hidden }
v.value = "On" } } }
function Forget_Changes ()
@@ -229,7 +208,6 @@ function Forget_Changes ()
function ForgetChanges ()
{ this.dirty = false }
-
\stopJSpreamble
%\startJScode{Hide_When_Down} Hide_When_Down() \stopJScode
diff --git a/Master/texmf-dist/tex/context/base/java-ini.lua b/Master/texmf-dist/tex/context/base/java-ini.lua
new file mode 100644
index 00000000000..161a1657e90
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/java-ini.lua
@@ -0,0 +1,119 @@
+if not modules then modules = { } end modules ['java-ini'] = {
+ version = 1.001,
+ comment = "companion to java-ini.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local format = string.format
+
+javascripts = javascripts or { }
+javascripts.codes = javascripts.codes or { }
+javascripts.preambles = javascripts.preambles or { }
+javascripts.functions = javascripts.functions or { }
+
+local codes, preambles, functions = javascripts.codes, javascripts.preambles, javascripts.functions
+
+local preambled = { }
+
+local function storefunction(s)
+ functions[s] = true
+end
+
+local uses = lpeg.P("uses")
+local used = lpeg.P("used")
+local left = lpeg.P("{")
+local right = lpeg.P("}")
+local space = lpeg.S(" \r\n")
+local spaces = space^0
+local braced = left * lpeg.C((1-right-space)^1) * right
+local unbraced = lpeg.C((1-space)^1)
+local name = spaces * (braced + unbraced) * spaces
+local any = lpeg.P(1)
+local script = lpeg.C(any^1)
+local funct = lpeg.P("function")
+local leftp = lpeg.P("(")
+local rightp = lpeg.P(")")
+local fname = spaces * funct * spaces * (((1-space-left)^1)/storefunction) * spaces * leftp
+
+local parsecode = name * ((uses * name) + lpeg.Cc("")) * spaces * script
+local parsepreamble = name * ((used * name) + lpeg.Cc("")) * spaces * script
+local parsefunctions = (fname + any)^0
+
+function javascripts.storecode(str)
+ local name, uses, script = parsecode:match(str)
+ if name and name ~= "" then
+ javascripts.codes[name] = { uses, script }
+ end
+end
+
+function javascripts.storepreamble(str) -- now later
+ local name, used, script = parsepreamble:match(str)
+ if name and name ~= "" then
+ preambles[#preambles+1] = { name, used, script }
+ preambled[name] = #preambles
+ parsefunctions:match(script)
+ end
+end
+
+function javascripts.setpreamble(name,script) -- now later
+ if name and name ~= "" then
+ preambles[#preambles+1] = { name, "now", script }
+ preambled[name] = #preambles
+ parsefunctions:match(script)
+ end
+end
+
+function javascripts.addtopreamble(name,script) -- now later
+ if name and name ~= "" then
+ local p = preambled[name]
+ if p then
+ preambles[p] = { "now", preambles[p] .. " ;\n" .. script }
+ else
+ preambles[#preambles+1] = { name, "now", script }
+ preambled[name] = #preambles
+ parsefunctions:match(script)
+ end
+ end
+end
+
+function javascripts.usepreamblenow(name) -- now later
+ if name and name ~= "" and preambled[name] then
+ preambles[preambled[name]][2] = "now"
+ end
+end
+
+function javascripts.code(name,arguments)
+ local c = codes[name]
+ if c then
+ local u, code = c[1], c[2]
+ if u ~= "" then
+ local p = preambled[u]
+ if p then
+ preambles[p][1] = "now"
+ end
+ end
+ return code
+ end
+ local f = functions[name]
+ if f then
+ -- temporary hack, i need a more clever approach
+ if arguments then
+ return format("%s(%s)",name,'"' .. arguments.gsub(arguments,'%s*,%s*','"%1",') .. '"')
+ else
+ return format("%s()",name)
+ end
+ end
+end
+
+function javascripts.flushpreambles()
+ local t = { }
+ for i=1,#preambles do
+ local preamble = preambles[i]
+ if preamble[2] == "now" then
+ t[#t+1] = { preamble[1], preamble[3] }
+ end
+ end
+ return t
+end
diff --git a/Master/texmf-dist/tex/context/base/java-ini.tex b/Master/texmf-dist/tex/context/base/java-ini.mkii
index 30f6a839490..e929da10811 100644
--- a/Master/texmf-dist/tex/context/base/java-ini.tex
+++ b/Master/texmf-dist/tex/context/base/java-ini.mkii
@@ -11,10 +11,12 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context JavaScript Macros / Initialization}
+\writestatus{loading}{ConTeXt JavaScript Macros / Initialization}
% BUG: preamble zonder used/used en split
+% todo: lua sanitizer
+
% JavaScript support is under development. In the near future
% a slightly different model will be used. The JScode stuff
% will probably become just auto function inclusion and the
@@ -33,53 +35,21 @@
%D variables to a \JAVASCRIPT\ is closely related to other core
%D macros. First some messages:
-\startmessages dutch library: javascript
- title: javascript
- 1: script set -- wordt geladen
- 2: onbekende preamble --
-\stopmessages
-
-\startmessages english library: javascript
- title: javascript
- 1: loading script set --
- 2: unknown preamble --
-\stopmessages
-
-\startmessages german library: javascript
- title: javascript
- 1: Lade Scriptdatei --
- 2: unbekannte Preamble --
-\stopmessages
-
-\startmessages czech library: javascript
- title: javascript
- 1: nacita se soubor skriptu --
- 2: neznama preambule --
-\stopmessages
-
-\startmessages italian library: javascript
- title: javascript
- 1: caricamento dello script set --
- 2: preambolo sconosciuto --
-\stopmessages
-
-\startmessages norwegian library: javascript
- title: javascript
- 1: leser inn scriptsett --
- 2: ukjent 'preamble' --
-\stopmessages
-
-\startmessages romanian library: javascript
- title: javascript
- 1: se incarca scriptul --
- 2: preambul necunoscut --
-\stopmessages
-
-\startmessages french library: javascript
- title: javascript
- 1: chargement du jeu de script --
- 2: préambule -- inconnu
-\stopmessages
+% messages moved
+
+% messages moved
+
+% messages moved
+
+% messages moved
+
+% messages moved
+
+% messages moved
+
+% messages moved
+
+% messages moved
%D \TEX\ is not the right tool to check the \JAVA\ code; the
@@ -428,6 +398,7 @@
{\ifx\allJSpreambles\empty\else
\bgroup
\setverbosecscharacters
+ \obeyspaces \let\obeyedspace\normalspace
\def\par{\delcharacter}% was: { }
\globallet\JSpreamble\empty
\def\@@collectedJSpreamble{\r!java\r!java collected}%
@@ -659,8 +630,6 @@
%D The magic 500 in the next hack prevents the input stack from
%D overflowing when large scripts are sanitized.
-%\beginTEX
-
\def\dododoPSsanitizeJScode
{\ifcase\JSisTEX\ifcase\JScomment
\advance\scratchcounter \plusone
@@ -680,16 +649,6 @@
\aftergroup\sanitizedJScode
\let\next=}}
-%\endTEX
-%
-% Why is \aftergroup not doing what I expect?
-%
-% \beginETEX \aftergroup
-%
-% \let\dododoPSsanitizeJScode\relax
-%
-% \endETEX
-
%D The macro \type{\doPSsanitizeJScode} converts its argument
%D into the macro \type{\sanitizedJScode}, thereby prefixing
%D each \type{(} and \type{)} by a slash.
diff --git a/Master/texmf-dist/tex/context/base/java-ini.mkiv b/Master/texmf-dist/tex/context/base/java-ini.mkiv
new file mode 100644
index 00000000000..6536ced48e9
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/java-ini.mkiv
@@ -0,0 +1,164 @@
+%D \module
+%D [ file=java-ini,
+%D version=1998.01.30,
+%D title=\CONTEXT\ JavaScript Macros,
+%D subtitle=Initialization,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt JavaScript Macros / Initialization}
+
+\registerctxluafile{java-ini}{1.001}
+
+\unprotect
+
+%D \macros
+%D {JS*}
+%D
+%D Because \JAVASCRIPT's are activated by the user, for
+%D instance by activating on a button, their support is closely
+%D related to the referencing mechanism. Integration takes
+%D place by
+%D
+%D \starttyping
+%D \goto{calculate total}[Sum()]
+%D \stoptyping
+%D
+%D The \type{()} classify this as a script. If they are absent,
+%D the keyword is treated as a normal reference.
+%D
+%D One can pass arguments to such a script by saying:
+%D
+%D \starttyping
+%D \goto{calculate total}[Sum(1.5,2.3)]
+%D \stoptyping
+
+
+%D \macros
+%D {startJScode}
+%D
+%D A piece of \JAVASCRIPT\ code is defined by saying:
+%D
+%D \starttyping
+%D \startJScode{name}
+%D name = 4 ;
+%D \stopJScode
+%D \stoptyping
+%D
+%D This assumes uses no preamble or presumes that the preamble is
+%D always loaded, the next definition also tells \CONTEXT\ to
+%D actually include the preamble needed.
+%D
+%D \starttyping
+%D \startJScode{uses} uses {later}
+%D uses = 6 ;
+%D \stopJScode
+%D \stoptyping
+%D
+%D \macros
+%D {startJSpreamble}
+%D
+%D One can define insert \JAVASCRIPT\ code at the document level
+%D by using:
+%D
+%D \starttyping
+%D \startJSpreamble{oeps}
+%D oeps = 1 ;
+%D \stopJSpreamble
+%D \stoptyping
+%D
+%D which is the same as:
+%D
+%D \starttyping
+%D \startJSpreamble{now} used now
+%D now = 2 ;
+%D \stopJSpreamble
+%D \stoptyping
+%D
+%D while the next definition is only included when actually
+%D used.
+%D
+%D \starttyping
+%D \startJSpreamble{later} used later
+%D later = 3 ;
+%D \stopJSpreamble
+%D \stoptyping
+%D
+%D This command may be used more that once, but always before
+%D the first page is shipped out.
+%D
+%D \macros
+%D {setJSpreamble, addtoJSpreamble}
+%D
+%D In addition to the previous preamble definitions, we can
+%D set a preamble \quote {in||line} and add tokens to a
+%D preamble.
+%D
+%D \macros
+%D {useJSpreamblenow}
+%D
+%D This macro can be used to force inclusion of postponed
+%D \JAVASCRIPT\ preambles.
+
+\unexpanded\def\startJScode
+ {\begingroup\obeylualines\obeyluatokens\dostartJScode}
+
+\long\def\dostartJScode#1\stopJScode
+ {\normalexpanded{\endgroup\ctxlua{javascripts.storecode(\!!bs#1\!!es)}}}
+
+\let\stopJScode\relax
+
+\unexpanded\def\startJSpreamble
+ {\begingroup\obeylualines\obeyluatokens\dostartJSpreamble}
+
+\long\def\dostartJSpreamble#1\stopJSpreamble
+ {\normalexpanded{\endgroup\ctxlua{javascripts.storepreamble(\!!bs#1\!!es)}}}
+
+\let\stopJSpreamble\relax
+
+\def\setJSpreamble #1#2{\ctxlua{javascripts.storepreamble ("#1",\!!bs#2\!!es)}}
+\def\addtoJSpreamble #1#2{\ctxlua{javascripts.addtopreamble ("#1",\!!bs#2\!!es)}}
+\def\useJSpreamblenow #1{\ctxlua{javascripts.usepreamblenow("#1")}}
+\def\finalflushJSpreamble{\iflocation\ctxlua{javascripts.flushpreambles()}\fi}
+
+%D \macros
+%D {useJSscripts}
+%D
+%D In due time, users will build their collections of scripts,
+%D which can be used (loaded) when applicable. Although not all
+%D public, we will provide some general purpose scripts,
+%D collected in files with names like \type{java-...}. One can
+%D load these scripts with \type{\useJSscripts}, like:
+%D
+%D \starttyping
+%D \useJSscripts[fld]
+%D \stoptyping
+%D
+%D The not so complicated implementation of this macro is:
+
+\def\dodouseJSscripts#1%
+ {\doifelse{#1}\v!reset
+ {\let\allJSpreambles\empty}
+ {\ifcsname\c!file\f!javascriptprefix#1\endcsname \else
+ \startnointerference
+ \letgvalueempty{\c!file\f!javascriptprefix#1}%
+ \makeshortfilename[\f!javascriptprefix#1]%
+ \startreadingfile
+ \readsysfile\shortfilename{\showmessage\m!javascript1{#1}}\donothing
+ \stopreadingfile
+ \stopnointerference
+ \fi}}
+
+\def\douseJSscripts[#1][#2]%
+ {\processcommalist[#1]\dodouseJSscripts
+ \processcommalist[#2]\useJSpreamblenow}
+
+\def\useJSscripts
+ {\dodoubleempty\douseJSscripts}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/java-stp.tex b/Master/texmf-dist/tex/context/base/java-stp.tex
index fcb9d4f22d3..df4fbcc2f4e 100644
--- a/Master/texmf-dist/tex/context/base/java-stp.tex
+++ b/Master/texmf-dist/tex/context/base/java-stp.tex
@@ -11,13 +11,13 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\startJSpreamble Steps used now
+% we define ocglist global, otherwise we quickly run into a memory hog (even
+% out of memory in a 512 Meg machine)
- % we define ocglist global, otherwise we quickly run into a memory hog (even
- % out of memory in a 512 Meg machine)
+% we cannot use doc_visited[this.pageNum] instead of doc_currentstep because
+% of some funny side effect (i.e. dup or so)
- % we cannot use doc_visited[this.pageNum] instead of doc_currentstep because
- % of some funny side effect (i.e. dup or so)
+\startJSpreamble Steps used now
var doc_ocglist = this.getOCGs() ;
var doc_stepname = "step" ;
@@ -26,9 +26,6 @@
var doc_visited = new Array() ;
var doc_busy = new Array() ;
- % for some reason, this function is not seen in time (funny initialization
- % order again?) ...
-
function SetupStepper ( layername, laststep ) {
doc_stepname = layername ;
doc_maxstep = laststep ;
@@ -38,8 +35,6 @@
}
}
- % so, we do it the ugly way
-
for (var i=0; i<=this.numPages; i++) {
doc_visited[i] = 0 ;
doc_busy[i] = 0 ;
@@ -96,7 +91,6 @@
function InvokeStepper ( ) {
try {
-% console.println("INVOKE "+doc_currentstep+" "+doc_busy[this.pageNum]) ;
if (doc_currentstep<doc_busy[this.pageNum]) {
doc_currentstep += 1 ;
doc_visited[this.pageNum] = doc_currentstep ;
diff --git a/Master/texmf-dist/tex/context/base/l-aux.lua b/Master/texmf-dist/tex/context/base/l-aux.lua
index f81d807cdc4..0e5babeeb26 100644
--- a/Master/texmf-dist/tex/context/base/l-aux.lua
+++ b/Master/texmf-dist/tex/context/base/l-aux.lua
@@ -1,64 +1,119 @@
--- filename : l-aux.lua
--- author : Hans Hagen, PRAGMA-ADE, Hasselt NL
--- copyright: PRAGMA ADE / ConTeXt Development Team
--- license : see context related readme files
+if not modules then modules = { } end modules ['l-aux'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
-if not versions then versions = { } end versions['l-aux'] = 1.001
-if not aux then aux = { } end
+aux = aux or { }
-do
+local concat, format, gmatch = table.concat, string.format, string.gmatch
+local tostring, type = tostring, type
- local hash = { }
+local space = lpeg.P(' ')
+local equal = lpeg.P("=")
+local comma = lpeg.P(",")
+local lbrace = lpeg.P("{")
+local rbrace = lpeg.P("}")
+local nobrace = 1 - (lbrace+rbrace)
+local nested = lpeg.P{ lbrace * (nobrace + lpeg.V(1))^0 * rbrace }
+local spaces = space^0
- local function set(key,value) -- using Carg is slower here
- hash[key] = value
+local value = lpeg.P(lbrace * lpeg.C((nobrace + nested)^0) * rbrace) + lpeg.C((nested + (1-comma))^0)
+
+local key = lpeg.C((1-equal-comma)^1)
+local pattern_a = (space+comma)^0 * (key * equal * value + key * lpeg.C(""))
+local pattern_c = (space+comma)^0 * (key * equal * value)
+
+local key = lpeg.C((1-space-equal-comma)^1)
+local pattern_b = spaces * comma^0 * spaces * (key * ((spaces * equal * spaces * value) + lpeg.C("")))
+
+-- "a=1, b=2, c=3, d={a{b,c}d}, e=12345, f=xx{a{b,c}d}xx, g={}" : outer {} removes, leading spaces ignored
+
+local hash = { }
+
+local function set(key,value) -- using Carg is slower here
+ hash[key] = value
+end
+
+local pattern_a_s = (pattern_a/set)^1
+local pattern_b_s = (pattern_b/set)^1
+local pattern_c_s = (pattern_c/set)^1
+
+aux.settings_to_hash_pattern_a = pattern_a_s
+aux.settings_to_hash_pattern_b = pattern_b_s
+aux.settings_to_hash_pattern_c = pattern_c_s
+
+function aux.make_settings_to_hash_pattern(set,how)
+ if how == "strict" then
+ return (pattern_c/set)^1
+ elseif how == "tolerant" then
+ return (pattern_b/set)^1
+ else
+ return (pattern_a/set)^1
end
+end
- local space = lpeg.P(' ')
- local equal = lpeg.P("=")
- local comma = lpeg.P(",")
- local lbrace = lpeg.P("{")
- local rbrace = lpeg.P("}")
- local nobrace = 1 - (lbrace+rbrace)
- local nested = lpeg.P{ lbrace * (nobrace + lpeg.V(1))^0 * rbrace }
-
- local key = lpeg.C((1-equal)^1)
- local value = lpeg.P(lbrace * lpeg.C((nobrace + nested)^0) * rbrace) + lpeg.C((nested + (1-comma))^0)
- local pattern = ((space^0 * key * equal * value * comma^0) / set)^1
-
- -- "a=1, b=2, c=3, d={a{b,c}d}, e=12345, f=xx{a{b,c}d}xx, g={}" : outer {} removes, leading spaces ignored
-
- function aux.settings_to_hash(str)
- if str and str ~= "" then
- hash = { }
- pattern:match(str)
- return hash
+function aux.settings_to_hash(str)
+ if str and str ~= "" then
+ hash = { }
+ if moretolerant then
+ pattern_b_s:match(str)
else
- return { }
+ pattern_a_s:match(str)
end
+ return hash
+ else
+ return { }
end
+end
- local seperator = comma * space^0
- local value = lpeg.P(lbrace * lpeg.C((nobrace + nested)^0) * rbrace) + lpeg.C((nested + (1-comma))^0)
- local pattern = lpeg.Ct(value*(seperator*value)^0)
-
- -- "aap, {noot}, mies" : outer {} removes, leading spaces ignored
-
- function aux.settings_to_array(str)
- return pattern:match(str)
+function aux.settings_to_hash_tolerant(str)
+ if str and str ~= "" then
+ hash = { }
+ pattern_b_s:match(str)
+ return hash
+ else
+ return { }
end
+end
- local function set(t,v)
- t[#t+1] = v
+function aux.settings_to_hash_strict(str)
+ if str and str ~= "" then
+ hash = { }
+ pattern_c_s:match(str)
+ return next(hash) and hash
+ else
+ return nil
end
+end
+
+local seperator = comma * space^0
+local value = lpeg.P(lbrace * lpeg.C((nobrace + nested)^0) * rbrace) + lpeg.C((nested + (1-comma))^0)
+local pattern = lpeg.Ct(value*(seperator*value)^0)
- local value = lpeg.P(lpeg.Carg(1)*value) / set
- local pattern = value*(seperator*value)^0 * lpeg.Carg(1)
+-- "aap, {noot}, mies" : outer {} removes, leading spaces ignored
- function aux.add_settings_to_array(t,str)
- return pattern:match(str, nil, t)
+aux.settings_to_array_pattern = pattern
+
+function aux.settings_to_array(str)
+ if not str or str == "" then
+ return { }
+ else
+ return pattern:match(str)
end
+end
+
+local function set(t,v)
+ t[#t+1] = v
+end
+local value = lpeg.P(lpeg.Carg(1)*value) / set
+local pattern = value*(seperator*value)^0 * lpeg.Carg(1)
+
+function aux.add_settings_to_array(t,str)
+ return pattern:match(str, nil, t)
end
function aux.hash_to_string(h,separator,yes,no,strict,omit)
@@ -84,7 +139,7 @@ function aux.hash_to_string(h,separator,yes,no,strict,omit)
end
end
end
- return table.concat(t,separator or ",")
+ return concat(t,separator or ",")
else
return ""
end
@@ -92,12 +147,20 @@ end
function aux.array_to_string(a,separator)
if a then
- return table.concat(a,separator or ",")
+ return concat(a,separator or ",")
else
return ""
end
end
+function aux.settings_to_set(str,t)
+ t = t or { }
+ for s in gmatch(str,"%s*([^,]+)") do
+ t[s] = true
+ end
+ return t
+end
+
-- temporary here
function aux.getparameters(self,class,parentclass,settings)
@@ -108,3 +171,53 @@ function aux.getparameters(self,class,parentclass,settings)
end
aux.add_settings_to_array(sc, settings)
end
+
+-- temporary here
+
+local digit = lpeg.R("09")
+local period = lpeg.P(".")
+local zero = lpeg.P("0")
+
+--~ local finish = lpeg.P(-1)
+--~ local nodigit = (1-digit) + finish
+--~ local case_1 = (period * zero^1 * #nodigit)/"" -- .000
+--~ local case_2 = (period * (1-(zero^0/"") * #nodigit)^1 * (zero^0/"") * nodigit) -- .010 .10 .100100
+
+local trailingzeros = zero^0 * -digit -- suggested by Roberto R
+local case_1 = period * trailingzeros / ""
+local case_2 = period * (digit - trailingzeros)^1 * (trailingzeros / "")
+
+local number = digit^1 * (case_1 + case_2)
+local stripper = lpeg.Cs((number + 1)^0)
+
+--~ local sample = "bla 11.00 bla 11 bla 0.1100 bla 1.00100 bla 0.00 bla 0.001 bla 1.1100 bla 0.100100100 bla 0.00100100100"
+--~ collectgarbage("collect")
+--~ str = string.rep(sample,10000)
+--~ local ts = os.clock()
+--~ stripper:match(str)
+--~ print(#str, os.clock()-ts, stripper:match(sample))
+
+function aux.strip_zeros(str)
+ return stripper:match(str)
+end
+
+function aux.definetable(target) -- defines undefined tables
+ local composed, t = nil, { }
+ for name in gmatch(target,"([^%.]+)") do
+ if composed then
+ composed = composed .. "." .. name
+ else
+ composed = name
+ end
+ t[#t+1] = format("%s = %s or { }",composed,composed)
+ end
+ return concat(t,"\n")
+end
+
+function aux.accesstable(target)
+ local t = _G
+ for name in gmatch(target,"([^%.]+)") do
+ t = t[name]
+ end
+ return t
+end
diff --git a/Master/texmf-dist/tex/context/base/l-boolean.lua b/Master/texmf-dist/tex/context/base/l-boolean.lua
index 66c608cee50..c8c919edaf2 100644
--- a/Master/texmf-dist/tex/context/base/l-boolean.lua
+++ b/Master/texmf-dist/tex/context/base/l-boolean.lua
@@ -1,11 +1,14 @@
--- filename : l-boolean.lua
--- comment : split off from luat-lib
--- author : Hans Hagen, PRAGMA-ADE, Hasselt NL
--- copyright: PRAGMA ADE / ConTeXt Development Team
--- license : see context related readme files
+if not modules then modules = { } end modules ['l-boolean'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
-if not versions then versions = { } end versions['l-boolean'] = 1.001
-if not boolean then boolean = { } end
+boolean = boolean or { }
+
+local type, tonumber = type, tonumber
function boolean.tonumber(b)
if b then return 1 else return 0 end
@@ -15,7 +18,7 @@ function toboolean(str,tolerant)
if tolerant then
local tstr = type(str)
if tstr == "string" then
- return str == "true" or str == "yes" or str == "on" or str == "1"
+ return str == "true" or str == "yes" or str == "on" or str == "1" or str == "t"
elseif tstr == "number" then
return tonumber(str) ~= 0
elseif tstr == "nil" then
@@ -34,9 +37,9 @@ end
function string.is_boolean(str)
if type(str) == "string" then
- if str == "true" or str == "yes" or str == "on" then
+ if str == "true" or str == "yes" or str == "on" or str == "t" then
return true
- elseif str == "false" or str == "no" or str == "off" then
+ elseif str == "false" or str == "no" or str == "off" or str == "f" then
return false
end
end
diff --git a/Master/texmf-dist/tex/context/base/l-dimen.lua b/Master/texmf-dist/tex/context/base/l-dimen.lua
new file mode 100644
index 00000000000..32becb2768e
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/l-dimen.lua
@@ -0,0 +1,369 @@
+if not modules then modules = { } end modules ['l-dimen'] = {
+ version = 1.001,
+ comment = "support for dimensions",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+--[[ldx--
+<p>Internally <l n='luatex'/> work with scaled point, which are
+represented by integers. However, in practice, at east at the
+<l n='tex'/> end we work with more generic units like points (pt). Going
+from scaled points (numbers) to one of those units can be
+done by using the conversion factors collected in the following
+table.</p>
+--ldx]]--
+
+local format, type = string.format, type
+
+local dimenfactors = {
+ ["pt"] = 1/65536,
+ ["in"] = ( 100/ 7227)/65536,
+ ["cm"] = ( 254/ 7227)/65536,
+ ["mm"] = ( 254/72270)/65536,
+ ["sp"] = 1,
+ ["bp"] = ( 7200/ 7227)/65536,
+ ["pc"] = ( 1/ 12)/65536,
+ ["dd"] = ( 1157/ 1238)/65536,
+ ["cc"] = ( 1157/14856)/65536,
+ ["nd"] = (20320/21681)/65536,
+ ["nc"] = ( 5080/65043)/65536
+}
+
+--[[ldx--
+<p>A conversion function that takes a number, unit (string) and optional
+format (string) is implemented using this table.</p>
+--ldx]]--
+
+local function todimen(n,unit,fmt)
+ if type(n) == 'string' then
+ return n
+ else
+ unit = unit or 'pt'
+ return format(fmt or "%.5f%s",n*dimenfactors[unit],unit)
+ end
+end
+
+--[[ldx--
+<p>We collect a bunch of converters in the <type>number</type> namespace.</p>
+--ldx]]--
+
+number = number or { }
+
+number.todimen = todimen
+number.dimenfactors = dimenfactors
+
+function number.topoints (n) return todimen(n,"pt") end
+function number.toinches (n) return todimen(n,"in") end
+function number.tocentimeters (n) return todimen(n,"cm") end
+function number.tomillimeters (n) return todimen(n,"mm") end
+function number.toscaledpoints(n) return todimen(n,"sp") end
+function number.toscaledpoints(n) return n .. "sp" end
+function number.tobasepoints (n) return todimen(n,"bp") end
+function number.topicas (n) return todimen(n "pc") end
+function number.todidots (n) return todimen(n,"dd") end
+function number.tociceros (n) return todimen(n,"cc") end
+function number.tonewdidots (n) return todimen(n,"nd") end
+function number.tonewciceros (n) return todimen(n,"nc") end
+
+--[[ldx--
+<p>More interesting it to implement a (sort of) dimen datatype, one
+that permits calculations too. First we define a function that
+converts a string to scaledpoints. We use <l n='lpeg'/>. We capture
+a number and optionally a unit. When no unit is given a constant
+capture takes place.</p>
+--ldx]]--
+
+local amount = (lpeg.S("+-")^0 * lpeg.R("09")^0 * lpeg.P(".")^0 * lpeg.R("09")^0) + lpeg.Cc("0")
+local unit = lpeg.R("az")^1
+
+local pattern = amount/tonumber * (unit^1/dimenfactors + lpeg.Cc(1)) -- tonumber is new
+
+--[[ldx--
+<p>We use a metatable to intercept errors. When no key is found in
+the table with factors, the metatable will be consulted for an
+alternative index function.</p>
+--ldx]]--
+
+local mt = { } setmetatable(dimenfactors,mt)
+
+mt.__index = function(t,s)
+ error("wrong dimension: " .. s)
+ return 1
+end
+
+function string:todimen()
+ if type(self) == "number" then
+ return self
+ else
+ local value, unit = pattern:match(self)
+ print(value,unit)
+ return value/unit
+ end
+end
+
+--[[ldx--
+<p>This converter accepts calls like:</p>
+
+<typing>
+string.todimen("10"))
+string.todimen(".10"))
+string.todimen("10.0"))
+string.todimen("10.0pt"))
+string.todimen("10pt"))
+string.todimen("10.0pt"))
+</typing>
+
+<p>And of course the often more efficient:</p>
+
+<typing>
+somestring:todimen("12.3cm")
+</typing>
+
+<p>With this in place, we can now implement a proper datatype for dimensions, one
+that permits us to do this:</p>
+
+<typing>
+s = dimen "10pt" + dimen "20pt" + dimen "200pt"
+ - dimen "100sp" / 10 + "20pt" + "0pt"
+</typing>
+
+<p>We create a local metatable for this new type:</p>
+--ldx]]--
+
+local dimensions = { }
+
+--[[ldx--
+<p>The main (and globally) visible representation of a dimen is defined next: it is
+a one-element table. The unit that is returned from the match is normally a number
+(one of the previously defined factors) but we also accept functions. Later we will
+see why.</p>
+--ldx]]--
+
+function dimen(a)
+ if a then
+ local ta= type(a)
+ if ta == "string" then
+ local value, unit = pattern:match(a)
+ if type(unit) == "function" then
+ k = value/unit()
+ else
+ k = value/unit
+ end
+ a = k
+ elseif ta == "table" then
+ a = a[1]
+ end
+ return setmetatable({ a }, dimensions)
+ else
+ return setmetatable({ 0 }, dimensions)
+ end
+end
+
+--[[ldx--
+<p>This function return a small hash with a metatable attached. It is
+through this metatable that we can do the calculations. We could have
+shared some of the code but for reasons of speed we don't.</p>
+--ldx]]--
+
+function dimensions.__add(a, b)
+ local ta, tb = type(a), type(b)
+ if ta == "string" then a = a:todimen() elseif ta == "table" then a = a[1] end
+ if tb == "string" then b = b:todimen() elseif tb == "table" then b = b[1] end
+ return setmetatable({ a + b }, dimensions)
+end
+
+function dimensions.__sub(a, b)
+ local ta, tb = type(a), type(b)
+ if ta == "string" then a = a:todimen() elseif ta == "table" then a = a[1] end
+ if tb == "string" then b = b:todimen() elseif tb == "table" then b = b[1] end
+ return setmetatable({ a - b }, dimensions)
+end
+
+function dimensions.__mul(a, b)
+ local ta, tb = type(a), type(b)
+ if ta == "string" then a = a:todimen() elseif ta == "table" then a = a[1] end
+ if tb == "string" then b = b:todimen() elseif tb == "table" then b = b[1] end
+ return setmetatable({ a * b }, dimensions)
+end
+
+function dimensions.__div(a, b)
+ local ta, tb = type(a), type(b)
+ if ta == "string" then a = a:todimen() elseif ta == "table" then a = a[1] end
+ if tb == "string" then b = b:todimen() elseif tb == "table" then b = b[1] end
+ return setmetatable({ a / b }, dimensions)
+end
+
+function dimensions.__unm(a)
+ local ta = type(a)
+ if ta == "string" then a = a:todimen() elseif ta == "table" then a = a[1] end
+ return setmetatable({ - a }, dimensions)
+end
+
+--[[ldx--
+<p>It makes no sense to implement the power and modulo function but
+the next two do make sense because they permits is code like:</p>
+
+<typing>
+local a, b = dimen "10pt", dimen "11pt"
+...
+if a > b then
+ ...
+end
+</typing>
+--ldx]]--
+
+-- makes no sense: dimensions.__pow and dimensions.__mod
+
+function dimensions.__lt(a, b)
+ return a[1] < b[1]
+end
+
+function dimensions.__eq(a, b)
+ return a[1] == b[1]
+end
+
+--[[ldx--
+<p>We also need to provide a function for conversion to string (so that
+we can print dimensions). We print them as points, just like <l n='tex'/>.</p>
+--ldx]]--
+
+function dimensions.__tostring(a)
+ return a[1]/65536 .. "pt" -- instead of todimen(a[1])
+end
+
+--[[ldx--
+<p>Since it does not take much code, we also provide a way to access
+a few accessors</p>
+
+<typing>
+print(dimen().pt)
+print(dimen().sp)
+</typing>
+--ldx]]--
+
+function dimensions.__index(tab,key)
+ local d = dimenfactors[key]
+ if not d then
+ error("illegal property of dimen: " .. key)
+ d = 1
+ end
+ return 1/d
+end
+
+--[[ldx--
+<p>In the converter from string to dimension we support functions as
+factors. This is because in <l n='tex'/> we have a few more units:
+<type>ex</type> and <type>em</type>. These are not constant factors but
+depend on the current font. They are not defined by default, but need
+an explicit function call. This is because at the moment that this code
+is loaded, the relevant tables that hold the functions needed may not
+yet be available.</p>
+--ldx]]--
+
+function dimensions.texify()
+ local fti, fc = fonts and fonts.ids and fonts.ids, font and font.current
+ if fti and fc then
+ dimenfactors["ex"] = function() return fti[fc()].ex_height end
+ dimenfactors["em"] = function() return fti[fc()].quad end
+ else
+ dimenfactors["ex"] = 1/65536* 4 -- 4pt
+ dimenfactors["em"] = 1/65536*10 -- 10pt
+ end
+end
+
+--[[ldx--
+<p>In order to set the defaults we call this function now. At some point
+the macro package needs to make sure the function is called again.</p>
+--ldx]]--
+
+dimensions.texify()
+
+--[[ldx--
+<p>The previous code is rather efficient (also thanks to <l n='lpeg'/>) but we
+can speed it up by caching converted dimensions. On my machine (2008) the following
+loop takes about 25.5 seconds.</p>
+
+<typing>
+for i=1,1000000 do
+ local s = dimen "10pt" + dimen "20pt" + dimen "200pt"
+ - dimen "100sp" / 10 + "20pt" + "0pt"
+end
+</typing>
+
+<p>When we cache converted strings this becomes 16.3 seconds. In order not
+to waste too much memory on it, we tag the values of the cache as being
+week which mean that the garbage collector will collect them in a next
+sweep. This means that in most cases the speed up is mostly affecting the
+current couple of calculations and as such the speed penalty is small.</p>
+
+<p>We redefine two previous defined functions that can benefit from
+this:</p>
+--ldx]]--
+
+local known = { } setmetatable(known, { __mode = "v" })
+
+function dimen(a)
+ if a then
+ local ta= type(a)
+ if ta == "string" then
+ local k = known[a]
+ if k then
+ a = k
+ else
+ local value, unit = pattern:match(a)
+ if type(unit) == "function" then
+ k = value/unit()
+ else
+ k = value/unit
+ end
+ known[a] = k
+ a = k
+ end
+ elseif ta == "table" then
+ a = a[1]
+ end
+ return setmetatable({ a }, dimensions)
+ else
+ return setmetatable({ 0 }, dimensions)
+ end
+end
+
+function string:todimen()
+ if type(self) == "number" then
+ return self
+ else
+ local k = known[self]
+ if not k then
+ local value, unit = pattern:match(self)
+ if value and unit then
+ k = value/unit
+ else
+ k = 0
+ end
+ -- print(self,value,unit)
+ known[self] = k
+ end
+ return k
+ end
+end
+
+--[[ldx--
+<p>In a similar fashion we can define a glue datatype. In that case we
+probably use a hash instead of a one-element table.</p>
+--ldx]]--
+
+--[[ldx--
+<p>Goodie:s</p>
+--ldx]]--
+
+function number.percent(n) -- will be cleaned up once luatex 0.30 is out
+ local hsize = tex.hsize
+ if type(hsize) == "string" then
+ hsize = hsize:todimen()
+ end
+ return (n/100) * hsize
+end
+
+number["%"] = number.percent
diff --git a/Master/texmf-dist/tex/context/base/l-dir.lua b/Master/texmf-dist/tex/context/base/l-dir.lua
index d24eb33a9f1..5a726303f0c 100644
--- a/Master/texmf-dist/tex/context/base/l-dir.lua
+++ b/Master/texmf-dist/tex/context/base/l-dir.lua
@@ -1,262 +1,203 @@
--- filename : l-dir.lua
--- comment : split off from luat-lib
--- author : Hans Hagen, PRAGMA-ADE, Hasselt NL
--- copyright: PRAGMA ADE / ConTeXt Development Team
--- license : see context related readme files
+if not modules then modules = { } end modules ['l-dir'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
-if not versions then versions = { } end versions['l-dir'] = 1.001
+local type = type
+local find, gmatch = string.find, string.gmatch
-dir = { }
+dir = dir or { }
-- optimizing for no string.find (*) does not save time
-if lfs then do
+local attributes = lfs.attributes
+local walkdir = lfs.dir
---~ local attributes = lfs.attributes
---~ local walkdir = lfs.dir
---~
---~ local function glob_pattern(path,patt,recurse,action)
---~ local ok, scanner = xpcall(function() return walkdir(path) end, function() end) -- kepler safe
---~ if ok and type(scanner) == "function" then
---~ if not path:find("/$") then path = path .. '/' end
---~ for name in scanner do
---~ local full = path .. name
---~ local mode = attributes(full,'mode')
---~ if mode == 'file' then
---~ if name:find(patt) then
---~ action(full)
---~ end
---~ elseif recurse and (mode == "directory") and (name ~= '.') and (name ~= "..") then
---~ glob_pattern(full,patt,recurse,action)
---~ end
---~ end
---~ end
---~ end
---~
---~ dir.glob_pattern = glob_pattern
---~
---~ local function glob(pattern, action)
---~ local t = { }
---~ local action = action or function(name) t[#t+1] = name end
---~ local path, patt = pattern:match("^(.*)/*%*%*/*(.-)$")
---~ local recurse = path and patt
---~ if not recurse then
---~ path, patt = pattern:match("^(.*)/(.-)$")
---~ if not (path and patt) then
---~ path, patt = '.', pattern
---~ end
---~ end
---~ patt = patt:gsub("([%.%-%+])", "%%%1")
---~ patt = patt:gsub("%*", ".*")
---~ patt = patt:gsub("%?", ".")
---~ patt = "^" .. patt .. "$"
---~ -- print('path: ' .. path .. ' | pattern: ' .. patt .. ' | recurse: ' .. tostring(recurse))
---~ glob_pattern(path,patt,recurse,action)
---~ return t
---~ end
---~
---~ dir.glob = glob
-
- local attributes = lfs.attributes
- local walkdir = lfs.dir
-
- local function glob_pattern(path,patt,recurse,action)
- local ok, scanner
- if path == "/" then
- ok, scanner = xpcall(function() return walkdir(path..".") end, function() end) -- kepler safe
- else
- ok, scanner = xpcall(function() return walkdir(path) end, function() end) -- kepler safe
- end
- if ok and type(scanner) == "function" then
- if not path:find("/$") then path = path .. '/' end
- for name in scanner do
- local full = path .. name
- local mode = attributes(full,'mode')
- if mode == 'file' then
- if full:find(patt) then
- action(full)
- end
- elseif recurse and (mode == "directory") and (name ~= '.') and (name ~= "..") then
- glob_pattern(full,patt,recurse,action)
+local function glob_pattern(path,patt,recurse,action)
+ local ok, scanner
+ if path == "/" then
+ ok, scanner = xpcall(function() return walkdir(path..".") end, function() end) -- kepler safe
+ else
+ ok, scanner = xpcall(function() return walkdir(path) end, function() end) -- kepler safe
+ end
+ if ok and type(scanner) == "function" then
+ if not find(path,"/$") then path = path .. '/' end
+ for name in scanner do
+ local full = path .. name
+ local mode = attributes(full,'mode')
+ if mode == 'file' then
+ if find(full,patt) then
+ action(full)
end
+ elseif recurse and (mode == "directory") and (name ~= '.') and (name ~= "..") then
+ glob_pattern(full,patt,recurse,action)
end
end
end
-
- dir.glob_pattern = glob_pattern
-
- --~ local function glob(pattern, action)
- --~ local t = { }
- --~ local path, rest, patt, recurse
- --~ local action = action or function(name) t[#t+1] = name end
- --~ local pattern = pattern:gsub("^%*%*","./**")
- --~ local pattern = pattern:gsub("/%*/","/**/")
- --~ path, rest = pattern:match("^(/)(.-)$")
- --~ if path then
- --~ path = path
- --~ else
- --~ path, rest = pattern:match("^([^/]*)/(.-)$")
- --~ end
- --~ if rest then
- --~ patt = rest:gsub("([%.%-%+])", "%%%1")
- --~ end
- --~ patt = patt:gsub("%*", "[^/]*")
- --~ patt = patt:gsub("%?", "[^/]")
- --~ patt = patt:gsub("%[%^/%]%*%[%^/%]%*", ".*")
- --~ if path == "" then path = "." end
- --~ recurse = patt:find("%.%*/") ~= nil
- --~ glob_pattern(path,patt,recurse,action)
- --~ return t
- --~ end
-
- local P, S, R, C, Cc, Cs, Ct, Cv, V = lpeg.P, lpeg.S, lpeg.R, lpeg.C, lpeg.Cc, lpeg.Cs, lpeg.Ct, lpeg.Cv, lpeg.V
-
- local pattern = Ct {
- [1] = (C(P(".") + P("/")^1) + C(R("az","AZ") * P(":") * P("/")^0) + Cc("./")) * V(2) * V(3),
- [2] = C(((1-S("*?/"))^0 * P("/"))^0),
- [3] = C(P(1)^0)
- }
-
- local filter = Cs ( (
- P("**") / ".*" +
- P("*") / "[^/]*" +
- P("?") / "[^/]" +
- P(".") / "%%." +
- P("+") / "%%+" +
- P("-") / "%%-" +
- P(1)
- )^0 )
-
- local function glob(str,t)
- if type(str) == "table" then
+end
+
+dir.glob_pattern = glob_pattern
+
+local P, S, R, C, Cc, Cs, Ct, Cv, V = lpeg.P, lpeg.S, lpeg.R, lpeg.C, lpeg.Cc, lpeg.Cs, lpeg.Ct, lpeg.Cv, lpeg.V
+
+local pattern = Ct {
+ [1] = (C(P(".") + P("/")^1) + C(R("az","AZ") * P(":") * P("/")^0) + Cc("./")) * V(2) * V(3),
+ [2] = C(((1-S("*?/"))^0 * P("/"))^0),
+ [3] = C(P(1)^0)
+}
+
+local filter = Cs ( (
+ P("**") / ".*" +
+ P("*") / "[^/]*" +
+ P("?") / "[^/]" +
+ P(".") / "%%." +
+ P("+") / "%%+" +
+ P("-") / "%%-" +
+ P(1)
+)^0 )
+
+local function glob(str,t)
+ if type(str) == "table" then
+ local t = t or { }
+ for s=1,#str do
+ glob(str[s],t)
+ end
+ return t
+ elseif lfs.isfile(str) then
+ local t = t or { }
+ t[#t+1] = str
+ return t
+ else
+ local split = pattern:match(str)
+ if split then
local t = t or { }
- for _, s in ipairs(str) do
- glob(s,t)
- end
+ local action = action or function(name) t[#t+1] = name end
+ local root, path, base = split[1], split[2], split[3]
+ local recurse = find(base,"%*%*")
+ local start = root .. path
+ local result = filter:match(start .. base)
+ glob_pattern(start,result,recurse,action)
return t
else
- local split = pattern:match(str)
- if split then
- local t = t or { }
- local action = action or function(name) t[#t+1] = name end
- local root, path, base = split[1], split[2], split[3]
- local recurse = base:find("**")
- local start = root .. path
- local result = filter:match(start .. base)
- glob_pattern(start,result,recurse,action)
- return t
- else
- return { }
- end
+ return { }
end
end
+end
- dir.glob = glob
+dir.glob = glob
- --~ list = dir.glob("**/*.tif")
- --~ list = dir.glob("/**/*.tif")
- --~ list = dir.glob("./**/*.tif")
- --~ list = dir.glob("oeps/**/*.tif")
- --~ list = dir.glob("/oeps/**/*.tif")
+--~ list = dir.glob("**/*.tif")
+--~ list = dir.glob("/**/*.tif")
+--~ list = dir.glob("./**/*.tif")
+--~ list = dir.glob("oeps/**/*.tif")
+--~ list = dir.glob("/oeps/**/*.tif")
- local function globfiles(path,recurse,func,files) -- func == pattern or function
- if type(func) == "string" then
- local s = func -- alas, we need this indirect way
- func = function(name) return name:find(s) end
- end
- files = files or { }
- for name in walkdir(path) do
- if name:find("^%.") then
- --- skip
- elseif attributes(name,'mode') == "directory" then
+local function globfiles(path,recurse,func,files) -- func == pattern or function
+ if type(func) == "string" then
+ local s = func -- alas, we need this indirect way
+ func = function(name) return find(name,s) end
+ end
+ files = files or { }
+ for name in walkdir(path) do
+ if find(name,"^%.") then
+ --- skip
+ else
+ local mode = attributes(name,'mode')
+ if mode == "directory" then
if recurse then
globfiles(path .. "/" .. name,recurse,func,files)
end
- elseif func then
- if func(name) then
+ elseif mode == "file" then
+ if func then
+ if func(name) then
+ files[#files+1] = path .. "/" .. name
+ end
+ else
files[#files+1] = path .. "/" .. name
end
- else
- files[#files+1] = path .. "/" .. name
end
end
- return files
end
+ return files
+end
- dir.globfiles = globfiles
+dir.globfiles = globfiles
- -- t = dir.glob("c:/data/develop/context/sources/**/????-*.tex")
- -- t = dir.glob("c:/data/develop/tex/texmf/**/*.tex")
- -- t = dir.glob("c:/data/develop/context/texmf/**/*.tex")
- -- t = dir.glob("f:/minimal/tex/**/*")
- -- print(dir.ls("f:/minimal/tex/**/*"))
- -- print(dir.ls("*.tex"))
+-- t = dir.glob("c:/data/develop/context/sources/**/????-*.tex")
+-- t = dir.glob("c:/data/develop/tex/texmf/**/*.tex")
+-- t = dir.glob("c:/data/develop/context/texmf/**/*.tex")
+-- t = dir.glob("f:/minimal/tex/**/*")
+-- print(dir.ls("f:/minimal/tex/**/*"))
+-- print(dir.ls("*.tex"))
- function dir.ls(pattern)
- return table.concat(glob(pattern),"\n")
- end
+function dir.ls(pattern)
+ return table.concat(glob(pattern),"\n")
+end
- --~ mkdirs("temp")
- --~ mkdirs("a/b/c")
- --~ mkdirs(".","/a/b/c")
- --~ mkdirs("a","b","c")
+--~ mkdirs("temp")
+--~ mkdirs("a/b/c")
+--~ mkdirs(".","/a/b/c")
+--~ mkdirs("a","b","c")
- local make_indeed = true -- false
+local make_indeed = true -- false
- if string.find(os.getenv("PATH"),";") then
+if string.find(os.getenv("PATH"),";") then
- function dir.mkdirs(...)
- local str, pth = "", ""
- for _, s in ipairs({...}) do
- if s ~= "" then
- if str ~= "" then
- str = str .. "/" .. s
- else
- str = s
- end
+ function dir.mkdirs(...)
+ local str, pth = "", ""
+ for _, s in ipairs({...}) do
+ if s ~= "" then
+ if str ~= "" then
+ str = str .. "/" .. s
+ else
+ str = s
end
end
- local first, middle, last
- local drive = false
- first, middle, last = str:match("^(//)(//*)(.*)$")
+ end
+ local first, middle, last
+ local drive = false
+ first, middle, last = str:match("^(//)(//*)(.*)$")
+ if first then
+ -- empty network path == local path
+ else
+ first, last = str:match("^(//)/*(.-)$")
if first then
- -- empty network path == local path
+ middle, last = str:match("([^/]+)/+(.-)$")
+ if middle then
+ pth = "//" .. middle
+ else
+ pth = "//" .. last
+ last = ""
+ end
else
- first, last = str:match("^(//)/*(.-)$")
+ first, middle, last = str:match("^([a-zA-Z]:)(/*)(.-)$")
if first then
- middle, last = str:match("([^/]+)/+(.-)$")
- if middle then
- pth = "//" .. middle
- else
- pth = "//" .. last
- last = ""
- end
+ pth, drive = first .. middle, true
else
- first, middle, last = str:match("^([a-zA-Z]:)(/*)(.-)$")
- if first then
- pth, drive = first .. middle, true
- else
- middle, last = str:match("^(/*)(.-)$")
- if not middle then
- last = str
- end
+ middle, last = str:match("^(/*)(.-)$")
+ if not middle then
+ last = str
end
end
end
- for s in last:gmatch("[^/]+") do
- if pth == "" then
- pth = s
- elseif drive then
- pth, drive = pth .. s, false
- else
- pth = pth .. "/" .. s
- end
- if make_indeed and not lfs.isdir(pth) then
- lfs.mkdir(pth)
- end
+ end
+ for s in gmatch(last,"[^/]+") do
+ if pth == "" then
+ pth = s
+ elseif drive then
+ pth, drive = pth .. s, false
+ else
+ pth = pth .. "/" .. s
+ end
+ if make_indeed and not lfs.isdir(pth) then
+ lfs.mkdir(pth)
end
- return pth, (lfs.isdir(pth) == true)
end
+ return pth, (lfs.isdir(pth) == true)
+ end
--~ print(dir.mkdirs("","","a","c"))
--~ print(dir.mkdirs("a"))
@@ -270,79 +211,79 @@ if lfs then do
--~ print(dir.mkdirs("///a/b/c"))
--~ print(dir.mkdirs("a/bbb//ccc/"))
- function dir.expand_name(str)
- local first, nothing, last = str:match("^(//)(//*)(.*)$")
- if first then
- first = lfs.currentdir() .. "/"
- first = first:gsub("\\","/")
- end
- if not first then
- first, last = str:match("^(//)/*(.*)$")
- end
- if not first then
- first, last = str:match("^([a-zA-Z]:)(.*)$")
- if first and not last:find("^/") then
- local d = lfs.currentdir()
- if lfs.chdir(first) then
- first = lfs.currentdir()
- first = first:gsub("\\","/")
- end
- lfs.chdir(d)
+ function dir.expand_name(str)
+ local first, nothing, last = str:match("^(//)(//*)(.*)$")
+ if first then
+ first = lfs.currentdir() .. "/"
+ first = first:gsub("\\","/")
+ end
+ if not first then
+ first, last = str:match("^(//)/*(.*)$")
+ end
+ if not first then
+ first, last = str:match("^([a-zA-Z]:)(.*)$")
+ if first and not find(last,"^/") then
+ local d = lfs.currentdir()
+ if lfs.chdir(first) then
+ first = lfs.currentdir()
+ first = first:gsub("\\","/")
end
- end
- if not first then
- first, last = lfs.currentdir(), str
- first = first:gsub("\\","/")
- end
- last = last:gsub("//","/")
- last = last:gsub("/%./","/")
- last = last:gsub("^/*","")
- first = first:gsub("/*$","")
- if last == "" then
- return first
- else
- return first .. "/" .. last
+ lfs.chdir(d)
end
end
+ if not first then
+ first, last = lfs.currentdir(), str
+ first = first:gsub("\\","/")
+ end
+ last = last:gsub("//","/")
+ last = last:gsub("/%./","/")
+ last = last:gsub("^/*","")
+ first = first:gsub("/*$","")
+ if last == "" then
+ return first
+ else
+ return first .. "/" .. last
+ end
+ end
- else
+else
- function dir.mkdirs(...)
- local str, pth = "", ""
- for _, s in ipairs({...}) do
- if s ~= "" then
- if str ~= "" then
- str = str .. "/" .. s
- else
- str = s
- end
+ function dir.mkdirs(...)
+ local str, pth = "", ""
+ for _, s in ipairs({...}) do
+ if s ~= "" then
+ if str ~= "" then
+ str = str .. "/" .. s
+ else
+ str = s
end
end
- str = str:gsub("/+","/")
- if str:find("^/") then
- pth = "/"
- for s in str:gmatch("[^/]+") do
- local first = (pth == "/")
- if first then
- pth = pth .. s
- else
- pth = pth .. "/" .. s
- end
- if make_indeed and not first and not lfs.isdir(pth) then
- lfs.mkdir(pth)
- end
- end
- else
- pth = "."
- for s in str:gmatch("[^/]+") do
+ end
+ str = str:gsub("/+","/")
+ if find(str,"^/") then
+ pth = "/"
+ for s in gmatch(str,"[^/]+") do
+ local first = (pth == "/")
+ if first then
+ pth = pth .. s
+ else
pth = pth .. "/" .. s
- if make_indeed and not lfs.isdir(pth) then
- lfs.mkdir(pth)
- end
+ end
+ if make_indeed and not first and not lfs.isdir(pth) then
+ lfs.mkdir(pth)
+ end
+ end
+ else
+ pth = "."
+ for s in gmatch(str,"[^/]+") do
+ pth = pth .. "/" .. s
+ if make_indeed and not lfs.isdir(pth) then
+ lfs.mkdir(pth)
end
end
- return pth, (lfs.isdir(pth) == true)
end
+ return pth, (lfs.isdir(pth) == true)
+ end
--~ print(dir.mkdirs("","","a","c"))
--~ print(dir.mkdirs("a"))
@@ -352,17 +293,15 @@ if lfs then do
--~ print(dir.mkdirs("///a/b/c"))
--~ print(dir.mkdirs("a/bbb//ccc/"))
- function dir.expand_name(str)
- if not str:find("^/") then
- str = lfs.currentdir() .. "/" .. str
- end
- str = str:gsub("//","/")
- str = str:gsub("/%./","/")
- return str
+ function dir.expand_name(str)
+ if not find(str,"^/") then
+ str = lfs.currentdir() .. "/" .. str
end
-
+ str = str:gsub("//","/")
+ str = str:gsub("/%./","/")
+ return str
end
- dir.makedirs = dir.mkdirs
+end
-end end
+dir.makedirs = dir.mkdirs
diff --git a/Master/texmf-dist/tex/context/base/l-file.lua b/Master/texmf-dist/tex/context/base/l-file.lua
index f49add5456b..0782ac67634 100644
--- a/Master/texmf-dist/tex/context/base/l-file.lua
+++ b/Master/texmf-dist/tex/context/base/l-file.lua
@@ -1,19 +1,24 @@
--- filename : l-file.lua
--- comment : split off from luat-lib
--- author : Hans Hagen, PRAGMA-ADE, Hasselt NL
--- copyright: PRAGMA ADE / ConTeXt Development Team
--- license : see context related readme files
+if not modules then modules = { } end modules ['l-file'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
-if not versions then versions = { } end versions['l-file'] = 1.001
+-- needs a cleanup
-if not file then file = { } end
+file = file or { }
+
+local concat = table.concat
+local find, gmatch, match, gsub = string.find, string.gmatch, string.match, string.gsub
function file.removesuffix(filename)
- return filename:gsub("%.[%a%d]+$", "")
+ return (gsub(filename,"%.[%a%d]+$",""))
end
function file.addsuffix(filename, suffix)
- if not filename:find("%.[%a%d]+$") then
+ if not find(filename,"%.[%a%d]+$") then
return filename .. "." .. suffix
else
return filename
@@ -21,43 +26,27 @@ function file.addsuffix(filename, suffix)
end
function file.replacesuffix(filename, suffix)
- if not filename:find("%.[%a%d]+$") then
- return filename .. "." .. suffix
- else
- return (filename:gsub("%.[%a%d]+$","."..suffix))
- end
+ return (gsub(filename,"%.[%a%d]+$","")) .. "." .. suffix
end
-function file.dirname(name)
- return name:match("^(.+)[/\\].-$") or ""
+function file.dirname(name,default)
+ return match(name,"^(.+)[/\\].-$") or (default or "")
end
function file.basename(name)
- return name:match("^.+[/\\](.-)$") or name
+ return match(name,"^.+[/\\](.-)$") or name
end
function file.nameonly(name)
- return ((name:match("^.+[/\\](.-)$") or name):gsub("%..*$",""))
+ return (gsub(match(name,"^.+[/\\](.-)$") or name,"%..*$",""))
end
function file.extname(name)
- return name:match("^.+%.([^/\\]-)$") or ""
+ return match(name,"^.+%.([^/\\]-)$") or ""
end
file.suffix = file.extname
-function file.stripsuffix(name)
- return (name:gsub("%.[%a%d]+$",""))
-end
-
---~ function file.join(...)
---~ local t = { ... }
---~ for i=1,#t do
---~ t[i] = (t[i]:gsub("\\","/")):gsub("/+$","")
---~ end
---~ return table.concat(t,"/")
---~ end
-
--~ print(file.join("x/","/y"))
--~ print(file.join("http://","/y"))
--~ print(file.join("http://a","/y"))
@@ -65,97 +54,73 @@ end
--~ print(file.join("//nas-1","/y"))
function file.join(...)
- local pth = table.concat({...},"/")
- pth = pth:gsub("\\","/")
- local a, b = pth:match("^(.*://)(.*)$")
+ local pth = concat({...},"/")
+ pth = gsub(pth,"\\","/")
+ local a, b = match(pth,"^(.*://)(.*)$")
if a and b then
- return a .. b:gsub("//+","/")
+ return a .. gsub(b,"//+","/")
end
- a, b = pth:match("^(//)(.*)$")
+ a, b = match(pth,"^(//)(.*)$")
if a and b then
- return a .. b:gsub("//+","/")
+ return a .. gsub(b,"//+","/")
end
- return (pth:gsub("//+","/"))
+ return (gsub(pth,"//+","/"))
end
-function file.is_writable(name)
- local f = io.open(name, 'w')
- if f then
- f:close()
- return true
- else
- return false
- end
+function file.iswritable(name)
+ local a = lfs.attributes(name) or lfs.attributes(file.dirname(name,"."))
+ return a and a.permissions:sub(2,2) == "w"
end
-function file.is_readable(name)
- local f = io.open(name,'r')
- if f then
- f:close()
- return true
- else
- return false
- end
+function file.isreadable(name)
+ local a = lfs.attributes(name)
+ return a and a.permissions:sub(1,1) == "r"
end
---~ function file.split_path(str)
---~ if str:find(';') then
---~ return str:splitchr(";")
---~ else
---~ return str:splitchr(io.pathseparator)
---~ end
---~ end
+file.is_readable = file.isreadable
+file.is_writable = file.iswritable
-- todo: lpeg
function file.split_path(str)
local t = { }
- str = str:gsub("\\", "/")
- str = str:gsub("(%a):([;/])", "%1\001%2")
- for name in str:gmatch("([^;:]+)") do
+ str = gsub(str,"\\", "/")
+ str = gsub(str,"(%a):([;/])", "%1\001%2")
+ for name in gmatch(str,"([^;:]+)") do
if name ~= "" then
- name = name:gsub("\001",":")
- t[#t+1] = name
+ t[#t+1] = gsub(name,"\001",":")
end
end
return t
end
function file.join_path(tab)
- return table.concat(tab,io.pathseparator) -- can have trailing //
-end
-
---~ print('test' .. " == " .. file.collapse_path("test"))
---~ print("test/test" .. " == " .. file.collapse_path("test/test"))
---~ print("test/test/test" .. " == " .. file.collapse_path("test/test/test"))
---~ print("test/test" .. " == " .. file.collapse_path("test/../test/test"))
---~ print("test" .. " == " .. file.collapse_path("test/../test"))
---~ print("../test" .. " == " .. file.collapse_path("../test"))
---~ print("../test/" .. " == " .. file.collapse_path("../test/"))
---~ print("a/a" .. " == " .. file.collapse_path("a/b/c/../../a"))
-
---~ function file.collapse_path(str)
---~ local ok, n = false, 0
---~ while not ok do
---~ ok = true
---~ str, n = str:gsub("[^%./]+/%.%./", function(s)
---~ ok = false
---~ return ""
---~ end)
---~ end
---~ return (str:gsub("/%./","/"))
---~ end
+ return concat(tab,io.pathseparator) -- can have trailing //
+end
function file.collapse_path(str)
- local n = 1
- while n > 0 do
- str, n = str:gsub("([^/%.]+/%.%./)","")
+ str = gsub(str,"/%./","/")
+ local n, m = 1, 1
+ while n > 0 or m > 0 do
+ str, n = gsub(str,"[^/%.]+/%.%.$","")
+ str, m = gsub(str,"[^/%.]+/%.%./","")
end
- return (str:gsub("/%./","/"))
+ str = gsub(str,"([^/])/$","%1")
+ str = gsub(str,"^%./","")
+ str = gsub(str,"/%.$","")
+ if str == "" then str = "." end
+ return str
end
+--~ print(file.collapse_path("a/./b/.."))
+--~ print(file.collapse_path("a/aa/../b/bb"))
+--~ print(file.collapse_path("a/../.."))
+--~ print(file.collapse_path("a/.././././b/.."))
+--~ print(file.collapse_path("a/./././b/.."))
+--~ print(file.collapse_path("a/b/c/../.."))
+
function file.robustname(str)
- return (str:gsub("[^%a%d%/%-%.\\]+","-"))
+ return (gsub(str,"[^%a%d%/%-%.\\]+","-"))
end
file.readdata = io.loaddata
@@ -164,3 +129,130 @@ file.savedata = io.savedata
function file.copy(oldname,newname)
file.savedata(newname,io.loaddata(oldname))
end
+
+-- lpeg variants, slightly faster, not always
+
+--~ local period = lpeg.P(".")
+--~ local slashes = lpeg.S("\\/")
+--~ local noperiod = 1-period
+--~ local noslashes = 1-slashes
+--~ local name = noperiod^1
+
+--~ local pattern = (noslashes^0 * slashes)^0 * (noperiod^1 * period)^1 * lpeg.C(noperiod^1) * -1
+
+--~ function file.extname(name)
+--~ return pattern:match(name) or ""
+--~ end
+
+--~ local pattern = lpeg.Cs(((period * noperiod^1 * -1)/"" + 1)^1)
+
+--~ function file.removesuffix(name)
+--~ return pattern:match(name)
+--~ end
+
+--~ local pattern = (noslashes^0 * slashes)^1 * lpeg.C(noslashes^1) * -1
+
+--~ function file.basename(name)
+--~ return pattern:match(name) or name
+--~ end
+
+--~ local pattern = (noslashes^0 * slashes)^1 * lpeg.Cp() * noslashes^1 * -1
+
+--~ function file.dirname(name)
+--~ local p = pattern:match(name)
+--~ if p then
+--~ return name:sub(1,p-2)
+--~ else
+--~ return ""
+--~ end
+--~ end
+
+--~ local pattern = (noslashes^0 * slashes)^0 * (noperiod^1 * period)^1 * lpeg.Cp() * noperiod^1 * -1
+
+--~ function file.addsuffix(name, suffix)
+--~ local p = pattern:match(name)
+--~ if p then
+--~ return name
+--~ else
+--~ return name .. "." .. suffix
+--~ end
+--~ end
+
+--~ local pattern = (noslashes^0 * slashes)^0 * (noperiod^1 * period)^1 * lpeg.Cp() * noperiod^1 * -1
+
+--~ function file.replacesuffix(name,suffix)
+--~ local p = pattern:match(name)
+--~ if p then
+--~ return name:sub(1,p-2) .. "." .. suffix
+--~ else
+--~ return name .. "." .. suffix
+--~ end
+--~ end
+
+--~ local pattern = (noslashes^0 * slashes)^0 * lpeg.Cp() * ((noperiod^1 * period)^1 * lpeg.Cp() + lpeg.P(true)) * noperiod^1 * -1
+
+--~ function file.nameonly(name)
+--~ local a, b = pattern:match(name)
+--~ if b then
+--~ return name:sub(a,b-2)
+--~ elseif a then
+--~ return name:sub(a)
+--~ else
+--~ return name
+--~ end
+--~ end
+
+--~ local test = file.extname
+--~ local test = file.basename
+--~ local test = file.dirname
+--~ local test = file.addsuffix
+--~ local test = file.replacesuffix
+--~ local test = file.nameonly
+
+--~ print(1,test("./a/b/c/abd.def.xxx","!!!"))
+--~ print(2,test("./../b/c/abd.def.xxx","!!!"))
+--~ print(3,test("a/b/c/abd.def.xxx","!!!"))
+--~ print(4,test("a/b/c/def.xxx","!!!"))
+--~ print(5,test("a/b/c/def","!!!"))
+--~ print(6,test("def","!!!"))
+--~ print(7,test("def.xxx","!!!"))
+
+--~ local tim = os.clock() for i=1,250000 do local ext = test("abd.def.xxx","!!!") end print(os.clock()-tim)
+
+-- also rewrite previous
+
+local letter = lpeg.R("az","AZ") + lpeg.S("_-+")
+local separator = lpeg.P("://")
+
+local qualified = lpeg.P(".")^0 * lpeg.P("/") + letter*lpeg.P(":") + letter^1*separator + letter^1 * lpeg.P("/")
+local rootbased = lpeg.P("/") + letter*lpeg.P(":")
+
+-- ./name ../name /name c: :// name/name
+
+function file.is_qualified_path(filename)
+ return qualified:match(filename)
+end
+
+function file.is_rootbased_path(filename)
+ return rootbased:match(filename)
+end
+
+local slash = lpeg.S("\\/")
+local period = lpeg.P(".")
+local drive = lpeg.C(lpeg.R("az","AZ")) * lpeg.P(":")
+local path = lpeg.C(((1-slash)^0 * slash)^0)
+local suffix = period * lpeg.C(lpeg.P(1-period)^0 * lpeg.P(-1))
+local base = lpeg.C((1-suffix)^0)
+
+local pattern = (drive + lpeg.Cc("")) * (path + lpeg.Cc("")) * (base + lpeg.Cc("")) * (suffix + lpeg.Cc(""))
+
+function file.splitname(str) -- returns drive, path, base, suffix
+ return pattern:match(str)
+end
+
+-- function test(t) for k, v in pairs(t) do print(v, "=>", file.splitname(v)) end end
+--
+-- test { "c:", "c:/aa", "c:/aa/bb", "c:/aa/bb/cc", "c:/aa/bb/cc.dd", "c:/aa/bb/cc.dd.ee" }
+-- test { "c:", "c:aa", "c:aa/bb", "c:aa/bb/cc", "c:aa/bb/cc.dd", "c:aa/bb/cc.dd.ee" }
+-- test { "/aa", "/aa/bb", "/aa/bb/cc", "/aa/bb/cc.dd", "/aa/bb/cc.dd.ee" }
+-- test { "aa", "aa/bb", "aa/bb/cc", "aa/bb/cc.dd", "aa/bb/cc.dd.ee" }
diff --git a/Master/texmf-dist/tex/context/base/l-io.lua b/Master/texmf-dist/tex/context/base/l-io.lua
index a178c838f20..bcdf8791e3e 100644
--- a/Master/texmf-dist/tex/context/base/l-io.lua
+++ b/Master/texmf-dist/tex/context/base/l-io.lua
@@ -1,10 +1,12 @@
--- filename : l-io.lua
--- comment : split off from luat-lib
--- author : Hans Hagen, PRAGMA-ADE, Hasselt NL
--- copyright: PRAGMA ADE / ConTeXt Development Team
--- license : see context related readme files
+if not modules then modules = { } end modules ['l-io'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
-if not versions then versions = { } end versions['l-io'] = 1.001
+local byte = string.byte
if string.find(os.getenv("PATH"),";") then
io.fileseparator, io.pathseparator = "\\", ";"
@@ -12,10 +14,12 @@ else
io.fileseparator, io.pathseparator = "/" , ":"
end
-function io.loaddata(filename)
- local f = io.open(filename,'rb')
+function io.loaddata(filename,textmode)
+ local f = io.open(filename,(textmode and 'r') or 'rb')
if f then
+ -- collectgarbage("step") -- sometimes makes a big difference in mem consumption
local data = f:read('*all')
+ -- garbagecollector.check(data)
f:close()
return data
else
@@ -24,7 +28,7 @@ function io.loaddata(filename)
end
function io.savedata(filename,data,joiner)
- local f = io.open(filename, "wb")
+ local f = io.open(filename,"wb")
if f then
if type(data) == "table" then
f:write(table.join(data,joiner or ""))
@@ -34,6 +38,9 @@ function io.savedata(filename,data,joiner)
f:write(data)
end
f:close()
+ return true
+ else
+ return false
end
end
@@ -67,146 +74,83 @@ function io.noflines(f)
return n
end
-do
+local nextchar = {
+ [ 4] = function(f)
+ return f:read(1,1,1,1)
+ end,
+ [ 2] = function(f)
+ return f:read(1,1)
+ end,
+ [ 1] = function(f)
+ return f:read(1)
+ end,
+ [-2] = function(f)
+ local a, b = f:read(1,1)
+ return b, a
+ end,
+ [-4] = function(f)
+ local a, b, c, d = f:read(1,1,1,1)
+ return d, c, b, a
+ end
+}
- local sb = string.byte
+function io.characters(f,n)
+ if f then
+ return nextchar[n or 1], f
+ else
+ return nil, nil
+ end
+end
- local nextchar = {
- [ 4] = function(f)
- return f:read(1,1,1,1)
- end,
- [ 2] = function(f)
- return f:read(1,1)
- end,
- [ 1] = function(f)
- return f:read(1)
- end,
- [-2] = function(f)
- local a, b = f:read(1,1)
- return b, a
- end,
- [-4] = function(f)
- local a, b, c, d = f:read(1,1,1,1)
- return d, c, b, a
+local nextbyte = {
+ [4] = function(f)
+ local a, b, c, d = f:read(1,1,1,1)
+ if d then
+ return byte(a), byte(b), byte(c), byte(d)
+ else
+ return nil, nil, nil, nil
end
- }
-
- function io.characters(f,n)
- if f then
- return nextchar[n or 1], f
+ end,
+ [2] = function(f)
+ local a, b = f:read(1,1)
+ if b then
+ return byte(a), byte(b)
else
return nil, nil
end
- end
-
-end
-
-do
-
- local sb = string.byte
-
---~ local nextbyte = {
---~ [4] = function(f)
---~ local a = f:read(1)
---~ local b = f:read(1)
---~ local c = f:read(1)
---~ local d = f:read(1)
---~ if d then
---~ return sb(a), sb(b), sb(c), sb(d)
---~ else
---~ return nil, nil, nil, nil
---~ end
---~ end,
---~ [2] = function(f)
---~ local a = f:read(1)
---~ local b = f:read(1)
---~ if b then
---~ return sb(a), sb(b)
---~ else
---~ return nil, nil
---~ end
---~ end,
---~ [1] = function (f)
---~ local a = f:read(1)
---~ if a then
---~ return sb(a)
---~ else
---~ return nil
---~ end
---~ end,
---~ [-2] = function (f)
---~ local a = f:read(1)
---~ local b = f:read(1)
---~ if b then
---~ return sb(b), sb(a)
---~ else
---~ return nil, nil
---~ end
---~ end,
---~ [-4] = function(f)
---~ local a = f:read(1)
---~ local b = f:read(1)
---~ local c = f:read(1)
---~ local d = f:read(1)
---~ if d then
---~ return sb(d), sb(c), sb(b), sb(a)
---~ else
---~ return nil, nil, nil, nil
---~ end
---~ end
---~ }
-
- local nextbyte = {
- [4] = function(f)
- local a, b, c, d = f:read(1,1,1,1)
- if d then
- return sb(a), sb(b), sb(c), sb(d)
- else
- return nil, nil, nil, nil
- end
- end,
- [2] = function(f)
- local a, b = f:read(1,1)
- if b then
- return sb(a), sb(b)
- else
- return nil, nil
- end
- end,
- [1] = function (f)
- local a = f:read(1)
- if a then
- return sb(a)
- else
- return nil
- end
- end,
- [-2] = function (f)
- local a, b = f:read(1,1)
- if b then
- return sb(b), sb(a)
- else
- return nil, nil
- end
- end,
- [-4] = function(f)
- local a, b, c, d = f:read(1,1,1,1)
- if d then
- return sb(d), sb(c), sb(b), sb(a)
- else
- return nil, nil, nil, nil
- end
+ end,
+ [1] = function (f)
+ local a = f:read(1)
+ if a then
+ return byte(a)
+ else
+ return nil
end
- }
-
- function io.bytes(f,n)
- if f then
- return nextbyte[n or 1], f
+ end,
+ [-2] = function (f)
+ local a, b = f:read(1,1)
+ if b then
+ return byte(b), byte(a)
else
return nil, nil
end
+ end,
+ [-4] = function(f)
+ local a, b, c, d = f:read(1,1,1,1)
+ if d then
+ return byte(d), byte(c), byte(b), byte(a)
+ else
+ return nil, nil, nil, nil
+ end
end
+}
+function io.bytes(f,n)
+ if f then
+ return nextbyte[n or 1], f
+ else
+ return nil, nil
+ end
end
function io.ask(question,default,options)
diff --git a/Master/texmf-dist/tex/context/base/l-lpeg.lua b/Master/texmf-dist/tex/context/base/l-lpeg.lua
index bee903549d3..88b445717f6 100644
--- a/Master/texmf-dist/tex/context/base/l-lpeg.lua
+++ b/Master/texmf-dist/tex/context/base/l-lpeg.lua
@@ -1,9 +1,12 @@
--- filename : l-lpeg.lua
--- author : Hans Hagen, PRAGMA-ADE, Hasselt NL
--- copyright: PRAGMA ADE / ConTeXt Development Team
--- license : see context related readme files
+if not modules then modules = { } end modules ['l-lpeg'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
-if not versions then versions = { } end versions['l-lpeg'] = 1.001
+local P, S, Ct, C, Cs, Cc = lpeg.P, lpeg.S, lpeg.Ct, lpeg.C, lpeg.Cs, lpeg.Cc
--~ l-lpeg.lua :
@@ -27,32 +30,73 @@ if not versions then versions = { } end versions['l-lpeg'] = 1.001
local hash = { }
function lpeg.anywhere(pattern) --slightly adapted from website
- return lpeg.P { lpeg.P(pattern) + 1 * lpeg.V(1) }
+ return P { P(pattern) + 1 * lpeg.V(1) }
end
function lpeg.startswith(pattern) --slightly adapted
- return lpeg.P(pattern)
+ return P(pattern)
end
---~ g = lpeg.splitter(" ",function(s) ... end) -- gmatch:lpeg = 3:2
-
function lpeg.splitter(pattern, action)
- return (((1-lpeg.P(pattern))^1)/action+1)^0
+ return (((1-P(pattern))^1)/action+1)^0
end
-local crlf = lpeg.P("\r\n")
-local cr = lpeg.P("\r")
-local lf = lpeg.P("\n")
-local space = lpeg.S(" \t\f\v")
+-- variant:
+
+--~ local parser = lpeg.Ct(lpeg.splitat(newline))
+
+local crlf = P("\r\n")
+local cr = P("\r")
+local lf = P("\n")
+local space = S(" \t\f\v") -- + string.char(0xc2, 0xa0) if we want utf (cf mail roberto)
local newline = crlf + cr + lf
local spacing = space^0 * newline
-local empty = spacing * lpeg.Cc("")
-local nonempty = lpeg.Cs((1-spacing)^1) * spacing^-1
+local empty = spacing * Cc("")
+local nonempty = Cs((1-spacing)^1) * spacing^-1
local content = (empty + nonempty)^1
-local capture = lpeg.Ct(content^0)
+local capture = Ct(content^0)
function string:splitlines()
return capture:match(self)
end
+
+lpeg.linebyline = content -- better make a sublibrary
+
+--~ local p = lpeg.splitat("->",false) print(p:match("oeps->what->more")) -- oeps what more
+--~ local p = lpeg.splitat("->",true) print(p:match("oeps->what->more")) -- oeps what->more
+--~ local p = lpeg.splitat("->",false) print(p:match("oeps")) -- oeps
+--~ local p = lpeg.splitat("->",true) print(p:match("oeps")) -- oeps
+
+local splitters_s, splitters_m = { }, { }
+
+local function splitat(separator,single)
+ local splitter = (single and splitters_s[separator]) or splitters_m[separator]
+ if not splitter then
+ separator = P(separator)
+ if single then
+ local other, any = C((1 - separator)^0), P(1)
+ splitter = other * (separator * C(any^0) + "")
+ splitters_s[separator] = splitter
+ else
+ local other = C((1 - separator)^0)
+ splitter = other * (separator * other)^0
+ splitters_m[separator] = splitter
+ end
+ end
+ return splitter
+end
+
+lpeg.splitat = splitat
+
+local cache = { }
+
+function string:split(separator)
+ local c = cache[separator]
+ if not c then
+ c = Ct(splitat(separator))
+ cache[separator] = c
+ end
+ return c:match(self)
+end
diff --git a/Master/texmf-dist/tex/context/base/l-math.lua b/Master/texmf-dist/tex/context/base/l-math.lua
index 24921cd0c17..bfb3d506b0c 100644
--- a/Master/texmf-dist/tex/context/base/l-math.lua
+++ b/Master/texmf-dist/tex/context/base/l-math.lua
@@ -1,20 +1,22 @@
--- filename : l-math.lua
--- comment : split off from luat-lib
--- author : Hans Hagen, PRAGMA-ADE, Hasselt NL
--- copyright: PRAGMA ADE / ConTeXt Development Team
--- license : see context related readme files
+if not modules then modules = { } end modules ['l-math'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
-if not versions then versions = { } end versions['l-math'] = 1.001
+local floor, sin, cos, tan = math.floor, math.sin, math.cos, math.tan
if not math.round then
function math.round(x)
- return math.floor(x + 0.5)
+ return floor(x + 0.5)
end
end
if not math.div then
function math.div(n,m)
- return math.floor(n/m)
+ return floor(n/m)
end
end
@@ -23,3 +25,17 @@ if not math.mod then
return n % m
end
end
+
+local pipi = 2*math.pi/360
+
+function math.sind(d)
+ return sin(d*pipi)
+end
+
+function math.cosd(d)
+ return cos(d*pipi)
+end
+
+function math.tand(d)
+ return tan(d*pipi)
+end
diff --git a/Master/texmf-dist/tex/context/base/l-md5.lua b/Master/texmf-dist/tex/context/base/l-md5.lua
index 4deb9bd74a5..8640ad54e22 100644
--- a/Master/texmf-dist/tex/context/base/l-md5.lua
+++ b/Master/texmf-dist/tex/context/base/l-md5.lua
@@ -1,18 +1,72 @@
--- filename : l-md5.lua
--- author : Hans Hagen, PRAGMA-ADE, Hasselt NL
--- copyright: PRAGMA ADE / ConTeXt Development Team
--- license : see context related readme files
+if not modules then modules = { } end modules ['l-md5'] = {
+ version = 1.001,
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
-if not versions then versions = { } end versions['l-md5'] = 1.001
+-- This also provides file checksums and checkers.
-if md5 then do
+local gsub, format, byte = string.gsub, string.format, string.byte
- local function convert(str,fmt)
- return (string.gsub(md5.sum(str),".",function(chr) return string.format(fmt,string.byte(chr)) end))
+local function convert(str,fmt)
+ return (gsub(md5.sum(str),".",function(chr) return format(fmt,byte(chr)) end))
+end
+
+if not md5.HEX then function md5.HEX(str) return convert(str,"%02X") end end
+if not md5.hex then function md5.hex(str) return convert(str,"%02x") end end
+if not md5.dec then function md5.dec(str) return convert(str,"%03i") end end
+
+--~ if not md5.HEX then
+--~ local function remap(chr) return format("%02X",byte(chr)) end
+--~ function md5.HEX(str) return (gsub(md5.sum(str),".",remap)) end
+--~ end
+--~ if not md5.hex then
+--~ local function remap(chr) return format("%02x",byte(chr)) end
+--~ function md5.hex(str) return (gsub(md5.sum(str),".",remap)) end
+--~ end
+--~ if not md5.dec then
+--~ local function remap(chr) return format("%03i",byte(chr)) end
+--~ function md5.dec(str) return (gsub(md5.sum(str),".",remap)) end
+--~ end
+
+file.needs_updating_threshold = 1
+
+function file.needs_updating(oldname,newname) -- size modification access change
+ local oldtime = lfs.attributes(oldname, modification)
+ local newtime = lfs.attributes(newname, modification)
+ if newtime >= oldtime then
+ return false
+ elseif oldtime - newtime < file.needs_updating_threshold then
+ return false
+ else
+ return true
end
+end
- if not md5.HEX then function md5.HEX(str) return convert(str,"%02X") end end
- if not md5.hex then function md5.hex(str) return convert(str,"%02x") end end
- if not md5.dec then function md5.dec(str) return convert(str,"%03i") end end
+function file.checksum(name)
+ if md5 then
+ local data = io.loaddata(name)
+ if data then
+ return md5.HEX(data)
+ end
+ end
+ return nil
+end
+
+function file.loadchecksum(name)
+ if md5 then
+ local data = io.loaddata(name .. ".md5")
+ return data and data:gsub("%s","")
+ end
+ return nil
+end
-end end
+function file.savechecksum(name, checksum)
+ if not checksum then checksum = file.checksum(name) end
+ if checksum then
+ io.savedata(name .. ".md5",checksum)
+ return checksum
+ end
+ return nil
+end
diff --git a/Master/texmf-dist/tex/context/base/l-number.lua b/Master/texmf-dist/tex/context/base/l-number.lua
index 180b4c544ba..18d488a1aaf 100644
--- a/Master/texmf-dist/tex/context/base/l-number.lua
+++ b/Master/texmf-dist/tex/context/base/l-number.lua
@@ -1,12 +1,14 @@
--- filename : l-number.lua
--- comment : split off from luat-lib
--- author : Hans Hagen, PRAGMA-ADE, Hasselt NL
--- copyright: PRAGMA ADE / ConTeXt Development Team
--- license : see context related readme files
+if not modules then modules = { } end modules ['l-number'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
-if not versions then versions = { } end versions['l-number'] = 1.001
+local format = string.format
-if not number then number = { } end
+number = number or { }
-- a,b,c,d,e,f = number.toset(100101)
@@ -14,8 +16,6 @@ function number.toset(n)
return (tostring(n)):match("(.?)(.?)(.?)(.?)(.?)(.?)(.?)(.?)")
end
-local format = string.format
-
function number.toevenhex(n)
local s = format("%X",n)
if #s % 2 == 0 then
@@ -36,11 +36,10 @@ end
--
-- of course dedicated "(.)(.)(.)(.)" matches are even faster
-do
- local one = lpeg.C(1-lpeg.S(''))^1
+local one = lpeg.C(1-lpeg.S(''))^1
- function number.toset(n)
- return one:match(tostring(n))
- end
+function number.toset(n)
+ return one:match(tostring(n))
end
+
diff --git a/Master/texmf-dist/tex/context/base/l-os.lua b/Master/texmf-dist/tex/context/base/l-os.lua
index 7c612171946..47b47fa4f60 100644
--- a/Master/texmf-dist/tex/context/base/l-os.lua
+++ b/Master/texmf-dist/tex/context/base/l-os.lua
@@ -1,10 +1,12 @@
--- filename : l-os.lua
--- comment : split off from luat-lib
--- author : Hans Hagen, PRAGMA-ADE, Hasselt NL
--- copyright: PRAGMA ADE / ConTeXt Development Team
--- license : see context related readme files
+if not modules then modules = { } end modules ['l-os'] = {
+ version = 1.001,
+ comment = "companion to luat-lub.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
-if not versions then versions = { } end versions['l-os'] = 1.001
+local find = string.find
function os.resultof(command)
return io.popen(command,"r"):read("*all")
@@ -17,7 +19,7 @@ if not os.spawn then os.spawn = os.execute end
--~ os.name : windows | msdos | linux | macosx | solaris | .. | generic (new)
if not io.fileseparator then
- if string.find(os.getenv("PATH"),";") then
+ if find(os.getenv("PATH"),";") then
io.fileseparator, io.pathseparator, os.platform = "\\", ";", os.type or "windows"
else
io.fileseparator, io.pathseparator, os.platform = "/" , ":", os.type or "unix"
@@ -55,11 +57,10 @@ end
os.gettimeofday = os.gettimeofday or os.clock
-do
- local startuptime = os.gettimeofday()
- function os.runtime()
- return os.gettimeofday() - startuptime
- end
+local startuptime = os.gettimeofday()
+
+function os.runtime()
+ return os.gettimeofday() - startuptime
end
--~ print(os.gettimeofday()-os.time())
@@ -67,3 +68,63 @@ end
--~ print (">>",os.runtime())
--~ print(os.date("%H:%M:%S",os.gettimeofday()))
--~ print(os.date("%H:%M:%S",os.time()))
+
+os.arch = os.arch or function()
+ local a = os.resultof("uname -m") or "linux"
+ os.arch = function()
+ return a
+ end
+ return a
+end
+
+local platform
+
+function os.currentplatform(name,default)
+ if not platform then
+ local name = os.name or os.platform or name -- os.name is built in, os.platform is mine
+ if not name then
+ platform = default or "linux"
+ elseif name == "windows" or name == "mswin" or name == "win32" or name == "msdos" then
+ if os.getenv("PROCESSOR_ARCHITECTURE") == "AMD64" then
+ platform = "mswin-64"
+ else
+ platform = "mswin"
+ end
+ else
+ local architecture = os.arch()
+ if name == "linux" then
+ if find(architecture,"x86_64") then
+ platform = "linux-64"
+ elseif find(architecture,"ppc") then
+ platform = "linux-ppc"
+ else
+ platform = "linux"
+ end
+ elseif name == "macosx" then
+ if find(architecture,"i386") then
+ platform = "osx-intel"
+ else
+ platform = "osx-ppc"
+ end
+ elseif name == "sunos" then
+ if find(architecture,"sparc") then
+ platform = "solaris-sparc"
+ else -- if architecture == 'i86pc'
+ platform = "solaris-intel"
+ end
+ elseif name == "freebsd" then
+ if find(architecture,"amd64") then
+ platform = "freebsd-amd64"
+ else
+ platform = "freebsd"
+ end
+ else
+ platform = default or name
+ end
+ end
+ function os.currentplatform()
+ return platform
+ end
+ end
+ return platform
+end
diff --git a/Master/texmf-dist/tex/context/base/l-set.lua b/Master/texmf-dist/tex/context/base/l-set.lua
index 2bcf664f84a..7fc67b24b34 100644
--- a/Master/texmf-dist/tex/context/base/l-set.lua
+++ b/Master/texmf-dist/tex/context/base/l-set.lua
@@ -1,59 +1,73 @@
--- filename : l-set.lua
--- author : Hans Hagen, PRAGMA-ADE, Hasselt NL
--- copyright: PRAGMA ADE / ConTeXt Development Team
--- license : see context related readme files
+if not modules then modules = { } end modules ['l-set'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
-if not versions then versions = { } end versions['l-set'] = 1.001
+set = set or { }
-if not set then set = { } end
+local nums = { }
+local tabs = { }
+local concat = table.concat
+local next, type = next, type
-do
+set.create = table.tohash
- local nums = { }
- local tabs = { }
- local concat = table.concat
-
- set.create = table.tohash
-
- function set.tonumber(t)
- if next(t) then
- local s = ""
- -- we could save mem by sorting, but it slows down
- for k, v in pairs(t) do
- if v then
- -- why bother about the leading space
- s = s .. " " .. k
- end
- end
- if not nums[s] then
- tabs[#tabs+1] = t
- nums[s] = #tabs
+function set.tonumber(t)
+ if next(t) then
+ local s = ""
+ -- we could save mem by sorting, but it slows down
+ for k, v in next, t do
+ if v then
+ -- why bother about the leading space
+ s = s .. " " .. k
end
- return nums[s]
- else
- return 0
end
+ local n = nums[s]
+ if not n then
+ n = #tabs + 1
+ tabs[n] = t
+ nums[s] = n
+ end
+ return n
+ else
+ return 0
end
+end
- function set.totable(n)
- if n == 0 then
- return { }
- else
- return tabs[n] or { }
- end
+function set.totable(n)
+ if n == 0 then
+ return { }
+ else
+ return tabs[n] or { }
end
+end
- function set.contains(n,s)
- if type(n) == "table" then
- return n[s]
- elseif n == 0 then
- return false
- else
- local t = tabs[n]
- return t and t[s]
+function set.tolist(n)
+ if n == 0 or not tabs[n] then
+ return ""
+ else
+ local t = { }
+ for k, v in next, tabs[n] do
+ if v then
+ t[#t+1] = k
+ end
end
+ return concat(t," ")
end
+end
+function set.contains(n,s)
+ if type(n) == "table" then
+ return n[s]
+ elseif n == 0 then
+ return false
+ else
+ local t = tabs[n]
+ return t and t[s]
+ end
end
--~ local c = set.create{'aap','noot','mies'}
diff --git a/Master/texmf-dist/tex/context/base/l-string.lua b/Master/texmf-dist/tex/context/base/l-string.lua
index 6a3bea31c18..f46d6df24a0 100644
--- a/Master/texmf-dist/tex/context/base/l-string.lua
+++ b/Master/texmf-dist/tex/context/base/l-string.lua
@@ -1,154 +1,32 @@
--- filename : l-string.lua
--- comment : split off from luat-lib
--- author : Hans Hagen, PRAGMA-ADE, Hasselt NL
--- copyright: PRAGMA ADE / ConTeXt Development Team
--- license : see context related readme files
-
-if not versions then versions = { } end versions['l-string'] = 1.001
-
---~ function string.split(str, pat) -- taken from the lua wiki
---~ local t = {n = 0} -- so this table has a length field, traverse with ipairs then!
---~ local fpat = "(.-)"..pat
---~ local last_end = 1
---~ local s, e, cap = string.find(str, fpat, 1)
---~ while s ~= nil do
---~ if s~=1 or cap~="" then
---~ table.insert(t,cap)
---~ end
---~ last_end = e+1
---~ s, e, cap = string.find(str, fpat, last_end)
---~ end
---~ if last_end<=string.len(str) then
---~ table.insert(t,(string.sub(str,last_end)))
---~ end
---~ return t
---~ end
-
---~ function string:split(pat) -- taken from the lua wiki but adapted
---~ local t = { } -- self and colon usage (faster)
---~ local fpat = "(.-)"..pat
---~ local last_end = 1
---~ local s, e, cap = self:find(fpat, 1)
---~ while s ~= nil do
---~ if s~=1 or cap~="" then
---~ t[#t+1] = cap
---~ end
---~ last_end = e+1
---~ s, e, cap = self:find(fpat, last_end)
---~ end
---~ if last_end <= #self then
---~ t[#t+1] = self:sub(last_end)
---~ end
---~ return t
---~ end
-
---~ a piece of brilliant code by Rici Lake (posted on lua list) -- only names changed
---~
---~ function string:splitter(pat)
---~ local st, g = 1, self:gmatch("()"..pat.."()")
---~ local function splitter(self)
---~ if st then
---~ local s, f = g()
---~ local rv = self:sub(st, (s or 0)-1)
---~ st = f
---~ return rv
---~ end
---~ end
---~ return splitter, self
---~ end
-
-function string:splitter(pat)
- -- by Rici Lake (posted on lua list) -- only names changed
- -- p 79 ref man: () returns position of match
- local st, g = 1, self:gmatch("()("..pat..")")
- local function strgetter(self, segs, seps, sep, cap1, ...)
- st = sep and seps + #sep
- return self:sub(segs, (seps or 0) - 1), cap1 or sep, ...
- end
- local function strsplitter(self)
- if st then return strgetter(self, st, g()) end
- end
- return strsplitter, self
-end
+if not modules then modules = { } end modules ['l-string'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
-function string:split(separator)
- local t = {}
- for k in self:splitter(separator) do t[#t+1] = k end
- return t
-end
+local sub, gsub, find, match, gmatch, format, char, byte, rep = string.sub, string.gsub, string.find, string.match, string.gmatch, string.format, string.char, string.byte, string.rep
--- faster than a string:split:
+if not string.split then
-function string:splitchr(chr)
- if #self > 0 then
- local t = { }
- for s in string.gmatch(self..chr,"(.-)"..chr) do
- t[#t+1] = s
+ -- this will be overloaded by a faster lpeg variant
+
+ function string:split(pattern)
+ if #self > 0 then
+ local t = { }
+ for s in gmatch(self..pattern,"(.-)"..pattern) do
+ t[#t+1] = s
+ end
+ return t
+ else
+ return { }
end
- return t
- else
- return { }
end
-end
---~ function string.piecewise(str, pat, fnc) -- variant of split
---~ local fpat = "(.-)"..pat
---~ local last_end = 1
---~ local s, e, cap = string.find(str, fpat, 1)
---~ while s ~= nil do
---~ if s~=1 or cap~="" then
---~ fnc(cap)
---~ end
---~ last_end = e+1
---~ s, e, cap = string.find(str, fpat, last_end)
---~ end
---~ if last_end <= #str then
---~ fnc((string.sub(str,last_end)))
---~ end
---~ end
-
-function string.piecewise(str, pat, fnc) -- variant of split
- for k in string.splitter(str,pat) do fnc(k) end
end
---~ function string.piecewise(str, pat, fnc) -- variant of split
---~ for k in str:splitter(pat) do fnc(k) end
---~ end
-
---~ do if lpeg then
-
---~ -- this alternative is 30% faster esp when we cache them
---~ -- problem: no expressions
-
---~ splitters = { }
-
---~ function string:split(separator)
---~ if #self > 0 then
---~ local split = splitters[separator]
---~ if not split then
---~ -- based on code by Roberto
---~ local p = lpeg.P(separator)
---~ local c = lpeg.C((1-p)^0)
---~ split = lpeg.Ct(c*(p*c)^0)
---~ splitters[separator] = split
---~ end
---~ return split:match(self)
---~ else
---~ return { }
---~ end
---~ end
-
---~ string.splitchr = string.split
-
---~ function string:piecewise(separator,fnc)
---~ for _,v in pairs(self:split(separator)) do
---~ fnc(v)
---~ end
---~ end
-
---~ end end
-
-string.chr_to_esc = {
+local chr_to_esc = {
["%"] = "%%",
["."] = "%.",
["+"] = "%+", ["-"] = "%-", ["*"] = "%*",
@@ -158,21 +36,23 @@ string.chr_to_esc = {
["{"] = "%{", ["}"] = "%}"
}
+string.chr_to_esc = chr_to_esc
+
function string:esc() -- variant 2
- return (self:gsub("(.)",string.chr_to_esc))
+ return (gsub(self,"(.)",chr_to_esc))
end
-function string.unquote(str)
- return (str:gsub("^([\"\'])(.*)%1$","%2"))
+function string:unquote()
+ return (gsub(self,"^([\"\'])(.*)%1$","%2"))
end
-function string.quote(str)
- return '"' .. str:unquote() .. '"'
+function string:quote() -- we could use format("%q")
+ return '"' .. self:unquote() .. '"'
end
function string:count(pattern) -- variant 3
local n = 0
- for _ in self:gmatch(pattern) do
+ for _ in gmatch(self,pattern) do
n = n + 1
end
return n
@@ -181,29 +61,25 @@ end
function string:limit(n,sentinel)
if #self > n then
sentinel = sentinel or " ..."
- return self:sub(1,(n-#sentinel)) .. sentinel
+ return sub(self,1,(n-#sentinel)) .. sentinel
else
return self
end
end
function string:strip()
- return (self:gsub("^%s*(.-)%s*$", "%1"))
+ return (gsub(self,"^%s*(.-)%s*$", "%1"))
end
---~ function string.strip(str) -- slightly different
---~ return (string.gsub(string.gsub(str,"^%s*(.-)%s*$","%1"),"%s+"," "))
---~ end
-
function string:is_empty()
- return not self:find("%S")
+ return not find(find,"%S")
end
function string:enhance(pattern,action)
local ok, n = true, 0
while ok do
ok = false
- self = self:gsub(pattern, function(...)
+ self = gsub(self,pattern, function(...)
ok, n = true, n + 1
return action(...)
end)
@@ -211,59 +87,19 @@ function string:enhance(pattern,action)
return self, n
end
---~ function string:enhance(pattern,action)
---~ local ok, n = 0, 0
---~ repeat
---~ self, ok = self:gsub(pattern, function(...)
---~ n = n + 1
---~ return action(...)
---~ end)
---~ until ok == 0
---~ return self, n
---~ end
-
---~ function string:to_hex()
---~ if self then
---~ return (self:gsub("(.)",function(c)
---~ return string.format("%02X",c:byte())
---~ end))
---~ else
---~ return ""
---~ end
---~ end
-
---~ function string:from_hex()
---~ if self then
---~ return (self:gsub("(..)",function(c)
---~ return string.char(tonumber(c,16))
---~ end))
---~ else
---~ return ""
---~ end
---~ end
-
-string.chr_to_hex = { }
-string.hex_to_chr = { }
+local chr_to_hex, hex_to_chr = { }, { }
for i=0,255 do
- local c, h = string.char(i), string.format("%02X",i)
- string.chr_to_hex[c], string.hex_to_chr[h] = h, c
+ local c, h = char(i), format("%02X",i)
+ chr_to_hex[c], hex_to_chr[h] = h, c
end
---~ function string:to_hex()
---~ if self then return (self:gsub("(.)",string.chr_to_hex)) else return "" end
---~ end
-
---~ function string:from_hex()
---~ if self then return (self:gsub("(..)",string.hex_to_chr)) else return "" end
---~ end
-
function string:to_hex()
- return ((self or ""):gsub("(.)",string.chr_to_hex))
+ return (gsub(self or "","(.)",chr_to_hex))
end
function string:from_hex()
- return ((self or ""):gsub("(..)",string.hex_to_chr))
+ return (gsub(self or "","(..)",hex_to_chr))
end
if not string.characters then
@@ -277,7 +113,7 @@ if not string.characters then
end
local function nextbyte(str, index)
index = index + 1
- return (index <= #str) and index or nil, string.byte(str:sub(index,index))
+ return (index <= #str) and index or nil, byte(str:sub(index,index))
end
function string:bytes()
return nextbyte, self, 0
@@ -285,9 +121,7 @@ if not string.characters then
end
---~ function string:padd(n,chr)
---~ return self .. self.rep(chr or " ",n-#self)
---~ end
+-- we can use format for this (neg n)
function string:rpadd(n,chr)
local m = n-#self
@@ -309,8 +143,8 @@ end
string.padd = string.rpadd
-function is_number(str)
- return str:find("^[%-%+]?[%d]-%.?[%d+]$") == 1
+function is_number(str) -- tonumber
+ return find(str,"^[%-%+]?[%d]-%.?[%d+]$") == 1
end
--~ print(is_number("1"))
@@ -322,9 +156,9 @@ end
--~ print(is_number("+.1"))
function string:split_settings() -- no {} handling, see l-aux for lpeg variant
- if self:find("=") then
+ if find(self,"=") then
local t = { }
- for k,v in self:gmatch("(%a+)=([^%,]*)") do
+ for k,v in gmatch(self,"(%a+)=([^%,]*)") do
t[k] = v
end
return t
@@ -346,13 +180,54 @@ local patterns_escapes = {
}
function string:pattesc()
- return (self:gsub(".",patterns_escapes))
+ return (gsub(self,".",patterns_escapes))
end
function string:tohash()
local t = { }
- for s in self:gmatch("([^, ]+)") do -- lpeg
+ for s in gmatch(self,"([^, ]+)") do -- lpeg
t[s] = true
end
return t
end
+
+local pattern = lpeg.Ct(lpeg.C(1)^0)
+
+function string:totable()
+ return pattern:match(self)
+end
+
+--~ for _, str in ipairs {
+--~ "1234567123456712345671234567",
+--~ "a\tb\tc",
+--~ "aa\tbb\tcc",
+--~ "aaa\tbbb\tccc",
+--~ "aaaa\tbbbb\tcccc",
+--~ "aaaaa\tbbbbb\tccccc",
+--~ "aaaaaa\tbbbbbb\tcccccc",
+--~ } do print(string.tabtospace(str)) end
+
+function string.tabtospace(str,tab)
+ -- we don't handle embedded newlines
+ while true do
+ local s = find(str,"\t")
+ if s then
+ if not tab then tab = 7 end -- only when found
+ local d = tab-(s-1)%tab
+ if d > 0 then
+ str = gsub(str,"\t",rep(" ",d),1)
+ else
+ str = gsub(str,"\t","",1)
+ end
+ else
+ break
+ end
+ end
+ return str
+end
+
+function string:compactlong() -- strips newlines and leading spaces
+ self = gsub(self,"[\n\r]+ *","")
+ self = gsub(self,"^ *","")
+ return self
+end
diff --git a/Master/texmf-dist/tex/context/base/l-table.lua b/Master/texmf-dist/tex/context/base/l-table.lua
index ad2f1100186..90cb068e23e 100644
--- a/Master/texmf-dist/tex/context/base/l-table.lua
+++ b/Master/texmf-dist/tex/context/base/l-table.lua
@@ -1,18 +1,22 @@
--- filename : l-table.lua
--- comment : split off from luat-lib
--- author : Hans Hagen, PRAGMA-ADE, Hasselt NL
--- copyright: PRAGMA ADE / ConTeXt Development Team
--- license : see context related readme files
-
-if not versions then versions = { } end versions['l-table'] = 1.001
+if not modules then modules = { } end modules ['l-table'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
table.join = table.concat
+local concat, sort, insert, remove = table.concat, table.sort, table.insert, table.remove
+local format, find, gsub, lower, dump = string.format, string.find, string.gsub, string.lower, string.dump
+local getmetatable, setmetatable = getmetatable, setmetatable
+local type, next, tostring, ipairs = type, next, tostring, ipairs
+
function table.strip(tab)
local lst = { }
- for k, v in ipairs(tab) do
- -- s = string.gsub(v, "^%s*(.-)%s*$", "%1")
- s = v:gsub("^%s*(.-)%s*$", "%1")
+ for i=1,#tab do
+ local s = gsub(tab[i],"^%s*(.-)%s*$","%1")
if s == "" then
-- skip this one
else
@@ -22,18 +26,13 @@ function table.strip(tab)
return lst
end
---~ function table.sortedkeys(tab)
---~ local srt = { }
---~ for key,_ in pairs(tab) do
---~ srt[#srt+1] = key
---~ end
---~ table.sort(srt)
---~ return srt
---~ end
+local function compare(a,b)
+ return (tostring(a) < tostring(b))
+end
-function table.sortedkeys(tab)
+local function sortedkeys(tab)
local srt, kind = { }, 0 -- 0=unknown 1=string, 2=number 3=mixed
- for key,_ in pairs(tab) do
+ for key,_ in next, tab do
srt[#srt+1] = key
if kind == 3 then
-- no further check
@@ -51,22 +50,45 @@ function table.sortedkeys(tab)
end
end
if kind == 0 or kind == 3 then
- table.sort(srt,function(a,b) return (tostring(a) < tostring(b)) end)
+ sort(srt,compare)
else
- table.sort(srt)
+ sort(srt)
+ end
+ return srt
+end
+
+local function sortedhashkeys(tab) -- fast one
+ local srt = { }
+ for key,_ in next, tab do
+ srt[#srt+1] = key
end
+ sort(srt)
return srt
end
+table.sortedkeys = sortedkeys
+table.sortedhashkeys = sortedhashkeys
+
+function table.sortedpairs(t)
+ local s = sortedhashkeys(t) -- maybe just sortedkeys
+ local n = 0
+ local function kv(s)
+ n = n + 1
+ local k = s[n]
+ return k, t[k]
+ end
+ return kv, s
+end
+
function table.append(t, list)
- for _,v in pairs(list) do
- table.insert(t,v)
+ for _,v in next, list do
+ insert(t,v)
end
end
function table.prepend(t, list)
- for k,v in pairs(list) do
- table.insert(t,k,v)
+ for k,v in next, list do
+ insert(t,k,v)
end
end
@@ -74,7 +96,7 @@ function table.merge(t, ...) -- first one is target
t = t or {}
local lst = {...}
for i=1,#lst do
- for k, v in pairs(lst[i]) do
+ for k, v in next, lst[i] do
t[k] = v
end
end
@@ -84,7 +106,7 @@ end
function table.merged(...)
local tmp, lst = { }, {...}
for i=1,#lst do
- for k, v in pairs(lst[i]) do
+ for k, v in next, lst[i] do
tmp[k] = v
end
end
@@ -113,70 +135,58 @@ function table.imerged(...)
return tmp
end
-if not table.fastcopy then do
-
- local type, pairs, getmetatable, setmetatable = type, pairs, getmetatable, setmetatable
-
- local function fastcopy(old) -- fast one
- if old then
- local new = { }
- for k,v in pairs(old) do
- if type(v) == "table" then
- new[k] = fastcopy(v) -- was just table.copy
- else
- new[k] = v
- end
- end
- local mt = getmetatable(old)
- if mt then
- setmetatable(new,mt)
+local function fastcopy(old) -- fast one
+ if old then
+ local new = { }
+ for k,v in next, old do
+ if type(v) == "table" then
+ new[k] = fastcopy(v) -- was just table.copy
+ else
+ new[k] = v
end
- return new
- else
- return { }
end
+ -- optional second arg
+ local mt = getmetatable(old)
+ if mt then
+ setmetatable(new,mt)
+ end
+ return new
+ else
+ return { }
end
+end
- table.fastcopy = fastcopy
-
-end end
-
-if not table.copy then do
-
- local type, pairs, getmetatable, setmetatable = type, pairs, getmetatable, setmetatable
-
- local function copy(t, tables) -- taken from lua wiki, slightly adapted
- tables = tables or { }
- local tcopy = {}
- if not tables[t] then
- tables[t] = tcopy
- end
- for i,v in pairs(t) do -- brrr, what happens with sparse indexed
- if type(i) == "table" then
- if tables[i] then
- i = tables[i]
- else
- i = copy(i, tables)
- end
- end
- if type(v) ~= "table" then
- tcopy[i] = v
- elseif tables[v] then
- tcopy[i] = tables[v]
+local function copy(t, tables) -- taken from lua wiki, slightly adapted
+ tables = tables or { }
+ local tcopy = {}
+ if not tables[t] then
+ tables[t] = tcopy
+ end
+ for i,v in next, t do -- brrr, what happens with sparse indexed
+ if type(i) == "table" then
+ if tables[i] then
+ i = tables[i]
else
- tcopy[i] = copy(v, tables)
+ i = copy(i, tables)
end
end
- local mt = getmetatable(t)
- if mt then
- setmetatable(tcopy,mt)
+ if type(v) ~= "table" then
+ tcopy[i] = v
+ elseif tables[v] then
+ tcopy[i] = tables[v]
+ else
+ tcopy[i] = copy(v, tables)
end
- return tcopy
end
+ local mt = getmetatable(t)
+ if mt then
+ setmetatable(tcopy,mt)
+ end
+ return tcopy
+end
- table.copy = copy
-
-end end
+table.fastcopy = fastcopy
+table.copy = copy
-- rougly: copy-loop : unpack : sub == 0.9 : 0.4 : 0.45 (so in critical apps, use unpack)
@@ -185,7 +195,7 @@ function table.sub(t,i,j)
end
function table.replace(a,b)
- for k,v in pairs(b) do
+ for k,v in next, b do
a[k] = v
end
end
@@ -205,344 +215,483 @@ function table.starts_at(t)
return ipairs(t,1)(t,0)
end
-do
-
- -- one of my first exercises in lua ...
-
- -- 34.055.092 32.403.326 arabtype.tma
- -- 1.620.614 1.513.863 lmroman10-italic.tma
- -- 1.325.585 1.233.044 lmroman10-regular.tma
- -- 1.248.157 1.158.903 lmsans10-regular.tma
- -- 194.646 153.120 lmtypewriter10-regular.tma
- -- 1.771.678 1.658.461 palatinosanscom-bold.tma
- -- 1.695.251 1.584.491 palatinosanscom-regular.tma
- -- 13.736.534 13.409.446 zapfinoextraltpro.tma
-
- -- 13.679.038 11.774.106 arabtype.tmc
- -- 886.248 754.944 lmroman10-italic.tmc
- -- 729.828 466.864 lmroman10-regular.tmc
- -- 688.482 441.962 lmsans10-regular.tmc
- -- 128.685 95.853 lmtypewriter10-regular.tmc
- -- 715.929 582.985 palatinosanscom-bold.tmc
- -- 669.942 540.126 palatinosanscom-regular.tmc
- -- 1.560.588 1.317.000 zapfinoextraltpro.tmc
-
- table.serialize_functions = true
- table.serialize_compact = true
- table.serialize_inline = true
-
- local function key(k)
- if type(k) == "number" then -- or k:find("^%d+$") then
- return "["..k.."]"
- elseif noquotes and k:find("^%a[%a%d%_]*$") then
- return k
- else
- return '["'..k..'"]'
+function table.tohash(t,value)
+ local h = { }
+ if t then
+ if value == nil then value = true end
+ for _, v in next, t do -- no ipairs here
+ h[v] = value
end
end
+ return h
+end
- local function simple_table(t)
- if #t > 0 then
- local n = 0
- for _,v in pairs(t) do
- n = n + 1
- end
- if n == #t then
- local tt = { }
- for i=1,#t do
- local v = t[i]
- local tv = type(v)
- if tv == "number" or tv == "boolean" then
- tt[#tt+1] = tostring(v)
- elseif tv == "string" then
- tt[#tt+1] = ("%q"):format(v)
+function table.fromhash(t)
+ local h = { }
+ for k, v in next, t do -- no ipairs here
+ if v then h[#h+1] = k end
+ end
+ return h
+end
+
+--~ print(table.serialize(t), "\n")
+--~ print(table.serialize(t,"name"), "\n")
+--~ print(table.serialize(t,false), "\n")
+--~ print(table.serialize(t,true), "\n")
+--~ print(table.serialize(t,"name",true), "\n")
+--~ print(table.serialize(t,"name",true,true), "\n")
+
+table.serialize_functions = true
+table.serialize_compact = true
+table.serialize_inline = true
+
+local noquotes, hexify, handle, reduce, compact, inline, functions
+
+local reserved = table.tohash { -- intercept a language flaw, no reserved words as key
+ 'and', 'break', 'do', 'else', 'elseif', 'end', 'false', 'for', 'function', 'if',
+ 'in', 'local', 'nil', 'not', 'or', 'repeat', 'return', 'then', 'true', 'until', 'while',
+}
+
+local function simple_table(t)
+ if #t > 0 then
+ local n = 0
+ for _,v in next, t do
+ n = n + 1
+ end
+ if n == #t then
+ local tt = { }
+ for i=1,#t do
+ local v = t[i]
+ local tv = type(v)
+ if tv == "number" then
+ if hexify then
+ tt[#tt+1] = format("0x%04X",v)
else
- tt = nil
- break
+ tt[#tt+1] = tostring(v) -- tostring not needed
end
+ elseif tv == "boolean" then
+ tt[#tt+1] = tostring(v)
+ elseif tv == "string" then
+ tt[#tt+1] = format("%q",v)
+ else
+ tt = nil
+ break
end
- return tt
end
+ return tt
end
- return nil
end
+ return nil
+end
- local function serialize(root,name,handle,depth,level,reduce,noquotes,indexed)
- handle = handle or print
- reduce = reduce or false
- if depth then
- depth = depth .. " "
- if indexed then
- handle(("%s{"):format(depth))
- else
- handle(("%s%s={"):format(depth,key(name)))
- end
- else
- depth = ""
- local tname = type(name)
- if tname == "string" then
- if name == "return" then
- handle("return {")
+-- Because this is a core function of mkiv I moved some function calls
+-- inline.
+--
+-- twice as fast in a test:
+--
+-- local propername = lpeg.P(lpeg.R("AZ","az","__") * lpeg.R("09","AZ","az", "__")^0 * lpeg.P(-1) )
+
+local function do_serialize(root,name,depth,level,indexed)
+ if level > 0 then
+ depth = depth .. " "
+ if indexed then
+ handle(format("%s{",depth))
+ elseif name then
+ --~ handle(format("%s%s={",depth,key(name)))
+ if type(name) == "number" then -- or find(k,"^%d+$") then
+ if hexify then
+ handle(format("%s[0x%04X]={",depth,name))
else
- handle(name .. "={")
- end
- elseif tname == "number" then
- handle("[" .. name .. "]={")
- elseif tname == "boolean" then
- if name then
- handle("return {")
- else
- handle("{")
+ handle(format("%s[%s]={",depth,name))
end
+ elseif noquotes and not reserved[name] and find(name,"^%a[%w%_]*$") then
+ handle(format("%s%s={",depth,name))
else
- handle("t={")
+ handle(format("%s[%q]={",depth,name))
end
+ else
+ handle(format("%s{",depth))
end
- if root and next(root) then
- local compact = table.serialize_compact
- local inline = compact and table.serialize_inline
- local first, last = nil, 0 -- #root cannot be trusted here
- if compact then
- for k,v in ipairs(root) do -- NOT: for k=1,#root do (why)
- if not first then first = k end
- last = last + 1
- end
+ end
+ if root and next(root) then
+ local first, last = nil, 0 -- #root cannot be trusted here
+ if compact then
+ -- NOT: for k=1,#root do (we need to quit at nil)
+ for k,v in ipairs(root) do -- can we use next?
+ if not first then first = k end
+ last = last + 1
end
- for _,k in pairs(table.sortedkeys(root)) do
- local v = root[k]
- local t = type(v)
- if compact and first and type(k) == "number" and k >= first and k <= last then
- if t == "number" then
- handle(("%s %s,"):format(depth,v))
- elseif t == "string" then
- if reduce and (v:find("^[%-%+]?[%d]-%.?[%d+]$") == 1) then
- handle(("%s %s,"):format(depth,v))
- else
- handle(("%s %q,"):format(depth,v))
- end
- elseif t == "table" then
- if not next(v) then
- handle(("%s {},"):format(depth))
- elseif inline then
- local st = simple_table(v)
- if st then
- handle(("%s { %s },"):format(depth,table.concat(st,", ")))
- else
- serialize(v,k,handle,depth,level+1,reduce,noquotes,true)
- end
- else
- serialize(v,k,handle,depth,level+1,reduce,noquotes,true)
- end
- elseif t == "boolean" then
- handle(("%s %s,"):format(depth,tostring(v)))
- elseif t == "function" then
- if table.serialize_functions then
- handle(('%s loadstring(%q),'):format(depth,string.dump(v)))
- else
- handle(('%s "function",'):format(depth))
- end
+ end
+ local sk = sortedkeys(root)
+ for i=1,#sk do
+ local k = sk[i]
+ local v = root[k]
+ --~ if v == root then
+ -- circular
+ --~ else
+ local t = type(v)
+ if compact and first and type(k) == "number" and k >= first and k <= last then
+ if t == "number" then
+ if hexify then
+ handle(format("%s 0x%04X,",depth,v))
else
- handle(("%s %q,"):format(depth,tostring(v)))
+ handle(format("%s %s,",depth,v))
end
- elseif k == "__p__" then -- parent
- if false then
- handle(("%s __p__=nil,"):format(depth))
- end
- elseif t == "number" then
- handle(("%s %s=%s,"):format(depth,key(k),v))
elseif t == "string" then
- if reduce and (v:find("^[%-%+]?[%d]-%.?[%d+]$") == 1) then
- handle(("%s %s=%s,"):format(depth,key(k),v))
+ if reduce and (find(v,"^[%-%+]?[%d]-%.?[%d+]$") == 1) then
+ handle(format("%s %s,",depth,v))
else
- handle(("%s %s=%q,"):format(depth,key(k),v))
+ handle(format("%s %q,",depth,v))
end
elseif t == "table" then
if not next(v) then
- handle(("%s %s={},"):format(depth,key(k)))
- elseif inline then
+ handle(format("%s {},",depth))
+ elseif inline then -- and #t > 0
local st = simple_table(v)
if st then
- handle(("%s %s={ %s },"):format(depth,key(k),table.concat(st,", ")))
+ handle(format("%s { %s },",depth,concat(st,", ")))
else
- serialize(v,k,handle,depth,level+1,reduce,noquotes)
+ do_serialize(v,k,depth,level+1,true)
end
else
- serialize(v,k,handle,depth,level+1,reduce,noquotes)
+ do_serialize(v,k,depth,level+1,true)
end
elseif t == "boolean" then
- handle(("%s %s=%s,"):format(depth,key(k),tostring(v)))
+ handle(format("%s %s,",depth,tostring(v)))
elseif t == "function" then
- if table.serialize_functions then
- handle(('%s %s=loadstring(%q),'):format(depth,key(k),string.dump(v)))
+ if functions then
+ handle(format('%s loadstring(%q),',depth,dump(v)))
else
- handle(('%s %s="function",'):format(depth,key(k)))
+ handle(format('%s "function",',depth))
end
else
- handle(("%s %s=%q,"):format(depth,key(k),tostring(v)))
- -- handle(('%s %s=loadstring(%q),'):format(depth,key(k),string.dump(function() return v end)))
+ handle(format("%s %q,",depth,tostring(v)))
end
- end
- if level > 0 then
- handle(("%s},"):format(depth))
- else
- handle(("%s}"):format(depth))
- end
- else
- handle(("%s}"):format(depth))
- end
- end
-
- --~ name:
- --~
- --~ true : return { }
- --~ false : { }
- --~ nil : t = { }
- --~ string : string = { }
- --~ 'return' : return { }
- --~ number : [number] = { }
-
- function table.serialize(root,name,reduce,noquotes)
- local t = { }
- local function flush(s)
- t[#t+1] = s
- end
- serialize(root, name, flush, nil, 0, reduce, noquotes)
- return table.concat(t,"\n")
- end
-
- function table.tohandle(handle,root,name,reduce,noquotes)
- serialize(root, name, handle, nil, 0, reduce, noquotes)
- end
-
- -- sometimes tables are real use (zapfino extra pro is some 85M) in which
- -- case a stepwise serialization is nice; actually, we could consider:
- --
- -- for line in table.serializer(root,name,reduce,noquotes) do
- -- ...(line)
- -- end
- --
- -- so this is on the todo list
-
- table.tofile_maxtab = 2*1024
-
- function table.tofile(filename,root,name,reduce,noquotes)
- local f = io.open(filename,'w')
- if f then
- local concat = table.concat
- local maxtab = table.tofile_maxtab
- if maxtab > 1 then
- local t = { }
- local function flush(s)
- t[#t+1] = s
- if #t > maxtab then
- f:write(concat(t,"\n"),"\n") -- hm, write(sometable) should be nice
- t = { }
+ elseif k == "__p__" then -- parent
+ if false then
+ handle(format("%s __p__=nil,",depth))
+ end
+ elseif t == "number" then
+ --~ if hexify then
+ --~ handle(format("%s %s=0x%04X,",depth,key(k),v))
+ --~ else
+ --~ handle(format("%s %s=%s,",depth,key(k),v))
+ --~ end
+ if type(k) == "number" then -- or find(k,"^%d+$") then
+ if hexify then
+ handle(format("%s [0x%04X]=0x%04X,",depth,k,v))
+ else
+ handle(format("%s [%s]=%s,",depth,k,v))
+ end
+ elseif noquotes and not reserved[k] and find(k,"^%a[%w%_]*$") then
+ if hexify then
+ handle(format("%s %s=0x%04X,",depth,k,v))
+ else
+ handle(format("%s %s=%s,",depth,k,v))
+ end
+ else
+ if hexify then
+ handle(format("%s [%q]=0x%04X,",depth,k,v))
+ else
+ handle(format("%s [%q]=%s,",depth,k,v))
+ end
+ end
+ elseif t == "string" then
+ if reduce and (find(v,"^[%-%+]?[%d]-%.?[%d+]$") == 1) then
+ --~ handle(format("%s %s=%s,",depth,key(k),v))
+ if type(k) == "number" then -- or find(k,"^%d+$") then
+ if hexify then
+ handle(format("%s [0x%04X]=%s,",depth,k,v))
+ else
+ handle(format("%s [%s]=%s,",depth,k,v))
+ end
+ elseif noquotes and not reserved[k] and find(k,"^%a[%w%_]*$") then
+ handle(format("%s %s=%s,",depth,k,v))
+ else
+ handle(format("%s [%q]=%s,",depth,k,v))
+ end
+ else
+ --~ handle(format("%s %s=%q,",depth,key(k),v))
+ if type(k) == "number" then -- or find(k,"^%d+$") then
+ if hexify then
+ handle(format("%s [0x%04X]=%q,",depth,k,v))
+ else
+ handle(format("%s [%s]=%q,",depth,k,v))
+ end
+ elseif noquotes and not reserved[k] and find(k,"^%a[%w%_]*$") then
+ handle(format("%s %s=%q,",depth,k,v))
+ else
+ handle(format("%s [%q]=%q,",depth,k,v))
+ end
+ end
+ elseif t == "table" then
+ if not next(v) then
+ --~ handle(format("%s %s={},",depth,key(k)))
+ if type(k) == "number" then -- or find(k,"^%d+$") then
+ if hexify then
+ handle(format("%s [0x%04X]={},",depth,k))
+ else
+ handle(format("%s [%s]={},",depth,k))
+ end
+ elseif noquotes and not reserved[k] and find(k,"^%a[%w%_]*$") then
+ handle(format("%s %s={},",depth,k))
+ else
+ handle(format("%s [%q]={},",depth,k))
+ end
+ elseif inline then
+ local st = simple_table(v)
+ if st then
+ --~ handle(format("%s %s={ %s },",depth,key(k),concat(st,", ")))
+ if type(k) == "number" then -- or find(k,"^%d+$") then
+ if hexify then
+ handle(format("%s [0x%04X]={ %s },",depth,k,concat(st,", ")))
+ else
+ handle(format("%s [%s]={ %s },",depth,k,concat(st,", ")))
+ end
+ elseif noquotes and not reserved[k] and find(k,"^%a[%w%_]*$") then
+ handle(format("%s %s={ %s },",depth,k,concat(st,", ")))
+ else
+ handle(format("%s [%q]={ %s },",depth,k,concat(st,", ")))
+ end
+ else
+ do_serialize(v,k,depth,level+1)
+ end
+ else
+ do_serialize(v,k,depth,level+1)
+ end
+ elseif t == "boolean" then
+ --~ handle(format("%s %s=%s,",depth,key(k),tostring(v)))
+ if type(k) == "number" then -- or find(k,"^%d+$") then
+ if hexify then
+ handle(format("%s [0x%04X]=%s,",depth,k,tostring(v)))
+ else
+ handle(format("%s [%s]=%s,",depth,k,tostring(v)))
+ end
+ elseif noquotes and not reserved[k] and find(k,"^%a[%w%_]*$") then
+ handle(format("%s %s=%s,",depth,k,tostring(v)))
+ else
+ handle(format("%s [%q]=%s,",depth,k,tostring(v)))
+ end
+ elseif t == "function" then
+ if functions then
+ --~ handle(format('%s %s=loadstring(%q),',depth,key(k),dump(v)))
+ if type(k) == "number" then -- or find(k,"^%d+$") then
+ if hexify then
+ handle(format("%s [0x%04X]=loadstring(%q),",depth,k,dump(v)))
+ else
+ handle(format("%s [%s]=loadstring(%q),",depth,k,dump(v)))
+ end
+ elseif noquotes and not reserved[k] and find(k,"^%a[%w%_]*$") then
+ handle(format("%s %s=loadstring(%q),",depth,k,dump(v)))
+ else
+ handle(format("%s [%q]=loadstring(%q),",depth,k,dump(v)))
end
end
- serialize(root, name, flush, nil, 0, reduce, noquotes)
- f:write(concat(t,"\n"),"\n")
else
- local function flush(s)
- f:write(s,"\n")
+ --~ handle(format("%s %s=%q,",depth,key(k),tostring(v)))
+ if type(k) == "number" then -- or find(k,"^%d+$") then
+ if hexify then
+ handle(format("%s [0x%04X]=%q,",depth,k,tostring(v)))
+ else
+ handle(format("%s [%s]=%q,",depth,k,tostring(v)))
+ end
+ elseif noquotes and not reserved[k] and find(k,"^%a[%w%_]*$") then
+ handle(format("%s %s=%q,",depth,k,tostring(v)))
+ else
+ handle(format("%s [%q]=%q,",depth,k,tostring(v)))
end
- serialize(root, name, flush, nil, 0, reduce, noquotes)
end
- f:close()
+ --~ end
end
end
-
+ if level > 0 then
+ handle(format("%s},",depth))
+ end
end
---~ t = {
---~ b = "123",
---~ a = "x",
---~ c = 1.23,
---~ d = "1.23",
---~ e = true,
---~ f = {
---~ d = "1.23",
---~ a = "x",
---~ b = "123",
---~ c = 1.23,
---~ e = true,
---~ f = {
---~ e = true,
---~ f = {
---~ e = true
---~ },
---~ },
---~ },
---~ g = function() end
---~ }
+-- replacing handle by a direct t[#t+1] = ... (plus test) is not much
+-- faster (0.03 on 1.00 for zapfino.tma)
+
+local function serialize(root,name,_handle,_reduce,_noquotes,_hexify)
+ noquotes = _noquotes
+ hexify = _hexify
+ handle = _handle or print
+ reduce = _reduce or false
+ compact = table.serialize_compact
+ inline = compact and table.serialize_inline
+ functions = table.serialize_functions
+ local tname = type(name)
+ if tname == "string" then
+ if name == "return" then
+ handle("return {")
+ else
+ handle(name .. "={")
+ end
+ elseif tname == "number" then
+ if hexify then
+ handle(format("[0x%04X]={",name))
+ else
+ handle("[" .. name .. "]={")
+ end
+ elseif tname == "boolean" then
+ if name then
+ handle("return {")
+ else
+ handle("{")
+ end
+ else
+ handle("t={")
+ end
+ if root and next(root) then
+ do_serialize(root,name,"",0,indexed)
+ end
+ handle("}")
+end
---~ print(table.serialize(t), "\n")
---~ print(table.serialize(t,"name"), "\n")
---~ print(table.serialize(t,false), "\n")
---~ print(table.serialize(t,true), "\n")
---~ print(table.serialize(t,"name",true), "\n")
---~ print(table.serialize(t,"name",true,true), "\n")
+--~ name:
+--~
+--~ true : return { }
+--~ false : { }
+--~ nil : t = { }
+--~ string : string = { }
+--~ 'return' : return { }
+--~ number : [number] = { }
+
+function table.serialize(root,name,reduce,noquotes,hexify)
+ local t = { }
+ local function flush(s)
+ t[#t+1] = s
+ end
+ serialize(root,name,flush,reduce,noquotes,hexify)
+ return concat(t,"\n")
+end
-do
+function table.tohandle(handle,root,name,reduce,noquotes,hexify)
+ serialize(root,name,handle,reduce,noquotes,hexify)
+end
- local function flatten(t,f,complete)
- for i=1,#t do
- local v = t[i]
- if type(v) == "table" then
- if complete or type(v[1]) == "table" then
- flatten(v,f,complete)
- else
- f[#f+1] = v
+-- sometimes tables are real use (zapfino extra pro is some 85M) in which
+-- case a stepwise serialization is nice; actually, we could consider:
+--
+-- for line in table.serializer(root,name,reduce,noquotes) do
+-- ...(line)
+-- end
+--
+-- so this is on the todo list
+
+table.tofile_maxtab = 2*1024
+
+function table.tofile(filename,root,name,reduce,noquotes,hexify)
+ local f = io.open(filename,'w')
+ if f then
+ local maxtab = table.tofile_maxtab
+ if maxtab > 1 then
+ local t = { }
+ local function flush(s)
+ t[#t+1] = s
+ if #t > maxtab then
+ f:write(concat(t,"\n"),"\n") -- hm, write(sometable) should be nice
+ t = { }
end
+ end
+ serialize(root,name,flush,reduce,noquotes,hexify)
+ f:write(concat(t,"\n"),"\n")
+ else
+ local function flush(s)
+ f:write(s,"\n")
+ end
+ serialize(root,name,flush,reduce,noquotes,hexify)
+ end
+ f:close()
+ end
+end
+
+local function flatten(t,f,complete)
+ for i=1,#t do
+ local v = t[i]
+ if type(v) == "table" then
+ if complete or type(v[1]) == "table" then
+ flatten(v,f,complete)
else
f[#f+1] = v
end
+ else
+ f[#f+1] = v
end
end
+end
- function table.flatten(t)
- local f = { }
- flatten(t,f,true)
- return f
- end
+function table.flatten(t)
+ local f = { }
+ flatten(t,f,true)
+ return f
+end
- function table.unnest(t) -- bad name
- local f = { }
- flatten(t,f,false)
- return f
- end
+function table.unnest(t) -- bad name
+ local f = { }
+ flatten(t,f,false)
+ return f
+end
+
+table.flatten_one_level = table.unnest
- table.flatten_one_level = table.unnest
+-- the next three may disappear
+function table.remove_value(t,value) -- todo: n
+ if value then
+ for i=1,#t do
+ if t[i] == value then
+ remove(t,i)
+ -- remove all, so no: return
+ end
+ end
+ end
end
function table.insert_before_value(t,value,str)
- for i=1,#t do
- if t[i] == value then
- table.insert(t,i,str)
- return
+ if str then
+ if value then
+ for i=1,#t do
+ if t[i] == value then
+ insert(t,i,str)
+ return
+ end
+ end
end
+ insert(t,1,str)
+ elseif value then
+ insert(t,1,value)
end
- table.insert(t,1,str)
end
function table.insert_after_value(t,value,str)
- for i=1,#t do
- if t[i] == value then
- table.insert(t,i+1,str)
- return
+ if str then
+ if value then
+ for i=1,#t do
+ if t[i] == value then
+ insert(t,i+1,str)
+ return
+ end
+ end
end
+ t[#t+1] = str
+ elseif value then
+ t[#t+1] = value
end
- t[#t+1] = str
end
-function table.are_equal(a,b,n,m)
- if #a == #b then
+local function are_equal(a,b,n,m) -- indexed
+ if a and b and #a == #b then
n = n or 1
m = m or #a
for i=n,m do
local ai, bi = a[i], b[i]
- if (ai==bi) or (type(ai)=="table" and type(bi)=="table" and table.are_equal(ai,bi)) then
- -- continue
+ if ai==bi then
+ -- same
+ elseif type(ai)=="table" and type(bi)=="table" then
+ if not are_equal(ai,bi) then
+ return false
+ end
else
return false
end
@@ -553,37 +702,42 @@ function table.are_equal(a,b,n,m)
end
end
-function table.compact(t)
- if t then
- for k,v in pairs(t) do
- if not next(v) then
- t[k] = nil
+local function identical(a,b) -- assumes same structure
+ for ka, va in next, a do
+ local vb = b[k]
+ if va == vb then
+ -- same
+ elseif type(va) == "table" and type(vb) == "table" then
+ if not identical(va,vb) then
+ return false
end
+ else
+ return false
end
end
+ return true
end
-function table.tohash(t)
- local h = { }
- for _, v in pairs(t) do -- no ipairs here
- h[v] = true
- end
- return h
-end
+table.are_equal = are_equal
+table.identical = identical
-function table.fromhash(t)
- local h = { }
- for k, v in pairs(t) do -- no ipairs here
- if v then h[#h+1] = k end
+-- maybe also make a combined one
+
+function table.compact(t)
+ if t then
+ for k,v in next, t do
+ if not next(v) then
+ t[k] = nil
+ end
+ end
end
- return h
end
function table.contains(t, v)
if t then
for i=1, #t do
if t[i] == v then
- return true
+ return i
end
end
end
@@ -600,7 +754,7 @@ end
function table.swapped(t)
local s = { }
- for k, v in pairs(t) do
+ for k, v in next, t do
s[v] = k
end
return s
@@ -620,17 +774,16 @@ function table.clone(t,p) -- t is optional or nil or table
return t
end
-
function table.hexed(t,seperator)
local tt = { }
- for i=1,#t do tt[i] = string.format("0x%04X",t[i]) end
- return table.concat(tt,seperator or " ")
+ for i=1,#t do tt[i] = format("0x%04X",t[i]) end
+ return concat(tt,seperator or " ")
end
function table.reverse_hash(h)
local r = { }
- for k,v in pairs(h) do
- r[v] = (k:gsub(" ","")):lower()
+ for k,v in next, h do
+ r[v] = lower(gsub(k," ",""))
end
return r
end
@@ -644,3 +797,19 @@ function table.reverse(t)
end
return tt
end
+
+--~ function table.keys(t)
+--~ local k = { }
+--~ for k,_ in next, t do
+--~ k[#k+1] = k
+--~ end
+--~ return k
+--~ end
+
+--~ function table.keys_as_string(t)
+--~ local k = { }
+--~ for k,_ in next, t do
+--~ k[#k+1] = k
+--~ end
+--~ return concat(k,"")
+--~ end
diff --git a/Master/texmf-dist/tex/context/base/l-tex.lua b/Master/texmf-dist/tex/context/base/l-tex.lua
deleted file mode 100644
index 1a23c183e7b..00000000000
--- a/Master/texmf-dist/tex/context/base/l-tex.lua
+++ /dev/null
@@ -1,114 +0,0 @@
--- filename : l-tex.lua
--- comment : split off from luat-lib
--- author : Hans Hagen, PRAGMA-ADE, Hasselt NL
--- copyright: PRAGMA ADE / ConTeXt Development Team
--- license : see context related readme files
-
-if not versions then versions = { } end versions['l-tex'] = 1.001
-
-if not number then number = { } end
-
-local dimenfactors = {
- ["pt"] = 1/65536,
- ["in"] = ( 100/ 7227)/65536,
- ["cm"] = ( 254/ 7227)/65536,
- ["mm"] = ( 254/72270)/65536,
- ["sp"] = 1,
- ["bp"] = ( 7200/ 7227)/65536,
- ["pc"] = ( 1/ 12)/65536,
- ["dd"] = ( 1157/ 1238)/65536,
- ["cc"] = ( 1157/14856)/65536,
- ["nd"] = (20320/21681)/65536,
- ["nc"] = ( 5080/65043)/65536
-}
-
-local function todimen(n,unit,fmt)
- if type(n) == 'string' then
- return n
- else
- unit = unit or 'pt'
- return string.format(fmt or "%.5g%s", n*dimenfactors[unit], unit)
- end
-end
-
-number.todimen = todimen
-number.dimenfactors = dimenfactors
-
-function number.topoints (n) return todimen(n,"pt") end
-function number.toinches (n) return todimen(n,"in") end
-function number.tocentimeters (n) return todimen(n,"cm") end
-function number.tomillimeters (n) return todimen(n,"mm") end
-function number.toscaledpoints(n) return todimen(n,"sp") end
-function number.toscaledpoints(n) return n .. "sp" end
-function number.tobasepoints (n) return todimen(n,"bp") end
-function number.topicas (n) return todimen(n "pc") end
-function number.todidots (n) return todimen(n,"dd") end
-function number.tociceros (n) return todimen(n,"cc") end
-function number.tonewdidots (n) return todimen(n,"nd") end
-function number.tonewciceros (n) return todimen(n,"nc") end
-
---~ for k,v in pairs{nil, "%.5f%s", "%.8g%s", "%.8f%s"} do
---~ print(todimen(65536))
---~ print(todimen( 256))
---~ print(todimen(65536,'pt',v))
---~ print(todimen( 256,'pt',v))
---~ end
-
--- todo: use different scratchdimen
--- todo: use parser if no tex.dimen
-
-function string.todimen(str)
- if type(str) == "number" then
- return str
- elseif str:find("^[%d%-%+%.]+$") then
- return tonumber(str)
---~ elseif tex then
---~ tex.dimen[0] = str
---~ return tex.dimen[0] or 0
- else
- local n, u = str:match("([%d%-%+%.]+)(%a%a)")
- if n and u then
- return n/dimenfactors[u]
- else
- return 0
- end
- end
-end
-
---~ print(string.todimen("10000"))
---~ print(string.todimen("10pt"))
-
---~ See mk.pdf for an explanation of the following code:
---~
---~ function test(n)
---~ lua.delay(function(...)
---~ tex.sprint(string.format("pi: %s %s %s\\par",...))
---~ end)
---~ lua.delay(function(...)
---~ tex.sprint(string.format("more pi: %s %s %s\\par",...))
---~ end)
---~ tex.sprint(string.format("\\setbox0=\\hbox{%s}",math.pi*n))
---~ lua.flush(tex.wd[0],tex.ht[0],tex.dp[0])
---~ end
-
-if lua then do
-
- local delayed = { }
-
- function lua.delay(f)
- delayed[#delayed+1] = f
- end
-
- function lua.flush_delayed(...)
- local t = delayed
- delayed = { }
- for i=1, #t do
- t[i](...)
- end
- end
-
- function lua.flush(...)
- tex.sprint("\\directlua0{lua.flush_delayed(" .. table.concat({...},',') .. ")}")
- end
-
-end end
diff --git a/Master/texmf-dist/tex/context/base/l-unicode.lua b/Master/texmf-dist/tex/context/base/l-unicode.lua
index d0c05bb8629..124a1e24038 100644
--- a/Master/texmf-dist/tex/context/base/l-unicode.lua
+++ b/Master/texmf-dist/tex/context/base/l-unicode.lua
@@ -1,18 +1,17 @@
--- filename : l-unicode.lua
--- comment : split off from luat-inp
--- author : Hans Hagen, PRAGMA-ADE, Hasselt NL
--- copyright: PRAGMA ADE / ConTeXt Development Team
--- license : see context related readme files
+if not modules then modules = { } end modules ['l-unicode'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
-if not versions then versions = { } end versions['l-unicode'] = 1.001
-if not unicode then unicode = { } end
+utf = utf or unicode.utf8
-if not garbagecollector then
- garbagecollector = {
- push = function() collectgarbage("stop") end,
- pop = function() collectgarbage("restart") end,
- }
-end
+local concat, utfchar, utfgsub = table.concat, utf.char, utf.gsub
+local char, byte, find, bytepairs = string.char, string.byte, string.find, string.bytepairs
+
+unicode = unicode or { }
-- 0 EF BB BF UTF-8
-- 1 FF FE UTF-16-little-endian
@@ -33,17 +32,17 @@ function unicode.utftype(f) -- \000 fails !
if not str then
f:seek('set')
return 0
- elseif str:find("^%z%z\254\255") then
+ elseif find(str,"^%z%z\254\255") then
return 4
- elseif str:find("^\255\254%z%z") then
+ elseif find(str,"^\255\254%z%z") then
return 3
- elseif str:find("^\254\255") then
+ elseif find(str,"^\254\255") then
f:seek('set',2)
return 2
- elseif str:find("^\255\254") then
+ elseif find(str,"^\255\254") then
f:seek('set',2)
return 1
- elseif str:find("^\239\187\191") then
+ elseif find(str,"^\239\187\191") then
f:seek('set',3)
return 0
else
@@ -52,74 +51,70 @@ function unicode.utftype(f) -- \000 fails !
end
end
-function unicode.utf16_to_utf8(str, endian)
- garbagecollector.push()
- local result = { }
- local tc, uc = table.concat, unicode.utf8.char
- local tmp, n, m, p = { }, 0, 0, 0
+function unicode.utf16_to_utf8(str, endian) -- maybe a gsub is faster or an lpeg
+ local result, tmp, n, m, p = { }, { }, 0, 0, 0
-- lf | cr | crlf / (cr:13, lf:10)
local function doit()
if n == 10 then
if p ~= 13 then
- result[#result+1] = tc(tmp,"")
+ result[#result+1] = concat(tmp)
tmp = { }
p = 0
end
elseif n == 13 then
- result[#result+1] = tc(tmp,"")
+ result[#result+1] = concat(tmp)
tmp = { }
p = n
else
- tmp[#tmp+1] = uc(n)
+ tmp[#tmp+1] = utfchar(n)
p = 0
end
end
- for l,r in str:bytepairs() do
- if endian then
- n = l*256 + r
- else
- n = r*256 + l
- end
- if m > 0 then
- n = (m-0xD800)*0x400 + (n-0xDC00) + 0x10000
- m = 0
- doit()
- elseif n >= 0xD800 and n <= 0xDBFF then
- m = n
- else
- doit()
+ for l,r in bytepairs(str) do
+ if r then
+ if endian then
+ n = l*256 + r
+ else
+ n = r*256 + l
+ end
+ if m > 0 then
+ n = (m-0xD800)*0x400 + (n-0xDC00) + 0x10000
+ m = 0
+ doit()
+ elseif n >= 0xD800 and n <= 0xDBFF then
+ m = n
+ else
+ doit()
+ end
end
end
if #tmp > 0 then
- result[#result+1] = tc(tmp,"")
+ result[#result+1] = concat(tmp)
end
- garbagecollector.pop()
return result
end
function unicode.utf32_to_utf8(str, endian)
- garbagecollector.push()
local result = { }
- local tc, uc = table.concat, unicode.utf8.char
local tmp, n, m, p = { }, 0, -1, 0
-- lf | cr | crlf / (cr:13, lf:10)
local function doit()
if n == 10 then
if p ~= 13 then
- result[#result+1] = tc(tmp,"")
+ result[#result+1] = concat(tmp)
tmp = { }
p = 0
end
elseif n == 13 then
- result[#result+1] = tc(tmp,"")
+ result[#result+1] = concat(tmp)
tmp = { }
p = n
else
- tmp[#tmp+1] = uc(n)
+ tmp[#tmp+1] = utfchar(n)
p = 0
end
end
- for a,b in str:bytepairs() do
+ for a,b in bytepairs(str) do
if a and b then
if m < 0 then
if endian then
@@ -141,8 +136,37 @@ function unicode.utf32_to_utf8(str, endian)
end
end
if #tmp > 0 then
- result[#result+1] = tc(tmp,"")
+ result[#result+1] = concat(tmp)
end
- garbagecollector.pop()
return result
end
+
+local function little(c)
+ local b = byte(c) -- b = c:byte()
+ if b < 0x10000 then
+ return char(b%256,b/256)
+ else
+ b = b - 0x10000
+ local b1, b2 = b/1024 + 0xD800, b%1024 + 0xDC00
+ return char(b1%256,b1/256,b2%256,b2/256)
+ end
+end
+
+local function big(c)
+ local b = byte(c)
+ if b < 0x10000 then
+ return char(b/256,b%256)
+ else
+ b = b - 0x10000
+ local b1, b2 = b/1024 + 0xD800, b%1024 + 0xDC00
+ return char(b1/256,b1%256,b2/256,b2%256)
+ end
+end
+
+function unicode.utf8_to_utf16(str,littleendian)
+ if littleendian then
+ return char(255,254) .. utfgsub(str,".",little)
+ else
+ return char(254,255) .. utfgsub(str,".",big)
+ end
+end
diff --git a/Master/texmf-dist/tex/context/base/l-url.lua b/Master/texmf-dist/tex/context/base/l-url.lua
index 3bb2b1f11f4..097c944677b 100644
--- a/Master/texmf-dist/tex/context/base/l-url.lua
+++ b/Master/texmf-dist/tex/context/base/l-url.lua
@@ -1,10 +1,13 @@
--- filename : l-url.lua
--- author : Hans Hagen, PRAGMA-ADE, Hasselt NL
--- copyright: PRAGMA ADE / ConTeXt Development Team
--- license : see context related readme files
+if not modules then modules = { } end modules ['l-url'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
-if not versions then versions = { } end versions['l-url'] = 1.001
-if not url then url = { } end
+local char, gmatch = string.char, string.gmatch
+local tonumber, type = tonumber, type
-- from the spec (on the web):
--
@@ -16,29 +19,28 @@ if not url then url = { } end
-- / \ / \
-- urn:example:animal:ferret:nose
-do
+url = url or { }
- local function tochar(s)
- return string.char(tonumber(s,16))
- end
+local function tochar(s)
+ return char(tonumber(s,16))
+end
- local colon, qmark, hash, slash, percent, endofstring = lpeg.P(":"), lpeg.P("?"), lpeg.P("#"), lpeg.P("/"), lpeg.P("%"), lpeg.P(-1)
+local colon, qmark, hash, slash, percent, endofstring = lpeg.P(":"), lpeg.P("?"), lpeg.P("#"), lpeg.P("/"), lpeg.P("%"), lpeg.P(-1)
- local hexdigit = lpeg.R("09","AF","af")
- local escaped = percent * lpeg.C(hexdigit * hexdigit) / tochar
+local hexdigit = lpeg.R("09","AF","af")
+local plus = lpeg.P("+")
+local escaped = (plus / " ") + (percent * lpeg.C(hexdigit * hexdigit) / tochar)
- local scheme = lpeg.Cs((escaped+(1-colon-slash-qmark-hash))^0) * colon + lpeg.Cc("")
- local authority = slash * slash * lpeg.Cs((escaped+(1- slash-qmark-hash))^0) + lpeg.Cc("")
- local path = slash * lpeg.Cs((escaped+(1- qmark-hash))^0) + lpeg.Cc("")
- local query = qmark * lpeg.Cs((escaped+(1- hash))^0) + lpeg.Cc("")
- local fragment = hash * lpeg.Cs((escaped+(1- endofstring))^0) + lpeg.Cc("")
+local scheme = lpeg.Cs((escaped+(1-colon-slash-qmark-hash))^0) * colon + lpeg.Cc("")
+local authority = slash * slash * lpeg.Cs((escaped+(1- slash-qmark-hash))^0) + lpeg.Cc("")
+local path = slash * lpeg.Cs((escaped+(1- qmark-hash))^0) + lpeg.Cc("")
+local query = qmark * lpeg.Cs((escaped+(1- hash))^0) + lpeg.Cc("")
+local fragment = hash * lpeg.Cs((escaped+(1- endofstring))^0) + lpeg.Cc("")
- local parser = lpeg.Ct(scheme * authority * path * query * fragment)
-
- function url.split(str)
- return (type(str) == "string" and parser:match(str)) or str
- end
+local parser = lpeg.Ct(scheme * authority * path * query * fragment)
+function url.split(str)
+ return (type(str) == "string" and parser:match(str)) or str
end
function url.hashed(str)
@@ -61,7 +63,7 @@ end
function url.query(str)
if type(str) == "string" then
local t = { }
- for k, v in str:gmatch("([^&=]*)=([^&=]*)") do
+ for k, v in gmatch(str,"([^&=]*)=([^&=]*)") do
t[k] = v
end
return t
@@ -76,12 +78,12 @@ end
--~ print(url.filename("file:///etc/test.txt"))
--~ print(url.filename("/oeps.txt"))
--- from the spec on the web (sort of):
+--~ from the spec on the web (sort of):
--~
--~ function test(str)
--~ print(table.serialize(url.hashed(str)))
--~ end
----~
+--~
--~ test("%56pass%20words")
--~ test("file:///c:/oeps.txt")
--~ test("file:///c|/oeps.txt")
diff --git a/Master/texmf-dist/tex/context/base/l-utils.lua b/Master/texmf-dist/tex/context/base/l-utils.lua
index ec8e39b9428..8d531711fb4 100644
--- a/Master/texmf-dist/tex/context/base/l-utils.lua
+++ b/Master/texmf-dist/tex/context/base/l-utils.lua
@@ -1,10 +1,12 @@
--- filename : l-utils.lua
--- comment : split off from luat-lib
--- author : Hans Hagen, PRAGMA-ADE, Hasselt NL
--- copyright: PRAGMA ADE / ConTeXt Development Team
--- license : see context related readme files
+if not modules then modules = { } end modules ['l-utils'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
-if not versions then versions = { } end versions['l-utils'] = 1.001
+-- hm, quite unreadable
if not utils then utils = { } end
if not utils.merger then utils.merger = { } end
@@ -30,11 +32,20 @@ function utils.report(...)
print(...)
end
+utils.merger.strip_comment = true
+
function utils.merger._self_load_(name)
local f, data = io.open(name), ""
if f then
+ utils.report("reading merge from %s",name)
data = f:read("*all")
f:close()
+ else
+ utils.report("unknown file to merge %s",name)
+ end
+ if data and utils.merger.strip_comment then
+ -- saves some 20K
+ data = data:gsub("%-%-~[^\n\r]*[\r\n]", "")
end
return data or ""
end
@@ -43,6 +54,7 @@ function utils.merger._self_save_(name, data)
if data ~= "" then
local f = io.open(name,'w')
if f then
+ utils.report("saving merge from %s",name)
f:write(data)
f:close()
end
@@ -59,24 +71,52 @@ function utils.merger._self_swap_(data,code)
end
end
+--~ stripper:
+--~
+--~ data = string.gsub(data,"%-%-~[^\n]*\n","")
+--~ data = string.gsub(data,"\n\n+","\n")
+
function utils.merger._self_libs_(libs,list)
- local result, f = { }, nil
+ local result, f, frozen = { }, nil, false
+ result[#result+1] = "\n"
if type(libs) == 'string' then libs = { libs } end
if type(list) == 'string' then list = { list } end
+ local foundpath = nil
for _, lib in ipairs(libs) do
for _, pth in ipairs(list) do
- local name = string.gsub(pth .. "/" .. lib,"\\","/")
- f = io.open(name)
- if f then
- -- utils.report("merging library",name)
- result[#result+1] = f:read("*all")
- f:close()
- list = { pth } -- speed up the search
- break
+ pth = string.gsub(pth,"\\","/") -- file.clean_path
+ utils.report("checking library path %s",pth)
+ local name = pth .. "/" .. lib
+ if lfs.isfile(name) then
+ foundpath = pth
+ end
+ end
+ if foundpath then break end
+ end
+ if foundpath then
+ utils.report("using library path %s",foundpath)
+ local right, wrong = { }, { }
+ for _, lib in ipairs(libs) do
+ local fullname = foundpath .. "/" .. lib
+ if lfs.isfile(fullname) then
+ -- right[#right+1] = lib
+ utils.report("merging library %s",fullname)
+ result[#result+1] = "do -- create closure to overcome 200 locals limit"
+ result[#result+1] = io.loaddata(fullname,true)
+ result[#result+1] = "end -- of closure"
else
- -- utils.report("no library",name)
+ -- wrong[#wrong+1] = lib
+ utils.report("no library %s",fullname)
end
end
+ if #right > 0 then
+ utils.report("merged libraries: %s",table.concat(right," "))
+ end
+ if #wrong > 0 then
+ utils.report("skipped libraries: %s",table.concat(wrong," "))
+ end
+ else
+ utils.report("no valid library path found")
end
return table.concat(result, "\n\n")
end
@@ -113,17 +153,15 @@ function utils.merger.selfclean(name)
)
end
-utils.lua.compile_strip = true
-
-function utils.lua.compile(luafile, lucfile, cleanup)
+function utils.lua.compile(luafile, lucfile, cleanup, strip) -- defaults: cleanup=false strip=true
-- utils.report("compiling",luafile,"into",lucfile)
os.remove(lucfile)
local command = "-o " .. string.quote(lucfile) .. " " .. string.quote(luafile)
- if utils.lua.compile_strip then
+ if strip ~= false then
command = "-s " .. command
end
local done = (os.spawn("texluac " .. command) == 0) or (os.spawn("luac " .. command) == 0)
- if done and cleanup and lfs.isfile(lucfile) and lfs.isfile(luafile) then
+ if done and cleanup == true and lfs.isfile(lucfile) and lfs.isfile(luafile) then
-- utils.report("removing",luafile)
os.remove(luafile)
end
diff --git a/Master/texmf-dist/tex/context/base/l-xml-edu.lua b/Master/texmf-dist/tex/context/base/l-xml-edu.lua
deleted file mode 100644
index 5aba4604349..00000000000
--- a/Master/texmf-dist/tex/context/base/l-xml-edu.lua
+++ /dev/null
@@ -1,381 +0,0 @@
-if not modules then modules = { } end modules ['l-xml-edu'] = {
- version = 1.001,
- comment = "this module is the basis for the lxml-* ones",
- author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
- copyright = "PRAGMA ADE / ConTeXt Development Team",
- license = "see context related readme files"
-}
-
---[[ldx--
-<p>This module contains older code thatwe keep around for educational
-purposes. Here you find the find based xml and lpath parsers.</p>
---ldx]]--
-
-if false then
-
- do
-
- -- Loading 12 cont-*.xml and keys-*.xml files totaling to 2.62 MBytes takes 1.1 sec
- -- on a windows vista laptop with dual core 7600 (2.3 Ghz), which is not that bad.
- -- Of this half time is spent on doctype etc parsing.
-
- local doctype_patterns = {
- "<!DOCTYPE%s+(.-%s+PUBLIC%s+%b\"\"%s+%b\"\"%s+%b[])%s*>",
- "<!DOCTYPE%s+(.-%s+PUBLIC%s+%b\"\"%s+%b\"\")%s*>",
- "<!DOCTYPE%s+(.-%s+SYSTEM%s+%b\"\"%s+%b[])%s*>",
- "<!DOCTYPE%s+(.-%s+SYSTEM%s+%b\"\")%s*>",
- "<!DOCTYPE%s+(.-%s%b[])%s*>",
- "<!DOCTYPE%s+(.-)%s*>"
- }
-
- -- We assume no "<" which is the lunatic part of the xml spec
- -- especially since ">" is permitted; otherwise we need a char
- -- by char parser ... more something for later ... normally
- -- entities will be used anyway.
-
- -- data = data:gsub(nothing done) is still a copy so we find first
-
- local function prepare(data,text)
- -- pack (for backward compatibility)
- if type(data) == "table" then
- data = table.concat(data,"")
- end
- -- CDATA
- if data:find("<!%[CDATA%[") then
- data = data:gsub("<!%[CDATA%[(.-)%]%]>", function(txt)
- text[#text+1] = txt or ""
- return string.format("<@cd@>%s</@cd@>",#text)
- end)
- end
- -- DOCTYPE
- if data:find("<!DOCTYPE ") then
- data = data:gsub("^(.-)(<[^!?])", function(a,b)
- if a:find("<!DOCTYPE ") then -- ?
- for _,v in ipairs(doctype_patterns) do
- a = a:gsub(v, function(d)
- text[#text+1] = d or ""
- return string.format("<@dt@>%s</@dt@>",#text)
- end)
- end
- end
- return a .. b
- end,1)
- end
- -- comment / does not catch doctype
- if data:find("<!%-%-") then
- data = data:gsub("<!%-%-(.-)%-%->", function(txt)
- text[#text+1] = txt or ""
- return string.format("<@cm@>%s</@cm@>",#text)
- end)
- end
- -- processing instructions / altijd 1
- if data:find("<%?") then
- data = data:gsub("<%?(.-)%?>", function(txt)
- text[#text+1] = txt or ""
- return string.format("<@pi@>%s</@pi@>",#text)
- end)
- end
- return data, text
- end
-
- -- maybe we will move the @tg@ stuff to a dedicated key, say 'st'; this will speed up
- -- serializing and testing
-
- function xml.convert(data,no_root,collapse)
- local crap = { }
- data, crap = prepare(data, crap)
- local nsremap = xml.xmlns
- local remove = table.remove
- local stack, top = {}, {}
- local i, j, errorstr = 1, 1, nil
- stack[#stack+1] = top
- top.dt = { }
- local dt = top.dt
- local mt = { __tostring = xml.text }
- local xmlns = { }
- while true do
- local ni, first, attributes, last, fulltag, resolved
- ni, j, first, fulltag, attributes, last = data:find("<(/-)([^%s>/]+)%s*([^>]-)%s*(/-)>", j)
- if not ni then break end
- local namespace, tag = fulltag:match("^(.-):(.+)$")
- if attributes ~= "" then
- local t = {}
- for ns, tag, _, value in attributes:gmatch("(.-):?(.+)=([\"\'])(.-)%3") do -- . was %w
- if tag == "xmlns" then -- not ok yet
- xmlns[#xmlns+1] = xml.resolvens(value)
- t[tag] = value
- elseif ns == "xmlns" then
- xml.checkns(tag,value)
- t["xmlns:" .. tag] = value
- else
- t[tag] = value
- end
- end
- attributes = t
- else
- attributes = { }
- end
- if namespace then -- realtime remapping
- resolved = nsremap[namespace] or namespace
- else
- namespace, tag = "", fulltag
- resolved = xmlns[#xmlns]
- end
- local text = data:sub(i, ni-1)
- if text == "" or (collapse and text:find("^%s*$")) then
- -- no need for empty text nodes, beware, also packs <a>x y z</a>
- -- so is not that useful unless used with empty elements
- else
- dt[#dt+1] = text
- end
- if first == "/" then
- -- end tag
- local toclose = remove(stack) -- remove top
- top = stack[#stack]
- if #stack < 1 then
- errorstr = string.format("nothing to close with %s", tag)
- break
- elseif toclose.tg ~= tag then -- no namespace check
- errorstr = string.format("unable to close %s with %s", toclose.tg, tag)
- break
- end
- if tag:find("^@..@$") then
- dt[1] = crap[tonumber(dt[1])] or ""
- end
- dt = top.dt
- dt[#dt+1] = toclose
- if attributes.xmlns then
- remove(xmlns) -- ?
- end
- elseif last == "/" then
- -- empty element tag
- dt[#dt+1] = { ns = namespace, rn = resolved, tg = tag, dt = { }, at = attributes, __p__ = top }
- setmetatable(top, mt)
- else
- -- begin tag
- top = { ns = namespace, rn = resolved, tg = tag, dt = { }, at = attributes, __p__ = stack[#stack] }
- setmetatable(top, mt)
- dt = top.dt
- stack[#stack+1] = top
- end
- i = j + 1
- end
- if not errorstr then
- local text = data:sub(i)
- if dt and not text:find("^%s*$") then
- dt[#dt+1] = text
- end
- if #stack > 1 then
- errorstr = string.format("unclosed %s", stack[#stack].tg)
- end
- end
- if errorstr then
- stack = { { tg = "error", dt = { errorstr } } }
- setmetatable(stack, mt)
- end
- if no_root then
- return stack[1]
- else
- local t = { ns = "", tg = '@rt@', dt = stack[1].dt }
- setmetatable(t, mt)
- for k,v in ipairs(t.dt) do
- if type(v) == "table" and v.tg ~= "@pi@" and v.tg ~= "@dt@" and v.tg ~= "@cm@" then
- t.ri = k -- rootindex
- break
- end
- end
- return t
- end
- end
-
- end
-
- --~ Y a/b
- --~ Y /a/b
- --~ Y a/*/b
- --~ Y a//b
- --~ Y child::
- --~ Y .//
- --~ Y ..
- --~ N id("tag")
- --~ Y parent::
- --~ Y child::
- --~ N preceding-sibling:: (same name)
- --~ N following-sibling:: (same name)
- --~ N preceding-sibling-of-self:: (same name)
- --~ N following-sibling-or-self:: (same name)
- --~ N ancestor::
- --~ N descendent::
- --~ N preceding::
- --~ N following::
- --~ N self::node()
- --~ N node() == alles
- --~ N a[position()=5]
- --~ Y a[5]
- --~ Y a[-5]
- --~ N a[first()]
- --~ N a[last()]
- --~ Y a/(b|c|d)/e/f
- --~ Y a/!(b|c|d)/e/f
- --~ N (c/d|e)
- --~ Y a/b[@bla]
- --~ Y a/b[@bla='oeps']
- --~ Y a/b[@bla=='oeps']
- --~ Y a/b[@bla<>'oeps']
- --~ Y a/b[@bla!='oeps']
- --~ Y a/b/@bla
- --~ Y a['string']
- --~ Y ^/a/c (root)
- --~ Y ^^/a/c (docroot)
- --~ Y root::a/c (docroot)
- --~ no wild card functions (yet)
- --~ s = "/a//b/*/(c|d|e)/(f|g)/h[4]/h/child::i/j/(a/b)/p[-1]/q[4]/ancestor::q/r/../s/./t[@bla='true']/k"
- -- // == /**/
- -- / = ^ (root)
-
- do
-
- function analyze(str)
- if not str then
- return ""
- else
- local tmp, result, map, key = { }, { }, { }, str
- str = str:gsub("(%b[])", function(s) tmp[#tmp+1] = s return '[['..#tmp..']]' end)
- str = str:gsub("(%b())", function(s) tmp[#tmp+1] = s return '[['..#tmp..']]' end)
- str = str:gsub("(%^+)([^/])", "%1/%2")
- str = str:gsub("//+", "/**/")
- str = str:gsub(".*root::", "^/")
- str = str:gsub("child::", "")
- str = str:gsub("parent::", "../")
- str = str:gsub("self::", "./")
- str = str:gsub("^/", "^/")
- for s in str:gmatch("([^/]+)") do
- s = s:gsub("%[%[(%d+)%]%]",function(n) return tmp[tonumber(n)] end)
- result[#result+1] = s
- end
- return result
- end
- end
-
- function compose(result)
- if not result or #result == 0 then
- -- wildcard
- return true
- elseif #result == 1 then
- local r = result[1][1]
- if r == "14" or r == "15" then
- -- wildcard
- return true
- elseif r == "12" then
- -- root
- return false
- end
- end
- local map = { }
- for r=1,#result do
- local ri = result[r]
- if ri == "." then
- -- skip
- elseif ri == ".." then
- map[#map+1] = { 11 }
- elseif ri == "^" then
- map[#map+1] = { 12 }
- elseif ri == "^^" then
- map[#map+1] = { 13 }
- elseif ri == "*" then
- map[#map+1] = { 14 }
- elseif ri == "**" then
- map[#map+1] = { 15 }
- else
- local negate, m = ri:match("^(!*)%((.*)%)$") -- (a|b|c)
- if m or ri:find('|') then
- m = m or ri
- if m:find("[%[%]%(%)/]") then -- []()/
- -- error
- else
- local t = { (negate and #negate>0 and 25) or 21 }
- for s in m:gmatch("([^|]+)") do
- local ns, tg = s:match("^(.-):?([^:]+)$")
- if ns == "*" then ns = true end
- t[#t+1] = ns
- t[#t+1] = tg
- end
- map[#map+1] = t
- end
- else
- local s, f = ri:match("^(.-)%[%s*(.+)%s*%]$") --aaa[bbb]
- if s and f then
- local ns, tg = s:match("^(.-):?([^:]+)$")
- local at, op, vl = f:match("^@(.-)([!=<>]?)([^!=<>]+)$") -- [@a=='b']
- if ns == "*" then ns = true end
- if vl then
- if op and op ~= "" then
- if op == '=' or op == '==' then
- map[#map+1] = { 22, ns, tg, at, (vl:gsub("^([\'\"])(.*)%1$","%2")) }
- elseif op == '<>' or op == '!=' then
- map[#map+1] = { 23, ns, tg, at, (vl:gsub("^([\'\"])(.*)%1$","%2")) }
- else
- -- error
- end
- elseif vl ~= "" then -- [@whatever]
- map[#map+1] = { 26, ns, tg, vl }
- else
- -- error
- end
- -- elseif f:find("^([%-%+%d]+)$") then -- [123]
- elseif f:find("^([-+%d]+)$") then -- [123]
- map[#map+1] = { 30, ns, tg, tonumber(f) }
- else -- [whatever]
- map[#map+1] = { 27, ns, tg, (f:gsub("^([\'\"])(.*)%1$","%2")) }
- end
- else
- local pi = ri:match("^pi::(.-)$")
- if pi then
- map[#map+1] = { 40, pi }
- else
- local negate, ns, tg = ri:match("^(!-)(.-):?([^:]+)$")
- map[#map+1] = { (negate and #negate>0 and 24) or 20, ns, tg }
- end
- end
- end
- end
- end
- -- if we have a symbol, we can prepend that to the string, which is faster
- local mm = map[1] or { }
- local r = mm[1] or 0
- if #map == 1 then
- if r == 14 or r == 15 then
- -- wildcard
- return true
- elseif r == 12 then
- -- root
- return false
- end
- end
- if r ~= 11 and r ~= 12 and r ~= 13 and r ~= 14 and r ~= 15 then
- table.insert(map, 1, { 16 })
- end
- return map
- end
-
- cache = { }
-
- function xml.lpath(pattern)
- if type(pattern) == "string" then
- local result = cache[pattern]
- if not result then
- result = compose(analyze(pattern))
- cache[pattern] = result
- end
- if xml.trace_lpath then
- xml.lshow(result)
- end
- return result
- else
- return pattern
- end
- end
-
- end
-
-end
diff --git a/Master/texmf-dist/tex/context/base/l-xml.lua b/Master/texmf-dist/tex/context/base/l-xml.lua
index b4e151ec32e..8b8a6ce4433 100644
--- a/Master/texmf-dist/tex/context/base/l-xml.lua
+++ b/Master/texmf-dist/tex/context/base/l-xml.lua
@@ -9,6 +9,8 @@ if not modules then modules = { } end modules ['l-xml'] = {
-- RJ: key=value ... lpeg.Ca(lpeg.Cc({}) * (pattern-producing-key-and-value / rawset)^0)
-- some code may move to l-xmlext
+-- some day we will really compile the lpaths (just construct functions)
+-- todo: some things per xml file, like namespace remapping
--[[ldx--
<p>The parser used here is inspired by the variant discussed in the lua book, but
@@ -37,15 +39,30 @@ optimize the code.</p>
xml = xml or { }
tex = tex or { }
-xml.trace_lpath = false
-xml.trace_print = false
-xml.trace_remap = false
+local concat, remove, insert = table.concat, table.remove, table.insert
+local type, next, tonumber, tostring, setmetatable, loadstring = type, next, tonumber, tostring, setmetatable, loadstring
+local format, lower, gmatch, gsub, find = string.format, string.lower, string.gmatch, string.gsub, string.find
-local format, concat = string.format, table.concat
+--[[ldx--
+<p>This module can be used stand alone but also inside <l n='mkiv'/> in
+which case it hooks into the tracker code. Therefore we provide a few
+functions that set the tracers.</p>
+--ldx]]--
---~ local pairs, next, type = pairs, next, type
+local trace_lpath, trace_remap = false, false
--- todo: some things per xml file, liek namespace remapping
+if trackers then
+ trackers.register("xml.lpath", function(v) trace_lpath = v end)
+ trackers.register("xml.remap", function(v) trace_remap = v end)
+end
+
+function xml.settrace(str,value)
+ if str == "lpath" then
+ trace_lpath = value or false
+ elseif str == "remap" then
+ trace_remap = value or false
+ end
+end
--[[ldx--
<p>First a hack to enable namespace resolving. A namespace is characterized by
@@ -72,7 +89,7 @@ do
--ldx]]--
function xml.registerns(namespace, pattern) -- pattern can be an lpeg
- check = check + lpeg.C(lpeg.P(pattern:lower())) / namespace
+ check = check + lpeg.C(lpeg.P(lower(pattern))) / namespace
parse = lpeg.P { lpeg.P(check) + 1 * lpeg.V(1) }
end
@@ -87,7 +104,7 @@ do
--ldx]]--
function xml.checkns(namespace,url)
- local ns = parse:match(url:lower())
+ local ns = parse:match(lower(url))
if ns and namespace ~= ns then
xml.xmlns[namespace] = ns
end
@@ -105,7 +122,7 @@ do
--ldx]]--
function xml.resolvens(url)
- return parse:match(url:lower()) or ""
+ return parse:match(lower(url)) or ""
end
--[[ldx--
@@ -154,7 +171,7 @@ do
-- not just one big nested table capture (lpeg overflow)
- local remove, nsremap, resolvens = table.remove, xml.xmlns, xml.resolvens
+ local nsremap, resolvens = xml.xmlns, xml.resolvens
local stack, top, dt, at, xmlns, errorstr, entities = {}, {}, {}, {}, {}, nil, {}
@@ -172,6 +189,9 @@ do
end
local function add_attribute(namespace,tag,value)
+ if cleanup and #value > 0 then
+ value = cleanup(value) -- new
+ end
if tag == "xmlns" then
xmlns[#xmlns+1] = resolvens(value)
at[tag] = value
@@ -206,7 +226,8 @@ do
end
dt = top.dt
dt[#dt+1] = toclose
- if at.xmlns then
+dt[0] = top
+ if toclose.at.xmlns then
remove(xmlns)
end
end
@@ -220,10 +241,10 @@ do
local t = { ns=namespace or "", rn=resolved, tg=tag, at=at, dt={}, __p__ = top }
dt[#dt+1] = t
setmetatable(t, mt)
- at = { }
if at.xmlns then
remove(xmlns)
end
+ at = { }
end
local function add_text(text)
if cleanup and #text > 0 then
@@ -243,7 +264,7 @@ do
end
end
local function set_message(txt)
- errorstr = "garbage at the end of the file: " .. txt:gsub("([ \n\r\t]*)","")
+ errorstr = "garbage at the end of the file: " .. gsub(txt,"([ \n\r\t]*)","")
end
local P, S, R, C, V = lpeg.P, lpeg.S, lpeg.R, lpeg.C, lpeg.V
@@ -291,7 +312,7 @@ do
local somecomment = C((1 - endcomment )^0)
local somecdata = C((1 - endcdata )^0)
- function entity(k,v) entities[k] = v end
+ local function entity(k,v) entities[k] = v end
local begindoctype = open * P("!DOCTYPE")
local enddoctype = close
@@ -387,7 +408,7 @@ do
return root and not root.error
end
- xml.error_handler = (logs and logs.report) or (input and input.report) or print
+ xml.error_handler = (logs and logs.report) or (input and logs.report) or print
end
@@ -436,7 +457,7 @@ can speed up things a bit. The second argument is not to be used!</p>
do
- function copy(old,tables)
+ local function copy(old,tables)
if old then
tables = tables or { }
local new = { }
@@ -480,22 +501,19 @@ do
elseif not nocommands then
local ec = e.command
if ec ~= nil then -- we can have all kind of types
-
-if e.special then -- todo test for true/false
- local etg, edt = e.tg, e.dt
- local spc = specialconverter and specialconverter[etg]
- if spc then
---~ print("SPECIAL",etg,table.serialize(specialconverter), spc)
- local result = spc(edt[1])
- if result then
- handle(result)
- return
- else
- -- no need to handle any further
- end
- end
-end
-
+ if e.special then
+ local etg, edt = e.tg, e.dt
+ local spc = specialconverter and specialconverter[etg]
+ if spc then
+ local result = spc(edt[1])
+ if result then
+ handle(result)
+ return
+ else
+ -- no need to handle any further
+ end
+ end
+ end
local xc = xml.command
if xc then
xc(e,ec)
@@ -536,27 +554,17 @@ end
local ats = eat and next(eat) and { } -- type test maybe faster
if ats then
if attributeconverter then
- for k,v in pairs(eat) do
+ for k,v in next, eat do
ats[#ats+1] = format('%s=%q',k,attributeconverter(v))
end
else
- for k,v in pairs(eat) do
+ for k,v in next, eat do
ats[#ats+1] = format('%s=%q',k,v)
end
end
end
- if ern and xml.trace_remap and ern ~= ens then
---~ if ats then
---~ ats[#ats+1] = format("xmlns:remapped='%s'",ern)
---~ else
---~ ats = { format("xmlns:remapped='%s'",ern) }
---~ end
---~ if ats then
---~ ats[#ats+1] = format("remappedns='%s'",ens or '-')
---~ else
---~ ats = { format("remappedns='%s'",ens or '-') }
---~ end
-ens = ern
+ if ern and trace_remap and ern ~= ens then
+ ens = ern
end
if ens ~= "" then
if edt and #edt > 0 then
@@ -600,7 +608,16 @@ ens = ern
handle("<" .. etg .. ">")
end
for i=1,#edt do
- serialize(edt[i],handle,textconverter,attributeconverter,specialconverter,nocommands)
+ local ei = edt[i]
+ if type(ei) == "string" then
+ if textconverter then
+ handle(textconverter(ei))
+ else
+ handle(ei)
+ end
+ else
+ serialize(ei,handle,textconverter,attributeconverter,specialconverter,nocommands)
+ end
end
-- handle(format("</%s>",etg))
handle("</" .. etg .. ">")
@@ -623,7 +640,16 @@ ens = ern
end
else
for i=1,#e do
- serialize(e[i],handle,textconverter,attributeconverter,specialconverter,nocommands)
+ local ei = e[i]
+ if type(ei) == "string" then
+ if textconverter then
+ handle(textconverter(ei))
+ else
+ handle(ei)
+ end
+ else
+ serialize(ei,handle,textconverter,attributeconverter,specialconverter,nocommands)
+ end
end
end
end
@@ -633,15 +659,16 @@ ens = ern
function xml.checkbom(root) -- can be made faster
if root.ri then
local dt, found = root.dt, false
- for k,v in ipairs(dt) do
+ for k=1,#dt do
+ local v = dt[k]
if type(v) == "table" and v.special and v.tg == "@pi" and v.dt:find("xml.*version=") then
found = true
break
end
end
if not found then
- table.insert(dt, 1, { special=true, ns="", tg="@pi@", dt = { "xml version='1.0' standalone='yes'"} } )
- table.insert(dt, 2, "\n" )
+ insert(dt, 1, { special=true, ns="", tg="@pi@", dt = { "xml version='1.0' standalone='yes'"} } )
+ insert(dt, 2, "\n" )
end
end
end
@@ -653,14 +680,14 @@ ens = ern
function xml.tostring(root) -- 25% overhead due to collecting
if root then
- if type(root) == 'string' then
- return root
- elseif next(root) then -- next is faster than type (and >0 test)
- local result = { }
- serialize(root,function(s) result[#result+1] = s end)
- return concat(result,"")
+ if type(root) == 'string' then
+ return root
+ elseif next(root) then -- next is faster than type (and >0 test)
+ local result = { }
+ serialize(root,function(s) result[#result+1] = s end)
+ return concat(result,"")
+ end
end
- end
return ""
end
@@ -725,6 +752,18 @@ function xml.content(root) -- bugged
return (root and root.dt and xml.tostring(root.dt)) or ""
end
+function xml.isempty(root, pattern)
+ if pattern == "" or pattern == "*" then
+ pattern = nil
+ end
+ if pattern then
+ -- todo
+ return false
+ else
+ return not root or not root.dt or #root.dt == 0 or root.dt == ""
+ end
+end
+
--[[ldx--
<p>The next helper erases an element but keeps the table as it is,
and since empty strings are not serialized (effectively) it does
@@ -767,11 +806,16 @@ of <l n='xpath'/> and since we're not compatible we call it <l n='lpath'/>. We
will explain more about its usage in other documents.</p>
--ldx]]--
+local lpathcalls = 0 -- statisctics
+local lpathcached = 0 -- statisctics
+
do
- xml.functions = xml.functions or { }
+ xml.functions = xml.functions or { }
+ xml.expressions = xml.expressions or { }
- local functions = xml.functions
+ local functions = xml.functions
+ local expressions = xml.expressions
local actions = {
[10] = "stay",
@@ -795,34 +839,32 @@ do
[40] = "processing instruction",
}
- --~ local function make_expression(str) --could also be an lpeg
- --~ str = str:gsub("@([a-zA-Z%-_]+)", "(a['%1'] or '')")
- --~ str = str:gsub("position%(%)", "i")
- --~ str = str:gsub("text%(%)", "t")
- --~ str = str:gsub("!=", "~=")
- --~ str = str:gsub("([^=!~<>])=([^=!~<>])", "%1==%2")
- --~ str = str:gsub("([a-zA-Z%-_]+)%(", "functions.%1(")
- --~ return str, loadstring(format("return function(functions,i,a,t) return %s end", str))()
- --~ end
-
-- a rather dumb lpeg
local P, S, R, C, V, Cc = lpeg.P, lpeg.S, lpeg.R, lpeg.C, lpeg.V, lpeg.Cc
- local lp_position = P("position()") / "id"
+ -- instead of using functions we just parse a few names which saves a call
+ -- later on
+
+ local lp_position = P("position()") / "ps"
+ local lp_index = P("index()") / "id"
local lp_text = P("text()") / "tx"
- local lp_name = P("name()") / "((rt.ns~='' and rt.ns..':'..rt.tg) or '')"
- local lp_tag = P("tag()") / "(rt.tg or '')"
- local lp_ns = P("ns()") / "(rt.ns or '')"
+ local lp_name = P("name()") / "(ns~='' and ns..':'..tg)" -- "((rt.ns~='' and rt.ns..':'..rt.tg) or '')"
+ local lp_tag = P("tag()") / "tg" -- (rt.tg or '')
+ local lp_ns = P("ns()") / "ns" -- (rt.ns or '')
local lp_noequal = P("!=") / "~=" + P("<=") + P(">=") + P("==")
local lp_doequal = P("=") / "=="
local lp_attribute = P("@") / "" * Cc("(at['") * R("az","AZ","--","__")^1 * Cc("'] or '')")
- local lp_function = C(R("az","AZ","--","__")^1) * P("(") / function(t)
- if functions[t] then
- return "functions." .. t .. "("
+ local lp_lua_function = C(R("az","AZ","--","__")^1 * (P(".") * R("az","AZ","--","__")^1)^1) * P("(") / function(t) -- todo: better . handling
+ return t .. "("
+ end
+
+ local lp_function = C(R("az","AZ","--","__")^1) * P("(") / function(t) -- todo: better . handling
+ if expressions[t] then
+ return "expressions." .. t .. "("
else
- return "functions.error("
+ return "expressions.error("
end
end
@@ -830,34 +872,45 @@ do
local rparent = lpeg.P(")")
local noparent = 1 - (lparent+rparent)
local nested = lpeg.P{lparent * (noparent + lpeg.V(1))^0 * rparent}
- local value = lpeg.P(lparent * lpeg.C((noparent + nested)^0) * rparent)
+ local value = lpeg.P(lparent * lpeg.C((noparent + nested)^0) * rparent) -- lpeg.P{"("*C(((1-S("()"))+V(1))^0)*")"}
---~ local value = P { "(" * C(((1 - S("()")) + V(1))^0) * ")" }
+ -- if we use a dedicated namespace then we don't need to pass rt and k
local lp_special = (C(P("name")+P("text")+P("tag"))) * value / function(t,s)
- if functions[t] then
+ if expressions[t] then
if s then
- return "functions." .. t .. "(rt,k," .. s ..")"
+ return "expressions." .. t .. "(r,k," .. s ..")"
else
- return "functions." .. t .. "(rt,k)"
+ return "expressions." .. t .. "(r,k)"
end
else
- return "functions.error(" .. t .. ")"
+ return "expressions.error(" .. t .. ")"
end
end
local converter = lpeg.Cs ( (
lp_position +
+ lp_index +
lp_text + lp_name + -- fast one
lp_special +
lp_noequal + lp_doequal +
lp_attribute +
+ lp_lua_function +
lp_function +
1 )^1 )
+ -- expressions,root,rootdt,k,e,edt,ns,tg,idx,hsh[tg] or 1
+
+ local template = [[
+ return function(expressions,r,d,k,e,dt,ns,tg,id,ps)
+ local at, tx = e.at or { }, dt[1] or ""
+ return %s
+ end
+ ]]
+
local function make_expression(str)
str = converter:match(str)
- return str, loadstring(format("return function(functions,id,at,tx,rt,k) return %s end", str))()
+ return str, loadstring(format(template,str))()
end
local map = { }
@@ -880,8 +933,6 @@ do
local bar = P('|')
local hat = P('^')
local valid = R('az', 'AZ', '09') + S('_-')
---~ local name_yes = C(valid^1 + star) * colon * C(valid^1 + star) -- permits ns:* *:tg *:*
---~ local name_nop = C(P(true)) * C(valid^1)
local name_yes = C(valid^1 + star) * colon * C(valid^1 + star) -- permits ns:* *:tg *:*
local name_nop = Cc("*") * C(valid^1)
local name = name_yes + name_nop
@@ -967,7 +1018,7 @@ do
local selector = (
instruction +
- many + any +
+--~ many + any + -- brrr, not here !
parent + stay +
dont_position + position +
dont_match_one_of_and_eq + dont_match_one_of_and_ne +
@@ -979,6 +1030,7 @@ do
has_attribute + has_value +
dont_match_one_of + match_one_of +
dont_match + match +
+ many + any +
crap + empty
)
@@ -1015,9 +1067,9 @@ do
return { map[2] }
end
if m ~= 11 and m ~= 12 and m ~= 13 and m ~= 14 and m ~= 15 and m ~= 16 then
- table.insert(map, 1, { 16 })
+ insert(map, 1, { 16 })
end
- -- print((table.serialize(map)):gsub("[ \n]+"," "))
+ -- print(gsub(table.serialize(map),"[ \n]+"," "))
return map
end
end
@@ -1026,13 +1078,15 @@ do
local cache = { }
function xml.lpath(pattern,trace)
+ lpathcalls = lpathcalls + 1
if type(pattern) == "string" then
local result = cache[pattern]
- if not result then
+ if result == nil then -- can be false which is valid -)
result = compose(pattern)
cache[pattern] = result
+ lpathcached = lpathcached + 1
end
- if trace or xml.trace_lpath then
+ if trace or trace_lpath then
xml.lshow(result)
end
return result
@@ -1041,10 +1095,17 @@ do
end
end
- local fallbackreport = (texio and texio.write) or io.write
+ function xml.cached_patterns()
+ return cache
+ end
+
+-- we run out of locals (limited to 200)
+--
+-- local fallbackreport = (texio and texio.write) or io.write
function xml.lshow(pattern,report)
- report = report or fallbackreport
+-- report = report or fallbackreport
+ report = report or (texio and texio.write) or io.write
local lp = xml.lpath(pattern)
if lp == false then
report(" -: root\n")
@@ -1054,7 +1115,8 @@ do
if type(pattern) == "string" then
report(format("pattern: %s\n",pattern))
end
- for k,v in ipairs(lp) do
+ for k=1,#lp do
+ local v = lp[k]
if #v > 1 then
local t = { }
for i=2,#v do
@@ -1075,7 +1137,8 @@ do
function xml.xshow(e,...) -- also handy when report is given, use () to isolate first e
local t = { ... }
- local report = (type(t[#t]) == "function" and t[#t]) or fallbackreport
+-- local report = (type(t[#t]) == "function" and t[#t]) or fallbackreport
+ local report = (type(t[#t]) == "function" and t[#t]) or (texio and texio.write) or io.write
if e == nil then
report("<!-- no element -->\n")
elseif type(e) ~= "table" then
@@ -1108,22 +1171,25 @@ functions.</p>
do
- local functions = xml.functions
+ local functions = xml.functions
+ local expressions = xml.expressions
- functions.contains = string.find
- functions.find = string.find
- functions.upper = string.upper
- functions.lower = string.lower
- functions.number = tonumber
- functions.boolean = toboolean
+ expressions.contains = string.find
+ expressions.find = string.find
+ expressions.upper = string.upper
+ expressions.lower = string.lower
+ expressions.number = tonumber
+ expressions.boolean = toboolean
- functions.oneof = function(s,...) -- slow
+ expressions.oneof = function(s,...) -- slow
local t = {...} for i=1,#t do if s == t[i] then return true end end return false
end
- functions.error = function(str)
- xml.error_handler("unknown function in lpath expression",str)
+
+ expressions.error = function(str)
+ xml.error_handler("unknown function in lpath expression",str or "?")
return false
end
+
functions.text = function(root,k,n) -- unchecked, maybe one deeper
local t = type(t)
if t == "string" then
@@ -1133,35 +1199,21 @@ do
return (rdt and rdt[k]) or root[k] or ""
end
end
- functions.name = function(root,k,n)
- -- way too fuzzy
- local found
- if not k or not n then
- local ns, tg = root.rn or root.ns or "", root.tg
- if not tg then
- for i=1,#root do
- local e = root[i]
- if type(e) == "table" then
- found = e
- break
- end
- end
- elseif ns ~= "" then
- return ns .. ":" .. tg
- else
- return tg
- end
+
+ functions.name = function(d,k,n) -- ns + tg
+ local found = false
+ n = n or 0
+ if not k then
+ -- not found
elseif n == 0 then
- local e = root[k]
- if type(e) ~= "table" then
- found = e
- end
+ local dk = d[k]
+ found = dk and (type(dk) == "table") and dk
elseif n < 0 then
for i=k-1,1,-1 do
- local e = root[i]
- if type(e) == "table" then
+ local di = d[i]
+ if type(di) == "table" then
if n == -1 then
- found = e
+ found = di
break
else
n = n + 1
@@ -1169,12 +1221,11 @@ do
end
end
else
---~ print(k,n,#root)
- for i=k+1,#root,1 do
- local e = root[i]
- if type(e) == "table" then
+ for i=k+1,#d,1 do
+ local di = d[i]
+ if type(di) == "table" then
if n == 1 then
- found = e
+ found = di
break
else
n = n - 1
@@ -1194,6 +1245,46 @@ do
end
end
+ functions.tag = function(d,k,n) -- only tg
+ local found = false
+ n = n or 0
+ if not k then
+ -- not found
+ elseif n == 0 then
+ local dk = d[k]
+ found = dk and (type(dk) == "table") and dk
+ elseif n < 0 then
+ for i=k-1,1,-1 do
+ local di = d[i]
+ if type(di) == "table" then
+ if n == -1 then
+ found = di
+ break
+ else
+ n = n + 1
+ end
+ end
+ end
+ else
+ for i=k+1,#d,1 do
+ local di = d[i]
+ if type(di) == "table" then
+ if n == 1 then
+ found = di
+ break
+ else
+ n = n - 1
+ end
+ end
+ end
+ end
+ return (found and found.tg) or ""
+ end
+
+ expressions.text = functions.text
+ expressions.name = functions.name
+ expressions.tag = functions.tag
+
local function traverse(root,pattern,handle,reverse,index,parent,wildcard) -- multiple only for tags, not for namespaces
if not root then -- error
return false
@@ -1266,10 +1357,13 @@ do
start, stop, step = stop, start, -1
end
local idx = 0
+ local hsh = { } -- this will slooow down the lot
for k=start,stop,step do -- we used to have functions for all but a case is faster
local e = rootdt[k]
local ns, tg = e.rn or e.ns, e.tg
if tg then
+ -- we can optimize this for simple searches, but it probably does not pay off
+ hsh[tg] = (hsh[tg] or 0) + 1
idx = idx + 1
if command == 30 then
local ns_a, tg_a = action[3], action[4]
@@ -1392,7 +1486,7 @@ do
end
if not action[2] then matched = not matched end
if matched then
- matched = action[6](functions,idx,e.at or { },edt[1],rootdt,k)
+ matched = action[6](expressions,root,rootdt,k,e,edt,ns,tg,idx,hsh[tg] or 1)
end
end
if matched then -- combine tg test and at test
@@ -1564,7 +1658,7 @@ do
local rt, dt, dk
traverse(root, lpath(pattern), function(r,d,k) rt, dt, dk = r, d, k return true end)
local ekat = (dt and dt[dk] and dt[dk].at) or (rt and rt.at)
- return (ekat and (ekat[arguments] or ekat[arguments:gsub("^([\"\'])(.*)%1$","%2")])) or ""
+ return (ekat and (ekat[arguments] or ekat[gsub(arguments,"^([\"\'])(.*)%1$","%2")])) or ""
end
function xml.filters.text(root,pattern,arguments) -- ?? why index, tostring slow
local dtk, rt, dt, dk = xml.filters.index(root,pattern,arguments)
@@ -1626,9 +1720,6 @@ do
function xml.filter(root,pattern)
local kind, a, b, c = parser:match(pattern)
---~ if xml.trace_lpath then
---~ print(pattern,kind,a,b,c)
---~ end
if kind == 1 or kind == 3 then
return (filters[b] or default_filter)(root,a,c)
elseif kind == 2 then
@@ -1867,11 +1958,20 @@ do
local r, d, k, element = m[1], m[2], m[3], m[4]
if not before then k = k + 1 end
if element.tg then
- table.insert(d,k,element) -- untested
- elseif element.dt then
- for _,v in ipairs(element.dt) do -- i added
- table.insert(d,k,v)
- k = k + 1
+ insert(d,k,element) -- untested
+--~ elseif element.dt then
+--~ for _,v in ipairs(element.dt) do -- i added
+--~ insert(d,k,v)
+--~ k = k + 1
+--~ end
+--~ end
+ else
+ local edt = element.dt
+ if edt then
+ for i=1,#edt do
+ insert(d,k,edt[i])
+ k = k + 1
+ end
end
end
end
@@ -1932,7 +2032,7 @@ do
end
if not name then
if ek.at then
- for a in (attribute or "href"):gmatch("([^|]+)") do
+ for a in gmatch(attribute or "href","([^|]+)") do
name = ek.at[a]
if name then break end
end
@@ -1958,15 +2058,27 @@ do
xml.each_element(xmldata, pattern, include)
end
- function xml.strip_whitespace(root, pattern)
+ function xml.strip_whitespace(root, pattern, nolines) -- strips all leading and trailing space !
traverse(root, lpath(pattern), function(r,d,k)
local dkdt = d[k].dt
if dkdt then -- can be optimized
local t = { }
for i=1,#dkdt do
local str = dkdt[i]
- if type(str) == "string" and str:find("^[ \n\r\t]*$") then
- -- stripped
+ if type(str) == "string" then
+
+ if str == "" then
+ -- stripped
+ else
+ if nolines then
+ str = gsub(str,"[ \n\r\t]+"," ")
+ end
+ if str == "" then
+ -- stripped
+ else
+ t[#t+1] = str
+ end
+ end
else
t[#t+1] = str
end
@@ -1976,9 +2088,8 @@ do
end)
end
- function xml.rename_space(root, oldspace, newspace) -- fast variant
+ local function rename_space(root, oldspace, newspace) -- fast variant
local ndt = #root.dt
- local rename = xml.rename_space
for i=1,ndt or 0 do
local e = root[i]
if type(e) == "table" then
@@ -1990,12 +2101,14 @@ do
end
local edt = e.dt
if edt then
- rename(edt, oldspace, newspace)
+ rename_space(edt, oldspace, newspace)
end
end
end
end
+ xml.rename_space = rename_space
+
function xml.remap_tag(root, pattern, newtg)
traverse(root, lpath(pattern), function(r,d,k)
d[k].tg = newtg
@@ -2074,10 +2187,12 @@ put them here instead of loading mode modules there then needed.</p>
--ldx]]--
function xml.gsub(t,old,new)
- if t.dt then
- for k,v in ipairs(t.dt) do
+ local dt = t.dt
+ if dt then
+ for k=1,#dt do
+ local v = dt[k]
if type(v) == "string" then
- t.dt[k] = v:gsub(old,new)
+ dt[k] = gsub(v,old,new)
else
xml.gsub(v,old,new)
end
@@ -2102,9 +2217,9 @@ end
--~ xml.escapes = { ['&'] = '&amp;', ['<'] = '&lt;', ['>'] = '&gt;', ['"'] = '&quot;' }
--~ xml.unescapes = { } for k,v in pairs(xml.escapes) do xml.unescapes[v] = k end
---~ function xml.escaped (str) return str:gsub("(.)" , xml.escapes ) end
---~ function xml.unescaped(str) return str:gsub("(&.-;)", xml.unescapes) end
---~ function xml.cleansed (str) return str:gsub("<.->" , '' ) end -- "%b<>"
+--~ function xml.escaped (str) return (gsub(str,"(.)" , xml.escapes )) end
+--~ function xml.unescaped(str) return (gsub(str,"(&.-;)", xml.unescapes)) end
+--~ function xml.cleansed (str) return (gsub(str,"<.->" , '' )) end -- "%b<>"
do
@@ -2136,6 +2251,10 @@ do
local cleansed = Cs(((P("<") * (1-P(">"))^0 * P(">"))/"" + 1)^0)
+ xml.escaped_pattern = escaped
+ xml.unescaped_pattern = unescaped
+ xml.cleansed_pattern = cleansed
+
function xml.escaped (str) return escaped :match(str) end
function xml.unescaped(str) return unescaped:match(str) end
function xml.cleansed (str) return cleansed :match(str) end
@@ -2168,9 +2287,9 @@ original entity is returned.</p>
do if unicode and unicode.utf8 then
- xml.entities = xml.entities or { } -- xml.entities.handler == function
+ xml.entities = xml.entities or { } -- xml.entity_handler == function
- function xml.entities.handler(e)
+ function xml.entity_handler(e)
return format("[%s]",e)
end
@@ -2180,16 +2299,14 @@ do if unicode and unicode.utf8 then
return char(tonumber(s,16))
end
- local entities = xml.entities -- global entities
-
- function utfize(root)
+ local function utfize(root)
local d = root.dt
for k=1,#d do
local dk = d[k]
if type(dk) == "string" then
-- test prevents copying if no match
- if dk:find("&#x.-;") then
- d[k] = dk:gsub("&#x(.-);",toutf)
+ if find(dk,"&#x.-;") then
+ d[k] = gsub(dk,"&#x(.-);",toutf)
end
else
utfize(dk)
@@ -2200,14 +2317,16 @@ do if unicode and unicode.utf8 then
xml.utfize = utfize
local function resolve(e) -- hex encoded always first, just to avoid mkii fallbacks
- if e:find("#x") then
+ if find(e,"^#x") then
return char(tonumber(e:sub(3),16))
+ elseif find(e,"^#") then
+ return char(tonumber(e:sub(2)))
else
- local ee = entities[e]
+ local ee = xml.entities[e] -- we cannot shortcut this one (is reloaded)
if ee then
return ee
else
- local h = xml.entities.handler
+ local h = xml.entity_handler
return (h and h(e)) or "&" .. e .. ";"
end
end
@@ -2219,8 +2338,8 @@ do if unicode and unicode.utf8 then
for k=1,#d do
local dk = d[k]
if type(dk) == "string" then
- if dk:find("&.-;") then
- d[k] = dk:gsub("&(.-);",resolve)
+ if find(dk,"&.-;") then
+ d[k] = gsub(dk,"&(.-);",resolve)
end
else
resolve_entities(dk)
@@ -2232,24 +2351,24 @@ do if unicode and unicode.utf8 then
xml.resolve_entities = resolve_entities
function xml.utfize_text(str)
- if str:find("&#") then
- return (str:gsub("&#x(.-);",toutf))
+ if find(str,"&#") then
+ return (gsub(str,"&#x(.-);",toutf))
else
return str
end
end
function xml.resolve_text_entities(str) -- maybe an lpeg. maybe resolve inline
- if str:find("&") then
- return (str:gsub("&(.-);",resolve))
+ if find(str,"&") then
+ return (gsub(str,"&(.-);",resolve))
else
return str
end
end
function xml.show_text_entities(str)
- if str:find("&") then
- return (str:gsub("&(.-);","[%1]"))
+ if find(str,"&") then
+ return (gsub(str,"&(.-);","[%1]"))
else
return str
end
@@ -2261,7 +2380,7 @@ do if unicode and unicode.utf8 then
local documententities = root.entities
local allentities = xml.entities
if documententities then
- for k, v in pairs(documententities) do
+ for k, v in next, documententities do
allentities[k] = v
end
end
@@ -2269,6 +2388,13 @@ do if unicode and unicode.utf8 then
end end
+function xml.statistics()
+ return {
+ lpathcalls = lpathcalls,
+ lpathcached = lpathcached,
+ }
+end
+
-- xml.set_text_cleanup(xml.show_text_entities)
-- xml.set_text_cleanup(xml.resolve_text_entities)
@@ -2288,7 +2414,7 @@ end end
--~ </a>
--~ ]])
---~ xml.trace_lpath = true
+--~ xml.settrace("lpath",true)
--~ xml.xshow(xml.first(x,"b[position() > 2 and position() < 5 and text() == 'ok']"))
--~ xml.xshow(xml.first(x,"b[position() > 2 and position() < 5 and text() == upper('ok')]"))
diff --git a/Master/texmf-dist/tex/context/base/lang-all.xml b/Master/texmf-dist/tex/context/base/lang-all.xml
index bb4790b4910..503cb0ae5db 100644
--- a/Master/texmf-dist/tex/context/base/lang-all.xml
+++ b/Master/texmf-dist/tex/context/base/lang-all.xml
@@ -183,7 +183,7 @@
</description>
<description language='is'>
- <sourcefile>dehyphn.tex</sourcefile>
+ <sourcefile>ishyph.tex</sourcefile>
<title>Plain TeX hyphenation patterns for the Icelandic language</title>
<remarks>[NOT TO BE CHANGED IN ANY WAY!]</remarks>
<copyright>
diff --git a/Master/texmf-dist/tex/context/base/lang-alt.tex b/Master/texmf-dist/tex/context/base/lang-alt.tex
index d59df78bd5d..e45748eadab 100644
--- a/Master/texmf-dist/tex/context/base/lang-alt.tex
+++ b/Master/texmf-dist/tex/context/base/lang-alt.tex
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Altaic Languages}
+\writestatus{loading}{ConTeXt Language Macros / Altaic Languages}
%D The framework of this module is set up by Hans Hagen while
%D many of the first translations were done by Tobias. Later
@@ -37,8 +37,7 @@
\c!rightquote=\upperrightsingleninequote,
\c!leftquotation=\upperleftdoublesixquote,
\c!rightquotation=\upperrightdoubleninequote,
- \c!date={\v!year,\ ,\v!month,\ ,\v!day},
- \c!state=\v!stop]
+ \c!date={\v!year,\ ,\v!month,\ ,\v!day}]
\installlanguage [turkish] [\s!tr]
diff --git a/Master/texmf-dist/tex/context/base/lang-ana.tex b/Master/texmf-dist/tex/context/base/lang-ana.tex
index 336be50f275..c108655c474 100644
--- a/Master/texmf-dist/tex/context/base/lang-ana.tex
+++ b/Master/texmf-dist/tex/context/base/lang-ana.tex
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Anatolian Languages}
+\writestatus{loading}{ConTeXt Language Macros / Anatolian Languages}
%D The framework of this module is set up by Hans Hagen while
%D many of the first translations were done by Tobias. Later
@@ -21,6 +21,4 @@
\unprotect
-\protect
-
-\endinput
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/lang-ara.mkiv b/Master/texmf-dist/tex/context/base/lang-ara.mkiv
new file mode 100644
index 00000000000..3c4d3c52284
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/lang-ara.mkiv
@@ -0,0 +1,150 @@
+%D \module
+%D [ file=lang-ara,
+%D version=2008.06.20,
+%D title=\CONTEXT\ Language Macros,
+%D subtitle=Arabic Languages,
+%D author=Khaled Hosny,
+%D date=\currentdate,
+%D copyright=PRAGMA-ADE]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Language Macros / Arabic Languages}
+
+\unprotect
+
+\definesystemconstant {arabic}
+\definesystemvariable {ar}
+
+\installlanguage
+ [\s!ar]
+ [\c!spacing=\v!broad,
+ \c!leftsentence=---,
+ \c!rightsentence=---,
+ \c!leftsubsentence=---,
+ \c!rightsubsentence=---,
+ \c!leftquote=\upperleftsinglesixquote,
+ \c!rightquote=\upperrightsingleninequote,
+ \c!leftquotation=\upperleftdoublesixquote,
+ \c!rightquotation=\upperrightdoubleninequote,
+ \c!date={\v!day,\ ,\v!month,{،\ },\v!year}]
+
+\installlanguage [\s!arabic] [\s!ar]
+
+% Just aliases to "ar" for now
+
+\installlanguage[\s!ar-ae][\c!default=\s!ar] % U.A.E.
+\installlanguage[\s!ar-bh][\c!default=\s!ar] % Bahrain
+\installlanguage[\s!ar-eg][\c!default=\s!ar] % Egypt
+\installlanguage[\s!ar-in][\c!default=\s!ar] % India?
+\installlanguage[\s!ar-kw][\c!default=\s!ar] % Kuwait
+\installlanguage[\s!ar-ly][\c!default=\s!ar] % Libya
+\installlanguage[\s!ar-om][\c!default=\s!ar] % Oman
+\installlanguage[\s!ar-qa][\c!default=\s!ar] % Qatar
+\installlanguage[\s!ar-sa][\c!default=\s!ar] % Saudi Arabia
+\installlanguage[\s!ar-sd][\c!default=\s!ar] % Sudan
+\installlanguage[\s!ar-tn][\c!default=\s!ar] % Tunisia
+\installlanguage[\s!ar-ye][\c!default=\s!ar] % Yemen
+
+% Syriac months
+
+\installlanguage[\s!ar-sy][\c!default=\s!ar] % Syria
+\installlanguage[\s!ar-iq][\c!default=\s!ar-sy] % Iraq
+\installlanguage[\s!ar-jo][\c!default=\s!ar-sy] % Jordan
+\installlanguage[\s!ar-lb][\c!default=\s!ar-sy] % Lebanon
+
+% Maghribi months
+
+\installlanguage[\s!ar-dz][\c!default=\s!ar] % Algeria
+\installlanguage[\s!ar-ma][\c!default=\s!ar] % Morocco
+
+\setupheadtext [\s!ar] [\v!content=المحتويات]
+\setupheadtext [\s!ar] [\v!tables=الجداول]
+\setupheadtext [\s!ar] [\v!figures=الأشكال]
+\setupheadtext [\s!ar] [\v!graphics=الرسوم]
+\setupheadtext [\s!ar] [\v!intermezzi=فسح]
+\setupheadtext [\s!ar] [\v!index=الفهرس]
+\setupheadtext [\s!ar] [\v!abbreviations=الاختصارات]
+\setupheadtext [\s!ar] [\v!logos=الشعارات]
+\setupheadtext [\s!ar] [\v!units=الوحدات]
+\setuplabeltext [\s!ar] [\v!table=جدول ]
+\setuplabeltext [\s!ar] [\v!figure=شكل ]
+\setuplabeltext [\s!ar] [\v!intermezzo=فسحة ]
+\setuplabeltext [\s!ar] [\v!graphic=رسم ]
+
+%D We don't set these here. One can do that in a style.
+
+\setuplabeltext [\s!ar] [\v!chapter=] % باب
+\setuplabeltext [\s!ar] [\v!section=] % فصل or قسم
+\setuplabeltext [\s!ar] [\v!subsection=] % فصل أدنى
+\setuplabeltext [\s!ar] [\v!subsubsection=] % فصل أ دنى أدنى
+\setuplabeltext [\s!ar] [\v!subsubsubsection=] % فصل أدنى أدنى أدنى
+\setuplabeltext [\s!ar] [\v!appendix=] % ملحق
+\setuplabeltext [\s!ar] [\v!part=جزء ]
+\setuplabeltext [\s!ar] [\v!line=سطر ]
+\setuplabeltext [\s!ar] [\v!lines=السطور ]
+
+\setuplabeltext [\s!ar] [\v!january=يناير]
+\setuplabeltext [\s!ar] [\v!february=فبراير]
+\setuplabeltext [\s!ar] [\v!march=مارس]
+\setuplabeltext [\s!ar] [\v!april=أبريل]
+\setuplabeltext [\s!ar] [\v!may=مايو]
+\setuplabeltext [\s!ar] [\v!june=يونيو]
+\setuplabeltext [\s!ar] [\v!july=يوليو]
+\setuplabeltext [\s!ar] [\v!august=أغسطس]
+\setuplabeltext [\s!ar] [\v!september=سبتمبر]
+\setuplabeltext [\s!ar] [\v!october=أكتوبر]
+\setuplabeltext [\s!ar] [\v!november=نوفمبر]
+\setuplabeltext [\s!ar] [\v!december=ديسمبر]
+
+\setuplabeltext [\s!ar-sy] [\v!january=كانون الثاني]
+\setuplabeltext [\s!ar-sy] [\v!february=شباط]
+\setuplabeltext [\s!ar-sy] [\v!march=آذار]
+\setuplabeltext [\s!ar-sy] [\v!april=نيسان]
+\setuplabeltext [\s!ar-sy] [\v!may=أيار]
+\setuplabeltext [\s!ar-sy] [\v!june=حزيران]
+\setuplabeltext [\s!ar-sy] [\v!july=تموز]
+\setuplabeltext [\s!ar-sy] [\v!august=آب]
+\setuplabeltext [\s!ar-sy] [\v!september=أيلول]
+\setuplabeltext [\s!ar-sy] [\v!october=تشرين الأول]
+\setuplabeltext [\s!ar-sy] [\v!november=تشرين الثاني]
+\setuplabeltext [\s!ar-sy] [\v!december=كانون الأول]
+
+\setuplabeltext [\s!ar-ma] [\v!may=ماي]
+\setuplabeltext [\s!ar-ma] [\v!july=يوليوز]
+\setuplabeltext [\s!ar-ma] [\v!august=غشت]
+\setuplabeltext [\s!ar-ma] [\v!september=شتنبر]
+\setuplabeltext [\s!ar-ma] [\v!november=نونبر]
+\setuplabeltext [\s!ar-ma] [\v!december=دجنبر]
+
+\setuplabeltext [\s!ar-dz] [\v!january=جانفي]
+\setuplabeltext [\s!ar-dz] [\v!february=فيفري]
+\setuplabeltext [\s!ar-dz] [\v!april=أفريل]
+\setuplabeltext [\s!ar-dz] [\v!may=ماي]
+\setuplabeltext [\s!ar-dz] [\v!june=جوان]
+\setuplabeltext [\s!ar-dz] [\v!july=جويلة]
+\setuplabeltext [\s!ar-dz] [\v!august=أوت]
+
+\setuplabeltext [\s!ar] [\v!sunday=الأحد]
+\setuplabeltext [\s!ar] [\v!monday=الاثنين]
+\setuplabeltext [\s!ar] [\v!tuesday=الثلاثاء]
+\setuplabeltext [\s!ar] [\v!wednesday=الأربعاء]
+\setuplabeltext [\s!ar] [\v!thursday=الخميس]
+\setuplabeltext [\s!ar] [\v!friday=الجمعة]
+\setuplabeltext [\s!ar] [\v!saturday=السبت]
+
+%D Rather new ...
+
+\setuplabeltext [\s!ar] [\v!page=صفحة ]
+\setuplabeltext [\s!ar] [\v!atpage=في صفحة ]
+\setuplabeltext [\s!ar] [\v!hencefore=كما وضحنا سابقا]
+\setuplabeltext [\s!ar] [\v!hereafter=كما نوضح لاحقا]
+\setuplabeltext [\s!ar] [\v!see=انظر ]
+
+%D ... and to be completed!
+
+%D \ShowAllLanguageValues [\s!ar] [arabic] {Arabic} {horn} % engelse humor
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/lang-art.tex b/Master/texmf-dist/tex/context/base/lang-art.tex
index 3f857e11e29..e8be91630a6 100644
--- a/Master/texmf-dist/tex/context/base/lang-art.tex
+++ b/Master/texmf-dist/tex/context/base/lang-art.tex
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Artificial Languages}
+\writestatus{loading}{ConTeXt Language Macros / Artificial Languages}
%D The framework of this module is set up by Hans Hagen while
%D many of the first translations were done by Tobias. Later
@@ -23,6 +23,4 @@
\unprotect
-\protect
-
-\endinput
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/lang-bal.tex b/Master/texmf-dist/tex/context/base/lang-bal.tex
index c4e0f31f7d5..9b0528a27bb 100644
--- a/Master/texmf-dist/tex/context/base/lang-bal.tex
+++ b/Master/texmf-dist/tex/context/base/lang-bal.tex
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Baltic Languages}
+\writestatus{loading}{ConTeXt Language Macros / Baltic Languages}
%D The framework of this module is set up by Hans Hagen while
%D many of the first translations were done by Tobias. Later
@@ -23,6 +23,4 @@
\unprotect
-\protect
-
-\endinput
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/lang-cel.tex b/Master/texmf-dist/tex/context/base/lang-cel.tex
index abbeb10c6b1..4d93957f102 100644
--- a/Master/texmf-dist/tex/context/base/lang-cel.tex
+++ b/Master/texmf-dist/tex/context/base/lang-cel.tex
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Celtic Languages}
+\writestatus{loading}{ConTeXt Language Macros / Celtic Languages}
%D The framework of this module is set up by Hans Hagen while
%D many of the first translations were done by Tobias. Later
@@ -23,6 +23,4 @@
\unprotect
-\protect
-
-\endinput
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/lang-chi.tex b/Master/texmf-dist/tex/context/base/lang-chi.mkii
index 7458268f7e8..278e107456a 100644
--- a/Master/texmf-dist/tex/context/base/lang-chi.tex
+++ b/Master/texmf-dist/tex/context/base/lang-chi.mkii
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Language Macros / Chinese}
+\writestatus{loading}{ConTeXt Language Macros / Chinese}
%D This module is coded using the \UNICODE\ support built in
%D \CONTEXT. Therefore, \type {\uchar} is used instead of latin
@@ -31,9 +31,7 @@
\c!rightquote=\cnencoding\cnupperrightsinglequote,
\c!leftquotation=\cnencoding\cnupperleftdoublequote,
\c!rightquotation=\cnencoding\cnupperrightdoublequote,
- \c!date={\v!year,\cnyear,\ ,\v!month,\v!day,\cnday},
- \c!state=\v!stop]
-
+ \c!date={\v!year,\cnyear,\ ,\v!month,\v!day,\cnday}]
\setupheadtext [\s!cn] [\v!content={\cnencoding\cnencodedcontents}]
\setupheadtext [\s!cn] [\v!tables={\cnencoding\cnencodedtables}]
diff --git a/Master/texmf-dist/tex/context/base/lang-cjk.mkiv b/Master/texmf-dist/tex/context/base/lang-cjk.mkiv
new file mode 100644
index 00000000000..138f6d2632a
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/lang-cjk.mkiv
@@ -0,0 +1,328 @@
+%D \module
+%D [ file=lang-chi,
+%D version=2009.03.02,
+%D title=\CONTEXT\ Language Macros,
+%D subtitle=Chinese,
+%D author={Hans Hagen \& Wang Lei},
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D Derived from \MKII\ files.
+
+\writestatus{loading}{ConTeXt Language Macros / CJK}
+
+\definesystemconstant {chinese} \definesystemconstant {cn}
+\definesystemconstant {japanese} \definesystemconstant {ja}
+\definesystemconstant {korean} \definesystemconstant {kr}
+
+\unprotect
+
+% Chinese
+
+\installlanguage
+ [\s!cn]
+ [\c!leftsentence=——,
+ \c!rightsentence=——,
+ \c!leftsubsentence=——,
+ \c!rightsubsentence=——,
+ \c!leftquote=‘,
+ \c!rightquote=’,
+ \c!leftquotation=“,
+ \c!rightquotation=”,
+ \c!date={\v!year,年,\ ,\v!month,\v!day,日}]
+
+\setupheadtext [\s!cn] [\v!content=目录]
+\setupheadtext [\s!cn] [\v!tables=表格]
+\setupheadtext [\s!cn] [\v!figures=图形]
+\setupheadtext [\s!cn] [\v!graphics=图]
+\setupheadtext [\s!cn] [\v!intermezzi=퉣]
+\setupheadtext [\s!cn] [\v!index=索引]
+\setupheadtext [\s!cn] [\v!abbreviations=缩略语]
+\setupheadtext [\s!cn] [\v!logos=徽贬]
+\setupheadtext [\s!cn] [\v!units=计量单位]
+
+\setuplabeltext [\s!cn] [\v!table=表]
+\setuplabeltext [\s!cn] [\v!figure=图]
+\setuplabeltext [\s!cn] [\v!intermezzo=퉣]
+\setuplabeltext [\s!cn] [\v!graphic=插图]
+\setuplabeltext [\s!cn] [\v!appendix=附录]
+\setuplabeltext [\s!cn] [\v!part={第,部分}]
+\setuplabeltext [\s!cn] [\v!chapter={第,章}]
+\setuplabeltext [\s!cn] [\v!section={第,节}]
+\setuplabeltext [\s!cn] [\v!line=行]
+\setuplabeltext [\s!cn] [\v!lines=行]
+
+\setuplabeltext [\s!cn] [\v!subsection=]
+\setuplabeltext [\s!cn] [\v!subsubsection=]
+\setuplabeltext [\s!cn] [\v!subsubsubsection=]
+
+\setuplabeltext [\s!cn] [\v!january=一月]
+\setuplabeltext [\s!cn] [\v!february=二月]
+\setuplabeltext [\s!cn] [\v!march=三月]
+\setuplabeltext [\s!cn] [\v!april=四月]
+\setuplabeltext [\s!cn] [\v!may=五月]
+\setuplabeltext [\s!cn] [\v!june=六月]
+\setuplabeltext [\s!cn] [\v!july=七月]
+\setuplabeltext [\s!cn] [\v!august=八月]
+\setuplabeltext [\s!cn] [\v!september=九月]
+\setuplabeltext [\s!cn] [\v!october=十月]
+\setuplabeltext [\s!cn] [\v!november=十一月]
+\setuplabeltext [\s!cn] [\v!december=十二月]
+
+\setuplabeltext [\s!cn] [\v!sunday=星期日]
+\setuplabeltext [\s!cn] [\v!monday=星期一]
+\setuplabeltext [\s!cn] [\v!tuesday=星期二]
+\setuplabeltext [\s!cn] [\v!wednesday=星期三]
+\setuplabeltext [\s!cn] [\v!thursday=星期四]
+\setuplabeltext [\s!cn] [\v!friday=星期五]
+\setuplabeltext [\s!cn] [\v!saturday=星期六]
+
+%D Japanese
+
+\installlanguage
+ [\s!ja]
+ [\c!leftsentence=——,
+ \c!rightsentence=——,
+ \c!leftsubsentence=——,
+ \c!rightsubsentence=——,
+ \c!leftquote=‘,
+ \c!rightquote=’,
+ \c!leftquotation=「,
+ \c!rightquotation=」,
+ \c!date={西暦,\v!year,年,\v!month,月,\v!day,日}]
+
+\setupheadtext [\s!ja] [\v!content=目次]
+\setupheadtext [\s!ja] [\v!tables=机]
+\setupheadtext [\s!ja] [\v!figures=図]
+\setupheadtext [\s!ja] [\v!graphics=グラフ]
+\setupheadtext [\s!ja] [\v!intermezzi=間奏曲]
+\setupheadtext [\s!ja] [\v!index=目次]
+\setupheadtext [\s!ja] [\v!abbreviations=略語]
+\setupheadtext [\s!ja] [\v!logos=理性]
+\setupheadtext [\s!ja] [\v!units=ユニッツ]
+
+\setuplabeltext [\s!ja] [\v!table=表]
+\setuplabeltext [\s!ja] [\v!figure=図]
+\setuplabeltext [\s!ja] [\v!intermezzo=間奏曲]
+\setuplabeltext [\s!ja] [\v!graphic=イラスト]
+\setuplabeltext [\s!ja] [\v!appendix=付録]
+\setuplabeltext [\s!ja] [\v!part={第,パート}]
+\setuplabeltext [\s!ja] [\v!chapter={第,章}]
+\setuplabeltext [\s!ja] [\v!section={第,項}]
+\setuplabeltext [\s!ja] [\v!line=線]
+\setuplabeltext [\s!ja] [\v!lines=線]
+
+\setuplabeltext [\s!ja] [\v!subsection=]
+\setuplabeltext [\s!ja] [\v!subsubsection=]
+\setuplabeltext [\s!ja] [\v!subsubsubsection=]
+
+\setuplabeltext [\s!ja] [\v!january=1]
+\setuplabeltext [\s!ja] [\v!february=2]
+\setuplabeltext [\s!ja] [\v!march=3]
+\setuplabeltext [\s!ja] [\v!april=4]
+\setuplabeltext [\s!ja] [\v!may=5]
+\setuplabeltext [\s!ja] [\v!june=6]
+\setuplabeltext [\s!ja] [\v!july=7]
+\setuplabeltext [\s!ja] [\v!august=8]
+\setuplabeltext [\s!ja] [\v!september=9]
+\setuplabeltext [\s!ja] [\v!october=10]
+\setuplabeltext [\s!ja] [\v!november=11]
+\setuplabeltext [\s!ja] [\v!december=12]
+
+\setuplabeltext [\s!ja] [\v!sunday=月曜日]
+\setuplabeltext [\s!ja] [\v!monday=火曜日]
+\setuplabeltext [\s!ja] [\v!tuesday=水曜日]
+\setuplabeltext [\s!ja] [\v!wednesday=木曜日]
+\setuplabeltext [\s!ja] [\v!thursday=金曜日]
+\setuplabeltext [\s!ja] [\v!friday=土曜日]
+\setuplabeltext [\s!ja] [\v!saturday=日曜日]
+
+%D Korean
+
+% todo
+
+\protect \endinput
+
+cn={
+ ["abbreviations"]="缩略语",
+ ["appendix"]="附录",
+ ["april"]="四月",
+ ["august"]="八月",
+ ["chapter"]="章",
+ ["contents"]="目录",
+ ["day"]="日",
+ ["december"]="十二月",
+ ["febrary"]="二月",
+ ["figure"]="图",
+ ["figures"]="图形",
+ ["friday"]="星期五",
+ ["graphics"]="图",
+ ["illustration"]="插图",
+ ["index"]="索引",
+ ["intermezzo"]="퉣",
+ ["intro"]="第",
+ ["january"]="一月",
+ ["july"]="七月",
+ ["june"]="六月",
+ ["leftsentence"]="——",
+ ["leftsubsentence"]="——",
+ ["line"]="行",
+ ["logos"]="徽贬",
+ ["march"]="三月",
+ ["may"]="五月",
+ ["monday"]="星期一",
+ ["month"]="月",
+ ["november"]="十一月",
+ ["october"]="十月",
+ ["part"]="部分",
+ ["rightsentence"]="——",
+ ["rightsubsentence"]="——",
+ ["saturday"]="星期六",
+ ["section"]="节",
+ ["september"]="九月",
+ ["sunday"]="星期日",
+ ["table"]="表",
+ ["tables"]="表格",
+ ["thursday"]="星期四",
+ ["tuesday"]="星期二",
+ ["units"]="计量单位",
+ ["upperleftdoublequote"]="“",
+ ["upperleftdoublequote-v"]="『",
+ ["upperleftsinglequote"]="‘",
+ ["upperleftsinglequote-v"]="「",
+ ["upperrightdoublequote"]="”",
+ ["upperrightdoublequote-v"]="』",
+ ["upperrightsinglequote"]="’",
+ ["upperrightsinglequote-v"]="」",
+ ["wednesday"]="星期三",
+ ["year"]="年",
+}
+
+ja={
+ ["abbreviations"]="略語",
+ ["abstract"]="概要",
+ ["and"]="、",
+ ["answer"]="答:",
+ ["appendix"]="付録",
+ ["april"]="四月",
+ ["article"]="項目",
+ ["august"]="八月",
+ ["bibliography"]="参考文献",
+ ["book"]="ブック",
+ ["bridgehead"]="項",
+ ["bullet"]="●",
+ ["by"]=":",
+ ["caution"]="注意",
+ ["chapter"]="章",
+ ["christiandate"]="西暦",
+ ["colophon"]="奥付",
+ ["copyright"]="製作著作",
+ ["day"]="日",
+ ["december"]="十二月",
+ ["dedication"]="謝辞",
+ ["edited"]="編者",
+ ["editedby"]="編者:",
+ ["edition"]="編集",
+ ["endquote"]="」",
+ ["equation"]="式",
+ ["example"]="例",
+ ["february"]="二月",
+ ["figure"]="図",
+ ["figures"]="図",
+ ["friday"]="土曜日",
+ ["glossary"]="用語集",
+ ["glosssee"]="参照",
+ ["glossseealso"]="参照",
+ ["graphics"]="グラフ",
+ ["illustration"]="イラスト",
+ ["important"]="重要項目",
+ ["index"]="目次",
+ ["indexsymbols"]="シンボル",
+ ["intermezzo"]="間奏曲",
+ ["intermezzos"]="間奏曲",
+ ["intro"]="第",
+ ["january"]="一月",
+ ["july"]="七月",
+ ["june"]="六月",
+ ["leftsentence"]="——",
+ ["leftsubsentence"]="——",
+ ["line"]="線",
+ ["lines"]="線",
+ ["listofequations"]="式目次",
+ ["listofexamples"]="例目次",
+ ["listoffigures"]="図目次",
+ ["listoftables"]="表目次",
+ ["listofunknown"]="不明目次",
+ ["logos"]="理性",
+ ["march"]="三月",
+ ["may"]="五月",
+ ["monday"]="火曜日",
+ ["month"]="月",
+ ["msgaud"]="対象者",
+ ["msglevel"]="レベル",
+ ["msgorig"]="発信元",
+ ["navhome"]="ホーム",
+ ["navnext"]="次のページ",
+ ["navnextsibling"]="早送り",
+ ["navprev"]="前のページ",
+ ["navprevsibling"]="巻戻し",
+ ["navup"]="上に戻る",
+ ["nestedendquote"]="』",
+ ["nestedstartquote"]="『",
+ ["nonexistantelement"]="要素が存在しません",
+ ["note"]="注意",
+ ["notes"]="注意",
+ ["november"]="十一月",
+ ["october"]="十月",
+ ["pages"]="偧献",
+ ["part"]="パート",
+ ["preface"]="序文",
+ ["procedure"]="手順",
+ ["procedureformal"]="手順",
+ ["productionset"]="プロダクション",
+ ["productionsetformal"]="プロダクション",
+ ["published"]="発行",
+ ["qandadiv"]="問:、答:",
+ ["qandaentry"]="問:",
+ ["question"]="問:",
+ ["reference"]="参照",
+ ["refname"]="名前",
+ ["refsection"]="項",
+ ["refsynopsisdiv"]="概要",
+ ["revhistory"]="改訂履歴",
+ ["revision"]="改訂",
+ ["rightsentence"]="——",
+ ["rightsubsentence"]="——",
+ ["saturday"]="日曜日",
+ ["section"]="項",
+ ["see"]="参照",
+ ["seealso"]="参照",
+ ["separator"]="、",
+ ["september"]="九月",
+ ["set"]="設定",
+ ["setindex"]="目次設定",
+ ["sidebar"]="サイドバー",
+ ["simplesect"]="項",
+ ["singleendquote"]="’",
+ ["singlestartquote"]="‘",
+ ["startquote"]="「",
+ ["step"]="ステップ",
+ ["sunday"]="月曜日",
+ ["table"]="表",
+ ["tablenotes"]="注意",
+ ["tableofcontents"]="目次",
+ ["tables"]="机",
+ ["thursday"]="金曜日",
+ ["tip"]="ティップ",
+ ["tuesday"]="水曜日",
+ ["unexpectedelementname"]="不明な要素名",
+ ["units"]="ユニッツ",
+ ["unsupported"]="サポートしません",
+ ["warning"]="警告",
+ ["wednesday"]="木曜日",
+ ["year"]="年",
+}
diff --git a/Master/texmf-dist/tex/context/base/lang-ctx.mkii b/Master/texmf-dist/tex/context/base/lang-ctx.mkii
new file mode 100644
index 00000000000..09f28dda1e3
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/lang-ctx.mkii
@@ -0,0 +1,53 @@
+%D \module
+%D [ file=lang-ctx,
+%D version=2005.02.12,
+%D title=\CONTEXT\ Language Macros,
+%D subtitle=Generic Patterns,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Language Macros / Generic Patterns}
+
+\unprotect
+
+%D The \CONTEXT\ specific patterns are more generic and
+%D are more or less encoding independent. They are generated
+%D from the ones shipped with distributions using:
+%D
+%D \starttyping
+%D ctxtools --pattern --all
+%D \stoptyping
+
+%D In order to get 8 bit characters hyphenated, we need to load
+%D patterns under the right circumstances. In some countries, more
+%D than one font encoding is in use. I can add more defaults here
+%D if users let me know what encoding they use.
+
+% \installlanguage [\s!nl] [\s!mapping={texnansi,ec},\s!encoding={texnansi,ec}]
+% \installlanguage [\s!fr] [\s!mapping={texnansi,ec},\s!encoding={texnansi,ec}]
+% \installlanguage [\s!de] [\s!mapping={texnansi,ec},\s!encoding={texnansi,ec}]
+% \installlanguage [\s!it] [\s!mapping={texnansi,ec},\s!encoding={texnansi,ec}]
+% \installlanguage [\s!pt] [\s!mapping={texnansi,ec},\s!encoding={texnansi,ec}]
+% \installlanguage [\s!hr] [\s!mapping=ec,\s!encoding=ec] % no il2, misses cacute characters
+% \installlanguage [\s!pl] [\s!mapping={pl0,ec,qx},\s!encoding={pl0,ec,qx}] % pl0 may go
+% \installlanguage [\s!cs] [\s!mapping={il2,ec},\s!encoding={il2,ec}] % il2 may go
+% \installlanguage [\s!sk] [\s!mapping={il2,ec},\s!encoding={il2,ec}] % il2 may go
+% \installlanguage [\s!sl] [\s!mapping=ec,\s!encoding=ec] % il2 has gone
+% \installlanguage [\s!vi] [\s!mapping=t5,\s!encoding=t5]
+% \installlanguage [\s!ru] [\s!mapping=t2a,\s!encoding=t2a]
+
+% beware, don't use \setuplanguage here
+
+% \installlanguage[\s!gb][\s!lefthyphenmin=3,\s!righthyphenmin=3] % patterns can only handle this
+% \installlanguage[\s!us][\s!lefthyphenmin=2,\s!righthyphenmin=3] % patterns can only handle this
+
+% greek
+
+% \installlanguage[\s!agr][\s!mapping=\s!agr,\s!encoding=\s!agr]
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/lang-ctx.tex b/Master/texmf-dist/tex/context/base/lang-ctx.tex
deleted file mode 100644
index 2f3c2dfd7ef..00000000000
--- a/Master/texmf-dist/tex/context/base/lang-ctx.tex
+++ /dev/null
@@ -1,59 +0,0 @@
-%D \module
-%D [ file=lang-ctx,
-%D version=2005.02.12,
-%D title=\CONTEXT\ Language Macros,
-%D subtitle=Generic Patterns,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{Context Language Macros / Generic Patterns}
-
-\unprotect
-
-%D The \CONTEXT\ specific patterns are more generic and
-%D are more or less encoding independent. They are generated
-%D from the ones shipped with distributions using:
-%D
-%D \starttyping
-%D ctxtools --pattern --all
-%D \stoptyping
-
-%D In order to get 8 bit characters hyphenated, we need to load
-%D patterns under the right circumstances. In some countries, more
-%D than one font encoding is in use. I can add more defaults here
-%D if users let me know what encoding they use.
-
-\installlanguage [\s!nl] [\s!mapping={texnansi,ec},\s!encoding={texnansi,ec}]
-\installlanguage [\s!fr] [\s!mapping={texnansi,ec},\s!encoding={texnansi,ec}]
-\installlanguage [\s!de] [\s!mapping={texnansi,ec},\s!encoding={texnansi,ec}]
-\installlanguage [\s!it] [\s!mapping={texnansi,ec},\s!encoding={texnansi,ec}]
-
-\installlanguage [\s!pt] [\s!mapping={texnansi,ec},\s!encoding={texnansi,ec}]
-
-\installlanguage [\s!hr] [\s!mapping=ec,\s!encoding=ec] % no il2, misses cacute characters
-
-\installlanguage [\s!pl] [\s!mapping={pl0,ec,qx},\s!encoding={pl0,ec,qx}] % pl0 may go
-\installlanguage [\s!cz] [\s!mapping={il2,ec},\s!encoding={il2,ec}] % il2 may go
-\installlanguage [\s!sk] [\s!mapping={il2,ec},\s!encoding={il2,ec}] % il2 may go
-\installlanguage [\s!sl] [\s!mapping=ec,\s!encoding=ec] % il2 has gone
-
-\installlanguage [\s!vn] [\s!mapping=t5,\s!encoding=t5]
-
-\installlanguage [\s!ru] [\s!mapping=t2a,\s!encoding=t2a]
-
-% beware, don't use \setuplanguage here
-
-\installlanguage[\s!en][\s!lefthyphenmin=2,\s!righthyphenmin=3] % patterns can only handle this
-\installlanguage[\s!uk][\s!lefthyphenmin=3,\s!righthyphenmin=3] % patterns can only handle this
-\installlanguage[\s!us][\s!lefthyphenmin=2,\s!righthyphenmin=3] % patterns can only handle this
-
-% greek
-
-\installlanguage[\s!agr][\s!mapping=\s!agr,\s!encoding=\s!agr]
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/lang-cyr.tex b/Master/texmf-dist/tex/context/base/lang-cyr.tex
index 34b5e78c391..470402bb10e 100644
--- a/Master/texmf-dist/tex/context/base/lang-cyr.tex
+++ b/Master/texmf-dist/tex/context/base/lang-cyr.tex
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Cyrillic Languages}
+\writestatus{loading}{ConTeXt Language Macros / Cyrillic Languages}
%D The cyrillic languages always use a dedicated input regime.
%D Therefore we define the labels using symbolic names.
@@ -37,7 +37,8 @@
\c!leftquotation=\leftguillemot,
\c!rightquotation=\rightguillemot,
\c!date={\v!day,\ ,\v!month,\ ,\v!year},
- \c!state=\v!stop]
+ \s!mapping=t2a,
+ \s!encoding=t2a]
\installlanguage
[\s!ua]
@@ -53,11 +54,12 @@
\c!leftquotation=\leftguillemot,
\c!rightquotation=\rightguillemot,
\c!date={\v!day,\ ,\v!month,\ ,\v!year},
- \c!state=\v!stop]
-
-\installlanguage [russian] [\s!ru]
-\installlanguage [ukrainian] [\s!ua]
+ \s!patterns=\s!uk,
+ \s!mapping=t2a,
+ \s!encoding=t2a]
+\installlanguage [russian] [\s!ru]
+\installlanguage [ukrainian] [\s!ua]
%D Labels and header texts.
diff --git a/Master/texmf-dist/tex/context/base/lang-dis.tex b/Master/texmf-dist/tex/context/base/lang-dis.mkii
index db932d68ad4..f081bf4a9b2 100644
--- a/Master/texmf-dist/tex/context/base/lang-dis.tex
+++ b/Master/texmf-dist/tex/context/base/lang-dis.mkii
@@ -15,7 +15,7 @@
%D use more generic pattern files, we decided to isolate these
%D mappings.
-\writestatus{loading}{Context Language Macros / Distribution Patterns}
+\writestatus{loading}{ConTeXt Language Macros / Distribution Patterns}
%D Hyphenation patterns are normally sought in filed named
%D \type {lang-xx.pat}. When present on the system, those
@@ -52,8 +52,8 @@
% \definefilefallback [lang-sk.pat] [skhyphen.tex,skhyph.pat]
% \definefilefallback [lang-deo.pat] [dehypht.tex]
-\definefilesynonym [lang-af.pat] [lang-nl.pat]
-\definefilesynonym [lang-en.pat] [lang-us.pat]
-\definefilesynonym [lang-en.hyp] [lang-us.hyp]
+% \definefilesynonym [lang-af.pat] [lang-nl.pat]
+% \definefilesynonym [lang-en.pat] [lang-us.pat]
+% \definefilesynonym [lang-en.hyp] [lang-us.hyp]
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/lang-frq.tex b/Master/texmf-dist/tex/context/base/lang-frq.tex
index 7c70b7454f1..773230e6c86 100644
--- a/Master/texmf-dist/tex/context/base/lang-frq.tex
+++ b/Master/texmf-dist/tex/context/base/lang-frq.tex
@@ -2,7 +2,7 @@
%D [ file=lang-frq,
%D version=2004.01.15,
%D title=\CONTEXT\ Language Macros,
-%D subtitle=Language Frequency Table Support,
+%D subtitle=Frequency Tables,
%D author=Hans Hagen,
%D date=\currentdate,
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Language Frequency Table Support}
+\writestatus{loading}{ConTeXt Language Macros / Frequency Tables}
\unprotect
@@ -121,17 +121,7 @@
%D This macro reports the average width for the current main
%D language (\the \dimexpr (\averagecharwidth)).
-\beginTEX
-
- \def\averagecharwidth{\the\emwidth}
-
-\endTEX
-
-\beginETEX \dimexpr
-
- \def\averagecharwidth{\dimexpr((\zeropoint\charactertable\charwidthlanguage)/100)}
-
-\endETEX
+\def\averagecharwidth{\dimexpr((\zeropoint\charactertable\charwidthlanguage)/100)}
\def\showcharfreq
{\hbox\bgroup
diff --git a/Master/texmf-dist/tex/context/base/lang-ger.tex b/Master/texmf-dist/tex/context/base/lang-ger.tex
index 0b363abd273..b9717ce9af6 100644
--- a/Master/texmf-dist/tex/context/base/lang-ger.tex
+++ b/Master/texmf-dist/tex/context/base/lang-ger.tex
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Germanic Languages}
+\writestatus{loading}{ConTeXt Language Macros / Germanic Languages}
%D The framework of this module is set up by Hans Hagen while
%D many of the first translations were done by Tobias. Later
@@ -42,7 +42,8 @@
\c!leftquotation=\lowerleftdoubleninequote,
\c!rightquotation=\upperrightdoubleninequote,
\c!date={\v!day,\ ,\v!month,\ ,\v!year},
- \c!state=\v!stop]
+ \s!mapping={texnansi,ec},
+ \s!encoding={texnansi,ec}]
\installlanguage
[\s!en]
@@ -56,11 +57,15 @@
\c!leftquotation=\upperleftdoublesixquote,
\c!rightquotation=\upperrightdoubleninequote,
\c!date={\v!month,\ ,\v!day,{,\ },\v!year},
- \c!state=\v!stop] % elders always preloaded!
+ \s!patterns=\s!us,
+ \s!lefthyphenmin=2,
+ \s!righthyphenmin=3]
\installlanguage
[\s!de]
[\c!spacing=\v!packed,
+ \s!lefthyphenmin=3,
+ \s!righthyphenmin=3,
\c!leftsentence={\hbox{--~}},
\c!rightsentence={\hbox{~--}},
\c!leftsubsentence={--},
@@ -70,7 +75,8 @@
\c!leftquotation=\lowerleftdoubleninequote,
\c!rightquotation=\upperrightdoublesixquote,
\c!date={\v!day,{.},\ ,\v!month,\ ,\v!year},
- \c!state=\v!stop]
+ \s!mapping={texnansi,ec},
+ \s!encoding={texnansi,ec}]
\installlanguage
[\s!da]
@@ -83,8 +89,7 @@
\c!rightquote=\upperrightsinglesixquote,
\c!leftquotation=\lowerleftdoubleninequote,
\c!rightquotation=\upperrightdoublesixquote,
- \c!date={\v!day,{.},\ ,\v!month,\ ,\v!year},
- \c!state=\v!stop]
+ \c!date={\v!day,{.},\ ,\v!month,\ ,\v!year}]
\installlanguage
[\s!sv]
@@ -97,8 +102,7 @@
\c!rightquote=\upperrightsingleninequote,
\c!leftquotation=\upperrightdoubleninequote,
\c!rightquotation=\upperrightdoubleninequote,
- \c!date={\v!day,\ ,\v!month,\ ,\v!year},
- \c!state=\v!stop]
+ \c!date={\v!day,\ ,\v!month,\ ,\v!year}]
\installlanguage
[\s!af]
@@ -112,31 +116,53 @@
\c!leftquotation=\upperleftdoublesixquote,
\c!rightquotation=\upperrightdoubleninequote,
\c!date={\v!year,\ ,\v!month,\ ,\v!day},
- \c!state=\v!stop]
+ \s!patterns=\s!nl]
\installlanguage
- [\s!no]
- [\c!spacing=\v!packed,
- \c!leftsentence=---,
- \c!rightsentence=---,
- \c!leftsubsentence=---,
- \c!rightsubsentence=---,
- \c!leftquote=\upperleftsinglesixquote,
- \c!rightquote=\upperrightsingleninequote,
- \c!leftquotation=\upperleftdoublesixquote,
- \c!rightquotation=\upperrightdoubleninequote,
- \c!date={\v!day,{.},\ ,\v!month,\ ,\v!year},
- \c!default=\s!no,
- \c!state=\v!stop]
+ [\s!nb]
+ [spacing=packed,
+ lefthyphenmin=2,
+ righthyphenmin=2,
+ leftsentence=---,
+ rightsentence=---,
+ leftsubsentence=---,
+ rightsubsentence=---,
+ leftquote=\upperleftsinglesixquote,
+ rightquote=\upperrightsingleninequote,
+ leftquotation=\leftguillemot,
+ rightquotation=\rightguillemot,
+ date={day,{.},\ ,month,\ ,year},
+ state=stop]
+
+\installlanguage
+ [\s!nn]
+ [spacing=packed,
+ lefthyphenmin=2,
+ righthyphenmin=2,
+ leftsentence=---,
+ rightsentence=---,
+ leftsubsentence=---,
+ rightsubsentence=---,
+ leftquote=\upperleftsinglesixquote,
+ rightquote=\upperrightsingleninequote,
+ leftquotation=\leftguillemot,
+ rightquotation=\rightguillemot,
+ date={day,{.},\ ,month,\ ,year},
+ state=stop]
+
+\installlanguage [\s!no] [\s!nb]
+\installlanguage [\s!norwegian] [\s!nb]
+\installlanguage [\s!bokmal] [\s!nb]
+\installlanguage [\s!nynorsk] [\s!nn]
%D Extra:
% \mainlanguage[en]
% \mainlanguage[de]
% \mainlanguage[deo]
-% \mainlanguage[de-DE]
-% \mainlanguage[de-AT]
-% \mainlanguage[de-CH]
+% \mainlanguage[de-de]
+% \mainlanguage[de-at]
+% \mainlanguage[de-ch]
%
% \starttext
% Die Herren Meier\index{Meier}, Müller\index{Müller}, Huber\index{Huber}
@@ -157,58 +183,56 @@
\installlanguage % old german
[deo]
[\c!spacing=\v!packed,
- \c!default=\s!de,
- \c!state=\v!stop]
+ \c!default=\s!de]
\installlanguage
- [de-DE]
+ [de-de]
[\c!spacing=\v!packed,
- \c!default=\s!de,
- \c!state=\v!stop]
+ \c!default=\s!de]
\installlanguage
- [de-AT]
+ [de-at]
[\c!spacing=\v!packed,
\c!default=\s!de,
\c!leftquote=\leftguillemot,
\c!rightquote=\rightguillemot,
\c!leftquotation=\leftguillemot,
- \c!rightquotation=\rightguillemot,
- \c!state=\v!stop]
+ \c!rightquotation=\rightguillemot]
\installlanguage
- [de-CH]
+ [de-ch]
[\c!spacing=\v!packed,
- \c!default=\s!de,
- \c!state=\v!stop]
+ \c!default=\s!de]
%D And some alternative (but very real) english patterns:
\installlanguage
- [uk]
+ [en-gb]
[\c!default=\s!en,
- \c!state=\v!stop]
+ \s!patterns=\s!gb,
+ \s!lefthyphenmin=3,
+ \s!righthyphenmin=3]
\installlanguage
- [us]
- [\c!default=\s!en,
- \c!state=\v!stop]
+ [en-us]
+ [\c!default=\s!en]
+
+\installlanguage [\s!uk] [en-gb]
+\installlanguage [\s!us] [en-us]
%D For compatibility reasons we also define:
-\installlanguage [du] [\s!de] % old times context
+%installlanguage [du] [\s!de] % old times context
%installlanguage [sp] [\s!es] % old times context /lang-ita
-\installlanguage [usenglish] [\s!us]
-\installlanguage [ukenglish] [\s!uk]
-\installlanguage [english] [\s!en]
+\installlanguage [usenglish] [en-us]
+\installlanguage [ukenglish] [en-gb]
+\installlanguage [english] [en-us]
\installlanguage [dutch] [\s!nl]
\installlanguage [german] [\s!de]
\installlanguage [danish] [\s!da]
\installlanguage [swedish] [\s!sv]
\installlanguage [afrikaans] [\s!af]
-\installlanguage [norwegian] [\s!no]
-\installlanguage [norsk] [\s!no] % bonus switch
\setupheadtext [\s!en] [\v!content=Contents]
\setupheadtext [\s!nl] [\v!content=Inhoud]
@@ -216,7 +240,8 @@
\setupheadtext [\s!da] [\v!content=Indhold]
\setupheadtext [\s!sv] [\v!content=Inneh\aring ll]
\setupheadtext [\s!af] [\v!content=Inhoud]
-\setupheadtext [\s!no] [\v!content=Innhold]
+\setupheadtext [\s!nb] [\v!content=Innhold]
+\setupheadtext [\s!nn] [\v!content=Innhald]
\setupheadtext [\s!en] [\v!tables=Tables]
\setupheadtext [\s!nl] [\v!tables=Tabellen]
@@ -224,7 +249,8 @@
\setupheadtext [\s!da] [\v!tables=Tabeller]
\setupheadtext [\s!sv] [\v!tables=Tabeller]
\setupheadtext [\s!af] [\v!tables=Tabelle]
-\setupheadtext [\s!no] [\v!tables=Tabeller]
+\setupheadtext [\s!nb] [\v!tables=Tabeller]
+\setupheadtext [\s!nn] [\v!tables=Tabellar]
\setupheadtext [\s!en] [\v!figures=Figures]
\setupheadtext [\s!nl] [\v!figures=Figuren]
@@ -232,7 +258,8 @@
\setupheadtext [\s!da] [\v!figures=Figurer]
\setupheadtext [\s!sv] [\v!figures=Figurer]
\setupheadtext [\s!af] [\v!figures=Figure]
-\setupheadtext [\s!no] [\v!figures=Figurer]
+\setupheadtext [\s!nb] [\v!figures=Figurer]
+\setupheadtext [\s!nn] [\v!figures=Figurar]
\setupheadtext [\s!en] [\v!graphics=Graphics]
\setupheadtext [\s!nl] [\v!graphics=Grafieken]
@@ -240,7 +267,8 @@
\setupheadtext [\s!da] [\v!graphics=Grafik]
\setupheadtext [\s!sv] [\v!graphics=Grafik]
\setupheadtext [\s!af] [\v!graphics=Grafieke]
-\setupheadtext [\s!no] [\v!graphics=Grafikk]
+\setupheadtext [\s!nb] [\v!graphics=Bilde]
+\setupheadtext [\s!nn] [\v!graphics=Bilete]
\setupheadtext [\s!en] [\v!intermezzi=Intermezzos]
\setupheadtext [\s!nl] [\v!intermezzi=Intermezzo's]
@@ -248,7 +276,8 @@
\setupheadtext [\s!da] [\v!intermezzi=Intermezzoer]
\setupheadtext [\s!sv] [\v!intermezzi=Intermezzon]
\setupheadtext [\s!af] [\v!intermezzi=Intermezzos]
-\setupheadtext [\s!no] [\v!intermezzi=Intermesso]
+\setupheadtext [\s!nb] [\v!intermezzi=Intermesso]
+\setupheadtext [\s!nn] [\v!intermezzi=Intermesso]
\setupheadtext [\s!en] [\v!index=Index]
\setupheadtext [\s!nl] [\v!index=Index]
@@ -256,7 +285,8 @@
\setupheadtext [\s!da] [\v!index=Indeks]
\setupheadtext [\s!sv] [\v!index=Sakregister]
\setupheadtext [\s!af] [\v!index=Indeks]
-\setupheadtext [\s!no] [\v!index=Indeks]
+\setupheadtext [\s!nb] [\v!index=Register]
+\setupheadtext [\s!nn] [\v!index=Register]
\setupheadtext [\s!en] [\v!abbreviations=Abbreviations]
\setupheadtext [\s!nl] [\v!abbreviations=Afkortingen]
@@ -264,7 +294,8 @@
\setupheadtext [\s!da] [\v!abbreviations=Forkortelser]
\setupheadtext [\s!sv] [\v!abbreviations=F\oumlaut rkortningar]
\setupheadtext [\s!af] [\v!abbreviations=Afkortings]
-\setupheadtext [\s!no] [\v!abbreviations=Forkortelser]
+\setupheadtext [\s!nb] [\v!abbreviations=Forkortelser]
+\setupheadtext [\s!nn] [\v!abbreviations=Forkortingar]
\setupheadtext [\s!en] [\v!logos=Logos]
\setupheadtext [\s!nl] [\v!logos=Logo's]
@@ -272,7 +303,8 @@
\setupheadtext [\s!da] [\v!logos=Logoer]
\setupheadtext [\s!sv] [\v!logos=Loggor]
\setupheadtext [\s!af] [\v!logos=Logos]
-\setupheadtext [\s!no] [\v!logos=Logoer]
+\setupheadtext [\s!nb] [\v!logos=Logoer]
+\setupheadtext [\s!nn] [\v!logos=Logoar]
\setupheadtext [\s!en] [\v!units=Units]
\setupheadtext [\s!nl] [\v!units=Eenheden]
@@ -280,7 +312,8 @@
\setupheadtext [\s!da] [\v!units=Enheder]
\setupheadtext [\s!sv] [\v!units=Enheter]
\setupheadtext [\s!af] [\v!units=Eenhede]
-\setupheadtext [\s!no] [\v!units=Enheter]
+\setupheadtext [\s!nb] [\v!units=Enheter]
+\setupheadtext [\s!nn] [\v!units=Einingar]
\setuplabeltext [\s!en] [\v!table=Table ]
\setuplabeltext [\s!nl] [\v!table=Tabel ]
@@ -288,7 +321,8 @@
\setuplabeltext [\s!da] [\v!table=Tabel ]
\setuplabeltext [\s!sv] [\v!table=Tabell ]
\setuplabeltext [\s!af] [\v!table=Tabel]
-\setuplabeltext [\s!no] [\v!table=Tabell ]
+\setuplabeltext [\s!nb] [\v!table=Tabell ]
+\setuplabeltext [\s!nn] [\v!table=Tabell ]
\setuplabeltext [\s!en] [\v!figure=Figure ]
\setuplabeltext [\s!nl] [\v!figure=Figuur ]
@@ -296,7 +330,8 @@
\setuplabeltext [\s!da] [\v!figure=Figur ]
\setuplabeltext [\s!sv] [\v!figure=Figur ]
\setuplabeltext [\s!af] [\v!figure=Figuur ]
-\setuplabeltext [\s!no] [\v!figure=Figur ]
+\setuplabeltext [\s!nb] [\v!figure=Figur ]
+\setuplabeltext [\s!nn] [\v!figure=Figur ]
\setuplabeltext [\s!en] [\v!intermezzo=Intermezzo ]
\setuplabeltext [\s!nl] [\v!intermezzo=Intermezzo ]
@@ -304,7 +339,8 @@
\setuplabeltext [\s!da] [\v!intermezzo=Intermezzo ]
\setuplabeltext [\s!sv] [\v!intermezzo=Intermezzo ]
\setuplabeltext [\s!af] [\v!intermezzo=Intermezzo ]
-\setuplabeltext [\s!no] [\v!intermezzo=Intermesso ]
+\setuplabeltext [\s!nb] [\v!intermezzo=Intermesso ]
+\setuplabeltext [\s!nn] [\v!intermezzo=Intermesso ]
\setuplabeltext [\s!en] [\v!graphic=Graphic ]
\setuplabeltext [\s!nl] [\v!graphic=Grafiek ]
@@ -312,7 +348,8 @@
\setuplabeltext [\s!da] [\v!graphic=Grafik ]
\setuplabeltext [\s!sv] [\v!graphic=Grafik ]
\setuplabeltext [\s!af] [\v!graphic=Grafiek ]
-\setuplabeltext [\s!no] [\v!graphic=Grafikk ]
+\setuplabeltext [\s!nb] [\v!graphic=Bilde ]
+\setuplabeltext [\s!nn] [\v!graphic=Bilete ]
%D We don't set these here. One can do that in a style.
@@ -322,7 +359,8 @@
\setuplabeltext [\s!da] [\v!chapter=]
\setuplabeltext [\s!sv] [\v!chapter=]
\setuplabeltext [\s!af] [\v!chapter=] % Hoofstuk
-\setuplabeltext [\s!no] [\v!chapter=]
+\setuplabeltext [\s!nb] [\v!chapter=]
+\setuplabeltext [\s!nn] [\v!chapter=]
\setuplabeltext [\s!en] [\v!section=]
\setuplabeltext [\s!nl] [\v!section=]
@@ -330,7 +368,8 @@
\setuplabeltext [\s!da] [\v!section=]
\setuplabeltext [\s!sv] [\v!section=]
\setuplabeltext [\s!af] [\v!section=] % Paragraaf
-\setuplabeltext [\s!no] [\v!section=]
+\setuplabeltext [\s!nb] [\v!section=]
+\setuplabeltext [\s!nn] [\v!section=]
\setuplabeltext [\s!en] [\v!subsection=]
\setuplabeltext [\s!nl] [\v!subsection=]
@@ -338,7 +377,8 @@
\setuplabeltext [\s!da] [\v!subsection=]
\setuplabeltext [\s!sv] [\v!subsection=]
\setuplabeltext [\s!af] [\v!subsection=]
-\setuplabeltext [\s!no] [\v!subsection=]
+\setuplabeltext [\s!nb] [\v!subsection=]
+\setuplabeltext [\s!nn] [\v!subsection=]
\setuplabeltext [\s!en] [\v!subsubsection=]
\setuplabeltext [\s!nl] [\v!subsubsection=]
@@ -346,7 +386,8 @@
\setuplabeltext [\s!da] [\v!subsubsection=]
\setuplabeltext [\s!sv] [\v!subsubsection=]
\setuplabeltext [\s!af] [\v!subsubsection=]
-\setuplabeltext [\s!no] [\v!subsubsection=]
+\setuplabeltext [\s!nb] [\v!subsubsection=]
+\setuplabeltext [\s!nn] [\v!subsubsection=]
\setuplabeltext [\s!en] [\v!subsubsubsection=]
\setuplabeltext [\s!nl] [\v!subsubsubsection=]
@@ -354,7 +395,8 @@
\setuplabeltext [\s!da] [\v!subsubsubsection=]
\setuplabeltext [\s!sv] [\v!subsubsubsection=]
\setuplabeltext [\s!af] [\v!subsubsubsection=]
-\setuplabeltext [\s!no] [\v!subsubsubsection=]
+\setuplabeltext [\s!nb] [\v!subsubsubsection=]
+\setuplabeltext [\s!nn] [\v!subsubsubsection=]
\setuplabeltext [\s!en] [\v!appendix=] % Appendix
\setuplabeltext [\s!nl] [\v!appendix=]
@@ -362,7 +404,8 @@
\setuplabeltext [\s!da] [\v!appendix=] % Bilag
\setuplabeltext [\s!sv] [\v!appendix=]
\setuplabeltext [\s!af] [\v!appendix=] % Bylae
-\setuplabeltext [\s!no] [\v!appendix=]
+\setuplabeltext [\s!nb] [\v!appendix=] % Tillegg
+\setuplabeltext [\s!nn] [\v!appendix=] % Tillegg
\setuplabeltext [\s!en] [\v!part=Part ]
\setuplabeltext [\s!nl] [\v!part=Deel ]
@@ -370,7 +413,8 @@
\setuplabeltext [\s!da] [\v!part=Del ]
\setuplabeltext [\s!sv] [\v!part=Del ]
\setuplabeltext [\s!af] [\v!part=Deel ]
-\setuplabeltext [\s!no] [\v!part=Del ]
+\setuplabeltext [\s!nb] [\v!part=Del]
+\setuplabeltext [\s!nn] [\v!part=Del]
\setuplabeltext [\s!en] [\v!line=line ]
\setuplabeltext [\s!nl] [\v!line=regel ]
@@ -378,7 +422,8 @@
\setuplabeltext [\s!da] [\v!line=linie ] % or linje
\setuplabeltext [\s!sv] [\v!line=rad ]
\setuplabeltext [\s!af] [\v!line=re\ediaeresis l ]
-\setuplabeltext [\s!no] [\v!line=linje ]
+\setuplabeltext [\s!nb] [\v!line=linje ]
+\setuplabeltext [\s!nn] [\v!line=linje ]
\setuplabeltext [\s!en] [\v!lines=lines ]
\setuplabeltext [\s!nl] [\v!lines=regels ]
@@ -386,7 +431,8 @@
\setuplabeltext [\s!da] [\v!lines=linier ] % or linjer
\setuplabeltext [\s!sv] [\v!lines=rader ]
\setuplabeltext [\s!af] [\v!lines=re\ediaeresis ls ]
-\setuplabeltext [\s!no] [\v!lines=linjer ]
+\setuplabeltext [\s!nb] [\v!lines=linjer ]
+\setuplabeltext [\s!nn] [\v!lines=linjer ]
\setuplabeltext [\s!en] [\v!january=January]
\setuplabeltext [\s!en] [\v!february=February]
@@ -466,18 +512,31 @@
\setuplabeltext [\s!af] [\v!november=november]
\setuplabeltext [\s!af] [\v!december=desember]
-\setuplabeltext [\s!no] [\v!january=januar]
-\setuplabeltext [\s!no] [\v!february=februar]
-\setuplabeltext [\s!no] [\v!march=mars]
-\setuplabeltext [\s!no] [\v!april=april]
-\setuplabeltext [\s!no] [\v!may=mai]
-\setuplabeltext [\s!no] [\v!june=juni]
-\setuplabeltext [\s!no] [\v!july=juli]
-\setuplabeltext [\s!no] [\v!august=august]
-\setuplabeltext [\s!no] [\v!september=september]
-\setuplabeltext [\s!no] [\v!october=oktober]
-\setuplabeltext [\s!no] [\v!november=november]
-\setuplabeltext [\s!no] [\v!december=desember]
+\setuplabeltext [\s!nb] [\v!january=januar]
+\setuplabeltext [\s!nb] [\v!february=februar]
+\setuplabeltext [\s!nb] [\v!march=mars]
+\setuplabeltext [\s!nb] [\v!april=april]
+\setuplabeltext [\s!nb] [\v!may=mai]
+\setuplabeltext [\s!nb] [\v!june=juni]
+\setuplabeltext [\s!nb] [\v!july=juli]
+\setuplabeltext [\s!nb] [\v!august=august]
+\setuplabeltext [\s!nb] [\v!september=september]
+\setuplabeltext [\s!nb] [\v!october=oktober]
+\setuplabeltext [\s!nb] [\v!november=november]
+\setuplabeltext [\s!nb] [\v!december=desember]
+
+\setuplabeltext [\s!nn] [\v!january=januar]
+\setuplabeltext [\s!nn] [\v!february=februar]
+\setuplabeltext [\s!nn] [\v!march=mars]
+\setuplabeltext [\s!nn] [\v!april=april]
+\setuplabeltext [\s!nn] [\v!may=mai]
+\setuplabeltext [\s!nn] [\v!june=juni]
+\setuplabeltext [\s!nn] [\v!july=juli]
+\setuplabeltext [\s!nn] [\v!august=august]
+\setuplabeltext [\s!nn] [\v!september=september]
+\setuplabeltext [\s!nn] [\v!october=oktober]
+\setuplabeltext [\s!nn] [\v!november=november]
+\setuplabeltext [\s!nn] [\v!december=desember]
\setuplabeltext [\s!en] [\v!sunday=Sunday]
\setuplabeltext [\s!en] [\v!monday=Monday]
@@ -527,51 +586,65 @@
\setuplabeltext [\s!af] [\v!friday=vrydag]
\setuplabeltext [\s!af] [\v!saturday=saterdag]
-\setuplabeltext [\s!no] [\v!sunday=s\ostroke ndag]
-\setuplabeltext [\s!no] [\v!monday=mandag]
-\setuplabeltext [\s!no] [\v!tuesday=tirsdag]
-\setuplabeltext [\s!no] [\v!wednesday=onsdag]
-\setuplabeltext [\s!no] [\v!thursday=torsdag]
-\setuplabeltext [\s!no] [\v!friday=fredag]
-\setuplabeltext [\s!no] [\v!saturday=l\ostroke rdag]
+\setuplabeltext [\s!nb] [\v!sunday=s\ostroke ndag]
+\setuplabeltext [\s!nb] [\v!monday=mandag]
+\setuplabeltext [\s!nb] [\v!tuesday=tirsdag]
+\setuplabeltext [\s!nb] [\v!wednesday=onsdag]
+\setuplabeltext [\s!nb] [\v!thursday=torsdag]
+\setuplabeltext [\s!nb] [\v!friday=fredag]
+\setuplabeltext [\s!nb] [\v!saturday=l\ostroke rdag]
+
+\setuplabeltext [\s!nn] [\v!sunday=sundag]
+\setuplabeltext [\s!nn] [\v!monday=m\aring ndag]
+\setuplabeltext [\s!nn] [\v!tuesday=tysdag]
+\setuplabeltext [\s!nn] [\v!wednesday=onsdag]
+\setuplabeltext [\s!nn] [\v!thursday=torsdag]
+\setuplabeltext [\s!nn] [\v!friday=fredag]
+\setuplabeltext [\s!nn] [\v!saturday=laurdag]
%D Rather new ...
-\setuplabeltext [\s!nl] [\v!page=pagina ]
-\setuplabeltext [\s!nl] [\v!atpage=op pagina ]
+\setuplabeltext [\s!nl] [\v!page=pagina ]
+\setuplabeltext [\s!nl] [\v!atpage=op pagina ]
\setuplabeltext [\s!nl] [\v!hencefore=hierboven]
\setuplabeltext [\s!nl] [\v!hereafter=hieronder]
\setuplabeltext [\s!nl] [\v!see=zie ]
-\setuplabeltext [\s!en] [\v!page=page ]
-\setuplabeltext [\s!en] [\v!atpage=at page ]
+\setuplabeltext [\s!en] [\v!page=page ]
+\setuplabeltext [\s!en] [\v!atpage=at page ]
\setuplabeltext [\s!en] [\v!hencefore=as we show above]
\setuplabeltext [\s!en] [\v!hereafter=as we show below]
\setuplabeltext [\s!en] [\v!see=see ]
-\setuplabeltext [\s!de] [\v!page=Seite ]
-\setuplabeltext [\s!de] [\v!atpage=auf Seite ]
+\setuplabeltext [\s!de] [\v!page=Seite ]
+\setuplabeltext [\s!de] [\v!atpage=auf Seite ]
\setuplabeltext [\s!de] [\v!hencefore=siehe oben]
\setuplabeltext [\s!de] [\v!hereafter=siehe unten]
\setuplabeltext [\s!de] [\v!see=siehe ]
-\setuplabeltext [\s!da] [\v!page=Side ]
-\setuplabeltext [\s!da] [\v!atpage=p\aring\ side ]
+\setuplabeltext [\s!da] [\v!page=Side ]
+\setuplabeltext [\s!da] [\v!atpage=p\aring\ side ]
\setuplabeltext [\s!da] [\v!hencefore=se foroven]
\setuplabeltext [\s!da] [\v!hereafter=se forneden]
\setuplabeltext [\s!da] [\v!see=se ]
-\setuplabeltext [\s!sv] [\v!page=Sida ]
-\setuplabeltext [\s!sv] [\v!atpage=p\aring\ sida ]
+\setuplabeltext [\s!sv] [\v!page=Sida ]
+\setuplabeltext [\s!sv] [\v!atpage=p\aring\ sida ]
\setuplabeltext [\s!sv] [\v!hencefore=se ovan]
\setuplabeltext [\s!sv] [\v!hereafter=se nedan]
\setuplabeltext [\s!sv] [\v!see=se ]
-\setuplabeltext [\s!no] [\v!page=Side ]
-\setuplabeltext [\s!no] [\v!atpage=p\aring\ side ]
-\setuplabeltext [\s!no] [\v!hencefore=se foroven]
-\setuplabeltext [\s!no] [\v!hereafter=se forneden]
-\setuplabeltext [\s!no] [\v!see=se ]
+\setuplabeltext [\s!nb] [\v!page=side ]
+\setuplabeltext [\s!nb] [\v!atpage=p\aring\ side ]
+\setuplabeltext [\s!nb] [\v!hencefore=som vist over]
+\setuplabeltext [\s!nb] [\v!hereafter=som vist under]
+\setuplabeltext [\s!nb] [\v!see=se ]
+
+\setuplabeltext [\s!nn] [\v!page=side ]
+\setuplabeltext [\s!nn] [\v!atpage=p\aring\ side ]
+\setuplabeltext [\s!nn] [\v!hencefore=som vist over]
+\setuplabeltext [\s!nn] [\v!hereafter=som vist under]
+\setuplabeltext [\s!nn] [\v!see=sj\aring\ ]
%D ... and to be completed!
@@ -609,7 +682,8 @@
%D \ShowAllLanguageValues [\s!da] [danish] {Danish} {pastry}
%D \ShowAllLanguageValues [\s!sv] [swedish] {Swedish} {design}
%D \ShowAllLanguageValues [\s!af] [afrikaans] {Afrikaaner} {boer} % afrikaanse gasvryheid
-%D \ShowAllLanguageValues [\s!no] [norwegian] {Norwegian} {wood}
+%D \ShowAllLanguageValues [\s!nb] [bokmal] {Norwegian} {wood}
+%D \ShowAllLanguageValues [\s!nn] [nynorsk] {Norwegian} {fish}
%D Extra month names:
@@ -626,4 +700,30 @@
\setuplabeltext [\s!en] [\v!november :\s!mnem=nov]
\setuplabeltext [\s!en] [\v!december :\s!mnem=dec]
+\setuplabeltext [\s!nb] [\v!january :\s!mnem=jan.]
+\setuplabeltext [\s!nb] [\v!february :\s!mnem=feb.]
+\setuplabeltext [\s!nb] [\v!march :\s!mnem=mars]
+\setuplabeltext [\s!nb] [\v!april :\s!mnem=april]
+\setuplabeltext [\s!nb] [\v!may :\s!mnem=mai]
+\setuplabeltext [\s!nb] [\v!june :\s!mnem=juni]
+\setuplabeltext [\s!nb] [\v!july :\s!mnem=juli]
+\setuplabeltext [\s!nb] [\v!august :\s!mnem=aug.]
+\setuplabeltext [\s!nb] [\v!september:\s!mnem=sep.]
+\setuplabeltext [\s!nb] [\v!october :\s!mnem=okt.]
+\setuplabeltext [\s!nb] [\v!november :\s!mnem=nov.]
+\setuplabeltext [\s!nb] [\v!december :\s!mnem=des.]
+
+\setuplabeltext [\s!nn] [\v!january :\s!mnem=jan.]
+\setuplabeltext [\s!nn] [\v!february :\s!mnem=feb.]
+\setuplabeltext [\s!nn] [\v!march :\s!mnem=mars]
+\setuplabeltext [\s!nn] [\v!april :\s!mnem=april]
+\setuplabeltext [\s!nn] [\v!may :\s!mnem=mai]
+\setuplabeltext [\s!nn] [\v!june :\s!mnem=juni]
+\setuplabeltext [\s!nn] [\v!july :\s!mnem=juli]
+\setuplabeltext [\s!nn] [\v!august :\s!mnem=aug.]
+\setuplabeltext [\s!nn] [\v!september:\s!mnem=sep.]
+\setuplabeltext [\s!nn] [\v!october :\s!mnem=okt.]
+\setuplabeltext [\s!nn] [\v!november :\s!mnem=nov.]
+\setuplabeltext [\s!nn] [\v!december :\s!mnem=des.]
+
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/lang-grk.tex b/Master/texmf-dist/tex/context/base/lang-grk.tex
index 13cebb20746..e4ba781ebd8 100644
--- a/Master/texmf-dist/tex/context/base/lang-grk.tex
+++ b/Master/texmf-dist/tex/context/base/lang-grk.tex
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Greek Language}
+\writestatus{loading}{ConTeXt Language Macros / Greek}
%D The framework of this module is set up by Hans Hagen while
%D all the translations have been done by Apostolos Syropoulos
@@ -29,8 +29,7 @@
\c!rightquote=\greekrightquot,
\c!leftquotation=\greekleftquot,
\c!rightquotation=\greekrightquot,
- \c!date={\v!day\ \v!month\ \v!year},
- \c!state=\v!stop]
+ \c!date={\v!day\ \v!month\ \v!year}]
\installlanguage [greek] [\s!gr]
@@ -86,7 +85,9 @@
\installlanguage
[\s!agr]
[\s!default=\s!gr,
- \c!state=\v!stop]
+ \s!patterns=\s!agr,
+ \s!mapping=\s!agr,
+ \s!encoding=\s!agr]
\installlanguage [ancientgreek] [\s!agr]
diff --git a/Master/texmf-dist/tex/context/base/lang-ind.tex b/Master/texmf-dist/tex/context/base/lang-ind.tex
index f9bbad0d7c6..9b6e5ff1dbe 100644
--- a/Master/texmf-dist/tex/context/base/lang-ind.tex
+++ b/Master/texmf-dist/tex/context/base/lang-ind.tex
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Indo-Iranian Languages}
+\writestatus{loading}{ConTeXt Language Macros / Indo-Iranian Languages}
%D The framework of this module is set up by Hans Hagen while
%D many of the first translations were done by Tobias. Later
diff --git a/Master/texmf-dist/tex/context/base/lang-ini.lua b/Master/texmf-dist/tex/context/base/lang-ini.lua
index 83e9b899f87..e188ad36cc9 100644
--- a/Master/texmf-dist/tex/context/base/lang-ini.lua
+++ b/Master/texmf-dist/tex/context/base/lang-ini.lua
@@ -6,6 +6,13 @@ if not modules then modules = { } end modules ['lang-ini'] = {
license = "see context related readme files"
}
+-- needs a cleanup (share locals)
+
+local utf = unicode.utf8
+
+local find, lower, format, utfchar = string.find, string.lower, string.format, utf.char
+local concat = table.concat
+
if lang.use_new then lang.use_new(true) end
languages = languages or {}
@@ -13,6 +20,8 @@ languages.version = 1.009
languages.hyphenation = languages.hyphenation or { }
languages.hyphenation.data = languages.hyphenation.data or { }
+local langdata = languages.hyphenation.data
+
-- 002D : hyphen-minus (ascii)
-- 2010 : hyphen
-- 2011 : nonbreakable hyphen
@@ -23,157 +32,151 @@ languages.hyphenation.data = languages.hyphenation.data or { }
--~ lang:clear_hyphenation()
-do
- -- we can consider hiding data (faster access too)
-
- --~ local function filter(filename,what)
- --~ local data = io.loaddata(input.find_file(texmf.instance,filename))
- --~ local data = data:match(string.format("\\%s%%s*(%%b{})",what or "patterns"))
- --~ return data:match("{%s*(.-)%s*}") or ""
- --~ end
-
- -- loading the 26 languages that we normally load in mkiv, the string based variant
- -- takes .84 seconds (probably due to the sub's) while the lpeg variant takes .78
- -- seconds
-
- local leftbrace = lpeg.P("{")
- local rightbrace = lpeg.P("}")
- local spaces = lpeg.S(" \r\n\t\f")
- local spacing = spaces^0
- local validchar = 1-(spaces+rightbrace+leftbrace)
- local validword = validchar^1
- local content = spacing * leftbrace * spacing * lpeg.C((spacing * validword)^0) * spacing * rightbrace * lpeg.P(true)
-
- local command = lpeg.P("\\patterns")
- local parser = (1-command)^0 * command * content
-
- local function filterpatterns(filename)
- if filename:find("%.rpl") then
- return io.loaddata(input.find_file(texmf.instance,filename)) or ""
- else
- return parser:match(io.loaddata(input.find_file(texmf.instance,filename)) or "")
- end
- end
+-- we can consider hiding data (faster access too)
- local command = lpeg.P("\\hyphenation")
- local parser = (1-command)^0 * command * content
+--~ local function filter(filename,what)
+--~ local data = io.loaddata(resolvers.find_file(filename))
+--~ local data = data:match(string.format("\\%s%%s*(%%b{})",what or "patterns"))
+--~ return data:match("{%s*(.-)%s*}") or ""
+--~ end
- local function filterexceptions(filename)
- if filename:find("%.rhl") then
- return io.loaddata(input.find_file(texmf.instance,filename)) or ""
- else
- return parser:match(io.loaddata(input.find_file(texmf.instance,filename)) or {}) -- "" ?
- end
- end
+-- loading the 26 languages that we normally load in mkiv, the string based variant
+-- takes .84 seconds (probably due to the sub's) while the lpeg variant takes .78
+-- seconds
- local function record(tag)
- local data = languages.hyphenation.data[tag]
- if not data then
- data = lang.new()
- languages.hyphenation.data[tag] = data
- end
- return data
- end
+local leftbrace = lpeg.P("{")
+local rightbrace = lpeg.P("}")
+local spaces = lpeg.S(" \r\n\t\f")
+local spacing = spaces^0
+local validchar = 1-(spaces+rightbrace+leftbrace)
+local validword = validchar^1
+local content = spacing * leftbrace * spacing * lpeg.C((spacing * validword)^0) * spacing * rightbrace * lpeg.P(true)
- languages.hyphenation.record = record
+local command = lpeg.P("\\patterns")
+local parser = (1-command)^0 * command * content
- function languages.hyphenation.define(tag)
- local data = record(tag)
- return data:id()
+local function filterpatterns(filename)
+ if find(filename,"%.rpl") then
+ return io.loaddata(resolvers.find_file(filename)) or ""
+ else
+ return parser:match(io.loaddata(resolvers.find_file(filename)) or "")
end
+end
- function languages.hyphenation.number(tag)
- local d = languages.hyphenation.data[tag]
- return (d and d:id()) or 0
- end
+local command = lpeg.P("\\hyphenation")
+local parser = (1-command)^0 * command * content
- function languages.hyphenation.load(tag, filename, filter, target)
- input.starttiming(languages)
- local data = record(tag)
- filename = (filename and filename ~= "" and input.find_file(texmf.instance,filename)) or ""
- local ok = filename ~= ""
- if ok then
- lang[target](data,filterpatterns(filename))
- else
- lang[target](data,"")
- end
- languages.hyphenation.data[tag] = data
- input.stoptiming(languages)
- return ok
+local function filterexceptions(filename)
+ if find(filename,"%.rhl") then
+ return io.loaddata(resolvers.find_file(filename)) or ""
+ else
+ return parser:match(io.loaddata(resolvers.find_file(filename)) or {}) -- "" ?
end
+end
- function languages.hyphenation.loadpatterns(tag, patterns)
- return languages.hyphenation.load(tag, patterns, filterpatterns, "patterns")
+local function record(tag)
+ local data = langdata[tag]
+ if not data then
+ data = lang.new()
+ langdata[tag] = data or 0
end
+ return data
+end
- function languages.hyphenation.loadexceptions(tag, exceptions)
- return languages.hyphenation.load(tag, patterns, filterexceptions, "hyphenation")
- end
+languages.hyphenation.record = record
- function languages.hyphenation.exceptions(tag, ...)
- local data = record(tag)
- data:hyphenation(...)
- end
+function languages.hyphenation.define(tag)
+ local data = record(tag)
+ return data:id()
+end
- function languages.hyphenation.hyphenate(tag, str)
- return lang.hyphenate(record(tag), str)
- end
+function languages.hyphenation.number(tag)
+ local d = langdata[tag]
+ return (d and d:id()) or 0
+end
- function languages.hyphenation.lefthyphenmin(tag, value)
- local data = record(tag)
- if value then data:lefthyphenmin(value) end
- return data:lefthyphenmin()
- end
- function languages.hyphenation.righthyphenmin(tag, value)
- local data = record(tag)
- if value then data:righthyphenmin(value) end
- return data:righthyphenmin()
+local function loadthem(tag, filename, filter, target)
+ statistics.starttiming(languages)
+ local data = record(tag)
+ filename = (filename and filename ~= "" and resolvers.find_file(filename)) or ""
+ local ok = filename ~= ""
+ if ok then
+ lang[target](data,filterpatterns(filename))
+ else
+ lang[target](data,"")
end
+ langdata[tag] = data
+ statistics.stoptiming(languages)
+ return ok
+end
- function languages.hyphenation.n()
- return table.count(languages.hyphenation.data)
- end
+function languages.hyphenation.loadpatterns(tag, patterns)
+ return loadthem(tag, patterns, filterpatterns, "patterns")
+end
+function languages.hyphenation.loadexceptions(tag, exceptions)
+ return loadthem(tag, patterns, filterexceptions, "hyphenation")
end
-do
+function languages.hyphenation.exceptions(tag, ...)
+ local data = record(tag)
+ data:hyphenation(...)
+end
- -- we can speed this one up with locals if needed
+function languages.hyphenation.hyphenate(tag, str)
+ return lang.hyphenate(record(tag), str)
+end
- local function tolang(what)
- if type(what) == "number" then
- return languages.hyphenation.data[languages.numbers[what]]
- elseif type(what) == "string" then
- return languages.hyphenation.data[what]
- else
- return what
- end
- end
+function languages.hyphenation.lefthyphenmin(tag, value)
+ local data = record(tag)
+ if value then data:lefthyphenmin(value) end
+ return data:lefthyphenmin()
+end
+function languages.hyphenation.righthyphenmin(tag, value)
+ local data = record(tag)
+ if value then data:righthyphenmin(value) end
+ return data:righthyphenmin()
+end
- function languages.prehyphenchar(what)
- return lang.prehyphenchar(tolang(what))
- end
- function languages.posthyphenchar(what)
- return lang.posthyphenchar(tolang(what))
- end
+function languages.hyphenation.n()
+ return table.count(langdata)
+end
- languages.tolang = tolang
+-- we can speed this one up with locals if needed
+local function tolang(what)
+ local kind = type(what)
+ if kind == "number" then
+ return langdata[languages.numbers[what]]
+ elseif kind == "string" then
+ return langdata[what]
+ else
+ return what
+ end
end
+function languages.prehyphenchar(what)
+ return lang.prehyphenchar(tolang(what))
+end
+function languages.posthyphenchar(what)
+ return lang.posthyphenchar(tolang(what))
+end
+
+languages.tolang = tolang
+
languages.registered = languages.registered or { }
languages.associated = languages.associated or { }
languages.numbers = languages.numbers or { }
-input.storage.register(false,"languages/registered",languages.registered,"languages.registered")
-input.storage.register(false,"languages/associated",languages.associated,"languages.associated")
+storage.register("languages/registered",languages.registered,"languages.registered")
+storage.register("languages/associated",languages.associated,"languages.associated")
function languages.register(tag,parent,patterns,exceptions)
parent = parent or tag
languages.registered[tag] = {
parent = parent,
- patterns = patterns or string.format("lang-%s.pat",parent),
- exceptions = exceptions or string.format("lang-%s.hyp",parent),
+ patterns = patterns or format("lang-%s.pat",parent),
+ exceptions = exceptions or format("lang-%s.hyp",parent),
loaded = false,
number = 0,
}
@@ -197,7 +200,7 @@ end
function languages.loadable(tag)
local l = languages.registered[tag]
- if l and l.patterns and input.find_file(texmf.instance,patterns) then
+ if l and l.patterns and resolvers.find_file(patterns) then
return true
else
return false
@@ -243,11 +246,11 @@ end
function languages.hyphenation.loadwords(tag, filename)
local id = languages.hyphenation.number(tag)
if id > 0 then
- local l = lang.new(id)
- input.starttiming(languages)
+ local l = lang.new(id) or 0
+ statistics.starttiming(languages)
local data = io.loaddata(filename) or ""
l:hyphenation(data)
- input.stoptiming(languages)
+ statistics.stoptiming(languages)
end
end
@@ -264,13 +267,12 @@ function languages.logger.report()
if l.loaded then
local p = (l.patterns and "pat") or '-'
local e = (l.exceptions and "exc") or '-'
- result[#result+1] = string.format("%s:%s:%s:%s:%s", tag, l.parent, p, e, l.number)
+ result[#result+1] = format("%s:%s:%s:%s:%s", tag, l.parent, p, e, l.number)
end
end
- return (#result > 0 and table.concat(result," ")) or "none"
+ return (#result > 0 and concat(result," ")) or "none"
end
-
languages.words = languages.words or {}
languages.words.data = languages.words.data or {}
languages.words.enable = false
@@ -291,15 +293,15 @@ do
local word = lpeg.Cs((markup/"" + disc/"" + (1-spacing))^1)
function languages.words.load(tag, filename)
- local filename = input.find_file(texmf.instance,filename,'other text file') or ""
+ local filename = resolvers.find_file(filename,'other text file') or ""
if filename ~= "" then
- input.starttiming(languages)
+ statistics.starttiming(languages)
local data = io.loaddata(filename) or ""
local words = languages.words.data[tag] or {}
parser = (spacing + word/function(s) words[s] = true end)^0
parser:match(data)
languages.words.data[tag] = words
- input.stoptiming(languages)
+ statistics.stoptiming(languages)
end
end
@@ -309,7 +311,7 @@ function languages.words.found(id, str)
local tag = languages.numbers[id]
if tag then
local data = languages.words.data[tag]
- return data and (data[str] or data[str:lower()])
+ return data and (data[str] or data[lower(str)])
else
return false
end
@@ -322,12 +324,10 @@ do
local glyph, disc, kern = node.id('glyph'), node.id('disc'), node.id('kern')
- local bynode = node.traverse
- local bychar = string.utfcharacters
+ local bynode = node.traverse
+ local chardata = characters.data
local function mark_words(head,found) -- can be optimized
- local cd = characters.data
- local uc = utf.char
local current, start, str, language, n = head, nil, "", nil, 0
local function action()
if #str > 0 then
@@ -356,25 +356,25 @@ do
action()
language = a
end
- if current.subtype > 0 then
+ local components = current.components
+ if components then
start = start or current
n = n + 1
- for g in bynode(current.components) do
- str = str .. uc(g.char)
+ for g in bynode(components) do
+ str = str .. utfchar(g.char)
end
else
local code = current.char
- if cd[code].uccode or cd[code].lccode then
+ if chardata[code].uccode or chardata[code].lccode then
start = start or current
n = n + 1
- str = str .. uc(code)
- else
- if start then
- action()
- end
+ str = str .. utfchar(code)
+ elseif start then
+ action()
end
end
elseif id == disc then
+ if n > 0 then n = n + 1 end
-- ok
elseif id == kern and current.subtype == 0 and start then
-- ok
@@ -392,18 +392,20 @@ do
languages.words.methods = { }
languages.words.method = 1
+ local lw = languages.words
+
languages.words.methods[1] = function(head, attribute, yes, nop)
local set = node.set_attribute
local unset = node.unset_attribute
- local wrong, right = false, false
- if nop then wrong = function(n) set(n,attribute,nop) end end
+ local right, wrong = false, false
if yes then right = function(n) set(n,attribute,yes) end end
+ if nop then wrong = function(n) set(n,attribute,nop) end end
for n in node.traverse(head) do
unset(n,attribute) -- hm
end
local found, done = languages.words.found, false
mark_words(head, function(language,str)
- if #str < languages.words.threshold then
+ if #str < lw.threshold then
return false
elseif found(language,str) then
done = true
@@ -416,11 +418,10 @@ do
return head, done
end
- local lw = languages.words
+ local color = attributes.private('color')
function languages.words.check(head)
- if head.next and lw.enable then
- local color = attributes.numbers['color']
+ if lw.enable and head.next then
local colors = lw.colors
local alc = attributes.list[color]
return lw.methods[lw.method](head, color, alc[colors.known], alc[colors.unknown])
@@ -439,7 +440,8 @@ end
--~ return languages.check(head)
--~ end
---~ chars.plugins.language = {
+--~ chars.plugins[chars.plugins+1] = {
+--~ name = "language",
--~ namespace = languagehacks,
--~ processor = languagehacks.process
--~ }
@@ -451,3 +453,16 @@ languages.associate('uk','latn','eng')
languages.associate('nl','latn','nld')
languages.associate('de','latn','deu')
languages.associate('fr','latn','fra')
+
+statistics.register("loaded patterns", function()
+ local result = languages.logger.report()
+ if result ~= "none" then
+ return result
+ end
+end)
+
+statistics.register("language load time", function()
+ if statistics.elapsedindeed(languages) then
+ return format("%s seconds, n=%s", statistics.elapsedtime(languages), languages.hyphenation.n())
+ end
+end)
diff --git a/Master/texmf-dist/tex/context/base/lang-ini.mkii b/Master/texmf-dist/tex/context/base/lang-ini.mkii
index 7a1937ec507..a55748a78fb 100644
--- a/Master/texmf-dist/tex/context/base/lang-ini.mkii
+++ b/Master/texmf-dist/tex/context/base/lang-ini.mkii
@@ -11,16 +11,195 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+%D This module needs a further cleanup (real split between ii/iv).
+
+%D This module implements the (for the moment still simple)
+%D multi||language support of \CONTEXT, which should not be
+%D confused with the multi||lingual interface. This support
+%D will be extended when needed.
+
+\writestatus{loading}{ConTeXt Language Macros / Initialization}
+
\unprotect
-\def\mkdoloadpatterns#1#2%
- {\expanded{\getcommacommandsize[\getvalue{\??la#2\s!encoding}]}%
+\ifx\nonfrenchspacing\undefined \let\nonfrenchspacing\relax \fi
+\ifx\frenchspacing \undefined \let\frenchspacing \relax \fi
+
+%D When loading hyphenation patterns, \TEX\ assign a number to
+%D each loaded table, starting with~0. Switching to a specific
+%D table is done by assigning the relevant number to the
+%D predefined \COUNTER\ \type{\language}.
+
+%D We keep track of the last loaded patterns by means of a
+%D pseudo \COUNTER. This just one of those situations in which
+%D we don't want to spent a real one. Language zero has no
+%D patterns, first of all because I like to start numbering
+%D at one. It may come in handy for special purposes as well.
+
+\normallanguage\zerocount \def\loadedlanguage{1}
+
+%D \macros
+%D {currentlanguage, setupcurrentlanguage}
+%D
+%D Instead of numbers,we are going to use symbolic names for
+%D the languages. The current langage is saved in the macro
+%D \type {\currentlanguage}. The setup macro is mainly used
+%D for cosmetic purposes.
+%D
+%D \starttyping
+%D \dorecurse{3}
+%D {\language[nl]
+%D \startmode[*en] english \stopmode
+%D \startmode[*nl] dutch \stopmode
+%D \language[en]
+%D \startmode[*en] english \stopmode
+%D \startmode[*nl] dutch \stopmode}
+%D \stoptyping
+
+\let\currentlanguage \empty
+\let\currentmainlanguage\empty
+
+\def\setupcurrentlanguage[#1]{\setcurrentlanguage\currentmainlanguage{#1}}
+
+\def\setcurrentlanguage#1#2% sets modes: **id (currentmain) *id (current)
+ {\doifsomething{#1}
+ {\ifx\currentmainlanguage\empty\else\resetsystemmode{\systemmodeprefix\currentmainlanguage}\fi
+ \edef\currentmainlanguage{#1}%
+ \setsystemmode{\systemmodeprefix\currentmainlanguage}}%
+ \doifsomething{#2}
+ {\ifx\currentlanguage\empty\else\resetsystemmode\currentlanguage\fi
+ \edef\currentlanguage{#2}%
+ \setsystemmode\currentlanguage}}
+
+%D The internal macros will be defined later.
+
+%D \macros
+%D {installlanguage}
+%D
+%D Hyphenation patterns can only be loaded when the format file
+%D is prepared. The next macro takes care of this loading. A
+%D language is specified with
+%D
+%D \showsetup{installlanguage}
+%D
+%D When \type {state} equals \type {start}, both patterns
+%D and additional hyphenation specifications are loaded. These
+%D files are seached for on the system path and are to be
+%D named:
+%D
+%D \starttyping
+%D \f!languageprefix-identifier.\f!patternsextension
+%D \f!languageprefix-identifier.\f!hyhensextension
+%D \stoptyping
+%D
+%D The \type{spacing} variable specifies how the spaces after
+%D punctuation has to be handled. English is by tradition more
+%D tolerant to inter||sentence spacing than other languages.
+%D
+%D This macro also defines \type {\identifier} as a shortcut
+%D switch to the language. Furthermore the command defined as
+%D being language specific, are executed. With
+%D \type {default} we can default to another language
+%D (patterns) at format generation time. This default language
+%D is overruled when the appropriate patterns are loaded (some
+%D implementations support run time addition of patterns to a
+%D preloaded format).
+
+\def\dodoinstalllanguage#1#2% #2 added
+ {\doifundefined{#1}{\setvalue{#1}{\complexlanguage[#2]}}%
+ \expanded{\noexpand\uppercase{\noexpand\edef\noexpand\ascii{#1}}}%
+ \doifundefined\ascii{\setvalue\ascii{\complexlanguage[#2]}}}
+
+%D \macros
+%D {preloadlanguages}
+%D
+%D We first try to load the files defined as file synonym
+%D for \type {lang-*.pat} and \type {lang-*.hyp}. After that we
+%D fall back on those files. The macro \type {\preloadpatterns}
+%D reports which patterns are loaded and what hyphenmin
+%D values are set.
+
+\let\installedlanguages\empty
+
+\def\doiflanguageelse#1{\doifdefinedelse{\??la#1\c!state}}
+
+\def\doloadlanguagefiles#1%
+ {\doifelsevalue{\??la#1\c!state}\v!start
+ {\edef\languagesuffix{\specificlanguageparameter{#1}\s!patterns}%
+ \ifx\languagesuffix\empty
+ \edef\languagesuffix{\defaultlanguage{#1}}%
+ \else\ifx\languagesuffix\relax
+ \edef\languagesuffix{\defaultlanguage{#1}}%
+ \fi\fi
+ \ifx\languagesuffix\empty
+ \edef\languagesuffix{#1}%
+ \fi
+ \doifundefinedelse{\??la\??la:\currentencoding:\currentmapping:\languagesuffix}
+ {\doloadpatterns{#1}\languagesuffix}
+ {\bgroup
+ \edef\loadedlanguage{\getvalue{\??la\??la:\currentencoding:\currentmapping:\languagesuffix}}%
+ %\showmessage\m!linguals1{\languagesuffix,#1,\loadedlanguage,*,*}%
+ %\showmessage\m!linguals3{\languagesuffix,#1,\loadedlanguage,*,*}%
+ \egroup}}
+ {\showmessage\m!linguals5{#1}}}
+
+\def\doinstalllanguage[#1][#2]%
+ {\doifassignmentelse{#2}
+ {\doiflanguageelse{#1}
+ {\getparameters[\??la#1][#2]}
+ {\setvalue{\l!prefix!#1}{#1}%
+ \addtocommalist{#1}\installedlanguages
+ \dodoinstalllanguage{#1}{#1}%
+ \getparameters[\??la#1][\c!state=\v!start,#2]}%
+ \doloadlanguagefiles{#1}}
+ {\setvalue{\l!prefix!#1}{#2}%
+ \getparameters[\??la#1][\s!default=#2]%
+ \dodoinstalllanguage{#1}{#2}}}
+
+\def\reallanguagetag#1%
+ {\ifcsname\l!prefix!#1\endcsname\csname\l!prefix!#1\endcsname\else#1\fi}
+
+\let\preloadedpatterns\empty
+\let\preloadedpmessage\empty
+
+\def\doshowpatterns#1#2#3#4% language number encoding mapping
+ {#1->#3:#4->#2->\specificlanguageparameter{#1}\s!lefthyphenmin:\specificlanguageparameter{#1}\s!righthyphenmin\space}
+
+\def\preloadlanguages
+ {\doifsomething\preloadedpmessage{\showmessage\m!linguals{10}\preloadedpmessage}}
+
+\def\preloadallpatterns
+ {\gdef\preloadallpatterns##1{\installlanguage[##1][\c!state=\v!start]}%
+ \processcommacommand[\installedlanguages]\preloadallpatterns
+ \global\let\preloadallpatterns\relax}
+
+% ^^ \language[#1] gave unwanted side effect of loading language specifics
+
+\def\installlanguage
+ {\dodoubleargument\doinstalllanguage}
+
+%D When the second argument is a language identifier, a
+%D synonym is created. This feature is present because we
+%D used dutch mnemonics in the dutch version, but nowadays
+%D conform a standard.
+
+\let \patternencoding \s!default
+\let \patternmapping \s!default
+
+\def\doifpatternselse#1%
+ {\expanded{\doifinsetelse{#1}{\preloadedpatterns}}}
+
+\def\doloadpatterns#1#2%
+ {\edef\askedlanguageencoding{\specificlanguageparameter{#1}\s!encoding}%
+ \edef\askedlanguagemapping {\specificlanguageparameter{#1}\s!mapping}%
+ \expanded{\getcommacommandsize[\askedlanguageencoding]}%
+ % slightly faster: \let\unicodechar\utfunihashglyph
\ifnum\commalistsize>0
- %\message{[nofpatterns #2: \commalistsize/\getvalue{\??la#2\s!encoding}]}%
+ %\message{[nofpatterns #2: \commalistsize/\askedlanguageencoding]}%
\dorecurse\commalistsize
- {\expanded{\getfromcommacommand[\getvalue{\??la#2\s!encoding}][\recurselevel]}%
+ {\expanded{\getfromcommacommand[\askedlanguageencoding][\recurselevel]}%
\let\patternencoding\commalistelement
- \expanded{\getfromcommacommand[\getvalue{\??la#2\s!mapping }][\recurselevel]}%
+ \expanded{\getfromcommacommand[\askedlanguagemapping][\recurselevel]}%
\let\patternmapping \commalistelement
%\message{[patterns: #1/#2/\patternencoding/\patternmapping]}%
\dodoloadpatterns{#1}{#2}\patternencoding\patternmapping}%
@@ -29,15 +208,14 @@
\dodoloadpatterns{#1}{#2}{}{}%
\fi}
-\beginXETEX
-
-\def\mkdoloadpatterns#1#2%
- {\letvalue{\??la#2\s!encoding}\empty
- \letvalue{\??la#2\s!mapping }\empty
- \dodoloadpatterns{#1}{#2}{}{}}
+\ifnum\texengine=\xetexengine
-\endXETEX
+ \def\doloadpatterns#1#2%
+ {%\letvalue{\??la#2\s!encoding}\empty
+ %\letvalue{\??la#2\s!mapping }\empty
+ \dodoloadpatterns{#1}{#2}{}{}}
+\fi
\def\setuphyppatencoding
{\pathypsettings
@@ -87,6 +265,8 @@
\fi
\egroup}
+\fetchruntimecommand \showpatterns {\f!languageprefix\s!run.mkii}
+
%D Since we can only load patterns in ini\TeX, we nil the
%D loading before dumping (which saves a bit of memory, but
%D strangely enough not in the format).
@@ -96,30 +276,130 @@
\globallet\dodoloadpatterns\gobblefourarguments
\to \everydump
-\def\mkdoifpatternselse#1%
- {\expanded{\doifinsetelse{#1}{\preloadedpatterns}}}
+%D \macros
+%D {setuplanguage}
+%D
+%D Quick and dirty, but useful:
+%D
+%D \showsetup{setuplanguage}
+%D
+%D Beware, this command can only be used when a language is installed.
-\def\mkloadlanguagefiles#1%
- {\doifelsevalue{\??la#1\c!state}\v!start
- {\doifelsevaluenothing{\??la#1\s!patterns}
- {\edef\languagesuffix{#1}}
- {\edef\languagesuffix{\getvalue{\??la#1\s!patterns}}}%
- \doifundefinedelse{\??la\??la:\currentencoding:\currentmapping:\languagesuffix}
- {\mkdoloadpatterns{#1}\languagesuffix}
- {\bgroup
- \edef\loadedlanguage{\getvalue{\??la\??la:\currentencoding:\currentmapping:\languagesuffix}}%
- \showmessage\m!linguals1{\languagesuffix,#1,\loadedlanguage,*,*}%
- \showmessage\m!linguals3{\languagesuffix,#1,\loadedlanguage,*,*}%
- \egroup}}
- {\showmessage\m!linguals5{#1}}}
+\unprotected \def\setuplanguage
+ {\dodoubleempty\dosetuplanguage}
+
+\def\dosetuplanguage[#1][#2]% handy patch for testing
+ {\ifsecondargument
+ \getparameters[\??la#1][#2]%
+ \doif{#1}\currentlanguage\docomplexlanguage
+ \else
+ \getparameters[\??la\currentlanguage][#1]%
+ \docomplexlanguage
+ \fi}
+
+\setuplanguage
+ [\s!default]
+ [\s!lefthyphenmin=2,
+ \s!righthyphenmin=2,
+ \s!patterns=,
+ \c!spacing=\v!packed,
+ \s!encoding=,
+ \s!mapping=,
+ \c!lefthyphen=,
+ \c!righthyphen=-,
+ \c!hyphen=-,
+ \c!midsentence=---,
+ \c!leftsentence=---,
+ \c!rightsentence=---,
+ \c!leftsubsentence=---,
+ \c!rightsubsentence=---,
+ \c!leftquote=\upperleftsinglesixquote,
+ \c!rightquote=\upperrightsingleninequote,
+ \c!leftquotation=\upperleftdoublesixquote,
+ \c!rightquotation=\upperrightdoubleninequote,
+ \c!leftspeech=\languageparameter\c!leftquotation,
+ \c!middlespeech=,
+ \c!rightspeech=\languageparameter\c!rightquotation,
+ \c!limittext=\unknown,
+ \c!date={\v!year,\ ,\v!month,\ ,\v!day},
+ \c!text=Ag]
-\def\mksetnormallanguage#1#2% current default
+% rather new, split and per language
+
+\setuplanguage
+ [\s!default]
+ [\c!compoundhyphen=\compoundhyphen,
+ \c!leftcompoundhyphen=\compoundhyphen,
+ \c!rightcompoundhyphen=]
+
+%D The values \type {leftsentence} and \type
+%D {rightsentence} can be (and are) used to implement
+%D automatic subsentence boundary glyphs, like in {\fr
+%D |<|french guillemots|>|} or {\de |<|german guillemots|>|} or
+%D {\nl |<|dutch dashes|>|} like situations. Furthermore \type
+%D {leftquotation} and \type {leftquote} come into view
+%D \quotation {when we quote} or \quote {quote} something.
+
+%D \macros
+%D {currentdatespecification}
+%D
+%D Just to make things easy we can ask for the current date
+%D specification by saying:
+
+\def\currentdatespecification{\languageparameter\c!date}
+
+%D This command is not meant for users.
+
+%D Carefull reading of these macros shows that it's legal to
+%D say
+%D
+%D \starttyping
+%D \installlanguage [du] [de]
+%D \stoptyping
+
+%D \macros
+%D {language,mainlanguage}
+%D
+%D Switching to another language (actually another hyphenation
+%D pattern) is done with:
+%D
+%D \starttyping
+%D \language[identifier]
+%D \stoptyping
+%D
+%D or with \type{\identifier}. Just to be compatible with
+%D \PLAIN\ \TEX, we still support the original meaning, so
+%D
+%D \starttyping
+%D \language=1
+%D \stoptyping
+%D
+%D is a valid operation, where the relation between number
+%D and language depends on the order in installing languages.
+%D
+%D \showsetup{language}
+%D \showsetup{mainlanguage}
+%D
+%D Both commands take a predefined language identifier as
+%D argument. We can use \type{\mainlanguage[identifier]} for
+%D setting the (indeed) main language. This is the language
+%D used for translating labels like {\em figure} and {\em
+%D table}. The main language defaults to the current language.
+%D
+%D We take care of local as well as standardized language
+%D switching (fr and fa, de and du, but nl and nl).
+
+\ifx\synchronizepatterns \undefined \let\synchronizepatterns\relax \fi
+\ifx\synchronizepatternswithfont\undefined \def\synchronizepatternswithfont{\synchronizepatterns} \fi
+
+\def\setnormallanguage#1#2% current default
{% called quite often, so we use \csname
% \def\synchronizepatterns{\setnormallanguage
% {\csname\??la\currentlanguage\s!patterns\endcsname}}% called often
% of even better pre-expand in an ugly way:
- \@EA\def\@EA\synchronizepatterns\@EA{\@EA\dosetnormallanguage
- \csname\??la\currentlanguage\s!patterns\endcsname}%
+% \@EA\def\@EA\synchronizepatterns\@EA{\@EA\dosetnormallanguage
+% \csname\??la\currentlanguage\s!patterns\endcsname}%
+\edef\synchronizepatterns{\noexpand\dosetnormallanguage{\languageparameter\s!patterns}}%
\donefalse
\synchronizepatterns
\ifdone\else
@@ -127,8 +407,9 @@
\synchronizepatterns
\ifdone\else
\ifx\currentdefaultlanguage\empty\else
- \@EA\def\@EA\synchronizepatterns\@EA{\@EA\dosetnormallanguage
- \csname\??la\currentdefaultlanguage\s!patterns\endcsname}%
+% \@EA\def\@EA\synchronizepatterns\@EA{\@EA\dosetnormallanguage
+% \csname\??la\currentdefaultlanguage\s!patterns\endcsname}%
+\edef\synchronizepatterns{\noexpand\dosetnormallanguage{\specificlanguageparameter\currentdefaultlanguage\s!patterns}}%
\synchronizepatterns
\ifdone\else
\dosetnormallanguage\currentdefaultlanguage
@@ -138,11 +419,11 @@
\fi
\fi}
-\def\dosetnormallanguage#1% #1 == \cs
- {\dodosetnormallanguage{:\currentencoding:\currentmapping:}#1{%
- \dodosetnormallanguage{:\currentencoding:\s!default :}#1{%
- \dodosetnormallanguage{:\s!default :\currentmapping:}#1{%
- \dodosetnormallanguage{:\s!default :\s!default :}#1\empty}}}}
+\def\dosetnormallanguage#1% #1 == \cs (no longer)
+ {\dodosetnormallanguage{:\currentencoding:\currentmapping:}{#1}{%
+ \dodosetnormallanguage{:\currentencoding:\s!default :}{#1}{%
+ \dodosetnormallanguage{:\s!default :\currentmapping:}{#1}{%
+ \dodosetnormallanguage{:\s!default :\s!default :}{#1}\empty}}}}
\def\dodosetnormallanguage#1#2%
{\ifcsname\??la\??la#1#2\endcsname
@@ -159,11 +440,251 @@
\@EA\firstofoneargument
\fi}
-\beginXETEX
+\newevery \everylanguage \relax
+
+\def\disablelanguagespecifics
+ {\ignorecompoundcharacter}
+
+\def\sethyphenationvariables
+ {\lefthyphenmin 0\languageparameter\s!lefthyphenmin \relax
+ \righthyphenmin0\languageparameter\s!righthyphenmin\relax
+ \lefthyphenmin \numexpr\lefthyphenmin +\hyphenminoffset\relax
+ \righthyphenmin\numexpr\righthyphenmin+\hyphenminoffset\relax}
+
+\def\docomplexlanguage% assumes that \currentlanguage is set
+ {\edef\currentdefaultlanguage{\defaultlanguage\currentlanguage}%
+ \setnormallanguage\currentlanguage\currentdefaultlanguage
+ \the\everylanguage
+ \enablelanguagespecifics[\currentlanguage]%
+ \sethyphenationvariables
+ \relax
+ % will be definable and move to core-spa !
+ \doifelse{\languageparameter\c!spacing}\v!broad\nonfrenchspacing\frenchspacing}
+
+\ifx\enablelanguagespecifics\undefined \def\enablelanguagespecifics[#1]{} \fi
+
+% The following may be a solution for the fact that one cannot
+% change catcodes of characters like : and ; inside an environment.
+
+\appendtoks
+ \enablelanguagespecifics[\currentlanguage]%
+\to \everystarttext
+
+\def\complexlanguage[#1]%
+ {\edef\askedlanguage{#1}%
+ \ifx\askedlanguage\empty \else
+ \ifcsname\l!prefix!\askedlanguage\endcsname
+ \edef\askedlanguage{\csname\l!prefix!\askedlanguage\endcsname}%
+ \ifx\currentlanguage\askedlanguage \else
+ \setcurrentlanguage\currentmainlanguage\askedlanguage
+ \docomplexlanguage
+ \fi
+ \else
+ \showmessage\m!linguals6{#1}%
+ \fi
+ \fi}
+
+\let\simplelanguage\normallanguage
+
+\definecomplexorsimple\language
+
+\def\mainlanguage[#1]%
+ {\edef\askedlanguage{#1}%
+ \ifx\askedlanguage\empty \else
+ \ifcsname\l!prefix!\askedlanguage\endcsname
+ \edef\askedlanguage{\csname\l!prefix!\askedlanguage\endcsname}%
+ \ifx\currentlanguage\askedlanguage
+ \ifx\currentmainlanguage\askedlanguage
+ \else
+ \setcurrentlanguage\askedlanguage\askedlanguage
+ \docomplexlanguage
+ \fi
+ \else
+ \setcurrentlanguage\askedlanguage\askedlanguage
+ \docomplexlanguage
+ \fi
+ \fi
+ \fi}
+
+%D \macros
+%D {defaultlanguage,languageparameter,specificlanguageparameter}
+
+\def\defaultlanguage#1%
+ {\ifcsname\??la#1\s!default\endcsname
+ \expandafter\defaultlanguage\csname\??la#1\s!default\endcsname
+ \else
+ #1%
+ \fi}
+
+\def\languageparameter#1%
+ {\ifcsname\??la\currentlanguage#1\endcsname
+ \csname\??la\currentlanguage#1\endcsname
+ \else\ifcsname\??la\currentlanguage\s!default\endcsname
+ \expandafter\specificlanguageparameter\csname\??la\currentlanguage\s!default\endcsname{#1}%
+ \else\ifcsname\??la\s!default#1\endcsname
+ \csname\??la\s!default#1\endcsname
+ \fi\fi\fi}
+
+\def\specificlanguageparameter#1#2%
+ {\ifcsname\??la#1#2\endcsname
+ \csname\??la#1#2\endcsname
+ \else\ifcsname\??la#1\s!default\endcsname
+ \expandafter\specificlanguageparameter\csname\??la#1\s!default\endcsname{#2}%
+ \else\ifcsname\??la\s!default#2\endcsname
+ \csname\??la\s!default#2\endcsname
+ \fi\fi\fi}
+
+%D New (see nomarking and nolist):
+
+\def\splitsequence#1#2%
+ {\doifelse{#1}\v!no{#2}{\doifelse{#1}\v!yes{\languageparameter\c!limittext}{#1}}}
+
+\def\splitsymbol#1%
+ {\splitsequence{#1}{\languageparameter\c!limittext}}
+
+%D Just like with subsentence boundary symbols, quotes
+%D placement depends on the current language, therefore we show
+%D the defaults here.
+%D
+%D \def\ShowLanguageValues [#1] [#2] #3 #4
+%D {\blank
+%D \startlinecorrection
+%D \vbox\bgroup
+%D \language[#1]%
+%D \setbox0=\hbox to \hsize{\hss\bf#2 subsentence symbol and quotes\hss}
+%D \dp0=0pt
+%D \box0
+%D \vskip.5em
+%D \hrule
+%D \vskip.5em
+%D \let\normalbar=|
+%D \hbox to \hsize
+%D {\hfil\quotation{#3 #4}\hfil\quote{#2}\hfil
+%D \let|=\normalbar\strut|<||<|#3|>|#4|>|\hfil}
+%D \vskip.5em
+%D \hrule
+%D \egroup
+%D \stoplinecorrection
+%D \blank}
+%D
+%D \ShowLanguageValues [af] [afrikaans] afrikaanse ...
+%D \ShowLanguageValues [ca] [catalan] catalan ...
+%D \ShowLanguageValues [cs] [czech] tjechisch tex
+%D \ShowLanguageValues [cs] [slovak] slowaakse ...
+%D \ShowLanguageValues [da] [danish] deense ...
+%D \ShowLanguageValues [de] [german] duitse degelijkheid
+%D \ShowLanguageValues [en] [english] engelse humor
+%D \ShowLanguageValues [fi] [finnish] finse ...
+%D \ShowLanguageValues [fr] [french] franse slag
+%D \ShowLanguageValues [it] [italian] italiaanse ...
+%D \ShowLanguageValues [la] [latin] latijnse missen
+%D \ShowLanguageValues [nl] [dutch] nederlandse zuinigheid
+%D \ShowLanguageValues [nb] [bokmal] noorse zalm
+%D \ShowLanguageValues [nn] [nnynorsk] noorse zalm
+%D \ShowLanguageValues [pl] [polish] poolse vlag
+%D \ShowLanguageValues [pt] [portuguese] portugese ...
+%D \ShowLanguageValues [es] [spanish] spaans benauwd
+%D \ShowLanguageValues [sv] [swedish] zweedse ...
+%D \ShowLanguageValues [tr] [turkish] turks fruit
+
+%D We support a lot of languages. These are specified and
+%D loaded in separate files, according to their roots. Here
+%D we only take care of (postponed) setting of the current
+%D language.
+%D
+%D \unprotect
+%D \placetable{The germanic languages (\type{lang-ger})}
+%D \starttable[||||]
+%D \HL
+%D \NC \bf mnemonic \NC \bf language \NC \bf group \NC\SR
+%D \HL
+%D \NC \s!nl \NC dutch \NC germanic \NC\FR
+%D \NC \s!en \NC english \NC germanic \NC\MR
+%D \NC \s!de \NC german \NC germanic \NC\MR
+%D \NC \s!da \NC danish \NC germanic \NC\MR
+%D \NC \s!sv \NC swedish \NC germanic \NC\MR
+%D \NC \s!af \NC afrikaans \NC germanic \NC\MR
+%D \NC \s!nb \NC bokmal \NC germanic \NC\LR
+%D \NC \s!nn \NC nynorsk \NC germanic \NC\LR
+%D \HL
+%D \stoptable
+%D \protect
+%D
+%D \unprotect
+%D \placetable{The italic languages (\type{lang-ita})}
+%D \starttable[||||]
+%D \HL
+%D \NC \bf mnemonic \NC \bf language \NC \bf group \NC\SR
+%D \HL
+%D \NC \s!fr \NC french \NC italic \NC\FR
+%D \NC \s!ca \NC catalan \NC italic \NC\MR
+%D \NC \s!es \NC spanish \NC italic \NC\MR
+%D \NC \s!it \NC italian \NC italic \NC\MR
+%D \NC \s!la \NC latin \NC italic \NC\MR
+%D \NC \s!pt \NC portuguese \NC italic \NC\LR
+%D \HL
+%D \stoptable
+%D \protect
+%D
+%D \unprotect
+%D \placetable{The slavic languages (\type{lang-sla})}
+%D \starttable[||||]
+%D \HL
+%D \NC \bf mnemonic \NC \bf language \NC \bf group \NC\SR
+%D \HL
+%D \NC \s!pl \NC polish \NC slavic \NC\FR
+%D \NC \s!cs \NC czech \NC slavic \NC\MR
+%D \NC \s!sk \NC slavik \NC slavic \NC\LR
+%D \HL
+%D \stoptable
+%D \protect
+%D \unprotect
+%D
+%D \placetable{The altaic languages (\type{lang-alt})}
+%D \starttable[||||]
+%D \HL
+%D \NC \bf mnemonic \NC \bf language \NC \bf group \NC\SR
+%D \HL
+%D \NC \s!tr \NC turkish \NC altaic \NC\SR
+%D \HL
+%D \stoptable
+%D
+%D \placetable{The uralic languages (\type{lang-ura})}
+%D \starttable[||||]
+%D \HL
+%D \NC \bf mnemonic \NC \bf language \NC \bf group \NC\SR
+%D \HL
+%D \NC \s!fi \NC finnish \NC uralic \NC\SR
+%D \HL
+%D \stoptable
+%D \protect
+
+% \bgroup \normallanguage255 \patterns{} \egroup
+% \def\nopatterns{\normallanguage255 }
+
+\def\nopatterns{\normallanguage\minusone}
+
+%D \XETEX\ is \UNICODE:
+
+\ifnum\texengine=\xetexengine
+
\def\synchronizepatternswithfont{}
\def\doloadpatterns #1#2{\dodoloadpatterns{#1}{#2}\s!default\s!default}
- \def\setnormallanguage #1{\dosetnormallanguage{:\s!default:\s!default:}#1\empty}
+ \def\dosetnormallanguage #1{\dodosetnormallanguage{:\s!default:\s!default:}{#1}\empty}
\def\setuphyppatencoding {\pathypsettings}
-\endXETEX
+
+\fi
+
+%D We default to the language belonging to the interface. This
+%D is one of the few places outside the interface modules where
+%D \type{\startinterface} is used.
+
+%D We default to english:
+
+\setupcurrentlanguage[\s!en]
+
+\def\initializemainlanguage
+ {\mainlanguage[\currentlanguage]%
+ \showmessage\m!linguals9\currentlanguage}
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/lang-ini.mkiv b/Master/texmf-dist/tex/context/base/lang-ini.mkiv
index 0623e57a317..f88281a609f 100644
--- a/Master/texmf-dist/tex/context/base/lang-ini.mkiv
+++ b/Master/texmf-dist/tex/context/base/lang-ini.mkiv
@@ -11,14 +11,137 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\unprotect
+%D This module needs a further cleanup (real split between ii/iv).
+
+%D This module implements the (for the moment still simple)
+%D multi||language support of \CONTEXT, which should not be
+%D confused with the multi||lingual interface. This support
+%D will be extended when needed.
+
+\writestatus{loading}{ConTeXt Language Macros / Initialization}
\registerctxluafile{lang-ini}{1.001}
-\let\synchronizepatterns \relax % todo: cleanup
-\let\synchronizepatternswithfont\relax % todo: cleanup
+\unprotect
+
+% \def\testlanguage[#1]%
+% {\start
+% \language[#1]
+% \number\normallanguage/\the\lefthyphenmin/\the\righthyphenmin:
+% \input tufte
+% \hyphenatedword{effetestenofditwerkt}
+% \par
+% \stop}
+%
+% \testlanguage[de] \testlanguage[de-de] \testlanguage[de-at] \testlanguage[de-ch] \page
+% \testlanguage[en] \testlanguage[us] \testlanguage[en-us] \testlanguage[uk] \testlanguage[en-gb] \page
+
+\ifx\nonfrenchspacing\undefined \let\nonfrenchspacing\relax \fi
+\ifx\frenchspacing \undefined \let\frenchspacing \relax \fi
+
+%D When loading hyphenation patterns, \TEX\ assign a number to
+%D each loaded table, starting with~0. Switching to a specific
+%D table is done by assigning the relevant number to the
+%D predefined \COUNTER\ \type{\language}.
+
+%D We keep track of the last loaded patterns by means of a
+%D pseudo \COUNTER. This just one of those situations in which
+%D we don't want to spent a real one. Language zero has no
+%D patterns, first of all because I like to start numbering
+%D at one. It may come in handy for special purposes as well.
+
+\normallanguage\zerocount \def\loadedlanguage{1}
+
+%D \macros
+%D {currentlanguage, setupcurrentlanguage}
+%D
+%D Instead of numbers,we are going to use symbolic names for
+%D the languages. The current langage is saved in the macro
+%D \type {\currentlanguage}. The setup macro is mainly used
+%D for cosmetic purposes.
+%D
+%D \starttyping
+%D \dorecurse{3}
+%D {\language[nl]
+%D \startmode[*en] english \stopmode
+%D \startmode[*nl] dutch \stopmode
+%D \language[en]
+%D \startmode[*en] english \stopmode
+%D \startmode[*nl] dutch \stopmode}
+%D \stoptyping
+
+\let\currentlanguage \empty
+\let\currentmainlanguage\empty
+
+\def\setupcurrentlanguage[#1]{\setcurrentlanguage\currentmainlanguage{#1}}
+
+\def\setcurrentlanguage#1#2% sets modes: **id (currentmain) *id (current)
+ {\edef\xaskedlanguage{#1}% otherwise clash with \askedlanguage
+ \ifx\xaskedlanguage\empty \else
+ \ifx\currentmainlanguage\empty\else\resetsystemmode{\systemmodeprefix\currentmainlanguage}\fi
+ \let\currentmainlanguage\xaskedlanguage
+ \setsystemmode{\systemmodeprefix\currentmainlanguage}%
+ \fi
+ \edef\xaskedlanguage{#2}%
+ \ifx\xaskedlanguage\empty \else
+ \ifx\currentlanguage\empty\else\resetsystemmode\currentlanguage\fi
+ \let\currentlanguage\xaskedlanguage
+ \setsystemmode\currentlanguage
+ \fi}
+
+%D The internal macros will be defined later.
+
+%D \macros
+%D {installlanguage}
+%D
+%D Hyphenation patterns can only be loaded when the format file
+%D is prepared. The next macro takes care of this loading. A
+%D language is specified with
+%D
+%D \showsetup{installlanguage}
+%D
+%D When \type {state} equals \type {start}, both patterns
+%D and additional hyphenation specifications are loaded. These
+%D files are seached for on the system path and are to be
+%D named:
+%D
+%D \starttyping
+%D \f!languageprefix-identifier.\f!patternsextension
+%D \f!languageprefix-identifier.\f!hyhensextension
+%D \stoptyping
+%D
+%D The \type{spacing} variable specifies how the spaces after
+%D punctuation has to be handled. English is by tradition more
+%D tolerant to inter||sentence spacing than other languages.
+%D
+%D This macro also defines \type {\identifier} as a shortcut
+%D switch to the language. Furthermore the command defined as
+%D being language specific, are executed. With
+%D \type {default} we can default to another language
+%D (patterns) at format generation time. This default language
+%D is overruled when the appropriate patterns are loaded (some
+%D implementations support run time addition of patterns to a
+%D preloaded format).
+
+\def\dodoinstalllanguage#1#2% #2 added
+ {\expanded{\noexpand\uppercase{\noexpand\edef\noexpand\ascii{#1}}}%
+ \ifcsname #1\endcsname\else\setvalue {#1}{\complexlanguage[#2]}\fi
+ \ifcsname\ascii\endcsname\else\setvalue\ascii{\complexlanguage[#2]}\fi}
+
+%D \macros
+%D {preloadlanguages}
+%D
+%D We first try to load the files defined as file synonym
+%D for \type {lang-*.pat} and \type {lang-*.hyp}. After that we
+%D fall back on those files. The macro \type {\preloadpatterns}
+%D reports which patterns are loaded and what hyphenmin
+%D values are set.
-\def\mkdoloadpatterns#1#2%
+\let\installedlanguages\empty
+
+\def\doiflanguageelse#1{\doifdefinedelse{\??la#1\c!state}}
+
+\def\doloadpatterns#1#2%
{\ctxlua{languages.register(
"#1",
"#2",
@@ -26,43 +149,416 @@
"\truefilename{\f!languageprefix#2.\f!hyphensextension }")
}}
-\def\mkdoifpatternselse#1%
+\def\doloadlanguagefiles#1%
+ {\edef\languagesuffix{\specificlanguageparameter{#1}\s!patterns}%
+ \ifx\languagesuffix\empty
+ \edef\languagesuffix{\defaultlanguage{#1}}%
+ \else\ifx\languagesuffix\relax
+ \edef\languagesuffix{\defaultlanguage{#1}}%
+ \fi\fi
+ \ifx\languagesuffix\empty
+ \edef\languagesuffix{#1}%
+ \fi
+ \doloadpatterns{#1}\languagesuffix}
+
+\def\doinstalllanguage[#1][#2]%
+ {\doifassignmentelse{#2}
+ {\doiflanguageelse{#1}
+ {\getparameters[\??la#1][#2]}
+ {\setvalue{\l!prefix!#1}{#1}%
+ \addtocommalist{#1}\installedlanguages
+ \dodoinstalllanguage{#1}{#1}%
+ \getparameters[\??la#1][\c!state=\v!start,#2]}%
+ \doloadlanguagefiles{#1}}
+ {\setvalue{\l!prefix!#1}{#2}%
+ \getparameters[\??la#1][\s!default=#2]%
+ \dodoinstalllanguage{#1}{#2}}}
+
+\def\reallanguagetag#1%
+ {\ifcsname\l!prefix!#1\endcsname\csname\l!prefix!#1\endcsname\else#1\fi}
+
+% ^^ \language[#1] gave unwanted side effect of loading language specifics
+
+\def\installlanguage
+ {\dodoubleargument\doinstalllanguage}
+
+%D When the second argument is a language identifier, a
+%D synonym is created. This feature is present because we
+%D used dutch mnemonics in the dutch version, but nowadays
+%D conform a standard.
+
+\def\doifpatternselse#1%
{\ctxlua{cs.testcase(languages.loadable("#1"))}}
-\def\mkloadlanguagefiles#1%
- {\doifelsevaluenothing{\??la#1\s!patterns}
- {\mkdoloadpatterns{#1}{#1}}
- {\mkdoloadpatterns{#1}{\getvalue{\??la#1\s!patterns}}}}
+%D \macros
+%D {setuplanguage}
+%D
+%D Quick and dirty, but useful:
+%D
+%D \showsetup{setuplanguage}
+%D
+%D Beware, this command can only be used when a language is installed.
-\def\mksetnormallanguage#1#2% current default / we can freeze the number here
- {\normallanguage=\ctxlua{tex.sprint(languages.enable({
- "\csname\??la#1\s!patterns\endcsname","#1",
- "\csname\??la#2\s!patterns\endcsname","#2",
- }))}\relax}
+\unprotected \def\setuplanguage
+ {\dodoubleempty\dosetuplanguage}
-% to be tested
-%
-% \def\mkdosetnormallanguage#1#2% current default
-% {\normallanguage=\ctxlua{tex.sprint(languages.enable({
-% "\csname\??la#1\s!patterns\endcsname","#1",
-% "\csname\??la#2\s!patterns\endcsname","#2",
-% }))}}%
-% \setxvalue{\??la\??la#1#2}{\number\normallanguage}}
-%
-% \def\mksetnormallanguage#1#2% current default / we can freeze the number here
-% {\normallanguage\executeifdefined{\??la\??la#1#2}{\mkdosetnormallanguage{#1}{#2}}}
+\def\dosetuplanguage[#1][#2]% handy patch for testing
+ {\ifsecondargument
+ \getparameters[\??la#1][#2]%
+ \doif{#1}\currentlanguage\docomplexlanguage
+ \else
+ \getparameters[\??la\currentlanguage][#1]%
+ \docomplexlanguage
+ \fi}
+\setuplanguage
+ [\s!default]
+ [\s!lefthyphenmin=2,
+ \s!righthyphenmin=2,
+ \s!patterns=,
+ \c!spacing=\v!packed,
+ \c!lefthyphen=,
+ \c!righthyphen=-,
+ \c!hyphen=-,
+ \c!midsentence=---,
+ \c!leftsentence=---,
+ \c!rightsentence=---,
+ \c!leftsubsentence=---,
+ \c!rightsubsentence=---,
+ \c!leftquote=\upperleftsinglesixquote,
+ \c!rightquote=\upperrightsingleninequote,
+ \c!leftquotation=\upperleftdoublesixquote,
+ \c!rightquotation=\upperrightdoubleninequote,
+ \c!leftspeech=\languageparameter\c!leftquotation,
+ \c!middlespeech=,
+ \c!rightspeech=\languageparameter\c!rightquotation,
+ \c!limittext=\unknown,
+ \c!date={\v!year,\ ,\v!month,\ ,\v!day},
+ \c!text=Ag]
-\def\loadspellchecklist
- {\dodoubleempty\doloadspellchecklist}
+% rather new, split and per language
+
+\setuplanguage
+ [\s!default]
+ [\c!compoundhyphen=\compoundhyphen,
+ \c!leftcompoundhyphen=\compoundhyphen,
+ \c!rightcompoundhyphen=]
+
+%D The values \type {leftsentence} and \type
+%D {rightsentence} can be (and are) used to implement
+%D automatic subsentence boundary glyphs, like in {\fr
+%D |<|french guillemots|>|} or {\de |<|german guillemots|>|} or
+%D {\nl |<|dutch dashes|>|} like situations. Furthermore \type
+%D {leftquotation} and \type {leftquote} come into view
+%D \quotation {when we quote} or \quote {quote} something.
+
+%D \macros
+%D {currentdatespecification}
+%D
+%D Just to make things easy we can ask for the current date
+%D specification by saying:
+
+\def\currentdatespecification{\languageparameter\c!date}
+
+%D This command is not meant for users.
+
+%D Carefull reading of these macros shows that it's legal to
+%D say
+%D
+%D \starttyping
+%D \installlanguage [du] [de]
+%D \stoptyping
+
+%D \macros
+%D {language,mainlanguage}
+%D
+%D Switching to another language (actually another hyphenation
+%D pattern) is done with:
+%D
+%D \starttyping
+%D \language[identifier]
+%D \stoptyping
+%D
+%D or with \type{\identifier}. Just to be compatible with
+%D \PLAIN\ \TEX, we still support the original meaning, so
+%D
+%D \starttyping
+%D \language=1
+%D \stoptyping
+%D
+%D is a valid operation, where the relation between number
+%D and language depends on the order in installing languages.
+%D
+%D \showsetup{language}
+%D \showsetup{mainlanguage}
+%D
+%D Both commands take a predefined language identifier as
+%D argument. We can use \type{\mainlanguage[identifier]} for
+%D setting the (indeed) main language. This is the language
+%D used for translating labels like {\em figure} and {\em
+%D table}. The main language defaults to the current language.
+%D
+%D We take care of local as well as standardized language
+%D switching (fr and fa, de and du, but nl and nl).
+
+\def\dosetnormallanguage#1#2% current default
+ {\edef\askedlanguagepatterns{\specificlanguageparameter{#1}\s!patterns}%
+ \normallanguage=\ctxlua{tex.sprint(languages.enable({"\askedlanguagepatterns","#1","\askedlanguagepatterns","#2"}))}%
+ \ifproductionrun
+ \setxvalue{\??la\??la#1#2}{\number\normallanguage}%
+ \fi}
+
+\def\setnormallanguage#1#2% current default / we can freeze the number here
+ {\ifcsname\??la\??la#1#2\endcsname
+ \normallanguage\csname\??la\??la#1#2\endcsname % todo: we can set language at the lua end now
+ \else
+ \dosetnormallanguage{#1}{#2}%
+ \fi}
+
+\newtoks \everylanguage
+
+\def\sethyphenationvariables
+ {\lefthyphenmin 0\languageparameter\s!lefthyphenmin \relax
+ \righthyphenmin0\languageparameter\s!righthyphenmin\relax
+ \lefthyphenmin \numexpr\lefthyphenmin +\hyphenminoffset\relax
+ \righthyphenmin\numexpr\righthyphenmin+\hyphenminoffset\relax}
+
+\def\docomplexlanguage% assumes that \currentlanguage is set
+ {\edef\currentdefaultlanguage{\defaultlanguage\currentlanguage}%
+ \setnormallanguage\currentlanguage\currentdefaultlanguage
+ \the\everylanguage
+ \sethyphenationvariables
+ \relax
+ % will be definable and move to core-spa !
+ \doifelse{\languageparameter\c!spacing}\v!broad\nonfrenchspacing\frenchspacing}
+
+% The following may be a solution for the fact that one cannot
+% change catcodes of characters like : and ; inside an environment.
+
+\def\complexlanguage[#1]%
+ {\edef\askedlanguage{#1}%
+ \ifx\askedlanguage\empty \else
+ \ifcsname\l!prefix!\askedlanguage\endcsname
+ \edef\askedlanguage{\csname\l!prefix!\askedlanguage\endcsname}%
+ \ifx\currentlanguage\askedlanguage \else
+ \setcurrentlanguage\currentmainlanguage\askedlanguage
+ \docomplexlanguage
+ \fi
+ \else
+ \showmessage\m!linguals6{#1}%
+ \fi
+ \fi}
+
+\let\simplelanguage\normallanguage
+
+\definecomplexorsimple\language
+
+\def\mainlanguage[#1]%
+ {\edef\askedlanguage{#1}%
+ \ifx\askedlanguage\empty \else
+ \ifcsname\l!prefix!\askedlanguage\endcsname
+ \edef\askedlanguage{\csname\l!prefix!\askedlanguage\endcsname}%
+ \ifx\currentlanguage\askedlanguage
+ \ifx\currentmainlanguage\askedlanguage
+ \else
+ \setcurrentlanguage\askedlanguage\askedlanguage
+ \docomplexlanguage
+ \fi
+ \else
+ \setcurrentlanguage\askedlanguage\askedlanguage
+ \docomplexlanguage
+ \fi
+ \fi
+ \fi}
+
+%D \macros
+%D {defaultlanguage,languageparameter,specificlanguageparameter}
+
+\def\defaultlanguage#1%
+ {\ifcsname\??la#1\s!default\endcsname
+ \expandafter\defaultlanguage\csname\??la#1\s!default\endcsname
+ \else
+ #1%
+ \fi}
+
+\def\languageparameter#1%
+ {\ifcsname\??la\currentlanguage#1\endcsname
+ \csname\??la\currentlanguage#1\endcsname
+ \else\ifcsname\??la\currentlanguage\s!default\endcsname
+ \expandafter\specificlanguageparameter\csname\??la\currentlanguage\s!default\endcsname{#1}%
+ \else\ifcsname\??la\s!default#1\endcsname
+ \csname\??la\s!default#1\endcsname
+ \fi\fi\fi}
+
+\def\specificlanguageparameter#1#2%
+ {\ifcsname\??la#1#2\endcsname
+ \csname\??la#1#2\endcsname
+ \else\ifcsname\??la#1\s!default\endcsname
+ \expandafter\specificlanguageparameter\csname\??la#1\s!default\endcsname{#2}%
+ \else\ifcsname\??la\s!default#2\endcsname
+ \csname\??la\s!default#2\endcsname
+ \fi\fi\fi}
+
+%D New (see nomarking and nolist):
+
+\def\splitsequence#1#2%
+ {\doifelse{#1}\v!no{#2}{\doifelse{#1}\v!yes{\languageparameter\c!limittext}{#1}}}
+
+\def\splitsymbol#1%
+ {\splitsequence{#1}{\languageparameter\c!limittext}}
+
+%D Just like with subsentence boundary symbols, quotes
+%D placement depends on the current language, therefore we show
+%D the defaults here.
+%D
+%D \def\ShowLanguageValues [#1] [#2] #3 #4
+%D {\blank
+%D \startlinecorrection
+%D \vbox\bgroup
+%D \language[#1]%
+%D \setbox0=\hbox to \hsize{\hss\bf#2 subsentence symbol and quotes\hss}
+%D \dp0=0pt
+%D \box0
+%D \vskip.5em
+%D \hrule
+%D \vskip.5em
+%D \let\normalbar=|
+%D \hbox to \hsize
+%D {\hfil\quotation{#3 #4}\hfil\quote{#2}\hfil
+%D \let|=\normalbar\strut|<||<|#3|>|#4|>|\hfil}
+%D \vskip.5em
+%D \hrule
+%D \egroup
+%D \stoplinecorrection
+%D \blank}
+%D
+%D \ShowLanguageValues [af] [afrikaans] afrikaanse ...
+%D \ShowLanguageValues [ca] [catalan] catalan ...
+%D \ShowLanguageValues [cs] [czech] tjechisch tex
+%D \ShowLanguageValues [cs] [slovak] slowaakse ...
+%D \ShowLanguageValues [da] [danish] deense ...
+%D \ShowLanguageValues [de] [german] duitse degelijkheid
+%D \ShowLanguageValues [en] [english] engelse humor
+%D \ShowLanguageValues [fi] [finnish] finse ...
+%D \ShowLanguageValues [fr] [french] franse slag
+%D \ShowLanguageValues [it] [italian] italiaanse ...
+%D \ShowLanguageValues [la] [latin] latijnse missen
+%D \ShowLanguageValues [nl] [dutch] nederlandse zuinigheid
+%D \ShowLanguageValues [nb] [bokmal] noorse zalm
+%D \ShowLanguageValues [nn] [nnynorsk] noorse zalm
+%D \ShowLanguageValues [pl] [polish] poolse vlag
+%D \ShowLanguageValues [pt] [portuguese] portugese ...
+%D \ShowLanguageValues [es] [spanish] spaans benauwd
+%D \ShowLanguageValues [sv] [swedish] zweedse ...
+%D \ShowLanguageValues [tr] [turkish] turks fruit
+
+%D We support a lot of languages. These are specified and
+%D loaded in separate files, according to their roots. Here
+%D we only take care of (postponed) setting of the current
+%D language.
+%D
+%D \unprotect
+%D \placetable{The germanic languages (\type{lang-ger})}
+%D \starttable[||||]
+%D \HL
+%D \NC \bf mnemonic \NC \bf language \NC \bf group \NC\SR
+%D \HL
+%D \NC \s!nl \NC dutch \NC germanic \NC\FR
+%D \NC \s!en \NC english \NC germanic \NC\MR
+%D \NC \s!de \NC german \NC germanic \NC\MR
+%D \NC \s!da \NC danish \NC germanic \NC\MR
+%D \NC \s!sv \NC swedish \NC germanic \NC\MR
+%D \NC \s!af \NC afrikaans \NC germanic \NC\MR
+%D \NC \s!nb \NC bokmal \NC germanic \NC\LR
+%D \NC \s!nn \NC nynorsk \NC germanic \NC\LR
+%D \HL
+%D \stoptable
+%D \protect
+%D
+%D \unprotect
+%D \placetable{The italic languages (\type{lang-ita})}
+%D \starttable[||||]
+%D \HL
+%D \NC \bf mnemonic \NC \bf language \NC \bf group \NC\SR
+%D \HL
+%D \NC \s!fr \NC french \NC italic \NC\FR
+%D \NC \s!ca \NC catalan \NC italic \NC\MR
+%D \NC \s!es \NC spanish \NC italic \NC\MR
+%D \NC \s!it \NC italian \NC italic \NC\MR
+%D \NC \s!la \NC latin \NC italic \NC\MR
+%D \NC \s!pt \NC portuguese \NC italic \NC\LR
+%D \HL
+%D \stoptable
+%D \protect
+%D
+%D \unprotect
+%D \placetable{The slavic languages (\type{lang-sla})}
+%D \starttable[||||]
+%D \HL
+%D \NC \bf mnemonic \NC \bf language \NC \bf group \NC\SR
+%D \HL
+%D \NC \s!pl \NC polish \NC slavic \NC\FR
+%D \NC \s!cs \NC czech \NC slavic \NC\MR
+%D \NC \s!sk \NC slavik \NC slavic \NC\LR
+%D \HL
+%D \stoptable
+%D \protect
+%D \unprotect
+%D
+%D \placetable{The altaic languages (\type{lang-alt})}
+%D \starttable[||||]
+%D \HL
+%D \NC \bf mnemonic \NC \bf language \NC \bf group \NC\SR
+%D \HL
+%D \NC \s!tr \NC turkish \NC altaic \NC\SR
+%D \HL
+%D \stoptable
+%D
+%D \placetable{The uralic languages (\type{lang-ura})}
+%D \starttable[||||]
+%D \HL
+%D \NC \bf mnemonic \NC \bf language \NC \bf group \NC\SR
+%D \HL
+%D \NC \s!fi \NC finnish \NC uralic \NC\SR
+%D \HL
+%D \stoptable
+%D \protect
+
+% \bgroup \normallanguage255 \patterns{} \egroup
+% \def\nopatterns{\normallanguage255 }
+
+\def\nopatterns{\normallanguage\minusone}
+
+%D We default to the language belonging to the interface. This
+%D is one of the few places outside the interface modules where
+%D \type{\startinterface} is used.
+
+%D We default to english:
+
+\setupcurrentlanguage[\s!en]
+
+\def\initializemainlanguage
+ {\mainlanguage[\currentlanguage]%
+ \showmessage\m!linguals9\currentlanguage}
+
+%D Might be in use:
+
+\let\preloadallpatterns\relax % just for old times sake
+\let\preloadlanguages \relax % just for old times sake
+
+%D This might bexcome a seperate file:
% mkiv only -- todo: internationalize command names
% \loadspellchecklist[en][words-en.txt]
+% \loadspellchecklist[us][words-en.txt]
% \loadspellchecklist[nl][words-nl.txt]
% \setupspellchecking[state=start]
-\def\loadspellchecklist[#1][#2]%
+\def\loadspellchecklist
+ {\dodoubleempty\doloadspellchecklist}
+
+\def\doloadspellchecklist[#1][#2]%
{\ctxlua{languages.words.load("#1","#2")}}
\def\setupspellchecking
@@ -79,4 +575,6 @@
\uchyph=1
+\exhyphenchar=45 % to permit breaking at explicit hyphens
+
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/lang-ini.tex b/Master/texmf-dist/tex/context/base/lang-ini.tex
deleted file mode 100644
index d9185eb33f2..00000000000
--- a/Master/texmf-dist/tex/context/base/lang-ini.tex
+++ /dev/null
@@ -1,679 +0,0 @@
-%D \module
-%D [ file=lang-ini,
-%D version=1996.01.25,
-%D title=\CONTEXT\ Language Macros,
-%D subtitle=Initialization,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This module needs a further cleanup (real split between ii/iv).
-
-%D This module implements the (for the moment still simple)
-%D multi||language support of \CONTEXT, which should not be
-%D confused with the multi||lingual interface. This support
-%D will be extended when needed.
-
-\writestatus{loading}{Context Language Macros / Initialization}
-
-\startmessages dutch library: linguals
- title: taal
- 1: afbreekpatronen -- voor -- geladen (n=--,e=--,m=--)
- 2: geen afbreekpatronen -- voor -- (n=--,e=--,m=--) (--,--)
- 3: afbreekdefinities -- voor -- geladen (n=--,e=--,m=--)
- 4: geen afbreekdefinities -- voor -- (n=--,e=--,m=--)
- 5: afbreekpatronen voor -- niet geladen
- 6: taal -- is niet gedefinieerd
- 7: taal specifieke opties [--] introduceren een skip van --
- 8: taal specifieke opties [--] naadloos toegevoegd
- 9: taal -- is actief
- 10: patronen --geladen
-\stopmessages
-
-\startmessages english library: linguals
- title: language
- 1: patterns -- for -- loaded (n=--,e=--,m=--)
- 2: no patterns -- for -- (n=--,e=--,m=--) (--,--)
- 3: hyphenations -- for -- loaded (n=--,e=--,m=--)
- 4: no hyphenations -- for -- (n=--,e=--,m=--)
- 5: patterns for -- not loaded
- 6: language -- is undefined
- 7: language specific options [--] introduce a -- skip
- 8: language specific options [--] seamless appended
- 9: language -- is active
- 10: patterns --loaded
-\stopmessages
-
-\startmessages german library: linguals
- title: Sprache
- 1: Trennmuster -- fuer -- geladen (n=--,e=--,m=--)
- 2: Keine Trennmuster -- fuer -- (n=--,e=--,m=--) (--,--)
- 3: Trenndefinitionen -- fuer -- geladen (n=--,e=--,m=--)
- 4: Keine Trenndefinitionen -- fuer -- (n=--,e=--,m=--)
- 5: Trennmuster fuer -- nicht geladen
- 6: Sprache -- ist undefiniert
- 7: Sprachenspezifische Option [--] fuegt eine Luecke von -- ein
- 8: Sprachenspezifische Option [--] nahtlos hinzugefuegt
- 9: Sprache -- ist aktiv
- 10: Trennmuster --geladen
-\stopmessages
-
-% TOM: 9 and 10
-
-\startmessages czech library: linguals
- title: jazyky
- 1: vzory -- pro -- nacteny (n=--,e=--,m=--)
- 2: zadne vzory -- pro -- (n=--,e=--,m=--) (--,--)
- 3: deleni slov -- pro -- nacteno (n=--,e=--,m=--)
- 4: zadne deleni slov -- pro -- (n=--,e=--,m=--)
- 5: vzory pro -- nenacteny
- 6: jazyk -- neni definovan
- 7: specificke volby jazyka [--] zavadeji -- (zavlecenou) mezeru
- 8: specificke volby jazyka [--] bez mezer pripojeny
- 9: language -- is active
- 10: vzory --nacteny
-\stopmessages
-
-\startmessages italian library: linguals
- title: lingua
- 1: schemi -- per -- caricati (n=--,e=--,m=--)
- 2: niente schemi -- per -- (n=--,e=--,m=--) (--,--)
- 3: sillabazione -- per -- caricata (n=--,e=--,m=--)
- 4: niente sillabazione -- per -- (n=--,e=--,m=--)
- 5: schemi per -- non caricati
- 6: lingua -- non definita
- 7: opzioni specifiche per la lingua [--] introducono un salto --
- 8: opzioni specifiche per la lingua [--] aggiunte trasparentemente
- 9: lingua -- attiva
- 10: schemi -- caricati
-\stopmessages
-
-\startmessages norwegian library: linguals
- title: sprøk
- 1: orddelingsmønster -- for -- er lest inn (n=--,e=--,m=--)
- 2: ingen orddelingsmønster -- for -- (n=--,e=--,m=--) (--,--)
- 3: orddelingsdefinisjon -- for -- er lest inn (n=--,e=--,m=--)
- 4: ingen orddelingsdefinisjon -- for -- (n=--,e=--,m=--)
- 5: orddelingsmønster for -- er ikke lest inn
- 6: spràk -- er udefinert
- 7: spràk spesifikk opsjon [--] introduserer et -- hopp
- 8: spràk spesifikk opsjon [--] problemfritt tilføyd
- 9: spràk -- er aktivt
- 10: orddelingsmønster -- er lest inn
-\stopmessages
-
-\startmessages romanian library: linguals
- title: limbi
- 1: sablonul -- pentru -- s-a incarcat (n=--,e=--,m=--)
- 2: nu exista sabloane -- pentru -- (n=--,e=--,m=--) (--,--)
- 3: despartirea in silabe -- pentru -- s-a incarcat (n=--,e=--,m=--)
- 4: nu exista despartire in silabe -- pentru -- (n=--,e=--,m=--)
- 5: sabloanele pentru -- nu sunt incarcate
- 6: limba -- nu este definita
- 7: optiunile specifice ale limbii [--] introduc un spatiu --
- 8: optiunile specifice ale limbii [--] adaugate
- 9: limba -- este activa
- 10: sabloanele -- incarcate
-\stopmessages
-
-\startmessages french library: linguals
- title: langue
- 1: les motifs -- pour -- sont chargés (n=--,e=--,m=--)
- 2: pas de motifs -- pour -- (n=--,e=--,m=--) (--,--)
- 3: hyphenations -- pour -- chargés (n=--,e=--,m=--)
- 4: pas d'hyphenations -- pour -- (n=--,e=--,m=--)
- 5: les motifs pour -- ne sont pas chargés
- 6: langue -- non définie
- 7: les options spécifiques de langue [--] introduisent un -- saut
- 8: les options spécifiques de langue [--] sont ajoutés en douceur
- 9: la langue -- est active
- 10: motifs -- chargés
-\stopmessages
-
-\unprotect
-
-\ifx\nonfrenchspacing\undefined \let\nonfrenchspacing\relax \fi
-\ifx\frenchspacing \undefined \let\frenchspacing \relax \fi
-
-%D When loading hyphenation patterns, \TEX\ assign a number to
-%D each loaded table, starting with~0. Switching to a specific
-%D table is done by assigning the relevant number to the
-%D predefined \COUNTER\ \type{\language}. Unfortunately the
-%D name of this command suits very well the name of the
-%D language switching command we are to define, so let's save
-%D this primitive under another name:
-
-\let\normallanguage\language
-
-%D We keep track of the last loaded patterns by means of a
-%D pseudo \COUNTER. This just one of those situations in which
-%D we don't want to spent a real one. Language zero has no
-%D patterns, first of all because I like to start numbering
-%D at one. It may come in handy for special purposes as well.
-
-\normallanguage\zerocount \def\loadedlanguage{1}
-
-%D \macros
-%D {currentlanguage, setupcurrentlanguage}
-%D
-%D Instead of numbers,we are going to use symbolic names for
-%D the languages. The current langage is saved in the macro
-%D \type {\currentlanguage}. The setup macro is mainly used
-%D for cosmetic purposes.
-%D
-%D \starttyping
-%D \dorecurse{3}
-%D {\language[nl]
-%D \startmode[*en] english \stopmode
-%D \startmode[*nl] dutch \stopmode
-%D \language[en]
-%D \startmode[*en] english \stopmode
-%D \startmode[*nl] dutch \stopmode}
-%D \stoptyping
-
-\let\currentlanguage \empty
-\let\currentmainlanguage\empty
-
-\def\setupcurrentlanguage[#1]{\setcurrentlanguage\currentmainlanguage{#1}}
-
-\def\setcurrentlanguage#1#2% sets modes: **id (currentmain) *id (current)
- {\doifsomething{#1}
- {\ifx\currentmainlanguage\empty\else\resetsystemmode{\systemmodeprefix\currentmainlanguage}\fi
- \edef\currentmainlanguage{#1}%
- \setsystemmode{\systemmodeprefix\currentmainlanguage}}%
- \doifsomething{#2}
- {\ifx\currentlanguage\empty\else\resetsystemmode\currentlanguage\fi
- \edef\currentlanguage{#2}%
- \setsystemmode\currentlanguage}}
-
-%D The internal macros will be defined later.
-
-%D \macros
-%D {installlanguage}
-%D
-%D Hyphenation patterns can only be loaded when the format file
-%D is prepared. The next macro takes care of this loading. A
-%D language is specified with
-%D
-%D \showsetup{installlanguage}
-%D
-%D When \type {state} equals \type {start}, both patterns
-%D and additional hyphenation specifications are loaded. These
-%D files are seached for on the system path and are to be
-%D named:
-%D
-%D \starttyping
-%D \f!languageprefix-identifier.\f!patternsextension
-%D \f!languageprefix-identifier.\f!hyhensextension
-%D \stoptyping
-%D
-%D The \type{spacing} variable specifies how the spaces after
-%D punctuation has to be handled. English is by tradition more
-%D tolerant to inter||sentence spacing than other languages.
-%D
-%D This macro also defines \type {\identifier} as a shortcut
-%D switch to the language. Furthermore the command defined as
-%D being language specific, are executed. With
-%D \type {default} we can default to another language
-%D (patterns) at format generation time. This default language
-%D is overruled when the appropriate patterns are loaded (some
-%D implementations support run time addition of patterns to a
-%D preloaded format).
-
-\def\dodoinstalllanguage#1#2% #2 added
- {\doifundefined{#1}{\setvalue{#1}{\complexlanguage[#2]}}%
- \expanded{\noexpand\uppercase{\noexpand\edef\noexpand\ascii{#1}}}%
- \doifundefined\ascii{\setvalue\ascii{\complexlanguage[#2]}}}
-
-%D \macros
-%D {preloadlanguages}
-%D
-%D We first try to load the files defined as file synonym
-%D for \type {lang-*.pat} and \type {lang-*.hyp}. After that we
-%D fall back on those files. The macro \type {\preloadpatterns}
-%D reports which patterns are loaded and what hyphenmin
-%D values are set.
-
-\let\preloadedpatterns\empty
-\let\preloadedpmessage\empty
-
-\def\doshowpatterns#1#2#3#4% language number encoding mapping
- {#1->#3:#4->#2->\xxlanguageparameter{#1}\s!lefthyphenmin:\xxlanguageparameter{#1}\s!righthyphenmin\space}
-
-\def\preloadlanguages
- {\doifsomething\preloadedpmessage{\showmessage\m!linguals{10}\preloadedpmessage}}
-
-\fetchruntimecommand \showpatterns {\f!languageprefix\s!run}
-
-\let\installedlanguages\empty
-
-\def\doiflanguageelse#1{\doifdefinedelse{\??la#1\c!state}}
-
-\ifx\mkloadlanguagefiles\undefined \let\mkloadlanguagefiles\gobbleoneargument \fi
-
-\def\doinstalllanguage[#1][#2]% some day we will make one for mkii and mkiv
- {\doifassignmentelse{#2}
- {\doiflanguageelse{#1}
- {\getparameters[\??la#1][#2]}
- {\setvalue{\l!prefix!#1}{#1}%
- \addtocommalist{#1}\installedlanguages
- \dodoinstalllanguage{#1}{#1}%
- \getparameters
- [\??la#1]
- [\c!state=\v!stop,
- \c!default=,
- \s!patterns=,
- \s!mapping=,
- \s!encoding=,
- \s!lefthyphenmin=\defaultlanguageparameter\s!lefthyphenmin,
- \s!righthyphenmin=\defaultlanguageparameter\s!righthyphenmin,
- #2]}%
- \doifvalue{\??la#1\c!default}{#1}{\letvalue{\??la#1\c!default}\empty}%
- % loop in deo: \doifvalue{\??la#1\s!patterns}{#1}{\letvalue{\??la#1\c!default}\empty}%
- \mkloadlanguagefiles{#1}}
- {\setvalue{\l!prefix!#1}{#2}%
- \dodoinstalllanguage{#1}{#2}}}
-
-% ^^ \language[#1] gave unwanted side effect of loading language specifics
-
-\def\installlanguage
- {\dodoubleargument\doinstalllanguage}
-
-%D Handy
-
-\def\preloadallpatterns
- {\gdef\preloadallpatterns##1{\installlanguage[##1][\c!state=\v!start]}%
- \processcommacommand[\installedlanguages]\preloadallpatterns
- \global\let\preloadallpatterns\relax}
-
-%D When the second argument is a language identifier, a
-%D synonym is created. This feature is present because we
-%D used dutch mnemonics in the dutch version, but nowadays
-%D conform a standard.
-
-\let \patternencoding \s!default
-\let \patternmapping \s!default
-
-\ifx\mkloadpatterns \undefined \let\mkloadpatterns \gobbletwoarguments \fi
-\ifx\mkdoifpatternselse\undefined \let\mkdoifpatternselse\gobbletwoarguments \fi
-
-\def\doloadpatterns {\mkdoloadpatterns}
-\def\doifpatternselse{\mkdoifpatternselse}
-
-%D \macros
-%D {setuplanguage}
-%D
-%D Quick and dirty, but useful:
-%D
-%D \showsetup{setuplanguage}
-%D
-%D Beware, this command can only be used when a language is installed.
-
-\unprotected \def\setuplanguage
- {\dodoubleempty\dosetuplanguage}
-
-\def\dosetuplanguage[#1][#2]% handy patch for testing
- {\ifsecondargument
- \getparameters[\??la#1][#2]%
- \doif{#1}\currentlanguage\docomplexlanguage
- \else
- \getparameters[\??la\currentlanguage][#1]%
- \docomplexlanguage
- \fi}
-
-\setuplanguage
- [\s!default]
- [\s!lefthyphenmin=2,
- \s!righthyphenmin=2,
- \c!spacing=\v!packed,
- \c!midsentence=---,
- \c!leftsentence=---,
- \c!rightsentence=---,
- \c!leftsubsentence=---,
- \c!rightsubsentence=---,
- \c!leftquote=\upperleftsinglesixquote,
- \c!rightquote=\upperrightsingleninequote,
- \c!leftquotation=\upperleftdoublesixquote,
- \c!rightquotation=\upperrightdoubleninequote,
- \c!leftspeech=\languageparameter\c!leftquotation,
- \c!middlespeech=,
- \c!rightspeech=\languageparameter\c!rightquotation,
- \c!limittext=\unknown,
- \c!date={\v!year,\ ,\v!month,\ ,\v!day},
- \c!text=Ag]
-
-% rather new, split and per language
-
-\setuplanguage
- [\s!default]
- [\c!compoundhyphen=\compoundhyphen,
- \c!leftcompoundhyphen=\compoundhyphen,
- \c!rightcompoundhyphen=]
-
-%D The values \type {leftsentence} and \type
-%D {rightsentence} can be (and are) used to implement
-%D automatic subsentence boundary glyphs, like in {\fr
-%D |<|french guillemots|>|} or {\de |<|german guillemots|>|} or
-%D {\nl |<|dutch dashes|>|} like situations. Furthermore \type
-%D {leftquotation} and \type {leftquote} come into view
-%D \quotation {when we quote} or \quote {quote} something.
-
-%D \macros
-%D {currentdatespecification}
-%D
-%D Just to make things easy we can ask for the current date
-%D specification by saying:
-
-\def\currentdatespecification{\languageparameter\c!date}
-
-%D This command is not meant for users.
-
-%D Carefull reading of these macros shows that it's legal to
-%D say
-%D
-%D \starttyping
-%D \installlanguage [du] [de]
-%D \stoptyping
-
-%D \macros
-%D {language,mainlanguage}
-%D
-%D Switching to another language (actually another hyphenation
-%D pattern) is done with:
-%D
-%D \starttyping
-%D \language[identifier]
-%D \stoptyping
-%D
-%D or with \type{\identifier}. Just to be compatible with
-%D \PLAIN\ \TEX, we still support the original meaning, so
-%D
-%D \starttyping
-%D \language=1
-%D \stoptyping
-%D
-%D is a valid operation, where the relation between number
-%D and language depends on the order in installing languages.
-%D
-%D \showsetup{language}
-%D \showsetup{mainlanguage}
-%D
-%D Both commands take a predefined language identifier as
-%D argument. We can use \type{\mainlanguage[identifier]} for
-%D setting the (indeed) main language. This is the language
-%D used for translating labels like {\em figure} and {\em
-%D table}. The main language defaults to the current language.
-%D
-%D We take care of local as well as standardized language
-%D switching (fr and fa, de and du, but nl and nl).
-
-\ifx\synchronizepatterns \undefined \let\synchronizepatterns\relax \fi
-\ifx\synchronizepatternswithfont\undefined \def\synchronizepatternswithfont{\synchronizepatterns} \fi
-
-\ifx\mksetnormallanguage\undefined \let\mksetnormallanguage\gobbletwoarguments \fi
-
-\def\setnormallanguage{\mksetnormallanguage}
-
-\newevery \everylanguage \relax
-\newevery \everyresetlanguagespecifics \relax
-
-\def\disablelanguagespecifics
- {\ignorecompoundcharacter}
-
-\def\sethyphenationvariables
- {\lefthyphenmin 0\languageparameter\s!lefthyphenmin \relax
- \righthyphenmin0\languageparameter\s!righthyphenmin\relax
- \lefthyphenmin \numexpr\lefthyphenmin +\hyphenminoffset\relax
- \righthyphenmin\numexpr\righthyphenmin+\hyphenminoffset\relax}
-
-\def\docomplexlanguage% assumes that \currentlanguage is set
- {\edef\currentdefaultlanguage{\defaultlanguage\currentlanguage}%
- \mksetnormallanguage\currentlanguage\currentdefaultlanguage
- \the\everylanguage
- \enablelanguagespecifics[\currentlanguage]%
- \sethyphenationvariables
- \relax
- % will be definable and move to core-spa !
- \doifelse{\languageparameter\c!spacing}\v!broad
- \nonfrenchspacing\frenchspacing}
-
-\ifx\enablelanguagespecifics\undefined \def\enablelanguagespecifics[#1]{} \fi
-
-% The following may be a solution for the fact that one cannot
-% change catcodes of characters like : and ; inside an environment.
-
-\appendtoks
- \enablelanguagespecifics[\currentlanguage]%
-\to \everystarttext
-
-\def\complexlanguage[#1]%
- {\edef\askedlanguage{#1}%
- \ifx\askedlanguage\empty \else
- \ifcsname\l!prefix!\askedlanguage\endcsname
- \edef\askedlanguage{\csname\l!prefix!\askedlanguage\endcsname}%
- \ifx\currentlanguage\askedlanguage \else
- \setcurrentlanguage\currentmainlanguage\askedlanguage
- \docomplexlanguage
- \fi
- \else
- \showmessage\m!linguals6{#1}%
- \fi
- \fi}
-
-\let\simplelanguage\normallanguage
-
-\definecomplexorsimple\language
-
-\def\mainlanguage[#1]%
- {\edef\askedlanguage{#1}%
- \ifx\askedlanguage\empty \else
- \ifcsname\l!prefix!\askedlanguage\endcsname
- \edef\askedlanguage{\csname\l!prefix!\askedlanguage\endcsname}%
- \ifx\currentmainlanguage\askedlanguage \else
- \setcurrentlanguage\askedlanguage\askedlanguage
- \docomplexlanguage
- \fi
- \fi
- \fi}
-
-%D \macros
-%D {defaultlanguage,languagedefault}
-%D
-%D The macro \type {\defaultlanguage{id}} expands into the
-%D default language, when defined, while \type
-%D {\languagedefault{id}\c!parameter} returns the default's
-%D parameter.
-
-\def\defaultlanguage#1%
- {\@EA\ifx\csname\??la#1\c!default\endcsname\empty
- #1%
- \else
- \@EA\defaultlanguage\csname\??la#1\c!default\endcsname
- \fi}
-
-\def\languagedefault#1#2%
- {\csname\??la\defaultlanguage{#1}#2\endcsname}
-
-\def\languageparameter % @EA = speedup
- {\@EA\dolanguageparameter\@EA{\defaultlanguage\currentlanguage}}
-
-\def\specificlanguageparameter#1% @EA = speedup
- {\@EA\dospecificlanguageparameter\@EA{\defaultlanguage{#1}}{#1}}
-
-\def\xxlanguageparameter#1% @EA = speedup
- {\@EA\dolanguageparameter\@EA{\defaultlanguage{#1}}}
-
-\def\defaultlanguageparameter#1%
- {\csname\??la\s!default#1\endcsname}
-
-\def\dolanguageparameter#1#2%
- {\csname\??la
- \ifcsname\??la\currentlanguage#2\endcsname
- \currentlanguage
- \else\ifcsname\??la#1#2\endcsname
- \@EA\ifx\csname\??la#1#2\endcsname\empty\s!default\else#1\fi
- \else
- \s!default
- \fi\fi
- #2\endcsname}
-
-\def\dospecificlanguageparameter#1#2#3%
- {\csname\??la
- \ifcsname\??la#2#3\endcsname
- \@EA\ifx\csname\??la#2#3\endcsname\empty\s!default\else#2\fi
- \else\ifcsname\??la#1#3\endcsname
- \@EA\ifx\csname\??la#1#3\endcsname\empty\s!default\else#1\fi
- \else
- \s!default
- \fi\fi
- #3\endcsname}
-
-%D New (see nomarking and nolist):
-
-\def\splitsequence#1#2%
- {\doifelse{#1}\v!no{#2}{\doifelse{#1}\v!yes{\languageparameter\c!limittext}{#1}}}
-
-\def\splitsymbol#1%
- {\splitsequence{#1}{\languageparameter\c!limittext}}
-
-%D Just like with subsentence boundary symbols, quotes
-%D placement depends on the current language, therefore we show
-%D the defaults here.
-%D
-%D \def\ShowLanguageValues [#1] [#2] #3 #4
-%D {\blank
-%D \startlinecorrection
-%D \vbox\bgroup
-%D \language[#1]%
-%D \setbox0=\hbox to \hsize{\hss\bf#2 subsentence symbol and quotes\hss}
-%D \dp0=0pt
-%D \box0
-%D \vskip.5em
-%D \hrule
-%D \vskip.5em
-%D \let\normalbar=|
-%D \hbox to \hsize
-%D {\hfil\quotation{#3 #4}\hfil\quote{#2}\hfil
-%D \let|=\normalbar\strut|<||<|#3|>|#4|>|\hfil}
-%D \vskip.5em
-%D \hrule
-%D \egroup
-%D \stoplinecorrection
-%D \blank}
-%D
-%D \ShowLanguageValues [af] [afrikaans] afrikaanse ...
-%D \ShowLanguageValues [ca] [catalan] catalan ...
-%D \ShowLanguageValues [cz] [czech] tjechisch tex
-%D \ShowLanguageValues [cz] [slovak] slowaakse ...
-%D \ShowLanguageValues [da] [danish] deense ...
-%D \ShowLanguageValues [de] [german] duitse degelijkheid
-%D \ShowLanguageValues [en] [english] engelse humor
-%D \ShowLanguageValues [fi] [finnish] finse ...
-%D \ShowLanguageValues [fr] [french] franse slag
-%D \ShowLanguageValues [it] [italian] italiaanse ...
-%D \ShowLanguageValues [la] [latin] latijnse missen
-%D \ShowLanguageValues [nl] [dutch] nederlandse zuinigheid
-%D \ShowLanguageValues [no] [norwegian] noorse ...
-%D \ShowLanguageValues [pl] [polish] poolse ...
-%D \ShowLanguageValues [pt] [portuguese] portugese ...
-%D \ShowLanguageValues [es] [spanish] spaans benauwd
-%D \ShowLanguageValues [sv] [swedish] zweedse ...
-%D \ShowLanguageValues [tr] [turkish] turks fruit
-
-%D We support a lot of languages. These are specified and
-%D loaded in separate files, according to their roots. Here
-%D we only take care of (postponed) setting of the current
-%D language.
-%D
-%D \unprotect
-%D \placetable{The germanic languages (\type{lang-ger})}
-%D \starttable[||||]
-%D \HL
-%D \NC \bf mnemonic \NC \bf language \NC \bf group \NC\SR
-%D \HL
-%D \NC \s!nl \NC dutch \NC germanic \NC\FR
-%D \NC \s!en \NC english \NC germanic \NC\MR
-%D \NC \s!de \NC german \NC germanic \NC\MR
-%D \NC \s!da \NC danish \NC germanic \NC\MR
-%D \NC \s!sv \NC swedish \NC germanic \NC\MR
-%D \NC \s!af \NC afrikaans \NC germanic \NC\MR
-%D \NC \s!no \NC norwegian \NC germanic \NC\LR
-%D \HL
-%D \stoptable
-%D \protect
-%D
-%D \unprotect
-%D \placetable{The italic languages (\type{lang-ita})}
-%D \starttable[||||]
-%D \HL
-%D \NC \bf mnemonic \NC \bf language \NC \bf group \NC\SR
-%D \HL
-%D \NC \s!fr \NC french \NC italic \NC\FR
-%D \NC \s!ca \NC catalan \NC italic \NC\MR
-%D \NC \s!es \NC spanish \NC italic \NC\MR
-%D \NC \s!it \NC italian \NC italic \NC\MR
-%D \NC \s!la \NC latin \NC italic \NC\MR
-%D \NC \s!pt \NC portuguese \NC italic \NC\LR
-%D \HL
-%D \stoptable
-%D \protect
-%D
-%D \unprotect
-%D \placetable{The slavic languages (\type{lang-sla})}
-%D \starttable[||||]
-%D \HL
-%D \NC \bf mnemonic \NC \bf language \NC \bf group \NC\SR
-%D \HL
-%D \NC \s!pl \NC polish \NC slavic \NC\FR
-%D \NC \s!cz \NC czech \NC slavic \NC\MR
-%D \NC \s!sk \NC slavik \NC slavic \NC\LR
-%D \HL
-%D \stoptable
-%D \protect
-%D \unprotect
-%D
-%D \placetable{The altaic languages (\type{lang-alt})}
-%D \starttable[||||]
-%D \HL
-%D \NC \bf mnemonic \NC \bf language \NC \bf group \NC\SR
-%D \HL
-%D \NC \s!tr \NC turkish \NC altaic \NC\SR
-%D \HL
-%D \stoptable
-%D
-%D \placetable{The uralic languages (\type{lang-ura})}
-%D \starttable[||||]
-%D \HL
-%D \NC \bf mnemonic \NC \bf language \NC \bf group \NC\SR
-%D \HL
-%D \NC \s!fi \NC finnish \NC uralic \NC\SR
-%D \HL
-%D \stoptable
-%D \protect
-
-% \bgroup \normallanguage255 \patterns{} \egroup
-% \def\nopatterns{\normallanguage255 }
-
-\def\nopatterns{\normallanguage\minusone}
-
-%D Mark plugin:
-
-\loadmarkfile{lang-ini} % not yet
-
-%D We default to the language belonging to the interface. This
-%D is one of the few places outside the interface modules where
-%D \type{\startinterface} is used.
-
-%D We default to english:
-
-\setupcurrentlanguage[\s!en]
-
-\appendtoks\mainlanguage[\currentlanguage]\to\everyjob
-
-\appendtoks\showmessage\m!linguals9\currentlanguage\to\everyjob
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/lang-ita.tex b/Master/texmf-dist/tex/context/base/lang-ita.tex
index 950f87344f3..c714be7758a 100644
--- a/Master/texmf-dist/tex/context/base/lang-ita.tex
+++ b/Master/texmf-dist/tex/context/base/lang-ita.tex
@@ -13,7 +13,7 @@
% Todo: replace \'.. by \namedglyph
-\writestatus{loading}{Italic Languages}
+\writestatus{loading}{ConTeXt Language Macros / Italic Languages}
%D The framework of this module is set up by Hans Hagen while
%D many of the first translations were done by Tobias. Later
@@ -47,7 +47,8 @@
\c!leftquotation=\leftguillemot,
\c!rightquotation=\rightguillemot,
\c!date={\v!day+,\v!space,\v!month,\v!space,\v!year},
- \c!state=\v!stop]
+ \s!mapping={texnansi,ec},
+ \s!encoding={texnansi,ec}]
\installlanguage
[\s!es]
@@ -60,8 +61,7 @@
\c!rightquote=\upperrightsingleninequote,
\c!leftquotation=\upperleftdoublesixquote,
\c!rightquotation=\upperrightdoubleninequote,
- \c!date={\v!day,\ ,\v!month,\ ,\v!year},
- \c!state=\v!stop]
+ \c!date={\v!day,\ ,\v!month,\ ,\v!year}]
\installlanguage [sp] [\s!es] % old times context
@@ -76,8 +76,7 @@
\c!rightquote=\upperrightsingleninequote,
\c!leftquotation=\upperleftdoublesixquote,
\c!rightquotation=\upperrightdoubleninequote,
- \c!date={\v!day,\ ,\v!month,\ ,\v!year},
- \c!state=\v!stop]
+ \c!date={\v!day,\ ,\v!month,\ ,\v!year}]
% Note GB left|/|right (sub)sentences are for \quote {incisi}.
@@ -96,7 +95,8 @@
\c!middlespeech=\leftguillemot,
\c!rightspeech=\rightguillemot,
\c!date={\v!day,\ ,\v!month,\ ,\v!year},
- \c!state=\v!stop]
+ \s!mapping={texnansi,ec},
+ \s!encoding={texnansi,ec}]
\installlanguage % the same as italian
[\s!la]
@@ -109,8 +109,7 @@
\c!rightquote=\lowerrightsingleninequote,
\c!leftquotation=\upperleftdoublesixquote,
\c!rightquotation=\lowerrightdoubleninequote,
- \c!date={\v!day,\ ,\v!month,\ ,\v!year},
- \c!state=\v!stop]
+ \c!date={\v!day,\ ,\v!month,\ ,\v!year}]
\installlanguage
[\s!pt]
@@ -124,7 +123,8 @@
\c!leftquotation=\upperleftdoublesixquote,
\c!rightquotation=\upperrightdoubleninequote,
\c!date={\v!year,\ ,\v!month,\ ,\v!day},
- \c!state=\v!stop]
+ \s!mapping={texnansi,ec},
+ \s!encoding={texnansi,ec}]
\installlanguage
[\s!ro]
@@ -137,8 +137,7 @@
\c!rightquote=\rightguillemot,
\c!leftquotation=\lowerrightdoubleninequote,
\c!rightquotation=\upperleftdoublesixquote,
- \c!date={\v!day,\ ,\v!month,\ ,\v!year},
- \c!state=\v!stop]
+ \c!date={\v!day,\ ,\v!month,\ ,\v!year}]
%D For compatibility reasons we also define:
@@ -227,8 +226,8 @@
\setupheadtext [\s!ro] [\v!units=Unit\u{a}\c{t}i]
\setuplabeltext [\s!fr] [\v!table=Tableau ]
-\setuplabeltext [\s!es] [\v!table=Tablas ]
-\setuplabeltext [\s!ca] [\v!table=Taules ]
+\setuplabeltext [\s!es] [\v!table=Tabla ]
+\setuplabeltext [\s!ca] [\v!table=Taula ]
\setuplabeltext [\s!it] [\v!table=Tabella ]
\setuplabeltext [\s!la] [\v!table=Tabula ]
\setuplabeltext [\s!pt] [\v!table=Tabela ]
@@ -259,48 +258,48 @@
\setuplabeltext [\s!ro] [\v!graphic=Graficul ]
\setuplabeltext [\s!fr] [\v!chapter=]
-\setuplabeltext [\s!es] [\v!chapter=]
-\setuplabeltext [\s!ca] [\v!chapter=]
+\setuplabeltext [\s!es] [\v!chapter=Cap\'\itulo]
+\setuplabeltext [\s!ca] [\v!chapter=Cap\'\itol]
\setuplabeltext [\s!it] [\v!chapter=]
\setuplabeltext [\s!la] [\v!chapter=]
\setuplabeltext [\s!pt] [\v!chapter=]
\setuplabeltext [\s!ro] [\v!chapter=]
\setuplabeltext [\s!fr] [\v!section=]
-\setuplabeltext [\s!es] [\v!section=]
-\setuplabeltext [\s!ca] [\v!section=]
+\setuplabeltext [\s!es] [\v!section=Secci\'on]
+\setuplabeltext [\s!ca] [\v!section=Secci\'o]
\setuplabeltext [\s!it] [\v!section=]
\setuplabeltext [\s!la] [\v!section=]
\setuplabeltext [\s!pt] [\v!section=]
\setuplabeltext [\s!ro] [\v!section=]
\setuplabeltext [\s!fr] [\v!subsection=]
-\setuplabeltext [\s!es] [\v!subsection=]
-\setuplabeltext [\s!ca] [\v!subsection=]
+\setuplabeltext [\s!es] [\v!subsection=Subsecci\'on]
+\setuplabeltext [\s!ca] [\v!subsection=Subsecci\'o]
\setuplabeltext [\s!it] [\v!subsection=]
\setuplabeltext [\s!la] [\v!subsection=]
\setuplabeltext [\s!pt] [\v!subsection=]
\setuplabeltext [\s!ro] [\v!subsection=]
\setuplabeltext [\s!fr] [\v!subsubsection=]
-\setuplabeltext [\s!es] [\v!subsubsection=]
-\setuplabeltext [\s!ca] [\v!subsubsection=]
+\setuplabeltext [\s!es] [\v!subsubsection=Subsubsecci\'on]
+\setuplabeltext [\s!ca] [\v!subsubsection=Subsubsecci\'o]
\setuplabeltext [\s!it] [\v!subsubsection=]
\setuplabeltext [\s!la] [\v!subsubsection=]
\setuplabeltext [\s!pt] [\v!subsubsection=]
\setuplabeltext [\s!ro] [\v!subsubsection=]
\setuplabeltext [\s!fr] [\v!subsubsubsection=]
-\setuplabeltext [\s!es] [\v!subsubsubsection=]
-\setuplabeltext [\s!ca] [\v!subsubsubsection=]
+\setuplabeltext [\s!es] [\v!subsubsubsection=Subsubsubsecci\'on]
+\setuplabeltext [\s!ca] [\v!subsubsubsection=Subsubsubsecci\'o]
\setuplabeltext [\s!it] [\v!subsubsubsection=]
\setuplabeltext [\s!la] [\v!subsubsubsection=]
\setuplabeltext [\s!pt] [\v!subsubsubsection=]
\setuplabeltext [\s!ro] [\v!subsubsubsection=]
\setuplabeltext [\s!fr] [\v!appendix=]
-\setuplabeltext [\s!es] [\v!appendix=]
-\setuplabeltext [\s!ca] [\v!appendix=]
+\setuplabeltext [\s!es] [\v!appendix=Ap\'endice]
+\setuplabeltext [\s!ca] [\v!appendix=Ap\`endix]
\setuplabeltext [\s!it] [\v!appendix=]
\setuplabeltext [\s!la] [\v!appendix=]
\setuplabeltext [\s!pt] [\v!appendix=]
@@ -479,12 +478,18 @@
%D Rather new \unknown
-\setuplabeltext [\s!it] [\v!page=pagina ]
-\setuplabeltext [\s!it] [\v!atpage=a pagina ]
+\setuplabeltext [\s!it] [\v!page=pagina ]
+\setuplabeltext [\s!it] [\v!atpage=a pagina ]
\setuplabeltext [\s!it] [\v!hencefore=come mostrato sopra]
\setuplabeltext [\s!it] [\v!hereafter=come mostrato sotto]
\setuplabeltext [\s!it] [\v!see=cf. ]
+\setuplabeltext [\s!fr] [\v!page=page ]
+\setuplabeltext [\s!fr] [\v!atpage=à la page ]
+\setuplabeltext [\s!fr] [\v!hencefore=ci-dessus]
+\setuplabeltext [\s!fr] [\v!hereafter=ci-dessous]
+\setuplabeltext [\s!fr] [\v!see=cf. ]
+
%D Ordinal converters:
\def\frordinaldaynumber#1% date is masculine
diff --git a/Master/texmf-dist/tex/context/base/lang-jap.tex b/Master/texmf-dist/tex/context/base/lang-jap.mkii
index ffb53ea7035..05c9b1d411c 100644
--- a/Master/texmf-dist/tex/context/base/lang-jap.tex
+++ b/Master/texmf-dist/tex/context/base/lang-jap.mkii
@@ -13,7 +13,7 @@
% rgabriel@kerio.com
-\writestatus{loading}{Context Language Macros / Japanese}
+\writestatus{loading}{ConTeXt Language Macros / Japanese}
\unprotect
@@ -29,8 +29,7 @@
\c!rightquote=\jaencoding\jaencodedsingleendquote,
\c!leftquotation=\jaencoding\jaencodedstartquote,
\c!rightquotation=\jaencoding\jaencodedendquote,
- \c!date={\jaencodedchristiandate,\v!year,\jaencodedyear,\v!month,\jaencodedmonth,\v!day,\jaencodedday},
- \c!state=\v!stop]
+ \c!date={\jaencodedchristiandate,\v!year,\jaencodedyear,\v!month,\jaencodedmonth,\v!day,\jaencodedday}]
\setupheadtext [\s!ja] [\v!content={\jaencoding\jaencodedtableofcontents}]
\setupheadtext [\s!ja] [\v!tables={\jaencoding\jaencodedtables}]
diff --git a/Master/texmf-dist/tex/context/base/lang-lab.tex b/Master/texmf-dist/tex/context/base/lang-lab.mkii
index 38af4f78375..269ac249bc0 100644
--- a/Master/texmf-dist/tex/context/base/lang-lab.tex
+++ b/Master/texmf-dist/tex/context/base/lang-lab.mkii
@@ -2,7 +2,7 @@
%D [ file=lang-lab,
%D version=1997.08.27,
%D title=\CONTEXT\ Language Macros,
-%D subtitle=Language Head and Label Texts,
+%D subtitle=Labels,
%D author=Hans Hagen / Tobias Burnus,
%D date=\currentdate,
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
@@ -11,8 +11,6 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Language Head and Label Texts}
-
\unprotect
%D In this module we deal with language dependant labels and
@@ -51,12 +49,21 @@
{\let\dodocommand\xdosetupsometextprefix
\dotripleempty\dodosetupsometextprefix}
+% \def\dodosetupsometextprefix[#1][#2][#3]%
+% {\ifthirdargument
+% \def\docommand##1{\dodocommand[#1#2][##1]}%
+% \processcommalist[#3]\docommand
+% \else
+% \def\docommand##1{\dodocommand[#1\currentmainlanguage][##1]}%
+% \processcommalist[#2]\docommand
+% \fi}
+
\def\dodosetupsometextprefix[#1][#2][#3]%
{\ifthirdargument
- \def\docommand##1{\dodocommand[#1#2][##1]}%
+ \def\docommand##1{\expanded{\dodocommand[#1\reallanguagetag{#2}]}[##1]}%
\processcommalist[#3]\docommand
\else
- \def\docommand##1{\dodocommand[#1\currentmainlanguage][##1]}%
+ \def\docommand##1{\expanded{\dodocommand[#1\reallanguagetag\currentmainlanguage]}[##1]}%
\processcommalist[#2]\docommand
\fi}
@@ -96,8 +103,11 @@
% \def\labellanguage{\currentmainlanguage}
% \def\headlanguage {\currentmainlanguage}
-\def\labellanguage{\defaultlanguage\currentmainlanguage}
-\def\headlanguage {\defaultlanguage\currentmainlanguage}
+% \def\labellanguage{\defaultlanguage\currentmainlanguage}
+% \def\headlanguage {\defaultlanguage\currentmainlanguage}
+
+\def\labellanguage{\reallanguagetag{\defaultlanguage\currentmainlanguage}}
+\def\headlanguage {\reallanguagetag{\defaultlanguage\currentmainlanguage}}
\appendtoks \let\labellanguage\currentlanguage \to \everycurrentdate
@@ -158,41 +168,47 @@
\def\setexpandedheadtext {\dosetexpandedheadlabeltext\c!title}
\def\setexpandedlabeltext{\dosetexpandedheadlabeltext\c!label}
-\beginETEX \ifcsname
-
-\def\dogetupsometextprefix#1#2#3%
+% \def\dogetupsometextprefix#1#2#3%
+% {\ifcsname#2#1#3\endcsname
+% \csname#2#1#3\endcsname \else
+% \ifcsname#2#3\endcsname
+% \csname#2#3\endcsname \else
+% \ifcsname#2\defaultlanguage#1#3\endcsname
+% \csname#2\defaultlanguage#1#3\endcsname \else
+% \ifcsname#2\s!en#3\endcsname
+% \csname#2\s!en#3\endcsname \else
+% \ifcsname#2\s!nl#3\endcsname
+% \csname#2\s!nl#3\endcsname \else
+% \reporttextprefixerror{#1}{#2}{#3}%
+% \fi\fi\fi\fi\fi}
+%
+% \def\dogetupsometextprefix#1#2#3% must be expandable !
+% {\ifcsname#2#1#3\endcsname
+% \csname#2#1#3\endcsname
+% \else\@EA\ifx\csname\??la#1\c!default\endcsname\empty
+% \ifcsname#2#3\endcsname
+% \csname#2#3\endcsname
+% \else\ifcsname#2\s!en#3\endcsname
+% \csname#2\s!en#3\endcsname
+% \else
+% \reporttextprefixerror{#1}{#2}{#3}%
+% \fi\fi
+% \else
+% \dogetupsometextprefix{\csname\??la#1\c!default\endcsname}{#2}{#3}%
+% \fi\fi}
+
+\def\dogetupsometextprefix#1#2#3% must be expandable ! #1 == language
{\ifcsname#2#1#3\endcsname
- \csname#2#1#3\endcsname \else
- \ifcsname#2#3\endcsname
- \csname#2#3\endcsname \else
- \ifcsname#2\defaultlanguage{#1}#3\endcsname
- \csname#2\defaultlanguage{#1}#3\endcsname \else
- \ifcsname#2\s!en#3\endcsname
- \csname#2\s!en#3\endcsname \else
- \ifcsname#2\s!nl#3\endcsname
- \csname#2\s!nl#3\endcsname \else
+ \csname#2#1#3\endcsname
+ \else\ifcsname\??la#1\s!default\endcsname
+ \expandafter\dogetupsometextprefix\csname\??la#1\s!default\endcsname{#2}{#3}%
+ \else\ifcsname#2#3\endcsname
+ \csname#2#3\endcsname
+ \else\ifcsname#1\s!en#3\endcsname
+ \csname#2\s!en#3\endcsname
+ \else
\reporttextprefixerror{#1}{#2}{#3}%
- \fi\fi\fi\fi\fi}
-
-\endETEX
-
-\beginTEX
-
-\def\dogetupsometextprefix#1#2#3%
- {\@EA\ifx\csname#2#1#3\endcsname\relax
- \@EA\ifx\csname#2#3\endcsname\relax
- \@EA\ifx\csname#2\defaultlanguage{#1}#3\endcsname\relax
- \@EA\ifx\csname#2\s!en#3\endcsname\relax
- \@EA\ifx\csname#2\s!nl#3\endcsname\relax
- \reporttextprefixerror{#1}{#2}{#3}%
- \else\csname#2\s!nl#3\endcsname
- \fi\else\csname#2\s!en#3\endcsname
- \fi\else\csname#2\defaultlanguage{#1}#3\endcsname
- \fi\else\csname#2#3\endcsname
- \fi\else\csname#2#1#3\endcsname
- \fi}
-
-\endTEX
+ \fi\fi\fi\fi}
\ifx\simplifiedcommands\undefined \newtoks\simplifiedcommands \fi
@@ -215,7 +231,7 @@
%D These are internal macros.
\def\xdopresetsometextprefix[#1][#2=#3]%
- {\ifundefined{#1#2}\doassignsometextprefix[#1#2][#3,,]\fi}
+ {\ifundefined{#1#2}\doassignsometextprefix[#1\reallanguagetag{#2}][#3,,]\fi}
\def\dopresetsometextprefix
{\let\dodocommand\xdopresetsometextprefix
@@ -242,15 +258,15 @@
%D which expands to {\em something} or {\em iets}, depending on
%D de current language.
-\def\dotranslate[#1]% don't group! SLOW if really used: speed up
+\def\dotranslate[#1]%
{\getparameters[\??lg][#1]%
- \doifdefinedelse{\??lg\currentlanguage}%
- {\getvalue{\??lg\currentlanguage}}
- {\doifdefinedelse{\??lg\s!en}
- {\getvalue{\??lg\s!en}}
- {\doifdefinedelse{\??lg\s!nl}
- {\getvalue{\??lg\s!nl}}
- {[translation #1]}}}}
+ \ifcsname\??lg\currentlanguage\endcsname
+ \csname\??lg\currentlanguage\endcsname
+ \else\ifcsname\??lg\s!en\endcsname
+ \csname\??lg\s!en\endcsname
+ \else
+ [translation #1]%
+ \fi\fi}
\unexpanded\def\translate
{\dosingleempty\dotranslate}
diff --git a/Master/texmf-dist/tex/context/base/lang-lab.mkiv b/Master/texmf-dist/tex/context/base/lang-lab.mkiv
new file mode 100644
index 00000000000..61884ab50bd
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/lang-lab.mkiv
@@ -0,0 +1,261 @@
+%D \module
+%D [ file=lang-lab,
+%D version=1997.08.27,
+%D title=\CONTEXT\ Language Macros,
+%D subtitle=Labels,
+%D author=Hans Hagen / Tobias Burnus,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%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 In this module we deal with language dependant labels and
+%D prefixes, like in {\em Figure~12} and {\em Chapter 1}. In
+%D this file we set the default values. Users can easily
+%D overrule these.
+%D
+%D This module is dedicated to the grandfather of Tobias
+%D Burnus, who's extensive languages oriented library helped us
+%D a lot in finding the right translations. All those labels
+%D are collected in files that reflect their common ancestor.
+%D
+%D Not all languages can be satisfied with the labeling
+%D mechanism as provided here. Chinese for instance put a label
+%D in front as well as after a part number. This is why the
+%D current implementation of labels supports two labels too.
+
+%D \macros
+%D {setupheadtext, setuplabeltext}
+%D
+%D First we present some macros that deal with what we will
+%D call head and label texts. Such texts are defines by:
+%D
+%D \showsetup{setupheadtext}
+%D \showsetup{setuplabeltext}
+%D
+%D A regular \CONTEXT\ stores some 1500 labels at most.
+
+\let\handletextprefix\relax
+
+\newconditional\protecttextprefixes
+
+\let\currenttextprefixtag \s!unknown
+\let\currenttextprefixclass\s!unknown
+
+\def\setupheadtext {\setfalse\protecttextprefixes\let\currenttextprefixclass\??mh\dodoubleempty\dosetupsometextprefix}
+\def\setuplabeltext{\setfalse\protecttextprefixes\let\currenttextprefixclass\??ml\dodoubleempty\dosetupsometextprefix}
+
+\def\dosetupsometextprefix[#1][#2]%
+ {\ifsecondargument
+ \edef\currenttextprefixtag{\reallanguagetag{#1}}%
+ \processcommalist[#2]\dodosetupsometextprefix
+ \else
+ \edef\currenttextprefixtag{\reallanguagetag\currentmainlanguage}%
+ \processcommalist[#1]\dodosetupsometextprefix
+ \fi}
+
+\def\dodosetupsometextprefix#1%
+ {\dododosetupsometextprefix[#1]}
+
+\def\dododosetupsometextprefix[#1=#2]%
+ {\doassignsometextprefix{#1}[#2,,]}
+
+\def\doassignsometextprefix#1%
+ {\ifconditional\protecttextprefixes
+ \ifcsname\currenttextprefixclass\currenttextprefixtag#1\endcsname
+ \expandafter\expandafter\expandafter\doassignsometextprefixnop
+ \else
+ \expandafter\expandafter\expandafter\doassignsometextprefixyes
+ \fi
+ \else
+ \expandafter\doassignsometextprefixyes
+ \fi{#1}}
+
+\ifdefined\Word\else \let\Word\relax \fi
+
+% Checking saves some 8K in the compressed format and getting rid of the embedded
+% \handletextprefix was good for another 6K. In the end the new solution is not
+% even that inefficient. And the checking is done at format generation time anyway.
+
+\def\doassignsometextprefixyes#1[#2,#3,#4]%
+ {\edef\!!stringa{#2}%
+ \edef\!!stringb{#3}%
+ \ifx\!!stringb\empty
+ \ifx\!!stringa\empty
+ \expandafter\def\csname\currenttextprefixclass\currenttextprefixtag#1\endcsname{\empty\empty}%
+ \else
+ \expandafter\def\csname\currenttextprefixclass\currenttextprefixtag#1\endcsname{{#2}\empty}%
+ \fi
+ \else
+ \expandafter\def\csname\currenttextprefixclass\currenttextprefixtag#1\endcsname{{#2}{#3}}%
+ \fi}
+
+\def\doassignsometextprefixnop#1[#2]%
+ {}
+
+%D By changing the meaning of \type {\handletextprefix} we
+%D can filter the left and right labeltext as well as convert
+%D labels to uppercase.
+%D
+%D These commands accept all kind of inputs:
+%D
+%D \starttyping
+%D \setuplabeltext [language] [labellabel=text]
+%D \setuplabeltext [language] [labellabel=text,labellabel=text,...]
+%D \setuplabeltext [labellabel=text]
+%D \setuplabeltext [labellabel=text,labellabel=text,...]
+%D \stoptyping
+%D
+%D The last two cases concern the current language.
+
+%D \macros
+%D {headtext,
+%D labeltext, leftlabeltext, rightlabeltext, labeltexts,
+%D LABELTEXT, LEFTLABELTEXT, RIGHTLABELTEXT, LABELTEXTS}
+%D
+%D Once defined, head and label texts can be called upon using:
+%D
+%D \showsetup{headtext}
+%D \showsetup{labeltext}
+%D
+%D The latter one has an upcased alternative \type{\LABELTEXT}.
+
+\def\labellanguage{\reallanguagetag{\defaultlanguage\currentmainlanguage}}
+\def\headlanguage {\reallanguagetag{\defaultlanguage\currentmainlanguage}}
+
+\appendtoks \let\labellanguage\currentlanguage \to \everycurrentdate
+
+\def\dummytextprefix{\empty\empty}
+
+\def\dogetupsomelabeltext{\dodogetupsomelabeltext\labellanguage} % second argument is textlabel
+\def\dogetupsomeheadtext {\dodogetupsomeheadtext \headlanguage } % second argument is headlabel
+
+\def\dodogetupsomelabeltext#1#2%
+ {\ifcsname\??ml#1#2\endcsname
+ \expandafter\let\expandafter\thetextprefix\csname\??ml#1#2\endcsname
+ \else\ifcsname\??la\labellanguage\s!default\endcsname
+ \expandafter\dodogetupsomelabeltext\csname\??la\labellanguage\s!default\endcsname{#2}%
+ \else\ifcsname\??ml#2\endcsname
+ \expandafter\let\expandafter\thetextprefix\csname\??ml#2\endcsname
+ \else\ifcsname\??ml\s!en#2\endcsname
+ \expandafter\let\expandafter\thetextprefix\csname\??ml\s!en#2\endcsname
+ \else
+ \let\thetextprefix\dummytextprefix
+ \fi\fi\fi\fi}
+
+\def\dodogetupsomeheadtext#1#2%
+ {\ifcsname\??mh#1#2\endcsname
+ \expandafter\let\expandafter\thetextprefix\csname\??mh#1#2\endcsname
+ \else\ifcsname\??la\headlanguage\s!default\endcsname
+ \expandafter\dodogetupsomeheadtext\csname\??la\headlanguage\s!default\endcsname{#2}%
+ \else\ifcsname\??mh#2\endcsname
+ \expandafter\let\expandafter\thetextprefix\csname\??mh#2\endcsname
+ \else\ifcsname\??mh\s!en#2\endcsname
+ \expandafter\let\expandafter\thetextprefix\csname\??mh\s!en#2\endcsname
+ \else
+ \let\thetextprefix\dummytextprefix
+ \fi\fi\fi\fi}
+
+% The WORD variants are a bit inefficient when #1/#2 are empty but they are
+% seldom used (one can better set the style).
+
+\let\flushleftlabeltext \firstoftwoarguments
+\let\flushrightlabeltext\secondoftwoarguments
+
+\def\flushleftlabelWORD #1#2{\WORD{#1}}
+\def\flushrightlabelWORD#1#2{\WORD{#2}}
+
+\def\flushbothlabeltexts#1#2#3{#1#3#2}
+\def\flushbothlabelTEXTS#1#2#3{\WORD{#1}#3\WORD{#2}}
+
+\unexpanded\def\headtext #1{\dogetupsomeheadtext {#1}\expandafter\flushleftlabeltext \thetextprefix}
+\unexpanded\def\leftlabeltext #1{\dogetupsomelabeltext{#1}\expandafter\flushleftlabeltext \thetextprefix}
+\unexpanded\def\rightlabeltext#1{\dogetupsomelabeltext{#1}\expandafter\flushrightlabeltext\thetextprefix}
+\unexpanded\def\LEFTLABELTEXT #1{\dogetupsomelabeltext{#1}\expandafter\flushleftlabelWORD \thetextprefix}
+\unexpanded\def\RIGHTLABELTEXT#1{\dogetupsomelabeltext{#1}\expandafter\flushrightlabelWORD\thetextprefix}
+\unexpanded\def\labeltexts #1{\dogetupsomelabeltext{#1}\expandafter\flushbothlabeltexts\thetextprefix} % #2
+\unexpanded\def\LABELTEXTS #1{\dogetupsomelabeltext{#1}\expandafter\flushbothlabelTEXTS\thetextprefix} % #2
+
+\let\labeltext\leftlabeltext
+\let\LABELTEXT\LEFTLABELTEXT
+
+\ifx\simplifiedcommands\undefined \newtoks\simplifiedcommands \fi
+
+\appendtoks
+ \let \headtext \firstofoneargument
+ \let \labeltext \firstofoneargument
+ \let \leftlabeltext \firstofoneargument
+ \let \rightlabeltext \firstofoneargument
+ \let \HEADTEXT \firstofoneargument
+ \let \LABELTEXT \firstofoneargument
+ \let \LEFTLABELTEXT \firstofoneargument
+ \let \RIGHTLABELTEXT \firstofoneargument
+\to \simplifiedcommands
+
+%D \macros
+%D {presetheadtext,presetlabeltext}
+%D
+%D The next two macros enable us to automatically define
+%D head and label texts without replacing predefined ones.
+%D These are internal macros.
+
+\def\presetheadtext {\settrue\protecttextprefixes\let\currenttextprefixclass\??mh\dodoubleempty\dosetupsometextprefix}
+\def\presetlabeltext{\settrue\protecttextprefixes\let\currenttextprefixclass\??ml\dodoubleempty\dosetupsometextprefix}
+
+%D \macros
+%D {translate}
+%D
+%D Sometismes macros contain language specific words that are to
+%D be typeset. Such macros can be made (more) language
+%D independant by using:
+%D
+%D \showsetup{translate}
+%D
+%D like for instance:
+%D
+%D \starttyping
+%D \translate[en=something,nl=iets]
+%D \stoptyping
+%D
+%D which expands to {\em something} or {\em iets}, depending on
+%D de current language.
+
+\def\dotranslate[#1]%
+ {\getparameters[\??lg][#1]%
+ \ifcsname\??lg\currentlanguage\endcsname
+ \csname\??lg\currentlanguage\endcsname
+ \else\ifcsname\??lg\s!en\endcsname
+ \csname\??lg\s!en\endcsname
+ \else
+ [translation #1]%
+ \fi\fi}
+
+\unexpanded\def\translate
+ {\dosingleempty\dotranslate}
+
+%D When used without argument, the last defined values are
+%D used. This enables repetitive use like
+%D
+%D \starttyping
+%D \en \translate\ means \nl \translate
+%D \stoptyping
+
+%D \macros
+%D {assigntranslation}
+%D
+%D This macro is a system macro, and can be used to assign a
+%D translation to a macro. Its form is:
+%D
+%D \starttyping
+%D \assigntranslation[en=something,nl=iets]\to\command
+%D \stoptyping
+
+\def\assigntranslation[#1]\to#2%
+ {\getparameters[\??lg][#1]%
+ \edef#2{\csname\??lg\currentlanguage\endcsname}}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/lang-mis.tex b/Master/texmf-dist/tex/context/base/lang-mis.mkii
index 13a3f2bb92d..eb7bb1a04dc 100644
--- a/Master/texmf-dist/tex/context/base/lang-mis.tex
+++ b/Master/texmf-dist/tex/context/base/lang-mis.mkii
@@ -2,7 +2,7 @@
%D [ file=lang-mis,
%D version=1997.03.20, % used to be supp-lan.tex
%D title=\CONTEXT\ Language Macros,
-%D subtitle=Language Options,
+%D subtitle=Compounds,
%D author=Hans Hagen,
%D date=\currentdate,
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Language Macros / Compounds}
+\writestatus{loading}{ConTeXt Language Macros / Compounds}
%D \gdef\starttest
%D {\blank
@@ -181,7 +181,7 @@
%ifx\postwordbreak \undefined \def\postwordbreak{\penalty\zerocount \prewordbreak } \fi
\ifx\postwordbreak \undefined \def\postwordbreak{\penalty\zerocount \hskip\zeropoint\relax} \fi
-\ifx\hspaceamount \undefined \def\hspaceamount#1#2{\kern.16667em} \fi % language specific
+\ifx\hspaceamount \undefined \def\hspaceamount#1#2{.16667em} \fi % language specific
%D \macros
%D {beginofsubsentencespacing,endofsubsentencespacing}
@@ -377,26 +377,26 @@
% test|^|test
% \stop
-\def\hyphenliketextmodediscretionary#1#2#3#4%
+\def\hyphenliketextmodediscretionary#1#2%
{\ifconditional\spaceafterdiscretionary
\prewordbreak\hbox{#1}\relax
\else\ifconditional\punctafterdiscretionary
\prewordbreak\hbox{#1}\relax
\else
- \prewordbreak\discretionary{#2}{#3}{#4}\postwordbreak % was prewordbreak
+ \prewordbreak#2\postwordbreak % was prewordbreak
\fi\fi}
\definetextmodediscretionary {}
- {\hyphenliketextmodediscretionary\compoundhyphen\compoundhyphen\empty\compoundhyphen}
+ {\hyphenliketextmodediscretionary\textmodehyphen\textmodehyphendiscretionary}
\definetextmodediscretionary -
- {\hyphenliketextmodediscretionary\hyphen\hyphen\empty\hyphen}
-
-\definetextmodediscretionary ~
- {\prewordbreak\discretionary{-}{}{\thinspace}\postwordbreak}
+ {\hyphenliketextmodediscretionary\normalhyphen\normalhyphendiscretionary}
\definetextmodediscretionary _
- {\hyphenliketextmodediscretionary\compoundhyphen\compoundhyphen\compoundhyphen\compoundhyphen}
+ {\hyphenliketextmodediscretionary\composedhyphen\composedhyphendiscretionary}
+
+\definetextmodediscretionary )
+ {\hyphenliketextmodediscretionary{)}{\discretionary{-)}{}{)}}}
\definetextmodediscretionary (
{\ifdim\lastskip>\zeropoint
@@ -405,8 +405,8 @@
\prewordbreak\discretionary{}{(-}{(}\prewordbreak
\fi}
-\definetextmodediscretionary )
- {\hyphenliketextmodediscretionary{)}{-)}{}{)}}
+\definetextmodediscretionary ~
+ {\prewordbreak\discretionary{-}{}{\thinspace}\postwordbreak}
\definetextmodediscretionary '
{\prewordbreak\discretionary{-}{}{'}\postwordbreak}
diff --git a/Master/texmf-dist/tex/context/base/lang-mis.mkiv b/Master/texmf-dist/tex/context/base/lang-mis.mkiv
new file mode 100644
index 00000000000..eb7bb1a04dc
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/lang-mis.mkiv
@@ -0,0 +1,683 @@
+%D \module
+%D [ file=lang-mis,
+%D version=1997.03.20, % used to be supp-lan.tex
+%D title=\CONTEXT\ Language Macros,
+%D subtitle=Compounds,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Language Macros / Compounds}
+
+%D \gdef\starttest
+%D {\blank
+%D \noindent
+%D \halign\bgroup\tt##\hskip2em&##\hskip2em&##\cr}
+%D
+%D \gdef\stoptest
+%D {\egroup
+%D \blank}
+%D
+%D \gdef\test#1%
+%D {\defconvertedargument\ascii{#1}\ascii&\hyphenatedword{#1}&#1\cr}
+
+\unprotect
+
+%D One of \TEX's strong points in building paragraphs is the way
+%D hyphenations are handled. Although for real good hyphenation
+%D of non||english languages some extensions to the program are
+%D needed, fairly good results can be reached with the standard
+%D mechanisms and an additional macro, at least in Dutch.
+
+%D \CONTEXT\ originates in the wish to typeset educational
+%D materials, especially in a technical environment. In
+%D production oriented environments, a lot of compound words
+%D are used. Because the Dutch language poses no limits on
+%D combining words, we often favor putting dashes between those
+%D words, because it facilitates reading, at least for those
+%D who are not that accustomed to it.
+%D
+%D In \TEX\ compound words, separated by a hyphen, are not
+%D hyphenated at all. In spite of the multiple pass paragraph
+%D typesetting this can lead to parts of words sticking into
+%D the margin. The solution lays in saying \type
+%D {spoelwater||terugwinunit} instead of \type
+%D {spoelwater-terugwinunit}. By using a one character command
+%D like \type {|}, delimited by the same character \type {|},
+%D we get ourselves both a decent visualization (in \TEXEDIT\
+%D and colored verbatim we color these commands yellow) and an
+%D efficient way of combining words.
+%D
+%D The sequence \type{||} simply leads to two words connected by
+%D a hyphen. Because we want to distinguish such a hyphen from
+%D the one inserted when \TEX\ hyphenates a word, we use a bit
+%D longer one.
+%D
+%D \hyphenation {spoel-wa-ter te-rug-win-unit}
+%D
+%D \starttest
+%D \test {spoelwater||terugwinunit}
+%D \stoptest
+%D
+%D As we already said, the \type{|} is a command. This commands
+%D accepts an optional argument before it's delimiter, which is
+%D also a \type{|}.
+%D
+%D \hyphenation {po-ly-meer che-mie}
+%D
+%D \starttest
+%D \test {polymeer|*|chemie}
+%D \stoptest
+%D
+%D Arguments like \type{*} are not interpreted and inserted
+%D directly, in contrary to arguments like:
+%D
+%D \starttest
+%D \test {polymeer|~|chemie}
+%D \test {|(|polymeer|)|chemie}
+%D \test {polymeer|(|chemie|)| }
+%D \stoptest
+%D
+%D Although such situations seldom occur |<|we typeset thousands
+%D of pages before we encountered one that forced us to enhance
+%D this mechanism|>| we also have to take care of comma's.
+%D
+%D \hyphenation {uit-stel-len}
+%D
+%D \starttest
+%D \test {op||, in|| en uitstellen}
+%D \stoptest
+%D
+%D The next special case (concerning quotes) was brought to my
+%D attention by Piet Tutelaers, one of the driving forces
+%D behind rebuilding hyphenation patterns for the dutch
+%D language.\footnote{In 1996 the spelling of the dutch
+%D language has been slightly reformed which made this topic
+%D actual again.} We'll also take care of this case.
+%D
+%D \starttest
+%D \test {AOW|'|er}
+%D \test {cd|'|tje}
+%D \test {ex|-|PTT|'|er}
+%D \test {rock|-|'n|-|roller}
+%D \stoptest
+%D
+%D Tobias Burnus pointed out that I should also support
+%D something like
+%D
+%D \starttest
+%D \test {well|_|known}
+%D \stoptest
+%D
+%D to stress the compoundness of hyphenated words.
+%D
+%D Of course we also have to take care of the special case:
+%D
+%D \starttest
+%D \test {text||color and ||font}
+%D \stoptest
+
+%D \macros
+%D {installdiscretionaries}
+%D
+%D The mechanism described here is one of the older inner parts
+%D of \CONTEXT. The most recent extensions concerns some
+%D special cases as well as the possibility to install other
+%D characters as delimiters. The prefered way of specifying
+%D compound words is using \type{||}, which is installed by:
+%D
+%D \starttyping
+%D \installdiscretionaries || -
+%D \stoptyping
+%D
+%D Some alternative definitions are:
+%D
+%D \startbuffer
+%D \installdiscretionaries ** -
+%D \installdiscretionaries ++ -
+%D \installdiscretionaries // -
+%D \installdiscretionaries ~~ -
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D after which we can say:
+%D
+%D \bgroup
+%D \getbuffer
+%D \starttest
+%D \test {test**test**test}
+%D \test {test++test++test}
+%D \test {test//test//test}
+%D \test {test~~test~~test}
+%D \stoptest
+%D \egroup
+
+%D \macros
+%D {compoundhyphen,
+%D beginofsubsentence,endofsubsentence}
+%D
+%D Now let's go to the macros. First we define some variables.
+%D In the main \CONTEXT\ modules these can be tuned by a setup
+%D command. Watch the (maybe) better looking compound hyphen.
+
+\ifx\compoundhyphen \undefined \def\compoundhyphen{\hbox{-\kern-.25ex-}} \fi
+
+\ifx\beginofsubsentence \undefined \def\beginofsubsentence{\hbox{---}} \fi
+\ifx\endofsubsentence \undefined \def\endofsubsentence {\hbox{---}} \fi
+
+%D The last two variables are needed for subsentences
+%D |<|like this one|>| which we did not yet mention.
+%D
+%D We want to enable breaking but at the same time don't want
+%D compound characters like |-| or || to be separated from the
+%D words. \TEX\ hackers will recognise the next two macro's:
+
+\ifx\prewordbreak \undefined \def\prewordbreak {\penalty\plustenthousand\hskip\zeropoint\relax} \fi
+%ifx\postwordbreak \undefined \def\postwordbreak{\penalty\zerocount \prewordbreak } \fi
+\ifx\postwordbreak \undefined \def\postwordbreak{\penalty\zerocount \hskip\zeropoint\relax} \fi
+
+\ifx\hspaceamount \undefined \def\hspaceamount#1#2{.16667em} \fi % language specific
+
+%D \macros
+%D {beginofsubsentencespacing,endofsubsentencespacing}
+%D
+%D In the previous macros we provided two hooks which can be
+%D used to support nested sub||sentences. In \CONTEXT\ these
+%D hooks are used to insert a small space when needed.
+
+\ifx\beginofsubsentencespacing\undefined \let\beginofsubsentencespacing\relax \fi
+\ifx\endofsubsentencespacing \undefined \let\endofsubsentencespacing \relax \fi
+
+%D The following piece of code is a torture test compound
+%D hndling. The \type {\relax} before the \type {\ifmmode} is
+%D needed because of the alignment scanner (in \ETEX\ this
+%D problem is not present because there a protected macro is
+%D not expanded. Thanks to Tobias Burnus for providing this
+%D example.
+%D
+%D \startformula
+%D \left|f(x_n)-{1\over2}\right| =
+%D {\cases{|{1\over2}-x_n| &for $0\le x_n < {1\over2}$\cr
+%D |x_n-{1\over2}| &for ${1\over2}<x_n\le1$ \cr}}
+%D \stopformula
+
+\def\@tmd@action@{@tmd@a@}
+\def\@tmd@text@ {@tmd@t@}
+\def\@tmd@math@ {@tmd@m@}
+\def\@tmd@both@ {@tmd@b@}
+
+\def\installdiscretionary#1#2%
+ {\setevalue{\@tmd@math@\detokenize{#1}}{\detokenize{#1}}%
+ \setvalue {\@tmd@text@\detokenize{#1}}{#2}%
+ \setvalue {\@tmd@both@\detokenize{#1}}{\discretionarycommand#1}%
+ \scratchcounter\expandafter`\detokenize{#1}%
+ \@EA\uedcatcodecommand\@EA\ctxcatcodes\@EA\scratchcounter\csname\@tmd@both@\detokenize{#1}\endcsname}
+
+\def\handlemathmodediscretionary#1{\executeifdefined{\@tmd@math@\detokenize{#1}}\donothing}
+\def\handletextmodediscretionary#1{\executeifdefined{\@tmd@text@\detokenize{#1}}\donothing}
+
+\def\installdiscretionaries#1#2{\writestatus\m!systems{use \string \installdiscretionary}} % obsolete
+
+\chardef\discretionarymode\plusone
+
+\def\ignorediscretionaries
+ {\chardef\discretionarymode\zerocount}
+
+\def\discretionarycommand
+ {% if direct if, we need \relax for lookahead in math mode
+ \csname
+ \ifcase\discretionarymode
+ \strippedcsname\dononemodediscretionary
+ \else\ifmmode
+ \strippedcsname\domathmodediscretionary
+ \else
+ \strippedcsname\dotextmodediscretionary
+ \fi\fi
+ \endcsname}
+
+\def\dononemodediscretionary#1%
+ {\detokenize{#1}}
+
+%D The macro \type{\checkbeforediscretionary} takes care of
+%D loners like \type{||word}, while it counterpart
+%D \type{\checkafterdiscretionary} is responsible for handling
+%D the comma.
+
+\newsignal\compoundbreakpoint
+
+\newconditional\punctafterdiscretionary
+\newconditional\spaceafterdiscretionary
+
+\def\checkbeforediscretionary
+ {\ifvmode\dontleavehmode\fi
+ \ifhmode
+ \begingroup
+ \setbox\scratchbox\lastbox
+ \ifzeropt\wd\scratchbox
+ \let\postwordbreak\prewordbreak
+ \fi
+ \box\scratchbox\relax
+ \endgroup
+ \fi}
+
+\def\checkafterdiscretionary
+ {\setfalse\punctafterdiscretionary
+ \setfalse\spaceafterdiscretionary
+ \ifx\blankspace\nextnext \settrue \spaceafterdiscretionary \else
+ \ifx\space \nextnext \settrue \spaceafterdiscretionary \else
+ \ifx .\nextnext \settrue \punctafterdiscretionary \else
+ \ifx ,\nextnext \settrue \punctafterdiscretionary \else
+ \ifx :\nextnext \settrue \punctafterdiscretionary \else
+ \ifx ;\nextnext \settrue \punctafterdiscretionary \fi\fi\fi\fi\fi\fi}
+
+\let\domathmodediscretionary\handlemathmodediscretionary
+
+\def\dotextmodediscretionary#1%
+ {\bgroup
+ \let\nextnextnext\egroup
+ \def\next##1#1%
+ {\def\next{\activedododotextmodediscretionary#1{##1}}%
+ \futurelet\nextnext\next}%
+ \next}
+
+\def\activedododotextmodediscretionary#1#2%
+ {\edef\discretionarytoken{\detokenize{#2}}%
+ \def\textmodediscretionary{\handletextmodediscretionary{#1}}%
+ \checkafterdiscretionary
+ \ifx\discretionarytoken\empty
+ \ifx#1\nextnext % takes care of ||| and +++ and ......
+ \ifcsname\@tmd@action@\string#1\endcsname
+ \csname\@tmd@action@\string#1\endcsname
+ \else\ifconditional\spaceafterdiscretionary
+ \prewordbreak\hbox{\string#1}\relax
+ \else\ifconditional\punctafterdiscretionary
+ \prewordbreak\hbox{\string#1}\relax
+ \else
+ \prewordbreak\hbox{\string#1}\prewordbreak
+ \fi\fi\fi
+ \def\nextnextnext{\afterassignment\egroup\let\next=}%
+ \else
+ \checkbeforediscretionary
+ % the next line has been changed (20050203)
+ % \prewordbreak\hbox{\textmodediscretionary\nextnext}\allowbreak\postwordbreak
+ % but an hbox blocks a possible \discretionary
+ \ifcsname\@tmd@action@\endcsname
+ \csname\@tmd@action@\endcsname
+ \else\ifconditional\spaceafterdiscretionary
+ \prewordbreak\textmodediscretionary\relax
+ \else\ifconditional\punctafterdiscretionary
+ \prewordbreak\textmodediscretionary\relax
+ \else
+ \prewordbreak\textmodediscretionary\prewordbreak
+ \fi\fi\fi
+ % \prewordbreak\textmodediscretionary\nextnext\allowbreak\postwordbreak
+ \fi
+ \else\ifcsname\@tmd@action@\discretionarytoken\endcsname
+ \csname\@tmd@action@\discretionarytoken\endcsname
+ \else
+ \checkbeforediscretionary
+ \ifconditional\spaceafterdiscretionary
+ \prewordbreak\hbox{#2}\relax
+ \else\ifconditional\punctafterdiscretionary
+ \prewordbreak\hbox{#2}\relax
+ \else
+ \prewordbreak\discretionary{\hbox{#2}}{}{\hbox{#2}}\allowbreak\postwordbreak
+ \fi\fi
+ \fi\fi
+ \nextnextnext} % lookahead in commands
+
+%D \macros
+%D {directdiscretionary}
+%D
+%D In those situations where the nature of characters is
+%D less predictable, we can use the more direct approach:
+
+\def\directdiscretionary
+ {\csname
+ \ifcase\discretionarymode
+ \strippedcsname\dononemodediscretionary
+ \else
+ \strippedcsname\dodirectdiscretionary
+ \fi
+ \endcsname}
+
+\def\indirectdiscretionary
+ {\csname
+ \ifcase\discretionarymode
+ \strippedcsname\dononemodediscretionary
+ \else
+ \strippedcsname\doindirectdiscretionary
+ \fi
+ \endcsname}
+
+\unexpanded\def\dodirectdiscretionary#1%
+ {\edef\discretionarytoken{\detokenize{#1}}%
+ \let\textmodediscretionary\compoundhyphen
+ \executeifdefined{\@tmd@action@\discretionarytoken}{\indirectdiscretionary{#1}}}
+
+\unexpanded\def\doindirectdiscretionary#1%
+ {\prewordbreak\discretionary{\hbox{#1}}{}{\hbox{#1}}\allowbreak\postwordbreak}
+
+\def\definetextmodediscretionary #1
+ {\setvalue{\@tmd@action@\detokenize{#1}}}
+
+% \start \hsize 1mm
+% test |||test test|||, test\blank
+% test test|-|, test|-| and test|-|test\blank
+% test test|_|, test|_| and test|_|test\blank
+% test cd|'|tje\blank
+% test |(|test test|)|, test\blank
+% test test test|x|, test\blank
+% test|~|test
+% test|^|test
+% \stop
+
+\def\hyphenliketextmodediscretionary#1#2%
+ {\ifconditional\spaceafterdiscretionary
+ \prewordbreak\hbox{#1}\relax
+ \else\ifconditional\punctafterdiscretionary
+ \prewordbreak\hbox{#1}\relax
+ \else
+ \prewordbreak#2\postwordbreak % was prewordbreak
+ \fi\fi}
+
+\definetextmodediscretionary {}
+ {\hyphenliketextmodediscretionary\textmodehyphen\textmodehyphendiscretionary}
+
+\definetextmodediscretionary -
+ {\hyphenliketextmodediscretionary\normalhyphen\normalhyphendiscretionary}
+
+\definetextmodediscretionary _
+ {\hyphenliketextmodediscretionary\composedhyphen\composedhyphendiscretionary}
+
+\definetextmodediscretionary )
+ {\hyphenliketextmodediscretionary{)}{\discretionary{-)}{}{)}}}
+
+\definetextmodediscretionary (
+ {\ifdim\lastskip>\zeropoint
+ (\prewordbreak
+ \else
+ \prewordbreak\discretionary{}{(-}{(}\prewordbreak
+ \fi}
+
+\definetextmodediscretionary ~
+ {\prewordbreak\discretionary{-}{}{\thinspace}\postwordbreak}
+
+\definetextmodediscretionary '
+ {\prewordbreak\discretionary{-}{}{'}\postwordbreak}
+
+\definetextmodediscretionary ^
+ {\prewordbreak\discretionary{\hbox{$|$}}{}{\hbox{$|$}}%
+ \allowbreak\postwordbreak} % bugged
+
+\definetextmodediscretionary <
+ {\beginofsubsentence\prewordbreak\beginofsubsentencespacing}
+
+\definetextmodediscretionary >
+ {\endofsubsentencespacing\prewordbreak\endofsubsentence}
+
+\definetextmodediscretionary =
+ {\prewordbreak\midsentence\prewordbreak} % {\prewordbreak\compoundhyphen}
+
+% french
+
+\definetextmodediscretionary : {\removeunwantedspaces\prewordbreak\kern\hspaceamount\empty{:}:}
+\definetextmodediscretionary ; {\removeunwantedspaces\prewordbreak\kern\hspaceamount\empty{;};}
+\definetextmodediscretionary ? {\removeunwantedspaces\prewordbreak\kern\hspaceamount\empty{?}?}
+\definetextmodediscretionary ! {\removeunwantedspaces\prewordbreak\kern\hspaceamount\empty{!}!}
+
+\definetextmodediscretionary *
+ {\prewordbreak\discretionary{-}{}{\kern.05em}\prewordbreak}
+
+% spanish
+
+\definetextmodediscretionary ?? {\prewordbreak\questiondown}
+\definetextmodediscretionary !! {\prewordbreak\exclamdown}
+
+% \ifx\normalcompound\undefined \let\normalcompound=| \fi
+
+%D \installdiscretionary | +
+%D \installdiscretionary + =
+
+\def\defaultdiscretionaryhyphen{\compoundhyphen}
+
+\installdiscretionary | \defaultdiscretionaryhyphen % installs in ctx and prt will fall back on it
+
+%D \macros
+%D {fakecompoundhyphen}
+%D
+%D In headers and footers as well as in active pieces of text
+%D we need a dirty hack. Try to imagine what is needed to
+%D savely break the next text across a line and at the same
+%D time make the words interactive.
+%D
+%D \starttyping
+%D \goto{Some||Long||Word}
+%D \stoptyping
+
+\def\fakecompoundhyphen
+ {\def\|{\mathortext\vert\dofakecompoundhyphen}}
+
+\def\dofakecompoundhyphen
+ {\def##1|%
+ {\doifelsenothing{##1}\compoundhyphen{##1}%
+ \kern\compoundbreakpoint\allowbreak}}
+
+%D \macros
+%D {midworddiscretionary}
+%D
+%D If needed, one can add a discretionary hyphen using \type
+%D {\midworddiscretionary}. This macro does the same as
+%D \PLAIN\ \TEX's \type {\-}, but, like the ones implemented
+%D earlier, this one also looks ahead for spaces and grouping
+%D tokens.
+
+\def\midworddiscretionary
+ {\futurelet\next\domidworddiscretionary}
+
+\def\domidworddiscretionary
+ {\ifx\next\blankspace\else
+ \ifx\next\bgroup \else
+ \ifx\next\egroup \else
+ \discretionary{-}{}{}%
+ \fi\fi\fi}
+
+%D \macros
+%D {installcompoundcharacter}
+%D
+%D When Tobias Burnus started translating the dutch manual of
+%D \PPCHTEX\ into german, he suggested to let \CONTEXT\ support
+%D the \type{german.sty} method of handling compound
+%D characters, especially the umlaut. This package is meant for
+%D use with \PLAIN\ \TEX\ as well as \LATEX.
+%D
+%D I decided to implement compound character support as
+%D versatile as possible. As a result one can define his own
+%D compound character support, like:
+%D
+%D \starttyping
+%D \installcompoundcharacter "a {\"a}
+%D \installcompoundcharacter "e {\"e}
+%D \installcompoundcharacter "i {\"i}
+%D \installcompoundcharacter "u {\"u}
+%D \installcompoundcharacter "o {\"o}
+%D \installcompoundcharacter "s {\SS}
+%D \stoptyping
+%D
+%D or even
+%D
+%D \starttyping
+%D \installcompoundcharacter "ck {\discretionary {k-}{k}{ck}}
+%D \installcompoundcharacter "ff {\discretionary{ff-}{f}{ff}}
+%D \stoptyping
+%D
+%D The support is not limited to alphabetic characters, so the
+%D next definition is also valid.
+%D
+%D \starttyping
+%D \installcompoundcharacter ". {.\doifnextcharelse{\spacetoken}{}{\kern.125em}}
+%D \stoptyping
+%D
+%D The implementation looks familiar and uses the same tricks as
+%D mentioned earlier in this module. We take care of two
+%D arguments, which complicates things a bit.
+
+\def\@nc@{@nc@} % normal character
+\def\@cc@{@cc@} % compound character
+\def\@cs@{@cs@} % compound characters
+\def\@cx@{@cx@} % compound definition
+
+%D When we started working on MK IV code, we needed a different
+%D approach for defining the active character itself. In MK II as
+%D well as in MK IV we now use the catcode vectors.
+
+\chardef\compoundcharactermode\plusone
+
+\def\installcompoundcharacter #1#2#3 #4% {#4} no grouping
+ {\ifcase\compoundcharactermode
+ % ignore mode
+ \else
+ \chardef\thecompoundcharacter`#1%
+ \@EA\chardef\csname\@nc@\string#1\endcsname\thecompoundcharacter
+ \def\!!stringa{#3}%
+ \@EA\def\csname\ifx\!!stringa\empty\@cc@\else\@cs@\fi\detokenize{#1#2#3}\endcsname{#4}%
+ \setevalue{\@cx@\detokenize{#1}}{\noexpand\handlecompoundcharacter{\detokenize{#1}}}% beter nr's
+% \@EA\letcatcodecommand\@EA\prtcatcodes\@EA\thecompoundcharacter\csname\@cx@\detokenize{#1}\endcsname
+% \@EA\letcatcodecommand\@EA\texcatcodes\@EA\thecompoundcharacter\csname\@cx@\detokenize{#1}\endcsname
+ \@EA\letcatcodecommand\@EA\ctxcatcodes\@EA\thecompoundcharacter\csname\@cx@\detokenize{#1}\endcsname
+ \fi}
+
+%D In order to serve the language specific well, we will introduce
+%D a namespace:
+
+% \ifx\currentlanguage\undefined
+ \let\compoundcharacterclass\empty
+% \else
+% \def\compoundcharacterclass{\currentlanguage}
+% \fi
+
+\def\@cc@{@cc@\compoundcharacterclass} % compound character
+\def\@cs@{@cs@\compoundcharacterclass} % compound characters
+
+%D We can also ignore definitions (needed in for instance \XML). Beware,
+%D this macro is supposed to be used grouped!
+
+\def\ignorecompoundcharacter
+ {\chardef\compoundcharactermode\zerocount}
+
+\let\restorecompoundcharacter \gobbleoneargument % obsolete
+\let\enableactivediscretionaries\relax % obsolete
+
+%D In handling the compound characters we have to take care of
+%D \type{\bgroup} and \type{\egroup} tokens, so we end up with
+%D a multi||step interpretation macro. We look ahead for a
+%D \type{\bgroup}, \type{\egroup} or \type{\blankspace}. Being
+%D no user of this mechanism, the credits for testing them goes
+%D to Tobias Burnus, the first german user of \CONTEXT.
+%D
+%D We define these macros as \type{\long} because we can
+%D expect \type{\par} tokens. We need to look into the future
+%D with \type{\futurelet} to prevent spaces from
+%D disappearing.
+
+\def\handlecompoundcharacter#1%
+ {\def\xhandlecompoundcharacter{\dohandlecompoundcharacter{#1}}%
+ \futurelet\next\xhandlecompoundcharacter}
+
+\def\dohandlecompoundcharacter
+ {\ifx\next\bgroup
+ %\@EA\dodohandlecompoundcharacter % handle "{ee} -> \"ee
+ %\@EA\gobbleoneargument % forget "{ee} -> ee
+ \@EA\handlecompoundcharacterone % ignore "{ee} -> "ee
+ \else\ifx\next\egroup
+ \@EAEAEA\donohandlecompoundcharacter
+ \else\ifx\next\blankspace
+ \@EA\@EAEAEA\@EA\donohandlecompoundcharacter
+ \else
+ \@EA\@EAEAEA\@EA\dodohandlecompoundcharacter
+ \fi\fi\fi}
+
+\def\donohandlecompoundcharacter#1{\csname\@nc@\string#1\endcsname}
+
+\def\dododohandlecompoundcharacter
+ {\ifx\next\bgroup
+ \@EA\handlecompoundcharacterone
+ \else\ifx\next\egroup
+ \@EAEAEA\handlecompoundcharacterone
+ \else\ifx\next\blankspace
+ \@EA\@EAEAEA\@EA\handlecompoundcharacterone
+ \else
+ \@EA\@EAEAEA\@EA\handlecompoundcharactertwo
+ \fi\fi\fi}
+
+\def\dodohandlecompoundcharacter#1#2% preserve space
+ {\def\xdodohandlecompoundcharacter{\dododohandlecompoundcharacter#1#2}%
+ \futurelet\next\xdodohandlecompoundcharacter}
+
+%D Besides taken care of the grouping and space tokens, we have
+%D to deal with three situations. First we look if the next
+%D character equals the first one, if so, then we just insert
+%D the original. Next we look if indeed a compound character is
+%D defined. We either execute the compound character or just
+%D insert the first. So we have
+%D
+%D \starttyping
+%D <key><key> <key><known> <key><unknown>
+%D \stoptyping
+%D
+%D In later modules we will see how these commands are used.
+
+\long\def\handlecompoundcharacterone#1#2%
+ {\if\string#1\string#2% was: \ifx#1#2%
+ \def\next{\csname\@nc@\string#1\endcsname}%
+ \else\ifcsname\@cc@\string#1\string#2\endcsname
+ \def\next{\csname\@cc@\string#1\string#2\endcsname}%
+ \else
+ \def\next{\csname\@nc@\string#1\endcsname#2}%
+ \fi\fi
+ \next}
+
+\long\def\handlecompoundcharactertwo#1#2#3%
+ {\if\string#1\string#2%
+ \def\next{\csname\@nc@\string#1\endcsname#3}%
+ \else\ifcsname\@cs@\string#1\string#2\string#3\endcsname
+ \def\next{\csname\@cs@\string#1\string#2\string#3\endcsname}%
+ \else\ifcsname\@cc@\string#1\string#2\endcsname
+ \def\next{\csname\@cc@\string#1\string#2\endcsname#3}%
+ \else
+ \def\next{\csname\@nc@\string#1\endcsname#2#3}%
+ \fi\fi\fi
+ \next}
+
+%D For very obscure applications (see for an application \type
+%D {lang-sla.tex}) we provide:
+
+\def\simplifiedcompoundcharacter#1#2%
+ {\ifcsname\@cc@\string#1\string#2\endcsname
+ \@EA\@EA\@EA\firstofoneargument\csname\@cc@\string#1\string#2\endcsname
+ \else
+ #2%
+ \fi}
+
+%D \macros
+%D {disablediscretionaries,disablecompoundcharacter}
+%D
+%D Occasionally we need to disable this mechanism. For the
+%D moment we assume that \type {|} is used.
+
+\let\disablediscretionaries \ignorediscretionaries
+\let\disablecompoundcharacters\ignorecompoundcharacter
+
+%D \macros
+%D {normalcompound}
+%D
+%D Handy in for instance XML. (Kind of obsolete)
+
+\ifx\normalcompound\undefined \let\normalcompound=| \fi
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/lang-run.tex b/Master/texmf-dist/tex/context/base/lang-run.mkii
index 4b332cfb975..4b332cfb975 100644
--- a/Master/texmf-dist/tex/context/base/lang-run.tex
+++ b/Master/texmf-dist/tex/context/base/lang-run.mkii
diff --git a/Master/texmf-dist/tex/context/base/lang-sla.tex b/Master/texmf-dist/tex/context/base/lang-sla.tex
index 268a9c33279..cd3c75b61c5 100644
--- a/Master/texmf-dist/tex/context/base/lang-sla.tex
+++ b/Master/texmf-dist/tex/context/base/lang-sla.tex
@@ -32,7 +32,7 @@
% Lusatian/Sorbian/Wendish, Polish, Slovak, Albanian,
% Illyrian, Armenian
-\writestatus{loading}{Slavic Languages}
+\writestatus{loading}{ConTeXt Language Macros / Slavic Languages}
\unprotect
@@ -77,10 +77,11 @@
\c!leftquotation=\lowerleftdoubleninequote,
\c!rightquotation=\upperrightdoubleninequote,
\c!date={\v!day,{.},\ ,\v!month,\ ,\v!year},
- \c!state=\v!stop]
+ \s!mapping={pl0,ec,qx},
+ \s!encoding={pl0,ec,qx}]
\installlanguage
- [\s!cz]
+ [\s!cs]
[\c!spacing=\v!packed,
\c!leftsentence=\thickglue--\thickglue\penalty-20\relax, % hh, \relax added
\c!rightsentence=\thickglue--\thickglue\penalty-20\relax,
@@ -91,7 +92,8 @@
\c!leftquotation=\lowerleftdoubleninequote,
\c!rightquotation=\upperrightdoublesixquote,
\c!date={\v!day,{.\,},\v!month,\ ,\v!year},
- \c!state=\v!stop]
+ \s!mapping={il2,ec},
+ \s!encoding={il2,ec}]
\installlanguage
[\s!sk]
@@ -105,7 +107,8 @@
\c!leftquotation=\upperleftdoublesixquote,
\c!rightquotation=\upperrightdoubleninequote,
\c!date={\v!day,{.\,},\v!month,\ ,\v!year},
- \c!state=\v!stop]
+ \s!mapping={il2,ec},
+ \s!encoding={il2,ec}]
\installlanguage
[\s!hr]
@@ -119,7 +122,8 @@
\c!leftquotation=\upperleftdoublesixquote,
\c!rightquotation=\upperrightdoubleninequote,
\c!date={\v!day,\ ,\v!month,\ ,\v!year},
- \c!state=\v!stop]
+ \s!mapping=ec,
+ \s!encoding=ec]
%D The default quotation marks for Slovenian were chosen as
%D \lowerleftdoubleninequote these ones\upperrightdoublesixquote\
@@ -168,167 +172,148 @@
\c!leftquotation=\rightguillemot,
\c!rightquotation=\leftguillemot,
\c!date={\v!day,{.},\ ,\v!month,\ ,\v!year},
- \c!state=\v!stop]
+ \s!mapping=ec,
+ \s!encoding=ec]
\installlanguage [polish] [\s!pl]
-\installlanguage [czech] [\s!cz]
+\installlanguage [czech] [\s!cs]
\installlanguage [slovak] [\s!sk]
\installlanguage [croatian] [\s!hr]
\installlanguage [slovenian] [\s!sl]
-\installlanguage [slovene] [\s!sl] % both possible
-
-% If this is really needed we should make an enco-fhr.
-%
-% \startlanguagespecifics[\s!hr]
-%
-% %\installcompoundcharacter /, {\handlequotation\c!leftquotation}
-% %\installcompoundcharacter /' {\handlequotation\c!rightquotation}
-%
-% \def\setupHRlanguage%
-% {\setuplanguage
-% [\s!hr]
-% [\c!leftsentence=\leftguillemot,
-% \c!rightsentence=\rightguillemot,
-% \c!leftsubsentence=\leftsubguillemot,
-% \c!rightsubsentence=\rightsubguillemot]}
-%
-% \installcompoundcharacter /< {{\setupHRlanguage|<|}}
-% \installcompoundcharacter /> {{\setupHRlanguage|>|}}
-%
-% \installcompoundcharacter /- {|-|}
-%
-% \stoplanguagespecifics
+\installlanguage [slovene] [\s!sl] % both possible (mojca: still needed?)
+
+\installlanguage [cz] [\s!cs]
% labels
\setupheadtext [\s!pl] [\v!content=Spis tre\sacute ci]
-\setupheadtext [\s!cz] [\v!content=Obsah]
+\setupheadtext [\s!cs] [\v!content=Obsah]
\setupheadtext [\s!sk] [\v!content=Obsah]
\setupheadtext [\s!hr] [\v!content=Sadr\zcaron aj]
\setupheadtext [\s!sl] [\v!content=Kazalo]
\setupheadtext [\s!pl] [\v!tables=Tabele]
-\setupheadtext [\s!cz] [\v!tables=Tabulek]
+\setupheadtext [\s!cs] [\v!tables=Tabulek]
\setupheadtext [\s!sk] [\v!tables=Tabuliek]
\setupheadtext [\s!hr] [\v!tables=Tablice]
\setupheadtext [\s!sl] [\v!tables=Tabele]
\setupheadtext [\s!pl] [\v!figures=Ilustracje]
-\setupheadtext [\s!cz] [\v!figures=Obr\aacute zk\uring]
+\setupheadtext [\s!cs] [\v!figures=Obr\aacute zk\uring]
\setupheadtext [\s!sk] [\v!figures=Obr\aacute zkov]
\setupheadtext [\s!hr] [\v!figures=Slike]
\setupheadtext [\s!sl] [\v!figures=Slike]
\setupheadtext [\s!pl] [\v!graphics=Grafika]
-\setupheadtext [\s!cz] [\v!graphics=Graf]
+\setupheadtext [\s!cs] [\v!graphics=Graf]
\setupheadtext [\s!sk] [\v!graphics=Graf]
\setupheadtext [\s!hr] [\v!graphics=Slike]
\setupheadtext [\s!sl] [\v!graphics=Slike]
\setupheadtext [\s!pl] [\v!intermezzi=Intermezza]
-\setupheadtext [\s!cz] [\v!intermezzi=Intermezza]
+\setupheadtext [\s!cs] [\v!intermezzi=Intermezza]
\setupheadtext [\s!sk] [\v!intermezzi=Intermezz\aacute]
\setupheadtext [\s!hr] [\v!intermezzi=Intermezza]
\setupheadtext [\s!sl] [\v!intermezzi=Intermezzi]
\setupheadtext [\s!pl] [\v!index=Indeks]
-\setupheadtext [\s!cz] [\v!index=Rejst\rcaron\iacute k]
+\setupheadtext [\s!cs] [\v!index=Rejst\rcaron\iacute k]
\setupheadtext [\s!sk] [\v!index=Zoznam]
\setupheadtext [\s!hr] [\v!index=Indeks]
\setupheadtext [\s!sl] [\v!index=Stvarno kazalo]
\setupheadtext [\s!pl] [\v!abbreviations=Skr\oacute cenie]
-\setupheadtext [\s!cz] [\v!abbreviations=Zkratky]
+\setupheadtext [\s!cs] [\v!abbreviations=Zkratky]
\setupheadtext [\s!sk] [\v!abbreviations=Skratky]
\setupheadtext [\s!hr] [\v!abbreviations=Kratice]
\setupheadtext [\s!sl] [\v!abbreviations=Kratice]
\setupheadtext [\s!pl] [\v!logos=Znaki]
-\setupheadtext [\s!cz] [\v!logos=Loga]
+\setupheadtext [\s!cs] [\v!logos=Loga]
\setupheadtext [\s!sk] [\v!logos=Log\aacute]
\setupheadtext [\s!hr] [\v!logos=Znakovi]
\setupheadtext [\s!sl] [\v!logos=Logotipi]
\setupheadtext [\s!pl] [\v!units=Jednostki]
-\setupheadtext [\s!cz] [\v!units=Jednotky]
+\setupheadtext [\s!cs] [\v!units=Jednotky]
\setupheadtext [\s!sk] [\v!units=Jednotky]
\setupheadtext [\s!hr] [\v!units=Jednostki]
\setupheadtext [\s!sl] [\v!units=Enote]
\setuplabeltext [\s!pl] [\v!table=Tabela ]
-\setuplabeltext [\s!cz] [\v!table=Tabulka ]
+\setuplabeltext [\s!cs] [\v!table=Tabulka ]
\setuplabeltext [\s!sk] [\v!table=Tabu\lcaron ka ]
\setuplabeltext [\s!hr] [\v!table=T\aacute bl\aacute zat ] % [\v!table=Tablica ]
\setuplabeltext [\s!sl] [\v!table=Tabela ]
\setuplabeltext [\s!pl] [\v!figure=Ilustracja ]
-\setuplabeltext [\s!cz] [\v!figure=Obr\aacute zek ]
+\setuplabeltext [\s!cs] [\v!figure=Obr\aacute zek ]
\setuplabeltext [\s!sk] [\v!figure=Obr\aacute zok ]
\setuplabeltext [\s!hr] [\v!figure=Slika ]
\setuplabeltext [\s!sl] [\v!figure=Slika ]
\setuplabeltext [\s!pl] [\v!intermezzo=Intermezzo ]
-\setuplabeltext [\s!cz] [\v!intermezzo=Intermezzo ]
+\setuplabeltext [\s!cs] [\v!intermezzo=Intermezzo ]
\setuplabeltext [\s!sk] [\v!intermezzo=Intermezzo ]
\setuplabeltext [\s!hr] [\v!intermezzo=Intermezzo ]
\setuplabeltext [\s!sl] [\v!intermezzo=Intermezzo ]
\setuplabeltext [\s!pl] [\v!graphic=Grafika ]
-\setuplabeltext [\s!cz] [\v!graphic=Graf ]
+\setuplabeltext [\s!cs] [\v!graphic=Graf ]
\setuplabeltext [\s!sk] [\v!graphic=Graf ]
\setuplabeltext [\s!hr] [\v!graphic=Slika ]
\setuplabeltext [\s!sl] [\v!graphic=Slika ]
\setuplabeltext [\s!pl] [\v!chapter=] % Rozdzia\l
-\setuplabeltext [\s!cz] [\v!chapter=] % Kapitola
+\setuplabeltext [\s!cs] [\v!chapter=] % Kapitola
\setuplabeltext [\s!sk] [\v!chapter=] % Kapitola
\setuplabeltext [\s!hr] [\v!chapter=] % Rozdzia\l
\setuplabeltext [\s!sl] [\v!chapter=] % Poglavje
\setuplabeltext [\s!pl] [\v!section=] % Podrozdzia\l
-\setuplabeltext [\s!cz] [\v!section=] % Sekce
+\setuplabeltext [\s!cs] [\v!section=] % Sekce
\setuplabeltext [\s!sk] [\v!section=] % Sekcia
\setuplabeltext [\s!hr] [\v!section=] % Podrozdzia\l
\setuplabeltext [\s!sl] [\v!section=]
\setuplabeltext [\s!pl] [\v!subsection=]
-\setuplabeltext [\s!cz] [\v!subsection=] % Podsekce
+\setuplabeltext [\s!cs] [\v!subsection=] % Podsekce
\setuplabeltext [\s!sk] [\v!subsection=] % Podsekcia
\setuplabeltext [\s!hr] [\v!subsection=]
\setuplabeltext [\s!sl] [\v!subsection=]
\setuplabeltext [\s!pl] [\v!subsubsection=]
-\setuplabeltext [\s!cz] [\v!subsubsection=] % Podpodsekce
+\setuplabeltext [\s!cs] [\v!subsubsection=] % Podpodsekce
\setuplabeltext [\s!sk] [\v!subsubsection=] % Podpodsekcia
\setuplabeltext [\s!hr] [\v!subsubsection=]
\setuplabeltext [\s!sl] [\v!subsubsection=]
\setuplabeltext [\s!pl] [\v!subsubsubsection=]
-\setuplabeltext [\s!cz] [\v!subsubsubsection=] % Podpodpodsekce
+\setuplabeltext [\s!cs] [\v!subsubsubsection=] % Podpodpodsekce
\setuplabeltext [\s!sk] [\v!subsubsubsection=] % Podpodpodsekcia
\setuplabeltext [\s!hr] [\v!subsubsubsection=]
\setuplabeltext [\s!sl] [\v!subsubsubsection=]
\setuplabeltext [\s!pl] [\v!appendix=] % Dodatek
-\setuplabeltext [\s!cz] [\v!appendix=P\rcaron\iacute loha ]
+\setuplabeltext [\s!cs] [\v!appendix=P\rcaron\iacute loha ]
\setuplabeltext [\s!sk] [\v!appendix=Pr\iacute loha ]
\setuplabeltext [\s!hr] [\v!appendix=Dodatak ]
\setuplabeltext [\s!sl] [\v!appendix=Dodatek ]
\setuplabeltext [\s!pl] [\v!part=Ust\eogonek p ]
-\setuplabeltext [\s!cz] [\v!part=\Ccaron \aacute st ]
+\setuplabeltext [\s!cs] [\v!part=\Ccaron \aacute st ]
\setuplabeltext [\s!sk] [\v!part=\Ccaron as\tcaron{} ]
\setuplabeltext [\s!hr] [\v!part=Dio ]
\setuplabeltext [\s!sl] [\v!part=Del ]
\setuplabeltext [\s!pl] [\v!line=wiersz ]
-\setuplabeltext [\s!cz] [\v!line=\rcaron\aacute dek ]
+\setuplabeltext [\s!cs] [\v!line=\rcaron\aacute dek ]
\setuplabeltext [\s!sk] [\v!line=riadok ]
\setuplabeltext [\s!hr] [\v!line=red ]
\setuplabeltext [\s!sl] [\v!line=vrstica ]
\setuplabeltext [\s!pl] [\v!lines=wiersze ]
-\setuplabeltext [\s!cz] [\v!lines=\rcaron\aacute dky ]
+\setuplabeltext [\s!cs] [\v!lines=\rcaron\aacute dky ]
\setuplabeltext [\s!sk] [\v!lines=riadky ]
\setuplabeltext [\s!hr] [\v!lines=redovi ]
\setuplabeltext [\s!sl] [\v!lines=vrstice ]
@@ -346,18 +331,18 @@
\setuplabeltext [\s!pl] [\v!november=listopada]
\setuplabeltext [\s!pl] [\v!december=grudnia]
-\setuplabeltext [\s!cz] [\v!january=ledna]
-\setuplabeltext [\s!cz] [\v!february=\uacute nora]
-\setuplabeltext [\s!cz] [\v!march=b\rcaron ezna]
-\setuplabeltext [\s!cz] [\v!april=dubna]
-\setuplabeltext [\s!cz] [\v!may=kv\ecaron tna]
-\setuplabeltext [\s!cz] [\v!june=\ccaron ervna]
-\setuplabeltext [\s!cz] [\v!july=\ccaron ervence]
-\setuplabeltext [\s!cz] [\v!august=srpna]
-\setuplabeltext [\s!cz] [\v!september=z\aacute\rcaron\iacute{}]
-\setuplabeltext [\s!cz] [\v!october=\rcaron\iacute jna]
-\setuplabeltext [\s!cz] [\v!november=listopadu]
-\setuplabeltext [\s!cz] [\v!december=prosince]
+\setuplabeltext [\s!cs] [\v!january=ledna]
+\setuplabeltext [\s!cs] [\v!february=\uacute nora]
+\setuplabeltext [\s!cs] [\v!march=b\rcaron ezna]
+\setuplabeltext [\s!cs] [\v!april=dubna]
+\setuplabeltext [\s!cs] [\v!may=kv\ecaron tna]
+\setuplabeltext [\s!cs] [\v!june=\ccaron ervna]
+\setuplabeltext [\s!cs] [\v!july=\ccaron ervence]
+\setuplabeltext [\s!cs] [\v!august=srpna]
+\setuplabeltext [\s!cs] [\v!september=z\aacute\rcaron\iacute{}]
+\setuplabeltext [\s!cs] [\v!october=\rcaron\iacute jna]
+\setuplabeltext [\s!cs] [\v!november=listopadu]
+\setuplabeltext [\s!cs] [\v!december=prosince]
\setuplabeltext [\s!sk] [\v!january=janu\aacute ra]
\setuplabeltext [\s!sk] [\v!february=febru\aacute ra]
@@ -407,13 +392,13 @@
\setuplabeltext [\s!pl] [\v!saturday=sobota]
% new
-\setuplabeltext [\s!cz] [\v!sunday=ned\ecaron le]
-\setuplabeltext [\s!cz] [\v!monday=pond\ecaron l\iacute]
-\setuplabeltext [\s!cz] [\v!tuesday=\uacute ter\yacute]
-\setuplabeltext [\s!cz] [\v!wednesday=st\rcaron eda]
-\setuplabeltext [\s!cz] [\v!thursday=\ccaron tvrtek]
-\setuplabeltext [\s!cz] [\v!friday=p\aacute tek]
-\setuplabeltext [\s!cz] [\v!saturday=sobota]
+\setuplabeltext [\s!cs] [\v!sunday=ned\ecaron le]
+\setuplabeltext [\s!cs] [\v!monday=pond\ecaron l\iacute]
+\setuplabeltext [\s!cs] [\v!tuesday=\uacute ter\yacute]
+\setuplabeltext [\s!cs] [\v!wednesday=st\rcaron eda]
+\setuplabeltext [\s!cs] [\v!thursday=\ccaron tvrtek]
+\setuplabeltext [\s!cs] [\v!friday=p\aacute tek]
+\setuplabeltext [\s!cs] [\v!saturday=sobota]
\setuplabeltext [\s!hr] [\v!sunday=nedjelja]
\setuplabeltext [\s!hr] [\v!monday=ponedjeljak]
@@ -433,7 +418,7 @@
%D Rather new ...
%\installlanguage
-% [\s!cz]
+% [\s!cs]
% [\c!spacing=\v!packed,
% \c!leftsentence=---,
% \c!rightsentence=---,
@@ -443,9 +428,7 @@
% \c!rightquote=\upperrightsinglesixquote,
% \c!leftquotation=\lowerleftdoubleninequote,
% \c!rightquotation=\upperrightdoublesixquote,
-% \c!date={\v!day,\ ,\v!month,\ ,\v!year},
-% \c!state=\v!stop]
-
+% \c!date={\v!day,\ ,\v!month,\ ,\v!year}]
\setuplabeltext [\s!sl] [\v!page=stran ]
\setuplabeltext [\s!sl] [\v!atpage=na strani ]
@@ -454,14 +437,14 @@
\setuplabeltext [\s!sl] [\v!see=glej ]
% new
-\setuplabeltext [\s!cz] [\v!page=strana ]
-\setuplabeltext [\s!cz] [\v!atpage=na stran\ecaron\ ]
-\setuplabeltext [\s!cz] [\v!hencefore=viz v\yacute\scaron e ]
-\setuplabeltext [\s!cz] [\v!hereafter=viz n\iacute\zcaron e ]
-\setuplabeltext [\s!cz] [\v!see=viz ]
+\setuplabeltext [\s!cs] [\v!page=strana ]
+\setuplabeltext [\s!cs] [\v!atpage=na stran\ecaron\ ]
+\setuplabeltext [\s!cs] [\v!hencefore=viz v\yacute\scaron e ]
+\setuplabeltext [\s!cs] [\v!hereafter=viz n\iacute\zcaron e ]
+\setuplabeltext [\s!cs] [\v!see=viz ]
%D \ShowAllLanguageValues [\s!pl] [polish] {Polish} {furniture}
-%D \ShowAllLanguageValues [\s!cz] [czech] {Czech} {mate}
+%D \ShowAllLanguageValues [\s!cs] [czech] {Czech} {mate}
%D \ShowAllLanguageValues [\s!sk] [slovak] {Slovakian} {face}
%D \ShowAllLanguageValues [\s!hr] [croatian] {Croatian} {heartthrob}
%D \ShowAllLanguageValues [\s!sl] [slovenian] {Slovenian} {mountains}
diff --git a/Master/texmf-dist/tex/context/base/lang-spa.tex b/Master/texmf-dist/tex/context/base/lang-spa.tex
index 1ec45cd69d6..f6e22aa5190 100644
--- a/Master/texmf-dist/tex/context/base/lang-spa.tex
+++ b/Master/texmf-dist/tex/context/base/lang-spa.tex
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Language Macros / Spacing}
+\writestatus{loading}{ConTeXt Language Macros / Spacing}
%D This module was created in the process of enhancing
%D support for French (with the help of Daniel Flipo).
diff --git a/Master/texmf-dist/tex/context/base/lang-spe.tex b/Master/texmf-dist/tex/context/base/lang-spe.mkii
index b88b1ad774b..7911b0c95b9 100644
--- a/Master/texmf-dist/tex/context/base/lang-spe.tex
+++ b/Master/texmf-dist/tex/context/base/lang-spe.mkii
@@ -30,7 +30,7 @@
%D this is a good learning experience (catcodes, lccodes, token
%D lists, expansion, \unknown).
-\writestatus{loading}{Context Language Macros / Specifics}
+\writestatus{loading}{ConTeXt Language Macros / Specifics}
\unprotect
@@ -122,10 +122,11 @@
\def\languagespectag#1{\??la\languageencoding#1\??la}
\long\def\dosetlanguagespecifics#1#2%
- {\ifcsname\languagespectag{#2}\endcsname \else
- \expandafter\newtoks\csname\languagespectag{#2}\endcsname
+ {\edef\askedlanguagespecificstag{\languagespectag{#2}}%
+ \ifcsname\askedlanguagespecificstag\endcsname \else
+ \expandafter\newtoks\csname\askedlanguagespecificstag\endcsname
\fi
- \csname\languagespectag{#2}\endcsname\@EA{\the\csname\languagespectag{#2}\endcsname#1}%
+ \csname\askedlanguagespecificstag\endcsname\@EA{\the\csname\askedlanguagespecificstag\endcsname#1}%
\bgroup
\setbox\scratchbox\hbox{\enablelanguagespecifics[#2]}%
\ifdim\wd\scratchbox>\zeropoint
@@ -136,9 +137,6 @@
\egroup
\doif{#2}\currentmainlanguage{\enablelanguagespecifics[#2]}}
-% \def\forgetlanguagespecifics[#1]%
-% {\letvalue{\??la\languageencoding#1\??la}\empty}
-
\def\forgetlanguagespecifics[#1]%
{\csname\languagespectag{#1}\endcsname\emptytoks}
@@ -146,24 +144,28 @@
%D define \type{\do} in such a way that \type{{ }} is removed
%D and the language key is gobbled.
-\def\enablelanguagespecifics[#1]%
- {\the\executeifdefined{\??la
- \@EA\ifx\csname\??la#1\c!default\endcsname\relax
- \languageencoding
- \else
- \csname\??la#1\c!default\endcsname
- \fi
- \??la}\emptytoks
- \the\executeifdefined{\??la#1\??la}\emptytoks
- \the\executeifdefined{\??la\languageencoding#1\??la}\emptytoks} % dup ?
-
-% check:
-
% \def\enablelanguagespecifics[#1]%
-% {\the\executeifdefined{\??la\executeifdefined{\??la#1\c!default}\languageencoding\??la}\emptytoks
+% {\the\executeifdefined{\??la
+% \@EA\ifx\csname\??la#1\c!default\endcsname\relax
+% \languageencoding
+% \else
+% \csname\??la#1\c!default\endcsname
+% \fi
+% \??la}\emptytoks
% \the\executeifdefined{\??la#1\??la}\emptytoks
% \the\executeifdefined{\??la\languageencoding#1\??la}\emptytoks} % dup ?
+\def\enablelanguagespecifics[#1]%
+ {\edef\askedlanguagespecificslanguage{\defaultlanguage{#1}}%
+ \ifcsname\??la\askedlanguagespecificslanguage\??la\endcsname
+ \the\csname\??la\askedlanguagespecificslanguage\??la\endcsname
+ \fi
+ \ifx\languageencoding\empty\else
+ \ifcsname\??la\languageencoding\askedlanguagespecificslanguage\??la\endcsname
+ \the\csname\??la\languageencoding\askedlanguagespecificslanguage\??la\endcsname
+ \fi
+ \fi}
+
%D \macros
%D {deactivatelanguagespecific}
%D
@@ -204,7 +206,7 @@
% yes or no (taco wins: no)
-% \startlanguagespecifics[nl,cz,sk,fr]
+% \startlanguagespecifics[nl,cs,sk,fr]
% \lccode`\'=`\'
% \stoplanguagespecifics
diff --git a/Master/texmf-dist/tex/context/base/lang-ura.tex b/Master/texmf-dist/tex/context/base/lang-ura.tex
index 2ecb31e6b0b..a2bcd3d2bf2 100644
--- a/Master/texmf-dist/tex/context/base/lang-ura.tex
+++ b/Master/texmf-dist/tex/context/base/lang-ura.tex
@@ -13,7 +13,7 @@
% Todo: replace \'.. by \namedglyph
-\writestatus{loading}{Uralic Languages}
+\writestatus{loading}{ConTeXt Language Macros / Uralic Languages}
%D The framework of this module is set up by Hans Hagen while
%D many of the first translations were done by Tobias. Later
@@ -42,8 +42,7 @@
\c!rightquote=\upperrightsingleninequote,
\c!leftquotation=\upperleftdoublesixquote,
\c!rightquotation=\upperrightdoubleninequote,
- \c!date={\v!year,\ ,\v!month,\ ,\v!day},
- \c!state=\v!stop]
+ \c!date={\v!year,\ ,\v!month,\ ,\v!day}]
\installlanguage
[\s!hu]
@@ -57,7 +56,6 @@
\c!leftquotation=\lowerleftdoubleninequote,
\c!rightquotation=\upperrightdoubleninequote,
\c!date={\v!year,.,\ ,\v!month,\ ,\v!day,.},
- \c!state=\v!stop,
\s!mapping=ec,
\s!encoding=ec]
diff --git a/Master/texmf-dist/tex/context/base/lang-url.lua b/Master/texmf-dist/tex/context/base/lang-url.lua
index d0214af7706..3d93a046a21 100644
--- a/Master/texmf-dist/tex/context/base/lang-url.lua
+++ b/Master/texmf-dist/tex/context/base/lang-url.lua
@@ -6,6 +6,13 @@ if not modules then modules = { } end modules ['lang-url'] = {
license = "see context related readme files"
}
+local utf = unicode.utf8
+
+local utfcharacters, utfvalues = string.utfcharacters, string.utfvalues
+local utfbyte, utfgsub = utf.byte, utf.gsub
+
+local ctxcatcodes = tex.ctxcatcodes
+
commands = commands or { }
--[[
@@ -60,30 +67,32 @@ do
local chars = commands.hyphenatedurl.characters
- function commands.hyphenatedurl.action(str, left, right)
+ function commands.hyphenatedurl.convert(str, left, right)
local n = 0
local b = math.max(left or commands.hyphenatedurl.lefthyphenmin,2)
local e = math.min(#str-(right or commands.hyphenatedurl.righthyphenmin)+2,#str)
- local u = utf.byte
- str = utf.gsub(str,"(.)",function(s)
+ str = utfgsub(str,"(.)",function(s)
n = n + 1
local c = chars[s]
if not c or n<=b or n>=e then
- return "\\n{" .. u(s) .. "}"
+ return "\\n{" .. utfbyte(s) .. "}"
elseif c == 1 then
- return "\\b{" .. u(s) .. "}"
+ return "\\b{" .. utfbyte(s) .. "}"
elseif c == 2 then
- return "\\a{" .. u(s) .. "}"
+ return "\\a{" .. utfbyte(s) .. "}"
end
end )
- tex.sprint(tex.ctxcatcodes,str)
+ return str
+ end
+ function commands.hyphenatedurl.action(str, left, right)
+ tex.sprint(ctxcatcodes,commands.hyphenatedurl.convert(str, left, right))
end
-- todo, no interface in mkiv yet
function commands.hyphenatedurl.setcharacters(str,value) -- 1, 2 == before, after
- for ch in utf.gmatch(".") do
- chars[ch] = value or 1
+ for s in utfcharacters(str) do
+ chars[s] = value or 1
end
end
diff --git a/Master/texmf-dist/tex/context/base/lang-url.mkii b/Master/texmf-dist/tex/context/base/lang-url.mkii
index f3310ccebb7..fdf530b45af 100644
--- a/Master/texmf-dist/tex/context/base/lang-url.mkii
+++ b/Master/texmf-dist/tex/context/base/lang-url.mkii
@@ -18,6 +18,29 @@
\ifx\\\undefined \let\\\crlf \fi
+%D \macros
+%D {hyphenatedurl}
+%D
+%D For those who want to put full \URL's in a text, we offer
+%D
+%D \startbuffer
+%D \hyphenatedurl{http://optimist.optimist/optimist/optimist.optimist#optimist}
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D which breaks at the appropriate places. Watch the \type{#}
+%D hack.
+%D
+%D When passed as argument, like in \type {\goto}, one needs
+%D to substitute a \type {\\} for each \type{#}.
+%D
+%D \startbuffer
+%D \hyphenatedurl{http://this.is.a.rather/strange/reference#indeed}
+%D \stopbuffer
+%D
+%D \typebuffer
+
\ifx\urlsplitmode\undefined \chardef\urlsplitmode\plusone \fi
% 0 => don't split
@@ -229,4 +252,55 @@
%
% {\hsize1cm\hyphenatedstring{ABXXXXXXXXXXC-12345-12345}}
+%D \macros
+%D {hyphenatedfilename}
+%D
+%D For the moment we treat filenames in a similar way,
+%D
+%D \starttyping
+%D \hyphenatedfilename{here/there/filename.suffix}
+%D \stoptyping
+
+\ifx\hyphenatedfilename\undefined \let\hyphenatedfilename\hyphenatedurl \fi
+
+% \def\test#1%
+% {\dontleavehmode
+% \begingroup
+% \tttf
+% \hyphenatedurl {%
+% \letterampersand #1\letterampersand #1\letterampersand #1\letterampersand #1\letterampersand
+% \letterhash #1\letterhash #1\letterpercent #1\letterslash #1\letterampersand
+% }%
+% \endgroup}
+
+% \dorecurse{100}{\test{a} \test{ab} \test{abc} \test{abcd} \test{abcde} \test{abcdef}}
+
\protect \endinput
+
+% \bgroup
+
+% \gdef\lettercolon{:}
+
+% \catcode`\:=\active
+% \catcode`\^=\active
+% \catcode`\/=\active
+% \catcode`\~=\active
+
+% \gdef\theurlcolon {\nobreak\hbox{\lettercolon}\allowbreak}
+% \gdef\theurlslash#1{\nobreak\hbox{\letterslash}\ifx#1\relax\else\ifnum`/=\expandafter`\string#1\else\allowbreak\fi#1\fi}
+% \gdef\theurlhat {\allowbreak\hbox{\letterhat}\nobreak}
+% \gdef\theurltilde {\allowbreak\hbox{\lettertilde}\nobreak}
+
+% \gdef\ForMojcaWhoLikesHacks#1%
+% {\dontleavehmode
+% \begingroup
+% \mathcode`\:="8000 \let:\theurlcolon
+% \mathcode`\^="8000 \let^\theurlhat
+% \mathcode`\/="8000 \let/\theurlslash
+% \mathcode`\~="8000 \let~\theurltilde
+% \everymath\emptytoks
+% \mathsurround\zeropoint$\tf#1\relax$%
+% \endgroup}
+% \egroup
+
+% \hsize 1mm \ForMojcaWhoLikesHacks{http://www.sil.org//silesr/}
diff --git a/Master/texmf-dist/tex/context/base/lang-url.mkiv b/Master/texmf-dist/tex/context/base/lang-url.mkiv
index 7479fed6803..392a0285b10 100644
--- a/Master/texmf-dist/tex/context/base/lang-url.mkiv
+++ b/Master/texmf-dist/tex/context/base/lang-url.mkiv
@@ -15,7 +15,30 @@
\unprotect
-% \urlsplitmode is not (yet) supported (not that much needed)
+%D \macros
+%D {hyphenatedurl}
+%D
+%D For those who want to put full \URL's in a text, we offer
+%D
+%D \startbuffer
+%D \hyphenatedurl{http://optimist.optimist/optimist/optimist.optimist#optimist}
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D which breaks at the appropriate places. Watch the \type{#}
+%D hack.
+%D
+%D When passed as argument, like in \type {\goto}, one needs
+%D to substitute a \type {\\} for each \type{#}.
+%D
+%D \startbuffer
+%D \hyphenatedurl{http://this.is.a.rather/strange/reference#indeed}
+%D \stopbuffer
+%D
+%D \typebuffer
+
+\ifx\urlsplitmode\undefined \chardef\urlsplitmode\zerocount \fi % not supported in mkiv
\newtoks\everyhyphenatedurl
@@ -40,9 +63,11 @@
\def\dohyphenatedurlbefore#1{\discretionary{\hyphenatedurlseparator}{}{}\char#1\relax}%
\def\dohyphenatedurlnormal#1{\char#1\relax}%
-\def\sethyphenatedurlnormal#1{\ctxlua{commands.hyphenatedurl.characters[\!!bs#1\!!es]=0}}
-\def\sethyphenatedurlbefore#1{\ctxlua{commands.hyphenatedurl.characters[\!!bs#1\!!es]=1}}
-\def\sethyphenatedurlafter #1{\ctxlua{commands.hyphenatedurl.characters[\!!bs#1\!!es]=2}}
+\def\sethyphenatedurlnormal#1{\ctxlua{commands.hyphenatedurl.setcharacters(\!!bs#1\!!es,0)}}
+\def\sethyphenatedurlbefore#1{\ctxlua{commands.hyphenatedurl.setcharacters(\!!bs#1\!!es,1)}}
+\def\sethyphenatedurlafter #1{\ctxlua{commands.hyphenatedurl.setcharacters(\!!bs#1\!!es,2)}}
+
+% \sethyphenatedurlafter{ABCDEF}
\chardef\hyphenatedurllefthyphenmin = 3
\chardef\hyphenatedurlrighthyphenmin = 3
@@ -54,11 +79,34 @@
\let\n\dohyphenatedurlnormal
\let\b\dohyphenatedurlbefore
\let\a\dohyphenatedurlafter
- \expanded{\ctxlua{commands.hyphenatedurl.action(
+ \normalexpanded{\noexpand\ctxlua{commands.hyphenatedurl.action(
\!!bs\noexpand\detokenize{#1}\!!es,
\number\hyphenatedurllefthyphenmin,
\number\hyphenatedurlrighthyphenmin
)}}%
\endgroup}
+%D \macros
+%D {hyphenatedfilename}
+%D
+%D For the moment we treat filenames in a similar way,
+%D
+%D \starttyping
+%D \hyphenatedfilename{here/there/filename.suffix}
+%D \stoptyping
+
+\ifx\hyphenatedfilename\undefined \let\hyphenatedfilename\hyphenatedurl \fi
+
+% \def\test#1%
+% {\dontleavehmode
+% \begingroup
+% \tttf
+% \hyphenatedurl {%
+% \letterampersand #1\letterampersand #1\letterampersand #1\letterampersand #1\letterampersand
+% \letterhash #1\letterhash #1\letterpercent #1\letterslash #1\letterampersand
+% }%
+% \endgroup}
+
+% \dorecurse{100}{\test{a} \test{ab} \test{abc} \test{abcd} \test{abcde} \test{abcdef}}
+
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/lang-url.tex b/Master/texmf-dist/tex/context/base/lang-url.tex
deleted file mode 100644
index 3eb89191470..00000000000
--- a/Master/texmf-dist/tex/context/base/lang-url.tex
+++ /dev/null
@@ -1,70 +0,0 @@
-%D \module
-%D [ file=lang-url,
-%D version=2008.01.22, % used to be lang-mis
-%D title=\CONTEXT\ Language Macros,
-%D subtitle=Language Options,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{Context Language Macros / URL}
-
-\loadmarkfile{lang-url}
-
-\unprotect
-
-\ifx\urlsplitmode\undefined \chardef\urlsplitmode\zerocount \fi % not supported in mkiv
-
-%D \macros
-%D {hyphenatedurl}
-%D
-%D For those who want to put full \URL's in a text, we offer
-%D
-%D \startbuffer
-%D \hyphenatedurl{http://optimist.optimist/optimist/optimist.optimist#optimist}
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D which breaks at the appropriate places. Watch the \type{#}
-%D hack.
-%D
-%D When passed as argument, like in \type {\goto}, one needs
-%D to substitute a \type {\\} for each \type{#}.
-%D
-%D \startbuffer
-%D \hyphenatedurl{http://this.is.a.rather/strange/reference#indeed}
-%D \stopbuffer
-%D
-%D \typebuffer
-
-\ifx\hyphenatedurl\undefined \let\hyphenatedurl\firstofoneargument \fi
-
-%D \macros
-%D {hyphenatedfilename}
-%D
-%D For the moment we treat filenames in a similar way,
-%D
-%D \starttyping
-%D \hyphenatedfilename{here/there/filename.suffix}
-%D \stoptyping
-
-\ifx\hyphenatedfilename\undefined \let\hyphenatedfilename\hyphenatedurl \fi
-
-% \def\test#1%
-% {\dontleavehmode
-% \begingroup
-% \tttf
-% \hyphenatedurl {%
-% \letterampersand #1\letterampersand #1\letterampersand #1\letterampersand #1\letterampersand
-% \letterhash #1\letterhash #1\letterpercent #1\letterslash #1\letterampersand
-% }%
-% \endgroup}
-
-% \dorecurse{100}{\test{a} \test{ab} \test{abc} \test{abcd} \test{abcde} \test{abcdef}}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/lang-vn.tex b/Master/texmf-dist/tex/context/base/lang-vn.tex
index 800433a1408..27d2a48a16f 100644
--- a/Master/texmf-dist/tex/context/base/lang-vn.tex
+++ b/Master/texmf-dist/tex/context/base/lang-vn.tex
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Vietnamese Language}
+\writestatus{loading}{ConTeXt Language Macros / Vietnamese Language}
%D The framework of this module is set up by Hans Hagen while
%D many of the first translations were done by Tobias. Later
@@ -26,7 +26,7 @@
\unprotect
\installlanguage
- [\s!vn]
+ [\s!vi]
[\c!spacing=\v!packed,
\c!leftsentence=---,
\c!rightsentence=---,
@@ -37,55 +37,56 @@
\c!leftquotation=\quotedblleft,
\c!rightquotation=\quotedblright,
\c!date={{ },dd,{/},mm,{/},yy},
- \c!state=\v!stop]
+ \s!mapping=t5,
+ \s!encoding=t5]
-\installlanguage [vietnamese] [\s!vn]
+\installlanguage [vietnamese] [\s!vi]
-\setupheadtext [\s!vn] [\v!content=M\udotbelow c l\udotbelow c]
-\setupheadtext [\s!vn] [\v!tables=Danh s\aacute ch b\ahook ng]
-\setupheadtext [\s!vn] [\v!figures=Danh s\aacute ch h\igrave nh v\etilde]
-\setupheadtext [\s!vn] [\v!graphics=\Dstroke\ocircumflexgrave\ th\idotbelow]
-\setupheadtext [\s!vn] [\v!intermezzi=Intermezzos]
-\setupheadtext [\s!vn] [\v!index=Ch\ihook\ s\ocircumflexacute]
-\setupheadtext [\s!vn] [\v!abbreviations=Ch\uhorntilde\ vi\ecircumflexacute t t\abreveacute t]
-\setupheadtext [\s!vn] [\v!logos=Bi\ecircumflexhook u t\uhorn \ohorndotbelow ng]
-\setupheadtext [\s!vn] [\v!units=\Dstroke\ohorn n v\idotbelow]
+\setupheadtext [\s!vi] [\v!content=M\udotbelow c l\udotbelow c]
+\setupheadtext [\s!vi] [\v!tables=Danh s\aacute ch b\ahook ng]
+\setupheadtext [\s!vi] [\v!figures=Danh s\aacute ch h\igrave nh v\etilde]
+\setupheadtext [\s!vi] [\v!graphics=\Dstroke\ocircumflexgrave\ th\idotbelow]
+\setupheadtext [\s!vi] [\v!intermezzi=Intermezzos]
+\setupheadtext [\s!vi] [\v!index=Ch\ihook\ s\ocircumflexacute]
+\setupheadtext [\s!vi] [\v!abbreviations=Ch\uhorntilde\ vi\ecircumflexacute t t\abreveacute t]
+\setupheadtext [\s!vi] [\v!logos=Bi\ecircumflexhook u t\uhorn \ohorndotbelow ng]
+\setupheadtext [\s!vi] [\v!units=\Dstroke\ohorn n v\idotbelow]
-\setuplabeltext [\s!vn] [\v!table=B\ahook ng ]
-\setuplabeltext [\s!vn] [\v!figure=H\igrave nh ]
-\setuplabeltext [\s!vn] [\v!intermezzo=intermezzo]
-\setuplabeltext [\s!vn] [\v!graphic=\Dstroke\ocircumflexgrave\ th\idotbelow]
-\setuplabeltext [\s!vn] [\v!chapter=Ch\uhorn \ohorn ng ]
-\setuplabeltext [\s!vn] [\v!section=] % not set
-\setuplabeltext [\s!vn] [\v!subsection=] % not set
-\setuplabeltext [\s!vn] [\v!subsubsection=] % not set
-\setuplabeltext [\s!vn] [\v!subsubsubsection=] % not set
-\setuplabeltext [\s!vn] [\v!appendix=] % not set
-\setuplabeltext [\s!vn] [\v!part=Ph\acircumflexgrave n ]
-\setuplabeltext [\s!vn] [\v!line=d\ograve ng ]
-\setuplabeltext [\s!vn] [\v!lines=d\ograve ng ]
+\setuplabeltext [\s!vi] [\v!table=B\ahook ng ]
+\setuplabeltext [\s!vi] [\v!figure=H\igrave nh ]
+\setuplabeltext [\s!vi] [\v!intermezzo=intermezzo]
+\setuplabeltext [\s!vi] [\v!graphic=\Dstroke\ocircumflexgrave\ th\idotbelow]
+\setuplabeltext [\s!vi] [\v!chapter=Ch\uhorn \ohorn ng ]
+\setuplabeltext [\s!vi] [\v!section=] % not set
+\setuplabeltext [\s!vi] [\v!subsection=] % not set
+\setuplabeltext [\s!vi] [\v!subsubsection=] % not set
+\setuplabeltext [\s!vi] [\v!subsubsubsection=] % not set
+\setuplabeltext [\s!vi] [\v!appendix=] % not set
+\setuplabeltext [\s!vi] [\v!part=Ph\acircumflexgrave n ]
+\setuplabeltext [\s!vi] [\v!line=d\ograve ng ]
+\setuplabeltext [\s!vi] [\v!lines=d\ograve ng ]
-\setuplabeltext [\s!vn] [\v!sunday=ch\uhook\ nh\acircumflexdotbelow t]
-\setuplabeltext [\s!vn] [\v!monday=th\uhornacute\ hai]
-\setuplabeltext [\s!vn] [\v!tuesday=th\uhornacute\ ba]
-\setuplabeltext [\s!vn] [\v!wednesday=th\uhornacute\ t\uhorn]
-\setuplabeltext [\s!vn] [\v!thursday=th\uhornacute\ n\abreve m]
-\setuplabeltext [\s!vn] [\v!friday=th\uhornacute\ s\aacute u]
-\setuplabeltext [\s!vn] [\v!saturday=th\uhornacute\ b\ahook y]
+\setuplabeltext [\s!vi] [\v!sunday=ch\uhook\ nh\acircumflexdotbelow t]
+\setuplabeltext [\s!vi] [\v!monday=th\uhornacute\ hai]
+\setuplabeltext [\s!vi] [\v!tuesday=th\uhornacute\ ba]
+\setuplabeltext [\s!vi] [\v!wednesday=th\uhornacute\ t\uhorn]
+\setuplabeltext [\s!vi] [\v!thursday=th\uhornacute\ n\abreve m]
+\setuplabeltext [\s!vi] [\v!friday=th\uhornacute\ s\aacute u]
+\setuplabeltext [\s!vi] [\v!saturday=th\uhornacute\ b\ahook y]
-\setuplabeltext [\s!vn] [\v!january=th\aacute ng gi\ecircumflex ng]
-\setuplabeltext [\s!vn] [\v!february=th\aacute ng hai]
-\setuplabeltext [\s!vn] [\v!march=th\aacute ng ba]
-\setuplabeltext [\s!vn] [\v!april=th\aacute ng t\uhorn]
-\setuplabeltext [\s!vn] [\v!may=th\aacute ng n\abreve m]
-\setuplabeltext [\s!vn] [\v!june=th\aacute ng s\aacute u]
-\setuplabeltext [\s!vn] [\v!july=th\aacute ng b\ahook y]
-\setuplabeltext [\s!vn] [\v!august=th\aacute ng t\aacute m]
-\setuplabeltext [\s!vn] [\v!september=th\aacute ng ch\iacute n]
-\setuplabeltext [\s!vn] [\v!october=th\aacute ng m\uhorn\ohorngrave i]
-\setuplabeltext [\s!vn] [\v!november=th\aacute ng m\uhorn\ohorngrave i m\ocircumflexdotbelow t]
-\setuplabeltext [\s!vn] [\v!december=th\aacute ng m\uhorn\ohorngrave i hai]
+\setuplabeltext [\s!vi] [\v!january=th\aacute ng gi\ecircumflex ng]
+\setuplabeltext [\s!vi] [\v!february=th\aacute ng hai]
+\setuplabeltext [\s!vi] [\v!march=th\aacute ng ba]
+\setuplabeltext [\s!vi] [\v!april=th\aacute ng t\uhorn]
+\setuplabeltext [\s!vi] [\v!may=th\aacute ng n\abreve m]
+\setuplabeltext [\s!vi] [\v!june=th\aacute ng s\aacute u]
+\setuplabeltext [\s!vi] [\v!july=th\aacute ng b\ahook y]
+\setuplabeltext [\s!vi] [\v!august=th\aacute ng t\aacute m]
+\setuplabeltext [\s!vi] [\v!september=th\aacute ng ch\iacute n]
+\setuplabeltext [\s!vi] [\v!october=th\aacute ng m\uhorn\ohorngrave i]
+\setuplabeltext [\s!vi] [\v!november=th\aacute ng m\uhorn\ohorngrave i m\ocircumflexdotbelow t]
+\setuplabeltext [\s!vi] [\v!december=th\aacute ng m\uhorn\ohorngrave i hai]
-%D \ShowAllLanguageValues [\s!vn] [vietnamese] {Vietnamese} {water||puppets}
+%D \ShowAllLanguageValues [\s!vi] [vietnamese] {Vietnamese} {water||puppets}
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/lpdf-ano.lua b/Master/texmf-dist/tex/context/base/lpdf-ano.lua
new file mode 100644
index 00000000000..87014365b39
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/lpdf-ano.lua
@@ -0,0 +1,573 @@
+if not modules then modules = { } end modules ['lpdf-ano'] = {
+ version = 1.001,
+ comment = "companion to lpdf-ini.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local tostring, format, rep = tostring, string.rep, string.format
+local texcount = tex.count
+
+local trace_references = false trackers.register("references.references", function(v) trace_references = v end)
+local trace_destinations = false trackers.register("references.destinations", function(v) trace_destinations = v end)
+local trace_bookmarks = false trackers.register("references.bookmarks", function(v) trace_bookmarks = v end)
+
+local variables = interfaces.variables
+local constants = interfaces.constants
+
+local nodeinjections = backends.pdf.nodeinjections
+local codeinjections = backends.pdf.codeinjections
+local registrations = backends.pdf.registrations
+
+jobreferences = jobreferences or { }
+jobreferences.runners = jobreferences.runners or { }
+jobreferences.specials = jobreferences.specials or { }
+jobreferences.handlers = jobreferences.handlers or { }
+jobreferences.executers = jobreferences.executers or { }
+
+local runners = jobreferences.runners
+local specials = jobreferences.specials
+local handlers = jobreferences.handlers
+local executers = jobreferences.executers
+
+local pdfdictionary = lpdf.dictionary
+local pdfarray = lpdf.array
+local pdfreference = lpdf.reference
+local pdfunicode = lpdf.unicode
+local pdfconstant = lpdf.constant
+
+local pdfreserveobj = pdf.reserveobj
+local pdfimmediateobj = pdf.immediateobj
+local pdfpageref = tex.pdfpageref
+
+local pdfannot = nodes.pdfannot
+local pdfdest = nodes.pdfdest
+
+local pdf_uri = pdfconstant("URI")
+local pdf_gotor = pdfconstant("GoToR")
+local pdf_goto = pdfconstant("GoTo")
+local pdf_launch = pdfconstant("Launch")
+local pdf_javascript = pdfconstant("JavaScript")
+local pdf_link = pdfconstant("Link")
+local pdf_n = pdfconstant("N")
+local pdf_t = pdfconstant("T")
+local pdf_border = pdfarray { 0, 0, 0 }
+
+local cache = { }
+
+local function pagedest(n)
+ local pd = cache[n]
+ if not pd then
+ local a = pdfarray {
+ pdfreference(pdfpageref(n)),
+ pdfconstant("Fit")
+ }
+ pd = pdfreference(pdfimmediateobj(tostring(a)))
+ cache[n] = pd
+ end
+ return pd
+end
+
+lpdf.pagedest = pagedest
+
+local function link(url,filename,destination,page,actions)
+ if filename and filename ~= "" then
+ if file.basename(filename) == tex.jobname then
+ return false
+ else
+ filename = file.addsuffix(filename,"pdf")
+ end
+ end
+ if url and url ~= "" then
+ if filename and filename ~= "" then
+ if destination and destination ~= "" then
+ url = file.join(url,filename).."#"..destination
+ else
+ url = file.join(url,filename)
+ end
+ end
+ return pdfdictionary {
+ S = pdf_uri,
+ URI = url,
+ }
+ elseif filename and filename ~= "" then
+ return pdfdictionary {
+ S = pdf_gotor,
+ F = filename,
+ D = destination and destination ~= "" and destination,
+ NewWindow = (actions.newwindow and true) or nil,
+ }
+ elseif destination and destination ~= "" then
+ local realpage, p = texcount.realpageno, tonumber(page)
+ if not p then
+ -- sorry
+ elseif p > realpage then
+ texcount.referencepagestate = 3
+ elseif p < realpage then
+ texcount.referencepagestate = 2
+ else
+ texcount.referencepagestate = 1
+ end
+ return pdfdictionary {
+ S = pdf_goto,
+ D = destination,
+ }
+ elseif page and page ~= "" then
+ local realpage, p = texcount.realpageno, tonumber(page)
+ if p then
+ if p > realpage then
+ texcount.referencepagestate = 3
+ elseif p < realpage then
+ texcount.referencepagestate = 2
+ else
+ texcount.referencepagestate = 1
+ end
+ return pdfdictionary {
+ S = pdf_goto,
+ D = pagedest(p),
+ }
+ else
+ commands.writestatus("references","invalid page reference: %s",page or "?")
+ end
+ end
+ return false
+end
+
+lpdf.link = link
+
+function lpdf.launch(program,parameters)
+ if program and program ~= "" then
+ local d = pdfdictionary {
+ S = pdf_launch,
+ F = program,
+ D = ".",
+ }
+ if parameters and parameters ~= "" then
+ d.P = parameters
+ end
+ return d
+ end
+end
+
+function lpdf.javascript(name,arguments)
+ local script = javascripts.code(name,arguments) -- make into object (hash)
+ if script then
+ return pdfdictionary {
+ S = pdf_javascript,
+ JS = script,
+ }
+ end
+end
+
+local function pdfaction(actions)
+ local nofactions = #actions
+ texcount.referencepagestate = 0 -- goodie, as we do all in the backend, we need to set it here too
+ if nofactions > 0 then
+ local a = actions[1]
+ local action = runners[a.kind]
+ if action then
+ action = action(a,actions)
+ end
+ if action then
+ local first = action
+ for i=2,nofactions do
+ local a = actions[i]
+ local what = runners[a.kind]
+ if what then
+ what = what(a,actions)
+ end
+ if what then
+ action.next = what
+ action = what
+ else
+ -- error
+ return nil
+ end
+ end
+ return first
+ end
+ end
+end
+
+lpdf.pdfaction = pdfaction
+
+function codeinjections.prerollreference(actions)
+ local main = actions and pdfaction(actions)
+ if main then
+ main = pdfdictionary {
+ Subtype = pdf_link,
+ Border = pdf_border,
+ H = (not actions.highlight and pdf_n) or nil,
+ A = main,
+ -- does not work at all in spite of specification
+ -- OC = (actions.layer and lpdf.layerreferences[actions.layer]) or nil,
+ -- OC = backends.pdf.layerreference(actions.layer),
+ }
+ return main("A") -- todo: cache this, maybe weak
+ end
+end
+
+-- local cache = { } -- no real gain in thsi
+--
+-- function codeinjections.prerollreference(actions)
+-- local main = actions and pdfaction(actions)
+-- if main then
+-- main = pdfdictionary {
+-- Subtype = pdf_link,
+-- Border = pdf_border,
+-- H = (not actions.highlight and pdf_n) or nil,
+-- A = main,
+-- }
+-- local cm = cache[main]
+-- if not cm then
+-- cm = "/A ".. tostring(pdfreference(pdfimmediateobj(tostring(main))))
+-- cache[main] = cm
+-- end
+-- return cm
+-- end
+-- end
+
+function nodeinjections.reference(width,height,depth,prerolled)
+ if prerolled then
+ if swapdir then
+ width = - width
+ end
+ if trace_references then
+ logs.report("references","w=%s, h=%s, d=%s, a=%s",width,height,depth,prerolled)
+ end
+ return pdfannot(width,height,depth,prerolled)
+ end
+end
+
+function nodeinjections.destination(width,height,depth,name,view)
+ if swapdir then
+ width = - width
+ end
+ if trace_destinations then
+ logs.report("destinations","w=%s, h=%s, d=%s, n=%s, v=%s",width,height,depth,name,view or "no view")
+ end
+ return pdfdest(width,height,depth,name,view)
+end
+
+-- runners and specials
+
+local method = "internal"
+
+runners["inner"] = function(var,actions)
+ if method == "internal" then
+ local vir = var.i.references
+ local internal = vir and vir.internal
+ if internal then
+ var.inner = "aut:"..internal
+ end
+ end
+ return link(nil,nil,var.inner,var.r,actions)
+end
+
+runners["inner with arguments"] = function(var,actions)
+ return false
+end
+
+runners["outer"] = function(var,actions)
+ return link(nil,var.o,nil,nil,actions) -- var.o ?
+end
+
+runners["outer with inner"] = function(var,actions)
+ -- todo: resolve url/file name
+ return link(nil,var.f,var.inner,var.r,actions)
+end
+
+runners["special outer with operation"] = function(var,actions)
+ return false
+end
+
+runners["special outer"] = function(var,actions)
+ return false
+end
+
+runners["special"] = function(var,actions)
+ local handler = specials[var.special]
+ return handler and handler(var,actions)
+end
+
+runners["outer with inner with arguments"] = function(var,actions)
+ return false
+end
+
+runners["outer with special and operation and arguments"] = function(var,actions)
+ return false
+end
+
+runners["outer with special"] = function(var,actions)
+ return false
+end
+
+runners["outer with special and operation"] = function(var,actions)
+ return false
+end
+
+runners["special operation"] = runners["special"]
+runners["special operation with arguments"] = runners["special"]
+
+function specials.internal(var,actions)
+ local i = tonumber(var.operation)
+ local v = jobreferences.internals[i]
+ if not v then
+ -- error
+ elseif method == "internal" then
+ -- named
+ return link(nil,nil,"aut:"..i,v.references.realpage,actions)
+ else
+ -- page
+ return link(nil,nil,nil,v.references.realpage,actions)
+ end
+end
+
+specials.i = specials.internal
+
+function specials.page(var,actions)
+ local p = jobreferences.pages[var.operation]
+ if type(p) == "function" then
+ p = p()
+ end
+ return link(nil,nil,nil,p or var.operation,actions)
+end
+
+function specials.url(var,actions)
+ local url = var.operation
+ if url then
+ local u = jobreferences.urls[url]
+ if u then
+ local u, f = u[1], u[2]
+ if f and f ~= "" then
+ url = u .. "/" .. f
+ else
+ url = u
+ end
+ end
+ end
+ return link(url,nil,var.arguments,nil,actions)
+end
+
+function specials.file(var,actions)
+ local file = var.operation
+ if file then
+ local f = jobreferences.files[file]
+ if f then
+ file = f[1] or file
+ end
+ end
+ return link(nil,file,var.arguments,nil,actions)
+end
+
+function specials.program(var,content)
+ local program = var.operation
+ if program then
+ local p = jobreferences.programs[program]
+ if p then
+ program = p[1]
+ end
+ end
+ return lpdf.launch(program,var.arguments)
+end
+
+function specials.javascript(var)
+ return lpdf.javascript(var.operation,var.arguments)
+end
+
+specials.JS = specials.javascript
+
+local pdf_named = pdfconstant("Named")
+
+executers.importform = pdfdictionary { S = pdf_named, N = pdfconstant("AcroForm:ImportFDF") }
+executers.exportform = pdfdictionary { S = pdf_named, N = pdfconstant("AcroForm:ExportFDF") }
+executers.first = pdfdictionary { S = pdf_named, N = pdfconstant("FirstPage") }
+executers.previous = pdfdictionary { S = pdf_named, N = pdfconstant("PrevPage") }
+executers.next = pdfdictionary { S = pdf_named, N = pdfconstant("NextPage") }
+executers.last = pdfdictionary { S = pdf_named, N = pdfconstant("LastPage") }
+executers.backward = pdfdictionary { S = pdf_named, N = pdfconstant("GoBack") }
+executers.forward = pdfdictionary { S = pdf_named, N = pdfconstant("GoForward") }
+executers.print = pdfdictionary { S = pdf_named, N = pdfconstant("Print") }
+executers.exit = pdfdictionary { S = pdf_named, N = pdfconstant("Quit") }
+executers.close = pdfdictionary { S = pdf_named, N = pdfconstant("Close") }
+executers.save = pdfdictionary { S = pdf_named, N = pdfconstant("Save") }
+executers.savenamed = pdfdictionary { S = pdf_named, N = pdfconstant("SaveAs") }
+executers.opennamed = pdfdictionary { S = pdf_named, N = pdfconstant("Open") }
+executers.help = pdfdictionary { S = pdf_named, N = pdfconstant("HelpUserGuide") }
+executers.toggle = pdfdictionary { S = pdf_named, N = pdfconstant("FullScreen") }
+executers.search = pdfdictionary { S = pdf_named, N = pdfconstant("Find") }
+executers.searchagain = pdfdictionary { S = pdf_named, N = pdfconstant("FindAgain") }
+executers.gotopage = pdfdictionary { S = pdf_named, N = pdfconstant("GoToPage") }
+executers.query = pdfdictionary { S = pdf_named, N = pdfconstant("AcroSrch:Query") }
+executers.queryagain = pdfdictionary { S = pdf_named, N = pdfconstant("AcroSrch:NextHit") }
+executers.fitwidth = pdfdictionary { S = pdf_named, N = pdfconstant("FitWidth") }
+executers.fitheight = pdfdictionary { S = pdf_named, N = pdfconstant("FitHeight") }
+
+local function fieldset(arguments)
+ -- [\dogetfieldset{#1}]
+ return nil
+end
+
+function executers.resetform(arguments)
+ arguments = (type(arguments) == "table" and arguments) or aux.settings_to_array(arguments)
+ return pdfdictionary {
+ S = pdfconstant("ResetForm"),
+ Field = fieldset(arguments[1])
+ }
+end
+
+local formmethod = "post" -- "get" "post"
+local formformat = "xml" -- "xml" "html" "fdf"
+
+-- bit 3 = html bit 6 = xml bit 4 = get
+
+local flags = {
+ get = {
+ html = 12, fdf = 8, xml = 40,
+ },
+ post = {
+ html = 4, fdf = 0, xml = 32,
+ }
+}
+
+function executers.submitform(arguments)
+ arguments = (type(arguments) == "table" and arguments) or aux.settings_to_array(arguments)
+ local flag = flags[formmethod] or flags.post
+ flag = (flag and (flag[formformat] or flag.xml)) or 32 -- default: post, xml
+ return pdfdictionary {
+ S = pdfconstant("ResetForm"),
+ F = fieldset(arguments[1]),
+ Field = fieldset(arguments[2]),
+ Flags = flag,
+ -- \PDFsubmitfiller
+ }
+end
+
+function executers.hide(arguments)
+ return pdfdictionary {
+ S = pdfconstant("Hide"),
+ H = true,
+ T = arguments,
+ }
+end
+
+function executers.show(arguments)
+ return pdfdictionary {
+ S = pdfconstant("Hide"),
+ H = false,
+ T = arguments,
+ }
+end
+
+local pdf_movie = pdfconstant("Movie")
+local pdf_start = pdfconstant("Start")
+local pdf_stop = pdfconstant("Stop")
+local pdf_resume = pdfconstant("Resume")
+local pdf_pause = pdfconstant("Pause")
+
+local function movie_or_sound(operation,arguments)
+ arguments = (type(arguments) == "table" and arguments) or aux.settings_to_array(arguments)
+ return pdfdictionary {
+ S = pdf_movie,
+ T = format("movie %s",arguments[1] or "noname"),
+ Operation = operation,
+ }
+end
+
+function executers.startmovie (arguments) return movie_or_sound(pdf_start ,arguments) end
+function executers.stopmovie (arguments) return movie_or_sound(pdf_stop ,arguments) end
+function executers.resumemovie(arguments) return movie_or_sound(pdf_resume,arguments) end
+function executers.pausemovie (arguments) return movie_or_sound(pdf_pause ,arguments) end
+
+function executers.startsound (arguments) return movie_or_sound(pdf_start ,arguments) end
+function executers.stopsound (arguments) return movie_or_sound(pdf_stop ,arguments) end
+function executers.resumesound(arguments) return movie_or_sound(pdf_resume,arguments) end
+function executers.pausesound (arguments) return movie_or_sound(pdf_pause ,arguments) end
+
+function specials.action(var)
+ local operation = var.operation
+ if var.operation and operation ~= "" then
+ local e = executers[operation]
+ if type(e) == "table" then
+ return e
+ elseif type(e) == "function" then
+ return e(var.arguments)
+ end
+ end
+end
+
+--~ entry.A = pdfdictionary {
+--~ S = pdfconstant("GoTo"),
+--~ D = ....
+--~ }
+
+local function build(levels,start,parent,method)
+ local startlevel = levels[start][1]
+ local i, n = start, 0
+ local child, entry, m, prev, first, last, f, l
+-- to be tested: i can be nil
+ while i and i <= #levels do
+ local li = levels[i]
+ local level, title, reference, open = li[1], li[2], li[3], li[4]
+ if level == startlevel then
+ if trace_bookmarks then
+ logs.report("bookmark","%3i %s%s %s",realpage,rep(" ",level-1),(open and "+") or "-",title)
+ end
+ local prev = child
+ child = pdfreserveobj()
+ if entry then
+ entry.Next = child and pdfreference(child)
+ pdfimmediateobj(prev,tostring(entry))
+ end
+ entry = pdfdictionary {
+ Title = pdfunicode(title),
+ Parent = parent,
+ Prev = prev and pdfreference(prev),
+ }
+ if method == "internal" then
+ entry.Dest = "aut:" .. reference.internal
+ else -- if method == "page" then
+ entry.Dest = pagedest(reference.realpage)
+ end
+ if not first then first, last = child, child end
+ prev = child
+ last = prev
+ n = n + 1
+ i = i + 1
+ elseif level < startlevel then
+ pdfimmediateobj(child,tostring(entry))
+ return i, n, first, last
+ elseif i < #levels and level > startlevel then
+ i, m, f, l = build(levels,i,pdfreference(child),method)
+ entry.Count = (open and m) or -m
+ if m > 0 then
+ entry.First, entry.Last = pdfreference(f), pdfreference(l)
+ end
+ else
+ -- missing intermediate level but ok
+ i, m, f, l = build(levels,i,pdfreference(child),method)
+ entry.Count = (open and m) or -m
+ if m > 0 then
+ entry.First, entry.Last = pdfreference(f), pdfreference(l)
+ end
+ pdfimmediateobj(child,tostring(entry))
+ return i, n, first, last
+ end
+ end
+ pdfimmediateobj(child,tostring(entry))
+ return nil, n, first, last
+end
+
+function codeinjections.addbookmarks(levels,method)
+ local parent = pdfreserveobj()
+ local _, m, first, last = build(levels,1,pdfreference(parent),method or "internal")
+ local dict = pdfdictionary {
+ Type = pdfconstant("Outlines"),
+ First = pdfreference(first),
+ Last = pdfreference(last),
+ Count = m,
+ }
+ pdfimmediateobj(parent,tostring(dict))
+ lpdf.addtocatalog("Outlines",lpdf.reference(parent))
+end
diff --git a/Master/texmf-dist/tex/context/base/lpdf-col.lua b/Master/texmf-dist/tex/context/base/lpdf-col.lua
new file mode 100644
index 00000000000..0e4f6e49588
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/lpdf-col.lua
@@ -0,0 +1,150 @@
+if not modules then modules = { } end modules ['lpdf-mis'] = {
+ version = 1.001,
+ comment = "companion to back-pdf.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local type = type
+local format, gsub = string.format, string.gsub
+
+-- colors = colors or { }
+-- transparencies = transparencies or { }
+
+local registercolor = colors.register
+local registertransparancy = transparencies.register
+local colorsvalue = colors.value
+local transparenciesvalue = transparencies.value
+
+-- Literals needed to inject code in the mp stream, we cannot use attributes there
+-- since literals may have qQ's, much may go away once we have mplib code in place.
+--
+-- This module assumes that some functions are defined in the colors namespace
+-- which mostlikely will be loaded later.
+
+function lpdf.color(model,ca,default) -- todo: use gray when no color
+ local cv = colorsvalue(ca)
+ if cv then
+ if model == 1 then
+ model = cv[1]
+ end
+ if model == 2 then
+ local s = cv[2]
+ return format("%s g %s G",s,s)
+ elseif model == 3 then
+ local r, g, b = cv[3], cv[4], cv[5]
+ return format("%s %s %s rg %s %s %s RG",r,g,b,r,g,b)
+ elseif model == 4 then
+ local c, m, y, k = cv[6],cv[7],cv[8],cv[9]
+ return format("%s %s %s %s k %s %s %s %s K",c,m,y,k,c,m,y,k)
+ else
+ local n,f,d,p = cv[10],cv[11],cv[12],cv[13]
+ if type(p) == "string" then
+ p = gsub(p,","," ") -- brr misuse of spot
+ end
+ return format("/%s cs /%s CS %s SCN %s scn",n,n,p,p)
+ end
+ else
+ return format("%s g %s G",default or 0,default or 0)
+ end
+end
+
+function lpdf.transparency(ct,default) -- kind of overlaps with transparencycode
+ -- beware, we need this hack because normally transparencies are not
+ -- yet registered and therefore the number is not not known ... we
+ -- might use the attribute number itself in the future
+ local ct = transparenciesvalue(ct)
+ if ct then
+ return format("/Tr%s gs",registertransparancy(nil,ct[1],ct[2],true))
+ else
+ return "/Tr0 gs"
+ end
+end
+
+function lpdf.colorvalue(model,ca,default)
+ local cv = colorsvalue(ca)
+ if cv then
+ if model == 1 then
+ model = cv[1]
+ end
+ if model == 2 then
+ return format("%s",cv[2])
+ elseif model == 3 then
+ return format("%s %s %s",cv[3],cv[4],cv[5])
+ elseif model == 4 then
+ return format("%s %s %s %s",cv[6],cv[7],cv[8],cv[9])
+ else
+ return format("%s",cv[13])
+ end
+ else
+ return format("%s",default or 0)
+ end
+end
+
+function lpdf.fdfcolor(model,ca,default)
+ local cv = colorsvalue(ca)
+ if cv then
+ if model == 1 then
+ model = cv[1]
+ end
+ if model == 2 then
+ return format("[%s]",cv[2])
+ elseif model == 3 then
+ return format("[%s %s %s]",cv[3],cv[4],cv[5])
+ elseif model == 4 then
+ return format("[%s %s %s %s]",cv[6],cv[7],cv[8],cv[9])
+ elseif model == 4 then
+ return format("[%s]",cv[13])
+ end
+ else
+ return format("[%s]",default or 0)
+ end
+end
+
+function lpdf.colorspace(model,ca)
+ local cv = colorsvalue(ca)
+ if cv then
+ if model == 1 then
+ model = cv[1]
+ end
+ if model == 2 then
+ return "DeviceGray"
+ elseif model == 3 then
+ return "DeviceRGB"
+ elseif model == 4 then
+ return "DeviceCMYK"
+ end
+ end
+ return "DeviceGRAY"
+end
+
+-- by registering we getconversion for free (ok, at the cost of overhead)
+
+local intransparency = false
+local pdfcolor = lpdf.color
+
+function lpdf.rgbcode(model,r,g,b)
+ return pdfcolor(model,registercolor(nil,'rgb',r,g,b))
+end
+function lpdf.cmykcode(model,c,m,y,k)
+ return pdfcolor(model,registercolor(nil,'cmyk',c,m,y,k))
+end
+function lpdf.graycode(model,s)
+ return pdfcolor(model,registercolor(nil,'gray',s))
+end
+function lpdf.spotcode(model,n,f,d,p)
+ return pdfcolor(model,registercolor(nil,'spot',n,f,d,p)) -- incorrect
+end
+function lpdf.transparencycode(a,t)
+ intransparency = true
+ return format("/Tr%s gs",registertransparancy(nil,a,t,true)) -- true forces resource
+end
+function lpdf.finishtransparencycode()
+ if intransparency then
+ intransparency = false
+ return "/Tr0 gs" -- we happen to know this -)
+ else
+ return ""
+ end
+end
diff --git a/Master/texmf-dist/tex/context/base/lpdf-fld.lua b/Master/texmf-dist/tex/context/base/lpdf-fld.lua
new file mode 100644
index 00000000000..6bdfdd36c38
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/lpdf-fld.lua
@@ -0,0 +1,751 @@
+if not modules then modules = { } end modules ['lpdf-fld'] = {
+ version = 1.001,
+ comment = "companion to lpdf-ini.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- cleaned up, e.g. no longer older viewers
+-- always kids so no longer explicit main / clone / copy
+-- some optimizations removed (will come bakc if needed)
+
+local gmatch, lower, format = string.gmatch, string.lower, string.format
+
+local texsprint, ctxcatcodes = tex.sprint, tex.ctxcatcodes
+
+local variables = interfaces.variables
+
+local nodeinjections = backends.pdf.nodeinjections
+local codeinjections = backends.pdf.codeinjections
+local registrations = backends.pdf.registrations
+
+local registeredsymbol = codeinjections.registeredsymbol
+
+local pdfstream = lpdf.stream
+local pdfdictionary = lpdf.dictionary
+local pdfarray = lpdf.array
+local pdfreference = lpdf.reference
+local pdfunicode = lpdf.unicode
+local pdfstring = lpdf.string
+local pdfconstant = lpdf.constant
+local pdftoeight = lpdf.toeight
+
+local pdfimmediateobj = pdf.immediateobj
+local pdfreserveobj = pdf.reserveobj
+
+local submitoutputformat = 0 -- 0=unknown 1=HTML 2=FDF 3=XML => not yet used, needs to be checked
+
+local splitter = lpeg.splitat("=>")
+
+local formats = {
+ html = 1, fdf = 2, xml = 3,
+}
+
+function codeinjections.setformsmethod(name)
+ submitoutputformat = formats[lower(name)] or 3
+end
+
+local flag = {
+ MultiLine = 4096, -- 13
+ NoToggleToOff = 16384, -- 15
+ Radio = 32768, -- 16
+ PushButton = 65536, -- 17
+ PopUp = 131072, -- 18
+ Edit = 262144, -- 19
+ RadiosInUnison = 33554432, -- 26
+ DoNotSpellCheck = 4194304, -- 23
+ DoNotScroll = 8388608, -- 24
+ ReadOnly = 1, -- 1
+ Required = 2, -- 2
+ NoExport = 4, -- 3
+ Password = 8192, -- 14
+ Sort = 524288, -- 20
+ FileSelect = 1048576, -- 21
+}
+
+local plus = {
+ Invisible = 1, -- 1
+ Hidden = 2, -- 2
+ Printable = 4, -- 3
+ NoView = 32, -- 6
+ ToggleNoView = 256, -- 9
+ AutoView = 256, -- 288 (6+9)
+}
+
+-- todo: check what is interfaced
+
+flag.readonly = flag.ReadOnly
+flag.required = flag.Required
+flag.protected = flag.Password
+flag.sorted = flag.Sort
+flag.unavailable = flag.NoExport
+flag.nocheck = flag.DoNotSpellCheck
+flag.fixed = flag.DoNotScroll
+flag.file = flag.FileSelect
+
+plus.hidden = plus.Hidden
+plus.printable = plus.Printable
+plus.auto = plus.AutoView
+
+-- some day .. lpeg with function or table
+
+local function fieldflag(specification)
+ local o, n = specification.options, 0
+ if o and o ~= "" then
+ for f in gmatch(o,"[^, ]+") do
+ n = n + (flag[f] or 0)
+ end
+ end
+ return n
+end
+
+local function fieldplus(specification)
+ local o, n = specification.options, 0
+ if o and o ~= "" then
+ for p in gmatch(o,"[^, ]+") do
+ n = n + (plus[p] or 0)
+ end
+ end
+ return n
+end
+
+
+local function checked(what)
+ if what and what ~= "" then
+ local set, bug = jobreferences.identify("",what)
+ return not bug and #set > 0 and lpdf.pdfaction(set)
+ end
+end
+
+local function fieldactions(specification) -- share actions
+--~ print(table.serialize(specification))
+ local d, a = { }, nil
+ a = specification.mousedown if a and a ~= "" then d.D = checked(a) end
+ a = specification.mouseup if a and a ~= "" then d.U = checked(a) end
+ a = specification.regionin if a and a ~= "" then d.E = checked(a) end -- Enter
+ a = specification.regionout if a and a ~= "" then d.X = checked(a) end -- eXit
+ a = specification.afterkeystroke if a and a ~= "" then d.K = checked(a) end
+ a = specification.formatresult if a and a ~= "" then d.F = checked(a) end
+ a = specification.validateresult if a and a ~= "" then d.V = checked(a) end
+ a = specification.calculatewhatever if a and a ~= "" then d.C = checked(a) end
+ a = specification.focusin if a and a ~= "" then d.Fo = checked(a) end
+ a = specification.focusout if a and a ~= "" then d.Bl = checked(a) end
+ -- a = specification.openpage if a and a ~= "" then d.PO = checked(a) end
+ -- a = specification.closepage if a and a ~= "" then d.PC = checked(a) end
+ -- a = specification.visiblepage if a and a ~= "" then d.PV = checked(a) end
+ -- a = specification.invisiblepage if a and a ~= "" then d.PI = checked(a) end
+ return next(d) and pdfdictionary(d)
+end
+
+-- fonts and color
+
+local fontnames = {
+ rmtf = "Times-Roman", rmbf = "Times-Bold",
+ rmit = "Times-Italic", rmsl = "Times-Italic",
+ rmbi = "Times-BoldItalic", rmbs = "Times-BoldItalic",
+ sstf = "Helvetica", ssbf = "Helvetica-Bold",
+ ssit = "Helvetica-Oblique", sssl = "Helvetica-Oblique",
+ ssbi = "Helvetica-BoldOblique", ssbs = "Helvetica-BoldOblique",
+ tttf = "Courier", ttbf = "Courier-Bold",
+ ttit = "Courier-Oblique", ttsl = "Courier-Oblique",
+ ttbi = "Courier-BoldOblique", ttbs = "Courier-BoldOblique",
+}
+
+local usedfonts = { }
+
+local function fieldsurrounding(specification)
+ local tag = (specification.fontstyle or "tt") .. (specification.fontalternative or "tf")
+ if not fontnames[tag] then
+ tag = "tttf"
+ end
+ local size = specification.fontsize
+ local stream = pdfstream {
+ pdfconstant(tag),
+ format("%s Tf",(size and (number.dimenfactors.bp * size)) or 12),
+ }
+ usedfonts[tag] = true
+ -- add color to stream: 0 g
+ -- move up with "x.y Ts"
+ return tostring(stream)
+end
+
+local function registerfonts()
+ if next(usedfonts) then
+ local d = pdfdictionary()
+ for tag, _ in next, usedfonts do
+ local f = pdfdictionary {
+ Type = pdfconstant("Font"),
+ Subtype = pdfconstant("Type1"), -- todo
+ Name = pdfconstant(tag),
+ BaseFont = pdfconstant(fontnames[tag]),
+ }
+ d[tag] = pdfreference(pdfimmediateobj(tostring(f)))
+ end
+ return d
+ end
+end
+
+-- cache
+
+local function fieldattributes(specification)
+--~ return pdfarray {
+--~ -- BG = -- backgroundcolor
+--~ -- BC = -- framecolor
+--~ }
+ return nil
+end
+
+-- symbols
+
+local function fieldappearances(specification)
+ -- todo: caching
+ local values = specification.values
+ local default = specification.default
+ if not values then
+ -- error
+ return
+ end
+ local v = aux.settings_to_array(values)
+ local n, r, d
+ if #v == 1 then
+ n, r, d = v[1], v[1], v[1]
+ elseif #v == 2 then
+ n, r, d = v[1], v[1], v[2]
+ else
+ n, r, d = v[1], v[2], v[3]
+ end
+ local appearance = pdfdictionary { -- cache this one
+ N = registeredsymbol(n), R = registeredsymbol(r), D = registeredsymbol(d),
+ }
+ return lpdf.sharedobj(tostring(appearance))
+end
+
+local function fieldstates(specification,forceyes)
+ -- we don't use Opt here (too messy for radio buttons)
+ local values, default = specification.values, specification.default
+ if not values then
+ -- error
+ return
+ end
+ local v = aux.settings_to_array(values)
+ local yes, off
+ if #v == 1 then
+ yes, off = v[1], v[1]
+ else
+ yes, off = v[1], v[2]
+ end
+ local yesshown, yesvalue = splitter:match(yes)
+ if not (yesshown and yesvalue) then
+ yesshown = yes, yes
+ end
+ yes = aux.settings_to_array(yesshown)
+ local offshown, offvalue = splitter:match(off)
+ if not (offshown and offvalue) then
+ offshown = off, off
+ end
+ off = aux.settings_to_array(offshown)
+ if #yes == 1 then
+ yesn, yesr, yesd = yes[1], yes[1], yes[1]
+ elseif #yes == 2 then
+ yesn, yesr, yesd = yes[1], yes[1], yes[2]
+ else
+ yesn, yesr, yesd = yes[1], yes[2], yes[3]
+ end
+ if #off == 1 then
+ offn, offr, offd = off[1], off[1], off[1]
+ elseif #off == 2 then
+ offn, offr, offd = off[1], off[1], off[2]
+ else
+ offn, offr, offd = off[1], off[2], off[3]
+ end
+ if not yesvalue then
+ yesvalue = yesn
+ end
+ if not offvalue then
+ offvalue = offn
+ end
+ forceyes = forceyes and "On" -- spec likes Yes more but we've used On for ages now
+ if default == yesn then
+ default = pdfconstant(forceyes or yesn)
+ else
+ default = pdfconstant("Off")
+ end
+ local appearance = pdfdictionary { -- maybe also cache components
+ N = pdfdictionary { [forceyes or yesn] = registeredsymbol(yesn), Off = registeredsymbol(offn) },
+ R = pdfdictionary { [forceyes or yesr] = registeredsymbol(yesr), Off = registeredsymbol(offr) },
+ D = pdfdictionary { [forceyes or yesd] = registeredsymbol(yesd), Off = registeredsymbol(offd) }
+ }
+ local appearanceref = lpdf.sharedobj(tostring(appearance))
+ return appearanceref, default
+end
+
+local function fieldoptions(specification)
+ local values = specification.values
+ local default = specification.default
+ if values then
+ local v = aux.settings_to_array(values)
+ for i=1,#v do
+ local vi = v[i]
+ local shown, value = splitter:match(vi)
+ if shown and value then
+ v[i] = pdfarray { pdfunicode(value), shown }
+ else
+ v[i] = pdfunicode(v[i])
+ end
+ end
+ return pdfarray(v)
+ end
+end
+
+local function radiodefault(parent,field)
+ local default, values = parent.default, parent.values
+ if not default or default == "" then
+ values = aux.settings_to_array(values)
+ default = values[1]
+ end
+ local name = field.name
+ local fieldvalues = aux.settings_to_array(field.values)
+ local yes, off = fieldvalues[1], fieldvalues[2] or fieldvalues[1]
+ if not default then
+ return pdfconstant(yes)
+ elseif default == name then
+ return pdfconstant(default)
+ else
+ return pdfconstant("Off")
+ end
+end
+
+-- layers
+
+local function fieldlayer(specification) -- we can move this in line
+ local layer = specification.layer
+ return (layer and lpdf.layerreferences[layer]) or nil
+end
+
+-- defining
+
+local fields, radios, fieldsets, calculationset = { }, { }, { }, nil
+
+function codeinjections.definefieldset(tag,list)
+ fieldsets[tag] = list
+end
+
+function codeinjections.getfieldset(tag)
+ return fieldsets[tag]
+end
+
+local function fieldsetlist(tag)
+ if tag then
+ local ft = fieldsets[tag]
+ if ft then
+ local a = pdfarray()
+ for name in gmatch(list,"[^, ]+") do
+ local f = field[name]
+ if f and f.pobj then
+ a[#a+1] = pdfreference(f.pobj)
+ end
+ end
+ return a
+ end
+ end
+end
+
+function codeinjections.setfieldcalculationset(tag)
+ calculationset = tag
+end
+
+local function predefinesymbols(specification)
+ local values = specification.values
+ if values then
+ local a, b = splitter:match(values)
+ codeinjections.presetsymbollist(a or values)
+ end
+end
+
+function codeinjections.getdefaultfieldvalue(name)
+ local f = fields[name]
+ if f then
+ local values = f.values
+ local default = f.default
+ if not default or default == "" then
+ local a, b = splitter:match(values)
+ values = a or values
+ for name in gmatch(list,"[^, ]+") do
+ default = name
+ break
+ end
+ end
+ if default then
+ tex.sprint(ctxcatcodes,default)
+ end
+ end
+end
+
+
+function codeinjections.definefield(specification)
+ local n = specification.name
+ local f = fields[n]
+ if not f then
+ local kind = specification.kind
+ if not kind then
+ -- name and kind are mandate
+ elseif kind == "radio" then
+ local values = specification.values
+ if values and values ~= "" then
+ values = aux.settings_to_array(values)
+ for v=1,#values do
+ radios[values[v]] = { parent = n }
+ end
+ fields[n] = specification
+ else
+ -- invalid radio specification
+ end
+ elseif kind == "sub" then
+ -- not in main field list !
+ local radio = radios[n]
+ if radio then
+ -- merge specification
+ for key, value in next, specification do
+ radio[key] = value
+ end
+ end
+ predefinesymbols(specification)
+ else
+ fields[n] = specification
+ predefinesymbols(specification)
+ end
+ else
+ -- already done
+ end
+end
+
+function codeinjections.clonefield(specification)
+ local p = specification.parent
+ local c = specification.children
+ if not p or not c then
+ -- parent and children are mandate
+ else
+ for n in gmatch(c,"[^, ]+") do
+ local f = fields[n]
+ if f and not f.done then
+ -- already done
+ else
+ fields[n] = specification
+ end
+ end
+ end
+end
+
+function codeinjections.getfieldgroup(name)
+ local f = fields[name]
+ if f and f.group then
+ texsprint(ctxcatcodes,f.group)
+ end
+end
+
+--
+
+function codeinjections.doiffieldset(tag)
+ commands.testcase(fieldsets[tag])
+end
+
+function codeinjections.doiffieldelse(name)
+ commands.testcase(fields[name])
+end
+
+--
+
+local alignments = {
+ flushleft = 0, right = 0,
+ center = 1, middle = 1,
+ flushright = 2, left = 2,
+}
+
+local function fieldalignment(specification)
+ return alignments[specification.align] or 0
+end
+
+local function enhance(specification,option)
+ local so = specification.options
+ if so and so ~= "" then
+ specification.options = so .. "," .. option
+ else
+ specification.options = option
+ end
+ return specification
+end
+
+-- finish
+
+local collected = pdfarray()
+
+function codeinjections.finishfields()
+ for name, field in next, fields do
+ local kids = field.kids
+ if kids then
+ pdfimmediateobj(field.kobj,tostring(kids))
+ end
+ local pobj = field.pobj
+ end
+ for name, field in next, radios do
+ local kids = field.kids
+ if kids then
+ pdfimmediateobj(field.kobj,tostring(kids))
+ end
+ end
+ if #collected > 0 then
+ local acroform = pdfdictionary {
+ NeedAppearances = true,
+ Fields = pdfreference(pdfimmediateobj(tostring(collected))),
+ DR = pdfdictionary { Font = registerfonts() },
+ CO = fieldsetlist(calculationset),
+ DA = "/tttf 12 Tf 0 g",
+ }
+ lpdf.addtocatalog("AcroForm",pdfreference(pdfimmediateobj(tostring(acroform))))
+ end
+ lpdf.finishfields = function() end
+end
+
+local pdf_widget = pdfconstant("Widget")
+local pdf_tx = pdfconstant("Tx")
+local pdf_ch = pdfconstant("Ch")
+local pdf_btn = pdfconstant("Btn")
+local pdf_yes = pdfconstant("Yes")
+local pdf_p = pdfconstant("P") -- None Invert Outline Push
+local pdf_n = pdfconstant("N") -- None Invert Outline Push
+--
+local pdf_no_rect = pdfarray { 0, 0, 0, 0 }
+
+local methods = { }
+
+function codeinjections.typesetfield(name,specification)
+ local field = fields[name] or radios[name]
+ if not field then
+ tex.write("error: " .. name)
+ -- unknown field
+ return
+ end
+ local method = methods[field.kind]
+ if method then
+ method(name,specification)
+ end
+end
+
+-- can be optional multipass optimization (share objects)
+
+local function save_parent(field,specification,d)
+ local kn = pdfreserveobj()
+ d.Kids = pdfreference(kn)
+ field.kobj = kn
+ field.kids = pdfarray()
+ local pn = pdfimmediateobj(tostring(d))
+ field.pobj = pn
+ collected[#collected+1] = pdfreference(pn)
+end
+
+local function save_kid(field,specification,d)
+ local kn = pdfreserveobj()
+ field.kids[#field.kids+1] = pdfreference(kn)
+ node.write(nodes.pdfannot(specification.width,specification.height,0,d(),kn))
+end
+
+function methods.line(name,specification,extras)
+ local field = fields[name]
+ local kind = field.kind
+ if not field.pobj then
+ if extras then
+ enhance(specification,extras)
+ end
+ local text = pdfunicode(specification.default)
+ local d = pdfdictionary {
+ Subtype = pdf_widget,
+ T = pdfunicode(specification.title),
+ F = fieldplus(specification),
+ Ff = fieldflag(specification),
+ OC = fieldlayer(specification),
+ MK = fieldsurrounding(specification),
+ AA = fieldactions(specification),
+ FT = pdf_tx,
+ Q = fieldalignment(specification),
+ MaxLen = (specification.length == 0 and 1000) or specification.length,
+ DV = text,
+ V = text,
+ }
+ save_parent(field,specification,d)
+ field.specification = specification
+ end
+ specification = field.specification or { } -- todo: radio spec
+ local d = pdfdictionary {
+ Subtype = pdf_widget,
+ Parent = pdfreference(field.pobj),
+ F = fieldplus(specification),
+ DA = fieldattributes(specification),
+ OC = fieldlayer(specification),
+ MK = fieldsurrounding(specification),
+ AA = fieldactions(specification),
+ Q = fieldalignment(specification)
+ }
+ save_kid(field,specification,d)
+end
+
+function methods.text(name,specification)
+ methods.line(name,specification,"MultiLine")
+end
+
+function methods.choice(name,specification,extras)
+ local field = fields[name]
+ local kind = field.kind
+ local d
+ if not field.pobj then
+ if extras then
+ enhance(specification,extras)
+ end
+ local d = pdfdictionary {
+ Subtype = pdf_widget,
+ T = pdfunicode(specification.title),
+ F = fieldplus(specification),
+ Ff = fieldflag(specification),
+ OC = fieldlayer(specification),
+ AA = fieldactions(specification),
+ FT = pdf_ch,
+ Opt = fieldoptions(field),
+ }
+ save_parent(field,specification,d)
+ field.specification = specification
+ end
+ specification = field.specification or { }
+ local d = pdfdictionary {
+ Subtype = pdf_widget,
+ Parent = pdfreference(field.pobj),
+ F = fieldplus(specification),
+ DA = fieldattributes(specification),
+ OC = fieldlayer(specification),
+ AA = fieldactions(specification),
+ }
+ save_kid(field,specification,d)
+end
+
+function methods.popup(name,specification)
+ methods.choice(name,specification,"PopUp")
+end
+function methods.combo(name,specification)
+ methods.choice(name,specification,"PopUp,Edit")
+end
+
+-- Probably no default appearance needed for first kid and no javascripts for the
+-- parent ... I will look into it when I have to make a complex document.
+
+function methods.check(name,specification)
+ -- no /Opt because (1) it's messy - see pdf spec, (2) it discouples kids and
+ -- contrary to radio there is no way to associate then
+ local field = fields[name]
+ local kind = field.kind
+ local appearance, default = fieldstates(field,true)
+ if not field.pobj then
+ local d = pdfdictionary {
+ Subtype = pdf_widget,
+ T = pdfunicode(specification.title),
+ F = fieldplus(specification),
+ Ff = fieldflag(specification),
+ OC = fieldlayer(specification),
+ AA = fieldactions(specification),
+ FT = pdf_btn,
+ DV = default,
+ V = default,
+ AS = default,
+ AP = appearance,
+ H = pdf_n,
+ }
+ save_parent(field,specification,d)
+ field.specification = specification
+ end
+ specification = field.specification or { } -- todo: radio spec
+ local d = pdfdictionary {
+ Subtype = pdf_widget,
+ Parent = pdfreference(field.pobj),
+ F = fieldplus(specification),
+ DA = fieldattributes(specification),
+ OC = fieldlayer(specification),
+ AA = fieldactions(specification),
+ DV = default,
+ V = default,
+ AS = default,
+ AP = appearance,
+ H = pdf_n,
+ }
+ save_kid(field,specification,d)
+end
+
+function methods.push(name,specification)
+ local field = fields[name]
+ local kind = field.kind
+ if not field.pobj then
+ enhance(specification,"PushButton")
+ local d = pdfdictionary {
+ Subtype = pdf_widget,
+ T = pdfunicode(specification.title),
+ F = fieldplus(specification),
+ Ff = fieldflag(specification),
+ OC = fieldlayer(specification),
+ AA = fieldactions(specification),
+ FT = pdf_btn,
+ AP = fieldappearances(field),
+ H = pdf_p,
+ }
+ save_parent(field,specification,d)
+ field.specification = specification
+ end
+ specification = field.specification or { } -- todo: radio spec
+ local d = pdfdictionary {
+ Subtype = pdf_widget,
+ Parent = pdfreference(field.pobj),
+ F = fieldplus(specification),
+ DA = fieldattributes(specification),
+ OC = fieldlayer(specification),
+ AA = fieldactions(specification),
+ AP = fieldappearances(field),
+ H = pdf_p,
+ }
+ save_kid(field,specification,d)
+end
+
+function methods.sub(name,specification)
+ local field = radios[name]
+ if not field then
+ return
+ end
+ local parent = fields[field.parent]
+ if not parent then
+ return
+ end
+ if not parent.pobj then
+ local specification = parent.specification or { }
+ enhance(specification,"Radio,RadiosInUnison")
+ local d = pdfdictionary {
+ T = parent.name,
+ FT = pdf_btn,
+ Rect = pdf_no_rect,
+ F = fieldplus(specification),
+ Ff = fieldflag(specification),
+ H = pdf_n,
+ }
+ save_parent(parent,specification,d)
+ end
+ local appearance = fieldstates(field)
+ local default = radiodefault(parent,field)
+ local d = pdfdictionary {
+ Subtype = pdf_widget,
+ Parent = pdfreference(parent.pobj),
+ F = fieldplus(specification),
+ DA = fieldattributes(specification),
+ OC = fieldlayer(specification),
+ AA = fieldactions(specification),
+ DV = default,
+ V = default,
+ AS = default,
+ AP = appearance,
+ H = pdf_n,
+ }
+ save_kid(parent,specification,d)
+end
diff --git a/Master/texmf-dist/tex/context/base/lpdf-grp.lua b/Master/texmf-dist/tex/context/base/lpdf-grp.lua
new file mode 100644
index 00000000000..119d25ee45f
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/lpdf-grp.lua
@@ -0,0 +1,70 @@
+if not modules then modules = { } end modules ['lpdf-grp'] = {
+ version = 1.001,
+ comment = "companion to lpdf-ini.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local format = string.format
+
+local nodeinjections = backends.pdf.nodeinjections
+local codeinjections = backends.pdf.codeinjections
+local registrations = backends.pdf.registrations
+
+local pdfdictionary = lpdf.dictionary
+local pdfarray = lpdf.array
+local pdfconstant = lpdf.constant
+local pdfreference = lpdf.reference
+
+local pdfreserveobj = pdf.reserveobj
+local pdfimmediateobj = pdf.immediateobj
+
+local function shade(stype,name,domain,color_a,color_b,n,colorspace,coordinates)
+ local f = pdfdictionary {
+ FunctionType = 2,
+ Domain = pdfarray(domain), -- domain is actually a string
+ C0 = pdfarray(color_a),
+ C1 = pdfarray(color_b),
+ N = tonumber(n),
+ }
+ local s = pdfdictionary {
+ ShadingType = stype,
+ ColorSpace = pdfconstant(colorspace),
+ Function = pdfreference(pdfimmediateobj(tostring(f))),
+ Coords = pdfarray(coordinates),
+ Extend = pdfarray { true, true },
+ }
+ lpdf.adddocumentshade(name,pdfreference(pdfimmediateobj(tostring(s))))
+end
+
+function lpdf.circularshade(name,domain,color_a,color_b,n,colorspace,coordinates)
+ shade(3,name,domain,color_a,color_b,n,colorspace,coordinates)
+end
+
+function lpdf.linearshade(name,domain,color_a,color_b,n,colorspace,coordinates)
+ shade(2,name,domain,color_a,color_b,n,colorspace,coordinates)
+end
+
+function lpdf.colorspec(model,ca,default)
+ if ca and ca > 0 then
+ local cv = colors.value(ca)
+ if cv then
+ if model == 1 then
+ model = cv[1]
+ end
+ if model == 2 then
+ return pdfarray { cv[2] }
+ elseif model == 3 then
+ return pdfarray { cv[3],cv[4],cv[5] }
+ elseif model == 4 then
+ return pdfarray { cv[6],cv[7],cv[8],cv[9] }
+ elseif model == 5 then
+ return pdfarray { cv[13] }
+ end
+ end
+ end
+ if default then
+ return default
+ end
+end
diff --git a/Master/texmf-dist/tex/context/base/lpdf-ini.lua b/Master/texmf-dist/tex/context/base/lpdf-ini.lua
new file mode 100644
index 00000000000..3335c623756
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/lpdf-ini.lua
@@ -0,0 +1,519 @@
+if not modules then modules = { } end modules ['back-pdf'] = {
+ version = 1.001,
+ comment = "companion to lpdf-ini.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- This code is very experimental !
+
+local setmetatable, getmetatable, type, next, tostring, tonumber, rawset = setmetatable, getmetatable, type, next, tostring, tonumber, rawset
+local char, byte, format, gsub, concat = string.char, string.byte, string.format, string.gsub, table.concat
+local utfvalues = string.utfvalues
+local texwrite = tex.write
+local sind, cosd = math.sind, math.cosd
+
+local trace_finalizers = false trackers.register("backend.finalizers", function(v) trace_finalizers = v end)
+
+lpdf = lpdf or { }
+
+local function tosixteen(str)
+ if not str or str == "" then
+ return "()"
+ else
+ local r = { "<feff" }
+ for b in utfvalues(str) do
+ if b < 0x10000 then
+ r[#r+1] = format("%04x",b)
+ else
+ r[#r+1] = format("%04x%04x",b/1024+0xD800,b%1024+0xDC00)
+ end
+ end
+ r[#r+1] = ">"
+ return concat(r)
+ end
+end
+
+lpdf.tosixteen = tosixteen
+
+-- lpeg is some 5 times faster than gsub (in test) on escaping
+
+local escapes = {
+ ["\\"] = "\\\\",
+ ["/"] = "\\/", ["#"] = "\\#",
+ ["<"] = "\\<", [">"] = "\\>",
+ ["["] = "\\[", ["]"] = "\\]",
+ ["("] = "\\(", [")"] = "\\)",
+}
+
+local escaped = lpeg.Cs(lpeg.Cc("(") * (lpeg.S("\\/#<>[]()")/escapes + lpeg.P(1))^0 * lpeg.Cc(")"))
+
+local function toeight(str)
+ -- if not str or str == "" then
+ -- return "()"
+ -- else
+ -- return escaped:match(str)
+ -- end
+ --
+ -- no need for escaping .. just use unicode instead
+ return "(" .. str .. ")"
+end
+
+lpdf.toeight = toeight
+
+local escapes = "-"
+
+local escaped = lpeg.Cs(lpeg.Cc("(") * (lpeg.S("\\/#<>[]()")/escapes + lpeg.P(1))^0 * lpeg.Cc(")"))
+
+local function cleaned(str)
+ if not str or str == "" then
+ return "()"
+ else
+ return escaped:match(str)
+ end
+end
+
+lpdf.cleaned = cleaned
+
+local function merge_t(a,b)
+ local t = { }
+ for k,v in next, a do t[k] = v end
+ for k,v in next, b do t[k] = v end
+ return setmetatable(t,getmetatable(a))
+end
+
+local tostring_a, tostring_d
+
+tostring_d = function(t,contentonly,key)
+ if not next(t) then
+ if contentonly then
+ return ""
+ else
+ return "<< >>"
+ end
+ else
+ local r = { }
+ for k, v in next, t do
+ local tv = type(v)
+ if tv == "string" then
+ r[#r+1] = format("/%s %s",k,toeight(v))
+ elseif tv == "unicode" then
+ r[#r+1] = format("/%s %s",k,tosixteen(v))
+ elseif tv == "table" then
+ local mv = getmetatable(v)
+ if mv and mv.__lpdftype then
+ r[#r+1] = format("/%s %s",k,tostring(v))
+ elseif v[1] then
+ r[#r+1] = format("/%s %s",k,tostring_a(v))
+ else
+ r[#r+1] = format("/%s %s",k,tostring_d(v))
+ end
+ else
+ r[#r+1] = format("/%s %s",k,tostring(v))
+ end
+ end
+ if contentonly then
+ return concat(r, " ")
+ elseif key then
+ return format("/%s << %s >>", key, concat(r, " "))
+ else
+ return format("<< %s >>", concat(r, " "))
+ end
+ end
+end
+
+tostring_a = function(t,contentonly,key)
+ if #t == 0 then
+ if contentonly then
+ return ""
+ else
+ return "[ ]"
+ end
+ else
+ local r = { }
+ for k, v in next, t do
+ local tv = type(v)
+ if tv == "string" then
+ r[#r+1] = toeight(v)
+ elseif tv == "unicode" then
+ r[#r+1] = tosixteen(v)
+ elseif tv == "table" then
+ local mv = getmetatable(v)
+ if mv and mv.__lpdftype then
+ r[#r+1] = tostring(v)
+ elseif v[1] then
+ r[#r+1] = tostring_a(v)
+ else
+ r[#r+1] = tostring_d(v)
+ end
+ else
+ r[#r+1] = tostring(v)
+ end
+ end
+ if contentonly then
+ return concat(r, " ")
+ elseif key then
+ return format("/%s [ %s ]", key, concat(r, " "))
+ else
+ return format("[ %s ]", concat(r, " "))
+ end
+ end
+end
+
+local tostring_x = function(t) return concat(t, " ") end
+local tostring_s = function(t) return toeight(t[1]) end
+local tostring_u = function(t) return tosixteen(t[1]) end
+local tostring_n = function(t) return tostring(t[1]) end -- tostring not needed
+local tostring_c = function(t) return t[1] end -- already prefixed (hashed)
+local tostring_z = function() return "null" end
+local tostring_t = function() return "true" end
+local tostring_f = function() return "false" end
+local tostring_r = function(t) return t[1] .. " 0 R" end
+local tostring_v = function(t) return concat(t[1],"") end
+
+local function value_x(t) return t end -- the call is experimental
+local function value_s(t,key) return t[1] end -- the call is experimental
+local function value_u(t,key) return t[1] end -- the call is experimental
+local function value_n(t,key) return t[1] end -- the call is experimental
+local function value_c(t) return sub(t[1],2) end -- the call is experimental
+local function value_d(t) return tostring_d(t,true,key) end -- the call is experimental
+local function value_a(t) return tostring_a(t,true,key) end -- the call is experimental
+local function value_z() return nil end -- the call is experimental
+local function value_t() return true end -- the call is experimental
+local function value_b() return false end -- the call is experimental
+local function value_r() return t[1] end -- the call is experimental
+local function value_v() return t[1] end -- the call is experimental
+
+local function add_x(t,k,v) rawset(t,k,tostring(v)) end
+
+local mt_x = { __lpdftype = "stream", __tostring = tostring_x, __call = value_x, __newindex = add_x }
+local mt_d = { __lpdftype = "dictionary", __tostring = tostring_d, __call = value_d }
+local mt_a = { __lpdftype = "array", __tostring = tostring_a, __call = value_a }
+local mt_u = { __lpdftype = "unicode", __tostring = tostring_u, __call = value_u }
+local mt_s = { __lpdftype = "string", __tostring = tostring_s, __call = value_s }
+local mt_n = { __lpdftype = "number", __tostring = tostring_n, __call = value_n }
+local mt_c = { __lpdftype = "constant", __tostring = tostring_c, __call = value_c }
+local mt_z = { __lpdftype = "null", __tostring = tostring_z, __call = value_z }
+local mt_t = { __lpdftype = "true", __tostring = tostring_t, __call = value_t }
+local mt_f = { __lpdftype = "false", __tostring = tostring_f, __call = value_f }
+local mt_r = { __lpdftype = "reference", __tostring = tostring_r, __call = value_r }
+local mt_v = { __lpdftype = "verbose", __tostring = tostring_v, __call = value_v }
+
+function lpdf.stream(t)
+ if t then
+ for i=1,#t do
+ t[i] = tostring(t[i])
+ end
+ end
+ return setmetatable(t or { },mt_x)
+end
+
+function lpdf.dictionary(t)
+ return setmetatable(t or { },mt_d)
+end
+
+function lpdf.array(t)
+ if type(t) == "string"then
+ return setmetatable({ t },mt_a)
+ else
+ return setmetatable(t or { },mt_a)
+ end
+end
+
+function lpdf.string(str,default)
+ return setmetatable({ str or default or "" },mt_s)
+end
+
+function lpdf.unicode(str,default)
+ return setmetatable({ str or default or "" },mt_u)
+end
+
+local cache = { } -- can be weak
+
+function lpdf.number(n,default) -- 0-10
+ n = n or default
+ local c = cache[n]
+ if not c then
+ c = setmetatable({ n },mt_n)
+ -- cache[n] = c -- too many numbers
+ end
+ return c
+end
+
+for i=-1,9 do cache[i] = lpdf.number(i) end
+
+local cache = { } -- can be weak
+
+function lpdf.constant(str,default)
+ str = str or default or ""
+ local c = cache[str]
+ if not c then
+ c = setmetatable({ "/" .. str },mt_c)
+ cache[str] = c
+ end
+ return c
+end
+
+local p_null = { } setmetatable(p_null, mt_z)
+local p_true = { } setmetatable(p_true, mt_t)
+local p_false = { } setmetatable(p_false,mt_f)
+
+function lpdf.null()
+ return p_null
+end
+
+function lpdf.boolean(b,default)
+ if ((type(b) == boolean) and b) or default then
+ return p_true
+ else
+ return p_false
+ end
+end
+
+function lpdf.reference(r)
+ return setmetatable({ r or 0 },mt_r)
+end
+
+function lpdf.verbose(t) -- maybe check for type
+ return setmetatable({ t or "" },mt_v)
+end
+
+--~ local d = lpdf.dictionary()
+--~ local e = lpdf.dictionary { ["e"] = "abc" }
+--~ local f = lpdf.dictionary { ["f"] = "ABC" }
+--~ local a = lpdf.array()
+
+--~ d["test"] = lpdf.string ("test")
+--~ d["more"] = "more"
+--~ d["bool"] = true
+--~ d["numb"] = 1234
+--~ d["oeps"] = lpdf.dictionary { ["hans"] = "ton" }
+--~ d["whow"] = lpdf.array { lpdf.string("ton") }
+
+--~ a[#a+1] = lpdf.string("xxx")
+--~ a[#a+1] = lpdf.string("yyy")
+
+--~ d.what = a
+
+--~ print(d)
+
+--~ local d = lpdf.dictionary()
+--~ d["abcd"] = { 1, 2, 3, "test" }
+--~ print(d)
+
+--~ local d = lpdf.array()
+--~ d[#d+1] = { 1, 2, 3, "test" }
+--~ print(d)
+
+--~ local d = lpdf.array()
+--~ d[#d+1] = { a=1, b=2, c=3, d="test" }
+--~ print(d)
+
+--~ local s = lpdf.boolean(false)
+--~ print(s()) -- fails somehow
+
+function lpdf.checkedkey(t,key,kind)
+ local pn = t[key]
+ if pn then
+ local tn = type(pn)
+ if tn == kind then
+ if kind == "string" then
+ return pn ~= "" and pn
+ elseif kind == "table" then
+ return next(pn) and pn
+ else
+ return pn
+ end
+ elseif tn == "string" and kind == "number" then
+ return tonumber(pn)
+ end
+ end
+end
+
+function lpdf.checkedvalue(value,kind) -- code not shared
+ if value then
+ local tv = type(value)
+ if tv == kind then
+ if kind == "string" then
+ return value ~= "" and value
+ elseif kind == "table" then
+ return next(value) and value
+ else
+ return value
+ end
+ elseif tv == "string" and kind == "number" then
+ return tonumber(value)
+ end
+ end
+end
+
+function lpdf.limited(n,min,max,default)
+ if not n then
+ return default
+ else
+ n = tonumber(n)
+ if not n then
+ return default
+ elseif n > max then
+ return max
+ elseif n < min then
+ return min
+ else
+ return n
+ end
+ end
+end
+
+-- there will be more of this
+
+local pdfreference = lpdf.reference
+local pdfdictionary = lpdf.dictionary
+local pdfreserveobj = pdf.reserveobj
+local pdfimmediateobj = pdf.immediateobj
+
+local texset, texsprint, ctxcatcodes = tex.set, tex.sprint, tex.ctxcatcodes
+
+local pdfobjcache = { }
+
+function lpdf.sharedobj(content)
+ local r = pdfobjcache[content]
+ if not r then
+ r = pdfreference(pdfimmediateobj(content))
+ pdfobjcache[content] = r
+ end
+ return r
+end
+
+-- saves definitions later on
+
+backends = backends or { }
+backends.pdf = backends.pdf or {
+ comment = "backend for directly generating pdf output",
+ nodeinjections = { },
+ codeinjections = { },
+ registrations = { },
+ helpers = { },
+}
+
+-- three priority levels, default=2
+
+local pagefinalizers, documentfinalizers = { { }, { }, { } }, { { }, { }, { } }
+
+local pageresources, pageattributes, pagesattributes
+
+local function resetpageproperties()
+ pageresources = pdfdictionary()
+ pageattributes = pdfdictionary()
+ pagesattributes = pdfdictionary()
+end
+
+local function setpageproperties()
+ texset("global", "pdfpageresources", pageresources ())
+ texset("global", "pdfpageattr", pageattributes ())
+ texset("global", "pdfpagesattr", pagesattributes())
+end
+
+function lpdf.addtopageresources (k,v) pageresources [k] = v end
+function lpdf.addtopageattributes (k,v) pageattributes [k] = v end
+function lpdf.addtopagesattributes(k,v) pagesattributes[k] = v end
+
+local function set(where,f,when,what)
+ when = when or 2
+ local w = where[when]
+ w[#w+1] = f
+ if trace_finalizers then
+ logs.report("backend","%s set: [%s,%s]",what,when,#w)
+ end
+end
+
+local function run(where,what)
+ for i=1,#where do
+ local w = where[i]
+ for j=1,#w do
+ if trace_finalizers then
+ logs.report("backend","%s finalizer: [%s,%s]",what,i,j)
+ end
+ w[j]()
+ end
+ end
+end
+
+function lpdf.registerpagefinalizer(f,when)
+ set(pagefinalizers,f,when,"page")
+end
+
+function lpdf.registerdocumentfinalizer(f,when)
+ set(documentfinalizers,f,when,"document")
+end
+
+function lpdf.finalizepage()
+ if not environment.initex then
+ resetpageproperties()
+ run(pagefinalizers,"page")
+ setpageproperties()
+ end
+end
+
+function lpdf.finalizedocument()
+ if not environment.initex then
+ run(documentfinalizers,"document")
+ end
+end
+
+local c_template = "\\normalpdfcatalog{/%s %s}"
+local i_template = "\\normalpdfinfo{/%s %s}"
+local n_template = "\\normalpdfnames{/%s %s}"
+
+function lpdf.addtocatalog(k,v) if not environment.initex then texsprint(ctxcatcodes,format(c_template,k,tostring(v))) end end
+function lpdf.addtoinfo (k,v) if not environment.initex then texsprint(ctxcatcodes,format(i_template,k,tostring(v))) end end
+function lpdf.addtonames (k,v) if not environment.initex then texsprint(ctxcatcodes,format(n_template,k,tostring(v))) end end
+
+local r_extgstates, d_extgstates = pdfreserveobj(), pdfdictionary() local p_extgstates = pdfreference(r_extgstates)
+local r_colorspaces, d_colorspaces = pdfreserveobj(), pdfdictionary() local p_colorspaces = pdfreference(r_colorspaces)
+local r_patterns, d_patterns = pdfreserveobj(), pdfdictionary() local p_patterns = pdfreference(r_patterns)
+local r_shades, d_shades = pdfreserveobj(), pdfdictionary() local p_shades = pdfreference(r_shades)
+
+local function checkextgstates () if next(d_extgstates ) then lpdf.addtopageresources("ExtGState", p_extgstates ) end end
+local function checkcolorspaces() if next(d_colorspaces) then lpdf.addtopageresources("ColorSpace",p_colorspaces) end end
+local function checkpatterns () if next(d_patterns ) then lpdf.addtopageresources("Pattern", p_patterns ) end end
+local function checkshades () if next(d_shades ) then lpdf.addtopageresources("Shading", p_shades ) end end
+
+local function flushextgstates () if next(d_extgstates ) then pdfimmediateobj(r_extgstates, tostring(d_extgstates )) end end
+local function flushcolorspaces() if next(d_colorspaces) then pdfimmediateobj(r_colorspaces,tostring(d_colorspaces)) end end
+local function flushpatterns () if next(d_patterns ) then pdfimmediateobj(r_patterns, tostring(d_patterns )) end end
+local function flushshades () if next(d_shades ) then pdfimmediateobj(r_shades, tostring(d_shades )) end end
+
+local collected = pdfdictionary {
+ ExtGState = p_extgstates,
+ ColorSpace = p_colorspaces,
+ Pattern = p_patterns,
+ Shading = p_shades,
+} ; collected = collected()
+
+function lpdf.collectedresources()
+ tex.sprint(tex.ctxcatcodes,collected)
+end
+
+function lpdf.adddocumentextgstate (k,v) d_extgstates [k] = v end
+function lpdf.adddocumentcolorspace(k,v) d_colorspaces[k] = v end
+function lpdf.adddocumentpattern (k,v) d_patterns [k] = v end
+function lpdf.adddocumentshade (k,v) d_shades [k] = v end
+
+lpdf.registerdocumentfinalizer(flushextgstates,3)
+lpdf.registerdocumentfinalizer(flushcolorspaces,3)
+lpdf.registerdocumentfinalizer(flushpatterns,3)
+lpdf.registerdocumentfinalizer(flushshades,3)
+
+lpdf.registerpagefinalizer(checkextgstates,3)
+lpdf.registerpagefinalizer(checkcolorspaces,3)
+lpdf.registerpagefinalizer(checkpatterns,3)
+lpdf.registerpagefinalizer(checkshades,3)
+
+--
+
+function lpdf.rotationcm(a)
+ local s, c = sind(a), cosd(a)
+ texwrite(format("%s %s %s %s 0 0 cm",c,s,-s,c))
+end
+
diff --git a/Master/texmf-dist/tex/context/base/lpdf-ini.mkiv b/Master/texmf-dist/tex/context/base/lpdf-ini.mkiv
new file mode 100644
index 00000000000..771ed3c5817
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/lpdf-ini.mkiv
@@ -0,0 +1,260 @@
+%D \module
+%D [ file=lpdf-ini,
+%D version=2009.04.15,
+%D title=\CONTEXT\ Backend Macros,
+%D subtitle=PDF,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=\PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Backend Macros / PDF}
+
+\registerctxluafile{lpdf-ini}{1.001}
+\registerctxluafile{lpdf-nod}{1.001}
+%registerctxluafile{lpdf-col}{1.001} % will be loaded later
+\registerctxluafile{lpdf-mis}{1.001}
+\registerctxluafile{lpdf-ano}{1.001}
+\registerctxluafile{lpdf-ren}{1.001}
+\registerctxluafile{lpdf-grp}{1.001}
+\registerctxluafile{lpdf-wid}{1.001}
+\registerctxluafile{lpdf-fld}{1.001}
+\registerctxluafile{lpdf-u3d}{1.001}
+
+
+\unprotect
+
+% for the moment here
+
+%D \macros
+%D {doovalbox}
+%D
+%D Drawing frames with round corners is inherited from the
+%D main module.
+%D
+%D For drawing ovals we use quite raw \PDF\ code. The next
+%D implementation does not differ that much from the one
+%D implemented in the \POSTSCRIPT\ driver.
+
+\def\doPDFovalcalc#1#2#3%
+ {\PointsToBigPoints{\dimexpr#1+#2\relax}#3}
+
+\def\doovalbox#1#2#3#4#5#6#7#8% todo: \scratchdimen/\scatchbox
+ {\forcecolorhack
+ \bgroup
+ \dimen0=#4\divide\dimen0 \plustwo
+ \doPDFovalcalc{0pt}{+\dimen0}\xmin
+ \doPDFovalcalc{#1}{-\dimen0}\xmax
+ \doPDFovalcalc{#2}{-\dimen0}\ymax
+ \doPDFovalcalc{-#3}{+\dimen0}\ymin
+ \advance\dimen0 by #5%
+ \doPDFovalcalc{0pt}{+\dimen0}\xxmin
+ \doPDFovalcalc{#1}{-\dimen0}\xxmax
+ \doPDFovalcalc{#2}{-\dimen0}\yymax
+ \doPDFovalcalc{-#3}{+\dimen0}\yymin
+ \doPDFovalcalc{#4}{\zeropoint}\stroke
+ \doPDFovalcalc{#5}{\zeropoint}\radius
+ \edef\dostroke{#6}%
+ \edef\dofill{#7}%
+ \edef\mode{\number#8 \space}%
+ % no \ifcase, else \relax in pdfcode
+ \setbox\scratchbox\hbox
+ {\ifnum\dostroke\dofill>\zerocount
+ \pdfliteral
+ {q
+ \stroke\space w
+ \ifcase\mode
+ \xxmin\space \ymin \space m
+ \xxmax\space \ymin \space l
+ \xmax \space \ymin \space \xmax \space \yymin\space y
+ \xmax \space \yymax\space l
+ \xmax \space \ymax \space \xxmax\space \ymax \space y
+ \xxmin\space \ymax \space l
+ \xmin \space \ymax \space \xmin \space \yymax\space y
+ \xmin \space \yymin\space l
+ \xmin \space \ymin \space \xxmin\space \ymin \space y
+ h
+ \or % 1
+ \xxmin\space \ymin \space m
+ \xxmax\space \ymin \space l
+ \xmax \space \ymin \space \xmax \space \yymin\space y
+ \xmax \space \ymax \space l
+ \xmin \space \ymax \space l
+ \xmin \space \yymin\space l
+ \xmin \space \ymin \space \xxmin\space \ymin \space y
+ h
+ \or % 2
+ \xxmin\space \ymin \space m
+ \xmax \space \ymin \space l
+ \xmax \space \ymax \space l
+ \xxmin\space \ymax \space l
+ \xmin \space \ymax \space \xmin \space \yymax\space y
+ \xmin \space \yymin\space l
+ \xmin \space \ymin \space \xxmin\space \ymin \space y
+ h
+ \or % 3
+ \xmin \space \ymin \space m
+ \xmax \space \ymin \space l
+ \xmax \space \yymax\space l
+ \xmax \space \ymax \space \xxmax\space \ymax \space y
+ \xxmin\space \ymax \space l
+ \xmin \space \ymax \space \xmin \space \yymax\space y
+ \xmin \space \ymin \space l
+ h
+ \or % 4
+ \xmin \space \ymin \space m
+ \xxmax\space \ymin \space l
+ \xmax \space \ymin \space \xmax \space \yymin\space y
+ \xmax \space \yymax\space l
+ \xmax \space \ymax \space \xxmax\space \ymax \space y
+ \xmin \space \ymax \space l
+ \xmin \space \ymin\space l
+ h
+ \or % 5
+ \xmin \space \ymin \space m
+ \xmax \space \ymin \space l
+ \xmax \space \yymax\space l
+ \xmax \space \ymax \space \xxmax\space \ymax \space y
+ \xmin \space \ymax \space l
+ \xmin \space \ymin \space l
+ h
+ \or % 6
+ \xmin \space \ymin \space m
+ \xxmax\space \ymin \space l
+ \xmax \space \ymin \space \xmax \space \yymin\space y
+ \xmax \space \ymax \space l
+ \xmin \space \ymax \space l
+ \xmin \space \ymin \space l
+ h
+ \or
+ \xxmin\space \ymin \space m
+ \xmax \space \ymin \space l
+ \xmax \space \ymax \space l
+ \xmin \space \ymax \space l
+ \xmin \space \yymin\space l
+ \xmin \space \ymin \space \xxmin\space \ymin \space y
+ h
+ \or
+ \xmin \space \ymin \space m
+ \xmax \space \ymin \space l
+ \xmax \space \ymax \space l
+ \xxmin\space \ymax \space l
+ \xmin \space \ymax \space \xmin \space \yymax\space y
+ \xmin \space \ymin \space l
+ h
+ \or % 9 top open
+ \xmin \space \ymax \space m
+ \xmin \space \yymin\space l
+ \xmin \space \ymin \space \xxmin\space \ymin \space y
+ \xxmax\space \ymin \space l
+ \xmax \space \ymin \space \xmax \space \yymin\space y
+ \xmax \space \ymax \space l
+ \or % 10 right open
+ \xmax \space \ymax \space m
+ \xxmin\space \ymax \space l
+ \xmin \space \ymax \space \xmin \space \yymax\space y
+ \xmin \space \yymin\space l
+ \xmin \space \ymin \space \xxmin\space \ymin \space y
+ \xmax\space \ymin \space l
+ \or % 11 bottom open
+ \xmax \space \ymin \space m
+ \xmax \space \yymax\space l
+ \xmax \space \ymax \space \xxmax \space \ymax\space y
+ \xxmin\space \ymax \space l
+ \xmin \space \ymax \space \xmin \space \yymax\space y
+ \xmin \space \ymin \space l
+ \or % 12 left open
+ \xmin \space \ymax \space m
+ \xxmax\space \ymax \space l
+ \xmax \space \ymax \space \xmax \space \yymax\space y
+ \xmax \space \yymin\space l
+ \xmax \space \ymin \space \xxmax\space \ymin \space y
+ \xmin \space \ymin \space l
+ \or % 13
+ \xmin \space \ymax \space m
+ \xxmax\space \ymax \space l
+ \xmax \space \ymax \space \xmax \space \yymax\space y
+ \xmax\space \ymin \space l
+ \or % 14
+ \xmax \space \ymax \space m
+ \xmax \space \yymin\space l
+ \xmax \space \ymin \space \xxmax\space \ymin \space y
+ \xmin \space \ymin \space l
+ \or % 15
+ \xmax \space \ymin \space m
+ \xxmin\space \ymin \space l
+ \xmin \space \ymin \space \xmin \space \yymin\space y
+ \xmin \space \ymax \space l
+ \or % 16
+ \xmin \space \ymin \space m
+ \xmin \space \yymax\space l
+ \xmin \space \ymax \space \xxmin\space \ymax \space y
+ \xmax \space \ymax \space l
+ \or % 17
+ \xxmax\space \ymax \space m
+ \xmax \space \ymax \space \xmax \space \yymax\space y
+ \or % 18
+ \xmax \space \yymin\space m
+ \xmax \space \ymin \space \xxmax\space \ymin \space y
+ \or % 19
+ \xxmin\space \ymin \space m
+ \xmin \space \ymin \space \xmin \space \yymin\space y
+ \or % 20
+ \xmin \space \yymax\space m
+ \xmin \space \ymax \space \xxmin\space \ymax \space y
+ \or % 21
+ \xxmax\space \ymax \space m
+ \xmax \space \ymax \space \xmax \space \yymax\space y
+ \xmin \space \yymax\space m
+ \xmin \space \ymax \space \xxmin\space \ymax \space y
+ \or % 22
+ \xxmax\space \ymax \space m
+ \xmax \space \ymax \space \xmax \space \yymax\space y
+ \xmax \space \yymin\space m
+ \xmax \space \ymin \space \xxmax\space \ymin \space y
+ \or % 23
+ \xmax \space \yymin\space m
+ \xmax \space \ymin \space \xxmax\space \ymin \space y
+ \xxmin\space \ymin \space m
+ \xmin \space \ymin \space \xmin \space \yymin\space y
+ \or % 24
+ \xxmin\space \ymin \space m
+ \xmin \space \ymin \space \xmin \space \yymin\space y
+ \xmin \space \yymax\space m
+ \xmin \space \ymax \space \xxmin\space \ymax \space y
+ \or % 25
+ \xxmax\space \ymax \space m
+ \xmax \space \ymax \space \xmax \space \yymax\space y
+ \xmax \space \yymin\space m
+ \xmax \space \ymin \space \xxmax\space \ymin \space y
+ \xxmin\space \ymin \space m
+ \xmin \space \ymin \space \xmin \space \yymin\space y
+ \xmin \space \yymax\space m
+ \xmin \space \ymax \space \xxmin\space \ymax \space y
+ \or % 26
+ \xmax \space \yymin\space m
+ \xmax \space \ymin \space \xxmax\space \ymin \space y
+ \xmin \space \yymax\space m
+ \xmin \space \ymax \space \xxmin\space \ymax \space y
+ \or % 27
+ \xxmax\space \ymax \space m
+ \xmax \space \ymax \space \xmax \space \yymax\space y
+ \xxmin\space \ymin \space m
+ \xmin \space \ymin \space \xmin \space \yymin\space y
+ \or % 28
+ \fi
+ \ifnum\mode>8
+ S
+ \else
+ \ifnum\dostroke=\plusone S \fi
+ \ifnum\dofill =\plusone f \fi
+ \fi
+ Q}%
+ \fi}%
+ \wd\scratchbox#1\ht\scratchbox#2\dp\scratchbox#3\box\scratchbox
+ \egroup}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/lpdf-mis.lua b/Master/texmf-dist/tex/context/base/lpdf-mis.lua
new file mode 100644
index 00000000000..142b3257403
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/lpdf-mis.lua
@@ -0,0 +1,269 @@
+if not modules then modules = { } end modules ['lpdf-mis'] = {
+ version = 1.001,
+ comment = "companion to back-pdf.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- Although we moved most pdf handling to the lua end, we didn't change
+-- the overall approach. For instance we share all resources i.e. we
+-- don't make subsets for each xform or page. The current approach is
+-- quite efficient. A big difference between MkII and MkIV is that we
+-- now use forward references. In this respect the MkII code shows that
+-- it evolved over a long period, when backends didn't provide forward
+-- referencing and references had to be tracked in multiple passes. Of
+-- course there are a couple of more changes.
+
+local next, tostring = next, tostring
+local format = string.format
+local texsprint, texset = tex.sprint, tex.set
+local ctxcatcodes = tex.ctxcatcodes
+
+local nodeinjections = backends.pdf.nodeinjections
+local codeinjections = backends.pdf.codeinjections
+local registrations = backends.pdf.registrations
+
+local copy_node = node.copy
+
+local pdfliteral, register = nodes.pdfliteral, nodes.register
+
+local pdfdictionary = lpdf.dictionary
+local pdfarray = lpdf.array
+local pdfboolean = lpdf.boolean
+local pdfconstant = lpdf.constant
+local pdfreference = lpdf.reference
+local pdfunicode = lpdf.unicode
+local pdfstring = lpdf.string
+
+local pdfreserveobj = pdf.reserveobj
+local pdfimmediateobj = pdf.immediateobj
+
+local tobasepoints = number.tobasepoints
+
+local variables = interfaces.variables
+
+lpdf.addtoinfo ("Trapped", pdfboolean(false))
+lpdf.addtocatalog("Version", pdfconstant(format("1.%s",tex.pdfminorversion)))
+
+--
+
+local positive = register(pdfliteral("/GSpositive gs"))
+local negative = register(pdfliteral("/GSnegative gs"))
+local overprint = register(pdfliteral("/GSoverprint gs"))
+local knockout = register(pdfliteral("/GSknockout gs"))
+
+local function initializenegative()
+ local a = pdfarray { 0, 1 }
+ local g = pdfconstant("ExtGState")
+ local d = pdfdictionary {
+ FunctionType = 4,
+ Range = a,
+ Domain = a,
+ }
+ local negative = pdfdictionary { Type = g, TR = pdfreference(pdf.immediateobj("stream","1 exch sub",d())) }
+ local positive = pdfdictionary { Type = g, TR = pdfconstant("Identity") }
+ lpdf.adddocumentextgstate("GSnegative", pdfreference(pdfimmediateobj(tostring(negative))))
+ lpdf.adddocumentextgstate("GSPositive", pdfreference(pdfimmediateobj(tostring(positive))))
+ initializenegative = nil
+end
+
+local function initializeoverprint()
+ local g = pdfconstant("ExtGState")
+ local knockout = pdfdictionary { Type = g, OP = false, OPM = 0 }
+ local overprint = pdfdictionary { Type = g, OP = true, OPM = 1 }
+ lpdf.adddocumentextgstate("GSknockout", pdfreference(pdfimmediateobj(tostring(knockout ))))
+ lpdf.adddocumentextgstate("GSoverprint", pdfreference(pdfimmediateobj(tostring(overprint))))
+ initializeoverprint = nil
+end
+
+function nodeinjections.overprint()
+ if initializeoverprint then initializeoverprint() end
+ return copy_node(overprint)
+end
+function nodeinjections.knockout ()
+ if initializeoverprint then initializeoverprint() end
+ return copy_node(knockout)
+end
+
+function nodeinjections.positive()
+ if initializenegative then initializenegative() end
+ return copy_node(positive)
+end
+function nodeinjections.negative()
+ if initializenegative then initializenegative() end
+ return copy_node(negative)
+end
+
+--
+
+function codeinjections.addtransparencygroup()
+ -- png: /CS /DeviceRGB /I true
+ local d = pdfdictionary {
+ S = pdfconstant("Transparency"),
+ I = true,
+ K = true,
+ }
+ lpdf.registerpagefinalizer(function() lpdf.addtopageattributes("Group",d) end) -- hm
+end
+
+-- actions (todo: store and update when changed)
+
+local openpage, closepage, opendocument, closedocument
+
+function codeinjections.flushdocumentactions(open,close)
+ opendocument, closedocument = open, close
+end
+
+function codeinjections.flushpageactions(open,close)
+ openpage, closepage = open, close
+end
+
+local function flushdocumentactions()
+ if opendocument then
+ lpdf.addtocatalog("OpenAction",lpdf.pdfaction(opendocument))
+ end
+ if closedocument then
+ lpdf.addtocatalog("CloseAction",lpdf.pdfaction(closedocument))
+ end
+end
+
+local function flushpageactions()
+ if openpage or closepage then
+ local d = pdfdictionary()
+ if openpage then
+ d.O = lpdf.pdfaction(openpage)
+ end
+ if closepage then
+ d.C = lpdf.pdfaction(closepage)
+ end
+ lpdf.addtopageattributes("AA",d)
+ end
+end
+
+lpdf.registerpagefinalizer(flushpageactions)
+lpdf.registerdocumentfinalizer(flushdocumentactions)
+
+--- info
+
+function codeinjections.setupidentity(specification)
+ local title = specification.title or "" if title ~= "" then
+ lpdf.addtoinfo("Title", pdfunicode(title))
+ end
+ local subject = specification.subject or "" if subject ~= "" then
+ lpdf.addtoinfo("Subject", pdfunicode(subject))
+ end
+ local author = specification.author or "" if author ~= "" then
+ lpdf.addtoinfo("Author", pdfunicode(author))
+ end
+ local creator = specification.creator or "" if creator ~= "" then
+ lpdf.addtoinfo("Creator", pdfunicode(creator))
+ end
+ local date = specification.date or "" if date ~= "" then
+ lpdf.addtoinfo("ModDate", pdfstring(date))
+ end
+ local keywords = specification.keywords or "" if keywords ~= "" then
+ keywords = string.gsub(keywords, "[%s,]+", " ")
+ lpdf.addtoinfo("Keywords",pdfunicode(keywords))
+ end
+ lpdf.addtoinfo("ID", pdfstring(format("%s.%s",tex.jobname,os.date("%Y%m%d.%H%M")))) -- needed for pdf/x
+end
+
+local function flushjavascripts()
+ local t = javascripts.flushpreambles()
+ if #t > 0 then
+ local a = pdfarray()
+ local pdf_javascript = pdfconstant("JavaScript")
+ for i=1,#t do
+ local name, script = t[i][1], t[i][2]
+ local j = pdfdictionary {
+ S = pdf_javascript,
+ JS = pdfreference(pdfimmediateobj("stream",script)),
+ }
+ a[#a+1] = pdfstring(name)
+ a[#a+1] = pdfreference(pdfimmediateobj(tostring(j)))
+ end
+ lpdf.addtonames("JavaScript",pdfreference(pdfimmediateobj(tostring(pdfdictionary{ Names = a }))))
+ end
+end
+
+lpdf.registerdocumentfinalizer(flushjavascripts)
+
+-- -- --
+
+local pagespecs = {
+ [variables.max] = { "FullScreen", false, false },
+ [variables.bookmark] = { "UseOutlines", false, false },
+ [variables.fit] = { "UseNone", false, true },
+ [variables.doublesided] = { "UseNone", "TwoColumnRight", true },
+ [variables.singlesided] = { "UseNone", false, false },
+ [variables.default] = { "UseNone", "auto", false },
+ [variables.auto] = { "UseNone", "auto", false },
+ [variables.none] = { false, false, false },
+}
+
+local pagespec, topoffset, leftoffset, height, width, doublesided = "default", 0, 0, 0, 0, false
+
+function codeinjections.setupcanvas(specification)
+ local paperheight = specification.paperheight
+ local paperwidth = specification.paperwidth
+ local paperdouble = specification.doublesided
+ if paperheight then
+ texset('global','pdfpageheight',paperheight)
+ end
+ if paperwidth then
+ texset('global','pdfpagewidth',paperwidth)
+ end
+ pagespec = specification.mode or pagespec
+ topoffset = specification.topoffset or 0
+ leftoffset = specification.leftoffset or 0
+ height = specification.height or tex.pdfpageheight
+ width = specification.width or tex.pdfpagewidth
+ if paperdouble ~= nil then
+ doublesided = paperdouble
+ end
+end
+
+local function documentspecification()
+ local spec = pagespecs[pagespec] or pagespecs[variables.default]
+ local mode, layout, fit = spec[1], spec[2], spec[3]
+ if layout == variables.auto then
+ if doublesided then
+ spec = pagespecs.doublesided
+ mode, layout, fit = spec[1], spec[2], spec[3]
+ else
+ layout = false
+ end
+ end
+ mode = mode and pdfconstant(mode)
+ layout = layout and pdfconstant(layout)
+ fit = fit and pdfdictionary { FitWindow = true }
+ if layout then
+ lpdf.addtocatalog("PageLayout",layout)
+ end
+ if mode then
+ lpdf.addtocatalog("PageMode",mode)
+ end
+ if fit then
+ lpdf.addtocatalog("ViewerPreferences",fit)
+ end
+end
+
+local factor = number.dimenfactors.bp
+
+local function pagespecification()
+ local pageheight = tex.pdfpageheight
+ local box = pdfarray { -- can be cached
+ factor * (leftoffset),
+ factor * (pageheight-topoffset-height),
+ factor * (width-leftoffset),
+ factor * (pageheight-topoffset),
+ }
+ lpdf.addtopageattributes("CropBox",box) -- mandate for rendering
+ lpdf.addtopageattributes("TrimBox",box) -- mandate for pdf/x
+ -- lpdf.addtopageattributes("BleedBox",box)
+ -- lpdf.addtopageattributes("ArtBox",box)
+end
+
+lpdf.registerpagefinalizer(pagespecification)
+lpdf.registerdocumentfinalizer(documentspecification)
diff --git a/Master/texmf-dist/tex/context/base/lpdf-nod.lua b/Master/texmf-dist/tex/context/base/lpdf-nod.lua
new file mode 100644
index 00000000000..f40039b9461
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/lpdf-nod.lua
@@ -0,0 +1,53 @@
+if not modules then modules = { } end modules ['lpdf-nod'] = {
+ version = 1.001,
+ comment = "companion to lpdf-ini.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local copy_node, new_node = node.copy, node.new
+
+local pdfliteral = nodes.register(new_node("whatsit", 8)) pdfliteral.mode = 1
+local pdfdest = nodes.register(new_node("whatsit",19)) pdfdest.named_id = 1 -- xyz_zoom untouched
+local pdfannot = nodes.register(new_node("whatsit",15))
+
+local variables = interfaces.variables
+
+local views = { -- beware, we do support the pdf keys but this is *not* official
+ xyz = 0, [variables.standard] = 0,
+ fit = 1, [variables.fit] = 1,
+ fith = 2, [variables.width] = 2,
+ fitv = 3, [variables.height] = 3,
+ fitb = 4,
+ fitbh = 5, [variables.minheight] = 5,
+ fitbv = 6, [variables.minheight] = 6,
+ fitr = 7,
+}
+
+function nodes.pdfliteral(str)
+ local t = copy_node(pdfliteral)
+ t.data = str
+ return t
+end
+
+function nodes.pdfannot(w,h,d,data,n)
+ local t = copy_node(pdfannot)
+ if w and w ~= 0 then t.width = w end
+ if h and h ~= 0 then t.height = h end
+ if d and d ~= 0 then t.depth = d end
+ if n then t.objnum = n end
+ if data and data ~= "" then t.data = data end
+ return t
+end
+
+function nodes.pdfdest(w,h,d,name,view,n)
+ local t = copy_node(pdfdest)
+ if w and w ~= 0 then t.width = w end
+ if h and h ~= 0 then t.height = h end
+ if d and d ~= 0 then t.depth = d end
+ if n then t.objnum = n end
+ t.dest_id = name
+ t.dest_type = views[view] or view or 1 -- fit is default
+ return t
+end
diff --git a/Master/texmf-dist/tex/context/base/lpdf-ren.lua b/Master/texmf-dist/tex/context/base/lpdf-ren.lua
new file mode 100644
index 00000000000..746db7efd1a
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/lpdf-ren.lua
@@ -0,0 +1,209 @@
+if not modules then modules = { } end modules ['lpdf-ren'] = {
+ version = 1.001,
+ comment = "companion to lpdf-ini.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- rendering
+
+local tostring, tonumber, next = tostring, tonumber, next
+local format = string.format
+local texsprint, ctxcatcodes = tex.sprint, tex.ctxcatcodes
+
+local nodeinjections = backends.pdf.nodeinjections
+local codeinjections = backends.pdf.codeinjections
+local registrations = backends.pdf.registrations
+
+jobreferences = jobreferences or { }
+--~ jobreferences.runners = jobreferences.runners or { }
+--~ jobreferences.specials = jobreferences.specials or { }
+--~ jobreferences.handlers = jobreferences.handlers or { }
+jobreferences.executers = jobreferences.executers or { }
+
+--~ local runners = jobreferences.runners
+--~ local specials = jobreferences.specials
+--~ local handlers = jobreferences.handlers
+local executers = jobreferences.executers
+
+local variables = interfaces.variables
+
+local pdfconstant = lpdf.constant
+local pdfdictionary = lpdf.dictionary
+local pdfarray = lpdf.array
+local pdfreference = lpdf.reference
+
+local pdfreserveobj = pdf.reserveobj
+local pdfimmediateobj = pdf.immediateobj
+
+local pdf_ocg = pdfconstant("OCG")
+local pdf_ocmd = pdfconstant("OCMD")
+local pdf_off = pdfconstant("OFF")
+local pdf_on = pdfconstant("ON")
+local pdf_toggle = pdfconstant("Toggle")
+local pdf_setocgstate = pdfconstant("SetOCGState")
+
+local lpdf_usage = pdfdictionary { Print = pdfdictionary { PrintState = pdfconstant("OFF") } }
+
+local pdfln, pdfld = { }, { }
+local textlayers, hidelayers, videlayers = pdfarray(), pdfarray(), pdfarray()
+local pagelayers = pdfdictionary()
+
+lpdf.layerreferences = pdfln
+
+function backends.pdf.layerreference(name)
+ return pdfln[name]
+end
+
+function codeinjections.defineviewerlayer(specification)
+ if textlayers then
+ local tag = specification.tag
+ -- todo: reserve
+ local n = pdfdictionary {
+ Type = pdf_ocg,
+ Name = specification.title or "unknown",
+ Intent = ((specification.kind > 0) and pdf_design) or nil, -- disable layer hiding by user
+ Usage = ((specification.printable == variables.no) and lpdf_usage) or nil , -- printable or not
+ }
+ local nr = pdfreference(pdfimmediateobj(tostring(n)))
+ pdfln[tag] = nr -- was n
+ local d = pdfdictionary {
+ Type = pdf_ocmd,
+ OCGs = pdfarray { nr },
+ }
+ local dr = pdfreference(pdfimmediateobj(tostring(d)))
+ pdfld[tag] = dr
+ textlayers[#textlayers+1] = nr
+ if specification.visible == variables.start then
+ videlayers[#videlayers+1] = nr
+ else
+ hidelayers[#hidelayers+1] = nr
+ end
+ pagelayers[tag] = dr -- check
+ end
+end
+
+local function flushtextlayers()
+ if textlayers and #textlayers > 0 then
+ local d = pdfdictionary {
+ OCGs = textlayers,
+ D = pdfdictionary {
+ Order = textlayers,
+ ON = videlayers,
+ OFF = hidelayers,
+ },
+ }
+ lpdf.addtocatalog("OCProperties",d)
+ textlayers = nil
+ end
+end
+
+local function flushpagelayers()
+ if next(pagelayers) then
+ lpdf.addtopageresources("Properties",pagelayers)
+ end
+end
+
+lpdf.registerpagefinalizer (flushpagelayers)
+lpdf.registerdocumentfinalizer(flushtextlayers)
+
+local function setlayer(what,arguments)
+ -- maybe just a gmatch of even better, earlier in lpeg
+ arguments = (type(arguments) == "table" and arguments) or aux.settings_to_array(arguments)
+ local state = pdfarray { what }
+ for i=1,#arguments do
+ local p = pdfln[arguments[i]]
+ if p then
+ state[#state+1] = p
+ end
+ end
+ return pdfdictionary {
+ S = pdf_setocgstate,
+ State = state,
+ }
+end
+
+function executers.hidelayer (arguments) setlayer(pdf_off, arguments) end
+function executers.videlayer (arguments) setlayer(pdf_on, arguments) end
+function executers.togglelayer(arguments) setlayer(pdf_toggle,arguments) end
+
+-- transitions
+
+local pagetransitions = {
+ {"split","in","vertical"}, {"split","in","horizontal"},
+ {"split","out","vertical"}, {"split","out","horizontal"},
+ {"blinds","horizontal"}, {"blinds","vertical"},
+ {"box","in"}, {"box","out"},
+ {"wipe","east"}, {"wipe","west"}, {"wipe","north"}, {"wipe","south"},
+ {"dissolve"},
+ {"glitter","east"}, {"glitter","south"},
+ {"fly","in","east"}, {"fly","in","west"}, {"fly","in","north"}, {"fly","in","south"},
+ {"fly","out","east"}, {"fly","out","west"}, {"fly","out","north"}, {"fly","out","south"},
+ {"push","east"}, {"push","west"}, {"push","north"}, {"push","south"},
+ {"cover","east"}, {"cover","west"}, {"cover","north"}, {"cover","south"},
+ {"uncover","east"}, {"uncover","west"}, {"uncover","north"}, {"uncover","south"},
+ {"fade"},
+}
+
+local mapping = {
+ split = { "S" , pdfconstant("Split") },
+ blinds = { "S" , pdfconstant("Blinds") },
+ box = { "S" , pdfconstant("Box") },
+ wipe = { "S" , pdfconstant("Wipe") },
+ dissolve = { "S" , pdfconstant("Dissolve") },
+ glitter = { "S" , pdfconstant("Glitter") },
+ replace = { "S" , pdfconstant("R") },
+ fly = { "S" , pdfconstant("Fly") },
+ push = { "S" , pdfconstant("Push") },
+ cover = { "S" , pdfconstant("Cover") },
+ uncover = { "S" , pdfconstant("Uncover") },
+ fade = { "S" , pdfconstant("Fade") },
+ horizontal = { "Dm" , pdfconstant("H") },
+ vertical = { "Dm" , pdfconstant("V") },
+ ["in"] = { "M" , pdfconstant("I") },
+ out = { "M" , pdfconstant("O") },
+ east = { "Di" , 0 },
+ north = { "Di" , 90 },
+ west = { "Di" , 180 },
+ south = { "Di" , 270 },
+}
+
+local last = 0
+
+-- n: number, "stop", "reset", "random", "a,b,c" delay: number, "none"
+
+function codeinjections.setpagetransition(specification)
+ local n, delay = specification.n, specification.delay
+ if n == variables.auto then
+ if last >= #pagetransitions then
+ last = 0
+ end
+ n = last + 1
+ elseif n == variables.stop then
+ return
+ elseif n == variables.reset then
+ last = 0
+ return
+ elseif n == variables.random then
+ n = math.random(1,#pagetransitions)
+ else
+ n = tonumber(n)
+ end
+ local t = n and pagetransitions[n] or pagetransitions[1]
+ if not t then
+ t = aux.settings_to_array(n)
+ end
+ if t and #t > 0 then
+ local d = pdfdictionary()
+ for i=1,#t do
+ local m = mapping[t[i]]
+ d[m[1]] = m[2]
+ end
+ delay = tonumber(delay)
+ if delay and delay > 0 then
+ lpdf.addtopageattributes("Dur",delay)
+ end
+ lpdf.addtopageattributes("Trans",d)
+ end
+end
diff --git a/Master/texmf-dist/tex/context/base/lpdf-u3d.lua b/Master/texmf-dist/tex/context/base/lpdf-u3d.lua
new file mode 100644
index 00000000000..5f7a770b160
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/lpdf-u3d.lua
@@ -0,0 +1,427 @@
+if not modules then modules = { } end modules ['lpdf-u3d'] = {
+ version = 1.001,
+ comment = "companion to lpdf-ini.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- The following code is based on a working prototype provided
+-- by Michael Vidiassov. It is rewritten using the lpdf library
+-- and different checking is used. The macro calls are adapted
+-- (and will eventually be removed). The user interface needs
+-- an overhaul. There are some messy leftovers that will be
+-- removed in future versions.
+
+local format = string.format
+local cos, sin, sqrt, pi, atan2, abs = math.cos, math.sin, math.sqrt, math.pi, math.atan2, math.abs
+
+local pdfconstant = lpdf.constant
+local pdfboolean = lpdf.boolean
+local pdfunicode = lpdf.unicode
+local pdfdictionary = lpdf.dictionary
+local pdfarray = lpdf.array
+local pdfnull = lpdf.null
+local pdfreference = lpdf.reference
+
+local checkedkey = lpdf.checkedkey
+local limited = lpdf.limited
+
+local schemes = table.tohash {
+ "Artwork", "None", "White", "Day", "Night", "Hard",
+ "Primary", "Blue", "Red", "Cube", "CAD", "Headlamp",
+}
+
+local modes = table.tohash {
+ "Solid", "SolidWireframe", "Transparent", "TransparentWireframe", "BoundingBox",
+ "TransparentBoundingBox", "TransparentBoundingBoxOutline", "Wireframe",
+ "ShadedWireframe", "HiddenWireframe", "Vertices", "ShadedVertices", "Illustration",
+ "SolidOutline", "ShadedIllustration",
+}
+
+local function normalize(x, y, z)
+ local modulo = sqrt(x*x + y*y + z*z);
+ if modulo ~= 0 then
+ return x/modulo, y/modulo, z/modulo
+ else
+ return x, y, z
+ end
+end
+
+local function rotate(vect_x,vect_y,vect_z, tet, axis_x,axis_y,axis_z)
+ -- rotate vect by tet about axis counterclockwise
+ local c, s = cos(tet*pi/180), sin(tet*pi/180)
+ local r = 1 - c
+ local n = sqrt(axis_x*axis_x+axis_y*axis_y+axis_z*axis_z)
+ axis_x, axis_y, axis_z = axis_x/n, axis_y/n, axis_z/n
+ return
+ (axis_x*axis_x*r+c )*vect_x + (axis_x*axis_y*r-axis_z*s)*vect_y + (axis_x*axis_z*r+axis_y*s)*vect_z,
+ (axis_x*axis_y*r+axis_z*s)*vect_x + (axis_y*axis_y*r+c )*vect_y + (axis_y*axis_z*r-axis_x*s)*vect_z,
+ (axis_x*axis_z*r-axis_y*s)*vect_x + (axis_y*axis_z*r+axis_x*s)*vect_y + (axis_z*axis_z*r+c )*vect_z
+end
+
+local function make3dview(view)
+
+ local name = viewname
+ local name = pdfunicode((view.name ~= "" and name) or "unknown view")
+
+ local viewdict = pdfdictionary {
+ Type = pdfconstant("3DView"),
+ XN = name,
+ IN = name,
+ }
+
+ local bg = checkedkey(view,"bg","table")
+ if bg then
+ viewdict.BG = pdfdictionary {
+ Type = pdfconstant("3DBG"),
+ C = pdfarray { limited(bg[1],1,1,1), limited(bg[2],1,1,1), limited(bg[3],1,1,1) },
+ }
+ end
+
+ local lights = checkedkey(view,"lights","string")
+ if lights and schemes[lights] then
+ viewdict.LS = pdfdictionary {
+ Type = pdfconstant("3DLightingScheme"),
+ Subtype = pdfconstant(lights),
+ }
+ end
+
+ -- camera position is taken from 3d model
+
+ local u3dview = checkedkey(view, "u3dview", "string")
+ if u3dview then
+ viewdict.MS = pdfconstant("U3D")
+ viewdict.U3DPath = u3dview
+ end
+
+ -- position the camera as given
+
+ local c2c = checkedkey(view, "c2c", "table")
+ local coo = checkedkey(view, "coo", "table")
+ local roo = checkedkey(view, "roo", "number")
+ local azimuth = checkedkey(view, "azimuth", "number")
+ local altitude = checkedkey(view, "altitude", "number")
+
+ if c2c or coo or roo or azimuth or altitude then
+
+ local pos = checkedkey(view, "pos", "table")
+ local dir = checkedkey(view, "dir", "table")
+ local upv = checkedkey(view, "upv", "table")
+ local roll = checkedkey(view, "roll", "table")
+
+ local coo_x, coo_y, coo_z = 0, 0, 0
+ local dir_x, dir_y, dir_z = 0, 0, 0
+ local trans_x, trans_y, trans_z = 0, 0, 0
+ local left_x, left_y, left_z = 0, 0, 0
+ local up_x, up_y, up_z = 0, 0, 0
+
+ -- point camera is aimed at
+
+ if coo then
+ coo_x, coo_y, coo_z = tonumber(coo[1]) or 0, tonumber(coo[2]) or 0, tonumber(coo[3]) or 0
+ end
+
+ -- distance from camera to target
+
+ if roo then
+ roo = abs(roo)
+ end
+ if not roo or roo == 0 then
+ roo = 0.000000000000000001
+ end
+
+ -- set it via camera position
+
+ if pos then
+ dir_x = coo_x - (tonumber(pos[1]) or 0)
+ dir_y = coo_y - (tonumber(pos[2]) or 0)
+ dir_z = coo_z - (tonumber(pos[3]) or 0)
+ if not roo then
+ roo = sqrt(dir_x*dir_x + dir_y*dir_y + dir_z*dir_z)
+ end
+ if dir_x == 0 and dir_y == 0 and dir_z == 0 then dir_y = 1 end
+ dir_x, dir_y, dir_z = normalize(dir_x,dir_y,dir_z)
+ end
+
+ -- set it directly
+
+ if dir then
+ dir_x, dir_y, dir_z = tonumber(dir[1] or 0), tonumber(dir[2] or 0), tonumber(dir[3] or 0)
+ if dir_x == 0 and dir_y == 0 and dir_z == 0 then dir_y = 1 end
+ dir_x, dir_y, dir_z = normalize(dir_x,dir_y,dir_z)
+ end
+
+ -- set it movie15 style with vector from target to camera
+
+ if c2c then
+ dir_x, dir_y, dir_z = - tonumber(c2c[1] or 0), - tonumber(c2c[2] or 0), - tonumber(c2c[3] or 0)
+ if dir_x == 0 and dir_y == 0 and dir_z == 0 then dir_y = 1 end
+ dir_x, dir_y, dir_z = normalize(dir_x,dir_y,dir_z)
+ end
+
+ -- set it with azimuth and altitutde
+
+ if altitude or azimuth then
+ dir_x, dir_y, dir_z = -1, 0, 0
+ if altitude then dir_x, dir_y, dir_z = rotate(dir_x,dir_y,dir_z, -altitude, 0,1,0) end
+ if azimuth then dir_x, dir_y, dir_z = rotate(dir_x,dir_y,dir_z, azimuth, 0,0,1) end
+ end
+
+ -- set it with rotation like in MathGL
+
+ if rot then
+ if dir_x == 0 and dir_y == 0 and dir_z == 0 then dir_z = -1 end
+ dir_x,dir_y,dir_z = rotate(dir_x,dir_y,dir_z, tonumber(rot[1]) or 0, 1,0,0)
+ dir_x,dir_y,dir_z = rotate(dir_x,dir_y,dir_z, tonumber(rot[2]) or 0, 0,1,0)
+ dir_x,dir_y,dir_z = rotate(dir_x,dir_y,dir_z, tonumber(rot[3]) or 0, 0,0,1)
+ end
+
+ -- set it with default movie15 orientation looking up y axis
+
+ if dir_x == 0 and dir_y == 0 and dir_z == 0 then dir_y = 1 end
+
+ -- left-vector
+ -- up-vector
+
+ if upv then
+ up_x, up_y, up_z = tonumber(upv[1]) or 0, tonumber(upv[2]) or 0, tonumber(upv[3]) or 0
+ else
+ -- set default up-vector
+ if abs(dir_x) == 0 and abs(dir_y) == 0 then
+ if dir_z < 0 then
+ up_y = 1 -- top view
+ else
+ up_y = -1 -- bottom view
+ end
+ else
+ -- other camera positions than top and bottom, up-vector = up_world - (up_world dot dir) dir
+ up_x, up_y, up_z = - dir_z*dir_x, - dir_z*dir_y, - dir_z*dir_z + 1
+ end
+ end
+
+ -- normalize up-vector
+
+ up_x, up_y, up_z = normalize(up_x,up_y,up_z)
+
+ -- left vector = up x dir
+
+ left_x, left_y, left_z = dir_z*up_y - dir_y*up_z, dir_x*up_z - dir_z*up_x, dir_y*up_x - dir_x*up_y
+
+ -- normalize left vector
+
+ left_x, left_y, left_z = normalize(left_x,left_y,left_z)
+
+ -- apply camera roll
+
+ if roll then
+ local sinroll = sin((roll/180.0)*pi)
+ local cosroll = cos((roll/180.0)*pi)
+ left_x = left_x*cosroll + up_x*sinroll
+ left_y = left_y*cosroll + up_y*sinroll
+ left_z = left_z*cosroll + up_z*sinroll
+ up_x = up_x*cosroll + left_x*sinroll
+ up_y = up_y*cosroll + left_y*sinroll
+ up_z = up_z*cosroll + left_z*sinroll
+ end
+
+ -- translation vector
+
+ trans_x, trans_y, trans_z = coo_x - roo*dir_x, coo_y - roo*dir_y, coo_z - roo*dir_z
+
+ viewdict.MS = pdfconstant("M")
+ viewdict.CO = roo
+ viewdict.C2W = pdfarray {
+ left_x, left_y, left_z,
+ up_x, up_y, up_z,
+ dir_x, dir_y, dir_z,
+ trans_x, trans_y, trans_z,
+ }
+
+ end
+
+ local aac = tonumber(view.aac) -- perspective projection
+ local mag = tonumber(view.mag) -- ortho projection
+
+ if aac and aac > 0 and aac < 180 then
+ viewdict.P = pdfdictionary {
+ Subtype = pdfconstant("P"),
+ PS = pdfconstant("Min"),
+ FOV = aac,
+ }
+ elseif mag and mag > 0 then
+ viewdict.P = pdfdictionary {
+ Subtype = pdfconstant("O"),
+ OS = mag,
+ }
+ end
+
+ local mode = modes[view.rendermode]
+ if mode then
+ pdfdictionary {
+ Type = pdfconstant("3DRenderMode"),
+ Subtype = pdfconstant(mode),
+ }
+ end
+
+ -- crosssection
+
+ local crosssection = checkedkey(view,"crosssection","table")
+ if crosssection then
+ local crossdict = pdfdictionary {
+ Type = pdfconstant("3DCrossSection")
+ }
+
+ local c = checkedkey(crosssection,"point","table") or checkedkey(crosssection,"center","table")
+ if c then
+ crossdict.C = pdfarray { tonumber(c[1]) or 0, tonumber(c[2]) or 0, tonumber(c[3]) or 0 }
+ end
+
+ local normal = checkedkey(crosssection,"normal","table")
+ if normal then
+ local x, y, z = tonumber(normal[1] or 0), tonumber(normal[2] or 0), tonumber(normal[3] or 0)
+ if sqrt(x*x + y*y + z*z) == 0 then
+ x, y, z = 1, 0, 0
+ end
+ crossdict.O = pdfarray {
+ pdfnull,
+ atan2(-z,sqrt(x*x + y*y))*180/pi,
+ atan2(y,x)*180/pi,
+ }
+ end
+
+ local orient = checkedkey(crosssection,"orient","table")
+ if orient then
+ crossdict.O = pdfarray {
+ tonumber(orient[1]) or 1,
+ tonumber(orient[2]) or 0,
+ tonumber(orient[3]) or 0,
+ }
+ end
+
+ crossdict.IV = cross.intersection or false
+ crossdict.ST = cross.transparent or false
+
+ viewdict.SA = next(crossdict) and pdfarray { crossdict } -- maybe test if # > 1
+ end
+
+ local nodes = checkedkey(view,"nodes","table")
+ if nodes then
+ local nodelist = pdfarray()
+ for i=1,#nodes do
+ local node = checkedkey(nodes,i,"table")
+ if node then
+ local position = checkedkey(node,"position","table")
+ position = position and #position == 12 and pdfarray(position)
+ if position then
+ nodelist[#nodelist+1] = pdfdictionary {
+ Type = pdfconstant("3DNode"),
+ N = node.name or ("node_" .. i), -- pdfunicode ?
+ V = node.visible or true,
+ O = node.opacity or 0,
+ RM = pdfdictionary {
+ Type = pdfconstant("3DRenderMode"),
+ Subtype = pdfconstant(node.rendermode or "Solid"),
+ },
+ M = position,
+ }
+ end
+ end
+ end
+ viewdict.NR = true
+ viewdict.NA = nodelist
+ end
+
+ return viewdict
+
+end
+
+local stored_js, stored_3d, stored_pr, streams = { }, { }, { }, { }
+
+function backends.pdf.helpers.insert3d(spec) -- width, height, factor, display, controls, label, foundname
+
+ local width, height, factor = spec.width, spec.height, spec.factor or number.dimenfactors.bp
+ local display, controls, label, foundname = spec.display, spec.controls, spec.label, spec.foundname
+
+ local param = (display and parametersets[display]) or { }
+ local streamparam = (controls and parametersets[controls]) or { }
+ local name = "3D Artwork " .. (param.name or label or "Unknown")
+
+ local activationdict = pdfdictionary {
+ TB = pdfboolean(param.toolbar,true),
+ NP = pdfboolean(param.tree,true),
+ }
+
+ local stream = streams[label]
+ if not stream then
+ local attr = pdfdictionary {
+ Type = pdfconstant("3D"),
+ Subtype = pdfconstant("U3D"),
+ }
+ local streamviews = checkedkey(streamparam, "views", "table")
+ if streamviews then
+ local list = pdfarray()
+ for i=1,#streamviews do
+ local v = checkedkey(streamviews, i, "table")
+ if v then
+ list[#list+1] = make3dview(v)
+ end
+ end
+ attr.VA = list
+ end
+ if checkedkey(streamparam, "view", "table") then
+ attr.DV = make3dview(streamparam.view)
+ elseif checkedkey(streamparam, "view", "string") then
+ attr.DV = streamparam.view
+ end
+ local js = checkedkey(streamparam, "js", "string")
+ if js then
+ local jsref = stored_js[js]
+ if not jsref then
+ jsref = pdf.immediateobj("streamfile",js)
+ stored_js[js] = jsref
+ end
+ attr.OnInstantiate = pdfreference(jsref)
+ end
+ stored_3d[label] = pdf.immediateobj("streamfile",foundname,attr())
+ stream = 1
+ else
+ stream = stream + 1
+ end
+ streams[label] = stream
+
+ local name = pdfunicode(name)
+
+ local annot = pdfdictionary {
+ Subtype = pdfconstant("3D"),
+ T = name,
+ Contents = name,
+ NM = name,
+ ["3DD"] = pdfreference(stored_3d[label]),
+ ["3DA"] = activationdict,
+ }
+ if checkedkey(param,"view","table") then
+ annot["3DV"] = make3dview(param.view)
+ elseif checkedkey(param,"view","string") then
+ annot["3DV"] = param.view
+ end
+
+ local preview = checkedkey(param,"preview","string")
+ if preview then
+ activationdict.A = pdfconstant("XA")
+ local tag = format("%s:%s:%s",label,stream,preview)
+ local ref = stored_pr[tag]
+ if not ref then
+ -- weird, has to be a /Form and not an /Image so we need a wrap = true key
+ -- local figure = img.immediatewrite { filename = preview, width = width, height = height }
+ local figure = img.immediatewrite { stream = ".5 .75 .75 rg 0 0 20 10 re f", bbox = {0,0,20,10 } }
+ ref = figure.objnum
+ stored_pr[tag] = ref
+ end
+ annot.AP = ref and pdfdictionary { N = pdfreference(ref) }
+ return annot, figure, ref
+ else
+ activationdict.A = pdfconstant("PV")
+ return annot, nil, nil
+ end
+end
diff --git a/Master/texmf-dist/tex/context/base/lpdf-wid.lua b/Master/texmf-dist/tex/context/base/lpdf-wid.lua
new file mode 100644
index 00000000000..c87192b3acd
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/lpdf-wid.lua
@@ -0,0 +1,328 @@
+if not modules then modules = { } end modules ['lpdf-wid'] = {
+ version = 1.001,
+ comment = "companion to lpdf-ini.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local format, gmatch, gsub, find = string.format, string.gmatch, string.gsub, string.find
+local texsprint, ctxcatcodes, texbox, texcount = tex.sprint, tex.ctxcatcodes, tex.box, tex.count
+
+local nodeinjections = backends.pdf.nodeinjections
+local codeinjections = backends.pdf.codeinjections
+local registrations = backends.pdf.registrations
+
+local executers = jobreferences.executers
+local variables = interfaces.variables
+
+local pdfconstant = lpdf.constant
+local pdfdictionary = lpdf.dictionary
+local pdfarray = lpdf.array
+local pdfreference = lpdf.reference
+local pdfunicode = lpdf.unicode
+local pdfcolorspec = lpdf.colorspec
+
+local pdfreserveobj = pdf.reserveobj
+local pdfimmediateobj = pdf.immediateobj
+
+-- symbols
+
+local presets = { } -- xforms
+
+function codeinjections.registersymbol(name,n)
+ presets[name] = pdfreference(n)
+end
+
+function codeinjections.registeredsymbol(name)
+ return presets[name]
+end
+
+function codeinjections.presetsymbollist(list)
+ if list then
+ for s in gmatch(list,"[^, ]+") do
+ if not presets[s] then
+ texsprint(ctxcatcodes,format("\\predefinesymbol[%s]",s))
+ end
+ end
+ end
+end
+
+-- comments
+
+local symbols = {
+ New = pdfconstant("Insert"),
+ Insert = pdfconstant("Insert"),
+ Balloon = pdfconstant("Comment"),
+ Comment = pdfconstant("Comment"),
+ Text = pdfconstant("Note"),
+ Addition = pdfconstant("NewParagraph"),
+ NewParagraph = pdfconstant("NewParagraph"),
+ Help = pdfconstant("Help"),
+ Paragraph = pdfconstant("Paragraph"),
+ Key = pdfconstant("Key"),
+ Graph = pdfconstant("Graph"),
+ Paperclip = pdfconstant("Paperclip"),
+ Attachment = pdfconstant("Attachment"),
+ Tag = pdfconstant("Tag"),
+}
+
+symbols[variables.normal] = pdfconstant("Note")
+
+local nofcomments, usepopupcomments, stripleading = 0, true, true
+
+local function analyzesymbol(symbol)
+ if not symbol or symbol == "" then
+ return symbols.normal, nil
+ elseif symbols[symbol] then
+ return symbols[symbol], nil
+ else
+ local set = aux.settings_to_array(symbol)
+ local normal, down = set[1], set[2]
+ if normal then
+ normal = codeinjections.registeredsymbol(down or normal)
+ end
+ if down then
+ down = codeinjections.registeredsymbol(normal)
+ end
+ if down or normal then
+ return nil, pdfdictionary {
+ N = normal,
+ D = down,
+ }
+ end
+ end
+end
+
+local function analyzelayer(layer)
+ -- todo: (specification.layer ~= "" and pdfreference(specification.layer)) or nil, -- todo: ref to layer
+end
+
+function codeinjections.registercomment(specification)
+ nofcomments = nofcomments + 1
+ local text = buffers.collect(specification.buffer)
+ if stripleading then
+ text = gsub(text,"[\n\r] *","\n")
+ end
+ local name, appearance = analyzesymbol(specification.symbol)
+ local d = pdfdictionary {
+ Subtype = pdfconstant("Text"),
+ Open = specification.open,
+ Contents = pdfunicode(text),
+ T = (specification.title ~= "" and pdfunicode(specification.title)) or nil,
+ C = pdfcolorspec(specification.colormodel,specification.colorvalue),
+ OC = analyzelayer(specification.layer),
+ Name = name,
+ AP = appearance,
+ }
+ -- watch the nice feed back to tex hack
+ if usepopupcomments then
+ local nd = pdfreserveobj()
+ local nc = pdfreserveobj()
+ local c = pdfdictionary {
+ Subtype = pdfconstant("Popup"),
+ Parent = pdfreference(nd),
+ }
+ d.Popup = pdfreference(nc)
+ texbox["commentboxone"] = node.hpack(nodes.pdfannot(0,0,0,d(),nd))
+ texbox["commentboxtwo"] = node.hpack(nodes.pdfannot(specification.width,specification.height,0,c(),nc))
+ else
+ texbox["commentboxone"] = node.hpack(nodes.pdfannot(0,0,0,d()))
+ texbox["commentboxtwo"] = nil
+ end
+end
+
+--
+
+local nofattachments, attachments, filestreams = 0, { }, { }
+
+function codeinjections.attachfile(specification)
+ local attachment = interactions.attachment(specification.label)
+ if not attachment then
+ -- todo: message
+ return
+ end
+ local filename = attachment.filename
+ if not filename or filename == "" then
+ -- todo: message
+ return
+ end
+ nofattachments = nofattachments + 1
+ local label = attachment.label or ""
+ local title = attachment.title or ""
+ local newname = attachment.newname or ""
+ if label == "" then label = filename end
+ if title == "" then title = label end
+ if newname == "" then newname = filename end
+ local aref = attachments[label]
+ if not aref then
+ if not lfs.isfile(filename) then
+ interfaces.showmessage("interactions",5,filename)
+ return -- todo: message
+ else
+ local f = pdf.immediateobj("streamfile",filename)
+ filestreams[filename] = f
+ local d = pdfdictionary {
+ Type = pdfconstant("Filespec"),
+ F = newname,
+ EF = pdfdictionary { F = pdfreference(d) },
+ }
+ aref = pdfreference(pdfimmediateobj(tostring(d)))
+ attachments[label] = aref
+ end
+ end
+ local name, appearance = analyzesymbol(specification.symbol)
+ local d = pdfdictionary {
+ Subtype = pdfconstant("FileAttachment"),
+ FS = aref,
+ Contents = pdfunicode(title),
+ Name = name,
+ AP = appearance,
+ OC = analyzelayer(specification.layer),
+ C = pdfcolorspec(specification.colormodel,specification.colorvalue),
+ }
+ local width = specification.width or 0
+ local height = specification.height or 0
+ local depth = specification.depth or 0
+ node.write(nodes.pdfannot(width,height,depth,d()))
+end
+
+function codeinjections.attachmentid(filename)
+ return filestreams[filename]
+end
+
+-- rendering stuff
+--
+-- object_1 -> <</Type /Rendition /S /MR /C << /Type /MediaClip ... >> >>
+-- object_2 -> <</Type /Rendition /S /MR /C << /Type /MediaClip ... >> >>
+-- rendering -> <</Type /Rendition /S /MS [objref_1 objref_2]>>
+--
+-- we only work foreward here
+-- annotation is to be packed at the tex end
+
+-- aiff audio/aiff
+-- au audio/basic
+-- avi video/avi
+-- mid audio/midi
+-- mov video/quicktime
+-- mp3 audio/x-mp3 (mpeg)
+-- mp4 audio/mp4
+-- mp4 video/mp4
+-- mpeg video/mpeg
+-- smil application/smil
+-- swf application/x-shockwave-flash
+
+local ms, mu, mf = { }, { }, { }
+
+local delayed = { }
+
+local function insertrenderingwindow(label,width,height,specification)
+ if options == variables.auto then
+ if openpageaction then
+ -- \handlereferenceactions{\v!StartRendering{#2}}
+ end
+ if closepageaction then
+ -- \handlereferenceactions{\v!StopRendering {#2}}
+ end
+ end
+ local actions = nil
+ if openpage or closepage then
+ actions = pdfdictionary {
+ PO = (openpage and lpdf.pdfaction(openpage )) or nil,
+ PC = (closepage and lpdf.pdfaction(closepage)) or nil,
+ }
+ end
+ local page = tonumber(specification.page) or texcount.realpageno
+ local d = pdfdictionary {
+ Subtype = pdfconstant("Screen"),
+ P = pdfreference(tex.pdfpageref(page)),
+ A = mf[label],
+ Border = pdfarray { 0, 0, 0 } ,
+ AA = actions,
+ }
+ local r = pdfreserveobj("annot")
+ node.write(nodes.pdfannot(width,height,0,d(),r)) -- save ref
+ return pdfreference(r)
+end
+
+local function insertrendering(specification)
+ local label = specification.label
+ if not mf[label] then
+ local filename = specification.filename
+ local isurl = find(filename,"://")
+ local d = pdfdictionary {
+ Type = pdfconstant("Rendition"),
+ S = pdfconstant("MR"),
+ C = pdfdictionary {
+ Type = pdfconstant("MediaClip"),
+ S = pdfconstant("MCD"),
+ N = label,
+ CT = specification.mime,
+ Alt = pdfarray {
+ "", "file not found", -- language id + message
+ },
+ D = pdfdictionary {
+ Type = pdfconstant("Filespec"),
+ F = filename,
+ FS = (isurl and pdfconstant("URL")) or nil,
+ }
+ }
+ }
+ mf[label] = pdfreference(pdfimmediateobj(tostring(d)))
+ if not ms[label] then
+ mu[label] = insertrenderingwindow(label,0,0,specification.options)
+ end
+ end
+end
+
+local function insertrenderingobject(specification)
+ local label = specification.label
+ if not mf[label] then
+ local d = pdfdictionary {
+ Type = pdfconstant("Rendition"),
+ S = pdfconstant("MR"),
+ C = pdfdictionary {
+ Type = pdfconstant("MediaClip"),
+ S = pdfconstant("MCD"),
+ N = label,
+ D = pdfreference(unknown), -- not label but objectname, hm
+ }
+ }
+ mf[label] = pdfreference(pdfimmediateobj(tostring(d)))
+ if ms[label] then
+ insertrenderingwindow(label,0,0,specification)
+ end
+ end
+end
+
+function codeinjections.insertrenderingwindow(specification)
+ local label = specification.label
+ codeinjections.processrendering(label) -- was check at tex end
+ ms[label] = insertrenderingwindow(label,specification.width,specification.height,specification)
+end
+
+function codeinjections.processrendering(label)
+ local specification = interactions.rendering(label)
+ if specification then
+ if specification.kind == "external" then
+ insertrendering(specification)
+ else
+ insertrenderingobject(specification)
+ end
+ end
+end
+
+local function set(operation,arguments)
+ codeinjections.processrendering(arguments) -- was check at the tex end
+ return pdfdictionary {
+ S = pdfconstant("Rendition"),
+ OP = operation,
+ R = mf[arguments],
+ AN = ms[arguments] or mu[arguments],
+ }
+end
+
+function executers.startrendering (arguments) return set(0,arguments) end
+function executers.stoprendering (arguments) return set(1,arguments) end
+function executers.pauserendering (arguments) return set(2,arguments) end
+function executers.resumerendering(arguments) return set(3,arguments) end
diff --git a/Master/texmf-dist/tex/context/base/luat-bas.mkiv b/Master/texmf-dist/tex/context/base/luat-bas.mkiv
new file mode 100644
index 00000000000..581a5d95a09
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/luat-bas.mkiv
@@ -0,0 +1,65 @@
+%D \module
+%D [ file=luat-bas, % moved from luat-lib,
+%D version=2006.09.11,
+%D title=\CONTEXT\ Lua Macros,
+%D subtitle=Basic \LUA\ Libraries,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+% \writestatus{loading}{ConTeXt Lua Macros / Basic Lua Libraries}
+
+%D This will move cq. become configurable. The XML like output is just
+%D an example.
+
+% todo \let\normaleverytoks\everytoks \newtoks\everytoke \normaleverytoks{\the\everytoks}
+
+\chardef\statuswidth=15
+\chardef\statuswrite=16
+
+\newtoks\everywritestring
+
+\def\writedirect {\immediate\write\statuswrite}
+\def\writeline {\writedirect{}}
+\def\writestring#1{\begingroup\the\everywritestring\writedirect{#1}\endgroup}
+
+\ifx\normalwritestatus\undefined \def\normalwritestatus#1#2{\writedirect{#1 : #2}} \fi
+
+% Because all libs are also on bytecodes we can start without stub. However,
+% some initializations need to take place before the \TEX\ engine itself
+% kicks in, especially memory settings and so. In due time we might make the
+% stub smaller and just create a configuration startup file.
+
+\registerctxluafile{l-string} {1.001}
+\registerctxluafile{l-lpeg} {1.001}
+\registerctxluafile{l-boolean}{1.001}
+\registerctxluafile{l-number} {1.001}
+\registerctxluafile{l-math} {1.001}
+\registerctxluafile{l-table} {1.001}
+\registerctxluafile{l-aux} {1.001}
+\registerctxluafile{l-io} {1.001}
+\registerctxluafile{l-os} {1.001}
+\registerctxluafile{l-file} {1.001}
+\registerctxluafile{l-md5} {1.001}
+\registerctxluafile{l-dir} {1.001}
+\registerctxluafile{l-unicode}{1.001}
+\registerctxluafile{l-utils} {1.001}
+\registerctxluafile{l-dimen} {1.001}
+\registerctxluafile{l-url} {1.001}
+\registerctxluafile{l-set} {1.001}
+\registerctxluafile{l-dimen} {1.001}
+
+% \registerctxluafile{socket.lua}{}
+% \registerctxluafile{ltn12.lua} {}
+% \registerctxluafile{mime.lua} {}
+% \registerctxluafile{http.lua} {}
+% \registerctxluafile{url.lua} {}
+% \registerctxluafile{tp.lua} {}
+% \registerctxluafile{ftp.lua} {}
+% %registerctxluafile{smtp.lua} {}
+
+\endinput
diff --git a/Master/texmf-dist/tex/context/base/luat-cbk.lua b/Master/texmf-dist/tex/context/base/luat-cbk.lua
index 038ad01059f..d8b508c13d6 100644
--- a/Master/texmf-dist/tex/context/base/luat-cbk.lua
+++ b/Master/texmf-dist/tex/context/base/luat-cbk.lua
@@ -6,6 +6,8 @@ if not modules then modules = { } end modules ['luat-cbk'] = {
license = "see context related readme files"
}
+local trace_checking = false trackers.register("memory.checking", function(v) trace_checking = v end)
+
--[[ldx--
<p>Callbacks are the real asset of <l n='luatex'/>. They permit you to hook
your own code into the <l n='tex'/> engine. Here we implement a few handy
@@ -67,7 +69,6 @@ end)
<p>This does a one-shot.</p>
--ldx]]--
-
--[[ldx--
<p>Callbacks may result in <l n='lua'/> doing some hard work
which takes time and above all resourses. Sometimes it makes
@@ -91,61 +92,50 @@ nodes (in this case 121049).</p>
<p>The following code is kind of experimental. In the documents
that describe the development of <l n='luatex'/> we report
on speed tests. One observation is thta it sometimes helps to
-restart the collector.</p>
+restart the collector. Okay, experimental code has been removed,
+because messing aroudn with the gc is too unpredictable.</p>
--ldx]]--
-garbagecollector = { }
-
-do
- local level = 0
-
---~ collectgarbage("setstepmul", 165)
---~ collectgarbage("setstepmul",50)
-
- garbagecollector.trace = false
- garbagecollector.tune = false -- for the moment
-
- local function report(format)
- if garbagecollector.trace then
- -- texio.write_nl(string.format(format,level,status.luastate_bytes))
- texio.write_nl(string.format(format,level,collectgarbage("count")))
- end
- end
-
- function garbagecollector.update()
- report("%s: memory before update: %s")
- collectgarbage("restart")
- end
-
- function garbagecollector.push()
- if garbagecollector.tune then
- level = level + 1
- if level == 1 then
- collectgarbage("stop")
- end
- report("%s: memory after push: %s")
- else
- garbagecollector.update()
- end
- end
-
- function garbagecollector.pop()
- if garbagecollector.tune then
- report("%s: memory before pop: %s")
- if level == 1 then
- collectgarbage("restart")
+garbagecollector = garbagecollector or { }
+
+garbagecollector.enabled = false
+garbagecollector.criterium = 4*1024*1024
+
+-- Lua allocates up to 12 times the amount of memory needed for
+-- handling a string, and for large binary chunks (like chinese otf
+-- files) we get a prominent memory consumption. Even when a variable
+-- is nilled, there is some delay in freeing the associated memory (the
+-- hashed string) because if we do the same thing directly afterwards,
+-- we see only a slight increase in memory. For that reason it makes
+-- sense to do a collector pass after a huge file.
+--
+-- test file:
+--
+-- function test()
+-- local b = collectgarbage("count")
+-- local s = io.loaddata("some font table, e.g. a big tmc file")
+-- local a = collectgarbage("count")
+-- print(">>> STATUS",b,a,a-b,#s,1000*(a-b)/#s)
+-- end
+--
+-- test() test() test() test() collectgarbage("collect") test() test() test() test()
+--
+-- As a result of this, LuaTeX now uses an optimized version of f:read("*a"),
+-- one that does not use the 4K allocations but allocates in one step.
+
+function garbagecollector.check(size,criterium)
+ if garbagecollector.enabled then
+ criterium = criterium or garbagecollector.criterium
+ if not size or (criterium and criterium > 0 and size > criterium) then
+ if trace_checking then
+ local round = math.round or math.floor
+ local b = collectgarbage("count")
+ collectgarbage("collect")
+ local a = collectgarbage("count")
+ logs.report("memory","forced sweep, collected: %s MB, used: %s MB",round((b-a)/1000),round(a/1000))
+ else
+ collectgarbage("collect")
end
- level = level - 1
end
end
-
- function garbagecollector.cycle()
- if garbagecollector.tune then
- report("%s: memory before collect: %s")
- collectgarbage("collect")
- report("%s: memory after collect: %s")
- end
- end
-
end
-
diff --git a/Master/texmf-dist/tex/context/base/luat-cnf.lua b/Master/texmf-dist/tex/context/base/luat-cnf.lua
new file mode 100644
index 00000000000..4cfc7278e91
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/luat-cnf.lua
@@ -0,0 +1,115 @@
+if not modules then modules = { } end modules ['luat-cnf'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local format, concat = string.format, table.concat
+
+luatex = luatex or { }
+
+luatex.variablenames = {
+ 'main_memory', 'extra_mem_bot', 'extra_mem_top',
+ 'buf_size','expand_depth',
+ 'font_max', 'font_mem_size',
+ 'hash_extra', 'max_strings', 'pool_free', 'pool_size', 'string_vacancies',
+ 'obj_tab_size', 'pdf_mem_size', 'dest_names_size',
+ 'nest_size', 'param_size', 'save_size', 'stack_size','expand_depth',
+ 'trie_size', 'hyph_size', 'max_in_open',
+ 'ocp_stack_size', 'ocp_list_size', 'ocp_buf_size',
+ 'max_print_line',
+}
+
+function luatex.variables()
+ local t, x = { }, nil
+ for _,v in next, luatex.variablenames do
+ x = resolvers.var_value(v)
+ if x and x:find("^%d+$") then
+ t[v] = tonumber(x)
+ end
+ end
+ return t
+end
+
+if not luatex.variables_set then
+ for k, v in next, luatex.variables() do
+ texconfig[k] = v
+ end
+ luatex.variables_set = true
+end
+
+local stub = [[
+-- checking
+
+storage = storage or {}
+luatex = luatex or {}
+
+-- as soon as possible
+
+luatex.starttime = os.gettimeofday()
+
+-- we provide our own file handling
+
+texconfig.kpse_init = false
+texconfig.shell_escape = 't'
+
+-- this will happen after the format is loaded
+
+function texconfig.init()
+
+ -- shortcut and helper
+
+ local b = lua.bytecode
+
+ local function init(start)
+ local i = start
+ while b[i] do
+ b[i]() ; b[i] = nil ; i = i + 1
+ -- collectgarbage('step')
+ end
+ return i - start
+ end
+
+ -- the stored tables and modules
+
+ storage.noftables = init(0)
+ storage.nofmodules = init(%s)
+
+end
+
+-- we provide a qualified path
+
+callback.register('find_format_file',function(name)
+ texconfig.formatname = name
+ return name
+end)
+
+-- done, from now on input and callbacks are internal
+]]
+
+function luatex.dumpstate(name,firsttable)
+ if tex and tex.luatexversion < 38 then
+ os.remove(name)
+ elseif true then
+ local t = {
+ "-- this file is generated, don't change it\n",
+ "-- configuration (can be overloaded later)\n"
+ }
+ for _,v in next, luatex.variablenames do
+ local tv = texconfig[v]
+ if tv then
+ t[#t+1] = format("texconfig.%s=%s",v,tv)
+ end
+ end
+ io.savedata(name,format("%s\n\n%s",concat(t,"\n"),format(stub,firsttable or 501)))
+ else
+ io.savedata(name,format(stub,firsttable or 501))
+ end
+end
+
+texconfig.kpse_init = false
+texconfig.max_print_line = 100000
+texconfig.max_in_open = 127
+texconfig.shell_escape = 't'
diff --git a/Master/texmf-dist/tex/context/base/luat-cod.mkiv b/Master/texmf-dist/tex/context/base/luat-cod.mkiv
new file mode 100644
index 00000000000..001cc2aa9c6
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/luat-cod.mkiv
@@ -0,0 +1,161 @@
+%D \module
+%D [ file=luat-cod,
+%D version=2005.05.26,
+%D title=\CONTEXT\ Lua Macros,
+%D subtitle=Code,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+% \writestatus{loading}{ConTeXt Lua Macros / Code}
+
+%D Originally we compiled the lua files externally and loaded
+%D then at runtime, but when the amount grew, we realized that
+%D we needed away to store them in the format, which is what
+%D bytecode arrays do. And so the following is obsolete:
+%D
+%D \starttyping
+%D \chardef\ctxluaembeddingmode \plusone
+%D
+%D 0 = external compilation and loading
+%D 1 = runtime compilation and embedding
+%D \stoptyping
+%D
+%D Allocation of \LUA\ engines has changed too. The original idea
+%D was to have multiple \LUA\ instances and it worked that way for
+%D several years. Hoewver in practice we used only one engine because
+%D scripts need to share data anyway. So eventually \LUATEX\ got only
+%D one instance. Because each call is reentrant there is not much
+%D danger for crashes.
+
+\def\ctxdirectlua{\directlua\zerocount}
+\def\ctxlatelua {\latelua \zerocount}
+
+%D Take your choice \unknown
+
+\let\ctxlua \ctxdirectlua
+\let\luacode \ctxdirectlua
+\let\lateluacode \ctxlatelua
+\let\directluacode\ctxdirectlua
+
+%D Reporting the version of \LUA\ that we use is done as follows:
+
+\edef\luaversion{\ctxlua{tex.print(_VERSION)}}
+
+%D We want to define \LUA\ related things in the format but
+%D need to reload code because \LUA\ instances themselves are
+%D not dumped into the format.
+
+\newtoks\everyloadluacode
+\newtoks\everyfinalizeluacode
+
+\normaleveryjob{\the\everyloadluacode\the\everyfinalizeluacode\the\everyjob}
+
+\newif\ifproductionrun
+
+%D Here we operate in the \TEX\ catcode regime as we haven't yet defined
+%D catcode regimes. A chicken or egg problem.
+
+\normalprotected\long\def\startruntimeluacode#1\stopruntimeluacode % only simple code (load +init)
+ {\ifproductionrun
+ \global\let\startruntimeluacode\relax
+ \global\let\stopruntimeluacode \relax
+ \else
+ \global\everyloadluacode\expandafter{\the\everyloadluacode#1}%
+ \fi
+ #1} % maybe no interference
+
+\normalprotected\long\def\startruntimectxluacode#1\stopruntimectxluacode
+ {\startruntimeluacode\ctxlua{#1}\stopruntimeluacode}
+
+%D Next we load the initialization code.
+
+\startruntimectxluacode
+ environment = environment or { }
+ environment.jobname = "\jobname" % tex.jobname
+ environment.initex = \ifproductionrun false \else true \fi % tex.formatname == ""
+ environment.version = "\fmtversion"
+\stopruntimectxluacode
+
+% we start at 500, below this, we store predefined data (dumps)
+
+\newcount\luabytecodecounter \luabytecodecounter=500
+
+\startruntimectxluacode
+ lua.bytedata = lua.bytedata or { }
+\stopruntimectxluacode
+
+%D Handy when we expand:
+
+\let\stopruntimeluacode \relax
+\let\stopruntimectxluacode\relax
+
+\long\def\lastexpanded{} % todo: elsewhere we use \@@expanded
+
+\long\def\expanded#1{\long\xdef\lastexpanded{\noexpand#1}\lastexpanded}
+
+%D More code:
+
+% \def\ctxluabytecode#1% executes an already loaded chunk
+% {\ctxlua {
+% local str = ''
+% if lua.bytedata[#1] then
+% str = " from file " .. lua.bytedata[#1][1] .. " version " .. lua.bytedata[#1][2]
+% end
+% if lua.bytecode[#1] then
+% if environment.initex then
+% texio.write_nl("bytecode: executing blob " .. "#1" .. str)
+% assert(lua.bytecode[#1])()
+% else
+% texio.write_nl("bytecode: initializing blob " .. "#1" .. str)
+% assert(lua.bytecode[#1])()
+% lua.bytecode[#1] = nil
+% end
+% else
+% texio.write_nl("bytecode: invalid blob " .. "#1" .. str)
+% end
+% }}
+
+\def\ctxluabytecode#1% executes an already loaded chunk
+ {\ctxlua {
+ local lbc = lua.bytecode
+ if lbc[#1] then
+ assert(lbc[#1])()
+ if not environment.initex then
+ lbc[#1] = nil
+ end
+ end
+ }}
+
+\def\ctxluabyteload#1#2% registers and compiles chunk
+ {\global\advance\luabytecodecounter \plusone
+ \normalexpanded{\startruntimectxluacode
+ lua.bytedata[\the\luabytecodecounter] = { "#1", "#2" }
+ \stopruntimectxluacode}%
+ \ctxlua {
+ lua.bytedata[\the\luabytecodecounter] = { "#1", "#2" }
+ lua.bytecode[\the\luabytecodecounter] = environment.luafilechunk("#1")
+ }}
+
+\def\ctxloadluafile#1#2% load a (either not compiled) chunk at runtime
+ {\doifelsenothing{#2}
+ {\ctxlua{environment.loadluafile("#1")}}
+ {\ctxlua{environment.loadluafile("#1",#2)}}}
+
+\def\registerctxluafile#1#2% name version
+ {\ifproductionrun
+ \ctxloadluafile{#1}{#2}%
+ \else
+ \ctxluabyteload{#1}{#2}% can go away
+ \fi
+ \global\everyloadluacode\expandafter\expandafter\expandafter{\expandafter\the\expandafter\everyloadluacode
+ \expandafter\ctxluabytecode\expandafter{\the\luabytecodecounter}}%
+ \ctxluabytecode{\the\luabytecodecounter}}
+
+\everydump\expandafter{\the\everydump\ctxlua{luatex.dumpstate(environment.jobname..".lui",501)}}
+
+\endinput
diff --git a/Master/texmf-dist/tex/context/base/luat-crl.lua b/Master/texmf-dist/tex/context/base/luat-crl.lua
deleted file mode 100644
index aaf2e86a1cf..00000000000
--- a/Master/texmf-dist/tex/context/base/luat-crl.lua
+++ /dev/null
@@ -1,53 +0,0 @@
--- filename : luat-crl.lua
--- comment : companion to luat-lib.tex
--- author : Hans Hagen, PRAGMA-ADE, Hasselt NL
--- copyright: PRAGMA ADE / ConTeXt Development Team
--- license : see context related readme files
-
-if not versions then versions = { } end versions['luat-crl'] = 1.001
-if not curl then curl = { } end
-
-curl.cached = { }
-curl.cachepath = caches.definepath(texmf.instance,"curl")
-
-function curl.fetch(protocol, name)
- local cachename = curl.cachepath() .. "/" .. name:gsub("[^%a%d%.]+","-")
--- cachename = cachename:gsub("[\\/]", io.fileseparator)
- cachename = cachename:gsub("[\\]", "/")
- if not curl.cached[name] then
- if not io.exists(cachename) then
- curl.cached[name] = cachename
- local command = "curl --silent --create-dirs --output " .. cachename .. " " .. name -- no protocol .. "://"
- os.spawn(command)
- end
- if io.exists(cachename) then
- curl.cached[name] = cachename
- else
- curl.cached[name] = ""
- end
- end
- return curl.cached[name]
-end
-
-function input.finders.curl(instance,protocol,filename)
- local foundname = curl.fetch(protocol, filename)
- return input.finders.generic(instance,protocol,foundname,filetype)
-end
-function input.openers.curl(instance,protocol,filename)
- return input.openers.generic(instance,protocol,filename)
-end
-function input.loaders.curl(instance,protocol,filename)
- return input.loaders.generic(instance,protocol,filename)
-end
-
--- todo: metamethod
-
-function curl.install(protocol)
- input.finders[protocol] = function (instance,filename,filetype) return input.finders.curl(instance,protocol,filename) end
- input.openers[protocol] = function (instance,filename) return input.openers.curl(instance,protocol,filename) end
- input.loaders[protocol] = function (instance,filename) return input.loaders.curl(instance,protocol,filename) end
-end
-
-curl.install('http')
-curl.install('https')
-curl.install('ftp')
diff --git a/Master/texmf-dist/tex/context/base/luat-dum.lua b/Master/texmf-dist/tex/context/base/luat-dum.lua
new file mode 100644
index 00000000000..699a0feefa6
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/luat-dum.lua
@@ -0,0 +1,61 @@
+if not modules then modules = { } end modules ['luat-dum'] = {
+ version = 1.001,
+ comment = "companion to luatex-*.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local dummyfunction = function() end
+
+statistics = {
+ register = dummyfunction,
+ starttiming = dummyfunction,
+ stoptiming = dummyfunction,
+}
+trackers = {
+ register = dummyfunction,
+ enable = dummyfunction,
+ disable = dummyfunction,
+}
+storage = {
+ register = dummyfunction,
+ shared = { },
+}
+logs = {
+ report = dummyfunction,
+ simple = dummyfunction,
+}
+tasks = {
+ new = dummyfunction,
+ actions = dummyfunction,
+ appendaction = dummyfunction,
+ prependaction = dummyfunction,
+}
+
+-- we need to cheat a bit here
+
+texconfig.kpse_init = true
+
+resolvers = resolvers or { } -- no fancy file helpers used
+
+local remapper = {
+ otf = "opentype fonts",
+ ttf = "truetype fonts",
+ ttc = "truetype fonts",
+ dfont = "truetype dictionary",
+ cid = "other text files", -- will become "cid files"
+}
+
+function resolvers.find_file(name,kind)
+ name = string.gsub(name,"\\","\/")
+ kind = string.lower(kind)
+ return kpse.find_file(name,(kind and kind ~= "" and (remapper[kind] or kind)) or "tex")
+end
+
+function resolvers.findbinfile(name,kind)
+ if not kind or kind == "" then
+ kind = file.extname(name) -- string.match(name,"%.([^%.]-)$")
+ end
+ return resolvers.find_file(name,(kind and remapper[kind]) or kind)
+end
diff --git a/Master/texmf-dist/tex/context/base/luat-env.lua b/Master/texmf-dist/tex/context/base/luat-env.lua
index 48563e2e7f2..9c05b249ca1 100644
--- a/Master/texmf-dist/tex/context/base/luat-env.lua
+++ b/Master/texmf-dist/tex/context/base/luat-env.lua
@@ -1,218 +1,275 @@
--- filename : luat-env.lua
--- comment : companion to luat-env.tex
--- author : Hans Hagen, PRAGMA-ADE, Hasselt NL
--- copyright: PRAGMA ADE / ConTeXt Development Team
--- license : see context related readme files
+if not modules then modules = { } end modules ['luat-env'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
--- here we don't assume any extra libraries
-
--- A former version provides functionality for non embeded core
+-- A former version provided functionality for non embeded core
-- scripts i.e. runtime library loading. Given the amount of
-- Lua code we use now, this no longer makes sense. Much of this
--- evolved before bytecode arrays were available.
+-- evolved before bytecode arrays were available and so a lot of
+-- code has disappeared already.
-if not versions then versions = { } end versions['luat-env'] = 1.001
+local trace_verbose = false trackers.register("resolvers.verbose", function(v) trace_verbose = v end)
+local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v trackers.enable("resolvers.verbose") end)
--- environment
+local format = string.format
-if not environment then environment = { } end
+-- precautions
---~ environment.useluc = true -- still testing, so we don't use luc yet
+os.setlocale(nil,nil) -- useless feature and even dangerous in luatex
-if environment.silent == nil then environment.silent = false end
-if environment.useluc == nil then environment.useluc = true end
+function os.setlocale()
+ -- no way you can mess with it
+end
--- kpse is overloaded by this time
+-- dirty tricks
+
+if arg and (arg[0] == 'luatex' or arg[0] == 'luatex.exe') and arg[1] == "--luaonly" then
+ arg[-1]=arg[0] arg[0]=arg[2] for k=3,#arg do arg[k-2]=arg[k] end arg[#arg]=nil arg[#arg]=nil
+end
---~ if environment.formatname == nil then if tex then environment.formatname = tex.formatname end end
---~ if environment.formatpath == nil then if kpse then environment.formatpath = kpse.find_file(tex.formatname,"fmt") or "." end end
---~ if environment.jobname == nil then if tex then environment.jobname = tex.jobname end end
---~ if environment.progname == nil then environment.progname = os.getenv("progname") or "luatex" end
---~ if environment.engine == nil then environment.engine = os.getenv("engine") or "context" end
---~ if environment.enginepath == nil then environment.enginepath = os.getenv("SELFAUTOLOC") or "." end
---~ if environment.initex == nil then if tex then environment.initex = tex.formatname == "" end end
+if profiler and os.env["MTX_PROFILE_RUN"] == "YES" then
+ profiler.start("luatex-profile.log")
+end
-if not environment.formatname or environment.formatname == "" then if tex then environment.formatname = tex.formatname end end
-if not environment.jobname or environment.jobname == "" then if tex then environment.jobname = tex.jobname end end
+-- environment
-if not environment.progname or environment.progname == "" then environment.progname = "context" end
-if not environment.engine or environment.engine == "" then environment.engine = "luatex" end
-if not environment.formatname or environment.formatname == "" then environment.formatname = "cont-en" end
-if not environment.formatpath or environment.formatpath == "" then environment.formatpath = '.' end
-if not environment.enginepath or environment.enginepath == "" then environment.enginepath = '.' end
-if not environment.version or environment.version == "" then environment.version = "unknown" end
+environment = environment or { }
+environment.arguments = { }
+environment.files = { }
+environment.sortedflags = nil
-environment.formatpath = string.gsub(environment.formatpath:gsub("\\","/"),"/([^/]-)$","")
-environment.enginepath = string.gsub(environment.enginepath:gsub("\\","/"),"/([^/]-)$","")
+if not environment.jobname or environment.jobname == "" then if tex then environment.jobname = tex.jobname end end
+if not environment.version or environment.version == "" then environment.version = "unknown" end
+if not environment.jobname then environment.jobname = "unknown" end
-function environment.texfile(filename)
- return input.find_file(texmf.instance,filename,'tex')
+function environment.initialize_arguments(arg)
+ local arguments, files = { }, { }
+ environment.arguments, environment.files, environment.sortedflags = arguments, files, nil
+ for index, argument in pairs(arg) do
+ if index > 0 then
+ local flag, value = argument:match("^%-+(.+)=(.-)$")
+ if flag then
+ arguments[flag] = string.unquote(value or "")
+ else
+ flag = argument:match("^%-+(.+)")
+ if flag then
+ arguments[flag] = true
+ else
+ files[#files+1] = argument
+ end
+ end
+ end
+ end
+ environment.ownname = environment.ownname or arg[0] or 'unknown.lua'
end
-function environment.luafile(filename)
- return input.find_file(texmf.instance,filename,'tex') or input.find_file(texmf.instance,filename,'texmfscripts')
+function environment.setargument(name,value)
+ environment.arguments[name] = value
end
-function environment.showmessage(...) -- todo, cleaner
- if not environment.silent then
- if input and input.report then
- input.report(table.concat({...}," "))
- elseif texio and texio.write_nl then
- texio.write_nl("[[" .. table.concat({...}," ") .. "]]")
- else
- print("[[" .. table.concat({...}," ") .. "]]")
+-- todo: defaults, better checks e.g on type (boolean versus string)
+--
+-- tricky: too many hits when we support partials unless we add
+-- a registration of arguments so from now on we have 'partial'
+
+function environment.argument(name,partial)
+ local arguments, sortedflags = environment.arguments, environment.sortedflags
+ if arguments[name] then
+ return arguments[name]
+ elseif partial then
+ if not sortedflags then
+ sortedflags = { }
+ for _,v in pairs(table.sortedkeys(arguments)) do
+ sortedflags[#sortedflags+1] = "^" .. v
+ end
+ environment.sortedflags = sortedflags
+ end
+ -- example of potential clash: ^mode ^modefile
+ for _,v in ipairs(sortedflags) do
+ if name:find(v) then
+ return arguments[v:sub(2,#v)]
+ end
end
end
+ return nil
end
-if not environment.jobname then environment.jobname = "unknown" end
+function environment.split_arguments(separator) -- rather special, cut-off before separator
+ local done, before, after = false, { }, { }
+ for _,v in ipairs(environment.original_arguments) do
+ if not done and v == separator then
+ done = true
+ elseif done then
+ after[#after+1] = v
+ else
+ before[#before+1] = v
+ end
+ end
+ return before, after
+end
-function environment.setlucpath()
- if environment.initex then
- environment.lucpath = nil
+function environment.reconstruct_commandline(arg,noquote)
+ arg = arg or environment.original_arguments
+ if noquote and #arg == 1 then
+ local a = arg[1]
+ a = resolvers.resolve(a)
+ a = a:unquote()
+ return a
+ elseif next(arg) then
+ local result = { }
+ for _,a in ipairs(arg) do -- ipairs 1 .. #n
+ a = resolvers.resolve(a)
+ a = a:unquote()
+ a = a:gsub('"','\\"') -- tricky
+ if a:find(" ") then
+ result[#result+1] = a:quote()
+ else
+ result[#result+1] = a
+ end
+ end
+ return table.join(result," ")
else
- environment.lucpath = environment.formatpath .. "/lua/" .. environment.progname
+ return ""
end
end
-environment.setlucpath()
+if arg then
+
+ -- new, reconstruct quoted snippets (maybe better just remnove the " then and add them later)
+ local newarg, instring = { }, false
+
+ for index, argument in ipairs(arg) do
+ if argument:find("^\"") then
+ newarg[#newarg+1] = argument:gsub("^\"","")
+ if not argument:find("\"$") then
+ instring = true
+ end
+ elseif argument:find("\"$") then
+ newarg[#newarg] = newarg[#newarg] .. " " .. argument:gsub("\"$","")
+ instring = false
+ elseif instring then
+ newarg[#newarg] = newarg[#newarg] .. " " .. argument
+ else
+ newarg[#newarg+1] = argument
+ end
+ end
+ for i=1,-5,-1 do
+ newarg[i] = arg[i]
+ end
+
+ environment.initialize_arguments(newarg)
+ environment.original_arguments = newarg
+ environment.raw_arguments = arg
+
+ arg = { } -- prevent duplicate handling
-function environment.loadedluacode(fullname)
- return loadfile(fullname)
end
-function environment.luafilechunk(filename)
- local filename = filename:gsub("%.%a+$", "") .. ".lua"
- local fullname = environment.luafile(filename)
- if fullname and fullname ~= "" then
- environment.showmessage("loading file", fullname)
- return environment.loadedluacode(fullname)
- else
- environment.showmessage("unknown file", filename)
- return nil
+-- weird place ... depends on a not yet loaded module
+
+function environment.texfile(filename)
+ return resolvers.find_file(filename,'tex')
+end
+
+function environment.luafile(filename)
+ local resolved = resolvers.find_file(filename,'tex') or ""
+ if resolved ~= "" then
+ return resolved
+ end
+ resolved = resolvers.find_file(filename,'texmfscripts') or ""
+ if resolved ~= "" then
+ return resolved
end
+ return resolvers.find_file(filename,'luatexlibs') or ""
end
--- the next ones can use the previous ones
+environment.loadedluacode = loadfile -- can be overloaded
-function environment.loadluafile(filename)
- filename = filename:gsub("%.%a+$", "") .. ".lua"
+--~ function environment.loadedluacode(name)
+--~ if os.spawn("texluac -s -o texluac.luc " .. name) == 0 then
+--~ local chunk = loadstring(io.loaddata("texluac.luc"))
+--~ os.remove("texluac.luc")
+--~ return chunk
+--~ else
+--~ environment.loadedluacode = loadfile -- can be overloaded
+--~ return loadfile(name)
+--~ end
+--~ end
+
+function environment.luafilechunk(filename) -- used for loading lua bytecode in the format
+ filename = file.replacesuffix(filename, "lua")
local fullname = environment.luafile(filename)
if fullname and fullname ~= "" then
- environment.showmessage("loading", fullname)
- dofile(fullname)
+ if trace_verbose then
+ logs.report("fileio","loading file %s", fullname)
+ end
+ return environment.loadedluacode(fullname)
else
- environment.showmessage("unknown file", filename)
+ if trace_verbose then
+ logs.report("fileio","unknown file %s", filename)
+ end
+ return nil
end
end
-function environment.loadlucfile(filename,version)
- local filename = filename:gsub("%.%a+$", "")
- local fullname = nil
- if environment.initex or not environment.useluc then
- environment.loadluafile(filename)
- else
- if environment.lucpath and environment.lucpath ~= "" then
- fullname = environment.lucpath .. "/" .. filename .. ".luc"
- local chunk = loadfile(fullname) -- this way we don't need a file exists check
- if chunk then
- environment.showmessage("loading", fullname)
- assert(chunk)()
- if version then
- local v = version -- can be nil
- if modules and modules[filename] then
- v = modules[filename].version -- new
- elseif versions and versions[filename] then
- v = versions[filename] -- old
- end
- if v ~= version then
- environment.showmessage("version mismatch", filename,"lua=" .. v, "luc=" ..version)
- environment.loadluafile(filename)
- end
+-- the next ones can use the previous ones / combine
- end
+function environment.loadluafile(filename, version)
+ local lucname, luaname, chunk
+ local basename = file.removesuffix(filename)
+ if basename == filename then
+ lucname, luaname = basename .. ".luc", basename .. ".lua"
+ else
+ lucname, luaname = nil, basename -- forced suffix
+ end
+ -- when not overloaded by explicit suffix we look for a luc file first
+ local fullname = (lucname and environment.luafile(lucname)) or ""
+ if fullname ~= "" then
+ if trace_verbose then
+ logs.report("fileio","loading %s", fullname)
+ end
+ chunk = loadfile(fullname) -- this way we don't need a file exists check
+ end
+ if chunk then
+ assert(chunk)()
+ if version then
+ -- we check of the version number of this chunk matches
+ local v = version -- can be nil
+ if modules and modules[filename] then
+ v = modules[filename].version -- new method
+ elseif versions and versions[filename] then
+ v = versions[filename] -- old method
+ end
+ if v == version then
+ return true
else
+ if trace_verbose then
+ logs.report("fileio","version mismatch for %s: lua=%s, luc=%s", filename, v, version)
+ end
environment.loadluafile(filename)
end
else
- environment.loadluafile(filename)
+ return true
end
end
-end
-
--- -- -- the next function was posted by Peter Cawley on the lua list -- -- --
--- -- -- -- -- --
--- -- -- stripping makes the compressed format file about 1MB smaller -- -- --
--- -- -- -- -- --
--- -- -- using this trick is at your own risk -- -- --
-
-local function strip_code(dump)
- local version, format, endian, int, size, ins, num = dump:byte(5, 11)
- local subint
- if endian == 1 then
- subint = function(dump, i, l)
- local val = 0
- for n = l, 1, -1 do
- val = val * 256 + dump:byte(i + n - 1)
- end
- return val, i + l
+ fullname = (luaname and environment.luafile(luaname)) or ""
+ if fullname ~= "" then
+ if trace_verbose then
+ logs.report("fileio","loading %s", fullname)
end
- else
- subint = function(dump, i, l)
- local val = 0
- for n = 1, l, 1 do
- val = val * 256 + dump:byte(i + n - 1)
+ chunk = loadfile(fullname) -- this way we don't need a file exists check
+ if not chunk then
+ if verbose then
+ logs.report("fileio","unknown file %s", filename)
end
- return val, i + l
- end
- end
- local strip_function
- strip_function = function(dump)
- local count, offset = subint(dump, 1, size)
- local stripped, dirty = string.rep("\0", size), offset + count
- offset = offset + count + int * 2 + 4
- offset = offset + int + subint(dump, offset, int) * ins
- count, offset = subint(dump, offset, int)
- for n = 1, count do
- local t
- t, offset = subint(dump, offset, 1)
- if t == 1 then
- offset = offset + 1
- elseif t == 4 then
- offset = offset + size + subint(dump, offset, size)
- elseif t == 3 then
- offset = offset + num
- end
- end
- count, offset = subint(dump, offset, int)
- stripped = stripped .. dump:sub(dirty, offset - 1)
- for n = 1, count do
- local proto, off = strip_function(dump:sub(offset, -1))
- stripped, offset = stripped .. proto, offset + off - 1
- end
- offset = offset + subint(dump, offset, int) * int + int
- count, offset = subint(dump, offset, int)
- for n = 1, count do
- offset = offset + subint(dump, offset, size) + size + int * 2
- end
- count, offset = subint(dump, offset, int)
- for n = 1, count do
- offset = offset + subint(dump, offset, size) + size
+ else
+ assert(chunk)()
+ return true
end
- stripped = stripped .. string.rep("\0", int * 3)
- return stripped, offset
end
- return dump:sub(1,12) .. strip_function(dump:sub(13,-1))
+ return false
end
-
-environment.stripcode = false -- true
-
-function environment.loadedluacode(fullname)
- if environment.stripcode then
- return loadstring(strip_code(string.dump(loadstring(io.loaddata(fullname)))))
- else
- return loadfile(fullname)
- end
-end
-
--- -- end of stripping code -- --
diff --git a/Master/texmf-dist/tex/context/base/luat-env.tex b/Master/texmf-dist/tex/context/base/luat-env.tex
deleted file mode 100644
index 0b6f2466373..00000000000
--- a/Master/texmf-dist/tex/context/base/luat-env.tex
+++ /dev/null
@@ -1,172 +0,0 @@
-%D \module
-%D [ file=luat-env,
-%D version=2005.05.26,
-%D title=\CONTEXT\ Lua Macros,
-%D subtitle=ConTeXt features,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright=PRAGMA]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D Originally we compiled the lua files externally and loaded
-%D then at runtime, but when the amount grew, we realized that
-%D we needed away to store them in the format, which is what
-%D bytecode arrays do. And so the following is obsolete:
-%D
-%D \starttyping
-%D \chardef\ctxluaembeddingmode \plusone
-%D
-%D 0 = external compilation and loading
-%D 1 = runtime compilation and embedding
-%D \stoptyping
-
-% \writestatus{loading}{Lua Support Macros (environment)}
-
-% print (lua.id)
-% print (lua.version)
-% print (lua.startupfile)
-
-%D Allocation of \LUA\ engines.
-
-\newcount\luadefcounter
-
-\ifx\zerocount\undefined \chardef\zerocount=0 \fi
-\ifx\plusone \undefined \chardef\plusone =1 \fi
-
-\def\newlua#1%
- {\global\advance\luadefcounter\plusone
- \mathchardef#1\luadefcounter}
-
-%D We use a dedicated instance for \CONTEXT\ core functionality. In
-%D \CONTEXT we also use this as callback instance. Instance 0 is
-%D the scratch instance.
-
-\ifx\luastartup\undefined \newcount\luastartup \fi
-
-\chardef\CTXlua\zerocount \luadefcounter\CTXlua \luastartup\CTXlua
-
-\def\ctxlua {\directlua\CTXlua}
-\def\directctxlua{\directlua\CTXlua}
-\def\latectxlua {\latelua \CTXlua}
-
-%D The simple \type {\lua} command is just a shortcut to the
-%D zero instance. Beware, we don't use the 0--9 range for
-%D scratch purposes as we do with other registers. First of all
-%D we want to avoid the overhead, but mostly, users can just define
-%D their own.
-
-\newlua \luadefault
-
-\def \lua {\directlua\luadefault} % zero is the main one, and reserved for ctx
-\edef\luaversion{\CTXlua{tex.print(_VERSION)}}
-
-%D We want to define \LUA\ related things in the format but
-%D need to reluad code because \LUA\ instances are not dumped
-%D into the format.
-
-\ifx\undefined\normaleveryjob \let\normaleveryjob\everyjob \newtoks\everyjob \fi
-
-\newtoks\everyloadluacode
-\newtoks\everyfinalizeluacode
-
-\normaleveryjob{\the\everyloadluacode\the\everyfinalizeluacode\the\everyjob}
-
-\newif\ifproductionrun
-
-\long\def\startruntimeluacode#1\stopruntimeluacode % only simple code (load +init)
- {\ifproductionrun
- \global\let\startruntimeluacode\relax
- \global\let\stopruntimeluacode \relax
- \else
- \global\everyloadluacode\expandafter{\the\everyloadluacode#1}%
- \fi
- #1} % maybe no interference
-
-\long\def\startruntimectxluacode#1\stopruntimectxluacode
- {\startruntimeluacode\ctxlua{#1}\stopruntimeluacode}
-
-%D Next we load the initialization code.
-
-\startruntimectxluacode
- environment = environment or { }
- environment.jobname = "\jobname" % tex.jobname
- environment.formatname = "\contextformat" % tex.formatname
- environment.initex = \ifproductionrun false \else true \fi % tex.formatname == ""
- environment.version = "\contextversion"
-\stopruntimectxluacode
-
-% no longer needed: dofile(input.find_file(texmf.instance,"luat-env.lua","tex"))
-
-\chardef\ctxluaexecutionmode \zerocount % private
-
-% we start at 500, below this, we store predefined data (dumps)
-
-\newcount\luabytecodecounter \luabytecodecounter=500
-
-\startruntimectxluacode
- if not lua.bytedata then lua.bytedata = { } end
-\stopruntimectxluacode
-
-%D Handy when we expand:
-
-\let\stopruntimeluacode \relax
-\let\stopruntimectxluacode\relax
-
-\long\def\lastexpanded{} % todo: elsewhere we use \@@expanded
-
-\long\def\expanded#1{\long\xdef\lastexpanded{\noexpand#1}\lastexpanded}
-
-%D More code:
-
-\def\ctxluabytecode#1% executes an already loaded chunk
- {\ctxlua {
- do
- local str = ''
- if lua.bytedata[#1] then
- str = " from file " .. lua.bytedata[#1][1] .. " version " .. lua.bytedata[#1][2]
- end
- if lua.bytecode[#1] then
- if environment.initex then
- environment.showmessage("executing byte code " .. "#1" .. str)
- assert(lua.bytecode[#1])()
- else
- assert(lua.bytecode[#1])()
- lua.bytecode[#1] = nil
- end
- else
- environment.showmessage("invalid byte code " .. "#1" .. str)
- end
- end
- }}
-
-\def\ctxluabyteload#1#2% registers and compiles chunk
- {\global\advance\luabytecodecounter \plusone
- \expanded{\startruntimectxluacode
- lua.bytedata[\the\luabytecodecounter] = { "#1", "#2" }
- \stopruntimectxluacode}%
- \ctxlua {
- lua.bytedata[\the\luabytecodecounter] = { "#1", "#2" }
- lua.bytecode[\the\luabytecodecounter] = environment.luafilechunk("#1")
- }}
-
-\def\ctxluafileload#1#2% load a (either not compiled) chunk at runtime
- {\doifelsenothing{#2}
- {\ctxlua{environment.loadlucfile("#1")}}
- {\ctxlua{environment.loadlucfile("#1",#2)}}}
-
-\def\registerctxluafile#1#2% name version
- {\ifproductionrun \else
- \ctxluabyteload{#1}{#2}%
- \fi
- \global\everyloadluacode\expandafter\expandafter\expandafter{\expandafter\the\expandafter\everyloadluacode
- \expandafter\ctxluabytecode\expandafter{\the\luabytecodecounter}}%
- \ifcase\ctxluaexecutionmode\or\ctxluabytecode{\the\luabytecodecounter}\fi}
-
-\registerctxluafile{luat-env}{1.001}
-
-\chardef\ctxluaexecutionmode \plusone
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/luat-exe.lua b/Master/texmf-dist/tex/context/base/luat-exe.lua
index dcb28d35f0d..fd93ad3829b 100644
--- a/Master/texmf-dist/tex/context/base/luat-exe.lua
+++ b/Master/texmf-dist/tex/context/base/luat-exe.lua
@@ -1,59 +1,55 @@
--- filename : luat-exe.lua
--- comment : companion to luat-lib.tex
--- author : Hans Hagen, PRAGMA-ADE, Hasselt NL
--- copyright: PRAGMA ADE / ConTeXt Development Team
--- license : see context related readme files
+if not modules then modules = { } end modules ['luat-exe'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
-if not versions then versions = { } end versions['luat-exe'] = 1.001
if not executer then executer = { } end
executer.permitted = { }
executer.execute = os.execute
function executer.register(...)
+ local ep = executer.permitted
for k,v in pairs({...}) do
- if v == "*" then
- table.insert(executer.permitted, ".*")
- else
- table.insert(executer.permitted, v)
- end
+ ep[#ep+1] = (v == "*" and ".*") or v
end
end
-function executer.finalize() -- todo: os.exec
- do
- local execute = os.execute
- function executer.execute(...)
- local t, name, arguments = {...}, "", ""
- if #t == 1 then
- if type(t[1]) == 'table' then
- name, arguments = t[1], table.concat(t," ",2,#t)
- else
- name, arguments = string.match(t[1],"^(.-)%s+(.+)$")
- if not (name and arguments) then
- name, arguments = t[1], ""
- end
- end
- else
+function executer.finalize() -- todo: os.exec, todo: report ipv print
+ local execute = os.execute
+ function executer.execute(...)
+ local t, name, arguments = {...}, "", ""
+ if #t == 1 then
+ if type(t[1]) == 'table' then
name, arguments = t[1], table.concat(t," ",2,#t)
- end
- for _,v in pairs(executer.permitted) do
- if string.find(name,v) then
- execute(name .. " " .. arguments)
- -- print("executed: " .. name .. " " .. arguments)
- else
- print("not permitted: " .. name .. " " .. arguments)
+ else
+ name, arguments = t[1]:match("^(.-)%s+(.+)$")
+ if not (name and arguments) then
+ name, arguments = t[1], ""
end
end
+ else
+ name, arguments = t[1], table.concat(t," ",2,#t)
end
- function executer.finalize()
- print("executer is already finalized")
- end
- function executer.register(name)
- print("executer is already finalized")
+ for _,v in pairs(executer.permitted) do
+ if name:find(v) then
+ execute(name .. " " .. arguments)
+ -- print("executed: " .. name .. " " .. arguments)
+ else
+ print("not permitted: " .. name .. " " .. arguments)
+ end
end
- os.execute = executer.execute
end
+ function executer.finalize()
+ print("executer is already finalized")
+ end
+ function executer.register(name)
+ print("executer is already finalized")
+ end
+ os.execute = executer.execute
end
--~ executer.register('.*')
diff --git a/Master/texmf-dist/tex/context/base/luat-fio.lua b/Master/texmf-dist/tex/context/base/luat-fio.lua
new file mode 100644
index 00000000000..d8a9a27bf75
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/luat-fio.lua
@@ -0,0 +1,83 @@
+if not modules then modules = { } end modules ['luat-fio'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local texiowrite_nl = (texio and texio.write_nl) or print
+local texiowrite = (texio and texio.write) or print
+
+local format = string.format
+
+texconfig.kpse_init = false
+texconfig.trace_file_names = true -- also influences pdf fonts reporting .. todo
+texconfig.max_print_line = 100000
+
+kpse = { } setmetatable(kpse, { __index = function(k,v) return input[v] end } )
+
+-- if still present, we overload kpse (put it off-line so to say)
+
+if not resolvers.instance then
+
+ resolvers.reset()
+
+ resolvers.instance.progname = 'context'
+ resolvers.instance.engine = 'luatex'
+ resolvers.instance.validfile = resolvers.validctxfile
+
+ resolvers.load()
+
+ if callback then
+
+ callback.register('find_read_file' , function(id,name) return resolvers.findtexfile(name) end)
+ callback.register('open_read_file' , function( name) return resolvers.opentexfile(name) end)
+
+ callback.register('find_data_file' , function(name) return resolvers.findbinfile(name,"tex") end)
+ callback.register('find_enc_file' , function(name) return resolvers.findbinfile(name,"enc") end)
+ callback.register('find_font_file' , function(name) return resolvers.findbinfile(name,"tfm") end)
+ callback.register('find_format_file' , function(name) return resolvers.findbinfile(name,"fmt") end)
+ callback.register('find_image_file' , function(name) return resolvers.findbinfile(name,"tex") end)
+ callback.register('find_map_file' , function(name) return resolvers.findbinfile(name,"map") end)
+ callback.register('find_ocp_file' , function(name) return resolvers.findbinfile(name,"ocp") end)
+ callback.register('find_opentype_file' , function(name) return resolvers.findbinfile(name,"otf") end)
+ callback.register('find_output_file' , function(name) return name end)
+ callback.register('find_pk_file' , function(name) return resolvers.findbinfile(name,"pk") end)
+ callback.register('find_sfd_file' , function(name) return resolvers.findbinfile(name,"sfd") end)
+ callback.register('find_truetype_file' , function(name) return resolvers.findbinfile(name,"ttf") end)
+ callback.register('find_type1_file' , function(name) return resolvers.findbinfile(name,"pfb") end)
+ callback.register('find_vf_file' , function(name) return resolvers.findbinfile(name,"vf") end)
+
+ callback.register('read_data_file' , function(file) return resolvers.loadbinfile(file,"tex") end)
+ callback.register('read_enc_file' , function(file) return resolvers.loadbinfile(file,"enc") end)
+ callback.register('read_font_file' , function(file) return resolvers.loadbinfile(file,"tfm") end)
+ -- format
+ -- image
+ callback.register('read_map_file' , function(file) return resolvers.loadbinfile(file,"map") end)
+ callback.register('read_ocp_file' , function(file) return resolvers.loadbinfile(file,"ocp") end)
+ -- output
+ callback.register('read_pk_file' , function(file) return resolvers.loadbinfile(file,"pk") end)
+ callback.register('read_sfd_file' , function(file) return resolvers.loadbinfile(file,"sfd") end)
+ callback.register('read_vf_file' , function(file) return resolvers.loadbinfile(file,"vf" ) end)
+
+ callback.register('find_font_file' , function(name) return resolvers.findbinfile(name,"ofm") end)
+ callback.register('find_vf_file' , function(name) return resolvers.findbinfile(name,"ovf") end)
+
+ callback.register('read_font_file' , function(file) return resolvers.loadbinfile(file,"ofm") end)
+ callback.register('read_vf_file' , function(file) return resolvers.loadbinfile(file,"ovf") end)
+
+ -- callback.register('read_opentype_file' , function(file) return resolvers.loadbinfile(file,"otf") end)
+ -- callback.register('read_truetype_file' , function(file) return resolvers.loadbinfile(file,"ttf") end)
+ -- callback.register('read_type1_file' , function(file) return resolvers.loadbinfile(file,"pfb") end)
+
+ callback.register('find_write_file' , function(id,name) return name end)
+ callback.register('find_format_file' , function(name) return name end)
+
+ end
+
+end
+
+statistics.register("input load time", function()
+ return format("%s seconds", statistics.elapsedtime(resolvers.instance))
+end)
diff --git a/Master/texmf-dist/tex/context/base/luat-ini.lua b/Master/texmf-dist/tex/context/base/luat-ini.lua
index 092593541ae..34b59d7e8d5 100644
--- a/Master/texmf-dist/tex/context/base/luat-ini.lua
+++ b/Master/texmf-dist/tex/context/base/luat-ini.lua
@@ -6,15 +6,26 @@ if not modules then modules = { } end modules ['luat-ini'] = {
license = "see context related readme files"
}
+--~ local ctxcatcodes = tex.ctxcatcodes
+
--[[ldx--
<p>We cannot load anything yet. However what we will do us reserve a fewtables.
These can be used for runtime user data or third party modules and will not be
cluttered by macro package code.</p>
--ldx]]--
-userdata = userdata or { }
-thirddata = thirddata or { }
-document = document or { }
+userdata = userdata or { } -- might be used
+thirddata = thirddata or { } -- might be used
+moduledata = moduledata or { } -- might be used
+document = document or { }
+parametersets = parametersets or { } -- experimental
+
+--[[ldx--
+<p>These can be used/set by the caller program; <t>mtx-context.lua</t> does it.</p>
+--ldx]]--
+
+document.arguments = document.arguments or { }
+document.files = document.files or { }
--[[ldx--
<p>Please create a namespace within these tables before using them!</p>
@@ -24,3 +35,116 @@ userdata ['my.name'] = { }
thirddata['tricks' ] = { }
</typing>
--ldx]]--
+
+--[[ldx--
+<p>We could cook up a readonly model for global tables but it
+makes more sense to invite users to use one of the predefined
+namespaces. One can redefine the protector. After all, it's
+just a lightweight suggestive system, not a watertight
+one.</p>
+--ldx]]--
+
+local string, table, lpeg, math, io, system = string, table, lpeg, math, io, system
+local next, setfenv = next, setfenv
+local format = string.format
+
+local global = _G
+
+global.global = global
+
+local dummy = function() end
+
+local protected = {
+ -- global table
+ global = global,
+ -- user tables
+ userdata = userdata,
+ moduledata = moduledata,
+ thirddata = thirddata,
+ document = document,
+ -- reserved
+ protect = dummy,
+ unprotect = dummy,
+ -- luatex
+ tex = tex,
+ -- lua
+ string = string,
+ table = table,
+ lpeg = lpeg,
+ math = math,
+ io = io,
+ system = system,
+}
+
+userdata, thirddata, moduledata = nil, nil, nil
+
+function protect(name)
+ if name == "isolateddata" then
+ local t = { }
+ for k, v in next, protected do
+ t[k] = v
+ end
+ setfenv(2,t)
+ else
+ if not name then
+ name = "shareddata"
+ end
+ local t = global[name]
+ if not t then
+ t = { }
+ for k, v in next, protected do
+ t[k] = v
+ end
+ global[name] = t
+ end
+ setfenv(2,t)
+ end
+end
+
+lua.numbers = { }
+lua.messages = { }
+
+function lua.registername(name,message)
+ local lnn = lua.numbers[name]
+ if not lnn then
+ lnn = #lua.messages + 1
+ lua.messages[lnn] = message
+ lua.numbers[name] = lnn
+ end
+ lua.name[lnn] = message
+ tex.write(lnn)
+end
+
+--~ function lua.checknames()
+--~ lua.name[0] = "ctx"
+--~ for k, v in next, lua.messages do
+--~ lua.name[k] = v
+--~ end
+--~ end
+
+storage.register("lua/numbers", lua.numbers, "lua.numbers")
+storage.register("lua/messages", lua.messages, "lua.messages")
+
+function document.setargument(key,value)
+ document.arguments[key] = value
+end
+
+function document.setdefaultargument(key,default)
+ local v = document.arguments[key]
+ if v == nil or v == "" then
+ document.arguments[key] = default
+ end
+end
+
+function document.getargument(key,default)
+ local v = document.arguments[key]
+ if type(v) == "boolean" then
+ v = (v and "yes") or "no"
+ document.arguments[key] = v
+ end
+ tex.sprint(tex.ctxcatcodes,v or default or "")
+end
+
+function document.getfilename(i)
+ tex.sprint(tex.ctxcatcodes,document.files[i] or "")
+end
diff --git a/Master/texmf-dist/tex/context/base/luat-ini.mkiv b/Master/texmf-dist/tex/context/base/luat-ini.mkiv
new file mode 100644
index 00000000000..84214ea731b
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/luat-ini.mkiv
@@ -0,0 +1,239 @@
+%D \module
+%D [ file=luat-ini,
+%D version=2005.08.11,
+%D title=\CONTEXT\ Lua Macros,
+%D subtitle=Initialization,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Lua Macros / Initialization}
+
+\unprotect
+
+%D Loading lua code can be done using \type {startup.lua}. The following
+%D method uses the \TEX\ input file locator of kpse. At least we need to
+%D use that way of loading when we haven't yet define our own code, which
+%D we keep outside the format. We will keep code outside \TEX\ files as
+%D much as possible.
+
+\ifx\setnaturalcatcodes\undefined \let\setnaturalcatcodes\relax \fi
+\ifx\obeylualines \undefined \let\obeylualines \relax \fi
+\ifx\obeyluatokens \undefined \let\obeyluatokens \relax \fi
+
+%D A few more goodies:
+
+\long\def\dostartlua
+ {\begingroup
+ \obeylualines
+ \dodostartlua}
+
+\long\def\dodostartlua#1\stoplua
+ {\normalexpanded{\endgroup\noexpand\directlua\zerocount{#1}}}
+
+\long\def\dostartluacode
+ {\begingroup
+ \obeylualines
+ \obeyluatokens
+ \dodostartluacode}
+
+\long\def\dodostartluacode#1\stopluacode
+ {\normalexpanded{\endgroup\noexpand\directlua\zerocount{#1}}}
+
+\def\startlua {\dostartlua } % tex catcodes
+\def\startluacode{\dostartluacode} % lua catcodes
+
+%D Some delayed definitions:
+
+\ifx\obeylines \undefined \let\obeylines \relax \fi
+\ifx\obeyedline \undefined \let\obeyedline \relax \fi
+\ifx\obeyspaces \undefined \let\obeyspaces \relax \fi
+\ifx\obeyedspace \undefined \let\obeyedspace \relax \fi
+\ifx\outputnewlinechar\undefined \let\outputnewlinechar\relax \fi
+
+%D A previous version used a bit less code and no catcode table,
+%D simply becaus ethey were not around at the time of writing.
+%
+% we keep it around for archival purposes
+%
+% \def\obeylualines
+% {\obeylines \let\obeyedline \outputnewlinechar
+% \obeyspaces \let\obeyedspace\space}
+%
+% \def\obeyluatokens % todo: make this a proper catcode table, use let's
+% {\catcode`\%=12 \catcode`\#=12
+% \catcode`\_=12 \catcode`\^=12
+% \catcode`\&=12 \catcode`\|=12
+% \catcode`\{=12 \catcode`\}=12
+% \catcode`\~=12 \catcode`\$=12
+% \def\\{\string\\}\def\|{\string\|}\def\-{\string\-}%
+% \def\({\string\(}\def\){\string\)}\def\{{\string\{}\def\}{\string\}}%
+% \def\'{\string\'}\def\"{\string\"}%
+% \def\n{\string\n}\def\r{\string\r}\def\f{\string\f}\def\t{\string\t}%
+% \def\a{\string\a}\def\b{\string\b}\def\v{\string\v}\def\s{\string\s}%
+% \def\1{\string\1}\def\2{\string\2}\def\3{\string\3}\def\4{\string\4}\def\5{\string\5}%
+% \def\6{\string\6}\def\7{\string\7}\def\8{\string\8}\def\9{\string\9}\def\0{\string\0}}
+
+\let\obeylualines\relax
+
+\newtoks\everyluacode
+
+\edef\lualetterbackslash{\string\\}
+\edef\lualetterbar {\string\|} \edef\lualetterdash {\string\-}
+\edef\lualetterlparent {\string\(} \edef\lualetterrparent {\string\)}
+\edef\lualetterlbrace {\string\{} \edef\lualetterrbrace {\string\}}
+\edef\lualettersquote {\string\'} \edef\lualetterdquote {\string\"}
+\edef\lualettern {\string\n} \edef\lualetterr {\string\r}
+\edef\lualetterf {\string\f} \edef\lualettert {\string\t}
+\edef\lualettera {\string\a} \edef\lualetterb {\string\b}
+\edef\lualetterv {\string\v} \edef\lualetters {\string\s}
+\edef\lualetterone {\string\1} \edef\lualettertwo {\string\2}
+\edef\lualetterthree {\string\3} \edef\lualetterfour {\string\4}
+\edef\lualetterfive {\string\5} \edef\lualettersix {\string\6}
+\edef\lualetterseven {\string\7} \edef\lualettereight {\string\8}
+\edef\lualetternine {\string\9} \edef\lualetterzero {\string\0}
+
+\appendtoks
+ \let\\\lualetterbackslash
+ \let\|\lualetterbar \let\-\lualetterdash
+ \let\(\lualetterlparent \let\)\lualetterrparent
+ \let\{\lualetterlbrace \let\}\lualetterrbrace
+ \let\'\lualettersquote \let\"\lualetterdquote
+ \let\n\lualettern \let\r\lualetterr
+ \let\f\lualetterf \let\t\lualettert
+ \let\a\lualettera \let\b\lualetterb
+ \let\v\lualetterv \let\s\lualetters
+ \let\1\lualetterone \let\2\lualettertwo
+ \let\3\lualetterthree \let\4\lualetterfour
+ \let\5\lualetterfive \let\6\lualettersix
+ \let\7\lualetterseven \let\8\lualettereight
+ \let\9\lualetternine \let\0\lualetterzero
+\to \everyluacode
+
+\def\obeyluatokens
+ {\setcatcodetable \luacatcodes
+ \the\everyluacode}
+
+%D \macros
+%D {definenamedlua}
+%D
+%D We provide an interface for defining instances:
+
+\def\s!lua{lua} \def\v!code{code} \def\!!name{name} \def\s!data{data}
+
+%D Beware: because \type {\expanded} is een convert command, the error
+%D message will show \type{<inserted text>} as part of the message.
+
+\long\def\dostartnamedluacode#1%
+ {\begingroup
+ \obeylualines
+ \obeyluatokens
+ \csname dodostartnamed#1\v!code\endcsname}
+
+\def\definenamedlua[#1]#2[#3]% no optional arg handling here yet
+ {\scratchcounter\ctxlua{lua.registername("#1","#3")}%
+ \normalexpanded{\long\edef\csname dodostartnamed#1\v!code\endcsname##1\csname\e!stop#1\v!code\endcsname}%
+ {\endgroup\noexpand\directlua\the\scratchcounter{protect("#1\s!data")##1}}%
+ \long\expandafter\def \csname\e!start#1\v!code\endcsname {\dostartnamedluacode{#1}}%
+ \long\expandafter\edef\csname #1\v!code\endcsname##1{\noexpand\directlua\the\scratchcounter{protect("#1\s!data")##1}}}
+
+%D We predefine a few.
+
+\definenamedlua[user] [private user instance]
+\definenamedlua[third] [third party module instance]
+\definenamedlua[module] [module instance]
+\definenamedlua[isolated][isolated instance]
+
+%D In practice this works out as follows:
+%D
+%D \startbuffer
+%D \startluacode
+%D tex.print("LUA")
+%D \stopluacode
+%D
+%D \startusercode
+%D global.tex.print("USER 1")
+%D tex.print("USER 2")
+%D if characters then
+%D tex.print("ACCESS")
+%D else
+%D tex.print("NO ACCESS")
+%D end
+%D \stopusercode
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+
+%D We need a way to pass strings safely to \LUA\ without the
+%D need for tricky escaping. Compare:
+%D
+%D \starttyping
+%D \ctxlua {something("anything tricky can go here")}
+%D \ctxlua {something([\luastringsep[anything tricky can go here]\luastringsep])}
+%D \stoptyping
+
+\def\luastringsep{===} % this permits \typefile{self} otherwise nested b/e sep problems
+
+\edef\!!bs{[\luastringsep[}
+\edef\!!es{]\luastringsep]}
+
+%D We have a the following available as primitive so there is no need
+%D for it:
+%D
+%D \starttyping
+%D \long\edef\luaescapestring#1{\!!bs#1\!!es}
+%D \stoptyping
+
+\def\setdocumentfilename #1#2{\ctxlua{document.setfilename(#1,"#2")}}
+\def\setdocumentargument #1#2{\ctxlua{document.setargument("#1","#2")}}
+\def\setdefaultdocumentargument#1#2{\ctxlua{document.getargument("#1","#2")}}
+\def\getdocumentfilename #1{\ctxlua{document.getfilename(#1)}}
+\def\getdocumentargument #1{\ctxlua{document.getargument(#1)}}
+\def\doifdocumentargumentelse #1{\doifsomethingelse{\getdocumentargument{#1}}}
+\def\doifdocumentargument #1{\doifsomething {\getdocumentargument{#1}}}
+\def\doifnotdocumentargument #1{\doifnothing {\getdocumentargument{#1}}}
+
+\let\doifelsedocumentargument\doifdocumentargumentelse
+
+%D A handy helper:
+
+\def\luaexpanded#1{\luaescapestring\expandafter{\normalexpanded{#1}}}
+
+%D Experimental:
+
+\def\startluaparameterset[#1]%
+ {\begingroup
+ \obeylualines
+ \obeyluatokens
+ \dostartluaparameterset{#1}}
+
+\long\def\dostartluaparameterset#1#2\stopluaparameterset
+ {\ctxlua{parametersets["#1"]={#2}}%
+ \endgroup}
+
+\def\luaparameterset#1#2{\ctxlua{parametersets["#1"]={#2} tex.sprint("#1")}}
+
+% todo: \mergeparameterset
+
+% usage:
+%
+% \startluaparameterset [u3d:myset:display:1]
+% toolbar=false,
+% tree=true
+% \stopluaparameterset
+%
+% options=u3d:myset:display:1
+%
+% or:
+%
+% options=\luaparameterset{u3d:myset:display:1}{toolbar=false,tree=true}
+
+%D A Handy helper:
+
+\def\luaconditional#1{\ifcase#1tru\else fals\fi e}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/luat-ini.tex b/Master/texmf-dist/tex/context/base/luat-ini.tex
deleted file mode 100644
index 863530b6be1..00000000000
--- a/Master/texmf-dist/tex/context/base/luat-ini.tex
+++ /dev/null
@@ -1,103 +0,0 @@
-%D \module
-%D [ file=luat-ini,
-%D version=2005.08.11,
-%D title=\CONTEXT\ Lua Macros,
-%D subtitle=Initialization,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright=PRAGMA]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{Lua Support Macros (initialization)}
-
-\unprotect
-
-%D We have to load this module in a very early stage. Therefore we
-%D cannot rely on support macros being available.
-
-% \long\def\rescan#1{\expanded{\scantextokens{#1}}}
-
-%D Loading lua code can be done using \type {startup.lua}. The following
-%D method uses the \TEX\ input file locator of kpse. At least we need to
-%D use that way of loading when we haven't yet define our own code, which
-%D we keep outside the format. We will keep code outside \TEX\ files as
-%D much as possible.
-
-\ifx\setnaturalcatcodes\undefined \let\setnaturalcatcodes\relax \fi
-\ifx\obeylualines \undefined \let\obeylualines \relax \fi
-\ifx\obeyluatokens \undefined \let\obeyluatokens \relax \fi
-
-% \def\loadluacode#1#2% instance filename
-% {\bgroup
-% \everyeof{\noexpand}% hack to make \input nicely expandable
-% \setnaturalcatcodes
-% \obeylualines
-% %message{[Lua Load: #2]}%
-% \directlua#1\expandafter{\normalinput#2\space}\relax
-% \egroup}
-
-%D A few more goodies:
-
-\long\def\dostartlua#1%
- {\begingroup
- \obeylualines
- \dodostartlua{#1}}
-
-\long\def\dodostartlua#1#2\stoplua
- {\expanded{\endgroup\noexpand\directlua#1{#2}}}
-
-\long\def\dostartluacode#1%
- {\begingroup
- \obeylualines
- \obeyluatokens
- \dodostartluacode{#1}}
-
-\long\def\dodostartluacode#1#2\stopluacode
- {\expanded{\endgroup\noexpand\directlua#1{#2}}}
-
-\def\startlua {\dostartlua \zerocount}
-\def\startluacode{\dostartluacode\zerocount}
-
-%D Some delayed definitions:
-
-\ifx\obeylines \undefined \let\obeylines \relax \fi
-\ifx\obeyedline \undefined \let\obeyedline \relax \fi
-\ifx\obeyspaces \undefined \let\obeyspaces \relax \fi
-\ifx\obeyedspace \undefined \let\obeyedspace \relax \fi
-\ifx\outputnewlinechar\undefined \let\outputnewlinechar\relax \fi
-
-\def\obeylualines
- {\obeylines \let\obeyedline \outputnewlinechar
- \obeyspaces \let\obeyedspace\space}
-
-\def\obeyluatokens % todo: make this a proper catcode table, use let's
- {\catcode`\%=12 \catcode`\#=12
- \catcode`\_=12 \catcode`\^=12
- \catcode`\&=12 \catcode`\|=12
- \catcode`\{=12 \catcode`\}=12
- \catcode`\~=12 \catcode`\$=12
- \def\\{\string\\}\def\|{\string\|}\def\-{\string\-}%
- \def\({\string\(}\def\){\string\)}\def\{{\string\{}\def\}{\string\}}%
- \def\'{\string\'}\def\"{\string\"}%
- \def\n{\string\n}\def\r{\string\r}\def\f{\string\f}\def\t{\string\t}%
- \def\a{\string\a}\def\b{\string\b}\def\v{\string\v}\def\s{\string\s}%
- \def\1{\string1}\def\2{\string2}\def\3{\string3}\def\4{\string\4}\def\5{\string\5}%
- \def\6{\string6}\def\7{\string7}\def\8{\string8}\def\9{\string\9}\def\0{\string\0}}
-
-%D We provide an interface for defining instances:
-
-\def\s!lua{lua} \def\v!code{code} \let\@EA\expandafter
-
-\def\definelua[#1]%
- {\ifcsname#1\s!lua\endcsname\else\expandafter\newlua\csname#1\s!lua\endcsname\fi
- \setevalue{\e!start#1\s!lua }{\noexpand\dostartlua \csname#1\s!lua\endcsname}%
- \setevalue{\e!start#1\s!lua\v!code}{\noexpand\dostartluacode\csname#1\s!lua\endcsname}%
- \setvalue {\e!stop #1\s!lua }{\dostoplua }%
- \setvalue {\e!stop #1\s!lua\v!code}{\dostopluacode}}
-
-\definelua[CTX]
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/luat-inp.lua b/Master/texmf-dist/tex/context/base/luat-inp.lua
deleted file mode 100644
index d758227c1bd..00000000000
--- a/Master/texmf-dist/tex/context/base/luat-inp.lua
+++ /dev/null
@@ -1,2262 +0,0 @@
--- filename : luat-inp.lua
--- comment : companion to luat-lib.tex
--- author : Hans Hagen, PRAGMA-ADE, Hasselt NL
--- copyright: PRAGMA ADE / ConTeXt Development Team
--- license : see context related readme files
-
--- This lib is multi-purpose and can be loaded again later on so that
--- additional functionality becomes available. We will split this
--- module in components when we're done with prototyping.
-
--- TODO: os.getenv -> os.env[]
--- TODO: instances.[hashes,cnffiles,configurations,522] -> ipairs (alles check, sneller)
--- TODO: check escaping in find etc, too much, too slow
-
--- This is the first code I wrote for LuaTeX, so it needs some cleanup.
-
--- To be considered: hash key lowercase, first entry in table filename
--- (any case), rest paths (so no need for optimization). Or maybe a
--- separate table that matches lowercase names to mixed case when
--- present. In that case the lower() cases can go away. I will do that
--- only when we run into problems with names ... well ... Iwona-Regular.
-
--- Beware, loading and saving is overloaded in luat-tmp!
-
-if not versions then versions = { } end versions['luat-inp'] = 1.001
-if not environment then environment = { } end
-if not file then file = { } end
-
-if environment.aleph_mode == nil then environment.aleph_mode = true end -- temp hack
-
-if not input then input = { } end
-if not input.suffixes then input.suffixes = { } end
-if not input.formats then input.formats = { } end
-if not input.aux then input.aux = { } end
-
-if not input.suffixmap then input.suffixmap = { } end
-
-if not input.locators then input.locators = { } end -- locate databases
-if not input.hashers then input.hashers = { } end -- load databases
-if not input.generators then input.generators = { } end -- generate databases
-if not input.filters then input.filters = { } end -- conversion filters
-
-local format = string.format
-
-input.locators.notfound = { nil }
-input.hashers.notfound = { nil }
-input.generators.notfound = { nil }
-
-input.cacheversion = '1.0.1'
-input.banner = nil
-input.verbose = false
-input.debug = false
-input.cnfname = 'texmf.cnf'
-input.luaname = 'texmfcnf.lua'
-input.lsrname = 'ls-R'
-input.luasuffix = '.tma'
-input.lucsuffix = '.tmc'
-
--- we use a cleaned up list / format=any is a wildcard, as is *name
-
-input.formats['afm'] = 'AFMFONTS' input.suffixes['afm'] = { 'afm' }
-input.formats['enc'] = 'ENCFONTS' input.suffixes['enc'] = { 'enc' }
-input.formats['fmt'] = 'TEXFORMATS' input.suffixes['fmt'] = { 'fmt' }
-input.formats['map'] = 'TEXFONTMAPS' input.suffixes['map'] = { 'map' }
-input.formats['mp'] = 'MPINPUTS' input.suffixes['mp'] = { 'mp' }
-input.formats['ocp'] = 'OCPINPUTS' input.suffixes['ocp'] = { 'ocp' }
-input.formats['ofm'] = 'OFMFONTS' input.suffixes['ofm'] = { 'ofm', 'tfm' }
-input.formats['otf'] = 'OPENTYPEFONTS' input.suffixes['otf'] = { 'otf' } -- 'ttf'
-input.formats['opl'] = 'OPLFONTS' input.suffixes['opl'] = { 'opl' }
-input.formats['otp'] = 'OTPINPUTS' input.suffixes['otp'] = { 'otp' }
-input.formats['ovf'] = 'OVFFONTS' input.suffixes['ovf'] = { 'ovf', 'vf' }
-input.formats['ovp'] = 'OVPFONTS' input.suffixes['ovp'] = { 'ovp' }
-input.formats['tex'] = 'TEXINPUTS' input.suffixes['tex'] = { 'tex' }
-input.formats['tfm'] = 'TFMFONTS' input.suffixes['tfm'] = { 'tfm' }
-input.formats['ttf'] = 'TTFONTS' input.suffixes['ttf'] = { 'ttf', 'ttc' }
-input.formats['pfb'] = 'T1FONTS' input.suffixes['pfb'] = { 'pfb', 'pfa' }
-input.formats['vf'] = 'VFFONTS' input.suffixes['vf'] = { 'vf' }
-
-input.formats['fea'] = 'FONTFEATURES' input.suffixes['fea'] = { 'fea' }
-input.formats['cid'] = 'FONTCIDMAPS' input.suffixes['cid'] = { 'cid', 'cidmap' }
-
-input.formats ['texmfscripts'] = 'TEXMFSCRIPTS' -- new
-input.suffixes['texmfscripts'] = { 'rb', 'pl', 'py' } -- 'lua'
-
-input.formats ['lua'] = 'LUAINPUTS' -- new
-input.suffixes['lua'] = { 'lua', 'luc', 'tma', 'tmc' }
-
--- here we catch a few new thingies (todo: add these paths to context.tmf)
---
--- FONTFEATURES = .;$TEXMF/fonts/fea//
--- FONTCIDMAPS = .;$TEXMF/fonts/cid//
-
-function input.checkconfigdata(instance) -- not yet ok, no time for debugging now
- local function fix(varname,default)
- local proname = varname .. "." .. instance.progname or "crap"
- local p = instance.environment[proname]
- local v = instance.environment[varname]
- if not ((p and p ~= "") or (v and v ~= "")) then
- instance.variables[varname] = default -- or environment?
- end
- end
- fix("LUAINPUTS" , ".;$TEXINPUTS;$TEXMFSCRIPTS")
- fix("FONTFEATURES", ".;$TEXMF/fonts/fea//;$OPENTYPEFONTS;$TTFONTS;$T1FONTS;$AFMFONTS")
- fix("FONTCIDMAPS" , ".;$TEXMF/fonts/cid//;$OPENTYPEFONTS;$TTFONTS;$T1FONTS;$AFMFONTS")
-end
-
--- backward compatible ones
-
-input.alternatives = { }
-
-input.alternatives['map files'] = 'map'
-input.alternatives['enc files'] = 'enc'
-input.alternatives['cid files'] = 'cid'
-input.alternatives['fea files'] = 'fea'
-input.alternatives['opentype fonts'] = 'otf'
-input.alternatives['truetype fonts'] = 'ttf'
-input.alternatives['truetype collections'] = 'ttc'
-input.alternatives['type1 fonts'] = 'pfb'
-
--- obscure ones
-
-input.formats ['misc fonts'] = ''
-input.suffixes['misc fonts'] = { }
-
-input.formats ['sfd'] = 'SFDFONTS'
-input.suffixes ['sfd'] = { 'sfd' }
-input.alternatives['subfont definition files'] = 'sfd'
-
-function input.reset()
-
- local instance = { }
-
- instance.rootpath = ''
- instance.treepath = ''
- instance.progname = environment.progname or 'context'
- instance.engine = environment.engine or 'luatex'
- instance.format = ''
- instance.environment = { }
- instance.variables = { }
- instance.expansions = { }
- instance.files = { }
- instance.remap = { }
- instance.configuration = { }
- instance.setup = { }
- instance.order = { }
- instance.found = { }
- instance.foundintrees = { }
- instance.kpsevars = { }
- instance.hashes = { }
- instance.cnffiles = { }
- instance.luafiles = { }
- instance.lists = { }
- instance.remember = true
- instance.diskcache = true
- instance.renewcache = false
- instance.scandisk = true
- instance.cachepath = nil
- instance.loaderror = false
- instance.smallcache = false
- instance.savelists = true
- instance.cleanuppaths = true
- instance.allresults = false
- instance.pattern = nil -- lists
- instance.kpseonly = false -- lists
- instance.loadtime = 0
- instance.starttime = 0
- instance.stoptime = 0
- instance.validfile = function(path,name) return true end
- instance.data = { } -- only for loading
- instance.force_suffixes = true
- instance.dummy_path_expr = "^!*unset/*$"
- instance.fakepaths = { }
- instance.lsrmode = false
-
- if os.env then
- -- store once, freeze and faster
- for k,v in pairs(os.env) do
- instance.environment[k] = input.bare_variable(v)
- end
- else
- -- we will access os.env frequently
- for k,v in pairs({'HOME','TEXMF','TEXMFCNF'}) do
- local e = os.getenv(v)
- if e then
- -- input.report("setting",v,"to",input.bare_variable(e))
- instance.environment[v] = input.bare_variable(e)
- end
- end
- end
-
- -- cross referencing
-
- for k, v in pairs(input.suffixes) do
- for _, vv in pairs(v) do
- if vv then
- input.suffixmap[vv] = k
- end
- end
- end
-
- return instance
-
-end
-
-function input.reset_hashes(instance)
- instance.lists = { }
- instance.found = { }
-end
-
-function input.bare_variable(str) -- assumes str is a string
- -- return string.gsub(string.gsub(string.gsub(str,"%s+$",""),'^"(.+)"$',"%1"),"^'(.+)'$","%1")
- return (str:gsub("\s*([\"\']?)(.+)%1\s*", "%2"))
-end
-
-if texio then
- input.log = texio.write_nl
-else
- input.log = print
-end
-
-function input.simple_logger(kind, name)
- if name and name ~= "" then
- if input.banner then
- input.log(input.banner..kind..": "..name)
- else
- input.log("<<"..kind..": "..name..">>")
- end
- else
- if input.banner then
- input.log(input.banner..kind..": no name")
- else
- input.log("<<"..kind..": no name>>")
- end
- end
-end
-
-function input.dummy_logger()
-end
-
-function input.settrace(n)
- input.trace = tonumber(n or 0)
- if input.trace > 0 then
- input.logger = input.simple_logger
- input.verbose = true
- else
- input.logger = function() end
- end
-end
-
-function input.report(...) -- inefficient
- if input.verbose then
- if input.banner then
- input.log(input.banner .. table.concat({...},' '))
- elseif input.logmode() == 'xml' then
- input.log("<t>"..table.concat({...},' ').."</t>")
- else
- input.log("<<"..table.concat({...},' ')..">>")
- end
- end
-end
-
-function input.reportlines(str)
- if type(str) == "string" then
- str = str:split("\n")
- end
- for _,v in pairs(str) do input.report(v) end
-end
-
-input.settrace(tonumber(os.getenv("MTX.INPUT.TRACE") or os.getenv("MTX_INPUT_TRACE") or input.trace or 0))
-
--- These functions can be used to test the performance, especially
--- loading the database files.
-
-do
- local clock = os.gettimeofday or os.clock
-
- function input.starttiming(instance)
- if instance then
- instance.starttime = clock()
- if not instance.loadtime then
- instance.loadtime = 0
- end
- end
- end
-
- function input.stoptiming(instance, report)
- if instance then
- local starttime = instance.starttime
- if starttime then
- local stoptime = clock()
- local loadtime = stoptime - starttime
- instance.stoptime = stoptime
- instance.loadtime = instance.loadtime + loadtime
- if report then
- input.report('load time', format("%0.3f",loadtime))
- end
- return loadtime
- end
- end
- return 0
- end
-
-end
-
-function input.elapsedtime(instance)
- return format("%0.3f",(instance and instance.loadtime) or 0)
-end
-
-function input.report_loadtime(instance)
- if instance then
- input.report('total load time', input.elapsedtime(instance))
- end
-end
-
-input.loadtime = input.elapsedtime
-
-function input.env(instance,key)
- return instance.environment[key] or input.osenv(instance,key)
-end
-
-function input.osenv(instance,key)
- local ie = instance.environment
- local value = ie[key]
- if value == nil then
- -- local e = os.getenv(key)
- local e = os.env[key]
- if e == nil then
- -- value = "" -- false
- else
- value = input.bare_variable(e)
- end
- ie[key] = value
- end
- return value or ""
-end
-
--- we follow a rather traditional approach:
---
--- (1) texmf.cnf given in TEXMFCNF
--- (2) texmf.cnf searched in TEXMF/web2c
---
--- for the moment we don't expect a configuration file in a zip
-
-function input.identify_cnf(instance)
- -- we no longer support treepath and rootpath (was handy for testing);
- -- also we now follow the stupid route: if not set then just assume *one*
- -- cnf file under texmf (i.e. distribution)
- if #instance.cnffiles == 0 then
- if input.env(instance,'TEXMFCNF') == "" then
- local ownpath = environment.ownpath() or "."
- if ownpath then
- -- beware, this is tricky on my own system because at that location I do have
- -- the raw tree that ends up in the zip; i.e. I cannot test this kind of mess
- local function locate(filename,list)
- local ownroot = input.normalize_name(file.join(ownpath,"../.."))
- if not lfs.isdir(file.join(ownroot,"texmf")) then
- ownroot = input.normalize_name(file.join(ownpath,".."))
- if not lfs.isdir(file.join(ownroot,"texmf")) then
- input.verbose = true
- input.report("error", "unable to identify cnf file")
- return
- end
- end
- local texmfcnf = file.join(ownroot,"texmf-local/web2c",filename) -- for minimals and myself
- if not lfs.isfile(texmfcnf) then
- texmfcnf = file.join(ownroot,"texmf/web2c",filename)
- if not lfs.isfile(texmfcnf) then
- input.verbose = true
- input.report("error", "unable to locate",filename)
- return
- end
- end
- table.insert(list,texmfcnf)
- local ie = instance.environment
- if not ie['SELFAUTOPARENT'] then ie['SELFAUTOPARENT'] = ownroot end
- if not ie['TEXMFCNF'] then ie['TEXMFCNF'] = file.dirname(texmfcnf) end
- end
- locate(input.luaname,instance.luafiles)
- locate(input.cnfname,instance.cnffiles)
- if #instance.luafiles == 0 and instance.cnffiles == 0 then
- input.verbose = true
- input.report("error", "unable to locate",filename)
- os.exit()
- end
- -- here we also assume then TEXMF is set in the distribution, if this trickery is
- -- used in the minimals, then users who don't use setuptex are on their own with
- -- regards to extra trees
- else
- input.verbose = true
- input.report("error", "unable to identify own path")
- os.exit()
- end
- else
- local t = input.split_path(input.env(instance,'TEXMFCNF'))
- t = input.aux.expanded_path(instance,t)
- input.aux.expand_vars(instance,t)
- local function locate(filename,list)
- for _,v in ipairs(t) do
- local texmfcnf = input.normalize_name(file.join(v,filename))
- if lfs.isfile(texmfcnf) then
- table.insert(list,texmfcnf)
- end
- end
- end
- locate(input.luaname,instance.luafiles)
- locate(input.cnfname,instance.cnffiles)
- end
- end
-end
-
-function input.load_cnf(instance)
- local function loadoldconfigdata()
- for _, fname in ipairs(instance.cnffiles) do
- input.aux.load_cnf(instance,fname)
- end
- end
- -- instance.cnffiles contain complete names now !
- if #instance.cnffiles == 0 then
- input.report("no cnf files found (TEXMFCNF may not be set/known)")
- else
- instance.rootpath = instance.cnffiles[1]
- for k,fname in ipairs(instance.cnffiles) do
- instance.cnffiles[k] = input.normalize_name(fname:gsub("\\",'/'))
- end
- for i=1,3 do
- instance.rootpath = file.dirname(instance.rootpath)
- end
- instance.rootpath = input.normalize_name(instance.rootpath)
- instance.environment['SELFAUTOPARENT'] = instance.rootpath -- just to be sure
- if instance.lsrmode then
- loadoldconfigdata()
- elseif instance.diskcache and not instance.renewcache then
- input.loadoldconfig(instance,instance.cnffiles)
- if instance.loaderror then
- loadoldconfigdata()
- input.saveoldconfig(instance)
- end
- else
- loadoldconfigdata()
- if instance.renewcache then
- input.saveoldconfig(instance)
- end
- end
- input.aux.collapse_cnf_data(instance)
- end
- input.checkconfigdata(instance)
-end
-
-function input.load_lua(instance)
- if #instance.luafiles == 0 then
- -- yet harmless
- else
- instance.rootpath = instance.luafiles[1]
- for k,fname in ipairs(instance.luafiles) do
- instance.luafiles[k] = input.normalize_name(fname:gsub("\\",'/'))
- end
- for i=1,3 do
- instance.rootpath = file.dirname(instance.rootpath)
- end
- instance.rootpath = input.normalize_name(instance.rootpath)
- instance.environment['SELFAUTOPARENT'] = instance.rootpath -- just to be sure
- input.loadnewconfig(instance)
- input.aux.collapse_cnf_data(instance)
- end
- input.checkconfigdata(instance)
-end
-
-function input.aux.collapse_cnf_data(instance) -- potential optmization: pass start index (setup and configuration are shared)
- for _,c in ipairs(instance.order) do
- for k,v in pairs(c) do
- if not instance.variables[k] then
- if instance.environment[k] then
- instance.variables[k] = instance.environment[k]
- else
- instance.kpsevars[k] = true
- instance.variables[k] = input.bare_variable(v)
- end
- end
- end
- end
-end
-
-function input.aux.load_cnf(instance,fname)
- fname = input.clean_path(fname)
- local lname = fname:gsub("%.%a+$",input.luasuffix)
- local f = io.open(lname)
- if f then -- this will go
- f:close()
- local dname = file.dirname(fname)
- if not instance.configuration[dname] then
- input.aux.load_configuration(instance,dname,lname)
- instance.order[#instance.order+1] = instance.configuration[dname]
- end
- else
- f = io.open(fname)
- if f then
- input.report("loading", fname)
- local line, data, n, k, v
- local dname = file.dirname(fname)
- if not instance.configuration[dname] then
- instance.configuration[dname] = { }
- instance.order[#instance.order+1] = instance.configuration[dname]
- end
- local data = instance.configuration[dname]
- while true do
- local line, n = f:read(), 0
- if line then
- while true do -- join lines
- line, n = line:gsub("\\%s*$", "")
- if n > 0 then
- line = line .. f:read()
- else
- break
- end
- end
- if not line:find("^[%%#]") then
- local k, v = (line:gsub("%s*%%.*$","")):match("%s*(.-)%s*=%s*(.-)%s*$")
- if k and v and not data[k] then
- data[k] = (v:gsub("[%%#].*",'')):gsub("~", "$HOME")
- instance.kpsevars[k] = true
- end
- end
- else
- break
- end
- end
- f:close()
- else
- input.report("skipping", fname)
- end
- end
-end
-
--- database loading
-
-function input.load_hash(instance)
- input.locatelists(instance)
- if instance.lsrmode then
- input.loadlists(instance)
- elseif instance.diskcache and not instance.renewcache then
- input.loadfiles(instance)
- if instance.loaderror then
- input.loadlists(instance)
- input.savefiles(instance)
- end
- else
- input.loadlists(instance)
- if instance.renewcache then
- input.savefiles(instance)
- end
- end
-end
-
-function input.aux.append_hash(instance,type,tag,name)
- input.logger("= hash append",tag)
- table.insert(instance.hashes, { ['type']=type, ['tag']=tag, ['name']=name } )
-end
-
-function input.aux.prepend_hash(instance,type,tag,name)
- input.logger("= hash prepend",tag)
- table.insert(instance.hashes, 1, { ['type']=type, ['tag']=tag, ['name']=name } )
-end
-
-function input.aux.extend_texmf_var(instance,specification) -- crap
- if instance.environment['TEXMF'] then
- input.report("extending environment variable TEXMF with", specification)
- instance.environment['TEXMF'] = instance.environment['TEXMF']:gsub("^%{", function()
- return "{" .. specification .. ","
- end)
- elseif instance.variables['TEXMF'] then
- input.report("extending configuration variable TEXMF with", specification)
- instance.variables['TEXMF'] = instance.variables['TEXMF']:gsub("^%{", function()
- return "{" .. specification .. ","
- end)
- else
- input.report("setting configuration variable TEXMF to", specification)
- instance.variables['TEXMF'] = "{" .. specification .. "}"
- end
- if instance.variables['TEXMF']:find("%,") and not instance.variables['TEXMF']:find("^%{") then
- input.report("adding {} to complex TEXMF variable, best do that yourself")
- instance.variables['TEXMF'] = "{" .. instance.variables['TEXMF'] .. "}"
- end
- input.expand_variables(instance)
- input.reset_hashes(instance)
-end
-
--- locators
-
-function input.locatelists(instance)
- for _, path in pairs(input.simplified_list(input.expansion(instance,'TEXMF'))) do
- path = file.collapse_path(path)
- input.report("locating list of",path)
- input.locatedatabase(instance,input.normalize_name(path))
- end
-end
-
-function input.locatedatabase(instance,specification)
- return input.methodhandler('locators', instance, specification)
-end
-
-function input.locators.tex(instance,specification)
- if specification and specification ~= '' and lfs.isdir(specification) then
- input.logger('! tex locator', specification..' found')
- input.aux.append_hash(instance,'file',specification,filename)
- else
- input.logger('? tex locator', specification..' not found')
- end
-end
-
--- hashers
-
-function input.hashdatabase(instance,tag,name)
- return input.methodhandler('hashers',instance,tag,name)
-end
-
-function input.loadfiles(instance)
- instance.loaderror = false
- instance.files = { }
- if not instance.renewcache then
- for _, hash in ipairs(instance.hashes) do
- input.hashdatabase(instance,hash.tag,hash.name)
- if instance.loaderror then break end
- end
- end
-end
-
-function input.hashers.tex(instance,tag,name)
- input.aux.load_files(instance,tag)
-end
-
--- generators:
-
-function input.loadlists(instance)
- for _, hash in ipairs(instance.hashes) do
- input.generatedatabase(instance,hash.tag)
- end
-end
-
-function input.generatedatabase(instance,specification)
- return input.methodhandler('generators', instance, specification)
-end
-
-do
-
- local weird = lpeg.anywhere(lpeg.S("~`!#$%^&*()={}[]:;\"\'||<>,?\n\r\t"))
-
- function input.generators.tex(instance,specification)
- local tag = specification
- if not instance.lsrmode and lfs and lfs.dir then
- input.report("scanning path",specification)
- instance.files[tag] = { }
- local files = instance.files[tag]
- local n, m, r = 0, 0, 0
- local spec = specification .. '/'
- local attributes = lfs.attributes
- local directory = lfs.dir
- local small = instance.smallcache
- local function action(path)
- local mode, full
- if path then
- full = spec .. path .. '/'
- else
- full = spec
- end
- for name in directory(full) do
- if name:find("^%.") then
- -- skip
- -- elseif name:find("[%~%`%!%#%$%%%^%&%*%(%)%=%{%}%[%]%:%;\"\'%|%<%>%,%?\n\r\t]") then -- too much escaped
- elseif weird:match(name) then
- -- texio.write_nl("skipping " .. name)
- -- skip
- else
- mode = attributes(full..name,'mode')
- if mode == "directory" then
- m = m + 1
- if path then
- action(path..'/'..name)
- else
- action(name)
- end
- elseif path and mode == 'file' then
- n = n + 1
- local f = files[name]
- if f then
- if not small then
- if type(f) == 'string' then
- files[name] = { f, path }
- else
- f[#f+1] = path
- end
- end
- else
- files[name] = path
- local lower = name:lower()
- if name ~= lower then
- files["remap:"..lower] = name
- r = r + 1
- end
- end
- end
- end
- end
- end
- action()
- input.report(format("%s files found on %s directories with %s uppercase remappings",n,m,r))
- else
- local fullname = file.join(specification,input.lsrname)
- local path = '.'
- local f = io.open(fullname)
- if f then
- instance.files[tag] = { }
- local files = instance.files[tag]
- local small = instance.smallcache
- input.report("loading lsr file",fullname)
- -- for line in f:lines() do -- much slower then the next one
- for line in (f:read("*a")):gmatch("(.-)\n") do
- if line:find("^[%a%d]") then
- local fl = files[line]
- if fl then
- if not small then
- if type(fl) == 'string' then
- files[line] = { fl, path } -- table
- else
- fl[#fl+1] = path
- end
- end
- else
- files[line] = path -- string
- local lower = line:lower()
- if line ~= lower then
- files["remap:"..lower] = line
- end
- end
- else
- path = line:match("%.%/(.-)%:$") or path -- match could be nil due to empty line
- end
- end
- f:close()
- end
- end
- end
-
-end
-
--- savers, todo
-
-function input.savefiles(instance)
- input.aux.save_data(instance, 'files', function(k,v)
- return instance.validfile(k,v) -- path, name
- end)
-end
-
--- A config (optionally) has the paths split in tables. Internally
--- we join them and split them after the expansion has taken place. This
--- is more convenient.
-
-function input.splitconfig(instance)
- for i,c in ipairs(instance) do
- for k,v in pairs(c) do
- if type(v) == 'string' then
- local t = file.split_path(v)
- if #t > 1 then
- c[k] = t
- end
- end
- end
- end
-end
-function input.joinconfig(instance)
- for i,c in ipairs(instance.order) do
- for k,v in pairs(c) do
- if type(v) == 'table' then
- c[k] = file.join_path(v)
- end
- end
- end
-end
-function input.split_path(str)
- if type(str) == 'table' then
- return str
- else
- return file.split_path(str)
- end
-end
-function input.join_path(str)
- if type(str) == 'table' then
- return file.join_path(str)
- else
- return str
- end
-end
-
-function input.splitexpansions(instance)
- for k,v in pairs(instance.expansions) do
- local t, h = { }, { }
- for _,vv in pairs(file.split_path(v)) do
- if vv ~= "" and not h[vv] then
- t[#t+1] = vv
- h[vv] = true
- end
- end
- if #t > 1 then
- instance.expansions[k] = t
- else
- instance.expansions[k] = t[1]
- end
- end
-end
-
--- end of split/join code
-
-function input.saveoldconfig(instance)
- input.splitconfig(instance)
- input.aux.save_data(instance, 'configuration', nil)
- input.joinconfig(instance)
-end
-
-input.configbanner = [[
--- This is a Luatex configuration file created by 'luatools.lua' or
--- 'luatex.exe' directly. For comment, suggestions and questions you can
--- contact the ConTeXt Development Team. This configuration file is
--- not copyrighted. [HH & TH]
-]]
-
-function input.serialize(files)
- -- This version is somewhat optimized for the kind of
- -- tables that we deal with, so it's much faster than
- -- the generic serializer. This makes sense because
- -- luatools and mtxtools are called frequently. Okay,
- -- we pay a small price for properly tabbed tables.
- local t = { }
- local concat = table.concat
- local sorted = table.sortedkeys
- local function dump(k,v,m)
- if type(v) == 'string' then
- return m .. "['" .. k .. "']='" .. v .. "',"
- elseif #v == 1 then
- return m .. "['" .. k .. "']='" .. v[1] .. "',"
- else
- return m .. "['" .. k .. "']={'" .. concat(v,"','").. "'},"
- end
- end
- t[#t+1] = "return {"
- if instance.sortdata then
- for _, k in pairs(sorted(files)) do
- local fk = files[k]
- if type(fk) == 'table' then
- t[#t+1] = "\t['" .. k .. "']={"
- for _, kk in pairs(sorted(fk)) do
- t[#t+1] = dump(kk,fk[kk],"\t\t")
- end
- t[#t+1] = "\t},"
- else
- t[#t+1] = dump(k,fk,"\t")
- end
- end
- else
- for k, v in pairs(files) do
- if type(v) == 'table' then
- t[#t+1] = "\t['" .. k .. "']={"
- for kk,vv in pairs(v) do
- t[#t+1] = dump(kk,vv,"\t\t")
- end
- t[#t+1] = "\t},"
- else
- t[#t+1] = dump(k,v,"\t")
- end
- end
- end
- t[#t+1] = "}"
- return concat(t,"\n")
-end
-
-if not texmf then texmf = {} end -- no longer needed, at least not here
-
-function input.aux.save_data(instance, dataname, check, makename) -- untested without cache overload
- for cachename, files in pairs(instance[dataname]) do
- local name = (makename or file.join)(cachename,dataname)
- local luaname, lucname = name .. input.luasuffix, name .. input.lucsuffix
- input.report("preparing " .. dataname .. " for", luaname)
- for k, v in pairs(files) do
- if not check or check(v,k) then -- path, name
- if type(v) == "table" and #v == 1 then
- files[k] = v[1]
- end
- else
- files[k] = nil -- false
- end
- end
- local data = {
- type = dataname,
- root = cachename,
- version = input.cacheversion,
- date = os.date("%Y-%m-%d"),
- time = os.date("%H:%M:%S"),
- content = files,
- }
- local f = io.open(luaname,'w')
- if f then
- input.report("saving " .. dataname .. " in", luaname)
- f:write(input.serialize(data))
- f:close()
- input.report("compiling " .. dataname .. " to", lucname)
- if not utils.lua.compile(luaname,lucname) then
- input.report("compiling failed for " .. dataname .. ", deleting file " .. lucname)
- os.remove(lucname)
- end
- else
- input.report("unable to save " .. dataname .. " in " .. name..input.luasuffix)
- end
- end
-end
-
-function input.aux.load_data(instance,pathname,dataname,filename,makename) -- untested without cache overload
- filename = ((not filename or (filename == "")) and dataname) or filename
- filename = (makename and makename(dataname,filename)) or file.join(pathname,filename)
- local blob = loadfile(filename .. input.lucsuffix) or loadfile(filename .. input.luasuffix)
- if blob then
- local data = blob()
- if data and data.content and data.type == dataname and data.version == input.cacheversion then
- input.report("loading",dataname,"for",pathname,"from",filename)
- instance[dataname][pathname] = data.content
- else
- input.report("skipping",dataname,"for",pathname,"from",filename)
- instance[dataname][pathname] = { }
- instance.loaderror = true
- end
- else
- input.report("skipping",dataname,"for",pathname,"from",filename)
- end
-end
-
--- some day i'll use the nested approach, but not yet (actually we even drop
--- engine/progname support since we have only luatex now)
---
--- first texmfcnf.lua files are located, next the cached texmf.cnf files
---
--- return {
--- TEXMFBOGUS = 'effe checken of dit werkt',
--- }
-
-function input.aux.load_texmfcnf(instance,dataname,pathname)
- local filename = file.join(pathname,input.luaname)
- local blob = loadfile(filename)
- if blob then
- local data = blob()
- if data then
- input.report("loading","configuration file",filename)
- if true then
- -- flatten to variable.progname
- local t = { }
- for k, v in pairs(data) do -- v = progname
- if type(v) == "string" then
- t[k] = v
- else
- for kk, vv in pairs(v) do -- vv = variable
- if type(vv) == "string" then
- t[vv.."."..v] = kk
- end
- end
- end
- end
- instance[dataname][pathname] = t
- else
- instance[dataname][pathname] = data
- end
- else
- input.report("skipping","configuration file",filename)
- instance[dataname][pathname] = { }
- instance.loaderror = true
- end
- else
- input.report("skipping","configuration file",filename)
- end
-end
-
-function input.aux.load_configuration(instance,dname,lname)
- input.aux.load_data(instance,dname,'configuration',lname and file.basename(lname))
-end
-function input.aux.load_files(instance,tag)
- input.aux.load_data(instance,tag,'files')
-end
-
-function input.resetconfig(instance)
- instance.configuration, instance.setup, instance.order, instance.loaderror = { }, { }, { }, false
-end
-
-function input.loadnewconfig(instance)
- for _, cnf in ipairs(instance.luafiles) do
- local dname = file.dirname(cnf)
- input.aux.load_texmfcnf(instance,'setup',dname)
- instance.order[#instance.order+1] = instance.setup[dname]
- if instance.loaderror then break end
- end
-end
-
-function input.loadoldconfig(instance)
- if not instance.renewcache then
- for _, cnf in ipairs(instance.cnffiles) do
- local dname = file.dirname(cnf)
- input.aux.load_configuration(instance,dname)
- instance.order[#instance.order+1] = instance.configuration[dname]
- if instance.loaderror then break end
- end
- end
- input.joinconfig(instance)
-end
-
-function input.expand_variables(instance)
- instance.expansions = { }
---~ instance.environment['SELFAUTOPARENT'] = instance.environment['SELFAUTOPARENT'] or instance.rootpath
- if instance.engine ~= "" then instance.environment['engine'] = instance.engine end
- if instance.progname ~= "" then instance.environment['progname'] = instance.progname end
- for k,v in pairs(instance.environment) do
- local a, b = k:match("^(%a+)%_(.*)%s*$")
- if a and b then
- instance.expansions[a..'.'..b] = v
- else
- instance.expansions[k] = v
- end
- end
- for k,v in pairs(instance.environment) do -- move environment to expansions
- if not instance.expansions[k] then instance.expansions[k] = v end
- end
- for k,v in pairs(instance.variables) do -- move variables to expansions
- if not instance.expansions[k] then instance.expansions[k] = v end
- end
- while true do
- local busy = false
- for k,v in pairs(instance.expansions) do
- local s, n = v:gsub("%$([%a%d%_%-]+)", function(a)
- busy = true
- return instance.expansions[a] or input.env(instance,a)
- end)
- local s, m = s:gsub("%$%{([%a%d%_%-]+)%}", function(a)
- busy = true
- return instance.expansions[a] or input.env(instance,a)
- end)
- if n > 0 or m > 0 then
- instance.expansions[k]= s
- end
- end
- if not busy then break end
- end
- local homedir =
- instance.environment[(os.type == "windows" and 'USERPROFILE') or 'HOME'] or '~'
- for k,v in pairs(instance.expansions) do
- v = v:gsub("^~", homedir)
- instance.expansions[k] = v:gsub("\\", '/')
- end
-end
-
-function input.aux.expand_vars(instance,lst) -- simple vars
- for k,v in pairs(lst) do
- lst[k] = v:gsub("%$([%a%d%_%-]+)", function(a)
- return instance.variables[a] or input.env(instance,a)
- end)
- end
-end
-
-function input.aux.expanded_var(instance,var) -- simple vars
- return var:gsub("%$([%a%d%_%-]+)", function(a)
- return instance.variables[a] or input.env(instance,a)
- end)
-end
-
-function input.aux.entry(instance,entries,name)
- if name and (name ~= "") then
- name = name:gsub('%$','')
- local result = entries[name..'.'..instance.progname] or entries[name]
- if result then
- return result
- else
- result = input.env(instance,name)
- if result then
- instance.variables[name] = result
- input.expand_variables(instance)
- return instance.expansions[name] or ""
- end
- end
- end
- return ""
-end
-function input.variable(instance,name)
- return input.aux.entry(instance,instance.variables,name)
-end
-function input.expansion(instance,name)
- return input.aux.entry(instance,instance.expansions,name)
-end
-
-function input.aux.is_entry(instance,entries,name)
- if name and name ~= "" then
- name = name:gsub('%$','')
- return (entries[name..'.'..instance.progname] or entries[name]) ~= nil
- else
- return false
- end
-end
-
-function input.is_variable(instance,name)
- return input.aux.is_entry(instance,instance.variables,name)
-end
-function input.is_expansion(instance,name)
- return input.aux.is_entry(instance,instance.expansions,name)
-end
-
-function input.simplified_list(str)
- if type(str) == 'table' then
- return str -- troubles ; ipv , in texmf
- elseif str == '' then
- return { }
- else
- local t = { }
- for _,v in ipairs(string.splitchr(str:gsub("^\{(.+)\}$","%1"),",")) do
- t[#t+1] = (v:gsub("^[%!]*(.+)[%/\\]*$","%1"))
- end
- return t
- end
-end
-
-function input.unexpanded_path_list(instance,str)
- local pth = input.variable(instance,str)
- local lst = input.split_path(pth)
- return input.aux.expanded_path(instance,lst)
-end
-function input.unexpanded_path(instance,str)
- return file.join_path(input.unexpanded_path_list(instance,str))
-end
-
-do
- local done = { }
-
- function input.reset_extra_path(instance)
- local ep = instance.extra_paths
- if not ep then
- ep, done = { }, { }
- instance.extra_paths = ep
- elseif #ep > 0 then
- instance.lists, done = { }, { }
- end
- end
-
- function input.register_extra_path(instance,paths,subpaths)
- local ep = instance.extra_paths or { }
- local n = #ep
- if paths and paths ~= "" then
- if subpaths and subpaths ~= "" then
- for p in paths:gmatch("[^,]+") do
- -- we gmatch each step again, not that fast, but used seldom
- for s in subpaths:gmatch("[^,]+") do
- local ps = p .. "/" .. s
- if not done[ps] then
- ep[#ep+1] = input.clean_path(ps)
- done[ps] = true
- end
- end
- end
- else
- for p in paths:gmatch("[^,]+") do
- if not done[p] then
- ep[#ep+1] = input.clean_path(p)
- done[p] = true
- end
- end
- end
- elseif subpaths and subpaths ~= "" then
- for i=1,n do
- -- we gmatch each step again, not that fast, but used seldom
- for s in subpaths:gmatch("[^,]+") do
- local ps = ep[i] .. "/" .. s
- if not done[ps] then
- ep[#ep+1] = input.clean_path(ps)
- done[ps] = true
- end
- end
- end
- end
- if #ep > 0 then
- instance.extra_paths = ep -- register paths
- end
- if #ep > n then
- instance.lists = { } -- erase the cache
- end
- end
-
-end
-
-function input.expanded_path_list(instance,str)
- local function made_list(list)
- local ep = instance.extra_paths
- if not ep or #ep == 0 then
- return list
- else
- local done, new = { }, { }
- -- honour . .. ../.. but only when at the start
- for k, v in ipairs(list) do
- if not done[v] then
- if v:find("^[%.%/]$") then
- done[v] = true
- new[#new+1] = v
- else
- break
- end
- end
- end
- -- first the extra paths
- for k, v in ipairs(ep) do
- if not done[v] then
- done[v] = true
- new[#new+1] = v
- end
- end
- -- next the formal paths
- for k, v in ipairs(list) do
- if not done[v] then
- done[v] = true
- new[#new+1] = v
- end
- end
- return new
- end
- end
- if not str then
- return ep or { }
- elseif instance.savelists then
- -- engine+progname hash
- str = str:gsub("%$","")
- if not instance.lists[str] then -- cached
- local lst = made_list(input.split_path(input.expansion(instance,str)))
- instance.lists[str] = input.aux.expanded_path(instance,lst)
- end
- return instance.lists[str]
- else
- local lst = input.split_path(input.expansion(instance,str))
- return made_list(input.aux.expanded_path(instance,lst))
- end
-end
-
-function input.expand_path(instance,str)
- return file.join_path(input.expanded_path_list(instance,str))
-end
-
---~ function input.first_writable_path(instance,name)
---~ for _,v in pairs(input.expanded_path_list(instance,name)) do
---~ if file.is_writable(file.join(v,'luatex-cache.tmp')) then
---~ return v
---~ end
---~ end
---~ return "."
---~ end
-
-function input.expanded_path_list_from_var(instance,str) -- brrr
- local tmp = input.var_of_format_or_suffix(str:gsub("%$",""))
- if tmp ~= "" then
- return input.expanded_path_list(instance,str)
- else
- return input.expanded_path_list(instance,tmp)
- end
-end
-function input.expand_path_from_var(instance,str)
- return file.join_path(input.expanded_path_list_from_var(instance,str))
-end
-
-function input.format_of_var(str)
- return input.formats[str] or input.formats[input.alternatives[str]] or ''
-end
-function input.format_of_suffix(str)
- return input.suffixmap[file.extname(str)] or 'tex'
-end
-
-function input.variable_of_format(str)
- return input.formats[str] or input.formats[input.alternatives[str]] or ''
-end
-
-function input.var_of_format_or_suffix(str)
- local v = input.formats[str]
- if v then
- return v
- end
- v = input.formats[input.alternatives[str]]
- if v then
- return v
- end
- v = input.suffixmap[file.extname(str)]
- if v then
- return input.formats[isf]
- end
- return ''
-end
-
-function input.expand_braces(instance,str) -- output variable and brace expansion of STRING
- local ori = input.variable(instance,str)
- local pth = input.aux.expanded_path(instance,input.split_path(ori))
- return file.join_path(pth)
-end
-
--- {a,b,c,d}
--- a,b,c/{p,q,r},d
--- a,b,c/{p,q,r}/d/{x,y,z}//
--- a,b,c/{p,q/{x,y,z},r},d/{p,q,r}
--- a,b,c/{p,q/{x,y,z},r},d/{p,q,r}
--- a{b,c}{d,e}f
--- {a,b,c,d}
--- {a,b,c/{p,q,r},d}
--- {a,b,c/{p,q,r}/d/{x,y,z}//}
--- {a,b,c/{p,q/{x,y,z}},d/{p,q,r}}
--- {a,b,c/{p,q/{x,y,z},w}v,d/{p,q,r}}
-
--- this one is better and faster, but it took me a while to realize
--- that this kind of replacement is cleaner than messy parsing and
--- fuzzy concatenating we can probably gain a bit with selectively
--- applying lpeg, but experiments with lpeg parsing this proved not to
--- work that well; the parsing is ok, but dealing with the resulting
--- table is a pain because we need to work inside-out recursively
-
--- get rid of piecewise here, just a gmatch is ok
-
-function input.aux.splitpathexpr(str, t, validate)
- -- no need for optimization, only called a few times, we can use lpeg for the sub
- t = t or { }
- local concat = table.concat
- while true do
- local done = false
- while true do
- local ok = false
- str = str:gsub("([^{},]+){([^{}]-)}", function(a,b)
- local t = { }
- b:piecewise(",", function(s) t[#t+1] = a .. s end)
- ok, done = true, true
- return "{" .. concat(t,",") .. "}"
- end)
- if not ok then break end
- end
- while true do
- local ok = false
- str = str:gsub("{([^{}]-)}([^{},]+)", function(a,b)
- local t = { }
- a:piecewise(",", function(s) t[#t+1] = s .. b end)
- ok, done = true, true
- return "{" .. concat(t,",") .. "}"
- end)
- if not ok then break end
- end
- while true do
- local ok = false
- str = str:gsub("([,{]){([^{}]+)}([,}])", function(a,b,c)
- ok, done = true, true
- return a .. b .. c
- end)
- if not ok then break end
- end
- if not done then break end
- end
- while true do
- local ok = false
- str = str:gsub("{([^{}]-)}{([^{}]-)}", function(a,b)
- local t = { }
- a:piecewise(",", function(sa)
- b:piecewise(",", function(sb)
- t[#t+1] = sa .. sb
- end)
- end)
- ok = true
- return "{" .. concat(t,",") .. "}"
- end)
- if not ok then break end
- end
- while true do
- local ok = false
- str = str:gsub("{([^{}]-)}", function(a)
- ok = true
- return a
- end)
- if not ok then break end
- end
- if validate then
- str:piecewise(",", function(s)
- s = validate(s)
- if s then t[#t+1] = s end
- end)
- else
- str:piecewise(",", function(s)
- t[#t+1] = s
- end)
- end
- return t
-end
-
-function input.aux.expanded_path(instance,pathlist) -- maybe not a list, just a path
- -- a previous version fed back into pathlist
- local newlist, ok = { }, false
- for _,v in ipairs(pathlist) do
- if v:find("[{}]") then
- ok = true
- break
- end
- end
- if ok then
- for _, v in ipairs(pathlist) do
- input.aux.splitpathexpr(v, newlist, function(s)
- s = file.collapse_path(s)
- return s ~= "" and not s:find(instance.dummy_path_expr) and s
- end)
- end
- else
- for _,v in ipairs(pathlist) do
- for vv in string.gmatch(v..',',"(.-),") do
- vv = file.collapse_path(v)
- if vv ~= "" then newlist[#newlist+1] = vv end
- end
- end
- end
- return newlist
-end
-
-input.is_readable = { }
-
-function input.aux.is_readable(readable, name)
- if input.trace > 2 then
- if readable then
- input.logger("+ readable", name)
- else
- input.logger("- readable", name)
- end
- end
- return readable
-end
-
-function input.is_readable.file(name)
- -- return input.aux.is_readable(file.is_readable(name), name)
- return input.aux.is_readable(input.aux.is_file(name), name)
-end
-
-input.is_readable.tex = input.is_readable.file
-
--- name
--- name/name
-
-function input.aux.collect_files(instance,names)
- local filelist = { }
- for _, fname in pairs(names) do
- if fname then
- if input.trace > 2 then
- input.logger("? blobpath asked",fname)
- end
- local bname = file.basename(fname)
- local dname = file.dirname(fname)
- if dname == "" or dname:find("^%.") then
- dname = false
- else
- dname = "/" .. dname .. "$"
- end
- for _, hash in ipairs(instance.hashes) do
- local blobpath = hash.tag
- local files = blobpath and instance.files[blobpath]
- if files then
- if input.trace > 2 then
- input.logger('? blobpath do',blobpath .. " (" .. bname ..")")
- end
- local blobfile = files[bname]
- if not blobfile then
- local rname = "remap:"..bname
- blobfile = files[rname]
- if blobfile then
- bname = files[rname]
- blobfile = files[bname]
- end
- end
- if blobfile then
- if type(blobfile) == 'string' then
- if not dname or blobfile:find(dname) then
- filelist[#filelist+1] = {
- hash.type,
- file.join(blobpath,blobfile,bname), -- search
- input.concatinators[hash.type](blobpath,blobfile,bname) -- result
- }
- end
- else
- for _, vv in pairs(blobfile) do
- if not dname or vv:find(dname) then
- filelist[#filelist+1] = {
- hash.type,
- file.join(blobpath,vv,bname), -- search
- input.concatinators[hash.type](blobpath,vv,bname) -- result
- }
- end
- end
- end
- end
- elseif input.trace > 1 then
- input.logger('! blobpath no',blobpath .. " (" .. bname ..")" )
- end
- end
- end
- end
- if #filelist > 0 then
- return filelist
- else
- return nil
- end
-end
-
-function input.suffix_of_format(str)
- if input.suffixes[str] then
- return input.suffixes[str][1]
- else
- return ""
- end
-end
-
-function input.suffixes_of_format(str)
- if input.suffixes[str] then
- return input.suffixes[str]
- else
- return {}
- end
-end
-
-do
-
- -- called about 700 times for an empty doc (font initializations etc)
- -- i need to weed the font files for redundant calls
-
- local letter = lpeg.R("az","AZ")
- local separator = lpeg.P("://")
-
- local qualified = lpeg.P(".")^0 * lpeg.P("/") + letter*lpeg.P(":") + letter^1*separator
- local rootbased = lpeg.P("/") + letter*lpeg.P(":")
-
- -- ./name ../name /name c: ://
- function input.aux.qualified_path(filename)
- return qualified:match(filename)
- end
- function input.aux.rootbased_path(filename)
- return rootbased:match(filename)
- end
-
- function input.normalize_name(original)
- return original
- end
-
- input.normalize_name = file.collapse_path
-
-end
-
-function input.aux.register_in_trees(instance,name)
- if not name:find("^%.") then
- instance.foundintrees[name] = (instance.foundintrees[name] or 0) + 1 -- maybe only one
- end
-end
-
--- split the next one up, better for jit
-
-function input.aux.find_file(instance,filename) -- todo : plugin (scanners, checkers etc)
- local result = { }
- local stamp = nil
- filename = input.normalize_name(filename) -- elsewhere
- filename = file.collapse_path(filename:gsub("\\","/")) -- elsewhere
- -- speed up / beware: format problem
- if instance.remember then
- stamp = filename .. "--" .. instance.engine .. "--" .. instance.progname .. "--" .. instance.format
- if instance.found[stamp] then
- input.logger('! remembered', filename)
- return instance.found[stamp]
- end
- end
- if filename:find('%*') then
- input.logger('! wildcard', filename)
- result = input.find_wildcard_files(instance,filename)
- elseif input.aux.qualified_path(filename) then
- if input.is_readable.file(filename) then
- input.logger('! qualified', filename)
- result = { filename }
- else
- local forcedname, ok = "", false
- if file.extname(filename) == "" then
- if instance.format == "" then
- forcedname = filename .. ".tex"
- if input.is_readable.file(forcedname) then
- input.logger('! no suffix, forcing standard filetype tex')
- result, ok = { forcedname }, true
- end
- else
- for _, s in pairs(input.suffixes_of_format(instance.format)) do
- forcedname = filename .. "." .. s
- if input.is_readable.file(forcedname) then
- input.logger('! no suffix, forcing format filetype', s)
- result, ok = { forcedname }, true
- break
- end
- end
- end
- end
- if not ok then
- input.logger('? qualified', filename)
- end
- end
- else
- -- search spec
- local filetype, extra, done, wantedfiles, ext = '', nil, false, { }, file.extname(filename)
- if ext == "" then
- if not instance.force_suffixes then
- wantedfiles[#wantedfiles+1] = filename
- end
- else
- wantedfiles[#wantedfiles+1] = filename
- end
- if instance.format == "" then
- if ext == "" then
- local forcedname = filename .. '.tex'
- wantedfiles[#wantedfiles+1] = forcedname
- filetype = input.format_of_suffix(forcedname)
- input.logger('! forcing filetype',filetype)
- else
- filetype = input.format_of_suffix(filename)
- input.logger('! using suffix based filetype',filetype)
- end
- else
- if ext == "" then
- for _, s in pairs(input.suffixes_of_format(instance.format)) do
- wantedfiles[#wantedfiles+1] = filename .. "." .. s
- end
- end
- filetype = instance.format
- input.logger('! using given filetype',filetype)
- end
- local typespec = input.variable_of_format(filetype)
- local pathlist = input.expanded_path_list(instance,typespec)
- if not pathlist or #pathlist == 0 then
- -- no pathlist, access check only / todo == wildcard
- if input.trace > 2 then
- input.logger('? filename',filename)
- input.logger('? filetype',filetype or '?')
- input.logger('? wanted files',table.concat(wantedfiles," | "))
- end
- for _, fname in pairs(wantedfiles) do
- if fname and input.is_readable.file(fname) then
- filename, done = fname, true
- result[#result+1] = file.join('.',fname)
- break
- end
- end
- -- this is actually 'other text files' or 'any' or 'whatever'
- local filelist = input.aux.collect_files(instance,wantedfiles)
- local fl = filelist and filelist[1]
- if fl then
- filename = fl[3]
- result[#result+1] = filename
- done = true
- end
- else
- -- list search
- local filelist = input.aux.collect_files(instance,wantedfiles)
- local doscan, recurse
- if input.trace > 2 then
- input.logger('? filename',filename)
- -- if pathlist then input.logger('? path list',table.concat(pathlist," | ")) end
- -- if filelist then input.logger('? file list',table.concat(filelist," | ")) end
- end
- -- a bit messy ... esp the doscan setting here
- for _, path in pairs(pathlist) do
- if path:find("^!!") then doscan = false else doscan = true end
- if path:find("//$") then recurse = true else recurse = false end
- local pathname = path:gsub("^!+", '')
- done = false
- -- using file list
- if filelist and not (done and not instance.allresults) and recurse then
- -- compare list entries with permitted pattern
- pathname = pathname:gsub("([%-%.])","%%%1") -- this also influences
- pathname = pathname:gsub("/+$", '/.*') -- later usage of pathname
- pathname = pathname:gsub("//", '/.-/') -- not ok for /// but harmless
- local expr = "^" .. pathname
- -- input.debug('?',expr)
- for _, fl in ipairs(filelist) do
- local f = fl[2]
- if f:find(expr) then
- -- input.debug('T',' '..f)
- if input.trace > 2 then
- input.logger('= found in hash',f)
- end
- --- todo, test for readable
- result[#result+1] = fl[3]
- input.aux.register_in_trees(instance,f) -- for tracing used files
- done = true
- if not instance.allresults then break end
- else
- -- input.debug('F',' '..f)
- end
- end
- end
- if not done and doscan then
- -- check if on disk / unchecked / does not work at all / also zips
- if input.method_is_file(pathname) then -- ?
- local pname = pathname:gsub("%.%*$",'')
- if not pname:find("%*") then
- local ppname = pname:gsub("/+$","")
- if input.aux.can_be_dir(instance,ppname) then
- for _, w in pairs(wantedfiles) do
- local fname = file.join(ppname,w)
- if input.is_readable.file(fname) then
- if input.trace > 2 then
- input.logger('= found by scanning',fname)
- end
- result[#result+1] = fname
- done = true
- if not instance.allresults then break end
- end
- end
- else
- -- no access needed for non existing path, speedup (esp in large tree with lots of fake)
- end
- end
- end
- end
- if not done and doscan then
- -- todo: slow path scanning
- end
- if done and not instance.allresults then break end
- end
- end
- end
- for k,v in pairs(result) do
- result[k] = file.collapse_path(v)
- end
- if instance.remember then
- instance.found[stamp] = result
- end
- return result
-end
-
-input.aux._find_file_ = input.aux.find_file
-
-function input.aux.find_file(instance,filename) -- maybe make a lowres cache too
- local result = input.aux._find_file_(instance,filename)
- if #result == 0 then
- local lowered = filename:lower()
- if filename ~= lowered then
- return input.aux._find_file_(instance,lowered)
- end
- end
- return result
-end
-
-if lfs and lfs.isfile then
- input.aux.is_file = lfs.isfile -- to be done: use this
-else
- input.aux.is_file = file.is_readable
-end
-
-if lfs and lfs.isdir then
- function input.aux.can_be_dir(instance,name)
- if not instance.fakepaths[name] then
- if lfs.isdir(name) then
- instance.fakepaths[name] = 1 -- directory
- else
- instance.fakepaths[name] = 2 -- no directory
- end
- end
- return (instance.fakepaths[name] == 1)
- end
-else
- function input.aux.can_be_dir()
- return true
- end
-end
-
-if not input.concatinators then input.concatinators = { } end
-
-input.concatinators.tex = file.join
-input.concatinators.file = input.concatinators.tex
-
-function input.find_files(instance,filename,filetype,mustexist)
- if type(mustexist) == boolean then
- -- all set
- elseif type(filetype) == 'boolean' then
- filetype, mustexist = nil, false
- elseif type(filetype) ~= 'string' then
- filetype, mustexist = nil, false
- end
- instance.format = filetype or ''
- local t = input.aux.find_file(instance,filename,true)
- instance.format = ''
- return t
-end
-
-function input.find_file(instance,filename,filetype,mustexist)
- return (input.find_files(instance,filename,filetype,mustexist)[1] or "")
-end
-
-function input.find_given_files(instance,filename)
- local bname, result = file.basename(filename), { }
- for k, hash in ipairs(instance.hashes) do
- local files = instance.files[hash.tag]
- local blist = files[bname]
- if not blist then
- local rname = "remap:"..bname
- blist = files[rname]
- if blist then
- bname = files[rname]
- blist = files[bname]
- end
- end
- if blist then
- if type(blist) == 'string' then
- result[#result+1] = input.concatinators[hash.type](hash.tag,blist,bname) or ""
- if not instance.allresults then break end
- else
- for kk,vv in pairs(blist) do
- result[#result+1] = input.concatinators[hash.type](hash.tag,vv,bname) or ""
- if not instance.allresults then break end
- end
- end
- end
- end
- return result
-end
-
-function input.find_given_file(instance,filename)
- return (input.find_given_files(instance,filename)[1] or "")
-end
-
-function input.find_wildcard_files(instance,filename) -- todo: remap:
- local result = { }
- local bname, dname = file.basename(filename), file.dirname(filename)
- local path = dname:gsub("^*/","")
- path = path:gsub("*",".*")
- path = path:gsub("-","%%-")
- if dname == "" then
- path = ".*"
- end
- local name = bname
- name = name:gsub("*",".*")
- name = name:gsub("-","%%-")
- path = path:lower()
- name = name:lower()
- local function doit(blist,bname,hash,allresults)
- local done = false
- if blist then
- if type(blist) == 'string' then
- -- make function and share code
- if (blist:lower()):find(path) then
- result[#result+1] = input.concatinators[hash.type](hash.tag,blist,bname) or ""
- done = true
- end
- else
- for kk,vv in pairs(blist) do
- if (vv:lower()):find(path) then
- result[#result+1] = input.concatinators[hash.type](hash.tag,vv,bname) or ""
- done = true
- if not allresults then break end
- end
- end
- end
- end
- return done
- end
- local files, allresults, done = instance.files, instance.allresults, false
- if name:find("%*") then
- for k, hash in ipairs(instance.hashes) do
- for kk, hh in pairs(files[hash.tag]) do
- if not kk:find("^remap:") then
- if (kk:lower()):find(name) then
- if doit(hh,kk,hash,allresults) then done = true end
- if done and not allresults then break end
- end
- end
- end
- end
- else
- for k, hash in ipairs(instance.hashes) do
- if doit(files[hash.tag][bname],bname,hash,allresults) then done = true end
- if done and not allresults then break end
- end
- end
- return result
-end
-
-function input.find_wildcard_file(instance,filename)
- return (input.find_wildcard_files(instance,filename)[1] or "")
-end
-
--- main user functions
-
-function input.save_used_files_in_trees(instance, filename,jobname)
- if not filename then filename = 'luatex.jlg' end
- local f = io.open(filename,'w')
- if f then
- f:write("<?xml version='1.0' standalone='yes'?>\n")
- f:write("<rl:job>\n")
- if jobname then
- f:write("\t<rl:name>" .. jobname .. "</rl:name>\n")
- end
- f:write("\t<rl:files>\n")
- for _,v in pairs(table.sortedkeys(instance.foundintrees)) do
- f:write("\t\t<rl:file n='" .. instance.foundintrees[v] .. "'>" .. v .. "</rl:file>\n")
- end
- f:write("\t</rl:files>\n")
- f:write("</rl:usedfiles>\n")
- f:close()
- end
-end
-
-function input.automount(instance)
- -- implemented later
-end
-
-function input.load(instance)
- input.starttiming(instance)
- input.resetconfig(instance)
- input.identify_cnf(instance)
- input.load_lua(instance)
- input.expand_variables(instance)
- input.load_cnf(instance)
- input.expand_variables(instance)
- input.load_hash(instance)
- input.automount(instance)
- input.stoptiming(instance)
-end
-
-function input.for_files(instance, command, files, filetype, mustexist)
- if files and #files > 0 then
- local function report(str)
- if input.verbose then
- input.report(str) -- has already verbose
- else
- print(str)
- end
- end
- if input.verbose then
- report('')
- end
- for _, file in pairs(files) do
- local result = command(instance,file,filetype,mustexist)
- if type(result) == 'string' then
- report(result)
- else
- for _,v in pairs(result) do
- report(v)
- end
- end
- end
- end
-end
-
--- strtab
-
-function input.var_value(instance,str) -- output the value of variable $STRING.
- return input.variable(instance,str)
-end
-function input.expand_var(instance,str) -- output variable expansion of STRING.
- return input.expansion(instance,str)
-end
-function input.show_path(instance,str) -- output search path for file type NAME
- return file.join_path(input.expanded_path_list(instance,input.format_of_var(str)))
-end
-
--- input.find_file(filename)
--- input.find_file(filename, filetype, mustexist)
--- input.find_file(filename, mustexist)
--- input.find_file(filename, filetype)
-
-function input.aux.register_file(files, name, path)
- if files[name] then
- if type(files[name]) == 'string' then
- files[name] = { files[name], path }
- else
- files[name] = path
- end
- else
- files[name] = path
- end
-end
-
-if not input.finders then input.finders = { } end
-if not input.openers then input.openers = { } end
-if not input.loaders then input.loaders = { } end
-
-input.finders.notfound = { nil }
-input.openers.notfound = { nil }
-input.loaders.notfound = { false, nil, 0 }
-
-function input.splitmethod(filename)
- if not filename then
- return { } -- safeguard
- elseif type(filename) == "table" then
- return filename -- already split
- elseif not filename:find("://") then
- return { scheme="file", path = filename, original=filename } -- quick hack
- else
- return url.hashed(filename)
- end
-end
-
-function input.method_is_file(filename)
- return input.splitmethod(filename).scheme == 'file'
-end
-
-function table.sequenced(t,sep) -- temp here
- local s = { }
- for k, v in pairs(t) do
- s[#s+1] = k .. "=" .. v
- end
- return table.concat(s, sep or " | ")
-end
-
-function input.methodhandler(what, instance, filename, filetype) -- ...
- local specification = (type(filename) == "string" and input.splitmethod(filename)) or filename -- no or { }, let it bomb
- local scheme = specification.scheme
- if input[what][scheme] then
- input.logger('= handler',specification.original .." -> " .. what .. " -> " .. table.sequenced(specification))
- return input[what][scheme](instance,filename,filetype) -- todo: specification
- else
- return input[what].tex(instance,filename,filetype) -- todo: specification
- end
-end
-
--- also inside next test?
-
-function input.findtexfile(instance, filename, filetype)
- return input.methodhandler('finders',instance, input.normalize_name(filename), filetype)
-end
-function input.opentexfile(instance,filename)
- return input.methodhandler('openers',instance, input.normalize_name(filename))
-end
-
-function input.findbinfile(instance, filename, filetype)
- return input.methodhandler('finders',instance, input.normalize_name(filename), filetype)
-end
-function input.openbinfile(instance,filename)
- return input.methodhandler('loaders',instance, input.normalize_name(filename))
-end
-
-function input.loadbinfile(instance, filename, filetype)
- local fname = input.findbinfile(instance, input.normalize_name(filename), filetype)
- if fname and fname ~= "" then
- return input.openbinfile(instance,fname)
- else
- return unpack(input.loaders.notfound)
- end
-end
-
-function input.texdatablob(instance, filename, filetype)
- local ok, data, size = input.loadbinfile(instance, filename, filetype)
- return data or ""
-end
-
-input.loadtexfile = input.texdatablob
-
-function input.openfile(filename) -- brrr texmf.instance here / todo ! ! ! ! !
- local fullname = input.findtexfile(texmf.instance, filename)
- if fullname and (fullname ~= "") then
- return input.opentexfile(texmf.instance, fullname)
- else
- return nil
- end
-end
-
-function input.logmode()
- return (os.getenv("MTX.LOG.MODE") or os.getenv("MTX_LOG_MODE") or "tex"):lower()
-end
-
--- this is a prelude to engine/progname specific configuration files
--- in which case we can omit files meant for other programs and
--- packages
-
---- ctx
-
--- maybe texinputs + font paths
--- maybe positive selection tex/context fonts/tfm|afm|vf|opentype|type1|map|enc
-
-input.validators = { }
-input.validators.visibility = { }
-
-function input.validators.visibility.default(path, name)
- return true
-end
-
-function input.validators.visibility.context(path, name)
- path = path[1] or path -- some day a loop
- return not (
- path:find("latex") or
--- path:find("doc") or
- path:find("tex4ht") or
- path:find("source") or
--- path:find("config") or
--- path:find("metafont") or
- path:find("lists$") or
- name:find("%.tpm$") or
- name:find("%.bak$")
- )
-end
-
--- todo: describe which functions are public (maybe input.private. ... )
-
--- beware: i need to check where we still need a / on windows:
-
-function input.clean_path(str)
---~ return (((str:gsub("\\","/")):gsub("^!+","")):gsub("//+","//"))
- if str then
- return ((str:gsub("\\","/")):gsub("^!+",""))
- else
- return nil
- end
-end
-
-function input.do_with_path(name,func)
- for _, v in pairs(input.expanded_path_list(instance,name)) do
- func("^"..input.clean_path(v))
- end
-end
-
-function input.do_with_var(name,func)
- func(input.aux.expanded_var(name))
-end
-
-function input.with_files(instance,pattern,handle)
- for _, hash in ipairs(instance.hashes) do
- local blobpath = hash.tag
- local blobtype = hash.type
- if blobpath then
- local files = instance.files[blobpath]
- if files then
- for k,v in pairs(files) do
- if k:find("^remap:") then
- k = files[k]
- v = files[k] -- chained
- end
- if k:find(pattern) then
- if type(v) == "string" then
- handle(blobtype,blobpath,v,k)
- else
- for _,vv in pairs(v) do
- handle(blobtype,blobpath,vv,k)
- end
- end
- end
- end
- end
- end
- end
-end
-
---~ function input.update_script(oldname,newname) -- oldname -> own.name, not per se a suffix
---~ newname = file.addsuffix(newname,"lua")
---~ local newscript = input.clean_path(input.find_file(instance, newname))
---~ local oldscript = input.clean_path(oldname)
---~ input.report("old script", oldscript)
---~ input.report("new script", newscript)
---~ if oldscript ~= newscript and (oldscript:find(file.removesuffix(newname).."$") or oldscript:find(newname.."$")) then
---~ local newdata = io.loaddata(newscript)
---~ if newdata then
---~ input.report("old script content replaced by new content")
---~ io.savedata(oldscript,newdata)
---~ end
---~ end
---~ end
-
-function input.update_script(instance,oldname,newname) -- oldname -> own.name, not per se a suffix
- local scriptpath = "scripts/context/lua"
- newname = file.addsuffix(newname,"lua")
- local oldscript = input.clean_path(oldname)
- input.report("to be replaced old script", oldscript)
- local newscripts = input.find_files(instance, newname) or { }
- if #newscripts == 0 then
- input.report("unable to locate new script")
- else
- for _, newscript in ipairs(newscripts) do
- newscript = input.clean_path(newscript)
- input.report("checking new script", newscript)
- if oldscript == newscript then
- input.report("old and new script are the same")
- elseif not newscript:find(scriptpath) then
- input.report("new script should come from",scriptpath)
- elseif not (oldscript:find(file.removesuffix(newname).."$") or oldscript:find(newname.."$")) then
- input.report("invalid new script name")
- else
- local newdata = io.loaddata(newscript)
- if newdata then
- input.report("old script content replaced by new content")
- io.savedata(oldscript,newdata)
- break
- else
- input.report("unable to load new script")
- end
- end
- end
- end
-end
-
-
---~ print(table.serialize(input.aux.splitpathexpr("/usr/share/texmf-{texlive,tetex}", {})))
-
--- command line resolver:
-
---~ print(input.resolve("abc env:tmp file:cont-en.tex path:cont-en.tex full:cont-en.tex rel:zapf/one/p-chars.tex"))
-
-do
-
- local resolvers = { }
-
- resolvers.environment = function(instance,str)
- return input.clean_path(os.getenv(str) or os.getenv(str:upper()) or os.getenv(str:lower()) or "")
- end
- resolvers.relative = function(instance,str,n)
- if io.exists(str) then
- -- nothing
- elseif io.exists("./" .. str) then
- str = "./" .. str
- else
- local p = "../"
- for i=1,n or 2 do
- if io.exists(p .. str) then
- str = p .. str
- break
- else
- p = p .. "../"
- end
- end
- end
- return input.clean_path(str)
- end
- resolvers.locate = function(instance,str)
- local fullname = input.find_given_file(instance,str) or ""
- return input.clean_path((fullname ~= "" and fullname) or str)
- end
- resolvers.filename = function(instance,str)
- local fullname = input.find_given_file(instance,str) or ""
- return input.clean_path(file.basename((fullname ~= "" and fullname) or str))
- end
- resolvers.pathname = function(instance,str)
- local fullname = input.find_given_file(instance,str) or ""
- return input.clean_path(file.dirname((fullname ~= "" and fullname) or str))
- end
-
- resolvers.env = resolvers.environment
- resolvers.rel = resolvers.relative
- resolvers.loc = resolvers.locate
- resolvers.kpse = resolvers.locate
- resolvers.full = resolvers.locate
- resolvers.file = resolvers.filename
- resolvers.path = resolvers.pathname
-
- local function resolve(instance,str)
- if type(str) == "table" then
- for k, v in pairs(str) do
- str[k] = resolve(instance,v) or v
- end
- elseif str and str ~= "" then
- str = str:gsub("([a-z]+):([^ ]+)", function(method,target)
- if resolvers[method] then
- return resolvers[method](instance,target)
- else
- return method .. ":" .. target
- end
- end)
- end
- return str
- end
-
- input.resolve = resolve
-
-end
diff --git a/Master/texmf-dist/tex/context/base/luat-iop.lua b/Master/texmf-dist/tex/context/base/luat-iop.lua
index 469b7c03435..883ec43cedb 100644
--- a/Master/texmf-dist/tex/context/base/luat-iop.lua
+++ b/Master/texmf-dist/tex/context/base/luat-iop.lua
@@ -1,16 +1,16 @@
--- filename : luat-iop.lua
--- comment : companion to luat-lib.tex
--- author : Hans Hagen, PRAGMA-ADE, Hasselt NL
--- copyright: PRAGMA ADE / ConTeXt Development Team
--- license : see context related readme files
+if not modules then modules = { } end modules ['luat-iop'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
-- this paranoid stuff in web2c ... we cannot hook checks into the
-- input functions because one can always change the callback but
-- we can feed back specific patterns and paths into the next
-- mechanism
-if not versions then versions = { } end versions['luat-exe'] = 1.001
-
if not io.inp then io.inp = { } end
if not io.out then io.out = { } end
@@ -127,11 +127,11 @@ function io.inp.modes.paranoid()
io.inp.inhibit('%.%.')
io.inp.permit('^%./')
io.inp.permit('[^/]')
- input.do_with_path('TEXMF',io.inp.permit)
+ resolvers.do_with_path('TEXMF',io.inp.permit)
end
function io.out.modes.paranoid()
io.out.inhibit('.*')
- input.do_with_path('TEXMFOUTPUT',io.out.permit)
+ resolvers.do_with_path('TEXMFOUTPUT',io.out.permit)
end
-- handy
diff --git a/Master/texmf-dist/tex/context/base/luat-kps.lua b/Master/texmf-dist/tex/context/base/luat-kps.lua
deleted file mode 100644
index 15dadbb8495..00000000000
--- a/Master/texmf-dist/tex/context/base/luat-kps.lua
+++ /dev/null
@@ -1,102 +0,0 @@
-if not modules then modules = { } end modules ['luat-kps'] = {
- version = 1.001,
- comment = "companion to luatools.lua",
- author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
- copyright = "PRAGMA ADE / ConTeXt Development Team",
- license = "see context related readme files"
-}
-
---[[ldx--
-<p>This file is used when we want the input handlers to behave like
-<type>kpsewhich</type>. What to do with the following:</p>
-
-<typing>
-{$SELFAUTOLOC,$SELFAUTODIR,$SELFAUTOPARENT}{,{/share,}/texmf{-local,}/web2c}
-$SELFAUTOLOC : /usr/tex/bin/platform
-$SELFAUTODIR : /usr/tex/bin
-$SELFAUTOPARENT : /usr/tex
-</typing>
-
-<p>How about just forgetting abou them?</p>
---ldx]]--
-
-input = input or { }
-input.suffixes = input.suffixes or { }
-input.formats = input.formats or { }
-
-input.suffixes['gf'] = { '<resolution>gf' }
-input.suffixes['pk'] = { '<resolution>pk' }
-input.suffixes['base'] = { 'base' }
-input.suffixes['bib'] = { 'bib' }
-input.suffixes['bst'] = { 'bst' }
-input.suffixes['cnf'] = { 'cnf' }
-input.suffixes['mem'] = { 'mem' }
-input.suffixes['mf'] = { 'mf' }
-input.suffixes['mfpool'] = { 'pool' }
-input.suffixes['mft'] = { 'mft' }
-input.suffixes['mppool'] = { 'pool' }
-input.suffixes['graphic/figure'] = { 'eps', 'epsi' }
-input.suffixes['texpool'] = { 'pool' }
-input.suffixes['PostScript header'] = { 'pro' }
-input.suffixes['ist'] = { 'ist' }
-input.suffixes['web'] = { 'web', 'ch' }
-input.suffixes['cweb'] = { 'w', 'web', 'ch' }
-input.suffixes['cmap files'] = { 'cmap' }
-input.suffixes['lig files'] = { 'lig' }
-input.suffixes['bitmap font'] = { }
-input.suffixes['MetaPost support'] = { }
-input.suffixes['TeX system documentation'] = { }
-input.suffixes['TeX system sources'] = { }
-input.suffixes['dvips config'] = { }
-input.suffixes['type42 fonts'] = { }
-input.suffixes['web2c files'] = { }
-input.suffixes['other text files'] = { }
-input.suffixes['other binary files'] = { }
-input.suffixes['opentype fonts'] = { 'otf' }
-
-input.suffixes['fmt'] = { 'fmt' }
-input.suffixes['texmfscripts'] = { 'rb','lua','py','pl' }
-
-input.suffixes['pdftex config'] = { }
-input.suffixes['Troff fonts'] = { }
-
-input.suffixes['ls-R'] = { }
-
---[[ldx--
-<p>If you wondered abou tsome of the previous mappings, how about
-the next bunch:</p>
---ldx]]--
-
-input.formats['bib'] = ''
-input.formats['bst'] = ''
-input.formats['mft'] = ''
-input.formats['ist'] = ''
-input.formats['web'] = ''
-input.formats['cweb'] = ''
-input.formats['MetaPost support'] = ''
-input.formats['TeX system documentation'] = ''
-input.formats['TeX system sources'] = ''
-input.formats['Troff fonts'] = ''
-input.formats['dvips config'] = ''
-input.formats['graphic/figure'] = ''
-input.formats['ls-R'] = ''
-input.formats['other text files'] = ''
-input.formats['other binary files'] = ''
-
-input.formats['gf'] = ''
-input.formats['pk'] = ''
-input.formats['base'] = 'MFBASES'
-input.formats['cnf'] = ''
-input.formats['mem'] = 'MPMEMS'
-input.formats['mf'] = 'MFINPUTS'
-input.formats['mfpool'] = 'MFPOOL'
-input.formats['mppool'] = 'MPPOOL'
-input.formats['texpool'] = 'TEXPOOL'
-input.formats['PostScript header'] = 'TEXPSHEADERS'
-input.formats['cmap files'] = 'CMAPFONTS'
-input.formats['type42 fonts'] = 'T42FONTS'
-input.formats['web2c files'] = 'WEB2C'
-input.formats['pdftex config'] = 'PDFTEXCONFIG'
-input.formats['texmfscripts'] = 'TEXMFSCRIPTS'
-input.formats['bitmap font'] = ''
-input.formats['lig files'] = 'LIGFONTS'
diff --git a/Master/texmf-dist/tex/context/base/luat-lib.lua b/Master/texmf-dist/tex/context/base/luat-lib.lua
deleted file mode 100644
index c3c66f7d89b..00000000000
--- a/Master/texmf-dist/tex/context/base/luat-lib.lua
+++ /dev/null
@@ -1,160 +0,0 @@
--- filename : luat-lib.lua
--- comment : companion to luat-lib.tex
--- author : Hans Hagen, PRAGMA-ADE, Hasselt NL
--- copyright: PRAGMA ADE / ConTeXt Development Team
--- license : see context related readme files
-
-if not versions then versions = { } end versions['luat-lib'] = 1.001
-
--- mostcode moved to the l-*.lua and other luat-*.lua files
-
--- os / io
-
-os.setlocale(nil,nil) -- useless feature and even dangerous in luatex
-
--- os.platform
-
--- mswin|bccwin|mingw|cygwin windows
--- darwin|rhapsody|nextstep macosx
--- netbsd|unix unix
--- linux linux
-
-if not io.fileseparator then
- if string.find(os.getenv("PATH"),";") then
- io.fileseparator, io.pathseparator, os.platform = "\\", ";", os.type or "windows"
- else
- io.fileseparator, io.pathseparator, os.platform = "/" , ":", os.type or "unix"
- end
-end
-
-os.platform = os.platform or os.type or (io.pathseparator == ";" and "windows") or "unix"
-
--- arg normalization
---
--- for k,v in pairs(arg) do print(k,v) end
-
--- environment
-
-if not environment then environment = { } end
-
-environment.ownbin = environment.ownbin or arg[-2] or arg[-1] or arg[0] or "luatex"
-
-local ownpath = nil -- we could use a metatable here
-
-function environment.ownpath()
- if not ownpath then
- for p in string.gmatch(os.getenv("PATH"),"[^"..io.pathseparator.."]+") do
- local b = file.join(p,environment.ownbin)
- if lfs.isfile(b..".exe") or lfs.isfile(b) then
- ownpath = p
- break
- end
- end
- if not ownpath then ownpath = '.' end
- end
- return ownpath
-end
-
-if arg and (arg[0] == 'luatex' or arg[0] == 'luatex.exe') and arg[1] == "--luaonly" then
- arg[-1]=arg[0] arg[0]=arg[2] for k=3,#arg do arg[k-2]=arg[k] end arg[#arg]=nil arg[#arg]=nil
-end
-
-environment.arguments = { }
-environment.files = { }
-environment.sorted_argument_keys = nil
-
-environment.platform = os.platform
-
-function environment.initialize_arguments(arg)
- environment.arguments = { }
- environment.files = { }
- environment.sorted_argument_keys = nil
- for index, argument in pairs(arg) do
- if index > 0 then
- local flag, value = argument:match("^%-+(.+)=(.-)$")
- if flag then
- environment.arguments[flag] = string.unquote(value or "")
- else
- flag = argument:match("^%-+(.+)")
- if flag then
- environment.arguments[flag] = true
- else
- environment.files[#environment.files+1] = argument
- end
- end
- end
- end
- environment.ownname = environment.ownname or arg[0] or 'unknown.lua'
-end
-
-function environment.showarguments()
- for k,v in pairs(environment.arguments) do
- print(k .. " : " .. tostring(v))
- end
- if #environment.files > 0 then
- print("files : " .. table.concat(environment.files, " "))
- end
-end
-
-function environment.setargument(name,value)
- environment.arguments[name] = value
-end
-
-function environment.argument(name)
- if environment.arguments[name] then
- return environment.arguments[name]
- else
- if not environment.sorted_argument_keys then
- environment.sorted_argument_keys = { }
- for _,v in pairs(table.sortedkeys(environment.arguments)) do
- table.insert(environment.sorted_argument_keys, "^" .. v)
- end
- end
- for _,v in pairs(environment.sorted_argument_keys) do
- if name:find(v) then
- return environment.arguments[v:sub(2,#v)]
- end
- end
- end
- return nil
-end
-
-function environment.split_arguments(separator) -- rather special, cut-off before separator
- local done, before, after = false, { }, { }
- for _,v in ipairs(environment.original_arguments) do
- if not done and v == separator then
- done = true
- elseif done then
- after[#after+1] = v
- else
- before[#before+1] = v
- end
- end
- return before, after
-end
-
-function environment.reconstruct_commandline(arg)
- if not arg then arg = environment.original_arguments end
- local result = { }
- for _,a in ipairs(arg) do -- ipairs 1 .. #n
- local kk, vv = a:match("^(%-+.-)=(.+)$")
- if kk and vv then
- if vv:find(" ") then
- result[#result+1] = kk .. "=" .. string.quote(vv)
- else
- result[#result+1] = a
- end
- elseif a:find(" ") then
- result[#result+1] = string.quote(a)
- else
- result[#result+1] = a
- end
- end
- return table.join(result," ")
-end
-
-if arg then
- environment.initialize_arguments(arg)
- environment.original_arguments = arg
- arg = { } -- prevent duplicate handling
-end
diff --git a/Master/texmf-dist/tex/context/base/luat-lib.mkiv b/Master/texmf-dist/tex/context/base/luat-lib.mkiv
new file mode 100644
index 00000000000..f8f71dd0a92
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/luat-lib.mkiv
@@ -0,0 +1,65 @@
+%D \module
+%D [ file=luat-lib,
+%D version=2006.09.11,
+%D title=\CONTEXT\ Lua Macros,
+%D subtitle=Libraries,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+% \writestatus{loading}{ConTeXt Lua Macros / Libraries}
+
+\registerctxluafile{trac-inf} {1.001}
+\registerctxluafile{trac-tra} {1.001}
+\registerctxluafile{trac-log} {1.001}
+
+\registerctxluafile{luat-cbk} {1.001}
+
+\registerctxluafile{data-res} {1.001}
+\registerctxluafile{data-tmp} {1.001}
+\registerctxluafile{data-pre} {1.001}
+\registerctxluafile{data-inp} {1.001}
+\registerctxluafile{data-out} {1.001}
+\registerctxluafile{data-tex} {1.001}
+\registerctxluafile{data-bin} {1.001}
+\registerctxluafile{data-zip} {1.001}
+\registerctxluafile{data-crl} {1.001}
+\registerctxluafile{data-tre} {1.001}
+\registerctxluafile{data-lua} {1.001}
+\registerctxluafile{data-ctx} {1.001}
+\registerctxluafile{data-con} {1.001}
+\registerctxluafile{data-use} {1.001}
+
+\registerctxluafile{luat-run} {1.001}
+\registerctxluafile{luat-fio} {1.001} % not needed, part of startup file
+\registerctxluafile{luat-cnf} {1.001} % not needed, part of startup file
+\registerctxluafile{luat-lua} {1.001}
+\registerctxluafile{luat-sto} {1.001}
+\registerctxluafile{luat-ini} {1.001}
+\registerctxluafile{luat-env} {1.001}
+
+\registerctxluafile{l-xml} {1.001} % we need to load lxml-tab earlier so this will change !
+
+\startruntimeluacode
+ \edef\asciia{\ctxlua{tex.sprint(logs.mode)}}
+ \edef\asciib{xml}
+ \ifx\asciia\asciib % brrr
+ \long\def\writebanner #1{\writestring {<m t='banner'>#1</m>}}
+ \long\def\writestatus#1#2{\writestring {<m t='#1'>#2</m>}}
+ \long\def\message #1{\normalmessage{<m t='message'>#1</m>}}
+ \else
+ \let\writebanner\writestring
+ %\let\writestatus\normalwritestatus
+ \let\message \normalmessage
+ \fi
+\stopruntimeluacode
+
+%registerctxluafile{luat-tmp}{1.001}
+\registerctxluafile{luat-exe}{1.001}
+\registerctxluafile{luat-iop}{1.001}
+
+\endinput
diff --git a/Master/texmf-dist/tex/context/base/luat-lib.tex b/Master/texmf-dist/tex/context/base/luat-lib.tex
deleted file mode 100644
index a068125b675..00000000000
--- a/Master/texmf-dist/tex/context/base/luat-lib.tex
+++ /dev/null
@@ -1,90 +0,0 @@
-%D \module
-%D [ file=luat-lib,
-%D version=2006.09.11,
-%D title=\CONTEXT\ Lua Macros,
-%D subtitle=Unicode Support,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright=PRAGMA]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% \writestatus{loading}{Lua Support Macros (libs)}
-
-%D For the moment we only load this lib.
-
-%D This will move cq. become configurable. The XML like output is just
-%D an example.
-
-% todo \let\normaleverytoks\everytoks \newtoks\everytoke \normaleverytoks{\the\everytoks}
-
-\chardef\statuswidth=15
-\chardef\statuswrite=16
-
-\newtoks\everywritestring
-
-\def\writedirect {\immediate\write\statuswrite}
-\def\writeline {\writedirect{}}
-\def\writestring#1{\begingroup\the\everywritestring\writedirect{#1}\endgroup}
-
-\ifx\normalmessage \undefined \let\normalmessage \message \fi
-\ifx\normalwritestatus\undefined \def\normalwritestatus#1#2{\writedirect{#1 : #2}} \fi
-
-% this will change once we have proper write overloads
-
-\registerctxluafile{l-string} {1.001}
-\registerctxluafile{l-lpeg} {1.001}
-\registerctxluafile{l-boolean}{1.001}
-\registerctxluafile{l-number} {1.001}
-\registerctxluafile{l-set} {1.001}
-\registerctxluafile{l-math} {1.001}
-\registerctxluafile{l-table} {1.001}
-\registerctxluafile{l-md5} {1.001}
-\registerctxluafile{l-aux} {1.001}
-\registerctxluafile{l-io} {1.001}
-\registerctxluafile{l-os} {1.001}
-\registerctxluafile{l-file} {1.001}
-\registerctxluafile{l-dir} {1.001}
-\registerctxluafile{l-unicode}{1.001}
-\registerctxluafile{l-utils} {1.001}
-\registerctxluafile{l-tex} {1.001}
-\registerctxluafile{l-url} {1.001}
-\registerctxluafile{l-xml} {1.001}
-%registerctxluafile{l-xmlctx} {1.001}
-
-\registerctxluafile{luat-cbk} {1.001}
-\registerctxluafile{luat-lib} {1.001}
-\registerctxluafile{luat-inp} {1.001}
-\registerctxluafile{luat-log} {1.001}
-\registerctxluafile{luat-zip} {1.001}
-\registerctxluafile{luat-tex} {1.001}
-\registerctxluafile{luat-tre} {1.001}
-
-\startruntimeluacode
- \edef\asciia{\ctxlua{tex.sprint(input.logmode())}}
- \edef\asciib{xml}
- \ifx\asciia\asciib % brrr
- \long\def\writebanner #1{\writestring {<m t='banner'>#1</m>}}
- \long\def\writestatus#1#2{\writestring {<m t='#1'>#2</m>}}
- \long\def\message #1{\normalmessage{<m t='message'>#1</m>}}
- \else
- \let\writebanner\writestring
- \let\writestatus\normalwritestatus
- \let\message \normalmessage
- \fi
-\stopruntimeluacode
-
-\registerctxluafile{luat-tmp}{1.001}
-\registerctxluafile{luat-crl}{1.001}
-\registerctxluafile{luat-exe}{1.001}
-\registerctxluafile{luat-iop}{1.001}
-
-% trace used files (only from trees)
-%
-% \ctxlua{input.register_stop_actions(function() input.save_used_files_in_trees(texmf.instance) end)}
-% \ctxlua{table.insert(input.stop_actions, function() input.save_used_files_in_trees(texmf.instance) end)}
-% \ctxlua{function input.stop_actions.trace_used_files() input.save_used_files_in_trees(texmf.instance) end}
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/luat-log.lua b/Master/texmf-dist/tex/context/base/luat-log.lua
deleted file mode 100644
index 12cf45c481b..00000000000
--- a/Master/texmf-dist/tex/context/base/luat-log.lua
+++ /dev/null
@@ -1,128 +0,0 @@
-if not modules then modules = { } end modules ['luat-log'] = {
- version = 1.001,
- comment = "companion to luat-lib.tex",
- author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
- copyright = "PRAGMA ADE / ConTeXt Development Team",
- license = "see context related readme files"
-}
-
---[[ldx--
-<p>This is a prelude to a more extensive logging module. For the sake
-of parsing log files, in addition to the standard logging we will
-provide an <l n='xml'/> structured file. Actually, any logging that
-is hooked into callbacks will be \XML\ by default.</p>
---ldx]]--
-
-input = input or { }
-logs = logs or { }
-
---[[ldx--
-<p>This looks pretty ugly but we need to speed things up a bit.</p>
---ldx]]--
-
-logs.levels = {
- ['error'] = 1,
- ['warning'] = 2,
- ['info'] = 3,
- ['debug'] = 4
-}
-
-logs.functions = {
- 'error', 'warning', 'info', 'debug', 'report',
- 'start', 'stop', 'push', 'pop'
-}
-
-logs.callbacks = {
- 'start_page_number',
- 'stop_page_number',
- 'report_output_pages',
- 'report_output_log'
-}
-
-logs.xml = logs.xml or { }
-logs.tex = logs.tex or { }
-
-logs.level = 0
-
-do
- local write_nl, write, format = texio.write_nl or print, texio.write or io.write, string.format
-
- if texlua then
- write_nl = print
- write = io.write
- end
-
- function logs.xml.debug(category,str)
- if logs.level > 3 then write_nl(format("<d category='%s'>%s</d>",category,str)) end
- end
- function logs.xml.info(category,str)
- if logs.level > 2 then write_nl(format("<i category='%s'>%s</i>",category,str)) end
- end
- function logs.xml.warning(category,str)
- if logs.level > 1 then write_nl(format("<w category='%s'>%s</w>",category,str)) end
- end
- function logs.xml.error(category,str)
- if logs.level > 0 then write_nl(format("<e category='%s'>%s</e>",category,str)) end
- end
- function logs.xml.report(category,str)
- write_nl(format("<r category='%s'>%s</r>",category,str))
- end
-
- function logs.xml.start() if logs.level > 0 then tw("<%s>" ) end end
- function logs.xml.stop () if logs.level > 0 then tw("</%s>") end end
- function logs.xml.push () if logs.level > 0 then tw("<!-- ") end end
- function logs.xml.pop () if logs.level > 0 then tw(" -->" ) end end
-
- function logs.tex.debug(category,str)
- if logs.level > 3 then write_nl(format("debug >> %s: %s" ,category,str)) end
- end
- function logs.tex.info(category,str)
- if logs.level > 2 then write_nl(format("info >> %s: %s" ,category,str)) end
- end
- function logs.tex.warning(category,str)
- if logs.level > 1 then write_nl(format("warning >> %s: %s",category,str)) end
- end
- function logs.tex.error(category,str)
- if logs.level > 0 then write_nl(format("error >> %s: %s" ,category,str)) end
- end
- function logs.tex.report(category,str)
- write_nl(format("report >> %s: %s" ,category,str))
- end
-
- function logs.set_level(level)
- logs.level = logs.levels[level] or level
- end
-
- function logs.set_method(method)
- for _, v in pairs(logs.functions) do
- logs[v] = logs[method][v] or function() end
- end
- if callback and input[method] then
- for _, cb in pairs(logs.callbacks) do
- callback.register(cb, input[method][cb])
- end
- end
- end
-
- function logs.xml.start_page_number()
- write_nl(format("<p real='%s' page='%s' sub='%s'", tex.count[0], tex.count[1], tex.count[2]))
- end
-
- function logs.xml.stop_page_number()
- write("/>")
- write_nl("")
- end
-
- function logs.xml.report_output_pages(p,b)
- write_nl(format("<v k='pages' v='%s'/>", p))
- write_nl(format("<v k='bytes' v='%s'/>", b))
- write_nl("")
- end
-
- function logs.xml.report_output_log()
- end
-
-end
-
-logs.set_level('error')
-logs.set_method('tex')
diff --git a/Master/texmf-dist/tex/context/base/luat-lua.lua b/Master/texmf-dist/tex/context/base/luat-lua.lua
new file mode 100644
index 00000000000..61be6e9d69e
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/luat-lua.lua
@@ -0,0 +1,42 @@
+if not modules then modules = { } end modules ['luat-lua'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+if lua then do
+
+ local delayed = { }
+
+ function lua.delay(f)
+ delayed[#delayed+1] = f
+ end
+
+ function lua.flush_delayed(...)
+ local t = delayed
+ delayed = { }
+ for i=1, #t do
+ t[i](...)
+ end
+ end
+
+ function lua.flush(...)
+ tex.sprint("\\directlua0{lua.flush_delayed(",table.concat({...},','),")}")
+ end
+
+end end
+
+--~ See mk.pdf for an explanation of the following code:
+--~
+--~ function test(n)
+--~ lua.delay(function(...)
+--~ tex.sprint(string.format("pi: %s %s %s\\par",...))
+--~ end)
+--~ lua.delay(function(...)
+--~ tex.sprint(string.format("more pi: %s %s %s\\par",...))
+--~ end)
+--~ tex.sprint(string.format("\\setbox0=\\hbox{%s}",math.pi*n))
+--~ lua.flush(tex.wd[0],tex.ht[0],tex.dp[0])
+--~ end
diff --git a/Master/texmf-dist/tex/context/base/luat-run.lua b/Master/texmf-dist/tex/context/base/luat-run.lua
new file mode 100644
index 00000000000..09fce32c1a1
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/luat-run.lua
@@ -0,0 +1,69 @@
+if not modules then modules = { } end modules ['luat-run'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local format, rpadd = string.format, string.rpadd
+
+main = main or { }
+
+local start_actions = { }
+local stop_actions = { }
+
+function main.register_start_actions(...) table.insert(start_actions, ...) end
+function main.register_stop_actions (...) table.insert(stop_actions, ...) end
+
+main.show_tex_stat = main.show_tex_stat or function() end
+main.show_job_stat = main.show_job_stat or statistics.show_job_stat
+
+function main.start()
+ if logs.start_run then
+ logs.start_run()
+ end
+ for _, action in next, start_actions do
+ action()
+ end
+end
+
+function main.stop()
+ for _, action in next, stop_actions do
+ action()
+ end
+ if main.show_job_stat then
+ statistics.show(logs.report_job_stat)
+ end
+ if main.show_tex_stat then
+ for k,v in next, status.list() do
+ logs.report_tex_stat(k,v)
+ end
+ end
+ if logs.stop_run then
+ logs.stop_run()
+ end
+end
+
+function main.start_shipout_page()
+ logs.start_page_number()
+end
+
+function main.stop_shipout_page()
+ logs.stop_page_number()
+end
+
+function main.report_output_pages()
+end
+
+function main.report_output_log()
+end
+
+-- this can be done later
+
+callback.register('start_run', main.start)
+callback.register('stop_run' , main.stop)
+callback.register('report_output_pages', main.report_output_pages)
+callback.register('report_output_log' , main.report_output_log)
+callback.register('start_page_number' , main.start_shipout_page)
+callback.register('stop_page_number' , main.stop_shipout_page)
diff --git a/Master/texmf-dist/tex/context/base/luat-soc.lua b/Master/texmf-dist/tex/context/base/luat-soc.lua
new file mode 100644
index 00000000000..1095ed08779
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/luat-soc.lua
@@ -0,0 +1,11 @@
+-- This is just a loader. The package handler knows about the TEX tree.
+
+--~ require "luatex/lua/socket.lua"
+--~ require "luatex/lua/ltn12.lua"
+--~ require "luatex/lua/mime.lua"
+--~ require "luatex/lua/socket/http.lua"
+--~ require "luatex/lua/socket/url.lua"
+--~ require "luatex/lua/socket/tp.lua"
+--~ require "luatex/lua/socket/ftp.lua"
+
+-- "luatex/lua/socket/smtp.lua"
diff --git a/Master/texmf-dist/tex/context/base/luat-sta.lua b/Master/texmf-dist/tex/context/base/luat-sta.lua
index 15581222ca1..12fa18219bb 100644
--- a/Master/texmf-dist/tex/context/base/luat-sta.lua
+++ b/Master/texmf-dist/tex/context/base/luat-sta.lua
@@ -5,6 +5,8 @@ if not modules then modules = { } end modules ['luat-sta'] = {
license = "see context related readme files"
}
+-- this code is used in the updater
+
states = states or { }
states.data = states.data or { }
states.hash = states.hash or { }
@@ -31,27 +33,32 @@ end
function states.set_by_tag(tag,key,value,default,persistent)
local d, h = states.data[tag], states.hash[tag]
if d then
- local dkey, hkey = key, key
- local pre, post = key:match("(.+)%.([^%.]+)$")
- if pre and post then
- for k in pre:gmatch("[^%.]+") do
- local dk = d[k]
- if not dk then
- dk = { }
- d[k] = dk
+ if type(d) == "table" then
+ local dkey, hkey = key, key
+ local pre, post = key:match("(.+)%.([^%.]+)$")
+ if pre and post then
+ for k in pre:gmatch("[^%.]+") do
+ local dk = d[k]
+ if not dk then
+ dk = { }
+ d[k] = dk
+ end
+ d = dk
end
- d = dk
+ dkey, hkey = post, key
end
- dkey, hkey = post, key
- end
- if type(value) == nil then
- value = value or default
- elseif persistent then
- value = value or d[dkey] or default
- else
- value = value or default
+ if type(value) == nil then
+ value = value or default
+ elseif persistent then
+ value = value or d[dkey] or default
+ else
+ value = value or default
+ end
+ d[dkey], h[hkey] = value, value
+ elseif type(d) == "string" then
+ -- weird
+ states.data[tag], states.hash[tag] = value, value
end
- d[dkey], h[hkey] = value, value
end
end
@@ -171,7 +178,6 @@ end
--~ },
--~ }
-
--~ states.save("teststate", "update")
--~ states.load("teststate", "update")
diff --git a/Master/texmf-dist/tex/context/base/luat-sto.lua b/Master/texmf-dist/tex/context/base/luat-sto.lua
new file mode 100644
index 00000000000..6fea9151495
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/luat-sto.lua
@@ -0,0 +1,135 @@
+if not modules then modules = { } end modules ['luat-sto'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local type, next = type, next
+local gmatch, format, write_nl = string.gmatch, string.format, texio.write_nl
+
+storage = storage or { }
+storage.min = 0 -- 500
+storage.max = storage.min - 1
+storage.noftables = storage.noftables or 0
+storage.nofmodules = storage.nofmodules or 0
+storage.data = { }
+storage.evaluators = { }
+
+local evaluators = storage.evaluators -- (evaluate,message,names)
+local data = storage.data
+
+function storage.register(...)
+ data[#data+1] = { ... }
+end
+
+-- evaluators .. messy .. to be redone
+
+function storage.evaluate(name)
+ evaluators[#evaluators+1] = name
+end
+
+function storage.finalize() -- we can prepend the string with "evaluate:"
+ for i=1,#evaluators do
+ local t = evaluators[i]
+ for i, v in next, t do
+ local tv = type(v)
+ if tv == "string" then
+ t[i] = loadstring(v)()
+ elseif tv == "table" then
+ for _, vv in next, v do
+ if type(vv) == "string" then
+ t[i] = loadstring(vv)()
+ end
+ end
+ elseif tv == "function" then
+ t[i] = v()
+ end
+ end
+ end
+end
+
+function storage.dump()
+ for i=1,#data do
+ local d = data[i]
+ local message, original, target, evaluate = d[1], d[2] ,d[3] ,d[4]
+ local name, initialize, finalize, code = nil, "", "", ""
+ for str in gmatch(target,"([^%.]+)") do
+ if name then
+ name = name .. "." .. str
+ else
+ name = str
+ end
+ initialize = format("%s %s = %s or {} ", initialize, name, name)
+ end
+ if evaluate then
+ finalize = "storage.evaluate(" .. name .. ")"
+ end
+ storage.max = storage.max + 1
+ if trace_storage then
+ logs.report('storage','saving %s in slot %s',message,storage.max)
+ code =
+ initialize ..
+ format("logs.report('storage','restoring %s from slot %s') ",message,storage.max) ..
+ table.serialize(original,name) ..
+ finalize
+ else
+ code = initialize .. table.serialize(original,name) .. finalize
+ end
+ lua.bytecode[storage.max] = loadstring(code)
+ collectgarbage("step")
+ end
+end
+
+-- we also need to count at generation time (nicer for message)
+
+if lua.bytecode then -- from 0 upwards
+ local i, b = storage.min, lua.bytecode
+ while b[i] do
+ storage.noftables = i
+ b[i]()
+ b[i] = nil
+ i = i + 1
+ end
+end
+
+statistics.register("stored bytecode data", function()
+ local modules = (storage.nofmodules > 0 and storage.nofmodules) or (status.luabytecodes - 500)
+ local dumps = (storage.noftables > 0 and storage.noftables) or storage.max-storage.min + 1
+ return format("%s modules, %s tables, %s chunks",modules,dumps,modules+dumps)
+end)
+
+if lua.bytedata then
+ storage.register("lua/bytedata",lua.bytedata,"lua.bytedata")
+end
+
+-- wrong place, kind of forward reference
+
+function statistics.report_storage(whereto)
+ whereto = whereto or "term and log"
+ write_nl(whereto," ","stored tables:"," ")
+ for k,v in table.sortedpairs(storage.data) do
+ write_nl(whereto,format("%03i %s",k,v[1]))
+ end
+ write_nl(whereto," ","stored modules:"," ")
+ for k,v in table.sortedpairs(lua.bytedata) do
+ write_nl(whereto,format("%03i %s %s",k,v[2],v[1]))
+ end
+ write_nl(whereto," ","stored attributes:"," ")
+ for k,v in table.sortedpairs(attributes.names) do
+ write_nl(whereto,format("%03i %s",k,v))
+ end
+ write_nl(whereto," ","stored catcodetables:"," ")
+ for k,v in table.sortedpairs(catcodes.names) do
+ write_nl(whereto,format("%03i %s",k,v))
+ end
+ write_nl(whereto," ")
+end
+
+storage.shared = storage.shared or { }
+
+-- Because the storage mechanism assumes tables, we define a table for storing
+-- (non table) values.
+
+storage.register("storage/shared", storage.shared, "storage.shared")
diff --git a/Master/texmf-dist/tex/context/base/luat-tex.lua b/Master/texmf-dist/tex/context/base/luat-tex.lua
deleted file mode 100644
index c9d99c48a2d..00000000000
--- a/Master/texmf-dist/tex/context/base/luat-tex.lua
+++ /dev/null
@@ -1,516 +0,0 @@
--- filename : luat-zip.lua
--- comment : companion to luat-lib.tex
--- author : Hans Hagen, PRAGMA-ADE, Hasselt NL
--- copyright: PRAGMA ADE / ConTeXt Development Team
--- license : see context related readme files
-
-if not versions then versions = { } end versions['luat-tex'] = 1.001
-
--- special functions that deal with io
-
-if texconfig and not texlua then
-
- input.level = input.level or 0
-
- if input.logmode() == 'xml' then
- function input.show_open(name)
- input.level = input.level + 1
- texio.write_nl("<f l='"..input.level.."' n='"..name.."'>")
- end
- function input.show_close(name)
- texio.write("</f> ")
- input.level = input.level - 1
- end
- function input.show_load(name)
- texio.write_nl("<f l='"..(input.level+1).."' n='"..name.."'/>") -- level?
- end
- else
- function input.show_open () end
- function input.show_close() end
- function input.show_load () end
- end
-
- function input.finders.generic(instance,tag,filename,filetype)
- local foundname = input.find_file(instance,filename,filetype)
- if foundname and foundname ~= "" then
- input.logger('+ ' .. tag .. ' finder',filename,'filetype')
- return foundname
- else
- input.logger('- ' .. tag .. ' finder',filename,'filetype')
- return unpack(input.finders.notfound)
- end
- end
-
- input.filters.dynamic_translator = nil
- input.filters.frozen_translator = nil
- input.filters.utf_translator = nil
-
- function input.openers.text_opener(filename,file_handle,tag)
- local u = unicode.utftype(file_handle)
- local t = { }
- if u > 0 then
- input.logger('+ ' .. tag .. ' opener (' .. unicode.utfname[u] .. ')',filename)
- local l
- if u > 2 then
- l = unicode.utf32_to_utf8(file_handle:read("*a"),u==4)
- else
- l = unicode.utf16_to_utf8(file_handle:read("*a"),u==2)
- end
- file_handle:close()
- t = {
- utftype = u, -- may go away
- lines = l,
- current = 0, -- line number, not really needed
- handle = nil,
- noflines = #l,
- close = function()
- input.logger('= ' .. tag .. ' closer (' .. unicode.utfname[u] .. ')',filename)
- input.show_close(filename)
- end,
---~ getline = function(n)
---~ local line = t.lines[n]
---~ if not line or line == "" then
---~ return ""
---~ else
---~ local translator = input.filters.utf_translator
---~ return (translator and translator(line)) or line
---~ end
---~ end,
- reader = function(self)
- self = self or t
- local current, lines = self.current, self.lines
- if current >= #lines then
- return nil
- else
- current = current + 1
- self.current = current
- local line = lines[current]
- if line == "" then
- return ""
- else
- local translator = input.filters.utf_translator
- -- return (translator and translator(line)) or line
- if translator then
- return translator(line)
- else
- return line
- end
- end
- end
- end
- }
- else
- input.logger('+ ' .. tag .. ' opener',filename)
- -- todo: file;name -> freeze / eerste regel scannen -> freeze
- local filters = input.filters
- t = {
- reader = function(self)
- local line = file_handle:read()
- if line == "" then
- return ""
- end
- local translator = filters.utf_translator
- if translator then
- return translator(line)
- end
- translator = filters.dynamic_translator
- if translator then
- return translator(line)
- end
- return line
- end,
- close = function()
- input.logger('= ' .. tag .. ' closer',filename)
- input.show_close(filename)
- file_handle:close()
- end,
- handle = function()
- return file_handle
- end,
- noflines = function()
- t.noflines = io.noflines(file_handle)
- return t.noflines
- end
- }
- end
- return t
- end
-
- function input.openers.generic(instance,tag,filename)
- if filename and filename ~= "" then
- local f = io.open(filename,"r")
- if f then
- input.show_open(filename)
- return input.openers.text_opener(filename,f,tag)
- end
- end
- input.logger('- ' .. tag .. ' opener',filename)
- return unpack(input.openers.notfound)
- end
-
- function input.loaders.generic(instance,tag,filename)
- if filename and filename ~= "" then
- local f = io.open(filename,"rb")
- if f then
- input.show_load(filename)
- input.logger('+ ' .. tag .. ' loader',filename)
- local s = f:read("*a")
- f:close()
- if s then
- return true, s, #s
- end
- end
- end
- input.logger('- ' .. tag .. ' loader',filename)
- return unpack(input.loaders.notfound)
- end
-
- function input.finders.tex(instance,filename,filetype)
- return input.finders.generic(instance,'tex',filename,filetype)
- end
- function input.openers.tex(instance,filename)
- return input.openers.generic(instance,'tex',filename)
- end
- function input.loaders.tex(instance,filename)
- return input.loaders.generic(instance,'tex',filename)
- end
-
-end
-
--- callback into the file io and related things; disabling kpse
-
-
-if texconfig and not texlua then do
-
- -- this is not the right place, because we refer to quite some not yet defined tables, but who cares ...
-
- ctx = ctx or { }
-
- local ss = { }
-
- function ctx.writestatus(a,b)
- local s = ss[a]
- if not ss[a] then
- s = a:rpadd(15) .. ": "
- ss[a] = s
- end
- texio.write_nl(s .. b .. "\n")
- end
-
- -- this will become: ctx.install_statistics(fnc() return ..,.. end) etc
-
- local statusinfo, n = { }, 0
-
- function ctx.register_statistics(tag,pattern,fnc)
- statusinfo[#statusinfo+1] = { tag, pattern, fnc }
- if #tag > n then n = #tag end
- end
-
- function ctx.show_statistics() -- todo: move calls
- if caches then
- ctx.register_statistics("used config path", "%s", function() return caches.configpath(texmf.instance) end)
- ctx.register_statistics("used cache path", "%s", function() return caches.path end)
- end
- if status.luabytecodes > 0 and input.storage and input.storage.done then
- ctx.register_statistics("modules/dumps/instances", "%s/%s/%s", function() return status.luabytecodes-500, input.storage.done, status.luastates end)
- end
- if texmf.instance then
- ctx.register_statistics("input load time", "%s seconds", function() return input.loadtime(texmf.instance) end)
- end
- if fonts then
- ctx.register_statistics("fonts load time","%s seconds", function() return input.loadtime(fonts) end)
- end
- if xml then
- ctx.register_statistics("xml load time", "%s seconds, backreferences: %i, outer filtering time: %s", function() return input.loadtime(xml), #lxml.self, input.loadtime(lxml) end)
- end
- if mptopdf then
- ctx.register_statistics("mps conversion time", "%s seconds", function() return input.loadtime(mptopdf) end)
- end
- if nodes then
- ctx.register_statistics("node processing time", "%s seconds (including kernel)", function() return input.loadtime(nodes) end)
- end
- if kernel then
- ctx.register_statistics("kernel processing time", "%s seconds", function() return input.loadtime(kernel) end)
- end
- if attributes then
- ctx.register_statistics("attribute processing time", "%s seconds", function() return input.loadtime(attributes) end)
- end
- if languages then
- ctx.register_statistics("language load time", "%s seconds, n=%s", function() return input.loadtime(languages), languages.hyphenation.n() end)
- end
- if figures then
- ctx.register_statistics("graphics processing time", "%s seconds, n=%s (including tex)", function() return input.loadtime(figures), figures.n or "?" end)
- end
- if metapost then
- ctx.register_statistics("metapost processing time", "%s seconds, loading: %s seconds, execution: %s seconds, n: %s", function() return input.loadtime(metapost), input.loadtime(mplib), input.loadtime(metapost.exectime), metapost.n end)
- end
- if status.luastate_bytes then
- ctx.register_statistics("current memory usage", "%s bytes", function() return status.luastate_bytes end)
- end
- if nodes then
- ctx.register_statistics("cleaned up reserved nodes", "%s nodes, %s lists of %s", function() return nodes.cleanup_reserved(tex.count[24]) end) -- \topofboxstack
- end
- if status.node_mem_usage then
- ctx.register_statistics("node memory usage", "%s", function() return status.node_mem_usage end)
- end
- if languages then
- ctx.register_statistics("loaded patterns", "%s", function() return languages.logger.report() end)
- end
- if fonts then
- ctx.register_statistics("loaded fonts", "%s", function() return fonts.logger.report() end)
- end
- if xml then -- so we are in mkiv, we need a different check
- ctx.register_statistics("runtime", "%s seconds, %i processed pages, %i shipped pages, %.3f pages/second", function()
- input.stoptiming(texmf)
- local runtime = input.loadtime(texmf)
- local shipped = tex.count['nofshipouts']
- local pages = tex.count['realpageno'] - 1
- local persecond = shipped / runtime
- return runtime, pages, shipped, persecond
- end)
- end
- for _, t in ipairs(statusinfo) do
- local tag, pattern, fnc = t[1], t[2], t[3]
- ctx.writestatus("mkiv lua stats", string.format("%s - %s", tag:rpadd(n," "), pattern:format(fnc())))
- end
- end
-
-end end
-
-if texconfig and not texlua then
-
- texconfig.kpse_init = false
- texconfig.trace_file_names = input.logmode() == 'tex'
- texconfig.max_print_line = 100000
-
- -- if still present, we overload kpse (put it off-line so to say)
-
- if not texmf then texmf = { } end
-
- input.starttiming(texmf)
-
- if not texmf.instance then
-
- if not texmf.instance then -- prevent a second loading
-
- texmf.instance = input.reset()
- texmf.instance.progname = environment.progname or 'context'
- texmf.instance.engine = environment.engine or 'luatex'
- texmf.instance.validfile = input.validctxfile
-
- input.load(texmf.instance)
-
- end
-
- if callback then
- callback.register('find_read_file' , function(id,name) return input.findtexfile(texmf.instance,name) end)
- callback.register('open_read_file' , function( name) return input.opentexfile(texmf.instance,name) end)
- end
-
- if callback then
- callback.register('find_data_file' , function(name) return input.findbinfile(texmf.instance,name,"tex") end)
- callback.register('find_enc_file' , function(name) return input.findbinfile(texmf.instance,name,"enc") end)
- callback.register('find_font_file' , function(name) return input.findbinfile(texmf.instance,name,"tfm") end)
- callback.register('find_format_file' , function(name) return input.findbinfile(texmf.instance,name,"fmt") end)
- callback.register('find_image_file' , function(name) return input.findbinfile(texmf.instance,name,"tex") end)
- callback.register('find_map_file' , function(name) return input.findbinfile(texmf.instance,name,"map") end)
- callback.register('find_ocp_file' , function(name) return input.findbinfile(texmf.instance,name,"ocp") end)
- callback.register('find_opentype_file' , function(name) return input.findbinfile(texmf.instance,name,"otf") end)
- callback.register('find_output_file' , function(name) return name end)
- callback.register('find_pk_file' , function(name) return input.findbinfile(texmf.instance,name,"pk") end)
- callback.register('find_sfd_file' , function(name) return input.findbinfile(texmf.instance,name,"sfd") end)
- callback.register('find_truetype_file' , function(name) return input.findbinfile(texmf.instance,name,"ttf") end)
- callback.register('find_type1_file' , function(name) return input.findbinfile(texmf.instance,name,"pfb") end)
- callback.register('find_vf_file' , function(name) return input.findbinfile(texmf.instance,name,"vf") end)
-
- callback.register('read_data_file' , function(file) return input.loadbinfile(texmf.instance,file,"tex") end)
- callback.register('read_enc_file' , function(file) return input.loadbinfile(texmf.instance,file,"enc") end)
- callback.register('read_font_file' , function(file) return input.loadbinfile(texmf.instance,file,"tfm") end)
- -- format
- -- image
- callback.register('read_map_file' , function(file) return input.loadbinfile(texmf.instance,file,"map") end)
- callback.register('read_ocp_file' , function(file) return input.loadbinfile(texmf.instance,file,"ocp") end)
- callback.register('read_opentype_file' , function(file) return input.loadbinfile(texmf.instance,file,"otf") end)
- -- output
- callback.register('read_pk_file' , function(file) return input.loadbinfile(texmf.instance,file,"pk") end)
- callback.register('read_sfd_file' , function(file) return input.loadbinfile(texmf.instance,file,"sfd") end)
- callback.register('read_truetype_file' , function(file) return input.loadbinfile(texmf.instance,file,"ttf") end)
- callback.register('read_type1_file' , function(file) return input.loadbinfile(texmf.instance,file,"pfb") end)
- callback.register('read_vf_file' , function(file) return input.loadbinfile(texmf.instance,file,"vf" ) end)
- end
-
- if callback and environment.aleph_mode then
- callback.register('find_font_file' , function(name) return input.findbinfile(texmf.instance,name,"ofm") end)
- callback.register('read_font_file' , function(file) return input.loadbinfile(texmf.instance,file,"ofm") end)
- callback.register('find_vf_file' , function(name) return input.findbinfile(texmf.instance,name,"ovf") end)
- callback.register('read_vf_file' , function(file) return input.loadbinfile(texmf.instance,file,"ovf") end)
- end
-
- if callback then
- callback.register('find_write_file' , function(id,name) return name end)
- end
-
- if callback and (not config or (#config == 0)) then
- callback.register('find_format_file' , function(name) return name end)
- end
-
- if callback and false then
- for k, v in pairs(callback.list()) do
- if not v then texio.write_nl("<w>callback "..k.." is not set</w>") end
- end
- end
-
- if callback then
-
- input.start_actions = { }
- input.stop_actions = { }
-
- function input.register_start_actions(f) table.insert(input.start_actions, f) end
- function input.register_stop_actions (f) table.insert(input.stop_actions, f) end
-
- --~ callback.register('start_run', function() for _, a in pairs(input.start_actions) do a() end end)
- --~ callback.register('stop_run' , function() for _, a in pairs(input.stop_actions ) do a() end end)
-
- end
-
- if callback then
-
- if input.logmode() == 'xml' then
-
- function input.start_page_number()
- texio.write_nl("<p real='" .. tex.count[0] .. "' page='"..tex.count[1].."' sub='"..tex.count[2].."'")
- end
- function input.stop_page_number()
- texio.write("/>")
- texio.write_nl("")
- end
-
- callback.register('start_page_number' , input.start_page_number)
- callback.register('stop_page_number' , input.stop_page_number )
-
- function input.report_output_pages(p,b)
- texio.write_nl("<v k='pages'>"..p.."</v>")
- texio.write_nl("<v k='bytes'>"..b.."</v>")
- texio.write_nl("")
- end
- function input.report_output_log()
- end
-
- callback.register('report_output_pages', input.report_output_pages)
- callback.register('report_output_log' , input.report_output_log )
-
- function input.start_run()
- texio.write_nl("<?xml version='1.0' standalone='yes'?>")
- texio.write_nl("<job xmlns='www.tug.org/luatex/schemas/context-job.rng'>")
- texio.write_nl("")
- end
- function input.stop_run()
- texio.write_nl("</job>")
- end
- function input.show_statistics()
- for k,v in pairs(status.list()) do
- texio.write_nl("log","<v k='"..k.."'>"..tostring(v).."</v>")
- end
- end
-
- table.insert(input.start_actions, input.start_run)
- table.insert(input.stop_actions , input.show_statistics)
- table.insert(input.stop_actions , input.stop_run)
-
- else
- table.insert(input.stop_actions , input.show_statistics)
- end
-
- callback.register('start_run', function() for _, a in pairs(input.start_actions) do a() end end)
- callback.register('stop_run' , function() for _, a in pairs(input.stop_actions ) do a() end ctx.show_statistics() end)
-
- end
-
- end
-
- if kpse then
-
- function kpse.find_file(filename,filetype,mustexist)
- return input.find_file(texmf.instance,filename,filetype,mustexist)
- end
- function kpse.expand_path(variable)
- return input.expand_path(texmf.instance,variable)
- end
- function kpse.expand_var(variable)
- return input.expand_var(texmf.instance,variable)
- end
- function kpse.expand_braces(variable)
- return input.expand_braces(texmf.instance,variable)
- end
-
- end
-
-end
-
--- program specific configuration (memory settings and alike)
-
-if texconfig and not texlua then
-
- luatex = luatex or { }
-
- luatex.variablenames = {
- 'main_memory', 'extra_mem_bot', 'extra_mem_top',
- 'buf_size','expand_depth',
- 'font_max', 'font_mem_size',
- 'hash_extra', 'max_strings', 'pool_free', 'pool_size', 'string_vacancies',
- 'obj_tab_size', 'pdf_mem_size', 'dest_names_size',
- 'nest_size', 'param_size', 'save_size', 'stack_size',
- 'trie_size', 'hyph_size', 'max_in_open',
- 'ocp_stack_size', 'ocp_list_size', 'ocp_buf_size'
- }
-
- function luatex.variables()
- local t, x = { }, nil
- for _,v in pairs(luatex.variablenames) do
- x = input.var_value(texmf.instance,v)
- if x and x:find("^%d+$") then
- t[v] = tonumber(x)
- end
- end
- return t
- end
-
- function luatex.setvariables(tab)
- for k,v in pairs(luatex.variables()) do
- tab[k] = v
- end
- end
-
- if not luatex.variables_set then
- luatex.setvariables(texconfig)
- luatex.variables_set = true
- end
-
- texconfig.max_print_line = 100000
- texconfig.max_in_open = 127
-
-end
-
--- some tex basics
-
-if not cs then cs = { } end
-
-function cs.def(k,v)
- tex.sprint(tex.texcatcodes, "\\def\\" .. k .. "{" .. v .. "}")
-end
-
-function cs.chardef(k,v)
- tex.sprint(tex.texcatcodes, "\\chardef\\" .. k .. "=" .. v .. "\\relax")
-end
-
-function cs.boolcase(b)
- if b then tex.write(1) else tex.write(0) end
-end
-
-function cs.testcase(b)
- if b then
- tex.sprint(tex.texcatcodes, "\\firstoftwoarguments")
- else
- tex.sprint(tex.texcatcodes, "\\secondoftwoarguments")
- end
-end
diff --git a/Master/texmf-dist/tex/context/base/luat-tmp.lua b/Master/texmf-dist/tex/context/base/luat-tmp.lua
deleted file mode 100644
index f3b06235378..00000000000
--- a/Master/texmf-dist/tex/context/base/luat-tmp.lua
+++ /dev/null
@@ -1,408 +0,0 @@
-if not modules then modules = { } end modules ['luat-tmp'] = {
- version = 1.001,
- comment = "companion to luat-lib.tex",
- author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
- copyright = "PRAGMA ADE / ConTeXt Development Team",
- license = "see context related readme files"
-}
-
---[[ldx--
-<p>This module deals with caching data. It sets up the paths and
-implements loaders and savers for tables. Best is to set the
-following variable. When not set, the usual paths will be
-checked. Personally I prefer the (users) temporary path.</p>
-
-</code>
-TEXMFCACHE=$TMP;$TEMP;$TMPDIR;$TEMPDIR;$HOME;$TEXMFVAR;$VARTEXMF;.
-</code>
-
-<p>Currently we do no locking when we write files. This is no real
-problem because most caching involves fonts and the chance of them
-being written at the same time is small. We also need to extend
-luatools with a recache feature.</p>
---ldx]]--
-
-caches = caches or { }
-dir = dir or { }
-texmf = texmf or { }
-
-caches.path = caches.path or nil
-caches.base = caches.base or "luatex-cache"
-caches.more = caches.more or "context"
-caches.direct = false -- true is faster but may need huge amounts of memory
-caches.trace = false
-caches.tree = false
-caches.paths = caches.paths or nil
-caches.force = false
-
-input.usecache = not toboolean(os.getenv("TEXMFSHARECACHE") or "false",true) -- true
-
-function caches.temp(instance)
- local function checkpath(cachepath)
- if not cachepath or cachepath == "" then
- return nil
- elseif lfs.attributes(cachepath,"mode") == "directory" then -- lfs.isdir(cachepath) then
- return cachepath
- elseif caches.force or io.ask(string.format("Should I create the cache path %s?",cachepath), "no", { "yes", "no" }) == "yes" then
- dir.mkdirs(cachepath)
- return (lfs.attributes(cachepath,"mode") == "directory") and cachepath
- else
- return nil
- end
- end
- local cachepath = input.expanded_path_list(instance,"TEXMFCACHE")
- cachepath = cachepath and #cachepath > 0 and checkpath(cachepath[1])
- if not cachepath then
- cachepath = os.getenv("TEXMFCACHE") or os.getenv("HOME") or os.getenv("HOMEPATH") or os.getenv("TMP") or os.getenv("TEMP") or os.getenv("TMPDIR") or nil
- cachepath = checkpath(cachepath)
- end
- if not cachepath then
- print("\nfatal error: there is no valid cache path defined\n")
- os.exit()
- elseif lfs.attributes(cachepath,"mode") ~= "directory" then
- print(string.format("\nfatal error: cache path %s is not a directory\n",cachepath))
- os.exit()
- end
- function caches.temp(instance)
- return cachepath
- end
- return cachepath
-end
-
-function caches.configpath(instance)
- return table.concat(instance.cnffiles,";")
-end
-
-function caches.hashed(tree)
- return md5.hex((tree:lower()):gsub("[\\\/]+","/"))
-end
-
-function caches.treehash(instance)
- local tree = caches.configpath(instance)
- if not tree or tree == "" then
- return false
- else
- return caches.hashed(tree)
- end
-end
-
-function caches.setpath(instance,...)
- if not caches.path then
- if not caches.path then
- caches.path = caches.temp(instance)
- end
- caches.path = input.clean_path(caches.path) -- to be sure
- if lfs then
- caches.tree = caches.tree or caches.treehash(instance)
- if caches.tree then
- caches.path = dir.mkdirs(caches.path,caches.base,caches.more,caches.tree)
- else
- caches.path = dir.mkdirs(caches.path,caches.base,caches.more)
- end
- end
- end
- if not caches.path then
- caches.path = '.'
- end
- caches.path = input.clean_path(caches.path)
- if lfs and not table.is_empty({...}) then
- local pth = dir.mkdirs(caches.path,...)
- return pth
- end
- caches.path = dir.expand_name(caches.path)
- return caches.path
-end
-
-function caches.definepath(instance,category,subcategory)
- return function()
- return caches.setpath(instance,category,subcategory)
- end
-end
-
-function caches.setluanames(path,name)
- return path .. "/" .. name .. ".tma", path .. "/" .. name .. ".tmc"
-end
-
-function caches.loaddata(path,name)
- local tmaname, tmcname = caches.setluanames(path,name)
- local loader = loadfile(tmcname) or loadfile(tmaname)
- if loader then
- return loader()
- else
- return false
- end
-end
-
-function caches.is_writable(filepath,filename)
- local tmaname, tmcname = caches.setluanames(filepath,filename)
- return file.is_writable(tmaname)
-end
-
-function caches.savedata(filepath,filename,data,raw) -- raw needed for file cache
- local tmaname, tmcname = caches.setluanames(filepath,filename)
- local reduce, simplify = true, true
- if raw then
- reduce, simplify = false, false
- end
- if caches.direct then
- file.savedata(tmaname, table.serialize(data,'return',true,true))
- else
- table.tofile(tmaname, data,'return',true,true) -- maybe not the last true
- end
- utils.lua.compile(tmaname, tmcname, input.expand_var(texmf.instance,'PURGECACHE') == 't')
-end
-
--- here we use the cache for format loading (texconfig.[formatname|jobname])
-
---~ if tex and texconfig and texconfig.formatname and texconfig.formatname == "" then
-if tex and texconfig and (not texconfig.formatname or texconfig.formatname == "") and texmf.instance then
- if not texconfig.luaname then texconfig.luaname = "cont-en.lua" end -- or luc
- texconfig.formatname = caches.setpath(texmf.instance,"formats") .. "/" .. texconfig.luaname:gsub("%.lu.$",".fmt")
-end
-
---[[ldx--
-<p>Once we found ourselves defining similar cache constructs
-several times, containers were introduced. Containers are used
-to collect tables in memory and reuse them when possible based
-on (unique) hashes (to be provided by the calling function).</p>
-
-<p>Caching to disk is disabled by default. Version numbers are
-stored in the saved table which makes it possible to change the
-table structures without bothering about the disk cache.</p>
-
-<p>Examples of usage can be found in the font related code.</p>
---ldx]]--
-
-containers = { }
-containers.trace = false
-
-do -- local report
-
- local function report(container,tag,name)
- if caches.trace or containers.trace or container.trace then
- logs.report(string.format("%s cache",container.subcategory),string.format("%s: %s",tag,name or 'invalid'))
- end
- end
-
- local allocated = { }
-
- -- tracing
-
- function containers.define(category, subcategory, version, enabled)
- return function()
- if category and subcategory then
- local c = allocated[category]
- if not c then
- c = { }
- allocated[category] = c
- end
- local s = c[subcategory]
- if not s then
- s = {
- category = category,
- subcategory = subcategory,
- storage = { },
- enabled = enabled,
- version = version or 1.000,
- trace = false,
- path = caches.setpath(texmf.instance,category,subcategory),
- }
- c[subcategory] = s
- end
- return s
- else
- return nil
- end
- end
- end
-
- function containers.is_usable(container, name)
- return container.enabled and caches.is_writable(container.path, name)
- end
-
- function containers.is_valid(container, name)
- if name and name ~= "" then
- local storage = container.storage[name]
- return storage and not table.is_empty(storage) and storage.cache_version == container.version
- else
- return false
- end
- end
-
- function containers.read(container,name)
- if container.enabled and not container.storage[name] then
- container.storage[name] = caches.loaddata(container.path,name)
- if containers.is_valid(container,name) then
- report(container,"loaded",name)
- else
- container.storage[name] = nil
- end
- end
- if container.storage[name] then
- report(container,"reusing",name)
- end
- return container.storage[name]
- end
-
- function containers.write(container, name, data)
- if data then
- data.cache_version = container.version
- if container.enabled then
- local unique, shared = data.unique, data.shared
- data.unique, data.shared = nil, nil
- caches.savedata(container.path, name, data)
- report(container,"saved",name)
- data.unique, data.shared = unique, shared
- end
- report(container,"stored",name)
- container.storage[name] = data
- end
- return data
- end
-
- function containers.content(container,name)
- return container.storage[name]
- end
-
-end
-
--- since we want to use the cache instead of the tree, we will now
--- reimplement the saver.
-
-local save_data = input.aux.save_data
-
-input.cachepath = nil
-
-function input.aux.save_data(instance, dataname, check)
- input.cachepath = input.cachepath or caches.definepath(instance,"trees")
- save_data(instance, dataname, check, function(cachename,dataname)
- if input.usecache then
- return file.join(input.cachepath(),caches.hashed(cachename))
- else
- return file.join(cachename,dataname)
- end
- end)
-end
-
-local load_data = input.aux.load_data
-
-function input.aux.load_data(instance,pathname,dataname,filename)
- input.cachepath = input.cachepath or caches.definepath(instance,"trees")
- load_data(instance,pathname,dataname,filename,function(dataname,filename)
- if input.usecache then
- return file.join(input.cachepath(),caches.hashed(pathname))
- else
- if not filename or (filename == "") then
- filename = dataname
- end
- return file.join(pathname,filename)
- end
- end)
-end
-
--- we will make a better format, maybe something xml or just text or lua
-
-input.automounted = input.automounted or { }
-
-function input.automount(instance,usecache)
- local mountpaths = input.simplified_list(input.expansion(instance,'TEXMFMOUNT'))
- if table.is_empty(mountpaths) and usecache then
- mountpaths = { caches.setpath(instance,"mount") }
- end
- if not table.is_empty(mountpaths) then
- input.starttiming(instance)
- for k, root in pairs(mountpaths) do
- local f = io.open(root.."/url.tmi")
- if f then
- for line in f:lines() do
- if line then
- if line:find("^[%%#%-]") then -- or %W
- -- skip
- elseif line:find("^zip://") then
- input.report("mounting",line)
- table.insert(input.automounted,line)
- input.usezipfile(instance,line)
- end
- end
- end
- f:close()
- end
- end
- input.stoptiming(instance)
- end
-end
-
--- store info in format
-
-input.storage = { }
-input.storage.data = { }
-input.storage.min = 0 -- 500
-input.storage.max = input.storage.min - 1
-input.storage.trace = false -- true
-input.storage.done = 0
-input.storage.evaluators = { }
--- (evaluate,message,names)
-
-function input.storage.register(...)
- input.storage.data[#input.storage.data+1] = { ... }
-end
-
-function input.storage.evaluate(name)
- input.storage.evaluators[#input.storage.evaluators+1] = name
-end
-
-function input.storage.finalize() -- we can prepend the string with "evaluate:"
- for _, t in ipairs(input.storage.evaluators) do
- for i, v in pairs(t) do
- if type(v) == "string" then
- t[i] = loadstring(v)()
- elseif type(v) == "table" then
- for _, vv in pairs(v) do
- if type(vv) == "string" then
- t[i] = loadstring(vv)()
- end
- end
- end
- end
- end
-end
-
-function input.storage.dump()
- for name, data in ipairs(input.storage.data) do
- local evaluate, message, original, target = data[1], data[2], data[3] ,data[4]
- local name, initialize, finalize, code = nil, "", "", ""
- for str in target:gmatch("([^%.]+)") do
- if name then
- name = name .. "." .. str
- else
- name = str
- end
- initialize = string.format("%s %s = %s or {} ", initialize, name, name)
- end
- if evaluate then
- finalize = "input.storage.evaluate(" .. name .. ")"
- end
- input.storage.max = input.storage.max + 1
- if input.storage.trace then
- logs.report('storage',string.format('saving %s in slot %s',message,input.storage.max))
- code =
- initialize ..
- string.format("logs.report('storage','restoring %s from slot %s') ",message,input.storage.max) ..
- table.serialize(original,name) ..
- finalize
- else
- code = initialize .. table.serialize(original,name) .. finalize
- end
- lua.bytecode[input.storage.max] = loadstring(code)
- end
-end
-
-if lua.bytecode then -- from 0 upwards
- local i = input.storage.min
- while lua.bytecode[i] do
- lua.bytecode[i]()
- lua.bytecode[i] = nil
- i = i + 1
- end
- input.storage.done = i
-end
diff --git a/Master/texmf-dist/tex/context/base/luat-tra.lua b/Master/texmf-dist/tex/context/base/luat-tra.lua
deleted file mode 100644
index 7fc97319563..00000000000
--- a/Master/texmf-dist/tex/context/base/luat-tra.lua
+++ /dev/null
@@ -1,108 +0,0 @@
--- filename : luat-tra.lua
--- comment : companion to luat-lib.tex
--- author : Hans Hagen, PRAGMA-ADE, Hasselt NL
--- copyright: PRAGMA ADE / ConTeXt Development Team
--- license : see context related readme files
-
-if not versions then versions = { } end versions['luat-tra'] = 1.001
-
-debugger = { }
-
-do
-
- local counters = { }
- local names = { }
- local getinfo = debug.getinfo
-
- local function hook()
- local f = getinfo(2,"f").func
- if f then
- if counters[f] == nil then
- counters[f] = 1
---~ names[f] = debug.getinfo(2,"Sn")
- names[f] = debug.getinfo(2,"n")
---~ names[f] = debug.getinfo(f)
- else
- counters[f] = counters[f] + 1
- end
- end
- end
-
- local function getname(func)
- local n = names[func]
- if n then
- if n.what == "C" then
- return n.name or '<luacall>'
- else
- -- source short_src linedefined what name namewhat nups func
- local name = n.name or n.namewhat or n.what
- if not name or name == "" then name = "?" end
- return string.format("%s : %s : %s", n.short_src or "unknown source", n.linedefined or "--", name)
- end
- else
- return "unknown"
- end
- end
-
- function debugger.showstats(printer,threshold)
- printer = printer or texio.write or print
- threshold = threshold or 0
- local total, grandtotal, functions = 0, 0, 0
- printer("\n") -- ugly but ok
- for func, count in pairs(counters) do
- if count > threshold then
- local name = getname(func)
- if name ~= "(for generator)" then
- printer(string.format("%8i %s\n", count, getname(func)))
- total = total + count
- end
- end
- grandtotal = grandtotal + count
- functions = functions + 1
- end
- printer(string.format("functions: %s, total: %s, grand total: %s, threshold: %s\n", functions, total, grandtotal, threshold))
- end
-
- function debugger.savestats(filename,threshold)
- local f = io.open(filename,'w')
- if f then
- debugger.showstats(function(str) f:write(str) end,threshold)
- f:close()
- end
- end
-
- function debugger.enable()
- debug.sethook(hook,"c")
- end
-
- function debugger.disable()
- debug.sethook()
- --~ counters[debug.getinfo(2,"f").func] = nil
- end
-
- function debugger.tracing()
- local n = tonumber(os.env['MTX.TRACE.CALLS']) or tonumber(os.env['MTX_TRACE_CALLS']) or 0
- if n > 0 then
- function debugger.tracing() return true end ; return true
- else
- function debugger.tracing() return false end ; return false
- end
- end
-
-end
-
---~ debugger.enable()
-
---~ print(math.sin(1*.5))
---~ print(math.sin(1*.5))
---~ print(math.sin(1*.5))
---~ print(math.sin(1*.5))
---~ print(math.sin(1*.5))
-
---~ debugger.disable()
-
---~ print("")
---~ debugger.showstats()
---~ print("")
---~ debugger.showstats(print,3)
-
diff --git a/Master/texmf-dist/tex/context/base/luat-tre.lua b/Master/texmf-dist/tex/context/base/luat-tre.lua
deleted file mode 100644
index e749a5b330a..00000000000
--- a/Master/texmf-dist/tex/context/base/luat-tre.lua
+++ /dev/null
@@ -1,45 +0,0 @@
--- filename : luat-tre.lua
--- comment : companion to luat-lib.tex
--- author : Hans Hagen, PRAGMA-ADE, Hasselt NL
--- copyright: PRAGMA ADE / ConTeXt Development Team
--- license : see context related readme files
-
-if not versions then versions = { } end versions['luat-tre'] = 1.001
-
--- \input tree://oeps1/**/oeps.tex
-
-do
-
- local done, found = { }, { }
-
- function input.finders.tree(instance,specification,filetype)
- local fnd = found[specification]
- if not fnd then
- local spec = input.splitmethod(specification).path or ""
- if spec ~= "" then
- local path, name = file.dirname(spec), file.basename(spec)
- if path == "" then path = "." end
- local hash = done[path]
- if not hash then
- local pattern = path .. "/*" -- we will use the proper splitter
- hash = dir.glob(pattern)
- done[path] = hash
- end
- local pattern = "/" .. name:gsub("([%.%-%+])", "%%%1") .. "$"
- for k, v in pairs(hash) do
- if v:find(pattern) then
- found[specification] = v
- return v
- end
- end
- end
- fnd = unpack(input.finders.notfound)
- found[specification] = fnd
- end
- return fnd
- end
-
- input.openers.tree = input.openers.generic
- input.loaders.tree = input.loaders.generic
-
-end
diff --git a/Master/texmf-dist/tex/context/base/luat-uni.lua b/Master/texmf-dist/tex/context/base/luat-uni.lua
deleted file mode 100644
index 06945ed2bab..00000000000
--- a/Master/texmf-dist/tex/context/base/luat-uni.lua
+++ /dev/null
@@ -1,23 +0,0 @@
--- filename : luat-uni.lua
--- comment : companion to luat-uni.tex
--- author : Hans Hagen, PRAGMA-ADE, Hasselt NL
--- copyright: PRAGMA ADE / ConTeXt Development Team
--- license : see context related readme files
-
-if not versions then versions = { } end versions['luat-uni'] = 1.001
-
-function unicode.utf8.split(str)
- lst = { }
- -- for snippet in unicode.utf8.gfind(str,".") do
- for snippet in string.utfcharacters(str) do
- table.insert(lst,snippet)
- end
- return lst
-end
-
-function unicode.utf8.each(str,fnc)
- -- for snippet in unicode.utf8.gfind(str,".") do
- for snippet in string.utfcharacters(str) do
- fnc(snippet)
- end
-end
diff --git a/Master/texmf-dist/tex/context/base/luat-uni.tex b/Master/texmf-dist/tex/context/base/luat-uni.tex
deleted file mode 100644
index 453c8e0d879..00000000000
--- a/Master/texmf-dist/tex/context/base/luat-uni.tex
+++ /dev/null
@@ -1,33 +0,0 @@
-%D \module
-%D [ file=luat-uni,
-%D version=2006.04.25,
-%D title=\CONTEXT\ Lua Macros,
-%D subtitle=Unicode Support,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright=PRAGMA]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{Lua Support Macros (unicode)}
-
-\registerctxluafile{luat-uni}{1.001}
-
-% \defconvertedargument\ascii{ÀÁÂÃÄÅàáâãäå}
-%
-% \lua{ tex.print ("\ascii")}
-% \lua{ tex.print(unicode.utf8.reverse ("\ascii"))}
-% \lua{ tex.print(unicode.utf8.lower ("\ascii"))}
-% \lua{ tex.print(unicode.utf8.upper ("\ascii"))}
-% \lua{ tex.print(unicode.utf8.len ("\ascii"))}
-% \lua{ tex.print(table.getn(unicode.utf8.split("\ascii"))}}
-%
-% \lua{unicode.utf8.each("\ascii", function(chr) tex.print("["..chr.."]") end)}
-
-\let\UnicodeOne \gobbleoneargument
-\let\UnicodeTwo \gobbleoneargument
-\let\UnicodeThree\gobbleoneargument
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/luat-zip.lua b/Master/texmf-dist/tex/context/base/luat-zip.lua
deleted file mode 100644
index 91279cfe091..00000000000
--- a/Master/texmf-dist/tex/context/base/luat-zip.lua
+++ /dev/null
@@ -1,220 +0,0 @@
--- filename : luat-zip.lua
--- comment : companion to luat-lib.tex
--- author : Hans Hagen, PRAGMA-ADE, Hasselt NL
--- copyright: PRAGMA ADE / ConTeXt Development Team
--- license : see context related readme files
-
-if not versions then versions = { } end versions['luat-zip'] = 1.001
-
-if zip and input then
- zip.supported = true
-else
- zip = { }
- zip.supported = false
-end
-
-if not zip.supported then
-
- if not input then input = { } end -- will go away
-
- function zip.openarchive (...) return nil end -- needed ?
- function zip.closenarchive (...) end -- needed ?
- function input.usezipfile (...) end -- needed ?
-
-else
-
- -- zip:///oeps.zip?name=bla/bla.tex
- -- zip:///oeps.zip?tree=tex/texmf-local
-
- local function validzip(str)
- if not str:find("^zip://") then
- return "zip:///" .. str
- else
- return str
- end
- end
-
- zip.archives = { }
- zip.registeredfiles = { }
-
- function zip.openarchive(instance,name)
- if not name or name == "" then
- return nil
- else
- local arch = zip.archives[name]
- if arch then
- return arch
- else
- local full = input.find_file(instance,name) or ""
- local arch = (full ~= "" and zip.open(full)) or false
- zip.archives[name] = arch
- return arch
- end
- end
- end
-
- function zip.closearchive(instance,name)
- if not name or name == "" and zip.archives[name] then
- zip.close(zip.archives[name])
- zip.archives[name] = nil
- end
- end
-
- -- zip:///texmf.zip?tree=/tex/texmf
- -- zip:///texmf.zip?tree=/tex/texmf-local
- -- zip:///texmf-mine.zip?tree=/tex/texmf-projects
-
- function input.locators.zip(instance,specification) -- where is this used? startup zips (untested)
- specification = input.splitmethod(specification)
- local zipfile = specification.path
- local zfile = zip.openarchive(instance,name) -- tricky, could be in to be initialized tree
- if zfile then
- input.logger('! zip locator', specification.original ..' found')
- else
- input.logger('? zip locator', specification.original ..' not found')
- end
- end
-
- function input.hashers.zip(instance,tag,name)
- input.report("loading zip file",name,"as",tag)
- input.usezipfile(instance,tag .."?tree=" .. name)
- end
-
- function input.concatinators.zip(tag,path,name)
- if not path or path == "" then
- return tag .. '?name=' .. name
- else
- return tag .. '?name=' .. path .. "/" .. name
- end
- end
-
- function input.is_readable.zip(name)
- return true
- end
-
- function input.finders.zip(instance,specification,filetype)
- specification = input.splitmethod(specification)
- if specification.path then
- local q = url.query(specification.query)
- if q.name then
- local zfile = zip.openarchive(instance,specification.path)
- if zfile then
- input.logger('! zip finder',specification.path)
- local dfile = zfile:open(q.name)
- if dfile then
- dfile = zfile:close()
- input.logger('+ zip finder',q.name)
- return specification.original
- end
- else
- input.logger('? zip finder',specification.path)
- end
- end
- end
- input.logger('- zip finder',filename)
- return unpack(input.finders.notfound)
- end
-
- function input.openers.zip(instance,specification)
- local zipspecification = input.splitmethod(specification)
- if zipspecification.path then
- local q = url.query(zipspecification.query)
- if q.name then
- local zfile = zip.openarchive(instance,zipspecification.path)
- if zfile then
- input.logger('+ zip starter',zipspecification.path)
- local dfile = zfile:open(q.name)
- if dfile then
- input.show_open(specification)
- return input.openers.text_opener(specification,dfile,'zip')
- end
- else
- input.logger('- zip starter',zipspecification.path)
- end
- end
- end
- input.logger('- zip opener',filename)
- return unpack(input.openers.notfound)
- end
-
- function input.loaders.zip(instance,specification)
- specification = input.splitmethod(specification)
- if specification.path then
- local q = url.query(specification.query)
- if q.name then
- local zfile = zip.openarchive(instance,specification.path)
- if zfile then
- input.logger('+ zip starter',specification.path)
- local dfile = zfile:open(q.name)
- if dfile then
- input.show_load(filename)
- input.logger('+ zip loader',filename)
- local s = dfile:read("*all")
- dfile:close()
- return true, s, #s
- end
- else
- input.logger('- zip starter',specification.path)
- end
- end
- end
- input.logger('- zip loader',filename)
- return unpack(input.openers.notfound)
- end
-
- -- zip:///somefile.zip
- -- zip:///somefile.zip?tree=texmf-local -> mount
-
- function input.usezipfile(instance,zipname)
- zipname = validzip(zipname)
- input.logger('! zip use','file '..zipname)
- local specification = input.splitmethod(zipname)
- local zipfile = specification.path
- if zipfile and not zip.registeredfiles[zipname] then
- local tree = url.query(specification.query).tree or ""
- input.logger('! zip register','file '..zipname)
- local z = zip.openarchive(instance,zipfile)
- if z then
- input.logger("= zipfile","registering "..zipname)
- input.starttiming(instance)
- input.aux.prepend_hash(instance,'zip',zipname,zipfile)
- input.aux.extend_texmf_var(instance,zipname) -- resets hashes too
- zip.registeredfiles[zipname] = z
- instance.files[zipname] = input.aux.register_zip_file(z,tree or "")
- input.stoptiming(instance)
- else
- input.logger("? zipfile","unknown "..zipname)
- end
- else
- input.logger('! zip register','no file '..zipname)
- end
- end
-
- function input.aux.register_zip_file(z,tree)
- local files, filter = { }, ""
- if tree == "" then
- filter = "^(.+)/(.-)$"
- else
- filter = "^"..tree.."/(.+)/(.-)$"
- end
- input.logger('= zip filter',filter)
- local register, n = input.aux.register_file, 0
- for i in z:files() do
- local path, name = i.filename:match(filter)
- if path then
- if name and name ~= '' then
- register(files, name, path)
- n = n + 1
- else
- -- directory
- end
- else
- register(files, i.filename, '')
- n = n + 1
- end
- end
- input.report('= zip entries',n)
- return files
- end
-
-end
diff --git a/Master/texmf-dist/tex/context/base/lxml-ent.lua b/Master/texmf-dist/tex/context/base/lxml-ent.lua
new file mode 100644
index 00000000000..c91d12706bb
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/lxml-ent.lua
@@ -0,0 +1,115 @@
+if not modules then modules = { } end modules ['lxml-ent'] = {
+ version = 1.001,
+ comment = "this module is the basis for the lxml-* ones",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local type, next, tonumber, tostring, setmetatable, loadstring = type, next, tonumber, tostring, setmetatable, loadstring
+local format, gsub, find = string.format, string.gsub, string.find
+local utfchar = unicode.utf8.char
+
+--[[ldx--
+<p>We provide (at least here) two entity handlers. The more extensive
+resolver consults a hash first, tries to convert to <l n='utf'/> next,
+and finaly calls a handler when defines. When this all fails, the
+original entity is returned.</p>
+--ldx]]--
+
+xml.entities = xml.entities or { } -- xml.entity_handler == function
+
+function xml.entity_handler(e)
+ return format("[%s]",e)
+end
+
+local function toutf(s)
+ return utfchar(tonumber(s,16))
+end
+
+local function utfize(root)
+ local d = root.dt
+ for k=1,#d do
+ local dk = d[k]
+ if type(dk) == "string" then
+ -- test prevents copying if no match
+ if find(dk,"&#x.-;") then
+ d[k] = gsub(dk,"&#x(.-);",toutf)
+ end
+ else
+ utfize(dk)
+ end
+ end
+end
+
+xml.utfize = utfize
+
+local function resolve(e) -- hex encoded always first, just to avoid mkii fallbacks
+ if find(e,"^#x") then
+ return utfchar(tonumber(e:sub(3),16))
+ elseif find(e,"^#") then
+ return utfchar(tonumber(e:sub(2)))
+ else
+ local ee = xml.entities[e] -- we cannot shortcut this one (is reloaded)
+ if ee then
+ return ee
+ else
+ local h = xml.entity_handler
+ return (h and h(e)) or "&" .. e .. ";"
+ end
+ end
+end
+
+local function resolve_entities(root)
+ if not root.special or root.tg == "@rt@" then
+ local d = root.dt
+ for k=1,#d do
+ local dk = d[k]
+ if type(dk) == "string" then
+ if find(dk,"&.-;") then
+ d[k] = gsub(dk,"&(.-);",resolve)
+ end
+ else
+ resolve_entities(dk)
+ end
+ end
+ end
+end
+
+xml.resolve_entities = resolve_entities
+
+function xml.utfize_text(str)
+ if find(str,"&#") then
+ return (gsub(str,"&#x(.-);",toutf))
+ else
+ return str
+ end
+end
+
+function xml.resolve_text_entities(str) -- maybe an lpeg. maybe resolve inline
+ if find(str,"&") then
+ return (gsub(str,"&(.-);",resolve))
+ else
+ return str
+ end
+end
+
+function xml.show_text_entities(str)
+ if find(str,"&") then
+ return (gsub(str,"&(.-);","[%1]"))
+ else
+ return str
+ end
+end
+
+-- experimental, this will be done differently
+
+function xml.merge_entities(root)
+ local documententities = root.entities
+ local allentities = xml.entities
+ if documententities then
+ for k, v in next, documententities do
+ allentities[k] = v
+ end
+ end
+end
diff --git a/Master/texmf-dist/tex/context/base/lxml-ini.lua b/Master/texmf-dist/tex/context/base/lxml-ini.lua
index f6dba95d4ca..0c40a4bafb9 100644
--- a/Master/texmf-dist/tex/context/base/lxml-ini.lua
+++ b/Master/texmf-dist/tex/context/base/lxml-ini.lua
@@ -6,23 +6,73 @@ if not modules then modules = { } end modules ['lxml-ini'] = {
license = "see context related readme files"
}
--- todo: speed up: remember last index/match combination
+local utf = unicode.utf8
-local texsprint, texprint = tex.sprint or print, tex.print or print
-local format, concat = string.format, table.concat
+local texsprint, texprint, utfchar = tex.sprint or print, tex.print or print, utf.char
+local format, concat, insert, remove = string.format, table.concat, table.insert, table.remove
local type, next, tonumber = type, next, tonumber
+local ctxcatcodes = tex.ctxcatcodes
+local texcatcodes = tex.texcatcodes
+local vrbcatcodes = tex.vrbcatcodes
+
+local trace_setups = false trackers.register("lxml.setups", function(v) trace_setups = v end)
+local trace_loading = false trackers.register("lxml.loading", function(v) trace_loading = v end)
+
+-- for the moment here
+
+function table.insert_before_value(t,value,extra)
+ for i=1,#t do
+ if t[i] == extra then
+ remove(t,i)
+ end
+ end
+ for i=1,#t do
+ if t[i] == value then
+ insert(t,i,extra)
+ return
+ end
+ end
+ insert(t,1,extra)
+end
+
+function table.insert_after_value(t,value,extra)
+ for i=1,#t do
+ if t[i] == extra then
+ remove(t,i)
+ end
+ end
+ for i=1,#t do
+ if t[i] == value then
+ insert(t,i+1,extra)
+ return
+ end
+ end
+ insert(t,#t+1,extra)
+end
+
+-- todo: speed up: remember last index/match combination
+
+local traverse, lpath = xml.traverse, xml.lpath
+
+local xmlfilter, xmlfirst, xmllast, xmlall = xml.filter, xml.first, xml.last, xml.all
+local xmlcollect, xmlcontent, xmlcollect_texts, xmlcollect_tags, xmlcollect_elements = xml.collect, xml.content, xml.collect_texts, xml.collect_tags, xml.collect_elements
+local xmlattribute, xmlindex = xml.filters.attribute, xml.filters.index
+local xmlelements = xml.elements
+
document = document or { }
document.xml = document.xml or { }
-- todo: loaded and myself per document so that we can garbage collect buffers
-lxml = { }
+lxml = lxml or { }
lxml.loaded = { }
lxml.myself = { }
+lxml.n = 0
local loaded = lxml.loaded
local myself = lxml.myself
+local stack = lxml.stack
lxml.self = myself -- be backward compatible for a while
@@ -48,25 +98,64 @@ do
local lf = lpeg.P("\n")
local space = lpeg.S(" \t\f\v")
local newline = crlf + cr + lf
- local spacing = space^0 * newline * space^0
+ local spacing = newline * space^0
local content = lpeg.C((1-spacing)^1)
local verbose = lpeg.C((1-(space+newline))^1)
+ -- local capture = (
+ -- newline^2 * lpeg.Cc("") / texprint +
+ -- newline * lpeg.Cc(" ") / texsprint +
+ -- content / texsprint
+ -- )^0
+
local capture = (
- newline^2 * lpeg.Cc("") / texprint +
- newline * lpeg.Cc(" ") / texsprint +
- content / texsprint
+ space^0 * newline^2 * lpeg.Cc("") / texprint +
+ space^0 * newline * space^0 * lpeg.Cc(" ") / texsprint +
+ content / texsprint
)^0
+ local forceraw, rawroot = false, nil
+
+ function lxml.startraw()
+ forceraw = true
+ end
+ function lxml.stopraw()
+ forceraw = false
+ end
+ function lxml.rawroot()
+ return rawroot
+ end
+ function lxml.rawpath(rootid)
+ if rawroot and type(rawroot) == "table" then
+ local text, path, rp
+ if not rawroot.dt then
+ text, path, rp = "text", "", rawroot[0]
+ else
+ path, rp = "tree", "", rawroot.__p__
+ end
+ while rp do
+ local rptg = rp.tg
+ if rptg then
+ path = rptg .. "/" .. path
+ end
+ rp = rp.__p__
+ end
+ return { rootid, "/" .. path, text }
+ end
+ end
+
local function sprint(root)
if not root then
+ --~ rawroot = false
-- quit
else
local tr = type(root)
if tr == "string" then -- can also be result of lpath
+ --~ rawroot = false
capture:match(root)
elseif tr == "table" then
- serialize(root,sprint,nil,nil,specialhandler)
+ rawroot = forceraw and root
+ serialize(root,sprint,nil,nil,specialhandler,forceraw)
end
end
end
@@ -91,13 +180,19 @@ do
function xml.cprint(root) -- content
if not root then
+--~ rawroot = false
-- quit
elseif type(root) == 'string' then
+--~ rawroot = false
capture:match(root)
- elseif root.dt then -- the main one
- serialize(root.dt,sprint,nil,nil,specialhandler)
- else -- probably dt
- serialize(root,sprint,nil,nil,specialhandler)
+ else
+ local rootdt = root.dt
+ rawroot = forceraw and root
+ if rootdt then -- the main one
+ serialize(rootdt,sprint,nil,nil,specialhandler,forceraw)
+ else -- probably dt
+ serialize(root,sprint,nil,nil,specialhandler,forceraw)
+ end
end
end
@@ -113,11 +208,14 @@ do
function lines(root)
if not root then
+--~ rawroot = false
-- quit
elseif type(root) == 'string' then
+--~ rawroot = false
capture:match(root)
elseif next(root) then -- tr == 'table'
- serialize(root, lines)
+ rawroot = forceraw and root
+ serialize(root,lines,forceraw)
end
end
@@ -135,15 +233,15 @@ do
local aftercommand = ""
local capture = (
- newline / function( ) texsprint(tex.texcatcodes,linecommand .. "{}") end +
- verbose / function(s) texsprint(tex.vrbcatcodes,s) end +
- space / function( ) texsprint(tex.texcatcodes,spacecommand .. "{}") end
+ newline / function( ) texsprint(texcatcodes,linecommand,"{}") end +
+ verbose / function(s) texsprint(vrbcatcodes,s) end +
+ space / function( ) texsprint(texcatcodes,spacecommand,"{}") end
)^0
- function toverbatim(str)
- if beforecommand then texsprint(tex.texcatcodes,beforecommand .. "{}") end
+ local function toverbatim(str)
+ if beforecommand then texsprint(texcatcodes,beforecommand,"{}") end
capture:match(str)
- if aftercommand then texsprint(tex.texcatcodes,aftercommand .. "{}") end
+ if aftercommand then texsprint(texcatcodes,aftercommand,"{}") end
end
function lxml.set_verbatim(before,after,obeyedline,obeyedspace)
@@ -158,11 +256,27 @@ do
specialhandler['@cd@'] = nil
end
+ -- local capture = (space^0*newline)^0 * capture * (space+newline)^0 * -1
+
+ local function toverbatim(str)
+ if beforecommand then texsprint(texcatcodes,beforecommand,"{}") end
+ -- todo: add this to capture
+ str = str:gsub("^[ \t]+[\n\r]+","")
+ str = str:gsub("[ \t\n\r]+$","")
+ capture:match(str)
+ if aftercommand then texsprint(texcatcodes,aftercommand,"{}") end
+ end
+
function lxml.verbatim(id,before,after)
local root = get_id(id)
- if before then texsprint(tex.ctxcatcodes,format("%s[%s]",before,root.tg)) end
- serialize(root.dt,toverbatim,nil,nil,nil,true) -- was root
- if after then texsprint(tex.ctxcatcodes,after) end
+ if root then
+ if before then texsprint(ctxcatcodes,format("%s[%s]",before,root.tg)) end
+ -- serialize(root.dt,toverbatim,nil,nil,nil,true) -- was root
+ local t = { }
+ serialize(root.dt,function(s) t[#t+1] = s end,nil,nil,nil,true) -- was root
+ toverbatim(table.concat(t,""))
+ if after then texsprint(ctxcatcodes,after) end
+ end
end
function lxml.inlineverbatim(id)
lxml.verbatim(id,"\\startxmlinlineverbatim","\\stopxmlinlineverbatim")
@@ -192,12 +306,25 @@ do
pihandlers[#pihandlers+1] = function(str)
-- local kind, class, key, value = parser:match(str)
- texsprint(tex.ctxcatcodes,format("\\xmlcontextdirective{%s}{%s}{%s}{%s}",parser:match(str)))
+ if str then
+ local a, b, c, d = parser:match(str)
+ if d then
+ texsprint(ctxcatcodes,format("\\xmlcontextdirective{%s}{%s}{%s}{%s}",a,b,c,d))
+ end
+ end
end
- -- print(contextdirective("context-mathml-directive function reduction yes yes "))
+ -- print(contextdirective("context-mathml-directive function reduction yes "))
-- print(contextdirective("context-mathml-directive function "))
+ function lxml.main(id)
+ serialize(get_id(id),sprint,nil,nil,specialhandler) -- the real root (@rt@)
+ end
+
+ specialhandler['@dt@'] = function()
+ -- nothing
+ end
+
end
local xmlsprint = xml.sprint
@@ -205,35 +332,54 @@ local xmltprint = xml.tprint
-- redefine xml load
-xml.originalload = xml.load
+xml.originalload = xml.originalload or xml.load
+
+local starttiming, stoptiming = statistics.starttiming, statistics.stoptiming
function xml.load(filename)
- input.starttiming(xml)
- local xmldata = xml.convert((filename and input.loadtexfile(texmf.instance,filename)) or "")
- input.stoptiming(xml)
+ lxml.n = lxml.n + 1
+ starttiming(xml)
+ local xmldata = xml.convert((filename and resolvers.loadtexfile(filename)) or "")
+ stoptiming(xml)
return xmldata
end
function lxml.load(id,filename)
+ lxml.n = lxml.n + 1
+ filename = commands.preparedfile(filename)
+ if trace_loading then
+ commands.writestatus("lxml","loading file: %s",filename)
+ end
loaded[id] = xml.load(filename)
return loaded[id], filename
end
+function lxml.register(id,xmltable)
+ lxml.n = lxml.n + 1
+ loaded[id] = xmltable
+ return xmltable
+end
+
function lxml.include(id,pattern,attribute,recurse)
- input.starttiming(xml)
- xml.include(get_id(id),pattern,attribute,recurse,function(name) return (name and input.loadtexfile(texmf.instance,name)) or "" end)
- input.stoptiming(xml)
+ starttiming(xml)
+ xml.include(get_id(id),pattern,attribute,recurse,function(filename)
+ if filename then
+ filename = commands.preparedfile(filename)
+ if trace_loading then
+ commands.writestatus("lxml","including file: %s",filename)
+ end
+ return resolvers.loadtexfile(filename) or ""
+ else
+ return ""
+ end
+ end)
+ stoptiming(xml)
end
function lxml.utfize(id)
xml.utfize(get_id(id))
end
-local xmlfilter, xmlfirst, xmllast, xmlall = xml.filter, xml.first, xml.last, xml.all
-local xmlcollect, xmlcontent, xmlcollect_texts, xmlcollect_tags = xml.collect, xml.content, xml.collect_texts, xml.collect_tags
-local xmlattribute, xmlindex = xml.filters.attribute, xml.filters.index
-local xmlelements = xml.elements
-
function lxml.filter(id,pattern)
xmlsprint(xmlfilter(get_id(id),pattern))
end
@@ -244,20 +390,28 @@ function lxml.last(id,pattern)
xmlsprint(xmllast(get_id(id),pattern))
end
function lxml.all(id,pattern)
-xmltprint(xmlcollect(get_id(id),pattern))
---~ faster, no intermediate table, we need to clean up l-xml
---~ xml.traverse(get_id(id), xml.lpath(pattern), function(r,d,k) xmlsprint(d[k]) return false end)
+ -- xmltprint(xmlcollect(get_id(id),pattern))
+ traverse(get_id(id), lpath(pattern), function(r,d,k)
+ -- to be checked for root::
+ if d then
+ xmlsprint(d[k])
+ else -- new, maybe wrong
+--~ xmlsprint(r)
+ end
+ return false
+ end)
end
-function lxml.nonspace(id,pattern)
+function lxml.nonspace(id,pattern) -- slow, todo loop
xmltprint(xmlcollect(get_id(id),pattern,true))
end
-function lxml.content(id,pattern)
- xmlsprint(xmlcontent(get_id(id),pattern) or "")
-end
-function lxml.strip(id,pattern)
- xml.strip(get_id(id),pattern)
+--~ function lxml.content(id)
+--~ xmlsprint(xmlcontent(get_id(id)) or "")
+--~ end
+
+function lxml.strip(id,pattern,nolines)
+ xml.strip(get_id(id),pattern,nolines)
end
function lxml.text(id,pattern)
@@ -274,26 +428,89 @@ end
function lxml.raw(id,pattern) -- the content, untouched by commands
local c = xmlfilter(get_id(id),pattern)
if c then
- texsprint(concat(c.dt,""))
+ xml.serialize(c.dt,texsprint,nil,nil,nil,true)
end
end
function lxml.snippet(id,i)
- local e = lxml.id(id)
+ local e = get_id(id)
if e then
local edt = e.dt
- xmlsprint((edt and edt[i]) or "")
+ if edt then
+ xmlsprint(edt[i])
+ end
+ end
+end
+
+function xml.element(e,n)
+ if e then
+ local edt = e.dt
+ if edt then
+ if n > 0 then
+ for i=1,#edt do
+ local ei = edt[i]
+ if type(ei) == "table" then
+ if n == 1 then
+ xmlsprint(ei)
+ return
+ else
+ n = n - 1
+ end
+ end
+ end
+ elseif n < 0 then
+ for i=#edt,1,-1 do
+ local ei = edt[i]
+ if type(ei) == "table" then
+ if n == -1 then
+ xmlsprint(ei)
+ return
+ else
+ n = n + 1
+ end
+ end
+ end
+ end
+ end
end
end
-function lxml.stripped(id,pattern)
+function lxml.element(id,n)
+ xml.element(get_id(id),n)
+end
+
+function lxml.stripped(id,pattern,nolines)
local str = xmlcontent(get_id(id),pattern) or ""
- xmlsprint((str:gsub("^%s*(.-)%s*$","%1")))
+ str = str:gsub("^%s*(.-)%s*$","%1")
+ if nolines then
+ str = str:gsub("%s+"," ")
+ end
+ xmlsprint(str)
end
function lxml.flush(id)
- xmlsprint(get_id(id).dt)
+ id = get_id(id)
+ local dt = id and id.dt
+ if dt then
+ xmlsprint(dt)
+ end
end
+
+--~ function lxml.strip(id,flush)
+--~ local dt = get_id(id).dt
+--~ local str = dt[1]
+--~ if type(str) == "string" then
+--~ dt[1] = str:gsub("^ *","")
+--~ end
+--~ str = dt[#dt]
+--~ if type(str) == "string" then
+--~ dt[#dt] = str:gsub(" *$","")
+--~ end
+--~ if flush then
+--~ xmlsprint(dt)
+--~ end
+--~ end
+
function lxml.direct(id)
xmlsprint(get_id(id))
end
@@ -310,11 +527,26 @@ end
function lxml.count(id,pattern)
texsprint(xml.count(get_id(id),pattern) or 0)
end
+function lxml.nofelements(id)
+ local e = get_id(id)
+ local edt = e.dt
+ if edt and type(edt) == "table" then
+ local n = 0
+ for i=1,#edt do
+ if type(edt[i]) == "table" then
+ n = n + 1
+ end
+ end
+ texsprint(n)
+ else
+ texsprint(0)
+ end
+end
function lxml.name(id) -- or remapped name? -> lxml.info, combine
local r = get_id(id)
- local ns = t.rn or r.ns or ""
+ local ns = r.rn or r.ns or ""
if ns ~= "" then
- texsprint(ns .. ":" .. r.tg)
+ texsprint(ns,":",r.tg)
else
texsprint(r.tg)
end
@@ -332,7 +564,7 @@ end
--~ end
function lxml.concatrange(id,what,start,stop,separator,lastseparator) -- test this on mml
- local t = xml.collect_elements(lxml.id(id),what,true) -- ignorespaces
+ local t = xmlcollect_elements(lxml.id(id),what,true) -- ignorespaces
local separator = separator or ""
local lastseparator = lastseparator or separator or ""
start, stop = (start == "" and 1) or tonumber(start) or 1, (stop == "" and #t) or tonumber(stop) or #t
@@ -342,9 +574,9 @@ function lxml.concatrange(id,what,start,stop,separator,lastseparator) -- test th
if i == #t then
-- nothing
elseif i == #t-1 and lastseparator ~= "" then
- texsprint(tex.ctxcatcodes,lastseparator)
+ texsprint(ctxcatcodes,lastseparator)
elseif separator ~= "" then
- texsprint(tex.ctxcatcodes,separator)
+ texsprint(ctxcatcodes,separator)
end
end
end
@@ -372,7 +604,7 @@ function xml.command(root, command)
-- setup
local n = #myself + 1
myself[n] = root
- texsprint(tex.ctxcatcodes,format("\\xmlsetup{%i}{%s}",n,command))
+ texsprint(ctxcatcodes,format("\\xmlsetup{%i}{%s}",n,command))
elseif tc == "function" then
-- function
command(root)
@@ -392,29 +624,28 @@ function lxml.setaction(id,pattern,action)
end
end
-lxml.trace_setups = false
-
function lxml.setsetup(id,pattern,setup)
- local trace = lxml.trace_setups
if not setup or setup == "" or setup == "*" or setup == "-" or setup == "+" then
for rt, dt, dk in xmlelements(get_id(id),pattern) do
local dtdk = dt and dt[dk] or rt
local ns, tg = dtdk.rn or dtdk.ns, dtdk.tg
- local command = (ns == "" and tg) or (ns .. ":" .. tg)
- if setup == "-" then
- dtdk.command = false
- if trace then
- texio.write_nl(format("lpath matched -> %s -> skipped", command))
- end
- elseif setup == "+" then
- dtdk.command = true
- if trace then
- texio.write_nl(format("lpath matched -> %s -> text", command))
- end
- else
- dtdk.command = command
- if trace then
- texio.write_nl(format("lpath matched -> %s -> %s", command, command))
+ if tg then -- to be sure
+ local command = (ns == "" and tg) or (ns .. ":" .. tg)
+ if setup == "-" then
+ dtdk.command = false
+ if trace then
+ logs.report("lxml","lpath matched -> %s -> skipped", command)
+ end
+ elseif setup == "+" then
+ dtdk.command = true
+ if trace_setups then
+ logs.report("lxml","lpath matched -> %s -> text", command)
+ end
+ else
+ dtdk.command = command
+ if trace_setups then
+ logs.report("lxml","lpath matched -> %s -> %s", command, command)
+ end
end
end
end
@@ -426,46 +657,46 @@ function lxml.setsetup(id,pattern,setup)
local ns, tg = dtdk.rn or dtdk.ns, dtdk.tg
if b == "-" then
dtdk.command = false
- if trace then
+ if trace_setups then
if ns == "" then
- texio.write_nl(format("lpath matched -> %s -> skipped", tg))
+ logs.report("lxml","lpath matched -> %s -> skipped", tg)
else
- texio.write_nl(format("lpath matched -> %s:%s -> skipped", ns, tg))
+ logs.report("lxml","lpath matched -> %s:%s -> skipped", ns, tg)
end
end
elseif b == "+" then
dtdk.command = true
- if trace then
+ if trace_setups then
if ns == "" then
- texio.write_nl(format("lpath matched -> %s -> text", tg))
+ logs.report("lxml","lpath matched -> %s -> text", tg)
else
- texio.write_nl(format("lpath matched -> %s:%s -> text", ns, tg))
+ logs.report("lxml","lpath matched -> %s:%s -> text", ns, tg)
end
end
else
dtdk.command = a .. tg
- if trace then
+ if trace_setups then
if ns == "" then
- texio.write_nl(format("lpath matched -> %s -> %s", tg, dtdk.command))
+ logs.report("lxml","lpath matched -> %s -> %s", tg, dtdk.command)
else
- texio.write_nl(format("lpath matched -> %s:%s -> %s", ns, tg, dtdk.command))
+ logs.report("lxml","lpath matched -> %s:%s -> %s", ns, tg, dtdk.command)
end
end
end
end
else
- if trace then
- texio.write_nl(format("lpath pattern -> %s -> %s", pattern, setup))
+ if trace_setups then
+ logs.report("lxml","lpath pattern -> %s -> %s", pattern, setup)
end
for rt, dt, dk in xmlelements(get_id(id),pattern) do
local dtdk = (dt and dt[dk]) or rt
dtdk.command = setup
- if trace then
+ if trace_setups then
local ns, tg = dtdk.rn or dtdk.ns, dtdk.tg
if ns == "" then
- texio.write_nl(format("lpath matched -> %s -> %s", tg, setup))
+ logs.report("lxml","lpath matched -> %s -> %s", tg, setup)
else
- texio.write_nl(format("lpath matched -> %s:%s -> %s", ns, tg, setup))
+ logs.report("lxml","lpath matched -> %s:%s -> %s", ns, tg, setup)
end
end
end
@@ -482,7 +713,7 @@ function lxml.idx(id,pattern,i) -- hm, hashed, needed?
r.patterns = rp
end
if not rp[pattern] then
- rp[pattern] = xml.collect_elements(r,pattern) -- dd, rr
+ rp[pattern] = xmlcollect_elements(r,pattern) -- dd, rr
end
local rpi = rp[pattern] and rp[pattern][i]
if rpi then
@@ -502,124 +733,118 @@ function lxml.info(id)
texsprint(tg)
end
-do
-
- local traverse = xml.traverse
- local lpath = xml.lpath
- local function command(root,pattern,cmd) -- met zonder ''
- cmd = cmd:gsub("^([\'\"])(.-)%1$", "%2")
- traverse(root, lpath(pattern), function(r,d,k)
- -- this can become pretty large
- local m = (d and d[k]) or r -- brrr this r, maybe away
-if type(m) == "table" then -- probbaly a bug
+local function command(root,pattern,cmd) -- met zonder ''
+ cmd = cmd:gsub("^([\'\"])(.-)%1$", "%2")
+ traverse(root, lpath(pattern), function(r,d,k)
+ -- this can become pretty large
+ local m = (d and d[k]) or r -- brrr this r, maybe away
+ if type(m) == "table" then -- probably a bug
local n = #myself + 1
myself[n] = m
- texsprint(tex.ctxcatcodes,format("\\xmlsetup{%s}{%s}",n,cmd))
+ texsprint(ctxcatcodes,format("\\xmlsetup{%s}{%s}",n,cmd))
+ end
+ end)
end
- end)
- end
- xml.filters.command = command
+xml.filters.command = command
- function lxml.command(id,pattern,cmd)
- command(get_id(id),pattern,cmd)
- end
+function lxml.command(id,pattern,cmd)
+ command(get_id(id),pattern,cmd)
+end
+local function dofunction(root,pattern,fnc)
+ traverse(root, lpath(pattern), xml.functions[fnc]) -- r, d, t
end
-do
+xml.filters["function"] = dofunction
+
+--~ <?xml version="1.0" standalone="yes"?>
+--~ <!-- demo.cdx -->
+--~ <directives>
+--~ <!--
+--~ <directive attribute='id' value="100" setup="cdx:100"/>
+--~ <directive attribute='id' value="101" setup="cdx:101"/>
+--~ -->
+--~ <!--
+--~ <directive attribute='cdx' value="colors" element="cals:table" setup="cdx:cals:table:colors"/>
+--~ <directive attribute='cdx' value="vertical" element="cals:table" setup="cdx:cals:table:vertical"/>
+--~ <directive attribute='cdx' value="noframe" element="cals:table" setup="cdx:cals:table:noframe"/>
+--~ -->
+--~ <directive attribute='cdx' value="*" element="cals:table" setup="cdx:cals:table:*"/>
+--~ </directives>
+
+lxml.directives = { }
+
+local data = {
+ setup = { },
+ before = { },
+ after = { }
+}
- --~ <?xml version="1.0" standalone="yes"?>
- --~ <!-- demo.cdx -->
- --~ <directives>
- --~ <!--
- --~ <directive attribute='id' value="100" setup="cdx:100"/>
- --~ <directive attribute='id' value="101" setup="cdx:101"/>
- --~ -->
- --~ <!--
- --~ <directive attribute='cdx' value="colors" element="cals:table" setup="cdx:cals:table:colors"/>
- --~ <directive attribute='cdx' value="vertical" element="cals:table" setup="cdx:cals:table:vertical"/>
- --~ <directive attribute='cdx' value="noframe" element="cals:table" setup="cdx:cals:table:noframe"/>
- --~ -->
- --~ <directive attribute='cdx' value="*" element="cals:table" setup="cdx:cals:table:*"/>
- --~ </directives>
-
- lxml.directives = { }
-
- local data = {
- setup = { },
- before = { },
- after = { }
- }
-
- function lxml.directives.load(filename)
- if texmf then
- local fullname = input.find_file(texmf.instance,filename) or ""
- if fullname ~= "" then
- filename = fullname
- end
- end
- local root = xml.load(filename)
- for r, d, k in xmlelements(root,"directive") do
- local dk = d[k]
- local at = dk.at
- local attribute, value, element = at.attribute or "", at.value or "", at.element or '*'
- local setup, before, after = at.setup or "", at.before or "", at.after or ""
- if attribute ~= "" and value ~= "" then
- local key = format("%s::%s::%s",element,attribute,value)
- local t = data[key] or { }
- if setup ~= "" then t.setup = setup end
- if before ~= "" then t.before = before end
- if after ~= "" then t.after = after end
- data[key] = t
- end
+function lxml.directives.load(filename)
+ local fullname = resolvers.find_file(filename) or ""
+ if fullname ~= "" then
+ filename = fullname
+ end
+ local root = xml.load(filename)
+ for r, d, k in xmlelements(root,"directive") do
+ local dk = d[k]
+ local at = dk.at
+ local attribute, value, element = at.attribute or "", at.value or "", at.element or '*'
+ local setup, before, after = at.setup or "", at.before or "", at.after or ""
+ if attribute ~= "" and value ~= "" then
+ local key = format("%s::%s::%s",element,attribute,value)
+ local t = data[key] or { }
+ if setup ~= "" then t.setup = setup end
+ if before ~= "" then t.before = before end
+ if after ~= "" then t.after = after end
+ data[key] = t
end
end
+end
- function lxml.directives.setup(root,attribute,element)
- lxml.directives.handle_setup('setup',root,attribute,element)
- end
- function lxml.directives.before(root,attribute,element)
- lxml.directives.handle_setup('before',root,attribute,element)
- end
- function lxml.directives.after(root,attribute,element)
- lxml.directives.handle_setup('after',root,attribute,element)
- end
+function lxml.directives.setup(root,attribute,element)
+ lxml.directives.handle_setup('setup',root,attribute,element)
+end
+function lxml.directives.before(root,attribute,element)
+ lxml.directives.handle_setup('before',root,attribute,element)
+end
+function lxml.directives.after(root,attribute,element)
+ lxml.directives.handle_setup('after',root,attribute,element)
+end
- function lxml.directives.handle_setup(category,root,attribute,element)
- root = get_id(root)
- attribute = attribute
- if attribute then
- local value = root.at[attribute]
- if value then
- if not element then
- local ns, tg = root.rn or root.ns, root.tg
- if ns == "" then
- element = tg
- else
- element = ns .. ':' .. tg
- end
+function lxml.directives.handle_setup(category,root,attribute,element)
+ root = get_id(root)
+ attribute = attribute
+ if attribute then
+ local value = root.at[attribute]
+ if value then
+ if not element then
+ local ns, tg = root.rn or root.ns, root.tg
+ if ns == "" then
+ element = tg
+ else
+ element = ns .. ':' .. tg
end
- local setup = data[format("%s::%s::%s",element,attribute,value)]
+ end
+ local setup = data[format("%s::%s::%s",element,attribute,value)]
+ if setup then
+ setup = setup[category]
+ end
+ if setup then
+ texsprint(ctxcatcodes,format("\\directsetup{%s}",setup))
+ else
+ setup = data[format("%s::%s::*",element,attribute)]
if setup then
setup = setup[category]
end
if setup then
- texsprint(tex.ctxcatcodes,format("\\directsetup{%s}",setup))
- else
- setup = data[format("%s::%s::*",element,attribute)]
- if setup then
- setup = setup[category]
- end
- if setup then
- texsprint(tex.ctxcatcodes,format("\\directsetup{%s}",setup:gsub('%*',value)))
- end
+ texsprint(ctxcatcodes,format("\\directsetup{%s}",setup:gsub('%*',value)))
end
end
end
end
-
end
function xml.getbuffer(name) -- we need to make sure that commands are processed
@@ -633,16 +858,20 @@ function lxml.loadbuffer(id,name)
if not name or name == "" then
name = tex.jobname
end
- input.starttiming(xml)
+ starttiming(xml)
loaded[id] = xml.convert(buffers.collect(name or id,"\n"))
- input.stoptiming(xml)
+ stoptiming(xml)
return loaded[id], name or id
end
function lxml.loaddata(id,str)
- input.starttiming(xml)
+ starttiming(xml)
loaded[id] = xml.convert(str or "")
- input.stoptiming(xml)
+ stoptiming(xml)
+ return loaded[id], id
+end
+
+function lxml.loadregistered(id)
return loaded[id], id
end
@@ -651,141 +880,259 @@ end
lxml.set_verbatim("\\xmlcdatabefore", "\\xmlcdataafter", "\\xmlcdataobeyedline", "\\xmlcdataobeyedspace")
lxml.set_cdata()
-do
-
- local traced = { }
+local traced = { }
- function lxml.trace_text_entities(str)
- return str:gsub("&(.-);",function(s)
- traced[s] = (traced[s] or 0) + 1
- return "["..s.."]"
- end)
- end
+function lxml.trace_text_entities(str)
+ return str:gsub("&(.-);",function(s)
+ traced[s] = (traced[s] or 0) + 1
+ return "["..s.."]"
+ end)
+end
- function lxml.show_text_entities()
- for k,v in ipairs(table.sortedkeys(traced)) do
- local h = v:match("^#x(.-)$")
- if h then
- local d = tonumber(h,16)
- local u = unicode.utf8.char(d)
- texio.write_nl(format("entity: %s / %s / %s / n=%s",h,d,u,traced[v]))
- else
- texio.write_nl(format("entity: %s / n=%s",v,traced[v]))
- end
+function lxml.show_text_entities()
+ for k,v in ipairs(table.sortedkeys(traced)) do
+ local h = v:match("^#x(.-)$")
+ if h then
+ local d = tonumber(h,16)
+ local u = utfchar(d)
+ logs.report("lxml","entity: %s / %s / %s / n=%s",h,d,u,traced[v])
+ else
+ logs.report("lxml","entity: %s / n=%s",v,traced[v])
end
end
-
end
--- yes or no ...
+local error_entity_handler = function(s) return format("[%s]",s) end
+local element_entity_handler = function(s) return format("<ctx:e n='%s'/>",s) end
-do
+function lxml.set_mkii_entityhandler()
+ xml.entity_handler = error_entity_handler
+ xml.set_text_cleanup()
+end
+function lxml.set_mkiv_entityhandler()
+ xml.entity_handler = element_entity_handler
+ xml.set_text_cleanup(xml.resolve_text_entities)
+end
+function lxml.reset_entityhandler()
+ xml.entity_handler = error_entity_handler
+ xml.set_text_cleanup()
+end
- local function with_elements_only(e,handle)
- if e and handle then
- local etg = e.tg
- if etg then
- if e.special and etg ~= "@rt@" then
- if resthandle then
- resthandle(e)
- end
- else
- local edt = e.dt
- if edt then
- for i=1,#edt do
- local e = edt[i]
- if type(e) == "table" then
- handle(e)
- with_elements_only(e,handle)
- end
+local function with_elements_only(e,handle)
+ if e and handle then
+ local etg = e.tg
+ if etg then
+ if e.special and etg ~= "@rt@" then
+ if resthandle then
+ resthandle(e)
+ end
+ else
+ local edt = e.dt
+ if edt then
+ for i=1,#edt do
+ local e = edt[i]
+ if type(e) == "table" then
+ handle(e)
+ with_elements_only(e,handle)
end
end
end
end
end
end
+end
- local function with_elements_only(e,handle,depth)
- if e and handle then
- local edt = e.dt
- if edt then
- depth = depth or 0
- for i=1,#edt do
- local e = edt[i]
- if type(e) == "table" then
- handle(e,depth)
- with_elements_only(e,handle,depth+1)
- end
+ local function with_elements_only(e,handle,depth)
+ if e and handle then
+ local edt = e.dt
+ if edt then
+ depth = depth or 0
+ for i=1,#edt do
+ local e = edt[i]
+ if type(e) == "table" then
+ handle(e,depth)
+ with_elements_only(e,handle,depth+1)
end
end
end
end
+end
- xml.with_elements_only = with_elements_only
+xml.with_elements_only = with_elements_only
- local function to_text(e)
- if e.command == nil then
- local etg = e.tg
- if etg and e.special and etg ~= "@rt@" then
- e.command = false -- i.e. skip
- else
- e.command = true -- i.e. no <self></self>
- end
- end
- end
- local function to_none(e)
- if e.command == nil then
+local function to_text(e)
+ if e.command == nil then
+ local etg = e.tg
+ if etg and e.special and etg ~= "@rt@" then
e.command = false -- i.e. skip
+ else
+ e.command = true -- i.e. no <self></self>
end
end
+end
+local function to_none(e)
+ if e.command == nil then
+ e.command = false -- i.e. skip
+ end
+end
+
+-- can be made faster: just recurse over whole table, todo
- -- can be made faster: just recurse over whole table, todo
+function lxml.set_command_to_text(id)
+ xml.with_elements_only(get_id(id),to_text)
+end
+
+function lxml.set_command_to_none(id)
+ xml.with_elements_only(get_id(id),to_none)
+end
- function lxml.set_command_to_text(id)
- xml.with_elements_only(get_id(id),to_text)
+function lxml.get_command_status(id)
+ local status, stack = {}, {}
+ local function get(e,d)
+ local ns, tg = e.ns, e.tg
+ local name = tg
+ if ns ~= "" then name = ns .. ":" .. tg end
+ stack[d] = name
+ local ec = e.command
+ if ec == true then
+ ec = "system: text"
+ elseif ec == false then
+ ec = "system: skip"
+ elseif ec == nil then
+ ec = "system: not set"
+ elseif type(ec) == "string" then
+ ec = "setup: " .. ec
+ else -- function
+ ec = tostring(ec)
+ end
+ local tag = table.concat(stack," => ",1,d)
+ local s = status[tag]
+ if not s then
+ s = { }
+ status[tag] = s
+ end
+ s[ec] = (s[ec] or 0) + 1
end
+ if id then
+ xml.with_elements_only(get_id(id),get)
+ return status
+ else
+ local t = { }
+ for id, _ in pairs(loaded) do
+ t[id] = lxml.get_command_status(id)
+ end
+ return t
+ end
+end
+
+local setups = { }
- function lxml.set_command_to_none(id)
- xml.with_elements_only(get_id(id),to_none)
+function lxml.installsetup(what,document,setup,where)
+ document = document or "*"
+ local sd = setups[document]
+ if not sd then sd = { } setups[document] = sd end
+ for k=1,#sd do
+ if sd[k] == setup then sd[k] = nil break end
end
+ if what == 1 then
+ if trace_loading then
+ commands.writestatus("lxml","prepending setup %s for %s",setup,document)
+ end
+ insert(sd,1,setup)
+ elseif what == 2 then
+ if trace_loading then
+ commands.writestatus("lxml","appending setup %s for %s",setup,document)
+ end
+ insert(sd,setup)
+ elseif what == 3 then
+ if trace_loading then
+ commands.writestatus("lxml","inserting setup %s for %s before %s",setup,document,where)
+ end
+ table.insert_before_value(sd,setup,where)
+ elseif what == 4 then
+ if trace_loading then
+ commands.writestatus("lxml","inserting setup %s for %s after %s",setup,document,where)
+ end
+ table.insert_after_value(sd,setup,where)
+ end
+end
- function lxml.get_command_status(id)
- local status, stack = {}, {}
- local function get(e,d)
- local ns, tg = e.ns, e.tg
- local name = tg
- if ns ~= "" then name = ns .. ":" .. tg end
- stack[d] = name
- local ec = e.command
- if ec == true then
- ec = "system: text"
- elseif ec == false then
- ec = "system: skip"
- elseif ec == nil then
- ec = "system: not set"
- elseif type(ec) == "string" then
- ec = "setup: " .. ec
- else -- function
- ec = tostring(ec)
- end
- local tag = table.concat(stack," => ",1,d)
- local s = status[tag]
- if not s then
- s = { }
- status[tag] = s
+function lxml.flushsetups(...)
+ local done = { }
+ for _, document in ipairs({...}) do
+ local sd = setups[document]
+ if sd then
+ for k=1,#sd do
+ local v= sd[k]
+ if not done[v] then
+ if trace_loading then
+ commands.writestatus("lxml","applying setup %02i = %s to %s",k,v,document)
+ end
+ texsprint(ctxcatcodes,format("\\directsetup{%s}",v))
+ done[v] = true
+ end
end
- s[ec] = (s[ec] or 0) + 1
+ elseif trace_loading then
+ commands.writestatus("lxml","no setups for %s",document)
end
- if id then
- xml.with_elements_only(get_id(id),get)
- return status
- else
- local t = { }
- for id, _ in pairs(lxml.loaded) do
- t[id] = lxml.get_command_status(id)
+ end
+end
+
+function lxml.resetsetups(document)
+ if trace_loading then
+ commands.writestatus("lxml","resetting all setups for %s",document)
+ end
+ setups[document] = { }
+end
+
+function lxml.removesetup(document,setup)
+ local s = setups[document]
+ if s then
+ for i=1,#s do
+ if s[i] == setup then
+ if trace_loading then
+ commands.writestatus("lxml","removing setup %s for %s",setup,document)
+ end
+ remove(t,i)
+ break
end
- return t
end
end
-
end
+
+local found, isempty = xml.found, xml.isempty
+
+function lxml.doif (id,pattern) commands.doif (found(get_id(id),pattern,false)) end
+function lxml.doifnot (id,pattern) commands.doifnot (found(get_id(id),pattern,false)) end
+function lxml.doifelse (id,pattern) commands.doifelse(found(get_id(id),pattern,false)) end
+
+-- todo: if no second arg or second arg == "" then quick test
+
+function lxml.doiftext (id,pattern) commands.doif (found (get_id(id),pattern,true)) end
+function lxml.doifnottext (id,pattern) commands.doifnot (found (get_id(id),pattern,true)) end
+function lxml.doifelsetext (id,pattern) commands.doifelse(found (get_id(id),pattern,true)) end
+
+-- special case: "*" and "" -> self else lpath lookup
+
+function lxml.doifelseempty(id,pattern) commands.doifelse(isempty(get_id(id),pattern ~= "" and pattern ~= nil)) end -- not yet done, pattern
+
+-- status info
+
+statistics.register("xml load time", function()
+ local n = lxml.n
+ if n > 0 then
+ local stats = xml.statistics()
+ return format("%s seconds, lpath calls: %s, cached calls: %s", statistics.elapsedtime(xml), stats.lpathcalls, stats.lpathcached)
+ else
+ return nil
+ end
+end)
+
+statistics.register("lxml load time", function()
+ local n = #lxml.self
+ if n > 0 then
+ return format("%s seconds preparation, backreferences: %i", statistics.elapsedtime(lxml),n)
+ else
+ return nil
+ end
+end)
diff --git a/Master/texmf-dist/tex/context/base/lxml-ini.mkiv b/Master/texmf-dist/tex/context/base/lxml-ini.mkiv
new file mode 100644
index 00000000000..34a14f9d9f5
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/lxml-ini.mkiv
@@ -0,0 +1,408 @@
+%D \module
+%D [ file=lxml-ini,
+%D version=2007.08.17,
+%D title=\CONTEXT\ \XML\ Support,
+%D subtitle=Initialization,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt XML Support / Initialization}
+
+\registerctxluafile{lxml-tab}{1.001}
+\registerctxluafile{lxml-pth}{1.001}
+\registerctxluafile{lxml-ent}{1.001}
+\registerctxluafile{lxml-mis}{1.001}
+\registerctxluafile{lxml-ini}{1.001}
+
+\unprotect
+
+\def\xmlmain #1{\ctxlua{lxml.main("#1")}}
+\def\xmlall #1#2{\ctxlua{lxml.all("#1","#2")}}
+\def\xmlatt #1#2{\ctxlua{lxml.attribute("#1","/","#2")}}
+\def\xmlattdef #1#2#3{\ctxlua{lxml.attribute("#1","/","#2","#3")}}
+\def\xmlattribute #1#2#3{\ctxlua{lxml.attribute("#1","#2","#3")}}
+\def\xmlattributedef #1#2#3#4{\ctxlua{lxml.attribute("#1","#2","#3","#4")}}
+\def\xmlcommand #1#2#3{\ctxlua{lxml.command("#1","#2","#3")}}
+\def\xmlconcat #1#2#3{\ctxlua{lxml.concat("#1","#2",[[\detokenize{#3}]])}}
+\def\xmlconcatrange#1#2#3#4#5{\ctxlua{lxml.concatrange("#1","#2","#3","#4",[[\detokenize{#5}]])}}
+\def\xmlcount #1#2{\ctxlua{lxml.count("#1","#2")}}
+\def\xmldelete #1#2{\ctxlua{xml.delete(lxml.id("#1"),"#2")}}
+\def\xmldirectives #1{\ctxlua{lxml.directives.setup("#1")}}
+\def\xmldirectivesbefore #1{\ctxlua{lxml.directives.before("#1")}}
+\def\xmldirectivesafter #1{\ctxlua{lxml.directives.after("#1")}}
+\def\xmlfilter #1#2{\ctxlua{lxml.filter("#1",\!!bs#2\!!es)}}
+\def\xmlfirst #1#2{\ctxlua{lxml.first("#1","#2")}}
+\def\xmlflush #1{\ctxlua{lxml.flush("#1")}}
+% \def\xmlcontent #1{\ctxlua{lxml.content("#1")}}
+% \def\xmlstrip #1{\ctxlua{lxml.strip("#1")}}
+% \def\xmlflushstripped #1{\ctxlua{lxml.strip("#1",true)}}
+\def\xmldirect #1{\ctxlua{lxml.direct("#1")}} % in loops, not dt but root
+\def\xmlidx #1#2#3{\ctxlua{lxml.idx("#1","#2",\number#3)}}
+\def\xmlinclude #1#2#3{\ctxlua{lxml.include("#1","#2","#3",true)}}
+\def\xmlindex #1#2#3{\ctxlua{lxml.index("#1","#2",\number#3)}}
+\def\xmlinfo #1{\hbox{\ttxx[\ctxlua{lxml.info("#1")}]}}
+\def\xmlshow #1{\startpacked\ttx\xmlverbatim{#1}\stoppacked}
+\def\xmllast #1#2{\ctxlua{lxml.last("#1","#2")}}
+\def\xmlload #1#2{\ctxlua{lxml.load("#1","#2")}}
+\def\xmlloadbuffer #1#2{\ctxlua{lxml.loadbuffer("#1","#2")}}
+\def\xmlloaddata #1#2{\ctxlua{lxml.loaddata("#1",\!!bs#2\!!es)}}
+\def\xmlloadregistered #1#2{\ctxlua{lxml.loadregistered("#1")}}
+\def\xmlloaddirectives #1{\ctxlua{lxml.directives.load("#1")}}
+\def\xmlname #1{\ctxlua{lxml.name("#1")}}
+\def\xmlnamespace #1{\ctxlua{lxml.namespace("#1")}}
+\def\xmlnonspace #1#2{\ctxlua{lxml.nonspace("#1","#2")}}
+\def\xmlraw #1#2{\ctxlua{lxml.raw("#1","#2")}}
+\def\xmlsnippet #1#2{\ctxlua{lxml.snippet("#1",#2)}}
+\def\xmlelement #1#2{\ctxlua{lxml.element("#1",#2)}}
+\def\xmlnofelements #1{\ctxlua{lxml.nofelements("#1")}}
+\def\xmlregisterns #1#2{\ctxlua{xml.registerns("#1","#2")}} % document
+\def\xmlremapname #1#2#3#4{\ctxlua{xml.remapname(lxml.id("#1"),"#2","#3","#4")}} % element
+\def\xmlremapnamespace #1#2#3{\ctxlua{xml.rename_space(lxml.id("#1"),"#2","#3")}} % document
+\def\xmlchecknamespace #1#2#3{\ctxlua{xml.check_namespace(lxml.id("#1"),"#2","#3")}} % element
+\def\xmlsetfunction #1#2#3{\ctxlua{lxml.setaction("#1","#2",#3)}}
+\def\xmlsetsetup #1#2#3{\ctxlua{lxml.setsetup("#1","#2","#3")}}
+\def\xmlstrip #1#2{\ctxlua{lxml.strip("#1","#2")}}
+\def\xmlstripped #1#2{\ctxlua{lxml.stripped("#1","#2")}}
+\def\xmlstripnolines #1#2{\ctxlua{lxml.strip("#1","#2",true)}}
+\def\xmlstrippednolines #1#2{\ctxlua{lxml.stripped("#1","#2",true)}}
+\def\xmltag #1{\ctxlua{lxml.tag("#1")}}
+\def\xmltext #1#2{\ctxlua{lxml.text("#1","#2")}}
+\def\xmltags #1#2{\ctxlua{lxml.tags("#1","#2")}}
+\def\xmlutfize #1{\ctxlua{lxml.utfize("#1")}}
+\def\xmlverbatim #1{\ctxlua{lxml.verbatim("#1")}}
+\def\xmldisplayverbatim #1{\ctxlua{lxml.displayverbatim("#1")}}
+\def\xmlinlineverbatim #1{\ctxlua{lxml.inlineverbatim("#1")}}
+
+%def\xmldoifelse #1#2{\ctxlua{cs.testcase(xml.found(lxml.id("#1"),"#2",false))}}
+%def\xmldoifelsetext #1#2{\ctxlua{cs.testcase(xml.found(lxml.id("#1"),"#2",true ))}}
+
+% kind of special:
+
+\def\xmlstartraw{\ctxlua{lxml.startraw()}}
+\def\xmlstopraw {\ctxlua{lxml.stopraw()}}
+
+% todo: \xmldoifelseattribute
+
+\def\xmldoif #1#2{\ctxlua{lxml.doif("#1","#2")}}
+\def\xmldoifnot #1#2{\ctxlua{lxml.doifnot("#1","#2")}}
+\def\xmldoifelse #1#2{\ctxlua{lxml.doifelse("#1","#2")}}
+\def\xmldoiftext #1#2{\ctxlua{lxml.doiftext("#1","#2")}}
+\def\xmldoifnottext #1#2{\ctxlua{lxml.doifnottext("#1","#2")}}
+\def\xmldoifelsetext #1#2{\ctxlua{lxml.doifelsetext("#1","#2")}}
+\def\xmldoifelseempty #1#2{\ctxlua{lxml.doifelseempty("#1","#2")}} % #2, "*" or "" == self not yet implemented
+\def\xmldoifelseselfempty #1{\ctxlua{lxml.doifelseempty("#1")}}
+
+\def\xmldefaulttotext #1{\ifcase\xmlprocessingmode\or\or \ctxlua{lxml.set_command_to_text("#1")}\fi}
+\def\xmldefaulttonone #1{\ifcase\xmlprocessingmode\or\or\or\ctxlua{lxml.set_command_to_none("#1")}\fi}
+
+% \startxmlsetups xml:include
+% \xmlinclude{main}{include}{filename|href}
+% \stopxmlsetups
+%
+% \xmlprependsetup{xml:include}
+
+\let\xmlgrab\xmlsetsetup
+
+\def\xmlsetup#1#2% % we pass the reference so that we have access to the frozen number
+ {\def\xmlself{#1}% % by using #1 inside a setup; maybe self becomes obsolete
+ \setupwithargument{#2}{#1}}
+
+\newtoks \registeredxmlsetups
+
+% todo: 1:xml:whatever alwas before 3:xml:something
+
+\def\xmlprependsetup #1{\ctxlua{lxml.installsetup(1,"*","#1")}}
+\def\xmlappendsetup #1{\ctxlua{lxml.installsetup(2,"*","#1")}}
+\def\xmlbeforesetup #1#2{\ctxlua{lxml.installsetup(3,"*","#1","#2"))}}
+\def\xmlaftersetup #1#2{\ctxlua{lxml.installsetup(4,"*","#1","#2"))}}
+
+\def\xmlprependdocumentsetup #1#2{\ctxlua{lxml.installsetup(1,"#1","#2")}}
+\def\xmlappenddocumentsetup #1#2{\ctxlua{lxml.installsetup(2,"#1","#2")}}
+\def\xmlbeforedocumentsetup#1#2#3{\ctxlua{lxml.installsetup(3,"#1","#2","#3"))}}
+\def\xmlafterdocumentsetup #1#2#3{\ctxlua{lxml.installsetup(4,"#1","#2","#3"))}}
+
+\def\xmlremovesetup #1{\ctxlua{lxml.removesetup("*","#1")}}
+\def\xmlremovedocumentsetup #1#2{\ctxlua{lxml.removesetup("#1","#2")}}
+
+\def\xmlflushdocumentsetups #1{\ctxlua{lxml.flushsetups("*","#1")}}
+\def\xmlresetdocumentsetups #1{\ctxlua{lxml.resetsetups("#1")}}
+
+\let\xmlregistersetup \xmlappendsetup
+\let\xmlregisterdocumentsetup\xmlappenddocumentsetup
+
+\def\xmldocument{main}
+
+\def\xmlregisteredsetups
+ {\xmlstarttiming
+ \xmlflushsetups
+ \xmldefaulttotext\xmldocument % after include
+ \xmlstoptiming}
+
+\def\xmlregistereddocumentsetups#1%
+ {\xmlstarttiming
+ % todo: test for duplicates !
+ \xmlflushdocumentsetups{#1}%
+ \xmldefaulttotext{#1}% after include
+ \xmlstoptiming}
+
+\def\xmlstarttiming{\ctxlua{statistics.starttiming(lxml)}}
+\def\xmlstoptiming {\ctxlua{statistics.stoptiming (lxml)}}
+
+\def\doxmlprocess#1#2#3#4%
+ {\begingroup
+ \edef\xmldocument{#2}% #2 can be \xmldocument and set as such
+ #1{#2}{#3}%
+ \ifcase\xmlprocessingmode
+ \enableXML
+ \else
+ \setcatcodetable\notcatcodes
+ \fi
+ \doifelsenothing{#4}
+ {\directsetup{xml:process}}
+ {\directsetup{#4}}%
+ \endgroup}
+
+\def\xmlprocessfile {\doxmlprocess\xmlload}
+\def\xmlprocessdata {\doxmlprocess\xmlloaddata}
+\def\xmlprocessbuffer {\doxmlprocess\xmlloadbuffer}
+\def\xmlprocessregistered{\doxmlprocess\xmlloadregistered}
+\let\xmlprocess \xmlprocessfile
+
+% beware: \xmlmain takes the real root, so also processing
+% instructions preceding the root element; well, in some
+% sense that is the root
+
+\startsetups xml:process
+ \xmlregistereddocumentsetups\xmldocument
+ \xmlmain\xmldocument
+\stopsetups
+
+\long\def\xmlloop#1#2#3%
+ {\def\xmli##1##2{\xmlidx{#1}{#2/##1}{##2}}%
+ \dorecurse{\xmlcount{#1}{#2}}{#3}}
+
+\long\def\xmlconnect#1#2#3% inefficient
+ {\scratchcounter\xmlcount{#1}{#2}\relax
+ \ifcase\scratchcounter \or
+ \xmlall{#1}{#2}%
+ \else
+ \dorecurse \scratchcounter {
+ \ifnum\recurselevel>\plusone#3\fi
+ \xmlidx{#1}{#2}{\recurselevel}
+ }
+ \fi}
+
+\def\xmlcdataobeyedline {\obeyedline}
+\def\xmlcdataobeyedspace{\strut\obeyedspace}
+\def\xmlcdatabefore {\bgroup\tt}
+\def\xmlcdataafter {\egroup}
+
+% verbatim (dodo:pre/post whitespace, maybe splot verbatim and
+% cdata commands), experimental:
+%
+% \xmlsetfunction{main}{verbatim}{lxml.displayverbatim}
+% \xmlsetfunction{main}{verb} {lxml.inlineverbatim}
+
+% \def\startxmldisplayverbatim[#1]{}
+% \def\stopxmldisplayverbatim {}
+% \def\startxmlinlineverbatim [#1]{}
+% \def\stopxmlinlineverbatim {}
+
+% we use an xml: namespace so one has to define a suitable verbatim, say
+%
+% \definetyping[xml:verbatim][typing]
+%
+% this is experimental!
+
+\def\startxmldisplayverbatim[#1]%
+ {\startpacked % \begingroup
+ \let\currenttypingclass\??tp
+ \edef\currenttyping{xml:#1}%
+ \def\stopxmldisplayverbatim
+ {\endofverbatimlines
+ \stoppacked} % \endgroup
+ \mkinitializeverbatim
+ \beginofverbatimlines}
+
+\def\startxmlinlineverbatim[#1]%
+ {\begingroup
+ \let\currenttypingclass\??ty
+ \edef\currenttyping{xml:#1}%
+ \let\stopxmldisplayverbatim\endgroup
+ \mkinitializeverbatim}
+
+% will move but is developed for xml
+
+\newtoks \collectingtoks
+
+\def\startcollect#1\stopcollect
+ {\collectingtoks\@EA{\the\collectingtoks#1}}
+
+\def\startexpandedcollect#1\stopexpandedcollect
+ {\expanded{\collectingtoks{\the\collectingtoks#1}}}
+
+\def\startcollecting{\collectingtoks\emptytoks}
+\def\stopcollecting {\the\collectingtoks}
+
+\def\inlinemessage #1{\dontleavehmode{\tttf#1}}
+\def\displaymessage#1{\blank\inlinemessage{#1}\blank}
+
+\def\xmltraceentities
+ {\ctxlua{xml.set_text_cleanup(lxml.trace_text_entities)}%
+ \appendtoks\ctxlua{lxml.show_text_entities()}\to\everygoodbye}
+
+% processing instructions
+
+\def\xmlcontextdirective#1% kind class key value
+ {\executeifdefined{xml#1directive}\gobblethreearguments}
+
+% setting up xml:
+%
+% \setupxml[\c!method=mkii] % mixed mkiv and mkii
+% \setupxml[\c!method=mkiv,\c!default=] % mkiv only
+% \setupxml[\c!method=mkiv,\c!default=\v!none] % mkiv only, undefined -> hidden
+% \setupxml[\c!method=mkiv,\c!default=\v!text] % mkiv only, undefined -> text
+
+% \def\xmlctxdirective#1#2#3{\doif{#1}{clue}{\doif{#2}{page}}{\page[#3]}}
+
+\chardef\xmlprocessingmode=0 % 0=mixed, 1=mkivonly, 2=mkivonly-default-text, 3=mkivonly-default-none
+
+% \setupxml[method=mkiv,strip=yes,entities=yes,default=text]
+
+\newtoks\everysetupxml
+
+\def\setupxml[#1]{\getparameters[\??xm][#1]\the\everysetupxml}
+
+\def\c!entities{entities} % to be internationalized
+\def\s!mkiv {mkiv}
+\def\s!mkii {mkii}
+
+% entities
+
+\newif\ifautoXMLentities
+
+\def\xmlkeepentities{\ctxlua{lxml.reset_entityhandler()}}
+\def\xmlmkiientities{\ctxlua{lxml.set_mkii_entityhandler()}\autoXMLentitiestrue}
+\def\xmlmkiventities{\ctxlua{lxml.set_mkiv_entityhandler()}}
+
+\let\xmlresolveentities\xmlmkiventities % will become \xmlmkiventities
+
+\letvalue{\??xm:1:\s!mkii }\zerocount
+\letvalue{\??xm:1:\s!mkiv }\plusone
+
+\letvalue{\??xm:2:\v!none }\plusone
+\letvalue{\??xm:2:\v!text }\plustwo
+\letvalue{\??xm:2:\v!hidden}\plusthree
+
+\letvalue{\??xm:ii:\v!yes }\xmlresolveentities
+\letvalue{\??xm:ii:\v!no }\xmlkeepentities
+\letvalue{\??xm:ii:\s!mkii}\xmlmkiientities
+\letvalue{\??xm:ii:\s!mkiv}\xmlmkiventities
+
+\letvalue{\??xm:iv:\v!yes }\xmlresolveentities
+\letvalue{\??xm:iv:\v!no }\xmlkeepentities
+\letvalue{\??xm:iv:\s!mkii}\xmlmkiventities
+\letvalue{\??xm:iv:\s!mkiv}\xmlmkiventities
+
+\appendtoks
+ \chardef\xmlprocessingmode\executeifdefined{\??xm:1:\@@xmmethod}\zerocount
+ \ifcase\xmlprocessingmode
+ % mkii, permits both methods
+ \executeifdefined{\??xm:ii:\@@xmentities}\xmlkeepentities
+ \or
+ % mkiv, mkiv exclusively
+ \chardef\xmlprocessingmode\executeifdefined{\??xm:2:\@@xmdefault}\plusone
+ \executeifdefined{\??xm:iv:\@@xmentities}\xmlresolveentities
+ \else
+ % unset
+ \fi
+ \ifcase\xmlprocessingmode
+ \ctxlua{characters.setmkiientities()}%
+ \else
+ \ctxlua{characters.setmkiventities()}%
+ \fi
+ \doifelse\@@xmcompress\v!yes % this key may change, maybe compress=yes|no
+ {\ctxlua{xml.strip_cm_and_dt=true}}
+ {\ctxlua{xml.strip_cm_and_dt=false}}%
+\to \everysetupxml
+
+\def\xmlinitialize{\the\everysetupxml}
+
+\newcount\charactersactiveoffset \charactersactiveoffset="10000
+
+\startextendcatcodetable\ctxcatcodes
+ \catcode\numexpr\charactersactiveoffset+`<\relax=13
+ \catcode\numexpr\charactersactiveoffset+`&\relax=13
+ \catcode\numexpr\charactersactiveoffset+`>\relax=13
+\stopextendcatcodetable
+\startextendcatcodetable\xmlcatcodes
+ \catcode\numexpr\charactersactiveoffset+`<\relax=13
+ \catcode\numexpr\charactersactiveoffset+`&\relax=13
+ \catcode\numexpr\charactersactiveoffset+`>\relax=13
+\stopextendcatcodetable
+
+\ctxlua { % entities are remembered in the format
+ characters.remapentity("<",characters.active_offset + utf.byte("<"))
+ characters.remapentity("&",characters.active_offset + utf.byte("&"))
+ characters.remapentity(">",characters.active_offset + utf.byte(">"))
+}
+
+\setupxml
+ [\c!method=mkii, % mixed mode
+ \c!default=\v!hidden, % ignore elements that are not defined
+ \c!compress=\v!no, % strip comment
+ \c!entities=\v!yes] % replace entities
+
+% \defineXMLenvironment[y]{(}{)}
+%
+% \startxmlsetups x
+% /\xmlflush{#1}/
+% \stopxmlsetups
+%
+% \startxmlsetups xx
+% \xmlsetsetup{main}{x}{*}
+% \stopxmlsetups
+%
+% \xmlregistersetup{xx}
+%
+% \startbuffer
+% <x>a &lt;&amp;&gt;<y>{b}</y> c</x>
+% \stopbuffer
+%
+% mkii: [\processXMLbuffer]\quad mkiv: [\xmlprocessbuffer{main}{}{}]
+
+% some mkii commands, but mkiv-ified
+
+\def\xmlmapvalue#1#2#3{\setvalue{\??xm:v:#1:#2}{#3}} % keep #3 to grab spaces
+\def\xmlvalue #1#2#3{\executeifdefined{\??xm:v:#1:#2}{#3}}
+
+\let\xmlmapval\xmlmapvalue
+\let\xmlval \xmlvalue
+
+% brrrr, give this at the top of a style that needs to stub mkiv loading
+
+\def\remapXMLtoMKIV
+ {\ifx\xmldocument\undefined\def\xmldocument{main}\fi
+ \def\processXMLfile ##1{\xmlprocessfile \xmldocument{##1}{}}%
+ \def\processXMLfilegrouped ##1{\xmlprocessfile \xmldocument{##1}{}}% maybe still grouped?
+ \def\processXMLbuffer {\dosingleempty\doprocessXMLbuffer}%
+ \def\doprocessXMLbuffer [##1]{\xmlprocessbuffer\xmldocument{##1}{}}%
+ \def\XMLdata ##1{\xmlprocessdata \xmldocument{##1}{}}%
+ \def\startXMLdata##1\stopXMLdata{\xmlprocessdata \xmldocument{##1}{}}}
+
+\let\normalprocessXMLfilegrouped\processXMLfilegrouped
+
+\def\processXMLfileMKIV % one-shot, will become obsolete, personal hack
+ {\dosingleempty\doprocessXMLfileMKIV}
+
+\def\doprocessXMLfileMKIV[#1]%
+ {\def\processXMLfilegrouped##1%
+ {\let\processXMLfilegrouped\normalprocessXMLfilegrouped
+ \doifelsenothing{#1}{\xmlprocess{main}{##1}{}}{\xmlprocess{#1}{##1}{}}}}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/lxml-ini.tex b/Master/texmf-dist/tex/context/base/lxml-ini.tex
deleted file mode 100644
index c6cd60b8929..00000000000
--- a/Master/texmf-dist/tex/context/base/lxml-ini.tex
+++ /dev/null
@@ -1,304 +0,0 @@
-%D \module
-%D [ file=lxml-ini,
-%D version=2007.08.17,
-%D title=\CONTEXT\ \LUA\ based \XML\ Support,
-%D subtitle=Initialization,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{Context L-XML Macros (initialization)}
-
-\registerctxluafile{lxml-ini}{1.001}
-
-\unprotect
-
-\def\xmlall #1#2{\ctxlua{lxml.all("#1","#2")}}
-\def\xmlatt #1#2{\ctxlua{lxml.attribute("#1","/","#2")}}
-\def\xmlattdef #1#2#3{\ctxlua{lxml.attribute("#1","/","#2","#3")}}
-\def\xmlattribute #1#2#3{\ctxlua{lxml.attribute("#1","#2","#3")}}
-\def\xmlattributedef #1#2#3#4{\ctxlua{lxml.attribute("#1","#2","#3","#4")}}
-\def\xmlchecknamespace #1#2#3{\ctxlua{xml.check_namespace(lxml.id("#1"),"#2","#3")}} % element
-\def\xmlcommand #1#2#3{\ctxlua{lxml.command("#1","#2","#3")}}
-\def\xmlconcat #1#2#3{\ctxlua{lxml.concat("#1","#2",[[\detokenize{#3}]])}}
-\def\xmlconcatrange#1#2#3#4#5{\ctxlua{lxml.concatrange("#1","#2","#3","#4",[[\detokenize{#5}]])}}
-\def\xmlcontent #1#2{\ctxlua{lxml.content("#1","#2")}}
-\def\xmlcount #1#2{\ctxlua{lxml.count("#1","#2")}}
-\def\xmldelete #1#2{\ctxlua{xml.delete(lxml.id("#1"),"#2")}}
-\def\xmldirectives #1{\ctxlua{lxml.directives.setups("#1")}}
-\def\xmlfilter #1#2{\ctxlua{lxml.filter("#1","#2")}}
-\def\xmlfirst #1#2{\ctxlua{lxml.first("#1","#2")}}
-\def\xmlflush #1{\ctxlua{lxml.flush("#1")}}
-\def\xmldirect #1{\ctxlua{lxml.direct("#1")}} % in loops, not dt but root
-\def\xmlidx #1#2#3{\ctxlua{lxml.idx("#1","#2",\number#3)}}
-\def\xmlinclude #1#2#3{\ctxlua{lxml.include("#1","#2","#3",true)}}
-\def\xmlindex #1#2#3{\ctxlua{lxml.index("#1","#2",\number#3)}}
-\def\xmlinfo #1{\hbox{\ttxx[\ctxlua{lxml.info("#1")}]}}
-\def\xmlshow #1{\startpacked\ttx\xmlverbatim{#1}\stoppacked}
-\def\xmllast #1#2{\ctxlua{lxml.last("#1","#2")}}
-\def\xmlload #1#2{\ctxlua{lxml.load("#1","#2")}}
-\def\xmlloadbuffer #1#2{\ctxlua{lxml.loadbuffer("#1","#2")}}
-\def\xmlloaddata #1#2{\ctxlua{lxml.loaddata("#1",\!!bs#2\!!es)}}
-\def\xmlloaddirectives #1{\ctxlua{lxml.directives.load("#1")}}
-\def\xmlname #1{\ctxlua{lxml.name("#1")}}
-\def\xmlnamespace #1{\ctxlua{lxml.namespace("#1")}}
-\def\xmlnonspace #1#2{\ctxlua{lxml.nonspace("#1","#2")}}
-\def\xmlraw #1#2{\ctxlua{lxml.raw("#1","#2")}}
-\def\xmlsnippet #1#2{\ctxlua{lxml.snippet("#1",#2)}}
-\def\xmlregisterns #1#2{\ctxlua{xml.registerns("#1","#2")}} % document
-\def\xmlremapname #1#2#3#4{\ctxlua{xml.remapname(lxml.id("#1"),"#2","#3","#4")}} % element
-\def\xmlremapnamespace #1#2#3{\ctxlua{xml.rename_space(lxml.id("#1"),"#2","#3")}} % document
-\def\xmlsetfunction #1#2#3{\ctxlua{lxml.setaction("#1","#2",#3)}}
-\def\xmlsetsetup #1#2#3{\ctxlua{lxml.setsetup("#1","#2","#3")}}
-\def\xmlstrip #1#2{\ctxlua{lxml.strip("#1","#2")}}
-\def\xmlstripped #1#2{\ctxlua{lxml.stripped("#1","#2")}}
-\def\xmltag #1{\ctxlua{lxml.tag("#1")}}
-\def\xmltext #1#2{\ctxlua{lxml.text("#1","#2")}}
-\def\xmltags #1#2{\ctxlua{lxml.tags("#1","#2")}}
-\def\xmlutfize #1{\ctxlua{lxml.utfize("#1")}}
-\def\xmlverbatim #1{\ctxlua{lxml.verbatim("#1")}}
-
-%def\xmldoifelse #1#2{\ctxlua{cs.testcase(xml.found(lxml.id("#1"),"#2",false))}}
-%def\xmldoifelsetext #1#2{\ctxlua{cs.testcase(xml.found(lxml.id("#1"),"#2",true ))}}
-
-% todo: \xmldoifelseattribute
-
-\def\xmldoifelse #1#2{\ctxlua{commands.doifelse(xml.found(lxml.id("#1"),"#2",false))}}
-\def\xmldoifelsetext #1#2{\ctxlua{commands.doifelse(xml.found(lxml.id("#1"),"#2",true ))}}
-\def\xmldoif #1#2{\ctxlua{commands.doif (xml.found(lxml.id("#1"),"#2",false))}}
-\def\xmldoiftext #1#2{\ctxlua{commands.doif (xml.found(lxml.id("#1"),"#2",true ))}}
-\def\xmldoifnot #1#2{\ctxlua{commands.doifnot (xml.found(lxml.id("#1"),"#2",false))}}
-\def\xmldoifnottext #1#2{\ctxlua{commands.doifnot (xml.found(lxml.id("#1"),"#2",true ))}}
-
-\def\xmldefaulttotext #1{\ifcase\xmlprocessingmode\or\or \ctxlua{lxml.set_command_to_text("#1")}\fi}
-\def\xmldefaulttonone #1{\ifcase\xmlprocessingmode\or\or\or\ctxlua{lxml.set_command_to_none("#1")}\fi}
-
-% \startxmlsetups xml:include
-% \xmlinclude{main}{include}{filename|href}
-% \stopxmlsetups
-%
-% \xmlprependsetup{xml:include}
-
-\let\xmlgrab\xmlsetsetup
-
-\def\xmlsetup#1#2% % we pass the reference so that we have access to the frozen number
- {\def\xmlself{#1}% % by using #1 inside a setup
- \setupwithargument{#2}{#1}}
-
-\newtoks \registeredxmlsetups
-
-\def\xmlappendsetup #1{\appendtoksonce \directsetup{#1}\to\registeredxmlsetups} % to be done, made faster
-\def\xmlprependsetup#1{\prependtoksonce\directsetup{#1}\to\registeredxmlsetups} % to be done, made faster
-
-\let\xmlregistersetup\xmlappendsetup
-
-\def\xmlregisteredsetups
- {\xmlstarttiming
- \the\registeredxmlsetups\registeredxmlsetups\emptytoks
- \xmldefaulttotext\xmldocument % after include
- \xmlstoptiming}
-
-\chardef\xmlprocessingmode=0 % 0=mixed, 1=mkivonly, 2=mkivonly-default-text, 3=mkivonly-default-none
-
-\def\xmlstarttiming{\ctxlua{input.starttiming(lxml)}}
-\def\xmlstoptiming {\ctxlua{input.stoptiming (lxml)}}
-
-\def\doxmlprocess#1#2#3#4%
- {\begingroup
- \def\xmldocument{#2}%
- #1{#2}{#3}%
- \ifcase\xmlprocessingmode
- \enableXML
- \else
- \setcatcodetable\notcatcodes
- \fi
- \doifelsenothing{#4}
- {\directsetup{xml:process}}
- {\directsetup{#4}}%
- \endgroup}
-
-\def\xmlprocessfile {\doxmlprocess\xmlload}
-\def\xmlprocessdata {\doxmlprocess\xmlloaddata}
-\def\xmlprocessbuffer{\doxmlprocess\xmlloadbuffer}
-\let\xmlprocess \xmlprocessfile
-
-\startsetups xml:process
- \xmlregisteredsetups
- \xmlall\xmldocument{/}
-\stopsetups
-
-\long\def\xmlloop#1#2#3%
- {\def\xmli##1##2{\xmlidx{#1}{#2/##1}{##2}}%
- \dorecurse{\xmlcount{#1}{#2}}{#3}}
-
-\long\def\xmlconnect#1#2#3% inefficient
- {\scratchcounter\xmlcount{#1}{#2}\relax
- \ifcase\scratchcounter \or
- \xmlall{#1}{#2}%
- \else
- \dorecurse \scratchcounter {
- \ifnum\recurselevel>\plusone#3\fi
- \xmlidx{#1}{#2}{\recurselevel}
- }
- \fi}
-
-\def\xmlcdataobeyedline {\obeyedline}
-\def\xmlcdataobeyedspace{\strut\obeyedspace}
-\def\xmlcdatabefore {\bgroup\tt}
-\def\xmlcdataafter {\egroup}
-
-% verbatim (dodo:pre/post whitespace, maybe splot verbatim and
-% cdata commands), experimental:
-%
-% \xmlsetfunction{main}{verbatim}{lxml.displayverbatim}
-% \xmlsetfunction{main}{verb} {lxml.inlineverbatim}
-
-% \def\startxmldisplayverbatim[#1]{}
-% \def\stopxmldisplayverbatim {}
-% \def\startxmlinlineverbatim [#1]{}
-% \def\stopxmlinlineverbatim {}
-
-% we use an xml: namespace so one has to define a suitable verbatim, say
-%
-% \definetyping[xml:verbatim][typing]
-%
-% this is experimental!
-
-\def\startxmldisplayverbatim[#1]%
- {\startpacked % \begingroup
- \let\currenttypingclass\??tp
- \edef\currenttyping{xml:#1}%
- \def\stopxmldisplayverbatim
- {\endofverbatimlines
- \stoppacked} % \endgroup
- \mkinitializeverbatim
- \beginofverbatimlines}
-
-\def\startxmlinlineverbatim[#1]%
- {\begingroup
- \let\currenttypingclass\??ty
- \edef\currenttyping{xml:#1}%
- \let\stopxmldisplayverbatim\endgroup
- \mkinitializeverbatim}
-
-% will move but is developed for xml
-
-\newtoks \collectingtoks
-
-\def\startcollect#1\stopcollect
- {\collectingtoks\@EA{\the\collectingtoks#1}}
-
-\def\startexpandedcollect#1\stopexpandedcollect
- {\expanded{\collectingtoks{\the\collectingtoks#1}}}
-
-\def\startcollecting{\collectingtoks\emptytoks}
-\def\stopcollecting {\the\collectingtoks}
-
-\def\inlinemessage #1{\dontleavehmode{\tttf#1}}
-\def\displaymessage#1{\blank\inlinemessage{#1}\blank}
-
-% entities
-
-\def\xmlresolveentities
- {\ctxlua{xml.set_text_cleanup(xml.resolve_text_entities)}}
-
-\def\xmltraceentities
- {\ctxlua{xml.set_text_cleanup(lxml.trace_text_entities)}%
- \appendtoks\ctxlua{lxml.show_text_entities()}\to\everygoodbye}
-
-% processing instructions
-
-\def\xmlcontextdirective#1% kind class key value
- {\executeifdefined{xml#1directive}\gobblethreearguments}
-
-% brrrr, give this at the top of a style that needs to stub mkiv loading
-%
-% this will change
-
-\def\processXMLfileMKIV
- {\dosingleempty\doprocessXMLfileMKIV}
-
-\let\normalprocessXMLfilegrouped\processXMLfilegrouped
-
-\def\doprocessXMLfileMKIV[#1]%
- {\def\processXMLfilegrouped##1%
- {\let\processXMLfilegrouped\normalprocessXMLfilegrouped
- \doifelsenothing{#1}{\xmlprocess{main}{##1}{}}{\xmlprocess{#1}{##1}{}}}}
-
-\protect \endinput
-
-% \xmlload{main}{normreader.xml}
-
-% \xmlattribute{main}{/subject/information/materialoverview/attribute}{pocketbook}
-% \xmltext{main}{/subject/information/materialoverview/@pocketbook}
-
-% \dorecurse{\xmlflush{main}{/subject/blabla/count()}}
-% {\ifnum\recurselevel=\xmlflush{main}{/subject/blabla/count()}\relax
-% \removeunwantedspaces and\space\ignorespaces
-% \else\ifnum\recurselevel>1
-% \removeunwantedspaces,\space\ignorespaces
-% \fi
-% \xmlflush{main}{/subject/blabla/index(\recurselevel})}
-
-% \def\xmljoin{main}{/subject/information/authors/author}{,}{and}
-% table.join(t,1,#t-1,", ") .. " and " .. t[#t]
-
-% % An example by Wolfgang Schuster:
-%
-% \startxmlsetups xml:mysetups
-% \xmlsetsetup{\xmldocument}{section}{xml:*}
-% \xmlsetsetup{\xmldocument}{title|p}{xml:*}
-% \stopxmlsetups
-%
-% \xmlregistersetup{xml:mysetups}
-%
-% \newcounter\sectionlevel
-%
-% \startxmlsetups xml:section
-% \increment\sectionlevel
-% \xmlflush{#1}
-% \decrement\sectionlevel
-% \stopxmlsetups
-%
-% \startxmlsetups xml:title
-% \ifcase\sectionlevel
-% \or\chapter {\xmlflush{#1}}
-% \or\section {\xmlflush{#1}}
-% \or\subsection {\xmlflush{#1}}
-% \or\subsubsection{\xmlflush{#1}}
-% \fi
-% \stopxmlsetups
-%
-% \startxmlsetups xml:p
-% \xmlflush{#1}\endgraf
-% \stopxmlsetups
-%
-% \startbuffer[section]
-% <!-- An example by Wolfgang Schuster: -->
-% <section>
-% <title>Section 1</title>
-% <p>text text text text text text text text</p>
-% <section>
-% <title>Subsection 1</title>
-% <p>text text text text text text text text</p>
-% </section>
-% <section>
-% <title>Subsection 2</title>
-% <p>text text text text text text text text</p>
-% </section>
-% <section>
-% <title>Subsection 3</title>
-% <p>text text text text text text text text</p>
-% </section>
-% <title>Section 2</title>
-% <p>text text text text text text text text</p>
-% </section>
-% \stopbuffer
-%
-% \starttext
-% \xmlprocessbuffer{main}{section}{}
-% \stoptext
diff --git a/Master/texmf-dist/tex/context/base/lxml-mis.lua b/Master/texmf-dist/tex/context/base/lxml-mis.lua
new file mode 100644
index 00000000000..a117b1af92a
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/lxml-mis.lua
@@ -0,0 +1,106 @@
+if not modules then modules = { } end modules ['lxml-mis'] = {
+ version = 1.001,
+ comment = "this module is the basis for the lxml-* ones",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local concat = table.concat
+local type, next, tonumber, tostring, setmetatable, loadstring = type, next, tonumber, tostring, setmetatable, loadstring
+local format, gsub = string.format, string.gsub
+
+--[[ldx--
+<p>The following helper functions best belong to the <t>lmxl-ini</t>
+module. Some are here because we need then in the <t>mk</t>
+document and other manuals, others came up when playing with
+this module. Since this module is also used in <l n='mtxrun'/> we've
+put them here instead of loading mode modules there then needed.</p>
+--ldx]]--
+
+function xml.gsub(t,old,new)
+ local dt = t.dt
+ if dt then
+ for k=1,#dt do
+ local v = dt[k]
+ if type(v) == "string" then
+ dt[k] = gsub(v,old,new)
+ else
+ xml.gsub(v,old,new)
+ end
+ end
+ end
+end
+
+function xml.strip_leading_spaces(dk,d,k) -- cosmetic, for manual
+ if d and k and d[k-1] and type(d[k-1]) == "string" then
+ local s = d[k-1]:match("\n(%s+)")
+ xml.gsub(dk,"\n"..string.rep(" ",#s),"\n")
+ end
+end
+
+function xml.serialize_path(root,lpath,handle)
+ local dk, r, d, k = xml.first(root,lpath)
+ dk = xml.copy(dk)
+ xml.strip_leading_spaces(dk,d,k)
+ xml.serialize(dk,handle)
+end
+
+--~ xml.escapes = { ['&'] = '&amp;', ['<'] = '&lt;', ['>'] = '&gt;', ['"'] = '&quot;' }
+--~ xml.unescapes = { } for k,v in pairs(xml.escapes) do xml.unescapes[v] = k end
+
+--~ function xml.escaped (str) return (gsub(str,"(.)" , xml.escapes )) end
+--~ function xml.unescaped(str) return (gsub(str,"(&.-;)", xml.unescapes)) end
+--~ function xml.cleansed (str) return (gsub(str,"<.->" , '' )) end -- "%b<>"
+
+local P, S, R, C, V, Cc, Cs = lpeg.P, lpeg.S, lpeg.R, lpeg.C, lpeg.V, lpeg.Cc, lpeg.Cs
+
+-- 100 * 2500 * "oeps< oeps> oeps&" : gsub:lpeg|lpeg|lpeg
+--
+-- 1021:0335:0287:0247
+
+-- 10 * 1000 * "oeps< oeps> oeps& asfjhalskfjh alskfjh alskfjh alskfjh ;al J;LSFDJ"
+--
+-- 1559:0257:0288:0190 (last one suggested by roberto)
+
+-- escaped = Cs((S("<&>") / xml.escapes + 1)^0)
+-- escaped = Cs((S("<")/"&lt;" + S(">")/"&gt;" + S("&")/"&amp;" + 1)^0)
+local normal = (1 - S("<&>"))^0
+local special = P("<")/"&lt;" + P(">")/"&gt;" + P("&")/"&amp;"
+local escaped = Cs(normal * (special * normal)^0)
+
+-- 100 * 1000 * "oeps&lt; oeps&gt; oeps&amp;" : gsub:lpeg == 0153:0280:0151:0080 (last one by roberto)
+
+-- unescaped = Cs((S("&lt;")/"<" + S("&gt;")/">" + S("&amp;")/"&" + 1)^0)
+-- unescaped = Cs((((P("&")/"") * (P("lt")/"<" + P("gt")/">" + P("amp")/"&") * (P(";")/"")) + 1)^0)
+local normal = (1 - S"&")^0
+local special = P("&lt;")/"<" + P("&gt;")/">" + P("&amp;")/"&"
+local unescaped = Cs(normal * (special * normal)^0)
+
+-- 100 * 5000 * "oeps <oeps bla='oeps' foo='bar'> oeps </oeps> oeps " : gsub:lpeg == 623:501 msec (short tags, less difference)
+
+local cleansed = Cs(((P("<") * (1-P(">"))^0 * P(">"))/"" + 1)^0)
+
+xml.escaped_pattern = escaped
+xml.unescaped_pattern = unescaped
+xml.cleansed_pattern = cleansed
+
+function xml.escaped (str) return escaped :match(str) end
+function xml.unescaped(str) return unescaped:match(str) end
+function xml.cleansed (str) return cleansed :match(str) end
+
+function xml.join(t,separator,lastseparator)
+ if #t > 0 then
+ local result = { }
+ for k,v in pairs(t) do
+ result[k] = xml.tostring(v)
+ end
+ if lastseparator then
+ return concat(result,separator or "",1,#result-1) .. (lastseparator or "") .. result[#result]
+ else
+ return concat(result,separator)
+ end
+ else
+ return ""
+ end
+end
diff --git a/Master/texmf-dist/tex/context/base/lxml-pth.lua b/Master/texmf-dist/tex/context/base/lxml-pth.lua
new file mode 100644
index 00000000000..b1afc8d6423
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/lxml-pth.lua
@@ -0,0 +1,1555 @@
+if not modules then modules = { } end modules ['lxml-pth'] = {
+ version = 1.001,
+ comment = "this module is the basis for the lxml-* ones",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local concat, remove, insert = table.concat, table.remove, table.insert
+local type, next, tonumber, tostring, setmetatable, loadstring = type, next, tonumber, tostring, setmetatable, loadstring
+local format, lower, gmatch, gsub, find = string.format, string.lower, string.gmatch, string.gsub, string.find
+
+--[[ldx--
+<p>This module can be used stand alone but also inside <l n='mkiv'/> in
+which case it hooks into the tracker code. Therefore we provide a few
+functions that set the tracers. Here we overload a previously defined
+function.</p>
+--ldx]]--
+
+local trace_lpath = false
+
+if trackers then
+ trackers.register("xml.lpath", function(v) trace_lpath = v end)
+end
+
+local settrace = xml.settrace -- lxml-tab
+
+function xml.settrace(str,value)
+ if str == "lpath" then
+ trace_lpath = value or false
+ else
+ settrace(str,value) -- lxml-tab
+ end
+end
+
+--[[ldx--
+<p>We've now arrived at an intersting part: accessing the tree using a subset
+of <l n='xpath'/> and since we're not compatible we call it <l n='lpath'/>. We
+will explain more about its usage in other documents.</p>
+--ldx]]--
+
+local lpathcalls = 0 -- statistics
+local lpathcached = 0 -- statistics
+
+xml.functions = xml.functions or { }
+xml.expressions = xml.expressions or { }
+
+local functions = xml.functions
+local expressions = xml.expressions
+
+local actions = {
+ [10] = "stay",
+ [11] = "parent",
+ [12] = "subtree root",
+ [13] = "document root",
+ [14] = "any",
+ [15] = "many",
+ [16] = "initial",
+ [20] = "match",
+ [21] = "match one of",
+ [22] = "match and attribute eq",
+ [23] = "match and attribute ne",
+ [24] = "match one of and attribute eq",
+ [25] = "match one of and attribute ne",
+ [27] = "has attribute",
+ [28] = "has value",
+ [29] = "fast match",
+ [30] = "select",
+ [31] = "expression",
+ [40] = "processing instruction",
+}
+
+-- a rather dumb lpeg
+
+local P, S, R, C, V, Cc = lpeg.P, lpeg.S, lpeg.R, lpeg.C, lpeg.V, lpeg.Cc
+
+-- instead of using functions we just parse a few names which saves a call
+-- later on
+
+local lp_position = P("position()") / "ps"
+local lp_index = P("index()") / "id"
+local lp_text = P("text()") / "tx"
+local lp_name = P("name()") / "(ns~='' and ns..':'..tg)" -- "((rt.ns~='' and rt.ns..':'..rt.tg) or '')"
+local lp_tag = P("tag()") / "tg" -- (rt.tg or '')
+local lp_ns = P("ns()") / "ns" -- (rt.ns or '')
+local lp_noequal = P("!=") / "~=" + P("<=") + P(">=") + P("==")
+local lp_doequal = P("=") / "=="
+local lp_attribute = P("@") / "" * Cc("(at['") * R("az","AZ","--","__")^1 * Cc("'] or '')")
+
+local lp_lua_function = C(R("az","AZ","--","__")^1 * (P(".") * R("az","AZ","--","__")^1)^1) * P("(") / function(t) -- todo: better . handling
+ return t .. "("
+end
+
+local lp_function = C(R("az","AZ","--","__")^1) * P("(") / function(t) -- todo: better . handling
+ if expressions[t] then
+ return "expressions." .. t .. "("
+ else
+ return "expressions.error("
+ end
+end
+
+local lparent = lpeg.P("(")
+local rparent = lpeg.P(")")
+local noparent = 1 - (lparent+rparent)
+local nested = lpeg.P{lparent * (noparent + lpeg.V(1))^0 * rparent}
+local value = lpeg.P(lparent * lpeg.C((noparent + nested)^0) * rparent) -- lpeg.P{"("*C(((1-S("()"))+V(1))^0)*")"}
+
+-- if we use a dedicated namespace then we don't need to pass rt and k
+
+local lp_special = (C(P("name")+P("text")+P("tag"))) * value / function(t,s)
+ if expressions[t] then
+ if s then
+ return "expressions." .. t .. "(r,k," .. s ..")"
+ else
+ return "expressions." .. t .. "(r,k)"
+ end
+ else
+ return "expressions.error(" .. t .. ")"
+ end
+end
+
+local converter = lpeg.Cs ( (
+ lp_position +
+ lp_index +
+ lp_text + lp_name + -- fast one
+ lp_special +
+ lp_noequal + lp_doequal +
+ lp_attribute +
+ lp_lua_function +
+ lp_function +
+1 )^1 )
+
+-- expressions,root,rootdt,k,e,edt,ns,tg,idx,hsh[tg] or 1
+
+local template = [[
+ return function(expressions,r,d,k,e,dt,ns,tg,id,ps)
+ local at, tx = e.at or { }, dt[1] or ""
+ return %s
+ end
+]]
+
+local function make_expression(str)
+ str = converter:match(str)
+ return str, loadstring(format(template,str))()
+end
+
+local map = { }
+
+local space = S(' \r\n\t')
+local squote = S("'")
+local dquote = S('"')
+local lparent = P('(')
+local rparent = P(')')
+local atsign = P('@')
+local lbracket = P('[')
+local rbracket = P(']')
+local exclam = P('!')
+local period = P('.')
+local eq = P('==') + P('=')
+local ne = P('<>') + P('!=')
+local star = P('*')
+local slash = P('/')
+local colon = P(':')
+local bar = P('|')
+local hat = P('^')
+local valid = R('az', 'AZ', '09') + S('_-')
+local name_yes = C(valid^1 + star) * colon * C(valid^1 + star) -- permits ns:* *:tg *:*
+local name_nop = Cc("*") * C(valid^1)
+local name = name_yes + name_nop
+local number = C((S('+-')^0 * R('09')^1)) / tonumber
+local names = (bar^0 * name)^1
+local morenames = name * (bar^0 * name)^1
+local instructiontag = P('pi::')
+local spacing = C(space^0)
+local somespace = space^1
+local optionalspace = space^0
+local text = C(valid^0)
+local value = (squote * C((1 - squote)^0) * squote) + (dquote * C((1 - dquote)^0) * dquote)
+local empty = 1-slash
+
+local is_eq = lbracket * atsign * name * eq * value * rbracket
+local is_ne = lbracket * atsign * name * ne * value * rbracket
+local is_attribute = lbracket * atsign * name * rbracket
+local is_value = lbracket * value * rbracket
+local is_number = lbracket * number * rbracket
+
+local nobracket = 1-(lbracket+rbracket) -- must be improved
+local is_expression = lbracket * C(((C(nobracket^1))/make_expression)) * rbracket
+
+local is_expression = lbracket * (C(nobracket^1))/make_expression * rbracket
+
+local is_one = name
+local is_none = exclam * name
+local is_one_of = ((lparent * names * rparent) + morenames)
+local is_none_of = exclam * ((lparent * names * rparent) + morenames)
+
+local stay = (period )
+local parent = (period * period ) / function( ) map[#map+1] = { 11 } end
+local subtreeroot = (slash + hat ) / function( ) map[#map+1] = { 12 } end
+local documentroot = (hat * hat ) / function( ) map[#map+1] = { 13 } end
+local any = (star ) / function( ) map[#map+1] = { 14 } end
+local many = (star * star ) / function( ) map[#map+1] = { 15 } end
+local initial = (hat * hat * hat ) / function( ) map[#map+1] = { 16 } end
+
+local match = (is_one ) / function(...) map[#map+1] = { 20, true , ... } end
+local match_one_of = (is_one_of ) / function(...) map[#map+1] = { 21, true , ... } end
+local dont_match = (is_none ) / function(...) map[#map+1] = { 20, false, ... } end
+local dont_match_one_of = (is_none_of ) / function(...) map[#map+1] = { 21, false, ... } end
+
+local match_and_eq = (is_one * is_eq ) / function(...) map[#map+1] = { 22, true , ... } end
+local match_and_ne = (is_one * is_ne ) / function(...) map[#map+1] = { 23, true , ... } end
+local dont_match_and_eq = (is_none * is_eq ) / function(...) map[#map+1] = { 22, false, ... } end
+local dont_match_and_ne = (is_none * is_ne ) / function(...) map[#map+1] = { 23, false, ... } end
+
+local match_one_of_and_eq = (is_one_of * is_eq ) / function(...) map[#map+1] = { 24, true , ... } end
+local match_one_of_and_ne = (is_one_of * is_ne ) / function(...) map[#map+1] = { 25, true , ... } end
+local dont_match_one_of_and_eq = (is_none_of * is_eq ) / function(...) map[#map+1] = { 24, false, ... } end
+local dont_match_one_of_and_ne = (is_none_of * is_ne ) / function(...) map[#map+1] = { 25, false, ... } end
+
+local has_attribute = (is_one * is_attribute) / function(...) map[#map+1] = { 27, true , ... } end
+local has_value = (is_one * is_value ) / function(...) map[#map+1] = { 28, true , ... } end
+local dont_has_attribute = (is_none * is_attribute) / function(...) map[#map+1] = { 27, false, ... } end
+local dont_has_value = (is_none * is_value ) / function(...) map[#map+1] = { 28, false, ... } end
+local position = (is_one * is_number ) / function(...) map[#map+1] = { 30, true, ... } end
+local dont_position = (is_none * is_number ) / function(...) map[#map+1] = { 30, false, ... } end
+
+local expression = (is_one * is_expression)/ function(...) map[#map+1] = { 31, true, ... } end
+local dont_expression = (is_none * is_expression)/ function(...) map[#map+1] = { 31, false, ... } end
+
+local self_expression = ( is_expression) / function(...) if #map == 0 then map[#map+1] = { 11 } end
+ map[#map+1] = { 31, true, "*", "*", ... } end
+local dont_self_expression = (exclam * is_expression) / function(...) if #map == 0 then map[#map+1] = { 11 } end
+ map[#map+1] = { 31, false, "*", "*", ... } end
+
+local instruction = (instructiontag * text ) / function(...) map[#map+1] = { 40, ... } end
+local nothing = (empty ) / function( ) map[#map+1] = { 15 } end -- 15 ?
+local crap = (1-slash)^1
+
+-- a few ugly goodies:
+
+local docroottag = P('^^') / function( ) map[#map+1] = { 12 } end
+local subroottag = P('^') / function( ) map[#map+1] = { 13 } end
+local roottag = P('root::') / function( ) map[#map+1] = { 12 } end
+local parenttag = P('parent::') / function( ) map[#map+1] = { 11 } end
+local childtag = P('child::')
+local selftag = P('self::')
+
+-- there will be more and order will be optimized
+
+local selector = (
+ instruction +
+-- many + any + -- brrr, not here !
+ parent + stay +
+ dont_position + position +
+ dont_match_one_of_and_eq + dont_match_one_of_and_ne +
+ match_one_of_and_eq + match_one_of_and_ne +
+ dont_match_and_eq + dont_match_and_ne +
+ match_and_eq + match_and_ne +
+ dont_expression + expression +
+ dont_self_expression + self_expression +
+ has_attribute + has_value +
+ dont_match_one_of + match_one_of +
+ dont_match + match +
+ many + any +
+ crap + empty
+)
+
+local grammar = P { "startup",
+ startup = (initial + documentroot + subtreeroot + roottag + docroottag + subroottag)^0 * V("followup"),
+ followup = ((slash + parenttag + childtag + selftag)^0 * selector)^1,
+}
+
+local function compose(str)
+ if not str or str == "" then
+ -- wildcard
+ return true
+ elseif str == '/' then
+ -- root
+ return false
+ else
+ map = { }
+ grammar:match(str)
+ if #map == 0 then
+ return true
+ else
+ local m = map[1][1]
+ if #map == 1 then
+ if m == 14 or m == 15 then
+ -- wildcard
+ return true
+ elseif m == 12 then
+ -- root
+ return false
+ end
+ elseif #map == 2 and m == 12 and map[2][1] == 20 then
+ -- return { { 29, map[2][2], map[2][3], map[2][4], map[2][5] } }
+ map[2][1] = 29
+ return { map[2] }
+ end
+ if m ~= 11 and m ~= 12 and m ~= 13 and m ~= 14 and m ~= 15 and m ~= 16 then
+ insert(map, 1, { 16 })
+ end
+ -- print(gsub(table.serialize(map),"[ \n]+"," "))
+ return map
+ end
+ end
+end
+
+local cache = { }
+
+function xml.lpath(pattern,trace)
+ lpathcalls = lpathcalls + 1
+ if type(pattern) == "string" then
+ local result = cache[pattern]
+ if result == nil then -- can be false which is valid -)
+ result = compose(pattern)
+ cache[pattern] = result
+ lpathcached = lpathcached + 1
+ end
+ if trace or trace_lpath then
+ xml.lshow(result)
+ end
+ return result
+ else
+ return pattern
+ end
+end
+
+function xml.cached_patterns()
+ return cache
+end
+
+-- we run out of locals (limited to 200)
+--
+-- local fallbackreport = (texio and texio.write) or io.write
+
+function xml.lshow(pattern,report)
+-- report = report or fallbackreport
+ report = report or (texio and texio.write) or io.write
+ local lp = xml.lpath(pattern)
+ if lp == false then
+ report(" -: root\n")
+ elseif lp == true then
+ report(" -: wildcard\n")
+ else
+ if type(pattern) == "string" then
+ report(format("pattern: %s\n",pattern))
+ end
+ for k=1,#lp do
+ local v = lp[k]
+ if #v > 1 then
+ local t = { }
+ for i=2,#v do
+ local vv = v[i]
+ if type(vv) == "string" then
+ t[#t+1] = (vv ~= "" and vv) or "#"
+ elseif type(vv) == "boolean" then
+ t[#t+1] = (vv and "==") or "<>"
+ end
+ end
+ report(format("%2i: %s %s -> %s\n", k,v[1],actions[v[1]],concat(t," ")))
+ else
+ report(format("%2i: %s %s\n", k,v[1],actions[v[1]]))
+ end
+ end
+ end
+end
+
+function xml.xshow(e,...) -- also handy when report is given, use () to isolate first e
+ local t = { ... }
+-- local report = (type(t[#t]) == "function" and t[#t]) or fallbackreport
+ local report = (type(t[#t]) == "function" and t[#t]) or (texio and texio.write) or io.write
+ if e == nil then
+ report("<!-- no element -->\n")
+ elseif type(e) ~= "table" then
+ report(tostring(e))
+ elseif e.tg then
+ report(tostring(e) .. "\n")
+ else
+ for i=1,#e do
+ report(tostring(e[i]) .. "\n")
+ end
+ end
+end
+
+--[[ldx--
+<p>An <l n='lpath'/> is converted to a table with instructions for traversing the
+tree. Hoever, simple cases are signaled by booleans. Because we don't know in
+advance what we want to do with the found element the handle gets three arguments:</p>
+
+<lines>
+<t>r</t> : the root element of the data table
+<t>d</t> : the data table of the result
+<t>t</t> : the index in the data table of the result
+</lines>
+
+<p> Access to the root and data table makes it possible to construct insert and delete
+functions.</p>
+--ldx]]--
+
+local functions = xml.functions
+local expressions = xml.expressions
+
+expressions.contains = string.find
+expressions.find = string.find
+expressions.upper = string.upper
+expressions.lower = string.lower
+expressions.number = tonumber
+expressions.boolean = toboolean
+
+expressions.oneof = function(s,...) -- slow
+ local t = {...} for i=1,#t do if s == t[i] then return true end end return false
+end
+
+expressions.error = function(str)
+ xml.error_handler("unknown function in lpath expression",str or "?")
+ return false
+end
+
+functions.text = function(root,k,n) -- unchecked, maybe one deeper
+ local t = type(t)
+ if t == "string" then
+ return t
+ else -- todo n
+ local rdt = root.dt
+ return (rdt and rdt[k]) or root[k] or ""
+ end
+end
+
+functions.name = function(d,k,n) -- ns + tg
+ local found = false
+ n = n or 0
+ if not k then
+ -- not found
+ elseif n == 0 then
+ local dk = d[k]
+ found = dk and (type(dk) == "table") and dk
+ elseif n < 0 then
+ for i=k-1,1,-1 do
+ local di = d[i]
+ if type(di) == "table" then
+ if n == -1 then
+ found = di
+ break
+ else
+ n = n + 1
+ end
+ end
+ end
+ else
+ for i=k+1,#d,1 do
+ local di = d[i]
+ if type(di) == "table" then
+ if n == 1 then
+ found = di
+ break
+ else
+ n = n - 1
+ end
+ end
+ end
+ end
+ if found then
+ local ns, tg = found.rn or found.ns or "", found.tg
+ if ns ~= "" then
+ return ns .. ":" .. tg
+ else
+ return tg
+ end
+ else
+ return ""
+ end
+end
+
+functions.tag = function(d,k,n) -- only tg
+ local found = false
+ n = n or 0
+ if not k then
+ -- not found
+ elseif n == 0 then
+ local dk = d[k]
+ found = dk and (type(dk) == "table") and dk
+ elseif n < 0 then
+ for i=k-1,1,-1 do
+ local di = d[i]
+ if type(di) == "table" then
+ if n == -1 then
+ found = di
+ break
+ else
+ n = n + 1
+ end
+ end
+ end
+ else
+ for i=k+1,#d,1 do
+ local di = d[i]
+ if type(di) == "table" then
+ if n == 1 then
+ found = di
+ break
+ else
+ n = n - 1
+ end
+ end
+ end
+ end
+ return (found and found.tg) or ""
+end
+
+expressions.text = functions.text
+expressions.name = functions.name
+expressions.tag = functions.tag
+
+local function traverse(root,pattern,handle,reverse,index,parent,wildcard) -- multiple only for tags, not for namespaces
+ if not root then -- error
+ return false
+ elseif pattern == false then -- root
+ handle(root,root.dt,root.ri)
+ return false
+ elseif pattern == true then -- wildcard
+ local rootdt = root.dt
+ if rootdt then
+ local start, stop, step = 1, #rootdt, 1
+ if reverse then
+ start, stop, step = stop, start, -1
+ end
+ for k=start,stop,step do
+ if handle(root,rootdt,root.ri or k) then return false end
+ if not traverse(rootdt[k],true,handle,reverse) then return false end
+ end
+ end
+ return false
+ elseif root.dt then
+ index = index or 1
+ local action = pattern[index]
+ local command = action[1]
+ if command == 29 then -- fast case /oeps
+ local rootdt = root.dt
+ for k=1,#rootdt do
+ local e = rootdt[k]
+ local tg = e.tg
+ if e.tg then
+ local ns = e.rn or e.ns
+ local ns_a, tg_a = action[3], action[4]
+ local matched = (ns_a == "*" or ns == ns_a) and (tg_a == "*" or tg == tg_a)
+ if not action[2] then matched = not matched end
+ if matched then
+ if handle(root,rootdt,k) then return false end
+ end
+ end
+ end
+ elseif command == 11 then -- parent
+ local ep = root.__p__ or parent
+ if index < #pattern then
+ if not traverse(ep,pattern,handle,reverse,index+1,root) then return false end
+ elseif handle(root,rootdt,k) then
+ return false
+ end
+ else
+ if (command == 16 or command == 12) and index == 1 then -- initial
+ -- wildcard = true
+ wildcard = command == 16 -- ok?
+ index = index + 1
+ action = pattern[index]
+ command = action and action[1] or 0 -- something is wrong
+ end
+ if command == 11 then -- parent
+ local ep = root.__p__ or parent
+ if index < #pattern then
+ if not traverse(ep,pattern,handle,reverse,index+1,root) then return false end
+ elseif handle(root,rootdt,k) then
+ return false
+ end
+ else
+ local rootdt = root.dt
+ local start, stop, step, n, dn = 1, #rootdt, 1, 0, 1
+ if command == 30 then
+ if action[5] < 0 then
+ start, stop, step = stop, start, -1
+ dn = -1
+ end
+ elseif reverse and index == #pattern then
+ start, stop, step = stop, start, -1
+ end
+ local idx = 0
+ local hsh = { } -- this will slooow down the lot
+ for k=start,stop,step do -- we used to have functions for all but a case is faster
+ local e = rootdt[k]
+ local ns, tg = e.rn or e.ns, e.tg
+ if tg then
+ -- we can optimize this for simple searches, but it probably does not pay off
+ hsh[tg] = (hsh[tg] or 0) + 1
+ idx = idx + 1
+ if command == 30 then
+ local ns_a, tg_a = action[3], action[4]
+ if tg == tg_a then
+ matched = ns_a == "*" or ns == ns_a
+ elseif tg_a == '*' then
+ matched, multiple = ns_a == "*" or ns == ns_a, true
+ else
+ matched = false
+ end
+ if not action[2] then matched = not matched end
+ if matched then
+ n = n + dn
+ if n == action[5] then
+ if index == #pattern then
+ if handle(root,rootdt,root.ri or k) then return false end
+ else
+ if not traverse(e,pattern,handle,reverse,index+1,root) then return false end
+ end
+ break
+ end
+ elseif wildcard then
+ if not traverse(e,pattern,handle,reverse,index,root,true) then return false end
+ end
+ else
+ local matched, multiple = false, false
+ if command == 20 then -- match
+ local ns_a, tg_a = action[3], action[4]
+ if tg == tg_a then
+ matched = ns_a == "*" or ns == ns_a
+ elseif tg_a == '*' then
+ matched, multiple = ns_a == "*" or ns == ns_a, true
+ else
+ matched = false
+ end
+ if not action[2] then matched = not matched end
+ elseif command == 21 then -- match one of
+ multiple = true
+ for i=3,#action,2 do
+ local ns_a, tg_a = action[i], action[i+1]
+ if (ns_a == "*" or ns == ns_a) and (tg == "*" or tg == tg_a) then
+ matched = true
+ break
+ end
+ end
+ if not action[2] then matched = not matched end
+ elseif command == 22 then -- eq
+ local ns_a, tg_a = action[3], action[4]
+ if tg == tg_a then
+ matched = ns_a == "*" or ns == ns_a
+ elseif tg_a == '*' then
+ matched, multiple = ns_a == "*" or ns == ns_a, true
+ else
+ matched = false
+ end
+ matched = matched and e.at[action[6]] == action[7]
+ elseif command == 23 then -- ne
+ local ns_a, tg_a = action[3], action[4]
+ if tg == tg_a then
+ matched = ns_a == "*" or ns == ns_a
+ elseif tg_a == '*' then
+ matched, multiple = ns_a == "*" or ns == ns_a, true
+ else
+ matched = false
+ end
+ if not action[2] then matched = not matched end
+ matched = mached and e.at[action[6]] ~= action[7]
+ elseif command == 24 then -- one of eq
+ multiple = true
+ for i=3,#action-2,2 do
+ local ns_a, tg_a = action[i], action[i+1]
+ if (ns_a == "*" or ns == ns_a) and (tg == "*" or tg == tg_a) then
+ matched = true
+ break
+ end
+ end
+ if not action[2] then matched = not matched end
+ matched = matched and e.at[action[#action-1]] == action[#action]
+ elseif command == 25 then -- one of ne
+ multiple = true
+ for i=3,#action-2,2 do
+ local ns_a, tg_a = action[i], action[i+1]
+ if (ns_a == "*" or ns == ns_a) and (tg == "*" or tg == tg_a) then
+ matched = true
+ break
+ end
+ end
+ if not action[2] then matched = not matched end
+ matched = matched and e.at[action[#action-1]] ~= action[#action]
+ elseif command == 27 then -- has attribute
+ local ns_a, tg_a = action[3], action[4]
+ if tg == tg_a then
+ matched = ns_a == "*" or ns == ns_a
+ elseif tg_a == '*' then
+ matched, multiple = ns_a == "*" or ns == ns_a, true
+ else
+ matched = false
+ end
+ if not action[2] then matched = not matched end
+ matched = matched and e.at[action[5]]
+ elseif command == 28 then -- has value
+ local edt, ns_a, tg_a = e.dt, action[3], action[4]
+ if tg == tg_a then
+ matched = ns_a == "*" or ns == ns_a
+ elseif tg_a == '*' then
+ matched, multiple = ns_a == "*" or ns == ns_a, true
+ else
+ matched = false
+ end
+ if not action[2] then matched = not matched end
+ matched = matched and edt and edt[1] == action[5]
+ elseif command == 31 then
+ local edt, ns_a, tg_a = e.dt, action[3], action[4]
+ if tg == tg_a then
+ matched = ns_a == "*" or ns == ns_a
+ elseif tg_a == '*' then
+ matched, multiple = ns_a == "*" or ns == ns_a, true
+ else
+ matched = false
+ end
+ if not action[2] then matched = not matched end
+ if matched then
+ matched = action[6](expressions,root,rootdt,k,e,edt,ns,tg,idx,hsh[tg] or 1)
+ end
+ end
+ if matched then -- combine tg test and at test
+ if index == #pattern then
+ if handle(root,rootdt,root.ri or k) then return false end
+ if wildcard then
+ if multiple then
+ if not traverse(e,pattern,handle,reverse,index,root,true) then return false end
+ else
+ -- maybe or multiple; anyhow, check on (section|title) vs just section and title in example in lxml
+ if not traverse(e,pattern,handle,reverse,index,root) then return false end
+ end
+ end
+ else
+ if not traverse(e,pattern,handle,reverse,index+1,root) then return false end
+ end
+ elseif command == 14 then -- any
+ if index == #pattern then
+ if handle(root,rootdt,root.ri or k) then return false end
+ else
+ if not traverse(e,pattern,handle,reverse,index+1,root) then return false end
+ end
+ elseif command == 15 then -- many
+ if index == #pattern then
+ if handle(root,rootdt,root.ri or k) then return false end
+ else
+ if not traverse(e,pattern,handle,reverse,index+1,root,true) then return false end
+ end
+ -- not here : 11
+ elseif command == 11 then -- parent
+ local ep = e.__p__ or parent
+ if index < #pattern then
+ if not traverse(ep,pattern,handle,reverse,root,index+1) then return false end
+ elseif handle(root,rootdt,k) then
+ return false
+ end
+ elseif command == 40 and e.special and tg == "@pi@" then -- pi
+ local pi = action[2]
+ if pi ~= "" then
+ local pt = e.dt[1]
+ if pt and pt:find(pi) then
+ if handle(root,rootdt,k) then
+ return false
+ end
+ end
+ elseif handle(root,rootdt,k) then
+ return false
+ end
+ elseif wildcard then
+ if not traverse(e,pattern,handle,reverse,index,root,true) then return false end
+ end
+ end
+ else
+ -- not here : 11
+ if command == 11 then -- parent
+ local ep = e.__p__ or parent
+ if index < #pattern then
+ if not traverse(ep,pattern,handle,reverse,index+1,root) then return false end
+ elseif handle(root,rootdt,k) then
+ return false
+ end
+ break -- else loop
+ end
+ end
+ end
+ end
+ end
+ end
+ return true
+end
+
+xml.traverse = traverse
+
+--[[ldx--
+<p>Next come all kind of locators and manipulators. The most generic function here
+is <t>xml.filter(root,pattern)</t>. All registers functions in the filters namespace
+can be path of a search path, as in:</p>
+
+<typing>
+local r, d, k = xml.filter(root,"/a/b/c/position(4)"
+</typing>
+--ldx]]--
+
+local traverse, lpath, convert = xml.traverse, xml.lpath, xml.convert
+
+xml.filters = { }
+
+function xml.filters.default(root,pattern)
+ local rt, dt, dk
+ traverse(root, lpath(pattern), function(r,d,k) rt,dt,dk = r,d,k return true end)
+ return dt and dt[dk], rt, dt, dk
+end
+
+function xml.filters.attributes(root,pattern,arguments)
+ local rt, dt, dk
+ traverse(root, lpath(pattern), function(r,d,k) rt, dt, dk = r, d, k return true end)
+ local ekat = (dt and dt[dk] and dt[dk].at) or (rt and rt.at)
+ if ekat then
+ if arguments then
+ return ekat[arguments] or "", rt, dt, dk
+ else
+ return ekat, rt, dt, dk
+ end
+ else
+ return { }, rt, dt, dk
+ end
+end
+
+function xml.filters.reverse(root,pattern)
+ local rt, dt, dk
+ traverse(root, lpath(pattern), function(r,d,k) rt,dt,dk = r,d,k return true end, 'reverse')
+ return dt and dt[dk], rt, dt, dk
+end
+
+function xml.filters.count(root,pattern,everything)
+ local n = 0
+ traverse(root, lpath(pattern), function(r,d,t)
+ if everything or type(d[t]) == "table" then
+ n = n + 1
+ end
+ end)
+ return n
+end
+
+function xml.filters.elements(root, pattern) -- == all
+ local t = { }
+ traverse(root, lpath(pattern), function(r,d,k)
+ local e = d[k]
+ if e then
+ t[#t+1] = e
+ end
+ end)
+ return t
+end
+
+function xml.filters.texts(root, pattern)
+ local t = { }
+ traverse(root, lpath(pattern), function(r,d,k)
+ local e = d[k]
+ if e and e.dt then
+ t[#t+1] = e.dt
+ end
+ end)
+ return t
+end
+
+function xml.filters.first(root,pattern)
+ local rt, dt, dk
+ traverse(root, lpath(pattern), function(r,d,k) rt,dt,dk = r,d,k return true end)
+ return dt and dt[dk], rt, dt, dk
+end
+
+function xml.filters.last(root,pattern)
+ local rt, dt, dk
+ traverse(root, lpath(pattern), function(r,d,k) rt,dt,dk = r,d,k return true end, 'reverse')
+ return dt and dt[dk], rt, dt, dk
+end
+
+function xml.filters.index(root,pattern,arguments)
+ local rt, dt, dk, reverse, i = nil, nil, nil, false, tonumber(arguments or '1') or 1
+ if i and i ~= 0 then
+ if i < 0 then
+ reverse, i = true, -i
+ end
+ traverse(root, lpath(pattern), function(r,d,k) rt, dt, dk, i = r, d, k, i-1 return i == 0 end, reverse)
+ if i == 0 then
+ return dt and dt[dk], rt, dt, dk
+ end
+ end
+ return nil, nil, nil, nil
+end
+
+function xml.filters.attribute(root,pattern,arguments)
+ local rt, dt, dk
+ traverse(root, lpath(pattern), function(r,d,k) rt, dt, dk = r, d, k return true end)
+ local ekat = (dt and dt[dk] and dt[dk].at) or (rt and rt.at)
+ return (ekat and (ekat[arguments] or ekat[gsub(arguments,"^([\"\'])(.*)%1$","%2")])) or ""
+end
+
+function xml.filters.text(root,pattern,arguments) -- ?? why index, tostring slow
+ local dtk, rt, dt, dk = xml.filters.index(root,pattern,arguments)
+ if dtk then -- n
+ local dtkdt = dtk.dt
+ if not dtkdt then
+ return "", rt, dt, dk
+ elseif #dtkdt == 1 and type(dtkdt[1]) == "string" then
+ return dtkdt[1], rt, dt, dk
+ else
+ return xml.tostring(dtkdt), rt, dt, dk
+ end
+ else
+ return "", rt, dt, dk
+ end
+end
+
+function xml.filters.tag(root,pattern,n)
+ local tag = ""
+ traverse(root, lpath(pattern), function(r,d,k)
+ tag = xml.functions.tag(d,k,n and tonumber(n))
+ return true
+ end)
+ return tag
+end
+
+function xml.filters.name(root,pattern,n)
+ local tag = ""
+ traverse(root, lpath(pattern), function(r,d,k)
+ tag = xml.functions.name(d,k,n and tonumber(n))
+ return true
+ end)
+ return tag
+end
+
+--[[ldx--
+<p>For splitting the filter function from the path specification, we can
+use string matching or lpeg matching. Here the difference in speed is
+neglectable but the lpeg variant is more robust.</p>
+--ldx]]--
+
+-- not faster but hipper ... although ... i can't get rid of the trailing / in the path
+
+local P, S, R, C, V, Cc = lpeg.P, lpeg.S, lpeg.R, lpeg.C, lpeg.V, lpeg.Cc
+
+local slash = P('/')
+local name = (R("az","AZ","--","__"))^1
+local path = C(((1-slash)^0 * slash)^1)
+local argument = P { "(" * C(((1 - S("()")) + V(1))^0) * ")" }
+local action = Cc(1) * path * C(name) * argument
+local attribute = Cc(2) * path * P('@') * C(name)
+local direct = Cc(3) * Cc("../*") * slash^0 * C(name) * argument
+
+local parser = direct + action + attribute
+
+local filters = xml.filters
+local attribute_filter = xml.filters.attributes
+local default_filter = xml.filters.default
+
+-- todo: also hash, could be gc'd
+
+function xml.filter(root,pattern)
+ local kind, a, b, c = parser:match(pattern)
+ if kind == 1 or kind == 3 then
+ return (filters[b] or default_filter)(root,a,c)
+ elseif kind == 2 then
+ return attribute_filter(root,a,b)
+ else
+ return default_filter(root,pattern)
+ end
+end
+
+--~ slightly faster, but first we need a proper test file
+--~
+--~ local hash = { }
+--~
+--~ function xml.filter(root,pattern)
+--~ local h = hash[pattern]
+--~ if not h then
+--~ local kind, a, b, c = parser:match(pattern)
+--~ if kind == 1 then
+--~ h = { kind, filters[b] or default_filter, a, b, c }
+--~ elseif kind == 2 then
+--~ h = { kind, attribute_filter, a, b, c }
+--~ else
+--~ h = { kind, default_filter, a, b, c }
+--~ end
+--~ hash[pattern] = h
+--~ end
+--~ local kind = h[1]
+--~ if kind == 1 then
+--~ return h[2](root,h[2],h[4])
+--~ elseif kind == 2 then
+--~ return h[2](root,h[2],h[3])
+--~ else
+--~ return h[2](root,pattern)
+--~ end
+--~ end
+
+--[[ldx--
+<p>The following functions collect elements and texts.</p>
+--ldx]]--
+
+-- still somewhat bugged
+
+function xml.collect_elements(root, pattern, ignorespaces)
+ local rr, dd = { }, { }
+ traverse(root, lpath(pattern), function(r,d,k)
+ local dk = d and d[k]
+ if dk then
+ if ignorespaces and type(dk) == "string" and dk:find("[^%S]") then
+ -- ignore
+ else
+ local n = #rr+1
+ rr[n], dd[n] = r, dk
+ end
+ end
+ end)
+ return dd, rr
+end
+
+function xml.collect_texts(root, pattern, flatten)
+ local t = { } -- no r collector
+ traverse(root, lpath(pattern), function(r,d,k)
+ if d then
+ local ek = d[k]
+ local tx = ek and ek.dt
+ if flatten then
+ if tx then
+ t[#t+1] = xml.tostring(tx) or ""
+ else
+ t[#t+1] = ""
+ end
+ else
+ t[#t+1] = tx or ""
+ end
+ else
+ t[#t+1] = ""
+ end
+ end)
+ return t
+end
+
+function xml.collect_tags(root, pattern, nonamespace)
+ local t = { }
+ xml.traverse(root, xml.lpath(pattern), function(r,d,k)
+ local dk = d and d[k]
+ if dk and type(dk) == "table" then
+ local ns, tg = e.ns, e.tg
+ if nonamespace then
+ t[#t+1] = tg -- if needed we can return an extra table
+ elseif ns == "" then
+ t[#t+1] = tg
+ else
+ t[#t+1] = ns .. ":" .. tg
+ end
+ end
+ end)
+ return #t > 0 and {}
+end
+
+--[[ldx--
+<p>Often using an iterators looks nicer in the code than passing handler
+functions. The <l n='lua'/> book describes how to use coroutines for that
+purpose (<url href='http://www.lua.org/pil/9.3.html'/>). This permits
+code like:</p>
+
+<typing>
+for r, d, k in xml.elements(xml.load('text.xml'),"title") do
+ print(d[k])
+end
+</typing>
+
+<p>Which will print all the titles in the document. The iterator variant takes
+1.5 times the runtime of the function variant which is due to the overhead in
+creating the wrapper. So, instead of:</p>
+
+<typing>
+function xml.filters.first(root,pattern)
+ for rt,dt,dk in xml.elements(root,pattern)
+ return dt and dt[dk], rt, dt, dk
+ end
+ return nil, nil, nil, nil
+end
+</typing>
+
+<p>We use the function variants in the filters.</p>
+--ldx]]--
+
+local wrap, yield = coroutine.wrap, coroutine.yield
+
+function xml.elements(root,pattern,reverse)
+ return wrap(function() traverse(root, lpath(pattern), yield, reverse) end)
+end
+
+function xml.elements_only(root,pattern,reverse)
+ return wrap(function() traverse(root, lpath(pattern), function(r,d,k) yield(d[k]) end, reverse) end)
+end
+
+function xml.each_element(root, pattern, handle, reverse)
+ local ok
+ traverse(root, lpath(pattern), function(r,d,k) ok = true handle(r,d,k) end, reverse)
+ return ok
+end
+
+function xml.process_elements(root, pattern, handle)
+ traverse(root, lpath(pattern), function(r,d,k)
+ local dkdt = d[k].dt
+ if dkdt then
+ for i=1,#dkdt do
+ local v = dkdt[i]
+ if v.tg then handle(v) end
+ end
+ end
+ end)
+end
+
+function xml.process_attributes(root, pattern, handle)
+ traverse(root, lpath(pattern), function(r,d,k)
+ local ek = d[k]
+ local a = ek.at or { }
+ handle(a)
+ if next(a) then -- next is faster than type (and >0 test)
+ ek.at = a
+ else
+ ek.at = nil
+ end
+ end)
+end
+
+--[[ldx--
+<p>We've now arrives at the functions that manipulate the tree.</p>
+--ldx]]--
+
+function xml.inject_element(root, pattern, element, prepend)
+ if root and element then
+ local matches, collect = { }, nil
+ if type(element) == "string" then
+ element = convert(element,true)
+ end
+ if element then
+ collect = function(r,d,k) matches[#matches+1] = { r, d, k, element } end
+ traverse(root, lpath(pattern), collect)
+ for i=1,#matches do
+ local m = matches[i]
+ local r, d, k, element, edt = m[1], m[2], m[3], m[4], nil
+ if element.ri then
+ element = element.dt[element.ri].dt
+ else
+ element = element.dt
+ end
+ if r.ri then
+ edt = r.dt[r.ri].dt
+ else
+ edt = d and d[k] and d[k].dt
+ end
+ if edt then
+ local be, af
+ if prepend then
+ be, af = xml.copy(element), edt
+ else
+ be, af = edt, xml.copy(element)
+ end
+ for i=1,#af do
+ be[#be+1] = af[i]
+ end
+ if r.ri then
+ r.dt[r.ri].dt = be
+ else
+ d[k].dt = be
+ end
+ else
+ -- r.dt = element.dt -- todo
+ end
+ end
+ end
+ end
+end
+
+-- todo: copy !
+
+function xml.insert_element(root, pattern, element, before) -- todo: element als functie
+ if root and element then
+ if pattern == "/" then
+ xml.inject_element(root, pattern, element, before)
+ else
+ local matches, collect = { }, nil
+ if type(element) == "string" then
+ element = convert(element,true)
+ end
+ if element and element.ri then
+ element = element.dt[element.ri]
+ end
+ if element then
+ collect = function(r,d,k) matches[#matches+1] = { r, d, k, element } end
+ traverse(root, lpath(pattern), collect)
+ for i=#matches,1,-1 do
+ local m = matches[i]
+ local r, d, k, element = m[1], m[2], m[3], m[4]
+ if not before then k = k + 1 end
+ if element.tg then
+ insert(d,k,element) -- untested
+--~ elseif element.dt then
+--~ for _,v in ipairs(element.dt) do -- i added
+--~ insert(d,k,v)
+--~ k = k + 1
+--~ end
+--~ end
+ else
+ local edt = element.dt
+ if edt then
+ for i=1,#edt do
+ insert(d,k,edt[i])
+ k = k + 1
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+end
+
+xml.insert_element_after = xml.insert_element
+xml.insert_element_before = function(r,p,e) xml.insert_element(r,p,e,true) end
+xml.inject_element_after = xml.inject_element
+xml.inject_element_before = function(r,p,e) xml.inject_element(r,p,e,true) end
+
+function xml.delete_element(root, pattern)
+ local matches, deleted = { }, { }
+ local collect = function(r,d,k) matches[#matches+1] = { r, d, k } end
+ traverse(root, lpath(pattern), collect)
+ for i=#matches,1,-1 do
+ local m = matches[i]
+ deleted[#deleted+1] = remove(m[2],m[3])
+ end
+ return deleted
+end
+
+function xml.replace_element(root, pattern, element)
+ if type(element) == "string" then
+ element = convert(element,true)
+ end
+ if element and element.ri then
+ element = element.dt[element.ri]
+ end
+ if element then
+ traverse(root, lpath(pattern), function(rm, d, k)
+ d[k] = element.dt -- maybe not clever enough
+ end)
+ end
+end
+
+local function load_data(name) -- == io.loaddata
+ local f, data = io.open(name), ""
+ if f then
+ data = f:read("*all",'b') -- 'b' ?
+ f:close()
+ end
+ return data
+end
+
+function xml.include(xmldata,pattern,attribute,recursive,loaddata)
+ -- parse="text" (default: xml), encoding="" (todo)
+ -- attribute = attribute or 'href'
+ pattern = pattern or 'include'
+ loaddata = loaddata or load_data
+ local function include(r,d,k)
+ local ek, name = d[k], nil
+ if not attribute or attribute == "" then
+ local ekdt = ek.dt
+ name = (type(ekdt) == "table" and ekdt[1]) or ekdt
+ end
+ if not name then
+ if ek.at then
+ for a in gmatch(attribute or "href","([^|]+)") do
+ name = ek.at[a]
+ if name then break end
+ end
+ end
+ end
+ local data = (name and name ~= "" and loaddata(name)) or ""
+ if data == "" then
+ xml.empty(d,k)
+ elseif ek.at["parse"] == "text" then -- for the moment hard coded
+ d[k] = xml.escaped(data)
+ else
+ local xi = xml.convert(data)
+ if not xi then
+ xml.empty(d,k)
+ else
+ if recursive then
+ xml.include(xi,pattern,attribute,recursive,loaddata)
+ end
+ xml.assign(d,k,xi)
+ end
+ end
+ end
+ xml.each_element(xmldata, pattern, include)
+end
+
+function xml.strip_whitespace(root, pattern, nolines) -- strips all leading and trailing space !
+ traverse(root, lpath(pattern), function(r,d,k)
+ local dkdt = d[k].dt
+ if dkdt then -- can be optimized
+ local t = { }
+ for i=1,#dkdt do
+ local str = dkdt[i]
+ if type(str) == "string" then
+
+ if str == "" then
+ -- stripped
+ else
+ if nolines then
+ str = gsub(str,"[ \n\r\t]+"," ")
+ end
+ if str == "" then
+ -- stripped
+ else
+ t[#t+1] = str
+ end
+ end
+ else
+ t[#t+1] = str
+ end
+ end
+ d[k].dt = t
+ end
+ end)
+end
+
+local function rename_space(root, oldspace, newspace) -- fast variant
+ local ndt = #root.dt
+ for i=1,ndt or 0 do
+ local e = root[i]
+ if type(e) == "table" then
+ if e.ns == oldspace then
+ e.ns = newspace
+ if e.rn then
+ e.rn = newspace
+ end
+ end
+ local edt = e.dt
+ if edt then
+ rename_space(edt, oldspace, newspace)
+ end
+ end
+ end
+end
+
+xml.rename_space = rename_space
+
+function xml.remap_tag(root, pattern, newtg)
+ traverse(root, lpath(pattern), function(r,d,k)
+ d[k].tg = newtg
+ end)
+end
+function xml.remap_namespace(root, pattern, newns)
+ traverse(root, lpath(pattern), function(r,d,k)
+ d[k].ns = newns
+ end)
+end
+function xml.check_namespace(root, pattern, newns)
+ traverse(root, lpath(pattern), function(r,d,k)
+ local dk = d[k]
+ if (not dk.rn or dk.rn == "") and dk.ns == "" then
+ dk.rn = newns
+ end
+ end)
+end
+function xml.remap_name(root, pattern, newtg, newns, newrn)
+ traverse(root, lpath(pattern), function(r,d,k)
+ local dk = d[k]
+ dk.tg = newtg
+ dk.ns = newns
+ dk.rn = newrn
+ end)
+end
+
+function xml.filters.found(root,pattern,check_content)
+ local found = false
+ traverse(root, lpath(pattern), function(r,d,k)
+ if check_content then
+ local dk = d and d[k]
+ found = dk and dk.dt and next(dk.dt) and true
+ else
+ found = true
+ end
+ return true
+ end)
+ return found
+end
+
+--[[ldx--
+<p>Here are a few synonyms.</p>
+--ldx]]--
+
+xml.filters.position = xml.filters.index
+
+xml.count = xml.filters.count
+xml.index = xml.filters.index
+xml.position = xml.filters.index
+xml.first = xml.filters.first
+xml.last = xml.filters.last
+xml.found = xml.filters.found
+
+xml.each = xml.each_element
+xml.process = xml.process_element
+xml.strip = xml.strip_whitespace
+xml.collect = xml.collect_elements
+xml.all = xml.collect_elements
+
+xml.insert = xml.insert_element_after
+xml.inject = xml.inject_element_after
+xml.after = xml.insert_element_after
+xml.before = xml.insert_element_before
+xml.delete = xml.delete_element
+xml.replace = xml.replace_element
+
+--[[ldx--
+<p>The following helper functions best belong to the <t>lmxl-ini</t>
+module. Some are here because we need then in the <t>mk</t>
+document and other manuals, others came up when playing with
+this module. Since this module is also used in <l n='mtxrun'/> we've
+put them here instead of loading mode modules there then needed.</p>
+--ldx]]--
+
+function xml.gsub(t,old,new)
+ local dt = t.dt
+ if dt then
+ for k=1,#dt do
+ local v = dt[k]
+ if type(v) == "string" then
+ dt[k] = gsub(v,old,new)
+ else
+ xml.gsub(v,old,new)
+ end
+ end
+ end
+end
+
+function xml.strip_leading_spaces(dk,d,k) -- cosmetic, for manual
+ if d and k and d[k-1] and type(d[k-1]) == "string" then
+ local s = d[k-1]:match("\n(%s+)")
+ xml.gsub(dk,"\n"..string.rep(" ",#s),"\n")
+ end
+end
+
+function xml.serialize_path(root,lpath,handle)
+ local dk, r, d, k = xml.first(root,lpath)
+ dk = xml.copy(dk)
+ xml.strip_leading_spaces(dk,d,k)
+ xml.serialize(dk,handle)
+end
+
+--~ xml.escapes = { ['&'] = '&amp;', ['<'] = '&lt;', ['>'] = '&gt;', ['"'] = '&quot;' }
+--~ xml.unescapes = { } for k,v in pairs(xml.escapes) do xml.unescapes[v] = k end
+
+--~ function xml.escaped (str) return (gsub(str,"(.)" , xml.escapes )) end
+--~ function xml.unescaped(str) return (gsub(str,"(&.-;)", xml.unescapes)) end
+--~ function xml.cleansed (str) return (gsub(str,"<.->" , '' )) end -- "%b<>"
+
+local P, S, R, C, V, Cc, Cs = lpeg.P, lpeg.S, lpeg.R, lpeg.C, lpeg.V, lpeg.Cc, lpeg.Cs
+
+-- 100 * 2500 * "oeps< oeps> oeps&" : gsub:lpeg|lpeg|lpeg
+--
+-- 1021:0335:0287:0247
+
+-- 10 * 1000 * "oeps< oeps> oeps& asfjhalskfjh alskfjh alskfjh alskfjh ;al J;LSFDJ"
+--
+-- 1559:0257:0288:0190 (last one suggested by roberto)
+
+-- escaped = Cs((S("<&>") / xml.escapes + 1)^0)
+-- escaped = Cs((S("<")/"&lt;" + S(">")/"&gt;" + S("&")/"&amp;" + 1)^0)
+local normal = (1 - S("<&>"))^0
+local special = P("<")/"&lt;" + P(">")/"&gt;" + P("&")/"&amp;"
+local escaped = Cs(normal * (special * normal)^0)
+
+-- 100 * 1000 * "oeps&lt; oeps&gt; oeps&amp;" : gsub:lpeg == 0153:0280:0151:0080 (last one by roberto)
+
+-- unescaped = Cs((S("&lt;")/"<" + S("&gt;")/">" + S("&amp;")/"&" + 1)^0)
+-- unescaped = Cs((((P("&")/"") * (P("lt")/"<" + P("gt")/">" + P("amp")/"&") * (P(";")/"")) + 1)^0)
+local normal = (1 - S"&")^0
+local special = P("&lt;")/"<" + P("&gt;")/">" + P("&amp;")/"&"
+local unescaped = Cs(normal * (special * normal)^0)
+
+-- 100 * 5000 * "oeps <oeps bla='oeps' foo='bar'> oeps </oeps> oeps " : gsub:lpeg == 623:501 msec (short tags, less difference)
+
+local cleansed = Cs(((P("<") * (1-P(">"))^0 * P(">"))/"" + 1)^0)
+
+function xml.escaped (str) return escaped :match(str) end
+function xml.unescaped(str) return unescaped:match(str) end
+function xml.cleansed (str) return cleansed :match(str) end
+
+function xml.join(t,separator,lastseparator)
+ if #t > 0 then
+ local result = { }
+ for k,v in pairs(t) do
+ result[k] = xml.tostring(v)
+ end
+ if lastseparator then
+ return concat(result,separator or "",1,#result-1) .. (lastseparator or "") .. result[#result]
+ else
+ return concat(result,separator)
+ end
+ else
+ return ""
+ end
+end
+
+function xml.statistics()
+ return {
+ lpathcalls = lpathcalls,
+ lpathcached = lpathcached,
+ }
+end
+
+-- xml.set_text_cleanup(xml.show_text_entities)
+-- xml.set_text_cleanup(xml.resolve_text_entities)
+
+--~ xml.lshow("/../../../a/(b|c)[@d='e']/f")
+--~ xml.lshow("/../../../a/!(b|c)[@d='e']/f")
+--~ xml.lshow("/../../../a/!b[@d!='e']/f")
+
+--~ x = xml.convert([[
+--~ <a>
+--~ <b n='01'>01</b>
+--~ <b n='02'>02</b>
+--~ <b n='03'>03</b>
+--~ <b n='04'>OK</b>
+--~ <b n='05'>05</b>
+--~ <b n='06'>06</b>
+--~ <b n='07'>ALSO OK</b>
+--~ </a>
+--~ ]])
+
+--~ xml.settrace("lpath",true)
+
+--~ xml.xshow(xml.first(x,"b[position() > 2 and position() < 5 and text() == 'ok']"))
+--~ xml.xshow(xml.first(x,"b[position() > 2 and position() < 5 and text() == upper('ok')]"))
+--~ xml.xshow(xml.first(x,"b[@n=='03' or @n=='08']"))
+--~ xml.xshow(xml.all (x,"b[number(@n)>2 and number(@n)<6]"))
+--~ xml.xshow(xml.first(x,"b[find(text(),'ALSO')]"))
+
+--~ str = [[
+--~ <?xml version="1.0" encoding="utf-8"?>
+--~ <story line='mojca'>
+--~ <windows>my secret</mouse>
+--~ </story>
+--~ ]]
+
+--~ x = xml.convert([[
+--~ <a><b n='01'>01</b><b n='02'>02</b><x>xx</x><b n='03'>03</b><b n='04'>OK</b></a>
+--~ ]])
+--~ xml.xshow(xml.first(x,"b[tag(2) == 'x']"))
+--~ xml.xshow(xml.first(x,"b[tag(1) == 'x']"))
+--~ xml.xshow(xml.first(x,"b[tag(-1) == 'x']"))
+--~ xml.xshow(xml.first(x,"b[tag(-2) == 'x']"))
+
+--~ print(xml.filter(x,"b/tag(2)"))
+--~ print(xml.filter(x,"b/tag(1)"))
diff --git a/Master/texmf-dist/tex/context/base/lxml-tab.lua b/Master/texmf-dist/tex/context/base/lxml-tab.lua
new file mode 100644
index 00000000000..77c28f8d3b7
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/lxml-tab.lua
@@ -0,0 +1,783 @@
+if not modules then modules = { } end modules ['lxml-tab'] = {
+ version = 1.001,
+ comment = "this module is the basis for the lxml-* ones",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+--[[ldx--
+<p>The parser used here is inspired by the variant discussed in the lua book, but
+handles comment and processing instructions, has a different structure, provides
+parent access; a first version used different trickery but was less optimized to we
+went this route. First we had a find based parser, now we have an <l n='lpeg'/> based one.
+The find based parser can be found in l-xml-edu.lua along with other older code.</p>
+
+<p>Expecially the lpath code is experimental, we will support some of xpath, but
+only things that make sense for us; as compensation it is possible to hook in your
+own functions. Apart from preprocessing content for <l n='context'/> we also need
+this module for process management, like handling <l n='ctx'/> and <l n='rlx'/>
+files.</p>
+
+<typing>
+a/b/c /*/c
+a/b/c/first() a/b/c/last() a/b/c/index(n) a/b/c/index(-n)
+a/b/c/text() a/b/c/text(1) a/b/c/text(-1) a/b/c/text(n)
+</typing>
+
+<p>Beware, the interface may change. For instance at, ns, tg, dt may get more
+verbose names. Once the code is stable we will also remove some tracing and
+optimize the code.</p>
+--ldx]]--
+
+xml = xml or { }
+
+--~ local xml = xml
+
+local concat, remove, insert = table.concat, table.remove, table.insert
+local type, next, setmetatable = type, next, setmetatable
+local format, lower, find = string.format, string.lower, string.find
+
+--[[ldx--
+<p>This module can be used stand alone but also inside <l n='mkiv'/> in
+which case it hooks into the tracker code. Therefore we provide a few
+functions that set the tracers.</p>
+--ldx]]--
+
+local trace_remap = false
+
+if trackers then
+ trackers.register("xml.remap", function(v) trace_remap = v end)
+end
+
+function xml.settrace(str,value)
+ if str == "remap" then
+ trace_remap = value or false
+ end
+end
+
+--[[ldx--
+<p>First a hack to enable namespace resolving. A namespace is characterized by
+a <l n='url'/>. The following function associates a namespace prefix with a
+pattern. We use <l n='lpeg'/>, which in this case is more than twice as fast as a
+find based solution where we loop over an array of patterns. Less code and
+much cleaner.</p>
+--ldx]]--
+
+xml.xmlns = xml.xmlns or { }
+
+local check = lpeg.P(false)
+local parse = check
+
+--[[ldx--
+<p>The next function associates a namespace prefix with an <l n='url'/>. This
+normally happens independent of parsing.</p>
+
+<typing>
+xml.registerns("mml","mathml")
+</typing>
+--ldx]]--
+
+function xml.registerns(namespace, pattern) -- pattern can be an lpeg
+ check = check + lpeg.C(lpeg.P(lower(pattern))) / namespace
+ parse = lpeg.P { lpeg.P(check) + 1 * lpeg.V(1) }
+end
+
+--[[ldx--
+<p>The next function also registers a namespace, but this time we map a
+given namespace prefix onto a registered one, using the given
+<l n='url'/>. This used for attributes like <t>xmlns:m</t>.</p>
+
+<typing>
+xml.checkns("m","http://www.w3.org/mathml")
+</typing>
+--ldx]]--
+
+function xml.checkns(namespace,url)
+ local ns = parse:match(lower(url))
+ if ns and namespace ~= ns then
+ xml.xmlns[namespace] = ns
+ end
+end
+
+--[[ldx--
+<p>Next we provide a way to turn an <l n='url'/> into a registered
+namespace. This used for the <t>xmlns</t> attribute.</p>
+
+<typing>
+resolvedns = xml.resolvens("http://www.w3.org/mathml")
+</typing>
+
+This returns <t>mml</t>.
+--ldx]]--
+
+function xml.resolvens(url)
+ return parse:match(lower(url)) or ""
+end
+
+--[[ldx--
+<p>A namespace in an element can be remapped onto the registered
+one efficiently by using the <t>xml.xmlns</t> table.</p>
+--ldx]]--
+
+--[[ldx--
+<p>This version uses <l n='lpeg'/>. We follow the same approach as before, stack and top and
+such. This version is about twice as fast which is mostly due to the fact that
+we don't have to prepare the stream for cdata, doctype etc etc. This variant is
+is dedicated to Luigi Scarso, who challenged me with 40 megabyte <l n='xml'/> files that
+took 12.5 seconds to load (1.5 for file io and the rest for tree building). With
+the <l n='lpeg'/> implementation we got that down to less 7.3 seconds. Loading the 14
+<l n='context'/> interface definition files (2.6 meg) went down from 1.05 seconds to 0.55.</p>
+
+<p>Next comes the parser. The rather messy doctype definition comes in many
+disguises so it is no surprice that later on have to dedicate quite some
+<l n='lpeg'/> code to it.</p>
+
+<typing>
+<!DOCTYPE Something PUBLIC "... ..." "..." [ ... ] >
+<!DOCTYPE Something PUBLIC "... ..." "..." >
+<!DOCTYPE Something SYSTEM "... ..." [ ... ] >
+<!DOCTYPE Something SYSTEM "... ..." >
+<!DOCTYPE Something [ ... ] >
+<!DOCTYPE Something >
+</typing>
+
+<p>The code may look a bit complex but this is mostly due to the fact that we
+resolve namespaces and attach metatables. There is only one public function:</p>
+
+<typing>
+local x = xml.convert(somestring)
+</typing>
+
+<p>An optional second boolean argument tells this function not to create a root
+element.</p>
+--ldx]]--
+
+xml.strip_cm_and_dt = false -- an extra global flag, in case we have many includes
+
+-- not just one big nested table capture (lpeg overflow)
+
+local nsremap, resolvens = xml.xmlns, xml.resolvens
+
+local stack, top, dt, at, xmlns, errorstr, entities = {}, {}, {}, {}, {}, nil, {}
+
+local mt = { __tostring = xml.text }
+
+function xml.check_error(top,toclose)
+ return ""
+end
+
+local strip = false
+local cleanup = false
+
+function xml.set_text_cleanup(fnc)
+ cleanup = fnc
+end
+
+local function add_attribute(namespace,tag,value)
+ if cleanup and #value > 0 then
+ value = cleanup(value) -- new
+ end
+ if tag == "xmlns" then
+ xmlns[#xmlns+1] = resolvens(value)
+ at[tag] = value
+ elseif namespace == "xmlns" then
+ xml.checkns(tag,value)
+ at["xmlns:" .. tag] = value
+ else
+ at[tag] = value
+ end
+end
+
+local function add_begin(spacing, namespace, tag)
+ if #spacing > 0 then
+ dt[#dt+1] = spacing
+ end
+ local resolved = (namespace == "" and xmlns[#xmlns]) or nsremap[namespace] or namespace
+ top = { ns=namespace or "", rn=resolved, tg=tag, at=at, dt={}, __p__ = stack[#stack] }
+ setmetatable(top, mt)
+ dt = top.dt
+ stack[#stack+1] = top
+ at = { }
+end
+
+local function add_end(spacing, namespace, tag)
+ if #spacing > 0 then
+ dt[#dt+1] = spacing
+ end
+ local toclose = remove(stack)
+ top = stack[#stack]
+ if #stack < 1 then
+ errorstr = format("nothing to close with %s %s", tag, xml.check_error(top,toclose) or "")
+ elseif toclose.tg ~= tag then -- no namespace check
+ errorstr = format("unable to close %s with %s %s", toclose.tg, tag, xml.check_error(top,toclose) or "")
+ end
+ dt = top.dt
+ dt[#dt+1] = toclose
+ dt[0] = top
+ if toclose.at.xmlns then
+ remove(xmlns)
+ end
+end
+
+local function add_empty(spacing, namespace, tag)
+ if #spacing > 0 then
+ dt[#dt+1] = spacing
+ end
+ local resolved = (namespace == "" and xmlns[#xmlns]) or nsremap[namespace] or namespace
+ top = stack[#stack]
+ dt = top.dt
+ local t = { ns=namespace or "", rn=resolved, tg=tag, at=at, dt={}, __p__ = top }
+ dt[#dt+1] = t
+ setmetatable(t, mt)
+ if at.xmlns then
+ remove(xmlns)
+ end
+ at = { }
+end
+
+local function add_text(text)
+ if cleanup and #text > 0 then
+ dt[#dt+1] = cleanup(text)
+ else
+ dt[#dt+1] = text
+ end
+end
+
+local function add_special(what, spacing, text)
+ if #spacing > 0 then
+ dt[#dt+1] = spacing
+ end
+ if strip and (what == "@cm@" or what == "@dt@") then
+ -- forget it
+ else
+ dt[#dt+1] = { special=true, ns="", tg=what, dt={text} }
+ end
+end
+
+local function set_message(txt)
+ errorstr = "garbage at the end of the file: " .. gsub(txt,"([ \n\r\t]*)","")
+end
+
+local P, S, R, C, V = lpeg.P, lpeg.S, lpeg.R, lpeg.C, lpeg.V
+
+local space = S(' \r\n\t')
+local open = P('<')
+local close = P('>')
+local squote = S("'")
+local dquote = S('"')
+local equal = P('=')
+local slash = P('/')
+local colon = P(':')
+local valid = R('az', 'AZ', '09') + S('_-.')
+local name_yes = C(valid^1) * colon * C(valid^1)
+local name_nop = C(P(true)) * C(valid^1)
+local name = name_yes + name_nop
+
+local utfbom = P('\000\000\254\255') + P('\255\254\000\000') +
+ P('\255\254') + P('\254\255') + P('\239\187\191') -- no capture
+
+local spacing = C(space^0)
+local justtext = C((1-open)^1)
+local somespace = space^1
+local optionalspace = space^0
+
+local value = (squote * C((1 - squote)^0) * squote) + (dquote * C((1 - dquote)^0) * dquote)
+local attribute = (somespace * name * optionalspace * equal * optionalspace * value) / add_attribute
+local attributes = attribute^0
+
+local text = justtext / add_text
+local balanced = P { "[" * ((1 - S"[]") + V(1))^0 * "]" } -- taken from lpeg manual, () example
+
+local emptyelement = (spacing * open * name * attributes * optionalspace * slash * close) / add_empty
+local beginelement = (spacing * open * name * attributes * optionalspace * close) / add_begin
+local endelement = (spacing * open * slash * name * optionalspace * close) / add_end
+
+local begincomment = open * P("!--")
+local endcomment = P("--") * close
+local begininstruction = open * P("?")
+local endinstruction = P("?") * close
+local begincdata = open * P("![CDATA[")
+local endcdata = P("]]") * close
+
+local someinstruction = C((1 - endinstruction)^0)
+local somecomment = C((1 - endcomment )^0)
+local somecdata = C((1 - endcdata )^0)
+
+local function entity(k,v) entities[k] = v end
+
+local begindoctype = open * P("!DOCTYPE")
+local enddoctype = close
+local beginset = P("[")
+local endset = P("]")
+local doctypename = C((1-somespace)^0)
+local elementdoctype = optionalspace * P("<!ELEMENT") * (1-close)^0 * close
+local entitydoctype = optionalspace * P("<!ENTITY") * somespace * (doctypename * somespace * value)/entity * optionalspace * close
+local publicdoctype = doctypename * somespace * P("PUBLIC") * somespace * value * somespace * value * somespace
+local systemdoctype = doctypename * somespace * P("SYSTEM") * somespace * value * somespace
+local definitiondoctype= doctypename * somespace * beginset * P(elementdoctype + entitydoctype)^0 * optionalspace * endset
+local simpledoctype = (1-close)^1 -- * balanced^0
+local somedoctype = C((somespace * (publicdoctype + systemdoctype + definitiondoctype + simpledoctype) * optionalspace)^0)
+
+local instruction = (spacing * begininstruction * someinstruction * endinstruction) / function(...) add_special("@pi@",...) end
+local comment = (spacing * begincomment * somecomment * endcomment ) / function(...) add_special("@cm@",...) end
+local cdata = (spacing * begincdata * somecdata * endcdata ) / function(...) add_special("@cd@",...) end
+local doctype = (spacing * begindoctype * somedoctype * enddoctype ) / function(...) add_special("@dt@",...) end
+
+-- nicer but slower:
+--
+-- local instruction = (lpeg.Cc("@pi@") * spacing * begininstruction * someinstruction * endinstruction) / add_special
+-- local comment = (lpeg.Cc("@cm@") * spacing * begincomment * somecomment * endcomment ) / add_special
+-- local cdata = (lpeg.Cc("@cd@") * spacing * begincdata * somecdata * endcdata ) / add_special
+-- local doctype = (lpeg.Cc("@dt@") * spacing * begindoctype * somedoctype * enddoctype ) / add_special
+
+local trailer = space^0 * (justtext/set_message)^0
+
+-- comment + emptyelement + text + cdata + instruction + V("parent"), -- 6.5 seconds on 40 MB database file
+-- text + comment + emptyelement + cdata + instruction + V("parent"), -- 5.8
+-- text + V("parent") + emptyelement + comment + cdata + instruction, -- 5.5
+
+local grammar = P { "preamble",
+ preamble = utfbom^0 * instruction^0 * (doctype + comment + instruction)^0 * V("parent") * trailer,
+ parent = beginelement * V("children")^0 * endelement,
+ children = text + V("parent") + emptyelement + comment + cdata + instruction,
+}
+
+-- todo: xml.new + properties like entities and strip and such (store in root)
+
+function xml.convert(data, no_root, strip_cm_and_dt, given_entities) -- maybe use table met k/v (given_entities may disapear)
+ strip = strip_cm_and_dt or xml.strip_cm_and_dt
+ stack, top, at, xmlns, errorstr, result, entities = {}, {}, {}, {}, nil, nil, given_entities or {}
+ stack[#stack+1] = top
+ top.dt = { }
+ dt = top.dt
+ if not data or data == "" then
+ errorstr = "empty xml file"
+ elseif not grammar:match(data) then
+ errorstr = "invalid xml file"
+ else
+ errorstr = ""
+ end
+ if errorstr and errorstr ~= "" then
+ result = { dt = { { ns = "", tg = "error", dt = { errorstr }, at={}, er = true } }, error = true }
+ setmetatable(stack, mt)
+ if xml.error_handler then xml.error_handler("load",errorstr) end
+ else
+ result = stack[1]
+ end
+ if not no_root then
+ result = { special = true, ns = "", tg = '@rt@', dt = result.dt, at={}, entities = entities }
+ setmetatable(result, mt)
+ local rdt = result.dt
+ for k=1,#rdt do
+ local v = rdt[k]
+ if type(v) == "table" and not v.special then -- always table -)
+ result.ri = k -- rootindex
+ break
+ end
+ end
+ end
+ return result
+end
+
+--[[ldx--
+<p>Packaging data in an xml like table is done with the following
+function. Maybe it will go away (when not used).</p>
+--ldx]]--
+
+function xml.is_valid(root)
+ return root and root.dt and root.dt[1] and type(root.dt[1]) == "table" and not root.dt[1].er
+end
+
+function xml.package(tag,attributes,data)
+ local ns, tg = tag:match("^(.-):?([^:]+)$")
+ local t = { ns = ns, tg = tg, dt = data or "", at = attributes or {} }
+ setmetatable(t, mt)
+ return t
+end
+
+function xml.is_valid(root)
+ return root and not root.error
+end
+
+xml.error_handler = (logs and logs.report) or (input and logs.report) or print
+
+--[[ldx--
+<p>We cannot load an <l n='lpeg'/> from a filehandle so we need to load
+the whole file first. The function accepts a string representing
+a filename or a file handle.</p>
+--ldx]]--
+
+function xml.load(filename)
+ if type(filename) == "string" then
+ local f = io.open(filename,'r')
+ if f then
+ local root = xml.convert(f:read("*all"))
+ f:close()
+ return root
+ else
+ return xml.convert("")
+ end
+ elseif filename then -- filehandle
+ return xml.convert(filename:read("*all"))
+ else
+ return xml.convert("")
+ end
+end
+
+--[[ldx--
+<p>When we inject new elements, we need to convert strings to
+valid trees, which is what the next function does.</p>
+--ldx]]--
+
+function xml.toxml(data)
+ if type(data) == "string" then
+ local root = { xml.convert(data,true) }
+ return (#root > 1 and root) or root[1]
+ else
+ return data
+ end
+end
+
+--[[ldx--
+<p>For copying a tree we use a dedicated function instead of the
+generic table copier. Since we know what we're dealing with we
+can speed up things a bit. The second argument is not to be used!</p>
+--ldx]]--
+
+local function copy(old,tables)
+ if old then
+ tables = tables or { }
+ local new = { }
+ if not tables[old] then
+ tables[old] = new
+ end
+ for k,v in pairs(old) do
+ new[k] = (type(v) == "table" and (tables[v] or copy(v, tables))) or v
+ end
+ local mt = getmetatable(old)
+ if mt then
+ setmetatable(new,mt)
+ end
+ return new
+ else
+ return { }
+ end
+end
+
+xml.copy = copy
+
+--[[ldx--
+<p>In <l n='context'/> serializing the tree or parts of the tree is a major
+actitivity which is why the following function is pretty optimized resulting
+in a few more lines of code than needed. The variant that uses the formatting
+function for all components is about 15% slower than the concatinating
+alternative.</p>
+--ldx]]--
+
+-- todo: add <?xml version='1.0' standalone='yes'?> when not present
+
+local fallbackhandle = (tex and tex.sprint) or io.write
+
+local function serialize(e, handle, textconverter, attributeconverter, specialconverter, nocommands)
+ if not e then
+ return
+ elseif not nocommands then
+ local ec = e.command
+ if ec ~= nil then -- we can have all kind of types
+ if e.special then
+ local etg, edt = e.tg, e.dt
+ local spc = specialconverter and specialconverter[etg]
+ if spc then
+ local result = spc(edt[1])
+ if result then
+ handle(result)
+ return
+ else
+ -- no need to handle any further
+ end
+ end
+ end
+ local xc = xml.command
+ if xc then
+ xc(e,ec)
+ return
+ end
+ end
+ end
+ handle = handle or fallbackhandle
+ local etg = e.tg
+ if etg then
+ if e.special then
+ local edt = e.dt
+ local spc = specialconverter and specialconverter[etg]
+ if spc then
+ local result = spc(edt[1])
+ if result then
+ handle(result)
+ else
+ -- no need to handle any further
+ end
+ elseif etg == "@pi@" then
+ -- handle(format("<?%s?>",edt[1]))
+ handle("<?" .. edt[1] .. "?>")
+ elseif etg == "@cm@" then
+ -- handle(format("<!--%s-->",edt[1]))
+ handle("<!--" .. edt[1] .. "-->")
+ elseif etg == "@cd@" then
+ -- handle(format("<![CDATA[%s]]>",edt[1]))
+ handle("<![CDATA[" .. edt[1] .. "]]>")
+ elseif etg == "@dt@" then
+ -- handle(format("<!DOCTYPE %s>",edt[1]))
+ handle("<!DOCTYPE " .. edt[1] .. ">")
+ elseif etg == "@rt@" then
+ serialize(edt,handle,textconverter,attributeconverter,specialconverter,nocommands)
+ end
+ else
+ local ens, eat, edt, ern = e.ns, e.at, e.dt, e.rn
+ local ats = eat and next(eat) and { } -- type test maybe faster
+ if ats then
+ if attributeconverter then
+ for k,v in next, eat do
+ ats[#ats+1] = format('%s=%q',k,attributeconverter(v))
+ end
+ else
+ for k,v in next, eat do
+ ats[#ats+1] = format('%s=%q',k,v)
+ end
+ end
+ end
+ if ern and trace_remap and ern ~= ens then
+ ens = ern
+ end
+ if ens ~= "" then
+ if edt and #edt > 0 then
+ if ats then
+ -- handle(format("<%s:%s %s>",ens,etg,concat(ats," ")))
+ handle("<" .. ens .. ":" .. etg .. " " .. concat(ats," ") .. ">")
+ else
+ -- handle(format("<%s:%s>",ens,etg))
+ handle("<" .. ens .. ":" .. etg .. ">")
+ end
+ for i=1,#edt do
+ local e = edt[i]
+ if type(e) == "string" then
+ if textconverter then
+ handle(textconverter(e))
+ else
+ handle(e)
+ end
+ else
+ serialize(e,handle,textconverter,attributeconverter,specialconverter,nocommands)
+ end
+ end
+ -- handle(format("</%s:%s>",ens,etg))
+ handle("</" .. ens .. ":" .. etg .. ">")
+ else
+ if ats then
+ -- handle(format("<%s:%s %s/>",ens,etg,concat(ats," ")))
+ handle("<" .. ens .. ":" .. etg .. " " .. concat(ats," ") .. "/>")
+ else
+ -- handle(format("<%s:%s/>",ens,etg))
+ handle("<" .. ens .. ":" .. etg .. "/>")
+ end
+ end
+ else
+ if edt and #edt > 0 then
+ if ats then
+ -- handle(format("<%s %s>",etg,concat(ats," ")))
+ handle("<" .. etg .. " " .. concat(ats," ") .. ">")
+ else
+ -- handle(format("<%s>",etg))
+ handle("<" .. etg .. ">")
+ end
+ for i=1,#edt do
+ local ei = edt[i]
+ if type(ei) == "string" then
+ if textconverter then
+ handle(textconverter(ei))
+ else
+ handle(ei)
+ end
+ else
+ serialize(ei,handle,textconverter,attributeconverter,specialconverter,nocommands)
+ end
+ end
+ -- handle(format("</%s>",etg))
+ handle("</" .. etg .. ">")
+ else
+ if ats then
+ -- handle(format("<%s %s/>",etg,concat(ats," ")))
+ handle("<" .. etg .. " " .. concat(ats," ") .. "/>")
+ else
+ -- handle(format("<%s/>",etg))
+ handle("<" .. etg .. "/>")
+ end
+ end
+ end
+ end
+ elseif type(e) == "string" then
+ if textconverter then
+ handle(textconverter(e))
+ else
+ handle(e)
+ end
+ else
+ for i=1,#e do
+ local ei = e[i]
+ if type(ei) == "string" then
+ if textconverter then
+ handle(textconverter(ei))
+ else
+ handle(ei)
+ end
+ else
+ serialize(ei,handle,textconverter,attributeconverter,specialconverter,nocommands)
+ end
+ end
+ end
+end
+
+xml.serialize = serialize
+
+function xml.checkbom(root) -- can be made faster
+ if root.ri then
+ local dt, found = root.dt, false
+ for k=1,#dt do
+ local v = dt[k]
+ if type(v) == "table" and v.special and v.tg == "@pi" and find(v.dt,"xml.*version=") then
+ found = true
+ break
+ end
+ end
+ if not found then
+ insert(dt, 1, { special=true, ns="", tg="@pi@", dt = { "xml version='1.0' standalone='yes'"} } )
+ insert(dt, 2, "\n" )
+ end
+ end
+end
+
+--[[ldx--
+<p>At the cost of some 25% runtime overhead you can first convert the tree to a string
+and then handle the lot.</p>
+--ldx]]--
+
+function xml.tostring(root) -- 25% overhead due to collecting
+ if root then
+ if type(root) == 'string' then
+ return root
+ elseif next(root) then -- next is faster than type (and >0 test)
+ local result = { }
+ serialize(root,function(s) result[#result+1] = s end) -- brrr, slow (direct printing is faster)
+ return concat(result,"")
+ end
+ end
+ return ""
+end
+
+--[[ldx--
+<p>The next function operated on the content only and needs a handle function
+that accepts a string.</p>
+--ldx]]--
+
+function xml.string(e,handle)
+ if not handle or (e.special and e.tg ~= "@rt@") then
+ -- nothing
+ elseif e.tg then
+ local edt = e.dt
+ if edt then
+ for i=1,#edt do
+ xml.string(edt[i],handle)
+ end
+ end
+ else
+ handle(e)
+ end
+end
+
+--[[ldx--
+<p>How you deal with saving data depends on your preferences. For a 40 MB database
+file the timing on a 2.3 Core Duo are as follows (time in seconds):</p>
+
+<lines>
+1.3 : load data from file to string
+6.1 : convert string into tree
+5.3 : saving in file using xmlsave
+6.8 : converting to string using xml.tostring
+3.6 : saving converted string in file
+</lines>
+
+<p>The save function is given below.</p>
+--ldx]]--
+
+function xml.save(root,name)
+ local f = io.open(name,"w")
+ if f then
+ xml.serialize(root,function(s) f:write(s) end)
+ f:close()
+ end
+end
+
+--[[ldx--
+<p>A few helpers:</p>
+--ldx]]--
+
+function xml.body(root)
+ return (root.ri and root.dt[root.ri]) or root
+end
+
+function xml.text(root)
+ return (root and xml.tostring(root)) or ""
+end
+
+function xml.content(root) -- bugged
+ return (root and root.dt and xml.tostring(root.dt)) or ""
+end
+
+function xml.isempty(root, pattern)
+ if pattern == "" or pattern == "*" then
+ pattern = nil
+ end
+ if pattern then
+ -- todo
+ return false
+ else
+ return not root or not root.dt or #root.dt == 0 or root.dt == ""
+ end
+end
+
+--[[ldx--
+<p>The next helper erases an element but keeps the table as it is,
+and since empty strings are not serialized (effectively) it does
+not harm. Copying the table would take more time. Usage:</p>
+
+<typing>
+dt[k] = xml.empty() or xml.empty(dt,k)
+</typing>
+--ldx]]--
+
+function xml.empty(dt,k)
+ if dt and k then
+ dt[k] = ""
+ return dt[k]
+ else
+ return ""
+ end
+end
+
+--[[ldx--
+<p>The next helper assigns a tree (or string). Usage:</p>
+
+<typing>
+dt[k] = xml.assign(root) or xml.assign(dt,k,root)
+</typing>
+--ldx]]--
+
+function xml.assign(dt,k,root)
+ if dt and k then
+ dt[k] = (type(root) == "table" and xml.body(root)) or root
+ return dt[k]
+ else
+ return xml.body(root)
+ end
+end
diff --git a/Master/texmf-dist/tex/context/base/m-arabtex.tex b/Master/texmf-dist/tex/context/base/m-arabtex.tex
index af721338765..61e56e93aca 100644
--- a/Master/texmf-dist/tex/context/base/m-arabtex.tex
+++ b/Master/texmf-dist/tex/context/base/m-arabtex.tex
@@ -21,7 +21,7 @@
% ......
% \stoparabic
-\writestatus{loading}{Context Font Macros / ArabTeX support}
+\writestatus{loading}{ConTeXt Font Macros / ArabTeX support}
%D At the \NTG\ 10\high{th} anniversary meeting Klaus Lagally
%D introduced the audience to arabic typesetting, and after
diff --git a/Master/texmf-dist/tex/context/base/m-chart.tex b/Master/texmf-dist/tex/context/base/m-chart.tex
index f5d0ea7b90b..c8928f2d5ee 100644
--- a/Master/texmf-dist/tex/context/base/m-chart.tex
+++ b/Master/texmf-dist/tex/context/base/m-chart.tex
@@ -11,7 +11,9 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-% to do: \localpushmacro/\localpopmacro (dohandleflowchart etc)
+% todo: \localpushmacro/\localpopmacro (dohandleflowchart etc)
+% todo: make mkiv variant
+% todo: use dimexpr/numspr
% will be redone with layers and dimexpr ro even better, by just using
% textext
@@ -185,10 +187,10 @@
\def\dodoFLOWconnection[#1][#2]#3%
{\ignorespaces}
-\def\doFLOWconnect%
+\def\doFLOWconnect
{\connection}
-\def\doFLOWlocate%
+\def\doFLOWlocate
{\location}
\def\doFLOWexit[#1]#2%
@@ -300,26 +302,19 @@
\popmacro\includeFLOWx
\popmacro\includeFLOWy}
-%\def\setFLOWlocation#1,#2\end%
-% {\scratchcounter=0#1\advance\scratchcounter\includeFLOWx
-% \xdef\FLOWlocation{\the\scratchcounter}%
-% \scratchcounter=0#2\advance\scratchcounter\includeFLOWy
-% \xdef\FLOWlocation{\FLOWlocation,\the\scratchcounter}}
-
\def\resetFLOWlocation
- {\gdef\lastFLOWx{0}%
- \gdef\lastFLOWy{0}}
+ {\globallet\lastFLOWx\!!zerocount
+ \globallet\lastFLOWy\!!zerocount}
\def\dosetFLOWlocation[#1#2]#3#4%
{\processaction
[#1#2]
- [ +=>\scratchcounter=#4\advance\scratchcounter+1,
- -=>\scratchcounter=#4\advance\scratchcounter-1,
- +#2=>\scratchcounter=#4\advance\scratchcounter+#2,
- -#2=>\scratchcounter=#4\advance\scratchcounter-#2,
- \s!default=>\scratchcounter=#4,
- \s!unknown=>\scratchcounter=0#1#2]%
- \advance\scratchcounter#3%
+ [ +=>\scratchcounter\numexpr#4+ 1+#3\relax,
+ -=>\scratchcounter\numexpr#4- 1+#3\relax,
+ +#2=>\scratchcounter\numexpr#4+#2+#3\relax,
+ -#2=>\scratchcounter\numexpr#4-#2+#3\relax,
+ \s!default=>\scratchcounter\numexpr#4 +#3\relax,
+ \s!unknown=>\scratchcounter\numexpr0#1#2+#3\relax]%
\xdef#4{\the\scratchcounter}}
\def\setFLOWlocation#1,#2\end
@@ -340,8 +335,8 @@
{\donefalse
\let\cFLOWfrom\empty
\let\cFLOWto\empty
- \def\zFLOWfrom{0}%
- \def\zFLOWto{0}%
+ \let\zFLOWfrom\!!zerocount
+ \let\zFLOWto\!!zerocount
\handletokens#1\with\doFLOWsetconnect
\ifx\cFLOWto\empty\let\cFLOWfrom\empty\fi}
@@ -404,7 +399,7 @@
\ifFLOWscaling
\doifnothing{\@@FLOWmaxwidth }{\let\@@FLOWmaxwidth \maxdimen}%
\doifnothing{\@@FLOWmaxheight}{\let\@@FLOWmaxheight\maxdimen}%
- \scratchcounter=\bodyfontpoints
+ \scratchcounter\bodyfontpoints
\doloop % NOG FONTSWITCH OM EX EN EM TE LATEN WERKEN
{\ifnum\scratchcounter>1 % NU DIMENSIONS IN TERMS OF BODYFONTSIZE
\bodyfontsize=\the\scratchcounter pt
@@ -492,23 +487,7 @@
connection_smooth_size := \@@FLOLradius ;
connection_arrow_size := \@@FLOLradius ;
connection_dash_size := \@@FLOLradius ;
-% \stopMPdrawing
-% \def\getFLOWlocationX##1,##2\end%
-% {\ifnum0##1>\FLOWwidth \xdef\FLOWwidth {##1}\fi
-% \ifnum0##2>\FLOWheight\xdef\FLOWheight{##2}\fi}%
-% \long\def\startFLOWcellX##1\stopFLOWcell%
-% {\resetFLOWcell
-% \ignorespaces##1\unskip
-% \expandafter\getFLOWlocationX\FLOWlocation\end
-% \ignorespaces}%
-% \let\startFLOWcell\startFLOWcellX
-% \resetFLOWlocation
-% \processFLOWbuffer\currentFLOWnumber
-% \ifnum\@@FLOWnx\@@FLOWny=11 % listig
-% \let\@@FLOWnx\FLOWwidth
-% \let\@@FLOWny\FLOWheight
-% \fi
-% \startMPdrawing
+ currentpicture := nullpicture ;
begin_chart(0,\FLOWwidth,\FLOWheight);
reverse_y := true ;
chart_offset := \@@FLOW@@offset ;
@@ -1026,7 +1005,8 @@
\ifnum\!!counta<1 \!!counta=1 \fi
\edef#4{\the\!!counta}%
\else
- \def#1{1}\def#4{0}% no {1}
+ \let#1\!!plusone
+ \let#4\!!zerocount % no {1}
\fi}
% \useFLOWchart[name][parent][setting,setting][additional settings]
@@ -1086,8 +1066,8 @@
\def\dogetFLOWsize[#1][#2]%
{\setbox\scratchbox=\vbox
- {\xdef\FLOWmaxwidth {0}%
- \xdef\FLOWmaxheight{0}%
+ {\globallet\FLOWmaxwidth \!!zerocount
+ \globallet\FLOWmaxheight\!!zerocount
\def\getFLOWlocation##1,##2\end
{\ifnum0##1>\FLOWmaxwidth \xdef\FLOWmaxwidth {##1}\fi
\ifnum0##2>\FLOWmaxheight\xdef\FLOWmaxheight{##2}\fi}%
diff --git a/Master/texmf-dist/tex/context/base/m-chemic.mkii b/Master/texmf-dist/tex/context/base/m-chemic.mkii
new file mode 100644
index 00000000000..e6980e1ffea
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/m-chemic.mkii
@@ -0,0 +1,21 @@
+%D \module
+%D [ file=ppchtex (m-chemic),
+%D version=1997.03.19,
+%D title=\CONTEXT\ Extra Modules,
+%D subtitle=\PPCHTEX\ (Plain Pictex Context cHemie \TEX),
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten},
+%D suggestions={Tobias Burnus, Dirk Kuypers \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\ifx\psaxes\undefined \ifx\beginpicture\undefined
+ \usemodule[pictex]
+\fi \fi
+
+\input ppchtex.mkii \relax
+
+\endinput
diff --git a/Master/texmf-dist/tex/context/base/m-chemic.mkiv b/Master/texmf-dist/tex/context/base/m-chemic.mkiv
new file mode 100644
index 00000000000..4cc1e3bd898
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/m-chemic.mkiv
@@ -0,0 +1,19 @@
+%D \module
+%D [ file=ppchtex (m-chemic),
+%D version=1997.03.19,
+%D title=\CONTEXT\ Extra Modules,
+%D subtitle=\PPCHTEX\ (Plain Pictex Context cHemie \TEX),
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten},
+%D suggestions={Tobias Burnus, Dirk Kuypers \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\usemodule[pictex] % we will get rid of this
+
+\input ppchtex.mkiv \relax
+
+\endinput
diff --git a/Master/texmf-dist/tex/context/base/m-chemic.tex b/Master/texmf-dist/tex/context/base/m-chemic.tex
index 25eb62db548..7bacf4a9048 100644
--- a/Master/texmf-dist/tex/context/base/m-chemic.tex
+++ b/Master/texmf-dist/tex/context/base/m-chemic.tex
@@ -12,14 +12,6 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\ifx\directlua\undefined
- \ifx\psaxes\undefined \ifx\beginpicture\undefined
- \usemodule[pictex]
- \fi \fi
-\else
- \usemodule[pictex]
-\fi
-
-\input ppchtex.tex \relax
+\loadmarkfile{m-chemic}
\endinput
diff --git a/Master/texmf-dist/tex/context/base/m-database.tex b/Master/texmf-dist/tex/context/base/m-database.tex
index 6cb9a6b6c91..c4fba132a24 100644
--- a/Master/texmf-dist/tex/context/base/m-database.tex
+++ b/Master/texmf-dist/tex/context/base/m-database.tex
@@ -265,7 +265,7 @@
\fi}
\def\doprocessseparatedline
- {\doifnextcharelse\bgroup\xdoprocessseparatedline\ydoprocessseparatedline}
+ {\doifnextbgroupelse\xdoprocessseparatedline\ydoprocessseparatedline}
\def\dodoprocessseparatedline
{\doprocessseparatedline}
diff --git a/Master/texmf-dist/tex/context/base/core-dat.tex b/Master/texmf-dist/tex/context/base/m-datastrc.tex
index dc39f979f9c..4a6faa66b28 100644
--- a/Master/texmf-dist/tex/context/base/core-dat.tex
+++ b/Master/texmf-dist/tex/context/base/m-datastrc.tex
@@ -1,7 +1,7 @@
%D \module
-%D [ file=core-dat, % was core-02a,
+%D [ file=m-datastrc, % was: core-dat % was core-02a
%D version=1999.08.10, % 1997.03.31,
-%D title=\CONTEXT\ Core Macros,
+%D title=\CONTEXT\ Modules,
%D subtitle=Database Support, % 2A
%D author=Hans Hagen,
%D date=\currentdate,
@@ -11,75 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-% THIS WILL DISAPPEAR, I.E. BE MOVED TO A MODULE
-
-\writestatus{loading}{Context Database Support}
-
-\startmessages dutch library: databases
- title: database
- 1: --
- 2: lokaal bestand --
- 3: globaal bestand --
- 4: onbekend bestand --
-\stopmessages
-
-\startmessages english library: databases
- title: databases
- 1: --
- 2: local file --
- 3: global file --
- 4: unknown file --
-\stopmessages
-
-\startmessages german library: databases
- title: Datenbank
- 1: --
- 2: lokale Datei --
- 3: globale Datei --
- 4: unbekannte Datei --
-\stopmessages
-
-% TOM :
-
-\startmessages czech library: databases
- title: databases
- 1: --
- 2: local file --
- 3: global file --
- 4: unknown file --
-\stopmessages
-
-\startmessages italian library: databases
- title: database
- 1: --
- 2: file locale --
- 3: file globale --
- 4: file sconosciuto --
-\stopmessages
-
-\startmessages norwegian library: databases
- title: databaser
- 1: --
- 2: lokal fil --
- 3: global fil --
- 4: ukjent fil --
-\stopmessages
-
-\startmessages romanian library: databases
- title: baze de date
- 1: --
- 2: fisier local --
- 3: fisier global --
- 4: fisier necunoscut --
-\stopmessages
-
-\startmessages french library: databases
- title: bases de données
- 1: --
- 2: fichier local --
- 3: fichier global --
- 4: fichier inconnu --
-\stopmessages
+\writestatus{loading}{ConTeXt Core Macros / Database Support}
\unprotect
@@ -290,7 +222,7 @@
%D character can be non standard|>| this is not faster.
%D
%D Although this mechanism could have been combined with the
-%D block moving mechaism, the current implementation is
+%D block moving mechanism, the current implementation is
%D prefered out of speed reasons.
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/m-educat.tex b/Master/texmf-dist/tex/context/base/m-educat.tex
index 38567bf4e37..ddfb72ff4ed 100644
--- a/Master/texmf-dist/tex/context/base/m-educat.tex
+++ b/Master/texmf-dist/tex/context/base/m-educat.tex
@@ -18,39 +18,6 @@
\unprotect
-\startvariables dutch english
- german czech
- italian romanian
-
- answerarea: antwoordgebied answerarea
- answerarea answerarea
- answerarea answerarea
-
-\stopvariables
-
-\startelements dutch english
- german czech
- italian romanian
-
- answerspace: antwoordruimte answerspace
- answerspace answerspace
- answerspace answerspace
- answerlines: antwoordregels answerlines
- answerlines answerlines
- answerlines answerlines
-
-\stopelements
-
-\startcommands dutch english
- german czech
- italian romanian
-
- setupanswerarea: stelantwoordgebiedin setupanswerarea
- setupanswerarea setupanswerarea
- setupanswerarea setupanswerarea
-
-\stopcommands
-
\definesystemvariable{iv}
\definecolor [answerareacolor] [s=.90]
diff --git a/Master/texmf-dist/tex/context/base/m-format.tex b/Master/texmf-dist/tex/context/base/m-format.tex
new file mode 100644
index 00000000000..0f274b236e1
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/m-format.tex
@@ -0,0 +1,409 @@
+%D \module
+%D [ file=m-formay,
+%D version=ancient,
+%D title=\CONTEXT\ Modules,
+%D subtitle=Ancient Formatting Code,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D Here is some code that I had laying around and had forgotten
+%D about. Let's make it a module and see if there is interest in
+%D such things.
+
+% \defineformatblock [poem]
+% \defineformatsegment [verse] % [poem]
+% \defineformatline [line] % [verse]
+%
+% \startpoem [title] [author]
+% \startverse [ref]
+% \startline [ref]
+%
+% block : voor na tussen *tekstletter *tekstkleur
+%
+% segment : voor na tussen *tekstletter *tekstkleur
+% : links rechts linkeroffset rechteroffset
+% : ?marge *evenmarge *onevenmarge breedte
+% : nummer *nummercommando *conversie
+% : nummerletter nummerkleur *label
+%
+% line : voor na tussen *tekstletter *tekstkleur
+% : nummer *nummercommando *conversie
+% : nummerletter nummerkleur *label
+%
+% * = todo
+
+\unprotect
+
+\definesystemvariable {fx} % format block
+\definesystemvariable {fy} % format segment
+\definesystemvariable {fz} % format line
+
+\def\defineformatblock
+ {\dodoubleempty\dodefineformatblock}
+
+\def\dodefineformatblock[#1][#2]%
+ {\setupformatblock
+ [#1]
+ [\c!before=\blank,\c!after=\blank,\c!inbetween=\blank,
+ \c!textstyle=,\c!textcolor=,#2]%
+ \setvalue{\e!start#1}{\startformatblock[#1]}%
+ \setvalue{\e!stop #1}{\stopformatblock}}
+
+\def\setupformatblock
+ {\dodoubleempty\dosetupformatblock}
+
+\def\setupformatblock[#1]%
+ {\getparameters[\??fx#1]}
+
+\def\startformatblock[#1]%
+ {\dotriplegroupempty\dostartformatblock{#1}}
+
+\def\dostartformatblock#1#2#3
+ {\bgroup
+ \getvalue{\??fx#1\c!before}
+ \doglobal\newcounter\formatsegmentcounter
+ \doglobal\newcounter\formatlinecounter
+ \doglobal\newcounter\formatlinesubcounter
+ \doglobal\newcounter\formatlinemaxcounter
+ \doifsomething{#2}{\leftaligned{#2}\getvalue{\??fx#1\c!inbetween}}
+ \def\stopformatblock%
+ {\doifsomething{#3}{\getvalue{\??fx#1\c!inbetween}\leftaligned{#3}}
+ \getvalue{\??fx#1\c!after}
+ \egroup}}
+
+\def\defineformatsegment
+ {\dodoubleempty\dodefineformatsegment}
+
+\def\dodefineformatsegment[#1][#2]%
+ {\setupformatsegment
+ [#1]
+ [\c!before=\blank,\c!after=\blank,\c!inbetween=\blank,
+ \c!textstyle=,\c!textcolor=,\c!left=,\c!right=,
+ \c!leftoffset=\!!zeropoint,\c!rightoffset=\!!zeropoint,
+ %\c!margin=\!!zeropoint,\c!evenmargin=\!!zeropoint,\c!oddmargin=\hsize,
+ \c!width=\hsize,\c!numberstyle=,\c!numbercolor=,\c!number=\v!no,
+ \c!numbercommand=,\c!conversion=,\c!label=,
+ #2]%
+ \setvalue{\e!start#1}{\startformatsegment[#1]}%
+ \setvalue{\e!stop #1}{\stopformatsegment}}
+
+\def\setupformatsegment
+ {\dodoubleempty\dosetupformatsegment}
+
+\def\setupformatsegment[#1]%
+ {\getparameters[\??fy#1]}
+
+\def\placeformatsegmentcounter
+ {\formatsegmentcounter\quad\hphantom{\placeformatlinecounter}}
+
+\def\placeformatlinecounter
+ {\formatlinecounter}
+
+\def\startformatsegment[#1]%
+ {\bgroup
+ \doifelsevalue{\??fy#1\c!number}\v!yes
+ {\def\doplaceformatsegmentcounter
+ {\inleftmargin
+ {\doattributes{\??fy#1}\c!numberstyle\c!numbercolor
+ {\placeformatsegmentcounter}}}}
+ {\let\doplaceformatsegmentcounter\relax}%
+ \getvalue{\??fy#1\c!before}
+ \doglobal\increment\formatsegmentcounter
+ \def\formatrightoffset{\getvalue{\??fy#1\c!rightoffset}}
+ \def\formatleftoffset {\getvalue{\??fy#1\c!leftoffset}}
+ \def\formatminwidth {\getvalue{\??fy#1\c!minwidth}}
+ \def\formatwidth {\getvalue{\??fy#1\c!width}}
+ %\def\formatmargin {\getvalue{\??fy#1\c!margin}}
+ \def\formatbefore {\getvalue{\??fy#1\c!before}}
+ \def\formatinbetween {\getvalue{\??fy#1\c!inbetween}}
+ \def\formatafter {\getvalue{\??fy#1\c!after}}
+ \def\formatleft {\getvalue{\??fy#1\c!left}}
+ \def\formatright {\getvalue{\??fy#1\c!right}}
+ \@@segmentvarianta
+ \getvalue{@@segmentvariant\getvalue{\??fy#1\c!alternative}}
+ \def\stopformatsegment
+ {\getvalue{\??fy#1\c!after}
+ \egroup}}
+
+\newif\iftraceformatblock
+
+\def\@@segmentvarianta % ragged right, symbols
+ {\let\formatraggedness\raggedright
+ \let\dostartformatline\dostartformatlineab
+ \let\formatleftfirst\relax \let\formatrightfirst\hfill
+ \let\formatleftnext \hfill \let\formatrightnext \relax}
+
+\def\@@segmentvariantb % ragged right, equal parts, symbols
+ {\let\formatraggedness\raggedcenter
+ \let\dostartformatline\dostartformatlineab
+ \let\formatleftfirst\relax \let\formatrightfirst\hfill
+ \let\formatleftnext \hfill \let\formatrightnext \relax}
+
+\def\@@segmentvariantc % ragged right
+ {\let\formatraggedness\veryraggedright
+ \let\dostartformatline\dostartformatlinecde
+ \let\formatleftnext\relax \let\formatrightnext\hfill}
+
+\def\@@segmentvariantd % ragged center
+ {\let\formatraggedness\veryraggedcenter
+ \let\dostartformatline\dostartformatlinecde
+ \let\formatleftnext\hfill \let\formatrightnext\hfill}
+
+\def\@@segmentvariante % ragged left
+ {\let\formatraggedness\veryraggedleft
+ \let\dostartformatline\dostartformatlinecde
+ \let\formatleftnext\hfill \let\formatrightnext\relax}
+
+\def\defineformatline
+ {\dodoubleempty\dodefineformatline}
+
+\def\dodefineformatline[#1][#2]%
+ {\setupformatline
+ [#1]
+ [\c!before=\blank,\c!after=\blank,\c!inbetween=\blank,
+ \c!textstyle=,\c!textcolor=,
+ \c!number=\v!no,\c!numbercommand=,\c!conversion=,
+ \c!numberstyle=,\c!numbercolor=,\c!label=,
+ #2]%
+ \setvalue{\e!start#1}{\startformatline[#1]}%
+ \setvalue{\e!stop #1}{\stopformatline}}
+
+\def\setupformatline
+ {\dodoubleempty\dosetupformatline}
+
+\def\setupformatline[#1]%
+ {\getparameters[\??fz#1]}
+
+\newconditional\formatforcedbreak
+
+\def\startformatline[#1]%
+ {\bgroup
+ \doifelsevalue{\??fz#1\c!number}\v!yes
+ {\def\doplaceformatlinecounter
+ {\inleftmargin
+ {\doattributes{\??fz#1}\c!numberstyle\c!numbercolor
+ {\placeformatlinecounter}}}}
+ {\let\doplaceformatlinecounter\relax}%
+ \global\setfalse\formatforcedbreak
+ \def\\{\break\global\settrue\formatforcedbreak}%
+ \hsize\formatwidth
+ \doglobal\increment\formatlinecounter
+ \par
+ \nobreak
+ \def\stopformatline
+ {\unskip\unskip\unskip\unskip\unskip\egroup
+ \let\doplaceformatsegmentcounter\relax}
+ \postponenotes
+ \dowithnextbox{\dostartformatline}\hbox\bgroup\ignorespaces}
+
+\def\dostartformatlineab
+ {%\dosetleftskipadaption\formatmargin
+ %\advance\hsize-\leftskipadaption\relax
+ \ifdim\nextboxwd>\hsize
+ \beginofshapebox
+ \forgetall
+ \hangafter\plusone
+ \hangindent\formatleftoffset
+ \formatraggedness
+ \hskip\formatrightoffset
+ \unhbox\nextbox\par
+ \endofshapebox
+ %\advance\hsize \leftskipadaption
+ \doglobal\newcounter\formatlinesubcounter
+ \reshapebox
+ {\doglobal\increment\formatlinesubcounter}
+ \global\let\formatlinemaxcounter\formatlinesubcounter
+ \reshapebox
+ {\doglobal\decrement\formatlinesubcounter
+ \ifnum\formatlinesubcounter=\zerocount
+ \doplaceformatsegmentcounter
+ \doplaceformatlinecounter
+ \hskip-\formatrightoffset
+ %\hskip\leftskipadaption
+ \formatleftfirst
+ \unhbox\shapebox
+ \ifnum\formatlinemaxcounter>\plusone
+ \ifx\formatright\empty\else
+ \shapedhbox to \zeropoint{\formatright\hss}%
+ \fi
+ \fi
+ \formatrightfirst
+ \iftraceformatblock
+ \ruledhskip\formatrightoffset\hskip-\formatrightoffset
+ \fi
+ \else
+ %\hskip\leftskipadaption
+ \iftraceformatblock
+ \ruledhskip\formatleftoffset\hskip-\formatleftoffset
+ \fi
+ \formatleftnext
+ \ifx\formatleft\empty\else
+ \shapedhbox to \zeropoint{\hss\formatleft}%
+ \fi
+ \unhbox\shapebox
+ \formatrightnext
+ \fi}
+ \flushshapebox
+ \else
+ \dontleavehmode\hbox
+ {\doplaceformatsegmentcounter
+ \doplaceformatlinecounter
+ %\hskip\leftskipadaption
+ \formatleftfirst
+ \unhbox\nextbox
+ \formatrightfirst}
+ \fi
+ \par
+ \egroup}
+
+\def\dostartformatlinecde
+ {%\dosetleftskipadaption\formatmargin
+ %\advance\hsize -\leftskipadaption\relax
+ \dimen0=\hsize
+ \ifconditional\formatforcedbreak\else
+ \ifdim\formatminwidth>\zeropoint\relax
+ \ifdim\nextboxwd>\hsize
+ \doloop
+ {\global\dimen1=\dimen0
+ \beginofshapebox
+ \hsize\dimen0
+ \forgetall
+ \formatraggedness
+ \unhcopy\nextbox\par
+ \endofshapebox
+ \reshapebox
+ {\setbox\scratchbox=\hbox{\unhbox\shapebox}%
+ \ifdim\wd\scratchbox<\dimen1
+ \global\dimen1=\wd\scratchbox
+ \fi}
+ \ifdim\dimen1<\formatminwidth\relax
+ \advance\dimen0 by -.25em
+ \else
+ \exitloop
+ \fi
+ \ifdim\dimen0<10em
+ \dimen0=\hsize
+ \exitloop
+ \fi}
+ \fi
+ \fi
+ \fi
+ \beginofshapebox
+ \hsize\dimen0
+ \forgetall
+ \formatraggedness
+ \unhcopy\nextbox\par
+ \endofshapebox
+ %\advance\hsize \leftskipadaption
+ \doglobal\newcounter\formatlinesubcounter
+ \reshapebox
+ {\doglobal\increment\formatlinesubcounter}%
+ \global\let\formatlinemaxcounter\formatlinesubcounter
+ \reshapebox
+ {\doglobal\decrement\formatlinesubcounter
+ \ifnum\formatlinesubcounter=\zerocount
+ \doplaceformatsegmentcounter
+ \doplaceformatlinecounter
+ \fi
+ %\hskip\leftskipadaption
+ \formatleftnext
+ \unhbox\shapebox
+ \formatrightnext\strut}% strut prevents unskip
+ \flushshapebox
+ \par
+ \egroup}
+
+\defineformatblock[poem]
+ [\c!before=\blank,
+ \c!inbetween={\blank[\v!medium]},
+ \c!after=\blank]
+
+\defineformatsegment[verse]
+ [\c!alternative=\v!left,
+ \c!width=\hsize,
+ %\c!margin=\!!zeropoint,
+ \c!before={\blank[\v!medium]},
+ \c!after={\blank[\v!medium]},
+ \c!inbetween={\blank[\v!medium]},
+ \c!leftoffset=3em,
+ \c!rightoffset=2em,
+ \c!minwidth=5em,
+ \c!left={$[$\enspace},
+ \c!right={\enspace$]$}]
+
+\defineformatline[line]
+ []
+
+\protect \doifnotmode{demo} {\endinput}
+
+% evt defineblank[formatbefore,formatinbetween,formatafter]
+
+%\showframe \traceformatblocktrue
+
+\usemodule[visual]
+
+\setuplayout[height=middle,topspace=1cm,header=0pt,footer=0pt]
+\setupbodyfont[10pt]
+
+% All interfaces supported, but testing with english; todo:
+% more options, more alternatives, inheritance and mixed
+% definitions, and so.
+
+\starttext
+
+\startbuffer
+\startbuffer[poem]
+\startpoem{A Random Poem}{Hans Hagen}
+ \startverse
+ \startline \fakewords{4}{8} \stopline
+ \startline \fakewords{4}{8} \stopline
+ \startline \fakewords{4}{8} \stopline
+ \startline \fakewords{4}{8} \stopline
+ \stopverse
+ \startverse
+ \startline \fakewords{4}{8} \stopline
+ \startline \fakewords{4}{8} \stopline
+ \startline \fakewords{4}{8} \stopline
+ \startline \fakewords{4}{8} \stopline
+ \stopverse
+\stoppoem
+\stopbuffer
+
+\setupformatsegment[verse][width=.4\hsize,number=yes,numberstyle=slanted]
+\setupformatline [line] [number=yes,numberstyle=smallslanted]
+
+\startbuffer[x]
+\setupformatsegment[verse][leftoffset=0pt,rightoffset=0pt,left=,right=]
+\stopbuffer
+
+\section{Alternative A}
+
+\setupformatsegment[verse][alternative=a] {\getbuffer[poem]}
+\setupformatsegment[verse][alternative=a] {\getbuffer[x,poem]}
+
+\section{Alternative B}
+
+\setupformatsegment[verse][alternative=b] {\getbuffer[poem]}
+\setupformatsegment[verse][alternative=b] {\getbuffer[x,poem]}
+
+\section{Alternative C}
+
+\setupformatsegment[verse][alternative=c] {\getbuffer[poem]}
+
+\section{Alternative D}
+
+\setupformatsegment[verse][alternative=d] {\getbuffer[poem]}
+
+\section{Alternative E}
+
+\setupformatsegment[verse][alternative=e] {\getbuffer[poem]}
+\stopbuffer
+
+\typebuffer \getbuffer
+
+\stoptext
diff --git a/Master/texmf-dist/tex/context/base/m-gamma.tex b/Master/texmf-dist/tex/context/base/m-gamma.tex
deleted file mode 100644
index 05f5d3a4254..00000000000
--- a/Master/texmf-dist/tex/context/base/m-gamma.tex
+++ /dev/null
@@ -1,230 +0,0 @@
-%D \module
-%D [ file=m-gamma,
-%D version=2002.05.15,
-%D title=\CONTEXT\ Extra Modules,
-%D subtitle=Basic \OMEGA\ Support,
-%D author={Idris Samawi Hamid, Hans Hagen},
-%D date=\currentdate,
-%D copyright={PRAGMA-ADE, Idris Samawi Hamid}]
-%D
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D Most of this module is written by Idris Samawi Hamid.
-
-%D We define a couple of symbolic \OTP\ filters and
-%D sequences. First the filters:
-%D
-%D Todo: better names, no funny abbreviations.
-
-\definefiltersynonym [utf8 to unicode16] [inutf8]
-\definefiltersynonym [IdOCP] [id]
-\definefiltersynonym [BasicLatinTexUni] [lat2uni]
-\definefiltersynonym [BasicLatinUniToFont][uni2lat]
-\definefiltersynonym [GrTexUni] [grpo2uni]
-\definefiltersynonym [GrUniToFont] [uni2greek]
-\definefiltersynonym [ArabUni] [7arb2uni]
-\definefiltersynonym [BerberUni] [7ber2uni]
-\definefiltersynonym [UrduUni] [7urd2uni]
-\definefiltersynonym [AfghaPashtoUni] [7pas2uni]
-\definefiltersynonym [PakiPashtoUni] [7pap2uni]
-\definefiltersynonym [SindhiUni] [7snd2uni]
-\definefiltersynonym [TifinaghUni] [7tbe2uni]
-\definefiltersynonym [LatinBerberUni] [7lbe2uni]
-\definefiltersynonym [UniCUni] [uni2cuni]
-\definefiltersynonym [CUniArab] [cuni2oar]
-\definefiltersynonym [NoKeshidehCUniArab] [cuni2nar]
-
-%D Next we define the sequences.
-
-\definefiltersequence
- [NilOCP]
- [IdOCP]
-
-\definefiltersequence
- [BasicLatinOCP]
- [BasicLatinTexUni,BasicLatinUniToFont]
-
-\definefiltersequence
- [GreekOCP]
- [GrTexUni,GrUniToFont]
-
-\definefiltersequence
- [ArabicOCP]
- [ArabUni,UniCUni,CUniArab]
-
-\definefiltersequence
- [ArabicNoKeshidehOCP]
- [ArabUni,UniCUni,NoKeshidehCUniArab]
-
-\definefiltersequence
- [ArabicBerberOCP]
- [BerberUni,UniCUni,CUniArab]
-
-\definefiltersequence
- [TifinaghOCP]
- [TifinaghUni,BasicLatinUniToFont]
-
-\definefiltersequence
- [LatinBerberOCP]
- [LatinBerberUni,BasicLatinUniToFont]
-
-\definefiltersequence
- [UrduOCP]
- [UrduUni,UniCUni,CUniArab]
-
-\definefiltersequence
- [UrduNoKeshidehOCP]
- [UrduUni,UniCUni,NoKeshidehCUniArab]
-
-\definefiltersequence
- [AfghaPashtoOCP]
- [AfghaPashtoUni,UniCUni,CUniArab]
-
-\definefiltersequence
- [PakiPashtoOCP]
- [PakiPashtoUni,UniCUni,CUniArab]
-
-\definefiltersequence
- [SindhiOCP]
- [SindhiUni,UniCUni,CUniArab]
-
-%D We wrap a couple of languages in environmen tmacros.
-%D beware: this solution is far from perfect!
-%D
-%D Todo: better interface to directional primitives.
-%D
-%D Todo: proper language support (labels etc).
-
-\definestartstop
- [latin]
- [commands=%
- {\usefiltersequence[BasicLatinOCP]%
- \switchtobodyfont[omlgc]}]
-
-\definestartstop
- [greek]
- [commands=%
- {\usefiltersequence[GreekOCP]%
- \switchtobodyfont[omlgc]%
- \language=3\lefthyphenmin2\righthyphenmin=2}]
-
-\definestartstop
- [arab]
- [commands=%
- {\usefiltersequence[ArabicOCP]
- \switchtobodyfont[omarb]%
- \textdir TRT\pardir TRT}]
-
-\definestartstop
- [smallarab]
- [commands=%
- {\usefiltersequence[ArabicNoKeshidehOCP]
- \switchtobodyfont[omarb]%
- \textdir TRT\pardir TRT}]
-
-\definestartstop
- [latberber]
- [commands=%
- {\usefiltersequence[LatinBerberOCP]
- \switchtobodyfont[omarb]%
- \textdir TRT\pardir TRT}]
-
-\definestartstop
- [tifinagh]
- [commands=%
- {\usefiltersequence[TifinaghOCP]
- \switchtobodyfont[omarb]%
- \textdir TRT\pardir TRT}]
-
-\definestartstop
- [berber]
- [commands=%
- {\usefiltersequence[ArabicBerberOCP]
- \switchtobodyfont[omarb]%
- \textdir TRT\pardir TRT}]
-
-\definestartstop
- [urdu]
- [commands=%
- {\usefiltersequence[UrduOCP]%
- \switchtobodyfont[omarb]%
- \textdir TRT\pardir TRT}]
-
-\definestartstop
- [smallurdu]
- [commands=%
- {\usefiltersequence[UrduNoKeshidehOCP]%
- \switchtobodyfont[omarb]%
- \textdir TRT\pardir TRT}]
-
-\definestartstop
- [pashto]
- [commands=%
- {\usefiltersequence[AfghaPashtoOCP]%
- \switchtobodyfont[omarb]%
- \textdir TRT\pardir TRT}]
-
-\definestartstop
- [pashtop]
- [commands=%
- {\usefiltersequence[PakiPashtoOCP]%
- \switchtobodyfont[omarb]%
- \textdir TRT\pardir TRT}]
-
-\definestartstop
- [sindhi]
- [commands=%
- {\usefiltersequence[SindhiOCP]%
- \switchtobodyfont[omarb]%
- \textdir TRT\pardir TRT}]
-
-
-\let\typeout\message \input grlccode.tex
-
-%D We (pre)define a couple of fonts:
-
-\usetypescriptfile[type-omg]
-
-\usetypescript[OmegaArab]
-\usetypescript[OmegaLGC]
-
-%D Dangerous definitions:
-
-\startencoding[omega]
-
- \definecharacter textbraceleft {^^^^f07b}
- \definecharacter textbraceright {^^^^f07d}
- \definecharacter textbackslash {^^^^f05c}
- \definecharacter textbullet {{\clearocplists\mm\sy\char"0F}}
- \definecharacter dotlessi {^^^^0131}
- \definecharacter ssharp {^^^^00df}
-
-\stopencoding
-
-\enableencoding [omega]
-
-%D Some logo's:
-
-\unexpanded \def\OMEGA {{\switchtobodyfont[omlgc]^^^^03a9}}
-\unexpanded \def\OTP {\OMEGA TP}
-
-%D A few funny definitions:
-
-\def\#{^^^^f023}
-\def\${^^^^f024}
-\def\%{^^^^f025}
-\def\&{^^^^f026}
-
-%D I have no idea what this has to do with omega:
-
-\def\heshe {\lohi{he} {she}}
-\def\himher{\lohi{him}{her}}
-\def\hisher{\lohi{his}{her}}
-
-% Brrr
-
-\setuptolerance [verytolerant]
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/m-graph.mkii b/Master/texmf-dist/tex/context/base/m-graph.mkii
new file mode 100644
index 00000000000..db7538e9807
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/m-graph.mkii
@@ -0,0 +1,72 @@
+%D \module
+%D [ file=m-graph,
+%D version=2000.08.06,
+%D title=\CONTEXT\ Extra Modules,
+%D subtitle=\METAPOST\ graph module support,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D I finally finished graph support, if only because I could
+%D not stand the idea that Karel Wesseling would revert to
+%D \PiCTeX.
+
+% pre 2000.08.06 version
+%
+% \forceMPTEXgraphictrue
+%
+% \startMPinitializations
+% initialize_numbers ; % make sure that pseudo typesetting is set up
+% input graph ; % load the graph package
+% Autoform := "@g" ; % change the % template char into @
+% \stopMPinitializations
+
+%D The latest version does things more automatically (and
+%D efficiently when no text processing is needed). For
+%D definitions embedded in your document, you need to
+%D use \type {@} as template character, in external files,
+%D \type {%} is also supported.
+
+\startMPinclusions
+ input graph ;
+\stopMPinclusions
+
+%D Graphics that have \type {begingraph} in them are
+%D recognized as such and force handling of embedded \TEX\
+%D code.
+
+\forceMPTEXcheck{begingraph}
+
+%D If you run into troubles, try:
+%D
+%D \starttyping
+%D \forceMPTEXgraphictrue
+%D \stoptyping
+%D
+%D A demo can be run with:
+%D
+%D \starttyping
+%D texexec --mode=demo --pdf m-graph
+%D \stoptyping
+
+\startMPinclusions
+ % @# is X_ or Y_; $ is Gxcvlin_ or Gycvlin_; l and h are numeric or string
+ % It would not be OK to set (@#low,@#high) to a pair expression because $ might
+ % try to rescale @#low when evaluating the right-hand side for @#high.
+ vardef Gsetr_@\#(suffix $)(expr l, h) =
+ Gclbnds_@\# ;
+ if @\#ctyp>0 :
+ @\#low = if abs @\#ctyp<>log: $ fi Mlog_Str l ;
+ @\#high = if abs @\#ctyp<>log: $ fi Mlog_Str h ;
+ else :
+ -@\#high = if abs @\#ctyp<>log: $ fi Mlog_Str l ;
+ -@\#low = if abs @\#ctyp<>log: $ fi Mlog_Str h ;
+ fi
+ enddef ;
+\stopMPinclusions
+
+\endinput
diff --git a/Master/texmf-dist/tex/context/base/m-graph.mkiv b/Master/texmf-dist/tex/context/base/m-graph.mkiv
new file mode 100644
index 00000000000..39a1271d765
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/m-graph.mkiv
@@ -0,0 +1,63 @@
+%D \module
+%D [ file=m-graph,
+%D version=2008.09.08,
+%D title=\CONTEXT\ Extra Modules,
+%D subtitle=\METAPOST\ graph module support,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+% We just assume lua specification instead of the graph ones that
+% are limited by what mp can do. We support @ as replacement for
+% the percent symbol. We also add a specifier when no one is given.
+
+\startluacode
+ local function strip(s)
+ return "\times10^{"..(s:gsub("%+*0*","")).."}"
+ end
+ function metapost.format_n(fmt,str)
+ fmt = fmt:gsub("@","%%")
+ local initial, format, final = fmt:match("^(.-)(%%.-[%a])(.-)$")
+ if format then
+ str = fmt:format(str)
+ str = str:gsub("e(.-)$",strip)
+ str = ("%s\\mathematics{%s}%s"):format(initial,str,final)
+ elseif not fmt:find("%%") then
+ str = ("%"..fmt):format(str)
+ str = str:gsub("e(.-)$",strip)
+ str = ("\\mathematics{%s}"):format(str)
+ end
+ tex.sprint(str)
+ end
+\stopluacode
+
+\unexpanded\long\def\MPgraphformat#1#2{\ctxlua{metapost.format_n("#1","#2")}}
+
+\startMPinclusions
+ input graph.mp ;
+ vardef escaped_format(expr s) =
+ "" for n=1 upto length(s) : &
+ if ASCII substring (n,n+1) of s = 37 :
+ "@"
+ else :
+ substring (n,n+1) of s
+ fi
+ endfor
+ enddef ;
+ vardef dofmt_@\#(expr f, x) =
+ textext("\MPgraphformat{"&escaped_format(f)&"}{"&(if string x : x else: decimal x fi)&"}")
+ enddef ;
+
+ % vardef format(expr f, x) =
+ % textext("\MPgraphformatN{"&escaped_format(f)&"}{"&(if string x : x else: decimal x fi)&"}")
+ % enddef;
+ % vardef Mformat(expr f, x) =
+ % format(f,x)
+ % enddef;
+\stopMPinclusions
+
+\endinput
diff --git a/Master/texmf-dist/tex/context/base/m-graph.tex b/Master/texmf-dist/tex/context/base/m-graph.tex
index dd30cef468d..6f71cca3c57 100644
--- a/Master/texmf-dist/tex/context/base/m-graph.tex
+++ b/Master/texmf-dist/tex/context/base/m-graph.tex
@@ -11,47 +11,79 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-%D I finally finished graph support, if only because I could
-%D not stand the idea that Karel Wesseling would revert to
-%D \PiCTeX.
+\loadmarkfile{m-graph}
-% pre 2000.08.06 version
-%
-% \forceMPTEXgraphictrue
-%
-% \startMPinitializations
-% initialize_numbers ; % make sure that pseudo typesetting is set up
-% input graph ; % load the graph package
-% Autoform := "@g" ; % change the % template char into @
-% \stopMPinitializations
+\doifnotmode {demo} {\endinput}
+
+%D You need to have the data files in your path,
+%D otherwise the run is aborted.
+
+\doiffileelse {agepop91.d} {} {\writestatus{graph}{no data files found}\wait\end}
+
+%D The test:
-%D The latest version does things more automatically (and
-%D efficiently when no text processing is needed). For
-%D definitions embedded in your document, you need to
-%D use \type {@} as template character, in external files,
-%D \type {%} is also supported.
+\starttext
-\startMPinitializations
- input graph ;
-\stopMPinitializations
+\startMPpage
+draw begingraph(3in,2in);
+ gdraw "agepop91.d";
+ endgraph;
+\stopMPpage
+
+\startMPpage
+draw begingraph(3in,2in);
+ gdraw "agepop91.d" plot btex$\bullet$etex;
+ endgraph;
+\stopMPpage
+
+\startMPpage
+draw begingraph(3in,2in);
+ glabel.lft(btex \vbox{\hbox{Population} \hbox{in millions}} etex, OUT);
+ glabel.bot(btex Age in years etex, OUT);
+ gdraw "agepopm.d";
+ endgraph;
+\stopMPpage
+
+\startMPpage
+draw begingraph(3in,2in);
+ glabel.lft(btex \vbox{\hbox{Population} \hbox{in millions}} etex, OUT);
+ glabel.bot(btex Age in years etex, OUT);
+ setrange(origin, whatever,whatever);
+ gdraw "agepopm.d";
+ endgraph;
+\stopMPpage
-%D Graphics that have \type {begingraph} in them are
-%D recognized as such and force handling of embedded \TEX\
-%D code.
+\startMPpage
+draw begingraph(2.3in,2in);
+ setcoords(log,log);
+ glabel.lft(btex Seconds etex,OUT);
+ glabel.bot(btex Matrix size etex,
+ OUT);
+ gdraw "matmul.d" dashed evenly;
+ glabel.ulft(btex Standard etex,8);
+ gdraw "matmul.d";
+ glabel.lrt(btex Strassen etex,7);
+ endgraph;
+\stopMPpage
-\forceMPTEXcheck{begingraph}
+\startMPpage
+draw begingraph(6.5cm,4.5cm);
+ setrange(80,0, 90,whatever);
+ glabel.bot(btex Year etex, OUT);
+ glabel.lft(btex \vbox{\hbox{Emissions in} \hbox{thousands of}
+ \hbox{metric tons} \hbox{(heavy line)}}etex, OUT);
+ gdraw "lead.d" withpen pencircle scaled 1.5pt;
+ autogrid(,otick.lft);
+ setcoords(linear,linear);
+ setrange(80,0, 90,whatever);
+ glabel.rt(btex \vbox{\hbox{Micrograms} \hbox{per cubic}
+ \hbox{meter of air} \hbox{(thin line)}}etex, OUT);
+ gdraw "lead.d";
+ autogrid(otick.bot,otick.rt);
+ endgraph;
+\stopMPpage
-%D If you run into troubles, try:
-%D
-%D \starttyping
-%D \forceMPTEXgraphictrue
-%D \stoptyping
-%D
-%D A demo can be run with:
-%D
-%D \starttyping
-%D texexec --mode=demo --pdf m-graph
-%D \stoptyping
+\stoptext
% No longer needed, since John will fix it.
%
@@ -141,92 +173,3 @@
% string everybegingraph ;
% % everybegingraph := "setrange(0,0,20000,20000)" ;
% fi ;
-
-\startMPinitializations
- % @# is X_ or Y_; $ is Gxcvlin_ or Gycvlin_; l and h are numeric or string
- % It would not be OK to set (@#low,@#high) to a pair expression because $ might
- % try to rescale @#low when evaluating the right-hand side for @#high.
- vardef Gsetr_@\#(suffix $)(expr l, h) =
- Gclbnds_@\# ;
- if @\#ctyp>0 :
- @\#low = if abs @\#ctyp<>log: $ fi Mlog_Str l ;
- @\#high = if abs @\#ctyp<>log: $ fi Mlog_Str h ;
- else :
- -@\#high = if abs @\#ctyp<>log: $ fi Mlog_Str l ;
- -@\#low = if abs @\#ctyp<>log: $ fi Mlog_Str h ;
- fi
- enddef ;
-\stopMPinitializations
-
-\doifnotmode {demo} {\endinput}
-
-%D You need to have the data files in your path,
-%D otherwise the run is aborted.
-
-\doiffileelse {agepop91.d}
- {} {\writestatus{graph}{no data files found}\wait\end}
-
-%D The test:
-
-\starttext
-
-\startMPpage
-draw begingraph(3in,2in);
- gdraw "agepop91.d";
- endgraph;
-\stopMPpage
-
-\startMPpage
-draw begingraph(3in,2in);
- gdraw "agepop91.d" plot btex$\bullet$etex;
- endgraph;
-\stopMPpage
-
-\startMPpage
-draw begingraph(3in,2in);
- glabel.lft(btex \vbox{\hbox{Population} \hbox{in millions}} etex, OUT);
- glabel.bot(btex Age in years etex, OUT);
- gdraw "agepopm.d";
- endgraph;
-\stopMPpage
-
-\startMPpage
-draw begingraph(3in,2in);
- glabel.lft(btex \vbox{\hbox{Population} \hbox{in millions}} etex, OUT);
- glabel.bot(btex Age in years etex, OUT);
- setrange(origin, whatever,whatever);
- gdraw "agepopm.d";
- endgraph;
-\stopMPpage
-
-\startMPpage
-draw begingraph(2.3in,2in);
- setcoords(log,log);
- glabel.lft(btex Seconds etex,OUT);
- glabel.bot(btex Matrix size etex,
- OUT);
- gdraw "matmul.d" dashed evenly;
- glabel.ulft(btex Standard etex,8);
- gdraw "matmul.d";
- glabel.lrt(btex Strassen etex,7);
- endgraph;
-\stopMPpage
-
-\startMPpage
-draw begingraph(6.5cm,4.5cm);
- setrange(80,0, 90,whatever);
- glabel.bot(btex Year etex, OUT);
- glabel.lft(btex \vbox{\hbox{Emissions in} \hbox{thousands of}
- \hbox{metric tons} \hbox{(heavy line)}}etex, OUT);
- gdraw "lead.d" withpen pencircle scaled 1.5pt;
- autogrid(,otick.lft);
- setcoords(linear,linear);
- setrange(80,0, 90,whatever);
- glabel.rt(btex \vbox{\hbox{Micrograms} \hbox{per cubic}
- \hbox{meter of air} \hbox{(thin line)}}etex, OUT);
- gdraw "lead.d";
- autogrid(otick.bot,otick.rt);
- endgraph;
-\stopMPpage
-
-\stoptext
diff --git a/Master/texmf-dist/tex/context/base/m-mkii.mkiv b/Master/texmf-dist/tex/context/base/m-mkii.mkiv
new file mode 100644
index 00000000000..cb0da6fcb9e
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/m-mkii.mkiv
@@ -0,0 +1,21 @@
+% todo
+
+\unprotect
+
+\writestatus\m!systems{loading some mkii compatibility hacks}
+
+% Compatibility for font-ini
+
+\let\normalxi=\xi
+
+\definebodyfontswitch [xii] [\!!twelvepoint]
+\definebodyfontswitch [xi] [\!!elevenpoint]
+\definebodyfontswitch [x] [\!!tenpoint]
+\definebodyfontswitch [ix] [\!!ninepoint]
+\definebodyfontswitch [viii] [\!!eightpoint]
+\definebodyfontswitch [vii] [\!!sevenpoint]
+\definebodyfontswitch [vi] [\!!sixpoint]
+
+\unexpanded\def\xi{\ifmmode\normalxi\else\elevenpoint\fi}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/m-mkivhacks.tex b/Master/texmf-dist/tex/context/base/m-mkivhacks.tex
new file mode 100644
index 00000000000..f4765873947
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/m-mkivhacks.tex
@@ -0,0 +1,52 @@
+%D \module
+%D [ file=m-mkivhacks,
+%D version=2008.10.20,
+%D title=\CONTEXT\ Modules,
+%D subtitle=Temporary Compatilibility Hacks,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\doifnotmode{mkiv}{\endinput}
+
+%D For Aditya, who needed it for his thesis.
+
+\startluacode
+ -- -- a lot or work
+ --
+ -- mathematics.slots.euler = {
+ -- [0x03B1] = { "mr", 0x0B }, -- alpha
+ -- }
+ --
+ -- mathematics.slots.euler = table.merge(mathematics.slots.traditional,mathematics.slots.euler)
+ --
+ -- versus a quick hack
+
+ document.hacks = document.hacks or { }
+
+ function document.hacks()
+ mathematics.families.lcgreek = mathematics.families.mr
+ mathematics.families.ucgreek = mathematics.families.mr
+ mathematics.families.vargreek = mathematics.families.mr
+
+ mathematics.define(mathematics.slots.euler)
+ end
+\stopluacode
+
+% \usemodule[mkivhacks] \setups{eulermath}
+% \definetypeface[modern][mm][math][euler][default]
+% \usemathcollection[eul]
+% \switchtobodyfont[modern,11pt]
+% \starttext
+% $\alpha$
+% \stoptext
+
+\startsetups eulermath
+ \ctxlua{document.hacks()}
+\stopsetups
+
+\endinput
diff --git a/Master/texmf-dist/tex/context/base/m-newmat.tex b/Master/texmf-dist/tex/context/base/m-newmat.tex
index c36119cd41c..08ce33b4ce5 100644
--- a/Master/texmf-dist/tex/context/base/m-newmat.tex
+++ b/Master/texmf-dist/tex/context/base/m-newmat.tex
@@ -182,7 +182,7 @@
%D defined in Plain \TEX). It allows to get a math character
%D inserted as if it was a text character.
-\gdef\mathhexbox#1#2#3{\mathtext{$\m@th\mathchar"#1#2#3$}}
+\gdef\mathhexbox#1#2#3{\mathtext{$\mathsurround\zeropoint\mathchar"#1#2#3$}}
%D \macros
%D {boxed}
@@ -299,11 +299,11 @@
\def\simplestartsubarray#1%
{\vcenter\bgroup
- \baselineskip\fontdimen10 \scriptfont\tw@
- \advance\baselineskip\fontdimen12 \scriptfont\tw@
- \lineskip\thr@@\fontdimen8 \scriptfont\thr@@
+ \baselineskip\fontdimen10 \scriptfont\plustwo
+ \advance\baselineskip\fontdimen12 \scriptfont\plustwo
+ \lineskip\plusthree\fontdimen8 \scriptfont\plusthree
\lineskiplimit\lineskip
- \ialign\bgroup\ifx c#1\hfil\fi$\m@th\scriptstyle##$\hfil\crcr}
+ \ialign\bgroup\ifx c#1\hfil\fi$\mathsurround\zeropoint\scriptstyle##$\hfil\crcr}
\def\stopsubarray
{\crcr\egroup
@@ -326,8 +326,8 @@
\baselineskip6\ex@
\lineskip1.5\ex@
\lineskiplimit\lineskip
- \ialign\bgroup\hfil$\m@th\scriptstyle##$\hfil&&\thickspace\hfil
- $\m@th\scriptstyle##$\hfil\crcr}
+ \ialign\bgroup\hfil$\mathsurround\zeropoint\scriptstyle##$\hfil&&\thickspace\hfil
+ $\mathsurround\zeropoint\scriptstyle##$\hfil\crcr}
\def\stopsmallmatrix
{\crcr\egroup
diff --git a/Master/texmf-dist/tex/context/base/m-pictex.tex b/Master/texmf-dist/tex/context/base/m-pictex.tex
index 90bb7b33944..abb81b76ef9 100644
--- a/Master/texmf-dist/tex/context/base/m-pictex.tex
+++ b/Master/texmf-dist/tex/context/base/m-pictex.tex
@@ -88,11 +88,14 @@
%D redefinition already took place. We save the original
%D meanings, so we can restores them afterwards.
-\let\normalnewdimen = \newdimen
-\let\normalnewskip = \newskip
+% \def\temporarynewdimen {\alloc@1\dimen\dimendef\insc@unt}
+% \def\temporarynewskip {\alloc@2\skip \skipdef \insc@unt}
-\def\temporarynewdimen {\alloc@1\dimen\dimendef\insc@unt}
-\def\temporarynewskip {\alloc@2\skip \skipdef \insc@unt}
+\let\normalnewdimen \newdimen
+\let\normalnewskip \newskip
+
+\let\temporarynewdimen\newdimen
+\let\temporarynewskip \newskip
%D Here comes the trick. Depending on how many \DIMENSIONS\ and
%D \SKIPS\ are allocated, the \type{\newdimen} assigns a
diff --git a/Master/texmf-dist/tex/context/base/m-punk.tex b/Master/texmf-dist/tex/context/base/m-punk.tex
new file mode 100644
index 00000000000..3b1baa75b77
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/m-punk.tex
@@ -0,0 +1,232 @@
+%D \module
+%D [ file=m-punk,
+%D version=2008.04.15,
+%D title=\CONTEXT\ Modules,
+%D subtitle=Punk Support,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\ifx\luaversion\undefined \endinput \fi
+
+% At some point the font generation code will move into the
+% ConTeXt MkIV kernel.
+
+\startluacode
+do
+ local concat = table.concat
+ local chardata = characters.data
+ local fontdata = fonts.ids
+
+ fonts.mp = fonts.mp or { }
+
+ fonts.mp.version = fonts.mp.version or 1.11
+ fonts.mp.inline = true
+ fonts.mp.cache = containers.define("fonts", "mp", fonts.mp.version, true)
+
+ metapost.characters = metapost.characters or { }
+
+-- todo: use table share as in otf
+
+ local characters, descriptions = { }, { }
+ local factor, l, n, w, h, d, total, variants = 100, { }, 0, 0, 0, 0, 0, 0, true
+
+ -- A next version of mplib will provide the tfm font information which
+ -- gives better glyph dimensions, plus additional kerning information.
+
+ local flusher = {
+ startfigure = function(chrnum,llx,lly,urx,ury)
+ l, n = { }, chrnum
+ w, h, d = urx - llx, ury, -lly
+ total = total + 1
+ inline = fonts.mp.inline
+ end,
+ flushfigure = function(t)
+ for i=1, #t do
+ l[#l+1] = t[i]
+ end
+ end,
+ stopfigure = function()
+ local cd = chardata[n]
+ if inline then
+ descriptions[n] = {
+ -- unicode = n,
+ name = cd and cd.adobename,
+ width = w*100,
+ height = h*100,
+ depth = d*100,
+ boundingbox = { 0, -d, w, h },
+ }
+ characters[n] = {
+ commands = { -- todo: xforms, should happen in backend
+ { "special", "pdf: " .. concat(l," ") },
+ }
+ }
+ else
+ descriptions[n] = {
+ -- unicode = n,
+ name = cd and cd.adobename,
+ width = w*100,
+ height = h*100,
+ depth = d*100,
+ boundingbox = { 0, -d, w, h },
+ }
+ characters[n] = {
+ commands = {
+ { "image", { stream = concat(l," "), bbox = { 0, -d*65536, w*65536, h*65536 } } },
+ }
+ }
+ end
+ end
+ }
+
+ metapost.characters.instances = metapost.characters.instances or 10
+
+ function metapost.characters.process(mpxformat, name, instances, scalefactor)
+ statistics.starttiming(metapost.characters)
+ scalefactor = scalefactor or 1
+ instances = instances or metapost.characters.instances or 10
+ local fontname = file.removesuffix(file.basename(name))
+ local hash = file.robustname(string.format("%s %05i %03i", fontname, scalefactor*1000, instances))
+ local lists = containers.read(fonts.mp.cache(), hash)
+ if not lists then
+ statistics.starttiming(flusher)
+ -- we can use a format per font
+ local data = io.loaddata(resolvers.find_file(name))
+ metapost.reset(mpxformat)
+ metapost.set_outer_color(2) -- no outer color and no reset either
+ lists = { }
+ for i=1,instances do
+ list = { }
+ characters, descriptions = { }, { }
+ metapost.process(
+ mpxformat,
+ {
+ "randomseed := " .. i*10 .. ";",
+ "scale_factor := " .. scalefactor .. " ;",
+ data
+ },
+ false,
+ flusher
+ )
+ lists[i] = {
+ designsize = 655360,
+ name = string.format("%s-%03i",hash,i),
+ parameters = {
+ slant = 0,
+ space = 333 * scalefactor,
+ space_stretch = 166.5 * scalefactor,
+ space_shrink = 111 * scalefactor,
+ x_height = 431 * scalefactor,
+ quad =1000 * scalefactor,
+ extra_space = 0
+ },
+ ["type"] = "virtual",
+ characters = characters,
+ descriptions = descriptions,
+ -- embedding = "subset",
+ -- mkiv:
+ spacer = "space",
+ unit = 1000,
+ shared = { },
+ unique = { },
+ }
+ end
+ metapost.reset(mpxformat) -- saves memory
+ lists = containers.write(fonts.mp.cache(), hash, lists)
+ statistics.stoptiming(flusher)
+ end
+ variants = variants + #lists
+ statistics.stoptiming(metapost.characters)
+ return lists
+ end
+
+ function fonts.vf.aux.combine.commands.metafont(g,v)
+ local size = g.specification.size
+ local data = metapost.characters.process(v[2],v[3],v[4],size/655360)
+ local list, t = { }, { }
+ for d=1,#data do
+ t = data[d]
+ t = fonts.tfm.scale(t, -1000)
+ local id = font.nextid()
+ t.fonts = { { id = id } }
+ fontdata[id] = t
+ fonts.vf.aux.compose_characters(t)
+ list[d] = font.define(t)
+ end
+ for k, v in pairs(t) do
+ g[k] = v -- kind of replace, when not present, make nil
+ end
+ g.virtualized = true
+ g.variants = list
+ end
+
+ fonts.define.methods.install( "punk", {
+ { "metafont", "mfplain", "punkfont.mp", 10 },
+ } )
+
+ cases.actions[99] = function(current)
+ local used = fontdata[current.font].variants
+ if used then
+ local f = math.random(1,#used)
+ current.font = used[f]
+ return current, true
+ else
+ return current, false
+ end
+ end
+
+ metapost.characters.flusher = flusher
+
+ statistics.register("metapost font generation", function()
+ local time = statistics.elapsedtime(flusher)
+ if total > 0 then
+ return string.format("%i glyphs, %.3f seconds runtime, %i glyphs/second", total, time, total/time)
+ else
+ return string.format("%i glyphs, %.3f seconds runtime", total, time)
+ end
+ end)
+
+ statistics.register("metapost font loading",function()
+ local time = statistics.elapsedtime(metapost.characters)
+ if variants > 0 then
+ return string.format("%.3f seconds, %i instances, %0.3f instances/second", time, variants, variants/time)
+ else
+ return string.format("%.3f seconds, %i instances", time, variants)
+ end
+ end)
+
+end
+\stopluacode
+
+\unexpanded\def\EnableRandomPunk {\setcharactercasing[99]}
+\unexpanded\def\RandomPunk {\groupedcommand\EnableRandomPunk\donothing}
+\unexpanded\def\StartRandomPunk {\begingroup\EnableRandomPunk}
+\unexpanded\def\StopRandomPunk {\endgroup}
+
+\starttypescript [serif] [punk] [default]
+ \setups[font:fallback:serif] % no style variants yet
+ \definefontsynonym [Serif] [demo@punk]
+\stoptypescript
+
+\starttypescript [punk]
+ \definetypeface [punk] [rm] [serif] [punk] [default]
+\stoptypescript
+
+\endinput
+
+\usetypescript[punk]
+
+\setupbodyfont[punk,14pt]
+
+\starttext
+ \definedfont[demo@punk at 10pt]hello world\par
+ \definedfont[demo@punk at 12pt]hello world\par
+ \definedfont[demo@punk at 16pt]hello world\par
+ \definedfont[demo@punk at 20pt]hello world\par
+\stoptext
+
diff --git a/Master/texmf-dist/tex/context/base/m-subsub.tex b/Master/texmf-dist/tex/context/base/m-subsub.tex
index 3fc71cd505d..4395ded8acb 100644
--- a/Master/texmf-dist/tex/context/base/m-subsub.tex
+++ b/Master/texmf-dist/tex/context/base/m-subsub.tex
@@ -12,53 +12,6 @@
\unprotect
-\startvariables dutch english
- german czech
- italian romanian
-
- subsubsubsubsubsection: subsubsubsubsubparagraaf subsubsubsubsubsection
- unterunterunterunterunterabsatz podpodpodpodpodsekce
- sottosottosottosottosottocapoverso subsubsubsubsubsectiune
-
- subsubsubsubsubsubsection: subsubsubsubsubsubparagraaf subsubsubsubsubsubsection
- unterunterunterunterunterunterabsatz podpodpodpodpodpodsekce
- sottosottosottosottosottosottocapoverso subsubsubsubsubsubsectiune
-
- subsubsubsubsubsubsubsection: subsubsubsubsubsubsubparagraaf subsubsubsubsubsubsubsection
- unterunterunterunterunterunterunterabsatz podpodpodpodpodpodpodsekce
- sottosottosottosottosottosottosottocapoverso subsubsubsubsubsubsubsectiune
-
- subsubsubsubsubsubsubsubsection: subsubsubsubsubsubsubsubparagraaf subsubsubsubsubsubsubsubsection
- unterunterunterunterunterunterunterunterabsatz podpodpodpodpodpodpodpodsekce
- sottosottosottosottosottosottosottosottocapoverso subsubsubsubsubsubsubsubsectiune
-
-subsubsubsubsubsubsubsubsubsection: subsubsubsubsubsubsubsubsubparagraaf subsubsubsubsubsubsubsubsubsection
- unterunterunterunterunterunterunterunterunterabsatz podpodpodpodpodpodpodpodpodsekce
- sottosottosottosottosottosottosottosottosottocapoverso subsubsubsubsubsubsubsubsubsectiune
-
- subsubsubsubsubsubject: subsubsubsubsubonderwerp subsubsubsubsubsubject
- unterunterunterunterunterthema podpodpodpodpodtema
- sottosottosottosottosottoargomento subsubsubsubsubsubiect
-
- subsubsubsubsubsubsubject: subsubsubsubsubsubonderwerp subsubsubsubsubsubsubject
- unterunterunterunterunterunterthema podpodpodpodpodpodtema
- sottosottosottosottosottosottoargomento subsubsubsubsubsubsubiect
-
- subsubsubsubsubsubsubsubject: subsubsubsubsubsubsubonderwerp subsubsubsubsubsubsubsubject
- unterunterunterunterunterunterunterthema podpodpodpodpodpodpodtema
- sottosottosottosottosottosottosottoargomento subsubsubsubsubsubsubsubiect
-
- subsubsubsubsubsubsubsubsubject: subsubsubsubsubsubsubsubonderwerp subsubsubsubsubsubsubsubsubject
- unterunterunterunterunterunterunterunterthema podpodpodpodpodpodpodpodtema
- sottosottosottosottosottosottosottosottoargomento subsubsubsubsubsubsubsubsubiect
-
-subsubsubsubsubsubsubsubsubsubject: subsubsubsubsubsubsubsubsubonderwerp subsubsubsubsubsubsubsubsubsubject
- unterunterunterunterunterunterunterunterunterthema podpodpodpodpodpodpodpodpodtema
- sottosottosottosottosottosottosottosottosottoargomento subsubsubsubsubsubsubsubsubsubiect
-
-\stopvariables
-
-
\definesection[\s!section-8]
\definesection[\s!section-9]
\definesection[\s!section-10]
diff --git a/Master/texmf-dist/tex/context/base/m-timing.tex b/Master/texmf-dist/tex/context/base/m-timing.tex
index 792cc67f462..f6b0348c808 100644
--- a/Master/texmf-dist/tex/context/base/m-timing.tex
+++ b/Master/texmf-dist/tex/context/base/m-timing.tex
@@ -11,6 +11,8 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+\doifnotmode{mkiv}{\endinput}
+
\ifx\ShowNamedUsage\undefined \else \endinput \fi
%D Written at the end of 2007, this module is dedicated to Taco. Reaching this
@@ -31,185 +33,35 @@
\definecolor[usage:time] [darkblue]
\definecolor[usage:frame][darkgray]
-\startluacode
-do
-
- document = document or { }
- document.progress = document.progress or { }
-
- local defaultfilename = tex.jobname .. "-luatex-progress"
-
- local params = {
- "cs_count",
- "dyn_used",
- "elapsed_time",
- "luabytecode_bytes",
- "luastate_bytes",
- "max_buf_stack",
- "obj_ptr",
- "pdf_mem_ptr",
- "pdf_mem_size",
- "pdf_os_cntr",
- "pool_ptr",
- "str_ptr",
- }
-
- -- storage
-
- local last = os.clock()
- local data = { }
-
- function document.progress.save()
- local f = io.open((name or defaultfilename) .. ".lut","w")
- if f then
- f:write(table.serialize(data,true))
- f:close()
- data = { }
- end
- end
-
- function document.progress.store()
- local c = os.clock()
- local t = {
- elapsed_time = c - last,
- node_memory = tex.node_mem_status(),
- }
- for k, v in pairs(params) do
- if status[v] then t[v] = status[v] end
- end
- data[#data+1] = t
- last = c
- end
-
- -- conversion
+\ctxloadluafile{trac-tim}{}
- local processed = { }
-
- function document.progress.bot(name,tag)
- local d = document.progress.convert(name)
- return d.bot[tag] or 0
- end
- function document.progress.top(name,tag)
- local d = document.progress.convert(name)
- return d.top[tag] or 0
- end
- function document.progress.pages(name,tag)
- local d = document.progress.convert(name)
- return d.pages or 0
- end
- function document.progress.path(name,tag)
- local d = document.progress.convert(name)
- return d.paths[tag] or "origin"
- end
- function document.progress.nodes(name)
- local d = document.progress.convert(name)
- return d.names or { }
- end
- function document.progress.parameters(name)
- local d = document.progress.convert(name)
- return params -- shared
- end
+\startluacode
+local progress = goodies.progress
- function document.progress.convert(name)
- name = ((name ~= "") and name) or defaultfilename
- if not processed[name] then
- local names, top, bot, pages, paths, keys = { }, { }, { }, 0, { }, { }
- local data = io.loaddata(name .. ".lut")
- if data then data = loadstring(data) end
- if data then data = data() end
- if data then
- pages = #data
- if pages > 1 then
- local factor = 100
- for k,v in ipairs(data) do
- for k,v in pairs(v.node_memory) do
- keys[k] = true
- end
- end
- for k,v in ipairs(data) do
- local m = v.node_memory
- for k, _ in pairs(keys) do
- if not m[k] then m[k] = 0 end
- end
- end
- local function path(tag,subtag)
- local b, t, s = nil, nil, { }
- for k,v in ipairs(data) do
- local v = (subtag and v[tag][subtag]) or v[tag]
- if v then
- v = tonumber(v)
- if b then
- if v > t then t = v end
- if v < b then b = v end
- else
- t = v
- b = v
- end
- s[k] = v
- else
- s[k] = 0
- end
- end
- local tagname = subtag or tag
- top[tagname] = (string.format("%.3f",t)):gsub("%.000$","")
- bot[tagname] = (string.format("%.3f",b)):gsub("%.000$","")
- local delta = t-b
- if delta == 0 then
- delta = 1
- else
- delta = factor/delta
- end
- for k, v in ipairs(s) do
- s[k] = "(" .. k .. "," .. (v-b)*delta .. ")"
- end
- paths[tagname] = table.concat(s,"--")
- end
- for _, tag in pairs(params) do
- path(tag)
- end
- for tag, _ in pairs(keys) do
- path("node_memory",tag)
- names[#names+1] = tag
- end
- pages = pages - 1
- end
- end
- table.sort(names)
- processed[name] = {
- names = names,
- top = top,
- bot = bot,
- pages = pages,
- paths = paths,
- }
- end
- return processed[name]
+function progress.show(filename,parameters,nodes,other)
+ for n, name in pairs(parameters or progress.parameters(filename)) do
+ tex.sprint(tex.ctxcatcodes,string.format("\\ShowNamedUsage{%s}{%s}{%s}",filename or progress.defaultfilename,name,other or ""))
end
-
- function document.progress.show(filename,parameters,nodes,other)
- for n, name in pairs(parameters or document.progress.parameters(filename)) do
- tex.sprint(tex.ctxcatcodes,string.format("\\ShowNamedUsage{%s}{%s}{%s}",filename or defaultfilename,name,other or ""))
- end
- for n, name in pairs(nodes or document.progress.nodes(filename)) do
- tex.sprint(tex.ctxcatcodes,string.format("\\ShowNamedUsage{%s}{%s}{%s}",filename or defaultfilename,name,other or ""))
- end
+ for n, name in pairs(nodes or progress.nodes(filename)) do
+ tex.sprint(tex.ctxcatcodes,string.format("\\ShowNamedUsage{%s}{%s}{%s}",filename or progress.defaultfilename,name,other or ""))
end
-
end
\stopluacode
% \everyfirstshipout
-\appendtoks\ctxlua{document.progress.store()}\to\everystarttext
-\appendtoks\ctxlua{document.progress.store()}\to\everyshipout
-
-\ctxlua{table.insert(input.stop_actions, function() document.progress.save() end)}
+\startnotmode[no-timing]
+ \appendtoks\ctxlua{goodies.progress.store()}\to\everystarttext
+ \appendtoks\ctxlua{goodies.progress.store()}\to\everyshipout
+ \ctxlua{main.register_stop_actions(function() goodies.progress.save() end)}
+\stopnotmode
\def\ShowNamedUsage#1#2#3%
{\setbox\scratchbox\vbox\bgroup\startMPcode
begingroup ; save p, q, b, h, w ;
path p, q, b ; numeric h, w ;
- p := \ctxlua{tex.sprint(document.progress.path("#1","#2"))} ;
+ p := \ctxlua{tex.sprint(goodies.progress.path("#1","#2"))} ;
+% p := p shifted -llcorner p ;
if bbwidth(p) > 1 :
h := 100 ; w := 2 * h ;
w := \the\textwidth-3pt ; % correct for pen
@@ -219,7 +71,8 @@ end
draw b withcolor \MPcolor{usage:frame} ;
draw p withcolor \MPcolor{usage:line} ;
if ("#3" <> "") and ("#3" <> "#2") :
- q := \ctxlua{tex.sprint(document.progress.path("#1","#3"))} ;
+ q := \ctxlua{tex.sprint(goodies.progress.path("#1","#3"))} ;
+% q := q shifted -llcorner q ;
if bbwidth(q) > 1 :
q := q xstretched w ;
pickup pencircle scaled 1.5pt ; linecap := butt ;
@@ -234,16 +87,16 @@ end
\startlinecorrection
\box\scratchbox \endgraf
\hbox to \scratchdimen{\tttf\strut\detokenize{#2}\hss
- min:\ctxlua{tex.sprint(document.progress.bot("#1","\detokenize{#2}"))}, %
- max:\ctxlua{tex.sprint(document.progress.top("#1","\detokenize{#2}"))}, %
- pages:\ctxlua{tex.sprint(document.progress.pages("#1"))}%
+ min:\ctxlua{tex.sprint(goodies.progress.bot("#1","\detokenize{#2}"))}, %
+ max:\ctxlua{tex.sprint(goodies.progress.top("#1","\detokenize{#2}"))}, %
+ pages:\ctxlua{tex.sprint(goodies.progress.pages("#1"))}%
}%
\stoplinecorrection
\fi}
-\def\LoadUsage #1{\ctxlua{document.progress.convert("#1")}}
-\def\ShowUsage #1{\ctxlua{document.progress.show("#1",nil,nil,"elapsed_time")}}
-\def\ShowMemoryUsage#1{\ctxlua{document.progress.show("#1",nil,{}, "elapsed_time")}}
-\def\ShowNodeUsage #1{\ctxlua{document.progress.show("#1",{},nil, "elapsed_time")}}
+\def\LoadUsage #1{\ctxlua{goodies.progress.convert("#1")}}
+\def\ShowUsage #1{\ctxlua{goodies.progress.show("#1",nil,nil,"elapsed_time")}}
+\def\ShowMemoryUsage#1{\ctxlua{goodies.progress.show("#1",nil,{}, "elapsed_time")}}
+\def\ShowNodeUsage #1{\ctxlua{goodies.progress.show("#1",{},nil, "elapsed_time")}}
\endinput
diff --git a/Master/texmf-dist/tex/context/base/m-track.tex b/Master/texmf-dist/tex/context/base/m-track.tex
new file mode 100644
index 00000000000..cfcbbabffbe
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/m-track.tex
@@ -0,0 +1,5 @@
+\doifnotmode{mkiv} {\endinput}
+
+\starttext
+ \showtrackers
+\stoptext
diff --git a/Master/texmf-dist/tex/context/base/m-translate.tex b/Master/texmf-dist/tex/context/base/m-translate.tex
new file mode 100644
index 00000000000..a9601bdd587
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/m-translate.tex
@@ -0,0 +1,88 @@
+%D \module
+%D [ file=m-translate,
+%D version=2008.10.09,
+%D title=\CONTEXT\ Modules,
+%D subtitle=Translations,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=Hans Hagen]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\doifnotmode{mkiv}{\endinput}
+
+%D We can make this module more clever (wildcards and such) but since
+%D it's only a demo we stick to the simple case for now. After all, it's
+%D better to fix your source.
+
+\startluacode
+ translators = { }
+
+ local compiled, list = nil, nil
+
+ function translators.register(from,to)
+ local l = lpeg.P(from)/to
+ if not list then
+ list = l
+ else
+ list = list + l
+ end
+ compiled = nil
+ end
+
+ function translators.translate(s)
+ if list then
+ if not compiled then
+ compiled = lpeg.Cs((list + lpeg.P(1))^0)
+ end
+ return compiled:match(s)
+ else
+ return s
+ end
+ end
+
+ function translators.reset(s)
+ resolvers.filters.user_translator = nil
+ list, compiled = nil, nil
+ end
+ function translators.enable(s)
+ resolvers.filters.user_translator = translators.translate
+ end
+ function translators.disable(s)
+ resolvers.filters.user_translator = nil
+ end
+\stopluacode
+
+\unprotect
+
+\def\translateinput{\dodoubleargument\dotranslateinput}
+
+\def\dotranslateinput[#1][#2]{\ctxlua{translators.register(\!!bs#1\!!es,\!!bs#2\!!es)}}
+
+\def\resetinputtranslation {\ctxlua{translators.reset()}}
+\def\enableinputtranslation {\ctxlua{translators.enable()}}
+\def\disableinputtranslation{\ctxlua{translators.disable()}}
+
+\def\readtranslatedfile#1%
+ {\enableinputtranslation
+ \readfile{#1}\donothing\donothing
+ \disableinputtranslation}
+
+\protect
+
+\doifnotmode{demo}{\endinput}
+
+\starttext
+
+ \translateinput[Moica][Mojca]
+ \translateinput[Idris][Idris (aka ادريس)]
+
+ \enableinputtranslation
+
+ Well, it's not that hard to satisfy Idris and Moica.
+
+ \readtranslatedfile{tufte}
+
+\stoptext
diff --git a/Master/texmf-dist/tex/context/base/m-units.tex b/Master/texmf-dist/tex/context/base/m-units.tex
index f268bdd6ed5..d186c542b57 100644
--- a/Master/texmf-dist/tex/context/base/m-units.tex
+++ b/Master/texmf-dist/tex/context/base/m-units.tex
@@ -241,9 +241,9 @@
\ifspaceddimensions
\ifdim\scratchdimen=\dimensionsignal\relax
\udimensionhalfspace
-\else\ifdim\scratchdimen=\dimensionpowersignal\relax
- \udimensionhalfspace
-\fi
+ \else\ifdim\scratchdimen=\dimensionpowersignal\relax
+ \udimensionhalfspace
+ \fi
\fi
\fi
\fi
@@ -273,7 +273,6 @@
\global\let\thedimensionprefix\empty
\global\let\thedimensionpower\empty}
-
%D \macros
%D {dontbreakdimension,
%D dimensionprefix, dimensionaddfix,
diff --git a/Master/texmf-dist/tex/context/base/m-visual.tex b/Master/texmf-dist/tex/context/base/m-visual.tex
index c35e8a1a426..d784551901f 100644
--- a/Master/texmf-dist/tex/context/base/m-visual.tex
+++ b/Master/texmf-dist/tex/context/base/m-visual.tex
@@ -272,7 +272,6 @@
#2{#3}}
\let\normalPDFcode\PDFcode
-\let\normalspecial\special
\def\showlowlevelstream
{\def\PDFcode{\lowlevelstream\PDFcode\normalPDFcode}%
@@ -282,32 +281,36 @@
{\def\PDFcode{\lowlevelstream\PDFcode\gobbleoneargument}%
\def\special{\lowlevelstream\special\gobbleoneargument}}
-\let\normaldostartgraymode \dostartgraymode
-\let\normaldostartgraycolormode\dostartgraycolormode
-\let\normaldostartrgbcolormode \dostartrgbcolormode
-\let\normaldostartcmykcolormode\dostartcmykcolormode
-\let\normaldostartspotcolormode\dostartspotcolormode
+\startnotmode[mkiv]
-\def\traceddostartgraymode#1%
- {#1\normaldostartgraymode{#1}}
+ \let\normaldostartgraymode \dostartgraymode
+ \let\normaldostartgraycolormode\dostartgraycolormode
+ \let\normaldostartrgbcolormode \dostartrgbcolormode
+ \let\normaldostartcmykcolormode\dostartcmykcolormode
+ \let\normaldostartspotcolormode\dostartspotcolormode
-\def\traceddostartgraycolormode#1%
- {#1\normaldostartgraycolormode{#1}}
+ \def\traceddostartgraymode#1%
+ {#1\normaldostartgraymode{#1}}
-\def\traceddostartrgbcolormode#1#2#3%
- {#1 #2 #3\normaldostartrgbcolormode{#1}{#2}{#3}}
+ \def\traceddostartgraycolormode#1%
+ {#1\normaldostartgraycolormode{#1}}
-\def\traceddostartcmykcolormode#1#2#3#4%
- {#1 #2 #3 #4\normaldostartcmykcolormode{#1}{#2}{#3}{#4}}
+ \def\traceddostartrgbcolormode#1#2#3%
+ {#1 #2 #3\normaldostartrgbcolormode{#1}{#2}{#3}}
-\def\traceddostartspotcolormode#1#2%
- {#1 #2\normaldostartspotcolormode{#1}{#2}}
+ \def\traceddostartcmykcolormode#1#2#3#4%
+ {#1 #2 #3 #4\normaldostartcmykcolormode{#1}{#2}{#3}{#4}}
-\def\showcolormodes
- {\let\dostartgraymode \traceddostartgraymode
- \let\dostartgraycolormode\traceddostartgraycolormode
- \let\dostartrgbcolormode \traceddostartrgbcolormode
- \let\dostartcmykcolormode\traceddostartcmykcolormode
- \let\dostartspotcolormode\traceddostartspotcolormode}
+ \def\traceddostartspotcolormode#1#2%
+ {#1 #2\normaldostartspotcolormode{#1}{#2}}
+
+ \def\showcolormodes
+ {\let\dostartgraymode \traceddostartgraymode
+ \let\dostartgraycolormode\traceddostartgraycolormode
+ \let\dostartrgbcolormode \traceddostartrgbcolormode
+ \let\dostartcmykcolormode\traceddostartcmykcolormode
+ \let\dostartspotcolormode\traceddostartspotcolormode}
+
+\stopnotmode
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/math-ali.mkiv b/Master/texmf-dist/tex/context/base/math-ali.mkiv
new file mode 100644
index 00000000000..f98eb11dfed
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/math-ali.mkiv
@@ -0,0 +1,1059 @@
+%D \module
+%D [ file=math-ali,
+%D version=2008.10.20,
+%D title=\CONTEXT\ Math Macros,
+%D subtitle=Math Alignments,
+%D author={Hans Hagen, Taco Hoekwater \& Aditya Mahajan},
+%D date=\currentdate,
+%D copyright=PRAGMA-ADE / Hans Hagen]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Math Macros / Math Alignments}
+
+\unprotect
+
+%D The code here has been moved from other files. Beware: the \MKII\ and
+%D \MKIV\ code is not gathered in files with the same name.
+
+%D \macros
+%D {\definemathalignment, setupmathalignment, startmathalignment}
+%D
+%D Modules may provide additional alignment features. The following
+%D mechanisms are provided by the core.
+
+% n>1 #### needed, strange # interaction in recurse
+
+\def\presetdisplaymath{\displ@y} % some day i will relocate the plain stuff
+
+\def\buildeqalign
+ {\scratchtoks\emptytoks
+ \dorecurse{\mathalignmentparameter\c!m}
+ {\ifnum\recurselevel>\plusone
+ \appendtoks
+ \tabskip\mathalignmentparameter\c!distance&\tabskip\zeropoint
+ \to\scratchtoks
+ \fi
+ \normalexpanded{\scratchtoks{\the\scratchtoks\the\!!toksa}}%
+ \dorecurse{\numexpr\mathalignmentparameter\c!n-\plusone\relax}
+ {\normalexpanded{\scratchtoks{\the\scratchtoks\the\!!toksb}}}}%
+ \normalexpanded{\scratchtoks{\the\scratchtoks\the\!!toksc}}}
+
+\def\forgetalign
+ {\tabskip\zeropoint\everycr\emptytoks}
+
+\let\firstineqalign\empty
+\let\nextineqalign \empty
+\let\leftofeqalign \empty
+\let\rightofeqalign\empty
+
+\def\mathineqalign#1{$\forgetalign\displaystyle{{}#1{}}$}
+\def\textineqalign#1{$\forgetalign#1$}
+
+\def\eqalign#1% why no halign here, probably because of displaywidth
+ {\null\,\vcenter
+ {\openup.25\bodyfontsize% was: \openup\jot
+ \mathsurround\zeropoint
+ \ialign{\strut\hfil$\displaystyle{##}$&$\displaystyle{{}##{}}$\hfil\crcr#1\crcr}%
+ }\,}
+
+% preamble is scanned for tabskips so we need the span to prevent an error message
+
+\chardef\eqalignmode\plusone
+
+\def\preparereqalignno
+ {\!!toksa{\strut\firstineqalign\hfil\leftofeqalign\span\mathineqalign{##}\rightofeqalign\tabskip\zeropoint}%
+ \!!toksb{&\nextineqalign\leftofeqalign\span\mathineqalign{##}\rightofeqalign\tabskip\zeropoint}%
+ \ifnum\mathraggedstatus=\plusone
+ \!!toksc{\hfil&\span\textineqalign{##}\tabskip\zeropoint}%
+ \else\ifnum\mathraggedstatus=\plusthree
+ \!!toksc{\hfil\tabskip\zeropoint\!!plus 1\!!fill&\span\textineqalign{##}\tabskip\zeropoint}%
+ \else
+ \!!toksc{\hfil\tabskip\centering&\llap{\span\textineqalign{##}}\tabskip\zeropoint}%
+ \fi\fi
+ \global\chardef\mathnumberstatus\zerocount
+ \buildeqalign
+ \presetdisplaymath
+ \tabskip\centering}
+
+\def\prepareleqalignno
+ {\!!toksa{\strut\firstineqalign\hfil\leftofeqalign\span\mathineqalign{##}\rightofeqalign\tabskip\zeropoint}%
+ \!!toksb{&\nextineqalign\leftofeqalign\span\mathineqalign{##}\rightofeqalign\tabskip\zeropoint}%
+ % problem: number is handled after rest and so ends up in the margin
+ \ifnum\mathraggedstatus=\plusone
+ \!!toksc{\hfil&\kern-\displaywidth\rlap{\span\textineqalign{##}}\tabskip\displaywidth}%
+ \else\ifnum\mathraggedstatus=\plusthree
+ \!!toksc{\hfil\tabskip\zeropoint\!!plus 1\!!fill&\kern-\displaywidth\span\mrlap{\span\textineqalign{##}}\tabskip\displaywidth}%
+ \else
+ \!!toksc{\hfil\tabskip\centering&\kern-\displaywidth\rlap{\span\textineqalign{##}}\tabskip\displaywidth}%
+ \fi\fi
+ \global\chardef\mathnumberstatus\zerocount
+ \buildeqalign
+ \presetdisplaymath
+ \tabskip\centering}
+
+\def\dobotheqalignno#1#2%
+ {\ifmmode
+ \displ@y % \let\doplaceformulanumber\relax % strange hack
+ \vcenter\bgroup
+ \let\finishalignno\egroup
+ \else
+ \let\finishalignno\relax
+ \fi
+ #1%
+ \halign \ifcase\eqalignmode \or to \displaywidth \fi \@EA {\the\scratchtoks\crcr#2\crcr}%
+ \finishalignno}
+
+\def\dobothaligneqalignno#1%
+ {\ifmmode
+ \displ@y
+ \global\chardef\mathnumberstatus\plusone
+ \ifcase\mathraggedstatus
+ \def\finishalignno{\crcr\egroup}%
+ \else
+ % we're in a mathbox
+ \vcenter\bgroup
+ \def\finishalignno{\crcr\egroup\egroup}%
+ \fi
+ \fi
+ #1%
+ \halign \ifcase\eqalignmode \or to \displaywidth \fi \@EA \bgroup\the\scratchtoks\crcr}
+
+\def\mrlap#1%
+ {\setbox\scratchbox\hbox{#1}%
+ \ifdim\wd\scratchbox>\mathnumbercorrection
+ \xdef\mathnumbercorrection{\the\wd\scratchbox}%
+ \fi
+ \box\scratchbox
+ \global\chardef\mathnumberstatus\plustwo}
+
+% \def\dobothaligneqalignno#1%
+% {\ifmmode
+% \displ@y
+% \global\chardef\mathnumberstatus\plusone
+% we're in a mathbox
+% \vcenter\bgroup
+% \def\finishalignno{\crcr\egroup\egroup}%
+% \else
+% \def\finishalignno{\crcr\egroup}%
+% \fi
+% #1%
+% \halign \ifcase\eqalignmode \or to \displaywidth \fi \@EA \bgroup\the\scratchtoks\crcr}
+
+\def\reqalignno {\dobotheqalignno \preparereqalignno}
+\def\leqalignno {\dobotheqalignno \prepareleqalignno}
+\def\alignreqalignno{\dobothaligneqalignno\preparereqalignno}
+\def\alignleqalignno{\dobothaligneqalignno\prepareleqalignno}
+\def\finishalignno {\crcr\egroup}
+
+\let \equalignno \reqalignno
+\let\aligneqalignno\alignreqalignno
+
+%D Here we implement the user interface part.
+
+\def\setupmathalignment
+ {\dodoubleempty\dosetupmathalignment}
+
+\def\dosetupmathalignment[#1][#2]%
+ {\ifsecondargument
+ \getparameters[\??eq#1][#2]%
+ \else
+ \getparameters[\??eq][#1]%
+ \fi}
+
+\let\currentmathalignment\empty
+
+\def\mathalignmentparameter#1%
+ {\executeifdefined{\??eq\currentmathalignment#1}{\executeifdefined{\??eq#1}\empty}}
+
+\setupmathalignment
+ [\c!n=2,
+ \c!m=1,
+ \c!distance=1em]
+
+\def\numberedeqalign
+ {\doifelse{\formulaparameter\c!location}\v!left\alignleqalignno\alignreqalignno}
+
+\def\doxxdoubleempty#1#2%
+ {\ifx#2[\expandafter\dodoxxdoubleempty\else\expandafter\noxxdoubleempty\fi#1#2}
+
+\def\dodoxxdoubleempty#1[#2]#3%
+ {\ifx#3[\else\expandafter\nonoxxdoubleempty\fi#1[#2]#3}
+
+\def\noxxdoubleempty #1{#1[][]}
+\def\nonoxxdoubleempty#1[#2]{#1[#2][]}
+
+\newcount\eqaligncolumn
+
+\def\firstineqalign{\global\eqaligncolumn\plusone}
+\def\nextineqalign {\global\advance\eqaligncolumn\plusone}
+\def\leftofeqalign {\getvalue{\??eq:\v!left :\number\eqaligncolumn}}
+\def\rightofeqalign{\getvalue{\??eq:\v!right:\number\eqaligncolumn}}
+
+\def\doseteqaligncolumn#1%
+ {\letvalue{\??eq:\v!left :\number\eqaligncolumn}\empty
+ \letvalue{\??eq:\v!right:\number\eqaligncolumn}\empty
+ \doif{#1}\v!left {\letvalue{\??eq:\v!right:\number\eqaligncolumn}\hfill}%
+ \doif{#1}\v!right {\letvalue{\??eq:\v!left :\number\eqaligncolumn}\hfill}%
+ \doif{#1}\v!middle{\letvalue{\??eq:\v!right:\number\eqaligncolumn}\hfill
+ \letvalue{\??eq:\v!left :\number\eqaligncolumn}\hfill}}
+
+\def\dodoalignNC
+ {\gdef\doalignNC##1{&##1}}
+
+\def\doalignNR[#1][#2]%
+ {\donestedformulanumber{#1}{#2}\crcr}
+
+%D \starttyping
+%D \placeformula[eqn0]\startformula \startalign[n=1] a\NR \stopalign \stopformula See \in[eqn0]
+%D \placeformula[eqn1]\startformula \startalign[n=1] a\NR \stopalign \stopformula See \in[eqn1]
+%D \placeformula \startformula \startalign[n=1] a\NR[eqn2] \stopalign \stopformula See \in[eqn2]
+%D \placeformula[eqn3]\startformula \startalign[n=1] a\NR[+] \stopalign \stopformula See \in[eqn3]
+%D \stoptyping
+
+% todo: pop in cell
+
+\def\dostartmathalignment[#1][#2]%
+ {% \begingroup not permitted ($$...assignments...\halign... )
+ \pushmacro\doalignNC
+ \edef\currentmathalignment{#1}%
+ \doifassignmentelse{#2}{\setupmathalignment[#1][#2]}\donothing
+ \def\NC{\doalignNC}%
+ \global\let\doalignNC\dodoalignNC
+ \def\EQ{&=}%
+ \def\NR{&\global\let\doalignNC\dodoalignNC\doxxdoubleempty\doalignNR}%
+ % amstex compatibility mode: (ugly, will disappear)
+ \def\notag{\def\\{&\crcr}}%
+ \doifelse{#2}{*}{\def\\{&\crcr}}{\def\\{&\doalignNR[+][]\crcr}}%
+ % end of compatibility mode
+ \eqaligncolumn\zerocount
+ \processcommacommand
+ [\mathalignmentparameter\c!align]
+ {\advance\eqaligncolumn\plusone\doseteqaligncolumn}% takes argument
+ % the real action
+ \global\eqaligncolumn\plusone
+ \numberedeqalign}
+
+\def\dostopmathalignment
+ {\finishalignno
+ \popmacro\doalignNC}
+
+\def\definemathalignment
+ {\dodoubleempty\dodefinemathalignment}
+
+\def\dodefinemathalignment[#1]% [#2]%
+ {\setvalue{\e!start#1}{\dodoubleempty\dostartmathalignment[#1]}%
+ \setvalue{\e!stop #1}{\dostopmathalignment}%
+ \setupmathalignment[#1]}% [#2]
+
+%D For the moment we only provide english commands.
+
+\definemathalignment[align] % default case (this is what amstex users expect)
+\definemathalignment[\v!mathalignment] % prefered case (this is cleaner, less clashing)
+
+%D \startbuffer
+%D \placeformula \startformula \eqalignno {
+%D a &= b & \formulanumber \cr
+%D c &= d \cr
+%D &= e \cr
+%D &= f & \formulanumber
+%D } \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+%D
+%D \startbuffer
+%D \placeformula \startformula \startalign
+%D \NC a \EQ b \NR[+]
+%D \NC c \EQ d \NR
+%D \NC \EQ f \NR[for:demo-a-1]
+%D \NC \EQ g \NR[for:demo-a-2][a]
+%D \NC \EQ h \NR[for:demo-a-3][b]
+%D \NC \EQ i \NR
+%D \stopalign \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+%D
+%D \startbuffer
+%D \placeformula \startformula \startalign
+%D \NC a \EQ b \NR[+]
+%D \NC c \EQ d \NR
+%D \NC \EQ f \NR
+%D \NC \EQ g \NR
+%D \NC \EQ h \NR
+%D \NC \EQ i \NR[+]
+%D \stopalign \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+%D
+%D \startbuffer
+%D \placeformula \startformula \startalign
+%D a &= b \\
+%D c &= d \notag \\
+%D &= e \notag \\
+%D &= f \\
+%D \stopalign \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+%D
+%D \startbuffer
+%D \placeformula \startformula \startalign
+%D \NC a \NC \eq b \NR[+]
+%D \NC c \NC \neq d \NR
+%D \NC \NC \neq f \NR[for:demo-b-1]
+%D \NC \NC \geq g \NR[for:demo-b-2][a]
+%D \NC \NC \leq h \NR[for:demo-b-3][b]
+%D \NC \NC \neq i \NR
+%D \stopalign \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+%D
+%D \startbuffer
+%D \placeformula \startformula \startalign[*]
+%D a &= b \\
+%D c &= d \\
+%D &= e \\
+%D &= f \\
+%D \stopalign \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+%D
+%D \startbuffer
+%D \placeformula \startformula \startalign
+%D x &= y \\
+%D a &= b \\
+%D \stopalign \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+%D
+%D \startbuffer
+%D \placeformula \startformula \startalign[m=3]
+%D x &= y & x &= y & z &= t \\
+%D a &= b & p &= q & w &= s \\
+%D \stopalign \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+%D
+%D \startbuffer
+%D \placeformula \startformula \startalign[m=3,distance=0pt]
+%D x &= y &= x &= y &= z &= t \\
+%D a &= b &= p &= q &= w &= s \\
+%D \stopalign \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+%D
+%D \startbuffer
+%D \placeformula \startformula \startalign[n=5,distance=0pt]
+%D x &= yy &= xx &= yy &= zz \\
+%D a &= b &= p &= q &= w \\
+%D \stopalign \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+%D
+%D \startbuffer
+%D \placeformula \startformula \startalign[n=3,align={left,middle,right}]
+%D \NC l \NC = \NC r \NR
+%D \NC left \NC = \NC right \NR
+%D \stopalign \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+%D
+%D \startbuffer
+%D \placeformula \startformula \startalign[n=3,align={right,middle,left}]
+%D \NC l \NC = \NC r \NR
+%D \NC left \NC = \NC right \NR
+%D \stopalign \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+%D
+%D \startbuffer
+%D \placeformula \startformula \startalign[n=3,align={middle,middle,middle}]
+%D \NC l \NC = \NC r \NR
+%D \NC left \NC = \NC right \NR
+%D \stopalign \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+%D
+%D \startbuffer
+%D \placeformula
+%D \startformula
+%D \startalign[n=3,align={middle,middle,middle}]
+%D \NC a \NC = \NC b \NR[+]
+%D \NC 2a \NC = \NC 2b \NR
+%D \stopalign
+%D \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+%D
+%D \startbuffer
+%D \placeformula
+%D \startformulas
+%D \setupmathalignment[n=3,align={middle,middle,middle}]%
+%D \startformula
+%D \startalign
+%D \NC a \NC = \NC b \NR[+]
+%D \NC 2a \NC = \NC 2b \NR
+%D \stopalign
+%D \stopformula
+%D \startformula
+%D \startalign
+%D \NC a \NC = \NC b \NR[+]
+%D \NC 2a \NC = \NC 2b \NR
+%D \stopalign
+%D \stopformula
+%D \stopformulas
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+%D
+%D \startbuffer
+%D \placeformula
+%D \startformulas
+%D \dorecurse{5}{\startformula
+%D \startalign[n=3,align={middle,middle,middle}]
+%D \NC a \NC = \NC b \NR[+]
+%D \NC 2a \NC = \NC 2b \NR
+%D \stopalign
+%D \stopformula}
+%D \stopformulas
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+
+%D \macros
+%D {definemathcases, setupmathcases, startmathcases}
+%D
+%D Another wish \unknown
+
+\def\setupmathcases
+ {\dodoubleempty\dosetupmathcases}
+
+\def\dosetupmathcases[#1][#2]%
+ {\ifsecondargument
+ \getparameters[\??ce#1][#2]%
+ \else
+ \getparameters[\??ce][#1]%
+ \fi}
+
+\let\currentmathcases\empty
+
+\def\mathcasesparameter#1%
+ {\executeifdefined{\??ce\currentmathcases#1}{\executeifdefined{\??ce#1}\empty}}
+
+\setupmathcases
+ [\c!distance=1em,
+ \c!numberdistance=2.5em,
+ \c!left={\left\{\,},
+ \c!right={\right.}]
+
+\def\dodocasesNC
+ {\gdef\docasesNC{\endmath&}}
+
+\let\docasesNR\doalignNR
+
+\def\dostartmathcases[#1][#2]%
+ {\begingroup
+ \edef\currentmathcases{#1}%
+ \doifassignmentelse{#2}{\setupmathcases[#1][#2]}\donothing
+ \mathcasesparameter\c!left
+ \vcenter\bgroup
+ \pushmacro\docasesNC
+ \let\endmath\relax
+ \def\NC{\docasesNC}%
+ \def\MC{\docasesNC\ifmmode\else$\def\endmath{$}\fi}%
+ \global\let\docasesNC\dodocasesNC
+ \def\NR{\unskip\endmath&\global\let\docasesNC\dodocasesNC\doxxdoubleempty\docasesNR}%
+ \normalbaselines
+ \mathsurround\zeropoint
+ \everycr\emptytoks
+ \tabskip\zeropoint
+ \global\eqaligncolumn\plusone
+ \halign\bgroup
+ $\mathcasesparameter\c!style##$\hfil
+ &\hskip\mathcasesparameter\c!distance\relax
+ \popmacro\docasesNC##\hfil
+ &\hskip\mathcasesparameter\c!numberdistance\relax
+ \let\formuladistance\!!zeropoint
+ \span\textineqalign{##}%
+ \crcr} % todo: number
+
+\def\dostopmathcases
+ {\crcr
+ \egroup
+ \popmacro\docasesNC
+ \egroup
+ \mathcasesparameter\c!right
+ \endgroup}
+
+\def\definemathcases
+ {\dodoubleempty\dodefinemathcases}
+
+\def\dodefinemathcases[#1]% [#2]%
+ {\setvalue{\e!start#1}{\dodoubleempty\dostartmathcases[#1]}%
+ \setvalue{\e!stop #1}{\dostopmathcases}%
+ \setupmathcases[#1]}% [#2]
+
+\definemathcases[cases]
+\definemathcases[\v!mathcases]
+
+%D \startbuffer
+%D \placeformula \startformula \startcases
+%D \NC 2 \NC $ y > 0 $ \NR
+%D \NC 7 \NC $ x = 7 $ \NR[+]
+%D \NC 4 \NC otherwise \NR
+%D \stopcases \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+%D
+%D \startbuffer
+%D \placeformula \startformula x \startcases
+%D \NC 2 \NC $ y > 0 $ \NR[+]
+%D \NC 7 \NC $ x = 7 $ \NR
+%D \NC 4 \NC otherwise \NR
+%D \stopcases \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+%D
+%D \startbuffer
+%D \placeformula \startformula \startcases
+%D \NC 2 \NC $ y > 0 $ \NR
+%D \NC 7 \NC $ x = 7 $ \NR
+%D \NC 4 \NC otherwise \NR
+%D \stopcases \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+%D
+%D \startbuffer
+%D \placeformula \startformula x \startcases
+%D \NC 2 \NC $ y > 0 $ \NR
+%D \NC 7 \NC $ x = 7 $ \NR
+%D \NC 4 \NC otherwise \NR
+%D \stopcases \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+
+%D \macros
+%D {definemathmatrix, setupmathmatrix, startmathmatrix}
+%D
+%D Yet another one \unknown
+
+\def\setupmathmatrix
+ {\dodoubleempty\dosetupmathmatrix}
+
+\def\dosetupmathmatrix[#1][#2]%
+ {\ifsecondargument
+ \getparameters[\??mx#1][#2]%
+ \else
+ \getparameters[\??mx][#1]%
+ \fi}
+
+\let\currentmathmatrix\empty
+
+\def\mathmatrixparameter#1%
+ {\executeifdefined{\??mx\currentmathmatrix#1}{\executeifdefined{\??mx#1}\empty}}
+
+\setupmathmatrix
+ [\c!distance=1em,
+ \c!left=,
+ \c!right=,
+ \c!align=\v!middle]
+
+\def\dosetmatrixcolumn#1% hh: todo: \definematrixalign
+ {\letvalue{\??eq:\v!left :\number\eqaligncolumn}\hfil
+ \letvalue{\??eq:\v!right:\number\eqaligncolumn}\hfil
+ \doif{#1}\v!left {\letvalue{\??eq:\v!left :\number\eqaligncolumn}\relax
+ \letvalue{\??eq:\v!right:\number\eqaligncolumn}\hfil}%
+ \doif{#1}\v!right {\letvalue{\??eq:\v!left :\number\eqaligncolumn}\hfil
+ \letvalue{\??eq:\v!right:\number\eqaligncolumn}\relax }%
+ \doif{#1}\v!middle{\letvalue{\??eq:\v!left :\number\eqaligncolumn}\hfil
+ \letvalue{\??eq:\v!right:\number\eqaligncolumn}\hfil}}
+
+\def\buildmathmatrix % beware: etex only
+ {\scratchtoks\emptytoks
+ \normalexpanded{\scratchtoks{\the\scratchtoks\the\!!toksa}}%
+ \dorecurse{\numexpr\scratchcounter-\plusone\relax}
+ {\normalexpanded{\scratchtoks{\the\scratchtoks\the\!!toksb}}}%
+ \normalexpanded{\scratchtoks{\the\scratchtoks\the\!!toksc }}}
+
+\def\preparemathmatrix
+ {\!!toksa{\strut \firstineqalign\leftofeqalign \span
+ \textineqalign{\mathmatrixparameter\c!style ##}\rightofeqalign}%
+ \!!toksb{&\hskip\mathmatrixparameter\c!distance
+ \nextineqalign\leftofeqalign \span
+ \textineqalign{\mathmatrixparameter\c!style ##}\rightofeqalign}%
+ \!!toksc{&&\hskip\mathmatrixparameter\c!distance
+ \leftofeqalign \span
+ \textineqalign{\mathmatrixparameter\c!style ##}\rightofeqalign}%
+ \buildmathmatrix
+ \halign \@EA \bgroup\the\scratchtoks \crcr}
+
+\def\definemathmatrix
+ {\dodoubleempty\dodefinemathmatrix}
+
+\def\dodefinemathmatrix[#1]% [#2]%
+ {\setvalue{\e!start#1}{\dodoubleempty\dostartmathmatrix[#1]}%
+ \setvalue{\e!stop #1}{\dostopmathmatrix}%
+ \setupmathmatrix[#1]}% [#2]
+
+\definemathmatrix[matrix]
+\definemathmatrix[\v!mathmatrix]
+
+\def\dodomatrixNC
+ {\gdef\domatrixNC{\endmath&}}
+
+\def\installmathmatrixhandler#1#2%
+ {\setvalue{\??mx:#1}{#2}}
+
+% First alternative:
+%
+% \def\processlowhighmathmatrix#1%
+% {\def\mathmatrixleft
+% {\setbox\nextbox}
+% \def\mathmatrixright
+% {#1.5\dimexpr\nextboxdp-\nextboxht\relax
+% \hbox{$\mathmatrixparameter\c!left
+% \vcenter{\unvbox\nextbox}%
+% \mathmatrixparameter\c!right$}}%
+% \let\mathmatrixbox\vbox}
+%
+% \installmathmatrixhandler\v!high {\processlowhighmathmatrix\raise}
+% \installmathmatrixhandler\v!low {\processlowhighmathmatrix\lower}
+%
+% \installmathmatrixhandler\v!top {\processlowhighmathmatrix\raise}
+% \installmathmatrixhandler\v!bottom{\processlowhighmathmatrix\lower}
+%
+% \installmathmatrixhandler\v!lohi
+% {\def\mathmatrixleft {\mathmatrixparameter\c!left}%
+% \def\mathmatrixright{\mathmatrixparameter\c!right}%
+% \let\mathmatrixbox\vcenter}
+%
+% An alternative
+%
+% \let\mathmatrixleft \empty
+% \let\mathmatrixright\empty
+%
+% \def\processlowhighmathmatrix#1%
+% {\dowithnextbox
+% {#1.5\dimexpr\nextboxdp-\nextboxht\relax
+% \hbox{$\mathmatrixparameter\c!left
+% \vcenter{\unvbox\nextbox}%
+% \mathmatrixparameter\c!right$}}%
+% \vbox}
+%
+% \def\processlohimathmatrix
+% {\dowithnextbox
+% {\mathmatrixparameter\c!left
+% \vcenter{\unvbox\nextbox}%
+% \mathmatrixparameter\c!right}%
+% \vbox}
+%
+% \installmathmatrixhandler\v!high {\def\mathmatrixbox{\processlowhighmathmatrix\raise}}
+% \installmathmatrixhandler\v!low {\def\mathmatrixbox{\processlowhighmathmatrix\lower}}
+% \installmathmatrixhandler\v!top {\def\mathmatrixbox{\processlowhighmathmatrix\raise}}
+% \installmathmatrixhandler\v!bottom{\def\mathmatrixbox{\processlowhighmathmatrix\lower}}
+% \installmathmatrixhandler\v!lohi {\let\mathmatrixbox \processlohimathmatrix}
+%
+% Final version
+
+\let\mathmatrixleft \empty % experimental hook
+\let\mathmatrixright\empty % experimental hook
+
+\def\processlowhighmathmatrix#1#2%
+ {\dowithnextbox
+ {\scratchdimen\dimexpr(\nextboxdp-\nextboxht)/2 \ifcase#2\or+\mathaxisheight\textfont2\fi\relax
+ \ifcase#1\relax\or\lower\scratchdimen\or\or\raise\scratchdimen\fi
+ \hbox{$\mathmatrixparameter\c!left
+ \vcenter{\unvbox\nextbox}%
+ \mathmatrixparameter\c!right$}}%
+ \vbox}
+
+\installmathmatrixhandler\v!top {\def\mathmatrixbox{\processlowhighmathmatrix\plusthree\plusone }}
+\installmathmatrixhandler\v!high {\def\mathmatrixbox{\processlowhighmathmatrix\plusthree\zerocount}}
+\installmathmatrixhandler\v!lohi {\def\mathmatrixbox{\processlowhighmathmatrix\plustwo \zerocount}}
+\installmathmatrixhandler\v!low {\def\mathmatrixbox{\processlowhighmathmatrix\plusone \zerocount}}
+\installmathmatrixhandler\v!bottom{\def\mathmatrixbox{\processlowhighmathmatrix\plusone \plusone }}
+
+\def\dostartmathmatrix[#1][#2]%
+ {\begingroup
+ \edef\currentmathmatrix{#1}%
+ \doifassignmentelse{#2}{\setupmathmatrix[#1][#2]}\donothing
+ \null
+ \executeifdefined{\??mx:\mathmatrixparameter\c!location}{\getvalue{\??mx:\v!lohi}}%
+ \mathmatrixleft
+ \mathmatrixbox\bgroup
+ \pushmacro\domatrixNC
+ \let\endmath\relax
+ \def\NC{\domatrixNC}%
+ \def\MC{\domatrixNC\ifmmode\else$\def\endmath{$}\fi}%
+ \global\let\domatrixNC\dodomatrixNC
+ \def\NR{\endmath\global\let\domatrixNC\dodomatrixNC\crcr}%
+ \normalbaselines
+ \mathsurround\zeropoint
+ \everycr\emptytoks
+ \tabskip\zeropoint
+ \eqaligncolumn\zerocount % could be \scratchcounter
+ \processcommacommand[\mathmatrixparameter\c!align]{\advance\eqaligncolumn\plusone\dosetmatrixcolumn}%
+ \scratchcounter=\ifnum\eqaligncolumn>\zerocount \eqaligncolumn \else \plusone \fi
+ \global\eqaligncolumn\plusone
+ \preparemathmatrix } % uses scratchcounter
+
+\def\dostopmathmatrix
+ {\crcr
+ \mathstrut\crcr
+ \noalign{\kern-\baselineskip}%
+ \egroup
+ \popmacro\domatrixNC
+ \egroup
+ \mathmatrixright
+ \endgroup}
+
+%D \startbuffer
+%D \placeformula \startformula[-] \startmatrix
+%D \NC 1 \NC x \NC a \NR
+%D \NC 2 \NC y \NC b \NR
+%D \NC 3 \NC z \NC c \NR
+%D \stopmatrix \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+%D
+%D \definemathmatrix[bmatrix][left={\left[\,},right={\,\right]}]
+%D
+%D \startbuffer
+%D \placeformula \startformula[-] \startbmatrix
+%D \NC 1 \NC x \NC a \NR
+%D \NC 2 \NC y \NC b \NR
+%D \NC 3 \NC z \NC c \NR
+%D \stopbmatrix \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+%D
+%D Taco added some code (dedicated to Aditya Mahajan) that gives more
+%D control over aligments:
+
+%D \startbuffer
+%D \startformula
+%D \startmatrix
+%D \NC a + x \NC = \NC a + d \NR
+%D \NC y \NC = \NC d \NR
+%D \stopmatrix
+%D \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+
+%D \startbuffer
+%D \startformula
+%D \startmatrix [distance=3pt,align={right,left}]
+%D \NC a + x \NC = a + d \NR
+%D \NC y \NC = d \NR
+%D \stopmatrix
+%D \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+
+%D \startbuffer
+%D \startformula
+%D \startmatrix [left=\left(,right=\right)]
+%D \NC a + x \NR
+%D \NC y \NR
+%D \stopmatrix
+%D \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+%D
+%D A bit more complex code:
+%D
+%D \startbuffer
+%D \startformula
+%D \text{Let }{\cal R} = \bigcup_{P_{X_1},P_{X_2}}
+%D \left\{ (R_1, R_2) :
+%D \startmatrix[distance=1em,align={left,left,right}]
+%D \NC R_1 \NC < I(X_1 ; Y \mid X_2) \NC R_1 \NR
+%D \NC \hfill Q_2 \NC < I(X_2 ; Y \mid X_1) \NC R_2 \NR
+%D \NC R_1 + R_2 \NC < I(X_1 ; Y) \NC R_1 + R_2 \NR
+%D \stopmatrix
+%D \right\}
+%D \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+
+%D \macros
+%D {startmatrices}
+%D
+%D Just a handy keystroke safer:
+
+\def\startmatrices
+ {\begingroup
+ \setupmathmatrix}
+
+\def\stopmatrices
+ {\endgroup}
+
+%D \startbuffer
+%D \startformula
+%D \startmatrix[left={\left(},right={\right)}]
+%D \NC A \NC B \NR \NC C \NC D \NR
+%D \stopmatrix
+%D =
+%D \startmatrix[left={\left(},right={\right)},location=low]
+%D \NC A \NC B \NR \NC C \NC D \NR
+%D \stopmatrix
+%D =
+%D \startmatrix[left={\left(},right={\right)},location=high]
+%D \NC A \NC B \NR \NC C \NC D \NR
+%D \stopmatrix
+%D \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+%D
+%D \startbuffer
+%D \startformula
+%D \startmatrices[left={\left(},right={\right)}]
+%D \startmatrix
+%D \NC A \NC B \NR \NC C \NC D \NR
+%D \stopmatrix
+%D =
+%D \startmatrix[location=bottom]
+%D \NC A \NC B \NR \NC C \NC D \NR
+%D \stopmatrix
+%D =
+%D \startmatrix[location=top]
+%D \NC A \NC B \NR \NC C \NC D \NR
+%D \stopmatrix
+%D \stopmatrices
+%D \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+
+%D \macros
+%D {startintertext}
+%D
+%D Preliminary feature:
+%D
+%D {\em example code}
+
+\def\startintertext#1\stopintertext
+ {\noalign{\dointertext{#1}}}
+
+\def\intertext#1%
+ {\noalign{\dointertext{#1}}}
+
+\unexpanded\def\dointertext#1%
+ {\penalty\postdisplaypenalty
+ \afterdisplayspace
+ \vbox{\forgetall\noindent#1\par}%
+ \penalty\predisplaypenalty
+ \beforedisplayspace}
+
+% %D \macros
+% %D {substack}
+% %D
+% %D Preliminary code:
+% %D
+% %D \starttyping
+% %D \startformula
+% %D \sum_{%
+% %D \startsubstack
+% %D i = 1 \NR
+% %D i \neq n \NR
+% %D i \neq m
+% %D \stopsubstack
+% %D }a_i
+% %D \stopformula
+% %D \stoptyping
+
+% \def\startsubstack
+% {\begingroup
+% \null
+% \vcenter\bgroup
+% \pushmacro\domatrixNC
+% \let\stopmathmode\relax
+% \def\NC{\domatrixNC}%
+% \def\MC{\domatrixNC\startmathmode}%
+% \global\let\domatrixNC\dodomatrixNC
+% \def\NR
+% {\stopmathmode
+% \global\let\domatrixNC\dodomatrixNC
+% \crcr\noalign{\nointerlineskip}}%
+% \mathsurround\zeropoint
+% \everycr\emptytoks
+% \halign\bgroup\hfil$\scriptstyle\mathstrut##$\hfil\crcr}
+
+% \def\stopsubstack
+% {\crcr
+% \egroup
+% \popmacro\domatrixNC
+% \egroup
+% \endgroup}
+
+%D \macros
+%D {substack}
+%D
+%D Preliminary code:
+%D
+%D \startbuffer
+%D \startformula
+%D \sum_{%
+%D \startsubstack
+%D i = 1 \NR
+%D i \neq n \NR
+%D i \neq m
+%D \stopsubstack
+%D }a_i
+%D \stopformula
+%D \stopbuffer
+%D
+%D \getbuffer which was typed as \typebuffer
+%D
+%D Notice that these macros give the correct spacing for
+%D subscripts. Compare for example
+%D
+%D \startbuffer
+%D \startformula
+%D \sum_{\startsubstack a \NR b \NR \stopsubstack}
+%D \text{ and }
+%D \sum_{\scriptstyle a \atop \scriptstyle}
+%D \stopformula
+%D \typebuffer which gives \getbuffer
+
+\def\startsubstack
+ {\begingroup
+ \vcenter\bgroup
+ \baselineskip\mathstacktotal
+ \lineskip\mathstackvgap
+ \lineskiplimit\lineskip
+ \let\stopmathmode\relax
+ \def\NC{\domatrixNC}%
+ \def\MC{\domatrixNC\startmathmode}%
+ \global\let\domatrixNC\dodomatrixNC
+ \def\NR
+ {\stopmathmode
+ \global\let\domatrixNC\dodomatrixNC
+ \crcr}%
+ \mathsurround\zeropoint
+ \everycr\emptytoks
+ \halign\bgroup\hfil$\scriptstyle##$\hfil\crcr}
+
+\def\stopsubstack
+ {\crcr
+ \egroup
+ \egroup
+ \endgroup}
+
+%D \macros
+%D {bordermatrix}
+%D
+%D In \PLAIN\ \TEX\ the width of a parenthesis is stored in
+%D the \DIMENSION\ \type{\mathparentwd}. This value is derived from
+%D the width of \type{\tenrm B}, so let's take care of it now:
+
+\ifx\mathparentwd\undefined \newdimen\mathparentwd \fi
+
+\let\normalbordermatrix\bordermatrix
+
+\def\bordermatrix
+ {\begingroup
+ \setbox\scratchbox\hbox{\mr\char"239C}%
+ \global\mathparentwd\wd\scratchbox\relax
+ \endgroup
+ \normalbordermatrix}
+
+% to be tested
+%
+% \def\bordermatrix
+% {\begingroup\mr\global\mathparentwd\fontcharwd\font"239C\relax\endgroup
+% \normalbordermatrix}
+
+%D \macros{overset, underset}
+%D
+%D The macros \type{\overset} and \type{\underset} are provided by
+%D \AMS\ packages in \LATEX. These macro allows you to place a symbol
+%D above or below another symbol, irrespective of whether the other
+%D symbol is a relation or something else, and without influencing the
+%D spacing. For most cases there is a better way to do such things
+%D (declaring a math command with limop option, or using accents), but
+%D occasionally these macros can be useful, for example:
+%D
+%D \startbuffer
+%D \startformula
+%D \overset{*}{X} \underset{*}{X}
+%D \stopformula
+%D \stopbuffer
+%D \typebuffer \getbuffer
+%D
+%D Use these macros sparingly. Remember, \TEX\ was designed for
+%D mathematics, so there is usually a proper method for typesetting
+%D common math notation.
+
+%D These macros are a clearer version of \type{\binrel@} and
+%D \type{\binrel@@} macros in \AMSTEX\ packages.
+
+\def\preparebinrel#1%
+ {\begingroup
+ \setbox\scratchbox\hbox
+ {\thinmuskip 0mu
+ \medmuskip -1mu
+ \thickmuskip -1mu
+ \setbox\scratchbox\hbox{$#1\mathsurround\zeropoint$}%
+ \kern-\wd\scratchbox
+ ${}#1{}\mathsurround\zeropoint$}%
+ \normalexpanded
+ {\endgroup
+ \let\noexpand\currentbinrel
+ \ifdim\wd\scratchbox<\zeropoint
+ \mathbin
+ \else\ifdim\wd\scratchbox>\zeropoint
+ \mathrel
+ \else
+ \relax
+ \fi\fi}}
+
+\unexpanded\def\overset#1#2%
+ {\preparebinrel{#2}%
+ \currentbinrel{\mathop{\kern\zeropoint#2}\limits^{#1}}}
+
+\unexpanded\def\underset#1#2%
+ {\preparebinrel{#2}%
+ \currentbinrel{\mathop{\kern\zeropoint#2}\limits_{#1}}}
+
+\protect \endinput
+
+% \placeformula \startformula[-] \startmatrix
+% \NC 1 \NC x \NC a \NR
+% \NC 2 \NC y \NC b \NR
+% \NC 3 \NC z \NC c \NR
+% \stopmatrix \stopformula
+
+% \definemathmatrix[bordermatrix][left={\left[\,},right={\,\right]}]
+
+% \placeformula \startformula[-] \startbordermatrix
+% \NC 1 \NC x \NC a \NR
+% \NC 2 \NC y \NC b \NR
+% \NC 3 \NC z \NC c \NR
+% \stopbordermatrix \stopformula
diff --git a/Master/texmf-dist/tex/context/base/math-ams.tex b/Master/texmf-dist/tex/context/base/math-ams.mkii
index 29fe19e0b58..83070d01a5a 100644
--- a/Master/texmf-dist/tex/context/base/math-ams.tex
+++ b/Master/texmf-dist/tex/context/base/math-ams.mkii
@@ -311,7 +311,7 @@
\stopmathcollection
\def\AMSwidehat#1%
- {\setbox\scratchbox\hbox{$\m@th#1$}%
+ {\setbox\scratchbox\hbox{$\mathsurround\zeropoint#1$}%
\ifdim\wd\scratchbox>2em
\mathaccent"0\purefamilyhex{mb}5B{#1}%
\else
@@ -319,7 +319,7 @@
\fi}
\def\AMSwidetilde#1%
- {\setbox\scratchbox\hbox{$\m@th#1$}%
+ {\setbox\scratchbox\hbox{$\mathsurround\zeropoint#1$}%
\ifdim\wd\scratchbox>2em
\mathaccent"0\purefamilyhex{mb}5D{#1}%
\else
diff --git a/Master/texmf-dist/tex/context/base/math-arr.mkii b/Master/texmf-dist/tex/context/base/math-arr.mkii
new file mode 100644
index 00000000000..3b9abaa9108
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/math-arr.mkii
@@ -0,0 +1,391 @@
+%D \module
+%D [ file=math-ext,
+%D version=2007.07.19,
+%D title=\CONTEXT\ Math Macros,
+%D subtitle=Arrows,
+%D author={Hans Hagen \& Taco Hoekwater \& Aditya Mahajan},
+%D date=\currentdate,
+%D copyright=\PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Math Macros / Arrows}
+
+\unprotect
+
+%D These will be generalized! Is it still needed in \MKIV?
+
+%D We next define extensible arrows. Extensible arrows are arrows that
+%D change their length according to the width of the text to be placed
+%D above and below the arrow. Since we need to define a lot of arrows,
+%D we first define some helper macros. The basic idea is to measure
+%D the width of the box to be placed above and below the arrow, and
+%D make the \quotation{body} of the arrow as long as the bigger of the
+%D two widths.
+
+\def\mtharrfactor{1}
+\def\mtharrextra {0}
+
+\def\domthxarr#1#2#3#4#5% hm, looks like we do a double mathrel
+ {\begingroup
+ \def\mtharrfactor{1}%
+ \def\mtharrextra {0}%
+ \processaction[#1] % will be sped up
+ [ \v!none=>\def\mtharrfactor{0},
+ \v!small=>\def\mtharrextra{10},
+ \v!medium=>\def\mtharrextra{15},
+ \v!big=>\def\mtharrextra{20},
+ \v!normal=>,
+ \v!default=>,
+ \v!unknown=>\doifnumberelse{#1}{\def\mtharrextra{#1}}\donothing]%
+ \mathsurround\zeropoint
+ \muskip0=\thirdoffourarguments #2mu
+ \muskip2=\fourthoffourarguments #2mu
+ \muskip4=\firstoffourarguments #2mu
+ \muskip6=\secondoffourarguments #2mu
+ \muskip0=\mtharrfactor\muskip0 \advance\muskip0 \mtharrextra mu
+ \muskip2=\mtharrfactor\muskip2 \advance\muskip2 \mtharrextra mu
+ \setbox0\hbox{$\scriptstyle
+ \mkern\muskip4\relax
+ \mkern\muskip0\relax
+ #5\relax
+ \mkern\muskip2\relax
+ \mkern\muskip6\relax
+ $}%
+ \setbox4\hbox{#3\displaystyle}%
+ \dimen0\wd0
+ \ifdim\wd4>\dimen0 \dimen0\wd4 \fi
+ \setbox2\hbox{$\scriptstyle
+ \mkern\muskip4\relax
+ \mkern\muskip0\relax
+ #4\relax
+ \mkern\muskip2\relax
+ \mkern\muskip6\relax
+ $}%
+ \ifdim\wd2>\dimen0 \dimen0\wd2 \fi
+ \setbox4\hbox to \dimen0{#3\displaystyle}%
+ \mathrel{\mathop{\hbox to \dimen0{\hss\copy4\hss}}\limits^{\box0}_{\box2}}
+ \endgroup}
+
+\let\domthxarrsingle\domthxarr
+
+%D There are some arrows which are created by stacking two arrows. The next
+%D macro helps in defining such \quotation{double arrows}.
+
+\def\domthxarrdouble#1#2#3#4#5#6#7% opt l r sp rs top bot
+ {\mathrel
+ {\scratchdimen.32ex\relax % was .22, todo: make configurable
+ \setbox0\hbox{$\domthxarr{#1}{#2}{#4}{\phantom{#6}}{#7}$}%
+ \setbox2\hbox{$\domthxarr{#1}{#3}{#5}{#6}{\phantom{#7}}$}%
+ \raise\scratchdimen\box0
+ \kern-\wd2
+ \lower\scratchdimen\box2}}
+
+%D \macros{definematharrow}
+%D
+%D Macro for defining new arrows. We can define two types of
+%D arrows|<|single arrows and double arrows. Single arrows are defined
+%D as
+%D
+%D \starttyping
+%D \definematharrow [xrightarrow] [0359] [\rightarrowfill]
+%D \stoptyping
+%D
+%D The first argument is the name of the arrow (\tex{xrightarrow} in
+%D this case.) The second argument consists of a set of 4 numbers and
+%D specify the spacing correction in math units~\type{mu}. These
+%D numbers define:
+%D
+%D \startlines
+%D 1st number: arrow||tip correction
+%D 2nd number: arrow||tip correction
+%D 3rd number: space (multiplied by \tex{matharrfactor} and advanced by \tex{matharrextra})
+%D 4th number: space (multiplied by \tex{matharrfactor} and advanced by \tex{matharrextra})
+%D \stoplines
+%D
+%D The third argument is the name of the extensible fill. The third
+%D argument is optional when the arrow is redefined later (this is
+%D useful for font specific tweaking of the skips.) For example,
+%D
+%D \startbuffer
+%D \math{\xrightarrow{above}}
+%D \definematharrow[xrightarrow][0000]
+%D \math{\xrightarrow{above}}
+%D \definematharrow[xrightarrow][55{50}{50}]
+%D \math{\xrightarrow{above}}
+%D \stopbuffer
+%D \typebuffer gives {\getbuffer}
+%D
+%D The double arrows are defined as follows
+%D
+%D \starttyping
+%D \definematharrow [xrightleftharpoons] [3095,0359]
+%D [\rightharpoonupfill,\leftharpoondownfill]
+%D \stoptyping
+%D
+%D The second and the third set of arguments consist of comma
+%D separated values. The first element of the second argument
+%D (\type{3095}) corresponds to the spacing correction of top arrow
+%D fill (\tex{rightarrowupfill}). Similarly, \type{0359} corresponds
+%D to bottom arrow fill \tex{leftharpoondownfill}). Stacking them on
+%D top of each other we get $\xrightleftharpoons[big]{above}{below}$.
+%D The following math arrows are defined
+%D
+%D \placetable[none]{}{\starttable[|l|m|]
+%D \NC \tex{xrightarrow } \NC \xrightarrow [big] \NC \NR
+%D \NC \tex{xleftarrow } \NC \xleftarrow [big] \NC \NR
+%D \NC \tex{xequal } \NC \xequal [big] \NC \NR
+%D \NC \tex{xRightarrow } \NC \xRightarrow [big] \NC \NR
+%D \NC \tex{xLeftarrow } \NC \xLeftarrow [big] \NC \NR
+%D \NC \tex{xLeftrightarrow } \NC \xLeftrightarrow [big] \NC \NR
+%D \NC \tex{xleftrightarrow } \NC \xleftrightarrow [big] \NC \NR
+%D \NC \tex{xmapsto } \NC \xmapsto [big] \NC \NR
+%D \NC \tex{xtwoheadrightarrow } \NC \xtwoheadrightarrow [big] \NC \NR
+%D \NC \tex{xtwoheadleftarrow } \NC \xtwoheadleftarrow [big] \NC \NR
+%D \NC \tex{xrightharpoondown } \NC \xrightharpoondown [big] \NC \NR
+%D \NC \tex{xrightharpoonup } \NC \xrightharpoonup [big] \NC \NR
+%D \NC \tex{xleftharpoondown } \NC \xleftharpoondown [big] \NC \NR
+%D \NC \tex{xleftharpoonup } \NC \xleftharpoonup [big] \NC \NR
+%D \NC \tex{xhookleftarrow } \NC \xhookleftarrow [big] \NC \NR
+%D \NC \tex{xhookrightarrow } \NC \xhookrightarrow [big] \NC \NR
+%D \NC \tex{xleftrightharpoons } \NC \xleftrightharpoons [big] \NC \NR
+%D \NC \tex{xrightleftharpoons } \NC \xrightleftharpoons [big] \NC \NR
+%D \stoptable}
+
+\def\definematharrow
+ {\doquadrupleargument\dodefinematharrow}
+
+\def\dodefinematharrow[#1][#2][#3][#4]% name type[none|both] template command
+ {\iffourthargument
+ \executeifdefined{dodefine#2arrow}\gobblethreearguments{#1}{#3}{#4}%
+ \else\ifthirdargument
+ \dodefinebotharrow{#1}{#2}{#3}%
+ \else\ifsecondargument
+ \redefinebotharrow{#1}{#2}{#3}%
+ \fi\fi\fi}
+
+\def\redefinebotharrow#1#2#3% real dirty, this overload!
+ {\doifdefined{#1}
+ {\pushmacro\dohandlemtharrow
+ \def\dohandlemtharrow[##1][##2]{\setvalue{#1}{\dohandlemtharrow[#2][##2]}}%
+ % == \def\dohandlemtharrow[##1][##2]{\dodefinebotharrow{#1}{#2}{##2}}%
+ \getvalue{#1}%
+ \popmacro\dohandlemtharrow}}
+
+\def\dodefinebotharrow#1#2#3%
+ {\setvalue{#1}{\dohandlemtharrow[#2][#3]}}
+
+\def\dohandlemtharrow
+ {\dotripleempty\doxmtharrow}
+
+\def\doxmtharrow[#1][#2][#3]% #3 == optional arg
+ {\def\dodoxmtharrow{\dododoxmtharrow[#1,\empty,\empty][#2,\empty,\empty][#3]}% {##1}{##2}
+ \dodoublegroupempty\dodoxmtharrow}
+
+\def\dododoxmtharrow[#1,#2,#3][#4,#5,#6][#7]#8#9% [3] is the optional arg
+ {\edef\!!stringa{#2}%
+ \ifx\!!stringa\empty
+ \ifsecondargument
+ \mathrel{\domthxarrsingle{#7}{#1}{#4}{#8}{#9}}%
+ \else
+ \mathrel{\domthxarrsingle{#7}{#1}{#4}{}{#8}}%
+ \fi
+ \else
+ \ifsecondargument
+ \mathrel{\domthxarrdouble{#7}{#1}{#2}{#4}{#5}{#8}{#9}}%
+ \else
+ \mathrel{\domthxarrdouble{#7}{#1}{#2}{#4}{#5}{}{#8}}%
+ \fi
+ \fi}
+
+% Adapted from amsmath.
+
+%D \macros{mtharrowfill,defaultmtharrowfill}
+%D
+%D To extend the arrows we need to define a \quotation{math arrow
+%D fill}. This command takes 8 arguments: the first four correspond
+%D the second argument of \tex{definematharrow} explained above. The
+%D other three specify the tail, body and head of the arrow. The last
+%D argument specifies the math-mode in which the arrow is drawn.
+%D \tex{defaultmtharrowfill} has values tweaked to match Latin Modern
+%D fonts. For fonts that are significantly different (e.g. cows) a
+%D different set of values need to be determined.
+
+\def\mtharrowfill#1#2#3#4#5#6#7#8%
+ {$\mathsurround 0pt
+ \thickmuskip0mu\medmuskip\thickmuskip\thinmuskip\thickmuskip
+ \relax#8#5%
+ \mkern-#1mu
+ \cleaders\hbox{$#8\mkern -#2mu#6\mkern -#3mu$}\hfill
+ \mkern-#4mu#7$}
+
+\def\defaultmtharrowfill{\mtharrowfill 7227}
+
+%D We now define some arrow fills that will be used for defining the
+%D arrows. Plain \TEX\ already defines \tex{leftarrowfill} and
+%D \tex{rightarrowfill}. The \tex{defaultmtharrowfill} command defines an
+%D arrowfill that takes an argument (so that it can also be used
+%D with over and under arrows). However the Plain \TEX\ definitions of
+%D \tex{leftarrowfill} and \tex{rightarrowfill} do not take this extra
+%D argument. To be backward compatible with Plain \TEX, we define two
+%D arrowfills: \tex{specrightarrowfill} which takes an extra argument, and
+%D \tex{rightarrowfill} which does not.
+
+\def\specrightarrowfill {\defaultmtharrowfill \relbar \relbar \rightarrow}
+\def\specleftarrowfill {\defaultmtharrowfill \leftarrow \relbar \relbar}
+
+\def\rightarrowfill {\specrightarrowfill \textstyle}
+\def\leftarrowfill {\specleftarrowfill \textstyle}
+
+\def\equalfill {\defaultmtharrowfill \Relbar \Relbar \Relbar}
+\def\Rightarrowfill {\defaultmtharrowfill \Relbar \Relbar \Rightarrow}
+\def\Leftarrowfill {\defaultmtharrowfill \Leftarrow \Relbar \Relbar}
+\def\Leftrightarrowfill {\defaultmtharrowfill \Leftarrow \Relbar \Rightarrow}
+\def\leftrightarrowfill {\defaultmtharrowfill \leftarrow \relbar \rightarrow}
+\def\mapstofill {\defaultmtharrowfill{\mapstochar\relbar} \relbar \rightarrow}
+\def\twoheadrightarrowfill{\defaultmtharrowfill \relbar \relbar \twoheadrightarrow}
+\def\twoheadleftarrowfill {\defaultmtharrowfill \twoheadleftarrow \relbar \relbar}
+\def\rightharpoondownfill {\defaultmtharrowfill \relbar \relbar \rightharpoondown}
+\def\rightharpoonupfill {\defaultmtharrowfill \relbar \relbar \rightharpoonup}
+\def\leftharpoondownfill {\defaultmtharrowfill \leftharpoondown \relbar \relbar}
+\def\leftharpoonupfill {\defaultmtharrowfill \leftharpoonup \relbar \relbar}
+\def\hookleftfill {\defaultmtharrowfill \leftarrow \relbar{\relbar\joinrel\rhook}}
+\def\hookrightfill {\defaultmtharrowfill{\lhook\joinrel\relbar}\relbar \rightarrow}
+\def\relfill {\defaultmtharrowfill \relbar \relbar \relbar}
+
+\def\triplerelbar {\mathrel\equiv}
+\def\triplerelfill{\defaultmtharrowfill\triplerelbar\triplerelbar\triplerelbar}
+
+\def\singlebond{{\xrel}} % or \def\singlebond{{\xrel[2]}}
+\def\doublebond{{\xequal}}
+\def\triplebond{{\xtriplerel}}
+
+%D Now we define most commonly used arrows. These include arrows
+%D defined in \filename{amsmath.sty}, \filename{extarrows.sty},
+%D \filename{extpfel.sty} and \filename{mathtools.sty} packages for
+%D \LATEX\ (plus a few more).
+
+\definematharrow [xrightarrow] [0359] [\specrightarrowfill]
+\definematharrow [xleftarrow] [3095] [\specleftarrowfill]
+\definematharrow [xequal] [0099] [\equalfill]
+\definematharrow [xRightarrow] [0359] [\Rightarrowfill]
+\definematharrow [xLeftarrow] [3095] [\Leftarrowfill]
+\definematharrow [xLeftrightarrow] [0099] [\Leftrightarrowfill]
+\definematharrow [xleftrightarrow] [0099] [\leftrightarrowfill]
+\definematharrow [xmapsto] [3599] [\mapstofill]
+\definematharrow [xtwoheadrightarrow] [5009] [\twoheadrightarrowfill]
+\definematharrow [xtwoheadleftarrow] [0590] [\twoheadleftarrowfill]
+\definematharrow [xrightharpoondown] [0359] [\rightharpoondownfill]
+\definematharrow [xrightharpoonup] [0359] [\rightharpoonupfill]
+\definematharrow [xleftharpoondown] [3095] [\leftharpoondownfill]
+\definematharrow [xleftharpoonup] [3095] [\leftharpoonupfill]
+\definematharrow [xhookleftarrow] [3095] [\hookleftfill]
+\definematharrow [xhookrightarrow] [0395] [\hookrightfill]
+\definematharrow [xrel] [0099] [\relfill]
+\definematharrow [xtriplerel] [0099] [\triplerelfill]
+\definematharrow [xrightoverleftarrow] [0359,3095] [\specrightarrowfill,\specleftarrowfill]
+\definematharrow [xleftrightharpoons] [3399,3399] [\leftharpoonupfill,\rightharpoondownfill]
+\definematharrow [xrightleftharpoons] [3399,3399] [\rightharpoonupfill,\leftharpoondownfill]
+
+%D These arrows can be used as follows:
+%D
+%D \startbuffer
+%D \startformula \xrightarrow{stuff on top}\stopformula
+%D \startformula \xrightarrow{}{stuff on top}\stopformula
+%D \startformula \xrightarrow{stuff below}{}\stopformula
+%D \startformula \xrightarrow{stuff below}{stuff on top}\stopformula
+%D
+%D \startformula \xleftarrow [none]{stuff below}{stuff on top}\stopformula
+%D \startformula \xleftarrow [small]{stuff below}{stuff on top}\stopformula
+%D \startformula \xleftarrow [medium]{stuff below}{stuff on top}\stopformula
+%D \startformula \xleftarrow [big]{stuff below}{stuff on top}\stopformula
+%D \stopbuffer
+%D
+%D \typebuffer which gives \getbuffer
+
+%D \macros{definemathoverarrow,defineunderarrow}
+%D
+%D These macros for define math-overarrows are adapted from
+%D \filename{amsmath.sty}
+
+\def\definemathoverarrow
+ {\dotripleargument\dodefinemathoverarrow}
+
+\def\dodefinemathoverarrow[#1][#2][#3]%
+ {\ifthirdargument
+ \setvalue{#1}{\dohandlemathoverarrow[#2][#3]}%
+ \else
+ \setvalue{#1}{\dohandlemathoverarrow[\zeropoint][#2]}%
+ \fi}
+
+\def\dohandlemathoverarrow[#1][#2]%
+ {\mathpalette{\dodohandlemathoverarrow{#1}{#2}}}
+
+%D Note: \filename{math-pln.tex} has \type{\kern-\onepoint} and
+%D \filename{amsmath.sty} does not. We keep the kern amount
+%D configurable. This is useful for harpoons.
+
+\def\dodohandlemathoverarrow#1#2#3#4%
+ {\vbox{\ialign{##\crcr
+ #2#3\crcr
+ \noalign{\kern#1\nointerlineskip}%
+ $\mathsurround\zeropoint\hfil#3#4\hfil$\crcr}}}
+
+%D Now the under arrows
+
+\def\definemathunderarrow
+ {\dotripleargument\dodefinemathunderarrow}
+
+%D For underarrows the default kern is 0.3ex
+
+\def\dodefinemathunderarrow[#1][#2][#3]%
+ {\ifthirdargument
+ \setvalue{#1}{\dohandlemathunderarrow[#2][#3]}%
+ \else
+ \setvalue{#1}{\dohandlemathunderarrow[0.3ex][#2]}%
+ \fi}
+
+\def\dohandlemathunderarrow[#1][#2]%
+ {\mathpalette{\dodohandlemathunderarrow{#1}{#2}}}
+
+\def\dodohandlemathunderarrow#1#2#3#4%
+ {\vtop{\ialign{##\crcr
+ $\mathsurround\zeropoint\hfil#3#4\hfil$\crcr
+ \noalign{\nointerlineskip\kern#1}%
+ #2#3\crcr}}}
+
+%D Now we define the arrows
+
+\definemathoverarrow [overleftarrow] [\specleftarrowfill]
+\definemathoverarrow [overrightarrow] [\specrightarrowfill]
+\definemathoverarrow [overleftrightarrow] [\leftrightarrowfill]
+\definemathoverarrow [overtwoheadrightarrow] [\twoheadrightarrowfill]
+\definemathoverarrow [overtwoheadleftarrow] [\twoheadleftarrowfill]
+\definemathoverarrow [overrightharpoondown] [1pt] [\rightharpoondownfill]
+\definemathoverarrow [overrightharpoonup] [\rightharpoonupfill]
+\definemathoverarrow [overleftharpoondown] [1pt] [\leftharpoondownfill]
+\definemathoverarrow [overleftharpoonup] [\leftharpoonupfill]
+
+\definemathunderarrow [underleftarrow] [\specleftarrowfill]
+\definemathunderarrow [underrightarrow] [\specrightarrowfill]
+\definemathunderarrow [underleftrightarrow] [\leftrightarrowfill]
+\definemathunderarrow [undertwoheadrightarrow][\twoheadrightarrowfill]
+\definemathunderarrow [undertwoheadleftarrow] [\twoheadleftarrowfill]
+\definemathunderarrow [underrightharpoondown] [\rightharpoondownfill]
+\definemathunderarrow [underrightharpoonup] [\rightharpoonupfill]
+\definemathunderarrow [underleftharpoondown] [\leftharpoondownfill]
+\definemathunderarrow [underleftharpoonup] [\leftharpoonupfill]
+
+%D These can be used as follows:
+%D
+%D \startbuffer
+%D $\overleftarrow{A}$ $\overleftarrow{ABC}$
+%D $a_{\overleftarrow{A}}$ $b_{\overleftarrow{ABC}}$
+%D \stopbuffer
+%D \typebuffer which gives \getbuffer
+
+%D TODO: Possibly have a single arrow command define all the arrows.
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/math-ext.tex b/Master/texmf-dist/tex/context/base/math-arr.mkiv
index cf332ba0093..5c6cfc29445 100644
--- a/Master/texmf-dist/tex/context/base/math-ext.tex
+++ b/Master/texmf-dist/tex/context/base/math-arr.mkiv
@@ -1,8 +1,8 @@
%D \module
-%D [ file=math-ext,
+%D [ file=math-arr,
%D version=2007.07.19,
%D title=\CONTEXT\ Math Macros,
-%D subtitle=Extra Macros,
+%D subtitle=Arrows,
%D author={Hans Hagen \& Taco Hoekwater \& Aditya Mahajan},
%D date=\currentdate,
%D copyright=\PRAGMA]
@@ -11,9 +11,11 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+\writestatus{loading}{ConTeXt Math Macros / Arrows}
+
\unprotect
-%D These will be generalized!
+%D These will be generalized! Is it still needed in \MKIV?
\def\exmthfont#1{\symbolicsizedfont#1\plusone{MathExtension}}
@@ -271,19 +273,19 @@
%D We now define some arrow fills that will be used for defining the
%D arrows. Plain \TEX\ already defines \tex{leftarrowfill} and
-%D \tex{rightarrowfill}. The \tex{defaultmtharrowfill} command defines an
+%D \tex{rightarrowfill}. The \tex{defaultmtharrowfill} command defines an
%D arrowfill that takes an argument (so that it can also be used
-%D with over and under arrows). However the Plain \TEX\ definitions of
+%D with over and under arrows). However the Plain \TEX\ definitions of
%D \tex{leftarrowfill} and \tex{rightarrowfill} do not take this extra
%D argument. To be backward compatible with Plain \TEX, we define two
-%D arrowfills: \tex{specrightarrowfill} which takes an extra argument, and
+%D arrowfills: \tex{specrightarrowfill} which takes an extra argument, and
%D \tex{rightarrowfill} which does not.
\def\specrightarrowfill {\defaultmtharrowfill \relbar \relbar \rightarrow}
\def\specleftarrowfill {\defaultmtharrowfill \leftarrow \relbar \relbar}
-\def\rightarrowfill {\specrightarrowfill \textstyle}
-\def\leftarrowfill {\specleftarrowfill \textstyle}
+\def\rightarrowfill {\specrightarrowfill \textstyle}
+\def\leftarrowfill {\specleftarrowfill \textstyle}
\def\equalfill {\defaultmtharrowfill \Relbar \Relbar \Relbar}
\def\Rightarrowfill {\defaultmtharrowfill \Relbar \Relbar \Rightarrow}
@@ -377,7 +379,7 @@
{\vbox{\ialign{##\crcr
#2#3\crcr
\noalign{\kern#1\nointerlineskip}%
- $\m@th\hfil#3#4\hfil$\crcr}}}
+ $\mathsurround\zeropoint\hfil#3#4\hfil$\crcr}}}
%D Now the under arrows
@@ -398,7 +400,7 @@
\def\dodohandlemathunderarrow#1#2#3#4%
{\vtop{\ialign{##\crcr
- $\m@th\hfil#3#4\hfil$\crcr
+ $\mathsurround\zeropoint\hfil#3#4\hfil$\crcr
\noalign{\nointerlineskip\kern#1}%
#2#3\crcr}}}
diff --git a/Master/texmf-dist/tex/context/base/math-cow.tex b/Master/texmf-dist/tex/context/base/math-cow.mkii
index f0fc811c871..f0fc811c871 100644
--- a/Master/texmf-dist/tex/context/base/math-cow.tex
+++ b/Master/texmf-dist/tex/context/base/math-cow.mkii
diff --git a/Master/texmf-dist/tex/context/base/math-def.lua b/Master/texmf-dist/tex/context/base/math-def.lua
deleted file mode 100644
index e2992891006..00000000000
--- a/Master/texmf-dist/tex/context/base/math-def.lua
+++ /dev/null
@@ -1,3035 +0,0 @@
--- filename : math-def.lua
--- comment : companion to math-ini.tex (in ConTeXt)
--- author : Hans Hagen, PRAGMA-ADE, Hasselt NL
--- license : see context related readme files
--- comment : generated from data file downloaded from STIX website; kind of a mess
-
-if not versions then versions = { } end versions['math-def'] = 1.001
-if not mathematics then mathematics = { } end
-
--- I give up on this mess, best start from scratch. We just use as
--- strippeble table.
-
---~ mathematics.data = {
---~ [0x00020] = { mathclass='unknown', adobename='space' },
---~ [0x00022] = { mathclass='unknown', adobename='quotedbl', texname='textquotedbl' },
---~ [0x00023] = { mathclass='normal', adobename='numbersign', texname='#' },
---~ [0x00024] = { mathclass='normal', adobename='dollar', texname='textdollar' },
---~ [0x00025] = { mathclass='normal', adobename='percent', texname='%' },
---~ [0x00026] = { mathclass='normal', adobename='ampersand', texname='&' },
---~ [0x00027] = { mathclass='unknown', adobename='quotesingle' },
---~ [0x00028] = { mathclass='opening', adobename='parenleft', texname='lparen' },
---~ [0x00029] = { mathclass='closing', adobename='parenright', texname='rparen' },
---~ [0x0002B] = { mathclass='binary', adobename='plus', texname='plus' },
---~ [0x00040] = { mathclass='normal', adobename='at', texname='textatsign' },
---~ [0x0005E] = { mathclass='unknown', adobename='asciicircum', texname='textasciicircum' },
---~ [0x0005F] = { mathclass='unknown', adobename='underscore', texname='textunderscore' },
---~ [0x00060] = { mathclass='unknown', adobename='grave', texname='textasciigrave' },
---~ [0x0007E] = { mathclass='unknown', adobename='asciitilde', texname='textasciitilde' },
---~ [0x0007F] = { mathclass='unknown', adobename='uni007F' },
---~ [0x000A0] = { mathclass='unknown', adobename='uni00A0' },
---~ [0x000A1] = { mathclass='punctuation', adobename='exclamdown', texname='textexclamdown' },
---~ [0x000A2] = { mathclass='normal', adobename='cent', texname='textcent' },
---~ [0x000A3] = { mathclass='normal', adobename='sterling', texname='sterling' },
---~ [0x000A4] = { mathclass='normal', adobename='currency', texname='textcurrency' },
---~ [0x000A5] = { mathclass='normal', adobename='yen', texname='yen' },
---~ [0x000A6] = { mathclass='normal', adobename='brokenbar', texname='textbrokenbar' },
---~ [0x000A7] = { mathclass='normal', adobename='section', texname='S' },
---~ [0x000A8] = { mathclass='unknown', adobename='dieresis', texname='textasciidieresis' },
---~ [0x000A9] = { mathclass='normal', adobename='copyright', texname='textcopyright' },
---~ [0x000AA] = { mathclass='unknown', adobename='ordfeminine', texname='textordfeminine' },
---~ [0x000AB] = { mathclass='opening', adobename='guillemotleft', texname='guillemotleft' },
---~ [0x000AC] = { mathclass='normal', adobename='logicalnot', texname='neg' },
---~ [0x000AD] = { mathclass='unknown', adobename='uni00AD' },
---~ [0x000AE] = { mathclass='normal', adobename='registered', texname='textregistered' },
---~ [0x000AF] = { mathclass='unknown', adobename='macron', texname='textasciimacron' },
---~ [0x000B0] = { mathclass='normal', adobename='degree', texname='textdegree' },
---~ [0x000B2] = { mathclass='unknown', adobename='twosuperior', texname='texttwosuperior' },
---~ [0x000B3] = { mathclass='unknown', adobename='threesuperior', texname='textthreesuperior' },
---~ [0x000B4] = { mathclass='unknown', adobename='acute', texname='textasciiacute' },
---~ [0x000B5] = { mathclass='normal', adobename='mu', texname='textmu' },
---~ [0x000B6] = { mathclass='normal', adobename='paragraph', texname='P' },
---~ [0x000B8] = { mathclass='unknown', adobename='cedilla' },
---~ [0x000B9] = { mathclass='unknown', adobename='onesuperior', texname='textonesuperior' },
---~ [0x000BA] = { mathclass='unknown', adobename='ordmasculine', texname='textordmasculine' },
---~ [0x000BB] = { mathclass='closing', adobename='guillemotright', texname='guillemotright' },
---~ [0x000BC] = { mathclass='unknown', adobename='onequarter', texname='textonequarter' },
---~ [0x000BD] = { mathclass='unknown', adobename='onehalf', texname='textonehalf' },
---~ [0x000BE] = { mathclass='unknown', adobename='threequarters', texname='textthreequarters' },
---~ [0x000BF] = { mathclass='punctuation', adobename='questiondown', texname='textquestiondown' },
---~ [0x000F7] = { mathclass='binary', adobename='divide', texname='div' },
---~ [0x00188] = { mathclass='unknown', adobename='uni0188', texname='texthtc' },
---~ [0x00190] = { mathclass='unknown', adobename='uni0190' },
---~ [0x00192] = { mathclass='normal', adobename='florin', texname='textflorin' },
---~ [0x00195] = { mathclass='unknown', adobename='uni0195', texname='texthvlig' },
---~ [0x00199] = { mathclass='alphabetic', adobename='uni0199', texname='texthtk' },
---~ [0x0019A] = { mathclass='alphabetic', adobename='uni019A', texname='textbarl' },
---~ [0x0019B] = { mathclass='alphabetic', adobename='uni019B', texname='textcrlambda' },
---~ [0x0019E] = { mathclass='alphabetic', adobename='uni019E' },
---~ [0x001A0] = { mathclass='alphabetic', adobename='uni01A0', texname='Ohorn' },
---~ [0x001A1] = { mathclass='alphabetic', adobename='uni01A1', texname='ohorn' },
---~ [0x001A5] = { mathclass='alphabetic', adobename='uni01A5', texname='texthtp' },
---~ [0x001AA] = { mathclass='alphabetic', adobename='uni01AA', texname='textlooptoprevesh' },
---~ [0x001AB] = { mathclass='alphabetic', adobename='uni01AB', texname='textlhookt' },
---~ [0x001AD] = { mathclass='alphabetic', adobename='uni01AD', texname='texthtt' },
---~ [0x001AF] = { mathclass='alphabetic', adobename='uni01AF', texname='Uhorn' },
---~ [0x001B0] = { mathclass='alphabetic', adobename='uni01B0', texname='uhorn' },
---~ [0x001B5] = { mathclass='normal', adobename='uni01B5', texname='Zbar' },
---~ [0x001BA] = { mathclass='alphabetic', adobename='uni01BA', texname='textbenttailyogh' },
---~ [0x001BB] = { mathclass='alphabetic', adobename='uni01BB', texname='textcrtwo' },
---~ [0x001BE] = { mathclass='alphabetic', adobename='uni01BE', texname='textcrinvglotstop' },
---~ [0x001C0] = { mathclass='alphabetic', adobename='uni01C0', texname='textpipe' },
---~ [0x001C1] = { mathclass='alphabetic', adobename='uni01C1', texname='textdoublepipe' },
---~ [0x001C2] = { mathclass='alphabetic', adobename='uni01C2', texname='textdoublebarpipe' },
---~ [0x001C3] = { mathclass='alphabetic', adobename='uni01C3', texname='textexclam' },
---~ [0x001F0] = { mathclass='alphabetic', adobename='uni01F0' },
---~ [0x001FA] = { mathclass='unknown', adobename='uni01FA' },
---~ [0x001FB] = { mathclass='unknown', adobename='uni01FB' },
---~ [0x001FC] = { mathclass='unknown', adobename='uni01FC' },
---~ [0x001FD] = { mathclass='unknown', adobename='uni01FD' },
---~ [0x001FE] = { mathclass='unknown', adobename='uni01FE' },
---~ [0x001FF] = { mathclass='unknown', adobename='uni01FF' },
---~ [0x00221] = { mathclass='alphabetic', adobename='uni0221', texname='textctd' },
---~ [0x00234] = { mathclass='alphabetic', adobename='uni0234', texname='textctl' },
---~ [0x00235] = { mathclass='alphabetic', adobename='uni0235', texname='textctn' },
---~ [0x00236] = { mathclass='alphabetic', adobename='uni0236', texname='textctt' },
---~ [0x00237] = { mathclass='alphabetic', adobename='uni0237', texname='textdotlessj' },
---~ [0x00250] = { mathclass='alphabetic', adobename='uni0250', texname='textturna' },
---~ [0x00251] = { mathclass='alphabetic', adobename='uni0251', texname='textscripta' },
---~ [0x00252] = { mathclass='alphabetic', adobename='uni0252', texname='textturnscripta' },
---~ [0x00253] = { mathclass='alphabetic', adobename='uni0253', texname='texthtb' },
---~ [0x00254] = { mathclass='binary', adobename='uni0254', texname='textopeno' },
---~ [0x00255] = { mathclass='alphabetic', adobename='uni0255', texname='textctc' },
---~ [0x00256] = { mathclass='alphabetic', adobename='uni0256', texname='textrtaild' },
---~ [0x00257] = { mathclass='alphabetic', adobename='uni0257', texname='texthtd' },
---~ [0x00258] = { mathclass='alphabetic', adobename='uni0258', texname='textreve' },
---~ [0x00259] = { mathclass='alphabetic', adobename='uni0259', texname='textschwa' },
---~ [0x0025A] = { mathclass='alphabetic', adobename='uni025A', texname='textrhookschwa' },
---~ [0x0025B] = { mathclass='alphabetic', adobename='uni025B', texname='textepsilon' },
---~ [0x0025C] = { mathclass='alphabetic', adobename='uni025C', texname='textrevepsilon' },
---~ [0x0025D] = { mathclass='alphabetic', adobename='uni025D', texname='textrhookrevepsilon' },
---~ [0x0025E] = { mathclass='alphabetic', adobename='uni025E', texname='textcloserevepsilon' },
---~ [0x0025F] = { mathclass='alphabetic', adobename='uni025F', texname='textbardotlessj' },
---~ [0x00260] = { mathclass='alphabetic', adobename='uni0260', texname='texthtg' },
---~ [0x00261] = { mathclass='alphabetic', adobename='uni0261', texname='textscriptg' },
---~ [0x00262] = { mathclass='alphabetic', adobename='uni0262', texname='textscg' },
---~ [0x00263] = { mathclass='alphabetic', adobename='uni0263', texname='textgamma' },
---~ [0x00264] = { mathclass='alphabetic', adobename='uni0264', texname='textramshorns' },
---~ [0x00265] = { mathclass='alphabetic', adobename='uni0265', texname='textturnh' },
---~ [0x00266] = { mathclass='alphabetic', adobename='uni0266', texname='texthth' },
---~ [0x00267] = { mathclass='alphabetic', adobename='uni0267', texname='texththeng' },
---~ [0x00268] = { mathclass='alphabetic', adobename='uni0268', texname='textbari' },
---~ [0x00269] = { mathclass='alphabetic', adobename='uni0269', texname='textiota' },
---~ [0x0026A] = { mathclass='alphabetic', adobename='uni026A', texname='textsci' },
---~ [0x0026B] = { mathclass='alphabetic', adobename='uni026B', texname='textltilde' },
---~ [0x0026C] = { mathclass='alphabetic', adobename='uni026C', texname='textbeltl' },
---~ [0x0026D] = { mathclass='alphabetic', adobename='uni026D', texname='textrtaill' },
---~ [0x0026E] = { mathclass='alphabetic', adobename='uni026E', texname='textlyoghlig' },
---~ [0x0026F] = { mathclass='alphabetic', adobename='uni026F', texname='textturnm' },
---~ [0x00270] = { mathclass='alphabetic', adobename='uni0270', texname='textturnmrleg' },
---~ [0x00271] = { mathclass='alphabetic', adobename='uni0271', texname='textltailm' },
---~ [0x00272] = { mathclass='alphabetic', adobename='uni0272', texname='textltailn' },
---~ [0x00273] = { mathclass='alphabetic', adobename='uni0273', texname='textrtailn' },
---~ [0x00274] = { mathclass='alphabetic', adobename='uni0274', texname='textscn' },
---~ [0x00275] = { mathclass='alphabetic', adobename='uni0275', texname='textbaro' },
---~ [0x00276] = { mathclass='alphabetic', adobename='uni0276', texname='textscoelig' },
---~ [0x00277] = { mathclass='alphabetic', adobename='uni0277', texname='textcloseomega' },
---~ [0x00278] = { mathclass='alphabetic', adobename='uni0278', texname='textphi' },
---~ [0x00279] = { mathclass='alphabetic', adobename='uni0279', texname='textturnr' },
---~ [0x0027A] = { mathclass='alphabetic', adobename='uni027A', texname='textturnlonglegr' },
---~ [0x0027B] = { mathclass='alphabetic', adobename='uni027B', texname='textturnrrtail' },
---~ [0x0027C] = { mathclass='alphabetic', adobename='uni027C', texname='textlonglegr' },
---~ [0x0027D] = { mathclass='alphabetic', adobename='uni027D', texname='textrtailr' },
---~ [0x0027E] = { mathclass='alphabetic', adobename='uni027E', texname='textfishhookr' },
---~ [0x0027F] = { mathclass='alphabetic', adobename='uni027F', texname='textlhti' },
---~ [0x00280] = { mathclass='alphabetic', adobename='uni0280', texname='textscr' },
---~ [0x00281] = { mathclass='alphabetic', adobename='uni0281', texname='textinvscr' },
---~ [0x00282] = { mathclass='alphabetic', adobename='uni0282', texname='textrtails' },
---~ [0x00283] = { mathclass='alphabetic', adobename='uni0283', texname='textesh' },
---~ [0x00284] = { mathclass='alphabetic', adobename='uni0284', texname='texthtbardotlessjvar' },
---~ [0x00285] = { mathclass='alphabetic', adobename='uni0285', texname='textvibyi' },
---~ [0x00286] = { mathclass='alphabetic', adobename='uni0286', texname='textctesh' },
---~ [0x00287] = { mathclass='alphabetic', adobename='uni0287', texname='textturnt' },
---~ [0x00288] = { mathclass='alphabetic', adobename='uni0288', texname='textrtailt' },
---~ [0x00289] = { mathclass='alphabetic', adobename='uni0289', texname='textbaru' },
---~ [0x0028A] = { mathclass='alphabetic', adobename='uni028A', texname='textupsilon' },
---~ [0x0028B] = { mathclass='alphabetic', adobename='uni028B', texname='textscriptv' },
---~ [0x0028C] = { mathclass='alphabetic', adobename='uni028C', texname='textturnv' },
---~ [0x0028D] = { mathclass='alphabetic', adobename='uni028D', texname='textturnw' },
---~ [0x0028E] = { mathclass='alphabetic', adobename='uni028E', texname='textturny' },
---~ [0x0028F] = { mathclass='alphabetic', adobename='uni028F', texname='textscy' },
---~ [0x00290] = { mathclass='alphabetic', adobename='uni0290', texname='textrtailz' },
---~ [0x00291] = { mathclass='alphabetic', adobename='uni0291', texname='textctz' },
---~ [0x00292] = { mathclass='alphabetic', adobename='uni0292', texname='textyogh' },
---~ [0x00293] = { mathclass='alphabetic', adobename='uni0293', texname='textctyogh' },
---~ [0x00294] = { mathclass='alphabetic', adobename='uni0294', texname='textglotstop' },
---~ [0x00295] = { mathclass='alphabetic', adobename='uni0295', texname='textrevglotstop' },
---~ [0x00296] = { mathclass='alphabetic', adobename='uni0296', texname='textinvglotstop' },
---~ [0x00297] = { mathclass='alphabetic', adobename='uni0297', texname='textstretchcvar' },
---~ [0x00298] = { mathclass='alphabetic', adobename='uni0298', texname='textbullseye' },
---~ [0x00299] = { mathclass='alphabetic', adobename='uni0299', texname='textscb' },
---~ [0x0029A] = { mathclass='alphabetic', adobename='uni029A', texname='textcloseepsilon' },
---~ [0x0029B] = { mathclass='alphabetic', adobename='uni029B', texname='texthtscg' },
---~ [0x0029C] = { mathclass='alphabetic', adobename='uni029C', texname='textsch' },
---~ [0x0029D] = { mathclass='alphabetic', adobename='uni029D', texname='textctj' },
---~ [0x0029E] = { mathclass='alphabetic', adobename='uni029E', texname='textturnk' },
---~ [0x0029F] = { mathclass='alphabetic', adobename='uni029F', texname='textscl' },
---~ [0x002A0] = { mathclass='alphabetic', adobename='uni02A0', texname='texthtq' },
---~ [0x002A1] = { mathclass='alphabetic', adobename='uni02A1', texname='textbarglotstop' },
---~ [0x002A2] = { mathclass='alphabetic', adobename='uni02A2', texname='textbarrevglotstop' },
---~ [0x002A3] = { mathclass='alphabetic', adobename='uni02A3', texname='textdzlig' },
---~ [0x002A4] = { mathclass='alphabetic', adobename='uni02A4', texname='textdyoghlig' },
---~ [0x002A5] = { mathclass='alphabetic', adobename='uni02A5', texname='textdctzlig' },
---~ [0x002A6] = { mathclass='alphabetic', adobename='uni02A6', texname='texttslig' },
---~ [0x002A7] = { mathclass='alphabetic', adobename='uni02A7', texname='textteshlig' },
---~ [0x002A8] = { mathclass='alphabetic', adobename='uni02A8', texname='texttctctlig' },
---~ [0x002AE] = { mathclass='alphabetic', adobename='uni02AE', texname='textlongy' },
---~ [0x002AF] = { mathclass='alphabetic', adobename='uni02AF', texname='textvibyy' },
---~ [0x002B0] = { mathclass='alphabetic', adobename='uni02B0', texname='textsuph' },
---~ [0x002B1] = { mathclass='alphabetic', adobename='uni02B1', texname='textsuphth' },
---~ [0x002B2] = { mathclass='alphabetic', adobename='uni02B2', texname='textsupj' },
---~ [0x002B3] = { mathclass='alphabetic', adobename='uni02B3', texname='textsupr' },
---~ [0x002B4] = { mathclass='alphabetic', adobename='uni02B4', texname='textsupturnr' },
---~ [0x002B5] = { mathclass='alphabetic', adobename='uni02B5', texname='textsupturnrrtail' },
---~ [0x002B6] = { mathclass='alphabetic', adobename='uni02B6', texname='textsupinvscr' },
---~ [0x002B7] = { mathclass='alphabetic', adobename='uni02B7', texname='textsupw' },
---~ [0x002B8] = { mathclass='alphabetic', adobename='uni02B8', texname='textsupy' },
---~ [0x002B9] = { mathclass='unknown', adobename='uni02B9', texname='cprime' },
---~ [0x002BA] = { mathclass='unknown', adobename='uni02BA', texname='cdprime' },
---~ [0x002BB] = { mathclass='opening', adobename='uni02BB', texname='textturncomma' },
---~ [0x002BC] = { mathclass='unknown', adobename='uni02BC', texname='rasp' },
---~ [0x002BD] = { mathclass='unknown', adobename='uni02BD', texname='lasp' },
---~ [0x002BE] = { mathclass='unknown', adobename='uni02BE', texname='texthamza' },
---~ [0x002BF] = { mathclass='unknown', adobename='uni02BF', texname='textain' },
---~ [0x002C0] = { mathclass='unknown', adobename='uni02C0', texname='textraiseglotstop' },
---~ [0x002C1] = { mathclass='unknown', adobename='uni02C1', texname='textraiserevglotstop' },
---~ [0x002C2] = { mathclass='unknown', adobename='uni02C2', texname='textlptr' },
---~ [0x002C3] = { mathclass='unknown', adobename='uni02C3', texname='textrptr' },
---~ [0x002C4] = { mathclass='unknown', adobename='uni02C4', texname='textuptr' },
---~ [0x002C5] = { mathclass='unknown', adobename='uni02C5', texname='textdptr' },
---~ [0x002C6] = { mathclass='unknown', adobename='circumflex', texname='^' },
---~ [0x002C7] = { mathclass='unknown', adobename='caron', texname='v' },
---~ [0x002C8] = { mathclass='unknown', adobename='uni02C8', texname='textprimstress' },
---~ [0x002C9] = { mathclass='unknown', adobename='uni02C9', texname='textmacron' },
---~ [0x002CA] = { mathclass='unknown', adobename='uni02CA', texname='textacute' },
---~ [0x002CB] = { mathclass='unknown', adobename='uni02CB', texname='textgrave' },
---~ [0x002CC] = { mathclass='unknown', adobename='uni02CC', texname='textsecstress' },
---~ [0x002CD] = { mathclass='unknown', adobename='uni02CD', texname='textlowmacron' },
---~ [0x002CE] = { mathclass='unknown', adobename='uni02CE', texname='textlowgrave' },
---~ [0x002CF] = { mathclass='unknown', adobename='uni02CF', texname='textlowacute' },
---~ [0x002D0] = { mathclass='unknown', adobename='uni02D0', texname='textlengthmark' },
---~ [0x002D1] = { mathclass='unknown', adobename='uni02D1', texname='texthalflength' },
---~ [0x002D2] = { mathclass='unknown', adobename='uni02D2', texname='textrhalfring' },
---~ [0x002D3] = { mathclass='unknown', adobename='uni02D3', texname='textlhalfring' },
---~ [0x002D4] = { mathclass='diacritic', adobename='uni02D4', texname='textraised' },
---~ [0x002D5] = { mathclass='diacritic', adobename='uni02D5', texname='textlowered' },
---~ [0x002D6] = { mathclass='diacritic', adobename='uni02D6', texname='textadvanced' },
---~ [0x002D7] = { mathclass='diacritic', adobename='uni02D7', texname='textretracted' },
---~ [0x002D8] = { mathclass='diacritic', adobename='breve', texname='textbreve' },
---~ [0x002D9] = { mathclass='diacritic', adobename='dotaccent', texname='textdotaccent' },
---~ [0x002DA] = { mathclass='diacritic', adobename='ring', texname='textringaccent' },
---~ [0x002DB] = { mathclass='diacritic', adobename='ogonek', texname='textogonek' },
---~ [0x002DC] = { mathclass='diacritic', adobename='smalltilde', texname='textsmalltilde' },
---~ [0x002DD] = { mathclass='diacritic', adobename='hungarumlaut', texname='textdoubleacute' },
---~ [0x002DE] = { mathclass='diacritic', adobename='uni02DE', texname='textrhoticity' },
---~ [0x002DF] = { mathclass='diacritic', adobename='uni02DF', texname='ipacrossaccent' },
---~ [0x002E0] = { mathclass='diacritic', adobename='uni02E0', texname='ipasupgamma' },
---~ [0x002E1] = { mathclass='alphabetic', adobename='uni02E1', texname='ipasupl' },
---~ [0x002E2] = { mathclass='alphabetic', adobename='uni02E2', texname='ipasups' },
---~ [0x002E3] = { mathclass='alphabetic', adobename='uni02E3', texname='ipasupx' },
---~ [0x002E4] = { mathclass='diacritic', adobename='uni02E4', texname='ipasuprerglotstpp' },
---~ [0x002E5] = { mathclass='diacritic', adobename='uni02E5', texname='tonebarextrahigh' },
---~ [0x002E6] = { mathclass='diacritic', adobename='uni02E6', texname='tonebarhigh' },
---~ [0x002E7] = { mathclass='diacritic', adobename='uni02E7', texname='tonebarmid' },
---~ [0x002E8] = { mathclass='diacritic', adobename='uni02E8', texname='tonebarlow' },
---~ [0x002E9] = { mathclass='diacritic', adobename='uni02E9', texname='tonebarextralow' },
---~ [0x002EC] = { mathclass='diacritic', adobename='uni02EC', texname='ipavoicing' },
---~ [0x002ED] = { mathclass='diacritic', adobename='uni02ED', texname='ipaunaspirated' },
---~ [0x00300] = { mathclass='diacritic', adobename='uni0300', texname='grave' },
---~ [0x00301] = { mathclass='diacritic', adobename='uni0301', texname='acute' },
---~ [0x00302] = { mathclass='diacritic', adobename='uni0302', texname='hat' },
---~ [0x00303] = { mathclass='diacritic', adobename='uni0303', texname='tilde' },
---~ [0x00304] = { mathclass='diacritic', adobename='uni0304', texname='bar' },
---~ [0x00305] = { mathclass='diacritic', adobename='uni0305', texname='overbar' },
---~ [0x00306] = { mathclass='diacritic', adobename='uni0306', texname='breve' },
---~ [0x00307] = { mathclass='diacritic', adobename='uni0307', texname='dot' },
---~ [0x00308] = { mathclass='diacritic', adobename='uni0308', texname='ddot' },
---~ [0x00309] = { mathclass='diacritic', adobename='uni0309', texname='ovhook' },
---~ [0x0030A] = { mathclass='diacritic', adobename='uni030A', texname='ocirc' },
---~ [0x0030B] = { mathclass='diacritic', adobename='uni030B', texname='H' },
---~ [0x0030C] = { mathclass='diacritic', adobename='uni030C', texname='check' },
---~ [0x0030D] = { mathclass='diacritic', adobename='uni030D', texname='textvbaraccent' },
---~ [0x0030E] = { mathclass='diacritic', adobename='uni030E', texname='textdoublevbaraccent' },
---~ [0x0030F] = { mathclass='diacritic', adobename='uni030F', texname='textdoublegrave' },
---~ [0x00310] = { mathclass='diacritic', adobename='uni0310', texname='candra' },
---~ [0x00311] = { mathclass='diacritic', adobename='uni0311', texname='textroundcap' },
---~ [0x00312] = { mathclass='diacritic', adobename='uni0312', texname='oturnedcomma' },
---~ [0x00313] = { mathclass='diacritic', adobename='uni0313', texname='osmooth' },
---~ [0x00314] = { mathclass='diacritic', adobename='uni0314', texname='orough' },
---~ [0x00315] = { mathclass='diacritic', adobename='uni0315', texname='ocommatopright' },
---~ [0x00316] = { mathclass='diacritic', adobename='uni0316', texname='textsubgrave' },
---~ [0x00317] = { mathclass='diacritic', adobename='uni0317', texname='textsubacute' },
---~ [0x00318] = { mathclass='diacritic', adobename='uni0318', texname='textadvancing' },
---~ [0x00319] = { mathclass='diacritic', adobename='uni0319', texname='textretracting' },
---~ [0x0031A] = { mathclass='diacritic', adobename='uni031A', texname='droang' },
---~ [0x0031B] = { mathclass='diacritic', adobename='uni031B', texname='texthorn' },
---~ [0x0031C] = { mathclass='diacritic', adobename='uni031C', texname='textsublhalfring' },
---~ [0x0031D] = { mathclass='diacritic', adobename='uni031D', texname='textraising' },
---~ [0x0031E] = { mathclass='diacritic', adobename='uni031E', texname='textlowering' },
---~ [0x0031F] = { mathclass='diacritic', adobename='uni031F', texname='textsubplus' },
---~ [0x00320] = { mathclass='diacritic', adobename='uni0320', texname='textsubminus' },
---~ [0x00321] = { mathclass='diacritic', adobename='uni0321', texname='textpalhook' },
---~ [0x00322] = { mathclass='diacritic', adobename='uni0322', texname='textrhook' },
---~ [0x00323] = { mathclass='diacritic', adobename='uni0323', texname='textsubdot' },
---~ [0x00324] = { mathclass='diacritic', adobename='uni0324', texname='textsubumlaut' },
---~ [0x00325] = { mathclass='diacritic', adobename='uni0325', texname='textsubring' },
---~ [0x00326] = { mathclass='diacritic', adobename='uni0326', texname='textsubcomma' },
---~ [0x00327] = { mathclass='diacritic', adobename='uni0327', texname='c' },
---~ [0x00328] = { mathclass='diacritic', adobename='uni0328', texname='textpolhk' },
---~ [0x00329] = { mathclass='diacritic', adobename='uni0329', texname='textsyllabic' },
---~ [0x0032A] = { mathclass='diacritic', adobename='uni032A', texname='textsubbridge' },
---~ [0x0032B] = { mathclass='diacritic', adobename='uni032B', texname='textsubw' },
---~ [0x0032C] = { mathclass='diacritic', adobename='uni032C', texname='textsubwedge' },
---~ [0x0032D] = { mathclass='diacritic', adobename='uni032D', texname='textsubcircum' },
---~ [0x0032E] = { mathclass='diacritic', adobename='uni032E', texname='textsubbreve' },
---~ [0x0032F] = { mathclass='diacritic', adobename='uni032F', texname='textsubarch' },
---~ [0x00330] = { mathclass='diacritic', adobename='uni0330', texname='textsubtilde' },
---~ [0x00331] = { mathclass='diacritic', adobename='uni0331', texname='textsubbar' },
---~ [0x00332] = { mathclass='diacritic', adobename='uni0332', texname='textsubline' },
---~ [0x00333] = { mathclass='diacritic', adobename='uni0333', texname='textsubdoubleline' },
---~ [0x00334] = { mathclass='diacritic', adobename='uni0334', texname='textsuperimposetilde' },
---~ [0x00335] = { mathclass='diacritic', adobename='uni0335', texname='textoverlayshortstroke' },
---~ [0x00336] = { mathclass='diacritic', adobename='uni0336', texname='textoverlaylongstroke' },
---~ [0x00337] = { mathclass='diacritic', adobename='uni0337', texname='textoverlayshortsolidus' },
---~ [0x00338] = { mathclass='diacritic', adobename='uni0338', texname='textoverlaylongsolidus' },
---~ [0x00339] = { mathclass='diacritic', adobename='uni0339', texname='textsubrhalfring' },
---~ [0x0033A] = { mathclass='diacritic', adobename='uni033A', texname='textinvsubbridge' },
---~ [0x0033B] = { mathclass='diacritic', adobename='uni033B', texname='textsubsquare' },
---~ [0x0033C] = { mathclass='diacritic', adobename='uni033C', texname='textseagull' },
---~ [0x0033D] = { mathclass='diacritic', adobename='uni033D', texname='textovercross' },
---~ [0x0033E] = { mathclass='diacritic', adobename='uni033E', texname='textvtilde' },
---~ [0x0033F] = { mathclass='diacritic', adobename='uni033F', texname='textdoubleoverline' },
---~ [0x00346] = { mathclass='diacritic', adobename='uni0346', texname='textoverbridge' },
---~ [0x0034C] = { mathclass='diacritic', adobename='uni034C', texname='textdoubletilde' },
---~ [0x00359] = { mathclass='unknown', adobename='uni0359', texname='textunderasterisk' },
---~ [0x0035C] = { mathclass='unknown', adobename='uni035C', texname='texttieunderarc' },
---~ [0x00360] = { mathclass='diacritic', adobename='uni0360', texname='texttietilde' },
---~ [0x00361] = { mathclass='diacritic', adobename='uni0361', texname='t' },
---~ [0x00362] = { mathclass='diacritic', adobename='uni0362', texname='texttieunderrightarrow' },
---~ [0x0037E] = { mathclass='diacritic', adobename='uni037E' },
---~ [0x00384] = { mathclass='unknown', adobename='uni0384' },
---~ [0x00385] = { mathclass='unknown', adobename='uni0385' },
---~ [0x00386] = { mathclass='unknown', adobename='uni0386' },
---~ [0x00387] = { mathclass='unknown', adobename='uni0387' },
---~ [0x00388] = { mathclass='unknown', adobename='uni0388' },
---~ [0x00389] = { mathclass='unknown', adobename='uni0389' },
---~ [0x0038A] = { mathclass='unknown', adobename='uni038A' },
---~ [0x0038C] = { mathclass='unknown', adobename='uni038C' },
---~ [0x0038E] = { mathclass='unknown', adobename='uni038E' },
---~ [0x0038F] = { mathclass='unknown', adobename='uni038F' },
---~ [0x00390] = { mathclass='unknown', adobename='uni0390' },
---~ [0x003AA] = { mathclass='unknown',family="lcgreek", adobename='uni03AA' },
---~ [0x003AB] = { mathclass='unknown', adobename='uni03AB' },
---~ [0x003AC] = { mathclass='unknown', adobename='uni03AC' },
---~ [0x003AD] = { mathclass='unknown', adobename='uni03AD' },
---~ [0x003AE] = { mathclass='unknown', adobename='uni03AE' },
---~ [0x003AF] = { mathclass='unknown', adobename='uni03AF' },
---~ [0x003B0] = { mathclass='unknown', adobename='uni03B0' },
---~ [0x003CA] = { mathclass='unknown', adobename='uni03CA' },
---~ [0x003CB] = { mathclass='unknown', adobename='uni03CB' },
---~ [0x003CC] = { mathclass='unknown', adobename='uni03CC' },
---~ [0x003CD] = { mathclass='unknown', adobename='uni03CD' },
---~ [0x003CE] = { mathclass='unknown', adobename='uni03CE' },
---~ [0x003D0] = { mathclass='alphabetic', adobename='uni03D0', texname='upvarbeta' },
---~ [0x003D1] = { mathclass='alphabetic', adobename='uni03D1', texname='upvartheta' },
---~ [0x003D2] = { mathclass='alphabetic', adobename='uni03D2', texname='upUpsilon' },
---~ [0x003D6] = { mathclass='alphabetic', adobename='uni03D6', texname='upvarpi' },
---~ [0x003D8] = { mathclass='normal', adobename='uni03D8', texname='upoldKoppa' },
---~ [0x003D9] = { mathclass='normal', adobename='uni03D9', texname='upoldkoppa' },
---~ [0x003DA] = { mathclass='alphabetic', adobename='uni03DA', texname='upStigma' },
---~ [0x003DB] = { mathclass='alphabetic', adobename='uni03DB', texname='upstigma' },
---~ [0x003DC] = { mathclass='alphabetic', adobename='uni03DC', texname='upDigamma' },
---~ [0x003DD] = { mathclass='alphabetic', adobename='uni03DD', texname='updigamma' },
---~ [0x003DE] = { mathclass='alphabetic', adobename='uni03DE', texname='upKoppa' },
---~ [0x003DF] = { mathclass='alphabetic', adobename='uni03DF', texname='upkoppa' },
---~ [0x003E0] = { mathclass='alphabetic', adobename='uni03E0', texname='upSampi' },
---~ [0x003E1] = { mathclass='alphabetic', adobename='uni03E1', texname='upsampi' },
---~ [0x003F0] = { mathclass='alphabetic', adobename='uni03F0', texname='upvarkappa' },
---~ [0x003F1] = { mathclass='alphabetic', adobename='uni03F1', texname='upvarrho' },
---~ [0x003F4] = { mathclass='alphabetic', adobename='uni03F4', texname='upvarTheta' },
---~ [0x003F5] = { mathclass='alphabetic', adobename='uni03F5', texname='upepsilon' },
---~ [0x003F6] = { mathclass='normal', adobename='uni03F6', texname='upbackepsilon' },
---~ [0x00401] = { mathclass='alphabetic', adobename='uni0401' },
---~ [0x00402] = { mathclass='alphabetic', adobename='uni0402' },
---~ [0x00403] = { mathclass='alphabetic', adobename='uni0403' },
---~ [0x00404] = { mathclass='alphabetic', adobename='uni0404' },
---~ [0x00405] = { mathclass='alphabetic', adobename='uni0405' },
---~ [0x00406] = { mathclass='alphabetic', adobename='uni0406' },
---~ [0x00407] = { mathclass='alphabetic', adobename='uni0407' },
---~ [0x00408] = { mathclass='alphabetic', adobename='uni0408' },
---~ [0x00409] = { mathclass='alphabetic', adobename='uni0409' },
---~ [0x0040A] = { mathclass='alphabetic', adobename='uni040A' },
---~ [0x0040B] = { mathclass='alphabetic', adobename='uni040B' },
---~ [0x0040C] = { mathclass='alphabetic', adobename='uni040C' },
---~ [0x0040E] = { mathclass='alphabetic', adobename='uni040E' },
---~ [0x0040F] = { mathclass='alphabetic', adobename='uni040F' },
---~ [0x00410] = { mathclass='alphabetic', adobename='uni0410' },
---~ [0x00411] = { mathclass='alphabetic', adobename='uni0411' },
---~ [0x00412] = { mathclass='alphabetic', adobename='uni0412' },
---~ [0x00413] = { mathclass='alphabetic', adobename='uni0413' },
---~ [0x00414] = { mathclass='alphabetic', adobename='uni0414' },
---~ [0x00415] = { mathclass='alphabetic', adobename='uni0415' },
---~ [0x00416] = { mathclass='alphabetic', adobename='uni0416' },
---~ [0x00417] = { mathclass='alphabetic', adobename='uni0417' },
---~ [0x00418] = { mathclass='alphabetic', adobename='uni0418' },
---~ [0x00419] = { mathclass='alphabetic', adobename='uni0419' },
---~ [0x0041A] = { mathclass='alphabetic', adobename='uni041A' },
---~ [0x0041B] = { mathclass='alphabetic', adobename='uni041B' },
---~ [0x0041C] = { mathclass='alphabetic', adobename='uni041C' },
---~ [0x0041D] = { mathclass='alphabetic', adobename='uni041D' },
---~ [0x0041E] = { mathclass='alphabetic', adobename='uni041E' },
---~ [0x0041F] = { mathclass='alphabetic', adobename='uni041F' },
---~ [0x00420] = { mathclass='alphabetic', adobename='uni0420' },
---~ [0x00421] = { mathclass='alphabetic', adobename='uni0421' },
---~ [0x00422] = { mathclass='alphabetic', adobename='uni0422' },
---~ [0x00423] = { mathclass='alphabetic', adobename='uni0423' },
---~ [0x00424] = { mathclass='alphabetic', adobename='uni0424' },
---~ [0x00425] = { mathclass='alphabetic', adobename='uni0425' },
---~ [0x00426] = { mathclass='alphabetic', adobename='uni0426' },
---~ [0x00427] = { mathclass='alphabetic', adobename='uni0427' },
---~ [0x00428] = { mathclass='alphabetic', adobename='uni0428' },
---~ [0x00429] = { mathclass='alphabetic', adobename='uni0429' },
---~ [0x0042A] = { mathclass='alphabetic', adobename='uni042A' },
---~ [0x0042B] = { mathclass='alphabetic', adobename='uni042B' },
---~ [0x0042C] = { mathclass='alphabetic', adobename='uni042C' },
---~ [0x0042D] = { mathclass='alphabetic', adobename='uni042D' },
---~ [0x0042E] = { mathclass='alphabetic', adobename='uni042E' },
---~ [0x0042F] = { mathclass='alphabetic', adobename='uni042F' },
---~ [0x00430] = { mathclass='alphabetic', adobename='uni0430' },
---~ [0x00431] = { mathclass='alphabetic', adobename='uni0431' },
---~ [0x00432] = { mathclass='alphabetic', adobename='uni0432' },
---~ [0x00433] = { mathclass='alphabetic', adobename='uni0433' },
---~ [0x00434] = { mathclass='alphabetic', adobename='uni0434' },
---~ [0x00435] = { mathclass='alphabetic', adobename='uni0435' },
---~ [0x00436] = { mathclass='alphabetic', adobename='uni0436' },
---~ [0x00437] = { mathclass='alphabetic', adobename='uni0437' },
---~ [0x00438] = { mathclass='alphabetic', adobename='uni0438' },
---~ [0x00439] = { mathclass='alphabetic', adobename='uni0439' },
---~ [0x0043A] = { mathclass='alphabetic', adobename='uni043A' },
---~ [0x0043B] = { mathclass='alphabetic', adobename='uni043B' },
---~ [0x0043C] = { mathclass='alphabetic', adobename='uni043C' },
---~ [0x0043D] = { mathclass='alphabetic', adobename='uni043D' },
---~ [0x0043E] = { mathclass='alphabetic', adobename='uni043E' },
---~ [0x0043F] = { mathclass='alphabetic', adobename='uni043F' },
---~ [0x00440] = { mathclass='alphabetic', adobename='uni0440' },
---~ [0x00441] = { mathclass='alphabetic', adobename='uni0441' },
---~ [0x00442] = { mathclass='alphabetic', adobename='uni0442' },
---~ [0x00443] = { mathclass='alphabetic', adobename='uni0443' },
---~ [0x00444] = { mathclass='alphabetic', adobename='uni0444' },
---~ [0x00445] = { mathclass='alphabetic', adobename='uni0445' },
---~ [0x00446] = { mathclass='alphabetic', adobename='uni0446' },
---~ [0x00447] = { mathclass='alphabetic', adobename='uni0447' },
---~ [0x00448] = { mathclass='alphabetic', adobename='uni0448' },
---~ [0x00449] = { mathclass='alphabetic', adobename='uni0449' },
---~ [0x0044A] = { mathclass='alphabetic', adobename='uni044A' },
---~ [0x0044B] = { mathclass='alphabetic', adobename='uni044B' },
---~ [0x0044C] = { mathclass='alphabetic', adobename='uni044C' },
---~ [0x0044D] = { mathclass='alphabetic', adobename='uni044D' },
---~ [0x0044E] = { mathclass='alphabetic', adobename='uni044E' },
---~ [0x0044F] = { mathclass='alphabetic', adobename='uni044F' },
---~ [0x00451] = { mathclass='alphabetic', adobename='uni0451' },
---~ [0x00452] = { mathclass='alphabetic', adobename='uni0452' },
---~ [0x00453] = { mathclass='alphabetic', adobename='uni0453' },
---~ [0x00454] = { mathclass='alphabetic', adobename='uni0454' },
---~ [0x00455] = { mathclass='alphabetic', adobename='uni0455' },
---~ [0x00456] = { mathclass='alphabetic', adobename='uni0456' },
---~ [0x00457] = { mathclass='alphabetic', adobename='uni0457' },
---~ [0x00458] = { mathclass='alphabetic', adobename='uni0458' },
---~ [0x00459] = { mathclass='alphabetic', adobename='uni0459' },
---~ [0x0045A] = { mathclass='alphabetic', adobename='uni045A' },
---~ [0x0045B] = { mathclass='alphabetic', adobename='uni045B' },
---~ [0x0045C] = { mathclass='alphabetic', adobename='uni045C' },
---~ [0x0045E] = { mathclass='alphabetic', adobename='uni045E' },
---~ [0x0045F] = { mathclass='alphabetic', adobename='uni045F' },
---~ [0x00462] = { mathclass='alphabetic', adobename='uni0462' },
---~ [0x00463] = { mathclass='alphabetic', adobename='uni0463' },
---~ [0x0046A] = { mathclass='alphabetic', adobename='uni046A' },
---~ [0x0046B] = { mathclass='alphabetic', adobename='uni046B' },
---~ [0x00472] = { mathclass='alphabetic', adobename='uni0472' },
---~ [0x00473] = { mathclass='alphabetic', adobename='uni0473' },
---~ [0x00474] = { mathclass='alphabetic', adobename='uni0474' },
---~ [0x00475] = { mathclass='alphabetic', adobename='uni0475' },
---~ [0x00490] = { mathclass='alphabetic', adobename='uni0490' },
---~ [0x00491] = { mathclass='alphabetic', adobename='uni0491' },
---~ [0x01D00] = { mathclass='alphabetic', adobename='uni1D00', texname='textsca' },
---~ [0x01D07] = { mathclass='alphabetic', adobename='uni1D07', texname='textsce' },
---~ [0x01D1C] = { mathclass='alphabetic', adobename='uni1D1C', texname='textscu' },
---~ [0x01D81] = { mathclass='alphabetic', adobename='uni1D81', texname='textlhookd' },
---~ [0x01D84] = { mathclass='alphabetic', adobename='uni1D84', texname='textlhookk' },
---~ [0x01D85] = { mathclass='alphabetic', adobename='uni1D85', texname='textpalhookl' },
---~ [0x01D8A] = { mathclass='alphabetic', adobename='uni1D8A', texname='textlhooks' },
---~ [0x01D8D] = { mathclass='alphabetic', adobename='uni1D8D', texname='textlhookx' },
---~ [0x01D8E] = { mathclass='alphabetic', adobename='uni1D8E', texname='textlhookz' },
---~ [0x01E80] = { mathclass='alphabetic', adobename='uni1E80' },
---~ [0x01E81] = { mathclass='alphabetic', adobename='uni1E81' },
---~ [0x01E82] = { mathclass='alphabetic', adobename='uni1E82' },
---~ [0x01E83] = { mathclass='alphabetic', adobename='uni1E83' },
---~ [0x01E84] = { mathclass='alphabetic', adobename='uni1E84' },
---~ [0x01E85] = { mathclass='alphabetic', adobename='uni1E85' },
---~ [0x01EF2] = { mathclass='alphabetic', adobename='uni1EF2' },
---~ [0x01EF3] = { mathclass='alphabetic', adobename='uni1EF3' },
---~ [0x02004] = { mathclass='unknown', adobename='uni2004', texname='thirdemspace' },
---~ [0x02007] = { mathclass='unknown', adobename='uni2007', texname='digitspace' },
---~ [0x02008] = { mathclass='unknown', adobename='uni2008', texname='punctspace' },
---~ [0x0200A] = { mathclass='unknown', adobename='uni200A', texname='hspace' },
---~ [0x0200B] = { mathclass='unknown', adobename='uni200B', texname='zwspace' },
---~ [0x0200C] = { mathclass='unknown', adobename='uni200C', texname='zwnonjoin' },
---~ [0x0200D] = { mathclass='unknown', adobename='uni200D', texname='zwjoin' },
---~ [0x0200E] = { mathclass='unknown', adobename='uni200E', texname='LtoRmark' },
---~ [0x0200F] = { mathclass='unknown', adobename='uni200F', texname='RtoLmark' },
---~ [0x02010] = { mathclass='punctuation', adobename='uni2010', texname='texthyphen' },
---~ [0x02011] = { mathclass='unknown', adobename='uni2011', texname='nobreakhyphen' },
---~ [0x02012] = { mathclass='punctuation', adobename='figuredash', texname='figdash' },
---~ [0x02013] = { mathclass='punctuation', adobename='endash', contextname='endash', ignore=true },
---~ [0x02014] = { mathclass='punctuation', adobename='emdash', contextname='emdash', ignore=true },
---~ [0x02015] = { mathclass='unknown', adobename='uni2015', texname='horizbar' },
---~ [0x02016] = { mathclass='fence', adobename='uni2016', texname='Vert' },
---~ [0x02017] = { mathclass='unknown', adobename='uni2017', texname='twolowline' },
---~ [0x02018] = { mathclass='opening', adobename='quoteleft', texname='lq' },
---~ [0x02019] = { mathclass='closing', adobename='quoteright', texname='rq' },
---~ [0x0201A] = { mathclass='opening', adobename='quotesinglbase', texname='quotsinglbase' },
---~ [0x0201B] = { mathclass='closing', adobename='uni201B', texname='quotsinglright' },
---~ [0x0201C] = { mathclass='opening', adobename='quotedblleft', texname='textquotedblleft' },
---~ [0x0201D] = { mathclass='closing', adobename='quotedblright', texname='textquotedblright' },
---~ [0x0201E] = { mathclass='opening', adobename='quotedblbase', texname='quotdblbase' },
---~ [0x0201F] = { mathclass='closing', adobename='uni201F', texname='quotdblright' },
---~ [0x02020] = { mathclass='binary', adobename='dagger', texname='dagger' },
---~ [0x02021] = { mathclass='binary', adobename='daggerdbl', texname='ddagger' },
---~ [0x02022] = { mathclass='binary', adobename='bullet', texname='smblkcircle' },
---~ [0x02024] = { mathclass='unknown', adobename='onedotenleader', texname='enleaderonedot' },
---~ [0x02025] = { mathclass='unknown', adobename='twodotenleader', texname='enleadertwodots' },
---~ [0x02026] = { mathclass='unknown', adobename='ellipsis', texname='dots' },
---~ [0x02027] = { mathclass='unknown', adobename='uni2027', texname='hyphenpoint' },
---~ [0x02030] = { mathclass='normal', adobename='perthousand', texname='textperthousand' },
---~ [0x02031] = { mathclass='normal', adobename='uni2031', texname='textpertenthousand' },
---~ [0x02032] = { mathclass='normal', adobename='uni2032', texname='textprime' },
---~ [0x02033] = { mathclass='normal', adobename='uni2033', texname='textdprime' },
---~ [0x02034] = { mathclass='normal', adobename='uni2034', texname='texttrprime' },
---~ [0x02035] = { mathclass='normal', adobename='uni2035', texname='textbackprime' },
---~ [0x02036] = { mathclass='normal', adobename='uni2036', texname='textbackdprime' },
---~ [0x02037] = { mathclass='normal', adobename='uni2037', texname='textbacktrprime' },
---~ [0x02038] = { mathclass='unknown', adobename='uni2038', texname='caretinsert' },
---~ [0x02039] = { mathclass='opening', adobename='guilsinglleft', texname='guilsinglleft' },
---~ [0x0203A] = { mathclass='closing', adobename='guilsinglright', texname='guilsinglright' },
---~ [0x0203B] = { mathclass='normal', adobename='uni203B', texname='textreferencemark' },
---~ [0x0203C] = { mathclass='unknown', adobename='uni203C', texname='Exclam' },
---~ [0x0203E] = { mathclass='unknown', adobename='uni203E', texname='overline' },
---~ [0x02040] = { mathclass='binary', adobename='uni2040', texname='tieconcat' },
---~ [0x02043] = { mathclass='unknown', adobename='uni2043', texname='hyphenbullet' },
---~ [0x02044] = { mathclass='binary', adobename='fraction', texname='fracslash' },
---~ [0x02047] = { mathclass='unknown', adobename='uni2047', texname='Question' },
---~ [0x0204E] = { mathclass='unknown', adobename='uni204E', texname='textasterisklow' },
---~ [0x0204F] = { mathclass='unknown', adobename='uni204F', texname='textsemicolonreversed' },
---~ [0x02050] = { mathclass='relation', adobename='uni2050', texname='closure' },
---~ [0x02051] = { mathclass='normal', adobename='uni2051', texname='textAsterisks' },
---~ [0x02052] = { mathclass='normal', adobename='uni2052', texname='textdiscount' },
---~ [0x02057] = { mathclass='normal', adobename='uni2057', texname='textqprime' },
---~ [0x0205F] = { mathclass='normal', adobename='uni205F', texname='medmathspace' },
---~ [0x02060] = { mathclass='unknown', adobename='uni2060', texname='wordjoin' },
---~ [0x02061] = { mathclass='unknown', adobename='uni2061', texname='functionapply' },
---~ [0x02062] = { mathclass='unknown', adobename='uni2062', texname='invisibletimes' },
---~ [0x02063] = { mathclass='unknown', adobename='uni2063', texname='invisiblesep' },
---~ [0x02070] = { mathclass='unknown', adobename='zerosuperior', texname='supzero' },
---~ [0x02074] = { mathclass='unknown', adobename='foursuperior', texname='supfour' },
---~ [0x02075] = { mathclass='unknown', adobename='fivesuperior', texname='supfive' },
---~ [0x02076] = { mathclass='unknown', adobename='sixsuperior', texname='supsix' },
---~ [0x02077] = { mathclass='unknown', adobename='sevensuperior', texname='supseven' },
---~ [0x02078] = { mathclass='unknown', adobename='eightsuperior', texname='supeight' },
---~ [0x02079] = { mathclass='unknown', adobename='ninesuperior', texname='supnine' },
---~ [0x0207D] = { mathclass='unknown', adobename='parenleftsuperior', texname='suplparen' },
---~ [0x0207E] = { mathclass='unknown', adobename='parenrightsuperior', texname='suprparen' },
---~ [0x0207F] = { mathclass='unknown', adobename='nsuperior', texname='supn' },
---~ [0x02080] = { mathclass='unknown', adobename='zeroinferior', texname='subzero' },
---~ [0x02081] = { mathclass='unknown', adobename='oneinferior', texname='subone' },
---~ [0x02082] = { mathclass='unknown', adobename='twoinferior', texname='subtwo' },
---~ [0x02083] = { mathclass='unknown', adobename='threeinferior', texname='subthree' },
---~ [0x02084] = { mathclass='unknown', adobename='fourinferior', texname='subfour' },
---~ [0x02085] = { mathclass='unknown', adobename='fiveinferior', texname='subfive' },
---~ [0x02086] = { mathclass='unknown', adobename='sixinferior', texname='subsix' },
---~ [0x02087] = { mathclass='unknown', adobename='seveninferior', texname='subseven' },
---~ [0x02088] = { mathclass='unknown', adobename='eightinferior', texname='subeight' },
---~ [0x02089] = { mathclass='unknown', adobename='nineinferior', texname='subnine' },
---~ [0x0208D] = { mathclass='unknown', adobename='parenleftinferior', texname='sublparen' },
---~ [0x0208E] = { mathclass='unknown', adobename='parenrightinferior', texname='subrparen' },
---~ [0x020A1] = { mathclass='unknown', adobename='colonmonetary', texname='textcolonmonetary' },
---~ [0x020A3] = { mathclass='unknown', adobename='uni20A3', texname='textfranc' },
---~ [0x020A4] = { mathclass='unknown', adobename='uni20A4', texname='textlira' },
---~ [0x020A7] = { mathclass='normal', adobename='uni20A7', texname='textpesetas' },
---~ [0x020AC] = { mathclass='unknown', adobename='uni20AC', texname='euro' },
---~ [0x020D0] = { mathclass='diacritic', adobename='uni20D0', texname='leftharpoonaccent' },
---~ [0x020D1] = { mathclass='diacritic', adobename='uni20D1', texname='rightharpoonaccent' },
---~ [0x020D2] = { mathclass='diacritic', adobename='uni20D2', texname='vertoverlay' },
---~ [0x020D6] = { mathclass='diacritic', adobename='uni20D6', texname='overleftarrow' },
---~ [0x020D7] = { mathclass='diacritic', adobename='uni20D7', texname='vec' },
---~ [0x020DB] = { mathclass='diacritic', adobename='uni20DB', texname='dddot' },
---~ [0x020DC] = { mathclass='diacritic', adobename='uni20DC', texname='ddddot' },
---~ [0x020DD] = { mathclass='unknown', adobename='uni20DD', texname='enclosecircle' },
---~ [0x020DE] = { mathclass='unknown', adobename='uni20DE', texname='enclosesquare' },
---~ [0x020DF] = { mathclass='unknown', adobename='uni20DF', texname='enclosediamond' },
---~ [0x020E1] = { mathclass='diacritic', adobename='uni20E1', texname='overleftrightarrow' },
---~ [0x020E4] = { mathclass='unknown', adobename='uni20E4', texname='enclosetriangle' },
---~ [0x020E5] = { mathclass='diacritic', adobename='uni20E5', texname='textoverlaybackslash' },
---~ [0x020E6] = { mathclass='diacritic', adobename='uni20E6', texname='textoverlaydoublevert' },
---~ [0x020E7] = { mathclass='diacritic', adobename='uni20E7', texname='annuity' },
---~ [0x020E8] = { mathclass='diacritic', adobename='uni20E8', texname='threeunderdot' },
---~ [0x020E9] = { mathclass='diacritic', adobename='uni20E9', texname='widebridgeabove' },
---~ [0x020EA] = { mathclass='diacritic', adobename='uni20EA', texname='textoverlayleftarrow' },
---~ [0x020EB] = { mathclass='unknown', adobename='uni20EB', texname='textoverlaytwosolidus' },
---~ [0x020EC] = { mathclass='diacritic', adobename='uni20EC', texname='overrightharpoondown' },
---~ [0x020ED] = { mathclass='diacritic', adobename='uni20ED', texname='overleftharpoondown' },
---~ [0x020EE] = { mathclass='diacritic', adobename='uni20EE', texname='underleftarrow' },
---~ [0x020EF] = { mathclass='diacritic', adobename='uni20EF', texname='underrightarrow' },
---~ [0x02102] = { mathclass='alphabetic', adobename='uni2102', texname='BbbC' },
---~ [0x02105] = { mathclass='normal', adobename='uni2105', texname='incare' },
---~ [0x02107] = { mathclass='unknown', adobename='uni2107', texname='Eulerconst' },
---~ [0x0210A] = { mathclass='alphabetic', adobename='uni210A', texname='scrg' },
---~ [0x0210B] = { mathclass='alphabetic', adobename='uni210B', texname='scrH' },
---~ [0x0210C] = { mathclass='alphabetic', adobename='uni210C', texname='frakH' },
---~ [0x0210D] = { mathclass='alphabetic', adobename='uni210D', texname='BbbH' },
---~ [0x0210E] = { mathclass='unknown', adobename='uni210E', texname='Planckconst' },
---~ [0x0210F] = { mathclass='alphabetic', adobename='uni210F', texname='hslash' },
---~ [0x02110] = { mathclass='alphabetic', adobename='uni2110', texname='scrI' },
---~ [0x02111] = { mathclass='alphabetic', adobename='uni2111', texname='Im' },
---~ [0x02112] = { mathclass='alphabetic', adobename='uni2112', texname='scrL' },
---~ [0x02113] = { mathclass='alphabetic', adobename='uni2113', texname='ell' },
---~ [0x02115] = { mathclass='alphabetic', adobename='uni2115', texname='BbbN' },
---~ [0x02116] = { mathclass='normal', adobename='uni2116', texname='textnumero' },
---~ [0x02117] = { mathclass='normal', adobename='uni2117', texname='textcircledP' },
---~ [0x02118] = { mathclass='alphabetic', adobename='uni2118', texname='wp' },
---~ [0x02119] = { mathclass='alphabetic', adobename='uni2119', texname='BbbP' },
---~ [0x0211A] = { mathclass='alphabetic', adobename='uni211A', texname='BbbQ' },
---~ [0x0211B] = { mathclass='alphabetic', adobename='uni211B', texname='scrR' },
---~ [0x0211C] = { mathclass='alphabetic', adobename='uni211C', texname='Re' },
---~ [0x0211D] = { mathclass='alphabetic', adobename='uni211D', texname='BbbR' },
---~ [0x0211E] = { mathclass='normal', adobename='uni211E', texname='textrecipe' },
---~ [0x02122] = { mathclass='unknown', adobename='trademark', texname='texttrademark' },
---~ [0x02124] = { mathclass='alphabetic', adobename='uni2124', texname='BbbZ' },
---~ [0x02125] = { mathclass='unknown', adobename='uni2125', texname='textoz' },
---~ [0x02126] = { mathclass='normal', adobename='uni2126', texname='textohm' },
---~ [0x02127] = { mathclass='normal', adobename='uni2127', texname='mho' },
---~ [0x02128] = { mathclass='alphabetic', adobename='uni2128', texname='frakZ' },
---~ [0x02129] = { mathclass='alphabetic', adobename='uni2129', texname='turnediota' },
---~ [0x0212B] = { mathclass='alphabetic', adobename='uni212B', texname='Angstrom' },
---~ [0x0212C] = { mathclass='alphabetic', adobename='uni212C', texname='scrB' },
---~ [0x0212D] = { mathclass='alphabetic', adobename='uni212D', texname='frakC' },
---~ [0x0212E] = { mathclass='alphabetic', adobename='uni212E', texname='textestimated' },
---~ [0x0212F] = { mathclass='alphabetic', adobename='uni212F', texname='scre' },
---~ [0x02130] = { mathclass='alphabetic', adobename='uni2130', texname='scrE' },
---~ [0x02131] = { mathclass='alphabetic', adobename='uni2131', texname='scrF' },
---~ [0x02132] = { mathclass='normal', adobename='uni2132', texname='Finv' },
---~ [0x02133] = { mathclass='alphabetic', adobename='uni2133', texname='scrM' },
---~ [0x02134] = { mathclass='alphabetic', adobename='uni2134', texname='scro' },
---~ [0x02135] = { mathclass='alphabetic', adobename='uni2135', texname='aleph' },
---~ [0x02136] = { mathclass='alphabetic', adobename='uni2136', texname='beth' },
---~ [0x02137] = { mathclass='alphabetic', adobename='uni2137', texname='gimel' },
---~ [0x02138] = { mathclass='alphabetic', adobename='uni2138', texname='daleth' },
---~ [0x0213C] = { mathclass='normal', adobename='uni213C', texname='Bbbpi' },
---~ [0x0213D] = { mathclass='alphabetic', adobename='uni213D', texname='Bbbgamma' },
---~ [0x0213E] = { mathclass='alphabetic', adobename='uni213E', texname='BbbGamma' },
---~ [0x0213F] = { mathclass='alphabetic', adobename='uni213F', texname='BbbPi' },
---~ [0x02140] = { mathclass='large', adobename='uni2140', texname='Bbbsum' },
---~ [0x02141] = { mathclass='normal', adobename='uni2141', texname='Game' },
---~ [0x02142] = { mathclass='normal', adobename='uni2142', texname='sansLmirrored' },
---~ [0x02143] = { mathclass='normal', adobename='uni2143', texname='sansLinverted' },
---~ [0x02144] = { mathclass='normal', adobename='uni2144', texname='Yup' },
---~ [0x02145] = { mathclass='normal', adobename='uni2145', texname='itBbbD' },
---~ [0x02146] = { mathclass='normal', adobename='uni2146', texname='itBbbd' },
---~ [0x02147] = { mathclass='normal', adobename='uni2147', texname='itBbbe' },
---~ [0x02148] = { mathclass='normal', adobename='uni2148', texname='itBbbi' },
---~ [0x02149] = { mathclass='normal', adobename='uni2149', texname='itBbbj' },
---~ [0x0214A] = { mathclass='unknown', adobename='uni214A', texname='PropertyLine' },
---~ [0x0214B] = { mathclass='binary', adobename='uni214B', texname='upand' },
---~ [0x02153] = { mathclass='unknown', adobename='onethird', texname='fraconethird' },
---~ [0x02154] = { mathclass='unknown', adobename='twothirds', texname='fractwothirds' },
---~ [0x02155] = { mathclass='unknown', adobename='uni2155', texname='fraconefifth' },
---~ [0x02156] = { mathclass='unknown', adobename='uni2156', texname='fractwofifths' },
---~ [0x02157] = { mathclass='unknown', adobename='uni2157', texname='fracthreefifths' },
---~ [0x02158] = { mathclass='unknown', adobename='uni2158', texname='fracfourfifths' },
---~ [0x02159] = { mathclass='unknown', adobename='uni2159', texname='fraconesixth' },
---~ [0x0215A] = { mathclass='unknown', adobename='uni215A', texname='fracfivesixths' },
---~ [0x0215B] = { mathclass='unknown', adobename='oneeighth', texname='fraconeeighth' },
---~ [0x0215C] = { mathclass='unknown', adobename='threeeighths', texname='fracthreeeighths' },
---~ [0x0215D] = { mathclass='unknown', adobename='fiveeighths', texname='fracfiveeighths' },
---~ [0x0215E] = { mathclass='unknown', adobename='seveneighths', texname='fracseveneights' },
---~ [0x02190] = { mathclass='relation', adobename='uni2190', texname='leftarrow' },
---~ [0x02191] = { mathclass='relation', adobename='uni2191', texname='uparrow' },
---~ [0x02192] = { mathclass='relation', adobename='uni2192', texname='rightarrow' },
---~ [0x02193] = { mathclass='relation', adobename='uni2193', texname='downarrow' },
---~ [0x02194] = { mathclass='relation', adobename='uni2194', texname='leftrightarrow' },
---~ [0x02195] = { mathclass='relation', adobename='uni2195', texname='updownarrow' },
---~ [0x02196] = { mathclass='relation', adobename='uni2196', texname='nwarrow' },
---~ [0x02197] = { mathclass='relation', adobename='uni2197', texname='nearrow' },
---~ [0x02198] = { mathclass='relation', adobename='uni2198', texname='searrow' },
---~ [0x02199] = { mathclass='relation', adobename='uni2199', texname='swarrow' },
---~ [0x0219A] = { mathclass='relation', adobename='uni219A', texname='nleftarrow' },
---~ [0x0219B] = { mathclass='relation', adobename='uni219B', texname='nrightarrow' },
---~ [0x0219C] = { mathclass='relation', adobename='uni219C', texname='leftsquigarrow' },
---~ [0x0219D] = { mathclass='relation', adobename='uni219D', texname='rightsquigarrow' },
---~ [0x0219E] = { mathclass='relation', adobename='uni219E', texname='twoheadleftarrow' },
---~ [0x0219F] = { mathclass='relation', adobename='uni219F', texname='twoheaduparrow' },
---~ [0x021A0] = { mathclass='relation', adobename='uni21A0', texname='twoheadrightarrow' },
---~ [0x021A1] = { mathclass='relation', adobename='uni21A1', texname='twoheaddownarrow' },
---~ [0x021A2] = { mathclass='relation', adobename='uni21A2', texname='leftarrowtail' },
---~ [0x021A3] = { mathclass='relation', adobename='uni21A3', texname='rightarrowtail' },
---~ [0x021A4] = { mathclass='relation', adobename='uni21A4', texname='mapsfrom' },
---~ [0x021A5] = { mathclass='relation', adobename='uni21A5', texname='mapsup' },
---~ [0x021A6] = { mathclass='relation', adobename='uni21A6', texname='mapsto' },
---~ [0x021A7] = { mathclass='relation', adobename='uni21A7', texname='mapsdown' },
---~ [0x021A8] = { mathclass='unknown', adobename='uni21A8', texname='updownarrowbar' },
---~ [0x021A9] = { mathclass='relation', adobename='uni21A9', texname='hookleftarrow' },
---~ [0x021AA] = { mathclass='relation', adobename='uni21AA', texname='hookrightarrow' },
---~ [0x021AB] = { mathclass='relation', adobename='uni21AB', texname='looparrowleft' },
---~ [0x021AC] = { mathclass='relation', adobename='uni21AC', texname='looparrowright' },
---~ [0x021AD] = { mathclass='relation', adobename='uni21AD', texname='leftrightsquigarrow' },
---~ [0x021AE] = { mathclass='relation', adobename='uni21AE', texname='nleftrightarrow' },
---~ [0x021AF] = { mathclass='relation', adobename='uni21AF', texname='downzigzagarrow' },
---~ [0x021B0] = { mathclass='relation', adobename='uni21B0', texname='Lsh' },
---~ [0x021B1] = { mathclass='relation', adobename='uni21B1', texname='Rsh' },
---~ [0x021B2] = { mathclass='relation', adobename='uni21B2', texname='Ldsh' },
---~ [0x021B3] = { mathclass='relation', adobename='uni21B3', texname='Rdsh' },
---~ [0x021B4] = { mathclass='unknown', adobename='uni21B4', texname='linefeed' },
---~ [0x021B5] = { mathclass='unknown', adobename='uni21B5', texname='carriagereturn' },
---~ [0x021B6] = { mathclass='relation', adobename='uni21B6', texname='curvearrowleft' },
---~ [0x021B7] = { mathclass='relation', adobename='uni21B7', texname='curvearrowright' },
---~ [0x021B8] = { mathclass='unknown', adobename='uni21B8', texname='barovernorthwestarrow' },
---~ [0x021B9] = { mathclass='unknown', adobename='uni21B9', texname='barleftarrowrightarrowbar' },
---~ [0x021BA] = { mathclass='unknown', adobename='uni21BA', texname='acwopencirclearrow' },
---~ [0x021BB] = { mathclass='unknown', adobename='uni21BB', texname='cwopencirclearrow' },
---~ [0x021BC] = { mathclass='relation', adobename='uni21BC', texname='leftharpoonup' },
---~ [0x021BD] = { mathclass='relation', adobename='uni21BD', texname='leftharpoondown' },
---~ [0x021BE] = { mathclass='relation', adobename='uni21BE', texname='upharpoonright' },
---~ [0x021BF] = { mathclass='relation', adobename='uni21BF', texname='upharpoonleft' },
---~ [0x021C0] = { mathclass='relation', adobename='uni21C0', texname='rightharpoonup' },
---~ [0x021C1] = { mathclass='relation', adobename='uni21C1', texname='rightharpoondown' },
---~ [0x021C2] = { mathclass='relation', adobename='uni21C2', texname='downharpoonright' },
---~ [0x021C3] = { mathclass='relation', adobename='uni21C3', texname='downharpoonleft' },
---~ [0x021C4] = { mathclass='relation', adobename='uni21C4', texname='rightleftarrows' },
---~ [0x021C5] = { mathclass='relation', adobename='uni21C5', texname='updownarrows' },
---~ [0x021C6] = { mathclass='relation', adobename='uni21C6', texname='leftrightarrows' },
---~ [0x021C7] = { mathclass='relation', adobename='uni21C7', texname='leftleftarrows' },
---~ [0x021C8] = { mathclass='relation', adobename='uni21C8', texname='upuparrows' },
---~ [0x021C9] = { mathclass='relation', adobename='uni21C9', texname='rightrightarrows' },
---~ [0x021CA] = { mathclass='relation', adobename='uni21CA', texname='downdownarrows' },
---~ [0x021CB] = { mathclass='relation', adobename='uni21CB', texname='leftrightharpoons' },
---~ [0x021CC] = { mathclass='relation', adobename='uni21CC', texname='rightleftharpoons' },
---~ [0x021CD] = { mathclass='relation', adobename='uni21CD', texname='nLeftarrow' },
---~ [0x021CE] = { mathclass='relation', adobename='uni21CE', texname='nLeftrightarrow' },
---~ [0x021CF] = { mathclass='relation', adobename='uni21CF', texname='nRightarrow' },
---~ [0x021D0] = { mathclass='relation', adobename='uni21D0', texname='Leftarrow' },
---~ [0x021D1] = { mathclass='relation', adobename='uni21D1', texname='Uparrow' },
---~ [0x021D2] = { mathclass='relation', adobename='uni21D2', texname='Rightarrow' },
---~ [0x021D3] = { mathclass='relation', adobename='uni21D3', texname='Downarrow' },
---~ [0x021D4] = { mathclass='relation', adobename='uni21D4', texname='Leftrightarrow' },
---~ [0x021D5] = { mathclass='relation', adobename='uni21D5', texname='Updownarrow' },
---~ [0x021D6] = { mathclass='relation', adobename='uni21D6', texname='Nwarrow' },
---~ [0x021D7] = { mathclass='relation', adobename='uni21D7', texname='Nearrow' },
---~ [0x021D8] = { mathclass='relation', adobename='uni21D8', texname='Searrow' },
---~ [0x021D9] = { mathclass='relation', adobename='uni21D9', texname='Swarrow' },
---~ [0x021DA] = { mathclass='relation', adobename='uni21DA', texname='Lleftarrow' },
---~ [0x021DB] = { mathclass='relation', adobename='uni21DB', texname='Rrightarrow' },
---~ [0x021DC] = { mathclass='relation', adobename='uni21DC', texname='leftzigzagarrow' },
---~ [0x021DD] = { mathclass='relation', adobename='uni21DD', texname='rightzigzagarrow' },
---~ [0x021DE] = { mathclass='unknown', adobename='uni21DE', texname='nHuparrow' },
---~ [0x021DF] = { mathclass='unknown', adobename='uni21DF', texname='nHdownarrow' },
---~ [0x021E0] = { mathclass='unknown', adobename='uni21E0', texname='leftdasharrow' },
---~ [0x021E1] = { mathclass='unknown', adobename='uni21E1', texname='updasharrow' },
---~ [0x021E2] = { mathclass='unknown', adobename='uni21E2', texname='rightdasharrow' },
---~ [0x021E3] = { mathclass='unknown', adobename='uni21E3', texname='downdasharrow' },
---~ [0x021E4] = { mathclass='relation', adobename='uni21E4', texname='barleftarrow' },
---~ [0x021E5] = { mathclass='relation', adobename='uni21E5', texname='rightarrowbar' },
---~ [0x021E6] = { mathclass='unknown', adobename='uni21E6', texname='leftwhitearrow' },
---~ [0x021E7] = { mathclass='unknown', adobename='uni21E7', texname='upwhitearrow' },
---~ [0x021E8] = { mathclass='unknown', adobename='uni21E8', texname='rightwhitearrow' },
---~ [0x021E9] = { mathclass='unknown', adobename='uni21E9', texname='downwhitearrow' },
---~ [0x021EA] = { mathclass='unknown', adobename='uni21EA', texname='whitearrowupfrombar' },
---~ [0x021F4] = { mathclass='relation', adobename='uni21F4', texname='circleonrightarrow' },
---~ [0x021F5] = { mathclass='relation', adobename='uni21F5', texname='downuparrows' },
---~ [0x021F6] = { mathclass='relation', adobename='uni21F6', texname='rightthreearrows' },
---~ [0x021F7] = { mathclass='relation', adobename='uni21F7', texname='nvleftarrow' },
---~ [0x021F8] = { mathclass='relation', adobename='uni21F8', texname='nvrightarrow' },
---~ [0x021F9] = { mathclass='relation', adobename='uni21F9', texname='nvleftrightarrow' },
---~ [0x021FA] = { mathclass='relation', adobename='uni21FA', texname='nVleftarrow' },
---~ [0x021FB] = { mathclass='relation', adobename='uni21FB', texname='nVrightarrow' },
---~ [0x021FC] = { mathclass='relation', adobename='uni21FC', texname='nVleftrightarrow' },
---~ [0x021FD] = { mathclass='relation', adobename='uni21FD', texname='leftarrowtriangle' },
---~ [0x021FE] = { mathclass='relation', adobename='uni21FE', texname='rightarrowtriangle' },
---~ [0x021FF] = { mathclass='relation', adobename='uni21FF', texname='leftrightarrowtriangle' },
---~ [0x02200] = { mathclass='normal', adobename='uni2200', texname='forall' },
---~ [0x02201] = { mathclass='normal', adobename='uni2201', texname='complement' },
---~ [0x02202] = { mathclass='normal', adobename='uni2202', texname='partial' },
---~ [0x02203] = { mathclass='normal', adobename='uni2203', texname='exists' },
---~ [0x02204] = { mathclass='normal', adobename='uni2204', texname='nexists' },
---~ [0x02205] = { mathclass='normal', adobename='uni2205', texname='varnothing' },
---~ [0x02206] = { mathclass='normal', adobename='uni2206', texname='increment' },
---~ [0x02207] = { mathclass='normal', adobename='uni2207', texname='nabla' },
---~ [0x02208] = { mathclass='relation', adobename='uni2208', texname='in' },
---~ [0x02209] = { mathclass='relation', adobename='uni2209', texname='notin' },
---~ [0x0220A] = { mathclass='relation', adobename='uni220A', texname='smallin' },
---~ [0x0220B] = { mathclass='relation', adobename='uni220B', texname='ni' },
---~ [0x0220C] = { mathclass='relation', adobename='uni220C', texname='nni' },
---~ [0x0220D] = { mathclass='relation', adobename='uni220D', texname='smallni' },
---~ [0x0220E] = { mathclass='normal', adobename='uni220E', texname='QED' },
---~ [0x0220F] = { mathclass='large', adobename='uni220F', texname='prod' },
---~ [0x02210] = { mathclass='large', adobename='uni2210', texname='coprod' },
---~ [0x02211] = { mathclass='large', adobename='uni2211', texname='sum' },
---~ [0x02212] = { mathclass='binary', adobename='minus', texname='minus' },
---~ [0x02213] = { mathclass='binary', adobename='uni2213', texname='mp' },
---~ [0x02214] = { mathclass='binary', adobename='uni2214', texname='dotplus' },
---~ [0x02215] = { mathclass='binary', adobename='uni2215', texname='slash' },
---~ [0x02216] = { mathclass='binary', adobename='uni2216', texname='smallsetminus' },
---~ [0x02217] = { mathclass='binary', adobename='uni2217', texname='ast' },
---~ [0x02218] = { mathclass='binary', adobename='uni2218', texname='vysmwhtcircle' },
---~ [0x02219] = { mathclass='binary', adobename='uni2219', texname='vysmblkcircle' },
---~ [0x0221A] = { mathclass='opening', adobename='uni221A', texname='sqrt' },
---~ [0x0221B] = { mathclass='unknown', adobename='uni221B', texname='cuberoot' },
---~ [0x0221C] = { mathclass='unknown', adobename='uni221C', texname='fourthroot' },
---~ [0x0221D] = { mathclass='relation', adobename='uni221D', texname='propto' },
---~ [0x0221E] = { mathclass='normal', adobename='uni221E', texname='infty' },
---~ [0x0221F] = { mathclass='normal', adobename='uni221F', texname='rightangle' },
---~ [0x02220] = { mathclass='normal', adobename='uni2220', texname='angle' },
---~ [0x02221] = { mathclass='normal', adobename='uni2221', texname='measuredangle' },
---~ [0x02222] = { mathclass='normal', adobename='uni2222', texname='sphericalangle' },
---~ [0x02223] = { mathclass='relation', adobename='uni2223', texname='mid' },
---~ [0x02224] = { mathclass='relation', adobename='uni2224', texname='nmid' },
---~ [0x02225] = { mathclass='relation', adobename='uni2225', texname='parallel' },
---~ [0x02226] = { mathclass='relation', adobename='uni2226', texname='nparallel' },
---~ [0x02227] = { mathclass='binary', adobename='uni2227', texname='wedge' },
---~ [0x02228] = { mathclass='binary', adobename='uni2228', texname='vee' },
---~ [0x02229] = { mathclass='binary', adobename='uni2229', texname='cap' },
---~ [0x0222A] = { mathclass='binary', adobename='uni222A', texname='cup' },
---~ [0x0222B] = { mathclass='large', adobename='uni222B', texname='int' },
---~ [0x0222C] = { mathclass='large', adobename='uni222C', texname='iint' },
---~ [0x0222D] = { mathclass='large', adobename='uni222D', texname='iiint' },
---~ [0x0222E] = { mathclass='large', adobename='uni222E', texname='oint' },
---~ [0x0222F] = { mathclass='large', adobename='uni222F', texname='oiint' },
---~ [0x02230] = { mathclass='large', adobename='uni2230', texname='oiiint' },
---~ [0x02231] = { mathclass='large', adobename='uni2231', texname='intclockwise' },
---~ [0x02232] = { mathclass='large', adobename='uni2232', texname='varointclockwise' },
---~ [0x02233] = { mathclass='large', adobename='uni2233', texname='ointctrclockwise' },
---~ [0x02234] = { mathclass='normal', adobename='uni2234', texname='therefore' },
---~ [0x02235] = { mathclass='normal', adobename='uni2235', texname='because' },
---~ [0x02236] = { mathclass='unknown', adobename='uni2236', texname='colon' },
---~ [0x02237] = { mathclass='unknown', adobename='uni2237', texname='Colon' },
---~ [0x02238] = { mathclass='binary', adobename='uni2238', texname='dotminus' },
---~ [0x02239] = { mathclass='unknown', adobename='uni2239', texname='dashcolon' },
---~ [0x0223A] = { mathclass='unknown', adobename='uni223A', texname='dotsminusdots' },
---~ [0x0223B] = { mathclass='unknown', adobename='uni223B', texname='kernelcontraction' },
---~ [0x0223C] = { mathclass='relation', adobename='uni223C', texname='sim' },
---~ [0x0223D] = { mathclass='relation', adobename='uni223D', texname='backsim' },
---~ [0x0223E] = { mathclass='unknown', adobename='uni223E', texname='ac' },
---~ [0x0223F] = { mathclass='unknown', adobename='uni223F', texname='sinewave' },
---~ [0x02240] = { mathclass='binary', adobename='uni2240', texname='wr' },
---~ [0x02241] = { mathclass='relation', adobename='uni2241', texname='nsim' },
---~ [0x02242] = { mathclass='relation', adobename='uni2242', texname='eqsim' },
---~ [0x02243] = { mathclass='relation', adobename='uni2243', texname='simeq' },
---~ [0x02244] = { mathclass='relation', adobename='uni2244', texname='nsime' },
---~ [0x02245] = { mathclass='relation', adobename='uni2245', texname='cong' },
---~ [0x02246] = { mathclass='relation', adobename='uni2246', texname='simneqq' },
---~ [0x02247] = { mathclass='relation', adobename='uni2247', texname='ncong' },
---~ [0x02248] = { mathclass='relation', adobename='uni2248', texname='approx' },
---~ [0x02249] = { mathclass='relation', adobename='uni2249', texname='napprox' },
---~ [0x0224A] = { mathclass='relation', adobename='uni224A', texname='approxeq' },
---~ [0x0224B] = { mathclass='relation', adobename='uni224B', texname='approxident' },
---~ [0x0224C] = { mathclass='relation', adobename='uni224C', texname='backcong' },
---~ [0x0224D] = { mathclass='relation', adobename='uni224D', texname='asymp' },
---~ [0x0224E] = { mathclass='relation', adobename='uni224E', texname='Bumpeq' },
---~ [0x0224F] = { mathclass='relation', adobename='uni224F', texname='bumpeq' },
---~ [0x02250] = { mathclass='relation', adobename='uni2250', texname='doteq' },
---~ [0x02251] = { mathclass='relation', adobename='uni2251', texname='Doteq' },
---~ [0x02252] = { mathclass='relation', adobename='uni2252', texname='fallingdotseq' },
---~ [0x02253] = { mathclass='relation', adobename='uni2253', texname='risingdotseq' },
---~ [0x02254] = { mathclass='relation', adobename='uni2254', texname='coloneq' },
---~ [0x02255] = { mathclass='relation', adobename='uni2255', texname='eqcolon' },
---~ [0x02256] = { mathclass='relation', adobename='uni2256', texname='eqcirc' },
---~ [0x02257] = { mathclass='relation', adobename='uni2257', texname='circeq' },
---~ [0x02258] = { mathclass='relation', adobename='uni2258', texname='arceq' },
---~ [0x02259] = { mathclass='relation', adobename='uni2259', texname='wedgeq' },
---~ [0x0225A] = { mathclass='relation', adobename='uni225A', texname='veeeq' },
---~ [0x0225B] = { mathclass='relation', adobename='uni225B', texname='stareq' },
---~ [0x0225C] = { mathclass='relation', adobename='uni225C', texname='triangleq' },
---~ [0x0225D] = { mathclass='relation', adobename='uni225D', texname='eqdef' },
---~ [0x0225E] = { mathclass='relation', adobename='uni225E', texname='measeq' },
---~ [0x0225F] = { mathclass='relation', adobename='uni225F', texname='questeq' },
---~ [0x02260] = { mathclass='relation', adobename='uni2260', texname='ne' },
---~ [0x02261] = { mathclass='relation', adobename='uni2261', texname='equiv' },
---~ [0x02262] = { mathclass='relation', adobename='uni2262', texname='nequiv' },
---~ [0x02263] = { mathclass='relation', adobename='uni2263', texname='Equiv' },
---~ [0x02264] = { mathclass='relation', adobename='uni2264', texname='leq' },
---~ [0x02265] = { mathclass='relation', adobename='uni2265', texname='geq' },
---~ [0x02266] = { mathclass='relation', adobename='uni2266', texname='leqq' },
---~ [0x02267] = { mathclass='relation', adobename='uni2267', texname='geqq' },
---~ [0x02268] = { mathclass='relation', adobename='uni2268', texname='lneqq' },
---~ [0x02269] = { mathclass='relation', adobename='uni2269', texname='gneqq' },
---~ [0x0226A] = { mathclass='relation', adobename='uni226A', texname='ll' },
---~ [0x0226B] = { mathclass='relation', adobename='uni226B', texname='gg' },
---~ [0x0226C] = { mathclass='relation', adobename='uni226C', texname='between' },
---~ [0x0226D] = { mathclass='relation', adobename='uni226D', texname='nasymp' },
---~ [0x0226E] = { mathclass='relation', adobename='uni226E', texname='nless' },
---~ [0x0226F] = { mathclass='relation', adobename='uni226F', texname='ngtr' },
---~ [0x02270] = { mathclass='relation', adobename='uni2270', texname='nleq' },
---~ [0x02271] = { mathclass='relation', adobename='uni2271', texname='ngeq' },
---~ [0x02272] = { mathclass='relation', adobename='uni2272', texname='lesssim' },
---~ [0x02273] = { mathclass='relation', adobename='uni2273', texname='gtrsim' },
---~ [0x02274] = { mathclass='relation', adobename='uni2274', texname='nlesssim' },
---~ [0x02275] = { mathclass='relation', adobename='uni2275', texname='ngtrsim' },
---~ [0x02276] = { mathclass='relation', adobename='uni2276', texname='lessgtr' },
---~ [0x02277] = { mathclass='relation', adobename='uni2277', texname='gtrless' },
---~ [0x02278] = { mathclass='relation', adobename='uni2278', texname='nlessgtr' },
---~ [0x02279] = { mathclass='relation', adobename='uni2279', texname='ngtrless' },
---~ [0x0227A] = { mathclass='relation', adobename='uni227A', texname='prec' },
---~ [0x0227B] = { mathclass='relation', adobename='uni227B', texname='succ' },
---~ [0x0227C] = { mathclass='relation', adobename='uni227C', texname='preccurlyeq' },
---~ [0x0227D] = { mathclass='relation', adobename='uni227D', texname='succcurlyeq' },
---~ [0x0227E] = { mathclass='relation', adobename='uni227E', texname='precsim' },
---~ [0x0227F] = { mathclass='relation', adobename='uni227F', texname='succsim' },
---~ [0x02280] = { mathclass='relation', adobename='uni2280', texname='nprec' },
---~ [0x02281] = { mathclass='relation', adobename='uni2281', texname='nsucc' },
---~ [0x02282] = { mathclass='relation', adobename='uni2282', texname='subset' },
---~ [0x02283] = { mathclass='relation', adobename='uni2283', texname='supset' },
---~ [0x02284] = { mathclass='relation', adobename='uni2284', texname='nsubset' },
---~ [0x02285] = { mathclass='relation', adobename='uni2285', texname='nsupset' },
---~ [0x02286] = { mathclass='relation', adobename='uni2286', texname='subseteq' },
---~ [0x02287] = { mathclass='relation', adobename='uni2287', texname='supseteq' },
---~ [0x02288] = { mathclass='relation', adobename='uni2288', texname='nsubseteq' },
---~ [0x02289] = { mathclass='relation', adobename='uni2289', texname='nsupseteq' },
---~ [0x0228A] = { mathclass='relation', adobename='uni228A', texname='subsetneq' },
---~ [0x0228B] = { mathclass='relation', adobename='uni228B', texname='supsetneq' },
---~ [0x0228C] = { mathclass='unknown', adobename='uni228C', texname='cupleftarrow' },
---~ [0x0228D] = { mathclass='binary', adobename='uni228D', texname='cupdot' },
---~ [0x0228E] = { mathclass='binary', adobename='uni228E', texname='uplus' },
---~ [0x0228F] = { mathclass='relation', adobename='uni228F', texname='sqsubset' },
---~ [0x02290] = { mathclass='relation', adobename='uni2290', texname='sqsupset' },
---~ [0x02291] = { mathclass='relation', adobename='uni2291', texname='sqsubseteq' },
---~ [0x02292] = { mathclass='relation', adobename='uni2292', texname='sqsupseteq' },
---~ [0x02293] = { mathclass='binary', adobename='uni2293', texname='sqcap' },
---~ [0x02294] = { mathclass='binary', adobename='uni2294', texname='sqcup' },
---~ [0x02295] = { mathclass='binary', adobename='uni2295', texname='oplus' },
---~ [0x02296] = { mathclass='binary', adobename='uni2296', texname='ominus' },
---~ [0x02297] = { mathclass='binary', adobename='uni2297', texname='otimes' },
---~ [0x02298] = { mathclass='binary', adobename='uni2298', texname='oslash' },
---~ [0x02299] = { mathclass='binary', adobename='uni2299', texname='odot' },
---~ [0x0229A] = { mathclass='binary', adobename='uni229A', texname='circledcirc' },
---~ [0x0229B] = { mathclass='binary', adobename='uni229B', texname='circledast' },
---~ [0x0229C] = { mathclass='unknown', adobename='uni229C', texname='circledequal' },
---~ [0x0229D] = { mathclass='binary', adobename='uni229D', texname='circleddash' },
---~ [0x0229E] = { mathclass='binary', adobename='uni229E', texname='boxplus' },
---~ [0x0229F] = { mathclass='binary', adobename='uni229F', texname='boxminus' },
---~ [0x022A0] = { mathclass='binary', adobename='uni22A0', texname='boxtimes' },
---~ [0x022A1] = { mathclass='binary', adobename='uni22A1', texname='boxdot' },
---~ [0x022A2] = { mathclass='relation', adobename='uni22A2', texname='vdash' },
---~ [0x022A3] = { mathclass='relation', adobename='uni22A3', texname='dashv' },
---~ [0x022A4] = { mathclass='normal', adobename='uni22A4', texname='top' },
---~ [0x022A5] = { mathclass='normal', adobename='uni22A5', texname='bot' },
---~ [0x022A6] = { mathclass='relation', adobename='uni22A6', texname='assert' },
---~ [0x022A7] = { mathclass='relation', adobename='uni22A7', texname='models' },
---~ [0x022A8] = { mathclass='relation', adobename='uni22A8', texname='vDash' },
---~ [0x022A9] = { mathclass='relation', adobename='uni22A9', texname='Vdash' },
---~ [0x022AA] = { mathclass='relation', adobename='uni22AA', texname='Vvdash' },
---~ [0x022AB] = { mathclass='relation', adobename='uni22AB', texname='VDash' },
---~ [0x022AC] = { mathclass='relation', adobename='uni22AC', texname='nvdash' },
---~ [0x022AD] = { mathclass='relation', adobename='uni22AD', texname='nvDash' },
---~ [0x022AE] = { mathclass='relation', adobename='uni22AE', texname='nVdash' },
---~ [0x022AF] = { mathclass='relation', adobename='uni22AF', texname='nVDash' },
---~ [0x022B0] = { mathclass='relation', adobename='uni22B0', texname='prurel' },
---~ [0x022B1] = { mathclass='relation', adobename='uni22B1', texname='scurel' },
---~ [0x022B2] = { mathclass='relation', adobename='uni22B2', texname='vartriangleleft' },
---~ [0x022B3] = { mathclass='relation', adobename='uni22B3', texname='vartriangleright' },
---~ [0x022B4] = { mathclass='relation', adobename='uni22B4', texname='trianglelefteq' },
---~ [0x022B5] = { mathclass='relation', adobename='uni22B5', texname='trianglerighteq' },
---~ [0x022B6] = { mathclass='relation', adobename='uni22B6', texname='origof' },
---~ [0x022B7] = { mathclass='relation', adobename='uni22B7', texname='imageof' },
---~ [0x022B8] = { mathclass='relation', adobename='uni22B8', texname='multimap' },
---~ [0x022B9] = { mathclass='unknown', adobename='uni22B9', texname='hermitmatrix' },
---~ [0x022BA] = { mathclass='binary', adobename='uni22BA', texname='intercal' },
---~ [0x022BB] = { mathclass='binary', adobename='uni22BB', texname='veebar' },
---~ [0x022BC] = { mathclass='binary', adobename='uni22BC', texname='barwedge' },
---~ [0x022BD] = { mathclass='binary', adobename='uni22BD', texname='barvee' },
---~ [0x022BE] = { mathclass='unknown', adobename='uni22BE', texname='measuredrightangle' },
---~ [0x022BF] = { mathclass='unknown', adobename='uni22BF', texname='varlrtriangle' },
---~ [0x022C0] = { mathclass='large', adobename='uni22C0', texname='bigwedge' },
---~ [0x022C1] = { mathclass='large', adobename='uni22C1', texname='bigvee' },
---~ [0x022C2] = { mathclass='large', adobename='uni22C2', texname='bigcap' },
---~ [0x022C3] = { mathclass='large', adobename='uni22C3', texname='bigcup' },
---~ [0x022C4] = { mathclass='binary', adobename='uni22C4', texname='smwhtdiamond' },
---~ [0x022C5] = { mathclass='binary', adobename='uni22C5', texname='cdot' },
---~ [0x022C6] = { mathclass='binary', adobename='uni22C6', texname='star' },
---~ [0x022C7] = { mathclass='binary', adobename='uni22C7', texname='divideontimes' },
---~ [0x022C8] = { mathclass='relation', adobename='uni22C8', texname='bowtie' },
---~ [0x022C9] = { mathclass='binary', adobename='uni22C9', texname='ltimes' },
---~ [0x022CA] = { mathclass='binary', adobename='uni22CA', texname='rtimes' },
---~ [0x022CB] = { mathclass='binary', adobename='uni22CB', texname='leftthreetimes' },
---~ [0x022CC] = { mathclass='binary', adobename='uni22CC', texname='rightthreetimes' },
---~ [0x022CD] = { mathclass='relation', adobename='uni22CD', texname='backsimeq' },
---~ [0x022CE] = { mathclass='binary', adobename='uni22CE', texname='curlyvee' },
---~ [0x022CF] = { mathclass='binary', adobename='uni22CF', texname='curlywedge' },
---~ [0x022D0] = { mathclass='relation', adobename='uni22D0', texname='Subset' },
---~ [0x022D1] = { mathclass='relation', adobename='uni22D1', texname='Supset' },
---~ [0x022D2] = { mathclass='binary', adobename='uni22D2', texname='Cap' },
---~ [0x022D3] = { mathclass='binary', adobename='uni22D3', texname='Cup' },
---~ [0x022D4] = { mathclass='relation', adobename='uni22D4', texname='pitchfork' },
---~ [0x022D5] = { mathclass='unknown', adobename='uni22D5', texname='equalparallel' },
---~ [0x022D6] = { mathclass='relation', adobename='uni22D6', texname='lessdot' },
---~ [0x022D7] = { mathclass='relation', adobename='uni22D7', texname='gtrdot' },
---~ [0x022D8] = { mathclass='relation', adobename='uni22D8', texname='lll' },
---~ [0x022D9] = { mathclass='relation', adobename='uni22D9', texname='ggg' },
---~ [0x022DA] = { mathclass='relation', adobename='uni22DA', texname='lesseqgtr' },
---~ [0x022DB] = { mathclass='relation', adobename='uni22DB', texname='gtreqless' },
---~ [0x022DC] = { mathclass='relation', adobename='uni22DC', texname='eqless' },
---~ [0x022DD] = { mathclass='relation', adobename='uni22DD', texname='eqgtr' },
---~ [0x022DE] = { mathclass='relation', adobename='uni22DE', texname='curlyeqprec' },
---~ [0x022DF] = { mathclass='relation', adobename='uni22DF', texname='curlyeqsucc' },
---~ [0x022E0] = { mathclass='relation', adobename='uni22E0', texname='npreccurlyeq' },
---~ [0x022E1] = { mathclass='relation', adobename='uni22E1', texname='nsucccurlyeq' },
---~ [0x022E2] = { mathclass='relation', adobename='uni22E2', texname='nsqsubseteq' },
---~ [0x022E3] = { mathclass='relation', adobename='uni22E3', texname='nsqsupseteq' },
---~ [0x022E4] = { mathclass='relation', adobename='uni22E4', texname='sqsubsetneq' },
---~ [0x022E5] = { mathclass='relation', adobename='uni22E5', texname='sqsupsetneq' },
---~ [0x022E6] = { mathclass='relation', adobename='uni22E6', texname='lnsim' },
---~ [0x022E7] = { mathclass='relation', adobename='uni22E7', texname='gnsim' },
---~ [0x022E8] = { mathclass='relation', adobename='uni22E8', texname='precnsim' },
---~ [0x022E9] = { mathclass='relation', adobename='uni22E9', texname='succnsim' },
---~ [0x022EA] = { mathclass='relation', adobename='uni22EA', texname='ntriangleleft' },
---~ [0x022EB] = { mathclass='relation', adobename='uni22EB', texname='ntriangleright' },
---~ [0x022EC] = { mathclass='relation', adobename='uni22EC', texname='ntrianglelefteq' },
---~ [0x022ED] = { mathclass='relation', adobename='uni22ED', texname='ntrianglerighteq' },
---~ [0x022EE] = { mathclass='unknown', adobename='uni22EE', texname='vdots' },
---~ [0x022EF] = { mathclass='unknown', adobename='uni22EF', texname='cdots' },
---~ [0x022F0] = { mathclass='unknown', adobename='uni22F0', texname='adots' },
---~ [0x022F1] = { mathclass='unknown', adobename='uni22F1', texname='ddots' },
---~ [0x022F2] = { mathclass='relation', adobename='uni22F2', texname='disin' },
---~ [0x022F3] = { mathclass='relation', adobename='uni22F3', texname='varisins' },
---~ [0x022F4] = { mathclass='relation', adobename='uni22F4', texname='isins' },
---~ [0x022F5] = { mathclass='relation', adobename='uni22F5', texname='isindot' },
---~ [0x022F6] = { mathclass='relation', adobename='uni22F6', texname='varisinobar' },
---~ [0x022F7] = { mathclass='relation', adobename='uni22F7', texname='isinobar' },
---~ [0x022F8] = { mathclass='relation', adobename='uni22F8', texname='isinvb' },
---~ [0x022F9] = { mathclass='relation', adobename='uni22F9', texname='isinE' },
---~ [0x022FA] = { mathclass='relation', adobename='uni22FA', texname='nisd' },
---~ [0x022FB] = { mathclass='relation', adobename='uni22FB', texname='varnis' },
---~ [0x022FC] = { mathclass='relation', adobename='uni22FC', texname='nis' },
---~ [0x022FD] = { mathclass='relation', adobename='uni22FD', texname='varniobar' },
---~ [0x022FE] = { mathclass='relation', adobename='uni22FE', texname='niobar' },
---~ [0x022FF] = { mathclass='relation', adobename='uni22FF', texname='bagmember' },
---~ [0x02300] = { mathclass='unknown', adobename='uni2300', texname='diameter' },
---~ [0x02302] = { mathclass='unknown', adobename='uni2302', texname='house' },
---~ [0x02305] = { mathclass='binary', adobename='uni2305', texname='varbarwedge' },
---~ [0x02306] = { mathclass='binary', adobename='uni2306', texname='vardoublebarwedge' },
---~ [0x02308] = { mathclass='opening', adobename='uni2308', texname='lceil' },
---~ [0x02309] = { mathclass='closing', adobename='uni2309', texname='rceil' },
---~ [0x0230A] = { mathclass='opening', adobename='uni230A', texname='lfloor' },
---~ [0x0230B] = { mathclass='closing', adobename='uni230B', texname='rfloor' },
---~ [0x0230C] = { mathclass='fence', adobename='uni230C', texname='drcrop' },
---~ [0x0230D] = { mathclass='fence', adobename='uni230D', texname='dlcrop' },
---~ [0x0230E] = { mathclass='fence', adobename='uni230E', texname='urcrop' },
---~ [0x0230F] = { mathclass='fence', adobename='uni230F', texname='ulcrop' },
---~ [0x02310] = { mathclass='unknown', adobename='uni2310', texname='invnot' },
---~ [0x02311] = { mathclass='unknown', adobename='uni2311', texname='sqlozenge' },
---~ [0x02312] = { mathclass='unknown', adobename='uni2312', texname='profline' },
---~ [0x02313] = { mathclass='unknown', adobename='uni2313', texname='profsurf' },
---~ [0x02315] = { mathclass='unknown', adobename='uni2315', texname='recorder' },
---~ [0x02316] = { mathclass='unknown', adobename='uni2316', texname='target' },
---~ [0x02317] = { mathclass='unknown', adobename='uni2317', texname='viewdata' },
---~ [0x02318] = { mathclass='unknown', adobename='uni2318', texname='cloverleaf' },
---~ [0x02319] = { mathclass='unknown', adobename='uni2319', texname='turnednot' },
---~ [0x0231A] = { mathclass='unknown', adobename='uni231A', texname='watchicon' },
---~ [0x0231C] = { mathclass='opening', adobename='uni231C', texname='ulcorner' },
---~ [0x0231D] = { mathclass='closing', adobename='uni231D', texname='urcorner' },
---~ [0x0231E] = { mathclass='opening', adobename='uni231E', texname='llcorner' },
---~ [0x0231F] = { mathclass='closing', adobename='uni231F', texname='lrcorner' },
---~ [0x02320] = { mathclass='unknown', adobename='uni2320', texname='inttop' },
---~ [0x02321] = { mathclass='unknown', adobename='uni2321', texname='intbottom' },
---~ [0x02322] = { mathclass='relation', adobename='uni2322', texname='frown' },
---~ [0x02323] = { mathclass='relation', adobename='uni2323', texname='smile' },
---~ [0x02329] = { mathclass='unknown', adobename='uni2329', texname='clangle' },
---~ [0x0232A] = { mathclass='unknown', adobename='uni232A', texname='crangle' },
---~ [0x0232C] = { mathclass='unknown', adobename='uni232C', texname='varhexagonlrbonds' },
---~ [0x0232D] = { mathclass='unknown', adobename='uni232D', texname='cylcty' },
---~ [0x0232E] = { mathclass='unknown', adobename='uni232E', texname='profalar' },
---~ [0x02332] = { mathclass='unknown', adobename='uni2332', texname='conictaper' },
---~ [0x02336] = { mathclass='unknown', adobename='uni2336', texname='topbot' },
---~ [0x0233D] = { mathclass='binary', adobename='uni233D', texname='obar' },
---~ [0x0233F] = { mathclass='relation', adobename='uni233F', texname='APLnotslash' },
---~ [0x02340] = { mathclass='unknown', adobename='uni2340', texname='APLnotbackslash' },
---~ [0x02353] = { mathclass='unknown', adobename='uni2353', texname='APLboxupcaret' },
---~ [0x02370] = { mathclass='unknown', adobename='uni2370', texname='APLboxquestion' },
---~ [0x0237C] = { mathclass='unknown', adobename='uni237C', texname='rangledownzigzagarrow' },
---~ [0x02393] = { mathclass='unknown', adobename='uni2393', texname='dircurrent' },
---~ [0x02394] = { mathclass='normal', adobename='uni2394', texname='hexagon' },
---~ [0x0239B] = { mathclass='unknown', adobename='uni239B', texname='lparenuend' },
---~ [0x0239C] = { mathclass='unknown', adobename='uni239C', texname='lparenextender' },
---~ [0x0239D] = { mathclass='unknown', adobename='uni239D', texname='lparenlend' },
---~ [0x0239E] = { mathclass='unknown', adobename='uni239E', texname='rparenuend' },
---~ [0x0239F] = { mathclass='unknown', adobename='uni239F', texname='rparenextender' },
---~ [0x023A0] = { mathclass='unknown', adobename='uni23A0', texname='rparenlend' },
---~ [0x023A1] = { mathclass='unknown', adobename='uni23A1', texname='lbrackuend' },
---~ [0x023A2] = { mathclass='unknown', adobename='uni23A2', texname='lbrackextender' },
---~ [0x023A3] = { mathclass='unknown', adobename='uni23A3', texname='lbracklend' },
---~ [0x023A4] = { mathclass='unknown', adobename='uni23A4', texname='rbrackuend' },
---~ [0x023A5] = { mathclass='unknown', adobename='uni23A5', texname='rbrackextender' },
---~ [0x023A6] = { mathclass='unknown', adobename='uni23A6', texname='rbracklend' },
---~ [0x023A7] = { mathclass='unknown', adobename='uni23A7', texname='lbraceuend' },
---~ [0x023A8] = { mathclass='unknown', adobename='uni23A8', texname='lbracemid' },
---~ [0x023A9] = { mathclass='unknown', adobename='uni23A9', texname='lbracelend' },
---~ [0x023AA] = { mathclass='unknown', adobename='uni23AA', texname='vbraceextender' },
---~ [0x023AB] = { mathclass='unknown', adobename='uni23AB', texname='rbraceuend' },
---~ [0x023AC] = { mathclass='unknown', adobename='uni23AC', texname='rbracemid' },
---~ [0x023AD] = { mathclass='unknown', adobename='uni23AD', texname='rbracelend' },
---~ [0x023AE] = { mathclass='unknown', adobename='uni23AE', texname='intextender' },
---~ [0x023AF] = { mathclass='unknown', adobename='uni23AF', texname='hlineextender' },
---~ [0x023B0] = { mathclass='unknown', adobename='uni23B0', texname='lmoustache' },
---~ [0x023B1] = { mathclass='unknown', adobename='uni23B1', texname='rmoustache' },
---~ [0x023B2] = { mathclass='unknown', adobename='uni23B2', texname='sumtop' },
---~ [0x023B3] = { mathclass='unknown', adobename='uni23B3', texname='sumbottom' },
---~ [0x023B4] = { mathclass='unknown', adobename='uni23B4', texname='overbracket' },
---~ [0x023B5] = { mathclass='unknown', adobename='uni23B5', texname='underbracket' },
---~ [0x023B6] = { mathclass='unknown', adobename='uni23B6', texname='bbrktbrk' },
---~ [0x023B7] = { mathclass='unknown', adobename='uni23B7', texname='sqrtbottom' },
---~ [0x023B8] = { mathclass='unknown', adobename='uni23B8', texname='lvboxline' },
---~ [0x023B9] = { mathclass='unknown', adobename='uni23B9', texname='rvboxline' },
---~ [0x023CE] = { mathclass='unknown', adobename='uni23CE', texname='varcarriagereturn' },
---~ [0x023DC] = { mathclass='unknown', adobename='uni23DC', texname='overparen' },
---~ [0x023DD] = { mathclass='unknown', adobename='uni23DD', texname='underparen' },
---~ [0x023DE] = { mathclass='unknown', adobename='uni23DE', texname='overbrace' },
---~ [0x023DF] = { mathclass='unknown', adobename='uni23DF', texname='underbrace' },
---~ [0x023E0] = { mathclass='unknown', adobename='uni23E0', texname='obrbrak' },
---~ [0x023E1] = { mathclass='unknown', adobename='uni23E1', texname='ubrbrak' },
---~ [0x023E2] = { mathclass='normal', adobename='uni23E2', texname='trapezium' },
---~ [0x023E3] = { mathclass='normal', adobename='uni23E3', texname='benzenr' },
---~ [0x023E4] = { mathclass='normal', adobename='uni23E4', texname='strns' },
---~ [0x023E5] = { mathclass='normal', adobename='uni23E5', texname='fltns' },
---~ [0x023E6] = { mathclass='normal', adobename='uni23E6', texname='accurrent' },
---~ [0x023E7] = { mathclass='normal', adobename='uni23E7', texname='elinters' },
---~ [0x02422] = { mathclass='unknown', adobename='uni2422', texname='textblank' },
---~ [0x02423] = { mathclass='normal', adobename='uni2423', texname='textvisiblespace' },
---~ [0x02460] = { mathclass='normal', adobename='uni2460', texname='circledone' },
---~ [0x02461] = { mathclass='normal', adobename='uni2461', texname='circledtwo' },
---~ [0x02462] = { mathclass='normal', adobename='uni2462', texname='circledthree' },
---~ [0x02463] = { mathclass='normal', adobename='uni2463', texname='circledfour' },
---~ [0x02464] = { mathclass='normal', adobename='uni2464', texname='circledfive' },
---~ [0x02465] = { mathclass='normal', adobename='uni2465', texname='circledsix' },
---~ [0x02466] = { mathclass='normal', adobename='uni2466', texname='circledseven' },
---~ [0x02467] = { mathclass='normal', adobename='uni2467', texname='circledeight' },
---~ [0x02468] = { mathclass='normal', adobename='uni2468', texname='circlednine' },
---~ [0x024B6] = { mathclass='normal', adobename='uni24B6', texname='circledA' },
---~ [0x024B7] = { mathclass='normal', adobename='uni24B7', texname='circledB' },
---~ [0x024B8] = { mathclass='normal', adobename='uni24B8', texname='circledC' },
---~ [0x024B9] = { mathclass='normal', adobename='uni24B9', texname='circledD' },
---~ [0x024BA] = { mathclass='normal', adobename='uni24BA', texname='circledE' },
---~ [0x024BB] = { mathclass='normal', adobename='uni24BB', texname='circledF' },
---~ [0x024BC] = { mathclass='normal', adobename='uni24BC', texname='circledG' },
---~ [0x024BD] = { mathclass='normal', adobename='uni24BD', texname='circledH' },
---~ [0x024BE] = { mathclass='normal', adobename='uni24BE', texname='circledI' },
---~ [0x024BF] = { mathclass='normal', adobename='uni24BF', texname='circledJ' },
---~ [0x024C0] = { mathclass='normal', adobename='uni24C0', texname='circledK' },
---~ [0x024C1] = { mathclass='normal', adobename='uni24C1', texname='circledL' },
---~ [0x024C2] = { mathclass='normal', adobename='uni24C2', texname='circledM' },
---~ [0x024C3] = { mathclass='normal', adobename='uni24C3', texname='circledN' },
---~ [0x024C4] = { mathclass='normal', adobename='uni24C4', texname='circledO' },
---~ [0x024C5] = { mathclass='normal', adobename='uni24C5', texname='circledP' },
---~ [0x024C6] = { mathclass='normal', adobename='uni24C6', texname='circledQ' },
---~ [0x024C7] = { mathclass='normal', adobename='uni24C7', texname='circledR' },
---~ [0x024C8] = { mathclass='normal', adobename='uni24C8', texname='circledS' },
---~ [0x024C9] = { mathclass='normal', adobename='uni24C9', texname='circledT' },
---~ [0x024CA] = { mathclass='normal', adobename='uni24CA', texname='circledU' },
---~ [0x024CB] = { mathclass='normal', adobename='uni24CB', texname='circledV' },
---~ [0x024CC] = { mathclass='normal', adobename='uni24CC', texname='circledW' },
---~ [0x024CD] = { mathclass='normal', adobename='uni24CD', texname='circledX' },
---~ [0x024CE] = { mathclass='normal', adobename='uni24CE', texname='circledY' },
---~ [0x024CF] = { mathclass='normal', adobename='uni24CF', texname='circledZ' },
---~ [0x024D0] = { mathclass='normal', adobename='uni24D0', texname='circleda' },
---~ [0x024D1] = { mathclass='normal', adobename='uni24D1', texname='circledb' },
---~ [0x024D2] = { mathclass='normal', adobename='uni24D2', texname='circledc' },
---~ [0x024D3] = { mathclass='normal', adobename='uni24D3', texname='circledd' },
---~ [0x024D4] = { mathclass='normal', adobename='uni24D4', texname='circlede' },
---~ [0x024D5] = { mathclass='normal', adobename='uni24D5', texname='circledf' },
---~ [0x024D6] = { mathclass='normal', adobename='uni24D6', texname='circledg' },
---~ [0x024D7] = { mathclass='normal', adobename='uni24D7', texname='circledh' },
---~ [0x024D8] = { mathclass='normal', adobename='uni24D8', texname='circledi' },
---~ [0x024D9] = { mathclass='normal', adobename='uni24D9', texname='circledj' },
---~ [0x024DA] = { mathclass='normal', adobename='uni24DA', texname='circledk' },
---~ [0x024DB] = { mathclass='normal', adobename='uni24DB', texname='circledl' },
---~ [0x024DC] = { mathclass='normal', adobename='uni24DC', texname='circledm' },
---~ [0x024DD] = { mathclass='normal', adobename='uni24DD', texname='circledn' },
---~ [0x024DE] = { mathclass='normal', adobename='uni24DE', texname='circledo' },
---~ [0x024DF] = { mathclass='normal', adobename='uni24DF', texname='circledp' },
---~ [0x024E0] = { mathclass='normal', adobename='uni24E0', texname='circledq' },
---~ [0x024E1] = { mathclass='normal', adobename='uni24E1', texname='circledr' },
---~ [0x024E2] = { mathclass='normal', adobename='uni24E2', texname='circleds' },
---~ [0x024E3] = { mathclass='normal', adobename='uni24E3', texname='circledt' },
---~ [0x024E4] = { mathclass='normal', adobename='uni24E4', texname='circledu' },
---~ [0x024E5] = { mathclass='normal', adobename='uni24E5', texname='circledv' },
---~ [0x024E6] = { mathclass='normal', adobename='uni24E6', texname='circledw' },
---~ [0x024E7] = { mathclass='normal', adobename='uni24E7', texname='circledx' },
---~ [0x024E8] = { mathclass='normal', adobename='uni24E8', texname='circledy' },
---~ [0x024E9] = { mathclass='normal', adobename='uni24E9', texname='circledz' },
---~ [0x024EA] = { mathclass='normal', adobename='uni24EA', texname='circledzero' },
---~ [0x02500] = { mathclass='unknown', adobename='uni2500', texname='bdhrule' },
---~ [0x02502] = { mathclass='unknown', adobename='uni2502', texname='bdvrule' },
---~ [0x02506] = { mathclass='unknown', adobename='uni2506', texname='bdtriplevdash' },
---~ [0x02508] = { mathclass='unknown', adobename='uni2508', texname='bdquadhdash' },
---~ [0x0250A] = { mathclass='unknown', adobename='uni250A', texname='bdquadvdash' },
---~ [0x0250C] = { mathclass='unknown', adobename='uni250C', texname='bddvrh' },
---~ [0x02510] = { mathclass='unknown', adobename='uni2510', texname='bddvlh' },
---~ [0x02514] = { mathclass='unknown', adobename='uni2514', texname='bduvrh' },
---~ [0x02518] = { mathclass='unknown', adobename='uni2518', texname='bduvlh' },
---~ [0x0251C] = { mathclass='unknown', adobename='uni251C', texname='bdbvrh' },
---~ [0x02524] = { mathclass='unknown', adobename='uni2524', texname='bdbvlh' },
---~ [0x0252C] = { mathclass='unknown', adobename='uni252C', texname='bddvbh' },
---~ [0x02534] = { mathclass='unknown', adobename='uni2534', texname='bduvbh' },
---~ [0x0253C] = { mathclass='unknown', adobename='uni253C', texname='bdbvbh' },
---~ [0x02550] = { mathclass='unknown', adobename='uni2550', texname='bdHrule' },
---~ [0x02551] = { mathclass='unknown', adobename='uni2551', texname='bdVrule' },
---~ [0x02552] = { mathclass='unknown', adobename='uni2552', texname='bddvrH' },
---~ [0x02553] = { mathclass='unknown', adobename='uni2553', texname='bddVrh' },
---~ [0x02554] = { mathclass='unknown', adobename='uni2554', texname='bddVrH' },
---~ [0x02555] = { mathclass='unknown', adobename='uni2555', texname='bddvlH' },
---~ [0x02556] = { mathclass='unknown', adobename='uni2556', texname='bddVlh' },
---~ [0x02557] = { mathclass='unknown', adobename='uni2557', texname='bddVlH' },
---~ [0x02558] = { mathclass='unknown', adobename='uni2558', texname='bduvrH' },
---~ [0x02559] = { mathclass='unknown', adobename='uni2559', texname='bduVrh' },
---~ [0x0255A] = { mathclass='unknown', adobename='uni255A', texname='bduVrH' },
---~ [0x0255B] = { mathclass='unknown', adobename='uni255B', texname='bduvlH' },
---~ [0x0255C] = { mathclass='unknown', adobename='uni255C', texname='bduVlh' },
---~ [0x0255D] = { mathclass='unknown', adobename='uni255D', texname='bduVlH' },
---~ [0x0255E] = { mathclass='unknown', adobename='uni255E', texname='bdbvrH' },
---~ [0x0255F] = { mathclass='unknown', adobename='uni255F', texname='bdbVrh' },
---~ [0x02560] = { mathclass='unknown', adobename='uni2560', texname='bdbVrH' },
---~ [0x02561] = { mathclass='unknown', adobename='uni2561', texname='bdbvlH' },
---~ [0x02562] = { mathclass='unknown', adobename='uni2562', texname='bdbVlh' },
---~ [0x02563] = { mathclass='unknown', adobename='uni2563', texname='bdbVlH' },
---~ [0x02564] = { mathclass='unknown', adobename='uni2564', texname='bddvbH' },
---~ [0x02565] = { mathclass='unknown', adobename='uni2565', texname='bddVbh' },
---~ [0x02566] = { mathclass='unknown', adobename='uni2566', texname='bddVbH' },
---~ [0x02567] = { mathclass='unknown', adobename='uni2567', texname='bduvbH' },
---~ [0x02568] = { mathclass='unknown', adobename='uni2568', texname='bduVbh' },
---~ [0x02569] = { mathclass='unknown', adobename='uni2569', texname='bduVbH' },
---~ [0x0256A] = { mathclass='unknown', adobename='uni256A', texname='bdbvbH' },
---~ [0x0256B] = { mathclass='unknown', adobename='uni256B', texname='bdbVbh' },
---~ [0x0256C] = { mathclass='unknown', adobename='uni256C', texname='bdbVbH' },
---~ [0x02571] = { mathclass='unknown', adobename='uni2571', texname='bdnesw' },
---~ [0x02572] = { mathclass='unknown', adobename='uni2572', texname='bdnwse' },
---~ [0x02580] = { mathclass='unknown', adobename='uni2580', texname='blockuphalf' },
---~ [0x02584] = { mathclass='unknown', adobename='uni2584', texname='blocklowhalf' },
---~ [0x02588] = { mathclass='unknown', adobename='uni2588', texname='blockfull' },
---~ [0x0258C] = { mathclass='unknown', adobename='uni258C', texname='blocklefthalf' },
---~ [0x02590] = { mathclass='unknown', adobename='uni2590', texname='blockrighthalf' },
---~ [0x02591] = { mathclass='unknown', adobename='uni2591', texname='blockqtrshaded' },
---~ [0x02592] = { mathclass='unknown', adobename='uni2592', texname='blockhalfshaded' },
---~ [0x02593] = { mathclass='unknown', adobename='uni2593', texname='blockthreeqtrshaded' },
---~ [0x025A0] = { mathclass='unknown', adobename='uni25A0', texname='mdlgblksquare' },
---~ [0x025A1] = { mathclass='unknown', adobename='uni25A1', texname='mdlgwhtsquare' },
---~ [0x025A2] = { mathclass='unknown', adobename='uni25A2', texname='squoval' },
---~ [0x025A3] = { mathclass='unknown', adobename='uni25A3', texname='blackinwhitesquare' },
---~ [0x025A4] = { mathclass='unknown', adobename='uni25A4', texname='squarehfill' },
---~ [0x025A5] = { mathclass='unknown', adobename='uni25A5', texname='squarevfill' },
---~ [0x025A6] = { mathclass='unknown', adobename='uni25A6', texname='squarehvfill' },
---~ [0x025A7] = { mathclass='unknown', adobename='uni25A7', texname='squarenwsefill' },
---~ [0x025A8] = { mathclass='unknown', adobename='uni25A8', texname='squareneswfill' },
---~ [0x025A9] = { mathclass='normal', adobename='uni25A9', texname='squarecrossfill' },
---~ [0x025AA] = { mathclass='unknown', adobename='uni25AA', texname='smblksquare' },
---~ [0x025AB] = { mathclass='normal', adobename='uni25AB', texname='smwhtsquare' },
---~ [0x025AC] = { mathclass='unknown', adobename='uni25AC', texname='hrectangleblack' },
---~ [0x025AD] = { mathclass='unknown', adobename='uni25AD', texname='hrectangle' },
---~ [0x025AE] = { mathclass='unknown', adobename='uni25AE', texname='vrectangleblack' },
---~ [0x025AF] = { mathclass='unknown', adobename='uni25AF', texname='vrectangle' },
---~ [0x025B0] = { mathclass='unknown', adobename='uni25B0', texname='parallelogramblack' },
---~ [0x025B1] = { mathclass='unknown', adobename='uni25B1', texname='parallelogram' },
---~ [0x025B2] = { mathclass='unknown', adobename='uni25B2', texname='bigblacktriangleup' },
---~ [0x025B3] = { mathclass='unknown', adobename='uni25B3', texname='bigtriangleup' },
---~ [0x025B4] = { mathclass='unknown', adobename='uni25B4', texname='blacktriangle' },
---~ [0x025B5] = { mathclass='unknown', adobename='uni25B5', texname='vartriangle' },
---~ [0x025B6] = { mathclass='unknown', adobename='uni25B6', texname='blacktriangleright' },
---~ [0x025B7] = { mathclass='binary', adobename='uni25B7', texname='triangleright' },
---~ [0x025B8] = { mathclass='unknown', adobename='uni25B8', texname='smallblacktriangleright' },
---~ [0x025B9] = { mathclass='unknown', adobename='uni25B9', texname='smalltriangleright' },
---~ [0x025BA] = { mathclass='unknown', adobename='uni25BA', texname='blackpointerright' },
---~ [0x025BB] = { mathclass='unknown', adobename='uni25BB', texname='whitepointerright' },
---~ [0x025BC] = { mathclass='unknown', adobename='uni25BC', texname='bigblacktriangledown' },
---~ [0x025BD] = { mathclass='unknown', adobename='uni25BD', texname='bigtriangledown' },
---~ [0x025BE] = { mathclass='unknown', adobename='uni25BE', texname='blacktriangledown' },
---~ [0x025BF] = { mathclass='unknown', adobename='uni25BF', texname='triangledown' },
---~ [0x025C0] = { mathclass='unknown', adobename='uni25C0', texname='blacktriangleleft' },
---~ [0x025C1] = { mathclass='binary', adobename='uni25C1', texname='triangleleft' },
---~ [0x025C2] = { mathclass='unknown', adobename='uni25C2', texname='smallblacktriangleleft' },
---~ [0x025C3] = { mathclass='unknown', adobename='uni25C3', texname='smalltriangleleft' },
---~ [0x025C4] = { mathclass='unknown', adobename='uni25C4', texname='blackpointerleft' },
---~ [0x025C5] = { mathclass='unknown', adobename='uni25C5', texname='whitepointerleft' },
---~ [0x025C6] = { mathclass='normal', adobename='uni25C6', texname='mdlgblkdiamond' },
---~ [0x025C7] = { mathclass='normal', adobename='uni25C7', texname='mdlgwhtdiamond' },
---~ [0x025C8] = { mathclass='unknown', adobename='uni25C8', texname='blackinwhitediamond' },
---~ [0x025C9] = { mathclass='unknown', adobename='uni25C9', texname='fisheye' },
---~ [0x025CA] = { mathclass='unknown', adobename='uni25CA', texname='mdlgwhtlozenge' },
---~ [0x025CB] = { mathclass='binary', adobename='uni25CB', texname='mdlgwhtcircle' },
---~ [0x025CC] = { mathclass='unknown', adobename='uni25CC', texname='dottedcircle' },
---~ [0x025CD] = { mathclass='unknown', adobename='uni25CD', texname='circlevertfill' },
---~ [0x025CE] = { mathclass='unknown', adobename='uni25CE', texname='bullseye' },
---~ [0x025CF] = { mathclass='unknown', adobename='uni25CF', texname='mdlgblkcircle' },
---~ [0x025D0] = { mathclass='unknown', adobename='uni25D0', texname='circlelefthalfblack' },
---~ [0x025D1] = { mathclass='unknown', adobename='uni25D1', texname='circlerighthalfblack' },
---~ [0x025D2] = { mathclass='unknown', adobename='uni25D2', texname='circlebottomhalfblack' },
---~ [0x025D3] = { mathclass='unknown', adobename='uni25D3', texname='circletophalfblack' },
---~ [0x025D4] = { mathclass='unknown', adobename='uni25D4', texname='circleurquadblack' },
---~ [0x025D5] = { mathclass='unknown', adobename='uni25D5', texname='blackcircleulquadwhite' },
---~ [0x025D6] = { mathclass='unknown', adobename='uni25D6', texname='blacklefthalfcircle' },
---~ [0x025D7] = { mathclass='unknown', adobename='uni25D7', texname='blackrighthalfcircle' },
---~ [0x025D8] = { mathclass='unknown', adobename='uni25D8', texname='inversebullet' },
---~ [0x025D9] = { mathclass='unknown', adobename='uni25D9', texname='inversewhitecircle' },
---~ [0x025DA] = { mathclass='unknown', adobename='uni25DA', texname='invwhiteupperhalfcircle' },
---~ [0x025DB] = { mathclass='unknown', adobename='uni25DB', texname='invwhitelowerhalfcircle' },
---~ [0x025DC] = { mathclass='unknown', adobename='uni25DC', texname='ularc' },
---~ [0x025DD] = { mathclass='unknown', adobename='uni25DD', texname='urarc' },
---~ [0x025DE] = { mathclass='unknown', adobename='uni25DE', texname='lrarc' },
---~ [0x025DF] = { mathclass='unknown', adobename='uni25DF', texname='llarc' },
---~ [0x025E0] = { mathclass='unknown', adobename='uni25E0', texname='topsemicircle' },
---~ [0x025E1] = { mathclass='unknown', adobename='uni25E1', texname='botsemicircle' },
---~ [0x025E2] = { mathclass='unknown', adobename='uni25E2', texname='lrblacktriangle' },
---~ [0x025E3] = { mathclass='unknown', adobename='uni25E3', texname='llblacktriangle' },
---~ [0x025E4] = { mathclass='unknown', adobename='uni25E4', texname='ulblacktriangle' },
---~ [0x025E5] = { mathclass='unknown', adobename='uni25E5', texname='urblacktriangle' },
---~ [0x025E6] = { mathclass='unknown', adobename='uni25E6', texname='smwhtcircle' },
---~ [0x025E7] = { mathclass='unknown', adobename='uni25E7', texname='squareleftblack' },
---~ [0x025E8] = { mathclass='unknown', adobename='uni25E8', texname='squarerightblack' },
---~ [0x025E9] = { mathclass='unknown', adobename='uni25E9', texname='squareulblack' },
---~ [0x025EA] = { mathclass='unknown', adobename='uni25EA', texname='squarelrblack' },
---~ [0x025EB] = { mathclass='binary', adobename='uni25EB', texname='boxbar' },
---~ [0x025EC] = { mathclass='unknown', adobename='uni25EC', texname='trianglecdot' },
---~ [0x025ED] = { mathclass='unknown', adobename='uni25ED', texname='triangleleftblack' },
---~ [0x025EE] = { mathclass='unknown', adobename='uni25EE', texname='trianglerightblack' },
---~ [0x025EF] = { mathclass='unknown', adobename='uni25EF', texname='lgwhtcircle' },
---~ [0x025F0] = { mathclass='unknown', adobename='uni25F0', texname='squareulquad' },
---~ [0x025F1] = { mathclass='unknown', adobename='uni25F1', texname='squarellquad' },
---~ [0x025F2] = { mathclass='unknown', adobename='uni25F2', texname='squarelrquad' },
---~ [0x025F3] = { mathclass='unknown', adobename='uni25F3', texname='squareurquad' },
---~ [0x025F4] = { mathclass='unknown', adobename='uni25F4', texname='circleulquad' },
---~ [0x025F5] = { mathclass='unknown', adobename='uni25F5', texname='circlellquad' },
---~ [0x025F6] = { mathclass='unknown', adobename='uni25F6', texname='circlelrquad' },
---~ [0x025F7] = { mathclass='unknown', adobename='uni25F7', texname='circleurquad' },
---~ [0x025F8] = { mathclass='unknown', adobename='uni25F8', texname='ultriangle' },
---~ [0x025F9] = { mathclass='unknown', adobename='uni25F9', texname='urtriangle' },
---~ [0x025FA] = { mathclass='unknown', adobename='uni25FA', texname='lltriangle' },
---~ [0x025FB] = { mathclass='normal', adobename='uni25FB', texname='mdwhtsquare' },
---~ [0x025FC] = { mathclass='normal', adobename='uni25FC', texname='mdblksquare' },
---~ [0x025FD] = { mathclass='normal', adobename='uni25FD', texname='mdsmwhtsquare' },
---~ [0x025FE] = { mathclass='normal', adobename='uni25FE', texname='mdsmblksquare' },
---~ [0x025FF] = { mathclass='normal', adobename='uni25FF', texname='lrtriangle' },
---~ [0x02605] = { mathclass='unknown', adobename='uni2605', texname='bigstar' },
---~ [0x02606] = { mathclass='unknown', adobename='uni2606', texname='bigwhitestar' },
---~ [0x02609] = { mathclass='unknown', adobename='uni2609', texname='astrosun' },
---~ [0x0260C] = { mathclass='unknown', adobename='uni260C', texname='conjunction' },
---~ [0x0260E] = { mathclass='normal', adobename='uni260E', texname='phone' },
---~ [0x02612] = { mathclass='normal', adobename='uni2612', texname='XBox' },
---~ [0x02621] = { mathclass='normal', adobename='uni2621', texname='danger' },
---~ [0x02639] = { mathclass='normal', adobename='uni2639', texname='frownie' },
---~ [0x0263A] = { mathclass='normal', adobename='uni263A', texname='smiley' },
---~ [0x0263B] = { mathclass='unknown', adobename='uni263B', texname='blacksmiley' },
---~ [0x0263C] = { mathclass='unknown', adobename='uni263C', texname='sun' },
---~ [0x0263D] = { mathclass='unknown', adobename='uni263D', texname='rightmoon' },
---~ [0x0263E] = { mathclass='unknown', adobename='uni263E', texname='leftmoon' },
---~ [0x0263F] = { mathclass='normal', adobename='uni263F', texname='mercury' },
---~ [0x02640] = { mathclass='normal', adobename='uni2640', texname='female' },
---~ [0x02641] = { mathclass='normal', adobename='uni2641', texname='earth' },
---~ [0x02642] = { mathclass='normal', adobename='uni2642', texname='male' },
---~ [0x02643] = { mathclass='normal', adobename='uni2643', texname='jupiter' },
---~ [0x02644] = { mathclass='normal', adobename='uni2644', texname='saturn' },
---~ [0x02646] = { mathclass='normal', adobename='uni2646', texname='neptune' },
---~ [0x02647] = { mathclass='normal', adobename='uni2647', texname='pluto' },
---~ [0x02648] = { mathclass='normal', adobename='uni2648', texname='aries' },
---~ [0x02649] = { mathclass='normal', adobename='uni2649', texname='taurus' },
---~ [0x02660] = { mathclass='normal', adobename='uni2660', texname='spadesuit' },
---~ [0x02661] = { mathclass='normal', adobename='uni2661', texname='heartsuit' },
---~ [0x02662] = { mathclass='normal', adobename='uni2662', texname='diamondsuit' },
---~ [0x02663] = { mathclass='normal', adobename='uni2663', texname='clubsuit' },
---~ [0x02664] = { mathclass='normal', adobename='uni2664', texname='varspadesuit' },
---~ [0x02665] = { mathclass='normal', adobename='uni2665', texname='varheartsuit' },
---~ [0x02666] = { mathclass='normal', adobename='uni2666', texname='vardiamondsuit' },
---~ [0x02667] = { mathclass='normal', adobename='uni2667', texname='varclubsuit' },
---~ [0x02669] = { mathclass='normal', adobename='uni2669', texname='quarternote' },
---~ [0x0266A] = { mathclass='unknown', adobename='uni266A', texname='eighthnote' },
---~ [0x0266B] = { mathclass='unknown', adobename='uni266B', texname='twonotes' },
---~ [0x0266D] = { mathclass='normal', adobename='uni266D', texname='flat' },
---~ [0x0266E] = { mathclass='normal', adobename='uni266E', texname='natural' },
---~ [0x0266F] = { mathclass='normal', adobename='uni266F', texname='sharp' },
---~ [0x0267E] = { mathclass='unknown', adobename='uni267E', texname='acidfree' },
---~ [0x02680] = { mathclass='unknown', adobename='uni2680', texname='dicei' },
---~ [0x02681] = { mathclass='unknown', adobename='uni2681', texname='diceii' },
---~ [0x02682] = { mathclass='unknown', adobename='uni2682', texname='diceiii' },
---~ [0x02683] = { mathclass='unknown', adobename='uni2683', texname='diceiv' },
---~ [0x02684] = { mathclass='unknown', adobename='uni2684', texname='dicev' },
---~ [0x02685] = { mathclass='unknown', adobename='uni2685', texname='dicevi' },
---~ [0x02686] = { mathclass='unknown', adobename='uni2686', texname='circledrightdot' },
---~ [0x02687] = { mathclass='unknown', adobename='uni2687', texname='circledtwodots' },
---~ [0x02688] = { mathclass='unknown', adobename='uni2688', texname='blackcircledrightdot' },
---~ [0x02689] = { mathclass='unknown', adobename='uni2689', texname='blackcircledtwodots' },
---~ [0x026A0] = { mathclass='normal', adobename='uni26A0', texname='triangleexclam' },
---~ [0x026A5] = { mathclass='normal', adobename='uni26A5', texname='Hermaphrodite' },
---~ [0x026AA] = { mathclass='normal', adobename='uni26AA', texname='mdwhtcircle' },
---~ [0x026AB] = { mathclass='normal', adobename='uni26AB', texname='mdblkcircle' },
---~ [0x026AC] = { mathclass='normal', adobename='uni26AC', texname='mdsmwhtcircle' },
---~ [0x026B2] = { mathclass='normal', adobename='uni26B2', texname='neuter' },
---~ [0x02702] = { mathclass='normal', adobename='uni2702', texname='scissors' },
---~ [0x02709] = { mathclass='normal', adobename='uni2709', texname='envelope' },
---~ [0x02713] = { mathclass='normal', adobename='uni2713', texname='checkmark' },
---~ [0x02720] = { mathclass='normal', adobename='uni2720', texname='maltese' },
---~ [0x0272A] = { mathclass='unknown', adobename='uni272A', texname='circledstar' },
---~ [0x02736] = { mathclass='normal', adobename='uni2736', texname='varstar' },
---~ [0x0273D] = { mathclass='unknown', adobename='uni273D', texname='dingasterisk' },
---~ [0x02772] = { mathclass='opening', adobename='uni2772', texname='lbrbrak' },
---~ [0x02773] = { mathclass='closing', adobename='uni2773', texname='rbrbrak' },
---~ [0x02780] = { mathclass='unknown', adobename='uni2780', texname='circledsansone' },
---~ [0x02781] = { mathclass='unknown', adobename='uni2781', texname='circledsanstwo' },
---~ [0x02782] = { mathclass='unknown', adobename='uni2782', texname='circledsansthree' },
---~ [0x02783] = { mathclass='unknown', adobename='uni2783', texname='circledsansfour' },
---~ [0x02784] = { mathclass='unknown', adobename='uni2784', texname='circledsansfive' },
---~ [0x02785] = { mathclass='unknown', adobename='uni2785', texname='circledsanssix' },
---~ [0x02786] = { mathclass='unknown', adobename='uni2786', texname='circledsansseven' },
---~ [0x02787] = { mathclass='unknown', adobename='uni2787', texname='circledsanseight' },
---~ [0x02788] = { mathclass='unknown', adobename='uni2788', texname='circledsansnine' },
---~ [0x02789] = { mathclass='unknown', adobename='uni2789', texname='circledsansten' },
---~ [0x0278A] = { mathclass='unknown', adobename='uni278A', texname='blackcircledsansone' },
---~ [0x0278B] = { mathclass='unknown', adobename='uni278B', texname='blackcircledsanstwo' },
---~ [0x0278C] = { mathclass='unknown', adobename='uni278C', texname='blackcircledsansthree' },
---~ [0x0278D] = { mathclass='unknown', adobename='uni278D', texname='blackcircledsansfour' },
---~ [0x0278E] = { mathclass='unknown', adobename='uni278E', texname='blackcircledsansfive' },
---~ [0x0278F] = { mathclass='unknown', adobename='uni278F', texname='blackcircledsanssix' },
---~ [0x02790] = { mathclass='unknown', adobename='uni2790', texname='blackcircledsansseven' },
---~ [0x02791] = { mathclass='unknown', adobename='uni2791', texname='blackcircledsanseight' },
---~ [0x02792] = { mathclass='unknown', adobename='uni2792', texname='blackcircledsansnine' },
---~ [0x02793] = { mathclass='unknown', adobename='uni2793', texname='blackcircledsansten' },
---~ [0x0279B] = { mathclass='unknown', adobename='uni279B', texname='draftingarrow' },
---~ [0x027C0] = { mathclass='unknown', adobename='uni27C0', texname='threedangle' },
---~ [0x027C1] = { mathclass='unknown', adobename='uni27C1', texname='whiteinwhitetriangle' },
---~ [0x027C2] = { mathclass='relation', adobename='uni27C2', texname='perp' },
---~ [0x027C3] = { mathclass='unknown', adobename='uni27C3', texname='subsetcirc' },
---~ [0x027C4] = { mathclass='unknown', adobename='uni27C4', texname='supsetcirc' },
---~ [0x027C5] = { mathclass='opening', adobename='uni27C5', texname='lbag' },
---~ [0x027C6] = { mathclass='closing', adobename='uni27C6', texname='rbag' },
---~ [0x027C7] = { mathclass='binary', adobename='uni27C7', texname='veedot' },
---~ [0x027C8] = { mathclass='relation', adobename='uni27C8', texname='bsolhsub' },
---~ [0x027C9] = { mathclass='relation', adobename='uni27C9', texname='suphsol' },
---~ [0x027D0] = { mathclass='normal', adobename='uni27D0', texname='diamondcdot' },
---~ [0x027D1] = { mathclass='binary', adobename='uni27D1', texname='wedgedot' },
---~ [0x027D2] = { mathclass='relation', adobename='uni27D2', texname='upin' },
---~ [0x027D3] = { mathclass='relation', adobename='uni27D3', texname='pullback' },
---~ [0x027D4] = { mathclass='relation', adobename='uni27D4', texname='pushout' },
---~ [0x027D5] = { mathclass='large', adobename='uni27D5', texname='leftouterjoin' },
---~ [0x027D6] = { mathclass='large', adobename='uni27D6', texname='rightouterjoin' },
---~ [0x027D7] = { mathclass='large', adobename='uni27D7', texname='fullouterjoin' },
---~ [0x027D8] = { mathclass='large', adobename='uni27D8', texname='bigbot' },
---~ [0x027D9] = { mathclass='large', adobename='uni27D9', texname='bigtop' },
---~ [0x027DA] = { mathclass='relation', adobename='uni27DA', texname='DashVDash' },
---~ [0x027DB] = { mathclass='relation', adobename='uni27DB', texname='dashVdash' },
---~ [0x027DC] = { mathclass='relation', adobename='uni27DC', texname='multimapinv' },
---~ [0x027DD] = { mathclass='relation', adobename='uni27DD', texname='vlongdash' },
---~ [0x027DE] = { mathclass='relation', adobename='uni27DE', texname='longdashv' },
---~ [0x027DF] = { mathclass='relation', adobename='uni27DF', texname='cirbot' },
---~ [0x027E0] = { mathclass='binary', adobename='uni27E0', texname='lozengeminus' },
---~ [0x027E1] = { mathclass='binary', adobename='uni27E1', texname='concavediamond' },
---~ [0x027E2] = { mathclass='binary', adobename='uni27E2', texname='concavediamondtickleft' },
---~ [0x027E3] = { mathclass='binary', adobename='uni27E3', texname='concavediamondtickright' },
---~ [0x027E4] = { mathclass='binary', adobename='uni27E4', texname='whitesquaretickleft' },
---~ [0x027E5] = { mathclass='binary', adobename='uni27E5', texname='whitesquaretickright' },
---~ [0x027E6] = { mathclass='opening', adobename='uni27E6', texname='lBrack' },
---~ [0x027E7] = { mathclass='closing', adobename='uni27E7', texname='rBrack' },
---~ [0x027E8] = { mathclass='opening', adobename='uni27E8', texname='langle' },
---~ [0x027E9] = { mathclass='closing', adobename='uni27E9', texname='rangle' },
---~ [0x027EA] = { mathclass='opening', adobename='uni27EA', texname='lAngle' },
---~ [0x027EB] = { mathclass='closing', adobename='uni27EB', texname='rAngle' },
---~ [0x027EC] = { mathclass='opening', adobename='uni27EC', texname='Lbrbrak' },
---~ [0x027ED] = { mathclass='closing', adobename='uni27ED', texname='Rbrbrak' },
---~ [0x027F0] = { mathclass='relation', adobename='uni27F0', texname='UUparrow' },
---~ [0x027F1] = { mathclass='relation', adobename='uni27F1', texname='DDownarrow' },
---~ [0x027F2] = { mathclass='relation', adobename='uni27F2', texname='acwgapcirclearrow' },
---~ [0x027F3] = { mathclass='relation', adobename='uni27F3', texname='cwgapcirclearrow' },
---~ [0x027F4] = { mathclass='relation', adobename='uni27F4', texname='rightarrowonoplus' },
---~ [0x027F5] = { mathclass='relation', adobename='uni27F5', texname='longleftarrow' },
---~ [0x027F6] = { mathclass='relation', adobename='uni27F6', texname='longrightarrow' },
---~ [0x027F7] = { mathclass='relation', adobename='uni27F7', texname='longleftrightarrow' },
---~ [0x027F8] = { mathclass='relation', adobename='uni27F8', texname='Longleftarrow' },
---~ [0x027F9] = { mathclass='relation', adobename='uni27F9', texname='Longrightarrow' },
---~ [0x027FA] = { mathclass='relation', adobename='uni27FA', texname='Longleftrightarrow' },
---~ [0x027FB] = { mathclass='relation', adobename='uni27FB', texname='longmapsfrom' },
---~ [0x027FC] = { mathclass='relation', adobename='uni27FC', texname='longmapsto' },
---~ [0x027FD] = { mathclass='relation', adobename='uni27FD', texname='Longmapsfrom' },
---~ [0x027FE] = { mathclass='relation', adobename='uni27FE', texname='Longmapsto' },
---~ [0x027FF] = { mathclass='relation', adobename='uni27FF', texname='longrightzigzagarrow' },
---~ [0x02900] = { mathclass='relation', adobename='uni2900', texname='nvtwoheadrightarrow' },
---~ [0x02901] = { mathclass='relation', adobename='uni2901', texname='nVtwoheadrightarrow' },
---~ [0x02902] = { mathclass='relation', adobename='uni2902', texname='nvLeftarrow' },
---~ [0x02903] = { mathclass='relation', adobename='uni2903', texname='nvRightarrow' },
---~ [0x02904] = { mathclass='relation', adobename='uni2904', texname='nvLeftrightarrow' },
---~ [0x02905] = { mathclass='relation', adobename='uni2905', texname='twoheadmapsto' },
---~ [0x02906] = { mathclass='relation', adobename='uni2906', texname='Mapsfrom' },
---~ [0x02907] = { mathclass='relation', adobename='uni2907', texname='Mapsto' },
---~ [0x02908] = { mathclass='relation', adobename='uni2908', texname='downarrowbarred' },
---~ [0x02909] = { mathclass='relation', adobename='uni2909', texname='uparrowbarred' },
---~ [0x0290A] = { mathclass='relation', adobename='uni290A', texname='Uuparrow' },
---~ [0x0290B] = { mathclass='relation', adobename='uni290B', texname='Ddownarrow' },
---~ [0x0290C] = { mathclass='relation', adobename='uni290C', texname='leftbkarrow' },
---~ [0x0290D] = { mathclass='relation', adobename='uni290D', texname='rightbkarrow' },
---~ [0x0290E] = { mathclass='relation', adobename='uni290E', texname='leftdbkarrow' },
---~ [0x0290F] = { mathclass='relation', adobename='uni290F', texname='dbkarow' },
---~ [0x02910] = { mathclass='relation', adobename='uni2910', texname='drbkarow' },
---~ [0x02911] = { mathclass='relation', adobename='uni2911', texname='rightdotarrow' },
---~ [0x02912] = { mathclass='relation', adobename='uni2912', texname='baruparrow' },
---~ [0x02913] = { mathclass='relation', adobename='uni2913', texname='downarrowbar' },
---~ [0x02914] = { mathclass='relation', adobename='uni2914', texname='nvrightarrowtail' },
---~ [0x02915] = { mathclass='relation', adobename='uni2915', texname='nVrightarrowtail' },
---~ [0x02916] = { mathclass='relation', adobename='uni2916', texname='twoheadrightarrowtail' },
---~ [0x02917] = { mathclass='relation', adobename='uni2917', texname='nvtwoheadrightarrowtail' },
---~ [0x02918] = { mathclass='relation', adobename='uni2918', texname='nVtwoheadrightarrowtail' },
---~ [0x02919] = { mathclass='relation', adobename='uni2919', texname='lefttail' },
---~ [0x0291A] = { mathclass='relation', adobename='uni291A', texname='righttail' },
---~ [0x0291B] = { mathclass='relation', adobename='uni291B', texname='leftdbltail' },
---~ [0x0291C] = { mathclass='relation', adobename='uni291C', texname='rightdbltail' },
---~ [0x0291D] = { mathclass='relation', adobename='uni291D', texname='diamondleftarrow' },
---~ [0x0291E] = { mathclass='relation', adobename='uni291E', texname='rightarrowdiamond' },
---~ [0x0291F] = { mathclass='relation', adobename='uni291F', texname='diamondleftarrowbar' },
---~ [0x02920] = { mathclass='relation', adobename='uni2920', texname='barrightarrowdiamond' },
---~ [0x02921] = { mathclass='relation', adobename='uni2921', texname='nwsearrow' },
---~ [0x02922] = { mathclass='relation', adobename='uni2922', texname='neswarrow' },
---~ [0x02923] = { mathclass='relation', adobename='uni2923', texname='hknwarrow' },
---~ [0x02924] = { mathclass='relation', adobename='uni2924', texname='hknearrow' },
---~ [0x02925] = { mathclass='relation', adobename='uni2925', texname='hksearow' },
---~ [0x02926] = { mathclass='relation', adobename='uni2926', texname='hkswarow' },
---~ [0x02927] = { mathclass='relation', adobename='uni2927', texname='tona' },
---~ [0x02928] = { mathclass='relation', adobename='uni2928', texname='toea' },
---~ [0x02929] = { mathclass='relation', adobename='uni2929', texname='tosa' },
---~ [0x0292A] = { mathclass='relation', adobename='uni292A', texname='towa' },
---~ [0x0292B] = { mathclass='unknown', adobename='uni292B', texname='rdiagovfdiag' },
---~ [0x0292C] = { mathclass='unknown', adobename='uni292C', texname='fdiagovrdiag' },
---~ [0x0292D] = { mathclass='unknown', adobename='uni292D', texname='seovnearrow' },
---~ [0x0292E] = { mathclass='unknown', adobename='uni292E', texname='neovsearrow' },
---~ [0x0292F] = { mathclass='unknown', adobename='uni292F', texname='fdiagovnearrow' },
---~ [0x02930] = { mathclass='unknown', adobename='uni2930', texname='rdiagovsearrow' },
---~ [0x02931] = { mathclass='unknown', adobename='uni2931', texname='neovnwarrow' },
---~ [0x02932] = { mathclass='unknown', adobename='uni2932', texname='nwovnearrow' },
---~ [0x02933] = { mathclass='relation', adobename='uni2933', texname='rightcurvedarrow' },
---~ [0x02934] = { mathclass='unknown', adobename='uni2934', texname='uprightcurvearrow' },
---~ [0x02935] = { mathclass='unknown', adobename='uni2935', texname='downrightcurvedarrow' },
---~ [0x02936] = { mathclass='relation', adobename='uni2936', texname='leftdowncurvedarrow' },
---~ [0x02937] = { mathclass='relation', adobename='uni2937', texname='rightdowncurvedarrow' },
---~ [0x02938] = { mathclass='relation', adobename='uni2938', texname='cwrightarcarrow' },
---~ [0x02939] = { mathclass='relation', adobename='uni2939', texname='acwleftarcarrow' },
---~ [0x0293A] = { mathclass='unknown', adobename='uni293A', texname='acwoverarcarrow' },
---~ [0x0293B] = { mathclass='relation', adobename='uni293B', texname='acwunderarcarrow' },
---~ [0x0293C] = { mathclass='relation', adobename='uni293C', texname='curvearrowrightminus' },
---~ [0x0293D] = { mathclass='relation', adobename='uni293D', texname='curvearrowleftplus' },
---~ [0x0293E] = { mathclass='relation', adobename='uni293E', texname='cwundercurvearrow' },
---~ [0x0293F] = { mathclass='unknown', adobename='uni293F', texname='ccwundercurvearrow' },
---~ [0x02940] = { mathclass='relation', adobename='uni2940', texname='acwcirclearrow' },
---~ [0x02941] = { mathclass='relation', adobename='uni2941', texname='cwcirclearrow' },
---~ [0x02942] = { mathclass='relation', adobename='uni2942', texname='rightarrowshortleftarrow' },
---~ [0x02943] = { mathclass='relation', adobename='uni2943', texname='leftarrowshortrightarrow' },
---~ [0x02944] = { mathclass='relation', adobename='uni2944', texname='shortrightarrowleftarrow' },
---~ [0x02945] = { mathclass='relation', adobename='uni2945', texname='rightarrowplus' },
---~ [0x02946] = { mathclass='relation', adobename='uni2946', texname='leftarrowplus' },
---~ [0x02947] = { mathclass='relation', adobename='uni2947', texname='rightarrowx' },
---~ [0x02948] = { mathclass='relation', adobename='uni2948', texname='leftrightarrowcircle' },
---~ [0x02949] = { mathclass='relation', adobename='uni2949', texname='twoheaduparrowcircle' },
---~ [0x0294A] = { mathclass='relation', adobename='uni294A', texname='leftrightharpoonupdown' },
---~ [0x0294B] = { mathclass='relation', adobename='uni294B', texname='leftrightharpoondownup' },
---~ [0x0294C] = { mathclass='relation', adobename='uni294C', texname='updownharpoonrightleft' },
---~ [0x0294D] = { mathclass='relation', adobename='uni294D', texname='updownharpoonleftright' },
---~ [0x0294E] = { mathclass='relation', adobename='uni294E', texname='leftrightharpoonupup' },
---~ [0x0294F] = { mathclass='relation', adobename='uni294F', texname='updownharpoonrightright' },
---~ [0x02950] = { mathclass='relation', adobename='uni2950', texname='leftrightharpoondowndown' },
---~ [0x02951] = { mathclass='relation', adobename='uni2951', texname='updownharpoonleftleft' },
---~ [0x02952] = { mathclass='relation', adobename='uni2952', texname='barleftharpoonup' },
---~ [0x02953] = { mathclass='relation', adobename='uni2953', texname='rightharpoonupbar' },
---~ [0x02954] = { mathclass='relation', adobename='uni2954', texname='barupharpoonright' },
---~ [0x02955] = { mathclass='relation', adobename='uni2955', texname='downharpoonrightbar' },
---~ [0x02956] = { mathclass='relation', adobename='uni2956', texname='barleftharpoondown' },
---~ [0x02957] = { mathclass='relation', adobename='uni2957', texname='rightharpoondownbar' },
---~ [0x02958] = { mathclass='relation', adobename='uni2958', texname='barupharpoonleft' },
---~ [0x02959] = { mathclass='relation', adobename='uni2959', texname='downharpoonleftbar' },
---~ [0x0295A] = { mathclass='relation', adobename='uni295A', texname='leftharpoonupbar' },
---~ [0x0295B] = { mathclass='relation', adobename='uni295B', texname='barrightharpoonup' },
---~ [0x0295C] = { mathclass='relation', adobename='uni295C', texname='upharpoonrightbar' },
---~ [0x0295D] = { mathclass='relation', adobename='uni295D', texname='bardownharpoonright' },
---~ [0x0295E] = { mathclass='relation', adobename='uni295E', texname='leftharpoondownbar' },
---~ [0x0295F] = { mathclass='relation', adobename='uni295F', texname='barrightharpoondown' },
---~ [0x02960] = { mathclass='relation', adobename='uni2960', texname='upharpoonleftbar' },
---~ [0x02961] = { mathclass='relation', adobename='uni2961', texname='bardownharpoonleft' },
---~ [0x02962] = { mathclass='relation', adobename='uni2962', texname='leftharpoonsupdown' },
---~ [0x02963] = { mathclass='relation', adobename='uni2963', texname='upharpoonsleftright' },
---~ [0x02964] = { mathclass='relation', adobename='uni2964', texname='rightharpoonsupdown' },
---~ [0x02965] = { mathclass='relation', adobename='uni2965', texname='downharpoonsleftright' },
---~ [0x02966] = { mathclass='relation', adobename='uni2966', texname='leftrightharpoonsup' },
---~ [0x02967] = { mathclass='relation', adobename='uni2967', texname='leftrightharpoonsdown' },
---~ [0x02968] = { mathclass='relation', adobename='uni2968', texname='rightleftharpoonsup' },
---~ [0x02969] = { mathclass='relation', adobename='uni2969', texname='rightleftharpoonsdown' },
---~ [0x0296A] = { mathclass='relation', adobename='uni296A', texname='leftharpoonupdash' },
---~ [0x0296B] = { mathclass='relation', adobename='uni296B', texname='dashleftharpoondown' },
---~ [0x0296C] = { mathclass='relation', adobename='uni296C', texname='rightharpoonupdash' },
---~ [0x0296D] = { mathclass='relation', adobename='uni296D', texname='dashrightharpoondown' },
---~ [0x0296E] = { mathclass='relation', adobename='uni296E', texname='updownharpoonsleftright' },
---~ [0x0296F] = { mathclass='relation', adobename='uni296F', texname='downupharpoonsleftright' },
---~ [0x02970] = { mathclass='relation', adobename='uni2970', texname='rightimply' },
---~ [0x02971] = { mathclass='relation', adobename='uni2971', texname='equalrightarrow' },
---~ [0x02972] = { mathclass='relation', adobename='uni2972', texname='similarrightarrow' },
---~ [0x02973] = { mathclass='relation', adobename='uni2973', texname='leftarrowsimilar' },
---~ [0x02974] = { mathclass='relation', adobename='uni2974', texname='rightarrowsimilar' },
---~ [0x02975] = { mathclass='relation', adobename='uni2975', texname='rightarrowapprox' },
---~ [0x02976] = { mathclass='relation', adobename='uni2976', texname='ltlarr' },
---~ [0x02977] = { mathclass='relation', adobename='uni2977', texname='leftarrowless' },
---~ [0x02978] = { mathclass='relation', adobename='uni2978', texname='gtrarr' },
---~ [0x02979] = { mathclass='relation', adobename='uni2979', texname='subrarr' },
---~ [0x0297A] = { mathclass='relation', adobename='uni297A', texname='leftarrowsubset' },
---~ [0x0297B] = { mathclass='relation', adobename='uni297B', texname='suplarr' },
---~ [0x0297C] = { mathclass='relation', adobename='uni297C', texname='leftfishtail' },
---~ [0x0297D] = { mathclass='relation', adobename='uni297D', texname='rightfishtail' },
---~ [0x0297E] = { mathclass='relation', adobename='uni297E', texname='upfishtail' },
---~ [0x0297F] = { mathclass='relation', adobename='uni297F', texname='downfishtail' },
---~ [0x02980] = { mathclass='unknown', adobename='uni2980', texname='Vvert' },
---~ [0x02981] = { mathclass='normal', adobename='uni2981', texname='mdsmblkcircle' },
---~ [0x02982] = { mathclass='fence', adobename='uni2982', texname='typecolon' },
---~ [0x02983] = { mathclass='opening', adobename='uni2983', texname='lBrace' },
---~ [0x02984] = { mathclass='closing', adobename='uni2984', texname='rBrace' },
---~ [0x02985] = { mathclass='opening', adobename='uni2985', texname='lParen' },
---~ [0x02986] = { mathclass='closing', adobename='uni2986', texname='rParen' },
---~ [0x02987] = { mathclass='opening', adobename='uni2987', texname='llparenthesis' },
---~ [0x02988] = { mathclass='closing', adobename='uni2988', texname='rrparenthesis' },
---~ [0x02989] = { mathclass='opening', adobename='uni2989', texname='llangle' },
---~ [0x0298A] = { mathclass='closing', adobename='uni298A', texname='rrangle' },
---~ [0x0298B] = { mathclass='opening', adobename='uni298B', texname='lbrackubar' },
---~ [0x0298C] = { mathclass='closing', adobename='uni298C', texname='rbrackubar' },
---~ [0x0298D] = { mathclass='opening', adobename='uni298D', texname='lbrackultick' },
---~ [0x0298E] = { mathclass='closing', adobename='uni298E', texname='rbracklrtick' },
---~ [0x0298F] = { mathclass='opening', adobename='uni298F', texname='lbracklltick' },
---~ [0x02990] = { mathclass='closing', adobename='uni2990', texname='rbrackurtick' },
---~ [0x02991] = { mathclass='opening', adobename='uni2991', texname='langledot' },
---~ [0x02992] = { mathclass='closing', adobename='uni2992', texname='rangledot' },
---~ [0x02993] = { mathclass='opening', adobename='uni2993', texname='lparenless' },
---~ [0x02994] = { mathclass='closing', adobename='uni2994', texname='rparengtr' },
---~ [0x02995] = { mathclass='unknown', adobename='uni2995', texname='Lparengtr' },
---~ [0x02996] = { mathclass='unknown', adobename='uni2996', texname='Rparenless' },
---~ [0x02997] = { mathclass='opening', adobename='uni2997', texname='lblkbrbrak' },
---~ [0x02998] = { mathclass='closing', adobename='uni2998', texname='rblkbrbrak' },
---~ [0x02999] = { mathclass='unknown', adobename='uni2999', texname='fourvdots' },
---~ [0x0299A] = { mathclass='unknown', adobename='uni299A', texname='vzigzag' },
---~ [0x0299B] = { mathclass='unknown', adobename='uni299B', texname='measuredangleleft' },
---~ [0x0299C] = { mathclass='unknown', adobename='uni299C', texname='rightanglesqr' },
---~ [0x0299D] = { mathclass='unknown', adobename='uni299D', texname='rightanglemdot' },
---~ [0x0299E] = { mathclass='unknown', adobename='uni299E', texname='angles' },
---~ [0x0299F] = { mathclass='unknown', adobename='uni299F', texname='angdnr' },
---~ [0x029A0] = { mathclass='unknown', adobename='uni29A0', texname='gtlpar' },
---~ [0x029A1] = { mathclass='unknown', adobename='uni29A1', texname='sphericalangleup' },
---~ [0x029A2] = { mathclass='unknown', adobename='uni29A2', texname='turnangle' },
---~ [0x029A3] = { mathclass='unknown', adobename='uni29A3', texname='revangle' },
---~ [0x029A4] = { mathclass='unknown', adobename='uni29A4', texname='angleubar' },
---~ [0x029A5] = { mathclass='unknown', adobename='uni29A5', texname='revangleubar' },
---~ [0x029A6] = { mathclass='unknown', adobename='uni29A6', texname='wideangledown' },
---~ [0x029A7] = { mathclass='unknown', adobename='uni29A7', texname='wideangleup' },
---~ [0x029A8] = { mathclass='unknown', adobename='uni29A8', texname='measanglerutone' },
---~ [0x029A9] = { mathclass='unknown', adobename='uni29A9', texname='measanglelutonw' },
---~ [0x029AA] = { mathclass='unknown', adobename='uni29AA', texname='measanglerdtose' },
---~ [0x029AB] = { mathclass='unknown', adobename='uni29AB', texname='measangleldtosw' },
---~ [0x029AC] = { mathclass='unknown', adobename='uni29AC', texname='measangleurtone' },
---~ [0x029AD] = { mathclass='unknown', adobename='uni29AD', texname='measangleultonw' },
---~ [0x029AE] = { mathclass='unknown', adobename='uni29AE', texname='measangledrtose' },
---~ [0x029AF] = { mathclass='unknown', adobename='uni29AF', texname='measangledltosw' },
---~ [0x029B0] = { mathclass='normal', adobename='uni29B0', texname='revemptyset' },
---~ [0x029B1] = { mathclass='normal', adobename='uni29B1', texname='emptysetobar' },
---~ [0x029B2] = { mathclass='normal', adobename='uni29B2', texname='emptysetocirc' },
---~ [0x029B3] = { mathclass='normal', adobename='uni29B3', texname='emptysetoarr' },
---~ [0x029B4] = { mathclass='normal', adobename='uni29B4', texname='emptysetoarrl' },
---~ [0x029B5] = { mathclass='binary', adobename='uni29B5', texname='circlehbar' },
---~ [0x029B6] = { mathclass='binary', adobename='uni29B6', texname='circledvert' },
---~ [0x029B7] = { mathclass='binary', adobename='uni29B7', texname='circledparallel' },
---~ [0x029B8] = { mathclass='binary', adobename='uni29B8', texname='obslash' },
---~ [0x029B9] = { mathclass='binary', adobename='uni29B9', texname='operp' },
---~ [0x029BA] = { mathclass='normal', adobename='uni29BA', texname='obot' },
---~ [0x029BB] = { mathclass='normal', adobename='uni29BB', texname='olcross' },
---~ [0x029BC] = { mathclass='normal', adobename='uni29BC', texname='odotslashdot' },
---~ [0x029BD] = { mathclass='normal', adobename='uni29BD', texname='uparrowoncircle' },
---~ [0x029BE] = { mathclass='normal', adobename='uni29BE', texname='circledwhitebullet' },
---~ [0x029BF] = { mathclass='normal', adobename='uni29BF', texname='circledbullet' },
---~ [0x029C0] = { mathclass='binary', adobename='uni29C0', texname='olessthan' },
---~ [0x029C1] = { mathclass='binary', adobename='uni29C1', texname='ogreaterthan' },
---~ [0x029C2] = { mathclass='normal', adobename='uni29C2', texname='cirscir' },
---~ [0x029C3] = { mathclass='normal', adobename='uni29C3', texname='cirE' },
---~ [0x029C4] = { mathclass='binary', adobename='uni29C4', texname='boxdiag' },
---~ [0x029C5] = { mathclass='binary', adobename='uni29C5', texname='boxbslash' },
---~ [0x029C6] = { mathclass='binary', adobename='uni29C6', texname='boxast' },
---~ [0x029C7] = { mathclass='binary', adobename='uni29C7', texname='boxcircle' },
---~ [0x029C8] = { mathclass='binary', adobename='uni29C8', texname='boxbox' },
---~ [0x029C9] = { mathclass='normal', adobename='uni29C9', texname='boxonbox' },
---~ [0x029CA] = { mathclass='normal', adobename='uni29CA', texname='triangleodot' },
---~ [0x029CB] = { mathclass='normal', adobename='uni29CB', texname='triangleubar' },
---~ [0x029CC] = { mathclass='normal', adobename='uni29CC', texname='triangles' },
---~ [0x029CD] = { mathclass='binary', adobename='uni29CD', texname='triangleserifs' },
---~ [0x029CE] = { mathclass='relation', adobename='uni29CE', texname='rtriltri' },
---~ [0x029CF] = { mathclass='relation', adobename='uni29CF', texname='ltrivb' },
---~ [0x029D0] = { mathclass='relation', adobename='uni29D0', texname='vbrtri' },
---~ [0x029D1] = { mathclass='relation', adobename='uni29D1', texname='lfbowtie' },
---~ [0x029D2] = { mathclass='relation', adobename='uni29D2', texname='rfbowtie' },
---~ [0x029D3] = { mathclass='relation', adobename='uni29D3', texname='fbowtie' },
---~ [0x029D4] = { mathclass='relation', adobename='uni29D4', texname='lftimes' },
---~ [0x029D5] = { mathclass='relation', adobename='uni29D5', texname='rftimes' },
---~ [0x029D6] = { mathclass='binary', adobename='uni29D6', texname='hourglass' },
---~ [0x029D7] = { mathclass='binary', adobename='uni29D7', texname='blackhourglass' },
---~ [0x029D8] = { mathclass='opening', adobename='uni29D8', texname='lvzigzag' },
---~ [0x029D9] = { mathclass='closing', adobename='uni29D9', texname='rvzigzag' },
---~ [0x029DA] = { mathclass='opening', adobename='uni29DA', texname='Lvzigzag' },
---~ [0x029DB] = { mathclass='closing', adobename='uni29DB', texname='Rvzigzag' },
---~ [0x029DC] = { mathclass='normal', adobename='uni29DC', texname='iinfin' },
---~ [0x029DD] = { mathclass='normal', adobename='uni29DD', texname='tieinfty' },
---~ [0x029DE] = { mathclass='normal', adobename='uni29DE', texname='nvinfty' },
---~ [0x029DF] = { mathclass='relation', adobename='uni29DF', texname='dualmap' },
---~ [0x029E0] = { mathclass='normal', adobename='uni29E0', texname='laplac' },
---~ [0x029E1] = { mathclass='relation', adobename='uni29E1', texname='lrtriangleeq' },
---~ [0x029E2] = { mathclass='unknown', adobename='uni29E2', texname='shuffle' },
---~ [0x029E3] = { mathclass='relation', adobename='uni29E3', texname='eparsl' },
---~ [0x029E4] = { mathclass='relation', adobename='uni29E4', texname='smeparsl' },
---~ [0x029E5] = { mathclass='relation', adobename='uni29E5', texname='eqvparsl' },
---~ [0x029E6] = { mathclass='relation', adobename='uni29E6', texname='gleichstark' },
---~ [0x029E7] = { mathclass='normal', adobename='uni29E7', texname='thermod' },
---~ [0x029E8] = { mathclass='normal', adobename='uni29E8', texname='downtriangleleftblack' },
---~ [0x029E9] = { mathclass='normal', adobename='uni29E9', texname='downtrianglerightblack' },
---~ [0x029EA] = { mathclass='normal', adobename='uni29EA', texname='blackdiamonddownarrow' },
---~ [0x029EB] = { mathclass='binary', adobename='uni29EB', texname='mdlgblklozenge' },
---~ [0x029EC] = { mathclass='normal', adobename='uni29EC', texname='circledownarrow' },
---~ [0x029ED] = { mathclass='normal', adobename='uni29ED', texname='blackcircledownarrow' },
---~ [0x029EE] = { mathclass='normal', adobename='uni29EE', texname='errbarsquare' },
---~ [0x029EF] = { mathclass='normal', adobename='uni29EF', texname='errbarblacksquare' },
---~ [0x029F0] = { mathclass='normal', adobename='uni29F0', texname='errbardiamond' },
---~ [0x029F1] = { mathclass='normal', adobename='uni29F1', texname='errbarblackdiamond' },
---~ [0x029F2] = { mathclass='normal', adobename='uni29F2', texname='errbarcircle' },
---~ [0x029F3] = { mathclass='normal', adobename='uni29F3', texname='errbarblackcircle' },
---~ [0x029F4] = { mathclass='relation', adobename='uni29F4', texname='ruledelayed' },
---~ [0x029F5] = { mathclass='binary', adobename='uni29F5', texname='opbackslash' },
---~ [0x029F6] = { mathclass='binary', adobename='uni29F6', texname='dsol' },
---~ [0x029F7] = { mathclass='binary', adobename='uni29F7', texname='rsolbar' },
---~ [0x029F8] = { mathclass='large', adobename='uni29F8', texname='xsol' },
---~ [0x029F9] = { mathclass='large', adobename='uni29F9', texname='xbsol' },
---~ [0x029FA] = { mathclass='binary', adobename='uni29FA', texname='doubleplus' },
---~ [0x029FB] = { mathclass='binary', adobename='uni29FB', texname='tripleplus' },
---~ [0x029FC] = { mathclass='opening', adobename='uni29FC', texname='lcurvyangle' },
---~ [0x029FD] = { mathclass='closing', adobename='uni29FD', texname='rcurvyangle' },
---~ [0x029FE] = { mathclass='binary', adobename='uni29FE', texname='tplus' },
---~ [0x029FF] = { mathclass='binary', adobename='uni29FF', texname='tminus' },
---~ [0x02A00] = { mathclass='large', adobename='uni2A00', texname='bigodot' },
---~ [0x02A01] = { mathclass='large', adobename='uni2A01', texname='bigoplus' },
---~ [0x02A02] = { mathclass='large', adobename='uni2A02', texname='bigotimes' },
---~ [0x02A03] = { mathclass='large', adobename='uni2A03', texname='bigcupdot' },
---~ [0x02A04] = { mathclass='large', adobename='uni2A04', texname='biguplus' },
---~ [0x02A05] = { mathclass='large', adobename='uni2A05', texname='bigsqcap' },
---~ [0x02A06] = { mathclass='large', adobename='uni2A06', texname='bigsqcup' },
---~ [0x02A07] = { mathclass='large', adobename='uni2A07', texname='conjquant' },
---~ [0x02A08] = { mathclass='large', adobename='uni2A08', texname='disjquant' },
---~ [0x02A09] = { mathclass='large', adobename='uni2A09', texname='bigtimes' },
---~ [0x02A0A] = { mathclass='unknown', adobename='uni2A0A', texname='modtwosum' },
---~ [0x02A0B] = { mathclass='large', adobename='uni2A0B', texname='sumint' },
---~ [0x02A0C] = { mathclass='large', adobename='uni2A0C', texname='iiiint' },
---~ [0x02A0D] = { mathclass='large', adobename='uni2A0D', texname='intbar' },
---~ [0x02A0E] = { mathclass='large', adobename='uni2A0E', texname='intBar' },
---~ [0x02A0F] = { mathclass='large', adobename='uni2A0F', texname='fint' },
---~ [0x02A10] = { mathclass='large', adobename='uni2A10', texname='cirfnint' },
---~ [0x02A11] = { mathclass='large', adobename='uni2A11', texname='awint' },
---~ [0x02A12] = { mathclass='large', adobename='uni2A12', texname='rppolint' },
---~ [0x02A13] = { mathclass='large', adobename='uni2A13', texname='scpolint' },
---~ [0x02A14] = { mathclass='large', adobename='uni2A14', texname='npolint' },
---~ [0x02A15] = { mathclass='large', adobename='uni2A15', texname='pointint' },
---~ [0x02A16] = { mathclass='large', adobename='uni2A16', texname='sqint' },
---~ [0x02A17] = { mathclass='large', adobename='uni2A17', texname='intlarhk' },
---~ [0x02A18] = { mathclass='large', adobename='uni2A18', texname='intx' },
---~ [0x02A19] = { mathclass='large', adobename='uni2A19', texname='intcap' },
---~ [0x02A1A] = { mathclass='large', adobename='uni2A1A', texname='intcup' },
---~ [0x02A1B] = { mathclass='large', adobename='uni2A1B', texname='upint' },
---~ [0x02A1C] = { mathclass='large', adobename='uni2A1C', texname='lowint' },
---~ [0x02A1D] = { mathclass='large', adobename='uni2A1D', texname='Join' },
---~ [0x02A1E] = { mathclass='large', adobename='uni2A1E', texname='bigtriangleleft' },
---~ [0x02A1F] = { mathclass='large', adobename='uni2A1F', texname='zcmp' },
---~ [0x02A20] = { mathclass='large', adobename='uni2A20', texname='zpipe' },
---~ [0x02A21] = { mathclass='large', adobename='uni2A21', texname='zproject' },
---~ [0x02A22] = { mathclass='binary', adobename='uni2A22', texname='ringplus' },
---~ [0x02A23] = { mathclass='binary', adobename='uni2A23', texname='plushat' },
---~ [0x02A24] = { mathclass='binary', adobename='uni2A24', texname='simplus' },
---~ [0x02A25] = { mathclass='binary', adobename='uni2A25', texname='plusdot' },
---~ [0x02A26] = { mathclass='binary', adobename='uni2A26', texname='plussim' },
---~ [0x02A27] = { mathclass='binary', adobename='uni2A27', texname='plussubtwo' },
---~ [0x02A28] = { mathclass='binary', adobename='uni2A28', texname='plustrif' },
---~ [0x02A29] = { mathclass='binary', adobename='uni2A29', texname='commaminus' },
---~ [0x02A2A] = { mathclass='binary', adobename='uni2A2A', texname='minusdot' },
---~ [0x02A2B] = { mathclass='binary', adobename='uni2A2B', texname='minusfdots' },
---~ [0x02A2C] = { mathclass='binary', adobename='uni2A2C', texname='minusrdots' },
---~ [0x02A2D] = { mathclass='binary', adobename='uni2A2D', texname='opluslhrim' },
---~ [0x02A2E] = { mathclass='binary', adobename='uni2A2E', texname='oplusrhrim' },
---~ [0x02A2F] = { mathclass='binary', adobename='uni2A2F', texname='vectimes' },
---~ [0x02A30] = { mathclass='binary', adobename='uni2A30', texname='dottimes' },
---~ [0x02A31] = { mathclass='binary', adobename='uni2A31', texname='timesbar' },
---~ [0x02A32] = { mathclass='binary', adobename='uni2A32', texname='btimes' },
---~ [0x02A33] = { mathclass='binary', adobename='uni2A33', texname='smashtimes' },
---~ [0x02A34] = { mathclass='binary', adobename='uni2A34', texname='otimeslhrim' },
---~ [0x02A35] = { mathclass='binary', adobename='uni2A35', texname='otimesrhrim' },
---~ [0x02A36] = { mathclass='binary', adobename='uni2A36', texname='otimeshat' },
---~ [0x02A37] = { mathclass='binary', adobename='uni2A37', texname='Otimes' },
---~ [0x02A38] = { mathclass='binary', adobename='uni2A38', texname='odiv' },
---~ [0x02A39] = { mathclass='binary', adobename='uni2A39', texname='triangleplus' },
---~ [0x02A3A] = { mathclass='binary', adobename='uni2A3A', texname='triangleminus' },
---~ [0x02A3B] = { mathclass='binary', adobename='uni2A3B', texname='triangletimes' },
---~ [0x02A3C] = { mathclass='binary', adobename='uni2A3C', texname='intprod' },
---~ [0x02A3D] = { mathclass='binary', adobename='uni2A3D', texname='intprodr' },
---~ [0x02A3E] = { mathclass='binary', adobename='uni2A3E', texname='fcmp' },
---~ [0x02A3F] = { mathclass='binary', adobename='uni2A3F', texname='amalg' },
---~ [0x02A40] = { mathclass='binary', adobename='uni2A40', texname='capdot' },
---~ [0x02A41] = { mathclass='binary', adobename='uni2A41', texname='uminus' },
---~ [0x02A42] = { mathclass='binary', adobename='uni2A42', texname='barcup' },
---~ [0x02A43] = { mathclass='binary', adobename='uni2A43', texname='barcap' },
---~ [0x02A44] = { mathclass='binary', adobename='uni2A44', texname='capwedge' },
---~ [0x02A45] = { mathclass='binary', adobename='uni2A45', texname='cupvee' },
---~ [0x02A46] = { mathclass='binary', adobename='uni2A46', texname='cupovercap' },
---~ [0x02A47] = { mathclass='binary', adobename='uni2A47', texname='capovercup' },
---~ [0x02A48] = { mathclass='binary', adobename='uni2A48', texname='cupbarcap' },
---~ [0x02A49] = { mathclass='binary', adobename='uni2A49', texname='capbarcup' },
---~ [0x02A4A] = { mathclass='binary', adobename='uni2A4A', texname='twocups' },
---~ [0x02A4B] = { mathclass='binary', adobename='uni2A4B', texname='twocaps' },
---~ [0x02A4C] = { mathclass='binary', adobename='uni2A4C', texname='closedvarcup' },
---~ [0x02A4D] = { mathclass='binary', adobename='uni2A4D', texname='closedvarcap' },
---~ [0x02A4E] = { mathclass='binary', adobename='uni2A4E', texname='Sqcap' },
---~ [0x02A4F] = { mathclass='binary', adobename='uni2A4F', texname='Sqcup' },
---~ [0x02A50] = { mathclass='binary', adobename='uni2A50', texname='closedvarcupsmashprod' },
---~ [0x02A51] = { mathclass='binary', adobename='uni2A51', texname='wedgeodot' },
---~ [0x02A52] = { mathclass='binary', adobename='uni2A52', texname='veeodot' },
---~ [0x02A53] = { mathclass='binary', adobename='uni2A53', texname='Wedge' },
---~ [0x02A54] = { mathclass='binary', adobename='uni2A54', texname='Vee' },
---~ [0x02A55] = { mathclass='binary', adobename='uni2A55', texname='wedgeonwedge' },
---~ [0x02A56] = { mathclass='binary', adobename='uni2A56', texname='veeonvee' },
---~ [0x02A57] = { mathclass='binary', adobename='uni2A57', texname='bigslopedvee' },
---~ [0x02A58] = { mathclass='binary', adobename='uni2A58', texname='bigslopedwedge' },
---~ [0x02A59] = { mathclass='relation', adobename='uni2A59', texname='veeonwedge' },
---~ [0x02A5A] = { mathclass='binary', adobename='uni2A5A', texname='wedgemidvert' },
---~ [0x02A5B] = { mathclass='binary', adobename='uni2A5B', texname='veemidvert' },
---~ [0x02A5C] = { mathclass='binary', adobename='uni2A5C', texname='midbarwedge' },
---~ [0x02A5D] = { mathclass='binary', adobename='uni2A5D', texname='midbarvee' },
---~ [0x02A5E] = { mathclass='binary', adobename='uni2A5E', texname='doublebarwedge' },
---~ [0x02A5F] = { mathclass='binary', adobename='uni2A5F', texname='wedgebar' },
---~ [0x02A60] = { mathclass='binary', adobename='uni2A60', texname='wedgedoublebar' },
---~ [0x02A61] = { mathclass='binary', adobename='uni2A61', texname='varveebar' },
---~ [0x02A62] = { mathclass='binary', adobename='uni2A62', texname='doublebarvee' },
---~ [0x02A63] = { mathclass='binary', adobename='uni2A63', texname='veedoublebar' },
---~ [0x02A64] = { mathclass='binary', adobename='uni2A64', texname='dsub' },
---~ [0x02A65] = { mathclass='binary', adobename='uni2A65', texname='rsub' },
---~ [0x02A66] = { mathclass='relation', adobename='uni2A66', texname='eqdot' },
---~ [0x02A67] = { mathclass='relation', adobename='uni2A67', texname='dotequiv' },
---~ [0x02A68] = { mathclass='unknown', adobename='uni2A68', texname='equivVert' },
---~ [0x02A69] = { mathclass='unknown', adobename='uni2A69', texname='equivVvert' },
---~ [0x02A6A] = { mathclass='relation', adobename='uni2A6A', texname='dotsim' },
---~ [0x02A6B] = { mathclass='relation', adobename='uni2A6B', texname='simrdots' },
---~ [0x02A6C] = { mathclass='relation', adobename='uni2A6C', texname='simminussim' },
---~ [0x02A6D] = { mathclass='relation', adobename='uni2A6D', texname='congdot' },
---~ [0x02A6E] = { mathclass='relation', adobename='uni2A6E', texname='asteq' },
---~ [0x02A6F] = { mathclass='relation', adobename='uni2A6F', texname='hatapprox' },
---~ [0x02A70] = { mathclass='relation', adobename='uni2A70', texname='approxeqq' },
---~ [0x02A71] = { mathclass='binary', adobename='uni2A71', texname='eqqplus' },
---~ [0x02A72] = { mathclass='binary', adobename='uni2A72', texname='pluseqq' },
---~ [0x02A73] = { mathclass='relation', adobename='uni2A73', texname='eqqsim' },
---~ [0x02A74] = { mathclass='relation', adobename='uni2A74', texname='Coloneq' },
---~ [0x02A75] = { mathclass='relation', adobename='uni2A75', texname='eqeq' },
---~ [0x02A76] = { mathclass='relation', adobename='uni2A76', texname='eqeqeq' },
---~ [0x02A77] = { mathclass='relation', adobename='uni2A77', texname='ddotseq' },
---~ [0x02A78] = { mathclass='relation', adobename='uni2A78', texname='equivDD' },
---~ [0x02A79] = { mathclass='relation', adobename='uni2A79', texname='ltcir' },
---~ [0x02A7A] = { mathclass='relation', adobename='uni2A7A', texname='gtcir' },
---~ [0x02A7B] = { mathclass='relation', adobename='uni2A7B', texname='ltquest' },
---~ [0x02A7C] = { mathclass='relation', adobename='uni2A7C', texname='gtquest' },
---~ [0x02A7D] = { mathclass='relation', adobename='uni2A7D', texname='leqslant' },
---~ [0x02A7E] = { mathclass='relation', adobename='uni2A7E', texname='geqslant' },
---~ [0x02A7F] = { mathclass='relation', adobename='uni2A7F', texname='lesdot' },
---~ [0x02A80] = { mathclass='relation', adobename='uni2A80', texname='gesdot' },
---~ [0x02A81] = { mathclass='relation', adobename='uni2A81', texname='lesdoto' },
---~ [0x02A82] = { mathclass='relation', adobename='uni2A82', texname='gesdoto' },
---~ [0x02A83] = { mathclass='relation', adobename='uni2A83', texname='lesdotor' },
---~ [0x02A84] = { mathclass='relation', adobename='uni2A84', texname='gesdotol' },
---~ [0x02A85] = { mathclass='relation', adobename='uni2A85', texname='lessapprox' },
---~ [0x02A86] = { mathclass='relation', adobename='uni2A86', texname='gtrapprox' },
---~ [0x02A87] = { mathclass='relation', adobename='uni2A87', texname='lneq' },
---~ [0x02A88] = { mathclass='relation', adobename='uni2A88', texname='gneq' },
---~ [0x02A89] = { mathclass='relation', adobename='uni2A89', texname='lnapprox' },
---~ [0x02A8A] = { mathclass='relation', adobename='uni2A8A', texname='gnapprox' },
---~ [0x02A8B] = { mathclass='relation', adobename='uni2A8B', texname='lesseqqgtr' },
---~ [0x02A8C] = { mathclass='relation', adobename='uni2A8C', texname='gtreqqless' },
---~ [0x02A8D] = { mathclass='relation', adobename='uni2A8D', texname='lsime' },
---~ [0x02A8E] = { mathclass='relation', adobename='uni2A8E', texname='gsime' },
---~ [0x02A8F] = { mathclass='relation', adobename='uni2A8F', texname='lsimg' },
---~ [0x02A90] = { mathclass='relation', adobename='uni2A90', texname='gsiml' },
---~ [0x02A91] = { mathclass='relation', adobename='uni2A91', texname='lgE' },
---~ [0x02A92] = { mathclass='relation', adobename='uni2A92', texname='glE' },
---~ [0x02A93] = { mathclass='relation', adobename='uni2A93', texname='lesges' },
---~ [0x02A94] = { mathclass='relation', adobename='uni2A94', texname='gesles' },
---~ [0x02A95] = { mathclass='relation', adobename='uni2A95', texname='eqslantless' },
---~ [0x02A96] = { mathclass='relation', adobename='uni2A96', texname='eqslantgtr' },
---~ [0x02A97] = { mathclass='relation', adobename='uni2A97', texname='elsdot' },
---~ [0x02A98] = { mathclass='relation', adobename='uni2A98', texname='egsdot' },
---~ [0x02A99] = { mathclass='relation', adobename='uni2A99', texname='eqqless' },
---~ [0x02A9A] = { mathclass='relation', adobename='uni2A9A', texname='eqqgtr' },
---~ [0x02A9B] = { mathclass='relation', adobename='uni2A9B', texname='eqqslantless' },
---~ [0x02A9C] = { mathclass='relation', adobename='uni2A9C', texname='eqqslantgtr' },
---~ [0x02A9D] = { mathclass='relation', adobename='uni2A9D', texname='simless' },
---~ [0x02A9E] = { mathclass='relation', adobename='uni2A9E', texname='simgtr' },
---~ [0x02A9F] = { mathclass='relation', adobename='uni2A9F', texname='simlE' },
---~ [0x02AA0] = { mathclass='relation', adobename='uni2AA0', texname='simgE' },
---~ [0x02AA1] = { mathclass='relation', adobename='uni2AA1', texname='Lt' },
---~ [0x02AA2] = { mathclass='relation', adobename='uni2AA2', texname='Gt' },
---~ [0x02AA3] = { mathclass='relation', adobename='uni2AA3', texname='partialmeetcontraction' },
---~ [0x02AA4] = { mathclass='relation', adobename='uni2AA4', texname='glj' },
---~ [0x02AA5] = { mathclass='relation', adobename='uni2AA5', texname='gla' },
---~ [0x02AA6] = { mathclass='relation', adobename='uni2AA6', texname='ltcc' },
---~ [0x02AA7] = { mathclass='relation', adobename='uni2AA7', texname='gtcc' },
---~ [0x02AA8] = { mathclass='relation', adobename='uni2AA8', texname='lescc' },
---~ [0x02AA9] = { mathclass='relation', adobename='uni2AA9', texname='gescc' },
---~ [0x02AAA] = { mathclass='relation', adobename='uni2AAA', texname='smt' },
---~ [0x02AAB] = { mathclass='relation', adobename='uni2AAB', texname='lat' },
---~ [0x02AAC] = { mathclass='relation', adobename='uni2AAC', texname='smte' },
---~ [0x02AAD] = { mathclass='relation', adobename='uni2AAD', texname='late' },
---~ [0x02AAE] = { mathclass='relation', adobename='uni2AAE', texname='bumpeqq' },
---~ [0x02AAF] = { mathclass='relation', adobename='uni2AAF', texname='preceq' },
---~ [0x02AB0] = { mathclass='relation', adobename='uni2AB0', texname='succeq' },
---~ [0x02AB1] = { mathclass='relation', adobename='uni2AB1', texname='precneq' },
---~ [0x02AB2] = { mathclass='relation', adobename='uni2AB2', texname='succneq' },
---~ [0x02AB3] = { mathclass='relation', adobename='uni2AB3', texname='preceqq' },
---~ [0x02AB4] = { mathclass='relation', adobename='uni2AB4', texname='succeqq' },
---~ [0x02AB5] = { mathclass='relation', adobename='uni2AB5', texname='precneqq' },
---~ [0x02AB6] = { mathclass='relation', adobename='uni2AB6', texname='succneqq' },
---~ [0x02AB7] = { mathclass='relation', adobename='uni2AB7', texname='precapprox' },
---~ [0x02AB8] = { mathclass='relation', adobename='uni2AB8', texname='succapprox' },
---~ [0x02AB9] = { mathclass='relation', adobename='uni2AB9', texname='precnapprox' },
---~ [0x02ABA] = { mathclass='relation', adobename='uni2ABA', texname='succnapprox' },
---~ [0x02ABB] = { mathclass='relation', adobename='uni2ABB', texname='Prec' },
---~ [0x02ABC] = { mathclass='relation', adobename='uni2ABC', texname='Succ' },
---~ [0x02ABD] = { mathclass='relation', adobename='uni2ABD', texname='subsetdot' },
---~ [0x02ABE] = { mathclass='relation', adobename='uni2ABE', texname='supsetdot' },
---~ [0x02ABF] = { mathclass='relation', adobename='uni2ABF', texname='subsetplus' },
---~ [0x02AC0] = { mathclass='relation', adobename='uni2AC0', texname='supsetplus' },
---~ [0x02AC1] = { mathclass='relation', adobename='uni2AC1', texname='submult' },
---~ [0x02AC2] = { mathclass='relation', adobename='uni2AC2', texname='supmult' },
---~ [0x02AC3] = { mathclass='relation', adobename='uni2AC3', texname='subedot' },
---~ [0x02AC4] = { mathclass='relation', adobename='uni2AC4', texname='supedot' },
---~ [0x02AC5] = { mathclass='relation', adobename='uni2AC5', texname='subseteqq' },
---~ [0x02AC6] = { mathclass='relation', adobename='uni2AC6', texname='supseteqq' },
---~ [0x02AC7] = { mathclass='relation', adobename='uni2AC7', texname='subsim' },
---~ [0x02AC8] = { mathclass='relation', adobename='uni2AC8', texname='supsim' },
---~ [0x02AC9] = { mathclass='relation', adobename='uni2AC9', texname='subsetapprox' },
---~ [0x02ACA] = { mathclass='relation', adobename='uni2ACA', texname='supsetapprox' },
---~ [0x02ACB] = { mathclass='relation', adobename='uni2ACB', texname='subsetneqq' },
---~ [0x02ACC] = { mathclass='relation', adobename='uni2ACC', texname='supsetneqq' },
---~ [0x02ACD] = { mathclass='relation', adobename='uni2ACD', texname='lsqhook' },
---~ [0x02ACE] = { mathclass='relation', adobename='uni2ACE', texname='rsqhook' },
---~ [0x02ACF] = { mathclass='relation', adobename='uni2ACF', texname='csub' },
---~ [0x02AD0] = { mathclass='relation', adobename='uni2AD0', texname='csup' },
---~ [0x02AD1] = { mathclass='relation', adobename='uni2AD1', texname='csube' },
---~ [0x02AD2] = { mathclass='relation', adobename='uni2AD2', texname='csupe' },
---~ [0x02AD3] = { mathclass='relation', adobename='uni2AD3', texname='subsup' },
---~ [0x02AD4] = { mathclass='relation', adobename='uni2AD4', texname='supsub' },
---~ [0x02AD5] = { mathclass='relation', adobename='uni2AD5', texname='subsub' },
---~ [0x02AD6] = { mathclass='relation', adobename='uni2AD6', texname='supsup' },
---~ [0x02AD7] = { mathclass='relation', adobename='uni2AD7', texname='suphsub' },
---~ [0x02AD8] = { mathclass='relation', adobename='uni2AD8', texname='supdsub' },
---~ [0x02AD9] = { mathclass='relation', adobename='uni2AD9', texname='forkv' },
---~ [0x02ADA] = { mathclass='relation', adobename='uni2ADA', texname='topfork' },
---~ [0x02ADB] = { mathclass='relation', adobename='uni2ADB', texname='mlcp' },
---~ [0x02ADC] = { mathclass='relation', adobename='uni2ADC', texname='forks' },
---~ [0x02ADD] = { mathclass='relation', adobename='uni2ADD', texname='forksnot' },
---~ [0x02ADE] = { mathclass='relation', adobename='uni2ADE', texname='shortlefttack' },
---~ [0x02ADF] = { mathclass='relation', adobename='uni2ADF', texname='shortdowntack' },
---~ [0x02AE0] = { mathclass='relation', adobename='uni2AE0', texname='shortuptack' },
---~ [0x02AE1] = { mathclass='unknown', adobename='uni2AE1', texname='perps' },
---~ [0x02AE2] = { mathclass='relation', adobename='uni2AE2', texname='vDdash' },
---~ [0x02AE3] = { mathclass='relation', adobename='uni2AE3', texname='dashV' },
---~ [0x02AE4] = { mathclass='relation', adobename='uni2AE4', texname='Dashv' },
---~ [0x02AE5] = { mathclass='relation', adobename='uni2AE5', texname='DashV' },
---~ [0x02AE6] = { mathclass='relation', adobename='uni2AE6', texname='varVdash' },
---~ [0x02AE7] = { mathclass='relation', adobename='uni2AE7', texname='Barv' },
---~ [0x02AE8] = { mathclass='relation', adobename='uni2AE8', texname='vBar' },
---~ [0x02AE9] = { mathclass='relation', adobename='uni2AE9', texname='vBarv' },
---~ [0x02AEA] = { mathclass='relation', adobename='uni2AEA', texname='barV' },
---~ [0x02AEB] = { mathclass='relation', adobename='uni2AEB', texname='Vbar' },
---~ [0x02AEC] = { mathclass='relation', adobename='uni2AEC', texname='Not' },
---~ [0x02AED] = { mathclass='relation', adobename='uni2AED', texname='bNot' },
---~ [0x02AEE] = { mathclass='relation', adobename='uni2AEE', texname='revnmid' },
---~ [0x02AEF] = { mathclass='relation', adobename='uni2AEF', texname='cirmid' },
---~ [0x02AF0] = { mathclass='relation', adobename='uni2AF0', texname='midcir' },
---~ [0x02AF1] = { mathclass='normal', adobename='uni2AF1', texname='topcir' },
---~ [0x02AF2] = { mathclass='relation', adobename='uni2AF2', texname='nhpar' },
---~ [0x02AF3] = { mathclass='relation', adobename='uni2AF3', texname='parsim' },
---~ [0x02AF4] = { mathclass='binary', adobename='uni2AF4', texname='interleave' },
---~ [0x02AF5] = { mathclass='binary', adobename='uni2AF5', texname='nhVvert' },
---~ [0x02AF6] = { mathclass='binary', adobename='uni2AF6', texname='threedotcolon' },
---~ [0x02AF7] = { mathclass='relation', adobename='uni2AF7', texname='lllnest' },
---~ [0x02AF8] = { mathclass='relation', adobename='uni2AF8', texname='gggnest' },
---~ [0x02AF9] = { mathclass='relation', adobename='uni2AF9', texname='leqqslant' },
---~ [0x02AFA] = { mathclass='relation', adobename='uni2AFA', texname='geqqslant' },
---~ [0x02AFB] = { mathclass='binary', adobename='uni2AFB', texname='trslash' },
---~ [0x02AFC] = { mathclass='large', adobename='uni2AFC', texname='biginterleave' },
---~ [0x02AFD] = { mathclass='binary', adobename='uni2AFD', texname='sslash' },
---~ [0x02AFE] = { mathclass='binary', adobename='uni2AFE', texname='talloblong' },
---~ [0x02AFF] = { mathclass='large', adobename='uni2AFF', texname='bigtalloblong' },
---~ [0x02B12] = { mathclass='normal', adobename='uni2B12', texname='squaretopblack' },
---~ [0x02B13] = { mathclass='normal', adobename='uni2B13', texname='squarebotblack' },
---~ [0x02B14] = { mathclass='normal', adobename='uni2B14', texname='squareurblack' },
---~ [0x02B15] = { mathclass='normal', adobename='uni2B15', texname='squarellblack' },
---~ [0x02B16] = { mathclass='normal', adobename='uni2B16', texname='diamondleftblack' },
---~ [0x02B17] = { mathclass='normal', adobename='uni2B17', texname='diamondrightblack' },
---~ [0x02B18] = { mathclass='normal', adobename='uni2B18', texname='diamondtopblack' },
---~ [0x02B19] = { mathclass='normal', adobename='uni2B19', texname='diamondbotblack' },
---~ [0x02B1A] = { mathclass='normal', adobename='uni2B1A', texname='dottedsquare' },
---~ [0x02B20] = { mathclass='normal', adobename='uni2B20', texname='pentagon' },
---~ [0x02B21] = { mathclass='normal', adobename='uni2B21', texname='varhexagon' },
---~ [0x02B22] = { mathclass='normal', adobename='uni2B22', texname='varhexagonblack' },
---~ [0x02B23] = { mathclass='normal', adobename='uni2B23', texname='hexagonblack' },
---~ [0x0300A] = { mathclass='unknown', adobename='uni300A', texname='lAngle' },
---~ [0x0300B] = { mathclass='unknown', adobename='uni300B', texname='rAngle' },
---~ [0x03012] = { mathclass='unknown', adobename='uni3012', texname='postalmark' },
---~ [0x03014] = { mathclass='opening', adobename='uni3014', texname='lbrbrak' },
---~ [0x03015] = { mathclass='closing', adobename='uni3015', texname='rbrbrak' },
---~ [0x03018] = { mathclass='opening', adobename='uni3018', texname='Lbrbrak' },
---~ [0x03019] = { mathclass='closing', adobename='uni3019', texname='Rbrbrak' },
---~ [0x0301A] = { mathclass='unknown', adobename='uni301A', texname='lBrack' },
---~ [0x0301B] = { mathclass='unknown', adobename='uni301B', texname='rBrack' },
---~ [0x0301E] = { mathclass='unknown', adobename='uni301E', texname='cjkdprimequote' },
---~ [0x03030] = { mathclass='unknown', adobename='uni3030', texname='hzigzag' },
---~ [0x0306E] = { mathclass='normal', adobename='uni306E', texname='hiraganano' },
---~ [0x1D400] = { mathclass='alphabetic', adobename='u1D400', texname='bfA' },
---~ [0x1D401] = { mathclass='alphabetic', adobename='u1D401', texname='bfB' },
---~ [0x1D402] = { mathclass='alphabetic', adobename='u1D402', texname='bfC' },
---~ [0x1D403] = { mathclass='alphabetic', adobename='u1D403', texname='bfD' },
---~ [0x1D404] = { mathclass='alphabetic', adobename='u1D404', texname='bfE' },
---~ [0x1D405] = { mathclass='alphabetic', adobename='u1D405', texname='bfF' },
---~ [0x1D406] = { mathclass='alphabetic', adobename='u1D406', texname='bfG' },
---~ [0x1D407] = { mathclass='alphabetic', adobename='u1D407', texname='bfH' },
---~ [0x1D408] = { mathclass='alphabetic', adobename='u1D408', texname='bfI' },
---~ [0x1D409] = { mathclass='alphabetic', adobename='u1D409', texname='bfJ' },
---~ [0x1D40A] = { mathclass='alphabetic', adobename='u1D40A', texname='bfK' },
---~ [0x1D40B] = { mathclass='alphabetic', adobename='u1D40B', texname='bfL' },
---~ [0x1D40C] = { mathclass='alphabetic', adobename='u1D40C', texname='bfM' },
---~ [0x1D40D] = { mathclass='alphabetic', adobename='u1D40D', texname='bfN' },
---~ [0x1D40E] = { mathclass='alphabetic', adobename='u1D40E', texname='bfO' },
---~ [0x1D40F] = { mathclass='alphabetic', adobename='u1D40F', texname='bfP' },
---~ [0x1D410] = { mathclass='alphabetic', adobename='u1D410', texname='bfQ' },
---~ [0x1D411] = { mathclass='alphabetic', adobename='u1D411', texname='bfR' },
---~ [0x1D412] = { mathclass='alphabetic', adobename='u1D412', texname='bfS' },
---~ [0x1D413] = { mathclass='alphabetic', adobename='u1D413', texname='bfT' },
---~ [0x1D414] = { mathclass='alphabetic', adobename='u1D414', texname='bfU' },
---~ [0x1D415] = { mathclass='alphabetic', adobename='u1D415', texname='bfV' },
---~ [0x1D416] = { mathclass='alphabetic', adobename='u1D416', texname='bfW' },
---~ [0x1D417] = { mathclass='alphabetic', adobename='u1D417', texname='bfX' },
---~ [0x1D418] = { mathclass='alphabetic', adobename='u1D418', texname='bfY' },
---~ [0x1D419] = { mathclass='alphabetic', adobename='u1D419', texname='bfZ' },
---~ [0x1D41A] = { mathclass='alphabetic', adobename='u1D41A', texname='bfa' },
---~ [0x1D41B] = { mathclass='alphabetic', adobename='u1D41B', texname='bfb' },
---~ [0x1D41C] = { mathclass='alphabetic', adobename='u1D41C', texname='bfc' },
---~ [0x1D41D] = { mathclass='alphabetic', adobename='u1D41D', texname='bfd' },
---~ [0x1D41E] = { mathclass='alphabetic', adobename='u1D41E', texname='bfe' },
---~ [0x1D41F] = { mathclass='alphabetic', adobename='u1D41F', texname='bff' },
---~ [0x1D420] = { mathclass='alphabetic', adobename='u1D420', texname='bfg' },
---~ [0x1D421] = { mathclass='alphabetic', adobename='u1D421', texname='bfh' },
---~ [0x1D422] = { mathclass='alphabetic', adobename='u1D422', texname='bfi' },
---~ [0x1D423] = { mathclass='alphabetic', adobename='u1D423', texname='bfj' },
---~ [0x1D424] = { mathclass='alphabetic', adobename='u1D424', texname='bfk' },
---~ [0x1D425] = { mathclass='alphabetic', adobename='u1D425', texname='bfl' },
---~ [0x1D426] = { mathclass='alphabetic', adobename='u1D426', texname='bfm' },
---~ [0x1D427] = { mathclass='alphabetic', adobename='u1D427', texname='bfn' },
---~ [0x1D428] = { mathclass='alphabetic', adobename='u1D428', texname='bfo' },
---~ [0x1D429] = { mathclass='alphabetic', adobename='u1D429', texname='bfp' },
---~ [0x1D42A] = { mathclass='alphabetic', adobename='u1D42A', texname='bfq' },
---~ [0x1D42B] = { mathclass='alphabetic', adobename='u1D42B', texname='bfr' },
---~ [0x1D42C] = { mathclass='alphabetic', adobename='u1D42C', texname='bfs' },
---~ [0x1D42D] = { mathclass='alphabetic', adobename='u1D42D', texname='bft' },
---~ [0x1D42E] = { mathclass='alphabetic', adobename='u1D42E', texname='bfu' },
---~ [0x1D42F] = { mathclass='alphabetic', adobename='u1D42F', texname='bfv' },
---~ [0x1D430] = { mathclass='alphabetic', adobename='u1D430', texname='bfw' },
---~ [0x1D431] = { mathclass='alphabetic', adobename='u1D431', texname='bfx' },
---~ [0x1D432] = { mathclass='alphabetic', adobename='u1D432', texname='bfy' },
---~ [0x1D433] = { mathclass='alphabetic', adobename='u1D433', texname='bfz' },
---~ [0x1D434] = { mathclass='alphabetic', adobename='u1D434', texname='itA' },
---~ [0x1D435] = { mathclass='alphabetic', adobename='u1D435', texname='itB' },
---~ [0x1D436] = { mathclass='alphabetic', adobename='u1D436', texname='itC' },
---~ [0x1D437] = { mathclass='alphabetic', adobename='u1D437', texname='itD' },
---~ [0x1D438] = { mathclass='alphabetic', adobename='u1D438', texname='itE' },
---~ [0x1D439] = { mathclass='alphabetic', adobename='u1D439', texname='itF' },
---~ [0x1D43A] = { mathclass='alphabetic', adobename='u1D43A', texname='itG' },
---~ [0x1D43B] = { mathclass='alphabetic', adobename='u1D43B', texname='itH' },
---~ [0x1D43C] = { mathclass='alphabetic', adobename='u1D43C', texname='itI' },
---~ [0x1D43D] = { mathclass='alphabetic', adobename='u1D43D', texname='itJ' },
---~ [0x1D43E] = { mathclass='alphabetic', adobename='u1D43E', texname='itK' },
---~ [0x1D43F] = { mathclass='alphabetic', adobename='u1D43F', texname='itL' },
---~ [0x1D440] = { mathclass='alphabetic', adobename='u1D440', texname='itM' },
---~ [0x1D441] = { mathclass='alphabetic', adobename='u1D441', texname='itN' },
---~ [0x1D442] = { mathclass='alphabetic', adobename='u1D442', texname='itO' },
---~ [0x1D443] = { mathclass='alphabetic', adobename='u1D443', texname='itP' },
---~ [0x1D444] = { mathclass='alphabetic', adobename='u1D444', texname='itQ' },
---~ [0x1D445] = { mathclass='alphabetic', adobename='u1D445', texname='itR' },
---~ [0x1D446] = { mathclass='alphabetic', adobename='u1D446', texname='itS' },
---~ [0x1D447] = { mathclass='alphabetic', adobename='u1D447', texname='itT' },
---~ [0x1D448] = { mathclass='alphabetic', adobename='u1D448', texname='itU' },
---~ [0x1D449] = { mathclass='alphabetic', adobename='u1D449', texname='itV' },
---~ [0x1D44A] = { mathclass='alphabetic', adobename='u1D44A', texname='itW' },
---~ [0x1D44B] = { mathclass='alphabetic', adobename='u1D44B', texname='itX' },
---~ [0x1D44C] = { mathclass='alphabetic', adobename='u1D44C', texname='itY' },
---~ [0x1D44D] = { mathclass='alphabetic', adobename='u1D44D', texname='itZ' },
---~ [0x1D44E] = { mathclass='alphabetic', adobename='u1D44E', texname='ita' },
---~ [0x1D44F] = { mathclass='alphabetic', adobename='u1D44F', texname='itb' },
---~ [0x1D450] = { mathclass='alphabetic', adobename='u1D450', texname='itc' },
---~ [0x1D451] = { mathclass='alphabetic', adobename='u1D451', texname='itd' },
---~ [0x1D452] = { mathclass='alphabetic', adobename='u1D452', texname='ite' },
---~ [0x1D453] = { mathclass='alphabetic', adobename='u1D453', texname='itf' },
---~ [0x1D454] = { mathclass='alphabetic', adobename='u1D454', texname='itg' },
---~ [0x1D455] = { mathclass='alphabetic', adobename='uni210E', texname='ith' },
---~ [0x1D456] = { mathclass='alphabetic', adobename='u1D456', texname='iti' },
---~ [0x1D457] = { mathclass='alphabetic', adobename='u1D457', texname='itj' },
---~ [0x1D458] = { mathclass='alphabetic', adobename='u1D458', texname='itk' },
---~ [0x1D459] = { mathclass='alphabetic', adobename='u1D459', texname='itl' },
---~ [0x1D45A] = { mathclass='alphabetic', adobename='u1D45A', texname='itm' },
---~ [0x1D45B] = { mathclass='alphabetic', adobename='u1D45B', texname='itn' },
---~ [0x1D45C] = { mathclass='alphabetic', adobename='u1D45C', texname='ito' },
---~ [0x1D45D] = { mathclass='alphabetic', adobename='u1D45D', texname='itp' },
---~ [0x1D45E] = { mathclass='alphabetic', adobename='u1D45E', texname='itq' },
---~ [0x1D45F] = { mathclass='alphabetic', adobename='u1D45F', texname='itr' },
---~ [0x1D460] = { mathclass='alphabetic', adobename='u1D460', texname='its' },
---~ [0x1D461] = { mathclass='alphabetic', adobename='u1D461', texname='itt' },
---~ [0x1D462] = { mathclass='alphabetic', adobename='u1D462', texname='itu' },
---~ [0x1D463] = { mathclass='alphabetic', adobename='u1D463', texname='itv' },
---~ [0x1D464] = { mathclass='alphabetic', adobename='u1D464', texname='itw' },
---~ [0x1D465] = { mathclass='alphabetic', adobename='u1D465', texname='itx' },
---~ [0x1D466] = { mathclass='alphabetic', adobename='u1D466', texname='ity' },
---~ [0x1D467] = { mathclass='alphabetic', adobename='u1D467', texname='itz' },
---~ [0x1D468] = { mathclass='alphabetic', adobename='u1D468', texname='bfitA' },
---~ [0x1D469] = { mathclass='alphabetic', adobename='u1D469', texname='bfitB' },
---~ [0x1D46A] = { mathclass='alphabetic', adobename='u1D46A', texname='bfitC' },
---~ [0x1D46B] = { mathclass='alphabetic', adobename='u1D46B', texname='bfitD' },
---~ [0x1D46C] = { mathclass='alphabetic', adobename='u1D46C', texname='bfitE' },
---~ [0x1D46D] = { mathclass='alphabetic', adobename='u1D46D', texname='bfitF' },
---~ [0x1D46E] = { mathclass='alphabetic', adobename='u1D46E', texname='bfitG' },
---~ [0x1D46F] = { mathclass='alphabetic', adobename='u1D46F', texname='bfitH' },
---~ [0x1D470] = { mathclass='alphabetic', adobename='u1D470', texname='bfitI' },
---~ [0x1D471] = { mathclass='alphabetic', adobename='u1D471', texname='bfitJ' },
---~ [0x1D472] = { mathclass='alphabetic', adobename='u1D472', texname='bfitK' },
---~ [0x1D473] = { mathclass='alphabetic', adobename='u1D473', texname='bfitL' },
---~ [0x1D474] = { mathclass='alphabetic', adobename='u1D474', texname='bfitM' },
---~ [0x1D475] = { mathclass='alphabetic', adobename='u1D475', texname='bfitN' },
---~ [0x1D476] = { mathclass='alphabetic', adobename='u1D476', texname='bfitO' },
---~ [0x1D477] = { mathclass='alphabetic', adobename='u1D477', texname='bfitP' },
---~ [0x1D478] = { mathclass='alphabetic', adobename='u1D478', texname='bfitQ' },
---~ [0x1D479] = { mathclass='alphabetic', adobename='u1D479', texname='bfitR' },
---~ [0x1D47A] = { mathclass='alphabetic', adobename='u1D47A', texname='bfitS' },
---~ [0x1D47B] = { mathclass='alphabetic', adobename='u1D47B', texname='bfitT' },
---~ [0x1D47C] = { mathclass='alphabetic', adobename='u1D47C', texname='bfitU' },
---~ [0x1D47D] = { mathclass='alphabetic', adobename='u1D47D', texname='bfitV' },
---~ [0x1D47E] = { mathclass='alphabetic', adobename='u1D47E', texname='bfitW' },
---~ [0x1D47F] = { mathclass='alphabetic', adobename='u1D47F', texname='bfitX' },
---~ [0x1D480] = { mathclass='alphabetic', adobename='u1D480', texname='bfitY' },
---~ [0x1D481] = { mathclass='alphabetic', adobename='u1D481', texname='bfitZ' },
---~ [0x1D482] = { mathclass='alphabetic', adobename='u1D482', texname='bfita' },
---~ [0x1D483] = { mathclass='alphabetic', adobename='u1D483', texname='bfitb' },
---~ [0x1D484] = { mathclass='alphabetic', adobename='u1D484', texname='bfitc' },
---~ [0x1D485] = { mathclass='alphabetic', adobename='u1D485', texname='bfitd' },
---~ [0x1D486] = { mathclass='alphabetic', adobename='u1D486', texname='bfite' },
---~ [0x1D487] = { mathclass='alphabetic', adobename='u1D487', texname='bfitf' },
---~ [0x1D488] = { mathclass='alphabetic', adobename='u1D488', texname='bfitg' },
---~ [0x1D489] = { mathclass='alphabetic', adobename='u1D489', texname='bfith' },
---~ [0x1D48A] = { mathclass='alphabetic', adobename='u1D48A', texname='bfiti' },
---~ [0x1D48B] = { mathclass='alphabetic', adobename='u1D48B', texname='bfitj' },
---~ [0x1D48C] = { mathclass='alphabetic', adobename='u1D48C', texname='bfitk' },
---~ [0x1D48D] = { mathclass='alphabetic', adobename='u1D48D', texname='bfitl' },
---~ [0x1D48E] = { mathclass='alphabetic', adobename='u1D48E', texname='bfitm' },
---~ [0x1D48F] = { mathclass='alphabetic', adobename='u1D48F', texname='bfitn' },
---~ [0x1D490] = { mathclass='alphabetic', adobename='u1D490', texname='bfito' },
---~ [0x1D491] = { mathclass='alphabetic', adobename='u1D491', texname='bfitp' },
---~ [0x1D492] = { mathclass='alphabetic', adobename='u1D492', texname='bfitq' },
---~ [0x1D493] = { mathclass='alphabetic', adobename='u1D493', texname='bfitr' },
---~ [0x1D494] = { mathclass='alphabetic', adobename='u1D494', texname='bfits' },
---~ [0x1D495] = { mathclass='alphabetic', adobename='u1D495', texname='bfitt' },
---~ [0x1D496] = { mathclass='alphabetic', adobename='u1D496', texname='bfitu' },
---~ [0x1D497] = { mathclass='alphabetic', adobename='u1D497', texname='bfitv' },
---~ [0x1D498] = { mathclass='alphabetic', adobename='u1D498', texname='bfitw' },
---~ [0x1D499] = { mathclass='alphabetic', adobename='u1D499', texname='bfitx' },
---~ [0x1D49A] = { mathclass='alphabetic', adobename='u1D49A', texname='bfity' },
---~ [0x1D49B] = { mathclass='alphabetic', adobename='u1D49B', texname='bfitz' },
---~ [0x1D49C] = { mathclass='alphabetic', adobename='u1D49C', texname='scrA' },
---~ [0x1D49D] = { mathclass='alphabetic', adobename='uni212C', texname='scrB' },
---~ [0x1D49E] = { mathclass='alphabetic', adobename='u1D49E', texname='scrC' },
---~ [0x1D49F] = { mathclass='alphabetic', adobename='u1D49F', texname='scrD' },
---~ [0x1D4A0] = { mathclass='alphabetic', adobename='uni2130', texname='scrE' },
---~ [0x1D4A1] = { mathclass='alphabetic', adobename='uni2131', texname='scrF' },
---~ [0x1D4A2] = { mathclass='alphabetic', adobename='u1D4A2', texname='scrG' },
---~ [0x1D4A3] = { mathclass='alphabetic', adobename='uni210B', texname='scrH' },
---~ [0x1D4A4] = { mathclass='alphabetic', adobename='uni2110', texname='scrI' },
---~ [0x1D4A5] = { mathclass='alphabetic', adobename='u1D4A5', texname='scrJ' },
---~ [0x1D4A6] = { mathclass='alphabetic', adobename='u1D4A6', texname='scrK' },
---~ [0x1D4A7] = { mathclass='alphabetic', adobename='uni2112', texname='scrL' },
---~ [0x1D4A8] = { mathclass='alphabetic', adobename='uni2133', texname='scrM' },
---~ [0x1D4A9] = { mathclass='alphabetic', adobename='u1D4A9', texname='scrN' },
---~ [0x1D4AA] = { mathclass='alphabetic', adobename='u1D4AA', texname='scrO' },
---~ [0x1D4AB] = { mathclass='alphabetic', adobename='u1D4AB', texname='scrP' },
---~ [0x1D4AC] = { mathclass='alphabetic', adobename='u1D4AC', texname='scrQ' },
---~ [0x1D4AD] = { mathclass='alphabetic', adobename='uni211B', texname='scrR' },
---~ [0x1D4AE] = { mathclass='alphabetic', adobename='u1D4AE', texname='scrS' },
---~ [0x1D4AF] = { mathclass='alphabetic', adobename='u1D4AF', texname='scrT' },
---~ [0x1D4B0] = { mathclass='alphabetic', adobename='u1D4B0', texname='scrU' },
---~ [0x1D4B1] = { mathclass='alphabetic', adobename='u1D4B1', texname='scrV' },
---~ [0x1D4B2] = { mathclass='alphabetic', adobename='u1D4B2', texname='scrW' },
---~ [0x1D4B3] = { mathclass='alphabetic', adobename='u1D4B3', texname='scrX' },
---~ [0x1D4B4] = { mathclass='alphabetic', adobename='u1D4B4', texname='scrY' },
---~ [0x1D4B5] = { mathclass='alphabetic', adobename='u1D4B5', texname='scrZ' },
---~ [0x1D4B6] = { mathclass='alphabetic', adobename='u1D4B6', texname='scra' },
---~ [0x1D4B7] = { mathclass='alphabetic', adobename='u1D4B7', texname='scrb' },
---~ [0x1D4B8] = { mathclass='alphabetic', adobename='u1D4B8', texname='scrc' },
---~ [0x1D4B9] = { mathclass='alphabetic', adobename='u1D4B9', texname='scrd' },
---~ [0x1D4BA] = { mathclass='alphabetic', adobename='uni212F', texname='scre' },
---~ [0x1D4BB] = { mathclass='alphabetic', adobename='u1D4BB', texname='scrf' },
---~ [0x1D4BC] = { mathclass='alphabetic', adobename='uni210A', texname='scrg' },
---~ [0x1D4BD] = { mathclass='alphabetic', adobename='u1D4BD', texname='scrh' },
---~ [0x1D4BE] = { mathclass='alphabetic', adobename='u1D4BE', texname='scri' },
---~ [0x1D4BF] = { mathclass='alphabetic', adobename='u1D4BF', texname='scrj' },
---~ [0x1D4C0] = { mathclass='alphabetic', adobename='u1D4C0', texname='scrk' },
---~ [0x1D4C1] = { mathclass='alphabetic', adobename='u1D4C1', texname='scrl' },
---~ [0x1D4C2] = { mathclass='alphabetic', adobename='u1D4C2', texname='scrm' },
---~ [0x1D4C3] = { mathclass='alphabetic', adobename='u1D4C3', texname='scrn' },
---~ [0x1D4C4] = { mathclass='alphabetic', adobename='uni2134', texname='scro' },
---~ [0x1D4C5] = { mathclass='alphabetic', adobename='u1D4C5', texname='scrp' },
---~ [0x1D4C6] = { mathclass='alphabetic', adobename='u1D4C6', texname='scrq' },
---~ [0x1D4C7] = { mathclass='alphabetic', adobename='u1D4C7', texname='scrr' },
---~ [0x1D4C8] = { mathclass='alphabetic', adobename='u1D4C8', texname='scrs' },
---~ [0x1D4C9] = { mathclass='alphabetic', adobename='u1D4C9', texname='scrt' },
---~ [0x1D4CA] = { mathclass='alphabetic', adobename='u1D4CA', texname='scru' },
---~ [0x1D4CB] = { mathclass='alphabetic', adobename='u1D4CB', texname='scrv' },
---~ [0x1D4CC] = { mathclass='alphabetic', adobename='u1D4CC', texname='scrw' },
---~ [0x1D4CD] = { mathclass='alphabetic', adobename='u1D4CD', texname='scrx' },
---~ [0x1D4CE] = { mathclass='alphabetic', adobename='u1D4CE', texname='scry' },
---~ [0x1D4CF] = { mathclass='alphabetic', adobename='u1D4CF', texname='scrz' },
---~ [0x1D4D0] = { mathclass='alphabetic', adobename='u1D4D0', texname='bfscrA' },
---~ [0x1D4D1] = { mathclass='alphabetic', adobename='u1D4D1', texname='bfscrB' },
---~ [0x1D4D2] = { mathclass='alphabetic', adobename='u1D4D2', texname='bfscrC' },
---~ [0x1D4D3] = { mathclass='alphabetic', adobename='u1D4D3', texname='bfscrD' },
---~ [0x1D4D4] = { mathclass='alphabetic', adobename='u1D4D4', texname='bfscrE' },
---~ [0x1D4D5] = { mathclass='alphabetic', adobename='u1D4D5', texname='bfscrF' },
---~ [0x1D4D6] = { mathclass='alphabetic', adobename='u1D4D6', texname='bfscrG' },
---~ [0x1D4D7] = { mathclass='alphabetic', adobename='u1D4D7', texname='bfscrH' },
---~ [0x1D4D8] = { mathclass='alphabetic', adobename='u1D4D8', texname='bfscrI' },
---~ [0x1D4D9] = { mathclass='alphabetic', adobename='u1D4D9', texname='bfscrJ' },
---~ [0x1D4DA] = { mathclass='alphabetic', adobename='u1D4DA', texname='bfscrK' },
---~ [0x1D4DB] = { mathclass='alphabetic', adobename='u1D4DB', texname='bfscrL' },
---~ [0x1D4DC] = { mathclass='alphabetic', adobename='u1D4DC', texname='bfscrM' },
---~ [0x1D4DD] = { mathclass='alphabetic', adobename='u1D4DD', texname='bfscrN' },
---~ [0x1D4DE] = { mathclass='alphabetic', adobename='u1D4DE', texname='bfscrO' },
---~ [0x1D4DF] = { mathclass='alphabetic', adobename='u1D4DF', texname='bfscrP' },
---~ [0x1D4E0] = { mathclass='alphabetic', adobename='u1D4E0', texname='bfscrQ' },
---~ [0x1D4E1] = { mathclass='alphabetic', adobename='u1D4E1', texname='bfscrR' },
---~ [0x1D4E2] = { mathclass='alphabetic', adobename='u1D4E2', texname='bfscrS' },
---~ [0x1D4E3] = { mathclass='alphabetic', adobename='u1D4E3', texname='bfscrT' },
---~ [0x1D4E4] = { mathclass='alphabetic', adobename='u1D4E4', texname='bfscrU' },
---~ [0x1D4E5] = { mathclass='alphabetic', adobename='u1D4E5', texname='bfscrV' },
---~ [0x1D4E6] = { mathclass='alphabetic', adobename='u1D4E6', texname='bfscrW' },
---~ [0x1D4E7] = { mathclass='alphabetic', adobename='u1D4E7', texname='bfscrX' },
---~ [0x1D4E8] = { mathclass='alphabetic', adobename='u1D4E8', texname='bfscrY' },
---~ [0x1D4E9] = { mathclass='alphabetic', adobename='u1D4E9', texname='bfscrZ' },
---~ [0x1D4EA] = { mathclass='alphabetic', adobename='u1D4EA', texname='bfscra' },
---~ [0x1D4EB] = { mathclass='alphabetic', adobename='u1D4EB', texname='bfscrb' },
---~ [0x1D4EC] = { mathclass='alphabetic', adobename='u1D4EC', texname='bfscrc' },
---~ [0x1D4ED] = { mathclass='alphabetic', adobename='u1D4ED', texname='bfscrd' },
---~ [0x1D4EE] = { mathclass='alphabetic', adobename='u1D4EE', texname='bfscre' },
---~ [0x1D4EF] = { mathclass='alphabetic', adobename='u1D4EF', texname='bfscrf' },
---~ [0x1D4F0] = { mathclass='alphabetic', adobename='u1D4F0', texname='bfscrg' },
---~ [0x1D4F1] = { mathclass='alphabetic', adobename='u1D4F1', texname='bfscrh' },
---~ [0x1D4F2] = { mathclass='alphabetic', adobename='u1D4F2', texname='bfscri' },
---~ [0x1D4F3] = { mathclass='alphabetic', adobename='u1D4F3', texname='bfscrj' },
---~ [0x1D4F4] = { mathclass='alphabetic', adobename='u1D4F4', texname='bfscrk' },
---~ [0x1D4F5] = { mathclass='alphabetic', adobename='u1D4F5', texname='bfscrl' },
---~ [0x1D4F6] = { mathclass='alphabetic', adobename='u1D4F6', texname='bfscrm' },
---~ [0x1D4F7] = { mathclass='alphabetic', adobename='u1D4F7', texname='bfscrn' },
---~ [0x1D4F8] = { mathclass='alphabetic', adobename='u1D4F8', texname='bfscro' },
---~ [0x1D4F9] = { mathclass='alphabetic', adobename='u1D4F9', texname='bfscrp' },
---~ [0x1D4FA] = { mathclass='alphabetic', adobename='u1D4FA', texname='bfscrq' },
---~ [0x1D4FB] = { mathclass='alphabetic', adobename='u1D4FB', texname='bfscrr' },
---~ [0x1D4FC] = { mathclass='alphabetic', adobename='u1D4FC', texname='bfscrs' },
---~ [0x1D4FD] = { mathclass='alphabetic', adobename='u1D4FD', texname='bfscrt' },
---~ [0x1D4FE] = { mathclass='alphabetic', adobename='u1D4FE', texname='bfscru' },
---~ [0x1D4FF] = { mathclass='alphabetic', adobename='u1D4FF', texname='bfscrv' },
---~ [0x1D500] = { mathclass='alphabetic', adobename='u1D500', texname='bfscrw' },
---~ [0x1D501] = { mathclass='alphabetic', adobename='u1D501', texname='bfscrx' },
---~ [0x1D502] = { mathclass='alphabetic', adobename='u1D502', texname='bfscry' },
---~ [0x1D503] = { mathclass='alphabetic', adobename='u1D503', texname='bfscrz' },
---~ [0x1D504] = { mathclass='alphabetic', adobename='u1D504', texname='frakA' },
---~ [0x1D505] = { mathclass='alphabetic', adobename='u1D505', texname='frakB' },
---~ [0x1D506] = { mathclass='alphabetic', adobename='uni212D', texname='frakC' },
---~ [0x1D507] = { mathclass='alphabetic', adobename='u1D507', texname='frakD' },
---~ [0x1D508] = { mathclass='alphabetic', adobename='u1D508', texname='frakE' },
---~ [0x1D509] = { mathclass='alphabetic', adobename='u1D509', texname='frakF' },
---~ [0x1D50A] = { mathclass='alphabetic', adobename='u1D50A', texname='frakG' },
---~ [0x1D50B] = { mathclass='alphabetic', adobename='uni210C', texname='frakH' },
---~ [0x1D50C] = { mathclass='alphabetic', adobename='uni2111', texname='frakI' },
---~ [0x1D50D] = { mathclass='alphabetic', adobename='u1D50D', texname='frakJ' },
---~ [0x1D50E] = { mathclass='alphabetic', adobename='u1D50E', texname='frakK' },
---~ [0x1D50F] = { mathclass='alphabetic', adobename='u1D50F', texname='frakL' },
---~ [0x1D510] = { mathclass='alphabetic', adobename='u1D510', texname='frakM' },
---~ [0x1D511] = { mathclass='alphabetic', adobename='u1D511', texname='frakN' },
---~ [0x1D512] = { mathclass='alphabetic', adobename='u1D512', texname='frakO' },
---~ [0x1D513] = { mathclass='alphabetic', adobename='u1D513', texname='frakP' },
---~ [0x1D514] = { mathclass='alphabetic', adobename='u1D514', texname='frakQ' },
---~ [0x1D515] = { mathclass='alphabetic', adobename='uni211C', texname='frakR' },
---~ [0x1D516] = { mathclass='alphabetic', adobename='u1D516', texname='frakS' },
---~ [0x1D517] = { mathclass='alphabetic', adobename='u1D517', texname='frakT' },
---~ [0x1D518] = { mathclass='alphabetic', adobename='u1D518', texname='frakU' },
---~ [0x1D519] = { mathclass='alphabetic', adobename='u1D519', texname='frakV' },
---~ [0x1D51A] = { mathclass='alphabetic', adobename='u1D51A', texname='frakW' },
---~ [0x1D51B] = { mathclass='alphabetic', adobename='u1D51B', texname='frakX' },
---~ [0x1D51C] = { mathclass='alphabetic', adobename='u1D51C', texname='frakY' },
---~ [0x1D51D] = { mathclass='alphabetic', adobename='uni2128', texname='frakZ' },
---~ [0x1D51E] = { mathclass='alphabetic', adobename='u1D51E', texname='fraka' },
---~ [0x1D51F] = { mathclass='alphabetic', adobename='u1D51F', texname='frakb' },
---~ [0x1D520] = { mathclass='alphabetic', adobename='u1D520', texname='frakc' },
---~ [0x1D521] = { mathclass='alphabetic', adobename='u1D521', texname='frakd' },
---~ [0x1D522] = { mathclass='alphabetic', adobename='u1D522', texname='frake' },
---~ [0x1D523] = { mathclass='alphabetic', adobename='u1D523', texname='frakf' },
---~ [0x1D524] = { mathclass='alphabetic', adobename='u1D524', texname='frakg' },
---~ [0x1D525] = { mathclass='alphabetic', adobename='u1D525', texname='frakh' },
---~ [0x1D526] = { mathclass='alphabetic', adobename='u1D526', texname='fraki' },
---~ [0x1D527] = { mathclass='alphabetic', adobename='u1D527', texname='frakj' },
---~ [0x1D528] = { mathclass='alphabetic', adobename='u1D528', texname='frakk' },
---~ [0x1D529] = { mathclass='alphabetic', adobename='u1D529', texname='frakl' },
---~ [0x1D52A] = { mathclass='alphabetic', adobename='u1D52A', texname='frakm' },
---~ [0x1D52B] = { mathclass='alphabetic', adobename='u1D52B', texname='frakn' },
---~ [0x1D52C] = { mathclass='alphabetic', adobename='u1D52C', texname='frako' },
---~ [0x1D52D] = { mathclass='alphabetic', adobename='u1D52D', texname='frakp' },
---~ [0x1D52E] = { mathclass='alphabetic', adobename='u1D52E', texname='frakq' },
---~ [0x1D52F] = { mathclass='alphabetic', adobename='u1D52F', texname='frakr' },
---~ [0x1D530] = { mathclass='alphabetic', adobename='u1D530', texname='fraks' },
---~ [0x1D531] = { mathclass='alphabetic', adobename='u1D531', texname='frakt' },
---~ [0x1D532] = { mathclass='alphabetic', adobename='u1D532', texname='fraku' },
---~ [0x1D533] = { mathclass='alphabetic', adobename='u1D533', texname='frakv' },
---~ [0x1D534] = { mathclass='alphabetic', adobename='u1D534', texname='frakw' },
---~ [0x1D535] = { mathclass='alphabetic', adobename='u1D535', texname='frakx' },
---~ [0x1D536] = { mathclass='alphabetic', adobename='u1D536', texname='fraky' },
---~ [0x1D537] = { mathclass='alphabetic', adobename='u1D537', texname='frakz' },
---~ [0x1D538] = { mathclass='alphabetic', adobename='u1D538', texname='BbbA' },
---~ [0x1D539] = { mathclass='alphabetic', adobename='u1D539', texname='BbbB' },
---~ [0x1D53A] = { mathclass='alphabetic', adobename='uni2102', texname='BbbC' },
---~ [0x1D53B] = { mathclass='alphabetic', adobename='u1D53B', texname='BbbD' },
---~ [0x1D53C] = { mathclass='alphabetic', adobename='u1D53C', texname='BbbE' },
---~ [0x1D53D] = { mathclass='alphabetic', adobename='u1D53D', texname='BbbF' },
---~ [0x1D53E] = { mathclass='alphabetic', adobename='u1D53E', texname='BbbG' },
---~ [0x1D53F] = { mathclass='alphabetic', adobename='uni210D', texname='BbbH' },
---~ [0x1D540] = { mathclass='alphabetic', adobename='u1D540', texname='BbbI' },
---~ [0x1D541] = { mathclass='alphabetic', adobename='u1D541', texname='BbbJ' },
---~ [0x1D542] = { mathclass='alphabetic', adobename='u1D542', texname='BbbK' },
---~ [0x1D543] = { mathclass='alphabetic', adobename='u1D543', texname='BbbL' },
---~ [0x1D544] = { mathclass='alphabetic', adobename='u1D544', texname='BbbM' },
---~ [0x1D545] = { mathclass='alphabetic', adobename='uni2115', texname='BbbN' },
---~ [0x1D546] = { mathclass='alphabetic', adobename='u1D546', texname='BbbO' },
---~ [0x1D547] = { mathclass='alphabetic', adobename='uni2119', texname='BbbP' },
---~ [0x1D548] = { mathclass='alphabetic', adobename='uni211A', texname='BbbQ' },
---~ [0x1D549] = { mathclass='alphabetic', adobename='uni211D', texname='BbbR' },
---~ [0x1D54A] = { mathclass='alphabetic', adobename='u1D54A', texname='BbbS' },
---~ [0x1D54B] = { mathclass='alphabetic', adobename='u1D54B', texname='BbbT' },
---~ [0x1D54C] = { mathclass='alphabetic', adobename='u1D54C', texname='BbbU' },
---~ [0x1D54D] = { mathclass='alphabetic', adobename='u1D54D', texname='BbbV' },
---~ [0x1D54E] = { mathclass='alphabetic', adobename='u1D54E', texname='BbbW' },
---~ [0x1D54F] = { mathclass='alphabetic', adobename='u1D54F', texname='BbbX' },
---~ [0x1D550] = { mathclass='alphabetic', adobename='u1D550', texname='BbbY' },
---~ [0x1D551] = { mathclass='alphabetic', adobename='uni2124', texname='BbbZ' },
---~ [0x1D552] = { mathclass='alphabetic', adobename='u1D552', texname='Bbba' },
---~ [0x1D553] = { mathclass='alphabetic', adobename='u1D553', texname='Bbbb' },
---~ [0x1D554] = { mathclass='alphabetic', adobename='u1D554', texname='Bbbc' },
---~ [0x1D555] = { mathclass='alphabetic', adobename='u1D555', texname='Bbbd' },
---~ [0x1D556] = { mathclass='alphabetic', adobename='u1D556', texname='Bbbe' },
---~ [0x1D557] = { mathclass='alphabetic', adobename='u1D557', texname='Bbbf' },
---~ [0x1D558] = { mathclass='alphabetic', adobename='u1D558', texname='Bbbg' },
---~ [0x1D559] = { mathclass='alphabetic', adobename='u1D559', texname='Bbbh' },
---~ [0x1D55A] = { mathclass='alphabetic', adobename='u1D55A', texname='Bbbi' },
---~ [0x1D55B] = { mathclass='alphabetic', adobename='u1D55B', texname='Bbbj' },
---~ [0x1D55C] = { mathclass='alphabetic', adobename='u1D55C', texname='Bbbk' },
---~ [0x1D55D] = { mathclass='alphabetic', adobename='u1D55D', texname='Bbbl' },
---~ [0x1D55E] = { mathclass='alphabetic', adobename='u1D55E', texname='Bbbm' },
---~ [0x1D55F] = { mathclass='alphabetic', adobename='u1D55F', texname='Bbbn' },
---~ [0x1D560] = { mathclass='alphabetic', adobename='u1D560', texname='Bbbo' },
---~ [0x1D561] = { mathclass='alphabetic', adobename='u1D561', texname='Bbbp' },
---~ [0x1D562] = { mathclass='alphabetic', adobename='u1D562', texname='Bbbq' },
---~ [0x1D563] = { mathclass='alphabetic', adobename='u1D563', texname='Bbbr' },
---~ [0x1D564] = { mathclass='alphabetic', adobename='u1D564', texname='Bbbs' },
---~ [0x1D565] = { mathclass='alphabetic', adobename='u1D565', texname='Bbbt' },
---~ [0x1D566] = { mathclass='alphabetic', adobename='u1D566', texname='Bbbu' },
---~ [0x1D567] = { mathclass='alphabetic', adobename='u1D567', texname='Bbbv' },
---~ [0x1D568] = { mathclass='alphabetic', adobename='u1D568', texname='Bbbw' },
---~ [0x1D569] = { mathclass='alphabetic', adobename='u1D569', texname='Bbbx' },
---~ [0x1D56A] = { mathclass='alphabetic', adobename='u1D56A', texname='Bbby' },
---~ [0x1D56B] = { mathclass='alphabetic', adobename='u1D56B', texname='Bbbz' },
---~ [0x1D56C] = { mathclass='alphabetic', adobename='u1D56C', texname='bffrakA' },
---~ [0x1D56D] = { mathclass='alphabetic', adobename='u1D56D', texname='bffrakB' },
---~ [0x1D56E] = { mathclass='alphabetic', adobename='u1D56E', texname='bffrakC' },
---~ [0x1D56F] = { mathclass='alphabetic', adobename='u1D56F', texname='bffrakD' },
---~ [0x1D570] = { mathclass='alphabetic', adobename='u1D570', texname='bffrakE' },
---~ [0x1D571] = { mathclass='alphabetic', adobename='u1D571', texname='bffrakF' },
---~ [0x1D572] = { mathclass='alphabetic', adobename='u1D572', texname='bffrakG' },
---~ [0x1D573] = { mathclass='alphabetic', adobename='u1D573', texname='bffrakH' },
---~ [0x1D574] = { mathclass='alphabetic', adobename='u1D574', texname='bffrakI' },
---~ [0x1D575] = { mathclass='alphabetic', adobename='u1D575', texname='bffrakJ' },
---~ [0x1D576] = { mathclass='alphabetic', adobename='u1D576', texname='bffrakK' },
---~ [0x1D577] = { mathclass='alphabetic', adobename='u1D577', texname='bffrakL' },
---~ [0x1D578] = { mathclass='alphabetic', adobename='u1D578', texname='bffrakM' },
---~ [0x1D579] = { mathclass='alphabetic', adobename='u1D579', texname='bffrakN' },
---~ [0x1D57A] = { mathclass='alphabetic', adobename='u1D57A', texname='bffrakO' },
---~ [0x1D57B] = { mathclass='alphabetic', adobename='u1D57B', texname='bffrakP' },
---~ [0x1D57C] = { mathclass='alphabetic', adobename='u1D57C', texname='bffrakQ' },
---~ [0x1D57D] = { mathclass='alphabetic', adobename='u1D57D', texname='bffrakR' },
---~ [0x1D57E] = { mathclass='alphabetic', adobename='u1D57E', texname='bffrakS' },
---~ [0x1D57F] = { mathclass='alphabetic', adobename='u1D57F', texname='bffrakT' },
---~ [0x1D580] = { mathclass='alphabetic', adobename='u1D580', texname='bffrakU' },
---~ [0x1D581] = { mathclass='alphabetic', adobename='u1D581', texname='bffrakV' },
---~ [0x1D582] = { mathclass='alphabetic', adobename='u1D582', texname='bffrakW' },
---~ [0x1D583] = { mathclass='alphabetic', adobename='u1D583', texname='bffrakX' },
---~ [0x1D584] = { mathclass='alphabetic', adobename='u1D584', texname='bffrakY' },
---~ [0x1D585] = { mathclass='alphabetic', adobename='u1D585', texname='bffrakZ' },
---~ [0x1D586] = { mathclass='alphabetic', adobename='u1D586', texname='bffraka' },
---~ [0x1D587] = { mathclass='alphabetic', adobename='u1D587', texname='bffrakb' },
---~ [0x1D588] = { mathclass='alphabetic', adobename='u1D588', texname='bffrakc' },
---~ [0x1D589] = { mathclass='alphabetic', adobename='u1D589', texname='bffrakd' },
---~ [0x1D58A] = { mathclass='alphabetic', adobename='u1D58A', texname='bffrake' },
---~ [0x1D58B] = { mathclass='alphabetic', adobename='u1D58B', texname='bffrakf' },
---~ [0x1D58C] = { mathclass='alphabetic', adobename='u1D58C', texname='bffrakg' },
---~ [0x1D58D] = { mathclass='alphabetic', adobename='u1D58D', texname='bffrakh' },
---~ [0x1D58E] = { mathclass='alphabetic', adobename='u1D58E', texname='bffraki' },
---~ [0x1D58F] = { mathclass='alphabetic', adobename='u1D58F', texname='bffrakj' },
---~ [0x1D590] = { mathclass='alphabetic', adobename='u1D590', texname='bffrakk' },
---~ [0x1D591] = { mathclass='alphabetic', adobename='u1D591', texname='bffrakl' },
---~ [0x1D592] = { mathclass='alphabetic', adobename='u1D592', texname='bffrakm' },
---~ [0x1D593] = { mathclass='alphabetic', adobename='u1D593', texname='bffrakn' },
---~ [0x1D594] = { mathclass='alphabetic', adobename='u1D594', texname='bffrako' },
---~ [0x1D595] = { mathclass='alphabetic', adobename='u1D595', texname='bffrakp' },
---~ [0x1D596] = { mathclass='alphabetic', adobename='u1D596', texname='bffrakq' },
---~ [0x1D597] = { mathclass='alphabetic', adobename='u1D597', texname='bffrakr' },
---~ [0x1D598] = { mathclass='alphabetic', adobename='u1D598', texname='bffraks' },
---~ [0x1D599] = { mathclass='alphabetic', adobename='u1D599', texname='bffrakt' },
---~ [0x1D59A] = { mathclass='alphabetic', adobename='u1D59A', texname='bffraku' },
---~ [0x1D59B] = { mathclass='alphabetic', adobename='u1D59B', texname='bffrakv' },
---~ [0x1D59C] = { mathclass='alphabetic', adobename='u1D59C', texname='bffrakw' },
---~ [0x1D59D] = { mathclass='alphabetic', adobename='u1D59D', texname='bffrakx' },
---~ [0x1D59E] = { mathclass='alphabetic', adobename='u1D59E', texname='bffraky' },
---~ [0x1D59F] = { mathclass='alphabetic', adobename='u1D59F', texname='bffrakz' },
---~ [0x1D5A0] = { mathclass='alphabetic', adobename='u1D5A0', texname='sansA' },
---~ [0x1D5A1] = { mathclass='alphabetic', adobename='u1D5A1', texname='sansB' },
---~ [0x1D5A2] = { mathclass='alphabetic', adobename='u1D5A2', texname='sansC' },
---~ [0x1D5A3] = { mathclass='alphabetic', adobename='u1D5A3', texname='sansD' },
---~ [0x1D5A4] = { mathclass='alphabetic', adobename='u1D5A4', texname='sansE' },
---~ [0x1D5A5] = { mathclass='alphabetic', adobename='u1D5A5', texname='sansF' },
---~ [0x1D5A6] = { mathclass='alphabetic', adobename='u1D5A6', texname='sansG' },
---~ [0x1D5A7] = { mathclass='alphabetic', adobename='u1D5A7', texname='sansH' },
---~ [0x1D5A8] = { mathclass='alphabetic', adobename='u1D5A8', texname='sansI' },
---~ [0x1D5A9] = { mathclass='alphabetic', adobename='u1D5A9', texname='sansJ' },
---~ [0x1D5AA] = { mathclass='alphabetic', adobename='u1D5AA', texname='sansK' },
---~ [0x1D5AB] = { mathclass='alphabetic', adobename='u1D5AB', texname='sansL' },
---~ [0x1D5AC] = { mathclass='alphabetic', adobename='u1D5AC', texname='sansM' },
---~ [0x1D5AD] = { mathclass='alphabetic', adobename='u1D5AD', texname='sansN' },
---~ [0x1D5AE] = { mathclass='alphabetic', adobename='u1D5AE', texname='sansO' },
---~ [0x1D5AF] = { mathclass='alphabetic', adobename='u1D5AF', texname='sansP' },
---~ [0x1D5B0] = { mathclass='alphabetic', adobename='u1D5B0', texname='sansQ' },
---~ [0x1D5B1] = { mathclass='alphabetic', adobename='u1D5B1', texname='sansR' },
---~ [0x1D5B2] = { mathclass='alphabetic', adobename='u1D5B2', texname='sansS' },
---~ [0x1D5B3] = { mathclass='alphabetic', adobename='u1D5B3', texname='sansT' },
---~ [0x1D5B4] = { mathclass='alphabetic', adobename='u1D5B4', texname='sansU' },
---~ [0x1D5B5] = { mathclass='alphabetic', adobename='u1D5B5', texname='sansV' },
---~ [0x1D5B6] = { mathclass='alphabetic', adobename='u1D5B6', texname='sansW' },
---~ [0x1D5B7] = { mathclass='alphabetic', adobename='u1D5B7', texname='sansX' },
---~ [0x1D5B8] = { mathclass='alphabetic', adobename='u1D5B8', texname='sansY' },
---~ [0x1D5B9] = { mathclass='alphabetic', adobename='u1D5B9', texname='sansZ' },
---~ [0x1D5BA] = { mathclass='alphabetic', adobename='u1D5BA', texname='sansa' },
---~ [0x1D5BB] = { mathclass='alphabetic', adobename='u1D5BB', texname='sansb' },
---~ [0x1D5BC] = { mathclass='alphabetic', adobename='u1D5BC', texname='sansc' },
---~ [0x1D5BD] = { mathclass='alphabetic', adobename='u1D5BD', texname='sansd' },
---~ [0x1D5BE] = { mathclass='alphabetic', adobename='u1D5BE', texname='sanse' },
---~ [0x1D5BF] = { mathclass='alphabetic', adobename='u1D5BF', texname='sansf' },
---~ [0x1D5C0] = { mathclass='alphabetic', adobename='u1D5C0', texname='sansg' },
---~ [0x1D5C1] = { mathclass='alphabetic', adobename='u1D5C1', texname='sansh' },
---~ [0x1D5C2] = { mathclass='alphabetic', adobename='u1D5C2', texname='sansi' },
---~ [0x1D5C3] = { mathclass='alphabetic', adobename='u1D5C3', texname='sansj' },
---~ [0x1D5C4] = { mathclass='alphabetic', adobename='u1D5C4', texname='sansk' },
---~ [0x1D5C5] = { mathclass='alphabetic', adobename='u1D5C5', texname='sansl' },
---~ [0x1D5C6] = { mathclass='alphabetic', adobename='u1D5C6', texname='sansm' },
---~ [0x1D5C7] = { mathclass='alphabetic', adobename='u1D5C7', texname='sansn' },
---~ [0x1D5C8] = { mathclass='alphabetic', adobename='u1D5C8', texname='sanso' },
---~ [0x1D5C9] = { mathclass='alphabetic', adobename='u1D5C9', texname='sansp' },
---~ [0x1D5CA] = { mathclass='alphabetic', adobename='u1D5CA', texname='sansq' },
---~ [0x1D5CB] = { mathclass='alphabetic', adobename='u1D5CB', texname='sansr' },
---~ [0x1D5CC] = { mathclass='alphabetic', adobename='u1D5CC', texname='sanss' },
---~ [0x1D5CD] = { mathclass='alphabetic', adobename='u1D5CD', texname='sanst' },
---~ [0x1D5CE] = { mathclass='alphabetic', adobename='u1D5CE', texname='sansu' },
---~ [0x1D5CF] = { mathclass='alphabetic', adobename='u1D5CF', texname='sansv' },
---~ [0x1D5D0] = { mathclass='alphabetic', adobename='u1D5D0', texname='sansw' },
---~ [0x1D5D1] = { mathclass='alphabetic', adobename='u1D5D1', texname='sansx' },
---~ [0x1D5D2] = { mathclass='alphabetic', adobename='u1D5D2', texname='sansy' },
---~ [0x1D5D3] = { mathclass='alphabetic', adobename='u1D5D3', texname='sansz' },
---~ [0x1D5D4] = { mathclass='alphabetic', adobename='u1D5D4', texname='bfsansA' },
---~ [0x1D5D5] = { mathclass='alphabetic', adobename='u1D5D5', texname='bfsansB' },
---~ [0x1D5D6] = { mathclass='alphabetic', adobename='u1D5D6', texname='bfsansC' },
---~ [0x1D5D7] = { mathclass='alphabetic', adobename='u1D5D7', texname='bfsansD' },
---~ [0x1D5D8] = { mathclass='alphabetic', adobename='u1D5D8', texname='bfsansE' },
---~ [0x1D5D9] = { mathclass='alphabetic', adobename='u1D5D9', texname='bfsansF' },
---~ [0x1D5DA] = { mathclass='alphabetic', adobename='u1D5DA', texname='bfsansG' },
---~ [0x1D5DB] = { mathclass='alphabetic', adobename='u1D5DB', texname='bfsansH' },
---~ [0x1D5DC] = { mathclass='alphabetic', adobename='u1D5DC', texname='bfsansI' },
---~ [0x1D5DD] = { mathclass='alphabetic', adobename='u1D5DD', texname='bfsansJ' },
---~ [0x1D5DE] = { mathclass='alphabetic', adobename='u1D5DE', texname='bfsansK' },
---~ [0x1D5DF] = { mathclass='alphabetic', adobename='u1D5DF', texname='bfsansL' },
---~ [0x1D5E0] = { mathclass='alphabetic', adobename='u1D5E0', texname='bfsansM' },
---~ [0x1D5E1] = { mathclass='alphabetic', adobename='u1D5E1', texname='bfsansN' },
---~ [0x1D5E2] = { mathclass='alphabetic', adobename='u1D5E2', texname='bfsansO' },
---~ [0x1D5E3] = { mathclass='alphabetic', adobename='u1D5E3', texname='bfsansP' },
---~ [0x1D5E4] = { mathclass='alphabetic', adobename='u1D5E4', texname='bfsansQ' },
---~ [0x1D5E5] = { mathclass='alphabetic', adobename='u1D5E5', texname='bfsansR' },
---~ [0x1D5E6] = { mathclass='alphabetic', adobename='u1D5E6', texname='bfsansS' },
---~ [0x1D5E7] = { mathclass='alphabetic', adobename='u1D5E7', texname='bfsansT' },
---~ [0x1D5E8] = { mathclass='alphabetic', adobename='u1D5E8', texname='bfsansU' },
---~ [0x1D5E9] = { mathclass='alphabetic', adobename='u1D5E9', texname='bfsansV' },
---~ [0x1D5EA] = { mathclass='alphabetic', adobename='u1D5EA', texname='bfsansW' },
---~ [0x1D5EB] = { mathclass='alphabetic', adobename='u1D5EB', texname='bfsansX' },
---~ [0x1D5EC] = { mathclass='alphabetic', adobename='u1D5EC', texname='bfsansY' },
---~ [0x1D5ED] = { mathclass='alphabetic', adobename='u1D5ED', texname='bfsansZ' },
---~ [0x1D5EE] = { mathclass='alphabetic', adobename='u1D5EE', texname='bfsansa' },
---~ [0x1D5EF] = { mathclass='alphabetic', adobename='u1D5EF', texname='bfsansb' },
---~ [0x1D5F0] = { mathclass='alphabetic', adobename='u1D5F0', texname='bfsansc' },
---~ [0x1D5F1] = { mathclass='alphabetic', adobename='u1D5F1', texname='bfsansd' },
---~ [0x1D5F2] = { mathclass='alphabetic', adobename='u1D5F2', texname='bfsanse' },
---~ [0x1D5F3] = { mathclass='alphabetic', adobename='u1D5F3', texname='bfsansf' },
---~ [0x1D5F4] = { mathclass='alphabetic', adobename='u1D5F4', texname='bfsansg' },
---~ [0x1D5F5] = { mathclass='alphabetic', adobename='u1D5F5', texname='bfsansh' },
---~ [0x1D5F6] = { mathclass='alphabetic', adobename='u1D5F6', texname='bfsansi' },
---~ [0x1D5F7] = { mathclass='alphabetic', adobename='u1D5F7', texname='bfsansj' },
---~ [0x1D5F8] = { mathclass='alphabetic', adobename='u1D5F8', texname='bfsansk' },
---~ [0x1D5F9] = { mathclass='alphabetic', adobename='u1D5F9', texname='bfsansl' },
---~ [0x1D5FA] = { mathclass='alphabetic', adobename='u1D5FA', texname='bfsansm' },
---~ [0x1D5FB] = { mathclass='alphabetic', adobename='u1D5FB', texname='bfsansn' },
---~ [0x1D5FC] = { mathclass='alphabetic', adobename='u1D5FC', texname='bfsanso' },
---~ [0x1D5FD] = { mathclass='alphabetic', adobename='u1D5FD', texname='bfsansp' },
---~ [0x1D5FE] = { mathclass='alphabetic', adobename='u1D5FE', texname='bfsansq' },
---~ [0x1D5FF] = { mathclass='alphabetic', adobename='u1D5FF', texname='bfsansr' },
---~ [0x1D600] = { mathclass='alphabetic', adobename='u1D600', texname='bfsanss' },
---~ [0x1D601] = { mathclass='alphabetic', adobename='u1D601', texname='bfsanst' },
---~ [0x1D602] = { mathclass='alphabetic', adobename='u1D602', texname='bfsansu' },
---~ [0x1D603] = { mathclass='alphabetic', adobename='u1D603', texname='bfsansv' },
---~ [0x1D604] = { mathclass='alphabetic', adobename='u1D604', texname='bfsansw' },
---~ [0x1D605] = { mathclass='alphabetic', adobename='u1D605', texname='bfsansx' },
---~ [0x1D606] = { mathclass='alphabetic', adobename='u1D606', texname='bfsansy' },
---~ [0x1D607] = { mathclass='alphabetic', adobename='u1D607', texname='bfsansz' },
---~ [0x1D608] = { mathclass='alphabetic', adobename='u1D608', texname='itsansA' },
---~ [0x1D609] = { mathclass='alphabetic', adobename='u1D609', texname='itsansB' },
---~ [0x1D60A] = { mathclass='alphabetic', adobename='u1D60A', texname='itsansC' },
---~ [0x1D60B] = { mathclass='alphabetic', adobename='u1D60B', texname='itsansD' },
---~ [0x1D60C] = { mathclass='alphabetic', adobename='u1D60C', texname='itsansE' },
---~ [0x1D60D] = { mathclass='alphabetic', adobename='u1D60D', texname='itsansF' },
---~ [0x1D60E] = { mathclass='alphabetic', adobename='u1D60E', texname='itsansG' },
---~ [0x1D60F] = { mathclass='alphabetic', adobename='u1D60F', texname='itsansH' },
---~ [0x1D610] = { mathclass='alphabetic', adobename='u1D610', texname='itsansI' },
---~ [0x1D611] = { mathclass='alphabetic', adobename='u1D611', texname='itsansJ' },
---~ [0x1D612] = { mathclass='alphabetic', adobename='u1D612', texname='itsansK' },
---~ [0x1D613] = { mathclass='alphabetic', adobename='u1D613', texname='itsansL' },
---~ [0x1D614] = { mathclass='alphabetic', adobename='u1D614', texname='itsansM' },
---~ [0x1D615] = { mathclass='alphabetic', adobename='u1D615', texname='itsansN' },
---~ [0x1D616] = { mathclass='alphabetic', adobename='u1D616', texname='itsansO' },
---~ [0x1D617] = { mathclass='alphabetic', adobename='u1D617', texname='itsansP' },
---~ [0x1D618] = { mathclass='alphabetic', adobename='u1D618', texname='itsansQ' },
---~ [0x1D619] = { mathclass='alphabetic', adobename='u1D619', texname='itsansR' },
---~ [0x1D61A] = { mathclass='alphabetic', adobename='u1D61A', texname='itsansS' },
---~ [0x1D61B] = { mathclass='alphabetic', adobename='u1D61B', texname='itsansT' },
---~ [0x1D61C] = { mathclass='alphabetic', adobename='u1D61C', texname='itsansU' },
---~ [0x1D61D] = { mathclass='alphabetic', adobename='u1D61D', texname='itsansV' },
---~ [0x1D61E] = { mathclass='alphabetic', adobename='u1D61E', texname='itsansW' },
---~ [0x1D61F] = { mathclass='alphabetic', adobename='u1D61F', texname='itsansX' },
---~ [0x1D620] = { mathclass='alphabetic', adobename='u1D620', texname='itsansY' },
---~ [0x1D621] = { mathclass='alphabetic', adobename='u1D621', texname='itsansZ' },
---~ [0x1D622] = { mathclass='alphabetic', adobename='u1D622', texname='itsansa' },
---~ [0x1D623] = { mathclass='alphabetic', adobename='u1D623', texname='itsansb' },
---~ [0x1D624] = { mathclass='alphabetic', adobename='u1D624', texname='itsansc' },
---~ [0x1D625] = { mathclass='alphabetic', adobename='u1D625', texname='itsansd' },
---~ [0x1D626] = { mathclass='alphabetic', adobename='u1D626', texname='itsanse' },
---~ [0x1D627] = { mathclass='alphabetic', adobename='u1D627', texname='itsansf' },
---~ [0x1D628] = { mathclass='alphabetic', adobename='u1D628', texname='itsansg' },
---~ [0x1D629] = { mathclass='alphabetic', adobename='u1D629', texname='itsansh' },
---~ [0x1D62A] = { mathclass='alphabetic', adobename='u1D62A', texname='itsansi' },
---~ [0x1D62B] = { mathclass='alphabetic', adobename='u1D62B', texname='itsansj' },
---~ [0x1D62C] = { mathclass='alphabetic', adobename='u1D62C', texname='itsansk' },
---~ [0x1D62D] = { mathclass='alphabetic', adobename='u1D62D', texname='itsansl' },
---~ [0x1D62E] = { mathclass='alphabetic', adobename='u1D62E', texname='itsansm' },
---~ [0x1D62F] = { mathclass='alphabetic', adobename='u1D62F', texname='itsansn' },
---~ [0x1D630] = { mathclass='alphabetic', adobename='u1D630', texname='itsanso' },
---~ [0x1D631] = { mathclass='alphabetic', adobename='u1D631', texname='itsansp' },
---~ [0x1D632] = { mathclass='alphabetic', adobename='u1D632', texname='itsansq' },
---~ [0x1D633] = { mathclass='alphabetic', adobename='u1D633', texname='itsansr' },
---~ [0x1D634] = { mathclass='alphabetic', adobename='u1D634', texname='itsanss' },
---~ [0x1D635] = { mathclass='alphabetic', adobename='u1D635', texname='itsanst' },
---~ [0x1D636] = { mathclass='alphabetic', adobename='u1D636', texname='itsansu' },
---~ [0x1D637] = { mathclass='alphabetic', adobename='u1D637', texname='itsansv' },
---~ [0x1D638] = { mathclass='alphabetic', adobename='u1D638', texname='itsansw' },
---~ [0x1D639] = { mathclass='alphabetic', adobename='u1D639', texname='itsansx' },
---~ [0x1D63A] = { mathclass='alphabetic', adobename='u1D63A', texname='itsansy' },
---~ [0x1D63B] = { mathclass='alphabetic', adobename='u1D63B', texname='itsansz' },
---~ [0x1D63C] = { mathclass='alphabetic', adobename='u1D63C', texname='bfitsansA' },
---~ [0x1D63D] = { mathclass='alphabetic', adobename='u1D63D', texname='bfitsansB' },
---~ [0x1D63E] = { mathclass='alphabetic', adobename='u1D63E', texname='bfitsansC' },
---~ [0x1D63F] = { mathclass='alphabetic', adobename='u1D63F', texname='bfitsansD' },
---~ [0x1D640] = { mathclass='alphabetic', adobename='u1D640', texname='bfitsansE' },
---~ [0x1D641] = { mathclass='alphabetic', adobename='u1D641', texname='bfitsansF' },
---~ [0x1D642] = { mathclass='alphabetic', adobename='u1D642', texname='bfitsansG' },
---~ [0x1D643] = { mathclass='alphabetic', adobename='u1D643', texname='bfitsansH' },
---~ [0x1D644] = { mathclass='alphabetic', adobename='u1D644', texname='bfitsansI' },
---~ [0x1D645] = { mathclass='alphabetic', adobename='u1D645', texname='bfitsansJ' },
---~ [0x1D646] = { mathclass='alphabetic', adobename='u1D646', texname='bfitsansK' },
---~ [0x1D647] = { mathclass='alphabetic', adobename='u1D647', texname='bfitsansL' },
---~ [0x1D648] = { mathclass='alphabetic', adobename='u1D648', texname='bfitsansM' },
---~ [0x1D649] = { mathclass='alphabetic', adobename='u1D649', texname='bfitsansN' },
---~ [0x1D64A] = { mathclass='alphabetic', adobename='u1D64A', texname='bfitsansO' },
---~ [0x1D64B] = { mathclass='alphabetic', adobename='u1D64B', texname='bfitsansP' },
---~ [0x1D64C] = { mathclass='alphabetic', adobename='u1D64C', texname='bfitsansQ' },
---~ [0x1D64D] = { mathclass='alphabetic', adobename='u1D64D', texname='bfitsansR' },
---~ [0x1D64E] = { mathclass='alphabetic', adobename='u1D64E', texname='bfitsansS' },
---~ [0x1D64F] = { mathclass='alphabetic', adobename='u1D64F', texname='bfitsansT' },
---~ [0x1D650] = { mathclass='alphabetic', adobename='u1D650', texname='bfitsansU' },
---~ [0x1D651] = { mathclass='alphabetic', adobename='u1D651', texname='bfitsansV' },
---~ [0x1D652] = { mathclass='alphabetic', adobename='u1D652', texname='bfitsansW' },
---~ [0x1D653] = { mathclass='alphabetic', adobename='u1D653', texname='bfitsansX' },
---~ [0x1D654] = { mathclass='alphabetic', adobename='u1D654', texname='bfitsansY' },
---~ [0x1D655] = { mathclass='alphabetic', adobename='u1D655', texname='bfitsansZ' },
---~ [0x1D656] = { mathclass='alphabetic', adobename='u1D656', texname='bfitsansa' },
---~ [0x1D657] = { mathclass='alphabetic', adobename='u1D657', texname='bfitsansb' },
---~ [0x1D658] = { mathclass='alphabetic', adobename='u1D658', texname='bfitsansc' },
---~ [0x1D659] = { mathclass='alphabetic', adobename='u1D659', texname='bfitsansd' },
---~ [0x1D65A] = { mathclass='alphabetic', adobename='u1D65A', texname='bfitsanse' },
---~ [0x1D65B] = { mathclass='alphabetic', adobename='u1D65B', texname='bfitsansf' },
---~ [0x1D65C] = { mathclass='alphabetic', adobename='u1D65C', texname='bfitsansg' },
---~ [0x1D65D] = { mathclass='alphabetic', adobename='u1D65D', texname='bfitsansh' },
---~ [0x1D65E] = { mathclass='alphabetic', adobename='u1D65E', texname='bfitsansi' },
---~ [0x1D65F] = { mathclass='alphabetic', adobename='u1D65F', texname='bfitsansj' },
---~ [0x1D660] = { mathclass='alphabetic', adobename='u1D660', texname='bfitsansk' },
---~ [0x1D661] = { mathclass='alphabetic', adobename='u1D661', texname='bfitsansl' },
---~ [0x1D662] = { mathclass='alphabetic', adobename='u1D662', texname='bfitsansm' },
---~ [0x1D663] = { mathclass='alphabetic', adobename='u1D663', texname='bfitsansn' },
---~ [0x1D664] = { mathclass='alphabetic', adobename='u1D664', texname='bfitsanso' },
---~ [0x1D665] = { mathclass='alphabetic', adobename='u1D665', texname='bfitsansp' },
---~ [0x1D666] = { mathclass='alphabetic', adobename='u1D666', texname='bfitsansq' },
---~ [0x1D667] = { mathclass='alphabetic', adobename='u1D667', texname='bfitsansr' },
---~ [0x1D668] = { mathclass='alphabetic', adobename='u1D668', texname='bfitsanss' },
---~ [0x1D669] = { mathclass='alphabetic', adobename='u1D669', texname='bfitsanst' },
---~ [0x1D66A] = { mathclass='alphabetic', adobename='u1D66A', texname='bfitsansu' },
---~ [0x1D66B] = { mathclass='alphabetic', adobename='u1D66B', texname='bfitsansv' },
---~ [0x1D66C] = { mathclass='alphabetic', adobename='u1D66C', texname='bfitsansw' },
---~ [0x1D66D] = { mathclass='alphabetic', adobename='u1D66D', texname='bfitsansx' },
---~ [0x1D66E] = { mathclass='alphabetic', adobename='u1D66E', texname='bfitsansy' },
---~ [0x1D66F] = { mathclass='alphabetic', adobename='u1D66F', texname='bfitsansz' },
---~ [0x1D670] = { mathclass='alphabetic', adobename='u1D670', texname='ttA' },
---~ [0x1D671] = { mathclass='alphabetic', adobename='u1D671', texname='ttB' },
---~ [0x1D672] = { mathclass='alphabetic', adobename='u1D672', texname='ttC' },
---~ [0x1D673] = { mathclass='alphabetic', adobename='u1D673', texname='ttD' },
---~ [0x1D674] = { mathclass='alphabetic', adobename='u1D674', texname='ttE' },
---~ [0x1D675] = { mathclass='alphabetic', adobename='u1D675', texname='ttF' },
---~ [0x1D676] = { mathclass='alphabetic', adobename='u1D676', texname='ttG' },
---~ [0x1D677] = { mathclass='alphabetic', adobename='u1D677', texname='ttH' },
---~ [0x1D678] = { mathclass='alphabetic', adobename='u1D678', texname='ttI' },
---~ [0x1D679] = { mathclass='alphabetic', adobename='u1D679', texname='ttJ' },
---~ [0x1D67A] = { mathclass='alphabetic', adobename='u1D67A', texname='ttK' },
---~ [0x1D67B] = { mathclass='alphabetic', adobename='u1D67B', texname='ttL' },
---~ [0x1D67C] = { mathclass='alphabetic', adobename='u1D67C', texname='ttM' },
---~ [0x1D67D] = { mathclass='alphabetic', adobename='u1D67D', texname='ttN' },
---~ [0x1D67E] = { mathclass='alphabetic', adobename='u1D67E', texname='ttO' },
---~ [0x1D67F] = { mathclass='alphabetic', adobename='u1D67F', texname='ttP' },
---~ [0x1D680] = { mathclass='alphabetic', adobename='u1D680', texname='ttQ' },
---~ [0x1D681] = { mathclass='alphabetic', adobename='u1D681', texname='ttR' },
---~ [0x1D682] = { mathclass='alphabetic', adobename='u1D682', texname='ttS' },
---~ [0x1D683] = { mathclass='alphabetic', adobename='u1D683', texname='ttT' },
---~ [0x1D684] = { mathclass='alphabetic', adobename='u1D684', texname='ttU' },
---~ [0x1D685] = { mathclass='alphabetic', adobename='u1D685', texname='ttV' },
---~ [0x1D686] = { mathclass='alphabetic', adobename='u1D686', texname='ttW' },
---~ [0x1D687] = { mathclass='alphabetic', adobename='u1D687', texname='ttX' },
---~ [0x1D688] = { mathclass='alphabetic', adobename='u1D688', texname='ttY' },
---~ [0x1D689] = { mathclass='alphabetic', adobename='u1D689', texname='ttZ' },
---~ [0x1D68A] = { mathclass='alphabetic', adobename='u1D68A', texname='tta' },
---~ [0x1D68B] = { mathclass='alphabetic', adobename='u1D68B', texname='ttb' },
---~ [0x1D68C] = { mathclass='alphabetic', adobename='u1D68C', texname='ttc' },
---~ [0x1D68D] = { mathclass='alphabetic', adobename='u1D68D', texname='ttd' },
---~ [0x1D68E] = { mathclass='alphabetic', adobename='u1D68E', texname='tte' },
---~ [0x1D68F] = { mathclass='alphabetic', adobename='u1D68F', texname='ttf' },
---~ [0x1D690] = { mathclass='alphabetic', adobename='u1D690', texname='ttg' },
---~ [0x1D691] = { mathclass='alphabetic', adobename='u1D691', texname='tth' },
---~ [0x1D692] = { mathclass='alphabetic', adobename='u1D692', texname='tti' },
---~ [0x1D693] = { mathclass='alphabetic', adobename='u1D693', texname='ttj' },
---~ [0x1D694] = { mathclass='alphabetic', adobename='u1D694', texname='ttk' },
---~ [0x1D695] = { mathclass='alphabetic', adobename='u1D695', texname='ttl' },
---~ [0x1D696] = { mathclass='alphabetic', adobename='u1D696', texname='ttm' },
---~ [0x1D697] = { mathclass='alphabetic', adobename='u1D697', texname='ttn' },
---~ [0x1D698] = { mathclass='alphabetic', adobename='u1D698', texname='tto' },
---~ [0x1D699] = { mathclass='alphabetic', adobename='u1D699', texname='ttp' },
---~ [0x1D69A] = { mathclass='alphabetic', adobename='u1D69A', texname='ttq' },
---~ [0x1D69B] = { mathclass='alphabetic', adobename='u1D69B', texname='ttr' },
---~ [0x1D69C] = { mathclass='alphabetic', adobename='u1D69C', texname='tts' },
---~ [0x1D69D] = { mathclass='alphabetic', adobename='u1D69D', texname='ttt' },
---~ [0x1D69E] = { mathclass='alphabetic', adobename='u1D69E', texname='ttu' },
---~ [0x1D69F] = { mathclass='alphabetic', adobename='u1D69F', texname='ttv' },
---~ [0x1D6A0] = { mathclass='alphabetic', adobename='u1D6A0', texname='ttw' },
---~ [0x1D6A1] = { mathclass='alphabetic', adobename='u1D6A1', texname='ttx' },
---~ [0x1D6A2] = { mathclass='alphabetic', adobename='u1D6A2', texname='tty' },
---~ [0x1D6A3] = { mathclass='alphabetic', adobename='u1D6A3', texname='ttz' },
---~ [0x1D6A6] = { mathclass='unknown', adobename='u1D6A6' },
---~ [0x1D6A7] = { mathclass='unknown', adobename='u1D6A7' },
---~ [0x1D6A8] = { mathclass='alphabetic', adobename='u1D6A8', texname='bfAlpha' },
---~ [0x1D6A9] = { mathclass='alphabetic', adobename='u1D6A9', texname='bfBeta' },
---~ [0x1D6AA] = { mathclass='alphabetic', adobename='u1D6AA', texname='bfGamma' },
---~ [0x1D6AB] = { mathclass='alphabetic', adobename='u1D6AB', texname='bfDelta' },
---~ [0x1D6AC] = { mathclass='alphabetic', adobename='u1D6AC', texname='bfEpsilon' },
---~ [0x1D6AD] = { mathclass='alphabetic', adobename='u1D6AD', texname='bfZeta' },
---~ [0x1D6AE] = { mathclass='alphabetic', adobename='u1D6AE', texname='bfEta' },
---~ [0x1D6AF] = { mathclass='alphabetic', adobename='u1D6AF', texname='bfTheta' },
---~ [0x1D6B0] = { mathclass='alphabetic', adobename='u1D6B0', texname='bfIota' },
---~ [0x1D6B1] = { mathclass='alphabetic', adobename='u1D6B1', texname='bfKappa' },
---~ [0x1D6B2] = { mathclass='alphabetic', adobename='u1D6B2', texname='bfLambda' },
---~ [0x1D6B3] = { mathclass='alphabetic', adobename='u1D6B3', texname='bfMu' },
---~ [0x1D6B4] = { mathclass='alphabetic', adobename='u1D6B4', texname='bfNu' },
---~ [0x1D6B5] = { mathclass='alphabetic', adobename='u1D6B5', texname='bfXi' },
---~ [0x1D6B6] = { mathclass='alphabetic', adobename='u1D6B6', texname='bfOmicron' },
---~ [0x1D6B7] = { mathclass='alphabetic', adobename='u1D6B7', texname='bfPi' },
---~ [0x1D6B8] = { mathclass='alphabetic', adobename='u1D6B8', texname='bfRho' },
---~ [0x1D6B9] = { mathclass='alphabetic', adobename='u1D6B9', texname='bfvarTheta' },
---~ [0x1D6BA] = { mathclass='alphabetic', adobename='u1D6BA', texname='bfSigma' },
---~ [0x1D6BB] = { mathclass='alphabetic', adobename='u1D6BB', texname='bfTau' },
---~ [0x1D6BC] = { mathclass='alphabetic', adobename='u1D6BC', texname='bfUpsilon' },
---~ [0x1D6BD] = { mathclass='alphabetic', adobename='u1D6BD', texname='bfPhi' },
---~ [0x1D6BE] = { mathclass='alphabetic', adobename='u1D6BE', texname='bfChi' },
---~ [0x1D6BF] = { mathclass='alphabetic', adobename='u1D6BF', texname='bfPsi' },
---~ [0x1D6C0] = { mathclass='alphabetic', adobename='u1D6C0', texname='bfOmega' },
---~ [0x1D6C1] = { mathclass='normal', adobename='u1D6C1', texname='bfnabla' },
---~ [0x1D6C2] = { mathclass='alphabetic', adobename='u1D6C2', texname='bfalpha' },
---~ [0x1D6C3] = { mathclass='alphabetic', adobename='u1D6C3', texname='bfbeta' },
---~ [0x1D6C4] = { mathclass='alphabetic', adobename='u1D6C4', texname='bfgamma' },
---~ [0x1D6C5] = { mathclass='alphabetic', adobename='u1D6C5', texname='bfdelta' },
---~ [0x1D6C6] = { mathclass='alphabetic', adobename='u1D6C6', texname='bfvarepsilon' },
---~ [0x1D6C7] = { mathclass='alphabetic', adobename='u1D6C7', texname='bfzeta' },
---~ [0x1D6C8] = { mathclass='alphabetic', adobename='u1D6C8', texname='bfeta' },
---~ [0x1D6C9] = { mathclass='alphabetic', adobename='u1D6C9', texname='bftheta' },
---~ [0x1D6CA] = { mathclass='alphabetic', adobename='u1D6CA', texname='bfiota' },
---~ [0x1D6CB] = { mathclass='alphabetic', adobename='u1D6CB', texname='bfkappa' },
---~ [0x1D6CC] = { mathclass='alphabetic', adobename='u1D6CC', texname='bflambda' },
---~ [0x1D6CD] = { mathclass='alphabetic', adobename='u1D6CD', texname='bfmu' },
---~ [0x1D6CE] = { mathclass='alphabetic', adobename='u1D6CE', texname='bfnu' },
---~ [0x1D6CF] = { mathclass='alphabetic', adobename='u1D6CF', texname='bfxi' },
---~ [0x1D6D0] = { mathclass='alphabetic', adobename='u1D6D0', texname='bfomicron' },
---~ [0x1D6D1] = { mathclass='alphabetic', adobename='u1D6D1', texname='bfpi' },
---~ [0x1D6D2] = { mathclass='alphabetic', adobename='u1D6D2', texname='bfrho' },
---~ [0x1D6D3] = { mathclass='alphabetic', adobename='u1D6D3', texname='bfvarsigma' },
---~ [0x1D6D4] = { mathclass='alphabetic', adobename='u1D6D4', texname='bfsigma' },
---~ [0x1D6D5] = { mathclass='alphabetic', adobename='u1D6D5', texname='bftau' },
---~ [0x1D6D6] = { mathclass='alphabetic', adobename='u1D6D6', texname='bfupsilon' },
---~ [0x1D6D7] = { mathclass='alphabetic', adobename='u1D6D7', texname='bfvarphi' },
---~ [0x1D6D8] = { mathclass='alphabetic', adobename='u1D6D8', texname='bfchi' },
---~ [0x1D6D9] = { mathclass='alphabetic', adobename='u1D6D9', texname='bfpsi' },
---~ [0x1D6DA] = { mathclass='alphabetic', adobename='u1D6DA', texname='bfomega' },
---~ [0x1D6DB] = { mathclass='normal', adobename='u1D6DB', texname='bfpartial' },
---~ [0x1D6DC] = { mathclass='alphabetic', adobename='u1D6DC', texname='bfepsilon' },
---~ [0x1D6DD] = { mathclass='alphabetic', adobename='u1D6DD', texname='bfvartheta' },
---~ [0x1D6DE] = { mathclass='alphabetic', adobename='u1D6DE', texname='bfvarkappa' },
---~ [0x1D6DF] = { mathclass='alphabetic', adobename='u1D6DF', texname='bfphi' },
---~ [0x1D6E0] = { mathclass='alphabetic', adobename='u1D6E0', texname='bfvarrho' },
---~ [0x1D6E1] = { mathclass='alphabetic', adobename='u1D6E1', texname='bfvarpi' },
---~ [0x1D6E2] = { mathclass='alphabetic', adobename='u1D6E2', texname='itAlpha' },
---~ [0x1D6E3] = { mathclass='alphabetic', adobename='u1D6E3', texname='itBeta' },
---~ [0x1D6E4] = { mathclass='alphabetic', adobename='u1D6E4', texname='itGamma' },
---~ [0x1D6E5] = { mathclass='alphabetic', adobename='u1D6E5', texname='itDelta' },
---~ [0x1D6E6] = { mathclass='alphabetic', adobename='u1D6E6', texname='itEpsilon' },
---~ [0x1D6E7] = { mathclass='alphabetic', adobename='u1D6E7', texname='itZeta' },
---~ [0x1D6E8] = { mathclass='alphabetic', adobename='u1D6E8', texname='itEta' },
---~ [0x1D6E9] = { mathclass='alphabetic', adobename='u1D6E9', texname='itTheta' },
---~ [0x1D6EA] = { mathclass='alphabetic', adobename='u1D6EA', texname='itIota' },
---~ [0x1D6EB] = { mathclass='alphabetic', adobename='u1D6EB', texname='itKappa' },
---~ [0x1D6EC] = { mathclass='alphabetic', adobename='u1D6EC', texname='itLambda' },
---~ [0x1D6ED] = { mathclass='alphabetic', adobename='u1D6ED', texname='itMu' },
---~ [0x1D6EE] = { mathclass='alphabetic', adobename='u1D6EE', texname='itNu' },
---~ [0x1D6EF] = { mathclass='alphabetic', adobename='u1D6EF', texname='itXi' },
---~ [0x1D6F0] = { mathclass='alphabetic', adobename='u1D6F0', texname='itOmicron' },
---~ [0x1D6F1] = { mathclass='alphabetic', adobename='u1D6F1', texname='itPi' },
---~ [0x1D6F2] = { mathclass='alphabetic', adobename='u1D6F2', texname='itRho' },
---~ [0x1D6F3] = { mathclass='alphabetic', adobename='u1D6F3', texname='itvarTheta' },
---~ [0x1D6F4] = { mathclass='alphabetic', adobename='u1D6F4', texname='itSigma' },
---~ [0x1D6F5] = { mathclass='alphabetic', adobename='u1D6F5', texname='itTau' },
---~ [0x1D6F6] = { mathclass='alphabetic', adobename='u1D6F6', texname='itUpsilon' },
---~ [0x1D6F7] = { mathclass='alphabetic', adobename='u1D6F7', texname='itPhi' },
---~ [0x1D6F8] = { mathclass='alphabetic', adobename='u1D6F8', texname='itChi' },
---~ [0x1D6F9] = { mathclass='alphabetic', adobename='u1D6F9', texname='itPsi' },
---~ [0x1D6FA] = { mathclass='alphabetic', adobename='u1D6FA', texname='itOmega' },
---~ [0x1D6FB] = { mathclass='normal', adobename='u1D6FB', texname='itnabla' },
---~ [0x1D6FC] = { mathclass='alphabetic', adobename='u1D6FC', texname='italpha' },
---~ [0x1D6FD] = { mathclass='alphabetic', adobename='u1D6FD', texname='itbeta' },
---~ [0x1D6FE] = { mathclass='alphabetic', adobename='u1D6FE', texname='itgamma' },
---~ [0x1D6FF] = { mathclass='alphabetic', adobename='u1D6FF', texname='itdelta' },
---~ [0x1D700] = { mathclass='alphabetic', adobename='u1D700', texname='itvarepsilon' },
---~ [0x1D701] = { mathclass='alphabetic', adobename='u1D701', texname='itzeta' },
---~ [0x1D702] = { mathclass='alphabetic', adobename='u1D702', texname='iteta' },
---~ [0x1D703] = { mathclass='alphabetic', adobename='u1D703', texname='ittheta' },
---~ [0x1D704] = { mathclass='alphabetic', adobename='u1D704', texname='itiota' },
---~ [0x1D705] = { mathclass='alphabetic', adobename='u1D705', texname='itkappa' },
---~ [0x1D706] = { mathclass='alphabetic', adobename='u1D706', texname='itlambda' },
---~ [0x1D707] = { mathclass='alphabetic', adobename='u1D707', texname='itmu' },
---~ [0x1D708] = { mathclass='alphabetic', adobename='u1D708', texname='itnu' },
---~ [0x1D709] = { mathclass='alphabetic', adobename='u1D709', texname='itxi' },
---~ [0x1D70A] = { mathclass='alphabetic', adobename='u1D70A', texname='itomicron' },
---~ [0x1D70B] = { mathclass='alphabetic', adobename='u1D70B', texname='itpi' },
---~ [0x1D70C] = { mathclass='alphabetic', adobename='u1D70C', texname='itrho' },
---~ [0x1D70D] = { mathclass='alphabetic', adobename='u1D70D', texname='itvarsigma' },
---~ [0x1D70E] = { mathclass='alphabetic', adobename='u1D70E', texname='itsigma' },
---~ [0x1D70F] = { mathclass='alphabetic', adobename='u1D70F', texname='ittau' },
---~ [0x1D710] = { mathclass='alphabetic', adobename='u1D710', texname='itupsilon' },
---~ [0x1D711] = { mathclass='alphabetic', adobename='u1D711', texname='itphi' },
---~ [0x1D712] = { mathclass='alphabetic', adobename='u1D712', texname='itchi' },
---~ [0x1D713] = { mathclass='alphabetic', adobename='u1D713', texname='itpsi' },
---~ [0x1D714] = { mathclass='alphabetic', adobename='u1D714', texname='itomega' },
---~ [0x1D715] = { mathclass='normal', adobename='u1D715', texname='itpartial' },
---~ [0x1D716] = { mathclass='alphabetic', adobename='u1D716', texname='itepsilon' },
---~ [0x1D717] = { mathclass='alphabetic', adobename='u1D717', texname='itvartheta' },
---~ [0x1D718] = { mathclass='alphabetic', adobename='u1D718', texname='itvarkappa' },
---~ [0x1D719] = { mathclass='alphabetic', adobename='u1D719', texname='itvarphi' },
---~ [0x1D71A] = { mathclass='alphabetic', adobename='u1D71A', texname='itvarrho' },
---~ [0x1D71B] = { mathclass='alphabetic', adobename='u1D71B', texname='itvarpi' },
---~ [0x1D71C] = { mathclass='alphabetic', adobename='u1D71C', texname='bfitAlpha' },
---~ [0x1D71D] = { mathclass='alphabetic', adobename='u1D71D', texname='bfitBeta' },
---~ [0x1D71E] = { mathclass='alphabetic', adobename='u1D71E', texname='bfitGamma' },
---~ [0x1D71F] = { mathclass='alphabetic', adobename='u1D71F', texname='bfitDelta' },
---~ [0x1D720] = { mathclass='alphabetic', adobename='u1D720', texname='bfitEpsilon' },
---~ [0x1D721] = { mathclass='alphabetic', adobename='u1D721', texname='bfitZeta' },
---~ [0x1D722] = { mathclass='alphabetic', adobename='u1D722', texname='bfitEta' },
---~ [0x1D723] = { mathclass='alphabetic', adobename='u1D723', texname='bfitTheta' },
---~ [0x1D724] = { mathclass='alphabetic', adobename='u1D724', texname='bfitIota' },
---~ [0x1D725] = { mathclass='alphabetic', adobename='u1D725', texname='bfitKappa' },
---~ [0x1D726] = { mathclass='alphabetic', adobename='u1D726', texname='bfitLambda' },
---~ [0x1D727] = { mathclass='alphabetic', adobename='u1D727', texname='bfitMu' },
---~ [0x1D728] = { mathclass='alphabetic', adobename='u1D728', texname='bfitNu' },
---~ [0x1D729] = { mathclass='alphabetic', adobename='u1D729', texname='bfitXi' },
---~ [0x1D72A] = { mathclass='alphabetic', adobename='u1D72A', texname='bfitOmicron' },
---~ [0x1D72B] = { mathclass='alphabetic', adobename='u1D72B', texname='bfitPi' },
---~ [0x1D72C] = { mathclass='alphabetic', adobename='u1D72C', texname='bfitRho' },
---~ [0x1D72D] = { mathclass='alphabetic', adobename='u1D72D', texname='bfitvarTheta' },
---~ [0x1D72E] = { mathclass='alphabetic', adobename='u1D72E', texname='bfitSigma' },
---~ [0x1D72F] = { mathclass='alphabetic', adobename='u1D72F', texname='bfitTau' },
---~ [0x1D730] = { mathclass='alphabetic', adobename='u1D730', texname='bfitUpsilon' },
---~ [0x1D731] = { mathclass='alphabetic', adobename='u1D731', texname='bfitPhi' },
---~ [0x1D732] = { mathclass='alphabetic', adobename='u1D732', texname='bfitChi' },
---~ [0x1D733] = { mathclass='alphabetic', adobename='u1D733', texname='bfitPsi' },
---~ [0x1D734] = { mathclass='alphabetic', adobename='u1D734', texname='bfitOmega' },
---~ [0x1D735] = { mathclass='normal', adobename='u1D735', texname='bfitnabla' },
---~ [0x1D736] = { mathclass='alphabetic', adobename='u1D736', texname='bfitalpha' },
---~ [0x1D737] = { mathclass='alphabetic', adobename='u1D737', texname='bfitbeta' },
---~ [0x1D738] = { mathclass='alphabetic', adobename='u1D738', texname='bfitgamma' },
---~ [0x1D739] = { mathclass='alphabetic', adobename='u1D739', texname='bfitdelta' },
---~ [0x1D73A] = { mathclass='alphabetic', adobename='u1D73A', texname='bfitvarepsilon' },
---~ [0x1D73B] = { mathclass='alphabetic', adobename='u1D73B', texname='bfitzeta' },
---~ [0x1D73C] = { mathclass='alphabetic', adobename='u1D73C', texname='bfiteta' },
---~ [0x1D73D] = { mathclass='alphabetic', adobename='u1D73D', texname='bfittheta' },
---~ [0x1D73E] = { mathclass='alphabetic', adobename='u1D73E', texname='bfitiota' },
---~ [0x1D73F] = { mathclass='alphabetic', adobename='u1D73F', texname='bfitkappa' },
---~ [0x1D740] = { mathclass='alphabetic', adobename='u1D740', texname='bfitlambda' },
---~ [0x1D741] = { mathclass='alphabetic', adobename='u1D741', texname='bfitmu' },
---~ [0x1D742] = { mathclass='alphabetic', adobename='u1D742', texname='bfitnu' },
---~ [0x1D743] = { mathclass='alphabetic', adobename='u1D743', texname='bfitxi' },
---~ [0x1D744] = { mathclass='alphabetic', adobename='u1D744', texname='bfitomicron' },
---~ [0x1D745] = { mathclass='alphabetic', adobename='u1D745', texname='bfitpi' },
---~ [0x1D746] = { mathclass='alphabetic', adobename='u1D746', texname='bfitrho' },
---~ [0x1D747] = { mathclass='alphabetic', adobename='u1D747', texname='bfitvarsigma' },
---~ [0x1D748] = { mathclass='alphabetic', adobename='u1D748', texname='bfitsigma' },
---~ [0x1D749] = { mathclass='alphabetic', adobename='u1D749', texname='bfittau' },
---~ [0x1D74A] = { mathclass='alphabetic', adobename='u1D74A', texname='bfitupsilon' },
---~ [0x1D74B] = { mathclass='alphabetic', adobename='u1D74B', texname='bfitphi' },
---~ [0x1D74C] = { mathclass='alphabetic', adobename='u1D74C', texname='bfitchi' },
---~ [0x1D74D] = { mathclass='alphabetic', adobename='u1D74D', texname='bfitpsi' },
---~ [0x1D74E] = { mathclass='alphabetic', adobename='u1D74E', texname='bfitomega' },
---~ [0x1D74F] = { mathclass='normal', adobename='u1D74F', texname='bfitpartial' },
---~ [0x1D750] = { mathclass='alphabetic', adobename='u1D750', texname='bfitepsilon' },
---~ [0x1D751] = { mathclass='alphabetic', adobename='u1D751', texname='bfitvartheta' },
---~ [0x1D752] = { mathclass='alphabetic', adobename='u1D752', texname='bfitvarkappa' },
---~ [0x1D753] = { mathclass='alphabetic', adobename='u1D753', texname='bfitvarphi' },
---~ [0x1D754] = { mathclass='alphabetic', adobename='u1D754', texname='bfitvarrho' },
---~ [0x1D755] = { mathclass='alphabetic', adobename='u1D755', texname='bfitvarpi' },
---~ [0x1D756] = { mathclass='alphabetic', adobename='u1D756', texname='bfsansAlpha' },
---~ [0x1D757] = { mathclass='alphabetic', adobename='u1D757', texname='bfsansBeta' },
---~ [0x1D758] = { mathclass='alphabetic', adobename='u1D758', texname='bfsansGamma' },
---~ [0x1D759] = { mathclass='alphabetic', adobename='u1D759', texname='bfsansDelta' },
---~ [0x1D75A] = { mathclass='alphabetic', adobename='u1D75A', texname='bfsansEpsilon' },
---~ [0x1D75B] = { mathclass='alphabetic', adobename='u1D75B', texname='bfsansZeta' },
---~ [0x1D75C] = { mathclass='alphabetic', adobename='u1D75C', texname='bfsansEta' },
---~ [0x1D75D] = { mathclass='alphabetic', adobename='u1D75D', texname='bfsansTheta' },
---~ [0x1D75E] = { mathclass='alphabetic', adobename='u1D75E', texname='bfsansIota' },
---~ [0x1D75F] = { mathclass='alphabetic', adobename='u1D75F', texname='bfsansKappa' },
---~ [0x1D760] = { mathclass='alphabetic', adobename='u1D760', texname='bfsansLambda' },
---~ [0x1D761] = { mathclass='alphabetic', adobename='u1D761', texname='bfsansMu' },
---~ [0x1D762] = { mathclass='alphabetic', adobename='u1D762', texname='bfsansNu' },
---~ [0x1D763] = { mathclass='alphabetic', adobename='u1D763', texname='bfsansXi' },
---~ [0x1D764] = { mathclass='alphabetic', adobename='u1D764', texname='bfsansOmicron' },
---~ [0x1D765] = { mathclass='alphabetic', adobename='u1D765', texname='bfsansPi' },
---~ [0x1D766] = { mathclass='alphabetic', adobename='u1D766', texname='bfsansRho' },
---~ [0x1D767] = { mathclass='alphabetic', adobename='u1D767', texname='bfsansvarTheta' },
---~ [0x1D768] = { mathclass='alphabetic', adobename='u1D768', texname='bfsansSigma' },
---~ [0x1D769] = { mathclass='alphabetic', adobename='u1D769', texname='bfsansTau' },
---~ [0x1D76A] = { mathclass='alphabetic', adobename='u1D76A', texname='bfsansUpsilon' },
---~ [0x1D76B] = { mathclass='alphabetic', adobename='u1D76B', texname='bfsansPhi' },
---~ [0x1D76C] = { mathclass='alphabetic', adobename='u1D76C', texname='bfsansChi' },
---~ [0x1D76D] = { mathclass='alphabetic', adobename='u1D76D', texname='bfsansPsi' },
---~ [0x1D76E] = { mathclass='alphabetic', adobename='u1D76E', texname='bfsansOmega' },
---~ [0x1D76F] = { mathclass='normal', adobename='u1D76F', texname='bfsansnabla' },
---~ [0x1D770] = { mathclass='alphabetic', adobename='u1D770', texname='bfsansalpha' },
---~ [0x1D771] = { mathclass='alphabetic', adobename='u1D771', texname='bfsansbeta' },
---~ [0x1D772] = { mathclass='alphabetic', adobename='u1D772', texname='bfsansgamma' },
---~ [0x1D773] = { mathclass='alphabetic', adobename='u1D773', texname='bfsansdelta' },
---~ [0x1D774] = { mathclass='alphabetic', adobename='u1D774', texname='bfsansvarepsilon' },
---~ [0x1D775] = { mathclass='alphabetic', adobename='u1D775', texname='bfsanszeta' },
---~ [0x1D776] = { mathclass='alphabetic', adobename='u1D776', texname='bfsanseta' },
---~ [0x1D777] = { mathclass='alphabetic', adobename='u1D777', texname='bfsanstheta' },
---~ [0x1D778] = { mathclass='alphabetic', adobename='u1D778', texname='bfsansiota' },
---~ [0x1D779] = { mathclass='alphabetic', adobename='u1D779', texname='bfsanskappa' },
---~ [0x1D77A] = { mathclass='alphabetic', adobename='u1D77A', texname='bfsanslambda' },
---~ [0x1D77B] = { mathclass='alphabetic', adobename='u1D77B', texname='bfsansmu' },
---~ [0x1D77C] = { mathclass='alphabetic', adobename='u1D77C', texname='bfsansnu' },
---~ [0x1D77D] = { mathclass='alphabetic', adobename='u1D77D', texname='bfsansxi' },
---~ [0x1D77E] = { mathclass='alphabetic', adobename='u1D77E', texname='bfsansomicron' },
---~ [0x1D77F] = { mathclass='alphabetic', adobename='u1D77F', texname='bfsanspi' },
---~ [0x1D780] = { mathclass='alphabetic', adobename='u1D780', texname='bfsansrho' },
---~ [0x1D781] = { mathclass='alphabetic', adobename='u1D781', texname='bfsansvarsigma' },
---~ [0x1D782] = { mathclass='alphabetic', adobename='u1D782', texname='bfsanssigma' },
---~ [0x1D783] = { mathclass='alphabetic', adobename='u1D783', texname='bfsanstau' },
---~ [0x1D784] = { mathclass='alphabetic', adobename='u1D784', texname='bfsansupsilon' },
---~ [0x1D785] = { mathclass='alphabetic', adobename='u1D785', texname='bfsansphi' },
---~ [0x1D786] = { mathclass='alphabetic', adobename='u1D786', texname='bfsanschi' },
---~ [0x1D787] = { mathclass='alphabetic', adobename='u1D787', texname='bfsanspsi' },
---~ [0x1D788] = { mathclass='alphabetic', adobename='u1D788', texname='bfsansomega' },
---~ [0x1D789] = { mathclass='normal', adobename='u1D789', texname='bfsanspartial' },
---~ [0x1D78A] = { mathclass='alphabetic', adobename='u1D78A', texname='bfsansepsilon' },
---~ [0x1D78B] = { mathclass='alphabetic', adobename='u1D78B', texname='bfsansvartheta' },
---~ [0x1D78C] = { mathclass='alphabetic', adobename='u1D78C', texname='bfsansvarkappa' },
---~ [0x1D78D] = { mathclass='alphabetic', adobename='u1D78D', texname='bfsansvarphi' },
---~ [0x1D78E] = { mathclass='alphabetic', adobename='u1D78E', texname='bfsansvarrho' },
---~ [0x1D78F] = { mathclass='alphabetic', adobename='u1D78F', texname='bfsansvarpi' },
---~ [0x1D790] = { mathclass='alphabetic', adobename='u1D790', texname='bfitsansAlpha' },
---~ [0x1D791] = { mathclass='alphabetic', adobename='u1D791', texname='bfitsansBeta' },
---~ [0x1D792] = { mathclass='alphabetic', adobename='u1D792', texname='bfitsansGamma' },
---~ [0x1D793] = { mathclass='alphabetic', adobename='u1D793', texname='bfitsansDelta' },
---~ [0x1D794] = { mathclass='alphabetic', adobename='u1D794', texname='bfitsansEpsilon' },
---~ [0x1D795] = { mathclass='alphabetic', adobename='u1D795', texname='bfitsansZeta' },
---~ [0x1D796] = { mathclass='alphabetic', adobename='u1D796', texname='bfitsansEta' },
---~ [0x1D797] = { mathclass='alphabetic', adobename='u1D797', texname='bfitsansTheta' },
---~ [0x1D798] = { mathclass='alphabetic', adobename='u1D798', texname='bfitsansIota' },
---~ [0x1D799] = { mathclass='alphabetic', adobename='u1D799', texname='bfitsansKappa' },
---~ [0x1D79A] = { mathclass='alphabetic', adobename='u1D79A', texname='bfitsansLambda' },
---~ [0x1D79B] = { mathclass='alphabetic', adobename='u1D79B', texname='bfitsansMu' },
---~ [0x1D79C] = { mathclass='alphabetic', adobename='u1D79C', texname='bfitsansNu' },
---~ [0x1D79D] = { mathclass='alphabetic', adobename='u1D79D', texname='bfitsansXi' },
---~ [0x1D79E] = { mathclass='alphabetic', adobename='u1D79E', texname='bfitsansOmicron' },
---~ [0x1D79F] = { mathclass='alphabetic', adobename='u1D79F', texname='bfitsansPi' },
---~ [0x1D7A0] = { mathclass='alphabetic', adobename='u1D7A0', texname='bfitsansRho' },
---~ [0x1D7A1] = { mathclass='alphabetic', adobename='u1D7A1', texname='bfitsansvarTheta' },
---~ [0x1D7A2] = { mathclass='alphabetic', adobename='u1D7A2', texname='bfitsansSigma' },
---~ [0x1D7A3] = { mathclass='alphabetic', adobename='u1D7A3', texname='bfitsansTau' },
---~ [0x1D7A4] = { mathclass='alphabetic', adobename='u1D7A4', texname='bfitsansUpsilon' },
---~ [0x1D7A5] = { mathclass='alphabetic', adobename='u1D7A5', texname='bfitsansPhi' },
---~ [0x1D7A6] = { mathclass='alphabetic', adobename='u1D7A6', texname='bfitsansChi' },
---~ [0x1D7A7] = { mathclass='alphabetic', adobename='u1D7A7', texname='bfitsansPsi' },
---~ [0x1D7A8] = { mathclass='alphabetic', adobename='u1D7A8', texname='bfitsansOmega' },
---~ [0x1D7A9] = { mathclass='normal', adobename='u1D7A9', texname='bfitsansnabla' },
---~ [0x1D7AA] = { mathclass='alphabetic', adobename='u1D7AA', texname='bfitsansalpha' },
---~ [0x1D7AB] = { mathclass='alphabetic', adobename='u1D7AB', texname='bfitsansbeta' },
---~ [0x1D7AC] = { mathclass='alphabetic', adobename='u1D7AC', texname='bfitsansgamma' },
---~ [0x1D7AD] = { mathclass='alphabetic', adobename='u1D7AD', texname='bfitsansdelta' },
---~ [0x1D7AE] = { mathclass='alphabetic', adobename='u1D7AE', texname='bfitsansvarepsilon' },
---~ [0x1D7AF] = { mathclass='alphabetic', adobename='u1D7AF', texname='bfitsanszeta' },
---~ [0x1D7B0] = { mathclass='alphabetic', adobename='u1D7B0', texname='bfitsanseta' },
---~ [0x1D7B1] = { mathclass='alphabetic', adobename='u1D7B1', texname='bfitsanstheta' },
---~ [0x1D7B2] = { mathclass='alphabetic', adobename='u1D7B2', texname='bfitsansiota' },
---~ [0x1D7B3] = { mathclass='alphabetic', adobename='u1D7B3', texname='bfitsanskappa' },
---~ [0x1D7B4] = { mathclass='alphabetic', adobename='u1D7B4', texname='bfitsanslambda' },
---~ [0x1D7B5] = { mathclass='alphabetic', adobename='u1D7B5', texname='bfitsansmu' },
---~ [0x1D7B6] = { mathclass='alphabetic', adobename='u1D7B6', texname='bfitsansnu' },
---~ [0x1D7B7] = { mathclass='alphabetic', adobename='u1D7B7', texname='bfitsansxi' },
---~ [0x1D7B8] = { mathclass='alphabetic', adobename='u1D7B8', texname='bfitsansomicron' },
---~ [0x1D7B9] = { mathclass='alphabetic', adobename='u1D7B9', texname='bfitsanspi' },
---~ [0x1D7BA] = { mathclass='alphabetic', adobename='u1D7BA', texname='bfitsansrho' },
---~ [0x1D7BB] = { mathclass='alphabetic', adobename='u1D7BB', texname='bfitsansvarsigma' },
---~ [0x1D7BC] = { mathclass='alphabetic', adobename='u1D7BC', texname='bfitsanssigma' },
---~ [0x1D7BD] = { mathclass='alphabetic', adobename='u1D7BD', texname='bfitsanstau' },
---~ [0x1D7BE] = { mathclass='alphabetic', adobename='u1D7BE', texname='bfitsansupsilon' },
---~ [0x1D7BF] = { mathclass='alphabetic', adobename='u1D7BF', texname='bfitsansphi' },
---~ [0x1D7C0] = { mathclass='alphabetic', adobename='u1D7C0', texname='bfitsanschi' },
---~ [0x1D7C1] = { mathclass='alphabetic', adobename='u1D7C1', texname='bfitsanspsi' },
---~ [0x1D7C2] = { mathclass='alphabetic', adobename='u1D7C2', texname='bfitsansomega' },
---~ [0x1D7C3] = { mathclass='normal', adobename='u1D7C3', texname='bfitsanspartial' },
---~ [0x1D7C4] = { mathclass='alphabetic', adobename='u1D7C4', texname='bfitsansepsilon' },
---~ [0x1D7C5] = { mathclass='alphabetic', adobename='u1D7C5', texname='bfitsansvartheta' },
---~ [0x1D7C6] = { mathclass='alphabetic', adobename='u1D7C6', texname='bfitsansvarkappa' },
---~ [0x1D7C7] = { mathclass='alphabetic', adobename='u1D7C7', texname='bfitsansvarphi' },
---~ [0x1D7C8] = { mathclass='alphabetic', adobename='u1D7C8', texname='bfitsansvarrho' },
---~ [0x1D7C9] = { mathclass='alphabetic', adobename='u1D7C9', texname='bfitsansvarpi' },
---~ [0x1D7CA] = { mathclass='alphabetic', adobename='u1D7CA', texname='bfDigamma' },
---~ [0x1D7CB] = { mathclass='alphabetic', adobename='u1D7CB', texname='bfdigamma' },
---~ [0x1D7CC] = { mathclass='unknown', adobename='u1D7CC' },
---~ [0x1D7CD] = { mathclass='unknown', adobename='u1D7CD' },
---~ [0x1D7CE] = { mathclass='normal', adobename='u1D7CE', texname='bfzero' },
---~ [0x1D7CF] = { mathclass='normal', adobename='u1D7CF', texname='bfone' },
---~ [0x1D7D0] = { mathclass='normal', adobename='u1D7D0', texname='bftwo' },
---~ [0x1D7D1] = { mathclass='normal', adobename='u1D7D1', texname='bfthree' },
---~ [0x1D7D2] = { mathclass='normal', adobename='u1D7D2', texname='bffour' },
---~ [0x1D7D3] = { mathclass='normal', adobename='u1D7D3', texname='bffive' },
---~ [0x1D7D4] = { mathclass='normal', adobename='u1D7D4', texname='bfsix' },
---~ [0x1D7D5] = { mathclass='normal', adobename='u1D7D5', texname='bfseven' },
---~ [0x1D7D6] = { mathclass='normal', adobename='u1D7D6', texname='bfeight' },
---~ [0x1D7D7] = { mathclass='normal', adobename='u1D7D7', texname='bfnine' },
---~ [0x1D7D8] = { mathclass='normal', adobename='u1D7D8', texname='Bbbzero' },
---~ [0x1D7D9] = { mathclass='normal', adobename='u1D7D9', texname='Bbbone' },
---~ [0x1D7DA] = { mathclass='normal', adobename='u1D7DA', texname='Bbbtwo' },
---~ [0x1D7DB] = { mathclass='normal', adobename='u1D7DB', texname='Bbbthree' },
---~ [0x1D7DC] = { mathclass='normal', adobename='u1D7DC', texname='Bbbfour' },
---~ [0x1D7DD] = { mathclass='normal', adobename='u1D7DD', texname='Bbbfive' },
---~ [0x1D7DE] = { mathclass='normal', adobename='u1D7DE', texname='Bbbsix' },
---~ [0x1D7DF] = { mathclass='normal', adobename='u1D7DF', texname='Bbbseven' },
---~ [0x1D7E0] = { mathclass='normal', adobename='u1D7E0', texname='Bbbeight' },
---~ [0x1D7E1] = { mathclass='normal', adobename='u1D7E1', texname='Bbbnine' },
---~ [0x1D7E2] = { mathclass='normal', adobename='u1D7E2', texname='sanszero' },
---~ [0x1D7E3] = { mathclass='normal', adobename='u1D7E3', texname='sansone' },
---~ [0x1D7E4] = { mathclass='normal', adobename='u1D7E4', texname='sanstwo' },
---~ [0x1D7E5] = { mathclass='normal', adobename='u1D7E5', texname='sansthree' },
---~ [0x1D7E6] = { mathclass='normal', adobename='u1D7E6', texname='sansfour' },
---~ [0x1D7E7] = { mathclass='normal', adobename='u1D7E7', texname='sansfive' },
---~ [0x1D7E8] = { mathclass='normal', adobename='u1D7E8', texname='sanssix' },
---~ [0x1D7E9] = { mathclass='normal', adobename='u1D7E9', texname='sansseven' },
---~ [0x1D7EA] = { mathclass='normal', adobename='u1D7EA', texname='sanseight' },
---~ [0x1D7EB] = { mathclass='normal', adobename='u1D7EB', texname='sansnine' },
---~ [0x1D7EC] = { mathclass='normal', adobename='u1D7EC', texname='bfsanszero' },
---~ [0x1D7ED] = { mathclass='normal', adobename='u1D7ED', texname='bfsansone' },
---~ [0x1D7EE] = { mathclass='normal', adobename='u1D7EE', texname='bfsanstwo' },
---~ [0x1D7EF] = { mathclass='normal', adobename='u1D7EF', texname='bfsansthree' },
---~ [0x1D7F0] = { mathclass='normal', adobename='u1D7F0', texname='bfsansfour' },
---~ [0x1D7F1] = { mathclass='normal', adobename='u1D7F1', texname='bfsansfive' },
---~ [0x1D7F2] = { mathclass='normal', adobename='u1D7F2', texname='bfsanssix' },
---~ [0x1D7F3] = { mathclass='normal', adobename='u1D7F3', texname='bfsansseven' },
---~ [0x1D7F4] = { mathclass='normal', adobename='u1D7F4', texname='bfsanseight' },
---~ [0x1D7F5] = { mathclass='normal', adobename='u1D7F5', texname='bfsansnine' },
---~ [0x1D7F6] = { mathclass='normal', adobename='u1D7F6', texname='ttzero' },
---~ [0x1D7F7] = { mathclass='normal', adobename='u1D7F7', texname='ttone' },
---~ [0x1D7F8] = { mathclass='normal', adobename='u1D7F8', texname='tttwo' },
---~ [0x1D7F9] = { mathclass='normal', adobename='u1D7F9', texname='ttthree' },
---~ [0x1D7FA] = { mathclass='normal', adobename='u1D7FA', texname='ttfour' },
---~ [0x1D7FB] = { mathclass='normal', adobename='u1D7FB', texname='ttfive' },
---~ [0x1D7FC] = { mathclass='normal', adobename='u1D7FC', texname='ttsix' },
---~ [0x1D7FD] = { mathclass='normal', adobename='u1D7FD', texname='ttseven' },
---~ [0x1D7FE] = { mathclass='normal', adobename='u1D7FE', texname='tteight' },
---~ [0x1D7FF] = { mathclass='normal', adobename='u1D7FF', texname='ttnine' },
---~ [0x0FB00] = { mathclass='alphabetic', adobename='ff' },
---~ [0x0FB01] = { mathclass='alphabetic', adobename='fi' },
---~ [0x0FB02] = { mathclass='alphabetic', adobename='fl' },
---~ [0x0FB03] = { mathclass='alphabetic', adobename='ffi' },
---~ [0x0FB04] = { mathclass='alphabetic', adobename='ffl' },
---~ [0x0FE00] = { mathclass='unknown', adobename='uniFE00' },
---~ [0x0FE35] = { mathclass='unknown', adobename='uni23DC', texname='overparen' },
---~ [0x0FE36] = { mathclass='unknown', adobename='uni23DD', texname='underparen' },
---~ [0x0FE37] = { mathclass='unknown', adobename='uni23DE', texname='overbrace' },
---~ [0x0FE38] = { mathclass='unknown', adobename='uni23DF', texname='underbrace' },
---~ [0x0FFFD] = { mathclass='unknown', adobename='uniFFFD', texname='unknown' },
---~ }
diff --git a/Master/texmf-dist/tex/context/base/math-def.mkiv b/Master/texmf-dist/tex/context/base/math-def.mkiv
new file mode 100644
index 00000000000..ad5e40672f2
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/math-def.mkiv
@@ -0,0 +1,338 @@
+%D \module
+%D [ file=math-tex,
+%D version=2001.04.12,
+%D title=\CONTEXT\ Math Macros,
+%D subtitle=Definitions,
+%D author={Hans Hagen, Taco Hoekwater \& Aditya Mahajan},
+%D date=\currentdate,
+%D copyright=\PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Math Macros / Definitions}
+
+\unprotect
+
+\ifx\mrfam\undefined \chardef\mrfam\plusone \fi
+
+\startluacode
+ mathematics.define()
+ mathematics.register_xml_entities()
+\stopluacode
+
+% special .. todo
+
+\mathcode`\ ="8000 \mathcode`\_="8000 \mathcode`\'="8000
+
+% will be attributes
+
+\setfalse \automathpunctuation
+
+\def\enablemathpunctuation {\settrue \automathpunctuation}
+\def\disablemathpunctuation{\setfalse\automathpunctuation}
+
+\def\v!autopunctuation{autopunctuation}
+
+\appendtoks
+ \doifelse{\mathematicsparameter\v!autopunctuation}\v!yes\enablemathpunctuation\disablemathpunctuation
+\to \everysetupmathematics
+
+\appendtoks
+ \ifconditional\automathpunctuation\dosetattribute{mathpunc}\plusone\fi
+\to \everymathematics
+
+\setupmathematics[\v!autopunctuation=\v!yes]
+
+% will go to math-ext
+
+\Umathchardef\braceld=0 \mrfam "FF07A
+\Umathchardef\bracerd=0 \mrfam "FF07B
+\Umathchardef\bracelu=0 \mrfam "FF07C
+\Umathchardef\braceru=0 \mrfam "FF07D
+
+% ctx specific
+
+\def\|{|} % still letter
+
+% The \mfunction macro is an alternative for \hbox with a
+% controlable font switch.
+
+\definemathcommand [arccos] [nolop] {\mfunction{arccos}}
+\definemathcommand [arcsin] [nolop] {\mfunction{arcsin}}
+\definemathcommand [arctan] [nolop] {\mfunction{arctan}}
+\definemathcommand [arg] [nolop] {\mfunction{arg}}
+\definemathcommand [cosh] [nolop] {\mfunction{cosh}}
+\definemathcommand [cos] [nolop] {\mfunction{cos}}
+\definemathcommand [coth] [nolop] {\mfunction{coth}}
+\definemathcommand [cot] [nolop] {\mfunction{cot}}
+\definemathcommand [csc] [nolop] {\mfunction{csc}}
+\definemathcommand [deg] [nolop] {\mfunction{deg}}
+\definemathcommand [det] [limop] {\mfunction{det}}
+\definemathcommand [dim] [nolop] {\mfunction{dim}}
+\definemathcommand [exp] [nolop] {\mfunction{exp}}
+\definemathcommand [gcd] [limop] {\mfunction{gcd}}
+\definemathcommand [hom] [nolop] {\mfunction{hom}}
+\definemathcommand [inf] [limop] {\mfunction{inf}}
+\definemathcommand [injlim] [limop] {\mfunction{inj\,lim}}
+\definemathcommand [ker] [nolop] {\mfunction{ker}}
+\definemathcommand [lg] [nolop] {\mfunction{lg}}
+\definemathcommand [liminf] [limop] {\mfunction{lim\,inf}}
+\definemathcommand [limsup] [limop] {\mfunction{lim\,sup}}
+\definemathcommand [lim] [limop] {\mfunction{lim}}
+\definemathcommand [ln] [nolop] {\mfunction{ln}}
+\definemathcommand [log] [nolop] {\mfunction{log}}
+\definemathcommand [median] [limop] {\mfunction{median}}
+\definemathcommand [max] [limop] {\mfunction{max}}
+\definemathcommand [min] [limop] {\mfunction{min}}
+\definemathcommand [mod] [limop] {\mfunction{mod}}
+\definemathcommand [div] [limop] {\mfunction{div}}
+\definemathcommand [projlim] [limop] {\mfunction{proj\,lim}}
+\definemathcommand [Pr] [limop] {\mfunction{Pr}}
+\definemathcommand [sec] [nolop] {\mfunction{sec}}
+\definemathcommand [sinh] [nolop] {\mfunction{sinh}}
+\definemathcommand [sin] [nolop] {\mfunction{sin}}
+\definemathcommand [sup] [limop] {\mfunction{sup}}
+\definemathcommand [tanh] [nolop] {\mfunction{tanh}}
+\definemathcommand [tan] [nolop] {\mfunction{tan}}
+
+\definemathcommand [integers] {{\mathblackboard Z}}
+\definemathcommand [reals] {{\mathblackboard R}}
+\definemathcommand [rationals] {{\mathblackboard Q}}
+\definemathcommand [naturalnumbers]{{\mathblackboard N}}
+\definemathcommand [complexes] {{\mathblackboard C}}
+\definemathcommand [primes] {{\mathblackboard P}}
+
+% using attributes
+
+\def\choosemathbig#1#2{\dosetattribute{mathsize}{#1}\left#2\right.\doresetattribute{mathsize}}
+
+\definemathcommand [big] {\choosemathbig\plusone }
+\definemathcommand [Big] {\choosemathbig\plustwo }
+\definemathcommand [bigg] {\choosemathbig\plusthree}
+\definemathcommand [Bigg] {\choosemathbig\plusfour }
+
+\definemathcommand [bigl] [open] [one] {\big}
+\definemathcommand [bigm] [rel] [one] {\big}
+\definemathcommand [bigr] [close] [one] {\big}
+\definemathcommand [Bigl] [open] [one] {\Big}
+\definemathcommand [Bigm] [rel] [one] {\Big}
+\definemathcommand [Bigr] [close] [one] {\Big}
+\definemathcommand [biggl] [open] [one] {\bigg}
+\definemathcommand [biggm] [rel] [one] {\bigg}
+\definemathcommand [biggr] [close] [one] {\bigg}
+\definemathcommand [Biggl] [open] [one] {\Bigg}
+\definemathcommand [Biggm] [rel] [one] {\Bigg}
+\definemathcommand [Biggr] [close] [one] {\Bigg}
+
+% special
+
+%AM: Optimize this! Add similar options for sums.
+
+\def\setoperatorlimits#1#2% operator limits
+ {\savenormalmeaning{#1}%
+ \def#1{\csname normal\strippedcsname#1\endcsname#2}}
+
+\setoperatorlimits\int \intlimits
+\setoperatorlimits\iint \intlimits
+\setoperatorlimits\iiint \intlimits
+\setoperatorlimits\oint \intlimits
+\setoperatorlimits\oiint \intlimits
+\setoperatorlimits\oiiint \intlimits
+\setoperatorlimits\intclockwise \intlimits
+\setoperatorlimits\ointclockwise \intlimits
+\setoperatorlimits\ointctrclockwise \intlimits
+
+%D This is a temporary hack until we figure out how to do this correctly.
+
+\unexpanded\def\implies {\mathrel{\;\Longrightarrow\;}}
+\unexpanded\def\impliedby{\mathrel{\;\Longleftarrow\;}}
+\unexpanded\def\And {\mathrel{\;\internalAnd\;}}
+\unexpanded\def\iff {\;\Longleftrightarrow\;}
+
+% todo: virtual in math-vfu
+
+% \definemathcommand [mapsto] {\mapstochar\rightarrow}
+% \definemathcommand [hookrightarrow] {\lhook\joinrel\rightarrow}
+% \definemathcommand [hookleftarrow] {\leftarrow\joinrel\rhook}
+% \definemathcommand [bowtie] {\mathrel\triangleright\joinrel\mathrel\triangleleft}
+% \definemathcommand [models] {\mathrel|\joinrel=}
+% \definemathcommand [iff] {\;\Longleftrightarrow\;}
+
+% hm
+
+% ldots = 2026
+% vdots = 22EE
+% cdots = 22EF
+% ddots = 22F1
+% udots = 22F0
+
+% \def\PLAINldots{\ldotp\ldotp\ldotp}
+% \def\PLAINcdots{\cdotp\cdotp\cdotp}
+
+% \def\PLAINvdots
+% {\vbox{\baselineskip.4\bodyfontsize\lineskiplimit\zeropoint\kern.6\bodyfontsize\hbox{.}\hbox{.}\hbox{.}}}
+
+% \def\PLAINddots
+% {\mkern1mu%
+% \raise.7\bodyfontsize\vbox{\kern.7\bodyfontsize\hbox{.}}%
+% \mkern2mu%
+% \raise.4\bodyfontsize\relax\hbox{.}%
+% \mkern2mu%
+% \raise.1\bodyfontsize\hbox{.}%
+% \mkern1mu}
+
+% \definemathcommand [ldots] [inner] {\PLAINldots}
+% \definemathcommand [cdots] [inner] {\PLAINcdots}
+% \definemathcommand [vdots] [nothing] {\PLAINvdots}
+% \definemathcommand [ddots] [inner] {\PLAINddots}
+
+%D \starttyping
+%D $\sqrt[3]{10}$
+%D \stoptyping
+
+\def\rootradical{\Uroot 0 "221A } % can be done in char-def
+
+\def\root#1\of{\rootradical{#1}} % #2
+
+\unexpanded\def\sqrt{\doifnextoptionalelse\rootwithdegree\rootwithoutdegree}
+
+\def\rootwithdegree [#1]{\rootradical{#1}}
+\def\rootwithoutdegree {\rootradical {}}
+
+\def\PLAINmatrix#1%
+ {\null\,\vcenter{\normalbaselines\mathsurround\zeropoint
+ \ialign{\hfil$##$\hfil&&\quad\hfil$##$\hfil\crcr
+ \mathstrut\crcr\noalign{\kern-\baselineskip}
+ #1\crcr\mathstrut\crcr\noalign{\kern-\baselineskip}}}\,}
+
+\definemathcommand [mathstrut] {\vphantom{(}}
+\definemathcommand [joinrel] {\mathrel{\mkern-3mu}}
+
+% \definemathcommand [matrix] {\PLAINmatrix}
+% \definemathcommand [over] {\normalover} % hack, to do
+
+\unexpanded\def\{{\mathortext\lbrace\letterleftbrace }
+\unexpanded\def\}{\mathortext\rbrace\letterrightbrace}
+
+%D The following colon related definitions are provided by Aditya
+%D Mahajan who derived them from \type {mathtools.sty} and \type
+%D {colonequals.sty}.
+
+%D \macros
+%D {centercolon, colonminus, minuscolon, colonequals, equalscolon,
+%D colonapprox, approxcolon, colonsim, simcolon, coloncolon,
+%D coloncolonminus, minuscoloncolon, coloncolonequals,
+%D equalscoloncolon, coloncolonapprox, approxcoloncolon,
+%D colonsim, simcoloncolon}
+%D
+%D In $a := b$ the colon is not vertically centered with the equal
+%D to. Also the distance between colon and equal to is a bit large.
+%D So, we define a vertically centered colon \tex {centercolon} and
+%D a few macros for colon and double colon relation symbols.
+%D
+%D \startlines
+%D \formula {A \centercolon B}
+%D \formula {A \colonminus B}
+%D \formula {A \minuscolon B}
+%D \formula {A \colonequals B}
+%D \formula {A \equalscolon B}
+%D \formula {A \colonapprox B}
+%D \formula {A \approxcolon B}
+%D \formula {A \colonsim B}
+%D \formula {A \simcolon B}
+%D \formula {A \coloncolon B}
+%D \formula {A \coloncolonminus B}
+%D \formula {A \minuscoloncolon B}
+%D \formula {A \coloncolonequals B}
+%D \formula {A \equalscoloncolon B}
+%D \formula {A \coloncolonapprox B}
+%D \formula {A \approxcoloncolon B}
+%D \formula {A \colonsim B}
+%D \formula {A \simcoloncolon B}
+%D \stoplines
+
+%D The next macros take care of the space between the colon and the
+%D relation symbol.
+
+\definemathcommand [colonsep] {\mkern-1.2mu}
+\definemathcommand [doublecolonsep] {\mkern-0.9mu}
+
+%D The next macro vertically centeres its contents.
+
+\def\@center@math#1%
+ {\vcenter{\hbox{$\mathsurround\zeropoint#1$}}}
+
+\def\@center@colon
+ {\mathpalette\@center@math{\colon}}
+
+%D Now we define all the colon relations.
+
+\definemathcommand [centercolon] [rel] {\@center@colon}
+\definemathcommand [colonminus] [rel] {\centercolon\colonsep\mathrel{-}}
+\definemathcommand [minuscolon] [rel] {\mathrel{-}\colonsep\centercolon}
+\definemathcommand [colonequals] [rel] {\centercolon\colonsep=}
+\definemathcommand [equalscolon] [rel] {=\centercolon\colonsep}
+\definemathcommand [colonapprox] [rel] {\centercolon\colonsep\approx}
+\definemathcommand [approxcolon] [rel] {\approx\centercolon\colonsep}
+\definemathcommand [colonsim] [rel] {\centercolon\colonsep\sim}
+\definemathcommand [simcolon] [rel] {\sim\centercolon\colonsep}
+
+\definemathcommand [coloncolon] [rel] {\centercolon\doublecolonsep\centercolon}
+\definemathcommand [coloncolonminus] [rel] {\coloncolon\colonsep\mathrel{-}}
+\definemathcommand [minuscoloncolon] [rel] {\mathrel{-}\colonsep\coloncolon}
+\definemathcommand [coloncolonequals] [rel] {\coloncolon\colonsep=}
+\definemathcommand [equalscoloncolon] [rel] {=\coloncolon\colonsep}
+\definemathcommand [coloncolonapprox] [rel] {\coloncolon\colonsep\approx}
+\definemathcommand [approxcoloncolon] [rel] {\approx\coloncolon\colonsep}
+\definemathcommand [colonsim] [rel] {\coloncolon\colonsep\sim}
+\definemathcommand [simcoloncolon] [rel] {\sim\coloncolon\colonsep}
+
+%D Goodies. We might move this elsewhere.
+
+\def\underleftarrow #1{\mathop{\Uunderdelimiter 0 "2190 {#1}}}
+\def\overleftarrow #1{\mathop{\Uoverdelimiter 0 "2190 {#1}}}
+\def\underrightarrow#1{\mathop{\Uunderdelimiter 0 "2192 {#1}}}
+\def\overrightarrow #1{\mathop{\Uoverdelimiter 0 "2192 {#1}}}
+
+% todo: \Udelimiterover, \Udelimiterunder
+
+\def\normaldoublebrace {\Umathaccents 0 0 "23DE 0 0 "23DF }
+\def\normaldoubleparent{\Umathaccents 0 0 "23DC 0 0 "23DD }
+
+\let\normaloverbrace \overbrace
+\let\normalunderbrace \underbrace
+\let\normaloverparent \overparent
+\let\normalunderparent \underparent
+\let\normalunderleftarrow \underleftarrow
+\let\normaloverleftarrow \overleftarrow
+\let\normalunderrightarrow\underrightarrow
+\let\normaloverrightarrow \overrightarrow
+
+\unexpanded\def\mathopwithlimits#1#2{\mathop{#1{#2}}\limits}
+\unexpanded\def\stackrel #1#2{\mathrel{\mathop{#2}\limits^{#1}}}
+
+\unexpanded\def\overbrace {\mathopwithlimits\normaloverbrace }
+\unexpanded\def\underbrace {\mathopwithlimits\normalunderbrace }
+\unexpanded\def\doublebrace {\mathopwithlimits\normaldoublebrace }
+\unexpanded\def\overparent {\mathopwithlimits\normaloverparent }
+\unexpanded\def\underparent {\mathopwithlimits\normalunderparent }
+\unexpanded\def\doubleparent {\mathopwithlimits\normaldoubleparent }
+\unexpanded\def\underleftarrow {\mathopwithlimits\normalunderleftarrow }
+\unexpanded\def\overleftarrow {\mathopwithlimits\normaloverleftarrow }
+\unexpanded\def\underrightarrow{\mathopwithlimits\normalunderrightarrow}
+\unexpanded\def\overrightarrow {\mathopwithlimits\normaloverrightarrow }
+
+% todo mathclass=punctuation ord
+
+% \Umathcode"02C="6 "0 "02C
+% \Umathcode"02E="0 "0 "02E
+
+% tricky .. todo
+
+% \appendtoks
+% \def\over{\primitive\over}%
+% \to \everymathematics
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/math-del.mkiv b/Master/texmf-dist/tex/context/base/math-del.mkiv
new file mode 100644
index 00000000000..5ffda1919cb
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/math-del.mkiv
@@ -0,0 +1,63 @@
+%D \module
+%D [ file=math-del,
+%D version=2007.07.19,
+%D title=\CONTEXT\ Math Macros,
+%D subtitle=Delimiters,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=\PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Math Macros / Delimiters}
+
+\unprotect
+
+%D \macros
+%D {checkdelimiters, fakeleftdelimiter, fakerightdelimiter}
+%D
+%D Handy for non matching situations (as with mathml):
+%D
+%D \starttyping
+%D \checkdelimiters{... bla bla ...}
+%D \fakeleftdelimiter
+%D ... bla bla ...
+%D \fakerightdelimiter
+%D \stoptyping
+
+\newcount\delimitercount
+
+\def\leftfakedelimiter {\advance\delimitercount\minusone\gobbleoneargument}%
+\def\rightfakedelimiter{\advance\delimitercount\plusone \gobbleoneargument}%
+
+\def\checkdelimiters#1%
+ {\delimitercount\zerocount
+ \setbox\scratchbox\hbox\bgroup
+ \let\left \leftfakedelimiter
+ \let\right\rightfakedelimiter
+ $#1\expandafter$\expandafter
+ \egroup
+ \expandafter\delimitercount\the\delimitercount\relax}
+
+\def\fakeleftdelimiter {\ifnum\delimitercount>\zerocount\left .\fi}
+\def\fakerightdelimiter{\ifnum\delimitercount<\zerocount\right.\fi}
+
+%D The following macros are used in the MathML interpreter, so
+%D there is a good change of them never being documented for
+%D other usage.
+
+\let\normalordelimiter\secondoftwoarguments
+\let\normalorfiller \firstoftwoarguments
+
+\def\enabledelimiter {\let\normalordelimiter\secondoftwoarguments}
+\def\disabledelimiter{\let\normalordelimiter\firstoftwoarguments}
+
+\def\enablefiller {\let\normalorfiller\secondoftwoarguments}
+\def\disablefiller {\let\normalorfiller\firstoftwoarguments}
+
+\def\mathopnolimits#1{\mathop{\mr#1}\nolimits} % was \rm, which follows text fonts (used in mml parser)
+\def\mathopdolimits#1{\mathop{\mr#1}} % was \rm, which follows text fonts (used in mml parser)
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/math-dim.lua b/Master/texmf-dist/tex/context/base/math-dim.lua
new file mode 100644
index 00000000000..a536f03098e
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/math-dim.lua
@@ -0,0 +1,310 @@
+if not modules then modules = { } end modules ['math-dim'] = {
+ version = 1.001,
+ comment = "companion to math-ini.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- Beware: only Taco really understands in depth what these dimensions do so
+-- if you run into problems ...
+
+local abs, next = math.abs, next
+
+mathematics = mathematics or { }
+
+local defaults = {
+ ['axis']={
+ ['default']={ "AxisHeight", "axis_height" },
+ },
+ ['accent_base_height']={
+ ['default']={ "AccentBaseHeight", "x_height" },
+ },
+ ['fraction_del_size']={
+ ['default']={ "0", "delim2" },
+ ['cramped_display_style']={ "0", "delim1" },
+ ['display_style']={ "0", "delim1" },
+ },
+ ['fraction_denom_down']={
+ ['default']={ "FractionDenominatorShiftDown", "denom2" },
+ ['cramped_display_style']={ "FractionDenominatorDisplayStyleShiftDown", "denom1" },
+ ['display_style']={ "FractionDenominatorDisplayStyleShiftDown", "denom1" },
+ },
+ ['fraction_denom_vgap']={
+ ['default']={ "FractionDenominatorGapMin", "default_rule_thickness" },
+ ['cramped_display_style']={ "FractionDenominatorDisplayStyleGapMin", "3*default_rule_thickness" },
+ ['display_style']={ "FractionDenominatorDisplayStyleGapMin", "3*default_rule_thickness" },
+ },
+ ['fraction_num_up']={
+ ['default']={ "FractionNumeratorShiftUp", "num2" },
+ ['cramped_display_style']={ "FractionNumeratorDisplayStyleShiftUp", "num1" },
+ ['display_style']={ "FractionNumeratorDisplayStyleShiftUp", "num1" },
+ },
+ ['fraction_num_vgap']={
+ ['default']={ "FractionNumeratorGapMin", "default_rule_thickness" },
+ ['cramped_display_style']={ "FractionNumeratorDisplayStyleGapMin", "3*default_rule_thickness" },
+ ['display_style']={ "FractionNumeratorDisplayStyleGapMin", "3*default_rule_thickness" },
+ },
+ ['fraction_rule']={
+ ['default']={ "FractionRuleThickness", "default_rule_thickness" },
+ },
+ ['limit_above_bgap']={
+ ['default']={ "UpperLimitBaselineRiseMin", "big_op_spacing3" },
+ },
+ ['limit_above_kern']={
+ ['default']={ "0", "big_op_spacing5" },
+ },
+ ['limit_above_vgap']={
+ ['default']={ "UpperLimitGapMin", "big_op_spacing1" },
+ },
+ ['limit_below_bgap']={
+ ['default']={ "LowerLimitBaselineDropMin", "big_op_spacing4" },
+ },
+ ['limit_below_kern']={
+ ['default']={ "0", "big_op_spacing5" },
+ },
+ ['limit_below_vgap']={
+ ['default']={ "LowerLimitGapMin", "big_op_spacing2" },
+ },
+
+--~ ['....']={
+--~ ['default']={ "DisplayOperatorMinHeight", "....." },
+--~ },
+
+ ['overbar_kern']={
+ ['default']={ "OverbarExtraAscender", "default_rule_thickness" },
+ },
+ ['overbar_rule']={
+ ['default']={ "OverbarRuleThickness", "default_rule_thickness" },
+ },
+ ['overbar_vgap']={
+ ['default']={ "OverbarVerticalGap", "3*default_rule_thickness" },
+ },
+ ['quad']={
+ ['default']={ "font_size(f)", "math_quad" },
+ },
+ ['radical_kern']={
+ ['default']={ "RadicalExtraAscender", "default_rule_thickness" },
+ },
+ ['radical_rule']={
+ ['default']={ "RadicalRuleThickness", "<not set>" },
+ },
+ ['radical_vgap']={
+ ['default']={ "RadicalVerticalGap", "default_rule_thickness+(abs(default_rule_thickness)/4)" },
+ ['display_style']={ "RadicalDisplayStyleVerticalGap", "default_rule_thickness+(abs(math_x_height)/4)" },
+ },
+ ['space_after_script']={
+ ['default']={ "SpaceAfterScript", "script_space" },
+ },
+ ['stack_denom_down']={
+ ['default']={ "StackBottomShiftDown", "denom2" },
+ ['cramped_display_style']={ "StackBottomDisplayStyleShiftDown", "denom1" },
+ ['display_style']={ "StackBottomDisplayStyleShiftDown", "denom1" },
+ },
+ ['stack_num_up']={
+ ['default']={ "StackTopShiftUp", "num3" },
+ ['cramped_display_style']={ "StackTopDisplayStyleShiftUp", "num1" },
+ ['display_style']={ "StackTopDisplayStyleShiftUp", "num1" },
+ },
+ ['stack_vgap']={
+ ['default']={ "StackGapMin", "3*default_rule_thickness" },
+ ['cramped_display_style']={ "StackDisplayStyleGapMin", "7*default_rule_thickness" },
+ ['display_style']={ "StackDisplayStyleGapMin", "7*default_rule_thickness" },
+ },
+ ['sub_shift_down']={
+ ['default']={ "SubscriptShiftDown", "sub1" },
+ },
+ ['sub_shift_drop']={
+ ['default']={ "SubscriptBaselineDropMin", "sub_drop" },
+ },
+ ['sub_sup_shift_down']={
+ ['default']={ "SubscriptShiftDown", "sub2" },
+ },
+ ['sub_top_max']={
+ ['default']={ "SubscriptTopMax", "abs(math_x_height*4)/5" },
+ },
+ ['subsup_vgap']={
+ ['default']={ "SubSuperscriptGapMin", "4*default_rule_thickness" },
+ },
+ ['sup_bottom_min']={
+ ['default']={ "SuperscriptBottomMin", "abs(math_x_height)/4" },
+ },
+ ['sup_shift_drop']={
+ ['default']={ "SuperscriptBaselineDropMax", "sup_drop" },
+ },
+ ['sup_shift_up']={
+ ['cramped_display_style']={ "SuperscriptShiftUpCramped", "sup3" },
+ ['cramped_script_script_style']={ "SuperscriptShiftUpCramped", "sup3" },
+ ['cramped_script_style']={ "SuperscriptShiftUpCramped", "sup3" },
+ ['cramped_text_style']={ "SuperscriptShiftUpCramped", "sup3" },
+ ['display_style']={ "SuperscriptShiftUp", "sup1" },
+ ['script_script_style']={ "SuperscriptShiftUp", "sup2" },
+ ['script_style']={ "SuperscriptShiftUp", "sup2" },
+ ['text_style']={ "SuperscriptShiftUp", "sup2" },
+ },
+ ['sup_sub_bottom_max']={
+ ['default']={ "SuperscriptBottomMaxWithSubscript", "abs(math_x_height*4)/5" },
+ },
+ ['underbar_kern']={
+ ['default']={ "UnderbarExtraDescender", "0" },
+ },
+ ['underbar_rule']={
+ ['default']={ "UnderbarRuleThickness", "default_rule_thickness" },
+ },
+ ['underbar_vgap']={
+ ['default']={ "UnderbarVerticalGap", "3*default_rule_thickness" },
+ },
+ ['connector_overlap_min']={
+ ['default']={ "MinConnectorOverlap", "0.25*default_rule_thickness" },
+ },
+ ['over_delimiter_vgap']={
+ ['default']={ "StretchStackGapBelowMin", "big_op_spacing1" },
+ },
+ ['over_delimiter_bgap']={
+ ['default']={ "StretchStackTopShiftUp", "big_op_spacing3" },
+ },
+ ['under_delimiter_vgap']={
+ ['default']={ "StretchStackGapAboveMin", "big_op_spacing2" },
+ },
+ ['under_delimiter_bgap']={
+ ['default']={ "StretchStackBottomShiftDown", "big_op_spacing4" },
+ },
+ ['radical_degree_before']={
+ ['default']={ "RadicalKernBeforeDegree", "(5/18)*quad" },
+ },
+ ['radical_degree_after']={
+ ['default']={ "RadicalKernAfterDegree", "(-10/18)*quad" },
+ },
+ ['radical_degree_raise']={
+ ['default']={ "RadicalDegreeBottomRaisePercent", "60" },
+ },
+}
+
+local styles = {
+ 'cramped_display_style',
+ 'cramped_script_script_style',
+ 'cramped_script_style',
+ 'cramped_text_style',
+ 'display_style',
+ 'script_script_style',
+ 'script_style',
+ 'text_style',
+}
+
+for k, v in next, defaults do
+ for _, s in next, styles do
+ if not v[s] then
+ v[s] = v.default
+ end
+ end
+end
+
+-- we cannot use a metatable because we do a copy (takes a bit more work)
+--
+-- local mt = { } setmetatable(defaults,mt)
+--
+-- mt.__index = function(t,s)
+-- texio.write_nl("GETTING " .. s)
+-- return t.default or t.text_style or 0
+-- end
+
+function mathematics.dimensions(dimens)
+ if dimens.SpaceAfterScript then
+ return { }, table.fastcopy(dimens)
+ elseif dimens.AxisHeight or dimens.axis_height then
+ local t = { }
+ local math_x_height = dimens.x_height or 10*65526
+ local math_quad = dimens.quad or 10*65526
+ local default_rule_thickness = dimens.FractionDenominatorGapMin or dimens.default_rule_thickness or 0.4*65526
+ dimens["0"] = 0
+ dimens["60"] = 60
+ dimens["0.25*default_rule_thickness"] = default_rule_thickness / 4
+ dimens["3*default_rule_thickness"] = 3 * default_rule_thickness
+ dimens["4*default_rule_thickness"] = 4 * default_rule_thickness
+ dimens["7*default_rule_thickness"] = 7 * default_rule_thickness
+ dimens["(5/18)*quad"] = (math_quad * 5) / 18
+ dimens["(-10/18)*quad"] = - (math_quad * 10) / 18
+ dimens["abs(math_x_height*4)/5"] = abs(math_x_height * 4) / 5
+ dimens["default_rule_thickness+(abs(default_rule_thickness)/4)"] = default_rule_thickness+(abs(default_rule_thickness) / 4)
+ dimens["default_rule_thickness+(abs(math_x_height)/4)"] = default_rule_thickness+(abs(math_x_height) / 4)
+ dimens["abs(math_x_height)/4"] = abs(math_x_height) / 4
+ dimens["abs(math_x_height*4)/5"] = abs(math_x_height * 4) / 5
+ dimens["<not set>"] = false
+ dimens["script_space"] = false -- at macro level
+ for variable, styles in next, defaults do
+ local tt = { }
+ for style, default in next, styles do
+ local one, two = default[1], default[2]
+ local value = dimens[one]
+ if value then
+ tt[style] = value
+ else
+ value = dimens[two]
+ if value == false then
+ tt[style] = nil
+ else
+ tt[style] = value or 0
+ end
+ end
+ end
+ t[variable] = tt
+ end
+ local d = {
+ AxisHeight = t . axis . text_style,
+ AccentBaseHeight = t . accent_base_height . text_style,
+ FractionDenominatorDisplayStyleGapMin = t . fraction_denom_vgap . display_style,
+ FractionDenominatorDisplayStyleShiftDown = t . fraction_denom_down . display_style,
+ FractionDenominatorGapMin = t . fraction_denom_vgap . text_style,
+ FractionDenominatorShiftDown = t . fraction_denom_down . text_style,
+ FractionNumeratorDisplayStyleGapMin = t . fraction_num_vgap . display_style,
+ FractionNumeratorDisplayStyleShiftUp = t . fraction_num_up . display_style,
+ FractionNumeratorGapMin = t . fraction_num_vgap . text_style,
+ FractionNumeratorShiftUp = t . fraction_num_up . text_style,
+ FractionRuleThickness = t . fraction_rule . text_style,
+ LowerLimitBaselineDropMin = t . limit_below_bgap . text_style,
+ LowerLimitGapMin = t . limit_below_vgap . text_style,
+ OverbarExtraAscender = t . overbar_kern . text_style,
+ OverbarRuleThickness = t . overbar_rule . text_style,
+ OverbarVerticalGap = t . overbar_vgap . text_style,
+ RadicalDisplayStyleVerticalGap = t . radical_vgap . display_style,
+ RadicalExtraAscender = t . radical_kern . text_style,
+ RadicalRuleThickness = t . radical_rule . text_style,
+ RadicalVerticalGap = t . radical_vgap . text_style,
+ RadicalKernBeforeDegree = t . radical_degree_before . display_style,
+ RadicalKernAfterDegree = t . radical_degree_after . display_style,
+ RadicalDegreeBottomRaisePercent = t . radical_degree_raise . display_style,
+ SpaceAfterScript = t . space_after_script . text_style,
+ StackBottomDisplayStyleShiftDown = t . stack_denom_down . display_style,
+ StackBottomShiftDown = t . stack_denom_down . text_style,
+ StackDisplayStyleGapMin = t . stack_vgap . display_style,
+ StackGapMin = t . stack_vgap . text_style,
+ StackTopDisplayStyleShiftUp = t . stack_num_up . display_style,
+ StackTopShiftUp = t . stack_num_up . text_style,
+ SubscriptBaselineDropMin = t . sub_shift_drop . text_style,
+ SubscriptShiftDown = t . sub_shift_down . text_style,
+ SubscriptTopMax = t . sub_top_max . text_style,
+ SubSuperscriptGapMin = t . subsup_vgap . text_style,
+ SuperscriptBaselineDropMax = t . sup_shift_drop . text_style,
+ SuperscriptBottomMaxWithSubscript = t . sup_sub_bottom_max . text_style,
+ SuperscriptBottomMin = t . sup_bottom_min . text_style,
+ SuperscriptShiftUp = t . sup_shift_up . text_style,
+ SuperscriptShiftUpCramped = t . sup_shift_up . cramped_text_style,
+ UnderbarExtraDescender = t . underbar_kern . text_style,
+ UnderbarRuleThickness = t . underbar_rule . text_style,
+ UnderbarVerticalGap = t . underbar_vgap . text_style,
+ UpperLimitBaselineRiseMin = t . limit_above_bgap . text_style,
+ UpperLimitGapMin = t . limit_above_vgap . text_style,
+ MinConnectorOverlap = t . connector_overlap_min . text_style,
+ StretchStackGapBelowMin = t . over_delimiter_vgap . text_style,
+ StretchStackTopShiftUp = t . over_delimiter_bgap . text_style,
+ StretchStackGapAboveMin = t . under_delimiter_vgap . text_style,
+ StretchStackBottomShiftDown = t . under_delimiter_bgap . text_style,
+ }
+ d.AccentBaseHeight = 0
+ -- texio.write_nl(table.serialize(d))
+ return t, d -- this might change
+ else
+ return { }, { }
+ end
+end
+
diff --git a/Master/texmf-dist/tex/context/base/math-dis.mkiv b/Master/texmf-dist/tex/context/base/math-dis.mkiv
new file mode 100644
index 00000000000..3eed2b16234
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/math-dis.mkiv
@@ -0,0 +1,20 @@
+%D \module
+%D [ file=math-ali,
+%D version=2008.10.20,
+%D title=\CONTEXT\ Math Macros,
+%D subtitle=Display,
+%D author={Hans Hagen, Taco Hoekwater \& Aditya Mahajan},
+%D date=\currentdate,
+%D copyright=PRAGMA-ADE / Hans Hagen]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Math Macros / Display}
+
+\unprotect
+
+% display spacing code will move here
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/math-ent.lua b/Master/texmf-dist/tex/context/base/math-ent.lua
index 7cc45b8a218..d1e1865a44f 100644
--- a/Master/texmf-dist/tex/context/base/math-ent.lua
+++ b/Master/texmf-dist/tex/context/base/math-ent.lua
@@ -5,2093 +5,2098 @@ if not modules then modules = { } end modules ['math-ent'] = {
copyright = "derived from the mathml 2.0 specification",
}
-math.entities={
- ["Aacute"]=0x000C1,
- ["aacute"]=0x000E1,
- ["Abreve"]=0x00102,
- ["abreve"]=0x00103,
- ["ac"]=0x0223E,
- ["acd"]=0x0223F,
- ["acE"]=0x0223E,
- ["Acirc"]=0x000C2,
- ["acirc"]=0x000E2,
- ["acute"]=0x000B4,
- ["Acy"]=0x00410,
- ["acy"]=0x00430,
- ["AElig"]=0x000C6,
- ["aelig"]=0x000E6,
- ["af"]=0x02061,
- ["Afr"]=0x1D504,
- ["afr"]=0x1D51E,
- ["Agrave"]=0x000C0,
- ["agrave"]=0x000E0,
- ["aleph"]=0x02135,
- ["alpha"]=0x003B1,
- ["Amacr"]=0x00100,
- ["amacr"]=0x00101,
- ["amalg"]=0x02A3F,
- ["amp"]=0x00026,
- ["And"]=0x02A53,
- ["and"]=0x02227,
- ["andand"]=0x02A55,
- ["andd"]=0x02A5C,
- ["andslope"]=0x02A58,
- ["andv"]=0x02A5A,
- ["ang"]=0x02220,
- ["ange"]=0x029A4,
- ["angle"]=0x02220,
- ["angmsd"]=0x02221,
- ["angmsdaa"]=0x029A8,
- ["angmsdab"]=0x029A9,
- ["angmsdac"]=0x029AA,
- ["angmsdad"]=0x029AB,
- ["angmsdae"]=0x029AC,
- ["angmsdaf"]=0x029AD,
- ["angmsdag"]=0x029AE,
- ["angmsdah"]=0x029AF,
- ["angrt"]=0x0221F,
- ["angrtvb"]=0x022BE,
- ["angrtvbd"]=0x0299D,
- ["angsph"]=0x02222,
- ["angst"]=0x0212B,
- ["angzarr"]=0x0237C,
- ["Aogon"]=0x00104,
- ["aogon"]=0x00105,
- ["Aopf"]=0x1D538,
- ["aopf"]=0x1D552,
- ["ap"]=0x02248,
- ["apacir"]=0x02A6F,
- ["apE"]=0x02A70,
- ["ape"]=0x0224A,
- ["apid"]=0x0224B,
- ["apos"]=0x00027,
- ["ApplyFunction"]=0x02061,
- ["approx"]=0x02248,
- ["approxeq"]=0x0224A,
- ["Aring"]=0x000C5,
- ["aring"]=0x000E5,
- ["Ascr"]=0x1D49C,
- ["ascr"]=0x1D4B6,
- ["Assign"]=0x02254,
- ["ast"]=0x0002A,
- ["asymp"]=0x02248,
- ["asympeq"]=0x0224D,
- ["Atilde"]=0x000C3,
- ["atilde"]=0x000E3,
- ["Auml"]=0x000C4,
- ["auml"]=0x000E4,
- ["awconint"]=0x02233,
- ["awint"]=0x02A11,
- ["backcong"]=0x0224C,
- ["backepsilon"]=0x003F6,
- ["backprime"]=0x02035,
- ["backsim"]=0x0223D,
- ["backsimeq"]=0x022CD,
- ["Backslash"]=0x02216,
- ["Barv"]=0x02AE7,
- ["barvee"]=0x022BD,
- ["Barwed"]=0x02306,
- ["barwed"]=0x02305,
- ["barwedge"]=0x02305,
- ["bbrk"]=0x023B5,
- ["bbrktbrk"]=0x023B6,
- ["bcong"]=0x0224C,
- ["Bcy"]=0x00411,
- ["bcy"]=0x00431,
- ["becaus"]=0x02235,
- ["Because"]=0x02235,
- ["because"]=0x02235,
- ["bemptyv"]=0x029B0,
- ["bepsi"]=0x003F6,
- ["bernou"]=0x0212C,
- ["Bernoullis"]=0x0212C,
- ["beta"]=0x003B2,
- ["beth"]=0x02136,
- ["between"]=0x0226C,
- ["Bfr"]=0x1D505,
- ["bfr"]=0x1D51F,
- ["bigcap"]=0x022C2,
- ["bigcirc"]=0x025EF,
- ["bigcup"]=0x022C3,
- ["bigodot"]=0x02A00,
- ["bigoplus"]=0x02A01,
- ["bigotimes"]=0x02A02,
- ["bigsqcup"]=0x02A06,
- ["bigstar"]=0x02605,
- ["bigtriangledown"]=0x025BD,
- ["bigtriangleup"]=0x025B3,
- ["biguplus"]=0x02A04,
- ["bigvee"]=0x022C1,
- ["bigwedge"]=0x022C0,
- ["bkarow"]=0x0290D,
- ["blacklozenge"]=0x029EB,
- ["blacksquare"]=0x025AA,
- ["blacktriangle"]=0x025B4,
- ["blacktriangledown"]=0x025BE,
- ["blacktriangleleft"]=0x025C2,
- ["blacktriangleright"]=0x025B8,
- ["blank"]=0x02423,
- ["blk12"]=0x02592,
- ["blk14"]=0x02591,
- ["blk34"]=0x02593,
- ["block"]=0x02588,
- ["bne"]=0x0003D,
- ["bnequiv"]=0x02261,
- ["bNot"]=0x02AED,
- ["bnot"]=0x02310,
- ["Bopf"]=0x1D539,
- ["bopf"]=0x1D553,
- ["bot"]=0x022A5,
- ["bottom"]=0x022A5,
- ["bowtie"]=0x022C8,
- ["boxbox"]=0x029C9,
- ["boxDL"]=0x02557,
- ["boxDl"]=0x02556,
- ["boxdL"]=0x02555,
- ["boxdl"]=0x02510,
- ["boxDR"]=0x02554,
- ["boxDr"]=0x02553,
- ["boxdR"]=0x02552,
- ["boxdr"]=0x0250C,
- ["boxH"]=0x02550,
- ["boxh"]=0x02500,
- ["boxHD"]=0x02566,
- ["boxHd"]=0x02564,
- ["boxhD"]=0x02565,
- ["boxhd"]=0x0252C,
- ["boxHU"]=0x02569,
- ["boxHu"]=0x02567,
- ["boxhU"]=0x02568,
- ["boxhu"]=0x02534,
- ["boxminus"]=0x0229F,
- ["boxplus"]=0x0229E,
- ["boxtimes"]=0x022A0,
- ["boxUL"]=0x0255D,
- ["boxUl"]=0x0255C,
- ["boxuL"]=0x0255B,
- ["boxul"]=0x02518,
- ["boxUR"]=0x0255A,
- ["boxUr"]=0x02559,
- ["boxuR"]=0x02558,
- ["boxur"]=0x02514,
- ["boxV"]=0x02551,
- ["boxv"]=0x02502,
- ["boxVH"]=0x0256C,
- ["boxVh"]=0x0256B,
- ["boxvH"]=0x0256A,
- ["boxvh"]=0x0253C,
- ["boxVL"]=0x02563,
- ["boxVl"]=0x02562,
- ["boxvL"]=0x02561,
- ["boxvl"]=0x02524,
- ["boxVR"]=0x02560,
- ["boxVr"]=0x0255F,
- ["boxvR"]=0x0255E,
- ["boxvr"]=0x0251C,
- ["bprime"]=0x02035,
- ["Breve"]=0x002D8,
- ["breve"]=0x002D8,
- ["brvbar"]=0x000A6,
- ["Bscr"]=0x0212C,
- ["bscr"]=0x1D4B7,
- ["bsemi"]=0x0204F,
- ["bsim"]=0x0223D,
- ["bsime"]=0x022CD,
- ["bsol"]=0x0005C,
- ["bsolb"]=0x029C5,
- ["bsolhsub"]=0x0005C,
- ["bull"]=0x02022,
- ["bullet"]=0x02022,
- ["bump"]=0x0224E,
- ["bumpE"]=0x02AAE,
- ["bumpe"]=0x0224F,
- ["Bumpeq"]=0x0224E,
- ["bumpeq"]=0x0224F,
- ["Cacute"]=0x00106,
- ["cacute"]=0x00107,
- ["Cap"]=0x022D2,
- ["cap"]=0x02229,
- ["capand"]=0x02A44,
- ["capbrcup"]=0x02A49,
- ["capcap"]=0x02A4B,
- ["capcup"]=0x02A47,
- ["capdot"]=0x02A40,
- ["CapitalDifferentialD"]=0x02145,
- ["caps"]=0x02229,
- ["caret"]=0x02041,
- ["caron"]=0x002C7,
- ["Cayleys"]=0x0212D,
- ["ccaps"]=0x02A4D,
- ["Ccaron"]=0x0010C,
- ["ccaron"]=0x0010D,
- ["Ccedil"]=0x000C7,
- ["ccedil"]=0x000E7,
- ["Ccirc"]=0x00108,
- ["ccirc"]=0x00109,
- ["Cconint"]=0x02230,
- ["ccups"]=0x02A4C,
- ["ccupssm"]=0x02A50,
- ["Cdot"]=0x0010A,
- ["cdot"]=0x0010B,
- ["cedil"]=0x000B8,
- ["Cedilla"]=0x000B8,
- ["cemptyv"]=0x029B2,
- ["cent"]=0x000A2,
- ["CenterDot"]=0x000B7,
- ["centerdot"]=0x000B7,
- ["Cfr"]=0x0212D,
- ["cfr"]=0x1D520,
- ["CHcy"]=0x00427,
- ["chcy"]=0x00447,
- ["check"]=0x02713,
- ["checkmark"]=0x02713,
- ["chi"]=0x003C7,
- ["cir"]=0x025CB,
- ["circ"]=0x002C6,
- ["circeq"]=0x02257,
- ["circlearrowleft"]=0x021BA,
- ["circlearrowright"]=0x021BB,
- ["circledast"]=0x0229B,
- ["circledcirc"]=0x0229A,
- ["circleddash"]=0x0229D,
- ["CircleDot"]=0x02299,
- ["circledR"]=0x000AE,
- ["circledS"]=0x024C8,
- ["CircleMinus"]=0x02296,
- ["CirclePlus"]=0x02295,
- ["CircleTimes"]=0x02297,
- ["cirE"]=0x029C3,
- ["cire"]=0x02257,
- ["cirfnint"]=0x02A10,
- ["cirmid"]=0x02AEF,
- ["cirscir"]=0x029C2,
- ["ClockwiseContourIntegral"]=0x02232,
- ["CloseCurlyDoubleQuote"]=0x0201D,
- ["CloseCurlyQuote"]=0x02019,
- ["clubs"]=0x02663,
- ["clubsuit"]=0x02663,
- ["Colon"]=0x02237,
- ["colon"]=0x0003A,
- ["Colone"]=0x02A74,
- ["colone"]=0x02254,
- ["coloneq"]=0x02254,
- ["comma"]=0x0002C,
- ["commat"]=0x00040,
- ["comp"]=0x02201,
- ["compfn"]=0x02218,
- ["complement"]=0x02201,
- ["complexes"]=0x02102,
- ["cong"]=0x02245,
- ["congdot"]=0x02A6D,
- ["Congruent"]=0x02261,
- ["Conint"]=0x0222F,
- ["conint"]=0x0222E,
- ["ContourIntegral"]=0x0222E,
- ["Copf"]=0x02102,
- ["copf"]=0x1D554,
- ["coprod"]=0x02210,
- ["Coproduct"]=0x02210,
- ["copy"]=0x000A9,
- ["copysr"]=0x02117,
- ["CounterClockwiseContourIntegral"]=0x02233,
- ["Cross"]=0x02A2F,
- ["cross"]=0x02717,
- ["Cscr"]=0x1D49E,
- ["cscr"]=0x1D4B8,
- ["csub"]=0x02ACF,
- ["csube"]=0x02AD1,
- ["csup"]=0x02AD0,
- ["csupe"]=0x02AD2,
- ["ctdot"]=0x022EF,
- ["cudarrl"]=0x02938,
- ["cudarrr"]=0x02935,
- ["cuepr"]=0x022DE,
- ["cuesc"]=0x022DF,
- ["cularr"]=0x021B6,
- ["cularrp"]=0x0293D,
- ["Cup"]=0x022D3,
- ["cup"]=0x0222A,
- ["cupbrcap"]=0x02A48,
- ["CupCap"]=0x0224D,
- ["cupcap"]=0x02A46,
- ["cupcup"]=0x02A4A,
- ["cupdot"]=0x0228D,
- ["cupor"]=0x02A45,
- ["cups"]=0x0222A,
- ["curarr"]=0x021B7,
- ["curarrm"]=0x0293C,
- ["curlyeqprec"]=0x022DE,
- ["curlyeqsucc"]=0x022DF,
- ["curlyvee"]=0x022CE,
- ["curlywedge"]=0x022CF,
- ["curren"]=0x000A4,
- ["curvearrowleft"]=0x021B6,
- ["curvearrowright"]=0x021B7,
- ["cuvee"]=0x022CE,
- ["cuwed"]=0x022CF,
- ["cwconint"]=0x02232,
- ["cwint"]=0x02231,
- ["cylcty"]=0x0232D,
- ["Dagger"]=0x02021,
- ["Dagger"]=0x02021,
- ["dagger"]=0x02020,
- ["dagger"]=0x02020,
- ["daleth"]=0x02138,
- ["Darr"]=0x021A1,
- ["dArr"]=0x021D3,
- ["darr"]=0x02193,
- ["dash"]=0x02010,
- ["Dashv"]=0x02AE4,
- ["dashv"]=0x022A3,
- ["dbkarow"]=0x0290F,
- ["dblac"]=0x002DD,
- ["Dcaron"]=0x0010E,
- ["dcaron"]=0x0010F,
- ["Dcy"]=0x00414,
- ["dcy"]=0x00434,
- ["DD"]=0x02145,
- ["dd"]=0x02146,
- ["ddagger"]=0x02021,
- ["ddarr"]=0x021CA,
- ["DDotrahd"]=0x02911,
- ["ddotseq"]=0x02A77,
- ["deg"]=0x000B0,
- ["Del"]=0x02207,
- ["Delta"]=0x00394,
- ["delta"]=0x003B4,
- ["demptyv"]=0x029B1,
- ["dfisht"]=0x0297F,
- ["Dfr"]=0x1D507,
- ["dfr"]=0x1D521,
- ["dHar"]=0x02965,
- ["dharl"]=0x021C3,
- ["dharr"]=0x021C2,
- ["DiacriticalAcute"]=0x000B4,
- ["DiacriticalDot"]=0x002D9,
- ["DiacriticalDoubleAcute"]=0x002DD,
- ["DiacriticalGrave"]=0x00060,
- ["DiacriticalTilde"]=0x002DC,
- ["diam"]=0x022C4,
- ["Diamond"]=0x022C4,
- ["diamond"]=0x022C4,
- ["diamondsuit"]=0x02666,
- ["diams"]=0x02666,
- ["die"]=0x000A8,
- ["DifferentialD"]=0x02146,
- ["digamma"]=0x003DD,
- ["disin"]=0x022F2,
- ["div"]=0x000F7,
- ["divide"]=0x000F7,
- ["divideontimes"]=0x022C7,
- ["divonx"]=0x022C7,
- ["DJcy"]=0x00402,
- ["djcy"]=0x00452,
- ["dlcorn"]=0x0231E,
- ["dlcrop"]=0x0230D,
- ["dollar"]=0x00024,
- ["Dopf"]=0x1D53B,
- ["dopf"]=0x1D555,
- ["Dot"]=0x000A8,
- ["dot"]=0x002D9,
- ["DotDot"]=0x020DC,
- ["doteq"]=0x02250,
- ["doteqdot"]=0x02251,
- ["DotEqual"]=0x02250,
- ["dotminus"]=0x02238,
- ["dotplus"]=0x02214,
- ["dotsquare"]=0x022A1,
- ["doublebarwedge"]=0x02306,
- ["DoubleContourIntegral"]=0x0222F,
- ["DoubleDot"]=0x000A8,
- ["DoubleDownArrow"]=0x021D3,
- ["DoubleLeftArrow"]=0x021D0,
- ["DoubleLeftRightArrow"]=0x021D4,
- ["DoubleLeftTee"]=0x02AE4,
- ["DoubleLongLeftArrow"]=0x027F8,
- ["DoubleLongLeftRightArrow"]=0x027FA,
- ["DoubleLongRightArrow"]=0x027F9,
- ["DoubleRightArrow"]=0x021D2,
- ["DoubleRightTee"]=0x022A8,
- ["DoubleUpArrow"]=0x021D1,
- ["DoubleUpDownArrow"]=0x021D5,
- ["DoubleVerticalBar"]=0x02225,
- ["DownArrow"]=0x02193,
- ["Downarrow"]=0x021D3,
- ["downarrow"]=0x02193,
- ["DownArrowBar"]=0x02913,
- ["DownArrowUpArrow"]=0x021F5,
- ["DownBreve"]=0x00311,
- ["downdownarrows"]=0x021CA,
- ["downharpoonleft"]=0x021C3,
- ["downharpoonright"]=0x021C2,
- ["DownLeftRightVector"]=0x02950,
- ["DownLeftTeeVector"]=0x0295E,
- ["DownLeftVector"]=0x021BD,
- ["DownLeftVectorBar"]=0x02956,
- ["DownRightTeeVector"]=0x0295F,
- ["DownRightVector"]=0x021C1,
- ["DownRightVectorBar"]=0x02957,
- ["DownTee"]=0x022A4,
- ["DownTeeArrow"]=0x021A7,
- ["drbkarow"]=0x02910,
- ["drcorn"]=0x0231F,
- ["drcrop"]=0x0230C,
- ["Dscr"]=0x1D49F,
- ["dscr"]=0x1D4B9,
- ["DScy"]=0x00405,
- ["dscy"]=0x00455,
- ["dsol"]=0x029F6,
- ["Dstrok"]=0x00110,
- ["dstrok"]=0x00111,
- ["dtdot"]=0x022F1,
- ["dtri"]=0x025BF,
- ["dtrif"]=0x025BE,
- ["duarr"]=0x021F5,
- ["duhar"]=0x0296F,
- ["dwangle"]=0x029A6,
- ["DZcy"]=0x0040F,
- ["dzcy"]=0x0045F,
- ["dzigrarr"]=0x027FF,
- ["Eacute"]=0x000C9,
- ["eacute"]=0x000E9,
- ["easter"]=0x02A6E,
- ["Ecaron"]=0x0011A,
- ["ecaron"]=0x0011B,
- ["ecir"]=0x02256,
- ["Ecirc"]=0x000CA,
- ["ecirc"]=0x000EA,
- ["ecolon"]=0x02255,
- ["Ecy"]=0x0042D,
- ["ecy"]=0x0044D,
- ["eDDot"]=0x02A77,
- ["Edot"]=0x00116,
- ["eDot"]=0x02251,
- ["edot"]=0x00117,
- ["ee"]=0x02147,
- ["efDot"]=0x02252,
- ["Efr"]=0x1D508,
- ["efr"]=0x1D522,
- ["eg"]=0x02A9A,
- ["Egrave"]=0x000C8,
- ["egrave"]=0x000E8,
- ["egs"]=0x02A96,
- ["egsdot"]=0x02A98,
- ["el"]=0x02A99,
- ["Element"]=0x02208,
- ["elinters"]=0x0FFFD,
- ["ell"]=0x02113,
- ["els"]=0x02A95,
- ["elsdot"]=0x02A97,
- ["Emacr"]=0x00112,
- ["emacr"]=0x00113,
- ["empty"]=0x02205,
- ["emptyset"]=0x02205,
- ["EmptySmallSquare"]=0x025FB,
- ["emptyv"]=0x02205,
- ["EmptyVerySmallSquare"]=0x025AB,
- ["emsp"]=0x02003,
- ["emsp13"]=0x02004,
- ["emsp14"]=0x02005,
- ["ENG"]=0x0014A,
- ["eng"]=0x0014B,
- ["ensp"]=0x02002,
- ["Eogon"]=0x00118,
- ["eogon"]=0x00119,
- ["Eopf"]=0x1D53C,
- ["eopf"]=0x1D556,
- ["epar"]=0x022D5,
- ["eparsl"]=0x029E3,
- ["eplus"]=0x02A71,
- ["epsi"]=0x003F5,
- ["epsiv"]=0x003B5,
- ["eqcirc"]=0x02256,
- ["eqcolon"]=0x02255,
- ["eqsim"]=0x02242,
- ["eqslantgtr"]=0x02A96,
- ["eqslantless"]=0x02A95,
- ["Equal"]=0x02A75,
- ["equals"]=0x0003D,
- ["EqualTilde"]=0x02242,
- ["equest"]=0x0225F,
- ["Equilibrium"]=0x021CC,
- ["equiv"]=0x02261,
- ["equivDD"]=0x02A78,
- ["eqvparsl"]=0x029E5,
- ["erarr"]=0x02971,
- ["erDot"]=0x02253,
- ["Escr"]=0x02130,
- ["escr"]=0x0212F,
- ["esdot"]=0x02250,
- ["Esim"]=0x02A73,
- ["esim"]=0x02242,
- ["eta"]=0x003B7,
- ["ETH"]=0x000D0,
- ["eth"]=0x000F0,
- ["Euml"]=0x000CB,
- ["euml"]=0x000EB,
- ["excl"]=0x00021,
- ["exist"]=0x02203,
- ["Exists"]=0x02203,
- ["expectation"]=0x02130,
- ["ExponentialE"]=0x02147,
- ["exponentiale"]=0x02147,
- ["fallingdotseq"]=0x02252,
- ["Fcy"]=0x00424,
- ["fcy"]=0x00444,
- ["female"]=0x02640,
- ["ffilig"]=0x0FB03,
- ["fflig"]=0x0FB00,
- ["ffllig"]=0x0FB04,
- ["Ffr"]=0x1D509,
- ["ffr"]=0x1D523,
- ["filig"]=0x0FB01,
- ["FilledSmallSquare"]=0x025FC,
- ["FilledVerySmallSquare"]=0x025AA,
- ["flat"]=0x0266D,
- ["fllig"]=0x0FB02,
- ["fltns"]=0x025B1,
- ["fnof"]=0x00192,
- ["Fopf"]=0x1D53D,
- ["fopf"]=0x1D557,
- ["ForAll"]=0x02200,
- ["forall"]=0x02200,
- ["fork"]=0x022D4,
- ["forkv"]=0x02AD9,
- ["Fouriertrf"]=0x02131,
- ["fpartint"]=0x02A0D,
- ["frac12"]=0x000BD,
- ["frac13"]=0x02153,
- ["frac14"]=0x000BC,
- ["frac15"]=0x02155,
- ["frac16"]=0x02159,
- ["frac18"]=0x0215B,
- ["frac23"]=0x02154,
- ["frac25"]=0x02156,
- ["frac34"]=0x000BE,
- ["frac35"]=0x02157,
- ["frac38"]=0x0215C,
- ["frac45"]=0x02158,
- ["frac56"]=0x0215A,
- ["frac58"]=0x0215D,
- ["frac78"]=0x0215E,
- ["frown"]=0x02322,
- ["Fscr"]=0x02131,
- ["fscr"]=0x1D4BB,
- ["gacute"]=0x001F5,
- ["Gamma"]=0x00393,
- ["gamma"]=0x003B3,
- ["Gammad"]=0x003DC,
- ["gammad"]=0x003DD,
- ["gap"]=0x02A86,
- ["Gbreve"]=0x0011E,
- ["gbreve"]=0x0011F,
- ["Gcedil"]=0x00122,
- ["Gcirc"]=0x0011C,
- ["gcirc"]=0x0011D,
- ["Gcy"]=0x00413,
- ["gcy"]=0x00433,
- ["Gdot"]=0x00120,
- ["gdot"]=0x00121,
- ["gE"]=0x02267,
- ["ge"]=0x02265,
- ["gEl"]=0x02A8C,
- ["gel"]=0x022DB,
- ["geq"]=0x02265,
- ["geqq"]=0x02267,
- ["geqslant"]=0x02A7E,
- ["ges"]=0x02A7E,
- ["gescc"]=0x02AA9,
- ["gesdot"]=0x02A80,
- ["gesdoto"]=0x02A82,
- ["gesdotol"]=0x02A84,
- ["gesl"]=0x022DB,
- ["gesles"]=0x02A94,
- ["Gfr"]=0x1D50A,
- ["gfr"]=0x1D524,
- ["Gg"]=0x022D9,
- ["gg"]=0x0226B,
- ["ggg"]=0x022D9,
- ["gimel"]=0x02137,
- ["GJcy"]=0x00403,
- ["gjcy"]=0x00453,
- ["gl"]=0x02277,
- ["gla"]=0x02AA5,
- ["glE"]=0x02A92,
- ["glj"]=0x02AA4,
- ["gnap"]=0x02A8A,
- ["gnapprox"]=0x02A8A,
- ["gnE"]=0x02269,
- ["gne"]=0x02A88,
- ["gneq"]=0x02A88,
- ["gneqq"]=0x02269,
- ["gnsim"]=0x022E7,
- ["Gopf"]=0x1D53E,
- ["gopf"]=0x1D558,
- ["grave"]=0x00060,
- ["GreaterEqual"]=0x02265,
- ["GreaterEqualLess"]=0x022DB,
- ["GreaterFullEqual"]=0x02267,
- ["GreaterGreater"]=0x02AA2,
- ["GreaterLess"]=0x02277,
- ["GreaterSlantEqual"]=0x02A7E,
- ["GreaterTilde"]=0x02273,
- ["Gscr"]=0x1D4A2,
- ["gscr"]=0x0210A,
- ["gsim"]=0x02273,
- ["gsime"]=0x02A8E,
- ["gsiml"]=0x02A90,
- ["Gt"]=0x0226B,
- ["gt"]=0x0003E,
- ["gtcc"]=0x02AA7,
- ["gtcir"]=0x02A7A,
- ["gtdot"]=0x022D7,
- ["gtlPar"]=0x02995,
- ["gtquest"]=0x02A7C,
- ["gtrapprox"]=0x02A86,
- ["gtrarr"]=0x02978,
- ["gtrdot"]=0x022D7,
- ["gtreqless"]=0x022DB,
- ["gtreqqless"]=0x02A8C,
- ["gtrless"]=0x02277,
- ["gtrsim"]=0x02273,
- ["gvertneqq"]=0x02269,
- ["gvnE"]=0x02269,
- ["Hacek"]=0x002C7,
- ["hairsp"]=0x0200A,
- ["half"]=0x000BD,
- ["hamilt"]=0x0210B,
- ["HARDcy"]=0x0042A,
- ["hardcy"]=0x0044A,
- ["hArr"]=0x021D4,
- ["harr"]=0x02194,
- ["harrcir"]=0x02948,
- ["harrw"]=0x021AD,
- ["Hat"]=0x0005E,
- ["hbar"]=0x0210F,
- ["Hcirc"]=0x00124,
- ["hcirc"]=0x00125,
- ["hearts"]=0x02665,
- ["heartsuit"]=0x02665,
- ["hellip"]=0x02026,
- ["hercon"]=0x022B9,
- ["Hfr"]=0x0210C,
- ["hfr"]=0x1D525,
- ["HilbertSpace"]=0x0210B,
- ["hksearow"]=0x02925,
- ["hkswarow"]=0x02926,
- ["hoarr"]=0x021FF,
- ["homtht"]=0x0223B,
- ["hookleftarrow"]=0x021A9,
- ["hookrightarrow"]=0x021AA,
- ["Hopf"]=0x0210D,
- ["hopf"]=0x1D559,
- ["horbar"]=0x02015,
- ["HorizontalLine"]=0x02500,
- ["Hscr"]=0x0210B,
- ["hscr"]=0x1D4BD,
- ["hslash"]=0x0210F,
- ["Hstrok"]=0x00126,
- ["hstrok"]=0x00127,
- ["HumpDownHump"]=0x0224E,
- ["HumpEqual"]=0x0224F,
- ["hybull"]=0x02043,
- ["hyphen"]=0x02010,
- ["Iacute"]=0x000CD,
- ["iacute"]=0x000ED,
- ["ic"]=0x02063,
- ["Icirc"]=0x000CE,
- ["icirc"]=0x000EE,
- ["Icy"]=0x00418,
- ["icy"]=0x00438,
- ["Idot"]=0x00130,
- ["IEcy"]=0x00415,
- ["iecy"]=0x00435,
- ["iexcl"]=0x000A1,
- ["iff"]=0x021D4,
- ["Ifr"]=0x02111,
- ["ifr"]=0x1D526,
- ["Igrave"]=0x000CC,
- ["igrave"]=0x000EC,
- ["ii"]=0x02148,
- ["iiiint"]=0x02A0C,
- ["iiint"]=0x0222D,
- ["iinfin"]=0x029DC,
- ["iiota"]=0x02129,
- ["IJlig"]=0x00132,
- ["ijlig"]=0x00133,
- ["Im"]=0x02111,
- ["Imacr"]=0x0012A,
- ["imacr"]=0x0012B,
- ["image"]=0x02111,
- ["ImaginaryI"]=0x02148,
- ["imagline"]=0x02110,
- ["imagpart"]=0x02111,
- ["imath"]=0x00131,
- ["imof"]=0x022B7,
- ["imped"]=0x001B5,
- ["Implies"]=0x021D2,
- ["in"]=0x02208,
- ["incare"]=0x02105,
- ["infin"]=0x0221E,
- ["infintie"]=0x029DD,
- ["inodot"]=0x00131,
- ["Int"]=0x0222C,
- ["int"]=0x0222B,
- ["intcal"]=0x022BA,
- ["integers"]=0x02124,
- ["Integral"]=0x0222B,
- ["intercal"]=0x022BA,
- ["Intersection"]=0x022C2,
- ["intlarhk"]=0x02A17,
- ["intprod"]=0x02A3C,
- ["InvisibleComma"]=0x02063,
- ["InvisibleTimes"]=0x02062,
- ["IOcy"]=0x00401,
- ["iocy"]=0x00451,
- ["Iogon"]=0x0012E,
- ["iogon"]=0x0012F,
- ["Iopf"]=0x1D540,
- ["iopf"]=0x1D55A,
- ["iota"]=0x003B9,
- ["iprod"]=0x02A3C,
- ["iquest"]=0x000BF,
- ["Iscr"]=0x02110,
- ["iscr"]=0x1D4BE,
- ["isin"]=0x02208,
- ["isindot"]=0x022F5,
- ["isinE"]=0x022F9,
- ["isins"]=0x022F4,
- ["isinsv"]=0x022F3,
- ["isinv"]=0x02208,
- ["it"]=0x02062,
- ["Itilde"]=0x00128,
- ["itilde"]=0x00129,
- ["Iukcy"]=0x00406,
- ["iukcy"]=0x00456,
- ["Iuml"]=0x000CF,
- ["iuml"]=0x000EF,
- ["Jcirc"]=0x00134,
- ["jcirc"]=0x00135,
- ["Jcy"]=0x00419,
- ["jcy"]=0x00439,
- ["Jfr"]=0x1D50D,
- ["jfr"]=0x1D527,
- ["jmath"]=0x0006A,
- ["Jopf"]=0x1D541,
- ["jopf"]=0x1D55B,
- ["Jscr"]=0x1D4A5,
- ["jscr"]=0x1D4BF,
- ["Jsercy"]=0x00408,
- ["jsercy"]=0x00458,
- ["Jukcy"]=0x00404,
- ["jukcy"]=0x00454,
- ["kappa"]=0x003BA,
- ["kappav"]=0x003F0,
- ["Kcedil"]=0x00136,
- ["kcedil"]=0x00137,
- ["Kcy"]=0x0041A,
- ["kcy"]=0x0043A,
- ["Kfr"]=0x1D50E,
- ["kfr"]=0x1D528,
- ["kgreen"]=0x00138,
- ["KHcy"]=0x00425,
- ["khcy"]=0x00445,
- ["KJcy"]=0x0040C,
- ["kjcy"]=0x0045C,
- ["Kopf"]=0x1D542,
- ["kopf"]=0x1D55C,
- ["Kscr"]=0x1D4A6,
- ["kscr"]=0x1D4C0,
- ["lAarr"]=0x021DA,
- ["Lacute"]=0x00139,
- ["lacute"]=0x0013A,
- ["laemptyv"]=0x029B4,
- ["lagran"]=0x02112,
- ["Lambda"]=0x0039B,
- ["lambda"]=0x003BB,
- ["Lang"]=0x0300A,
- ["lang"]=0x02329,
- ["langd"]=0x02991,
- ["langle"]=0x02329,
- ["lap"]=0x02A85,
- ["Laplacetrf"]=0x02112,
- ["laquo"]=0x000AB,
- ["Larr"]=0x0219E,
- ["lArr"]=0x021D0,
- ["larr"]=0x02190,
- ["larrb"]=0x021E4,
- ["larrbfs"]=0x0291F,
- ["larrfs"]=0x0291D,
- ["larrhk"]=0x021A9,
- ["larrlp"]=0x021AB,
- ["larrpl"]=0x02939,
- ["larrsim"]=0x02973,
- ["larrtl"]=0x021A2,
- ["lat"]=0x02AAB,
- ["lAtail"]=0x0291B,
- ["latail"]=0x02919,
- ["late"]=0x02AAD,
- ["lates"]=0x02AAD,
- ["lBarr"]=0x0290E,
- ["lbarr"]=0x0290C,
- ["lbbrk"]=0x03014,
- ["lbrace"]=0x0007B,
- ["lbrack"]=0x0005B,
- ["lbrke"]=0x0298B,
- ["lbrksld"]=0x0298F,
- ["lbrkslu"]=0x0298D,
- ["Lcaron"]=0x0013D,
- ["lcaron"]=0x0013E,
- ["Lcedil"]=0x0013B,
- ["lcedil"]=0x0013C,
- ["lceil"]=0x02308,
- ["lcub"]=0x0007B,
- ["Lcy"]=0x0041B,
- ["lcy"]=0x0043B,
- ["ldca"]=0x02936,
- ["ldquo"]=0x0201C,
- ["ldquor"]=0x0201E,
- ["ldrdhar"]=0x02967,
- ["ldrushar"]=0x0294B,
- ["ldsh"]=0x021B2,
- ["lE"]=0x02266,
- ["le"]=0x02264,
- ["LeftAngleBracket"]=0x02329,
- ["LeftArrow"]=0x02190,
- ["Leftarrow"]=0x021D0,
- ["leftarrow"]=0x02190,
- ["LeftArrowBar"]=0x021E4,
- ["LeftArrowRightArrow"]=0x021C6,
- ["leftarrowtail"]=0x021A2,
- ["LeftCeiling"]=0x02308,
- ["LeftDoubleBracket"]=0x0301A,
- ["LeftDownTeeVector"]=0x02961,
- ["LeftDownVector"]=0x021C3,
- ["LeftDownVectorBar"]=0x02959,
- ["LeftFloor"]=0x0230A,
- ["leftharpoondown"]=0x021BD,
- ["leftharpoonup"]=0x021BC,
- ["leftleftarrows"]=0x021C7,
- ["LeftRightArrow"]=0x02194,
- ["Leftrightarrow"]=0x021D4,
- ["leftrightarrow"]=0x02194,
- ["leftrightarrows"]=0x021C6,
- ["leftrightharpoons"]=0x021CB,
- ["leftrightsquigarrow"]=0x021AD,
- ["LeftRightVector"]=0x0294E,
- ["LeftTee"]=0x022A3,
- ["LeftTeeArrow"]=0x021A4,
- ["LeftTeeVector"]=0x0295A,
- ["leftthreetimes"]=0x022CB,
- ["LeftTriangle"]=0x022B2,
- ["LeftTriangleBar"]=0x029CF,
- ["LeftTriangleEqual"]=0x022B4,
- ["LeftUpDownVector"]=0x02951,
- ["LeftUpTeeVector"]=0x02960,
- ["LeftUpVector"]=0x021BF,
- ["LeftUpVectorBar"]=0x02958,
- ["LeftVector"]=0x021BC,
- ["LeftVectorBar"]=0x02952,
- ["lEg"]=0x02A8B,
- ["leg"]=0x022DA,
- ["leq"]=0x02264,
- ["leqq"]=0x02266,
- ["leqslant"]=0x02A7D,
- ["les"]=0x02A7D,
- ["lescc"]=0x02AA8,
- ["lesdot"]=0x02A7F,
- ["lesdoto"]=0x02A81,
- ["lesdotor"]=0x02A83,
- ["lesg"]=0x022DA,
- ["lesges"]=0x02A93,
- ["lessapprox"]=0x02A85,
- ["lessdot"]=0x022D6,
- ["lesseqgtr"]=0x022DA,
- ["lesseqqgtr"]=0x02A8B,
- ["LessEqualGreater"]=0x022DA,
- ["LessFullEqual"]=0x02266,
- ["LessGreater"]=0x02276,
- ["lessgtr"]=0x02276,
- ["LessLess"]=0x02AA1,
- ["lesssim"]=0x02272,
- ["LessSlantEqual"]=0x02A7D,
- ["LessTilde"]=0x02272,
- ["lfisht"]=0x0297C,
- ["lfloor"]=0x0230A,
- ["Lfr"]=0x1D50F,
- ["lfr"]=0x1D529,
- ["lg"]=0x02276,
- ["lgE"]=0x02A91,
- ["lHar"]=0x02962,
- ["lhard"]=0x021BD,
- ["lharu"]=0x021BC,
- ["lharul"]=0x0296A,
- ["lhblk"]=0x02584,
- ["LJcy"]=0x00409,
- ["ljcy"]=0x00459,
- ["Ll"]=0x022D8,
- ["ll"]=0x0226A,
- ["llarr"]=0x021C7,
- ["llcorner"]=0x0231E,
- ["Lleftarrow"]=0x021DA,
- ["llhard"]=0x0296B,
- ["lltri"]=0x025FA,
- ["Lmidot"]=0x0013F,
- ["lmidot"]=0x00140,
- ["lmoust"]=0x023B0,
- ["lmoustache"]=0x023B0,
- ["lnap"]=0x02A89,
- ["lnapprox"]=0x02A89,
- ["lnE"]=0x02268,
- ["lne"]=0x02A87,
- ["lneq"]=0x02A87,
- ["lneqq"]=0x02268,
- ["lnsim"]=0x022E6,
- ["loang"]=0x03018,
- ["loarr"]=0x021FD,
- ["lobrk"]=0x0301A,
- ["LongLeftArrow"]=0x027F5,
- ["Longleftarrow"]=0x027F8,
- ["longleftarrow"]=0x027F5,
- ["LongLeftRightArrow"]=0x027F7,
- ["Longleftrightarrow"]=0x027FA,
- ["longleftrightarrow"]=0x027F7,
- ["longmapsto"]=0x027FC,
- ["LongRightArrow"]=0x027F6,
- ["Longrightarrow"]=0x027F9,
- ["longrightarrow"]=0x027F6,
- ["looparrowleft"]=0x021AB,
- ["looparrowright"]=0x021AC,
- ["lopar"]=0x02985,
- ["Lopf"]=0x1D543,
- ["lopf"]=0x1D55D,
- ["loplus"]=0x02A2D,
- ["lotimes"]=0x02A34,
- ["lowast"]=0x02217,
- ["lowbar"]=0x0005F,
- ["LowerLeftArrow"]=0x02199,
- ["LowerRightArrow"]=0x02198,
- ["loz"]=0x025CA,
- ["lozenge"]=0x025CA,
- ["lozf"]=0x029EB,
- ["lpar"]=0x00028,
- ["lparlt"]=0x02993,
- ["lrarr"]=0x021C6,
- ["lrcorner"]=0x0231F,
- ["lrhar"]=0x021CB,
- ["lrhard"]=0x0296D,
- ["lrtri"]=0x022BF,
- ["Lscr"]=0x02112,
- ["lscr"]=0x1D4C1,
- ["Lsh"]=0x021B0,
- ["lsh"]=0x021B0,
- ["lsim"]=0x02272,
- ["lsime"]=0x02A8D,
- ["lsimg"]=0x02A8F,
- ["lsqb"]=0x0005B,
- ["lsquo"]=0x02018,
- ["lsquor"]=0x0201A,
- ["Lstrok"]=0x00141,
- ["lstrok"]=0x00142,
- ["Lt"]=0x0226A,
- ["lt"]=0x0003C,
- ["ltcc"]=0x02AA6,
- ["ltcir"]=0x02A79,
- ["ltdot"]=0x022D6,
- ["lthree"]=0x022CB,
- ["ltimes"]=0x022C9,
- ["ltlarr"]=0x02976,
- ["ltquest"]=0x02A7B,
- ["ltri"]=0x025C3,
- ["ltrie"]=0x022B4,
- ["ltrif"]=0x025C2,
- ["ltrPar"]=0x02996,
- ["lurdshar"]=0x0294A,
- ["luruhar"]=0x02966,
- ["lvertneqq"]=0x02268,
- ["lvnE"]=0x02268,
- ["macr"]=0x000AF,
- ["male"]=0x02642,
- ["malt"]=0x02720,
- ["maltese"]=0x02720,
- ["Map"]=0x02905,
- ["map"]=0x021A6,
- ["mapsto"]=0x021A6,
- ["mapstodown"]=0x021A7,
- ["mapstoleft"]=0x021A4,
- ["mapstoup"]=0x021A5,
- ["marker"]=0x025AE,
- ["mcomma"]=0x02A29,
- ["Mcy"]=0x0041C,
- ["mcy"]=0x0043C,
- ["mdash"]=0x02014,
- ["mDDot"]=0x0223A,
- ["measuredangle"]=0x02221,
- ["MediumSpace"]=0x0205F,
- ["Mellintrf"]=0x02133,
- ["Mfr"]=0x1D510,
- ["mfr"]=0x1D52A,
- ["mho"]=0x02127,
- ["micro"]=0x000B5,
- ["mid"]=0x02223,
- ["midast"]=0x0002A,
- ["midcir"]=0x02AF0,
- ["middot"]=0x000B7,
- ["minus"]=0x02212,
- ["minusb"]=0x0229F,
- ["minusd"]=0x02238,
- ["minusdu"]=0x02A2A,
- ["MinusPlus"]=0x02213,
- ["mlcp"]=0x02ADB,
- ["mldr"]=0x02026,
- ["mnplus"]=0x02213,
- ["models"]=0x022A7,
- ["Mopf"]=0x1D544,
- ["mopf"]=0x1D55E,
- ["mp"]=0x02213,
- ["Mscr"]=0x02133,
- ["mscr"]=0x1D4C2,
- ["mstpos"]=0x0223E,
- ["mu"]=0x003BC,
- ["multimap"]=0x022B8,
- ["mumap"]=0x022B8,
- ["nabla"]=0x02207,
- ["Nacute"]=0x00143,
- ["nacute"]=0x00144,
- ["nang"]=0x02220,
- ["nap"]=0x02249,
- ["napE"]=0x02A70,
- ["napid"]=0x0224B,
- ["napos"]=0x00149,
- ["napprox"]=0x02249,
- ["natur"]=0x0266E,
- ["natural"]=0x0266E,
- ["naturals"]=0x02115,
- ["nbsp"]=0x000A0,
- ["nbump"]=0x0224E,
- ["nbumpe"]=0x0224F,
- ["ncap"]=0x02A43,
- ["Ncaron"]=0x00147,
- ["ncaron"]=0x00148,
- ["Ncedil"]=0x00145,
- ["ncedil"]=0x00146,
- ["ncong"]=0x02247,
- ["ncongdot"]=0x02A6D,
- ["ncup"]=0x02A42,
- ["Ncy"]=0x0041D,
- ["ncy"]=0x0043D,
- ["ndash"]=0x02013,
- ["ne"]=0x02260,
- ["nearhk"]=0x02924,
- ["neArr"]=0x021D7,
- ["nearr"]=0x02197,
- ["nearrow"]=0x02197,
- ["nedot"]=0x02250,
- ["NegativeMediumSpace"]=0x0200B,
- ["NegativeThickSpace"]=0x0200B,
- ["NegativeThinSpace"]=0x0200B,
- ["NegativeVeryThinSpace"]=0x0200B,
- ["nequiv"]=0x02262,
- ["nesear"]=0x02928,
- ["nesim"]=0x02242,
- ["NestedGreaterGreater"]=0x0226B,
- ["NestedLessLess"]=0x0226A,
- ["NewLine"]=0x0000A,
- ["nexist"]=0x02204,
- ["nexists"]=0x02204,
- ["Nfr"]=0x1D511,
- ["nfr"]=0x1D52B,
- ["ngE"]=0x02267,
- ["nge"]=0x02271,
- ["ngeq"]=0x02271,
- ["ngeqq"]=0x02267,
- ["ngeqslant"]=0x02A7E,
- ["nges"]=0x02A7E,
- ["nGg"]=0x022D9,
- ["ngsim"]=0x02275,
- ["nGt"]=0x0226B,
- ["ngt"]=0x0226F,
- ["ngtr"]=0x0226F,
- ["nGtv"]=0x0226B,
- ["nhArr"]=0x021CE,
- ["nharr"]=0x021AE,
- ["nhpar"]=0x02AF2,
- ["ni"]=0x0220B,
- ["nis"]=0x022FC,
- ["nisd"]=0x022FA,
- ["niv"]=0x0220B,
- ["NJcy"]=0x0040A,
- ["njcy"]=0x0045A,
- ["nlArr"]=0x021CD,
- ["nlarr"]=0x0219A,
- ["nldr"]=0x02025,
- ["nlE"]=0x02266,
- ["nle"]=0x02270,
- ["nLeftarrow"]=0x021CD,
- ["nleftarrow"]=0x0219A,
- ["nLeftrightarrow"]=0x021CE,
- ["nleftrightarrow"]=0x021AE,
- ["nleq"]=0x02270,
- ["nleqq"]=0x02266,
- ["nleqslant"]=0x02A7D,
- ["nles"]=0x02A7D,
- ["nless"]=0x0226E,
- ["nLl"]=0x022D8,
- ["nlsim"]=0x02274,
- ["nLt"]=0x0226A,
- ["nlt"]=0x0226E,
- ["nltri"]=0x022EA,
- ["nltrie"]=0x022EC,
- ["nLtv"]=0x0226A,
- ["nmid"]=0x02224,
- ["NoBreak"]=0x02060,
- ["NonBreakingSpace"]=0x000A0,
- ["Nopf"]=0x02115,
- ["nopf"]=0x1D55F,
- ["Not"]=0x02AEC,
- ["not"]=0x000AC,
- ["NotCongruent"]=0x02262,
- ["NotCupCap"]=0x0226D,
- ["NotDoubleVerticalBar"]=0x02226,
- ["NotElement"]=0x02209,
- ["NotEqual"]=0x02260,
- ["NotEqualTilde"]=0x02242,
- ["NotExists"]=0x02204,
- ["NotGreater"]=0x0226F,
- ["NotGreaterEqual"]=0x02271,
- ["NotGreaterFullEqual"]=0x02266,
- ["NotGreaterGreater"]=0x0226B,
- ["NotGreaterLess"]=0x02279,
- ["NotGreaterSlantEqual"]=0x02A7E,
- ["NotGreaterTilde"]=0x02275,
- ["NotHumpDownHump"]=0x0224E,
- ["NotHumpEqual"]=0x0224F,
- ["notin"]=0x02209,
- ["notindot"]=0x022F5,
- ["notinE"]=0x022F9,
- ["notinva"]=0x02209,
- ["notinvb"]=0x022F7,
- ["notinvc"]=0x022F6,
- ["NotLeftTriangle"]=0x022EA,
- ["NotLeftTriangleBar"]=0x029CF,
- ["NotLeftTriangleEqual"]=0x022EC,
- ["NotLess"]=0x0226E,
- ["NotLessEqual"]=0x02270,
- ["NotLessGreater"]=0x02278,
- ["NotLessLess"]=0x0226A,
- ["NotLessSlantEqual"]=0x02A7D,
- ["NotLessTilde"]=0x02274,
- ["NotNestedGreaterGreater"]=0x02AA2,
- ["NotNestedLessLess"]=0x02AA1,
- ["notni"]=0x0220C,
- ["notniva"]=0x0220C,
- ["notnivb"]=0x022FE,
- ["notnivc"]=0x022FD,
- ["NotPrecedes"]=0x02280,
- ["NotPrecedesEqual"]=0x02AAF,
- ["NotPrecedesSlantEqual"]=0x022E0,
- ["NotReverseElement"]=0x0220C,
- ["NotRightTriangle"]=0x022EB,
- ["NotRightTriangleBar"]=0x029D0,
- ["NotRightTriangleEqual"]=0x022ED,
- ["NotSquareSubset"]=0x0228F,
- ["NotSquareSubsetEqual"]=0x022E2,
- ["NotSquareSuperset"]=0x02290,
- ["NotSquareSupersetEqual"]=0x022E3,
- ["NotSubset"]=0x02282,
- ["NotSubsetEqual"]=0x02288,
- ["NotSucceeds"]=0x02281,
- ["NotSucceedsEqual"]=0x02AB0,
- ["NotSucceedsSlantEqual"]=0x022E1,
- ["NotSucceedsTilde"]=0x0227F,
- ["NotSuperset"]=0x02283,
- ["NotSupersetEqual"]=0x02289,
- ["NotTilde"]=0x02241,
- ["NotTildeEqual"]=0x02244,
- ["NotTildeFullEqual"]=0x02247,
- ["NotTildeTilde"]=0x02249,
- ["NotVerticalBar"]=0x02224,
- ["npar"]=0x02226,
- ["nparallel"]=0x02226,
- ["nparsl"]=0x02AFD,
- ["npart"]=0x02202,
- ["npolint"]=0x02A14,
- ["npr"]=0x02280,
- ["nprcue"]=0x022E0,
- ["npre"]=0x02AAF,
- ["nprec"]=0x02280,
- ["npreceq"]=0x02AAF,
- ["nrArr"]=0x021CF,
- ["nrarr"]=0x0219B,
- ["nrarrc"]=0x02933,
- ["nrarrw"]=0x0219D,
- ["nRightarrow"]=0x021CF,
- ["nrightarrow"]=0x0219B,
- ["nrtri"]=0x022EB,
- ["nrtrie"]=0x022ED,
- ["nsc"]=0x02281,
- ["nsccue"]=0x022E1,
- ["nsce"]=0x02AB0,
- ["Nscr"]=0x1D4A9,
- ["nscr"]=0x1D4C3,
- ["nshortmid"]=0x02224,
- ["nshortparallel"]=0x02226,
- ["nsim"]=0x02241,
- ["nsime"]=0x02244,
- ["nsimeq"]=0x02244,
- ["nsmid"]=0x02224,
- ["nspar"]=0x02226,
- ["nsqsube"]=0x022E2,
- ["nsqsupe"]=0x022E3,
- ["nsub"]=0x02284,
- ["nsubE"]=0x02AC5,
- ["nsube"]=0x02288,
- ["nsubset"]=0x02282,
- ["nsubseteq"]=0x02288,
- ["nsubseteqq"]=0x02AC5,
- ["nsucc"]=0x02281,
- ["nsucceq"]=0x02AB0,
- ["nsup"]=0x02285,
- ["nsupE"]=0x02AC6,
- ["nsupe"]=0x02289,
- ["nsupset"]=0x02283,
- ["nsupseteq"]=0x02289,
- ["nsupseteqq"]=0x02AC6,
- ["ntgl"]=0x02279,
- ["Ntilde"]=0x000D1,
- ["ntilde"]=0x000F1,
- ["ntlg"]=0x02278,
- ["ntriangleleft"]=0x022EA,
- ["ntrianglelefteq"]=0x022EC,
- ["ntriangleright"]=0x022EB,
- ["ntrianglerighteq"]=0x022ED,
- ["nu"]=0x003BD,
- ["num"]=0x00023,
- ["numero"]=0x02116,
- ["numsp"]=0x02007,
- ["nvap"]=0x0224D,
- ["nVDash"]=0x022AF,
- ["nVdash"]=0x022AE,
- ["nvDash"]=0x022AD,
- ["nvdash"]=0x022AC,
- ["nvge"]=0x02265,
- ["nvgt"]=0x0003E,
- ["nvHarr"]=0x02904,
- ["nvinfin"]=0x029DE,
- ["nvlArr"]=0x02902,
- ["nvle"]=0x02264,
- ["nvlt"]=0x0003C,
- ["nvltrie"]=0x022B4,
- ["nvrArr"]=0x02903,
- ["nvrtrie"]=0x022B5,
- ["nvsim"]=0x0223C,
- ["nwarhk"]=0x02923,
- ["nwArr"]=0x021D6,
- ["nwarr"]=0x02196,
- ["nwarrow"]=0x02196,
- ["nwnear"]=0x02927,
- ["Oacute"]=0x000D3,
- ["oacute"]=0x000F3,
- ["oast"]=0x0229B,
- ["ocir"]=0x0229A,
- ["Ocirc"]=0x000D4,
- ["ocirc"]=0x000F4,
- ["Ocy"]=0x0041E,
- ["ocy"]=0x0043E,
- ["odash"]=0x0229D,
- ["Odblac"]=0x00150,
- ["odblac"]=0x00151,
- ["odiv"]=0x02A38,
- ["odot"]=0x02299,
- ["odsold"]=0x029BC,
- ["OElig"]=0x00152,
- ["oelig"]=0x00153,
- ["ofcir"]=0x029BF,
- ["Ofr"]=0x1D512,
- ["ofr"]=0x1D52C,
- ["ogon"]=0x002DB,
- ["Ograve"]=0x000D2,
- ["ograve"]=0x000F2,
- ["ogt"]=0x029C1,
- ["ohbar"]=0x029B5,
- ["ohm"]=0x02126,
- ["oint"]=0x0222E,
- ["olarr"]=0x021BA,
- ["olcir"]=0x029BE,
- ["olcross"]=0x029BB,
- ["olt"]=0x029C0,
- ["Omacr"]=0x0014C,
- ["omacr"]=0x0014D,
- ["Omega"]=0x003A9,
- ["omega"]=0x003C9,
- ["omid"]=0x029B6,
- ["ominus"]=0x02296,
- ["Oopf"]=0x1D546,
- ["oopf"]=0x1D560,
- ["opar"]=0x029B7,
- ["OpenCurlyDoubleQuote"]=0x0201C,
- ["OpenCurlyQuote"]=0x02018,
- ["operp"]=0x029B9,
- ["oplus"]=0x02295,
- ["Or"]=0x02A54,
- ["or"]=0x02228,
- ["orarr"]=0x021BB,
- ["ord"]=0x02A5D,
- ["order"]=0x02134,
- ["orderof"]=0x02134,
- ["ordf"]=0x000AA,
- ["ordm"]=0x000BA,
- ["origof"]=0x022B6,
- ["oror"]=0x02A56,
- ["orslope"]=0x02A57,
- ["orv"]=0x02A5B,
- ["oS"]=0x024C8,
- ["Oscr"]=0x1D4AA,
- ["oscr"]=0x02134,
- ["Oslash"]=0x000D8,
- ["oslash"]=0x000F8,
- ["osol"]=0x02298,
- ["Otilde"]=0x000D5,
- ["otilde"]=0x000F5,
- ["Otimes"]=0x02A37,
- ["otimes"]=0x02297,
- ["otimesas"]=0x02A36,
- ["Ouml"]=0x000D6,
- ["ouml"]=0x000F6,
- ["ovbar"]=0x0233D,
- ["OverBar"]=0x000AF,
- ["OverBrace"]=0x0FE37,
- ["OverBracket"]=0x023B4,
- ["OverParenthesis"]=0x0FE35,
- ["par"]=0x02225,
- ["para"]=0x000B6,
- ["parallel"]=0x02225,
- ["parsim"]=0x02AF3,
- ["parsl"]=0x02AFD,
- ["part"]=0x02202,
- ["PartialD"]=0x02202,
- ["Pcy"]=0x0041F,
- ["pcy"]=0x0043F,
- ["percnt"]=0x00025,
- ["period"]=0x0002E,
- ["permil"]=0x02030,
- ["perp"]=0x022A5,
- ["pertenk"]=0x02031,
- ["Pfr"]=0x1D513,
- ["pfr"]=0x1D52D,
- ["Phi"]=0x003A6,
- ["phi"]=0x003D5,
- ["phiv"]=0x003C6,
- ["phmmat"]=0x02133,
- ["phone"]=0x0260E,
- ["Pi"]=0x003A0,
- ["pi"]=0x003C0,
- ["pitchfork"]=0x022D4,
- ["piv"]=0x003D6,
- ["planck"]=0x0210F,
- ["planckh"]=0x0210E,
- ["plankv"]=0x0210F,
- ["plus"]=0x0002B,
- ["plusacir"]=0x02A23,
- ["plusb"]=0x0229E,
- ["pluscir"]=0x02A22,
- ["plusdo"]=0x02214,
- ["plusdu"]=0x02A25,
- ["pluse"]=0x02A72,
- ["PlusMinus"]=0x000B1,
- ["plusmn"]=0x000B1,
- ["plussim"]=0x02A26,
- ["plustwo"]=0x02A27,
- ["pm"]=0x000B1,
- ["Poincareplane"]=0x0210C,
- ["pointint"]=0x02A15,
- ["Popf"]=0x02119,
- ["popf"]=0x1D561,
- ["pound"]=0x000A3,
- ["Pr"]=0x02ABB,
- ["pr"]=0x0227A,
- ["prap"]=0x02AB7,
- ["prcue"]=0x0227C,
- ["prE"]=0x02AB3,
- ["pre"]=0x02AAF,
- ["prec"]=0x0227A,
- ["precapprox"]=0x02AB7,
- ["preccurlyeq"]=0x0227C,
- ["Precedes"]=0x0227A,
- ["PrecedesEqual"]=0x02AAF,
- ["PrecedesSlantEqual"]=0x0227C,
- ["PrecedesTilde"]=0x0227E,
- ["preceq"]=0x02AAF,
- ["precnapprox"]=0x02AB9,
- ["precneqq"]=0x02AB5,
- ["precnsim"]=0x022E8,
- ["precsim"]=0x0227E,
- ["Prime"]=0x02033,
- ["prime"]=0x02032,
- ["primes"]=0x02119,
- ["prnap"]=0x02AB9,
- ["prnE"]=0x02AB5,
- ["prnsim"]=0x022E8,
- ["prod"]=0x0220F,
- ["Product"]=0x0220F,
- ["profalar"]=0x0232E,
- ["profline"]=0x02312,
- ["profsurf"]=0x02313,
- ["prop"]=0x0221D,
- ["Proportion"]=0x02237,
- ["Proportional"]=0x0221D,
- ["propto"]=0x0221D,
- ["prsim"]=0x0227E,
- ["prurel"]=0x022B0,
- ["Pscr"]=0x1D4AB,
- ["pscr"]=0x1D4C5,
- ["Psi"]=0x003A8,
- ["psi"]=0x003C8,
- ["puncsp"]=0x02008,
- ["Qfr"]=0x1D514,
- ["qfr"]=0x1D52E,
- ["qint"]=0x02A0C,
- ["Qopf"]=0x0211A,
- ["qopf"]=0x1D562,
- ["qprime"]=0x02057,
- ["Qscr"]=0x1D4AC,
- ["qscr"]=0x1D4C6,
- ["quaternions"]=0x0210D,
- ["quatint"]=0x02A16,
- ["quest"]=0x0003F,
- ["questeq"]=0x0225F,
- ["quot"]=0x00022,
- ["rAarr"]=0x021DB,
- ["race"]=0x029DA,
- ["Racute"]=0x00154,
- ["racute"]=0x00155,
- ["radic"]=0x0221A,
- ["raemptyv"]=0x029B3,
- ["Rang"]=0x0300B,
- ["rang"]=0x0232A,
- ["rangd"]=0x02992,
- ["range"]=0x029A5,
- ["rangle"]=0x0232A,
- ["raquo"]=0x000BB,
- ["Rarr"]=0x021A0,
- ["rArr"]=0x021D2,
- ["rarr"]=0x02192,
- ["rarrap"]=0x02975,
- ["rarrb"]=0x021E5,
- ["rarrbfs"]=0x02920,
- ["rarrc"]=0x02933,
- ["rarrfs"]=0x0291E,
- ["rarrhk"]=0x021AA,
- ["rarrlp"]=0x021AC,
- ["rarrpl"]=0x02945,
- ["rarrsim"]=0x02974,
- ["Rarrtl"]=0x02916,
- ["rarrtl"]=0x021A3,
- ["rarrw"]=0x0219D,
- ["rAtail"]=0x0291C,
- ["ratail"]=0x0291A,
- ["ratio"]=0x02236,
- ["rationals"]=0x0211A,
- ["RBarr"]=0x02910,
- ["rBarr"]=0x0290F,
- ["rbarr"]=0x0290D,
- ["rbbrk"]=0x03015,
- ["rbrace"]=0x0007D,
- ["rbrack"]=0x0005D,
- ["rbrke"]=0x0298C,
- ["rbrksld"]=0x0298E,
- ["rbrkslu"]=0x02990,
- ["Rcaron"]=0x00158,
- ["rcaron"]=0x00159,
- ["Rcedil"]=0x00156,
- ["rcedil"]=0x00157,
- ["rceil"]=0x02309,
- ["rcub"]=0x0007D,
- ["Rcy"]=0x00420,
- ["rcy"]=0x00440,
- ["rdca"]=0x02937,
- ["rdldhar"]=0x02969,
- ["rdquo"]=0x0201D,
- ["rdquor"]=0x0201D,
- ["rdsh"]=0x021B3,
- ["Re"]=0x0211C,
- ["real"]=0x0211C,
- ["realine"]=0x0211B,
- ["realpart"]=0x0211C,
- ["reals"]=0x0211D,
- ["rect"]=0x025AD,
- ["reg"]=0x000AE,
- ["ReverseElement"]=0x0220B,
- ["ReverseEquilibrium"]=0x021CB,
- ["ReverseUpEquilibrium"]=0x0296F,
- ["rfisht"]=0x0297D,
- ["rfloor"]=0x0230B,
- ["Rfr"]=0x0211C,
- ["rfr"]=0x1D52F,
- ["rHar"]=0x02964,
- ["rhard"]=0x021C1,
- ["rharu"]=0x021C0,
- ["rharul"]=0x0296C,
- ["rho"]=0x003C1,
- ["rhov"]=0x003F1,
- ["RightAngleBracket"]=0x0232A,
- ["RightArrow"]=0x02192,
- ["Rightarrow"]=0x021D2,
- ["rightarrow"]=0x02192,
- ["RightArrowBar"]=0x021E5,
- ["RightArrowLeftArrow"]=0x021C4,
- ["rightarrowtail"]=0x021A3,
- ["RightCeiling"]=0x02309,
- ["RightDoubleBracket"]=0x0301B,
- ["RightDownTeeVector"]=0x0295D,
- ["RightDownVector"]=0x021C2,
- ["RightDownVectorBar"]=0x02955,
- ["RightFloor"]=0x0230B,
- ["rightharpoondown"]=0x021C1,
- ["rightharpoonup"]=0x021C0,
- ["rightleftarrows"]=0x021C4,
- ["rightleftharpoons"]=0x021CC,
- ["rightrightarrows"]=0x021C9,
- ["rightsquigarrow"]=0x0219D,
- ["RightTee"]=0x022A2,
- ["RightTeeArrow"]=0x021A6,
- ["RightTeeVector"]=0x0295B,
- ["rightthreetimes"]=0x022CC,
- ["RightTriangle"]=0x022B3,
- ["RightTriangleBar"]=0x029D0,
- ["RightTriangleEqual"]=0x022B5,
- ["RightUpDownVector"]=0x0294F,
- ["RightUpTeeVector"]=0x0295C,
- ["RightUpVector"]=0x021BE,
- ["RightUpVectorBar"]=0x02954,
- ["RightVector"]=0x021C0,
- ["RightVectorBar"]=0x02953,
- ["ring"]=0x002DA,
- ["risingdotseq"]=0x02253,
- ["rlarr"]=0x021C4,
- ["rlhar"]=0x021CC,
- ["rmoust"]=0x023B1,
- ["rmoustache"]=0x023B1,
- ["rnmid"]=0x02AEE,
- ["roang"]=0x03019,
- ["roarr"]=0x021FE,
- ["robrk"]=0x0301B,
- ["ropar"]=0x02986,
- ["Ropf"]=0x0211D,
- ["ropf"]=0x1D563,
- ["roplus"]=0x02A2E,
- ["rotimes"]=0x02A35,
- ["RoundImplies"]=0x02970,
- ["rpar"]=0x00029,
- ["rpargt"]=0x02994,
- ["rppolint"]=0x02A12,
- ["rrarr"]=0x021C9,
- ["Rrightarrow"]=0x021DB,
- ["Rscr"]=0x0211B,
- ["rscr"]=0x1D4C7,
- ["Rsh"]=0x021B1,
- ["rsh"]=0x021B1,
- ["rsqb"]=0x0005D,
- ["rsquo"]=0x02019,
- ["rsquor"]=0x02019,
- ["rthree"]=0x022CC,
- ["rtimes"]=0x022CA,
- ["rtri"]=0x025B9,
- ["rtrie"]=0x022B5,
- ["rtrif"]=0x025B8,
- ["rtriltri"]=0x029CE,
- ["RuleDelayed"]=0x029F4,
- ["ruluhar"]=0x02968,
- ["rx"]=0x0211E,
- ["Sacute"]=0x0015A,
- ["sacute"]=0x0015B,
- ["Sc"]=0x02ABC,
- ["sc"]=0x0227B,
- ["scap"]=0x02AB8,
- ["Scaron"]=0x00160,
- ["scaron"]=0x00161,
- ["sccue"]=0x0227D,
- ["scE"]=0x02AB4,
- ["sce"]=0x02AB0,
- ["Scedil"]=0x0015E,
- ["scedil"]=0x0015F,
- ["Scirc"]=0x0015C,
- ["scirc"]=0x0015D,
- ["scnap"]=0x02ABA,
- ["scnE"]=0x02AB6,
- ["scnsim"]=0x022E9,
- ["scpolint"]=0x02A13,
- ["scsim"]=0x0227F,
- ["Scy"]=0x00421,
- ["scy"]=0x00441,
- ["sdot"]=0x022C5,
- ["sdotb"]=0x022A1,
- ["sdote"]=0x02A66,
- ["searhk"]=0x02925,
- ["seArr"]=0x021D8,
- ["searr"]=0x02198,
- ["searrow"]=0x02198,
- ["sect"]=0x000A7,
- ["semi"]=0x0003B,
- ["seswar"]=0x02929,
- ["setminus"]=0x02216,
- ["setmn"]=0x02216,
- ["sext"]=0x02736,
- ["Sfr"]=0x1D516,
- ["sfr"]=0x1D530,
- ["sfrown"]=0x02322,
- ["sharp"]=0x0266F,
- ["SHCHcy"]=0x00429,
- ["shchcy"]=0x00449,
- ["SHcy"]=0x00428,
- ["shcy"]=0x00448,
- ["ShortDownArrow"]=0x02193,
- ["ShortLeftArrow"]=0x02190,
- ["shortmid"]=0x02223,
- ["shortparallel"]=0x02225,
- ["ShortRightArrow"]=0x02192,
- ["ShortUpArrow"]=0x02191,
- ["shy"]=0x000AD,
- ["Sigma"]=0x003A3,
- ["sigma"]=0x003C3,
- ["sigmav"]=0x003C2,
- ["sim"]=0x0223C,
- ["simdot"]=0x02A6A,
- ["sime"]=0x02243,
- ["simeq"]=0x02243,
- ["simg"]=0x02A9E,
- ["simgE"]=0x02AA0,
- ["siml"]=0x02A9D,
- ["simlE"]=0x02A9F,
- ["simne"]=0x02246,
- ["simplus"]=0x02A24,
- ["simrarr"]=0x02972,
- ["slarr"]=0x02190,
- ["SmallCircle"]=0x02218,
- ["smallsetminus"]=0x02216,
- ["smashp"]=0x02A33,
- ["smeparsl"]=0x029E4,
- ["smid"]=0x02223,
- ["smile"]=0x02323,
- ["smt"]=0x02AAA,
- ["smte"]=0x02AAC,
- ["smtes"]=0x02AAC,
- ["SOFTcy"]=0x0042C,
- ["softcy"]=0x0044C,
- ["sol"]=0x0002F,
- ["solb"]=0x029C4,
- ["solbar"]=0x0233F,
- ["Sopf"]=0x1D54A,
- ["sopf"]=0x1D564,
- ["spades"]=0x02660,
- ["spadesuit"]=0x02660,
- ["spar"]=0x02225,
- ["sqcap"]=0x02293,
- ["sqcaps"]=0x02293,
- ["sqcup"]=0x02294,
- ["sqcups"]=0x02294,
- ["Sqrt"]=0x0221A,
- ["sqsub"]=0x0228F,
- ["sqsube"]=0x02291,
- ["sqsubset"]=0x0228F,
- ["sqsubseteq"]=0x02291,
- ["sqsup"]=0x02290,
- ["sqsupe"]=0x02292,
- ["sqsupset"]=0x02290,
- ["sqsupseteq"]=0x02292,
- ["squ"]=0x025A1,
- ["Square"]=0x025A1,
- ["square"]=0x025A1,
- ["SquareIntersection"]=0x02293,
- ["SquareSubset"]=0x0228F,
- ["SquareSubsetEqual"]=0x02291,
- ["SquareSuperset"]=0x02290,
- ["SquareSupersetEqual"]=0x02292,
- ["SquareUnion"]=0x02294,
- ["squarf"]=0x025AA,
- ["squf"]=0x025AA,
- ["srarr"]=0x02192,
- ["Sscr"]=0x1D4AE,
- ["sscr"]=0x1D4C8,
- ["ssetmn"]=0x02216,
- ["ssmile"]=0x02323,
- ["sstarf"]=0x022C6,
- ["Star"]=0x022C6,
- ["star"]=0x02606,
- ["starf"]=0x02605,
- ["straightepsilon"]=0x003F5,
- ["straightphi"]=0x003D5,
- ["strns"]=0x000AF,
- ["Sub"]=0x022D0,
- ["sub"]=0x02282,
- ["subdot"]=0x02ABD,
- ["subE"]=0x02AC5,
- ["sube"]=0x02286,
- ["subedot"]=0x02AC3,
- ["submult"]=0x02AC1,
- ["subnE"]=0x02ACB,
- ["subne"]=0x0228A,
- ["subplus"]=0x02ABF,
- ["subrarr"]=0x02979,
- ["Subset"]=0x022D0,
- ["subset"]=0x02282,
- ["subseteq"]=0x02286,
- ["subseteqq"]=0x02AC5,
- ["SubsetEqual"]=0x02286,
- ["subsetneq"]=0x0228A,
- ["subsetneqq"]=0x02ACB,
- ["subsim"]=0x02AC7,
- ["subsub"]=0x02AD5,
- ["subsup"]=0x02AD3,
- ["succ"]=0x0227B,
- ["succapprox"]=0x02AB8,
- ["succcurlyeq"]=0x0227D,
- ["Succeeds"]=0x0227B,
- ["SucceedsEqual"]=0x02AB0,
- ["SucceedsSlantEqual"]=0x0227D,
- ["SucceedsTilde"]=0x0227F,
- ["succeq"]=0x02AB0,
- ["succnapprox"]=0x02ABA,
- ["succneqq"]=0x02AB6,
- ["succnsim"]=0x022E9,
- ["succsim"]=0x0227F,
- ["SuchThat"]=0x0220B,
- ["Sum"]=0x02211,
- ["sum"]=0x02211,
- ["sung"]=0x0266A,
- ["Sup"]=0x022D1,
- ["sup"]=0x02283,
- ["sup1"]=0x000B9,
- ["sup2"]=0x000B2,
- ["sup3"]=0x000B3,
- ["supdot"]=0x02ABE,
- ["supdsub"]=0x02AD8,
- ["supE"]=0x02AC6,
- ["supe"]=0x02287,
- ["supedot"]=0x02AC4,
- ["Superset"]=0x02283,
- ["SupersetEqual"]=0x02287,
- ["suphsol"]=0x02283,
- ["suphsub"]=0x02AD7,
- ["suplarr"]=0x0297B,
- ["supmult"]=0x02AC2,
- ["supnE"]=0x02ACC,
- ["supne"]=0x0228B,
- ["supplus"]=0x02AC0,
- ["Supset"]=0x022D1,
- ["supset"]=0x02283,
- ["supseteq"]=0x02287,
- ["supseteqq"]=0x02AC6,
- ["supsetneq"]=0x0228B,
- ["supsetneqq"]=0x02ACC,
- ["supsim"]=0x02AC8,
- ["supsub"]=0x02AD4,
- ["supsup"]=0x02AD6,
- ["swarhk"]=0x02926,
- ["swArr"]=0x021D9,
- ["swarr"]=0x02199,
- ["swarrow"]=0x02199,
- ["swnwar"]=0x0292A,
- ["szlig"]=0x000DF,
- ["Tab"]=0x00009,
- ["target"]=0x02316,
- ["tau"]=0x003C4,
- ["tbrk"]=0x023B4,
- ["Tcaron"]=0x00164,
- ["tcaron"]=0x00165,
- ["Tcedil"]=0x00162,
- ["tcedil"]=0x00163,
- ["Tcy"]=0x00422,
- ["tcy"]=0x00442,
- ["tdot"]=0x020DB,
- ["telrec"]=0x02315,
- ["Tfr"]=0x1D517,
- ["tfr"]=0x1D531,
- ["there4"]=0x02234,
- ["Therefore"]=0x02234,
- ["therefore"]=0x02234,
- ["Theta"]=0x00398,
- ["theta"]=0x003B8,
- ["thetav"]=0x003D1,
- ["thickapprox"]=0x02248,
- ["thicksim"]=0x0223C,
- ["ThickSpace"]=0x02009,
- ["thinsp"]=0x02009,
- ["ThinSpace"]=0x02009,
- ["thkap"]=0x02248,
- ["thksim"]=0x0223C,
- ["THORN"]=0x000DE,
- ["thorn"]=0x000FE,
- ["Tilde"]=0x0223C,
- ["tilde"]=0x002DC,
- ["TildeEqual"]=0x02243,
- ["TildeFullEqual"]=0x02245,
- ["TildeTilde"]=0x02248,
- ["times"]=0x000D7,
- ["timesb"]=0x022A0,
- ["timesbar"]=0x02A31,
- ["timesd"]=0x02A30,
- ["tint"]=0x0222D,
- ["toea"]=0x02928,
- ["top"]=0x022A4,
- ["topbot"]=0x02336,
- ["topcir"]=0x02AF1,
- ["Topf"]=0x1D54B,
- ["topf"]=0x1D565,
- ["topfork"]=0x02ADA,
- ["tosa"]=0x02929,
- ["tprime"]=0x02034,
- ["trade"]=0x02122,
- ["triangle"]=0x025B5,
- ["triangledown"]=0x025BF,
- ["triangleleft"]=0x025C3,
- ["trianglelefteq"]=0x022B4,
- ["triangleq"]=0x0225C,
- ["triangleright"]=0x025B9,
- ["trianglerighteq"]=0x022B5,
- ["tridot"]=0x025EC,
- ["trie"]=0x0225C,
- ["triminus"]=0x02A3A,
- ["TripleDot"]=0x020DB,
- ["triplus"]=0x02A39,
- ["trisb"]=0x029CD,
- ["tritime"]=0x02A3B,
- ["trpezium"]=0x0FFFD,
- ["Tscr"]=0x1D4AF,
- ["tscr"]=0x1D4C9,
- ["TScy"]=0x00426,
- ["tscy"]=0x00446,
- ["TSHcy"]=0x0040B,
- ["tshcy"]=0x0045B,
- ["Tstrok"]=0x00166,
- ["tstrok"]=0x00167,
- ["twixt"]=0x0226C,
- ["twoheadleftarrow"]=0x0219E,
- ["twoheadrightarrow"]=0x021A0,
- ["Uacute"]=0x000DA,
- ["uacute"]=0x000FA,
- ["Uarr"]=0x0219F,
- ["uArr"]=0x021D1,
- ["uarr"]=0x02191,
- ["Uarrocir"]=0x02949,
- ["Ubrcy"]=0x0040E,
- ["ubrcy"]=0x0045E,
- ["Ubreve"]=0x0016C,
- ["ubreve"]=0x0016D,
- ["Ucirc"]=0x000DB,
- ["ucirc"]=0x000FB,
- ["Ucy"]=0x00423,
- ["ucy"]=0x00443,
- ["udarr"]=0x021C5,
- ["Udblac"]=0x00170,
- ["udblac"]=0x00171,
- ["udhar"]=0x0296E,
- ["ufisht"]=0x0297E,
- ["Ufr"]=0x1D518,
- ["ufr"]=0x1D532,
- ["Ugrave"]=0x000D9,
- ["ugrave"]=0x000F9,
- ["uHar"]=0x02963,
- ["uharl"]=0x021BF,
- ["uharr"]=0x021BE,
- ["uhblk"]=0x02580,
- ["ulcorn"]=0x0231C,
- ["ulcorner"]=0x0231C,
- ["ulcrop"]=0x0230F,
- ["ultri"]=0x025F8,
- ["Umacr"]=0x0016A,
- ["umacr"]=0x0016B,
- ["uml"]=0x000A8,
- ["UnderBar"]=0x00332,
- ["UnderBrace"]=0x0FE38,
- ["UnderBracket"]=0x023B5,
- ["UnderParenthesis"]=0x0FE36,
- ["Union"]=0x022C3,
- ["UnionPlus"]=0x0228E,
- ["Uogon"]=0x00172,
- ["uogon"]=0x00173,
- ["Uopf"]=0x1D54C,
- ["uopf"]=0x1D566,
- ["UpArrow"]=0x02191,
- ["Uparrow"]=0x021D1,
- ["uparrow"]=0x02191,
- ["UpArrowBar"]=0x02912,
- ["UpArrowDownArrow"]=0x021C5,
- ["UpDownArrow"]=0x02195,
- ["Updownarrow"]=0x021D5,
- ["updownarrow"]=0x02195,
- ["UpEquilibrium"]=0x0296E,
- ["upharpoonleft"]=0x021BF,
- ["upharpoonright"]=0x021BE,
- ["uplus"]=0x0228E,
- ["UpperLeftArrow"]=0x02196,
- ["UpperRightArrow"]=0x02197,
- ["Upsi"]=0x003D2,
- ["upsi"]=0x003C5,
- ["Upsilon"]=0x003A5,
- ["upsilon"]=0x003C5,
- ["UpTee"]=0x022A5,
- ["UpTeeArrow"]=0x021A5,
- ["upuparrows"]=0x021C8,
- ["urcorn"]=0x0231D,
- ["urcorner"]=0x0231D,
- ["urcrop"]=0x0230E,
- ["Uring"]=0x0016E,
- ["uring"]=0x0016F,
- ["urtri"]=0x025F9,
- ["Uscr"]=0x1D4B0,
- ["uscr"]=0x1D4CA,
- ["utdot"]=0x022F0,
- ["Utilde"]=0x00168,
- ["utilde"]=0x00169,
- ["utri"]=0x025B5,
- ["utrif"]=0x025B4,
- ["uuarr"]=0x021C8,
- ["Uuml"]=0x000DC,
- ["uuml"]=0x000FC,
- ["uwangle"]=0x029A7,
- ["vangrt"]=0x0299C,
- ["varepsilon"]=0x003B5,
- ["varkappa"]=0x003F0,
- ["varnothing"]=0x02205,
- ["varphi"]=0x003C6,
- ["varpi"]=0x003D6,
- ["varpropto"]=0x0221D,
- ["vArr"]=0x021D5,
- ["varr"]=0x02195,
- ["varrho"]=0x003F1,
- ["varsigma"]=0x003C2,
- ["varsubsetneq"]=0x0228A,
- ["varsubsetneqq"]=0x02ACB,
- ["varsupsetneq"]=0x0228B,
- ["varsupsetneqq"]=0x02ACC,
- ["vartheta"]=0x003D1,
- ["vartriangleleft"]=0x022B2,
- ["vartriangleright"]=0x022B3,
- ["Vbar"]=0x02AEB,
- ["vBar"]=0x02AE8,
- ["vBarv"]=0x02AE9,
- ["Vcy"]=0x00412,
- ["vcy"]=0x00432,
- ["VDash"]=0x022AB,
- ["Vdash"]=0x022A9,
- ["vDash"]=0x022A8,
- ["vdash"]=0x022A2,
- ["Vdashl"]=0x02AE6,
- ["Vee"]=0x022C1,
- ["vee"]=0x02228,
- ["veebar"]=0x022BB,
- ["veeeq"]=0x0225A,
- ["vellip"]=0x022EE,
- ["Verbar"]=0x02016,
- ["verbar"]=0x0007C,
- ["Vert"]=0x02016,
- ["vert"]=0x0007C,
- ["VerticalBar"]=0x02223,
- ["VerticalLine"]=0x0007C,
- ["VerticalSeparator"]=0x02758,
- ["VerticalTilde"]=0x02240,
- ["VeryThinSpace"]=0x0200A,
- ["Vfr"]=0x1D519,
- ["vfr"]=0x1D533,
- ["vltri"]=0x022B2,
- ["vnsub"]=0x02282,
- ["vnsup"]=0x02283,
- ["Vopf"]=0x1D54D,
- ["vopf"]=0x1D567,
- ["vprop"]=0x0221D,
- ["vrtri"]=0x022B3,
- ["Vscr"]=0x1D4B1,
- ["vscr"]=0x1D4CB,
- ["vsubnE"]=0x02ACB,
- ["vsubne"]=0x0228A,
- ["vsupnE"]=0x02ACC,
- ["vsupne"]=0x0228B,
- ["Vvdash"]=0x022AA,
- ["vzigzag"]=0x0299A,
- ["Wcirc"]=0x00174,
- ["wcirc"]=0x00175,
- ["wedbar"]=0x02A5F,
- ["Wedge"]=0x022C0,
- ["wedge"]=0x02227,
- ["wedgeq"]=0x02259,
- ["weierp"]=0x02118,
- ["Wfr"]=0x1D51A,
- ["wfr"]=0x1D534,
- ["Wopf"]=0x1D54E,
- ["wopf"]=0x1D568,
- ["wp"]=0x02118,
- ["wr"]=0x02240,
- ["wreath"]=0x02240,
- ["Wscr"]=0x1D4B2,
- ["wscr"]=0x1D4CC,
- ["xcap"]=0x022C2,
- ["xcirc"]=0x025EF,
- ["xcup"]=0x022C3,
- ["xdtri"]=0x025BD,
- ["Xfr"]=0x1D51B,
- ["xfr"]=0x1D535,
- ["xhArr"]=0x027FA,
- ["xharr"]=0x027F7,
- ["Xi"]=0x0039E,
- ["xi"]=0x003BE,
- ["xlArr"]=0x027F8,
- ["xlarr"]=0x027F5,
- ["xmap"]=0x027FC,
- ["xnis"]=0x022FB,
- ["xodot"]=0x02A00,
- ["Xopf"]=0x1D54F,
- ["xopf"]=0x1D569,
- ["xoplus"]=0x02A01,
- ["xotime"]=0x02A02,
- ["xrArr"]=0x027F9,
- ["xrarr"]=0x027F6,
- ["Xscr"]=0x1D4B3,
- ["xscr"]=0x1D4CD,
- ["xsqcup"]=0x02A06,
- ["xuplus"]=0x02A04,
- ["xutri"]=0x025B3,
- ["xvee"]=0x022C1,
- ["xwedge"]=0x022C0,
- ["Yacute"]=0x000DD,
- ["yacute"]=0x000FD,
- ["YAcy"]=0x0042F,
- ["yacy"]=0x0044F,
- ["Ycirc"]=0x00176,
- ["ycirc"]=0x00177,
- ["Ycy"]=0x0042B,
- ["ycy"]=0x0044B,
- ["yen"]=0x000A5,
- ["Yfr"]=0x1D51C,
- ["yfr"]=0x1D536,
- ["YIcy"]=0x00407,
- ["yicy"]=0x00457,
- ["Yopf"]=0x1D550,
- ["yopf"]=0x1D56A,
- ["Yscr"]=0x1D4B4,
- ["yscr"]=0x1D4CE,
- ["YUcy"]=0x0042E,
- ["yucy"]=0x0044E,
- ["Yuml"]=0x00178,
- ["yuml"]=0x000FF,
- ["Zacute"]=0x00179,
- ["zacute"]=0x0017A,
- ["Zcaron"]=0x0017D,
- ["zcaron"]=0x0017E,
- ["Zcy"]=0x00417,
- ["zcy"]=0x00437,
- ["Zdot"]=0x0017B,
- ["zdot"]=0x0017C,
- ["zeetrf"]=0x02128,
- ["ZeroWidthSpace"]=0x0200B,
- ["zeta"]=0x003B6,
- ["Zfr"]=0x02128,
- ["zfr"]=0x1D537,
- ["ZHcy"]=0x00416,
- ["zhcy"]=0x00436,
- ["zigrarr"]=0x021DD,
- ["Zopf"]=0x02124,
- ["zopf"]=0x1D56B,
- ["Zscr"]=0x1D4B5,
- ["zscr"]=0x1D4CF,
+mathematics.entities={
+ ["Aacute"]=0x000C1,
+ ["aacute"]=0x000E1,
+ ["Abreve"]=0x00102,
+ ["abreve"]=0x00103,
+ ["ac"]=0x0223E,
+ ["acd"]=0x0223F,
+ ["acE"]=0x0223E,
+ ["Acirc"]=0x000C2,
+ ["acirc"]=0x000E2,
+ ["acute"]=0x000B4,
+ ["Acy"]=0x00410,
+ ["acy"]=0x00430,
+ ["AElig"]=0x000C6,
+ ["aelig"]=0x000E6,
+ ["af"]=0x02061,
+ ["Afr"]=0x1D504,
+ ["afr"]=0x1D51E,
+ ["Agrave"]=0x000C0,
+ ["agrave"]=0x000E0,
+ ["aleph"]=0x02135,
+ ["alpha"]=0x003B1,
+ ["Amacr"]=0x00100,
+ ["amacr"]=0x00101,
+ ["amalg"]=0x02A3F,
+ ["amp"]=0x00026,
+ ["And"]=0x02A53,
+ ["and"]=0x02227,
+ ["andand"]=0x02A55,
+ ["andd"]=0x02A5C,
+ ["andslope"]=0x02A58,
+ ["andv"]=0x02A5A,
+ ["ang"]=0x02220,
+ ["ange"]=0x029A4,
+ ["angle"]=0x02220,
+ ["angmsd"]=0x02221,
+ ["angmsdaa"]=0x029A8,
+ ["angmsdab"]=0x029A9,
+ ["angmsdac"]=0x029AA,
+ ["angmsdad"]=0x029AB,
+ ["angmsdae"]=0x029AC,
+ ["angmsdaf"]=0x029AD,
+ ["angmsdag"]=0x029AE,
+ ["angmsdah"]=0x029AF,
+ ["angrt"]=0x0221F,
+ ["angrtvb"]=0x022BE,
+ ["angrtvbd"]=0x0299D,
+ ["angsph"]=0x02222,
+ ["angst"]=0x0212B,
+ ["angzarr"]=0x0237C,
+ ["Aogon"]=0x00104,
+ ["aogon"]=0x00105,
+ ["Aopf"]=0x1D538,
+ ["aopf"]=0x1D552,
+ ["ap"]=0x02248,
+ ["apacir"]=0x02A6F,
+ ["apE"]=0x02A70,
+ ["ape"]=0x0224A,
+ ["apid"]=0x0224B,
+ ["apos"]=0x00027,
+ ["ApplyFunction"]=0x02061,
+ ["approx"]=0x02248,
+ ["approxeq"]=0x0224A,
+ ["Aring"]=0x000C5,
+ ["aring"]=0x000E5,
+ ["Ascr"]=0x1D49C,
+ ["ascr"]=0x1D4B6,
+ ["Assign"]=0x02254,
+ ["ast"]=0x0002A,
+ ["asymp"]=0x02248,
+ ["asympeq"]=0x0224D,
+ ["Atilde"]=0x000C3,
+ ["atilde"]=0x000E3,
+ ["Auml"]=0x000C4,
+ ["auml"]=0x000E4,
+ ["awconint"]=0x02233,
+ ["awint"]=0x02A11,
+ ["backcong"]=0x0224C,
+ ["backepsilon"]=0x003F6,
+ ["backprime"]=0x02035,
+ ["backsim"]=0x0223D,
+ ["backsimeq"]=0x022CD,
+ ["Backslash"]=0x02216,
+ ["Barv"]=0x02AE7,
+ ["barvee"]=0x022BD,
+ ["Barwed"]=0x02306,
+ ["barwed"]=0x02305,
+ ["barwedge"]=0x02305,
+ ["bbrk"]=0x023B5,
+ ["bbrktbrk"]=0x023B6,
+ ["bcong"]=0x0224C,
+ ["Bcy"]=0x00411,
+ ["bcy"]=0x00431,
+ ["becaus"]=0x02235,
+ ["Because"]=0x02235,
+ ["because"]=0x02235,
+ ["bemptyv"]=0x029B0,
+ ["bepsi"]=0x003F6,
+ ["bernou"]=0x0212C,
+ ["Bernoullis"]=0x0212C,
+ ["beta"]=0x003B2,
+ ["beth"]=0x02136,
+ ["between"]=0x0226C,
+ ["Bfr"]=0x1D505,
+ ["bfr"]=0x1D51F,
+ ["bigcap"]=0x022C2,
+ ["bigcirc"]=0x025EF,
+ ["bigcup"]=0x022C3,
+ ["bigodot"]=0x02A00,
+ ["bigoplus"]=0x02A01,
+ ["bigotimes"]=0x02A02,
+ ["bigsqcup"]=0x02A06,
+ ["bigstar"]=0x02605,
+ ["bigtriangledown"]=0x025BD,
+ ["bigtriangleup"]=0x025B3,
+ ["biguplus"]=0x02A04,
+ ["bigvee"]=0x022C1,
+ ["bigwedge"]=0x022C0,
+ ["bkarow"]=0x0290D,
+ ["blacklozenge"]=0x029EB,
+ ["blacksquare"]=0x025AA,
+ ["blacktriangle"]=0x025B4,
+ ["blacktriangledown"]=0x025BE,
+ ["blacktriangleleft"]=0x025C2,
+ ["blacktriangleright"]=0x025B8,
+ ["blank"]=0x02423,
+ ["blk12"]=0x02592,
+ ["blk14"]=0x02591,
+ ["blk34"]=0x02593,
+ ["block"]=0x02588,
+ ["bne"]=0x0003D,
+ ["bnequiv"]=0x02261,
+ ["bNot"]=0x02AED,
+ ["bnot"]=0x02310,
+ ["Bopf"]=0x1D539,
+ ["bopf"]=0x1D553,
+ ["bot"]=0x022A5,
+ ["bottom"]=0x022A5,
+ ["bowtie"]=0x022C8,
+ ["boxbox"]=0x029C9,
+ ["boxDL"]=0x02557,
+ ["boxDl"]=0x02556,
+ ["boxdL"]=0x02555,
+ ["boxdl"]=0x02510,
+ ["boxDR"]=0x02554,
+ ["boxDr"]=0x02553,
+ ["boxdR"]=0x02552,
+ ["boxdr"]=0x0250C,
+ ["boxH"]=0x02550,
+ ["boxh"]=0x02500,
+ ["boxHD"]=0x02566,
+ ["boxHd"]=0x02564,
+ ["boxhD"]=0x02565,
+ ["boxhd"]=0x0252C,
+ ["boxHU"]=0x02569,
+ ["boxHu"]=0x02567,
+ ["boxhU"]=0x02568,
+ ["boxhu"]=0x02534,
+ ["boxminus"]=0x0229F,
+ ["boxplus"]=0x0229E,
+ ["boxtimes"]=0x022A0,
+ ["boxUL"]=0x0255D,
+ ["boxUl"]=0x0255C,
+ ["boxuL"]=0x0255B,
+ ["boxul"]=0x02518,
+ ["boxUR"]=0x0255A,
+ ["boxUr"]=0x02559,
+ ["boxuR"]=0x02558,
+ ["boxur"]=0x02514,
+ ["boxV"]=0x02551,
+ ["boxv"]=0x02502,
+ ["boxVH"]=0x0256C,
+ ["boxVh"]=0x0256B,
+ ["boxvH"]=0x0256A,
+ ["boxvh"]=0x0253C,
+ ["boxVL"]=0x02563,
+ ["boxVl"]=0x02562,
+ ["boxvL"]=0x02561,
+ ["boxvl"]=0x02524,
+ ["boxVR"]=0x02560,
+ ["boxVr"]=0x0255F,
+ ["boxvR"]=0x0255E,
+ ["boxvr"]=0x0251C,
+ ["bprime"]=0x02035,
+ ["Breve"]=0x002D8,
+ ["breve"]=0x002D8,
+ ["brvbar"]=0x000A6,
+ ["Bscr"]=0x0212C,
+ ["bscr"]=0x1D4B7,
+ ["bsemi"]=0x0204F,
+ ["bsim"]=0x0223D,
+ ["bsime"]=0x022CD,
+ ["bsol"]=0x0005C,
+ ["bsolb"]=0x029C5,
+ ["bsolhsub"]=0x0005C,
+ ["bull"]=0x02022,
+ ["bullet"]=0x02022,
+ ["bump"]=0x0224E,
+ ["bumpE"]=0x02AAE,
+ ["bumpe"]=0x0224F,
+ ["Bumpeq"]=0x0224E,
+ ["bumpeq"]=0x0224F,
+ ["Cacute"]=0x00106,
+ ["cacute"]=0x00107,
+ ["Cap"]=0x022D2,
+ ["cap"]=0x02229,
+ ["capand"]=0x02A44,
+ ["capbrcup"]=0x02A49,
+ ["capcap"]=0x02A4B,
+ ["capcup"]=0x02A47,
+ ["capdot"]=0x02A40,
+ ["CapitalDifferentialD"]=0x02145,
+ ["caps"]=0x02229,
+ ["caret"]=0x02041,
+ ["caron"]=0x002C7,
+ ["Cayleys"]=0x0212D,
+ ["ccaps"]=0x02A4D,
+ ["Ccaron"]=0x0010C,
+ ["ccaron"]=0x0010D,
+ ["Ccedil"]=0x000C7,
+ ["ccedil"]=0x000E7,
+ ["Ccirc"]=0x00108,
+ ["ccirc"]=0x00109,
+ ["Cconint"]=0x02230,
+ ["ccups"]=0x02A4C,
+ ["ccupssm"]=0x02A50,
+ ["Cdot"]=0x0010A,
+ ["cdot"]=0x0010B,
+ ["cedil"]=0x000B8,
+ ["Cedilla"]=0x000B8,
+ ["cemptyv"]=0x029B2,
+ ["cent"]=0x000A2,
+ ["CenterDot"]=0x000B7,
+ ["centerdot"]=0x000B7,
+ ["Cfr"]=0x0212D,
+ ["cfr"]=0x1D520,
+ ["CHcy"]=0x00427,
+ ["chcy"]=0x00447,
+ ["check"]=0x02713,
+ ["checkmark"]=0x02713,
+ ["chi"]=0x003C7,
+ ["cir"]=0x025CB,
+ ["circ"]=0x002C6,
+ ["circeq"]=0x02257,
+ ["circlearrowleft"]=0x021BA,
+ ["circlearrowright"]=0x021BB,
+ ["circledast"]=0x0229B,
+ ["circledcirc"]=0x0229A,
+ ["circleddash"]=0x0229D,
+ ["CircleDot"]=0x02299,
+ ["circledR"]=0x000AE,
+ ["circledS"]=0x024C8,
+ ["CircleMinus"]=0x02296,
+ ["CirclePlus"]=0x02295,
+ ["CircleTimes"]=0x02297,
+ ["cirE"]=0x029C3,
+ ["cire"]=0x02257,
+ ["cirfnint"]=0x02A10,
+ ["cirmid"]=0x02AEF,
+ ["cirscir"]=0x029C2,
+ ["ClockwiseContourIntegral"]=0x02232,
+ ["CloseCurlyDoubleQuote"]=0x0201D,
+ ["CloseCurlyQuote"]=0x02019,
+ ["clubs"]=0x02663,
+ ["clubsuit"]=0x02663,
+ ["Colon"]=0x02237,
+ ["colon"]=0x0003A,
+ ["Colone"]=0x02A74,
+ ["colone"]=0x02254,
+ ["coloneq"]=0x02254,
+ ["comma"]=0x0002C,
+ ["commat"]=0x00040,
+ ["comp"]=0x02201,
+ ["compfn"]=0x02218,
+ ["complement"]=0x02201,
+ ["complexes"]=0x02102,
+ ["cong"]=0x02245,
+ ["congdot"]=0x02A6D,
+ ["Congruent"]=0x02261,
+ ["Conint"]=0x0222F,
+ ["conint"]=0x0222E,
+ ["ContourIntegral"]=0x0222E,
+ ["Copf"]=0x02102,
+ ["copf"]=0x1D554,
+ ["coprod"]=0x02210,
+ ["Coproduct"]=0x02210,
+ ["copy"]=0x000A9,
+ ["copysr"]=0x02117,
+ ["CounterClockwiseContourIntegral"]=0x02233,
+ ["Cross"]=0x02A2F,
+ ["cross"]=0x02717,
+ ["Cscr"]=0x1D49E,
+ ["cscr"]=0x1D4B8,
+ ["csub"]=0x02ACF,
+ ["csube"]=0x02AD1,
+ ["csup"]=0x02AD0,
+ ["csupe"]=0x02AD2,
+ ["ctdot"]=0x022EF,
+ ["cudarrl"]=0x02938,
+ ["cudarrr"]=0x02935,
+ ["cuepr"]=0x022DE,
+ ["cuesc"]=0x022DF,
+ ["cularr"]=0x021B6,
+ ["cularrp"]=0x0293D,
+ ["Cup"]=0x022D3,
+ ["cup"]=0x0222A,
+ ["cupbrcap"]=0x02A48,
+ ["CupCap"]=0x0224D,
+ ["cupcap"]=0x02A46,
+ ["cupcup"]=0x02A4A,
+ ["cupdot"]=0x0228D,
+ ["cupor"]=0x02A45,
+ ["cups"]=0x0222A,
+ ["curarr"]=0x021B7,
+ ["curarrm"]=0x0293C,
+ ["curlyeqprec"]=0x022DE,
+ ["curlyeqsucc"]=0x022DF,
+ ["curlyvee"]=0x022CE,
+ ["curlywedge"]=0x022CF,
+ ["curren"]=0x000A4,
+ ["curvearrowleft"]=0x021B6,
+ ["curvearrowright"]=0x021B7,
+ ["cuvee"]=0x022CE,
+ ["cuwed"]=0x022CF,
+ ["cwconint"]=0x02232,
+ ["cwint"]=0x02231,
+ ["cylcty"]=0x0232D,
+ ["Dagger"]=0x02021,
+ ["Dagger"]=0x02021,
+ ["dagger"]=0x02020,
+ ["dagger"]=0x02020,
+ ["daleth"]=0x02138,
+ ["Darr"]=0x021A1,
+ ["dArr"]=0x021D3,
+ ["darr"]=0x02193,
+ ["dash"]=0x02010,
+ ["Dashv"]=0x02AE4,
+ ["dashv"]=0x022A3,
+ ["dbkarow"]=0x0290F,
+ ["dblac"]=0x002DD,
+ ["Dcaron"]=0x0010E,
+ ["dcaron"]=0x0010F,
+ ["Dcy"]=0x00414,
+ ["dcy"]=0x00434,
+ ["DD"]=0x02145,
+ ["dd"]=0x02146,
+ ["ddagger"]=0x02021,
+ ["ddarr"]=0x021CA,
+ ["DDotrahd"]=0x02911,
+ ["ddotseq"]=0x02A77,
+ ["deg"]=0x000B0,
+ ["Del"]=0x02207,
+ ["Delta"]=0x00394,
+ ["delta"]=0x003B4,
+ ["demptyv"]=0x029B1,
+ ["dfisht"]=0x0297F,
+ ["Dfr"]=0x1D507,
+ ["dfr"]=0x1D521,
+ ["dHar"]=0x02965,
+ ["dharl"]=0x021C3,
+ ["dharr"]=0x021C2,
+ ["DiacriticalAcute"]=0x000B4,
+ ["DiacriticalDot"]=0x002D9,
+ ["DiacriticalDoubleAcute"]=0x002DD,
+ ["DiacriticalGrave"]=0x00060,
+ ["DiacriticalTilde"]=0x002DC,
+ ["diam"]=0x022C4,
+ ["Diamond"]=0x022C4,
+ ["diamond"]=0x022C4,
+ ["diamondsuit"]=0x02666,
+ ["diams"]=0x02666,
+ ["die"]=0x000A8,
+ ["DifferentialD"]=0x02146,
+ ["digamma"]=0x003DD,
+ ["disin"]=0x022F2,
+ ["div"]=0x000F7,
+ ["divide"]=0x000F7,
+ ["divideontimes"]=0x022C7,
+ ["divonx"]=0x022C7,
+ ["DJcy"]=0x00402,
+ ["djcy"]=0x00452,
+ ["dlcorn"]=0x0231E,
+ ["dlcrop"]=0x0230D,
+ ["dollar"]=0x00024,
+ ["Dopf"]=0x1D53B,
+ ["dopf"]=0x1D555,
+ ["Dot"]=0x000A8,
+ ["dot"]=0x002D9,
+ ["DotDot"]=0x020DC,
+ ["doteq"]=0x02250,
+ ["doteqdot"]=0x02251,
+ ["DotEqual"]=0x02250,
+ ["dotminus"]=0x02238,
+ ["dotplus"]=0x02214,
+ ["dotsquare"]=0x022A1,
+ ["doublebarwedge"]=0x02306,
+ ["DoubleContourIntegral"]=0x0222F,
+ ["DoubleDot"]=0x000A8,
+ ["DoubleDownArrow"]=0x021D3,
+ ["DoubleLeftArrow"]=0x021D0,
+ ["DoubleLeftRightArrow"]=0x021D4,
+ ["DoubleLeftTee"]=0x02AE4,
+ ["DoubleLongLeftArrow"]=0x027F8,
+ ["DoubleLongLeftRightArrow"]=0x027FA,
+ ["DoubleLongRightArrow"]=0x027F9,
+ ["DoubleRightArrow"]=0x021D2,
+ ["DoubleRightTee"]=0x022A8,
+ ["DoubleUpArrow"]=0x021D1,
+ ["DoubleUpDownArrow"]=0x021D5,
+ ["DoubleVerticalBar"]=0x02225,
+ ["DownArrow"]=0x02193,
+ ["Downarrow"]=0x021D3,
+ ["downarrow"]=0x02193,
+ ["DownArrowBar"]=0x02913,
+ ["DownArrowUpArrow"]=0x021F5,
+ ["DownBreve"]=0x00311,
+ ["downdownarrows"]=0x021CA,
+ ["downharpoonleft"]=0x021C3,
+ ["downharpoonright"]=0x021C2,
+ ["DownLeftRightVector"]=0x02950,
+ ["DownLeftTeeVector"]=0x0295E,
+ ["DownLeftVector"]=0x021BD,
+ ["DownLeftVectorBar"]=0x02956,
+ ["DownRightTeeVector"]=0x0295F,
+ ["DownRightVector"]=0x021C1,
+ ["DownRightVectorBar"]=0x02957,
+ ["DownTee"]=0x022A4,
+ ["DownTeeArrow"]=0x021A7,
+ ["drbkarow"]=0x02910,
+ ["drcorn"]=0x0231F,
+ ["drcrop"]=0x0230C,
+ ["Dscr"]=0x1D49F,
+ ["dscr"]=0x1D4B9,
+ ["DScy"]=0x00405,
+ ["dscy"]=0x00455,
+ ["dsol"]=0x029F6,
+ ["Dstrok"]=0x00110,
+ ["dstrok"]=0x00111,
+ ["dtdot"]=0x022F1,
+ ["dtri"]=0x025BF,
+ ["dtrif"]=0x025BE,
+ ["duarr"]=0x021F5,
+ ["duhar"]=0x0296F,
+ ["dwangle"]=0x029A6,
+ ["DZcy"]=0x0040F,
+ ["dzcy"]=0x0045F,
+ ["dzigrarr"]=0x027FF,
+ ["Eacute"]=0x000C9,
+ ["eacute"]=0x000E9,
+ ["easter"]=0x02A6E,
+ ["Ecaron"]=0x0011A,
+ ["ecaron"]=0x0011B,
+ ["ecir"]=0x02256,
+ ["Ecirc"]=0x000CA,
+ ["ecirc"]=0x000EA,
+ ["ecolon"]=0x02255,
+ ["Ecy"]=0x0042D,
+ ["ecy"]=0x0044D,
+ ["eDDot"]=0x02A77,
+ ["Edot"]=0x00116,
+ ["eDot"]=0x02251,
+ ["edot"]=0x00117,
+ ["ee"]=0x02147,
+ ["efDot"]=0x02252,
+ ["Efr"]=0x1D508,
+ ["efr"]=0x1D522,
+ ["eg"]=0x02A9A,
+ ["Egrave"]=0x000C8,
+ ["egrave"]=0x000E8,
+ ["egs"]=0x02A96,
+ ["egsdot"]=0x02A98,
+ ["el"]=0x02A99,
+ ["Element"]=0x02208,
+ ["elinters"]=0x0FFFD,
+ ["ell"]=0x02113,
+ ["els"]=0x02A95,
+ ["elsdot"]=0x02A97,
+ ["Emacr"]=0x00112,
+ ["emacr"]=0x00113,
+ ["empty"]=0x02205,
+ ["emptyset"]=0x02205,
+ ["EmptySmallSquare"]=0x025FB,
+ ["emptyv"]=0x02205,
+ ["EmptyVerySmallSquare"]=0x025AB,
+ ["emsp"]=0x02003,
+ ["emsp13"]=0x02004,
+ ["emsp14"]=0x02005,
+ ["ENG"]=0x0014A,
+ ["eng"]=0x0014B,
+ ["ensp"]=0x02002,
+ ["Eogon"]=0x00118,
+ ["eogon"]=0x00119,
+ ["Eopf"]=0x1D53C,
+ ["eopf"]=0x1D556,
+ ["epar"]=0x022D5,
+ ["eparsl"]=0x029E3,
+ ["eplus"]=0x02A71,
+ ["epsi"]=0x003F5,
+ ["epsiv"]=0x003B5,
+ ["eqcirc"]=0x02256,
+ ["eqcolon"]=0x02255,
+ ["eqsim"]=0x02242,
+ ["eqslantgtr"]=0x02A96,
+ ["eqslantless"]=0x02A95,
+ ["Equal"]=0x02A75,
+ ["equals"]=0x0003D,
+ ["EqualTilde"]=0x02242,
+ ["equest"]=0x0225F,
+ ["Equilibrium"]=0x021CC,
+ ["equiv"]=0x02261,
+ ["equivDD"]=0x02A78,
+ ["eqvparsl"]=0x029E5,
+ ["erarr"]=0x02971,
+ ["erDot"]=0x02253,
+ ["Escr"]=0x02130,
+ ["escr"]=0x0212F,
+ ["esdot"]=0x02250,
+ ["Esim"]=0x02A73,
+ ["esim"]=0x02242,
+ ["eta"]=0x003B7,
+ ["ETH"]=0x000D0,
+ ["eth"]=0x000F0,
+ ["Euml"]=0x000CB,
+ ["euml"]=0x000EB,
+ ["excl"]=0x00021,
+ ["exist"]=0x02203,
+ ["Exists"]=0x02203,
+ ["expectation"]=0x02130,
+ ["ExponentialE"]=0x02147,
+ ["exponentiale"]=0x02147,
+ ["fallingdotseq"]=0x02252,
+ ["Fcy"]=0x00424,
+ ["fcy"]=0x00444,
+ ["female"]=0x02640,
+ ["ffilig"]=0x0FB03,
+ ["fflig"]=0x0FB00,
+ ["ffllig"]=0x0FB04,
+ ["Ffr"]=0x1D509,
+ ["ffr"]=0x1D523,
+ ["filig"]=0x0FB01,
+ ["FilledSmallSquare"]=0x025FC,
+ ["FilledVerySmallSquare"]=0x025AA,
+ ["flat"]=0x0266D,
+ ["fllig"]=0x0FB02,
+ ["fltns"]=0x025B1,
+ ["fnof"]=0x00192,
+ ["Fopf"]=0x1D53D,
+ ["fopf"]=0x1D557,
+ ["ForAll"]=0x02200,
+ ["forall"]=0x02200,
+ ["fork"]=0x022D4,
+ ["forkv"]=0x02AD9,
+ ["Fouriertrf"]=0x02131,
+ ["fpartint"]=0x02A0D,
+ ["frac12"]=0x000BD,
+ ["frac13"]=0x02153,
+ ["frac14"]=0x000BC,
+ ["frac15"]=0x02155,
+ ["frac16"]=0x02159,
+ ["frac18"]=0x0215B,
+ ["frac23"]=0x02154,
+ ["frac25"]=0x02156,
+ ["frac34"]=0x000BE,
+ ["frac35"]=0x02157,
+ ["frac38"]=0x0215C,
+ ["frac45"]=0x02158,
+ ["frac56"]=0x0215A,
+ ["frac58"]=0x0215D,
+ ["frac78"]=0x0215E,
+ ["frown"]=0x02322,
+ ["Fscr"]=0x02131,
+ ["fscr"]=0x1D4BB,
+ ["gacute"]=0x001F5,
+ ["Gamma"]=0x00393,
+ ["gamma"]=0x003B3,
+ ["Gammad"]=0x003DC,
+ ["gammad"]=0x003DD,
+ ["gap"]=0x02A86,
+ ["Gbreve"]=0x0011E,
+ ["gbreve"]=0x0011F,
+ ["Gcedil"]=0x00122,
+ ["Gcirc"]=0x0011C,
+ ["gcirc"]=0x0011D,
+ ["Gcy"]=0x00413,
+ ["gcy"]=0x00433,
+ ["Gdot"]=0x00120,
+ ["gdot"]=0x00121,
+ ["gE"]=0x02267,
+ ["ge"]=0x02265,
+ ["gEl"]=0x02A8C,
+ ["gel"]=0x022DB,
+ ["geq"]=0x02265,
+ ["geqq"]=0x02267,
+ ["geqslant"]=0x02A7E,
+ ["ges"]=0x02A7E,
+ ["gescc"]=0x02AA9,
+ ["gesdot"]=0x02A80,
+ ["gesdoto"]=0x02A82,
+ ["gesdotol"]=0x02A84,
+ ["gesl"]=0x022DB,
+ ["gesles"]=0x02A94,
+ ["Gfr"]=0x1D50A,
+ ["gfr"]=0x1D524,
+ ["Gg"]=0x022D9,
+ ["gg"]=0x0226B,
+ ["ggg"]=0x022D9,
+ ["gimel"]=0x02137,
+ ["GJcy"]=0x00403,
+ ["gjcy"]=0x00453,
+ ["gl"]=0x02277,
+ ["gla"]=0x02AA5,
+ ["glE"]=0x02A92,
+ ["glj"]=0x02AA4,
+ ["gnap"]=0x02A8A,
+ ["gnapprox"]=0x02A8A,
+ ["gnE"]=0x02269,
+ ["gne"]=0x02A88,
+ ["gneq"]=0x02A88,
+ ["gneqq"]=0x02269,
+ ["gnsim"]=0x022E7,
+ ["Gopf"]=0x1D53E,
+ ["gopf"]=0x1D558,
+ ["grave"]=0x00060,
+ ["GreaterEqual"]=0x02265,
+ ["GreaterEqualLess"]=0x022DB,
+ ["GreaterFullEqual"]=0x02267,
+ ["GreaterGreater"]=0x02AA2,
+ ["GreaterLess"]=0x02277,
+ ["GreaterSlantEqual"]=0x02A7E,
+ ["GreaterTilde"]=0x02273,
+ ["Gscr"]=0x1D4A2,
+ ["gscr"]=0x0210A,
+ ["gsim"]=0x02273,
+ ["gsime"]=0x02A8E,
+ ["gsiml"]=0x02A90,
+ ["Gt"]=0x0226B,
+ ["gt"]=0x0003E,
+ ["gtcc"]=0x02AA7,
+ ["gtcir"]=0x02A7A,
+ ["gtdot"]=0x022D7,
+ ["gtlPar"]=0x02995,
+ ["gtquest"]=0x02A7C,
+ ["gtrapprox"]=0x02A86,
+ ["gtrarr"]=0x02978,
+ ["gtrdot"]=0x022D7,
+ ["gtreqless"]=0x022DB,
+ ["gtreqqless"]=0x02A8C,
+ ["gtrless"]=0x02277,
+ ["gtrsim"]=0x02273,
+ ["gvertneqq"]=0x02269,
+ ["gvnE"]=0x02269,
+ ["Hacek"]=0x002C7,
+ ["hairsp"]=0x0200A,
+ ["half"]=0x000BD,
+ ["hamilt"]=0x0210B,
+ ["HARDcy"]=0x0042A,
+ ["hardcy"]=0x0044A,
+ ["hArr"]=0x021D4,
+ ["harr"]=0x02194,
+ ["harrcir"]=0x02948,
+ ["harrw"]=0x021AD,
+ ["Hat"]=0x0005E,
+ ["hbar"]=0x0210F,
+ ["Hcirc"]=0x00124,
+ ["hcirc"]=0x00125,
+ ["hearts"]=0x02665,
+ ["heartsuit"]=0x02665,
+ ["hellip"]=0x02026,
+ ["hercon"]=0x022B9,
+ ["Hfr"]=0x0210C,
+ ["hfr"]=0x1D525,
+ ["HilbertSpace"]=0x0210B,
+ ["hksearow"]=0x02925,
+ ["hkswarow"]=0x02926,
+ ["hoarr"]=0x021FF,
+ ["homtht"]=0x0223B,
+ ["hookleftarrow"]=0x021A9,
+ ["hookrightarrow"]=0x021AA,
+ ["Hopf"]=0x0210D,
+ ["hopf"]=0x1D559,
+ ["horbar"]=0x02015,
+ ["HorizontalLine"]=0x02500,
+ ["Hscr"]=0x0210B,
+ ["hscr"]=0x1D4BD,
+ ["hslash"]=0x0210F,
+ ["Hstrok"]=0x00126,
+ ["hstrok"]=0x00127,
+ ["HumpDownHump"]=0x0224E,
+ ["HumpEqual"]=0x0224F,
+ ["hybull"]=0x02043,
+ ["hyphen"]=0x02010,
+ ["Iacute"]=0x000CD,
+ ["iacute"]=0x000ED,
+ ["ic"]=0x02063,
+ ["Icirc"]=0x000CE,
+ ["icirc"]=0x000EE,
+ ["Icy"]=0x00418,
+ ["icy"]=0x00438,
+ ["Idot"]=0x00130,
+ ["IEcy"]=0x00415,
+ ["iecy"]=0x00435,
+ ["iexcl"]=0x000A1,
+ ["iff"]=0x021D4,
+ ["Ifr"]=0x02111,
+ ["ifr"]=0x1D526,
+ ["Igrave"]=0x000CC,
+ ["igrave"]=0x000EC,
+ ["ii"]=0x02148,
+ ["iiiint"]=0x02A0C,
+ ["iiint"]=0x0222D,
+ ["iinfin"]=0x029DC,
+ ["iiota"]=0x02129,
+ ["IJlig"]=0x00132,
+ ["ijlig"]=0x00133,
+ ["Im"]=0x02111,
+ ["Imacr"]=0x0012A,
+ ["imacr"]=0x0012B,
+ ["image"]=0x02111,
+ ["ImaginaryI"]=0x02148,
+ ["imagline"]=0x02110,
+ ["imagpart"]=0x02111,
+ ["imath"]=0x00131,
+ ["imof"]=0x022B7,
+ ["imped"]=0x001B5,
+ ["Implies"]=0x021D2,
+ ["in"]=0x02208,
+ ["incare"]=0x02105,
+ ["infin"]=0x0221E,
+ ["infintie"]=0x029DD,
+ ["inodot"]=0x00131,
+ ["Int"]=0x0222C,
+ ["int"]=0x0222B,
+ ["intcal"]=0x022BA,
+ ["integers"]=0x02124,
+ ["Integral"]=0x0222B,
+ ["intercal"]=0x022BA,
+ ["Intersection"]=0x022C2,
+ ["intlarhk"]=0x02A17,
+ ["intprod"]=0x02A3C,
+ ["InvisibleComma"]=0x02063,
+ ["InvisibleTimes"]=0x02062,
+ ["IOcy"]=0x00401,
+ ["iocy"]=0x00451,
+ ["Iogon"]=0x0012E,
+ ["iogon"]=0x0012F,
+ ["Iopf"]=0x1D540,
+ ["iopf"]=0x1D55A,
+ ["iota"]=0x003B9,
+ ["iprod"]=0x02A3C,
+ ["iquest"]=0x000BF,
+ ["Iscr"]=0x02110,
+ ["iscr"]=0x1D4BE,
+ ["isin"]=0x02208,
+ ["isindot"]=0x022F5,
+ ["isinE"]=0x022F9,
+ ["isins"]=0x022F4,
+ ["isinsv"]=0x022F3,
+ ["isinv"]=0x02208,
+ ["it"]=0x02062,
+ ["Itilde"]=0x00128,
+ ["itilde"]=0x00129,
+ ["Iukcy"]=0x00406,
+ ["iukcy"]=0x00456,
+ ["Iuml"]=0x000CF,
+ ["iuml"]=0x000EF,
+ ["Jcirc"]=0x00134,
+ ["jcirc"]=0x00135,
+ ["Jcy"]=0x00419,
+ ["jcy"]=0x00439,
+ ["Jfr"]=0x1D50D,
+ ["jfr"]=0x1D527,
+ ["jmath"]=0x0006A,
+ ["Jopf"]=0x1D541,
+ ["jopf"]=0x1D55B,
+ ["Jscr"]=0x1D4A5,
+ ["jscr"]=0x1D4BF,
+ ["Jsercy"]=0x00408,
+ ["jsercy"]=0x00458,
+ ["Jukcy"]=0x00404,
+ ["jukcy"]=0x00454,
+ ["kappa"]=0x003BA,
+ ["kappav"]=0x003F0,
+ ["Kcedil"]=0x00136,
+ ["kcedil"]=0x00137,
+ ["Kcy"]=0x0041A,
+ ["kcy"]=0x0043A,
+ ["Kfr"]=0x1D50E,
+ ["kfr"]=0x1D528,
+ ["kgreen"]=0x00138,
+ ["KHcy"]=0x00425,
+ ["khcy"]=0x00445,
+ ["KJcy"]=0x0040C,
+ ["kjcy"]=0x0045C,
+ ["Kopf"]=0x1D542,
+ ["kopf"]=0x1D55C,
+ ["Kscr"]=0x1D4A6,
+ ["kscr"]=0x1D4C0,
+ ["lAarr"]=0x021DA,
+ ["Lacute"]=0x00139,
+ ["lacute"]=0x0013A,
+ ["laemptyv"]=0x029B4,
+ ["lagran"]=0x02112,
+ ["Lambda"]=0x0039B,
+ ["lambda"]=0x003BB,
+ ["Lang"]=0x0300A,
+ ["lang"]=0x02329,
+ ["langd"]=0x02991,
+ ["langle"]=0x02329,
+ ["lap"]=0x02A85,
+ ["Laplacetrf"]=0x02112,
+ ["laquo"]=0x000AB,
+ ["Larr"]=0x0219E,
+ ["lArr"]=0x021D0,
+ ["larr"]=0x02190,
+ ["larrb"]=0x021E4,
+ ["larrbfs"]=0x0291F,
+ ["larrfs"]=0x0291D,
+ ["larrhk"]=0x021A9,
+ ["larrlp"]=0x021AB,
+ ["larrpl"]=0x02939,
+ ["larrsim"]=0x02973,
+ ["larrtl"]=0x021A2,
+ ["lat"]=0x02AAB,
+ ["lAtail"]=0x0291B,
+ ["latail"]=0x02919,
+ ["late"]=0x02AAD,
+ ["lates"]=0x02AAD,
+ ["lBarr"]=0x0290E,
+ ["lbarr"]=0x0290C,
+ ["lbbrk"]=0x03014,
+ ["lbrace"]=0x0007B,
+ ["lbrack"]=0x0005B,
+ ["lbrke"]=0x0298B,
+ ["lbrksld"]=0x0298F,
+ ["lbrkslu"]=0x0298D,
+ ["Lcaron"]=0x0013D,
+ ["lcaron"]=0x0013E,
+ ["Lcedil"]=0x0013B,
+ ["lcedil"]=0x0013C,
+ ["lceil"]=0x02308,
+ ["lcub"]=0x0007B,
+ ["Lcy"]=0x0041B,
+ ["lcy"]=0x0043B,
+ ["ldca"]=0x02936,
+ ["ldquo"]=0x0201C,
+ ["ldquor"]=0x0201E,
+ ["ldrdhar"]=0x02967,
+ ["ldrushar"]=0x0294B,
+ ["ldsh"]=0x021B2,
+ ["lE"]=0x02266,
+ ["le"]=0x02264,
+ ["LeftAngleBracket"]=0x02329,
+ ["LeftArrow"]=0x02190,
+ ["Leftarrow"]=0x021D0,
+ ["leftarrow"]=0x02190,
+ ["LeftArrowBar"]=0x021E4,
+ ["LeftArrowRightArrow"]=0x021C6,
+ ["leftarrowtail"]=0x021A2,
+ ["LeftCeiling"]=0x02308,
+ ["LeftDoubleBracket"]=0x0301A,
+ ["LeftDownTeeVector"]=0x02961,
+ ["LeftDownVector"]=0x021C3,
+ ["LeftDownVectorBar"]=0x02959,
+ ["LeftFloor"]=0x0230A,
+ ["leftharpoondown"]=0x021BD,
+ ["leftharpoonup"]=0x021BC,
+ ["leftleftarrows"]=0x021C7,
+ ["LeftRightArrow"]=0x02194,
+ ["Leftrightarrow"]=0x021D4,
+ ["leftrightarrow"]=0x02194,
+ ["leftrightarrows"]=0x021C6,
+ ["leftrightharpoons"]=0x021CB,
+ ["leftrightsquigarrow"]=0x021AD,
+ ["LeftRightVector"]=0x0294E,
+ ["LeftTee"]=0x022A3,
+ ["LeftTeeArrow"]=0x021A4,
+ ["LeftTeeVector"]=0x0295A,
+ ["leftthreetimes"]=0x022CB,
+ ["LeftTriangle"]=0x022B2,
+ ["LeftTriangleBar"]=0x029CF,
+ ["LeftTriangleEqual"]=0x022B4,
+ ["LeftUpDownVector"]=0x02951,
+ ["LeftUpTeeVector"]=0x02960,
+ ["LeftUpVector"]=0x021BF,
+ ["LeftUpVectorBar"]=0x02958,
+ ["LeftVector"]=0x021BC,
+ ["LeftVectorBar"]=0x02952,
+ ["lEg"]=0x02A8B,
+ ["leg"]=0x022DA,
+ ["leq"]=0x02264,
+ ["leqq"]=0x02266,
+ ["leqslant"]=0x02A7D,
+ ["les"]=0x02A7D,
+ ["lescc"]=0x02AA8,
+ ["lesdot"]=0x02A7F,
+ ["lesdoto"]=0x02A81,
+ ["lesdotor"]=0x02A83,
+ ["lesg"]=0x022DA,
+ ["lesges"]=0x02A93,
+ ["lessapprox"]=0x02A85,
+ ["lessdot"]=0x022D6,
+ ["lesseqgtr"]=0x022DA,
+ ["lesseqqgtr"]=0x02A8B,
+ ["LessEqualGreater"]=0x022DA,
+ ["LessFullEqual"]=0x02266,
+ ["LessGreater"]=0x02276,
+ ["lessgtr"]=0x02276,
+ ["LessLess"]=0x02AA1,
+ ["lesssim"]=0x02272,
+ ["LessSlantEqual"]=0x02A7D,
+ ["LessTilde"]=0x02272,
+ ["lfisht"]=0x0297C,
+ ["lfloor"]=0x0230A,
+ ["Lfr"]=0x1D50F,
+ ["lfr"]=0x1D529,
+ ["lg"]=0x02276,
+ ["lgE"]=0x02A91,
+ ["lHar"]=0x02962,
+ ["lhard"]=0x021BD,
+ ["lharu"]=0x021BC,
+ ["lharul"]=0x0296A,
+ ["lhblk"]=0x02584,
+ ["LJcy"]=0x00409,
+ ["ljcy"]=0x00459,
+ ["Ll"]=0x022D8,
+ ["ll"]=0x0226A,
+ ["llarr"]=0x021C7,
+ ["llcorner"]=0x0231E,
+ ["Lleftarrow"]=0x021DA,
+ ["llhard"]=0x0296B,
+ ["lltri"]=0x025FA,
+ ["Lmidot"]=0x0013F,
+ ["lmidot"]=0x00140,
+ ["lmoust"]=0x023B0,
+ ["lmoustache"]=0x023B0,
+ ["lnap"]=0x02A89,
+ ["lnapprox"]=0x02A89,
+ ["lnE"]=0x02268,
+ ["lne"]=0x02A87,
+ ["lneq"]=0x02A87,
+ ["lneqq"]=0x02268,
+ ["lnsim"]=0x022E6,
+ ["loang"]=0x03018,
+ ["loarr"]=0x021FD,
+ ["lobrk"]=0x0301A,
+ ["LongLeftArrow"]=0x027F5,
+ ["Longleftarrow"]=0x027F8,
+ ["longleftarrow"]=0x027F5,
+ ["LongLeftRightArrow"]=0x027F7,
+ ["Longleftrightarrow"]=0x027FA,
+ ["longleftrightarrow"]=0x027F7,
+ ["longmapsto"]=0x027FC,
+ ["LongRightArrow"]=0x027F6,
+ ["Longrightarrow"]=0x027F9,
+ ["longrightarrow"]=0x027F6,
+ ["looparrowleft"]=0x021AB,
+ ["looparrowright"]=0x021AC,
+ ["lopar"]=0x02985,
+ ["Lopf"]=0x1D543,
+ ["lopf"]=0x1D55D,
+ ["loplus"]=0x02A2D,
+ ["lotimes"]=0x02A34,
+ ["lowast"]=0x02217,
+ ["lowbar"]=0x0005F,
+ ["LowerLeftArrow"]=0x02199,
+ ["LowerRightArrow"]=0x02198,
+ ["loz"]=0x025CA,
+ ["lozenge"]=0x025CA,
+ ["lozf"]=0x029EB,
+ ["lpar"]=0x00028,
+ ["lparlt"]=0x02993,
+ ["lrarr"]=0x021C6,
+ ["lrcorner"]=0x0231F,
+ ["lrhar"]=0x021CB,
+ ["lrhard"]=0x0296D,
+ ["lrtri"]=0x022BF,
+ ["Lscr"]=0x02112,
+ ["lscr"]=0x1D4C1,
+ ["Lsh"]=0x021B0,
+ ["lsh"]=0x021B0,
+ ["lsim"]=0x02272,
+ ["lsime"]=0x02A8D,
+ ["lsimg"]=0x02A8F,
+ ["lsqb"]=0x0005B,
+ ["lsquo"]=0x02018,
+ ["lsquor"]=0x0201A,
+ ["Lstrok"]=0x00141,
+ ["lstrok"]=0x00142,
+ ["Lt"]=0x0226A,
+ ["lt"]=0x0003C,
+ ["ltcc"]=0x02AA6,
+ ["ltcir"]=0x02A79,
+ ["ltdot"]=0x022D6,
+ ["lthree"]=0x022CB,
+ ["ltimes"]=0x022C9,
+ ["ltlarr"]=0x02976,
+ ["ltquest"]=0x02A7B,
+ ["ltri"]=0x025C3,
+ ["ltrie"]=0x022B4,
+ ["ltrif"]=0x025C2,
+ ["ltrPar"]=0x02996,
+ ["lurdshar"]=0x0294A,
+ ["luruhar"]=0x02966,
+ ["lvertneqq"]=0x02268,
+ ["lvnE"]=0x02268,
+ ["macr"]=0x000AF,
+ ["male"]=0x02642,
+ ["malt"]=0x02720,
+ ["maltese"]=0x02720,
+ ["Map"]=0x02905,
+ ["map"]=0x021A6,
+ ["mapsto"]=0x021A6,
+ ["mapstodown"]=0x021A7,
+ ["mapstoleft"]=0x021A4,
+ ["mapstoup"]=0x021A5,
+ ["marker"]=0x025AE,
+ ["mcomma"]=0x02A29,
+ ["Mcy"]=0x0041C,
+ ["mcy"]=0x0043C,
+ ["mdash"]=0x02014,
+ ["mDDot"]=0x0223A,
+ ["measuredangle"]=0x02221,
+ ["MediumSpace"]=0x0205F,
+ ["Mellintrf"]=0x02133,
+ ["Mfr"]=0x1D510,
+ ["mfr"]=0x1D52A,
+ ["mho"]=0x02127,
+ ["micro"]=0x000B5,
+ ["mid"]=0x02223,
+ ["midast"]=0x0002A,
+ ["midcir"]=0x02AF0,
+ ["middot"]=0x000B7,
+ ["minus"]=0x02212,
+ ["minusb"]=0x0229F,
+ ["minusd"]=0x02238,
+ ["minusdu"]=0x02A2A,
+ ["MinusPlus"]=0x02213,
+ ["mlcp"]=0x02ADB,
+ ["mldr"]=0x02026,
+ ["mnplus"]=0x02213,
+ ["models"]=0x022A7,
+ ["Mopf"]=0x1D544,
+ ["mopf"]=0x1D55E,
+ ["mp"]=0x02213,
+ ["Mscr"]=0x02133,
+ ["mscr"]=0x1D4C2,
+ ["mstpos"]=0x0223E,
+ ["mu"]=0x003BC,
+ ["multimap"]=0x022B8,
+ ["mumap"]=0x022B8,
+ ["nabla"]=0x02207,
+ ["Nacute"]=0x00143,
+ ["nacute"]=0x00144,
+ ["nang"]=0x02220,
+ ["nap"]=0x02249,
+ ["napE"]=0x02A70,
+ ["napid"]=0x0224B,
+ ["napos"]=0x00149,
+ ["napprox"]=0x02249,
+ ["natur"]=0x0266E,
+ ["natural"]=0x0266E,
+ ["naturals"]=0x02115,
+ ["nbsp"]=0x000A0,
+ ["nbump"]=0x0224E,
+ ["nbumpe"]=0x0224F,
+ ["ncap"]=0x02A43,
+ ["Ncaron"]=0x00147,
+ ["ncaron"]=0x00148,
+ ["Ncedil"]=0x00145,
+ ["ncedil"]=0x00146,
+ ["ncong"]=0x02247,
+ ["ncongdot"]=0x02A6D,
+ ["ncup"]=0x02A42,
+ ["Ncy"]=0x0041D,
+ ["ncy"]=0x0043D,
+ ["ndash"]=0x02013,
+ ["ne"]=0x02260,
+ ["nearhk"]=0x02924,
+ ["neArr"]=0x021D7,
+ ["nearr"]=0x02197,
+ ["nearrow"]=0x02197,
+ ["nedot"]=0x02250,
+ ["NegativeMediumSpace"]=0x0200B,
+ ["NegativeThickSpace"]=0x0200B,
+ ["NegativeThinSpace"]=0x0200B,
+ ["NegativeVeryThinSpace"]=0x0200B,
+ ["nequiv"]=0x02262,
+ ["nesear"]=0x02928,
+ ["nesim"]=0x02242,
+ ["NestedGreaterGreater"]=0x0226B,
+ ["NestedLessLess"]=0x0226A,
+ ["NewLine"]=0x0000A,
+ ["nexist"]=0x02204,
+ ["nexists"]=0x02204,
+ ["Nfr"]=0x1D511,
+ ["nfr"]=0x1D52B,
+ ["ngE"]=0x02267,
+ ["nge"]=0x02271,
+ ["ngeq"]=0x02271,
+ ["ngeqq"]=0x02267,
+ ["ngeqslant"]=0x02A7E,
+ ["nges"]=0x02A7E,
+ ["nGg"]=0x022D9,
+ ["ngsim"]=0x02275,
+ ["nGt"]=0x0226B,
+ ["ngt"]=0x0226F,
+ ["ngtr"]=0x0226F,
+ ["nGtv"]=0x0226B,
+ ["nhArr"]=0x021CE,
+ ["nharr"]=0x021AE,
+ ["nhpar"]=0x02AF2,
+ ["ni"]=0x0220B,
+ ["nis"]=0x022FC,
+ ["nisd"]=0x022FA,
+ ["niv"]=0x0220B,
+ ["NJcy"]=0x0040A,
+ ["njcy"]=0x0045A,
+ ["nlArr"]=0x021CD,
+ ["nlarr"]=0x0219A,
+ ["nldr"]=0x02025,
+ ["nlE"]=0x02266,
+ ["nle"]=0x02270,
+ ["nLeftarrow"]=0x021CD,
+ ["nleftarrow"]=0x0219A,
+ ["nLeftrightarrow"]=0x021CE,
+ ["nleftrightarrow"]=0x021AE,
+ ["nleq"]=0x02270,
+ ["nleqq"]=0x02266,
+ ["nleqslant"]=0x02A7D,
+ ["nles"]=0x02A7D,
+ ["nless"]=0x0226E,
+ ["nLl"]=0x022D8,
+ ["nlsim"]=0x02274,
+ ["nLt"]=0x0226A,
+ ["nlt"]=0x0226E,
+ ["nltri"]=0x022EA,
+ ["nltrie"]=0x022EC,
+ ["nLtv"]=0x0226A,
+ ["nmid"]=0x02224,
+ ["NoBreak"]=0x02060,
+ ["NonBreakingSpace"]=0x000A0,
+ ["Nopf"]=0x02115,
+ ["nopf"]=0x1D55F,
+ ["Not"]=0x02AEC,
+ ["not"]=0x000AC,
+ ["NotCongruent"]=0x02262,
+ ["NotCupCap"]=0x0226D,
+ ["NotDoubleVerticalBar"]=0x02226,
+ ["NotElement"]=0x02209,
+ ["NotEqual"]=0x02260,
+ ["NotEqualTilde"]=0x02242,
+ ["NotExists"]=0x02204,
+ ["NotGreater"]=0x0226F,
+ ["NotGreaterEqual"]=0x02271,
+ ["NotGreaterFullEqual"]=0x02266,
+ ["NotGreaterGreater"]=0x0226B,
+ ["NotGreaterLess"]=0x02279,
+ ["NotGreaterSlantEqual"]=0x02A7E,
+ ["NotGreaterTilde"]=0x02275,
+ ["NotHumpDownHump"]=0x0224E,
+ ["NotHumpEqual"]=0x0224F,
+ ["notin"]=0x02209,
+ ["notindot"]=0x022F5,
+ ["notinE"]=0x022F9,
+ ["notinva"]=0x02209,
+ ["notinvb"]=0x022F7,
+ ["notinvc"]=0x022F6,
+ ["NotLeftTriangle"]=0x022EA,
+ ["NotLeftTriangleBar"]=0x029CF,
+ ["NotLeftTriangleEqual"]=0x022EC,
+ ["NotLess"]=0x0226E,
+ ["NotLessEqual"]=0x02270,
+ ["NotLessGreater"]=0x02278,
+ ["NotLessLess"]=0x0226A,
+ ["NotLessSlantEqual"]=0x02A7D,
+ ["NotLessTilde"]=0x02274,
+ ["NotNestedGreaterGreater"]=0x02AA2,
+ ["NotNestedLessLess"]=0x02AA1,
+ ["notni"]=0x0220C,
+ ["notniva"]=0x0220C,
+ ["notnivb"]=0x022FE,
+ ["notnivc"]=0x022FD,
+ ["NotPrecedes"]=0x02280,
+ ["NotPrecedesEqual"]=0x02AAF,
+ ["NotPrecedesSlantEqual"]=0x022E0,
+ ["NotReverseElement"]=0x0220C,
+ ["NotRightTriangle"]=0x022EB,
+ ["NotRightTriangleBar"]=0x029D0,
+ ["NotRightTriangleEqual"]=0x022ED,
+ ["NotSquareSubset"]=0x0228F,
+ ["NotSquareSubsetEqual"]=0x022E2,
+ ["NotSquareSuperset"]=0x02290,
+ ["NotSquareSupersetEqual"]=0x022E3,
+ ["NotSubset"]=0x02282,
+ ["NotSubsetEqual"]=0x02288,
+ ["NotSucceeds"]=0x02281,
+ ["NotSucceedsEqual"]=0x02AB0,
+ ["NotSucceedsSlantEqual"]=0x022E1,
+ ["NotSucceedsTilde"]=0x0227F,
+ ["NotSuperset"]=0x02283,
+ ["NotSupersetEqual"]=0x02289,
+ ["NotTilde"]=0x02241,
+ ["NotTildeEqual"]=0x02244,
+ ["NotTildeFullEqual"]=0x02247,
+ ["NotTildeTilde"]=0x02249,
+ ["NotVerticalBar"]=0x02224,
+ ["npar"]=0x02226,
+ ["nparallel"]=0x02226,
+ ["nparsl"]=0x02AFD,
+ ["npart"]=0x02202,
+ ["npolint"]=0x02A14,
+ ["npr"]=0x02280,
+ ["nprcue"]=0x022E0,
+ ["npre"]=0x02AAF,
+ ["nprec"]=0x02280,
+ ["npreceq"]=0x02AAF,
+ ["nrArr"]=0x021CF,
+ ["nrarr"]=0x0219B,
+ ["nrarrc"]=0x02933,
+ ["nrarrw"]=0x0219D,
+ ["nRightarrow"]=0x021CF,
+ ["nrightarrow"]=0x0219B,
+ ["nrtri"]=0x022EB,
+ ["nrtrie"]=0x022ED,
+ ["nsc"]=0x02281,
+ ["nsccue"]=0x022E1,
+ ["nsce"]=0x02AB0,
+ ["Nscr"]=0x1D4A9,
+ ["nscr"]=0x1D4C3,
+ ["nshortmid"]=0x02224,
+ ["nshortparallel"]=0x02226,
+ ["nsim"]=0x02241,
+ ["nsime"]=0x02244,
+ ["nsimeq"]=0x02244,
+ ["nsmid"]=0x02224,
+ ["nspar"]=0x02226,
+ ["nsqsube"]=0x022E2,
+ ["nsqsupe"]=0x022E3,
+ ["nsub"]=0x02284,
+ ["nsubE"]=0x02AC5,
+ ["nsube"]=0x02288,
+ ["nsubset"]=0x02282,
+ ["nsubseteq"]=0x02288,
+ ["nsubseteqq"]=0x02AC5,
+ ["nsucc"]=0x02281,
+ ["nsucceq"]=0x02AB0,
+ ["nsup"]=0x02285,
+ ["nsupE"]=0x02AC6,
+ ["nsupe"]=0x02289,
+ ["nsupset"]=0x02283,
+ ["nsupseteq"]=0x02289,
+ ["nsupseteqq"]=0x02AC6,
+ ["ntgl"]=0x02279,
+ ["Ntilde"]=0x000D1,
+ ["ntilde"]=0x000F1,
+ ["ntlg"]=0x02278,
+ ["ntriangleleft"]=0x022EA,
+ ["ntrianglelefteq"]=0x022EC,
+ ["ntriangleright"]=0x022EB,
+ ["ntrianglerighteq"]=0x022ED,
+ ["nu"]=0x003BD,
+ ["num"]=0x00023,
+ ["numero"]=0x02116,
+ ["numsp"]=0x02007,
+ ["nvap"]=0x0224D,
+ ["nVDash"]=0x022AF,
+ ["nVdash"]=0x022AE,
+ ["nvDash"]=0x022AD,
+ ["nvdash"]=0x022AC,
+ ["nvge"]=0x02265,
+ ["nvgt"]=0x0003E,
+ ["nvHarr"]=0x02904,
+ ["nvinfin"]=0x029DE,
+ ["nvlArr"]=0x02902,
+ ["nvle"]=0x02264,
+ ["nvlt"]=0x0003C,
+ ["nvltrie"]=0x022B4,
+ ["nvrArr"]=0x02903,
+ ["nvrtrie"]=0x022B5,
+ ["nvsim"]=0x0223C,
+ ["nwarhk"]=0x02923,
+ ["nwArr"]=0x021D6,
+ ["nwarr"]=0x02196,
+ ["nwarrow"]=0x02196,
+ ["nwnear"]=0x02927,
+ ["Oacute"]=0x000D3,
+ ["oacute"]=0x000F3,
+ ["oast"]=0x0229B,
+ ["ocir"]=0x0229A,
+ ["Ocirc"]=0x000D4,
+ ["ocirc"]=0x000F4,
+ ["Ocy"]=0x0041E,
+ ["ocy"]=0x0043E,
+ ["odash"]=0x0229D,
+ ["Odblac"]=0x00150,
+ ["odblac"]=0x00151,
+ ["odiv"]=0x02A38,
+ ["odot"]=0x02299,
+ ["odsold"]=0x029BC,
+ ["OElig"]=0x00152,
+ ["oelig"]=0x00153,
+ ["ofcir"]=0x029BF,
+ ["Ofr"]=0x1D512,
+ ["ofr"]=0x1D52C,
+ ["ogon"]=0x002DB,
+ ["Ograve"]=0x000D2,
+ ["ograve"]=0x000F2,
+ ["ogt"]=0x029C1,
+ ["ohbar"]=0x029B5,
+ ["ohm"]=0x02126,
+ ["oint"]=0x0222E,
+ ["olarr"]=0x021BA,
+ ["olcir"]=0x029BE,
+ ["olcross"]=0x029BB,
+ ["olt"]=0x029C0,
+ ["Omacr"]=0x0014C,
+ ["omacr"]=0x0014D,
+ ["Omega"]=0x003A9,
+ ["omega"]=0x003C9,
+ ["omid"]=0x029B6,
+ ["ominus"]=0x02296,
+ ["Oopf"]=0x1D546,
+ ["oopf"]=0x1D560,
+ ["opar"]=0x029B7,
+ ["OpenCurlyDoubleQuote"]=0x0201C,
+ ["OpenCurlyQuote"]=0x02018,
+ ["operp"]=0x029B9,
+ ["oplus"]=0x02295,
+ ["Or"]=0x02A54,
+ ["or"]=0x02228,
+ ["orarr"]=0x021BB,
+ ["ord"]=0x02A5D,
+ ["order"]=0x02134,
+ ["orderof"]=0x02134,
+ ["ordf"]=0x000AA,
+ ["ordm"]=0x000BA,
+ ["origof"]=0x022B6,
+ ["oror"]=0x02A56,
+ ["orslope"]=0x02A57,
+ ["orv"]=0x02A5B,
+ ["oS"]=0x024C8,
+ ["Oscr"]=0x1D4AA,
+ ["oscr"]=0x02134,
+ ["Oslash"]=0x000D8,
+ ["oslash"]=0x000F8,
+ ["osol"]=0x02298,
+ ["Otilde"]=0x000D5,
+ ["otilde"]=0x000F5,
+ ["Otimes"]=0x02A37,
+ ["otimes"]=0x02297,
+ ["otimesas"]=0x02A36,
+ ["Ouml"]=0x000D6,
+ ["ouml"]=0x000F6,
+ ["ovbar"]=0x0233D,
+ ["OverBar"]=0x000AF,
+ ["OverBrace"]=0x0FE37,
+ ["OverBracket"]=0x023B4,
+ ["OverParenthesis"]=0x0FE35,
+ ["par"]=0x02225,
+ ["para"]=0x000B6,
+ ["parallel"]=0x02225,
+ ["parsim"]=0x02AF3,
+ ["parsl"]=0x02AFD,
+ ["part"]=0x02202,
+ ["PartialD"]=0x02202,
+ ["Pcy"]=0x0041F,
+ ["pcy"]=0x0043F,
+ ["percnt"]=0x00025,
+ ["period"]=0x0002E,
+ ["permil"]=0x02030,
+ ["perp"]=0x022A5,
+ ["pertenk"]=0x02031,
+ ["Pfr"]=0x1D513,
+ ["pfr"]=0x1D52D,
+ ["Phi"]=0x003A6,
+ ["phi"]=0x003D5,
+ ["phiv"]=0x003C6,
+ ["phmmat"]=0x02133,
+ ["phone"]=0x0260E,
+ ["Pi"]=0x003A0,
+ ["pi"]=0x003C0,
+ ["pitchfork"]=0x022D4,
+ ["piv"]=0x003D6,
+ ["planck"]=0x0210F,
+ ["planckh"]=0x0210E,
+ ["plankv"]=0x0210F,
+ ["plus"]=0x0002B,
+ ["plusacir"]=0x02A23,
+ ["plusb"]=0x0229E,
+ ["pluscir"]=0x02A22,
+ ["plusdo"]=0x02214,
+ ["plusdu"]=0x02A25,
+ ["pluse"]=0x02A72,
+ ["PlusMinus"]=0x000B1,
+ ["plusmn"]=0x000B1,
+ ["plussim"]=0x02A26,
+ ["plustwo"]=0x02A27,
+ ["pm"]=0x000B1,
+ ["Poincareplane"]=0x0210C,
+ ["pointint"]=0x02A15,
+ ["Popf"]=0x02119,
+ ["popf"]=0x1D561,
+ ["pound"]=0x000A3,
+ ["Pr"]=0x02ABB,
+ ["pr"]=0x0227A,
+ ["prap"]=0x02AB7,
+ ["prcue"]=0x0227C,
+ ["prE"]=0x02AB3,
+ ["pre"]=0x02AAF,
+ ["prec"]=0x0227A,
+ ["precapprox"]=0x02AB7,
+ ["preccurlyeq"]=0x0227C,
+ ["Precedes"]=0x0227A,
+ ["PrecedesEqual"]=0x02AAF,
+ ["PrecedesSlantEqual"]=0x0227C,
+ ["PrecedesTilde"]=0x0227E,
+ ["preceq"]=0x02AAF,
+ ["precnapprox"]=0x02AB9,
+ ["precneqq"]=0x02AB5,
+ ["precnsim"]=0x022E8,
+ ["precsim"]=0x0227E,
+ ["Prime"]=0x02033,
+ ["prime"]=0x02032,
+ ["primes"]=0x02119,
+ ["prnap"]=0x02AB9,
+ ["prnE"]=0x02AB5,
+ ["prnsim"]=0x022E8,
+ ["prod"]=0x0220F,
+ ["Product"]=0x0220F,
+ ["profalar"]=0x0232E,
+ ["profline"]=0x02312,
+ ["profsurf"]=0x02313,
+ ["prop"]=0x0221D,
+ ["Proportion"]=0x02237,
+ ["Proportional"]=0x0221D,
+ ["propto"]=0x0221D,
+ ["prsim"]=0x0227E,
+ ["prurel"]=0x022B0,
+ ["Pscr"]=0x1D4AB,
+ ["pscr"]=0x1D4C5,
+ ["Psi"]=0x003A8,
+ ["psi"]=0x003C8,
+ ["puncsp"]=0x02008,
+ ["Qfr"]=0x1D514,
+ ["qfr"]=0x1D52E,
+ ["qint"]=0x02A0C,
+ ["Qopf"]=0x0211A,
+ ["qopf"]=0x1D562,
+ ["qprime"]=0x02057,
+ ["Qscr"]=0x1D4AC,
+ ["qscr"]=0x1D4C6,
+ ["quaternions"]=0x0210D,
+ ["quatint"]=0x02A16,
+ ["quest"]=0x0003F,
+ ["questeq"]=0x0225F,
+ ["quot"]=0x00022,
+ ["rAarr"]=0x021DB,
+ ["race"]=0x029DA,
+ ["Racute"]=0x00154,
+ ["racute"]=0x00155,
+ ["radic"]=0x0221A,
+ ["raemptyv"]=0x029B3,
+ ["Rang"]=0x0300B,
+ ["rang"]=0x0232A,
+ ["rangd"]=0x02992,
+ ["range"]=0x029A5,
+ ["rangle"]=0x0232A,
+ ["raquo"]=0x000BB,
+ ["Rarr"]=0x021A0,
+ ["rArr"]=0x021D2,
+ ["rarr"]=0x02192,
+ ["rarrap"]=0x02975,
+ ["rarrb"]=0x021E5,
+ ["rarrbfs"]=0x02920,
+ ["rarrc"]=0x02933,
+ ["rarrfs"]=0x0291E,
+ ["rarrhk"]=0x021AA,
+ ["rarrlp"]=0x021AC,
+ ["rarrpl"]=0x02945,
+ ["rarrsim"]=0x02974,
+ ["Rarrtl"]=0x02916,
+ ["rarrtl"]=0x021A3,
+ ["rarrw"]=0x0219D,
+ ["rAtail"]=0x0291C,
+ ["ratail"]=0x0291A,
+ ["ratio"]=0x02236,
+ ["rationals"]=0x0211A,
+ ["RBarr"]=0x02910,
+ ["rBarr"]=0x0290F,
+ ["rbarr"]=0x0290D,
+ ["rbbrk"]=0x03015,
+ ["rbrace"]=0x0007D,
+ ["rbrack"]=0x0005D,
+ ["rbrke"]=0x0298C,
+ ["rbrksld"]=0x0298E,
+ ["rbrkslu"]=0x02990,
+ ["Rcaron"]=0x00158,
+ ["rcaron"]=0x00159,
+ ["Rcedil"]=0x00156,
+ ["rcedil"]=0x00157,
+ ["rceil"]=0x02309,
+ ["rcub"]=0x0007D,
+ ["Rcy"]=0x00420,
+ ["rcy"]=0x00440,
+ ["rdca"]=0x02937,
+ ["rdldhar"]=0x02969,
+ ["rdquo"]=0x0201D,
+ ["rdquor"]=0x0201D,
+ ["rdsh"]=0x021B3,
+ ["Re"]=0x0211C,
+ ["real"]=0x0211C,
+ ["realine"]=0x0211B,
+ ["realpart"]=0x0211C,
+ ["reals"]=0x0211D,
+ ["rect"]=0x025AD,
+ ["reg"]=0x000AE,
+ ["ReverseElement"]=0x0220B,
+ ["ReverseEquilibrium"]=0x021CB,
+ ["ReverseUpEquilibrium"]=0x0296F,
+ ["rfisht"]=0x0297D,
+ ["rfloor"]=0x0230B,
+ ["Rfr"]=0x0211C,
+ ["rfr"]=0x1D52F,
+ ["rHar"]=0x02964,
+ ["rhard"]=0x021C1,
+ ["rharu"]=0x021C0,
+ ["rharul"]=0x0296C,
+ ["rho"]=0x003C1,
+ ["rhov"]=0x003F1,
+ ["RightAngleBracket"]=0x0232A,
+ ["RightArrow"]=0x02192,
+ ["Rightarrow"]=0x021D2,
+ ["rightarrow"]=0x02192,
+ ["RightArrowBar"]=0x021E5,
+ ["RightArrowLeftArrow"]=0x021C4,
+ ["rightarrowtail"]=0x021A3,
+ ["RightCeiling"]=0x02309,
+ ["RightDoubleBracket"]=0x0301B,
+ ["RightDownTeeVector"]=0x0295D,
+ ["RightDownVector"]=0x021C2,
+ ["RightDownVectorBar"]=0x02955,
+ ["RightFloor"]=0x0230B,
+ ["rightharpoondown"]=0x021C1,
+ ["rightharpoonup"]=0x021C0,
+ ["rightleftarrows"]=0x021C4,
+ ["rightleftharpoons"]=0x021CC,
+ ["rightrightarrows"]=0x021C9,
+ ["rightsquigarrow"]=0x0219D,
+ ["RightTee"]=0x022A2,
+ ["RightTeeArrow"]=0x021A6,
+ ["RightTeeVector"]=0x0295B,
+ ["rightthreetimes"]=0x022CC,
+ ["RightTriangle"]=0x022B3,
+ ["RightTriangleBar"]=0x029D0,
+ ["RightTriangleEqual"]=0x022B5,
+ ["RightUpDownVector"]=0x0294F,
+ ["RightUpTeeVector"]=0x0295C,
+ ["RightUpVector"]=0x021BE,
+ ["RightUpVectorBar"]=0x02954,
+ ["RightVector"]=0x021C0,
+ ["RightVectorBar"]=0x02953,
+ ["ring"]=0x002DA,
+ ["risingdotseq"]=0x02253,
+ ["rlarr"]=0x021C4,
+ ["rlhar"]=0x021CC,
+ ["rmoust"]=0x023B1,
+ ["rmoustache"]=0x023B1,
+ ["rnmid"]=0x02AEE,
+ ["roang"]=0x03019,
+ ["roarr"]=0x021FE,
+ ["robrk"]=0x0301B,
+ ["ropar"]=0x02986,
+ ["Ropf"]=0x0211D,
+ ["ropf"]=0x1D563,
+ ["roplus"]=0x02A2E,
+ ["rotimes"]=0x02A35,
+ ["RoundImplies"]=0x02970,
+ ["rpar"]=0x00029,
+ ["rpargt"]=0x02994,
+ ["rppolint"]=0x02A12,
+ ["rrarr"]=0x021C9,
+ ["Rrightarrow"]=0x021DB,
+ ["Rscr"]=0x0211B,
+ ["rscr"]=0x1D4C7,
+ ["Rsh"]=0x021B1,
+ ["rsh"]=0x021B1,
+ ["rsqb"]=0x0005D,
+ ["rsquo"]=0x02019,
+ ["rsquor"]=0x02019,
+ ["rthree"]=0x022CC,
+ ["rtimes"]=0x022CA,
+ ["rtri"]=0x025B9,
+ ["rtrie"]=0x022B5,
+ ["rtrif"]=0x025B8,
+ ["rtriltri"]=0x029CE,
+ ["RuleDelayed"]=0x029F4,
+ ["ruluhar"]=0x02968,
+ ["rx"]=0x0211E,
+ ["Sacute"]=0x0015A,
+ ["sacute"]=0x0015B,
+ ["Sc"]=0x02ABC,
+ ["sc"]=0x0227B,
+ ["scap"]=0x02AB8,
+ ["Scaron"]=0x00160,
+ ["scaron"]=0x00161,
+ ["sccue"]=0x0227D,
+ ["scE"]=0x02AB4,
+ ["sce"]=0x02AB0,
+ ["Scedil"]=0x0015E,
+ ["scedil"]=0x0015F,
+ ["Scirc"]=0x0015C,
+ ["scirc"]=0x0015D,
+ ["scnap"]=0x02ABA,
+ ["scnE"]=0x02AB6,
+ ["scnsim"]=0x022E9,
+ ["scpolint"]=0x02A13,
+ ["scsim"]=0x0227F,
+ ["Scy"]=0x00421,
+ ["scy"]=0x00441,
+ ["sdot"]=0x022C5,
+ ["sdotb"]=0x022A1,
+ ["sdote"]=0x02A66,
+ ["searhk"]=0x02925,
+ ["seArr"]=0x021D8,
+ ["searr"]=0x02198,
+ ["searrow"]=0x02198,
+ ["sect"]=0x000A7,
+ ["semi"]=0x0003B,
+ ["seswar"]=0x02929,
+ ["setminus"]=0x02216,
+ ["setmn"]=0x02216,
+ ["sext"]=0x02736,
+ ["Sfr"]=0x1D516,
+ ["sfr"]=0x1D530,
+ ["sfrown"]=0x02322,
+ ["sharp"]=0x0266F,
+ ["SHCHcy"]=0x00429,
+ ["shchcy"]=0x00449,
+ ["SHcy"]=0x00428,
+ ["shcy"]=0x00448,
+ ["ShortDownArrow"]=0x02193,
+ ["ShortLeftArrow"]=0x02190,
+ ["shortmid"]=0x02223,
+ ["shortparallel"]=0x02225,
+ ["ShortRightArrow"]=0x02192,
+ ["ShortUpArrow"]=0x02191,
+ ["shy"]=0x000AD,
+ ["Sigma"]=0x003A3,
+ ["sigma"]=0x003C3,
+ ["sigmav"]=0x003C2,
+ ["sim"]=0x0223C,
+ ["simdot"]=0x02A6A,
+ ["sime"]=0x02243,
+ ["simeq"]=0x02243,
+ ["simg"]=0x02A9E,
+ ["simgE"]=0x02AA0,
+ ["siml"]=0x02A9D,
+ ["simlE"]=0x02A9F,
+ ["simne"]=0x02246,
+ ["simplus"]=0x02A24,
+ ["simrarr"]=0x02972,
+ ["slarr"]=0x02190,
+ ["SmallCircle"]=0x02218,
+ ["smallsetminus"]=0x02216,
+ ["smashp"]=0x02A33,
+ ["smeparsl"]=0x029E4,
+ ["smid"]=0x02223,
+ ["smile"]=0x02323,
+ ["smt"]=0x02AAA,
+ ["smte"]=0x02AAC,
+ ["smtes"]=0x02AAC,
+ ["SOFTcy"]=0x0042C,
+ ["softcy"]=0x0044C,
+ ["sol"]=0x0002F,
+ ["solb"]=0x029C4,
+ ["solbar"]=0x0233F,
+ ["Sopf"]=0x1D54A,
+ ["sopf"]=0x1D564,
+ ["spades"]=0x02660,
+ ["spadesuit"]=0x02660,
+ ["spar"]=0x02225,
+ ["sqcap"]=0x02293,
+ ["sqcaps"]=0x02293,
+ ["sqcup"]=0x02294,
+ ["sqcups"]=0x02294,
+ ["Sqrt"]=0x0221A,
+ ["sqsub"]=0x0228F,
+ ["sqsube"]=0x02291,
+ ["sqsubset"]=0x0228F,
+ ["sqsubseteq"]=0x02291,
+ ["sqsup"]=0x02290,
+ ["sqsupe"]=0x02292,
+ ["sqsupset"]=0x02290,
+ ["sqsupseteq"]=0x02292,
+ ["squ"]=0x025A1,
+ ["Square"]=0x025A1,
+ ["square"]=0x025A1,
+ ["SquareIntersection"]=0x02293,
+ ["SquareSubset"]=0x0228F,
+ ["SquareSubsetEqual"]=0x02291,
+ ["SquareSuperset"]=0x02290,
+ ["SquareSupersetEqual"]=0x02292,
+ ["SquareUnion"]=0x02294,
+ ["squarf"]=0x025AA,
+ ["squf"]=0x025AA,
+ ["srarr"]=0x02192,
+ ["Sscr"]=0x1D4AE,
+ ["sscr"]=0x1D4C8,
+ ["ssetmn"]=0x02216,
+ ["ssmile"]=0x02323,
+ ["sstarf"]=0x022C6,
+ ["Star"]=0x022C6,
+ ["star"]=0x02606,
+ ["starf"]=0x02605,
+ ["straightepsilon"]=0x003F5,
+ ["straightphi"]=0x003D5,
+ ["strns"]=0x000AF,
+ ["Sub"]=0x022D0,
+ ["sub"]=0x02282,
+ ["subdot"]=0x02ABD,
+ ["subE"]=0x02AC5,
+ ["sube"]=0x02286,
+ ["subedot"]=0x02AC3,
+ ["submult"]=0x02AC1,
+ ["subnE"]=0x02ACB,
+ ["subne"]=0x0228A,
+ ["subplus"]=0x02ABF,
+ ["subrarr"]=0x02979,
+ ["Subset"]=0x022D0,
+ ["subset"]=0x02282,
+ ["subseteq"]=0x02286,
+ ["subseteqq"]=0x02AC5,
+ ["SubsetEqual"]=0x02286,
+ ["subsetneq"]=0x0228A,
+ ["subsetneqq"]=0x02ACB,
+ ["subsim"]=0x02AC7,
+ ["subsub"]=0x02AD5,
+ ["subsup"]=0x02AD3,
+ ["succ"]=0x0227B,
+ ["succapprox"]=0x02AB8,
+ ["succcurlyeq"]=0x0227D,
+ ["Succeeds"]=0x0227B,
+ ["SucceedsEqual"]=0x02AB0,
+ ["SucceedsSlantEqual"]=0x0227D,
+ ["SucceedsTilde"]=0x0227F,
+ ["succeq"]=0x02AB0,
+ ["succnapprox"]=0x02ABA,
+ ["succneqq"]=0x02AB6,
+ ["succnsim"]=0x022E9,
+ ["succsim"]=0x0227F,
+ ["SuchThat"]=0x0220B,
+ ["Sum"]=0x02211,
+ ["sum"]=0x02211,
+ ["sung"]=0x0266A,
+ ["Sup"]=0x022D1,
+ ["sup"]=0x02283,
+ ["sup1"]=0x000B9,
+ ["sup2"]=0x000B2,
+ ["sup3"]=0x000B3,
+ ["supdot"]=0x02ABE,
+ ["supdsub"]=0x02AD8,
+ ["supE"]=0x02AC6,
+ ["supe"]=0x02287,
+ ["supedot"]=0x02AC4,
+ ["Superset"]=0x02283,
+ ["SupersetEqual"]=0x02287,
+ ["suphsol"]=0x02283,
+ ["suphsub"]=0x02AD7,
+ ["suplarr"]=0x0297B,
+ ["supmult"]=0x02AC2,
+ ["supnE"]=0x02ACC,
+ ["supne"]=0x0228B,
+ ["supplus"]=0x02AC0,
+ ["Supset"]=0x022D1,
+ ["supset"]=0x02283,
+ ["supseteq"]=0x02287,
+ ["supseteqq"]=0x02AC6,
+ ["supsetneq"]=0x0228B,
+ ["supsetneqq"]=0x02ACC,
+ ["supsim"]=0x02AC8,
+ ["supsub"]=0x02AD4,
+ ["supsup"]=0x02AD6,
+ ["swarhk"]=0x02926,
+ ["swArr"]=0x021D9,
+ ["swarr"]=0x02199,
+ ["swarrow"]=0x02199,
+ ["swnwar"]=0x0292A,
+ ["szlig"]=0x000DF,
+ ["Tab"]=0x00009,
+ ["target"]=0x02316,
+ ["tau"]=0x003C4,
+ ["tbrk"]=0x023B4,
+ ["Tcaron"]=0x00164,
+ ["tcaron"]=0x00165,
+ ["Tcedil"]=0x00162,
+ ["tcedil"]=0x00163,
+ ["Tcy"]=0x00422,
+ ["tcy"]=0x00442,
+ ["tdot"]=0x020DB,
+ ["telrec"]=0x02315,
+ ["Tfr"]=0x1D517,
+ ["tfr"]=0x1D531,
+ ["there4"]=0x02234,
+ ["Therefore"]=0x02234,
+ ["therefore"]=0x02234,
+ ["Theta"]=0x00398,
+ ["theta"]=0x003B8,
+ ["thetav"]=0x003D1,
+ ["thickapprox"]=0x02248,
+ ["thicksim"]=0x0223C,
+ ["ThickSpace"]=0x02009,
+ ["thinsp"]=0x02009,
+ ["ThinSpace"]=0x02009,
+ ["thkap"]=0x02248,
+ ["thksim"]=0x0223C,
+ ["THORN"]=0x000DE,
+ ["thorn"]=0x000FE,
+ ["Tilde"]=0x0223C,
+ ["tilde"]=0x002DC,
+ ["TildeEqual"]=0x02243,
+ ["TildeFullEqual"]=0x02245,
+ ["TildeTilde"]=0x02248,
+ ["times"]=0x000D7,
+ ["timesb"]=0x022A0,
+ ["timesbar"]=0x02A31,
+ ["timesd"]=0x02A30,
+ ["tint"]=0x0222D,
+ ["toea"]=0x02928,
+ ["top"]=0x022A4,
+ ["topbot"]=0x02336,
+ ["topcir"]=0x02AF1,
+ ["Topf"]=0x1D54B,
+ ["topf"]=0x1D565,
+ ["topfork"]=0x02ADA,
+ ["tosa"]=0x02929,
+ ["tprime"]=0x02034,
+ ["trade"]=0x02122,
+ ["triangle"]=0x025B5,
+ ["triangledown"]=0x025BF,
+ ["triangleleft"]=0x025C3,
+ ["trianglelefteq"]=0x022B4,
+ ["triangleq"]=0x0225C,
+ ["triangleright"]=0x025B9,
+ ["trianglerighteq"]=0x022B5,
+ ["tridot"]=0x025EC,
+ ["trie"]=0x0225C,
+ ["triminus"]=0x02A3A,
+ ["TripleDot"]=0x020DB,
+ ["triplus"]=0x02A39,
+ ["trisb"]=0x029CD,
+ ["tritime"]=0x02A3B,
+ ["trpezium"]=0x0FFFD,
+ ["Tscr"]=0x1D4AF,
+ ["tscr"]=0x1D4C9,
+ ["TScy"]=0x00426,
+ ["tscy"]=0x00446,
+ ["TSHcy"]=0x0040B,
+ ["tshcy"]=0x0045B,
+ ["Tstrok"]=0x00166,
+ ["tstrok"]=0x00167,
+ ["twixt"]=0x0226C,
+ ["twoheadleftarrow"]=0x0219E,
+ ["twoheadrightarrow"]=0x021A0,
+ ["Uacute"]=0x000DA,
+ ["uacute"]=0x000FA,
+ ["Uarr"]=0x0219F,
+ ["uArr"]=0x021D1,
+ ["uarr"]=0x02191,
+ ["Uarrocir"]=0x02949,
+ ["Ubrcy"]=0x0040E,
+ ["ubrcy"]=0x0045E,
+ ["Ubreve"]=0x0016C,
+ ["ubreve"]=0x0016D,
+ ["Ucirc"]=0x000DB,
+ ["ucirc"]=0x000FB,
+ ["Ucy"]=0x00423,
+ ["ucy"]=0x00443,
+ ["udarr"]=0x021C5,
+ ["Udblac"]=0x00170,
+ ["udblac"]=0x00171,
+ ["udhar"]=0x0296E,
+ ["ufisht"]=0x0297E,
+ ["Ufr"]=0x1D518,
+ ["ufr"]=0x1D532,
+ ["Ugrave"]=0x000D9,
+ ["ugrave"]=0x000F9,
+ ["uHar"]=0x02963,
+ ["uharl"]=0x021BF,
+ ["uharr"]=0x021BE,
+ ["uhblk"]=0x02580,
+ ["ulcorn"]=0x0231C,
+ ["ulcorner"]=0x0231C,
+ ["ulcrop"]=0x0230F,
+ ["ultri"]=0x025F8,
+ ["Umacr"]=0x0016A,
+ ["umacr"]=0x0016B,
+ ["uml"]=0x000A8,
+ ["UnderBar"]=0x00332,
+ ["UnderBrace"]=0x0FE38,
+ ["UnderBracket"]=0x023B5,
+ ["UnderParenthesis"]=0x0FE36,
+ ["Union"]=0x022C3,
+ ["UnionPlus"]=0x0228E,
+ ["Uogon"]=0x00172,
+ ["uogon"]=0x00173,
+ ["Uopf"]=0x1D54C,
+ ["uopf"]=0x1D566,
+ ["UpArrow"]=0x02191,
+ ["Uparrow"]=0x021D1,
+ ["uparrow"]=0x02191,
+ ["UpArrowBar"]=0x02912,
+ ["UpArrowDownArrow"]=0x021C5,
+ ["UpDownArrow"]=0x02195,
+ ["Updownarrow"]=0x021D5,
+ ["updownarrow"]=0x02195,
+ ["UpEquilibrium"]=0x0296E,
+ ["upharpoonleft"]=0x021BF,
+ ["upharpoonright"]=0x021BE,
+ ["uplus"]=0x0228E,
+ ["UpperLeftArrow"]=0x02196,
+ ["UpperRightArrow"]=0x02197,
+ ["Upsi"]=0x003D2,
+ ["upsi"]=0x003C5,
+ ["Upsilon"]=0x003A5,
+ ["upsilon"]=0x003C5,
+ ["UpTee"]=0x022A5,
+ ["UpTeeArrow"]=0x021A5,
+ ["upuparrows"]=0x021C8,
+ ["urcorn"]=0x0231D,
+ ["urcorner"]=0x0231D,
+ ["urcrop"]=0x0230E,
+ ["Uring"]=0x0016E,
+ ["uring"]=0x0016F,
+ ["urtri"]=0x025F9,
+ ["Uscr"]=0x1D4B0,
+ ["uscr"]=0x1D4CA,
+ ["utdot"]=0x022F0,
+ ["Utilde"]=0x00168,
+ ["utilde"]=0x00169,
+ ["utri"]=0x025B5,
+ ["utrif"]=0x025B4,
+ ["uuarr"]=0x021C8,
+ ["Uuml"]=0x000DC,
+ ["uuml"]=0x000FC,
+ ["uwangle"]=0x029A7,
+ ["vangrt"]=0x0299C,
+ ["varepsilon"]=0x003B5,
+ ["varkappa"]=0x003F0,
+ ["varnothing"]=0x02205,
+ ["varphi"]=0x003C6,
+ ["varpi"]=0x003D6,
+ ["varpropto"]=0x0221D,
+ ["vArr"]=0x021D5,
+ ["varr"]=0x02195,
+ ["varrho"]=0x003F1,
+ ["varsigma"]=0x003C2,
+ ["varsubsetneq"]=0x0228A,
+ ["varsubsetneqq"]=0x02ACB,
+ ["varsupsetneq"]=0x0228B,
+ ["varsupsetneqq"]=0x02ACC,
+ ["vartheta"]=0x003D1,
+ ["vartriangleleft"]=0x022B2,
+ ["vartriangleright"]=0x022B3,
+ ["Vbar"]=0x02AEB,
+ ["vBar"]=0x02AE8,
+ ["vBarv"]=0x02AE9,
+ ["Vcy"]=0x00412,
+ ["vcy"]=0x00432,
+ ["VDash"]=0x022AB,
+ ["Vdash"]=0x022A9,
+ ["vDash"]=0x022A8,
+ ["vdash"]=0x022A2,
+ ["Vdashl"]=0x02AE6,
+ ["Vee"]=0x022C1,
+ ["vee"]=0x02228,
+ ["veebar"]=0x022BB,
+ ["veeeq"]=0x0225A,
+ ["vellip"]=0x022EE,
+ ["Verbar"]=0x02016,
+ ["verbar"]=0x0007C,
+ ["Vert"]=0x02016,
+ ["vert"]=0x0007C,
+ ["VerticalBar"]=0x02223,
+ ["VerticalLine"]=0x0007C,
+ ["VerticalSeparator"]=0x02758,
+ ["VerticalTilde"]=0x02240,
+ ["VeryThinSpace"]=0x0200A,
+ ["Vfr"]=0x1D519,
+ ["vfr"]=0x1D533,
+ ["vltri"]=0x022B2,
+ ["vnsub"]=0x02282,
+ ["vnsup"]=0x02283,
+ ["Vopf"]=0x1D54D,
+ ["vopf"]=0x1D567,
+ ["vprop"]=0x0221D,
+ ["vrtri"]=0x022B3,
+ ["Vscr"]=0x1D4B1,
+ ["vscr"]=0x1D4CB,
+ ["vsubnE"]=0x02ACB,
+ ["vsubne"]=0x0228A,
+ ["vsupnE"]=0x02ACC,
+ ["vsupne"]=0x0228B,
+ ["Vvdash"]=0x022AA,
+ ["vzigzag"]=0x0299A,
+ ["Wcirc"]=0x00174,
+ ["wcirc"]=0x00175,
+ ["wedbar"]=0x02A5F,
+ ["Wedge"]=0x022C0,
+ ["wedge"]=0x02227,
+ ["wedgeq"]=0x02259,
+ ["weierp"]=0x02118,
+ ["Wfr"]=0x1D51A,
+ ["wfr"]=0x1D534,
+ ["Wopf"]=0x1D54E,
+ ["wopf"]=0x1D568,
+ ["wp"]=0x02118,
+ ["wr"]=0x02240,
+ ["wreath"]=0x02240,
+ ["Wscr"]=0x1D4B2,
+ ["wscr"]=0x1D4CC,
+ ["xcap"]=0x022C2,
+ ["xcirc"]=0x025EF,
+ ["xcup"]=0x022C3,
+ ["xdtri"]=0x025BD,
+ ["Xfr"]=0x1D51B,
+ ["xfr"]=0x1D535,
+ ["xhArr"]=0x027FA,
+ ["xharr"]=0x027F7,
+ ["Xi"]=0x0039E,
+ ["xi"]=0x003BE,
+ ["xlArr"]=0x027F8,
+ ["xlarr"]=0x027F5,
+ ["xmap"]=0x027FC,
+ ["xnis"]=0x022FB,
+ ["xodot"]=0x02A00,
+ ["Xopf"]=0x1D54F,
+ ["xopf"]=0x1D569,
+ ["xoplus"]=0x02A01,
+ ["xotime"]=0x02A02,
+ ["xrArr"]=0x027F9,
+ ["xrarr"]=0x027F6,
+ ["Xscr"]=0x1D4B3,
+ ["xscr"]=0x1D4CD,
+ ["xsqcup"]=0x02A06,
+ ["xuplus"]=0x02A04,
+ ["xutri"]=0x025B3,
+ ["xvee"]=0x022C1,
+ ["xwedge"]=0x022C0,
+ ["Yacute"]=0x000DD,
+ ["yacute"]=0x000FD,
+ ["YAcy"]=0x0042F,
+ ["yacy"]=0x0044F,
+ ["Ycirc"]=0x00176,
+ ["ycirc"]=0x00177,
+ ["Ycy"]=0x0042B,
+ ["ycy"]=0x0044B,
+ ["yen"]=0x000A5,
+ ["Yfr"]=0x1D51C,
+ ["yfr"]=0x1D536,
+ ["YIcy"]=0x00407,
+ ["yicy"]=0x00457,
+ ["Yopf"]=0x1D550,
+ ["yopf"]=0x1D56A,
+ ["Yscr"]=0x1D4B4,
+ ["yscr"]=0x1D4CE,
+ ["YUcy"]=0x0042E,
+ ["yucy"]=0x0044E,
+ ["Yuml"]=0x00178,
+ ["yuml"]=0x000FF,
+ ["Zacute"]=0x00179,
+ ["zacute"]=0x0017A,
+ ["Zcaron"]=0x0017D,
+ ["zcaron"]=0x0017E,
+ ["Zcy"]=0x00417,
+ ["zcy"]=0x00437,
+ ["Zdot"]=0x0017B,
+ ["zdot"]=0x0017C,
+ ["zeetrf"]=0x02128,
+ ["ZeroWidthSpace"]=0x0200B,
+ ["zeta"]=0x003B6,
+ ["Zfr"]=0x02128,
+ ["zfr"]=0x1D537,
+ ["ZHcy"]=0x00416,
+ ["zhcy"]=0x00436,
+ ["zigrarr"]=0x021DD,
+ ["Zopf"]=0x02124,
+ ["zopf"]=0x1D56B,
+ ["Zscr"]=0x1D4B5,
+ ["zscr"]=0x1D4CF,
+
+ ["plusminus"]=0x000B1,
+ ["minusplus"]=0x02213,
+ ["cdots"]=0x2026,
+
}
diff --git a/Master/texmf-dist/tex/context/base/math-eul.tex b/Master/texmf-dist/tex/context/base/math-eul.mkii
index 7552957a866..7552957a866 100644
--- a/Master/texmf-dist/tex/context/base/math-eul.tex
+++ b/Master/texmf-dist/tex/context/base/math-eul.mkii
diff --git a/Master/texmf-dist/tex/context/base/math-ext.lua b/Master/texmf-dist/tex/context/base/math-ext.lua
new file mode 100644
index 00000000000..52dce02554c
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/math-ext.lua
@@ -0,0 +1,143 @@
+if not modules then modules = { } end modules ['math-ext'] = {
+ version = 1.001,
+ comment = "companion to math-ini.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local trace_virtual = false trackers.register("math.virtual", function(v) trace_virtual = v end)
+
+mathematics = mathematics or { }
+characters = characters or { }
+
+mathematics.extras = mathematics.extras or { }
+characters.math = characters.math or { }
+
+local chardata = characters.data
+local mathdata = characters.math
+
+function mathematics.extras.add(unicode,t)
+ local min, max = mathematics.extrabase, mathematics.privatebase - 1
+ if unicode >= min and unicode <= max then
+ mathdata[unicode], chardata[unicode] = t, t
+ else
+ logs.report("math extra","extra U+%04X should be in range U+%04X - U+%04X",unicode,min,max)
+ end
+end
+
+function mathematics.extras.copy(tfmdata)
+ local math_parameters = tfmdata.math_parameters
+ local MathConstants = tfmdata.MathConstants
+ if (math_parameters and next(math_parameters)) or (MathConstants and next(MathConstants)) then
+ local characters = tfmdata.characters
+ for unicode, extradesc in next, mathdata do
+ -- always, because in an intermediate step we can have a non math font
+ local extrachar = characters[unicode]
+ local nextinsize = extradesc.nextinsize
+ if nextinsize then
+ for i=1,#nextinsize do
+ local nextslot = nextinsize[i]
+ local nextbase = characters[nextslot]
+ if nextbase then
+ local nextnext = nextbase and nextbase.next
+ if nextnext then
+ local nextchar = characters[nextnext]
+ if nextchar then
+ if trace_virtual then
+ logs.report("math extra","extra U+%04X in %s at %s maps on U+%04X (class: %s, name: %s)",unicode,file.basename(tfmdata.fullname),tfmdata.size,nextslot,extradesc.mathclass or "?",extradesc.mathname or "?")
+ end
+ characters[unicode] = nextchar
+ break
+ end
+ end
+ end
+ end
+ if not characters[unicode] then
+ for i=1,#nextinsize do
+ local nextbase = characters[nextinsize[i]]
+ if nextbase then
+ characters[unicode] = nextchar
+ break
+ end
+ end
+ end
+ end
+ end
+ else
+ -- let's not waste time on non-math
+ end
+end
+
+table.insert(fonts.tfm.mathactions,mathematics.extras.copy)
+
+-- 0xFE302 -- 0xFE320 for accents
+
+mathematics.extras.add(0xFE302, {
+ category="mn",
+ description="WIDE MATHEMATICAL HAT",
+ direction="nsm",
+ linebreak="cm",
+ mathclass="accent",
+ mathname="widehat",
+ mathstretch="h",
+ unicodeslot=0xFE302,
+ nextinsize={ 0x00302, 0x0005E },
+} )
+
+mathematics.extras.add(0xFE303, {
+ category="mn",
+ cjkwd="a",
+ description="WIDE MATHEMATICAL TILDE",
+ direction="nsm",
+ linebreak="cm",
+ mathclass="accent",
+ mathname="widetilde",
+ mathstretch="h",
+ unicodeslot=0xFE303,
+ nextinsize={ 0x00303, 0x0007E },
+} )
+
+-- 0xFE321 -- 0xFE340 for missing characters
+
+-- mathematics.extras.add(0xFE321, {
+-- category="sm",
+-- description="SHORT BAR",
+-- -- direction="on",
+-- -- linebreak="nu",
+-- mathclass="relation",
+-- mathname="mapstochar",
+-- unicodeslot=0xFE321,
+-- } )
+
+
+
+
+
+--~ mathematics.extras.add(0xFE304, {
+--~ category="sm",
+--~ description="TOP AND BOTTOM PARENTHESES",
+--~ direction="on",
+--~ linebreak="al",
+--~ mathclass="doubleaccent",
+--~ mathname="doubleparent",
+--~ unicodeslot=0xFE304,
+--~ accents={ 0x023DC, 0x023DD },
+--~ } )
+
+--~ mathematics.extras.add(0xFE305, {
+--~ category="sm",
+--~ description="TOP AND BOTTOM BRACES",
+--~ direction="on",
+--~ linebreak="al",
+--~ mathclass="doubleaccent",
+--~ mathname="doublebrace",
+--~ unicodeslot=0xFE305,
+--~ accents={ 0x023DE, 0x023DF },
+--~ } )
+
+--~ \Umathchardef\braceld="0 "1 "FF07A
+--~ \Umathchardef\bracerd="0 "1 "FF07B
+--~ \Umathchardef\bracelu="0 "1 "FF07C
+--~ \Umathchardef\braceru="0 "1 "FF07D
+
diff --git a/Master/texmf-dist/tex/context/base/math-for.mkiv b/Master/texmf-dist/tex/context/base/math-for.mkiv
new file mode 100644
index 00000000000..87aeaa4e05f
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/math-for.mkiv
@@ -0,0 +1,73 @@
+%D \module
+%D [ file=strc-mat,
+%D version=2008.10.20,
+%D title=\CONTEXT\ Structure Macros,
+%D subtitle=Math Numbering,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA-ADE / Hans Hagen]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Structure Macros / Math Formulas}
+
+%D This module only provides the code for defining formulas and
+%D fetching parameters. The action takes place later.
+
+\unprotect
+
+\let\currentformula\s!unknown
+
+\def\formulaparameter #1{\csname\doformulaparameter{\??fm\currentformula}#1\endcsname}
+\def\formulaparameterhash#1{\doformulaparameterhash {\??fm\currentformula}#1}
+
+\def\doformulaparameter #1#2{\ifcsname#1#2\endcsname#1#2\else\expandafter\doformulaparentparameter \csname#1\s!parent\endcsname#2\fi}
+\def\doformulaparameterhash#1#2{\ifcsname#1#2\endcsname #1\else\expandafter\doformulaparentparameterhash\csname#1\s!parent\endcsname#2\fi}
+
+\def\detokenizedformulaparameter#1{\detokenize\expandafter\expandafter\expandafter{\csname\??fm\currentformula#1\endcsname}}
+
+\def\doformulaparentparameter #1#2{\ifx#1\relax\s!empty\else\doformulaparameter #1#2\fi}
+\def\doformulaparentparameterhash#1#2{\ifx#1\relax \else\doformulaparameterhash#1#2\fi}
+
+\def\dosetformulaattributes#1#2% style color
+ {\edef\fontattributehash {\formulaparameterhash#1}%
+ \edef\colorattributehash{\formulaparameterhash#2}%
+ \ifx\fontattributehash \empty\else\dosetfontattribute \fontattributehash #1\fi
+ \ifx\colorattributehash\empty\else\dosetcolorattribute\colorattributehash#2\fi}
+
+%D \macros
+%D {setupformulas}
+
+\newtoks \everysetupformulas
+
+\def\setupformulas
+ {\dodoubleempty\dosetupformulas}
+
+\def\dosetupformulas[#1][#2]%
+ {\ifsecondargument
+ \getparameters[\??fm#1][#2]%
+ \else
+ \getparameters[\??fm][#1]%
+ \fi
+ \the\everysetupformulas}
+
+%D Not yet cleanup up:
+
+%D \macros
+%D {setuptextformulas}
+%D
+%D This command sets up in||line math. Most features deals
+%D with grid snapping and are experimental.
+
+\newtoks \everysetuptextformulas
+
+\def\setuptextformulas
+ {\dosingleempty\dosetuptextformulas}
+
+\def\dosetuptextformulas[#1]%
+ {\getparameters[\??mt][#1]%
+ \the\everysetuptextformulas}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/math-fou.tex b/Master/texmf-dist/tex/context/base/math-fou.mkii
index 8a72f128847..8a72f128847 100644
--- a/Master/texmf-dist/tex/context/base/math-fou.tex
+++ b/Master/texmf-dist/tex/context/base/math-fou.mkii
diff --git a/Master/texmf-dist/tex/context/base/math-frc.mkii b/Master/texmf-dist/tex/context/base/math-frc.mkii
new file mode 100644
index 00000000000..fa319bc4ad4
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/math-frc.mkii
@@ -0,0 +1,66 @@
+%D \module
+%D [ file=math-frc,
+%D version=2007.07.19,
+%D title=\CONTEXT\ Math Macros,
+%D subtitle=Fractions,
+%D author={Hans Hagen \& Taco Hoekwater \& Aditya Mahajan},
+%D date=\currentdate,
+%D copyright=\PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Math Macros / Fractions}
+
+\unprotect
+
+\def\exmthfont#1{\symbolicsizedfont#1\plusone{MathExtension}}
+
+\def\domthfrac#1#2#3#4#5#6#7%
+ {\begingroup
+ \mathsurround\zeropoint
+ \setbox0\hbox{$#1 #6$}%
+ \setbox2\hbox{$#1 #7$}%
+ \dimen0\wd0
+ \ifdim\wd2>\dimen0 \dimen0\wd2 \fi
+ \setbox4\hbox to \dimen0{\exmthfont#2#3\leaders\hbox{#4}\hss#5}%
+ \mathord{\vcenter{{\offinterlineskip
+ \hbox to \dimen0{\hss\box0\hss}%
+ \kern \ht4%
+ \hbox to \dimen0{\hss\copy4\hss}%
+ \kern \ht4%
+ \hbox to \dimen0{\hss\box2\hss}}}}%
+ \endgroup}
+
+\def\domthsqrt#1#2#3#4#5%
+ {\begingroup
+ \mathsurround\zeropoint
+ \setbox0\hbox{$#1 #5$}%
+ \dimen0=1.05\ht0 \advance\dimen0 1pt \ht0 \dimen0
+ \dimen0=1.05\dp0 \advance\dimen0 1pt \dp0 \dimen0
+ \dimen0\wd0
+ \setbox4\hbox to \dimen0{\exmthfont#2\leaders\hbox{#3}\hfill#4}%
+ \delimitershortfall=0pt
+ \nulldelimiterspace=0pt
+ \setbox2\hbox{$\left\delimiter"0270370 \vrule height\ht0 depth \dp0 width0pt
+ \right.$}%
+ \mathord{\vcenter{\hbox{\copy2
+ \rlap{\raise\dimexpr\ht2-\ht4\relax\copy4}\copy0}}}%
+ \endgroup}
+
+\def\mthfrac#1#2#3#4#5{\mathchoice
+ {\domthfrac\displaystyle \textface {#1}{#2}{#3}{#4}{#5}}
+ {\domthfrac\textstyle \textface {#1}{#2}{#3}{#4}{#5}}
+ {\domthfrac\scriptstyle \scriptface {#1}{#2}{#3}{#4}{#5}}
+ {\domthfrac\scriptscriptstyle\scriptscriptface{#1}{#2}{#3}{#4}{#5}}}
+
+\def\mthsqrt#1#2#3{\mathchoice
+ {\domthsqrt\displaystyle \textface {#1}{#2}{#3}}
+ {\domthsqrt\textstyle \textface {#1}{#2}{#3}}
+ {\domthsqrt\scriptstyle \textface {#1}{#2}{#3}}
+ {\domthsqrt\scriptscriptstyle\textface {#1}{#2}{#3}}}
+
+% temp here
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/math-frc.mkiv b/Master/texmf-dist/tex/context/base/math-frc.mkiv
new file mode 100644
index 00000000000..2305cec3095
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/math-frc.mkiv
@@ -0,0 +1,209 @@
+%D \module
+%D [ file=math-frc,
+%D version=2007.07.19,
+%D title=\CONTEXT\ Math Macros,
+%D subtitle=Fractions,
+%D author={Hans Hagen \& Taco Hoekwater},
+%D date=\currentdate,
+%D copyright=\PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Math Macros / Fractions}
+
+\unprotect
+
+%D \macros
+%D {frac, xfrac, xxfrac}
+%D
+%D This is another one Tobias asked for. It replaces the
+%D primitive \type {\over}. We also take the opportunity to
+%D handle math style restoring, which makes sure units and
+%D chemicals come out ok.
+%D The \type {\frac} macro kind of replaces the awkward \type
+%D {\over} primitive. Say that we have the following formulas:
+%D
+%D \startbuffer[sample]
+%D test $\frac {1}{2}$ test $$1 + \frac {1}{2} = 1.5$$
+%D test $\xfrac {1}{2}$ test $$1 + \xfrac {1}{2} = 1.5$$
+%D test $\xxfrac{1}{2}$ test $$1 + \xxfrac{1}{2} = 1.5$$
+%D \stopbuffer
+%D
+%D \typebuffer[sample]
+%D
+%D With the most straightforward definitions, we get:
+%D
+%D \startbuffer[code]
+%D \def\dofrac#1#2#3{\relax\mathematics{{{#1{#2}}\over{#1{#3}}}}}
+%D
+%D \def\frac {\dofrac\mathstyle}
+%D \def\xfrac {\dofrac\scriptstyle}
+%D \def\xxfrac{\dofrac\scriptscriptstyle}
+%D \stopbuffer
+%D
+%D \typebuffer[code] \getbuffer[code,sample]
+%D
+%D Since this does not work well, we can try:
+%D
+%D \startbuffer[code]
+%D \def\xfrac #1#2{\hbox{$\dofrac\scriptstyle {#1}{#2}$}}
+%D \def\xxfrac#1#2{\hbox{$\dofrac\scriptscriptstyle{#1}{#2}$}}
+%D \stopbuffer
+%D
+%D \typebuffer[code] \getbuffer[code,sample]
+%D
+%D This for sure looks better than:
+%D
+%D \startbuffer[code]
+%D \def\xfrac #1#2{{\scriptstyle \dofrac\relax{#1}{#2}}}
+%D \def\xxfrac#1#2{{\scriptscriptstyle\dofrac\relax{#1}{#2}}}
+%D \stopbuffer
+%D
+%D \typebuffer[code] \getbuffer[code,sample]
+%D
+%D So we stick to the next definitions (watch the local
+%D overloading of \type {\xfrac}).
+
+% \def\dofrac#1#2#3{\relax\mathematics{{{#1{#2}}\over{#1{#3}}}}}
+
+\def\dofrac#1#2#3{\relax\mathematics{\Ustack{{#1{#2}}\normalover{#1{#3}}}}}
+\def\nofrac #1#2{\relax\mathematics{\Ustack{{#1}\normalover{#2}}}}
+
+% \chardef\mathfracmode=0 $\frac{1}{2}$
+% \chardef\mathfracmode=1 $\frac{1}{2}$
+% \chardef\mathfracmode=2 $\frac{1}{2}$
+% \chardef\mathfracmode=3 $\frac{1}{2}$
+% \chardef\mathfracmode=4 $\frac{1}{2}$
+% \chardef\mathfracmode=5 $\frac{1}{2}$
+
+\chardef\mathfracmode=0 % 0=auto, 1=displaystyle, 2=textstyle, 3=scriptstyle, 4=scriptscriptstyle, 5=mathstyle
+
+\unexpanded\def\frac
+ {\ifcase\mathfracmode
+ \expandafter\nofrac
+ \or
+ \expandafter\dofrac\expandafter\displaystyle
+ \or
+ \expandafter\dofrac\expandafter\textstyle
+ \or
+ \expandafter\dofrac\expandafter\scriptstyle
+ \or
+ \expandafter\dofrac\expandafter\scriptscriptstyle
+ \else
+ \expandafter\dofrac\expandafter\mathstyle
+ \fi}
+
+\unexpanded\def\xfrac#1#2%
+ {\begingroup
+ \let\xfrac\xxfrac
+ \dofrac\scriptstyle{#1}{#2}%
+ \endgroup}
+
+\unexpanded\def\xxfrac#1#2%
+ {\begingroup
+ \dofrac\scriptscriptstyle{#1}{#2}%
+ \endgroup}
+
+%D The \type {xx} variant looks still ugly, so maybe it's
+%D best to say:
+
+\unexpanded\def\xxfrac#1#2%
+ {\begingroup
+ \dofrac\scriptscriptstyle{#1}{\raise.25ex\hbox{$\scriptscriptstyle#2$}}%
+ \endgroup}
+
+%D Something low level for scientific calculator notation:
+
+\unexpanded\def\scinot#1#2%
+ {#1\times10^{#2}}
+
+%D The next macro, \type {\ch}, is \PPCHTEX\ aware. In
+%D formulas one can therefore best use \type {\ch} instead of
+%D \type {\chemical}, especially in fractions.
+
+% let's see who complains ... \mathstyle is now a primitive
+%
+% \unexpanded\def\ch#1%
+% {\ifdefined\@@chemicalletter
+% \dosetsubscripts
+% \mathstyle{\@@chemicalletter{#1}}%
+% \doresetsubscripts
+% \else
+% \mathstyle{\rm#1}%
+% \fi}
+
+% \unexpanded\def\ch#1%
+% {\ifdefined\@@chemicalletter
+% \dosetsubscripts
+% \mathematics{\@@chemicalletter{#1}}%
+% \doresetsubscripts
+% \else
+% \mathematics{\rm#1}%
+% \fi}
+
+%D \macros
+%D {/}
+%D
+%D Just to be sure, we restore the behavior of some typical
+%D math characters.
+
+\bgroup
+
+\catcode`\/=\@@other \global \let\normalforwardslash/
+\catcode`\/=\@@active \doglobal\appendtoks\let/\normalforwardslash\to\everymathematics
+
+\egroup
+
+% to be checked:
+
+\def\exmthfont#1{\symbolicsizedfont#1\plusone{MathExtension}}
+
+\def\domthfrac#1#2#3#4#5#6#7%
+ {\begingroup
+ \mathsurround\zeropoint
+ \setbox0\hbox{$#1 #6$}%
+ \setbox2\hbox{$#1 #7$}%
+ \dimen0\wd0
+ \ifdim\wd2>\dimen0 \dimen0\wd2 \fi
+ \setbox4\hbox to \dimen0{\exmthfont#2#3\leaders\hbox{#4}\hss#5}%
+ \mathord{\vcenter{{\offinterlineskip
+ \hbox to \dimen0{\hss\box0\hss}%
+ \kern \ht4%
+ \hbox to \dimen0{\hss\copy4\hss}%
+ \kern \ht4%
+ \hbox to \dimen0{\hss\box2\hss}}}}%
+ \endgroup}
+
+\def\domthsqrt#1#2#3#4#5%
+ {\begingroup
+ \mathsurround\zeropoint
+ \setbox0\hbox{$#1 #5$}%
+ \dimen0=1.05\ht0 \advance\dimen0 1pt \ht0 \dimen0
+ \dimen0=1.05\dp0 \advance\dimen0 1pt \dp0 \dimen0
+ \dimen0\wd0
+ \setbox4\hbox to \dimen0{\exmthfont#2\leaders\hbox{#3}\hfill#4}%
+ \delimitershortfall=0pt
+ \nulldelimiterspace=0pt
+ \setbox2\hbox{$\left\delimiter"0270370 \vrule height\ht0 depth \dp0 width0pt
+ \right.$}%
+ \mathord{\vcenter{\hbox{\copy2
+ \rlap{\raise\dimexpr\ht2-\ht4\relax\copy4}\copy0}}}%
+ \endgroup}
+
+\def\mthfrac#1#2#3#4#5{\mathchoice
+ {\domthfrac\displaystyle \textface {#1}{#2}{#3}{#4}{#5}}
+ {\domthfrac\textstyle \textface {#1}{#2}{#3}{#4}{#5}}
+ {\domthfrac\scriptstyle \scriptface {#1}{#2}{#3}{#4}{#5}}
+ {\domthfrac\scriptscriptstyle\scriptscriptface{#1}{#2}{#3}{#4}{#5}}}
+
+\def\mthsqrt#1#2#3{\mathchoice
+ {\domthsqrt\displaystyle \textface {#1}{#2}{#3}}
+ {\domthsqrt\textstyle \textface {#1}{#2}{#3}}
+ {\domthsqrt\scriptstyle \textface {#1}{#2}{#3}}
+ {\domthsqrt\scriptscriptstyle\textface {#1}{#2}{#3}}}
+
+% temp here
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/math-ini.lua b/Master/texmf-dist/tex/context/base/math-ini.lua
index 6b2752cff60..5a688941013 100644
--- a/Master/texmf-dist/tex/context/base/math-ini.lua
+++ b/Master/texmf-dist/tex/context/base/math-ini.lua
@@ -1,4 +1,4 @@
-if not modules then modules = { } end modules ['math-ini'] = {
+if not modules then modules = { } end modules ['math-ext'] = {
version = 1.001,
comment = "companion to math-ini.tex",
author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
@@ -6,427 +6,315 @@ if not modules then modules = { } end modules ['math-ini'] = {
license = "see context related readme files"
}
---[[ldx--
-<p>Math definitions. This code may move.</p>
---ldx]]--
-
-- if needed we can use the info here to set up xetex definition files
-- the "8000 hackery influences direct characters (utf) as indirect \char's
-mathematics = mathematics or { }
-mathematics.data = mathematics.data or { }
-mathematics.slots = mathematics.slots or { }
+local utf = unicode.utf8
-mathematics.classes = {
- ord = 0, -- mathordcomm mathord
- op = 1, -- mathopcomm mathop
- bin = 2, -- mathbincomm mathbin
- rel = 3, -- mathrelcomm mathrel
- open = 4, -- mathopencomm mathopen
- close = 5, -- mathclosecomm mathclose
- punct = 6, -- mathpunctcomm mathpunct
- alpha = 7, -- mathalphacomm firstofoneargument
- accent = 8,
- radical = 9,
- inner = 0, -- mathinnercomm mathinner
- nothing = 0, -- mathnothingcomm firstofoneargument
- choice = 0, -- mathchoicecomm @@mathchoicecomm
- box = 0, -- mathboxcomm @@mathboxcomm
- limop = 1, -- mathlimopcomm @@mathlimopcomm
- nolop = 1, -- mathnolopcomm @@mathnolopcomm
-}
+local texsprint, format, utfchar, utfbyte = tex.sprint, string.format, utf.char, utf.byte
-mathematics.classes.alphabetic = mathematics.classes.alpha
-mathematics.classes.unknown = mathematics.classes.nothing
-mathematics.classes.punctuation = mathematics.classes.punct
-mathematics.classes.normal = mathematics.classes.nothing
-mathematics.classes.opening = mathematics.classes.open
-mathematics.classes.closing = mathematics.classes.close
-mathematics.classes.binary = mathematics.classes.bin
-mathematics.classes.relation = mathematics.classes.rel
-mathematics.classes.fence = mathematics.classes.unknown
-mathematics.classes.diacritic = mathematics.classes.accent
-mathematics.classes.large = mathematics.classes.op
-mathematics.classes.variable = mathematics.classes.alphabetic
-mathematics.classes.number = mathematics.classes.nothing
+local trace_defining = false trackers.register("math.defining", function(v) trace_defining = v end)
-mathematics.families = {
- mr = 0, bs = 8,
- mi = 1, bi = 9,
- sy = 2, sc = 10,
- ex = 3, tf = 11,
- it = 4, ma = 12,
- sl = 5, mb = 13,
- bf = 6, mc = 14,
- nn = 7, md = 15,
-}
+mathematics = mathematics or { }
-mathematics.families.letters = mathematics.families.mr
-mathematics.families.numbers = mathematics.families.mr
-mathematics.families.variables = mathematics.families.mi
-mathematics.families.operators = mathematics.families.sy
-mathematics.families.lcgreek = mathematics.families.mi
-mathematics.families.ucgreek = mathematics.families.mr
-mathematics.families.vargreek = mathematics.families.mi
-mathematics.families.mitfamily = mathematics.families.mi
-mathematics.families.calfamily = mathematics.families.sy
+mathematics.extrabase = 0xFE000 -- here we push some virtuals
+mathematics.privatebase = 0xFF000 -- here we push the ex
-mathematics.families[0] = mathematics.families.mr
-mathematics.families[1] = mathematics.families.mi
-mathematics.families[2] = mathematics.families.sy
-mathematics.families[3] = mathematics.families.ex
+local families = {
+ tf = 0, it = 1, sl = 2, bf = 3, bi = 4, bs = 5, -- virtual fonts or unicode otf
+}
-function mathematics.mathcode(target,class,family,slot)
- return ("\\omathcode%s=\"%X%02X%04X"):format(target,class,family,slot)
+local classes = {
+ ord = 0, -- mathordcomm mathord
+ op = 1, -- mathopcomm mathop
+ bin = 2, -- mathbincomm mathbin
+ rel = 3, -- mathrelcomm mathrel
+ open = 4, -- mathopencomm mathopen
+ close = 5, -- mathclosecomm mathclose
+ punct = 6, -- mathpunctcomm mathpunct
+ alpha = 7, -- mathalphacomm firstofoneargument
+ accent = 8, -- class 0
+ radical = 9,
+ xaccent = 10, -- class 3
+ topaccent = 11, -- class 0
+ botaccent = 12, -- class 0
+ under = 13,
+ over = 14,
+ delimiter = 15,
+ inner = 0, -- mathinnercomm mathinner
+ nothing = 0, -- mathnothingcomm firstofoneargument
+ choice = 0, -- mathchoicecomm @@mathchoicecomm
+ box = 0, -- mathboxcomm @@mathboxcomm
+ limop = 1, -- mathlimopcomm @@mathlimopcomm
+ nolop = 1, -- mathnolopcomm @@mathnolopcomm
+}
+
+mathematics.families = families
+mathematics.classes = classes
+
+classes.alphabetic = classes.alpha
+classes.unknown = classes.nothing
+classes.default = classes.nothing
+classes.punctuation = classes.punct
+classes.normal = classes.nothing
+classes.opening = classes.open
+classes.closing = classes.close
+classes.binary = classes.bin
+classes.relation = classes.rel
+classes.fence = classes.unknown
+classes.diacritic = classes.accent
+classes.large = classes.op
+classes.variable = classes.alphabetic
+classes.number = classes.alphabetic
+
+-- there will be proper functions soon (and we will move this code in-line)
+
+local function delcode(target,family,slot)
+ return format('\\Udelcode%s="%X "%X ',target,family,slot)
+end
+local function mathchar(class,family,slot)
+ return format('\\Umathchar "%X "%X "%X ',class,family,slot)
+end
+local function mathaccent(class,family,slot)
+ return format('\\Umathaccent "%X "%X "%X ',0,family,slot) -- no class
+end
+local function delimiter(class,family,slot)
+ return format('\\Udelimiter "%X "%X "%X ',class,family,slot)
end
-function mathematics.delcode(target,small_family,small_slot,large_family,large_slot)
- return ("\\odelcode%s=\"%02X%04X\"%02X%04X"):format(target,small_family,small_slot,large_family,large_slot)
+local function radical(family,slot)
+ return format('\\Uradical "%X "%X ',family,slot)
end
-function mathematics.radical(small_family,small_slot,large_family,large_slot)
- return ("\\radical%s=\"%02X%04X%\"02X%04X"):format(target,small_family,small_slot,large_family,large_slot)
+local function mathchardef(name,class,family,slot)
+ return format('\\Umathchardef\\%s "%X "%X "%X ',name,class,family,slot)
end
-function mathematics.mathchar(class,family,slot)
- return ("\\omathchar\"%X%02X%04X "):format(class,family,slot)
+local function mathcode(target,class,family,slot)
+ return format('\\Umathcode%s="%X "%X "%X ',target,class,family,slot)
end
-function mathematics.mathaccent(class,family,slot)
- return ("\\omathaccent\"%X%02X%04X "):format(class,family,slot)
+local function mathtopaccent(class,family,slot)
+ return format('\\Umathaccent "%X "%X "%X ',0,family,slot) -- no class
end
-function mathematics.delimiter(class,family,slot,largefamily,largeslot)
- return ("\\odelimiter\"%X%02X%04X\"%02X%04X "):format(class,family,slot,largefamily,largeslot)
+local function mathbotaccent(class,family,slot)
+ return format('\\Umathbotaccent "%X "%X "%X ',0,family,slot) -- no class
end
-function mathematics.mathchardef(name,class,family,slot) -- we can avoid this one
- return ("\\omathchardef\\%s\"%X%02X%04X"):format(name,class,family,slot)
+local function mathtopdelimiter(class,family,slot)
+ return format('\\Uoverdelimiter "%X "%X ',0,family,slot) -- no class
+end
+local function mathbotdelimiter(class,family,slot)
+ return format('\\Uunderdelimiter "%X "%X ',0,family,slot) -- no class
end
-function mathematics.setmathsymbol(name,class,family,slot,largefamily,largeslot,unicode)
- class = mathematics.classes[class] or class -- no real checks needed
- family = mathematics.families[family] or family
- -- \unexpanded ? \relax needed for the codes?
- local classes = mathematics.classes
- if largefamily and largeslot then
- largefamily = mathematics.families[largefamily] or largefamily
- if class == classes.radical then
- tex.sprint(("\\unexpanded\\xdef\\%s{%s }"):format(name,mathematics.radical(class,family,slot,largefamily,largeslot)))
- elseif class == classes.open or class == classes.close then
- tex.sprint(("\\unexpanded\\xdef\\%s{%s}"):format(name,mathematics.delimiter(class,family,slot,largefamily,largeslot)))
- end
- elseif class == classes.accent then
- tex.sprint(("\\unexpanded\\xdef\\%s{%s }"):format(name,mathematics.mathaccent(class,family,slot)))
- elseif unicode then
- -- beware, open/close and other specials should not end up here
- local ch = utf.char(unicode)
- if characters.filters.utf.private.escapes[ch] then
- tex.sprint(("\\xdef\\%s{\\char%s }"):format(name,unicode))
- else
- tex.sprint(("\\xdef\\%s{%s}"):format(name,ch))
- end
+local escapes = characters.filters.utf.private.escapes
+
+local function setmathsymbol(name,class,family,slot)
+ if class == classes.accent then
+ texsprint(format("\\unexpanded\\xdef\\%s{%s}",name,mathaccent(class,family,slot)))
+ elseif class == classes.topaccent then
+ texsprint(format("\\unexpanded\\xdef\\%s{%s}",name,mathtopaccent(class,family,slot)))
+ elseif class == classes.botaccent then
+ texsprint(format("\\unexpanded\\xdef\\%s{%s}",name,mathbotaccent(class,family,slot)))
+ elseif class == classes.over then
+ texsprint(format("\\unexpanded\\xdef\\%s{%s}",name,mathtopdelimiter(class,family,slot)))
+ elseif class == classes.under then
+ texsprint(format("\\unexpanded\\xdef\\%s{%s}",name,mathbotdelimiter(class,family,slot)))
+ elseif class == classes.open or class == classes.close then
+ texsprint(delcode(slot,family,slot))
+ texsprint(format("\\unexpanded\\xdef\\%s{%s}",name,delimiter(class,family,slot)))
+ elseif class == classes.delimiter then
+ texsprint(delcode(slot,family,slot))
+ texsprint(format("\\unexpanded\\xdef\\%s{%s}",name,delimiter(0,family,slot)))
+ elseif class == classes.radical then
+ texsprint(format("\\unexpanded\\xdef\\%s{%s}",name,radical(family,slot)))
else
- tex.sprint(mathematics.mathchardef(name,class,family,slot))
+ -- beware, open/close and other specials should not end up here
+--~ local ch = utfchar(slot)
+--~ if escapes[ch] then
+--~ texsprint(format("\\xdef\\%s{\\char%s }",name,slot))
+--~ else
+ texsprint(format("\\unexpanded\\xdef\\%s{%s}",name,mathchar(class,family,slot)))
+--~ end
end
end
--- direct sub call
-
-function mathematics.setmathcharacter(target,class,family,slot,largefamily,largeslot)
- class = mathematics.classes[class] or class -- no real checks needed
- family = mathematics.families[family] or family
- if largefamily and largeslot then
- largefamily = mathematics.families[largefamily] or largefamily
- tex.sprint(mathematics.delcode(target,family,slot,largefamily,largeslot))
- else
- tex.sprint(mathematics.mathcode(target,class,family,slot))
+local function setmathcharacter(class,family,slot,unicode,firsttime)
+ if not firsttime and class <= 7 then
+ texsprint(mathcode(slot,class,family,unicode or slot))
end
end
--- definitions (todo: expand commands to utf instead of codes)
-
-mathematics.trace = false --
+local function setmathsynonym(class,family,slot,unicode,firsttime)
+ if not firsttime and class <= 7 then
+ texsprint(mathcode(slot,class,family,unicode))
+ end
+ if class == classes.open or class == classes.close then
+ texsprint(delcode(slot,family,unicode))
+ end
+end
-function mathematics.define()
- local slots = mathematics.slots.current
- local setmathcharacter = mathematics.setmathcharacter
- local setmathsymbol = mathematics.setmathsymbol
- local trace = mathematics.trace
- local function report(k,c,f,i,fe,ie)
- if fe then
- logs.report("mathematics",string.format("a - symbol 0x%05X -> %s -> %s %s (%s %s)",k,c,f,i,fe,ie))
- elseif c then
- logs.report("mathematics",string.format("b - symbol 0x%05X -> %s -> %s %s",k,c,f,i))
- else
- logs.report("mathematics",string.format("c - symbol 0x%05X -> %s %s",k,f,i))
- end
+local function report(class,family,unicode,name)
+ local nametype = type(name)
+ if nametype == "string" then
+ logs.report("mathematics","%s:%s %s U+%05X (%s) => %s",classname,class,family,unicode,utfchar(unicode),name)
+ elseif nametype == "number" then
+ logs.report("mathematics","%s:%s %s U+%05X (%s) => U+%05X",classname,class,family,unicode,utfchar(unicode),name)
+ else
+ logs.report("mathematics","%s:%s %s U+%05X (%s)", classname,class,family,unicode,utfchar(unicode))
end
- for k,v in pairs(characters.data) do
- local m = v.mathclass
- -- i need to clean this up a bit
- if m then
- local c = v.mathname
- if c == false then
- -- no command
- local s = slots[k]
- if s then
- local f, i, fe, ie = s[1], s[2], s[3], s[4]
- if trace then
- report(k,c,f,i,fe,ie)
- end
- setmathcharacter(k,m,f,i,fe,ie)
+end
+
+-- there will be a combined \(math)chardef
+
+function mathematics.define(slots,family)
+ family = family or 0
+ family = families[family] or family
+ local data = characters.data
+ for unicode, character in next, data do
+ local symbol = character.mathsymbol
+ if symbol then
+ local other = data[symbol]
+ local class = other.mathclass
+ if class then
+ class = classes[class] or class -- no real checks needed
+ if trace_defining then
+ report(class,family,unicode,symbol)
end
- elseif c then
- local s = slots[k]
- if s then
- local f, i, fe, ie = s[1], s[2], s[3], s[4]
- if trace then
- report(k,c,f,i,fe,ie)
+ setmathsynonym(class,family,unicode,symbol)
+ end
+ local spec = other.mathspec
+ if spec then
+ for i, m in next, spec do
+ local class = m.class
+ if class then
+ class = classes[class] or class -- no real checks needed
+ setmathsynonym(class,family,unicode,symbol,i)
end
- setmathsymbol(c,m,f,i,fe,ie,k)
- setmathcharacter(k,m,f,i,fe,ie)
end
- elseif v.contextname then
- local s = slots[k]
- local c = v.contextname
- if s then
- local f, i, fe, ie = s[1], s[2], s[3], s[4]
- if trace then
- report(k,c,f,i,fe,ie)
+ end
+ end
+ local mathclass = character.mathclass
+ local mathspec = character.mathspec
+ if mathspec then
+ for i, m in next, mathspec do
+ local name = m.name
+ local class = m.class
+ if not class then
+ class = mathclass
+ elseif not mathclass then
+ mathclass = class
+ end
+ if class then
+ class = classes[class] or class -- no real checks needed
+ if name then
+ if trace_defining then
+ report(class,family,unicode,name)
+ end
+ setmathsymbol(name,class,family,unicode)
+ -- setmathcharacter(class,family,unicode,unicode,i)
+ else
+ name = class == classes.variable or class == classes.number and character.adobename
+ if name then
+ if trace_defining then
+ report(class,family,unicode,name)
+ end
+ -- setmathcharacter(class,family,unicode,unicode,i)
+ end
end
- -- todo: mathortext
- -- setmathsymbol(c,m,f,i,fe,ie,k)
- setmathcharacter(k,m,f,i,fe,ie)
+ setmathcharacter(class,family,unicode,unicode,i)
end
+ end
+ end
+ if mathclass then
+ local name = character.mathname
+ local class = classes[mathclass] or mathclass -- no real checks needed
+ if name == false then
+ if trace_defining then
+ report(class,family,unicode,name)
+ end
+ setmathcharacter(class,family,unicode)
else
- local a = v.adobename
- if a and m then
- local s, f, i, fe, ie = slots[k], nil, nil, nil, nil
- if s then
- f, i, fe, ie = s[1], s[2], s[3], s[4]
- elseif m == "variable" then
- f, i = mathematics.families.variables, k
- elseif m == "number" then
- f, i = mathematics.families.numbers, k
+ name = name or character.contextname
+ if name then
+ if trace_defining then
+ report(class,family,unicode,name)
end
- if trace then
- report(k,a,f,i,fe,ie)
+ setmathsymbol(name,class,family,unicode)
+ else
+ if trace_defining then
+ report(class,family,unicode,character.adobename)
end
- setmathcharacter(k,m,f,i,fe,ie)
end
+ setmathcharacter(class,family,unicode,unicode)
end
end
end
end
--- temporary here: will become separate
-
--- maybe we should define a nice virtual font so that we have
--- just the base n families repeated for diferent styles
+-- needed for mathml analysis
-mathematics.slots.traditional = {
-
- [0x03B1] = { "lcgreek", 0x0B }, -- alpha
- [0x03B2] = { "lcgreek", 0x0C }, -- beta
- [0x03B3] = { "lcgreek", 0x0D }, -- gamma
- [0x03B4] = { "lcgreek", 0x0E }, -- delta
- [0x03B5] = { "lcgreek", 0x0F }, -- epsilon
- [0x03B6] = { "lcgreek", 0x10 }, -- zeta
- [0x03B7] = { "lcgreek", 0x11 }, -- eta
- [0x03B8] = { "lcgreek", 0x12 }, -- theta
- [0x03B9] = { "lcgreek", 0x13 }, -- iota
- [0x03BA] = { "lcgreek", 0x14 }, -- kappa
- [0x03BB] = { "lcgreek", 0x15 }, -- lambda
- [0x03BC] = { "lcgreek", 0x16 }, -- mu
- [0x03BD] = { "lcgreek", 0x17 }, -- nu
- [0x03BE] = { "lcgreek", 0x18 }, -- xi
- [0x03BF] = { "lcgreek", 0x6F }, -- omicron
- [0x03C0] = { "lcgreek", 0x19 }, -- po
- [0x03C1] = { "lcgreek", 0x1A }, -- rho
--- [0x03C2] = { "lcgreek", 0x00 }, -- varsigma
- [0x03C3] = { "lcgreek", 0x1B }, -- sigma
- [0x03C4] = { "lcgreek", 0x1C }, -- tau
- [0x03C5] = { "lcgreek", 0x1D }, -- upsilon
--- [0x03C6] = { "lcgreek", 0x1E }, -- varphi
- [0x03C7] = { "lcgreek", 0x1F }, -- chi
- [0x03C8] = { "lcgreek", 0x20 }, -- psi
- [0x03C9] = { "lcgreek", 0x21 }, -- omega
-
- [0x0391] = { "ucgreek", 0x41 }, -- Alpha
- [0x0392] = { "ucgreek", 0x42 }, -- Beta
- [0x0393] = { "ucgreek", 0x00 }, -- Gamma
- [0x0394] = { "ucgreek", 0x01 }, -- Delta
- [0x0395] = { "ucgreek", 0x45 }, -- Epsilon
- [0x0396] = { "ucgreek", 0x5A }, -- Zeta
- [0x0397] = { "ucgreek", 0x48 }, -- Eta
- [0x0398] = { "ucgreek", 0x02 }, -- Theta
- [0x0399] = { "ucgreek", 0x49 }, -- Iota
- [0x039A] = { "ucgreek", 0x4B }, -- Kappa
- [0x039B] = { "ucgreek", 0x03 }, -- Lambda
- [0x039C] = { "ucgreek", 0x4D }, -- Mu
- [0x039D] = { "ucgreek", 0x4E }, -- Nu
- [0x039E] = { "ucgreek", 0x04 }, -- Xi
- [0x039F] = { "ucgreek", 0x4F }, -- Omicron
- [0x03A0] = { "ucgreek", 0x05 }, -- Pi
- [0x03A1] = { "ucgreek", 0x52 }, -- Rho
- [0x03A3] = { "ucgreek", 0x06 }, -- Sigma
- [0x03A4] = { "ucgreek", 0x54 }, -- Tau
- [0x03A5] = { "ucgreek", 0x07 }, -- Upsilon
- [0x03A6] = { "ucgreek", 0x08 }, -- Phi
- [0x03A7] = { "ucgreek", 0x58 }, -- Chi
- [0x03A8] = { "ucgreek", 0x09 }, -- Psi
- [0x03A9] = { "ucgreek", 0x0A }, -- Omega
-
- [0x03F5] = { "vargreek", 0x22 }, -- varepsilon
- [0x03D1] = { "vargreek", 0x23 }, -- vartheta
- [0x03D6] = { "vargreek", 0x24 }, -- varpi
- [0x03F1] = { "vargreek", 0x25 }, -- varrho
- [0x03C2] = { "vargreek", 0x26 }, -- varsigma
-
- -- varphi is part of the alphabet, contrary to the other var*s'
-
- [0x03C6] = { "vargreek", 0x27 }, -- varphi
- [0x03D5] = { "lcgreek", 0x1E }, -- phi
-
- [0x03F0] = { "lcgreek", 0x14 }, -- varkappa, not in tex fonts
-
- [0x0021] = { "mr", 0x21 }, -- !
- [0x0028] = { "mr", 0x28 }, -- (
- [0x0029] = { "mr", 0x29 }, -- )
- [0x002A] = { "sy", 0x03 }, -- *
- [0x002B] = { "mr", 0x2B }, -- +
- [0x002C] = { "mi", 0x3B }, -- ,
- [0x002D] = { "sy", 0x00 }, -- -
- [0x2212] = { "sy", 0x00 }, -- -
- [0x002E] = { "mi", 0x3A }, -- .
- [0x002F] = { "mi", 0x3D }, -- /
- [0x003A] = { "mr", 0x3A }, -- :
- [0x003B] = { "mr", 0x3B }, -- ;
- [0x003C] = { "mi", 0x3C }, -- <
- [0x003D] = { "mr", 0x3D }, -- =
- [0x003E] = { "mi", 0x3E }, -- >
- [0x003F] = { "mr", 0x3F }, -- ?
- [0x005C] = { "sy", 0x6E }, -- \
- [0x007B] = { "sy", 0x66 }, -- {
- [0x007C] = { "sy", 0x6A }, -- |
- [0x007D] = { "sy", 0x67 }, -- }
- [0x00B1] = { "sy", 0x06 }, -- pm
- [0x00B7] = { "sy", 0x01 }, -- cdot
- [0x00D7] = { "sy", 0x02 }, -- times
- [0x2022] = { "sy", 0x0F }, -- bullet
- [0x2111] = { "sy", 0x3D }, -- Im
- [0x2118] = { "mi", 0x7D }, -- wp
- [0x211C] = { "sy", 0x3C }, -- Re
- [0x2190] = { "sy", 0x20 }, -- leftarrow
- [0x2191] = { "sy", 0x22, "ex", 0x78 }, -- uparrow
- [0x2192] = { "sy", 0x21 }, -- rightarrow
- [0x2193] = { "sy", 0x23, "ex", 0x79 }, -- downarrow
- [0x2194] = { "sy", 0x24 }, -- leftrightarrow
- [0x2195] = { "sy", 0x6C, "ex", 0x3F }, -- updownarrow
- [0x2196] = { "sy", 0x2D }, -- nwarrow
- [0x2197] = { "sy", 0x25 }, -- nearrow
- [0x2198] = { "sy", 0x2E }, -- swarrow
- [0x2199] = { "sy", 0x26 }, -- searrow
- [0x21D0] = { "sy", 0x28 }, -- Leftarrow
- [0x21D1] = { "sy", 0x6C, "ex", 0x7E }, -- Uparrow
- [0x21D2] = { "sy", 0x29 }, -- Rightarrow
- [0x21D3] = { "sy", 0x2B, "ex", 0x7F }, -- Downarrow
- [0x21D4] = { "sy", 0x2C }, -- Leftrightarrow
- [0x21D5] = { "sy", 0x6D, "ex", 0x77 }, -- Updownarrow
- [0x2135] = { "sy", 0x40 }, -- aleph
- [0x2113] = { "mi", 0x60 }, -- ell
--- ...
- [0x2200] = { "sy", 0x38 }, -- forall
--- [0x2201] = { "sy", 0x00 }, -- complement
- [0x2202] = { "mi", 0x40 }, -- partial
- [0x2203] = { "sy", 0x39 }, -- exists
--- [0x2204] = { "sy", 0x00 }, -- not exists
- [0x2205] = { "sy", 0x3B }, -- empty set
--- [0x2206] = { "sy", 0x00 }, -- increment
- [0x2207] = { "sy", 0x72 }, -- nabla
- [0x2208] = { "sy", 0x32 }, -- in
- [0x2209] = { "sy", 0x33 }, -- ni
- [0x220F] = { "ex", 0x51 }, -- prod
- [0x2210] = { "ex", 0x60 }, -- coprod
- [0x2211] = { "ex", 0x50 }, -- sum
--- [0x2212] = { "sy", 0x00 }, -- -
- [0x2213] = { "sy", 0x07 }, -- mp
- [0x2215] = { "sy", 0x3D }, -- / AM: Not sure
- [0x2216] = { "sy", 0x6E }, -- setminus
- [0x2217] = { "sy", 0x03 }, -- *
- [0x2218] = { "sy", 0x0E }, -- circ
- [0x2219] = { "sy", 0x0F }, -- bullet
--- [0x221A] = { "sy", 0x70, "ex", 0x70 }, -- sqrt. AM: Check surd??
--- ...
- [0x221D] = { "sy", 0x2F }, -- propto
- [0x221E] = { "sy", 0x31 }, -- infty
- [0x2225] = { "sy", 0x6B }, -- parallel
- [0x2227] = { "sy", 0x5E }, -- wedge
- [0x2228] = { "sy", 0x5F }, -- vee
- [0x2229] = { "sy", 0x5C }, -- cap
- [0x222A] = { "sy", 0x5B }, -- cup
- [0x222B] = { "ex", 0x52 }, -- intop
--- ... other integrals
- [0x2236] = { "mr", 0x3A }, -- colon
- [0x223C] = { "sy", 0x18 }, -- sim
- [0x2243] = { "sy", 0x27 }, -- simeq
- [0x2248] = { "sy", 0x19 }, -- approx
- [0x2261] = { "sy", 0x11 }, -- equiv
- [0x2264] = { "sy", 0x14 }, -- leq
- [0x2265] = { "sy", 0x15 }, -- geq
- [0x226A] = { "sy", 0x1C }, -- ll
- [0x226B] = { "sy", 0x1D }, -- gg
- [0x227A] = { "sy", 0x1E }, -- prec
- [0x227B] = { "sy", 0x1F }, -- succ
--- [0x227C] = { "sy", 0x16 }, -- preceq, AM:No see 2AAF
--- [0x227D] = { "sy", 0x17 }, -- succeq, AM:No see 2AB0
- [0x2282] = { "sy", 0x1A }, -- subset
- [0x2283] = { "sy", 0x1B }, -- supset
- [0x2286] = { "sy", 0x12 }, -- subseteq
- [0x2287] = { "sy", 0x13 }, -- supseteq
- [0x2293] = { "sy", 0x75 }, -- sqcap
- [0x2294] = { "sy", 0x74 }, -- sqcup
- [0x2295] = { "sy", 0x08 }, -- oplus
- [0x2296] = { "sy", 0x09 }, -- ominus
- [0x2297] = { "sy", 0x0A }, -- otimes
- [0x2298] = { "sy", 0x0B }, -- oslash
- [0x2299] = { "sy", 0x0C }, -- odot
- [0x22A4] = { "sy", 0x3E }, -- top
- [0x22A5] = { "sy", 0x3F }, -- bop
- [0x22C0] = { "ex", 0x56 }, -- bigwedge
- [0x22C1] = { "ex", 0x57 }, -- bigvee
- [0x22C2] = { "ex", 0x54 }, -- bigcap
- [0x22C3] = { "ex", 0x53 }, -- bigcup
- [0x22C4] = { "sy", 0x05 }, -- diamond
- [0x22C5] = { "sy", 0x01 }, -- cdot
- [0x22C6] = { "sy", 0x3F }, -- star
- [0x25B3] = { "sy", 0x34 }, -- triangle up
-
- [0x1D6A4] = { "mi", 0x7B }, -- imath
- [0x1D6A5] = { "mi", 0x7C }, -- jmath
+function mathematics.utfmathclass(chr, default)
+ local cd = characters.data[utfbyte(chr)]
+ return (cd and cd.mathclass) or default or "unknown"
+end
+function mathematics.utfmathstretch(chr, default) -- "h", "v", "b", ""
+ local cd = characters.data[utfbyte(chr)]
+ return (cd and cd.mathstretch) or default or ""
+end
+function mathematics.utfmathcommand(chr, default)
+ local cd = characters.data[utfbyte(chr)]
+ local cmd = cd and cd.mathname
+ tex.sprint(cmd or default or "")
+end
+function mathematics.utfmathfiller(chr, default)
+ local cd = characters.data[utfbyte(chr)]
+ local cmd = cd and (cd.mathfiller or cd.mathname)
+ tex.sprint(cmd or default or "")
+end
- [0x0028] = { "mr", 0x28, "ex", 0x00 }, -- (
- [0x0029] = { "mr", 0x29, "ex", 0x01 }, -- )
- [0x002F] = { "mr", 0x2F, "ex", 0x0E }, -- /
- [0x003C] = { "sy", 0x3C, "ex", 0x0A }, -- <
- [0x003E] = { "sy", 0x3E, "ex", 0x0B }, -- >
- [0x005B] = { "mr", 0x5B, "ex", 0x02 }, -- [
- [0x005D] = { "mr", 0x5D, "ex", 0x03 }, -- ]
- [0x007C] = { "sy", 0x6A, "ex", 0x0C }, -- |
- [0x005C] = { "sy", 0x6E, "ex", 0x0F }, -- \
- [0x007B] = { "sy", 0x66, "ex", 0x08 }, -- {
- [0x007D] = { "sy", 0x67, "ex", 0x09 }, -- }
+mathematics.entities = mathematics.entities or { }
- [0x005E] = { "mr", 0x5E, "ex", 0x62 }, -- widehat
- [0x007E] = { "mr", 0x7E, "ex", 0x65 }, -- widetilde
+function mathematics.register_xml_entities()
+ local entities = xml.entities
+ for name, unicode in pairs(mathematics.entities) do
+ if not entities[name] then
+ entities[name] = utfchar(unicode)
+ end
+ end
+end
- [0x2AAF] = { "sy", 0x16 }, -- preceq
- [0x2AB0] = { "sy", 0x17 }, -- succeq
+-- helpers
-}
+function mathematics.big(tfmdata,unicode,n)
+ local t = tfmdata.characters
+ local c = t[unicode]
+ if c then
+ local next = c.next
+ while next do
+ if n <= 1 then
+ return next
+ else
+ n = n - 1
+ next = t[next].next
+ end
+ end
+ end
+ return unicode
+end
-mathematics.slots.current = mathematics.slots.traditional
+-- plugins
-function mathematics.utfmathclass(chr, default)
- local cd = characters.data[utf.byte(chr)]
- return (cd and cd.mathclass) or default or "unknown"
-end
-function mathematics.utfmathcommand(chr, default)
- local cd = characters.data[utf.byte(chr)]
- return (cd and cd.mathname) or default or "unknown"
+function mathematics.scaleparameters(t,tfmtable,delta)
+ local math_parameters = tfmtable.math_parameters
+ if math_parameters and next(math_parameters) then
+ delta = delta or 1
+ local _, mp = mathematics.dimensions(math_parameters)
+ for name, value in next, mp do
+ if name ~= "RadicalDegreeBottomRaisePercent" then
+ mp[name] = delta*value
+ else
+ mp[name] = value
+ end
+ end
+ t.MathConstants = mp
+ end
end
+
+table.insert(fonts.tfm.mathactions,mathematics.scaleparameters)
diff --git a/Master/texmf-dist/tex/context/base/math-ini.mkii b/Master/texmf-dist/tex/context/base/math-ini.mkii
index 6b0cd71d7dc..6713987f7f9 100644
--- a/Master/texmf-dist/tex/context/base/math-ini.mkii
+++ b/Master/texmf-dist/tex/context/base/math-ini.mkii
@@ -1,14 +1,681 @@
%D \module
%D [ file=math-ini,
-%D version=2008.01.02,
-%D title=\CONTEXT\ Lua Macros,
-%D subtitle=Math Initializations,
-%D author=Hans Hagen,
+%D version=2001.04.12,
+%D title=\CONTEXT\ Math Macros,
+%D subtitle=Initializations,
+%D author={Hans Hagen \& Taco Hoekwater},
%D date=\currentdate,
-%D copyright=PRAGMA]
+%D copyright=\PRAGMA]
%C
%C This module is part of the \CONTEXT\ macro||package and is
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\endinput
+\writestatus{loading}{ConTeXt Math Macros / Initializations}
+
+% todo: make all definitions global since file loaded only once
+
+%D This module provides namespaces for math fonts, thereby
+%D permitting mixed usage of math fonts. Although not strictly
+%D needed, we also provide a family name mapping mechanism as
+%D used in the (original) AMS math definition files, but here
+%D these names can recursively be remapped and if needed,
+%D dynamically be changed. We've tried to minimize the number
+%D of definition commands and use plain \TEX\ definitions as
+%D fallback. We've tried to follow a couple of conventions
+%D from plain and AMS math in order to achieve backward
+%D compatinility. We also kept an eye on future usage of these
+%D modules in the perspective of MathML and unicode fonts.
+
+\unprotect
+
+\def\@ml@{@ml@} % math list (used for collection)
+\def\@mf@{@mf@} % math family
+%def\@mh@{@mh@} % math handler (not used)
+\def\@mt@{@mt@} % math token
+\def\@mc@{@mc@} % math collection
+
+\def\@@mathlimopcomm#1{\mathop{#1}} %no \limits
+\def\@@mathnolopcomm#1{\mathop{#1}\nolimits}
+\def\@@mathboxcomm #1{\dontleavehmode\hbox{$\mathsurround\zeropoint#1$}}
+
+\chardef\mathordcode = 0 \let\mathordcomm \mathord
+\chardef\mathopcode = 1 \let\mathopcomm \mathop
+\chardef\mathbincode = 2 \let\mathbincomm \mathbin
+\chardef\mathrelcode = 3 \let\mathrelcomm \mathrel
+\chardef\mathopencode = 4 \let\mathopencomm \mathopen
+\chardef\mathclosecode = 5 \let\mathclosecomm \mathclose
+\chardef\mathpunctcode = 6 \let\mathpunctcomm \mathpunct
+\chardef\mathalphacode = 7 \let\mathalphacomm \firstofoneargument
+\chardef\mathinnercode = 0 \let\mathinnercomm \mathinner
+\chardef\mathnothingcode= 0 \let\mathnothingcomm \firstofoneargument
+\chardef\mathlimopcode = 1 \let\mathlimopcomm \@@mathlimopcomm
+\chardef\mathnolopcode = 1 \let\mathnolopcomm \@@mathnolopcomm
+\chardef\mathchoicecode = 0 \let\mathchoicecomm \@@mathchoicecomm
+\chardef\mathboxcode = 0 \let\mathboxcomm \@@mathboxcomm
+
+\chardef\mathaccentcode = 8
+\chardef\mathradicalcode= 9
+
+\def\@@mathchoicecomm#1{[todo #1]}
+
+\def\puremathcode#1{\the\csname math#1code\endcsname}
+\def\puremathcomm#1{\csname math#1comm\endcsname}
+
+\newif\iftracemathcollection
+
+% Simple variant:
+%
+% \def\dohandlemathtoken#1%
+% {\csname\@mt@
+% \ifcsname\@mt@\mathcollection#1\endcsname
+% \mathcollection
+% \else\ifcsname\@mt@\nomathcollection#1\endcsname
+% \nomathcollection
+% \fi\fi
+% #1\endcsname}
+
+%D Because a command can have a different meaning in math
+%D and in text mode, we provide a selector. We also provide
+%D the pure alternatives as \type {\mathcharacter} and \type
+%D {\textcharacter}.
+
+% \ifx\dohandlecommand\undefined \wait \fi % troubles ! but not in mkiv so ...
+
+\let\mathcharacter\dohandlemathtoken
+\let\textcharacter\dohandlecommand % better \dohandletexttoken
+
+% More clever layout:
+%
+% \def\dohandlemathtoken#1%
+% {\csname
+% \ifmmode
+% \ifcsname\@mt@\mathcollection#1\endcsname
+% \@mt@\mathcollection
+% \else\ifcsname\@mt@\nomathcollection#1\endcsname
+% \@mt@\nomathcollection
+% \else\ifcsname\characterencoding#1\endcsname
+% \characterencoding
+% \else
+% \nocharacterencoding
+% \fi\fi\fi
+% \else
+% \ifcsname\characterencoding#1\endcsname
+% \characterencoding
+% \else
+% \nocharacterencoding
+% \fi
+% \fi
+% #1\endcsname}
+%
+% fallback to math when in text mode (handy for unicode vectors)
+
+\def\dohandlemathtoken#1%
+ {\csname
+ \ifmmode
+ \ifcsname\@mt@\mathcollection#1\endcsname
+ \@mt@\mathcollection
+ \else\ifcsname\@mt@\nomathcollection#1\endcsname
+ \@mt@\nomathcollection
+ \else\ifcsname\characterencoding#1\endcsname
+ \characterencoding
+ \else
+ \nocharacterencoding
+ \fi\fi\fi
+ \else
+ \ifcsname\characterencoding#1\endcsname
+ \characterencoding
+ \else\ifcsname\nocharacterencoding#1\endcsname
+ \nocharacterencoding
+ \else\ifcsname\@mt@\mathcollection#1\endcsname
+ \strippedcsname\mathematics\expandafter\endcsname\csname\@mt@\mathcollection
+ \else\ifcsname\@mt@\nomathcollection#1\endcsname
+ \strippedcsname\mathematics\expandafter\endcsname\csname\@mt@\nomathcollection
+ \else
+ \nocharacterencoding
+ \fi\fi\fi\fi
+ \fi
+ #1\endcsname}
+
+%D Now we redefine the text encoding handler.
+
+%D A better fallback:
+
+% Just ETEX which is the default nowadays.
+
+\def\dohandlemathtoken#1%
+ {\csname
+ \ifmmode
+ \ifcsname\@mt@\mathcollection:\outerencoding#1\endcsname
+ \@mt@\mathcollection:\outerencoding
+ \else\ifcsname\@mt@\mathcollection#1\endcsname
+ \@mt@\mathcollection
+ \else\ifcsname\@mt@\nomathcollection#1\endcsname
+ \@mt@\nomathcollection
+ \else\ifcsname\characterencoding#1\endcsname
+ \characterencoding
+ \else
+ \nocharacterencoding
+ \fi\fi\fi\fi
+ \else
+ \ifcsname\characterencoding#1\endcsname
+ \characterencoding
+ \else\ifcsname\nocharacterencoding#1\endcsname
+ \nocharacterencoding
+ \else\ifcsname\@mt@\mathcollection:\outerencoding#1\endcsname
+ \@mt@\mathcollection:\outerencoding
+ \else\ifcsname\@mt@\mathcollection#1\endcsname
+ \strippedcsname\mathematics\expandafter\endcsname\csname\@mt@\mathcollection
+ \else\ifcsname\@mt@\nomathcollection#1\endcsname
+ \strippedcsname\mathematics\expandafter\endcsname\csname\@mt@\nomathcollection
+ \else
+ \nocharacterencoding
+ \fi\fi\fi\fi\fi
+ \fi
+ #1\endcsname}
+
+\let\dohandlecommand\dohandlemathtoken
+
+\def\definefamilysynonym
+ {\dotripleempty\dodefinefamilysynonym}
+
+\def\dodefinefamilysynonym[#1][#2][#3]% [mathcollection] [] []
+ {\ifthirdargument
+ \setvalue{\@mf@#1#2}{#3}%
+ \else
+ \setvalue{\@mf@ #1}{#2}%
+ \fi}
+
+\let\mathsubfamily\empty
+
+\def\purefamily #1{\csname \truefamily{#1}\mathsubfamily\s!fam\endcsname}
+\def\purefamilyhex#1{\csname hex\truefamily{#1}\mathsubfamily\s!fam\endcsname}
+
+\def\truefamily#1%
+ {\ifcsname\@mf@\mathcollection#1\endcsname
+ \@EA\truefamily\csname\@mf@\mathcollection#1\endcsname
+ \else\ifcsname\@mf@#1\endcsname
+ \@EA\truefamily\csname\@mf@#1\endcsname
+ \else\ifcsname\@mf@\nomathcollection#1\endcsname
+ \@EA\truefamily\csname\@mf@\nomathcollection#1\endcsname
+ \else
+ #1%
+ \fi\fi\fi}
+
+\newif\ifdynamicmathfamilies \dynamicmathfamiliestrue % true per 2003.11.25; needed for mixed bold math
+
+\let\normalpurefamilyhex\purefamilyhex
+
+% todo: reset collection (tok legen) en opnieuw laden met true
+
+\def\definemathsymbol
+ {\dosixtupleempty\dodefinemathsymbol}
+
+\def\dodefinemathsymbol[#1][#2][#3][#4][#5][#6]%
+ {\unexpanded\setgvalue{#1}{\dohandlemathtoken{#1}}%
+ \ifdynamicmathfamilies \let\purefamilyhex\relax \fi
+ \setevalue{\@mt@\mathcollection#1}%
+ {\ifsixthargument
+ \ifnum\puremathcode{#2}=\mathradicalcode
+ \radical"%
+ \else
+ \delimiter"%
+ \ifnum\puremathcode{#2}>7 0\else\puremathcode{#2}\fi
+ \fi
+ \purefamilyhex{#3}\uchexnumbers{#4}%
+ \purefamilyhex{#5}\uchexnumbers{#6}\space
+ \else\iffourthargument
+ \ifnum\puremathcode{#2}=\mathaccentcode
+ \mathaccent\else\mathchar
+ \fi
+ "\ifnum\puremathcode{#2}>7 0\else\puremathcode{#2}\fi
+ \purefamilyhex{#3}\uchexnumbers{#4}\space
+ \fi\fi}%
+ \let\purefamilyhex\normalpurefamilyhex
+ \tracemathsymbol{#1}}
+
+\def\tracemathsymbol#1%
+ {\iftracemathcollection
+ {\endgraf
+ \hbox{\tex{#1}~:~{\mathematics{\getvalue{#1}{}}}}
+ \endgraf}%
+ \fi}
+
+\def\definemathcharacter
+ {\dosixtupleempty\dodefinemathcharacter}
+
+% \def\dodefinemathcharacter[#1][#2][#3][#4][#5][#6]%
+% {\setmathtoks
+% \ifdynamicmathfamilies \let\purefamilyhex\relax \fi
+% \doifnumberelse{#1}
+% {\scratchcounter#1}
+% {\scratchcounter\@EA`\string#1}%
+% \appendetoks
+% \ifsixthargument
+% \delcode\the\scratchcounter="%
+% \ifnum\puremathcode{#2}>7 0\else\puremathcode{#2}\fi
+% \purefamilyhex{#3}\uchexnumbers{#4}%
+% \purefamilyhex{#5}\uchexnumbers{#6}\space
+% \else\iffourthargument
+% \mathcode\the\scratchcounter="%
+% \ifnum\puremathcode{#2}>7 0\else\puremathcode{#2}\fi
+% \purefamilyhex{#3}\uchexnumbers{#4}\space
+% \fi\fi\to\mathtoks
+% \let\purefamilyhex\normalpurefamilyhex
+% \tracemathcharacter{#1}}
+
+\newtoks\mathscratchtoks
+
+\def\definemathcharacter
+ {\chardef\mathcharactermode\zerocount
+ \dosixtupleempty\dodefinemathcharacter}
+
+\def\redefinemathcharacter
+ {\chardef\mathcharactermode\plusone
+ \dosixtupleempty\dodefinemathcharacter}
+
+\def\dodefinemathcharacter[#1][#2][#3][#4][#5][#6]%
+ {\ifcase\mathcharactermode
+ \setmathtoks
+ \or
+ \let\mathtoks\mathscratchtoks \mathtoks\emptytoks
+ \fi
+ \ifdynamicmathfamilies \let\purefamilyhex\relax \fi
+ \doifnumberelse{#1}
+ {\scratchcounter#1}
+ {\scratchcounter\@EA`\string#1}%
+ \appendetoks
+ \ifsixthargument
+ \delcode\the\scratchcounter="%
+ \ifnum\puremathcode{#2}>7 0\else\puremathcode{#2}\fi
+ \purefamilyhex{#3}\uchexnumbers{#4}%
+ \purefamilyhex{#5}\uchexnumbers{#6}\space
+ \else\iffourthargument
+ \mathcode\the\scratchcounter="%
+ \ifnum\puremathcode{#2}>7 0\else\puremathcode{#2}\fi
+ \purefamilyhex{#3}\uchexnumbers{#4}\space
+ \fi\fi
+ \to \mathtoks
+ \let\purefamilyhex\normalpurefamilyhex
+ \ifcase\mathcharactermode
+ \expandafter\tracemathcharacter
+ \or
+ \the\mathtoks
+ \mathtoks\emptytoks
+ \expandafter\gobbleoneargument
+ \fi{#1}} % maybe lookahead
+
+\def\tracemathcharacter#1%
+ {\iftracemathcollection
+ {\endgraf
+ \doifnumberelse{#1}
+ {\hbox{\tttf\rawcharacter{#1}~:~{\mathematics{\rawcharacter{#1}}}}}
+ {\hbox{\type{#1}~:~{\mathematics{#1}}}}
+ \endgraf}%
+ \fi}
+
+\def\definemathcommand
+ {\dotripleempty\dodefinemathcommand}
+
+\def\dodefinemathcommand[#1][#2][#3]#4% command class args meaning
+ {\unexpanded\setgvalue{#1}{\dohandlemathtoken{#1}}%
+ \ifthirdargument
+ \processaction
+ [#3]
+ [one=>\setvalue{\@mt@\mathcollection#1}##1{\puremathcomm{#2}{#4{##1}}},
+ two=>\setvalue{\@mt@\mathcollection#1}##1##2{\puremathcomm{#2}{#4{##1}{##2}}}]%
+ \else\ifsecondargument
+ \setvalue{\@mt@\mathcollection#1}{\puremathcomm{#2}{#4}}%
+ \else
+ \setvalue{\@mt@\mathcollection#1}{\puremathcomm{nothing}{#4}}%
+ \fi\fi
+ \tracemathcommand{#1}}
+
+\def\tracemathcommand#1%
+ {\iftracemathcollection
+ \endgraf\hbox{\tex{#1}~:~{\mathematics{\getvalue{#1}{}}}}\endgraf
+ \fi}
+
+\def\startmathcollection[#1]%
+ {\pushmacro\mathcollection
+ \setmathcollection{#1}}
+
+\def\setmathcollection#1%
+ {\edef\mathcollection{#1}%
+ \doifundefined{\@ml@\mathcollection}
+ {\expandafter\newtoks\csname\@ml@\mathcollection\endcsname}}
+
+\def\stopmathcollection
+ {\popmacro\mathcollection}
+
+\def\startrawmathcollection
+ {\startmathcollection}
+
+\def\stoprawmathcollection
+ {\stopmathcollection}
+
+\newtoks\mathtoks
+
+\def\setmathtoks
+ {\@EA\let\@EA\mathtoks\csname\@ml@\mathcollection\endcsname}
+
+\def\currentmathcollection{\mathcollection}
+
+\let\nomathcollection\s!default
+
+\def\enablemathcollection[#1]%
+ {\doifnot{#1}\s!default
+ {\setmathcollection\s!default
+ \the\csname\@ml@\mathcollection\endcsname}%
+ \setmathcollection{#1}%
+ \the\csname\@ml@\mathcollection\endcsname}
+
+% hook 'm into the font mechanism
+
+\definefilesynonym[\f!mathprefix\s!default][\f!mathprefix tex]
+
+\def\usemathcollection
+ {\dodoubleempty\dousemathcollection}
+
+\def\dousemathcollection[#1][#2]%
+ {\pushmacro\fontclass
+ \pushmacro\mathclass
+ \ifsecondargument
+ \edef\fontclass{#1}%
+ \edef\mathclass{#2}%
+ \else
+ \edef\mathclass{#1}%
+ \fi
+ \doinputonce{\truefilename{\f!mathprefix\mathclass}.mkii}%
+ \doifsomething\fontclass{\setevalue{\@mc@\fontclass\@mc@}{\mathclass}}%
+ \popmacro\mathclass
+ \popmacro\fontclass}
+
+\let\mathclass\nomathcollection
+
+\letvalue{\@mc@\@mc@}\nomathcollection
+
+% \def\autoenablemathcollection
+% {\doifdefinedelse{\@mc@\fontclass\@mc@}
+% {\enablemathcollection[\getvalue{\@mc@\fontclass\@mc@}]}
+% {\enablemathcollection[\s!default]}} % ? ? ?
+
+\def\autoenablemathcollection
+ {\expanded{\enablemathcollection[\executeifdefined{\@mc@\fontclass\@mc@}\nomathcollection]}}
+
+\appendtoks\autoenablemathcollection\to\mathstrategies
+
+\fetchruntimecommand \showmathcharacters {\f!mathprefix\s!run.mkii}
+\fetchruntimecommand \showmathtoken {\f!mathprefix\s!run.mkii}
+
+\def\resetmathcollection[#1]%
+ {\def\mathcollection{#1}%
+ \forgetdoingonce{\f!mathprefix\mathcollection.mkii}%
+ \setmathtoks
+ \ifx\mathtoks\relax\else\mathtoks\emptytoks\fi}
+
+%D \macros
+%D {ifmathpunctuation, enablemathpunctuation,
+%D definemathpunctuation}
+%D
+%D This will replace periods by comma's:
+%D
+%D \starttyping
+%D \definemathpunctuation . textcomma textperiod
+%D \definemathpunctuation , textcomma textcomma
+%D
+%D \appendtoks
+%D \redefinemathcharacter [.] [ord] [mi] ["3B]%
+%D \to \everymathpunctuation
+%D \stoptyping
+
+% \newif\ifmathpunctuation
+%
+% \def\enablemathpunctuation{\mathpunctuationtrue}
+%
+% \def\definemathpunctuation #1 #2 #3 %
+% {\appendtoks
+% \initializemathpunctuation{#1}{#2}{#3}%
+% \to\everymathematics}
+%
+% \def\initializemathpunctuation#1#2#3% sloowww
+% {\ifmathpunctuation % hm move this test to everymath, or better a separate token list
+% \mathcode`#1="8000
+% \defineactivecharacter #1 {\dohandlemathpunctuation{#2}{#3}}%
+% \fi}
+%
+% \unexpanded\def\dohandlemathpunctuation#1#2% \if fails in mathml interval
+% {\def\next{\csname\ifx\space\nexttoken#2\else#1\fi\endcsname}%
+% \futurelet\nexttoken\next}
+
+\newtoks\everymathpunctuation
+
+\def\enablemathpunctuation % can be called inside math, so after \everymathematics
+ {\the\everymathpunctuation
+ \appendtoksonce
+ \the\everymathpunctuation
+ \to\everymathematics}
+
+\def\definemathpunctuation #1 #2 #3 %
+ {\appendtoks
+ \initializemathpunctuation{#1}{#2}{#3}%
+ \to\everymathpunctuation}
+
+\def\initializemathpunctuation#1#2#3% sloowww
+ {\mathcode`#1="8000
+ \defineactivecharacter #1 {\dohandlemathpunctuation{#2}{#3}}}
+
+\unexpanded\def\dohandlemathpunctuation#1#2% \if fails in mathml interval
+ {\def\next{\csname\ifx\space\nexttoken#2\else#1\fi\endcsname}%
+ \futurelet\nexttoken\next}
+
+%D \startbuffer
+%D \enablemathpunctuation$(1,2) (1, 2) (1{,}2) \hbox{foo, not bar}$
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D \blank{\getbuffer}\blank
+
+%D needed for sin, cos etc
+
+\def\mfunction #1{{\mr#1}}
+
+% \def\mlimitsfunction #1{\mathlimopcomm{{\mr#1}}
+% \def\mnolimitsfunction#1{\mathnolopcomm{{\mr#1}}
+
+%D Taco posted this solution as response to a mail by Olivier, so
+%D let's integrate it here.
+
+% \def\setmathfunctionstyle#1% rm ss tt
+% {\def\mfunction##1% no families, just scaling a la text
+% {\mathchoice
+% {\hbox{\csname#1\endcsname\tf ##1}}
+% {\hbox{\csname#1\endcsname\tf ##1}}
+% {\hbox{\csname#1\endcsname\tfx ##1}}
+% {\hbox{\csname#1\endcsname\tfxx##1}}}}
+
+\def\currentmscaledstyle{rm} % will be plugged into the typeface text=ss option
+
+\def\setmathfunctionstyle#1% rm ss tt
+ {\doifsomething{#1}
+ {\def\currentmscaledstyle{#1}%
+ \def\mathopnolimits##1{\mathop{\mscaledtext{##1}}\nolimits}%
+ \def\mfunction##1{\mscaledtext{##1}}}}
+
+\def\mscaledtext#1%
+ {\mathchoice
+ {\hbox{\csname\currentmscaledstyle\endcsname\tf #1}}
+ {\hbox{\csname\currentmscaledstyle\endcsname\tf #1}}
+ {\hbox{\csname\currentmscaledstyle\endcsname\tfx #1}}
+ {\hbox{\csname\currentmscaledstyle\endcsname\tfxx#1}}}
+
+%D We can force the way functions are typeset by manipulating the text
+%D option:
+%D
+%D \starttyping
+%D \definetypeface[iwona][ss][sans][iwona][default][encoding=texnansi]
+%D \definetypeface[iwona][mm][math][iwona][default][encoding=texnansi,text=ss]
+%D \stoptyping
+%D
+%D This hooks into the math handler with:
+
+\appendtoks
+ \setmathfunctionstyle\currentmathtextstyle
+\to \everybodyfont
+
+%D Usage:
+%D
+%D \starttyping
+%D \setmathfunctionstyle\fontstyle % or {rm} or {ss} or ..
+%D \rm test $\sin{(x^{\sin(x^{\sin(x)})})}$ test
+%D \ss test $\sin{(x^{\sin(x^{\sin(x)})})}$ test
+%D \tt test $\sin{(x^{\sin(x^{\sin(x)})})}$ test
+%D \stoptyping
+
+\edef\hexmrfam {0} \edef\hexbsfam {8}
+\edef\hexmifam {1} \edef\hexbifam {9}
+\edef\hexsyfam {2} \edef\hexscfam {A}
+\edef\hexexfam {3} \edef\hextffam {B}
+\edef\hexitfam {4} \edef\hexmafam {C}
+\edef\hexslfam {5} \edef\hexmbfam {D}
+\edef\hexbffam {6} \edef\hexmcfam {E}
+\edef\hexnnfam {7} \edef\hexmdfam {F}
+
+\definefamilysynonym [default] [letters] [mr]
+\definefamilysynonym [default] [operators] [sy]
+\definefamilysynonym [default] [lcgreek] [mi]
+\definefamilysynonym [default] [ucgreek] [mr]
+\definefamilysynonym [default] [vargreek] [mi]
+\definefamilysynonym [default] [mitfamily] [mi]
+\definefamilysynonym [default] [calfamily] [sy]
+
+\definefamilysynonym [default] [0] [mr]
+\definefamilysynonym [default] [1] [mi]
+\definefamilysynonym [default] [2] [sy]
+\definefamilysynonym [default] [3] [ex]
+
+\enablemathcollection[default]
+
+\usemathcollection [default] [tex]
+\usemathcollection [default] [ams]
+\usemathcollection [default] [uni]
+
+\enablemathcollection[default]
+
+%D Some goodies:
+
+\def\Angstrom{\nomathematics{\Aring}}
+
+%D Bold math:
+%D
+%D \starttyping
+%D \usetypescript [lucida] [texnansi]
+%D
+%D \definetypeface [boldmath] [rm] [serif]
+%D [lucida] [default] [encoding=texnansi]
+%D \definetypeface [boldmath] [tt] [mono]
+%D [lucida] [default] [encoding=texnansi]
+%D \definetypeface [boldmath] [ss] [sans]
+%D [lucida] [default] [encoding=texnansi]
+%D \definetypeface [boldmath] [mm] [boldmath]
+%D [lucida] [default] [encoding=texnansi]
+%D
+%D \switchtobodyfont[lucida,10pt]
+%D
+%D \showmathtoken{Gamma} $\Gamma \Delta \alpha \delta \zeta$
+%D
+%D \switchtobodyfont[boldmath,10pt]
+%D
+%D \showmathtoken{Gamma} $\Gamma \Delta \alpha \delta \zeta$
+%D \stoptyping
+
+%D \macros
+%D {nonknuthmode, donknuthmode}
+%D
+%D The underscore is frequently used in manuals but unfortunately \TEX\ prefers
+%D it to be a math specific character. And since computer modern fonts didn't
+%D have an underscore, one had to use commands to fake one. Nowadays we do
+%D have underscores in latin modern, and since all other fonts have them, we
+%D decided to get away from the restriction to use the underscore character in
+%D text mode.
+%D
+%D \starttyping
+%D \def\test#1{#1}
+%D
+%D \nonknuthmode $x_2$ x_2 \test{$x_2$} \test{x_2}
+%D
+%D \donknuthmode $x_2$ x_2 \test{$x_2$} \test{x_2}
+%D \stoptyping
+%D
+%D The result is as expected: the first line typesets ok, while the second
+%D one triggers an error message.
+
+\bgroup
+
+ \ifx\normalsuber\undefined \def\normalsuber{_} \fi
+ \ifx\normalsuper\undefined \def\normalsuper{^} \fi
+
+ \catcode`_=\active
+ \catcode`^=\active
+
+ \gdef\nonknuthmode
+ {\appendtoks\let_\normalsuber\let^\normalsuper\to\everymathematics
+ \mathcode`_="8000
+ \mathcode`^="8000
+ \catcode`_=\@@other
+ \catcode`^=\@@other
+ \let\nonknuthmode\relax}
+
+ \gdef\donknuthmode
+ {\catcode`_=\@@subscript
+ \catcode`^=\@@superscript}
+
+\egroup
+
+%D \macros
+%D {checkdelimiters, fakeleftdelimiter, fakerightdelimiter}
+%D
+%D Handy for non matching situations (as with mathml):
+%D
+%D \starttyping
+%D \checkdelimiters{... bla bla ...}
+%D \fakeleftdelimiter
+%D ... bla bla ...
+%D \fakerightdelimiter
+%D \stoptyping
+
+\newcount\delimitercount
+
+\def\leftfakedelimiter {\advance\delimitercount\minusone\gobbleoneargument}%
+\def\rightfakedelimiter{\advance\delimitercount\plusone \gobbleoneargument}%
+
+\def\checkdelimiters#1%
+ {\delimitercount\zerocount
+ \setbox\scratchbox\hbox\bgroup
+ \let\left \leftfakedelimiter
+ \let\right\rightfakedelimiter
+ $#1\expandafter$\expandafter
+ \egroup
+ \expandafter\delimitercount\the\delimitercount\relax}
+
+\def\fakeleftdelimiter {\ifnum\delimitercount>\zerocount\left .\fi}
+\def\fakerightdelimiter{\ifnum\delimitercount<\zerocount\right.\fi}
+
+%D Needed for unicode:
+
+\def\nulloperator{\mathortext{\mathop{\null}}{\null}}
+
+%D To be dealt with ...
+
+\mathcode`\ ="8000 % \space
+\mathcode`\'="8000 % ^\prime
+\mathcode`\_="8000 % \_
+
+\protect \endinput
+
+\tracemathcollectiontrue
+ \input math-tex \page
+\setupbodyfont[ams] \enablemathcollection[default] \input math-ams \page
+\setupbodyfont[lbr] \enablemathcollection[lbr] \input math-lbr \page
+\setupbodyfont[eul] \enablemathcollection[eul] \input math-eul \stoptext
diff --git a/Master/texmf-dist/tex/context/base/math-ini.mkiv b/Master/texmf-dist/tex/context/base/math-ini.mkiv
index 4d516a45c2a..cb5a6344019 100644
--- a/Master/texmf-dist/tex/context/base/math-ini.mkiv
+++ b/Master/texmf-dist/tex/context/base/math-ini.mkiv
@@ -1,8 +1,8 @@
%D \module
%D [ file=math-ini,
%D version=2008.01.02,
-%D title=\CONTEXT\ Lua Macros,
-%D subtitle=Math Initializations,
+%D title=\CONTEXT\ Math Macros,
+%D subtitle=Initializations,
%D author=Hans Hagen,
%D date=\currentdate,
%D copyright=PRAGMA]
@@ -11,36 +11,574 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+\writestatus{loading}{ConTeXt Math Macros / Initializations}
+
+%D This module provides namespaces for math fonts, thereby
+%D permitting mixed usage of math fonts. Although not strictly
+%D needed, we also provide a family name mapping mechanism as
+%D used in the (original) AMS math definition files, but here
+%D these names can recursively be remapped and if needed,
+%D dynamically be changed. We've tried to minimize the number
+%D of definition commands and use plain \TEX\ definitions as
+%D fallback. We've tried to follow a couple of conventions
+%D from plain and AMS math in order to achieve backward
+%D compatinility. We also kept an eye on future usage of these
+%D modules in the perspective of MathML and unicode fonts.
+
\unprotect
+\ifx\v!compact\undefined \def\v!compact{compact} \fi
+
%D We move these definitions into the format:
% test [[\char948 \ctxlua{tex.sprint(utf.char(948))}]]
% test $[[\char948 \ctxlua{tex.sprint(utf.char(948))}]]$
\registerctxluafile{math-ini}{1.001}
+\registerctxluafile{math-dim}{1.001}
\registerctxluafile{math-ent}{1.001}
+\registerctxluafile{math-ext}{1.001}
+\registerctxluafile{math-vfu}{1.001}
+\registerctxluafile{math-map}{1.001}
+\registerctxluafile{math-noa}{1.001}
+
+\definesystemattribute[mathalph]
+\definesystemattribute[mathsize]
+\definesystemattribute[mathpunc]
+
+% todo: only in mmode
+
+% \def\setmathattribute#1#2{\dosetattribute{mathalph}{\ctxlua{tex.sprint(mathematics.sync_a_both (\number\dogetattribute{mathalph},"#1","#2"))}}}
+% \def\setmathalphabet #1{\dosetattribute{mathalph}{\ctxlua{tex.sprint(mathematics.sync_a_name (\number\dogetattribute{mathalph},"#1"))}}}
+% \def\setmathstyle #1{\dosetattribute{mathalph}{\ctxlua{tex.sprint(mathematics.sync_a_style(\number\dogetattribute{mathalph},"#1"))}}}
+
+\def\setmathattribute#1#2{\ctxlua{mathematics.sync_a_both ("#1","#2")}}
+\def\setmathalphabet #1{\ctxlua{mathematics.sync_a_name ("#1")}}
+\def\setmathstyle #1{\ctxlua{mathematics.sync_a_style("#1")}}
+
+\unexpanded\def\mr {\setmathattribute{regular}{tf}}
+
+\unexpanded\def\mathdefault {\setmathattribute{regular}{it}}
+\unexpanded\def\mathscript {\setmathalphabet{script}}
+\unexpanded\def\mathfraktur {\setmathalphabet{fraktur}}
+\unexpanded\def\mathblackboard{\setmathalphabet{blackboard}}
+
+\unexpanded\def\mathrm{\setmathattribute{rm}{tf}}
+\unexpanded\def\mathss{\setmathattribute{ss}{tf}}
+\unexpanded\def\mathtt{\setmathattribute{tt}{tf}}
+
+\unexpanded\def\mathtf{\setmathstyle{tf}}
+\unexpanded\def\mathbf{\setmathstyle{bf}}
+\unexpanded\def\mathsl{\setmathstyle{sl}}
+\unexpanded\def\mathit{\setmathstyle{it}}
+\unexpanded\def\mathbs{\setmathstyle{bs}}
+\unexpanded\def\mathbi{\setmathstyle{bi}}
+
+\let\tfmath\mathtf % maybe a grouped command
+\let\bfmath\mathbf
+\let\slmath\mathsl
+\let\itmath\mathit
+\let\bsmath\mathbs
+\let\bimath\mathbi
+
+\let\Bbb\mathblackboard
+
+\unexpanded\def\frak {\ifmmode\expandafter\mathfraktur \fi}
+\unexpanded\def\cal {\ifmmode\expandafter\mathscript \fi}
+\unexpanded\def\bbd {\ifmmode\expandafter\mathblackboard\fi}
+\unexpanded\def\blackboard{\ifmmode\expandafter\mathblackboard\fi}
+\unexpanded\def\fraktur {\ifmmode\expandafter\mathfraktur \fi}
+\unexpanded\def\gothic {\ifmmode\expandafter\mathfraktur \fi}
+
+\unexpanded\def\mathcal #1{{\setmathalphabet{script}#1}} % for AMS compatibility
+\unexpanded\def\mathfrak#1{{\setmathalphabet{fraktur}#1}} % for AMS compatibility
+\unexpanded\def\mathbb #1{{\setmathalphabet{blackboard}#1}} % for AMS compatibility
+
+\let\normalmr\mr
+
+\prependtoks
+ \let\mr\normalmr
+ \let\rm\mathrm \let\ss\mathss \let\tt\mathtt
+ \let\tf\mathtf \let\bf\mathbf \let\it\mathit \let\sl\mathsl \let\bi\mathbi \let\bs\mathbs
+ \let\frak\mathfraktur \let\cal\mathscript \let\bbd\mathblackboard
+ \mathdefault
+\to \everymathematics
+
+%D \macros
+%D {boldsymbol}
+%D
+%D The math definition is inspired by amsmath.
+%D
+%D \startbuffer
+%D \definetypeface [boldmath] [mm] [boldmath] [latin-modern] [modern] [encoding=texnansi]
+%D
+%D $a \times b$ $a \boldsymbol{\times} b$
+%D \stopbuffer
+%D
+%D \typebuffer \start \getbuffer \stop
+
+\let\mathboldsymbol\relax % yet unsupported, will be
+
+\def\boldsymbol
+ {\mathortext\mathboldsymbol\bold}
+
+%D Helpers:
+
+\def\utfmathclass #1{\ctxlua{tex.sprint(mathematics.utfmathclass ("#1"))}}
+\def\utfmathstretch#1{\ctxlua{tex.sprint(mathematics.utfmathstretch("#1"))}}
+\def\utfmathcommand#1{\ctxlua{tex.sprint(mathematics.utfmathcommand("#1"))}}
+\def\utfmathfiller #1{\ctxlua{tex.sprint(mathematics.utfmathfiller ("#1"))}}
+
+% \def\utfmathclassdefault #1#2{\ctxlua{
+% tex.sprint(mathematics.utfmathclass("#1","#2"))
+% }}
+%
+% \def\utfmathcommanddefault#1#2#3{\ctxlua{
+% local cmd = mathematics.utfmathcommand("#1","") or ""
+% if cmd == "" then
+% commands.cs("#2","#3")
+% else
+% commands.cs(cmd)
+% end}}
+
+% % %
+
+\def\@@mathlimopcomm #1{\mathop{#1}} %no \limits
+\def\@@mathnolopcomm #1{\mathop{#1}\nolimits}
+\def\@@mathboxcomm #1{\dontleavehmode\hbox{$\mathsurround\zeropoint#1$}}
+\def\@@mathchoicecomm#1{[todo #1]}
+
+\chardef\mathordcode = 0 \let\mathordcomm \mathord
+\chardef\mathopcode = 1 \let\mathopcomm \mathop
+\chardef\mathbincode = 2 \let\mathbincomm \mathbin
+\chardef\mathrelcode = 3 \let\mathrelcomm \mathrel
+\chardef\mathopencode = 4 \let\mathopencomm \mathopen
+\chardef\mathclosecode = 5 \let\mathclosecomm \mathclose
+\chardef\mathpunctcode = 6 \let\mathpunctcomm \mathpunct
+\chardef\mathalphacode = 7 \let\mathalphacomm \firstofoneargument
+\chardef\mathinnercode = 0 \let\mathinnercomm \mathinner
+\chardef\mathnothingcode= 0 \let\mathnothingcomm \firstofoneargument
+\chardef\mathlimopcode = 1 \let\mathlimopcomm \@@mathlimopcomm
+\chardef\mathnolopcode = 1 \let\mathnolopcomm \@@mathnolopcomm
+\chardef\mathchoicecode = 0 \let\mathchoicecomm \@@mathchoicecomm
+\chardef\mathboxcode = 0 \let\mathboxcomm \@@mathboxcomm
+
+\chardef\mathaccentcode = 8
+\chardef\mathradicalcode= 9
+
+\def\puremathcode#1{\the\csname math#1code\endcsname}
+\def\puremathcomm#1{\csname math#1comm\endcsname}
+
+% \startlines
+% $\mathopnolimits{\rm d}x$
+% $\mathopnolimits{\kern\zeropoint \rm d}x$
+% $\puremathcomm{nolop}{\rm d}x$
+% $\puremathcomm{nolop}{\kern\zeropoint\rm d}x$
+% \blank
+% $\puremathcomm{nolop}{\mr d}x$
+% $\puremathcomm{nolop}{\kern\zeropoint\mr d}x$
+% $\mathop{\kern\zeropoint\mr d}x$
+% $\mathopnolimits{\kern\zeropoint d}x$
+% \stoplines
+
+\newif\iftracemathcollection
+
+% this will be sorted out:
+
+\let\mathcharacter \getvalue
+\let\textcharacter \getvalue
+\def\definefamilysynonym {\dotripleempty\dodefinefamilysynonym}
+\def\dodefinefamilysynonym [#1][#2][#3]{}
+\def\definemathsymbol {\dosixtupleempty\dodefinemathsymbol}
+\def\dodefinemathsymbol [#1][#2][#3][#4][#5][#6]{}
+\def\definemathcharacter {\dosixtupleempty\dodefinemathcharacter}
+\def\redefinemathcharacter {\dosixtupleempty\dodefinemathcharacter}
+\def\dodefinemathcharacter [#1][#2][#3][#4][#5][#6]{}
+\def\startmathcollection [#1]{}
+\def\setmathcollection #1{}
+\def\stopmathcollection {}
+\def\startrawmathcollection {}
+\def\stoprawmathcollection {}
+\def\setmathtoks {}
+\let\currentmathcollection \s!default
+\let\nomathcollection \s!default
+\let\mathcollection \s!default
+\def\enablemathcollection [#1]{}
+\def\usemathcollection {\dodoubleempty\dousemathcollection}
+\def\dousemathcollection [#1][#2]{}
+\let\mathclass \nomathcollection
+\let\autoenablemathcollection\relax
+\def\resetmathcollection [#1]{}
+
+\def\definemathcommand
+ {\dotripleempty\dodefinemathcommand}
+
+\def\dodefinemathcommand[#1][#2][#3]#4% command class args meaning
+ {\ifthirdargument
+ \processaction
+ [#3]
+ [one=>\unexpanded\setvalue{#1}##1{\puremathcomm{#2}{#4{##1}}},
+ two=>\unexpanded\setvalue{#1}##1##2{\puremathcomm{#2}{#4{##1}{##2}}}]%
+ \else\ifsecondargument
+ \unexpanded\setvalue{#1}{\puremathcomm{#2}{#4}}%
+ \else
+ \unexpanded\setvalue{#1}{\puremathcomm{nothing}{#4}}%
+ \fi\fi}
+
+%D Moved from font-ini.mkiv:
+%D
+%D \macros
+%D {mf,mbox,enablembox,mathop}
+%D
+%D Todo:
+
+\unexpanded\def\mf
+ {\csname\fontalternative\endcsname}
+
+\let\normalmathop\mathop
+
+\unexpanded\def\mathop
+ {\normalmathop
+ \bgroup
+ \let\rm\mf
+ \let\next=}
+
+\def\normalmbox
+ {\normalhbox\bgroup\mf
+ \dowithnextbox{\flushnextbox\egroup}\normalhbox}
+
+\def\mbox
+ {\ifmmode\normalmbox\else\normalhbox\fi}
+
+\def\enablembox
+ {\appendtoks
+ \ifx\normalhbox\undefined\let\normalhbox\hbox\fi
+ \let\hbox\mbox
+ \to\everymathematics}
+
+%D needed for sin, cos etc
+
+\def\mfunction#1{{\mr#1}}
+
+% \def\mlimitsfunction #1{\mathlimopcomm{{\mr#1}}
+% \def\mnolimitsfunction#1{\mathnolopcomm{{\mr#1}}
+
+%D Taco posted this solution as response to a mail by Olivier, so
+%D let's integrate it here.
+
+\def\currentmscaledstyle{rm} % will be plugged into the typeface text=ss option
+
+\def\setmathfunctionstyle#1% rm ss tt
+ {\doifsomething{#1}
+ {\def\currentmscaledstyle{#1}%
+ \def\mathopnolimits##1{\mathop{\mscaledtext{##1}}\nolimits}%
+ \def\mfunction##1{\mscaledtext{##1}}}}
+
+\def\mscaledtext#1%
+ {\mathchoice
+ {\hbox{\csname\currentmscaledstyle\endcsname\tf #1}}
+ {\hbox{\csname\currentmscaledstyle\endcsname\tf #1}}
+ {\hbox{\csname\currentmscaledstyle\endcsname\tfx #1}}
+ {\hbox{\csname\currentmscaledstyle\endcsname\tfxx#1}}}
+
+%D We can force the way functions are typeset by manipulating the text
+%D option:
+%D
+%D \starttyping
+%D \definetypeface[iwona][ss][sans][iwona][default][encoding=texnansi]
+%D \definetypeface[iwona][mm][math][iwona][default][encoding=texnansi,text=ss]
+%D \stoptyping
+%D
+%D This hooks into the math handler with:
+
+\appendtoks
+ \setmathfunctionstyle\currentmathtextstyle
+\to \everybodyfont
+
+%D Usage:
+%D
+%D \starttyping
+%D \setmathfunctionstyle\fontstyle % or {rm} or {ss} or ..
+%D \rm test $\sin{(x^{\sin(x^{\sin(x)})})}$ test
+%D \ss test $\sin{(x^{\sin(x^{\sin(x)})})}$ test
+%D \tt test $\sin{(x^{\sin(x^{\sin(x)})})}$ test
+%D \stoptyping
+
+%D Some goodies:
+
+\def\Angstrom{\nomathematics{\Aring}}
+
+%D \macros
+%D {nonknuthmode, donknuthmode}
+%D
+%D The underscore is frequently used in manuals but unfortunately \TEX\ prefers
+%D it to be a math specific character. And since computer modern fonts didn't
+%D have an underscore, one had to use commands to fake one. Nowadays we do
+%D have underscores in latin modern, and since all other fonts have them, we
+%D decided to get away from the restriction to use the underscore character in
+%D text mode.
+%D
+%D \starttyping
+%D \def\test#1{#1}
+%D
+%D \nonknuthmode $x_2$ x_2 \test{$x_2$} \test{x_2}
+%D
+%D \donknuthmode $x_2$ x_2 \test{$x_2$} \test{x_2}
+%D \stoptyping
+%D
+%D The result is as expected: the first line typesets ok, while the second
+%D one triggers an error message.
+
+\newtoks\everydonknuthmode
+\newtoks\everynonknuthmode
+
+\def\nonknuthmode{\the\everynonknuthmode\let\nonknuthmode\relax}
+\def\donknuthmode{\the\everydonknuthmode}
+
+\ifdefined\normalsuber\else \def\normalsuber{_} \fi
+\ifdefined\normalsuper\else \def\normalsuper{^} \fi
+
+\bgroup
+
+ \catcode`_=\active
+ \catcode`^=\active
+
+ \global \everynonknuthmode {\appendtoks
+ \let_\normalsuber
+ \let^\normalsuper
+ \to \everymathematics}
+
+\egroup
+
+\appendtoks
+ \mathcode`_="8000
+ \mathcode`^="8000
+ \catcode`_=\@@other
+ \catcode`^=\@@other
+\to \everynonknuthmode
+
+\appendtoks
+ \catcode`_=\@@subscript
+ \catcode`^=\@@superscript
+\to \everydonknuthmode
+
+\appendtoks
+ \startextendcatcodetable\ctxcatcodes
+ \catcode`_=\@@other
+ \catcode`^=\@@other
+ \stopextendcatcodetable
+\to \everynonknuthmode
+
+\appendtoks
+ \startextendcatcodetable\ctxcatcodes
+ \catcode`_=\@@subscript
+ \catcode`^=\@@superscript
+ \stopextendcatcodetable
+\to \everydonknuthmode
+
+%D Needed for unicode:
+
+\def\nulloperator{\mathortext{\mathop{\null}}{\null}}
+
+%D To be dealt with ...
+
+\mathcode`\ ="8000 % \space
+\mathcode`\'="8000 % ^\prime
+\mathcode`\_="8000 % \_
+
+%D \macros
+%D {\setupmathematics}
+%D
+%D Configuration for integrals. (If needed we can speed this up and make it
+%D installable; no processaction is needed then).
+
+\newtoks\everysetupmathematics
+
+\def\setupmathematics
+ {\dosingleargument\dosetupmathematics}
+
+\def\dosetupmathematics[#1]%
+ {\getparameters[\??mo][#1]%
+ \the\everysetupmathematics}
+
+\def\mathematicsparameter#1{\ifcsname\??mo#1\endcsname\csname\??mo#1\endcsname\fi}
+
+%D Memory saver:
+
+\appendtoks
+ \doifelse{\mathematicsparameter\v!compact}\v!yes
+ {\ctxlua{fonts.vf.math.optional=true}}
+ {\ctxlua{fonts.vf.math.optional=false}}%
+\to \everysetupmathematics
+
+\setupmathematics
+ [\v!compact=no]
+
+%D \macros
+%D {enablemathpunctuation,disablemathpunctuation}
+%D
+%D \startbuffer
+%D \enablemathpunctuation$(1,2) (1, 2) (1{,}2) \hbox{foo, not bar}$
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D \blank{\getbuffer}\blank
+
+\setfalse \automathpunctuation
+
+\def\enablemathpunctuation {\settrue \automathpunctuation}
+\def\disablemathpunctuation{\setfalse\automathpunctuation}
+
+\ifx\v!autopunctuation\undefined \def\v!autopunctuation{autopunctuation} \fi
+
+\appendtoks
+ \doifelse{\mathematicsparameter\v!autopunctuation}\v!yes\enablemathpunctuation\disablemathpunctuation
+\to \everysetupmathematics
+
+\appendtoks
+ \ifconditional\automathpunctuation\dosetattribute{mathpunc}\plusone\fi
+\to \everymathematics
+
+\setupmathematics
+ [\v!autopunctuation=\v!no]
+
+%D \macros
+%D {mathstyle}
+%D
+%D If one want to be sure that something is typeset in the
+%D appropriate style, \type {\mathstyle} can be used:
+%D
+%D \starttyping
+%D \mathstyle{something}
+%D \stoptyping
+
+% \def\mathstyle#1%
+% {\mathchoice
+% {\displaystyle #1}%
+% {\textstyle #1}%
+% {\scriptstyle #1}%
+% {\scriptscriptstyle#1}}
+%
+% We now have a primitive operation for this. As the
+% macro overloads a new primitive introduced in \LUATEX,
+% we need to use \type {\normalmathstyle} when we consult
+% the current math style.
+%
+% \let \mathstyle \Ustack % spoils cramped
+%
+% \let \mathstyle \firstofoneargument
+%
+% 0 = display
+% 1 = crampeddisplay
+% 2 = text
+% 3 = crampedtext
+% 4 = script
+% 5 = crampedscript
+% 6 = scriptscript
+% 7 = crampedscriptscript
+
+\def\uncramped#1%
+ {{\ifcase\normalmathstyle
+ \or \displaystyle \or
+ \or \textstyle \or
+ \or \scriptstyle \or
+ \or \scriptscriptstyle \fi
+ #1}}
+
+\def\cramped#1%
+ {{\ifcase\normalmathstyle
+ \crampeddisplaystyle \or \or % 0 -> 1
+ \crampedtextstyle \or \or % 2 -> 3
+ \crampedscriptstyle \or \or % 4 -> 5
+ \crampedscriptscriptstyle \fi % 6 -> 7
+ #1}}
+
+\def\triggermathstyle#1% #1 is number
+ {\ifcase#1\relax
+ \displaystyle \or
+ \crampeddisplaystyle \or
+ \textstyle \or
+ \crampedtextstyle \or
+ \scriptstyle \or
+ \crampedscriptstyle \or
+ \scriptscriptstyle \or
+ \crampedscriptscriptstyle \else
+ % error
+ \fi}
+
+\def\cramped#1%
+ {{\ifcase\normalmathstyle
+ \crampeddisplaystyle \or \or % 0 -> 1
+ \crampedtextstyle \or \or % 2 -> 3
+ \crampedscriptstyle \or \or % 4 -> 5
+ \crampedscriptscriptstyle \fi % 6 -> 7
+ #1}}
+
+%D Something similar can be used in the (re|)|definition
+%D of \type {\text}. This version is a variation on the one
+%D in the math module (see \type{m-math} and|/|or \type
+%D {m-newmat}).
+
+\unexpanded\def\mathtext
+ {\mathortext\domathtext\hbox}
+
+\def\domathtext#1%
+ {\mathchoice
+ {\dodomathtext\displaystyle\textface {#1}}%
+ {\dodomathtext\textstyle \textface {#1}}%
+ {\dodomathtext\textstyle \scriptface {#1}}%
+ {\dodomathtext\textstyle \scriptscriptface{#1}}}
+
+\def\dodomathtext#1#2#3% no \everymath !
+ %{\hbox{\everymath{#1}\switchtobodyfont [#2]#3}} % 15 sec
+ {\hbox{\everymath{#1}\setcurrentfontbody{#2}#3}} % 3 sec (no math)
+
+%D Because we may overload \type {\text} in other (structuring)
+%D macros, we say:
+
+\appendtoks \let\text\mathtext \to \everymathematics
+
+%D The next code is derived from plain \TEX.
+
+\newcount\interdisplaylinepenalty \interdisplaylinepenalty=100
+
+\newif\ifdt@p
+
+\def\displ@y
+ {\global\dt@ptrue
+ \openup\displayopenupvalue % was \openup\jot
+ \everycr
+ {\noalign
+ {\ifdt@p
+ \global\dt@pfalse
+ \ifdim\prevdepth>-\thousandpoint
+ \vskip-\lineskiplimit
+ \vskip\normallineskiplimit
+ \fi
+ \else
+ \penalty\interdisplaylinepenalty
+ \fi}}}
+
+\let\normaldispl@y\displ@y
+
+\def\displ@y{\resetdisplaymatheq\normaldispl@y}
-% \registerctxluafile{math-def}{1.001}
-% \ctxlua{mathematics.traditional()}
+\def\m@th{\mathsurround\zeropoint} % obsolete
-\ctxlua{mathematics.define()}
+%D Text in math:
-\def\utfmathclass #1{\ctxlua{tex.sprint (mathematics.utfmathclass ("#1"))}}
-\def\utfmathcommand#1{\ctxlua{commands.cs(mathematics.utfmathcommand("#1"))}}
+\def\mathortext
+ {\ifmmode
+ \expandafter\firstoftwoarguments
+ \else
+ \expandafter\secondoftwoarguments
+ \fi}
-\def\utfmathclassdefault #1#2{\ctxlua{
- tex.sprint(mathematics.utfmathclass("#1","#2"))
-}}
+% \defineactivecharacter _ {\mathortext{_}{\_}} text_text $a^2$
-\def\utfmathcommanddefault#1#2#3{\ctxlua{
- local cmd = mathematics.utfmathcommand("#1","") or ""
- if cmd == "" then
- commands.cs("#2","#3")
- else
- commands.cs(cmd)
- end}}
+% force text mode, will be overloaded later
-% \let\math@normal@int\int \def\int{\math@normal@int\intlimits}
+\ifx\text\undefined \let\text\hbox \fi
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/math-ini.tex b/Master/texmf-dist/tex/context/base/math-ini.tex
deleted file mode 100644
index 7ffef6bb88c..00000000000
--- a/Master/texmf-dist/tex/context/base/math-ini.tex
+++ /dev/null
@@ -1,813 +0,0 @@
-%D \module
-%D [ file=math-ini,
-%D version=2001.04.12,
-%D title=\CONTEXT\ Math Macros,
-%D subtitle=Basic Macros,
-%D author={Hans Hagen \& Taco Hoekwater},
-%D date=\currentdate,
-%D copyright=\PRAGMA]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% todo: make all definitions global since file loaded only once
-
-%D This module provides namespaces for math fonts, thereby
-%D permitting mixed usage of math fonts. Although not strictly
-%D needed, we also provide a family name mapping mechanism as
-%D used in the (original) AMS math definition files, but here
-%D these names can recursively be remapped and if needed,
-%D dynamically be changed. We've tried to minimize the number
-%D of definition commands and use plain \TEX\ definitions as
-%D fallback. We've tried to follow a couple of conventions
-%D from plain and AMS math in order to achieve backward
-%D compatinility. We also kept an eye on future usage of these
-%D modules in the perspective of MathML and unicode fonts.
-
-\unprotect
-
-\def\@ml@{@ml@} % math list (used for collection)
-\def\@mf@{@mf@} % math family
-%def\@mh@{@mh@} % math handler (not used)
-\def\@mt@{@mt@} % math token
-\def\@mc@{@mc@} % math collection
-
-\def\@@mathlimopcomm#1{\mathop{#1}} %no \limits
-\def\@@mathnolopcomm#1{\mathop{#1}\nolimits}
-\def\@@mathboxcomm #1{\dontleavehmode\hbox{$\m@th#1$}}
-
-\chardef\mathordcode = 0 \let\mathordcomm \mathord
-\chardef\mathopcode = 1 \let\mathopcomm \mathop
-\chardef\mathbincode = 2 \let\mathbincomm \mathbin
-\chardef\mathrelcode = 3 \let\mathrelcomm \mathrel
-\chardef\mathopencode = 4 \let\mathopencomm \mathopen
-\chardef\mathclosecode = 5 \let\mathclosecomm \mathclose
-\chardef\mathpunctcode = 6 \let\mathpunctcomm \mathpunct
-\chardef\mathalphacode = 7 \let\mathalphacomm \firstofoneargument
-\chardef\mathinnercode = 0 \let\mathinnercomm \mathinner
-\chardef\mathnothingcode= 0 \let\mathnothingcomm \firstofoneargument
-\chardef\mathlimopcode = 1 \let\mathlimopcomm \@@mathlimopcomm
-\chardef\mathnolopcode = 1 \let\mathnolopcomm \@@mathnolopcomm
-\chardef\mathchoicecode = 0 \let\mathchoicecomm \@@mathchoicecomm
-\chardef\mathboxcode = 0 \let\mathboxcomm \@@mathboxcomm
-
-\chardef\mathaccentcode = 8
-\chardef\mathradicalcode= 9
-
-\def\@@mathchoicecomm#1{[todo #1]}
-
-\def\puremathcode#1{\the\csname math#1code\endcsname}
-\def\puremathcomm#1{\csname math#1comm\endcsname}
-
-\newif\iftracemathcollection
-
-% Simple variant:
-%
-% \beginETEX \ifcsname
-%
-% \def\dohandlemathtoken#1%
-% {\csname\@mt@
-% \ifcsname\@mt@\mathcollection#1\endcsname
-% \mathcollection
-% \else\ifcsname\@mt@\nomathcollection#1\endcsname
-% \nomathcollection
-% \fi\fi
-% #1\endcsname}
-%
-% \endETEX
-%
-% \beginTEX
-%
-% \def\dohandlemathtoken#1%
-% {\csname\@mt@
-% \@EA\ifx\csname\@mt@\mathcollection#1\endcsname\relax
-% \@EA\ifx\csname\@mt@\nomathcollection#1\endcsname\relax
-% \else
-% \nomathcollection
-% \fi
-% \else
-% \mathcollection
-% \fi
-% #1\endcsname}
-%
-% \endTEX
-
-%D Because a command can have a different meaning in math
-%D and in text mode, we provide a selector. We also provide
-%D the pure alternatives as \type {\mathcharacter} and \type
-%D {\textcharacter}.
-
-\ifx\dohandlecommand\undefined \wait \fi % troubles !
-
-\def\mathcharacter\dohandlemathtoken
-\def\textcharacter\dohandlecommand % better \dohandletexttoken
-
-% More clever layout:
-%
-% \beginETEX \ifcsname
-%
-% \def\dohandlemathtoken#1%
-% {\csname
-% \ifmmode
-% \ifcsname\@mt@\mathcollection#1\endcsname
-% \@mt@\mathcollection
-% \else\ifcsname\@mt@\nomathcollection#1\endcsname
-% \@mt@\nomathcollection
-% \else\ifcsname\characterencoding#1\endcsname
-% \characterencoding
-% \else
-% \nocharacterencoding
-% \fi\fi\fi
-% \else
-% \ifcsname\characterencoding#1\endcsname
-% \characterencoding
-% \else
-% \nocharacterencoding
-% \fi
-% \fi
-% #1\endcsname}
-%
-% \endETEX
-%
-% \beginTEX
-%
-% \def\dohandlemathtoken#1%
-% {\csname
-% \ifmmode
-% \@EA\ifx\csname\@mt@\mathcollection#1\endcsname\relax
-% \@EA\ifx\csname\@mt@\nomathcollection#1\endcsname\relax
-% \@EA\ifx\csname\characterencoding#1\endcsname\relax
-% \nocharacterencoding
-% \else
-% \characterencoding
-% \fi
-% \else
-% \@mt@\nomathcollection
-% \fi
-% \else
-% \@mt@\mathcollection
-% \fi
-% \else
-% \@EA\ifx\csname\characterencoding#1\endcsname\relax
-% \nocharacterencoding
-% \else
-% \characterencoding
-% \fi
-% \fi
-% #1\endcsname}
-%
-% \endTEX
-%
-% fallback to math when in text mode (handy for unicode vectors)
-
-\beginETEX
-
-\def\dohandlemathtoken#1%
- {\csname
- \ifmmode
- \ifcsname\@mt@\mathcollection#1\endcsname
- \@mt@\mathcollection
- \else\ifcsname\@mt@\nomathcollection#1\endcsname
- \@mt@\nomathcollection
- \else\ifcsname\characterencoding#1\endcsname
- \characterencoding
- \else
- \nocharacterencoding
- \fi\fi\fi
- \else
- \ifcsname\characterencoding#1\endcsname
- \characterencoding
- \else\ifcsname\nocharacterencoding#1\endcsname
- \nocharacterencoding
- \else\ifcsname\@mt@\mathcollection#1\endcsname
- \strippedcsname\mathematics\expandafter\endcsname\csname\@mt@\mathcollection
- \else\ifcsname\@mt@\nomathcollection#1\endcsname
- \strippedcsname\mathematics\expandafter\endcsname\csname\@mt@\nomathcollection
- \else
- \nocharacterencoding
- \fi\fi\fi\fi
- \fi
- #1\endcsname}
-
-\endETEX
-
-\beginTEX
-
-\def\dohandlemathtoken#1%
- {\csname
- \ifmmode
- \@EA\ifx\csname\@mt@\mathcollection#1\endcsname\relax
- \@EA\ifx\csname\@mt@\nomathcollection#1\endcsname\relax
- \@EA\ifx\csname\characterencoding#1\endcsname\relax
- \nocharacterencoding
- \else
- \characterencoding
- \fi
- \else
- \@mt@\nomathcollection
- \fi
- \else
- \@mt@\mathcollection
- \fi
- \else
- \@EA\ifx\csname\characterencoding#1\endcsname\relax
- \@EA\ifx\csname\nocharacterencoding#1\endcsname\relax
- \@EA\ifx\csname\@mt@\mathcollection#1\endcsname\relax
- \@EA\ifx\csname\@mt@\nomathcollection#1\endcsname\relax
- \nocharacterencoding
- \else
- \strippedcsname\mathematics\expandafter\endcsname\csname\@mt@\nomathcollection
- \fi
- \else
- \strippedcsname\mathematics\expandafter\endcsname\csname\@mt@\mathcollection
- \fi
- \else
- \nocharacterencoding
- \fi
- \else
- \characterencoding
- \fi
- \fi
- #1\endcsname}
-
-\endTEX
-
-%D Now we redefine the text encoding handler.
-
-%D A better fallback:
-
-% Just ETEX which is the default nowadays.
-
-\beginETEX \ifcsname
-
-\def\dohandlemathtoken#1%
- {\csname
- \ifmmode
- \ifcsname\@mt@\mathcollection:\outerencoding#1\endcsname
- \@mt@\mathcollection:\outerencoding
- \else\ifcsname\@mt@\mathcollection#1\endcsname
- \@mt@\mathcollection
- \else\ifcsname\@mt@\nomathcollection#1\endcsname
- \@mt@\nomathcollection
- \else\ifcsname\characterencoding#1\endcsname
- \characterencoding
- \else
- \nocharacterencoding
- \fi\fi\fi\fi
- \else
- \ifcsname\characterencoding#1\endcsname
- \characterencoding
- \else\ifcsname\nocharacterencoding#1\endcsname
- \nocharacterencoding
- \else\ifcsname\@mt@\mathcollection:\outerencoding#1\endcsname
- \@mt@\mathcollection:\outerencoding
- \else\ifcsname\@mt@\mathcollection#1\endcsname
- \strippedcsname\mathematics\expandafter\endcsname\csname\@mt@\mathcollection
- \else\ifcsname\@mt@\nomathcollection#1\endcsname
- \strippedcsname\mathematics\expandafter\endcsname\csname\@mt@\nomathcollection
- \else
- \nocharacterencoding
- \fi\fi\fi\fi\fi
- \fi
- #1\endcsname}
-
-\endETEX
-
-\let\dohandlecommand\dohandlemathtoken
-
-\def\definefamilysynonym
- {\dotripleempty\dodefinefamilysynonym}
-
-\def\dodefinefamilysynonym[#1][#2][#3]% [mathcollection] [] []
- {\ifthirdargument
- \setvalue{\@mf@#1#2}{#3}%
- \else
- \setvalue{\@mf@ #1}{#2}%
- \fi}
-
-\let\mathsubfamily\empty
-
-\def\purefamily #1{\csname \truefamily{#1}\mathsubfamily\s!fam\endcsname}
-\def\purefamilyhex#1{\csname hex\truefamily{#1}\mathsubfamily\s!fam\endcsname}
-
-\beginETEX \ifcsname
-
-\def\truefamily#1%
- {\ifcsname\@mf@\mathcollection#1\endcsname
- \@EA\truefamily\csname\@mf@\mathcollection#1\endcsname
- \else\ifcsname\@mf@#1\endcsname
- \@EA\truefamily\csname\@mf@#1\endcsname
- \else\ifcsname\@mf@\nomathcollection#1\endcsname
- \@EA\truefamily\csname\@mf@\nomathcollection#1\endcsname
- \else
- #1%
- \fi\fi\fi}
-
-\endETEX
-
-\beginTEX
-
-\def\truefamily#1%
- {\@EA\ifx\csname\@mf@\mathcollection#1\endcsname\relax
- \@EA\ifx\csname\@mf@#1\endcsname\relax
- \@EA\ifx\csname\@mf@\nomathcollection#1\endcsname\relax
- #1%
- \else
- \@EA\truefamily\csname\@mf@\nomathcollection#1\endcsname
- \fi
- \else
- \@EA\truefamily\csname\@mf@#1\endcsname
- \fi
- \else
- \@EA\truefamily\csname\@mf@\mathcollection#1\endcsname
- \fi}
-
-\endTEX
-
-\newif\ifdynamicmathfamilies \dynamicmathfamiliestrue % true per 2003.11.25; needed for mixed bold math
-
-\let\normalpurefamilyhex\purefamilyhex
-
-% todo: reset collection (tok legen) en opnieuw laden met true
-
-\def\definemathsymbol
- {\dosixtupleempty\dodefinemathsymbol}
-
-\def\dodefinemathsymbol[#1][#2][#3][#4][#5][#6]%
- {\unexpanded\setgvalue{#1}{\dohandlemathtoken{#1}}%
- \ifdynamicmathfamilies \let\purefamilyhex\relax \fi
- \setevalue{\@mt@\mathcollection#1}%
- {\ifsixthargument
- \ifnum\puremathcode{#2}=\mathradicalcode
- \radical"%
- \else
- \delimiter"%
- \ifnum\puremathcode{#2}>7 0\else\puremathcode{#2}\fi
- \fi
- \purefamilyhex{#3}\uchexnumbers{#4}%
- \purefamilyhex{#5}\uchexnumbers{#6}\space
- \else\iffourthargument
- \ifnum\puremathcode{#2}=\mathaccentcode
- \mathaccent\else\mathchar
- \fi
- "\ifnum\puremathcode{#2}>7 0\else\puremathcode{#2}\fi
- \purefamilyhex{#3}\uchexnumbers{#4}\space
- \fi\fi}%
- \let\purefamilyhex\normalpurefamilyhex
- \tracemathsymbol{#1}}
-
-\def\tracemathsymbol#1%
- {\iftracemathcollection
- {\endgraf
- \hbox{\tex{#1}~:~{\mathematics{\getvalue{#1}{}}}}
- \endgraf}%
- \fi}
-
-\def\definemathcharacter
- {\dosixtupleempty\dodefinemathcharacter}
-
-% \def\dodefinemathcharacter[#1][#2][#3][#4][#5][#6]%
-% {\setmathtoks
-% \ifdynamicmathfamilies \let\purefamilyhex\relax \fi
-% \doifnumberelse{#1}
-% {\scratchcounter#1}
-% {\scratchcounter\@EA`\string#1}%
-% \appendetoks
-% \ifsixthargument
-% \delcode\the\scratchcounter="%
-% \ifnum\puremathcode{#2}>7 0\else\puremathcode{#2}\fi
-% \purefamilyhex{#3}\uchexnumbers{#4}%
-% \purefamilyhex{#5}\uchexnumbers{#6}\space
-% \else\iffourthargument
-% \mathcode\the\scratchcounter="%
-% \ifnum\puremathcode{#2}>7 0\else\puremathcode{#2}\fi
-% \purefamilyhex{#3}\uchexnumbers{#4}\space
-% \fi\fi\to\mathtoks
-% \let\purefamilyhex\normalpurefamilyhex
-% \tracemathcharacter{#1}}
-
-\newtoks\mathscratchtoks
-
-\def\definemathcharacter
- {\chardef\mathcharactermode\zerocount
- \dosixtupleempty\dodefinemathcharacter}
-
-\def\redefinemathcharacter
- {\chardef\mathcharactermode\plusone
- \dosixtupleempty\dodefinemathcharacter}
-
-\def\dodefinemathcharacter[#1][#2][#3][#4][#5][#6]%
- {\ifcase\mathcharactermode
- \setmathtoks
- \or
- \let\mathtoks\mathscratchtoks \mathtoks\emptytoks
- \fi
- \ifdynamicmathfamilies \let\purefamilyhex\relax \fi
- \doifnumberelse{#1}
- {\scratchcounter#1}
- {\scratchcounter\@EA`\string#1}%
- \appendetoks
- \ifsixthargument
- \delcode\the\scratchcounter="%
- \ifnum\puremathcode{#2}>7 0\else\puremathcode{#2}\fi
- \purefamilyhex{#3}\uchexnumbers{#4}%
- \purefamilyhex{#5}\uchexnumbers{#6}\space
- \else\iffourthargument
- \mathcode\the\scratchcounter="%
- \ifnum\puremathcode{#2}>7 0\else\puremathcode{#2}\fi
- \purefamilyhex{#3}\uchexnumbers{#4}\space
- \fi\fi
- \to \mathtoks
- \let\purefamilyhex\normalpurefamilyhex
- \ifcase\mathcharactermode
- \expandafter\tracemathcharacter
- \or
- \the\mathtoks
- \mathtoks\emptytoks
- \expandafter\gobbleoneargument
- \fi{#1}} % maybe lookahead
-
-\def\tracemathcharacter#1%
- {\iftracemathcollection
- {\endgraf
- \doifnumberelse{#1}
- {\hbox{\tttf\rawcharacter{#1}~:~{\mathematics{\rawcharacter{#1}}}}}
- {\hbox{\type{#1}~:~{\mathematics{#1}}}}
- \endgraf}%
- \fi}
-
-\def\definemathcommand
- {\dotripleempty\dodefinemathcommand}
-
-\def\dodefinemathcommand[#1][#2][#3]#4% command class args meaning
- {\unexpanded\setgvalue{#1}{\dohandlemathtoken{#1}}%
- \ifthirdargument
- \processaction
- [#3]
- [one=>\setvalue{\@mt@\mathcollection#1}##1{\puremathcomm{#2}{#4{##1}}},
- two=>\setvalue{\@mt@\mathcollection#1}##1##2{\puremathcomm{#2}{#4{##1}{##2}}}]%
- \else\ifsecondargument
- \setvalue{\@mt@\mathcollection#1}{\puremathcomm{#2}{#4}}%
- \else
- \setvalue{\@mt@\mathcollection#1}{\puremathcomm{nothing}{#4}}%
- \fi\fi
- \tracemathcommand{#1}}
-
-\def\tracemathcommand#1%
- {\iftracemathcollection
- \endgraf\hbox{\tex{#1}~:~{\mathematics{\getvalue{#1}{}}}}\endgraf
- \fi}
-
-\def\startmathcollection[#1]%
- {\pushmacro\mathcollection
- \setmathcollection{#1}}
-
-\def\setmathcollection#1%
- {\edef\mathcollection{#1}%
- \doifundefined{\@ml@\mathcollection}
- {\expandafter\newtoks\csname\@ml@\mathcollection\endcsname}}
-
-\def\stopmathcollection
- {\popmacro\mathcollection}
-
-\def\startrawmathcollection
- {\startmathcollection}
-
-\def\stoprawmathcollection
- {\stopmathcollection}
-
-\newtoks\mathtoks
-
-\def\setmathtoks
- {\@EA\let\@EA\mathtoks\csname\@ml@\mathcollection\endcsname}
-
-\def\currentmathcollection{\mathcollection}
-
-\let\nomathcollection\s!default
-
-\def\enablemathcollection[#1]%
- {\doifnot{#1}\s!default
- {\setmathcollection\s!default
- \the\csname\@ml@\mathcollection\endcsname}%
- \setmathcollection{#1}%
- \the\csname\@ml@\mathcollection\endcsname}
-
-% hook 'm into the font mechanism
-
-\definefilesynonym[\f!mathprefix\s!default][\f!mathprefix tex]
-
-\def\usemathcollection
- {\dodoubleempty\dousemathcollection}
-
-\def\dousemathcollection[#1][#2]%
- {\pushmacro\fontclass
- \pushmacro\mathclass
- \ifsecondargument
- \edef\fontclass{#1}%
- \edef\mathclass{#2}%
- \else
- \edef\mathclass{#1}%
- \fi
- \doinputonce{\truefilename{\f!mathprefix\mathclass}}%
- \doifsomething\fontclass{\setevalue{\@mc@\fontclass\@mc@}{\mathclass}}%
- \popmacro\mathclass
- \popmacro\fontclass}
-
-\let\mathclass\nomathcollection
-
-\letvalue{\@mc@\@mc@}\nomathcollection
-
-% \def\autoenablemathcollection
-% {\doifdefinedelse{\@mc@\fontclass\@mc@}
-% {\enablemathcollection[\getvalue{\@mc@\fontclass\@mc@}]}
-% {\enablemathcollection[\s!default]}} % ? ? ?
-
-\def\autoenablemathcollection
- {\expanded{\enablemathcollection[\executeifdefined{\@mc@\fontclass\@mc@}\nomathcollection]}}
-
-\appendtoks\autoenablemathcollection\to\mathstrategies
-
-\fetchruntimecommand \showmathcharacters {\f!mathprefix\s!run}
-\fetchruntimecommand \showmathtoken {\f!mathprefix\s!run}
-
-\def\resetmathcollection[#1]%
- {\def\mathcollection{#1}%
- \forgetdoingonce{\f!mathprefix\mathcollection}%
- \setmathtoks
- \ifx\mathtoks\relax\else\mathtoks\emptytoks\fi}
-
-%D \macros
-%D {ifmathpunctuation, enablemathpunctuation,
-%D definemathpunctuation}
-%D
-%D This will replace periods by comma's:
-%D
-%D \starttyping
-%D \definemathpunctuation . textcomma textperiod
-%D \definemathpunctuation , textcomma textcomma
-%D
-%D \appendtoks
-%D \redefinemathcharacter [.] [ord] [mi] ["3B]%
-%D \to \everymathpunctuation
-%D \stoptyping
-
-% \newif\ifmathpunctuation
-%
-% \def\enablemathpunctuation{\mathpunctuationtrue}
-%
-% \def\definemathpunctuation #1 #2 #3 %
-% {\appendtoks
-% \initializemathpunctuation{#1}{#2}{#3}%
-% \to\everymathematics}
-%
-% \def\initializemathpunctuation#1#2#3% sloowww
-% {\ifmathpunctuation % hm move this test to everymath, or better a separate token list
-% \mathcode`#1="8000
-% \defineactivecharacter #1 {\dohandlemathpunctuation{#2}{#3}}%
-% \fi}
-%
-% \unexpanded\def\dohandlemathpunctuation#1#2% \if fails in mathml interval
-% {\def\next{\csname\ifx\space\nexttoken#2\else#1\fi\endcsname}%
-% \futurelet\nexttoken\next}
-
-\newtoks\everymathpunctuation
-
-\def\enablemathpunctuation % can be called inside math, so after \everymathematics
- {\the\everymathpunctuation
- \appendtoksonce
- \the\everymathpunctuation
- \to\everymathematics}
-
-\def\definemathpunctuation #1 #2 #3 %
- {\appendtoks
- \initializemathpunctuation{#1}{#2}{#3}%
- \to\everymathpunctuation}
-
-\def\initializemathpunctuation#1#2#3% sloowww
- {\mathcode`#1="8000
- \defineactivecharacter #1 {\dohandlemathpunctuation{#2}{#3}}}
-
-\unexpanded\def\dohandlemathpunctuation#1#2% \if fails in mathml interval
- {\def\next{\csname\ifx\space\nexttoken#2\else#1\fi\endcsname}%
- \futurelet\nexttoken\next}
-
-%D \startbuffer
-%D \enablemathpunctuation$(1,2) (1, 2) (1{,}2) \hbox{foo, not bar}$
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D \blank{\getbuffer}\blank
-
-%D needed for sin, cos etc
-
-\def\mfunction #1{{\mr#1}}
-
-% \def\mlimitsfunction #1{\mathlimopcomm{{\mr#1}}
-% \def\mnolimitsfunction#1{\mathnolopcomm{{\mr#1}}
-
-%D Taco posted this solution as response to a mail by Olivier, so
-%D let's integrate it here.
-
-% \def\setmathfunctionstyle#1% rm ss tt
-% {\def\mfunction##1% no families, just scaling a la text
-% {\mathchoice
-% {\hbox{\csname#1\endcsname\tf ##1}}
-% {\hbox{\csname#1\endcsname\tf ##1}}
-% {\hbox{\csname#1\endcsname\tfx ##1}}
-% {\hbox{\csname#1\endcsname\tfxx##1}}}}
-
-\def\currentmscaledstyle{rm} % will be plugged into the typeface text=ss option
-
-\def\setmathfunctionstyle#1% rm ss tt
- {\doifsomething{#1}
- {\def\currentmscaledstyle{#1}%
- \def\mathopnolimits##1{\mathop{\mscaledtext{##1}}\nolimits}%
- \def\mfunction##1{\mscaledtext{##1}}}}
-
-\def\mscaledtext#1%
- {\mathchoice
- {\hbox{\csname\currentmscaledstyle\endcsname\tf #1}}
- {\hbox{\csname\currentmscaledstyle\endcsname\tf #1}}
- {\hbox{\csname\currentmscaledstyle\endcsname\tfx #1}}
- {\hbox{\csname\currentmscaledstyle\endcsname\tfxx#1}}}
-
-%D We can force the way functions are typeset by manipulating the text
-%D option:
-%D
-%D \starttyping
-%D \definetypeface[iwona][ss][sans][iwona][default][encoding=texnansi]
-%D \definetypeface[iwona][mm][math][iwona][default][encoding=texnansi,text=ss]
-%D \stoptyping
-%D
-%D This hooks into the math handler with:
-
-\appendtoks
- \setmathfunctionstyle\currentmathtextstyle
-\to \everybodyfont
-
-%D Usage:
-%D
-%D \starttyping
-%D \setmathfunctionstyle\fontstyle % or {rm} or {ss} or ..
-%D \rm test $\sin{(x^{\sin(x^{\sin(x)})})}$ test
-%D \ss test $\sin{(x^{\sin(x^{\sin(x)})})}$ test
-%D \tt test $\sin{(x^{\sin(x^{\sin(x)})})}$ test
-%D \stoptyping
-
-\edef\hexmrfam {0} \edef\hexbsfam {8}
-\edef\hexmifam {1} \edef\hexbifam {9}
-\edef\hexsyfam {2} \edef\hexscfam {A}
-\edef\hexexfam {3} \edef\hextffam {B}
-\edef\hexitfam {4} \edef\hexmafam {C}
-\edef\hexslfam {5} \edef\hexmbfam {D}
-\edef\hexbffam {6} \edef\hexmcfam {E}
-\edef\hexnnfam {7} \edef\hexmdfam {F}
-
-\definefamilysynonym [default] [letters] [mr]
-\definefamilysynonym [default] [operators] [sy]
-\definefamilysynonym [default] [lcgreek] [mi]
-\definefamilysynonym [default] [ucgreek] [mr]
-\definefamilysynonym [default] [vargreek] [mi]
-\definefamilysynonym [default] [mitfamily] [mi]
-\definefamilysynonym [default] [calfamily] [sy]
-
-\definefamilysynonym [default] [0] [mr]
-\definefamilysynonym [default] [1] [mi]
-\definefamilysynonym [default] [2] [sy]
-\definefamilysynonym [default] [3] [ex]
-
-\enablemathcollection[default]
-
-\usemathcollection [default] [tex]
-\usemathcollection [default] [ams]
-\usemathcollection [default] [uni]
-
-\enablemathcollection[default]
-
-%D Some goodies:
-
-\def\Angstrom{\nomathematics{\Aring}}
-
-%D Bold math:
-%D
-%D \starttyping
-%D \usetypescript [lucida] [texnansi]
-%D
-%D \definetypeface [boldmath] [rm] [serif]
-%D [lucida] [default] [encoding=texnansi]
-%D \definetypeface [boldmath] [tt] [mono]
-%D [lucida] [default] [encoding=texnansi]
-%D \definetypeface [boldmath] [ss] [sans]
-%D [lucida] [default] [encoding=texnansi]
-%D \definetypeface [boldmath] [mm] [boldmath]
-%D [lucida] [default] [encoding=texnansi]
-%D
-%D \switchtobodyfont[lucida,10pt]
-%D
-%D \showmathtoken{Gamma} $\Gamma \Delta \alpha \delta \zeta$
-%D
-%D \switchtobodyfont[boldmath,10pt]
-%D
-%D \showmathtoken{Gamma} $\Gamma \Delta \alpha \delta \zeta$
-%D \stoptyping
-
-%D \macros
-%D {nonknuthmode, donknuthmode}
-%D
-%D The underscore is frequently used in manuals but unfortunately \TEX\ prefers
-%D it to be a math specific character. And since computer modern fonts didn't
-%D have an underscore, one had to use commands to fake one. Nowadays we do
-%D have underscores in latin modern, and since all other fonts have them, we
-%D decided to get away from the restriction to use the underscore character in
-%D text mode.
-%D
-%D \starttyping
-%D \def\test#1{#1}
-%D
-%D \nonknuthmode $x_2$ x_2 \test{$x_2$} \test{x_2}
-%D
-%D \donknuthmode $x_2$ x_2 \test{$x_2$} \test{x_2}
-%D \stoptyping
-%D
-%D The result is as expected: the first line typesets ok, while the second
-%D one triggers an error message.
-
-\bgroup
-
- \ifx\normalsuber\undefined \def\normalsuber{_} \fi
- \ifx\normalsuper\undefined \def\normalsuper{^} \fi
-
- \catcode`_=\active
- \catcode`^=\active
-
- \gdef\nonknuthmode
- {\appendtoks\let_\normalsuber\let^\normalsuper\to\everymathematics
- \mathcode`_="8000
- \mathcode`^="8000
- \catcode`_=\@@other
- \catcode`^=\@@other
- \let\nonknuthmode\relax}
-
- \gdef\donknuthmode
- {\catcode`_=\@@subscript
- \catcode`^=\@@superscript}
-
-\egroup
-
-%D \macros
-%D {checkdelimiters, fakeleftdelimiter, fakerightdelimiter}
-%D
-%D Handy for non matching situations (as with mathml):
-%D
-%D \starttyping
-%D \checkdelimiters{... bla bla ...}
-%D \fakeleftdelimiter
-%D ... bla bla ...
-%D \fakerightdelimiter
-%D \stoptyping
-
-\newcount\delimitercount
-
-\def\leftfakedelimiter {\advance\delimitercount\minusone\gobbleoneargument}%
-\def\rightfakedelimiter{\advance\delimitercount\plusone \gobbleoneargument}%
-
-\def\checkdelimiters#1%
- {\delimitercount\zerocount
- \setbox\scratchbox\hbox\bgroup
- \let\left \leftfakedelimiter
- \let\right\rightfakedelimiter
- $#1\expandafter$\expandafter
- \egroup
- \expandafter\delimitercount\the\delimitercount\relax}
-
-\def\fakeleftdelimiter {\ifnum\delimitercount>\zerocount\left .\fi}
-\def\fakerightdelimiter{\ifnum\delimitercount<\zerocount\right.\fi}
-
-% \def\scaledmathdelimiter#1#2%
-% {\begingroup
-% \scratchdimen\lineheight
-% \hbox{$\left#2\vbox\!!to#1\scratchdimen{}\right.\n@space$}%
-% \endgroup}
-%
-% \let\scaledmathdelimiter\@@dobig
-%
-% \def\scaledmathopen #1#2{\mathopen {\scaledmathdelimiter{#1}{#2}}}
-% \def\scaledmathclose#1#2{\mathclose{\scaledmathdelimiter{#1}{#2}}}
-
-%D Needed for unicode:
-
-\def\nulloperator{\mathortext{\mathop{\null}}{\null}}
-
-%D Plugins.
-
-\loadmarkfile{math-ini}
-
-\protect \endinput
-
-\tracemathcollectiontrue
- \input math-tex \page
-\setupbodyfont[ams] \enablemathcollection[default] \input math-ams \page
-\setupbodyfont[lbr] \enablemathcollection[lbr] \input math-lbr \page
-\setupbodyfont[eul] \enablemathcollection[eul] \input math-eul \stoptext
diff --git a/Master/texmf-dist/tex/context/base/math-inl.mkiv b/Master/texmf-dist/tex/context/base/math-inl.mkiv
new file mode 100644
index 00000000000..93168b885ff
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/math-inl.mkiv
@@ -0,0 +1,353 @@
+%D \module
+%D [ file=math-inl,
+%D version=2008.10.20,
+%D title=\CONTEXT\ Math Macros,
+%D subtitle=Inline,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA-ADE / Hans Hagen]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Math Macros / Inline}
+
+\unprotect
+
+%D \macros
+%D {...}
+%D
+%D New and experimental: snapping big inline math!
+
+\newconditional\halfcrazymathlines % \settrue\halfcrazymathlines
+\newconditional\crazymathsnapping % \settrue\crazymathsnapping
+
+\appendtoks
+ \doifelse\@@mtgrid\v!yes \settrue\setfalse\crazymathsnapping
+ \doifelse\@@mtstep\v!halfline\settrue\setfalse\halfcrazymathlines
+\to \everysetuptextformulas
+
+\setuptextformulas
+ [\c!grid=\v!yes,
+ \c!step=\v!line]
+
+\newcount\crazymathhack
+
+\let\lastcrazymathline \!!zeropoint
+\let\lastcrazymathpage \!!zerocount
+\let\lastcrazymathprelines \!!zerocount
+\let\lastcrazymathpostlines\!!zerocount
+
+\def\crazymathtag{amh:\the\crazymathhack}
+\def\crazytexttag{\v!text:\lastcrazymathpage}
+
+\def\crazymathindent{\hskip\MPx\crazymathtag\hskip-\MPx\crazytexttag}
+
+\def\flushcrazymathbox
+ {\nextboxht\strutheight
+ \nextboxdp\strutdepth
+ \hbox{\iftracegridsnapping\ruledhbox\fi{\flushnextbox}}}
+
+\def\snappedinlineformula
+ {\dosingleempty\dosnappedinlineformula}
+
+%D \starttabulate[|Tl|l|]
+%D \NC - \NC half lines \NC \NR
+%D \NC + \NC full lines \NC \NR
+%D \NC = \NC force \NC \NR
+%D \NC < \NC force, minus pre \NC \NR
+%D \NC > \NC force, minus post \NC \NR
+%D \stoptabulate
+
+\def\inlinemathmargin{1pt}
+
+\settrue\autocrazymathsnapping
+
+% FROM NOW ON, CHANGES AS OPTIONS
+
+% TODO: SKYLINE (PREV LINE POS SCAN)
+
+% we can rewrite this in lua but maybe we don't need it
+% any more when we have proper snapping anyway
+
+\def\dosnappedinlineformula[#1]#2%
+ {\ifvmode\dontleavehmode\fi % tricky
+ \strut % prevents funny space at line break
+ \begingroup % interesting: \bgroup can make \vadjust disappear
+ \ifconditional\crazymathsnapping
+ \ifgridsnapping
+ \checktextbackgrounds % we need pos tracking, to be made less redundant
+ \donetrue
+ \else
+ \donefalse
+ \fi
+ \else
+ \donefalse
+ \fi
+ \!!doneafalse % forced or not auto
+ \!!donebfalse % too heigh
+ \!!donecfalse % too low
+ \!!donedfalse % less before
+ \!!doneefalse % less after
+ \ifdone
+ \setbox\nextbox\hbox{$#2$}%
+ \iftracegridsnapping
+ \setbox\nextbox\ruledhbox
+ {\backgroundline[gray]{\showstruts\strut\flushnextbox}}%
+ \fi
+ \def\docommand##1%
+ {\doif{##1}-{\settrue \halfcrazymathlines}%
+ \doif{##1}+{\setfalse\halfcrazymathlines}%
+ \doif{##1}={\!!doneatrue}%
+ \doif{##1}<{\!!donedtrue}%
+ \doif{##1}>{\!!doneetrue}}%
+ \processcommalist[#1]\docommand
+ \if!!doneb
+ \if!!donec \else
+ \setfalse\halfcrazymathlines
+ \fi
+ \else
+ \if!!donec
+ \setfalse\halfcrazymathlines
+ \fi
+ \fi
+ \donefalse
+ \if!!donea
+ \donetrue
+ \scratchdimen \nextboxht
+ \advance\scratchdimen .5\lineheight
+ \nextboxht\scratchdimen
+ \scratchdimen \nextboxdp
+ \advance\scratchdimen .5\lineheight
+ \nextboxdp\scratchdimen
+ \else\ifdim\nextboxht>\strutht
+ \donetrue
+ \else\ifdim\nextboxdp>\strutdp
+ \donetrue
+ \fi\fi\fi
+ \ifconditional\autocrazymathsnapping \else \if!!donea \else
+ % don't compensate, just snap to strut
+ \donefalse
+ % signal for next else, snap line to strut
+ \!!doneatrue
+ \fi \fi
+ \fi
+ \ifdone
+ % analyze height
+ \scratchdimen\inlinemathmargin
+ \advance\scratchdimen \strutht
+ \ifdim\nextboxht<\scratchdimen \else \!!donebtrue \fi
+ % analyze depth
+ \scratchdimen\inlinemathmargin
+ \advance\scratchdimen \strutdp
+ \ifdim\nextboxdp<\scratchdimen \else \!!donectrue \fi
+ % analyzed or forced
+ \ifdone
+ \global\advance\crazymathhack\plusone
+ \donefalse
+ \ifnum\MPp\crazymathtag=\lastcrazymathpage\relax
+ \ifdim\MPy\crazymathtag=\lastcrazymathline\relax
+ \donetrue
+ \fi
+ \fi
+ \ifnum\MPp\crazymathtag=\zerocount \donefalse \fi
+ \ifdim\MPy\crazymathtag=\zeropoint \donefalse \fi
+ \ifdone
+ % same page and same line
+ \else
+ \global\let\lastcrazymathprelines \!!zerocount
+ \global\let\lastcrazymathpostlines\!!zerocount
+ \xdef\lastcrazymathpage{\MPp\crazymathtag}%
+ \xdef\lastcrazymathline{\MPy\crazymathtag}%
+ \fi
+ \if!!doneb
+ % \getrawnoflines\nextboxht
+ \scratchdimen\nextboxht
+ \advance\scratchdimen-\strutht
+ \getnoflines\scratchdimen
+ \if!!doned \advance\noflines\minusone \fi
+ \scratchcounter\noflines
+ \advance\noflines-\lastcrazymathprelines\relax
+ \ifnum\noflines>\zerocount
+ \xdef\lastcrazymathprelines{\the\scratchcounter}%
+ \scratchdimen\noflines\lineheight
+ \ifconditional\halfcrazymathlines
+ \advance\scratchdimen-.5\lineheight
+ \fi
+ \advance\scratchdimen-\strutdepth
+ \setbox\scratchbox\null
+ \wd\scratchbox2\bodyfontsize
+ \ht\scratchbox\scratchdimen
+ \dp\scratchbox\strutdepth
+ %%% top correction code (see below)
+ \normalvadjust pre
+ {%\allowbreak % sometimes breaks spacing
+ \forgetall
+ \crazymathindent
+ \iftracegridsnapping
+ \setbox\scratchbox\hbox{\green\ruledhbox{\box\scratchbox}}%
+ \fi
+ \box\scratchbox
+ \endgraf
+ \nobreak}%
+ \else\ifnum\scratchcounter>\zerocount
+ \normalvadjust pre
+ {\nobreak}%
+ \fi\fi
+ \fi
+ \if!!donec
+ % \getrawnoflines\nextboxdp
+ \scratchdimen\nextboxdp
+ \advance\scratchdimen-\strutdp
+ \getnoflines\scratchdimen
+ \if!!donee \advance\noflines\minusone \fi
+ \scratchcounter\noflines
+ \advance\noflines-\lastcrazymathpostlines\relax
+ \ifnum\noflines>\zerocount
+ \donetrue
+ \else\ifnum\lastcrazymathpostlines=\zerocount
+ \donetrue
+ \else
+ \donefalse
+ \fi\fi
+ \else
+ \donefalse
+ \fi
+ \ifdone
+ \xdef\lastcrazymathpostlines{\the\scratchcounter}%
+ \ifnum\lastcrazymathpostlines=\zerocount
+ \global\let\lastcrazymathpostlines\!!plusone
+ \fi
+ \hbox{\setposition\crazymathtag\flushcrazymathbox}%
+ \scratchdimen\noflines\lineheight
+ \advance\scratchdimen-\lineheight
+ \advance\scratchdimen+\strutheight
+ \ifdim\scratchdimen>\zeropoint \else
+ \scratchdimen\strutheight % todo : test for half lines
+ \fi
+ \ifconditional\halfcrazymathlines
+ \advance\scratchdimen-.5\lineheight
+ \fi
+ \setbox\scratchbox\null
+ \wd\scratchbox2\bodyfontsize
+ \ht\scratchbox\scratchdimen
+ \dp\scratchbox\strutdepth
+ \normalvadjust
+ {\forgetall
+ \crazymathindent
+ \iftracegridsnapping
+ \setbox\scratchbox\hbox{\blue\ruledhbox{\box\scratchbox}}%
+ \fi
+ \box\scratchbox
+ \endgraf
+ % precaution: else we stick below the text bottom
+ \ifconditional\halfcrazymathlines
+ \allowbreak
+ \else
+ \vskip-\lineheight
+ \vskip \lineheight
+ \fi}%
+ \else
+ \hbox{\setposition\crazymathtag\flushcrazymathbox}%
+ \fi
+ \else
+ \flushcrazymathbox
+ \fi
+ \else\if!!donea
+ \flushcrazymathbox
+ \else
+ \mathematics{#2}%
+ \fi\fi
+ \endgroup}
+
+\let\tform\mathematics
+\let\gform\snappedinlineformula
+
+% test set:
+%
+% \startbuffer
+% Crazy math \gform {1+x} or \gform {\dorecurse {100} {1+} 1 =
+% 101} and even gore crazy \gform {2^{2^2}_{1_1}}
+% again\dorecurse {20} { and again} \gform {\sqrt {\frac
+% {x^{5^5}} {\frac {1} {2}}}} even gore\dorecurse {50} { and
+% gore} \tform {\dorecurse {12} {\gform {\sqrt {\frac
+% {x^{5^5}} {3}}}+\gform {\sqrt {\frac {x^{5^5}} {\frac {1}
+% {2}}}}+}x=10}\dorecurse{20} { super crazy math}: \tform
+% {\dorecurse {30} {\gform {\sqrt {\frac {x^{5^5}} {3}}}+
+% \gform {\sqrt {\frac {x^{5^5}} {\frac {1} {2}}}}+ }x = 10},
+% and we're\dorecurse {20} { done}!
+% \stopbuffer
+%
+% \setupcolors[state=start] \setuppapersize[S6][S6]
+%
+% \showgrid \tracegridsnappingtrue \showstruts
+%
+% \starttext
+% \setuplayout[grid=yes,lines=15]\getbuffer \page
+% \setuplayout[grid=yes,lines=16]\getbuffer \page
+% \setuplayout[grid=yes,lines=17]\getbuffer \page
+% \setuplayout[grid=yes,lines=18]\getbuffer \page
+% \setuplayout[grid=yes,lines=19]\getbuffer \page
+% \stoptext
+%
+% test
+%
+% \startregels
+% \gform[<]{35 \cdot p^{\frac{3}{4}} = 70}
+% \gform{12{,}4 \cdot d^3 = 200}
+% \gform{a \cdot x^b}.
+% \gform{12x^6 \cdot \negative 3x^4}
+% \gform{\frac{12x^6}{\negative 3x^4}}
+% \gform{(4x^2)^3}
+% \gform{4x \sqrt{x} \cdot 3x^2}
+% \gform{\frac{2x^4}{4x \sqrt{x}}}
+% \gform{y = a \cdot x^b}.
+% \gform{y_1 = \frac{15x^2}{x}}
+% \gform{y_2 = x \cdot \sqrt{x}}
+% \gform{y_3 = \frac{6x^3}{x^2}}
+% \gform[<]{y_4 = \left(2x^2\right)^{\frac{1}{2}}}
+% \gform{y_1 = \frac{4x^5}{x^2}}
+% \gform{y_2 = 4 \cdot \sqrt{x}}
+% \gform{y_3 = 4x^3}
+% \gform{y_4 = \frac{100x}{\sqrt{x}}}
+% \gform[<]{y_5 = 4 \cdot x^{\frac{1}{2}}}
+% \gform{y_6 = \frac{1}{2} x \cdot 4x^2}
+% \gform{y_7 = 2 \cdot x^3}
+% \gform{y_8 = 100 \cdot x^{\frac{1}{2}}}
+% \gform{4x^8 \cdot 8x^3}
+% \gform{\frac{4x^8}{8x^3}}
+% \gform{\left(\negative3x^4\right)^3}
+% \gform{x^3 \sqrt{x} \cdot 3x^2}
+% \gform{\frac{6x^3}{x^2 \sqrt{x}}}
+% \gform{\frac{6}{2x^4}}
+% \gform{\frac{1}{3x^6}}
+% \gform{\frac{12x^8}{4x^{10}}}
+% \gform{\frac{4}{\sqrt{x}}}
+% \gform{\frac{1}{2x \sqrt{x}}}
+% \gform{\frac{2{,}25}{p} = 0{,}35}
+% \gform{4{,}50 + \frac{300}{k} = 4{,}70}
+% \gform{\frac{1200}{k+12} - 42 = 6}
+% \stopregels
+
+%D \macros
+%D {enableautomath}
+%D
+%D The next one can be dangerous, but handy in controlled
+%D situations.
+
+\bgroup \catcode`\$=\active
+
+\gdef\enableautomath
+ {\catcode`\$=\active
+ \def$##1${\snappedinlineformula{##1}}}
+
+% \gdef\enableautomath
+% {\catcode`\$=\active
+% \def${\doifnextcharelse$\doautodmath\doautoimath}%
+% \def\doautoimath##1${\snappedinlineformula{##1}}%
+% \def\doautodmath$##1$${\startformula##1\stopformula}}
+
+\egroup
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/math-int.mkiv b/Master/texmf-dist/tex/context/base/math-int.mkiv
new file mode 100644
index 00000000000..8ac2d477613
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/math-int.mkiv
@@ -0,0 +1,87 @@
+%D \module
+%D [ file=math-int,
+%D version=2007.07.19,
+%D title=\CONTEXT\ Math Macros,
+%D subtitle=Scripts,
+%D author={Hans Hagen \& Taco Hoekwater \& Aditya Mahajan},
+%D date=\currentdate,
+%D copyright=\PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Math Macros / Integrals}
+
+\unprotect
+
+%D \startbuffer
+%D $\int_a^b f(x) dx$ and also
+%D $\iint_a^b f(x,y) dxdy$, $\iiint_a^b f(x,y) dxdy$,
+%D $\iiiint_a^b f(x) dx$
+%D \startformula
+%D \int_a^b f(x) dx \quad
+%D \iint_a^b f(x) dx \quad
+%D \iiint_a^b f(x) dx \quad
+%D \iiiint_a^b f(x) dx \quad
+%D \stopformula
+%D \stopbuffer
+%D
+%D Default: \getbuffer
+%D
+%D Displaylimits: \setupmathematics[integral=displaylimits] \getbuffer
+%D
+%D Limits: \setupmathematics[integral=limits] \getbuffer
+
+\chardef\intlimitcode\zerocount % 0 nolimits 1 displaylimits 2 limits
+
+\def\intlimits
+ {\ifcase\intlimitcode \nolimits \or \displaylimits \or \limits \fi}
+
+\ifx\v!integral\undefined \def\v!integral{integral} \fi
+
+\appendtoks
+ \processaction
+ [\mathematicsparameter\v!integral]
+ [ nolimits=>\chardef\intlimitcode\zerocount,
+ displaylimits=>\chardef\intlimitcode\plusone,
+ limits=>\chardef\intlimitcode\plustwo]%
+\to \everysetupmathematics
+
+\setupmathematics
+ [\v!integral=nolimits]
+
+%D More integrals (AM):
+
+\definemathcommand [iint] {\repeatintegral\plusone }
+\definemathcommand [iiint] {\repeatintegral\plustwo }
+\definemathcommand [iiiint] {\repeatintegral\plusthree}
+
+\def\repeatintegral#1%
+ {\scratchtoks\emptytoks
+ \let\dointlimits\donothing
+ \let\dodointlimits\intlimits
+ \dorecurse{#1}{\appendtoks \intop \dointkern \to \scratchtoks}
+ \appendtoks \intop \dointlimits \dodointlimits \to \scratchtoks
+ \edef\dodorepeatintegral{\the\scratchtoks}%
+ \futurelet\next\dorepeatintegral}
+
+%D If the \type{\limits} option is used after \type{\iint}, use
+%D \type{\mathop} and fudge the left hand space a bit to make the
+%D subscript visually centered.
+
+\def\dointkern
+ {\mkern-6mu\mathchoice{\mkern-3mu}{}{}{}}
+
+\def\dorepeatintegral
+ {\ifx\next\limits \dointlimitcorrection \else
+ \ifx\next\displaylimits \dointlimitcorrection \else
+ \ifx\next\nolimits \donothing \else
+ \ifcase\intlimitcode\else \dointlimitcorrection \fi\fi\fi\fi
+ \dodorepeatintegral}
+
+\def\dointlimitcorrection
+ {\mkern-7mu\mathchoice{\mkern-2mu}{}{}{}%
+ \mathop\bgroup\mkern7mu\mathchoice{\mkern2mu}{}{}{}\let\dointlimits\egroup}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/math-lbr.tex b/Master/texmf-dist/tex/context/base/math-lbr.mkii
index 3df4a36d049..7ac7c3affd4 100644
--- a/Master/texmf-dist/tex/context/base/math-lbr.tex
+++ b/Master/texmf-dist/tex/context/base/math-lbr.mkii
@@ -394,12 +394,12 @@
\stopmathcollection
\def\LBRroot#1#2%
- {\setbox\z@\hbox{$\m@th#1\sqrt{#2}$}
- \dimen@\ht\z@ \advance\dimen@-\dp\z@
- \mkern5mu\raise.6\dimen@\copy\rootbox \mkern-7.5mu \box\z@}
+ {\setbox\zerocount\hbox{$\mathsurround\zeropoint#1\sqrt{#2}$}
+ \dimen@\ht\zerocount \advance\dimen@-\dp\zerocount
+ \mkern5mu\raise.6\dimen@\copy\rootbox \mkern-7.5mu \box\zerocount}
\def\LBRmatrix#1%
- {\null\,\vcenter{\normalbaselines\m@th
+ {\null\,\vcenter{\normalbaselines\mathsurround\zeropoint
\ialign{\hfil$##$\hfil&&\quad\hfil$##$\hfil\crcr
\mathstrut\crcr\noalign{\kern-0.9\baselineskip}
#1\crcr\mathstrut\crcr\noalign{\kern-0.9\baselineskip}}}\,}
@@ -420,6 +420,13 @@
\def\LBRbiggg{\@@dobig{17.72}}
\def\LBRBiggg{\@@dobig{21.25}}
+% \def\LBRbig {\@@dobig{0.820}}
+% \def\LBRBig {\@@dobig{1.080}}
+% \def\LBRbigg {\@@dobig{1.342}}
+% \def\LBRBigg {\@@dobig{1.603}}
+% \def\LBRbiggg{\@@dobig{1.772}}
+% \def\LBRBiggg{\@@dobig{2.125}}
+
\startrawmathcollection[lbr]
\definemathcommand [big] {\LBRbig}
diff --git a/Master/texmf-dist/tex/context/base/math-map.lua b/Master/texmf-dist/tex/context/base/math-map.lua
new file mode 100644
index 00000000000..0229790c2fb
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/math-map.lua
@@ -0,0 +1,365 @@
+if not modules then modules = { } end modules ['math-map'] = {
+ version = 1.001,
+ comment = "companion to math-ini.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+--[[ldx--
+<p>Remapping mathematics alphabets.</p>
+--ldx]]--
+
+-- oldstyle: not really mathematics but happened to be part of
+-- the mathematics fonts in cmr
+--
+-- persian: we will also provide mappers for other
+-- scripts
+
+-- todo: alphabets namespace
+-- maybe: script/scriptscript dynamic,
+
+local type, next = type, next
+
+mathematics = mathematics or { }
+
+-- we could use one level less and have tf etc be tables directly but the
+-- following approach permits easier remapping of a-a, A-Z and 0-9 to
+-- fallbacks; symbols is currently mostly greek
+
+mathematics.alphabets = {
+ regular = {
+ tf = {
+ digits = 0x00030,
+ ucletters = 0x00041,
+ lcletters = 0x00061,
+ symbols = {
+ [0x0391]=0x0391, [0x0392]=0x0392, [0x0393]=0x0393, [0x0394]=0x0394, [0x0395]=0x0395,
+ [0x0396]=0x0396, [0x0397]=0x0397, [0x0398]=0x0398, [0x0399]=0x0399, [0x039A]=0x039A,
+ [0x039B]=0x039B, [0x039C]=0x039C, [0x039D]=0x039D, [0x039E]=0x039E, [0x039F]=0x039F,
+ [0x03A0]=0x03A0, [0x03A1]=0x03A1, [0x03A3]=0x03A3, [0x03A4]=0x03A4, [0x03A5]=0x03A5,
+ [0x03A6]=0x03A6, [0x03A7]=0x03A7, [0x03A8]=0x03A8, [0x03A9]=0x03A9, [0x03B1]=0x03B1,
+ [0x03B2]=0x03B2, [0x03B3]=0x03B3, [0x03B4]=0x03B4, [0x03B5]=0x03B5, [0x03B6]=0x03B6,
+ [0x03B7]=0x03B7, [0x03B8]=0x03B8, [0x03B9]=0x03B9, [0x03BA]=0x03BA, [0x03BB]=0x03BB,
+ [0x03BC]=0x03BC, [0x03BD]=0x03BD, [0x03BE]=0x03BE, [0x03BF]=0x03BF, [0x03C0]=0x03C0,
+ [0x03C1]=0x03C1, [0x03C2]=0x03C2, [0x03C3]=0x03C3, [0x03C4]=0x03C4, [0x03C5]=0x03C5,
+ [0x03C6]=0x03C6, [0x03C7]=0x03C7, [0x03C8]=0x03C8, [0x03C9]=0x03C9, [0x03D1]=0x03D1,
+ [0x03D5]=0x03D5, [0x03D6]=0x03D6, [0x03F0]=0x03F0, [0x03F1]=0x03F1, [0x03F4]=0x03F4,
+ [0x03F5]=0x03F5, [0x2202]=0x2202, [0x2207]=0x2207,
+ },
+ },
+ it = {
+ ucletters = 0x1D434,
+ lcletters = { -- H
+ [0x00061]=0x1D44E, [0x00062]=0x1D44F, [0x00063]=0x1D450, [0x00064]=0x1D451, [0x00065]=0x1D452,
+ [0x00066]=0x1D453, [0x00067]=0x1D454, [0x00068]=0x0210E, [0x00069]=0x1D456, [0x0006A]=0x1D457,
+ [0x0006B]=0x1D458, [0x0006C]=0x1D459, [0x0006D]=0x1D45A, [0x0006E]=0x1D45B, [0x0006F]=0x1D45C,
+ [0x00070]=0x1D45D, [0x00071]=0x1D45E, [0x00072]=0x1D45F, [0x00073]=0x1D460, [0x00074]=0x1D461,
+ [0x00075]=0x1D462, [0x00076]=0x1D463, [0x00077]=0x1D464, [0x00078]=0x1D465, [0x00079]=0x1D466,
+ [0x0007A]=0x1D467,
+ },
+ symbols = {
+ [0x0391]=0x1D6E2, [0x0392]=0x1D6E3, [0x0393]=0x1D6E4, [0x0394]=0x1D6E5, [0x0395]=0x1D6E6,
+ [0x0396]=0x1D6E7, [0x0397]=0x1D6E8, [0x0398]=0x1D6E9, [0x0399]=0x1D6EA, [0x039A]=0x1D6EB,
+ [0x039B]=0x1D6EC, [0x039C]=0x1D6ED, [0x039D]=0x1D6EE, [0x039E]=0x1D6EF, [0x039F]=0x1D6F0,
+ [0x03A0]=0x1D6F1, [0x03A1]=0x1D6F2, [0x03A3]=0x1D6F4, [0x03A4]=0x1D6F5, [0x03A5]=0x1D6F6,
+ [0x03A6]=0x1D6F7, [0x03A7]=0x1D6F8, [0x03A8]=0x1D6F9, [0x03A9]=0x1D6FA, [0x03B1]=0x1D6FC,
+ [0x03B2]=0x1D6FD, [0x03B3]=0x1D6FE, [0x03B4]=0x1D6FF, [0x03B5]=0x1D700, [0x03B6]=0x1D701,
+ [0x03B7]=0x1D702, [0x03B8]=0x1D703, [0x03B9]=0x1D704, [0x03BA]=0x1D705, [0x03BB]=0x1D706,
+ [0x03BC]=0x1D707, [0x03BD]=0x1D708, [0x03BE]=0x1D709, [0x03BF]=0x1D70A, [0x03C0]=0x1D70B,
+ [0x03C1]=0x1D70C, [0x03C2]=0x1D70D, [0x03C3]=0x1D70E, [0x03C4]=0x1D70F, [0x03C5]=0x1D710,
+ [0x03C6]=0x1D711, [0x03C7]=0x1D712, [0x03C8]=0x1D713, [0x03C9]=0x1D714, [0x03D1]=0x1D717,
+ [0x03D5]=0x1D719, [0x03D6]=0x1D71B, [0x03F0]=0x1D718, [0x03F1]=0x1D71A, [0x03F4]=0x1D6F3,
+ [0x03F5]=0x1D716, [0x2202]=0x1D715, [0x2207]=0x1D6FB,
+ },
+ },
+ bf= {
+ digits = 0x1D7CE,
+ ucletters = 0x1D400,
+ lcletters = 0x1D41A,
+ symbols = {
+ [0x0391]=0x1D6A8, [0x0392]=0x1D6A9, [0x0393]=0x1D6AA, [0x0394]=0x1D6AB, [0x0395]=0x1D6AC,
+ [0x0396]=0x1D6AD, [0x0397]=0x1D6AE, [0x0398]=0x1D6AF, [0x0399]=0x1D6B0, [0x039A]=0x1D6B1,
+ [0x039B]=0x1D6B2, [0x039C]=0x1D6B3, [0x039D]=0x1D6B4, [0x039E]=0x1D6B5, [0x039F]=0x1D6B6,
+ [0x03A0]=0x1D6B7, [0x03A1]=0x1D6B8, [0x03A3]=0x1D6BA, [0x03A4]=0x1D6BB, [0x03A5]=0x1D6BC,
+ [0x03A6]=0x1D6BD, [0x03A7]=0x1D6BE, [0x03A8]=0x1D6BF, [0x03A9]=0x1D6C0, [0x03B1]=0x1D6C2,
+ [0x03B2]=0x1D6C3, [0x03B3]=0x1D6C4, [0x03B4]=0x1D6C5, [0x03B5]=0x1D6C6, [0x03B6]=0x1D6C7,
+ [0x03B7]=0x1D6C8, [0x03B8]=0x1D6C9, [0x03B9]=0x1D6CA, [0x03BA]=0x1D6CB, [0x03BB]=0x1D6CC,
+ [0x03BC]=0x1D6CD, [0x03BD]=0x1D6CE, [0x03BE]=0x1D6CF, [0x03BF]=0x1D6D0, [0x03C0]=0x1D6D1,
+ [0x03C1]=0x1D6D2, [0x03C2]=0x1D6D3, [0x03C3]=0x1D6D4, [0x03C4]=0x1D6D5, [0x03C5]=0x1D6D6,
+ [0x03C6]=0x1D6D7, [0x03C7]=0x1D6D8, [0x03C8]=0x1D6D9, [0x03C9]=0x1D6DA, [0x03D1]=0x1D6DD,
+ [0x03D5]=0x1D6DF, [0x03D6]=0x1D6E1, [0x03F0]=0x1D6DE, [0x03F1]=0x1D6E0, [0x03F4]=0x1D6B9,
+ [0x03F5]=0x1D6DC, [0x2202]=0x1D6DB, [0x2207]=0x1D6C1,
+ },
+ },
+ bi = {
+ ucletters = 0x1D468,
+ lcletters = 0x1D482,
+ symbols = {
+ [0x0391]=0x1D71C, [0x0392]=0x1D71D, [0x0393]=0x1D71E, [0x0394]=0x1D71F, [0x0395]=0x1D720,
+ [0x0396]=0x1D721, [0x0397]=0x1D722, [0x0398]=0x1D723, [0x0399]=0x1D724, [0x039A]=0x1D725,
+ [0x039B]=0x1D726, [0x039C]=0x1D727, [0x039D]=0x1D728, [0x039E]=0x1D729, [0x039F]=0x1D72A,
+ [0x03A0]=0x1D72B, [0x03A1]=0x1D72C, [0x03A3]=0x1D72E, [0x03A4]=0x1D72F, [0x03A5]=0x1D730,
+ [0x03A6]=0x1D731, [0x03A7]=0x1D732, [0x03A8]=0x1D733, [0x03A9]=0x1D734, [0x03B1]=0x1D736,
+ [0x03B2]=0x1D737, [0x03B3]=0x1D738, [0x03B4]=0x1D739, [0x03B5]=0x1D73A, [0x03B6]=0x1D73B,
+ [0x03B7]=0x1D73C, [0x03B8]=0x1D73D, [0x03B9]=0x1D73E, [0x03BA]=0x1D73F, [0x03BB]=0x1D740,
+ [0x03BC]=0x1D741, [0x03BD]=0x1D742, [0x03BE]=0x1D743, [0x03BF]=0x1D744, [0x03C0]=0x1D745,
+ [0x03C1]=0x1D746, [0x03C2]=0x1D747, [0x03C3]=0x1D748, [0x03C4]=0x1D749, [0x03C5]=0x1D74A,
+ [0x03C6]=0x1D74B, [0x03C7]=0x1D74C, [0x03C8]=0x1D74D, [0x03C9]=0x1D74E, [0x03D1]=0x1D751,
+ [0x03D5]=0x1D753, [0x03D6]=0x1D755, [0x03F0]=0x1D752, [0x03F1]=0x1D754, [0x03F4]=0x1D72D,
+ [0x03F5]=0x1D750, [0x2202]=0x1D74F, [0x2207]=0x1D735,
+ },
+ },
+ },
+ sansserif = {
+ tf = {
+ digits = 0x1D7E2,
+ ucletters = 0x1D5A0,
+ lcletters = 0x1D5BA,
+ },
+ it = {
+ ucletters = 0x1D608,
+ lcletters = 0x1D622,
+ },
+ bf = {
+ digits = 0x1D7EC,
+ ucletters = 0x1D5D4,
+ lcletters = 0x1D5EE,
+ symbols = {
+ [0x0391]=0x1D756, [0x0392]=0x1D757, [0x0393]=0x1D758, [0x0394]=0x1D759, [0x0395]=0x1D75A,
+ [0x0396]=0x1D75B, [0x0397]=0x1D75C, [0x0398]=0x1D75D, [0x0399]=0x1D75E, [0x039A]=0x1D75F,
+ [0x039B]=0x1D760, [0x039C]=0x1D761, [0x039D]=0x1D762, [0x039E]=0x1D763, [0x039F]=0x1D764,
+ [0x03A0]=0x1D765, [0x03A1]=0x1D766, [0x03A3]=0x1D768, [0x03A4]=0x1D769, [0x03A5]=0x1D76A,
+ [0x03A6]=0x1D76B, [0x03A7]=0x1D76C, [0x03A8]=0x1D76D, [0x03A9]=0x1D76E, [0x03B1]=0x1D770,
+ [0x03B2]=0x1D771, [0x03B3]=0x1D772, [0x03B4]=0x1D773, [0x03B5]=0x1D774, [0x03B6]=0x1D775,
+ [0x03B7]=0x1D776, [0x03B8]=0x1D777, [0x03B9]=0x1D778, [0x03BA]=0x1D779, [0x03BB]=0x1D77A,
+ [0x03BC]=0x1D77B, [0x03BD]=0x1D77C, [0x03BE]=0x1D77D, [0x03BF]=0x1D77E, [0x03C0]=0x1D77F,
+ [0x03C1]=0x1D780, [0x03C2]=0x1D781, [0x03C3]=0x1D782, [0x03C4]=0x1D783, [0x03C5]=0x1D784,
+ [0x03C6]=0x1D785, [0x03C7]=0x1D786, [0x03C8]=0x1D787, [0x03C9]=0x1D788, [0x03D1]=0x1D78B,
+ [0x03D5]=0x1D78D, [0x03D6]=0x1D78F, [0x03F0]=0x1D78C, [0x03F1]=0x1D78E, [0x03F4]=0x1D767,
+ [0x03F5]=0x1D78A, [0x2202]=0x1D789, [0x2207]=0x1D76F,
+ },
+ },
+ bi = {
+ ucletters = 0x1D63C,
+ lcletters = 0x1D656,
+ symbols = {
+ [0x0391]=0x1D790, [0x0392]=0x1D791, [0x0393]=0x1D792, [0x0394]=0x1D793, [0x0395]=0x1D794,
+ [0x0396]=0x1D795, [0x0397]=0x1D796, [0x0398]=0x1D797, [0x0399]=0x1D798, [0x039A]=0x1D799,
+ [0x039B]=0x1D79A, [0x039C]=0x1D79B, [0x039D]=0x1D79C, [0x039E]=0x1D79D, [0x039F]=0x1D79E,
+ [0x03A0]=0x1D79F, [0x03A1]=0x1D7A0, [0x03A3]=0x1D7A2, [0x03A4]=0x1D7A3, [0x03A5]=0x1D7A4,
+ [0x03A6]=0x1D7A5, [0x03A7]=0x1D7A6, [0x03A8]=0x1D7A7, [0x03A9]=0x1D7A8, [0x03B1]=0x1D7AA,
+ [0x03B2]=0x1D7AB, [0x03B3]=0x1D7AC, [0x03B4]=0x1D7AD, [0x03B5]=0x1D7AE, [0x03B6]=0x1D7AF,
+ [0x03B7]=0x1D7B0, [0x03B8]=0x1D7B1, [0x03B9]=0x1D7B2, [0x03BA]=0x1D7B3, [0x03BB]=0x1D7B4,
+ [0x03BC]=0x1D7B5, [0x03BD]=0x1D7B6, [0x03BE]=0x1D7B7, [0x03BF]=0x1D7B8, [0x03C0]=0x1D7B9,
+ [0x03C1]=0x1D7BA, [0x03C2]=0x1D7BB, [0x03C3]=0x1D7BC, [0x03C4]=0x1D7BD, [0x03C5]=0x1D7BE,
+ [0x03C6]=0x1D7BF, [0x03C7]=0x1D7C0, [0x03C8]=0x1D7C1, [0x03C9]=0x1D7C2, [0x03D1]=0x1D7C5,
+ [0x03D5]=0x1D7C7, [0x03D6]=0x1D7C9, [0x03F0]=0x1D7C6, [0x03F1]=0x1D7C8, [0x03F4]=0x1D7A1,
+ [0x03F5]=0x1D7C4, [0x2202]=0x1D7C3, [0x2207]=0x1D7A9,
+ },
+ },
+ },
+ monospaced = {
+ tf = {
+ digits = 0x1D7F6,
+ ucletters = 0x1D670,
+ lcletters = 0x1D68A,
+ },
+ },
+ blackboard = { -- ok
+ tf = {
+ digits = 0x1D7D8,
+ ucletters = { -- C H N P Q R Z
+ [0x00041]=0x1D538, [0x00042]=0x1D539, [0x00043]=0x02102, [0x00044]=0x1D53B, [0x00045]=0x1D53C,
+ [0x00046]=0x1D53D, [0x00047]=0x1D53E, [0x00048]=0x0210D, [0x00049]=0x1D540, [0x0004A]=0x1D541,
+ [0x0004B]=0x1D542, [0x0004C]=0x1D543, [0x0004D]=0x1D544, [0x0004E]=0x02115, [0x0004F]=0x1D546,
+ [0x00050]=0x02119, [0x00051]=0x0211A, [0x00052]=0x0211D, [0x00053]=0x1D54A, [0x00054]=0x1D54B,
+ [0x00055]=0x1D54C, [0x00056]=0x1D54D, [0x00057]=0x1D54E, [0x00058]=0x1D54F, [0x00059]=0x1D550,
+ [0x0005A]=0x02124,
+ },
+ lcletters = 0x1D552,
+ },
+ },
+ fraktur = { -- ok
+ tf= {
+ ucletters = { -- C H I R Z
+ [0x00041]=0x1D504, [0x00042]=0x1D505, [0x00043]=0x0212D, [0x00044]=0x1D507, [0x00045]=0x1D508,
+ [0x00046]=0x1D509, [0x00047]=0x1D50A, [0x00048]=0x0210C, [0x00049]=0x02111, [0x0004A]=0x1D50D,
+ [0x0004B]=0x1D50E, [0x0004C]=0x1D50F, [0x0004D]=0x1D510, [0x0004E]=0x1D511, [0x0004F]=0x1D512,
+ [0x00050]=0x1D513, [0x00051]=0x1D514, [0x00052]=0x0211C, [0x00053]=0x1D516, [0x00054]=0x1D517,
+ [0x00055]=0x1D518, [0x00056]=0x1D519, [0x00057]=0x1D51A, [0x00058]=0x1D51B, [0x00059]=0x1D51C,
+ [0x0005A]=0x02128,
+ },
+ lcletters = 0x1D51E,
+ },
+ bf = {
+ ucletters = 0x1D56C,
+ lcletters = 0x1D586,
+ },
+ },
+ script = {
+ tf= {
+ ucletters = { -- B E F H I L M R -- P 2118
+ [0x00041]=0x1D49C, [0x00042]=0x0212C, [0x00043]=0x1D49E, [0x00044]=0x1D49F, [0x00045]=0x02130,
+ [0x00046]=0x02131, [0x00047]=0x1D4A2, [0x00048]=0x0210B, [0x00049]=0x02110, [0x0004A]=0x1D4A5,
+ [0x0004B]=0x1D4A6, [0x0004C]=0x02112, [0x0004D]=0x02133, [0x0004E]=0x1D4A9, [0x0004F]=0x1D4AA,
+ [0x00050]=0x1D4AB, [0x00051]=0x1D4AC, [0x00052]=0x0211B, [0x00053]=0x1D4AE, [0x00054]=0x1D4AF,
+ [0x00055]=0x1D4B0, [0x00056]=0x1D4B1, [0x00057]=0x1D4B2, [0x00058]=0x1D4B3, [0x00059]=0x1D4B4,
+ [0x0005A]=0x1D4B5,
+ },
+ lcletters = { -- E G O -- L 2113
+ [0x00061]=0x1D4B6, [0x00062]=0x1D4B7, [0x00063]=0x1D4B8, [0x00064]=0x1D4B9, [0x00065]=0x0212F,
+ [0x00066]=0x1D4BB, [0x00067]=0x0210A, [0x00068]=0x1D4BD, [0x00069]=0x1D4BE, [0x0006A]=0x1D4BF,
+ [0x0006B]=0x1D4C0, [0x0006C]=0x1D4C1, [0x0006D]=0x1D4C2, [0x0006E]=0x1D4C3, [0x0006F]=0x02134,
+ [0x00070]=0x1D4C5, [0x00071]=0x1D4C6, [0x00072]=0x1D4C7, [0x00073]=0x1D4C8, [0x00074]=0x1D4C9,
+ [0x00075]=0x1D4CA, [0x00076]=0x1D4CB, [0x00077]=0x1D4CC, [0x00078]=0x1D4CD, [0x00079]=0x1D4CE,
+ [0x0007A]=0x1D4CF,
+ }
+ },
+ bf = {
+ ucletters = 0x1D4D0,
+ lcletters = 0x1D4EA,
+ },
+ },
+}
+
+local alphabets = mathematics.alphabets
+local attribs = { }
+
+for alphabet, styles in next, alphabets do
+ for style, data in next, styles do
+ -- let's keep the long names (for tracing)
+ local n = #attribs+1
+ data.attribute = n
+ data.alphabet = alphabet
+ data.style = style
+ attribs[n] = data
+ end
+end
+
+-- beware, these are shared tables (no problem since they're not
+-- in unicode)
+
+alphabets.regular.it.digits = alphabets.regular.tf.digits
+alphabets.regular.bi.digits = alphabets.regular.bf.digits
+
+alphabets.sansserif.tf.symbols = alphabets.regular.tf.symbols
+alphabets.sansserif.tf.digits = alphabets.regular.tf.digits
+alphabets.sansserif.it.symbols = alphabets.regular.tf.symbols
+alphabets.sansserif.bi.digits = alphabets.regular.bf.digits
+
+alphabets.monospaced.tf.symbols = alphabets.sansserif.tf.symbols
+alphabets.monospaced.it = alphabets.sansserif.tf
+alphabets.monospaced.bf = alphabets.sansserif.tf
+alphabets.monospaced.bi = alphabets.sansserif.bf
+
+alphabets.blackboard.tf.symbols = alphabets.regular.tf.symbols
+alphabets.blackboard.it = alphabets.blackboard.tf
+alphabets.blackboard.bf = alphabets.blackboard.tf
+alphabets.blackboard.bi = alphabets.blackboard.bf
+
+alphabets.fraktur.tf.digits = alphabets.regular.tf.digits
+alphabets.fraktur.tf.symbols = alphabets.regular.tf.symbols
+alphabets.fraktur.bf.digits = alphabets.regular.bf.digits
+alphabets.fraktur.bf.symbols = alphabets.regular.bf.symbols
+alphabets.fraktur.it = alphabets.fraktur.tf
+alphabets.fraktur.bi = alphabets.fraktur.bf
+
+alphabets.script.tf.digits = alphabets.regular.tf.digits
+alphabets.script.tf.symbols = alphabets.regular.tf.symbols
+alphabets.script.bf.digits = alphabets.regular.bf.digits
+alphabets.script.bf.symbols = alphabets.regular.bf.symbols
+alphabets.script.it = alphabets.script.tf
+alphabets.script.bi = alphabets.script.bf
+
+alphabets.tt = alphabets.monospaced
+alphabets.ss = alphabets.sansserif
+alphabets.rm = alphabets.regular
+alphabets.bb = alphabets.blackboard
+alphabets.fr = alphabets.fraktur
+alphabets.sr = alphabets.script
+
+alphabets.serif = alphabets.regular
+alphabets.type = alphabets.monospaced
+alphabets.teletype = alphabets.monospaced
+
+function mathematics.to_a_style(attribute)
+ local r = attribs[attribute]
+ return r and r.style or "tf"
+end
+
+function mathematics.to_a_name(attribute)
+ local r = attribs[attribute]
+ return r and r.alphabet or "regular"
+end
+
+-- of course we could do some div/mod trickery instead
+
+--~ function mathematics.sync_a_both(attribute,alphabet,style)
+--~ local data = alphabets[alphabet or "regular"] or alphabets.regular
+--~ data = data[style or "tf"] or data.tf
+--~ return data and data.attribute or attribute
+--~ end
+
+--~ function mathematics.sync_a_style(attribute,style)
+--~ local r = attribs[attribute]
+--~ local alphabet = r and r.alphabet or "regular"
+--~ local data = alphabets[alphabet][style]
+--~ return data and data.attribute or attribute
+--~ end
+
+--~ function mathematics.sync_a_name(attribute,alphabet)
+--~ local r = attribs[attribute]
+--~ local style = r and r.style or "tf"
+--~ local data = alphabets[alphabet][style]
+--~ return data and data.attribute or attribute
+--~ end
+
+local mathalph = attributes.private("mathalph")
+
+local texattribute = tex.attribute
+
+function mathematics.sync_a_both(alphabet,style)
+ local data = alphabets[alphabet or "regular"] or alphabets.regular
+ data = data[style or "tf"] or data.tf
+ texattribute[mathalph] = data and data.attribute or texattribute[mathalph]
+end
+
+function mathematics.sync_a_style(style)
+ local r = attribs[attribute]
+ local alphabet = r and r.alphabet or "regular"
+ local data = alphabets[alphabet][style]
+ texattribute[mathalph] = data and data.attribute or texattribute[mathalph]
+end
+
+function mathematics.sync_a_name(alphabet)
+ local r = attribs[attribute]
+ local style = r and r.style or "tf"
+ local data = alphabets[alphabet][style]
+ texattribute[mathalph] = data and data.attribute or texattribute[mathalph]
+end
+
+local issymbol = mathematics.alphabets.regular.tf.symbols
+
+function mathematics.remap_alphabets(attribute,char)
+ -- we could use a map[attribute][char] => newchar but first we have
+ -- to finish the table
+ local offset = attribs[attribute]
+ if offset then
+ local newchar
+ if char >= 0x030 and char <= 0x039 then
+ local o = offset.digits
+ newchar = (type(o) == "table" and (o[char] or char)) or (char - 0x030 + o)
+ elseif char >= 0x041 and char <= 0x05A then
+ local o = offset.ucletters
+ newchar = (type(o) == "table" and (o[char] or char)) or (char - 0x041 + o)
+ elseif char >= 0x061 and char <= 0x07A then
+ local o = offset.lcletters
+ newchar = (type(o) == "table" and (o[char] or char)) or (char - 0x061 + o)
+ elseif issymbol[char] then
+ newchar = offset.symbols[char]
+ end
+ return newchar ~= char and newchar
+ end
+ return nil
+end
diff --git a/Master/texmf-dist/tex/context/base/math-mis.tex b/Master/texmf-dist/tex/context/base/math-mis.tex
deleted file mode 100644
index 1b1193fd4e3..00000000000
--- a/Master/texmf-dist/tex/context/base/math-mis.tex
+++ /dev/null
@@ -1,49 +0,0 @@
-%D \module
-%D [ file=math-mis,
-%D version=2001.04.12,
-%D title=\CONTEXT\ Math Macros,
-%D subtitle=Miscelaneous Symbols,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright=\PRAGMA]
-%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 \starttyping
-%D \usemathcollection[mis]
-%D \stoptyping
-
-\def\styledmathcommand#1%
- {\mathchoice
- {\let\currentmathstyle\displaystyle#1}%
- {\let\currentmathstyle\textstyle#1}%
- {\let\currentmathstyle\scriptstyle#1}%
- {\let\currentmathstyle\scriptscriptstyle#1}}
-
-%D For Hong Feng:
-
-\def\geneq
- {\styledmathcommand\dogeneq}
-
-\def\dogeneq
- {\begingroup
- \setbox\scratchbox\hbox{$\currentmathstyle=$}%
- \hbox to \wd\scratchbox
- {\copy\scratchbox
- \hskip-\wd\scratchbox
- \hss\incolortrue\localcolortrue
- \color[white]{\vrule\!!height.6\ht\scratchbox\!!depth\zeropoint\!!width.2\wd\scratchbox}%
- \hss}%
- \endgroup}
-
-%D \startbuffer
-%D $a\string\geneq b^{a\string\geneq b^{a\string\geneq b}}$
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/math-noa.lua b/Master/texmf-dist/tex/context/base/math-noa.lua
new file mode 100644
index 00000000000..db1a5b63896
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/math-noa.lua
@@ -0,0 +1,331 @@
+if not modules then modules = { } end modules ['math-noa'] = {
+ version = 1.001,
+ comment = "companion to math-ini.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- beware: this is experimental code and there will be a more
+-- generic (attribute value driven) interface too but for the
+-- moment this is ok
+
+local utf = unicode.utf8
+
+local set_attribute = node.set_attribute
+local has_attribute = node.has_attribute
+local mlist_to_hlist = node.mlist_to_hlist
+local font_of_family = node.family_font
+local fontdata = fonts.ids
+
+local format, rep = string.format, string.rep
+local utfchar, utfbyte = utf.char, utf.byte
+
+noads = noads or { }
+
+local trace_remapping = false trackers.register("math.remapping", function(v) trace_remapping = v end)
+local trace_processing = false trackers.register("math.processing", function(v) trace_processing = v end)
+local trace_analyzing = false trackers.register("math.analyzing", function(v) trace_analyzing = v end)
+
+local noad_ord = 0
+local noad_op_displaylimits = 1
+local noad_op_limits = 2
+local noad_op_nolimits = 3
+local noad_bin = 4
+local noad_rel = 5
+local noad_open = 6
+local noad_close = 7
+local noad_punct = 8
+local noad_inner = 9
+local noad_under = 10
+local noad_over = 11
+local noad_vcenter = 12
+
+-- obsolete:
+--
+-- math_ord = node.id("ord") -- attr nucleus sub sup
+-- math_op = node.id("op") -- attr nucleus sub sup subtype
+-- math_bin = node.id("bin") -- attr nucleus sub sup
+-- math_rel = node.id("rel") -- attr nucleus sub sup
+-- math_punct = node.id("punct") -- attr nucleus sub sup
+--
+-- math_open = node.id("open") -- attr nucleus sub sup
+-- math_close = node.id("close") -- attr nucleus sub sup
+--
+-- math_inner = node.id("inner") -- attr nucleus sub sup
+-- math_vcenter = node.id("vcenter") -- attr nucleus sub sup
+-- math_under = node.id("under") -- attr nucleus sub sup
+-- math_over = node.id("over") -- attr nucleus sub sup
+
+local math_noad = node.id("noad") -- attr nucleus sub sup
+
+local math_accent = node.id("accent") -- attr nucleus sub sup accent
+local math_radical = node.id("radical") -- attr nucleus sub sup left degree
+local math_fraction = node.id("fraction") -- attr nucleus sub sup left right
+
+local math_box = node.id("sub_box") -- attr list
+local math_sub = node.id("sub_mlist") -- attr list
+local math_char = node.id("math_char") -- attr fam char
+local math_text_char = node.id("math_text_char") -- attr fam char
+local math_delim = node.id("delim") -- attr small_fam small_char large_fam large_char
+local math_style = node.id("style") -- attr style
+local math_choice = node.id("choice") -- attr display text script scriptscript
+local math_fence = node.id("fence") -- attr subtype
+
+local simple_noads = table.tohash {
+ math_noad,
+}
+
+local all_noads = {
+ math_noad,
+ math_box, math_sub,
+ math_char, math_text_char, math_delim, math_style,
+ math_accent, math_radical, math_fraction, math_choice, math_fence,
+}
+
+noads.processors = noads.processors or { }
+
+local function process(start,what,n)
+ if n then n = n + 1 else n = 0 end
+ while start do
+ if trace_processing then
+ texio.write_nl(format("%s%s",rep(" ",n or 0),tostring(start)))
+ end
+ local id = start.id
+ local proc = what[id]
+ if proc then
+ proc(start,what,n)
+ elseif id == math_char or id == math_text_char or id == math_delim then
+ break
+ elseif id == math_style then
+ -- has a next
+ elseif id == math_noad then
+ local noad = start.nucleus if noad then process(noad,what,n) end -- list
+ noad = start.sup if noad then process(noad,what,n) end -- list
+ noad = start.sub if noad then process(noad,what,n) end -- list
+ elseif id == math_box or id == math_sub then
+ local noad = start.list if noad then process(noad,what,n) end -- list
+ elseif id == math_fraction then
+ local noad = start.num if noad then process(noad,what,n) end -- list
+ noad = start.denom if noad then process(noad,what,n) end -- list
+ noad = start.left if noad then process(noad,what,n) end -- delimiter
+ noad = start.right if noad then process(noad,what,n) end -- delimiter
+ elseif id == math_choice then
+ local noad = start.display if noad then process(noad,what,n) end -- list
+ noad = start.text if noad then process(noad,what,n) end -- list
+ noad = start.script if noad then process(noad,what,n) end -- list
+ noad = start.scriptscript if noad then process(noad,what,n) end -- list
+ elseif id == math_fence then
+ local noad = start.delim if noad then process(noad,what,n) end -- delimiter
+ elseif id == math_radical then
+ local noad = start.nucleus if noad then process(noad,what,n) end -- list
+ noad = start.sup if noad then process(noad,what,n) end -- list
+ noad = start.sub if noad then process(noad,what,n) end -- list
+ noad = start.left if noad then process(noad,what,n) end -- delimiter
+ noad = start.degree if noad then process(noad,what,n) end -- list
+ elseif id == math_accent then
+ local noad = start.nucleus if noad then process(noad,what,n) end -- list
+ noad = start.sup if noad then process(noad,what,n) end -- list
+ noad = start.sub if noad then process(noad,what,n) end -- list
+ noad = start.accent if noad then process(noad,what,n) end -- list
+ noad = start.bot_accent if noad then process(noad,what,n) end -- list
+ else
+ -- glue, penalty, etc
+ end
+ start = start.next
+ end
+end
+
+noads.process = process
+
+-- character remapping
+
+local attribute = attributes.private("mathalph")
+
+noads.processors.relocate = { }
+
+local function report_remap(tag,id,old,new,extra)
+ logs.report("math","remapping %s in font %s from U+%04X (%s) to U+%04X (%s)%s",tag,id,old,utfchar(old),new,utfchar(new),extra or "")
+end
+
+local remap_alphabets = mathematics.remap_alphabets
+local fcs = fonts.color.set
+
+noads.processors.relocate[math_char] = function(pointer)
+ local a = has_attribute(pointer,attribute)
+ if a and a > 0 then
+ local fam = pointer.fam
+ set_attribute(pointer,attribute,0)
+ local char = pointer.char
+ local newchar = remap_alphabets(a,char)
+ if newchar then
+ local id = font_of_family(fam)
+ local tfmdata = fontdata[id]
+ if tfmdata and tfmdata.characters[newchar] then -- we could probably speed this up
+ if trace_remapping then
+ report_remap("char",id,char,newchar)
+ end
+ if trace_analyzing then
+ fcs(pointer,"font:isol")
+ end
+ pointer.char = newchar
+ return
+ elseif trace_remapping then
+ report_remap("char",id,char,newchar," fails")
+ end
+ end
+ end
+ if trace_analyzing then
+ fcs(pointer,"font:medi")
+ end
+end
+
+noads.processors.relocate[math_text_char] = function(pointer)
+ if trace_analyzing then
+ fcs(pointer,"font:init")
+ end
+end
+
+noads.processors.relocate[math_delim] = function(pointer)
+ if trace_analyzing then
+ fcs(pointer,"font:fina")
+ end
+end
+
+function noads.relocate_characters(head,style,penalties)
+ process(head,noads.processors.relocate)
+ return true
+end
+
+-- some resize options (this works ok because the content is
+-- empty and no larger next will be forced)
+--
+-- beware: we don't use \delcode but \Udelcode and as such have
+-- no large_fam; also, we need to check for subtype and/or
+-- small_fam not being 0 because \. sits in 0,0 by default
+--
+-- todo: just replace the character by an ord noad
+-- and remove the right delimiter as well
+
+local attribute = attributes.private("mathsize")
+
+noads.processors.resize = { }
+
+noads.processors.resize[math_fence] = function(pointer)
+ if pointer.subtype == 1 then -- left
+ local a = has_attribute(pointer,attribute)
+ if a and a > 0 then
+ set_attribute(pointer,attribute,0)
+ local d = pointer.delim
+ local df = d.small_fam
+ local id = font_of_family(df)
+ if id > 0 then
+ local ch = d.small_char
+ d.small_char = mathematics.big(fontdata[id],ch,a)
+ end
+ end
+ end
+end
+
+function noads.resize_characters(head,style,penalties)
+ process(head,noads.processors.resize)
+ return true
+end
+
+-- respacing
+
+local attribute = attributes.private("mathpunc")
+
+noads.processors.respace = { }
+
+local chardata = characters.data
+
+-- only [nd,ll,ul][po][nd,ll,ul]
+
+noads.processors.respace[math_noad] = function(pointer)
+ if pointer.subtype == noad_ord then
+ local a = has_attribute(pointer,attribute)
+ if a and a > 0 then
+ set_attribute(pointer,attribute,0)
+ local current_nucleus = pointer.nucleus
+ if current_nucleus.id == math_char then
+ local current_char = current_nucleus.char
+ local fc = chardata[current_char]
+ fc = fc and fc.category
+ if fc == "nd" or fc == "ll" or fc == "lu" then
+ local next_noad = pointer.next
+ if next_noad and next_noad.id == math_noad and next_noad.subtype == noad_punct then
+ local next_nucleus = next_noad.nucleus
+ if next_nucleus.id == math_char then
+ local next_char = next_nucleus.char
+ local nc = chardata[next_char]
+ nc = nc and nc.category
+ if nc == "po" then
+ local last_noad = next_noad.next
+ if last_noad and last_noad.id == math_noad and last_noad.subtype == noad_ord then
+ local last_nucleus = last_noad.nucleus
+ if last_nucleus.id == math_char then
+ local last_char = last_nucleus.char
+ local lc = chardata[last_char]
+ lc = lc and lc.category
+ if lc == "nd" or lc == "ll" or lc == "lu" then
+ local ord = node.new(math_noad) -- todo: pool
+ ord.subtype, ord.nucleus, ord.sub, ord.sup, ord.attr = noad_ord, next_noad.nucleus, next_noad.sub, next_noad.sup, next_noad.attr
+ -- next_noad.nucleus, next_noad.sub, next_noad.sup, next_noad.attr = nil, nil, nil, nil
+ next_noad.nucleus, next_noad.sub, next_noad.sup = nil, nil, nil -- else crash with attributes ref count
+ --~ next_noad.attr = nil
+ ord.next = last_noad
+ pointer.next = ord
+ node.free(next_noad)
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+end
+
+
+function noads.respace_characters(head,style,penalties)
+ noads.process(head,noads.processors.respace)
+ return true
+end
+
+-- the normal builder
+
+function noads.mlist_to_hlist(head,style,penalties)
+ return mlist_to_hlist(head,style,penalties), true
+end
+
+tasks.new (
+ "math",
+ {
+ "normalizers",
+ "builders",
+ }
+)
+
+local actions = tasks.actions("math",2) -- head, style, penalties
+
+local starttiming, stoptiming = statistics.starttiming, statistics.stoptiming
+
+function nodes.processors.mlist_to_hlist(head,style,penalties)
+ starttiming(noads)
+ local head, done = actions(head,style,penalties)
+ stoptiming(noads)
+ return head, done
+end
+
+callback.register('mlist_to_hlist',nodes.processors.mlist_to_hlist)
+
+-- tracing
+
+statistics.register("math processing time", function()
+ if statistics.elapsedindeed(noads) then
+ return format("%s seconds", statistics.elapsedtime(noads))
+ end
+end)
diff --git a/Master/texmf-dist/tex/context/base/math-pln.tex b/Master/texmf-dist/tex/context/base/math-pln.mkii
index ffa16c8f514..f2f3ff183c1 100644
--- a/Master/texmf-dist/tex/context/base/math-pln.tex
+++ b/Master/texmf-dist/tex/context/base/math-pln.mkii
@@ -1,8 +1,8 @@
%D \module
%D [ file=math-pln,
%D version=2001.11.16,
-%D title=\CONTEXT\ System Macros,
-%D subtitle=Efficient \PLAIN\ \TEX\ loading,
+%D title=\CONTEXT\ Math Macros,
+%D subtitle=Plain Helpers,
%D author=Hans Hagen,
%D date=\currentdate,
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
@@ -11,38 +11,41 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+% \points should become \bodyfontsize
+
%D This is a temporary module, some of this code will move to
%D the other math modules.
+\writestatus{loading}{ConTeXt Math Macros / Plain Helpers}
+
\unprotect
-\ifx\displ@y\unefined \let\displ@y\relax\fi
-\ifx\m@th \unefined \let\m@th \relax\fi
+\ifx\displ@y\undefined \let\displ@y\relax\fi
\newbox\rootbox
-\def\root#1\of%
- {\setbox\rootbox\hbox{$\m@th\scriptscriptstyle{#1}$}%
+\def\root#1\of
+ {\setbox\rootbox\hbox{$\mathsurround\zeropoint\scriptscriptstyle{#1}$}%
\mathpalette\r@@t}
\def\r@@t#1#2% will be overloaded
- {\setbox\z@\hbox{$\m@th#1\sqrt{#2}$}\dimen@\ht\z@
- \advance\dimen@-\dp\z@
+ {\setbox\zerocount\hbox{$\mathsurround\zeropoint#1\sqrt{#2}$}\dimen@\ht\zerocount
+ \advance\dimen@-\dp\zerocount
\mkern5mu\raise.6\dimen@\copy\rootbox
- \mkern-10mu\box\z@}
+ \mkern-10mu\box\zerocount}
\def\mathhexbox#1#2#3%
{\leavevmode
- \hbox{$\m@th\mathchar"#1#2#3$}}
+ \hbox{$\mathsurround\zeropoint\mathchar"#1#2#3$}}
\def\oalign#1%
{\leavevmode
\vtop
- {\baselineskip\z@skip \lineskip.25ex%
+ {\baselineskip\zeroskip \lineskip.25ex%
\ialign{##\crcr#1\crcr}}}
\def\o@lign
- {\lineskiplimit\z@ \oalign}
+ {\lineskiplimit\zeropoint \oalign}
\def\ooalign % chars over each other
{\lineskiplimit-\maxdimen
@@ -54,40 +57,55 @@
\dimen@}
\def\dots
- {\relax\ifmmode\ldots\else$\m@th\ldots\,$\fi}
+ {\relax\ifmmode\ldots\else$\mathsurround\zeropoint\ldots\,$\fi}
\def\hrulefill
{\leaders\hrule\hfill}
\def\dotfill
- {\cleaders\hbox{$\m@th \mkern1.5mu.\mkern1.5mu$}\hfill}
+ {\cleaders\hbox{$\mathsurround\zeropoint \mkern1.5mu.\mkern1.5mu$}\hfill}
\def\rightarrowfill
- {$\m@th\smash-\mkern-7mu%
+ {$\mathsurround\zeropoint\smash-\mkern-7mu%
\cleaders\hbox{$\mkern-2mu\smash-\mkern-2mu$}\hfill
\mkern-7mu\mathord\rightarrow$}
\def\leftarrowfill
- {$\m@th\mathord\leftarrow\mkern-7mu%
+ {$\mathsurround\zeropoint\mathord\leftarrow\mkern-7mu%
\cleaders\hbox{$\mkern-2mu\smash-\mkern-2mu$}\hfill
\mkern-7mu\smash-$}
% must go to math-tex
-\mathchardef\braceld="37A
-\mathchardef\bracerd="37B
-\mathchardef\bracelu="37C
-\mathchardef\braceru="37D
+\ifx\braceld\undefined
+ % mkii values
+ \mathchardef\braceld="37A
+ \mathchardef\bracerd="37B
+ \mathchardef\bracelu="37C
+ \mathchardef\braceru="37D
+\fi
\def\downbracefill
- {$\m@th\setbox\z@\hbox{$\braceld$}%
- \braceld\leaders\vrule\!!height\ht\z@\!!depth\z@\hfill\braceru
- \bracelu\leaders\vrule\!!height\ht\z@\!!depth\z@\hfill\bracerd$}
+ {$\mathsurround\zeropoint\setbox\zerocount\hbox{$\braceld$}%
+ \braceld\leaders\vrule\!!height\ht\zerocount\!!depth\zeropoint\hfill\braceru
+ \bracelu\leaders\vrule\!!height\ht\zerocount\!!depth\zeropoint\hfill\bracerd$}
\def\upbracefill
- {$\m@th\setbox\z@\hbox{$\braceld$}%
- \bracelu\leaders\vrule\!!height\ht\z@\!!depth\z@\hfill\bracerd
- \braceld\leaders\vrule\!!height\ht\z@\!!depth\z@\hfill\braceru$}
+ {$\mathsurround\zeropoint\setbox\zerocount\hbox{$\braceld$}%
+ \bracelu\leaders\vrule\!!height\ht\zerocount\!!depth\zeropoint\hfill\bracerd
+ \braceld\leaders\vrule\!!height\ht\zerocount\!!depth\zeropoint\hfill\braceru$}
+
+% hm, shouldn't that be \kern3\bodyfontsize
+
+\def\overbrace#1%
+ {\mathop{\vbox{\mathsurround\zeropoint\ialign{##\crcr\noalign{\kern3\points}
+ \downbracefill\crcr\noalign{\kern3\points\nointerlineskip}
+ $\hfil\displaystyle{#1}\hfil$\crcr}}}\limits}
+
+\def\underbrace#1%
+ {\mathop{\vtop{\mathsurround\zeropoint\ialign{##\crcr
+ $\hfil\displaystyle{#1}\hfil$\crcr\noalign{\kern3\points\nointerlineskip}
+ \upbracefill\crcr\noalign{\kern3\points}}}}\limits}
\let\sp=^ % will become obsolete
\let\sb=_ % will become obsolete
@@ -136,31 +154,18 @@
\def\Longleftrightarrow{\Leftarrow\joinrel\Rightarrow}
\def\overrightarrow#1%
- {\vbox{\m@th\ialign{##\crcr
- \rightarrowfill\crcr\noalign{\kern-\p@\nointerlineskip}
+ {\vbox{\mathsurround\zeropoint\ialign{##\crcr
+ \rightarrowfill\crcr\noalign{\kern-\onepoint\nointerlineskip}
$\hfil\displaystyle{#1}\hfil$\crcr}}}
\def\overleftarrow#1%
- {\vbox{\m@th\ialign{##\crcr
- \leftarrowfill\crcr\noalign{\kern-\p@\nointerlineskip}
+ {\vbox{\mathsurround\zeropoint\ialign{##\crcr
+ \leftarrowfill\crcr\noalign{\kern-\onepoint\nointerlineskip}
$\hfil\displaystyle{#1}\hfil$\crcr}}}
-\def\overbrace#1%
- {\mathop{\vbox{\m@th\ialign{##\crcr\noalign{\kern3\p@}
- \downbracefill\crcr\noalign{\kern3\p@\nointerlineskip}
- $\hfil\displaystyle{#1}\hfil$\crcr}}}\limits}
-
-\def\underbrace#1%
- {\mathop{\vtop{\m@th\ialign{##\crcr
- $\hfil\displaystyle{#1}\hfil$\crcr\noalign{\kern3\p@\nointerlineskip}
- \upbracefill\crcr\noalign{\kern3\p@}}}}\limits}
-
\def\skew#1#2#3%
- {{\muskip\z@#1mu\divide\muskip\z@\tw@ \mkern\muskip\z@
- #2{\mkern-\muskip\z@{#3}\mkern\muskip\z@}\mkern-\muskip\z@}{}}
-
-\def\n@space
- {\nulldelimiterspace\z@ \m@th}
+ {{\muskip\zerocount#1mu\divide\muskip\zerocount\plustwo \mkern\muskip\zerocount
+ #2{\mkern-\muskip\zerocount{#3}\mkern\muskip\zerocount}\mkern-\muskip\zerocount}{}}
\def\choose{\atopwithdelims()}
\def\brack {\atopwithdelims[]}
@@ -173,32 +178,32 @@
{#1\scriptstyle {#2}}%
{#1\scriptscriptstyle{#2}}}
-\def\cong%
+\def\cong
{\mathrel{\mathpalette\@vereq\sim}} % congruence sign
\def\@vereq#1#2%
- {\lower.5\p@\vbox{\lineskiplimit\maxdimen\lineskip-.5\p@
- \ialign{$\m@th#1\hfil##\hfil$\crcr#2\crcr=\crcr}}}
+ {\lower.5\points\vbox{\lineskiplimit\maxdimen\lineskip-.5\points
+ \ialign{$\mathsurround\zeropoint#1\hfil##\hfil$\crcr#2\crcr=\crcr}}}
-\def\notin%
+\def\notin% can be mkiv'd
{\mathrel{\mathpalette\c@ncel\in}}
\def\c@ncel#1#2%
- {\m@th\ooalign{$\hfil#1\mkern1mu/\hfil$\crcr$#1#2$}}
+ {\mathsurround\zeropoint\ooalign{$\hfil#1\mkern1mu/\hfil$\crcr$#1#2$}}
\def\rightleftharpoons%
{\mathrel{\mathpalette\rlh@{}}}
\def\rlh@#1%
{\vcenter
- {\m@th
+ {\mathsurround\zeropoint
\hbox
{\ooalign
{\raise2pt\hbox{$#1\rightharpoonup$}\crcr
$#1\leftharpoondown$}}}}
\def\buildrel#1\over#2%
- {\mathrel{\mathop{\kern\z@#2}\limits^{#1}}}
+ {\mathrel{\mathop{\kern\zeropoint#2}\limits^{#1}}}
\def\doteq
{\buildrel\textstyle.\over=}
@@ -225,7 +230,7 @@
\,%
\vcenter
{\normalbaselines
- \m@th
+ \mathsurround\zeropoint
\ialign{$##\hfil$&\quad##\hfil\crcr#1\crcr}}%
\right.}
@@ -233,7 +238,7 @@
{\null
\,%
\vcenter
- {\normalbaselines\m@th
+ {\normalbaselines\mathsurround\zeropoint
\ialign{\hfil$##$\hfil&&\quad\hfil$##$\hfil\crcr
\mathstrut\crcr\noalign{\kern-\baselineskip}
#1\crcr\mathstrut\crcr\noalign{\kern-\baselineskip}}}%
@@ -242,30 +247,30 @@
\def\pmatrix#1%
{\left(\matrix{#1}\right)}
-\newdimen\p@renwd
+\newdimen\mathparentwd
-% \setbox0=\hbox{\tenex B} \p@renwd=\wd0 % width of the big left (
+% \setbox0=\hbox{\tenex B} \mathparentwd=\wd0 % width of the big left (
\def\bordermatrix#1%
{\begingroup
- \m@th
- \setbox\z@\vbox
- {\def\cr{\crcr\noalign{\kern2\p@\global\let\cr\endline}}%
- \ialign{$##$\hfil\kern2\p@\kern\p@renwd&\thinspace\hfil$##$\hfil
+ \mathsurround\zeropoint
+ \setbox\zerocount\vbox
+ {\def\cr{\crcr\noalign{\kern2\points\global\let\cr\endline}}%
+ \ialign{$##$\hfil\kern2\points\kern\mathparentwd&\thinspace\hfil$##$\hfil
&&\quad\hfil$##$\hfil\crcr
\omit\strut\hfil\crcr\noalign{\kern-\baselineskip}%
#1\crcr\omit\strut\cr}}%
- \setbox\tw@\vbox
- {\unvcopy\z@\global\setbox\@ne\lastbox}%
- \setbox\tw@\hbox
- {\unhbox\@ne\unskip\global\setbox\@ne\lastbox}%
- \setbox\tw@\hbox
- {$\kern\wd\@ne\kern-\p@renwd\left(\kern-\wd\@ne
- \global\setbox\@ne\vbox{\box\@ne\kern2\p@}%
- \vcenter{\kern-\ht\@ne\unvbox\z@\kern-\baselineskip}\,\right)$}%
+ \setbox\plustwo\vbox
+ {\unvcopy\zerocount\global\setbox\plusone\lastbox}%
+ \setbox\plustwo\hbox
+ {\unhbox\plusone\unskip\global\setbox\plusone\lastbox}%
+ \setbox\plustwo\hbox
+ {$\kern\wd\plusone\kern-\mathparentwd\left(\kern-\wd\plusone
+ \global\setbox\plusone\vbox{\box\plusone\kern2\points}%
+ \vcenter{\kern-\ht\plusone\unvbox\zerocount\kern-\baselineskip}\,\right)$}%
\null
\;%
- \vbox{\kern\ht\@ne\box\tw@}%
+ \vbox{\kern\ht\plusone\box\plustwo}%
\endgroup}
% \def\openup{\afterassignment\@penup\dimen@=}
@@ -291,19 +296,19 @@
\,%
\vcenter
{\openup\displayopenupvalue % was \openup\jot
- \m@th
+ \mathsurround\zeropoint
\ialign
{\strut\hfil$\displaystyle{##}$&$\displaystyle{{}##}$\hfil\crcr
#1\crcr}}%
\,}
\def\@lign % restore inside \displ@y
- {\tabskip\z@skip
+ {\tabskip\zeroskip
\everycr{}}
\def\displaylines#1%
{\displ@y
- \tabskip\z@skip
+ \tabskip\zeroskip
\halign
{\hbox to \displaywidth{$\@lign\hfil\displaystyle##\hfil$}\crcr
#1\crcr}}
@@ -312,16 +317,16 @@
{\displ@y
\tabskip\centering
\halign to \displaywidth
- {\hfil$\@lign\displaystyle{##}$\tabskip\z@skip
+ {\hfil$\@lign\displaystyle{##}$\tabskip\zeroskip
&$\@lign\displaystyle{{}##}$\hfil\tabskip\centering
- &\llap{$\@lign##$}\tabskip\z@skip\crcr
+ &\llap{$\@lign##$}\tabskip\zeroskip\crcr
#1\crcr}}
\def\leqalignno#1%
{\displ@y
\tabskip\centering
\halign to \displaywidth
- {\hfil$\@lign\displaystyle{##}$\tabskip\z@skip
+ {\hfil$\@lign\displaystyle{##}$\tabskip\zeroskip
&$\@lign\displaystyle{{}##}$\hfil\tabskip\centering
&\kern-\displaywidth\rlap{$\@lign##$}\tabskip\displaywidth\crcr
#1\crcr}}
diff --git a/Master/texmf-dist/tex/context/base/math-pln.mkiv b/Master/texmf-dist/tex/context/base/math-pln.mkiv
new file mode 100644
index 00000000000..40d73b2280e
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/math-pln.mkiv
@@ -0,0 +1,298 @@
+%D \module
+%D [ file=math-pln,
+%D version=2001.11.16,
+%D title=\CONTEXT\ Math Macros,
+%D subtitle=Plain Helpers,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=\PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D This is a temporary module, some of this code will move to
+%D the other math modules. Much is copied from Plain \TEX.
+
+% \points should become \bodyfontsize
+
+\writestatus{loading}{ConTeXt Math Macros / Plain Helpers}
+
+\unprotect
+
+\ifx\displ@y\undefined \let\displ@y\relax\fi
+
+\def\oalign#1%
+ {\leavevmode
+ \vtop
+ {\baselineskip\zeroskip \lineskip.25ex%
+ \ialign{##\crcr#1\crcr}}}
+
+\def\o@lign
+ {\lineskiplimit\zeropoint \oalign}
+
+\def\ooalign % chars over each other
+ {\lineskiplimit-\maxdimen
+ \oalign}
+
+\def\sh@ft#1% kern by #1 times the current slant
+ {\dimen@#1%
+ \kern\expandafter\withoutpt\the\slantperpoint
+ \dimen@}
+
+\def\dots
+ {\relax\ifmmode\ldots\else$\mathsurround\zeropoint\ldots\,$\fi}
+
+\def\hrulefill
+ {\leaders\hrule\hfill}
+
+\def\dotfill
+ {\cleaders\hbox{$\mathsurround\zeropoint \mkern1.5mu.\mkern1.5mu$}\hfill}
+
+\def\rightarrowfill
+ {$\mathsurround\zeropoint\smash-\mkern-7mu%
+ \cleaders\hbox{$\mkern-2mu\smash-\mkern-2mu$}\hfill
+ \mkern-7mu\mathord\rightarrow$}
+
+\def\leftarrowfill
+ {$\mathsurround\zeropoint\mathord\leftarrow\mkern-7mu%
+ \cleaders\hbox{$\mkern-2mu\smash-\mkern-2mu$}\hfill
+ \mkern-7mu\smash-$}
+
+\let\sp=^ % will become obsolete
+\let\sb=_ % will become obsolete
+
+\ifx\,\undefined \def\,{\mskip \thinmuskip } \fi
+\ifx\>\undefined \def\>{\mskip \medmuskip } \fi
+\ifx\;\undefined \def\;{\mskip \thickmuskip} \fi
+\ifx\!\undefined \def\!{\mskip-\thinmuskip } \fi
+\ifx\*\undefined \def\*{\discretionary{\thinspace\the\textfont2\char2}{}{}} \fi
+
+% {\catcode`\'=\active \gdef'{^\bgroup\prim@s}}
+
+\def\activemathquote{^\bgroup\prim@s}
+
+\def\prim@s
+ {\prime\futurelet\next\pr@m@s}
+
+\def\pr@m@s
+ {\ifx'\next
+ \@EA\pr@@@s
+ \else\ifx^\next
+ \@EAEAEA\pr@@@t
+ \else
+ \@EAEAEA\egroup
+ \fi\fi}
+
+\def\pr@@@s#1%
+ {\prim@s}
+
+\def\pr@@@t#1#2%
+ {#2\egroup}
+
+% {\catcode`\_=\active \global\let_=\_} % _ in math is either subscript or \_
+
+\let\activemathunderscore\_
+
+\def\relbar {\mathrel{\smash-}} % - has the same height as +
+\def\Relbar {\mathrel=}
+
+\def\Longrightarrow {\Relbar\joinrel\Rightarrow} % beware, this overloades cambria native
+\def\longrightarrow {\relbar\joinrel\rightarrow}
+\def\longleftarrow {\leftarrow\joinrel\relbar}
+\def\Longleftarrow {\Leftarrow\joinrel\Relbar}
+\def\longmapsto {\mapstochar\longrightarrow}
+\def\longleftrightarrow{\leftarrow\joinrel\rightarrow}
+\def\Longleftrightarrow{\Leftarrow\joinrel\Rightarrow}
+
+\def\choose{\atopwithdelims()}
+\def\brack {\atopwithdelims[]}
+\def\brace {\atopwithdelims\{\}}
+
+\def\mathpalette#1#2%
+ {\mathchoice
+ {#1\displaystyle {#2}}%
+ {#1\textstyle {#2}}%
+ {#1\scriptstyle {#2}}%
+ {#1\scriptscriptstyle{#2}}}
+
+\def\cong
+ {\mathrel{\mathpalette\@vereq\sim}} % congruence sign
+
+\def\@vereq#1#2%
+ {\lower.5\points\vbox{\lineskiplimit\maxdimen\lineskip-.5\points
+ \ialign{$\mathsurround\zeropoint#1\hfil##\hfil$\crcr#2\crcr=\crcr}}}
+
+\def\notin
+ {\mathrel{\mathpalette\c@ncel\in}}
+
+\def\c@ncel#1#2%
+ {\mathsurround\zeropoint\ooalign{$\hfil#1\mkern1mu/\hfil$\crcr$#1#2$}}
+
+\def\rightleftharpoons
+ {\mathrel{\mathpalette\rlh@{}}}
+
+\def\rlh@#1%
+ {\vcenter
+ {\mathsurround\zeropoint
+ \hbox
+ {\ooalign
+ {\raise2pt\hbox{$#1\rightharpoonup$}\crcr
+ $#1\leftharpoondown$}}}}
+
+\def\buildrel#1\over#2%
+ {\mathrel{\mathop{\kern\zeropoint#2}\limits^{#1}}}
+
+\def\doteq
+ {\buildrel\textstyle.\over=}
+
+\ifx\mfunction\undefined \def\mfunction#1{\mathbin{\rm#1}} \fi
+
+\def\bmod
+ {\nonscript
+ \mskip-\medmuskip
+ \mkern5mu
+ \mfunction{mod}%
+ \penalty900
+ \mkern5mu
+ \nonscript
+ \mskip-\medmuskip}
+
+\def\pmod#1%
+ {\allowbreak
+ \mkern18mu
+ (\mfunction{mod}\,\,#1)}
+
+\def\cases#1%
+ {\left\{%
+ \,%
+ \vcenter
+ {\normalbaselines
+ \mathsurround\zeropoint
+ \ialign{$##\hfil$&\quad##\hfil\crcr#1\crcr}}%
+ \right.}
+
+\def\matrix#1%
+ {\null
+ \,%
+ \vcenter
+ {\normalbaselines\mathsurround\zeropoint
+ \ialign{\hfil$##$\hfil&&\quad\hfil$##$\hfil\crcr
+ \mathstrut\crcr\noalign{\kern-\baselineskip}
+ #1\crcr\mathstrut\crcr\noalign{\kern-\baselineskip}}}%
+ \,}
+
+\def\pmatrix#1%
+ {\left(\matrix{#1}\right)}
+
+\newdimen\mathparentwd
+
+% \setbox0=\hbox{\tenex B} \mathparentwd=\wd0 % width of the big left (
+
+\def\bordermatrix#1%
+ {\begingroup
+ \mathsurround\zeropoint
+ \setbox\zerocount\vbox
+ {\def\cr{\crcr\noalign{\kern2\points\global\let\cr\endline}}%
+ \ialign{$##$\hfil\kern2\points\kern\mathparentwd&\thinspace\hfil$##$\hfil
+ &&\quad\hfil$##$\hfil\crcr
+ \omit\strut\hfil\crcr\noalign{\kern-\baselineskip}%
+ #1\crcr\omit\strut\cr}}%
+ \setbox\plustwo\vbox
+ {\unvcopy\zerocount\global\setbox\plusone\lastbox}%
+ \setbox\plustwo\hbox
+ {\unhbox\plusone\unskip\global\setbox\plusone\lastbox}%
+ \setbox\plustwo\hbox
+ {$\kern\wd\plusone\kern-\mathparentwd\left(\kern-\wd\plusone
+ \global\setbox\plusone\vbox{\box\plusone\kern2\points}%
+ \vcenter{\kern-\ht\plusone\unvbox\zerocount\kern-\baselineskip}\,\right)$}%
+ \null
+ \;%
+ \vbox{\kern\ht\plusone\box\plustwo}%
+ \endgroup}
+
+% \def\openup{\afterassignment\@penup\dimen@=}
+%
+% \def\@penup{\advance\lineskip\dimen@
+% \advance\baselineskip\dimen@
+% \advance\lineskiplimit\dimen@}
+
+\def\openup
+ {\afterassignment\doopenup\scratchdimen=}
+
+\def\doopenup
+ {\advance\lineskip \scratchdimen
+ \advance\baselineskip \scratchdimen
+ \advance\lineskiplimit\scratchdimen}
+
+% \def\jot{.25\bodyfontsize} % plain tex: 3 pt (todo: better name and configurable)
+
+\def\displayopenupvalue{.25\bodyfontsize}
+
+\def\eqalign#1%
+ {\null
+ \,%
+ \vcenter
+ {\openup\displayopenupvalue % was \openup\jot
+ \mathsurround\zeropoint
+ \ialign
+ {\strut\hfil$\displaystyle{##}$&$\displaystyle{{}##}$\hfil\crcr
+ #1\crcr}}%
+ \,}
+
+\def\@lign % restore inside \displ@y
+ {\tabskip\zeroskip
+ \everycr{}}
+
+\def\displaylines#1%
+ {\displ@y
+ \tabskip\zeroskip
+ \halign
+ {\hbox to \displaywidth{$\@lign\hfil\displaystyle##\hfil$}\crcr
+ #1\crcr}}
+
+\def\eqalignno#1%
+ {\displ@y
+ \tabskip\centering
+ \halign to \displaywidth
+ {\hfil$\@lign\displaystyle{##}$\tabskip\zeroskip
+ &$\@lign\displaystyle{{}##}$\hfil\tabskip\centering
+ &\llap{$\@lign##$}\tabskip\zeroskip\crcr
+ #1\crcr}}
+
+\def\leqalignno#1%
+ {\displ@y
+ \tabskip\centering
+ \halign to \displaywidth
+ {\hfil$\@lign\displaystyle{##}$\tabskip\zeroskip
+ &$\@lign\displaystyle{{}##}$\hfil\tabskip\centering
+ &\kern-\displaywidth\rlap{$\@lign##$}\tabskip\displaywidth\crcr
+ #1\crcr}}
+
+% temporary here
+
+% \startcatcodetable \mthcatcodes
+% \setcatcodetable\ctxcatcodes
+% \catcode`\_ = 13
+% \catcode`\' = 13
+% \stopcatcodetable
+%
+% \letcatcodecommand \mthcatcodes `\_ \activemathunderscore
+% \letcatcodecommand \mthcatcodes `\' \activemathquote
+
+% \appendtoks \setcatcodetable\mthcatcodes \to \everymath : spoils xml
+
+% tricky, but some day we will reimplement math
+
+\bgroup
+ \catcode`\_ = 13
+ \catcode`\' = 13
+ \doglobal\appendtoks
+ \let_\activemathunderscore
+ \let'\activemathquote
+ \to \everymathematics
+\egroup
+
+% so far
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/math-run.tex b/Master/texmf-dist/tex/context/base/math-run.mkii
index affa8d5af17..afe5b18b47f 100644
--- a/Master/texmf-dist/tex/context/base/math-run.tex
+++ b/Master/texmf-dist/tex/context/base/math-run.mkii
@@ -11,6 +11,8 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+\writestatus{loading}{ConTeXt Math Macros / Runtime Macros}
+
\unprotect
\ifx\showmathmodern\undefined \global\chardef\showmathmodern\zerocount \fi
diff --git a/Master/texmf-dist/tex/context/base/math-scr.mkiv b/Master/texmf-dist/tex/context/base/math-scr.mkiv
new file mode 100644
index 00000000000..43355679f45
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/math-scr.mkiv
@@ -0,0 +1,215 @@
+%D \module
+%D [ file=math-scr,
+%D version=2007.07.19,
+%D title=\CONTEXT\ Math Macros,
+%D subtitle=Scripts,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=\PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Math Macros / Scripts}
+
+\unprotect
+
+%D \macros
+%D {super, sub}
+%D
+%D \TEX\ uses \type{^} and \type{_} for entering super- and
+%D subscript mode. We want however a bit more control than
+%D normally provided, and therefore provide \type {\super}
+%D and \type{sub}.
+
+\global\let\normalsuper=^
+\global\let\normalsuber=_
+
+\newcount\supersubmode
+
+\newevery\everysupersub \EverySuperSub
+
+\appendtoks \advance\supersubmode \plusone \to \everysupersub
+
+\appendtoks
+ \gridsupsubstyle
+\to \everysupersub
+
+\appendtoks
+ \doifelse\@@mtsize\v!small
+ {\let\gridsupsubstyle \scriptscriptstyle
+ \let\gridsupsubbodyfont \setsmallbodyfont}%
+ {\let\gridsupsubstyle \scriptstyle
+ \let\gridsupsubbodyfont \relax}%
+\to \everysetuptextformulas
+
+\setuptextformulas
+ [\c!size=\v!normal]
+
+\def\dogridsupsub#1#2%
+ {\begingroup
+ \setbox\nextbox\iftracegridsnapping\ruledhbox\else\hbox\fi
+ {\gridsupsubbodyfont
+ $\strut^{\the\everysupersub#1}_{\the\everysupersub#2}$}%
+ \nextboxht\strutheight
+ \nextboxdp\strutdepth
+ \flushnextbox
+ \endgroup}
+
+\def\gridsupsub
+ {\ifconditional\crazymathsnapping
+ \ifgridsnapping
+ \@EAEAEA\dogridsupsub
+ \else
+ \@EAEAEA\normalsupsub
+ \fi
+ \else
+ \@EA\normalsupsub
+ \fi}
+
+\def\normalsupsub#1#2%
+ {^{\the\everysupersub#1}_{\the\everysupersub#2}}
+
+\appendtoks
+ \let\gridsupsubstyle \relax
+ \let\gridsupsubbodyfont\relax
+ \let\gridsupsub \normalsupsub
+\to \everydisplay
+
+\def\super#1{^{\the\everysupersub#1}}
+\def\suber#1{_{\the\everysupersub#1}}
+\def\supsub#1#2{\super{#1}\suber{#2}}
+\def\subsup#1#2{\suber{#1}\super{#2}}
+
+%\def\super#1{\gridsupsub{#1}{}} %
+%\def\suber#1{\gridsupsub{}{#1}} %
+%
+%\def\supsub#1#2{\gridsupsub{#1}{#2}}
+%\def\subsup#1#2{\gridsupsub{#2}{#1}}
+
+\def\gridsuper#1{\gridsupsub{#1}{}}
+\def\gridsuber#1{\gridsupsub{}{#1}}
+
+% \let\sup\super % math char
+% \let\sub\suber
+
+% test set:
+%
+% \startbuffer
+% \sform{x\frac{1}{2}}
+% \sform{x\sup{\frac{1}{2}} + x\sup{2} + 2}
+% \sform{x\supsub{\frac{1}{2}}{\frac{1}{2}} + x\sup{2} + 2}
+% \stopbuffer
+%
+% \typebuffer
+%
+% \startlines
+% \getbuffer
+% \stoplines
+%
+% \startbuffer
+% $x\frac{1}{2}$
+% $x\sup{\frac{1}{2}} + x^2 + 2$
+% $x\supsub{\frac{1}{2}}{\frac{1}{2}} + x^2 + 2$
+% \stopbuffer
+%
+% \typebuffer
+%
+% \start
+% \enablesupersub
+% \enableautomath
+% \startlines
+% \getbuffer
+% \stoplines
+% \stop
+
+%D \macros
+%D {enablesupersub,enablesimplesupersub}
+%D
+%D We can let \type {^} and \type {_} act like \type {\super}
+%D and \type {\sub} by saying \type {\enablesupersub}.
+
+\bgroup
+\catcode`\^=\@@active
+\catcode`\_=\@@active
+\gdef\enablesupersub
+ {\catcode`\^=\@@active
+ \def^{\ifmmode\expandafter\super\else\expandafter\normalsuper\fi}%
+ \catcode`\_=\@@active
+ \def_{\ifmmode\expandafter\suber\else\expandafter\normalsuber\fi}}
+\egroup
+
+%D \macros
+%D {restoremathstyle}
+%D
+%D We can pick up the current math style by calling \type
+%D {\restoremathstyle}.
+
+\def\restoremathstyle
+ {\ifmmode
+ \ifcase\supersubmode
+ \textstyle
+ \or
+ \scriptstyle
+ \else
+ \scriptscriptstyle
+ \fi
+ \fi}
+
+%D These macros were first needed by Frits Spijker (also
+%D known as Gajes) for typesetting the minus sign that is
+%D keyed into scientific calculators.
+
+% This is the first alternative, which works okay for the
+% minus, but less for the plus.
+%
+% \def\dodoraisedmathord#1#2#3%
+% {\mathord{{#2\raise.#1ex\hbox{#2#3}}}}
+%
+% \def\doraisedmathord#1%
+% {\mathchoice
+% {\dodoraisedmathord5\tf #1}%
+% {\dodoraisedmathord5\tf #1}%
+% {\dodoraisedmathord4\tfx #1}%
+% {\dodoraisedmathord3\tfxx#1}}
+%
+% \def\negative{\doraisedmathord-}
+% \def\positive{\doraisedmathord+}
+%
+% So, now we use the monospaced signs, that we also
+% define as symbol, so that they can be overloaded.
+
+\def\dodoraisedmathord#1#2#3%
+ {\mathord{{#2\raise.#1ex\hbox{#2\symbol[#3]}}}}
+
+\def\doraisedmathord#1%
+ {\mathchoice
+ {\dodoraisedmathord5\tf {#1}}%
+ {\dodoraisedmathord5\tf {#1}}%
+ {\dodoraisedmathord4\tx {#1}}%
+ {\dodoraisedmathord3\txx{#1}}}
+
+\def\dodonumbermathord#1#2%
+ {\setbox\scratchbox\hbox{0}%
+ \mathord{\hbox to \wd\scratchbox{\hss#1\symbol[#2]\hss}}}
+
+\def\donumbermathord#1%
+ {\mathchoice
+ {\dodonumbermathord\tf {#1}}%
+ {\dodonumbermathord\tf {#1}}%
+ {\dodonumbermathord\tx {#1}}%
+ {\dodonumbermathord\txx{#1}}}
+
+\definesymbol[positive] [\getglyph{Mono}{+}]
+\definesymbol[negative] [\getglyph{Mono}{-}]
+\definesymbol[zeroamount][\getglyph{Mono}{-}]
+
+\def\negative {\doraisedmathord{negative}}
+\def\positive {\doraisedmathord{positive}}
+\def\zeroamount{\donumbermathord{zeroamount}}
+
+%D How negative such a symbol looks is demonstrated in:
+%D $\negative 10^{\negative 10^{\negative 10}}$.
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/math-tex.tex b/Master/texmf-dist/tex/context/base/math-tex.mkii
index 752f113b71c..c833db9561a 100644
--- a/Master/texmf-dist/tex/context/base/math-tex.tex
+++ b/Master/texmf-dist/tex/context/base/math-tex.mkii
@@ -232,7 +232,7 @@
\stopmathcollection
\def\PLAINangle
- {{\vbox{\ialign{$\m@th\scriptstyle##$\crcr
+ {{\vbox{\ialign{$\mathsurround\zeropoint\scriptstyle##$\crcr
\not\mathrel{\mkern14mu}\crcr
\noalign{\nointerlineskip}
\mkern2.5mu\leaders\hrule height.34pt\hfill\mkern2.5mu\crcr}}}}
@@ -424,12 +424,12 @@
{\cdotp\cdotp\cdotp}
\def\PLAINvdots
- {\vbox{\baselineskip4\p@ \lineskiplimit\z@
- \kern6\p@\hbox{.}\hbox{.}\hbox{.}}}
+ {\vbox{\baselineskip.4\bodyfontsize\lineskiplimit\zeropoint
+ \kern.6\bodyfontsize\hbox{.}\hbox{.}\hbox{.}}}
\def\PLAINddots
- {\mkern1mu\raise7\p@\vbox{\kern7\p@\hbox{.}}\mkern2mu
- \raise4\p@\hbox{.}\mkern2mu\raise\p@\hbox{.}\mkern1mu}
+ {\mkern1mu\raise.7\bodyfontsize\vbox{\kern.7\bodyfontsize\hbox{.}}\mkern2mu
+ \raise.4\bodyfontsize\hbox{.}\mkern2mu\raise.1\bodyfontsize\hbox{.}\mkern1mu}
\startmathcollection[default]
@@ -521,7 +521,7 @@
\def\notsosqrt[#1]{\root#1\of}
-\unexpanded\def\sqrt{\doifnextcharelse[\notsosqrt\normalsqrt}
+\unexpanded\def\sqrt{\doifnextoptionalelse\notsosqrt\normalsqrt}
\def\PLAINbig {\@@dobig{0.85}}
\def\PLAINBig {\@@dobig{1.15}}
@@ -561,12 +561,12 @@
\stopmathcollection
\def\PLAINroot#1#2%
- {\setbox\z@\hbox{$\m@th#1\sqrt{#2}$}\dimen@\ht\z@
- \advance\dimen@-\dp\z@
- \mkern5mu\raise.6\dimen@\copy\rootbox \mkern-10mu\box\z@}
+ {\setbox\zerocount\hbox{$\mathsurround\zeropoint#1\sqrt{#2}$}\dimen@\ht\zerocount
+ \advance\dimen@-\dp\zerocount
+ \mkern5mu\raise.6\dimen@\copy\rootbox \mkern-10mu\box\zerocount}
\def\PLAINmatrix#1%
- {\null\,\vcenter{\normalbaselines\m@th
+ {\null\,\vcenter{\normalbaselines\mathsurround\zeropoint
\ialign{\hfil$##$\hfil&&\quad\hfil$##$\hfil\crcr
\mathstrut\crcr\noalign{\kern-\baselineskip}
#1\crcr\mathstrut\crcr\noalign{\kern-\baselineskip}}}\,}
@@ -651,7 +651,7 @@
%D The next macro vertically centeres its contents.
\def\@center@math#1%
- {\vcenter{\hbox{$\m@th#1$}}}
+ {\vcenter{\hbox{$\mathsurround\zeropoint#1$}}}
\def\@center@colon
{\mathpalette\@center@math{\colon}}
@@ -712,7 +712,6 @@
\mkern7mu\mathchoice{\mkern2mu}{}{}{}%
\let\dointlimits\egroup}
-
\setupmathematics
[integral=nolimits]
diff --git a/Master/texmf-dist/tex/context/base/math-tim.tex b/Master/texmf-dist/tex/context/base/math-tim.mkii
index de6561ba7e2..3b9aea1030e 100644
--- a/Master/texmf-dist/tex/context/base/math-tim.tex
+++ b/Master/texmf-dist/tex/context/base/math-tim.mkii
@@ -1,6 +1,6 @@
%D \module
%D [ file=math-tim,
-%D version=2001.04.12,
+%D version=2001.04.12,
%D title=\CONTEXT\ Math Macros,
%D subtitle=Mathtime Specials,
%D author={Hans Hagen \& Taco Hoekwater},
@@ -13,24 +13,24 @@
\endinput % i will clean this up after taco has gone over it
-%D With thanks to Berthold Horn from YandY for providing me
-%D evaluation copies of the MathTimePlus fonts.
+%D With thanks to Berthold Horn from YandY for providing me
+%D evaluation copies of the MathTimePlus fonts.
% version 0 : Michael Spivak
% version 1 : Taco Hoekwater
% version 2 : Hans Hagen
-% version 3 : etc etc etc
+% version 3 : etc etc etc
\unprotect
%D We use the predefined spare families \type {\mcfam} and
-%D \type {\mdfam}.
+%D \type {\mdfam}.
\let\cafam\mcfam \let\hexcafam\hexmcfam
\let\gbfam\mdfam \let\hexgbfam\hexmdfam
\let\gkfam\mdfam \let\hexgkfam\hexmdfam
-% Why is this needed?
+% Why is this needed?
% \font\tenmd =mtgu at 10pt
% \font\sevenmd=mtgu at 7.6pt
@@ -38,7 +38,7 @@
% \font\tenmc =mtms at 10pt
% \font\sevenmc=mtms at 7.6pt
% \font\fivemc =mtms at 6pt
-%
+%
% \textfont \mcfam\tenmc \textfont \mdfam\tenmd
% \scriptfont \mcfam\sevenmc \scriptfont \mdfam\sevenmd
% \scriptscriptfont\mcfam\fivemc \scriptscriptfont\mdfam\fivemd
@@ -52,7 +52,7 @@
% \definealternativestyle[script] [\ca][\ca]
% \definealternativestyle[greek] [\gk][\gk]
-% \definealternativestyle[boldgreek][\gb][\gb]
+% \definealternativestyle[boldgreek][\gb][\gb]
% \definebodyfont
% [5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,14.4pt] [rm]
@@ -60,9 +60,9 @@
% gk=mtgu sa 1,
% gb=mtgub sa 1]
-%D Since a font size is a rather fuzzy thing, it will be no
-%D surprise that the Math Times fonts have different specs
-%D than the Computer Modern Roman fonts.
+%D Since a font size is a rather fuzzy thing, it will be no
+%D surprise that the Math Times fonts have different specs
+%D than the Computer Modern Roman fonts.
%D
%D \starttabulate[|Bl|c|c|c|c|c|c|c|c|c|c|]
%D \NC Computer Modern\NC
@@ -71,9 +71,9 @@
%D 6.0\NC6.8\NC7.6\NC8.4\NC9.2\NC10.0\NC10.8\NC11.6\NC13.2\NC--\NC\NR
%D \stoptabulate
%D
-%D The following definitions presume the existence of \type
-%D {tio} and \type {tibio} font alternatives. Definitions for
-%D \type {\tf.} etc and \type {\sc} are left as they are.
+%D The following definitions presume the existence of \type
+%D {tio} and \type {tibio} font alternatives. Definitions for
+%D \type {\tf.} etc and \type {\sc} are left as they are.
%D moved code
@@ -100,10 +100,10 @@
\def\tildehex{7E}
\def\ddothex {7F}
-%D The \type {mtex} fonts need a recalculation of \type
+%D The \type {mtex} fonts need a recalculation of \type
%D {\p@renwd}, which in \CONTEXT\ is done automatically.
-%D The following definitions are mostly copied from the file
+%D The following definitions are mostly copied from the file
%D \type {mtmacs.tex}, which banner said:
%D
%D \starttyping
@@ -112,9 +112,9 @@
%D ALL RIGHTS RESERVED
%D \stoptyping
%D
-%D We reformatted the macros and changed a few bits and
-%D pieces. A further cleanup with regards to the scratch
-%D registers will be done later.
+%D We reformatted the macros and changed a few bits and
+%D pieces. A further cleanup with regards to the scratch
+%D registers will be done later.
\mathchardef\Gamma = "0130
\mathchardef\Delta = "0131
@@ -171,7 +171,7 @@
% like \rm (cf. the texbook page 290)
\def\ifdefaultfamelse#1#2%
- {\ifnum\fam=\m@ne\mathaccent#1\else\mathaccent#2\fi}
+ {\ifnum\fam=\minusone\mathaccent#1\else\mathaccent#2\fi}
\let\noaccents@\relax
@@ -190,10 +190,10 @@
\def\mathhexbox@#1#2#3%
{\relax
\ifmmode
- \mathpalette{}{\m@th\rm\mathchar"#1#2#3}%
+ \mathpalette{}{\mathsurround\zeropoint\rm\mathchar"#1#2#3}%
\else
\leavevmode
- \hbox{$\m@th\rm\mathchar"#1#2#3$}%
+ \hbox{$\mathsurround\zeropoint\rm\mathchar"#1#2#3$}%
\fi}
\def\dag {\edef\next@{0\daghex }\expandafter\mathhexbox@\next@}
@@ -204,16 +204,16 @@
\def\vdots%
{\vbox
- {\baselineskip4\p@
- \lineskiplimit\z@
- \kern6\p@\hbox{$\m@th.$}\hbox{$\m@th.$}\hbox{$\m@th.$}}}
+ {\baselineskip4\points
+ \lineskiplimit\zeropoint
+ \kern6\points\hbox{$\mathsurround\zeropoint.$}\hbox{$\mathsurround\zeropoint.$}\hbox{$\mathsurround\zeropoint.$}}}
\def\ddots%
{\mathinner
{\mkern1mu
- \raise7\p@\vbox{\kern 7\p@\hbox{$\m@th.$}}\mkern2mu
- \raise4\p@\hbox{$\m@th.$}\mkern2mu
- \raise \p@\hbox{$\m@th.$}\mkern1mu}}
+ \raise7\points\vbox{\kern 7\points\hbox{$\mathsurround\zeropoint.$}}\mkern2mu
+ \raise4\points\hbox{$\mathsurround\zeropoint.$}\mkern2mu
+ \raise \points\hbox{$\mathsurround\zeropoint.$}\mkern1mu}}
\def\hbar
{{\mathchoice
@@ -224,10 +224,10 @@
\mkern-6.3muh}}
\def\angle%
- {{\vbox{\ialign{$\m@th\scriptstyle##$\crcr
+ {{\vbox{\ialign{$\mathsurround\zeropoint\scriptstyle##$\crcr
\not\mathrel{\mkern14mu}\crcr
\noalign{\nointerlineskip}
- \mkern2.5mu\leaders\hrule height.48\p@\hfill\mkern2.5mu\crcr}}}}
+ \mkern2.5mu\leaders\hrule height.48\points\hfill\mkern2.5mu\crcr}}}}
\newdimen\amstexex
@@ -235,25 +235,25 @@
\def\varinjlim%
{\mathop{\vtop{\ialign{##\crcr
- \hfil\the\textfont\z@ lim\hfil\crcr
+ \hfil\the\textfont\zerocount lim\hfil\crcr
\noalign{\nointerlineskip}\rightarrowfill\crcr
\noalign{\nointerlineskip\kern-\amstexex}\crcr}}}}
\def\varprojlim%
{\mathop{\vtop{\ialign{##\crcr
- \hfil\the\textfont\z@ lim\hfil\crcr
+ \hfil\the\textfont\zerocount lim\hfil\crcr
\noalign{\nointerlineskip}\leftarrowfill\crcr
\noalign{\nointerlineskip\kern-\amstexex}\crcr}}}}
\def\varliminf{\mathop{\underbar {lim}}} % context-ified
\def\varlimsup{\mathop{\overstrike{lim}}} % context-ified
-\def\spdot {^{\hbox{\raise\amstexex\hbox{\the\textfont\z@ .}}}}
-\def\spddot {^{\hbox{\raise\amstexex\hbox{\the\textfont\z@ ..}}}}
-\def\spdddot {^{\hbox{\raise\amstexex\hbox{\the\textfont\z@ ...}}}}
-\def\spddddot{^{\hbox{\raise\amstexex\hbox{\the\textfont\z@....}}}}
+\def\spdot {^{\hbox{\raise\amstexex\hbox{\the\textfont\zerocount .}}}}
+\def\spddot {^{\hbox{\raise\amstexex\hbox{\the\textfont\zerocount ..}}}}
+\def\spdddot {^{\hbox{\raise\amstexex\hbox{\the\textfont\zerocount ...}}}}
+\def\spddddot{^{\hbox{\raise\amstexex\hbox{\the\textfont\zerocount....}}}}
-%D Here some code is merged in order to save strings.
+%D Here some code is merged in order to save strings.
\def\domultidot#1#2%
{\setbox0\hbox{$#1#2$}%
@@ -303,29 +303,29 @@
\fi}
\def\root#1\of#2%
- {\setbox\rootbox=\hbox{$\m@th\scriptscriptstyle{#1}$}%
+ {\setbox\rootbox=\hbox{$\mathsurround\zeropoint\scriptscriptstyle{#1}$}%
\mathpalette\r@@t{#2}}
\def\r@@t#1#2%
- {\setbox\z@=\hbox{$\uproot@\z@\leftroot\z@\m@th#1\sqrt{#2}$}%
- \dimen@\ht\z@\advance\dimen@-\dp\z@
+ {\setbox\zerocount\hbox{$\uproot@\zerocount\leftroot\zerocount\mathsurround\zeropoint#1\sqrt{#2}$}%
+ \dimen@\ht\zerocount\advance\dimen@-\dp\zerocount
\dimen@ii\dimen@
- \ifdim\dimen@>30\p@ \advance\dimen@ii-16\p@ \else
- \ifdim\dimen@>24\p@ \advance\dimen@ii -8\p@ \else
- \ifdim\dimen@>18\p@ \advance\dimen@ii -6\p@ \else
- \ifdim\dimen@>12\p@ \advance\dimen@ii -4\p@ \else
- \ifdim\dimen@>10\p@ \advance\dimen@ii -2\p@ \fi\fi\fi\fi\fi
- \setbox\tw@=\hbox{$\m@th#1\mskip\uproot@ mu$}%
- \advance\dimen@ii by1.667\wd\tw@
+ \ifdim\dimen@>30\points \advance\dimen@ii-16\points \else
+ \ifdim\dimen@>24\points \advance\dimen@ii -8\points \else
+ \ifdim\dimen@>18\points \advance\dimen@ii -6\points \else
+ \ifdim\dimen@>12\points \advance\dimen@ii -4\points \else
+ \ifdim\dimen@>10\points \advance\dimen@ii -2\points \fi\fi\fi\fi\fi
+ \setbox\plustwo=\hbox{$\mathsurround\zeropoint#1\mskip\uproot@ mu$}%
+ \advance\dimen@ii by1.667\wd\plustwo
\mkern-\leftroot@ mu\mkern5mu\raise.6\dimen@ii\copy\rootbox
- \mkern-8mu\mkern\leftroot@ mu\box\z@\leftroot\z@\uproot\z@}
+ \mkern-8mu\mkern\leftroot@ mu\box\zerocount\leftroot\zerocount\uproot\zerocount}
\def\space@.{\futurelet\space@\relax} \space@. % really needed ?
\def\jadjust%
- {\mkern-\tw@ mu}
+ {\mkern-\plustwo mu}
-%D For the moment the following code is left unchanged. It is
+%D For the moment the following code is left unchanged. It is
%D not used anyway.
\newif\ifsubscriptcorrection \subscriptcorrectionfalse
@@ -358,11 +358,11 @@
\else
\def\next@.%
{\ifx\next j%
- \mkern-\tw@ mu\else
+ \mkern-\plustwo mu\else
\ifx\next f%
- \mkern-\tw@ mu\else
+ \mkern-\plustwo mu\else
\ifx\next p%
- \mkern-\@ne mu\fi\fi\fi}%
+ \mkern-\plusone mu\fi\fi\fi}%
\fi
\next@.}
diff --git a/Master/texmf-dist/tex/context/base/math-uni.tex b/Master/texmf-dist/tex/context/base/math-uni.mkii
index e8fd3f05def..e8fd3f05def 100644
--- a/Master/texmf-dist/tex/context/base/math-uni.tex
+++ b/Master/texmf-dist/tex/context/base/math-uni.mkii
diff --git a/Master/texmf-dist/tex/context/base/math-vfu.lua b/Master/texmf-dist/tex/context/base/math-vfu.lua
new file mode 100644
index 00000000000..fb5113be45b
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/math-vfu.lua
@@ -0,0 +1,1601 @@
+if not modules then modules = { } end modules ['math-vfu'] = {
+ version = 1.001,
+ comment = "companion to math-ini.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- All these math vectors .. thanks to Aditya and Mojca they become
+-- better and better.
+
+local type, next = type, next
+
+local trace_virtual = false trackers.register("math.virtual", function(v) trace_virtual = v end)
+local trace_timings = false trackers.register("math.timings", function(v) trace_timings = v end)
+
+fonts.enc.math = fonts.enc.math or { }
+
+local shared = { }
+
+fonts.vf.math = fonts.vf.math or { }
+fonts.vf.math.optional = false
+
+local push, pop, back = { "push" }, { "pop" }, { "slot", 1, 0x2215 }
+
+local function negate(main,unicode,basecode)
+ local characters = main.characters
+ if not characters[unicode] then
+ local basechar = characters[basecode]
+ if basechar then
+ local ht, wd = basechar.height, basechar.width
+ characters[unicode] = {
+ width = wd,
+ height = ht,
+ depth = basechar.depth,
+ italic = basechar.italic,
+ kerns = basechar.kerns,
+ commands = {
+ { "slot", 1, basecode },
+ push,
+ { "down", ht/5},
+ { "right", - wd/2},
+ back,
+ push,
+ }
+ }
+ end
+ end
+end
+
+--~ \Umathchardef\braceld="0 "1 "FF07A
+--~ \Umathchardef\bracerd="0 "1 "FF07B
+--~ \Umathchardef\bracelu="0 "1 "FF07C
+--~ \Umathchardef\braceru="0 "1 "FF07D
+
+local function brace(main,unicode,first,rule,left,right,rule,last)
+ local characters = main.characters
+ if not characters[unicode] then
+ characters[unicode] = {
+ horiz_variants = {
+ { extender = 0, glyph = first },
+ { extender = 1, glyph = rule },
+ { extender = 0, glyph = left },
+ { extender = 0, glyph = right },
+ { extender = 1, glyph = rule },
+ { extender = 0, glyph = last },
+ }
+ }
+ end
+end
+
+local function arrow(main,unicode,arrow,minus,isleft)
+ if isleft then
+ t = {
+ { extender = 0, glyph = arrow },
+ { extender = 1, glyph = minus },
+ }
+ else
+ t = {
+ { extender = 0, glyph = minus },
+ { extender = 1, glyph = arrow },
+ }
+ end
+--~ main.characters[unicode] = { horiz_variants = t }
+ main.characters[unicode].horiz_variants = t
+end
+
+local function parent(main,unicode,first,rule,last)
+ local characters = main.characters
+ if not characters[unicode] then
+ characters[unicode] = {
+ horiz_variants = {
+ { extender = 0, glyph = first },
+ { extender = 1, glyph = rule },
+ { extender = 0, glyph = last },
+ }
+ }
+ end
+end
+
+local push, pop, step = { "push" }, { "pop" }, 0.2 -- 0.1 is nicer but gives larger files
+
+local function make(main,id,size,n,m)
+ local characters = main.characters
+ local xu = main.parameters.x_height + 0.3*size
+ local xd = 0.3*size
+ local old, upslot, dnslot, uprule, dnrule = 0xFF000+n, 0xFF100+n, 0xFF200+n, 0xFF300+m, 0xFF400+m
+ local c = characters[old]
+ if c then
+ local w, h, d = c.width, c.height, c.depth
+ local thickness = h - d
+ local rulewidth = step*size -- we could use an overlap
+ local slot = { "slot", id, old }
+ local rule = { "rule", thickness, rulewidth }
+ local up = { "down", -xu }
+ local dn = { "down", xd }
+ local ht, dp = xu + 3*thickness, 0
+ if not characters[uprule] then
+ characters[uprule] = { width = rulewidth, height = ht, depth = dp, commands = { push, up, rule, pop } }
+ end
+ characters[upslot] = { width = w, height = ht, depth = dp, commands = { push, up, slot, pop } }
+ local ht, dp = 0, xd + 3*thickness
+ if not characters[dnrule] then
+ characters[dnrule] = { width = rulewidth, height = ht, depth = dp, commands = { push, dn, rule, pop } }
+ end
+ characters[dnslot] = { width = w, height = ht, depth = dp, commands = { push, dn, slot, pop } }
+ end
+end
+
+local function minus(main,id,size,unicode)
+ local characters = main.characters
+ local mu = size/18
+ local minus = characters[0x002D]
+ local width = minus.width - 5*mu
+ characters[unicode] = {
+ width = width, height = minus.height, depth = minus.depth,
+ commands = { push, { "right", -3*mu }, { "slot", id, 0x002D }, pop }
+ }
+end
+
+local function dots(main,id,size,unicode)
+ local characters = main.characters
+ local c = characters[0x002E]
+ local w, h, d = c.width, c.height, c.depth
+ local mu = size/18
+ local right3mu = { "right", 3*mu }
+ local right1mu = { "right", 1*mu }
+ local up1size = { "down", -.1*size }
+ local up4size = { "down", -.4*size }
+ local up7size = { "down", -.7*size }
+ local right2muw = { "right", 2*mu + w }
+ local slot = { "slot", id, 0x002E }
+ if unicode == 0x22EF then
+ local c = characters[0x022C5]
+ if c then
+ local w, h, d = c.width, c.height, c.depth
+ local slot = { "slot", id, 0x022C5 }
+ characters[unicode] = {
+ width = 3*w + 2*3*mu, height = h, depth = d,
+ commands = { push, slot, right3mu, slot, right3mu, slot, pop }
+ }
+ end
+ elseif unicode == 0x22EE then
+ -- weird height !
+ characters[unicode] = {
+ width = w, height = h+(1.4)*size, depth = 0,
+ commands = { push, push, slot, pop, up4size, push, slot, pop, up4size, slot, pop }
+ }
+ elseif unicode == 0x22F1 then
+ characters[unicode] = {
+ width = 3*w + 6*size/18, height = 1.5*size, depth = 0,
+ commands = {
+ push,
+ right1mu,
+ push, up7size, slot, pop,
+ right2muw,
+ push, up4size, slot, pop,
+ right2muw,
+ push, up1size, slot, pop,
+ right1mu,
+ pop
+ }
+ }
+ elseif unicode == 0x22F0 then
+ characters[unicode] = {
+ width = 3*w + 6*size/18, height = 1.5*size, depth = 0,
+ commands = {
+ push,
+ right1mu,
+ push, up1size, slot, pop,
+ right2muw,
+ push, up4size, slot, pop,
+ right2muw,
+ push, up7size, slot, pop,
+ right1mu,
+ pop
+ }
+ }
+ else
+ characters[unicode] = {
+ width = 3*w + 2*3*mu, height = h, depth = d,
+ commands = { push, slot, right3mu, slot, right3mu, slot, pop }
+ }
+ end
+end
+
+function fonts.vf.math.alas(main,id,size)
+ for i=0x7A,0x7D do
+ make(main,id,size,i,1)
+ end
+ brace (main,0x23DE,0xFF17A,0xFF301,0xFF17D,0xFF17C,0xFF301,0xFF17B)
+ brace (main,0x23DF,0xFF27C,0xFF401,0xFF27B,0xFF27A,0xFF401,0xFF27D)
+ parent(main,0x23DC,0xFF17A,0xFF301,0xFF17B)
+ parent(main,0x23DD,0xFF27C,0xFF401,0xFF27D)
+ negate(main,0x2260,0x003D)
+ dots(main,id,size,0x2026) -- ldots
+ dots(main,id,size,0x22EE) -- vdots
+ dots(main,id,size,0x22EF) -- cdots
+ dots(main,id,size,0x22F1) -- ddots
+ dots(main,id,size,0x22F0) -- udots
+ minus(main,id,size,0xFF501)
+ arrow(main,0x2190,0xFE190,0xFF501,true) -- left
+ arrow(main,0x2192,0xFE192,0xFF501,false) -- right
+end
+
+local reverse -- index -> unicode
+
+function fonts.basecopy(tfmtable)
+ local t, c, p = { }, { }, { }
+ for k, v in next, tfmtable do
+ t[k] = v
+ end
+ for k, v in next, tfmtable.characters do
+ c[k] = v
+ end
+ for k, v in next, tfmtable.parameters do
+ p[k] = v
+ end
+ t.characters, t.parameters = c, p
+ return t
+end
+
+local reported = { }
+
+function fonts.vf.math.define(specification,set)
+ if not reverse then
+ reverse = { }
+ for k, v in next, fonts.enc.math do
+ local r = { }
+ for u, i in next, v do
+ r[i] = u
+ end
+ reverse[k] = r
+ end
+ end
+ local name = specification.name -- symbolic name
+ local size = specification.size -- given size
+ local fnt, lst, main = { }, { }, nil
+ local start = (trace_virtual or trace_timings) and os.clock()
+--~ texio.write_nl("defining font " .. name .. " " .. size)
+ local okset, n = { }, 0
+ for s=1,#set do
+ local ss = set[s]
+ local ssname = ss.name
+ if ss.optional and fonts.vf.math.optional then
+ if trace_virtual then
+ logs.report("math virtual","loading font %s subfont %s with name %s at %s is skipped",name,s,ssname,size)
+ end
+ else
+ if ss.features then ssname = ssname .. "*" .. ss.features end
+ if ss.main then main = s end
+ local f, id = fonts.tfm.read_and_define(ssname,size)
+ if not f then
+ logs.report("math virtual","loading font %s subfont %s with name %s at %s is skipped, not found",name,s,ssname,size)
+ else
+ n = n + 1
+ okset[n] = ss
+ fnt[n] = f
+ lst[n] = { id = id, size = size }
+ if not shared[s] then shared[n] = { } end
+ if trace_virtual then
+ logs.report("math virtual","loading font %s subfont %s with name %s at %s as id %s using encoding %s",name,s,ssname,size,id,ss.vector or "none")
+ end
+ end
+ end
+ end
+ -- beware, fnt[1] is already passed to tex (we need to make a simple copy then .. todo)
+ main = fonts.basecopy(fnt[1])
+ main.name, main.fonts, main.virtualized, main.math_parameters = name, lst, true, { }
+ local characters, descriptions = main.characters, main.descriptions
+ main.parameters.x_height = main.parameters.x_height or 0
+ for s=1,n do
+ local ss, fs = okset[s], fnt[s]
+ if not fs then
+ -- skip, error
+ elseif ss.optional and fonts.vf.math.optional then
+ -- skip, redundant
+ else
+ local mm, fp = main.math_parameters, fs.parameters
+ if ss.extension then
+ mm.math_x_height = fp.x_height or 0 -- math_x_height height of x
+ mm.default_rule_thickness = fp[ 8] or 0 -- default_rule_thickness thickness of \over bars
+ mm.big_op_spacing1 = fp[ 9] or 0 -- big_op_spacing1 minimum clearance above a displayed op
+ mm.big_op_spacing2 = fp[10] or 0 -- big_op_spacing2 minimum clearance below a displayed op
+ mm.big_op_spacing3 = fp[11] or 0 -- big_op_spacing3 minimum baselineskip above displayed op
+ mm.big_op_spacing4 = fp[12] or 0 -- big_op_spacing4 minimum baselineskip below displayed op
+ mm.big_op_spacing5 = fp[13] or 0 -- big_op_spacing5 padding above and below displayed limits
+ -- logs.report("math virtual","loading and virtualizing font %s at size %s, setting ex parameters",name,size)
+ elseif ss.parameters then
+ main.parameters.x_height = fp.x_height or main.parameters.x_height
+ mm.x_height = mm.x_height or fp.x_height or 0 -- x_height height of x
+ mm.num1 = fp[ 8] or 0 -- num1 numerator shift-up in display styles
+ mm.num2 = fp[ 9] or 0 -- num2 numerator shift-up in non-display, non-\atop
+ mm.num3 = fp[10] or 0 -- num3 numerator shift-up in non-display \atop
+ mm.denom1 = fp[11] or 0 -- denom1 denominator shift-down in display styles
+ mm.denom2 = fp[12] or 0 -- denom2 denominator shift-down in non-display styles
+ mm.sup1 = fp[13] or 0 -- sup1 superscript shift-up in uncramped display style
+ mm.sup2 = fp[14] or 0 -- sup2 superscript shift-up in uncramped non-display
+ mm.sup3 = fp[15] or 0 -- sup3 superscript shift-up in cramped styles
+ mm.sub1 = fp[16] or 0 -- sub1 subscript shift-down if superscript is absent
+ mm.sub2 = fp[17] or 0 -- sub2 subscript shift-down if superscript is present
+ mm.sup_drop = fp[18] or 0 -- sup_drop superscript baseline below top of large box
+ mm.sub_drop = fp[19] or 0 -- sub_drop subscript baseline below bottom of large box
+ mm.delim1 = fp[20] or 0 -- delim1 size of \atopwithdelims delimiters in display styles
+ mm.delim2 = fp[21] or 0 -- delim2 size of \atopwithdelims delimiters in non-displays
+ mm.axis_height = fp[22] or 0 -- axis_height height of fraction lines above the baseline
+ -- logs.report("math virtual","loading and virtualizing font %s at size %s, setting sy parameters",name,size)
+ end
+ local vectorname = ss.vector
+ if vectorname then
+ local offset = 0xFF000
+ local vector = fonts.enc.math[vectorname]
+ local rotcev = reverse[vectorname]
+ if vector then
+ local fc, fd, si = fs.characters, fs.descriptions, shared[s]
+ local skewchar = ss.skewchar
+ for unicode, index in next, vector do
+ local fci = fc[index]
+ if not fci then
+ local fontname = fs.name
+ local rf = reported[fontname]
+ if not rf then rf = { } reported[fontname] = rf end
+ local rv = rf[vectorname]
+ if not rv then rv = { } rf[vectorname] = rv end
+ local ru = rv[unicode]
+ if not ru then
+ logs.report("math virtual", "unicode point U+%05X has no index %04X in vector %s for font %s",unicode,index,vectorname,fontname)
+ rv[unicode] = true
+ end
+ else
+ local ref = si[index]
+ if not ref then
+ ref = { { 'slot', s, index } }
+ si[index] = ref
+ end
+ local kerns = fci.kerns
+ if kerns then
+ local width = fci.width
+ local krn = { }
+ for k=1,#kerns do
+ local rk = rotcev[k]
+ if rk then
+ krn[rk] = kerns[k]
+ end
+ end
+ if not next(krn) then
+ krn = nil
+ end
+ local t = {
+ width = width,
+ height = fci.height,
+ depth = fci.depth,
+ italic = fci.italic,
+ kerns = krn,
+ commands = ref,
+ }
+ if skewchar and kerns then
+ local k = kerns[skewchar]
+ if k then
+ t.top_accent = width/2 + k
+ end
+ end
+ characters[unicode] = t
+ else
+ characters[unicode] = {
+ width = fci.width,
+ height = fci.height,
+ depth = fci.depth,
+ italic = fci.italic,
+ commands = ref,
+ }
+ end
+ end
+ end
+ if ss.extension then
+ -- todo: if multiple ex, then 256 offsets per instance
+ local extension = fonts.enc.math["large-to-small"]
+ local variants_done = fs.variants_done
+ for index, fci in next, fc do -- the raw ex file
+ if type(index) == "number" then
+ local ref = si[index]
+ if not ref then
+ ref = { { 'slot', s, index } }
+ si[index] = ref
+ end
+ local t = {
+ width = fci.width,
+ height = fci.height,
+ depth = fci.depth,
+ italic = fci.italic,
+ commands = ref,
+ }
+ local n = fci.next
+ if n then
+ t.next = offset + n
+ elseif variants_done then
+ local vv = fci.vert_variants
+ if vv then
+ t.vert_variants = vv
+ end
+ local hv = fci.horiz_variants
+ if hv then
+ t.horiz_variants = hv
+ end
+ else
+ local vv = fci.vert_variants
+ if vv then
+ for i=1,#vv do
+ local vvi = vv[i]
+ vvi.glyph = vvi.glyph + offset
+ end
+ t.vert_variants = vv
+ end
+ local hv = fci.horiz_variants
+ if hv then
+ for i=1,#hv do
+ local hvi = hv[i]
+ hvi.glyph = hvi.glyph + offset
+ end
+ t.horiz_variants = hv
+ end
+ end
+ characters[offset + index] = t
+ end
+ end
+ fs.variants_done = true
+ for unicode, index in next, extension do
+ local cu = characters[unicode]
+ if cu then
+ cu.next = offset + index
+ --~ local n, c, d = unicode, cu, { }
+ --~ print("START", unicode)
+ --~ while n do
+ --~ n = c.next
+ --~ if n then
+ --~ print("NEXT", n)
+ --~ c = characters[n]
+ --~ if not c then
+ --~ print("EXIT")
+ --~ elseif d[n] then
+ --~ print("LOOP")
+ --~ break
+ --~ end
+ --~ d[n] = true
+ --~ end
+ --~ end
+ else
+ local fci = fc[index]
+ local ref = si[index]
+ if not ref then
+ ref = { { 'slot', s, index } }
+ si[index] = ref
+ end
+ local kerns = fci.kerns
+ if kerns then
+ local krn = { }
+ for k=1,#kerns do
+ krn[offset + k] = kerns[k]
+ end
+ characters[unicode] = {
+ width = fci.width,
+ height = fci.height,
+ depth = fci.depth,
+ italic = fci.italic,
+ commands = ref,
+ kerns = krn,
+ next = offset + index,
+ }
+ else
+ characters[unicode] = {
+ width = fci.width,
+ height = fci.height,
+ depth = fci.depth,
+ italic = fci.italic,
+ commands = ref,
+ next = offset + index,
+ }
+ end
+ end
+ end
+ end
+ end
+ end
+ mathematics.extras.copy(main) --not needed here (yet)
+ end
+ end
+ lst[#lst+1] = { id = font.nextid(), size = size }
+ fonts.vf.math.alas(main,#lst,size)
+ if trace_virtual or trace_timings then
+ logs.report("math virtual","loading and virtualizing font %s at size %s took %0.3f seconds",name,size,os.clock()-start)
+ end
+ main.has_italic = true
+ main.type = "virtual" -- not needed
+ mathematics.scaleparameters(main,main,1)
+main.nomath = false
+ return main
+end
+
+function mathematics.make_font(name, set)
+ fonts.define.methods[name] = function(specification)
+ return fonts.vf.math.define(specification,set)
+ end
+end
+
+-- varphi is part of the alphabet, contrary to the other var*s'
+
+fonts.enc.math["large-to-small"] = {
+ [0x00028] = 0x00, -- (
+ [0x00029] = 0x01, -- )
+ [0x0005B] = 0x02, -- [
+ [0x0005D] = 0x03, -- ]
+ [0x0230A] = 0x04, -- lfloor
+ [0x0230B] = 0x05, -- rfloor
+ [0x02308] = 0x06, -- lceil
+ [0x02309] = 0x07, -- rceil
+ [0x0007B] = 0x08, -- {
+ [0x0007D] = 0x09, -- }
+ [0x027E8] = 0x0A, -- <
+ [0x027E9] = 0x0B, -- >
+ [0x0007C] = 0x0C, -- |
+--~ [0x0] = 0x0D, -- lVert rVert Vert
+-- [0x0002F] = 0x0E, -- /
+ [0x0005C] = 0x0F, -- \
+--~ [0x0] = 0x3A, -- lgroup
+--~ [0x0] = 0x3B, -- rgroup
+--~ [0x0] = 0x3C, -- arrowvert
+--~ [0x0] = 0x3D, -- Arrowvert
+ [0x02195] = 0x3F, -- updownarrow
+--~ [0x0] = 0x40, -- lmoustache
+--~ [0x0] = 0x41, -- rmoustache
+ [0x0221A] = 0x70, -- sqrt
+ [0x021D5] = 0x77, -- Updownarrow
+ [0x02191] = 0x78, -- uparrow
+ [0x02193] = 0x79, -- downarrow
+ [0x021D1] = 0x7E, -- Uparrow
+ [0x021D3] = 0x7F, -- Downarrow
+ [0x0220F] = 0x59, -- prod
+ [0x02210] = 0x61, -- coprod
+ [0x02211] = 0x58, -- sum
+ [0x0222B] = 0x5A, -- intop
+ [0x0222E] = 0x49, -- ointop
+ [0xFE302] = 0x62, -- widehat
+ [0xFE303] = 0x65, -- widetilde
+ [0x022C0] = 0x5E, -- bigwedge
+ [0x022C1] = 0x5F, -- bigvee
+ [0x022C2] = 0x5C, -- bigcap
+ [0x022C3] = 0x5B, -- bigcup
+ [0x02044] = 0x0E, -- /
+}
+
+fonts.enc.math["tex-ex"] = {
+ [0x0220F] = 0x51, -- prod
+ [0x0222B] = 0x52, -- intop
+ [0x02210] = 0x60, -- coprod
+ [0x02211] = 0x50, -- sum
+ [0x022C0] = 0x56, -- bigwedge
+ [0x022C1] = 0x57, -- bigvee
+ [0x022C2] = 0x54, -- bigcap
+ [0x022C3] = 0x53, -- bigcup
+ [0x02A04] = 0x55, -- biguplus
+ [0x02A02] = 0x4E, -- bigotimes
+ [0x02A01] = 0x4C, -- bigoplus
+ [0x02A03] = 0x4A, -- bigodot
+ [0x0222E] = 0x48, -- ointop
+ [0x02A06] = 0x46, -- bigsqcup
+}
+
+-- only math stuff is needed, since we always use an lm or gyre
+-- font as main font
+
+fonts.enc.math["tex-mr"] = {
+ [0x00393] = 0x00, -- Gamma
+ [0x00394] = 0x01, -- Delta
+ [0x00398] = 0x02, -- Theta
+ [0x0039B] = 0x03, -- Lambda
+ [0x0039E] = 0x04, -- Xi
+ [0x003A0] = 0x05, -- Pi
+ [0x003A3] = 0x06, -- Sigma
+ [0x003A5] = 0x07, -- Upsilon
+ [0x003A6] = 0x08, -- Phi
+ [0x003A8] = 0x09, -- Psi
+ [0x003A9] = 0x0A, -- Omega
+-- [0x00060] = 0x12, -- [math]grave
+-- [0x000B4] = 0x13, -- [math]acute
+-- [0x002C7] = 0x14, -- [math]check
+-- [0x002D8] = 0x15, -- [math]breve
+-- [0x000AF] = 0x16, -- [math]bar
+-- [0x00021] = 0x21, -- !
+-- [0x00028] = 0x28, -- (
+-- [0x00029] = 0x29, -- )
+-- [0x0002B] = 0x2B, -- +
+-- [0x0002F] = 0x2F, -- /
+-- [0x0003A] = 0x3A, -- :
+-- [0x02236] = 0x3A, -- colon
+-- [0x0003B] = 0x3B, -- ;
+-- [0x0003C] = 0x3C, -- <
+-- [0x0003D] = 0x3D, -- =
+-- [0x0003E] = 0x3E, -- >
+-- [0x0003F] = 0x3F, -- ?
+ [0x00391] = 0x41, -- Alpha
+ [0x00392] = 0x42, -- Beta
+ [0x02145] = 0x44,
+ [0x00395] = 0x45, -- Epsilon
+ [0x00397] = 0x48, -- Eta
+ [0x00399] = 0x49, -- Iota
+ [0x0039A] = 0x4B, -- Kappa
+ [0x0039C] = 0x4D, -- Mu
+ [0x0039D] = 0x4E, -- Nu
+ [0x0039F] = 0x4F, -- Omicron
+ [0x003A1] = 0x52, -- Rho
+ [0x003A4] = 0x54, -- Tau
+ [0x003A7] = 0x58, -- Chi
+ [0x00396] = 0x5A, -- Zeta
+-- [0x0005B] = 0x5B, -- [
+-- [0x0005D] = 0x5D, -- ]
+-- [0x0005E] = 0x5E, -- [math]hat -- the text one
+ [0x00302] = 0x5E, -- [math]hat -- the real math one
+-- [0x002D9] = 0x5F, -- [math]dot
+ [0x02146] = 0x64,
+ [0x02147] = 0x65,
+-- [0x002DC] = 0x7E, -- [math]tilde -- the text one
+ [0x00303] = 0x7E, -- [math]tilde -- the real one
+-- [0x000A8] = 0x7F, -- [math]ddot
+}
+
+fonts.enc.math["tex-mi"] = {
+ [0x1D6E4] = 0x00, -- Gamma
+ [0x1D6E5] = 0x01, -- Delta
+ [0x1D6E9] = 0x02, -- Theta
+ [0x1D6F3] = 0x02, -- varTheta (not present in TeX)
+ [0x1D6EC] = 0x03, -- Lambda
+ [0x1D6EF] = 0x04, -- Xi
+ [0x1D6F1] = 0x05, -- Pi
+ [0x1D6F4] = 0x06, -- Sigma
+ [0x1D6F6] = 0x07, -- Upsilon
+ [0x1D6F7] = 0x08, -- Phi
+ [0x1D6F9] = 0x09, -- Psi
+ [0x1D6FA] = 0x0A, -- Omega
+ [0x1D6FC] = 0x0B, -- alpha
+ [0x1D6FD] = 0x0C, -- beta
+ [0x1D6FE] = 0x0D, -- gamma
+ [0x1D6FF] = 0x0E, -- delta
+ [0x1D716] = 0x0F, -- epsilon TODO: 1D716
+ [0x1D701] = 0x10, -- zeta
+ [0x1D702] = 0x11, -- eta
+ [0x1D703] = 0x12, -- theta TODO: 1D703
+ [0x1D704] = 0x13, -- iota
+ [0x1D705] = 0x14, -- kappa
+ [0x1D718] = 0x14, -- varkappa, not in tex fonts
+ [0x1D706] = 0x15, -- lambda
+ [0x1D707] = 0x16, -- mu
+ [0x1D708] = 0x17, -- nu
+ [0x1D709] = 0x18, -- xi
+ [0x1D70B] = 0x19, -- pi
+ [0x1D70C] = 0x1A, -- rho
+ [0x1D70E] = 0x1B, -- sigma
+ [0x1D70F] = 0x1C, -- tau
+ [0x1D710] = 0x1D, -- upsilon
+ [0x1D719] = 0x1E, -- phi
+ [0x1D712] = 0x1F, -- chi
+ [0x1D713] = 0x20, -- psi
+ [0x1D714] = 0x21, -- omega
+ [0x1D700] = 0x22, -- varepsilon (the other way around)
+ [0x1D717] = 0x23, -- vartheta
+ [0x1D71B] = 0x24, -- varpi
+ [0x1D71A] = 0x25, -- varrho
+ [0x1D70D] = 0x26, -- varsigma
+ [0x1D711] = 0x27, -- varphi (the other way around)
+ [0x021BC] = 0x28, -- leftharpoonup
+ [0x021BD] = 0x29, -- leftharpoondown
+ [0x021C0] = 0x2A, -- righttharpoonup
+ [0x021C1] = 0x2B, -- rightharpoondown
+ -- 0x2C, -- lhook (hook for combining arrows)
+ -- 0x2D, -- rhook (hook for combining arrows)
+ [0x022B3] = 0x2E, -- triangleright (TODO: which one is right?)
+ [0x022B2] = 0x2F, -- triangleleft (TODO: which one is right?)
+-- [0x00041] = 0x30, -- 0
+-- [0x00041] = 0x31, -- 1
+-- [0x00041] = 0x32, -- 2
+-- [0x00041] = 0x33, -- 3
+-- [0x00041] = 0x34, -- 4
+-- [0x00041] = 0x35, -- 5
+-- [0x00041] = 0x36, -- 6
+-- [0x00041] = 0x37, -- 7
+-- [0x00041] = 0x38, -- 8
+-- [0x00041] = 0x39, -- 9
+--~ [0x0002E] = 0x3A, -- .
+ [0x0002C] = 0x3B, -- ,
+ [0x0003C] = 0x3C, -- <
+-- [0x0002F] = 0x3D, -- /, slash, solidus
+ [0x02044] = 0x3D, -- / AM: Not sure
+ [0x0003E] = 0x3E, -- >
+ [0x022C6] = 0x3F, -- star
+ [0x02202] = 0x40, -- partial
+-- [0x00041] = 0x41, -- A
+ [0x1D6E2] = 0x41, -- Alpha
+-- [0x00042] = 0x42, -- B
+ [0x1D6E3] = 0x42, -- Beta
+-- [0x00043] = 0x43, -- C
+-- [0x00044] = 0x44, -- D
+-- [0x00045] = 0x45, -- E
+ [0x1D6E6] = 0x45, -- Epsilon
+-- [0x00046] = 0x46, -- F
+-- [0x00047] = 0x47, -- G
+-- [0x00048] = 0x48, -- H
+ [0x1D6E8] = 0x48, -- Eta
+-- [0x00049] = 0x49, -- I
+ [0x1D6EA] = 0x49, -- Iota
+-- [0x0004A] = 0x4A, -- J
+-- [0x0004B] = 0x4B, -- K
+ [0x1D6EB] = 0x4B, -- Kappa
+-- [0x0004C] = 0x4C, -- L
+-- [0x0004D] = 0x4D, -- M
+ [0x1D6ED] = 0x4D, -- Mu
+-- [0x0004E] = 0x4E, -- N
+ [0x1D6EE] = 0x4E, -- Nu
+-- [0x0004F] = 0x4F, -- O
+ [0x1D6F0] = 0x4F, -- Omicron
+-- [0x00050] = 0x50, -- P
+ [0x1D6F2] = 0x50, -- Rho
+-- [0x00051] = 0x51, -- Q
+-- [0x00052] = 0x52, -- R
+-- [0x00053] = 0x53, -- S
+-- [0x00054] = 0x54, -- T
+ [0x1D6F5] = 0x54, -- Tau
+-- [0x00055] = 0x55, -- U
+-- [0x00056] = 0x56, -- V
+-- [0x00057] = 0x57, -- W
+-- [0x00058] = 0x58, -- X
+ [0x1D6F8] = 0x58, -- Chi
+-- [0x00059] = 0x59, -- Y
+-- [0x0005A] = 0x5A, -- Z
+ [0x1D6E7] = 0x5A, -- Zeta
+ [0x0266D] = 0x5B, -- flat
+ [0x0266E] = 0x5C, -- natural
+ [0x0266F] = 0x5D, -- sharp
+ [0x02323] = 0x5E, -- smile
+ [0x02322] = 0x5F, -- frown
+ [0x02113] = 0x60, -- ell
+-- [0x00061] = 0x61, -- a
+-- [0x00062] = 0x62, -- b
+-- [0x00063] = 0x63, -- c
+-- [0x00064] = 0x64, -- d
+-- [0x00065] = 0x65, -- e
+-- [0x00066] = 0x66, -- f
+-- [0x00067] = 0x67, -- g
+-- [0x00068] = 0x68, -- h
+ [0x0210E] = 0x68, -- plant constant
+-- [0x00069] = 0x69, -- i
+-- [0x0006A] = 0x6A, -- j
+-- [0x0006B] = 0x6B, -- k
+-- [0x0006C] = 0x6C, -- l
+-- [0x0006D] = 0x6D, -- m
+-- [0x0006E] = 0x6E, -- n
+-- [0x0006F] = 0x6F, -- o
+ [0x1D70A] = 0x6F, -- omicron
+-- [0x00070] = 0x70, -- p
+-- [0x00071] = 0x71, -- q
+-- [0x00072] = 0x72, -- r
+-- [0x00073] = 0x73, -- s
+-- [0x00074] = 0x74, -- t
+-- [0x00075] = 0x75, -- u
+-- [0x00076] = 0x76, -- v
+-- [0x00077] = 0x77, -- w
+-- [0x00078] = 0x78, -- x
+-- [0x00079] = 0x79, -- y
+-- [0x0007A] = 0x7A, -- z
+ [0x1D6A4] = 0x7B, -- imath (TODO: also 0131)
+ [0x1D6A5] = 0x7C, -- jmath (TODO: also 0237)
+ [0x02118] = 0x7D, -- wp
+ [0x020D7] = 0x7E, -- vec (TODO: not sure)
+-- 0x7F, -- (no idea what that could be)
+}
+
+fonts.enc.math["tex-ss"] = { }
+fonts.enc.math["tex-tt"] = { }
+fonts.enc.math["tex-bf"] = { }
+fonts.enc.math["tex-bi"] = { }
+fonts.enc.math["tex-fraktur"] = { }
+fonts.enc.math["tex-fraktur-bold"] = { }
+
+function fonts.vf.math.set_letters(font_encoding, name, uppercase, lowercase)
+ local enc = font_encoding[name]
+ for i = 0,25 do
+ enc[uppercase+i] = i + 0x41
+ enc[lowercase+i] = i + 0x61
+ end
+end
+
+function fonts.vf.math.set_digits(font_encoding, name, digits)
+ local enc = font_encoding[name]
+ for i = 0,9 do
+ enc[digits+i] = i + 0x30
+ end
+end
+
+fonts.enc.math["tex-sy"] = {
+ [0x0002D] = 0x00, -- -
+ [0x02212] = 0x00, -- -
+-- [0x02201] = 0x00, -- complement
+-- [0x02206] = 0x00, -- increment
+-- [0x02204] = 0x00, -- not exists
+--~ [0x000B7] = 0x01, -- cdot
+ [0x022C5] = 0x01, -- cdot
+ [0x000D7] = 0x02, -- times
+ [0x0002A] = 0x03, -- *
+ [0x02217] = 0x03, -- *
+ [0x000F7] = 0x04, -- div
+ [0x022C4] = 0x05, -- diamond
+ [0x000B1] = 0x06, -- pm
+ [0x02213] = 0x07, -- mp
+ [0x02295] = 0x08, -- oplus
+ [0x02296] = 0x09, -- ominus
+ [0x02297] = 0x0A, -- otimes
+ [0x02298] = 0x0B, -- oslash
+ [0x02299] = 0x0C, -- odot
+ [0x025EF] = 0x0D, -- bigcirc, Orb (either 25EF or 25CB) -- todo
+ [0x02218] = 0x0E, -- circ
+ [0x02219] = 0x0F, -- bullet
+ [0x02022] = 0x0F, -- bullet
+ [0x0224D] = 0x10, -- asymp
+ [0x02261] = 0x11, -- equiv
+ [0x02286] = 0x12, -- subseteq
+ [0x02287] = 0x13, -- supseteq
+ [0x02264] = 0x14, -- leq
+ [0x02265] = 0x15, -- geq
+ [0x02AAF] = 0x16, -- preceq
+-- [0x0227C] = 0x16, -- preceq, AM:No see 2AAF
+ [0x02AB0] = 0x17, -- succeq
+-- [0x0227D] = 0x17, -- succeq, AM:No see 2AB0
+ [0x0223C] = 0x18, -- sim
+ [0x02248] = 0x19, -- approx
+ [0x02282] = 0x1A, -- subset
+ [0x02283] = 0x1B, -- supset
+ [0x0226A] = 0x1C, -- ll
+ [0x0226B] = 0x1D, -- gg
+ [0x0227A] = 0x1E, -- prec
+ [0x0227B] = 0x1F, -- succ
+ [0x02190] = 0x20, -- leftarrow
+ [0x02192] = 0x21, -- rightarrow
+--~ [0xFE190] = 0x20, -- leftarrow
+--~ [0xFE192] = 0x21, -- rightarrow
+ [0x02191] = 0x22, -- uparrow
+ [0x02193] = 0x23, -- downarrow
+ [0x02194] = 0x24, -- leftrightarrow
+ [0x02197] = 0x25, -- nearrow
+ [0x02198] = 0x26, -- searrow
+ [0x02243] = 0x27, -- simeq
+ [0x021D0] = 0x28, -- Leftarrow
+ [0x021D2] = 0x29, -- Rightarrow
+ [0x021D1] = 0x2A, -- Uparrow
+ [0x021D3] = 0x2B, -- Downarrow
+ [0x021D4] = 0x2C, -- Leftrightarrow
+ [0x02196] = 0x2D, -- nwarrow
+ [0x02199] = 0x2E, -- swarrow
+ [0x0221D] = 0x2F, -- propto
+ [0x02032] = 0x30, -- prime
+ [0x0221E] = 0x31, -- infty
+ [0x02208] = 0x32, -- in
+ [0x0220B] = 0x33, -- ni
+ [0x025B3] = 0x34, -- triangle, bigtriangleup
+ [0x025BD] = 0x35, -- bigtriangledown
+ [0x00338] = 0x36, -- not
+-- 0x37, -- (beginning of arrow)
+ [0x02200] = 0x38, -- forall
+ [0x02203] = 0x39, -- exists
+ [0x000AC] = 0x3A, -- neg, lnot
+ [0x02205] = 0x3B, -- empty set
+ [0x0211C] = 0x3C, -- Re
+ [0x02111] = 0x3D, -- Im
+ [0x022A4] = 0x3E, -- top
+ [0x022A5] = 0x3F, -- bot, perp
+ [0x02135] = 0x40, -- aleph
+ [0x1D49C] = 0x41, -- script A
+ [0x0212C] = 0x42, -- script B
+ [0x1D49E] = 0x43, -- script C
+ [0x1D49F] = 0x44, -- script D
+ [0x02130] = 0x45, -- script E
+ [0x02131] = 0x46, -- script F
+ [0x1D4A2] = 0x47, -- script G
+ [0x0210B] = 0x48, -- script H
+ [0x02110] = 0x49, -- script I
+ [0x1D4A5] = 0x4A, -- script J
+ [0x1D4A6] = 0x4B, -- script K
+ [0x02112] = 0x4C, -- script L
+ [0x02133] = 0x4D, -- script M
+ [0x1D4A9] = 0x4E, -- script N
+ [0x1D4AA] = 0x4F, -- script O
+ [0x1D4AB] = 0x50, -- script P
+ [0x1D4AC] = 0x51, -- script Q
+ [0x0211B] = 0x52, -- script R
+ [0x1D4AE] = 0x53, -- script S
+ [0x1D4AF] = 0x54, -- script T
+ [0x1D4B0] = 0x55, -- script U
+ [0x1D4B1] = 0x56, -- script V
+ [0x1D4B2] = 0x57, -- script W
+ [0x1D4B3] = 0x58, -- script X
+ [0x1D4B4] = 0x59, -- script Y
+ [0x1D4B5] = 0x5A, -- script Z
+ [0x0222A] = 0x5B, -- cup
+ [0x02229] = 0x5C, -- cap
+ [0x0228E] = 0x5D, -- uplus
+ [0x02227] = 0x5E, -- wedge, land
+ [0x02228] = 0x5F, -- vee, lor
+ [0x022A2] = 0x60, -- vdash
+ [0x022A3] = 0x61, -- dashv
+ [0x0230A] = 0x62, -- lfloor
+ [0x0230B] = 0x63, -- rfloor
+ [0x02308] = 0x64, -- lceil
+ [0x02309] = 0x65, -- rceil
+ [0x0007B] = 0x66, -- {, lbrace
+ [0x0007D] = 0x67, -- }, rbrace
+ [0x027E8] = 0x68, -- <, langle
+ [0x027E9] = 0x69, -- >, rangle
+ [0x0007C] = 0x6A, -- |, mid, lvert, rvert
+ [0x02225] = 0x6B, -- parallel, Vert, lVert, rVert, arrowvert
+ [0x02195] = 0x6C, -- updownarrow
+ [0x021D5] = 0x6D, -- Updownarrow
+ [0x0005C] = 0x6E, -- \, backslash, setminus
+ [0x02216] = 0x6E, -- setminus
+ [0x02240] = 0x6F, -- wr
+ [0x0221A] = 0x70, -- sqrt. AM: Check surd??
+ [0x02A3F] = 0x71, -- amalg
+ [0x1D6FB] = 0x72, -- nabla
+-- [0x0222B] = 0x73, -- smallint (TODO: what about intop?)
+ [0x02294] = 0x74, -- sqcup
+ [0x02293] = 0x75, -- sqcap
+ [0x02291] = 0x76, -- sqsubseteq
+ [0x02292] = 0x77, -- sqsupseteq
+ [0x000A7] = 0x78, -- S
+ [0x02020] = 0x79, -- dagger, dag
+ [0x02021] = 0x7A, -- ddagger, ddag
+ [0x000B6] = 0x7B, -- P
+ [0x02663] = 0x7C, -- clubsuit
+ [0x02662] = 0x7D, -- diamondsuit
+ [0x02661] = 0x7E, -- heartsuit
+ [0x02660] = 0x7F, -- spadesuit
+ [0xFE321] = 0x37, -- mapstochar
+}
+
+-- The names in masm10.enc can be trusted best and are shown in the first
+-- column, while in the second column we show the tex/ams names. As usual
+-- it costs hours to figure out such a table.
+
+fonts.enc.math["tex-ma"] = {
+ [0x022A1] = 0x00, -- squaredot \boxdot
+ [0x0229E] = 0x01, -- squareplus \boxplus
+ [0x022A0] = 0x02, -- squaremultiply \boxtimes
+ [0x025A1] = 0x03, -- square \square \Box
+ [0x025A0] = 0x04, -- squaresolid \blacksquare
+ [0x000B7] = 0x05, -- squaresmallsolid \centerdot
+ [0x022C4] = 0x06, -- diamond \Diamond \lozenge
+ [0x029EB] = 0x07, -- diamondsolid \blacklozenge
+ [0x021BA] = 0x08, -- clockwise \circlearrowright
+ [0x021BB] = 0x09, -- anticlockwise \circlearrowleft
+ [0x021CC] = 0x0A, -- harpoonleftright \rightleftharpoons
+ [0x021CB] = 0x0B, -- harpoonrightleft \leftrightharpoons
+ [0x0229F] = 0x0C, -- squareminus \boxminus
+ [0x022A9] = 0x0D, -- forces \Vdash
+ [0x022AA] = 0x0E, -- forcesbar \Vvdash
+ [0x022A8] = 0x0F, -- satisfies \vDash
+ [0x021A0] = 0x10, -- dblarrowheadright \twoheadrightarrow
+ [0x0219E] = 0x11, -- dblarrowheadleft \twoheadleftarrow
+ [0x021C7] = 0x12, -- dblarrowleft \leftleftarrows
+ [0x021C9] = 0x13, -- dblarrowright \rightrightarrows
+ [0x021C8] = 0x14, -- dblarrowup \upuparrows
+ [0x021CA] = 0x15, -- dblarrowdwn \downdownarrows
+ [0x021BE] = 0x16, -- harpoonupright \upharpoonright \restriction
+ [0x021C2] = 0x17, -- harpoondownright \downharpoonright
+ [0x021BF] = 0x18, -- harpoonupleft \upharpoonleft
+ [0x021C3] = 0x19, -- harpoondownleft \downharpoonleft
+ [0x021A3] = 0x1A, -- arrowtailright \rightarrowtail
+ [0x021A2] = 0x1B, -- arrowtailleft \leftarrowtail
+ [0x021C6] = 0x1C, -- arrowparrleftright \leftrightarrows
+-- [0x021C5] = 0x00, -- \updownarrows (missing in lm)
+ [0x021C4] = 0x1D, -- arrowparrrightleft \rightleftarrows
+ [0x021B0] = 0x1E, -- shiftleft \Lsh
+ [0x021B1] = 0x1F, -- shiftright \Rsh
+ [0x021DD] = 0x20, -- squiggleright \leadsto \rightsquigarrow
+ [0x021AD] = 0x21, -- squiggleleftright \leftrightsquigarrow
+ [0x021AB] = 0x22, -- curlyleft \looparrowleft
+ [0x021AC] = 0x23, -- curlyright \looparrowright
+ [0x02257] = 0x24, -- circleequal \circeq
+ [0x0227F] = 0x25, -- followsorequal \succsim
+ [0x02273] = 0x26, -- greaterorsimilar \gtrsim
+ [0x02A86] = 0x27, -- greaterorapproxeql \gtrapprox
+ [0x022B8] = 0x28, -- multimap \multimap
+ [0x02234] = 0x29, -- therefore \therefore
+ [0x02235] = 0x2A, -- because \because
+ [0x02251] = 0x2B, -- equalsdots \Doteq \doteqdot
+ [0x0225C] = 0x2C, -- defines \triangleq
+ [0x0227E] = 0x2D, -- precedesorequal \precsim
+ [0x02272] = 0x2E, -- lessorsimilar \lesssim
+ [0x02A85] = 0x2F, -- lessorapproxeql \lessapprox
+ [0x02A95] = 0x30, -- equalorless \eqslantless
+ [0x02A96] = 0x31, -- equalorgreater \eqslantgtr
+ [0x022DE] = 0x32, -- equalorprecedes \curlyeqprec
+ [0x022DF] = 0x33, -- equalorfollows \curlyeqsucc
+ [0x0227C] = 0x34, -- precedesorcurly \preccurlyeq
+ [0x02266] = 0x35, -- lessdblequal \leqq
+ [0x02A7D] = 0x36, -- lessorequalslant \leqslant
+ [0x02276] = 0x37, -- lessorgreater \lessgtr
+ [0x02035] = 0x38, -- primereverse \backprime
+ -- [0x0] = 0x39, -- axisshort \dabar
+ [0x02253] = 0x3A, -- equaldotrightleft \risingdotseq
+ [0x02252] = 0x3B, -- equaldotleftright \fallingdotseq
+ [0x0227D] = 0x3C, -- followsorcurly \succcurlyeq
+ [0x02267] = 0x3D, -- greaterdblequal \geqq
+ [0x02A7E] = 0x3E, -- greaterorequalslant \geqslant
+ [0x02277] = 0x3F, -- greaterorless \gtrless
+ [0x0228F] = 0x40, -- squareimage \sqsubset
+ [0x02290] = 0x41, -- squareoriginal \sqsupset
+ -- wrong:
+ [0x022B3] = 0x42, -- triangleright \rhd \vartriangleright
+ [0x022B2] = 0x43, -- triangleleft \lhd \vartriangleleft
+ [0x022B5] = 0x44, -- trianglerightequal \unrhd \trianglerighteq
+ [0x022B4] = 0x45, -- triangleleftequal \unlhd \trianglelefteq
+ --
+ [0x02605] = 0x46, -- star \bigstar
+ [0x0226C] = 0x47, -- between \between
+ [0x025BC] = 0x48, -- triangledownsld \blacktriangledown
+ [0x025B6] = 0x49, -- trianglerightsld \blacktriangleright
+ [0x025C0] = 0x4A, -- triangleleftsld \blacktriangleleft
+ -- [0x0] = 0x4B, -- arrowaxisright
+ -- [0x0] = 0x4C, -- arrowaxisleft
+ [0x025B2] = 0x4D, -- triangle \triangleup \vartriangle
+ [0x025B2] = 0x4E, -- trianglesolid \blacktriangle
+ [0x025BC] = 0x4F, -- triangleinv \triangledown
+ [0x02256] = 0x50, -- ringinequal \eqcirc
+ [0x022DA] = 0x51, -- lessequalgreater \lesseqgtr
+ [0x022DB] = 0x52, -- greaterlessequal \gtreqless
+ [0x02A8B] = 0x53, -- lessdbleqlgreater \lesseqqgtr
+ [0x02A8C] = 0x54, -- greaterdbleqlless \gtreqqless
+ [0x000A5] = 0x55, -- Yen \yen
+ [0x021DB] = 0x56, -- arrowtripleright \Rrightarrow
+ [0x021DA] = 0x57, -- arrowtripleleft \Lleftarrow
+ [0x02713] = 0x58, -- check \checkmark
+ [0x022BB] = 0x59, -- orunderscore \veebar
+ [0x022BC] = 0x5A, -- nand \barwedge
+ [0x02306] = 0x5B, -- perpcorrespond \doublebarwedge
+ [0x02220] = 0x5C, -- angle \angle
+ [0x02221] = 0x5D, -- measuredangle \measuredangle
+ [0x02222] = 0x5E, -- sphericalangle \sphericalangle
+ -- [0x0] = 0x5F, -- proportional \varpropto
+ -- [0x0] = 0x60, -- smile \smallsmile
+ -- [0x0] = 0x61, -- frown \smallfrown
+ [0x022D0] = 0x62, -- subsetdbl \Subset
+ [0x022D1] = 0x63, -- supersetdbl \Supset
+ [0x022D3] = 0x64, -- uniondbl \doublecup \Cup
+ [0x00100] = 0x65, -- intersectiondbl \doublecap \Cap
+ [0x022CF] = 0x66, -- uprise \curlywedge
+ [0x022CE] = 0x67, -- downfall \curlyvee
+ [0x022CB] = 0x68, -- multiopenleft \leftthreetimes
+ [0x022CC] = 0x69, -- multiopenright \rightthreetimes
+ [0x02AC5] = 0x6A, -- subsetdblequal \subseteqq
+ [0x02AC6] = 0x6B, -- supersetdblequal \supseteqq
+ [0x0224F] = 0x6C, -- difference \bumpeq
+ [0x0224E] = 0x6D, -- geomequivalent \Bumpeq
+ [0x022D8] = 0x6E, -- muchless \lll \llless
+ [0x022D9] = 0x6F, -- muchgreater \ggg \gggtr
+ [0x0231C] = 0x70, -- rightanglenw \ulcorner
+ [0x0231D] = 0x71, -- rightanglene \urcorner
+ [0x024C7] = 0x72, -- circleR \circledR
+ [0x024C8] = 0x73, -- circleS \circledS
+ [0x022D4] = 0x74, -- fork \pitchfork
+ [0x02245] = 0x75, -- dotplus \dotplus
+ [0x0223D] = 0x76, -- revsimilar \backsim
+ [0x022CD] = 0x77, -- revasymptequal \backsimeq -- AM: Check this! I mapped it to simeq.
+ [0x0231E] = 0x78, -- rightanglesw \llcorner
+ [0x0231F] = 0x79, -- rightanglese \lrcorner
+ [0x02720] = 0x7A, -- maltesecross \maltese
+ [0x02201] = 0x7B, -- complement \complement
+ [0x022BA] = 0x7C, -- intercal \intercal
+ [0x0229A] = 0x7D, -- circlering \circledcirc
+ [0x0229B] = 0x7E, -- circleasterisk \circledast
+ [0x0229D] = 0x7F, -- circleminus \circleddash
+}
+
+fonts.enc.math["tex-mb"] = {
+ -- [0x0] = 0x00, -- lessornotequal \lvertneqq
+ -- [0x0] = 0x01, -- greaterornotequal \gvertneqq
+ [0x02270] = 0x02, -- notlessequal \nleq
+ [0x02271] = 0x03, -- notgreaterequal \ngeq
+ [0x0226E] = 0x04, -- notless \nless
+ [0x0226F] = 0x05, -- notgreater \ngtr
+ [0x02280] = 0x06, -- notprecedes \nprec
+ [0x02281] = 0x07, -- notfollows \nsucc
+ [0x02268] = 0x08, -- lessornotdbleql \lneqq
+ [0x02269] = 0x09, -- greaterornotdbleql \gneqq
+ -- [0x0] = 0x0A, -- notlessorslnteql \nleqslant
+ -- [0x0] = 0x0B, -- notgreaterorslnteql \ngeqslant
+ [0x02A87] = 0x0C, -- lessnotequal \lneq
+ [0x02A88] = 0x0D, -- greaternotequal \gneq
+ -- [0x0] = 0x0E, -- notprecedesoreql \npreceq
+ -- [0x0] = 0x0F, -- notfollowsoreql \nsucceq
+ [0x022E8] = 0x10, -- precedeornoteqvlnt \precnsim
+ [0x022E9] = 0x11, -- followornoteqvlnt \succnsim
+ [0x022E6] = 0x12, -- lessornotsimilar \lnsim
+ [0x022E7] = 0x13, -- greaterornotsimilar \gnsim
+ -- [0x0] = 0x14, -- notlessdblequal \nleqq
+ -- [0x0] = 0x15, -- notgreaterdblequal \ngeqq
+ [0x02AB5] = 0x16, -- precedenotslnteql \precneqq
+ [0x02AB6] = 0x17, -- follownotslnteql \succneqq
+ [0x02AB9] = 0x18, -- precedenotdbleqv \precnapprox
+ [0x02ABA] = 0x19, -- follownotdbleqv \succnapprox
+ [0x02A89] = 0x1A, -- lessnotdblequal \lnapprox
+ [0x02A8A] = 0x1B, -- greaternotdblequal \gnapprox
+ [0x02241] = 0x1C, -- notsimilar \nsim
+ [0x02247] = 0x1D, -- notapproxequal \ncong
+ -- [0x0] = 0x1E, -- upslope \diagup
+ -- [0x0] = 0x1F, -- downslope \diagdown
+ -- [0x0] = 0x20, -- notsubsetoreql \varsubsetneq
+ -- [0x0] = 0x21, -- notsupersetoreql \varsupsetneq
+ -- [0x0] = 0x22, -- notsubsetordbleql \nsubseteqq
+ -- [0x0] = 0x23, -- notsupersetordbleql \nsupseteqq
+ [0x02ACB] = 0x24, -- subsetornotdbleql \subsetneqq
+ [0x02ACC] = 0x25, -- supersetornotdbleql \supsetneqq
+ -- [0x0] = 0x26, -- subsetornoteql \varsubsetneqq
+ -- [0x0] = 0x27, -- supersetornoteql \varsupsetneqq
+ [0x0228A] = 0x28, -- subsetnoteql \subsetneq
+ [0x0228B] = 0x29, -- supersetnoteql \supsetneq
+ [0x02288] = 0x2A, -- notsubseteql \nsubseteq
+ [0x02289] = 0x2B, -- notsuperseteql \nsupseteq
+ [0x02226] = 0x2C, -- notparallel \nparallel
+ [0x02224] = 0x2D, -- notbar \nmid \ndivides
+ -- [0x0] = 0x2E, -- notshortbar \nshortmid
+ -- [0x0] = 0x2F, -- notshortparallel \nshortparallel
+ [0x022AC] = 0x30, -- notturnstile \nvdash
+ [0x022AE] = 0x31, -- notforces \nVdash
+ [0x022AD] = 0x32, -- notsatisfies \nvDash
+ [0x022AF] = 0x33, -- notforcesextra \nVDash
+ [0x022ED] = 0x34, -- nottriangeqlright \ntrianglerighteq
+ [0x022EC] = 0x35, -- nottriangeqlleft \ntrianglelefteq
+ [0x022EA] = 0x36, -- nottriangleleft \ntriangleleft
+ [0x022EB] = 0x37, -- nottriangleright \ntriangleright
+ [0x0219A] = 0x38, -- notarrowleft \nleftarrow
+ [0x0219B] = 0x39, -- notarrowright \nrightarrow
+ [0x021CD] = 0x3A, -- notdblarrowleft \nLeftarrow
+ [0x021CF] = 0x3B, -- notdblarrowright \nRightarrow
+ [0x021CE] = 0x3C, -- notdblarrowboth \nLeftrightarrow
+ [0x021AE] = 0x3D, -- notarrowboth \nleftrightarrow
+ [0x022C7] = 0x3E, -- dividemultiply \divideontimes
+ [0x02300] = 0x3F, -- diametersign \varnothing
+ [0x02204] = 0x40, -- notexistential \nexists
+ [0x1D538] = 0x41, -- A (blackboard A)
+ [0x1D539] = 0x42, -- B
+ [0x02102] = 0x43, -- C
+ [0x1D53B] = 0x44, -- D
+ [0x1D53C] = 0x45, -- E
+ [0x1D53D] = 0x46, -- F
+ [0x1D53E] = 0x47, -- G
+ [0x0210D] = 0x48, -- H
+ [0x1D540] = 0x49, -- I
+ [0x1D541] = 0x4A, -- J
+ [0x1D542] = 0x4B, -- K
+ [0x1D543] = 0x4C, -- L
+ [0x1D544] = 0x4D, -- M
+ [0x02115] = 0x4E, -- N
+ [0x1D546] = 0x4F, -- O
+ [0x02119] = 0x50, -- P
+ [0x0211A] = 0x51, -- Q
+ [0x0211D] = 0x52, -- R
+ [0x1D54A] = 0x53, -- S
+ [0x1D54B] = 0x54, -- T
+ [0x1D54C] = 0x55, -- U
+ [0x1D54D] = 0x56, -- V
+ [0x1D54E] = 0x57, -- W
+ [0x1D54F] = 0x58, -- X
+ [0x1D550] = 0x59, -- Y
+ [0x02124] = 0x5A, -- Z (blackboard Z)
+ [0x02132] = 0x60, -- hatwide \Finv
+ [0x02141] = 0x61, -- hatwider \Game
+ -- [0x0] = 0x62, tildewide
+ -- [0x0] = 0x63, tildewider
+ -- [0x0] = 0x64, Finv
+ -- [0x0] = 0x65, Gmir
+ [0x02127] = 0x66, -- Omegainv \mho
+ [0x000F0] = 0x67, -- eth \eth
+ [0x02242] = 0x68, -- equalorsimilar \eqsim
+ [0x02136] = 0x69, -- beth \beth
+ [0x02137] = 0x6A, -- gimel \gimel
+ [0x02138] = 0x6B, -- daleth \daleth
+ [0x022D6] = 0x6C, -- lessdot \lessdot
+ [0x022D7] = 0x6D, -- greaterdot \gtrdot
+ [0x022C9] = 0x6E, -- multicloseleft \ltimes
+ [0x022CA] = 0x6F, -- multicloseright \rtimes
+ -- [0x0] = 0x70, -- barshort \shortmid
+ -- [0x0] = 0x71, -- parallelshort \shortparallel
+ -- [0x02216] = 0x72, -- integerdivide \smallsetminus (2216 already part of tex-sy
+ -- [0x0] = 0x73, -- similar \thicksim
+ -- [0x0] = 0x74, -- approxequal \thickapprox
+ [0x0224A] = 0x75, -- approxorequal \approxeq
+ [0x02AB8] = 0x76, -- followsorequal \succapprox
+ [0x02AB7] = 0x77, -- precedesorequal \precapprox
+ [0x021B6] = 0x78, -- archleftdown \curvearrowleft
+ [0x021B7] = 0x79, -- archrightdown \curvearrowright
+ [0x003DC] = 0x7A, -- Digamma \digamma
+ [0x003F0] = 0x7B, -- kappa \varkappa
+ [0x1D55C] = 0x7C, -- k \Bbbk (blackboard k)
+ [0x0210F] = 0x7D, -- planckover2pi \hslash
+ [0x00127] = 0x7E, -- planckover2pi1 \hbar
+ [0x003F6] = 0x7F, -- epsiloninv \backepsilon
+}
+
+fonts.enc.math["tex-fraktur"] = {
+-- [0x1D504] = 0x41, -- A (fraktur A)
+-- [0x1D505] = 0x42, -- B
+ [0x0212D] = 0x43, -- C
+-- [0x1D507] = 0x44, -- D
+-- [0x1D508] = 0x45, -- E
+-- [0x1D509] = 0x46, -- F
+-- [0x1D50A] = 0x47, -- G
+ [0x0210C] = 0x48, -- H
+ [0x02111] = 0x49, -- I
+-- [0x1D50D] = 0x4A, -- J
+-- [0x1D50E] = 0x4B, -- K
+-- [0x1D50F] = 0x4C, -- L
+-- [0x1D510] = 0x4D, -- M
+-- [0x1D511] = 0x4E, -- N
+-- [0x1D512] = 0x4F, -- O
+-- [0x1D513] = 0x50, -- P
+-- [0x1D514] = 0x51, -- Q
+ [0x0211C] = 0x52, -- R
+-- [0x1D516] = 0x53, -- S
+-- [0x1D517] = 0x54, -- T
+-- [0x1D518] = 0x55, -- U
+-- [0x1D519] = 0x56, -- V
+-- [0x1D51A] = 0x57, -- W
+-- [0x1D51B] = 0x58, -- X
+-- [0x1D51C] = 0x59, -- Y
+ [0x02128] = 0x5A, -- Z (fraktur Z)
+-- [0x1D51E] = 0x61, -- a (fraktur a)
+-- [0x1D51F] = 0x62, -- b
+-- [0x1D520] = 0x63, -- c
+-- [0x1D521] = 0x64, -- d
+-- [0x1D522] = 0x65, -- e
+-- [0x1D523] = 0x66, -- f
+-- [0x1D524] = 0x67, -- g
+-- [0x1D525] = 0x68, -- h
+-- [0x1D526] = 0x69, -- i
+-- [0x1D527] = 0x6A, -- j
+-- [0x1D528] = 0x6B, -- k
+-- [0x1D529] = 0x6C, -- l
+-- [0x1D52A] = 0x6D, -- m
+-- [0x1D52B] = 0x6E, -- n
+-- [0x1D52C] = 0x6F, -- o
+-- [0x1D52D] = 0x70, -- p
+-- [0x1D52E] = 0x71, -- q
+-- [0x1D52F] = 0x72, -- r
+-- [0x1D530] = 0x73, -- s
+-- [0x1D531] = 0x74, -- t
+-- [0x1D532] = 0x75, -- u
+-- [0x1D533] = 0x76, -- v
+-- [0x1D534] = 0x77, -- w
+-- [0x1D535] = 0x78, -- x
+-- [0x1D536] = 0x79, -- y
+-- [0x1D537] = 0x7A, -- z
+}
+
+-- now that all other vectors are defined ...
+
+fonts.vf.math.set_letters(fonts.enc.math, "tex-mi", 0x1D434, 0x1D44E)
+fonts.vf.math.set_letters(fonts.enc.math, "tex-ss", 0x1D5A0, 0x1D5BA)
+fonts.vf.math.set_letters(fonts.enc.math, "tex-tt", 0x1D670, 0x1D68A)
+fonts.vf.math.set_letters(fonts.enc.math, "tex-bf", 0x1D400, 0x1D41A)
+fonts.vf.math.set_letters(fonts.enc.math, "tex-bi", 0x1D468, 0x1D482)
+fonts.vf.math.set_letters(fonts.enc.math, "tex-fraktur", 0x1D504, 0x1D51E)
+fonts.vf.math.set_letters(fonts.enc.math, "tex-fraktur-bold", 0x1D56C, 0x1D586)
+
+fonts.vf.math.set_digits (fonts.enc.math, "tex-ss", 0x1D7E2)
+fonts.vf.math.set_digits (fonts.enc.math, "tex-tt", 0x1D7F6)
+fonts.vf.math.set_digits (fonts.enc.math, "tex-bf", 0x1D7CE)
+
+-- fonts.vf.math.set_digits (fonts.enc.math, "tex-bi", 0x1D7CE)
+
+-- todo: add ss, tt, bf etc vectors
+-- we can make ss tt etc an option
+
+-- rm-lmr5 : LMMathRoman5-Regular
+-- rm-lmbx5 : LMMathRoman5-Bold ]
+-- lmbsy5 : LMMathSymbols5-BoldItalic
+-- lmsy5 : LMMathSymbols5-Italic
+-- lmmi5 : LMMathItalic5-Italic
+-- lmmib5 : LMMathItalic5-BoldItalic
+
+mathematics.make_font ( "lmroman5-math", {
+ { name = "lmroman5-regular.otf", features = "virtualmath", main = true },
+ -- { name = "rm-lmr5.tfm", vector = "tex-mr" } ,
+ { name = "lmmi5.tfm", vector = "tex-mi", skewchar=0x7F },
+ { name = "lmsy5.tfm", vector = "tex-sy", skewchar=0x30, parameters = true } ,
+ { name = "lmex10.tfm", vector = "tex-ex", extension = true } ,
+ { name = "msam5.tfm", vector = "tex-ma" },
+ { name = "msbm5.tfm", vector = "tex-mb" },
+ -- { name = "rm-lmbx5.tfm", vector = "tex-bf" } ,
+ { name = "lmroman5-bold", vector = "tex-bf" } ,
+ { name = "lmmib5.tfm", vector = "tex-bi", skewchar=0x7F } ,
+ { name = "lmsans8-regular.otf", vector = "tex-ss", optional=true },
+ { name = "lmmono8-regular.otf", vector = "tex-tt", optional=true },
+ { name = "eufm5.tfm", vector = "tex-fraktur", optional=true },
+} )
+
+-- rm-lmr6 : LMMathRoman6-Regular
+-- rm-lmbx6 : LMMathRoman6-Bold
+-- lmsy6 : LMMathSymbols6-Italic
+-- lmmi6 : LMMathItalic6-Italic
+
+mathematics.make_font ( "lmroman6-math", {
+ { name = "lmroman6-regular.otf", features = "virtualmath", main = true },
+ -- { name = "rm-lmr6.tfm", vector = "tex-mr" } ,
+ { name = "lmmi6.tfm", vector = "tex-mi", skewchar=0x7F },
+ { name = "lmsy6.tfm", vector = "tex-sy", skewchar=0x30, parameters = true } ,
+ { name = "lmex10.tfm", vector = "tex-ex", extension = true } ,
+ { name = "msam5.tfm", vector = "tex-ma" },
+ { name = "msbm5.tfm", vector = "tex-mb" },
+ -- { name = "rm-lmbx6.tfm", vector = "tex-bf" } ,
+ { name = "lmroman6-bold.otf", vector = "tex-bf" } ,
+ { name = "lmmib5.tfm", vector = "tex-bi", skewchar=0x7F } ,
+ { name = "lmsans8-regular.otf", vector = "tex-ss", optional=true },
+ { name = "lmmono8-regular.otf", vector = "tex-tt", optional=true },
+ { name = "eufm5.tfm", vector = "tex-fraktur", optional=true },
+ { name = "eufb5.tfm", vector = "tex-fraktur-bold", optional=true },
+} )
+
+-- rm-lmr7 : LMMathRoman7-Regular
+-- rm-lmbx7 : LMMathRoman7-Bold
+-- lmbsy7 : LMMathSymbols7-BoldItalic
+-- lmsy7 : LMMathSymbols7-Italic
+-- lmmi7 : LMMathItalic7-Italic
+-- lmmib7 : LMMathItalic7-BoldItalic
+
+mathematics.make_font ( "lmroman7-math", {
+ { name = "lmroman7-regular.otf", features = "virtualmath", main = true },
+ -- { name = "rm-lmr7.tfm", vector = "tex-mr" } ,
+ { name = "lmmi7.tfm", vector = "tex-mi", skewchar=0x7F },
+ { name = "lmsy7.tfm", vector = "tex-sy", skewchar=0x30, parameters = true } ,
+ { name = "lmex10.tfm", vector = "tex-ex", extension = true } ,
+ { name = "msam7.tfm", vector = "tex-ma" },
+ { name = "msbm7.tfm", vector = "tex-mb" },
+ -- { name = "rm-lmbx7.tfm", vector = "tex-bf" } ,
+ { name = "lmroman7-bold.otf", vector = "tex-bf" } ,
+ { name = "lmmib7.tfm", vector = "tex-bi", skewchar=0x7F } ,
+ { name = "lmsans8-regular.otf", vector = "tex-ss", optional=true },
+ { name = "lmmono8-regular.otf", vector = "tex-tt", optional=true },
+ { name = "eufm7.tfm", vector = "tex-fraktur", optional=true },
+ { name = "eufb7.tfm", vector = "tex-fraktur-bold", optional=true },
+} )
+
+-- rm-lmr8 : LMMathRoman8-Regular
+-- rm-lmbx8 : LMMathRoman8-Bold
+-- lmsy8 : LMMathSymbols8-Italic
+-- lmmi8 : LMMathItalic8-Italic
+
+mathematics.make_font ( "lmroman8-math", {
+ { name = "lmroman8-regular.otf", features = "virtualmath", main = true },
+ -- { name = "rm-lmr8.tfm", vector = "tex-mr" } ,
+ { name = "lmmi8.tfm", vector = "tex-mi", skewchar=0x7F },
+ { name = "lmsy8.tfm", vector = "tex-sy", skewchar=0x30, parameters = true } ,
+ { name = "lmex10.tfm", vector = "tex-ex", extension = true } ,
+ { name = "msam7.tfm", vector = "tex-ma" },
+ { name = "msbm7.tfm", vector = "tex-mb" },
+ -- { name = "rm-lmbx8.tfm", vector = "tex-bf" } ,
+ { name = "lmroman8-bold.otf", vector = "tex-bf" } ,
+ { name = "lmmib7.tfm", vector = "tex-bi", skewchar=0x7F } ,
+ { name = "lmsans8-regular.otf", vector = "tex-ss", optional=true },
+ { name = "lmmono8-regular.otf", vector = "tex-tt", optional=true },
+ { name = "eufm7.tfm", vector = "tex-fraktur", optional=true },
+ { name = "eufb7.tfm", vector = "tex-fraktur-bold", optional=true },
+} )
+
+-- rm-lmr9 : LMMathRoman9-Regular
+-- rm-lmbx9 : LMMathRoman9-Bold
+-- lmsy9 : LMMathSymbols9-Italic
+-- lmmi9 : LMMathItalic9-Italic
+
+mathematics.make_font ( "lmroman9-math", {
+ { name = "lmroman9-regular.otf", features = "virtualmath", main = true },
+ -- { name = "rm-lmr9.tfm", vector = "tex-mr" } ,
+ { name = "lmmi9.tfm", vector = "tex-mi", skewchar=0x7F },
+ { name = "lmsy9.tfm", vector = "tex-sy", skewchar=0x30, parameters = true } ,
+ { name = "lmex10.tfm", vector = "tex-ex", extension = true } ,
+ { name = "msam10.tfm", vector = "tex-ma" },
+ { name = "msbm10.tfm", vector = "tex-mb" },
+ -- { name = "rm-lmbx9.tfm", vector = "tex-bf" } ,
+ { name = "lmroman9-bold.otf", vector = "tex-bf" } ,
+ { name = "lmmib10.tfm", vector = "tex-bi", skewchar=0x7F } ,
+ { name = "lmsans9-regular.otf", vector = "tex-ss", optional=true },
+ { name = "lmmono9-regular.otf", vector = "tex-tt", optional=true },
+ { name = "eufm10.tfm", vector = "tex-fraktur", optional=true },
+ { name = "eufb10.tfm", vector = "tex-fraktur-bold", optional=true },
+} )
+
+-- rm-lmr10 : LMMathRoman10-Regular
+-- rm-lmbx10 : LMMathRoman10-Bold
+-- lmbsy10 : LMMathSymbols10-BoldItalic
+-- lmsy10 : LMMathSymbols10-Italic
+-- lmex10 : LMMathExtension10-Regular
+-- lmmi10 : LMMathItalic10-Italic
+-- lmmib10 : LMMathItalic10-BoldItalic
+
+mathematics.make_font ( "lmroman10-math", {
+ { name = "lmroman10-regular.otf", features = "virtualmath", main = true },
+ -- { name = "rm-lmr10.tfm", vector = "tex-mr" } ,
+ { name = "lmmi10.tfm", vector = "tex-mi", skewchar=0x7F },
+ { name = "lmsy10.tfm", vector = "tex-sy", skewchar=0x30, parameters = true } ,
+ { name = "lmex10.tfm", vector = "tex-ex", extension = true } ,
+ { name = "msam10.tfm", vector = "tex-ma" },
+ { name = "msbm10.tfm", vector = "tex-mb" },
+ -- { name = "rm-lmbx10.tfm", vector = "tex-bf" } ,
+ { name = "lmroman10-bold.otf", vector = "tex-bf" } ,
+ { name = "lmmib10.tfm", vector = "tex-bi", skewchar=0x7F } ,
+ { name = "lmsans10-regular.otf", vector = "tex-ss", optional=true },
+ { name = "lmmono10-regular.otf", vector = "tex-tt", optional=true },
+ { name = "eufm10.tfm", vector = "tex-fraktur", optional=true },
+ { name = "eufb10.tfm", vector = "tex-fraktur-bold", optional=true },
+} )
+
+mathematics.make_font ( "lmroman10-boldmath", {
+ { name = "lmroman10-bold.otf", features = "virtualmath", main = true },
+ -- { name = "rm-lmr10.tfm", vector = "tex-mr" } ,
+ { name = "lmmib10.tfm", vector = "tex-mi", skewchar=0x7F },
+ { name = "lmbsy10.tfm", vector = "tex-sy", skewchar=0x30, parameters = true } ,
+ { name = "lmex10.tfm", vector = "tex-ex", extension = true } ,
+-- copied from roman:
+ { name = "msam10.tfm", vector = "tex-ma" },
+ { name = "msbm10.tfm", vector = "tex-mb" },
+ -- { name = "rm-lmbx10.tfm", vector = "tex-bf" } ,
+ { name = "lmroman10-bold.otf", vector = "tex-bf" } ,
+ { name = "lmmib10.tfm", vector = "tex-bi", skewchar=0x7F } ,
+ { name = "lmsans10-regular.otf", vector = "tex-ss", optional=true },
+ { name = "lmmono10-regular.otf", vector = "tex-tt", optional=true },
+ { name = "eufm10.tfm", vector = "tex-fraktur", optional=true },
+ { name = "eufb10.tfm", vector = "tex-fraktur-bold", optional=true },
+} )
+
+-- rm-lmr12 : LMMathRoman12-Regular
+-- rm-lmbx12 : LMMathRoman12-Bold
+-- lmmi12 : LMMathItalic12-Italic
+
+mathematics.make_font ( "lmroman12-math", {
+ { name = "lmroman12-regular.otf", features = "virtualmath", main = true },
+ -- { name = "rm-lmr12.tfm", vector = "tex-mr" } ,
+ { name = "lmmi12.tfm", vector = "tex-mi", skewchar=0x7F },
+ { name = "lmsy10.tfm", vector = "tex-sy", skewchar=0x30, parameters = true } ,
+ { name = "lmex10.tfm", vector = "tex-ex", extension = true } ,
+ { name = "msam10.tfm", vector = "tex-ma" },
+ { name = "msbm10.tfm", vector = "tex-mb" },
+ -- { name = "rm-lmbx12.tfm", vector = "tex-bf" } ,
+ { name = "lmroman12-bold.otf", vector = "tex-bf" } ,
+ { name = "lmmib10.tfm", vector = "tex-bi", skewchar=0x7F } ,
+ { name = "lmsans12-regular.otf", vector = "tex-ss", optional=true },
+ { name = "lmmono12-regular.otf", vector = "tex-tt", optional=true },
+ { name = "eufm10.tfm", vector = "tex-fraktur", optional=true },
+ { name = "eufb10.tfm", vector = "tex-fraktur-bold", optional=true },
+} )
+
+-- rm-lmr17 : LMMathRoman17-Regular
+
+mathematics.make_font ( "lmroman17-math", {
+ { name = "lmroman17-regular.otf", features = "virtualmath", main = true },
+ -- { name = "rm-lmr12.tfm", vector = "tex-mr" } ,
+ { name = "lmmi12.tfm", vector = "tex-mi", skewchar=0x7F },
+ { name = "lmsy10.tfm", vector = "tex-sy", skewchar=0x30, parameters = true } ,
+ { name = "lmex10.tfm", vector = "tex-ex", extension = true } ,
+ { name = "msam10.tfm", vector = "tex-ma" },
+ { name = "msbm10.tfm", vector = "tex-mb" },
+ -- { name = "rm-lmbx12.tfm", vector = "tex-bf" } ,
+ { name = "lmroman12-bold.otf", vector = "tex-bf" } ,
+ { name = "lmmib10.tfm", vector = "tex-bi", skewchar=0x7F } ,
+ { name = "lmsans17-regular.otf", vector = "tex-ss", optional=true },
+ { name = "lmmono17-regular.otf", vector = "tex-tt", optional=true },
+ { name = "eufm10.tfm", vector = "tex-fraktur", optional=true },
+ { name = "eufb10.tfm", vector = "tex-fraktur-bold", optional=true },
+} )
+
+-- pxr/txr messes up the accents
+
+mathematics.make_font ( "px-math", {
+ { name = "texgyrepagella-regular.otf", features = "virtualmath", main = true },
+ { name = "rpxr.tfm", vector = "tex-mr" } ,
+ { name = "rpxmi.tfm", vector = "tex-mi", skewchar=0x7F },
+ { name = "pxsy.tfm", vector = "tex-sy", skewchar=0x30, parameters = true } ,
+ { name = "pxex.tfm", vector = "tex-ex", extension = true } ,
+ { name = "pxsya.tfm", vector = "tex-ma" },
+ { name = "pxsyb.tfm", vector = "tex-mb" },
+} )
+
+mathematics.make_font ( "tx-math", {
+ { name = "texgyretermes-regular.otf", features = "virtualmath", main = true },
+ { name = "rtxr.tfm", vector = "tex-mr" } ,
+ { name = "rtxmi.tfm", vector = "tex-mi", skewchar=0x7F },
+ { name = "txsy.tfm", vector = "tex-sy", skewchar=0x30, parameters = true } ,
+ { name = "txex.tfm", vector = "tex-ex", extension = true } ,
+ { name = "txsya.tfm", vector = "tex-ma" },
+ { name = "txsyb.tfm", vector = "tex-mb" },
+} )
+
+mathematics.make_font ( "iwona-math", {
+ { name = "file:Iwona-Regular", features = "virtualmath", main = true },
+ { name = "mi-iwonari.tfm", vector = "tex-mi", skewchar=0x7F },
+ { name = "sy-iwonarz.tfm", vector = "tex-sy", skewchar=0x30, parameters = true } ,
+ { name = "ex-iwonar.tfm", vector = "tex-ex", extension = true } ,
+ { name = "msam10.tfm", vector = "tex-ma" },
+ { name = "msbm10.tfm", vector = "tex-mb" },
+} )
+
+mathematics.make_font ( "iwona-light-math", {
+ { name = "file:IwonaLight-Regular", features = "virtualmath", main = true },
+ { name = "mi-iwonali.tfm", vector = "tex-mi", skewchar=0x7F },
+ { name = "sy-iwonalz.tfm", vector = "tex-sy", skewchar=0x30, parameters = true } ,
+ { name = "ex-iwonal.tfm", vector = "tex-ex", extension = true } ,
+ { name = "msam10.tfm", vector = "tex-ma" },
+ { name = "msbm10.tfm", vector = "tex-mb" },
+} )
+
+mathematics.make_font ( "iwona-medium-math", {
+ { name = "file:IwonaMedium-Regular", features = "virtualmath", main = true },
+ { name = "mi-iwonami.tfm", vector = "tex-mi", skewchar=0x7F },
+ { name = "sy-iwonamz.tfm", vector = "tex-sy", skewchar=0x30, parameters = true } ,
+ { name = "ex-iwonam.tfm", vector = "tex-ex", extension = true } ,
+ { name = "msam10.tfm", vector = "tex-ma" },
+ { name = "msbm10.tfm", vector = "tex-mb" },
+} )
+
+mathematics.make_font ( "iwona-heavy-math", {
+ { name = "file:IwonaHeavy-Regular", features = "virtualmath", main = true },
+ { name = "mi-iwonahi.tfm", vector = "tex-mi", skewchar=0x7F },
+ { name = "sy-iwonahz.tfm", vector = "tex-sy", skewchar=0x30, parameters = true } ,
+ { name = "ex-iwonah.tfm", vector = "tex-ex", extension = true } ,
+ { name = "msam10.tfm", vector = "tex-ma" },
+ { name = "msbm10.tfm", vector = "tex-mb" },
+} )
+
+-- not ok, we need adapted vectors !
+
+mathematics.make_font ( "mathtimes-math", {
+ { name = "file:texgyretermes-regular.otf", features = "virtualmath", main = true },
+ { name = "mtmiz.tfm", vector = "tex-mi", skewchar=0x7F },
+ { name = "mtsyn.tfm", vector = "tex-sy", skewchar=0x30, parameters = true },
+ { name = "mtex.tfm", vector = "tex-ex", extension = true },
+ { name = "msam10.tfm", vector = "tex-ma" },
+ { name = "msbm10.tfm", vector = "tex-mb" },
+} )
+
+mathematics.make_font ( "lucida-math", {
+ { name = "lbr.afm", features = "virtualmath", main = true },
+ { name = "hlcrim.tfm", vector = "tex-mi", skewchar=0x7F },
+ { name = "hlcry.tfm", vector = "tex-sy", skewchar=0x30, parameters = true },
+ { name = "hlcrv.tfm", vector = "tex-ex", extension = true },
+ { name = "hlcra.tfm", vector = "tex-ma" },
+ { name = "hlcrm.tfm", vector = "tex-mb" },
+} )
+
+mathematics.make_font ( "charter-math", {
+ { name = "file:bchr8a", features = "virtualmath", main = true },
+-- { name = "md-chr7m.tfm", vector = "tex-mr" },
+ { name = "md-chri7m.tfm", vector = "tex-mi", skewchar=0x7F },
+ { name = "md-chr7y.tfm", vector = "tex-sy", skewchar=0x30, parameters = true },
+ { name = "md-chr7v.tfm", vector = "tex-ex", extension = true },
+ { name = "msam10.tfm", vector = "tex-ma" },
+ { name = "msbm10.tfm", vector = "tex-mb" },
+} )
+
+mathematics.make_font ( "garamond-math", {
+ { name = "file:ugmr8y", features = "virtualmath", main = true },
+-- { name = "md-gmr7m.tfm", vector = "tex-mr" },
+ { name = "md-gmri7m.tfm", vector = "tex-mi", skewchar=0x7F },
+ { name = "md-gmr7y.tfm", vector = "tex-sy", skewchar=0x30, parameters = true },
+ { name = "md-gmr7v.tfm", vector = "tex-ex", extension = true },
+ { name = "msam10.tfm", vector = "tex-ma" },
+ { name = "msbm10.tfm", vector = "tex-mb" },
+} )
+
+mathematics.make_font ( "utopia-math", {
+ { name = "file:putr8y", features = "virtualmath", main = true },
+-- { name = "md-utr7m.tfm", vector = "tex-mr" },
+ { name = "md-utri7m.tfm", vector = "tex-mi", skewchar=0x7F },
+ { name = "md-utr7y.tfm", vector = "tex-sy", skewchar=0x30, parameters = true },
+ { name = "md-utr7v.tfm", vector = "tex-ex", extension = true },
+ { name = "msam10.tfm", vector = "tex-ma" },
+ { name = "msbm10.tfm", vector = "tex-mb" },
+} )
diff --git a/Master/texmf-dist/tex/context/base/meta-fig.mkiv b/Master/texmf-dist/tex/context/base/meta-fig.mkiv
index c2c2e127f11..b3abc9d9edc 100644
--- a/Master/texmf-dist/tex/context/base/meta-fig.mkiv
+++ b/Master/texmf-dist/tex/context/base/meta-fig.mkiv
@@ -75,8 +75,8 @@
\getfiguredimensionsonly[#1]% [\c!object=\v!no] already set
\startMPcode
externalfigure "#1"
- xscaled \figurewidth\space
- yscaled \figureheight\space
+ xscaled \the\dimexpr\figurewidth \relax\space % must be points
+ yscaled \the\dimexpr\figureheight\relax\space % must be points
#2 ;
\stopMPcode
\egroup}
diff --git a/Master/texmf-dist/tex/context/base/meta-fig.tex b/Master/texmf-dist/tex/context/base/meta-fig.tex
deleted file mode 100644
index 3edd73b5749..00000000000
--- a/Master/texmf-dist/tex/context/base/meta-fig.tex
+++ /dev/null
@@ -1,89 +0,0 @@
-%D \module
-%D [ file=meta-fig,
-%D version=2000.09.07,
-%D title=\METAPOST\ Graphics,
-%D subtitle=Stand Alone Graphics,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{MetaPost Graphics / Stand Alone Graphics}
-
-\unprotect
-
-%D This module implements a method for defining
-%D stand||alone||graphics, that is, each graphic gets is own
-%D page. Because graphics are wrapped in a \type {\framed},
-%D you can add overlays to the graphic directly, and since the
-%D whole \CONTEXT\ machinery is available, you can also add
-%D page backgrounds.
-%D
-%D \starttyping
-%D \setupMPpage
-%D [offset=1pt,
-%D background=color,
-%D backgroundcolor=green]
-%D
-%D \startMPpage
-%D fill fullcircle scaled 10cm withcolor red ;
-%D \stopMPpage
-%D
-%D \startMPpage
-%D fill fullsquare rotated 45 scaled 8cm withcolor blue ;
-%D \stopMPpage
-%D \stoptyping
-%D
-%D Although this is hardly of any use, you can mix these
-%D definitions with the text flow, since all settings are
-%D kept local. The page is clipped to the image size.
-
-\presetlocalframed[\??mg]
-
-\def\setupMPpage
- {\dodoubleargument\getparameters[\??mg]}
-
-\def\startMPpage
- {\dodoubleempty\dostartMPpage}
-
-\long\def\dostartMPpage[#1][#2]% second arg gobbles space
- {\dostartfittingpage[\??mg][#1]%
- \obeyMPlines
- \dodostartMPpage}
-
-\long\def\dodostartMPpage#1\stopMPpage
- {\startuseMPgraphic{@@}#1\stopuseMPgraphic
- \useMPgraphic{@@}%
- \dostopfittingpage}
-
-\let\stopMPpage \relax % so that we can use it in \expanded
-
-\setupMPpage
- [\c!scale=1000,
- \c!strut=\v!no,
- \c!align=,
- \c!offset=\v!overlay,
- \c!width=\v!fit,
- \c!height=\v!fit,
- \c!frame=\v!off]
-
-%D \macros
-%D {MPfigure}
-%D
-%D A bit out of place, here but nevertheless:
-
-\def\MPfigure#1#2% test for dup figure
- {\bgroup
- \getfiguredimensionsonly[#1]% [\c!object=\v!no] already set
- \startMPcode
- externalfigure "#1"
- xscaled \figurewidth\space
- yscaled \figureheight\space
- #2 ;
- \stopMPcode
- \egroup}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/meta-fun.lua b/Master/texmf-dist/tex/context/base/meta-fun.lua
new file mode 100644
index 00000000000..84d4afb195a
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/meta-fun.lua
@@ -0,0 +1,55 @@
+if not modules then modules = { } end modules ['meta-fun'] = {
+ version = 1.001,
+ comment = "companion to meta-fun.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files",
+}
+
+-- very experimental, actually a joke ... see metafun manual for usage
+
+local format, loadstring, type = string.format, loadstring, type
+local texwrite = tex.write
+
+metafun = metafun or { }
+
+function metafun.topath(t,connector)
+ tex.write("(")
+ if #t > 0 then
+ for i=1,#t do
+ if i > 1 then
+ texwrite(connector or "..")
+ end
+ local ti = t[i]
+ if type(ti) == "string" then
+ texwrite(ti)
+ else
+ texwrite(format("(%s,%s)",ti.x or ti[1] or 0,ti.y or ti[2] or 0))
+ end
+ end
+ else
+ texwrite("origin")
+ end
+ texwrite(")")
+end
+
+function metafun.interpolate(f,b,e,s,c)
+ local done = false
+ tex.write("(")
+ for i=b,e,(e-b)/s do
+ local d = loadstring(format("return function(x) return %s end",f))
+ if d then
+ d = d()
+ if done then
+ texwrite(c or "...")
+ else
+ done = true
+ end
+ texwrite(format("(%s,%s)",i,d(i)))
+ end
+ end
+ if not done then
+ texwrite("origin")
+ end
+ texwrite(")")
+end
diff --git a/Master/texmf-dist/tex/context/base/meta-fun.mkiv b/Master/texmf-dist/tex/context/base/meta-fun.mkiv
new file mode 100644
index 00000000000..a43ffefffc0
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/meta-fun.mkiv
@@ -0,0 +1,20 @@
+%D \module
+%D [ file=meta-fun,
+%D version=2009.06.02,
+%D title=\METAPOST\ Graphics,
+%D subtitle=Goodies,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{MetaPost Graphics / Goodies}
+
+\registerctxluafile{meta-fun}{1.001}
+
+\unprotect
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/meta-ini.mkii b/Master/texmf-dist/tex/context/base/meta-ini.mkii
index 932b99bf85a..f9d09704940 100644
--- a/Master/texmf-dist/tex/context/base/meta-ini.mkii
+++ b/Master/texmf-dist/tex/context/base/meta-ini.mkii
@@ -20,46 +20,6 @@
\unprotect
-\startmessages dutch library: metapost
- title: metapost
- 1: metapost bibliotheek -- wordt geladen
-\stopmessages
-
-\startmessages english library: metapost
- title: metapost
- 1: loading metapost library --
-\stopmessages
-
-\startmessages german library: metapost
- title: metapost
- 1: Lade metapost Bibliothek --
-\stopmessages
-
-\startmessages czech library: metapost
- title: metapost
- 1: loading metapost library --
-\stopmessages
-
-\startmessages italian library: metapost
- title: metapost
- 1: caricamento della libreria metapost --
-\stopmessages
-
-\startmessages norwegian library: metapost
- title: metapost
- 1: metapost bibliotek -- blir lest inn
-\stopmessages
-
-\startmessages romanian library: metapost
- title: metapost
- 1: se incarca biblioteca metapost --
-\stopmessages
-
-\startmessages french library: metapost
- title: metapost
- 1: chargement de la bibliothèque metapost --
-\stopmessages
-
%D This module extends the functionality of the support module
%D \type {supp-mps}, the module that is responsible for
%D \METAPOST\ inclusion in \CONTEXT. Some basic macros will be
@@ -69,49 +29,48 @@
\maxnofMPgraphics = 4000 % metafun disables the 4K boundary
-\appendtoks \runMPgraphicsfalse \to \everyfastmode
-\appendtoks \insertMPgraphicsfalse \to \everyfastmode
-\appendtoks \flushMPgraphics \to \everygoodbye % \everylastshipout
+\appendtoks \flushMPgraphics \to \everygoodbye % \everylastshipout
\def\@@MPG{@MPG@}
\startMPextensions
- if unknown context_tool: input mp-tool; fi;
- if unknown context_spec: input mp-spec; fi;
- if unknown context_grph: input mp-grph; fi;
+ if unknown context_tool: input mp-tool; fi;
+ if unknown context_spec: input mp-spec; fi;
+ if unknown context_grph: input mp-grph; fi;
\stopMPextensions
%D Since we want lables to follow the document settings, we
%D also set the font related variables.
-\startMPinitializations % scale is not yet ok
- defaultfont:="\truefontname{Regular}";
- defaultscale:=\the\bodyfontsize/10pt;
-\stopMPinitializations
-
-\beginNEWTEX
+\ifnum\texengine=\xetexengine
\startMPinitializations % scale is not yet ok
- defaultfont:="rm-lmtt10";
+ defaultfont:="rm-lmtt10";
+ defaultscale:=\the\bodyfontsize/10pt;
\stopMPinitializations
-\endNEWTEX
+\else
+ \startMPinitializations % scale is not yet ok
+ defaultfont:="\truefontname{Regular}";
+ defaultscale:=\the\bodyfontsize/10pt;
+ \stopMPinitializations
+\fi
%D In order to support fancy text features (like outline
%D fonts), we set:
\startMPextensions
- graphictextformat:="context";
- graphictextdirective "\the\everyMPTEXgraphic";
+ graphictextformat:="context";
+ graphictextdirective "\the\everyMPTEXgraphic";
\stopMPextensions
% \startMPextensions
-% textextdirective "\the\everyMPTEXgraphic";
+% textextdirective "\the\everyMPTEXgraphic";
% \stopMPextensions
%D A signal that we're in combines \CONTEXT||\METAFUN mode:
\startMPextensions
- string contextversion;
- contextversion:="\contextversion";
+ string contextversion;
+ contextversion:="\contextversion";
\stopMPextensions
%D Some safeguards:
@@ -165,33 +124,30 @@
\let\@@framed\s!unknown
-% \def\MPvariable#1%
-% {\getvalue{\ifundefined{\@@framed\@@meta#1}\else\@@framed\fi\@@meta#1}}
-
-\beginTEX
-
-\def\MPvariable#1%
- {\csname
- \@EA\ifx\csname\@@framed\@@meta#1\endcsname\relax\else\@@framed\fi\@@meta#1%
- \endcsname}
-
-\endTEX
-
-\beginETEX \ifcsname
-
\def\MPvariable#1%
{\csname
\ifcsname\@@framed\@@meta#1\endcsname\@@framed\fi\@@meta#1%
\endcsname}
-\endETEX
-
\let\MPvar\MPvariable
\let\setMPvariables\setupMPvariables
\def\MPrawvar#1#2{\csname#1:#2\endcsname}
+\def\presetMPvariable
+ {\dodoubleargument\dopresetMPvariable}
+
+\def\dopresetMPvariable[#1][#2=#3]%
+ {\doifundefined{#1:#2}{\setvalue{#1:#2}{#3}}}
+
+\def\useMPvariables
+ {\dodoubleargument\douseMPvariables}
+
+\def\douseMPvariables[#1][#2]%
+ {\def\@@meta{#1:}%
+ \prepareMPvariables{#2}}
+
%D \macros
%D {startuniqueMPgraphic, uniqueMPgraphic}
%D
@@ -286,6 +242,9 @@
\elabelgroup}
\let\stopuniqueMPcode \relax % so that we can use it in \expanded
+
+\def\includeMPgraphic#1%
+ {\executeifdefined{\@@MPG#1};} % ; if not found
\long\def\handleuseMPgraphic#1#2#3%
{\blabelgroup
@@ -499,9 +458,9 @@
%D on the number of files it can handle. It's therefore
%D better to collect all data in one file and filter it.
-\def\MPdataMPDfile{\jobname-mp.mpd}
-\def\MPdataMPOfile{\jobname-mp.mpo}
-\def\MPdataMPYfile{\jobname-mp.mpy}
+\def\MPdataMPDfile{\jobname-mpgraph.mpd}
+\def\MPdataMPOfile{\jobname-mpgraph.mpo}
+\def\MPdataMPYfile{\jobname-mpgraph.mpy}
\startMPextensions
boolean collapse_data; collapse_data:=true;
@@ -513,9 +472,9 @@
\def\getMPdata
{\long\def\MPdata##1##2{\ifnum##1=\currentMPgraphic\relax##2\fi}%
\startreadingfile
- \startnointerference
+ % \startnointerference % no, else we need to do all data global
\readlocfile\MPdataMPDfile\donothing\donothing
- \stopnointerference
+ % \stopnointerference
\stopreadingfile}
%D We have to enable this mechanism with:
@@ -1064,7 +1023,11 @@
\resetlanguagespecifics
\to \everyMPgraphic
-% Done.
+%D Goody for preventing overflows:
+
+\def\MPdivten[#1]{\withoutpt\the\dimexpr#1pt/10\relax}
+
+%D Done.
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/meta-ini.mkiv b/Master/texmf-dist/tex/context/base/meta-ini.mkiv
index cb2aa0ca756..ff4d48c1db2 100644
--- a/Master/texmf-dist/tex/context/base/meta-ini.mkiv
+++ b/Master/texmf-dist/tex/context/base/meta-ini.mkiv
@@ -15,46 +15,6 @@
\unprotect
-\startmessages dutch library: metapost
- title: metapost
- 1: metapost bibliotheek -- wordt geladen
-\stopmessages
-
-\startmessages english library: metapost
- title: metapost
- 1: loading metapost library --
-\stopmessages
-
-\startmessages german library: metapost
- title: metapost
- 1: Lade metapost Bibliothek --
-\stopmessages
-
-\startmessages czech library: metapost
- title: metapost
- 1: loading metapost library --
-\stopmessages
-
-\startmessages italian library: metapost
- title: metapost
- 1: caricamento della libreria metapost --
-\stopmessages
-
-\startmessages norwegian library: metapost
- title: metapost
- 1: metapost bibliotek -- blir lest inn
-\stopmessages
-
-\startmessages romanian library: metapost
- title: metapost
- 1: se incarca biblioteca metapost --
-\stopmessages
-
-\startmessages french library: metapost
- title: metapost
- 1: chargement de la bibliothèque metapost --
-\stopmessages
-
%D Instead of sharing code with \MKII, I decided to copy
%D the code. Otherwise maintainance becomes a pain and after all,
%D the \MKII\ code will not change.
@@ -77,6 +37,23 @@
\newtoks \everyMPgraphic % mp
\newtoks \everyMPTEXgraphic % tex
+\newif\ifMPrun
+\def\MPruntimefile{mprun}
+
+% The next command is, of course, dedicated to Mojca, who
+% needs it for gnuplot. Anyway, the whole multiple engine
+% mechanism is to keep her gnuplot from interfering.
+
+\def\startMPdefinitions
+ {\dosinglegroupempty\dostartMPdefinitions}
+
+\long\def\dostartMPdefinitions#1#2\stopMPdefinitions
+ {\edef\currentMPgraphicinstance{#1}%
+ \ifx\currentMPgraphicinstance\empty
+ \let\currentMPgraphicinstance\defaultMPgraphicinstance
+ \fi
+ \global\MPinstancetoks\expandafter{\the\MPinstancetoks#2}}
+
\long\def\startMPextensions#1\stopMPextensions
{\global\MPextensions\expandafter{\the\MPextensions#1}}
@@ -97,10 +74,6 @@
{\doifnot{#1}{+}{\global\MPuserinclusions\emptytoks}%
\global\MPuserinclusions\expandafter{\the\MPuserinclusions#2}}
-\ifx \overlaywidth \undefined \def \overlaywidth {4cm} \fi
-\ifx \overlayheight \undefined \def \overlayheight {3cm} \fi
-\ifx \overlaylinewidth \undefined \def \overlaylinewidth {0pt} \fi
-
\def\presetMPdefinitions
{\edef\overlaywidth {\overlaywidth \space}%
\edef\overlayheight {\overlayheight \space}%
@@ -110,26 +83,81 @@
\def\currentMPformat{metafun}
+\def\@@MPF{@MPF@}
+
+\def\MPinstancetoks{\csname\@@MPF::\currentMPgraphicinstance\endcsname}
+
+\def\defineMPinstance
+ {\dodoubleargument\dodefineMPinstance}
+
+\def\dodefineMPinstance[#1][#2]%
+ {\ifcsname\@@MPF::#1\endcsname\else\expandafter\newtoks\csname\@@MPF::#1\endcsname\fi
+ \MPinstancetoks\emptytoks % in case we redefine
+ \getparameters[\@@MPF#1][\s!format=mpost,\s!extensions=\v!no,\s!initializations=\v!no,#2]}
+
+\def\resetMPinstance[#1]%
+ {\writestatus\m!metapost{reset will be implemented when needed}}
+
+\def\defaultMPgraphicinstance{metafun}
+
+\def\splitMPgraphicname[#1]%
+ {\dosplitMPgraphicname[#1::::]}
+
+\def\dosplitMPgraphicname[#1::#2::#3]% instance ::
+ {\edef\currentMPgraphicname{#2}%
+ \ifx\currentMPgraphicname\empty
+ \edef\currentMPgraphicname{#1}%
+ \let\currentMPgraphicinstance\defaultMPgraphicinstance
+ \else
+ \edef\currentMPgraphicinstance{#1}%
+ \fi
+ \edef\currentMPgraphicformat{\csname\@@MPF\currentMPgraphicinstance\s!format\endcsname}}
+
+\def\currentMPgraphicinstance{\defaultMPgraphicinstance}
+\def\currentMPgraphicformat {\currentMPgraphicinstance}
+
+\defineMPinstance[metafun] [\s!format=metafun,\s!extensions=\v!yes,\s!initializations=\v!yes]
+\defineMPinstance[extrafun][\s!format=metafun,\s!extensions=\v!yes,\s!initializations=\v!yes]
+\defineMPinstance[mprun] [\s!format=metafun,\s!extensions=\v!yes,\s!initializations=\v!yes]
+\defineMPinstance[metapost][\s!format=mpost]
+\defineMPinstance[nofun] [\s!format=mpost]
+
+\def\beginMPgraphicgroup#1%
+ {\begingroup
+ \splitMPgraphicname[#1]}
+
+\def\endMPgraphicgroup
+ {\endgroup}
+
+\newconditional \METAFUNinitialized
+
+\def\MPaskedfigure{false}
+
\long\def\processMPgraphic#1% todo: extensions and inclusions outside beginfig
- {\blabelgroup
+ {\begingroup % needed?
+\forgetall
\enableincludeMPgraphics
\the\everyMPgraphic
\presetMPdefinitions
\setMPrandomseed % this has to change
% we need to preexpand the token lists
- \setbox\MPgraphicbox\hbox\bgroup
- \ctxlua {
- metapost.graphic(
- "\currentMPformat",
- \@EA\!!bs\the\MPinitializations;\theMPrandomseed;#1;\!!es, % code
- \@EA\@EA\@EA\!!bs\@EA\the\@EA\MPextensions\@EA;\the\MPuserinclusions;\!!es % optional preamble
- )
- }%
+ \doifelsevalue{\@@MPF\currentMPgraphicinstance\s!extensions}\v!yes
+ {\settrue \includeMPextensions\letgvalue{\@@MPF\currentMPgraphicinstance\s!extensions}\v!no}
+ {\setfalse\includeMPextensions}%
+ \doifelsevalue{\@@MPF\currentMPgraphicinstance\s!initializations}\v!yes
+ {\settrue \includeMPinitializations}%
+ {\setfalse\includeMPinitializations}%
+ \setbox\MPgraphicbox\hbox\bgroup
+ \normalexpanded{\noexpand\ctxlua{metapost.graphic("\currentMPgraphicinstance", "\currentMPgraphicformat",
+ \!!bs\ifconditional\includeMPinitializations\the\MPinitializations;\fi\theMPrandomseed;#1;\!!es,
+ \!!bs\ifconditional\includeMPextensions\the\MPextensions;\the\MPuserinclusions;\fi\the\MPinstancetoks;\!!es,
+ \MPaskedfigure
+ )}}%
\egroup
+ \global\MPinstancetoks\emptytoks
+ \global\settrue\METAFUNinitialized % becomes obsolete
\placeMPgraphic
- \global\MPextensions\emptytoks
- \global\MPuserinclusions\emptytoks
- \elabelgroup}
+ \endgroup}
\newif\ifsetMPrandomseed \setMPrandomseedtrue % false by default
@@ -145,22 +173,18 @@
\def\@@MPG{@MPG@}
\def\doifMPgraphicelse#1%
- {\blabelgroup
- \doifdefinedelse{\@@MPG#1}%
- {\elabelgroup\firstoftwoarguments}
- {\elabelgroup\secondoftwoarguments}}
+ {\ifcsname\@@MPG#1\endcsname\expandafter\firstoftwoarguments\else\expandafter\secondoftwoarguments\fi}
\def\includeMPgraphic#1%
- {\executeifdefined{\@@MPG#1};}
+ {\executeifdefined{\@@MPG#1};} % ; if not found
\def\enableincludeMPgraphics
- {\let\handleuseMPgraphic \secondoftwoarguments
- \let\handlereusableMPgraphic\secondoftwoarguments}
+ {\let\handleuseMPgraphic \thirdofthreearguments
+ \let\handlereusableMPgraphic\thirdofthreearguments}
\let\MPdrawingdata\empty
\newif\ifMPdrawingdone \MPdrawingdonefalse
-\newif\ifMPshiftdrawing \MPshiftdrawingfalse
\def\resetMPdrawing
{\globallet\MPdrawingdata\empty
@@ -173,10 +197,7 @@
\def\popMPdrawing
{\globalpopmacro\MPdrawingdata}
-\def\getMPdrawing
- {\ifMPdrawingdone
- \expandafter\processMPgraphic\expandafter{\MPdrawingdata}%
- \fi}
+\def\getMPdrawing{\dosinglegroupempty\dogetMPdrawing}
\def\startMPdrawing
{\dosingleempty\dostartMPdrawing}
@@ -194,7 +215,6 @@
\let\MPdrawingdata\empty
-\newif\ifMPdrawingdone \MPdrawingdonefalse
\newif\ifMPshiftdrawing \MPshiftdrawingfalse
\def\resetMPdrawing
@@ -228,26 +248,24 @@
\let\stopMPdrawing\relax
\long\def\startMPclip#1#2\stopMPclip
- {\blabelgroup
- \long\setgvalue{MPC:#1}{\ctxlua{metapost.getclippath(\!!bs#2\!!es)}}%
- \elabelgroup}
+ {\long\setgvalue{MPC:#1}{\ctxlua{metapost.getclippath(\!!bs#2\!!es)}}}
\let\stopMPclip\relax
-\def\grabMPclippath#1#2#3#4#5%
- {\blabelgroup
+\def\grabMPclippath#1#2#3#4#5% #5 is alternative
+ {\begingroup
\edef\width {#3\space}\let\overlaywidth \width
\edef\height{#4\space}\let\overlayheight\height
- \doifundefined{MPC::#1}
- {\doifdefinedelse{MPC:#1}
- {\xdef\MPclippath{\getvalue{MPC:#1}}%
- \ifx\MPclippath\empty\xdef\MPclippath{#5}\fi
- \setxvalue{MPC::#1}{\MPclippath}}
- {\setxvalue{MPC::#1}{#5}}}%
- \xdef\MPclippath{\getvalue{MPC::#1}}%
+ \ifcsname MPC:#1\endcsname
+ \xdef\MPclippath{\getvalue{MPC:#1}}%
+ \ifx\MPclippath\empty\xdef\MPclippath{#5}\fi
+ \setxvalue{MPC:#1}{\MPclippath}%
+ \else
+ \xdef\MPclippath{#5}%
+ \fi
% #2 : method is obsolete, only pdf now, we can always
% gsub the result to ps
- \elabelgroup}
+ \endgroup}
%D Next we will use these support macros.
@@ -265,18 +283,12 @@
defaultscale:=\the\bodyfontsize/10pt;
\stopMPinitializations
+% watch out, this is a type1 font because mp can only handle 8 bit fonts
+
\startMPinitializations % scale is not yet ok
defaultfont:="rm-lmtt10";
\stopMPinitializations
-%D In order to support fancy text features (like outline
-%D fonts), we set:
-
-% \startMPextensions
-% graphictextformat:="context";
-% graphictextdirective "\the\everyMPTEXgraphic";
-% \stopMPextensions
-
%D A signal that we're in combines \CONTEXT||\METAFUN mode:
\startMPextensions
@@ -297,16 +309,6 @@
\prependtoks \MPstaticgraphictrue \to \everyoverlay
\prependtoks \MPstaticgraphictrue \to \everypagebody
-% %D We save the number of graphics for the sake of \TEXEXEC.
-%
-% \newcounter\totalnofMPgraphics
-%
-% \def\thenofMPgraphics{\the\nofMPgraphics} % from supp-mps
-%
-% \appendtoks
-% \savecurrentvalue\totalnofMPgraphics\thenofMPgraphics
-% \to \everybye
-
%D \macros
%D {setupMPvariables}
%D
@@ -346,6 +348,19 @@
\def\MPrawvar#1#2{\csname#1:#2\endcsname}
+\def\presetMPvariable
+ {\dodoubleargument\dopresetMPvariable}
+
+\def\dopresetMPvariable[#1][#2=#3]%
+ {\ifcsname#1:#2\endcsname\else\setvalue{#1:#2}{#3}\fi}
+
+\def\useMPvariables
+ {\dodoubleargument\douseMPvariables}
+
+\def\douseMPvariables[#1][#2]%
+ {\def\@@meta{#1:}%
+ \prepareMPvariables{#2}}
+
%D \macros
%D {startuniqueMPgraphic, uniqueMPgraphic}
%D
@@ -383,18 +398,35 @@
%D \stoptyping
\newcount\MPobjectcounter
-\newif \ifMPshiftdrawing \MPshiftdrawingfalse
\newbox \MPgraphicbox
+\chardef\MPboxmode\zerocount
+
+\def\doobeyMPboxdepth % mode = 1
+ {\setbox\MPgraphicbox\hbox{\hskip\MPllx\onebasepoint\raise\MPlly\onebasepoint\box\MPgraphicbox}}
+
+\def\doignoreMPboxdepth % mode = 2
+ {\normalexpanded
+ {\noexpand\doobeyMPboxdepth
+ \wd\MPgraphicbox\the\wd\MPgraphicbox
+ \ht\MPgraphicbox\the\ht\MPgraphicbox
+ \dp\MPgraphicbox\the\dp\MPgraphicbox}}
+
+\def\obeyMPboxdepth {\chardef\MPboxmode\plusone}
+\def\ignoreMPboxdepth{\chardef\MPboxmode\plustwo}
+\def\normalMPboxdepth{\chardef\MPboxmode\zerocount}
+
+% compatibility hack:
+
+\let\MPshiftdrawingtrue \ignoreMPboxdepth
+\let\MPshiftdrawingfalse\normalMPboxdepth
+
\def\placeMPgraphic
- {\ifMPshiftdrawing
- \edef\next
- {\wd\MPgraphicbox\the\wd\MPgraphicbox
- \ht\MPgraphicbox\the\ht\MPgraphicbox
- \dp\MPgraphicbox\the\dp\MPgraphicbox}%
- \setbox\MPgraphicbox\hbox
- {\hskip\MPllx\onebasepoint\raise\MPlly\onebasepoint\box\MPgraphicbox}%
- \next
+ {\ifcase\MPboxmode
+ \or % 1
+ \doobeyMPboxdepth
+ \or % 2
+ \doignoreMPboxdepth
\fi
\box\MPgraphicbox}
@@ -406,84 +438,76 @@
\getobject{MP}{#1}}
\long\def\handleuniqueMPgraphic#1#2#3%
- {\blabelgroup
+ {\begingroup
\def\@@meta{#1:}%
\extendMPoverlaystamp{#2}% incl prepare
- \ifundefined{\@@MPG\overlaystamp:#1}%
+ \ifcsname\@@MPG\overlaystamp:#1\endcsname\else
\enableincludeMPgraphics
- \forgetall
+% \forgetall
\global\advance\MPobjectcounter\plusone
- \setobject{MP}{\number\MPobjectcounter}\vbox{\processMPgraphic{#3}}%
+ \setobject{MP}{\number\MPobjectcounter}\hbox{\processMPgraphic{#3}}% was vbox, graphic must end up as hbox
\setxvalue{\@@MPG\overlaystamp:#1}{\noexpand\reuseMPbox{\number\MPobjectcounter}{\MPllx}{\MPlly}{\MPurx}{\MPury}}%
\fi
\getvalue{\@@MPG\overlaystamp:#1}%
- \elabelgroup}
+ \endgroup}
\long\def\startuniqueMPgraphic
- {\blabelgroup
- \dodoublegroupempty\dostartuniqueMPgraphic}
+ {\dodoublegroupempty\dostartuniqueMPgraphic}
\long\def\dostartuniqueMPgraphic#1#2#3\stopuniqueMPgraphic%
- {\long\setgvalue{\@@MPG#1}{\handleuniqueMPgraphic{#1}{#2}{#3}}%
- \elabelgroup}
+ {\long\setgvalue{\@@MPG#1}{\handleuniqueMPgraphic{#1}{#2}{#3}}}
\unexpanded\def\uniqueMPgraphic
{\dodoublegroupempty\douniqueMPgraphic}
\def\douniqueMPgraphic#1#2%
- {\blabelgroup
- \setupMPvariables[#1][#2]%
- \getvalue{\@@MPG#1}\empty
- \elabelgroup}
+ {\beginMPgraphicgroup{#1}%
+ \setupMPvariables[\currentMPgraphicname][#2]%
+ \getvalue{\@@MPG\currentMPgraphicname}\empty
+ \endMPgraphicgroup}
\let\stopuniqueMPcode \relax % so that we can use it in \expanded
\long\def\handleuseMPgraphic#1#2#3%
- {\blabelgroup
- \forgetall % check this
+ {\begingroup
+% \forgetall % check this
\def\@@meta{#1:}%
\prepareMPvariables{#2}%
\enableincludeMPgraphics
\processMPgraphic{#3}%
- \elabelgroup}
+ \endgroup}
\long\def\startuseMPgraphic
- {\blabelgroup
- \dodoublegroupempty\dostartuseMPgraphic}
+ {\dodoublegroupempty\dostartuseMPgraphic}
\long\def\dostartuseMPgraphic#1#2#3\stopuseMPgraphic
- {\long\setgvalue{\@@MPG#1}{\handleuseMPgraphic{#1}{#2}{#3}}%
- \elabelgroup}
+ {\long\setgvalue{\@@MPG#1}{\handleuseMPgraphic{#1}{#2}{#3}}}
\long\def\startusableMPgraphic % redundant but handy
- {\blabelgroup
- \dodoublegroupempty\dostartusableMPgraphic}
+ {\dodoublegroupempty\dostartusableMPgraphic}
\long\def\dostartusableMPgraphic#1#2#3\stopusableMPgraphic
- {\long\setgvalue{\@@MPG#1}{\handleuseMPgraphic{#1}{#2}{#3}}%
- \elabelgroup}
+ {\long\setgvalue{\@@MPG#1}{\handleuseMPgraphic{#1}{#2}{#3}}}
\let\stopuseMPgraphic \relax % so that we can use it in \expanded
\let\stopusableMPgraphic \relax % so that we can use it in \expanded
\long\def\handlereusableMPgraphic#1#2#3%
- {\blabelgroup
+ {\begingroup
\def\@@meta{#1:}%
\prepareMPvariables{#2}%
\enableincludeMPgraphics
\global\advance\MPobjectcounter\plusone
- \setobject{MP}{\number\MPobjectcounter}\vbox{\processMPgraphic{#3}}%
+ \setobject{MP}{\number\MPobjectcounter}\hbox{\processMPgraphic{#3}}% was vbox, graphic must end up as hbox
\setxvalue{\@@MPG#1}{\noexpand\reuseMPbox{\number\MPobjectcounter}{\MPllx}{\MPlly}{\MPurx}{\MPury}}%
\getvalue{\@@MPG#1}%
- \elabelgroup}
+ \endgroup}
\long\def\startreusableMPgraphic
- {\blabelgroup
- \dodoublegroupempty\dostartreusableMPgraphic}
+ {\dodoublegroupempty\dostartreusableMPgraphic}
\long\def\dostartreusableMPgraphic#1#2#3\stopreusableMPgraphic
- {\long\setgvalue{\@@MPG#1}{\handlereusableMPgraphic{#1}{#2}{#3}}%
- \elabelgroup}
+ {\long\setgvalue{\@@MPG#1}{\handlereusableMPgraphic{#1}{#2}{#3}}}
\let\stopreusableMPgraphic \relax % so that we can use it in \expanded
@@ -491,10 +515,10 @@
{\dodoublegroupempty\douseMPgraphic}
\def\douseMPgraphic#1#2%
- {\blabelgroup
- \doifsomething{#2}{\setupMPvariables[#1][#2]}%
- \getvalue{\@@MPG#1}\empty
- \elabelgroup}
+ {\beginMPgraphicgroup{#1}%
+ \doifsomething{#2}{\setupMPvariables[\currentMPgraphicname][#2]}%
+ \getvalue{\@@MPG\currentMPgraphicname}\empty
+ \endMPgraphicgroup}
\let\reuseMPgraphic \useMPgraphic % we can save a setup here if needed
\let\reusableMPgraphic\reuseMPgraphic % we can save a setup here if needed
@@ -519,23 +543,21 @@
{\MPpageprefix\overlaywidth:\overlayheight:\overlaydepth:\MPcolor\overlaycolor:\MPcolor\overlaylinecolor}
\long\def\startuniqueMPpagegraphic
- {\blabelgroup
- \dodoublegroupempty\dostartuniqueMPpagegraphic}
+ {\dodoublegroupempty\dostartuniqueMPpagegraphic}
\long\def\dostartuniqueMPpagegraphic#1#2#3\stopuniqueMPpagegraphic
{\long\setgvalue{\@@MPG o:#1}{\handleuniqueMPgraphic{o:#1}{#2}{#3}}%
- \long\setgvalue{\@@MPG e:#1}{\handleuniqueMPgraphic{e:#1}{#2}{#3}}%
- \elabelgroup}
+ \long\setgvalue{\@@MPG e:#1}{\handleuniqueMPgraphic{e:#1}{#2}{#3}}}
\unexpanded\def\uniqueMPpagegraphic
{\dodoublegroupempty\douniqueMPpagegraphic}
\def\douniqueMPpagegraphic#1#2%
- {\blabelgroup
+ {\beginMPgraphicgroup{#1}%
\let\overlaystamp\overlaypagestamp
- \setupMPvariables[\MPpageprefix#1][#2]% prefix is new here
- \getvalue{\@@MPG\MPpageprefix#1}{}%
- \elabelgroup}
+ \setupMPvariables[\MPpageprefix\currentMPgraphicname][#2]% prefix is new here
+ \getvalue{\@@MPG\MPpageprefix\currentMPgraphicname}{}%
+ \endMPgraphicgroup}
%D One way of defining a stamp is:
%D
@@ -550,10 +572,10 @@
%D we introduce a dedicated expansion engine.
\def\prepareMPvariable#1%
- {\ifundefined{\@@framed\@@meta#1}%
- \doprepareMPvariable{\@@meta#1}%
- \else
+ {\ifcsname\@@framed\@@meta#1\endcsname
\doprepareMPvariable{\@@framed\@@meta#1}%
+ \else
+ \doprepareMPvariable{\@@meta#1}%
\fi}
% \startlines
@@ -602,9 +624,9 @@
%D
%D We redefine a macro from \type {supp-mps.tex}:
-\def\MPdataMPDfile{\jobname-mp.mpd}
-\def\MPdataMPOfile{\jobname-mp.mpo}
-\def\MPdataMPYfile{\jobname-mp.mpy}
+\def\MPdataMPDfile{\jobname-mpgraph.mpd}
+\def\MPdataMPOfile{\jobname-mpgraph.mpo}
+\def\MPdataMPYfile{\jobname-mpgraph.mpy}
\startMPextensions
boolean collapse_data; collapse_data:=true;
@@ -618,9 +640,9 @@
\def\getMPdata
{\let\MPdata\secondoftwoarguments
\startreadingfile
- \startnointerference
+ % \startnointerference % no, else we need to do all data global
\readlocfile\MPdataMPDfile\donothing\donothing
- \stopnointerference
+ % \stopnointerference
\stopreadingfile}
%D \macros
@@ -634,15 +656,29 @@
%D For the moment, the next one is a private macro:
-% TODO ! ! ! ! ! !
-
\def\processMPbuffer
{\dosingleempty\doprocessMPbuffer}
\def\doprocessMPbuffer[#1]%
{\doifelsenothing{#1}
+ {\dodoprocessMPbuffer{\jobname}}
+ {\dodoprocessMPbuffer{#1}}}
+
+% we need to go via a toks because we have no multiline print in
+% luatex (i.e. tex.sprint does not interpret lines) and therefore
+% omits all after a comment token
+
+\newtoks\mpbuffertoks
+
+\def\doprocessMPbuffer[#1]%
+ {\doifelsenothing{#1}
{\doprocessMPbuffer[\jobname]}
- {\processMPgraphic{\ctxlua{tex.sprint(tex.ctxcatcodes,buffers.collect(string.split("#1",",")))}}}}
+ {\beginMPgraphicgroup{#1}%
+ % we need this trick because tex.sprint does not interprets newlines and the scanner
+ % stops at a newline; also, we do need to flush the buffer under a normal catcode
+ % regime in order to expand embedded tex macros; #1 can be a list
+ \processMPgraphic{\ctxlua{buffers.feedback("\currentMPgraphicname")}}%
+ \endMPgraphicgroup}}
\def\runMPbuffer
{\dosingleempty\dorunMPbuffer}
@@ -662,25 +698,6 @@
%D A more general way of passing environments is:
-% \def\startMPenvironment % second arg gobbles spaces, so that reset gives \emptytoks
-% {\bgroup
-% \catcode`\^^M=\@@space
-% \dodoubleempty\dostartMPenvironment}
-
-% \long\def\dostartMPenvironment[#1][#2]#3\stopMPenvironment
-% {\egroup
-% \doif{#1}\s!reset\resetMPenvironment % reset mp toks
-% \doif{#1}\v!global{#3}% % use in main doc too
-% \doif{#1}+{#3}% % use in main doc too
-% \defconvertedargument\ascii{#3}%
-% \expandafter\appendtoks\ascii\to\everyMPTEXgraphic}
-
-% \def\resetMPenvironment
-% {\everyMPTEXgraphic\emptytoks % = is really needed !
-% \startMPenvironment
-% \global\loadfontfileoncetrue
-% \stopMPenvironment}
-
\def\startMPenvironment % second arg gobbles spaces, so that reset gives \emptytoks
{\dodoubleempty\dostartMPenvironment}
@@ -698,8 +715,6 @@
\def\useMPenvironmentbuffer[#1]%
{\ctxlua{metapost.tex.set(buffers.content("#1"))}}
-% \useMPenvironmentbuffer[mp] % hm, what is this?
-
%D This command takes \type {[reset]} as optional
%D argument.
%D
@@ -715,8 +730,69 @@
%D
%D The most simple case:
-\long\def\startMPcode#1\stopMPcode
- {\processMPgraphic{#1}}
+\def\startMPcode{\dosinglegroupempty\dostartMPcode}
+
+\def\dostartMPcode
+ {\iffirstargument
+ \expandafter\dodostartMPcode
+ \else
+ \expandafter\nodostartMPcode
+ \fi}
+
+\def\dodostartMPcode#1#2\stopMPcode
+ {\beginMPgraphicgroup{#1::\s!dummy}% name does not matter
+ \processMPgraphic{#2}%
+ \endMPgraphicgroup}
+
+\def\nodostartMPcode#1#2\stopMPcode
+ {\processMPgraphic{#2}}
+
+\let\stopMPcode\relax
+
+% a bit nasty (also needed for compatibility:
+
+% \startMPrun input mp-www.mp ; \stopMPrun
+% \externalfigure[mprun.3][width=10cm,height=8cm]
+
+% \startMPrun{mprun} input mp-www.mp ; \stopMPrun % instance
+% \externalfigure[mprun.4][width=10cm,height=8cm]
+
+\let\MPruninstance\defaultMPgraphicinstance
+
+\def\useMPrun#1#2% name n
+ {\begingroup
+ \def\MPaskedfigure{#2}%
+ \doifelsenothing{#1}
+ {\useMPgraphic{mprun}}%
+ {\useMPgraphic{#1}}%
+ \endgroup}
+
+\def\startMPrun
+ {\dosinglegroupempty\dostartMPrun}
+
+\long\def\dostartMPrun#1#2\stopMPrun
+ {\iffirstargument
+ \startuseMPgraphic{#1}#2\stopuseMPgraphic
+ \else
+ \startuseMPgraphic{mprun}#1\stopuseMPgraphic
+ \fi}
+
+% for old time sake
+
+\def\dostartMPgraphic
+ {\iffirstargument
+ \expandafter\dodostartMPgraphic
+ \else
+ \expandafter\nodostartMPgraphic
+ \fi}
+
+\def\dodostartMPgraphic#1#2\stopMPgraphic
+ {\beginMPgraphicgroup{#1::\s!dummy}% name does not matter
+ \processMPgraphic{#2}%
+ \endMPgraphicgroup}
+
+\def\nodostartMPgraphic#1#2\stopMPcode
+ {\processMPgraphic{#2}}
\let\stopMPcode\relax
@@ -746,7 +822,7 @@
%D accomplished by:
\def\douseMPlibrary#1%
- {\ifundefined{\c!file\f!metapostprefix#1}%
+ {\ifcsname\c!file\f!metapostprefix#1\endcsname\else
\letvalueempty{\c!file\f!metapostprefix#1}%
\makeshortfilename[\truefilename{\f!metapostprefix#1}]%
\startreadingfile
@@ -835,10 +911,21 @@
\disablecompoundcharacters
\to \everyMPgraphic
-\appendtoks
- \expanded{\definecolor[currentcolor][\currentcolorname]}%
+\appendtoks % before color
+ %\normalexpanded{\noexpand\definecolor[currentcolor][\currentcolorname]}%
+ \doregistercolor{currentcolor}\currentcolorname
\to \everyMPgraphic
+% \color[green]{abc \startMPcode
+% fill fullcircle scaled 3cm withoutcolor;
+% fill fullcircle scaled 2cm withcolor \MPcolor{currentcolor} ;
+% fill fullcircle scaled 1cm withcolor \MPcolor{red} ;
+% \stopMPcode def}
+
+% \appendtoks
+% \doactivatecolor\s!black\forcecolorhack % we can also move this to the backend
+% \to \everyMPgraphic
+
\appendtoks
\baselineskip1\baselineskip
\lineheight 1\lineheight
@@ -853,20 +940,11 @@
\let \} \letterclosebrace
\to \everyMPgraphic
-%D Alas, the prologue settings differ per driver.
-
-\ifx\undefined\MPprologues \def\MPprologues{0} \fi
-
\startMPinitializations
- prologues:=\MPprologues;
+ prologues:=0;
mpprocset:=1;
\stopMPinitializations
-\appendtoks
- \def\MPprologues{0}%
- \def\MPOSTdriver{dvips}%
-\to \everyresetspecials
-
%D \macros
%D {PDFMPformoffset}
%D
@@ -876,63 +954,68 @@
\def\PDFMPformoffset{\objectoffset}
-%D \macros
-%D {insertMPfile}
-%D
-%D Bypassing the special driver and figure mechanism is not
-%D that nice but saves upto 5\% time in embedding \METAPOST\
-%D graphics by using the low level \PDF\ converter directly,
-%D given of course that we use \PDFTEX. As a result we need to
-%D fool around with the object trigger.
+% %D \macros
+% %D {insertMPfile}
+% %D
+% %D Bypassing the special driver and figure mechanism is not
+% %D that nice but saves upto 5\% time in embedding \METAPOST\
+% %D graphics by using the low level \PDF\ converter directly,
+% %D given of course that we use \PDFTEX. As a result we need to
+% %D fool around with the object trigger.
\newtoks\everyinsertMPfile
-\let\insertMPfileARG\insertMPfile
-
-\def\insertMPfile#1#2% in context #2 is empty
- {\doifelsenothing{#2}{\doinsertMPfile{#1}}{\insertMPfileARG{#1}{#2}}}
-
-\def\includeMPasEPS#1% untested !!
- {\bgroup
- \message{[MP as EPS #1]}%
- \the\everyinsertMPfile
- \dogetEPSboundingbox{#1}\!!widtha\!!heighta\!!widthb\!!heightb
- \setbox\scratchbox\vbox to \!!heightb
- {\vfill
- \let \@@DriverImageType \c!mps
- \def \@@DriverImageFile {#1}%
- \edef\@@DriverImageWidth {\the\!!widthb }%
- \edef\@@DriverImageHeight{\the\!!heightb}%
- \doinsertfile}%
- \wd\scratchbox\!!widthb
- \dp\scratchbox\zeropoint
- \box\scratchbox
- \egroup}
-
-\def\includeMPasPDF#1%
- {\bgroup
- \the\everyinsertMPfile
- \ifinobject \else \chardef\makeMPintoPDFobject\plustwo \fi % when needed
- \convertMPtoPDF{#1}{1}{1}% no \plusone !
- \egroup}
-
-%D So, using a low level approach (thereby avoiding the slower
-%D figure analysis macros) pays off. This kind of
-%D optimizations are a bit tricky since we must make sure that
-%D special resources end up in the (PDF) files. Because the
-%D \METAPOST\ to \PDF\ can handle objects itself, it is not
-%D that complicated.
-
-%D We hook a couple of initializations into the graphic
-%D macros.
-
-\appendtoks
- \let\figuretypes\c!mps
- \runutilityfilefalse
- \consultutilityfilefalse
-\to \everyinsertMPfile
-
-%D One more: (still needed?)
+% removed in backend:
+%
+% \def\doinsertMPfile#1%
+% {\doiffileelse{./#1}{\includeMPasPDF{./#1}}{\message{[MP #1]}}}
+%
+% \let\insertMPfileARG\insertMPfile
+%
+% \def\insertMPfile#1#2% in context #2 is empty
+% {\doifelsenothing{#2}{\doinsertMPfile{#1}}{\insertMPfileARG{#1}{#2}}}
+%
+% \def\includeMPasEPS#1% untested !!
+% {\bgroup
+% \message{[MP as EPS #1]}%
+% \the\everyinsertMPfile
+% \dogetEPSboundingbox{#1}\!!widtha\!!heighta\!!widthb\!!heightb
+% \setbox\scratchbox\vbox to \!!heightb
+% {\vfill
+% \let \@@DriverImageType \c!mps
+% \def \@@DriverImageFile {#1}%
+% \edef\@@DriverImageWidth {\the\!!widthb }%
+% \edef\@@DriverImageHeight{\the\!!heightb}%
+% \doinsertfile}%
+% \wd\scratchbox\!!widthb
+% \dp\scratchbox\zeropoint
+% \box\scratchbox
+% \egroup}
+%
+% \def\includeMPasPDF#1%
+% {\bgroup
+% \the\everyinsertMPfile
+% \ifinobject \else \chardef\makeMPintoPDFobject\plustwo \fi % when needed
+% \convertMPtoPDF{#1}{1}{1}% no \plusone !
+% \egroup}
+%
+% %D So, using a low level approach (thereby avoiding the slower
+% %D figure analysis macros) pays off. This kind of
+% %D optimizations are a bit tricky since we must make sure that
+% %D special resources end up in the (PDF) files. Because the
+% %D \METAPOST\ to \PDF\ can handle objects itself, it is not
+% %D that complicated.
+%
+% %D We hook a couple of initializations into the graphic
+% %D macros.
+%
+% \appendtoks
+% \let\figuretypes\c!mps
+% \runutilityfilefalse
+% \consultutilityfilefalse
+% \to \everyinsertMPfile
+%
+% %D One more: (still needed?)
\startMPextensions
def initialize_form_numbers =
@@ -1000,9 +1083,9 @@
\long\def\dostartMPcolor[#1][#2]#3\stopMPcolor % slow but sometimes handy
{\startnointerference
- \def\handleMPgraycolor{\expanded{\defineglobalcolor[#1][s=\!MPgMPa1,#2]}}%
- \def\handleMPrgbcolor {\expanded{\defineglobalcolor[#1][r=\!MPgMPa1,g=\!MPgMPa2,b=\!MPgMPa3,#2]}}%
- \def\handleMPcmykcolor{\expanded{\defineglobalcolor[#1][c=\!MPgMPa1,m=\!MPgMPa2,y=\!MPgMPa3,k=\!MPgMPa4,#2]}}%
+ \def\handleMPgraycolor{\normalexpanded{\noexpand\defineglobalcolor[#1][s=\!MPgMPa1,#2]}}%
+ \def\handleMPrgbcolor {\normalexpanded{\noexpand\defineglobalcolor[#1][r=\!MPgMPa1,g=\!MPgMPa2,b=\!MPgMPa3,#2]}}%
+ \def\handleMPcmykcolor{\normalexpanded{\noexpand\defineglobalcolor[#1][c=\!MPgMPa1,m=\!MPgMPa2,y=\!MPgMPa3,k=\!MPgMPa4,#2]}}%
\processMPgraphic{#3}%
\stopnointerference}
@@ -1083,21 +1166,19 @@
\def\dousestaticMPfigure[#1][#2]%
{\ifsecondargument
- \scale[#2]{\reuseMPgraphic{#1@S@}}%
+ \scale[#2]{\reuseMPgraphic{\@@MPG#1@S@}}%
\else
- \reuseMPgraphic{#1@S@}%
+ \reuseMPgraphic{\@@MPG#1@S@}%
\fi}
\def\startstaticMPfigure#1#2\stopstaticMPfigure
- {\startreusableMPgraphic{static:#1}#2\stopreusableMPgraphic}
+ {\startreusableMPgraphic{\@@MPG#1@S@}#2\stopreusableMPgraphic}
\long\def\startstaticMPgraphic
- {\blabelgroup
- \dodoublegroupempty\dostartstaticMPgraphic}
+ {\dodoublegroupempty\dostartstaticMPgraphic}
\long\def\dostartstaticMPgraphic#1#2#3\stopstaticMPgraphic
- {\long\setgvalue{\@@MPG#1@S@}{\handlereusableMPgraphic{#1}{#2}{#3}}%
- \elabelgroup}
+ {\long\setgvalue{\@@MPG#1@S@}{\handlereusableMPgraphic{#1}{#2}{#3}}}
%D New:
@@ -1109,16 +1190,85 @@
_special_div_ := 1000\ifconditional\manyMPspecials0\fi ;
\to \MPextensions
-%D Needed (will become default):
+%D Needed too.
-\prependtoks
- \resetlanguagespecifics
+\let\initializeMPgraphics\relax
+
+%D Goody for preventing overflows:
+
+\def\MPdivten[#1]{\withoutpt\the\dimexpr#1pt/10\relax}
+
+%D There is no way to distinguish the black color that you get when
+%D you issue a \type {draw} without color specification from a color
+%D that has an explicit black specification unless you set the
+%D variable \type {defaultcolormodel} to 1. Hoewever, in that case
+%D you cannot distinguish that draw from one with a \type
+%D {withoutcolor} specification. This means that we have to provide
+%D multiple variants of inheritance.
+%D
+%D In any case we need to tell the converter what the inherited color
+%D is to start with. Case~3 is kind of unpredictable as it closely
+%D relates to the order in which paths are flushed. If you want to
+%Dinherit automatically from the surrounding, you can best stick to
+%D variant 1. Variant 0 (an isolated graphic) is the default.
+%D
+%D \startbuffer
+%D \startuseMPgraphic{test}
+%D drawoptions(withpen pencircle scaled 1pt) ;
+%D def shift_cp = currentpicture := currentpicture shifted (-15pt,0) ; enddef ;
+%D draw fullcircle scaled 10pt withoutcolor ; shift_cp ;
+%D fill fullcircle scaled 10pt ; shift_cp ;
+%D draw fullcircle scaled 10pt withoutcolor ; shift_cp ;
+%D fill fullcircle scaled 10pt withcolor red ; shift_cp ;
+%D draw fullcircle scaled 10pt withoutcolor ; shift_cp ;
+%D fill fullcircle scaled 10pt ; shift_cp ;
+%D \stopuseMPgraphic
+%D
+%D \starttabulate
+%D \NC 0\quad \NC \chardef\MPcolormethod0 \green XX\quad \useMPgraphic{test}\quad XX \NC \NR
+%D \NC 1\quad \NC \chardef\MPcolormethod1 \green XX\quad \useMPgraphic{test}\quad XX \NC \NR
+%D \NC 2\quad \NC \chardef\MPcolormethod2 \green XX\quad \useMPgraphic{test}\quad XX \NC \NR
+%D \NC 3\quad \NC \chardef\MPcolormethod3 \green XX\quad \useMPgraphic{test}\quad XX \NC \NR
+%D \stoptabulate
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+
+\chardef\MPcolormethod\zerocount
+
+% can be faster, just
+
+\appendtoks
+ \ctxlua{metapost.set_outer_color(\number\MPcolormethod,\number\currentcolormodel,\number\dogetattribute{color},\number\dogetattribute{transparency})}%
\to \everyMPgraphic
-%D Needed too.
+\startMPinitializations
+ defaultcolormodel := \ifcase\MPcolormethod1\or1\or3\else3\fi;
+\stopMPinitializations
-\let\initializeMPgraphics\relax
+%D \macros
+%D {\setupMPgraphics}
+%D
+%D Here is a generic setup command:
+
+\newtoks \everysetupMPgraphics
+
+\def\setupMPgraphics[#1]%
+ {\getparameters[\??mp][#1]%
+ \the\everysetupMPgraphics}
+
+%D Here we hook in the outer color. When \type {color} is set to \type
+%D {global} we get the outer color automatically. If you change this
+%D setting, you should do it grouped in order not to make other graphics
+%D behave in unexpected ways.
+
+\appendtoks
+ \doifelse\@@mpcolor\v!global{\chardef\MPcolormethod\plusone}{\chardef\MPcolormethod\zerocount}%
+\to \everysetupMPgraphics
+
+\setupMPgraphics
+ [\c!color=\v!local]
-% Done.
+%D Done.
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/meta-ini.tex b/Master/texmf-dist/tex/context/base/meta-ini.tex
deleted file mode 100644
index e2f9fa1f9f7..00000000000
--- a/Master/texmf-dist/tex/context/base/meta-ini.tex
+++ /dev/null
@@ -1,1090 +0,0 @@
-%D \module
-%D [ file=meta-ini,
-%D version=1999.07.10,
-%D title=\METAPOST\ Graphics,
-%D subtitle=Initialization,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% currently the running color influences the mp graphic in
-% pdftex, but this will change [i.e. become optional]; one
-% problem is that pdf has no grouping with regards to the
-% color
-
-\writestatus{loading}{MetaPost Graphics / Initializations}
-
-\unprotect
-
-\startmessages dutch library: metapost
- title: metapost
- 1: metapost bibliotheek -- wordt geladen
-\stopmessages
-
-\startmessages english library: metapost
- title: metapost
- 1: loading metapost library --
-\stopmessages
-
-\startmessages german library: metapost
- title: metapost
- 1: loading metapost library --
-\stopmessages
-
-\startmessages czech library: metapost
- title: metapost
- 1: loading metapost library --
-\stopmessages
-
-\startmessages italian library: metapost
- title: metapost
- 1: caricamento della libreria metapost --
-\stopmessages
-
-\startmessages norwegian library: metapost
- title: metapost
- 1: metapost bibliotek -- blir lest inn
-\stopmessages
-
-\startmessages romanian library: metapost
- title: metapost
- 1: se incarca biblioteca metapost --
-\stopmessages
-
-\startmessages french library: metapost
- title: metapost
- 1: chargement de la bibliothèque metapost --
-\stopmessages
-
-%D This module extends the functionality of the support module
-%D \type {supp-mps}, the module that is responsible for
-%D \METAPOST\ inclusion in \CONTEXT. Some basic macros will be
-%D extended. Since some support is depends on \METAPOST\
-%D macros. so let's first preload a few auxiliary \METAPOST\
-%D files.
-
-\maxnofMPgraphics = 4000 % metafun disables the 4K boundary
-
-\startMPextensions
- if unknown context_tool: input mp-tool; fi;
- if unknown context_spec: input mp-spec; fi;
- if unknown context_grph: input mp-grph; fi;
-\stopMPextensions
-
-%D Since we want lables to follow the document settings, we
-%D also set the font related variables.
-
-\startMPinitializations % scale is not yet ok
- defaultfont:="\truefontname{Regular}";
- defaultscale:=\the\bodyfontsize/10pt;
-\stopMPinitializations
-
-%D In order to support fancy text features (like outline
-%D fonts), we set:
-
-\startMPextensions
- graphictextformat:="context";
- graphictextdirective "\the\everyMPTEXgraphic";
-\stopMPextensions
-
-% \startMPextensions
-% textextdirective "\the\everyMPTEXgraphic";
-% \stopMPextensions
-
-%D A signal that we're in combines \CONTEXT||\METAFUN mode:
-
-\startMPextensions
- string contextversion;
- contextversion:="\contextversion";
-\stopMPextensions
-
-%D Some safeguards:
-%D
-%D \starttyping
-%D \appendtoks \cleanupfeatures \to \everyMPgraphic
-%D \stoptyping
-%D
-%D No, we don't want that (else we loose UTF etc).
-
-%D Another one:
-
-\prependtoks \MPstaticgraphictrue \to \everyoverlay
-\prependtoks \MPstaticgraphictrue \to \everypagebody
-
-%D We save the number of graphics for the sake of \TEXEXEC.
-
-\newcounter\totalnofMPgraphics
-
-\def\thenofMPgraphics{\the\nofMPgraphics} % from supp-mps
-
-\appendtoks
- \savecurrentvalue\totalnofMPgraphics\thenofMPgraphics
-\to \everybye
-
-%D \macros
-%D {setupMPvariables}
-%D
-%D When we build collections of \METAPOST\ graphics, like
-%D background and buttons, the need for passing settings
-%D arises. By (mis|)|using the local prefix that belongs to
-%D \type {\framed}, we get a rather natural interface to
-%D backgrounds. To prevent conflicts, we will use the \type
-%D {-} in \METAPOST\ specific variables, like:
-%D
-%D \starttyping
-%D \setupMPvariables[meta:button][size=20pt]
-%D \stoptyping
-
-\def\@@meta{meta:}
-
-\def\setupMPvariables
- {\dodoubleempty\dosetupMPvariables}
-
-\def\dosetupMPvariables[#1][#2]%
- {\ifsecondargument
- \getrawparameters[#1:][#2]% brr, todo: [\@@meta#1:]
- \else
- \getrawparameters[\@@meta][#1]%
- \fi}
-
-\let\@@framed\s!unknown
-
-% \def\MPvariable#1%
-% {\getvalue{\ifundefined{\@@framed\@@meta#1}\else\@@framed\fi\@@meta#1}}
-
-\beginTEX
-
-\def\MPvariable#1%
- {\csname
- \@EA\ifx\csname\@@framed\@@meta#1\endcsname\relax\else\@@framed\fi\@@meta#1%
- \endcsname}
-
-\endTEX
-
-\beginETEX \ifcsname
-
-\def\MPvariable#1%
- {\csname
- \ifcsname\@@framed\@@meta#1\endcsname\@@framed\fi\@@meta#1%
- \endcsname}
-
-\endETEX
-
-\let\MPvar\MPvariable
-
-\let\setMPvariables\setupMPvariables
-
-\def\MPrawvar#1#2{\csname#1:#2\endcsname}
-
-%D \macros
-%D {startuniqueMPgraphic, uniqueMPgraphic}
-%D
-%D This macros is probably of most use to myself, since I like
-%D to use graphics that adapt themselves. The next \METAPOST\
-%D kind of graphic is both unique and reused when possible.
-%D
-%D \starttyping
-%D \defineoverlay[example][\uniqueMPgraphic{test}]
-%D
-%D \startuniqueMPgraphic {test}
-%D draw unitsquare xscaled \overlaywidth yscaled \overlayheight ;
-%D \stopuniqueMPgraphic
-%D \stoptyping
-
-%D For educational purposes, we show the original version
-%D first. This one used a rather simple method for determining
-%D the uniqueness.
-%D
-%D \starttyping
-%D \long\def\startuniqueMPgraphic#1#2\stopuniqueMPgraphic%
-%D {\setvalue{\@@MPG#1}%
-%D {\startreusableMPgraphic{\overlaystamp:#1}#2\stopreusableMPgraphic
-%D \reuseMPgraphic{\overlaystamp:#1}}}
-%D
-%D \def\uniqueMPgraphic#1%
-%D {\getvalue{\@@MPG#1}}
-%D \stoptyping
-
-%\def\overlaystamp % watch the \MPcolor, since colors can be redefined
-% {\overlaywidth:\overlayheight:\overlaydepth
-% :\MPcolor{\overlaycolor}:\MPcolor{\overlaylinecolor}}
-
-\def\overlaystamp % watch the \MPcolor, since colors can be redefined
- {\overlaywidth:\overlayheight:\overlaydepth
- :\MPcolor\overlaycolor:\MPcolor\overlaylinecolor}
-
-%D A better approach is to let additional variables play a role
-%D in determining the uniqueness. In the next macro, the
-%D second, optional, argument is used to guarantee the
-%D uniqueness, as well as prepare variables for passing them to
-%D \METAPOST.
-%D
-%D \starttyping
-%D \startuniqueMPgraphic{meta:hash}{gap,angle,...}
-%D \stoptyping
-%D
-%D The calling macro also accepts a second argument. For
-%D convenient use in overlay definitions, we use \type {{}}
-%D instead of \type {[]}.
-%D
-%D \starttyping
-%D \uniqueMPgraphic{meta:hash}{gap=10pt,angle=30}
-%D \stoptyping
-
-\long\def\handleuniqueMPgraphic#1#2#3%
- {\blabelgroup
- \def\@@meta{#1:}%
- \extendMPoverlaystamp{#2}% incl prepare
- \ifundefined{\@@MPG\overlaystamp:#1}%
- \enableincludeMPgraphics
- \startMPgraphic#3\stopMPgraphic
- \doifobjectssupportedelse\donothing\useMPboxfalse
- \ifuseMPbox
- \@EA\douseMPbox
- \else
- \@EA\nouseMPbox
- \fi {\@@MPG\overlaystamp:#1}%
- \fi
- \getvalue{\@@MPG\overlaystamp:#1}%
- \elabelgroup}
-
-\long\def\startuniqueMPgraphic
- {\blabelgroup
- \dodoublegroupempty\dostartuniqueMPgraphic}
-
-\long\def\dostartuniqueMPgraphic
- {\obeyMPlines
- \dodostartuniqueMPgraphic}
-
-\long\def\dodostartuniqueMPgraphic#1#2#3\stopuniqueMPgraphic%
- {\long\setgvalue{\@@MPG#1}{\handleuniqueMPgraphic{#1}{#2}{#3}}%
- \elabelgroup}
-
-\unexpanded\def\uniqueMPgraphic
- {\dodoublegroupempty\douniqueMPgraphic}
-
-\def\douniqueMPgraphic#1#2%
- {\blabelgroup
- \setupMPvariables[#1][#2]%
- \getvalue{\@@MPG#1}{}%
- \elabelgroup}
-
-\let\stopuniqueMPcode \relax % so that we can use it in \expanded
-
-\long\def\handleuseMPgraphic#1#2#3%
- {\blabelgroup
- \def\@@meta{#1:}%
- \prepareMPvariables{#2}%
- \enableincludeMPgraphics
- \startMPgraphic#3\stopMPgraphic
- \ifMPrun \else % see mfun-004 : processing buffer
- \loadMPgraphic{\MPgraphicfile.\the\currentMPgraphic}{}%
- \placeMPgraphic
- \fi
- \deallocateMPslot\currentMPgraphic
- \elabelgroup}
-
-\long\def\startuseMPgraphic
- {\blabelgroup
- \dodoublegroupempty\dostartuseMPgraphic}
-
-\long\def\dostartuseMPgraphic
- {\obeyMPlines
- \dodostartuseMPgraphic}
-
-\long\def\dodostartuseMPgraphic#1#2#3\stopuseMPgraphic
- {\long\setgvalue{\@@MPG#1}{\handleuseMPgraphic{#1}{#2}{#3}}%
- \elabelgroup}
-
-\long\def\startusableMPgraphic % redundant but handy
- {\blabelgroup
- \dodoublegroupempty\dostartusableMPgraphic}
-
-\long\def\dostartusableMPgraphic % redundant but handy
- {\obeyMPlines
- \dodostartusableMPgraphic}
-
-\long\def\dodostartusableMPgraphic#1#2#3\stopusableMPgraphic
- {\long\setgvalue{\@@MPG#1}{\handleuseMPgraphic{#1}{#2}{#3}}%
- \elabelgroup}
-
-\long\def\handlereusableMPgraphic#1#2#3%
- {\blabelgroup
- \def\@@meta{#1:}%
- \prepareMPvariables{#2}%
- \enableincludeMPgraphics
- \startMPgraphic#3\stopMPgraphic
- \doifobjectssupportedelse\donothing\useMPboxfalse
- \ifuseMPbox
- \@EA\douseMPbox
- \else
- \@EA\nouseMPbox
- \fi {\@@MPG#1}%
- \getvalue{\@@MPG#1}%
- \elabelgroup}
-
-\long\def\startreusableMPgraphic
- {\blabelgroup
- \dodoublegroupempty\dostartreusableMPgraphic}
-
-\def\dostartreusableMPgraphic
- {\obeyMPlines
- \dodostartreusableMPgraphic}
-
-\long\def\dodostartreusableMPgraphic#1#2#3\stopreusableMPgraphic
- {\long\setgvalue{\@@MPG#1}{\handlereusableMPgraphic{#1}{#2}{#3}}%
- \elabelgroup}
-
-\unexpanded\def\useMPgraphic
- {\dodoublegroupempty\douseMPgraphic}
-
-\def\douseMPgraphic#1#2%
- {\blabelgroup
- \setupMPvariables[#1][#2]%
- \getvalue{\@@MPG#1}{}%
- \elabelgroup}
-
-\let\reuseMPgraphic\useMPgraphic
-
-\let\stopuseMPcode \relax % so that we can use it in \expanded
-\let\stopusableMPcode \relax % so that we can use it in \expanded
-\let\stopreusableMPcode \relax % so that we can use it in \expanded
-\let\stopuniqueMPcode \relax % so that we can use it in \expanded
-
-\def\enableincludeMPgraphics
- {\let\handleuseMPgraphic \thirdofthreearguments
- \let\handlereusableMPgraphic\thirdofthreearguments}
-
-% todo: each code/page/buffer a var class
-
-%D \macros
-%D {startuniqueMPpagegraphic,uniqueMPpagegraphic}
-%D
-%D Experimental.
-
-\def\MPpageprefix{\doifoddpageelse oe:}
-
-\def\overlaypagestamp
- {\MPpageprefix\overlaywidth:\overlayheight:\overlaydepth
- :\MPcolor\overlaycolor:\MPcolor\overlaylinecolor}
-
-\long\def\startuniqueMPpagegraphic
- {\blabelgroup
- \dodoublegroupempty\dostartuniqueMPpagegraphic}
-
-\long\def\dostartuniqueMPpagegraphic
- {\obeyMPlines
- \dodostartuniqueMPpagegraphic}
-
-\long\def\dodostartuniqueMPpagegraphic#1#2#3\stopuniqueMPpagegraphic
- {\long\setgvalue{\@@MPG o:#1}{\handleuniqueMPgraphic{o:#1}{#2}{#3}}%
- \long\setgvalue{\@@MPG e:#1}{\handleuniqueMPgraphic{e:#1}{#2}{#3}}%
- \elabelgroup}
-
-\unexpanded\def\uniqueMPpagegraphic
- {\dodoublegroupempty\douniqueMPpagegraphic}
-
-% \def\douniqueMPpagegraphic#1#2%
-% {\blabelgroup
-% \let\overlaystamp\overlaypagestamp
-% \setupMPvariables[#1][#2]%
-% \getvalue{\@@MPG\MPpageprefix#1}{}%
-% \elabelgroup}
-
-\def\douniqueMPpagegraphic#1#2%
- {\blabelgroup
- \let\overlaystamp\overlaypagestamp
- \setupMPvariables[\MPpageprefix#1][#2]% prefix is new here
- \getvalue{\@@MPG\MPpageprefix#1}{}%
- \elabelgroup}
-
-%D One way of defining a stamp is:
-%D
-%D \starttyping
-%D \def\extendMPoverlaystamp#1%
-%D {\def\docommand##1%
-%D {\edef\overlaystamp{\overlaystamp:\MPvariable{##1}}}%
-%D \processcommalist[#1]\docommand}
-%D \stoptyping
-
-%D Since we need to feed \METAPOST\ with expanded dimensions,
-%D we introduce a dedicated expansion engine.
-
-\def\prepareMPvariable#1%
- {\ifundefined{\@@framed\@@meta#1}%
- \doprepareMPvariable{\@@meta#1}%
- \else
- \doprepareMPvariable{\@@framed\@@meta#1}%
- \fi}
-
-% \startlines
-% \def\xxx{\lineheight} \doprepareMPvariable{xxx} \xxx
-% \def\xxx{2pt} \doprepareMPvariable{xxx} \xxx
-% \def\xxx{2} \doprepareMPvariable{xxx} \xxx
-% \def\xxx{\scratchcounter} \doprepareMPvariable{xxx} \xxx
-% \def\xxx{red} \doprepareMPvariable{xxx} \xxx
-% \def\xxx{0.4} \doprepareMPvariable{xxx} \xxx
-% \stoplines
-
-\def\doprepareMPvariable#1%
- {\edef\theMPvariable{\getvalue{#1}}%
- \doifelsenothing\theMPvariable
- {\setevalue{#1}{\MPcolor{black}}}
- {\convertcommand\theMPvariable\to\ascii % otherwise problems
- \doifcolorelse \ascii % with 2\bodyfontsize
- {\setevalue{#1}{\MPcolor\theMPvariable}}
- {% can be aux macro
- \setbox\scratchbox\hbox{\scratchdimen\theMPvariable sp}%
- \ifdim\wd\scratchbox=\zeropoint
- % \scratchcounter\theMPvariable
- % \setevalue{#1}{\the\scratchcounter}%
- % also accepts 0.number :
- \setevalue{#1}{\number\theMPvariable}%
- \else
- \scratchdimen\theMPvariable
- \setevalue{#1}{\the\scratchdimen}%
- \fi}}}
-
-%D We redefine \type {\extendMPoverlaystamp} to preprocess
-%D variables using \type {\prepareMPvariable}.
-
-\def\doextendMPoverlaystamp#1%
- {\prepareMPvariable{#1}%
- \edef\overlaystamp{\overlaystamp:\MPvariable{#1}}}
-
-\def\extendMPoverlaystamp#1%
- {\processcommalist[#1]\doextendMPoverlaystamp}
-
-\def\prepareMPvariables#1%
- {\processcommalist[#1]\prepareMPvariable}
-
-%D \macros
-%D {MPdatafile}
-%D
-%D We redefine a macro from \type {supp-mps.tex}:
-
-\def\MPdatafile
- {\bufferprefix mpd-\the\currentMPgraphic.mpd}
-
-%D \macros
-%D {MPrunfile}
-%D
-%D This one is more abstract and does not assume knowledge
-%D of buffer prefixes.
-
-\def\MPrunfile#1%
- {\bufferprefix mprun.#1}
-
-%D We also have to make sure that \METAPOST\ knows this:
-
-\startMPextensions
- if not known _data_prefix_:
- string _data_prefix_,_data_suffix_;
- fi;
- _data_prefix_:="\bufferprefix mpd-";
- _data_suffix_:=".mpd";
-\stopMPextensions
-
-%D \macros
-%D {getMPdata}
-%D
-%D The current data is loaded with:
-
-\def\getMPdata
- {\startreadingfile
- \readlocfile\MPdatafile\donothing\donothing
- \stopreadingfile}
-
-%D When we collect graphics in one file, we run into
-%D troubles, since \METAPOST\ has a built in limit (of 4)
-%D on the number of files it can handle. It's therefore
-%D better to collect all data in one file and filter it.
-
-\def\getMPdata
- {\long\def\MPdata##1##2%
- {\ifnum##1=\currentMPgraphic\relax##2\fi}%
- \startreadingfile
- \readlocfile{\MPgraphicfile.mpd}\donothing\donothing
- \stopreadingfile}
-
-%D We have to enable this mechanism with:
-
-\startMPextensions
- boolean collapse_data; collapse_data:=true;
- _data_suffix_:=".mpd"; % overloads previous one
-\stopMPextensions
-
-%D For the moment, the next one is a private macro:
-
-\def\processMPbuffer
- {\dosingleempty\doprocessMPbuffer}
-
-\def\doprocessMPbuffer[#1]%
- {\doifelsenothing{#1}
- {\doprocessMPbuffer[\jobname]}
- {\bgroup
- \setnormalcatcodes
- \obeyMPlines
- %\let\par\empty % oeps, this makes dvi mode graphics hang when not found
- \!!toksa\emptytoks
- \def\copyMPbufferline{\expandafter\appendtoks\fileline\to\!!toksa}%
- \def\dodoprocessMPbuffer##1%
- {\doprocessfile\scratchread{\TEXbufferfile{##1}}\copyMPbufferline}%
- \processcommalist[#1]\dodoprocessMPbuffer
- \@EA\startMPcode\the\!!toksa\stopMPcode % more efficient
- \egroup}}
-
-\def\runMPbuffer
- {\dosingleempty\dorunMPbuffer}
-
-\def\dorunMPbuffer[#1]% processing only
- {{\MPruntrue\doprocessMPbuffer[#1]}}
-
-%D \macros
-%D {startMPenvironment, resetMPenvironment}
-%D
-%D In order to synchronize the main \TEX\ run and the runs
-%D local to \METAPOST, environments can be passed.
-
-\ifx\everyMPTEXgraphic\undefined
- \newtoks\everyMPTEXgraphic
-\fi
-
-%D A more general way of passing environments is:
-
-% ok but introduces \relax's
-%
-% \def\startMPenvironment % second arg gobbles spaces, so
-% {\dodoubleempty\dostartMPenvironment} % that reset gives \emptytoks
-%
-% \long\def\dostartMPenvironment[#1][#2]#3\stopMPenvironment%
-% {\doif{#1}\s!reset\resetMPenvironment % reset mp toks
-% \doif{#1}\v!globaal{#3}% % use in main doc too
-% \doif{#1}+{#3}% % use in main doc too
-% \convertargument#3\to\ascii
-% \expandafter\appendtoks\ascii\to\everyMPTEXgraphic}
-
-\def\startMPenvironment % second arg gobbles spaces, so that reset gives \emptytoks
- {\bgroup
- \catcode`\^^M=\@@space
- \dodoubleempty\dostartMPenvironment}
-
-\long\def\dostartMPenvironment[#1][#2]#3\stopMPenvironment
- {\egroup
- \doif{#1}\s!reset\resetMPenvironment % reset mp toks
- \doif{#1}\v!global{#3}% % use in main doc too
- \doif{#1}+{#3}% % use in main doc too
- \convertargument#3\to\ascii
- \expandafter\appendtoks\ascii\to\everyMPTEXgraphic}
-
-\def\resetMPenvironment
- {\everyMPTEXgraphic\emptytoks % = is really needed !
- \startMPenvironment
- \global\loadfontfileoncetrue
- \stopMPenvironment}
-
-\resetMPenvironment
-
-\def\useMPenvironmentbuffer[#1]%
- {\expanded{\startMPenvironment\noexpand\readfile{\TEXbufferfile{\jobname}}{}{}}\stopMPenvironment}
-
-\useMPenvironmentbuffer[mp]
-
-%D This command takes \type {[reset]} as optional
-%D argument.
-%D
-%D \starttyping
-%D \startMPenvironment
-%D \setupbodyfont[pos,14.4pt]
-%D \stopMPenvironment
-%D
-%D \startMPcode
-%D draw btex \sl Hans Hagen etex scaled 5 ;
-%D \stopMPcode
-%D \stoptyping
-%D
-%D The \type {\resetMPenvironment} is a quick way to erase
-%D the token list.
-%D
-%D You should be aware of independencies. For instance, if you use a font
-%D in a graphic that is not used in the main document, you need to load the
-%D typescript at the outer level (either directly or by using the global
-%D option).
-%D
-%D \starttyping
-%D \usetypescript[palatino][texnansi]
-%D
-%D \startMPenvironment
-%D \usetypescript[palatino][texnansi]
-%D \enableregime[utf]
-%D \setupbodyfont[palatino]
-%D \stopMPenvironment
-%D
-%D \startMPpage
-%D draw btex aap‒noot coördinatie – één etex ;
-%D \stopMPpage
-%D \stoptyping
-
-%D We don't want spurious files, do we?
-
-%\def\initializeMPgraphics
-% {%\ifx\bufferprefix\empty \else
-% \immediate\openout\MPwrite\MPgraphicfile.mp
-% \immediate\write\MPwrite{end.}%
-% \immediate\closeout\MPwrite
-% }%\fi}
-
-% strange :
-
-% \def\initializeMPgraphicfile
-% {\bgroup
-% \doinitializeMPgraphicfile
-% \MPruntrue
-% \doinitializeMPgraphicfile
-% \egroup}
-
-% \def\doinitializeMPgraphicfile
-% {\immediate\openout\scratchwrite\MPgraphicfile.mp
-% \immediate\write\scratchwrite{end.}%
-% \immediate\closeout\scratchwrite}
-
-\def\initializeMPgraphicfile
- {\immediate\openout\scratchwrite\MPgraphicfile.mp
- \immediate\write\scratchwrite{end.}%
- \immediate\closeout\scratchwrite}
-
-\def\initializeMPgraphics
- {\bgroup
- \initializeMPgraphicfile
- \ifx\bufferprefix\empty\else
- \let\bufferprefix\empty
- \initializeMPgraphicfile
- \fi
- \egroup}
-
-%D Loading specific \METAPOST\ related definitions is
-%D accomplished by:
-
-\def\douseMPlibrary#1%
- {\ifundefined{\c!file\f!javascriptprefix#1}%
- \letvalueempty{\c!file\f!javascriptprefix#1}%
- \makeshortfilename[\truefilename{\f!metapostprefix#1}]%
- \startreadingfile
- \readsysfile\shortfilename{\showmessage\m!metapost1{#1}}\donothing
- \stopreadingfile
- \fi}
-
-\def\useMPlibrary[#1]%
- {\processcommalist[#1]\douseMPlibrary}
-
-%D \macros
-%D {setMPtext, MPtext, MPstring, MPbetex}
-%D
-%D To be documented:
-%D
-%D \starttyping
-%D \setMPtext{identifier}{text}
-%D
-%D \MPtext {identifier}
-%D \MPstring{identifier}
-%D \MPbetex {identifier}
-%D \stoptyping
-
-\def\@@MPT{@MPT@}
-
-\def\forceMPTEXgraphic
- {\long\def\checkMPTEXgraphic##1{\global\MPTEXgraphictrue}}
-
-\def\setMPtext#1#2% todo : #1 must be made : safe
- {%\forceMPTEXgraphic
- \convertargument#2\to\ascii
- \dodoglobal\letvalue{\@@MPT#1}\ascii}
-
-% \def\MPtext #1{\getvalue{\@@MPT#1}}
-% \def\MPstring #1{"\getvalue{\@@MPT#1}"}
-% \def\MPbetex #1{btex \getvalue{\@@MPT#1} etex}
-
-\def\MPtext #1{\executeifdefined{\@@MPT#1}\empty}
-\def\MPstring #1{"\executeifdefined{\@@MPT#1}\empty"}
-\def\MPbetex #1{btex \executeifdefined{\@@MPT#1}\empty\space etex}
-
-%D Unfortunately \METAPOST\ does not have \CMYK\ support
-%D built in, but by means of specials we can supply the
-%D information needed to handle them naturaly.
-
-\newif\ifMPcmykcolors \MPcmykcolorstrue
-\newif\ifMPspotcolors \MPspotcolorstrue
-
-\startMPinitializations
- cmykcolors:=\ifMPcmykcolors true\else false\fi;
- spotcolors:=\ifMPspotcolors true\else false\fi;
-\stopMPinitializations
-
-%D In order to communicate conveniently with the \TEX\
-%D engine, we introduce some typesetting variables.
-
-% todo : backgroundoffsets
-
-\startMPextensions
- color OverlayColor,OverlayLineColor;
-\stopMPextensions
-
-\startMPinitializations
- OverlayWidth:=\overlaywidth;
- OverlayHeight:=\overlayheight;
- OverlayDepth:=\overlayheight;
- OverlayColor:=\MPcolor{\overlaycolor};
- OverlayLineWidth:=\overlaylinewidth;
- OverlayLineColor:=\MPcolor{\overlaylinecolor};
- %
- BaseLineSkip:=\the\baselineskip;
- LineHeight:=\the\baselineskip;
- BodyFontSize:=\the\bodyfontsize;
- %
- TopSkip:=\the\topskip;
- StrutHeight:=\strutheight;
- StrutDepth:=\strutdepth;
- %
- CurrentWidth:=\the\hsize;
- CurrentHeight:=\the\vsize;
- %
- EmWidth:=\the\emwidth;
- ExHeight:=\the\exheight;
- %
- PageNumber:=\the\pageno;
- RealPageNumber:=\the\realpageno;
- LastPageNumber:= lastpage;
-\stopMPinitializations
-
-\appendtoks
- \disablediscretionaries
- \disablecompoundcharacters
-\to\everyMPgraphic
-
-\appendtoks
- \expanded{\definecolor[currentcolor][\currentcolorname]}%
-\to \everyMPgraphic
-
-\appendtoks
- \baselineskip1\baselineskip
- \lineheight 1\lineheight
- \topskip 1\topskip
-\to \everyMPgraphic
-
-%D Alas, the prologue settings differ per driver.
-
-\ifx\undefined\MPprologues \def\MPprologues{0} \fi
-
-\startMPinitializations
- prologues:=\MPprologues;
- mpprocset:=1;
-\stopMPinitializations
-
-\appendtoks
- \def\MPprologues{0}%
- \def\MPOSTdriver{dvips}%
-\to \everyresetspecials
-
-%D \macros
-%D {PDFMPformoffset}
-%D
-%D In \PDF, forms are clipped and therefore we have to take
-%D precautions to get this right. Since this is related to
-%D objects, we use the same offset as used there.
-
-\def\PDFMPformoffset{\objectoffset}
-
-%D \macros
-%D {insertMPfile}
-%D
-%D Bypassing the special driver and figure mechanism is not
-%D that nice but saves upto 5\% time in embedding \METAPOST\
-%D graphics by using the low level \PDF\ converter directly,
-%D given of course that we use \PDFTEX. As a result we need to
-%D fool around with the object trigger.
-
-\newtoks\everyinsertMPfile
-
-%D First we present the reasonable fast alternative that we
-%D happily used for some time.
-%D
-%D \starttyping
-%D \def\insertMPfile#1#2%
-%D {\ifx\undefined\externalfigure
-%D \message{[insert file #1 here]}%
-%D \else
-%D \bgroup
-%D \the\everyinsertMPfile
-%D \externalfigure
-%D [#1]
-%D [\c!type=\c!mps,\c!object=\v!no,%
-%D \c!symbol=\v!yes,\c!reset=\v!yes,%
-%D \c!maxwidth=,\c!maxheight=,%
-%D \c!frame=\v!off,\c!background=,%
-%D #2]%
-%D \egroup
-%D \fi}
-%D \stoptyping
-%D
-%D However, on a 1 Gig Pentium, the next alternative saves
-%D us 20 seconds run time for the 300 page \METAFUN\ manual:
-
-\let\insertMPfileARG\insertMPfile
-
-\def\insertMPfile#1#2% in context #2 is empty
- {\doifelsenothing{#2}{\doinsertMPfile{#1}}{\insertMPfileARG{#1}{#2}}}
-
-\def\includeMPasEPS#1% untested !!
- {\bgroup
- \message{[MP as EPS #1]}%
- \the\everyinsertMPfile
- \dogetEPSboundingbox{#1}\!!widtha\!!heighta\!!widthb\!!heightb
- \setbox\scratchbox\vbox to \!!heightb
- {\vfill
- \let \@@DriverImageType \c!mps
- \def \@@DriverImageFile {#1}%
- \edef\@@DriverImageWidth {\the\!!widthb }%
- \edef\@@DriverImageHeight{\the\!!heightb}%
- \doinsertfile}%
- \wd\scratchbox\!!widthb
- \dp\scratchbox\zeropoint
- \box\scratchbox
- \egroup}
-
-\def\includeMPasPDF#1%
- {\bgroup
- \the\everyinsertMPfile
- \ifinobject \else \chardef\makeMPintoPDFobject\plustwo \fi % when needed
- \convertMPtoPDF{#1}{1}{1}% no \plusone !
- \egroup}
-
-%D So, using a low level approach (thereby avoiding the slower
-%D figure analysis macros) pays off. This kind of
-%D optimizations are a bit tricky since we must make sure that
-%D special resources end up in the (PDF) files. Because the
-%D \METAPOST\ to \PDF\ can handle objects itself, it is not
-%D that complicated.
-
-%D We hook a couple of initializations into the graphic
-%D macros.
-
-\appendtoks
- \let\figuretypes\c!mps
- \runutilityfilefalse
- \consultutilityfilefalse
-\to \everyinsertMPfile
-
-%D One more: (still needed?)
-
-\startMPextensions
- def initialize_form_numbers =
- do_initialize_numbers;
- enddef;
-\stopMPextensions
-
-\startMPinitializations
- HSize:=\the\hsize ;
- VSize:=\the\vsize ;
-\stopMPinitializations
-
-\startMPextensions
- vardef ForegroundBox =
- unitsquare xysized(HSize,VSize)
- enddef ;
- vardef PageFraction =
- if \lastpage>1: (\realfolio-1)/(\lastpage-1) else: 1 fi
- enddef ;
-\stopMPextensions
-
-%D And some more. These are not really needed since we
-%D don't use the normal figure inclusion macros any longer.
-
-\appendtoks
- \externalfigurepostprocessors\emptytoks % safeguard
-\to \everyinsertMPfile
-
-%D We also take care of disabling fancy figure features, that
-%D can terribly interfere when dealing with symbols,
-%D background graphics and running (postponed) graphics.
-%D You won't believe me if I tell you what funny side effects
-%D can occur. One took me over a day to uncover when
-%D processing the screen version of the \METAFUN\ manual.
-
-%D For my eyes only:
-
-\def\doifelseMPgraphic#1{\doifdefinedelse{\@@MPG#1}}
-
-%D \macros
-%D {startMPcolor}
-%D
-%D The following time consuming method uses \METAPOST\ to
-%D calculate a color. This enables a match between colors
-%D resulting from a complex calculation (e.g. for a title
-%D page) and those in the text.
-
-% \startuseMPgraphic{somecolors}
-% color c[] ; c[1] := .7[red,green] ; c[2] := .7[blue,yellow] ;
-% \stopuseMPgraphic
-
-% \startMPcolor[shade-1][t=.2,a=1]
-% \includeMPgraphic{somecolors} ; fill fullcircle withcolor c[1] ;
-% \stopMPcolor
-
-% \startMPcolor[shade-2][t=.2,a=1]
-% \includeMPgraphic{somecolors} ; fill fullcircle withcolor c[2] ;
-% \stopMPcolor
-
-% \blackrule[width=\hsize,height=4cm,color=shade-1]
-% \blackrule[width=\hsize,height=4cm,color=shade-2]
-
-\def\startMPcolor
- {\dodoubleempty\dostartMPcolor}
-
-\long\def\dostartMPcolor[#1][#2]#3\stopMPcolor % slow but sometimes handy
- {\startnointerference
- \def\handleMPgraycolor{\expanded{\defineglobalcolor[#1][s=\!MPgMPa1,#2]}}%
- \def\handleMPrgbcolor {\expanded{\defineglobalcolor[#1][r=\!MPgMPa1,g=\!MPgMPa2,b=\!MPgMPa3,#2]}}%
- \def\handleMPcmykcolor{\expanded{\defineglobalcolor[#1][c=\!MPgMPa1,m=\!MPgMPa2,y=\!MPgMPa3,k=\!MPgMPa4,#2]}}%
- \startMPcode#3\stopMPcode
- \stopnointerference}
-
-%D New:
-
-\definelayerpreset % no dx,dy - else nasty non-mp placement
- [mp]
- [\c!y=-\MPury bp,
- \c!x=\MPllx bp,
- \c!method=\v!fit]
-
-\definelayer
- [mp]
- [\c!preset=mp]
-
-%D Usage:
-%D
-%D \starttyping
-%D \defineproperty[one][layer][state=start]
-%D \defineproperty[two][layer][state=stop]
-%D
-%D \startuseMPgraphic{step-1}
-%D fill fullcircle scaled 10cm withcolor red ;
-%D \stopuseMPgraphic
-%D
-%D \startuseMPgraphic{step-2}
-%D fill fullcircle scaled 5cm withcolor green ;
-%D \stopuseMPgraphic
-%D
-%D \setlayer[mp]{\property[one]{\useMPgraphic{step-1}}}
-%D \setlayer[mp]{\property[two]{\useMPgraphic{step-2}}}
-%D
-%D \ruledhbox{\flushlayer[mp]}
-%D \stoptyping
-%D
-%D Reusing graphics is also possible (now):
-%D
-%D \starttyping
-%D \startreusableMPgraphic{axis}
-%D tickstep := 1cm ; ticklength := 2mm ;
-%D drawticks unitsquare xscaled 4cm yscaled 3cm shifted (-1cm,-1cm) ;
-%D tickstep := tickstep/2 ; ticklength := ticklength/2 ;
-%D drawticks unitsquare xscaled 4cm yscaled 3cm shifted (-1cm,-1cm) ;
-%D \stopreusableMPgraphic
-%D
-%D \startuseMPgraphic{demo}
-%D drawpoint "1cm,1.5cm" ;
-%D \stopuseMPgraphic
-%D
-%D \definelayer[mp][preset=mp]
-%D \setlayer[mp]{\reuseMPgraphic{axis}}
-%D \setlayer[mp]{\useMPgraphic{demo}}
-%D \ruledhbox{\flushlayer[mp]}
-%D \stoptyping
-
-%D \macros
-%D {startstaticMPfigure,useMPstaticfigure}
-%D
-%D Static figures are processed only when there has been
-%D something changed. Here is Aditya Mahajan's testcase:
-%D
-%D \startbuffer
-%D \startstaticMPfigure{circle}
-%D fill fullcircle scaled 1cm withcolor blue;
-%D \stopstaticMPfigure
-%D
-%D \startstaticMPfigure{axis}
-%D drawarrow (0,0)--(2cm,0) ;
-%D drawarrow (0,0)--(0,2cm) ;
-%D label.llft(textext("(0,0)") ,origin) ;
-%D \stopstaticMPfigure
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-
-\def\usestaticMPfigure[#1]%
- {\dodoubleempty\externalfigure[\jobname-#1.pdf]}
-
-\def\startstaticMPfigure
- {\begingroup
- \obeyMPlines
- \dostartstaticMPfigure}
-
-\def\dostartstaticMPfigure#1#2\stopstaticMPfigure
- {\startstaticMPgraphic{\jobname-#1}#2\stopstaticMPgraphic
- \endgroup}
-
-% faster, but more tricky
-%
-% \def\startstaticMPfigure
-% {\doifmodeelse{*\v!first}
-% {\begingroup
-% \obeyMPlines
-% \dostartstaticMPfigure}
-% {\gobbleuntil\stopstaticMPfigure}}
-%
-% \def\dostartstaticMPfigure#1#2\stopstaticMPfigure
-% {\startMPstaticgraphic{\jobname-#1}#2\stopMPstaticgraphic
-% % dirty trick, don't register, so no second main run of texexec:
-% \global\advance\nofMPgraphics \minusone
-% \endgroup}}
-
-%D New:
-
-% \appendtoks \closeMPgraphicfiles \to \everystoptext
-
-%D New:
-
-\newconditional\manyMPspecials % when set to true, > 1000 specials can be used
-
-\settrue \manyMPspecials % per 1/4/2006
-
-\prependtoks
- _special_div_ := 1000\ifconditional\manyMPspecials0\fi ;
-\to \MPextensions
-
-%D Needed (will become default):
-
-\prependtoks
- \resetlanguagespecifics
-\to \everyMPgraphic
-
-% Done.
-
-\protect \endinput
-
-%D Experimental:
-
-\appendtoks
- \ifrunMPgraphics \ifcase\systemcommandmode \or
- \runMPgraphicsfalse
- \fi \fi
-\to \everyjob
-
-% also:
-%
-% linecap := rounded ;
-% linejoin := rounded ;
-% drawoptions () ;
diff --git a/Master/texmf-dist/tex/context/base/meta-pag.tex b/Master/texmf-dist/tex/context/base/meta-pag.mkii
index 000e56a2eb5..000e56a2eb5 100644
--- a/Master/texmf-dist/tex/context/base/meta-pag.tex
+++ b/Master/texmf-dist/tex/context/base/meta-pag.mkii
diff --git a/Master/texmf-dist/tex/context/base/meta-pag.mkiv b/Master/texmf-dist/tex/context/base/meta-pag.mkiv
new file mode 100644
index 00000000000..ef3817721be
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/meta-pag.mkiv
@@ -0,0 +1,223 @@
+%D \module
+%D [ file=meta-pag,
+%D version=1999.07.10,
+%D title=\METAPOST\ Graphics,
+%D subtitle=Initialization,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D These definitions used to be part of the old \type
+%D {core-mps} file, later changed into \type {meta-ini}, but
+%D keeping them separate is cleaner.
+
+\writestatus{loading}{MetaPost Graphics / Page Data Management}
+
+\unprotect
+
+\startMPextensions
+ if unknown context_page: input mp-page; fi;
+\stopMPextensions
+
+%D The next few macros tell \METAPOST\ how the \CONTEXT\
+%D pagebody looks.
+
+\startMPextensions
+ boolean PageStateAvailable,OnRightPage,InPageBody;
+ PageStateAvailable:=true;
+\stopMPextensions
+
+\startMPinitializations
+ OnRightPage:=true;
+ InPageBody:=\ifinpagebody true \else false \fi;
+\stopMPinitializations
+
+\startMPinitializations
+ def LoadPageState =
+ OnRightPage:=\MPonrightpage;
+ OnOddPage:=\MPonoddpage;
+ RealPageNumber:=\the\realpageno;
+ PageNumber:=\the\pageno;
+ NOfPages:=\lastpage;
+ PaperHeight:=\the\paperheight;
+ PaperWidth:=\the\paperwidth;
+ PrintPaperHeight:=\the\printpaperheight;
+ PrintPaperWidth:=\the\printpaperwidth;
+ TopSpace:=\the\topspace;
+ BottomSpace:=\the\bottomspace;
+ BackSpace:=\the\backspace;
+ CutSpace:=\the\cutspace;
+ MakeupHeight:=\the\makeupheight;
+ MakeupWidth:=\the\makeupwidth;
+ TopHeight:=\the\topheight;
+ TopDistance:=\the\topdistance;
+ HeaderHeight:=\the\headerheight;
+ HeaderDistance:=\the\headerdistance;
+ TextHeight:=\the\textheight;
+ FooterDistance:=\the\footerdistance;
+ FooterHeight:=\the\footerheight;
+ BottomDistance:=\the\bottomdistance;
+ BottomHeight:=\the\bottomheight;
+ LeftEdgeWidth:=\the\leftedgewidth;
+ LeftEdgeDistance:=\the\leftedgedistance;
+ LeftMarginWidth:=\the\leftmarginwidth;
+ LeftMarginDistance:=\the\leftmargindistance;
+ TextWidth:=\the\textwidth ;
+ RightMarginDistance:=\the\rightmargindistance;
+ RightMarginWidth:=\the\rightmarginwidth;
+ RightEdgeDistance:=\the\rightedgedistance;
+ RightEdgeWidth:=\the\rightedgewidth;
+ InnerMarginDistance:=\the\innermargindistance;
+ InnerMarginWidth:=\the\innermarginwidth;
+ OuterMarginDistance:=\the\outermargindistance;
+ OuterMarginWidth:=\the\outermarginwidth;
+ InnerEdgeDistance:=\the\inneredgedistance;
+ InnerEdgeWidth:=\the\inneredgewidth;
+ OuterEdgeDistance:=\the\outeredgedistance;
+ OuterEdgeWidth:=\the\outeredgewidth;
+ PageOffset:=\the\pageoffset;
+ PageDepth:=\the\pagedepth;
+ LayoutColumns:=\the\layoutcolumns;
+ LayoutColumnDistance:=\the\layoutcolumndistance;
+ LayoutColumnWidth:=\the\layoutcolumnwidth;
+ enddef;
+\stopMPinitializations
+
+\def\MPonrightpage{true}
+\def\MPonoddpage {true}
+
+\def\freezeMPpagelayout
+ {\edef\MPonrightpage{\doifbothsides {tru}{tru}{fals}e}%
+ \edef\MPonoddpage {\doifoddpageelse {tru}{fals}e}}
+
+\let\freezeMPlayout\relax % obsolete
+
+%D We need to freeze the pagelayout before the backgrounds
+%D are build, because the overlay will temporarily become
+%D zero (overlay).
+
+\appendtoks
+ \freezeMPpagelayout
+\to \everybeforepagebody
+
+%D By freezing these value every graphic, we can use layout
+%D variables that change halfways a page, whatever use that
+%D has.
+
+\prependtoks
+ \calculatereducedvsizes % this is really needed
+ \freezeMPpagelayout
+ \freezeMPlayout % to be used grouped
+\to \everyMPgraphic
+
+%D The next feature provides information about for instance
+%D column positions. This is an experimental feature,
+%D introduced when we needed backgrounds in columns (fill||in
+%D questions as implemented in a private module).
+%D
+%D See \type {mp-page.mp} for the definition of the macros:
+%D
+%D \starttabulate[|tl|l|p|]
+%D \NC ResetTextAreas \NC no arguments \NC
+%D reset areas on page \NC \NR
+%D \NC RegisterTextArea \NC x, y, w, h \NC
+%D adds area to the list \NC \NR
+%D \NC TextAreaX,Y,W,H,XY,WH \NC x and/or y \NC
+%D reports offsets and dimensions \NC \NR
+%D \stoptabulate
+%D
+%D The \type {TextArea*} macros can be used to determine
+%D overlap.
+
+\newcount\currentMPtextareadata
+
+\newtoks\MPsavedtextareadata
+\newtoks\MPtextareadata
+\newtoks\MPlocaltextareadata
+
+% optimaliseren voor herhaling
+
+\def\registerMPtextarea#1%
+ {\ifpositioning
+ \bgroup
+ \global\advance\currentMPtextareadata\plusone
+ %\hpos{gbd:\the\currentMPtextareadata}{#1}%
+ \hpos{gbd:\the\currentMPtextareadata}%
+ {\iftracetextareas\boxrulewidth1.5pt\ruledhbox\fi{#1}}%
+ \edef\!!stringa{gbd:\the\currentMPtextareadata}%
+ \edef\!!stringa{RegisterTextArea(%
+ \MPx\!!stringa,\MPy\!!stringa,%
+ \MPw\!!stringa,\MPh\!!stringa,\MPd\!!stringa);}%
+ \@EA \doglobal \@EA \appendtoks \!!stringa \to \MPtextareadata
+ \egroup
+ \else
+ \hbox{#1}%
+ \fi}
+
+\def\registerMPlocaltextarea#1%
+ {\ifpositioning
+ \bgroup
+ \global\advance\currentMPtextareadata\plusone
+ %\hpos{gbd:\the\currentMPtextareadata}{#1}%
+ \hpos{gbd:\the\currentMPtextareadata}%
+ {\iftracetextareas\boxrulewidth3pt\ruledhbox\fi{#1}}%
+ \edef\!!stringa{gbd:\the\currentMPtextareadata}%
+ \edef\!!stringa{RegisterLocalTextArea(%
+ \MPx\!!stringa,\MPy\!!stringa,%
+ \MPw\!!stringa,\MPh\!!stringa,\MPd\!!stringa);}%
+ \global\MPlocaltextareadata\@EA{\!!stringa}%
+ \egroup
+ \else
+ \hbox{#1}%
+ \fi}
+
+% better, so that we can force a key and share with e.g. renumbering
+%
+% \let\namedtextarea\empty
+%
+% \def\registerMPlocaltextarea#1%
+% {\ifpositioning
+% \bgroup
+% \ifx\namedtextarea\empty
+% \global\advance\currentMPtextareadata\plusone
+% \edef\namedtextarea{gbd:\the\currentMPtextareadata}%
+% \fi
+% \hpos\namedtextarea{\iftracetextareas\boxrulewidth3pt\ruledhbox\fi{#1}}%
+% \edef\ascii{RegisterLocalTextArea(%
+% \MPx\namedtextarea,\MPy\namedtextarea,%
+% \MPw\namedtextarea,\MPh\namedtextarea,\MPd\namedtextarea);}%
+% \global\MPlocaltextareadata\@EA{\ascii}%
+% \egroup
+% \else
+% \hbox{#1}%
+% \fi}
+
+\def\resetMPlocaltextarea
+ {\global\MPlocaltextareadata\emptytoks}
+
+\startMPextensions
+ path PlainTextArea;
+\stopMPextensions
+
+\startMPinitializations
+ ResetTextAreas;
+ \the\MPsavedtextareadata;
+ SaveTextAreas;
+ ResetTextAreas;
+ \the\MPtextareadata;
+ \the\MPlocaltextareadata;
+ PlainTextArea:=boundingbox(\MPxy{text:\realfolio}--\MPxy{text:\realfolio}
+ shifted (\MPw{text:\realfolio},\MPh{text:\realfolio}));
+\stopMPinitializations
+
+\appendtoks
+ \global\MPsavedtextareadata\MPtextareadata
+ \global\MPtextareadata \emptytoks
+ \global\MPlocaltextareadata\emptytoks
+\to \everyshipout
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/meta-pdf.lua b/Master/texmf-dist/tex/context/base/meta-pdf.lua
index 648ff1afb59..056d1052f24 100644
--- a/Master/texmf-dist/tex/context/base/meta-pdf.lua
+++ b/Master/texmf-dist/tex/context/base/meta-pdf.lua
@@ -1,230 +1,113 @@
--- filename : meta-pdf.lua
--- comment : companion to meta-pdf.tex
--- author : Hans Hagen, PRAGMA-ADE, Hasselt NL
--- copyright: PRAGMA ADE / ConTeXt Development Team
--- license : see context related readme files
-
--- This is the third version. Version 1 converted to Lua code,
--- version 2 gsubbed the file into TeX code, and version 3 uses
--- the new lpeg functionality and streams the result into TeX.
-
--- We will move old stuff to edu.
+if not modules then modules = { } end modules ['meta-pdf'] = {
+ version = 1.001,
+ comment = "companion to meta-pdf.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
---~ old lpeg 0.4 lpeg 0.5
---~ 100 times test graphic 2.45 (T:1.07) 0.72 (T:0.24) 0.580 (0.560 no table) -- 0.54 optimized for one space (T:0.19)
---~ 100 times big graphic 10.44 4.30/3.35 nogb 2.914 (2.050 no table) -- 1.99 optimized for one space (T:0.85)
---~ 500 times test graphic T:1.29 T:1.16 (T:1.10 no table) -- T:1.10
+-- Finally we used an optimized version. The test code can be found in
+-- meta-pdh.lua but since we no longer want to overload functione we use
+-- more locals now. This module keeps changing as it is also a testbed.
-if not versions then versions = { } end versions['meta-pdf'] = 1.003
+local concat, format, gsub, find = table.concat, string.format, string.gsub, string.find
+local byte, round = string.byte, math.round
+local texsprint = tex.sprint
+local ctxcatcodes = tex.ctxcatcodes
-mptopdf = { }
-mptopdf.parsers = { }
-mptopdf.parser = 'none'
+local pdfrgbcode = lpdf.rgbcode
+local pdfcmykcode = lpdf.cmykcode
+local pdfgraycode = lpdf.graycode
+local pdfspotcode = lpdf.spotcode
+local pdftransparencycode = lpdf.transparencycode
+local pdffinishtransparencycode = lpdf.finishtransparencycode
-function mptopdf.reset()
- mptopdf.data = ""
- mptopdf.path = { }
- mptopdf.stack = { }
- mptopdf.texts = { }
- mptopdf.version = 0
- mptopdf.shortcuts = false
- mptopdf.resetpath()
-end
+mptopdf = { }
+mptopdf.n = 0
-function mptopdf.resetpath()
- mptopdf.stack.close = false
- mptopdf.stack.path = { }
- mptopdf.stack.concat = nil
- mptopdf.stack.special = false
-end
+local m_path, m_stack, m_texts, m_version, m_date, m_shortcuts = { }, { }, { }, 0, 0, false
-mptopdf.reset()
+local m_stack_close, m_stack_path, m_stack_concat = false, { }, nil
+local extra_path_code, ignore_path = nil, false
+local specials = { }
-function mptopdf.parsers.none()
- -- no parser set
+local function resetpath()
+ m_stack_close, m_stack_path, m_stack_concat = false, { }, nil
end
-function mptopdf.parse()
- mptopdf.parsers[mptopdf.parser]()
+local function resetall()
+ m_path, m_stack, m_texts, m_version, m_shortcuts = { }, { }, { }, 0, false
+ extra_path_code, ignore_path = nil, false
+ specials = { }
+ resetpath()
end
--- old code
-
-mptopdf.steps = { }
+resetall()
-mptopdf.descapes = {
- ['('] = "\\\\char40 ",
- [')'] = "\\\\char41 ",
- ['"'] = "\\\\char92 "
-}
+-- todo: collect and flush packed using pdfliteral node injection but we're
+-- in no hurry as this kind of conversion does not happen that often in mkiv
-function mptopdf.descape(str)
- str = str:gsub("\\(%d%d%d)",function(n)
- return "\\char" .. tonumber(n,8) .. " "
- end)
- return str:gsub("\\([%(%)\\])",mptopdf.descapes)
+local function pdfcode(str)
+ texsprint(ctxcatcodes,"\\pdfliteral{" .. str .. "}")
end
-function mptopdf.steps.descape(str)
- str = str:gsub("\\(%d%d%d)",function(n)
- return "\\\\char" .. tonumber(n,8) .. " "
- end)
- return str:gsub("\\([%(%)\\])",mptopdf.descapes)
+local function texcode(str)
+ texsprint(ctxcatcodes,str)
end
-function mptopdf.steps.strip() -- .3 per expr
- mptopdf.data = mptopdf.data:gsub("^(.-)%%+Page:.-%c+(.*)%s+%a+%s+%%+EOF.*$", function(preamble, graphic)
- local bbox = "0 0 0 0"
- for b in preamble:gmatch("%%%%%a+oundingBox: +(.-)%c+") do
- bbox = b
- end
- local name, version = preamble:gmatch("%%%%Creator: +(.-) +(.-) ")
- mptopdf.version = tostring(version or "0")
- if preamble:find("/hlw{0 dtransform") then
- mptopdf.shortcuts = true
+function mpscode(str)
+ if ignore_path then
+ pdfcode("h W n")
+ if extra_path_code then
+ pdfcode(extra_path_code)
+ extra_path_code = nil
end
- -- the boundingbox specification needs to come before data, well, not really
- return bbox .. " boundingbox\n" .. "\nbegindata\n" .. graphic .. "\nenddata\n"
- end, 1)
- mptopdf.data = mptopdf.data:gsub("%%%%MetaPostSpecials: +(.-)%c+", "%1 specials\n", 1)
- mptopdf.data = mptopdf.data:gsub("%%%%MetaPostSpecial: +(.-)%c+", "%1 special\n")
- mptopdf.data = mptopdf.data:gsub("%%.-%c+", "")
-end
-
-function mptopdf.steps.cleanup()
- if not mptopdf.shortcuts then
- mptopdf.data = mptopdf.data:gsub("gsave%s+fill%s+grestore%s+stroke", "both")
- mptopdf.data = mptopdf.data:gsub("([%d%.]+)%s+([%d%.]+)%s+dtransform%s+exch%s+truncate%s+exch%s+idtransform%s+pop%s+setlinewidth", function(wx,wy)
- if tonumber(wx) > 0 then return wx .. " setlinewidth" else return wy .. " setlinewidth" end
- end)
- mptopdf.data = mptopdf.data:gsub("([%d%.]+)%s+([%d%.]+)%s+dtransform%s+truncate%s+idtransform%s+setlinewidth%s+pop", function(wx,wy)
- if tonumber(wx) > 0 then return wx .. " setlinewidth" else return wy .. " setlinewidth" end
- end)
+ ignore_path = false
+ else
+ pdfcode(str)
end
end
-function mptopdf.steps.convert()
- mptopdf.data = mptopdf.data:gsub("%c%((.-)%) (.-) (.-) fshow", function(str,font,scale)
- mptopdf.texts[mptopdf.texts+1] = {mptopdf.steps.descape(str), font, scale}
- return "\n" .. #mptopdf.texts .. " textext"
- end)
- mptopdf.data = mptopdf.data:gsub("%[%s*(.-)%s*%]", function(str)
- return str:gsub("%s+"," ")
- end)
- local t
- mptopdf.data = mptopdf.data:gsub("%s*([^%a]-)%s*(%a+)", function(args,cmd)
- if cmd == "textext" then
- t = mptopdf.texts[tonumber(args)]
- return "mps.textext(" .. "\"" .. t[2] .. "\"," .. t[3] .. ",\"" .. t[1] .. "\")\n"
- else
- return "mps." .. cmd .. "(" .. args:gsub(" +",",") .. ")\n"
- end
- end)
-end
-
-function mptopdf.steps.process()
- assert(loadstring(mptopdf.data))() -- () runs the loaded chunk
-end
-
-function mptopdf.parsers.gsub()
- mptopdf.steps.strip()
- mptopdf.steps.cleanup()
- mptopdf.steps.convert()
- mptopdf.steps.process()
-end
-
--- end of old code
-
--- from lua to tex
-
-function mptopdf.pdfcode(str)
- tex.sprint(tex.ctxcatcodes,"\\PDFcode{" .. str .. "}")
-end
-
-function mptopdf.texcode(str)
- tex.sprint(tex.ctxcatcodes,str)
-end
-
-- auxiliary functions
-function mptopdf.flushconcat()
- if mptopdf.stack.concat then
- mptopdf.pdfcode(table.concat(mptopdf.stack.concat," ") .. " cm")
- mptopdf.stack.concat = nil
+local function flushconcat()
+ if m_stack_concat then
+ mpscode(concat(m_stack_concat," ") .. " cm")
+ m_stack_concat = nil
end
end
-function mptopdf.flushpath(cmd)
- if #mptopdf.stack.path > 0 then
+local function flushpath(cmd)
+ if #m_stack_path > 0 then
local path = { }
- if mptopdf.stack.concat then
- local sx, sy = mptopdf.stack.concat[1], mptopdf.stack.concat[4]
- local rx, ry = mptopdf.stack.concat[2], mptopdf.stack.concat[3]
- local tx, ty = mptopdf.stack.concat[5], mptopdf.stack.concat[6]
+ if m_stack_concat then
+ local sx, sy = m_stack_concat[1], m_stack_concat[4]
+ local rx, ry = m_stack_concat[2], m_stack_concat[3]
+ local tx, ty = m_stack_concat[5], m_stack_concat[6]
local d = (sx*sy) - (rx*ry)
- local function concat(px, py)
- return (sy*(px-tx)-ry*(py-ty))/d, (sx*(py-ty)-rx*(px-tx))/d
- end
- for _,v in ipairs(mptopdf.stack.path) do
- v[1],v[2] = concat(v[1],v[2])
+ for k=1,#m_stack_path do
+ local v = m_stack_path[k]
+ local px, py = v[1], v[2] ; v[1], v[2] = (sy*(px-tx)-ry*(py-ty))/d, (sx*(py-ty)-rx*(px-tx))/d -- mpconcat(v[1],v[2])
if #v == 7 then
- v[3],v[4] = concat(v[3],v[4])
- v[5],v[6] = concat(v[5],v[6])
+ local px, py = v[3], v[4] ; v[3], v[4] = (sy*(px-tx)-ry*(py-ty))/d, (sx*(py-ty)-rx*(px-tx))/d -- mpconcat(v[3],v[4])
+ local px, py = v[5], v[6] ; v[5], v[6] = (sy*(px-tx)-ry*(py-ty))/d, (sx*(py-ty)-rx*(px-tx))/d -- mpconcat(v[5],v[6])
end
- path[#path+1] = table.concat(v," ")
+ path[#path+1] = concat(v," ")
end
else
- for _,v in ipairs(mptopdf.stack.path) do
- path[#path+1] = table.concat(v," ")
+ for k=1,#m_stack_path do
+ path[#path+1] = concat(m_stack_path[k]," ")
end
end
- mptopdf.flushconcat()
- mptopdf.texcode("\\MPSpath{" .. table.concat(path," ") .. "}")
- if mptopdf.stack.close then
- mptopdf.texcode("\\MPScode{h " .. cmd .. "}")
+ flushconcat()
+ pdfcode(concat(path," "))
+ if m_stack_close then
+ mpscode("h " .. cmd)
else
- mptopdf.texcode("\\MPScode{" .. cmd .."}")
+ mpscode(cmd)
end
end
- mptopdf.resetpath()
-end
-
-if texmf and texmf.instance then
- function mptopdf.loaded(name)
- local ok, n
- mptopdf.reset()
- ok, mptopdf.data, n = input.loadbinfile(texmf.instance, name, 'tex') -- we need a binary load !
- return ok
- end
-else
- function mptopdf.loaded(name)
- local f = io.open(name, 'rb')
- if f then
- mptopdf.reset()
- mptopdf.data = f:read('*all')
- f:close()
- return true
- else
- return false
- end
- end
-end
-
-if not mptopdf.parse then
- function mptopdf.parse() end -- forward declaration
-end
-
-function mptopdf.convertmpstopdf(name)
- if mptopdf.loaded(name) then
- garbagecollector.push()
- input.starttiming(mptopdf)
- mptopdf.parse()
- mptopdf.reset()
- input.stoptiming(mptopdf)
- garbagecollector.pop()
- else
- tex.print("file " .. name .. " not found")
- end
+ resetpath()
end
-- mp interface
@@ -232,179 +115,246 @@ end
mps = mps or { }
function mps.creator(a, b, c)
- mptopdf.version = tonumber(b)
+ m_version = tonumber(b)
end
function mps.creationdate(a)
- mptopdf.date= a
+ m_date = a
end
function mps.newpath()
- mptopdf.stack.path = { }
+ m_stack_path = { }
end
function mps.boundingbox(llx, lly, urx, ury)
- mptopdf.texcode("\\MPSboundingbox{" .. llx .. "}{" .. lly .. "}{" .. urx .. "}{" .. ury .. "}")
+ texcode("\\MPSboundingbox{" .. llx .. "}{" .. lly .. "}{" .. urx .. "}{" .. ury .. "}")
end
function mps.moveto(x,y)
- mptopdf.stack.path[#mptopdf.stack.path+1] = {x,y,"m"}
+ m_stack_path[#m_stack_path+1] = {x,y,"m"}
end
function mps.curveto(ax, ay, bx, by, cx, cy)
- mptopdf.stack.path[#mptopdf.stack.path+1] = {ax,ay,bx,by,cx,cy,"c"}
+ m_stack_path[#m_stack_path+1] = {ax,ay,bx,by,cx,cy,"c"}
end
function mps.lineto(x,y)
- mptopdf.stack.path[#mptopdf.stack.path+1] = {x,y,"l"}
+ m_stack_path[#m_stack_path+1] = {x,y,"l"}
end
function mps.rlineto(x,y)
local dx, dy = 0, 0
- if #mptopdf.stack.path > 0 then
- dx, dy = mptopdf.stack.path[#mptopdf.stack.path][1], mptopdf.stack.path[#mptopdf.stack.path][2]
+ if #m_stack_path > 0 then
+ dx, dy = m_stack_path[#m_stack_path][1], m_stack_path[#m_stack_path][2]
end
- mptopdf.stack.path[#mptopdf.stack.path+1] = {dx,dy,"l"}
+ m_stack_path[#m_stack_path+1] = {dx,dy,"l"}
end
function mps.translate(tx,ty)
- mptopdf.pdfcode("1 0 0 0 1 " .. tx .. " " .. ty .. " cm")
+ mpscode("1 0 0 0 1 " .. tx .. " " .. ty .. " cm")
end
function mps.scale(sx,sy)
- mptopdf.stack.concat = {sx,0,0,sy,0,0}
+ m_stack_concat = {sx,0,0,sy,0,0}
end
function mps.concat(sx, rx, ry, sy, tx, ty)
- mptopdf.stack.concat = {sx,rx,ry,sy,tx,ty}
+ m_stack_concat = {sx,rx,ry,sy,tx,ty}
end
function mps.setlinejoin(d)
- mptopdf.pdfcode(d .. " j")
+ mpscode(d .. " j")
end
function mps.setlinecap(d)
- mptopdf.pdfcode(d .. " J")
+ mpscode(d .. " J")
end
function mps.setmiterlimit(d)
- mptopdf.pdfcode(d .. " M")
+ mpscode(d .. " M")
end
function mps.gsave()
- mptopdf.pdfcode("q")
+ mpscode("q")
end
function mps.grestore()
- mptopdf.pdfcode("Q")
+ mpscode("Q")
end
-function mps.setdash(...)
+function mps.setdash(...) -- can be made faster, operate on t = { ... }
local n = select("#",...)
- mptopdf.pdfcode("[" .. table.concat({...}," ",1,n-1) .. "] " .. select(n,...) .. " d")
+ mpscode("[" .. concat({...}," ",1,n-1) .. "] " .. select(n,...) .. " d")
end
function mps.resetdash()
- mptopdf.pdfcode("[ ] 0 d")
+ mpscode("[ ] 0 d")
end
function mps.setlinewidth(d)
- mptopdf.pdfcode(d .. " w")
+ mpscode(d .. " w")
end
function mps.closepath()
- mptopdf.stack.close = true
+ m_stack_close = true
end
function mps.fill()
- mptopdf.flushpath('f')
+ flushpath('f')
end
function mps.stroke()
- mptopdf.flushpath('S')
+ flushpath('S')
end
function mps.both()
- mptopdf.flushpath('B')
+ flushpath('B')
end
function mps.clip()
- mptopdf.flushpath('W n')
+ flushpath('W n')
end
function mps.textext(font, scale, str) -- old parser
local dx, dy = 0, 0
- if #mptopdf.stack.path > 0 then
- dx, dy = mptopdf.stack.path[1][1], mptopdf.stack.path[1][2]
+ if #m_stack_path > 0 then
+ dx, dy = m_stack_path[1][1], m_stack_path[1][2]
end
- mptopdf.flushconcat()
- mptopdf.texcode("\\MPStextext{"..font.."}{"..scale.."}{"..str.."}{"..dx.."}{"..dy.."}")
- mptopdf.resetpath()
+ flushconcat()
+ texcode("\\MPStextext{"..font.."}{"..scale.."}{"..str.."}{"..dx.."}{"..dy.."}")
+ resetpath()
end
---~ function mps.handletext(font,scale.str,dx,dy)
---~ local one, two = string.match(str, "^(%d+)::::(%d+)")
---~ if one and two then
---~ mptopdf.texcode("\\MPTOPDFtextext{"..font.."}{"..scale.."}{"..one.."}{"..two.."}{"..dx.."}{"..dy.."}")
---~ else
---~ mptopdf.texcode("\\MPTOPDFtexcode{"..font.."}{"..scale.."}{"..str.."}{"..dx.."}{"..dy.."}")
---~ end
---~ end
+local handlers = { }
-if false and ctx and ctx.aux and ctx.aux.definecolor then
+handlers[1] = function(s)
+ pdfcode(pdffinishtransparencycode())
+ pdfcode(pdfcmykcode(mps.colormodel,s[3],s[4],s[5],s[6]))
+end
+handlers[2] = function(s)
+ pdfcode(pdffinishtransparencycode())
+ pdfcode(pdfspotcode(mps.colormodel,s[3],s[4],s[5],s[6]))
+end
+handlers[3] = function(s)
+ pdfcode(pdfrgbcode(mps.colormodel,s[4],s[5],s[6]))
+ pdfcode(pdftransparencycode(s[2],s[3]))
+end
+handlers[4] = function(s)
+ pdfcode(pdfcmykcode(mps.colormodel,s[4],s[5],s[6],s[7]))
+ pdfcode(pdftransparencycode(s[2],s[3]))
+end
+handlers[5] = function(s)
+ pdfcode(pdfspotcode(mps.colormodel,s[4],s[5],s[6],s[7]))
+ pdfcode(pdftransparencycode(s[2],s[3]))
+end
- logs.report("mptopdf", "using attribute based mps colors")
+-- todo: color conversion
- -- does not work due to Q-q mess-up
+local nofshades, tn = 0, tonumber
- function mps.setrgbcolor(r,g,b) -- extra check
- r, g, b = tonumber(r), tonumber(g), tonumber(b) -- needed when we use lpeg
- if r == 0.0123 and g < 0.1 then -- g is extra check
- mptopdf.texcode("\\doresetattribute{transparency}\\MPSspecial{" .. g*10000 .. "}{" .. b*10000 .. "}")
- elseif r == 0.123 and g < 0.1 then -- g is extra check
- mptopdf.texcode("\\doresetattribute{transparency}\\MPSspecial{" .. g* 1000 .. "}{" .. b* 1000 .. "}")
- else
- mptopdf.texcode("\\doresetattribute{transparency}\\dosetattribute{color}{" .. colors.register('color',nil,'rgb',r,g,b) .. "}")
- end
- end
+local function linearshade(colorspace,domain,ca,cb,coordinates)
+ pdfcode(pdffinishtransparencycode())
+ nofshades = nofshades + 1
+ local name = format("MpsSh%s",nofshades)
+ lpdf.linearshade(name,domain,ca,cb,1,colorspace,coordinates)
+ extra_path_code, ignore_path = format("/%s sh Q",name), true
+ pdfcode("q /Pattern cs")
+end
- function mps.setcmykcolor(c,m,y,k)
- mptopdf.texcode("\\doresetattribute{transparency}\\dosetattribute{color}{" .. colors.register('color',nil,'cmyk',tonumber(c),tonumber(m),tonumber(y),tonumber(k)) .. "}")
- end
+local function circularshade(colorspace,domain,ca,cb,coordinates)
+ pdfcode(pdffinishtransparencycode())
+ nofshades = nofshades + 1
+ local name = format("MpsSh%s",nofshades)
+ lpdf.circularshade(name,domain,ca,cb,1,colorspace,coordinates)
+ extra_path_code, ignore_path = format("/%s sh Q",name), true
+ pdfcode("q /Pattern cs")
+end
- function mps.setgray(s)
- mptopdf.texcode("\\doresetattribute{transparency}\\dosetattribute{color}{" .. colors.register('color',nil,'gray',tonumber(s)) .. "}")
- end
+handlers[30] = function(s)
+ linearshade("DeviceRGB", { tn(s[ 2]), tn(s[ 3]) },
+ { tn(s[ 5]), tn(s[ 6]), tn(s[ 7]) }, { tn(s[10]), tn(s[11]), tn(s[12]) },
+ { tn(s[ 8]), tn(s[ 9]), tn(s[13]), tn(s[14]) } )
+end
+
+handlers[31] = function(s)
+ circularshade("DeviceRGB", { tn(s[ 2]), tn(s[ 3]) },
+ { tn(s[ 5]), tn(s[ 6]), tn(s[ 7]) }, { tn(s[11]), tn(s[12]), tn(s[13]) },
+ { tn(s[ 8]), tn(s[ 9]), tn(s[10]), tn(s[14]), tn(s[15]), tn(s[16]) } )
+end
+
+handlers[32] = function(s)
+ linearshade("DeviceCMYK", { tn(s[ 2]), tn(s[ 3]) },
+ { tn(s[ 5]), tn(s[ 6]), tn(s[ 7]), tn(s[ 8]) }, { tn(s[11]), tn(s[12]), tn(s[13]), tn(s[14]) },
+ { tn(s[ 9]), tn(s[10]), tn(s[15]), tn(s[16]) } )
+end
+
+handlers[33] = function(s)
+ circularshade("DeviceCMYK", { tn(s[ 2]), tn(s[ 3]) },
+ { tn(s[ 5]), tn(s[ 6]), tn(s[ 7]), tn(s[ 8]) }, { tn(s[12]), tn(s[13]), tn(s[14]), tn(s[15]) },
+ { tn(s[ 9]), tn(s[10]), tn(s[11]), tn(s[16]), tn(s[17]), tn(s[18]) } )
+end
+
+handlers[34] = function(s) -- todo (after further cleanup)
+ linearshade("DeviceGray", { tn(s[ 2]), tn(s[ 3]) }, { 0 }, { 1 }, { tn(s[9]), tn(s[10]), tn(s[15]), tn(s[16]) } )
+end
+
+handlers[35] = function(s) -- todo (after further cleanup)
+ circularshade("DeviceGray", { tn(s[ 2]), tn(s[ 3]) }, { 0 }, { 1 }, { tn(s[9]), tn(s[10]), tn(s[15]), tn(s[16]) } )
+end
-else
+-- not supported in mkiv , use mplib instead
- function mps.setrgbcolor(r,g,b) -- extra check
- r, g = tonumber(r), tonumber(g) -- needed when we use lpeg
- if r == 0.0123 and g < 0.1 then
- mptopdf.texcode("\\MPSspecial{" .. g*10000 .. "}{" .. b*10000 .. "}")
- elseif r == 0.123 and g < 0.1 then
- mptopdf.texcode("\\MPSspecial{" .. g* 1000 .. "}{" .. b* 1000 .. "}")
+handlers[10] = function() logs.report("mptopdf","skipping special %s",10) end
+handlers[20] = function() logs.report("mptopdf","skipping special %s",20) end
+handlers[50] = function() logs.report("mptopdf","skipping special %s",50) end
+
+--end of not supported
+
+function mps.setrgbcolor(r,g,b) -- extra check
+ r, g = tonumber(r), tonumber(g) -- needed when we use lpeg
+ if r == 0.0123 and g < 0.1 then
+ g, b = round(g*10000), round(b*10000)
+ local s = specials[b]
+ local h = round(s[#s])
+ local handler = handlers[h]
+ if handler then
+ handler(s)
else
- mptopdf.texcode("\\MPSrgb{" .. r .. "}{" .. g .. "}{" .. b .. "}")
+ logs.report("mptopdf","unknown special handler %s (1)",h)
end
+ elseif r == 0.123 and g < 0.1 then
+ g, b = round(g*1000), round(b*1000)
+ local s = specials[b]
+ local h = round(s[#s])
+ local handler = handlers[h]
+ if handler then
+ handler(s)
+ else
+ logs.report("mptopdf","unknown special handler %s (2)",h)
+ end
+ else
+ pdfcode(pdffinishtransparencycode())
+ pdfcode(pdfrgbcode(mps.colormodel,r,g,b))
end
+end
- function mps.setcmykcolor(c,m,y,k)
- mptopdf.texcode("\\MPScmyk{" .. c .. "}{" .. m .. "}{" .. y .. "}{" .. k .. "}")
- end
-
- function mps.setgray(s)
- mptopdf.texcode("\\MPSgray{" .. s .. "}")
- end
+function mps.setcmykcolor(c,m,y,k)
+ pdfcode(pdffinishtransparencycode())
+ pdfcode(pdfcmykcode(mps.colormodel,c,m,y,k))
+end
+function mps.setgray(s)
+ pdfcode(pdffinishtransparencycode())
+ pdfcode(pdfgrayliteral(mps.colormodel,s))
end
function mps.specials(version,signal,factor) -- 2.0 123 1000
end
function mps.special(...) -- 7 1 0.5 1 0 0 1 3
- local n = select("#",...)
- mptopdf.texcode("\\MPSbegin\\MPSset{" .. table.concat({...},"}\\MPSset{",2,n) .. "}\\MPSend")
+ local t = { ... }
+ local n = tonumber(t[#t-1])
+ specials[n] = t
end
function mps.begindata()
@@ -416,205 +366,188 @@ end
function mps.showpage()
end
-mps.n = mps.newpath -- n
-mps.p = mps.closepath -- h
-mps.l = mps.lineto -- l
-mps.r = mps.rlineto -- r
-mps.m = mps.moveto -- m
-mps.c = mps.curveto -- c
-mps.hlw = mps.setlinewidth
-mps.vlw = mps.setlinewidth
-
-mps.C = mps.setcmykcolor -- k
-mps.G = mps.setgray -- g
-mps.R = mps.setrgbcolor -- rg
-
-mps.lj = mps.setlinejoin -- j
-mps.ml = mps.setmiterlimit -- M
-mps.lc = mps.setlinecap -- J
-mps.sd = mps.setdash -- d
-mps.rd = mps.resetdash
-
-mps.S = mps.stroke -- S
-mps.F = mps.fill -- f
-mps.B = mps.both -- B
-mps.W = mps.clip -- W
-
-mps.q = mps.gsave -- q
-mps.Q = mps.grestore -- Q
-
-mps.s = mps.scale -- (not in pdf)
-mps.t = mps.concat -- (not the same as pdf anyway)
-
-mps.P = mps.showpage
-
--- experimental
-
-function mps.attribute(id,value)
- mptopdf.texcode("\\attribute " .. id .. "=" .. value .. " ")
--- mptopdf.texcode("\\dompattribute{" .. id .. "}{" .. value .. "}")
-end
-
-- lpeg parser
-- The lpeg based parser is rather optimized for the kind of output
-- that MetaPost produces. It's my first real lpeg code, which may
-- show. Because the parser binds to functions, we define it last.
-do -- assumes \let\c\char
+local lpegP, lpegR, lpegS, lpegC, lpegCc, lpegCs = lpeg.P, lpeg.R, lpeg.S, lpeg.C, lpeg.Cc, lpeg.Cs
+
+local digit = lpegR("09")
+local eol = lpegS('\r\n')^1
+local sp = lpegP(' ')^1
+local space = lpegS(' \r\n')^1
+local number = lpegS('0123456789.-+')^1
+local nonspace = lpegP(1-lpegS(' \r\n'))^1
+
+local spec = digit^2 * lpegP("::::") * digit^2
+local text = lpegCc("{") * (
+ lpegP("\\") * ( (digit * digit * digit) / function(n) return "c" .. tonumber(n,8) end) +
+ lpegP(" ") / function(n) return "\\c32" end + -- never in new mp
+ lpegP(1) / function(n) return "\\c" .. byte(n) end
+ ) * lpegCc("}")
+local package = lpegCs(spec + text^0)
+
+function mps.fshow(str,font,scale) -- lpeg parser
+ mps.textext(font,scale,package:match(str))
+end
+
+local cnumber = lpegC(number)
+local cstring = lpegC(nonspace)
+
+local specials = (lpegP("%%MetaPostSpecials:") * sp * (cstring * sp^0)^0 * eol) / mps.specials
+local special = (lpegP("%%MetaPostSpecial:") * sp * (cstring * sp^0)^0 * eol) / mps.special
+local boundingbox = (lpegP("%%BoundingBox:") * sp * (cnumber * sp^0)^4 * eol) / mps.boundingbox
+local highresboundingbox = (lpegP("%%HiResBoundingBox:") * sp * (cnumber * sp^0)^4 * eol) / mps.boundingbox
+
+local setup = lpegP("%%BeginSetup") * (1 - lpegP("%%EndSetup") )^1
+local prolog = lpegP("%%BeginProlog") * (1 - lpegP("%%EndProlog"))^1
+local comment = lpegP('%')^1 * (1 - eol)^1
+
+local curveto = ((cnumber * sp)^6 * lpegP("curveto") ) / mps.curveto
+local lineto = ((cnumber * sp)^2 * lpegP("lineto") ) / mps.lineto
+local rlineto = ((cnumber * sp)^2 * lpegP("rlineto") ) / mps.rlineto
+local moveto = ((cnumber * sp)^2 * lpegP("moveto") ) / mps.moveto
+local setrgbcolor = ((cnumber * sp)^3 * lpegP("setrgbcolor") ) / mps.setrgbcolor
+local setcmykcolor = ((cnumber * sp)^4 * lpegP("setcmykcolor") ) / mps.setcmykcolor
+local setgray = ((cnumber * sp)^1 * lpegP("setgray") ) / mps.setgray
+local newpath = ( lpegP("newpath") ) / mps.newpath
+local closepath = ( lpegP("closepath") ) / mps.closepath
+local fill = ( lpegP("fill") ) / mps.fill
+local stroke = ( lpegP("stroke") ) / mps.stroke
+local clip = ( lpegP("clip") ) / mps.clip
+local both = ( lpegP("gsave fill grestore")) / mps.both
+local showpage = ( lpegP("showpage") )
+local setlinejoin = ((cnumber * sp)^1 * lpegP("setlinejoin") ) / mps.setlinejoin
+local setlinecap = ((cnumber * sp)^1 * lpegP("setlinecap") ) / mps.setlinecap
+local setmiterlimit = ((cnumber * sp)^1 * lpegP("setmiterlimit") ) / mps.setmiterlimit
+local gsave = ( lpegP("gsave") ) / mps.gsave
+local grestore = ( lpegP("grestore") ) / mps.grestore
+
+local setdash = (lpegP("[") * (cnumber * sp^0)^0 * lpegP("]") * sp * cnumber * sp * lpegP("setdash")) / mps.setdash
+local concat = (lpegP("[") * (cnumber * sp^0)^6 * lpegP("]") * sp * lpegP("concat") ) / mps.concat
+local scale = ( (cnumber * sp^0)^6 * sp * lpegP("concat") ) / mps.concat
+
+local fshow = (lpegP("(") * lpegC((1-lpegP(")"))^1) * lpegP(")") * space * cstring * space * cnumber * space * lpegP("fshow")) / mps.fshow
+local fshow = (lpegP("(") * lpegCs( ( lpegP("\\(")/"\\050" + lpegP("\\)")/"\\051" + (1-lpegP(")")) )^1 )
+ * lpegP(")") * space * cstring * space * cnumber * space * lpegP("fshow")) / mps.fshow
+
+local setlinewidth_x = (lpegP("0") * sp * cnumber * sp * lpegP("dtransform truncate idtransform setlinewidth pop")) / mps.setlinewidth
+local setlinewidth_y = (cnumber * sp * lpegP("0 dtransform exch truncate exch idtransform pop setlinewidth") ) / mps.setlinewidth
+
+local c = ((cnumber * sp)^6 * lpegP("c") ) / mps.curveto -- ^6 very inefficient, ^1 ok too
+local l = ((cnumber * sp)^2 * lpegP("l") ) / mps.lineto
+local r = ((cnumber * sp)^2 * lpegP("r") ) / mps.rlineto
+local m = ((cnumber * sp)^2 * lpegP("m") ) / mps.moveto
+local vlw = ((cnumber * sp)^1 * lpegP("vlw")) / mps.setlinewidth
+local hlw = ((cnumber * sp)^1 * lpegP("hlw")) / mps.setlinewidth
+
+local R = ((cnumber * sp)^3 * lpegP("R") ) / mps.setrgbcolor
+local C = ((cnumber * sp)^4 * lpegP("C") ) / mps.setcmykcolor
+local G = ((cnumber * sp)^1 * lpegP("G") ) / mps.setgray
+
+local lj = ((cnumber * sp)^1 * lpegP("lj") ) / mps.setlinejoin
+local ml = ((cnumber * sp)^1 * lpegP("ml") ) / mps.setmiterlimit
+local lc = ((cnumber * sp)^1 * lpegP("lc") ) / mps.setlinecap
+
+local n = lpegP("n") / mps.newpath
+local p = lpegP("p") / mps.closepath
+local S = lpegP("S") / mps.stroke
+local F = lpegP("F") / mps.fill
+local B = lpegP("B") / mps.both
+local W = lpegP("W") / mps.clip
+local P = lpegP("P") / mps.showpage
+
+local q = lpegP("q") / mps.gsave
+local Q = lpegP("Q") / mps.grestore
+
+local sd = (lpegP("[") * (cnumber * sp^0)^0 * lpegP("]") * sp * cnumber * sp * lpegP("sd")) / mps.setdash
+local rd = ( lpegP("rd")) / mps.resetdash
+
+local s = ( (cnumber * sp^0)^2 * lpegP("s") ) / mps.scale
+local t = (lpegP("[") * (cnumber * sp^0)^6 * lpegP("]") * sp * lpegP("t") ) / mps.concat
- local byte = string.byte
- local digit = lpeg.R("09")
- local spec = digit^2 * lpeg.P("::::") * digit^2
- local text = lpeg.Cc("{") * (
- lpeg.P("\\") * ( (digit * digit * digit) / function(n) return "c" .. tonumber(n,8) end) +
- lpeg.P(" ") / function(n) return "\\c32" end + -- never in new mp
- lpeg.P(1) / function(n) return "\\c" .. byte(n) end
- ) * lpeg.Cc("}")
- local package = lpeg.Cs(spec + text^0)
+-- experimental
- function mps.fshow(str,font,scale) -- lpeg parser
- mps.textext(font,scale,package:match(str))
+local preamble = (
+ prolog + setup +
+ boundingbox + highresboundingbox + specials + special +
+ comment
+)
+
+local procset = (
+ lj + ml + lc +
+ c + l + m + n + p + r +
+ R + C + G +
+ S + F + B + W +
+ vlw + hlw +
+ Q + q +
+ sd + rd +
+ t + s +
+ fshow +
+ P
+)
+
+local verbose = (
+ curveto + lineto + moveto + newpath + closepath + rlineto +
+ setrgbcolor + setcmykcolor + setgray +
+ setlinejoin + setmiterlimit + setlinecap +
+ stroke + fill + clip + both +
+ setlinewidth_x + setlinewidth_y +
+ gsave + grestore +
+ concat + scale +
+ fshow +
+ setdash + -- no resetdash
+ showpage
+)
+
+-- order matters in terms of speed / we could check for procset first
+
+local captures_old = ( space + verbose + preamble )^0
+--~ local captures_new = ( space + procset + preamble + verbose )^0
+local captures_new = ( space + verbose + procset + preamble )^0
+
+local function parse(m_data)
+ if find(m_data,"%%%%BeginResource: procset mpost") then
+ captures_new:match(m_data)
+ else
+ captures_old:match(m_data)
end
-
end
-do
-
- local eol = lpeg.S('\r\n')^1
- local sp = lpeg.P(' ')^1
- local space = lpeg.S(' \r\n')^1
- local number = lpeg.S('0123456789.-+')^1
- local nonspace = lpeg.P(1-lpeg.S(' \r\n'))^1
-
- local cnumber = lpeg.C(number)
- local cstring = lpeg.C(nonspace)
-
- local specials = (lpeg.P("%%MetaPostSpecials:") * sp * (cstring * sp^0)^0 * eol) / mps.specials
- local special = (lpeg.P("%%MetaPostSpecial:") * sp * (cstring * sp^0)^0 * eol) / mps.special
- local boundingbox = (lpeg.P("%%BoundingBox:") * sp * (cnumber * sp^0)^4 * eol) / mps.boundingbox
- local highresboundingbox = (lpeg.P("%%HiResBoundingBox:") * sp * (cnumber * sp^0)^4 * eol) / mps.boundingbox
-
- local setup = lpeg.P("%%BeginSetup") * (1 - lpeg.P("%%EndSetup") )^1
- local prolog = lpeg.P("%%BeginProlog") * (1 - lpeg.P("%%EndProlog"))^1
- local comment = lpeg.P('%')^1 * (1 - eol)^1
-
- local curveto = ((cnumber * sp)^6 * lpeg.P("curveto") ) / mps.curveto
- local lineto = ((cnumber * sp)^2 * lpeg.P("lineto") ) / mps.lineto
- local rlineto = ((cnumber * sp)^2 * lpeg.P("rlineto") ) / mps.rlineto
- local moveto = ((cnumber * sp)^2 * lpeg.P("moveto") ) / mps.moveto
- local setrgbcolor = ((cnumber * sp)^3 * lpeg.P("setrgbcolor") ) / mps.setrgbcolor
- local setcmykcolor = ((cnumber * sp)^4 * lpeg.P("setcmykcolor") ) / mps.setcmykcolor
- local setgray = ((cnumber * sp)^1 * lpeg.P("setgray") ) / mps.setgray
- local newpath = ( lpeg.P("newpath") ) / mps.newpath
- local closepath = ( lpeg.P("closepath") ) / mps.closepath
- local fill = ( lpeg.P("fill") ) / mps.fill
- local stroke = ( lpeg.P("stroke") ) / mps.stroke
- local clip = ( lpeg.P("clip") ) / mps.clip
- local both = ( lpeg.P("gsave fill grestore")) / mps.both
- local showpage = ( lpeg.P("showpage") )
- local setlinejoin = ((cnumber * sp)^1 * lpeg.P("setlinejoin") ) / mps.setlinejoin
- local setlinecap = ((cnumber * sp)^1 * lpeg.P("setlinecap") ) / mps.setlinecap
- local setmiterlimit = ((cnumber * sp)^1 * lpeg.P("setmiterlimit") ) / mps.setmiterlimit
- local gsave = ( lpeg.P("gsave") ) / mps.gsave
- local grestore = ( lpeg.P("grestore") ) / mps.grestore
-
- local setdash = (lpeg.P("[") * (cnumber * sp^0)^0 * lpeg.P("]") * sp * cnumber * sp * lpeg.P("setdash")) / mps.setdash
- local concat = (lpeg.P("[") * (cnumber * sp^0)^6 * lpeg.P("]") * sp * lpeg.P("concat") ) / mps.concat
- local scale = ( (cnumber * sp^0)^6 * sp * lpeg.P("concat") ) / mps.concat
-
- local fshow = (lpeg.P("(") * lpeg.C((1-lpeg.P(")"))^1) * lpeg.P(")") * space * cstring * space * cnumber * space * lpeg.P("fshow")) / mps.fshow
- local fshow = (lpeg.P("(") *
- lpeg.Cs( ( lpeg.P("\\(")/"\\050" + lpeg.P("\\)")/"\\051" + (1-lpeg.P(")")) )^1 )
- * lpeg.P(")") * space * cstring * space * cnumber * space * lpeg.P("fshow")) / mps.fshow
-
- local setlinewidth_x = (lpeg.P("0") * sp * cnumber * sp * lpeg.P("dtransform truncate idtransform setlinewidth pop")) / mps.setlinewidth
- local setlinewidth_y = (cnumber * sp * lpeg.P("0 dtransform exch truncate exch idtransform pop setlinewidth") ) / mps.setlinewidth
-
- local c = ((cnumber * sp)^6 * lpeg.P("c") ) / mps.curveto -- ^6 very inefficient, ^1 ok too
- local l = ((cnumber * sp)^2 * lpeg.P("l") ) / mps.lineto
- local r = ((cnumber * sp)^2 * lpeg.P("r") ) / mps.rlineto
- local m = ((cnumber * sp)^2 * lpeg.P("m") ) / mps.moveto
- local vlw = ((cnumber * sp)^1 * lpeg.P("vlw")) / mps.setlinewidth
- local hlw = ((cnumber * sp)^1 * lpeg.P("hlw")) / mps.setlinewidth
-
- local R = ((cnumber * sp)^3 * lpeg.P("R") ) / mps.setrgbcolor
- local C = ((cnumber * sp)^4 * lpeg.P("C") ) / mps.setcmykcolor
- local G = ((cnumber * sp)^1 * lpeg.P("G") ) / mps.setgray
-
- local lj = ((cnumber * sp)^1 * lpeg.P("lj") ) / mps.setlinejoin
- local ml = ((cnumber * sp)^1 * lpeg.P("ml") ) / mps.setmiterlimit
- local lc = ((cnumber * sp)^1 * lpeg.P("lc") ) / mps.setlinecap
-
- local n = lpeg.P("n") / mps.newpath
- local p = lpeg.P("p") / mps.closepath
- local S = lpeg.P("S") / mps.stroke
- local F = lpeg.P("F") / mps.fill
- local B = lpeg.P("B") / mps.both
- local W = lpeg.P("W") / mps.clip
- local P = lpeg.P("P") / mps.showpage
-
- local q = lpeg.P("q") / mps.gsave
- local Q = lpeg.P("Q") / mps.grestore
-
- local sd = (lpeg.P("[") * (cnumber * sp^0)^0 * lpeg.P("]") * sp * cnumber * sp * lpeg.P("sd")) / mps.setdash
- local rd = ( lpeg.P("rd")) / mps.resetdash
-
- local s = ( (cnumber * sp^0)^2 * lpeg.P("s") ) / mps.scale
- local t = (lpeg.P("[") * (cnumber * sp^0)^6 * lpeg.P("]") * sp * lpeg.P("t") ) / mps.concat
-
- -- experimental
-
- local attribute = ((cnumber * sp)^2 * lpeg.P("attribute")) / mps.attribute
- local A = ((cnumber * sp)^2 * lpeg.P("A")) / mps.attribute
-
- local preamble = (
- prolog + setup +
- boundingbox + highresboundingbox + specials + special +
- comment
- )
-
- local procset = (
- lj + ml + lc +
- c + l + m + n + p + r +
- A +
- R + C + G +
- S + F + B + W +
- vlw + hlw +
- Q + q +
- sd + rd +
- t + s +
- fshow +
- P
- )
-
- local verbose = (
- curveto + lineto + moveto + newpath + closepath + rlineto +
- setrgbcolor + setcmykcolor + setgray +
- attribute +
- setlinejoin + setmiterlimit + setlinecap +
- stroke + fill + clip + both +
- setlinewidth_x + setlinewidth_y +
- gsave + grestore +
- concat + scale +
- fshow +
- setdash + -- no resetdash
- showpage
- )
-
- -- order matters in terms of speed / we could check for procset first
-
- local captures_old = ( space + verbose + preamble )^0
- local captures_new = ( space + procset + preamble + verbose )^0
-
- function mptopdf.parsers.lpeg()
- if mptopdf.data:find("%%%%BeginResource: procset mpost") then
- captures_new:match(mptopdf.data)
- else
- captures_old:match(mptopdf.data)
- end
- end
+-- main converter
+
+local a_colorspace = attributes.private('colormodel')
+function mptopdf.convertmpstopdf(name)
+ resetall()
+ local ok, m_data, n = resolvers.loadbinfile(name, 'tex') -- we need a binary load !
+ if ok then
+ mps.colormodel = tex.attribute[a_colorspace]
+ statistics.starttiming(mptopdf)
+ mptopdf.n = mptopdf.n + 1
+ pdfcode(format("\\letterpercent\\space mptopdf begin: n=%s, file=%s",mptopdf.n,file.basename(name)))
+ pdfcode("q 1 0 0 1 0 0 cm")
+ parse(m_data)
+ pdfcode(pdffinishtransparencycode())
+ pdfcode("Q")
+ pdfcode("\\letterpercent\\space mptopdf end")
+ resetall()
+ statistics.stoptiming(mptopdf)
+ else
+ commands.writestatus("mptopdf","file '%s' not found",name)
+ end
end
-mptopdf.parser = 'lpeg'
+
+-- status info
+
+statistics.register("mps conversion time",function()
+ local n = mptopdf.n
+ if n > 0 then
+ return format("%s seconds, %s conversions", statistics.elapsedtime(mptopdf),n)
+ else
+ return nil
+ end
+end)
diff --git a/Master/texmf-dist/tex/context/base/meta-pdf.mkii b/Master/texmf-dist/tex/context/base/meta-pdf.mkii
index 51e01d8ed06..2099b0d370c 100644
--- a/Master/texmf-dist/tex/context/base/meta-pdf.mkii
+++ b/Master/texmf-dist/tex/context/base/meta-pdf.mkii
@@ -1,8 +1,8 @@
%D \module
%D [ file=meta-pdf,
%D version=2006.06.07,
-%D title=\CONTEXT\ Support Macros,
-%D subtitle=\METAPOST\ to \PDF\ conversion,
+%D title=\METAPOST\ Graphics,
+%D subtitle=Conversion to \PDF,
%D author=Hans Hagen \& others (see text),
%D date=\currentdate,
%D copyright=\PRAGMA]
@@ -11,12 +11,171 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+%D Formerly known as supp-pdf.tex and supp-mpe.tex.
+
+%D We will clean up the color mess later.
+
+%D These macros are written as generic as possible. Some
+%D general support macro's are loaded from a small module
+%D especially made for non \CONTEXT\ use. In this module I
+%D use a matrix transformation macro written by Tanmoy
+%D Bhattacharya. Thanks to extensive testing by Sebastian
+%D Ratz I was able to complete this module within reasonable
+%D time. This module has support for \METAPOST\ extensions
+%D built in.
+%D
+%D Daniel H. Luecking came up with a better (more precise)
+%D transformation method. You can recognize his comment by
+%D his initials. (We keep the old code around because it's a
+%D nice illustration on how a module like this evolves.)
+
+% Beware, we cannot use 0pt here by defaukt since it may be
+% defined in the range \dimen 0 - 20 which we happen to use
+% as scratch registers; for this reason we start allocating
+% scratch registers > 20
+
+%D This module handles some \PDF\ conversion and insertions
+%D topics. By default, the macros use the \PDFTEX\ primitive
+%D \type{\pdfliteral} when available. Since \PDFTEX\ is now the
+%D default engine for \TEX\ distributions, we need a more complex
+%D test.
+
+\writestatus{loading}{MetaPost Graphics / MPS to PDF}
+
\unprotect
-%D These are the main macros.
+\ifx\PDFcode \undefined \let\PDFcode \gobbleoneargument \fi
+\ifx\PDFcomment\undefined \def\PDFcomment#1{\PDFcode{\letterpercent\space#1}} \fi
+
+%D First we define a handy constant:
+
+\bgroup \catcode`\%=\@@other \xdef\letterpercent{\string%} \egroup
+
+%D \macros
+%D {pdfimage,pdfimages,pdfclippedimage}
+%D
+%D Starting with pdftex version 14, images are included more
+%D natural to the form embedding. This enables alternative
+%D images to be embedded.
+%D
+%D \starttyping
+%D \pdfimage <optional dimensions> {file}
+%D \pdfimages <optional dimensions> {high res file} {low res file}
+%D \stoptyping
+%D
+%D The first one replaces the pre||version||14 original,
+%D while the latter provides alternative images.
+%D
+%D The next macro is dedicated to Maarten Gelderman, who
+%D needed to paste prepared \PDF\ pages into conference
+%D proceedings.
+%D
+%D \starttyping
+%D \pdfclippedimage <optional dimensions> {file} {l} {r} {t} {b}
+%D \stoptyping
+
+\ifx\pdftexversion\undefined \else \ifnum\pdftexversion>13 % still relevant?
+
+ \def\pdfimage#1#%
+ {\dopdfimage{#1}}
+
+ \def\dopdfimage#1#2%
+ {\immediate\pdfximage#1{#2}%
+ \pdfrefximage\pdflastximage}
+
+ \def\pdfimages#1#%
+ {\dopdfimages{#1}}
+
+ \def\dopdfimages#1#2#3%
+ {\immediate\pdfximage#1{#2}%
+ \immediate\pdfobj{[ << /Image \the\pdflastximage\space0 R /DefaultForPrinting true >> ]}%
+ \immediate\pdfximage#1 attr {/Alternates \the\pdflastobj\space0 R}{#3}%
+ \pdfrefximage\pdflastximage}
+
+ \def\pdfclippedimage#1#% specs {file}{left}{right}{top}{bottom}
+ {\dopdfclippedimage{#1}}
+
+ \def\dopdfclippedimage#1#2#3#4#5#6%
+ {\bgroup
+ \pdfximage#1{#2}%
+ \setbox\scratchbox\hbox{\pdfrefximage\pdflastximage}%
+ \hsize\dimexpr\wd\scratchbox-#3-#4\relax
+ \vsize\dimexpr\ht\scratchbox-#5-#6\relax
+ \setbox\scratchbox\vbox to \vsize
+ {\vskip-#5\hbox to \hsize{\hskip-#3\box\scratchbox\hss}}%
+ \pdfxform\scratchbox
+ \pdfrefxform\pdflastxform
+ \egroup}
+
+\fi \fi
-\def\mkconvertMPtoPDF % #1#2#3%
- {\vbox\bgroup
+%D \macros
+%D {convertMPtoPDF}
+%D
+%D The next set of macros implements \METAPOST\ to \PDF\
+%D conversion. The traditional method is in the MkII file.
+
+%D The main conversion command is:
+%D
+%D \starttyping
+%D \convertMPtoPDF {filename} {x scale} {y scale}
+%D \stoptyping
+%D
+%D The dimensions are derived from the bounding box. So we
+%D only have to say:
+%D
+%D \starttyping
+%D \convertMPtoPDF{mp-pra-1.eps}{1}{1}
+%D \convertMPtoPDF{mp-pra-1.eps}{.5}{.5}
+%D \stoptyping
+
+%D \macros
+%D {makeMPintoPDFobject,lastPDFMPobject}
+%D
+%D For experts there are a few more options. When attributes
+%D are to be added, the code must be embedded in an object
+%D accompanied with the appropriate directives. One can
+%D influence this process with \type {\makeMPintoPDFobject}.
+%D
+%D This option defaults to~0, because \CONTEXT\ takes care
+%D of objects at another level, which saves some bytes.
+%D
+%D \starttabulate[|l|l|p|]
+%D \NC 0 \NC never \NC don't use an object \NC\NR
+%D \NC 1 \NC always \NC always use an object \NC\NR
+%D \NC 2 \NC optional \NC use object when needed \NC\NR
+%D \stoptabulate
+%D
+%D The last object number used is avaliable in the macro
+%D \type {\lastPDFMPobject}.
+
+\ifx\makeMPintoPDFobject \undefined \chardef\makeMPintoPDFobject \zerocount \fi
+\ifx\blackoutMPgraphic \undefined \chardef\blackoutMPgraphic \plusone \fi
+\ifx\everyMPtoPDFconversion\undefined \newtoks\everyMPtoPDFconversion \fi
+
+\let\lastPDFMPobject \!!zerocount
+\let\currentPDFresources\empty
+\let\setMPextensions \relax
+
+\def\PDFMPformoffset
+ {\ifx\objectoffset\undefined\zeropoint\else\objectoffset\fi}
+
+\def\resetMPvariables#1#2#3%
+ {\global\let\MPwidth \!!zeropoint
+ \global\let\MPheight\!!zeropoint
+ \global\let\MPllx \!!zerocount
+ \global\let\MPlly \!!zerocount
+ \global\let\MPurx \!!zerocount
+ \global\let\MPury \!!zerocount
+ \xdef\MPxscale {#2}\ifx\MPxscale\empty\let\MPxscale\!!plusone\fi
+ \xdef\MPyscale {#3}\ifx\MPyscale\empty\let\MPyscale\!!plusone\fi
+ \xdef\MPfilename {#1}}
+
+%D The main macro:
+
+\def\convertMPtoPDF#1#2#3%
+ {\resetMPvariables{#1}{#2}{#3}%
+ \vbox\bgroup
\forgetall
\offinterlineskip
\ifx\pdfdecimaldigits\undefined\else \pdfdecimaldigits=5 \fi % new
@@ -31,6 +190,12 @@
\ifcase\blackoutMPgraphic\or\PDFcode{0 g 0 G}\fi
\doprocessMPtoPDFfile}
+\def\processMPtoPDFfile#1#2#3% obsolete
+ {\resetMPvariables{#1}{#2}{#3}%
+ \bgroup
+ \let\finishMPgraphic\egroup
+ \doprocessMPtoPDFfile}
+
\def\doprocessMPtoPDFfile
{\setMPspecials
\setMPextensions
@@ -64,16 +229,764 @@
\egroup
\endinput}
-\def\mkprocessMPtoPDFfile % file xscale yscale / obsolete
+%D A common hook.
+
+\let\MPfshowcommand\empty
+
+%D Objects.
+
+\def\dopackageMPgraphic#1% #1 = boxregister
+ {\ifcase\makeMPintoPDFobject\or\or\ifx\currentPDFresources\empty\else
+ % an existing value of 2 signals object support (set elsewhere)
+ \chardef\makeMPintoPDFobject\plusone
+ \fi\fi
+ \ifcase\makeMPintoPDFobject
+ \box#1%
+ \or
+ \scratchdimen\PDFMPformoffset\relax
+ \ifdim\scratchdimen>\zeropoint % compensate for error
+ \setbox#1\vbox spread 2\scratchdimen
+ {\forgetall\vss\hbox spread 2\scratchdimen{\hss\box#1\hss}\vss}%
+ \fi
+ \setMPPDFobject{\currentPDFresources}{#1}%
+ \ifdim\scratchdimen>\zeropoint % compensate for error
+ \vbox to \MPheight
+ {\forgetall\vss\hbox to \MPwidth{\hss\getMPPDFobject\hss}\vss}%
+ \else
+ \getMPPDFobject
+ \fi
+ \global\let\currentPDFresources\empty
+ \else
+ \box#1%
+ \fi}
+
+\def\setMPPDFobject#1#2% resources boxnumber
+ {\ifx\pdfxform\undefined
+ \def\getMPPDFobject{\box#2}%
+ \else\ifx\pdftexversion\undefined
+ \def\getMPPDFobject{\box#2}%
+ \else\ifnum\pdftexversion<14
+ \def\getMPPDFobject{\box#2}%
+ \else
+ \ifx\everyPDFxform\undefined\else\the\everyPDFxform\fi
+ \immediate\pdfxform resources{#1}#2%
+ \edef\getMPPDFobject{\noexpand\pdfrefxform\the\pdflastxform}%
+ \fi\fi\fi}
+
+\let\getMPPDFobject\relax
+
+%D \macros
+%D {deleteMPgraphic,
+%D startMPresources,
+%D stopMPresources}
+
+\ifx\deleteMPgraphic\undefined
+ \def\deleteMPgraphic#1{}
+\fi
+
+\ifx\startMPresources\undefined
+ \let\startMPresources\relax
+ \let\stopMPresources\relax
+\fi
+
+%D We implement extensions by using the \METAPOST\ special
+%D mechanism. Opposite to \TEX's specials, the \METAPOST\ ones
+%D are flushed before or after the graphic data, but thereby
+%D are no longer connected to a position.
+%D
+%D We implement specials by overloading the \type {fill}
+%D operator. By counting the fills, we can let the converter
+%D treat the appropriate fill in a special way. The
+%D specification of the speciality can have two forms,
+%D determined by the setting of a boolean variable:
+%D
+%D \starttyping
+%D _inline_specials_ := false ; % comment like code (default)
+%D _inline_specials_ := true ; % command like code
+%D \stoptyping
+%D
+%D When the specification is embedded as comment, it looks
+%D like:
+%D
+%D \starttyping
+%D %%MetaPostSpecial <size> <data> <number> <identifier>
+%D \stoptyping
+%D
+%D The in||line alternative is more tuned for \POSTSCRIPT,
+%D since it permits us to define a macro \type {special}.
+%D
+%D \starttyping
+%D inline : <data> <number> <identifier> <size> special
+%D \stoptyping
+%D
+%D The \type {identifier} determines what to do, and the data
+%D can be used to accomplish this. A type~2 shading function
+%D has identifier~2. Alltogether, the number of parameters is
+%D specified in \type {size}. The \type {number} is the number
+%D of the fill that needs the special treatment. For a type~2
+%D and~3 shaded fill, the datablock contains the following
+
+%D data:
+%D
+%D \starttyping
+%D from to n inner_r g b x y outer_r g b x y
+%D from to n inner_r g b x y radius outer_r g b x y radius
+%D \stoptyping
+
+\newconditional\manyMPspecials \settrue\manyMPspecials
+
+%D In case of \PDF, we need to prepare resourcs.
+
+\newtoks\MPstartresources
+\newtoks\MPstopresources
+
+\def\startMPresources
+ {\the\MPstartresources}
+
+\def\stopMPresources
+ {\the\MPstopresources}
+
+%D Some day we may consider collecting local resources.
+
+\appendtoks
+ \global\let\currentPDFresources\empty % kind of redundant
+\to \MPstartresources
+
+% \appendtoks
+% \collectPDFresources
+% \global\let\currentPDFresources\collectedPDFresources
+% \to \MPstopresources
+
+\appendtoksonce
+ \the\everyPDFxform
+\to \MPstopresources
+
+%D Since colors are not subjected to transformations, we can
+%D only use colors as signal. In our case, we use a dummy colored
+%D path with a red color component of \type {0.n}, so \type
+%D {0.001} is the first path and \type {0.010} the tenth. Since
+%D \METAPOST strips trailing zeros, we have to padd the string.
+
+\newif\ifMPcmykcolors
+\newif\ifMPspotcolors
+
+\def\dohandleMPrgb #1#2#3{\revokeMPtransparencyspecial\execcolorR #1:#2:#3:0:0\od}
+\def\dohandleMPcmyk#1#2#3#4{\revokeMPtransparencyspecial\execcolorC#1:#2:#3:#4:0:0\od}
+\def\dohandleMPgray #1{\revokeMPtransparencyspecial\execcolorS #1:0:0\od}
+\def\dohandleMPspot#1#2#3#4{\revokeMPtransparencyspecial\execcolorP#1:#2:#3:#4:0:0\od}
+
+%D Specials:
+
+\settrue \manyMPspecials \newcount\nofMParguments \let\extraMPpathcode\empty
+
+\def\@@MP {@@MP}
+\def\@@MPSK{@MPSK@}
+
+\def\MPspecial{\@@MPSK\@@MPSK\gMPs\nofMParguments}
+
+\def\defineMPspecial#1#2%
+ {\setvalue{\@@MPSK\@@MPSK#1}{#2}}
+
+%D Special number~1 is dedicated to \CMYK\ support. If you
+%D want to know why: look at this:
+%D
+%D \startbuffer[mp]
+%D fill fullcircle xyscaled (3cm,1cm) withcolor \MPcolor{test} ;
+%D \stopbuffer
+%D
+%D \startbuffer[cmyk]
+%D \startcombination[4*1]
+%D {\definecolor[test][c=1,y=.3,k=.3] \processMPbuffer[mp]} {c=1 y=.3 k=.3}
+%D {\definecolor[test][c=.9,y=.15] \processMPbuffer[mp]} {c=.9 y=.15}
+%D {\definecolor[test][c=.25,y=.8] \processMPbuffer[mp]} {c=.25 y=.8}
+%D {\definecolor[test][c=.45,y=.1] \processMPbuffer[mp]} {c=.45 y=.1}
+%D \stopcombination
+%D \stopbuffer
+%D
+%D \placefigure
+%D {\CMYK\ support disabled,
+%D conversion to \RGB.}
+%D {\setupcolors[cmyk=nee,state=start]\getbuffer[cmyk]}
+%D
+%D \placefigure
+%D {\CMYK\ support enabled,
+%D no support in \METAPOST.}
+%D {\setupcolors[cmyk=ja,mpcmyk=nee,state=start]\getbuffer[cmyk]}
+%D
+%D \placefigure
+%D {\CMYK\ support enabled,
+%D no conversion to \RGB,
+%D support in \METAPOST}
+%D {\setupcolors[cmyk=ja,state=start]\getbuffer[cmyk]}
+
+\defineMPspecial{1}
+ {\ifMPcmykcolors
+ \setxvalue{\@@MPSK\gMPs6}{\noexpand\dohandleMPcmykcolor{\gMPs2}{\gMPs3}{\gMPs4}{\gMPs5}}%
+ \fi}
+
+\defineMPspecial{2}
+ {\ifMPspotcolors
+ \setxvalue{\@@MPSK\gMPs6}{\noexpand\dohandleMPspotcolor{\gMPs2}{\gMPs3}{\gMPs4}{\gMPs5}}%
+% \checkMPspot{\gMPs2}{\gMPs3}{\gMPs4}{\gMPs5}%
+ \fi}
+
+% \def\checkMPspot#1#2#3#4%
+% {\expanded{\resolveMPspotcolor#1 #2 #3 #4}\end
+% \ifx\MPspotspace\MPresolvedspace
+% \edef\MPspotspacespec{/\MPspotspace\space}%
+% \doifinstringelse\MPspotspacespec\currentMPcolorspaces
+% \donothing\registerMPcolorspace
+% \fi}
+
+\let\revokeMPtransparencyspecial\relax
+
+\def\dohandleMPrgbcolor #1#2#3{\revokeMPtransparencyspecial\execcolorR #1:#2:#3:0:0\od}
+\def\dohandleMPcmykcolor#1#2#3#4{\revokeMPtransparencyspecial\execcolorC#1:#2:#3:#4:0:0\od}
+\def\dohandleMPgraycolor #1{\revokeMPtransparencyspecial\execcolorS #1:0:0\od}
+\def\dohandleMPspotcolor#1#2#3#4{\revokeMPtransparencyspecial\execcolorP#1:#2:#3:#4:0:0\od}
+
+%D Transparency support used specials 60 (rgb) and 61
+%D (cmyk).
+%D
+%D \startbufferFshade
+
+%D u := 2cm ; path p ; p := fullcircle scaled u shifted (u/4,0);
+%D
+%D fill p rotated 90 withcolor transparent(1,.5,yellow) ;
+%D fill p rotated 210 withcolor transparent(1,.5,green) ;
+%D fill p rotated 330 withcolor transparent(1,.5,blue) ;
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D \startlinecorrection \processMPbuffer \stoplinecorrection
+%D
+%D One can also communicate colors between \CONTEXT\ and
+%D \METAPOST:
+%D
+%D \startbuffer
+%D \definecolor[tcyan] [c=1,k=.2,t=.5]
+%D \definecolor[tmagenta][m=1,k=.2,t=.5]
+%D \definecolor[tyellow] [y=1,k=.2,t=.5]
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+%D
+%D \startbuffer
+%D u := 2cm ; path p ; p := fullcircle scaled u shifted (u/4,0);
+%D
+%D fill p rotated 90 withcolor \MPcolor{tcyan} ;
+%D fill p rotated 210 withcolor \MPcolor{tmagenta} ;
+%D fill p rotated 330 withcolor \MPcolor{tyellow} ;
+%D \stopbuffer
+%D
+%D \startlinecorrection \processMPbuffer \stoplinecorrection
+%D
+%D We save all the three components needed in one macro,
+%D just to save hash space.
+
+\def\dohandleMPrgbtransparency #1#2#3#4#5{\execcolorR #1:#2:#3:#4:#5\od\let\revokeMPtransparencyspecial\dorevokeMPtransparencyspecial}
+\def\dohandleMPcmyktransparency#1#2#3#4#5#6{\execcolorC#1:#2:#3:#4:#5:#6\od\let\revokeMPtransparencyspecial\dorevokeMPtransparencyspecial}
+\def\dohandleMPgraytransparency #1#2#3{\execcolorS #1:#2:#3\od\let\revokeMPtransparencyspecial\dorevokeMPtransparencyspecial}
+\def\dohandleMPspottransparency#1#2#3#4#5#6{\execcolorP#1:#2:#3:#4:#5:#6\od\let\revokeMPtransparencyspecial\dorevokeMPtransparencyspecial}
+
+\def\dorevokeMPtransparencyspecial
+ {\PDFcode{\PDFtransparencyresetidentifier\space gs}%
+ \let\revokeMPtransparencyspecial\relax}
+
+\defineMPspecial{3} % rgb
+ {\setxvalue{\@@MPSK\gMPs6}{\noexpand\dohandleMPrgbtransparency{\gMPs3}{\gMPs4}{\gMPs5}{\gMPs1}{\gMPs2}}}
+
+\defineMPspecial{4} % cmyk
+ {\setxvalue{\@@MPSK\gMPs7}{\noexpand\dohandleMPcmyktransparency{\gMPs3}{\gMPs4}{\gMPs5}{\gMPs6}{\gMPs1}{\gMPs2}}}
+
+\defineMPspecial{5} % spot
+ {\setxvalue{\@@MPSK\gMPs7}{\noexpand\dohandleMPspottransparency{\gMPs3}{\gMPs4}{\gMPs5}{\gMPs6}{\gMPs1}{\gMPs2}}%
+ }%\checkMPspot{\gMPs3}{\gMPs4}{\gMPs5}{\gMPs6}}
+
+%D Shading is an example of a more advanced graphic feature,
+%D but users will seldom encounter those complications. Here
+%D we only show a few simple examples, but many other
+%D alternatives are possible by setting up the functions built
+%D in \PDF\ in the appropriate way.
+%D
+%D Shading has to do with interpolation between two or more
+%D points or user supplied ranges. In \PDF, the specifications
+%D of a shade has to be encapsulated in objects and passed on
+%D as resources. This is a \PDF\ level 1.3. feature. One can
+%D simulate three dimensional shades as well and define simple
+%D functions using a limited set of \POSTSCRIPT\ primitives.
+%D Given the power of \METAPOST\ and these \PDF\ features, we
+%D can achieve superb graphic effects.
+%D
+%D Since everything is hidden in \TEX\ and \METAPOST\ graphics,
+%D we can stick to high level \CONTEXT\ command, as shown in
+%D the following exmples.
+%D
+%D \startbuffer
+%D \startuniqueMPgraphic{CircularShade}
+%D path p ; p := unitsquare xscaled \overlaywidth yscaled \overlayheight ;
+%D circular_shade(p,0,.2red,.9red) ;
+%D \stopuniqueMPgraphic
+%D
+%D \startuniqueMPgraphic{LinearShade}
+%D path p ; p := unitsquare xscaled \overlaywidth yscaled \overlayheight ;
+%D linear_shade(p,0,.2blue,.9blue) ;
+%D \stopuniqueMPgraphic
+%D
+%D \startuniqueMPgraphic{DuotoneShade}
+%D path p ; p := unitsquare xscaled \overlaywidth yscaled \overlayheight ;
+%D linear_shade(p,2,.5green,.5red) ;
+%D \stopuniqueMPgraphic
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D \getbuffer
+%D
+%D These graphics can be hooked into the overlay mechanism,
+%D which is available in many commands.
+%D
+%D \startbuffer
+%D \defineoverlay[demo 1][\uniqueMPgraphic{CircularShade}]
+%D \defineoverlay[demo 2][\uniqueMPgraphic {LinearShade}]
+%D \defineoverlay[demo 3][\uniqueMPgraphic {DuotoneShade}]
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D \getbuffer
+%D
+%D These backgrounds can for instance be applied to \type
+%D {\framed}:
+%D
+%D \startbuffer
+%D \setupframed[width=3cm,height=2cm,frame=off]
+%D \startcombination[3*1]
+%D {\framed[backgroundachtergrond=demo 1]{\bfd \white Demo 1}} {}
+%D {\framed[backgroundachtergrond=demo 2]{\bfd \white Demo 2}} {}
+%D {\framed[backgroundachtergrond=demo 3]{\bfd \white Demo 3}} {}
+%D \stopcombination
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D \startlinecorrection
+%D \getbuffer
+%D \stoplinecorrection
+%D
+%D There are a few more alternatives, determined by the second
+%D parameter passed to \type {circular_shade} and alike.
+%D
+%D \def\SomeShade#1#2#3#4#5%
+%D {\startuniqueMPgraphic{Shade-#1}
+%D width := \overlaywidth ;
+%D height := \overlayheight ;
+%D path p ; p := unitsquare xscaled width yscaled height ;
+%D #2_shade(p,#3,#4,#5) ;
+%D \stopuniqueMPgraphic
+%D \defineoverlay[Shade-#1][\uniqueMPgraphic{Shade-#1}]%
+%D \framed[backgroundachtergrond=Shade-#1,width=2cm,height=2cm,frame=off]{}}
+%D
+%D \startlinecorrection
+%D \startcombination[5*1]
+%D {\SomeShade{10}{circular}{0}{.3blue}{.9blue}} {circular 0}
+%D {\SomeShade{11}{circular}{1}{.3blue}{.9blue}} {circular 1}
+%D {\SomeShade{12}{circular}{2}{.3blue}{.9blue}} {circular 2}
+%D {\SomeShade{13}{circular}{3}{.3blue}{.9blue}} {circular 3}
+%D {\SomeShade{14}{circular}{4}{.3blue}{.9blue}} {circular 4}
+%D \stopcombination
+%D \stoplinecorrection
+%D
+%D \blank
+%D
+%D \startlinecorrection
+%D \startcombination[5*1]
+%D {\SomeShade{20}{circular}{0}{.9green}{.3green}} {circular 0}
+%D {\SomeShade{21}{circular}{1}{.9green}{.3green}} {circular 1}
+%D {\SomeShade{22}{circular}{2}{.9green}{.3green}} {circular 2}
+%D {\SomeShade{23}{circular}{3}{.9green}{.3green}} {circular 3}
+%D {\SomeShade{24}{circular}{4}{.9green}{.3green}} {circular 4}
+%D \stopcombination
+%D \stoplinecorrection
+%D
+%D \blank
+%D
+%D \startlinecorrection
+%D \startcombination[4*1]
+%D {\SomeShade{30}{linear}{0}{.3red}{.9red}} {linear 0}
+%D {\SomeShade{31}{linear}{1}{.3red}{.9red}} {linear 1}
+%D {\SomeShade{32}{linear}{2}{.3red}{.9red}} {linear 2}
+%D {\SomeShade{33}{linear}{3}{.3red}{.9red}} {linear 3}
+%D \stopcombination
+%D \stoplinecorrection
+%D
+%D These macros closely cooperate with the \METAPOST\ module
+%D \type {mp-spec.mp}, which is part of the \CONTEXT\
+%D distribution.
+%D
+%D The low level (\PDF) implementation is based on the \TEX\
+%D based \METAPOST\ to \PDF\ converter. Shading is supported
+%D by overloading the \type {fill} operator as implemented
+%D earlier. In \PDF\ type~2 and~3 shading functions are
+%D specified in terms of:
+%D
+%D \starttabulate[|Tl|l|]
+%D \NC /Domain \NC sort of meeting range \NC \NR
+%D \NC /C0 \NC inner shade \NC \NR
+%D \NC /C1 \NC outer shade \NC \NR
+%D \NC /N \NC smaller values, bigger inner circles \NC \NR
+%D \stoptabulate
+
+\newcount\currentPDFshade % 0 % global (document wide) counter
+
+% \def\dosetMPsomePDFshade#1#2% generic but needs refs
+% {\global\advance\currentPDFshade \plusone
+% \doPDFdictionaryobject{FDF}{ftn:Sh:\the\currentPDFshade}
+% {/FunctionType 2
+% /Domain [\gMPs1 \gMPs2]
+% /C0 [\MPshadeA]
+% /C1 [\MPshadeB]
+% /N \gMPs3}%
+% \doPDFgetobjectreference{FDF}{ftn:Sh:\the\currentPDFshade}\PDFobjectreference
+% \doPDFdictionaryobject{FDF}{obj:Sh:\the\currentPDFshade}
+% {/ShadingType #1
+% /ColorSpace /\MPresolvedspace
+% /Function \PDFobjectreference\space
+% /Coords [\MPshadeC]
+% /Extend [true true]}%
+% \doPDFgetobjectreference{FDF}{obj:Sh:\the\currentPDFshade}\PDFobjectreference
+% \appendtoPDFdocumentshades{/Sh\the\currentPDFshade\space\PDFobjectreference}%
+% \setxvalue{\@@MPSK#2}{\noexpand\dohandleMPshade{\the\currentPDFshade}}}
+
+\def\dosetMPsomePDFshade#1#2%
+ {\immediate\pdfobj
+ {<</FunctionType 2
+ /Domain [\gMPs1 \gMPs2]
+ /C0 [\MPshadeA]
+ /C1 [\MPshadeB]
+ /N \gMPs3>>}%
+ \immediate\pdfobj
+ {<</ShadingType #1
+ /ColorSpace /\MPresolvedspace
+ /Function \the\pdflastobj\space 0 R
+ /Coords [\MPshadeC]
+ /Extend [true true]>>}%
+ \global\advance\currentPDFshade \plusone
+ \appendtoPDFdocumentshades{/Sh\the\currentPDFshade\space\the\pdflastobj\space0 R }%
+ \setxvalue{\@@MPSK#2}{\noexpand\dohandleMPshade{\the\currentPDFshade}}}
+
+\def\dosetMPlinearshade {\dosetMPsomePDFshade2}% #1
+\def\dosetMPcircularshade{\dosetMPsomePDFshade3}% #1
+
+\defineMPspecial{30}
+ {\expanded{\resolveMPrgbcolor{\gMPs4}{\gMPs5}{\gMPs6}}\to\MPshadeA
+ \expanded{\resolveMPrgbcolor{\gMPs{9}}{\gMPs{10}}{\gMPs{11}}}\to\MPshadeB
+ \edef\MPshadeC{\gMPs7 \gMPs8 \gMPs{12} \gMPs{13}}%
+ \dosetMPlinearshade{\gMPs{14}}}
+
+\defineMPspecial{31}
+ {\expanded{\resolveMPrgbcolor{\gMPs4}{\gMPs5}{\gMPs6}}\to\MPshadeA
+ \expanded{\resolveMPrgbcolor{\gMPs{10}}{\gMPs{11}}{\gMPs{12}}}\to\MPshadeB
+ \edef\MPshadeC{\gMPs7 \gMPs8 \gMPs9 \gMPs{13} \gMPs{14} \gMPs{15}}%
+ \dosetMPcircularshade{\gMPs{16}}}
+
+\defineMPspecial{32}
+ {\expanded{\resolveMPcmykcolor{\gMPs4}{\gMPs5}{\gMPs6}{\gMPs7}}\to\MPshadeA
+ \expanded{\resolveMPcmykcolor{\gMPs{10}}{\gMPs{11}}{\gMPs{12}}{\gMPs{13}}}\to\MPshadeB
+ \edef\MPshadeC{\gMPs8 \gMPs9 \gMPs{14} \gMPs{15}}%
+ \dosetMPlinearshade{\gMPs{16}}}
+
+\defineMPspecial{33}
+ {\expanded{\resolveMPcmykcolor{\gMPs4}{\gMPs5}{\gMPs6}{\gMPs7}}\to\MPshadeA
+ \expanded{\resolveMPcmykcolor{\gMPs{11}}{\gMPs{12}}{\gMPs{13}}{\gMPs{14}}}\to\MPshadeB
+ \edef\MPshadeC{\gMPs8 \gMPs9 \gMPs{10} \gMPs{15} \gMPs{16} \gMPs{17}}%
+ \dosetMPcircularshade{\gMPs{18}}}
+
+\defineMPspecial{34}
+ {\expanded{\resolveMPspotcolor{\gMPs4}{\gMPs5}{\gMPs6}{\gMPs7}}\to\MPshadeA
+ \expanded{\resolveMPspotcolor{\gMPs{10}}{\gMPs{11}}{\gMPs{12}}{\gMPs{13}}}\to\MPshadeB
+ \edef\MPshadeC{\gMPs8 \gMPs9 \gMPs{14} \gMPs{15}}%
+ \dosetMPlinearshade{\gMPs{16}}}
+
+\defineMPspecial{35}
+ {\expanded{\resolveMPcmykcolor{\gMPs4}{\gMPs5}{\gMPs6}{\gMPs7}}\to\MPshadeA
+ \expanded{\resolveMPcmykcolor{\gMPs{11}}{\gMPs{12}}{\gMPs{13}}{\gMPs{14}}}\to\MPshadeB
+ \edef\MPshadeC{\gMPs8 \gMPs9 \gMPs{10} \gMPs{15} \gMPs{16} \gMPs{17}}%
+ \dosetMPcircularshade{\gMPs{18}}}
+
+
+\newconditional\ignoreMPpath
+
+\def\dohandleMPshade#1%
+ {\revokeMPtransparencyspecial
+ \settrue\ignoreMPpath
+ \def\extraMPpathcode{/Sh#1 sh Q}%
+ \chardef\finiMPpath\zerocount
+ \PDFcode{q /Pattern cs}}
+
+%D Figure inclusion is kind of strange to \METAPOST, but when
+%D Santiago Muelas started discussing this with me, I was able
+%D to cook up a solution using specials.
+
+\defineMPspecial{10}
+ {\setxvalue{\@@MPSK\gMPs8}%
+ {\noexpand\handleMPfigurespecial{\gMPs1}{\gMPs2}{\gMPs3}{\gMPs4}{\gMPs5}{\gMPs6}{\gMPs7}{\gMPs8}}}
+
+\def\handleMPfigurespecial#1#2#3#4#5#6#7#8% todo : combine with ext fig
+ {\global\letvalue{\@@MPSK#8}\empty
+ \vbox to \zeropoint
+ {\vss
+ \hbox to \zeropoint
+ {\ifcase\pdfoutput\or % will be hooked into the special driver
+ \doiffileelse{#7}
+ {\doifundefinedelse{mps:x:#7}
+ {\immediate\pdfximage\!!width\onebasepoint\!!height\onebasepoint{#7}%
+ \setxvalue{mps:x:#7}{\pdfrefximage\the\pdflastximage}}%
+ {\message{[reusing figure #7]}}%
+ \PDFcode{q #1 #2 #3 #4 #5 #6 cm}%
+ \rlap{\getvalue{mps:x:#7}}%
+ \PDFcode{Q}}
+ {\message{[unknown figure #7]}}%
+ \fi
+ \hss}}}
+
+%D An example of using both special features is the
+%D following.
+%D
+%D \starttyping
+%D \startMPpage
+%D externalfigure "hakker1b.png" scaled 22cm rotated 10 shifted (-2cm,0cm);
+%D externalfigure "hakker1b.png" scaled 10cm rotated -10 ;
+%D externalfigure "hakker1b.png" scaled 7cm rotated 45 shifted (8cm,12cm) ;
+%D path p ; p := unitcircle xscaled 15cm yscaled 20cm;
+%D path q ; q := p rotatedaround(center p,90) ;
+%D path r ; r := buildcycle(p,q) ; clip currentpicture to r ;
+%D path s ; s := boundingbox currentpicture enlarged 5mm ;
+%D picture c ; c := currentpicture ; currentpicture := nullpicture ;
+%D circular_shade(s,0,.2red,.9red) ;
+%D addto currentpicture also c ;
+%D \stopMPpage
+%D \stoptyping
+
+%D This is some experimental hyperlink driver that I wrote
+%D for Mark Wicks.
+
+\defineMPspecial{20}
+ {\setxvalue{\@@MPSK\gMPs6}%
+ {\noexpand\handleMPhyperlink{\gMPs1}{\gMPs2}{\gMPs3}{\gMPs4}{\gMPs5}{\gMPs6}}}
+
+\def\handleMPhyperlink#1#2#3#4#5#6%
+ {\global\letvalue{\@@MPSK#6}\empty
+ \setbox\scratchbox\hbox
+ {\setbox\scratchbox\null
+ \wd\scratchbox\dimexpr-#1\onebasepoint+#3\onebasepoint\relax
+ \ht\scratchbox\dimexpr-#2\onebasepoint+#4\onebasepoint\relax
+ \incolorfalse
+ \gotobox{\box\scratchbox}[#5]}%
+ \setbox\scratchbox\hbox
+ {\hskip\dimexpr\MPxoffset\onebasepoint+#1\onebasepoint\relax
+ \raise\dimexpr\MPyoffset\onebasepoint+#2\onebasepoint\relax
+ \box\scratchbox}%
+ \smashbox\scratchbox
+ \box\scratchbox}
+
+%D This special (number 50) passes positions to a tex file.
+%D This method uses a two||pass approach an (mis|)|used the
+%D context positioning macros. In \type {core-pos} we will
+%D implement the low level submacro needed.
+%D
+%D \startbuffer
+%D \definelayer[test]
+%D
+%D \setlayer
+%D [test]
+%D [x=\MPx{somepos-1},y=\MPy{somepos-1}]
+%D {Whatever we want here!}
+%D
+%D \setlayer
+%D [test]
+%D [x=\MPx{somepos-2},y=\MPy{somepos-2}]
+%D {Whatever we need there!}
+%D
+%D \startuseMPgraphic{oeps}
+%D draw fullcircle scaled 6cm withcolor red ;
+%D register ("somepos-1",1cm,2cm,center currentpicture) ;
+%D register ("somepos-2",4cm,3cm,(-1cm,-2cm)) ;
+%D \stopuseMPgraphic
+%D
+%D \framed[background=test,offset=overlay]{\useMPgraphic{oeps}}
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D Here the width and height are not realy used, but one can
+%D imagine situations where tex has to work with values
+%D calculated by \METAPOST.
+%D
+%D \startlinecorrection
+%D \getbuffer
+%D \stoplinecorrection
+%D
+%D Later we will implement a more convenient macro:
+%D
+%D \starttyping
+%D \setMPlayer [test] [somepos-1] {Whatever we want here!}
+%D \setMPlayer [test] [somepos-2] {Whatever we need there!}
+%D \stoptyping
+
+\defineMPspecial{50} % x y width height label
+ {\dosavepositionwhd
+ {\gMPs5}%
+ {0}%
+ {\the\dimexpr-\MPllx\onebasepoint+\gMPs1\onebasepoint\relax}
+ {\the\dimexpr\gMPs2\onebasepoint-\scratchdimen+\MPury\onebasepoint\relax}%
+ {\the\dimexpr\gMPs3\onebasepoint\relax}%
+ {\the\dimexpr\gMPs4\onebasepoint\relax}%
+ {0pt}}
+
+%D A few auxiliary macros. This will move to colo-ini.
+
+\def\MPgrayspace{DeviceGray}
+\def\MPrgbspace {DeviceRGB}
+\def\MPcmykspace{DeviceCMYK}
+\let\MPspotspace\MPgrayspace
+
+\def\MPcmykBlack{0 0 0 0}
+\def\MPcmykWhite{0 0 0 1}
+
+\def\startMPcolorresolve
{\bgroup
- \let\finishMPgraphic\egroup
- \doprocessMPtoPDFfile}
+ \def\dostartgraycolormode##1%
+ {\global\let\MPresolvedspace\MPgrayspace
+ \xdef\MPresolvedcolor{##1}}%
+ \def\dostartrgbcolormode ##1##2##3%
+ {\global\let\MPresolvedspace\MPrgbspace
+ \xdef\MPresolvedcolor{##1 ##2 ##3}}%
+ \def\dostartcmykcolormode##1##2##3##4%
+ {\global\let\MPresolvedspace\MPcmykspace
+ \xdef\MPresolvedcolor{##1 ##2 ##3 ##4}}%
+ \def\dostartspotcolormode##1##2%
+ {\global\let\MPspotspace\empty % left over ?
+ \xdef\MPresolvedspace{##1}%
+ \xdef\MPresolvedcolor{##2}%
+ \global\let\MPspotspace\MPresolvedspace}% signal
+ \dostartgraycolormode\!!zerocount} % kind of hackery initialization
+
+\let\stopMPcolorresolve\egroup
+
+\def\resolveMPrgbcolor#1#2#3\to#4%
+ {\startMPcolorresolve
+ \execcolorR#1:#2:#3:0:0\od
+ \stopMPcolorresolve
+ \let#4\MPresolvedcolor}
+
+\def\resolveMPcmykcolor#1#2#3#4\to#5%
+ {\startMPcolorresolve
+ \execcolorC#1:#2:#3:#4:0:0\od
+ \stopMPcolorresolve
+ \let#5\MPresolvedcolor}
+
+\def\resolveMPgraycolor#1\end\to#2%
+ {\startMPcolorresolve
+ \execcolorS#1:0:0\od
+ \stopMPcolorresolve
+ \let#2\MPresolvedcolor}
+
+\def\resolveMPspotcolor#1#2#3#4\end\to#5%
+ {\startMPcolorresolve
+ \ifnum#2>\plusone
+ \checkmultitonecolor{#1}%
+ \fi
+ \execcolorP#1:#2:#3:#4:0:0\od
+ \stopMPcolorresolve
+ \let#5\MPresolvedcolor}
+
+%D \macros
+%D {dogetPDFmediabox}
+%D
+%D The next macro can be used to find the mediabox of a \PDF\
+%D illustration.
+%D
+%D \starttyping
+%D \dogetPDFmediabox
+%D {filename}
+%D {new dimen}{new dimen}{new dimen}{new dimen}
+%D \stoptyping
+%D
+%D Beware of dimen clashes: this macro uses the 5~default
+%D scratch registers! When no file or mediabox is found, the
+%D dimensions are zeroed.
+\def\dogetPDFmediabox#1#2#3#4#5%
+ {\bgroup
+ \def\PDFxscale{1}%
+ \def\PDFyscale{1}%
+ \uncatcodespecials
+ \endlinechar\minusone
+ \def\checkPDFtypepage##1/Type /Page##2##3\done%
+ {\ifx##2\relax
+ \else\if##2s% accept /Page and /Pages
+ \let\doprocessPDFline\findPDFmediabox
+ \else
+ \let\doprocessPDFline\findPDFmediabox
+ \fi\fi}%
+ \def\findPDFtypepage
+ {\expandafter\checkPDFtypepage\fileline/Type /Page\relax\done}%
+ \def\checkPDFmediabox##1/MediaBox##2##3\done%
+ {\ifx##2\relax \else
+ \setPDFmediabox##2##3\done
+ \fileprocessedtrue
+ \fi}%
+ \def\findPDFmediabox
+ {\expandafter\checkPDFmediabox\fileline/MediaBox\relax\done}%
+ \let\doprocessPDFline\findPDFtypepage
+ \doprocessfile\scratchread{#1}\doprocessPDFline
+ \egroup
+ \ifx\PDFxoffset\undefined
+ #2=\zeropoint
+ #3=\zeropoint
+ #4=\zeropoint
+ #5=\zeropoint
+ \else
+ #2=\PDFxoffset\onebasepoint
+ #3=\PDFyoffset\onebasepoint
+ #4=\PDFwidth
+ #5=\PDFheight
+ \fi}
+
+\def\setPDFboundingbox#1#2#3#4#5#6%
+ {\dimen0=#1\dimen0=#5\dimen0
+ \ScaledPointsToBigPoints{\number\dimen0}\PDFxoffset
+ \dimen0=#3\dimen0=#5\dimen0
+ \xdef\PDFwidth{\the\dimen0}%
+ \dimen0=#2\dimen0=#6\dimen0
+ \ScaledPointsToBigPoints{\number\dimen0}\PDFyoffset
+ \dimen0=#4\dimen0=#6\dimen0
+ \xdef\PDFheight{\the\dimen0}%
+ \global\let\PDFxoffset\PDFxoffset
+ \global\let\PDFyoffset\PDFyoffset}
+
+\def\setPDFmediabox#1[#2 #3 #4 #5]#6\done
+ {\dimen2=#2\onebasepoint\dimen2=-\dimen2 % \dimen2=-#2\onebasepoint also works since tex handles --
+ \dimen4=#3\onebasepoint\dimen4=-\dimen4 % \dimen4=-#3\onebasepoint also works since tex handles --
+ \dimen6=#4\onebasepoint\advance\dimen6 \dimen2
+ \dimen8=#5\onebasepoint\advance\dimen8 \dimen4
+ \setPDFboundingbox{\dimen2}{\dimen4}{\dimen6}{\dimen8}\PDFxscale\PDFyscale}
+
+%D End of soon obsolete code.
+
+\startMPinitializations
+ mp_shade_version := 2 ;
+\stopMPinitializations
+
+%D Here comes the traditional \MKII\ converter.
+%D
%D Because we want to test as fast as possible, we first
%D define the \POSTSCRIPT\ operators that \METAPOST\ uses.
%D We don't define irrelevant ones, because these are
%D skipped anyway.
-
+%D
%D The converter can be made a bit faster by replacing the
%D two test macros (the ones with the many \type {\if's}) by
%D a call to named branch macros (something \typ {\getvalue
@@ -1215,97 +2128,6 @@
%D
%D But, this one is still too inaccurate, so we now have:
-%D We cannot use \type {\beginETEX} here since in plain we
-%D get \type {\outer} problems, sigh.
-
-%OLD \beginTEX
-%OLD
-%OLD \def\MPcriteriumA {512pt} % scale
-%OLD \def\MPcriteriumB {2pt} % scale
-%OLD
-%OLD \endTEX
-%OLD
-%OLD \ifx\MPcriteriumA\undefined
-%OLD
-%OLD \newdimen\MPcriteriumA \MPcriteriumA=512pt
-%OLD \newdimen\MPcriteriumB \MPcriteriumB= 2pt
-%OLD
-%OLD \fi
-
-%OLD \def\doMPconcat#1#2#3#4%
-%OLD {\dimen12=#1\onepoint % p_x
-%OLD \dimen14=#3\onepoint % p_y
-%OLD %
-%OLD \chardef\MPfactor\zerocount
-%OLD \ifdim\dimen4<\MPcriteriumB\ifdim\dimen4>-\MPcriteriumB
-%OLD \ifdim\dimen6<\MPcriteriumB\ifdim\dimen6>-\MPcriteriumB
-%OLD \ifdim\dimen8<\MPcriteriumB\ifdim\dimen8>-\MPcriteriumB
-%OLD \ifdim\dimen10<\MPcriteriumB\ifdim\dimen10>-\MPcriteriumB
-%OLD \chardef\MPfactor\plusone
-%OLD \fi\fi
-%OLD \fi\fi
-%OLD \fi\fi
-%OLD \fi\fi
-%OLD \ifcase\MPfactor % spurious 0 removed
-%OLD \chardef\MPfactor\plusone
-%OLD \ifdim\dimen12<\MPcriteriumA\ifdim\dimen12>-\MPcriteriumA
-%OLD \ifdim\dimen14<\MPcriteriumA\ifdim\dimen14>-\MPcriteriumA
-%OLD \chardef\MPfactor16
-%OLD \fi\fi
-%OLD \fi\fi
-%OLD \fi
-%OLD %
-%OLD \multiply\dimen12 \MPfactor
-%OLD \multiply\dimen14 \MPfactor
-%OLD %
-%OLD \doMPreducedimen12
-%OLD \doMPreducedimen14
-%OLD %
-%OLD \dimen16 \dimen 0
-%OLD \multiply \dimen16 \dimen 6
-%OLD \dimen20 \dimen 2
-%OLD \multiply \dimen20 \dimen 4
-%OLD \advance \dimen16 -\dimen20
-%OLD %
-%OLD \dimen18 \dimen12
-%OLD \multiply \dimen18 \dimen 6
-%OLD \dimen20 \dimen14
-%OLD \multiply \dimen20 \dimen 4
-%OLD \advance \dimen18 -\dimen20
-%OLD \dimen20 \dimen 4
-%OLD \multiply \dimen20 \dimen10
-%OLD \advance \dimen18 \dimen20
-%OLD \dimen20 \dimen 6
-%OLD \multiply \dimen20 \dimen 8
-%OLD \advance \dimen18 -\dimen20
-%OLD %
-%OLD \multiply \dimen12 -\dimen 2
-%OLD \multiply \dimen14 \dimen 0
-%OLD \advance \dimen12 \dimen14
-%OLD \dimen20 \dimen 2
-%OLD \multiply \dimen20 \dimen 8
-%OLD \advance \dimen12 \dimen20
-%OLD \dimen20 \dimen 0
-%OLD \multiply \dimen20 \dimen10
-%OLD \advance \dimen12 -\dimen20
-%OLD %
-%OLD \ifdim\dimen16=\onepoint \else
-%OLD \ifdim\dimen16>\MPconcatfactor \onepoint \relax
-%OLD \doMPreducedimen16
-%OLD \divide \dimen18 \dimen16 \doMPexpanddimen18
-%OLD \divide \dimen12 \dimen16 \doMPexpanddimen12
-%OLD \else
-%OLD \divide \dimen18 \dimen16 \doMPexpanddimen18 \doMPexpanddimen18
-%OLD \divide \dimen12 \dimen16 \doMPexpanddimen12 \doMPexpanddimen12
-%OLD \fi
-%OLD \fi
-%OLD %
-%OLD \divide\dimen18 \MPfactor
-%OLD \divide\dimen12 \MPfactor
-%OLD %
-%OLD \edef#2{\withoutpt\the\dimen18}% % p_x^\prime
-%OLD \edef#4{\withoutpt\the\dimen12}} % p_y^\prime
-
%D DHL: Ideally, $r_x$, $r_y$, $s_x$, $s_y$ should be in macros, not
%D dimensions (they are scalar quantities after all, not lengths). I
%D suppose the authors decided to do calculations with integer
@@ -1814,7 +2636,7 @@
{\ifcase\inlineMPspecials\or
\advance\nofMParguments \minusone % pop the size
\fi
- \ifundefined\MPspecial
+ \ifundefined\MPspecial % beware, no real \if
\message{[unknown \MPspecial]}%
\else
\csname\MPspecial\endcsname
diff --git a/Master/texmf-dist/tex/context/base/meta-pdf.mkiv b/Master/texmf-dist/tex/context/base/meta-pdf.mkiv
index eded7d59dbc..fa9627fbe75 100644
--- a/Master/texmf-dist/tex/context/base/meta-pdf.mkiv
+++ b/Master/texmf-dist/tex/context/base/meta-pdf.mkiv
@@ -1,8 +1,8 @@
%D \module
%D [ file=meta-pdf,
-%D version=2006.29.09,
-%D title=\CONTEXT\ Support Macros,
-%D subtitle=\METAPOST\ to \PDF\ conversion,
+%D version=2006.06.07,
+%D title=\METAPOST\ Graphics,
+%D subtitle=Conversion to \PDF,
%D author=Hans Hagen \& others (see text),
%D date=\currentdate,
%D copyright=\PRAGMA]
@@ -11,39 +11,53 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+\registerctxluafile{meta-pdf}{1.003}
+
+%D We will clean up the color mess later.
+
+\writestatus{loading}{MetaPost Graphics / MPS to PDF}
+
\unprotect
-% Using test case at end of meta-pdf.tex:
-%
-% \useMPgraphic{1}
-% \testfeatureonce{250}{\setbox0\hbox{\convertMPtoPDF{test-mps-mpgraph.1}{1}{1}}}
-%
-% 8.4 : mkii, direct parsing by tex
-% 11.8 : mkiv, dirty conversion (10.8 with dirty tricks)
-% 14.5 : mkiv, clean conversion
-% 7.4 : mkiv, simulated clean direct lua from mp
-% 0.3 : time taken by tex to handle converted code
+%D \macros
+%D {convertMPtoPDF}
+%D
+%D The next set of macros implements \METAPOST\ to \PDF\
+%D conversion. The traditional method is in the MkII file.
+%D
+%D The main conversion command is:
+%D
+%D \starttyping
+%D \convertMPtoPDF {filename} {x scale} {y scale}
+%D \stoptyping
+%D
+%D The dimensions are derived from the bounding box. So we
+%D only have to say:
+%D
+%D \starttyping
+%D \convertMPtoPDF{mp-pra-1.eps}{1}{1}
+%D \convertMPtoPDF{mp-pra-1.eps}{.5}{.5}
+%D \stoptyping
-\registerctxluafile{meta-pdf}{1.003}
+\def\PDFMPformoffset
+ {\ifdefined\objectoffset\objectoffset\else\zeropoint\fi}
-%D Plugin.
+%D The main macro:
-\def\mkconvertMPtoPDF % watch the transparency reset
+\def\convertMPtoPDF#1#2#3% scaling no longer supported at this level (so #2 & #3 ignored)
{\vbox\bgroup
+ \message{[MP to PDF]}%
+ \xdef\MPfilename{#1}%
+ \glet\MPwidth \!!zeropoint
+ \glet\MPheight\!!zeropoint
+ \glet\MPllx \!!zerocount
+ \glet\MPlly \!!zerocount
+ \glet\MPurx \!!zerocount
+ \glet\MPury \!!zerocount
\forgetall
\offinterlineskip
- %\ifcase\blackoutMPgraphic\or\PDFcode{0 g 0 G}\fi % fixed in mp
\setbox\scratchbox\vbox\bgroup
- \setnormalcatcodes % we can be in verbatim or so
- \message{[MP to PDF]}%
- \startMPresources
- \PDFcomment{mps begin}%
- \PDFcode{q 1 0 0 1 0 0 cm}%
- \ctxlua{mptopdf.convertmpstopdf("\MPfilename")}\removeunwantedspaces
- \dohandleMPresettransparency % a bit messy here, should be a toks
- \PDFcode{Q}%
- \PDFcomment{mps end}%
- \stopMPresources
+ \ctxlua{mptopdf.convertmpstopdf("\MPfilename")}\removeunwantedspaces
\egroup
\setbox\scratchbox\hbox\bgroup
\hskip-\MPllx\onebasepoint
@@ -61,95 +75,400 @@
\dopackageMPgraphic\scratchbox
\egroup}
-\let\mkprocessMPtoPDFfile\mkconvertMPtoPDF
-
-% \def\TEXcode#1#2#3#4#5%
-% {\setbox\scratchbox\hbox
-% {\font\temp=#1\space at #2\onebasepoint
-% \temp
-% \MPfshowcommand{#3}}%
-% \setbox\scratchbox\hbox
-% {\hskip#4\onebasepoint
-% \raise#5\onebasepoint
-% \box\scratchbox}%
-% \smashbox\scratchbox
-% \box\scratchbox}
-
-% will be done better
-
-\def\MPStextext#1#2#3#4#5% if we clean up this plugin model, we can
- {\def\MPtextdata{#3}% % delegate the splitter to lua + redesign
- \def\MPtextsize{#2}%
- \def\lastMPmoveX{#4}%
- \def\lastMPmoveY{#5}%
- \defconvertedcommand\MPtextdata\MPtextdata % no edef
- \splitstring\MPtextdata\at::::\to\MPtexttag\and\MPtextnumber
- \executeifdefined{handleMPtext\MPtexttag}
- {\setbox\scratchbox\hbox
- {\font\temp=#1\space at #2\onebasepoint
- \let\c\char
- \temp
- \MPfshowcommand{#3}}%
- \setbox\scratchbox\hbox
- {\hskip#4\onebasepoint
- \raise#5\onebasepoint
- \box\scratchbox}%
- \smashbox\scratchbox
- \box\scratchbox}}
-
-%D We save the special variables on a stack. It's not that
-%D fast, but it make implementing the special more convenient.
-
-\def\MPSbegin
- {\nofMParguments\zerocount}
-
-\def\MPSend
- {\csname\MPspecial\endcsname}
-
-\def\MPSset
- {\advance\nofMParguments\plusone
- \expandafter\def\csname\@@MP\number\nofMParguments\endcsname}
-
-\def\gMPs#1{\csname\@@MP\number#1\endcsname}
+%D Objects (move all to backend)
+
+% \def\dopackageMPgraphic#1% #1 = boxregister
+% {\scratchdimen\PDFMPformoffset\relax
+% \ifdim\scratchdimen>\zeropoint % compensate for error
+% \setbox#1\vbox spread 2\scratchdimen
+% {\forgetall\vss\hbox spread 2\scratchdimen{\hss\box#1\hss}\vss}%
+% \fi
+% \setMPPDFobject{#1}%
+% \ifdim\scratchdimen>\zeropoint % compensate for error
+% \vbox to \MPheight
+% {\forgetall\vss\hbox to \MPwidth{\hss\getMPPDFobject\hss}\vss}%
+% \else
+% \getMPPDFobject
+% \fi}
+%
+% \def\setMPPDFobject#1% boxnumber
+% {\the\pdfbackendeveryxform
+% \finalizeobjectbox{#1}%
+% \immediate\pdfxform resources{\pdfcurrentresources}#1%
+% \edef\getMPPDFobject{\noexpand\pdfrefxform\the\pdflastxform}}
+%
+% \let\getMPPDFobject\relax
+
+% we don't need to package as each page has all resources anyway
+
+\let\dopackageMPgraphic\box
+
+%D \macros
+%D {deleteMPgraphic,
+%D startMPresources,
+%D stopMPresources}
+
+\ifx\deleteMPgraphic\undefined
+ \def\deleteMPgraphic#1{}
+\fi
+
+\ifx\startMPresources\undefined
+ \let\startMPresources\relax
+ \let\stopMPresources\relax
+\fi
+
+%D We implement extensions by using the \METAPOST\ special
+%D mechanism. Opposite to \TEX's specials, the \METAPOST\ ones
+%D are flushed before or after the graphic data, but thereby
+%D are no longer connected to a position.
+%D
+%D We implement specials by overloading the \type {fill}
+%D operator. By counting the fills, we can let the converter
+%D treat the appropriate fill in a special way. The
+%D specification of the speciality can have two forms,
+%D determined by the setting of a boolean variable:
+%D
+%D \starttyping
+%D _inline_specials_ := false ; % comment like code (default)
+%D _inline_specials_ := true ; % command like code
+%D \stoptyping
+%D
+%D When the specification is embedded as comment, it looks
+%D like:
+%D
+%D \starttyping
+%D %%MetaPostSpecial <size> <data> <number> <identifier>
+%D \stoptyping
+%D
+%D The in||line alternative is more tuned for \POSTSCRIPT,
+%D since it permits us to define a macro \type {special}.
+%D
+%D \starttyping
+%D inline : <data> <number> <identifier> <size> special
+%D \stoptyping
+%D
+%D The \type {identifier} determines what to do, and the data
+%D can be used to accomplish this. A type~2 shading function
+%D has identifier~2. Alltogether, the number of parameters is
+%D specified in \type {size}. The \type {number} is the number
+%D of the fill that needs the special treatment. For a type~2
+%D and~3 shaded fill, the datablock contains the following
+
+%D data:
+%D
+%D \starttyping
+%D from to n inner_r g b x y outer_r g b x y
+%D from to n inner_r g b x y radius outer_r g b x y radius
+%D \stoptyping
+
+\newconditional\manyMPspecials \settrue\manyMPspecials
+
+%D Since colors are not subjected to transformations, we can
+%D only use colors as signal. In our case, we use a dummy colored
+%D path with a red color component of \type {0.n}, so \type
+%D {0.001} is the first path and \type {0.010} the tenth. Since
+%D \METAPOST strips trailing zeros, we have to padd the string.
+
+\newif\ifMPcmykcolors
+\newif\ifMPspotcolors
+
+%D We support specials but assume that the files are somewhat simple
+%D ones wo we have dropped a few. The reason is that runtime \METAPOST\
+%D processing now uses \MPLIB\ so we only need to deal with the
+%D conversion here. See meta-pdh.mkiv (and older files) for more
+%D details. Here we just give a few examples.
+%D
+%D \startbuffer[mp]
+%D fill fullcircle xyscaled (3cm,1cm) withcolor \MPcolor{test} ;
+%D \stopbuffer
+%D
+%D \startbuffer[cmyk]
+%D \startcombination[4*1]
+%D {\definecolor[test][c=1,y=.3,k=.3] \processMPbuffer[mp]} {c=1 y=.3 k=.3}
+%D {\definecolor[test][c=.9,y=.15] \processMPbuffer[mp]} {c=.9 y=.15}
+%D {\definecolor[test][c=.25,y=.8] \processMPbuffer[mp]} {c=.25 y=.8}
+%D {\definecolor[test][c=.45,y=.1] \processMPbuffer[mp]} {c=.45 y=.1}
+%D \stopcombination
+%D \stopbuffer
+%D
+%D \placefigure
+%D {\CMYK\ support disabled,
+%D conversion to \RGB.}
+%D {\setupcolors[cmyk=nee,state=start]\getbuffer[cmyk]}
+%D
+%D \placefigure
+%D {\CMYK\ support enabled,
+%D no support in \METAPOST.}
+%D {\setupcolors[cmyk=ja,mpcmyk=nee,state=start]\getbuffer[cmyk]}
+%D
+%D \placefigure
+%D {\CMYK\ support enabled,
+%D no conversion to \RGB,
+%D support in \METAPOST}
+%D {\setupcolors[cmyk=ja,state=start]\getbuffer[cmyk]}
+%D
+%D Transparency support used specials 60 (rgb) and 61
+%D (cmyk).
+%D
+%D \startbuffer
+%D u := 2cm ; path p ; p := fullcircle scaled u shifted (u/4,0);
+%D
+%D fill p rotated 90 withcolor transparent(1,.5,yellow) ;
+%D fill p rotated 210 withcolor transparent(1,.5,green) ;
+%D fill p rotated 330 withcolor transparent(1,.5,blue) ;
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D \startlinecorrection \processMPbuffer \stoplinecorrection
+%D
+%D One can also communicate colors between \CONTEXT\ and
+%D \METAPOST:
+%D
+%D \startbuffer
+%D \definecolor[tcyan] [c=1,k=.2,t=.5]
+%D \definecolor[tmagenta][m=1,k=.2,t=.5]
+%D \definecolor[tyellow] [y=1,k=.2,t=.5]
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+%D
+%D \startbuffer
+%D u := 2cm ; path p ; p := fullcircle scaled u shifted (u/4,0);
+%D
+%D fill p rotated 90 withcolor \MPcolor{tcyan} ;
+%D fill p rotated 210 withcolor \MPcolor{tmagenta} ;
+%D fill p rotated 330 withcolor \MPcolor{tyellow} ;
+%D \stopbuffer
+%D
+%D \startlinecorrection \processMPbuffer \stoplinecorrection
+%D
+%D Shading is an example of a more advanced graphic feature,
+%D but users will seldom encounter those complications. Here
+%D we only show a few simple examples, but many other
+%D alternatives are possible by setting up the functions built
+%D in \PDF\ in the appropriate way.
+%D
+%D Shading has to do with interpolation between two or more
+%D points or user supplied ranges. In \PDF, the specifications
+%D of a shade has to be encapsulated in objects and passed on
+%D as resources. This is a \PDF\ level 1.3. feature. One can
+%D simulate three dimensional shades as well and define simple
+%D functions using a limited set of \POSTSCRIPT\ primitives.
+%D Given the power of \METAPOST\ and these \PDF\ features, we
+%D can achieve superb graphic effects.
+%D
+%D Since everything is hidden in \TEX\ and \METAPOST\ graphics,
+%D we can stick to high level \CONTEXT\ command, as shown in
+%D the following exmples.
+%D
+%D \startbuffer
+%D \startuniqueMPgraphic{CircularShade}
+%D path p ; p := unitsquare xscaled \overlaywidth yscaled \overlayheight ;
+%D circular_shade(p,0,.2red,.9red) ;
+%D \stopuniqueMPgraphic
+%D
+%D \startuniqueMPgraphic{LinearShade}
+%D path p ; p := unitsquare xscaled \overlaywidth yscaled \overlayheight ;
+%D linear_shade(p,0,.2blue,.9blue) ;
+%D \stopuniqueMPgraphic
+%D
+%D \startuniqueMPgraphic{DuotoneShade}
+%D path p ; p := unitsquare xscaled \overlaywidth yscaled \overlayheight ;
+%D linear_shade(p,2,.5green,.5red) ;
+%D \stopuniqueMPgraphic
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+%D
+%D These graphics can be hooked into the overlay mechanism,
+%D which is available in many commands.
+%D
+%D \startbuffer
+%D \defineoverlay[demo 1][\uniqueMPgraphic{CircularShade}]
+%D \defineoverlay[demo 2][\uniqueMPgraphic {LinearShade}]
+%D \defineoverlay[demo 3][\uniqueMPgraphic {DuotoneShade}]
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+%D
+%D These backgrounds can for instance be applied to \type
+%D {\framed}:
+%D
+%D \startbuffer
+%D \setupframed[width=3cm,height=2cm,frame=off]
+%D \startcombination[3*1]
+%D {\framed[backgroundachtergrond=demo 1]{\bfd \white Demo 1}} {}
+%D {\framed[backgroundachtergrond=demo 2]{\bfd \white Demo 2}} {}
+%D {\framed[backgroundachtergrond=demo 3]{\bfd \white Demo 3}} {}
+%D \stopcombination
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D \startlinecorrection
+%D \getbuffer
+%D \stoplinecorrection
+%D
+%D There are a few more alternatives, determined by the second
+%D parameter passed to \type {circular_shade} and alike.
+%D
+%D \def\SomeShade#1#2#3#4#5%
+%D {\startuniqueMPgraphic{Shade-#1}
+%D width := \overlaywidth ;
+%D height := \overlayheight ;
+%D path p ; p := unitsquare xscaled width yscaled height ;
+%D #2_shade(p,#3,#4,#5) ;
+%D \stopuniqueMPgraphic
+%D \defineoverlay[Shade-#1][\uniqueMPgraphic{Shade-#1}]%
+%D \framed[backgroundachtergrond=Shade-#1,width=2cm,height=2cm,frame=off]{}}
+%D
+%D \startlinecorrection
+%D \startcombination[5*1]
+%D {\SomeShade{10}{circular}{0}{.3blue}{.9blue}} {circular 0}
+%D {\SomeShade{11}{circular}{1}{.3blue}{.9blue}} {circular 1}
+%D {\SomeShade{12}{circular}{2}{.3blue}{.9blue}} {circular 2}
+%D {\SomeShade{13}{circular}{3}{.3blue}{.9blue}} {circular 3}
+%D {\SomeShade{14}{circular}{4}{.3blue}{.9blue}} {circular 4}
+%D \stopcombination
+%D \stoplinecorrection
+%D
+%D \startlinecorrection
+%D \startcombination[5*1]
+%D {\SomeShade{20}{circular}{0}{.9green}{.3green}} {circular 0}
+%D {\SomeShade{21}{circular}{1}{.9green}{.3green}} {circular 1}
+%D {\SomeShade{22}{circular}{2}{.9green}{.3green}} {circular 2}
+%D {\SomeShade{23}{circular}{3}{.9green}{.3green}} {circular 3}
+%D {\SomeShade{24}{circular}{4}{.9green}{.3green}} {circular 4}
+%D \stopcombination
+%D \stoplinecorrection
+%D
+%D \startlinecorrection
+%D \startcombination[4*1]
+%D {\SomeShade{30}{linear}{0}{.3red}{.9red}} {linear 0}
+%D {\SomeShade{31}{linear}{1}{.3red}{.9red}} {linear 1}
+%D {\SomeShade{32}{linear}{2}{.3red}{.9red}} {linear 2}
+%D {\SomeShade{33}{linear}{3}{.3red}{.9red}} {linear 3}
+%D \stopcombination
+%D \stoplinecorrection
+%D
+%D These macros closely cooperate with the \METAPOST\ module
+%D \type {mp-spec.mp}, which is part of the \CONTEXT\
+%D distribution.
+%D
+%D The low level (\PDF) implementation is based on the \TEX\
+%D based \METAPOST\ to \PDF\ converter. Shading is supported
+%D by overloading the \type {fill} operator as implemented
+%D earlier. In \PDF\ type~2 and~3 shading functions are
+%D specified in terms of:
+%D
+%D \starttabulate[|Tl|l|]
+%D \NC /Domain \NC sort of meeting range \NC \NR
+%D \NC /C0 \NC inner shade \NC \NR
+%D \NC /C1 \NC outer shade \NC \NR
+%D \NC /N \NC smaller values, bigger inner circles \NC \NR
+%D \stoptabulate
+%D
+%D An example of using both special features is the
+%D following.
+%D
+%D \starttyping
+%D \startMPpage
+%D externalfigure "hakker1b.png" scaled 22cm rotated 10 shifted (-2cm,0cm);
+%D externalfigure "hakker1b.png" scaled 10cm rotated -10 ;
+%D externalfigure "hakker1b.png" scaled 7cm rotated 45 shifted (8cm,12cm) ;
+%D path p ; p := unitcircle xscaled 15cm yscaled 20cm;
+%D path q ; q := p rotatedaround(center p,90) ;
+%D path r ; r := buildcycle(p,q) ; clip currentpicture to r ;
+%D path s ; s := boundingbox currentpicture enlarged 5mm ;
+%D picture c ; c := currentpicture ; currentpicture := nullpicture ;
+%D circular_shade(s,0,.2red,.9red) ;
+%D addto currentpicture also c ;
+%D \stopMPpage
+%D \stoptyping
+
+\startMPinitializations
+ mp_shade_version := 2 ;
+\stopMPinitializations
+
+%D This is done much cleaner in \MPLIB.
+
+% %D A common hook.
+%
+% \let\MPfshowcommand\empty
+%
+% \def\MPStextext#1#2#3#4#5% if we clean up this plugin model, we can
+% {\def\MPtextdata{#3}% % delegate the splitter to lua + redesign
+% \def\MPtextsize{#2}%
+% \def\lastMPmoveX{#4}%
+% \def\lastMPmoveY{#5}%
+% \defconvertedcommand\MPtextdata\MPtextdata % no edef
+% \splitstring\MPtextdata\at::::\to\MPtexttag\and\MPtextnumber
+% \executeifdefined{handleMPtext\MPtexttag}
+% {\setbox\scratchbox\hbox
+% {\font\temp=#1\space at #2\onebasepoint
+% \let\c\char
+% \temp
+% \MPfshowcommand{#3}}%
+% \setbox\scratchbox\hbox
+% {\hskip#4\onebasepoint
+% \raise#5\onebasepoint
+% \box\scratchbox}%
+% \smashbox\scratchbox
+% \box\scratchbox}}
+
+\unexpanded\def\MPStextext#1#2#3#4#5% if we clean up this plugin model, we can
+ {\setbox\scratchbox\hbox
+ {\font\temp=#1\space at #2\onebasepoint \let\c\char \temp #3}%
+ \setbox\scratchbox\hbox
+ {\hskip#4\onebasepoint \raise#5\onebasepoint \box\scratchbox}%
+ \smashbox\scratchbox
+ \box\scratchbox}
%D The boundingbox.
\def\MPSboundingbox#1#2#3#4%
- {\xdef\MPllx{#1}%
- \xdef\MPlly{#2}%
- \xdef\MPurx{#3}%
- \xdef\MPury{#4}%
+ {\xdef\MPllx{#1}\xdef\MPlly{#2}\xdef\MPurx{#3}\xdef\MPury{#4}%
\xdef\MPwidth {\the\dimexpr#3\onebasepoint-#1\onebasepoint\relax}%
\xdef\MPheight{\the\dimexpr#4\onebasepoint-#2\onebasepoint\relax}}
\MPSboundingbox0000
-\def\MPSspecial#1#2%
- {\csname\@@MPSK#2\endcsname}
-
-%D A path is (in most cases) just a sequence of \PDF\ commands.
-
-% \newcontitional\ignoreMPpath
-
-\def\MPSpath
- {\PDFcode}
-
-\def\MPScode % hack, will be improved
- {\ifconditional\ignoreMPpath
- \PDFcode{h W n}%
- \ifx\extraMPpathcode\empty\else
- \PDFcode{\extraMPpathcode}%
- \let\extraMPpathcode\empty
- \fi
- \setfalse\ignoreMPpath
- \expandafter\gobbleoneargument
- \else
- \expandafter\PDFcode
- \fi}
-
-\let\MPSrgb \dohandleMPrgb
-\let\MPScmyk\dohandleMPcmyk
-\let\MPSgray\dohandleMPgray
-\let\MPSspot\dohandleMPspot
+%D Test code:
+%D
+%D \startbuffer
+%D \startMPcode
+%D fill fullcircle scaled 3cm withcolor red ;
+%D fill fullcircle scaled 2cm withcolor green ;
+%D fill fullcircle scaled 1cm withcolor blue ;
+%D currentpicture := currentpicture shifted (-4cm,0) ;
+%D fill fullcircle scaled 3cm withcolor cmyk(0,0,1,0) ;
+%D fill fullcircle scaled 2cm withcolor cmyk(0,1,0,0) ;
+%D fill fullcircle scaled 1cm withcolor cmyk(0,0,1,0) ;
+%D currentpicture := currentpicture shifted (-4cm,0) ;
+%D draw fullcircle scaled 3cm dashed evenly ;
+%D draw fullcircle scaled 2cm dashed withdots ;
+%D draw origin withpen pencircle scaled 3mm;
+%D currentpicture := currentpicture shifted (-4cm,0) ;
+%D fill fullcircle scaled 2cm shifted (-.5cm,+.5cm) withcolor transparent(1,.5,red);
+%D fill fullcircle scaled 2cm shifted (-.5cm,-.5cm) withcolor transparent(1,.5,red);
+%D fill fullcircle scaled 2cm shifted (+.5cm,+.5cm) withcolor transparent(1,.5,green);
+%D fill fullcircle scaled 2cm shifted (+.5cm,-.5cm) withcolor transparent(1,.5,cmyk(1,0,1,.5));
+%D currentpicture := currentpicture shifted (12cm,-4cm) ;
+%D draw "o e p s" infont defaultfont scaled 2 shifted (-1cm,0) ;
+%D currentpicture := currentpicture shifted (-4cm,0) ;
+%D % bug: shift
+%D draw fullcircle scaled 3cm withpen pencircle yscaled 3mm xscaled 2mm rotated 30 ;
+%D draw fullcircle scaled 2cm withpen pencircle yscaled 3mm xscaled 2mm rotated 20 withcolor red ;
+%D filldraw fullcircle scaled 1cm withpen pencircle yscaled 3mm xscaled 2mm rotated 10 withcolor green ;
+%D currentpicture := currentpicture shifted (-4cm,0) ;
+%D % shade cannot handle shift
+%D circular_shade(fullcircle scaled 3cm,0,.2red,.9green) ;
+%D circular_shade(fullcircle scaled 3cm shifted(+4cm,0),0,cmyk(1,0,0,0),cmyk(0,1,0,0)) ;
+%D filldraw boundingbox currentpicture enlarged -3cm withpen pencircle scaled 1pt withcolor .5white ;
+%D \stopMPcode
+%D \stopbuffer
+%D
+%D \typebuffer \startlinecorrection \getbuffer \stoplinecorrection
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/meta-pdf.tex b/Master/texmf-dist/tex/context/base/meta-pdf.tex
deleted file mode 100644
index d5b7f202fcd..00000000000
--- a/Master/texmf-dist/tex/context/base/meta-pdf.tex
+++ /dev/null
@@ -1,1014 +0,0 @@
-%D \module
-%D [ file=meta-pdf,
-%D version=2006.06.07,
-%D title=\CONTEXT\ Support Macros,
-%D subtitle=\METAPOST\ to \PDF\ conversion,
-%D author=Hans Hagen \& others (see text),
-%D date=\currentdate,
-%D copyright=\PRAGMA]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D Formerly known as supp-pdf.tex and supp-mpe.tex.
-
-%D We will clean up the color mess later.
-
-%D These macros are written as generic as possible. Some
-%D general support macro's are loaded from a small module
-%D especially made for non \CONTEXT\ use. In this module I
-%D use a matrix transformation macro written by Tanmoy
-%D Bhattacharya. Thanks to extensive testing by Sebastian
-%D Ratz I was able to complete this module within reasonable
-%D time. This module has support for \METAPOST\ extensions
-%D built in.
-%D
-%D Daniel H. Luecking came up with a better (more precise)
-%D transformation method. You can recognize his comment by
-%D his initials. (We keep the old code around because it's a
-%D nice illustration on how a module like this evolves.)
-
-% Beware, we cannot use 0pt here by defaukt since it may be
-% defined in the range \dimen 0 - 20 which we happen to use
-% as scratch registers; for this reason we start allocating
-% scratch registers > 20
-
-%D This module handles some \PDF\ conversion and insertions
-%D topics. By default, the macros use the \PDFTEX\ primitive
-%D \type{\pdfliteral} when available. Since \PDFTEX\ is now the
-%D default engine for \TEX\ distributions, we need a more complex
-%D test.
-
-\writestatus{loading}{Context Support Macros / MPS to PDF}
-
-\unprotect
-
-\ifx\PDFcode \undefined \let\PDFcode \gobbleoneargument \fi
-\ifx\PDFcomment\undefined \def\PDFcomment#1{\PDFcode{\letterpercent\space#1}} \fi
-
-%D First we define a handy constant:
-
-\bgroup \catcode`\%=\@@other \xdef\letterpercent{\string%} \egroup
-
-%D \macros
-%D {pdfimage,pdfimages,pdfclippedimage}
-%D
-%D Starting with pdftex version 14, images are included more
-%D natural to the form embedding. This enables alternative
-%D images to be embedded.
-%D
-%D \starttyping
-%D \pdfimage <optional dimensions> {file}
-%D \pdfimages <optional dimensions> {high res file} {low res file}
-%D \stoptyping
-%D
-%D The first one replaces the pre||version||14 original,
-%D while the latter provides alternative images.
-%D
-%D The next macro is dedicated to Maarten Gelderman, who
-%D needed to paste prepared \PDF\ pages into conference
-%D proceedings.
-%D
-%D \starttyping
-%D \pdfclippedimage <optional dimensions> {file} {l} {r} {t} {b}
-%D \stoptyping
-
-\ifx\pdftexversion\undefined \else \ifnum\pdftexversion>13
-
- \def\pdfimage#1#%
- {\dopdfimage{#1}}
-
- \def\dopdfimage#1#2%
- {\immediate\pdfximage#1{#2}%
- \pdfrefximage\pdflastximage}
-
- \def\pdfimages#1#%
- {\dopdfimages{#1}}
-
- \def\dopdfimages#1#2#3%
- {\immediate\pdfximage#1{#2}%
- \immediate\pdfobj{[ << /Image \the\pdflastximage\space0 R /DefaultForPrinting true >> ]}%
- \immediate\pdfximage#1 attr {/Alternates \the\pdflastobj\space0 R}{#3}%
- \pdfrefximage\pdflastximage}
-
- \def\pdfclippedimage#1#% specs {file}{left}{right}{top}{bottom}
- {\dopdfclippedimage{#1}}
-
- \def\dopdfclippedimage#1#2#3#4#5#6%
- {\bgroup
- \pdfximage#1{#2}%
- \setbox\scratchbox\hbox{\pdfrefximage\pdflastximage}%
- \hsize\dimexpr\wd\scratchbox-#3-#4\relax
- \vsize\dimexpr\ht\scratchbox-#5-#6\relax
- \setbox\scratchbox\vbox to \vsize
- {\vskip-#5\hbox to \hsize{\hskip-#3\box\scratchbox\hss}}%
- \pdfxform\scratchbox
- \pdfrefxform\pdflastxform
- \egroup}
-
-\fi \fi
-
-%D \macros
-%D {convertMPtoPDF}
-%D
-%D The next set of macros implements \METAPOST\ to \PDF\
-%D conversion. The traditional method is in the MkII file.
-
-%D The main conversion command is:
-%D
-%D \starttyping
-%D \convertMPtoPDF {filename} {x scale} {y scale}
-%D \stoptyping
-%D
-%D The dimensions are derived from the bounding box. So we
-%D only have to say:
-%D
-%D \starttyping
-%D \convertMPtoPDF{mp-pra-1.eps}{1}{1}
-%D \convertMPtoPDF{mp-pra-1.eps}{.5}{.5}
-%D \stoptyping
-
-%D \macros
-%D {makeMPintoPDFobject,lastPDFMPobject}
-%D
-%D For experts there are a few more options. When attributes
-%D are to be added, the code must be embedded in an object
-%D accompanied with the appropriate directives. One can
-%D influence this process with \type {\makeMPintoPDFobject}.
-%D
-%D This option defaults to~0, because \CONTEXT\ takes care
-%D of objects at another level, which saves some bytes.
-%D
-%D \starttabulate[|l|l|p|]
-%D \NC 0 \NC never \NC don't use an object \NC\NR
-%D \NC 1 \NC always \NC always use an object \NC\NR
-%D \NC 2 \NC optional \NC use object when needed \NC\NR
-%D \stoptabulate
-%D
-%D The last object number used is avaliable in the macro
-%D \type {\lastPDFMPobject}.
-
-\ifx\makeMPintoPDFobject \undefined \chardef\makeMPintoPDFobject \zerocount \fi
-\ifx\blackoutMPgraphic \undefined \chardef\blackoutMPgraphic \plusone \fi
-\ifx\everyMPtoPDFconversion\undefined \newtoks\everyMPtoPDFconversion \fi
-
-\let\lastPDFMPobject \!!zerocount
-\let\currentPDFresources\empty
-\let\setMPextensions \relax
-
-\def\PDFMPformoffset
- {\ifx\objectoffset\undefined\zeropoint\else\objectoffset\fi}
-
-\def\resetMPvariables#1#2#3%
- {\global\let\MPwidth \!!zeropoint
- \global\let\MPheight\!!zeropoint
- \global\let\MPllx \!!zerocount
- \global\let\MPlly \!!zerocount
- \global\let\MPurx \!!zerocount
- \global\let\MPury \!!zerocount
- \xdef\MPxscale {#2}\ifx\MPxscale\empty\let\MPxscale\!!plusone\fi
- \xdef\MPyscale {#3}\ifx\MPyscale\empty\let\MPyscale\!!plusone\fi
- \xdef\MPfilename {#1}}
-
-%D The main macro:
-
-\def\convertMPtoPDF#1#2#3%
- {\resetMPvariables{#1}{#2}{#3}%
- \mkconvertMPtoPDF}
-
-\def\processMPtoPDFfile#1#2#3% obsolete
- {\resetMPvariables{#1}{#2}{#3}%
- \mkprocessMPtoPDFfile}
-
-%D A common hook.
-
-\let\MPfshowcommand\empty
-
-%D Objects.
-
-\def\dopackageMPgraphic#1% #1 = boxregister
- {\ifcase\makeMPintoPDFobject\or\or\ifx\currentPDFresources\empty\else
- % an existing value of 2 signals object support (set elsewhere)
- \chardef\makeMPintoPDFobject\plusone
- \fi\fi
- \ifcase\makeMPintoPDFobject
- \box#1%
- \or
- \scratchdimen\PDFMPformoffset\relax
- \ifdim\scratchdimen>\zeropoint % compensate for error
- \setbox#1\vbox spread 2\scratchdimen
- {\forgetall\vss\hbox spread 2\scratchdimen{\hss\box#1\hss}\vss}%
- \fi
- \setMPPDFobject{\currentPDFresources}{#1}%
- \ifdim\scratchdimen>\zeropoint % compensate for error
- \vbox to \MPheight
- {\forgetall\vss\hbox to \MPwidth{\hss\getMPPDFobject\hss}\vss}%
- \else
- \getMPPDFobject
- \fi
- \global\let\currentPDFresources\empty
- \else
- \box#1%
- \fi}
-
-\def\setMPPDFobject#1#2% resources boxnumber
- {\ifx\pdfxform\undefined
- \def\getMPPDFobject{\box#2}%
- \else\ifx\pdftexversion\undefined
- \def\getMPPDFobject{\box#2}%
- \else\ifnum\pdftexversion<14
- \def\getMPPDFobject{\box#2}%
- \else
- \ifx\everyPDFxform\undefined\else\the\everyPDFxform\fi
- \immediate\pdfxform resources{#1}#2%
- \edef\getMPPDFobject{\noexpand\pdfrefxform\the\pdflastxform}%
- \fi\fi\fi}
-
-\let\getMPPDFobject\relax
-
-%D \macros
-%D {deleteMPgraphic,
-%D startMPresources,
-%D stopMPresources}
-
-\ifx\deleteMPgraphic\undefined
- \def\deleteMPgraphic#1{}
-\fi
-
-\ifx\startMPresources\undefined
- \let\startMPresources\relax
- \let\stopMPresources\relax
-\fi
-
-%D We implement extensions by using the \METAPOST\ special
-%D mechanism. Opposite to \TEX's specials, the \METAPOST\ ones
-%D are flushed before or after the graphic data, but thereby
-%D are no longer connected to a position.
-%D
-%D We implement specials by overloading the \type {fill}
-%D operator. By counting the fills, we can let the converter
-%D treat the appropriate fill in a special way. The
-%D specification of the speciality can have two forms,
-%D determined by the setting of a boolean variable:
-%D
-%D \starttyping
-%D _inline_specials_ := false ; % comment like code (default)
-%D _inline_specials_ := true ; % command like code
-%D \stoptyping
-%D
-%D When the specification is embedded as comment, it looks
-%D like:
-%D
-%D \starttyping
-%D %%MetaPostSpecial <size> <data> <number> <identifier>
-%D \stoptyping
-%D
-%D The in||line alternative is more tuned for \POSTSCRIPT,
-%D since it permits us to define a macro \type {special}.
-%D
-%D \starttyping
-%D inline : <data> <number> <identifier> <size> special
-%D \stoptyping
-%D
-%D The \type {identifier} determines what to do, and the data
-%D can be used to accomplish this. A type~2 shading function
-%D has identifier~2. Alltogether, the number of parameters is
-%D specified in \type {size}. The \type {number} is the number
-%D of the fill that needs the special treatment. For a type~2
-%D and~3 shaded fill, the datablock contains the following
-
-%D data:
-%D
-%D \starttyping
-%D from to n inner_r g b x y outer_r g b x y
-%D from to n inner_r g b x y radius outer_r g b x y radius
-%D \stoptyping
-
-\newconditional\manyMPspecials \settrue\manyMPspecials
-
-%D In case of \PDF, we need to prepare resourcs.
-
-\newtoks\MPstartresources
-\newtoks\MPstopresources
-
-\def\startMPresources
- {\the\MPstartresources}
-
-\def\stopMPresources
- {\the\MPstopresources}
-
-%D Some day we may consider collecting local resources.
-
-\appendtoks
- \global\let\currentPDFresources\empty % kind of redundant
-\to \MPstartresources
-
-% \appendtoks
-% \collectPDFresources
-% \global\let\currentPDFresources\collectedPDFresources
-% \to \MPstopresources
-
-\appendtoksonce
- \the\everyPDFxform
-\to \MPstopresources
-
-%D Since colors are not subjected to transformations, we can
-%D only use colors as signal. In our case, we use a dummy colored
-%D path with a red color component of \type {0.n}, so \type
-%D {0.001} is the first path and \type {0.010} the tenth. Since
-%D \METAPOST strips trailing zeros, we have to padd the string.
-
-\newif\ifMPcmykcolors
-\newif\ifMPspotcolors
-
-\def\dohandleMPrgb #1#2#3{\revokeMPtransparencyspecial\execcolorR #1:#2:#3:0:0\od}
-\def\dohandleMPcmyk#1#2#3#4{\revokeMPtransparencyspecial\execcolorC#1:#2:#3:#4:0:0\od}
-\def\dohandleMPgray #1{\revokeMPtransparencyspecial\execcolorS #1:0:0\od}
-\def\dohandleMPspot#1#2#3#4{\revokeMPtransparencyspecial\execcolorP#1:#2:#3:#4:0:0\od}
-
-%D Specials:
-
-\settrue \manyMPspecials \newcount\nofMParguments \let\extraMPpathcode\empty
-
-\def\@@MP {@@MP}
-\def\@@MPSK{@MPSK@}
-
-\def\MPspecial{\@@MPSK\@@MPSK\gMPs\nofMParguments}
-
-\def\defineMPspecial#1#2%
- {\setvalue{\@@MPSK\@@MPSK#1}{#2}}
-
-%D Special number~1 is dedicated to \CMYK\ support. If you
-%D want to know why: look at this:
-%D
-%D \startbuffer[mp]
-%D fill fullcircle xyscaled (3cm,1cm) withcolor \MPcolor{test} ;
-%D \stopbuffer
-%D
-%D \startbuffer[cmyk]
-%D \startcombination[4*1]
-%D {\definecolor[test][c=1,y=.3,k=.3] \processMPbuffer[mp]} {c=1 y=.3 k=.3}
-%D {\definecolor[test][c=.9,y=.15] \processMPbuffer[mp]} {c=.9 y=.15}
-%D {\definecolor[test][c=.25,y=.8] \processMPbuffer[mp]} {c=.25 y=.8}
-%D {\definecolor[test][c=.45,y=.1] \processMPbuffer[mp]} {c=.45 y=.1}
-%D \stopcombination
-%D \stopbuffer
-%D
-%D \placefigure
-%D {\CMYK\ support disabled,
-%D conversion to \RGB.}
-%D {\setupcolors[cmyk=nee,state=start]\getbuffer[cmyk]}
-%D
-%D \placefigure
-%D {\CMYK\ support enabled,
-%D no support in \METAPOST.}
-%D {\setupcolors[cmyk=ja,mpcmyk=nee,state=start]\getbuffer[cmyk]}
-%D
-%D \placefigure
-%D {\CMYK\ support enabled,
-%D no conversion to \RGB,
-%D support in \METAPOST}
-%D {\setupcolors[cmyk=ja,state=start]\getbuffer[cmyk]}
-
-\defineMPspecial{1}
- {\ifMPcmykcolors
- \setxvalue{\@@MPSK\gMPs6}{\noexpand\dohandleMPcmykcolor{\gMPs2}{\gMPs3}{\gMPs4}{\gMPs5}}%
- \fi}
-
-\defineMPspecial{2}
- {\ifMPspotcolors
- \setxvalue{\@@MPSK\gMPs6}{\noexpand\dohandleMPspotcolor{\gMPs2}{\gMPs3}{\gMPs4}{\gMPs5}}%
-% \checkMPspot{\gMPs2}{\gMPs3}{\gMPs4}{\gMPs5}%
- \fi}
-
-% \def\checkMPspot#1#2#3#4%
-% {\expanded{\resolveMPspotcolor#1 #2 #3 #4}\end
-% \ifx\MPspotspace\MPresolvedspace
-% \edef\MPspotspacespec{/\MPspotspace\space}%
-% \doifinstringelse\MPspotspacespec\currentMPcolorspaces
-% \donothing\registerMPcolorspace
-% \fi}
-
-\let\revokeMPtransparencyspecial\relax
-
-\def\dohandleMPrgbcolor #1#2#3{\revokeMPtransparencyspecial\execcolorR #1:#2:#3:0:0\od}
-\def\dohandleMPcmykcolor#1#2#3#4{\revokeMPtransparencyspecial\execcolorC#1:#2:#3:#4:0:0\od}
-\def\dohandleMPgraycolor #1{\revokeMPtransparencyspecial\execcolorS #1:0:0\od}
-\def\dohandleMPspotcolor#1#2#3#4{\revokeMPtransparencyspecial\execcolorP#1:#2:#3:#4:0:0\od}
-
-%D Transparency support used specials 60 (rgb) and 61
-%D (cmyk).
-%D
-%D \startbufferFshade
-
-%D u := 2cm ; path p ; p := fullcircle scaled u shifted (u/4,0);
-%D
-%D fill p rotated 90 withcolor transparent(1,.5,yellow) ;
-%D fill p rotated 210 withcolor transparent(1,.5,green) ;
-%D fill p rotated 330 withcolor transparent(1,.5,blue) ;
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D \startlinecorrection \processMPbuffer \stoplinecorrection
-%D
-%D One can also communicate colors between \CONTEXT\ and
-%D \METAPOST:
-%D
-%D \startbuffer
-%D \definecolor[tcyan] [c=1,k=.2,t=.5]
-%D \definecolor[tmagenta][m=1,k=.2,t=.5]
-%D \definecolor[tyellow] [y=1,k=.2,t=.5]
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-%D
-%D \startbuffer
-%D u := 2cm ; path p ; p := fullcircle scaled u shifted (u/4,0);
-%D
-%D fill p rotated 90 withcolor \MPcolor{tcyan} ;
-%D fill p rotated 210 withcolor \MPcolor{tmagenta} ;
-%D fill p rotated 330 withcolor \MPcolor{tyellow} ;
-%D \stopbuffer
-%D
-%D \startlinecorrection \processMPbuffer \stoplinecorrection
-%D
-%D We save all the three components needed in one macro,
-%D just to save hash space.
-
-\def\dohandleMPrgbtransparency #1#2#3#4#5{\execcolorR #1:#2:#3:#4:#5\od\let\revokeMPtransparencyspecial\dorevokeMPtransparencyspecial}
-\def\dohandleMPcmyktransparency#1#2#3#4#5#6{\execcolorC#1:#2:#3:#4:#5:#6\od\let\revokeMPtransparencyspecial\dorevokeMPtransparencyspecial}
-\def\dohandleMPgraytransparency #1#2#3{\execcolorS #1:#2:#3\od\let\revokeMPtransparencyspecial\dorevokeMPtransparencyspecial}
-\def\dohandleMPspottransparency#1#2#3#4#5#6{\execcolorP#1:#2:#3:#4:#5:#6\od\let\revokeMPtransparencyspecial\dorevokeMPtransparencyspecial}
-
-\def\dorevokeMPtransparencyspecial
- {\PDFcode{\PDFtransparencyresetidentifier\space gs}%
- \let\revokeMPtransparencyspecial\relax}
-
-\defineMPspecial{3} % rgb
- {\setxvalue{\@@MPSK\gMPs6}{\noexpand\dohandleMPrgbtransparency{\gMPs3}{\gMPs4}{\gMPs5}{\gMPs1}{\gMPs2}}}
-
-\defineMPspecial{4} % cmyk
- {\setxvalue{\@@MPSK\gMPs7}{\noexpand\dohandleMPcmyktransparency{\gMPs3}{\gMPs4}{\gMPs5}{\gMPs6}{\gMPs1}{\gMPs2}}}
-
-\defineMPspecial{5} % spot
- {\setxvalue{\@@MPSK\gMPs7}{\noexpand\dohandleMPspottransparency{\gMPs3}{\gMPs4}{\gMPs5}{\gMPs6}{\gMPs1}{\gMPs2}}%
- }%\checkMPspot{\gMPs3}{\gMPs4}{\gMPs5}{\gMPs6}}
-
-%D Shading is an example of a more advanced graphic feature,
-%D but users will seldom encounter those complications. Here
-%D we only show a few simple examples, but many other
-%D alternatives are possible by setting up the functions built
-%D in \PDF\ in the appropriate way.
-%D
-%D Shading has to do with interpolation between two or more
-%D points or user supplied ranges. In \PDF, the specifications
-%D of a shade has to be encapsulated in objects and passed on
-%D as resources. This is a \PDF\ level 1.3. feature. One can
-%D simulate three dimensional shades as well and define simple
-%D functions using a limited set of \POSTSCRIPT\ primitives.
-%D Given the power of \METAPOST\ and these \PDF\ features, we
-%D can achieve superb graphic effects.
-%D
-%D Since everything is hidden in \TEX\ and \METAPOST\ graphics,
-%D we can stick to high level \CONTEXT\ command, as shown in
-%D the following exmples.
-%D
-%D \startbuffer
-%D \startuniqueMPgraphic{CircularShade}
-%D path p ; p := unitsquare xscaled \overlaywidth yscaled \overlayheight ;
-%D circular_shade(p,0,.2red,.9red) ;
-%D \stopuniqueMPgraphic
-%D
-%D \startuniqueMPgraphic{LinearShade}
-%D path p ; p := unitsquare xscaled \overlaywidth yscaled \overlayheight ;
-%D linear_shade(p,0,.2blue,.9blue) ;
-%D \stopuniqueMPgraphic
-%D
-%D \startuniqueMPgraphic{DuotoneShade}
-%D path p ; p := unitsquare xscaled \overlaywidth yscaled \overlayheight ;
-%D linear_shade(p,2,.5green,.5red) ;
-%D \stopuniqueMPgraphic
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D \getbuffer
-%D
-%D These graphics can be hooked into the overlay mechanism,
-%D which is available in many commands.
-%D
-%D \startbuffer
-%D \defineoverlay[demo 1][\uniqueMPgraphic{CircularShade}]
-%D \defineoverlay[demo 2][\uniqueMPgraphic {LinearShade}]
-%D \defineoverlay[demo 3][\uniqueMPgraphic {DuotoneShade}]
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D \getbuffer
-%D
-%D These backgrounds can for instance be applied to \type
-%D {\framed}:
-%D
-%D \startbuffer
-%D \setupframed[width=3cm,height=2cm,frame=off]
-%D \startcombination[3*1]
-%D {\framed[backgroundachtergrond=demo 1]{\bfd \white Demo 1}} {}
-%D {\framed[backgroundachtergrond=demo 2]{\bfd \white Demo 2}} {}
-%D {\framed[backgroundachtergrond=demo 3]{\bfd \white Demo 3}} {}
-%D \stopcombination
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D \startlinecorrection
-%D \getbuffer
-%D \stoplinecorrection
-%D
-%D There are a few more alternatives, determined by the second
-%D parameter passed to \type {circular_shade} and alike.
-%D
-%D \def\SomeShade#1#2#3#4#5%
-%D {\startuniqueMPgraphic{Shade-#1}
-%D width := \overlaywidth ;
-%D height := \overlayheight ;
-%D path p ; p := unitsquare xscaled width yscaled height ;
-%D #2_shade(p,#3,#4,#5) ;
-%D \stopuniqueMPgraphic
-%D \defineoverlay[Shade-#1][\uniqueMPgraphic{Shade-#1}]%
-%D \framed[backgroundachtergrond=Shade-#1,width=2cm,height=2cm,frame=off]{}}
-%D
-%D \startlinecorrection
-%D \startcombination[5*1]
-%D {\SomeShade{10}{circular}{0}{.3blue}{.9blue}} {circular 0}
-%D {\SomeShade{11}{circular}{1}{.3blue}{.9blue}} {circular 1}
-%D {\SomeShade{12}{circular}{2}{.3blue}{.9blue}} {circular 2}
-%D {\SomeShade{13}{circular}{3}{.3blue}{.9blue}} {circular 3}
-%D {\SomeShade{14}{circular}{4}{.3blue}{.9blue}} {circular 4}
-%D \stopcombination
-%D \stoplinecorrection
-%D
-%D \blank
-%D
-%D \startlinecorrection
-%D \startcombination[5*1]
-%D {\SomeShade{20}{circular}{0}{.9green}{.3green}} {circular 0}
-%D {\SomeShade{21}{circular}{1}{.9green}{.3green}} {circular 1}
-%D {\SomeShade{22}{circular}{2}{.9green}{.3green}} {circular 2}
-%D {\SomeShade{23}{circular}{3}{.9green}{.3green}} {circular 3}
-%D {\SomeShade{24}{circular}{4}{.9green}{.3green}} {circular 4}
-%D \stopcombination
-%D \stoplinecorrection
-%D
-%D \blank
-%D
-%D \startlinecorrection
-%D \startcombination[4*1]
-%D {\SomeShade{30}{linear}{0}{.3red}{.9red}} {linear 0}
-%D {\SomeShade{31}{linear}{1}{.3red}{.9red}} {linear 1}
-%D {\SomeShade{32}{linear}{2}{.3red}{.9red}} {linear 2}
-%D {\SomeShade{33}{linear}{3}{.3red}{.9red}} {linear 3}
-%D \stopcombination
-%D \stoplinecorrection
-%D
-%D These macros closely cooperate with the \METAPOST\ module
-%D \type {mp-spec.mp}, which is part of the \CONTEXT\
-%D distribution.
-%D
-%D The low level (\PDF) implementation is based on the \TEX\
-%D based \METAPOST\ to \PDF\ converter. Shading is supported
-%D by overloading the \type {fill} operator as implemented
-%D earlier. In \PDF\ type~2 and~3 shading functions are
-%D specified in terms of:
-%D
-%D \starttabulate[|Tl|l|]
-%D \NC /Domain \NC sort of meeting range \NC \NR
-%D \NC /C0 \NC inner shade \NC \NR
-%D \NC /C1 \NC outer shade \NC \NR
-%D \NC /N \NC smaller values, bigger inner circles \NC \NR
-%D \stoptabulate
-
-\newcount\currentPDFshade % 0 % global (document wide) counter
-
-\def\dosetMPlinearshade#1%
- {\immediate\pdfobj
- {<</FunctionType 2
- /Domain [\gMPs1 \gMPs2]
- /C0 [\MPshadeA]
- /C1 [\MPshadeB]
- /N \gMPs3>>}%
- \immediate\pdfobj
- {<</ShadingType 2
- /ColorSpace /\MPresolvedspace
- /Function \the\pdflastobj\space 0 R
- /Coords [\MPshadeC]
- /Extend [true true]>>}%
- \global\advance\currentPDFshade \plusone
- \appendtoPDFdocumentshades{/Sh\the\currentPDFshade\space\the\pdflastobj\space0 R }%
- \setxvalue{\@@MPSK#1}{\noexpand\dohandleMPshade{\the\currentPDFshade}}}
-
-\defineMPspecial{30}
- {\expanded{\resolveMPrgbcolor{\gMPs4}{\gMPs5}{\gMPs6}}\to\MPshadeA
- \expanded{\resolveMPrgbcolor{\gMPs{9}}{\gMPs{10}}{\gMPs{11}}}\to\MPshadeB
- \edef\MPshadeC{\gMPs7 \gMPs8 \gMPs{12} \gMPs{13}}%
- \dosetMPlinearshade{\gMPs{14}}}
-
-\defineMPspecial{32}
- {\expanded{\resolveMPcmykcolor{\gMPs4}{\gMPs5}{\gMPs6}{\gMPs7}}\to\MPshadeA
- \expanded{\resolveMPcmykcolor{\gMPs{10}}{\gMPs{11}}{\gMPs{12}}{\gMPs{13}}}\to\MPshadeB
- \edef\MPshadeC{\gMPs8 \gMPs9 \gMPs{14} \gMPs{15}}%
- \dosetMPlinearshade{\gMPs{16}}}
-
-\defineMPspecial{34}
- {\expanded{\resolveMPspotcolor{\gMPs4}{\gMPs5}{\gMPs6}{\gMPs7}}\to\MPshadeA
- \expanded{\resolveMPspotcolor{\gMPs{10}}{\gMPs{11}}{\gMPs{12}}{\gMPs{13}}}\to\MPshadeB
- \edef\MPshadeC{\gMPs8 \gMPs9 \gMPs{14} \gMPs{15}}%
- \dosetMPlinearshade{\gMPs{16}}}
-
-\def\dosetMPcircularshade#1%
- {\immediate\pdfobj
- {<</FunctionType 2
- /Domain [\gMPs1 \gMPs2]
- /C0 [\MPshadeA]
- /C1 [\MPshadeB]
- /N \gMPs3>>}%
- \immediate\pdfobj
- {<</ShadingType 3
- /ColorSpace /\MPresolvedspace
- /Function \the\pdflastobj\space 0 R
- /Coords [\MPshadeC]
- /Extend [true true]>>}%
- \global\advance\currentPDFshade \plusone
- \appendtoPDFdocumentshades{/Sh\the\currentPDFshade\space\the\pdflastobj\space0 R }%
- \setxvalue{\@@MPSK#1}{\noexpand\dohandleMPshade{\the\currentPDFshade}}}
-
-\defineMPspecial{31}
- {\expanded{\resolveMPrgbcolor{\gMPs4}{\gMPs5}{\gMPs6}}\to\MPshadeA
- \expanded{\resolveMPrgbcolor{\gMPs{10}}{\gMPs{11}}{\gMPs{12}}}\to\MPshadeB
- \edef\MPshadeC{\gMPs7 \gMPs8 \gMPs9 \gMPs{13} \gMPs{14} \gMPs{15}}%
- \dosetMPcircularshade{\gMPs{16}}}
-
-\defineMPspecial{33}
- {\expanded{\resolveMPcmykcolor{\gMPs4}{\gMPs5}{\gMPs6}{\gMPs7}}\to\MPshadeA
- \expanded{\resolveMPcmykcolor{\gMPs{11}}{\gMPs{12}}{\gMPs{13}}{\gMPs{14}}}\to\MPshadeB
- \edef\MPshadeC{\gMPs8 \gMPs9 \gMPs{10} \gMPs{15} \gMPs{16} \gMPs{17}}%
- \dosetMPcircularshade{\gMPs{18}}}
-
-\defineMPspecial{35}
- {\expanded{\resolveMPcmykcolor{\gMPs4}{\gMPs5}{\gMPs6}{\gMPs7}}\to\MPshadeA
- \expanded{\resolveMPcmykcolor{\gMPs{11}}{\gMPs{12}}{\gMPs{13}}{\gMPs{14}}}\to\MPshadeB
- \edef\MPshadeC{\gMPs8 \gMPs9 \gMPs{10} \gMPs{15} \gMPs{16} \gMPs{17}}%
- \dosetMPcircularshade{\gMPs{18}}}
-
-\newconditional\ignoreMPpath
-
-\def\dohandleMPshade#1%
- {\revokeMPtransparencyspecial
- \settrue\ignoreMPpath
- \def\extraMPpathcode{/Sh#1 sh Q}%
- \chardef\finiMPpath\zerocount
- \PDFcode{q /Pattern cs}}
-
-%D Figure inclusion is kind of strange to \METAPOST, but when
-%D Santiago Muelas started discussing this with me, I was able
-%D to cook up a solution using specials.
-
-\defineMPspecial{10}
- {\setxvalue{\@@MPSK\gMPs8}%
- {\noexpand\handleMPfigurespecial{\gMPs1}{\gMPs2}{\gMPs3}{\gMPs4}{\gMPs5}{\gMPs6}{\gMPs7}{\gMPs8}}}
-
-\def\handleMPfigurespecial#1#2#3#4#5#6#7#8% todo : combine with ext fig
- {\global\letvalue{\@@MPSK#8}\empty
- \vbox to \zeropoint
- {\vss
- \hbox to \zeropoint
- {\ifcase\pdfoutput\or % will be hooked into the special driver
- \doiffileelse{#7}
- {\doifundefinedelse{mps:x:#7}
- {\immediate\pdfximage\!!width\onebasepoint\!!height\onebasepoint{#7}%
- \setxvalue{mps:x:#7}{\pdfrefximage\the\pdflastximage}}%
- {\message{[reusing figure #7]}}%
- \PDFcode{q #1 #2 #3 #4 #5 #6 cm}%
- \rlap{\getvalue{mps:x:#7}}%
- \PDFcode{Q}}
- {\message{[unknown figure #7]}}%
- \fi
- \hss}}}
-
-%D An example of using both special features is the
-%D following.
-%D
-%D \starttyping
-%D \startMPpage
-%D externalfigure "hakker1b.png" scaled 22cm rotated 10 shifted (-2cm,0cm);
-%D externalfigure "hakker1b.png" scaled 10cm rotated -10 ;
-%D externalfigure "hakker1b.png" scaled 7cm rotated 45 shifted (8cm,12cm) ;
-%D path p ; p := unitcircle xscaled 15cm yscaled 20cm;
-%D path q ; q := p rotatedaround(center p,90) ;
-%D path r ; r := buildcycle(p,q) ; clip currentpicture to r ;
-%D path s ; s := boundingbox currentpicture enlarged 5mm ;
-%D picture c ; c := currentpicture ; currentpicture := nullpicture ;
-%D circular_shade(s,0,.2red,.9red) ;
-%D addto currentpicture also c ;
-%D \stopMPpage
-%D \stoptyping
-
-%D This is some experimental hyperlink driver that I wrote
-%D for Mark Wicks.
-
-\defineMPspecial{20}
- {\setxvalue{\@@MPSK\gMPs6}%
- {\noexpand\handleMPhyperlink{\gMPs1}{\gMPs2}{\gMPs3}{\gMPs4}{\gMPs5}{\gMPs6}}}
-
-\def\handleMPhyperlink#1#2#3#4#5#6%
- {\global\letvalue{\@@MPSK#6}\empty
- \setbox\scratchbox\hbox
- {\setbox\scratchbox\null
- \wd\scratchbox\dimexpr-#1\onebasepoint+#3\onebasepoint\relax
- \ht\scratchbox\dimexpr-#2\onebasepoint+#4\onebasepoint\relax
- \incolorfalse
- \gotobox{\box\scratchbox}[#5]}%
- \setbox\scratchbox\hbox
- {\hskip\dimexpr\MPxoffset\onebasepoint+#1\onebasepoint\relax
- \raise\dimexpr\MPyoffset\onebasepoint+#2\onebasepoint\relax
- \box\scratchbox}%
- \smashbox\scratchbox
- \box\scratchbox}
-
-%D This special (number 50) passes positions to a tex file.
-%D This method uses a two||pass approach an (mis|)|used the
-%D context positioning macros. In \type {core-pos} we will
-%D implement the low level submacro needed.
-%D
-%D \startbuffer
-%D \definelayer[test]
-%D
-%D \setlayer
-%D [test]
-%D [x=\MPx{somepos-1},y=\MPy{somepos-1}]
-%D {Whatever we want here!}
-%D
-%D \setlayer
-%D [test]
-%D [x=\MPx{somepos-2},y=\MPy{somepos-2}]
-%D {Whatever we need there!}
-%D
-%D \startuseMPgraphic{oeps}
-%D draw fullcircle scaled 6cm withcolor red ;
-%D register ("somepos-1",1cm,2cm,center currentpicture) ;
-%D register ("somepos-2",4cm,3cm,(-1cm,-2cm)) ;
-%D \stopuseMPgraphic
-%D
-%D \framed[background=test,offset=overlay]{\useMPgraphic{oeps}}
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D Here the width and height are not realy used, but one can
-%D imagine situations where tex has to work with values
-%D calculated by \METAPOST.
-%D
-%D \startlinecorrection
-%D \getbuffer
-%D \stoplinecorrection
-%D
-%D Later we will implement a more convenient macro:
-%D
-%D \starttyping
-%D \setMPlayer [test] [somepos-1] {Whatever we want here!}
-%D \setMPlayer [test] [somepos-2] {Whatever we need there!}
-%D \stoptyping
-
-\defineMPspecial{50} % x y width height label
- {\dosavepositionwhd
- {\gMPs5}%
- {0}%
- {\the\dimexpr-\MPllx\onebasepoint+\gMPs1\onebasepoint\relax}
- {\the\dimexpr\gMPs2\onebasepoint-\scratchdimen+\MPury\onebasepoint\relax}%
- {\the\dimexpr\gMPs3\onebasepoint\relax}%
- {\the\dimexpr\gMPs4\onebasepoint\relax}%
- {0pt}}
-
-%D A few auxiliary macros. This will move to colo-ini.
-
-\def\MPgrayspace{DeviceGray}
-\def\MPrgbspace {DeviceRGB}
-\def\MPcmykspace{DeviceCMYK}
-\let\MPspotspace\MPgrayspace
-
-\def\MPcmykBlack{0 0 0 0}
-\def\MPcmykWhite{0 0 0 1}
-
-\def\startMPcolorresolve
- {\bgroup
- \def\dostartgraycolormode##1%
- {\global\let\MPresolvedspace\MPgrayspace
- \xdef\MPresolvedcolor{##1}}%
- \def\dostartrgbcolormode ##1##2##3%
- {\global\let\MPresolvedspace\MPrgbspace
- \xdef\MPresolvedcolor{##1 ##2 ##3}}%
- \def\dostartcmykcolormode##1##2##3##4%
- {\global\let\MPresolvedspace\MPcmykspace
- \xdef\MPresolvedcolor{##1 ##2 ##3 ##4}}%
- \def\dostartspotcolormode##1##2%
- {\global\let\MPspotspace\empty % left over ?
- \xdef\MPresolvedspace{##1}%
- \xdef\MPresolvedcolor{##2}%
- \global\let\MPspotspace\MPresolvedspace}% signal
- \dostartgraycolormode\!!zerocount} % kind of hackery initialization
-
-\let\stopMPcolorresolve\egroup
-
-\def\resolveMPrgbcolor#1#2#3\to#4%
- {\startMPcolorresolve
- \execcolorR#1:#2:#3:0:0\od
- \stopMPcolorresolve
- \let#4\MPresolvedcolor}
-
-\def\resolveMPcmykcolor#1#2#3#4\to#5%
- {\startMPcolorresolve
- \execcolorC#1:#2:#3:#4:0:0\od
- \stopMPcolorresolve
- \let#5\MPresolvedcolor}
-
-\def\resolveMPgraycolor#1\end\to#2%
- {\startMPcolorresolve
- \execcolorS#1:0:0\od
- \stopMPcolorresolve
- \let#2\MPresolvedcolor}
-
-\def\resolveMPspotcolor#1#2#3#4\end\to#5%
- {\startMPcolorresolve
- \ifnum#2>\plusone
- \checkmultitonecolor{#1}%
- \fi
- \execcolorP#1:#2:#3:#4:0:0\od
- \stopMPcolorresolve
- \let#5\MPresolvedcolor}
-
-%D \macros
-%D {dogetPDFmediabox}
-%D
-%D The next macro can be used to find the mediabox of a \PDF\
-%D illustration.
-%D
-%D \starttyping
-%D \dogetPDFmediabox
-%D {filename}
-%D {new dimen}{new dimen}{new dimen}{new dimen}
-%D \stoptyping
-%D
-%D Beware of dimen clashes: this macro uses the 5~default
-%D scratch registers! When no file or mediabox is found, the
-%D dimensions are zeroed.
-
-\def\dogetPDFmediabox#1#2#3#4#5%
- {\bgroup
- \def\PDFxscale{1}%
- \def\PDFyscale{1}%
- \uncatcodespecials
- \endlinechar\minusone
- \def\checkPDFtypepage##1/Type /Page##2##3\done%
- {\ifx##2\relax
- \else\if##2s% accept /Page and /Pages
- \let\doprocessPDFline\findPDFmediabox
- \else
- \let\doprocessPDFline\findPDFmediabox
- \fi\fi}%
- \def\findPDFtypepage
- {\expandafter\checkPDFtypepage\fileline/Type /Page\relax\done}%
- \def\checkPDFmediabox##1/MediaBox##2##3\done%
- {\ifx##2\relax \else
- \setPDFmediabox##2##3\done
- \fileprocessedtrue
- \fi}%
- \def\findPDFmediabox
- {\expandafter\checkPDFmediabox\fileline/MediaBox\relax\done}%
- \let\doprocessPDFline\findPDFtypepage
- \doprocessfile\scratchread{#1}\doprocessPDFline
- \egroup
- \ifx\PDFxoffset\undefined
- #2=\zeropoint
- #3=\zeropoint
- #4=\zeropoint
- #5=\zeropoint
- \else
- #2=\PDFxoffset\onebasepoint
- #3=\PDFyoffset\onebasepoint
- #4=\PDFwidth
- #5=\PDFheight
- \fi}
-
-\def\setPDFboundingbox#1#2#3#4#5#6%
- {\dimen0=#1\dimen0=#5\dimen0
- \ScaledPointsToBigPoints{\number\dimen0}\PDFxoffset
- \dimen0=#3\dimen0=#5\dimen0
- \xdef\PDFwidth{\the\dimen0}%
- \dimen0=#2\dimen0=#6\dimen0
- \ScaledPointsToBigPoints{\number\dimen0}\PDFyoffset
- \dimen0=#4\dimen0=#6\dimen0
- \xdef\PDFheight{\the\dimen0}%
- \global\let\PDFxoffset\PDFxoffset
- \global\let\PDFyoffset\PDFyoffset}
-
-\def\setPDFmediabox#1[#2 #3 #4 #5]#6\done
- {\dimen2=#2\onebasepoint\dimen2=-\dimen2 % \dimen2=-#2\onebasepoint also works since tex handles --
- \dimen4=#3\onebasepoint\dimen4=-\dimen4 % \dimen4=-#3\onebasepoint also works since tex handles --
- \dimen6=#4\onebasepoint\advance\dimen6 \dimen2
- \dimen8=#5\onebasepoint\advance\dimen8 \dimen4
- \setPDFboundingbox{\dimen2}{\dimen4}{\dimen6}{\dimen8}\PDFxscale\PDFyscale}
-
-%D End of soon obsolete code.
-
-%D The plugins:
-
-\startMPinitializations
- mp_shade_version := 2 ;
-\stopMPinitializations
-
-\loadmarkfile{meta-pdf}
-
-%D Test code:
-
-% \startMPcode
-% fill fullcircle scaled 3cm withcolor red ;
-% fill fullcircle scaled 2cm withcolor green ;
-% fill fullcircle scaled 1cm withcolor blue ;
-% currentpicture := currentpicture shifted (-4cm,0) ;
-% fill fullcircle scaled 3cm withcolor cmyk(0,0,1,0) ;
-% fill fullcircle scaled 2cm withcolor cmyk(0,1,0,0) ;
-% fill fullcircle scaled 1cm withcolor cmyk(0,0,1,0) ;
-% currentpicture := currentpicture shifted (-4cm,0) ;
-% draw fullcircle scaled 3cm dashed evenly ;
-% draw fullcircle scaled 2cm dashed withdots ;
-% draw origin withpen pencircle scaled 3mm;
-% currentpicture := currentpicture shifted (-4cm,0) ;
-% fill fullcircle scaled 2cm shifted (-.5cm,+.5cm) withcolor transparent(1,.5,red);
-% fill fullcircle scaled 2cm shifted (-.5cm,-.5cm) withcolor transparent(1,.5,red);
-% fill fullcircle scaled 2cm shifted (+.5cm,+.5cm) withcolor transparent(1,.5,green);
-% fill fullcircle scaled 2cm shifted (+.5cm,-.5cm) withcolor transparent(1,.5,cmyk(1,0,1,.5));
-% currentpicture := currentpicture shifted (12cm,-4cm) ;
-% draw "o e p s" infont defaultfont scaled 2 shifted (-1cm,0) ;
-% currentpicture := currentpicture shifted (-4cm,0) ;
-% % bug: shift
-% draw fullcircle scaled 3cm withpen pencircle yscaled 3mm xscaled 2mm rotated 30 ;
-% draw fullcircle scaled 2cm withpen pencircle yscaled 3mm xscaled 2mm rotated 20 withcolor red ;
-% filldraw fullcircle scaled 1cm withpen pencircle yscaled 3mm xscaled 2mm rotated 10 withcolor green ;
-% currentpicture := currentpicture shifted (-4cm,0) ;
-% % shade cannot handle shift
-% circular_shade(fullcircle scaled 3cm,0,.2red,.9green) ;
-% circular_shade(fullcircle scaled 3cm shifted(+4cm,0),0,cmyk(1,0,0,0),cmyk(0,1,0,0)) ;
-% filldraw boundingbox currentpicture enlarged -3cm withpen pencircle scaled 1pt withcolor .5white ;
-% \stopMPcode
-
-% This code will move to meta-pdf.mkiv and the call to lua will move to the
-% converter code (saves a lua call). We will do this when we made the final
-% move to attribute bases color. Actually, we cannot use attributes for
-% switching colors in mp literals because grouping (qQ) interferes.
-
-\ifx\colorversion\undefined \else \ifnum\colorversion>\plusone
-
- \def\dohandleMPgraycolor #1{\ctxlua{ctx.pdffinishtransparency()
- ctx.pdfgrayliteral(\the\currentcolormodel,#1)}}
- \def\dohandleMPrgbcolor #1#2#3{\ctxlua{ctx.pdffinishtransparency()
- ctx.pdfrgbliteral (\the\currentcolormodel,#1,#2,#3)}}
- \def\dohandleMPcmykcolor#1#2#3#4{\ctxlua{ctx.pdffinishtransparency()
- ctx.pdfcmykliteral(\the\currentcolormodel,#1,#2,#3,#4)}}
- \def\dohandleMPspotcolor#1#2#3#4{\ctxlua{ctx.pdffinishtransparency()
- ctx.pdfspotliteral(\the\currentcolormodel,"#1",#2,"#3","#4")}}
-
- % we can combine the next calls
-
- \def\dohandleMPgraytransparency #1#2#3{\ctxlua{ctx.pdfgrayliteral(\the\currentcolormodel,#1)
- ctx.pdftransparencyliteral(#2,#3)}}
- \def\dohandleMPrgbtransparency #1#2#3#4#5{\ctxlua{ctx.pdfrgbliteral (\the\currentcolormodel,#1,#2,#3)
- ctx.pdftransparencyliteral(#4,#5)}}
- \def\dohandleMPcmyktransparency#1#2#3#4#5#6{\ctxlua{ctx.pdfcmykliteral(\the\currentcolormodel,#1,#2,#3,#4)
- ctx.pdftransparencyliteral(#5,#6)}}
- \def\dohandleMPspottransparency#1#2#3#4#5#6{\ctxlua{ctx.pdfspotliteral(\the\currentcolormodel,"#1",#2,"#3","#4")
- ctx.pdftransparencyliteral(#5,#6)}}
-
- \def\dohandleMPresettransparency {\ctxlua{ctx.pdffinishtransparency()}}
-
- \def\resolveMPgraycolor #1\to#2{\ctxlua{ctx.resolvempgraycolor("\strippedcsname#2","MPresolvedspace",\number\currentcolormodel,#1)}}
- \def\resolveMPrgbcolor #1#2#3\to#4{\ctxlua{ctx.resolvemprgbcolor ("\strippedcsname#4","MPresolvedspace",\number\currentcolormodel,#1,#2,#3)}}
- \def\resolveMPcmykcolor#1#2#3#4\to#5{\ctxlua{ctx.resolvempcmykcolor("\strippedcsname#5","MPresolvedspace",\number\currentcolormodel,#1,#2,#3,#4)}}
-
- \def\resolveMPspotcolor#1#2#3#4\to#5% unchecked
- {\ctxlua{ctx.resolvempspotcolor("\strippedcsname#5","MPresolvedspace",\number\currentcolormodel,"#1",#2,"#3","#4")}%
- \xdef\MPresolvedspace{#1}%
- \xdef\MPresolvedcolor{#4}%
- \global\let\MPspotspace\MPresolvedspace}
-
- % used as callers
-
- \let\MPSgray\dohandleMPgraycolor
- \let\MPSrgb \dohandleMPrgbcolor
- \let\MPScmyk\dohandleMPcmykcolor
- \let\MPspot \dohandleMPspotcolor
-
-\fi \fi
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/meta-pdh.lua b/Master/texmf-dist/tex/context/base/meta-pdh.lua
new file mode 100644
index 00000000000..ef15c6a1145
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/meta-pdh.lua
@@ -0,0 +1,602 @@
+if not modules then modules = { } end modules ['meta-pdf'] = {
+ version = 1.001,
+ comment = "companion to meta-pdf.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- This file contains the history of the converter. We keep it around as it
+-- relates to the development of luatex.
+
+-- This is the third version. Version 1 converted to Lua code,
+-- version 2 gsubbed the file into TeX code, and version 3 uses
+-- the new lpeg functionality and streams the result into TeX.
+
+-- We will move old stuff to edu.
+
+--~ old lpeg 0.4 lpeg 0.5
+--~ 100 times test graphic 2.45 (T:1.07) 0.72 (T:0.24) 0.580 (0.560 no table) -- 0.54 optimized for one space (T:0.19)
+--~ 100 times big graphic 10.44 4.30/3.35 nogb 2.914 (2.050 no table) -- 1.99 optimized for one space (T:0.85)
+--~ 500 times test graphic T:1.29 T:1.16 (T:1.10 no table) -- T:1.10
+
+-- only needed for mp output on disk
+
+local concat, format = table.concat, string.format
+
+local texsprint = tex.sprint
+local ctxcatcodes = tex.ctxcatcodes
+
+mptopdf = { }
+mptopdf.parsers = { }
+mptopdf.parser = 'none'
+mptopdf.n = 0
+
+function mptopdf.reset()
+ mptopdf.data = ""
+ mptopdf.path = { }
+ mptopdf.stack = { }
+ mptopdf.texts = { }
+ mptopdf.version = 0
+ mptopdf.shortcuts = false
+ mptopdf.resetpath()
+end
+
+function mptopdf.resetpath()
+ mptopdf.stack.close = false
+ mptopdf.stack.path = { }
+ mptopdf.stack.concat = nil
+ mptopdf.stack.special = false
+end
+
+mptopdf.reset()
+
+function mptopdf.parsers.none()
+ -- no parser set
+end
+
+function mptopdf.parse()
+ mptopdf.parsers[mptopdf.parser]()
+end
+
+-- old code
+
+mptopdf.steps = { }
+
+mptopdf.descapes = {
+ ['('] = "\\\\char40 ",
+ [')'] = "\\\\char41 ",
+ ['"'] = "\\\\char92 "
+}
+
+function mptopdf.descape(str)
+ str = str:gsub("\\(%d%d%d)",function(n)
+ return "\\char" .. tonumber(n,8) .. " "
+ end)
+ return str:gsub("\\([%(%)\\])",mptopdf.descapes)
+end
+
+function mptopdf.steps.descape(str)
+ str = str:gsub("\\(%d%d%d)",function(n)
+ return "\\\\char" .. tonumber(n,8) .. " "
+ end)
+ return str:gsub("\\([%(%)\\])",mptopdf.descapes)
+end
+
+function mptopdf.steps.strip() -- .3 per expr
+ mptopdf.data = mptopdf.data:gsub("^(.-)%%+Page:.-%c+(.*)%s+%a+%s+%%+EOF.*$", function(preamble, graphic)
+ local bbox = "0 0 0 0"
+ for b in preamble:gmatch("%%%%%a+oundingBox: +(.-)%c+") do
+ bbox = b
+ end
+ local name, version = preamble:gmatch("%%%%Creator: +(.-) +(.-) ")
+ mptopdf.version = tostring(version or "0")
+ if preamble:find("/hlw{0 dtransform") then
+ mptopdf.shortcuts = true
+ end
+ -- the boundingbox specification needs to come before data, well, not really
+ return bbox .. " boundingbox\n" .. "\nbegindata\n" .. graphic .. "\nenddata\n"
+ end, 1)
+ mptopdf.data = mptopdf.data:gsub("%%%%MetaPostSpecials: +(.-)%c+", "%1 specials\n", 1)
+ mptopdf.data = mptopdf.data:gsub("%%%%MetaPostSpecial: +(.-)%c+", "%1 special\n")
+ mptopdf.data = mptopdf.data:gsub("%%.-%c+", "")
+end
+
+function mptopdf.steps.cleanup()
+ if not mptopdf.shortcuts then
+ mptopdf.data = mptopdf.data:gsub("gsave%s+fill%s+grestore%s+stroke", "both")
+ mptopdf.data = mptopdf.data:gsub("([%d%.]+)%s+([%d%.]+)%s+dtransform%s+exch%s+truncate%s+exch%s+idtransform%s+pop%s+setlinewidth", function(wx,wy)
+ if tonumber(wx) > 0 then return wx .. " setlinewidth" else return wy .. " setlinewidth" end
+ end)
+ mptopdf.data = mptopdf.data:gsub("([%d%.]+)%s+([%d%.]+)%s+dtransform%s+truncate%s+idtransform%s+setlinewidth%s+pop", function(wx,wy)
+ if tonumber(wx) > 0 then return wx .. " setlinewidth" else return wy .. " setlinewidth" end
+ end)
+ end
+end
+
+function mptopdf.steps.convert()
+ mptopdf.data = mptopdf.data:gsub("%c%((.-)%) (.-) (.-) fshow", function(str,font,scale)
+ mptopdf.texts[mptopdf.texts+1] = {mptopdf.steps.descape(str), font, scale}
+ return "\n" .. #mptopdf.texts .. " textext"
+ end)
+ mptopdf.data = mptopdf.data:gsub("%[%s*(.-)%s*%]", function(str)
+ return str:gsub("%s+"," ")
+ end)
+ local t
+ mptopdf.data = mptopdf.data:gsub("%s*([^%a]-)%s*(%a+)", function(args,cmd)
+ if cmd == "textext" then
+ t = mptopdf.texts[tonumber(args)]
+ return "mps.textext(" .. "\"" .. t[2] .. "\"," .. t[3] .. ",\"" .. t[1] .. "\")\n"
+ else
+ return "mps." .. cmd .. "(" .. args:gsub(" +",",") .. ")\n"
+ end
+ end)
+end
+
+function mptopdf.steps.process()
+ assert(loadstring(mptopdf.data))() -- () runs the loaded chunk
+end
+
+function mptopdf.parsers.gsub()
+ mptopdf.steps.strip()
+ mptopdf.steps.cleanup()
+ mptopdf.steps.convert()
+ mptopdf.steps.process()
+end
+
+-- end of old code
+
+-- from lua to tex
+
+function mptopdf.pdfcode(str)
+ texsprint(ctxcatcodes,"\\pdfliteral{" .. str .. "}") -- \\MPScode
+end
+
+function mptopdf.texcode(str)
+ texsprint(ctxcatcodes,str)
+end
+
+-- auxiliary functions
+
+function mptopdf.flushconcat()
+ if mptopdf.stack.concat then
+ mptopdf.pdfcode(concat(mptopdf.stack.concat," ") .. " cm")
+ mptopdf.stack.concat = nil
+ end
+end
+
+function mptopdf.flushpath(cmd)
+ -- faster: no local function and ipairs
+ if #mptopdf.stack.path > 0 then
+ local path = { }
+ if mptopdf.stack.concat then
+ local sx, sy = mptopdf.stack.concat[1], mptopdf.stack.concat[4]
+ local rx, ry = mptopdf.stack.concat[2], mptopdf.stack.concat[3]
+ local tx, ty = mptopdf.stack.concat[5], mptopdf.stack.concat[6]
+ local d = (sx*sy) - (rx*ry)
+ local function mpconcat(px, py)
+ return (sy*(px-tx)-ry*(py-ty))/d, (sx*(py-ty)-rx*(px-tx))/d
+ end
+ local stackpath = mptopdf.stack.path
+ for k=1,#stackpath do
+ local v = stackpath[k]
+ v[1],v[2] = mpconcat(v[1],v[2])
+ if #v == 7 then
+ v[3],v[4] = mpconcat(v[3],v[4])
+ v[5],v[6] = mpconcat(v[5],v[6])
+ end
+ path[#path+1] = concat(v," ")
+ end
+ else
+ local stackpath = mptopdf.stack.path
+ for k=1,#stackpath do
+ path[#path+1] = concat(stackpath[k]," ")
+ end
+ end
+ mptopdf.flushconcat()
+ mptopdf.texcode("\\MPSpath{" .. concat(path," ") .. "}")
+ if mptopdf.stack.close then
+ mptopdf.texcode("\\MPScode{h " .. cmd .. "}")
+ else
+ mptopdf.texcode("\\MPScode{" .. cmd .."}")
+ end
+ end
+ mptopdf.resetpath()
+end
+
+function mptopdf.loaded(name)
+ local ok, n
+ mptopdf.reset()
+ ok, mptopdf.data, n = resolvers.loadbinfile(name, 'tex') -- we need a binary load !
+ return ok
+end
+
+if not mptopdf.parse then
+ function mptopdf.parse() end -- forward declaration
+end
+
+function mptopdf.convertmpstopdf(name)
+ if mptopdf.loaded(name) then
+ mptopdf.n = mptopdf.n + 1
+ statistics.starttiming(mptopdf)
+ mptopdf.parse()
+ mptopdf.reset()
+ statistics.stoptiming(mptopdf)
+ else
+ tex.print("file " .. name .. " not found")
+ end
+end
+
+-- mp interface
+
+mps = mps or { }
+
+function mps.creator(a, b, c)
+ mptopdf.version = tonumber(b)
+end
+
+function mps.creationdate(a)
+ mptopdf.date= a
+end
+
+function mps.newpath()
+ mptopdf.stack.path = { }
+end
+
+function mps.boundingbox(llx, lly, urx, ury)
+ mptopdf.texcode("\\MPSboundingbox{" .. llx .. "}{" .. lly .. "}{" .. urx .. "}{" .. ury .. "}")
+end
+
+function mps.moveto(x,y)
+ mptopdf.stack.path[#mptopdf.stack.path+1] = {x,y,"m"}
+end
+
+function mps.curveto(ax, ay, bx, by, cx, cy)
+ mptopdf.stack.path[#mptopdf.stack.path+1] = {ax,ay,bx,by,cx,cy,"c"}
+end
+
+function mps.lineto(x,y)
+ mptopdf.stack.path[#mptopdf.stack.path+1] = {x,y,"l"}
+end
+
+function mps.rlineto(x,y)
+ local dx, dy = 0, 0
+ if #mptopdf.stack.path > 0 then
+ dx, dy = mptopdf.stack.path[#mptopdf.stack.path][1], mptopdf.stack.path[#mptopdf.stack.path][2]
+ end
+ mptopdf.stack.path[#mptopdf.stack.path+1] = {dx,dy,"l"}
+end
+
+function mps.translate(tx,ty)
+ mptopdf.pdfcode("1 0 0 0 1 " .. tx .. " " .. ty .. " cm")
+end
+
+function mps.scale(sx,sy)
+ mptopdf.stack.concat = {sx,0,0,sy,0,0}
+end
+
+function mps.concat(sx, rx, ry, sy, tx, ty)
+ mptopdf.stack.concat = {sx,rx,ry,sy,tx,ty}
+end
+
+function mps.setlinejoin(d)
+ mptopdf.pdfcode(d .. " j")
+end
+
+function mps.setlinecap(d)
+ mptopdf.pdfcode(d .. " J")
+end
+
+function mps.setmiterlimit(d)
+ mptopdf.pdfcode(d .. " M")
+end
+
+function mps.gsave()
+ mptopdf.pdfcode("q")
+end
+
+function mps.grestore()
+ mptopdf.pdfcode("Q")
+end
+
+function mps.setdash(...)
+ local n = select("#",...)
+ mptopdf.pdfcode("[" .. concat({...}," ",1,n-1) .. "] " .. select(n,...) .. " d")
+end
+
+function mps.resetdash()
+ mptopdf.pdfcode("[ ] 0 d")
+end
+
+function mps.setlinewidth(d)
+ mptopdf.pdfcode(d .. " w")
+end
+
+function mps.closepath()
+ mptopdf.stack.close = true
+end
+
+function mps.fill()
+ mptopdf.flushpath('f')
+end
+
+function mps.stroke()
+ mptopdf.flushpath('S')
+end
+
+function mps.both()
+ mptopdf.flushpath('B')
+end
+
+function mps.clip()
+ mptopdf.flushpath('W n')
+end
+
+function mps.textext(font, scale, str) -- old parser
+ local dx, dy = 0, 0
+ if #mptopdf.stack.path > 0 then
+ dx, dy = mptopdf.stack.path[1][1], mptopdf.stack.path[1][2]
+ end
+ mptopdf.flushconcat()
+ mptopdf.texcode("\\MPStextext{"..font.."}{"..scale.."}{"..str.."}{"..dx.."}{"..dy.."}")
+ mptopdf.resetpath()
+end
+
+--~ function mps.handletext(font,scale.str,dx,dy)
+--~ local one, two = string.match(str, "^(%d+)::::(%d+)")
+--~ if one and two then
+--~ mptopdf.texcode("\\MPTOPDFtextext{"..font.."}{"..scale.."}{"..one.."}{"..two.."}{"..dx.."}{"..dy.."}")
+--~ else
+--~ mptopdf.texcode("\\MPTOPDFtexcode{"..font.."}{"..scale.."}{"..str.."}{"..dx.."}{"..dy.."}")
+--~ end
+--~ end
+
+function mps.setrgbcolor(r,g,b) -- extra check
+ r, g = tonumber(r), tonumber(g) -- needed when we use lpeg
+ if r == 0.0123 and g < 0.1 then
+ mptopdf.texcode("\\MPSspecial{" .. g*10000 .. "}{" .. b*10000 .. "}")
+ elseif r == 0.123 and g < 0.1 then
+ mptopdf.texcode("\\MPSspecial{" .. g* 1000 .. "}{" .. b* 1000 .. "}")
+ else
+ mptopdf.texcode("\\MPSrgb{" .. r .. "}{" .. g .. "}{" .. b .. "}")
+ end
+end
+
+function mps.setcmykcolor(c,m,y,k)
+ mptopdf.texcode("\\MPScmyk{" .. c .. "}{" .. m .. "}{" .. y .. "}{" .. k .. "}")
+end
+
+function mps.setgray(s)
+ mptopdf.texcode("\\MPSgray{" .. s .. "}")
+end
+
+function mps.specials(version,signal,factor) -- 2.0 123 1000
+end
+
+function mps.special(...) -- 7 1 0.5 1 0 0 1 3
+ local n = select("#",...)
+ mptopdf.texcode("\\MPSbegin\\MPSset{" .. concat({...},"}\\MPSset{",2,n) .. "}\\MPSend")
+end
+
+function mps.begindata()
+end
+
+function mps.enddata()
+end
+
+function mps.showpage()
+end
+
+mps.n = mps.newpath -- n
+mps.p = mps.closepath -- h
+mps.l = mps.lineto -- l
+mps.r = mps.rlineto -- r
+mps.m = mps.moveto -- m
+mps.c = mps.curveto -- c
+mps.hlw = mps.setlinewidth
+mps.vlw = mps.setlinewidth
+
+mps.C = mps.setcmykcolor -- k
+mps.G = mps.setgray -- g
+mps.R = mps.setrgbcolor -- rg
+
+mps.lj = mps.setlinejoin -- j
+mps.ml = mps.setmiterlimit -- M
+mps.lc = mps.setlinecap -- J
+mps.sd = mps.setdash -- d
+mps.rd = mps.resetdash
+
+mps.S = mps.stroke -- S
+mps.F = mps.fill -- f
+mps.B = mps.both -- B
+mps.W = mps.clip -- W
+
+mps.q = mps.gsave -- q
+mps.Q = mps.grestore -- Q
+
+mps.s = mps.scale -- (not in pdf)
+mps.t = mps.concat -- (not the same as pdf anyway)
+
+mps.P = mps.showpage
+
+-- experimental
+
+function mps.attribute(id,value)
+ mptopdf.texcode("\\attribute " .. id .. "=" .. value .. " ")
+-- mptopdf.texcode("\\dompattribute{" .. id .. "}{" .. value .. "}")
+end
+
+-- lpeg parser
+
+-- The lpeg based parser is rather optimized for the kind of output
+-- that MetaPost produces. It's my first real lpeg code, which may
+-- show. Because the parser binds to functions, we define it last.
+
+do -- assumes \let\c\char
+
+ local byte = string.byte
+ local digit = lpeg.R("09")
+ local spec = digit^2 * lpeg.P("::::") * digit^2
+ local text = lpeg.Cc("{") * (
+ lpeg.P("\\") * ( (digit * digit * digit) / function(n) return "c" .. tonumber(n,8) end) +
+ lpeg.P(" ") / function(n) return "\\c32" end + -- never in new mp
+ lpeg.P(1) / function(n) return "\\c" .. byte(n) end
+ ) * lpeg.Cc("}")
+ local package = lpeg.Cs(spec + text^0)
+
+ function mps.fshow(str,font,scale) -- lpeg parser
+ mps.textext(font,scale,package:match(str))
+ end
+
+end
+
+do
+
+ local eol = lpeg.S('\r\n')^1
+ local sp = lpeg.P(' ')^1
+ local space = lpeg.S(' \r\n')^1
+ local number = lpeg.S('0123456789.-+')^1
+ local nonspace = lpeg.P(1-lpeg.S(' \r\n'))^1
+
+ local cnumber = lpeg.C(number)
+ local cstring = lpeg.C(nonspace)
+
+ local specials = (lpeg.P("%%MetaPostSpecials:") * sp * (cstring * sp^0)^0 * eol) / mps.specials
+ local special = (lpeg.P("%%MetaPostSpecial:") * sp * (cstring * sp^0)^0 * eol) / mps.special
+ local boundingbox = (lpeg.P("%%BoundingBox:") * sp * (cnumber * sp^0)^4 * eol) / mps.boundingbox
+ local highresboundingbox = (lpeg.P("%%HiResBoundingBox:") * sp * (cnumber * sp^0)^4 * eol) / mps.boundingbox
+
+ local setup = lpeg.P("%%BeginSetup") * (1 - lpeg.P("%%EndSetup") )^1
+ local prolog = lpeg.P("%%BeginProlog") * (1 - lpeg.P("%%EndProlog"))^1
+ local comment = lpeg.P('%')^1 * (1 - eol)^1
+
+ local curveto = ((cnumber * sp)^6 * lpeg.P("curveto") ) / mps.curveto
+ local lineto = ((cnumber * sp)^2 * lpeg.P("lineto") ) / mps.lineto
+ local rlineto = ((cnumber * sp)^2 * lpeg.P("rlineto") ) / mps.rlineto
+ local moveto = ((cnumber * sp)^2 * lpeg.P("moveto") ) / mps.moveto
+ local setrgbcolor = ((cnumber * sp)^3 * lpeg.P("setrgbcolor") ) / mps.setrgbcolor
+ local setcmykcolor = ((cnumber * sp)^4 * lpeg.P("setcmykcolor") ) / mps.setcmykcolor
+ local setgray = ((cnumber * sp)^1 * lpeg.P("setgray") ) / mps.setgray
+ local newpath = ( lpeg.P("newpath") ) / mps.newpath
+ local closepath = ( lpeg.P("closepath") ) / mps.closepath
+ local fill = ( lpeg.P("fill") ) / mps.fill
+ local stroke = ( lpeg.P("stroke") ) / mps.stroke
+ local clip = ( lpeg.P("clip") ) / mps.clip
+ local both = ( lpeg.P("gsave fill grestore")) / mps.both
+ local showpage = ( lpeg.P("showpage") )
+ local setlinejoin = ((cnumber * sp)^1 * lpeg.P("setlinejoin") ) / mps.setlinejoin
+ local setlinecap = ((cnumber * sp)^1 * lpeg.P("setlinecap") ) / mps.setlinecap
+ local setmiterlimit = ((cnumber * sp)^1 * lpeg.P("setmiterlimit") ) / mps.setmiterlimit
+ local gsave = ( lpeg.P("gsave") ) / mps.gsave
+ local grestore = ( lpeg.P("grestore") ) / mps.grestore
+
+ local setdash = (lpeg.P("[") * (cnumber * sp^0)^0 * lpeg.P("]") * sp * cnumber * sp * lpeg.P("setdash")) / mps.setdash
+ local concat = (lpeg.P("[") * (cnumber * sp^0)^6 * lpeg.P("]") * sp * lpeg.P("concat") ) / mps.concat
+ local scale = ( (cnumber * sp^0)^6 * sp * lpeg.P("concat") ) / mps.concat
+
+ local fshow = (lpeg.P("(") * lpeg.C((1-lpeg.P(")"))^1) * lpeg.P(")") * space * cstring * space * cnumber * space * lpeg.P("fshow")) / mps.fshow
+ local fshow = (lpeg.P("(") *
+ lpeg.Cs( ( lpeg.P("\\(")/"\\050" + lpeg.P("\\)")/"\\051" + (1-lpeg.P(")")) )^1 )
+ * lpeg.P(")") * space * cstring * space * cnumber * space * lpeg.P("fshow")) / mps.fshow
+
+ local setlinewidth_x = (lpeg.P("0") * sp * cnumber * sp * lpeg.P("dtransform truncate idtransform setlinewidth pop")) / mps.setlinewidth
+ local setlinewidth_y = (cnumber * sp * lpeg.P("0 dtransform exch truncate exch idtransform pop setlinewidth") ) / mps.setlinewidth
+
+ local c = ((cnumber * sp)^6 * lpeg.P("c") ) / mps.curveto -- ^6 very inefficient, ^1 ok too
+ local l = ((cnumber * sp)^2 * lpeg.P("l") ) / mps.lineto
+ local r = ((cnumber * sp)^2 * lpeg.P("r") ) / mps.rlineto
+ local m = ((cnumber * sp)^2 * lpeg.P("m") ) / mps.moveto
+ local vlw = ((cnumber * sp)^1 * lpeg.P("vlw")) / mps.setlinewidth
+ local hlw = ((cnumber * sp)^1 * lpeg.P("hlw")) / mps.setlinewidth
+
+ local R = ((cnumber * sp)^3 * lpeg.P("R") ) / mps.setrgbcolor
+ local C = ((cnumber * sp)^4 * lpeg.P("C") ) / mps.setcmykcolor
+ local G = ((cnumber * sp)^1 * lpeg.P("G") ) / mps.setgray
+
+ local lj = ((cnumber * sp)^1 * lpeg.P("lj") ) / mps.setlinejoin
+ local ml = ((cnumber * sp)^1 * lpeg.P("ml") ) / mps.setmiterlimit
+ local lc = ((cnumber * sp)^1 * lpeg.P("lc") ) / mps.setlinecap
+
+ local n = lpeg.P("n") / mps.newpath
+ local p = lpeg.P("p") / mps.closepath
+ local S = lpeg.P("S") / mps.stroke
+ local F = lpeg.P("F") / mps.fill
+ local B = lpeg.P("B") / mps.both
+ local W = lpeg.P("W") / mps.clip
+ local P = lpeg.P("P") / mps.showpage
+
+ local q = lpeg.P("q") / mps.gsave
+ local Q = lpeg.P("Q") / mps.grestore
+
+ local sd = (lpeg.P("[") * (cnumber * sp^0)^0 * lpeg.P("]") * sp * cnumber * sp * lpeg.P("sd")) / mps.setdash
+ local rd = ( lpeg.P("rd")) / mps.resetdash
+
+ local s = ( (cnumber * sp^0)^2 * lpeg.P("s") ) / mps.scale
+ local t = (lpeg.P("[") * (cnumber * sp^0)^6 * lpeg.P("]") * sp * lpeg.P("t") ) / mps.concat
+
+ -- experimental
+
+ local attribute = ((cnumber * sp)^2 * lpeg.P("attribute")) / mps.attribute
+ local A = ((cnumber * sp)^2 * lpeg.P("A")) / mps.attribute
+
+ local preamble = (
+ prolog + setup +
+ boundingbox + highresboundingbox + specials + special +
+ comment
+ )
+
+ local procset = (
+ lj + ml + lc +
+ c + l + m + n + p + r +
+ A +
+ R + C + G +
+ S + F + B + W +
+ vlw + hlw +
+ Q + q +
+ sd + rd +
+ t + s +
+ fshow +
+ P
+ )
+
+ local verbose = (
+ curveto + lineto + moveto + newpath + closepath + rlineto +
+ setrgbcolor + setcmykcolor + setgray +
+ attribute +
+ setlinejoin + setmiterlimit + setlinecap +
+ stroke + fill + clip + both +
+ setlinewidth_x + setlinewidth_y +
+ gsave + grestore +
+ concat + scale +
+ fshow +
+ setdash + -- no resetdash
+ showpage
+ )
+
+ -- order matters in terms of speed / we could check for procset first
+
+ local captures_old = ( space + verbose + preamble )^0
+ local captures_new = ( space + procset + preamble + verbose )^0
+
+ function mptopdf.parsers.lpeg()
+ if mptopdf.data:find("%%%%BeginResource: procset mpost") then
+ captures_new:match(mptopdf.data)
+ else
+ captures_old:match(mptopdf.data)
+ end
+ end
+
+end
+
+mptopdf.parser = 'lpeg'
+
+-- status info
+
+statistics.register("mps conversion time",function()
+ local n = mptopdf.n
+ if n > 0 then
+ return format("%s seconds, %s conversions", statistics.elapsedtime(mptopdf),n)
+ else
+ return nil
+ end
+end)
diff --git a/Master/texmf-dist/tex/context/base/meta-pdh.mkiv b/Master/texmf-dist/tex/context/base/meta-pdh.mkiv
new file mode 100644
index 00000000000..0736598cf35
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/meta-pdh.mkiv
@@ -0,0 +1,780 @@
+%D \module
+%D [ file=meta-pdf,
+%D version=2006.06.07,
+%D title=\METAPOST\ Graphics,
+%D subtitle=Conversion to \PDF,
+%D author=Hans Hagen \& others (see text),
+%D date=\currentdate,
+%D copyright=\PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D Formerly known as supp-pdf.tex and supp-mpe.tex and meta-pdf.mkiv.
+%D
+%D Beware: this file is not used but kept for historic purposed!
+
+% \useMPgraphic{1}
+% \testfeatureonce{250}{\setbox0\hbox{\convertMPtoPDF{test-mps-mpgraph.1}{1}{1}}}
+%
+% 8.4 : mkii, direct parsing by tex
+% 11.8 : mkiv, dirty conversion (10.8 with dirty tricks)
+% 14.5 : mkiv, clean conversion
+% 7.4 : mkiv, simulated clean direct lua from mp
+% 0.3 : time taken by tex to handle converted code
+%
+% timings may differ now that we revamped the backend
+
+\registerctxluafile{meta-pdf}{1.003}
+
+%D We will clean up the color mess later.
+
+\writestatus{loading}{MetaPost Graphics / MPS to PDF}
+
+\unprotect
+
+%D First we define a handy constant:
+
+\bgroup \catcode`\%=\@@other \xdef\letterpercent{\string%} \egroup
+
+%D \macros
+%D {convertMPtoPDF}
+%D
+%D The next set of macros implements \METAPOST\ to \PDF\
+%D conversion. The traditional method is in the MkII file.
+%D
+%D The main conversion command is:
+%D
+%D \starttyping
+%D \convertMPtoPDF {filename} {x scale} {y scale}
+%D \stoptyping
+%D
+%D The dimensions are derived from the bounding box. So we
+%D only have to say:
+%D
+%D \starttyping
+%D \convertMPtoPDF{mp-pra-1.eps}{1}{1}
+%D \convertMPtoPDF{mp-pra-1.eps}{.5}{.5}
+%D \stoptyping
+
+%D \macros
+%D {makeMPintoPDFobject,lastPDFMPobject}
+%D
+%D For experts there are a few more options. When attributes
+%D are to be added, the code must be embedded in an object
+%D accompanied with the appropriate directives. One can
+%D influence this process with \type {\makeMPintoPDFobject}.
+%D
+%D This option defaults to~0, because \CONTEXT\ takes care
+%D of objects at another level, which saves some bytes.
+%D
+%D \starttabulate[|l|l|p|]
+%D \NC 0 \NC never \NC don't use an object \NC\NR
+%D \NC 1 \NC always \NC always use an object \NC\NR
+%D \NC 2 \NC optional \NC use object when needed \NC\NR
+%D \stoptabulate
+%D
+%D The last object number used is avaliable in the macro
+%D \type {\lastPDFMPobject}.
+
+\ifx\makeMPintoPDFobject \undefined \chardef\makeMPintoPDFobject \zerocount \fi
+\ifx\everyMPtoPDFconversion\undefined \newtoks\everyMPtoPDFconversion \fi
+
+\let\lastPDFMPobject \!!zerocount
+\let\currentPDFresources\empty
+\let\setMPextensions \relax
+
+\def\PDFMPformoffset
+ {\ifx\objectoffset\undefined\zeropoint\else\objectoffset\fi}
+
+\def\resetMPvariables#1#2#3%
+ {\global\let\MPwidth \!!zeropoint
+ \global\let\MPheight\!!zeropoint
+ \global\let\MPllx \!!zerocount
+ \global\let\MPlly \!!zerocount
+ \global\let\MPurx \!!zerocount
+ \global\let\MPury \!!zerocount
+ \xdef\MPxscale {#2}\ifx\MPxscale\empty\let\MPxscale\!!plusone\fi
+ \xdef\MPyscale {#3}\ifx\MPyscale\empty\let\MPyscale\!!plusone\fi
+ \xdef\MPfilename {#1}}
+
+%D The main macro:
+
+\def\convertMPtoPDF#1#2#3% watch the transparency reset
+ {\resetMPvariables{#1}{#2}{#3}%
+ \vbox\bgroup
+ \forgetall
+ \offinterlineskip
+ \setbox\scratchbox\vbox\bgroup
+ \setnormalcatcodes % we can be in verbatim or so
+ \message{[MP to PDF]}%
+ \startMPresources
+ \pdfliteral{\letterpercent\space mps begin}%
+ \pdfliteral{q 1 0 0 1 0 0 cm}%
+ \ctxlua{mptopdf.convertmpstopdf("\MPfilename")}\removeunwantedspaces
+ \pdfliteral{Q}%
+ \pdfliteral{\letterpercent\space mps end}%
+ \stopMPresources
+ \egroup
+ \setbox\scratchbox\hbox\bgroup
+ \hskip-\MPllx\onebasepoint
+ \raise-\MPlly\onebasepoint
+ \box\scratchbox
+ \egroup
+ \setbox\scratchbox\vbox to \MPheight\bgroup
+ \vfill
+ \hsize\MPwidth
+ \smashbox\scratchbox
+ \box\scratchbox
+ \egroup
+ \wd\scratchbox\MPwidth
+ \ht\scratchbox\MPheight
+ \dopackageMPgraphic\scratchbox
+ \egroup}
+
+\let\processMPtoPDFfile\convertMPtoPDF
+
+%D A common hook.
+
+\let\MPfshowcommand\empty
+
+%D Objects.
+
+\def\dopackageMPgraphic#1% #1 = boxregister
+ {\ifcase\makeMPintoPDFobject\or\or\ifx\currentPDFresources\empty\else
+ % an existing value of 2 signals object support (set elsewhere)
+ \chardef\makeMPintoPDFobject\plusone
+ \fi\fi
+ \ifcase\makeMPintoPDFobject
+ \box#1%
+ \or
+ \scratchdimen\PDFMPformoffset\relax
+ \ifdim\scratchdimen>\zeropoint % compensate for error
+ \setbox#1\vbox spread 2\scratchdimen
+ {\forgetall\vss\hbox spread 2\scratchdimen{\hss\box#1\hss}\vss}%
+ \fi
+ \setMPPDFobject{\currentPDFresources}{#1}%
+ \ifdim\scratchdimen>\zeropoint % compensate for error
+ \vbox to \MPheight
+ {\forgetall\vss\hbox to \MPwidth{\hss\getMPPDFobject\hss}\vss}%
+ \else
+ \getMPPDFobject
+ \fi
+ \global\let\currentPDFresources\empty
+ \else
+ \box#1%
+ \fi}
+
+\def\setMPPDFobject#1#2% resources boxnumber
+ {\ifx\everyPDFxform\undefined\else\the\everyPDFxform\fi
+ \immediate\pdfxform resources{#1}#2%
+ \edef\getMPPDFobject{\noexpand\pdfrefxform\the\pdflastxform}}
+
+\let\getMPPDFobject\relax
+
+%D \macros
+%D {deleteMPgraphic,
+%D startMPresources,
+%D stopMPresources}
+
+\ifx\deleteMPgraphic\undefined
+ \def\deleteMPgraphic#1{}
+\fi
+
+\ifx\startMPresources\undefined
+ \let\startMPresources\relax
+ \let\stopMPresources\relax
+\fi
+
+%D We implement extensions by using the \METAPOST\ special
+%D mechanism. Opposite to \TEX's specials, the \METAPOST\ ones
+%D are flushed before or after the graphic data, but thereby
+%D are no longer connected to a position.
+%D
+%D We implement specials by overloading the \type {fill}
+%D operator. By counting the fills, we can let the converter
+%D treat the appropriate fill in a special way. The
+%D specification of the speciality can have two forms,
+%D determined by the setting of a boolean variable:
+%D
+%D \starttyping
+%D _inline_specials_ := false ; % comment like code (default)
+%D _inline_specials_ := true ; % command like code
+%D \stoptyping
+%D
+%D When the specification is embedded as comment, it looks
+%D like:
+%D
+%D \starttyping
+%D %%MetaPostSpecial <size> <data> <number> <identifier>
+%D \stoptyping
+%D
+%D The in||line alternative is more tuned for \POSTSCRIPT,
+%D since it permits us to define a macro \type {special}.
+%D
+%D \starttyping
+%D inline : <data> <number> <identifier> <size> special
+%D \stoptyping
+%D
+%D The \type {identifier} determines what to do, and the data
+%D can be used to accomplish this. A type~2 shading function
+%D has identifier~2. Alltogether, the number of parameters is
+%D specified in \type {size}. The \type {number} is the number
+%D of the fill that needs the special treatment. For a type~2
+%D and~3 shaded fill, the datablock contains the following
+
+%D data:
+%D
+%D \starttyping
+%D from to n inner_r g b x y outer_r g b x y
+%D from to n inner_r g b x y radius outer_r g b x y radius
+%D \stoptyping
+
+\newconditional\manyMPspecials \settrue\manyMPspecials
+
+%D In case of \PDF, we need to prepare resourcs.
+
+\newtoks\MPstartresources
+\newtoks\MPstopresources
+
+\def\startMPresources
+ {\the\MPstartresources}
+
+\def\stopMPresources
+ {\the\MPstopresources}
+
+%D Some day we may consider collecting local resources.
+
+\appendtoks
+ \global\let\currentPDFresources\empty % kind of redundant
+\to \MPstartresources
+
+% \appendtoks
+% \collectPDFresources
+% \global\let\currentPDFresources\collectedPDFresources
+% \to \MPstopresources
+
+\appendtoksonce
+ \the\everyPDFxform
+\to \MPstopresources
+
+%D Since colors are not subjected to transformations, we can
+%D only use colors as signal. In our case, we use a dummy colored
+%D path with a red color component of \type {0.n}, so \type
+%D {0.001} is the first path and \type {0.010} the tenth. Since
+%D \METAPOST strips trailing zeros, we have to padd the string.
+
+\newif\ifMPcmykcolors
+\newif\ifMPspotcolors
+
+%D Specials:
+
+% \settrue \manyMPspecials \newcount\nofMParguments \let\extraMPpathcode\empty
+%
+% \def\@@MP {@@MP}
+% \def\@@MPSK{@MPSK@}
+%
+% \def\MPspecial{\@@MPSK\@@MPSK\gMPs\nofMParguments}
+%
+% \def\defineMPspecial#1#2%
+% {\setvalue{\@@MPSK\@@MPSK#1}{#2}}
+
+%D Special number~1 is dedicated to \CMYK\ support. If you
+%D want to know why: look at this:
+%D
+%D \startbuffer[mp]
+%D fill fullcircle xyscaled (3cm,1cm) withcolor \MPcolor{test} ;
+%D \stopbuffer
+%D
+%D \startbuffer[cmyk]
+%D \startcombination[4*1]
+%D {\definecolor[test][c=1,y=.3,k=.3] \processMPbuffer[mp]} {c=1 y=.3 k=.3}
+%D {\definecolor[test][c=.9,y=.15] \processMPbuffer[mp]} {c=.9 y=.15}
+%D {\definecolor[test][c=.25,y=.8] \processMPbuffer[mp]} {c=.25 y=.8}
+%D {\definecolor[test][c=.45,y=.1] \processMPbuffer[mp]} {c=.45 y=.1}
+%D \stopcombination
+%D \stopbuffer
+%D
+%D \placefigure
+%D {\CMYK\ support disabled,
+%D conversion to \RGB.}
+%D {\setupcolors[cmyk=nee,state=start]\getbuffer[cmyk]}
+%D
+%D \placefigure
+%D {\CMYK\ support enabled,
+%D no support in \METAPOST.}
+%D {\setupcolors[cmyk=ja,mpcmyk=nee,state=start]\getbuffer[cmyk]}
+%D
+%D \placefigure
+%D {\CMYK\ support enabled,
+%D no conversion to \RGB,
+%D support in \METAPOST}
+%D {\setupcolors[cmyk=ja,state=start]\getbuffer[cmyk]}
+
+% \let\revokeMPtransparencyspecial\relax
+
+%D Transparency support used specials 60 (rgb) and 61
+%D (cmyk).
+%D
+%D \startbuffer
+%D u := 2cm ; path p ; p := fullcircle scaled u shifted (u/4,0);
+%D
+%D fill p rotated 90 withcolor transparent(1,.5,yellow) ;
+%D fill p rotated 210 withcolor transparent(1,.5,green) ;
+%D fill p rotated 330 withcolor transparent(1,.5,blue) ;
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D \startlinecorrection \processMPbuffer \stoplinecorrection
+%D
+%D One can also communicate colors between \CONTEXT\ and
+%D \METAPOST:
+%D
+%D \startbuffer
+%D \definecolor[tcyan] [c=1,k=.2,t=.5]
+%D \definecolor[tmagenta][m=1,k=.2,t=.5]
+%D \definecolor[tyellow] [y=1,k=.2,t=.5]
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+%D
+%D \startbuffer
+%D u := 2cm ; path p ; p := fullcircle scaled u shifted (u/4,0);
+%D
+%D fill p rotated 90 withcolor \MPcolor{tcyan} ;
+%D fill p rotated 210 withcolor \MPcolor{tmagenta} ;
+%D fill p rotated 330 withcolor \MPcolor{tyellow} ;
+%D \stopbuffer
+%D
+%D \startlinecorrection \processMPbuffer \stoplinecorrection
+
+%D Shading is an example of a more advanced graphic feature,
+%D but users will seldom encounter those complications. Here
+%D we only show a few simple examples, but many other
+%D alternatives are possible by setting up the functions built
+%D in \PDF\ in the appropriate way.
+%D
+%D Shading has to do with interpolation between two or more
+%D points or user supplied ranges. In \PDF, the specifications
+%D of a shade has to be encapsulated in objects and passed on
+%D as resources. This is a \PDF\ level 1.3. feature. One can
+%D simulate three dimensional shades as well and define simple
+%D functions using a limited set of \POSTSCRIPT\ primitives.
+%D Given the power of \METAPOST\ and these \PDF\ features, we
+%D can achieve superb graphic effects.
+%D
+%D Since everything is hidden in \TEX\ and \METAPOST\ graphics,
+%D we can stick to high level \CONTEXT\ command, as shown in
+%D the following exmples.
+%D
+%D \startbuffer
+%D \startuniqueMPgraphic{CircularShade}
+%D path p ; p := unitsquare xscaled \overlaywidth yscaled \overlayheight ;
+%D circular_shade(p,0,.2red,.9red) ;
+%D \stopuniqueMPgraphic
+%D
+%D \startuniqueMPgraphic{LinearShade}
+%D path p ; p := unitsquare xscaled \overlaywidth yscaled \overlayheight ;
+%D linear_shade(p,0,.2blue,.9blue) ;
+%D \stopuniqueMPgraphic
+%D
+%D \startuniqueMPgraphic{DuotoneShade}
+%D path p ; p := unitsquare xscaled \overlaywidth yscaled \overlayheight ;
+%D linear_shade(p,2,.5green,.5red) ;
+%D \stopuniqueMPgraphic
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D \getbuffer
+%D
+%D These graphics can be hooked into the overlay mechanism,
+%D which is available in many commands.
+%D
+%D \startbuffer
+%D \defineoverlay[demo 1][\uniqueMPgraphic{CircularShade}]
+%D \defineoverlay[demo 2][\uniqueMPgraphic {LinearShade}]
+%D \defineoverlay[demo 3][\uniqueMPgraphic {DuotoneShade}]
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D \getbuffer
+%D
+%D These backgrounds can for instance be applied to \type
+%D {\framed}:
+%D
+%D \startbuffer
+%D \setupframed[width=3cm,height=2cm,frame=off]
+%D \startcombination[3*1]
+%D {\framed[backgroundachtergrond=demo 1]{\bfd \white Demo 1}} {}
+%D {\framed[backgroundachtergrond=demo 2]{\bfd \white Demo 2}} {}
+%D {\framed[backgroundachtergrond=demo 3]{\bfd \white Demo 3}} {}
+%D \stopcombination
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D \startlinecorrection
+%D \getbuffer
+%D \stoplinecorrection
+%D
+%D There are a few more alternatives, determined by the second
+%D parameter passed to \type {circular_shade} and alike.
+%D
+%D \def\SomeShade#1#2#3#4#5%
+%D {\startuniqueMPgraphic{Shade-#1}
+%D width := \overlaywidth ;
+%D height := \overlayheight ;
+%D path p ; p := unitsquare xscaled width yscaled height ;
+%D #2_shade(p,#3,#4,#5) ;
+%D \stopuniqueMPgraphic
+%D \defineoverlay[Shade-#1][\uniqueMPgraphic{Shade-#1}]%
+%D \framed[backgroundachtergrond=Shade-#1,width=2cm,height=2cm,frame=off]{}}
+%D
+%D \startlinecorrection
+%D \startcombination[5*1]
+%D {\SomeShade{10}{circular}{0}{.3blue}{.9blue}} {circular 0}
+%D {\SomeShade{11}{circular}{1}{.3blue}{.9blue}} {circular 1}
+%D {\SomeShade{12}{circular}{2}{.3blue}{.9blue}} {circular 2}
+%D {\SomeShade{13}{circular}{3}{.3blue}{.9blue}} {circular 3}
+%D {\SomeShade{14}{circular}{4}{.3blue}{.9blue}} {circular 4}
+%D \stopcombination
+%D \stoplinecorrection
+%D
+%D \blank
+%D
+%D \startlinecorrection
+%D \startcombination[5*1]
+%D {\SomeShade{20}{circular}{0}{.9green}{.3green}} {circular 0}
+%D {\SomeShade{21}{circular}{1}{.9green}{.3green}} {circular 1}
+%D {\SomeShade{22}{circular}{2}{.9green}{.3green}} {circular 2}
+%D {\SomeShade{23}{circular}{3}{.9green}{.3green}} {circular 3}
+%D {\SomeShade{24}{circular}{4}{.9green}{.3green}} {circular 4}
+%D \stopcombination
+%D \stoplinecorrection
+%D
+%D \blank
+%D
+%D \startlinecorrection
+%D \startcombination[4*1]
+%D {\SomeShade{30}{linear}{0}{.3red}{.9red}} {linear 0}
+%D {\SomeShade{31}{linear}{1}{.3red}{.9red}} {linear 1}
+%D {\SomeShade{32}{linear}{2}{.3red}{.9red}} {linear 2}
+%D {\SomeShade{33}{linear}{3}{.3red}{.9red}} {linear 3}
+%D \stopcombination
+%D \stoplinecorrection
+%D
+%D These macros closely cooperate with the \METAPOST\ module
+%D \type {mp-spec.mp}, which is part of the \CONTEXT\
+%D distribution.
+%D
+%D The low level (\PDF) implementation is based on the \TEX\
+%D based \METAPOST\ to \PDF\ converter. Shading is supported
+%D by overloading the \type {fill} operator as implemented
+%D earlier. In \PDF\ type~2 and~3 shading functions are
+%D specified in terms of:
+%D
+%D \starttabulate[|Tl|l|]
+%D \NC /Domain \NC sort of meeting range \NC \NR
+%D \NC /C0 \NC inner shade \NC \NR
+%D \NC /C1 \NC outer shade \NC \NR
+%D \NC /N \NC smaller values, bigger inner circles \NC \NR
+%D \stoptabulate
+
+% \newcount\currentPDFshade % 0 % global (document wide) counter
+%
+% \def\dosetMPsomePDFshade#1#2%
+% {\immediate\pdfobj
+% {<</FunctionType 2
+% /Domain [\gMPs1 \gMPs2]
+% /C0 [\MPshadeA]
+% /C1 [\MPshadeB]
+% /N \gMPs3>>}%
+% \immediate\pdfobj
+% {<</ShadingType #1
+% /ColorSpace /\MPresolvedspace
+% /Function \the\pdflastobj\space 0 R
+% /Coords [\MPshadeC]
+% /Extend [true true]>>}%
+% \global\advance\currentPDFshade \plusone
+% \ctxlua{lpdf.adddocumentshade("Sh\the\currentPDFshade",lpdf.reference(\the\pdflastobj))}%
+% \setxvalue{\@@MPSK#2}{\noexpand\dohandleMPshade{\the\currentPDFshade}}}
+%
+% \def\dosetMPlinearshade {\dosetMPsomePDFshade2}% #1
+% \def\dosetMPcircularshade{\dosetMPsomePDFshade3}% #1
+%
+% \defineMPspecial{30}
+% {\normalexpanded{\noexpand\resolveMPrgbcolor{\gMPs4}{\gMPs5}{\gMPs6}}\to\MPshadeA
+% \normalexpanded{\noexpand\resolveMPrgbcolor{\gMPs{9}}{\gMPs{10}}{\gMPs{11}}}\to\MPshadeB
+% \edef\MPshadeC{\gMPs7 \gMPs8 \gMPs{12} \gMPs{13}}%
+% \dosetMPlinearshade{\gMPs{14}}}
+%
+% \defineMPspecial{31}
+% {\normalexpanded{\noexpand\resolveMPrgbcolor{\gMPs4}{\gMPs5}{\gMPs6}}\to\MPshadeA
+% \normalexpanded{\noexpand\resolveMPrgbcolor{\gMPs{10}}{\gMPs{11}}{\gMPs{12}}}\to\MPshadeB
+% \edef\MPshadeC{\gMPs7 \gMPs8 \gMPs9 \gMPs{13} \gMPs{14} \gMPs{15}}%
+% \dosetMPcircularshade{\gMPs{16}}}
+%
+% \defineMPspecial{32}
+% {\normalexpanded{\noexpand\resolveMPcmykcolor{\gMPs4}{\gMPs5}{\gMPs6}{\gMPs7}}\to\MPshadeA
+% \normalexpanded{\noexpand\resolveMPcmykcolor{\gMPs{10}}{\gMPs{11}}{\gMPs{12}}{\gMPs{13}}}\to\MPshadeB
+% \edef\MPshadeC{\gMPs8 \gMPs9 \gMPs{14} \gMPs{15}}%
+% \dosetMPlinearshade{\gMPs{16}}}
+%
+% \defineMPspecial{33}
+% {\normalexpanded{\noexpand\resolveMPcmykcolor{\gMPs4}{\gMPs5}{\gMPs6}{\gMPs7}}\to\MPshadeA
+% \normalexpanded{\noexpand\resolveMPcmykcolor{\gMPs{11}}{\gMPs{12}}{\gMPs{13}}{\gMPs{14}}}\to\MPshadeB
+% \edef\MPshadeC{\gMPs8 \gMPs9 \gMPs{10} \gMPs{15} \gMPs{16} \gMPs{17}}%
+% \dosetMPcircularshade{\gMPs{18}}}
+%
+% \defineMPspecial{34}
+% {\normalexpanded{\noexpand\resolveMPspotcolor{\gMPs4}{\gMPs5}{\gMPs6}{\gMPs7}}\to\MPshadeA
+% \normalexpanded{\noexpand\resolveMPspotcolor{\gMPs{10}}{\gMPs{11}}{\gMPs{12}}{\gMPs{13}}}\to\MPshadeB
+% \edef\MPshadeC{\gMPs8 \gMPs9 \gMPs{14} \gMPs{15}}%
+% \dosetMPlinearshade{\gMPs{16}}}
+%
+% \defineMPspecial{35}
+% {\normalexpanded{\noexpand\resolveMPcmykcolor{\gMPs4}{\gMPs5}{\gMPs6}{\gMPs7}}\to\MPshadeA
+% \normalexpanded{\noexpand\resolveMPcmykcolor{\gMPs{11}}{\gMPs{12}}{\gMPs{13}}{\gMPs{14}}}\to\MPshadeB
+% \edef\MPshadeC{\gMPs8 \gMPs9 \gMPs{10} \gMPs{15} \gMPs{16} \gMPs{17}}%
+% \dosetMPcircularshade{\gMPs{18}}}
+%
+% \newconditional\ignoreMPpath
+%
+% \def\dohandleMPshade#1%
+% {\revokeMPtransparencyspecial
+% \settrue\ignoreMPpath
+% \def\extraMPpathcode{/Sh#1 sh Q}%
+% \pdfliteral{q /Pattern cs}}
+%
+% \defineMPspecial{10}
+% {\setxvalue{\@@MPSK\gMPs8}%
+% {\noexpand\handleMPfigurespecial{\gMPs1}{\gMPs2}{\gMPs3}{\gMPs4}{\gMPs5}{\gMPs6}{\gMPs7}{\gMPs8}}}
+%
+% \def\handleMPfigurespecial#1#2#3#4#5#6#7#8% todo : combine with ext fig
+% {\global\letvalue{\@@MPSK#8}\empty
+% \vbox to \zeropoint
+% {\vss
+% \hbox to \zeropoint
+% {\ifcase\pdfoutput\or % will be hooked into the special driver
+% \doiffileelse{#7}
+% {\doifundefinedelse{mps:x:#7}
+% {\immediate\pdfximage\!!width\onebasepoint\!!height\onebasepoint{#7}%
+% \setxvalue{mps:x:#7}{\pdfrefximage\the\pdflastximage}}%
+% {\message{[reusing figure #7]}}%
+% \pdfliteral{q #1 #2 #3 #4 #5 #6 cm}%
+% \rlap{\getvalue{mps:x:#7}}%
+% \pdfliteral{Q}}
+% {\message{[unknown figure #7]}}%
+% \fi
+% \hss}}}
+
+%D An example of using both special features is the
+%D following.
+%D
+%D \starttyping
+%D \startMPpage
+%D externalfigure "hakker1b.png" scaled 22cm rotated 10 shifted (-2cm,0cm);
+%D externalfigure "hakker1b.png" scaled 10cm rotated -10 ;
+%D externalfigure "hakker1b.png" scaled 7cm rotated 45 shifted (8cm,12cm) ;
+%D path p ; p := unitcircle xscaled 15cm yscaled 20cm;
+%D path q ; q := p rotatedaround(center p,90) ;
+%D path r ; r := buildcycle(p,q) ; clip currentpicture to r ;
+%D path s ; s := boundingbox currentpicture enlarged 5mm ;
+%D picture c ; c := currentpicture ; currentpicture := nullpicture ;
+%D circular_shade(s,0,.2red,.9red) ;
+%D addto currentpicture also c ;
+%D \stopMPpage
+%D \stoptyping
+
+% \defineMPspecial{20}
+% {\setxvalue{\@@MPSK\gMPs6}%
+% {\noexpand\handleMPhyperlink{\gMPs1}{\gMPs2}{\gMPs3}{\gMPs4}{\gMPs5}{\gMPs6}}}
+%
+% \def\handleMPhyperlink#1#2#3#4#5#6%
+% {\global\letvalue{\@@MPSK#6}\empty
+% \setbox\scratchbox\hbox
+% {\setbox\scratchbox\null
+% \wd\scratchbox\dimexpr-#1\onebasepoint+#3\onebasepoint\relax
+% \ht\scratchbox\dimexpr-#2\onebasepoint+#4\onebasepoint\relax
+% \gotobox{\box\scratchbox}[#5]}%
+% \setbox\scratchbox\hbox
+% {\hskip\dimexpr\MPxoffset\onebasepoint+#1\onebasepoint\relax
+% \raise\dimexpr\MPyoffset\onebasepoint+#2\onebasepoint\relax
+% \box\scratchbox}%
+% \smashbox\scratchbox
+% \box\scratchbox}
+
+%D This special (number 50) passes positions to a tex file.
+%D This method uses a two||pass approach an (mis|)|used the
+%D context positioning macros. In \type {core-pos} we will
+%D implement the low level submacro needed.
+%D
+%D \startbuffer
+%D \definelayer[test]
+%D
+%D \setlayer
+%D [test]
+%D [x=\MPx{somepos-1},y=\MPy{somepos-1}]
+%D {Whatever we want here!}
+%D
+%D \setlayer
+%D [test]
+%D [x=\MPx{somepos-2},y=\MPy{somepos-2}]
+%D {Whatever we need there!}
+%D
+%D \startuseMPgraphic{oeps}
+%D draw fullcircle scaled 6cm withcolor red ;
+%D register ("somepos-1",1cm,2cm,center currentpicture) ;
+%D register ("somepos-2",4cm,3cm,(-1cm,-2cm)) ;
+%D \stopuseMPgraphic
+%D
+%D \framed[background=test,offset=overlay]{\useMPgraphic{oeps}}
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D Here the width and height are not realy used, but one can
+%D imagine situations where tex has to work with values
+%D calculated by \METAPOST.
+%D
+%D \startlinecorrection
+%D \getbuffer
+%D \stoplinecorrection
+%D
+%D Later we will implement a more convenient macro:
+%D
+%D \starttyping
+%D \setMPlayer [test] [somepos-1] {Whatever we want here!}
+%D \setMPlayer [test] [somepos-2] {Whatever we need there!}
+%D \stoptyping
+
+% \defineMPspecial{50} % x y width height label
+% {\dosavepositionwhd
+% {\gMPs5}%
+% {0}%
+% {\the\dimexpr-\MPllx\onebasepoint+\gMPs1\onebasepoint\relax}
+% {\the\dimexpr\gMPs2\onebasepoint-\scratchdimen+\MPury\onebasepoint\relax}% scratchdimen ?
+% {\the\dimexpr\gMPs3\onebasepoint\relax}%
+% {\the\dimexpr\gMPs4\onebasepoint\relax}%
+% {0pt}}
+
+\startMPinitializations
+ mp_shade_version := 2 ;
+\stopMPinitializations
+
+%D This is done much cleaner in \MPLIB.
+
+\def\MPStextext#1#2#3#4#5% if we clean up this plugin model, we can
+ {\def\MPtextdata{#3}% % delegate the splitter to lua + redesign
+ \def\MPtextsize{#2}%
+ \def\lastMPmoveX{#4}%
+ \def\lastMPmoveY{#5}%
+ \defconvertedcommand\MPtextdata\MPtextdata % no edef
+ \splitstring\MPtextdata\at::::\to\MPtexttag\and\MPtextnumber
+ \executeifdefined{handleMPtext\MPtexttag}
+ {\setbox\scratchbox\hbox
+ {\font\temp=#1\space at #2\onebasepoint
+ \let\c\char
+ \temp
+ \MPfshowcommand{#3}}%
+ \setbox\scratchbox\hbox
+ {\hskip#4\onebasepoint
+ \raise#5\onebasepoint
+ \box\scratchbox}%
+ \smashbox\scratchbox
+ \box\scratchbox}}
+
+%D We save the special variables on a stack. It's not that
+%D fast, but it make implementing the special more convenient.
+
+% \def\MPSbegin
+% {\nofMParguments\zerocount}
+%
+% \def\MPSend
+% {\csname\MPspecial\endcsname}
+%
+% \def\MPSset
+% {\advance\nofMParguments\plusone
+% \expandafter\def\csname\@@MP\number\nofMParguments\endcsname}
+%
+% \def\gMPs#1{\csname\@@MP\number#1\endcsname}
+
+%D The boundingbox.
+
+\def\MPSboundingbox#1#2#3#4%
+ {\xdef\MPllx{#1}\xdef\MPlly{#2}\xdef\MPurx{#3}\xdef\MPury{#4}%
+ \xdef\MPwidth {\the\dimexpr#3\onebasepoint-#1\onebasepoint\relax}%
+ \xdef\MPheight{\the\dimexpr#4\onebasepoint-#2\onebasepoint\relax}}
+
+\MPSboundingbox0000
+
+% \def\MPSspecial#1#2%
+% {\csname\@@MPSK#2\endcsname}
+
+%D A path is (in most cases) just a sequence of \PDF\ commands.
+
+% \newconditional\ignoreMPpath
+
+% \def\MPSpath
+% {\pdfliteral}
+
+% \def\MPScode % hack, will be improved
+% {\ifconditional\ignoreMPpath
+% \pdfliteral{h W n}%
+% \ifx\extraMPpathcode\empty\else
+% \pdfliteral{\extraMPpathcode}%
+% \let\extraMPpathcode\empty
+% \fi
+% \setfalse\ignoreMPpath
+% \expandafter\gobbleoneargument
+% \else
+% \expandafter\pdfliteral
+% \fi}
+
+%D Test code:
+
+% \startMPcode
+% fill fullcircle scaled 3cm withcolor red ;
+% fill fullcircle scaled 2cm withcolor green ;
+% fill fullcircle scaled 1cm withcolor blue ;
+% currentpicture := currentpicture shifted (-4cm,0) ;
+% fill fullcircle scaled 3cm withcolor cmyk(0,0,1,0) ;
+% fill fullcircle scaled 2cm withcolor cmyk(0,1,0,0) ;
+% fill fullcircle scaled 1cm withcolor cmyk(0,0,1,0) ;
+% currentpicture := currentpicture shifted (-4cm,0) ;
+% draw fullcircle scaled 3cm dashed evenly ;
+% draw fullcircle scaled 2cm dashed withdots ;
+% draw origin withpen pencircle scaled 3mm;
+% currentpicture := currentpicture shifted (-4cm,0) ;
+% fill fullcircle scaled 2cm shifted (-.5cm,+.5cm) withcolor transparent(1,.5,red);
+% fill fullcircle scaled 2cm shifted (-.5cm,-.5cm) withcolor transparent(1,.5,red);
+% fill fullcircle scaled 2cm shifted (+.5cm,+.5cm) withcolor transparent(1,.5,green);
+% fill fullcircle scaled 2cm shifted (+.5cm,-.5cm) withcolor transparent(1,.5,cmyk(1,0,1,.5));
+% currentpicture := currentpicture shifted (12cm,-4cm) ;
+% draw "o e p s" infont defaultfont scaled 2 shifted (-1cm,0) ;
+% currentpicture := currentpicture shifted (-4cm,0) ;
+% % bug: shift
+% draw fullcircle scaled 3cm withpen pencircle yscaled 3mm xscaled 2mm rotated 30 ;
+% draw fullcircle scaled 2cm withpen pencircle yscaled 3mm xscaled 2mm rotated 20 withcolor red ;
+% filldraw fullcircle scaled 1cm withpen pencircle yscaled 3mm xscaled 2mm rotated 10 withcolor green ;
+% currentpicture := currentpicture shifted (-4cm,0) ;
+% % shade cannot handle shift
+% circular_shade(fullcircle scaled 3cm,0,.2red,.9green) ;
+% circular_shade(fullcircle scaled 3cm shifted(+4cm,0),0,cmyk(1,0,0,0),cmyk(0,1,0,0)) ;
+% filldraw boundingbox currentpicture enlarged -3cm withpen pencircle scaled 1pt withcolor .5white ;
+% \stopMPcode
+
+% We cannot use attributes for switching colors in mp literals because
+% grouping (qQ) interferes.
+
+% \def\dohandleMPshade#1%
+% {\revokeMPtransparencyspecial
+% \settrue\ignoreMPpath
+% \def\extraMPpathcode{/#1 sh Q}%
+% \pdfliteral{q /Pattern cs}}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/meta-tex.mkii b/Master/texmf-dist/tex/context/base/meta-tex.mkii
index 5766f659f14..bf733d55019 100644
--- a/Master/texmf-dist/tex/context/base/meta-tex.mkii
+++ b/Master/texmf-dist/tex/context/base/meta-tex.mkii
@@ -191,7 +191,7 @@
\filtersometxt}
\long\def\filtersometxt#1\sometxt
- {\doifnextcharelse[\redofiltersometxt\dodofiltersometxt}
+ {\doifnextoptionalelse\redofiltersometxt\dodofiltersometxt}
% cleaner in mkiv
%
diff --git a/Master/texmf-dist/tex/context/base/meta-tex.mkiv b/Master/texmf-dist/tex/context/base/meta-tex.mkiv
index 6afc7efc52d..ab4f93daed5 100644
--- a/Master/texmf-dist/tex/context/base/meta-tex.mkiv
+++ b/Master/texmf-dist/tex/context/base/meta-tex.mkiv
@@ -13,11 +13,33 @@
\unprotect
-\long\def\startTeXtexts#1\stopTeXtexts{[do we need TeXtexts in MkIV]}
-\long\def\doTeXtext[#1]#2{[do we need TeXtexts in MkIV]}
-\long\def\TeXtext{\dosingleempty\doTeXtext}
+% Ok, we support this in MkIV because Mojca kept the pressure on. It
+% looks a bit like a hack.
-\def\definetextext[#1]#2{\setvalue{textext@@#1}{#2}}
+\long\def\startTeXtexts#1\stopTeXtexts
+ {#1}
+
+\long\def\TeXtext
+ {\dosingleempty\doTeXtext}
+
+\long\def\doTeXtext[#1]#2#3% contrary to mkii we don't process yet but we do expand
+ {\long\setxvalue{@@st@@::#2}{\noexpand\dodoTeXtext{#1}{#3}}}
+
+\long\def\dodoTeXtext#1#2%
+ {\begingroup
+ \setbox\nextbox\hbox{\executeifdefined{textext@@#1}\firstofoneargument{#2}}%
+ \executeifdefined{textext::#1}{\getvalue{textext::depth}}%
+ \box\nextbox
+ \endgroup}
+
+\def\getTeXtext#1%
+ {\getvalue{@@st@@::#1}}
+
+\setvalue{textext::d}{\setbox\nextbox\hbox{\lower\dp\nextbox\box\nextbox}} % unchecked
+\setvalue{textext::n}{} % unchecked
+
+\setvalue {textext::depth}{\getvalue{textext::d}}
+\setvalue{textext::nodepth}{\getvalue{textext::n}}
% \definetextext[framed]{\framed}
%
@@ -25,11 +47,26 @@
% draw \sometxt[framed]{black} rotated 45 ;
% \stopMPcode
-\def\definetextext[#1]#2{\setvalue{@@st@@[#1]}{#2}}
+\def\definetextext[#1]#2{\setvalue{@@st@@[#1]}{#2}\setvalue{@@st@@[#1] }{#2}} % we don't grab spaces after [#1]
\long\def\sometxt#1#{\dosometxt{#1}} % grab optional [args]
\long\def\dosometxt#1#2%
- {textext("\ifcsname @@st@@#1\endcsname\csname @@st@@#1\endcsname{#2}\else#2\fi")}
+ {textext.drt("\ifcsname @@st@@#1\endcsname\csname @@st@@#1\endcsname{#2}\else#2\fi")}
+
+% Best use the mp macro instead since it provides positioning.
+%
+% \startuseMPgraphic{testgraphic}
+% draw \sometxt{\ruledhbox{\strut hans hagen}} scaled 3;
+% % draw textext.drt("\ruledhbox{\strut hans hagen}") scaled 3;
+% % draw textext.dlft("\ruledhbox{\strut hans hagen}") scaled 3;
+% % draw textext.lft("\ruledhbox{\strut hans hagen}") scaled 3;
+% draw llcorner currentpicture -- urcorner currentpicture withcolor yellow;
+% draw lrcorner currentpicture -- ulcorner currentpicture withcolor yellow;
+% draw boundingbox currentpicture withcolor blue ;
+% draw origin withcolor red withpen pencircle scaled 1pt;
+% \stopuseMPgraphic
+%
+% {\showstruts\useMPgraphic{testgraphic}}
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/meta-tex.tex b/Master/texmf-dist/tex/context/base/meta-tex.tex
deleted file mode 100644
index f1faa300d1d..00000000000
--- a/Master/texmf-dist/tex/context/base/meta-tex.tex
+++ /dev/null
@@ -1,346 +0,0 @@
-%D \module
-%D [ file=meta-tex,
-%D version=2006.06.07,
-%D title=\CONTEXT\ Support Macros,
-%D subtitle=\METAPOST\ fast text insertion,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright=\PRAGMA]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D Many thanks to Fabrice Popineau and Taco Hoekwater in helping me
-%D figure out some aspects of the text inclusion method implemented
-%D here. The following code is derived from a more advanced (and to
-%D be used) mechanism where \TEX, \METAPOST\ and \LUA\ play together.
-
-%D Much of this mechanism was written with running live DVD's of
-%D the Dave Matthews band in the background (or the corner of my
-%D screen).
-
-\unprotect
-
-\newwrite\TeXtextwrite
-
-\def\openTeXtexts {\immediate\openout \TeXtextwrite\currentTeXtext.mpb\relax}
-\def\closeTeXtexts{\immediate\closeout\TeXtextwrite}
-
-\def\currentTeXtext {\jobname-mpgraph}
-\def\currentTeXstack{mpgtxt}
-
-\initializeboxstack\currentTeXstack
-
-\newtoks\collectedmptexts
-\newtoks\everyTeXtexts
-
-\chardef\TeXtextsmode\zerocount % no inheritance
-
-\long\def\startTeXtexts#1\stopTeXtexts
- {\global\collectedmptexts\expandafter{\the\collectedmptexts#1}}
-
-\def\dostartTeXtexts
- {\global\setfalse\TeXtextdone
- \startnointerference
- \openTeXtexts
- \ifcase\TeXtextsmode
- % normally there is no need for this (faster anyway)
- \or
- \scantokens\expandafter{\the\everyMPTEXgraphic}% brr
- \or
- \the\everyTeXtexts
- \fi
- \ifrunMPgraphics
- \initializeboxstack\currentTeXstack
- \else
- \global\let\openTeXtexts\relax
- \global\let\finishTeXtexts\closeTeXtexts
- \fi}
-
-\def\dostopTeXtexts
- {\ifrunMPgraphics
- \closeTeXtexts
- \fi
- \stopnointerference}
-
-\let\finishTeXtexts\relax
-
-\appendtoks
- \finishTeXtexts
-\to \everystoptext
-
-\newconditional\TeXtextdone
-
-% \long\def\TeXtext#1%
-% {\dowithnextboxcontent
-% {\setnormalcatcodes}
-% {\global\settrue\TeXtextdone
-% \immediate\write\TeXtextwrite{savetxt(#1,\the\wd\nextbox,\the\ht\nextbox,\the\dp\nextbox);}%
-% \savebox\currentTeXstack{#1}{\box\nextbox}}
-% \hbox}
-
-\long\def\TeXtext
- {\dosingleempty\doTeXtext}
-
-% currently, colors in the converter don't use the color stack
-%
-% 0 = nothing, withcolor works ok, but nested colors fail
-% 1 = local color stack ok
-% 2 = obey color stack (not yet supported)
-
-\chardef\TeXtextcolormode\plusone
-
-\def\definetextext[#1]#2{\setvalue{textext@@#1}{#2}}
-
-% \definetextext[framed]{\framed}
-%
-% \startMPcode
-% draw \sometxt[framed]{black} rotated 45 ;
-% \stopMPcode
-
-\long\def\doTeXtext[#1]#2#3%
- {\begingroup
- \setbox\nextbox\hbox
- {\setnormalcatcodes
- \endlinechar\minusone
- \everyeof\emptytoks
- %\def\ascii{#3}\scantokens\expandafter{\ascii}}%
- \ifcase\TeXtextcolormode
- \scantokens{\executeifdefined{textext@@#1}\firstofoneargument{#3}}%
- \else
- \localcolortrue
- \startcurrentcolor
- \scantokens{\executeifdefined{textext@@#1}\firstofoneargument{#3}}%
- \stopcurrentcolor
- \fi}%
- \global\settrue\TeXtextdone
- \edef\currenttextxt{\number#2}%
- \executeifdefined{textext::#1}{\getvalue{textext::depth}}%
- \savebox\currentTeXstack\currenttextxt{\box\nextbox}%
- \endgroup}
-
-\setvalue{textext::depth}{\immediate\write\TeXtextwrite{savetxt(\currenttextxt,\the\nextboxwd,\the\nextboxht,\the\nextboxdp) shifted (0,-\the\nextboxdp);}}
-\setvalue{textext::nodepth}{\immediate\write\TeXtextwrite{savetxt(\currenttextxt,\the\nextboxwd,\the\nextboxht,\the\nextboxdp);}}
-
-\setvalue{textext::d}{\getvalue{textext::depth}}
-\setvalue{textext::n}{\getvalue{textext::nodepth}}
-
-\newbox\mptextbox
-
-%definefontsynonym[MPtxtfont][texnansi-lmtt10] \loadmapfile[lm-texnansi.map]
-\definefontsynonym[MPtxtfont][texnansi-lmtt10] \loadmapfile[texnansi-public-lm.map]
-
-\definefont[localMPtxtfont][MPtxtfont at 10bp]
-
-\ifx\getTeXtext\undefined
-
- % this took a while to figure out
-
- \let\MPtextdata\empty
-
- \def\getTeXtext
- {\ifx\MPtextdata\empty\else
- \localMPtxtfont
- \setbox\mptextbox\hbox{\foundbox\currentTeXstack{\number\nofTeXtexts}}%
- \setbox\scratchbox\hbox{\MPtextdata}% set in meta-pdf.mkii/mkiv
- \edef\mpwd{\the\dimexpr\MPtextsize\dimexpr\wd\scratchbox/10\relax\relax}%
- \edef\mpht{\the\dimexpr\MPtextsize\dimexpr\ht\scratchbox/10\relax\relax}%
- \setbox\mptextbox\hbox{\raise\dp\mptextbox\box\mptextbox}%
- \dp\mptextbox\zeropoint
- \scale[\c!width=\mpwd,\c!height=\mpht]{\box\mptextbox}%
- \fi}
-
-\fi
-
-\let\nofTeXtexts\!!zerocount
-
-\setvalue{handleMPtext00001}% only height in tag (00001)
- {\setbox\scratchbox\hbox
- {\obeyMPspecials
- \edef\nofTeXtexts{\number\MPtextnumber}%
- \getTeXtext}%
- \setbox\scratchbox\hbox
- {\hskip\lastMPmoveX\onebasepoint\raise\lastMPmoveY\onebasepoint
- \box\scratchbox}%
- \ht\scratchbox\zeropoint
- \dp\scratchbox\zeropoint
- \wd\scratchbox\zeropoint
- \box\scratchbox}
-
-\startMPextensions
- string txtfile ; txtfile := "\currentTeXtext.mpb" ;
- string txtfont ; txtfont := "\truefontname{MPtxtfont}" ;
- string txtpref ; txtpref := "00001::::" ;
-\stopMPextensions
-
-\long\def\dodofiltersometxt#1#2#3%
- {\ifx#2\empty
- \else
- \increment\txtcounter
- \TeXtext\txtcounter{#1}%
- \expandafter\filtersometxt
- \fi#2#3}
-
-\long\def\redofiltersometxt[#1]#2%
- {\increment\txtcounter
- \TeXtext[#1]\txtcounter{#2}%
- \filtersometxt}
-
-\long\def\filtersometxt#1\sometxt
- {\doifnextcharelse[\redofiltersometxt\dodofiltersometxt}
-
-% cleaner in mkiv
-%
-% \filtersometxt abc\sometxt{def};hij\sometxt{klm};\sometxt{}\empty\relax
-
-\long\def\flushTeXtexts#1%
- {\newcounter\txtcounter
- \dostartTeXtexts
- \the\collectedmptexts
- \filtersometxt#1\sometxt{}\empty\relax
- \dostopTeXtexts
- \ifconditional\TeXtextdone
- \immediate\write\MPwrite{loadtxts ; txtnext := 0 ;}%
- \global\collectedmptexts\emptytoks
- \fi
- \newcounter\txtcounter}
-
-% \long\def\sometxt#1{sometxt(nexttxt)} % to be used in mp definitions, no ; here
-
-\long\def\sometxt #1#{\dosometxt} % grab optional [args]
-\long\def\dosometxt#1{sometxt(nexttxt)} % to be used in mp definitions, no ; here
-
-% we redefine the writer:
-
-\long\def\writecheckedMPgraphic#1%
- {\ifforceMPTEXgraphic
- \global\MPTEXgraphictrue
- \else
- \global\MPTEXgraphicfalse
- \edef\ascii{#1}\convertcommand\ascii\to\MPascii
- \the\MPTEXgraphicchecks\relax % \relax is end condition!
- \fi
- \flushMPTEXgraphic% % verbatimtex etc
- \flushTeXtexts{#1}% added
- \writeMPgraphic{#1}} % potential optimization: pass \ascii
-
-\protect \endinput
-
-% torture test (will move)
-
-\startMPpage
- numeric a_b_c ;
- picture p ; pickup pencircle scaled .1pt ;
- p := \sometxt{Just a \color[blue]{simple} example text.} ;
- p := image(draw p; draw boundingbox p withcolor red; ) ;
- p := p rotatedaround(center p, 360*(5/100)) ;
- draw p ; draw boundingbox p withcolor blue ;
- currentpicture := currentpicture scaled 20 ;
- draw boundingbox currentpicture withcolor .5white ;
- setbounds currentpicture to boundingbox currentpicture enlarged 10pt ;
-\stopMPpage
-
-\startMPpage
- picture p ;
- p := \sometxt{\framed[width=fit,align=middle]{\input tufte\relax}} ;
- draw p rotatedaround(center p, 30) ;
-\stopMPpage
-
-\startMPpage
- picture p ;
- p := \sometxt{\framed[width=fit,align=middle]{\input tufte\relax}} ;
- draw p slanted .5 ;
-\stopMPpage
-
-\dorecurse{10} {
- \startTeXtexts
- \TeXtext{\recurselevel}{\ruledhbox{I must be {\green crazy} to implement this}}
- \stopTeXtexts
- \startMPpage
- picture p ; pickup pencircle scaled .1pt ;
- numeric i ; i := \recurselevel ;
- p := sometxt(i) ;
- p := p rotatedaround(center p, 360*(i*5/100)) ;
- draw p ; draw boundingbox p withcolor blue ;
- currentpicture := currentpicture scaled 20 ;
- draw boundingbox currentpicture withcolor .5white ;
- \stopMPpage
-}
-
-\startTeXtexts
- \dorecurse{100}{\TeXtext{\recurselevel}{\ruledhbox{\strut interesting \recurselevel}}}
-\stopTeXtexts
-
-\startMPpage
- picture p ; pickup pencircle scaled .1pt ;
- for i = 1 upto 100:
- p := sometxt(i) ;
- p := p rotatedaround(center p, 360*(i*5/100)) ;
- draw p ; draw boundingbox p withcolor blue ;
- endfor ;
- currentpicture := currentpicture scaled 20 ;
- draw boundingbox currentpicture withcolor .5white ;
-\stopMPpage
-
-\startTeXtexts
- \dorecurse{100}{\TeXtext{\recurselevel}{\ruledhbox{\strut interesting \recurselevel}}}
-\stopTeXtexts
-
-\startMPpage
- picture p ; pickup pencircle scaled .1pt ;
- for i = 1 step 5 until 100 :
- p := sometxt(i) ;
- p := p rotatedaround(center p, 360*(i/100)) ;
- draw p ; draw boundingbox p withcolor blue ;
- endfor ;
- currentpicture := currentpicture scaled 20 ;
- draw boundingbox currentpicture withcolor .5white ;
-\stopMPpage
-
-\startTeXtexts
- \dorecurse{20}{\TeXtext{\recurselevel}{\externalfigure[t:/sources/cow.pdf][width=1cm]}}
-\stopTeXtexts
-
-\startMPpage
- picture p ; pickup pencircle scaled .1pt ;
- for i = 1 upto 20 :
- p := sometxt(i) ;
- p := p shifted (2.5cm,0) rotated (360*(i/20)) ;
- draw p ; draw boundingbox p withcolor blue ;
- endfor ;
- currentpicture := currentpicture scaled 10 ;
- draw boundingbox currentpicture withcolor .5white ;
-\stopMPpage
-
-\startTeXtexts
- \dorecurse{200}{\TeXtext{\recurselevel}{\ruledhbox{\strut I must be {\green crazy} \recurselevel}}}
-\stopTeXtexts
-
-\startMPpage
- picture p ; pickup pencircle scaled .1pt ;
- numeric i ; i := 100 ;
- p := sometxt(i) ;
- p := p rotatedaround(center p, 360*(i*36/100)) ;
- draw p ; draw boundingbox p withcolor blue ;
- currentpicture := currentpicture scaled 20 ;
- draw boundingbox currentpicture withcolor .5white ;
-\stopMPpage
-
-\dorecurse{10}{
- \startTeXtexts
- \dorecurse{200}{\TeXtext{\recurselevel}{\ruledhbox{\strut I must be {\green crazy} \recurselevel}}}
- \stopTeXtexts
- \startMPpage
- picture p ; pickup pencircle scaled .1pt ;
- j := 10*\recurselevel-9;
- k := 10*\recurselevel;
- for i = j upto k:
- p := sometxt(i) ;
- p := p rotatedaround(center p, 360*(i/100)) ;
- draw p ; draw boundingbox p withcolor blue ;
- endfor ;
- currentpicture := currentpicture scaled 20 ;
- draw boundingbox currentpicture withcolor red ;
- \stopMPpage
-}
diff --git a/Master/texmf-dist/tex/context/base/meta-txt.tex b/Master/texmf-dist/tex/context/base/meta-txt.tex
index 564a40752f6..18b6d206994 100644
--- a/Master/texmf-dist/tex/context/base/meta-txt.tex
+++ b/Master/texmf-dist/tex/context/base/meta-txt.tex
@@ -159,6 +159,7 @@
\startMPdrawing[-]
% pic[n] := textext{\RotFont\setstrut\strut#1} ; % btex \RotFont\setstrut\strut#1 etex ;
pic[n] := btex \RotFont\setstrut\strut#1 etex ;
+ pic[n] := pic[n] shifted - llcorner pic[n] ;
\stopMPdrawing}
\startuseMPgraphic{followtokens}
@@ -199,7 +200,7 @@
draw RotPath withpen pencircle scaled 1pt withcolor blue ;
fi ;
for i=1 upto n :
- wid := abs(xpart lrcorner pic[i] - xpart llcorner pic[i]) ;
+ wid := abs(xpart urcorner pic[i] - xpart llcorner pic[i]) ;
pos := len[i]-wid/2 + (i-1)*pl ;
at := arctime pos of RotPath ;
ap := point at of RotPath ;
diff --git a/Master/texmf-dist/tex/context/base/metatex.tex b/Master/texmf-dist/tex/context/base/metatex.tex
new file mode 100644
index 00000000000..df674c11ac0
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/metatex.tex
@@ -0,0 +1,141 @@
+%D \module
+%D [ file=metatex,
+%D version=2008.10.10,
+%D title=\METATEX,
+%D subtitle=\METATEX\ Format Generation,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=Hans Hagen / \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.
+
+%D This format is just a minimal layer on top of the \LUATEX\
+%D engine and will not provide high level functionality. It can
+%D be used as basis for dedicated (specialized) macro packages.
+%D
+%D A format is generated with the command;
+%D
+%D \starttyping
+%D luatools --make --compile metatex
+%D \stoptyping
+%D
+%D Remark: this is far from complete. We will gradually add
+%D more. Also, it's not yet clean what exactly will be part
+%D of it. This is a prelude to a configureable macro package.
+
+\catcode`\{=1 \catcode`\}=2 \catcode`\#=6
+
+\edef\metatexformat {\jobname}
+\edef\metatexversion{2007.04.03 13:01}
+
+\let\fmtname \metatexformat
+\let\fmtversion\metatexversion
+
+\ifx\normalinput\undefined \let\normalinput\input \fi
+
+\def\loadcorefile#1{\normalinput#1\relax}
+
+\loadcorefile{syst-ini} % some basic commands and allocations that are expected down the line
+\loadcorefile{syst-pln} % plain tex initializations of internal registers (no further code)
+
+\loadmarkfile{luat-cod} %
+\loadmarkfile{luat-bas} %
+\loadmarkfile{luat-lib} %
+
+% needs stripping:
+
+\loadcorefile{catc-ini.mkiv} % catcode table management
+\loadcorefile{catc-act.tex} % active character definition mechanisms
+\loadcorefile{catc-def.tex} % some generic catcode tables
+\loadcorefile{catc-ctx.tex} % a couple of context specific tables but expected by later modules
+\loadcorefile{catc-sym.tex} % some definitions related to \letter<tokens>
+
+% helpers, maybe less
+
+\loadmarkfile{syst-aux} % a whole lot of auxiliary macros
+%loadmarkfile{syst-lua} % some helpers using lua instead
+%loadmarkfile{syst-con} % some rather basic conversions
+%loadmarkfile{syst-fnt}
+%loadmarkfile{syst-str}
+%loadmarkfile{syst-rtp}
+
+% not needed
+
+% \loadmarkfile{supp-fil}
+% \loadmarkfile{supp-dir}
+
+% characters
+
+\loadmarkfile{char-utf}
+\loadmarkfile{char-ini}
+\loadmarkfile{char-enc} % \registerctxluafile{char-enc}{1.001}
+
+% nodes
+
+\loadmarkfile{node-ini}
+%loadmarkfile{node-fin}
+%loadmarkfile{node-par}
+
+% attributes, not needed:
+
+%loadmarkfile{attr-ini}
+
+% regimes
+
+% \loadmarkfile{regi-ini}
+% \loadcorefile{regi-syn}
+
+% languages
+
+% fonts
+
+% \loadcorefile{enco-ini.mkiv}
+% \loadcorefile{hand-ini.mkiv}
+
+\registerctxluafile{font-ini}{1.001}
+
+\registerctxluafile{node-fnt}{1.001}
+
+\registerctxluafile{font-enc}{1.001}
+\registerctxluafile{font-map}{1.001}
+\registerctxluafile{font-syn}{1.001}
+\registerctxluafile{font-tfm}{1.001}
+\registerctxluafile{font-afm}{1.001}
+\registerctxluafile{font-cid}{1.001}
+\registerctxluafile{font-ott}{1.001}
+\registerctxluafile{font-otf}{1.001}
+\registerctxluafile{font-otb}{1.001}
+\registerctxluafile{font-otn}{1.001}
+\registerctxluafile{font-ota}{1.001}
+\registerctxluafile{font-otp}{1.001}
+\registerctxluafile{font-otc}{1.001}
+%registerctxluafile{font-vf} {1.001}
+\registerctxluafile{font-def}{1.001}
+%registerctxluafile{font-ctx}{1.001}
+\registerctxluafile{font-xtx}{1.001}
+%registerctxluafile{font-fbk}{1.001}
+%registerctxluafile{font-ext}{1.001}
+\registerctxluafile{font-pat}{1.001}
+%registerctxluafile{font-chk}{1.001}
+
+%registerctxluafile{math-ini}{1.001}
+%registerctxluafile{math-dim}{1.001}
+%registerctxluafile{math-ent}{1.001}
+%registerctxluafile{math-ext}{1.001}
+%registerctxluafile{math-vfu}{1.001}
+%registerctxluafile{math-map}{1.001}
+%registerctxluafile{math-noa}{1.001}
+
+\registerctxluafile{task-ini}{1.001}
+
+%registerctxluafile{l-xml}{1.001} % needed for font database
+
+% why not ...
+
+\pdfoutput\plusone
+
+% done
+
+\errorstopmode \dump \endinput
diff --git a/Master/texmf-dist/tex/context/base/mlib-ctx.lua b/Master/texmf-dist/tex/context/base/mlib-ctx.lua
index 6ada8ad1922..821b702c601 100644
--- a/Master/texmf-dist/tex/context/base/mlib-ctx.lua
+++ b/Master/texmf-dist/tex/context/base/mlib-ctx.lua
@@ -14,9 +14,9 @@ local sprint = tex.sprint
metapost = metapost or {}
metapost.defaultformat = "metafun"
-function metapost.graphic(mpsformat,str,preamble)
- local mpx = metapost.format(mpsformat or metapost.defaultformat)
- metapost.graphic_base_pass(mpx,str,preamble)
+function metapost.graphic(instance,mpsformat,str,preamble,askedfig)
+ local mpx = metapost.format(instance,mpsformat or metapost.defaultformat)
+ metapost.graphic_base_pass(mpx,str,preamble,askedfig)
end
function metapost.filterclippath(result)
@@ -29,7 +29,7 @@ function metapost.filterclippath(result)
for o=1,#objects do
local object = objects[o]
if object.type == "start_clip" then
- return join(flushnormalpath(object.path,{ }),"\n")
+ return join(metapost.flushnormalpath(object.path,{ }),"\n")
end
end
end
@@ -37,3 +37,19 @@ function metapost.filterclippath(result)
end
return ""
end
+
+statistics.register("metapost processing time", function()
+ local n = metapost.n
+ if n > 0 then
+ local e, t = metapost.externals.n, statistics.elapsedtime
+ local str = format("%s seconds, loading: %s seconds, execution: %s seconds, n: %s",
+ t(metapost), t(mplib), t(metapost.exectime), n)
+ if e > 0 then
+ return format("%s, external: %s seconds (%s calls)", str, t(metapost.externals), e)
+ else
+ return str
+ end
+ else
+ return nil
+ end
+end)
diff --git a/Master/texmf-dist/tex/context/base/mlib-ctx.tex b/Master/texmf-dist/tex/context/base/mlib-ctx.mkiv
index 6f56b7e685c..6f56b7e685c 100644
--- a/Master/texmf-dist/tex/context/base/mlib-ctx.tex
+++ b/Master/texmf-dist/tex/context/base/mlib-ctx.mkiv
diff --git a/Master/texmf-dist/tex/context/base/mlib-pdf.lua b/Master/texmf-dist/tex/context/base/mlib-pdf.lua
index 344052607a3..38b61b0ba97 100644
--- a/Master/texmf-dist/tex/context/base/mlib-pdf.lua
+++ b/Master/texmf-dist/tex/context/base/mlib-pdf.lua
@@ -6,172 +6,148 @@ if not modules then modules = { } end modules ['mlib-pdf'] = {
license = "see context related readme files",
}
-local format, join = string.format, table.concat
-local sprint = tex.sprint
+local format, concat = string.format, table.concat
+local texsprint = tex.sprint
local abs, sqrt, round = math.abs, math.sqrt, math.round
+local copy_node, write_node = node.copy, node.write
+
+local ctxcatcodes = tex.ctxcatcodes
+
metapost = metapost or { }
metapost.multipass = false
metapost.n = 0
+metapost.optimize = true -- false
+
+--~ Because in MKiV we always have two passes, we save the objects. When an extra
+--~ mp run is done (due to for instance texts identifier in the parse pass), we
+--~ get a new result table and the stored objects are forgotten. Otherwise they
+--~ are reused.
+
+local function getobjects(result,figure,f)
+ if metapost.optimize then
+ local objects = result.objects
+ if not objects then
+ result.objects = { }
+ end
+ objects = result.objects[f]
+ if not objects then
+ objects = figure:objects()
+ result.objects[f] = objects
+ end
+ return objects
+ else
+ return figure:objects()
+ end
+end
-function metapost.convert(result, trialrun, flusher, multipass)
+function metapost.convert(result, trialrun, flusher, multipass, askedfig)
if trialrun then
metapost.multipass = false
- metapost.parse(result, flusher)
- if multipass and not metapost.multipass then
- metapost.flush(result, flusher) -- saves a run
+ metapost.parse(result, askedfig)
+ if multipass and not metapost.multipass and metapost.optimize then
+ metapost.flush(result, flusher, askedfig) -- saves a run
else
return false
end
else
- metapost.flush(result, flusher)
+ metapost.flush(result, flusher, askedfig)
end
return true -- done
end
-function metapost.comment(message)
- if message then
- sprint(tex.ctxcatcodes,format("\\MPLIBtoPDF{\\letterpercent\\space mps graphic %s: %s}", metapost.n, message))
+metapost.flushers = { }
+metapost.flushers.pdf = { }
+
+local savedliterals = nil
+
+local mpsliteral = nodes.register(node.new("whatsit",8))
+
+function metapost.flush_literal(d) -- \def\MPLIBtoPDF#1{\ctxlua{metapost.flush_literal(#1)}}
+ if savedliterals then
+ local literal = copy_node(mpsliteral)
+ literal.data = savedliterals[d]
+ write_node(literal)
+ else
+ logs.report("metapost","problem flushing literal %s",d)
end
end
-metapost.flushers = { }
-metapost.flushers.pdf = { }
+function metapost.flush_reset()
+ savedliterals = nil
+end
+
+function metapost.flushers.pdf.comment(message)
+ if message then
+ message = format("%% mps graphic %s: %s", metapost.n, message)
+ if savedliterals then
+ local last = #savedliterals + 1
+ savedliterals[last] = message
+ texsprint(ctxcatcodes,"\\MPLIBtoPDF{",last,"}")
+ else
+ savedliterals = { message }
+ texsprint(ctxcatcodes,"\\MPLIBtoPDF{1}")
+ end
+ end
+end
function metapost.flushers.pdf.startfigure(n,llx,lly,urx,ury,message)
+ savedliterals = nil
metapost.n = metapost.n + 1
- sprint(tex.ctxcatcodes,format("\\startMPLIBtoPDF{%s}{%s}{%s}{%s}",llx,lly,urx,ury))
- if message then metapost.comment(message) end
+ texsprint(ctxcatcodes,format("\\startMPLIBtoPDF{%s}{%s}{%s}{%s}",llx,lly,urx,ury))
+ if message then metapost.flushers.pdf.comment(message) end
end
function metapost.flushers.pdf.stopfigure(message)
- if message then metapost.comment(message) end
- sprint(tex.ctxcatcodes,"\\stopMPLIBtoPDF")
+ if message then metapost.flushers.pdf.comment(message) end
+ texsprint(ctxcatcodes,"\\stopMPLIBtoPDF")
+ texsprint(ctxcatcodes,"\\ctxlua{metapost.flush_reset()}") -- maybe just at the beginning
end
function metapost.flushers.pdf.flushfigure(pdfliterals) -- table
if #pdfliterals > 0 then
- sprint(tex.ctxcatcodes,"\\MPLIBtoPDF{",join(pdfliterals,"\n"),"}")
+ pdfliterals = concat(pdfliterals,"\n")
+ if savedliterals then
+ local last = #savedliterals + 1
+ savedliterals[last] = pdfliterals
+ texsprint(ctxcatcodes,"\\MPLIBtoPDF{",last,"}")
+ else
+ savedliterals = { pdfliterals }
+ texsprint(ctxcatcodes,"\\MPLIBtoPDF{1}")
+ end
end
end
function metapost.flushers.pdf.textfigure(font,size,text,width,height,depth) -- we could save the factor
text = text:gsub(".","\\hbox{%1}") -- kerning happens in metapost (i have to check if this is true for mplib)
- sprint(tex.ctxcatcodes,format("\\MPLIBtextext{%s}{%s}{%s}{%s}{%s}",font,size,text,0,-number.dimenfactors.bp*depth))
+ texsprint(ctxcatcodes,format("\\MPLIBtextext{%s}{%s}{%s}{%s}{%s}",font,size,text,0,-number.dimenfactors.bp*depth))
end
--- the pen calculations are taken from metapost, first converted by
--- taco from c to lua, and then optimized by hans, so all errors are his
-
-local function pyth(a,b)
- return sqrt(a*a + b*b) -- much faster than sqrt(a^2 + b^2)
-end
-
-local aspect_bound = 10/65536
-local aspect_default = 1/65536
local bend_tolerance = 131/65536
-local eps = 0.0001
-
-local function coord_range_x(h, dz) -- direction x
- local zlo, zhi = 0, 0
- for i=1, #h do
- local p = h[i]
- local z = p.x_coord
- if z < zlo then zlo = z elseif z > zhi then zhi = z end
- z = p.right_x
- if z < zlo then zlo = z elseif z > zhi then zhi = z end
- z = p.left_x
- if z < zlo then zlo = z elseif z > zhi then zhi = z end
- end
- return (zhi - zlo <= dz and aspect_bound) or aspect_default
-end
-
-local function coord_range_y(h, dz) -- direction y
- local zlo, zhi = 0, 0
- for i=1, #h do
- local p = h[i]
- local z = p.y_coord
- if z < zlo then zlo = z elseif z > zhi then zhi = z end
- z = p.right_y
- if z < zlo then zlo = z elseif z > zhi then zhi = z end
- z = p.left_y
- if z < zlo then zlo = z elseif z > zhi then zhi = z end
- end
- return (zhi - zlo <= dz and aspect_bound) or aspect_default
-end
local rx, sx, sy, ry, tx, ty, divider = 1, 0, 0, 1, 0, 0, 1
local function pen_characteristics(object)
- local p = object.pen[1]
- local x_coord, y_coord, left_x, left_y, right_x, right_y = p.x_coord, p.y_coord, p.left_x, p.left_y, p.right_x, p.right_y
- local wx, wy, width
- if right_x == x_coord and left_y == y_coord then
- wx = abs(left_x - x_coord)
- wy = abs(right_y - y_coord)
- else
- wx = pyth(left_x - x_coord, right_x - x_coord)
- wy = pyth(left_y - y_coord, right_y - y_coord)
- end
- if wy/coord_range_x(object.path, wx) >= wx/coord_range_y(object.path, wy) then
- width = wy
- else
- width = wx
- end
- sx, rx, ry, sy, tx, ty = left_x, left_y, right_x, right_y, x_coord, y_coord
- sx, rx, ry, sy = (sx-tx), (rx-ty), (ry-tx), (sy-ty) -- combine with previous
- if width ~= 1 then
- if width == 0 then
- sx, sy = 1, 1
- else
- rx, ry, sx, sy = rx/width, ry/width, sx/width, sy/width
- end
- end
- -- sx rx ry sy tx ty -> 1 0 0 1 0 0 is ok, but 0 0 0 0 0 0 not
- if true then
- if abs(sx) < eps then sx = eps end
- if abs(sy) < eps then sy = eps end
+ if mplib.pen_info then
+ local t = mplib.pen_info(object)
+ rx, ry, sx, sy, tx, ty = t.rx, t.ry, t.sx, t.sy, t.tx, t.ty
+ divider = sx*sy - rx*ry
+ return not (sx==1 and rx==0 and ry==0 and sy==1 and tx==0 and ty==0), t.width
else
- -- this block looks complicated but it only captures invalid transforms
- -- to be checked rx vs sx and so
- local det = sx/sy - ry/rx
- local aspect = 4*aspect_bound + aspect_default
- if abs(det) < aspect then
- local s
- if det >= 0 then
- s, aspect = 1, aspect - det
- else
- s, aspect = -1, -aspect - det -- - ?
- end
- local absrx, absry, abssy, abssx = abs(rx), abs(ry), abs(sy), abs(sx)
- if abssx + abssy >= absry + absrx then -- was yy
- if abssx > abssy then
- sy = sy + (aspect + s*abssx) / sx
- else
- sx = sx + (aspect + s*abssy) / sy
- end
- else
- if absry > absrx then
- rx = rx + (aspect + s*absry) / ry
- else
- ry = ry + (aspect + s*absrx) / rx
- end
- end
- end
+ rx, sx, sy, ry, tx, ty, divider = 1, 0, 0, 1, 0, 0, 1
+ return false, 1
end
- divider = sx*sy - rx*ry
- return not (sx==1 and rx==0 and ry==0 and sy==1 and tx==0 and ty==0), width
end
-local function concat(px, py) -- no tx, ty here
+local function mpconcat(px, py) -- no tx, ty here / we can move this one inline if needed
return (sy*px-ry*py)/divider,(sx*py-rx*px)/divider
end
local function curved(ith,pth)
local d = pth.left_x - ith.right_x
- if abs(ith.right_x-ith.x_coord-d) <= bend_tolerance and abs(pth.x_coord-pth.left_x-d) <= bend_tolerance then
+ if abs(ith.right_x - ith.x_coord - d) <= bend_tolerance and abs(pth.x_coord - pth.left_x - d) <= bend_tolerance then
d = pth.left_y - ith.right_y
- if abs(ith.right_y-ith.y_coord-d) <= bend_tolerance and abs(pth.y_coord-pth.left_y-d) <= bend_tolerance then
+ if abs(ith.right_y - ith.y_coord - d) <= bend_tolerance and abs(pth.y_coord - pth.left_y - d) <= bend_tolerance then
return false
end
end
@@ -196,8 +172,12 @@ local function flushnormalpath(path, t, open)
if curved(pth,one) then
t[#t+1] = format("%f %f %f %f %f %f c",pth.right_x,pth.right_y,one.left_x,one.left_y,one.x_coord,one.y_coord )
else
- t[#t+1] = format("%f %f l",one.x_coord,one.y_coord)
+ t[#t+1] = format("%f %f l",one.x_coord,one.y_coord)
end
+ elseif #path == 1 then
+ -- special case .. draw point
+ local one = path[1]
+ t[#t+1] = format("%f %f l",one.x_coord,one.y_coord)
end
return t
end
@@ -208,29 +188,35 @@ local function flushconcatpath(path, t, open)
for i=1,#path do
pth = path[i]
if not ith then
- t[#t+1] = format("%f %f m",concat(pth.x_coord,pth.y_coord))
+ t[#t+1] = format("%f %f m",mpconcat(pth.x_coord,pth.y_coord))
elseif curved(ith,pth) then
- local a, b = concat(ith.right_x,ith.right_y)
- local c, d = concat(pth.left_x,pth.left_y)
- t[#t+1] = format("%f %f %f %f %f %f c",a,b,c,d,concat(pth.x_coord, pth.y_coord))
+ local a, b = mpconcat(ith.right_x,ith.right_y)
+ local c, d = mpconcat(pth.left_x,pth.left_y)
+ t[#t+1] = format("%f %f %f %f %f %f c",a,b,c,d,mpconcat(pth.x_coord,pth.y_coord))
else
- t[#t+1] = format("%f %f l",concat(pth.x_coord, pth.y_coord))
+ t[#t+1] = format("%f %f l",mpconcat(pth.x_coord, pth.y_coord))
end
ith = pth
end
if not open then
local one = path[1]
if curved(pth,one) then
- local a, b = concat(pth.right_x,pth.right_y)
- local c, d = concat(one.left_x,one.left_y)
- t[#t+1] = format("%f %f %f %f %f %f c",a,b,c,d,concat(one.x_coord, one.y_coord))
+ local a, b = mpconcat(pth.right_x,pth.right_y)
+ local c, d = mpconcat(one.left_x,one.left_y)
+ t[#t+1] = format("%f %f %f %f %f %f c",a,b,c,d,mpconcat(one.x_coord, one.y_coord))
else
- t[#t+1] = format("%f %f l",concat(one.x_coord,one.y_coord))
+ t[#t+1] = format("%f %f l",mpconcat(one.x_coord,one.y_coord))
end
+ elseif #path == 1 then
+ -- special case .. draw point
+ local one = path[1]
+ t[#t+1] = format("%f %f l",mpconcat(one.x_coord,one.y_coord))
end
return t
end
+metapost.flushnormalpath = flushnormalpath
+
metapost.specials = metapost.specials or { }
-- we have two extension handlers, one for pre and postscripts, and one for colors
@@ -238,7 +224,7 @@ metapost.specials = metapost.specials or { }
-- the flusher is pdf based, if another backend is used, we need to overload the
-- flusher; this is beta code, the organization will change
-function metapost.flush(result,flusher) -- pdf flusher, table en dan concat is sneller, 1 literal
+function metapost.flush(result,flusher,askedfig) -- pdf flusher, table en dan concat is sneller, 1 literal
if result then
local figures = result.fig
if figures then
@@ -247,254 +233,268 @@ function metapost.flush(result,flusher) -- pdf flusher, table en dan concat is s
local colorhandler = metapost.colorhandler
for f=1, #figures do
local figure = figures[f]
---~ local objects = figure:objects()
-local objects = result.objects
-if not objects then
- objects = figure:objects()
- result.objects = objects
-end
- local fignum = tonumber((figure:filename()):match("([%d]+)$") or 0)
- local t = { }
- local miterlimit, linecap, linejoin, dashed = -1, -1, -1, false
- local bbox = figure:boundingbox()
- local llx, lly, urx, ury = bbox[1], bbox[2], bbox[3], bbox[4] -- faster than unpack
- if urx < llx then
- -- invalid
- flusher.startfigure(fignum,0,0,0,0,"invalid")
- flusher.stopfigure()
- else
- flusher.startfigure(fignum,llx,lly,urx,ury,"begin")
- t[#t+1] = "q"
- if objects then
- for o=1,#objects do
- local object = objects[o]
- local objecttype = object.type
- if objecttype == "start_bounds" or objecttype == "stop_bounds" then
- -- skip
- elseif objecttype == "start_clip" then
- t[#t+1] = "q"
- flushnormalpath(object.path,t,false)
- t[#t+1] = "W n"
- elseif objecttype == "stop_clip" then
- t[#t+1] = "Q"
- miterlimit, linecap, linejoin, dashed = -1, -1, -1, false
- elseif objecttype == "special" then
- metapost.specials.register(object.prescript)
- elseif objecttype == "text" then
- t[#t+1] = "q"
- local ot = object.transform -- 3,4,5,6,1,2
- t[#t+1] = format("%f %f %f %f %f %f cm",ot[3],ot[4],ot[5],ot[6],ot[1],ot[2]) -- TH: format("%f %f m %f %f %f %f 0 0 cm",unpack(ot))
- flusher.flushfigure(t)
- t = { }
- flusher.textfigure(object.font,object.dsize,object.text,object.width,object.height,object.depth)
- t[#t+1] = "Q"
- else
- -- alternatively we can pass on the stack, could be a helper
- local currentobject = { -- not needed when no extensions
- type = object.type,
- miterlimit = object.miterlimit,
- linejoin = object.linejoin,
- linecap = object.linecap,
- color = object.color,
- dash = object.dash,
- path = object.path,
- htap = object.htap,
- pen = object.pen,
- prescript = object.prescript,
- postscript = object.postscript,
- }
- --
- local before, inbetween, after = nil, nil, nil
- --
- local cs, cr = currentobject.color, nil
- -- todo document why ...
- if cs and colorhandler and #cs > 0 and round(cs[1]*10000) == 123 then -- test in function
- currentobject, cr = colorhandler(cs,currentobject,t,colorconverter)
- objecttype = currentobject.type
- end
- --
- local prescript = currentobject.prescript
- if prescript then
- -- move test to function
- local special = metapost.specials[prescript]
- if special then
- currentobject, before, inbetween, after = special(currentobject.postscript,currentobject,t,flusher)
+ local objects = getobjects(result,figure,f)
+ local fignum = figure:charcode() or 0
+ if not askedfig or (askedfig == fignum) then
+ local t = { }
+ local miterlimit, linecap, linejoin, dashed = -1, -1, -1, false
+ local bbox = figure:boundingbox()
+ local llx, lly, urx, ury = bbox[1], bbox[2], bbox[3], bbox[4] -- faster than unpack
+ metapost.llx = llx
+ metapost.lly = lly
+ metapost.urx = urx
+ metapost.ury = ury
+ if urx < llx then
+ -- invalid
+ flusher.startfigure(fignum,0,0,0,0,"invalid",figure)
+ flusher.stopfigure()
+ else
+ flusher.startfigure(fignum,llx,lly,urx,ury,"begin",figure)
+ t[#t+1] = "q"
+ if objects then
+ t[#t+1] = metapost.colorinitializer()
+ -- once we have multiple prescripts we can do more tricky things like
+ -- text and special colors at the same time
+ for o=1,#objects do
+ local object = objects[o]
+ local objecttype = object.type
+ if objecttype == "start_bounds" or objecttype == "stop_bounds" then
+ -- skip
+ elseif objecttype == "start_clip" then
+ t[#t+1] = "q"
+ flushnormalpath(object.path,t,false)
+ t[#t+1] = "W n"
+ elseif objecttype == "stop_clip" then
+ t[#t+1] = "Q"
+ miterlimit, linecap, linejoin, dashed = -1, -1, -1, false
+ elseif objecttype == "special" then
+ metapost.specials.register(object.prescript)
+ elseif objecttype == "text" then
+ t[#t+1] = "q"
+ local ot = object.transform -- 3,4,5,6,1,2
+ t[#t+1] = format("%f %f %f %f %f %f cm",ot[3],ot[4],ot[5],ot[6],ot[1],ot[2]) -- TH: format("%f %f m %f %f %f %f 0 0 cm",unpack(ot))
+ flusher.flushfigure(t) -- flush accumulated literals
+ t = { }
+ flusher.textfigure(object.font,object.dsize,object.text,object.width,object.height,object.depth)
+ t[#t+1] = "Q"
+ else
+ -- alternatively we can pass on the stack, could be a helper
+ -- can be optimized with locals
+ local currentobject = { -- not needed when no extensions
+ type = object.type,
+ miterlimit = object.miterlimit,
+ linejoin = object.linejoin,
+ linecap = object.linecap,
+ color = object.color,
+ dash = object.dash,
+ path = object.path,
+ htap = object.htap,
+ pen = object.pen,
+ prescript = object.prescript,
+ postscript = object.postscript,
+ }
+ --
+ local before, inbetween, after = nil, nil, nil
+ --
+ local cs, cr = currentobject.color, nil
+ -- todo document why ...
+ if cs and colorhandler and #cs > 0 and round(cs[1]*10000) == 123 then -- test in function
+ currentobject, cr = colorhandler(cs,currentobject,t,colorconverter)
objecttype = currentobject.type
end
- end
- --
- cs = currentobject.color
- if cs and #cs > 0 then
- t[#t+1], cr = colorconverter(cs)
- end
- --
- if before then object, t = before() end
- local ml = currentobject.miterlimit
- if ml and ml ~= miterlimit then
- miterlimit = ml
- t[#t+1] = format("%f M",ml)
- end
- local lj = currentobject.linejoin
- if lj and lj ~= linejoin then
- linejoin = lj
- t[#t+1] = format("%i j",lj)
- end
- local lc = currentobject.linecap
- if lc and lc ~= linecap then
- linecap = lc
- t[#t+1] = format("%i J",lc)
- end
- local dl = currentobject.dash
- if dl then
- local d = format("[%s] %i d",join(dl.dashes or {}," "),dl.offset)
- if d ~= dashed then
- dashed = d
- t[#t+1] = dashed
+ --
+ local prescript = currentobject.prescript
+ if prescript and prescript ~= "" then
+ -- move test to function
+ local special = metapost.specials[prescript]
+ if special then
+ currentobject, before, inbetween, after = special(currentobject.postscript,currentobject,t,flusher)
+ objecttype = currentobject.type
+ end
end
- elseif dashed then
- t[#t+1] = "[] 0 d"
- dashed = false
- end
- if inbetween then object, t = inbetween() end
- local path = currentobject.path
- local transformed, penwidth = false, 1
- local open = path and path[1].left_type and path[#path].right_type -- at this moment only "end_point"
- local pen = currentobject.pen
- if pen then
- if pen.type=='elliptical' then
- transformed, penwidth = pen_characteristics(object) -- boolean, value
- t[#t+1] = format("%f w",penwidth) -- todo: only if changed
- if objecttype == 'fill' then
- objecttype = 'both'
+ --
+ cs = currentobject.color
+ if cs and #cs > 0 then
+ t[#t+1], cr = colorconverter(cs)
+ end
+ --
+ if before then currentobject, t = before() end
+ local ml = currentobject.miterlimit
+ if ml and ml ~= miterlimit then
+ miterlimit = ml
+ t[#t+1] = format("%f M",ml)
+ end
+ local lj = currentobject.linejoin
+ if lj and lj ~= linejoin then
+ linejoin = lj
+ t[#t+1] = format("%i j",lj)
+ end
+ local lc = currentobject.linecap
+ if lc and lc ~= linecap then
+ linecap = lc
+ t[#t+1] = format("%i J",lc)
+ end
+ local dl = currentobject.dash
+ if dl then
+ local d = format("[%s] %i d",concat(dl.dashes or {}," "),dl.offset)
+ if d ~= dashed then
+ dashed = d
+ t[#t+1] = dashed
end
- else -- calculated by mplib itself
- objecttype = 'fill'
- end
- end
- if transformed then
- t[#t+1] = "q"
- end
- if path then
- if transformed then
- flushconcatpath(path,t,open)
- else
- flushnormalpath(path,t,open)
+ elseif dashed then
+ t[#t+1] = "[] 0 d"
+ dashed = false
end
- if objecttype == "fill" then
- t[#t+1] = "h f"
- elseif objecttype == "outline" then
- t[#t+1] = (open and "S") or "h S"
- elseif objecttype == "both" then
- t[#t+1] = "h B"
+ if inbetween then currentobject, t = inbetween() end
+ local path = currentobject.path
+ local transformed, penwidth = false, 1
+ local open = path and path[1].left_type and path[#path].right_type -- at this moment only "end_point"
+ local pen = currentobject.pen
+ if pen then
+ if pen.type == 'elliptical' then
+ transformed, penwidth = pen_characteristics(object) -- boolean, value
+ t[#t+1] = format("%f w",penwidth) -- todo: only if changed
+ if objecttype == 'fill' then
+ objecttype = 'both'
+ end
+ else -- calculated by mplib itself
+ objecttype = 'fill'
+ end
end
- end
- if transformed then
- t[#t+1] = "Q"
- end
- local path = currentobject.htap
- if path then
if transformed then
t[#t+1] = "q"
end
- if transformed then
- flushconcatpath(path,t,open)
- else
- flushnormalpath(path,t,open)
- end
- if objecttype == "fill" then
- t[#t+1] = "h f"
- elseif objecttype == "outline" then
- t[#t+1] = (open and "S") or "h S"
- elseif objecttype == "both" then
- t[#t+1] = "h B"
+ if path then
+ if transformed then
+ flushconcatpath(path,t,open)
+ else
+ flushnormalpath(path,t,open)
+ end
+ if objecttype == "fill" then
+ t[#t+1] = "h f"
+ elseif objecttype == "outline" then
+ t[#t+1] = (open and "S") or "h S"
+ elseif objecttype == "both" then
+ t[#t+1] = "h B"
+ end
end
if transformed then
t[#t+1] = "Q"
end
+ local path = currentobject.htap
+ if path then
+ if transformed then
+ t[#t+1] = "q"
+ end
+ if transformed then
+ flushconcatpath(path,t,open)
+ else
+ flushnormalpath(path,t,open)
+ end
+ if objecttype == "fill" then
+ t[#t+1] = "h f"
+ elseif objecttype == "outline" then
+ t[#t+1] = (open and "S") or "h S"
+ elseif objecttype == "both" then
+ t[#t+1] = "h B"
+ end
+ if transformed then
+ t[#t+1] = "Q"
+ end
+ end
+ if cr then
+ t[#t+1] = cr
+ end
+ if after then currentobject, t = after() end
end
- if cr then
- t[#t+1] = cr
- end
- if after then object, t = after() end
- end
- end
+ end
+ end
+ t[#t+1] = "Q"
+ flusher.flushfigure(t)
+ flusher.stopfigure("end")
+ end
+ if askedfig then
+ break
end
- t[#t+1] = "Q"
- flusher.flushfigure(t)
- flusher.stopfigure("end")
end
end
end
end
end
-function metapost.parse(result)
+function metapost.parse(result,askedfig)
if result then
local figures = result.fig
if figures then
for f=1, #figures do
local figure = figures[f]
---~ local objects = figure:objects()
-local objects = result.objects
-if not objects then
- objects = figure:objects()
- result.objects = objects
-end
- if objects then
- for o=1,#objects do
- local object = objects[o]
- if object.type == "outline" then
- local prescript = object.prescript
- if prescript then
- local special = metapost.specials[prescript]
- if special then
- special(object.postscript,object)
+ local fignum = figure:charcode() or 0
+ if not askedfig or (askedfig == fignum) then
+ local bbox = figure:boundingbox()
+ local llx, lly, urx, ury = bbox[1], bbox[2], bbox[3], bbox[4] -- faster than unpack
+ metapost.llx = llx
+ metapost.lly = lly
+ metapost.urx = urx
+ metapost.ury = ury
+ local objects = getobjects(result,figure,f)
+ if objects then
+ for o=1,#objects do
+ local object = objects[o]
+ if object.type == "outline" then
+ local prescript = object.prescript
+ if prescript then
+ local special = metapost.specials[prescript]
+ if special then
+ special(object.postscript,object)
+ end
end
- end
- end
+ end
+ end
end
+ break
end
end
end
end
end
-do
-
- -- just tracing
+-- tracing:
- local t = { }
+local t = { }
- local flusher = {
- startfigure = function()
- t = { }
- sprint(tex.ctxcatcodes,"\\startnointerference")
- end,
- flushfigure = function(literals)
- for i=1, #literals do
- t[#t+1] = literals[i]
- end
- end,
- stopfigure = function()
- sprint(tex.ctxcatcodes,"\\stopnointerference")
+local flusher = {
+ startfigure = function()
+ t = { }
+ texsprint(ctxcatcodes,"\\startnointerference")
+ end,
+ flushfigure = function(literals)
+ for i=1, #literals do
+ t[#t+1] = literals[i]
end
- }
-
- function metapost.pdfliterals(result)
- metapost.flush(result,flusher)
- return t
+ end,
+ stopfigure = function()
+ texsprint(ctxcatcodes,"\\stopnointerference")
end
+}
+function metapost.pdfliterals(result)
+ metapost.flush(result,flusher)
+ return t
end
+-- so far
+
function metapost.totable(result)
local figure = result and result.fig and result.fig[1]
if figure then
local t = { }
local objects = figure:objects()
- for _, object in ipairs(objects) do
+ for o=1,#objects do
+ local object = objects[o]
local tt = { }
- for _, field in ipairs(mplib.fields(object)) do
+ local fields = mplib.fields(object)
+ for f=1,#fields do
+ local field = fields[f]
tt[field] = object[field]
end
t[#t+1] = tt
@@ -509,6 +509,8 @@ function metapost.totable(result)
end
end
+-- will be overloaded later
+
function metapost.colorconverter()
return function(cr)
local n = #cr
diff --git a/Master/texmf-dist/tex/context/base/mlib-pdf.tex b/Master/texmf-dist/tex/context/base/mlib-pdf.mkiv
index b7b8506ad64..2681b081044 100644
--- a/Master/texmf-dist/tex/context/base/mlib-pdf.tex
+++ b/Master/texmf-dist/tex/context/base/mlib-pdf.mkiv
@@ -15,7 +15,7 @@
\registerctxluafile{mlib-pdf}{1.001}
-\let\MPLIBtoPDF\pdfliteral
+\def\MPLIBtoPDF#1{\ctxlua{metapost.flush_literal(#1)}}
\def\MPLIBboundingbox#1#2#3#4%
{\xdef\MPllx{#1}%
@@ -26,9 +26,10 @@
\xdef\MPheight{\the\dimexpr#4\onebasepoint-#2\onebasepoint\relax}}
\def\startMPLIBtoPDF#1#2#3#4% watch the transparency reset
- {\hbox\bgroup
+ {\naturalhbox\bgroup
+ \doactivatecolor\s!black\forcecolorhack
\MPLIBboundingbox{#1}{#2}{#3}{#4}%
- \forgetall
+ %\forgetall % done already elsewhere
\setbox\scratchbox\vbox\bgroup
\noindent % this is really needed in order to force tex into proper cm's
\startMPresources}
@@ -78,7 +79,7 @@
{\font\temp=#1\space at #2\onebasepoint
\let\c\char
\temp
- \MPfshowcommand{#3}}%
+ #3}%
\setbox\scratchbox\hbox
{\hskip#4\onebasepoint
\raise#5\onebasepoint
diff --git a/Master/texmf-dist/tex/context/base/mlib-pps.lua b/Master/texmf-dist/tex/context/base/mlib-pps.lua
index 0e3d2e3ecea..cf4fe69bedf 100644
--- a/Master/texmf-dist/tex/context/base/mlib-pps.lua
+++ b/Master/texmf-dist/tex/context/base/mlib-pps.lua
@@ -6,8 +6,18 @@ if not modules then modules = { } end modules ['mlib-pps'] = { -- prescript, pos
license = "see context related readme files",
}
-local format, concat, round = string.format, table.concat, math.round
+-- current limitation: if we have textext as well as a special color then due to
+-- prescript/postscript overload we can have problems
+
+local format, gmatch, concat, round, match = string.format, string.gmatch, table.concat, math.round, string.match
local sprint = tex.sprint
+local tonumber, type = tonumber, type
+
+local starttiming, stoptiming = statistics.starttiming, statistics.stoptiming
+
+local ctxcatcodes = tex.ctxcatcodes
+
+local trace_textexts = false trackers.register("metapost.textexts", function(v) trace_textexts = v end)
colors = colors or { }
@@ -19,6 +29,7 @@ local cmyktogray = colors.cmyktogray or function() return 0 end
metapost = metapost or { }
metapost.specials = metapost.specials or { }
metapost.specials.data = metapost.specials.data or { }
+metapost.externals = metapost.externals or { n = 0 }
local data = metapost.specials.data
@@ -31,41 +42,113 @@ local colordata = { {}, {}, {}, {}, {} }
--~ => transparent spot : r=123 g= 5 b=hash
--~ => rest : r=123 g=n>10 b=whatever
+local nooutercolor = "0 g 0 G"
+local nooutertransparency = "/Tr0 gs" -- only when set
+local outercolormode = 0
+local outercolor = nooutercolor
+local outertransparency = nooutertransparency
+local innercolor = nooutercolor
+local innertransparency = nooutertransparency
+
+local pdfcolor, pdftransparency = lpdf.color, lpdf.transparency
+local registercolor, registerspotcolor = colors.register, colors.registerspotcolor
+local registertransparency = transparencies.register
+
+function metapost.set_outer_color(mode,colormodel,colorattribute,transparencyattribute)
+ -- has always to be called before conversion
+ -- todo: transparency (not in the mood now)
+ outercolormode = mode
+ if mode == 1 or mode == 3 then
+ -- inherit from outer (registered color)
+ outercolor = pdfcolor(colormodel,colorattribute) or nooutercolor
+ outertransparency = pdftransparency(transparencyattribute) or nooutertransparency
+ elseif mode == 2 then
+ -- stand alone (see m-punk.tex)
+ outercolor = ""
+ outertransparency = ""
+ else -- 0
+ outercolor = nooutercolor
+ outertransparency = nooutertransparency
+ end
+ innercolor = outercolor
+ innertransparency = outertransparency -- not yet used
+end
+
+local function checked_color_pair(color)
+ if not color then
+ return innercolor, outercolor
+ elseif outercolormode == 3 then
+ innercolor = color
+ return innercolor, innercolor
+ else
+ return color, outercolor
+ end
+end
+
+metapost.checked_color_pair = checked_color_pair
+
+function metapost.colorinitializer()
+ innercolor = outercolor
+ innertransparency = outertransparency
+ return outercolor, outertransparency
+end
+
function metapost.specials.register(str) -- only colors
- local size, content, n, class = str:match("^%%%%MetaPostSpecial: (%d+) (.*) (%d+) (%d+)$")
+ local size, content, n, class = match(str,"^%%%%MetaPostSpecial: (%d+) (.*) (%d+) (%d+)$")
if class then
+ -- use lpeg splitter
local data = { }
- for s in content:gmatch("[^ ]+") do
+ for s in gmatch(content,"[^ ]+") do
data[#data+1] = s
end
class, n = tonumber(class), tonumber(n)
- if class == 3 or class == 4 or class == 5 then -- weird
- colordata[class][n] = data
+ if class == 3 or class == 4 or class == 5 then
+ -- hm, weird
+ else
+ n = tonumber(data[1])
+ end
+ if n then
+ local cc = colordata[class]
+ if cc then
+ cc[n] = data
+ else
+ logs.report("mplib","problematic special: %s (no colordata class %s)", str or "?",class)
+ end
else
- colordata[class][tonumber(data[1])] = data
+ -- there is some bug to be solved, so we issue a message
+ logs.report("mplib","problematic special: %s", str or "?")
end
end
+--~ if str:match("^%%%%MetaPostOption: multipass") then
+--~ metapost.multipass = true
+--~ end
end
-function metapost.colorhandler(cs, object, result, colorconverter)
- local cr = "0 g 0 G"
+local function spotcolorconverter(parent, n, d, p)
+ registerspotcolor(parent)
+ return pdfcolor(colors.model,registercolor(nil,'spot',parent,n,d,p))
+end
+
+function metapost.colorhandler(cs, object, result, colorconverter) -- handles specials
+ local cr = outercolor
local what = round(cs[2]*10000)
- local data = colordata[what][round(cs[3]*10000)]
+ local data = colordata[what]
+ if data then
+ data = data[round(cs[3]*10000)]
+ end
if not data then
--
elseif what == 1 then
result[#result+1], cr = colorconverter({ data[2], data[3], data[4], data[5] })
elseif what == 2 then
- ctx.registerspotcolor(data[2])
- result[#result+1] = ctx.pdfcolor(colors.model,colors.register('color',nil,'spot',data[2],data[3],data[4],data[5]))
+ result[#result+1] = spotcolorconverter(data[2],data[3],data[4],data[5])
else
if what == 3 then
result[#result+1], cr = colorconverter({ data[3], data[4], data[5]})
elseif what == 4 then
result[#result+1], cr = colorconverter({ data[3], data[4], data[5], data[6]})
elseif what == 5 then
- ctx.registerspotcolor(data[3])
- result[#result+1] = ctx.pdfcolor(colors.model,colors.register('color',nil,'spot',data[3],data[4],data[5],data[6]))
+ result[#result+1] = spotcolorconverter(data[3],data[4],data[5],data[6])
end
object.prescript = "tr"
object.postscript = data[1] .. "," .. data[2]
@@ -74,56 +157,40 @@ function metapost.colorhandler(cs, object, result, colorconverter)
return object, cr
end
-function metapost.colorspec(cs)
+function metapost.colorspec(cs) -- used for shades ... returns table (for checking) or string (spot)
local what = round(cs[2]*10000)
local data = colordata[what][round(cs[3]*10000)]
if not data then
return { 0 }
elseif what == 1 then
- return { data[2], data[3], data[4], data[5] }
+ return { tonumber(data[2]), tonumber(data[3]), tonumber(data[4]), tonumber(data[5]) }
elseif what == 2 then
- ctx.registerspotcolor(data[2])
- return ctx.pdfcolor(colors.model,colors.register('color',nil,'spot',data[2],data[3],data[4],data[5]))
+ return spotcolorconverter(data[2],data[3],data[4],data[5])
elseif what == 3 then
- return { data[3], data[4], data[5] }
+ return { tonumber(data[3]), tonumber(data[4]), tonumber(data[5]) }
elseif what == 4 then
- return { data[3], data[4], data[5], data[6] }
+ return { tonumber(data[3]), tonumber(data[4]), tonumber(data[5]), tonumber(data[6]) }
elseif what == 5 then
- ctx.registerspotcolor(data[3])
- return ctx.pdfcolor(colors.model,colors.register('color',nil,'spot',data[3],data[4],data[5],data[6]))
+ return spotcolorconverter(data[3],data[4],data[5],data[6])
end
end
function metapost.specials.tr(specification,object,result)
- local a, t = specification:match("^(.+),(.+)$")
+ local a, t = match(specification,"^(.+),(.+)$")
local before = a and t and function()
- result[#result+1] = format("/Tr%s gs",transparencies.register('mp',a,t))
+ result[#result+1] = format("/Tr%s gs",registertransparency(nil,a,t,true)) -- maybe nil instead of 'mp'
return object, result
end
local after = before and function()
- result[#result+1] = "/Tr0 gs"
+ result[#result+1] = outertransparency -- here we could revert to the outer color
return object, result
end
return object, before, nil, after
end
---~ -- possible speedup: hash registered colors
---~
---~ function metapost.specials.sp(specification,object,result) -- todo: color conversion
---~ local s = object.color[1]
---~ object.color = nil
---~ local before = function()
---~ local spec = specification:split(" ")
---~ ctx.registerspotcolor(spec[1])
---~ result[#result+1] = ctx.pdfcolor(colors.model,colors.register('color',nil,'spot',spec[1],spec[2],spec[3],s))
---~ return object, result
---~ end
---~ local after = function()
---~ result[#result+1] = "0 g 0 G"
---~ return object, result
---~ end
---~ return object, before, nil, nil
---~ end
+local specificationsplitter = lpeg.Ct(lpeg.splitat(" "))
+local colorsplitter = lpeg.Ct(lpeg.splitat(":"))
+local colorsplitter = lpeg.Ct(lpeg.splitter(":",tonumber))
-- Unfortunately we cannot use cmyk colors natively because there is no
-- generic color allocation primitive ... it's just an rgbcolor color.. This
@@ -136,11 +203,11 @@ end
-- This is also an example of a simple plugin.
--~ function metapost.specials.cc(specification,object,result)
---~ object.color = specification:split(" ")
+--~ object.color = specificationsplitter:match(specification)
--~ return object, nil, nil, nil
--~ end
--~ function metapost.specials.cc(specification,object,result)
---~ local c = specification:split(" ")
+--~ local c = specificationsplitter:match(specification)
--~ local o = object.color[1]
--~ c[1],c[2],c[3],c[4] = o*c[1],o*c[2],o*c[3],o*c[4]
--~ return object, nil, nil, nil
@@ -151,7 +218,7 @@ end
-- x' = sx * x + ry * y + tx
-- y' = rx * x + sy * y + ty
-function metapost.specials.fg(specification,object,result,flusher)
+function metapost.specials.fg(specification,object,result,flusher) -- graphics
local op = object.path
local first, second, fourth = op[1], op[2], op[4]
local tx, ty = first.x_coord , first.y_coord
@@ -161,12 +228,26 @@ function metapost.specials.fg(specification,object,result,flusher)
if sy == 0 then sy = 0.00001 end
local before = specification and function()
flusher.flushfigure(result)
- sprint(tex.ctxcatcodes,format("\\MPLIBfigure{%f}{%f}{%f}{%f}{%f}{%f}{%s}",sx,rx,ry,sy,tx,ty,specification))
+ sprint(ctxcatcodes,format("\\MPLIBfigure{%f}{%f}{%f}{%f}{%f}{%f}{%s}",sx,rx,ry,sy,tx,ty,specification))
+ object.path = nil
return object, { }
end
return { } , before, nil, nil -- replace { } by object for tracing
end
+function metapost.specials.ps(specification,object,result) -- positions
+ local op = object.path
+ local first, third = op[1], op[3]
+ local x, y = first.x_coord, first.y_coord
+ local w, h = third.x_coord - x, third.y_coord - y
+ local label = specification
+ x = x - metapost.llx
+ y = metapost.ury - y
+ -- logs.report("mplib", "todo: position '%s' at (%s,%s) with (%s,%s)",label,x,y,w,h)
+ sprint(ctxcatcodes,format("\\dosavepositionwhd{%s}{0}{%sbp}{%sbp}{%sbp}{%sbp}{0pt}",label,x,y,w,h))
+ return { }, nil, nil, nil
+end
+
local nofshades = 0 -- todo: hash resources, start at 1000 in order not to clash with older
local function normalize(ca,cb)
@@ -185,22 +266,28 @@ local function normalize(ca,cb)
end
end
+-- todo: check for the same colorspace (actually a backend issue), now we can
+-- have several similar resources
+--
+-- normalize(ca,cb) fails for spotcolors
+
function metapost.specials.cs(specification,object,result,flusher) -- spot colors?
+ -- a mess, not dynamic anyway
nofshades = nofshades + 1
flusher.flushfigure(result)
result = { }
- local t = specification:split(" ")
+ local t = specificationsplitter:match(specification)
-- we need a way to move/scale
- local ca = t[4]:split(":")
- local cb = t[8]:split(":")
+ local ca = colorsplitter:match(t[4])
+ local cb = colorsplitter:match(t[8])
if round(ca[1]*10000) == 123 then ca = metapost.colorspec(ca) end
if round(cb[1]*10000) == 123 then cb = metapost.colorspec(cb) end
+ local name = format("MplSh%s",nofshades)
+ local domain = { tonumber(t[1]), tonumber(t[2]) }
+ local coordinates = { tonumber(t[5]), tonumber(t[6]), tonumber(t[7]), tonumber(t[9]), tonumber(t[10]), tonumber(t[11]) }
if type(ca) == "string" then
- -- spot color, not supported, maybe at some point use the fallbacks
- sprint(tex.ctxcatcodes,format("\\MPLIBcircularshade{%s}{%s %s}{%.3f}{%.3f}{%s}{%s}{%s %s %s %s %s %s}",
- nofshades,
- t[1], t[2], 0, 1, 1, "DeviceGray",
- t[5], t[6], t[7], t[9], t[10], t[11]))
+ -- backend specific (will be renamed)
+ lpdf.circularshade(name,domain,{ 0 },{ 1 },1,"DeviceGray",coordinates)
else
if #ca > #cb then
normalize(ca,cb)
@@ -215,15 +302,14 @@ function metapost.specials.cs(specification,object,result,flusher) -- spot color
if #ca == 4 then
ca[1], ca[2], ca[3] = cmyktorgb(ca[1],ca[2],ca[3],ca[4])
cb[1], cb[2], cb[3] = cmyktorgb(cb[1],cb[2],cb[3],cb[4])
+ ca[4], cb[4] = nil, nil
elseif #ca == 1 then
local a, b = 1-ca[1], 1-cb[1]
ca[1], ca[2], ca[3] = a, a, a
cb[1], cb[2], cb[3] = b, b, b
end
- sprint(tex.ctxcatcodes,format("\\MPLIBcircularshade{%s}{%s %s}{%.3f %.3f %.3f}{%.3f %.3f %.3f}{%s}{%s}{%s %s %s %s %s %s}",
- nofshades,
- t[1], t[2], ca[1], ca[2], ca[3], cb[1], cb[2], cb[3], 1, "DeviceRGB",
- t[5], t[6], t[7], t[9], t[10], t[11]))
+ -- backend specific (will be renamed)
+ lpdf.circularshade(name,domain,ca,cb,1,"DeviceRGB",coordinates)
elseif model == "cmyk" then
if #ca == 3 then
ca[1], ca[2], ca[3], ca[4] = rgbtocmyk(ca[1],ca[2],ca[3])
@@ -232,10 +318,8 @@ function metapost.specials.cs(specification,object,result,flusher) -- spot color
ca[1], ca[2], ca[3], ca[4] = 0, 0, 0, ca[1]
cb[1], cb[2], cb[3], ca[4] = 0, 0, 0, ca[1]
end
- sprint(tex.ctxcatcodes,format("\\MPLIBcircularshade{%s}{%s %s}{%.3f %.3f %.3f %.3f}{%.3f %.3f %.3f %.3f}{%s}{%s}{%s %s %s %s %s %s}",
- nofshades,
- t[1], t[2], ca[1], ca[2], ca[3], ca[4], cb[1], cb[2], cb[3], cb[4], 1, "DeviceCMYK",
- t[5], t[6], t[7], t[9], t[10], t[11]))
+ -- backend specific (will be renamed)
+ lpdf.circularshade(name,domain,ca,cb,1,"DeviceCMYK",coordinates)
else
if #ca == 4 then
ca[1] = cmyktogray(ca[1],ca[2],ca[3],ca[4])
@@ -244,10 +328,8 @@ function metapost.specials.cs(specification,object,result,flusher) -- spot color
ca[1] = rgbtogray(ca[1],ca[2],ca[3])
cb[1] = rgbtogray(cb[1],cb[2],cb[3])
end
- sprint(tex.ctxcatcodes,format("\\MPLIBcircularshade{%s}{%s %s}{%.3f}{%.3f}{%s}{%s}{%s %s %s %s %s %s}",
- nofshades,
- t[1], t[2], ca[1], cb[1], 1, "DeviceGray",
- t[5], t[6], t[7], t[9], t[10], t[11]))
+ -- backend specific (will be renamed)
+ lpdf.circularshade(name,domain,ca,cb,1,"DeviceGRAY",coordinates)
end
end
local before = function()
@@ -255,7 +337,7 @@ function metapost.specials.cs(specification,object,result,flusher) -- spot color
return object, result
end
local after = function()
- result[#result+1] = format("W n /MpSh%s sh Q", nofshades)
+ result[#result+1] = format("W n /%s sh Q", name)
return object, result
end
object.color, object.type = nil, nil
@@ -266,18 +348,18 @@ function metapost.specials.ls(specification,object,result,flusher)
nofshades = nofshades + 1
flusher.flushfigure(result)
result = { }
- local t = specification:split(" ")
+ local t = specificationsplitter:match(specification)
-- we need a way to move/scale
- local ca = t[4]:split(":")
- local cb = t[7]:split(":")
+ local ca = colorsplitter:match(t[4])
+ local cb = colorsplitter:match(t[7])
if round(ca[1]*10000) == 123 then ca = metapost.colorspec(ca) end
if round(cb[1]*10000) == 123 then cb = metapost.colorspec(cb) end
+ local name = format("MpSh%s",nofshades)
+ local domain = { tonumber(t[1]), tonumber(t[2]) }
+ local coordinates = { tonumber(t[5]), tonumber(t[6]), tonumber(t[8]), tonumber(t[9]) }
if type(ca) == "string" then
- -- spot color, not supported, maybe at some point use the fallbacks
- sprint(tex.ctxcatcodes,format("\\MPLIBlinearshade{%s}{%s %s}{%.3f}{%.3f}{%s}{%s}{%s %s %s %s}",
- nofshades,
- t[1], t[2], 0, 1, 1, "DeviceGray",
- t[5], t[6], t[8], t[9]))
+ -- backend specific (will be renamed)
+ lpdf.linearshade(name,domain,{ 0 },{ 1 },1,"DeviceGray",coordinates)
else
if #ca > #cb then
normalize(ca,cb)
@@ -297,10 +379,8 @@ function metapost.specials.ls(specification,object,result,flusher)
ca[1], ca[2], ca[3] = a, a, a
cb[1], cb[2], cb[3] = b, b, b
end
- sprint(tex.ctxcatcodes,format("\\MPLIBlinearshade{%s}{%s %s}{%.3f %.3f %.3f}{%.3f %.3f %.3f}{%s}{%s}{%s %s %s %s}",
- nofshades,
- t[1], t[2], ca[1], ca[2], ca[3], cb[1], cb[2], cb[3], 1, "DeviceRGB",
- t[5], t[6], t[8], t[9]))
+ -- backend specific (will be renamed)
+ lpdf.linearshade(name,domain,ca,cb,1,"DeviceRGB",coordinates)
elseif model == "cmyk" then
if #ca == 3 then
ca[1], ca[2], ca[3], ca[4] = rgbtocmyk(ca[1],ca[2],ca[3])
@@ -309,10 +389,8 @@ function metapost.specials.ls(specification,object,result,flusher)
ca[1], ca[2], ca[3], ca[4] = 0, 0, 0, ca[1]
cb[1], cb[2], cb[3], ca[4] = 0, 0, 0, ca[1]
end
- sprint(tex.ctxcatcodes,format("\\MPLIBlinearshade{%s}{%s %s}{%.3f %.3f %.3f %.3f}{%.3f %.3f %.3f %.3f}{%s}{%s}{%s %s %s %s}",
- nofshades,
- t[1], t[2], ca[1], ca[2], ca[3], ca[4], cb[1], cb[2], cb[3], cb[4], 1, "DeviceCMYK",
- t[5], t[6], t[8], t[9]))
+ -- backend specific (will be renamed)
+ lpdf.linearshade(name,domain,ca,cb,1,"DeviceCMYK",coordinates)
else
if #ca == 4 then
ca[1] = cmyktogray(ca[1],ca[2],ca[3],ca[4])
@@ -321,10 +399,8 @@ function metapost.specials.ls(specification,object,result,flusher)
ca[1] = rgbtogray(ca[1],ca[2],ca[3])
cb[1] = rgbtogray(cb[1],cb[2],cb[3])
end
- sprint(tex.ctxcatcodes,format("\\MPLIBlinearshade{%s}{%s %s}{%.3f}{%.3f}{%s}{%s}{%s %s %s %s}",
- nofshades,
- t[1], t[2], ca[1], cb[1], 1, "DeviceGray",
- t[5], t[6], t[8], t[9]))
+ -- backend specific (will be renamed)
+ lpdf.linearshade(name,domain,ca,cb,1,"DeviceGRAY",coordinates)
end
end
local before = function()
@@ -332,7 +408,7 @@ function metapost.specials.ls(specification,object,result,flusher)
return object, result
end
local after = function()
- result[#result+1] = format("W n /MpSh%s sh Q", nofshades)
+ result[#result+1] = format("W n /%s sh Q", name)
return object, result
end
object.color, object.type = nil, nil
@@ -343,273 +419,230 @@ end
local current_format, current_graphic
---~ metapost.first_box, metapost.last_box = 1000, 1100
-
+metapost.first_box = metapost.first_box or 1000
+metapost.last_box = metapost.last_box or 1100
metapost.textext_current = metapost.first_box
-metapost.trace_texttexts = false
metapost.multipass = false
+function metapost.free_boxes()
+ local tb = tex.box
+ for i = metapost.first_box,metapost.last_box do
+ local b = tb[i]
+ if b then
+ tb[i] = nil -- no node.flush_list(b) needed, else double free error
+ else
+ break
+ end
+ end
+end
+
function metapost.specials.tf(specification,object)
--~ print("setting", metapost.textext_current)
- local n, str = specification:match("^(%d+):(.+)$")
- if metapost.textext_current < metapost.last_box then
- metapost.textext_current = metapost.first_box + n - 1
- end
- if metapost.trace_texttexts then
- print("metapost", format("first pass: order %s, box %s",n,metapost.textext_current))
+ local n, str = match(specification,"^(%d+):(.+)$")
+ if n and str then
+ if metapost.textext_current < metapost.last_box then
+ metapost.textext_current = metapost.first_box + n - 1
+ end
+ if trace_textexts then
+ logs.report("metapost","first pass: order %s, box %s",n,metapost.textext_current)
+ end
+ sprint(ctxcatcodes,format("\\MPLIBsettext{%s}{%s}",metapost.textext_current,str))
+ metapost.multipass = true
end
- sprint(tex.ctxcatcodes,format("\\MPLIBsettext{%s}{%s}",metapost.textext_current,str))
- metapost.multipass = true
return { }, nil, nil, nil
end
function metapost.specials.ts(specification,object,result,flusher)
-- print("getting", metapost.textext_current)
- local n, str = specification:match("^(%d+):(.+)$")
- if metapost.trace_texttexts then
- print("metapost", format("second pass: order %s, box %s",n,metapost.textext_current))
- end
- local op = object.path
- local first, second, fourth = op[1], op[2], op[4]
- local tx, ty = first.x_coord , first.y_coord
- local sx, sy = second.x_coord - tx, fourth.y_coord - ty
- local rx, ry = second.y_coord - ty, fourth.x_coord - tx
- if sx == 0 then sx = 0.00001 end
- if sy == 0 then sy = 0.00001 end
- local before = function() -- no need for function
- --~ flusher.flushfigure(result)
- --~ sprint(tex.ctxcatcodes,format("\\MPLIBgettext{%f}{%f}{%f}{%f}{%f}{%f}{%s}",sx,rx,ry,sy,tx,ty,metapost.textext_current))
- --~ result = { }
- result[#result+1] = format("q %f %f %f %f %f %f cm", sx,rx,ry,sy,tx,ty)
- flusher.flushfigure(result)
- if metapost.textext_current < metapost.last_box then
- metapost.textext_current = metapost.first_box + n - 1
+ local n, str = match(specification,"^(%d+):(.+)$")
+ if n and str then
+ if trace_textexts then
+ logs.report("metapost","second pass: order %s, box %s",n,metapost.textext_current)
end
- local b = metapost.textext_current
- sprint(tex.ctxcatcodes,format("\\MPLIBgettextscaled{%s}{%s}{%s}",b, metapost.sxsy(tex.wd[b],tex.ht[b],tex.dp[b])))
- result = { "Q" }
- return object, result
+ local op = object.path
+ local first, second, fourth = op[1], op[2], op[4]
+ local tx, ty = first.x_coord , first.y_coord
+ local sx, sy = second.x_coord - tx, fourth.y_coord - ty
+ local rx, ry = second.y_coord - ty, fourth.x_coord - tx
+ if sx == 0 then sx = 0.00001 end
+ if sy == 0 then sy = 0.00001 end
+ if not trace_textexts then
+ object.path = nil
+ end
+ local before = function() -- no need for function
+ --~ flusher.flushfigure(result)
+ --~ sprint(ctxcatcodes,format("\\MPLIBgettext{%f}{%f}{%f}{%f}{%f}{%f}{%s}",sx,rx,ry,sy,tx,ty,metapost.textext_current))
+ --~ result = { }
+ result[#result+1] = format("q %f %f %f %f %f %f cm", sx,rx,ry,sy,tx,ty)
+ flusher.flushfigure(result)
+ if metapost.textext_current < metapost.last_box then
+ metapost.textext_current = metapost.first_box + n - 1
+ end
+ local b = metapost.textext_current
+ sprint(ctxcatcodes,format("\\MPLIBgettextscaled{%s}{%s}{%s}",b, metapost.sxsy(tex.wd[b],tex.ht[b],tex.dp[b])))
+ result = { "Q" }
+ return object, result
+ end
+ return { }, before, nil, nil -- replace { } by object for tracing
+ else
+ return { }, nil, nil, nil -- replace { } by object for tracing
end
- return { }, before, nil, nil -- replace { } by object for tracing
end
-function metapost.colorconverter()
- -- it no longer pays off to distinguish between outline and fill
- -- (we now have both too, e.g. in arrows)
- local model = colors.model
- if model == "all" then
- return function(cr)
- local n = #cr
- if n == 1 then
- local s = cr[1]
- return format("%.3f g %.3f G",s,s), "0 g 0 G"
- elseif n == 4 then
- local c, m, y, k = cr[1], cr[2], cr[3], cr[4]
- return format("%.3f %.3f %.3f %.3f k %.3f %.3f %.3f %.3f K",c,m,y,k,c,m,y,k), "0 g 0 G"
+-- rather generic pdf, so use this elsewhere too it no longer pays
+-- off to distinguish between outline and fill (we now have both
+-- too, e.g. in arrows)
+
+metapost.reducetogray = true
+
+local models = { }
+
+function models.all(cr)
+ local n = #cr
+ if n == 0 then
+ return checked_color_pair()
+ elseif metapost.reducetogray then
+ if n == 1 then
+ local s = cr[1]
+ return checked_color_pair(format("%.3f g %.3f G",s,s))
+ elseif n == 3 then
+ local r, g, b = cr[1], cr[2], cr[3]
+ if r == g and g == b then
+ return checked_color_pair(format("%.3f g %.3f G",r,r))
else
- local r, g, b = cr[1], cr[2], cr[3]
- return format("%.3f %.3f %.3f rg %.3f %.3f %.3f RG",r,g,b,r,g,b), "0 g 0 G"
+ return checked_color_pair(format("%.3f %.3f %.3f rg %.3f %.3f %.3f RG",r,g,b,r,g,b))
end
- end
- elseif model == "rgb" then
- return function(cr)
- local n = #cr
- if n == 1 then
- local s = cr[1]
- return format("%.3f g %.3f G",s,s), "0 g 0 G"
- end
- local r, g, b
- if n == 4 then
- r, g, b = cmyktorgb(cr[1],cr[2],cr[3],cr[4])
+ else
+ local c, m, y, k = cr[1], cr[2], cr[3], cr[4]
+ if c == m and m == y and y == 0 then
+ k = 1 - k
+ return checked_color_pair(format("%.3f g %.3f G",k,k))
else
- r, g, b = cr[1],cr[2],cr[3]
+ return checked_color_pair(format("%.3f %.3f %.3f %.3f k %.3f %.3f %.3f %.3f K",c,m,y,k,c,m,y,k))
end
- return format("%.3f %.3f %.3f rg %.3f %.3f %.3f RG",r,g,b,r,g,b), "0 g 0 G"
end
- elseif model == "cmyk" then
- return function(cr)
- local n = #cr
- if n == 1 then
- local s = cr[1]
- return format("%.3f g %.3f G",s,s), "0 g 0 G"
+ elseif n == 1 then
+ local s = cr[1]
+ return checked_color_pair(format("%.3f g %.3f G",s,s))
+ elseif n == 3 then
+ local r, g, b = cr[1], cr[2], cr[3]
+ return checked_color_pair(format("%.3f %.3f %.3f rg %.3f %.3f %.3f RG",r,g,b,r,g,b))
+ else
+ local c, m, y, k = cr[1], cr[2], cr[3], cr[4]
+ return checked_color_pair(format("%.3f %.3f %.3f %.3f k %.3f %.3f %.3f %.3f K",c,m,y,k,c,m,y,k))
+ end
+end
+
+function models.rgb(cr)
+ local n = #cr
+ if n == 0 then
+ return checked_color_pair()
+ elseif metapost.reducetogray then
+ if n == 1 then
+ local s = cr[1]
+ checked_color_pair(format("%.3f g %.3f G",s,s))
+ elseif n == 3 then
+ local r, g, b = cr[1], cr[2], cr[3]
+ if r == g and g == b then
+ return checked_color_pair(format("%.3f g %.3f G",r,r))
+ else
+ return checked_color_pair(format("%.3f %.3f %.3f rg %.3f %.3f %.3f RG",r,g,b,r,g,b))
end
- local c, m, y, k
- if n == 4 then
- c, m, y, k = cr[1], cr[2], cr[3], cr[4]
+ else
+ local c, m, y, k = cr[1], cr[2], cr[3], cr[4]
+ if c == m and m == y and y == 0 then
+ k = 1 - k
+ return checked_color_pair(format("%.3f g %.3f G",k,k))
else
- c, m, y, k = rgbtocmyk(cr[1],cr[2],cr[3])
+ local r, g, b = cmyktorgb(c,m,y,k)
+ return checked_color_pair(format("%.3f %.3f %.3f rg %.3f %.3f %.3f RG",r,g,b,r,g,b))
end
- return format("%.3f %.3f %.3f %.3f k %.3f %.3f %.3f %.3f K",c,m,y,k,c,m,y,k), "0 g 0 G"
end
+ elseif n == 1 then
+ local s = cr[1]
+ return checked_color_pair(format("%.3f g %.3f G",s,s))
else
- return function(cr)
- local s
- local n = #cr
- if n == 4 then
- s = cmyktogray(cr[1],cr[2],cr[3],cr[4])
- elseif n == 3 then
- s = rgbtogray(cr[1],cr[2],cr[3])
- else
- s = cr[1]
- end
- return format("%.3f g %.3f G",s,s), "0 g 0 G"
+ local r, g, b
+ if n == 3 then
+ r, g, b = cmyktorgb(cr[1],cr[2],cr[3],cr[4])
+ else
+ r, g, b = cr[1], cr[2], cr[3]
end
+ return checked_color_pair(format("%.3f %.3f %.3f rg %.3f %.3f %.3f RG",r,g,b,r,g,b))
end
end
---~ local cmyk_fill = "%.3f %.3f %.3f %.3f k"
---~ local rgb_fill = "%.3f %.3f %.3f rg"
---~ local gray_fill = "%.3f g"
---~ local reset_fill = "0 g"
-
---~ local cmyk_stroke = "%.3f %.3f %.3f %.3f K"
---~ local rgb_stroke = "%.3f %.3f %.3f RG"
---~ local gray_stroke = "%.3f G"
---~ local reset_stroke = "0 G"
-
-metapost.reducetogray = true
-
-function metapost.colorconverter() -- rather generic pdf, so use this elsewhere too
- -- it no longer pays off to distinguish between outline and fill
- -- (we now have both too, e.g. in arrows)
- local model = colors.model
- local reduce = metapost.reducetogray
- if model == "all" then
- return function(cr)
- local n = #cr
- if reduce then
- if n == 1 then
- local s = cr[1]
- return format("%.3f g %.3f G",s,s), "0 g 0 G"
- elseif n == 3 then
- local r, g, b = cr[1], cr[2], cr[3]
- if r == g and g == b then
- return format("%.3f g %.3f G",r,r), "0 g 0 G"
- else
- return format("%.3f %.3f %.3f rg %.3f %.3f %.3f RG",r,g,b,r,g,b), "0 g 0 G"
- end
- else
- local c, m, y, k = cr[1], cr[2], cr[3], cr[4]
- if c == m and m == y and y == 0 then
- k = 1 - k
- return format("%.3f g %.3f G",k,k), "0 g 0 G"
- else
- return format("%.3f %.3f %.3f %.3f k %.3f %.3f %.3f %.3f K",c,m,y,k,c,m,y,k), "0 g 0 G"
- end
- end
- elseif n == 1 then
- local s = cr[1]
- return format("%.3f g %.3f G",s,s), "0 g 0 G"
- elseif n == 3 then
- local r, g, b = cr[1], cr[2], cr[3]
- return format("%.3f %.3f %.3f rg %.3f %.3f %.3f RG",r,g,b,r,g,b), "0 g 0 G"
+function models.cmyk(cr)
+ local n = #cr
+ if n == 0 then
+ return checked_color_pair()
+ elseif metapost.reducetogray then
+ if n == 1 then
+ local s = cr[1]
+ return checked_color_pair(format("%.3f g %.3f G",s,s))
+ elseif n == 3 then
+ local r, g, b = cr[1], cr[2], cr[3]
+ if r == g and g == b then
+ return checked_color_pair(format("%.3f g %.3f G",r,r))
else
- local c, m, y, k = cr[1], cr[2], cr[3], cr[4]
- return format("%.3f %.3f %.3f %.3f k %.3f %.3f %.3f %.3f K",c,m,y,k,c,m,y,k), "0 g 0 G"
+ local c, m, y, k = rgbtocmyk(r,g,b)
+ return checked_color_pair(format("%.3f %.3f %.3f %.3f k %.3f %.3f %.3f %.3f K",c,m,y,k,c,m,y,k))
end
- end
- elseif model == "rgb" then
- return function(cr)
- local n = #cr
- if reduce then
- if n == 1 then
- local s = cr[1]
- return format("%.3f g %.3f G",s,s), "0 g 0 G"
- elseif n == 3 then
- local r, g, b = cr[1], cr[2], cr[3]
- if r == g and g == b then
- return format("%.3f g %.3f G",r,r), "0 g 0 G"
- else
- return format("%.3f %.3f %.3f rg %.3f %.3f %.3f RG",r,g,b,r,g,b), "0 g 0 G"
- end
- else
- local c, m, y, k = cr[1], cr[2], cr[3], cr[4]
- if c == m and m == y and y == 0 then
- k = 1 - k
- return format("%.3f g %.3f G",k,k), "0 g 0 G"
- else
- local r, g, b = cmyktorgb(c,m,y,k)
- return format("%.3f %.3f %.3f rg %.3f %.3f %.3f RG",r,g,b,r,g,b), "0 g 0 G"
- end
- end
- elseif n == 1 then
- local s = cr[1]
- return format("%.3f g %.3f G",s,s), "0 g 0 G"
- else
- local r, g, b
- if n == 3 then
- r, g, b = cmyktorgb(cr[1],cr[2],cr[3],cr[4])
- else
- r, g, b = cr[1], cr[2], cr[3]
- end
- return format("%.3f %.3f %.3f rg %.3f %.3f %.3f RG",r,g,b,r,g,b), "0 g 0 G"
- end
- end
- elseif model == "cmyk" then
- return function(cr)
- local n = #cr
- if reduce then
- if n == 1 then
- local s = cr[1]
- return format("%.3f g %.3f G",s,s), "0 g 0 G"
- elseif n == 3 then
- local r, g, b = cr[1], cr[2], cr[3]
- if r == g and g == b then
- return format("%.3f g %.3f G",r,r), "0 g 0 G"
- else
- local c, m, y, k = rgbtocmyk(r,g,b)
- return format("%.3f %.3f %.3f %.3f k %.3f %.3f %.3f %.3f K",c,m,y,k,c,m,y,k), "0 g 0 G"
- end
- else
- local c, m, y, k = cr[1], cr[2], cr[3], cr[4]
- if c == m and m == y and y == 0 then
- k = 1 - k
- return format("%.3f g %.3f G",k,k), "0 g 0 G"
- else
- return format("%.3f %.3f %.3f %.3f k %.3f %.3f %.3f %.3f K",c,m,y,k,c,m,y,k), "0 g 0 G"
- end
- end
- elseif n == 1 then
- local s = cr[1]
- return format("%.3f g %.3f G",s,s), "0 g 0 G"
+ else
+ local c, m, y, k = cr[1], cr[2], cr[3], cr[4]
+ if c == m and m == y and y == 0 then
+ k = 1 - k
+ return checked_color_pair(format("%.3f g %.3f G",k,k))
else
- local c, m, y, k
- if n == 3 then
- c, m, y, k = rgbtocmyk(cr[1],cr[2],cr[3])
- else
- c, m, y, k = cr[1], cr[2], cr[3], cr[4]
- end
- return format("%.3f %.3f %.3f %.3f k %.3f %.3f %.3f %.3f K",c,m,y,k,c,m,y,k), "0 g 0 G"
+ return checked_color_pair(format("%.3f %.3f %.3f %.3f k %.3f %.3f %.3f %.3f K",c,m,y,k,c,m,y,k))
end
end
+ elseif n == 1 then
+ local s = cr[1]
+ return checked_color_pair(format("%.3f g %.3f G",s,s))
else
- return function(cr)
- local n, s = #cr, 0
- if n == 4 then
- s = cmyktogray(cr[1],cr[2],cr[3],cr[4])
- elseif n == 3 then
- s = rgbtogray(cr[1],cr[2],cr[3])
- else
- s = cr[1]
- end
- return format("%.3f g %.3f G",s,s), "0 g 0 G"
+ local c, m, y, k
+ if n == 3 then
+ c, m, y, k = rgbtocmyk(cr[1],cr[2],cr[3])
+ else
+ c, m, y, k = cr[1], cr[2], cr[3], cr[4]
end
+ return checked_color_pair(format("%.3f %.3f %.3f %.3f k %.3f %.3f %.3f %.3f K",c,m,y,k,c,m,y,k))
end
end
+function models.gray(cr)
+ local n, s = #cr, 0
+ if n == 0 then
+ return checked_color_pair()
+ elseif n == 4 then
+ s = cmyktogray(cr[1],cr[2],cr[3],cr[4])
+ elseif n == 3 then
+ s = rgbtogray(cr[1],cr[2],cr[3])
+ else
+ s = cr[1]
+ end
+ return checked_color_pair(format("%.3f g %.3f G",s,s))
+end
+
+function metapost.colorconverter()
+ return models[colors.model] or gray
+end
+
do
local P, S, V, Cs = lpeg.P, lpeg.S, lpeg.V, lpeg.Cs
- local btex = P("btex")
- local etex = P(" etex")
- local vtex = P("verbatimtex")
- local ttex = P("textext")
- local gtex = P("graphictext")
- local spacing = S(" \n\r\t\v")^0
- local dquote = P('"')
+ local btex = P("btex")
+ local etex = P(" etex")
+ local vtex = P("verbatimtex")
+ local ttex = P("textext")
+ local gtex = P("graphictext")
+ local multipass = P("forcemultipass")
+ local spacing = S(" \n\r\t\v")^0
+ local dquote = P('"')
- local found = false
+ local found, forced = false, false
local function convert(str)
found = true
@@ -621,11 +654,15 @@ do
local function register()
found = true
end
+ local function force()
+ forced = true
+ end
local parser = P {
- [1] = Cs((V(2)/register + V(3)/convert + 1)^0),
+ [1] = Cs((V(2)/register + V(3)/convert + V(4)/force + 1)^0),
[2] = ttex + gtex,
[3] = (btex + vtex) * spacing * Cs((dquote/ditto + (1 - etex))^0) * etex,
+ [4] = multipass, -- experimental, only for testing
}
-- currently a a one-liner produces less code
@@ -633,29 +670,31 @@ do
local parser = Cs(((ttex + gtex)/register + ((btex + vtex) * spacing * Cs((dquote/ditto + (1 - etex))^0) * etex)/convert + 1)^0)
function metapost.check_texts(str)
- found = false
- return parser:match(str), found
+ found, forced = false, false
+ return parser:match(str), found, forced
end
end
-local factor = 65536*(7200/7227)
+local factor = 65536*(7227/7200)
-function metapost.edefsxsy(wd,ht,dp) -- helper for text
- commands.edef("sx",(wd ~= 0 and 1/( wd /(factor))) or 0)
- commands.edef("sy",(wd ~= 0 and 1/((ht+dp)/(factor))) or 0)
+function metapost.edefsxsy(wd,ht,dp) -- helper for figure
+ local hd = ht + dp
+ commands.edef("sx",(wd ~= 0 and factor/wd) or 0)
+ commands.edef("sy",(hd ~= 0 and factor/hd) or 0)
end
function metapost.sxsy(wd,ht,dp) -- helper for text
- return (wd ~= 0 and 1/(wd/(factor))) or 0, (wd ~= 0 and 1/((ht+dp)/(factor))) or 0
+ local hd = ht + dp
+ return (wd ~= 0 and factor/wd) or 0, (hd ~= 0 and factor/hd) or 0
end
function metapost.text_texts_data()
local t, n = { }, 0
for i = metapost.first_box, metapost.last_box do
n = n + 1
- if metapost.trace_texttexts then
- print("metapost", format("passed data: order %s, box %s",n,i))
+ if trace_textexts then
+ logs.report("metapost","passed data: order %s, box %s",n,i)
end
if tex.box[i] then
t[#t+1] = format("_tt_w_[%i]:=%f;_tt_h_[%i]:=%f;_tt_d_[%i]:=%f;", n,tex.wd[i]/factor, n,tex.ht[i]/factor, n,tex.dp[i]/factor)
@@ -670,106 +709,80 @@ metapost.intermediate = metapost.intermediate or {}
metapost.intermediate.actions = metapost.intermediate.actions or {}
metapost.intermediate.needed = false
---~ function metapost.graphic_base_pass(mpsformat,str,preamble)
---~ local prepared, done = metapost.check_texts(str)
---~ metapost.textext_current = metapost.first_box
---~ metapost.intermediate.needed = false
---~ if done then
---~ current_format, current_graphic = mpsformat, prepared
---~ metapost.process(mpsformat, {
---~ preamble or "",
---~ "beginfig(1); ",
---~ "_trial_run_ := true ;",
---~ prepared,
---~ "endfig ;"
---~ }, true ) -- true means: trialrun
---~ if metapost.intermediate.needed then
---~ for _, action in pairs(metapost.intermediate.actions) do
---~ action()
---~ end
---~ end
---~ sprint(tex.ctxcatcodes,"\\ctxlua{metapost.graphic_extra_pass()}")
---~ else
---~ metapost.process(mpsformat, {
---~ preamble or "",
---~ "beginfig(1); ",
---~ "_trial_run_ := false ;",
---~ "resettextexts;",
---~ str,
---~ "endfig ;"
---~ } )
---~ end
---~ end
-
metapost.method = 1 -- 1:dumb 2:clever
-function metapost.graphic_base_pass(mpsformat,str,preamble)
- local done_1, done_2
- str, done_1 = metapost.check_texts(str)
+function metapost.graphic_base_pass(mpsformat,str,preamble,askedfig)
+ local nofig = (askedfig and "") or false
+ local done_1, done_2, forced_1, forced_2
+ str, done_1, forced_1 = metapost.check_texts(str)
if preamble then
- preamble, done_2 = metapost.check_texts(preamble)
+ preamble, done_2, forced_2 = metapost.check_texts(preamble)
else
- preamble, done_2 = "", false
+ preamble, done_2, forced_2 = "", false, false
end
metapost.textext_current = metapost.first_box
metapost.intermediate.needed = false
metapost.multipass = false -- no needed here
current_format, current_graphic = mpsformat, str
if metapost.method == 1 or (metapost.method == 2 and (done_1 or done_2)) then
+ -- first true means: trialrun, second true means: avoid extra run if no multipass
local flushed = metapost.process(mpsformat, {
preamble,
- "beginfig(1); ",
- "_trial_run_ := true ;",
---~ "resettextexts;",
+ nofig or "beginfig(1); ",
+ "if unknown _trial_run_ : boolean _trial_run_ fi ; _trial_run_ := true ;",
str,
- "endfig ;"
- }, true, nil, true ) -- true means: trialrun, true means: avoid extra run if no multipass
+ nofig or "endfig ;"
+ -- }, true, nil, true )
+ }, true, nil, not (forced_1 or forced_2), false, askedfig)
if metapost.intermediate.needed then
for _, action in pairs(metapost.intermediate.actions) do
action()
end
end
- if not flushed then
- sprint(tex.ctxcatcodes,"\\ctxlua{metapost.graphic_extra_pass()}")
+ if not flushed or not metapost.optimize then
+ -- tricky, we can only ask once for objects and therefore
+ -- we really need a second run when not optimized
+ sprint(ctxcatcodes,format("\\ctxlua{metapost.graphic_extra_pass(%s)}",askedfig or "false"))
end
else
metapost.process(mpsformat, {
preamble or "",
- "beginfig(1); ",
+ nofig or "beginfig(1); ",
"_trial_run_ := false ;",
---~ "resettextexts;",
str,
- "endfig ;"
- } )
+ nofig or "endfig ;"
+ }, false, nil, false, false, askedfig )
end
+ -- here we could free the textext boxes
+ metapost.free_boxes()
end
-function metapost.graphic_extra_pass()
+function metapost.graphic_extra_pass(askedfig)
+ local nofig = (askedfig and "") or false
metapost.textext_current = metapost.first_box
metapost.process(current_format, {
- "beginfig(0); ",
+ nofig or "beginfig(1); ",
"_trial_run_ := false ;",
---~ "resettextexts;",
concat(metapost.text_texts_data()," ;\n"),
current_graphic,
- "endfig ;"
- })
+ nofig or "endfig ;"
+ }, false, nil, false, true, askedfig )
end
function metapost.getclippath(data)
local mpx = metapost.format("metafun")
if mpx and data then
- input.starttiming(metapost)
- input.starttiming(metapost.exectime)
+ starttiming(metapost)
+ starttiming(metapost.exectime)
local result = mpx:execute(format("beginfig(1);%s;endfig;",data))
- input.stoptiming(metapost.exectime)
+ stoptiming(metapost.exectime)
if result.status > 0 then
print("error", result.status, result.error or result.term or result.log)
result = ""
else
result = metapost.filterclippath(result)
end
- input.stoptiming(metapost)
+ stoptiming(metapost)
sprint(result)
end
end
@@ -792,41 +805,43 @@ do -- only used in graphictexts
end
-do -- not that beautiful but ok, we could save a md5 hash in the tui file !
+local graphics = { }
+local start = [[\starttext]]
+local preamble = [[\long\def\MPLIBgraphictext#1{\startTEXpage[scale=10000]#1\stopTEXpage}]]
+local stop = [[\stoptext]]
- local graphics = { }
- local start = [[\starttext]]
- local preamble = [[\long\def\MPLIBgraphictext#1{\startTEXpage[scale=10000]#1\stopTEXpage}]]
- local stop = [[\stoptext]]
+function metapost.specials.gt(specification,object) -- number, so that we can reorder
+ graphics[#graphics+1] = format("\\MPLIBgraphictext{%s}",specification)
+ metapost.intermediate.needed = true
+ metapost.multipass = true
+ return { }, nil, nil, nil
+end
- function metapost.specials.gt(specification,object) -- number, so that we can reorder
- graphics[#graphics+1] = format("\\MPLIBgraphictext{%s}",specification)
- metapost.intermediate.needed = true
- metapost.multipass = true
- return { }, nil, nil, nil
- end
-
- function metapost.intermediate.actions.makempy()
- if #graphics > 0 then
- local mpofile = tex.jobname .. "-mp"
- local mpyfile = file.replacesuffix(mpofile,"mpy")
- local pdffile = file.replacesuffix(mpofile,"pdf")
- local texfile = file.replacesuffix(mpofile,"tex")
- io.savedata(texfile, { start, preamble, metapost.tex.get(), concat(graphics,"\n"), stop }, "\n")
- os.execute(format("context --once %s", texfile))
- if io.exists(pdffile) then
- os.execute(format("pstoedit -ssp -dt -f mpost %s %s", pdffile, mpyfile))
- local result = { }
- if io.exists(mpyfile) then
- local data = io.loaddata(mpyfile)
- for figure in data:gmatch("beginfig(.-)endfig") do
- result[#result+1] = format("begingraphictextfig%sendgraphictextfig ;\n", figure)
- end
- io.savedata(mpyfile,concat(result,""))
+function metapost.intermediate.actions.makempy()
+ if #graphics > 0 then
+ local externals = metapost.externals
+ externals.n = externals.n + 1
+ starttiming(externals)
+ local mpofile = tex.jobname .. "-mpgraph"
+ local mpyfile = file.replacesuffix(mpofile,"mpy")
+ local pdffile = file.replacesuffix(mpofile,"pdf")
+ local texfile = file.replacesuffix(mpofile,"tex")
+ io.savedata(texfile, { start, preamble, metapost.tex.get(), concat(graphics,"\n"), stop }, "\n")
+ local command = format("context --once %s %s", (tex.interactionmode == 0 and "--batchmode") or "", texfile)
+ os.execute(command)
+ if io.exists(pdffile) then
+ command = format("pstoedit -ssp -dt -f mpost %s %s", pdffile, mpyfile)
+ os.execute(command)
+ local result = { }
+ if io.exists(mpyfile) then
+ local data = io.loaddata(mpyfile)
+ for figure in gmatch(data,"beginfig(.-)endfig") do
+ result[#result+1] = format("begingraphictextfig%sendgraphictextfig ;\n", figure)
end
+ io.savedata(mpyfile,concat(result,""))
end
- graphics = { }
end
+ stoptiming(externals)
+ graphics = { } -- ?
end
-
end
diff --git a/Master/texmf-dist/tex/context/base/mlib-pps.mkiv b/Master/texmf-dist/tex/context/base/mlib-pps.mkiv
new file mode 100644
index 00000000000..83880994b0e
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mlib-pps.mkiv
@@ -0,0 +1,47 @@
+%D \module
+%D [ file=mlib-pps,
+%D version=2008.03.25,
+%D title=\METAPOST\ Integrated Graphics,
+%D subtitle=Basics,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA]
+%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
+
+\registerctxluafile{mlib-pps}{1.001}
+
+% this will move !
+
+\def\MPLIBfigure#1#2#3#4#5#6#7% todo: move Q q to lua
+ {\setbox\scratchbox\hbox{\externalfigure[#7]}%
+ \ctxlua{metapost.edefsxsy(\number\wd\scratchbox,\number\ht\scratchbox,0)}%
+ \pdfliteral direct{q #1 #2 #3 #4 #5 #6 cm}% no direct
+ \vbox to \zeropoint{\vss\hbox to \zeropoint{\scale[sx=\sx,sy=\sy]{\box\scratchbox}\hss}}%
+ \pdfliteral direct{Q}}
+
+\def\MPLIBsettext#1% #2%
+ {\global\setbox#1\hbox}% {#2}}
+
+\def\MPLIBfreetext#1%
+ {\global\setbox#1\emptybox}
+
+\def\MPLIBgettextscaled#1#2#3% why a copy
+ {\vbox to \zeropoint{\vss\hbox to \zeropoint{\black\scale[sx=#2,sy=#3]{\raise\dp#1\copy#1}\hss}}}
+
+\def\MPLIBallocate#1%
+ {\newbox\MPLIBfirst
+ \dorecurse{\numexpr#1-1\relax}{\let\MPLIBlast\relax\newbox\MPLIBlast}%
+ \MPLIBregister}
+
+\def\MPLIBregister % after allocate!
+ {\ctxlua{metapost.first_box, metapost.last_box = \number\MPLIBfirst, \number\MPLIBlast}}
+
+\def\MPLIBgraphictext#1%
+ {\startTEXpage[\c!scale=10000]#1\stopTEXpage}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mlib-pps.tex b/Master/texmf-dist/tex/context/base/mlib-pps.tex
deleted file mode 100644
index df325c316c6..00000000000
--- a/Master/texmf-dist/tex/context/base/mlib-pps.tex
+++ /dev/null
@@ -1,61 +0,0 @@
-%D \module
-%D [ file=mlib-pps,
-%D version=2008.03.25,
-%D title=\METAPOST\ Integrated Graphics,
-%D subtitle=Basics,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright=PRAGMA]
-%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
-
-\registerctxluafile{mlib-pps}{1.001}
-
-\def\MPLIBcircularshade#1#2#3#4#5#6#7% nr domain color-a color-b ? colorspace oordinates
- {\immediate\pdfobj{<</FunctionType 2 /Domain [#2] /C0 [#3] /C1 [#4] /N #5>>}%
- \immediate\pdfobj{<</ShadingType 3 /ColorSpace /#6 /Function \the\pdflastobj\space 0 R /Coords [#7] /Extend [true true]>>}%
- \appendtoPDFdocumentshades{/MpSh#1 \the\pdflastobj\space0 R }}
-
-\def\MPLIBlinearshade#1#2#3#4#5#6#7% nr domain color-a color-b ? colorspace oordinates
- {\immediate\pdfobj{<</FunctionType 2 /Domain [#2] /C0 [#3] /C1 [#4] /N #5>>}%
- \immediate\pdfobj{<</ShadingType 2 /ColorSpace /#6 /Function \the\pdflastobj\space 0 R /Coords [#7] /Extend [true true]>>}%
- \appendtoPDFdocumentshades{/MpSh#1 \the\pdflastobj\space0 R }}
-
-\def\MPLIBfigure#1#2#3#4#5#6#7% todo: move Q q to lua
- {\setbox\scratchbox\hbox{\externalfigure[#7]}%
- \ctxlua{metapost.edefsxsy(\number\wd\scratchbox,\number\ht\scratchbox,0)}%
- \pdfliteral direct{q #1 #2 #3 #4 #5 #6 cm}% no direct
- \vbox to \zeropoint{\vss\hbox to \zeropoint{\scale[sx=\sx,sy=\sy]{\box\scratchbox}\hss}}%
- \pdfliteral direct{Q}}
-
-\def\MPLIBsettext#1% #2%
- {\global\setbox#1\hbox}% {#2}}
-
-% \def\MPLIBgettext#1#2#3#4#5#6#7% we can also use this for the figure and pass sx/sy
-% {\ctxlua{metapost.edefsxsy(\number\wd#7,\number\ht#7,\number\dp#7)}%
-% \pdfliteral{q #1 #2 #3 #4 #5 #6 cm}%
-% \vbox to \zeropoint{\vss\hbox to \zeropoint{\scale[sx=\sx,sy=\sy]{\raise\dp#7\box#7}\hss}}%
-% \pdfliteral{Q}}
-
-\def\MPLIBgettextscaled#1#2#3%
- {\vbox to \zeropoint{\vss\hbox to \zeropoint{\scale[sx=#2,sy=#3]{\raise\dp#1\box#1}\hss}}}
-
-\def\MPLIBallocate#1%
- {\newbox\MPLIBfirst
- \dorecurse{\numexpr#1-1\relax}{\newbox\MPLIBlast}%
- \MPLIBregister}
-
-\def\MPLIBregister
- {\ctxlua{metapost.first_box, metapost.last_box = \number\MPLIBfirst, \number\MPLIBlast}}
-
-\appendtoks \MPLIBallocate{500}\to \everydump
-\appendtoks \MPLIBregister \to \everyjob
-
-\def\MPLIBgraphictext#1%
- {\startTEXpage[scale=10000]#1\stopTEXpage}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mlib-run.lua b/Master/texmf-dist/tex/context/base/mlib-run.lua
index 30cd01c736d..7351c332fb4 100644
--- a/Master/texmf-dist/tex/context/base/mlib-run.lua
+++ b/Master/texmf-dist/tex/context/base/mlib-run.lua
@@ -23,35 +23,40 @@ if not modules then modules = { } end modules ['mlib-run'] = {
<p>The directional helpers and pen analysis are more or less translated from the
<l n='c'/> code. It really helps that Taco know that source so well. Taco and I spent
quite some time on speeding up the <l n='lua'/> and <l n='c'/> code. There is not
-much to gain, especially if on ekeeps in mind that when integrated in <l n='tex'/>
+much to gain, especially if one keeps in mind that when integrated in <l n='tex'/>
only a part of the time is spent in <l n='metapost'/>. Of course an integrated
approach is way faster than an external <l n='metapost'/> and processing time
nears zero.</p>
--ldx]]--
+local trace_graphics = false trackers.register("metapost.graphics", function(v) trace_graphics = v end)
+
local format = string.format
+local starttiming, stoptiming = statistics.starttiming, statistics.stoptiming
+
+
metapost = metapost or { }
+metapost.showlog = false
+metapost.lastlog = ""
+
+function metapost.resetlastlog()
+ metapost.lastlog = ""
+end
+
local function finder(name, mode, ftype)
if mode=="w" then
return name
- elseif input.aux.qualified_path(name) then
+ elseif file.is_qualified_path(name) then
return name
else
- return input.find_file((texmf and texmf.instance) or instance,name,ftype)
+ return resolvers.find_file(name,ftype)
end
end
metapost.finder = finder
---~ statistics = {
---~ ["hash_size"]=1774,
---~ ["main_memory"]=50237,
---~ ["max_in_open"]=5,
---~ ["param_size"]=4,
---~ }
-
metapost.parameters = {
hash_size = 100000,
main_memory = 2000000,
@@ -61,103 +66,136 @@ metapost.parameters = {
metapost.exectime = metapost.exectime or { } -- hack
+local preamble = [[
+boolean mplib; string mp_parent_version;
+mplib := true;
+mp_parent_version := "%s";
+input %s ; dump ;
+]]
+
function metapost.make(name, target, version)
- input.starttiming(mplib)
+ starttiming(mplib)
target = file.replacesuffix(target or name, "mem")
local mpx = mplib.new ( table.merged (
metapost.parameters,
{
ini_version = true,
find_file = finder,
- job_name = file.stripsuffix(target),
+ job_name = file.removesuffix(target),
}
) )
if mpx then
- input.starttiming(metapost.exectime)
- local result = mpx:execute(format('\\ ; boolean mplib ; mplib := true ; string mp_parent_version ; mp_parent_version := "%s" ; show mp_parent_version ; input %s ; dump ;', version or "unknown", name))
- input.stoptiming(metapost.exectime)
- if mpx then
- mpx:finish()
- end
+ starttiming(metapost.exectime)
+ local result = mpx:execute(format(preamble,version or "unknown",name))
+ stoptiming(metapost.exectime)
+ mpx:finish()
end
- input.stoptiming(mplib)
- return mpx -- mpx = nil will free memory
+ stoptiming(mplib)
end
function metapost.load(name)
- input.starttiming(mplib)
+ starttiming(mplib)
local mpx = mplib.new ( table.merged (
metapost.parameters,
{
+ ini_version = false,
mem_name = file.replacesuffix(name,"mem"),
find_file = finder,
+ -- job_name = "mplib",
}
) )
- if mpx then
- input.starttiming(metapost.exectime)
- mpx:execute("\\")
- input.stoptiming(metapost.exectime)
+ local result
+ if not mpx then
+ result = { status = 99, error = "out of memory"}
end
- input.stoptiming(mplib)
- return mpx
+ stoptiming(mplib)
+ return mpx, result
end
function metapost.unload(mpx)
- input.starttiming(mplib)
+ starttiming(mplib)
if mpx then
mpx:finish()
end
- input.stoptiming(mplib)
+ stoptiming(mplib)
end
-function metapost.checkformat(mpsinput, mpsformat)
+function metapost.reporterror(result)
+ if not result then
+ metapost.report("mp error: no result object returned")
+ elseif result.status > 0 then
+ local t, e, l = result.term, result.error, result.log
+ if t and t ~= "" then
+ metapost.report("mp terminal: %s",t)
+ end
+ if e then
+ metapost.report("mp error: %s",(e=="" and "?") or e)
+ end
+ if not t and not e and l then
+ metapost.lastlog = metapost.lastlog .. "\n" .. l
+ metapost.report("mp log: %s",l)
+ else
+ metapost.report("mp error: unknown, no error, terminal or log messages")
+ end
+ else
+ return false
+ end
+ return true
+end
+
+function metapost.checkformat(mpsinput, mpsformat, dirname)
mpsinput = file.addsuffix(mpsinput or "metafun", "mp")
- mpsformat = file.stripsuffix(file.basename(mpsformat or texconfig.formatname or tex.formatname or mpsinput))
- local mpsbase = file.stripsuffix(file.basename(mpsinput))
+ mpsformat = file.removesuffix(file.basename(mpsformat or texconfig.formatname or (tex and tex.formatname) or mpsinput))
+ local mpsbase = file.removesuffix(file.basename(mpsinput))
if mpsbase ~= mpsformat then
mpsformat = mpsformat .. "-" .. mpsbase
end
mpsformat = file.addsuffix(mpsformat, "mem")
- local pth = file.dirname(texconfig.formatname or "")
+ local pth = dirname or file.dirname(texconfig.formatname or "")
if pth ~= "" then
mpsformat = file.join(pth,mpsformat)
end
local the_version = environment.version or "unset version"
- if io.exists(mpsformat) then
- commands.writestatus("mplib", format("loading format: %s, name: %s", mpsinput, mpsformat))
- local mpx = metapost.load(mpsformat)
+ if lfs.isfile(mpsformat) then
+ commands.writestatus("mplib","loading '%s' from '%s'", mpsinput, mpsformat)
+ local mpx, result = metapost.load(mpsformat)
if mpx then
- local result = mpx:execute(format("show mp_parent_version ;"))
- local version = result.log:match(">> *(.-)[\n\r]") or "unknown"
- version = version:gsub("[\'\"]","")
- if version ~= the_version then
- commands.writestatus("mplib", format("version mismatch: %s <> %s", version or "unknown", the_version))
+ local result = mpx:execute("show mp_parent_version ;")
+ if not result.log then
+ metapost.reporterror(result)
else
- return mpx
+ local version = result.log:match(">> *(.-)[\n\r]") or "unknown"
+ version = version:gsub("[\'\"]","")
+ if version ~= the_version then
+ commands.writestatus("mplib","version mismatch: %s <> %s", version or "unknown", the_version)
+ else
+ return mpx
+ end
end
+ else
+ commands.writestatus("mplib","error in loading '%s' from '%s'", mpsinput, mpsformat)
+ metapost.reporterror(result)
end
end
- commands.writestatus("mplib", format("making format: %s, name: %s", mpsinput, mpsformat))
+ commands.writestatus("mplib","making '%s' into '%s'", mpsinput, mpsformat)
metapost.make(mpsinput,mpsformat,the_version) -- somehow return ... fails here
- if io.exists(mpsformat) then
- commands.writestatus("mplib", format("loading format: %s, name: %s", mpsinput, mpsformat))
+ if lfs.isfile(mpsformat) then
+ commands.writestatus("mplib","loading '%s' from '%s'", mpsinput, mpsformat)
return metapost.load(mpsformat)
else
- commands.writestatus("mplib", format("problems with format: %s, name: %s", mpsinput, mpsformat))
+ commands.writestatus("mplib","problems with '%s' from '%s'", mpsinput, mpsformat)
end
end
---~ if environment.initex then
---~ metapost.unload(metapost.checkformat("metafun"))
---~ end
+local mpxformats = { }
-local mpxformats = {}
-
-function metapost.format(name)
- local mpx = mpxformats[name]
+function metapost.format(instance,name)
+ name = name or instance
+ local mpx = mpxformats[instance]
if not mpx then
+ commands.writestatus("mplib","initializing instance '%s' using format '%s'",instance,name)
mpx = metapost.checkformat(name)
- mpxformats[name] = mpx
+ mpxformats[instance] = mpx
end
return mpx
end
@@ -171,80 +209,170 @@ function metapost.reset(mpx)
mpxformats[mpx] = nil
end
else
- for name=1,#mpxformats do
- if mpxformats[name] == mpx then
+ for name, instance in pairs(mpxformats) do
+ if instance == mpx then
+ mpx:finish()
mpxformats[name] = nil
break
end
end
- mpx:finish()
end
end
-metapost.showlog = false
+local mp_inp, mp_log, mp_tag = { }, { }, 0
-function metapost.process(mpx, data, trialrun, flusher, multipass)
+function metapost.process(mpx, data, trialrun, flusher, multipass, isextrapass, askedfig)
local converted, result = false, {}
if type(mpx) == "string" then
mpx = metapost.format(mpx) -- goody
end
if mpx and data then
- input.starttiming(metapost)
+ starttiming(metapost)
+ if trace_graphics then
+ if not mp_inp[mpx] then
+ mp_tag = mp_tag + 1
+ mp_inp[mpx] = io.open(format("%s-mplib-run-%03i.mp", tex.jobname,mp_tag),"w")
+ mp_log[mpx] = io.open(format("%s-mplib-run-%03i.log",tex.jobname,mp_tag),"w")
+ end
+ local banner = format("%% begin graphic: n=%s, trialrun=%s, multipass=%s, isextrapass=%s\n\n", metapost.n, tostring(trialrun), tostring(multipass), tostring(isextrapass))
+ mp_inp[mpx]:write(banner)
+ mp_log[mpx]:write(banner)
+ end
if type(data) == "table" then
for i=1,#data do
local d = data[i]
if d then
- input.starttiming(metapost.exectime)
+ if trace_graphics then
+ mp_inp[mpx]:write(d)
+ end
+ starttiming(metapost.exectime)
result = mpx:execute(d)
- input.stoptiming(metapost.exectime)
- if not result then
- metapost.report("mp error", "no result object returned")
- elseif result.status > 0 then
- local t, e, l = result.term, result.error, result.log
- if t then
- metapost.report("mp terminal",t)
+ stoptiming(metapost.exectime)
+ if trace_graphics and result then
+ local str = result.log or result.error
+ if str and str ~= "" then
+ mp_log[mpx]:write(str)
end
- if e then
- metapost.report("mp error",e)
+ end
+ if not metapost.reporterror(result) then
+ if metapost.showlog then
+ local str = (result.term ~= "" and result.term) or "no terminal output"
+ if not str:is_empty() then
+ metapost.lastlog = metapost.lastlog .. "\n" .. str
+ metapost.report("mp log: %s",str)
+ end
end
- if not t and not e and l then
- metapost.report("mp log",l)
- else
- metapost.report("mp error","unknown, no error, terminal or log messages")
+ if result.fig then
+ converted = metapost.convert(result, trialrun, flusher, multipass, askedfig)
end
- elseif metapost.showlog then
- metapost.report("mp info",result.term or "no terminal output")
- elseif result.fig then
- converted = metapost.convert(result, trialrun, flusher, multipass)
end
else
- metapost.report("mp error", "invalid graphic component " .. i)
+ metapost.report("mp error: invalid graphic component %s",i)
end
end
else
- input.starttiming(metapost.exectime)
- result = mpx:execute(data)
- input.stoptiming(metapost.exectime)
+ if trace_graphics then
+ mp_inp:write(data)
+ end
+ starttiming(metapost.exectime)
+ result = mpx[mpx]:execute(data)
+ stoptiming(metapost.exectime)
+ if trace_graphics and result then
+ local str = result.log or result.error
+ if str and str ~= "" then
+ mp_log[mpx]:write(str)
+ end
+ end
-- todo: error message
if not result then
- metapost.report("error", "no result object returned")
+ metapost.report("mp error: no result object returned")
elseif result.status > 0 then
- metapost.report("error",(result.term or "no-term") .. "\n" .. (result.error or "no-error"))
- elseif metapost.showlog then
- metapost.report("info",result.term or "no-term")
- elseif result.fig then
- converted = metapost.convert(result, trialrun, flusher, multipass)
+ metapost.report("mp error: %s",(result.term or "no-term") .. "\n" .. (result.error or "no-error"))
+ else
+ if metapost.showlog then
+ metapost.lastlog = metapost.lastlog .. "\n" .. result.term
+ metapost.report("mp info: %s",result.term or "no-term")
+ end
+ if result.fig then
+ converted = metapost.convert(result, trialrun, flusher, multipass, askedfig)
+ end
end
end
- input.stoptiming(metapost)
+ if trace_graphics then
+ local banner = "\n% end graphic\n\n"
+ mp_inp[mpx]:write(banner)
+ mp_log[mpx]:write(banner)
+ end
+ stoptiming(metapost)
end
return converted, result
end
-function metapost.convert(result, trialrun, multipass)
- metapost.report('Warning','no converter set')
+function metapost.convert()
+ metapost.report('mp warning: no converter set')
end
function metapost.report(...)
- logs.report(...)
+ logs.report("mplib",...)
+end
+
+-- handy
+
+function metapost.directrun(formatname,filename,outputformat,astable,mpdata)
+ local fullname = file.addsuffix(filename,"mp")
+ local data = mpdata or io.loaddata(fullname)
+ if outputformat ~= "svg" then
+ outputformat = "mps"
+ end
+ if not data then
+ logs.simple("unknown file '%s'",filename or "?")
+ else
+ local mpx = metapost.checkformat(formatname,formatname,caches.setpath("formats"))
+ if not mpx then
+ logs.simple("unknown format '%s'",formatname or "?")
+ else
+ logs.simple("processing '%s'",(mpdata and (filename or "data")) or fullname)
+ local result = mpx:execute(data)
+ if not result then
+ logs.simple("error: no result object returned")
+ elseif result.status > 0 then
+ logs.simple("error: %s",(result.term or "no-term") .. "\n" .. (result.error or "no-error"))
+ else
+ if metapost.showlog then
+ metapost.lastlog = metapost.lastlog .. "\n" .. result.term
+ logs.simple("info: %s",result.term or "no-term")
+ end
+ local figures = result.fig
+ if figures then
+ local sorted = table.sortedkeys(figures)
+ if astable then
+ local result = { }
+ logs.simple("storing %s figures in table",#sorted)
+ for k, v in ipairs(sorted) do
+ if outputformat == "mps" then
+ result[v] = figures[v]:postscript()
+ else
+ result[v] = figures[v]:svg() -- (3) for prologues
+ end
+ end
+ return result
+ else
+ local basename = file.removesuffix(file.basename(filename))
+ for k, v in ipairs(sorted) do
+ local output
+ if outputformat == "mps" then
+ output = figures[v]:postscript()
+ else
+ output = figures[v]:svg() -- (3) for prologues
+ end
+ local outname = format("%s-%s.%s",basename,v,outputformat)
+ logs.simple("saving %s bytes in '%s'",#output,outname)
+ io.savedata(outname,output)
+ end
+ return #sorted
+ end
+ end
+ end
+ end
+ end
end
diff --git a/Master/texmf-dist/tex/context/base/mtx-context-arrange.tex b/Master/texmf-dist/tex/context/base/mtx-context-arrange.tex
new file mode 100644
index 00000000000..9d0bb901bee
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mtx-context-arrange.tex
@@ -0,0 +1,105 @@
+% engine=luatex
+
+%D \module
+%D [ file=mtx-context-arrange,
+%D version=2009.03.21,
+%D title=\CONTEXT\ Extra Trickry,
+%D subtitle=Arrange Files,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=\PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D This is a \TEXEXEC\ features that has been moved to \MKIV.
+
+% begin help
+%
+% usage: context --extra=arrange [options] list-of-files
+%
+% --sort : sort filenames first
+% --paperoffset=dimension : left-top-offset
+% --noduplex : singlesided (doublesided is default)
+% --backspace=dimension : extra left offset
+% --topspace=dimension : extra top offset
+% --marking : add cutmarks
+% --addempty=list : add empty pages at/after (comma separated list)
+% --printformat : 2UP, etc
+%
+% end help
+
+\doifdocumentargument {paperoffset} {
+ \definepapersize
+ [offset=\getdocumentargument{paperoffset}]
+}
+
+\doifdocumentargumentelse {noduplex} {yes} {
+ \setuppagenumbering
+ [alternative=doublesided]
+ \setdocumentargument{sided}{doublesided}
+} {
+ \setdocumentargument{sided}{singlesided}
+}
+
+\setdefaultdocumentargument {textwidth} {0cm}
+\setdefaultdocumentargument {backspace} {0cm}
+\setdefaultdocumentargument {topspace} {0cm}
+
+\setuplayout
+ [backspace=\getdocumentargument{backspace},
+ topspace=\getdocumentargument{topspace},
+ width=middle,
+ height=middle,
+ location=middle,
+ header=0pt,
+ footer=0pt]
+
+\doifdocumentargument {marking} {yes} {
+ \setuplayout
+ [marking=on]
+}
+
+\startluacode
+ local printformat = document.arguments.printformat or ""
+ if printformat == "" then
+ printformat = "normal"
+ elseif string.find(printformat,".*up") then
+ printformat = "2UP,\\v!rotated"
+ elseif string.find(printformat,".*down") then
+ printformat = "2DOWN,\\v!rotated"
+ elseif string.find(printformat,".*side") then
+ printformat = "2SIDE,\\v!rotated"
+ end
+ document.setargument("printformat",printformat)
+\stopluacode
+
+\setuparranging
+ [\getdocumentargument{sided},
+ \getdocumentargument{printformat}]
+
+\starttext
+
+\startluacode
+ local format = string.format
+ local fprint = function(...) tex.sprint(tex.ctxcatcodes,format(...)) end
+
+ if #document.files > 0 then
+ if document.arguments.sort then
+ table.sort(document.files)
+ end
+ local emptypages = document.arguments.addempty or ""
+ local textwidth = document.arguments.textwidth or "0cm"
+ for _, filename in ipairs(document.files) do
+ if not string.find(filename,"^mtx%-context%-") then
+ fprint("\\insertpages[%s][%s][width=%s]",filename,emptypages,textwidth)
+ end
+ end
+ else
+ fprint("no files given")
+ end
+\stopluacode
+
+\stoptext
+
diff --git a/Master/texmf-dist/tex/context/base/mtx-context-combine.tex b/Master/texmf-dist/tex/context/base/mtx-context-combine.tex
new file mode 100644
index 00000000000..991e974aed8
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mtx-context-combine.tex
@@ -0,0 +1,146 @@
+% engine=luatex
+
+%D \module
+%D [ file=mtx-context-combine,
+%D version=2009.03.21,
+%D title=\CONTEXT\ Extra Trickry,
+%D subtitle=Combine Files,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=\PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D This is a \TEXEXEC\ features that has been moved to \MKIV.
+
+% begin help
+%
+% usage: context --extra=combine [options] list-of-files
+%
+% --sort : sort filenames first
+% --paperoffset=dimension : left-top-offset
+% --nobanner : no footer etc
+% --combination : h*v or hxv
+% --paperformat : paper*print or paperxprint
+% --nobanner : no footerlines
+% --bannerheight : height of banner
+% --bannerstring : height of bannerstring
+%
+% end help
+
+\doifdocumentargumentelse {paperoffset} {
+
+ \setuplayout
+ [topspace=\getdocumentargument{paperoffset},
+ backspace=\getdocumentargument{paperoffset}]
+
+} {
+
+ \setuplayout
+ [topspace=0pt,
+ backspace=0pt]
+
+}
+
+\setuplayout
+ [header=0pt,
+ footer=0pt,
+ width=middle,
+ height=middle]
+
+\startluacode
+ local combination = document.arguments['combination'] or '2*2'
+ local nx, ny = string.match(combination,"^(%d+)%s*[%*x]%s*(%d+)$")
+ if not nx then
+ nx, ny = 2, 2
+ elseif not ny then
+ nx = tonumber(combination) or 2
+ ny = nx
+ else
+ nx = tonumber(nx) or 2
+ ny = tonumber(ny) or nx or 2
+ end
+ document.setargument("nx",nx)
+ document.setargument("ny",ny)
+\stopluacode
+
+\startluacode
+ local paperformat = document.arguments['paperformat'] or 'A4*A4'
+ paperformat = string.upper(paperformat)
+ local f, t = string.match(paperformat,"^(.-)%s*[%*xX]%s*(.-)$")
+ if not f then
+ f, t = "A4", "A4"
+ elseif not t then
+ t = f
+ end
+ document.setargument("from",f)
+ document.setargument("to",t)
+\stopluacode
+
+\setuppapersize
+ [\getdocumentargument{from}]
+ [\getdocumentargument{to}]
+
+\doifnotdocumentargument {bannerheight} {
+ \setuplayout
+ [footer=1cm]
+}
+
+\doifdocumentargumentelse {nobanner} {yes} {
+ \setuplayout
+ [footer=0cm]
+ \setupbackgrounds
+ [page]
+ [background=]
+} {
+ \definelayer
+ [page]
+ [width=\paperwidth,
+ height=\paperheight]
+
+ \setupbackgrounds
+ [page]
+ [background=page]
+}
+
+\setupexternalfigures
+ [directory=]
+
+\starttext
+
+\startluacode
+ local format = string.format
+ local fprint = function(...) tex.sprint(tex.ctxcatcodes,format(...)) end
+
+ if #document.files > 0 then
+ if document.arguments["sort"] then
+ table.sort(document.files)
+ end
+ local dobanner = not document.arguments["nobanner"]
+ local bannerheight = document.arguments["bannerheight"]
+ local nx = document.arguments.nx or 2
+ local ny = document.arguments.ny or 2
+ for _, filename in ipairs(document.files) do
+ if not string.find(filename,"^mtx%-context%-") then
+ -- could be a macro
+ local bannerstring = format("\\tttf\\detokenize{%s}\\quad\\quad\\currentdate\\quad\\quad\\pagenumber",file.basename(filename))
+ if dobanner then
+ if bannerheight then
+ fprint("\\setuptexttexts[{\\setlayerframed[page][preset=middlebottom][frame=off,height=%s]{%s}}]",bannerheight,bannerstring)
+ else
+ fprint("\\setupfootertexts[{%s}]",bannerstring)
+ end
+ end
+ fprint("\\combinepages[%s][nx=%s,ny=%s]",filename,nx,ny)
+ fprint("\\page")
+ end
+ end
+ else
+ fprint("no files given")
+ end
+\stopluacode
+
+\stoptext
+
diff --git a/Master/texmf-dist/tex/context/base/mtx-context-ideas.tex b/Master/texmf-dist/tex/context/base/mtx-context-ideas.tex
new file mode 100644
index 00000000000..f1ef1d35ff7
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mtx-context-ideas.tex
@@ -0,0 +1,54 @@
+% engine=luatex
+
+%D \module
+%D [ file=mtx-context-ideas,
+%D version=2009.03.21,
+%D title=\CONTEXT\ Extra Trickry,
+%D subtitle=Placeholder File,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=\PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+% The hard coded goodies in texexec are now external. We also use this
+% opportunity to explore mixed tex/lua user interfacing so you will see
+% some old and new tricks here that might disappear or become extended.
+%
+% if users want to add their own ... go ahead but use a different
+% namespace:
+%
+% mtx-context-third-somename.tex
+% mtx-context-user-somename.tex
+
+% \startluacode
+% -- some day we might move the whole ui to lua
+% context = context or { }
+% function interfaces.tosetups(setups)
+% if not setups then
+% return ""
+% elseif type(setups) == "table" then
+% local t = { }
+% for k,v in next, setups do
+% t[k] = "{" .. v .. "}"
+% end
+% return table.concat(t,",")
+% else
+% return setups
+% end
+% end
+% function context.setuplayout(category,setups)
+% setups = setups or category
+% tex.sprint(string.format("\\setuplayout[%s]",interfaces.tosetups(setups))
+% end
+% local topspace = document.arguments["topspace"] or 0
+% if dimen(topspace) > dimen(0) then
+% context.setuplayout { topspace = dimen(topspace) }
+% end
+% local backspace = document.arguments["backspace"] or 0
+% if dimen(topspace) > dimen(0) then
+% context.setuplayout { backspace = dimen(backspace) }
+% end
+% \stopluacode
diff --git a/Master/texmf-dist/tex/context/base/mtx-context-listing.tex b/Master/texmf-dist/tex/context/base/mtx-context-listing.tex
new file mode 100644
index 00000000000..5c978fc6a33
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mtx-context-listing.tex
@@ -0,0 +1,76 @@
+% engine=luatex
+
+%D \module
+%D [ file=mtx-context-listing,
+%D version=2008.11.10, % about that time i started playing with this
+%D title=\CONTEXT\ Extra Trickry,
+%D subtitle=Listing Files,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=\PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D This is a \TEXEXEC\ features that has been moved to \MKIV.
+
+% begin help
+%
+% usage: context --extra=listing [options] list-of-files
+%
+% --sort : sort filenames first
+% --topspace=dimension : distance above first line
+% --backspace=dimension : distance before left margin
+% --pretty : pretty print comform suffix (temporarily disabled)
+%
+% end help
+
+\setupbodyfont
+ [11pt,tt]
+
+\setuplayout
+ [header=0cm,
+ footer=1.5cm,
+ width=middle,
+ height=middle]
+
+% todo: use \arguments{topspace}
+
+\startluacode
+ local topspace = document.arguments["topspace"] or 0
+ if dimen(topspace) > dimen(0) then
+ tex.sprint(string.format("\\setuplayout[topspace=%s]",dimen(topspace)))
+ end
+ local backspace = document.arguments["backspace"] or 0
+ if dimen(topspace) > dimen(0) then
+ tex.sprint(string.format("\\setuplayout[backspace=%s]",dimen(backspace)))
+ end
+\stopluacode
+
+\setuptyping
+ [lines=yes]
+
+\setuptyping
+ [option=color]
+
+\starttext
+
+\startluacode
+ if #document.files > 0 then
+ if document.arguments["sort"] then
+ table.sort(document.files)
+ end
+ for _, filename in ipairs(document.files) do
+ if not string.find(filename,"^mtx%-context%-") then
+ tex.sprint("\\page\n")
+ tex.sprint(string.format("\\setupfootertexts[\\detokenize{%s}][\\pagenumber]\n",file.basename(filename)))
+ tex.sprint(string.format("\\typefile{%s}",filename))
+ end
+ end
+ else
+ tex.sprint(tex.ctxcatcodes,"no files given")
+ end
+\stopluacode
+
+\stoptext
diff --git a/Master/texmf-dist/tex/context/base/mtx-context-timing.tex b/Master/texmf-dist/tex/context/base/mtx-context-timing.tex
new file mode 100644
index 00000000000..51e6427f6f1
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mtx-context-timing.tex
@@ -0,0 +1,46 @@
+% engine=luatex
+
+%D \module
+%D [ file=mtx-context-timing,
+%D version=2009.03.21,
+%D title=\CONTEXT\ Extra Trickry,
+%D subtitle=Timing Runs,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=\PRAGMA]
+%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=timing filename
+%
+% end help
+
+\enablemode[no-timing] \usemodule[timing]
+
+\setuplayout
+ [topspace=1cm,
+ bottomspace=.5cm,
+ header=0pt,
+ width=middle,
+ height=middle,
+ style=\tt]
+
+\setupfootertexts
+ [\getdocumentfilename{1}-luatex-progress.lut -- \pagenumber]
+
+\setupcolors
+ [state=start]
+
+\starttext
+
+ \doifsomething {\getdocumentfilename{1}} {
+ \LoadUsage{\getdocumentfilename{1}-luatex-progress}
+ \ShowUsage{\getdocumentfilename{1}-luatex-progress}
+ }
+
+\stoptext
+
diff --git a/Master/texmf-dist/tex/context/base/mult-chk.lua b/Master/texmf-dist/tex/context/base/mult-chk.lua
new file mode 100644
index 00000000000..2c1ab3c78aa
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mult-chk.lua
@@ -0,0 +1,66 @@
+if not modules then modules = { } end modules ['mult-chk'] = {
+ version = 1.001,
+ comment = "companion to mult-chk.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local format = string.format
+local type = type
+local texsprint = tex.sprint
+local ctxcatcodes = tex.ctxcatcodes
+
+interfaces = interfaces or { }
+
+interfaces.syntax = {
+ test = { keys = table.tohash { "a","b","c","d","e","f","g" } }
+}
+
+function interfaces.invalidkey(kind,key)
+ commands.writestatus("syntax","invalid key '%s' for '%s' in line %s",key,kind,tex.inputlineno)
+end
+
+function interfaces.setvalidkeys(kind,list)
+ local s = interfaces.syntax[kind]
+ if not s then
+ interfaces.syntax[kind] = {
+ keys = aux.settings_to_set(list)
+ }
+ else
+ s.keys = aux.settings_to_set(list)
+ end
+end
+
+function interfaces.addvalidkeys(kind,list)
+ local s = interfaces.syntax[kind]
+ if not s then
+ interfaces.syntax[kind] = {
+ keys = aux.settings_to_set(list)
+ }
+ else
+ aux.settings_to_set(list,s.keys)
+ end
+end
+
+local prefix, kind, keys
+
+local function set(key,value)
+ if keys and not keys[key] then
+ interfaces.invalidkey(kind,key)
+ else
+ texsprint(ctxcatcodes,format("\\setsomevalue{%s}{%s}{%s}",prefix,key,value))
+ end
+end
+
+local pattern = aux.make_settings_to_hash_pattern(set,"tolerant")
+
+function commands.getcheckedparameters(k,p,s)
+ if s and s ~= "" then
+ prefix, kind = p, k
+ keys = k and k ~= "" and interfaces.syntax[k].keys
+ pattern:match(s)
+ end
+end
+
+_gcp_ = commands.getcheckedparameters
diff --git a/Master/texmf-dist/tex/context/base/mult-chk.mkii b/Master/texmf-dist/tex/context/base/mult-chk.mkii
new file mode 100644
index 00000000000..60f568a1ee4
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mult-chk.mkii
@@ -0,0 +1,29 @@
+%D \module
+%D [ file=mult-chk,
+%D version=2009.04.13,
+%D title=\CONTEXT\ Multilingual Macros,
+%D subtitle=Checking,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=\PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Multilingual Macros / Checking}
+
+%D No checking in \MKII.
+
+\def\gobbleparameters{\doquadrupleempty\dogobbleparameters} % todo: 1,2,3,4 case
+\def\dogobbleparameters[#1][#2][#3][#4]{}
+
+\def\setvalidparameterkeys{\gobbleparameters} % forward reference, so no \let
+\def\addvalidparameterkeys{\gobbleparameters} % forward reference, so no \let
+
+\let\enablecheckparameters \relax
+\let\disablecheckparameters\relax
+
+\def\getcheckedparameters[#1]{\getparameters} % just ignore the checking
+
+\endinput
diff --git a/Master/texmf-dist/tex/context/base/mult-chk.mkiv b/Master/texmf-dist/tex/context/base/mult-chk.mkiv
new file mode 100644
index 00000000000..7b40bd64a69
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mult-chk.mkiv
@@ -0,0 +1,103 @@
+%D \module
+%D [ file=mult-chk,
+%D version=2009.04.13,
+%D title=\CONTEXT\ Multilingual Macros,
+%D subtitle=Checking,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=\PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Multilingual Macros / Checking}
+
+%D This is very experimental code that eventually might be used
+%D once we have split the whole code base.
+
+%D \startbuffer
+%D \getcheckedparameters[MyTest][MyNamespace][a=1,b=2,c=3,d=4,crap=whatever]
+%D
+%D \MyNamespacea\quad
+%D \MyNamespaceb\quad
+%D \MyNamespacec\quad
+%D \MyNamespaced\quad
+%D crap is \ifdefined\MyNamespacecrap\else un\fi defined
+%D \stopbuffer
+%D
+%D \enablecheckparameters
+%D
+%D \setvalidparameterkeys[MyTest][a,b,c,d] \getbuffer \par
+%D \addvalidparameterkeys[MyTest][crap] \getbuffer \par
+
+\unprotect
+
+\registerctxluafile{mult-chk}{1.001}
+
+\def\setvalidparameterkeys{\dodoubleargument\dosetvalidparameterkeys}
+\def\addvalidparameterkeys{\dodoubleargument\doaddvalidparameterkeys}
+
+\def\dosetvalidparameterkeys[#1][#2]{\ctxlua{interfaces.setvalidkeys("#1",\!!bs#2\!!es)}}
+\def\doaddvalidparameterkeys[#1][#2]{\ctxlua{interfaces.addvalidkeys("#1",\!!bs#2\!!es)}}
+
+\def\getcheckedparametersyes[#1]#2[#3]#4[#5%
+ {\if\noexpand#5]%
+ \expandafter\gobblethreearguments
+ \else
+ \let\setsomevalue\dosetvalue
+ \expandafter\dogetcheckedparametersyes
+ \fi{#1}{#3}#5}
+
+\def\dogetcheckedparametersyes#1#2#3]%
+ {\ctxlua{_gcp_("#1","#2",\!!bs\detokenize{#3}\!!es)}}
+
+\def\getcheckedparametersnop[#1]#2[#3]#4[#5%
+ {\if\noexpand#5]%
+ \expandafter\gobbletwoarguments
+ \else
+ \let\setsomevalue\dosetvalue
+ \expandafter\dogetcheckedparametersnop
+ \fi{#3}#5}
+
+\def\dogetcheckedparametersnop#1#2]%
+ {\def\p!dogetparameter{\p!doassign#1}%
+ \xprocesscommaitem#2,],\@relax@}
+
+\def\disablecheckparameters{\let\getcheckedparameters\getcheckedparametersnop}
+\def\enablecheckparameters {\let\getcheckedparameters\getcheckedparametersyes}
+
+\disablecheckparameters
+
+\protect \endinput
+
+\starttext
+
+\testfeatureonce{10000}{\getcheckedparameters[test][xx][a=b,c= d, e = f]} % 0.20 seconds
+
+\enablecheckparameters
+
+\testfeatureonce{10000}{\getcheckedparameters[test][xx][a=b,c= d, e = f]} % 0.35 seconds
+
+\getcheckedparameters[test][xx][a=a]
+\getcheckedparameters[test][xx][b= b]
+\getcheckedparameters[test][xx][c = c]
+\getcheckedparameters[test][xx][d = d d , e = e ,f = f ]
+\getcheckedparameters[test][xx][g={oeps {oeps}}]
+\getcheckedparameters[test][xx][crap=whatever]
+
+\startlines
+[a:\getvalue{xxa}][a]
+[b:\getvalue{xxb}][b]
+[c:\getvalue{xxc}][c]
+[d:\getvalue{xxd}][d d ]
+[e:\getvalue{xxe}][e ]
+[f:\getvalue{xxf}][f ]
+[g:\getvalue{xxg}][\detokenize\expandafter{\xxg}]
+\stoplines
+
+\setvalidparameterkeys[test][crap]
+
+\getcheckedparameters[test][xx][crap=whatever]
+
+\stoptext
diff --git a/Master/texmf-dist/tex/context/base/mult-cld.lua b/Master/texmf-dist/tex/context/base/mult-cld.lua
new file mode 100644
index 00000000000..c9e922afec0
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mult-cld.lua
@@ -0,0 +1,174 @@
+if not modules then modules = { } end modules ['mult-cld'] = {
+ version = 1.001,
+ comment = "companion to mult-cld.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- This is an experiment: generating context code at the lua end. After all
+-- it is surprisingly simple to implement due to metatables. I was wondering
+-- if there was a more natural way to deal with commands at the lua end.
+-- Of course it's a bit slower but often more readable when mixed with lua
+-- code. It can also be handy when generating documents from databases or
+-- when constructing large tables or so.
+--
+-- Todo: optional checking against interface!
+
+context = context or { }
+
+local format, concat = string.format, table.concat
+local next, type = next, type
+local texsprint, texiowrite = tex.sprint, texio.write
+
+local flush = texsprint
+local cache
+
+local function cached_flush(c,...)
+ local tt = { ... }
+ for i=1,#tt do
+ cache[#cache+1] = tt[i]
+ end
+end
+
+local function writer(k,...)
+ flush(ctxcatcodes,k)
+ local t = { ... }
+ if next(t) then
+ for i=1,#t do
+ local ti = t[i]
+ local typ, force = type(ti), nil
+ while typ == "function" do
+ local saved_flush = flush
+ cache = { }
+ flush = cached_flush
+ ti, force = ti()
+ if force then
+ typ = false -- force special cases
+ elseif typ == "nil" then
+ typ = "string"
+ ti = concat(cache)
+ elseif typ == "string" then
+ ti = concat(cache)
+ end
+ flush = saved_flush
+ end
+ if ti == nil then
+ -- next
+ elseif typ == "string" or typ == "number" then
+ flush(ctxcatcodes,"{",ti,"}")
+ elseif typ == "table" then
+ flush(ctxcatcodes,"[")
+ local c = concat(ti,",")
+ if c ~= "" then
+ flush(ctxcatcodes,c)
+ else
+ local done = false
+ for k, v in next, ti do
+ if done then
+ flush(ctxcatcodes,",",k,'=',v)
+ else
+ flush(ctxcatcodes,k,'=',v)
+ done = true
+ end
+ end
+ end
+ flush(ctxcatcodes,"]")
+ -- elseif typ == "boolean" then
+ -- flush(ctxcatcodes,"\n")
+ elseif ti == true then
+ flush(ctxcatcodes,"\n")
+ elseif typ == false then
+ if force == "direct" then
+ flush(ctxcatcodes,tostring(ti))
+ end
+ else
+ logs.report("interfaces","error: %s gets a weird argument %s",k,tostring(ti))
+ end
+ end
+ end
+end
+
+local function indexer(t,k)
+ local f = function(...) return writer("\\"..k.." ",...) end -- building the cs here saves time
+ t[k] = f
+ return f
+end
+
+local function caller(t,f,...)
+ if f then
+ flush(ctxcatcodes,format(f,...))
+ else
+ flush(ctxcatcodes,"\n")
+ end
+end
+
+setmetatable(context, { __index = indexer, __call = caller } )
+
+-- the only non macro:
+
+local trace_cld = false
+
+function context.runfile(filename)
+ filename = resolvers.findtexfile(filename) or ""
+ if filename ~= "" then
+ local ok = dofile(filename)
+ if ok then
+ if trace_cld then
+ commands.writestatus("cld","begin of file '%s'",filename)
+ end
+ ok()
+ if trace_cld then
+ commands.writestatus("cld","end of file '%s'",filename)
+ end
+ else
+ commands.writestatus("cld","invalid file '%s'",filename)
+ end
+ else
+ commands.writestatus("cld","unknown file '%s'",filename)
+ end
+end
+
+-- tracking is using the regular mechanism; we need to define
+-- these 'macro' functions explictly as otherwise they are are
+-- delayed (as all commands print back to tex, so that tracing
+-- would be enabled afterwards)
+
+trackers.register("cld.print", function(v)
+ trace_cld = v
+ if v then
+ flush = function(c,...)
+ texiowrite(...)
+ texsprint(c,...)
+ end
+ else
+ flush = texsprint
+ end
+end)
+
+function context.enabletrackers (str) trackers.enable (str) end
+function context.disabletrackers(str) trackers.disable(str) end
+
+-- see demo-lud.lud for an example
+
+-- context.starttext(true)
+-- context.chapter({ "label" }, "title", true)
+-- context.chapter(function() return { "label" } end, "title", true)
+--
+-- context.startchapter({ title = "test" }, { more = "oeps" }, true)
+--
+-- context.bTABLE(true)
+-- for i=1,10 do
+-- context.bTR()
+-- for i=1,10 do
+-- context.bTD()
+-- context("%#2i",math.random(99))
+-- context.eTD()
+-- end
+-- context.eTR(true)
+-- end
+-- context.eTABLE(true)
+--
+-- context.stopchapter(true)
+--
+-- context.stoptext(true)
diff --git a/Master/texmf-dist/tex/context/base/hand-ini.tex b/Master/texmf-dist/tex/context/base/mult-cld.mkiv
index 4d19b528475..05092865895 100644
--- a/Master/texmf-dist/tex/context/base/hand-ini.tex
+++ b/Master/texmf-dist/tex/context/base/mult-cld.mkiv
@@ -1,7 +1,7 @@
%D \module
-%D [ file=hand-ini, % moved from enco-ini / pro
-%D version=2000.12.27, % 1998.12.03,
-%D title=\CONTEXT\ Handling Macros,
+%D [ file=mult-ini,
+%D version=2008.10.22, % 1996.06.01,
+%D title=\CONTEXT\ Multilingual Macros,
%D subtitle=Initialization,
%D author=Hans Hagen,
%D date=\currentdate,
@@ -11,8 +11,10 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Handling Macros (ini)}
+%D This is just an idea, maybe a bad one.
-\loadmarkfile{hand-ini}
+\writestatus{loading}{ConTeXt Multilingual Macros / Lua}
+
+\registerctxluafile{mult-cld}{1.001}
\endinput
diff --git a/Master/texmf-dist/tex/context/base/mult-com.tex b/Master/texmf-dist/tex/context/base/mult-com.tex
index 96552e3628e..1186168377b 100644
--- a/Master/texmf-dist/tex/context/base/mult-com.tex
+++ b/Master/texmf-dist/tex/context/base/mult-com.tex
@@ -11,2730 +11,21 @@
%C therefore copyrighted by \PRAGMA. See licen-en.pdf for
%C details.
-%D In this module we define the commands. A more than quick
-%D glance at this list leans that it's incomplete. This is due
-%D to the fact that the system generated a lot of commands by
-%D means of the elements specified somewhere else.
-%D
-%D {\em Because the original interface to \CONTEXT\ is dutch,
-%D the words left of the \type{:} are in dutch. In the near
-%D future english will be the core language.}
-%D
-%D The German translations were provided by Tobias Burnus,
-%D the Czech ones by Tom Hudec, and the Italian ones
-%D by Giuseppe Bilotta. Here we include their comments.
-
-%D Giuseppe Bilotta: \quotation {Having to choose between a
-%D full|-|length name and a shortcut, I decided to resort to the
-%D latter, especially in the case of commonly used commands, or
-%D when shortened commands become too short. This led to one
-%D inconsistency: \tex{footer} (pi\`e di pagina in Italian) became
-%D \tex{piedipagina} as a standalone term, but is commonly
-%D shortened to \typ{-pdp}. \tex{setupfooter} becomes
-%D \tex{impostapdp}, and so for all composed words: \tex{footnote}
-%D (nota a pi\`e di pagina) becomes \tex{notapdp};
-%D \tex{footnotetext} (testo della nota a pi\`e di pagina) becomes
-%D \tex{testonotapdp}; and so on.}
-
-\writestatus{loading}{Context Multilingual Macros / Commands}
-
-\startlogginginterface context.com
-
-%D The commands are grouped according to their functionality.
-%D Although the \type{\stop} counterpart of the
-%D \type{\start}||commands could be generated automatically,
-%D we've chosen do define it explicitly.
-%D
-%D One complication of the english commands, is that we don't
-%D want them to overrule or conflict with Plain \TEX. The
-%D names therefore are not always optimal.
-
-%D \startcompressdefinitions
-
-\startcommands dutch english
- german czech
- italian romanian
- french
-
- language: taal language
- sprache jazyk
- lingua limba
- langue
- mainlanguage: hoofdtaal mainlanguage
- hauptsprache hlavnijazyk
- linguaprincipale limbaprincipala
- langueprincipale
- translate: vertaal translate
- uebersetzten prelozit
- traduci traduce
- traduire
- installlanguage: installeertaal installlanguage
- installieresprache instalacejazyka
- installalingua instalarelimba
- installelangue
- setuplanguage: steltaalin setuplanguage
- stellespracheein nastavjazyk
- impostalingua setarelimba
- reglelangue
- showmakeup: toonopmaak showmakeup
- zeigeumbruch ukazupravu
- mostramakeup afiseazamakeup
- montremakeup
- useencoding: usecodering useencoding
- benutzekodierung uzijkodovani
- usacodifica folosestecodificarea
- utiliseencodage
- usespecials: gebruikspecials usespecials
- benutzespezielles uzijspeciality
- usaspecialita folosestespeciale
- utilisespecialites
- defineoutput: definieeruitvoer defineoutput
- defineoutput definujvystup
- definiscioutput definesteoutput
- definitsortie
- setupoutput: steluitvoerin setupoutput
- stelleausgabeein nastavvystup
- impostaoutput setareoutput
- reglesortie
- defineaccent: definieeraccent defineaccent
- definiereakzent definujakcent
- definisciaccento definesteaccent
- definitaccent
- definecharacter: definieerkarakter definecharacter
- definierezeichen definujznak
- definiscicarattere definestecaracter
- definicaractere
- definecommand: definieercommando definecommand
- definierebefehl definujprikaz
- definiscicomando definestecomanda
- definitcommande
- startcoding: startcodering startcoding
- startkodierung startkodovani
- iniziacodifica startcodificare
- demarrecodage
- stopcoding: stopcodering stopcoding
- stopkodierung stopkodovani
- terminacodifica stopcodificare
- stoppecodage
- definebodyfontenvironment: definieerkorpsomgeving definebodyfontenvironment
- definierefliesstextumgebung definujprostredizakladnihofontu
- definisciambientefontdeltesto definestemediulfonttext
- definitenvironnementpolicecorps
- setupbodyfontenvironment: stelkorpsomgevingin setupbodyfontenvironment
- stellefliesstextumgebungein nastavprostredizakladnihofontu
- impostaambientefontdeltesto seteazamediulfonttext
- regleenvironnementpolicecorps
- definebodyfont: definieerkorps definebodyfont
- definierefliesstext definujzakladnifont
- definiscifontdeltesto definestefonttext
- definitpolicecorps
- definefont: definieerfont definefont
- definiereschrift definujfont
- definiscifont definestefont
- definitpolice
- definefontsynonym: definieerfontsynoniem definefontsynonym
- defineschriftsynonym definujsynonumumfontu
- definiscisinonimofont definestesinonimfont
- definitsynonymepolice
- definestyle: definieerletter definestyle
- definierestil definujstyl
- definiscistile definestestil
- definitstyle
- definefontstyle: definieerfontstijl definefontstyle
- definiereschriftstil definujstylfontu
- definiscistilefont definestestilfont
- definitstylepolice
- setupstrut: stelstrutin setupstrut
- setupstrut setupstrut
- impostastrut seteazastrut
- reglestrut
- setuptype: steltypein setuptype
- stelletipein nastavtype
- impostatype seteazatype
- regletype
- type: type type
- tippen opis
- type type
- dactylographier
- typ: typ typ
- tip pis
- typ typ
- typ
- arg: arg arg
- arg arg
- arg arg
- arg
- tex: tex tex
- tex tex
- tex tex
- tex
- definetyping: definieertypen definetyping
- definieretippen definujopis
- definiscityping definestetyping
- definitdactylo
- definetype: definieertype definetype
- definetype definetype
- definiscitype definetype
- definittype
- setuptyping: steltypenin setuptyping
- stelletippenein nastavopis
- impostatyping seteazatyping
- regledactylo
- typefile: typefile typefile
- tippedatei opissoubor
- typefile typefile
- fichierdactylo
- setupfootnotes: stelvoetnotenin setupfootnotes
- stellefussnotenein nastavpoznamkypodcarou
- impostanotepdp seteazanotasubsol
- reglenotepdp
- setupfootnotedefinition: stelvoetnootdefinitiein setupfootnotedefinition
- stellefussnotendefinitionein nastavdefinicipoznamekpodcarou
- impostadefinizionenotepdp seteazadefinireanotasubsol
- definitnotepdp
- note: noot note
- notiz poznamka
- nota nota
- note
- footnote: voetnoot footnote
- fussnote poznamkapodcarou
- notapdp notasubsol
- notepdp
- footnotetext: voetnoottekst footnotetext
- footnotetext footnotetext
- testonotapdp footnotetext
- textenotepdp
- startlocalfootnotes: startlokalevoetnoten startlocalfootnotes
- startlokalefussnoten startlokalnipoznamkypodcarou
- inizianotepdplocali startnotesubsollocale
- demarrenotespdplocales
- stoplocalfootnotes: stoplokalevoetnoten stoplocalfootnotes
- stoplokalefussnoten stoplokalnipoznamkypodcarou
- terminanotepdplocali stopnotesubsollocale
- stoppenotespdplocales
- placelocalfootnotes: plaatslokalevoetnoten placelocalfootnotes
- platzierelokalefussnoten umistilokalnipoznamkypodcarou
- mettinotepdplocali punenotesubsollocale
- placenotespdplocales
- placefootnotes: plaatsvoetnoten placefootnotes
- platzierefussnoten umistipoznamkypodcarou
- mettinotepdp punenotesubsol
- placenotespdp
- currentdate: huidigedatum currentdate
- heutigesdatum aktualnidatum
- datadioggi datacurenta
- datecourante
- date: datum date
- datum datum
- data data
- date
- weekday: weekdag weekday
- wochentag vsedniden
- giornosettimana zidinsaptamana
- joursemaine
- WEEKDAY: WEEKDAG WEEKDAY
- WOCHENTAG VSEDNIDEN
- GIORNOSETTIMANA ZIDINSAPTAMANA
- JOURSEMAINE
- month: maand month
- monat mesic
- mese luna
- mois
- MONTH: MAAND MONTH
- MONAT MESIC
- MESE LUNA
- MOIS
- Numbers: Cijfers Numbers
- Ziffern Cisla
- Numeri Numere
- Numeros
- numbers: cijfers numbers
- ziffern cisla
- numeri numere
- numeros
- romannumerals: romeins romannumerals
- roemischezahlen rimskecislice
- numeriromani numereromane
- chiffresromains
- Romannumerals: Romeins Romannumerals
- Roemischezahlen Rimskecislice
- Numeriromani Numereromane
- Chiffresromains
- character: letter character
- buchstabe znak
- lettera litera
- caractere
- Character: Letter Character
- Buchstabe Znak
- Lettera Litera
- Caractere
- characters: letters characters
- buchstaben znaky
- lettere litere
- caracteres
- Characters: Letters Characters
- Buchstaben Znaky
- Lettere Litere
- Caracteres
- unknown: onbekend unknown
- unbekant neznamo
- ignoto necunoscut
- inconnu
- definesymbol: definieersymbool definesymbol
- definieresymbol definujsymbol
- definiscisimbolo definestesimbol
- definitsymbole
- definefiguresymbol: definieerfiguursymbool definefiguresymbol
- definiereabbsymbol definujobrazeksymbol
- definiscifigurasimbolo definestesimbolfigura
- definitsymbolefigure
- symbol: symbool symbol
- symbol symbol
- simbolo simbol
- symbole
- setupsymbolset: stelsymboolsetin setupsymbolset
- stellesymbolsetein nastavsadusymbolu
- impostasetsimboli seteazasimbol
- reglejeusymboles
- showsymbolset: toonsymboolset showsymbolset
- showsymbolset ukazsadusymbolu
- mostrasetsimboli afiseazasetsimboluri
- montrejeusymboles
- startsymbolset: startsymboolset startsymbolset
- startsymbolset startsadasymbolu
- iniziasetsimboli startsetsimboluri
- demarrejeusymboles
- usesymbols: gebruiksymbolen usesymbols
- verwendesymbole uzijsymbol
- usasimboli folosestesimboluri
- utilisesymboles
- defineconversion: definieerconversie defineconversion
- definierekonversion definujkonverzi
- definisciconversione definesteconversie
- definitconversion
- convertnumber: converteernummer convertnumber
- konvertierezahl konvertujcislo
- convertinumero convertestenumar
- convertitnumero
- setupcapitals: stelkapitalenin setupcapitals
- stelleversalienein nastavkapitalky
- impostamaiuscole seteazamajuscule
- reglecapitales
- smallcapped: kap cap
- kap kap
- cap kap
- cap
- notsmallcapped: nokap nocap
- nokap nokap
- nocap nokap
- nocap
- CAPPED: KAP CAP
- KAP KAP
- CAP KAP
- CAP
- SmallCapped: Kap Cap
- Kap Kap
- Cap Kap
- Cap
- SmallCaps: Kaps Caps
- Kaps Kaps
- Caps Kaps
- Caps
- WORD: WOORD WORD
- WORT SLOVO
- PAROLA CUVANT
- MOT
- WORDS: WOORDEN WORDS
- WOERTER SLOVA
- PAROLE CUVINTE
- MOTS
- Word: Woord Word
- Wort Slovo
- Parola Cuvant
- Mot
- Words: Woorden Words
- Woerter Slova
- Parole Cuvinte
- Mots
- stretched: uitgerekt stretched
- gestreckt roztazene
- stirato intins
- etire
- overstrike: doorstreep overstrike
- durchgestrichen preskrtnuto
- sbarrato liniepeste
- surlignetout
- overstrikes: doorstrepen overstrikes
- durchstreichen preskrtnuti
- sbarrati liniipeste
- surligne
- overbar: overstreep overbar
- ueberstrichen nadtrzeno
- sopralinea barasus
- overbar
- overbars: overstrepen overbars
- ueberstreichen nadtrzeni
- sopralinee supralinie
- overbars
- underbar: onderstreep underbar
- unterstrichen podtrzeno
- sottolinea sublinie
- souslignetout
- underbars: onderstrepen underbars
- unterstreichen podtrzeni
- sottolinee sublinii
- sousligne
- setupunderbar: stelonderstrepenin setupunderbar
- stelleunterstreichenein nastavpodtrzeni
- impostasottolinea seteazasublinie
- reglesouslignage
- setupbodyfont: stelkorpsin setupbodyfont
- stellefliesstextein nastavzakladnifont
- impostafontdeltesto seteazafonttext
- reglepolicecorps
- switchtobodyfont: switchnaarkorps switchtobodyfont
- wechselezumfliesstext prepninazakladnifont
- cambiaafontdeltesto trecilafonttext
- changepolicecorps
- showbodyfont: toonkorps showbodyfont
- zeigefliesstext ukazzakladnifont
- mostrafontdeltesto afiseazafonttext
- montrepolicecorps
- showbodyfontenvironment: toonkorpsomgeving showbodyfontenvironment
- zeigefliesstextumgebung ukazpostredizakladnihofontu
- mostraambientefontdeltesto afiseazamediufonttext
- montreenvironnementpolicecorps
- headtext: koptekst headtext
- ueberschrifttext texthlavicky
- testoinstestazioni texttitlu
- textetete
- labeltext: labeltekst labeltext
- labeltext textpopisku
- testoetichetta texteticheta
- labeltexte
- LABELTEXT: LABELTEKST LABELTEXT
- LABELTEXT TEXTPOPISKU
- TESTOETICHETTA TEXTETICHETA
- LABELTEXTE
- setupheadtext: stelkoptekstin setupheadtext
- stelleueberschrifttextein nastavtexthlavicky
- impostatestointestazioni seteazatexttitlu
- regletextetete
- setuplabeltext: stellabeltekstin setuplabeltext
- stellelabeltextein nastavtextpopisku
- impostatestoetichette seteazatexteticheta
- reglelabeltexte
- marginrule: kantlijn marginrule
- marginallinie marginalnilinka
- lineamargine liniemargine
- margereglee
- startmarginrule: startkantlijn startmarginrule
- startmarginallinie startmarginalnilinka
- inizialineamargine startliniemargine
- demarremargereglee
- stopmarginrule: stopkantlijn stopmarginrule
- stopmarginallinie stopmarginalnilinka
- terminalineamargine stopliniemargine
- stoppemargereglee
- setupmarginrules: stelkantlijnin setupmarginrules
- stellemarginallinieein nastavmarginalnilinky
- impostalineemargine seteazaliniimargine
- reglemargereglee
- blackrule: blokje blackrule
- rechteck cernalinka
- lineanera linieneagra
- lignenoire
- blackrules: blokjes blackrules
- rechtecke cernelinky
- lineenere liniinegre
- lignesnoires
- setupblackrules: stelblokjesin setupblackrules
- stellerechteckein nastavcernelinky
- impostalineenere seteazaliniinegre
- reglelignesnoires
- setupscreens: stelrastersin setupscreens
- stellerasterein nastavrastr
- impostaschermi seteazaecrane
- regleecrans
- framed: omlijnd framed
- umrahmt oramovani
- incorniciato framed
- framed
- inframed: inlijnd inframed
- imumriss zaramovani
- circondato inframed
- inframed
- mframed: wilijnd maframed
- maumrise maoramovani
- maframed maframed
- mframed
- inmframed: inwilijnd inmaframed
- immaumrise mazaramovani
- inmaframed inmaframed
- inmframed
- setupframed: stelomlijndin setupframed
- stelleumrahmtein nastavoramovani
- impostaincorniciato seteazainconjurat
- regleencadre
- setuplinewidth: stellijndiktein setuplinewidth
- stellelinienbreiteein nastavsirkucary
- impostaampiezzariga seteazagrosimelinie
- regleepaisseurligne
- setupthinrules: steldunnelijnenin setupthinrules
- stelleduennerumrissein nastavtenkelinky
- impostalineesottili seteazaliniesubtire
- regletraitsfins
- thinrule: dunnelijn thinrule
- duennelinie tenkalinka
- lineasottile liniesubtire
- traitfin
- thinrules: dunnelijnen thinrules
- duennerumriss tenkelinky
- lineesottili liniisubtiri
- traitsfins
- hairline: haarlijn hairline
- haarlinie vlasovalinka
- capello firdepar
- ligneh
- vl: vl vl
- vl vl
- vl vl
- vl
- hl: hl hl
- hl hl
- hl hl
- hl
- defineframed: definieeromlijnd defineframed
- definiereumrahmt definujoramovani
- definisciincorniciato definesteinconjurare
- defineframed
- defineframedtext: definieerkadertekst defineframedtext
- definiereumrahmtertext definujoramovanytext
- definiscitestoincorniciato definestetextinconjurat
- defineframedtext
- setupframedtexts: stelkadertekstenin setupframedtexts
- stelleumrahmtetexteein nastavoramovanetexty
- impostatestiincorniciati definestetexteinconjurate
- setupframedtexts
- defineoverlay: definieeroverlay defineoverlay
- definiereoverlay definujprekryv
- definiscisovrapposizione definesteoverlay
- definitrevetement
- definelayer: definieerlayer definelayer
- definelayer definelayer
- definelayer definelayer
- definitcalque
- background: achtergrond background
- hintergrund pozadi
- sfondo fundal
- arriereplan
- startbackground: startachtergrond startbackground
- starthintergrund startpozadi
- iniziasfondo startfundal
- demarrearriereplan
- stopbackground: stopachtergrond stopbackground
- stophintergrund stoppozadi
- terminasfondo stopfundal
- stoppearriereplan
- setupbackground: stelachtergrondin setupbackground
- stellehintergrundein nastavpozadi
- impostasfondo seteazafundal
- reglearriereplan
- fillinrules: invullijnen fillinrules
- gefuelltesrechteck vyplnovelinky % ve formulari
- lineeriempimento rigleumplere
- remplitlignesreglees
- setupfillinrules: stelinvullijnenin setupfillinrules
- stellegefuelltesrechteckein nastavvyplnovelinky
- impostalineeriempimento seteazarigleumplere
- regleremplitlignesreglees
- fillintext: invultekst fillintext
- ausfuelltext vyplnenytext
- testoriempimento textumplere
- remplittexte
- setupfillinlines: stelinvulregelsin setupfillinlines
- stellegefuelltezeileein nastavvyplnoveradky
- impostarigheriempimento seteazaliniiumplere
- regleremplitligne
- fillinline: invulregel fillinline
- gefuelltezeile vyplnovyradek
- rigariempimento linieumplere
- remplitligne
- setuptextrules: steltekstlijnenin setuptextrules
- stelletextumrissein nastavtextovelinky
- impostalineetesto seteazarigletext
- reglelignesreglestexte
- textrule: tekstlijn textrule
- textlinie textovalinka
- lineatesto riglatext
- ligneregleetexte
- starttextrule: starttekstlijn starttextrule
- starttextlinie starttextovalinka
- inizialineatesto startriglatext
- demarreligneregleetexte
- stoptextrule: stoptekstlijn stoptextrule
- stoptextlinie stoptextovalinka
- terminalineatesto stopriglatext
- stoppeligneregleetexte
- usemodule: gebruikmodule usemodule
- verwendemodul uzijmodul
- usamodulo folosestemodul
- utilisemodule
- usemodules: gebruikmodules usemodules
- verwendemodule uzijmoduly
- usamoduli folosestemodule
- utilisemodules
- starttext: starttekst starttext
- starttext starttext
- iniziatesto starttext
- demarretexte
- stoptext: stoptekst stoptext
- stoptext stoptext
- terminatesto stoptext
- stoppetexte
- margintitle: margetitel margintitle
- marginaltitel marginalninadpis
- titoloinmargine titlumarginal
- titremarge
- marginword: margewoord marginword
- marginalwort marginalnislovo
- parolainmargine cuvantmarginal
- motmarge
- margintext: margetekst margintext
- marginaltext marginalnitext
- testoinmargine textmarginal
- textemarge
- inleft: inlinker inleft
- imlinken vlevo
- insinistra instanga
- dansgauche
- inmargin: inmarge inmargin
- inmarginalie naokraj
- inmargine marginal
- dansmarge
- inothermargin: inanderemarge inothermargin
- inanderermarginale nadruhyokraj
- inaltromargine inaltamargine
- dansautremarge
- inright: inrechter inright
- imrechten vpravo
- indestra indreapta
- dansdroite
- ininner: inbinnen ininner
- ininner ininner
- ininner ininner
- ininner
- inouter: inbuiten inouter
- inouter inouter
- inouter inouter
- inouter
- startmarginblock: startmargeblok startmarginblock
- startmarginalblock startmarginalniblok
- iniziabloccomargine startblocmarginal
- demarreblocmarge
- stopmarginblock: stopmargeblok stopmarginblock
- stopmarginalblock stopmarginalniblok
- terminabloccomargine stopblocmarginal
- stoppeblocmarge
- defineinmargin: definieerinmarge defineinmargin
- defineinmargin defineinmargin
- defineinmargin defineinmargin
- definitdansmarge
- setupinmargin: stelinmargein setupinmargin
- stelleinmarginalieein nastavmarginalie
- impostainmargine seteazamarginal
- regledansmarge
- setupmarginblocks: stelmargeblokkenin setupmarginblocks
- stellemarginalblockein nastavmarginalniblok
- impostablocchimargine seteazablocurimarginale
- regleblocmarge
- inleftedge: inlinkerrand inleftedge
- imlinkenrand nalevo
- inlatosinistro inparteastanga
- dansbordgauche
- inleftmargin: inlinkermarge inleftmargin
- inlinkermarginale nalevyokraj
- inmarginesinistro inmargineastanga
- dansmargegauche
- inrightmargin: inrechtermarge inrightmargin
- inrechtermarginale napravyokraj
- inmarginedestro inmargineadreapta
- dansmargedroite
- inrightedge: inrechterrand inrightedge
- imrechtenrand napravo
- inlatodestro inparteadreapta
- dansborddroit
- atleftmargin: oplinkermarge atleftmargin
- atleftmargin atleftmargin
- atleftmargin atleftmargin
- atleftmargin
- atrightmargin: oprechtermarge atrightmargin
- atrightmargin atrightmargin
- atrightmargin atrightmargin
- atrightmargin
- wordright: woordrechts wordright
- wortrechts slovovpravo
- paroladestra cuvantdreapta
- motdroit
- defineblank: definieerblanko defineblank
- definiereblanko definujpreskok
- definiscirigovuoto definesteblanc
- definitvide
- blank: blanko blank
- blanko preskoc
- rigovuoto blanc
- vide
- setupblank: stelblankoin setupblank
- stelleblankoein nastavpreskok
- impostarigovuoto seteazablanc
- definitvide
- correctwhitespace: corrigeerwitruimte correctwhitespace
- korrigierezwischenraum korekcebilehomista
- correggispaziobianco corecteazaspatiualb
- corrigeespaceblanc
- fixedspaces: vastespaties fixedspaces
- festesspatium tvrdemezery
- spazifissi spatiifixate
- espacesfixes
- fixedspace: vastespatie fixedspace
- festesspatium tvrdamezera
- spaziofisso spatiufixat
- espacefixe
- nospace: geenspatie nospace
- keinspatium zadnamezera
- nientespazio faraspatiu
- sansespace
- space: spatie space
- spatium mezera
- spazio spatiu
- espace
- nowhitespace: geenwitruimte nowhitespace
- keinzwischenraum zadnebilemisto
- nientespaziobianco faraspatiualb
- sansespaceblanc
- packed: opelkaar packed
- kleinerdurchschuss zhustene
- impaccato impachetat
- groupe
- startpacked: startopelkaar startpacked
- startkleinerdurchschuss startzhustene
- iniziaimpaccato startimpachetat
- demarregroupe
- stoppacked: stopopelkaar stoppacked
- stopkleinerdurchschuss stopzhustene
- terminaimpaccato stopimpachetat
- stoppegroupe
- startunpacked: startvanelkaar startunpacked
- startgrosserdurchschuss startnezhustene
- iniziaunpacked startneimpachetat
- demarredegroupe
- stopunpacked: stopvanelkaar stopunpacked
- stopgrosserdurchschuss stopnezhustene
- terminaunpacked stopneimpachetat
- stoppedegroupe
- startlinecorrection: startregelcorrectie startlinecorrection
- startzeilenkorrektur startkorekceradku
- iniziacorrezioneriga startcorectielinie
- demarrecorrectionligne
- stoplinecorrection: stopregelcorrectie stoplinecorrection
- stopzeilenkorrektur stopkorekceradku
- terminacorrezioneriga stopcorectielinie
- stoppecorrectionligne
- godown: omlaag godown
- nachunten jdidolu
- vaigiu injos
- vaenbas
- whitespace: witruimte whitespace
- zwischenraum bilemisto
- spaziobianco spatiualb
- espaceblanc
- noindenting: nietinspringen noindenting
- nichteinziehen zadneodsazovani
- nienterientro faraaliniat
- sansalinea
- indenting: inspringen indenting
- einziehen odsazovani
- rientro aliniat
- composeenalinea
- setupindenting: stelinspringenin setupindenting
- stelleeinziehenein nastavodsazovani
- impostarientro seteazaaliniat
- reglecomposeenalinea
- startalignment: startuitlijnen startalignment
- startausrichtung startzarovnavani
- iniziaallineamento startaliniere
- demarrealignement
- stopalignment: stopuitlijnen stopalignment
- stopausrichtung stopzarovnavani
- terminaallineamento stopaliniere
- stoppealignement
- startlines: startregels startlines
- startzeilen startradky
- iniziarighe startlinii
- demarrelignes
- stoplines: stopregels stoplines
- stopzeilen stopradky
- terminarighe stoplinii
- stoppelignes
- setupparagraphnumbering: stelparagraafnummerenin setupparagraphnumbering
- stelleabsatznummerierungein nastavcislovaniodstavcu
- impostanumerazionecapoversi seteazanumerotareparagrafe
- reglenumerotationparagraphe
- setuplinenumbering: stelregelnummerenin setuplinenumbering
- stellezeilennumerierungein nastavcislovaniradku
- impostanumerazionerighe seteazanumerotarelinii
- reglenumerotationligne
- startlinenumbering: startregelnummeren startlinenumbering
- startzeilennumerierung startcislovaniradku
- inizianumerazionerighe startnumerotarelinii
- demarrenumerotationligne
- stoplinenumbering: stopregelnummeren stoplinenumbering
- stopzeilennumerierung stopcislovaniradku
- terminanumerazionerighe stopnumerotarelinii
- stoppenumerotationligne
- startline: startregel startline
- startzeile startradek
- iniziariga startlinie
- demarreligne
- stopline: stopregel stopline
- stopzeile stopradek
- terminariga stoplinie
- stoppeligne
- someline: eenregel someline
- einezeile nejakyradek
- qualcheriga olinie
- uneligne
- inline: inregel inline
- inzeile vradku
- inriga inlinie
- alaligne
- crlf: crlf crlf
- crlf crlf
- crlf crlf
- crlf
- emptylines: legeregels emptylines
- emptylines emptylines
- emptylines emptylines
- emptylines
- setuplines: stelregelsin setuplines
- stellezeilenein nastavradky
- impostarighe seteazalinii
- reglelignes
- startnarrower: startsmaller startnarrower
- startenger startzuzeni
- iniziapiustretto startingust
- demarrecompoetroite
- stopnarrower: stopsmaller stopnarrower
- stopenger stopzuzeni
- terminapiustretto stopingust
- stopcompoetroite
- setupnarrower: stelsmallerin setupnarrower
- stelleengerein nastavzuzeni
- impostapiustretto seteazaingust
- reglecompoetroite
- definetabulate: definieertabulatie definetabulate
- definieretabulator definujtabelaci
- definiscitabulato definestetabulatori
- definittabulation
- setuptabulate: steltabulatiein setuptabulate
- stelletabulatorein nastavtabelaci
- impostatabulato seteazatabulatori
- regletabulation
- starttable: starttabel starttable
- starttabelle starttabulka
- iniziatabella starttabel
- demarretableau
- stoptable: stoptabel stoptable
- stoptabelle stoptabulka
- terminatabella stoptabel
- stoppetableau
- starttables: starttabellen starttables
- starttabellen starttabulky
- iniziatabelle starttabele
- demarretableaux
- stoptables: stoptabellen stoptables
- stoptabellen stoptabulky
- terminatabelle stoptabele
- stoppetableaux
- setuptables: steltabellenin setuptables
- stelletabellenein nastavtabulky
- impostatabelle seteazatabele
- regletableaux
- definetabletemplate: definieertabelvorm definetabletemplate
- definieretabellenvorlage definujsablonutabulky
- definiscimodellotabella definestesablontabel
- definittrametableau
- page: pagina page
- seite strana
- pagina pagina
- page
- testcolumn: testkolom testcolumn
- testcolumn testcolumn
- testcolumn testcolumn
- testcolumn
- testpage: testpagina testpage
- testpage testpage
- testpage testpage
- testpage
- couplepage: koppelpagina couplepage
- doppelseite parovastrana
- accoppiapagina paginadubla
- pagedouble
- pagetype: soortpagina pagetype
- seitentyp typstrany
- tipopagina tippagina
- tapepage
- processpage: verwerkpagina processpage
- bearbeiteseite zpracujstranu
- elaborapagina proceseazapagina
- traitepage
- couplepaper: koppelpapier couplepaper
- doppelseitigespapier dvoustrannypapir
- accoppiacarta hartiedubla
- couplepapier
- selectpaper: selecteerpapier selectpaper
- waehlepapieraus vyberpapir
- selezionacarta selecteazahartie
- selectionnepapier
- screen: scherm screen
- bildschirm obrazovka
- schermo ecran
- ecran
- definesection: definieersectie definesection
- definiereabschnitt definujsekci
- definiscisezione definestesectiune
- definitsection
- definesectionblock: definieersectieblok definesectionblock
- definiereabschnittsblock definujbloksekce
- definiscibloccosezione definesteblocsectiune
- definitblocsection
- setupsectionblock: stelsectieblokin setupsectionblock
- stelleabschnittsblockein nastavbloksekce
- impostabloccosezione seteazablocsectiune
- regleblocsection
- setupsection: stelsectiein setupsection
- stelleabschnittein nastavsekci
- impostasezione seteazasectiune
- reglesection
- notopandbottomlines: geenbovenenonderregels notopandbottomlines
- keinzeilenobenundunten zadnehorniadolniradky
- nientelineecimafondo faraliniisussijos
- sanslignessupetinf
- noheaderandfooterlines: geenhoofdenvoetregels noheaderandfooterlines
- keinekopfundfusszeilen zadnezahlaviaupati
- nientelineintestazionepdp faraliniiantetsisubsol
- sanslignesenteteetpdp
- setuptop: stelbovenin setuptop
- stellenobenein nastavhorejsek
- impostacima seteazasus
- reglesup
- setuptoptexts: stelboventekstenin setuptoptexts
- stelletextobenein nastavhornitexty
- impostatesticima seteazatextesus
- regletextessup
- setupheader: stelhoofdin setupheader
- stellekopfzeileein nastavzahlavi
- impostainstestazione seteazaantet
- regleentete
- setupheadertexts: stelhoofdtekstenin setupheadertexts
- stellekopfzeilentextein nastavtextyzahlavi
- impostatestiintestazioni seteazatexteantet
- regletextesentete
- setuppagenumbering: stelpaginanummeringin setuppagenumbering
- stelleseitennummeriernungein nastavcislovanistran
- impostanumerazionepagina seteazanumerotarepagina
- reglenumerotationpage
- getnumber: haalnummer getnumber
- getnumber getnumber
- getnumber getnumber
- getnumber
- incrementnumber: verhoognummer incrementnumber
- nummererhoehen zvysujicicislo
- incrementanumero numarincrement
- incrementenumero
- decrementnumber: verlaagnummer decrementnumber
- decrementnumber decrementnumber
- decrementnumber decrementnumber
- decrementenumero
- resetnumber: resetnummer resetnumber
- resetnumber resetnumber
- resetnumber resetnumber
- raznumero
- setnumber: setnummer setnumber
- setnumber setnumber
- setnumber setnumber
- affectenumero
- setupnumber: stelnummerin setupnumber
- setupnumber setupnumber
- impostanumerazione setupnumber
- reglenumero
- setupbottom: stelonderin setupbottom
- stelleuntenein nastavspodek
- impostafondo seteazajos
- regleinf
- setupbottomtexts: stelondertekstenin setupbottomtexts
- stelletextuntenein nastavdolnitexty
- impostatestifondo seteazatextejos
- regletextesinf
- setupfooter: stelvoetin setupfooter
- stellefusszeileein nastavupati
- impostapdp seteazasubsol
- reglepdp
- setupfootertexts: stelvoettekstenin setupfootertexts
- stellefusszeilentextein nastavtextyupati
- impostatestipdp seteazatextesubsol
- regletextespdp
- setuppagenumber: stelpaginanummerin setuppagenumber
- stelleseitennummerein nastavcislostrany
- impostanumeropagina seteazanumarpagina
- reglenumeropage
- setupsubpagenumber: stelsubpaginanummerin setupsubpagenumber
- stelleunterseitennummerein nastavpodcislostrany
- impostanumerosottopagina seteazanumarsubpagina
- reglesousnumeropage
- subpagenumber: subpaginanummer subpagenumber
- subpagenumber subpagenumber
- subpagenumber subpagenumber
- sousnumeropage
- setuptext: steltekstin setuptext
- stelletextein nastavtext
- impostatesto seteazatext
- regletexte
- setuptexttexts: stelteksttekstenin setuptexttexts
- stelletexttexteein nastavtexttexty
- impostatestotesti seteazatextetext
- regletextestexte
- settextcontent: steltekstinhoudin settextcontent
- settext settextcontent
- settext settextcontent
- settext
- resettext: resettekstinhoud resettextcontent
- resettextcontent resettextcontent
- resettextcontent resettextcontent
- resettextcontent
- definetext: definieertekst definetext
- definieretext definujtext
- definiscitesto definestetext
- definittexte
- pagenumber: paginanummer pagenumber
- seitenummer cislostrany
- numeropagina numarpagina
- numeropage
- completepagenumber: volledigepaginanummer completepagenumber
- completepagenumber completepagenumber % TOBIAS % TO
- numeropaginacompleto completeazanumarpagina % TB TH
- completenumeropage
- placepagenumber: plaatspaginanummer placepagenumber
- placepagenumber placepagenumber % TOBIAS % TOM
- mettinumeropagina punenumarpagina % TB TH
- placenumeropage
- items: items items
- posten polozky
- elementi element
- elements
- setupitems: stelitemsin setupitems
- stellepostenein nastavpolozky
- impostaelementi seteazaelemente
- regleelements
- leftaligned: regellinks leftaligned
- linksbuendig zarovnanovlevo
- allineasinistra aliniatstanga
- aligneagauche
- midaligned: regelmidden midaligned
- zentriert zarovnanonastred
- allineacentro aliniatcentru
- aligneaumilieu
- rightaligned: regelrechts rightaligned
- rechtsbuendig zarovnanovpravo
- allineadestra aliniatdreapta
- aligneadroite
- startcolumns: startkolommen startcolumns
- startspalten startsloupce
- iniziacolonne startcoloane
- demarrecolonnes
- stopcolumns: stopkolommen stopcolumns
- stopspalten stopsloupce
- terminacolonne stopcoloane
- stoppecolonnes
- setupcolumns: stelkolommenin setupcolumns
- stellespaltenein nastavsloupce
- impostacolonne seteazacoloane
- reglecolonnes
- column: kolom column
- spalte sloupec
- colonna coloana
- colonne
- head: kop head
- kopf nadpis
- testa titlu
- tete
- but: but but
- but spodek
- fondo but
- but
- item: som item
- pos polozka
- elemento element
- element
- nop: nop nop
- nop nop
- nop nop
- nop
- mar: mar mar
- mar okr
- mar mar
- mar
- sym: sym sym
- sym sym
- sim sim
- sym
- txt: txt txt
- txt txt
- txt txt
- txt
- its: its its
- its pol % abbr. of polozka (it em)
- el el % abbr. of elemento (it) element (ro)
- el % abbr. of element (fr)
- ran: ran ran
- ran ran
- ran ran
- ran
- headsym: kopsym headsym
- headsym headsym
- headsym headsym
- headsym
- defineitemgroup: definieeritemgroep defineitemgroup
- defineitemgroup defineitemgroup
- defineitemgroup defineitemgroup
- defineitemgroup
- setupitemgroup: stelitemgroepin setupitemgroup
- setupitemgroup setupitemgroup
- setupitemgroup setupitemgroup
- setupitemgroup
- setupitemgroups: stelitemgroepenin setupitemgroups
- setupitemgroups setupitemgroups
- setupitemgroups setupitemgroups
- setupitemgroups
- definehead: definieerkop definehead
- definiereueberschrift definujnadpis
- definiscitesta definesteantet
- definittete
- setuphead: stelkopin setuphead
- stelleueberschriftein nastavnadpis
- impostatesta seteazatitlu
- regletete
- setupheads: stelkoppenin setupheads
- stelleueberschriftenein nastavnadpisy
- impostateste seteazatitluri
- regletetes
- setupheadnumber: stelkopnummerin setupheadnumber
- stellekopfzahlein nastavcislonadpisu
- impostanumerotesta seteazanumartitlu
- reglenumerotete
- headnumber: kopnummer headnumber
- kopfnummer cislonadpisu
- numerotesta numartitlu
- numerotete
- currentheadnumber: huidigekopnummer currentheadnumber
- heutigeskopfnummer aktualnicislonadpisu
- numerotestacorrente numartitlucurent
- numerotetecourant
- determineheadnumber: bepaalkopnummer determineheadnumber
- bestimmekopfnummer stanovcislonadpisu
- determinanumerotesta determinanumartitlu
- determinenumerotete
- resetmarking: resetmarkering resetmarking
- ruecksetztenbeschriftung resetznaceni
- reimpostamarcatura reseteazamarcaje
- razmarquage
- setupmarking: stelmarkeringin setupmarking
- stellebeschriftungein nastavznaceni
- impostamarcatura seteazamarcaje
- reglemarquage
- definemarking: definieermarkering definemarking
- definierebeschriftung definujznaceni
- definiscimarcatura definestemarcaje
- definitmarquage
- nomarking: geenmarkering nomarking
- keinebeschriftung zadneznaceni
- nientemarcatura faramarcaje
- sansmarquage
- marking: markeer marking
- beschriftung znaceni
- marcatura marcaje
- marquage
- decouplemarking: ontkoppelmarkering decouplemarking
- entknuepfebeschriftung rozpojeneznaceni
- separamarcatura decupleazamarcaje
- decouplemarquage
- couplemarking: koppelmarkering couplemarking
- verknuepfebeschriftung propojeneznaceni
- accoppiamarcatura cupleazamarcaje
- couplemarquage
- getmarking: haalmarkering getmarking
- holebeschriftung ziskejznaceni
- prendimarcatura adumarcaje
- obtientmarquage
- definelayout: definieerlayout definelayout
- definelayout definelayout
- definiscilayout definelayout
- definitdisposition
- setuplayout: stellayoutin setuplayout
- stellelayoutein nastavvzhled
- impostalayout seteazaaspect
- regledisposition
- adaptlayout: paslayoutaan adaptlayout
- passelayoutan prizpusobvzhled
- adattalayout adapteazaaspect
- adaptedisposition
- placeongrid: plaatsopgrid placeongrid
- amgitterausrichten umistinamrizku
- mettiingriglia plaseazapegrid
- placesurgrille
- moveongrid: verplaatsopgrid moveongrid
- amgitterneuausrichten premistinamrizku
- spostaagriglia mutapegrid
- deplacesurgrille
- showsetups: tooninstellingen showsetups
- zeigeeinstellungen ukaznastaveni
- mostraimpostazioni afiseazasetari
- montrereglages
- showframe: toonkader showframe
- zeigerahmen ukazramecek
- mostracornice afiseazarama
- montrecadre
- showgrid: toongrid showgrid
- zeigegitter ukazmrizku
- mostragriglia afiseazagrid
- montregrille
-% toonopbouw: toonopbouw showbuildup
-% zeigeaufbau ukazstrukturu
-% mostrabuildup afiseazabuildup
- showlayout: toonlayout showlayout
- zeigelayout ukazvzhled
- mostralyout afiseazaaspect
- montredisposition
- showprint: toonprint showprint
- zeigedruck ukazvytisk
- mostrastampa afiseazatiparire
- montreedition
- showstruts: toonstruts showstruts
- zeigestruts ukazpodpery
- mostrastruts afiseazastruts
- montrestruts
- definepapersize: definieerpapierformaat definepapersize
- definierepapierformat definujvelikostpapiru
- definiscidimensionicarta definestedimensiunehartie
- definittaillepapier
- setuppapersize: stelpapierformaatin setuppapersize
- stellepapierformatein nastavvelikostpapiru
- impostadimensionicarta seteazadimensiunihartie
- regletaillepapier
- setuppaper: stelpapierin setuppaper
- setuppaper setuppaper
- setuppaper setuppaper
- reglepapier
- setuparranging: stelarrangerenin setuparranging
- stelleanordnenein nastavusporadani
- impostaparranging seteazaaranjareapag
- reglearrangement
- version: versie version
- version verze
- versione versiune
- version
- setupbackgrounds: stelachtergrondenin setupbackgrounds
- stellehintergruendeein nastavpozadi
- impostasfondi seteazafundaluri
- reglearriereplans
- setupalign: steluitlijnenin setupalign
- stelleausrichtungein nastavzarovnani
- impostaallineamento seteazaalinierea
- reglealignement
- setupwhitespace: stelwitruimtein setupwhitespace
- stellezwischenraumein nastavbilamista
- impostaspaziobianco seteazaspatiualb
- regleespaceblanc
- setupinteraction: stelinteractiein setupinteraction
- stelleinteraktionein nastavinterakci
- impostainterazione seteazainteractiunea
- regleinteraction
- setupinteractionmenu: stelinteractiemenuin setupinteractionmenu
- stelleinteraktionsmenueein nastavinterakcnimenu
- impostamenuinterazione seteazameniuinteractiune
- reglemenuinteraction
- defineinteractionmenu: definieerinteractiemenu defineinteractionmenu
- definiereinteraktionsmenue definujinterakcnimenu
- definiscimenuinterazione definestemeniuinteractiune
- definitmenuinteraction
- disableinteractionmenu: blokkeerinteractiemenu disableinteractionmenu
- inaktiviereinteraktionsmenue zablokujinterakcnimenu
- disabilitamenuinterazione dezactiveazameniuinteractiune
- inhibemenuinteraction
- interactionmenu: interactiemenu interactionmenu
- interaktionsmenue interaktivnimenu
- menuinterattivo meniuinteractiune
- menuinteraction
- interactionbuttons: interactiebuttons interactionbuttons
- interaktionsknopfe interakcnitlacitka
- pulsantinterazione butoaneinteractiune
- boutonsinteraction
- interactionbar: interactiebalk interactionbar
- interaktionsbalken interakcnilista
- barrainterazione barainteractiune
- barreinteraction
- setupinteractionbar: stelinteractiebalkin setupinteractionbar
- stelleinteraktionsbalkenein nastavinterakcnilistu
- impostabarrainterazione seteazabarainteractiune
- reglebarreinteraction
- setupinteractionscreen: stelinteractieschermin setupinteractionscreen
- stelleinteraktionsbildschirmein nastavinterakcniobrazovku
- impostaschermointerazione seteazaecraninteractiune
- regleecraninteraction
- placebookmarks: plaatsbookmarks placebookmarks
- platzierebookmarks umistizalozky
- mettisegnalibro plaseazasemnecarte
- placemarquespages
- bookmark: bookmark bookmark
- bookmark zalozka
- segnalibro semncarte
- marquepage
- definelogo: definieerbeeldmerk definelogo
- definierelogo definujlogo
- definiscilogo definestelogo
- definitlogo
- placelogos: plaatsbeeldmerken placelogos
- platzierelogo umistiloga
- mettiloghi punelogouri
- placelogos
- definecolor: definieerkleur definecolor
- definierefarbe definujbarvu
- definiscicolore definesteculoare
- definitcouleur
- definecolorgroup: definieerkleurgroep definecolorgroup
- definierefarbengruppe definujskupinubarev
- definiscigruppocolori definestegrupculori
- definitgroupecouleur
- definepalet: definieerpalet definepalet
- definierepalette definujpaletu
- definiscitavolozza definestepaleta
- definitpalette
- graycolor: grijskleur graycolor
- graufarbe sedabarva
- coloregrigio culoaregri
- couleurgrise
- color: kleur color
- farbe barva
- colore culoare
- couleur
- startcolor: startkleur startcolor
- startfarbe startbarva
- iniziacolore startculoare
- demarrecouleur
- stopcolor: stopkleur stopcolor
- stopfarbe stopbarva
- terminacolore stopculoare
- stoppecouleur
- setupcolors: stelkleurenin setupcolors
- stellefarbenein nastavbarvy
- impostacolori seteazaculori
- reglecouleurs
- setupcolor: stelkleurin setupcolor
- stellefarbeein nastavbarvu
- impostacolore seteazaculoare
- reglecouleur
- setuppalet: stelpaletin setuppalet
- stellepaletteein nastavpaletu
- impostatavolozza seteazapaleta
- reglepalette
- showcolor: toonkleur showcolor
- zeigefarbe ukazbarvu
- mostracolore afiseazaculoare
- montrecouleur
- showcolorgroup: toonkleurgroep showcolorgroup
- zeigefarbengruppe ukazskupinubarev
- mostragruppocolori afiseazagrupculoare
- montregroupecouleur
- showpalet: toonpalet showpalet
- zeigepalette ukazpaletu
- mostratavolozza afiseazapaleta
- montrepalette
- comparecolorgroup: vergelijkkleurgroep comparecolorgroup
- vergleichefarbengruppe porovnejskupinubarev
- confrontagruppocolori comparagrupculoare
- comparegroupecouleur
- comparepalet: vergelijkpalet comparepalet
- vergleichepalette porovnejpaletu
- confrontatavolozza comparapaleta
- comparepalette
- colorvalue: kleurwaarde colorvalue
- farbewert hodnotabarvy
- valorecolore valoareculoare
- valeurcouleur
- greyvalue: grijswaarde greyvalue
- grauwert hodnotasedi
- valoregrigio valoaregri
- valeurgris
- startraster: startraster startraster
- startraster startrastr
- iniziaraster startraster
- demarreraster
- stopraster: stopraster stopraster
- stopraster stoprastr
- terminaraster stopraster
- stopperaster
- defineblock: definieerblok defineblock
- definiereblock definujblok
- definisciblocco definestebloc
- definitbloc
- setupblock: stelblokin setupblock
- stelleblockein nastavblok
- impostablocco seteazabloc
- reglebloc
- useblocks: gebruikblokken useblocks
- verwendebloecke uzijbloky
- usablocco folosestebloc
- utiliseblocs
- processblocks: verwerkblokken processblocks
- bearbeitebloecke zpracujbloky
- elaborablocchi proceseazabloc
- traiteblocs
- keepblocks: handhaafblokken keepblocks
- behaltebloecke zachovejbloky
- tieniblocchi pastreazablocuri
- gardeblocs
- selectblocks: selecteerblokken selectblocks
- waehlebloeckeaus vyberbloky
- selezionablocchi selecteazablocuri
- selectionneblocs
- hideblocks: verbergblokken hideblocks
- verbergebloecke schovejbloky
- nascondiblocchi ascundeblocuri
- cacheblocs
- bypassblocks: passeerblokken bypassblocks
- bypassblocks bypassblocks
- saltablocchi saripesteblocuri
- sauteblocs
- forceblocks: forceerblokken forceblocks
- forceblocks forceblocks
- forzablocchi forteazablocuri
- forceblocs
- nomoreblocks: geenblokkenmeer nomoreblocks
- keinebloeckemehr zadnedalsibloky
- bastablocchi gatablocuri
- pasplusdeblocs
- definelist: definieerlijst definelist
- definiereliste definujseznam
- definiscielenco definestelista
- definitliste
- definecombinedlist: definieersamengesteldelijst definecombinedlist
- definierezusammengestellteliste definujkombinovanyseznam
- definiscielencocombinato definestelistacombinata
- definitlisteimbriquee
- listsymbol: lijstsymbool listsymbol
- listsymbol listsymbol
- listsymbol listsymbol
- listesymbole
- placelist: plaatslijst placelist
- platziereliste umistiseznam
- mettielenco punelista
- placeliste
- plaatsruwelijst: plaatsruwelijst placerawlist
- placerawlist placerawlist
- placerawlist placerawlist
- placerawlist
- placecombinedlist: plaatssamengesteldelijst placecombinedlist
- platzierezusammengestellteliste umistikombinovanyseznam
- mettielencocombinato punelistacombinata
- placelisteinmbriquee
- writetolist: schrijfnaarlijst writetolist
- schreibezurliste zapisdoseznamu
- scriviinelenco scrieinlista
- ecritdansliste
- writebetweenlist: schrijftussenlijst writebetweenlist
- schreibezwischenliste zapismeziseznam
- scrividentroelenco scrieintreliste
- ecritentreliste
- immediatetolist: directnaarlijst immediatetolist
- immediatetolist immediatetolist
- immediatetolist immediatetolist
- immediatetolist
- immediatebetweenlist: directtussenlijst immediatebetweenlist
- immediatebetweenlist immediatebetweenlist
- immediatebetweenlist immediatebetweenlist
- immediatebetweenlist
- setuplist: stellijstin setuplist
- stellelisteein nastavseznam
- impostaelenco seteazalista
- regleliste
- setupcombinedlist: stelsamengesteldelijstin setupcombinedlist
- stellezusammengestelltelisteein nastavkombinovanyseznam
- impostaelencocombinato seteazalistacombinata
- reglelisteimbriquee
- determinelistcharacteristics: bepaallijstkenmerken determinelistcharacteristics
- bestimmelistencharakeristika stanovcharakteristickuseznamu
- determinacarattersticheelenco determinacaracteristicilelistei
- determinecaracteristiqueliste
- listlength: lijstlengte listlength
- listenlaenge delkaseznamu
- lunghezzaelenco lungimelista
- llongueurliste
- listwidth: lijstbreedte listwidth
- listenbreite sirkaseznamu
- ampiezzaelenco latimelista
- largeurliste
- listheight: lijsthoogte listheight
- listenhoehe vyskaseznamu
- altezzaelenco inaltimelista
- hauteurliste
- nolist: geenlijst nolist
- keineliste zadnyseznam
- nienteelenco faralista
- sansliste
- definereferencelist: definieerreferentielijst definereferencelist
- definierereferenzliste definujseznamodkazu
- definiscilistariferimenti definestelistareferinte
- definitlistereference
- placereferencelist: plaatsreferentielijst placereferencelist
- platzierereferenzliste umistiseznamodkazu
- mettilistariferimenti punelistareferinte
- placelistereference
- writetoreferencelist: schrijfnaarreferentielijst writetoreferencelist
- schreibezurreferenzliste zapisdoseznamuodkazu
- scriviinlistariferimenti scrieinlistareferinte
- ecritdanslistereference
- setupreferencelist: stelreferentielijstin setupreferencelist
- stellereferenzlisteein nastavseznamodkazu
- impostalistariferimenti seteazalistareferinte
- reglelistereference
- definefloat: definieerplaatsblok definefloat
- definieregleitobjekt definujplvouciobjekt
- definiscioggettomobile definestefloat
- definitflottant
- setupfloat: stelplaatsblokin setupfloat
- stellegleitobjektein nastavplvouciobjekt
- impostaoggettomobile seteazafloat
- regleflottant
- setupfloats: stelplaatsblokkenin setupfloats
- stellegleitobjekteein nastavplvouciobjekty
- impostaoggettimobili seteazafloats
- regleflottants
- splitfloat: splitsplaatsblok splitfloat
- teilegleitobjekt rozdelplvouciobjekt
- spezzaoggettomobile impartefloat
- separeflottant
- setupfloatsplitting: stelplaatsbloksplitsenin setupfloatsplitting
- stelleplatziegeteiltegleitobjekt nastavdeleniplvoucichobjektu
- impostaspezzamentooggettomobile seteazaimpartireafloat
- regleseparationflottant
- placefloat: plaatsplaatsblok placefloat
- placefloat placefloat
- placefloat placefloat
- placeflottant
- movesidefloat: verplaatszijblok movesidefloat
- movesidefloat movesidefloat
- movesidefloat movesidefloat
- movesidefloat
- defineplacement: definieerplaats defineplacement
- defineplacement defineplacement
- defineplacement defineplacement
- defineplacement
- setupplacement: stelplaatsin setupplacement
- setupplacement setupplacement
- setupplacement setupplacement
- setupplacement
- definecombination: definieercombinatie definecombination
- definecombination definecombination
- definecombination definecombination
- definecombination
- startcombination: startcombinatie startcombination
- startkombination startspojeni
- iniziacombinazione startcombinare
- demarrecombinaison
- stopcombination: stopcombinatie stopcombination
- stopkombination stopspojeni
- terminacombinazione stopcombinare
- stoppecombinaison
- placesidebyside: plaatsnaastelkaar placesidebyside
- platzierenebeneinander umistivedlesebe
- mettifiancoafianco punefatainfata
- placecoteacote
- placeontopofeachother: plaatsonderelkaar placeontopofeachother
- platziereuntereinander umistinadsebe
- mettiunosullaltro punedeasuprafiecareia
- placelesunsaudessusdesautres
- setupcaption: stelblokkopjein setupcaption
- stellebildunterschriftein nastavpopisek
- impostacaption seteazalegenda
- regleintitule
- setupcaptions: stelblokkopjesin setupcaptions
- stellebilderunterschriftein nastavpopisky
- impostacaptions seteazalegendele
- regleintitules
- setupcombinations: stelcombinatiesin setupcombinations
- stellekombinationein nastavspojeni
- impostacombinazioni seteazacombinari
- reglecombinaisons
- startoverlay: startoverlay startoverlay
- startoverlay startprekryv
- iniziasovrapposizione startoverlay
- demarrerevetement
- stopoverlay: stopoverlay stopoverlay
- stopoverlay stopprekryv
- terminasovrapposizione stopoverlay
- stopperevetement
- defineregister: definieerregister defineregister
- definiereregister definujrejstrik
- definisciregistro definesteregistru
- definitregistre
- coupleregister: koppelregister coupleregister
- verknuepfregister propojenyrejstrik
- accoppiaregistro cupleazaregistru
- coupleregistre
- setupregister: stelregisterin setupregister
- stelleregisterein nastavrejstrik
- impostaregistro seteazaregistru
- regleregistre
- writetoregister: schrijfnaarregister writetoregister
- schreibezumregister zapisdorejstriku
- scriviinregistro scrieinregistru
- ecritregistre
- completeregister: volledigregister completeregister
- completeregister completeregister
- completeregister completeregister
- completeregistre
- placeregister: plaatsregister placeregister
- platziereregister umistirejstrik
- mettiregistro puneregistru
- placeregistre
-determineregistercharacteristics: bepaalregisterkenmerken determineregistercharacteristics
- bestimmeregistercharakteristika urcicharakteristikurejstriku
- determinacaratteristicheregistro determinacaracteristiciregistru
- determinecaracteristiquesregistre
- definesorting: definieersorteren definesorting
- definieresortieren definujtrideni
- definisciordinamento definestesortare
- definittri
- definesynonyms: definieersynoniemen definesynonyms
- definieresynonyme definujsynonyma
- definiscisinonimi definestesinonim
- definitsynonymes
- setupsorting: stelsorterenin setupsorting
- stellesortierenein nastavtrideni
- impostaordinamento seteazasortare
- regletri
- setupsynonyms: stelsynoniemenin setupsynonyms
- stellesynonymein nastavsynonyma
- impostasinonimi seteazasinonime
- reglesynonymes
- startsynchronization: startsynchronisatie startsynchronization
- startsynchronisation startsynchronizace
- iniziasincronizzazione startsincronizare
- demarresynchronisation
- stopsynchronization: stopsynchronisatie stopsynchronization
- stopsynchronisation stopsynchronizace
- terminasincronizzazione stopsincronizare
- stoppesynchronisation
- setupsynchronizationbar: stelsynchronisatiebalkin setupsynchronizationbar
- stellesynchronisationsbalkenein nastavsynchronizacnilistu
- impostabarrasincronizzazione setarebarasincronizare
- reglebarresynchronisation
- setupsynchronization: stelsynchronisatiein setupsynchronization
- stellesynchronisationein nastavsynchronizaci
- impostasincronizzazione setaresincronizare
- reglesynchronisation
- synchronizationbar: synchronisatiebalk synchronizationbar
- synchronisationsbalken synchronizacnilista
- barrasincronizzazione barasincronizare
- barresynchronisation
- synchronize: synchroniseer synchronize
- synchronisieren synchronizovat
- sincronizza sincronizeaza
- synchronise
- useexternaldocument: gebruikexterndocument useexternaldocument
- verwendeexteresdokument uzijexternidokument
- usadocumentoesterno folosestedocumentextern
- utilisedocumentexterne
- useURL: gebruikURL useURL
- verwendeURL uzijURL
- usaURL folosesteURL
- utiliseURL
- useurl: gebruikurl useurl
- verwendeurl uzijurl
- usaurl folosesteurl
- utiliseurl
- setupurl: stelurlin setupurl
- stelleurlein nastavurl
- impostaurl seteazaurl
- regleurl
- coupledocument: koppeldocument coupledocument
- verknuepfedokument propojenydokument
- accoppiadocumento cupleazadocument
- coupledocument
- setupprograms: stelprogrammasin setupprograms
- stelleprogrammein nastavprogramy
- impostaprogrammi seteazaprograme
- regleprogrammes
- defineprogram: definieerprogramma defineprogram
- definiereprogramme definujprogram
- definisciprogramma definesteprogram
- definitprogramme
- program: programma program
- programm program
- programma program
- programme
- setuppagetransitions: stelpaginaovergangenin setuppagetransitions
- stelleseitenuebergangein nastavprechodstrany
- impostatransizionepagina seteazatranzitiepagina
- regletransitionspage
- defineprofile: definieerprofiel defineprofile
- definiereprofil definujprofil
- definisciprofilo definesteprofil
- definitprofil
- defineversion: definieerversie defineversion
- definiereversion definujverzi
- definisciversion definesteversiune
- definitversion
- markversion: markeerversie markversion
- beschrifteversion oznacverzi
- marcaversione marcheazaversiune
- marquageversion
- selectversion: selecteerversie selectversion
- waehleversionaus vyberverzi
- selezionaversione selecteazaversiune
- selectionneversion
- startprofile: startprofiel startprofile
- startprofil startprofil
- iniziaprofilo startprofil
- demarreprofil
- startversion: startversie startversion
- startversion startverze
- iniziaversione startversiune
- demarreversion
- setupprofiles: stelprofielenin setupprofiles
- stelleprofilein nastavprofily
- impostaprofili seteazaprofile
- regleprofils
- setupversions: stelversiesin setupversions
- stelleversionein nastavverze
- impostaversioni seteazaversiuni
- regleversions
- stopprofile: stopprofiel stopprofile
- stopprofil stopprofil
- terminaprofili stopprofil
- stoppeprofil
- stopversion: stopversie stopversion
- stopversion stopverze
- terminaversioni stopversiune
- stoppeversion
- followprofile: volgprofiel followprofile
- folgeprofil dodrzujprofil
- seguiprofilo urmeazaprofil
- suivantprofil
- followprofileversion: volgprofielversie followprofileversion
- folgeprofilversion dodrzujverziprofilu
- seguiversioneprofilo urmeazaversiuneprofil
- suivantversionprofil
- followversion: volgversie followversion
- folgeversion dodrzujverzi
- seguiversione urmeazaversiune
- suivantversion
- definedescription: doordefinieren definedescription
- definierebeschreibung definujpopis
- definiscidescrizione definestedescriere
- definitdescription
- definelabel: doorlabelen definelabel
- definierelabel definujpopisek
- definiscietichetta definesteeticheta
- definitetiquette
- defineenumeration: doornummeren defineenumeration
- definierenummerierung definujvycet
- definiscienumerazione definesteenumerare
- definitenumeration
- defineindenting: doorspringen defineindenting
- definiereeinzug definujodsazovani
- definiscirientro definestealiat
- definitcompoalinea
- setupdescriptions: steldoordefinierenin setupdescriptions
- definierebeschreibungen nastavpopisy
- impostadescrizioni seteazadescriere
- regledescriptions
- setupenumerations: steldoornummerenin setupenumerations
- stellebeschreibungein nastavvycty
- impostaenumerazioni seteazaenumerare
- regleenumerations
- setupindentations: steldoorspringenin setupindentations
- stelleeinzuegein nastavodsazeni
- impostarientri seteazaaliniate
- reglealineas
- setuptab: steltabin setuptab
- stelletabein nastavtab
- impostatab seteazatab
- regletab
- tab: tab tab
- tab tab
- tab tab
- tab
- setupexternalfigures: stelexternefigurenin setupexternalfigures
- stelleexterneabbildungenein nastavexterniobrazy
- impostafigureesterne seteazafiguriexterne
- reglefiguresexternes
- showexternalfigures: toonexternefiguren showexternalfigures
- zeigeexterneabbildungen ukazexterniobrazy
- mostrafiguresterne afiseazafiguriexterne
- montrefiguresexternes
- externalfigure: externfiguur externalfigure
- externeabbildung externiobraz
- figuraesterna figuraexterna
- figureexterne
- useexternalfigure: gebruikexternfiguur useexternalfigure
- verwendeexterneabbildung uzijexterniobraz
- usafiguraesterna folosestefiguraexterna
- utilisefigureexterne
- startfigure: startfiguur startfigure
- startabbildung startobraz
- iniziafigura startfigura
- demarrefigure
- referring: refereer referring
- referieren odkazujici
- referring referring
- faitreference
- remark: toelichting remark
- bemerkung oznaceni
- commento remarca
- commentaire
- colorbar: kleurenbalk colorbar
- farbbalken barevnalista
- barracolori baraculoare
- barrecouleur
- grid: rooster grid
- gitter mrizka
- griglia grid
- grille
- button: button button
- knopf tlacitko
- pulsante buton
- bouton
- menubutton: menubutton menubutton
- menueknopf tlacitkomenu
- pulsantemenu butonmeniu
- boutonmenu
- setupbuttons: stelbuttonsin setupbuttons
- stelleknopfein nastavtlacitka
- impostapulsanti seteazabutoane
- regleboutons
- usereferences: gebruikreferenties usereferences
- verwendereferenzen uzijodkazy
- usariferimenti folosestereferinte
- utilisereferences
- placereferencelist: plaatsreferentielijst placereferencelist
- placereferencelist placereferencelist
- placereferencelist placereferencelist
- placelistereference
- setupreferencelist: stelreferentielijstin setupreferencelist
- stellereferenzlisteein nastavseznamodkazu
- impostalistariferimenti seteazalistareferinte
- reglelistereference
- setupreferencing: stelrefererenin setupreferencing
- stellereferenzierenein nastavodkazovani
- impostariferimento seteazareferinte
- reglereferencage
- textreference: tekstreferentie textreference
- textreferenz odkaznatext
- riferimentotesto referintatext
- referencetexte
- pagereference: paginareferentie pagereference
- seitenreferenz odkaznastranu
- riferimentopagina referintapagina
- referencepage
- reference: referentie reference
- referenz odkaz
- riferimento referinta
- reference
- definereference: definieerreferentie definereference
- definierereferenz definujodkaz
- definisciriferimento definestereferinte
- definitreference
- definereferenceformat: definieerreferentieformaat definereferenceformat
- definierereferenzformat definujformatodkazu
- definisciformatoriferimento definesteformatreferinte
- definitformatreference
- useJSscripts: gebruikJSscripts useJSscripts
- verwendeJSscript uzijJSscripts
- usaJSscripts folosestescriptJS
- utiliseJSscripts
- from: uit from
- von zref
- da din
- de
- in: in in
- in tref
- in in
- dans
- at: op at
- bei pref
- al la
- a
- about: - about
- ueber oref
- intorno despre
- concernant
- goto: naar goto
- zu jdina
- vaia dute
- va
- atpage: oppagina atpage
- aufseite nastrane
- apagina lapagina
- alapage
- somewhere: ergens somewhere
- irgendwo nekde
- daqualcheparte undeva
- qqpart
- navigating: navigerend navigating
- navigating navigating
- navigating navigating
- navigating
- ref: ref ref
- ref ref
- rif ref
- ref
- gotobox: naarbox gotobox
- zurbox jdinabox
- vaiabox dutebox
- vaalaboite
- gotopage: naarpagina gotopage
- zurseite jdinastranu
- vaiapagina dutepagina
- vaalapage
- placeformula: plaatsformule placeformula
- platziereformel umistirovnici
- mettiformula puneformula
- placeformule
- placesubformula: plaatssubformule placesubformula
- platziereunterformel umistipodrovnici
- mettisottoformula punesubformula
- placesousformule
- moveformula: verplaatsformule moveformula
- moveformula moveformula
- spostaformula moveformula
- deplaceformule
- setupformulas: stelformulesin setupformulae
- stelleformelnein nastavrovnice
- impostaformule seteazaformule
- regleformules
- formulanumber: formulenummer formulanumber
- formelnummer cislorovnice
- numeroformula numarformula
- numeroformule
- subformulanumber: subformulenummer subformulanumber
- unterformelnummer cislopodrovnice
- numerosottoformula numarsubformula
- numerosousformule
- leg: leg leg
- leg leg
- leg leg
- leg
- fact: geg fact
- geg fakt
- fatto fact
- fait
- mathematics: wiskunde mathematics
- mathematik matematika
- matematica matematica
- mathematique
- dimension: dimensie dimension
- dimension rozmer
- dimensione dimensiune
- dimension
- nodimension: geendimensie nodimension
- keindimension zadnyrozmer
- nientedimensioni faradimensiune
- sansdimension
- startenvironment: startomgeving startenvironment
- startumgebung startprostredi
- iniziaambiente startmediu
- demarreenvironement
- stopenvironment: stopomgeving stopenvironment
- stopumgebung stopprostredi
- terminaambiente stopmediu
- stoppeenvironement
- startcomponent: startonderdeel startcomponent
- startkomponente startkomponenta
- iniziacomponente startcomponenta
- demarrecomposant
- stopcomponent: stoponderdeel stopcomponent
- stopkomponente stopkomponenta
- terminacomponente stopcomponenta
- stoppecomposant
- startproduct: startprodukt startproduct
- startprodukt startprodukt
- iniziaprodotto startprodus
- demarreproduit
- stopproduct: stopprodukt stopproduct
- stopprodukt stopprodukt
- terminaprodotto stopprodus
- stoppeproduit
- startproject: startprojekt startproject
- startprojekt startprojekt
- iniziaprogetto startproiect
- demarreprojet
- stopproject: stopprojekt stopproject
- stopprojekt stopprojekt
- terminaprogetto stopproiect
- stoppeprojet
- setups: instellingen setups
- einstellungen nastaveni
- impostazioni setari
- reglages
- project: projekt project
- projekt projekt
- progetto proiect
- projet
- component: onderdeel component
- komponente komponenta
- componenet componenta
- composant
- product: produkt product
- produkt produkt
- prodotto produs
- produit
- environment: omgeving environment
- umgebung prostredi
- ambiente mediu
- environement
- nomorefiles: geenfilesmeer nomorefiles
- keinedateienmehr zadnedalsisoubory
- bastafile farafisiere
- pasplusdefichiers
- getbuffer: haalbuffer getbuffer
- holepuffer ziskejbuffer
- prendibuffer adubuffer
- prendbuffer
- setupbuffer: stelbufferin setupbuffer
- stellepufferein nastavbuffer
- impostabuffer seteazabuffer
- reglebuffer
- typebuffer: typebuffer typebuffer
- tippepuffer typebuffer
- typebuffer scriebuffer
- tapebuffer
- definebuffer: definieerbuffer definebuffer
- definierepuffer definujbuffer
- definiscibuffer definestebuffer
- definitbuffer
- unitmeaning: betekenis unitmeaning
- bedeutung vyznam
- nomeunita numeunitate
- sensunite
- infull: voluit infull
- volleswort plnezneni
- perlungo pelung
- infull
- quotation: citaat quotation
- zitat citace
- citazione citat
- citation
- quote: citeer quote
- zitieren citovat
- menzione minicitat
- citer
- startquotation: startcitaat startquotation
- startzitat startcitace
- iniziacitazione startcitat
- demarrecitation
- stopquotation: stopcitaat stopquotation
- stopzitat stopcitace
- terminacitazione stopcitat
- stoppecitation
- setupquote: stelciterenin setupquote
- stellezitierenein nastavcitaci
- impostamenzione seteazaminicitat
- demarreciter
- define: definieer define
- definieren definuj
- definisci defineste
- definit
- redo: herhaal redo
- wiederholen opakovat
- rifai refa
- refait
- usecommands: gebruikcommandos usecommands
- verwendebefehl uzijprikazy
- usacomandi folosestecomenzi
- utilisecommandes
- definestartstop: definieerstartstop definestartstop
- definierestartstop definujstartstop
- definisciiniziatermina definestestartstop
- definitdemarrestoppe
- setupstartstop: stelstartstopin setupstartstop
- setupstartstop setupstartstop
- impostainiziatermina setupstartstop
- regledemarrestoppe
- startlocal: startlokaal startlocal
- startlokal startlokalni
- inizialocale startlocal
- demarrelocal
- stoplocal: stoplokaal stoplocal
- stoplokal stoplokalni
- terminalocale stoplocal
- stoppelocal
- startglobal: startglobaal startglobal
- startglobal startglobalni
- iniziaglobale startglobal
- demarreglobal
- stopglobal: stopglobaal stopglobal
- stopglobal stopglobalni
- terminaglobale stopblobal
- stoppeglobal
- macroname: naam name
- name jmeno
- nome nume
- nommacro
- definemakeup: definieeropmaak definemakeup
- definiereumbruch definujupravu
- definiscimakeup definestemakeup
- definitmakeup
- setupmakeup: stelopmaakin setupmakeup
- stelleumbruchein nastavupravu
- impostamakeup seteazamakeup
- reglemakeup
- startmakeup: startopmaak startmakeup
- startumbruch startuprava
- iniziamakeup startmakeup
- demarremakeup
- stopmakeup: stopopmaak stopmakeup
- stopumbruch stopuprava
- terminamakeup stopmakeup
- stoppemakeup
- useexternalsoundtrack: gebruikexterngeluidsfragment useexternalsoundtrack
- verwendeexternestonstueck uzijexternizvuk
- usacolonnasonoraesterna folosestemuzicaexterna
- utilisepsiteaudioexterne
- useexternalfile: gebruikexternefile useexternalfile
- verwendeexternedatei uzijexternisoubor
- usafileesterno folosestefisierextern
- utilisefichierexterne
- useexternalfiles: gebruikexternefiles useexternalfiles
- verwendeexternedateien uzijexternisoubory
- usafileesterni folosestefisiereexterne
- utilisefichiersexternes
- referral: kenmerk referral
- verweis odkaz
- referral referit
- recommandation
- referraldate: kenmerkdatum referraldate
- verweisdatum odkaznadatum
- datareferral datareferit
- daterecommandation
- high: hoog high
- hoch vysoky
- ap inalt
- haut
- lohi: laho lohi
- tiho nivy
- pedap jossus
- baha
- low: laag low
- tief nizky
- ped jos
- bas
- fraction: breuk fraction
- bruch zlomek
- frazione fractie
- fraction
- chem: chem chem
- chem chem
- chim chem
- chem
- startopposite: startnaast startopposite
- startgegenueber startprotejsek
- iniziaopposto startopozit
- demarreopposition
- stopopposite: stopnaast stopopposite
- stopgegenueber stopprotejsek
- terminaopposto stopopozit
- stoppeopposition
- setupoppositeplacing: stelnaastplaatsenin setupoppositeplacing
- stellegegenueberplatzierenein nastavumisteniprotejsku
- impostaposizionamentoopposti seteazaplasareaopozita
- regleplacementopposition
- startpositioning: startpositioneren startpositioning
- startpositionieren startumistovani
- iniziaposizionamento startpozitionare
- demarrepositionnement
- stoppositioning: stoppositioneren stoppositioning
- stoppositionieren stopumistovani
- terminaposizionamento stoppozitionare
- stoppepositionnement
- position: positioneer position
- position pozice
- posizione pozitie
- position
- setuppositioning: stelpositionerenin setuppositioning
- stellepositionierenein nastavumistovani
- impostaposizionamento setarepozitie
- reglepositionnement
- rotate: roteer rotate
- drehen otocit
- ruota roteste
- oriente
- setuprotate: stelroterenin setuprotate
- stelledrehenein nastavotoceni
- impostarotazione seteazarotare
- regleoriente
- mirror: spiegel mirror
- spiegeln zrcadlit
- riflessione reflexie
- reflete
- scale: schaal scale
- format meritko
- scala scala
- echelle
- setupnumbering: stelnummerenin setupnumbering
- stellenummerierungein nastavcislovani
- impostanumerazione seteazanumerotare
- reglenumerotation
- reset: reset reset
- ruecksetzten reset
- reimposta reset
- raz
- setuppublications: stelpublicatiesin setuppublications
- stellepublikationein nastavpublikace
- impostapubblicazioni seteazapublicatii
- reglepublications
- publication: publicatie publication
- publikation publikace
- pubblicazione publicatie
- publication
- definehbox: definieerhbox definehbox
- definierehbox definujhbox
- definiscihbox definestehbox
- definithbox
- adding: toevoegen adding
- zusatz scitani
- adding adauga
- ajout
- periods: punten periods
- punkt tecky
- punti puncte
- periodes
- setuphyphenmark: stelkoppeltekenin setuphyphenmark
- stellebindestrichein nastavdelitko
- impostasegnosillabazione seteazaliniesilabe
- reglemarquagehyphenation
- setupinterlinespace: stelinterliniein setupinterlinespace
- stellezeilenabstandein nastavmeziradkovoumezeru
- impostainterlinea seteazaspatiuinterliniar
- regleespacementinterligne
- setupspacing: stelspatieringin setupspacing
- stellespatiumein nastavradkovani
- impostaspaziatura seteazaspatiu
- regleespacement
- setuptolerance: steltolerantiein setuptolerance
- stelletoleranzein nastavtoleranci
- impostatolleranza seteazatoleranta
- regletolerance
- setupsystem: stelsysteemin setupsystem
- stellesystemein nastavsystem
- impostasistema seteazasistem
- reglesysteme
- usepath: gebruikgebied usedirectory
- benutzeverzeichnis uzijadresar % TOBIAS
- usacartella folosestedirector
- utilisechemin
- defineparagraphs: definieeralineas defineparagraphs
- definiereabsaetze definujodstavce
- definiscicapoversi definesteparagraf
- definitparagraphes
- setupparagraphs: stelalineasin setupparagraphs
- stelleabsaetzeein nastavodstavce
- impostacapoversi seteazaparagrafe
- regleparagraphes
- donttest: geentest donttest
- keintest zadnytest
- notest nutesta
- sanstest
- setupcomment: stelcommentaarin setupcomment
- stellekommentarein nastavkomentar
- impostacommento seteazacomentariu
- reglecommentaire
- comment: commentaar comment
- kommentar komentar
- commento comentariu
- commentaire
- definefield: definieerveld definefield
- definierefeld definujpole
- definiscicampo definestecamp
- definitchamp
- definemainfield: definieerhoofdveld definemainfield
- definierehauptfeld definujhlavnipole
- definiscicampoprincipale definestecampprincipal
- definitchampprincipal
- definesubfield: definieersubveld definesubfield
- definieresubfeld definujpodpole
- definiscisottocampo definestesubcamp
- definitsouschamp
- clonefield: kloonveld clonefield
- klonierefeld klonujpole
- clonacampo cloneazacamp
- clonechamp
- copyfield: copieerveld copyfield
- kopierefeld kopirujpole
- copiacampo copiazacamp
- copitchamp
- setupfield: stelveldin setupfield
- stellefeldein nastavpole
- impostacampo seteazacamp
- reglechamp
- setupfields: stelveldenin setupfields
- stellefelderin nastavvsechnapole
- impostacampi seteazacampuri
- reglechamps
- field: veld field
- feld pole
- campi camp
- champ
- fitfield: passendveld fitfield
- passendfeld prizpusobivepole % or vhodnepole
- adattacampo potrivestecamp
- ajustechamp
- logfields: registreervelden logfields
- registrierefelder zaznamovepole
- logcampi logcampuri
- logchamp
- showfields: toonvelden showfields
- zeigefelder ukazpole
- mostracampi afiseazacampuri
- montrechamps
- tooltip: suggestie tooltip
- tooltip bublinkovanapoveda
- tooltip tooltip
- suggestion
- fillinfield: invulveld fillinfield
- ausfuellfeld vyplnovepole
- camporiempimento campumplere
- remplitchamp
- definefieldstack: definieerveldstapel definefieldstack
- definierefeldstapel definujzasobnikpoli
- definiscistackcampi definestestivacampuri
- definitpilechamp
- fieldstack: veldstapel fieldstack
- feldstapel zasobnikpoli
- stackcampi stivacampuri
- pilechamp
- setupforms: stelformulierenin setupforms
- setupforms setupforms
- impostaforms seteazaformulare
- regleformulaires
- setupclipping: stelclipin setupclipping
- stelleausschnittein nastavorez
- impostaclippling seteazaclipping
- regleclipping
- clip: clip clip
- ausschnitt orez
- clip clip
- clip
- placelegend: plaatslegenda placelegend
- platzierelegende umistilegendu
- mettilegenda punelegenda
- placelegende
- setuplegend: stellegendain setuplegend
- stellelegendeein nastavlegendu
- impostalegenda seteazalegenda
- reglelegende
- setuppagecomment: stelpaginacommentaarin setuppagecomment
- stelleseitenkommentarein nastavkomentarstrany
- impostacommentopagina seteazacomentariupagina
- reglecommentairepage
- setupstrut: stelstrutin setupstrut
- setupstrut setupstrut
- impostastrut seteazastrut
- reglestrut
- definerule: definieerlijn definerule
- definerule definerule
- definiscilinea definesterigla
- definitregle
- placerule: plaatslijn placerule
- placerule placerule
- mettilinea punerigla
- placeregle
- setuprule: stellijnin setuprule
- setuprule setuprule
- impostalinea seteazarigla
- regleregle
- definetextvariable: definieertekstvariabele definetextvariable
- definetextvariable definetextvariable
- definiscivariabiletesto definestevariabilatext
- definitvariabletexte
- setuptextvariable: steltekstvariabelein setuptextvariable
- setuptextvariable setuptextvariable
- impostavariabiletesto seteazavariabilatext
- reglevariabletexte
- settextvariable: kentekstvariabeletoe settextvariable
- settextvariable settextvariable
- setvariabiletesto setvariabilatext
- affectevariabletexte
- placetextvariable: plaatstekstvariabele placetextvariable
- placetextvariable placetextvariable
- mettivariabiletesto punevariabilatext
- placevariabletexte
- textvariable: tekstvariabele textvariable
- textvariable textvariable
- variabiletesto variabilatext
- variabletexte
- definetextposition: definieertekstpositie definetextposition
- definetextposition definetextposition
- definisciposizionetesto definestepozitietext
- definitpositiontexte
- setuptextposition: steltekstpositiein setuptextposition
- setuptextposition setuptextposition
- impostaposizionetesto seteazapozitietext
- reglepositiontexte
- positiontext: positioneertekst positiontext
- positiontext positiontext
- posizionatesto pozitietext
- positionnetexte
- definerawfont: definerawfont definerawfont
- definerawfont definerawfont
- definiscifontgrezzo definestefontraw
- definitpolicebrute
- switchtorawfont: switchtorawfont switchtorawfont
- switchtorawfont switchtorawfont
- passaafontgrezzo trecilafontraw
- changepolicebrute
- placeheadtext: plaatskoptekst placeheadtext
- placeheadtext placeheadtext
- posizionatestotesta placeheadtext
- placetextetete
- placeheadnumber: plaatskopnummer placeheadnumber
- placeheadnumber placeheadnumber
- posizionanumerotesta placeheadnumber
- placenumerotete
- definepagebreak: definieerpaginaovergang definepagebreak
- definepagebreak definepagebreak
- definepagebreak definepagebreak
- definitsautdepage
- definecolumnbreak: definieerkolomovergang definecolumnbreak
- definecolumnbreak definecolumnbreak
- definecolumnbreak definecolumnbreak
- definitsautdecolonne
- definemathalignment: definieerwiskundeuitlijnen definemathalignment
- definemathalignment definemathalignment
- definemathalignment definemathalignment
- definemathalignment
- setupmathalignment: stelwiskundeuitlijnenin setupmathalignment
- setupmathalignment setupmathalignment
- setupmathalignment setupmathalignment
- setupmathalignment
-
-\stopcommands
-
-% ^ ^ ^ nadenken over \settextvariable vs \setuptextvariable in nl
-
-%D For downward compatibilities sake:
-
-\startcommands dutch english
- german czech
- italian romanian
- french
-
- setupitemgroups: stelopsommingenin setupitemizations
- stelleaufzaehlungenein nastavvycty
- impostaelencazioni setareitemization
- reglegroupeselements
-
-\stopcommands
-
-%D \stopcompressdefinitions
-
-%D There are a lot of variables that users can use in setups
-%D and dedicated macros. ({\em I still have to check the
-%D english names.})
-
-%D \startcompressdefinitions
-
-\startcommands dutch english
- german czech
- italian romanian
- french
-
- topheight: bovenhoogte topheight
- hoeheoben vyskahorejsku
- altezzacima inaltimesus
- hauteursup
- topdistance: bovenafstand topdistance
- abstandoben vzdalenosthorejsku
- distanzacima distantasus
- distancesup
- headerheight: hoofdhoogte headerheight
- kopfzeilenhoehe vyskazahlavi
- altezzaintestazione inaltimeantet
- hauteurentete
- headerdistance: hoofdafstand headerdistance
- kopfzeilenabstand vzdalenostzahlavi
- distanzaintestazione distantaantet
- distanceentete
- textheight: teksthoogte textheight
- texthoehe vyskatextu
- altezzatesto inaltimetext
- hauteurtexte
- footerdistance: voetafstand footerdistance
- fusszeileabstand vzdalenostupati
- distanzapdp distantasubsol
- distancepdp
- footerheight: voethoogte footerheight
- fusszeilenhoehe vyskaupati
- altezzapdp inaltimesubsol
- hauteurpdp
- bottomdistance: onderafstand bottomdistance
- abstandunten vzdalenostspodku
- distanzafondo distantajos
- distanceinf
- bottomheight: onderhoogte bottomheight
- hoeheunten vyskaspodku
- altezzafondo inaltimejos
- hauteurinf
- marginwidth: margebreedte marginwidth
- marginalbreite sirkamarginalie
- ampiezzamargine latimemargine
- largeurmarge
- leftmarginwidth: linkermargebreedte leftmarginwidth
- linkemarginalbreite sirkalevemarginalie
- ampiezzamarginesinistro latimemarginestanga
- largeurmargegauche
- rightmarginwidth: rechtermargebreedte rightmarginwidth
- rechtemarginalbreite sirkapravemarginalie
- ampiezzamarginedestro latimemarginedreapta
- largeurmargedroite
- margindistance: margeafstand margindistance
- marginalafstand vzdalenostmarginalie
- distanzamargine distantamargine
- distancemarge
- leftmargindistance: linkermargeafstand leftmargindistance
- linkemarginalafstand vzdalenostlevemarginalie
- distanzamarginesinistro distantamarginestanga
- distancemargegauche
- rightmargindistance: rechtermargeafstand rightmargindistance
- rechtemarginalafstand vzdalenostpravemarginalie
- distanzamarginedestro distantamarginedreapta
- distancemargedroite
- edgewidth: randbreedte edgewidth
- randbreite sirkaokraje
- ampiezzabordo latimecolturi
- largeurbord
- leftedgewidth: linkerrandbreedte leftedgewidth
- breitelinkerrand sirkalevehookraje
- ampiezzabordosinistro latimecoltstanga
- largeurbordgauche
- rightedgewidth: rechterrandbreedte rightedgewidth
- breiterechterrand sirkapravehookraje
- ampiezzabordodestro latimecoltdreapta
- largeurborddroit
- edgedistance: randafstand edgedistance
- randabstand vzdalenostokraje
- distanzabordo distantacolt
- distancebord
- leftedgedistance: linkerrandafstand leftedgedistance
- abstandlinkerrand vzdalenostlevehookraje
- distanzabordosinistro distantacoltstanga
- distancebordgauche
- rightedgedistance: rechterrandafstand rightedgedistance
- abstandrechterrand vzdalenostpravehookraje
- distanzabordodestro distantacoltdreapta
- distanceborddroit
- innermarginwidth: binnenmargebreedte innermarginwidth
- innermarginwidth innermarginwidth
- innermarginwidth innermarginwidth
- innermarginwidth
- outermarginwidth: buitenmargebreedte outermarginwidth
- outermarginwidth outermarginwidth
- outermarginwidth outermarginwidth
- outermarginwidth
- innermargindistance: binnenmargeafstand innermargindistance
- innermargindistance innermargindistance
- innermargindistance innermargindistance
- innermargindistance
- outermargindistance: buitenmargeafstand outermargindistance
- outermargindistance outermargindistance
- outermargindistance outermargindistance
- outermargindistance
- inneredgewidth: binnenrandbreedte inneredgewidth
- inneredgewidth inneredgewidth
- inneredgewidth inneredgewidth
- inneredgewidth
- outeredgewidth: buitenrandbreedte outeredgewidth
- outeredgewidth outeredgewidth
- outeredgewidth outeredgewidth
- outeredgewidth
- inneredgedistance: binnenrandafstand inneredgedistance
- inneredgedistance inneredgedistance
- inneredgedistance inneredgedistance
- inneredgedistance
- outeredgedistance: buitenrandafstand outeredgedistance
- outeredgedistance outeredgedistance
- outeredgedistance outeredgedistance
- outeredgedistance
- textwidth: tekstbreedte textwidth
- textbreite sirkatextu
- ampiezzatesto latimetext
- largeurtexte
- makeupwidth: zetbreedte makeupwidth
- satzbreite sirkasazby
- ampiezzamakeup latimemakeup
- largeurmakeup
- makeupheight: zethoogte makeupheight
- satzhoehe vyskasazby
- altezzamakeup inaltimemakeup
- hauteurmakeup
- topspace: kopwit topspace
- kopfweite odsazenishora
- spaziocima spatiusus
- espacesup
- bottomspace: bodemwit bottomspace
- bottomspace bottomspace
- spaziofondo spatiujos
- espaceinf
- backspace: rugwit backspace
- rumpfweite odsazenizleva
- spaziodietro spatiuspate
- retourarriere
- cutspace: snijwit cutspace
- cutspace cutspace
- cutspace cutspace
- cutspace
- paperwidth: papierbreedte paperwidth
- papierbreite sirkapapiru
- ampiezzacarta latimehartie
- largeurpapier
- paperheight: papierhoogte paperheight
- papierhoehe vyskapapiru
- altezzacarta inaltimehartie
- hauteurpapier
- printpaperwidth: printpapierbreedte printpaperwidth
- printpapierbreite sirkatiskpapiru
- ampiezzacartastampa latimehartieimprimanta
- largeureditionpapier
- printpaperheight: printpapierhoogte printpaperheight
- printpapierhoehe vyskatiskpapiru
- altezzacartastampa inaltimehartieimprimanta
- hauteureditionpapier
- pageoffset: paginaoffset pageoffset
- pageoffset pageoffset
- pageoffset pageoffset
- pageoffset
- pagedepth: paginadiepte pagedepth
- pagedepth pagedepth
- pagedepth pagedepth
- pagedepth
- headlevel: kopniveau headlevel
- kopfniveau hlavniuroven
- livellotesta niveltitlu
- niveautete
- linewidth: lijndikte linethickness
- liniendicke tloustkacary
- spessoreriga grosimelinie
- largeurligne
- totalnumberofpages: totaalaantalpaginas totalnumberofpages
- gesamtseitenanzahl celkovypocetstran
- numerototaledipagine numartotalpagini
- nombretotaldepages
- numberofsubpages: aantalsubpaginas numberofsubpages
- numberofsubpages numberofsubpages
- numberofsubpages numberofsubpages
- nombredesouspages
- useXMLfilter: gebruikXMLfilter useXMLfilter
- useXMLfilter useXMLfilter
- useXMLfilter useXMLfilter
- useXMLfilter
- definecolumnset: definieerkolomgroep definecolumnset
- definecolumnset definecolumnset
- definiscigruppocolonne definecolumnset
- definitjeucolonne
- setupcolumnset: stelkolomgroepin setupcolumnset
- setupcolumnset setupcolumnset
- impostagruppocolonne setupcolumnset
- reglejeucolonne
- startcolumnset: startkolomgroep startcolumnset
- startcolumnset startcolumnset
- iniziagruppocolonne startcolumnset
- demarrejeucolonne
- stopcolumnset: stopkolomgroep stopcolumnset
- stopcolumnset stopcolumnset
- terminagruppocolonne stopcolumnset
- stoppejeucolonne
- setupcolumnsetlines: stelkolomgroepregelsin setupcolumnsetlines
- setupcolumnsetlines setupcolumnsetlines
- setupcolumnsetlines setupcolumnsetlines
- setupcolumnsetlines
- setupcolumnsetstart: stelkolomgroepstartin setupcolumnsetstart
- setupcolumnsetstart setupcolumnsetstart
- setupcolumnsetstart setupcolumnsetstart
- setupcolumnsetstart
- startcolumnmakeup: startkolomopmaak startcolumnmakeup
- startcolumnmakeup startcolumnmakeup
- startcolumnmakeup startcolumnmakeup
- startcolumnmakeup
- stopcolumnmakeup: stopkolomopmaak stopcolumnmakeup
- stopcolumnmakeup stopcolumnmakeup
- stopcolumnmakeup stopcolumnmakeup
- stopcolumnmakeup
- usetypescript: gebruiktypescript usetypescript
- usetypescript usetypescript
- usetypescript usetypescript
- usetypescript
- usetypescriptfile: gebruiktypescriptfile usetypescriptfile
- usetypescriptfile usetypescriptfile
- usetypescriptfile usetypescriptfile
-
-\stopcommands
-
-%D \stopcompressdefinitions
-
-%D At \PRAGMA\ we use an extended version of \CONTEXT. The
-%D commands below are part of this. Beware of conflicts when
-%D defining your own.
-
-%D \startcompressdefinitions
-
-\startcommands dutch english
- german czech
- italian romanian
- french
-
- startdocument: startdocument startdocument
- startdokument startdokument
- iniziadocumento startdocument
- demarredocument
- stopdocument: stopdocument stopdocument
- stopdokument stopdokument
- terminadocumento stopdocument
- stoppedocument
- startoverzicht: startoverzicht startoverview
- startueberblick startprehled
- iniziaoverview startoverview
- demarrevuedensemble
- stopoverzicht: stopoverzicht stopoverview
- stopueberblick stopprehled
- terminaoverview stopoverview
- stoppevuedensemble
- label: label label
- label poppisek
- etichetta eticheta
- etiquette
- labels: labels labels
- labels popisky
- etichette etichete
- etiquettes
- domicile: woonplaats domicile
- wohnort bydliste
- domicilio domiciliu
- domicile
-
-\stopcommands
-
-%D \stopcompressdefinitions
-
-\stoplogginginterface
+%D This file has been replaced by \type {mult-def.lua} from which we
+%D generate separate interface definition files.
+
+% obsolete:
+%
+% \startcommands dutch english
+% german czech
+% italian romanian
+% french
+%
+% language: taal language
+% sprache jazyk
+% lingua limba
+% langue
+%
+% \stopcommands
\endinput
diff --git a/Master/texmf-dist/tex/context/base/mult-con.tex b/Master/texmf-dist/tex/context/base/mult-con.tex
index c80911c7970..62e97d5671a 100644
--- a/Master/texmf-dist/tex/context/base/mult-con.tex
+++ b/Master/texmf-dist/tex/context/base/mult-con.tex
@@ -11,3977 +11,43 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-%D In this rather large definition file we are going to tell
-%D \CONTEXT\ which constants, variables and elements we use.
+%D This file has been replaced by \type {mult-def.lua} from which we
+%D generate separate interface definition files.
-\writestatus{loading}{Context Multilingual Macros / Constants}
-
-\startlogginginterface context.con
-
-%D Todo:
-
-\startvariables all
- lesshyphenation: lesshyphenation
- morehyphenation: morehyphenation
-\stopvariables
-
-%D First come some variables. These are used as keywords and
-%D therefore need a different treatment.
-
-%D \startcompressdefinitions
-
-\startvariables dutch english
- german czech
- italian romanian
- french
-
- one: een one
- eins jedna
- uno unu
- un
- two: twee two
- zwei dve
- due doi
- deux
- three: drie three
- drei tri
- tre trei
- trois
- four: vier four
- vier ctyri
- quattro patru
- quatre
- five: vijf five
- fuenf pet
- cinque cinci
- cinq
-\stopvariables
-
-
-\startvariables dutch english
- german czech
- italian romanian
- french
-
- environment: omgeving environment
- umgebung prostredi
- ambiente mediu
- environement
- component: onderdeel component
- komponente komponenta
- componente componenta
- composant
- product: produkt product
- produkt produkt
- prodotto produs
- produit
- project: project project
- projekt projekt
- progetto proiect
- projet
-
-\stopvariables
-
-%D \stopcompressdefinitions
-
-%D Of course we need the names of the months.
-
-%D \startcompressdefinitions
-
-\startvariables dutch english
- german czech
- italian romanian
- french
-
- sunday: zondag sunday
- sonntag nedele
- domenica duminica
- dimanche
- monday: maandag monday
- montag pondeli
- lunedi luni
- lundi
- tuesday: dinsdag tuesday
- dienstag utery
- martedi marti
- mardi
- wednesday: woensdag wednesday
- mittwoch streda
- mercoledi miercuri
- mercredi
- thursday: donderdag thursday
- donnerstag ctvrtek
- giovedi joi
- jeudi
- friday: vrijdag friday
- freitag patek
- venerdi vineri
- vendredi
- saturday: zaterdag saturday
- samstag sobota
- sabato sambata
- samedi
-\stopvariables
-
-\startvariables dutch english
- german czech
- italian romanian
- french
-
- january: januari January
- Januar leden
- gennaio ianuarie
- janvier
- february: februari February
- Februar unor
- febbraio februarie
- fevrier
- march: maart March
- Maerz brezen
- marzo martie
- mars
- april: april April
- April duben
- aprile aprilie
- avril
- may: mei May
- Mai kveten
- maggio mai
- mai
- june: juni June
- Juni cerven
- giugno iunie
- juin
- july: juli July
- Juli cervenec
- luglio iulie
- juillet
- august: augustus August
- August srpen
- agosto august
- aout
- september: september September
- September zari
- settembre septembrie
- septembre
- october: oktober October
- Oktober rijen
- ottobre octombrie
- octobre
- november: november November
- November listopad
- novembre noiembrie
- novembre
- december: december December
- Dezember prosinec
- dicembre decembrie
- decembre
-\stopvariables
-
-%D Next we introduce some general label bound variables:
-
-\startvariables dutch english
- german czech
- italian romanian
- french
-
- atpage: oppagina atpage
- aufseite nastrance
- apagina lapagina
- alapage
- hencefore: hierboven hencefore
- vorher vyse
- precedente precedent
- precedent
- hereafter: hieronder hereafter
- nachher nize
- seguente urmator
- suivant
-
-\stopvariables
-
-%D \stopcompressdefinitions
-
-%D User defined commands are language specific, so we have to
-%D use variables when defining them. First we define some
-%D general structuring variables:
-
-%D \startcompressdefinitions
-
-\startvariables dutch english
- german czech
- italian romanian
- french
-
- part: deel part
- teil cast
- parte parte
- partie
- chapter: hoofdstuk chapter
- kapitel kapitola
- capitolo capitol
- chapitre
- subject: onderwerp subject
- thema tema
- argomento subiect
- sujet
- section: paragraaf section
- absatz sekce
- capoverso sectiune
- section
- title: titel title
- titel titul
- titolo titlu
- titre
- margintitle: margetitel margintitle
- marginaltitel titulmarginalie
- titoloinmargine titlumarginal
- titremarge
- content: inhoud content
- inhalt obsah
- indice cuprins
- contenu
- contents: inhouden contents
- inhalte obsah
- indici cuprinsuri
- contenus
- appendix: bijlage appendix
- anhang dodatek
- appendice apendix
- annexe
- appendices: bijlagen appendices
- anhaenge dodatky
- appendici apendixuri
- annexes
- bodypart: hoofdtekst bodypart
- haupttext hlavnicast
- testoprincipale principal
- corpsdetexte
- bodymatter: hoofdteksten bodymatter
- haupttexte hlavnicasti
- testiprincipali principalul
- texteprincipal
- frontpart: inleiding frontpart
- einleitung prednicast
- prefazione prolog
- preface
- frontmatter: inleidingen frontmatter
- einleitungen prednicasti
- preambolo prologul
- preambule
- backpart: uitleiding backpart
- epilog epilog
- postfazione epilog
- postface
- backmatter: uitleidingen backmatter
- epiloge epilogy
- postambolo epilogul
- epilogue
- footnote: voetnoot footnote
- fussnote poznamkapodcarou
- notapdp notasubsol
- notepdp
- endnote: eindnoot endnote
- endnote endnote
- endnote endnote
- notefin
- system: systeem system
- systeme system
- sistema sistem
- systeme
-
-\stopvariables
-
-%D For Taco:
-
-\startvariables dutch english
- german czech
- italian romanian
- french
-
- subsection: subparagraaf subsection
- unterabsatz podsekce
- sottocapoverso subsectiune
- soussection
-
- subsubsection: subsubparagraaf subsubsection
- unterunterabsatz podpodsekce
- sottosottocapoverso subsubsectiune
- soussoussection
-
- subsubsubsection: subsubsubparagraaf subsubsubsection
- unterunterunterabsatz podpodpodsekce
- sottosottosottocapoverso subsubsubsectiune
- soussoussoussection
-
- subsubsubsubsection: subsubsubsubparagraaf subsubsubsubsection
- unterunterunterunterabsatz podpodpodpodsekce
- sottosottosottosottocapoverso subsubsubsubsectiune
- soussoussoussoussection
-
-subsubsubsubsubsection: subsubsubsubsubparagraaf subsubsubsubsubsection
- unterunterunterunterunterabsatz podpodpodpodpodsekce
- sottosottosottosottosottocapoverso subsubsubsubsubsectiune
- soussoussoussoussoussection
-
- subsubject: subonderwerp subsubject
- unterthema podtema
- sottoargomento subsubiect
- soussujet
-
- subsubsubject: subsubonderwerp subsubsubject
- unterunterthema podpodtema
- sottosottoargomento subsubsubiect
- soussoussujet
-
- subsubsubsubject: subsubsubonderwerp subsubsubsubject
- unterunterunterthema podpodpodtema
- sottosottosottoargomento subsubsubsubiect
- soussoussoussujet
-
- subsubsubsubsubject: subsubsubsubonderwerp subsubsubsubsubject
- unterunterunterunterthema podpodpodpodtema
- sottosottosottosottoargomento subsubsubsubsubiect
- soussoussoussoussujet
-
-subsubsubsubsubsubject: subsubsubsubsubonderwerp subsubsubsubsubsubject
- unterunterunterunterunterthema podpodpodpodpodtema
- sottosottosottosottosottoargomento subsubsubsubsubsubiect
- soussoussoussoussoussujet
-
-\stopvariables
-
-%D For the confused (to be translated):
-
-\startvariables dutch english
- german czech
- italian romanian
- french
-
- flushleft: lijnlinks flushleft
- flushleft flushleft
- flushleft flushleft
- flushleft
- flushright: lijnrechts flushright
- flushright flushright
- flushright flushright
- flushright
- center: centreer center
- center center
- center center
- center
- flushouter: lijnbuiten flushouter
- flushouter flushouter
- flushouter flushouter
- flushouter
- flushinner: lijnbinnen flushinner
- flushinner flushinner
- flushinner flushinner
- flushinner
-
-\stopvariables
-
-\startvariables dutch english
- german czech
- italian romanian
- french
-
- typing: typen typing
- tippen typing
- typing typing
- typing
- file: file file
- datei soubor
- file fisier
- fichier
-
-\stopvariables
-
-%D \stopcompressdefinitions
-
-%D As we can see below, there are some more variables needed,
-%D for instance for the definition of macro's for handling
-%D floating bodies.
-
-%D \startcompressdefinitions
-
-\startvariables dutch english
- german czech
- italian romanian
- french
-
- formula: formule formula
- formel rovnice
- formula formula
- formule
- subformula: subformule subformula
- subformel subrovnice
- subformula subformula
- subformule
- formulae: formules formulae
- formeln rovnice
- formule formule
- formules
- figure: figuur figure
- abbildung obrazek
- figura figura
- figure
- figures: figuren figures
- abbildungen obrazky
- figure figure
- figures
- table: tabel table
- tabelle tabulka
- tabella tabelul
- tableau
- tables: tabellen tables
- tabellen tabulky
- tabelle tabelele
- tables
- graphic: grafiek graphic
- grafik graf
- grafico graficul
- graphique
- graphics: grafieken graphics
- grafiken grafy
- grafici graficele
- graphiques
- intermezzo: intermezzo intermezzo
- intermezzo intermezzo
- intermezzo intermezzo
- intermezzo
- intermezzi: intermezzos intermezzi
- intermezzi intermezzi
- intermezzi intermezzi
- intermezzi
- index: index index
- index rejstrik
- indiceanalitico index
- index
- indices: indices indices
- indizies rejstriky
- indicianalitici indexuri
- indices
- abbreviation: afkorting abbreviation
- abkuerzung zkratka
- abbreviazione abreviere
- abreviation
- abbreviations: afkortingen abbreviations
- abkuerzungen zkratky
- abbreviazioni abrevieri
- abreviations
- logo: logo logo
- logo logo
- logo logo
- logo
- logos: logos logos
- logos loga
- loghi logos
- logos
- unit: eenheid unit
- einheit jednotka
- unita unitate
- unite
- units: eenheden units
- einheiten jednotky
- unita unitati
- unites
- line: regel line
- zeile radek
- riga linia
- ligne
- lines: regels lines
- zeilen radky
- righe linii
- lignes
- framedtext: kadertekst framedtext
- umrahmtertext oramovanytext
- testoincorniciato textinconjurat
- texteencadre
- quotation: citaat quotation
- zitat citace
- citazione citat
- citation
- blockquote: blokcitaat blockquote
- blockquote blockquote
- blockquote blockquote
- blockquote
- quote: citeer quote
- zitieren citovat
- menzione minicitat
- citer
- speech: spraak speech
- speech speech
- speech speech
- discours
- itemize: opsomming itemize
- aufzaehlung vycet
- elenco enumerare
- lister
- mathalignment: wiskundeuitlijnen mathalignment
- mathalignment mathalignment
- mathalignment mathalignment
- mathalignment
- mathcases: mathcases mathcases
- mathcases mathcases
- mathcases mathcases
- mathcases
- mathmatrix: wiskundematrix mathmatrix
- mathmatrix mathmatrix
- mathmatrix mathmatrix
- mathmatrix
-
-\stopvariables
-
-%D \stopcompressdefinitions
-
-%D The setup commands can take a lot of different arguments,
-%D often in the form \type{variable=value}. Here we define the
-%D variable part. Keep in mind that for the system, user defined
-%D variables have a constant character.
-
-%D \startcompressdefinitions
-
-\startconstants dutch english
- german czech
- italian romanian
- french
-
- sorttype: sortering sorttype
- sorttype sorttype
- sorttype sorttype
- sorttype
- compress: comprimeren compress
- compress compress
- compress compress
- compress compress
- compress
- autohang: autohang autohang
- autohang autohang
- autohang autohang
- autohang
- suffix: suffix suffix
- suffix suffix
- suffix suffix
- suffix
- leftquotation: linkercitaat leftquotation
- linkerzitat citacevlevo
- citazionesinistra citatstanga
- citationgauche
- rightquotation: rechtercitaat rightquotation
- rechterzitat citacevpravo
- citazionedestra citatdreapta
- citationdroite
- leftquote: linkerciteer leftquote
- linkerzitieren citovatvlevo
- menzionesinistra minicitatstanga
- citergauche
- rightquote: rechterciteer rightquote
- rechterzitieren citovatvpravo
- menzionedestra minicitatdreapta
- citerdroite
- compoundhyphen: koppelteken compoundhyphen
- compoundhyphen compoundhyphen
- compoundhyphen compoundhyphen
- compoundhyphen
- leftcompoundhyphen: linkerkoppelteken leftcompoundhyphen
- leftcompoundhyphen leftcompoundhyphen
- leftcompoundhyphen leftcompoundhyphen
- leftcompoundhyphen
- rightcompoundhyphen: rechterkoppelteken rightcompoundhyphen
- rightcompoundhyphen rightcompoundhyphen
- rightcompoundhyphen rightcompoundhyphen
- rightcompoundhyphen
- midsentence: middenzin midsentence
- midsentence midsentence
- midsentence midsentence
- midsentence
- leftsentence: linkerzin leftsentence
- linkersatz vetavlevo
- frasesinistra propozitiestanga
- phrasegauche
- rightsentence: rechterzin rightsentence
- rechtersatz vetavpravo
- frasedestra propozitiedreapta
- phrasedroite
- leftsubsentence: linkersubzin leftsubsentence
- linkersubsatz podvetavlevo
- sottofrasesinistra subpropozitiestanga
- sousphrasegauche
- rightsubsentence: rechtersubzin rightsubsentence
- rechtersubsatz podvetavpravo
- sottofrasedestra subpropozitiedreapta
- sousphrasedroite
- leftspeech: linkeruitspraak leftspeech
- leftspeech leftspeech
- leftspeech leftspeech
- leftspeech
- middlespeech: middenuitspraak middlespeech
- middlespeech middlespeech
- middlespeech middlespeech
- middlespeech
- rightspeech: rechteruitspraak rightspeech
- rightspeech rightspeech
- rightspeech rightspeech
- rightspeech
- limittext: limiettekst limittext
- limittext limittext
- limittext limittext
- limittext
- date: datum date
- datum datum
- data data
- date
- spacebefore: voorwit spacebefore
- vorspatium mezerapred
- spazioprima spatiuinainte
- espaceavant
- spaceinbetween: tussenwit spaceinbetween
- spaceinbetween spaceinbetween
- spaceinbetween spaceinbetween
- spaceinbetween
- spaceafter: nawit spaceafter
- nachspatium mezeraza
- spaziodopo spatiudupa
- espaceapres
- sidespacebefore: zijvoorwit sidespacebefore
- nebenvorspatium bocnimezerapred
- spaziolateraleprima spatiulateralinainte
- espacelateralavant
- sidespaceafter: zijnawit sidespaceafter
- nebennachspatium bocnimezeraza
- spaziolateraledopo spatiulateraldupa
- espacelateralapres
- to: aan to
- zu na
- verso catre
- vers
- indicator: aanduiding indicator
- indikator indikator
- indicatore indicator
- indicateur
- background: achtergrond background
- hintergrund pozadi
- sfondo fundal
- arriereplan
- backgrounddepth: achtergronddiepte backgrounddepth
- hintergrundtiefe hloubkapozadi
- profonditasfondo adancimefundal
- profondeurarriereplan
- backgroundcorner: achtergrondhoek backgroundcorner
- hintergrundwinkel rohpozadi
- angolosfondo coltfundal
- coinarriereplan
- splitcolor: splitskleur splitcolor
- splitcolor splitcolor
- splitcolor splitcolor
- splitcolor
- backgroundcolor: achtergrondkleur backgroundcolor
- hintergrundfarbe barvapozadi
- coloresfondo culoarefundal
- couleurarriereplan
- foregroundcolor: voorgrondkleur foregroundcolor
- foregroundcolor foregroundcolor
- coloreprimopiano foregroundcolor
- couleurpremierplan
- foregroundstyle: voorgrondletter foregroundstyle
- foregroundstyle foregroundstyle
- foregroundstyle foregroundstyle
- stylepremierplan
- clipoffset: clipoffset clipoffset
- clipoffset clipoffset
- clipoffset clipoffset
- clipoffset
- backgroundoffset: achtergrondoffset backgroundoffset
- hintergrundoffset offsetpozadi
- offsetsfondo offsetfundal
- decalagearriereplan
- backgroundscreen: achtergrondraster backgroundscreen
- hintergrundraster rastrpozadi
- schermosfondo ecranfundal
- ecranarriereplan
- backgroundradius: achtergrondstraal backgroundradius
- hintergrundradius polomerpozadi
- raggiosfondo razafundal
- rayonarriereplan
- address: adres address
- adresse adresa
- indirizzo adresa
- adresse
- stopper: afsluiter stopper
- abschnitttrenner predel
- stopper stopper
- taquet
- distance: afstand distance
- abstand vzdalenost
- distanza distanta
- distance
- paragraph: alinea paragraph
- absatz odstavec
- capoverso paragraf
- paragraphe
- axis: assenstelsel axis
- achsen osa
- asse axa
- axe
- author: auteur author
- autor autor
- autore autor
- auteur
- auto: auto auto
- auto auto
- auto auto
- auto
- autofile: autofile autofile
- autofile autofile
- autofile autofile
- autofile % TB TH
- balance: balanceren balance
- ausgleichen rovnovaha
- bilanciamento balanta
- equilibre
- bookmark: bookmark bookmark
- bookmark zalozka
- segnalibro semncarte
- marquepage
- wfactor: bfactor wfactor
- bfaktor sfaktor
- wfactor factorw
- facteurlargeur
- inner: binnen inner
- innen vnitrni
- interno intern
- interieur
- blank: blanko blank
- blanko prazdny
- rigovuoto blanc
- vide
- obstruction: blokkade obstruction
- gesperrt prekazka
- ostruzione obstructie
- obstruction
- blockway: blokwijze blockway
- blockauf dobloku
- blockway blockway
- blockway
- bottomspace: bodemwit bottomspace
- bottomspace bottomspace
- spaziofondo spatiujos
- espaceinf
- top: boven top
- oben vrsek
- cima sus
- sup
- topdistance: bovenafstand topdistance
- obenabstand vzdalenostvrsku
- distanzacima distantasus
- distancesup
- topframe: bovenkader topframe
- obenrahmen rameceknahore
- cornicecima framesus
- cadresup
- topoffset: bovenoffset topoffset
- obenoffset offsetvrsku
- offsetcima offsetsus
- decalagesup
- topstate: bovenstatus topstate
- statusoben statusvrsku
- statocima staresus
- etatsup
- width: breedte width
- breite sirka
- ampiezza latime
- largeur
- autowidth: autobreedte autowidth
- autobreite autosirka
- autoampiezza autolatime
- autolargeur
- maxwidth: maxbreedte maxwidth
- maxbreite maxsirka
- ampiezzamax latimemaxima
- largeurmax
- minwidth: minbreedte minwidth
- minbreite minsirka
- ampiezzamin latimeminima
- largeurmin
- source: bron source
- quelle zdroj
- origine sursa
- origine
- command: commando command
- befehl prikaz
- comando comanda
- commande
- commands: commandos commands
- befehle prikazy
- comandi comenzi
- commandes
- component: component component
- component component
- component component
- composant
- contrastcolor: contrastkleur contrastcolor
- kontrastfarbe kontrastnibarva
- colorecontrasto culoarecontrast
- coleurcontraste
- conversion: conversie conversion
- konversion konverze
- conversione conversie
- conversion
- headconversion: kopconversie headconversion
- headconversion konverzehlavicky
- conversionetesta conversietitlu
- conversiontete % TB
- headlabel: koplabel headlabel
- headlabel popisekhlavicky
- etichettatesta etichetatitlu
- etiquettetete
- criterium: criterium criterium
- kriterium kriterium
- criterio criteriu
- critere
- date: datum date
- datum datum
- data data
- date
- default: default default
- default implicitni
- implicito implicit
- defaut
- depth: diepte depth
- tiefe hloubka
- profondita inaltime
- profondeur
- depthcorrection: dieptecorrectie depthcorrection
- tiefekorrektur korekcehloubky
- correzioneprofondita corectieadancime
- correctionprofondeur
- continue: doorgaan continue
- fortsetzen pokracovat
- continua continua
- continue
- doublesided: dubbelzijdig doublesided
- doppelseitig oboustranne
- doppiafaccia douafete
- rectoverso
- dummy: dummy dummy
- dummy dummy
- dummy dummy
- dummy
- unit: eenheid unit
- einheit jednotka
- unita unitate
- unite
- ownnumber: eigennummer ownnumber
- eigenenummer vlastnicislo
- numeroproprio numarpropriu
- numeroproprio
-% eigenschap: eigenschap property
-% property property
-% property property
-% property
- evenmargin: evenmarge evenmargin
- geraderand sudamarginalie
- marginepari marginepara
- margepaire
- expansion: expansie expansion
- expansion expanzen
- espansione expansiune
- expansion
- keyexpansion: sleutelexpansie keyexpansion
- keyexpansion keyexpansion
- keyexpansion keyexpansion
- keyexpansion
- factor: factor factor
- faktor faktor
- fattore factor
- facteur
- convertfile: converteerfile convertfile
- konvertieredatei konverzesouboru
- convertifile convertestefisier
- conversionfichier
- file: file file
- datei soubor
- file fisier
- fichier
- inputfile: inputfile inputfile
- inputfile inputfile
- inputfile inputfile
- fichierentree
- size: formaat size
- groesse velikost
- dimensione dimensiune
- dimension
- autofocus: autofocus autofocus
- autofocus autoostreni
- autofocus autofocus
- autofocus
- focus: focus focus
- focus zaostreni
- focus focus
- focus
- directory: gebied directory
- verzeichnis adresar
- directory director
- repertoire
- cache: cache cache
- cache cache
- cache cache
- cache
- grid: grid grid
- gritter mrizka
- griglia grid
- grille
- big: groot big
- gross velky
- grande mare
- grand
- get: haal get
- hole ziskat
- prendi adu
- obtient
- hang: hang hang
- haengend zaveseni
- sospendi suspenda
- suspend
- repeat: herhaal repeat
- wiederholen opakovat
- ripeti repeta
- repete
- hfactor: hfactor hfactor
- hfaktor vfaktor
- hfactor hfactor
- facteurhauteur
- corner: hoek corner
- winkel roh
- angolo colt
- coin
- hoffset: hoffset hoffset
- hoffset hoffset
- hoffset hoffset
- decalagehauteur
- frames: hokjes frames
- umrahmen ramecky
- cornici frames
- cadres
- header: hoofd header
- kopfzeile zahlavi
- intestazione antet
- entete
- headerdistance: hoofdafstand headerdistance
- kopfzeilenabstand vzdalenostzahlavi
- distanzaintestazione distantaantet
- distanceentete
- headerstate: hoofdstatus headerstate
- kopfzeilenstatus statuszahlavi
- statointestazione stareantet
- etatentete
- height: hoogte height
- hoehe vyska
- altezza inaltime
- hauteur
- maxheight: maxhoogte maxheight
- maxhoehe maxvyska
- altezzamax inaltimemaxima
- hauteurmax
- minheight: minhoogte minheight
- minhoehe minvyska
- altezzamin inaltimeminima
- hauteurmin
- mindepth: mindiepte mindepth
- mindepth mindepth
- mindeoth mindepth
- profondeurmin
- current: huidige current
- aktuell aktualni
- corrente curent
- courant
- in: in in
- in v
- in in
- in
- indenting: inspringen indenting
- einziehen odsazovani
- rientro aliniat
- composeenalinea
- interaction: interactie interaction
- interaktion interakce
- interazione interactiune
- interaction
- interlinespace: interlinie interlinespace
- zeilenabstande meziradkovamezera
- interlinea spatiereinterliniara
- espaceinterligne
- items: items items
- posten polozky
- elementi elemente
- elements
- fallback: terugval fallback
- fallback fallback
- fallback fallback
- fallback
- frame: kader frame
- rahmen ramecek
- cornice frame
- cadre
- framedepth: kaderdiepte framedepth
- rahmentiefe hloubkaramecku
- profonditacornice adancimeframe
- profondeurcadre
- framecorner: kaderhoek framecorner
- rahmenwinkel rohramecku
- angolocornice coltframe
- coincadre
- framecolor: kaderkleur framecolor
- rahmenfarbe barvaramecku
- colorecornice culoareframe
- couleurcadre
- frameoffset: kaderoffset frameoffset
- rahmenoffset offsetramecku
- offsetcornice offsetframe
- decalagecadre
- frameradius: kaderstraal frameradius
- rahmenradius polomerramecku
- raggiocornice razaframe
- rayoncadre
- marginedge: kantlijn marginedge
- marginalkante textovahrana
- bordomargine coltbordura
- bordmarge
- marginedgetext: kantlijntekst marginedgetext
- marginalkantetext textmarginalnihookraje
- testobordomargine textcoltbordura
- textebordmarge
- aligncharacter: karakteruitlijnen aligncharacter
- aligncharacter aligncharacter
- allineacarattere aliniazacaracter
- caracterealigne
- alignmentcharacter: uitlijnkarakter alignmentcharacter
- alignmentcharacter alignmentcharacter
- carattereallineamento alierecaracter
- alignementcaractere
- small: klein small
- klein male
- piccolo mic
- petit
- color: kleur color
- farbe barva
- colore culoare
- couleur
- column: kolom column
- spalte sloupec
- colonna coloana
- colonne
- columns: kolommen columns
- spalten sloupce
- colonne coloane
- colonnes
- columndistance: kolomafstand columndistance
- spaltenabstand vzdalenostsloupcu
- distanzacolonne distantacoloane
- distancecolonne
- headcommand: kopcommando headcommand
- headcommand headcommand
- headcommand headcommand
- commandetete
- headcolor: kopkleur headcolor
- kopffarbe barvahlavicky
- coloretesta culoaretitlu
- couleurtete
- headstyle: kopletter headstyle
- kopfstil stylhlavicky
- stiletesta stiltitlu
- styletete
- afterhead: kopna afterhead
- nachkopf pohlavicce
- dopotesta dupatitlu
- aprestete
- veroffset: kopoffset veroffset
- kopfoffset offsethlavicky
- veroffset veroffset
- veroffset
- coupling: koppeling coupling
- verknuepfung propojeni
- accoppiamento cuplare
- couplage
- couplingway: koppelwijze couplingway
- verkopplungsart zpusobpropojeni
- modoaccoppiamento modcuplare
- modecouplage
- beforehead: kopvoor beforehead
- vorkopf predhlavickou
- primaditesta inaintetitlu
- avanttete
- topspace: kopwit topspace
- kopfspatium svrchnimezera
- spaziocima spatiusus
- espacesup
- bodyfont: korps bodyfont
- fliesstext zakladnifont
- fonttesto fonttext
- policecorps
- label: label label
- label popisek
- etichetta eticheta
- etiquette
- empty: leeg empty
- leer prazdne
- vuoto gol
- vide
- style: letter style
- stil pismeno
- stile stil
- style
- rule: lijn rule
- linie linka
- linea rigla
- ligne
- rulethickness: lijndikte rulethickness
- liniendicke tloustkalinky
- spessorelinea grosimerigla
- epaisseurligne
- rulecolor: lijnkleur rulecolor
- linienfarbe barvalinky
- colorelinea culoarerigla
- couleurligne
- list: lijst list
- liste seznam
- elenco lista
- liste
- leftwidth: linkerbreedte leftwidth
- linkerbreite sirkavlevo
- ampiezzasinistra latimestanga
- largeurgauche
- leftframe: linkerkader leftframe
- linkerrahmen ramecekvlevo
- cornicesinistra framestanga
- cadregauche
- leftcolor: linkerkleur leftcolor
- linkerfarbe barvavlevo
- coloresinistra culoarestanga
- couleurgauche
- leftstyle: linkerletter leftstyle
- linkerstil stylvlevo
- stilesinistra stilstanga
- leftstyle
- leftmargin: linkermarge leftmargin
- linkerrand levyokraj
- marginesinistro marginestanga
- margegauche
- innermargin: binnenmarge innermargin
- innermargin innermargin
- margineinterno innermargin
- margeinterieure
- outermargin: buitenmarge outermargin
- outermargin outermargin
- margineesterno outermargin
- margeexterieure
- leftmargindistance: linkermargeafstand leftmargindistance
- linkerrandabstand vzdalenostlevehookraje
- distanzamarginesinistro distantamarginestanga
- distancemargegauche
- leftoffset: linkeroffset leftoffset
- linkeroffset levyoffset
- offsetsinistro offsetstanga
- decalagegauche
- leftedge: linkerrand leftedge
- linkekante levahrana
- bordosinistro bordurastanga
- bordgauche
- leftedgedistance: linkerrandafstand leftedgedistance
- linkerkantenabstand vzdalenostlevehrany
- distanzabordosinistro distantabordurastanga
- distancebordgauche
- lefttext: linkertekst lefttext
- linkertext textvlevo
- testosinistro textstanga
- textegauche
- left: links left
- links vlevo
- sinistra stanga
- gauche
- nleft: nlinks nleft
- nlinks nvlevo
- nsinistra nstanga
- ngauche
- logo: logo logo
- logo logo
- logo logo
- logo
- logos: logos logos
- logos loga
- loghi logos
- logos
- local: lokaal local
- lokal lokalne
- locale local
- local
- margin: marge margin
- marginalie marginalie
- margine margine
- marge
- margindistance: margeafstand margindistance
- marginalabstand vzdalenostokraje
- distanzamargine distantamargine
- distancemarge
- margintext: margetekst margintext
- marginaltext textmarginalie
- testomargine textmargine
- textemarge
- marking: markering marking
- beschriftung znaceni
- marcatura marcaje
- marquage
- marcolor: markleur marcolor
- beschrfarbe barvaznacky
- coloremarcatura culoaremarcaj
- couleurmarquage
- marstyle: marletter marstyle
- beschrstil stylsnacky
- stilemarcatura stilmarcaj
- stylemarquage
- menu: menu menu
- menue menu
- menu meniu
- menu
- splitmethod: splitsmethode splitmethod
- splitmethod splitmethod
- splitmethod splitmethod
- splitmethod
- textmethod: tekstmethode textmethod
- textmethod textmethod
- textmethod textmethod
- textmethod
- sidemethod: zijmethode sidemethod
- sidemethod sidemethod
- sidemethod sidemethod
- sidemethod
- method: methode method
- methode metoda
- metodo metoda
- methode
- middle: midden middle
- mittig stredni
- centro mijloc
- milieu
- middletext: middentekst middletext
- mittigertext strednitext
- testocentro textmijloc
- textecentre
- max: max max
- max max
- max max
- max
- min: min min
- min min
- min min
- min
- sample: monster sample
- muster vzor
- campione exemplu
- echantillon
- after: na after
- nach po
- dopo dupa
- apres
- name: naam name
- name jmeno
- nome nume
- nom
- commandafter: nacommando commandafter
- zumbefehl prikazpo
- comdandodopo comandadupa
- commandeapres
- ntop: nboven ntop
- noben nvrsek
- ncima nsus
- nsup
- level: niveau level
- niveau uroven
- livello nivel
- niveau
- levels: niveaus levels
- niveaus urovne
- livelli nivele
- niveaux
- nbottom: nonder nbottom
- nunten nspodek
- nfondo njos
- ninf
- norm: norm norm
- norm norm
- norma norm
- norme
- nlines: nregels nlines
- zzeile nradky
- nrighe nlinii
- nlignes
- number: nummer number
- nummer cislo
- numero numar
- numero
- numbercommand: nummercommando numbercommand
- nummerbefehl ciselnyprikaz
- comandonumero comandanumar
- commandenumero
- numbering: nummeren numbering
- nummerierung cislovani
- numerazione numerotare
- numerotation
- numbercolor: nummerkleur numbercolor
- nummernfarbe barvacisla
- colorenumero culoarenumar
- couleurnumero
- numberstyle: nummerletter numberstyle
- nummernstil stylcisla
- stilenumero stilnumar
- stylenumero
- numberseparator: nummerscheider numberseparator
- nummernseperator oddelovaccisla
- separatorenumero separatornumar
- separateurnumbero
- object: object object
- objekt objekt
- oggetto obiect
- objet
- offset: offset offset
- offset offset
- offset offset
- offset
- bottom: onder bottom
- unten spodek
- fondo jos
- inf
- bottomdistance: onderafstand bottomdistance
- abstandunten vzdalenostspodku
- distanzafondo distantajos
- distanceinf
- bottomframe: onderkader bottomframe
- untenrahmen ramecekdole
- cornicefondo framejos
- cadreinf
- bottomoffset: onderoffset bottomoffset
- untenoffset offsetspodku
- offsetfondo offsetjos
- decalageinf
- bottomstate: onderstatus bottomstate
- untenstatus statusspodku
- statofondo starejos
- etatinf
- oddmargin: onevenmarge oddmargin
- ungeraderand lichyokraj
- marginedispari margineimpara
- margepaire
- at: op at
- bei u
- ad la
- a
- option: optie option
- option volba
- opzione optiune
- option
- page: pagina page
- seite stranka
- pagina pagina
- page
- pagecommand: paginacommando pagecommand
- seitenbefehl strankovyprikaz
- comandopagina comandapagina
- commandepage
- pagecolor: paginakleur pagecolor
- seitenfarbe barvastranky
- colorepagina culoarepagina
- couleurpage
- pagestyle: paginaletter pagestyle
- seitenstil stylstranky
- stilepagina stilpagina
- stylepage
- pagenumber: paginanummer pagenumber
- seitennummer cislostranky
- numeropagina numarpagina
- numeropage
- headnumber: kopnummer headnumber
- kopfnummer cislonadpisu
- numerotesta numartitlu
- numerotete
- pageboundaries: paginaovergangen pageboundaries
- seitenbegrenzung hranicestranky
- limitipagina marginipagina
- limitespage
- pagestate: paginastatus pagestate
- pagestate pagestate
- statopagina pagestate
- etatpage
- palet: palet palet
- palette paleta
- tavolozza paleta
- palette
- paper: papier paper
- papier papir
- carta hartie
- papier
- location: plaats location
- platz misto
- luogo locatie
- emplacement
- placestopper: plaatsafsluiter placestopper
- setzetrenner predelmista
- mettistopper punestopper
- emplacementstopper
- place: plaatsen place
- platziere umistit
- metti pune
- place
- placehead: plaatskop placehead
- setzekopf umistihlavicku
- mettitesta punetitlu
- placetete
- position: positie position
- position position
- posizione pozitie
- position % TB TH
- prefix: prefix prefix
- prefix prefix
- prefisso prefix
- prefixe
- preset: preset preset
- voreinstellung prednastaveni
- preimpostato preset
- prereglage
- preview: preview preview
- vorschau nahled
- anteprima previzualizare
- previsualisation
- process: proces process
- process process
- process process
- process
- spot: spot spot
- spot spot
- spot spot
- spot
- dot: punt dot
- punkt tecka
- punto punct
- point
- arrow: pijl arrow
- pfeil sipka
- freccia sageata
- fleche
- edge: rand edge
- kante hrana
- bordo bordura
- bord
- edgedistance: randafstand edgedistance
- kantenabstand vzdalenosthrany
- distanzabordo distantabordura
- distancebord
- screen: raster screen
- raster rastr
- schermo ecran
- ecran
- rightwidth: rechterbreedte rightwidth
- rechterbreite sirkavpravo
- ampiezzadestra marginedreapta
- largeurdroite
- rightframe: rechterkader rightframe
- rechterrahmen ramecekvpravo
- cornicedestra framedreapta
- cadredroit
- rightcolor: rechterkleur rightcolor
- rechterfarbe barvavpravo
- coloredestra culoaredreapta
- couleurdroite
- rightstyle: rechterletter rightstyle
- rechterstil stylvpravo
- stiledestra stildreapta
- styledroit
- rightmargin: rechtermarge rightmargin
- rechterrand pravyokraj
- marginedestro marginedreapta
- margedroite
- rightmargindistance: rechtermargeafstand rightmargindistance
- rechterrandabstand vzdalenostpravehookraje
- distanzamarginedestro distantamarginedreapta
- distancemargedroite
- rightoffset: rechteroffset rightoffset
- rechterabstand pravyoffset
- offsetdestro offsetdreapta
- rightoffset
- rightedge: rechterrand rightedge
- rechtekante pravahrana
- bordodestro borduradreapta
- borddroit
- rightedgedistance: rechterrandafstand rightedgedistance
- rechterkantenabstand vzdalenostpravehrany
- distanzabordodestro distantacoltdreapta
- distanceborddroit
- righttext: rechtertekst righttext
- rechtertext textvpravo
- testodestro textdreapta
- textedroit
- right: rechts right
- rechts vpravo
- destra dreapta
- droite
- nright: nrechts nright
- nrechts nvpravo
- ndestra ndreapta
- ndroite
- reduction: reductie reduction
- reduktion redukce
- riduzione reducere
- reduction
- referencing: refereren referencing
- referieren odkazujici
- referencing referinta
- referencing
- line: regel line
- zeile radek
- riga linie
- ligne
- linecorrection: regelcorrectie linecorrection
- zeilekorrektur korekceradku
- correzioneriga corectielinie
- correctionligne
- lines: regels lines
- zeilen radky
- righe linii
- lignes
- stretch: rek stretch
- strecken natahnout
- dilata dilatat
- etire
- resolution: resolutie resolution
- aufloesung rozliseni
- risoluzione rezolutie
- resolution
- rotation: rotatie rotation
- rotation rotace
- rotazione rotatie
- rotation
- orientation: orientatie orientation
- orientation orientation
- orientation orientation
- orientation
- horoffset: rugoffset horoffset
- rumpfabstand horoffset
- horoffset offsetoriz
- horoffset
- backspace: rugwit backspace
- rumpfspatium zpetnamezera
- backspace spatiuspate
- retour
- direction: richting direction
- richtung smer
- direzione directie
- direction
- scale: schaal scale
- format meritko
- scala scala
- echelle
- separator: scheider separator
- seperator oddelovac
- separatore separator
- separateur
- display: scherm display
- bildschirm obrazovka
- display display
- affichage
- scope: scope scope
- bereich rozsah
- scope scop
- scope
- % beware: section is already used for 'paragraph'
- section: sectie section
- abschnitt oddil
- sezione sectiune
- section
- sectionnumber: sectienummer sectionnumber
- abschnittsnummer cislooddilu
- numerosezione numarsectiune
- numerosection
- setups: setups setups
- setups setups
- setups setups
- reglages
- cutspace: snijwit cutspace
- cutspace cutspace
- cutspace cutspace
- cutspace
- family: soort family
- familie rodina
- famiglia familie
- famille
- space: spatie space
- spatium mezera
- spazio spatiu
- espace
- spacing: spatiering spacing
- spatiumausgleich mezerovani
- spaziatura spatiere
- espacement
- split: splitsen split
- split split
- separa split
- split
- splitoffset: splitsoffset splitoffset
- splitoffset splitoffset
- splitoffset splitoffset
- splitoffset
- indentnext: springvolgendein indentnext
- ziehefolgendeein odsadpristi
- rientrasuccessivo aliniaturmator
- indentesuivant
- step: stap step
- schritt krok
- passo pas
- pas
- stack: stapel stack
- stack stack
- stack stack
- stack
- start: start start
- start start
- inizia start
- demarre
- state: status state
- status status
- stato stare
- etat
- stop: stop stop
- stop stop
- termina stop
- stoppe
- radius: straal radius
- radius polomer
- raggio raza
- rayon
- dash: streep dash
- strich pomlcka
- dash dash
- pointille
- sub: sub sub
- unter pod
- sotto sub
- sous
- subtitle: subtitel subtitle
- untertitel podtitulek
- sottotitolo subtitlu
- soustitre
- symbol: symbool symbol
- symbol symbol
- simbolo simbol
- symbole
-
- closesymbol: sluitsymbool closesymbol
- closesymbol closesymbol
- closesymbol closesymbol
- closesymbol
- closecommand: sluitcommando closecommand
- closecommand closecommand
- closecommand closecommand
- closecommand
-
- symbolset: symboolset symbolset
- symbolset sadasymbolu
- setsimboli setsimbol
- jeusymbole
- symcolor: symkleur symcolor
- symfarbe barvasymbolu
- coloresimbolo culoaresimbol
- couleursym
- symstyle: symletter symstyle
- symstil stylsymboly
- stilesimbolo stilsimbol
- stylesym
- synonym: synoniem synonym
- synonym synonymum
- sinonimo sinonim
- synonyme
- synonymcolor: synoniemkleur synonymcolor
- synonymfarbe barvasynonyma
- coloresinonimi culoaresinonim
- couleursynonyme
- synonymstyle: synoniemletter synonymstyle
- synonymstil stylsynonyma
- stilesinonimi stilsinonim
- stylesynonyme
- tab: tab tab
- tab tab
- tab tab
- tab
- sign: teken sign
- zeichen znak
- segno semn
- signe
- text: tekst text
- text text
- testo text
- texte
- listtext: lijsttekst listtext
- listtext listtext
- listtext listtext
- texteliste
- textwidth: tekstbreedte textwidth
- textbreite sirkatextu
- ampiezzatesto latimetext
- largeurtexte
-numberwidth: nummerbreedte numberwidth
- numberwidth numberwidth
- numberwidth numberwidth
- numberwidth
- textcommand: tekstcommando textcommand
- textbefehl textovyprikaz
- comandotesto comandatext
- commandetexte
- textsize: tekstformaat textsize
- textgroesse velikosttextu
- dimensionetesto dimensiunetext
- tailletexte
- textcolor: tekstkleur textcolor
- textfarbe barvatextu
- coloretesto culoaretext
- couleurtexte
- textstyle: tekstletter textstyle
- textstil styltextu
- stiletesto stiltext
- styletexte
- textseparator: tekstscheider textseparator
- textseparator oddelovactextu
- separatoretesto separatortext
- separateurtexte
- textstate: tekststatus textstate
- textstatus statustextu
- statotesto staretext
- etattexte
- title: titel title
- titel titul
- titolo titlu
- titre
- titlestyle: titelletter titlestyle
- titelstil styltitulek
- stiletitolo stiltitlu
- styletitre
- titlecolor: titelkleur titlecolor
- titelfarbe barvatitulek
- coloretitolo culoaretitlu
- couleurtitre
- titledistance: titelafstand titledistance
- titelabstand vzdalenosttitulek
- distanzatitolo distantatitlu
- distancetitre
-
- titleleft: titellinks titleleft % new
- titleleft titleleft
- titleleft titleleft
- titleleft
- titleright: titelrechts titleright % new
- titleright titleright
- titleright titleright
- titleright
- titlecommand: titelcommando titlecommand % new
- titlecommand titlecommand
- titlecommand titlecommand
- titlecommand
-
- aligntitle: titeluitlijnen aligntitle
- titelausrichten zarovnejtitul
- allineatitolo alinieretitlu
- alignementtitre
- tolerance: tolerantie tolerance
- toleranz tolerance
- tolleranza toleranta
- tolerance
- inbetween: tussen inbetween
- zwischen mezi
- tra intre
- entre
- type: type type
- typ typ
- type type
- type
- align: uitlijnen align
- ausrichtung zarovnani
- allinea aliniere
- alignement
- symalign: symuitlijnen symalign
- symausrichtung symzarovnani
- symallinea symaliniere
- symalignement
- urlspace: urlspatie urlspace
- urlspatium prostorurl
- spaziourl spatiuurl
- espaceurl
- urlalternative: urlvariant urlalternative
- urlalternative urlalternativa
- alternativaurl urlalternativ
- alternativeurl
- from: van from
- von z
- da dela
- de
- alternative: variant alternative
- alternative alternativa
- alternativa alternativ
- alternative
- increment: verhoog increment
- erhoehen zvysit
- incremento increment
- incremente
- incrementnumber: verhoognummer incrementnumber
- nummererhoehen zvysujicicislo
- incrementanumero numarincrement
- incrementenumero
- resetnumber: resetnummer resetnumber
- resetnumber resetnumber
- resetnumber resetnumber
- raznumero
- reference: verwijzing reference
- referenz odkaz
- riferimento referinta
- reference
- unknownreference: onbekendeverwijzing unknownreference
- unbekantereferenz neznamyodkaz
- riferimentoingoto referintanecunoscuta
- referenceinconnue
- footer: voet footer
- fusszeile upati
- piedipagina subsol
- pdp
- footerdistance: voetafstand footerdistance
- fusszeilenabstand vzdalenostupati
- distanzapdp distantasubsol
- dsitancepdp
- footerstate: voetstatus footerstate
- fusszeilenstatus statusupati
- statopdp staresubsol
- etatpdp
- voffset: voffset voffset
- voffset voffset
- voffset voffset
- voffset
- next: volgende next
- folgende dalsi
- successivo urmatorul
- suivant
- before: voor before
- vor pred
- prima inainte
- avant
- commandbefore: voorcommando commandbefore
- vorbefehl predchoziprikaz
- comandoprima comandainainte
- commandeavant
- previous: vorige previous
- vorige predchozi
- precedente precendent
- precedent
- previousnumber: vorigenummer previousnumber
- vorigenummer predchozicislo
- numeroprecedente numarprecedent
- numeroprecedent
- delay: wachttijd delay
- wartezeit prodleva
- attesa intarziere
- delai
- way: wijze way
- art zpusob
- modo mod
- mode
- random: willekeur random
- zufaellig nahodne
- casuale aleator
- aleatoire
- white: wit white
- weiss bily
- bianco alb
- blanc
- xfactor: xfactor xfactor
- xfaktor xfaktor
- xfactor xfactor
- xfactor
- xmax: xmax xmax
- xmax xmax
- xmax xmax
- xmax
- xoffset: xoffset xoffset
- xoffset xoffset
- xoffset xoffset
- xoffset
- xscale: xschaal xscale
- xformat xmeritko
- xscale xscala
- xscale
- xstep: xstap xstep
- xschritt xkrok
- xstep xstep
- xstep
- yfactor: yfactor yfactor
- yfaktor yfaktor
- yfactor yfactor
- yfactor
- ymax: ymax ymax
- ymax ymax
- ymax ymax
- ymax
- yoffset: yoffset yoffset
- yoffset yoffset
- yoffset yoffset
- yoffset
- yscale: yschaal yscale
- yformat ymeritko
- yscale yscala
- yscale
- ystep: ystap ystep
- yschritt ykrok
- ystep ystep
- ystep
- samepage: zelfdepagina samepage
- selbeseite stejnastranka
- stessapagina aceeasipagina
- memepage
-% new
-itemalign: itemuitlijnen itemalign
- itemalign itemalign
- itemalign itemalign
- itemalign
- sidealign: zijuitlijnen sidealign
- sidealign sidealign
- sidealign sidealign
- sidealign
- side: zij side
- objektabstand pocitat
- lato parte
- cote
- fieldlayer: veldlaag fieldlayer
- fieldlayer fieldlayer
- fieldlayer fieldlayer
- calquechamp
- textlayer: tekstlaag textlayer
- textlayer textlayer
- textlayer textlayer
- calquetexte
- fieldbackgroundcolor: veldachtergrondkleur fieldbackgroundcolor
- feldhintergrundfarbe barvapozadipole
- coloresfondocampo culoarefundalcamp
- couleurarrierreplanchamp
- fieldframecolor: veldkaderkleur fieldframecolor
- feldrahmenfarbe barvarameckupole
- colorecornicecampo culoareframecamp
- couleurcadrechamp
- fieldoffset: veldoffset fieldoffset
- feldoffset offsetpole
- offsetcampo offsetcamp
- offsetchamp
- action: actie action
- aktion akce
- azione actiune
- action
- openaction: openactie openaction
- oeffenaktion otevriakci
- azioneapri actiunedeschidere
- actionouverture
- closeaction: sluitactie closeaction
- schliessenaktion zavriakci
- azionechiudi actiuneinchidere
- actionfermeture
- openpageaction: openpaginaactie openpageaction
- openpageaction akceotevrenistranky
- azioneapripagina actiunedeschiderepagina
- actionouverturepage
- closepageaction: sluitpaginaactie closepageaction
- closepageaction akcezavrenistranky
- azionechiudipagina actiuneinchiderepagina
- actionfermeturepage
- clickin: klikin clickin
- klickin klikuvnitr
- clickdentro clickintru
- clicinterieur
- clickout: klikuit clickout
- klickaus klikvne
- clickfuori clickies
- clicexterieur
- regionin: gebiedin regionin
- regionin oblastuvnitr
- entraregione regiuneintrare
- entreregion
- regionout: gebieduit regionout
- regionaus oblastvne
- esciregione regiuneiesire
- regionexterieure
- focusin: focusin focusin
- focusin focusin
- focusin focusin
- focusin
- focusout: focusuit focusout
- focusout focusout
- focusout focusout
- focusout
- afterkey: natoets afterkey
- nachtaste klavesapo
- dopotasto dupatasta
- aprescle
- format: formatteer format
- formatieren formatovat
- format format
- formatter
- validate: valideer validate
- validieren validovat
- verifica verifica
- valider
- calculate: bereken calculate
- berechnen pocitat
- calcola calculeaza
- calculer
- click: klik click
- klick klik
- click click
- clic
- vcommand: vcommando vcommand
- vbefehl vprikaz
- vcomando comandav
- vcommande
- icommand: icommando icommand
- ibefehl iprikaz
- icomando comandai
- icommande
- ccommand: ccommando ccommand
- cbefehl cprikaz
- ccomando comandac
- ccommande
- textdistance: tekstafstand textdistance
- textdistance textdistance
- distanzatesto textdistance
- distancetexte
- numberdistance: nummerafstand numberdistance
- numberdistance numberdistance
- numberdistance numberdistance
- numberdistance
- textmargin: tekstmarge textmargin
- textmargin textmargin
- textmargin textmargin
- margetexte
- keyword: trefwoord keyword
- keyword keyword
- parolachiave keyword
- motcle
-
- deeptextcommand: dieptekstcommando deeptextcommand
- deeptextcommand deeptextcommand
- deeptextcommand deeptextcommand
- deeptextcommand
- deepnumbercommand: diepnummercommando deepnumbercommand
- deepnumbercommand deepnumbercommand
- deepnumbercommand deepnumbercommand
- deepnumbercommand
-
-\stopconstants
-
-%D This one is a private one, used for very dirty hooks.
-
-\startconstants dutch english
- german czech
- italian romanian
- french
-
- extras: extras extras
- extras extras
- extras extras
- extras
-
-\stopconstants
-
-%D \stopcompressdefinitions
-
-%D The keywords of values are very language specific and
-%D therefore variables for the systems. This list shows some
-%D overlap with the previous one.
-
-%D \startcompressdefinitions
-
-\startvariables dutch english
- german czech
- italian romanian
- french
-
- on: aan on
- an zap
- attivo on
- actif
- test: test test
- test test
- test test
- test
- serried: aanelkaar serried
- kleinerabstand semknuto
- vicino serried
- serried
- joinedup: aansluitend joinedup
- keinabstand spojeno
- unito unit
- joinedup
- absolute: absoluut absolute
- absolut absolutni
- assoluto absolut
- absolute
- background: achtergrond background
- hintergrund pozadi
- sfondo fundal
- arriereplan
- backward: achteruit backward
- rueckwaerts zpet
- indietro inapoi
- retourarriere
- subbackward: subachteruit subbackward
- unterrueckwaerts podzpet
- sottoindietro subinapoi
- sousretourarriere
- action: actie action
- aktion akce
- azione actiune
- action
- stopper: afsluiter stopper
- trenner predel
- stopper stopper
- stopper
- paragraph: alinea paragraph
- absatz odstavec
- capoverso paragraf
- paragraphe
- all: alles all
- alles vse
- tutti tot
- tout
- always: altijd always
- immer vzdy
- sempre totdeauna
- toujours
- auto: auto auto
- auto auto
- auto auto
- auto
- autointro: autointro autointro
- autointro autouvod
- autointro autointro
- autointro
- both: beide both
- beide obe
- entrambi ambele
- lesdeux
- inner: binnen inner
- innen uvnitr
- interno intern
- interieur
- blank: blanko blank
- blanko prazdny
- rigovuoto blank
- vide
- disable: blokkeer disable
- sperren zablokovat
- disattiva dezactivat
- desactiver
- top: boven top
- oben vrsek
- cima sus
- sup
- wide: breed wide
- breit siroce
- ampio larg
- ample
- width: breedte width
- breite sirka
- ampiezza latime
- largeur
- minwidth: minbreedte minwidth
- minbreite minsirka
- ampiezzamin latimeminima
- largeurmin
- outer: buiten outer
- aussen vnejsi
- esterno extern
- exterieur
- numbers: cijfers numbers
- ziffern cisla
- numeri numere
- numeros
- Numbers: Cijfers Numbers
- Ziffern Cisla
- Numeri Numere
- Numeros
- command: commando command
- befehl prikaz
- comando comanda
- commande
- commands: commandos commands
- befehle prikazy
- comandi comenzi
- commandes
- concept: concept concept
- konzept koncept
- concetto concept
- concept
- day: dag day
- tag den
- giorno zi
- jour
- date: datum date
- datum datum
- data data
- date
- default: default default
- default implicitni
- implicito implicit
- defaut
- final: definitief final
- endfassung finalni
- finale final
- final
- float: blok float
- gleitobjekt plvouciobjekt
- oggettomobile obiectmobil
- flottant
- depth: diepte depth
- tiefe podlehloubky
- profondita adancime
- profondeur
- doublesided: dubbelzijdig doublesided
- doppelseitig dvoustranny
- doppiafaccia douafete
- rectoverso
- first: eerste first
- erste prvni
- primo primul
- premier
- each: elk each
- jede kazdy
- ogni fiecare
- chaque
- singlesided: enkelzijdig singlesided
- einzelseitig jednostranne
- facciasingola ofata
- recto
- somewhere: ergens somewhere
- irgendwo nekde
- daqualcheparte undeva
- qqpart
- nowhere: nergens nowhere
- nirgens nikde
- danessunaparte niciunde
- nulpart
- even: even even
- gerade sude
- pari par
- paire
- external: extern external
- extern externi
- esterno extern
- external
- file: file file
- datei soubor
- file fisier
- fichier
- flexible: flexibel flexible
- flexibel prizpusobive
- flessibile flexibil
- flexible
- force: forceer force
- zwinge sila
- forza fortat
- force
- used: gebruikt used
- verwende uzito
- usato folosit
- used
- none: geen none
- kein zadny
- nessuno niciunul
- rien
- nomarking: geenmarkering nomarking
- keinebeschriftung zadneznaceni
- nomarcature faramarcare
- sansmarquage
- nonumber: geennummer nonumber
- nonumber nonumber
- nonumber nonumber
- sansnumero
-% geentekst: geentekst notext
-% notext notext
-% notext notext
- nowhite: geenwit nowhite
- keinweiss zadnabila
- nobianco faraalb
- sansblanc
- rotated: geroteerd rotated
- gedreht otoceno
- ruotato rotat
- tourne
- mirrored: gespiegeld mirrored
- gespiegelt zrcadleno
- riflesso oglindit
- reflete
- global: globaal global
- global globalne
- globale global
- global
- grid: grid grid
- gritter mrizka
- griglia grila
- grille
- nogrid: geengrid nogrid
- nogrid nogrid
- nogrid nogrid
- nogrid
- big: groot big
- gross velke
- grande mare
- grand
- bigbodyfont: grootkorps bigbodyfont
- bigbodyfont bigbodyfont
- grossofontdeltesto bigbodyfont
- grandepolicecorp
- bigpreference: grotevoorkeur bigpreference
- grosszuegig vysokapriorita
- grandepreferenza preferintamare
- grandepreference
- gray: grijs gray
- grau seda
- grigio gri
- gris
- halfline: halveregel halfline
- halbezeile pulradku
- mezzariga jumatatelinie
- demiligne
- keep: handhaaf keep
- behalte drzet
- mantieni mentine
- maintient
- hanging: hangend hanging
- haengend visici
- sospeso suspendat
- suspend
- spacing: spatiering spacing
- spatiumausgleich mezerovani
- spaziatura spatiere
- espacement
- nospacing: geenspatiering nospacing
- nospacing nospacing
- nospacing nospacing
- sansespacement
- repeat: herhaal repeat
- wiederholen opakovat
- ripeti repetat
- repete
- fix: herstel fix
- stellewiederher fixuj
- fisso fix
- fixe
- here: hier here
- hier zde
- qui aici
- ici
- header: hoofd header
- kopfzeile zahlavi
- intestazione antet
- entete
- high: hoog high
- hoch vysoko
- alto inalt
- haut
- height: hoogte height
- hoehe vyska
- altezza inaltime
- hauteur
- minheight: minhoogte minheight
- minhoehe minvyska
- altezzamin inaltimeminima
- hauteurmin
- horizontal: horizontaal horizontal
- horizontal horizontalne
- orizzontale orizontal
- horizontale
- current: huidige current
- aktuell aktualni
- corrente curent
- courant
- hz: hz hz
- hz hz
- hz hz
- hz
- nohz: geenhz nohz
- nohz nohz
- nohz nohz
- nohz
- italic: italic italic
- italic kurziva
- corsivo italic
- italique
- inherit: erf inherit
- inherit inherit
- inherit inherit
- herite
- inleft: inlinker inleft
- imlinken vlevo
- insinistra instanga
- dansgauche
- inmargin: inmarge inmargin
- imrand naokraji
- inmargine inmargine
- dansmarge
- inright: inrechter inright
- imrechten vpravo
- indestra indreapta
- dansdroit
- interaction: interactie interaction
- interaktion interakce
- interazione interactiune
- interaction
- intext: intekst intext
- imtext dotextu
- intesto intext
- danstexte
- intro: intro intro
- intro uvod
- intro intro
- intro
- its: its its
- its pol
- its propriu
- its
- yes: ja yes
- ja ano
- si da
- oui
- year: jaar year
- jahr rok
- anno an
- annee
- frame: kader frame
- rahmen ramecek
- cornice incadrat
- cadre
- marginedge: kantlijn marginedge
- marginalkante textovahrana
- bordomargine marginebordura
- bordmarge
- cap: kap cap
- kap kap
- cap cap
- cap
- capital: kapitaal capital
- versalien kapitalky
- maiuscolo majuscula
- capitale
- referral: kenmerk referral
- merkmal znacka
- referral referinta
- referral
- small: klein small
- klein male
- piccolo mic
- petit
- smallnormal: kleinnormaal smallnormal
- kleinnormal malenormalni
- piccolonormale micnormal
- normalpetit
- smallslanted: kleinschuin smallslanted
- kleingeneigt malesklonene
- piccoloinclinato micinclinat
- inclinepetit
- smallslantedbold: kleinschuinvet smallslantedbold
- kleingeneigtfett malesklonenetucne
- piccoloinclinatograssetto micinclinataldin
- grasinclinepetit
- smallitalic: kleinitalic smallitalic
- kleinitalic malekurzivni
- piccolocorsivo micitalic
- italiquepetit
- smallitalicbold: kleinitalicvet smallitalicbold
- kleinitalicfett malekurzivnitucne
- piccolocorsivograssetto micitalicaldin
- grasitaliquepetit
- smalltype: kleintype smalltype
- kleintippen maletype
- piccolotype mictype
- petittype
- smallbold: kleinvet smallbold
- kleinfett maletucne
- piccolograssetto micaldin
- graspetit
- smallboldslanted: kleinvetschuin smallboldslanted
- kleinfettgeneigt maletucnesklonene
- piccolograssettoinclinato micaldininclinat
- inclinegraspetit
- smallbolditalic: kleinvetitalic smallbolditalic
- kleinfettitalic maletucnekurzivni
- piccolograssettocorsivo micaldininclinat
- italiquegraspetit
- smallbodyfont: kleinkorps smallbodyfont
- smallbodyfont smallbodyfont
- piccolofontdelcorpo smallbodyfont
- petitepolicecorps
- split: splitsen split
- split split
- separa split
- split
- toggle: toggle wissel
- toggle toggle
- toggle toggle
- toggle
- color: kleur color
- farbe barevne
- colore culoare
- couleur
- column: kolom column
- column column
- colonna coloana
- colonne
- columns: kolommen columns
- spalten sloupce
- colonne coloane
- colonnes
- head: kop head
- kopf hlavicka
- testa antet
- tete
- low: laag low
- tief nizko
- basso jos
- bas
- last: laatste last
- letzte posledni
- ultimo ultim
- dernier
- label: label label
- label popisek
- etichetta eticheta
- etiquette
- lohi: laho lohi
- hoti nivy
- pedap lohi
- baha
- tall: lang tall
- lang vysoko
- alto inalt
- long
- empty: leeg empty
- leer prazdne
- vuoto gol
- vide
- Character: Letter Character
- Buchstabe Pismeno
- Lettera Caracter
- Caratere
- character: letter character
- buchstabe pismeno
- lettera caracter
- caractere
- Characters: Letters Characters
- Buchstaben Pismena
- Lettere Caractere
- Caracteres
- characters: letters characters
- buchstaben pismena
- lettere caractere
- caracteres
- landscape: liggend landscape
- querformat nasirku
- orizzontale vedere
- paysage
- rule: lijn rule
- linie linka
- linea rigla
- regle
- list: lijst list
- liste seznam
- elenco lista
- liste
- leftmargin: linkermarge leftmargin
- linkerrand levyokraj
- marginesinistro marginestanga
- margegauche
- leftpage: linkerpagina leftpage
- linkerseite levastranka
- paginasinistra paginastanga
- pagegauche
- leftedge: linkerrand leftedge
- linkekante levahrana
- bordosinistro bordurastanga
- bordgauche
- left: links left
- links vlevo
- sinistra stanga
- gauche
- local: lokaal local
- lokal lokalne
- locale local
- local
- new: nieuw new
- neu novy
- nuovo nou
- nouveau
- old: oud old
- old old
- old old
- old
- MONTH: MAAND MONTH
- MONAT MESIC
- MESE LUNA
- MOIS
- month: maand month
- monat mesic
- mese luna
- mois
- mar: mar mar
- mar mar
- mar mar
- mar
- item: som item
- pos polozka
- elemento element
- element
- marking: markering marking
- beschriftung znaceni
- marcatura marcaje
- marquage
- margin: marge margin
- marginalie marginalie
- margine margine
- marge
- max: max max
- max max
- max max
- max
- min: min min
- min min
- min min
- min
- mediaeval: mediaeval mediaeval
- mittelalterlich stredoveky
- medievale medieval
- medieval
- medium: middel medium
- mittel stredni
- medio mediu
- moyen
- middle: midden middle
- mittig nastred
- centro centru
- milieu
- after: na after
- nach po
- dopo dupa
- apres
- name: naam name
- name jmeno
- nome nume
- nom
- opposite: naast opposite
- gegenueber naproti
- opposto opus
- opposition
- no: nee no
- nein ne
- no nu
- non
- negative: negatief negative
- negativ negativ
- negativo negativ
- negatif
- positive: positief positive
- positiv positiv
- positivo positiv
- positif
- not: niet not
- nicht ne
- non nu
- pas
- never: nooit never
- nie nikdy
- mai niciodata
- jamais
- normal: normaal normal
- normal normalni
- normale normal
- normal
- number: nummer number
- nummer cislo
- numero numar
- numero
- offset: offset offset
- offset offset
- offset offset
- offset
- unknown: onbekend unknown
- unbekannt neznamy
- ignoto necunoscut
- inconnu
- bottom: onder bottom
- unten spodek
- fondo subsol
- inf
- odd: oneven odd
- ungerade liche
- dispari impar
- impair
- packed: opelkaar packed
- gepackt zhustene
- impaccato impachetat
- groupe
- unpacked: vanelkaar unpacked
- ungepackt rozbalene
- unpacked despachetat
- degroupe
- makeup: opmaak makeup
- umbruch zlom
- makeup marcaj
- makeup
- atmargin: opmarge atmargin
- amrand naokraji
- almargine lamargine
- alamarge
- overlay: overlay overlay
- overlay prekryv
- sovrapponi overlay
- revetement
- page: pagina page
- seite stranka
- pagina pagina
- page
- pagenumber: paginanummer pagenumber
- seitennummer cislostranky
- numeropagina numarpagina
- numeropage
- paper: papier paper
- papier papir
- carta foaie
- papier
- display: scherm display
- bildschirm obrazovka
- schermo display
- affichage
- reverse: omgekeerd reverse
- reverse reverse
- invertito reverse
- inverse
- fit: passend fit
- passend prizpusobive
- adatta ajustat
- adapte
-nofit: nietpassend nofit
- nofit nofit
- nofit nofit
- nofit
- postscript: postscript postscript
- postscript postscript
- postscript postscript
- postscript
- preview: preview preview
- vorschau nahled
- anteprima previzualizare
- previsualisation
- program: programma program
- programm program
- programma program
- programme
- process: proces process
- process process
- process process
- process
- spot: spot spot
- spot spot
- spot spot
- spot
- dot: punt dot
- punkt tecka
- punto punct
- point
- ran: ran ran
- ran rozsah
- corse rulat
- cours
- edge: rand edge
- kante hrana
- bordo bordura
- bord
- screen: raster screen
- raster rastr
- schermo ecran
- ecran
- rectangular: recht rectangular
- rechteckig pravouhly
- rettangolare rectangular
- rectangulaire
- rightmargin: rechtermarge rightmargin
- rechterrand pravyokraj
- marginedestro marginedreapta
- margedroite
- rightpage: rechterpagina rightpage
- rechterseite pravastranka
- paginadestra paginadreapta
- pagedroite
- rightedge: rechterrand rightedge
- rechterkante pravahrana
- bordodestro borduradreapta
- borddroit
- right: rechts right
- rechts vpravo
- destra dreapta
- droite
- line: regel line
- zeile radek
- riga linie
- ligne
- hang: hang hang
- haengend zaveseni
- sospendi suspenda
- suspend
- register: register register
- register rejstrik
- registro registru
- registre
- relative: relatief relative
- relativ relativni
- relativo relativ
- relatif
- reset: reset reset
- zuruecksetzten reset
- reimposta reset
- raz
- Romannumerals: Romeins Romannumerals
- Roemischezahlen Rimskecislice
- Numeriromani Numereromane
- Chiffresromains
- romannumerals: romeins romannumerals
- roemischezahlen rimskecislice
- numeriromani numereromane
- chiffresromains
- greek: grieks greek
- griechisch recky
- greco grec
- grec
- Greek: Grieks Greek
- Griechisch Recky
- Greco Grec
- Grec
- round: rond round
- rund zaobleny
- rotondo rotund
- rond
- rotate: roteer rotate
- drehe otoc
- ruota rotit
- oriente
- stretch: rek stretch
- strecken natahnout
- dilata dilatat
- etire
- backspace: rugwit backspace
- rumpfspatium zpetnamezera
- backspace spatiuspate
- retourarriere
- broad: ruim broad
- breit siroky
- ampio broad
- large
- row: rij row
- row row
- row rand
- rang
- slanted: schuin slanted
- geneigt sklonene
- inclinato inclinat
- incline
- slantedbold: schuinvet slantedbold
- geneigtfett sklonenetucne
- inclinatograssetto inclinataldin
- grasincline
- synchronize: synchroniseer synchronize
- synchronize synchronize
- synchronize synchronize
- synchronize
- italicbold: italicvet italicbold
- italicfett kurzivnitucne
- corsivograssetto italicaldin
- grasitalique
- sectionnumber: sectienummer sectionnumber
- abschnittsnummer cislooddilu
- numerosezione numarsetiune
- numerosection
- narrow: smal narrow
- schmall uzky
- stretto ingust
- etroit
- cutspace: snijwit cutspace
- cutspace cutspace
- cutspace cutspace
- cutspace
- tolerant: soepel tolerant
- tolerant tolerantni
- tollerante tolerant
- tolerant
- space: spatie space
- spatium mezera
- spazio spatiu
- espace
- standard: standaard standard
- standard standardni
- standard standard
- standard
- start: start start
- start start
- inizia start
- demarre
- stop: stop stop
- stop stop
- termina stop
- stoppe
- strict: streng strict
- streng striktni
- rigido strict
- strict
- strut: strut strut
- strut strut
- strut strut
- strut
- sub: sub sub
- unter pod
- sotto sub
- sous
- sym: sym sym
- sym sym
- sim sym
- sym
- txt: txt txt
- txt txt
- txt txt
- txt
- symbol: symbool symbol
- symbol symbol
- simbolo simbol
- symbole
- text: tekst text
- text text
- testo text
- texte
- back: terug back
- zurueck zpet
- dietro inapot
- retour
- test: test test
- test test
- test test
- test
- inbetween: tussen inbetween
- zwischen mezi
- tra intre
- entre
- type: type type
- tippen type
- type type
- type
- off: uit off
- aus vyp
- disattivo dezactivat
- desactive
- url: url url
- url url
- url url
- url
- URL: URL URL
- URL URL
- URL URL
- URL
- fixed: vast fixed
- fest fixne
- fisso fixat
- fixe
- loose: los loose
- lose uvolnene
- lento larg
- perte
- continue: verder continue
- fortsetzten pokracovat
- continua continuu
- continue
- vertical: vertikaal vertical
- vertikal vertikalne
- verticale vertical
- verticale
- bold: vet bold
- fett tucne
- grassetto aldin
- gras
- sansbold: sansvet sansbold
- sansfett sanstucne
- sansgrassetto sansaldin
- sansgras
- boldslanted: vetschuin boldslanted
- fettgeneigt tucnesklonene
- grassettoinclinato aldininclinat
- inclinegras
- bolditalic: vetitalic bolditalic
- fettitalic tucnekurzivni
- grassettocorsivo aldinitalic
- italiquegras
- quadruple: viertal quadruple
- viertel ctyrnasobny
- quadruplo cvadrupul
- quadruple
- footer: voet footer
- fusszeile upati
- piedipagina subsol
- pdp
- next: volgende next
- folgende dalsi
- successivo urmatorul
- prochain
- before: voor before
- vor pred
- prima inainte
- avant
- foreground: voorgrond foreground
- vordergrund popredi
- foreground primplan
- premierplan
- preference: voorkeur preference
- einstellung nastaveni
- preferenza preferinta
- preference
- temporary: voorlopig temporary
- temporaer docasne
- temporaneo temporar
- temporaire
- forward: vooruit forward
- vorwaerts vpred
- avanti avans
- avance
- subforward: subvooruit subforward
- untervorwaerts podvpred
- sottoavanti subavans
- sousavance
- previous: vorige previous
- vorig predchozi
- precedente precedent
- precedent
- value: waarde value
- wert hodnota
- valore valoare
- valeur
- week: week week
- woche tyden
- settimana saptamana
- semaine
- weekday: weekdag weekday
- wochentag vsedniden
- giornosettimana zisaptamana
- joursemaine
- WEEKDAY: WEEKDAG WEEKDAY
- WOCHENTAG VSEDNIDEN
- GIORNOSETTIMANA ZISAPTAMANA
- JOURSEMAINE
- random: willekeurig random
- zufaellig nahodny
- casuale aleator
- aleatoire
- white: wit white
- weiss bily
- bianco alb
- blanc
- very: zeer very
- sehr velmi
- molto foarte
- tres
- verytolerant: zeersoepel verytolerant
- sehrtolerant velmitolerantni
- moltotollerante foartetolerant
- trestolerant
- verystrict: zeerstreng verystrict
- sehrstreng velmistriktni
- moltorigido foartestrict
- tresstrict
- see: zie see
- sieh viz
- vedi vezi
- voit
- smallcaps: smallcaps smallcaps
- smallcaps kapitalky
- maiuscoletto majusculemici
- petitescapitales
- WORD: WOORD WORD
- WORT SLOVO
- PAROLA CUVANT
- MOT
- firstpage: eerstepagina firstpage
- ersteseite prvnistranka
- primapagina primapagina
- premierepage
- firstcolumn: eerstekolom firstcolumn
- firstcolumn firstcolumn
- firstcolumn firstcolumn
- premierecolonne
- previouspage: vorigepagina previouspage
- vorigeseite predchozistranka
- paginaprecedente paginaanterioara
- pageprecedente
- nextpage: volgendepagina nextpage
- folgendeseite dalsistranka
- paginasuccessiva paginaurmatoare
- pagesuivante
- lastpage: laatstepagina lastpage
- letzteseite poslednistrana
- ultimapagina ultimapagina
- dernierepage
- lastcolumn: laatstekolom lastcolumn
- lastcolumn lastcolumn
- lastcolumn lastcolumn
- dernierecolonne
- lastpagenumber: laatstepaginanummer lastpagenumber
- lastpagenumber lastpagenumber
- lastpagenumber lastpagenumber
- derniernumeropage
- subpage: subpagina subpage
- unterseite podstranka
- sottopagina subpagina
- souspage
- firstsubpage: eerstesubpagina firstsubpage
- ersteunterseite prvnipodstranka
- primasottopagina primasubpagina
- premieresouspage
- previoussubpage: vorigesubpagina previoussubpage
- vorigeunterseite predchozipodstranka
- sottopaginaprecedente subpaginaanterioara
- souspageprecedente
- nextsubpage: volgendesubpagina nextsubpage
- folgendeunterseite dalsipodstranka
- sottopaginasuccessiva urmatoareasubpagina
- souspagesuivante
- lastsubpage: laatstesubpagina lastsubpage
- letzteunterseite poslaednipodstranka
- ultimasottopagina ultimasubpagina
- dernieresouspage
- nextevenpage: volgendeevenpagina nextevenpage
- naechstegeradeseite dalsisudastranka
- paginaparisuccessiva paginaparaurmatoarea
- pagepairesuivante
- nextoddpage: volgendeonevenpagina nextoddpage
- naechsteungeradeseite dalsilichastranka
- paginadisparisuccessiva paginaimparaurmatoarea
- pageimpairesuivante
- previousevenpage: vorigeevenpagina previousevenpage
- vorigegeradeseite predchozisudastranka
- paginapariprecedente paginaparaprecedenta
- pagepaireprecedente
- previousoddpage: vorigeonevenpagina previousoddpage
- vorigeungeradeseite predchozilichastranka
- paginadispariprecedente paginaimparaprecedenta
- pageimpaireprecedente
- readonly: alleenleesbaar readonly
- nurlesbar pouzeprocteni
- solalettura readonly
- lectureseule
- required: verplicht required
- obligatorisch pozadovane
- richiestp obligatoriu
- recquis
- protected: beschermd protected
- geschuetzt chranene
- protetto protejat
- protege
- sorted: gesorteerd sorted
- sortiert tridene
- ordinato sortat
- trie
- unavailable: nietbeschikbaar unavailable
- nichtverfuegbar nedostupne
- nondisponibile nedisponibil
- indisponible
- hidden: verborgen hidden
- versteckt skryte
- nascosto ascuns
- cache
- printable: printbaar printable
- druckbar tisknutelne
- stampabile tiparibil
- editable
- bookmark: bookmark bookmark
- bookmark zalozka
- segnalibro semncarte
- marquepage
- nocheck: geencontrole nocheck
- nocheck nocheck
- nocheck nocheck
- nonverifie
- innermargin: binnenmarge innermargin
- innermargin innermargin
- margineinterno innermargin
- margeinterieure
- outermargin: buitenmarge outermargin
- outermargin outermargin
- margineesterno outermargin
- margeexterieure
- inneredge: binnenrand inneredge
- inneredge inneredge
- bordointerno inneredge
- bordinterieur
- outeredge: buitenrand outeredge
- outeredge outeredge
- bordoesterno outeredge
- bordexterieur
- controls: sturing controls
- controls controls
- controlli controale
- controles
- nothanging: niethangend nothanging
- nothanging nothanging
- nonsospeso nothanging
- nonsuspendu
- hyphenated: afgebroken hyphenated
- hyphenate hyphenated
- sillabato despsilabe
- hyphenated
- nothyphenated: nietafgebroken nothyphenated
- nothyphenated nothyphenated
- nonsillabato nedespsilabe
- nothyphenated
- overprint: overprint overprint
- overprint overprint
- overprint overprint
- overprint
- knockout: knockout knockout
- knockout knockout
- knockout knockout
- knockout
- xml: xml xml
- xml xml
- xml xml
- xml
- enumeration: doornummering enumeration
- nummerierung vycet
- enumerazione enumerare
- enumeration
- description: doordefinitie description
- beschreibung popis
- descrizione descriere
- description
-
- lefthanging: linkshangend lefthanging
- lefthanging lefthanging
- lefthanging lefthanging
- lefthanging
- righthanging: rechtshangend righthanging
- righthanging righthanging
- righthanging righthanging
- righthanging
-
-\stopvariables
-
-\startconstants dutch english
- german czech
- italian romanian
- french
-
- controls: sturing controls
- controls controls
- controlli controale
- controles
- global: globaal global
- global globalne
- globale global
- global
- overprint: overprint overprint
- overprint overprint
- overprint overprint
- overprint
-
-\stopconstants
-
-% so far
-
-%D \stopcompressdefinitions
-
-%D Maybe it's better to make the next few variables into
-%D elements as well.
-
-%D \startcompressdefinitions
-
-\startvariables dutch english
- german czech
- italian romanian
- french
-
- conversion: conversie conversion
- konversion konverze
- coversione conversie
- conversion
- by: per by
- pro skrz
- da de
- par
-
-\stopvariables
-
-%D \stopcompressdefinitions
-
-%D The next setup shows the use of the keyword \type{all}.
-%D These constants are the same for all languages.
-
-%D \startcompressdefinitions
-
-\startconstants all
-
- dx: dx
- dy: dy
- nx: nx
- ny: ny
- nr: nr
- nl: nl
- nc: nc
- sx: sx
- sy: sy
- n: n
- vfil: vfil
- hfil: hfil
- strut: strut
- autostrut: autostrut
- reset: reset
- set: set
- escape: escape
- apa: apa
-
-\stopconstants
-
-%D \stopcompressdefinitions
-
-%D We need some font family switching names both as constant
-%D and as variable.
-
-%D \startcompressdefinitions
-
-\startvariables dutch english
- german czech
- italian romanian
- french
-
- calligraphic: calligrafie calligraphic
- kalligraphie kaligraficke
- calligrafico caligrafic
- calligraphique
- handwritten: handschrift handwritten
- handschrift rukopisne
- grafiamanuale scrismanual
- manuscript
- sansserif: schreefloos sansserif
- grotesk bezserifu
- sansserif sansserif
- sansserif
- roman: romaan roman
- antiqua antikva
- roman roman
- roman
- teletype: teletype teletype
- fernschreiber strojopis
- teletype teletype
- teletype
- type: type type
- tippen opis
- type type
- type
- serif: serif serif
- serif serif
- serif serif
- serif
- regular: regular regular
- regular pravidelne
- regolare regular
- regulier
- support: support support
- support podpora
- supporto suport
- support
- sans: sans sans
- sans sans
- sans sans
- sans
- mono: mono mono
- mono mono
- mono mono
- mono
-
-\stopvariables
-
-%D \stopcompressdefinitions
-
-% %D All relevent commands of \CONTEXT\ are specified in a
-% %D structured way that enables the generation of reference
-% %D cards. This specification is setup in a language independant
-% %D way. The next category of variables is only used in this
-% %D context.
-
-% %D \startcompressdefinitions
+% obsolete:
+%
%
-% \startsetupvariables dutch english
+% \startvariables dutch english
% german czech
% italian romanian
% french
%
-% enumeration: doornummering enumeration
-% nummerierung vycet
-% enumerazione enumerare
-% enumeration
-% description: doordefinitie description
-% beschreibung popis
-% descrizione descriere
-% description
-% indentation: doorsprong indentation
-% einzug odsazeni
-% rientro indentare
-% indentation
-% labeling: doorlabel labeling
-% beschriften oznacovani
-% etichettatura etichetare
-% etiquettage
-% combinedlist: samengesteldelijst combinedlist
-% kombiniereliste kombinovanyseznam
-% elencocombinato listacombinata
-% listeimbriquee
-% % beware: section clashes with sectionlevel
-% section: sectie section
-% abschnitt oddil
-% sezione sectiune
-% section
-% register: register register
-% register rejstrik
-% registro registru
-% registre
-% interaction: interactie interaction
-% interaktion interakce
-% interazione interactiune
-% interaction
-% synonym: synoniem synonym
-% synonym synonymum
-% sinonimo sinonim
-% synonyme
-% synonyms: synoniemen synonyms
-% synonyme synonyma
-% sinonimi sinonime
-% synonymes
-% sort: sorteer sort
-% sortiere trid
-% sort sortare
-% tri
-% sorts: sorteren sorts
-% sortieren tridit
-% sorts sortari
-% tris
-% name: naam name
-% name jmeno
-% nome nume
-% name
-% float: blok float
-% gleitobjekt plvouciobjekt
-% oggettomobile obiectmobil
-% flottant
-% floats: blokken floats
-% gleitobjekte plvouciobjekty
-% oggettimobili obiectemobile
-% flottants
-% paragraph: alinea paragraph
-% absatz odstavec
-% capoverso paragraf
-% paragraphe
-% framedtext: kadertekst framedtext
-% umrahmtertext oramovanytext
-% testoincorniciato textinconjurat
-% texteencadre
-% itemgroup: itemgroup itemgroup
-% itemgroup itemgroup
-% itemgroup itemgroup
-% itemgroup
-% typing: typen typing
-% tippen typing
-% typing typing
-% typing
-% buffer: buffer buffer
-% puffer buffer
-% buffer buffer
-% buffer
-% formula: formule formula
-% formel rovnice
-% formula formula
-% formule
-% subformula: subformule subformula
-% unterformel podrovnice
-% sottoformula subformula
-% sousformule
-% tabulate: tabulatie tabulate
-% tabulator tabelator
-% tabulato tabulate
-% tabule
+% one: een one
+% eins jedna
+% uno unu
+% un
+% \stopvariables
%
-% \stopsetupvariables
-
-% %D \stopcompressdefinitions
-
-%D The number of elements used for composing user defined
-%D commands is rather small. We use a \type{-} for empty
-%D elements.
-
-%D \startcompressdefinitions
-
-\startelements dutch english
- german czech
- italian romanian
- french
-
- begin: beginvan begin
- anfang zacatek
- inizio inceput
- debut
- end: eindvan end
- ende konec
- fine sfarsit
- fin
- coupled: gekoppelde coupled
- verknuepft propojene
- accoppiato cuplat
- couple
- get: haal get
- get ziskat
- prendi get
- obtient
- currentlocal: huidigelokale currentlocal
- aktuelllokal aktualnelokalni
- correntelocale localcurent
- localcourant
- endsetup: in -
- ein -
- - -
- -
- load: laad load
- laden nacist
- carica incarca
- charge
- emptyone: leeg empty
- vuoto leer
- prazdne gol
- vide
- emptytwo: lege empty
- leer prazdne
- vuoti gol
- vide
- list: lijst list
- auflisten seznam
- elenco lista
- liste
- listof: lijstmet listof
- auflistenvon seznam
- elencodi listade
- listede
- local: lokale local
- lokal lokalne
- locale local
- local
- place: plaats place
- platziere umisti
- metti pune
- place
- reserve: reserveer reserve
- reservieren rezervovat
- riserva rezervat
- reserver
- start: start start
- start start
- inizia start
- demarre
- setup: stel setup
- stelle nastaveni
- imposta setare
- regle
- stop: stop stop
- stop stop
- termina stop
- stoppe
- increment: verhoog increment
- erhoehen zvysit
- incrementa increment
- incremente
- next: volgende next
- folgende dalsi
- successivo urmatorul
- suivant
- complete: volledige complete
- vollende uplny
- completo complet
- complete
- previous: vorige previous
- vorige predchozi
- precedente precedent
- precedent
- previouslocal: vorigelokale previouslocal
- voriglokal predchozilokalni
- precedentelocale precedentlocal
- localprecedent
- see: zie see
- sieh viz
- vedi vezi
- voit
- type: type type
- type opis
- type type
- type
- makeup: opmaak makeup
- umbruch zlom
- makeup makeup
- makeup
- text: tekst text
- text text
- testo text
- texte
-
-\stopelements
-
-%D These are predefined instances. To be cleaned up.
-
-\startvariables dutch english
- german czech
- italian romanian
- french
-
- buffer: buffer buffer
- puffer buffer
- buffer buffer
- buffer
- linenote: regelnoot linenote
- linenote linenote
- linenote linenote
- noteligne
- comment: commentaar comment
- kommentar komentar
- commento comentariu
- commentaire
- interactionmenu: interactiemenu interactionmenu
- interaktionsmenue interaktivnimenu
- menuinterattivo meniuinteractiune
- menuinteraction
- postponing: uitstellen postponing
- verschieben odlozit
- posporre postponing
- postponing
- hiding: verbergen hiding
- verbergen skryt
- nascondere ascundere
- cache
- tabulate: tabulatie tabulate
- tabulator tabelator
- tabulato tabulate
- tabule
- tabulatehead: tabulatiekop tabulatehead
- tabulatehead tabulatehead
- testatabulato tabulatehead
- tetetabule
- tabulatetail: tabulatiestaart tabulatetail
- tabulatetail tabulatetail
- codatabulato tabulatetail
- queuetabule
- fact: gegeven fact
- gegeben fakt
- fatto fapt
- fait
- legend: legenda legend
- legende legenda
- legenda legenda
- legende
- formula: formule formula
- formel rovnice
- formula formula
- formule
- tablehead: tabelkop tablehead
- tabellenueberschrift zahlavitabulky
- testatabella antettabel
- tetetableau
- tabletail: tabelstaart tabletail
- tabellenende konectabulky
- codatabella subsoltabel
- queuetableau
- setups: instellingen setups
- impostazioni einstellungen
- nastaveni setari
- reglages
- helptext: helptekst helptext
- hilfetext textnapovedy
- testoaiuto textajutator
- texteaide
- localenvironment: deelomgeving localenvironment
- lokaleumgebung lokalnihoprostredi
- ambientelocale mediulocal
- environementlocal
- sectionblockenvironment: sectieblokomgeving sectionblockenvironment
- sectionblockenvironment sectionblockenvironment
- ambientebloccosezione blocsectiuneambient
- environementblocsection
- pagecomment: paginacommentaar pagecomment
- pagecomment komentarstranky
- commentopagina comentariupagina
- commentairepage
-
-\stopvariables
-
-%D \stopcompressdefinitions
-
-%D The next set of definitions is used when accessing viewer
-%D capabilities. Their foreign nature is reflected by using
-%D Capitals.
-
-%D \startcompressdefinitions
-
-\startvariables dutch english
- german czech
- italian romanian
- french
-
- FirstPage: EerstePagina FirstPage
- ErsteSeite PrvniStrana
- PrimaPagina PrimaPagina
- PremierePage
- PreviousPage: VorigePagina PreviousPage
- VorigeSeite PredchoziStrana
- PaginaPrecedente PaginaPrecedenta
- PagePrecedente
- NextPage: VolgendePagina NextPage
- FolgendeSeite DalsiStrana
- PaginaSuccessiva PaginaUrmatoare
- PageSuivante
- LastPage: LaatstePagina LastPage
- LetzteSeite PosledniStrana
- UltimaPagina UltimaPagina
- DernierePage
- PreviousJump: VorigeSprong PreviousJump
- VorigerSprung PredchoziSkok
- SaltoPrecedente SaltPrecedent
- SautPrecedent
- NextJump: VolgendeSprong NextJump
- NaechsterSprung NasledujiciSkok
- SaltoSuccessivo SaltUrmator
- SautSuivant
- ToggleViewer: WisselViewer ToggleViewer
- WechseleViewer ZmenitProhlizec
- ScambiaVisualizzatore SchimbaVizualizator
- ChangeVisualisateur
- ExitViewer: VerlaatViewer ExitViewer
- BeendeViewer UkoncitProhlizec
- EsciVisualizzatore IesireVizualizator
- SortVisualisateur
- CloseDocument: SluitDocument CloseDocument
- SchliesseDokument ZavritDokument
- ChiudiDocumento InchideDocument
- FermeDocument
- SaveDocument: BewaarDocument SaveDocument
- SpeichereDokument UlozitDokument
- SalvaDocumento SalvareDocument
- SauvegardeDocument
- SaveNamedDocument: BewaarDocumentOpNaam SaveNamedDocument
- SaveNamedDocument SaveNamedDocument
- SaveNamedDocument SaveNamedDocument
- SauvegardeDocumentNomme
- OpenNamedDocument: OpenDocumentOpNaam OpenNamedDocument
- OpenNamedDocument OpenNamedDocument
- OpenNamedDocument OpenNamedDocument
- OuvreDocumentNomme
- ViewerHelp: ViewerHelp ViewerHelp
- ViewerHilfe NapovedaProhlizece
- AiutoVisualizzatore AjutorVizualizator
- AideVisualisateur
- PrintDocument: PrintDocument PrintDocument
- DruckeDokument VytisknoutDokument
- StampaDocumento TiparesteDocument
- ImprimeDocument
- SearchDocument: DoorzoekDocument SearchDocument
- DokumentDurchsuchen ProhledatDokument
- CercaDocumento CautaDocument
- RechercheDocument
- SearchAgain: HerhaalZoeken SearchAgain
- WeiterSuchen HledatZnovu
- CercaAncora CautaDinNou
- RechercheSuivant
- Query: RaadpleegDocument Query
- Query Query
- Richiesta Query
- Query
- QueryAgain: HerhaalRaadplegen QueryAgain
- QueryAgain QueryAgain
- RinnovaRichiesta QueryAgain
- QueryAgain
- GotoPage: GaNaarPagina GotoPage
- GotoPage JdiNaStranku
- VaiAPagina LaPagina
- VaalaPage
- StartMovie: StartFilm StartMovie
- StartFilm SpustitFilm
- IniziaFilm StartFilm
- DemarreFilm
- StopMovie: StopFilm StopMovie
- StopFilm ZastavitFilm
- FermaFilm StopFilm
- StoppeFilm
- PauseMovie: PauzeerFilm PauseMovie
- PauseFilm PozastavitFilm
- PausaFilm PauzaFilm
- PauseFilm
- ResumeMovie: HervatFilm ResumeMovie
- FortsetzenFilm PokracovatFilm
- RiprendiFilm RepornesteFilm
- ReprendFilm
- StartSound: StartGeluid StartSound
- StartSound StartZvuk
- IniziaSuono StartSunet
- DemarreSon
- StopSound: StopGeluid StopSound
- StopSound StopZvuk
- FermaSuono StopSunet
- StoppeSon
- PauseSound: PauzeerGeluid PauseSound
- PauseSound PozastavitZvuk
- PausaSuono PauzaSunet
- PauseSon
- ResumeSound: HervatGeluid ResumeSound
- ResumeSound PokracovatZvuk
- RiprendiSuono RepornesteSunet
- ReprendSon
- StartRendering: StartRendering StartRendering
- StartRendering StartRendering
- StartRendering StartRendering
- StartRendering
- StopRendering: StopRendering StopRendering
- StopRendering StopRendering
- StopRendering StopRendering
- StopRendering
- PauseRendering: PauzeerRendering PauseRendering
- PauseRendering PauseRendering
- PauseRendering PauseRendering
- PauseRendering
- ResumeRendering: HervatRendering ResumeRendering
- ResumeRendering ResumeRendering
- ResumeRendering ResumeRendering
- ResumeRendering
- SaveForm: BewaarFormulier SaveForm
- SpeicheFormular UlozitFormular
- SalvaForm SalveazaFormular
- SauvegardeForm
- LoadForm: LaadFormulier LoadForm
- LadeFormular NacistFormular
- CaricaForm IncarcaFormular
- ChargeForm
- ResetForm: ResetFormulier ResetForm
- ZuruecksetzenFormular ResetFormulare
- ReimpostaForm ResetareFormular
- RazForm
- SubmitForm: VerzendFormulier SubmitForm
- VersendeFormular PoslatFormular
- MandaForm TrimiteFormular
- SoumettreForm
- HideField: VerbergVeld HideField
- VerbergeFeld SkryjPole
- NascondiCampo AscundeCamp
- CacheChamp
- ShowField: ToonVeld ShowField
- ZeigeFeld UkazPole
- MostraCampo AfiseazaCamp
- MontreChamp
- FitWidth: BreedtePassend FitWidth
- BreitePassend FitWidth
- FitWidth AjustatLatime
- AjusteLargeur
- FitHeight: HoogtePassend FitHeight
- HoehePassend FitHeight
- FitHeight AjustatInaltime
- AjusteHauteur
- HideLayer: VerbergLaag HideLayer
- HideLayer HideLayer
- HideLayer HideLayer
- CacheCalque
- VideLayer: ToonLaag VideLayer
- VideLayer VideLayer
- VideLayer VideLayer
- VideLayer
- ToggleLayer: WisselLaag ToggleLayer
- ToggleLayer ToggleLayer
- ToggleLayer ToggleLayer
- ToggleLayer
-
- ShowThumbs: ShowThumbs ShowThumbs
- ShowThumbs UkazNahledy
- MostraThumbs ShowThumbs
- ShowThumbs
- ShowBookmarks: ShowBookmarks ShowBookmarks
- ShowBookmarks UkazZalozky
- MostraSegnalibro ShowBookmarks
- ShowBookmarks
-
-\stopvariables
-
-%D Here are some symbol names. We capitalize them because they are
-%D viewer specific.
-
-\startvariables dutch english
- german czech
- italian romanian
- french
-
- New: Nieuw New
- Neu Novy
- Nuovo Nou
- Nouveau
- Balloon: Ballon Balloon
- Ballon Bublinka
- Pallone Balon
- Ballon
- Addition: Toevoeging Addition
- Zusatz Pridavek
- Aggiunta Adaugare
- Ajout
- Help: Help Help
- Hilfe Napoveda
- Aiuto Ajutor
- Aide
- Paragraph: Paragraaf Paragraph
- Absatz Odstavec
- Capoverso Paragraf
- Paragraphe
- Key: Sleutel Key
- Schluessel Klavesa
- Tasto Cheie
- Cle
-\stopvariables
-
-%D \stopcompressdefinitions
-
-%D Last we define some constants and variables that are used
-%D in the \PRAGMA\ extensions of \CONTEXT.
-
-%D \startcompressdefinitions
-
-\startconstants all
-
- bet: bet
- dat: dat
- ken: ken
- ref: ref
-
-\stopconstants
-
-\startvariables all
-
- formeel: formeel
- informeel: informeel
- rekening: rekening
- sticker: sticker
- sheet: sheet
- brief: brief
- ls: ls
-
-\stopvariables
-
-\stoplogginginterface
+% \startconstants dutch english
+% german czech
+% italian romanian
+% french
+%
+% sorttype: sortering sorttype
+% sorttype sorttype
+% sorttype sorttype
+% sorttype
+% \stopconstants
+%
+% \startelements dutch english
+% german czech
+% italian romanian
+% french
+%
+% begin: beginvan begin
+% anfang zacatek
+% inizio inceput
+% debut
+% \stopelements
\endinput
diff --git a/Master/texmf-dist/tex/context/base/mult-de.tex b/Master/texmf-dist/tex/context/base/mult-de.tex
new file mode 100644
index 00000000000..3213fa7de93
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mult-de.tex
@@ -0,0 +1,1636 @@
+% this file is auto-generated, don't edit this file
+%
+% definitions for interface variables for language de
+%
+\setinterfacevariable{Addition}{Zusatz}
+\setinterfacevariable{Balloon}{Ballon}
+\setinterfacevariable{Character}{Buchstabe}
+\setinterfacevariable{Characters}{Buchstaben}
+\setinterfacevariable{CloseDocument}{SchliesseDokument}
+\setinterfacevariable{ExitViewer}{BeendeViewer}
+\setinterfacevariable{FirstPage}{ErsteSeite}
+\setinterfacevariable{FitHeight}{HoehePassend}
+\setinterfacevariable{FitWidth}{BreitePassend}
+\setinterfacevariable{GotoPage}{GotoPage}
+\setinterfacevariable{Greek}{Griechisch}
+\setinterfacevariable{Help}{Hilfe}
+\setinterfacevariable{HideField}{VerbergeFeld}
+\setinterfacevariable{HideLayer}{HideLayer}
+\setinterfacevariable{Key}{Schluessel}
+\setinterfacevariable{LastPage}{LetzteSeite}
+\setinterfacevariable{LoadForm}{LadeFormular}
+\setinterfacevariable{MONTH}{MONAT}
+\setinterfacevariable{New}{Neu}
+\setinterfacevariable{NextJump}{NaechsterSprung}
+\setinterfacevariable{NextPage}{FolgendeSeite}
+\setinterfacevariable{Numbers}{Ziffern}
+\setinterfacevariable{OpenNamedDocument}{OpenNamedDocument}
+\setinterfacevariable{Paragraph}{Absatz}
+\setinterfacevariable{PauseMovie}{PauseFilm}
+\setinterfacevariable{PauseRendering}{PauseRendering}
+\setinterfacevariable{PauseSound}{PauseSound}
+\setinterfacevariable{PreviousJump}{VorigerSprung}
+\setinterfacevariable{PreviousPage}{VorigeSeite}
+\setinterfacevariable{PrintDocument}{DruckeDokument}
+\setinterfacevariable{Query}{Query}
+\setinterfacevariable{QueryAgain}{QueryAgain}
+\setinterfacevariable{ResetForm}{ZuruecksetzenFormular}
+\setinterfacevariable{ResumeMovie}{FortsetzenFilm}
+\setinterfacevariable{ResumeRendering}{ResumeRendering}
+\setinterfacevariable{ResumeSound}{ResumeSound}
+\setinterfacevariable{Romannumerals}{Roemischezahlen}
+\setinterfacevariable{SaveDocument}{SpeichereDokument}
+\setinterfacevariable{SaveForm}{SpeicheFormular}
+\setinterfacevariable{SaveNamedDocument}{SaveNamedDocument}
+\setinterfacevariable{SearchAgain}{WeiterSuchen}
+\setinterfacevariable{SearchDocument}{DokumentDurchsuchen}
+\setinterfacevariable{ShowBookmarks}{ShowBookmarks}
+\setinterfacevariable{ShowField}{ZeigeFeld}
+\setinterfacevariable{ShowThumbs}{ShowThumbs}
+\setinterfacevariable{StartMovie}{StartFilm}
+\setinterfacevariable{StartRendering}{StartRendering}
+\setinterfacevariable{StartSound}{StartSound}
+\setinterfacevariable{StopMovie}{StopFilm}
+\setinterfacevariable{StopRendering}{StopRendering}
+\setinterfacevariable{StopSound}{StopSound}
+\setinterfacevariable{SubmitForm}{VersendeFormular}
+\setinterfacevariable{ToggleLayer}{ToggleLayer}
+\setinterfacevariable{ToggleViewer}{WechseleViewer}
+\setinterfacevariable{URL}{URL}
+\setinterfacevariable{VideLayer}{VideLayer}
+\setinterfacevariable{ViewerHelp}{ViewerHilfe}
+\setinterfacevariable{WEEKDAY}{WOCHENTAG}
+\setinterfacevariable{WORD}{WORT}
+\setinterfacevariable{abbreviation}{abkuerzung}
+\setinterfacevariable{abbreviations}{abkuerzungen}
+\setinterfacevariable{absolute}{absolut}
+\setinterfacevariable{action}{aktion}
+\setinterfacevariable{after}{nach}
+\setinterfacevariable{all}{alles}
+\setinterfacevariable{always}{immer}
+\setinterfacevariable{answerarea}{answerarea}
+\setinterfacevariable{appendices}{anhaenge}
+\setinterfacevariable{appendix}{anhang}
+\setinterfacevariable{april}{April}
+\setinterfacevariable{atmargin}{amrand}
+\setinterfacevariable{atpage}{aufseite}
+\setinterfacevariable{august}{August}
+\setinterfacevariable{auto}{auto}
+\setinterfacevariable{autointro}{autointro}
+\setinterfacevariable{back}{zurueck}
+\setinterfacevariable{background}{hintergrund}
+\setinterfacevariable{backmatter}{epiloge}
+\setinterfacevariable{backpart}{epilog}
+\setinterfacevariable{backspace}{rumpfspatium}
+\setinterfacevariable{backward}{rueckwaerts}
+\setinterfacevariable{before}{vor}
+\setinterfacevariable{big}{gross}
+\setinterfacevariable{bigbodyfont}{bigbodyfont}
+\setinterfacevariable{bigpreference}{grosszuegig}
+\setinterfacevariable{blank}{blanko}
+\setinterfacevariable{blockquote}{blockquote}
+\setinterfacevariable{bodymatter}{haupttexte}
+\setinterfacevariable{bodypart}{haupttext}
+\setinterfacevariable{bold}{fett}
+\setinterfacevariable{bolditalic}{fettitalic}
+\setinterfacevariable{boldslanted}{fettgeneigt}
+\setinterfacevariable{bookmark}{bookmark}
+\setinterfacevariable{both}{beide}
+\setinterfacevariable{bottom}{unten}
+\setinterfacevariable{brief}{brief}
+\setinterfacevariable{broad}{breit}
+\setinterfacevariable{buffer}{puffer}
+\setinterfacevariable{by}{pro}
+\setinterfacevariable{calligraphic}{kalligraphie}
+\setinterfacevariable{cap}{kap}
+\setinterfacevariable{capital}{versalien}
+\setinterfacevariable{center}{center}
+\setinterfacevariable{chapter}{kapitel}
+\setinterfacevariable{character}{buchstabe}
+\setinterfacevariable{characters}{buchstaben}
+\setinterfacevariable{color}{farbe}
+\setinterfacevariable{column}{column}
+\setinterfacevariable{columns}{spalten}
+\setinterfacevariable{command}{befehl}
+\setinterfacevariable{commands}{befehle}
+\setinterfacevariable{comment}{kommentar}
+\setinterfacevariable{component}{komponente}
+\setinterfacevariable{concept}{konzept}
+\setinterfacevariable{content}{inhalt}
+\setinterfacevariable{contents}{inhalte}
+\setinterfacevariable{continue}{fortsetzten}
+\setinterfacevariable{controls}{controls}
+\setinterfacevariable{conversion}{konversion}
+\setinterfacevariable{current}{aktuell}
+\setinterfacevariable{cutspace}{cutspace}
+\setinterfacevariable{date}{datum}
+\setinterfacevariable{day}{tag}
+\setinterfacevariable{december}{Dezember}
+\setinterfacevariable{default}{default}
+\setinterfacevariable{depth}{tiefe}
+\setinterfacevariable{description}{beschreibung}
+\setinterfacevariable{disable}{sperren}
+\setinterfacevariable{display}{bildschirm}
+\setinterfacevariable{dot}{punkt}
+\setinterfacevariable{doublesided}{doppelseitig}
+\setinterfacevariable{each}{jede}
+\setinterfacevariable{edge}{kante}
+\setinterfacevariable{empty}{leer}
+\setinterfacevariable{endnote}{endnote}
+\setinterfacevariable{enumeration}{nummerierung}
+\setinterfacevariable{environment}{umgebung}
+\setinterfacevariable{even}{gerade}
+\setinterfacevariable{external}{extern}
+\setinterfacevariable{fact}{gegeben}
+\setinterfacevariable{february}{Februar}
+\setinterfacevariable{figure}{abbildung}
+\setinterfacevariable{figures}{abbildungen}
+\setinterfacevariable{file}{datei}
+\setinterfacevariable{final}{endfassung}
+\setinterfacevariable{first}{erste}
+\setinterfacevariable{firstcolumn}{firstcolumn}
+\setinterfacevariable{firstpage}{ersteseite}
+\setinterfacevariable{firstsubpage}{ersteunterseite}
+\setinterfacevariable{fit}{passend}
+\setinterfacevariable{five}{fuenf}
+\setinterfacevariable{fix}{stellewiederher}
+\setinterfacevariable{fixed}{fest}
+\setinterfacevariable{flexible}{flexibel}
+\setinterfacevariable{float}{gleitobjekt}
+\setinterfacevariable{flushinner}{flushinner}
+\setinterfacevariable{flushleft}{flushleft}
+\setinterfacevariable{flushouter}{flushouter}
+\setinterfacevariable{flushright}{flushright}
+\setinterfacevariable{footer}{fusszeile}
+\setinterfacevariable{footnote}{fussnote}
+\setinterfacevariable{force}{zwinge}
+\setinterfacevariable{foreground}{vordergrund}
+\setinterfacevariable{formeel}{formeel}
+\setinterfacevariable{formula}{formel}
+\setinterfacevariable{formulae}{formeln}
+\setinterfacevariable{forward}{vorwaerts}
+\setinterfacevariable{four}{vier}
+\setinterfacevariable{frame}{rahmen}
+\setinterfacevariable{framedtext}{umrahmtertext}
+\setinterfacevariable{friday}{freitag}
+\setinterfacevariable{frontmatter}{einleitungen}
+\setinterfacevariable{frontpart}{einleitung}
+\setinterfacevariable{global}{global}
+\setinterfacevariable{graphic}{grafik}
+\setinterfacevariable{graphics}{grafiken}
+\setinterfacevariable{gray}{grau}
+\setinterfacevariable{greek}{griechisch}
+\setinterfacevariable{grid}{gritter}
+\setinterfacevariable{halfline}{halbezeile}
+\setinterfacevariable{handwritten}{handschrift}
+\setinterfacevariable{hang}{haengend}
+\setinterfacevariable{hanging}{haengend}
+\setinterfacevariable{head}{kopf}
+\setinterfacevariable{header}{kopfzeile}
+\setinterfacevariable{height}{hoehe}
+\setinterfacevariable{helptext}{hilfetext}
+\setinterfacevariable{hencefore}{vorher}
+\setinterfacevariable{here}{hier}
+\setinterfacevariable{hereafter}{nachher}
+\setinterfacevariable{hidden}{versteckt}
+\setinterfacevariable{hiding}{verbergen}
+\setinterfacevariable{high}{hoch}
+\setinterfacevariable{horizontal}{horizontal}
+\setinterfacevariable{hyphenated}{hyphenate}
+\setinterfacevariable{hz}{hz}
+\setinterfacevariable{inbetween}{zwischen}
+\setinterfacevariable{index}{index}
+\setinterfacevariable{indices}{indizies}
+\setinterfacevariable{informeel}{informeel}
+\setinterfacevariable{inherit}{inherit}
+\setinterfacevariable{inleft}{imlinken}
+\setinterfacevariable{inmargin}{imrand}
+\setinterfacevariable{inner}{innen}
+\setinterfacevariable{inneredge}{inneredge}
+\setinterfacevariable{innermargin}{innermargin}
+\setinterfacevariable{inright}{imrechten}
+\setinterfacevariable{interaction}{interaktion}
+\setinterfacevariable{interactionmenu}{interaktionsmenue}
+\setinterfacevariable{intermezzi}{intermezzi}
+\setinterfacevariable{intermezzo}{intermezzo}
+\setinterfacevariable{intext}{imtext}
+\setinterfacevariable{intro}{intro}
+\setinterfacevariable{italic}{italic}
+\setinterfacevariable{italicbold}{italicfett}
+\setinterfacevariable{item}{pos}
+\setinterfacevariable{itemize}{aufzaehlung}
+\setinterfacevariable{its}{its}
+\setinterfacevariable{january}{Januar}
+\setinterfacevariable{joinedup}{keinabstand}
+\setinterfacevariable{july}{Juli}
+\setinterfacevariable{june}{Juni}
+\setinterfacevariable{keep}{behalte}
+\setinterfacevariable{knockout}{knockout}
+\setinterfacevariable{label}{label}
+\setinterfacevariable{landscape}{querformat}
+\setinterfacevariable{last}{letzte}
+\setinterfacevariable{lastcolumn}{lastcolumn}
+\setinterfacevariable{lastpage}{letzteseite}
+\setinterfacevariable{lastpagenumber}{lastpagenumber}
+\setinterfacevariable{lastsubpage}{letzteunterseite}
+\setinterfacevariable{layer}{layer}
+\setinterfacevariable{left}{links}
+\setinterfacevariable{leftedge}{linkekante}
+\setinterfacevariable{lefthanging}{lefthanging}
+\setinterfacevariable{leftmargin}{linkerrand}
+\setinterfacevariable{leftpage}{linkerseite}
+\setinterfacevariable{lefttoright}{lefttoright}
+\setinterfacevariable{legend}{legende}
+\setinterfacevariable{lesshyphenation}{lesshyphenation}
+\setinterfacevariable{line}{zeile}
+\setinterfacevariable{linenote}{linenote}
+\setinterfacevariable{lines}{zeilen}
+\setinterfacevariable{list}{liste}
+\setinterfacevariable{local}{lokal}
+\setinterfacevariable{localenvironment}{lokaleumgebung}
+\setinterfacevariable{logo}{logo}
+\setinterfacevariable{logos}{logos}
+\setinterfacevariable{lohi}{hoti}
+\setinterfacevariable{loose}{lose}
+\setinterfacevariable{low}{tief}
+\setinterfacevariable{ls}{ls}
+\setinterfacevariable{makeup}{umbruch}
+\setinterfacevariable{mar}{mar}
+\setinterfacevariable{march}{Maerz}
+\setinterfacevariable{margin}{marginalie}
+\setinterfacevariable{marginedge}{marginalkante}
+\setinterfacevariable{margintitle}{marginaltitel}
+\setinterfacevariable{marking}{beschriftung}
+\setinterfacevariable{mathalignment}{mathalignment}
+\setinterfacevariable{mathcases}{mathcases}
+\setinterfacevariable{mathmatrix}{mathmatrix}
+\setinterfacevariable{max}{max}
+\setinterfacevariable{may}{Mai}
+\setinterfacevariable{mediaeval}{mittelalterlich}
+\setinterfacevariable{medium}{mittel}
+\setinterfacevariable{middle}{mittig}
+\setinterfacevariable{min}{min}
+\setinterfacevariable{minheight}{minhoehe}
+\setinterfacevariable{minwidth}{minbreite}
+\setinterfacevariable{mirrored}{gespiegelt}
+\setinterfacevariable{monday}{montag}
+\setinterfacevariable{mono}{mono}
+\setinterfacevariable{month}{monat}
+\setinterfacevariable{morehyphenation}{morehyphenation}
+\setinterfacevariable{name}{name}
+\setinterfacevariable{narrow}{schmall}
+\setinterfacevariable{negative}{negativ}
+\setinterfacevariable{never}{nie}
+\setinterfacevariable{new}{neu}
+\setinterfacevariable{next}{folgende}
+\setinterfacevariable{nextevenpage}{naechstegeradeseite}
+\setinterfacevariable{nextoddpage}{naechsteungeradeseite}
+\setinterfacevariable{nextpage}{folgendeseite}
+\setinterfacevariable{nextsubpage}{folgendeunterseite}
+\setinterfacevariable{no}{nein}
+\setinterfacevariable{nocheck}{nocheck}
+\setinterfacevariable{nofit}{nofit}
+\setinterfacevariable{nogrid}{nogrid}
+\setinterfacevariable{nohz}{nohz}
+\setinterfacevariable{nomarking}{keinebeschriftung}
+\setinterfacevariable{none}{kein}
+\setinterfacevariable{nonumber}{nonumber}
+\setinterfacevariable{normal}{normal}
+\setinterfacevariable{nospacing}{nospacing}
+\setinterfacevariable{not}{nicht}
+\setinterfacevariable{note}{note}
+\setinterfacevariable{nothanging}{nothanging}
+\setinterfacevariable{nothyphenated}{nothyphenated}
+\setinterfacevariable{november}{November}
+\setinterfacevariable{nowhere}{nirgens}
+\setinterfacevariable{nowhite}{keinweiss}
+\setinterfacevariable{number}{nummer}
+\setinterfacevariable{numbers}{ziffern}
+\setinterfacevariable{october}{Oktober}
+\setinterfacevariable{odd}{ungerade}
+\setinterfacevariable{off}{aus}
+\setinterfacevariable{offset}{offset}
+\setinterfacevariable{old}{old}
+\setinterfacevariable{on}{an}
+\setinterfacevariable{one}{eins}
+\setinterfacevariable{opposite}{gegenueber}
+\setinterfacevariable{outer}{aussen}
+\setinterfacevariable{outeredge}{outeredge}
+\setinterfacevariable{outermargin}{outermargin}
+\setinterfacevariable{overlay}{overlay}
+\setinterfacevariable{overprint}{overprint}
+\setinterfacevariable{packed}{gepackt}
+\setinterfacevariable{page}{seite}
+\setinterfacevariable{pagecomment}{pagecomment}
+\setinterfacevariable{pagenumber}{seitennummer}
+\setinterfacevariable{paper}{papier}
+\setinterfacevariable{paragraph}{absatz}
+\setinterfacevariable{part}{teil}
+\setinterfacevariable{positive}{positiv}
+\setinterfacevariable{postponing}{verschieben}
+\setinterfacevariable{postscript}{postscript}
+\setinterfacevariable{preference}{einstellung}
+\setinterfacevariable{preview}{vorschau}
+\setinterfacevariable{previous}{vorig}
+\setinterfacevariable{previousevenpage}{vorigegeradeseite}
+\setinterfacevariable{previousoddpage}{vorigeungeradeseite}
+\setinterfacevariable{previouspage}{vorigeseite}
+\setinterfacevariable{previoussubpage}{vorigeunterseite}
+\setinterfacevariable{printable}{druckbar}
+\setinterfacevariable{process}{process}
+\setinterfacevariable{product}{produkt}
+\setinterfacevariable{program}{programm}
+\setinterfacevariable{project}{projekt}
+\setinterfacevariable{protected}{geschuetzt}
+\setinterfacevariable{quadruple}{viertel}
+\setinterfacevariable{quotation}{zitat}
+\setinterfacevariable{quote}{zitieren}
+\setinterfacevariable{ran}{ran}
+\setinterfacevariable{random}{zufaellig}
+\setinterfacevariable{readonly}{nurlesbar}
+\setinterfacevariable{rectangular}{rechteckig}
+\setinterfacevariable{referral}{merkmal}
+\setinterfacevariable{register}{register}
+\setinterfacevariable{regular}{regular}
+\setinterfacevariable{rekening}{rekening}
+\setinterfacevariable{relative}{relativ}
+\setinterfacevariable{repeat}{wiederholen}
+\setinterfacevariable{required}{obligatorisch}
+\setinterfacevariable{reset}{zuruecksetzten}
+\setinterfacevariable{reverse}{reverse}
+\setinterfacevariable{right}{rechts}
+\setinterfacevariable{rightedge}{rechterkante}
+\setinterfacevariable{righthanging}{righthanging}
+\setinterfacevariable{rightmargin}{rechterrand}
+\setinterfacevariable{rightpage}{rechterseite}
+\setinterfacevariable{righttoleft}{righttoleft}
+\setinterfacevariable{roman}{antiqua}
+\setinterfacevariable{romannumerals}{roemischezahlen}
+\setinterfacevariable{rotate}{drehe}
+\setinterfacevariable{rotated}{gedreht}
+\setinterfacevariable{round}{rund}
+\setinterfacevariable{row}{row}
+\setinterfacevariable{rule}{linie}
+\setinterfacevariable{samepage}{selbeseite}
+\setinterfacevariable{sans}{sans}
+\setinterfacevariable{sansbold}{sansfett}
+\setinterfacevariable{sansserif}{grotesk}
+\setinterfacevariable{saturday}{samstag}
+\setinterfacevariable{screen}{raster}
+\setinterfacevariable{section}{absatz}
+\setinterfacevariable{sectionblockenvironment}{sectionblockenvironment}
+\setinterfacevariable{sectionnumber}{abschnittsnummer}
+\setinterfacevariable{see}{sieh}
+\setinterfacevariable{september}{September}
+\setinterfacevariable{serif}{serif}
+\setinterfacevariable{serried}{kleinerabstand}
+\setinterfacevariable{setups}{impostazioni}
+\setinterfacevariable{sheet}{sheet}
+\setinterfacevariable{singlesided}{einzelseitig}
+\setinterfacevariable{slanted}{geneigt}
+\setinterfacevariable{slantedbold}{geneigtfett}
+\setinterfacevariable{small}{klein}
+\setinterfacevariable{smallbodyfont}{smallbodyfont}
+\setinterfacevariable{smallbold}{kleinfett}
+\setinterfacevariable{smallbolditalic}{kleinfettitalic}
+\setinterfacevariable{smallboldslanted}{kleinfettgeneigt}
+\setinterfacevariable{smallcaps}{smallcaps}
+\setinterfacevariable{smallitalic}{kleinitalic}
+\setinterfacevariable{smallitalicbold}{kleinitalicfett}
+\setinterfacevariable{smallnormal}{kleinnormal}
+\setinterfacevariable{smallslanted}{kleingeneigt}
+\setinterfacevariable{smallslantedbold}{kleingeneigtfett}
+\setinterfacevariable{smalltype}{kleintippen}
+\setinterfacevariable{somewhere}{irgendwo}
+\setinterfacevariable{sorted}{sortiert}
+\setinterfacevariable{space}{spatium}
+\setinterfacevariable{spacing}{spatiumausgleich}
+\setinterfacevariable{speech}{speech}
+\setinterfacevariable{split}{split}
+\setinterfacevariable{spot}{spot}
+\setinterfacevariable{standard}{standard}
+\setinterfacevariable{start}{start}
+\setinterfacevariable{sticker}{sticker}
+\setinterfacevariable{stop}{stop}
+\setinterfacevariable{stopper}{trenner}
+\setinterfacevariable{stretch}{strecken}
+\setinterfacevariable{strict}{streng}
+\setinterfacevariable{strong}{strong}
+\setinterfacevariable{strut}{strut}
+\setinterfacevariable{sub}{unter}
+\setinterfacevariable{subbackward}{unterrueckwaerts}
+\setinterfacevariable{subformula}{subformel}
+\setinterfacevariable{subforward}{untervorwaerts}
+\setinterfacevariable{subject}{thema}
+\setinterfacevariable{subpage}{unterseite}
+\setinterfacevariable{subsection}{unterabsatz}
+\setinterfacevariable{subsubject}{unterthema}
+\setinterfacevariable{subsubsection}{unterunterabsatz}
+\setinterfacevariable{subsubsubject}{unterunterthema}
+\setinterfacevariable{subsubsubsection}{unterunterunterabsatz}
+\setinterfacevariable{subsubsubsubject}{unterunterunterthema}
+\setinterfacevariable{subsubsubsubsection}{unterunterunterunterabsatz}
+\setinterfacevariable{subsubsubsubsubject}{unterunterunterunterthema}
+\setinterfacevariable{subsubsubsubsubsection}{unterunterunterunterunterabsatz}
+\setinterfacevariable{subsubsubsubsubsubject}{unterunterunterunterunterthema}
+\setinterfacevariable{subsubsubsubsubsubsection}{unterunterunterunterunterunterabsatz}
+\setinterfacevariable{subsubsubsubsubsubsubject}{unterunterunterunterunterunterthema}
+\setinterfacevariable{subsubsubsubsubsubsubsection}{unterunterunterunterunterunterunterabsatz}
+\setinterfacevariable{subsubsubsubsubsubsubsubject}{unterunterunterunterunterunterunterthema}
+\setinterfacevariable{subsubsubsubsubsubsubsubsection}{unterunterunterunterunterunterunterunterabsatz}
+\setinterfacevariable{subsubsubsubsubsubsubsubsubject}{unterunterunterunterunterunterunterunterthema}
+\setinterfacevariable{subsubsubsubsubsubsubsubsubsection}{unterunterunterunterunterunterunterunterunterabsatz}
+\setinterfacevariable{subsubsubsubsubsubsubsubsubsubject}{unterunterunterunterunterunterunterunterunterthema}
+\setinterfacevariable{sunday}{sonntag}
+\setinterfacevariable{support}{support}
+\setinterfacevariable{sym}{sym}
+\setinterfacevariable{symbol}{symbol}
+\setinterfacevariable{synchronize}{synchronize}
+\setinterfacevariable{system}{systeme}
+\setinterfacevariable{table}{tabelle}
+\setinterfacevariable{tablehead}{tabellenueberschrift}
+\setinterfacevariable{tables}{tabellen}
+\setinterfacevariable{tabletail}{tabellenende}
+\setinterfacevariable{tabulate}{tabulator}
+\setinterfacevariable{tabulatehead}{tabulatehead}
+\setinterfacevariable{tabulatetail}{tabulatetail}
+\setinterfacevariable{tall}{lang}
+\setinterfacevariable{teletype}{fernschreiber}
+\setinterfacevariable{temporary}{temporaer}
+\setinterfacevariable{test}{test}
+\setinterfacevariable{text}{text}
+\setinterfacevariable{three}{drei}
+\setinterfacevariable{thursday}{donnerstag}
+\setinterfacevariable{title}{titel}
+\setinterfacevariable{toggle}{toggle}
+\setinterfacevariable{tolerant}{tolerant}
+\setinterfacevariable{top}{oben}
+\setinterfacevariable{tuesday}{dienstag}
+\setinterfacevariable{two}{zwei}
+\setinterfacevariable{txt}{txt}
+\setinterfacevariable{type}{tippen}
+\setinterfacevariable{typing}{tippen}
+\setinterfacevariable{unavailable}{nichtverfuegbar}
+\setinterfacevariable{unit}{einheit}
+\setinterfacevariable{units}{einheiten}
+\setinterfacevariable{unknown}{unbekannt}
+\setinterfacevariable{unpacked}{ungepackt}
+\setinterfacevariable{url}{url}
+\setinterfacevariable{used}{verwende}
+\setinterfacevariable{value}{wert}
+\setinterfacevariable{vertical}{vertikal}
+\setinterfacevariable{very}{sehr}
+\setinterfacevariable{verystrict}{sehrstreng}
+\setinterfacevariable{verytolerant}{sehrtolerant}
+\setinterfacevariable{weak}{weak}
+\setinterfacevariable{wednesday}{mittwoch}
+\setinterfacevariable{week}{woche}
+\setinterfacevariable{weekday}{wochentag}
+\setinterfacevariable{white}{weiss}
+\setinterfacevariable{wide}{breit}
+\setinterfacevariable{width}{breite}
+\setinterfacevariable{xml}{xml}
+\setinterfacevariable{year}{jahr}
+\setinterfacevariable{yes}{ja}
+% definitions for interface constants for language de
+%
+\setinterfaceconstant{action}{aktion}
+\setinterfaceconstant{address}{adresse}
+\setinterfaceconstant{after}{nach}
+\setinterfaceconstant{afterhead}{nachkopf}
+\setinterfaceconstant{afterkey}{nachtaste}
+\setinterfaceconstant{align}{ausrichtung}
+\setinterfaceconstant{aligncharacter}{aligncharacter}
+\setinterfaceconstant{alignmentcharacter}{alignmentcharacter}
+\setinterfaceconstant{aligntitle}{titelausrichten}
+\setinterfaceconstant{alternative}{alternative}
+\setinterfaceconstant{apa}{apa}
+\setinterfaceconstant{arrow}{pfeil}
+\setinterfaceconstant{at}{bei}
+\setinterfaceconstant{author}{autor}
+\setinterfaceconstant{auto}{auto}
+\setinterfaceconstant{autofile}{autofile}
+\setinterfaceconstant{autofocus}{autofocus}
+\setinterfaceconstant{autohang}{autohang}
+\setinterfaceconstant{autostrut}{autostrut}
+\setinterfaceconstant{autowidth}{autobreite}
+\setinterfaceconstant{axis}{achsen}
+\setinterfaceconstant{background}{hintergrund}
+\setinterfaceconstant{backgroundcolor}{hintergrundfarbe}
+\setinterfaceconstant{backgroundcorner}{hintergrundwinkel}
+\setinterfaceconstant{backgrounddepth}{hintergrundtiefe}
+\setinterfaceconstant{backgroundoffset}{hintergrundoffset}
+\setinterfaceconstant{backgroundradius}{hintergrundradius}
+\setinterfaceconstant{backgroundscreen}{hintergrundraster}
+\setinterfaceconstant{backspace}{rumpfspatium}
+\setinterfaceconstant{balance}{ausgleichen}
+\setinterfaceconstant{before}{vor}
+\setinterfaceconstant{beforehead}{vorkopf}
+\setinterfaceconstant{bet}{bet}
+\setinterfaceconstant{big}{gross}
+\setinterfaceconstant{blank}{blanko}
+\setinterfaceconstant{blockway}{blockauf}
+\setinterfaceconstant{bodyfont}{fliesstext}
+\setinterfaceconstant{bookmark}{bookmark}
+\setinterfaceconstant{bottom}{unten}
+\setinterfaceconstant{bottomafter}{bottomafter}
+\setinterfaceconstant{bottombefore}{bottombefore}
+\setinterfaceconstant{bottomdistance}{abstandunten}
+\setinterfaceconstant{bottomframe}{untenrahmen}
+\setinterfaceconstant{bottomoffset}{untenoffset}
+\setinterfaceconstant{bottomspace}{bottomspace}
+\setinterfaceconstant{bottomstate}{untenstatus}
+\setinterfaceconstant{cache}{cache}
+\setinterfaceconstant{calculate}{berechnen}
+\setinterfaceconstant{ccommand}{cbefehl}
+\setinterfaceconstant{click}{klick}
+\setinterfaceconstant{clickin}{klickin}
+\setinterfaceconstant{clickout}{klickaus}
+\setinterfaceconstant{clipoffset}{clipoffset}
+\setinterfaceconstant{closeaction}{schliessenaktion}
+\setinterfaceconstant{closecommand}{closecommand}
+\setinterfaceconstant{closepageaction}{closepageaction}
+\setinterfaceconstant{closesymbol}{closesymbol}
+\setinterfaceconstant{color}{farbe}
+\setinterfaceconstant{column}{spalte}
+\setinterfaceconstant{columndistance}{spaltenabstand}
+\setinterfaceconstant{columns}{spalten}
+\setinterfaceconstant{command}{befehl}
+\setinterfaceconstant{commandafter}{zumbefehl}
+\setinterfaceconstant{commandbefore}{vorbefehl}
+\setinterfaceconstant{commands}{befehle}
+\setinterfaceconstant{component}{component}
+\setinterfaceconstant{compoundhyphen}{compoundhyphen}
+\setinterfaceconstant{compress}{compress}
+\setinterfaceconstant{connector}{connector}
+\setinterfaceconstant{continue}{fortsetzen}
+\setinterfaceconstant{contrastcolor}{kontrastfarbe}
+\setinterfaceconstant{controls}{controls}
+\setinterfaceconstant{conversion}{konversion}
+\setinterfaceconstant{convertfile}{konvertieredatei}
+\setinterfaceconstant{corner}{winkel}
+\setinterfaceconstant{coupling}{verknuepfung}
+\setinterfaceconstant{couplingway}{verkopplungsart}
+\setinterfaceconstant{criterium}{kriterium}
+\setinterfaceconstant{current}{aktuell}
+\setinterfaceconstant{cutspace}{cutspace}
+\setinterfaceconstant{dash}{strich}
+\setinterfaceconstant{dat}{dat}
+\setinterfaceconstant{date}{datum}
+\setinterfaceconstant{deepnumbercommand}{deepnumbercommand}
+\setinterfaceconstant{deeptextcommand}{deeptextcommand}
+\setinterfaceconstant{default}{default}
+\setinterfaceconstant{delay}{wartezeit}
+\setinterfaceconstant{depth}{tiefe}
+\setinterfaceconstant{depthcorrection}{tiefekorrektur}
+\setinterfaceconstant{direction}{richtung}
+\setinterfaceconstant{directory}{verzeichnis}
+\setinterfaceconstant{display}{bildschirm}
+\setinterfaceconstant{distance}{abstand}
+\setinterfaceconstant{dot}{punkt}
+\setinterfaceconstant{doublesided}{doppelseitig}
+\setinterfaceconstant{dummy}{dummy}
+\setinterfaceconstant{dx}{dx}
+\setinterfaceconstant{dy}{dy}
+\setinterfaceconstant{edge}{kante}
+\setinterfaceconstant{edgedistance}{kantenabstand}
+\setinterfaceconstant{empty}{leer}
+\setinterfaceconstant{equalheight}{equalheight}
+\setinterfaceconstant{equalwidth}{equalwidth}
+\setinterfaceconstant{escape}{escape}
+\setinterfaceconstant{evenmargin}{geraderand}
+\setinterfaceconstant{expansion}{expansion}
+\setinterfaceconstant{extras}{extras}
+\setinterfaceconstant{factor}{faktor}
+\setinterfaceconstant{fallback}{fallback}
+\setinterfaceconstant{family}{familie}
+\setinterfaceconstant{fieldbackgroundcolor}{feldhintergrundfarbe}
+\setinterfaceconstant{fieldframecolor}{feldrahmenfarbe}
+\setinterfaceconstant{fieldlayer}{fieldlayer}
+\setinterfaceconstant{fieldoffset}{feldoffset}
+\setinterfaceconstant{file}{datei}
+\setinterfaceconstant{filtercommand}{filtercommand}
+\setinterfaceconstant{focus}{focus}
+\setinterfaceconstant{focusin}{focusin}
+\setinterfaceconstant{focusout}{focusout}
+\setinterfaceconstant{footer}{fusszeile}
+\setinterfaceconstant{footerdistance}{fusszeilenabstand}
+\setinterfaceconstant{footerstate}{fusszeilenstatus}
+\setinterfaceconstant{foregroundcolor}{foregroundcolor}
+\setinterfaceconstant{foregroundstyle}{foregroundstyle}
+\setinterfaceconstant{format}{formatieren}
+\setinterfaceconstant{frame}{rahmen}
+\setinterfaceconstant{framecolor}{rahmenfarbe}
+\setinterfaceconstant{framecorner}{rahmenwinkel}
+\setinterfaceconstant{framedepth}{rahmentiefe}
+\setinterfaceconstant{frameoffset}{rahmenoffset}
+\setinterfaceconstant{frameradius}{rahmenradius}
+\setinterfaceconstant{frames}{umrahmen}
+\setinterfaceconstant{from}{von}
+\setinterfaceconstant{get}{hole}
+\setinterfaceconstant{global}{global}
+\setinterfaceconstant{grid}{gritter}
+\setinterfaceconstant{hang}{haengend}
+\setinterfaceconstant{headcolor}{kopffarbe}
+\setinterfaceconstant{headcommand}{headcommand}
+\setinterfaceconstant{headconversion}{headconversion}
+\setinterfaceconstant{header}{kopfzeile}
+\setinterfaceconstant{headerdistance}{kopfzeilenabstand}
+\setinterfaceconstant{headerstate}{kopfzeilenstatus}
+\setinterfaceconstant{headlabel}{headlabel}
+\setinterfaceconstant{headnumber}{kopfnummer}
+\setinterfaceconstant{headstyle}{kopfstil}
+\setinterfaceconstant{height}{hoehe}
+\setinterfaceconstant{hfactor}{hfaktor}
+\setinterfaceconstant{hfil}{hfil}
+\setinterfaceconstant{hidenumber}{hidenumber}
+\setinterfaceconstant{hoffset}{hoffset}
+\setinterfaceconstant{horoffset}{rumpfabstand}
+\setinterfaceconstant{hyphen}{hyphen}
+\setinterfaceconstant{icommand}{ibefehl}
+\setinterfaceconstant{in}{in}
+\setinterfaceconstant{inbetween}{zwischen}
+\setinterfaceconstant{increment}{erhoehen}
+\setinterfaceconstant{incrementnumber}{nummererhoehen}
+\setinterfaceconstant{indenting}{einziehen}
+\setinterfaceconstant{indentnext}{ziehefolgendeein}
+\setinterfaceconstant{indicator}{indikator}
+\setinterfaceconstant{inner}{innen}
+\setinterfaceconstant{innermargin}{innermargin}
+\setinterfaceconstant{inputfile}{inputfile}
+\setinterfaceconstant{interaction}{interaktion}
+\setinterfaceconstant{interlinespace}{zeilenabstande}
+\setinterfaceconstant{itemalign}{itemalign}
+\setinterfaceconstant{items}{posten}
+\setinterfaceconstant{ken}{ken}
+\setinterfaceconstant{keyexpansion}{keyexpansion}
+\setinterfaceconstant{keyword}{keyword}
+\setinterfaceconstant{label}{label}
+\setinterfaceconstant{left}{links}
+\setinterfaceconstant{leftcolor}{linkerfarbe}
+\setinterfaceconstant{leftcompoundhyphen}{leftcompoundhyphen}
+\setinterfaceconstant{leftedge}{linkekante}
+\setinterfaceconstant{leftedgedistance}{linkerkantenabstand}
+\setinterfaceconstant{leftframe}{linkerrahmen}
+\setinterfaceconstant{lefthyphen}{lefthyphen}
+\setinterfaceconstant{leftmargin}{linkerrand}
+\setinterfaceconstant{leftmargindistance}{linkerrandabstand}
+\setinterfaceconstant{leftoffset}{linkeroffset}
+\setinterfaceconstant{leftquotation}{linkerzitat}
+\setinterfaceconstant{leftquote}{linkerzitieren}
+\setinterfaceconstant{leftsentence}{linkersatz}
+\setinterfaceconstant{leftspeech}{leftspeech}
+\setinterfaceconstant{leftstyle}{linkerstil}
+\setinterfaceconstant{leftsubsentence}{linkersubsatz}
+\setinterfaceconstant{lefttext}{linkertext}
+\setinterfaceconstant{leftwidth}{linkerbreite}
+\setinterfaceconstant{level}{niveau}
+\setinterfaceconstant{levels}{niveaus}
+\setinterfaceconstant{limittext}{limittext}
+\setinterfaceconstant{line}{zeile}
+\setinterfaceconstant{linecorrection}{zeilekorrektur}
+\setinterfaceconstant{lines}{zeilen}
+\setinterfaceconstant{list}{liste}
+\setinterfaceconstant{listtext}{listtext}
+\setinterfaceconstant{local}{lokal}
+\setinterfaceconstant{location}{platz}
+\setinterfaceconstant{logo}{logo}
+\setinterfaceconstant{logos}{logos}
+\setinterfaceconstant{marcolor}{beschrfarbe}
+\setinterfaceconstant{margin}{marginalie}
+\setinterfaceconstant{margindistance}{marginalabstand}
+\setinterfaceconstant{marginedge}{marginalkante}
+\setinterfaceconstant{marginedgetext}{marginalkantetext}
+\setinterfaceconstant{margintext}{marginaltext}
+\setinterfaceconstant{marking}{beschriftung}
+\setinterfaceconstant{marstyle}{beschrstil}
+\setinterfaceconstant{max}{max}
+\setinterfaceconstant{maxheight}{maxhoehe}
+\setinterfaceconstant{maxwidth}{maxbreite}
+\setinterfaceconstant{menu}{menue}
+\setinterfaceconstant{method}{methode}
+\setinterfaceconstant{middle}{mittig}
+\setinterfaceconstant{middlespeech}{middlespeech}
+\setinterfaceconstant{middletext}{mittigertext}
+\setinterfaceconstant{midsentence}{midsentence}
+\setinterfaceconstant{min}{min}
+\setinterfaceconstant{mindepth}{mindepth}
+\setinterfaceconstant{minheight}{minhoehe}
+\setinterfaceconstant{minwidth}{minbreite}
+\setinterfaceconstant{n}{n}
+\setinterfaceconstant{name}{name}
+\setinterfaceconstant{nbottom}{nunten}
+\setinterfaceconstant{nc}{nc}
+\setinterfaceconstant{next}{folgende}
+\setinterfaceconstant{nl}{nl}
+\setinterfaceconstant{nleft}{nlinks}
+\setinterfaceconstant{nlines}{zzeile}
+\setinterfaceconstant{norm}{norm}
+\setinterfaceconstant{nr}{nr}
+\setinterfaceconstant{nright}{nrechts}
+\setinterfaceconstant{ntop}{noben}
+\setinterfaceconstant{number}{nummer}
+\setinterfaceconstant{numbercolor}{nummernfarbe}
+\setinterfaceconstant{numbercommand}{nummerbefehl}
+\setinterfaceconstant{numberconversion}{numberconversion}
+\setinterfaceconstant{numberconversionset}{numberconversionset}
+\setinterfaceconstant{numberdistance}{numberdistance}
+\setinterfaceconstant{numbering}{nummerierung}
+\setinterfaceconstant{numberorder}{numberorder}
+\setinterfaceconstant{numberprefix}{numberprefix}
+\setinterfaceconstant{numbersegments}{numbersegments}
+\setinterfaceconstant{numberseparator}{nummernseperator}
+\setinterfaceconstant{numberseparatorset}{numberseparatorset}
+\setinterfaceconstant{numberset}{numberset}
+\setinterfaceconstant{numberstopper}{numberstopper}
+\setinterfaceconstant{numberstyle}{nummernstil}
+\setinterfaceconstant{numberwidth}{numberwidth}
+\setinterfaceconstant{nx}{nx}
+\setinterfaceconstant{ny}{ny}
+\setinterfaceconstant{object}{objekt}
+\setinterfaceconstant{obstruction}{gesperrt}
+\setinterfaceconstant{oddmargin}{ungeraderand}
+\setinterfaceconstant{offset}{offset}
+\setinterfaceconstant{openaction}{oeffenaktion}
+\setinterfaceconstant{openpageaction}{openpageaction}
+\setinterfaceconstant{option}{option}
+\setinterfaceconstant{orientation}{orientation}
+\setinterfaceconstant{outermargin}{outermargin}
+\setinterfaceconstant{overprint}{overprint}
+\setinterfaceconstant{ownnumber}{eigenenummer}
+\setinterfaceconstant{page}{seite}
+\setinterfaceconstant{pageboundaries}{seitenbegrenzung}
+\setinterfaceconstant{pagecolor}{seitenfarbe}
+\setinterfaceconstant{pagecommand}{seitenbefehl}
+\setinterfaceconstant{pageconversion}{pageconversion}
+\setinterfaceconstant{pageconversionset}{pageconversionset}
+\setinterfaceconstant{pagenumber}{seitennummer}
+\setinterfaceconstant{pageprefix}{pageprefix}
+\setinterfaceconstant{pageprefixconnector}{pageprefixconnector}
+\setinterfaceconstant{pageprefixconversion}{pageprefixconversion}
+\setinterfaceconstant{pageprefixconversionset}{pageprefixconversionset}
+\setinterfaceconstant{pageprefixsegments}{pageprefixsegments}
+\setinterfaceconstant{pageprefixseparatorset}{pageprefixseparatorset}
+\setinterfaceconstant{pageprefixset}{pageprefixset}
+\setinterfaceconstant{pageprefixstopper}{pageprefixstopper}
+\setinterfaceconstant{pagesegments}{pagesegments}
+\setinterfaceconstant{pageseparatorset}{pageseparatorset}
+\setinterfaceconstant{pageset}{pageset}
+\setinterfaceconstant{pagestate}{pagestate}
+\setinterfaceconstant{pagestopper}{pagestopper}
+\setinterfaceconstant{pagestyle}{seitenstil}
+\setinterfaceconstant{palet}{palette}
+\setinterfaceconstant{paper}{papier}
+\setinterfaceconstant{paragraph}{absatz}
+\setinterfaceconstant{place}{platziere}
+\setinterfaceconstant{placehead}{setzekopf}
+\setinterfaceconstant{placestopper}{setzetrenner}
+\setinterfaceconstant{position}{position}
+\setinterfaceconstant{prefix}{prefix}
+\setinterfaceconstant{prefixconnector}{prefixconnector}
+\setinterfaceconstant{prefixconversion}{prefixconversion}
+\setinterfaceconstant{prefixconversionset}{prefixconversionset}
+\setinterfaceconstant{prefixsegments}{prefixsegments}
+\setinterfaceconstant{prefixseparatorset}{prefixseparatorset}
+\setinterfaceconstant{prefixset}{prefixset}
+\setinterfaceconstant{prefixstopper}{prefixstopper}
+\setinterfaceconstant{preset}{voreinstellung}
+\setinterfaceconstant{preview}{vorschau}
+\setinterfaceconstant{previous}{vorige}
+\setinterfaceconstant{previousnumber}{vorigenummer}
+\setinterfaceconstant{process}{process}
+\setinterfaceconstant{radius}{radius}
+\setinterfaceconstant{random}{zufaellig}
+\setinterfaceconstant{reduction}{reduktion}
+\setinterfaceconstant{ref}{ref}
+\setinterfaceconstant{reference}{referenz}
+\setinterfaceconstant{referenceprefix}{referenceprefix}
+\setinterfaceconstant{referencing}{referieren}
+\setinterfaceconstant{regionin}{regionin}
+\setinterfaceconstant{regionout}{regionaus}
+\setinterfaceconstant{repeat}{wiederholen}
+\setinterfaceconstant{reset}{reset}
+\setinterfaceconstant{resetnumber}{resetnumber}
+\setinterfaceconstant{resolution}{aufloesung}
+\setinterfaceconstant{right}{rechts}
+\setinterfaceconstant{rightcolor}{rechterfarbe}
+\setinterfaceconstant{rightcompoundhyphen}{rightcompoundhyphen}
+\setinterfaceconstant{rightedge}{rechtekante}
+\setinterfaceconstant{rightedgedistance}{rechterkantenabstand}
+\setinterfaceconstant{rightframe}{rechterrahmen}
+\setinterfaceconstant{righthyphen}{righthyphen}
+\setinterfaceconstant{rightmargin}{rechterrand}
+\setinterfaceconstant{rightmargindistance}{rechterrandabstand}
+\setinterfaceconstant{rightoffset}{rechterabstand}
+\setinterfaceconstant{rightquotation}{rechterzitat}
+\setinterfaceconstant{rightquote}{rechterzitieren}
+\setinterfaceconstant{rightsentence}{rechtersatz}
+\setinterfaceconstant{rightspeech}{rightspeech}
+\setinterfaceconstant{rightstyle}{rechterstil}
+\setinterfaceconstant{rightsubsentence}{rechtersubsatz}
+\setinterfaceconstant{righttext}{rechtertext}
+\setinterfaceconstant{rightwidth}{rechterbreite}
+\setinterfaceconstant{rotation}{rotation}
+\setinterfaceconstant{rule}{linie}
+\setinterfaceconstant{rulecolor}{linienfarbe}
+\setinterfaceconstant{rulethickness}{liniendicke}
+\setinterfaceconstant{samepage}{selbeseite}
+\setinterfaceconstant{sample}{muster}
+\setinterfaceconstant{saveinlist}{saveinlist}
+\setinterfaceconstant{scale}{format}
+\setinterfaceconstant{scope}{bereich}
+\setinterfaceconstant{screen}{raster}
+\setinterfaceconstant{section}{abschnitt}
+\setinterfaceconstant{sectionconversion}{sectionconversion}
+\setinterfaceconstant{sectionconversionset}{sectionconversionset}
+\setinterfaceconstant{sectionnumber}{abschnittsnummer}
+\setinterfaceconstant{sectionresetset}{sectionresetset}
+\setinterfaceconstant{sectionsegments}{sectionsegments}
+\setinterfaceconstant{sectionseparatorset}{sectionseparatorset}
+\setinterfaceconstant{sectionset}{sectionset}
+\setinterfaceconstant{sectionstopper}{sectionstopper}
+\setinterfaceconstant{separator}{seperator}
+\setinterfaceconstant{set}{set}
+\setinterfaceconstant{setups}{setups}
+\setinterfaceconstant{side}{objektabstand}
+\setinterfaceconstant{sidealign}{sidealign}
+\setinterfaceconstant{sidemethod}{sidemethod}
+\setinterfaceconstant{sidespaceafter}{nebennachspatium}
+\setinterfaceconstant{sidespacebefore}{nebenvorspatium}
+\setinterfaceconstant{sign}{zeichen}
+\setinterfaceconstant{size}{groesse}
+\setinterfaceconstant{small}{klein}
+\setinterfaceconstant{sorttype}{sorttype}
+\setinterfaceconstant{source}{quelle}
+\setinterfaceconstant{space}{spatium}
+\setinterfaceconstant{spaceafter}{nachspatium}
+\setinterfaceconstant{spacebefore}{vorspatium}
+\setinterfaceconstant{spaceinbetween}{spaceinbetween}
+\setinterfaceconstant{spacing}{spatiumausgleich}
+\setinterfaceconstant{split}{split}
+\setinterfaceconstant{splitcolor}{splitcolor}
+\setinterfaceconstant{splitmethod}{splitmethod}
+\setinterfaceconstant{splitoffset}{splitoffset}
+\setinterfaceconstant{spot}{spot}
+\setinterfaceconstant{stack}{stack}
+\setinterfaceconstant{start}{start}
+\setinterfaceconstant{state}{status}
+\setinterfaceconstant{step}{schritt}
+\setinterfaceconstant{stop}{stop}
+\setinterfaceconstant{stopper}{abschnitttrenner}
+\setinterfaceconstant{stretch}{strecken}
+\setinterfaceconstant{strut}{strut}
+\setinterfaceconstant{style}{stil}
+\setinterfaceconstant{sub}{unter}
+\setinterfaceconstant{subtitle}{untertitel}
+\setinterfaceconstant{suffix}{suffix}
+\setinterfaceconstant{sx}{sx}
+\setinterfaceconstant{sy}{sy}
+\setinterfaceconstant{symalign}{symausrichtung}
+\setinterfaceconstant{symbol}{symbol}
+\setinterfaceconstant{symbolset}{symbolset}
+\setinterfaceconstant{symcolor}{symfarbe}
+\setinterfaceconstant{symstyle}{symstil}
+\setinterfaceconstant{synonym}{synonym}
+\setinterfaceconstant{synonymcolor}{synonymfarbe}
+\setinterfaceconstant{synonymcommand}{synonymbefehl}
+\setinterfaceconstant{synonymstyle}{synonymstil}
+\setinterfaceconstant{tab}{tab}
+\setinterfaceconstant{text}{text}
+\setinterfaceconstant{textcolor}{textfarbe}
+\setinterfaceconstant{textcommand}{textbefehl}
+\setinterfaceconstant{textdistance}{textdistance}
+\setinterfaceconstant{textlayer}{textlayer}
+\setinterfaceconstant{textmargin}{textmargin}
+\setinterfaceconstant{textmethod}{textmethod}
+\setinterfaceconstant{textseparator}{textseparator}
+\setinterfaceconstant{textsize}{textgroesse}
+\setinterfaceconstant{textstate}{textstatus}
+\setinterfaceconstant{textstyle}{textstil}
+\setinterfaceconstant{textwidth}{textbreite}
+\setinterfaceconstant{title}{titel}
+\setinterfaceconstant{titlecolor}{titelfarbe}
+\setinterfaceconstant{titlecommand}{titlecommand}
+\setinterfaceconstant{titledistance}{titelabstand}
+\setinterfaceconstant{titleleft}{titleleft}
+\setinterfaceconstant{titleright}{titleright}
+\setinterfaceconstant{titlestyle}{titelstil}
+\setinterfaceconstant{to}{zu}
+\setinterfaceconstant{tolerance}{toleranz}
+\setinterfaceconstant{top}{oben}
+\setinterfaceconstant{topdistance}{obenabstand}
+\setinterfaceconstant{topframe}{obenrahmen}
+\setinterfaceconstant{topoffset}{obenoffset}
+\setinterfaceconstant{topspace}{kopfspatium}
+\setinterfaceconstant{topstate}{statusoben}
+\setinterfaceconstant{type}{typ}
+\setinterfaceconstant{unit}{einheit}
+\setinterfaceconstant{unknownreference}{unbekantereferenz}
+\setinterfaceconstant{urlalternative}{urlalternative}
+\setinterfaceconstant{urlspace}{urlspatium}
+\setinterfaceconstant{validate}{validieren}
+\setinterfaceconstant{vcommand}{vbefehl}
+\setinterfaceconstant{veroffset}{kopfoffset}
+\setinterfaceconstant{vfil}{vfil}
+\setinterfaceconstant{voffset}{voffset}
+\setinterfaceconstant{way}{art}
+\setinterfaceconstant{wfactor}{bfaktor}
+\setinterfaceconstant{white}{weiss}
+\setinterfaceconstant{width}{breite}
+\setinterfaceconstant{xfactor}{xfaktor}
+\setinterfaceconstant{xmax}{xmax}
+\setinterfaceconstant{xoffset}{xoffset}
+\setinterfaceconstant{xscale}{xformat}
+\setinterfaceconstant{xstep}{xschritt}
+\setinterfaceconstant{yfactor}{yfaktor}
+\setinterfaceconstant{ymax}{ymax}
+\setinterfaceconstant{yoffset}{yoffset}
+\setinterfaceconstant{yscale}{yformat}
+\setinterfaceconstant{ystep}{yschritt}
+% definitions for interface elements for language de
+%
+\setinterfaceelement{answerlines}{answerlines}
+\setinterfaceelement{answerspace}{answerspace}
+\setinterfaceelement{begin}{anfang}
+\setinterfaceelement{complete}{vollende}
+\setinterfaceelement{coupled}{verknuepft}
+\setinterfaceelement{currentlocal}{aktuelllokal}
+\setinterfaceelement{emptyone}{vuoto}
+\setinterfaceelement{emptytwo}{leer}
+\setinterfaceelement{end}{ende}
+\setinterfaceelement{endsetup}{ein}
+\setinterfaceelement{get}{get}
+\setinterfaceelement{increment}{erhoehen}
+\setinterfaceelement{list}{auflisten}
+\setinterfaceelement{listof}{auflistenvon}
+\setinterfaceelement{load}{laden}
+\setinterfaceelement{local}{lokal}
+\setinterfaceelement{makeup}{umbruch}
+\setinterfaceelement{next}{folgende}
+\setinterfaceelement{place}{platziere}
+\setinterfaceelement{previous}{vorige}
+\setinterfaceelement{previouslocal}{voriglokal}
+\setinterfaceelement{reserve}{reservieren}
+\setinterfaceelement{see}{sieh}
+\setinterfaceelement{setup}{stelle}
+\setinterfaceelement{start}{start}
+\setinterfaceelement{stop}{stop}
+\setinterfaceelement{text}{text}
+\setinterfaceelement{type}{type}
+% definitions for interface commands for language de
+%
+\setinterfacecommand{CAPPED}{KAP}
+\setinterfacecommand{Character}{Buchstabe}
+\setinterfacecommand{Characters}{Buchstaben}
+\setinterfacecommand{LABELTEXT}{LABELTEXT}
+\setinterfacecommand{MONTH}{MONAT}
+\setinterfacecommand{Numbers}{Ziffern}
+\setinterfacecommand{Romannumerals}{Roemischezahlen}
+\setinterfacecommand{SmallCapped}{Kap}
+\setinterfacecommand{SmallCaps}{Kaps}
+\setinterfacecommand{WEEKDAY}{WOCHENTAG}
+\setinterfacecommand{WORD}{WORT}
+\setinterfacecommand{WORDS}{WOERTER}
+\setinterfacecommand{Word}{Wort}
+\setinterfacecommand{Words}{Woerter}
+\setinterfacecommand{about}{ueber}
+\setinterfacecommand{adaptlayout}{passelayoutan}
+\setinterfacecommand{arg}{arg}
+\setinterfacecommand{at}{bei}
+\setinterfacecommand{atleftmargin}{atleftmargin}
+\setinterfacecommand{atpage}{aufseite}
+\setinterfacecommand{atrightmargin}{atrightmargin}
+\setinterfacecommand{background}{hintergrund}
+\setinterfacecommand{backspace}{rumpfweite}
+\setinterfacecommand{blackrule}{rechteck}
+\setinterfacecommand{blackrules}{rechtecke}
+\setinterfacecommand{blank}{blanko}
+\setinterfacecommand{bookmark}{bookmark}
+\setinterfacecommand{bottomdistance}{abstandunten}
+\setinterfacecommand{bottomheight}{hoeheunten}
+\setinterfacecommand{bottomspace}{bottomspace}
+\setinterfacecommand{but}{but}
+\setinterfacecommand{button}{knopf}
+\setinterfacecommand{bypassblocks}{bypassblocks}
+\setinterfacecommand{character}{buchstabe}
+\setinterfacecommand{characters}{buchstaben}
+\setinterfacecommand{chem}{chem}
+\setinterfacecommand{clip}{ausschnitt}
+\setinterfacecommand{clonefield}{klonierefeld}
+\setinterfacecommand{color}{farbe}
+\setinterfacecommand{colorbar}{farbbalken}
+\setinterfacecommand{colorvalue}{farbewert}
+\setinterfacecommand{column}{spalte}
+\setinterfacecommand{comment}{kommentar}
+\setinterfacecommand{comparecolorgroup}{vergleichefarbengruppe}
+\setinterfacecommand{comparepalet}{vergleichepalette}
+\setinterfacecommand{completepagenumber}{completepagenumber}
+\setinterfacecommand{completeregister}{completeregister}
+\setinterfacecommand{component}{komponente}
+\setinterfacecommand{convertnumber}{konvertierezahl}
+\setinterfacecommand{copyfield}{kopierefeld}
+\setinterfacecommand{correctwhitespace}{korrigierezwischenraum}
+\setinterfacecommand{coupledocument}{verknuepfedokument}
+\setinterfacecommand{couplemarking}{verknuepfebeschriftung}
+\setinterfacecommand{couplepage}{doppelseite}
+\setinterfacecommand{couplepaper}{doppelseitigespapier}
+\setinterfacecommand{coupleregister}{verknuepfregister}
+\setinterfacecommand{crlf}{crlf}
+\setinterfacecommand{currentdate}{heutigesdatum}
+\setinterfacecommand{currentheadnumber}{heutigeskopfnummer}
+\setinterfacecommand{cutspace}{cutspace}
+\setinterfacecommand{date}{datum}
+\setinterfacecommand{decouplemarking}{entknuepfebeschriftung}
+\setinterfacecommand{decrementnumber}{decrementnumber}
+\setinterfacecommand{define}{definieren}
+\setinterfacecommand{defineaccent}{definiereakzent}
+\setinterfacecommand{defineblank}{definiereblanko}
+\setinterfacecommand{defineblock}{definiereblock}
+\setinterfacecommand{definebodyfont}{definierefliesstext}
+\setinterfacecommand{definebodyfontenvironment}{definierefliesstextumgebung}
+\setinterfacecommand{definebuffer}{definierepuffer}
+\setinterfacecommand{definecharacter}{definierezeichen}
+\setinterfacecommand{definecolor}{definierefarbe}
+\setinterfacecommand{definecolorgroup}{definierefarbengruppe}
+\setinterfacecommand{definecolumnbreak}{definecolumnbreak}
+\setinterfacecommand{definecolumnset}{definecolumnset}
+\setinterfacecommand{definecombination}{definecombination}
+\setinterfacecommand{definecombinedlist}{definierezusammengestellteliste}
+\setinterfacecommand{definecommand}{definierebefehl}
+\setinterfacecommand{defineconversion}{definierekonversion}
+\setinterfacecommand{definedescription}{definierebeschreibung}
+\setinterfacecommand{defineenumeration}{definierenummerierung}
+\setinterfacecommand{definefield}{definierefeld}
+\setinterfacecommand{definefieldstack}{definierefeldstapel}
+\setinterfacecommand{definefiguresymbol}{definiereabbsymbol}
+\setinterfacecommand{definefloat}{definieregleitobjekt}
+\setinterfacecommand{definefont}{definiereschrift}
+\setinterfacecommand{definefontstyle}{definiereschriftstil}
+\setinterfacecommand{definefontsynonym}{defineschriftsynonym}
+\setinterfacecommand{defineframed}{definiereumrahmt}
+\setinterfacecommand{defineframedtext}{definiereumrahmtertext}
+\setinterfacecommand{definehbox}{definierehbox}
+\setinterfacecommand{definehead}{definiereueberschrift}
+\setinterfacecommand{defineindenting}{definiereeinzug}
+\setinterfacecommand{defineinmargin}{defineinmargin}
+\setinterfacecommand{defineinteractionmenu}{definiereinteraktionsmenue}
+\setinterfacecommand{defineitemgroup}{defineitemgroup}
+\setinterfacecommand{definelabel}{definierelabel}
+\setinterfacecommand{definelayer}{definelayer}
+\setinterfacecommand{definelayout}{definelayout}
+\setinterfacecommand{definelist}{definiereliste}
+\setinterfacecommand{definelogo}{definierelogo}
+\setinterfacecommand{definemainfield}{definierehauptfeld}
+\setinterfacecommand{definemakeup}{definiereumbruch}
+\setinterfacecommand{definemarking}{definierebeschriftung}
+\setinterfacecommand{definemathalignment}{definemathalignment}
+\setinterfacecommand{defineoutput}{defineoutput}
+\setinterfacecommand{defineoverlay}{definiereoverlay}
+\setinterfacecommand{definepagebreak}{definepagebreak}
+\setinterfacecommand{definepalet}{definierepalette}
+\setinterfacecommand{definepapersize}{definierepapierformat}
+\setinterfacecommand{defineparagraphs}{definiereabsaetze}
+\setinterfacecommand{defineplacement}{defineplacement}
+\setinterfacecommand{defineprofile}{definiereprofil}
+\setinterfacecommand{defineprogram}{definiereprogramme}
+\setinterfacecommand{definerawfont}{definerawfont}
+\setinterfacecommand{definereference}{definierereferenz}
+\setinterfacecommand{definereferenceformat}{definierereferenzformat}
+\setinterfacecommand{definereferencelist}{definierereferenzliste}
+\setinterfacecommand{defineregister}{definiereregister}
+\setinterfacecommand{definerule}{definerule}
+\setinterfacecommand{definesection}{definiereabschnitt}
+\setinterfacecommand{definesectionblock}{definiereabschnittsblock}
+\setinterfacecommand{definesorting}{definieresortieren}
+\setinterfacecommand{definestartstop}{definierestartstop}
+\setinterfacecommand{definestyle}{definierestil}
+\setinterfacecommand{definesubfield}{definieresubfeld}
+\setinterfacecommand{definesymbol}{definieresymbol}
+\setinterfacecommand{definesynonyms}{definieresynonyme}
+\setinterfacecommand{definetabletemplate}{definieretabellenvorlage}
+\setinterfacecommand{definetabulate}{definieretabulator}
+\setinterfacecommand{definetext}{definieretext}
+\setinterfacecommand{definetextposition}{definetextposition}
+\setinterfacecommand{definetextvariable}{definetextvariable}
+\setinterfacecommand{definetype}{definetype}
+\setinterfacecommand{definetyping}{definieretippen}
+\setinterfacecommand{defineversion}{definiereversion}
+\setinterfacecommand{determineheadnumber}{bestimmekopfnummer}
+\setinterfacecommand{determinelistcharacteristics}{bestimmelistencharakeristika}
+\setinterfacecommand{determineregistercharacteristics}{bestimmeregistercharakteristika}
+\setinterfacecommand{dimension}{dimension}
+\setinterfacecommand{disableinteractionmenu}{inaktiviereinteraktionsmenue}
+\setinterfacecommand{domicile}{wohnort}
+\setinterfacecommand{donttest}{keintest}
+\setinterfacecommand{edgedistance}{randabstand}
+\setinterfacecommand{edgewidth}{randbreite}
+\setinterfacecommand{emptylines}{emptylines}
+\setinterfacecommand{environment}{umgebung}
+\setinterfacecommand{externalfigure}{externeabbildung}
+\setinterfacecommand{fact}{geg}
+\setinterfacecommand{field}{feld}
+\setinterfacecommand{fieldstack}{feldstapel}
+\setinterfacecommand{fillinfield}{ausfuellfeld}
+\setinterfacecommand{fillinline}{gefuelltezeile}
+\setinterfacecommand{fillinrules}{gefuelltesrechteck}
+\setinterfacecommand{fillintext}{ausfuelltext}
+\setinterfacecommand{fitfield}{passendfeld}
+\setinterfacecommand{fixedspace}{festesspatium}
+\setinterfacecommand{fixedspaces}{festesspatium}
+\setinterfacecommand{followprofile}{folgeprofil}
+\setinterfacecommand{followprofileversion}{folgeprofilversion}
+\setinterfacecommand{followversion}{folgeversion}
+\setinterfacecommand{footerdistance}{fusszeileabstand}
+\setinterfacecommand{footerheight}{fusszeilenhoehe}
+\setinterfacecommand{footnote}{fussnote}
+\setinterfacecommand{footnotetext}{footnotetext}
+\setinterfacecommand{forceblocks}{forceblocks}
+\setinterfacecommand{formulanumber}{formelnummer}
+\setinterfacecommand{fraction}{bruch}
+\setinterfacecommand{framed}{umrahmt}
+\setinterfacecommand{from}{von}
+\setinterfacecommand{getbuffer}{holepuffer}
+\setinterfacecommand{getmarking}{holebeschriftung}
+\setinterfacecommand{getnumber}{getnumber}
+\setinterfacecommand{godown}{nachunten}
+\setinterfacecommand{goto}{zu}
+\setinterfacecommand{gotobox}{zurbox}
+\setinterfacecommand{gotopage}{zurseite}
+\setinterfacecommand{graycolor}{graufarbe}
+\setinterfacecommand{greyvalue}{grauwert}
+\setinterfacecommand{grid}{gitter}
+\setinterfacecommand{hairline}{haarlinie}
+\setinterfacecommand{head}{kopf}
+\setinterfacecommand{headerdistance}{kopfzeilenabstand}
+\setinterfacecommand{headerheight}{kopfzeilenhoehe}
+\setinterfacecommand{headlevel}{kopfniveau}
+\setinterfacecommand{headnumber}{kopfnummer}
+\setinterfacecommand{headsym}{headsym}
+\setinterfacecommand{headtext}{ueberschrifttext}
+\setinterfacecommand{hideblocks}{verbergebloecke}
+\setinterfacecommand{high}{hoch}
+\setinterfacecommand{hl}{hl}
+\setinterfacecommand{immediatebetweenlist}{immediatebetweenlist}
+\setinterfacecommand{immediatetolist}{immediatetolist}
+\setinterfacecommand{in}{in}
+\setinterfacecommand{incrementnumber}{nummererhoehen}
+\setinterfacecommand{indenting}{einziehen}
+\setinterfacecommand{inframed}{imumriss}
+\setinterfacecommand{infull}{volleswort}
+\setinterfacecommand{ininner}{ininner}
+\setinterfacecommand{inleft}{imlinken}
+\setinterfacecommand{inleftedge}{imlinkenrand}
+\setinterfacecommand{inleftmargin}{inlinkermarginale}
+\setinterfacecommand{inline}{inzeile}
+\setinterfacecommand{inmargin}{inmarginalie}
+\setinterfacecommand{inmframed}{immaumrise}
+\setinterfacecommand{inneredgedistance}{inneredgedistance}
+\setinterfacecommand{inneredgewidth}{inneredgewidth}
+\setinterfacecommand{innermargindistance}{innermargindistance}
+\setinterfacecommand{innermarginwidth}{innermarginwidth}
+\setinterfacecommand{inothermargin}{inanderermarginale}
+\setinterfacecommand{inouter}{inouter}
+\setinterfacecommand{inright}{imrechten}
+\setinterfacecommand{inrightedge}{imrechtenrand}
+\setinterfacecommand{inrightmargin}{inrechtermarginale}
+\setinterfacecommand{installlanguage}{installieresprache}
+\setinterfacecommand{interactionbar}{interaktionsbalken}
+\setinterfacecommand{interactionbuttons}{interaktionsknopfe}
+\setinterfacecommand{interactionmenu}{interaktionsmenue}
+\setinterfacecommand{item}{pos}
+\setinterfacecommand{items}{posten}
+\setinterfacecommand{its}{its}
+\setinterfacecommand{keepblocks}{behaltebloecke}
+\setinterfacecommand{label}{label}
+\setinterfacecommand{labels}{labels}
+\setinterfacecommand{labeltext}{labeltext}
+\setinterfacecommand{language}{sprache}
+\setinterfacecommand{leftaligned}{linksbuendig}
+\setinterfacecommand{leftedgedistance}{abstandlinkerrand}
+\setinterfacecommand{leftedgewidth}{breitelinkerrand}
+\setinterfacecommand{leftmargindistance}{linkemarginalafstand}
+\setinterfacecommand{leftmarginwidth}{linkemarginalbreite}
+\setinterfacecommand{leg}{leg}
+\setinterfacecommand{linewidth}{liniendicke}
+\setinterfacecommand{listheight}{listenhoehe}
+\setinterfacecommand{listlength}{listenlaenge}
+\setinterfacecommand{listsymbol}{listsymbol}
+\setinterfacecommand{listwidth}{listenbreite}
+\setinterfacecommand{logfields}{registrierefelder}
+\setinterfacecommand{lohi}{tiho}
+\setinterfacecommand{low}{tief}
+\setinterfacecommand{macroname}{name}
+\setinterfacecommand{mainlanguage}{hauptsprache}
+\setinterfacecommand{makeupheight}{satzhoehe}
+\setinterfacecommand{makeupwidth}{satzbreite}
+\setinterfacecommand{mar}{mar}
+\setinterfacecommand{margindistance}{marginalafstand}
+\setinterfacecommand{marginrule}{marginallinie}
+\setinterfacecommand{margintext}{marginaltext}
+\setinterfacecommand{margintitle}{marginaltitel}
+\setinterfacecommand{marginwidth}{marginalbreite}
+\setinterfacecommand{marginword}{marginalwort}
+\setinterfacecommand{marking}{beschriftung}
+\setinterfacecommand{markversion}{beschrifteversion}
+\setinterfacecommand{mathematics}{mathematik}
+\setinterfacecommand{menubutton}{menueknopf}
+\setinterfacecommand{mframed}{maumrise}
+\setinterfacecommand{midaligned}{zentriert}
+\setinterfacecommand{mirror}{spiegeln}
+\setinterfacecommand{month}{monat}
+\setinterfacecommand{moveformula}{moveformula}
+\setinterfacecommand{moveongrid}{amgitterneuausrichten}
+\setinterfacecommand{movesidefloat}{movesidefloat}
+\setinterfacecommand{navigating}{navigating}
+\setinterfacecommand{nodimension}{keindimension}
+\setinterfacecommand{noheaderandfooterlines}{keinekopfundfusszeilen}
+\setinterfacecommand{noindenting}{nichteinziehen}
+\setinterfacecommand{nolist}{keineliste}
+\setinterfacecommand{nomarking}{keinebeschriftung}
+\setinterfacecommand{nomoreblocks}{keinebloeckemehr}
+\setinterfacecommand{nomorefiles}{keinedateienmehr}
+\setinterfacecommand{nop}{nop}
+\setinterfacecommand{nospace}{keinspatium}
+\setinterfacecommand{note}{notiz}
+\setinterfacecommand{notopandbottomlines}{keinzeilenobenundunten}
+\setinterfacecommand{notsmallcapped}{nokap}
+\setinterfacecommand{nowhitespace}{keinzwischenraum}
+\setinterfacecommand{numberofsubpages}{numberofsubpages}
+\setinterfacecommand{numbers}{ziffern}
+\setinterfacecommand{outeredgedistance}{outeredgedistance}
+\setinterfacecommand{outeredgewidth}{outeredgewidth}
+\setinterfacecommand{outermargindistance}{outermargindistance}
+\setinterfacecommand{outermarginwidth}{outermarginwidth}
+\setinterfacecommand{overbar}{ueberstrichen}
+\setinterfacecommand{overbars}{ueberstreichen}
+\setinterfacecommand{overstrike}{durchgestrichen}
+\setinterfacecommand{overstrikes}{durchstreichen}
+\setinterfacecommand{packed}{kleinerdurchschuss}
+\setinterfacecommand{page}{seite}
+\setinterfacecommand{pagedepth}{pagedepth}
+\setinterfacecommand{pagenumber}{seitenummer}
+\setinterfacecommand{pageoffset}{pageoffset}
+\setinterfacecommand{pagereference}{seitenreferenz}
+\setinterfacecommand{pagetype}{seitentyp}
+\setinterfacecommand{paperheight}{papierhoehe}
+\setinterfacecommand{paperwidth}{papierbreite}
+\setinterfacecommand{periods}{punkt}
+\setinterfacecommand{plaatsruwelijst}{placerawlist}
+\setinterfacecommand{placebookmarks}{platzierebookmarks}
+\setinterfacecommand{placecombinedlist}{platzierezusammengestellteliste}
+\setinterfacecommand{placefloat}{placefloat}
+\setinterfacecommand{placefootnotes}{platzierefussnoten}
+\setinterfacecommand{placeformula}{platziereformel}
+\setinterfacecommand{placeheadnumber}{placeheadnumber}
+\setinterfacecommand{placeheadtext}{placeheadtext}
+\setinterfacecommand{placelegend}{platzierelegende}
+\setinterfacecommand{placelist}{platziereliste}
+\setinterfacecommand{placelocalfootnotes}{platzierelokalefussnoten}
+\setinterfacecommand{placelogos}{platzierelogo}
+\setinterfacecommand{placeongrid}{amgitterausrichten}
+\setinterfacecommand{placeontopofeachother}{platziereuntereinander}
+\setinterfacecommand{placepagenumber}{placepagenumber}
+\setinterfacecommand{placereferencelist}{placereferencelist}
+\setinterfacecommand{placeregister}{platziereregister}
+\setinterfacecommand{placerule}{placerule}
+\setinterfacecommand{placesidebyside}{platzierenebeneinander}
+\setinterfacecommand{placesubformula}{platziereunterformel}
+\setinterfacecommand{placetextvariable}{placetextvariable}
+\setinterfacecommand{position}{position}
+\setinterfacecommand{positiontext}{positiontext}
+\setinterfacecommand{printpaperheight}{printpapierhoehe}
+\setinterfacecommand{printpaperwidth}{printpapierbreite}
+\setinterfacecommand{processblocks}{bearbeitebloecke}
+\setinterfacecommand{processpage}{bearbeiteseite}
+\setinterfacecommand{product}{produkt}
+\setinterfacecommand{program}{programm}
+\setinterfacecommand{project}{projekt}
+\setinterfacecommand{publication}{publikation}
+\setinterfacecommand{quotation}{zitat}
+\setinterfacecommand{quote}{zitieren}
+\setinterfacecommand{ran}{ran}
+\setinterfacecommand{redo}{wiederholen}
+\setinterfacecommand{ref}{ref}
+\setinterfacecommand{reference}{referenz}
+\setinterfacecommand{referral}{verweis}
+\setinterfacecommand{referraldate}{verweisdatum}
+\setinterfacecommand{referring}{referieren}
+\setinterfacecommand{remark}{bemerkung}
+\setinterfacecommand{reset}{ruecksetzten}
+\setinterfacecommand{resetmarking}{ruecksetztenbeschriftung}
+\setinterfacecommand{resetnumber}{resetnumber}
+\setinterfacecommand{resettext}{resettextcontent}
+\setinterfacecommand{rightaligned}{rechtsbuendig}
+\setinterfacecommand{rightedgedistance}{abstandrechterrand}
+\setinterfacecommand{rightedgewidth}{breiterechterrand}
+\setinterfacecommand{rightmargindistance}{rechtemarginalafstand}
+\setinterfacecommand{rightmarginwidth}{rechtemarginalbreite}
+\setinterfacecommand{romannumerals}{roemischezahlen}
+\setinterfacecommand{rotate}{drehen}
+\setinterfacecommand{scale}{format}
+\setinterfacecommand{screen}{bildschirm}
+\setinterfacecommand{selectblocks}{waehlebloeckeaus}
+\setinterfacecommand{selectpaper}{waehlepapieraus}
+\setinterfacecommand{selectversion}{waehleversionaus}
+\setinterfacecommand{setnumber}{setnumber}
+\setinterfacecommand{settextcontent}{settext}
+\setinterfacecommand{settextvariable}{settextvariable}
+\setinterfacecommand{setupalign}{stelleausrichtungein}
+\setinterfacecommand{setupanswerarea}{setupanswerarea}
+\setinterfacecommand{setuparranging}{stelleanordnenein}
+\setinterfacecommand{setupbackground}{stellehintergrundein}
+\setinterfacecommand{setupbackgrounds}{stellehintergruendeein}
+\setinterfacecommand{setupblackrules}{stellerechteckein}
+\setinterfacecommand{setupblank}{stelleblankoein}
+\setinterfacecommand{setupblock}{stelleblockein}
+\setinterfacecommand{setupbodyfont}{stellefliesstextein}
+\setinterfacecommand{setupbodyfontenvironment}{stellefliesstextumgebungein}
+\setinterfacecommand{setupbottom}{stelleuntenein}
+\setinterfacecommand{setupbottomtexts}{stelletextuntenein}
+\setinterfacecommand{setupbuffer}{stellepufferein}
+\setinterfacecommand{setupbuttons}{stelleknopfein}
+\setinterfacecommand{setupcapitals}{stelleversalienein}
+\setinterfacecommand{setupcaption}{stellebildunterschriftein}
+\setinterfacecommand{setupcaptions}{stellebilderunterschriftein}
+\setinterfacecommand{setupclipping}{stelleausschnittein}
+\setinterfacecommand{setupcolor}{stellefarbeein}
+\setinterfacecommand{setupcolors}{stellefarbenein}
+\setinterfacecommand{setupcolumns}{stellespaltenein}
+\setinterfacecommand{setupcolumnset}{setupcolumnset}
+\setinterfacecommand{setupcolumnsetlines}{setupcolumnsetlines}
+\setinterfacecommand{setupcolumnsetstart}{setupcolumnsetstart}
+\setinterfacecommand{setupcombinations}{stellekombinationein}
+\setinterfacecommand{setupcombinedlist}{stellezusammengestelltelisteein}
+\setinterfacecommand{setupcomment}{stellekommentarein}
+\setinterfacecommand{setupdescriptions}{definierebeschreibungen}
+\setinterfacecommand{setupenumerations}{stellebeschreibungein}
+\setinterfacecommand{setupexternalfigures}{stelleexterneabbildungenein}
+\setinterfacecommand{setupfield}{stellefeldein}
+\setinterfacecommand{setupfields}{stellefelderin}
+\setinterfacecommand{setupfillinlines}{stellegefuelltezeileein}
+\setinterfacecommand{setupfillinrules}{stellegefuelltesrechteckein}
+\setinterfacecommand{setupfloat}{stellegleitobjektein}
+\setinterfacecommand{setupfloats}{stellegleitobjekteein}
+\setinterfacecommand{setupfloatsplitting}{stelleplatziegeteiltegleitobjekt}
+\setinterfacecommand{setupfooter}{stellefusszeileein}
+\setinterfacecommand{setupfootertexts}{stellefusszeilentextein}
+\setinterfacecommand{setupfootnotedefinition}{stellefussnotendefinitionein}
+\setinterfacecommand{setupfootnotes}{stellefussnotenein}
+\setinterfacecommand{setupforms}{setupforms}
+\setinterfacecommand{setupformulas}{stelleformelnein}
+\setinterfacecommand{setupframed}{stelleumrahmtein}
+\setinterfacecommand{setupframedtexts}{stelleumrahmtetexteein}
+\setinterfacecommand{setuphead}{stelleueberschriftein}
+\setinterfacecommand{setupheader}{stellekopfzeileein}
+\setinterfacecommand{setupheadertexts}{stellekopfzeilentextein}
+\setinterfacecommand{setupheadnumber}{stellekopfzahlein}
+\setinterfacecommand{setupheads}{stelleueberschriftenein}
+\setinterfacecommand{setupheadtext}{stelleueberschrifttextein}
+\setinterfacecommand{setuphyphenmark}{stellebindestrichein}
+\setinterfacecommand{setupindentations}{stelleeinzuegein}
+\setinterfacecommand{setupindenting}{stelleeinziehenein}
+\setinterfacecommand{setupinmargin}{stelleinmarginalieein}
+\setinterfacecommand{setupinteraction}{stelleinteraktionein}
+\setinterfacecommand{setupinteractionbar}{stelleinteraktionsbalkenein}
+\setinterfacecommand{setupinteractionmenu}{stelleinteraktionsmenueein}
+\setinterfacecommand{setupinteractionscreen}{stelleinteraktionsbildschirmein}
+\setinterfacecommand{setupinterlinespace}{stellezeilenabstandein}
+\setinterfacecommand{setupitemgroup}{setupitemgroup}
+\setinterfacecommand{setupitemgroups}{stelleaufzaehlungenein}
+\setinterfacecommand{setupitems}{stellepostenein}
+\setinterfacecommand{setuplabeltext}{stellelabeltextein}
+\setinterfacecommand{setuplanguage}{stellespracheein}
+\setinterfacecommand{setuplayout}{stellelayoutein}
+\setinterfacecommand{setuplegend}{stellelegendeein}
+\setinterfacecommand{setuplinenumbering}{stellezeilennumerierungein}
+\setinterfacecommand{setuplines}{stellezeilenein}
+\setinterfacecommand{setuplinewidth}{stellelinienbreiteein}
+\setinterfacecommand{setuplist}{stellelisteein}
+\setinterfacecommand{setupmakeup}{stelleumbruchein}
+\setinterfacecommand{setupmarginblocks}{stellemarginalblockein}
+\setinterfacecommand{setupmarginrules}{stellemarginallinieein}
+\setinterfacecommand{setupmarking}{stellebeschriftungein}
+\setinterfacecommand{setupmathalignment}{setupmathalignment}
+\setinterfacecommand{setupnarrower}{stelleengerein}
+\setinterfacecommand{setupnumber}{setupnumber}
+\setinterfacecommand{setupnumbering}{stellenummerierungein}
+\setinterfacecommand{setupoppositeplacing}{stellegegenueberplatzierenein}
+\setinterfacecommand{setupoutput}{stelleausgabeein}
+\setinterfacecommand{setuppagecomment}{stelleseitenkommentarein}
+\setinterfacecommand{setuppagenumber}{stelleseitennummerein}
+\setinterfacecommand{setuppagenumbering}{stelleseitennummeriernungein}
+\setinterfacecommand{setuppagetransitions}{stelleseitenuebergangein}
+\setinterfacecommand{setuppalet}{stellepaletteein}
+\setinterfacecommand{setuppaper}{setuppaper}
+\setinterfacecommand{setuppapersize}{stellepapierformatein}
+\setinterfacecommand{setupparagraphnumbering}{stelleabsatznummerierungein}
+\setinterfacecommand{setupparagraphs}{stelleabsaetzeein}
+\setinterfacecommand{setupplacement}{setupplacement}
+\setinterfacecommand{setuppositioning}{stellepositionierenein}
+\setinterfacecommand{setupprofiles}{stelleprofilein}
+\setinterfacecommand{setupprograms}{stelleprogrammein}
+\setinterfacecommand{setuppublications}{stellepublikationein}
+\setinterfacecommand{setupquote}{stellezitierenein}
+\setinterfacecommand{setupreferencelist}{stellereferenzlisteein}
+\setinterfacecommand{setupreferencing}{stellereferenzierenein}
+\setinterfacecommand{setupregister}{stelleregisterein}
+\setinterfacecommand{setuprotate}{stelledrehenein}
+\setinterfacecommand{setuprule}{setuprule}
+\setinterfacecommand{setups}{einstellungen}
+\setinterfacecommand{setupscreens}{stellerasterein}
+\setinterfacecommand{setupsection}{stelleabschnittein}
+\setinterfacecommand{setupsectionblock}{stelleabschnittsblockein}
+\setinterfacecommand{setupsorting}{stellesortierenein}
+\setinterfacecommand{setupspacing}{stellespatiumein}
+\setinterfacecommand{setupstartstop}{setupstartstop}
+\setinterfacecommand{setupstrut}{setupstrut}
+\setinterfacecommand{setupsubpagenumber}{stelleunterseitennummerein}
+\setinterfacecommand{setupsymbolset}{stellesymbolsetein}
+\setinterfacecommand{setupsynchronization}{stellesynchronisationein}
+\setinterfacecommand{setupsynchronizationbar}{stellesynchronisationsbalkenein}
+\setinterfacecommand{setupsynonyms}{stellesynonymein}
+\setinterfacecommand{setupsystem}{stellesystemein}
+\setinterfacecommand{setuptab}{stelletabein}
+\setinterfacecommand{setuptables}{stelletabellenein}
+\setinterfacecommand{setuptabulate}{stelletabulatorein}
+\setinterfacecommand{setuptext}{stelletextein}
+\setinterfacecommand{setuptextposition}{setuptextposition}
+\setinterfacecommand{setuptextrules}{stelletextumrissein}
+\setinterfacecommand{setuptexttexts}{stelletexttexteein}
+\setinterfacecommand{setuptextvariable}{setuptextvariable}
+\setinterfacecommand{setupthinrules}{stelleduennerumrissein}
+\setinterfacecommand{setuptolerance}{stelletoleranzein}
+\setinterfacecommand{setuptop}{stellenobenein}
+\setinterfacecommand{setuptoptexts}{stelletextobenein}
+\setinterfacecommand{setuptype}{stelletipein}
+\setinterfacecommand{setuptyping}{stelletippenein}
+\setinterfacecommand{setupunderbar}{stelleunterstreichenein}
+\setinterfacecommand{setupurl}{stelleurlein}
+\setinterfacecommand{setupversions}{stelleversionein}
+\setinterfacecommand{setupwhitespace}{stellezwischenraumein}
+\setinterfacecommand{showbodyfont}{zeigefliesstext}
+\setinterfacecommand{showbodyfontenvironment}{zeigefliesstextumgebung}
+\setinterfacecommand{showcolor}{zeigefarbe}
+\setinterfacecommand{showcolorgroup}{zeigefarbengruppe}
+\setinterfacecommand{showexternalfigures}{zeigeexterneabbildungen}
+\setinterfacecommand{showfields}{zeigefelder}
+\setinterfacecommand{showframe}{zeigerahmen}
+\setinterfacecommand{showgrid}{zeigegitter}
+\setinterfacecommand{showlayout}{zeigelayout}
+\setinterfacecommand{showmakeup}{zeigeumbruch}
+\setinterfacecommand{showpalet}{zeigepalette}
+\setinterfacecommand{showprint}{zeigedruck}
+\setinterfacecommand{showsetups}{zeigeeinstellungen}
+\setinterfacecommand{showstruts}{zeigestruts}
+\setinterfacecommand{showsymbolset}{showsymbolset}
+\setinterfacecommand{smallcapped}{kap}
+\setinterfacecommand{someline}{einezeile}
+\setinterfacecommand{somewhere}{irgendwo}
+\setinterfacecommand{space}{spatium}
+\setinterfacecommand{splitfloat}{teilegleitobjekt}
+\setinterfacecommand{startalignment}{startausrichtung}
+\setinterfacecommand{startbackground}{starthintergrund}
+\setinterfacecommand{startcoding}{startkodierung}
+\setinterfacecommand{startcolor}{startfarbe}
+\setinterfacecommand{startcolumnmakeup}{startcolumnmakeup}
+\setinterfacecommand{startcolumns}{startspalten}
+\setinterfacecommand{startcolumnset}{startcolumnset}
+\setinterfacecommand{startcombination}{startkombination}
+\setinterfacecommand{startcomponent}{startkomponente}
+\setinterfacecommand{startdocument}{startdokument}
+\setinterfacecommand{startenvironment}{startumgebung}
+\setinterfacecommand{startfigure}{startabbildung}
+\setinterfacecommand{startglobal}{startglobal}
+\setinterfacecommand{startline}{startzeile}
+\setinterfacecommand{startlinecorrection}{startzeilenkorrektur}
+\setinterfacecommand{startlinenumbering}{startzeilennumerierung}
+\setinterfacecommand{startlines}{startzeilen}
+\setinterfacecommand{startlocal}{startlokal}
+\setinterfacecommand{startlocalfootnotes}{startlokalefussnoten}
+\setinterfacecommand{startmakeup}{startumbruch}
+\setinterfacecommand{startmarginblock}{startmarginalblock}
+\setinterfacecommand{startmarginrule}{startmarginallinie}
+\setinterfacecommand{startnarrower}{startenger}
+\setinterfacecommand{startopposite}{startgegenueber}
+\setinterfacecommand{startoverlay}{startoverlay}
+\setinterfacecommand{startoverzicht}{startueberblick}
+\setinterfacecommand{startpacked}{startkleinerdurchschuss}
+\setinterfacecommand{startpositioning}{startpositionieren}
+\setinterfacecommand{startproduct}{startprodukt}
+\setinterfacecommand{startprofile}{startprofil}
+\setinterfacecommand{startproject}{startprojekt}
+\setinterfacecommand{startquotation}{startzitat}
+\setinterfacecommand{startraster}{startraster}
+\setinterfacecommand{startsymbolset}{startsymbolset}
+\setinterfacecommand{startsynchronization}{startsynchronisation}
+\setinterfacecommand{starttable}{starttabelle}
+\setinterfacecommand{starttables}{starttabellen}
+\setinterfacecommand{starttext}{starttext}
+\setinterfacecommand{starttextrule}{starttextlinie}
+\setinterfacecommand{startunpacked}{startgrosserdurchschuss}
+\setinterfacecommand{startversion}{startversion}
+\setinterfacecommand{stopalignment}{stopausrichtung}
+\setinterfacecommand{stopbackground}{stophintergrund}
+\setinterfacecommand{stopcoding}{stopkodierung}
+\setinterfacecommand{stopcolor}{stopfarbe}
+\setinterfacecommand{stopcolumnmakeup}{stopcolumnmakeup}
+\setinterfacecommand{stopcolumns}{stopspalten}
+\setinterfacecommand{stopcolumnset}{stopcolumnset}
+\setinterfacecommand{stopcombination}{stopkombination}
+\setinterfacecommand{stopcomponent}{stopkomponente}
+\setinterfacecommand{stopdocument}{stopdokument}
+\setinterfacecommand{stopenvironment}{stopumgebung}
+\setinterfacecommand{stopglobal}{stopglobal}
+\setinterfacecommand{stopline}{stopzeile}
+\setinterfacecommand{stoplinecorrection}{stopzeilenkorrektur}
+\setinterfacecommand{stoplinenumbering}{stopzeilennumerierung}
+\setinterfacecommand{stoplines}{stopzeilen}
+\setinterfacecommand{stoplocal}{stoplokal}
+\setinterfacecommand{stoplocalfootnotes}{stoplokalefussnoten}
+\setinterfacecommand{stopmakeup}{stopumbruch}
+\setinterfacecommand{stopmarginblock}{stopmarginalblock}
+\setinterfacecommand{stopmarginrule}{stopmarginallinie}
+\setinterfacecommand{stopnarrower}{stopenger}
+\setinterfacecommand{stopopposite}{stopgegenueber}
+\setinterfacecommand{stopoverlay}{stopoverlay}
+\setinterfacecommand{stopoverzicht}{stopueberblick}
+\setinterfacecommand{stoppacked}{stopkleinerdurchschuss}
+\setinterfacecommand{stoppositioning}{stoppositionieren}
+\setinterfacecommand{stopproduct}{stopprodukt}
+\setinterfacecommand{stopprofile}{stopprofil}
+\setinterfacecommand{stopproject}{stopprojekt}
+\setinterfacecommand{stopquotation}{stopzitat}
+\setinterfacecommand{stopraster}{stopraster}
+\setinterfacecommand{stopsynchronization}{stopsynchronisation}
+\setinterfacecommand{stoptable}{stoptabelle}
+\setinterfacecommand{stoptables}{stoptabellen}
+\setinterfacecommand{stoptext}{stoptext}
+\setinterfacecommand{stoptextrule}{stoptextlinie}
+\setinterfacecommand{stopunpacked}{stopgrosserdurchschuss}
+\setinterfacecommand{stopversion}{stopversion}
+\setinterfacecommand{stretched}{gestreckt}
+\setinterfacecommand{subformulanumber}{unterformelnummer}
+\setinterfacecommand{subpagenumber}{subpagenumber}
+\setinterfacecommand{switchtobodyfont}{wechselezumfliesstext}
+\setinterfacecommand{switchtorawfont}{switchtorawfont}
+\setinterfacecommand{sym}{sym}
+\setinterfacecommand{symbol}{symbol}
+\setinterfacecommand{synchronizationbar}{synchronisationsbalken}
+\setinterfacecommand{synchronize}{synchronisieren}
+\setinterfacecommand{tab}{tab}
+\setinterfacecommand{testcolumn}{testcolumn}
+\setinterfacecommand{testpage}{testpage}
+\setinterfacecommand{tex}{tex}
+\setinterfacecommand{textheight}{texthoehe}
+\setinterfacecommand{textreference}{textreferenz}
+\setinterfacecommand{textrule}{textlinie}
+\setinterfacecommand{textvariable}{textvariable}
+\setinterfacecommand{textwidth}{textbreite}
+\setinterfacecommand{thinrule}{duennelinie}
+\setinterfacecommand{thinrules}{duennerumriss}
+\setinterfacecommand{tooltip}{tooltip}
+\setinterfacecommand{topdistance}{abstandoben}
+\setinterfacecommand{topheight}{hoeheoben}
+\setinterfacecommand{topspace}{kopfweite}
+\setinterfacecommand{totalnumberofpages}{gesamtseitenanzahl}
+\setinterfacecommand{translate}{uebersetzten}
+\setinterfacecommand{txt}{txt}
+\setinterfacecommand{typ}{tip}
+\setinterfacecommand{type}{tippen}
+\setinterfacecommand{typebuffer}{tippepuffer}
+\setinterfacecommand{typefile}{tippedatei}
+\setinterfacecommand{underbar}{unterstrichen}
+\setinterfacecommand{underbars}{unterstreichen}
+\setinterfacecommand{unitmeaning}{bedeutung}
+\setinterfacecommand{unknown}{unbekant}
+\setinterfacecommand{useJSscripts}{verwendeJSscript}
+\setinterfacecommand{useURL}{verwendeURL}
+\setinterfacecommand{useXMLfilter}{useXMLfilter}
+\setinterfacecommand{useblocks}{verwendebloecke}
+\setinterfacecommand{usecommands}{verwendebefehl}
+\setinterfacecommand{useencoding}{benutzekodierung}
+\setinterfacecommand{useexternaldocument}{verwendeexteresdokument}
+\setinterfacecommand{useexternalfigure}{verwendeexterneabbildung}
+\setinterfacecommand{useexternalfile}{verwendeexternedatei}
+\setinterfacecommand{useexternalfiles}{verwendeexternedateien}
+\setinterfacecommand{useexternalsoundtrack}{verwendeexternestonstueck}
+\setinterfacecommand{usemodule}{verwendemodul}
+\setinterfacecommand{usemodules}{verwendemodule}
+\setinterfacecommand{usepath}{benutzeverzeichnis}
+\setinterfacecommand{usereferences}{verwendereferenzen}
+\setinterfacecommand{usespecials}{benutzespezielles}
+\setinterfacecommand{usesymbols}{verwendesymbole}
+\setinterfacecommand{usetypescript}{usetypescript}
+\setinterfacecommand{usetypescriptfile}{usetypescriptfile}
+\setinterfacecommand{useurl}{verwendeurl}
+\setinterfacecommand{version}{version}
+\setinterfacecommand{vl}{vl}
+\setinterfacecommand{weekday}{wochentag}
+\setinterfacecommand{whitespace}{zwischenraum}
+\setinterfacecommand{wordright}{wortrechts}
+\setinterfacecommand{writebetweenlist}{schreibezwischenliste}
+\setinterfacecommand{writetolist}{schreibezurliste}
+\setinterfacecommand{writetoreferencelist}{schreibezurreferenzliste}
+\setinterfacecommand{writetoregister}{schreibezumregister}
+%
+\endinput \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/base/mult-def.lua b/Master/texmf-dist/tex/context/base/mult-def.lua
new file mode 100644
index 00000000000..2fea7dfe7fd
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mult-def.lua
@@ -0,0 +1,15942 @@
+return {
+ ["commands"]={
+ ["CAPPED"]={
+ ["cs"]="KAP",
+ ["de"]="KAP",
+ ["en"]="CAP",
+ ["fr"]="CAP",
+ ["it"]="CAP",
+ ["nl"]="KAP",
+ ["pe"]="CAP",
+ ["ro"]="KAP",
+ },
+ ["Character"]={
+ ["cs"]="Znak",
+ ["de"]="Buchstabe",
+ ["en"]="Character",
+ ["fr"]="Caractere",
+ ["it"]="Lettera",
+ ["nl"]="Letter",
+ ["pe"]="Character",
+ ["ro"]="Litera",
+ },
+ ["Characters"]={
+ ["cs"]="Znaky",
+ ["de"]="Buchstaben",
+ ["en"]="Characters",
+ ["fr"]="Caracteres",
+ ["it"]="Lettere",
+ ["nl"]="Letters",
+ ["pe"]="Characters",
+ ["ro"]="Litere",
+ },
+ ["LABELTEXT"]={
+ ["cs"]="TEXTPOPISKU",
+ ["de"]="LABELTEXT",
+ ["en"]="LABELTEXT",
+ ["fr"]="LABELTEXTE",
+ ["it"]="TESTOETICHETTA",
+ ["nl"]="LABELTEKST",
+ ["pe"]="LABELTEXT",
+ ["ro"]="TEXTETICHETA",
+ },
+ ["MONTH"]={
+ ["cs"]="MESIC",
+ ["de"]="MONAT",
+ ["en"]="MONTH",
+ ["fr"]="MOIS",
+ ["it"]="MESE",
+ ["nl"]="MAAND",
+ ["pe"]="MONTH",
+ ["ro"]="LUNA",
+ },
+ ["Numbers"]={
+ ["cs"]="Cisla",
+ ["de"]="Ziffern",
+ ["en"]="Numbers",
+ ["fr"]="Numeros",
+ ["it"]="Numeri",
+ ["nl"]="Cijfers",
+ ["pe"]="Numbers",
+ ["ro"]="Numere",
+ },
+ ["Romannumerals"]={
+ ["cs"]="Rimskecislice",
+ ["de"]="Roemischezahlen",
+ ["en"]="Romannumerals",
+ ["fr"]="Chiffresromains",
+ ["it"]="Numeriromani",
+ ["nl"]="Romeins",
+ ["pe"]="Romannumerals",
+ ["ro"]="Numereromane",
+ },
+ ["SmallCapped"]={
+ ["cs"]="Kap",
+ ["de"]="Kap",
+ ["en"]="Cap",
+ ["fr"]="Cap",
+ ["it"]="Cap",
+ ["nl"]="Kap",
+ ["pe"]="Cap",
+ ["ro"]="Kap",
+ },
+ ["SmallCaps"]={
+ ["cs"]="Kaps",
+ ["de"]="Kaps",
+ ["en"]="Caps",
+ ["fr"]="Caps",
+ ["it"]="Caps",
+ ["nl"]="Kaps",
+ ["pe"]="Caps",
+ ["ro"]="Kaps",
+ },
+ ["WEEKDAY"]={
+ ["cs"]="VSEDNIDEN",
+ ["de"]="WOCHENTAG",
+ ["en"]="WEEKDAY",
+ ["fr"]="JOURSEMAINE",
+ ["it"]="GIORNOSETTIMANA",
+ ["nl"]="WEEKDAG",
+ ["pe"]="WEEKDAY",
+ ["ro"]="ZIDINSAPTAMANA",
+ },
+ ["WORD"]={
+ ["cs"]="SLOVO",
+ ["de"]="WORT",
+ ["en"]="WORD",
+ ["fr"]="MOT",
+ ["it"]="PAROLA",
+ ["nl"]="WOORD",
+ ["pe"]="WORD",
+ ["ro"]="CUVANT",
+ },
+ ["WORDS"]={
+ ["cs"]="SLOVA",
+ ["de"]="WOERTER",
+ ["en"]="WORDS",
+ ["fr"]="MOTS",
+ ["it"]="PAROLE",
+ ["nl"]="WOORDEN",
+ ["pe"]="WORDS",
+ ["ro"]="CUVINTE",
+ },
+ ["Word"]={
+ ["cs"]="Slovo",
+ ["de"]="Wort",
+ ["en"]="Word",
+ ["fr"]="Mot",
+ ["it"]="Parola",
+ ["nl"]="Woord",
+ ["pe"]="Word",
+ ["ro"]="Cuvant",
+ },
+ ["Words"]={
+ ["cs"]="Slova",
+ ["de"]="Woerter",
+ ["en"]="Words",
+ ["fr"]="Mots",
+ ["it"]="Parole",
+ ["nl"]="Woorden",
+ ["pe"]="Words",
+ ["ro"]="Cuvinte",
+ },
+ ["about"]={
+ ["cs"]="oref",
+ ["de"]="ueber",
+ ["en"]="about",
+ ["fr"]="concernant",
+ ["it"]="intorno",
+ ["nl"]="about",
+ ["pe"]="درمورد",
+ ["ro"]="despre",
+ },
+ ["adaptlayout"]={
+ ["cs"]="prizpusobvzhled",
+ ["de"]="passelayoutan",
+ ["en"]="adaptlayout",
+ ["fr"]="adaptedisposition",
+ ["it"]="adattalayout",
+ ["nl"]="paslayoutaan",
+ ["pe"]="تنظیم‌طرح‌بندی",
+ ["ro"]="adapteazaaspect",
+ },
+ ["adding"]={},
+ ["arg"]={
+ ["cs"]="arg",
+ ["de"]="arg",
+ ["en"]="arg",
+ ["fr"]="arg",
+ ["it"]="arg",
+ ["nl"]="arg",
+ ["pe"]="افزودن",
+ ["ro"]="arg",
+ },
+ ["at"]={
+ ["cs"]="pref",
+ ["de"]="bei",
+ ["en"]="at",
+ ["fr"]="a",
+ ["it"]="al",
+ ["nl"]="op",
+ ["pe"]="در",
+ ["ro"]="la",
+ },
+ ["atleftmargin"]={
+ ["cs"]="atleftmargin",
+ ["de"]="atleftmargin",
+ ["en"]="atleftmargin",
+ ["fr"]="atleftmargin",
+ ["it"]="atleftmargin",
+ ["nl"]="oplinkermarge",
+ ["pe"]="درحاشیه‌چپ",
+ ["ro"]="atleftmargin",
+ },
+ ["atpage"]={
+ ["cs"]="nastrane",
+ ["de"]="aufseite",
+ ["en"]="atpage",
+ ["fr"]="alapage",
+ ["it"]="apagina",
+ ["nl"]="oppagina",
+ ["pe"]="درصفحه",
+ ["ro"]="lapagina",
+ },
+ ["atrightmargin"]={
+ ["cs"]="atrightmargin",
+ ["de"]="atrightmargin",
+ ["en"]="atrightmargin",
+ ["fr"]="atrightmargin",
+ ["it"]="atrightmargin",
+ ["nl"]="oprechtermarge",
+ ["pe"]="درحاشیه‌راست",
+ ["ro"]="atrightmargin",
+ },
+ ["background"]={
+ ["cs"]="pozadi",
+ ["de"]="hintergrund",
+ ["en"]="background",
+ ["fr"]="arriereplan",
+ ["it"]="sfondo",
+ ["nl"]="achtergrond",
+ ["pe"]="پس‌زمینه",
+ ["ro"]="fundal",
+ },
+ ["backspace"]={
+ ["cs"]="odsazenizleva",
+ ["de"]="rumpfweite",
+ ["en"]="backspace",
+ ["fr"]="retourarriere",
+ ["it"]="spaziodietro",
+ ["nl"]="rugwit",
+ ["pe"]="فاصله‌پشت",
+ ["ro"]="spatiuspate",
+ },
+ ["blackrule"]={
+ ["cs"]="cernalinka",
+ ["de"]="rechteck",
+ ["en"]="blackrule",
+ ["fr"]="lignenoire",
+ ["it"]="lineanera",
+ ["nl"]="blokje",
+ ["pe"]="خط‌سیاه",
+ ["ro"]="linieneagra",
+ },
+ ["blackrules"]={
+ ["cs"]="cernelinky",
+ ["de"]="rechtecke",
+ ["en"]="blackrules",
+ ["fr"]="lignesnoires",
+ ["it"]="lineenere",
+ ["nl"]="blokjes",
+ ["pe"]="خطهای‌سیاه",
+ ["ro"]="liniinegre",
+ },
+ ["blank"]={
+ ["cs"]="preskoc",
+ ["de"]="blanko",
+ ["en"]="blank",
+ ["fr"]="vide",
+ ["it"]="rigovuoto",
+ ["nl"]="blanko",
+ ["pe"]="خالی",
+ ["ro"]="blanc",
+ },
+ ["bookmark"]={
+ ["cs"]="zalozka",
+ ["de"]="bookmark",
+ ["en"]="bookmark",
+ ["fr"]="marquepage",
+ ["it"]="segnalibro",
+ ["nl"]="bookmark",
+ ["pe"]="چوبخط",
+ ["ro"]="semncarte",
+ },
+ ["bottomdistance"]={
+ ["cs"]="vzdalenostspodku",
+ ["de"]="abstandunten",
+ ["en"]="bottomdistance",
+ ["fr"]="distanceinf",
+ ["it"]="distanzafondo",
+ ["nl"]="onderafstand",
+ ["pe"]="فاصله‌پایین",
+ ["ro"]="distantajos",
+ },
+ ["bottomheight"]={
+ ["cs"]="vyskaspodku",
+ ["de"]="hoeheunten",
+ ["en"]="bottomheight",
+ ["fr"]="hauteurinf",
+ ["it"]="altezzafondo",
+ ["nl"]="onderhoogte",
+ ["pe"]="ارتفاع‌پایین",
+ ["ro"]="inaltimejos",
+ },
+ ["bottomspace"]={
+ ["cs"]="bottomspace",
+ ["de"]="bottomspace",
+ ["en"]="bottomspace",
+ ["fr"]="espaceinf",
+ ["it"]="spaziofondo",
+ ["nl"]="bodemwit",
+ ["pe"]="فضای‌پایین",
+ ["ro"]="spatiujos",
+ },
+ ["but"]={
+ ["cs"]="spodek",
+ ["de"]="but",
+ ["en"]="but",
+ ["fr"]="but",
+ ["it"]="fondo",
+ ["nl"]="but",
+ ["pe"]="اما",
+ ["ro"]="but",
+ },
+ ["button"]={
+ ["cs"]="tlacitko",
+ ["de"]="knopf",
+ ["en"]="button",
+ ["fr"]="bouton",
+ ["it"]="pulsante",
+ ["nl"]="button",
+ ["pe"]="دکمه",
+ ["ro"]="buton",
+ },
+ ["bypassblocks"]={
+ ["cs"]="bypassblocks",
+ ["de"]="bypassblocks",
+ ["en"]="bypassblocks",
+ ["fr"]="sauteblocs",
+ ["it"]="saltablocchi",
+ ["nl"]="passeerblokken",
+ ["pe"]="عبوربلوکها",
+ ["ro"]="saripesteblocuri",
+ },
+ ["character"]={
+ ["cs"]="znak",
+ ["de"]="buchstabe",
+ ["en"]="character",
+ ["fr"]="caractere",
+ ["it"]="lettera",
+ ["nl"]="letter",
+ ["pe"]="حرف",
+ ["ro"]="litera",
+ },
+ ["characters"]={
+ ["cs"]="znaky",
+ ["de"]="buchstaben",
+ ["en"]="characters",
+ ["fr"]="caracteres",
+ ["it"]="lettere",
+ ["nl"]="letters",
+ ["pe"]="حرفها",
+ ["ro"]="litere",
+ },
+ ["chem"]={
+ ["cs"]="chem",
+ ["de"]="chem",
+ ["en"]="chem",
+ ["fr"]="chem",
+ ["it"]="chim",
+ ["nl"]="chem",
+ ["pe"]="chem",
+ ["ro"]="chem",
+ },
+ ["clip"]={
+ ["cs"]="orez",
+ ["de"]="ausschnitt",
+ ["en"]="clip",
+ ["fr"]="clip",
+ ["it"]="clip",
+ ["nl"]="clip",
+ ["pe"]="گیره",
+ ["ro"]="clip",
+ },
+ ["clonefield"]={
+ ["cs"]="klonujpole",
+ ["de"]="klonierefeld",
+ ["en"]="clonefield",
+ ["fr"]="clonechamp",
+ ["it"]="clonacampo",
+ ["nl"]="kloonveld",
+ ["pe"]="میدان‌شبیه‌سازی",
+ ["ro"]="cloneazacamp",
+ },
+ ["color"]={
+ ["cs"]="barva",
+ ["de"]="farbe",
+ ["en"]="color",
+ ["fr"]="couleur",
+ ["it"]="colore",
+ ["nl"]="kleur",
+ ["pe"]="رنگ",
+ ["ro"]="culoare",
+ },
+ ["colorbar"]={
+ ["cs"]="barevnalista",
+ ["de"]="farbbalken",
+ ["en"]="colorbar",
+ ["fr"]="barrecouleur",
+ ["it"]="barracolori",
+ ["nl"]="kleurenbalk",
+ ["pe"]="میله‌رنگ",
+ ["ro"]="baraculoare",
+ },
+ ["colorvalue"]={
+ ["cs"]="hodnotabarvy",
+ ["de"]="farbewert",
+ ["en"]="colorvalue",
+ ["fr"]="valeurcouleur",
+ ["it"]="valorecolore",
+ ["nl"]="kleurwaarde",
+ ["pe"]="مقداررنگ",
+ ["ro"]="valoareculoare",
+ },
+ ["column"]={
+ ["cs"]="sloupec",
+ ["de"]="spalte",
+ ["en"]="column",
+ ["fr"]="colonne",
+ ["it"]="colonna",
+ ["nl"]="kolom",
+ ["pe"]="ستون",
+ ["ro"]="coloana",
+ },
+ ["comment"]={
+ ["cs"]="komentar",
+ ["de"]="kommentar",
+ ["en"]="comment",
+ ["fr"]="commentaire",
+ ["it"]="commento",
+ ["nl"]="commentaar",
+ ["pe"]="توضیح",
+ ["ro"]="comentariu",
+ },
+ ["comparecolorgroup"]={
+ ["cs"]="porovnejskupinubarev",
+ ["de"]="vergleichefarbengruppe",
+ ["en"]="comparecolorgroup",
+ ["fr"]="comparegroupecouleur",
+ ["it"]="confrontagruppocolori",
+ ["nl"]="vergelijkkleurgroep",
+ ["pe"]="مقایسه‌گروه‌رنگ",
+ ["ro"]="comparagrupculoare",
+ },
+ ["comparepalet"]={
+ ["cs"]="porovnejpaletu",
+ ["de"]="vergleichepalette",
+ ["en"]="comparepalet",
+ ["fr"]="comparepalette",
+ ["it"]="confrontatavolozza",
+ ["nl"]="vergelijkpalet",
+ ["pe"]="لوح‌مقایسه",
+ ["ro"]="comparapaleta",
+ },
+ ["completepagenumber"]={
+ ["cs"]="completepagenumber",
+ ["de"]="completepagenumber",
+ ["en"]="completepagenumber",
+ ["fr"]="completenumeropage",
+ ["it"]="numeropaginacompleto",
+ ["nl"]="volledigepaginanummer",
+ ["pe"]="شماره‌صفحه‌کامل",
+ ["ro"]="completeazanumarpagina",
+ },
+ ["completeregister"]={
+ ["cs"]="completeregister",
+ ["de"]="completeregister",
+ ["en"]="completeregister",
+ ["fr"]="completeregistre",
+ ["it"]="completeregister",
+ ["nl"]="volledigregister",
+ ["pe"]="ثبت‌کامل",
+ ["ro"]="completeregister",
+ },
+ ["component"]={
+ ["cs"]="komponenta",
+ ["de"]="komponente",
+ ["en"]="component",
+ ["fr"]="composant",
+ ["it"]="componenet",
+ ["nl"]="onderdeel",
+ ["pe"]="مولفه",
+ ["ro"]="componenta",
+ },
+ ["convertnumber"]={
+ ["cs"]="konvertujcislo",
+ ["de"]="konvertierezahl",
+ ["en"]="convertnumber",
+ ["fr"]="convertitnumero",
+ ["it"]="convertinumero",
+ ["nl"]="converteernummer",
+ ["pe"]="شماره‌مبدل",
+ ["ro"]="convertestenumar",
+ },
+ ["copyfield"]={
+ ["cs"]="kopirujpole",
+ ["de"]="kopierefeld",
+ ["en"]="copyfield",
+ ["fr"]="copitchamp",
+ ["it"]="copiacampo",
+ ["nl"]="copieerveld",
+ ["pe"]="میدان‌کپی",
+ ["ro"]="copiazacamp",
+ },
+ ["correctwhitespace"]={
+ ["cs"]="korekcebilehomista",
+ ["de"]="korrigierezwischenraum",
+ ["en"]="correctwhitespace",
+ ["fr"]="corrigeespaceblanc",
+ ["it"]="correggispaziobianco",
+ ["nl"]="corrigeerwitruimte",
+ ["pe"]="فضای‌سفیدصحیح",
+ ["ro"]="corecteazaspatiualb",
+ },
+ ["coupledocument"]={
+ ["cs"]="propojenydokument",
+ ["de"]="verknuepfedokument",
+ ["en"]="coupledocument",
+ ["fr"]="coupledocument",
+ ["it"]="accoppiadocumento",
+ ["nl"]="koppeldocument",
+ ["pe"]="نوشتارزوج",
+ ["ro"]="cupleazadocument",
+ },
+ ["couplemarking"]={
+ ["cs"]="propojeneznaceni",
+ ["de"]="verknuepfebeschriftung",
+ ["en"]="couplemarking",
+ ["fr"]="couplemarquage",
+ ["it"]="accoppiamarcatura",
+ ["nl"]="koppelmarkering",
+ ["pe"]="نشانه‌گذاری‌زوج",
+ ["ro"]="cupleazamarcaje",
+ },
+ ["couplepage"]={
+ ["cs"]="parovastrana",
+ ["de"]="doppelseite",
+ ["en"]="couplepage",
+ ["fr"]="pagedouble",
+ ["it"]="accoppiapagina",
+ ["nl"]="koppelpagina",
+ ["pe"]="صفحه‌زوج",
+ ["ro"]="paginadubla",
+ },
+ ["couplepaper"]={
+ ["cs"]="dvoustrannypapir",
+ ["de"]="doppelseitigespapier",
+ ["en"]="couplepaper",
+ ["fr"]="couplepapier",
+ ["it"]="accoppiacarta",
+ ["nl"]="koppelpapier",
+ ["pe"]="کاغذزوج",
+ ["ro"]="hartiedubla",
+ },
+ ["coupleregister"]={
+ ["cs"]="propojenyrejstrik",
+ ["de"]="verknuepfregister",
+ ["en"]="coupleregister",
+ ["fr"]="coupleregistre",
+ ["it"]="accoppiaregistro",
+ ["nl"]="koppelregister",
+ ["pe"]="ثبت‌زوج",
+ ["ro"]="cupleazaregistru",
+ },
+ ["crlf"]={
+ ["cs"]="crlf",
+ ["de"]="crlf",
+ ["en"]="crlf",
+ ["fr"]="crlf",
+ ["it"]="crlf",
+ ["nl"]="crlf",
+ ["pe"]="crlf",
+ ["ro"]="crlf",
+ },
+ ["currentdate"]={
+ ["cs"]="aktualnidatum",
+ ["de"]="heutigesdatum",
+ ["en"]="currentdate",
+ ["fr"]="datecourante",
+ ["it"]="datadioggi",
+ ["nl"]="huidigedatum",
+ ["pe"]="تاریخ‌جاری",
+ ["ro"]="datacurenta",
+ },
+ ["currentheadnumber"]={
+ ["cs"]="aktualnicislonadpisu",
+ ["de"]="heutigeskopfnummer",
+ ["en"]="currentheadnumber",
+ ["fr"]="numerotetecourant",
+ ["it"]="numerotestacorrente",
+ ["nl"]="huidigekopnummer",
+ ["pe"]="شماره‌سرجاری",
+ ["ro"]="numartitlucurent",
+ },
+ ["cutspace"]={
+ ["cs"]="cutspace",
+ ["de"]="cutspace",
+ ["en"]="cutspace",
+ ["fr"]="cutspace",
+ ["it"]="cutspace",
+ ["nl"]="snijwit",
+ ["pe"]="فضای‌برش",
+ ["ro"]="cutspace",
+ },
+ ["date"]={
+ ["cs"]="datum",
+ ["de"]="datum",
+ ["en"]="date",
+ ["fr"]="date",
+ ["it"]="data",
+ ["nl"]="datum",
+ ["pe"]="تاریخ",
+ ["ro"]="data",
+ },
+ ["decouplemarking"]={
+ ["cs"]="rozpojeneznaceni",
+ ["de"]="entknuepfebeschriftung",
+ ["en"]="decouplemarking",
+ ["fr"]="decouplemarquage",
+ ["it"]="separamarcatura",
+ ["nl"]="ontkoppelmarkering",
+ ["pe"]="جداسازی‌نشانه‌گذاری",
+ ["ro"]="decupleazamarcaje",
+ },
+ ["decrementnumber"]={
+ ["cs"]="decrementnumber",
+ ["de"]="decrementnumber",
+ ["en"]="decrementnumber",
+ ["fr"]="decrementenumero",
+ ["it"]="decrementnumber",
+ ["nl"]="verlaagnummer",
+ ["pe"]="شماره‌کاهش",
+ ["ro"]="decrementnumber",
+ },
+ ["define"]={
+ ["cs"]="definuj",
+ ["de"]="definieren",
+ ["en"]="define",
+ ["fr"]="definit",
+ ["it"]="definisci",
+ ["nl"]="definieer",
+ ["pe"]="تعریف",
+ ["ro"]="defineste",
+ },
+ ["defineaccent"]={
+ ["cs"]="definujakcent",
+ ["de"]="definiereakzent",
+ ["en"]="defineaccent",
+ ["fr"]="definitaccent",
+ ["it"]="definisciaccento",
+ ["nl"]="definieeraccent",
+ ["pe"]="تعریف‌لهجه",
+ ["ro"]="definesteaccent",
+ },
+ ["defineblank"]={
+ ["cs"]="definujpreskok",
+ ["de"]="definiereblanko",
+ ["en"]="defineblank",
+ ["fr"]="definitvide",
+ ["it"]="definiscirigovuoto",
+ ["nl"]="definieerblanko",
+ ["pe"]="تعریف‌خالی",
+ ["ro"]="definesteblanc",
+ },
+ ["defineblock"]={
+ ["cs"]="definujblok",
+ ["de"]="definiereblock",
+ ["en"]="defineblock",
+ ["fr"]="definitbloc",
+ ["it"]="definisciblocco",
+ ["nl"]="definieerblok",
+ ["pe"]="تعریف‌بلوک",
+ ["ro"]="definestebloc",
+ },
+ ["definebodyfont"]={
+ ["cs"]="definujzakladnifont",
+ ["de"]="definierefliesstext",
+ ["en"]="definebodyfont",
+ ["fr"]="definitpolicecorps",
+ ["it"]="definiscifontdeltesto",
+ ["nl"]="definieerkorps",
+ ["pe"]="تعریف‌قلم‌متن",
+ ["ro"]="definestefonttext",
+ },
+ ["definebodyfontenvironment"]={
+ ["cs"]="definujprostredizakladnihofontu",
+ ["de"]="definierefliesstextumgebung",
+ ["en"]="definebodyfontenvironment",
+ ["fr"]="definitenvironnementpolicecorps",
+ ["it"]="definisciambientefontdeltesto",
+ ["nl"]="definieerkorpsomgeving",
+ ["pe"]="تعریف‌محیط‌قلم‌بدنه",
+ ["ro"]="definestemediulfonttext",
+ },
+ ["definebuffer"]={
+ ["cs"]="definujbuffer",
+ ["de"]="definierepuffer",
+ ["en"]="definebuffer",
+ ["fr"]="definitbuffer",
+ ["it"]="definiscibuffer",
+ ["nl"]="definieerbuffer",
+ ["pe"]="تعریف‌بافر",
+ ["ro"]="definestebuffer",
+ },
+ ["definecharacter"]={
+ ["cs"]="definujznak",
+ ["de"]="definierezeichen",
+ ["en"]="definecharacter",
+ ["fr"]="definicaractere",
+ ["it"]="definiscicarattere",
+ ["nl"]="definieerkarakter",
+ ["pe"]="تعریف‌حرف",
+ ["ro"]="definestecaracter",
+ },
+ ["definecolor"]={
+ ["cs"]="definujbarvu",
+ ["de"]="definierefarbe",
+ ["en"]="definecolor",
+ ["fr"]="definitcouleur",
+ ["it"]="definiscicolore",
+ ["nl"]="definieerkleur",
+ ["pe"]="تعریف‌رنگ",
+ ["ro"]="definesteculoare",
+ },
+ ["definecolorgroup"]={
+ ["cs"]="definujskupinubarev",
+ ["de"]="definierefarbengruppe",
+ ["en"]="definecolorgroup",
+ ["fr"]="definitgroupecouleur",
+ ["it"]="definiscigruppocolori",
+ ["nl"]="definieerkleurgroep",
+ ["pe"]="تعریف‌گروه‌رنگ",
+ ["ro"]="definestegrupculori",
+ },
+ ["definecolumnbreak"]={
+ ["cs"]="definecolumnbreak",
+ ["de"]="definecolumnbreak",
+ ["en"]="definecolumnbreak",
+ ["fr"]="definitsautdecolonne",
+ ["it"]="definecolumnbreak",
+ ["nl"]="definieerkolomovergang",
+ ["pe"]="تعریف‌شکستن‌ستون",
+ ["ro"]="definecolumnbreak",
+ },
+ ["definecolumnset"]={
+ ["cs"]="definecolumnset",
+ ["de"]="definecolumnset",
+ ["en"]="definecolumnset",
+ ["fr"]="definitjeucolonne",
+ ["it"]="definiscigruppocolonne",
+ ["nl"]="definieerkolomgroep",
+ ["pe"]="تعریف‌مجموعه‌ستون",
+ ["ro"]="definecolumnset",
+ },
+ ["definecombination"]={
+ ["cs"]="definecombination",
+ ["de"]="definecombination",
+ ["en"]="definecombination",
+ ["fr"]="definecombination",
+ ["it"]="definecombination",
+ ["nl"]="definieercombinatie",
+ ["pe"]="تعریف‌ترکیب",
+ ["ro"]="definecombination",
+ },
+ ["definecombinedlist"]={
+ ["cs"]="definujkombinovanyseznam",
+ ["de"]="definierezusammengestellteliste",
+ ["en"]="definecombinedlist",
+ ["fr"]="definitlisteimbriquee",
+ ["it"]="definiscielencocombinato",
+ ["nl"]="definieersamengesteldelijst",
+ ["pe"]="تعریف‌لیست‌ترکیبی",
+ ["ro"]="definestelistacombinata",
+ },
+ ["definecommand"]={
+ ["cs"]="definujprikaz",
+ ["de"]="definierebefehl",
+ ["en"]="definecommand",
+ ["fr"]="definitcommande",
+ ["it"]="definiscicomando",
+ ["nl"]="definieercommando",
+ ["pe"]="تعریف‌فرمان",
+ ["ro"]="definestecomanda",
+ },
+ ["defineconversion"]={
+ ["cs"]="definujkonverzi",
+ ["de"]="definierekonversion",
+ ["en"]="defineconversion",
+ ["fr"]="definitconversion",
+ ["it"]="definisciconversione",
+ ["nl"]="definieerconversie",
+ ["pe"]="تعریف‌تبدیل",
+ ["ro"]="definesteconversie",
+ },
+ ["definedescription"]={
+ ["cs"]="definujpopis",
+ ["de"]="definierebeschreibung",
+ ["en"]="definedescription",
+ ["fr"]="definitdescription",
+ ["it"]="definiscidescrizione",
+ ["nl"]="doordefinieren",
+ ["pe"]="تعریف‌شرح",
+ ["ro"]="definestedescriere",
+ },
+ ["defineenumeration"]={
+ ["cs"]="definujvycet",
+ ["de"]="definierenummerierung",
+ ["en"]="defineenumeration",
+ ["fr"]="definitenumeration",
+ ["it"]="definiscienumerazione",
+ ["nl"]="doornummeren",
+ ["pe"]="تعریف‌شماره‌بندی",
+ ["ro"]="definesteenumerare",
+ },
+ ["definefield"]={
+ ["cs"]="definujpole",
+ ["de"]="definierefeld",
+ ["en"]="definefield",
+ ["fr"]="definitchamp",
+ ["it"]="definiscicampo",
+ ["nl"]="definieerveld",
+ ["pe"]="تعریف‌میدان",
+ ["ro"]="definestecamp",
+ },
+ ["definefieldstack"]={
+ ["cs"]="definujzasobnikpoli",
+ ["de"]="definierefeldstapel",
+ ["en"]="definefieldstack",
+ ["fr"]="definitpilechamp",
+ ["it"]="definiscistackcampi",
+ ["nl"]="definieerveldstapel",
+ ["pe"]="تعریف‌توده‌میدان",
+ ["ro"]="definestestivacampuri",
+ },
+ ["definefiguresymbol"]={
+ ["cs"]="definujobrazeksymbol",
+ ["de"]="definiereabbsymbol",
+ ["en"]="definefiguresymbol",
+ ["fr"]="definitsymbolefigure",
+ ["it"]="definiscifigurasimbolo",
+ ["nl"]="definieerfiguursymbool",
+ ["pe"]="تعریف‌نمادشکل",
+ ["ro"]="definestesimbolfigura",
+ },
+ ["definefloat"]={
+ ["cs"]="definujplvouciobjekt",
+ ["de"]="definieregleitobjekt",
+ ["en"]="definefloat",
+ ["fr"]="definitflottant",
+ ["it"]="definiscioggettomobile",
+ ["nl"]="definieerplaatsblok",
+ ["pe"]="تعریف‌شناور",
+ ["ro"]="definestefloat",
+ },
+ ["definefont"]={
+ ["cs"]="definujfont",
+ ["de"]="definiereschrift",
+ ["en"]="definefont",
+ ["fr"]="definitpolice",
+ ["it"]="definiscifont",
+ ["nl"]="definieerfont",
+ ["pe"]="تعریف‌قلم",
+ ["ro"]="definestefont",
+ },
+ ["definefontstyle"]={
+ ["cs"]="definujstylfontu",
+ ["de"]="definiereschriftstil",
+ ["en"]="definefontstyle",
+ ["fr"]="definitstylepolice",
+ ["it"]="definiscistilefont",
+ ["nl"]="definieerfontstijl",
+ ["pe"]="تعریف‌سبک‌قلم",
+ ["ro"]="definestestilfont",
+ },
+ ["definefontsynonym"]={
+ ["cs"]="definujsynonumumfontu",
+ ["de"]="defineschriftsynonym",
+ ["en"]="definefontsynonym",
+ ["fr"]="definitsynonymepolice",
+ ["it"]="definiscisinonimofont",
+ ["nl"]="definieerfontsynoniem",
+ ["pe"]="تعریف‌مترادف‌قلم",
+ ["ro"]="definestesinonimfont",
+ },
+ ["defineframed"]={
+ ["cs"]="definujoramovani",
+ ["de"]="definiereumrahmt",
+ ["en"]="defineframed",
+ ["fr"]="defineframed",
+ ["it"]="definisciincorniciato",
+ ["nl"]="definieeromlijnd",
+ ["pe"]="تعریف‌قالبی",
+ ["ro"]="definesteinconjurare",
+ },
+ ["defineframedtext"]={
+ ["cs"]="definujoramovanytext",
+ ["de"]="definiereumrahmtertext",
+ ["en"]="defineframedtext",
+ ["fr"]="defineframedtext",
+ ["it"]="definiscitestoincorniciato",
+ ["nl"]="definieerkadertekst",
+ ["pe"]="تعریف‌متن‌قالبی",
+ ["ro"]="definestetextinconjurat",
+ },
+ ["definehbox"]={
+ ["cs"]="definujhbox",
+ ["de"]="definierehbox",
+ ["en"]="definehbox",
+ ["fr"]="definithbox",
+ ["it"]="definiscihbox",
+ ["nl"]="definieerhbox",
+ ["pe"]="تعریف‌جعبه‌‌افقی",
+ ["ro"]="definestehbox",
+ },
+ ["definehead"]={
+ ["cs"]="definujnadpis",
+ ["de"]="definiereueberschrift",
+ ["en"]="definehead",
+ ["fr"]="definittete",
+ ["it"]="definiscitesta",
+ ["nl"]="definieerkop",
+ ["pe"]="تعریف‌سر",
+ ["ro"]="definesteantet",
+ },
+ ["defineindenting"]={
+ ["cs"]="definujodsazovani",
+ ["de"]="definiereeinzug",
+ ["en"]="defineindenting",
+ ["fr"]="definitcompoalinea",
+ ["it"]="definiscirientro",
+ ["nl"]="doorspringen",
+ ["pe"]="تعریف‌تورفتگی",
+ ["ro"]="definestealiat",
+ },
+ ["defineinmargin"]={
+ ["cs"]="defineinmargin",
+ ["de"]="defineinmargin",
+ ["en"]="defineinmargin",
+ ["fr"]="definitdansmarge",
+ ["it"]="defineinmargin",
+ ["nl"]="definieerinmarge",
+ ["pe"]="تعریف‌درون‌حاشیه",
+ ["ro"]="defineinmargin",
+ },
+ ["defineinteractionmenu"]={
+ ["cs"]="definujinterakcnimenu",
+ ["de"]="definiereinteraktionsmenue",
+ ["en"]="defineinteractionmenu",
+ ["fr"]="definitmenuinteraction",
+ ["it"]="definiscimenuinterazione",
+ ["nl"]="definieerinteractiemenu",
+ ["pe"]="تعریف‌منوی‌پانل",
+ ["ro"]="definestemeniuinteractiune",
+ },
+ ["defineitemgroup"]={
+ ["cs"]="defineitemgroup",
+ ["de"]="defineitemgroup",
+ ["en"]="defineitemgroup",
+ ["fr"]="defineitemgroup",
+ ["it"]="defineitemgroup",
+ ["nl"]="definieeritemgroep",
+ ["pe"]="تعریف‌گروه‌آیتم",
+ ["ro"]="defineitemgroup",
+ },
+ ["definelabel"]={
+ ["cs"]="definujpopisek",
+ ["de"]="definierelabel",
+ ["en"]="definelabel",
+ ["fr"]="definitetiquette",
+ ["it"]="definiscietichetta",
+ ["nl"]="doorlabelen",
+ ["pe"]="تعریف‌برچسب",
+ ["ro"]="definesteeticheta",
+ },
+ ["definelayer"]={
+ ["cs"]="definelayer",
+ ["de"]="definelayer",
+ ["en"]="definelayer",
+ ["fr"]="definitcalque",
+ ["it"]="definelayer",
+ ["nl"]="definieerlayer",
+ ["pe"]="تعریف‌لایه",
+ ["ro"]="definelayer",
+ },
+ ["definelayout"]={
+ ["cs"]="definelayout",
+ ["de"]="definelayout",
+ ["en"]="definelayout",
+ ["fr"]="definitdisposition",
+ ["it"]="definiscilayout",
+ ["nl"]="definieerlayout",
+ ["pe"]="تعریف‌طرح‌بندی",
+ ["ro"]="definelayout",
+ },
+ ["definelist"]={
+ ["cs"]="definujseznam",
+ ["de"]="definiereliste",
+ ["en"]="definelist",
+ ["fr"]="definitliste",
+ ["it"]="definiscielenco",
+ ["nl"]="definieerlijst",
+ ["pe"]="تعریف‌لیست",
+ ["ro"]="definestelista",
+ },
+ ["definelogo"]={
+ ["cs"]="definujlogo",
+ ["de"]="definierelogo",
+ ["en"]="definelogo",
+ ["fr"]="definitlogo",
+ ["it"]="definiscilogo",
+ ["nl"]="definieerbeeldmerk",
+ ["pe"]="تعریف‌آرم",
+ ["ro"]="definestelogo",
+ },
+ ["definemainfield"]={
+ ["cs"]="definujhlavnipole",
+ ["de"]="definierehauptfeld",
+ ["en"]="definemainfield",
+ ["fr"]="definitchampprincipal",
+ ["it"]="definiscicampoprincipale",
+ ["nl"]="definieerhoofdveld",
+ ["pe"]="تعریف‌میدان‌اصلی",
+ ["ro"]="definestecampprincipal",
+ },
+ ["definemakeup"]={
+ ["cs"]="definujupravu",
+ ["de"]="definiereumbruch",
+ ["en"]="definemakeup",
+ ["fr"]="definitmakeup",
+ ["it"]="definiscimakeup",
+ ["nl"]="definieeropmaak",
+ ["pe"]="تعریف‌آرایش",
+ ["ro"]="definestemakeup",
+ },
+ ["definemarking"]={
+ ["cs"]="definujznaceni",
+ ["de"]="definierebeschriftung",
+ ["en"]="definemarking",
+ ["fr"]="definitmarquage",
+ ["it"]="definiscimarcatura",
+ ["nl"]="definieermarkering",
+ ["pe"]="تعریف‌نشانه‌گذاری",
+ ["ro"]="definestemarcaje",
+ },
+ ["definemathalignment"]={
+ ["cs"]="definemathalignment",
+ ["de"]="definemathalignment",
+ ["en"]="definemathalignment",
+ ["fr"]="definemathalignment",
+ ["it"]="definemathalignment",
+ ["nl"]="definieerwiskundeuitlijnen",
+ ["pe"]="تعریف‌تنظیم‌ریاضی",
+ ["ro"]="definemathalignment",
+ },
+ ["defineoutput"]={
+ ["cs"]="definujvystup",
+ ["de"]="defineoutput",
+ ["en"]="defineoutput",
+ ["fr"]="definitsortie",
+ ["it"]="definiscioutput",
+ ["nl"]="definieeruitvoer",
+ ["pe"]="تعریف‌خروجی",
+ ["ro"]="definesteoutput",
+ },
+ ["defineoverlay"]={
+ ["cs"]="definujprekryv",
+ ["de"]="definiereoverlay",
+ ["en"]="defineoverlay",
+ ["fr"]="definitrevetement",
+ ["it"]="definiscisovrapposizione",
+ ["nl"]="definieeroverlay",
+ ["pe"]="تعریف‌پوشش",
+ ["ro"]="definesteoverlay",
+ },
+ ["definepagebreak"]={
+ ["cs"]="definepagebreak",
+ ["de"]="definepagebreak",
+ ["en"]="definepagebreak",
+ ["fr"]="definitsautdepage",
+ ["it"]="definepagebreak",
+ ["nl"]="definieerpaginaovergang",
+ ["pe"]="تعریف‌شکست‌صفحه",
+ ["ro"]="definepagebreak",
+ },
+ ["definepalet"]={
+ ["cs"]="definujpaletu",
+ ["de"]="definierepalette",
+ ["en"]="definepalet",
+ ["fr"]="definitpalette",
+ ["it"]="definiscitavolozza",
+ ["nl"]="definieerpalet",
+ ["pe"]="تعریف‌لوح",
+ ["ro"]="definestepaleta",
+ },
+ ["definepapersize"]={
+ ["cs"]="definujvelikostpapiru",
+ ["de"]="definierepapierformat",
+ ["en"]="definepapersize",
+ ["fr"]="definittaillepapier",
+ ["it"]="definiscidimensionicarta",
+ ["nl"]="definieerpapierformaat",
+ ["pe"]="تعریف‌اندازه‌برگ",
+ ["ro"]="definestedimensiunehartie",
+ },
+ ["defineparagraphs"]={
+ ["cs"]="definujodstavce",
+ ["de"]="definiereabsaetze",
+ ["en"]="defineparagraphs",
+ ["fr"]="definitparagraphes",
+ ["it"]="definiscicapoversi",
+ ["nl"]="definieeralineas",
+ ["pe"]="تعریف‌پاراگرافها",
+ ["ro"]="definesteparagraf",
+ },
+ ["defineplacement"]={
+ ["cs"]="defineplacement",
+ ["de"]="defineplacement",
+ ["en"]="defineplacement",
+ ["fr"]="defineplacement",
+ ["it"]="defineplacement",
+ ["nl"]="definieerplaats",
+ ["pe"]="تعریف‌جانشانی",
+ ["ro"]="defineplacement",
+ },
+ ["defineprofile"]={
+ ["cs"]="definujprofil",
+ ["de"]="definiereprofil",
+ ["en"]="defineprofile",
+ ["fr"]="definitprofil",
+ ["it"]="definisciprofilo",
+ ["nl"]="definieerprofiel",
+ ["pe"]="تعریف‌پروفایل",
+ ["ro"]="definesteprofil",
+ },
+ ["defineprogram"]={
+ ["cs"]="definujprogram",
+ ["de"]="definiereprogramme",
+ ["en"]="defineprogram",
+ ["fr"]="definitprogramme",
+ ["it"]="definisciprogramma",
+ ["nl"]="definieerprogramma",
+ ["pe"]="تعریف‌برنامه",
+ ["ro"]="definesteprogram",
+ },
+ ["definerawfont"]={
+ ["cs"]="definerawfont",
+ ["de"]="definerawfont",
+ ["en"]="definerawfont",
+ ["fr"]="definitpolicebrute",
+ ["it"]="definiscifontgrezzo",
+ ["nl"]="definerawfont",
+ ["pe"]="تعریف‌قلم‌خام",
+ ["ro"]="definestefontraw",
+ },
+ ["definereference"]={
+ ["cs"]="definujodkaz",
+ ["de"]="definierereferenz",
+ ["en"]="definereference",
+ ["fr"]="definitreference",
+ ["it"]="definisciriferimento",
+ ["nl"]="definieerreferentie",
+ ["pe"]="تعریف‌مرجع",
+ ["ro"]="definestereferinte",
+ },
+ ["definereferenceformat"]={
+ ["cs"]="definujformatodkazu",
+ ["de"]="definierereferenzformat",
+ ["en"]="definereferenceformat",
+ ["fr"]="definitformatreference",
+ ["it"]="definisciformatoriferimento",
+ ["nl"]="definieerreferentieformaat",
+ ["pe"]="تعریف‌شمایل‌مرجع",
+ ["ro"]="definesteformatreferinte",
+ },
+ ["definereferencelist"]={
+ ["cs"]="definujseznamodkazu",
+ ["de"]="definierereferenzliste",
+ ["en"]="definereferencelist",
+ ["fr"]="definitlistereference",
+ ["it"]="definiscilistariferimenti",
+ ["nl"]="definieerreferentielijst",
+ ["pe"]="تعریف‌لیست‌مرجع",
+ ["ro"]="definestelistareferinte",
+ },
+ ["defineregister"]={
+ ["cs"]="definujrejstrik",
+ ["de"]="definiereregister",
+ ["en"]="defineregister",
+ ["fr"]="definitregistre",
+ ["it"]="definisciregistro",
+ ["nl"]="definieerregister",
+ ["pe"]="تعریف‌ثبت",
+ ["ro"]="definesteregistru",
+ },
+ ["definerule"]={
+ ["cs"]="definerule",
+ ["de"]="definerule",
+ ["en"]="definerule",
+ ["fr"]="definitregle",
+ ["it"]="definiscilinea",
+ ["nl"]="definieerlijn",
+ ["pe"]="تعریف‌خط‌حائل",
+ ["ro"]="definesterigla",
+ },
+ ["definesection"]={
+ ["cs"]="definujsekci",
+ ["de"]="definiereabschnitt",
+ ["en"]="definesection",
+ ["fr"]="definitsection",
+ ["it"]="definiscisezione",
+ ["nl"]="definieersectie",
+ ["pe"]="تعریف‌بخش",
+ ["ro"]="definestesectiune",
+ },
+ ["definesectionblock"]={
+ ["cs"]="definujbloksekce",
+ ["de"]="definiereabschnittsblock",
+ ["en"]="definesectionblock",
+ ["fr"]="definitblocsection",
+ ["it"]="definiscibloccosezione",
+ ["nl"]="definieersectieblok",
+ ["pe"]="تعریف‌بلوک‌بخش",
+ ["ro"]="definesteblocsectiune",
+ },
+ ["definesorting"]={
+ ["cs"]="definujtrideni",
+ ["de"]="definieresortieren",
+ ["en"]="definesorting",
+ ["fr"]="definittri",
+ ["it"]="definisciordinamento",
+ ["nl"]="definieersorteren",
+ ["pe"]="تعریف‌ترتیب",
+ ["ro"]="definestesortare",
+ },
+ ["definestartstop"]={
+ ["cs"]="definujstartstop",
+ ["de"]="definierestartstop",
+ ["en"]="definestartstop",
+ ["fr"]="definitdemarrestoppe",
+ ["it"]="definisciiniziatermina",
+ ["nl"]="definieerstartstop",
+ ["pe"]="تعریف‌شروع‌پایان",
+ ["ro"]="definestestartstop",
+ },
+ ["definestyle"]={
+ ["cs"]="definujstyl",
+ ["de"]="definierestil",
+ ["en"]="definestyle",
+ ["fr"]="definitstyle",
+ ["it"]="definiscistile",
+ ["nl"]="definieerletter",
+ ["pe"]="تعریف‌سبک",
+ ["ro"]="definestestil",
+ },
+ ["definesubfield"]={
+ ["cs"]="definujpodpole",
+ ["de"]="definieresubfeld",
+ ["en"]="definesubfield",
+ ["fr"]="definitsouschamp",
+ ["it"]="definiscisottocampo",
+ ["nl"]="definieersubveld",
+ ["pe"]="تعریف‌زیرمیدان",
+ ["ro"]="definestesubcamp",
+ },
+ ["definesymbol"]={
+ ["cs"]="definujsymbol",
+ ["de"]="definieresymbol",
+ ["en"]="definesymbol",
+ ["fr"]="definitsymbole",
+ ["it"]="definiscisimbolo",
+ ["nl"]="definieersymbool",
+ ["pe"]="تعریف‌نماد",
+ ["ro"]="definestesimbol",
+ },
+ ["definesynonyms"]={
+ ["cs"]="definujsynonyma",
+ ["de"]="definieresynonyme",
+ ["en"]="definesynonyms",
+ ["fr"]="definitsynonymes",
+ ["it"]="definiscisinonimi",
+ ["nl"]="definieersynoniemen",
+ ["pe"]="تعریف‌مترادفها",
+ ["ro"]="definestesinonim",
+ },
+ ["definetabletemplate"]={
+ ["cs"]="definujsablonutabulky",
+ ["de"]="definieretabellenvorlage",
+ ["en"]="definetabletemplate",
+ ["fr"]="definittrametableau",
+ ["it"]="definiscimodellotabella",
+ ["nl"]="definieertabelvorm",
+ ["pe"]="تعریف‌الگوی‌جدول",
+ ["ro"]="definestesablontabel",
+ },
+ ["definetabulate"]={
+ ["cs"]="definujtabelaci",
+ ["de"]="definieretabulator",
+ ["en"]="definetabulate",
+ ["fr"]="definittabulation",
+ ["it"]="definiscitabulato",
+ ["nl"]="definieertabulatie",
+ ["pe"]="تعریف‌جدول‌بندی",
+ ["ro"]="definestetabulatori",
+ },
+ ["definetext"]={
+ ["cs"]="definujtext",
+ ["de"]="definieretext",
+ ["en"]="definetext",
+ ["fr"]="definittexte",
+ ["it"]="definiscitesto",
+ ["nl"]="definieertekst",
+ ["pe"]="تعریف‌متن",
+ ["ro"]="definestetext",
+ },
+ ["definetextposition"]={
+ ["cs"]="definetextposition",
+ ["de"]="definetextposition",
+ ["en"]="definetextposition",
+ ["fr"]="definitpositiontexte",
+ ["it"]="definisciposizionetesto",
+ ["nl"]="definieertekstpositie",
+ ["pe"]="تعریف‌مکان‌متن",
+ ["ro"]="definestepozitietext",
+ },
+ ["definetextvariable"]={
+ ["cs"]="definetextvariable",
+ ["de"]="definetextvariable",
+ ["en"]="definetextvariable",
+ ["fr"]="definitvariabletexte",
+ ["it"]="definiscivariabiletesto",
+ ["nl"]="definieertekstvariabele",
+ ["pe"]="تعریف‌متغیرمتن",
+ ["ro"]="definestevariabilatext",
+ },
+ ["definetype"]={
+ ["cs"]="definetype",
+ ["de"]="definetype",
+ ["en"]="definetype",
+ ["fr"]="definittype",
+ ["it"]="definiscitype",
+ ["nl"]="definieertype",
+ ["pe"]="تعریف‌تایپ",
+ ["ro"]="definetype",
+ },
+ ["definetyping"]={
+ ["cs"]="definujopis",
+ ["de"]="definieretippen",
+ ["en"]="definetyping",
+ ["fr"]="definitdactylo",
+ ["it"]="definiscityping",
+ ["nl"]="definieertypen",
+ ["pe"]="تعریف‌تایپ‌کردن",
+ ["ro"]="definestetyping",
+ },
+ ["defineversion"]={
+ ["cs"]="definujverzi",
+ ["de"]="definiereversion",
+ ["en"]="defineversion",
+ ["fr"]="definitversion",
+ ["it"]="definisciversion",
+ ["nl"]="definieerversie",
+ ["pe"]="تعریف‌نسخه",
+ ["ro"]="definesteversiune",
+ },
+ ["determineheadnumber"]={
+ ["cs"]="stanovcislonadpisu",
+ ["de"]="bestimmekopfnummer",
+ ["en"]="determineheadnumber",
+ ["fr"]="determinenumerotete",
+ ["it"]="determinanumerotesta",
+ ["nl"]="bepaalkopnummer",
+ ["pe"]="تعیین‌شماره‌سر",
+ ["ro"]="determinanumartitlu",
+ },
+ ["determinelistcharacteristics"]={
+ ["cs"]="stanovcharakteristickuseznamu",
+ ["de"]="bestimmelistencharakeristika",
+ ["en"]="determinelistcharacteristics",
+ ["fr"]="determinecaracteristiqueliste",
+ ["it"]="determinacarattersticheelenco",
+ ["nl"]="bepaallijstkenmerken",
+ ["pe"]="تعیین‌مشخصات‌لیست",
+ ["ro"]="determinacaracteristicilelistei",
+ },
+ ["determineregistercharacteristics"]={
+ ["cs"]="urcicharakteristikurejstriku",
+ ["de"]="bestimmeregistercharakteristika",
+ ["en"]="determineregistercharacteristics",
+ ["fr"]="determinecaracteristiquesregistre",
+ ["it"]="determinacaratteristicheregistro",
+ ["nl"]="bepaalregisterkenmerken",
+ ["pe"]="تعیین‌مشخصات‌ثبت",
+ ["ro"]="determinacaracteristiciregistru",
+ },
+ ["dimension"]={
+ ["cs"]="rozmer",
+ ["de"]="dimension",
+ ["en"]="dimension",
+ ["fr"]="dimension",
+ ["it"]="dimensione",
+ ["nl"]="dimensie",
+ ["pe"]="بعد",
+ ["ro"]="dimensiune",
+ },
+ ["disableinteractionmenu"]={
+ ["cs"]="zablokujinterakcnimenu",
+ ["de"]="inaktiviereinteraktionsmenue",
+ ["en"]="disableinteractionmenu",
+ ["fr"]="inhibemenuinteraction",
+ ["it"]="disabilitamenuinterazione",
+ ["nl"]="blokkeerinteractiemenu",
+ ["pe"]="ازکارانداختن‌منوی‌پانل",
+ ["ro"]="dezactiveazameniuinteractiune",
+ },
+ ["domicile"]={
+ ["cs"]="bydliste",
+ ["de"]="wohnort",
+ ["en"]="domicile",
+ ["fr"]="domicile",
+ ["it"]="domicilio",
+ ["nl"]="woonplaats",
+ ["pe"]="مسکن",
+ ["ro"]="domiciliu",
+ },
+ ["donttest"]={
+ ["cs"]="zadnytest",
+ ["de"]="keintest",
+ ["en"]="donttest",
+ ["fr"]="sanstest",
+ ["it"]="notest",
+ ["nl"]="geentest",
+ ["pe"]="امتحان‌نکن",
+ ["ro"]="nutesta",
+ },
+ ["edgedistance"]={
+ ["cs"]="vzdalenostokraje",
+ ["de"]="randabstand",
+ ["en"]="edgedistance",
+ ["fr"]="distancebord",
+ ["it"]="distanzabordo",
+ ["nl"]="randafstand",
+ ["pe"]="فاصله‌لبه",
+ ["ro"]="distantacolt",
+ },
+ ["edgewidth"]={
+ ["cs"]="sirkaokraje",
+ ["de"]="randbreite",
+ ["en"]="edgewidth",
+ ["fr"]="largeurbord",
+ ["it"]="ampiezzabordo",
+ ["nl"]="randbreedte",
+ ["pe"]="عرض‌لبه",
+ ["ro"]="latimecolturi",
+ },
+ ["emptylines"]={
+ ["cs"]="emptylines",
+ ["de"]="emptylines",
+ ["en"]="emptylines",
+ ["fr"]="emptylines",
+ ["it"]="emptylines",
+ ["nl"]="legeregels",
+ ["pe"]="خطها‌خالی",
+ ["ro"]="emptylines",
+ },
+ ["environment"]={
+ ["cs"]="prostredi",
+ ["de"]="umgebung",
+ ["en"]="environment",
+ ["fr"]="environement",
+ ["it"]="ambiente",
+ ["nl"]="omgeving",
+ ["pe"]="محیط",
+ ["ro"]="mediu",
+ },
+ ["externalfigure"]={
+ ["cs"]="externiobraz",
+ ["de"]="externeabbildung",
+ ["en"]="externalfigure",
+ ["fr"]="figureexterne",
+ ["it"]="figuraesterna",
+ ["nl"]="externfiguur",
+ ["pe"]="شکل‌خارجی",
+ ["ro"]="figuraexterna",
+ },
+ ["fact"]={
+ ["cs"]="fakt",
+ ["de"]="geg",
+ ["en"]="fact",
+ ["fr"]="fait",
+ ["it"]="fatto",
+ ["nl"]="geg",
+ ["pe"]="حقیقت",
+ ["ro"]="fact",
+ },
+ ["field"]={
+ ["cs"]="pole",
+ ["de"]="feld",
+ ["en"]="field",
+ ["fr"]="champ",
+ ["it"]="campi",
+ ["nl"]="veld",
+ ["pe"]="میدان",
+ ["ro"]="camp",
+ },
+ ["fieldstack"]={
+ ["cs"]="zasobnikpoli",
+ ["de"]="feldstapel",
+ ["en"]="fieldstack",
+ ["fr"]="pilechamp",
+ ["it"]="stackcampi",
+ ["nl"]="veldstapel",
+ ["pe"]="میدان‌پشته",
+ ["ro"]="stivacampuri",
+ },
+ ["fillinfield"]={
+ ["cs"]="vyplnovepole",
+ ["de"]="ausfuellfeld",
+ ["en"]="fillinfield",
+ ["fr"]="remplitchamp",
+ ["it"]="camporiempimento",
+ ["nl"]="invulveld",
+ ["pe"]="درج‌درمیدان",
+ ["ro"]="campumplere",
+ },
+ ["fillinline"]={
+ ["cs"]="vyplnovyradek",
+ ["de"]="gefuelltezeile",
+ ["en"]="fillinline",
+ ["fr"]="remplitligne",
+ ["it"]="rigariempimento",
+ ["nl"]="invulregel",
+ ["pe"]="درج‌درخط",
+ ["ro"]="linieumplere",
+ },
+ ["fillinrules"]={
+ ["cs"]="vyplnovelinky",
+ ["de"]="gefuelltesrechteck",
+ ["en"]="fillinrules",
+ ["fr"]="remplitlignesreglees",
+ ["it"]="lineeriempimento",
+ ["nl"]="invullijnen",
+ ["pe"]="درج‌درخطها",
+ ["ro"]="rigleumplere",
+ },
+ ["fillintext"]={
+ ["cs"]="vyplnenytext",
+ ["de"]="ausfuelltext",
+ ["en"]="fillintext",
+ ["fr"]="remplittexte",
+ ["it"]="testoriempimento",
+ ["nl"]="invultekst",
+ ["pe"]="درج‌درمتن",
+ ["ro"]="textumplere",
+ },
+ ["fitfield"]={
+ ["cs"]="prizpusobivepole",
+ ["de"]="passendfeld",
+ ["en"]="fitfield",
+ ["fr"]="ajustechamp",
+ ["it"]="adattacampo",
+ ["nl"]="passendveld",
+ ["pe"]="پرکردن‌میدان",
+ ["ro"]="potrivestecamp",
+ },
+ ["fixedspace"]={
+ ["cs"]="tvrdamezera",
+ ["de"]="festesspatium",
+ ["en"]="fixedspace",
+ ["fr"]="espacefixe",
+ ["it"]="spaziofisso",
+ ["nl"]="vastespatie",
+ ["pe"]="فضای‌ثابت",
+ ["ro"]="spatiufixat",
+ },
+ ["fixedspaces"]={
+ ["cs"]="tvrdemezery",
+ ["de"]="festesspatium",
+ ["en"]="fixedspaces",
+ ["fr"]="espacesfixes",
+ ["it"]="spazifissi",
+ ["nl"]="vastespaties",
+ ["pe"]="فضاهای‌ثابت",
+ ["ro"]="spatiifixate",
+ },
+ ["followprofile"]={
+ ["cs"]="dodrzujprofil",
+ ["de"]="folgeprofil",
+ ["en"]="followprofile",
+ ["fr"]="suivantprofil",
+ ["it"]="seguiprofilo",
+ ["nl"]="volgprofiel",
+ ["pe"]="پیروی‌پروفایل",
+ ["ro"]="urmeazaprofil",
+ },
+ ["followprofileversion"]={
+ ["cs"]="dodrzujverziprofilu",
+ ["de"]="folgeprofilversion",
+ ["en"]="followprofileversion",
+ ["fr"]="suivantversionprofil",
+ ["it"]="seguiversioneprofilo",
+ ["nl"]="volgprofielversie",
+ ["pe"]="پیروی‌نسخه‌پروفایل",
+ ["ro"]="urmeazaversiuneprofil",
+ },
+ ["followversion"]={
+ ["cs"]="dodrzujverzi",
+ ["de"]="folgeversion",
+ ["en"]="followversion",
+ ["fr"]="suivantversion",
+ ["it"]="seguiversione",
+ ["nl"]="volgversie",
+ ["pe"]="پیروی‌نسخه",
+ ["ro"]="urmeazaversiune",
+ },
+ ["footerdistance"]={
+ ["cs"]="vzdalenostupati",
+ ["de"]="fusszeileabstand",
+ ["en"]="footerdistance",
+ ["fr"]="distancepdp",
+ ["it"]="distanzapdp",
+ ["nl"]="voetafstand",
+ ["pe"]="فاصله‌ته‌برگ",
+ ["ro"]="distantasubsol",
+ },
+ ["footerheight"]={
+ ["cs"]="vyskaupati",
+ ["de"]="fusszeilenhoehe",
+ ["en"]="footerheight",
+ ["fr"]="hauteurpdp",
+ ["it"]="altezzapdp",
+ ["nl"]="voethoogte",
+ ["pe"]="ارتفاع‌ته‌برگ",
+ ["ro"]="inaltimesubsol",
+ },
+ ["footnote"]={
+ ["cs"]="poznamkapodcarou",
+ ["de"]="fussnote",
+ ["en"]="footnote",
+ ["fr"]="notepdp",
+ ["it"]="notapdp",
+ ["nl"]="voetnoot",
+ ["pe"]="پانوشت",
+ ["ro"]="notasubsol",
+ },
+ ["footnotetext"]={
+ ["cs"]="footnotetext",
+ ["de"]="footnotetext",
+ ["en"]="footnotetext",
+ ["fr"]="textenotepdp",
+ ["it"]="testonotapdp",
+ ["nl"]="voetnoottekst",
+ ["pe"]="متن‌پانوشت",
+ ["ro"]="footnotetext",
+ },
+ ["forceblocks"]={
+ ["cs"]="forceblocks",
+ ["de"]="forceblocks",
+ ["en"]="forceblocks",
+ ["fr"]="forceblocs",
+ ["it"]="forzablocchi",
+ ["nl"]="forceerblokken",
+ ["pe"]="اجباربلوکها",
+ ["ro"]="forteazablocuri",
+ },
+ ["formulanumber"]={
+ ["cs"]="cislorovnice",
+ ["de"]="formelnummer",
+ ["en"]="formulanumber",
+ ["fr"]="numeroformule",
+ ["it"]="numeroformula",
+ ["nl"]="formulenummer",
+ ["pe"]="شماره‌فرمول",
+ ["ro"]="numarformula",
+ },
+ ["fraction"]={
+ ["cs"]="zlomek",
+ ["de"]="bruch",
+ ["en"]="fraction",
+ ["fr"]="fraction",
+ ["it"]="frazione",
+ ["nl"]="breuk",
+ ["pe"]="کسر",
+ ["ro"]="fractie",
+ },
+ ["framed"]={
+ ["cs"]="oramovani",
+ ["de"]="umrahmt",
+ ["en"]="framed",
+ ["fr"]="framed",
+ ["it"]="incorniciato",
+ ["nl"]="omlijnd",
+ ["pe"]="قالبی",
+ ["ro"]="framed",
+ },
+ ["from"]={
+ ["cs"]="zref",
+ ["de"]="von",
+ ["en"]="from",
+ ["fr"]="de",
+ ["it"]="da",
+ ["nl"]="uit",
+ ["pe"]="از",
+ ["ro"]="din",
+ },
+ ["getbuffer"]={
+ ["cs"]="ziskejbuffer",
+ ["de"]="holepuffer",
+ ["en"]="getbuffer",
+ ["fr"]="prendbuffer",
+ ["it"]="prendibuffer",
+ ["nl"]="haalbuffer",
+ ["pe"]="دریافت‌بافر",
+ ["ro"]="adubuffer",
+ },
+ ["getmarking"]={
+ ["cs"]="ziskejznaceni",
+ ["de"]="holebeschriftung",
+ ["en"]="getmarking",
+ ["fr"]="obtientmarquage",
+ ["it"]="prendimarcatura",
+ ["nl"]="haalmarkering",
+ ["pe"]="دریافت‌نشانه",
+ ["ro"]="adumarcaje",
+ },
+ ["getnumber"]={
+ ["cs"]="getnumber",
+ ["de"]="getnumber",
+ ["en"]="getnumber",
+ ["fr"]="getnumber",
+ ["it"]="getnumber",
+ ["nl"]="haalnummer",
+ ["pe"]="دریافت‌شماره",
+ ["ro"]="getnumber",
+ },
+ ["godown"]={
+ ["cs"]="jdidolu",
+ ["de"]="nachunten",
+ ["en"]="godown",
+ ["fr"]="vaenbas",
+ ["it"]="vaigiu",
+ ["nl"]="omlaag",
+ ["pe"]="بروپایین",
+ ["ro"]="injos",
+ },
+ ["goto"]={
+ ["cs"]="jdina",
+ ["de"]="zu",
+ ["en"]="goto",
+ ["fr"]="va",
+ ["it"]="vaia",
+ ["nl"]="naar",
+ ["pe"]="بروبه",
+ ["ro"]="dute",
+ },
+ ["gotobox"]={
+ ["cs"]="jdinabox",
+ ["de"]="zurbox",
+ ["en"]="gotobox",
+ ["fr"]="vaalaboite",
+ ["it"]="vaiabox",
+ ["nl"]="naarbox",
+ ["pe"]="بروبه‌جعبه",
+ ["ro"]="dutebox",
+ },
+ ["gotopage"]={
+ ["cs"]="jdinastranu",
+ ["de"]="zurseite",
+ ["en"]="gotopage",
+ ["fr"]="vaalapage",
+ ["it"]="vaiapagina",
+ ["nl"]="naarpagina",
+ ["pe"]="بروبه‌صفحه",
+ ["ro"]="dutepagina",
+ },
+ ["graycolor"]={
+ ["cs"]="sedabarva",
+ ["de"]="graufarbe",
+ ["en"]="graycolor",
+ ["fr"]="couleurgrise",
+ ["it"]="coloregrigio",
+ ["nl"]="grijskleur",
+ ["pe"]="رنگ‌خاکستری",
+ ["ro"]="culoaregri",
+ },
+ ["greyvalue"]={
+ ["cs"]="hodnotasedi",
+ ["de"]="grauwert",
+ ["en"]="greyvalue",
+ ["fr"]="valeurgris",
+ ["it"]="valoregrigio",
+ ["nl"]="grijswaarde",
+ ["pe"]="مقدارخاکستری",
+ ["ro"]="valoaregri",
+ },
+ ["grid"]={
+ ["cs"]="mrizka",
+ ["de"]="gitter",
+ ["en"]="grid",
+ ["fr"]="grille",
+ ["it"]="griglia",
+ ["nl"]="rooster",
+ ["pe"]="توری",
+ ["ro"]="grid",
+ },
+ ["hairline"]={
+ ["cs"]="vlasovalinka",
+ ["de"]="haarlinie",
+ ["en"]="hairline",
+ ["fr"]="ligneh",
+ ["it"]="capello",
+ ["nl"]="haarlijn",
+ ["pe"]="خط‌مو",
+ ["ro"]="firdepar",
+ },
+ ["head"]={
+ ["cs"]="nadpis",
+ ["de"]="kopf",
+ ["en"]="head",
+ ["fr"]="tete",
+ ["it"]="testa",
+ ["nl"]="kop",
+ ["pe"]="سر",
+ ["ro"]="titlu",
+ },
+ ["headerdistance"]={
+ ["cs"]="vzdalenostzahlavi",
+ ["de"]="kopfzeilenabstand",
+ ["en"]="headerdistance",
+ ["fr"]="distanceentete",
+ ["it"]="distanzaintestazione",
+ ["nl"]="hoofdafstand",
+ ["pe"]="فاصله‌سربرگ",
+ ["ro"]="distantaantet",
+ },
+ ["headerheight"]={
+ ["cs"]="vyskazahlavi",
+ ["de"]="kopfzeilenhoehe",
+ ["en"]="headerheight",
+ ["fr"]="hauteurentete",
+ ["it"]="altezzaintestazione",
+ ["nl"]="hoofdhoogte",
+ ["pe"]="ارتفاع‌سربرگ",
+ ["ro"]="inaltimeantet",
+ },
+ ["headlevel"]={
+ ["cs"]="hlavniuroven",
+ ["de"]="kopfniveau",
+ ["en"]="headlevel",
+ ["fr"]="niveautete",
+ ["it"]="livellotesta",
+ ["nl"]="kopniveau",
+ ["pe"]="مرحله‌سر",
+ ["ro"]="niveltitlu",
+ },
+ ["headnumber"]={
+ ["cs"]="cislonadpisu",
+ ["de"]="kopfnummer",
+ ["en"]="headnumber",
+ ["fr"]="numerotete",
+ ["it"]="numerotesta",
+ ["nl"]="kopnummer",
+ ["pe"]="شماره‌سر",
+ ["ro"]="numartitlu",
+ },
+ ["headsym"]={
+ ["cs"]="headsym",
+ ["de"]="headsym",
+ ["en"]="headsym",
+ ["fr"]="headsym",
+ ["it"]="headsym",
+ ["nl"]="kopsym",
+ ["pe"]="نمادسر",
+ ["ro"]="headsym",
+ },
+ ["headtext"]={
+ ["cs"]="texthlavicky",
+ ["de"]="ueberschrifttext",
+ ["en"]="headtext",
+ ["fr"]="textetete",
+ ["it"]="testoinstestazioni",
+ ["nl"]="koptekst",
+ ["pe"]="متن‌سر",
+ ["ro"]="texttitlu",
+ },
+ ["hideblocks"]={
+ ["cs"]="schovejbloky",
+ ["de"]="verbergebloecke",
+ ["en"]="hideblocks",
+ ["fr"]="cacheblocs",
+ ["it"]="nascondiblocchi",
+ ["nl"]="verbergblokken",
+ ["pe"]="بلوکها‌پنهان",
+ ["ro"]="ascundeblocuri",
+ },
+ ["high"]={
+ ["cs"]="vysoky",
+ ["de"]="hoch",
+ ["en"]="high",
+ ["fr"]="haut",
+ ["it"]="ap",
+ ["nl"]="hoog",
+ ["pe"]="بلند",
+ ["ro"]="inalt",
+ },
+ ["hl"]={
+ ["cs"]="hl",
+ ["de"]="hl",
+ ["en"]="hl",
+ ["fr"]="hl",
+ ["it"]="hl",
+ ["nl"]="hl",
+ ["pe"]="خ‌ا",
+ ["ro"]="hl",
+ },
+ ["immediatebetweenlist"]={
+ ["cs"]="immediatebetweenlist",
+ ["de"]="immediatebetweenlist",
+ ["en"]="immediatebetweenlist",
+ ["fr"]="immediatebetweenlist",
+ ["it"]="immediatebetweenlist",
+ ["nl"]="directtussenlijst",
+ ["pe"]="فوری‌بین‌لیست",
+ ["ro"]="immediatebetweenlist",
+ },
+ ["immediatetolist"]={
+ ["cs"]="immediatetolist",
+ ["de"]="immediatetolist",
+ ["en"]="immediatetolist",
+ ["fr"]="immediatetolist",
+ ["it"]="immediatetolist",
+ ["nl"]="directnaarlijst",
+ ["pe"]="فوری‌به‌لیست",
+ ["ro"]="immediatetolist",
+ },
+ ["in"]={
+ ["cs"]="tref",
+ ["de"]="in",
+ ["en"]="in",
+ ["fr"]="dans",
+ ["it"]="in",
+ ["nl"]="in",
+ ["pe"]="درون",
+ ["ro"]="in",
+ },
+ ["incrementnumber"]={
+ ["cs"]="zvysujicicislo",
+ ["de"]="nummererhoehen",
+ ["en"]="incrementnumber",
+ ["fr"]="incrementenumero",
+ ["it"]="incrementanumero",
+ ["nl"]="verhoognummer",
+ ["pe"]="شماره‌افزایش",
+ ["ro"]="numarincrement",
+ },
+ ["indenting"]={
+ ["cs"]="odsazovani",
+ ["de"]="einziehen",
+ ["en"]="indenting",
+ ["fr"]="composeenalinea",
+ ["it"]="rientro",
+ ["nl"]="inspringen",
+ ["pe"]="تورفتگی",
+ ["ro"]="aliniat",
+ },
+ ["inframed"]={
+ ["cs"]="zaramovani",
+ ["de"]="imumriss",
+ ["en"]="inframed",
+ ["fr"]="inframed",
+ ["it"]="circondato",
+ ["nl"]="inlijnd",
+ ["pe"]="درقالبی",
+ ["ro"]="inframed",
+ },
+ ["infull"]={
+ ["cs"]="plnezneni",
+ ["de"]="volleswort",
+ ["en"]="infull",
+ ["fr"]="infull",
+ ["it"]="perlungo",
+ ["nl"]="voluit",
+ ["pe"]="درپر",
+ ["ro"]="pelung",
+ },
+ ["ininner"]={
+ ["cs"]="ininner",
+ ["de"]="ininner",
+ ["en"]="ininner",
+ ["fr"]="ininner",
+ ["it"]="ininner",
+ ["nl"]="inbinnen",
+ ["pe"]="درداخلی",
+ ["ro"]="ininner",
+ },
+ ["inleft"]={
+ ["cs"]="vlevo",
+ ["de"]="imlinken",
+ ["en"]="inleft",
+ ["fr"]="dansgauche",
+ ["it"]="insinistra",
+ ["nl"]="inlinker",
+ ["pe"]="درچپ",
+ ["ro"]="instanga",
+ },
+ ["inleftedge"]={
+ ["cs"]="nalevo",
+ ["de"]="imlinkenrand",
+ ["en"]="inleftedge",
+ ["fr"]="dansbordgauche",
+ ["it"]="inlatosinistro",
+ ["nl"]="inlinkerrand",
+ ["pe"]="درلبه‌چپ",
+ ["ro"]="inparteastanga",
+ },
+ ["inleftmargin"]={
+ ["cs"]="nalevyokraj",
+ ["de"]="inlinkermarginale",
+ ["en"]="inleftmargin",
+ ["fr"]="dansmargegauche",
+ ["it"]="inmarginesinistro",
+ ["nl"]="inlinkermarge",
+ ["pe"]="درحاشیه‌چپ",
+ ["ro"]="inmargineastanga",
+ },
+ ["inline"]={
+ ["cs"]="vradku",
+ ["de"]="inzeile",
+ ["en"]="inline",
+ ["fr"]="alaligne",
+ ["it"]="inriga",
+ ["nl"]="inregel",
+ ["pe"]="درخط",
+ ["ro"]="inlinie",
+ },
+ ["inmargin"]={
+ ["cs"]="naokraj",
+ ["de"]="inmarginalie",
+ ["en"]="inmargin",
+ ["fr"]="dansmarge",
+ ["it"]="inmargine",
+ ["nl"]="inmarge",
+ ["pe"]="درحاشیه",
+ ["ro"]="marginal",
+ },
+ ["inmframed"]={
+ ["cs"]="mazaramovani",
+ ["de"]="immaumrise",
+ ["en"]="inmaframed",
+ ["fr"]="inmframed",
+ ["it"]="inmaframed",
+ ["nl"]="inwilijnd",
+ ["pe"]="inmframed",
+ ["ro"]="inmaframed",
+ },
+ ["inneredgedistance"]={
+ ["cs"]="inneredgedistance",
+ ["de"]="inneredgedistance",
+ ["en"]="inneredgedistance",
+ ["fr"]="inneredgedistance",
+ ["it"]="inneredgedistance",
+ ["nl"]="binnenrandafstand",
+ ["pe"]="فاصله‌لبه‌داخلی",
+ ["ro"]="inneredgedistance",
+ },
+ ["inneredgewidth"]={
+ ["cs"]="inneredgewidth",
+ ["de"]="inneredgewidth",
+ ["en"]="inneredgewidth",
+ ["fr"]="inneredgewidth",
+ ["it"]="inneredgewidth",
+ ["nl"]="binnenrandbreedte",
+ ["pe"]="عرض‌لبه‌داخلی",
+ ["ro"]="inneredgewidth",
+ },
+ ["innermargindistance"]={
+ ["cs"]="innermargindistance",
+ ["de"]="innermargindistance",
+ ["en"]="innermargindistance",
+ ["fr"]="innermargindistance",
+ ["it"]="innermargindistance",
+ ["nl"]="binnenmargeafstand",
+ ["pe"]="فاصله‌حاشیه‌داخلی",
+ ["ro"]="innermargindistance",
+ },
+ ["innermarginwidth"]={
+ ["cs"]="innermarginwidth",
+ ["de"]="innermarginwidth",
+ ["en"]="innermarginwidth",
+ ["fr"]="innermarginwidth",
+ ["it"]="innermarginwidth",
+ ["nl"]="binnenmargebreedte",
+ ["pe"]="عرض‌حاشیه‌داخلی",
+ ["ro"]="innermarginwidth",
+ },
+ ["inothermargin"]={
+ ["cs"]="nadruhyokraj",
+ ["de"]="inanderermarginale",
+ ["en"]="inothermargin",
+ ["fr"]="dansautremarge",
+ ["it"]="inaltromargine",
+ ["nl"]="inanderemarge",
+ ["pe"]="درحاشیه‌دیگر",
+ ["ro"]="inaltamargine",
+ },
+ ["inouter"]={
+ ["cs"]="inouter",
+ ["de"]="inouter",
+ ["en"]="inouter",
+ ["fr"]="inouter",
+ ["it"]="inouter",
+ ["nl"]="inbuiten",
+ ["pe"]="درخارجی",
+ ["ro"]="inouter",
+ },
+ ["inright"]={
+ ["cs"]="vpravo",
+ ["de"]="imrechten",
+ ["en"]="inright",
+ ["fr"]="dansdroite",
+ ["it"]="indestra",
+ ["nl"]="inrechter",
+ ["pe"]="درراست",
+ ["ro"]="indreapta",
+ },
+ ["inrightedge"]={
+ ["cs"]="napravo",
+ ["de"]="imrechtenrand",
+ ["en"]="inrightedge",
+ ["fr"]="dansborddroit",
+ ["it"]="inlatodestro",
+ ["nl"]="inrechterrand",
+ ["pe"]="درلبه‌راست",
+ ["ro"]="inparteadreapta",
+ },
+ ["inrightmargin"]={
+ ["cs"]="napravyokraj",
+ ["de"]="inrechtermarginale",
+ ["en"]="inrightmargin",
+ ["fr"]="dansmargedroite",
+ ["it"]="inmarginedestro",
+ ["nl"]="inrechtermarge",
+ ["pe"]="درحاشیه‌راست",
+ ["ro"]="inmargineadreapta",
+ },
+ ["installlanguage"]={
+ ["cs"]="instalacejazyka",
+ ["de"]="installieresprache",
+ ["en"]="installlanguage",
+ ["fr"]="installelangue",
+ ["it"]="installalingua",
+ ["nl"]="installeertaal",
+ ["pe"]="نصب‌زبان",
+ ["ro"]="instalarelimba",
+ },
+ ["interactionbar"]={
+ ["cs"]="interakcnilista",
+ ["de"]="interaktionsbalken",
+ ["en"]="interactionbar",
+ ["fr"]="barreinteraction",
+ ["it"]="barrainterazione",
+ ["nl"]="interactiebalk",
+ ["pe"]="میله‌پانل",
+ ["ro"]="barainteractiune",
+ },
+ ["interactionbuttons"]={
+ ["cs"]="interakcnitlacitka",
+ ["de"]="interaktionsknopfe",
+ ["en"]="interactionbuttons",
+ ["fr"]="boutonsinteraction",
+ ["it"]="pulsantinterazione",
+ ["nl"]="interactiebuttons",
+ ["pe"]="دکمه‌پانل",
+ ["ro"]="butoaneinteractiune",
+ },
+ ["interactionmenu"]={
+ ["cs"]="interaktivnimenu",
+ ["de"]="interaktionsmenue",
+ ["en"]="interactionmenu",
+ ["fr"]="menuinteraction",
+ ["it"]="menuinterattivo",
+ ["nl"]="interactiemenu",
+ ["pe"]="منوی‌پانل",
+ ["ro"]="meniuinteractiune",
+ },
+ ["item"]={
+ ["cs"]="polozka",
+ ["de"]="pos",
+ ["en"]="item",
+ ["fr"]="element",
+ ["it"]="elemento",
+ ["nl"]="som",
+ ["pe"]="آیتم",
+ ["ro"]="element",
+ },
+ ["items"]={
+ ["cs"]="polozky",
+ ["de"]="posten",
+ ["en"]="items",
+ ["fr"]="elements",
+ ["it"]="elementi",
+ ["nl"]="items",
+ ["pe"]="آیتمها",
+ ["ro"]="element",
+ },
+ ["its"]={
+ ["cs"]="pol",
+ ["de"]="its",
+ ["en"]="its",
+ ["fr"]="el",
+ ["it"]="el",
+ ["nl"]="its",
+ ["pe"]="its",
+ ["ro"]="el",
+ },
+ ["keepblocks"]={
+ ["cs"]="zachovejbloky",
+ ["de"]="behaltebloecke",
+ ["en"]="keepblocks",
+ ["fr"]="gardeblocs",
+ ["it"]="tieniblocchi",
+ ["nl"]="handhaafblokken",
+ ["pe"]="حفظ‌بلوکها",
+ ["ro"]="pastreazablocuri",
+ },
+ ["label"]={
+ ["cs"]="poppisek",
+ ["de"]="label",
+ ["en"]="label",
+ ["fr"]="etiquette",
+ ["it"]="etichetta",
+ ["nl"]="label",
+ ["pe"]="برچسب",
+ ["ro"]="eticheta",
+ },
+ ["labels"]={
+ ["cs"]="popisky",
+ ["de"]="labels",
+ ["en"]="labels",
+ ["fr"]="etiquettes",
+ ["it"]="etichette",
+ ["nl"]="labels",
+ ["pe"]="برچسبها",
+ ["ro"]="etichete",
+ },
+ ["labeltext"]={
+ ["cs"]="textpopisku",
+ ["de"]="labeltext",
+ ["en"]="labeltext",
+ ["fr"]="labeltexte",
+ ["it"]="testoetichetta",
+ ["nl"]="labeltekst",
+ ["pe"]="متن‌برچسب",
+ ["ro"]="texteticheta",
+ },
+ ["language"]={
+ ["cs"]="jazyk",
+ ["de"]="sprache",
+ ["en"]="language",
+ ["fr"]="langue",
+ ["it"]="lingua",
+ ["nl"]="taal",
+ ["pe"]="زبان",
+ ["ro"]="limba",
+ },
+ ["leftaligned"]={
+ ["cs"]="zarovnanovlevo",
+ ["de"]="linksbuendig",
+ ["en"]="leftaligned",
+ ["fr"]="aligneagauche",
+ ["it"]="allineasinistra",
+ ["nl"]="regellinks",
+ ["pe"]="چپ‌چین",
+ ["ro"]="aliniatstanga",
+ },
+ ["leftedgedistance"]={
+ ["cs"]="vzdalenostlevehookraje",
+ ["de"]="abstandlinkerrand",
+ ["en"]="leftedgedistance",
+ ["fr"]="distancebordgauche",
+ ["it"]="distanzabordosinistro",
+ ["nl"]="linkerrandafstand",
+ ["pe"]="فاصله‌لبه‌چپ",
+ ["ro"]="distantacoltstanga",
+ },
+ ["leftedgewidth"]={
+ ["cs"]="sirkalevehookraje",
+ ["de"]="breitelinkerrand",
+ ["en"]="leftedgewidth",
+ ["fr"]="largeurbordgauche",
+ ["it"]="ampiezzabordosinistro",
+ ["nl"]="linkerrandbreedte",
+ ["pe"]="عرض‌لبه‌چپ",
+ ["ro"]="latimecoltstanga",
+ },
+ ["leftmargindistance"]={
+ ["cs"]="vzdalenostlevemarginalie",
+ ["de"]="linkemarginalafstand",
+ ["en"]="leftmargindistance",
+ ["fr"]="distancemargegauche",
+ ["it"]="distanzamarginesinistro",
+ ["nl"]="linkermargeafstand",
+ ["pe"]="فاصله‌حاشیه‌چپ",
+ ["ro"]="distantamarginestanga",
+ },
+ ["leftmarginwidth"]={
+ ["cs"]="sirkalevemarginalie",
+ ["de"]="linkemarginalbreite",
+ ["en"]="leftmarginwidth",
+ ["fr"]="largeurmargegauche",
+ ["it"]="ampiezzamarginesinistro",
+ ["nl"]="linkermargebreedte",
+ ["pe"]="عرض‌حاشیه‌چپ",
+ ["ro"]="latimemarginestanga",
+ },
+ ["leg"]={
+ ["cs"]="leg",
+ ["de"]="leg",
+ ["en"]="leg",
+ ["fr"]="leg",
+ ["it"]="leg",
+ ["nl"]="leg",
+ ["pe"]="پا",
+ ["ro"]="leg",
+ },
+ ["linewidth"]={
+ ["cs"]="tloustkacary",
+ ["de"]="liniendicke",
+ ["en"]="linethickness",
+ ["fr"]="largeurligne",
+ ["it"]="spessoreriga",
+ ["nl"]="lijndikte",
+ ["pe"]="عرض‌خط",
+ ["ro"]="grosimelinie",
+ },
+ ["listheight"]={
+ ["cs"]="vyskaseznamu",
+ ["de"]="listenhoehe",
+ ["en"]="listheight",
+ ["fr"]="hauteurliste",
+ ["it"]="altezzaelenco",
+ ["nl"]="lijsthoogte",
+ ["pe"]="ارتفاع‌خط",
+ ["ro"]="inaltimelista",
+ },
+ ["listlength"]={
+ ["cs"]="delkaseznamu",
+ ["de"]="listenlaenge",
+ ["en"]="listlength",
+ ["fr"]="llongueurliste",
+ ["it"]="lunghezzaelenco",
+ ["nl"]="lijstlengte",
+ ["pe"]="طول‌لیست",
+ ["ro"]="lungimelista",
+ },
+ ["listsymbol"]={
+ ["cs"]="listsymbol",
+ ["de"]="listsymbol",
+ ["en"]="listsymbol",
+ ["fr"]="listesymbole",
+ ["it"]="listsymbol",
+ ["nl"]="lijstsymbool",
+ ["pe"]="نمادلیست",
+ ["ro"]="listsymbol",
+ },
+ ["listwidth"]={
+ ["cs"]="sirkaseznamu",
+ ["de"]="listenbreite",
+ ["en"]="listwidth",
+ ["fr"]="largeurliste",
+ ["it"]="ampiezzaelenco",
+ ["nl"]="lijstbreedte",
+ ["pe"]="عرض‌لیست",
+ ["ro"]="latimelista",
+ },
+ ["logfields"]={
+ ["cs"]="zaznamovepole",
+ ["de"]="registrierefelder",
+ ["en"]="logfields",
+ ["fr"]="logchamp",
+ ["it"]="logcampi",
+ ["nl"]="registreervelden",
+ ["pe"]="میدانهای‌گزارش",
+ ["ro"]="logcampuri",
+ },
+ ["lohi"]={
+ ["cs"]="nivy",
+ ["de"]="tiho",
+ ["en"]="lohi",
+ ["fr"]="baha",
+ ["it"]="pedap",
+ ["nl"]="laho",
+ ["pe"]="پابا",
+ ["ro"]="jossus",
+ },
+ ["low"]={
+ ["cs"]="nizky",
+ ["de"]="tief",
+ ["en"]="low",
+ ["fr"]="bas",
+ ["it"]="ped",
+ ["nl"]="laag",
+ ["pe"]="پایین",
+ ["ro"]="jos",
+ },
+ ["macroname"]={
+ ["cs"]="jmeno",
+ ["de"]="name",
+ ["en"]="name",
+ ["fr"]="nommacro",
+ ["it"]="nome",
+ ["nl"]="naam",
+ ["pe"]="نام‌ماکرو",
+ ["ro"]="nume",
+ },
+ ["mainlanguage"]={
+ ["cs"]="hlavnijazyk",
+ ["de"]="hauptsprache",
+ ["en"]="mainlanguage",
+ ["fr"]="langueprincipale",
+ ["it"]="linguaprincipale",
+ ["nl"]="hoofdtaal",
+ ["pe"]="زبان‌اصلی",
+ ["ro"]="limbaprincipala",
+ },
+ ["makeupheight"]={
+ ["cs"]="vyskasazby",
+ ["de"]="satzhoehe",
+ ["en"]="makeupheight",
+ ["fr"]="hauteurmakeup",
+ ["it"]="altezzamakeup",
+ ["nl"]="zethoogte",
+ ["pe"]="ارتفاع‌آرایش",
+ ["ro"]="inaltimemakeup",
+ },
+ ["makeupwidth"]={
+ ["cs"]="sirkasazby",
+ ["de"]="satzbreite",
+ ["en"]="makeupwidth",
+ ["fr"]="largeurmakeup",
+ ["it"]="ampiezzamakeup",
+ ["nl"]="zetbreedte",
+ ["pe"]="عرض‌آرایش",
+ ["ro"]="latimemakeup",
+ },
+ ["mar"]={
+ ["cs"]="okr",
+ ["de"]="mar",
+ ["en"]="mar",
+ ["fr"]="mar",
+ ["it"]="mar",
+ ["nl"]="mar",
+ ["pe"]="حاش",
+ ["ro"]="mar",
+ },
+ ["margindistance"]={
+ ["cs"]="vzdalenostmarginalie",
+ ["de"]="marginalafstand",
+ ["en"]="margindistance",
+ ["fr"]="distancemarge",
+ ["it"]="distanzamargine",
+ ["nl"]="margeafstand",
+ ["pe"]="فاصله‌حاشیه",
+ ["ro"]="distantamargine",
+ },
+ ["marginrule"]={
+ ["cs"]="marginalnilinka",
+ ["de"]="marginallinie",
+ ["en"]="marginrule",
+ ["fr"]="margereglee",
+ ["it"]="lineamargine",
+ ["nl"]="kantlijn",
+ ["pe"]="خط‌حاشیه",
+ ["ro"]="liniemargine",
+ },
+ ["margintext"]={
+ ["cs"]="marginalnitext",
+ ["de"]="marginaltext",
+ ["en"]="margintext",
+ ["fr"]="textemarge",
+ ["it"]="testoinmargine",
+ ["nl"]="margetekst",
+ ["pe"]="متن‌حاشیه",
+ ["ro"]="textmarginal",
+ },
+ ["margintitle"]={
+ ["cs"]="marginalninadpis",
+ ["de"]="marginaltitel",
+ ["en"]="margintitle",
+ ["fr"]="titremarge",
+ ["it"]="titoloinmargine",
+ ["nl"]="margetitel",
+ ["pe"]="عنوان‌حاشیه",
+ ["ro"]="titlumarginal",
+ },
+ ["marginwidth"]={
+ ["cs"]="sirkamarginalie",
+ ["de"]="marginalbreite",
+ ["en"]="marginwidth",
+ ["fr"]="largeurmarge",
+ ["it"]="ampiezzamargine",
+ ["nl"]="margebreedte",
+ ["pe"]="عرض‌حاشیه",
+ ["ro"]="latimemargine",
+ },
+ ["marginword"]={
+ ["cs"]="marginalnislovo",
+ ["de"]="marginalwort",
+ ["en"]="marginword",
+ ["fr"]="motmarge",
+ ["it"]="parolainmargine",
+ ["nl"]="margewoord",
+ ["pe"]="کلمه‌حاشیه",
+ ["ro"]="cuvantmarginal",
+ },
+ ["marking"]={
+ ["cs"]="znaceni",
+ ["de"]="beschriftung",
+ ["en"]="marking",
+ ["fr"]="marquage",
+ ["it"]="marcatura",
+ ["nl"]="markeer",
+ ["pe"]="نشانه‌گذاری",
+ ["ro"]="marcaje",
+ },
+ ["markversion"]={
+ ["cs"]="oznacverzi",
+ ["de"]="beschrifteversion",
+ ["en"]="markversion",
+ ["fr"]="marquageversion",
+ ["it"]="marcaversione",
+ ["nl"]="markeerversie",
+ ["pe"]="نسخه‌نشانه",
+ ["ro"]="marcheazaversiune",
+ },
+ ["mathematics"]={
+ ["cs"]="matematika",
+ ["de"]="mathematik",
+ ["en"]="mathematics",
+ ["fr"]="mathematique",
+ ["it"]="matematica",
+ ["nl"]="wiskunde",
+ ["pe"]="ریاضی",
+ ["ro"]="matematica",
+ },
+ ["menubutton"]={
+ ["cs"]="tlacitkomenu",
+ ["de"]="menueknopf",
+ ["en"]="menubutton",
+ ["fr"]="boutonmenu",
+ ["it"]="pulsantemenu",
+ ["nl"]="menubutton",
+ ["pe"]="دکمه‌منو",
+ ["ro"]="butonmeniu",
+ },
+ ["mframed"]={
+ ["cs"]="maoramovani",
+ ["de"]="maumrise",
+ ["en"]="maframed",
+ ["fr"]="mframed",
+ ["it"]="maframed",
+ ["nl"]="wilijnd",
+ ["pe"]="mframed",
+ ["ro"]="maframed",
+ },
+ ["midaligned"]={
+ ["cs"]="zarovnanonastred",
+ ["de"]="zentriert",
+ ["en"]="midaligned",
+ ["fr"]="aligneaumilieu",
+ ["it"]="allineacentro",
+ ["nl"]="regelmidden",
+ ["pe"]="تنظیم‌وسط",
+ ["ro"]="aliniatcentru",
+ },
+ ["mirror"]={
+ ["cs"]="zrcadlit",
+ ["de"]="spiegeln",
+ ["en"]="mirror",
+ ["fr"]="reflete",
+ ["it"]="riflessione",
+ ["nl"]="spiegel",
+ ["pe"]="آینه",
+ ["ro"]="reflexie",
+ },
+ ["month"]={
+ ["cs"]="mesic",
+ ["de"]="monat",
+ ["en"]="month",
+ ["fr"]="mois",
+ ["it"]="mese",
+ ["nl"]="maand",
+ ["pe"]="ماه",
+ ["ro"]="luna",
+ },
+ ["moveformula"]={
+ ["cs"]="moveformula",
+ ["de"]="moveformula",
+ ["en"]="moveformula",
+ ["fr"]="deplaceformule",
+ ["it"]="spostaformula",
+ ["nl"]="verplaatsformule",
+ ["pe"]="انتقال‌فرمول",
+ ["ro"]="moveformula",
+ },
+ ["moveongrid"]={
+ ["cs"]="premistinamrizku",
+ ["de"]="amgitterneuausrichten",
+ ["en"]="moveongrid",
+ ["fr"]="deplacesurgrille",
+ ["it"]="spostaagriglia",
+ ["nl"]="verplaatsopgrid",
+ ["pe"]="انتقال‌به‌توری",
+ ["ro"]="mutapegrid",
+ },
+ ["movesidefloat"]={
+ ["cs"]="movesidefloat",
+ ["de"]="movesidefloat",
+ ["en"]="movesidefloat",
+ ["fr"]="movesidefloat",
+ ["it"]="movesidefloat",
+ ["nl"]="verplaatszijblok",
+ ["pe"]="انتقال‌کنار‌شناور",
+ ["ro"]="movesidefloat",
+ },
+ ["navigating"]={
+ ["cs"]="navigating",
+ ["de"]="navigating",
+ ["en"]="navigating",
+ ["fr"]="navigating",
+ ["it"]="navigating",
+ ["nl"]="navigerend",
+ ["pe"]="هدایت",
+ ["ro"]="navigating",
+ },
+ ["nodimension"]={
+ ["cs"]="zadnyrozmer",
+ ["de"]="keindimension",
+ ["en"]="nodimension",
+ ["fr"]="sansdimension",
+ ["it"]="nientedimensioni",
+ ["nl"]="geendimensie",
+ ["pe"]="بدون‌بعد",
+ ["ro"]="faradimensiune",
+ },
+ ["noheaderandfooterlines"]={
+ ["cs"]="zadnezahlaviaupati",
+ ["de"]="keinekopfundfusszeilen",
+ ["en"]="noheaderandfooterlines",
+ ["fr"]="sanslignesenteteetpdp",
+ ["it"]="nientelineintestazionepdp",
+ ["nl"]="geenhoofdenvoetregels",
+ ["pe"]="بدون‌خط‌سروته‌برگ",
+ ["ro"]="faraliniiantetsisubsol",
+ },
+ ["noindenting"]={
+ ["cs"]="zadneodsazovani",
+ ["de"]="nichteinziehen",
+ ["en"]="noindenting",
+ ["fr"]="sansalinea",
+ ["it"]="nienterientro",
+ ["nl"]="nietinspringen",
+ ["pe"]="بدون‌تورفتگی",
+ ["ro"]="faraaliniat",
+ },
+ ["nolist"]={
+ ["cs"]="zadnyseznam",
+ ["de"]="keineliste",
+ ["en"]="nolist",
+ ["fr"]="sansliste",
+ ["it"]="nienteelenco",
+ ["nl"]="geenlijst",
+ ["pe"]="بدون‌لیست",
+ ["ro"]="faralista",
+ },
+ ["nomarking"]={
+ ["cs"]="zadneznaceni",
+ ["de"]="keinebeschriftung",
+ ["en"]="nomarking",
+ ["fr"]="sansmarquage",
+ ["it"]="nientemarcatura",
+ ["nl"]="geenmarkering",
+ ["pe"]="بدون‌نشانه‌گذاری",
+ ["ro"]="faramarcaje",
+ },
+ ["nomoreblocks"]={
+ ["cs"]="zadnedalsibloky",
+ ["de"]="keinebloeckemehr",
+ ["en"]="nomoreblocks",
+ ["fr"]="pasplusdeblocs",
+ ["it"]="bastablocchi",
+ ["nl"]="geenblokkenmeer",
+ ["pe"]="بدون‌بلوکهای‌بیشتر",
+ ["ro"]="gatablocuri",
+ },
+ ["nomorefiles"]={
+ ["cs"]="zadnedalsisoubory",
+ ["de"]="keinedateienmehr",
+ ["en"]="nomorefiles",
+ ["fr"]="pasplusdefichiers",
+ ["it"]="bastafile",
+ ["nl"]="geenfilesmeer",
+ ["pe"]="بدون‌فایلهای‌بیشتر",
+ ["ro"]="farafisiere",
+ },
+ ["nop"]={
+ ["cs"]="nop",
+ ["de"]="nop",
+ ["en"]="nop",
+ ["fr"]="nop",
+ ["it"]="nop",
+ ["nl"]="nop",
+ ["pe"]="منفی",
+ ["ro"]="nop",
+ },
+ ["nospace"]={
+ ["cs"]="zadnamezera",
+ ["de"]="keinspatium",
+ ["en"]="nospace",
+ ["fr"]="sansespace",
+ ["it"]="nientespazio",
+ ["nl"]="geenspatie",
+ ["pe"]="بدون‌فضا",
+ ["ro"]="faraspatiu",
+ },
+ ["note"]={
+ ["cs"]="poznamka",
+ ["de"]="notiz",
+ ["en"]="note",
+ ["fr"]="note",
+ ["it"]="nota",
+ ["nl"]="noot",
+ ["pe"]="یادداشت",
+ ["ro"]="nota",
+ },
+ ["notopandbottomlines"]={
+ ["cs"]="zadnehorniadolniradky",
+ ["de"]="keinzeilenobenundunten",
+ ["en"]="notopandbottomlines",
+ ["fr"]="sanslignessupetinf",
+ ["it"]="nientelineecimafondo",
+ ["nl"]="geenbovenenonderregels",
+ ["pe"]="بدون‌خط‌بالاوپایین",
+ ["ro"]="faraliniisussijos",
+ },
+ ["notsmallcapped"]={
+ ["cs"]="nokap",
+ ["de"]="nokap",
+ ["en"]="nocap",
+ ["fr"]="nocap",
+ ["it"]="nocap",
+ ["nl"]="nokap",
+ ["pe"]="سرپوش‌کوچک‌نه",
+ ["ro"]="nokap",
+ },
+ ["nowhitespace"]={
+ ["cs"]="zadnebilemisto",
+ ["de"]="keinzwischenraum",
+ ["en"]="nowhitespace",
+ ["fr"]="sansespaceblanc",
+ ["it"]="nientespaziobianco",
+ ["nl"]="geenwitruimte",
+ ["pe"]="بدون‌فضای‌سفید",
+ ["ro"]="faraspatiualb",
+ },
+ ["numberofsubpages"]={
+ ["cs"]="numberofsubpages",
+ ["de"]="numberofsubpages",
+ ["en"]="numberofsubpages",
+ ["fr"]="nombredesouspages",
+ ["it"]="numberofsubpages",
+ ["nl"]="aantalsubpaginas",
+ ["pe"]="شماره‌زیرصفحه",
+ ["ro"]="numberofsubpages",
+ },
+ ["numbers"]={
+ ["cs"]="cisla",
+ ["de"]="ziffern",
+ ["en"]="numbers",
+ ["fr"]="numeros",
+ ["it"]="numeri",
+ ["nl"]="cijfers",
+ ["pe"]="شماره‌ها",
+ ["ro"]="numere",
+ },
+ ["outeredgedistance"]={
+ ["cs"]="outeredgedistance",
+ ["de"]="outeredgedistance",
+ ["en"]="outeredgedistance",
+ ["fr"]="outeredgedistance",
+ ["it"]="outeredgedistance",
+ ["nl"]="buitenrandafstand",
+ ["pe"]="فاصله‌لبه‌خارجی",
+ ["ro"]="outeredgedistance",
+ },
+ ["outeredgewidth"]={
+ ["cs"]="outeredgewidth",
+ ["de"]="outeredgewidth",
+ ["en"]="outeredgewidth",
+ ["fr"]="outeredgewidth",
+ ["it"]="outeredgewidth",
+ ["nl"]="buitenrandbreedte",
+ ["pe"]="عرض‌لبه‌خارجی",
+ ["ro"]="outeredgewidth",
+ },
+ ["outermargindistance"]={
+ ["cs"]="outermargindistance",
+ ["de"]="outermargindistance",
+ ["en"]="outermargindistance",
+ ["fr"]="outermargindistance",
+ ["it"]="outermargindistance",
+ ["nl"]="buitenmargeafstand",
+ ["pe"]="فاصله‌حاشیه‌خارجی",
+ ["ro"]="outermargindistance",
+ },
+ ["outermarginwidth"]={
+ ["cs"]="outermarginwidth",
+ ["de"]="outermarginwidth",
+ ["en"]="outermarginwidth",
+ ["fr"]="outermarginwidth",
+ ["it"]="outermarginwidth",
+ ["nl"]="buitenmargebreedte",
+ ["pe"]="عرض‌حاشیه‌خارجی",
+ ["ro"]="outermarginwidth",
+ },
+ ["overbar"]={
+ ["cs"]="nadtrzeno",
+ ["de"]="ueberstrichen",
+ ["en"]="overbar",
+ ["fr"]="overbar",
+ ["it"]="sopralinea",
+ ["nl"]="overstreep",
+ ["pe"]="میله‌رو",
+ ["ro"]="barasus",
+ },
+ ["overbars"]={
+ ["cs"]="nadtrzeni",
+ ["de"]="ueberstreichen",
+ ["en"]="overbars",
+ ["fr"]="overbars",
+ ["it"]="sopralinee",
+ ["nl"]="overstrepen",
+ ["pe"]="میله‌ها‌رو",
+ ["ro"]="supralinie",
+ },
+ ["overstrike"]={
+ ["cs"]="preskrtnuto",
+ ["de"]="durchgestrichen",
+ ["en"]="overstrike",
+ ["fr"]="surlignetout",
+ ["it"]="sbarrato",
+ ["nl"]="doorstreep",
+ ["pe"]="خط‌زدن",
+ ["ro"]="liniepeste",
+ },
+ ["overstrikes"]={
+ ["cs"]="preskrtnuti",
+ ["de"]="durchstreichen",
+ ["en"]="overstrikes",
+ ["fr"]="surligne",
+ ["it"]="sbarrati",
+ ["nl"]="doorstrepen",
+ ["pe"]="خط‌زدنها",
+ ["ro"]="liniipeste",
+ },
+ ["packed"]={
+ ["cs"]="zhustene",
+ ["de"]="kleinerdurchschuss",
+ ["en"]="packed",
+ ["fr"]="groupe",
+ ["it"]="impaccato",
+ ["nl"]="opelkaar",
+ ["pe"]="فشرده",
+ ["ro"]="impachetat",
+ },
+ ["page"]={
+ ["cs"]="strana",
+ ["de"]="seite",
+ ["en"]="page",
+ ["fr"]="page",
+ ["it"]="pagina",
+ ["nl"]="pagina",
+ ["pe"]="صفحه",
+ ["ro"]="pagina",
+ },
+ ["pagedepth"]={
+ ["cs"]="pagedepth",
+ ["de"]="pagedepth",
+ ["en"]="pagedepth",
+ ["fr"]="pagedepth",
+ ["it"]="pagedepth",
+ ["nl"]="paginadiepte",
+ ["pe"]="عمق‌صفحه",
+ ["ro"]="pagedepth",
+ },
+ ["pagenumber"]={
+ ["cs"]="cislostrany",
+ ["de"]="seitenummer",
+ ["en"]="pagenumber",
+ ["fr"]="numeropage",
+ ["it"]="numeropagina",
+ ["nl"]="paginanummer",
+ ["pe"]="شماره‌صفحه",
+ ["ro"]="numarpagina",
+ },
+ ["pageoffset"]={
+ ["cs"]="pageoffset",
+ ["de"]="pageoffset",
+ ["en"]="pageoffset",
+ ["fr"]="pageoffset",
+ ["it"]="pageoffset",
+ ["nl"]="paginaoffset",
+ ["pe"]="آفست‌صفحه",
+ ["ro"]="pageoffset",
+ },
+ ["pagereference"]={
+ ["cs"]="odkaznastranu",
+ ["de"]="seitenreferenz",
+ ["en"]="pagereference",
+ ["fr"]="referencepage",
+ ["it"]="riferimentopagina",
+ ["nl"]="paginareferentie",
+ ["pe"]="مرجع‌صفحه",
+ ["ro"]="referintapagina",
+ },
+ ["pagetype"]={
+ ["cs"]="typstrany",
+ ["de"]="seitentyp",
+ ["en"]="pagetype",
+ ["fr"]="tapepage",
+ ["it"]="tipopagina",
+ ["nl"]="soortpagina",
+ ["pe"]="نوع‌صفحه",
+ ["ro"]="tippagina",
+ },
+ ["paperheight"]={
+ ["cs"]="vyskapapiru",
+ ["de"]="papierhoehe",
+ ["en"]="paperheight",
+ ["fr"]="hauteurpapier",
+ ["it"]="altezzacarta",
+ ["nl"]="papierhoogte",
+ ["pe"]="ارتفاع‌برگ",
+ ["ro"]="inaltimehartie",
+ },
+ ["paperwidth"]={
+ ["cs"]="sirkapapiru",
+ ["de"]="papierbreite",
+ ["en"]="paperwidth",
+ ["fr"]="largeurpapier",
+ ["it"]="ampiezzacarta",
+ ["nl"]="papierbreedte",
+ ["pe"]="عرض‌برگ",
+ ["ro"]="latimehartie",
+ },
+ ["periods"]={
+ ["cs"]="tecky",
+ ["de"]="punkt",
+ ["en"]="periods",
+ ["fr"]="periodes",
+ ["it"]="punti",
+ ["nl"]="punten",
+ ["pe"]="نقطه‌ها",
+ ["ro"]="puncte",
+ },
+ ["plaatsruwelijst"]={
+ ["cs"]="placerawlist",
+ ["de"]="placerawlist",
+ ["en"]="placerawlist",
+ ["fr"]="placerawlist",
+ ["it"]="placerawlist",
+ ["nl"]="plaatsruwelijst",
+ ["pe"]="درج‌لیست‌خام",
+ ["ro"]="placerawlist",
+ },
+ ["placebookmarks"]={
+ ["cs"]="umistizalozky",
+ ["de"]="platzierebookmarks",
+ ["en"]="placebookmarks",
+ ["fr"]="placemarquespages",
+ ["it"]="mettisegnalibro",
+ ["nl"]="plaatsbookmarks",
+ ["pe"]="درج‌چوب‌خط",
+ ["ro"]="plaseazasemnecarte",
+ },
+ ["placecombinedlist"]={
+ ["cs"]="umistikombinovanyseznam",
+ ["de"]="platzierezusammengestellteliste",
+ ["en"]="placecombinedlist",
+ ["fr"]="placelisteinmbriquee",
+ ["it"]="mettielencocombinato",
+ ["nl"]="plaatssamengesteldelijst",
+ ["pe"]="درج‌لیست‌مختلط",
+ ["ro"]="punelistacombinata",
+ },
+ ["placefloat"]={
+ ["cs"]="placefloat",
+ ["de"]="placefloat",
+ ["en"]="placefloat",
+ ["fr"]="placeflottant",
+ ["it"]="placefloat",
+ ["nl"]="plaatsplaatsblok",
+ ["pe"]="درج‌شناور",
+ ["ro"]="placefloat",
+ },
+ ["placefootnotes"]={
+ ["cs"]="umistipoznamkypodcarou",
+ ["de"]="platzierefussnoten",
+ ["en"]="placefootnotes",
+ ["fr"]="placenotespdp",
+ ["it"]="mettinotepdp",
+ ["nl"]="plaatsvoetnoten",
+ ["pe"]="درج‌پانوشتها",
+ ["ro"]="punenotesubsol",
+ },
+ ["placeformula"]={
+ ["cs"]="umistirovnici",
+ ["de"]="platziereformel",
+ ["en"]="placeformula",
+ ["fr"]="placeformule",
+ ["it"]="mettiformula",
+ ["nl"]="plaatsformule",
+ ["pe"]="درج‌فرمول",
+ ["ro"]="puneformula",
+ },
+ ["placeheadnumber"]={
+ ["cs"]="placeheadnumber",
+ ["de"]="placeheadnumber",
+ ["en"]="placeheadnumber",
+ ["fr"]="placenumerotete",
+ ["it"]="posizionanumerotesta",
+ ["nl"]="plaatskopnummer",
+ ["pe"]="درج‌شماره‌سر",
+ ["ro"]="placeheadnumber",
+ },
+ ["placeheadtext"]={
+ ["cs"]="placeheadtext",
+ ["de"]="placeheadtext",
+ ["en"]="placeheadtext",
+ ["fr"]="placetextetete",
+ ["it"]="posizionatestotesta",
+ ["nl"]="plaatskoptekst",
+ ["pe"]="درج‌متن‌سر",
+ ["ro"]="placeheadtext",
+ },
+ ["placelegend"]={
+ ["cs"]="umistilegendu",
+ ["de"]="platzierelegende",
+ ["en"]="placelegend",
+ ["fr"]="placelegende",
+ ["it"]="mettilegenda",
+ ["nl"]="plaatslegenda",
+ ["pe"]="درج‌راهنما",
+ ["ro"]="punelegenda",
+ },
+ ["placelist"]={
+ ["cs"]="umistiseznam",
+ ["de"]="platziereliste",
+ ["en"]="placelist",
+ ["fr"]="placeliste",
+ ["it"]="mettielenco",
+ ["nl"]="plaatslijst",
+ ["pe"]="درج‌لیست",
+ ["ro"]="punelista",
+ },
+ ["placelocalfootnotes"]={
+ ["cs"]="umistilokalnipoznamkypodcarou",
+ ["de"]="platzierelokalefussnoten",
+ ["en"]="placelocalfootnotes",
+ ["fr"]="placenotespdplocales",
+ ["it"]="mettinotepdplocali",
+ ["nl"]="plaatslokalevoetnoten",
+ ["pe"]="درج‌پانوشتهای‌موضعی",
+ ["ro"]="punenotesubsollocale",
+ },
+ ["placelogos"]={
+ ["cs"]="umistiloga",
+ ["de"]="platzierelogo",
+ ["en"]="placelogos",
+ ["fr"]="placelogos",
+ ["it"]="mettiloghi",
+ ["nl"]="plaatsbeeldmerken",
+ ["pe"]="درج‌آرمها",
+ ["ro"]="punelogouri",
+ },
+ ["placeongrid"]={
+ ["cs"]="umistinamrizku",
+ ["de"]="amgitterausrichten",
+ ["en"]="placeongrid",
+ ["fr"]="placesurgrille",
+ ["it"]="mettiingriglia",
+ ["nl"]="plaatsopgrid",
+ ["pe"]="درج‌در‌توری",
+ ["ro"]="plaseazapegrid",
+ },
+ ["placeontopofeachother"]={
+ ["cs"]="umistinadsebe",
+ ["de"]="platziereuntereinander",
+ ["en"]="placeontopofeachother",
+ ["fr"]="placelesunsaudessusdesautres",
+ ["it"]="mettiunosullaltro",
+ ["nl"]="plaatsonderelkaar",
+ ["pe"]="درج‌در‌بالای‌یکدیگر",
+ ["ro"]="punedeasuprafiecareia",
+ },
+ ["placepagenumber"]={
+ ["cs"]="placepagenumber",
+ ["de"]="placepagenumber",
+ ["en"]="placepagenumber",
+ ["fr"]="placenumeropage",
+ ["it"]="mettinumeropagina",
+ ["nl"]="plaatspaginanummer",
+ ["pe"]="درج‌شماره‌صفحه",
+ ["ro"]="punenumarpagina",
+ },
+ ["placereferencelist"]={
+ ["cs"]="placereferencelist",
+ ["de"]="placereferencelist",
+ ["en"]="placereferencelist",
+ ["fr"]="placelistereference",
+ ["it"]="placereferencelist",
+ ["nl"]="plaatsreferentielijst",
+ ["pe"]="درج‌لیست‌مرجع",
+ ["ro"]="placereferencelist",
+ },
+ ["placeregister"]={
+ ["cs"]="umistirejstrik",
+ ["de"]="platziereregister",
+ ["en"]="placeregister",
+ ["fr"]="placeregistre",
+ ["it"]="mettiregistro",
+ ["nl"]="plaatsregister",
+ ["pe"]="درج‌ثبت",
+ ["ro"]="puneregistru",
+ },
+ ["placerule"]={
+ ["cs"]="placerule",
+ ["de"]="placerule",
+ ["en"]="placerule",
+ ["fr"]="placeregle",
+ ["it"]="mettilinea",
+ ["nl"]="plaatslijn",
+ ["pe"]="درج‌خط",
+ ["ro"]="punerigla",
+ },
+ ["placesidebyside"]={
+ ["cs"]="umistivedlesebe",
+ ["de"]="platzierenebeneinander",
+ ["en"]="placesidebyside",
+ ["fr"]="placecoteacote",
+ ["it"]="mettifiancoafianco",
+ ["nl"]="plaatsnaastelkaar",
+ ["pe"]="درج‌کنار‌به‌کنار",
+ ["ro"]="punefatainfata",
+ },
+ ["placesubformula"]={
+ ["cs"]="umistipodrovnici",
+ ["de"]="platziereunterformel",
+ ["en"]="placesubformula",
+ ["fr"]="placesousformule",
+ ["it"]="mettisottoformula",
+ ["nl"]="plaatssubformule",
+ ["pe"]="درج‌زیرفرمول",
+ ["ro"]="punesubformula",
+ },
+ ["placetextvariable"]={
+ ["cs"]="placetextvariable",
+ ["de"]="placetextvariable",
+ ["en"]="placetextvariable",
+ ["fr"]="placevariabletexte",
+ ["it"]="mettivariabiletesto",
+ ["nl"]="plaatstekstvariabele",
+ ["pe"]="درج‌متغیرمتن",
+ ["ro"]="punevariabilatext",
+ },
+ ["position"]={
+ ["cs"]="pozice",
+ ["de"]="position",
+ ["en"]="position",
+ ["fr"]="position",
+ ["it"]="posizione",
+ ["nl"]="positioneer",
+ ["pe"]="مکان",
+ ["ro"]="pozitie",
+ },
+ ["positiontext"]={
+ ["cs"]="positiontext",
+ ["de"]="positiontext",
+ ["en"]="positiontext",
+ ["fr"]="positionnetexte",
+ ["it"]="posizionatesto",
+ ["nl"]="positioneertekst",
+ ["pe"]="مکان‌متن",
+ ["ro"]="pozitietext",
+ },
+ ["printpaperheight"]={
+ ["cs"]="vyskatiskpapiru",
+ ["de"]="printpapierhoehe",
+ ["en"]="printpaperheight",
+ ["fr"]="hauteureditionpapier",
+ ["it"]="altezzacartastampa",
+ ["nl"]="printpapierhoogte",
+ ["pe"]="چاپ‌ارتفاع‌برگ",
+ ["ro"]="inaltimehartieimprimanta",
+ },
+ ["printpaperwidth"]={
+ ["cs"]="sirkatiskpapiru",
+ ["de"]="printpapierbreite",
+ ["en"]="printpaperwidth",
+ ["fr"]="largeureditionpapier",
+ ["it"]="ampiezzacartastampa",
+ ["nl"]="printpapierbreedte",
+ ["pe"]="چاپ‌عرض‌برگ",
+ ["ro"]="latimehartieimprimanta",
+ },
+ ["processblocks"]={
+ ["cs"]="zpracujbloky",
+ ["de"]="bearbeitebloecke",
+ ["en"]="processblocks",
+ ["fr"]="traiteblocs",
+ ["it"]="elaborablocchi",
+ ["nl"]="verwerkblokken",
+ ["pe"]="بلوکهای‌پردازش",
+ ["ro"]="proceseazabloc",
+ },
+ ["processpage"]={
+ ["cs"]="zpracujstranu",
+ ["de"]="bearbeiteseite",
+ ["en"]="processpage",
+ ["fr"]="traitepage",
+ ["it"]="elaborapagina",
+ ["nl"]="verwerkpagina",
+ ["pe"]="صفحه‌پردازش",
+ ["ro"]="proceseazapagina",
+ },
+ ["product"]={
+ ["cs"]="produkt",
+ ["de"]="produkt",
+ ["en"]="product",
+ ["fr"]="produit",
+ ["it"]="prodotto",
+ ["nl"]="produkt",
+ ["pe"]="تولید",
+ ["ro"]="produs",
+ },
+ ["program"]={
+ ["cs"]="program",
+ ["de"]="programm",
+ ["en"]="program",
+ ["fr"]="programme",
+ ["it"]="programma",
+ ["nl"]="programma",
+ ["pe"]="برنامه",
+ ["ro"]="program",
+ },
+ ["project"]={
+ ["cs"]="projekt",
+ ["de"]="projekt",
+ ["en"]="project",
+ ["fr"]="projet",
+ ["it"]="progetto",
+ ["nl"]="projekt",
+ ["pe"]="پروژه",
+ ["ro"]="proiect",
+ },
+ ["publication"]={
+ ["cs"]="publikace",
+ ["de"]="publikation",
+ ["en"]="publication",
+ ["fr"]="publication",
+ ["it"]="pubblicazione",
+ ["nl"]="publicatie",
+ ["pe"]="نشر",
+ ["ro"]="publicatie",
+ },
+ ["quotation"]={
+ ["cs"]="citace",
+ ["de"]="zitat",
+ ["en"]="quotation",
+ ["fr"]="citation",
+ ["it"]="citazione",
+ ["nl"]="citaat",
+ ["pe"]="نقل‌قول",
+ ["ro"]="citat",
+ },
+ ["quote"]={
+ ["cs"]="citovat",
+ ["de"]="zitieren",
+ ["en"]="quote",
+ ["fr"]="citer",
+ ["it"]="menzione",
+ ["nl"]="citeer",
+ ["pe"]="نقل",
+ ["ro"]="minicitat",
+ },
+ ["ran"]={
+ ["cs"]="ran",
+ ["de"]="ran",
+ ["en"]="ran",
+ ["fr"]="ran",
+ ["it"]="ran",
+ ["nl"]="ran",
+ ["pe"]="ran",
+ ["ro"]="ran",
+ },
+ ["redo"]={
+ ["cs"]="opakovat",
+ ["de"]="wiederholen",
+ ["en"]="redo",
+ ["fr"]="refait",
+ ["it"]="rifai",
+ ["nl"]="herhaal",
+ ["pe"]="انجام‌دوباره",
+ ["ro"]="refa",
+ },
+ ["ref"]={
+ ["cs"]="ref",
+ ["de"]="ref",
+ ["en"]="ref",
+ ["fr"]="ref",
+ ["it"]="rif",
+ ["nl"]="ref",
+ ["pe"]="رج",
+ ["ro"]="ref",
+ },
+ ["reference"]={
+ ["cs"]="odkaz",
+ ["de"]="referenz",
+ ["en"]="reference",
+ ["fr"]="reference",
+ ["it"]="riferimento",
+ ["nl"]="referentie",
+ ["pe"]="مرجع",
+ ["ro"]="referinta",
+ },
+ ["referral"]={
+ ["cs"]="odkaz",
+ ["de"]="verweis",
+ ["en"]="referral",
+ ["fr"]="recommandation",
+ ["it"]="referral",
+ ["nl"]="kenmerk",
+ ["pe"]="رجوع",
+ ["ro"]="referit",
+ },
+ ["referraldate"]={
+ ["cs"]="odkaznadatum",
+ ["de"]="verweisdatum",
+ ["en"]="referraldate",
+ ["fr"]="daterecommandation",
+ ["it"]="datareferral",
+ ["nl"]="kenmerkdatum",
+ ["pe"]="تاریخ‌رجوع",
+ ["ro"]="datareferit",
+ },
+ ["referring"]={
+ ["cs"]="odkazujici",
+ ["de"]="referieren",
+ ["en"]="referring",
+ ["fr"]="faitreference",
+ ["it"]="referring",
+ ["nl"]="refereer",
+ ["pe"]="مراجعه",
+ ["ro"]="referring",
+ },
+ ["remark"]={
+ ["cs"]="oznaceni",
+ ["de"]="bemerkung",
+ ["en"]="remark",
+ ["fr"]="commentaire",
+ ["it"]="commento",
+ ["nl"]="toelichting",
+ ["pe"]="توجه",
+ ["ro"]="remarca",
+ },
+ ["reset"]={
+ ["cs"]="reset",
+ ["de"]="ruecksetzten",
+ ["en"]="reset",
+ ["fr"]="raz",
+ ["it"]="reimposta",
+ ["nl"]="reset",
+ ["pe"]="بازنشانی",
+ ["ro"]="reset",
+ },
+ ["resetmarking"]={
+ ["cs"]="resetznaceni",
+ ["de"]="ruecksetztenbeschriftung",
+ ["en"]="resetmarking",
+ ["fr"]="razmarquage",
+ ["it"]="reimpostamarcatura",
+ ["nl"]="resetmarkering",
+ ["pe"]="بازنشانی‌نشانه‌گذاری",
+ ["ro"]="reseteazamarcaje",
+ },
+ ["resetnumber"]={
+ ["cs"]="resetnumber",
+ ["de"]="resetnumber",
+ ["en"]="resetnumber",
+ ["fr"]="raznumero",
+ ["it"]="resetnumber",
+ ["nl"]="resetnummer",
+ ["pe"]="بازنشانی‌شماره",
+ ["ro"]="resetnumber",
+ },
+ ["resettext"]={
+ ["cs"]="resettextcontent",
+ ["de"]="resettextcontent",
+ ["en"]="resettextcontent",
+ ["fr"]="resettextcontent",
+ ["it"]="resettextcontent",
+ ["nl"]="resettekstinhoud",
+ ["pe"]="بازنشانی‌متن",
+ ["ro"]="resettextcontent",
+ },
+ ["rightaligned"]={
+ ["cs"]="zarovnanovpravo",
+ ["de"]="rechtsbuendig",
+ ["en"]="rightaligned",
+ ["fr"]="aligneadroite",
+ ["it"]="allineadestra",
+ ["nl"]="regelrechts",
+ ["pe"]="تنظیم‌راست",
+ ["ro"]="aliniatdreapta",
+ },
+ ["rightedgedistance"]={
+ ["cs"]="vzdalenostpravehookraje",
+ ["de"]="abstandrechterrand",
+ ["en"]="rightedgedistance",
+ ["fr"]="distanceborddroit",
+ ["it"]="distanzabordodestro",
+ ["nl"]="rechterrandafstand",
+ ["pe"]="فاصله‌لبه‌راست",
+ ["ro"]="distantacoltdreapta",
+ },
+ ["rightedgewidth"]={
+ ["cs"]="sirkapravehookraje",
+ ["de"]="breiterechterrand",
+ ["en"]="rightedgewidth",
+ ["fr"]="largeurborddroit",
+ ["it"]="ampiezzabordodestro",
+ ["nl"]="rechterrandbreedte",
+ ["pe"]="عرض‌لبه‌راست",
+ ["ro"]="latimecoltdreapta",
+ },
+ ["rightmargindistance"]={
+ ["cs"]="vzdalenostpravemarginalie",
+ ["de"]="rechtemarginalafstand",
+ ["en"]="rightmargindistance",
+ ["fr"]="distancemargedroite",
+ ["it"]="distanzamarginedestro",
+ ["nl"]="rechtermargeafstand",
+ ["pe"]="فاصله‌حاشیه‌راست",
+ ["ro"]="distantamarginedreapta",
+ },
+ ["rightmarginwidth"]={
+ ["cs"]="sirkapravemarginalie",
+ ["de"]="rechtemarginalbreite",
+ ["en"]="rightmarginwidth",
+ ["fr"]="largeurmargedroite",
+ ["it"]="ampiezzamarginedestro",
+ ["nl"]="rechtermargebreedte",
+ ["pe"]="عرض‌حاشیه‌راست",
+ ["ro"]="latimemarginedreapta",
+ },
+ ["romannumerals"]={
+ ["cs"]="rimskecislice",
+ ["de"]="roemischezahlen",
+ ["en"]="romannumerals",
+ ["fr"]="chiffresromains",
+ ["it"]="numeriromani",
+ ["nl"]="romeins",
+ ["pe"]="اعدادلاتین",
+ ["ro"]="numereromane",
+ },
+ ["rotate"]={
+ ["cs"]="otocit",
+ ["de"]="drehen",
+ ["en"]="rotate",
+ ["fr"]="oriente",
+ ["it"]="ruota",
+ ["nl"]="roteer",
+ ["pe"]="دوران",
+ ["ro"]="roteste",
+ },
+ ["scale"]={
+ ["cs"]="meritko",
+ ["de"]="format",
+ ["en"]="scale",
+ ["fr"]="echelle",
+ ["it"]="scala",
+ ["nl"]="schaal",
+ ["pe"]="مقیاس",
+ ["ro"]="scala",
+ },
+ ["screen"]={
+ ["cs"]="obrazovka",
+ ["de"]="bildschirm",
+ ["en"]="screen",
+ ["fr"]="ecran",
+ ["it"]="schermo",
+ ["nl"]="scherm",
+ ["pe"]="پرده",
+ ["ro"]="ecran",
+ },
+ ["selectblocks"]={
+ ["cs"]="vyberbloky",
+ ["de"]="waehlebloeckeaus",
+ ["en"]="selectblocks",
+ ["fr"]="selectionneblocs",
+ ["it"]="selezionablocchi",
+ ["nl"]="selecteerblokken",
+ ["pe"]="انتخاب‌بلوکها",
+ ["ro"]="selecteazablocuri",
+ },
+ ["selectpaper"]={
+ ["cs"]="vyberpapir",
+ ["de"]="waehlepapieraus",
+ ["en"]="selectpaper",
+ ["fr"]="selectionnepapier",
+ ["it"]="selezionacarta",
+ ["nl"]="selecteerpapier",
+ ["pe"]="انتخاب‌برگ",
+ ["ro"]="selecteazahartie",
+ },
+ ["selectversion"]={
+ ["cs"]="vyberverzi",
+ ["de"]="waehleversionaus",
+ ["en"]="selectversion",
+ ["fr"]="selectionneversion",
+ ["it"]="selezionaversione",
+ ["nl"]="selecteerversie",
+ ["pe"]="انتخاب‌نسخه",
+ ["ro"]="selecteazaversiune",
+ },
+ ["setnumber"]={
+ ["cs"]="setnumber",
+ ["de"]="setnumber",
+ ["en"]="setnumber",
+ ["fr"]="affectenumero",
+ ["it"]="setnumber",
+ ["nl"]="setnummer",
+ ["pe"]="تعیین‌شماره",
+ ["ro"]="setnumber",
+ },
+ ["settextcontent"]={
+ ["cs"]="settextcontent",
+ ["de"]="settext",
+ ["en"]="settextcontent",
+ ["fr"]="settext",
+ ["it"]="settext",
+ ["nl"]="steltekstinhoudin",
+ ["pe"]="تعیین‌محتوای‌متن",
+ ["ro"]="settextcontent",
+ },
+ ["settextvariable"]={
+ ["cs"]="settextvariable",
+ ["de"]="settextvariable",
+ ["en"]="settextvariable",
+ ["fr"]="affectevariabletexte",
+ ["it"]="setvariabiletesto",
+ ["nl"]="kentekstvariabeletoe",
+ ["pe"]="تعیین‌متغیر‌متن",
+ ["ro"]="setvariabilatext",
+ },
+ ["setupalign"]={
+ ["cs"]="nastavzarovnani",
+ ["de"]="stelleausrichtungein",
+ ["en"]="setupalign",
+ ["fr"]="reglealignement",
+ ["it"]="impostaallineamento",
+ ["nl"]="steluitlijnenin",
+ ["pe"]="بارگذاری‌تنظیم",
+ ["ro"]="seteazaalinierea",
+ },
+ ["setupanswerarea"]={
+ ["cs"]="setupanswerarea",
+ ["de"]="setupanswerarea",
+ ["en"]="setupanswerarea",
+ ["fr"]="setupanswerarea",
+ ["it"]="setupanswerarea",
+ ["nl"]="stelantwoordgebiedin",
+ ["pe"]="setupanswerarea",
+ ["ro"]="setupanswerarea",
+ },
+ ["setuparranging"]={
+ ["cs"]="nastavusporadani",
+ ["de"]="stelleanordnenein",
+ ["en"]="setuparranging",
+ ["fr"]="reglearrangement",
+ ["it"]="impostaparranging",
+ ["nl"]="stelarrangerenin",
+ ["pe"]="بارگذاری‌ترتیب",
+ ["ro"]="seteazaaranjareapag",
+ },
+ ["setupbackground"]={
+ ["cs"]="nastavpozadi",
+ ["de"]="stellehintergrundein",
+ ["en"]="setupbackground",
+ ["fr"]="reglearriereplan",
+ ["it"]="impostasfondo",
+ ["nl"]="stelachtergrondin",
+ ["pe"]="بارگذاری‌پس‌زمینه",
+ ["ro"]="seteazafundal",
+ },
+ ["setupbackgrounds"]={
+ ["cs"]="nastavpozadi",
+ ["de"]="stellehintergruendeein",
+ ["en"]="setupbackgrounds",
+ ["fr"]="reglearriereplans",
+ ["it"]="impostasfondi",
+ ["nl"]="stelachtergrondenin",
+ ["pe"]="بارگذاری‌پس‌زمینه‌ها",
+ ["ro"]="seteazafundaluri",
+ },
+ ["setupblackrules"]={
+ ["cs"]="nastavcernelinky",
+ ["de"]="stellerechteckein",
+ ["en"]="setupblackrules",
+ ["fr"]="reglelignesnoires",
+ ["it"]="impostalineenere",
+ ["nl"]="stelblokjesin",
+ ["pe"]="بارگذاری‌خطهای‌سیاه",
+ ["ro"]="seteazaliniinegre",
+ },
+ ["setupblank"]={
+ ["cs"]="nastavpreskok",
+ ["de"]="stelleblankoein",
+ ["en"]="setupblank",
+ ["fr"]="definitvide",
+ ["it"]="impostarigovuoto",
+ ["nl"]="stelblankoin",
+ ["pe"]="بارگذاری‌خالی",
+ ["ro"]="seteazablanc",
+ },
+ ["setupblock"]={
+ ["cs"]="nastavblok",
+ ["de"]="stelleblockein",
+ ["en"]="setupblock",
+ ["fr"]="reglebloc",
+ ["it"]="impostablocco",
+ ["nl"]="stelblokin",
+ ["pe"]="بارگذاری‌بلوک",
+ ["ro"]="seteazabloc",
+ },
+ ["setupbodyfont"]={
+ ["cs"]="nastavzakladnifont",
+ ["de"]="stellefliesstextein",
+ ["en"]="setupbodyfont",
+ ["fr"]="reglepolicecorps",
+ ["it"]="impostafontdeltesto",
+ ["nl"]="stelkorpsin",
+ ["pe"]="بارگذاری‌قلم‌متن",
+ ["ro"]="seteazafonttext",
+ },
+ ["setupbodyfontenvironment"]={
+ ["cs"]="nastavprostredizakladnihofontu",
+ ["de"]="stellefliesstextumgebungein",
+ ["en"]="setupbodyfontenvironment",
+ ["fr"]="regleenvironnementpolicecorps",
+ ["it"]="impostaambientefontdeltesto",
+ ["nl"]="stelkorpsomgevingin",
+ ["pe"]="بارگذاری‌محیط‌قلم‌متن",
+ ["ro"]="seteazamediulfonttext",
+ },
+ ["setupbottom"]={
+ ["cs"]="nastavspodek",
+ ["de"]="stelleuntenein",
+ ["en"]="setupbottom",
+ ["fr"]="regleinf",
+ ["it"]="impostafondo",
+ ["nl"]="stelonderin",
+ ["pe"]="بارگذاری‌پایین",
+ ["ro"]="seteazajos",
+ },
+ ["setupbottomtexts"]={
+ ["cs"]="nastavdolnitexty",
+ ["de"]="stelletextuntenein",
+ ["en"]="setupbottomtexts",
+ ["fr"]="regletextesinf",
+ ["it"]="impostatestifondo",
+ ["nl"]="stelondertekstenin",
+ ["pe"]="بارگذاری‌متن‌پایین",
+ ["ro"]="seteazatextejos",
+ },
+ ["setupbuffer"]={
+ ["cs"]="nastavbuffer",
+ ["de"]="stellepufferein",
+ ["en"]="setupbuffer",
+ ["fr"]="reglebuffer",
+ ["it"]="impostabuffer",
+ ["nl"]="stelbufferin",
+ ["pe"]="بارگذاری‌بافر",
+ ["ro"]="seteazabuffer",
+ },
+ ["setupbuttons"]={
+ ["cs"]="nastavtlacitka",
+ ["de"]="stelleknopfein",
+ ["en"]="setupbuttons",
+ ["fr"]="regleboutons",
+ ["it"]="impostapulsanti",
+ ["nl"]="stelbuttonsin",
+ ["pe"]="بارگذاری‌دکمه‌ها",
+ ["ro"]="seteazabutoane",
+ },
+ ["setupcapitals"]={
+ ["cs"]="nastavkapitalky",
+ ["de"]="stelleversalienein",
+ ["en"]="setupcapitals",
+ ["fr"]="reglecapitales",
+ ["it"]="impostamaiuscole",
+ ["nl"]="stelkapitalenin",
+ ["pe"]="setupcapitals",
+ ["ro"]="seteazamajuscule",
+ },
+ ["setupcaption"]={
+ ["cs"]="nastavpopisek",
+ ["de"]="stellebildunterschriftein",
+ ["en"]="setupcaption",
+ ["fr"]="regleintitule",
+ ["it"]="impostacaption",
+ ["nl"]="stelblokkopjein",
+ ["pe"]="بارگذاری‌شرح",
+ ["ro"]="seteazalegenda",
+ },
+ ["setupcaptions"]={
+ ["cs"]="nastavpopisky",
+ ["de"]="stellebilderunterschriftein",
+ ["en"]="setupcaptions",
+ ["fr"]="regleintitules",
+ ["it"]="impostacaptions",
+ ["nl"]="stelblokkopjesin",
+ ["pe"]="بارگذاری‌شرحها",
+ ["ro"]="seteazalegendele",
+ },
+ ["setupclipping"]={
+ ["cs"]="nastavorez",
+ ["de"]="stelleausschnittein",
+ ["en"]="setupclipping",
+ ["fr"]="regleclipping",
+ ["it"]="impostaclippling",
+ ["nl"]="stelclipin",
+ ["pe"]="بارگذاری‌چیدن",
+ ["ro"]="seteazaclipping",
+ },
+ ["setupcolor"]={
+ ["cs"]="nastavbarvu",
+ ["de"]="stellefarbeein",
+ ["en"]="setupcolor",
+ ["fr"]="reglecouleur",
+ ["it"]="impostacolore",
+ ["nl"]="stelkleurin",
+ ["pe"]="بارگذاری‌رنگ",
+ ["ro"]="seteazaculoare",
+ },
+ ["setupcolors"]={
+ ["cs"]="nastavbarvy",
+ ["de"]="stellefarbenein",
+ ["en"]="setupcolors",
+ ["fr"]="reglecouleurs",
+ ["it"]="impostacolori",
+ ["nl"]="stelkleurenin",
+ ["pe"]="بارگذاری‌رنگها",
+ ["ro"]="seteazaculori",
+ },
+ ["setupcolumns"]={
+ ["cs"]="nastavsloupce",
+ ["de"]="stellespaltenein",
+ ["en"]="setupcolumns",
+ ["fr"]="reglecolonnes",
+ ["it"]="impostacolonne",
+ ["nl"]="stelkolommenin",
+ ["pe"]="بارگذاری‌ستونها",
+ ["ro"]="seteazacoloane",
+ },
+ ["setupcolumnset"]={
+ ["cs"]="setupcolumnset",
+ ["de"]="setupcolumnset",
+ ["en"]="setupcolumnset",
+ ["fr"]="reglejeucolonne",
+ ["it"]="impostagruppocolonne",
+ ["nl"]="stelkolomgroepin",
+ ["pe"]="بارگذاری‌مجموعه‌ستون",
+ ["ro"]="setupcolumnset",
+ },
+ ["setupcolumnsetlines"]={
+ ["cs"]="setupcolumnsetlines",
+ ["de"]="setupcolumnsetlines",
+ ["en"]="setupcolumnsetlines",
+ ["fr"]="setupcolumnsetlines",
+ ["it"]="setupcolumnsetlines",
+ ["nl"]="stelkolomgroepregelsin",
+ ["pe"]="بارگذاری‌خطهای‌مجموعه‌ستون",
+ ["ro"]="setupcolumnsetlines",
+ },
+ ["setupcolumnsetstart"]={
+ ["cs"]="setupcolumnsetstart",
+ ["de"]="setupcolumnsetstart",
+ ["en"]="setupcolumnsetstart",
+ ["fr"]="setupcolumnsetstart",
+ ["it"]="setupcolumnsetstart",
+ ["nl"]="stelkolomgroepstartin",
+ ["pe"]="بارگذاری‌شروع‌مجموعه‌ستون",
+ ["ro"]="setupcolumnsetstart",
+ },
+ ["setupcombinations"]={
+ ["cs"]="nastavspojeni",
+ ["de"]="stellekombinationein",
+ ["en"]="setupcombinations",
+ ["fr"]="reglecombinaisons",
+ ["it"]="impostacombinazioni",
+ ["nl"]="stelcombinatiesin",
+ ["pe"]="بارگذاری‌ترکیب‌ها",
+ ["ro"]="seteazacombinari",
+ },
+ ["setupcombinedlist"]={
+ ["cs"]="nastavkombinovanyseznam",
+ ["de"]="stellezusammengestelltelisteein",
+ ["en"]="setupcombinedlist",
+ ["fr"]="reglelisteimbriquee",
+ ["it"]="impostaelencocombinato",
+ ["nl"]="stelsamengesteldelijstin",
+ ["pe"]="بارگذاری‌لیست‌ترکیبی",
+ ["ro"]="seteazalistacombinata",
+ },
+ ["setupcomment"]={
+ ["cs"]="nastavkomentar",
+ ["de"]="stellekommentarein",
+ ["en"]="setupcomment",
+ ["fr"]="reglecommentaire",
+ ["it"]="impostacommento",
+ ["nl"]="stelcommentaarin",
+ ["pe"]="بارگذاری‌توضیح",
+ ["ro"]="seteazacomentariu",
+ },
+ ["setupdescriptions"]={
+ ["cs"]="nastavpopisy",
+ ["de"]="definierebeschreibungen",
+ ["en"]="setupdescriptions",
+ ["fr"]="regledescriptions",
+ ["it"]="impostadescrizioni",
+ ["nl"]="steldoordefinierenin",
+ ["pe"]="بارگذاری‌شرح",
+ ["ro"]="seteazadescriere",
+ },
+ ["setupenumerations"]={
+ ["cs"]="nastavvycty",
+ ["de"]="stellebeschreibungein",
+ ["en"]="setupenumerations",
+ ["fr"]="regleenumerations",
+ ["it"]="impostaenumerazioni",
+ ["nl"]="steldoornummerenin",
+ ["pe"]="بارگذاری‌شماره‌گذاریها",
+ ["ro"]="seteazaenumerare",
+ },
+ ["setupexternalfigures"]={
+ ["cs"]="nastavexterniobrazy",
+ ["de"]="stelleexterneabbildungenein",
+ ["en"]="setupexternalfigures",
+ ["fr"]="reglefiguresexternes",
+ ["it"]="impostafigureesterne",
+ ["nl"]="stelexternefigurenin",
+ ["pe"]="بارگذاری‌شکلهای‌خارجی",
+ ["ro"]="seteazafiguriexterne",
+ },
+ ["setupfield"]={
+ ["cs"]="nastavpole",
+ ["de"]="stellefeldein",
+ ["en"]="setupfield",
+ ["fr"]="reglechamp",
+ ["it"]="impostacampo",
+ ["nl"]="stelveldin",
+ ["pe"]="بارگذاری‌میدان",
+ ["ro"]="seteazacamp",
+ },
+ ["setupfields"]={
+ ["cs"]="nastavvsechnapole",
+ ["de"]="stellefelderin",
+ ["en"]="setupfields",
+ ["fr"]="reglechamps",
+ ["it"]="impostacampi",
+ ["nl"]="stelveldenin",
+ ["pe"]="بارگذاری‌میدانها",
+ ["ro"]="seteazacampuri",
+ },
+ ["setupfillinlines"]={
+ ["cs"]="nastavvyplnoveradky",
+ ["de"]="stellegefuelltezeileein",
+ ["en"]="setupfillinlines",
+ ["fr"]="regleremplitligne",
+ ["it"]="impostarigheriempimento",
+ ["nl"]="stelinvulregelsin",
+ ["pe"]="بارگذاری‌پرکردن‌خطها",
+ ["ro"]="seteazaliniiumplere",
+ },
+ ["setupfillinrules"]={
+ ["cs"]="nastavvyplnovelinky",
+ ["de"]="stellegefuelltesrechteckein",
+ ["en"]="setupfillinrules",
+ ["fr"]="regleremplitlignesreglees",
+ ["it"]="impostalineeriempimento",
+ ["nl"]="stelinvullijnenin",
+ ["pe"]="بارگذاری‌درج‌درخطها",
+ ["ro"]="seteazarigleumplere",
+ },
+ ["setupfloat"]={
+ ["cs"]="nastavplvouciobjekt",
+ ["de"]="stellegleitobjektein",
+ ["en"]="setupfloat",
+ ["fr"]="regleflottant",
+ ["it"]="impostaoggettomobile",
+ ["nl"]="stelplaatsblokin",
+ ["pe"]="بارگذاری‌شناور",
+ ["ro"]="seteazafloat",
+ },
+ ["setupfloats"]={
+ ["cs"]="nastavplvouciobjekty",
+ ["de"]="stellegleitobjekteein",
+ ["en"]="setupfloats",
+ ["fr"]="regleflottants",
+ ["it"]="impostaoggettimobili",
+ ["nl"]="stelplaatsblokkenin",
+ ["pe"]="بارگذاری‌شناورها",
+ ["ro"]="seteazafloats",
+ },
+ ["setupfloatsplitting"]={
+ ["cs"]="nastavdeleniplvoucichobjektu",
+ ["de"]="stelleplatziegeteiltegleitobjekt",
+ ["en"]="setupfloatsplitting",
+ ["fr"]="regleseparationflottant",
+ ["it"]="impostaspezzamentooggettomobile",
+ ["nl"]="stelplaatsbloksplitsenin",
+ ["pe"]="بارگذاری‌شکافتن‌شناورها",
+ ["ro"]="seteazaimpartireafloat",
+ },
+ ["setupfooter"]={
+ ["cs"]="nastavupati",
+ ["de"]="stellefusszeileein",
+ ["en"]="setupfooter",
+ ["fr"]="reglepdp",
+ ["it"]="impostapdp",
+ ["nl"]="stelvoetin",
+ ["pe"]="بارگذاری‌ته‌برگ",
+ ["ro"]="seteazasubsol",
+ },
+ ["setupfootertexts"]={
+ ["cs"]="nastavtextyupati",
+ ["de"]="stellefusszeilentextein",
+ ["en"]="setupfootertexts",
+ ["fr"]="regletextespdp",
+ ["it"]="impostatestipdp",
+ ["nl"]="stelvoettekstenin",
+ ["pe"]="بارگذاری‌متن‌پانوشت",
+ ["ro"]="seteazatextesubsol",
+ },
+ ["setupfootnotedefinition"]={
+ ["cs"]="nastavdefinicipoznamekpodcarou",
+ ["de"]="stellefussnotendefinitionein",
+ ["en"]="setupfootnotedefinition",
+ ["fr"]="definitnotepdp",
+ ["it"]="impostadefinizionenotepdp",
+ ["nl"]="stelvoetnootdefinitiein",
+ ["pe"]="بارگذاری‌تعریف‌پانوشت",
+ ["ro"]="seteazadefinireanotasubsol",
+ },
+ ["setupfootnotes"]={
+ ["cs"]="nastavpoznamkypodcarou",
+ ["de"]="stellefussnotenein",
+ ["en"]="setupfootnotes",
+ ["fr"]="reglenotepdp",
+ ["it"]="impostanotepdp",
+ ["nl"]="stelvoetnotenin",
+ ["pe"]="بارگذاری‌پانوشتها",
+ ["ro"]="seteazanotasubsol",
+ },
+ ["setupforms"]={
+ ["cs"]="setupforms",
+ ["de"]="setupforms",
+ ["en"]="setupforms",
+ ["fr"]="regleformulaires",
+ ["it"]="impostaforms",
+ ["nl"]="stelformulierenin",
+ ["pe"]="بارگذاری‌طرح",
+ ["ro"]="seteazaformulare",
+ },
+ ["setupformulas"]={
+ ["cs"]="nastavrovnice",
+ ["de"]="stelleformelnein",
+ ["en"]="setupformulae",
+ ["fr"]="regleformules",
+ ["it"]="impostaformule",
+ ["nl"]="stelformulesin",
+ ["pe"]="بارگذاری‌فرمولها",
+ ["ro"]="seteazaformule",
+ },
+ ["setupframed"]={
+ ["cs"]="nastavoramovani",
+ ["de"]="stelleumrahmtein",
+ ["en"]="setupframed",
+ ["fr"]="regleencadre",
+ ["it"]="impostaincorniciato",
+ ["nl"]="stelomlijndin",
+ ["pe"]="بارگذاری‌قالبی",
+ ["ro"]="seteazainconjurat",
+ },
+ ["setupframedtexts"]={
+ ["cs"]="nastavoramovanetexty",
+ ["de"]="stelleumrahmtetexteein",
+ ["en"]="setupframedtexts",
+ ["fr"]="setupframedtexts",
+ ["it"]="impostatestiincorniciati",
+ ["nl"]="stelkadertekstenin",
+ ["pe"]="بارگذاری‌متن‌قالبی",
+ ["ro"]="definestetexteinconjurate",
+ },
+ ["setuphead"]={
+ ["cs"]="nastavnadpis",
+ ["de"]="stelleueberschriftein",
+ ["en"]="setuphead",
+ ["fr"]="regletete",
+ ["it"]="impostatesta",
+ ["nl"]="stelkopin",
+ ["pe"]="بارگذاری‌سر",
+ ["ro"]="seteazatitlu",
+ },
+ ["setupheader"]={
+ ["cs"]="nastavzahlavi",
+ ["de"]="stellekopfzeileein",
+ ["en"]="setupheader",
+ ["fr"]="regleentete",
+ ["it"]="impostainstestazione",
+ ["nl"]="stelhoofdin",
+ ["pe"]="بارگذاری‌سربرگ",
+ ["ro"]="seteazaantet",
+ },
+ ["setupheadertexts"]={
+ ["cs"]="nastavtextyzahlavi",
+ ["de"]="stellekopfzeilentextein",
+ ["en"]="setupheadertexts",
+ ["fr"]="regletextesentete",
+ ["it"]="impostatestiintestazioni",
+ ["nl"]="stelhoofdtekstenin",
+ ["pe"]="بارگذاری‌متن‌سربرگ",
+ ["ro"]="seteazatexteantet",
+ },
+ ["setupheadnumber"]={
+ ["cs"]="nastavcislonadpisu",
+ ["de"]="stellekopfzahlein",
+ ["en"]="setupheadnumber",
+ ["fr"]="reglenumerotete",
+ ["it"]="impostanumerotesta",
+ ["nl"]="stelkopnummerin",
+ ["pe"]="بارگذاری‌شماره‌سر",
+ ["ro"]="seteazanumartitlu",
+ },
+ ["setupheads"]={
+ ["cs"]="nastavnadpisy",
+ ["de"]="stelleueberschriftenein",
+ ["en"]="setupheads",
+ ["fr"]="regletetes",
+ ["it"]="impostateste",
+ ["nl"]="stelkoppenin",
+ ["pe"]="بارگذاری‌سرها",
+ ["ro"]="seteazatitluri",
+ },
+ ["setupheadtext"]={
+ ["cs"]="nastavtexthlavicky",
+ ["de"]="stelleueberschrifttextein",
+ ["en"]="setupheadtext",
+ ["fr"]="regletextetete",
+ ["it"]="impostatestointestazioni",
+ ["nl"]="stelkoptekstin",
+ ["pe"]="بارگذاری‌متن‌سر",
+ ["ro"]="seteazatexttitlu",
+ },
+ ["setuphyphenmark"]={
+ ["cs"]="nastavdelitko",
+ ["de"]="stellebindestrichein",
+ ["en"]="setuphyphenmark",
+ ["fr"]="reglemarquagehyphenation",
+ ["it"]="impostasegnosillabazione",
+ ["nl"]="stelkoppeltekenin",
+ ["pe"]="بارگذاری‌نشانه‌شکستن",
+ ["ro"]="seteazaliniesilabe",
+ },
+ ["setupindentations"]={
+ ["cs"]="nastavodsazeni",
+ ["de"]="stelleeinzuegein",
+ ["en"]="setupindentations",
+ ["fr"]="reglealineas",
+ ["it"]="impostarientri",
+ ["nl"]="steldoorspringenin",
+ ["pe"]="بارگذاری‌تورفتگیها",
+ ["ro"]="seteazaaliniate",
+ },
+ ["setupindenting"]={
+ ["cs"]="nastavodsazovani",
+ ["de"]="stelleeinziehenein",
+ ["en"]="setupindenting",
+ ["fr"]="reglecomposeenalinea",
+ ["it"]="impostarientro",
+ ["nl"]="stelinspringenin",
+ ["pe"]="بارگذاری‌تورفتگی",
+ ["ro"]="seteazaaliniat",
+ },
+ ["setupinmargin"]={
+ ["cs"]="nastavmarginalie",
+ ["de"]="stelleinmarginalieein",
+ ["en"]="setupinmargin",
+ ["fr"]="regledansmarge",
+ ["it"]="impostainmargine",
+ ["nl"]="stelinmargein",
+ ["pe"]="بارگذاری‌درون‌حاشیه",
+ ["ro"]="seteazamarginal",
+ },
+ ["setupinteraction"]={
+ ["cs"]="nastavinterakci",
+ ["de"]="stelleinteraktionein",
+ ["en"]="setupinteraction",
+ ["fr"]="regleinteraction",
+ ["it"]="impostainterazione",
+ ["nl"]="stelinteractiein",
+ ["pe"]="بارگذاری‌پانل",
+ ["ro"]="seteazainteractiunea",
+ },
+ ["setupinteractionbar"]={
+ ["cs"]="nastavinterakcnilistu",
+ ["de"]="stelleinteraktionsbalkenein",
+ ["en"]="setupinteractionbar",
+ ["fr"]="reglebarreinteraction",
+ ["it"]="impostabarrainterazione",
+ ["nl"]="stelinteractiebalkin",
+ ["pe"]="بارگذاری‌میله‌پانل",
+ ["ro"]="seteazabarainteractiune",
+ },
+ ["setupinteractionmenu"]={
+ ["cs"]="nastavinterakcnimenu",
+ ["de"]="stelleinteraktionsmenueein",
+ ["en"]="setupinteractionmenu",
+ ["fr"]="reglemenuinteraction",
+ ["it"]="impostamenuinterazione",
+ ["nl"]="stelinteractiemenuin",
+ ["pe"]="بارگذاری‌منوی‌پانل",
+ ["ro"]="seteazameniuinteractiune",
+ },
+ ["setupinteractionscreen"]={
+ ["cs"]="nastavinterakcniobrazovku",
+ ["de"]="stelleinteraktionsbildschirmein",
+ ["en"]="setupinteractionscreen",
+ ["fr"]="regleecraninteraction",
+ ["it"]="impostaschermointerazione",
+ ["nl"]="stelinteractieschermin",
+ ["pe"]="بارگذاری‌پرده‌پانل",
+ ["ro"]="seteazaecraninteractiune",
+ },
+ ["setupinterlinespace"]={
+ ["cs"]="nastavmeziradkovoumezeru",
+ ["de"]="stellezeilenabstandein",
+ ["en"]="setupinterlinespace",
+ ["fr"]="regleespacementinterligne",
+ ["it"]="impostainterlinea",
+ ["nl"]="stelinterliniein",
+ ["pe"]="بارگذاری‌فاصله‌بین‌خط",
+ ["ro"]="seteazaspatiuinterliniar",
+ },
+ ["setupitemgroup"]={
+ ["cs"]="setupitemgroup",
+ ["de"]="setupitemgroup",
+ ["en"]="setupitemgroup",
+ ["fr"]="setupitemgroup",
+ ["it"]="setupitemgroup",
+ ["nl"]="stelitemgroepin",
+ ["pe"]="بارگذاری‌گروه‌آیتم",
+ ["ro"]="setupitemgroup",
+ },
+ ["setupitemgroups"]={
+ ["cs"]="nastavvycty",
+ ["de"]="stelleaufzaehlungenein",
+ ["en"]="setupitemizations",
+ ["fr"]="reglegroupeselements",
+ ["it"]="impostaelencazioni",
+ ["nl"]="stelopsommingenin",
+ ["pe"]="بارگذاری‌گروههای‌آیتم",
+ ["ro"]="setareitemization",
+ },
+ ["setupitems"]={
+ ["cs"]="nastavpolozky",
+ ["de"]="stellepostenein",
+ ["en"]="setupitems",
+ ["fr"]="regleelements",
+ ["it"]="impostaelementi",
+ ["nl"]="stelitemsin",
+ ["pe"]="بارگذاری‌آیتمها",
+ ["ro"]="seteazaelemente",
+ },
+ ["setuplabeltext"]={
+ ["cs"]="nastavtextpopisku",
+ ["de"]="stellelabeltextein",
+ ["en"]="setuplabeltext",
+ ["fr"]="reglelabeltexte",
+ ["it"]="impostatestoetichette",
+ ["nl"]="stellabeltekstin",
+ ["pe"]="باگذاری‌متن‌برچسب",
+ ["ro"]="seteazatexteticheta",
+ },
+ ["setuplanguage"]={
+ ["cs"]="nastavjazyk",
+ ["de"]="stellespracheein",
+ ["en"]="setuplanguage",
+ ["fr"]="reglelangue",
+ ["it"]="impostalingua",
+ ["nl"]="steltaalin",
+ ["pe"]="بارگذاری‌زبان",
+ ["ro"]="setarelimba",
+ },
+ ["setuplayout"]={
+ ["cs"]="nastavvzhled",
+ ["de"]="stellelayoutein",
+ ["en"]="setuplayout",
+ ["fr"]="regledisposition",
+ ["it"]="impostalayout",
+ ["nl"]="stellayoutin",
+ ["pe"]="بارگذاری‌طرح‌بندی",
+ ["ro"]="seteazaaspect",
+ },
+ ["setuplegend"]={
+ ["cs"]="nastavlegendu",
+ ["de"]="stellelegendeein",
+ ["en"]="setuplegend",
+ ["fr"]="reglelegende",
+ ["it"]="impostalegenda",
+ ["nl"]="stellegendain",
+ ["pe"]="بارگذاری‌راهنما",
+ ["ro"]="seteazalegenda",
+ },
+ ["setuplinenumbering"]={
+ ["cs"]="nastavcislovaniradku",
+ ["de"]="stellezeilennumerierungein",
+ ["en"]="setuplinenumbering",
+ ["fr"]="reglenumerotationligne",
+ ["it"]="impostanumerazionerighe",
+ ["nl"]="stelregelnummerenin",
+ ["pe"]="بارگذاری‌شماره‌‌گذاری‌خط",
+ ["ro"]="seteazanumerotarelinii",
+ },
+ ["setuplines"]={
+ ["cs"]="nastavradky",
+ ["de"]="stellezeilenein",
+ ["en"]="setuplines",
+ ["fr"]="reglelignes",
+ ["it"]="impostarighe",
+ ["nl"]="stelregelsin",
+ ["pe"]="بارگذاری‌خطها",
+ ["ro"]="seteazalinii",
+ },
+ ["setuplinewidth"]={
+ ["cs"]="nastavsirkucary",
+ ["de"]="stellelinienbreiteein",
+ ["en"]="setuplinewidth",
+ ["fr"]="regleepaisseurligne",
+ ["it"]="impostaampiezzariga",
+ ["nl"]="stellijndiktein",
+ ["pe"]="بارگذاری‌عرض‌خط",
+ ["ro"]="seteazagrosimelinie",
+ },
+ ["setuplist"]={
+ ["cs"]="nastavseznam",
+ ["de"]="stellelisteein",
+ ["en"]="setuplist",
+ ["fr"]="regleliste",
+ ["it"]="impostaelenco",
+ ["nl"]="stellijstin",
+ ["pe"]="بارگذاری‌لیست",
+ ["ro"]="seteazalista",
+ },
+ ["setupmakeup"]={
+ ["cs"]="nastavupravu",
+ ["de"]="stelleumbruchein",
+ ["en"]="setupmakeup",
+ ["fr"]="reglemakeup",
+ ["it"]="impostamakeup",
+ ["nl"]="stelopmaakin",
+ ["pe"]="بارگذاری‌آرایش",
+ ["ro"]="seteazamakeup",
+ },
+ ["setupmarginblocks"]={
+ ["cs"]="nastavmarginalniblok",
+ ["de"]="stellemarginalblockein",
+ ["en"]="setupmarginblocks",
+ ["fr"]="regleblocmarge",
+ ["it"]="impostablocchimargine",
+ ["nl"]="stelmargeblokkenin",
+ ["pe"]="بارگذاری‌بلوکهای‌حاشیه",
+ ["ro"]="seteazablocurimarginale",
+ },
+ ["setupmarginrules"]={
+ ["cs"]="nastavmarginalnilinky",
+ ["de"]="stellemarginallinieein",
+ ["en"]="setupmarginrules",
+ ["fr"]="reglemargereglee",
+ ["it"]="impostalineemargine",
+ ["nl"]="stelkantlijnin",
+ ["pe"]="بارگذاری‌خطهای‌حاشیه",
+ ["ro"]="seteazaliniimargine",
+ },
+ ["setupmarking"]={
+ ["cs"]="nastavznaceni",
+ ["de"]="stellebeschriftungein",
+ ["en"]="setupmarking",
+ ["fr"]="reglemarquage",
+ ["it"]="impostamarcatura",
+ ["nl"]="stelmarkeringin",
+ ["pe"]="بارگذاری‌نشانه‌گذاری",
+ ["ro"]="seteazamarcaje",
+ },
+ ["setupmathalignment"]={
+ ["cs"]="setupmathalignment",
+ ["de"]="setupmathalignment",
+ ["en"]="setupmathalignment",
+ ["fr"]="setupmathalignment",
+ ["it"]="setupmathalignment",
+ ["nl"]="stelwiskundeuitlijnenin",
+ ["pe"]="بارگذاری‌تنظیم‌ریاضی",
+ ["ro"]="setupmathalignment",
+ },
+ ["setupnarrower"]={
+ ["cs"]="nastavzuzeni",
+ ["de"]="stelleengerein",
+ ["en"]="setupnarrower",
+ ["fr"]="reglecompoetroite",
+ ["it"]="impostapiustretto",
+ ["nl"]="stelsmallerin",
+ ["pe"]="بارگذاری‌باریکتر",
+ ["ro"]="seteazaingust",
+ },
+ ["setupnumber"]={
+ ["cs"]="setupnumber",
+ ["de"]="setupnumber",
+ ["en"]="setupnumber",
+ ["fr"]="reglenumero",
+ ["it"]="impostanumerazione",
+ ["nl"]="stelnummerin",
+ ["pe"]="بارگذاری‌شماره",
+ ["ro"]="setupnumber",
+ },
+ ["setupnumbering"]={
+ ["cs"]="nastavcislovani",
+ ["de"]="stellenummerierungein",
+ ["en"]="setupnumbering",
+ ["fr"]="reglenumerotation",
+ ["it"]="impostanumerazione",
+ ["nl"]="stelnummerenin",
+ ["pe"]="بارگذاری‌شماره‌گذاری",
+ ["ro"]="seteazanumerotare",
+ },
+ ["setupoppositeplacing"]={
+ ["cs"]="nastavumisteniprotejsku",
+ ["de"]="stellegegenueberplatzierenein",
+ ["en"]="setupoppositeplacing",
+ ["fr"]="regleplacementopposition",
+ ["it"]="impostaposizionamentoopposti",
+ ["nl"]="stelnaastplaatsenin",
+ ["pe"]="بارگذاری‌درج‌مخالف",
+ ["ro"]="seteazaplasareaopozita",
+ },
+ ["setupoutput"]={
+ ["cs"]="nastavvystup",
+ ["de"]="stelleausgabeein",
+ ["en"]="setupoutput",
+ ["fr"]="reglesortie",
+ ["it"]="impostaoutput",
+ ["nl"]="steluitvoerin",
+ ["pe"]="بارگذاری‌خروجی",
+ ["ro"]="setareoutput",
+ },
+ ["setuppagecomment"]={
+ ["cs"]="nastavkomentarstrany",
+ ["de"]="stelleseitenkommentarein",
+ ["en"]="setuppagecomment",
+ ["fr"]="reglecommentairepage",
+ ["it"]="impostacommentopagina",
+ ["nl"]="stelpaginacommentaarin",
+ ["pe"]="بارگذاری‌توضیح‌صفحه",
+ ["ro"]="seteazacomentariupagina",
+ },
+ ["setuppagenumber"]={
+ ["cs"]="nastavcislostrany",
+ ["de"]="stelleseitennummerein",
+ ["en"]="setuppagenumber",
+ ["fr"]="reglenumeropage",
+ ["it"]="impostanumeropagina",
+ ["nl"]="stelpaginanummerin",
+ ["pe"]="بارگذاری‌شماره‌صفحه",
+ ["ro"]="seteazanumarpagina",
+ },
+ ["setuppagenumbering"]={
+ ["cs"]="nastavcislovanistran",
+ ["de"]="stelleseitennummeriernungein",
+ ["en"]="setuppagenumbering",
+ ["fr"]="reglenumerotationpage",
+ ["it"]="impostanumerazionepagina",
+ ["nl"]="stelpaginanummeringin",
+ ["pe"]="بارگذاری‌شماره‌گذاری‌صفحه",
+ ["ro"]="seteazanumerotarepagina",
+ },
+ ["setuppagetransitions"]={
+ ["cs"]="nastavprechodstrany",
+ ["de"]="stelleseitenuebergangein",
+ ["en"]="setuppagetransitions",
+ ["fr"]="regletransitionspage",
+ ["it"]="impostatransizionepagina",
+ ["nl"]="stelpaginaovergangenin",
+ ["pe"]="بارگذاری‌گذارصفحه",
+ ["ro"]="seteazatranzitiepagina",
+ },
+ ["setuppalet"]={
+ ["cs"]="nastavpaletu",
+ ["de"]="stellepaletteein",
+ ["en"]="setuppalet",
+ ["fr"]="reglepalette",
+ ["it"]="impostatavolozza",
+ ["nl"]="stelpaletin",
+ ["pe"]="بارگذاری‌لوح",
+ ["ro"]="seteazapaleta",
+ },
+ ["setuppaper"]={
+ ["cs"]="setuppaper",
+ ["de"]="setuppaper",
+ ["en"]="setuppaper",
+ ["fr"]="reglepapier",
+ ["it"]="setuppaper",
+ ["nl"]="stelpapierin",
+ ["pe"]="بارگذاری‌برگ",
+ ["ro"]="setuppaper",
+ },
+ ["setuppapersize"]={
+ ["cs"]="nastavvelikostpapiru",
+ ["de"]="stellepapierformatein",
+ ["en"]="setuppapersize",
+ ["fr"]="regletaillepapier",
+ ["it"]="impostadimensionicarta",
+ ["nl"]="stelpapierformaatin",
+ ["pe"]="بارگذاری‌اندازه‌برگ",
+ ["ro"]="seteazadimensiunihartie",
+ },
+ ["setupparagraphnumbering"]={
+ ["cs"]="nastavcislovaniodstavcu",
+ ["de"]="stelleabsatznummerierungein",
+ ["en"]="setupparagraphnumbering",
+ ["fr"]="reglenumerotationparagraphe",
+ ["it"]="impostanumerazionecapoversi",
+ ["nl"]="stelparagraafnummerenin",
+ ["pe"]="بارگذاری‌شماره‌گذاری‌پاراگراف",
+ ["ro"]="seteazanumerotareparagrafe",
+ },
+ ["setupparagraphs"]={
+ ["cs"]="nastavodstavce",
+ ["de"]="stelleabsaetzeein",
+ ["en"]="setupparagraphs",
+ ["fr"]="regleparagraphes",
+ ["it"]="impostacapoversi",
+ ["nl"]="stelalineasin",
+ ["pe"]="بارگذاری‌پاراگرافها",
+ ["ro"]="seteazaparagrafe",
+ },
+ ["setupplacement"]={
+ ["cs"]="setupplacement",
+ ["de"]="setupplacement",
+ ["en"]="setupplacement",
+ ["fr"]="setupplacement",
+ ["it"]="setupplacement",
+ ["nl"]="stelplaatsin",
+ ["pe"]="بارگذاری‌جانشانی",
+ ["ro"]="setupplacement",
+ },
+ ["setuppositioning"]={
+ ["cs"]="nastavumistovani",
+ ["de"]="stellepositionierenein",
+ ["en"]="setuppositioning",
+ ["fr"]="reglepositionnement",
+ ["it"]="impostaposizionamento",
+ ["nl"]="stelpositionerenin",
+ ["pe"]="بارگذاری‌مکان‌گذاری",
+ ["ro"]="setarepozitie",
+ },
+ ["setupprofiles"]={
+ ["cs"]="nastavprofily",
+ ["de"]="stelleprofilein",
+ ["en"]="setupprofiles",
+ ["fr"]="regleprofils",
+ ["it"]="impostaprofili",
+ ["nl"]="stelprofielenin",
+ ["pe"]="بارگذاری‌پروفایلها",
+ ["ro"]="seteazaprofile",
+ },
+ ["setupprograms"]={
+ ["cs"]="nastavprogramy",
+ ["de"]="stelleprogrammein",
+ ["en"]="setupprograms",
+ ["fr"]="regleprogrammes",
+ ["it"]="impostaprogrammi",
+ ["nl"]="stelprogrammasin",
+ ["pe"]="بارگذاری‌برنامه‌ها",
+ ["ro"]="seteazaprograme",
+ },
+ ["setuppublications"]={
+ ["cs"]="nastavpublikace",
+ ["de"]="stellepublikationein",
+ ["en"]="setuppublications",
+ ["fr"]="reglepublications",
+ ["it"]="impostapubblicazioni",
+ ["nl"]="stelpublicatiesin",
+ ["pe"]="بارگذاری‌نشرها",
+ ["ro"]="seteazapublicatii",
+ },
+ ["setupquote"]={
+ ["cs"]="nastavcitaci",
+ ["de"]="stellezitierenein",
+ ["en"]="setupquote",
+ ["fr"]="demarreciter",
+ ["it"]="impostamenzione",
+ ["nl"]="stelciterenin",
+ ["pe"]="بارگذاری‌نقل",
+ ["ro"]="seteazaminicitat",
+ },
+ ["setupreferencelist"]={
+ ["cs"]="nastavseznamodkazu",
+ ["de"]="stellereferenzlisteein",
+ ["en"]="setupreferencelist",
+ ["fr"]="reglelistereference",
+ ["it"]="impostalistariferimenti",
+ ["nl"]="stelreferentielijstin",
+ ["pe"]="بارگذاری‌لیست‌مرجع",
+ ["ro"]="seteazalistareferinte",
+ },
+ ["setupreferencing"]={
+ ["cs"]="nastavodkazovani",
+ ["de"]="stellereferenzierenein",
+ ["en"]="setupreferencing",
+ ["fr"]="reglereferencage",
+ ["it"]="impostariferimento",
+ ["nl"]="stelrefererenin",
+ ["pe"]="بارگذاری‌ارجاع",
+ ["ro"]="seteazareferinte",
+ },
+ ["setupregister"]={
+ ["cs"]="nastavrejstrik",
+ ["de"]="stelleregisterein",
+ ["en"]="setupregister",
+ ["fr"]="regleregistre",
+ ["it"]="impostaregistro",
+ ["nl"]="stelregisterin",
+ ["pe"]="بارگذاری‌ثبت",
+ ["ro"]="seteazaregistru",
+ },
+ ["setuprotate"]={
+ ["cs"]="nastavotoceni",
+ ["de"]="stelledrehenein",
+ ["en"]="setuprotate",
+ ["fr"]="regleoriente",
+ ["it"]="impostarotazione",
+ ["nl"]="stelroterenin",
+ ["pe"]="بارگذاری‌دوران",
+ ["ro"]="seteazarotare",
+ },
+ ["setuprule"]={
+ ["cs"]="setuprule",
+ ["de"]="setuprule",
+ ["en"]="setuprule",
+ ["fr"]="regleregle",
+ ["it"]="impostalinea",
+ ["nl"]="stellijnin",
+ ["pe"]="بارگذاری‌خط",
+ ["ro"]="seteazarigla",
+ },
+ ["setups"]={
+ ["cs"]="nastaveni",
+ ["de"]="einstellungen",
+ ["en"]="setups",
+ ["fr"]="reglages",
+ ["it"]="impostazioni",
+ ["nl"]="instellingen",
+ ["pe"]="بارگذاریها",
+ ["ro"]="setari",
+ },
+ ["setupscreens"]={
+ ["cs"]="nastavrastr",
+ ["de"]="stellerasterein",
+ ["en"]="setupscreens",
+ ["fr"]="regleecrans",
+ ["it"]="impostaschermi",
+ ["nl"]="stelrastersin",
+ ["pe"]="بارگذاری‌پرده‌ها",
+ ["ro"]="seteazaecrane",
+ },
+ ["setupsection"]={
+ ["cs"]="nastavsekci",
+ ["de"]="stelleabschnittein",
+ ["en"]="setupsection",
+ ["fr"]="reglesection",
+ ["it"]="impostasezione",
+ ["nl"]="stelsectiein",
+ ["pe"]="بارگذاری‌بخش",
+ ["ro"]="seteazasectiune",
+ },
+ ["setupsectionblock"]={
+ ["cs"]="nastavbloksekce",
+ ["de"]="stelleabschnittsblockein",
+ ["en"]="setupsectionblock",
+ ["fr"]="regleblocsection",
+ ["it"]="impostabloccosezione",
+ ["nl"]="stelsectieblokin",
+ ["pe"]="بارگذاری‌بلوک‌بخش",
+ ["ro"]="seteazablocsectiune",
+ },
+ ["setupsorting"]={
+ ["cs"]="nastavtrideni",
+ ["de"]="stellesortierenein",
+ ["en"]="setupsorting",
+ ["fr"]="regletri",
+ ["it"]="impostaordinamento",
+ ["nl"]="stelsorterenin",
+ ["pe"]="بارگذاری‌ترتیب",
+ ["ro"]="seteazasortare",
+ },
+ ["setupspacing"]={
+ ["cs"]="nastavradkovani",
+ ["de"]="stellespatiumein",
+ ["en"]="setupspacing",
+ ["fr"]="regleespacement",
+ ["it"]="impostaspaziatura",
+ ["nl"]="stelspatieringin",
+ ["pe"]="بارگذاری‌فضا‌گذاری",
+ ["ro"]="seteazaspatiu",
+ },
+ ["setupstartstop"]={
+ ["cs"]="setupstartstop",
+ ["de"]="setupstartstop",
+ ["en"]="setupstartstop",
+ ["fr"]="regledemarrestoppe",
+ ["it"]="impostainiziatermina",
+ ["nl"]="stelstartstopin",
+ ["pe"]="بارگذاری‌شروع‌پایان",
+ ["ro"]="setupstartstop",
+ },
+ ["setupstrut"]={
+ ["cs"]="setupstrut",
+ ["de"]="setupstrut",
+ ["en"]="setupstrut",
+ ["fr"]="reglestrut",
+ ["it"]="impostastrut",
+ ["nl"]="stelstrutin",
+ ["pe"]="بارگذاری‌بست",
+ ["ro"]="seteazastrut",
+ },
+ ["setupsubpagenumber"]={
+ ["cs"]="nastavpodcislostrany",
+ ["de"]="stelleunterseitennummerein",
+ ["en"]="setupsubpagenumber",
+ ["fr"]="reglesousnumeropage",
+ ["it"]="impostanumerosottopagina",
+ ["nl"]="stelsubpaginanummerin",
+ ["pe"]="بارگذاری‌شماره‌زیرصفحه",
+ ["ro"]="seteazanumarsubpagina",
+ },
+ ["setupsymbolset"]={
+ ["cs"]="nastavsadusymbolu",
+ ["de"]="stellesymbolsetein",
+ ["en"]="setupsymbolset",
+ ["fr"]="reglejeusymboles",
+ ["it"]="impostasetsimboli",
+ ["nl"]="stelsymboolsetin",
+ ["pe"]="بارگذاری‌مجموعه‌نماد",
+ ["ro"]="seteazasimbol",
+ },
+ ["setupsynchronization"]={
+ ["cs"]="nastavsynchronizaci",
+ ["de"]="stellesynchronisationein",
+ ["en"]="setupsynchronization",
+ ["fr"]="reglesynchronisation",
+ ["it"]="impostasincronizzazione",
+ ["nl"]="stelsynchronisatiein",
+ ["pe"]="بارگذاری‌تطابق",
+ ["ro"]="setaresincronizare",
+ },
+ ["setupsynchronizationbar"]={
+ ["cs"]="nastavsynchronizacnilistu",
+ ["de"]="stellesynchronisationsbalkenein",
+ ["en"]="setupsynchronizationbar",
+ ["fr"]="reglebarresynchronisation",
+ ["it"]="impostabarrasincronizzazione",
+ ["nl"]="stelsynchronisatiebalkin",
+ ["pe"]="بارگذاری‌میله‌تطابق",
+ ["ro"]="setarebarasincronizare",
+ },
+ ["setupsynonyms"]={
+ ["cs"]="nastavsynonyma",
+ ["de"]="stellesynonymein",
+ ["en"]="setupsynonyms",
+ ["fr"]="reglesynonymes",
+ ["it"]="impostasinonimi",
+ ["nl"]="stelsynoniemenin",
+ ["pe"]="بارگذاری‌مترادفها",
+ ["ro"]="seteazasinonime",
+ },
+ ["setupsystem"]={
+ ["cs"]="nastavsystem",
+ ["de"]="stellesystemein",
+ ["en"]="setupsystem",
+ ["fr"]="reglesysteme",
+ ["it"]="impostasistema",
+ ["nl"]="stelsysteemin",
+ ["pe"]="بارگذاری‌سیستم",
+ ["ro"]="seteazasistem",
+ },
+ ["setuptab"]={
+ ["cs"]="nastavtab",
+ ["de"]="stelletabein",
+ ["en"]="setuptab",
+ ["fr"]="regletab",
+ ["it"]="impostatab",
+ ["nl"]="steltabin",
+ ["pe"]="بارگذاری‌تب",
+ ["ro"]="seteazatab",
+ },
+ ["setuptables"]={
+ ["cs"]="nastavtabulky",
+ ["de"]="stelletabellenein",
+ ["en"]="setuptables",
+ ["fr"]="regletableaux",
+ ["it"]="impostatabelle",
+ ["nl"]="steltabellenin",
+ ["pe"]="بارگذاری‌جدولها",
+ ["ro"]="seteazatabele",
+ },
+ ["setuptabulate"]={
+ ["cs"]="nastavtabelaci",
+ ["de"]="stelletabulatorein",
+ ["en"]="setuptabulate",
+ ["fr"]="regletabulation",
+ ["it"]="impostatabulato",
+ ["nl"]="steltabulatiein",
+ ["pe"]="بارگذاری‌جدول‌بندی",
+ ["ro"]="seteazatabulatori",
+ },
+ ["setuptext"]={
+ ["cs"]="nastavtext",
+ ["de"]="stelletextein",
+ ["en"]="setuptext",
+ ["fr"]="regletexte",
+ ["it"]="impostatesto",
+ ["nl"]="steltekstin",
+ ["pe"]="بارگذاری‌متن",
+ ["ro"]="seteazatext",
+ },
+ ["setuptextposition"]={
+ ["cs"]="setuptextposition",
+ ["de"]="setuptextposition",
+ ["en"]="setuptextposition",
+ ["fr"]="reglepositiontexte",
+ ["it"]="impostaposizionetesto",
+ ["nl"]="steltekstpositiein",
+ ["pe"]="بارگذاری‌مکان‌متن",
+ ["ro"]="seteazapozitietext",
+ },
+ ["setuptextrules"]={
+ ["cs"]="nastavtextovelinky",
+ ["de"]="stelletextumrissein",
+ ["en"]="setuptextrules",
+ ["fr"]="reglelignesreglestexte",
+ ["it"]="impostalineetesto",
+ ["nl"]="steltekstlijnenin",
+ ["pe"]="بارگذاری‌خطهای‌متن",
+ ["ro"]="seteazarigletext",
+ },
+ ["setuptexttexts"]={
+ ["cs"]="nastavtexttexty",
+ ["de"]="stelletexttexteein",
+ ["en"]="setuptexttexts",
+ ["fr"]="regletextestexte",
+ ["it"]="impostatestotesti",
+ ["nl"]="stelteksttekstenin",
+ ["pe"]="بارگذاری‌متن‌متنها",
+ ["ro"]="seteazatextetext",
+ },
+ ["setuptextvariable"]={
+ ["cs"]="setuptextvariable",
+ ["de"]="setuptextvariable",
+ ["en"]="setuptextvariable",
+ ["fr"]="reglevariabletexte",
+ ["it"]="impostavariabiletesto",
+ ["nl"]="steltekstvariabelein",
+ ["pe"]="بارگذاری‌متغیر‌متن",
+ ["ro"]="seteazavariabilatext",
+ },
+ ["setupthinrules"]={
+ ["cs"]="nastavtenkelinky",
+ ["de"]="stelleduennerumrissein",
+ ["en"]="setupthinrules",
+ ["fr"]="regletraitsfins",
+ ["it"]="impostalineesottili",
+ ["nl"]="steldunnelijnenin",
+ ["pe"]="بارگذاری‌خطها‌ی‌نازک",
+ ["ro"]="seteazaliniesubtire",
+ },
+ ["setuptolerance"]={
+ ["cs"]="nastavtoleranci",
+ ["de"]="stelletoleranzein",
+ ["en"]="setuptolerance",
+ ["fr"]="regletolerance",
+ ["it"]="impostatolleranza",
+ ["nl"]="steltolerantiein",
+ ["pe"]="بارگذاری‌بردباری",
+ ["ro"]="seteazatoleranta",
+ },
+ ["setuptop"]={
+ ["cs"]="nastavhorejsek",
+ ["de"]="stellenobenein",
+ ["en"]="setuptop",
+ ["fr"]="reglesup",
+ ["it"]="impostacima",
+ ["nl"]="stelbovenin",
+ ["pe"]="بارگذاری‌بالا",
+ ["ro"]="seteazasus",
+ },
+ ["setuptoptexts"]={
+ ["cs"]="nastavhornitexty",
+ ["de"]="stelletextobenein",
+ ["en"]="setuptoptexts",
+ ["fr"]="regletextessup",
+ ["it"]="impostatesticima",
+ ["nl"]="stelboventekstenin",
+ ["pe"]="بارگذاری‌متنهای‌بالا",
+ ["ro"]="seteazatextesus",
+ },
+ ["setuptype"]={
+ ["cs"]="nastavtype",
+ ["de"]="stelletipein",
+ ["en"]="setuptype",
+ ["fr"]="regletype",
+ ["it"]="impostatype",
+ ["nl"]="steltypein",
+ ["pe"]="بارگذاری‌تایپ",
+ ["ro"]="seteazatype",
+ },
+ ["setuptyping"]={
+ ["cs"]="nastavopis",
+ ["de"]="stelletippenein",
+ ["en"]="setuptyping",
+ ["fr"]="regledactylo",
+ ["it"]="impostatyping",
+ ["nl"]="steltypenin",
+ ["pe"]="بارگذاری‌تایپ‌کردن",
+ ["ro"]="seteazatyping",
+ },
+ ["setupunderbar"]={
+ ["cs"]="nastavpodtrzeni",
+ ["de"]="stelleunterstreichenein",
+ ["en"]="setupunderbar",
+ ["fr"]="reglesouslignage",
+ ["it"]="impostasottolinea",
+ ["nl"]="stelonderstrepenin",
+ ["pe"]="بارگذاری‌میله‌زیر",
+ ["ro"]="seteazasublinie",
+ },
+ ["setupurl"]={
+ ["cs"]="nastavurl",
+ ["de"]="stelleurlein",
+ ["en"]="setupurl",
+ ["fr"]="regleurl",
+ ["it"]="impostaurl",
+ ["nl"]="stelurlin",
+ ["pe"]="setupurl",
+ ["ro"]="seteazaurl",
+ },
+ ["setupversions"]={
+ ["cs"]="nastavverze",
+ ["de"]="stelleversionein",
+ ["en"]="setupversions",
+ ["fr"]="regleversions",
+ ["it"]="impostaversioni",
+ ["nl"]="stelversiesin",
+ ["pe"]="بارگذاری‌نسخه‌ها",
+ ["ro"]="seteazaversiuni",
+ },
+ ["setupwhitespace"]={
+ ["cs"]="nastavbilamista",
+ ["de"]="stellezwischenraumein",
+ ["en"]="setupwhitespace",
+ ["fr"]="regleespaceblanc",
+ ["it"]="impostaspaziobianco",
+ ["nl"]="stelwitruimtein",
+ ["pe"]="بارگذاری‌فضای‌سفید",
+ ["ro"]="seteazaspatiualb",
+ },
+ ["showbodyfont"]={
+ ["cs"]="ukazzakladnifont",
+ ["de"]="zeigefliesstext",
+ ["en"]="showbodyfont",
+ ["fr"]="montrepolicecorps",
+ ["it"]="mostrafontdeltesto",
+ ["nl"]="toonkorps",
+ ["pe"]="نمایش‌قلم‌بدنه",
+ ["ro"]="afiseazafonttext",
+ },
+ ["showbodyfontenvironment"]={
+ ["cs"]="ukazpostredizakladnihofontu",
+ ["de"]="zeigefliesstextumgebung",
+ ["en"]="showbodyfontenvironment",
+ ["fr"]="montreenvironnementpolicecorps",
+ ["it"]="mostraambientefontdeltesto",
+ ["nl"]="toonkorpsomgeving",
+ ["pe"]="نمایش‌محیط‌قلم‌بدنه",
+ ["ro"]="afiseazamediufonttext",
+ },
+ ["showcolor"]={
+ ["cs"]="ukazbarvu",
+ ["de"]="zeigefarbe",
+ ["en"]="showcolor",
+ ["fr"]="montrecouleur",
+ ["it"]="mostracolore",
+ ["nl"]="toonkleur",
+ ["pe"]="نمایش‌رنگ",
+ ["ro"]="afiseazaculoare",
+ },
+ ["showcolorgroup"]={
+ ["cs"]="ukazskupinubarev",
+ ["de"]="zeigefarbengruppe",
+ ["en"]="showcolorgroup",
+ ["fr"]="montregroupecouleur",
+ ["it"]="mostragruppocolori",
+ ["nl"]="toonkleurgroep",
+ ["pe"]="نمایش‌گروه‌رنگ",
+ ["ro"]="afiseazagrupculoare",
+ },
+ ["showexternalfigures"]={
+ ["cs"]="ukazexterniobrazy",
+ ["de"]="zeigeexterneabbildungen",
+ ["en"]="showexternalfigures",
+ ["fr"]="montrefiguresexternes",
+ ["it"]="mostrafiguresterne",
+ ["nl"]="toonexternefiguren",
+ ["pe"]="نمایش‌شکلهای‌خارجی",
+ ["ro"]="afiseazafiguriexterne",
+ },
+ ["showfields"]={
+ ["cs"]="ukazpole",
+ ["de"]="zeigefelder",
+ ["en"]="showfields",
+ ["fr"]="montrechamps",
+ ["it"]="mostracampi",
+ ["nl"]="toonvelden",
+ ["pe"]="نمایش‌میدانها",
+ ["ro"]="afiseazacampuri",
+ },
+ ["showframe"]={
+ ["cs"]="ukazramecek",
+ ["de"]="zeigerahmen",
+ ["en"]="showframe",
+ ["fr"]="montrecadre",
+ ["it"]="mostracornice",
+ ["nl"]="toonkader",
+ ["pe"]="نمایش‌قالب",
+ ["ro"]="afiseazarama",
+ },
+ ["showgrid"]={
+ ["cs"]="ukazmrizku",
+ ["de"]="zeigegitter",
+ ["en"]="showgrid",
+ ["fr"]="montregrille",
+ ["it"]="mostragriglia",
+ ["nl"]="toongrid",
+ ["pe"]="نمایش‌توری",
+ ["ro"]="afiseazagrid",
+ },
+ ["showlayout"]={
+ ["cs"]="ukazvzhled",
+ ["de"]="zeigelayout",
+ ["en"]="showlayout",
+ ["fr"]="montredisposition",
+ ["it"]="mostralyout",
+ ["nl"]="toonlayout",
+ ["pe"]="نمایش‌طرح‌بندی",
+ ["ro"]="afiseazaaspect",
+ },
+ ["showmakeup"]={
+ ["cs"]="ukazupravu",
+ ["de"]="zeigeumbruch",
+ ["en"]="showmakeup",
+ ["fr"]="montremakeup",
+ ["it"]="mostramakeup",
+ ["nl"]="toonopmaak",
+ ["pe"]="نمایش‌آرایش",
+ ["ro"]="afiseazamakeup",
+ },
+ ["showpalet"]={
+ ["cs"]="ukazpaletu",
+ ["de"]="zeigepalette",
+ ["en"]="showpalet",
+ ["fr"]="montrepalette",
+ ["it"]="mostratavolozza",
+ ["nl"]="toonpalet",
+ ["pe"]="نمایش‌لوح",
+ ["ro"]="afiseazapaleta",
+ },
+ ["showprint"]={
+ ["cs"]="ukazvytisk",
+ ["de"]="zeigedruck",
+ ["en"]="showprint",
+ ["fr"]="montreedition",
+ ["it"]="mostrastampa",
+ ["nl"]="toonprint",
+ ["pe"]="نمایش‌چاپ",
+ ["ro"]="afiseazatiparire",
+ },
+ ["showsetups"]={
+ ["cs"]="ukaznastaveni",
+ ["de"]="zeigeeinstellungen",
+ ["en"]="showsetups",
+ ["fr"]="montrereglages",
+ ["it"]="mostraimpostazioni",
+ ["nl"]="tooninstellingen",
+ ["pe"]="نمایش‌بارگذاریها",
+ ["ro"]="afiseazasetari",
+ },
+ ["showstruts"]={
+ ["cs"]="ukazpodpery",
+ ["de"]="zeigestruts",
+ ["en"]="showstruts",
+ ["fr"]="montrestruts",
+ ["it"]="mostrastruts",
+ ["nl"]="toonstruts",
+ ["pe"]="نمایش‌بستها",
+ ["ro"]="afiseazastruts",
+ },
+ ["showsymbolset"]={
+ ["cs"]="ukazsadusymbolu",
+ ["de"]="showsymbolset",
+ ["en"]="showsymbolset",
+ ["fr"]="montrejeusymboles",
+ ["it"]="mostrasetsimboli",
+ ["nl"]="toonsymboolset",
+ ["pe"]="نمایش‌مجموعه‌علامت",
+ ["ro"]="afiseazasetsimboluri",
+ },
+ ["smallcapped"]={
+ ["cs"]="kap",
+ ["de"]="kap",
+ ["en"]="cap",
+ ["fr"]="cap",
+ ["it"]="cap",
+ ["nl"]="kap",
+ ["pe"]="cap",
+ ["ro"]="kap",
+ },
+ ["someline"]={
+ ["cs"]="nejakyradek",
+ ["de"]="einezeile",
+ ["en"]="someline",
+ ["fr"]="uneligne",
+ ["it"]="qualcheriga",
+ ["nl"]="eenregel",
+ ["pe"]="یک‌خط",
+ ["ro"]="olinie",
+ },
+ ["somewhere"]={
+ ["cs"]="nekde",
+ ["de"]="irgendwo",
+ ["en"]="somewhere",
+ ["fr"]="qqpart",
+ ["it"]="daqualcheparte",
+ ["nl"]="ergens",
+ ["pe"]="یک‌جا",
+ ["ro"]="undeva",
+ },
+ ["space"]={
+ ["cs"]="mezera",
+ ["de"]="spatium",
+ ["en"]="space",
+ ["fr"]="espace",
+ ["it"]="spazio",
+ ["nl"]="spatie",
+ ["pe"]="فضا",
+ ["ro"]="spatiu",
+ },
+ ["splitfloat"]={
+ ["cs"]="rozdelplvouciobjekt",
+ ["de"]="teilegleitobjekt",
+ ["en"]="splitfloat",
+ ["fr"]="separeflottant",
+ ["it"]="spezzaoggettomobile",
+ ["nl"]="splitsplaatsblok",
+ ["pe"]="شکافتن‌شناور",
+ ["ro"]="impartefloat",
+ },
+ ["startalignment"]={
+ ["cs"]="startzarovnavani",
+ ["de"]="startausrichtung",
+ ["en"]="startalignment",
+ ["fr"]="demarrealignement",
+ ["it"]="iniziaallineamento",
+ ["nl"]="startuitlijnen",
+ ["pe"]="شروع‌تنظیم",
+ ["ro"]="startaliniere",
+ },
+ ["startbackground"]={
+ ["cs"]="startpozadi",
+ ["de"]="starthintergrund",
+ ["en"]="startbackground",
+ ["fr"]="demarrearriereplan",
+ ["it"]="iniziasfondo",
+ ["nl"]="startachtergrond",
+ ["pe"]="شروع‌پس‌زمینه",
+ ["ro"]="startfundal",
+ },
+ ["startcoding"]={
+ ["cs"]="startkodovani",
+ ["de"]="startkodierung",
+ ["en"]="startcoding",
+ ["fr"]="demarrecodage",
+ ["it"]="iniziacodifica",
+ ["nl"]="startcodering",
+ ["pe"]="شروع‌کد",
+ ["ro"]="startcodificare",
+ },
+ ["startcolor"]={
+ ["cs"]="startbarva",
+ ["de"]="startfarbe",
+ ["en"]="startcolor",
+ ["fr"]="demarrecouleur",
+ ["it"]="iniziacolore",
+ ["nl"]="startkleur",
+ ["pe"]="شروع‌رنگ",
+ ["ro"]="startculoare",
+ },
+ ["startcolumnmakeup"]={
+ ["cs"]="startcolumnmakeup",
+ ["de"]="startcolumnmakeup",
+ ["en"]="startcolumnmakeup",
+ ["fr"]="startcolumnmakeup",
+ ["it"]="startcolumnmakeup",
+ ["nl"]="startkolomopmaak",
+ ["pe"]="شروع‌آرایش‌ستون",
+ ["ro"]="startcolumnmakeup",
+ },
+ ["startcolumns"]={
+ ["cs"]="startsloupce",
+ ["de"]="startspalten",
+ ["en"]="startcolumns",
+ ["fr"]="demarrecolonnes",
+ ["it"]="iniziacolonne",
+ ["nl"]="startkolommen",
+ ["pe"]="شروع‌ستونها",
+ ["ro"]="startcoloane",
+ },
+ ["startcolumnset"]={
+ ["cs"]="startcolumnset",
+ ["de"]="startcolumnset",
+ ["en"]="startcolumnset",
+ ["fr"]="demarrejeucolonne",
+ ["it"]="iniziagruppocolonne",
+ ["nl"]="startkolomgroep",
+ ["pe"]="شروع‌مجموعه‌ستون",
+ ["ro"]="startcolumnset",
+ },
+ ["startcombination"]={
+ ["cs"]="startspojeni",
+ ["de"]="startkombination",
+ ["en"]="startcombination",
+ ["fr"]="demarrecombinaison",
+ ["it"]="iniziacombinazione",
+ ["nl"]="startcombinatie",
+ ["pe"]="شروع‌ترکیب",
+ ["ro"]="startcombinare",
+ },
+ ["startcomponent"]={
+ ["cs"]="startkomponenta",
+ ["de"]="startkomponente",
+ ["en"]="startcomponent",
+ ["fr"]="demarrecomposant",
+ ["it"]="iniziacomponente",
+ ["nl"]="startonderdeel",
+ ["pe"]="شروع‌مولفه",
+ ["ro"]="startcomponenta",
+ },
+ ["startdocument"]={
+ ["cs"]="startdokument",
+ ["de"]="startdokument",
+ ["en"]="startdocument",
+ ["fr"]="demarredocument",
+ ["it"]="iniziadocumento",
+ ["nl"]="startdocument",
+ ["pe"]="شروع‌نوشتار",
+ ["ro"]="startdocument",
+ },
+ ["startenvironment"]={
+ ["cs"]="startprostredi",
+ ["de"]="startumgebung",
+ ["en"]="startenvironment",
+ ["fr"]="demarreenvironement",
+ ["it"]="iniziaambiente",
+ ["nl"]="startomgeving",
+ ["pe"]="شروع‌محیط",
+ ["ro"]="startmediu",
+ },
+ ["startfigure"]={
+ ["cs"]="startobraz",
+ ["de"]="startabbildung",
+ ["en"]="startfigure",
+ ["fr"]="demarrefigure",
+ ["it"]="iniziafigura",
+ ["nl"]="startfiguur",
+ ["pe"]="شروع‌شکل",
+ ["ro"]="startfigura",
+ },
+ ["startglobal"]={
+ ["cs"]="startglobalni",
+ ["de"]="startglobal",
+ ["en"]="startglobal",
+ ["fr"]="demarreglobal",
+ ["it"]="iniziaglobale",
+ ["nl"]="startglobaal",
+ ["pe"]="شروع‌سراسری",
+ ["ro"]="startglobal",
+ },
+ ["startline"]={
+ ["cs"]="startradek",
+ ["de"]="startzeile",
+ ["en"]="startline",
+ ["fr"]="demarreligne",
+ ["it"]="iniziariga",
+ ["nl"]="startregel",
+ ["pe"]="شروع‌خط",
+ ["ro"]="startlinie",
+ },
+ ["startlinecorrection"]={
+ ["cs"]="startkorekceradku",
+ ["de"]="startzeilenkorrektur",
+ ["en"]="startlinecorrection",
+ ["fr"]="demarrecorrectionligne",
+ ["it"]="iniziacorrezioneriga",
+ ["nl"]="startregelcorrectie",
+ ["pe"]="شروع‌تصحیح‌خط",
+ ["ro"]="startcorectielinie",
+ },
+ ["startlinenumbering"]={
+ ["cs"]="startcislovaniradku",
+ ["de"]="startzeilennumerierung",
+ ["en"]="startlinenumbering",
+ ["fr"]="demarrenumerotationligne",
+ ["it"]="inizianumerazionerighe",
+ ["nl"]="startregelnummeren",
+ ["pe"]="شروع‌شماره‌گذاری‌خط",
+ ["ro"]="startnumerotarelinii",
+ },
+ ["startlines"]={
+ ["cs"]="startradky",
+ ["de"]="startzeilen",
+ ["en"]="startlines",
+ ["fr"]="demarrelignes",
+ ["it"]="iniziarighe",
+ ["nl"]="startregels",
+ ["pe"]="شروع‌خطها",
+ ["ro"]="startlinii",
+ },
+ ["startlocal"]={
+ ["cs"]="startlokalni",
+ ["de"]="startlokal",
+ ["en"]="startlocal",
+ ["fr"]="demarrelocal",
+ ["it"]="inizialocale",
+ ["nl"]="startlokaal",
+ ["pe"]="شروع‌موضعی",
+ ["ro"]="startlocal",
+ },
+ ["startlocalfootnotes"]={
+ ["cs"]="startlokalnipoznamkypodcarou",
+ ["de"]="startlokalefussnoten",
+ ["en"]="startlocalfootnotes",
+ ["fr"]="demarrenotespdplocales",
+ ["it"]="inizianotepdplocali",
+ ["nl"]="startlokalevoetnoten",
+ ["pe"]="شروع‌پانوشتهای‌موضعی",
+ ["ro"]="startnotesubsollocale",
+ },
+ ["startmakeup"]={
+ ["cs"]="startuprava",
+ ["de"]="startumbruch",
+ ["en"]="startmakeup",
+ ["fr"]="demarremakeup",
+ ["it"]="iniziamakeup",
+ ["nl"]="startopmaak",
+ ["pe"]="شروع‌آرایش",
+ ["ro"]="startmakeup",
+ },
+ ["startmarginblock"]={
+ ["cs"]="startmarginalniblok",
+ ["de"]="startmarginalblock",
+ ["en"]="startmarginblock",
+ ["fr"]="demarreblocmarge",
+ ["it"]="iniziabloccomargine",
+ ["nl"]="startmargeblok",
+ ["pe"]="شروع‌بلوک‌حاشیه",
+ ["ro"]="startblocmarginal",
+ },
+ ["startmarginrule"]={
+ ["cs"]="startmarginalnilinka",
+ ["de"]="startmarginallinie",
+ ["en"]="startmarginrule",
+ ["fr"]="demarremargereglee",
+ ["it"]="inizialineamargine",
+ ["nl"]="startkantlijn",
+ ["pe"]="شروع‌خط‌حاشیه",
+ ["ro"]="startliniemargine",
+ },
+ ["startnarrower"]={
+ ["cs"]="startzuzeni",
+ ["de"]="startenger",
+ ["en"]="startnarrower",
+ ["fr"]="demarrecompoetroite",
+ ["it"]="iniziapiustretto",
+ ["nl"]="startsmaller",
+ ["pe"]="شروع‌باریکتر",
+ ["ro"]="startingust",
+ },
+ ["startopposite"]={
+ ["cs"]="startprotejsek",
+ ["de"]="startgegenueber",
+ ["en"]="startopposite",
+ ["fr"]="demarreopposition",
+ ["it"]="iniziaopposto",
+ ["nl"]="startnaast",
+ ["pe"]="شروع‌مخالف",
+ ["ro"]="startopozit",
+ },
+ ["startoverlay"]={
+ ["cs"]="startprekryv",
+ ["de"]="startoverlay",
+ ["en"]="startoverlay",
+ ["fr"]="demarrerevetement",
+ ["it"]="iniziasovrapposizione",
+ ["nl"]="startoverlay",
+ ["pe"]="شروع‌پوشش",
+ ["ro"]="startoverlay",
+ },
+ ["startoverzicht"]={
+ ["cs"]="startprehled",
+ ["de"]="startueberblick",
+ ["en"]="startoverview",
+ ["fr"]="demarrevuedensemble",
+ ["it"]="iniziaoverview",
+ ["nl"]="startoverzicht",
+ ["pe"]="شروع‌بازبینی",
+ ["ro"]="startoverview",
+ },
+ ["startpacked"]={
+ ["cs"]="startzhustene",
+ ["de"]="startkleinerdurchschuss",
+ ["en"]="startpacked",
+ ["fr"]="demarregroupe",
+ ["it"]="iniziaimpaccato",
+ ["nl"]="startopelkaar",
+ ["pe"]="شروع‌فشرده",
+ ["ro"]="startimpachetat",
+ },
+ ["startpositioning"]={
+ ["cs"]="startumistovani",
+ ["de"]="startpositionieren",
+ ["en"]="startpositioning",
+ ["fr"]="demarrepositionnement",
+ ["it"]="iniziaposizionamento",
+ ["nl"]="startpositioneren",
+ ["pe"]="شروع‌مکان‌گذاری",
+ ["ro"]="startpozitionare",
+ },
+ ["startproduct"]={
+ ["cs"]="startprodukt",
+ ["de"]="startprodukt",
+ ["en"]="startproduct",
+ ["fr"]="demarreproduit",
+ ["it"]="iniziaprodotto",
+ ["nl"]="startprodukt",
+ ["pe"]="شروع‌تولید",
+ ["ro"]="startprodus",
+ },
+ ["startprofile"]={
+ ["cs"]="startprofil",
+ ["de"]="startprofil",
+ ["en"]="startprofile",
+ ["fr"]="demarreprofil",
+ ["it"]="iniziaprofilo",
+ ["nl"]="startprofiel",
+ ["pe"]="شروع‌پروفایل",
+ ["ro"]="startprofil",
+ },
+ ["startproject"]={
+ ["cs"]="startprojekt",
+ ["de"]="startprojekt",
+ ["en"]="startproject",
+ ["fr"]="demarreprojet",
+ ["it"]="iniziaprogetto",
+ ["nl"]="startprojekt",
+ ["pe"]="شروع‌پروژه",
+ ["ro"]="startproiect",
+ },
+ ["startquotation"]={
+ ["cs"]="startcitace",
+ ["de"]="startzitat",
+ ["en"]="startquotation",
+ ["fr"]="demarrecitation",
+ ["it"]="iniziacitazione",
+ ["nl"]="startcitaat",
+ ["pe"]="شروع‌نقل‌قول",
+ ["ro"]="startcitat",
+ },
+ ["startraster"]={
+ ["cs"]="startrastr",
+ ["de"]="startraster",
+ ["en"]="startraster",
+ ["fr"]="demarreraster",
+ ["it"]="iniziaraster",
+ ["nl"]="startraster",
+ ["pe"]="startraster",
+ ["ro"]="startraster",
+ },
+ ["startsymbolset"]={
+ ["cs"]="startsadasymbolu",
+ ["de"]="startsymbolset",
+ ["en"]="startsymbolset",
+ ["fr"]="demarrejeusymboles",
+ ["it"]="iniziasetsimboli",
+ ["nl"]="startsymboolset",
+ ["pe"]="شروع‌مجموعه‌نماد",
+ ["ro"]="startsetsimboluri",
+ },
+ ["startsynchronization"]={
+ ["cs"]="startsynchronizace",
+ ["de"]="startsynchronisation",
+ ["en"]="startsynchronization",
+ ["fr"]="demarresynchronisation",
+ ["it"]="iniziasincronizzazione",
+ ["nl"]="startsynchronisatie",
+ ["pe"]="شروع‌تطابق",
+ ["ro"]="startsincronizare",
+ },
+ ["starttable"]={
+ ["cs"]="starttabulka",
+ ["de"]="starttabelle",
+ ["en"]="starttable",
+ ["fr"]="demarretableau",
+ ["it"]="iniziatabella",
+ ["nl"]="starttabel",
+ ["pe"]="شروع‌جدول",
+ ["ro"]="starttabel",
+ },
+ ["starttables"]={
+ ["cs"]="starttabulky",
+ ["de"]="starttabellen",
+ ["en"]="starttables",
+ ["fr"]="demarretableaux",
+ ["it"]="iniziatabelle",
+ ["nl"]="starttabellen",
+ ["pe"]="شروع‌جدولها",
+ ["ro"]="starttabele",
+ },
+ ["starttext"]={
+ ["cs"]="starttext",
+ ["de"]="starttext",
+ ["en"]="starttext",
+ ["fr"]="demarretexte",
+ ["it"]="iniziatesto",
+ ["nl"]="starttekst",
+ ["pe"]="شروع‌متن",
+ ["ro"]="starttext",
+ },
+ ["starttextrule"]={
+ ["cs"]="starttextovalinka",
+ ["de"]="starttextlinie",
+ ["en"]="starttextrule",
+ ["fr"]="demarreligneregleetexte",
+ ["it"]="inizialineatesto",
+ ["nl"]="starttekstlijn",
+ ["pe"]="شروع‌خط‌متن",
+ ["ro"]="startriglatext",
+ },
+ ["startunpacked"]={
+ ["cs"]="startnezhustene",
+ ["de"]="startgrosserdurchschuss",
+ ["en"]="startunpacked",
+ ["fr"]="demarredegroupe",
+ ["it"]="iniziaunpacked",
+ ["nl"]="startvanelkaar",
+ ["pe"]="شروع‌غیر‌فشرده",
+ ["ro"]="startneimpachetat",
+ },
+ ["startversion"]={
+ ["cs"]="startverze",
+ ["de"]="startversion",
+ ["en"]="startversion",
+ ["fr"]="demarreversion",
+ ["it"]="iniziaversione",
+ ["nl"]="startversie",
+ ["pe"]="شروع‌نسخه",
+ ["ro"]="startversiune",
+ },
+ ["stopalignment"]={
+ ["cs"]="stopzarovnavani",
+ ["de"]="stopausrichtung",
+ ["en"]="stopalignment",
+ ["fr"]="stoppealignement",
+ ["it"]="terminaallineamento",
+ ["nl"]="stopuitlijnen",
+ ["pe"]="پایان‌تنظیم",
+ ["ro"]="stopaliniere",
+ },
+ ["stopbackground"]={
+ ["cs"]="stoppozadi",
+ ["de"]="stophintergrund",
+ ["en"]="stopbackground",
+ ["fr"]="stoppearriereplan",
+ ["it"]="terminasfondo",
+ ["nl"]="stopachtergrond",
+ ["pe"]="پایان‌پس‌زمینه",
+ ["ro"]="stopfundal",
+ },
+ ["stopcoding"]={
+ ["cs"]="stopkodovani",
+ ["de"]="stopkodierung",
+ ["en"]="stopcoding",
+ ["fr"]="stoppecodage",
+ ["it"]="terminacodifica",
+ ["nl"]="stopcodering",
+ ["pe"]="پایان‌کد",
+ ["ro"]="stopcodificare",
+ },
+ ["stopcolor"]={
+ ["cs"]="stopbarva",
+ ["de"]="stopfarbe",
+ ["en"]="stopcolor",
+ ["fr"]="stoppecouleur",
+ ["it"]="terminacolore",
+ ["nl"]="stopkleur",
+ ["pe"]="پایان‌رنگ",
+ ["ro"]="stopculoare",
+ },
+ ["stopcolumnmakeup"]={
+ ["cs"]="stopcolumnmakeup",
+ ["de"]="stopcolumnmakeup",
+ ["en"]="stopcolumnmakeup",
+ ["fr"]="stopcolumnmakeup",
+ ["it"]="stopcolumnmakeup",
+ ["nl"]="stopkolomopmaak",
+ ["pe"]="پایان‌آرایش‌ستون",
+ ["ro"]="stopcolumnmakeup",
+ },
+ ["stopcolumns"]={
+ ["cs"]="stopsloupce",
+ ["de"]="stopspalten",
+ ["en"]="stopcolumns",
+ ["fr"]="stoppecolonnes",
+ ["it"]="terminacolonne",
+ ["nl"]="stopkolommen",
+ ["pe"]="پایان‌ستونها",
+ ["ro"]="stopcoloane",
+ },
+ ["stopcolumnset"]={
+ ["cs"]="stopcolumnset",
+ ["de"]="stopcolumnset",
+ ["en"]="stopcolumnset",
+ ["fr"]="stoppejeucolonne",
+ ["it"]="terminagruppocolonne",
+ ["nl"]="stopkolomgroep",
+ ["pe"]="پایان‌مجموعه‌ستون",
+ ["ro"]="stopcolumnset",
+ },
+ ["stopcombination"]={
+ ["cs"]="stopspojeni",
+ ["de"]="stopkombination",
+ ["en"]="stopcombination",
+ ["fr"]="stoppecombinaison",
+ ["it"]="terminacombinazione",
+ ["nl"]="stopcombinatie",
+ ["pe"]="پایان‌ترکیب",
+ ["ro"]="stopcombinare",
+ },
+ ["stopcomponent"]={
+ ["cs"]="stopkomponenta",
+ ["de"]="stopkomponente",
+ ["en"]="stopcomponent",
+ ["fr"]="stoppecomposant",
+ ["it"]="terminacomponente",
+ ["nl"]="stoponderdeel",
+ ["pe"]="پایان‌مولفه",
+ ["ro"]="stopcomponenta",
+ },
+ ["stopdocument"]={
+ ["cs"]="stopdokument",
+ ["de"]="stopdokument",
+ ["en"]="stopdocument",
+ ["fr"]="stoppedocument",
+ ["it"]="terminadocumento",
+ ["nl"]="stopdocument",
+ ["pe"]="پایان‌نوشتار",
+ ["ro"]="stopdocument",
+ },
+ ["stopenvironment"]={
+ ["cs"]="stopprostredi",
+ ["de"]="stopumgebung",
+ ["en"]="stopenvironment",
+ ["fr"]="stoppeenvironement",
+ ["it"]="terminaambiente",
+ ["nl"]="stopomgeving",
+ ["pe"]="پایان‌محیط",
+ ["ro"]="stopmediu",
+ },
+ ["stopglobal"]={
+ ["cs"]="stopglobalni",
+ ["de"]="stopglobal",
+ ["en"]="stopglobal",
+ ["fr"]="stoppeglobal",
+ ["it"]="terminaglobale",
+ ["nl"]="stopglobaal",
+ ["pe"]="پایان‌سراسری",
+ ["ro"]="stopblobal",
+ },
+ ["stopline"]={
+ ["cs"]="stopradek",
+ ["de"]="stopzeile",
+ ["en"]="stopline",
+ ["fr"]="stoppeligne",
+ ["it"]="terminariga",
+ ["nl"]="stopregel",
+ ["pe"]="پایان‌خط",
+ ["ro"]="stoplinie",
+ },
+ ["stoplinecorrection"]={
+ ["cs"]="stopkorekceradku",
+ ["de"]="stopzeilenkorrektur",
+ ["en"]="stoplinecorrection",
+ ["fr"]="stoppecorrectionligne",
+ ["it"]="terminacorrezioneriga",
+ ["nl"]="stopregelcorrectie",
+ ["pe"]="پایان‌تصحیح‌خط",
+ ["ro"]="stopcorectielinie",
+ },
+ ["stoplinenumbering"]={
+ ["cs"]="stopcislovaniradku",
+ ["de"]="stopzeilennumerierung",
+ ["en"]="stoplinenumbering",
+ ["fr"]="stoppenumerotationligne",
+ ["it"]="terminanumerazionerighe",
+ ["nl"]="stopregelnummeren",
+ ["pe"]="پایان‌شماره‌گذاری‌خط",
+ ["ro"]="stopnumerotarelinii",
+ },
+ ["stoplines"]={
+ ["cs"]="stopradky",
+ ["de"]="stopzeilen",
+ ["en"]="stoplines",
+ ["fr"]="stoppelignes",
+ ["it"]="terminarighe",
+ ["nl"]="stopregels",
+ ["pe"]="پایان‌خطها",
+ ["ro"]="stoplinii",
+ },
+ ["stoplocal"]={
+ ["cs"]="stoplokalni",
+ ["de"]="stoplokal",
+ ["en"]="stoplocal",
+ ["fr"]="stoppelocal",
+ ["it"]="terminalocale",
+ ["nl"]="stoplokaal",
+ ["pe"]="پایان‌موضعی",
+ ["ro"]="stoplocal",
+ },
+ ["stoplocalfootnotes"]={
+ ["cs"]="stoplokalnipoznamkypodcarou",
+ ["de"]="stoplokalefussnoten",
+ ["en"]="stoplocalfootnotes",
+ ["fr"]="stoppenotespdplocales",
+ ["it"]="terminanotepdplocali",
+ ["nl"]="stoplokalevoetnoten",
+ ["pe"]="پایان‌پانوشتهای‌موضعی",
+ ["ro"]="stopnotesubsollocale",
+ },
+ ["stopmakeup"]={
+ ["cs"]="stopuprava",
+ ["de"]="stopumbruch",
+ ["en"]="stopmakeup",
+ ["fr"]="stoppemakeup",
+ ["it"]="terminamakeup",
+ ["nl"]="stopopmaak",
+ ["pe"]="پایان‌آرایش",
+ ["ro"]="stopmakeup",
+ },
+ ["stopmarginblock"]={
+ ["cs"]="stopmarginalniblok",
+ ["de"]="stopmarginalblock",
+ ["en"]="stopmarginblock",
+ ["fr"]="stoppeblocmarge",
+ ["it"]="terminabloccomargine",
+ ["nl"]="stopmargeblok",
+ ["pe"]="پایان‌بلوک‌حاشیه",
+ ["ro"]="stopblocmarginal",
+ },
+ ["stopmarginrule"]={
+ ["cs"]="stopmarginalnilinka",
+ ["de"]="stopmarginallinie",
+ ["en"]="stopmarginrule",
+ ["fr"]="stoppemargereglee",
+ ["it"]="terminalineamargine",
+ ["nl"]="stopkantlijn",
+ ["pe"]="پایان‌خط‌حاشیه",
+ ["ro"]="stopliniemargine",
+ },
+ ["stopnarrower"]={
+ ["cs"]="stopzuzeni",
+ ["de"]="stopenger",
+ ["en"]="stopnarrower",
+ ["fr"]="stopcompoetroite",
+ ["it"]="terminapiustretto",
+ ["nl"]="stopsmaller",
+ ["pe"]="پایان‌نازکتر",
+ ["ro"]="stopingust",
+ },
+ ["stopopposite"]={
+ ["cs"]="stopprotejsek",
+ ["de"]="stopgegenueber",
+ ["en"]="stopopposite",
+ ["fr"]="stoppeopposition",
+ ["it"]="terminaopposto",
+ ["nl"]="stopnaast",
+ ["pe"]="پایان‌مخالف",
+ ["ro"]="stopopozit",
+ },
+ ["stopoverlay"]={
+ ["cs"]="stopprekryv",
+ ["de"]="stopoverlay",
+ ["en"]="stopoverlay",
+ ["fr"]="stopperevetement",
+ ["it"]="terminasovrapposizione",
+ ["nl"]="stopoverlay",
+ ["pe"]="پایان‌پوشش",
+ ["ro"]="stopoverlay",
+ },
+ ["stopoverzicht"]={
+ ["cs"]="stopprehled",
+ ["de"]="stopueberblick",
+ ["en"]="stopoverview",
+ ["fr"]="stoppevuedensemble",
+ ["it"]="terminaoverview",
+ ["nl"]="stopoverzicht",
+ ["pe"]="پایان‌بازبینی",
+ ["ro"]="stopoverview",
+ },
+ ["stoppacked"]={
+ ["cs"]="stopzhustene",
+ ["de"]="stopkleinerdurchschuss",
+ ["en"]="stoppacked",
+ ["fr"]="stoppegroupe",
+ ["it"]="terminaimpaccato",
+ ["nl"]="stopopelkaar",
+ ["pe"]="پایان‌فشرده",
+ ["ro"]="stopimpachetat",
+ },
+ ["stoppositioning"]={
+ ["cs"]="stopumistovani",
+ ["de"]="stoppositionieren",
+ ["en"]="stoppositioning",
+ ["fr"]="stoppepositionnement",
+ ["it"]="terminaposizionamento",
+ ["nl"]="stoppositioneren",
+ ["pe"]="پایان‌مکان‌گذاری",
+ ["ro"]="stoppozitionare",
+ },
+ ["stopproduct"]={
+ ["cs"]="stopprodukt",
+ ["de"]="stopprodukt",
+ ["en"]="stopproduct",
+ ["fr"]="stoppeproduit",
+ ["it"]="terminaprodotto",
+ ["nl"]="stopprodukt",
+ ["pe"]="پایان‌تولید",
+ ["ro"]="stopprodus",
+ },
+ ["stopprofile"]={
+ ["cs"]="stopprofil",
+ ["de"]="stopprofil",
+ ["en"]="stopprofile",
+ ["fr"]="stoppeprofil",
+ ["it"]="terminaprofili",
+ ["nl"]="stopprofiel",
+ ["pe"]="پایان‌پروفایل",
+ ["ro"]="stopprofil",
+ },
+ ["stopproject"]={
+ ["cs"]="stopprojekt",
+ ["de"]="stopprojekt",
+ ["en"]="stopproject",
+ ["fr"]="stoppeprojet",
+ ["it"]="terminaprogetto",
+ ["nl"]="stopprojekt",
+ ["pe"]="پایان‌پروژه",
+ ["ro"]="stopproiect",
+ },
+ ["stopquotation"]={
+ ["cs"]="stopcitace",
+ ["de"]="stopzitat",
+ ["en"]="stopquotation",
+ ["fr"]="stoppecitation",
+ ["it"]="terminacitazione",
+ ["nl"]="stopcitaat",
+ ["pe"]="پایان‌نقل‌قول",
+ ["ro"]="stopcitat",
+ },
+ ["stopraster"]={
+ ["cs"]="stoprastr",
+ ["de"]="stopraster",
+ ["en"]="stopraster",
+ ["fr"]="stopperaster",
+ ["it"]="terminaraster",
+ ["nl"]="stopraster",
+ ["pe"]="stopraster",
+ ["ro"]="stopraster",
+ },
+ ["stopsynchronization"]={
+ ["cs"]="stopsynchronizace",
+ ["de"]="stopsynchronisation",
+ ["en"]="stopsynchronization",
+ ["fr"]="stoppesynchronisation",
+ ["it"]="terminasincronizzazione",
+ ["nl"]="stopsynchronisatie",
+ ["pe"]="پایان‌تطابق",
+ ["ro"]="stopsincronizare",
+ },
+ ["stoptable"]={
+ ["cs"]="stoptabulka",
+ ["de"]="stoptabelle",
+ ["en"]="stoptable",
+ ["fr"]="stoppetableau",
+ ["it"]="terminatabella",
+ ["nl"]="stoptabel",
+ ["pe"]="پایان‌جدول",
+ ["ro"]="stoptabel",
+ },
+ ["stoptables"]={
+ ["cs"]="stoptabulky",
+ ["de"]="stoptabellen",
+ ["en"]="stoptables",
+ ["fr"]="stoppetableaux",
+ ["it"]="terminatabelle",
+ ["nl"]="stoptabellen",
+ ["pe"]="پایان‌جدولها",
+ ["ro"]="stoptabele",
+ },
+ ["stoptext"]={
+ ["cs"]="stoptext",
+ ["de"]="stoptext",
+ ["en"]="stoptext",
+ ["fr"]="stoppetexte",
+ ["it"]="terminatesto",
+ ["nl"]="stoptekst",
+ ["pe"]="پایان‌متن",
+ ["ro"]="stoptext",
+ },
+ ["stoptextrule"]={
+ ["cs"]="stoptextovalinka",
+ ["de"]="stoptextlinie",
+ ["en"]="stoptextrule",
+ ["fr"]="stoppeligneregleetexte",
+ ["it"]="terminalineatesto",
+ ["nl"]="stoptekstlijn",
+ ["pe"]="پایان‌خط‌متن",
+ ["ro"]="stopriglatext",
+ },
+ ["stopunpacked"]={
+ ["cs"]="stopnezhustene",
+ ["de"]="stopgrosserdurchschuss",
+ ["en"]="stopunpacked",
+ ["fr"]="stoppedegroupe",
+ ["it"]="terminaunpacked",
+ ["nl"]="stopvanelkaar",
+ ["pe"]="پایان‌غیرفشرده",
+ ["ro"]="stopneimpachetat",
+ },
+ ["stopversion"]={
+ ["cs"]="stopverze",
+ ["de"]="stopversion",
+ ["en"]="stopversion",
+ ["fr"]="stoppeversion",
+ ["it"]="terminaversioni",
+ ["nl"]="stopversie",
+ ["pe"]="پایان‌نسخه",
+ ["ro"]="stopversiune",
+ },
+ ["stretched"]={
+ ["cs"]="roztazene",
+ ["de"]="gestreckt",
+ ["en"]="stretched",
+ ["fr"]="etire",
+ ["it"]="stirato",
+ ["nl"]="uitgerekt",
+ ["pe"]="کشیده",
+ ["ro"]="intins",
+ },
+ ["subformulanumber"]={
+ ["cs"]="cislopodrovnice",
+ ["de"]="unterformelnummer",
+ ["en"]="subformulanumber",
+ ["fr"]="numerosousformule",
+ ["it"]="numerosottoformula",
+ ["nl"]="subformulenummer",
+ ["pe"]="شماره‌زیرفرمول",
+ ["ro"]="numarsubformula",
+ },
+ ["subpagenumber"]={
+ ["cs"]="subpagenumber",
+ ["de"]="subpagenumber",
+ ["en"]="subpagenumber",
+ ["fr"]="sousnumeropage",
+ ["it"]="subpagenumber",
+ ["nl"]="subpaginanummer",
+ ["pe"]="شماره‌زیرصفحه",
+ ["ro"]="subpagenumber",
+ },
+ ["switchtobodyfont"]={
+ ["cs"]="prepninazakladnifont",
+ ["de"]="wechselezumfliesstext",
+ ["en"]="switchtobodyfont",
+ ["fr"]="changepolicecorps",
+ ["it"]="cambiaafontdeltesto",
+ ["nl"]="switchnaarkorps",
+ ["pe"]="تغییربه‌قلم‌بدنه",
+ ["ro"]="trecilafonttext",
+ },
+ ["switchtorawfont"]={
+ ["cs"]="switchtorawfont",
+ ["de"]="switchtorawfont",
+ ["en"]="switchtorawfont",
+ ["fr"]="changepolicebrute",
+ ["it"]="passaafontgrezzo",
+ ["nl"]="switchtorawfont",
+ ["pe"]="تغییربه‌قلم‌خام",
+ ["ro"]="trecilafontraw",
+ },
+ ["sym"]={
+ ["cs"]="sym",
+ ["de"]="sym",
+ ["en"]="sym",
+ ["fr"]="sym",
+ ["it"]="sim",
+ ["nl"]="sym",
+ ["pe"]="نم",
+ ["ro"]="sim",
+ },
+ ["symbol"]={
+ ["cs"]="symbol",
+ ["de"]="symbol",
+ ["en"]="symbol",
+ ["fr"]="symbole",
+ ["it"]="simbolo",
+ ["nl"]="symbool",
+ ["pe"]="نماد",
+ ["ro"]="simbol",
+ },
+ ["synchronizationbar"]={
+ ["cs"]="synchronizacnilista",
+ ["de"]="synchronisationsbalken",
+ ["en"]="synchronizationbar",
+ ["fr"]="barresynchronisation",
+ ["it"]="barrasincronizzazione",
+ ["nl"]="synchronisatiebalk",
+ ["pe"]="میله‌تطابق",
+ ["ro"]="barasincronizare",
+ },
+ ["synchronize"]={
+ ["cs"]="synchronizovat",
+ ["de"]="synchronisieren",
+ ["en"]="synchronize",
+ ["fr"]="synchronise",
+ ["it"]="sincronizza",
+ ["nl"]="synchroniseer",
+ ["pe"]="تطابق",
+ ["ro"]="sincronizeaza",
+ },
+ ["tab"]={
+ ["cs"]="tab",
+ ["de"]="tab",
+ ["en"]="tab",
+ ["fr"]="tab",
+ ["it"]="tab",
+ ["nl"]="tab",
+ ["pe"]="تب",
+ ["ro"]="tab",
+ },
+ ["testcolumn"]={
+ ["cs"]="testcolumn",
+ ["de"]="testcolumn",
+ ["en"]="testcolumn",
+ ["fr"]="testcolumn",
+ ["it"]="testcolumn",
+ ["nl"]="testkolom",
+ ["pe"]="ستون‌امتحان",
+ ["ro"]="testcolumn",
+ },
+ ["testpage"]={
+ ["cs"]="testpage",
+ ["de"]="testpage",
+ ["en"]="testpage",
+ ["fr"]="testpage",
+ ["it"]="testpage",
+ ["nl"]="testpagina",
+ ["pe"]="صفحه‌تست",
+ ["ro"]="testpage",
+ },
+ ["tex"]={
+ ["cs"]="tex",
+ ["de"]="tex",
+ ["en"]="tex",
+ ["fr"]="tex",
+ ["it"]="tex",
+ ["nl"]="tex",
+ ["pe"]="تک",
+ ["ro"]="tex",
+ },
+ ["textheight"]={
+ ["cs"]="vyskatextu",
+ ["de"]="texthoehe",
+ ["en"]="textheight",
+ ["fr"]="hauteurtexte",
+ ["it"]="altezzatesto",
+ ["nl"]="teksthoogte",
+ ["pe"]="ارتفاع‌متن",
+ ["ro"]="inaltimetext",
+ },
+ ["textreference"]={
+ ["cs"]="odkaznatext",
+ ["de"]="textreferenz",
+ ["en"]="textreference",
+ ["fr"]="referencetexte",
+ ["it"]="riferimentotesto",
+ ["nl"]="tekstreferentie",
+ ["pe"]="مرجع‌متن",
+ ["ro"]="referintatext",
+ },
+ ["textrule"]={
+ ["cs"]="textovalinka",
+ ["de"]="textlinie",
+ ["en"]="textrule",
+ ["fr"]="ligneregleetexte",
+ ["it"]="lineatesto",
+ ["nl"]="tekstlijn",
+ ["pe"]="خط‌متن",
+ ["ro"]="riglatext",
+ },
+ ["textvariable"]={
+ ["cs"]="textvariable",
+ ["de"]="textvariable",
+ ["en"]="textvariable",
+ ["fr"]="variabletexte",
+ ["it"]="variabiletesto",
+ ["nl"]="tekstvariabele",
+ ["pe"]="متغیر متن",
+ ["ro"]="variabilatext",
+ },
+ ["textwidth"]={
+ ["cs"]="sirkatextu",
+ ["de"]="textbreite",
+ ["en"]="textwidth",
+ ["fr"]="largeurtexte",
+ ["it"]="ampiezzatesto",
+ ["nl"]="tekstbreedte",
+ ["pe"]="عرض‌متن",
+ ["ro"]="latimetext",
+ },
+ ["thinrule"]={
+ ["cs"]="tenkalinka",
+ ["de"]="duennelinie",
+ ["en"]="thinrule",
+ ["fr"]="traitfin",
+ ["it"]="lineasottile",
+ ["nl"]="dunnelijn",
+ ["pe"]="خط‌نازک",
+ ["ro"]="liniesubtire",
+ },
+ ["thinrules"]={
+ ["cs"]="tenkelinky",
+ ["de"]="duennerumriss",
+ ["en"]="thinrules",
+ ["fr"]="traitsfins",
+ ["it"]="lineesottili",
+ ["nl"]="dunnelijnen",
+ ["pe"]="خطهای‌نازک",
+ ["ro"]="liniisubtiri",
+ },
+ ["tooltip"]={
+ ["cs"]="bublinkovanapoveda",
+ ["de"]="tooltip",
+ ["en"]="tooltip",
+ ["fr"]="suggestion",
+ ["it"]="tooltip",
+ ["nl"]="suggestie",
+ ["pe"]="tooltip",
+ ["ro"]="tooltip",
+ },
+ ["topdistance"]={
+ ["cs"]="vzdalenosthorejsku",
+ ["de"]="abstandoben",
+ ["en"]="topdistance",
+ ["fr"]="distancesup",
+ ["it"]="distanzacima",
+ ["nl"]="bovenafstand",
+ ["pe"]="فاصله‌بالا",
+ ["ro"]="distantasus",
+ },
+ ["topheight"]={
+ ["cs"]="vyskahorejsku",
+ ["de"]="hoeheoben",
+ ["en"]="topheight",
+ ["fr"]="hauteursup",
+ ["it"]="altezzacima",
+ ["nl"]="bovenhoogte",
+ ["pe"]="ارتفاع‌بالا",
+ ["ro"]="inaltimesus",
+ },
+ ["topspace"]={
+ ["cs"]="odsazenishora",
+ ["de"]="kopfweite",
+ ["en"]="topspace",
+ ["fr"]="espacesup",
+ ["it"]="spaziocima",
+ ["nl"]="kopwit",
+ ["pe"]="فضای‌بالا",
+ ["ro"]="spatiusus",
+ },
+ ["totalnumberofpages"]={
+ ["cs"]="celkovypocetstran",
+ ["de"]="gesamtseitenanzahl",
+ ["en"]="totalnumberofpages",
+ ["fr"]="nombretotaldepages",
+ ["it"]="numerototaledipagine",
+ ["nl"]="totaalaantalpaginas",
+ ["pe"]="شماره‌کل‌صفحه‌ها",
+ ["ro"]="numartotalpagini",
+ },
+ ["translate"]={
+ ["cs"]="prelozit",
+ ["de"]="uebersetzten",
+ ["en"]="translate",
+ ["fr"]="traduire",
+ ["it"]="traduci",
+ ["nl"]="vertaal",
+ ["pe"]="ترجمه",
+ ["ro"]="traduce",
+ },
+ ["txt"]={
+ ["cs"]="txt",
+ ["de"]="txt",
+ ["en"]="txt",
+ ["fr"]="txt",
+ ["it"]="txt",
+ ["nl"]="txt",
+ ["pe"]="txt",
+ ["ro"]="txt",
+ },
+ ["typ"]={
+ ["cs"]="pis",
+ ["de"]="tip",
+ ["en"]="typ",
+ ["fr"]="typ",
+ ["it"]="typ",
+ ["nl"]="typ",
+ ["pe"]="typ",
+ ["ro"]="typ",
+ },
+ ["type"]={
+ ["cs"]="opis",
+ ["de"]="tippen",
+ ["en"]="type",
+ ["fr"]="dactylographier",
+ ["it"]="type",
+ ["nl"]="type",
+ ["pe"]="تایپ",
+ ["ro"]="type",
+ },
+ ["typebuffer"]={
+ ["cs"]="typebuffer",
+ ["de"]="tippepuffer",
+ ["en"]="typebuffer",
+ ["fr"]="tapebuffer",
+ ["it"]="typebuffer",
+ ["nl"]="typebuffer",
+ ["pe"]="تایپ‌بافر",
+ ["ro"]="scriebuffer",
+ },
+ ["typefile"]={
+ ["cs"]="opissoubor",
+ ["de"]="tippedatei",
+ ["en"]="typefile",
+ ["fr"]="fichierdactylo",
+ ["it"]="typefile",
+ ["nl"]="typefile",
+ ["pe"]="تایپ‌پرونده",
+ ["ro"]="typefile",
+ },
+ ["underbar"]={
+ ["cs"]="podtrzeno",
+ ["de"]="unterstrichen",
+ ["en"]="underbar",
+ ["fr"]="souslignetout",
+ ["it"]="sottolinea",
+ ["nl"]="onderstreep",
+ ["pe"]="میله‌زیر",
+ ["ro"]="sublinie",
+ },
+ ["underbars"]={
+ ["cs"]="podtrzeni",
+ ["de"]="unterstreichen",
+ ["en"]="underbars",
+ ["fr"]="sousligne",
+ ["it"]="sottolinee",
+ ["nl"]="onderstrepen",
+ ["pe"]="میله‌‌های‌زیر",
+ ["ro"]="sublinii",
+ },
+ ["unitmeaning"]={
+ ["cs"]="vyznam",
+ ["de"]="bedeutung",
+ ["en"]="unitmeaning",
+ ["fr"]="sensunite",
+ ["it"]="nomeunita",
+ ["nl"]="betekenis",
+ ["pe"]="معنی‌واحد",
+ ["ro"]="numeunitate",
+ },
+ ["unknown"]={
+ ["cs"]="neznamo",
+ ["de"]="unbekant",
+ ["en"]="unknown",
+ ["fr"]="inconnu",
+ ["it"]="ignoto",
+ ["nl"]="onbekend",
+ ["pe"]="ناشناس",
+ ["ro"]="necunoscut",
+ },
+ ["useJSscripts"]={
+ ["cs"]="uzijJSscripts",
+ ["de"]="verwendeJSscript",
+ ["en"]="useJSscripts",
+ ["fr"]="utiliseJSscripts",
+ ["it"]="usaJSscripts",
+ ["nl"]="gebruikJSscripts",
+ ["pe"]="useJSscripts",
+ ["ro"]="folosestescriptJS",
+ },
+ ["useURL"]={
+ ["cs"]="uzijURL",
+ ["de"]="verwendeURL",
+ ["en"]="useURL",
+ ["fr"]="utiliseURL",
+ ["it"]="usaURL",
+ ["nl"]="gebruikURL",
+ ["pe"]="useURL",
+ ["ro"]="folosesteURL",
+ },
+ ["useXMLfilter"]={
+ ["cs"]="useXMLfilter",
+ ["de"]="useXMLfilter",
+ ["en"]="useXMLfilter",
+ ["fr"]="useXMLfilter",
+ ["it"]="useXMLfilter",
+ ["nl"]="gebruikXMLfilter",
+ ["pe"]="useXMLfilter",
+ ["ro"]="useXMLfilter",
+ },
+ ["useblocks"]={
+ ["cs"]="uzijbloky",
+ ["de"]="verwendebloecke",
+ ["en"]="useblocks",
+ ["fr"]="utiliseblocs",
+ ["it"]="usablocco",
+ ["nl"]="gebruikblokken",
+ ["pe"]="استفاده‌بلوکها",
+ ["ro"]="folosestebloc",
+ },
+ ["usecommands"]={
+ ["cs"]="uzijprikazy",
+ ["de"]="verwendebefehl",
+ ["en"]="usecommands",
+ ["fr"]="utilisecommandes",
+ ["it"]="usacomandi",
+ ["nl"]="gebruikcommandos",
+ ["pe"]="استفاده‌فرمانها",
+ ["ro"]="folosestecomenzi",
+ },
+ ["useencoding"]={
+ ["cs"]="uzijkodovani",
+ ["de"]="benutzekodierung",
+ ["en"]="useencoding",
+ ["fr"]="utiliseencodage",
+ ["it"]="usacodifica",
+ ["nl"]="usecodering",
+ ["pe"]="استفاده‌رمزینه",
+ ["ro"]="folosestecodificarea",
+ },
+ ["useexternaldocument"]={
+ ["cs"]="uzijexternidokument",
+ ["de"]="verwendeexteresdokument",
+ ["en"]="useexternaldocument",
+ ["fr"]="utilisedocumentexterne",
+ ["it"]="usadocumentoesterno",
+ ["nl"]="gebruikexterndocument",
+ ["pe"]="استفاده‌نوشتارخارجی",
+ ["ro"]="folosestedocumentextern",
+ },
+ ["useexternalfigure"]={
+ ["cs"]="uzijexterniobraz",
+ ["de"]="verwendeexterneabbildung",
+ ["en"]="useexternalfigure",
+ ["fr"]="utilisefigureexterne",
+ ["it"]="usafiguraesterna",
+ ["nl"]="gebruikexternfiguur",
+ ["pe"]="استفاده‌شکل‌خارجی",
+ ["ro"]="folosestefiguraexterna",
+ },
+ ["useexternalfile"]={
+ ["cs"]="uzijexternisoubor",
+ ["de"]="verwendeexternedatei",
+ ["en"]="useexternalfile",
+ ["fr"]="utilisefichierexterne",
+ ["it"]="usafileesterno",
+ ["nl"]="gebruikexternefile",
+ ["pe"]="استفاده‌پرونده‌خارجی",
+ ["ro"]="folosestefisierextern",
+ },
+ ["useexternalfiles"]={
+ ["cs"]="uzijexternisoubory",
+ ["de"]="verwendeexternedateien",
+ ["en"]="useexternalfiles",
+ ["fr"]="utilisefichiersexternes",
+ ["it"]="usafileesterni",
+ ["nl"]="gebruikexternefiles",
+ ["pe"]="استفاده‌پرونده‌های‌خارجی",
+ ["ro"]="folosestefisiereexterne",
+ },
+ ["useexternalsoundtrack"]={
+ ["cs"]="uzijexternizvuk",
+ ["de"]="verwendeexternestonstueck",
+ ["en"]="useexternalsoundtrack",
+ ["fr"]="utilisepsiteaudioexterne",
+ ["it"]="usacolonnasonoraesterna",
+ ["nl"]="gebruikexterngeluidsfragment",
+ ["pe"]="استفاده‌قطعه‌موزیک‌خارجی",
+ ["ro"]="folosestemuzicaexterna",
+ },
+ ["usemodule"]={
+ ["cs"]="uzijmodul",
+ ["de"]="verwendemodul",
+ ["en"]="usemodule",
+ ["fr"]="utilisemodule",
+ ["it"]="usamodulo",
+ ["nl"]="gebruikmodule",
+ ["pe"]="استفاده‌مدول",
+ ["ro"]="folosestemodul",
+ },
+ ["usemodules"]={
+ ["cs"]="uzijmoduly",
+ ["de"]="verwendemodule",
+ ["en"]="usemodules",
+ ["fr"]="utilisemodules",
+ ["it"]="usamoduli",
+ ["nl"]="gebruikmodules",
+ ["pe"]="استفاده‌مدولها",
+ ["ro"]="folosestemodule",
+ },
+ ["usepath"]={
+ ["cs"]="uzijadresar",
+ ["de"]="benutzeverzeichnis",
+ ["en"]="usedirectory",
+ ["fr"]="utilisechemin",
+ ["it"]="usacartella",
+ ["nl"]="gebruikgebied",
+ ["pe"]="استفاده‌مسیر",
+ ["ro"]="folosestedirector",
+ },
+ ["usereferences"]={
+ ["cs"]="uzijodkazy",
+ ["de"]="verwendereferenzen",
+ ["en"]="usereferences",
+ ["fr"]="utilisereferences",
+ ["it"]="usariferimenti",
+ ["nl"]="gebruikreferenties",
+ ["pe"]="استفاده‌مرجعها",
+ ["ro"]="folosestereferinte",
+ },
+ ["usespecials"]={
+ ["cs"]="uzijspeciality",
+ ["de"]="benutzespezielles",
+ ["en"]="usespecials",
+ ["fr"]="utilisespecialites",
+ ["it"]="usaspecialita",
+ ["nl"]="gebruikspecials",
+ ["pe"]="استفاده‌ویژگیها",
+ ["ro"]="folosestespeciale",
+ },
+ ["usesymbols"]={
+ ["cs"]="uzijsymbol",
+ ["de"]="verwendesymbole",
+ ["en"]="usesymbols",
+ ["fr"]="utilisesymboles",
+ ["it"]="usasimboli",
+ ["nl"]="gebruiksymbolen",
+ ["pe"]="استفاده‌نمادها",
+ ["ro"]="folosestesimboluri",
+ },
+ ["usetypescript"]={
+ ["cs"]="usetypescript",
+ ["de"]="usetypescript",
+ ["en"]="usetypescript",
+ ["fr"]="usetypescript",
+ ["it"]="usetypescript",
+ ["nl"]="gebruiktypescript",
+ ["pe"]="استفاده‌دستخط‌تایپ",
+ ["ro"]="usetypescript",
+ },
+ ["usetypescriptfile"]={
+ ["cs"]="usetypescriptfile",
+ ["de"]="usetypescriptfile",
+ ["en"]="usetypescriptfile",
+ ["it"]="usetypescriptfile",
+ ["nl"]="gebruiktypescriptfile",
+ ["pe"]="استفاده‌پرونده‌دستخط‌تایپ",
+ ["ro"]="usetypescriptfile",
+ },
+ ["useurl"]={
+ ["cs"]="uzijurl",
+ ["de"]="verwendeurl",
+ ["en"]="useurl",
+ ["fr"]="utiliseurl",
+ ["it"]="usaurl",
+ ["nl"]="gebruikurl",
+ ["pe"]="useurl",
+ ["ro"]="folosesteurl",
+ },
+ ["version"]={
+ ["cs"]="verze",
+ ["de"]="version",
+ ["en"]="version",
+ ["fr"]="version",
+ ["it"]="versione",
+ ["nl"]="versie",
+ ["pe"]="نسخه",
+ ["ro"]="versiune",
+ },
+ ["vl"]={
+ ["cs"]="vl",
+ ["de"]="vl",
+ ["en"]="vl",
+ ["fr"]="vl",
+ ["it"]="vl",
+ ["nl"]="vl",
+ ["pe"]="خ‌ع",
+ ["ro"]="vl",
+ },
+ ["weekday"]={
+ ["cs"]="vsedniden",
+ ["de"]="wochentag",
+ ["en"]="weekday",
+ ["fr"]="joursemaine",
+ ["it"]="giornosettimana",
+ ["nl"]="weekdag",
+ ["pe"]="روزهفته",
+ ["ro"]="zidinsaptamana",
+ },
+ ["whitespace"]={
+ ["cs"]="bilemisto",
+ ["de"]="zwischenraum",
+ ["en"]="whitespace",
+ ["fr"]="espaceblanc",
+ ["it"]="spaziobianco",
+ ["nl"]="witruimte",
+ ["pe"]="فضای‌سفید",
+ ["ro"]="spatiualb",
+ },
+ ["wordright"]={
+ ["cs"]="slovovpravo",
+ ["de"]="wortrechts",
+ ["en"]="wordright",
+ ["fr"]="motdroit",
+ ["it"]="paroladestra",
+ ["nl"]="woordrechts",
+ ["pe"]="کلمه‌راست",
+ ["ro"]="cuvantdreapta",
+ },
+ ["writebetweenlist"]={
+ ["cs"]="zapismeziseznam",
+ ["de"]="schreibezwischenliste",
+ ["en"]="writebetweenlist",
+ ["fr"]="ecritentreliste",
+ ["it"]="scrividentroelenco",
+ ["nl"]="schrijftussenlijst",
+ ["pe"]="بنویس‌بین‌لیست",
+ ["ro"]="scrieintreliste",
+ },
+ ["writetolist"]={
+ ["cs"]="zapisdoseznamu",
+ ["de"]="schreibezurliste",
+ ["en"]="writetolist",
+ ["fr"]="ecritdansliste",
+ ["it"]="scriviinelenco",
+ ["nl"]="schrijfnaarlijst",
+ ["pe"]="بنویس‌در‌لیست",
+ ["ro"]="scrieinlista",
+ },
+ ["writetoreferencelist"]={
+ ["cs"]="zapisdoseznamuodkazu",
+ ["de"]="schreibezurreferenzliste",
+ ["en"]="writetoreferencelist",
+ ["fr"]="ecritdanslistereference",
+ ["it"]="scriviinlistariferimenti",
+ ["nl"]="schrijfnaarreferentielijst",
+ ["pe"]="بنویس‌درلیست‌مرجع",
+ ["ro"]="scrieinlistareferinte",
+ },
+ ["writetoregister"]={
+ ["cs"]="zapisdorejstriku",
+ ["de"]="schreibezumregister",
+ ["en"]="writetoregister",
+ ["fr"]="ecritregistre",
+ ["it"]="scriviinregistro",
+ ["nl"]="schrijfnaarregister",
+ ["pe"]="بنویس‌درثبت",
+ ["ro"]="scrieinregistru",
+ },
+ },
+ ["constants"]={
+ ["action"]={
+ ["cs"]="akce",
+ ["de"]="aktion",
+ ["en"]="action",
+ ["fr"]="action",
+ ["it"]="azione",
+ ["nl"]="actie",
+ ["pe"]="کنش",
+ ["ro"]="actiune",
+ },
+ ["address"]={
+ ["cs"]="adresa",
+ ["de"]="adresse",
+ ["en"]="address",
+ ["fr"]="adresse",
+ ["it"]="indirizzo",
+ ["nl"]="adres",
+ ["pe"]="نشانی",
+ ["ro"]="adresa",
+ },
+ ["after"]={
+ ["cs"]="po",
+ ["de"]="nach",
+ ["en"]="after",
+ ["fr"]="apres",
+ ["it"]="dopo",
+ ["nl"]="na",
+ ["pe"]="بعداز",
+ ["ro"]="dupa",
+ },
+ ["afterhead"]={
+ ["cs"]="pohlavicce",
+ ["de"]="nachkopf",
+ ["en"]="afterhead",
+ ["fr"]="aprestete",
+ ["it"]="dopotesta",
+ ["nl"]="kopna",
+ ["pe"]="بعدازسر",
+ ["ro"]="dupatitlu",
+ },
+ ["afterkey"]={
+ ["cs"]="klavesapo",
+ ["de"]="nachtaste",
+ ["en"]="afterkey",
+ ["fr"]="aprescle",
+ ["it"]="dopotasto",
+ ["nl"]="natoets",
+ ["pe"]="بعدازکلید",
+ ["ro"]="dupatasta",
+ },
+ ["align"]={
+ ["cs"]="zarovnani",
+ ["de"]="ausrichtung",
+ ["en"]="align",
+ ["fr"]="alignement",
+ ["it"]="allinea",
+ ["nl"]="uitlijnen",
+ ["pe"]="تنظیم",
+ ["ro"]="aliniere",
+ },
+ ["aligncharacter"]={
+ ["cs"]="aligncharacter",
+ ["de"]="aligncharacter",
+ ["en"]="aligncharacter",
+ ["fr"]="caracterealigne",
+ ["it"]="allineacarattere",
+ ["nl"]="karakteruitlijnen",
+ ["pe"]="حرف‌تنظیم",
+ ["ro"]="aliniazacaracter",
+ },
+ ["alignmentcharacter"]={
+ ["cs"]="alignmentcharacter",
+ ["de"]="alignmentcharacter",
+ ["en"]="alignmentcharacter",
+ ["fr"]="alignementcaractere",
+ ["it"]="carattereallineamento",
+ ["nl"]="uitlijnkarakter",
+ ["pe"]="حرف‌تنظیم‌کردن",
+ ["ro"]="alierecaracter",
+ },
+ ["aligntitle"]={
+ ["cs"]="zarovnejtitul",
+ ["de"]="titelausrichten",
+ ["en"]="aligntitle",
+ ["fr"]="alignementtitre",
+ ["it"]="allineatitolo",
+ ["nl"]="titeluitlijnen",
+ ["pe"]="عنوان‌تنظیم",
+ ["ro"]="alinieretitlu",
+ },
+ ["alternative"]={
+ ["cs"]="alternativa",
+ ["de"]="alternative",
+ ["en"]="alternative",
+ ["fr"]="alternative",
+ ["it"]="alternativa",
+ ["nl"]="variant",
+ ["pe"]="جایگزین",
+ ["ro"]="alternativ",
+ },
+ ["apa"]={
+ ["cs"]="apa",
+ ["de"]="apa",
+ ["en"]="apa",
+ ["fr"]="apa",
+ ["it"]="apa",
+ ["nl"]="apa",
+ ["pe"]="apa",
+ ["ro"]="apa",
+ },
+ ["arrow"]={
+ ["cs"]="sipka",
+ ["de"]="pfeil",
+ ["en"]="arrow",
+ ["fr"]="fleche",
+ ["it"]="freccia",
+ ["nl"]="pijl",
+ ["pe"]="پیکان",
+ ["ro"]="sageata",
+ },
+ ["at"]={
+ ["cs"]="u",
+ ["de"]="bei",
+ ["en"]="at",
+ ["fr"]="a",
+ ["it"]="ad",
+ ["nl"]="op",
+ ["pe"]="در",
+ ["ro"]="la",
+ },
+ ["author"]={
+ ["cs"]="autor",
+ ["de"]="autor",
+ ["en"]="author",
+ ["fr"]="auteur",
+ ["it"]="autore",
+ ["nl"]="auteur",
+ ["pe"]="نویسنده",
+ ["ro"]="autor",
+ },
+ ["auto"]={
+ ["cs"]="auto",
+ ["de"]="auto",
+ ["en"]="auto",
+ ["fr"]="auto",
+ ["it"]="auto",
+ ["nl"]="auto",
+ ["pe"]="خودکار",
+ ["ro"]="auto",
+ },
+ ["autofile"]={
+ ["cs"]="autofile",
+ ["de"]="autofile",
+ ["en"]="autofile",
+ ["fr"]="autofile",
+ ["it"]="autofile",
+ ["nl"]="autofile",
+ ["pe"]="پرونده‌خودکار",
+ ["ro"]="autofile",
+ },
+ ["autofocus"]={
+ ["cs"]="autoostreni",
+ ["de"]="autofocus",
+ ["en"]="autofocus",
+ ["fr"]="autofocus",
+ ["it"]="autofocus",
+ ["nl"]="autofocus",
+ ["pe"]="تمرکز‌خودکار",
+ ["ro"]="autofocus",
+ },
+ ["autohang"]={
+ ["cs"]="autohang",
+ ["de"]="autohang",
+ ["en"]="autohang",
+ ["fr"]="autohang",
+ ["it"]="autohang",
+ ["nl"]="autohang",
+ ["pe"]="آویزان‌خودکار",
+ ["ro"]="autohang",
+ },
+ ["autostrut"]={
+ ["cs"]="autostrut",
+ ["de"]="autostrut",
+ ["en"]="autostrut",
+ ["fr"]="autostrut",
+ ["it"]="autostrut",
+ ["nl"]="autostrut",
+ ["pe"]="بست‌خودکار",
+ ["ro"]="autostrut",
+ },
+ ["autowidth"]={
+ ["cs"]="autosirka",
+ ["de"]="autobreite",
+ ["en"]="autowidth",
+ ["fr"]="autolargeur",
+ ["it"]="autoampiezza",
+ ["nl"]="autobreedte",
+ ["pe"]="عرض‌خودکار",
+ ["ro"]="autolatime",
+ },
+ ["axis"]={
+ ["cs"]="osa",
+ ["de"]="achsen",
+ ["en"]="axis",
+ ["fr"]="axe",
+ ["it"]="asse",
+ ["nl"]="assenstelsel",
+ ["pe"]="محورها",
+ ["ro"]="axa",
+ },
+ ["background"]={
+ ["cs"]="pozadi",
+ ["de"]="hintergrund",
+ ["en"]="background",
+ ["fr"]="arriereplan",
+ ["it"]="sfondo",
+ ["nl"]="achtergrond",
+ ["pe"]="پس‌زمینه",
+ ["ro"]="fundal",
+ },
+ ["backgroundcolor"]={
+ ["cs"]="barvapozadi",
+ ["de"]="hintergrundfarbe",
+ ["en"]="backgroundcolor",
+ ["fr"]="couleurarriereplan",
+ ["it"]="coloresfondo",
+ ["nl"]="achtergrondkleur",
+ ["pe"]="رنگ‌پس‌زمینه",
+ ["ro"]="culoarefundal",
+ },
+ ["backgroundcorner"]={
+ ["cs"]="rohpozadi",
+ ["de"]="hintergrundwinkel",
+ ["en"]="backgroundcorner",
+ ["fr"]="coinarriereplan",
+ ["it"]="angolosfondo",
+ ["nl"]="achtergrondhoek",
+ ["pe"]="گوشه‌پس‌زمینه",
+ ["ro"]="coltfundal",
+ },
+ ["backgrounddepth"]={
+ ["cs"]="hloubkapozadi",
+ ["de"]="hintergrundtiefe",
+ ["en"]="backgrounddepth",
+ ["fr"]="profondeurarriereplan",
+ ["it"]="profonditasfondo",
+ ["nl"]="achtergronddiepte",
+ ["pe"]="عمق‌پس‌زمینه",
+ ["ro"]="adancimefundal",
+ },
+ ["backgroundoffset"]={
+ ["cs"]="offsetpozadi",
+ ["de"]="hintergrundoffset",
+ ["en"]="backgroundoffset",
+ ["fr"]="decalagearriereplan",
+ ["it"]="offsetsfondo",
+ ["nl"]="achtergrondoffset",
+ ["pe"]="آفست‌پس‌زمینه",
+ ["ro"]="offsetfundal",
+ },
+ ["backgroundradius"]={
+ ["cs"]="polomerpozadi",
+ ["de"]="hintergrundradius",
+ ["en"]="backgroundradius",
+ ["fr"]="rayonarriereplan",
+ ["it"]="raggiosfondo",
+ ["nl"]="achtergrondstraal",
+ ["pe"]="شعاع‌پس‌زمینه",
+ ["ro"]="razafundal",
+ },
+ ["backgroundscreen"]={
+ ["cs"]="rastrpozadi",
+ ["de"]="hintergrundraster",
+ ["en"]="backgroundscreen",
+ ["fr"]="ecranarriereplan",
+ ["it"]="schermosfondo",
+ ["nl"]="achtergrondraster",
+ ["pe"]="پرده‌پس‌زمینه",
+ ["ro"]="ecranfundal",
+ },
+ ["backspace"]={
+ ["cs"]="zpetnamezera",
+ ["de"]="rumpfspatium",
+ ["en"]="backspace",
+ ["fr"]="retour",
+ ["it"]="backspace",
+ ["nl"]="rugwit",
+ ["pe"]="فضای‌پس",
+ ["ro"]="spatiuspate",
+ },
+ ["balance"]={
+ ["cs"]="rovnovaha",
+ ["de"]="ausgleichen",
+ ["en"]="balance",
+ ["fr"]="equilibre",
+ ["it"]="bilanciamento",
+ ["nl"]="balanceren",
+ ["pe"]="تعادل",
+ ["ro"]="balanta",
+ },
+ ["before"]={
+ ["cs"]="pred",
+ ["de"]="vor",
+ ["en"]="before",
+ ["fr"]="avant",
+ ["it"]="prima",
+ ["nl"]="voor",
+ ["pe"]="قبل‌از",
+ ["ro"]="inainte",
+ },
+ ["beforehead"]={
+ ["cs"]="predhlavickou",
+ ["de"]="vorkopf",
+ ["en"]="beforehead",
+ ["fr"]="avanttete",
+ ["it"]="primaditesta",
+ ["nl"]="kopvoor",
+ ["pe"]="قبل‌ازسر",
+ ["ro"]="inaintetitlu",
+ },
+ ["bet"]={
+ ["cs"]="bet",
+ ["de"]="bet",
+ ["en"]="bet",
+ ["fr"]="bet",
+ ["it"]="bet",
+ ["nl"]="bet",
+ ["pe"]="bet",
+ ["ro"]="bet",
+ },
+ ["big"]={
+ ["cs"]="velky",
+ ["de"]="gross",
+ ["en"]="big",
+ ["fr"]="grand",
+ ["it"]="grande",
+ ["nl"]="groot",
+ ["pe"]="بزرگ",
+ ["ro"]="mare",
+ },
+ ["blank"]={
+ ["cs"]="prazdny",
+ ["de"]="blanko",
+ ["en"]="blank",
+ ["fr"]="vide",
+ ["it"]="rigovuoto",
+ ["nl"]="blanko",
+ ["pe"]="خالی",
+ ["ro"]="blanc",
+ },
+ ["blockway"]={
+ ["cs"]="dobloku",
+ ["de"]="blockauf",
+ ["en"]="blockway",
+ ["fr"]="blockway",
+ ["it"]="blockway",
+ ["nl"]="blokwijze",
+ ["pe"]="راه‌بلوک",
+ ["ro"]="blockway",
+ },
+ ["bodyfont"]={
+ ["cs"]="zakladnifont",
+ ["de"]="fliesstext",
+ ["en"]="bodyfont",
+ ["fr"]="policecorps",
+ ["it"]="fonttesto",
+ ["nl"]="korps",
+ ["pe"]="قلم‌بدنه",
+ ["ro"]="fonttext",
+ },
+ ["bookmark"]={
+ ["cs"]="zalozka",
+ ["de"]="bookmark",
+ ["en"]="bookmark",
+ ["fr"]="marquepage",
+ ["it"]="segnalibro",
+ ["nl"]="bookmark",
+ ["pe"]="چوبخط",
+ ["ro"]="semncarte",
+ },
+ ["bottom"]={
+ ["cs"]="spodek",
+ ["de"]="unten",
+ ["en"]="bottom",
+ ["fr"]="inf",
+ ["it"]="fondo",
+ ["nl"]="onder",
+ ["pe"]="پایین",
+ ["ro"]="jos",
+ },
+ ["bottomafter"]={
+ ["en"]="bottomafter",
+ },
+ ["bottombefore"]={
+ ["en"]="bottombefore",
+ },
+ ["bottomdistance"]={
+ ["cs"]="vzdalenostspodku",
+ ["de"]="abstandunten",
+ ["en"]="bottomdistance",
+ ["fr"]="distanceinf",
+ ["it"]="distanzafondo",
+ ["nl"]="onderafstand",
+ ["pe"]="فاصله‌پایین",
+ ["ro"]="distantajos",
+ },
+ ["bottomframe"]={
+ ["cs"]="ramecekdole",
+ ["de"]="untenrahmen",
+ ["en"]="bottomframe",
+ ["fr"]="cadreinf",
+ ["it"]="cornicefondo",
+ ["nl"]="onderkader",
+ ["pe"]="قالب‌پایین",
+ ["ro"]="framejos",
+ },
+ ["bottomoffset"]={
+ ["cs"]="offsetspodku",
+ ["de"]="untenoffset",
+ ["en"]="bottomoffset",
+ ["fr"]="decalageinf",
+ ["it"]="offsetfondo",
+ ["nl"]="onderoffset",
+ ["pe"]="آفست‌پایین",
+ ["ro"]="offsetjos",
+ },
+ ["bottomspace"]={
+ ["cs"]="bottomspace",
+ ["de"]="bottomspace",
+ ["en"]="bottomspace",
+ ["fr"]="espaceinf",
+ ["it"]="spaziofondo",
+ ["nl"]="bodemwit",
+ ["pe"]="فضای‌پایین",
+ ["ro"]="spatiujos",
+ },
+ ["bottomstate"]={
+ ["cs"]="statusspodku",
+ ["de"]="untenstatus",
+ ["en"]="bottomstate",
+ ["fr"]="etatinf",
+ ["it"]="statofondo",
+ ["nl"]="onderstatus",
+ ["pe"]="وضعیت‌پایین",
+ ["ro"]="starejos",
+ },
+ ["cache"]={
+ ["cs"]="cache",
+ ["de"]="cache",
+ ["en"]="cache",
+ ["fr"]="cache",
+ ["it"]="cache",
+ ["nl"]="cache",
+ ["pe"]="میانگیر",
+ ["ro"]="cache",
+ },
+ ["calculate"]={
+ ["cs"]="pocitat",
+ ["de"]="berechnen",
+ ["en"]="calculate",
+ ["fr"]="calculer",
+ ["it"]="calcola",
+ ["nl"]="bereken",
+ ["pe"]="محاسبه",
+ ["ro"]="calculeaza",
+ },
+ ["ccommand"]={
+ ["cs"]="cprikaz",
+ ["de"]="cbefehl",
+ ["en"]="ccommand",
+ ["fr"]="ccommande",
+ ["it"]="ccomando",
+ ["nl"]="ccommando",
+ ["pe"]="فرمان",
+ ["ro"]="comandac",
+ },
+ ["click"]={
+ ["cs"]="klik",
+ ["de"]="klick",
+ ["en"]="click",
+ ["fr"]="clic",
+ ["it"]="click",
+ ["nl"]="klik",
+ ["pe"]="فشردن",
+ ["ro"]="click",
+ },
+ ["clickin"]={
+ ["cs"]="klikuvnitr",
+ ["de"]="klickin",
+ ["en"]="clickin",
+ ["fr"]="clicinterieur",
+ ["it"]="clickdentro",
+ ["nl"]="klikin",
+ ["pe"]="فشردن‌داخل",
+ ["ro"]="clickintru",
+ },
+ ["clickout"]={
+ ["cs"]="klikvne",
+ ["de"]="klickaus",
+ ["en"]="clickout",
+ ["fr"]="clicexterieur",
+ ["it"]="clickfuori",
+ ["nl"]="klikuit",
+ ["pe"]="فشردن‌خارج",
+ ["ro"]="clickies",
+ },
+ ["clipoffset"]={
+ ["cs"]="clipoffset",
+ ["de"]="clipoffset",
+ ["en"]="clipoffset",
+ ["fr"]="clipoffset",
+ ["it"]="clipoffset",
+ ["nl"]="clipoffset",
+ ["pe"]="آفست‌کلیپ",
+ ["ro"]="clipoffset",
+ },
+ ["closeaction"]={
+ ["cs"]="zavriakci",
+ ["de"]="schliessenaktion",
+ ["en"]="closeaction",
+ ["fr"]="actionfermeture",
+ ["it"]="azionechiudi",
+ ["nl"]="sluitactie",
+ ["pe"]="بستن‌کنش",
+ ["ro"]="actiuneinchidere",
+ },
+ ["closecommand"]={
+ ["cs"]="closecommand",
+ ["de"]="closecommand",
+ ["en"]="closecommand",
+ ["fr"]="closecommand",
+ ["it"]="closecommand",
+ ["nl"]="sluitcommando",
+ ["pe"]="بستن‌فرمان",
+ ["ro"]="closecommand",
+ },
+ ["closepageaction"]={
+ ["cs"]="akcezavrenistranky",
+ ["de"]="closepageaction",
+ ["en"]="closepageaction",
+ ["fr"]="actionfermeturepage",
+ ["it"]="azionechiudipagina",
+ ["nl"]="sluitpaginaactie",
+ ["pe"]="بستن‌عمل‌صفحه",
+ ["ro"]="actiuneinchiderepagina",
+ },
+ ["closesymbol"]={
+ ["cs"]="closesymbol",
+ ["de"]="closesymbol",
+ ["en"]="closesymbol",
+ ["fr"]="closesymbol",
+ ["it"]="closesymbol",
+ ["nl"]="sluitsymbool",
+ ["pe"]="بستن‌نماد",
+ ["ro"]="closesymbol",
+ },
+ ["color"]={
+ ["cs"]="barva",
+ ["de"]="farbe",
+ ["en"]="color",
+ ["fr"]="couleur",
+ ["it"]="colore",
+ ["nl"]="kleur",
+ ["pe"]="رنگ",
+ ["ro"]="culoare",
+ },
+ ["column"]={
+ ["cs"]="sloupec",
+ ["de"]="spalte",
+ ["en"]="column",
+ ["fr"]="colonne",
+ ["it"]="colonna",
+ ["nl"]="kolom",
+ ["pe"]="ستون",
+ ["ro"]="coloana",
+ },
+ ["columndistance"]={
+ ["cs"]="vzdalenostsloupcu",
+ ["de"]="spaltenabstand",
+ ["en"]="columndistance",
+ ["fr"]="distancecolonne",
+ ["it"]="distanzacolonne",
+ ["nl"]="kolomafstand",
+ ["pe"]="فاصله‌ستون",
+ ["ro"]="distantacoloane",
+ },
+ ["columns"]={
+ ["cs"]="sloupce",
+ ["de"]="spalten",
+ ["en"]="columns",
+ ["fr"]="colonnes",
+ ["it"]="colonne",
+ ["nl"]="kolommen",
+ ["pe"]="ستونها",
+ ["ro"]="coloane",
+ },
+ ["command"]={
+ ["cs"]="prikaz",
+ ["de"]="befehl",
+ ["en"]="command",
+ ["fr"]="commande",
+ ["it"]="comando",
+ ["nl"]="commando",
+ ["pe"]="فرمان",
+ ["ro"]="comanda",
+ },
+ ["commandafter"]={
+ ["cs"]="prikazpo",
+ ["de"]="zumbefehl",
+ ["en"]="commandafter",
+ ["fr"]="commandeapres",
+ ["it"]="comdandodopo",
+ ["nl"]="nacommando",
+ ["pe"]="فرمان‌بعداز",
+ ["ro"]="comandadupa",
+ },
+ ["commandbefore"]={
+ ["cs"]="predchoziprikaz",
+ ["de"]="vorbefehl",
+ ["en"]="commandbefore",
+ ["fr"]="commandeavant",
+ ["it"]="comandoprima",
+ ["nl"]="voorcommando",
+ ["pe"]="فرمان‌قبل‌از",
+ ["ro"]="comandainainte",
+ },
+ ["commands"]={
+ ["cs"]="prikazy",
+ ["de"]="befehle",
+ ["en"]="commands",
+ ["fr"]="commandes",
+ ["it"]="comandi",
+ ["nl"]="commandos",
+ ["pe"]="فرمانها",
+ ["ro"]="comenzi",
+ },
+ ["component"]={
+ ["cs"]="component",
+ ["de"]="component",
+ ["en"]="component",
+ ["fr"]="composant",
+ ["it"]="component",
+ ["nl"]="component",
+ ["pe"]="مولفه",
+ ["ro"]="component",
+ },
+ ["compoundhyphen"]={
+ ["cs"]="compoundhyphen",
+ ["de"]="compoundhyphen",
+ ["en"]="compoundhyphen",
+ ["fr"]="compoundhyphen",
+ ["it"]="compoundhyphen",
+ ["nl"]="koppelteken",
+ ["pe"]="compoundhyphen",
+ ["ro"]="compoundhyphen",
+ },
+ ["compress"]={
+ ["cs"]="compress",
+ ["de"]="compress",
+ ["en"]="compress",
+ ["fr"]="compress",
+ ["it"]="compress",
+ ["nl"]="comprimeren",
+ ["pe"]="فشردن",
+ ["ro"]="compress",
+ },
+ ["connector"]={
+ ["en"]="connector",
+ },
+ ["continue"]={
+ ["cs"]="pokracovat",
+ ["de"]="fortsetzen",
+ ["en"]="continue",
+ ["fr"]="continue",
+ ["it"]="continua",
+ ["nl"]="doorgaan",
+ ["pe"]="ادامه",
+ ["ro"]="continua",
+ },
+ ["contrastcolor"]={
+ ["cs"]="kontrastnibarva",
+ ["de"]="kontrastfarbe",
+ ["en"]="contrastcolor",
+ ["fr"]="coleurcontraste",
+ ["it"]="colorecontrasto",
+ ["nl"]="contrastkleur",
+ ["pe"]="contrastcolor",
+ ["ro"]="culoarecontrast",
+ },
+ ["controls"]={
+ ["cs"]="controls",
+ ["de"]="controls",
+ ["en"]="controls",
+ ["fr"]="controles",
+ ["it"]="controlli",
+ ["nl"]="sturing",
+ ["pe"]="کنترلها",
+ ["ro"]="controale",
+ },
+ ["conversion"]={
+ ["cs"]="konverze",
+ ["de"]="konversion",
+ ["en"]="conversion",
+ ["fr"]="conversion",
+ ["it"]="conversione",
+ ["nl"]="conversie",
+ ["pe"]="تبدیل",
+ ["ro"]="conversie",
+ },
+ ["convertfile"]={
+ ["cs"]="konverzesouboru",
+ ["de"]="konvertieredatei",
+ ["en"]="convertfile",
+ ["fr"]="conversionfichier",
+ ["it"]="convertifile",
+ ["nl"]="converteerfile",
+ ["pe"]="پرونده‌تبدیل",
+ ["ro"]="convertestefisier",
+ },
+ ["corner"]={
+ ["cs"]="roh",
+ ["de"]="winkel",
+ ["en"]="corner",
+ ["fr"]="coin",
+ ["it"]="angolo",
+ ["nl"]="hoek",
+ ["pe"]="گوشه",
+ ["ro"]="colt",
+ },
+ ["coupling"]={
+ ["cs"]="propojeni",
+ ["de"]="verknuepfung",
+ ["en"]="coupling",
+ ["fr"]="couplage",
+ ["it"]="accoppiamento",
+ ["nl"]="koppeling",
+ ["pe"]="تزویج",
+ ["ro"]="cuplare",
+ },
+ ["couplingway"]={
+ ["cs"]="zpusobpropojeni",
+ ["de"]="verkopplungsart",
+ ["en"]="couplingway",
+ ["fr"]="modecouplage",
+ ["it"]="modoaccoppiamento",
+ ["nl"]="koppelwijze",
+ ["pe"]="روش‌تزویج",
+ ["ro"]="modcuplare",
+ },
+ ["criterium"]={
+ ["cs"]="kriterium",
+ ["de"]="kriterium",
+ ["en"]="criterium",
+ ["fr"]="critere",
+ ["it"]="criterio",
+ ["nl"]="criterium",
+ ["pe"]="criterium",
+ ["ro"]="criteriu",
+ },
+ ["current"]={
+ ["cs"]="aktualni",
+ ["de"]="aktuell",
+ ["en"]="current",
+ ["fr"]="courant",
+ ["it"]="corrente",
+ ["nl"]="huidige",
+ ["pe"]="جاری",
+ ["ro"]="curent",
+ },
+ ["cutspace"]={
+ ["cs"]="cutspace",
+ ["de"]="cutspace",
+ ["en"]="cutspace",
+ ["fr"]="cutspace",
+ ["it"]="cutspace",
+ ["nl"]="snijwit",
+ ["pe"]="فضای‌برش",
+ ["ro"]="cutspace",
+ },
+ ["dash"]={
+ ["cs"]="pomlcka",
+ ["de"]="strich",
+ ["en"]="dash",
+ ["fr"]="pointille",
+ ["it"]="dash",
+ ["nl"]="streep",
+ ["pe"]="دش",
+ ["ro"]="dash",
+ },
+ ["dat"]={
+ ["cs"]="dat",
+ ["de"]="dat",
+ ["en"]="dat",
+ ["fr"]="dat",
+ ["it"]="dat",
+ ["nl"]="dat",
+ ["pe"]="dat",
+ ["ro"]="dat",
+ },
+ ["date"]={
+ ["cs"]="datum",
+ ["de"]="datum",
+ ["en"]="date",
+ ["fr"]="date",
+ ["it"]="data",
+ ["nl"]="datum",
+ ["pe"]="تاریخ",
+ ["ro"]="data",
+ },
+ ["deepnumbercommand"]={
+ ["cs"]="deepnumbercommand",
+ ["de"]="deepnumbercommand",
+ ["en"]="deepnumbercommand",
+ ["fr"]="deepnumbercommand",
+ ["it"]="deepnumbercommand",
+ ["nl"]="diepnummercommando",
+ ["pe"]="فرمان‌شماره‌عمیق",
+ ["ro"]="deepnumbercommand",
+ },
+ ["deeptextcommand"]={
+ ["cs"]="deeptextcommand",
+ ["de"]="deeptextcommand",
+ ["en"]="deeptextcommand",
+ ["fr"]="deeptextcommand",
+ ["it"]="deeptextcommand",
+ ["nl"]="dieptekstcommando",
+ ["pe"]="فرمان‌متن‌عمیق",
+ ["ro"]="deeptextcommand",
+ },
+ ["default"]={
+ ["cs"]="implicitni",
+ ["de"]="default",
+ ["en"]="default",
+ ["fr"]="defaut",
+ ["it"]="implicito",
+ ["nl"]="default",
+ ["pe"]="پیش‌فرض",
+ ["ro"]="implicit",
+ },
+ ["delay"]={
+ ["cs"]="prodleva",
+ ["de"]="wartezeit",
+ ["en"]="delay",
+ ["fr"]="delai",
+ ["it"]="attesa",
+ ["nl"]="wachttijd",
+ ["pe"]="تاخیر",
+ ["ro"]="intarziere",
+ },
+ ["depth"]={
+ ["cs"]="hloubka",
+ ["de"]="tiefe",
+ ["en"]="depth",
+ ["fr"]="profondeur",
+ ["it"]="profondita",
+ ["nl"]="diepte",
+ ["pe"]="عمق",
+ ["ro"]="inaltime",
+ },
+ ["depthcorrection"]={
+ ["cs"]="korekcehloubky",
+ ["de"]="tiefekorrektur",
+ ["en"]="depthcorrection",
+ ["fr"]="correctionprofondeur",
+ ["it"]="correzioneprofondita",
+ ["nl"]="dieptecorrectie",
+ ["pe"]="تصحیح‌عمق",
+ ["ro"]="corectieadancime",
+ },
+ ["direction"]={
+ ["cs"]="smer",
+ ["de"]="richtung",
+ ["en"]="direction",
+ ["fr"]="direction",
+ ["it"]="direzione",
+ ["nl"]="richting",
+ ["pe"]="جهت",
+ ["ro"]="directie",
+ },
+ ["directory"]={
+ ["cs"]="adresar",
+ ["de"]="verzeichnis",
+ ["en"]="directory",
+ ["fr"]="repertoire",
+ ["it"]="directory",
+ ["nl"]="gebied",
+ ["pe"]="پوشه",
+ ["ro"]="director",
+ },
+ ["display"]={
+ ["cs"]="obrazovka",
+ ["de"]="bildschirm",
+ ["en"]="display",
+ ["fr"]="affichage",
+ ["it"]="display",
+ ["nl"]="scherm",
+ ["pe"]="نمایش",
+ ["ro"]="display",
+ },
+ ["distance"]={
+ ["cs"]="vzdalenost",
+ ["de"]="abstand",
+ ["en"]="distance",
+ ["fr"]="distance",
+ ["it"]="distanza",
+ ["nl"]="afstand",
+ ["pe"]="فاصله",
+ ["ro"]="distanta",
+ },
+ ["dot"]={
+ ["cs"]="tecka",
+ ["de"]="punkt",
+ ["en"]="dot",
+ ["fr"]="point",
+ ["it"]="punto",
+ ["nl"]="punt",
+ ["pe"]="نقطه",
+ ["ro"]="punct",
+ },
+ ["doublesided"]={
+ ["cs"]="oboustranne",
+ ["de"]="doppelseitig",
+ ["en"]="doublesided",
+ ["fr"]="rectoverso",
+ ["it"]="doppiafaccia",
+ ["nl"]="dubbelzijdig",
+ ["pe"]="دورو",
+ ["ro"]="douafete",
+ },
+ ["dummy"]={
+ ["cs"]="dummy",
+ ["de"]="dummy",
+ ["en"]="dummy",
+ ["fr"]="dummy",
+ ["it"]="dummy",
+ ["nl"]="dummy",
+ ["pe"]="مصنوعی",
+ ["ro"]="dummy",
+ },
+ ["dx"]={
+ ["cs"]="dx",
+ ["de"]="dx",
+ ["en"]="dx",
+ ["fr"]="dx",
+ ["it"]="dx",
+ ["nl"]="dx",
+ ["pe"]="dx",
+ ["ro"]="dx",
+ },
+ ["dy"]={
+ ["cs"]="dy",
+ ["de"]="dy",
+ ["en"]="dy",
+ ["fr"]="dy",
+ ["it"]="dy",
+ ["nl"]="dy",
+ ["pe"]="dy",
+ ["ro"]="dy",
+ },
+ ["edge"]={
+ ["cs"]="hrana",
+ ["de"]="kante",
+ ["en"]="edge",
+ ["fr"]="bord",
+ ["it"]="bordo",
+ ["nl"]="rand",
+ ["pe"]="لبه",
+ ["ro"]="bordura",
+ },
+ ["edgedistance"]={
+ ["cs"]="vzdalenosthrany",
+ ["de"]="kantenabstand",
+ ["en"]="edgedistance",
+ ["fr"]="distancebord",
+ ["it"]="distanzabordo",
+ ["nl"]="randafstand",
+ ["pe"]="فاصله‌لبه",
+ ["ro"]="distantabordura",
+ },
+ ["empty"]={
+ ["cs"]="prazdne",
+ ["de"]="leer",
+ ["en"]="empty",
+ ["fr"]="vide",
+ ["it"]="vuoto",
+ ["nl"]="leeg",
+ ["pe"]="تهی",
+ ["ro"]="gol",
+ },
+ ["equalheight"]={
+ ["cs"]="equalheight",
+ ["de"]="equalheight",
+ ["en"]="equalheight",
+ ["fr"]="equalheight",
+ ["it"]="equalheight",
+ ["nl"]="equalheight",
+ ["pe"]="ارتفاع‌یکسان",
+ ["ro"]="equalheight",
+ },
+ ["equalwidth"]={
+ ["cs"]="equalwidth",
+ ["de"]="equalwidth",
+ ["en"]="equalwidth",
+ ["fr"]="equalwidth",
+ ["it"]="equalwidth",
+ ["nl"]="equalwidth",
+ ["pe"]="عرض‌یکسان",
+ ["ro"]="equalwidth",
+ },
+ ["escape"]={
+ ["cs"]="escape",
+ ["de"]="escape",
+ ["en"]="escape",
+ ["fr"]="escape",
+ ["it"]="escape",
+ ["nl"]="escape",
+ ["pe"]="فرار",
+ ["ro"]="escape",
+ },
+ ["evenmargin"]={
+ ["cs"]="sudamarginalie",
+ ["de"]="geraderand",
+ ["en"]="evenmargin",
+ ["fr"]="margepaire",
+ ["it"]="marginepari",
+ ["nl"]="evenmarge",
+ ["pe"]="حاشیه‌زوج",
+ ["ro"]="marginepara",
+ },
+ ["expansion"]={
+ ["cs"]="expanzen",
+ ["de"]="expansion",
+ ["en"]="expansion",
+ ["fr"]="expansion",
+ ["it"]="espansione",
+ ["nl"]="expansie",
+ ["pe"]="گسترش",
+ ["ro"]="expansiune",
+ },
+ ["extras"]={
+ ["cs"]="extras",
+ ["de"]="extras",
+ ["en"]="extras",
+ ["fr"]="extras",
+ ["it"]="extras",
+ ["nl"]="extras",
+ ["pe"]="extras",
+ ["ro"]="extras",
+ },
+ ["factor"]={
+ ["cs"]="faktor",
+ ["de"]="faktor",
+ ["en"]="factor",
+ ["fr"]="facteur",
+ ["it"]="fattore",
+ ["nl"]="factor",
+ ["pe"]="عامل",
+ ["ro"]="factor",
+ },
+ ["fallback"]={
+ ["cs"]="fallback",
+ ["de"]="fallback",
+ ["en"]="fallback",
+ ["fr"]="fallback",
+ ["it"]="fallback",
+ ["nl"]="terugval",
+ ["pe"]="عقب‌ریختن",
+ ["ro"]="fallback",
+ },
+ ["family"]={
+ ["cs"]="rodina",
+ ["de"]="familie",
+ ["en"]="family",
+ ["fr"]="famille",
+ ["it"]="famiglia",
+ ["nl"]="soort",
+ ["pe"]="خانواده",
+ ["ro"]="familie",
+ },
+ ["fieldbackgroundcolor"]={
+ ["cs"]="barvapozadipole",
+ ["de"]="feldhintergrundfarbe",
+ ["en"]="fieldbackgroundcolor",
+ ["fr"]="couleurarrierreplanchamp",
+ ["it"]="coloresfondocampo",
+ ["nl"]="veldachtergrondkleur",
+ ["pe"]="رنگ‌پس‌زمینه‌میدان",
+ ["ro"]="culoarefundalcamp",
+ },
+ ["fieldframecolor"]={
+ ["cs"]="barvarameckupole",
+ ["de"]="feldrahmenfarbe",
+ ["en"]="fieldframecolor",
+ ["fr"]="couleurcadrechamp",
+ ["it"]="colorecornicecampo",
+ ["nl"]="veldkaderkleur",
+ ["pe"]="رنگ‌قالب‌میدان",
+ ["ro"]="culoareframecamp",
+ },
+ ["fieldlayer"]={
+ ["cs"]="fieldlayer",
+ ["de"]="fieldlayer",
+ ["en"]="fieldlayer",
+ ["fr"]="calquechamp",
+ ["it"]="fieldlayer",
+ ["nl"]="veldlaag",
+ ["pe"]="لایه‌میدان",
+ ["ro"]="fieldlayer",
+ },
+ ["fieldoffset"]={
+ ["cs"]="offsetpole",
+ ["de"]="feldoffset",
+ ["en"]="fieldoffset",
+ ["fr"]="offsetchamp",
+ ["it"]="offsetcampo",
+ ["nl"]="veldoffset",
+ ["pe"]="آفست‌میدان",
+ ["ro"]="offsetcamp",
+ },
+ ["file"]={
+ ["cs"]="soubor",
+ ["de"]="datei",
+ ["en"]="file",
+ ["fr"]="fichier",
+ ["it"]="file",
+ ["nl"]="file",
+ ["pe"]="پرونده",
+ ["ro"]="fisier",
+ },
+ ["filtercommand"]={
+ ["en"]="filtercommand",
+ },
+ ["focus"]={
+ ["cs"]="zaostreni",
+ ["de"]="focus",
+ ["en"]="focus",
+ ["fr"]="focus",
+ ["it"]="focus",
+ ["nl"]="focus",
+ ["pe"]="تمرکز",
+ ["ro"]="focus",
+ },
+ ["focusin"]={
+ ["cs"]="focusin",
+ ["de"]="focusin",
+ ["en"]="focusin",
+ ["fr"]="focusin",
+ ["it"]="focusin",
+ ["nl"]="focusin",
+ ["pe"]="تمرکزدرون",
+ ["ro"]="focusin",
+ },
+ ["focusout"]={
+ ["cs"]="focusout",
+ ["de"]="focusout",
+ ["en"]="focusout",
+ ["fr"]="focusout",
+ ["it"]="focusout",
+ ["nl"]="focusuit",
+ ["pe"]="تمرکزبیرون",
+ ["ro"]="focusout",
+ },
+ ["footer"]={
+ ["cs"]="upati",
+ ["de"]="fusszeile",
+ ["en"]="footer",
+ ["fr"]="pdp",
+ ["it"]="piedipagina",
+ ["nl"]="voet",
+ ["pe"]="ته‌برگ",
+ ["ro"]="subsol",
+ },
+ ["footerdistance"]={
+ ["cs"]="vzdalenostupati",
+ ["de"]="fusszeilenabstand",
+ ["en"]="footerdistance",
+ ["fr"]="dsitancepdp",
+ ["it"]="distanzapdp",
+ ["nl"]="voetafstand",
+ ["pe"]="فاصله‌ته‌برگ",
+ ["ro"]="distantasubsol",
+ },
+ ["footerstate"]={
+ ["cs"]="statusupati",
+ ["de"]="fusszeilenstatus",
+ ["en"]="footerstate",
+ ["fr"]="etatpdp",
+ ["it"]="statopdp",
+ ["nl"]="voetstatus",
+ ["pe"]="وضعیت‌ته‌برگ",
+ ["ro"]="staresubsol",
+ },
+ ["foregroundcolor"]={
+ ["cs"]="foregroundcolor",
+ ["de"]="foregroundcolor",
+ ["en"]="foregroundcolor",
+ ["fr"]="couleurpremierplan",
+ ["it"]="coloreprimopiano",
+ ["nl"]="voorgrondkleur",
+ ["pe"]="رنگ‌پیش‌زمینه",
+ ["ro"]="foregroundcolor",
+ },
+ ["foregroundstyle"]={
+ ["cs"]="foregroundstyle",
+ ["de"]="foregroundstyle",
+ ["en"]="foregroundstyle",
+ ["fr"]="stylepremierplan",
+ ["it"]="foregroundstyle",
+ ["nl"]="voorgrondletter",
+ ["pe"]="سبک‌پیش‌زمینه",
+ ["ro"]="foregroundstyle",
+ },
+ ["format"]={
+ ["cs"]="formatovat",
+ ["de"]="formatieren",
+ ["en"]="format",
+ ["fr"]="formatter",
+ ["it"]="format",
+ ["nl"]="formatteer",
+ ["pe"]="شمایل",
+ ["ro"]="format",
+ },
+ ["frame"]={
+ ["cs"]="ramecek",
+ ["de"]="rahmen",
+ ["en"]="frame",
+ ["fr"]="cadre",
+ ["it"]="cornice",
+ ["nl"]="kader",
+ ["pe"]="قالب",
+ ["ro"]="frame",
+ },
+ ["framecolor"]={
+ ["cs"]="barvaramecku",
+ ["de"]="rahmenfarbe",
+ ["en"]="framecolor",
+ ["fr"]="couleurcadre",
+ ["it"]="colorecornice",
+ ["nl"]="kaderkleur",
+ ["pe"]="رنگ‌قالب",
+ ["ro"]="culoareframe",
+ },
+ ["framecorner"]={
+ ["cs"]="rohramecku",
+ ["de"]="rahmenwinkel",
+ ["en"]="framecorner",
+ ["fr"]="coincadre",
+ ["it"]="angolocornice",
+ ["nl"]="kaderhoek",
+ ["pe"]="گوشه‌قالب",
+ ["ro"]="coltframe",
+ },
+ ["framedepth"]={
+ ["cs"]="hloubkaramecku",
+ ["de"]="rahmentiefe",
+ ["en"]="framedepth",
+ ["fr"]="profondeurcadre",
+ ["it"]="profonditacornice",
+ ["nl"]="kaderdiepte",
+ ["pe"]="عمق‌قالب",
+ ["ro"]="adancimeframe",
+ },
+ ["frameoffset"]={
+ ["cs"]="offsetramecku",
+ ["de"]="rahmenoffset",
+ ["en"]="frameoffset",
+ ["fr"]="decalagecadre",
+ ["it"]="offsetcornice",
+ ["nl"]="kaderoffset",
+ ["pe"]="آفست‌قالب",
+ ["ro"]="offsetframe",
+ },
+ ["frameradius"]={
+ ["cs"]="polomerramecku",
+ ["de"]="rahmenradius",
+ ["en"]="frameradius",
+ ["fr"]="rayoncadre",
+ ["it"]="raggiocornice",
+ ["nl"]="kaderstraal",
+ ["pe"]="شعاع‌قالب",
+ ["ro"]="razaframe",
+ },
+ ["frames"]={
+ ["cs"]="ramecky",
+ ["de"]="umrahmen",
+ ["en"]="frames",
+ ["fr"]="cadres",
+ ["it"]="cornici",
+ ["nl"]="hokjes",
+ ["pe"]="قالبها",
+ ["ro"]="frames",
+ },
+ ["from"]={
+ ["cs"]="z",
+ ["de"]="von",
+ ["en"]="from",
+ ["fr"]="de",
+ ["it"]="da",
+ ["nl"]="van",
+ ["pe"]="از",
+ ["ro"]="dela",
+ },
+ ["get"]={
+ ["cs"]="ziskat",
+ ["de"]="hole",
+ ["en"]="get",
+ ["fr"]="obtient",
+ ["it"]="prendi",
+ ["nl"]="haal",
+ ["pe"]="بگیر",
+ ["ro"]="adu",
+ },
+ ["global"]={
+ ["cs"]="globalne",
+ ["de"]="global",
+ ["en"]="global",
+ ["fr"]="global",
+ ["it"]="globale",
+ ["nl"]="globaal",
+ ["pe"]="سراسری",
+ ["ro"]="global",
+ },
+ ["grid"]={
+ ["cs"]="mrizka",
+ ["de"]="gritter",
+ ["en"]="grid",
+ ["fr"]="grille",
+ ["it"]="griglia",
+ ["nl"]="grid",
+ ["pe"]="توری",
+ ["ro"]="grid",
+ },
+ ["hang"]={
+ ["cs"]="zaveseni",
+ ["de"]="haengend",
+ ["en"]="hang",
+ ["fr"]="suspend",
+ ["it"]="sospendi",
+ ["nl"]="hang",
+ ["pe"]="بیاویز",
+ ["ro"]="suspenda",
+ },
+ ["headcolor"]={
+ ["cs"]="barvahlavicky",
+ ["de"]="kopffarbe",
+ ["en"]="headcolor",
+ ["fr"]="couleurtete",
+ ["it"]="coloretesta",
+ ["nl"]="kopkleur",
+ ["pe"]="رنگ‌سر",
+ ["ro"]="culoaretitlu",
+ },
+ ["headcommand"]={
+ ["cs"]="headcommand",
+ ["de"]="headcommand",
+ ["en"]="headcommand",
+ ["fr"]="commandetete",
+ ["it"]="headcommand",
+ ["nl"]="kopcommando",
+ ["pe"]="فرمان‌سر",
+ ["ro"]="headcommand",
+ },
+ ["headconversion"]={
+ ["cs"]="konverzehlavicky",
+ ["de"]="headconversion",
+ ["en"]="headconversion",
+ ["fr"]="conversiontete",
+ ["it"]="conversionetesta",
+ ["nl"]="kopconversie",
+ ["pe"]="تبدیل‌سر",
+ ["ro"]="conversietitlu",
+ },
+ ["header"]={
+ ["cs"]="zahlavi",
+ ["de"]="kopfzeile",
+ ["en"]="header",
+ ["fr"]="entete",
+ ["it"]="intestazione",
+ ["nl"]="hoofd",
+ ["pe"]="سربرگ",
+ ["ro"]="antet",
+ },
+ ["headerdistance"]={
+ ["cs"]="vzdalenostzahlavi",
+ ["de"]="kopfzeilenabstand",
+ ["en"]="headerdistance",
+ ["fr"]="distanceentete",
+ ["it"]="distanzaintestazione",
+ ["nl"]="hoofdafstand",
+ ["pe"]="فاصله‌سربرگ",
+ ["ro"]="distantaantet",
+ },
+ ["headerstate"]={
+ ["cs"]="statuszahlavi",
+ ["de"]="kopfzeilenstatus",
+ ["en"]="headerstate",
+ ["fr"]="etatentete",
+ ["it"]="statointestazione",
+ ["nl"]="hoofdstatus",
+ ["pe"]="وضعیت‌سربرگ",
+ ["ro"]="stareantet",
+ },
+ ["headlabel"]={
+ ["cs"]="popisekhlavicky",
+ ["de"]="headlabel",
+ ["en"]="headlabel",
+ ["fr"]="etiquettetete",
+ ["it"]="etichettatesta",
+ ["nl"]="koplabel",
+ ["pe"]="برچسب‌سر",
+ ["ro"]="etichetatitlu",
+ },
+ ["headnumber"]={
+ ["cs"]="cislonadpisu",
+ ["de"]="kopfnummer",
+ ["en"]="headnumber",
+ ["fr"]="numerotete",
+ ["it"]="numerotesta",
+ ["nl"]="kopnummer",
+ ["pe"]="شماره‌سر",
+ ["ro"]="numartitlu",
+ },
+ ["headstyle"]={
+ ["cs"]="stylhlavicky",
+ ["de"]="kopfstil",
+ ["en"]="headstyle",
+ ["fr"]="styletete",
+ ["it"]="stiletesta",
+ ["nl"]="kopletter",
+ ["pe"]="سبک‌سر",
+ ["ro"]="stiltitlu",
+ },
+ ["height"]={
+ ["cs"]="vyska",
+ ["de"]="hoehe",
+ ["en"]="height",
+ ["fr"]="hauteur",
+ ["it"]="altezza",
+ ["nl"]="hoogte",
+ ["pe"]="ارتفاع",
+ ["ro"]="inaltime",
+ },
+ ["hfactor"]={
+ ["cs"]="vfaktor",
+ ["de"]="hfaktor",
+ ["en"]="hfactor",
+ ["fr"]="facteurhauteur",
+ ["it"]="hfactor",
+ ["nl"]="hfactor",
+ ["pe"]="عامل‌ارتفاع",
+ ["ro"]="hfactor",
+ },
+ ["hfil"]={
+ ["cs"]="hfil",
+ ["de"]="hfil",
+ ["en"]="hfil",
+ ["fr"]="hfil",
+ ["it"]="hfil",
+ ["nl"]="hfil",
+ ["pe"]="پرکردن‌ارتفاع",
+ ["ro"]="hfil",
+ },
+ ["hidenumber"]={
+ ["en"]="hidenumber",
+ },
+ ["hoffset"]={
+ ["cs"]="hoffset",
+ ["de"]="hoffset",
+ ["en"]="hoffset",
+ ["fr"]="decalagehauteur",
+ ["it"]="hoffset",
+ ["nl"]="hoffset",
+ ["pe"]="آفست‌ا",
+ ["ro"]="hoffset",
+ },
+ ["horoffset"]={
+ ["cs"]="horoffset",
+ ["de"]="rumpfabstand",
+ ["en"]="horoffset",
+ ["fr"]="horoffset",
+ ["it"]="horoffset",
+ ["nl"]="rugoffset",
+ ["pe"]="آفست‌افق",
+ ["ro"]="offsetoriz",
+ },
+ ["hyphen"]={
+ ["cs"]="hyphen",
+ ["de"]="hyphen",
+ ["en"]="hyphen",
+ ["fr"]="hyphen",
+ ["it"]="hyphen",
+ ["nl"]="hyphen",
+ ["pe"]="شکستن",
+ ["ro"]="hyphen",
+ },
+ ["icommand"]={
+ ["cs"]="iprikaz",
+ ["de"]="ibefehl",
+ ["en"]="icommand",
+ ["fr"]="icommande",
+ ["it"]="icomando",
+ ["nl"]="icommando",
+ ["pe"]="icommand",
+ ["ro"]="comandai",
+ },
+ ["in"]={
+ ["cs"]="v",
+ ["de"]="in",
+ ["en"]="in",
+ ["fr"]="in",
+ ["it"]="in",
+ ["nl"]="in",
+ ["pe"]="درون",
+ ["ro"]="in",
+ },
+ ["inbetween"]={
+ ["cs"]="mezi",
+ ["de"]="zwischen",
+ ["en"]="inbetween",
+ ["fr"]="entre",
+ ["it"]="tra",
+ ["nl"]="tussen",
+ ["pe"]="دربین",
+ ["ro"]="intre",
+ },
+ ["increment"]={
+ ["cs"]="zvysit",
+ ["de"]="erhoehen",
+ ["en"]="increment",
+ ["fr"]="incremente",
+ ["it"]="incremento",
+ ["nl"]="verhoog",
+ ["pe"]="افزایش",
+ ["ro"]="increment",
+ },
+ ["incrementnumber"]={
+ ["cs"]="zvysujicicislo",
+ ["de"]="nummererhoehen",
+ ["en"]="incrementnumber",
+ ["fr"]="incrementenumero",
+ ["it"]="incrementanumero",
+ ["nl"]="verhoognummer",
+ ["pe"]="شماره‌افزایش",
+ ["ro"]="numarincrement",
+ },
+ ["indenting"]={
+ ["cs"]="odsazovani",
+ ["de"]="einziehen",
+ ["en"]="indenting",
+ ["fr"]="composeenalinea",
+ ["it"]="rientro",
+ ["nl"]="inspringen",
+ ["pe"]="تورفتگی",
+ ["ro"]="aliniat",
+ },
+ ["indentnext"]={
+ ["cs"]="odsadpristi",
+ ["de"]="ziehefolgendeein",
+ ["en"]="indentnext",
+ ["fr"]="indentesuivant",
+ ["it"]="rientrasuccessivo",
+ ["nl"]="springvolgendein",
+ ["pe"]="متن‌تورفته",
+ ["ro"]="aliniaturmator",
+ },
+ ["indicator"]={
+ ["cs"]="indikator",
+ ["de"]="indikator",
+ ["en"]="indicator",
+ ["fr"]="indicateur",
+ ["it"]="indicatore",
+ ["nl"]="aanduiding",
+ ["pe"]="اندیکاتور",
+ ["ro"]="indicator",
+ },
+ ["inner"]={
+ ["cs"]="vnitrni",
+ ["de"]="innen",
+ ["en"]="inner",
+ ["fr"]="interieur",
+ ["it"]="interno",
+ ["nl"]="binnen",
+ ["pe"]="داخلی",
+ ["ro"]="intern",
+ },
+ ["innermargin"]={
+ ["cs"]="innermargin",
+ ["de"]="innermargin",
+ ["en"]="innermargin",
+ ["fr"]="margeinterieure",
+ ["it"]="margineinterno",
+ ["nl"]="binnenmarge",
+ ["pe"]="حاشیه‌داخلی",
+ ["ro"]="innermargin",
+ },
+ ["inputfile"]={
+ ["cs"]="inputfile",
+ ["de"]="inputfile",
+ ["en"]="inputfile",
+ ["fr"]="fichierentree",
+ ["it"]="inputfile",
+ ["nl"]="inputfile",
+ ["pe"]="پرونده‌ورودی",
+ ["ro"]="inputfile",
+ },
+ ["interaction"]={
+ ["cs"]="interakce",
+ ["de"]="interaktion",
+ ["en"]="interaction",
+ ["fr"]="interaction",
+ ["it"]="interazione",
+ ["nl"]="interactie",
+ ["pe"]="پانل",
+ ["ro"]="interactiune",
+ },
+ ["interlinespace"]={
+ ["cs"]="meziradkovamezera",
+ ["de"]="zeilenabstande",
+ ["en"]="interlinespace",
+ ["fr"]="espaceinterligne",
+ ["it"]="interlinea",
+ ["nl"]="interlinie",
+ ["pe"]="فضای‌بین‌خط",
+ ["ro"]="spatiereinterliniara",
+ },
+ ["itemalign"]={
+ ["cs"]="itemalign",
+ ["de"]="itemalign",
+ ["en"]="itemalign",
+ ["fr"]="itemalign",
+ ["it"]="itemalign",
+ ["nl"]="itemuitlijnen",
+ ["pe"]="تنظیم‌آیتم",
+ ["ro"]="itemalign",
+ },
+ ["items"]={
+ ["cs"]="polozky",
+ ["de"]="posten",
+ ["en"]="items",
+ ["fr"]="elements",
+ ["it"]="elementi",
+ ["nl"]="items",
+ ["pe"]="آیتمها",
+ ["ro"]="elemente",
+ },
+ ["ken"]={
+ ["cs"]="ken",
+ ["de"]="ken",
+ ["en"]="ken",
+ ["fr"]="ken",
+ ["it"]="ken",
+ ["nl"]="ken",
+ ["pe"]="ken",
+ ["ro"]="ken",
+ },
+ ["keyexpansion"]={
+ ["cs"]="keyexpansion",
+ ["de"]="keyexpansion",
+ ["en"]="keyexpansion",
+ ["fr"]="keyexpansion",
+ ["it"]="keyexpansion",
+ ["nl"]="sleutelexpansie",
+ ["pe"]="گسترش‌کلید",
+ ["ro"]="keyexpansion",
+ },
+ ["keyword"]={
+ ["cs"]="keyword",
+ ["de"]="keyword",
+ ["en"]="keyword",
+ ["fr"]="motcle",
+ ["it"]="parolachiave",
+ ["nl"]="trefwoord",
+ ["pe"]="کلید‌واژه",
+ ["ro"]="keyword",
+ },
+ ["label"]={
+ ["cs"]="popisek",
+ ["de"]="label",
+ ["en"]="label",
+ ["fr"]="etiquette",
+ ["it"]="etichetta",
+ ["nl"]="label",
+ ["pe"]="برچسب",
+ ["ro"]="eticheta",
+ },
+ ["left"]={
+ ["cs"]="vlevo",
+ ["de"]="links",
+ ["en"]="left",
+ ["fr"]="gauche",
+ ["it"]="sinistra",
+ ["nl"]="links",
+ ["pe"]="چپ",
+ ["ro"]="stanga",
+ },
+ ["leftcolor"]={
+ ["cs"]="barvavlevo",
+ ["de"]="linkerfarbe",
+ ["en"]="leftcolor",
+ ["fr"]="couleurgauche",
+ ["it"]="coloresinistra",
+ ["nl"]="linkerkleur",
+ ["pe"]="رنگ‌چپ",
+ ["ro"]="culoarestanga",
+ },
+ ["leftcompoundhyphen"]={
+ ["cs"]="leftcompoundhyphen",
+ ["de"]="leftcompoundhyphen",
+ ["en"]="leftcompoundhyphen",
+ ["fr"]="leftcompoundhyphen",
+ ["it"]="leftcompoundhyphen",
+ ["nl"]="linkerkoppelteken",
+ ["pe"]="leftcompoundhyphen",
+ ["ro"]="leftcompoundhyphen",
+ },
+ ["leftedge"]={
+ ["cs"]="levahrana",
+ ["de"]="linkekante",
+ ["en"]="leftedge",
+ ["fr"]="bordgauche",
+ ["it"]="bordosinistro",
+ ["nl"]="linkerrand",
+ ["pe"]="لبه‌چپ",
+ ["ro"]="bordurastanga",
+ },
+ ["leftedgedistance"]={
+ ["cs"]="vzdalenostlevehrany",
+ ["de"]="linkerkantenabstand",
+ ["en"]="leftedgedistance",
+ ["fr"]="distancebordgauche",
+ ["it"]="distanzabordosinistro",
+ ["nl"]="linkerrandafstand",
+ ["pe"]="فاصله‌لبه‌چپ",
+ ["ro"]="distantabordurastanga",
+ },
+ ["leftframe"]={
+ ["cs"]="ramecekvlevo",
+ ["de"]="linkerrahmen",
+ ["en"]="leftframe",
+ ["fr"]="cadregauche",
+ ["it"]="cornicesinistra",
+ ["nl"]="linkerkader",
+ ["pe"]="قالب‌چپ",
+ ["ro"]="framestanga",
+ },
+ ["lefthyphen"]={
+ ["cs"]="lefthyphen",
+ ["de"]="lefthyphen",
+ ["en"]="lefthyphen",
+ ["fr"]="lefthyphen",
+ ["it"]="lefthyphen",
+ ["nl"]="lefthyphen",
+ ["pe"]="شکست‌چپ",
+ ["ro"]="lefthyphen",
+ },
+ ["leftmargin"]={
+ ["cs"]="levyokraj",
+ ["de"]="linkerrand",
+ ["en"]="leftmargin",
+ ["fr"]="margegauche",
+ ["it"]="marginesinistro",
+ ["nl"]="linkermarge",
+ ["pe"]="حاشیه‌چپ",
+ ["ro"]="marginestanga",
+ },
+ ["leftmargindistance"]={
+ ["cs"]="vzdalenostlevehookraje",
+ ["de"]="linkerrandabstand",
+ ["en"]="leftmargindistance",
+ ["fr"]="distancemargegauche",
+ ["it"]="distanzamarginesinistro",
+ ["nl"]="linkermargeafstand",
+ ["pe"]="فاصله‌حاشیه‌چپ",
+ ["ro"]="distantamarginestanga",
+ },
+ ["leftoffset"]={
+ ["cs"]="levyoffset",
+ ["de"]="linkeroffset",
+ ["en"]="leftoffset",
+ ["fr"]="decalagegauche",
+ ["it"]="offsetsinistro",
+ ["nl"]="linkeroffset",
+ ["pe"]="آفست‌چپ",
+ ["ro"]="offsetstanga",
+ },
+ ["leftquotation"]={
+ ["cs"]="citacevlevo",
+ ["de"]="linkerzitat",
+ ["en"]="leftquotation",
+ ["fr"]="citationgauche",
+ ["it"]="citazionesinistra",
+ ["nl"]="linkercitaat",
+ ["pe"]="نقل‌قول‌چپ",
+ ["ro"]="citatstanga",
+ },
+ ["leftquote"]={
+ ["cs"]="citovatvlevo",
+ ["de"]="linkerzitieren",
+ ["en"]="leftquote",
+ ["fr"]="citergauche",
+ ["it"]="menzionesinistra",
+ ["nl"]="linkerciteer",
+ ["pe"]="نقل‌چپ",
+ ["ro"]="minicitatstanga",
+ },
+ ["leftsentence"]={
+ ["cs"]="vetavlevo",
+ ["de"]="linkersatz",
+ ["en"]="leftsentence",
+ ["fr"]="phrasegauche",
+ ["it"]="frasesinistra",
+ ["nl"]="linkerzin",
+ ["pe"]="جمله‌چپ",
+ ["ro"]="propozitiestanga",
+ },
+ ["leftspeech"]={
+ ["cs"]="leftspeech",
+ ["de"]="leftspeech",
+ ["en"]="leftspeech",
+ ["fr"]="leftspeech",
+ ["it"]="leftspeech",
+ ["nl"]="linkeruitspraak",
+ ["pe"]="سخنرانی‌چپ",
+ ["ro"]="leftspeech",
+ },
+ ["leftstyle"]={
+ ["cs"]="stylvlevo",
+ ["de"]="linkerstil",
+ ["en"]="leftstyle",
+ ["fr"]="leftstyle",
+ ["it"]="stilesinistra",
+ ["nl"]="linkerletter",
+ ["pe"]="سبک‌چپ",
+ ["ro"]="stilstanga",
+ },
+ ["leftsubsentence"]={
+ ["cs"]="podvetavlevo",
+ ["de"]="linkersubsatz",
+ ["en"]="leftsubsentence",
+ ["fr"]="sousphrasegauche",
+ ["it"]="sottofrasesinistra",
+ ["nl"]="linkersubzin",
+ ["pe"]="زیرجمله‌چپ",
+ ["ro"]="subpropozitiestanga",
+ },
+ ["lefttext"]={
+ ["cs"]="textvlevo",
+ ["de"]="linkertext",
+ ["en"]="lefttext",
+ ["fr"]="textegauche",
+ ["it"]="testosinistro",
+ ["nl"]="linkertekst",
+ ["pe"]="متن‌چپ",
+ ["ro"]="textstanga",
+ },
+ ["leftwidth"]={
+ ["cs"]="sirkavlevo",
+ ["de"]="linkerbreite",
+ ["en"]="leftwidth",
+ ["fr"]="largeurgauche",
+ ["it"]="ampiezzasinistra",
+ ["nl"]="linkerbreedte",
+ ["pe"]="عرض‌خط",
+ ["ro"]="latimestanga",
+ },
+ ["level"]={
+ ["cs"]="uroven",
+ ["de"]="niveau",
+ ["en"]="level",
+ ["fr"]="niveau",
+ ["it"]="livello",
+ ["nl"]="niveau",
+ ["pe"]="مرحله",
+ ["ro"]="nivel",
+ },
+ ["levels"]={
+ ["cs"]="urovne",
+ ["de"]="niveaus",
+ ["en"]="levels",
+ ["fr"]="niveaux",
+ ["it"]="livelli",
+ ["nl"]="niveaus",
+ ["pe"]="مرحله‌ها",
+ ["ro"]="nivele",
+ },
+ ["limittext"]={
+ ["cs"]="limittext",
+ ["de"]="limittext",
+ ["en"]="limittext",
+ ["fr"]="limittext",
+ ["it"]="limittext",
+ ["nl"]="limiettekst",
+ ["pe"]="مرزمتن",
+ ["ro"]="limittext",
+ },
+ ["line"]={
+ ["cs"]="radek",
+ ["de"]="zeile",
+ ["en"]="line",
+ ["fr"]="ligne",
+ ["it"]="riga",
+ ["nl"]="regel",
+ ["pe"]="خط",
+ ["ro"]="linie",
+ },
+ ["linecorrection"]={
+ ["cs"]="korekceradku",
+ ["de"]="zeilekorrektur",
+ ["en"]="linecorrection",
+ ["fr"]="correctionligne",
+ ["it"]="correzioneriga",
+ ["nl"]="regelcorrectie",
+ ["pe"]="تصحیح‌خط",
+ ["ro"]="corectielinie",
+ },
+ ["lines"]={
+ ["cs"]="radky",
+ ["de"]="zeilen",
+ ["en"]="lines",
+ ["fr"]="lignes",
+ ["it"]="righe",
+ ["nl"]="regels",
+ ["pe"]="خطها",
+ ["ro"]="linii",
+ },
+ ["list"]={
+ ["cs"]="seznam",
+ ["de"]="liste",
+ ["en"]="list",
+ ["fr"]="liste",
+ ["it"]="elenco",
+ ["nl"]="lijst",
+ ["pe"]="لیست",
+ ["ro"]="lista",
+ },
+ ["listtext"]={
+ ["cs"]="listtext",
+ ["de"]="listtext",
+ ["en"]="listtext",
+ ["fr"]="texteliste",
+ ["it"]="listtext",
+ ["nl"]="lijsttekst",
+ ["pe"]="متن‌لیست",
+ ["ro"]="listtext",
+ },
+ ["local"]={
+ ["cs"]="lokalne",
+ ["de"]="lokal",
+ ["en"]="local",
+ ["fr"]="local",
+ ["it"]="locale",
+ ["nl"]="lokaal",
+ ["pe"]="موضعی",
+ ["ro"]="local",
+ },
+ ["location"]={
+ ["cs"]="misto",
+ ["de"]="platz",
+ ["en"]="location",
+ ["fr"]="emplacement",
+ ["it"]="luogo",
+ ["nl"]="plaats",
+ ["pe"]="مکان",
+ ["ro"]="locatie",
+ },
+ ["logo"]={
+ ["cs"]="logo",
+ ["de"]="logo",
+ ["en"]="logo",
+ ["fr"]="logo",
+ ["it"]="logo",
+ ["nl"]="logo",
+ ["pe"]="آرم",
+ ["ro"]="logo",
+ },
+ ["logos"]={
+ ["cs"]="loga",
+ ["de"]="logos",
+ ["en"]="logos",
+ ["fr"]="logos",
+ ["it"]="loghi",
+ ["nl"]="logos",
+ ["pe"]="آرمها",
+ ["ro"]="logos",
+ },
+ ["marcolor"]={
+ ["cs"]="barvaznacky",
+ ["de"]="beschrfarbe",
+ ["en"]="marcolor",
+ ["fr"]="couleurmarquage",
+ ["it"]="coloremarcatura",
+ ["nl"]="markleur",
+ ["pe"]="رنگ‌حاش",
+ ["ro"]="culoaremarcaj",
+ },
+ ["margin"]={
+ ["cs"]="marginalie",
+ ["de"]="marginalie",
+ ["en"]="margin",
+ ["fr"]="marge",
+ ["it"]="margine",
+ ["nl"]="marge",
+ ["pe"]="حاشیه",
+ ["ro"]="margine",
+ },
+ ["margindistance"]={
+ ["cs"]="vzdalenostokraje",
+ ["de"]="marginalabstand",
+ ["en"]="margindistance",
+ ["fr"]="distancemarge",
+ ["it"]="distanzamargine",
+ ["nl"]="margeafstand",
+ ["pe"]="فاصله‌حاشیه",
+ ["ro"]="distantamargine",
+ },
+ ["marginedge"]={
+ ["cs"]="textovahrana",
+ ["de"]="marginalkante",
+ ["en"]="marginedge",
+ ["fr"]="bordmarge",
+ ["it"]="bordomargine",
+ ["nl"]="kantlijn",
+ ["pe"]="لبه‌حاشیه",
+ ["ro"]="coltbordura",
+ },
+ ["marginedgetext"]={
+ ["cs"]="textmarginalnihookraje",
+ ["de"]="marginalkantetext",
+ ["en"]="marginedgetext",
+ ["fr"]="textebordmarge",
+ ["it"]="testobordomargine",
+ ["nl"]="kantlijntekst",
+ ["pe"]="متن‌لبه‌حاشیه",
+ ["ro"]="textcoltbordura",
+ },
+ ["margintext"]={
+ ["cs"]="textmarginalie",
+ ["de"]="marginaltext",
+ ["en"]="margintext",
+ ["fr"]="textemarge",
+ ["it"]="testomargine",
+ ["nl"]="margetekst",
+ ["pe"]="متن‌حاشیه",
+ ["ro"]="textmargine",
+ },
+ ["marking"]={
+ ["cs"]="znaceni",
+ ["de"]="beschriftung",
+ ["en"]="marking",
+ ["fr"]="marquage",
+ ["it"]="marcatura",
+ ["nl"]="markering",
+ ["pe"]="نشانه‌گذاری",
+ ["ro"]="marcaje",
+ },
+ ["marstyle"]={
+ ["cs"]="stylsnacky",
+ ["de"]="beschrstil",
+ ["en"]="marstyle",
+ ["fr"]="stylemarquage",
+ ["it"]="stilemarcatura",
+ ["nl"]="marletter",
+ ["pe"]="سبک‌حاش",
+ ["ro"]="stilmarcaj",
+ },
+ ["max"]={
+ ["cs"]="max",
+ ["de"]="max",
+ ["en"]="max",
+ ["fr"]="max",
+ ["it"]="max",
+ ["nl"]="max",
+ ["pe"]="بیشترین",
+ ["ro"]="max",
+ },
+ ["maxheight"]={
+ ["cs"]="maxvyska",
+ ["de"]="maxhoehe",
+ ["en"]="maxheight",
+ ["fr"]="hauteurmax",
+ ["it"]="altezzamax",
+ ["nl"]="maxhoogte",
+ ["pe"]="بیشترین‌ارتفاع",
+ ["ro"]="inaltimemaxima",
+ },
+ ["maxwidth"]={
+ ["cs"]="maxsirka",
+ ["de"]="maxbreite",
+ ["en"]="maxwidth",
+ ["fr"]="largeurmax",
+ ["it"]="ampiezzamax",
+ ["nl"]="maxbreedte",
+ ["pe"]="بیشترین‌عرض",
+ ["ro"]="latimemaxima",
+ },
+ ["menu"]={
+ ["cs"]="menu",
+ ["de"]="menue",
+ ["en"]="menu",
+ ["fr"]="menu",
+ ["it"]="menu",
+ ["nl"]="menu",
+ ["pe"]="منو",
+ ["ro"]="meniu",
+ },
+ ["method"]={
+ ["cs"]="metoda",
+ ["de"]="methode",
+ ["en"]="method",
+ ["fr"]="methode",
+ ["it"]="metodo",
+ ["nl"]="methode",
+ ["pe"]="روش",
+ ["ro"]="metoda",
+ },
+ ["middle"]={
+ ["cs"]="stredni",
+ ["de"]="mittig",
+ ["en"]="middle",
+ ["fr"]="milieu",
+ ["it"]="centro",
+ ["nl"]="midden",
+ ["pe"]="میان",
+ ["ro"]="mijloc",
+ },
+ ["middlespeech"]={
+ ["cs"]="middlespeech",
+ ["de"]="middlespeech",
+ ["en"]="middlespeech",
+ ["fr"]="middlespeech",
+ ["it"]="middlespeech",
+ ["nl"]="middenuitspraak",
+ ["pe"]="سخنرانی‌میانی",
+ ["ro"]="middlespeech",
+ },
+ ["middletext"]={
+ ["cs"]="strednitext",
+ ["de"]="mittigertext",
+ ["en"]="middletext",
+ ["fr"]="textecentre",
+ ["it"]="testocentro",
+ ["nl"]="middentekst",
+ ["pe"]="متن‌میانی",
+ ["ro"]="textmijloc",
+ },
+ ["midsentence"]={
+ ["cs"]="midsentence",
+ ["de"]="midsentence",
+ ["en"]="midsentence",
+ ["fr"]="midsentence",
+ ["it"]="midsentence",
+ ["nl"]="middenzin",
+ ["pe"]="جمله‌میانی",
+ ["ro"]="midsentence",
+ },
+ ["min"]={
+ ["cs"]="min",
+ ["de"]="min",
+ ["en"]="min",
+ ["fr"]="min",
+ ["it"]="min",
+ ["nl"]="min",
+ ["pe"]="کمترین",
+ ["ro"]="min",
+ },
+ ["mindepth"]={
+ ["cs"]="mindepth",
+ ["de"]="mindepth",
+ ["en"]="mindepth",
+ ["fr"]="profondeurmin",
+ ["it"]="mindeoth",
+ ["nl"]="mindiepte",
+ ["pe"]="کمترین‌عمق",
+ ["ro"]="mindepth",
+ },
+ ["minheight"]={
+ ["cs"]="minvyska",
+ ["de"]="minhoehe",
+ ["en"]="minheight",
+ ["fr"]="hauteurmin",
+ ["it"]="altezzamin",
+ ["nl"]="minhoogte",
+ ["pe"]="کمترین‌ارتفاع",
+ ["ro"]="inaltimeminima",
+ },
+ ["minwidth"]={
+ ["cs"]="minsirka",
+ ["de"]="minbreite",
+ ["en"]="minwidth",
+ ["fr"]="largeurmin",
+ ["it"]="ampiezzamin",
+ ["nl"]="minbreedte",
+ ["pe"]="کمترین‌عرض",
+ ["ro"]="latimeminima",
+ },
+ ["n"]={
+ ["cs"]="n",
+ ["de"]="n",
+ ["en"]="n",
+ ["fr"]="n",
+ ["it"]="n",
+ ["nl"]="n",
+ ["pe"]="n",
+ ["ro"]="n",
+ },
+ ["name"]={
+ ["cs"]="jmeno",
+ ["de"]="name",
+ ["en"]="name",
+ ["fr"]="nom",
+ ["it"]="nome",
+ ["nl"]="naam",
+ ["pe"]="نام",
+ ["ro"]="nume",
+ },
+ ["nbottom"]={
+ ["cs"]="nspodek",
+ ["de"]="nunten",
+ ["en"]="nbottom",
+ ["fr"]="ninf",
+ ["it"]="nfondo",
+ ["nl"]="nonder",
+ ["pe"]="nbottom",
+ ["ro"]="njos",
+ },
+ ["nc"]={
+ ["cs"]="nc",
+ ["de"]="nc",
+ ["en"]="nc",
+ ["fr"]="nc",
+ ["it"]="nc",
+ ["nl"]="nc",
+ ["pe"]="nc",
+ ["ro"]="nc",
+ },
+ ["next"]={
+ ["cs"]="dalsi",
+ ["de"]="folgende",
+ ["en"]="next",
+ ["fr"]="suivant",
+ ["it"]="successivo",
+ ["nl"]="volgende",
+ ["pe"]="بعدی",
+ ["ro"]="urmatorul",
+ },
+ ["nl"]={
+ ["cs"]="nl",
+ ["de"]="nl",
+ ["en"]="nl",
+ ["fr"]="nl",
+ ["it"]="nl",
+ ["nl"]="nl",
+ ["pe"]="nl",
+ ["ro"]="nl",
+ },
+ ["nleft"]={
+ ["cs"]="nvlevo",
+ ["de"]="nlinks",
+ ["en"]="nleft",
+ ["fr"]="ngauche",
+ ["it"]="nsinistra",
+ ["nl"]="nlinks",
+ ["pe"]="nleft",
+ ["ro"]="nstanga",
+ },
+ ["nlines"]={
+ ["cs"]="nradky",
+ ["de"]="zzeile",
+ ["en"]="nlines",
+ ["fr"]="nlignes",
+ ["it"]="nrighe",
+ ["nl"]="nregels",
+ ["pe"]="nlines",
+ ["ro"]="nlinii",
+ },
+ ["norm"]={
+ ["cs"]="norm",
+ ["de"]="norm",
+ ["en"]="norm",
+ ["fr"]="norme",
+ ["it"]="norma",
+ ["nl"]="norm",
+ ["pe"]="norm",
+ ["ro"]="norm",
+ },
+ ["nr"]={
+ ["cs"]="nr",
+ ["de"]="nr",
+ ["en"]="nr",
+ ["fr"]="nr",
+ ["it"]="nr",
+ ["nl"]="nr",
+ ["pe"]="nr",
+ ["ro"]="nr",
+ },
+ ["nright"]={
+ ["cs"]="nvpravo",
+ ["de"]="nrechts",
+ ["en"]="nright",
+ ["fr"]="ndroite",
+ ["it"]="ndestra",
+ ["nl"]="nrechts",
+ ["pe"]="nright",
+ ["ro"]="ndreapta",
+ },
+ ["ntop"]={
+ ["cs"]="nvrsek",
+ ["de"]="noben",
+ ["en"]="ntop",
+ ["fr"]="nsup",
+ ["it"]="ncima",
+ ["nl"]="nboven",
+ ["pe"]="ntop",
+ ["ro"]="nsus",
+ },
+ ["number"]={
+ ["cs"]="cislo",
+ ["de"]="nummer",
+ ["en"]="number",
+ ["fr"]="numero",
+ ["it"]="numero",
+ ["nl"]="nummer",
+ ["pe"]="شماره",
+ ["ro"]="numar",
+ },
+ ["numbercolor"]={
+ ["cs"]="barvacisla",
+ ["de"]="nummernfarbe",
+ ["en"]="numbercolor",
+ ["fr"]="couleurnumero",
+ ["it"]="colorenumero",
+ ["nl"]="nummerkleur",
+ ["pe"]="رنگ‌شماره",
+ ["ro"]="culoarenumar",
+ },
+ ["numbercommand"]={
+ ["cs"]="ciselnyprikaz",
+ ["de"]="nummerbefehl",
+ ["en"]="numbercommand",
+ ["fr"]="commandenumero",
+ ["it"]="comandonumero",
+ ["nl"]="nummercommando",
+ ["pe"]="فرمان‌شماره",
+ ["ro"]="comandanumar",
+ },
+ ["numberconversion"]={
+ ["en"]="numberconversion",
+ },
+ ["numberconversionset"]={
+ ["en"]="numberconversionset",
+ },
+ ["numberdistance"]={
+ ["cs"]="numberdistance",
+ ["de"]="numberdistance",
+ ["en"]="numberdistance",
+ ["fr"]="numberdistance",
+ ["it"]="numberdistance",
+ ["nl"]="nummerafstand",
+ ["pe"]="فاصله‌شماره",
+ ["ro"]="numberdistance",
+ },
+ ["numbering"]={
+ ["cs"]="cislovani",
+ ["de"]="nummerierung",
+ ["en"]="numbering",
+ ["fr"]="numerotation",
+ ["it"]="numerazione",
+ ["nl"]="nummeren",
+ ["pe"]="شماره‌گذاری",
+ ["ro"]="numerotare",
+ },
+ ["numberorder"]={
+ ["en"]="numberorder",
+ },
+ ["numberprefix"]={
+ ["en"]="numberprefix",
+ },
+ ["numbersegments"]={
+ ["en"]="numbersegments",
+ },
+ ["numberseparator"]={
+ ["cs"]="oddelovaccisla",
+ ["de"]="nummernseperator",
+ ["en"]="numberseparator",
+ ["fr"]="separateurnumbero",
+ ["it"]="separatorenumero",
+ ["nl"]="nummerscheider",
+ ["pe"]="جداکننده‌شماره",
+ ["ro"]="separatornumar",
+ },
+ ["numberseparatorset"]={
+ ["en"]="numberseparatorset",
+ },
+ ["numberset"]={
+ ["en"]="numberset",
+ },
+ ["numberstopper"]={
+ ["en"]="numberstopper",
+ },
+ ["numberstyle"]={
+ ["cs"]="stylcisla",
+ ["de"]="nummernstil",
+ ["en"]="numberstyle",
+ ["fr"]="stylenumero",
+ ["it"]="stilenumero",
+ ["nl"]="nummerletter",
+ ["pe"]="سبک‌شماره",
+ ["ro"]="stilnumar",
+ },
+ ["numberwidth"]={
+ ["cs"]="numberwidth",
+ ["de"]="numberwidth",
+ ["en"]="numberwidth",
+ ["fr"]="numberwidth",
+ ["it"]="numberwidth",
+ ["nl"]="nummerbreedte",
+ ["pe"]="عرض‌شماره",
+ ["ro"]="numberwidth",
+ },
+ ["nx"]={
+ ["cs"]="nx",
+ ["de"]="nx",
+ ["en"]="nx",
+ ["fr"]="nx",
+ ["it"]="nx",
+ ["nl"]="nx",
+ ["pe"]="nx",
+ ["ro"]="nx",
+ },
+ ["ny"]={
+ ["cs"]="ny",
+ ["de"]="ny",
+ ["en"]="ny",
+ ["fr"]="ny",
+ ["it"]="ny",
+ ["nl"]="ny",
+ ["pe"]="ny",
+ ["ro"]="ny",
+ },
+ ["object"]={
+ ["cs"]="objekt",
+ ["de"]="objekt",
+ ["en"]="object",
+ ["fr"]="objet",
+ ["it"]="oggetto",
+ ["nl"]="object",
+ ["pe"]="شیئ",
+ ["ro"]="obiect",
+ },
+ ["obstruction"]={
+ ["cs"]="prekazka",
+ ["de"]="gesperrt",
+ ["en"]="obstruction",
+ ["fr"]="obstruction",
+ ["it"]="ostruzione",
+ ["nl"]="blokkade",
+ ["pe"]="انسداد",
+ ["ro"]="obstructie",
+ },
+ ["oddmargin"]={
+ ["cs"]="lichyokraj",
+ ["de"]="ungeraderand",
+ ["en"]="oddmargin",
+ ["fr"]="margepaire",
+ ["it"]="marginedispari",
+ ["nl"]="onevenmarge",
+ ["pe"]="حاشیه‌فرد",
+ ["ro"]="margineimpara",
+ },
+ ["offset"]={
+ ["cs"]="offset",
+ ["de"]="offset",
+ ["en"]="offset",
+ ["fr"]="offset",
+ ["it"]="offset",
+ ["nl"]="offset",
+ ["pe"]="آفست",
+ ["ro"]="offset",
+ },
+ ["openaction"]={
+ ["cs"]="otevriakci",
+ ["de"]="oeffenaktion",
+ ["en"]="openaction",
+ ["fr"]="actionouverture",
+ ["it"]="azioneapri",
+ ["nl"]="openactie",
+ ["pe"]="عمل‌باز",
+ ["ro"]="actiunedeschidere",
+ },
+ ["openpageaction"]={
+ ["cs"]="akceotevrenistranky",
+ ["de"]="openpageaction",
+ ["en"]="openpageaction",
+ ["fr"]="actionouverturepage",
+ ["it"]="azioneapripagina",
+ ["nl"]="openpaginaactie",
+ ["pe"]="عمل‌صفحه‌باز",
+ ["ro"]="actiunedeschiderepagina",
+ },
+ ["option"]={
+ ["cs"]="volba",
+ ["de"]="option",
+ ["en"]="option",
+ ["fr"]="option",
+ ["it"]="opzione",
+ ["nl"]="optie",
+ ["pe"]="گزینه",
+ ["ro"]="optiune",
+ },
+ ["orientation"]={
+ ["cs"]="orientation",
+ ["de"]="orientation",
+ ["en"]="orientation",
+ ["fr"]="orientation",
+ ["it"]="orientation",
+ ["nl"]="orientatie",
+ ["pe"]="جهت‌دهی",
+ ["ro"]="orientation",
+ },
+ ["outermargin"]={
+ ["cs"]="outermargin",
+ ["de"]="outermargin",
+ ["en"]="outermargin",
+ ["fr"]="margeexterieure",
+ ["it"]="margineesterno",
+ ["nl"]="buitenmarge",
+ ["pe"]="حاشیه‌خارجی",
+ ["ro"]="outermargin",
+ },
+ ["overprint"]={
+ ["cs"]="overprint",
+ ["de"]="overprint",
+ ["en"]="overprint",
+ ["fr"]="overprint",
+ ["it"]="overprint",
+ ["nl"]="overprint",
+ ["pe"]="overprint",
+ ["ro"]="overprint",
+ },
+ ["ownnumber"]={
+ ["cs"]="vlastnicislo",
+ ["de"]="eigenenummer",
+ ["en"]="ownnumber",
+ ["fr"]="numeroproprio",
+ ["it"]="numeroproprio",
+ ["nl"]="eigennummer",
+ ["pe"]="شماره‌خود",
+ ["ro"]="numarpropriu",
+ },
+ ["page"]={
+ ["cs"]="stranka",
+ ["de"]="seite",
+ ["en"]="page",
+ ["fr"]="page",
+ ["it"]="pagina",
+ ["nl"]="pagina",
+ ["pe"]="صفحه",
+ ["ro"]="pagina",
+ },
+ ["pageboundaries"]={
+ ["cs"]="hranicestranky",
+ ["de"]="seitenbegrenzung",
+ ["en"]="pageboundaries",
+ ["fr"]="limitespage",
+ ["it"]="limitipagina",
+ ["nl"]="paginaovergangen",
+ ["pe"]="مرزهای‌صفحه",
+ ["ro"]="marginipagina",
+ },
+ ["pagecolor"]={
+ ["cs"]="barvastranky",
+ ["de"]="seitenfarbe",
+ ["en"]="pagecolor",
+ ["fr"]="couleurpage",
+ ["it"]="colorepagina",
+ ["nl"]="paginakleur",
+ ["pe"]="رنگ‌صفحه",
+ ["ro"]="culoarepagina",
+ },
+ ["pagecommand"]={
+ ["cs"]="strankovyprikaz",
+ ["de"]="seitenbefehl",
+ ["en"]="pagecommand",
+ ["fr"]="commandepage",
+ ["it"]="comandopagina",
+ ["nl"]="paginacommando",
+ ["pe"]="فرمان‌صفحه",
+ ["ro"]="comandapagina",
+ },
+ ["pageconversion"]={
+ ["en"]="pageconversion",
+ },
+ ["pageconversionset"]={
+ ["en"]="pageconversionset",
+ },
+ ["pagenumber"]={
+ ["cs"]="cislostranky",
+ ["de"]="seitennummer",
+ ["en"]="pagenumber",
+ ["fr"]="numeropage",
+ ["it"]="numeropagina",
+ ["nl"]="paginanummer",
+ ["pe"]="شماره‌صفحه",
+ ["ro"]="numarpagina",
+ },
+ ["pageprefix"]={
+ ["en"]="pageprefix",
+ },
+ ["pageprefixconnector"]={
+ ["en"]="pageprefixconnector",
+ },
+ ["pageprefixconversion"]={
+ ["en"]="pageprefixconversion",
+ },
+ ["pageprefixconversionset"]={
+ ["en"]="pageprefixconversionset",
+ },
+ ["pageprefixsegments"]={
+ ["en"]="pageprefixsegments",
+ },
+ ["pageprefixseparatorset"]={
+ ["en"]="pageprefixseparatorset",
+ },
+ ["pageprefixset"]={
+ ["en"]="pageprefixset",
+ },
+ ["pageprefixstopper"]={
+ ["en"]="pageprefixstopper",
+ },
+ ["pagesegments"]={
+ ["en"]="pagesegments",
+ },
+ ["pageseparatorset"]={
+ ["en"]="pageseparatorset",
+ },
+ ["pageset"]={
+ ["en"]="pageset",
+ },
+ ["pagestate"]={
+ ["cs"]="pagestate",
+ ["de"]="pagestate",
+ ["en"]="pagestate",
+ ["fr"]="etatpage",
+ ["it"]="statopagina",
+ ["nl"]="paginastatus",
+ ["pe"]="وضعیت‌صفحه",
+ ["ro"]="pagestate",
+ },
+ ["pagestopper"]={
+ ["en"]="pagestopper",
+ },
+ ["pagestyle"]={
+ ["cs"]="stylstranky",
+ ["de"]="seitenstil",
+ ["en"]="pagestyle",
+ ["fr"]="stylepage",
+ ["it"]="stilepagina",
+ ["nl"]="paginaletter",
+ ["pe"]="سبک‌صفحه",
+ ["ro"]="stilpagina",
+ },
+ ["palet"]={
+ ["cs"]="paleta",
+ ["de"]="palette",
+ ["en"]="palet",
+ ["fr"]="palette",
+ ["it"]="tavolozza",
+ ["nl"]="palet",
+ ["pe"]="لوح",
+ ["ro"]="paleta",
+ },
+ ["paper"]={
+ ["cs"]="papir",
+ ["de"]="papier",
+ ["en"]="paper",
+ ["fr"]="papier",
+ ["it"]="carta",
+ ["nl"]="papier",
+ ["pe"]="برگ",
+ ["ro"]="hartie",
+ },
+ ["paragraph"]={
+ ["cs"]="odstavec",
+ ["de"]="absatz",
+ ["en"]="paragraph",
+ ["fr"]="paragraphe",
+ ["it"]="capoverso",
+ ["nl"]="alinea",
+ ["pe"]="پاراگراف",
+ ["ro"]="paragraf",
+ },
+ ["place"]={
+ ["cs"]="umistit",
+ ["de"]="platziere",
+ ["en"]="place",
+ ["fr"]="place",
+ ["it"]="metti",
+ ["nl"]="plaatsen",
+ ["pe"]="بگذار",
+ ["ro"]="pune",
+ },
+ ["placehead"]={
+ ["cs"]="umistihlavicku",
+ ["de"]="setzekopf",
+ ["en"]="placehead",
+ ["fr"]="placetete",
+ ["it"]="mettitesta",
+ ["nl"]="plaatskop",
+ ["pe"]="بگذارسر",
+ ["ro"]="punetitlu",
+ },
+ ["placestopper"]={
+ ["cs"]="predelmista",
+ ["de"]="setzetrenner",
+ ["en"]="placestopper",
+ ["fr"]="emplacementstopper",
+ ["it"]="mettistopper",
+ ["nl"]="plaatsafsluiter",
+ ["pe"]="بگذارایست",
+ ["ro"]="punestopper",
+ },
+ ["position"]={
+ ["cs"]="position",
+ ["de"]="position",
+ ["en"]="position",
+ ["fr"]="position",
+ ["it"]="posizione",
+ ["nl"]="positie",
+ ["pe"]="موقعیت",
+ ["ro"]="pozitie",
+ },
+ ["prefix"]={
+ ["cs"]="prefix",
+ ["de"]="prefix",
+ ["en"]="prefix",
+ ["fr"]="prefixe",
+ ["it"]="prefisso",
+ ["nl"]="prefix",
+ ["pe"]="پیشوند",
+ ["ro"]="prefix",
+ },
+ ["prefixconnector"]={
+ ["en"]="prefixconnector",
+ },
+ ["prefixconversion"]={
+ ["en"]="prefixconversion",
+ },
+ ["prefixconversionset"]={
+ ["en"]="prefixconversionset",
+ },
+ ["prefixsegments"]={
+ ["en"]="prefixsegments",
+ },
+ ["prefixseparatorset"]={
+ ["en"]="prefixseparatorset",
+ },
+ ["prefixset"]={
+ ["en"]="prefixset",
+ },
+ ["prefixstopper"]={
+ ["en"]="prefixstopper",
+ },
+ ["preset"]={
+ ["cs"]="prednastaveni",
+ ["de"]="voreinstellung",
+ ["en"]="preset",
+ ["fr"]="prereglage",
+ ["it"]="preimpostato",
+ ["nl"]="preset",
+ ["pe"]="preset",
+ ["ro"]="preset",
+ },
+ ["preview"]={
+ ["cs"]="nahled",
+ ["de"]="vorschau",
+ ["en"]="preview",
+ ["fr"]="previsualisation",
+ ["it"]="anteprima",
+ ["nl"]="preview",
+ ["pe"]="پیش‌دید",
+ ["ro"]="previzualizare",
+ },
+ ["previous"]={
+ ["cs"]="predchozi",
+ ["de"]="vorige",
+ ["en"]="previous",
+ ["fr"]="precedent",
+ ["it"]="precedente",
+ ["nl"]="vorige",
+ ["pe"]="قبلی",
+ ["ro"]="precendent",
+ },
+ ["previousnumber"]={
+ ["cs"]="predchozicislo",
+ ["de"]="vorigenummer",
+ ["en"]="previousnumber",
+ ["fr"]="numeroprecedent",
+ ["it"]="numeroprecedente",
+ ["nl"]="vorigenummer",
+ ["pe"]="شماره‌قبلی",
+ ["ro"]="numarprecedent",
+ },
+ ["process"]={
+ ["cs"]="process",
+ ["de"]="process",
+ ["en"]="process",
+ ["fr"]="process",
+ ["it"]="process",
+ ["nl"]="proces",
+ ["pe"]="پردازش",
+ ["ro"]="process",
+ },
+ ["radius"]={
+ ["cs"]="polomer",
+ ["de"]="radius",
+ ["en"]="radius",
+ ["fr"]="rayon",
+ ["it"]="raggio",
+ ["nl"]="straal",
+ ["pe"]="شعاع",
+ ["ro"]="raza",
+ },
+ ["random"]={
+ ["cs"]="nahodne",
+ ["de"]="zufaellig",
+ ["en"]="random",
+ ["fr"]="aleatoire",
+ ["it"]="casuale",
+ ["nl"]="willekeur",
+ ["pe"]="تصادفی",
+ ["ro"]="aleator",
+ },
+ ["reduction"]={
+ ["cs"]="redukce",
+ ["de"]="reduktion",
+ ["en"]="reduction",
+ ["fr"]="reduction",
+ ["it"]="riduzione",
+ ["nl"]="reductie",
+ ["pe"]="کاهش",
+ ["ro"]="reducere",
+ },
+ ["ref"]={
+ ["cs"]="ref",
+ ["de"]="ref",
+ ["en"]="ref",
+ ["fr"]="ref",
+ ["it"]="ref",
+ ["nl"]="ref",
+ ["pe"]="رج",
+ ["ro"]="ref",
+ },
+ ["reference"]={
+ ["cs"]="odkaz",
+ ["de"]="referenz",
+ ["en"]="reference",
+ ["fr"]="reference",
+ ["it"]="riferimento",
+ ["nl"]="verwijzing",
+ ["pe"]="مرجع",
+ ["ro"]="referinta",
+ },
+ ["referenceprefix"]={
+ ["en"]="referenceprefix",
+ },
+ ["referencing"]={
+ ["cs"]="odkazujici",
+ ["de"]="referieren",
+ ["en"]="referencing",
+ ["fr"]="referencing",
+ ["it"]="referencing",
+ ["nl"]="refereren",
+ ["pe"]="مراجعه",
+ ["ro"]="referinta",
+ },
+ ["regionin"]={
+ ["cs"]="oblastuvnitr",
+ ["de"]="regionin",
+ ["en"]="regionin",
+ ["fr"]="entreregion",
+ ["it"]="entraregione",
+ ["nl"]="gebiedin",
+ ["pe"]="ناحیه‌درون",
+ ["ro"]="regiuneintrare",
+ },
+ ["regionout"]={
+ ["cs"]="oblastvne",
+ ["de"]="regionaus",
+ ["en"]="regionout",
+ ["fr"]="regionexterieure",
+ ["it"]="esciregione",
+ ["nl"]="gebieduit",
+ ["pe"]="ناحیه‌بیرون",
+ ["ro"]="regiuneiesire",
+ },
+ ["repeat"]={
+ ["cs"]="opakovat",
+ ["de"]="wiederholen",
+ ["en"]="repeat",
+ ["fr"]="repete",
+ ["it"]="ripeti",
+ ["nl"]="herhaal",
+ ["pe"]="تکرار",
+ ["ro"]="repeta",
+ },
+ ["reset"]={
+ ["cs"]="reset",
+ ["de"]="reset",
+ ["en"]="reset",
+ ["fr"]="reset",
+ ["it"]="reset",
+ ["nl"]="reset",
+ ["pe"]="بازنشانی",
+ ["ro"]="reset",
+ },
+ ["resetnumber"]={
+ ["cs"]="resetnumber",
+ ["de"]="resetnumber",
+ ["en"]="resetnumber",
+ ["fr"]="raznumero",
+ ["it"]="resetnumber",
+ ["nl"]="resetnummer",
+ ["pe"]="بازنشانی‌شماره",
+ ["ro"]="resetnumber",
+ },
+ ["resolution"]={
+ ["cs"]="rozliseni",
+ ["de"]="aufloesung",
+ ["en"]="resolution",
+ ["fr"]="resolution",
+ ["it"]="risoluzione",
+ ["nl"]="resolutie",
+ ["pe"]="کیفیت",
+ ["ro"]="rezolutie",
+ },
+ ["right"]={
+ ["cs"]="vpravo",
+ ["de"]="rechts",
+ ["en"]="right",
+ ["fr"]="droite",
+ ["it"]="destra",
+ ["nl"]="rechts",
+ ["pe"]="راست",
+ ["ro"]="dreapta",
+ },
+ ["rightcolor"]={
+ ["cs"]="barvavpravo",
+ ["de"]="rechterfarbe",
+ ["en"]="rightcolor",
+ ["fr"]="couleurdroite",
+ ["it"]="coloredestra",
+ ["nl"]="rechterkleur",
+ ["pe"]="رنگ‌راست",
+ ["ro"]="culoaredreapta",
+ },
+ ["rightcompoundhyphen"]={
+ ["cs"]="rightcompoundhyphen",
+ ["de"]="rightcompoundhyphen",
+ ["en"]="rightcompoundhyphen",
+ ["fr"]="rightcompoundhyphen",
+ ["it"]="rightcompoundhyphen",
+ ["nl"]="rechterkoppelteken",
+ ["pe"]="rightcompoundhyphen",
+ ["ro"]="rightcompoundhyphen",
+ },
+ ["rightedge"]={
+ ["cs"]="pravahrana",
+ ["de"]="rechtekante",
+ ["en"]="rightedge",
+ ["fr"]="borddroit",
+ ["it"]="bordodestro",
+ ["nl"]="rechterrand",
+ ["pe"]="لبه‌راست",
+ ["ro"]="borduradreapta",
+ },
+ ["rightedgedistance"]={
+ ["cs"]="vzdalenostpravehrany",
+ ["de"]="rechterkantenabstand",
+ ["en"]="rightedgedistance",
+ ["fr"]="distanceborddroit",
+ ["it"]="distanzabordodestro",
+ ["nl"]="rechterrandafstand",
+ ["pe"]="فاصله‌لبه‌راست",
+ ["ro"]="distantacoltdreapta",
+ },
+ ["rightframe"]={
+ ["cs"]="ramecekvpravo",
+ ["de"]="rechterrahmen",
+ ["en"]="rightframe",
+ ["fr"]="cadredroit",
+ ["it"]="cornicedestra",
+ ["nl"]="rechterkader",
+ ["pe"]="قالب‌راست",
+ ["ro"]="framedreapta",
+ },
+ ["righthyphen"]={
+ ["cs"]="righthyphen",
+ ["de"]="righthyphen",
+ ["en"]="righthyphen",
+ ["fr"]="righthyphen",
+ ["it"]="righthyphen",
+ ["nl"]="righthyphen",
+ ["pe"]="righthyphen",
+ ["ro"]="righthyphen",
+ },
+ ["rightmargin"]={
+ ["cs"]="pravyokraj",
+ ["de"]="rechterrand",
+ ["en"]="rightmargin",
+ ["fr"]="margedroite",
+ ["it"]="marginedestro",
+ ["nl"]="rechtermarge",
+ ["pe"]="حاشیه‌راست",
+ ["ro"]="marginedreapta",
+ },
+ ["rightmargindistance"]={
+ ["cs"]="vzdalenostpravehookraje",
+ ["de"]="rechterrandabstand",
+ ["en"]="rightmargindistance",
+ ["fr"]="distancemargedroite",
+ ["it"]="distanzamarginedestro",
+ ["nl"]="rechtermargeafstand",
+ ["pe"]="فاصله‌حاشیه‌راست",
+ ["ro"]="distantamarginedreapta",
+ },
+ ["rightoffset"]={
+ ["cs"]="pravyoffset",
+ ["de"]="rechterabstand",
+ ["en"]="rightoffset",
+ ["fr"]="rightoffset",
+ ["it"]="offsetdestro",
+ ["nl"]="rechteroffset",
+ ["pe"]="آفست‌راست",
+ ["ro"]="offsetdreapta",
+ },
+ ["rightquotation"]={
+ ["cs"]="citacevpravo",
+ ["de"]="rechterzitat",
+ ["en"]="rightquotation",
+ ["fr"]="citationdroite",
+ ["it"]="citazionedestra",
+ ["nl"]="rechtercitaat",
+ ["pe"]="نقل‌قول‌راست",
+ ["ro"]="citatdreapta",
+ },
+ ["rightquote"]={
+ ["cs"]="citovatvpravo",
+ ["de"]="rechterzitieren",
+ ["en"]="rightquote",
+ ["fr"]="citerdroite",
+ ["it"]="menzionedestra",
+ ["nl"]="rechterciteer",
+ ["pe"]="نقل‌راست",
+ ["ro"]="minicitatdreapta",
+ },
+ ["rightsentence"]={
+ ["cs"]="vetavpravo",
+ ["de"]="rechtersatz",
+ ["en"]="rightsentence",
+ ["fr"]="phrasedroite",
+ ["it"]="frasedestra",
+ ["nl"]="rechterzin",
+ ["pe"]="جمله‌راست",
+ ["ro"]="propozitiedreapta",
+ },
+ ["rightspeech"]={
+ ["cs"]="rightspeech",
+ ["de"]="rightspeech",
+ ["en"]="rightspeech",
+ ["fr"]="rightspeech",
+ ["it"]="rightspeech",
+ ["nl"]="rechteruitspraak",
+ ["pe"]="سخنرانی‌راست",
+ ["ro"]="rightspeech",
+ },
+ ["rightstyle"]={
+ ["cs"]="stylvpravo",
+ ["de"]="rechterstil",
+ ["en"]="rightstyle",
+ ["fr"]="styledroit",
+ ["it"]="stiledestra",
+ ["nl"]="rechterletter",
+ ["pe"]="سبک‌راست",
+ ["ro"]="stildreapta",
+ },
+ ["rightsubsentence"]={
+ ["cs"]="podvetavpravo",
+ ["de"]="rechtersubsatz",
+ ["en"]="rightsubsentence",
+ ["fr"]="sousphrasedroite",
+ ["it"]="sottofrasedestra",
+ ["nl"]="rechtersubzin",
+ ["pe"]="زیرجمله‌راست",
+ ["ro"]="subpropozitiedreapta",
+ },
+ ["righttext"]={
+ ["cs"]="textvpravo",
+ ["de"]="rechtertext",
+ ["en"]="righttext",
+ ["fr"]="textedroit",
+ ["it"]="testodestro",
+ ["nl"]="rechtertekst",
+ ["pe"]="متن‌راست",
+ ["ro"]="textdreapta",
+ },
+ ["rightwidth"]={
+ ["cs"]="sirkavpravo",
+ ["de"]="rechterbreite",
+ ["en"]="rightwidth",
+ ["fr"]="largeurdroite",
+ ["it"]="ampiezzadestra",
+ ["nl"]="rechterbreedte",
+ ["pe"]="عرض‌راست",
+ ["ro"]="marginedreapta",
+ },
+ ["rotation"]={
+ ["cs"]="rotace",
+ ["de"]="rotation",
+ ["en"]="rotation",
+ ["fr"]="rotation",
+ ["it"]="rotazione",
+ ["nl"]="rotatie",
+ ["pe"]="دوران",
+ ["ro"]="rotatie",
+ },
+ ["rule"]={
+ ["cs"]="linka",
+ ["de"]="linie",
+ ["en"]="rule",
+ ["fr"]="ligne",
+ ["it"]="linea",
+ ["nl"]="lijn",
+ ["pe"]="خط",
+ ["ro"]="rigla",
+ },
+ ["rulecolor"]={
+ ["cs"]="barvalinky",
+ ["de"]="linienfarbe",
+ ["en"]="rulecolor",
+ ["fr"]="couleurligne",
+ ["it"]="colorelinea",
+ ["nl"]="lijnkleur",
+ ["pe"]="رنگ‌خط",
+ ["ro"]="culoarerigla",
+ },
+ ["rulethickness"]={
+ ["cs"]="tloustkalinky",
+ ["de"]="liniendicke",
+ ["en"]="rulethickness",
+ ["fr"]="epaisseurligne",
+ ["it"]="spessorelinea",
+ ["nl"]="lijndikte",
+ ["pe"]="ضخامت‌خط",
+ ["ro"]="grosimerigla",
+ },
+ ["samepage"]={
+ ["cs"]="stejnastranka",
+ ["de"]="selbeseite",
+ ["en"]="samepage",
+ ["fr"]="memepage",
+ ["it"]="stessapagina",
+ ["nl"]="zelfdepagina",
+ ["pe"]="همان‌صفحه",
+ ["ro"]="aceeasipagina",
+ },
+ ["sample"]={
+ ["cs"]="vzor",
+ ["de"]="muster",
+ ["en"]="sample",
+ ["fr"]="echantillon",
+ ["it"]="campione",
+ ["nl"]="monster",
+ ["pe"]="نمونه",
+ ["ro"]="exemplu",
+ },
+ ["saveinlist"]={
+ ["en"]="saveinlist",
+ },
+ ["scale"]={
+ ["cs"]="meritko",
+ ["de"]="format",
+ ["en"]="scale",
+ ["fr"]="echelle",
+ ["it"]="scala",
+ ["nl"]="schaal",
+ ["pe"]="مقیاس",
+ ["ro"]="scala",
+ },
+ ["scope"]={
+ ["cs"]="rozsah",
+ ["de"]="bereich",
+ ["en"]="scope",
+ ["fr"]="scope",
+ ["it"]="scope",
+ ["nl"]="scope",
+ ["pe"]="طرح",
+ ["ro"]="scop",
+ },
+ ["screen"]={
+ ["cs"]="rastr",
+ ["de"]="raster",
+ ["en"]="screen",
+ ["fr"]="ecran",
+ ["it"]="schermo",
+ ["nl"]="raster",
+ ["pe"]="پرده",
+ ["ro"]="ecran",
+ },
+ ["section"]={
+ ["cs"]="oddil",
+ ["de"]="abschnitt",
+ ["en"]="section",
+ ["fr"]="section",
+ ["it"]="sezione",
+ ["nl"]="sectie",
+ ["pe"]="بخش",
+ ["ro"]="sectiune",
+ },
+ ["sectionconversion"]={
+ ["en"]="sectionconversion",
+ },
+ ["sectionconversionset"]={
+ ["en"]="sectionconversionset",
+ },
+ ["sectionnumber"]={
+ ["cs"]="cislooddilu",
+ ["de"]="abschnittsnummer",
+ ["en"]="sectionnumber",
+ ["fr"]="numerosection",
+ ["it"]="numerosezione",
+ ["nl"]="sectienummer",
+ ["pe"]="شماره‌بخش",
+ ["ro"]="numarsectiune",
+ },
+ ["sectionresetset"]={
+ ["en"]="sectionresetset",
+ },
+ ["sectionsegments"]={
+ ["en"]="sectionsegments",
+ },
+ ["sectionseparatorset"]={
+ ["en"]="sectionseparatorset",
+ },
+ ["sectionset"]={
+ ["en"]="sectionset",
+ },
+ ["sectionstopper"]={
+ ["en"]="sectionstopper",
+ },
+ ["separator"]={
+ ["cs"]="oddelovac",
+ ["de"]="seperator",
+ ["en"]="separator",
+ ["fr"]="separateur",
+ ["it"]="separatore",
+ ["nl"]="scheider",
+ ["pe"]="جداکننده",
+ ["ro"]="separator",
+ },
+ ["set"]={
+ ["cs"]="set",
+ ["de"]="set",
+ ["en"]="set",
+ ["fr"]="set",
+ ["it"]="set",
+ ["nl"]="set",
+ ["pe"]="قراربده",
+ ["ro"]="set",
+ },
+ ["setups"]={
+ ["cs"]="setups",
+ ["de"]="setups",
+ ["en"]="setups",
+ ["fr"]="reglages",
+ ["it"]="setups",
+ ["nl"]="setups",
+ ["pe"]="بارگذاریها",
+ ["ro"]="setups",
+ },
+ ["side"]={
+ ["cs"]="pocitat",
+ ["de"]="objektabstand",
+ ["en"]="side",
+ ["fr"]="cote",
+ ["it"]="lato",
+ ["nl"]="zij",
+ ["pe"]="کنار",
+ ["ro"]="parte",
+ },
+ ["sidealign"]={
+ ["cs"]="sidealign",
+ ["de"]="sidealign",
+ ["en"]="sidealign",
+ ["fr"]="sidealign",
+ ["it"]="sidealign",
+ ["nl"]="zijuitlijnen",
+ ["pe"]="تنظیم‌کنار",
+ ["ro"]="sidealign",
+ },
+ ["sidemethod"]={
+ ["cs"]="sidemethod",
+ ["de"]="sidemethod",
+ ["en"]="sidemethod",
+ ["fr"]="sidemethod",
+ ["it"]="sidemethod",
+ ["nl"]="zijmethode",
+ ["pe"]="روش‌کنار",
+ ["ro"]="sidemethod",
+ },
+ ["sidespaceafter"]={
+ ["cs"]="bocnimezeraza",
+ ["de"]="nebennachspatium",
+ ["en"]="sidespaceafter",
+ ["fr"]="espacelateralapres",
+ ["it"]="spaziolateraledopo",
+ ["nl"]="zijnawit",
+ ["pe"]="فضای‌کناری‌بعد",
+ ["ro"]="spatiulateraldupa",
+ },
+ ["sidespacebefore"]={
+ ["cs"]="bocnimezerapred",
+ ["de"]="nebenvorspatium",
+ ["en"]="sidespacebefore",
+ ["fr"]="espacelateralavant",
+ ["it"]="spaziolateraleprima",
+ ["nl"]="zijvoorwit",
+ ["pe"]="فضای‌کناری‌قبل",
+ ["ro"]="spatiulateralinainte",
+ },
+ ["sign"]={
+ ["cs"]="znak",
+ ["de"]="zeichen",
+ ["en"]="sign",
+ ["fr"]="signe",
+ ["it"]="segno",
+ ["nl"]="teken",
+ ["pe"]="علامت",
+ ["ro"]="semn",
+ },
+ ["size"]={
+ ["cs"]="velikost",
+ ["de"]="groesse",
+ ["en"]="size",
+ ["fr"]="dimension",
+ ["it"]="dimensione",
+ ["nl"]="formaat",
+ ["pe"]="اندازه",
+ ["ro"]="dimensiune",
+ },
+ ["small"]={
+ ["cs"]="male",
+ ["de"]="klein",
+ ["en"]="small",
+ ["fr"]="petit",
+ ["it"]="piccolo",
+ ["nl"]="klein",
+ ["pe"]="کوچک",
+ ["ro"]="mic",
+ },
+ ["sorttype"]={
+ ["cs"]="sorttype",
+ ["de"]="sorttype",
+ ["en"]="sorttype",
+ ["fr"]="sorttype",
+ ["it"]="sorttype",
+ ["nl"]="sortering",
+ ["pe"]="ترتیب‌تایپ",
+ ["ro"]="sorttype",
+ },
+ ["source"]={
+ ["cs"]="zdroj",
+ ["de"]="quelle",
+ ["en"]="source",
+ ["fr"]="origine",
+ ["it"]="origine",
+ ["nl"]="bron",
+ ["pe"]="منبع",
+ ["ro"]="sursa",
+ },
+ ["space"]={
+ ["cs"]="mezera",
+ ["de"]="spatium",
+ ["en"]="space",
+ ["fr"]="espace",
+ ["it"]="spazio",
+ ["nl"]="spatie",
+ ["pe"]="فضا",
+ ["ro"]="spatiu",
+ },
+ ["spaceafter"]={
+ ["cs"]="mezeraza",
+ ["de"]="nachspatium",
+ ["en"]="spaceafter",
+ ["fr"]="espaceapres",
+ ["it"]="spaziodopo",
+ ["nl"]="nawit",
+ ["pe"]="فضا‌بعداز",
+ ["ro"]="spatiudupa",
+ },
+ ["spacebefore"]={
+ ["cs"]="mezerapred",
+ ["de"]="vorspatium",
+ ["en"]="spacebefore",
+ ["fr"]="espaceavant",
+ ["it"]="spazioprima",
+ ["nl"]="voorwit",
+ ["pe"]="فضا‌قبل‌از",
+ ["ro"]="spatiuinainte",
+ },
+ ["spaceinbetween"]={
+ ["cs"]="spaceinbetween",
+ ["de"]="spaceinbetween",
+ ["en"]="spaceinbetween",
+ ["fr"]="spaceinbetween",
+ ["it"]="spaceinbetween",
+ ["nl"]="tussenwit",
+ ["pe"]="فضا‌دربین",
+ ["ro"]="spaceinbetween",
+ },
+ ["spacing"]={
+ ["cs"]="mezerovani",
+ ["de"]="spatiumausgleich",
+ ["en"]="spacing",
+ ["fr"]="espacement",
+ ["it"]="spaziatura",
+ ["nl"]="spatiering",
+ ["pe"]="فضاگذاری",
+ ["ro"]="spatiere",
+ },
+ ["split"]={
+ ["cs"]="split",
+ ["de"]="split",
+ ["en"]="split",
+ ["fr"]="split",
+ ["it"]="separa",
+ ["nl"]="splitsen",
+ ["pe"]="شکافتن",
+ ["ro"]="split",
+ },
+ ["splitcolor"]={
+ ["cs"]="splitcolor",
+ ["de"]="splitcolor",
+ ["en"]="splitcolor",
+ ["fr"]="splitcolor",
+ ["it"]="splitcolor",
+ ["nl"]="splitskleur",
+ ["pe"]="شکافتن‌رنگ",
+ ["ro"]="splitcolor",
+ },
+ ["splitmethod"]={
+ ["cs"]="splitmethod",
+ ["de"]="splitmethod",
+ ["en"]="splitmethod",
+ ["fr"]="splitmethod",
+ ["it"]="splitmethod",
+ ["nl"]="splitsmethode",
+ ["pe"]="روش‌شکافتن",
+ ["ro"]="splitmethod",
+ },
+ ["splitoffset"]={
+ ["cs"]="splitoffset",
+ ["de"]="splitoffset",
+ ["en"]="splitoffset",
+ ["fr"]="splitoffset",
+ ["it"]="splitoffset",
+ ["nl"]="splitsoffset",
+ ["pe"]="شکافتن‌آفست",
+ ["ro"]="splitoffset",
+ },
+ ["spot"]={
+ ["cs"]="spot",
+ ["de"]="spot",
+ ["en"]="spot",
+ ["fr"]="spot",
+ ["it"]="spot",
+ ["nl"]="spot",
+ ["pe"]="لکه",
+ ["ro"]="spot",
+ },
+ ["stack"]={
+ ["cs"]="stack",
+ ["de"]="stack",
+ ["en"]="stack",
+ ["fr"]="stack",
+ ["it"]="stack",
+ ["nl"]="stapel",
+ ["pe"]="توده",
+ ["ro"]="stack",
+ },
+ ["start"]={
+ ["cs"]="start",
+ ["de"]="start",
+ ["en"]="start",
+ ["fr"]="demarre",
+ ["it"]="inizia",
+ ["nl"]="start",
+ ["pe"]="شروع",
+ ["ro"]="start",
+ },
+ ["state"]={
+ ["cs"]="status",
+ ["de"]="status",
+ ["en"]="state",
+ ["fr"]="etat",
+ ["it"]="stato",
+ ["nl"]="status",
+ ["pe"]="وضعیت",
+ ["ro"]="stare",
+ },
+ ["step"]={
+ ["cs"]="krok",
+ ["de"]="schritt",
+ ["en"]="step",
+ ["fr"]="pas",
+ ["it"]="passo",
+ ["nl"]="stap",
+ ["pe"]="گام",
+ ["ro"]="pas",
+ },
+ ["stop"]={
+ ["cs"]="stop",
+ ["de"]="stop",
+ ["en"]="stop",
+ ["fr"]="stoppe",
+ ["it"]="termina",
+ ["nl"]="stop",
+ ["pe"]="پایان",
+ ["ro"]="stop",
+ },
+ ["stopper"]={
+ ["cs"]="predel",
+ ["de"]="abschnitttrenner",
+ ["en"]="stopper",
+ ["fr"]="taquet",
+ ["it"]="stopper",
+ ["nl"]="afsluiter",
+ ["pe"]="ایست",
+ ["ro"]="stopper",
+ },
+ ["stretch"]={
+ ["cs"]="natahnout",
+ ["de"]="strecken",
+ ["en"]="stretch",
+ ["fr"]="etire",
+ ["it"]="dilata",
+ ["nl"]="rek",
+ ["pe"]="کشیدن",
+ ["ro"]="dilatat",
+ },
+ ["strut"]={
+ ["cs"]="strut",
+ ["de"]="strut",
+ ["en"]="strut",
+ ["fr"]="strut",
+ ["it"]="strut",
+ ["nl"]="strut",
+ ["pe"]="بست",
+ ["ro"]="strut",
+ },
+ ["style"]={
+ ["cs"]="pismeno",
+ ["de"]="stil",
+ ["en"]="style",
+ ["fr"]="style",
+ ["it"]="stile",
+ ["nl"]="letter",
+ ["pe"]="سبک",
+ ["ro"]="stil",
+ },
+ ["sub"]={
+ ["cs"]="pod",
+ ["de"]="unter",
+ ["en"]="sub",
+ ["fr"]="sous",
+ ["it"]="sotto",
+ ["nl"]="sub",
+ ["pe"]="زیر",
+ ["ro"]="sub",
+ },
+ ["subtitle"]={
+ ["cs"]="podtitulek",
+ ["de"]="untertitel",
+ ["en"]="subtitle",
+ ["fr"]="soustitre",
+ ["it"]="sottotitolo",
+ ["nl"]="subtitel",
+ ["pe"]="زیرعنوان",
+ ["ro"]="subtitlu",
+ },
+ ["suffix"]={
+ ["cs"]="suffix",
+ ["de"]="suffix",
+ ["en"]="suffix",
+ ["fr"]="suffix",
+ ["it"]="suffix",
+ ["nl"]="suffix",
+ ["pe"]="پسوند",
+ ["ro"]="suffix",
+ },
+ ["sx"]={
+ ["cs"]="sx",
+ ["de"]="sx",
+ ["en"]="sx",
+ ["fr"]="sx",
+ ["it"]="sx",
+ ["nl"]="sx",
+ ["pe"]="sx",
+ ["ro"]="sx",
+ },
+ ["sy"]={
+ ["cs"]="sy",
+ ["de"]="sy",
+ ["en"]="sy",
+ ["fr"]="sy",
+ ["it"]="sy",
+ ["nl"]="sy",
+ ["pe"]="sy",
+ ["ro"]="sy",
+ },
+ ["symalign"]={
+ ["cs"]="symzarovnani",
+ ["de"]="symausrichtung",
+ ["en"]="symalign",
+ ["fr"]="symalignement",
+ ["it"]="symallinea",
+ ["nl"]="symuitlijnen",
+ ["pe"]="تنظیم‌نماد",
+ ["ro"]="symaliniere",
+ },
+ ["symbol"]={
+ ["cs"]="symbol",
+ ["de"]="symbol",
+ ["en"]="symbol",
+ ["fr"]="symbole",
+ ["it"]="simbolo",
+ ["nl"]="symbool",
+ ["pe"]="نماد",
+ ["ro"]="simbol",
+ },
+ ["symbolset"]={
+ ["cs"]="sadasymbolu",
+ ["de"]="symbolset",
+ ["en"]="symbolset",
+ ["fr"]="jeusymbole",
+ ["it"]="setsimboli",
+ ["nl"]="symboolset",
+ ["pe"]="مجموعه‌نماد",
+ ["ro"]="setsimbol",
+ },
+ ["symcolor"]={
+ ["cs"]="barvasymbolu",
+ ["de"]="symfarbe",
+ ["en"]="symcolor",
+ ["fr"]="couleursym",
+ ["it"]="coloresimbolo",
+ ["nl"]="symkleur",
+ ["pe"]="رنگ‌نماد",
+ ["ro"]="culoaresimbol",
+ },
+ ["symstyle"]={
+ ["cs"]="stylsymboly",
+ ["de"]="symstil",
+ ["en"]="symstyle",
+ ["fr"]="stylesym",
+ ["it"]="stilesimbolo",
+ ["nl"]="symletter",
+ ["pe"]="سبک‌نماد",
+ ["ro"]="stilsimbol",
+ },
+ ["synonym"]={
+ ["cs"]="synonymum",
+ ["de"]="synonym",
+ ["en"]="synonym",
+ ["fr"]="synonyme",
+ ["it"]="sinonimo",
+ ["nl"]="synoniem",
+ ["pe"]="مترادف",
+ ["ro"]="sinonim",
+ },
+ ["synonymcolor"]={
+ ["cs"]="barvasynonyma",
+ ["de"]="synonymfarbe",
+ ["en"]="synonymcolor",
+ ["fr"]="couleursynonyme",
+ ["it"]="coloresinonimi",
+ ["nl"]="synoniemkleur",
+ ["pe"]="رنگ‌مترادف",
+ ["ro"]="culoaresinonim",
+ },
+ ["synonymcommand"]={
+ ["cs"]="synonymcommand",
+ ["de"]="synonymbefehl",
+ ["en"]="synonymcommand",
+ ["fr"]="synonymcommand",
+ ["it"]="synonymcommand",
+ ["nl"]="synoniemcommando",
+ ["pe"]="synonymcommand",
+ ["ro"]="synonymcommand",
+ },
+ ["synonymstyle"]={
+ ["cs"]="stylsynonyma",
+ ["de"]="synonymstil",
+ ["en"]="synonymstyle",
+ ["fr"]="stylesynonyme",
+ ["it"]="stilesinonimi",
+ ["nl"]="synoniemletter",
+ ["pe"]="سبک‌مترادف",
+ ["ro"]="stilsinonim",
+ },
+ ["tab"]={
+ ["cs"]="tab",
+ ["de"]="tab",
+ ["en"]="tab",
+ ["fr"]="tab",
+ ["it"]="tab",
+ ["nl"]="tab",
+ ["pe"]="تب",
+ ["ro"]="tab",
+ },
+ ["text"]={
+ ["cs"]="text",
+ ["de"]="text",
+ ["en"]="text",
+ ["fr"]="texte",
+ ["it"]="testo",
+ ["nl"]="tekst",
+ ["pe"]="متن",
+ ["ro"]="text",
+ },
+ ["textcolor"]={
+ ["cs"]="barvatextu",
+ ["de"]="textfarbe",
+ ["en"]="textcolor",
+ ["fr"]="couleurtexte",
+ ["it"]="coloretesto",
+ ["nl"]="tekstkleur",
+ ["pe"]="رنگ‌متن",
+ ["ro"]="culoaretext",
+ },
+ ["textcommand"]={
+ ["cs"]="textovyprikaz",
+ ["de"]="textbefehl",
+ ["en"]="textcommand",
+ ["fr"]="commandetexte",
+ ["it"]="comandotesto",
+ ["nl"]="tekstcommando",
+ ["pe"]="فرمان‌متن",
+ ["ro"]="comandatext",
+ },
+ ["textdistance"]={
+ ["cs"]="textdistance",
+ ["de"]="textdistance",
+ ["en"]="textdistance",
+ ["fr"]="distancetexte",
+ ["it"]="distanzatesto",
+ ["nl"]="tekstafstand",
+ ["pe"]="فاصله‌متن",
+ ["ro"]="textdistance",
+ },
+ ["textlayer"]={
+ ["cs"]="textlayer",
+ ["de"]="textlayer",
+ ["en"]="textlayer",
+ ["fr"]="calquetexte",
+ ["it"]="textlayer",
+ ["nl"]="tekstlaag",
+ ["pe"]="لایه‌متن",
+ ["ro"]="textlayer",
+ },
+ ["textmargin"]={
+ ["cs"]="textmargin",
+ ["de"]="textmargin",
+ ["en"]="textmargin",
+ ["fr"]="margetexte",
+ ["it"]="textmargin",
+ ["nl"]="tekstmarge",
+ ["pe"]="حاشیه‌متن",
+ ["ro"]="textmargin",
+ },
+ ["textmethod"]={
+ ["cs"]="textmethod",
+ ["de"]="textmethod",
+ ["en"]="textmethod",
+ ["fr"]="textmethod",
+ ["it"]="textmethod",
+ ["nl"]="tekstmethode",
+ ["pe"]="روش‌متن",
+ ["ro"]="textmethod",
+ },
+ ["textseparator"]={
+ ["cs"]="oddelovactextu",
+ ["de"]="textseparator",
+ ["en"]="textseparator",
+ ["fr"]="separateurtexte",
+ ["it"]="separatoretesto",
+ ["nl"]="tekstscheider",
+ ["pe"]="جداکننده‌متن",
+ ["ro"]="separatortext",
+ },
+ ["textsize"]={
+ ["cs"]="velikosttextu",
+ ["de"]="textgroesse",
+ ["en"]="textsize",
+ ["fr"]="tailletexte",
+ ["it"]="dimensionetesto",
+ ["nl"]="tekstformaat",
+ ["pe"]="اندازه‌متن",
+ ["ro"]="dimensiunetext",
+ },
+ ["textstate"]={
+ ["cs"]="statustextu",
+ ["de"]="textstatus",
+ ["en"]="textstate",
+ ["fr"]="etattexte",
+ ["it"]="statotesto",
+ ["nl"]="tekststatus",
+ ["pe"]="وضعیت‌متن",
+ ["ro"]="staretext",
+ },
+ ["textstyle"]={
+ ["cs"]="styltextu",
+ ["de"]="textstil",
+ ["en"]="textstyle",
+ ["fr"]="styletexte",
+ ["it"]="stiletesto",
+ ["nl"]="tekstletter",
+ ["pe"]="سبک‌متن",
+ ["ro"]="stiltext",
+ },
+ ["textwidth"]={
+ ["cs"]="sirkatextu",
+ ["de"]="textbreite",
+ ["en"]="textwidth",
+ ["fr"]="largeurtexte",
+ ["it"]="ampiezzatesto",
+ ["nl"]="tekstbreedte",
+ ["pe"]="عرض‌متن",
+ ["ro"]="latimetext",
+ },
+ ["title"]={
+ ["cs"]="titul",
+ ["de"]="titel",
+ ["en"]="title",
+ ["fr"]="titre",
+ ["it"]="titolo",
+ ["nl"]="titel",
+ ["pe"]="عنوان",
+ ["ro"]="titlu",
+ },
+ ["titlecolor"]={
+ ["cs"]="barvatitulek",
+ ["de"]="titelfarbe",
+ ["en"]="titlecolor",
+ ["fr"]="couleurtitre",
+ ["it"]="coloretitolo",
+ ["nl"]="titelkleur",
+ ["pe"]="رنگ‌عنوان",
+ ["ro"]="culoaretitlu",
+ },
+ ["titlecommand"]={
+ ["cs"]="titlecommand",
+ ["de"]="titlecommand",
+ ["en"]="titlecommand",
+ ["fr"]="titlecommand",
+ ["it"]="titlecommand",
+ ["nl"]="titelcommando",
+ ["pe"]="فرمان‌عنوان",
+ ["ro"]="titlecommand",
+ },
+ ["titledistance"]={
+ ["cs"]="vzdalenosttitulek",
+ ["de"]="titelabstand",
+ ["en"]="titledistance",
+ ["fr"]="distancetitre",
+ ["it"]="distanzatitolo",
+ ["nl"]="titelafstand",
+ ["pe"]="فاصله‌عنوان",
+ ["ro"]="distantatitlu",
+ },
+ ["titleleft"]={
+ ["cs"]="titleleft",
+ ["de"]="titleleft",
+ ["en"]="titleleft",
+ ["fr"]="titleleft",
+ ["it"]="titleleft",
+ ["nl"]="titellinks",
+ ["pe"]="عنوان‌چپ",
+ ["ro"]="titleleft",
+ },
+ ["titleright"]={
+ ["cs"]="titleright",
+ ["de"]="titleright",
+ ["en"]="titleright",
+ ["fr"]="titleright",
+ ["it"]="titleright",
+ ["nl"]="titelrechts",
+ ["pe"]="عنوان‌راست",
+ ["ro"]="titleright",
+ },
+ ["titlestyle"]={
+ ["cs"]="styltitulek",
+ ["de"]="titelstil",
+ ["en"]="titlestyle",
+ ["fr"]="styletitre",
+ ["it"]="stiletitolo",
+ ["nl"]="titelletter",
+ ["pe"]="سبک‌عنوان",
+ ["ro"]="stiltitlu",
+ },
+ ["to"]={
+ ["cs"]="na",
+ ["de"]="zu",
+ ["en"]="to",
+ ["fr"]="vers",
+ ["it"]="verso",
+ ["nl"]="aan",
+ ["pe"]="به",
+ ["ro"]="catre",
+ },
+ ["tolerance"]={
+ ["cs"]="tolerance",
+ ["de"]="toleranz",
+ ["en"]="tolerance",
+ ["fr"]="tolerance",
+ ["it"]="tolleranza",
+ ["nl"]="tolerantie",
+ ["pe"]="بردباری",
+ ["ro"]="toleranta",
+ },
+ ["top"]={
+ ["cs"]="vrsek",
+ ["de"]="oben",
+ ["en"]="top",
+ ["fr"]="sup",
+ ["it"]="cima",
+ ["nl"]="boven",
+ ["pe"]="بالا",
+ ["ro"]="sus",
+ },
+ ["topdistance"]={
+ ["cs"]="vzdalenostvrsku",
+ ["de"]="obenabstand",
+ ["en"]="topdistance",
+ ["fr"]="distancesup",
+ ["it"]="distanzacima",
+ ["nl"]="bovenafstand",
+ ["pe"]="فاصله‌بالا",
+ ["ro"]="distantasus",
+ },
+ ["topframe"]={
+ ["cs"]="rameceknahore",
+ ["de"]="obenrahmen",
+ ["en"]="topframe",
+ ["fr"]="cadresup",
+ ["it"]="cornicecima",
+ ["nl"]="bovenkader",
+ ["pe"]="قالب‌راست",
+ ["ro"]="framesus",
+ },
+ ["topoffset"]={
+ ["cs"]="offsetvrsku",
+ ["de"]="obenoffset",
+ ["en"]="topoffset",
+ ["fr"]="decalagesup",
+ ["it"]="offsetcima",
+ ["nl"]="bovenoffset",
+ ["pe"]="آفست‌بالا",
+ ["ro"]="offsetsus",
+ },
+ ["topspace"]={
+ ["cs"]="svrchnimezera",
+ ["de"]="kopfspatium",
+ ["en"]="topspace",
+ ["fr"]="espacesup",
+ ["it"]="spaziocima",
+ ["nl"]="kopwit",
+ ["pe"]="فضای‌بالا",
+ ["ro"]="spatiusus",
+ },
+ ["topstate"]={
+ ["cs"]="statusvrsku",
+ ["de"]="statusoben",
+ ["en"]="topstate",
+ ["fr"]="etatsup",
+ ["it"]="statocima",
+ ["nl"]="bovenstatus",
+ ["pe"]="وضعیت‌بالا",
+ ["ro"]="staresus",
+ },
+ ["type"]={
+ ["cs"]="typ",
+ ["de"]="typ",
+ ["en"]="type",
+ ["fr"]="type",
+ ["it"]="type",
+ ["nl"]="type",
+ ["pe"]="تایپ",
+ ["ro"]="type",
+ },
+ ["unit"]={
+ ["cs"]="jednotka",
+ ["de"]="einheit",
+ ["en"]="unit",
+ ["fr"]="unite",
+ ["it"]="unita",
+ ["nl"]="eenheid",
+ ["pe"]="واحد",
+ ["ro"]="unitate",
+ },
+ ["unknownreference"]={
+ ["cs"]="neznamyodkaz",
+ ["de"]="unbekantereferenz",
+ ["en"]="unknownreference",
+ ["fr"]="referenceinconnue",
+ ["it"]="riferimentoingoto",
+ ["nl"]="onbekendeverwijzing",
+ ["pe"]="مرجع‌ناشناس",
+ ["ro"]="referintanecunoscuta",
+ },
+ ["urlalternative"]={
+ ["cs"]="urlalternativa",
+ ["de"]="urlalternative",
+ ["en"]="urlalternative",
+ ["fr"]="alternativeurl",
+ ["it"]="alternativaurl",
+ ["nl"]="urlvariant",
+ ["pe"]="urlalternative",
+ ["ro"]="urlalternativ",
+ },
+ ["urlspace"]={
+ ["cs"]="prostorurl",
+ ["de"]="urlspatium",
+ ["en"]="urlspace",
+ ["fr"]="espaceurl",
+ ["it"]="spaziourl",
+ ["nl"]="urlspatie",
+ ["pe"]="urlspace",
+ ["ro"]="spatiuurl",
+ },
+ ["validate"]={
+ ["cs"]="validovat",
+ ["de"]="validieren",
+ ["en"]="validate",
+ ["fr"]="valider",
+ ["it"]="verifica",
+ ["nl"]="valideer",
+ ["pe"]="تاییداعتبار",
+ ["ro"]="verifica",
+ },
+ ["vcommand"]={
+ ["cs"]="vprikaz",
+ ["de"]="vbefehl",
+ ["en"]="vcommand",
+ ["fr"]="vcommande",
+ ["it"]="vcomando",
+ ["nl"]="vcommando",
+ ["pe"]="vcommand",
+ ["ro"]="comandav",
+ },
+ ["veroffset"]={
+ ["cs"]="offsethlavicky",
+ ["de"]="kopfoffset",
+ ["en"]="veroffset",
+ ["fr"]="veroffset",
+ ["it"]="veroffset",
+ ["nl"]="kopoffset",
+ ["pe"]="آفست‌عم",
+ ["ro"]="veroffset",
+ },
+ ["vfil"]={
+ ["cs"]="vfil",
+ ["de"]="vfil",
+ ["en"]="vfil",
+ ["fr"]="vfil",
+ ["it"]="vfil",
+ ["nl"]="vfil",
+ ["pe"]="vfil",
+ ["ro"]="vfil",
+ },
+ ["voffset"]={
+ ["cs"]="voffset",
+ ["de"]="voffset",
+ ["en"]="voffset",
+ ["fr"]="voffset",
+ ["it"]="voffset",
+ ["nl"]="voffset",
+ ["pe"]="آفست‌ع",
+ ["ro"]="voffset",
+ },
+ ["way"]={
+ ["cs"]="zpusob",
+ ["de"]="art",
+ ["en"]="way",
+ ["fr"]="mode",
+ ["it"]="modo",
+ ["nl"]="wijze",
+ ["pe"]="راه",
+ ["ro"]="mod",
+ },
+ ["wfactor"]={
+ ["cs"]="sfaktor",
+ ["de"]="bfaktor",
+ ["en"]="wfactor",
+ ["fr"]="facteurlargeur",
+ ["it"]="wfactor",
+ ["nl"]="bfactor",
+ ["pe"]="wfactor",
+ ["ro"]="factorw",
+ },
+ ["white"]={
+ ["cs"]="bily",
+ ["de"]="weiss",
+ ["en"]="white",
+ ["fr"]="blanc",
+ ["it"]="bianco",
+ ["nl"]="wit",
+ ["pe"]="سفید",
+ ["ro"]="alb",
+ },
+ ["width"]={
+ ["cs"]="sirka",
+ ["de"]="breite",
+ ["en"]="width",
+ ["fr"]="largeur",
+ ["it"]="ampiezza",
+ ["nl"]="breedte",
+ ["pe"]="عرض",
+ ["ro"]="latime",
+ },
+ ["xfactor"]={
+ ["cs"]="xfaktor",
+ ["de"]="xfaktor",
+ ["en"]="xfactor",
+ ["fr"]="xfactor",
+ ["it"]="xfactor",
+ ["nl"]="xfactor",
+ ["pe"]="فاکتورایکس",
+ ["ro"]="xfactor",
+ },
+ ["xmax"]={
+ ["cs"]="xmax",
+ ["de"]="xmax",
+ ["en"]="xmax",
+ ["fr"]="xmax",
+ ["it"]="xmax",
+ ["nl"]="xmax",
+ ["pe"]="xmax",
+ ["ro"]="xmax",
+ },
+ ["xoffset"]={
+ ["cs"]="xoffset",
+ ["de"]="xoffset",
+ ["en"]="xoffset",
+ ["fr"]="xoffset",
+ ["it"]="xoffset",
+ ["nl"]="xoffset",
+ ["pe"]="آفست‌ایکس",
+ ["ro"]="xoffset",
+ },
+ ["xscale"]={
+ ["cs"]="xmeritko",
+ ["de"]="xformat",
+ ["en"]="xscale",
+ ["fr"]="xscale",
+ ["it"]="xscale",
+ ["nl"]="xschaal",
+ ["pe"]="مقیاس‌ایکس",
+ ["ro"]="xscala",
+ },
+ ["xstep"]={
+ ["cs"]="xkrok",
+ ["de"]="xschritt",
+ ["en"]="xstep",
+ ["fr"]="xstep",
+ ["it"]="xstep",
+ ["nl"]="xstap",
+ ["pe"]="گام‌ایکس",
+ ["ro"]="xstep",
+ },
+ ["yfactor"]={
+ ["cs"]="yfaktor",
+ ["de"]="yfaktor",
+ ["en"]="yfactor",
+ ["fr"]="yfactor",
+ ["it"]="yfactor",
+ ["nl"]="yfactor",
+ ["pe"]="فاکتوروای",
+ ["ro"]="yfactor",
+ },
+ ["ymax"]={
+ ["cs"]="ymax",
+ ["de"]="ymax",
+ ["en"]="ymax",
+ ["fr"]="ymax",
+ ["it"]="ymax",
+ ["nl"]="ymax",
+ ["pe"]="ymax",
+ ["ro"]="ymax",
+ },
+ ["yoffset"]={
+ ["cs"]="yoffset",
+ ["de"]="yoffset",
+ ["en"]="yoffset",
+ ["fr"]="yoffset",
+ ["it"]="yoffset",
+ ["nl"]="yoffset",
+ ["pe"]="آفست‌وای",
+ ["ro"]="yoffset",
+ },
+ ["yscale"]={
+ ["cs"]="ymeritko",
+ ["de"]="yformat",
+ ["en"]="yscale",
+ ["fr"]="yscale",
+ ["it"]="yscale",
+ ["nl"]="yschaal",
+ ["pe"]="مقیاس‌وای",
+ ["ro"]="yscala",
+ },
+ ["ystep"]={
+ ["cs"]="ykrok",
+ ["de"]="yschritt",
+ ["en"]="ystep",
+ ["fr"]="ystep",
+ ["it"]="ystep",
+ ["nl"]="ystap",
+ ["pe"]="گام‌وای",
+ ["ro"]="ystep",
+ },
+ },
+ ["elements"]={
+ ["answerlines"]={
+ ["cs"]="answerlines",
+ ["de"]="answerlines",
+ ["en"]="answerlines",
+ ["fr"]="answerlines",
+ ["it"]="answerlines",
+ ["nl"]="antwoordregels",
+ ["pe"]="answerlines",
+ ["ro"]="answerlines",
+ },
+ ["answerspace"]={
+ ["cs"]="answerspace",
+ ["de"]="answerspace",
+ ["en"]="answerspace",
+ ["fr"]="answerspace",
+ ["it"]="answerspace",
+ ["nl"]="antwoordruimte",
+ ["pe"]="answerspace",
+ ["ro"]="answerspace",
+ },
+ ["begin"]={
+ ["cs"]="zacatek",
+ ["de"]="anfang",
+ ["en"]="begin",
+ ["fr"]="debut",
+ ["it"]="inizio",
+ ["nl"]="beginvan",
+ ["pe"]="عنصرها",
+ ["ro"]="inceput",
+ },
+ ["complete"]={
+ ["cs"]="uplny",
+ ["de"]="vollende",
+ ["en"]="complete",
+ ["fr"]="complete",
+ ["it"]="completo",
+ ["nl"]="volledige",
+ ["pe"]="کامل",
+ ["ro"]="complet",
+ },
+ ["coupled"]={
+ ["cs"]="propojene",
+ ["de"]="verknuepft",
+ ["en"]="coupled",
+ ["fr"]="couple",
+ ["it"]="accoppiato",
+ ["nl"]="gekoppelde",
+ ["pe"]="مزدوج",
+ ["ro"]="cuplat",
+ },
+ ["currentlocal"]={
+ ["cs"]="aktualnelokalni",
+ ["de"]="aktuelllokal",
+ ["en"]="currentlocal",
+ ["fr"]="localcourant",
+ ["it"]="correntelocale",
+ ["nl"]="huidigelokale",
+ ["pe"]="موضعی‌جاری",
+ ["ro"]="localcurent",
+ },
+ ["emptyone"]={
+ ["cs"]="leer",
+ ["de"]="vuoto",
+ ["en"]="empty",
+ ["fr"]="vide",
+ ["it"]="prazdne",
+ ["nl"]="leeg",
+ ["pe"]="یک‌خالی",
+ ["ro"]="gol",
+ },
+ ["emptytwo"]={
+ ["cs"]="prazdne",
+ ["de"]="leer",
+ ["en"]="empty",
+ ["fr"]="vide",
+ ["it"]="vuoti",
+ ["nl"]="lege",
+ ["pe"]="دوخالی",
+ ["ro"]="gol",
+ },
+ ["end"]={
+ ["cs"]="konec",
+ ["de"]="ende",
+ ["en"]="end",
+ ["fr"]="fin",
+ ["it"]="fine",
+ ["nl"]="eindvan",
+ ["pe"]="انتها",
+ ["ro"]="sfarsit",
+ },
+ ["endsetup"]={
+ ["cs"]="",
+ ["de"]="ein",
+ ["en"]="",
+ ["fr"]="",
+ ["it"]="",
+ ["nl"]="in",
+ ["pe"]="انتهای‌بارگذاری",
+ ["ro"]="",
+ },
+ ["get"]={
+ ["cs"]="ziskat",
+ ["de"]="get",
+ ["en"]="get",
+ ["fr"]="obtient",
+ ["it"]="prendi",
+ ["nl"]="haal",
+ ["pe"]="بگیر",
+ ["ro"]="get",
+ },
+ ["increment"]={
+ ["cs"]="zvysit",
+ ["de"]="erhoehen",
+ ["en"]="increment",
+ ["fr"]="incremente",
+ ["it"]="incrementa",
+ ["nl"]="verhoog",
+ ["pe"]="افزایش",
+ ["ro"]="increment",
+ },
+ ["list"]={
+ ["cs"]="seznam",
+ ["de"]="auflisten",
+ ["en"]="list",
+ ["fr"]="liste",
+ ["it"]="elenco",
+ ["nl"]="lijst",
+ ["pe"]="لیست",
+ ["ro"]="lista",
+ },
+ ["listof"]={
+ ["cs"]="seznam",
+ ["de"]="auflistenvon",
+ ["en"]="listof",
+ ["fr"]="listede",
+ ["it"]="elencodi",
+ ["nl"]="lijstmet",
+ ["pe"]="لیست‌از",
+ ["ro"]="listade",
+ },
+ ["load"]={
+ ["cs"]="nacist",
+ ["de"]="laden",
+ ["en"]="load",
+ ["fr"]="charge",
+ ["it"]="carica",
+ ["nl"]="laad",
+ ["pe"]="بارگذاشتن",
+ ["ro"]="incarca",
+ },
+ ["local"]={
+ ["cs"]="lokalne",
+ ["de"]="lokal",
+ ["en"]="local",
+ ["fr"]="local",
+ ["it"]="locale",
+ ["nl"]="lokale",
+ ["pe"]="موضعی",
+ ["ro"]="local",
+ },
+ ["makeup"]={
+ ["cs"]="zlom",
+ ["de"]="umbruch",
+ ["en"]="makeup",
+ ["fr"]="makeup",
+ ["it"]="makeup",
+ ["nl"]="opmaak",
+ ["pe"]="آرایش",
+ ["ro"]="makeup",
+ },
+ ["next"]={
+ ["cs"]="dalsi",
+ ["de"]="folgende",
+ ["en"]="next",
+ ["fr"]="suivant",
+ ["it"]="successivo",
+ ["nl"]="volgende",
+ ["pe"]="بعدی",
+ ["ro"]="urmatorul",
+ },
+ ["place"]={
+ ["cs"]="umisti",
+ ["de"]="platziere",
+ ["en"]="place",
+ ["fr"]="place",
+ ["it"]="metti",
+ ["nl"]="plaats",
+ ["pe"]="مکان",
+ ["ro"]="pune",
+ },
+ ["previous"]={
+ ["cs"]="predchozi",
+ ["de"]="vorige",
+ ["en"]="previous",
+ ["fr"]="precedent",
+ ["it"]="precedente",
+ ["nl"]="vorige",
+ ["pe"]="قبلی",
+ ["ro"]="precedent",
+ },
+ ["previouslocal"]={
+ ["cs"]="predchozilokalni",
+ ["de"]="voriglokal",
+ ["en"]="previouslocal",
+ ["fr"]="localprecedent",
+ ["it"]="precedentelocale",
+ ["nl"]="vorigelokale",
+ ["pe"]="موضع‌قبلی",
+ ["ro"]="precedentlocal",
+ },
+ ["reserve"]={
+ ["cs"]="rezervovat",
+ ["de"]="reservieren",
+ ["en"]="reserve",
+ ["fr"]="reserver",
+ ["it"]="riserva",
+ ["nl"]="reserveer",
+ ["pe"]="رزرو",
+ ["ro"]="rezervat",
+ },
+ ["see"]={
+ ["cs"]="viz",
+ ["de"]="sieh",
+ ["en"]="see",
+ ["fr"]="voit",
+ ["it"]="vedi",
+ ["nl"]="zie",
+ ["pe"]="ببینید",
+ ["ro"]="vezi",
+ },
+ ["setup"]={
+ ["cs"]="nastaveni",
+ ["de"]="stelle",
+ ["en"]="setup",
+ ["fr"]="regle",
+ ["it"]="imposta",
+ ["nl"]="stel",
+ ["pe"]="بارگذاری",
+ ["ro"]="setare",
+ },
+ ["start"]={
+ ["cs"]="start",
+ ["de"]="start",
+ ["en"]="start",
+ ["fr"]="demarre",
+ ["it"]="inizia",
+ ["nl"]="start",
+ ["pe"]="شروع",
+ ["ro"]="start",
+ },
+ ["stop"]={
+ ["cs"]="stop",
+ ["de"]="stop",
+ ["en"]="stop",
+ ["fr"]="stoppe",
+ ["it"]="termina",
+ ["nl"]="stop",
+ ["pe"]="پایان",
+ ["ro"]="stop",
+ },
+ ["text"]={
+ ["cs"]="text",
+ ["de"]="text",
+ ["en"]="text",
+ ["fr"]="texte",
+ ["it"]="testo",
+ ["nl"]="tekst",
+ ["pe"]="متن",
+ ["ro"]="text",
+ },
+ ["type"]={
+ ["cs"]="opis",
+ ["de"]="type",
+ ["en"]="type",
+ ["fr"]="type",
+ ["it"]="type",
+ ["nl"]="type",
+ ["pe"]="تایپ",
+ ["ro"]="type",
+ },
+ },
+ ["variables"]={
+ ["Addition"]={
+ ["cs"]="Pridavek",
+ ["de"]="Zusatz",
+ ["en"]="Addition",
+ ["fr"]="Ajout",
+ ["it"]="Aggiunta",
+ ["nl"]="Toevoeging",
+ ["pe"]="جمع",
+ ["ro"]="Adaugare",
+ },
+ ["Balloon"]={
+ ["cs"]="Bublinka",
+ ["de"]="Ballon",
+ ["en"]="Balloon",
+ ["fr"]="Ballon",
+ ["it"]="Pallone",
+ ["nl"]="Ballon",
+ ["pe"]="بادکنک",
+ ["ro"]="Balon",
+ },
+ ["Character"]={
+ ["cs"]="Pismeno",
+ ["de"]="Buchstabe",
+ ["en"]="Character",
+ ["fr"]="Caratere",
+ ["it"]="Lettera",
+ ["nl"]="Letter",
+ ["pe"]="Character",
+ ["ro"]="Caracter",
+ },
+ ["Characters"]={
+ ["cs"]="Pismena",
+ ["de"]="Buchstaben",
+ ["en"]="Characters",
+ ["fr"]="Caracteres",
+ ["it"]="Lettere",
+ ["nl"]="Letters",
+ ["pe"]="Characters",
+ ["ro"]="Caractere",
+ },
+ ["CloseDocument"]={
+ ["cs"]="ZavritDokument",
+ ["de"]="SchliesseDokument",
+ ["en"]="CloseDocument",
+ ["fr"]="FermeDocument",
+ ["it"]="ChiudiDocumento",
+ ["nl"]="SluitDocument",
+ ["pe"]="بستن‌نوشتار",
+ ["ro"]="InchideDocument",
+ },
+ ["ExitViewer"]={
+ ["cs"]="UkoncitProhlizec",
+ ["de"]="BeendeViewer",
+ ["en"]="ExitViewer",
+ ["fr"]="SortVisualisateur",
+ ["it"]="EsciVisualizzatore",
+ ["nl"]="VerlaatViewer",
+ ["pe"]="خروج‌نمایشگر",
+ ["ro"]="IesireVizualizator",
+ },
+ ["FirstPage"]={
+ ["cs"]="PrvniStrana",
+ ["de"]="ErsteSeite",
+ ["en"]="FirstPage",
+ ["fr"]="PremierePage",
+ ["it"]="PrimaPagina",
+ ["nl"]="EerstePagina",
+ ["pe"]="صفحه‌اول",
+ ["ro"]="PrimaPagina",
+ },
+ ["FitHeight"]={
+ ["cs"]="FitHeight",
+ ["de"]="HoehePassend",
+ ["en"]="FitHeight",
+ ["fr"]="AjusteHauteur",
+ ["it"]="FitHeight",
+ ["nl"]="HoogtePassend",
+ ["pe"]="پرکردن‌ارتفاع",
+ ["ro"]="AjustatInaltime",
+ },
+ ["FitWidth"]={
+ ["cs"]="FitWidth",
+ ["de"]="BreitePassend",
+ ["en"]="FitWidth",
+ ["fr"]="AjusteLargeur",
+ ["it"]="FitWidth",
+ ["nl"]="BreedtePassend",
+ ["pe"]="پرکردن‌عرض",
+ ["ro"]="AjustatLatime",
+ },
+ ["GotoPage"]={
+ ["cs"]="JdiNaStranku",
+ ["de"]="GotoPage",
+ ["en"]="GotoPage",
+ ["fr"]="VaalaPage",
+ ["it"]="VaiAPagina",
+ ["nl"]="GaNaarPagina",
+ ["pe"]="برو‌به‌صفحه",
+ ["ro"]="LaPagina",
+ },
+ ["Greek"]={
+ ["cs"]="Recky",
+ ["de"]="Griechisch",
+ ["en"]="Greek",
+ ["fr"]="Grec",
+ ["it"]="Greco",
+ ["nl"]="Grieks",
+ ["pe"]="یونانی",
+ ["ro"]="Grec",
+ },
+ ["Help"]={
+ ["cs"]="Napoveda",
+ ["de"]="Hilfe",
+ ["en"]="Help",
+ ["fr"]="Aide",
+ ["it"]="Aiuto",
+ ["nl"]="Help",
+ ["pe"]="کمک",
+ ["ro"]="Ajutor",
+ },
+ ["HideField"]={
+ ["cs"]="SkryjPole",
+ ["de"]="VerbergeFeld",
+ ["en"]="HideField",
+ ["fr"]="CacheChamp",
+ ["it"]="NascondiCampo",
+ ["nl"]="VerbergVeld",
+ ["pe"]="پنهان‌میدان",
+ ["ro"]="AscundeCamp",
+ },
+ ["HideLayer"]={
+ ["cs"]="HideLayer",
+ ["de"]="HideLayer",
+ ["en"]="HideLayer",
+ ["fr"]="CacheCalque",
+ ["it"]="HideLayer",
+ ["nl"]="VerbergLaag",
+ ["pe"]="پنهان‌لایه",
+ ["ro"]="HideLayer",
+ },
+ ["Key"]={
+ ["cs"]="Klavesa",
+ ["de"]="Schluessel",
+ ["en"]="Key",
+ ["fr"]="Cle",
+ ["it"]="Tasto",
+ ["nl"]="Sleutel",
+ ["pe"]="کلید",
+ ["ro"]="Cheie",
+ },
+ ["LastPage"]={
+ ["cs"]="PosledniStrana",
+ ["de"]="LetzteSeite",
+ ["en"]="LastPage",
+ ["fr"]="DernierePage",
+ ["it"]="UltimaPagina",
+ ["nl"]="LaatstePagina",
+ ["pe"]="صفحه‌آخر",
+ ["ro"]="UltimaPagina",
+ },
+ ["LoadForm"]={
+ ["cs"]="NacistFormular",
+ ["de"]="LadeFormular",
+ ["en"]="LoadForm",
+ ["fr"]="ChargeForm",
+ ["it"]="CaricaForm",
+ ["nl"]="LaadFormulier",
+ ["pe"]="بارگذاشتن‌فرم",
+ ["ro"]="IncarcaFormular",
+ },
+ ["MONTH"]={
+ ["cs"]="MESIC",
+ ["de"]="MONAT",
+ ["en"]="MONTH",
+ ["fr"]="MOIS",
+ ["it"]="MESE",
+ ["nl"]="MAAND",
+ ["pe"]="ماه",
+ ["ro"]="LUNA",
+ },
+ ["New"]={
+ ["cs"]="Novy",
+ ["de"]="Neu",
+ ["en"]="New",
+ ["fr"]="Nouveau",
+ ["it"]="Nuovo",
+ ["nl"]="Nieuw",
+ ["pe"]="جدید",
+ ["ro"]="Nou",
+ },
+ ["NextJump"]={
+ ["cs"]="NasledujiciSkok",
+ ["de"]="NaechsterSprung",
+ ["en"]="NextJump",
+ ["fr"]="SautSuivant",
+ ["it"]="SaltoSuccessivo",
+ ["nl"]="VolgendeSprong",
+ ["pe"]="پرش‌بعدی",
+ ["ro"]="SaltUrmator",
+ },
+ ["NextPage"]={
+ ["cs"]="DalsiStrana",
+ ["de"]="FolgendeSeite",
+ ["en"]="NextPage",
+ ["fr"]="PageSuivante",
+ ["it"]="PaginaSuccessiva",
+ ["nl"]="VolgendePagina",
+ ["pe"]="صفحه‌بعدی",
+ ["ro"]="PaginaUrmatoare",
+ },
+ ["Numbers"]={
+ ["cs"]="Cisla",
+ ["de"]="Ziffern",
+ ["en"]="Numbers",
+ ["fr"]="Numeros",
+ ["it"]="Numeri",
+ ["nl"]="Cijfers",
+ ["pe"]="شماره‌ها",
+ ["ro"]="Numere",
+ },
+ ["OpenNamedDocument"]={
+ ["cs"]="OpenNamedDocument",
+ ["de"]="OpenNamedDocument",
+ ["en"]="OpenNamedDocument",
+ ["fr"]="OuvreDocumentNomme",
+ ["it"]="OpenNamedDocument",
+ ["nl"]="OpenDocumentOpNaam",
+ ["pe"]="بازکردن‌نوشتار‌ذخیره‌شده",
+ ["ro"]="OpenNamedDocument",
+ },
+ ["Paragraph"]={
+ ["cs"]="Odstavec",
+ ["de"]="Absatz",
+ ["en"]="Paragraph",
+ ["fr"]="Paragraphe",
+ ["it"]="Capoverso",
+ ["nl"]="Paragraaf",
+ ["pe"]="پاراگراف",
+ ["ro"]="Paragraf",
+ },
+ ["PauseMovie"]={
+ ["cs"]="PozastavitFilm",
+ ["de"]="PauseFilm",
+ ["en"]="PauseMovie",
+ ["fr"]="PauseFilm",
+ ["it"]="PausaFilm",
+ ["nl"]="PauzeerFilm",
+ ["pe"]="ایست‌فیلم",
+ ["ro"]="PauzaFilm",
+ },
+ ["PauseRendering"]={
+ ["cs"]="PauseRendering",
+ ["de"]="PauseRendering",
+ ["en"]="PauseRendering",
+ ["fr"]="PauseRendering",
+ ["it"]="PauseRendering",
+ ["nl"]="PauzeerRendering",
+ ["pe"]="توقف‌تعبیر",
+ ["ro"]="PauseRendering",
+ },
+ ["PauseSound"]={
+ ["cs"]="PozastavitZvuk",
+ ["de"]="PauseSound",
+ ["en"]="PauseSound",
+ ["fr"]="PauseSon",
+ ["it"]="PausaSuono",
+ ["nl"]="PauzeerGeluid",
+ ["pe"]="ایست‌صدا",
+ ["ro"]="PauzaSunet",
+ },
+ ["PreviousJump"]={
+ ["cs"]="PredchoziSkok",
+ ["de"]="VorigerSprung",
+ ["en"]="PreviousJump",
+ ["fr"]="SautPrecedent",
+ ["it"]="SaltoPrecedente",
+ ["nl"]="VorigeSprong",
+ ["pe"]="پرش‌قبلی",
+ ["ro"]="SaltPrecedent",
+ },
+ ["PreviousPage"]={
+ ["cs"]="PredchoziStrana",
+ ["de"]="VorigeSeite",
+ ["en"]="PreviousPage",
+ ["fr"]="PagePrecedente",
+ ["it"]="PaginaPrecedente",
+ ["nl"]="VorigePagina",
+ ["pe"]="صفحه‌قبلی",
+ ["ro"]="PaginaPrecedenta",
+ },
+ ["PrintDocument"]={
+ ["cs"]="VytisknoutDokument",
+ ["de"]="DruckeDokument",
+ ["en"]="PrintDocument",
+ ["fr"]="ImprimeDocument",
+ ["it"]="StampaDocumento",
+ ["nl"]="PrintDocument",
+ ["pe"]="چاپ‌نوشتار",
+ ["ro"]="TiparesteDocument",
+ },
+ ["Query"]={
+ ["cs"]="Query",
+ ["de"]="Query",
+ ["en"]="Query",
+ ["fr"]="Query",
+ ["it"]="Richiesta",
+ ["nl"]="RaadpleegDocument",
+ ["pe"]="پرسش",
+ ["ro"]="Query",
+ },
+ ["QueryAgain"]={
+ ["cs"]="QueryAgain",
+ ["de"]="QueryAgain",
+ ["en"]="QueryAgain",
+ ["fr"]="QueryAgain",
+ ["it"]="RinnovaRichiesta",
+ ["nl"]="HerhaalRaadplegen",
+ ["pe"]="پرسش‌دوباره",
+ ["ro"]="QueryAgain",
+ },
+ ["ResetForm"]={
+ ["cs"]="ResetFormulare",
+ ["de"]="ZuruecksetzenFormular",
+ ["en"]="ResetForm",
+ ["fr"]="RazForm",
+ ["it"]="ReimpostaForm",
+ ["nl"]="ResetFormulier",
+ ["pe"]="دوباره‌نشانی‌فرم",
+ ["ro"]="ResetareFormular",
+ },
+ ["ResumeMovie"]={
+ ["cs"]="PokracovatFilm",
+ ["de"]="FortsetzenFilm",
+ ["en"]="ResumeMovie",
+ ["fr"]="ReprendFilm",
+ ["it"]="RiprendiFilm",
+ ["nl"]="HervatFilm",
+ ["pe"]="ادامه‌فیلم",
+ ["ro"]="RepornesteFilm",
+ },
+ ["ResumeRendering"]={
+ ["cs"]="ResumeRendering",
+ ["de"]="ResumeRendering",
+ ["en"]="ResumeRendering",
+ ["fr"]="ResumeRendering",
+ ["it"]="ResumeRendering",
+ ["nl"]="HervatRendering",
+ ["pe"]="ادامه‌تعبیر",
+ ["ro"]="ResumeRendering",
+ },
+ ["ResumeSound"]={
+ ["cs"]="PokracovatZvuk",
+ ["de"]="ResumeSound",
+ ["en"]="ResumeSound",
+ ["fr"]="ReprendSon",
+ ["it"]="RiprendiSuono",
+ ["nl"]="HervatGeluid",
+ ["pe"]="ادامه‌صدا",
+ ["ro"]="RepornesteSunet",
+ },
+ ["Romannumerals"]={
+ ["cs"]="Rimskecislice",
+ ["de"]="Roemischezahlen",
+ ["en"]="Romannumerals",
+ ["fr"]="Chiffresromains",
+ ["it"]="Numeriromani",
+ ["nl"]="Romeins",
+ ["pe"]="اعداد‌بزرگ‌لاتین",
+ ["ro"]="Numereromane",
+ },
+ ["SaveDocument"]={
+ ["cs"]="UlozitDokument",
+ ["de"]="SpeichereDokument",
+ ["en"]="SaveDocument",
+ ["fr"]="SauvegardeDocument",
+ ["it"]="SalvaDocumento",
+ ["nl"]="BewaarDocument",
+ ["pe"]="ذخیره‌نوشتار",
+ ["ro"]="SalvareDocument",
+ },
+ ["SaveForm"]={
+ ["cs"]="UlozitFormular",
+ ["de"]="SpeicheFormular",
+ ["en"]="SaveForm",
+ ["fr"]="SauvegardeForm",
+ ["it"]="SalvaForm",
+ ["nl"]="BewaarFormulier",
+ ["pe"]="ذخیره‌فرم",
+ ["ro"]="SalveazaFormular",
+ },
+ ["SaveNamedDocument"]={
+ ["cs"]="SaveNamedDocument",
+ ["de"]="SaveNamedDocument",
+ ["en"]="SaveNamedDocument",
+ ["fr"]="SauvegardeDocumentNomme",
+ ["it"]="SaveNamedDocument",
+ ["nl"]="BewaarDocumentOpNaam",
+ ["pe"]="ذخیره‌نوشتار‌بانام",
+ ["ro"]="SaveNamedDocument",
+ },
+ ["SearchAgain"]={
+ ["cs"]="HledatZnovu",
+ ["de"]="WeiterSuchen",
+ ["en"]="SearchAgain",
+ ["fr"]="RechercheSuivant",
+ ["it"]="CercaAncora",
+ ["nl"]="HerhaalZoeken",
+ ["pe"]="جستجوی‌دوباره",
+ ["ro"]="CautaDinNou",
+ },
+ ["SearchDocument"]={
+ ["cs"]="ProhledatDokument",
+ ["de"]="DokumentDurchsuchen",
+ ["en"]="SearchDocument",
+ ["fr"]="RechercheDocument",
+ ["it"]="CercaDocumento",
+ ["nl"]="DoorzoekDocument",
+ ["pe"]="جستجوی‌نوشتار",
+ ["ro"]="CautaDocument",
+ },
+ ["ShowBookmarks"]={
+ ["cs"]="UkazZalozky",
+ ["de"]="ShowBookmarks",
+ ["en"]="ShowBookmarks",
+ ["fr"]="ShowBookmarks",
+ ["it"]="MostraSegnalibro",
+ ["nl"]="ShowBookmarks",
+ ["pe"]="نمایش‌چوبخط",
+ ["ro"]="ShowBookmarks",
+ },
+ ["ShowField"]={
+ ["cs"]="UkazPole",
+ ["de"]="ZeigeFeld",
+ ["en"]="ShowField",
+ ["fr"]="MontreChamp",
+ ["it"]="MostraCampo",
+ ["nl"]="ToonVeld",
+ ["pe"]="نمایش‌میدان",
+ ["ro"]="AfiseazaCamp",
+ },
+ ["ShowThumbs"]={
+ ["cs"]="UkazNahledy",
+ ["de"]="ShowThumbs",
+ ["en"]="ShowThumbs",
+ ["fr"]="ShowThumbs",
+ ["it"]="MostraThumbs",
+ ["nl"]="ShowThumbs",
+ ["pe"]="نمایش‌شصت",
+ ["ro"]="ShowThumbs",
+ },
+ ["StartMovie"]={
+ ["cs"]="SpustitFilm",
+ ["de"]="StartFilm",
+ ["en"]="StartMovie",
+ ["fr"]="DemarreFilm",
+ ["it"]="IniziaFilm",
+ ["nl"]="StartFilm",
+ ["pe"]="شروع‌فیلم",
+ ["ro"]="StartFilm",
+ },
+ ["StartRendering"]={
+ ["cs"]="StartRendering",
+ ["de"]="StartRendering",
+ ["en"]="StartRendering",
+ ["fr"]="StartRendering",
+ ["it"]="StartRendering",
+ ["nl"]="StartRendering",
+ ["pe"]="شروع‌تعبیر",
+ ["ro"]="StartRendering",
+ },
+ ["StartSound"]={
+ ["cs"]="StartZvuk",
+ ["de"]="StartSound",
+ ["en"]="StartSound",
+ ["fr"]="DemarreSon",
+ ["it"]="IniziaSuono",
+ ["nl"]="StartGeluid",
+ ["pe"]="شروع‌صدا",
+ ["ro"]="StartSunet",
+ },
+ ["StopMovie"]={
+ ["cs"]="ZastavitFilm",
+ ["de"]="StopFilm",
+ ["en"]="StopMovie",
+ ["fr"]="StoppeFilm",
+ ["it"]="FermaFilm",
+ ["nl"]="StopFilm",
+ ["pe"]="پایان‌فیلم",
+ ["ro"]="StopFilm",
+ },
+ ["StopRendering"]={
+ ["cs"]="StopRendering",
+ ["de"]="StopRendering",
+ ["en"]="StopRendering",
+ ["fr"]="StopRendering",
+ ["it"]="StopRendering",
+ ["nl"]="StopRendering",
+ ["pe"]="پایان‌تعبیر",
+ ["ro"]="StopRendering",
+ },
+ ["StopSound"]={
+ ["cs"]="StopZvuk",
+ ["de"]="StopSound",
+ ["en"]="StopSound",
+ ["fr"]="StoppeSon",
+ ["it"]="FermaSuono",
+ ["nl"]="StopGeluid",
+ ["pe"]="پایان‌صدا",
+ ["ro"]="StopSunet",
+ },
+ ["SubmitForm"]={
+ ["cs"]="PoslatFormular",
+ ["de"]="VersendeFormular",
+ ["en"]="SubmitForm",
+ ["fr"]="SoumettreForm",
+ ["it"]="MandaForm",
+ ["nl"]="VerzendFormulier",
+ ["pe"]="تسلیم‌فرم",
+ ["ro"]="TrimiteFormular",
+ },
+ ["ToggleLayer"]={
+ ["cs"]="ToggleLayer",
+ ["de"]="ToggleLayer",
+ ["en"]="ToggleLayer",
+ ["fr"]="ToggleLayer",
+ ["it"]="ToggleLayer",
+ ["nl"]="WisselLaag",
+ ["pe"]="تغییرلایه",
+ ["ro"]="ToggleLayer",
+ },
+ ["ToggleViewer"]={
+ ["cs"]="ZmenitProhlizec",
+ ["de"]="WechseleViewer",
+ ["en"]="ToggleViewer",
+ ["fr"]="ChangeVisualisateur",
+ ["it"]="ScambiaVisualizzatore",
+ ["nl"]="WisselViewer",
+ ["pe"]="تغییرنمایشگر",
+ ["ro"]="SchimbaVizualizator",
+ },
+ ["URL"]={
+ ["cs"]="URL",
+ ["de"]="URL",
+ ["en"]="URL",
+ ["fr"]="URL",
+ ["it"]="URL",
+ ["nl"]="URL",
+ ["pe"]="URL",
+ ["ro"]="URL",
+ },
+ ["VideLayer"]={
+ ["cs"]="VideLayer",
+ ["de"]="VideLayer",
+ ["en"]="VideLayer",
+ ["fr"]="VideLayer",
+ ["it"]="VideLayer",
+ ["nl"]="ToonLaag",
+ ["pe"]="VideLayer",
+ ["ro"]="VideLayer",
+ },
+ ["ViewerHelp"]={
+ ["cs"]="NapovedaProhlizece",
+ ["de"]="ViewerHilfe",
+ ["en"]="ViewerHelp",
+ ["fr"]="AideVisualisateur",
+ ["it"]="AiutoVisualizzatore",
+ ["nl"]="ViewerHelp",
+ ["pe"]="کمک‌نمایشگر",
+ ["ro"]="AjutorVizualizator",
+ },
+ ["WEEKDAY"]={
+ ["cs"]="VSEDNIDEN",
+ ["de"]="WOCHENTAG",
+ ["en"]="WEEKDAY",
+ ["fr"]="JOURSEMAINE",
+ ["it"]="GIORNOSETTIMANA",
+ ["nl"]="WEEKDAG",
+ ["pe"]="روزهفته",
+ ["ro"]="ZISAPTAMANA",
+ },
+ ["WORD"]={
+ ["cs"]="SLOVO",
+ ["de"]="WORT",
+ ["en"]="WORD",
+ ["fr"]="MOT",
+ ["it"]="PAROLA",
+ ["nl"]="WOORD",
+ ["pe"]="کلمه",
+ ["ro"]="CUVANT",
+ },
+ ["abbreviation"]={
+ ["cs"]="zkratka",
+ ["de"]="abkuerzung",
+ ["en"]="abbreviation",
+ ["fr"]="abreviation",
+ ["it"]="abbreviazione",
+ ["nl"]="afkorting",
+ ["pe"]="اختصار",
+ ["ro"]="abreviere",
+ },
+ ["abbreviations"]={
+ ["cs"]="zkratky",
+ ["de"]="abkuerzungen",
+ ["en"]="abbreviations",
+ ["fr"]="abreviations",
+ ["it"]="abbreviazioni",
+ ["nl"]="afkortingen",
+ ["pe"]="اختصارات",
+ ["ro"]="abrevieri",
+ },
+ ["absolute"]={
+ ["cs"]="absolutni",
+ ["de"]="absolut",
+ ["en"]="absolute",
+ ["fr"]="absolute",
+ ["it"]="assoluto",
+ ["nl"]="absoluut",
+ ["pe"]="قطعی",
+ ["ro"]="absolut",
+ },
+ ["action"]={
+ ["cs"]="akce",
+ ["de"]="aktion",
+ ["en"]="action",
+ ["fr"]="action",
+ ["it"]="azione",
+ ["nl"]="actie",
+ ["pe"]="کنش",
+ ["ro"]="actiune",
+ },
+ ["after"]={
+ ["cs"]="po",
+ ["de"]="nach",
+ ["en"]="after",
+ ["fr"]="apres",
+ ["it"]="dopo",
+ ["nl"]="na",
+ ["pe"]="بعداز",
+ ["ro"]="dupa",
+ },
+ ["all"]={
+ ["cs"]="vse",
+ ["de"]="alles",
+ ["en"]="all",
+ ["fr"]="tout",
+ ["it"]="tutti",
+ ["nl"]="alles",
+ ["pe"]="همه",
+ ["ro"]="tot",
+ },
+ ["always"]={
+ ["cs"]="vzdy",
+ ["de"]="immer",
+ ["en"]="always",
+ ["fr"]="toujours",
+ ["it"]="sempre",
+ ["nl"]="altijd",
+ ["pe"]="همواره",
+ ["ro"]="totdeauna",
+ },
+ ["answerarea"]={
+ ["cs"]="answerarea",
+ ["de"]="answerarea",
+ ["en"]="answerarea",
+ ["fr"]="answerarea",
+ ["it"]="answerarea",
+ ["nl"]="antwoordgebied",
+ ["pe"]="answerarea",
+ ["ro"]="answerarea",
+ },
+ ["appendices"]={
+ ["cs"]="dodatky",
+ ["de"]="anhaenge",
+ ["en"]="appendices",
+ ["fr"]="annexes",
+ ["it"]="appendici",
+ ["nl"]="bijlagen",
+ ["pe"]="پیوستها",
+ ["ro"]="apendixuri",
+ },
+ ["appendix"]={
+ ["cs"]="dodatek",
+ ["de"]="anhang",
+ ["en"]="appendix",
+ ["fr"]="annexe",
+ ["it"]="appendice",
+ ["nl"]="bijlage",
+ ["pe"]="پیوست",
+ ["ro"]="apendix",
+ },
+ ["april"]={
+ ["cs"]="duben",
+ ["de"]="April",
+ ["en"]="April",
+ ["fr"]="avril",
+ ["it"]="aprile",
+ ["nl"]="april",
+ ["pe"]="آوریل",
+ ["ro"]="aprilie",
+ },
+ ["atmargin"]={
+ ["cs"]="naokraji",
+ ["de"]="amrand",
+ ["en"]="atmargin",
+ ["fr"]="alamarge",
+ ["it"]="almargine",
+ ["nl"]="opmarge",
+ ["pe"]="درحاشیه",
+ ["ro"]="lamargine",
+ },
+ ["atpage"]={
+ ["cs"]="nastrance",
+ ["de"]="aufseite",
+ ["en"]="atpage",
+ ["fr"]="alapage",
+ ["it"]="apagina",
+ ["nl"]="oppagina",
+ ["pe"]="درصفحه",
+ ["ro"]="lapagina",
+ },
+ ["august"]={
+ ["cs"]="srpen",
+ ["de"]="August",
+ ["en"]="August",
+ ["fr"]="aout",
+ ["it"]="agosto",
+ ["nl"]="augustus",
+ ["pe"]="آگوست",
+ ["ro"]="august",
+ },
+ ["auto"]={
+ ["cs"]="auto",
+ ["de"]="auto",
+ ["en"]="auto",
+ ["fr"]="auto",
+ ["it"]="auto",
+ ["nl"]="auto",
+ ["pe"]="خودکار",
+ ["ro"]="auto",
+ },
+ ["autointro"]={
+ ["cs"]="autouvod",
+ ["de"]="autointro",
+ ["en"]="autointro",
+ ["fr"]="autointro",
+ ["it"]="autointro",
+ ["nl"]="autointro",
+ ["pe"]="پیشگفتارخودکار",
+ ["ro"]="autointro",
+ },
+ ["back"]={
+ ["cs"]="zpet",
+ ["de"]="zurueck",
+ ["en"]="back",
+ ["fr"]="retour",
+ ["it"]="dietro",
+ ["nl"]="terug",
+ ["pe"]="پشت",
+ ["ro"]="inapot",
+ },
+ ["background"]={
+ ["cs"]="pozadi",
+ ["de"]="hintergrund",
+ ["en"]="background",
+ ["fr"]="arriereplan",
+ ["it"]="sfondo",
+ ["nl"]="achtergrond",
+ ["pe"]="پس‌زمینه",
+ ["ro"]="fundal",
+ },
+ ["backmatter"]={
+ ["cs"]="epilogy",
+ ["de"]="epiloge",
+ ["en"]="backmatter",
+ ["fr"]="epilogue",
+ ["it"]="postambolo",
+ ["nl"]="uitleidingen",
+ ["pe"]="پس‌مطلب",
+ ["ro"]="epilogul",
+ },
+ ["backpart"]={
+ ["cs"]="epilog",
+ ["de"]="epilog",
+ ["en"]="backpart",
+ ["fr"]="postface",
+ ["it"]="postfazione",
+ ["nl"]="uitleiding",
+ ["pe"]="پس‌قسمت",
+ ["ro"]="epilog",
+ },
+ ["backspace"]={
+ ["cs"]="zpetnamezera",
+ ["de"]="rumpfspatium",
+ ["en"]="backspace",
+ ["fr"]="retourarriere",
+ ["it"]="backspace",
+ ["nl"]="rugwit",
+ ["pe"]="فضای‌پشت",
+ ["ro"]="spatiuspate",
+ },
+ ["backward"]={
+ ["cs"]="zpet",
+ ["de"]="rueckwaerts",
+ ["en"]="backward",
+ ["fr"]="retourarriere",
+ ["it"]="indietro",
+ ["nl"]="achteruit",
+ ["pe"]="عقب‌گرد",
+ ["ro"]="inapoi",
+ },
+ ["before"]={
+ ["cs"]="pred",
+ ["de"]="vor",
+ ["en"]="before",
+ ["fr"]="avant",
+ ["it"]="prima",
+ ["nl"]="voor",
+ ["pe"]="قبل‌از",
+ ["ro"]="inainte",
+ },
+ ["big"]={
+ ["cs"]="velke",
+ ["de"]="gross",
+ ["en"]="big",
+ ["fr"]="grand",
+ ["it"]="grande",
+ ["nl"]="groot",
+ ["pe"]="بزرگ",
+ ["ro"]="mare",
+ },
+ ["bigbodyfont"]={
+ ["cs"]="bigbodyfont",
+ ["de"]="bigbodyfont",
+ ["en"]="bigbodyfont",
+ ["fr"]="grandepolicecorp",
+ ["it"]="grossofontdeltesto",
+ ["nl"]="grootkorps",
+ ["pe"]="قلم‌بدنه‌بزرگ",
+ ["ro"]="bigbodyfont",
+ },
+ ["bigpreference"]={
+ ["cs"]="vysokapriorita",
+ ["de"]="grosszuegig",
+ ["en"]="bigpreference",
+ ["fr"]="grandepreference",
+ ["it"]="grandepreferenza",
+ ["nl"]="grotevoorkeur",
+ ["pe"]="اولویت‌بزرگ",
+ ["ro"]="preferintamare",
+ },
+ ["blank"]={
+ ["cs"]="prazdny",
+ ["de"]="blanko",
+ ["en"]="blank",
+ ["fr"]="vide",
+ ["it"]="rigovuoto",
+ ["nl"]="blanko",
+ ["pe"]="خالی",
+ ["ro"]="blank",
+ },
+ ["blockquote"]={
+ ["cs"]="blockquote",
+ ["de"]="blockquote",
+ ["en"]="blockquote",
+ ["fr"]="blockquote",
+ ["it"]="blockquote",
+ ["nl"]="blokcitaat",
+ ["pe"]="نقل‌بلوک",
+ ["ro"]="blockquote",
+ },
+ ["bodymatter"]={
+ ["cs"]="hlavnicasti",
+ ["de"]="haupttexte",
+ ["en"]="bodymatter",
+ ["fr"]="texteprincipal",
+ ["it"]="testiprincipali",
+ ["nl"]="hoofdteksten",
+ ["pe"]="مطلب‌بدنه",
+ ["ro"]="principalul",
+ },
+ ["bodypart"]={
+ ["cs"]="hlavnicast",
+ ["de"]="haupttext",
+ ["en"]="bodypart",
+ ["fr"]="corpsdetexte",
+ ["it"]="testoprincipale",
+ ["nl"]="hoofdtekst",
+ ["pe"]="قسمت‌بدنه",
+ ["ro"]="principal",
+ },
+ ["bold"]={
+ ["cs"]="tucne",
+ ["de"]="fett",
+ ["en"]="bold",
+ ["fr"]="gras",
+ ["it"]="grassetto",
+ ["nl"]="vet",
+ ["pe"]="مشکی",
+ ["ro"]="aldin",
+ },
+ ["bolditalic"]={
+ ["cs"]="tucnekurzivni",
+ ["de"]="fettitalic",
+ ["en"]="bolditalic",
+ ["fr"]="italiquegras",
+ ["it"]="grassettocorsivo",
+ ["nl"]="vetitalic",
+ ["pe"]="ایتالیک‌مشکی",
+ ["ro"]="aldinitalic",
+ },
+ ["boldslanted"]={
+ ["cs"]="tucnesklonene",
+ ["de"]="fettgeneigt",
+ ["en"]="boldslanted",
+ ["fr"]="inclinegras",
+ ["it"]="grassettoinclinato",
+ ["nl"]="vetschuin",
+ ["pe"]="خوابیده‌مشکی",
+ ["ro"]="aldininclinat",
+ },
+ ["bookmark"]={
+ ["cs"]="zalozka",
+ ["de"]="bookmark",
+ ["en"]="bookmark",
+ ["fr"]="marquepage",
+ ["it"]="segnalibro",
+ ["nl"]="bookmark",
+ ["pe"]="چوبخط",
+ ["ro"]="semncarte",
+ },
+ ["both"]={
+ ["cs"]="obe",
+ ["de"]="beide",
+ ["en"]="both",
+ ["fr"]="lesdeux",
+ ["it"]="entrambi",
+ ["nl"]="beide",
+ ["pe"]="هردو",
+ ["ro"]="ambele",
+ },
+ ["bottom"]={
+ ["cs"]="spodek",
+ ["de"]="unten",
+ ["en"]="bottom",
+ ["fr"]="inf",
+ ["it"]="fondo",
+ ["nl"]="onder",
+ ["pe"]="پایین",
+ ["ro"]="subsol",
+ },
+ ["brief"]={
+ ["cs"]="brief",
+ ["de"]="brief",
+ ["en"]="brief",
+ ["fr"]="brief",
+ ["it"]="brief",
+ ["nl"]="brief",
+ ["pe"]="مختصر",
+ ["ro"]="brief",
+ },
+ ["broad"]={
+ ["cs"]="siroky",
+ ["de"]="breit",
+ ["en"]="broad",
+ ["fr"]="large",
+ ["it"]="ampio",
+ ["nl"]="ruim",
+ ["pe"]="گسترده",
+ ["ro"]="broad",
+ },
+ ["buffer"]={
+ ["cs"]="buffer",
+ ["de"]="puffer",
+ ["en"]="buffer",
+ ["fr"]="buffer",
+ ["it"]="buffer",
+ ["nl"]="buffer",
+ ["pe"]="بافر",
+ ["ro"]="buffer",
+ },
+ ["by"]={
+ ["cs"]="skrz",
+ ["de"]="pro",
+ ["en"]="by",
+ ["fr"]="par",
+ ["it"]="da",
+ ["nl"]="per",
+ ["pe"]="بوسیله",
+ ["ro"]="de",
+ },
+ ["calligraphic"]={
+ ["cs"]="kaligraficke",
+ ["de"]="kalligraphie",
+ ["en"]="calligraphic",
+ ["fr"]="calligraphique",
+ ["it"]="calligrafico",
+ ["nl"]="calligrafie",
+ ["pe"]="خوشنویسی",
+ ["ro"]="caligrafic",
+ },
+ ["cap"]={
+ ["cs"]="kap",
+ ["de"]="kap",
+ ["en"]="cap",
+ ["fr"]="cap",
+ ["it"]="cap",
+ ["nl"]="kap",
+ ["pe"]="cap",
+ ["ro"]="cap",
+ },
+ ["capital"]={
+ ["cs"]="kapitalky",
+ ["de"]="versalien",
+ ["en"]="capital",
+ ["fr"]="capitale",
+ ["it"]="maiuscolo",
+ ["nl"]="kapitaal",
+ ["pe"]="capital",
+ ["ro"]="majuscula",
+ },
+ ["center"]={
+ ["cs"]="center",
+ ["de"]="center",
+ ["en"]="center",
+ ["fr"]="center",
+ ["it"]="center",
+ ["nl"]="centreer",
+ ["pe"]="مرکز",
+ ["ro"]="center",
+ },
+ ["chapter"]={
+ ["cs"]="kapitola",
+ ["de"]="kapitel",
+ ["en"]="chapter",
+ ["fr"]="chapitre",
+ ["it"]="capitolo",
+ ["nl"]="hoofdstuk",
+ ["pe"]="فصل",
+ ["ro"]="capitol",
+ },
+ ["character"]={
+ ["cs"]="pismeno",
+ ["de"]="buchstabe",
+ ["en"]="character",
+ ["fr"]="caractere",
+ ["it"]="lettera",
+ ["nl"]="letter",
+ ["pe"]="حرف",
+ ["ro"]="caracter",
+ },
+ ["characters"]={
+ ["cs"]="pismena",
+ ["de"]="buchstaben",
+ ["en"]="characters",
+ ["fr"]="caracteres",
+ ["it"]="lettere",
+ ["nl"]="letters",
+ ["pe"]="حرفها",
+ ["ro"]="caractere",
+ },
+ ["color"]={
+ ["cs"]="barevne",
+ ["de"]="farbe",
+ ["en"]="color",
+ ["fr"]="couleur",
+ ["it"]="colore",
+ ["nl"]="kleur",
+ ["pe"]="رنگ",
+ ["ro"]="culoare",
+ },
+ ["column"]={
+ ["cs"]="column",
+ ["de"]="column",
+ ["en"]="column",
+ ["fr"]="colonne",
+ ["it"]="colonna",
+ ["nl"]="kolom",
+ ["pe"]="ستون",
+ ["ro"]="coloana",
+ },
+ ["columns"]={
+ ["cs"]="sloupce",
+ ["de"]="spalten",
+ ["en"]="columns",
+ ["fr"]="colonnes",
+ ["it"]="colonne",
+ ["nl"]="kolommen",
+ ["pe"]="ستونها",
+ ["ro"]="coloane",
+ },
+ ["command"]={
+ ["cs"]="prikaz",
+ ["de"]="befehl",
+ ["en"]="command",
+ ["fr"]="commande",
+ ["it"]="comando",
+ ["nl"]="commando",
+ ["pe"]="فرمان",
+ ["ro"]="comanda",
+ },
+ ["commands"]={
+ ["cs"]="prikazy",
+ ["de"]="befehle",
+ ["en"]="commands",
+ ["fr"]="commandes",
+ ["it"]="comandi",
+ ["nl"]="commandos",
+ ["pe"]="فرمانها",
+ ["ro"]="comenzi",
+ },
+ ["comment"]={
+ ["cs"]="komentar",
+ ["de"]="kommentar",
+ ["en"]="comment",
+ ["fr"]="commentaire",
+ ["it"]="commento",
+ ["nl"]="commentaar",
+ ["pe"]="توضیح",
+ ["ro"]="comentariu",
+ },
+ ["component"]={
+ ["cs"]="komponenta",
+ ["de"]="komponente",
+ ["en"]="component",
+ ["fr"]="composant",
+ ["it"]="componente",
+ ["nl"]="onderdeel",
+ ["pe"]="مولفه",
+ ["ro"]="componenta",
+ },
+ ["concept"]={
+ ["cs"]="koncept",
+ ["de"]="konzept",
+ ["en"]="concept",
+ ["fr"]="concept",
+ ["it"]="concetto",
+ ["nl"]="concept",
+ ["pe"]="مفهوم",
+ ["ro"]="concept",
+ },
+ ["content"]={
+ ["cs"]="obsah",
+ ["de"]="inhalt",
+ ["en"]="content",
+ ["fr"]="contenu",
+ ["it"]="indice",
+ ["nl"]="inhoud",
+ ["pe"]="محتوا",
+ ["ro"]="cuprins",
+ },
+ ["contents"]={
+ ["cs"]="obsah",
+ ["de"]="inhalte",
+ ["en"]="contents",
+ ["fr"]="contenus",
+ ["it"]="indici",
+ ["nl"]="inhouden",
+ ["pe"]="محتویات",
+ ["ro"]="cuprinsuri",
+ },
+ ["continue"]={
+ ["cs"]="pokracovat",
+ ["de"]="fortsetzten",
+ ["en"]="continue",
+ ["fr"]="continue",
+ ["it"]="continua",
+ ["nl"]="verder",
+ ["pe"]="ادامه",
+ ["ro"]="continuu",
+ },
+ ["controls"]={
+ ["cs"]="controls",
+ ["de"]="controls",
+ ["en"]="controls",
+ ["fr"]="controles",
+ ["it"]="controlli",
+ ["nl"]="sturing",
+ ["pe"]="کنترلها",
+ ["ro"]="controale",
+ },
+ ["conversion"]={
+ ["cs"]="konverze",
+ ["de"]="konversion",
+ ["en"]="conversion",
+ ["fr"]="conversion",
+ ["it"]="coversione",
+ ["nl"]="conversie",
+ ["pe"]="تبدیل",
+ ["ro"]="conversie",
+ },
+ ["current"]={
+ ["cs"]="aktualni",
+ ["de"]="aktuell",
+ ["en"]="current",
+ ["fr"]="courant",
+ ["it"]="corrente",
+ ["nl"]="huidige",
+ ["pe"]="جاری",
+ ["ro"]="curent",
+ },
+ ["cutspace"]={
+ ["cs"]="cutspace",
+ ["de"]="cutspace",
+ ["en"]="cutspace",
+ ["fr"]="cutspace",
+ ["it"]="cutspace",
+ ["nl"]="snijwit",
+ ["pe"]="فضای‌برش",
+ ["ro"]="cutspace",
+ },
+ ["date"]={
+ ["cs"]="datum",
+ ["de"]="datum",
+ ["en"]="date",
+ ["fr"]="date",
+ ["it"]="data",
+ ["nl"]="datum",
+ ["pe"]="تاریخ",
+ ["ro"]="data",
+ },
+ ["day"]={
+ ["cs"]="den",
+ ["de"]="tag",
+ ["en"]="day",
+ ["fr"]="jour",
+ ["it"]="giorno",
+ ["nl"]="dag",
+ ["pe"]="روز",
+ ["ro"]="zi",
+ },
+ ["december"]={
+ ["cs"]="prosinec",
+ ["de"]="Dezember",
+ ["en"]="December",
+ ["fr"]="decembre",
+ ["it"]="dicembre",
+ ["nl"]="december",
+ ["pe"]="دسامبر",
+ ["ro"]="decembrie",
+ },
+ ["default"]={
+ ["cs"]="implicitni",
+ ["de"]="default",
+ ["en"]="default",
+ ["fr"]="defaut",
+ ["it"]="implicito",
+ ["nl"]="default",
+ ["pe"]="پیش‌فرض",
+ ["ro"]="implicit",
+ },
+ ["depth"]={
+ ["cs"]="podlehloubky",
+ ["de"]="tiefe",
+ ["en"]="depth",
+ ["fr"]="profondeur",
+ ["it"]="profondita",
+ ["nl"]="diepte",
+ ["pe"]="عمق",
+ ["ro"]="adancime",
+ },
+ ["description"]={
+ ["cs"]="popis",
+ ["de"]="beschreibung",
+ ["en"]="description",
+ ["fr"]="description",
+ ["it"]="descrizione",
+ ["nl"]="doordefinitie",
+ ["pe"]="شرح",
+ ["ro"]="descriere",
+ },
+ ["disable"]={
+ ["cs"]="zablokovat",
+ ["de"]="sperren",
+ ["en"]="disable",
+ ["fr"]="desactiver",
+ ["it"]="disattiva",
+ ["nl"]="blokkeer",
+ ["pe"]="ناتوان",
+ ["ro"]="dezactivat",
+ },
+ ["display"]={
+ ["cs"]="obrazovka",
+ ["de"]="bildschirm",
+ ["en"]="display",
+ ["fr"]="affichage",
+ ["it"]="schermo",
+ ["nl"]="scherm",
+ ["pe"]="نمایش",
+ ["ro"]="display",
+ },
+ ["dot"]={
+ ["cs"]="tecka",
+ ["de"]="punkt",
+ ["en"]="dot",
+ ["fr"]="point",
+ ["it"]="punto",
+ ["nl"]="punt",
+ ["pe"]="نقطه",
+ ["ro"]="punct",
+ },
+ ["doublesided"]={
+ ["cs"]="dvoustranny",
+ ["de"]="doppelseitig",
+ ["en"]="doublesided",
+ ["fr"]="rectoverso",
+ ["it"]="doppiafaccia",
+ ["nl"]="dubbelzijdig",
+ ["pe"]="دورو",
+ ["ro"]="douafete",
+ },
+ ["each"]={
+ ["cs"]="kazdy",
+ ["de"]="jede",
+ ["en"]="each",
+ ["fr"]="chaque",
+ ["it"]="ogni",
+ ["nl"]="elk",
+ ["pe"]="هر",
+ ["ro"]="fiecare",
+ },
+ ["edge"]={
+ ["cs"]="hrana",
+ ["de"]="kante",
+ ["en"]="edge",
+ ["fr"]="bord",
+ ["it"]="bordo",
+ ["nl"]="rand",
+ ["pe"]="لبه",
+ ["ro"]="bordura",
+ },
+ ["empty"]={
+ ["cs"]="prazdne",
+ ["de"]="leer",
+ ["en"]="empty",
+ ["fr"]="vide",
+ ["it"]="vuoto",
+ ["nl"]="leeg",
+ ["pe"]="تهی",
+ ["ro"]="gol",
+ },
+ ["endnote"]={
+ ["cs"]="endnote",
+ ["de"]="endnote",
+ ["en"]="endnote",
+ ["fr"]="notefin",
+ ["it"]="endnote",
+ ["nl"]="eindnoot",
+ ["pe"]="ته‌نوشت",
+ ["ro"]="endnote",
+ },
+ ["enumeration"]={
+ ["cs"]="vycet",
+ ["de"]="nummerierung",
+ ["en"]="enumeration",
+ ["fr"]="enumeration",
+ ["it"]="enumerazione",
+ ["nl"]="doornummering",
+ ["pe"]="شماره‌بندی",
+ ["ro"]="enumerare",
+ },
+ ["environment"]={
+ ["cs"]="prostredi",
+ ["de"]="umgebung",
+ ["en"]="environment",
+ ["fr"]="environement",
+ ["it"]="ambiente",
+ ["nl"]="omgeving",
+ ["pe"]="محیط",
+ ["ro"]="mediu",
+ },
+ ["even"]={
+ ["cs"]="sude",
+ ["de"]="gerade",
+ ["en"]="even",
+ ["fr"]="paire",
+ ["it"]="pari",
+ ["nl"]="even",
+ ["pe"]="زوج",
+ ["ro"]="par",
+ },
+ ["external"]={
+ ["cs"]="externi",
+ ["de"]="extern",
+ ["en"]="external",
+ ["fr"]="external",
+ ["it"]="esterno",
+ ["nl"]="extern",
+ ["pe"]="خارجی",
+ ["ro"]="extern",
+ },
+ ["fact"]={
+ ["cs"]="fakt",
+ ["de"]="gegeben",
+ ["en"]="fact",
+ ["fr"]="fait",
+ ["it"]="fatto",
+ ["nl"]="gegeven",
+ ["pe"]="fact",
+ ["ro"]="fapt",
+ },
+ ["february"]={
+ ["cs"]="unor",
+ ["de"]="Februar",
+ ["en"]="February",
+ ["fr"]="fevrier",
+ ["it"]="febbraio",
+ ["nl"]="februari",
+ ["pe"]="فوریه",
+ ["ro"]="februarie",
+ },
+ ["figure"]={
+ ["cs"]="obrazek",
+ ["de"]="abbildung",
+ ["en"]="figure",
+ ["fr"]="figure",
+ ["it"]="figura",
+ ["nl"]="figuur",
+ ["pe"]="شکل",
+ ["ro"]="figura",
+ },
+ ["figures"]={
+ ["cs"]="obrazky",
+ ["de"]="abbildungen",
+ ["en"]="figures",
+ ["fr"]="figures",
+ ["it"]="figure",
+ ["nl"]="figuren",
+ ["pe"]="شکلها",
+ ["ro"]="figure",
+ },
+ ["file"]={
+ ["cs"]="soubor",
+ ["de"]="datei",
+ ["en"]="file",
+ ["fr"]="fichier",
+ ["it"]="file",
+ ["nl"]="file",
+ ["pe"]="پرونده",
+ ["ro"]="fisier",
+ },
+ ["final"]={
+ ["cs"]="finalni",
+ ["de"]="endfassung",
+ ["en"]="final",
+ ["fr"]="final",
+ ["it"]="finale",
+ ["nl"]="definitief",
+ ["pe"]="نهایی",
+ ["ro"]="final",
+ },
+ ["first"]={
+ ["cs"]="prvni",
+ ["de"]="erste",
+ ["en"]="first",
+ ["fr"]="premier",
+ ["it"]="primo",
+ ["nl"]="eerste",
+ ["pe"]="اولی",
+ ["ro"]="primul",
+ },
+ ["firstcolumn"]={
+ ["cs"]="firstcolumn",
+ ["de"]="firstcolumn",
+ ["en"]="firstcolumn",
+ ["fr"]="premierecolonne",
+ ["it"]="firstcolumn",
+ ["nl"]="eerstekolom",
+ ["pe"]="ستون‌اول",
+ ["ro"]="firstcolumn",
+ },
+ ["firstpage"]={
+ ["cs"]="prvnistranka",
+ ["de"]="ersteseite",
+ ["en"]="firstpage",
+ ["fr"]="premierepage",
+ ["it"]="primapagina",
+ ["nl"]="eerstepagina",
+ ["pe"]="صفحه‌اول",
+ ["ro"]="primapagina",
+ },
+ ["firstsubpage"]={
+ ["cs"]="prvnipodstranka",
+ ["de"]="ersteunterseite",
+ ["en"]="firstsubpage",
+ ["fr"]="premieresouspage",
+ ["it"]="primasottopagina",
+ ["nl"]="eerstesubpagina",
+ ["pe"]="زیرصفحه‌اول",
+ ["ro"]="primasubpagina",
+ },
+ ["fit"]={
+ ["cs"]="prizpusobive",
+ ["de"]="passend",
+ ["en"]="fit",
+ ["fr"]="adapte",
+ ["it"]="adatta",
+ ["nl"]="passend",
+ ["pe"]="پرکردن",
+ ["ro"]="ajustat",
+ },
+ ["five"]={
+ ["cs"]="pet",
+ ["de"]="fuenf",
+ ["en"]="five",
+ ["fr"]="cinq",
+ ["it"]="cinque",
+ ["nl"]="vijf",
+ ["pe"]="پنج",
+ ["ro"]="cinci",
+ },
+ ["fix"]={
+ ["cs"]="fixuj",
+ ["de"]="stellewiederher",
+ ["en"]="fix",
+ ["fr"]="fixe",
+ ["it"]="fisso",
+ ["nl"]="herstel",
+ ["pe"]="ثابت‌کن",
+ ["ro"]="fix",
+ },
+ ["fixed"]={
+ ["cs"]="fixne",
+ ["de"]="fest",
+ ["en"]="fixed",
+ ["fr"]="fixe",
+ ["it"]="fisso",
+ ["nl"]="vast",
+ ["pe"]="ثابت",
+ ["ro"]="fixat",
+ },
+ ["flexible"]={
+ ["cs"]="prizpusobive",
+ ["de"]="flexibel",
+ ["en"]="flexible",
+ ["fr"]="flexible",
+ ["it"]="flessibile",
+ ["nl"]="flexibel",
+ ["pe"]="انعطافپذیر",
+ ["ro"]="flexibil",
+ },
+ ["float"]={
+ ["cs"]="plvouciobjekt",
+ ["de"]="gleitobjekt",
+ ["en"]="float",
+ ["fr"]="flottant",
+ ["it"]="oggettomobile",
+ ["nl"]="blok",
+ ["pe"]="شناور",
+ ["ro"]="obiectmobil",
+ },
+ ["flushinner"]={
+ ["cs"]="flushinner",
+ ["de"]="flushinner",
+ ["en"]="flushinner",
+ ["fr"]="flushinner",
+ ["it"]="flushinner",
+ ["nl"]="lijnbinnen",
+ ["pe"]="پمپ‌داخلی",
+ ["ro"]="flushinner",
+ },
+ ["flushleft"]={
+ ["cs"]="flushleft",
+ ["de"]="flushleft",
+ ["en"]="flushleft",
+ ["fr"]="flushleft",
+ ["it"]="flushleft",
+ ["nl"]="lijnlinks",
+ ["pe"]="پمپ‌چپ",
+ ["ro"]="flushleft",
+ },
+ ["flushouter"]={
+ ["cs"]="flushouter",
+ ["de"]="flushouter",
+ ["en"]="flushouter",
+ ["fr"]="flushouter",
+ ["it"]="flushouter",
+ ["nl"]="lijnbuiten",
+ ["pe"]="پمپ‌خارجی",
+ ["ro"]="flushouter",
+ },
+ ["flushright"]={
+ ["cs"]="flushright",
+ ["de"]="flushright",
+ ["en"]="flushright",
+ ["fr"]="flushright",
+ ["it"]="flushright",
+ ["nl"]="lijnrechts",
+ ["pe"]="پمپ‌راست",
+ ["ro"]="flushright",
+ },
+ ["footer"]={
+ ["cs"]="upati",
+ ["de"]="fusszeile",
+ ["en"]="footer",
+ ["fr"]="pdp",
+ ["it"]="piedipagina",
+ ["nl"]="voet",
+ ["pe"]="ته‌برگ",
+ ["ro"]="subsol",
+ },
+ ["footnote"]={
+ ["cs"]="poznamkapodcarou",
+ ["de"]="fussnote",
+ ["en"]="footnote",
+ ["fr"]="notepdp",
+ ["it"]="notapdp",
+ ["nl"]="voetnoot",
+ ["pe"]="پانوشت",
+ ["ro"]="notasubsol",
+ },
+ ["force"]={
+ ["cs"]="sila",
+ ["de"]="zwinge",
+ ["en"]="force",
+ ["fr"]="force",
+ ["it"]="forza",
+ ["nl"]="forceer",
+ ["pe"]="اجبار",
+ ["ro"]="fortat",
+ },
+ ["foreground"]={
+ ["cs"]="popredi",
+ ["de"]="vordergrund",
+ ["en"]="foreground",
+ ["fr"]="premierplan",
+ ["it"]="foreground",
+ ["nl"]="voorgrond",
+ ["pe"]="پیش‌زمینه",
+ ["ro"]="primplan",
+ },
+ ["formeel"]={
+ ["cs"]="formeel",
+ ["de"]="formeel",
+ ["en"]="formeel",
+ ["fr"]="formeel",
+ ["it"]="formeel",
+ ["nl"]="formeel",
+ ["pe"]="formeel",
+ ["ro"]="formeel",
+ },
+ ["formula"]={
+ ["cs"]="rovnice",
+ ["de"]="formel",
+ ["en"]="formula",
+ ["fr"]="formule",
+ ["it"]="formula",
+ ["nl"]="formule",
+ ["pe"]="فرمول",
+ ["ro"]="formula",
+ },
+ ["formulae"]={
+ ["cs"]="rovnice",
+ ["de"]="formeln",
+ ["en"]="formulae",
+ ["fr"]="formules",
+ ["it"]="formule",
+ ["nl"]="formules",
+ ["pe"]="فرمولها",
+ ["ro"]="formule",
+ },
+ ["forward"]={
+ ["cs"]="vpred",
+ ["de"]="vorwaerts",
+ ["en"]="forward",
+ ["fr"]="avance",
+ ["it"]="avanti",
+ ["nl"]="vooruit",
+ ["pe"]="به‌جلو",
+ ["ro"]="avans",
+ },
+ ["four"]={
+ ["cs"]="ctyri",
+ ["de"]="vier",
+ ["en"]="four",
+ ["fr"]="quatre",
+ ["it"]="quattro",
+ ["nl"]="vier",
+ ["pe"]="چهار",
+ ["ro"]="patru",
+ },
+ ["frame"]={
+ ["cs"]="ramecek",
+ ["de"]="rahmen",
+ ["en"]="frame",
+ ["fr"]="cadre",
+ ["it"]="cornice",
+ ["nl"]="kader",
+ ["pe"]="قالب",
+ ["ro"]="incadrat",
+ },
+ ["framedtext"]={
+ ["cs"]="oramovanytext",
+ ["de"]="umrahmtertext",
+ ["en"]="framedtext",
+ ["fr"]="texteencadre",
+ ["it"]="testoincorniciato",
+ ["nl"]="kadertekst",
+ ["pe"]="متن‌قالبی",
+ ["ro"]="textinconjurat",
+ },
+ ["friday"]={
+ ["cs"]="patek",
+ ["de"]="freitag",
+ ["en"]="friday",
+ ["fr"]="vendredi",
+ ["it"]="venerdi",
+ ["nl"]="vrijdag",
+ ["pe"]="جمعه",
+ ["ro"]="vineri",
+ },
+ ["frontmatter"]={
+ ["cs"]="prednicasti",
+ ["de"]="einleitungen",
+ ["en"]="frontmatter",
+ ["fr"]="preambule",
+ ["it"]="preambolo",
+ ["nl"]="inleidingen",
+ ["pe"]="پیش‌مطلب",
+ ["ro"]="prologul",
+ },
+ ["frontpart"]={
+ ["cs"]="prednicast",
+ ["de"]="einleitung",
+ ["en"]="frontpart",
+ ["fr"]="preface",
+ ["it"]="prefazione",
+ ["nl"]="inleiding",
+ ["pe"]="پیش‌قسمت",
+ ["ro"]="prolog",
+ },
+ ["global"]={
+ ["cs"]="globalne",
+ ["de"]="global",
+ ["en"]="global",
+ ["fr"]="global",
+ ["it"]="globale",
+ ["nl"]="globaal",
+ ["pe"]="سراسری",
+ ["ro"]="global",
+ },
+ ["graphic"]={
+ ["cs"]="graf",
+ ["de"]="grafik",
+ ["en"]="graphic",
+ ["fr"]="graphique",
+ ["it"]="grafico",
+ ["nl"]="grafiek",
+ ["pe"]="گرافیک",
+ ["ro"]="graficul",
+ },
+ ["graphics"]={
+ ["cs"]="grafy",
+ ["de"]="grafiken",
+ ["en"]="graphics",
+ ["fr"]="graphiques",
+ ["it"]="grafici",
+ ["nl"]="grafieken",
+ ["pe"]="گرافیکها",
+ ["ro"]="graficele",
+ },
+ ["gray"]={
+ ["cs"]="seda",
+ ["de"]="grau",
+ ["en"]="gray",
+ ["fr"]="gris",
+ ["it"]="grigio",
+ ["nl"]="grijs",
+ ["pe"]="خاکستری",
+ ["ro"]="gri",
+ },
+ ["greek"]={
+ ["cs"]="recky",
+ ["de"]="griechisch",
+ ["en"]="greek",
+ ["fr"]="grec",
+ ["it"]="greco",
+ ["nl"]="grieks",
+ ["pe"]="یونانی",
+ ["ro"]="grec",
+ },
+ ["grid"]={
+ ["cs"]="mrizka",
+ ["de"]="gritter",
+ ["en"]="grid",
+ ["fr"]="grille",
+ ["it"]="griglia",
+ ["nl"]="grid",
+ ["pe"]="توری",
+ ["ro"]="grila",
+ },
+ ["halfline"]={
+ ["cs"]="pulradku",
+ ["de"]="halbezeile",
+ ["en"]="halfline",
+ ["fr"]="demiligne",
+ ["it"]="mezzariga",
+ ["nl"]="halveregel",
+ ["pe"]="نیم‌خط",
+ ["ro"]="jumatatelinie",
+ },
+ ["handwritten"]={
+ ["cs"]="rukopisne",
+ ["de"]="handschrift",
+ ["en"]="handwritten",
+ ["fr"]="manuscript",
+ ["it"]="grafiamanuale",
+ ["nl"]="handschrift",
+ ["pe"]="دست‌نوشته",
+ ["ro"]="scrismanual",
+ },
+ ["hang"]={
+ ["cs"]="zaveseni",
+ ["de"]="haengend",
+ ["en"]="hang",
+ ["fr"]="suspend",
+ ["it"]="sospendi",
+ ["nl"]="hang",
+ ["pe"]="بیاویز",
+ ["ro"]="suspenda",
+ },
+ ["hanging"]={
+ ["cs"]="visici",
+ ["de"]="haengend",
+ ["en"]="hanging",
+ ["fr"]="suspend",
+ ["it"]="sospeso",
+ ["nl"]="hangend",
+ ["pe"]="آویزان",
+ ["ro"]="suspendat",
+ },
+ ["head"]={
+ ["cs"]="hlavicka",
+ ["de"]="kopf",
+ ["en"]="head",
+ ["fr"]="tete",
+ ["it"]="testa",
+ ["nl"]="kop",
+ ["pe"]="سر",
+ ["ro"]="antet",
+ },
+ ["header"]={
+ ["cs"]="zahlavi",
+ ["de"]="kopfzeile",
+ ["en"]="header",
+ ["fr"]="entete",
+ ["it"]="intestazione",
+ ["nl"]="hoofd",
+ ["pe"]="سربرگ",
+ ["ro"]="antet",
+ },
+ ["height"]={
+ ["cs"]="vyska",
+ ["de"]="hoehe",
+ ["en"]="height",
+ ["fr"]="hauteur",
+ ["it"]="altezza",
+ ["nl"]="hoogte",
+ ["pe"]="ارتفاع",
+ ["ro"]="inaltime",
+ },
+ ["helptext"]={
+ ["cs"]="textnapovedy",
+ ["de"]="hilfetext",
+ ["en"]="helptext",
+ ["fr"]="texteaide",
+ ["it"]="testoaiuto",
+ ["nl"]="helptekst",
+ ["pe"]="متن‌کمکی",
+ ["ro"]="textajutator",
+ },
+ ["hencefore"]={
+ ["cs"]="vyse",
+ ["de"]="vorher",
+ ["en"]="hencefore",
+ ["fr"]="precedent",
+ ["it"]="precedente",
+ ["nl"]="hierboven",
+ ["pe"]="hencefore",
+ ["ro"]="precedent",
+ },
+ ["here"]={
+ ["cs"]="zde",
+ ["de"]="hier",
+ ["en"]="here",
+ ["fr"]="ici",
+ ["it"]="qui",
+ ["nl"]="hier",
+ ["pe"]="اینجا",
+ ["ro"]="aici",
+ },
+ ["hereafter"]={
+ ["cs"]="nize",
+ ["de"]="nachher",
+ ["en"]="hereafter",
+ ["fr"]="suivant",
+ ["it"]="seguente",
+ ["nl"]="hieronder",
+ ["pe"]="ازاین‌به‌بعد",
+ ["ro"]="urmator",
+ },
+ ["hidden"]={
+ ["cs"]="skryte",
+ ["de"]="versteckt",
+ ["en"]="hidden",
+ ["fr"]="cache",
+ ["it"]="nascosto",
+ ["nl"]="verborgen",
+ ["pe"]="پنهانی",
+ ["ro"]="ascuns",
+ },
+ ["hiding"]={
+ ["cs"]="skryt",
+ ["de"]="verbergen",
+ ["en"]="hiding",
+ ["fr"]="cache",
+ ["it"]="nascondere",
+ ["nl"]="verbergen",
+ ["pe"]="پنهان‌کردن",
+ ["ro"]="ascundere",
+ },
+ ["high"]={
+ ["cs"]="vysoko",
+ ["de"]="hoch",
+ ["en"]="high",
+ ["fr"]="haut",
+ ["it"]="alto",
+ ["nl"]="hoog",
+ ["pe"]="بلند",
+ ["ro"]="inalt",
+ },
+ ["horizontal"]={
+ ["cs"]="horizontalne",
+ ["de"]="horizontal",
+ ["en"]="horizontal",
+ ["fr"]="horizontale",
+ ["it"]="orizzontale",
+ ["nl"]="horizontaal",
+ ["pe"]="افقی",
+ ["ro"]="orizontal",
+ },
+ ["hyphenated"]={
+ ["cs"]="hyphenated",
+ ["de"]="hyphenate",
+ ["en"]="hyphenated",
+ ["fr"]="hyphenated",
+ ["it"]="sillabato",
+ ["nl"]="afgebroken",
+ ["pe"]="شکسته",
+ ["ro"]="despsilabe",
+ },
+ ["hz"]={
+ ["cs"]="hz",
+ ["de"]="hz",
+ ["en"]="hz",
+ ["fr"]="hz",
+ ["it"]="hz",
+ ["nl"]="hz",
+ ["pe"]="hz",
+ ["ro"]="hz",
+ },
+ ["inbetween"]={
+ ["cs"]="mezi",
+ ["de"]="zwischen",
+ ["en"]="inbetween",
+ ["fr"]="entre",
+ ["it"]="tra",
+ ["nl"]="tussen",
+ ["pe"]="دربین",
+ ["ro"]="intre",
+ },
+ ["index"]={
+ ["cs"]="rejstrik",
+ ["de"]="index",
+ ["en"]="index",
+ ["fr"]="index",
+ ["it"]="indiceanalitico",
+ ["nl"]="index",
+ ["pe"]="نمایه",
+ ["ro"]="index",
+ },
+ ["indices"]={
+ ["cs"]="rejstriky",
+ ["de"]="indizies",
+ ["en"]="indices",
+ ["fr"]="indices",
+ ["it"]="indicianalitici",
+ ["nl"]="indices",
+ ["pe"]="نمایه‌ها",
+ ["ro"]="indexuri",
+ },
+ ["informeel"]={
+ ["cs"]="informeel",
+ ["de"]="informeel",
+ ["en"]="informeel",
+ ["fr"]="informeel",
+ ["it"]="informeel",
+ ["nl"]="informeel",
+ ["pe"]="informeel",
+ ["ro"]="informeel",
+ },
+ ["inherit"]={
+ ["cs"]="inherit",
+ ["de"]="inherit",
+ ["en"]="inherit",
+ ["fr"]="herite",
+ ["it"]="inherit",
+ ["nl"]="erf",
+ ["pe"]="ارث‌بردن",
+ ["ro"]="inherit",
+ },
+ ["inleft"]={
+ ["cs"]="vlevo",
+ ["de"]="imlinken",
+ ["en"]="inleft",
+ ["fr"]="dansgauche",
+ ["it"]="insinistra",
+ ["nl"]="inlinker",
+ ["pe"]="درون‌چپ",
+ ["ro"]="instanga",
+ },
+ ["inmargin"]={
+ ["cs"]="naokraji",
+ ["de"]="imrand",
+ ["en"]="inmargin",
+ ["fr"]="dansmarge",
+ ["it"]="inmargine",
+ ["nl"]="inmarge",
+ ["pe"]="درون‌حاشیه",
+ ["ro"]="inmargine",
+ },
+ ["inner"]={
+ ["cs"]="uvnitr",
+ ["de"]="innen",
+ ["en"]="inner",
+ ["fr"]="interieur",
+ ["it"]="interno",
+ ["nl"]="binnen",
+ ["pe"]="داخلی",
+ ["ro"]="intern",
+ },
+ ["inneredge"]={
+ ["cs"]="inneredge",
+ ["de"]="inneredge",
+ ["en"]="inneredge",
+ ["fr"]="bordinterieur",
+ ["it"]="bordointerno",
+ ["nl"]="binnenrand",
+ ["pe"]="لبه‌داخلی",
+ ["ro"]="inneredge",
+ },
+ ["innermargin"]={
+ ["cs"]="innermargin",
+ ["de"]="innermargin",
+ ["en"]="innermargin",
+ ["fr"]="margeinterieure",
+ ["it"]="margineinterno",
+ ["nl"]="binnenmarge",
+ ["pe"]="حاشیه‌داخلی",
+ ["ro"]="innermargin",
+ },
+ ["inright"]={
+ ["cs"]="vpravo",
+ ["de"]="imrechten",
+ ["en"]="inright",
+ ["fr"]="dansdroit",
+ ["it"]="indestra",
+ ["nl"]="inrechter",
+ ["pe"]="درون‌راست",
+ ["ro"]="indreapta",
+ },
+ ["interaction"]={
+ ["cs"]="interakce",
+ ["de"]="interaktion",
+ ["en"]="interaction",
+ ["fr"]="interaction",
+ ["it"]="interazione",
+ ["nl"]="interactie",
+ ["pe"]="پانل",
+ ["ro"]="interactiune",
+ },
+ ["interactionmenu"]={
+ ["cs"]="interaktivnimenu",
+ ["de"]="interaktionsmenue",
+ ["en"]="interactionmenu",
+ ["fr"]="menuinteraction",
+ ["it"]="menuinterattivo",
+ ["nl"]="interactiemenu",
+ ["pe"]="منوی‌پانل",
+ ["ro"]="meniuinteractiune",
+ },
+ ["intermezzi"]={
+ ["cs"]="intermezzi",
+ ["de"]="intermezzi",
+ ["en"]="intermezzi",
+ ["fr"]="intermezzi",
+ ["it"]="intermezzi",
+ ["nl"]="intermezzos",
+ ["pe"]="میان‌پرده‌ها",
+ ["ro"]="intermezzi",
+ },
+ ["intermezzo"]={
+ ["cs"]="intermezzo",
+ ["de"]="intermezzo",
+ ["en"]="intermezzo",
+ ["fr"]="intermezzo",
+ ["it"]="intermezzo",
+ ["nl"]="intermezzo",
+ ["pe"]="میان‌پرده",
+ ["ro"]="intermezzo",
+ },
+ ["intext"]={
+ ["cs"]="dotextu",
+ ["de"]="imtext",
+ ["en"]="intext",
+ ["fr"]="danstexte",
+ ["it"]="intesto",
+ ["nl"]="intekst",
+ ["pe"]="درون‌متن",
+ ["ro"]="intext",
+ },
+ ["intro"]={
+ ["cs"]="uvod",
+ ["de"]="intro",
+ ["en"]="intro",
+ ["fr"]="intro",
+ ["it"]="intro",
+ ["nl"]="intro",
+ ["pe"]="پیشگفتار",
+ ["ro"]="intro",
+ },
+ ["italic"]={
+ ["cs"]="kurziva",
+ ["de"]="italic",
+ ["en"]="italic",
+ ["fr"]="italique",
+ ["it"]="corsivo",
+ ["nl"]="italic",
+ ["pe"]="ایتالیک",
+ ["ro"]="italic",
+ },
+ ["italicbold"]={
+ ["cs"]="kurzivnitucne",
+ ["de"]="italicfett",
+ ["en"]="italicbold",
+ ["fr"]="grasitalique",
+ ["it"]="corsivograssetto",
+ ["nl"]="italicvet",
+ ["pe"]="مشکی‌ایتالیک",
+ ["ro"]="italicaldin",
+ },
+ ["item"]={
+ ["cs"]="polozka",
+ ["de"]="pos",
+ ["en"]="item",
+ ["fr"]="element",
+ ["it"]="elemento",
+ ["nl"]="som",
+ ["pe"]="آیتم",
+ ["ro"]="element",
+ },
+ ["itemize"]={
+ ["cs"]="vycet",
+ ["de"]="aufzaehlung",
+ ["en"]="itemize",
+ ["fr"]="lister",
+ ["it"]="elenco",
+ ["nl"]="opsomming",
+ ["pe"]="آیتم‌بندی",
+ ["ro"]="enumerare",
+ },
+ ["its"]={
+ ["cs"]="pol",
+ ["de"]="its",
+ ["en"]="its",
+ ["fr"]="its",
+ ["it"]="its",
+ ["nl"]="its",
+ ["pe"]="آیم",
+ ["ro"]="propriu",
+ },
+ ["january"]={
+ ["cs"]="leden",
+ ["de"]="Januar",
+ ["en"]="January",
+ ["fr"]="janvier",
+ ["it"]="gennaio",
+ ["nl"]="januari",
+ ["pe"]="ژانویه",
+ ["ro"]="ianuarie",
+ },
+ ["joinedup"]={
+ ["cs"]="spojeno",
+ ["de"]="keinabstand",
+ ["en"]="joinedup",
+ ["fr"]="joinedup",
+ ["it"]="unito",
+ ["nl"]="aansluitend",
+ ["pe"]="متصل‌بالا",
+ ["ro"]="unit",
+ },
+ ["july"]={
+ ["cs"]="cervenec",
+ ["de"]="Juli",
+ ["en"]="July",
+ ["fr"]="juillet",
+ ["it"]="luglio",
+ ["nl"]="juli",
+ ["pe"]="ژولای",
+ ["ro"]="iulie",
+ },
+ ["june"]={
+ ["cs"]="cerven",
+ ["de"]="Juni",
+ ["en"]="June",
+ ["fr"]="juin",
+ ["it"]="giugno",
+ ["nl"]="juni",
+ ["pe"]="ژوئن",
+ ["ro"]="iunie",
+ },
+ ["keep"]={
+ ["cs"]="drzet",
+ ["de"]="behalte",
+ ["en"]="keep",
+ ["fr"]="maintient",
+ ["it"]="mantieni",
+ ["nl"]="handhaaf",
+ ["pe"]="نگهدار",
+ ["ro"]="mentine",
+ },
+ ["knockout"]={
+ ["cs"]="knockout",
+ ["de"]="knockout",
+ ["en"]="knockout",
+ ["fr"]="knockout",
+ ["it"]="knockout",
+ ["nl"]="knockout",
+ ["pe"]="knockout",
+ ["ro"]="knockout",
+ },
+ ["label"]={
+ ["cs"]="popisek",
+ ["de"]="label",
+ ["en"]="label",
+ ["fr"]="etiquette",
+ ["it"]="etichetta",
+ ["nl"]="label",
+ ["pe"]="برچسب",
+ ["ro"]="eticheta",
+ },
+ ["landscape"]={
+ ["cs"]="nasirku",
+ ["de"]="querformat",
+ ["en"]="landscape",
+ ["fr"]="paysage",
+ ["it"]="orizzontale",
+ ["nl"]="liggend",
+ ["pe"]="صفحه‌گسترده",
+ ["ro"]="vedere",
+ },
+ ["last"]={
+ ["cs"]="posledni",
+ ["de"]="letzte",
+ ["en"]="last",
+ ["fr"]="dernier",
+ ["it"]="ultimo",
+ ["nl"]="laatste",
+ ["pe"]="آخرین",
+ ["ro"]="ultim",
+ },
+ ["lastcolumn"]={
+ ["cs"]="lastcolumn",
+ ["de"]="lastcolumn",
+ ["en"]="lastcolumn",
+ ["fr"]="dernierecolonne",
+ ["it"]="lastcolumn",
+ ["nl"]="laatstekolom",
+ ["pe"]="آخرین‌ستون",
+ ["ro"]="lastcolumn",
+ },
+ ["lastpage"]={
+ ["cs"]="poslednistrana",
+ ["de"]="letzteseite",
+ ["en"]="lastpage",
+ ["fr"]="dernierepage",
+ ["it"]="ultimapagina",
+ ["nl"]="laatstepagina",
+ ["pe"]="صفحه‌آخر",
+ ["ro"]="ultimapagina",
+ },
+ ["lastpagenumber"]={
+ ["cs"]="lastpagenumber",
+ ["de"]="lastpagenumber",
+ ["en"]="lastpagenumber",
+ ["fr"]="derniernumeropage",
+ ["it"]="lastpagenumber",
+ ["nl"]="laatstepaginanummer",
+ ["pe"]="شماه‌صفحه‌آخر",
+ ["ro"]="lastpagenumber",
+ },
+ ["lastsubpage"]={
+ ["cs"]="poslaednipodstranka",
+ ["de"]="letzteunterseite",
+ ["en"]="lastsubpage",
+ ["fr"]="dernieresouspage",
+ ["it"]="ultimasottopagina",
+ ["nl"]="laatstesubpagina",
+ ["pe"]="زیرصفحه‌آخر",
+ ["ro"]="ultimasubpagina",
+ },
+ ["layer"]={
+ ["cs"]="layer",
+ ["de"]="layer",
+ ["en"]="layer",
+ ["fr"]="layer",
+ ["it"]="layer",
+ ["nl"]="layer",
+ ["pe"]="layer",
+ ["ro"]="layer",
+ },
+ ["left"]={
+ ["cs"]="vlevo",
+ ["de"]="links",
+ ["en"]="left",
+ ["fr"]="gauche",
+ ["it"]="sinistra",
+ ["nl"]="links",
+ ["pe"]="چپ",
+ ["ro"]="stanga",
+ },
+ ["leftedge"]={
+ ["cs"]="levahrana",
+ ["de"]="linkekante",
+ ["en"]="leftedge",
+ ["fr"]="bordgauche",
+ ["it"]="bordosinistro",
+ ["nl"]="linkerrand",
+ ["pe"]="لبه‌چپ",
+ ["ro"]="bordurastanga",
+ },
+ ["lefthanging"]={
+ ["cs"]="lefthanging",
+ ["de"]="lefthanging",
+ ["en"]="lefthanging",
+ ["fr"]="lefthanging",
+ ["it"]="lefthanging",
+ ["nl"]="linkshangend",
+ ["pe"]="آویزان‌چپ",
+ ["ro"]="lefthanging",
+ },
+ ["leftmargin"]={
+ ["cs"]="levyokraj",
+ ["de"]="linkerrand",
+ ["en"]="leftmargin",
+ ["fr"]="margegauche",
+ ["it"]="marginesinistro",
+ ["nl"]="linkermarge",
+ ["pe"]="حاشیه‌چپ",
+ ["ro"]="marginestanga",
+ },
+ ["leftpage"]={
+ ["cs"]="levastranka",
+ ["de"]="linkerseite",
+ ["en"]="leftpage",
+ ["fr"]="pagegauche",
+ ["it"]="paginasinistra",
+ ["nl"]="linkerpagina",
+ ["pe"]="صفحه‌چپ",
+ ["ro"]="paginastanga",
+ },
+ ["lefttoright"]={
+ ["cs"]="lefttoright",
+ ["de"]="lefttoright",
+ ["en"]="lefttoright",
+ ["fr"]="lefttoright",
+ ["it"]="lefttoright",
+ ["nl"]="lefttoright",
+ ["pe"]="lefttoright",
+ ["ro"]="lefttoright",
+ },
+ ["legend"]={
+ ["cs"]="legenda",
+ ["de"]="legende",
+ ["en"]="legend",
+ ["fr"]="legende",
+ ["it"]="legenda",
+ ["nl"]="legenda",
+ ["pe"]="راهنما",
+ ["ro"]="legenda",
+ },
+ ["lesshyphenation"]={
+ ["cs"]="lesshyphenation",
+ ["de"]="lesshyphenation",
+ ["en"]="lesshyphenation",
+ ["fr"]="lesshyphenation",
+ ["it"]="lesshyphenation",
+ ["nl"]="lesshyphenation",
+ ["pe"]="شکست‌کلمات‌کمتر",
+ ["ro"]="lesshyphenation",
+ },
+ ["line"]={
+ ["cs"]="radek",
+ ["de"]="zeile",
+ ["en"]="line",
+ ["fr"]="ligne",
+ ["it"]="riga",
+ ["nl"]="regel",
+ ["pe"]="خط",
+ ["ro"]="linie",
+ },
+ ["linenote"]={
+ ["cs"]="linenote",
+ ["de"]="linenote",
+ ["en"]="linenote",
+ ["fr"]="noteligne",
+ ["it"]="linenote",
+ ["nl"]="regelnoot",
+ ["pe"]="خط‌نوشت",
+ ["ro"]="linenote",
+ },
+ ["lines"]={
+ ["cs"]="radky",
+ ["de"]="zeilen",
+ ["en"]="lines",
+ ["fr"]="lignes",
+ ["it"]="righe",
+ ["nl"]="regels",
+ ["pe"]="خطها",
+ ["ro"]="linii",
+ },
+ ["list"]={
+ ["cs"]="seznam",
+ ["de"]="liste",
+ ["en"]="list",
+ ["fr"]="liste",
+ ["it"]="elenco",
+ ["nl"]="lijst",
+ ["pe"]="لیست",
+ ["ro"]="lista",
+ },
+ ["local"]={
+ ["cs"]="lokalne",
+ ["de"]="lokal",
+ ["en"]="local",
+ ["fr"]="local",
+ ["it"]="locale",
+ ["nl"]="lokaal",
+ ["pe"]="موضعی",
+ ["ro"]="local",
+ },
+ ["localenvironment"]={
+ ["cs"]="lokalnihoprostredi",
+ ["de"]="lokaleumgebung",
+ ["en"]="localenvironment",
+ ["fr"]="environementlocal",
+ ["it"]="ambientelocale",
+ ["nl"]="deelomgeving",
+ ["pe"]="محیط‌موضعی",
+ ["ro"]="mediulocal",
+ },
+ ["logo"]={
+ ["cs"]="logo",
+ ["de"]="logo",
+ ["en"]="logo",
+ ["fr"]="logo",
+ ["it"]="logo",
+ ["nl"]="logo",
+ ["pe"]="آرم",
+ ["ro"]="logo",
+ },
+ ["logos"]={
+ ["cs"]="loga",
+ ["de"]="logos",
+ ["en"]="logos",
+ ["fr"]="logos",
+ ["it"]="loghi",
+ ["nl"]="logos",
+ ["pe"]="آرمها",
+ ["ro"]="logos",
+ },
+ ["lohi"]={
+ ["cs"]="nivy",
+ ["de"]="hoti",
+ ["en"]="lohi",
+ ["fr"]="baha",
+ ["it"]="pedap",
+ ["nl"]="laho",
+ ["pe"]="پابا",
+ ["ro"]="lohi",
+ },
+ ["loose"]={
+ ["cs"]="uvolnene",
+ ["de"]="lose",
+ ["en"]="loose",
+ ["fr"]="perte",
+ ["it"]="lento",
+ ["nl"]="los",
+ ["pe"]="شل",
+ ["ro"]="larg",
+ },
+ ["low"]={
+ ["cs"]="nizko",
+ ["de"]="tief",
+ ["en"]="low",
+ ["fr"]="bas",
+ ["it"]="basso",
+ ["nl"]="laag",
+ ["pe"]="پایین",
+ ["ro"]="jos",
+ },
+ ["ls"]={
+ ["cs"]="ls",
+ ["de"]="ls",
+ ["en"]="ls",
+ ["fr"]="ls",
+ ["it"]="ls",
+ ["nl"]="ls",
+ ["pe"]="ls",
+ ["ro"]="ls",
+ },
+ ["makeup"]={
+ ["cs"]="zlom",
+ ["de"]="umbruch",
+ ["en"]="makeup",
+ ["fr"]="makeup",
+ ["it"]="makeup",
+ ["nl"]="opmaak",
+ ["pe"]="آرایش",
+ ["ro"]="marcaj",
+ },
+ ["mar"]={
+ ["cs"]="mar",
+ ["de"]="mar",
+ ["en"]="mar",
+ ["fr"]="mar",
+ ["it"]="mar",
+ ["nl"]="mar",
+ ["pe"]="حاش",
+ ["ro"]="mar",
+ },
+ ["march"]={
+ ["cs"]="brezen",
+ ["de"]="Maerz",
+ ["en"]="March",
+ ["fr"]="mars",
+ ["it"]="marzo",
+ ["nl"]="maart",
+ ["pe"]="مارس",
+ ["ro"]="martie",
+ },
+ ["margin"]={
+ ["cs"]="marginalie",
+ ["de"]="marginalie",
+ ["en"]="margin",
+ ["fr"]="marge",
+ ["it"]="margine",
+ ["nl"]="marge",
+ ["pe"]="حاشیه",
+ ["ro"]="margine",
+ },
+ ["marginedge"]={
+ ["cs"]="textovahrana",
+ ["de"]="marginalkante",
+ ["en"]="marginedge",
+ ["fr"]="bordmarge",
+ ["it"]="bordomargine",
+ ["nl"]="kantlijn",
+ ["pe"]="لبه‌حاشیه",
+ ["ro"]="marginebordura",
+ },
+ ["margintitle"]={
+ ["cs"]="titulmarginalie",
+ ["de"]="marginaltitel",
+ ["en"]="margintitle",
+ ["fr"]="titremarge",
+ ["it"]="titoloinmargine",
+ ["nl"]="margetitel",
+ ["pe"]="عنوان‌حاشیه",
+ ["ro"]="titlumarginal",
+ },
+ ["marking"]={
+ ["cs"]="znaceni",
+ ["de"]="beschriftung",
+ ["en"]="marking",
+ ["fr"]="marquage",
+ ["it"]="marcatura",
+ ["nl"]="markering",
+ ["pe"]="نشانه‌گذاری",
+ ["ro"]="marcaje",
+ },
+ ["mathalignment"]={
+ ["cs"]="mathalignment",
+ ["de"]="mathalignment",
+ ["en"]="mathalignment",
+ ["fr"]="mathalignment",
+ ["it"]="mathalignment",
+ ["nl"]="wiskundeuitlijnen",
+ ["pe"]="تنظیم‌ریاضی",
+ ["ro"]="mathalignment",
+ },
+ ["mathcases"]={
+ ["cs"]="mathcases",
+ ["de"]="mathcases",
+ ["en"]="mathcases",
+ ["fr"]="mathcases",
+ ["it"]="mathcases",
+ ["nl"]="mathcases",
+ ["pe"]="حالتهای‌ریاضی",
+ ["ro"]="mathcases",
+ },
+ ["mathmatrix"]={
+ ["cs"]="mathmatrix",
+ ["de"]="mathmatrix",
+ ["en"]="mathmatrix",
+ ["fr"]="mathmatrix",
+ ["it"]="mathmatrix",
+ ["nl"]="wiskundematrix",
+ ["pe"]="ماتریش‌ریاضی",
+ ["ro"]="mathmatrix",
+ },
+ ["max"]={
+ ["cs"]="max",
+ ["de"]="max",
+ ["en"]="max",
+ ["fr"]="max",
+ ["it"]="max",
+ ["nl"]="max",
+ ["pe"]="بیشترین",
+ ["ro"]="max",
+ },
+ ["may"]={
+ ["cs"]="kveten",
+ ["de"]="Mai",
+ ["en"]="May",
+ ["fr"]="mai",
+ ["it"]="maggio",
+ ["nl"]="mei",
+ ["pe"]="مه",
+ ["ro"]="mai",
+ },
+ ["mediaeval"]={
+ ["cs"]="stredoveky",
+ ["de"]="mittelalterlich",
+ ["en"]="mediaeval",
+ ["fr"]="medieval",
+ ["it"]="medievale",
+ ["nl"]="mediaeval",
+ ["pe"]="mediaeval",
+ ["ro"]="medieval",
+ },
+ ["medium"]={
+ ["cs"]="stredni",
+ ["de"]="mittel",
+ ["en"]="medium",
+ ["fr"]="moyen",
+ ["it"]="medio",
+ ["nl"]="middel",
+ ["pe"]="متوسط",
+ ["ro"]="mediu",
+ },
+ ["middle"]={
+ ["cs"]="nastred",
+ ["de"]="mittig",
+ ["en"]="middle",
+ ["fr"]="milieu",
+ ["it"]="centro",
+ ["nl"]="midden",
+ ["pe"]="میان",
+ ["ro"]="centru",
+ },
+ ["min"]={
+ ["cs"]="min",
+ ["de"]="min",
+ ["en"]="min",
+ ["fr"]="min",
+ ["it"]="min",
+ ["nl"]="min",
+ ["pe"]="کمترین",
+ ["ro"]="min",
+ },
+ ["minheight"]={
+ ["cs"]="minvyska",
+ ["de"]="minhoehe",
+ ["en"]="minheight",
+ ["fr"]="hauteurmin",
+ ["it"]="altezzamin",
+ ["nl"]="minhoogte",
+ ["pe"]="کمترین‌ارتفاع",
+ ["ro"]="inaltimeminima",
+ },
+ ["minwidth"]={
+ ["cs"]="minsirka",
+ ["de"]="minbreite",
+ ["en"]="minwidth",
+ ["fr"]="largeurmin",
+ ["it"]="ampiezzamin",
+ ["nl"]="minbreedte",
+ ["pe"]="کمترین‌عرض",
+ ["ro"]="latimeminima",
+ },
+ ["mirrored"]={
+ ["cs"]="zrcadleno",
+ ["de"]="gespiegelt",
+ ["en"]="mirrored",
+ ["fr"]="reflete",
+ ["it"]="riflesso",
+ ["nl"]="gespiegeld",
+ ["pe"]="منعکس",
+ ["ro"]="oglindit",
+ },
+ ["monday"]={
+ ["cs"]="pondeli",
+ ["de"]="montag",
+ ["en"]="monday",
+ ["fr"]="lundi",
+ ["it"]="lunedi",
+ ["nl"]="maandag",
+ ["pe"]="دوشنبه",
+ ["ro"]="luni",
+ },
+ ["mono"]={
+ ["cs"]="mono",
+ ["de"]="mono",
+ ["en"]="mono",
+ ["fr"]="mono",
+ ["it"]="mono",
+ ["nl"]="mono",
+ ["pe"]="مونو",
+ ["ro"]="mono",
+ },
+ ["month"]={
+ ["cs"]="mesic",
+ ["de"]="monat",
+ ["en"]="month",
+ ["fr"]="mois",
+ ["it"]="mese",
+ ["nl"]="maand",
+ ["pe"]="ماه",
+ ["ro"]="luna",
+ },
+ ["morehyphenation"]={
+ ["cs"]="morehyphenation",
+ ["de"]="morehyphenation",
+ ["en"]="morehyphenation",
+ ["fr"]="morehyphenation",
+ ["it"]="morehyphenation",
+ ["nl"]="morehyphenation",
+ ["pe"]="شکست‌کلمات‌بیشتر",
+ ["ro"]="morehyphenation",
+ },
+ ["name"]={
+ ["cs"]="jmeno",
+ ["de"]="name",
+ ["en"]="name",
+ ["fr"]="nom",
+ ["it"]="nome",
+ ["nl"]="naam",
+ ["pe"]="نام",
+ ["ro"]="nume",
+ },
+ ["narrow"]={
+ ["cs"]="uzky",
+ ["de"]="schmall",
+ ["en"]="narrow",
+ ["fr"]="etroit",
+ ["it"]="stretto",
+ ["nl"]="smal",
+ ["pe"]="نازک",
+ ["ro"]="ingust",
+ },
+ ["negative"]={
+ ["cs"]="negativ",
+ ["de"]="negativ",
+ ["en"]="negative",
+ ["fr"]="negatif",
+ ["it"]="negativo",
+ ["nl"]="negatief",
+ ["pe"]="منفی",
+ ["ro"]="negativ",
+ },
+ ["never"]={
+ ["cs"]="nikdy",
+ ["de"]="nie",
+ ["en"]="never",
+ ["fr"]="jamais",
+ ["it"]="mai",
+ ["nl"]="nooit",
+ ["pe"]="هیچگاه",
+ ["ro"]="niciodata",
+ },
+ ["new"]={
+ ["cs"]="novy",
+ ["de"]="neu",
+ ["en"]="new",
+ ["fr"]="nouveau",
+ ["it"]="nuovo",
+ ["nl"]="nieuw",
+ ["pe"]="جدید",
+ ["ro"]="nou",
+ },
+ ["next"]={
+ ["cs"]="dalsi",
+ ["de"]="folgende",
+ ["en"]="next",
+ ["fr"]="prochain",
+ ["it"]="successivo",
+ ["nl"]="volgende",
+ ["pe"]="بعدی",
+ ["ro"]="urmatorul",
+ },
+ ["nextevenpage"]={
+ ["cs"]="dalsisudastranka",
+ ["de"]="naechstegeradeseite",
+ ["en"]="nextevenpage",
+ ["fr"]="pagepairesuivante",
+ ["it"]="paginaparisuccessiva",
+ ["nl"]="volgendeevenpagina",
+ ["pe"]="صفحه‌زوج‌بعدی",
+ ["ro"]="paginaparaurmatoarea",
+ },
+ ["nextoddpage"]={
+ ["cs"]="dalsilichastranka",
+ ["de"]="naechsteungeradeseite",
+ ["en"]="nextoddpage",
+ ["fr"]="pageimpairesuivante",
+ ["it"]="paginadisparisuccessiva",
+ ["nl"]="volgendeonevenpagina",
+ ["pe"]="صفحه‌فردبعدی",
+ ["ro"]="paginaimparaurmatoarea",
+ },
+ ["nextpage"]={
+ ["cs"]="dalsistranka",
+ ["de"]="folgendeseite",
+ ["en"]="nextpage",
+ ["fr"]="pagesuivante",
+ ["it"]="paginasuccessiva",
+ ["nl"]="volgendepagina",
+ ["pe"]="صفحه‌بعدی",
+ ["ro"]="paginaurmatoare",
+ },
+ ["nextsubpage"]={
+ ["cs"]="dalsipodstranka",
+ ["de"]="folgendeunterseite",
+ ["en"]="nextsubpage",
+ ["fr"]="souspagesuivante",
+ ["it"]="sottopaginasuccessiva",
+ ["nl"]="volgendesubpagina",
+ ["pe"]="زیرصفحه‌بعدی",
+ ["ro"]="urmatoareasubpagina",
+ },
+ ["no"]={
+ ["cs"]="ne",
+ ["de"]="nein",
+ ["en"]="no",
+ ["fr"]="non",
+ ["it"]="no",
+ ["nl"]="nee",
+ ["pe"]="نه",
+ ["ro"]="nu",
+ },
+ ["nocheck"]={
+ ["cs"]="nocheck",
+ ["de"]="nocheck",
+ ["en"]="nocheck",
+ ["fr"]="nonverifie",
+ ["it"]="nocheck",
+ ["nl"]="geencontrole",
+ ["pe"]="بدون‌بررسی",
+ ["ro"]="nocheck",
+ },
+ ["nofit"]={
+ ["cs"]="nofit",
+ ["de"]="nofit",
+ ["en"]="nofit",
+ ["fr"]="nofit",
+ ["it"]="nofit",
+ ["nl"]="nietpassend",
+ ["pe"]="بدون‌پرکردن",
+ ["ro"]="nofit",
+ },
+ ["nogrid"]={
+ ["cs"]="nogrid",
+ ["de"]="nogrid",
+ ["en"]="nogrid",
+ ["fr"]="nogrid",
+ ["it"]="nogrid",
+ ["nl"]="geengrid",
+ ["pe"]="بدون‌توری",
+ ["ro"]="nogrid",
+ },
+ ["nohz"]={
+ ["cs"]="nohz",
+ ["de"]="nohz",
+ ["en"]="nohz",
+ ["fr"]="nohz",
+ ["it"]="nohz",
+ ["nl"]="geenhz",
+ ["pe"]="nohz",
+ ["ro"]="nohz",
+ },
+ ["nomarking"]={
+ ["cs"]="zadneznaceni",
+ ["de"]="keinebeschriftung",
+ ["en"]="nomarking",
+ ["fr"]="sansmarquage",
+ ["it"]="nomarcature",
+ ["nl"]="geenmarkering",
+ ["pe"]="بدون‌نشانه‌گذاری",
+ ["ro"]="faramarcare",
+ },
+ ["none"]={
+ ["cs"]="zadny",
+ ["de"]="kein",
+ ["en"]="none",
+ ["fr"]="rien",
+ ["it"]="nessuno",
+ ["nl"]="geen",
+ ["pe"]="هیچکدام",
+ ["ro"]="niciunul",
+ },
+ ["nonumber"]={
+ ["cs"]="nonumber",
+ ["de"]="nonumber",
+ ["en"]="nonumber",
+ ["fr"]="sansnumero",
+ ["it"]="nonumber",
+ ["nl"]="geennummer",
+ ["pe"]="بدون‌شماره",
+ ["ro"]="nonumber",
+ },
+ ["normal"]={
+ ["cs"]="normalni",
+ ["de"]="normal",
+ ["en"]="normal",
+ ["fr"]="normal",
+ ["it"]="normale",
+ ["nl"]="normaal",
+ ["pe"]="نرمال",
+ ["ro"]="normal",
+ },
+ ["nospacing"]={
+ ["cs"]="nospacing",
+ ["de"]="nospacing",
+ ["en"]="nospacing",
+ ["fr"]="sansespacement",
+ ["it"]="nospacing",
+ ["nl"]="geenspatiering",
+ ["pe"]="بدون‌فضاگذاری",
+ ["ro"]="nospacing",
+ },
+ ["not"]={
+ ["cs"]="ne",
+ ["de"]="nicht",
+ ["en"]="not",
+ ["fr"]="pas",
+ ["it"]="non",
+ ["nl"]="niet",
+ ["pe"]="بدون",
+ ["ro"]="nu",
+ },
+ ["note"]={
+ ["en"]="note",
+ },
+ ["nothanging"]={
+ ["cs"]="nothanging",
+ ["de"]="nothanging",
+ ["en"]="nothanging",
+ ["fr"]="nonsuspendu",
+ ["it"]="nonsospeso",
+ ["nl"]="niethangend",
+ ["pe"]="بدون‌آویزان‌کردن",
+ ["ro"]="nothanging",
+ },
+ ["nothyphenated"]={
+ ["cs"]="nothyphenated",
+ ["de"]="nothyphenated",
+ ["en"]="nothyphenated",
+ ["fr"]="nothyphenated",
+ ["it"]="nonsillabato",
+ ["nl"]="nietafgebroken",
+ ["pe"]="بدون‌شکست",
+ ["ro"]="nedespsilabe",
+ },
+ ["november"]={
+ ["cs"]="listopad",
+ ["de"]="November",
+ ["en"]="November",
+ ["fr"]="novembre",
+ ["it"]="novembre",
+ ["nl"]="november",
+ ["pe"]="نوامبر",
+ ["ro"]="noiembrie",
+ },
+ ["nowhere"]={
+ ["cs"]="nikde",
+ ["de"]="nirgens",
+ ["en"]="nowhere",
+ ["fr"]="nulpart",
+ ["it"]="danessunaparte",
+ ["nl"]="nergens",
+ ["pe"]="هیچ‌حا",
+ ["ro"]="niciunde",
+ },
+ ["nowhite"]={
+ ["cs"]="zadnabila",
+ ["de"]="keinweiss",
+ ["en"]="nowhite",
+ ["fr"]="sansblanc",
+ ["it"]="nobianco",
+ ["nl"]="geenwit",
+ ["pe"]="سفید‌نه",
+ ["ro"]="faraalb",
+ },
+ ["number"]={
+ ["cs"]="cislo",
+ ["de"]="nummer",
+ ["en"]="number",
+ ["fr"]="numero",
+ ["it"]="numero",
+ ["nl"]="nummer",
+ ["pe"]="شماره",
+ ["ro"]="numar",
+ },
+ ["numbers"]={
+ ["cs"]="cisla",
+ ["de"]="ziffern",
+ ["en"]="numbers",
+ ["fr"]="numeros",
+ ["it"]="numeri",
+ ["nl"]="cijfers",
+ ["pe"]="شماره‌ها",
+ ["ro"]="numere",
+ },
+ ["october"]={
+ ["cs"]="rijen",
+ ["de"]="Oktober",
+ ["en"]="October",
+ ["fr"]="octobre",
+ ["it"]="ottobre",
+ ["nl"]="oktober",
+ ["pe"]="اکتبر",
+ ["ro"]="octombrie",
+ },
+ ["odd"]={
+ ["cs"]="liche",
+ ["de"]="ungerade",
+ ["en"]="odd",
+ ["fr"]="impair",
+ ["it"]="dispari",
+ ["nl"]="oneven",
+ ["pe"]="فرد",
+ ["ro"]="impar",
+ },
+ ["off"]={
+ ["cs"]="vyp",
+ ["de"]="aus",
+ ["en"]="off",
+ ["fr"]="desactive",
+ ["it"]="disattivo",
+ ["nl"]="uit",
+ ["pe"]="خاموش",
+ ["ro"]="dezactivat",
+ },
+ ["offset"]={
+ ["cs"]="offset",
+ ["de"]="offset",
+ ["en"]="offset",
+ ["fr"]="offset",
+ ["it"]="offset",
+ ["nl"]="offset",
+ ["pe"]="آفست",
+ ["ro"]="offset",
+ },
+ ["old"]={
+ ["cs"]="old",
+ ["de"]="old",
+ ["en"]="old",
+ ["fr"]="old",
+ ["it"]="old",
+ ["nl"]="oud",
+ ["pe"]="قدیمی",
+ ["ro"]="old",
+ },
+ ["on"]={
+ ["cs"]="zap",
+ ["de"]="an",
+ ["en"]="on",
+ ["fr"]="actif",
+ ["it"]="attivo",
+ ["nl"]="aan",
+ ["pe"]="روی",
+ ["ro"]="on",
+ },
+ ["one"]={
+ ["cs"]="jedna",
+ ["de"]="eins",
+ ["en"]="one",
+ ["fr"]="un",
+ ["it"]="uno",
+ ["nl"]="een",
+ ["pe"]="یک",
+ ["ro"]="unu",
+ },
+ ["opposite"]={
+ ["cs"]="naproti",
+ ["de"]="gegenueber",
+ ["en"]="opposite",
+ ["fr"]="opposition",
+ ["it"]="opposto",
+ ["nl"]="naast",
+ ["pe"]="مخالف",
+ ["ro"]="opus",
+ },
+ ["outer"]={
+ ["cs"]="vnejsi",
+ ["de"]="aussen",
+ ["en"]="outer",
+ ["fr"]="exterieur",
+ ["it"]="esterno",
+ ["nl"]="buiten",
+ ["pe"]="خارجی",
+ ["ro"]="extern",
+ },
+ ["outeredge"]={
+ ["cs"]="outeredge",
+ ["de"]="outeredge",
+ ["en"]="outeredge",
+ ["fr"]="bordexterieur",
+ ["it"]="bordoesterno",
+ ["nl"]="buitenrand",
+ ["pe"]="لبه‌خارجی",
+ ["ro"]="outeredge",
+ },
+ ["outermargin"]={
+ ["cs"]="outermargin",
+ ["de"]="outermargin",
+ ["en"]="outermargin",
+ ["fr"]="margeexterieure",
+ ["it"]="margineesterno",
+ ["nl"]="buitenmarge",
+ ["pe"]="حاشیه‌خارجی",
+ ["ro"]="outermargin",
+ },
+ ["overlay"]={
+ ["cs"]="prekryv",
+ ["de"]="overlay",
+ ["en"]="overlay",
+ ["fr"]="revetement",
+ ["it"]="sovrapponi",
+ ["nl"]="overlay",
+ ["pe"]="پوشش",
+ ["ro"]="overlay",
+ },
+ ["overprint"]={
+ ["cs"]="overprint",
+ ["de"]="overprint",
+ ["en"]="overprint",
+ ["fr"]="overprint",
+ ["it"]="overprint",
+ ["nl"]="overprint",
+ ["pe"]="overprint",
+ ["ro"]="overprint",
+ },
+ ["packed"]={
+ ["cs"]="zhustene",
+ ["de"]="gepackt",
+ ["en"]="packed",
+ ["fr"]="groupe",
+ ["it"]="impaccato",
+ ["nl"]="opelkaar",
+ ["pe"]="فشرده",
+ ["ro"]="impachetat",
+ },
+ ["page"]={
+ ["cs"]="stranka",
+ ["de"]="seite",
+ ["en"]="page",
+ ["fr"]="page",
+ ["it"]="pagina",
+ ["nl"]="pagina",
+ ["pe"]="صفحه",
+ ["ro"]="pagina",
+ },
+ ["pagecomment"]={
+ ["cs"]="komentarstranky",
+ ["de"]="pagecomment",
+ ["en"]="pagecomment",
+ ["fr"]="commentairepage",
+ ["it"]="commentopagina",
+ ["nl"]="paginacommentaar",
+ ["pe"]="توضیح‌صفحه",
+ ["ro"]="comentariupagina",
+ },
+ ["pagenumber"]={
+ ["cs"]="cislostranky",
+ ["de"]="seitennummer",
+ ["en"]="pagenumber",
+ ["fr"]="numeropage",
+ ["it"]="numeropagina",
+ ["nl"]="paginanummer",
+ ["pe"]="شماره‌صفحه",
+ ["ro"]="numarpagina",
+ },
+ ["paper"]={
+ ["cs"]="papir",
+ ["de"]="papier",
+ ["en"]="paper",
+ ["fr"]="papier",
+ ["it"]="carta",
+ ["nl"]="papier",
+ ["pe"]="برگ",
+ ["ro"]="foaie",
+ },
+ ["paragraph"]={
+ ["cs"]="odstavec",
+ ["de"]="absatz",
+ ["en"]="paragraph",
+ ["fr"]="paragraphe",
+ ["it"]="capoverso",
+ ["nl"]="alinea",
+ ["pe"]="پاراگراف",
+ ["ro"]="paragraf",
+ },
+ ["part"]={
+ ["cs"]="cast",
+ ["de"]="teil",
+ ["en"]="part",
+ ["fr"]="partie",
+ ["it"]="parte",
+ ["nl"]="deel",
+ ["pe"]="قسمت",
+ ["ro"]="parte",
+ },
+ ["positive"]={
+ ["cs"]="positiv",
+ ["de"]="positiv",
+ ["en"]="positive",
+ ["fr"]="positif",
+ ["it"]="positivo",
+ ["nl"]="positief",
+ ["pe"]="مثبت",
+ ["ro"]="positiv",
+ },
+ ["postponing"]={
+ ["cs"]="odlozit",
+ ["de"]="verschieben",
+ ["en"]="postponing",
+ ["fr"]="postponing",
+ ["it"]="posporre",
+ ["nl"]="uitstellen",
+ ["pe"]="تاخیر",
+ ["ro"]="postponing",
+ },
+ ["postscript"]={
+ ["cs"]="postscript",
+ ["de"]="postscript",
+ ["en"]="postscript",
+ ["fr"]="postscript",
+ ["it"]="postscript",
+ ["nl"]="postscript",
+ ["pe"]="پست‌اسکریپت",
+ ["ro"]="postscript",
+ },
+ ["preference"]={
+ ["cs"]="nastaveni",
+ ["de"]="einstellung",
+ ["en"]="preference",
+ ["fr"]="preference",
+ ["it"]="preferenza",
+ ["nl"]="voorkeur",
+ ["pe"]="ترجیح",
+ ["ro"]="preferinta",
+ },
+ ["preview"]={
+ ["cs"]="nahled",
+ ["de"]="vorschau",
+ ["en"]="preview",
+ ["fr"]="previsualisation",
+ ["it"]="anteprima",
+ ["nl"]="preview",
+ ["pe"]="پیش‌دید",
+ ["ro"]="previzualizare",
+ },
+ ["previous"]={
+ ["cs"]="predchozi",
+ ["de"]="vorig",
+ ["en"]="previous",
+ ["fr"]="precedent",
+ ["it"]="precedente",
+ ["nl"]="vorige",
+ ["pe"]="قبلی",
+ ["ro"]="precedent",
+ },
+ ["previousevenpage"]={
+ ["cs"]="predchozisudastranka",
+ ["de"]="vorigegeradeseite",
+ ["en"]="previousevenpage",
+ ["fr"]="pagepaireprecedente",
+ ["it"]="paginapariprecedente",
+ ["nl"]="vorigeevenpagina",
+ ["pe"]="صفحه‌زوج‌قبلی",
+ ["ro"]="paginaparaprecedenta",
+ },
+ ["previousoddpage"]={
+ ["cs"]="predchozilichastranka",
+ ["de"]="vorigeungeradeseite",
+ ["en"]="previousoddpage",
+ ["fr"]="pageimpaireprecedente",
+ ["it"]="paginadispariprecedente",
+ ["nl"]="vorigeonevenpagina",
+ ["pe"]="صفحه‌فردقبلی",
+ ["ro"]="paginaimparaprecedenta",
+ },
+ ["previouspage"]={
+ ["cs"]="predchozistranka",
+ ["de"]="vorigeseite",
+ ["en"]="previouspage",
+ ["fr"]="pageprecedente",
+ ["it"]="paginaprecedente",
+ ["nl"]="vorigepagina",
+ ["pe"]="صفحه‌قبلی",
+ ["ro"]="paginaanterioara",
+ },
+ ["previoussubpage"]={
+ ["cs"]="predchozipodstranka",
+ ["de"]="vorigeunterseite",
+ ["en"]="previoussubpage",
+ ["fr"]="souspageprecedente",
+ ["it"]="sottopaginaprecedente",
+ ["nl"]="vorigesubpagina",
+ ["pe"]="زیرصفحه‌قبلی",
+ ["ro"]="subpaginaanterioara",
+ },
+ ["printable"]={
+ ["cs"]="tisknutelne",
+ ["de"]="druckbar",
+ ["en"]="printable",
+ ["fr"]="editable",
+ ["it"]="stampabile",
+ ["nl"]="printbaar",
+ ["pe"]="قابل‌چاپ",
+ ["ro"]="tiparibil",
+ },
+ ["process"]={
+ ["cs"]="process",
+ ["de"]="process",
+ ["en"]="process",
+ ["fr"]="process",
+ ["it"]="process",
+ ["nl"]="proces",
+ ["pe"]="پردازش",
+ ["ro"]="process",
+ },
+ ["product"]={
+ ["cs"]="produkt",
+ ["de"]="produkt",
+ ["en"]="product",
+ ["fr"]="produit",
+ ["it"]="prodotto",
+ ["nl"]="produkt",
+ ["pe"]="محصول",
+ ["ro"]="produs",
+ },
+ ["program"]={
+ ["cs"]="program",
+ ["de"]="programm",
+ ["en"]="program",
+ ["fr"]="programme",
+ ["it"]="programma",
+ ["nl"]="programma",
+ ["pe"]="برنامه",
+ ["ro"]="program",
+ },
+ ["project"]={
+ ["cs"]="projekt",
+ ["de"]="projekt",
+ ["en"]="project",
+ ["fr"]="projet",
+ ["it"]="progetto",
+ ["nl"]="project",
+ ["pe"]="پروژه",
+ ["ro"]="proiect",
+ },
+ ["protected"]={
+ ["cs"]="chranene",
+ ["de"]="geschuetzt",
+ ["en"]="protected",
+ ["fr"]="protege",
+ ["it"]="protetto",
+ ["nl"]="beschermd",
+ ["pe"]="حفاظت‌شده",
+ ["ro"]="protejat",
+ },
+ ["quadruple"]={
+ ["cs"]="ctyrnasobny",
+ ["de"]="viertel",
+ ["en"]="quadruple",
+ ["fr"]="quadruple",
+ ["it"]="quadruplo",
+ ["nl"]="viertal",
+ ["pe"]="quadruple",
+ ["ro"]="cvadrupul",
+ },
+ ["quotation"]={
+ ["cs"]="citace",
+ ["de"]="zitat",
+ ["en"]="quotation",
+ ["fr"]="citation",
+ ["it"]="citazione",
+ ["nl"]="citaat",
+ ["pe"]="نقل‌قول",
+ ["ro"]="citat",
+ },
+ ["quote"]={
+ ["cs"]="citovat",
+ ["de"]="zitieren",
+ ["en"]="quote",
+ ["fr"]="citer",
+ ["it"]="menzione",
+ ["nl"]="citeer",
+ ["pe"]="نقل",
+ ["ro"]="minicitat",
+ },
+ ["ran"]={
+ ["cs"]="rozsah",
+ ["de"]="ran",
+ ["en"]="ran",
+ ["fr"]="cours",
+ ["it"]="corse",
+ ["nl"]="ran",
+ ["pe"]="برد",
+ ["ro"]="rulat",
+ },
+ ["random"]={
+ ["cs"]="nahodny",
+ ["de"]="zufaellig",
+ ["en"]="random",
+ ["fr"]="aleatoire",
+ ["it"]="casuale",
+ ["nl"]="willekeurig",
+ ["pe"]="تصادفی",
+ ["ro"]="aleator",
+ },
+ ["readonly"]={
+ ["cs"]="pouzeprocteni",
+ ["de"]="nurlesbar",
+ ["en"]="readonly",
+ ["fr"]="lectureseule",
+ ["it"]="solalettura",
+ ["nl"]="alleenleesbaar",
+ ["pe"]="تنهاخواندنی",
+ ["ro"]="readonly",
+ },
+ ["rectangular"]={
+ ["cs"]="pravouhly",
+ ["de"]="rechteckig",
+ ["en"]="rectangular",
+ ["fr"]="rectangulaire",
+ ["it"]="rettangolare",
+ ["nl"]="recht",
+ ["pe"]="چهارگوشه",
+ ["ro"]="rectangular",
+ },
+ ["referral"]={
+ ["cs"]="znacka",
+ ["de"]="merkmal",
+ ["en"]="referral",
+ ["fr"]="referral",
+ ["it"]="referral",
+ ["nl"]="kenmerk",
+ ["pe"]="مراجعه",
+ ["ro"]="referinta",
+ },
+ ["register"]={
+ ["cs"]="rejstrik",
+ ["de"]="register",
+ ["en"]="register",
+ ["fr"]="registre",
+ ["it"]="registro",
+ ["nl"]="register",
+ ["pe"]="ثبت",
+ ["ro"]="registru",
+ },
+ ["regular"]={
+ ["cs"]="pravidelne",
+ ["de"]="regular",
+ ["en"]="regular",
+ ["fr"]="regulier",
+ ["it"]="regolare",
+ ["nl"]="regular",
+ ["pe"]="منظم",
+ ["ro"]="regular",
+ },
+ ["rekening"]={
+ ["cs"]="rekening",
+ ["de"]="rekening",
+ ["en"]="rekening",
+ ["fr"]="rekening",
+ ["it"]="rekening",
+ ["nl"]="rekening",
+ ["pe"]="rekening",
+ ["ro"]="rekening",
+ },
+ ["relative"]={
+ ["cs"]="relativni",
+ ["de"]="relativ",
+ ["en"]="relative",
+ ["fr"]="relatif",
+ ["it"]="relativo",
+ ["nl"]="relatief",
+ ["pe"]="نسبی",
+ ["ro"]="relativ",
+ },
+ ["repeat"]={
+ ["cs"]="opakovat",
+ ["de"]="wiederholen",
+ ["en"]="repeat",
+ ["fr"]="repete",
+ ["it"]="ripeti",
+ ["nl"]="herhaal",
+ ["pe"]="تکرار",
+ ["ro"]="repetat",
+ },
+ ["required"]={
+ ["cs"]="pozadovane",
+ ["de"]="obligatorisch",
+ ["en"]="required",
+ ["fr"]="recquis",
+ ["it"]="richiestp",
+ ["nl"]="verplicht",
+ ["pe"]="موردنیاز",
+ ["ro"]="obligatoriu",
+ },
+ ["reset"]={
+ ["cs"]="reset",
+ ["de"]="zuruecksetzten",
+ ["en"]="reset",
+ ["fr"]="raz",
+ ["it"]="reimposta",
+ ["nl"]="reset",
+ ["pe"]="بازنشانی",
+ ["ro"]="reset",
+ },
+ ["reverse"]={
+ ["cs"]="reverse",
+ ["de"]="reverse",
+ ["en"]="reverse",
+ ["fr"]="inverse",
+ ["it"]="invertito",
+ ["nl"]="omgekeerd",
+ ["pe"]="برعکس",
+ ["ro"]="reverse",
+ },
+ ["right"]={
+ ["cs"]="vpravo",
+ ["de"]="rechts",
+ ["en"]="right",
+ ["fr"]="droite",
+ ["it"]="destra",
+ ["nl"]="rechts",
+ ["pe"]="راست",
+ ["ro"]="dreapta",
+ },
+ ["rightedge"]={
+ ["cs"]="pravahrana",
+ ["de"]="rechterkante",
+ ["en"]="rightedge",
+ ["fr"]="borddroit",
+ ["it"]="bordodestro",
+ ["nl"]="rechterrand",
+ ["pe"]="لبه‌راست",
+ ["ro"]="borduradreapta",
+ },
+ ["righthanging"]={
+ ["cs"]="righthanging",
+ ["de"]="righthanging",
+ ["en"]="righthanging",
+ ["fr"]="righthanging",
+ ["it"]="righthanging",
+ ["nl"]="rechtshangend",
+ ["pe"]="آویزان‌کردن‌راست",
+ ["ro"]="righthanging",
+ },
+ ["rightmargin"]={
+ ["cs"]="pravyokraj",
+ ["de"]="rechterrand",
+ ["en"]="rightmargin",
+ ["fr"]="margedroite",
+ ["it"]="marginedestro",
+ ["nl"]="rechtermarge",
+ ["pe"]="حاشیه‌راست",
+ ["ro"]="marginedreapta",
+ },
+ ["rightpage"]={
+ ["cs"]="pravastranka",
+ ["de"]="rechterseite",
+ ["en"]="rightpage",
+ ["fr"]="pagedroite",
+ ["it"]="paginadestra",
+ ["nl"]="rechterpagina",
+ ["pe"]="صفحه‌راست",
+ ["ro"]="paginadreapta",
+ },
+ ["righttoleft"]={
+ ["cs"]="righttoleft",
+ ["de"]="righttoleft",
+ ["en"]="righttoleft",
+ ["fr"]="righttoleft",
+ ["it"]="righttoleft",
+ ["nl"]="righttoleft",
+ ["pe"]="righttoleft",
+ ["ro"]="righttoleft",
+ },
+ ["roman"]={
+ ["cs"]="antikva",
+ ["de"]="antiqua",
+ ["en"]="roman",
+ ["fr"]="roman",
+ ["it"]="roman",
+ ["nl"]="romaan",
+ ["pe"]="رومن",
+ ["ro"]="roman",
+ },
+ ["romannumerals"]={
+ ["cs"]="rimskecislice",
+ ["de"]="roemischezahlen",
+ ["en"]="romannumerals",
+ ["fr"]="chiffresromains",
+ ["it"]="numeriromani",
+ ["nl"]="romeins",
+ ["pe"]="شماره‌لاتین",
+ ["ro"]="numereromane",
+ },
+ ["rotate"]={
+ ["cs"]="otoc",
+ ["de"]="drehe",
+ ["en"]="rotate",
+ ["fr"]="oriente",
+ ["it"]="ruota",
+ ["nl"]="roteer",
+ ["pe"]="دوران",
+ ["ro"]="rotit",
+ },
+ ["rotated"]={
+ ["cs"]="otoceno",
+ ["de"]="gedreht",
+ ["en"]="rotated",
+ ["fr"]="tourne",
+ ["it"]="ruotato",
+ ["nl"]="geroteerd",
+ ["pe"]="دوران‌یافته",
+ ["ro"]="rotat",
+ },
+ ["round"]={
+ ["cs"]="zaobleny",
+ ["de"]="rund",
+ ["en"]="round",
+ ["fr"]="rond",
+ ["it"]="rotondo",
+ ["nl"]="rond",
+ ["pe"]="گرد",
+ ["ro"]="rotund",
+ },
+ ["row"]={
+ ["cs"]="row",
+ ["de"]="row",
+ ["en"]="row",
+ ["fr"]="rang",
+ ["it"]="row",
+ ["nl"]="rij",
+ ["pe"]="سطر",
+ ["ro"]="rand",
+ },
+ ["rule"]={
+ ["cs"]="linka",
+ ["de"]="linie",
+ ["en"]="rule",
+ ["fr"]="regle",
+ ["it"]="linea",
+ ["nl"]="lijn",
+ ["pe"]="خط",
+ ["ro"]="rigla",
+ },
+ ["samepage"]={
+ ["cs"]="stejnastranka",
+ ["de"]="selbeseite",
+ ["en"]="samepage",
+ ["fr"]="memepage",
+ ["it"]="stessapagina",
+ ["nl"]="zelfdepagina",
+ ["pe"]="همان‌صفحه",
+ ["ro"]="aceeasipagina",
+ },
+ ["sans"]={
+ ["cs"]="sans",
+ ["de"]="sans",
+ ["en"]="sans",
+ ["fr"]="sans",
+ ["it"]="sans",
+ ["nl"]="sans",
+ ["pe"]="سانز",
+ ["ro"]="sans",
+ },
+ ["sansbold"]={
+ ["cs"]="sanstucne",
+ ["de"]="sansfett",
+ ["en"]="sansbold",
+ ["fr"]="sansgras",
+ ["it"]="sansgrassetto",
+ ["nl"]="sansvet",
+ ["pe"]="مشکی‌سانز",
+ ["ro"]="sansaldin",
+ },
+ ["sansserif"]={
+ ["cs"]="bezserifu",
+ ["de"]="grotesk",
+ ["en"]="sansserif",
+ ["fr"]="sansserif",
+ ["it"]="sansserif",
+ ["nl"]="schreefloos",
+ ["pe"]="سانزسریف",
+ ["ro"]="sansserif",
+ },
+ ["saturday"]={
+ ["cs"]="sobota",
+ ["de"]="samstag",
+ ["en"]="saturday",
+ ["fr"]="samedi",
+ ["it"]="sabato",
+ ["nl"]="zaterdag",
+ ["pe"]="شنبه",
+ ["ro"]="sambata",
+ },
+ ["screen"]={
+ ["cs"]="rastr",
+ ["de"]="raster",
+ ["en"]="screen",
+ ["fr"]="ecran",
+ ["it"]="schermo",
+ ["nl"]="raster",
+ ["pe"]="پرده",
+ ["ro"]="ecran",
+ },
+ ["section"]={
+ ["cs"]="sekce",
+ ["de"]="absatz",
+ ["en"]="section",
+ ["fr"]="section",
+ ["it"]="capoverso",
+ ["nl"]="paragraaf",
+ ["pe"]="بخش",
+ ["ro"]="sectiune",
+ },
+ ["sectionblockenvironment"]={
+ ["cs"]="sectionblockenvironment",
+ ["de"]="sectionblockenvironment",
+ ["en"]="sectionblockenvironment",
+ ["fr"]="environementblocsection",
+ ["it"]="ambientebloccosezione",
+ ["nl"]="sectieblokomgeving",
+ ["pe"]="محیط‌بلوک‌بخش",
+ ["ro"]="blocsectiuneambient",
+ },
+ ["sectionnumber"]={
+ ["cs"]="cislooddilu",
+ ["de"]="abschnittsnummer",
+ ["en"]="sectionnumber",
+ ["fr"]="numerosection",
+ ["it"]="numerosezione",
+ ["nl"]="sectienummer",
+ ["pe"]="شماره‌بخش",
+ ["ro"]="numarsetiune",
+ },
+ ["see"]={
+ ["cs"]="viz",
+ ["de"]="sieh",
+ ["en"]="see",
+ ["fr"]="voit",
+ ["it"]="vedi",
+ ["nl"]="zie",
+ ["pe"]="ببینید",
+ ["ro"]="vezi",
+ },
+ ["september"]={
+ ["cs"]="zari",
+ ["de"]="September",
+ ["en"]="September",
+ ["fr"]="septembre",
+ ["it"]="settembre",
+ ["nl"]="september",
+ ["pe"]="سپتامبر",
+ ["ro"]="septembrie",
+ },
+ ["serif"]={
+ ["cs"]="serif",
+ ["de"]="serif",
+ ["en"]="serif",
+ ["fr"]="serif",
+ ["it"]="serif",
+ ["nl"]="serif",
+ ["pe"]="سریف",
+ ["ro"]="serif",
+ },
+ ["serried"]={
+ ["cs"]="semknuto",
+ ["de"]="kleinerabstand",
+ ["en"]="serried",
+ ["fr"]="serried",
+ ["it"]="vicino",
+ ["nl"]="aanelkaar",
+ ["pe"]="تنگ‌هم",
+ ["ro"]="serried",
+ },
+ ["setups"]={
+ ["cs"]="einstellungen",
+ ["de"]="impostazioni",
+ ["en"]="setups",
+ ["fr"]="reglages",
+ ["it"]="nastaveni",
+ ["nl"]="instellingen",
+ ["pe"]="بارگذاریها",
+ ["ro"]="setari",
+ },
+ ["sheet"]={
+ ["cs"]="sheet",
+ ["de"]="sheet",
+ ["en"]="sheet",
+ ["fr"]="sheet",
+ ["it"]="sheet",
+ ["nl"]="sheet",
+ ["pe"]="ورقه",
+ ["ro"]="sheet",
+ },
+ ["singlesided"]={
+ ["cs"]="jednostranne",
+ ["de"]="einzelseitig",
+ ["en"]="singlesided",
+ ["fr"]="recto",
+ ["it"]="facciasingola",
+ ["nl"]="enkelzijdig",
+ ["pe"]="یک‌رو",
+ ["ro"]="ofata",
+ },
+ ["slanted"]={
+ ["cs"]="sklonene",
+ ["de"]="geneigt",
+ ["en"]="slanted",
+ ["fr"]="incline",
+ ["it"]="inclinato",
+ ["nl"]="schuin",
+ ["pe"]="خوابیده",
+ ["ro"]="inclinat",
+ },
+ ["slantedbold"]={
+ ["cs"]="sklonenetucne",
+ ["de"]="geneigtfett",
+ ["en"]="slantedbold",
+ ["fr"]="grasincline",
+ ["it"]="inclinatograssetto",
+ ["nl"]="schuinvet",
+ ["pe"]="مشکی‌خوابیده",
+ ["ro"]="inclinataldin",
+ },
+ ["small"]={
+ ["cs"]="male",
+ ["de"]="klein",
+ ["en"]="small",
+ ["fr"]="petit",
+ ["it"]="piccolo",
+ ["nl"]="klein",
+ ["pe"]="کوچک",
+ ["ro"]="mic",
+ },
+ ["smallbodyfont"]={
+ ["cs"]="smallbodyfont",
+ ["de"]="smallbodyfont",
+ ["en"]="smallbodyfont",
+ ["fr"]="petitepolicecorps",
+ ["it"]="piccolofontdelcorpo",
+ ["nl"]="kleinkorps",
+ ["pe"]="قلم‌بدنه‌کوچک",
+ ["ro"]="smallbodyfont",
+ },
+ ["smallbold"]={
+ ["cs"]="maletucne",
+ ["de"]="kleinfett",
+ ["en"]="smallbold",
+ ["fr"]="graspetit",
+ ["it"]="piccolograssetto",
+ ["nl"]="kleinvet",
+ ["pe"]="مشکی‌کوچک",
+ ["ro"]="micaldin",
+ },
+ ["smallbolditalic"]={
+ ["cs"]="maletucnekurzivni",
+ ["de"]="kleinfettitalic",
+ ["en"]="smallbolditalic",
+ ["fr"]="italiquegraspetit",
+ ["it"]="piccolograssettocorsivo",
+ ["nl"]="kleinvetitalic",
+ ["pe"]="ایتالیک‌مشکی‌کوچک",
+ ["ro"]="micaldininclinat",
+ },
+ ["smallboldslanted"]={
+ ["cs"]="maletucnesklonene",
+ ["de"]="kleinfettgeneigt",
+ ["en"]="smallboldslanted",
+ ["fr"]="inclinegraspetit",
+ ["it"]="piccolograssettoinclinato",
+ ["nl"]="kleinvetschuin",
+ ["pe"]="خوابیده‌مشکی‌کوچک",
+ ["ro"]="micaldininclinat",
+ },
+ ["smallcaps"]={
+ ["cs"]="kapitalky",
+ ["de"]="smallcaps",
+ ["en"]="smallcaps",
+ ["fr"]="petitescapitales",
+ ["it"]="maiuscoletto",
+ ["nl"]="smallcaps",
+ ["pe"]="smallcaps",
+ ["ro"]="majusculemici",
+ },
+ ["smallitalic"]={
+ ["cs"]="malekurzivni",
+ ["de"]="kleinitalic",
+ ["en"]="smallitalic",
+ ["fr"]="italiquepetit",
+ ["it"]="piccolocorsivo",
+ ["nl"]="kleinitalic",
+ ["pe"]="ایتالیک‌کوچک",
+ ["ro"]="micitalic",
+ },
+ ["smallitalicbold"]={
+ ["cs"]="malekurzivnitucne",
+ ["de"]="kleinitalicfett",
+ ["en"]="smallitalicbold",
+ ["fr"]="grasitaliquepetit",
+ ["it"]="piccolocorsivograssetto",
+ ["nl"]="kleinitalicvet",
+ ["pe"]="مشکی‌ایتالیک‌کوچک",
+ ["ro"]="micitalicaldin",
+ },
+ ["smallnormal"]={
+ ["cs"]="malenormalni",
+ ["de"]="kleinnormal",
+ ["en"]="smallnormal",
+ ["fr"]="normalpetit",
+ ["it"]="piccolonormale",
+ ["nl"]="kleinnormaal",
+ ["pe"]="نرمال‌کوچک",
+ ["ro"]="micnormal",
+ },
+ ["smallslanted"]={
+ ["cs"]="malesklonene",
+ ["de"]="kleingeneigt",
+ ["en"]="smallslanted",
+ ["fr"]="inclinepetit",
+ ["it"]="piccoloinclinato",
+ ["nl"]="kleinschuin",
+ ["pe"]="خوابیده‌کوچک",
+ ["ro"]="micinclinat",
+ },
+ ["smallslantedbold"]={
+ ["cs"]="malesklonenetucne",
+ ["de"]="kleingeneigtfett",
+ ["en"]="smallslantedbold",
+ ["fr"]="grasinclinepetit",
+ ["it"]="piccoloinclinatograssetto",
+ ["nl"]="kleinschuinvet",
+ ["pe"]="مشکی‌خوابیده‌کوچک",
+ ["ro"]="micinclinataldin",
+ },
+ ["smalltype"]={
+ ["cs"]="maletype",
+ ["de"]="kleintippen",
+ ["en"]="smalltype",
+ ["fr"]="petittype",
+ ["it"]="piccolotype",
+ ["nl"]="kleintype",
+ ["pe"]="تایپ‌کوچک",
+ ["ro"]="mictype",
+ },
+ ["somewhere"]={
+ ["cs"]="nekde",
+ ["de"]="irgendwo",
+ ["en"]="somewhere",
+ ["fr"]="qqpart",
+ ["it"]="daqualcheparte",
+ ["nl"]="ergens",
+ ["pe"]="جایی",
+ ["ro"]="undeva",
+ },
+ ["sorted"]={
+ ["cs"]="tridene",
+ ["de"]="sortiert",
+ ["en"]="sorted",
+ ["fr"]="trie",
+ ["it"]="ordinato",
+ ["nl"]="gesorteerd",
+ ["pe"]="مرتب",
+ ["ro"]="sortat",
+ },
+ ["space"]={
+ ["cs"]="mezera",
+ ["de"]="spatium",
+ ["en"]="space",
+ ["fr"]="espace",
+ ["it"]="spazio",
+ ["nl"]="spatie",
+ ["pe"]="فضا",
+ ["ro"]="spatiu",
+ },
+ ["spacing"]={
+ ["cs"]="mezerovani",
+ ["de"]="spatiumausgleich",
+ ["en"]="spacing",
+ ["fr"]="espacement",
+ ["it"]="spaziatura",
+ ["nl"]="spatiering",
+ ["pe"]="فضاگذاری",
+ ["ro"]="spatiere",
+ },
+ ["speech"]={
+ ["cs"]="speech",
+ ["de"]="speech",
+ ["en"]="speech",
+ ["fr"]="discours",
+ ["it"]="speech",
+ ["nl"]="spraak",
+ ["pe"]="سخنرانی",
+ ["ro"]="speech",
+ },
+ ["split"]={
+ ["cs"]="split",
+ ["de"]="split",
+ ["en"]="split",
+ ["fr"]="split",
+ ["it"]="separa",
+ ["nl"]="splitsen",
+ ["pe"]="شکافتن",
+ ["ro"]="split",
+ },
+ ["spot"]={
+ ["cs"]="spot",
+ ["de"]="spot",
+ ["en"]="spot",
+ ["fr"]="spot",
+ ["it"]="spot",
+ ["nl"]="spot",
+ ["pe"]="لکه",
+ ["ro"]="spot",
+ },
+ ["standard"]={
+ ["cs"]="standardni",
+ ["de"]="standard",
+ ["en"]="standard",
+ ["fr"]="standard",
+ ["it"]="standard",
+ ["nl"]="standaard",
+ ["pe"]="استاندارد",
+ ["ro"]="standard",
+ },
+ ["start"]={
+ ["cs"]="start",
+ ["de"]="start",
+ ["en"]="start",
+ ["fr"]="demarre",
+ ["it"]="inizia",
+ ["nl"]="start",
+ ["pe"]="شروع",
+ ["ro"]="start",
+ },
+ ["sticker"]={
+ ["cs"]="sticker",
+ ["de"]="sticker",
+ ["en"]="sticker",
+ ["fr"]="sticker",
+ ["it"]="sticker",
+ ["nl"]="sticker",
+ ["pe"]="دشنه",
+ ["ro"]="sticker",
+ },
+ ["stop"]={
+ ["cs"]="stop",
+ ["de"]="stop",
+ ["en"]="stop",
+ ["fr"]="stoppe",
+ ["it"]="termina",
+ ["nl"]="stop",
+ ["pe"]="پایان",
+ ["ro"]="stop",
+ },
+ ["stopper"]={
+ ["cs"]="predel",
+ ["de"]="trenner",
+ ["en"]="stopper",
+ ["fr"]="stopper",
+ ["it"]="stopper",
+ ["nl"]="afsluiter",
+ ["pe"]="ایست",
+ ["ro"]="stopper",
+ },
+ ["stretch"]={
+ ["cs"]="natahnout",
+ ["de"]="strecken",
+ ["en"]="stretch",
+ ["fr"]="etire",
+ ["it"]="dilata",
+ ["nl"]="rek",
+ ["pe"]="بکش",
+ ["ro"]="dilatat",
+ },
+ ["strict"]={
+ ["cs"]="striktni",
+ ["de"]="streng",
+ ["en"]="strict",
+ ["fr"]="strict",
+ ["it"]="rigido",
+ ["nl"]="streng",
+ ["pe"]="اکید",
+ ["ro"]="strict",
+ },
+ ["strong"]={
+ ["cs"]="strong",
+ ["de"]="strong",
+ ["en"]="sterk",
+ ["fr"]="strong",
+ ["it"]="strong",
+ ["nl"]="strong",
+ ["pe"]="محکم",
+ ["ro"]="strong",
+ },
+ ["strut"]={
+ ["cs"]="strut",
+ ["de"]="strut",
+ ["en"]="strut",
+ ["fr"]="strut",
+ ["it"]="strut",
+ ["nl"]="strut",
+ ["pe"]="بست",
+ ["ro"]="strut",
+ },
+ ["sub"]={
+ ["cs"]="pod",
+ ["de"]="unter",
+ ["en"]="sub",
+ ["fr"]="sous",
+ ["it"]="sotto",
+ ["nl"]="sub",
+ ["pe"]="زیر",
+ ["ro"]="sub",
+ },
+ ["subbackward"]={
+ ["cs"]="podzpet",
+ ["de"]="unterrueckwaerts",
+ ["en"]="subbackward",
+ ["fr"]="sousretourarriere",
+ ["it"]="sottoindietro",
+ ["nl"]="subachteruit",
+ ["pe"]="زیرعقب‌گرد",
+ ["ro"]="subinapoi",
+ },
+ ["subformula"]={
+ ["cs"]="subrovnice",
+ ["de"]="subformel",
+ ["en"]="subformula",
+ ["fr"]="subformule",
+ ["it"]="subformula",
+ ["nl"]="subformule",
+ ["pe"]="زیرفرمول",
+ ["ro"]="subformula",
+ },
+ ["subforward"]={
+ ["cs"]="podvpred",
+ ["de"]="untervorwaerts",
+ ["en"]="subforward",
+ ["fr"]="sousavance",
+ ["it"]="sottoavanti",
+ ["nl"]="subvooruit",
+ ["pe"]="زیرجلوگرد",
+ ["ro"]="subavans",
+ },
+ ["subject"]={
+ ["cs"]="tema",
+ ["de"]="thema",
+ ["en"]="subject",
+ ["fr"]="sujet",
+ ["it"]="argomento",
+ ["nl"]="onderwerp",
+ ["pe"]="موضوع",
+ ["ro"]="subiect",
+ },
+ ["subpage"]={
+ ["cs"]="podstranka",
+ ["de"]="unterseite",
+ ["en"]="subpage",
+ ["fr"]="souspage",
+ ["it"]="sottopagina",
+ ["nl"]="subpagina",
+ ["pe"]="زیرصفحه",
+ ["ro"]="subpagina",
+ },
+ ["subsection"]={
+ ["cs"]="podsekce",
+ ["de"]="unterabsatz",
+ ["en"]="subsection",
+ ["fr"]="soussection",
+ ["it"]="sottocapoverso",
+ ["nl"]="subparagraaf",
+ ["pe"]="زیربخش",
+ ["ro"]="subsectiune",
+ },
+ ["subsubject"]={
+ ["cs"]="podtema",
+ ["de"]="unterthema",
+ ["en"]="subsubject",
+ ["fr"]="soussujet",
+ ["it"]="sottoargomento",
+ ["nl"]="subonderwerp",
+ ["pe"]="زیرموضوع",
+ ["ro"]="subsubiect",
+ },
+ ["subsubsection"]={
+ ["cs"]="podpodsekce",
+ ["de"]="unterunterabsatz",
+ ["en"]="subsubsection",
+ ["fr"]="soussoussection",
+ ["it"]="sottosottocapoverso",
+ ["nl"]="subsubparagraaf",
+ ["pe"]="زیرزیربخش",
+ ["ro"]="subsubsectiune",
+ },
+ ["subsubsubject"]={
+ ["cs"]="podpodtema",
+ ["de"]="unterunterthema",
+ ["en"]="subsubsubject",
+ ["fr"]="soussoussujet",
+ ["it"]="sottosottoargomento",
+ ["nl"]="subsubonderwerp",
+ ["pe"]="زیرزیرموضوع",
+ ["ro"]="subsubsubiect",
+ },
+ ["subsubsubsection"]={
+ ["cs"]="podpodpodsekce",
+ ["de"]="unterunterunterabsatz",
+ ["en"]="subsubsubsection",
+ ["fr"]="soussoussoussection",
+ ["it"]="sottosottosottocapoverso",
+ ["nl"]="subsubsubparagraaf",
+ ["pe"]="زیرزیرزیربخش",
+ ["ro"]="subsubsubsectiune",
+ },
+ ["subsubsubsubject"]={
+ ["cs"]="podpodpodtema",
+ ["de"]="unterunterunterthema",
+ ["en"]="subsubsubsubject",
+ ["fr"]="soussoussoussujet",
+ ["it"]="sottosottosottoargomento",
+ ["nl"]="subsubsubonderwerp",
+ ["pe"]="زیرزیرزیرموضوع",
+ ["ro"]="subsubsubsubiect",
+ },
+ ["subsubsubsubsection"]={
+ ["cs"]="podpodpodpodsekce",
+ ["de"]="unterunterunterunterabsatz",
+ ["en"]="subsubsubsubsection",
+ ["fr"]="soussoussoussoussection",
+ ["it"]="sottosottosottosottocapoverso",
+ ["nl"]="subsubsubsubparagraaf",
+ ["pe"]="زیرزیرزیرزیربخش",
+ ["ro"]="subsubsubsubsectiune",
+ },
+ ["subsubsubsubsubject"]={
+ ["cs"]="podpodpodpodtema",
+ ["de"]="unterunterunterunterthema",
+ ["en"]="subsubsubsubsubject",
+ ["fr"]="soussoussoussoussujet",
+ ["it"]="sottosottosottosottoargomento",
+ ["nl"]="subsubsubsubonderwerp",
+ ["pe"]="زیرزیرزیرزیرموضوع",
+ ["ro"]="subsubsubsubsubiect",
+ },
+ ["subsubsubsubsubsection"]={
+ ["cs"]="podpodpodpodpodsekce",
+ ["de"]="unterunterunterunterunterabsatz",
+ ["en"]="subsubsubsubsubsection",
+ ["fr"]="soussoussoussoussoussection",
+ ["it"]="sottosottosottosottosottocapoverso",
+ ["nl"]="subsubsubsubsubparagraaf",
+ ["pe"]="زیرزیرزیرزیرزیربخش",
+ ["ro"]="subsubsubsubsubsectiune",
+ },
+ ["subsubsubsubsubsubject"]={
+ ["cs"]="podpodpodpodpodtema",
+ ["de"]="unterunterunterunterunterthema",
+ ["en"]="subsubsubsubsubsubject",
+ ["fr"]="soussoussoussoussoussujet",
+ ["it"]="sottosottosottosottosottoargomento",
+ ["nl"]="subsubsubsubsubonderwerp",
+ ["pe"]="زیرزیرزیرزیرزیرموضوع",
+ ["ro"]="subsubsubsubsubsubiect",
+ },
+ ["subsubsubsubsubsubsection"]={
+ ["cs"]="podpodpodpodpodpodsekce",
+ ["de"]="unterunterunterunterunterunterabsatz",
+ ["en"]="subsubsubsubsubsubsection",
+ ["fr"]="soussoussoussoussoussoussection",
+ ["it"]="sottosottosottosottosottosottocapoverso",
+ ["nl"]="subsubsubsubsubsubparagraaf",
+ ["pe"]="زیرزیرزیرزیرزیرزیربخش",
+ ["ro"]="subsubsubsubsubsubsectiune",
+ },
+ ["subsubsubsubsubsubsubject"]={
+ ["cs"]="podpodpodpodpodpodtema",
+ ["de"]="unterunterunterunterunterunterthema",
+ ["en"]="subsubsubsubsubsubsubject",
+ ["fr"]="soussoussoussoussoussoussujet",
+ ["it"]="sottosottosottosottosottosottoargomento",
+ ["nl"]="subsubsubsubsubsubonderwerp",
+ ["pe"]="زیرزیرزیرزیرزیرزیرموضوع",
+ ["ro"]="subsubsubsubsubsubsubiect",
+ },
+ ["subsubsubsubsubsubsubsection"]={
+ ["cs"]="podpodpodpodpodpodpodsekce",
+ ["de"]="unterunterunterunterunterunterunterabsatz",
+ ["en"]="subsubsubsubsubsubsubsection",
+ ["fr"]="soussoussoussoussoussoussoussection",
+ ["it"]="sottosottosottosottosottosottosottocapoverso",
+ ["nl"]="subsubsubsubsubsubsubparagraaf",
+ ["pe"]="زیرزیرزیرزیرزیرزیرزیربخش",
+ ["ro"]="subsubsubsubsubsubsubsectiune",
+ },
+ ["subsubsubsubsubsubsubsubject"]={
+ ["cs"]="podpodpodpodpodpodpodtema",
+ ["de"]="unterunterunterunterunterunterunterthema",
+ ["en"]="subsubsubsubsubsubsubsubject",
+ ["fr"]="soussoussoussoussoussoussoussujet",
+ ["it"]="sottosottosottosottosottosottosottoargomento",
+ ["nl"]="subsubsubsubsubsubsubonderwerp",
+ ["pe"]="زیرزیرزیرزیرزیرزیرزیرموضوع",
+ ["ro"]="subsubsubsubsubsubsubsubiect",
+ },
+ ["subsubsubsubsubsubsubsubsection"]={
+ ["cs"]="podpodpodpodpodpodpodpodsekce",
+ ["de"]="unterunterunterunterunterunterunterunterabsatz",
+ ["en"]="subsubsubsubsubsubsubsubsection",
+ ["fr"]="soussoussoussoussoussoussoussoussection",
+ ["it"]="sottosottosottosottosottosottosottosottocapoverso",
+ ["nl"]="subsubsubsubsubsubsubsubparagraaf",
+ ["pe"]="زیرزیرزیرزیرزیرزیرزیرزیربخش",
+ ["ro"]="subsubsubsubsubsubsubsubsectiune",
+ },
+ ["subsubsubsubsubsubsubsubsubject"]={
+ ["cs"]="podpodpodpodpodpodpodpodtema",
+ ["de"]="unterunterunterunterunterunterunterunterthema",
+ ["en"]="subsubsubsubsubsubsubsubsubject",
+ ["fr"]="soussoussoussoussoussoussoussoussujet",
+ ["it"]="sottosottosottosottosottosottosottosottoargomento",
+ ["nl"]="subsubsubsubsubsubsubsubonderwerp",
+ ["pe"]="زیرزیرزیرزیرزیرزیرزیرزیرموضوع",
+ ["ro"]="subsubsubsubsubsubsubsubsubiect",
+ },
+ ["subsubsubsubsubsubsubsubsubsection"]={
+ ["cs"]="podpodpodpodpodpodpodpodpodsekce",
+ ["de"]="unterunterunterunterunterunterunterunterunterabsatz",
+ ["en"]="subsubsubsubsubsubsubsubsubsection",
+ ["fr"]="soussoussoussoussoussoussoussoussoussection",
+ ["it"]="sottosottosottosottosottosottosottosottosottocapoverso",
+ ["nl"]="subsubsubsubsubsubsubsubsubparagraaf",
+ ["pe"]="زیرزیرزیرزیرزیرزیرزیرزیرزیربخش",
+ ["ro"]="subsubsubsubsubsubsubsubsubsectiune",
+ },
+ ["subsubsubsubsubsubsubsubsubsubject"]={
+ ["cs"]="podpodpodpodpodpodpodpodpodtema",
+ ["de"]="unterunterunterunterunterunterunterunterunterthema",
+ ["en"]="subsubsubsubsubsubsubsubsubsubject",
+ ["fr"]="soussoussoussoussoussoussoussoussoussujet",
+ ["it"]="sottosottosottosottosottosottosottosottosottoargomento",
+ ["nl"]="subsubsubsubsubsubsubsubsubonderwerp",
+ ["pe"]="زیرزیرزیرزیرزیرزیرزیرزیرزیرموضوع",
+ ["ro"]="subsubsubsubsubsubsubsubsubsubiect",
+ },
+ ["sunday"]={
+ ["cs"]="nedele",
+ ["de"]="sonntag",
+ ["en"]="sunday",
+ ["fr"]="dimanche",
+ ["it"]="domenica",
+ ["nl"]="zondag",
+ ["pe"]="یک‌شنبه",
+ ["ro"]="duminica",
+ },
+ ["support"]={
+ ["cs"]="podpora",
+ ["de"]="support",
+ ["en"]="support",
+ ["fr"]="support",
+ ["it"]="supporto",
+ ["nl"]="support",
+ ["pe"]="حمایت",
+ ["ro"]="suport",
+ },
+ ["sym"]={
+ ["cs"]="sym",
+ ["de"]="sym",
+ ["en"]="sym",
+ ["fr"]="sym",
+ ["it"]="sim",
+ ["nl"]="sym",
+ ["pe"]="نم",
+ ["ro"]="sym",
+ },
+ ["symbol"]={
+ ["cs"]="symbol",
+ ["de"]="symbol",
+ ["en"]="symbol",
+ ["fr"]="symbole",
+ ["it"]="simbolo",
+ ["nl"]="symbool",
+ ["pe"]="نماد",
+ ["ro"]="simbol",
+ },
+ ["synchronize"]={
+ ["cs"]="synchronize",
+ ["de"]="synchronize",
+ ["en"]="synchronize",
+ ["fr"]="synchronize",
+ ["it"]="synchronize",
+ ["nl"]="synchroniseer",
+ ["pe"]="تطابق",
+ ["ro"]="synchronize",
+ },
+ ["system"]={
+ ["cs"]="system",
+ ["de"]="systeme",
+ ["en"]="system",
+ ["fr"]="systeme",
+ ["it"]="sistema",
+ ["nl"]="systeem",
+ ["pe"]="سیستم",
+ ["ro"]="sistem",
+ },
+ ["table"]={
+ ["cs"]="tabulka",
+ ["de"]="tabelle",
+ ["en"]="table",
+ ["fr"]="tableau",
+ ["it"]="tabella",
+ ["nl"]="tabel",
+ ["pe"]="جدول",
+ ["ro"]="tabelul",
+ },
+ ["tablehead"]={
+ ["cs"]="zahlavitabulky",
+ ["de"]="tabellenueberschrift",
+ ["en"]="tablehead",
+ ["fr"]="tetetableau",
+ ["it"]="testatabella",
+ ["nl"]="tabelkop",
+ ["pe"]="سرجدول",
+ ["ro"]="antettabel",
+ },
+ ["tables"]={
+ ["cs"]="tabulky",
+ ["de"]="tabellen",
+ ["en"]="tables",
+ ["fr"]="tables",
+ ["it"]="tabelle",
+ ["nl"]="tabellen",
+ ["pe"]="جدولها",
+ ["ro"]="tabelele",
+ },
+ ["tabletail"]={
+ ["cs"]="konectabulky",
+ ["de"]="tabellenende",
+ ["en"]="tabletail",
+ ["fr"]="queuetableau",
+ ["it"]="codatabella",
+ ["nl"]="tabelstaart",
+ ["pe"]="دنباله‌جدول",
+ ["ro"]="subsoltabel",
+ },
+ ["tabulate"]={
+ ["cs"]="tabelator",
+ ["de"]="tabulator",
+ ["en"]="tabulate",
+ ["fr"]="tabule",
+ ["it"]="tabulato",
+ ["nl"]="tabulatie",
+ ["pe"]="جدول‌بندی",
+ ["ro"]="tabulate",
+ },
+ ["tabulatehead"]={
+ ["cs"]="tabulatehead",
+ ["de"]="tabulatehead",
+ ["en"]="tabulatehead",
+ ["fr"]="tetetabule",
+ ["it"]="testatabulato",
+ ["nl"]="tabulatiekop",
+ ["pe"]="سرجدول‌بندی",
+ ["ro"]="tabulatehead",
+ },
+ ["tabulatetail"]={
+ ["cs"]="tabulatetail",
+ ["de"]="tabulatetail",
+ ["en"]="tabulatetail",
+ ["fr"]="queuetabule",
+ ["it"]="codatabulato",
+ ["nl"]="tabulatiestaart",
+ ["pe"]="دنباله‌جدول‌بندی",
+ ["ro"]="tabulatetail",
+ },
+ ["tall"]={
+ ["cs"]="vysoko",
+ ["de"]="lang",
+ ["en"]="tall",
+ ["fr"]="long",
+ ["it"]="alto",
+ ["nl"]="lang",
+ ["pe"]="دراز",
+ ["ro"]="inalt",
+ },
+ ["teletype"]={
+ ["cs"]="strojopis",
+ ["de"]="fernschreiber",
+ ["en"]="teletype",
+ ["fr"]="teletype",
+ ["it"]="teletype",
+ ["nl"]="teletype",
+ ["pe"]="دورنگاره",
+ ["ro"]="teletype",
+ },
+ ["temporary"]={
+ ["cs"]="docasne",
+ ["de"]="temporaer",
+ ["en"]="temporary",
+ ["fr"]="temporaire",
+ ["it"]="temporaneo",
+ ["nl"]="voorlopig",
+ ["pe"]="موقتی",
+ ["ro"]="temporar",
+ },
+ ["test"]={
+ ["cs"]="test",
+ ["de"]="test",
+ ["en"]="test",
+ ["fr"]="test",
+ ["it"]="test",
+ ["nl"]="test",
+ ["pe"]="تست",
+ ["ro"]="test",
+ },
+ ["text"]={
+ ["cs"]="text",
+ ["de"]="text",
+ ["en"]="text",
+ ["fr"]="texte",
+ ["it"]="testo",
+ ["nl"]="tekst",
+ ["pe"]="متن",
+ ["ro"]="text",
+ },
+ ["three"]={
+ ["cs"]="tri",
+ ["de"]="drei",
+ ["en"]="three",
+ ["fr"]="trois",
+ ["it"]="tre",
+ ["nl"]="drie",
+ ["pe"]="سه",
+ ["ro"]="trei",
+ },
+ ["thursday"]={
+ ["cs"]="ctvrtek",
+ ["de"]="donnerstag",
+ ["en"]="thursday",
+ ["fr"]="jeudi",
+ ["it"]="giovedi",
+ ["nl"]="donderdag",
+ ["pe"]="پنج‌شنبه",
+ ["ro"]="joi",
+ },
+ ["title"]={
+ ["cs"]="titul",
+ ["de"]="titel",
+ ["en"]="title",
+ ["fr"]="titre",
+ ["it"]="titolo",
+ ["nl"]="titel",
+ ["pe"]="عنوان",
+ ["ro"]="titlu",
+ },
+ ["toggle"]={
+ ["cs"]="toggle",
+ ["de"]="toggle",
+ ["en"]="wissel",
+ ["fr"]="toggle",
+ ["it"]="toggle",
+ ["nl"]="toggle",
+ ["pe"]="تغییر",
+ ["ro"]="toggle",
+ },
+ ["tolerant"]={
+ ["cs"]="tolerantni",
+ ["de"]="tolerant",
+ ["en"]="tolerant",
+ ["fr"]="tolerant",
+ ["it"]="tollerante",
+ ["nl"]="soepel",
+ ["pe"]="بردبار",
+ ["ro"]="tolerant",
+ },
+ ["top"]={
+ ["cs"]="vrsek",
+ ["de"]="oben",
+ ["en"]="top",
+ ["fr"]="sup",
+ ["it"]="cima",
+ ["nl"]="boven",
+ ["pe"]="بالا",
+ ["ro"]="sus",
+ },
+ ["tuesday"]={
+ ["cs"]="utery",
+ ["de"]="dienstag",
+ ["en"]="tuesday",
+ ["fr"]="mardi",
+ ["it"]="martedi",
+ ["nl"]="dinsdag",
+ ["pe"]="سه‌شنبه",
+ ["ro"]="marti",
+ },
+ ["two"]={
+ ["cs"]="dve",
+ ["de"]="zwei",
+ ["en"]="two",
+ ["fr"]="deux",
+ ["it"]="due",
+ ["nl"]="twee",
+ ["pe"]="دو",
+ ["ro"]="doi",
+ },
+ ["txt"]={
+ ["cs"]="txt",
+ ["de"]="txt",
+ ["en"]="txt",
+ ["fr"]="txt",
+ ["it"]="txt",
+ ["nl"]="txt",
+ ["pe"]="txt",
+ ["ro"]="txt",
+ },
+ ["type"]={
+ ["cs"]="opis",
+ ["de"]="tippen",
+ ["en"]="type",
+ ["fr"]="type",
+ ["it"]="type",
+ ["nl"]="type",
+ ["pe"]="تایپ",
+ ["ro"]="type",
+ },
+ ["typing"]={
+ ["cs"]="typing",
+ ["de"]="tippen",
+ ["en"]="typing",
+ ["fr"]="typing",
+ ["it"]="typing",
+ ["nl"]="typen",
+ ["pe"]="تایپ‌کردن",
+ ["ro"]="typing",
+ },
+ ["unavailable"]={
+ ["cs"]="nedostupne",
+ ["de"]="nichtverfuegbar",
+ ["en"]="unavailable",
+ ["fr"]="indisponible",
+ ["it"]="nondisponibile",
+ ["nl"]="nietbeschikbaar",
+ ["pe"]="غیرموجود",
+ ["ro"]="nedisponibil",
+ },
+ ["unit"]={
+ ["cs"]="jednotka",
+ ["de"]="einheit",
+ ["en"]="unit",
+ ["fr"]="unite",
+ ["it"]="unita",
+ ["nl"]="eenheid",
+ ["pe"]="واحد",
+ ["ro"]="unitate",
+ },
+ ["units"]={
+ ["cs"]="jednotky",
+ ["de"]="einheiten",
+ ["en"]="units",
+ ["fr"]="unites",
+ ["it"]="unita",
+ ["nl"]="eenheden",
+ ["pe"]="واحدها",
+ ["ro"]="unitati",
+ },
+ ["unknown"]={
+ ["cs"]="neznamy",
+ ["de"]="unbekannt",
+ ["en"]="unknown",
+ ["fr"]="inconnu",
+ ["it"]="ignoto",
+ ["nl"]="onbekend",
+ ["pe"]="ناشناس",
+ ["ro"]="necunoscut",
+ },
+ ["unpacked"]={
+ ["cs"]="rozbalene",
+ ["de"]="ungepackt",
+ ["en"]="unpacked",
+ ["fr"]="degroupe",
+ ["it"]="unpacked",
+ ["nl"]="vanelkaar",
+ ["pe"]="غیرفشرده",
+ ["ro"]="despachetat",
+ },
+ ["url"]={
+ ["cs"]="url",
+ ["de"]="url",
+ ["en"]="url",
+ ["fr"]="url",
+ ["it"]="url",
+ ["nl"]="url",
+ ["pe"]="url",
+ ["ro"]="url",
+ },
+ ["used"]={
+ ["cs"]="uzito",
+ ["de"]="verwende",
+ ["en"]="used",
+ ["fr"]="used",
+ ["it"]="usato",
+ ["nl"]="gebruikt",
+ ["pe"]="استفاده‌شده",
+ ["ro"]="folosit",
+ },
+ ["value"]={
+ ["cs"]="hodnota",
+ ["de"]="wert",
+ ["en"]="value",
+ ["fr"]="valeur",
+ ["it"]="valore",
+ ["nl"]="waarde",
+ ["pe"]="مقدار",
+ ["ro"]="valoare",
+ },
+ ["vertical"]={
+ ["cs"]="vertikalne",
+ ["de"]="vertikal",
+ ["en"]="vertical",
+ ["fr"]="verticale",
+ ["it"]="verticale",
+ ["nl"]="vertikaal",
+ ["pe"]="عمودی",
+ ["ro"]="vertical",
+ },
+ ["very"]={
+ ["cs"]="velmi",
+ ["de"]="sehr",
+ ["en"]="very",
+ ["fr"]="tres",
+ ["it"]="molto",
+ ["nl"]="zeer",
+ ["pe"]="خیلی",
+ ["ro"]="foarte",
+ },
+ ["verystrict"]={
+ ["cs"]="velmistriktni",
+ ["de"]="sehrstreng",
+ ["en"]="verystrict",
+ ["fr"]="tresstrict",
+ ["it"]="moltorigido",
+ ["nl"]="zeerstreng",
+ ["pe"]="خیلی‌سختگیر",
+ ["ro"]="foartestrict",
+ },
+ ["verytolerant"]={
+ ["cs"]="velmitolerantni",
+ ["de"]="sehrtolerant",
+ ["en"]="verytolerant",
+ ["fr"]="trestolerant",
+ ["it"]="moltotollerante",
+ ["nl"]="zeersoepel",
+ ["pe"]="خیلی‌بردبار",
+ ["ro"]="foartetolerant",
+ },
+ ["weak"]={
+ ["cs"]="weak",
+ ["de"]="weak",
+ ["en"]="zwak",
+ ["fr"]="weak",
+ ["it"]="weak",
+ ["nl"]="weak",
+ ["pe"]="هفته",
+ ["ro"]="weak",
+ },
+ ["wednesday"]={
+ ["cs"]="streda",
+ ["de"]="mittwoch",
+ ["en"]="wednesday",
+ ["fr"]="mercredi",
+ ["it"]="mercoledi",
+ ["nl"]="woensdag",
+ ["pe"]="چهارشنبه",
+ ["ro"]="miercuri",
+ },
+ ["week"]={
+ ["cs"]="tyden",
+ ["de"]="woche",
+ ["en"]="week",
+ ["fr"]="semaine",
+ ["it"]="settimana",
+ ["nl"]="week",
+ ["pe"]="هفته",
+ ["ro"]="saptamana",
+ },
+ ["weekday"]={
+ ["cs"]="vsedniden",
+ ["de"]="wochentag",
+ ["en"]="weekday",
+ ["fr"]="joursemaine",
+ ["it"]="giornosettimana",
+ ["nl"]="weekdag",
+ ["pe"]="روزهفته",
+ ["ro"]="zisaptamana",
+ },
+ ["white"]={
+ ["cs"]="bily",
+ ["de"]="weiss",
+ ["en"]="white",
+ ["fr"]="blanc",
+ ["it"]="bianco",
+ ["nl"]="wit",
+ ["pe"]="سفید",
+ ["ro"]="alb",
+ },
+ ["wide"]={
+ ["cs"]="siroce",
+ ["de"]="breit",
+ ["en"]="wide",
+ ["fr"]="ample",
+ ["it"]="ampio",
+ ["nl"]="breed",
+ ["pe"]="گسترده",
+ ["ro"]="larg",
+ },
+ ["width"]={
+ ["cs"]="sirka",
+ ["de"]="breite",
+ ["en"]="width",
+ ["fr"]="largeur",
+ ["it"]="ampiezza",
+ ["nl"]="breedte",
+ ["pe"]="عرض",
+ ["ro"]="latime",
+ },
+ ["xml"]={
+ ["cs"]="xml",
+ ["de"]="xml",
+ ["en"]="xml",
+ ["fr"]="xml",
+ ["it"]="xml",
+ ["nl"]="xml",
+ ["pe"]="xml",
+ ["ro"]="xml",
+ },
+ ["year"]={
+ ["cs"]="rok",
+ ["de"]="jahr",
+ ["en"]="year",
+ ["fr"]="annee",
+ ["it"]="anno",
+ ["nl"]="jaar",
+ ["pe"]="سال",
+ ["ro"]="an",
+ },
+ ["yes"]={
+ ["cs"]="ano",
+ ["de"]="ja",
+ ["en"]="yes",
+ ["fr"]="oui",
+ ["it"]="si",
+ ["nl"]="ja",
+ ["pe"]="بله",
+ ["ro"]="da",
+ },
+ },
+}
diff --git a/Master/texmf-dist/tex/context/base/mult-def.tex b/Master/texmf-dist/tex/context/base/mult-def.tex
new file mode 100644
index 00000000000..cff9fb07434
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mult-def.tex
@@ -0,0 +1,35 @@
+%D \module
+%D [ file=mult-def,
+%D version=2008.10.22,
+%D title=\CONTEXT\ Multilingual Macros,
+%D subtitle=Definitions,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%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
+
+\setvalue{@interface@czech@}{cs}
+\setvalue{@interface@german@}{de}
+\setvalue{@interface@english@}{en}
+\setvalue{@interface@french@}{fr}
+\setvalue{@interface@italian@}{it}
+\setvalue{@interface@dutch@}{nl}
+\setvalue{@interface@persian@}{pe}
+\setvalue{@interface@romanian@}{ro}
+
+% \def\userinterfacetag
+% {\ifcsname @interface@\defaultinterface @\endcsname\csname @interface@\defaultinterface @\endcsname\else en\fi}
+\def\userinterfacetag
+ {\ifcsname @interface@\currentinterface @\endcsname\csname @interface@\currentinterface @\endcsname\else en\fi}
+\def\userresponsestag
+ {\ifcsname @interface@\currentresponses @\endcsname\csname @interface@\currentresponses @\endcsname\else en\fi}
+
+\input mult-\userinterfacetag \relax
+\input mult-m\userresponsestag \relax
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mult-en.tex b/Master/texmf-dist/tex/context/base/mult-en.tex
new file mode 100644
index 00000000000..50997b1d8c5
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mult-en.tex
@@ -0,0 +1,1636 @@
+% this file is auto-generated, don't edit this file
+%
+% definitions for interface variables for language en
+%
+\setinterfacevariable{Addition}{Addition}
+\setinterfacevariable{Balloon}{Balloon}
+\setinterfacevariable{Character}{Character}
+\setinterfacevariable{Characters}{Characters}
+\setinterfacevariable{CloseDocument}{CloseDocument}
+\setinterfacevariable{ExitViewer}{ExitViewer}
+\setinterfacevariable{FirstPage}{FirstPage}
+\setinterfacevariable{FitHeight}{FitHeight}
+\setinterfacevariable{FitWidth}{FitWidth}
+\setinterfacevariable{GotoPage}{GotoPage}
+\setinterfacevariable{Greek}{Greek}
+\setinterfacevariable{Help}{Help}
+\setinterfacevariable{HideField}{HideField}
+\setinterfacevariable{HideLayer}{HideLayer}
+\setinterfacevariable{Key}{Key}
+\setinterfacevariable{LastPage}{LastPage}
+\setinterfacevariable{LoadForm}{LoadForm}
+\setinterfacevariable{MONTH}{MONTH}
+\setinterfacevariable{New}{New}
+\setinterfacevariable{NextJump}{NextJump}
+\setinterfacevariable{NextPage}{NextPage}
+\setinterfacevariable{Numbers}{Numbers}
+\setinterfacevariable{OpenNamedDocument}{OpenNamedDocument}
+\setinterfacevariable{Paragraph}{Paragraph}
+\setinterfacevariable{PauseMovie}{PauseMovie}
+\setinterfacevariable{PauseRendering}{PauseRendering}
+\setinterfacevariable{PauseSound}{PauseSound}
+\setinterfacevariable{PreviousJump}{PreviousJump}
+\setinterfacevariable{PreviousPage}{PreviousPage}
+\setinterfacevariable{PrintDocument}{PrintDocument}
+\setinterfacevariable{Query}{Query}
+\setinterfacevariable{QueryAgain}{QueryAgain}
+\setinterfacevariable{ResetForm}{ResetForm}
+\setinterfacevariable{ResumeMovie}{ResumeMovie}
+\setinterfacevariable{ResumeRendering}{ResumeRendering}
+\setinterfacevariable{ResumeSound}{ResumeSound}
+\setinterfacevariable{Romannumerals}{Romannumerals}
+\setinterfacevariable{SaveDocument}{SaveDocument}
+\setinterfacevariable{SaveForm}{SaveForm}
+\setinterfacevariable{SaveNamedDocument}{SaveNamedDocument}
+\setinterfacevariable{SearchAgain}{SearchAgain}
+\setinterfacevariable{SearchDocument}{SearchDocument}
+\setinterfacevariable{ShowBookmarks}{ShowBookmarks}
+\setinterfacevariable{ShowField}{ShowField}
+\setinterfacevariable{ShowThumbs}{ShowThumbs}
+\setinterfacevariable{StartMovie}{StartMovie}
+\setinterfacevariable{StartRendering}{StartRendering}
+\setinterfacevariable{StartSound}{StartSound}
+\setinterfacevariable{StopMovie}{StopMovie}
+\setinterfacevariable{StopRendering}{StopRendering}
+\setinterfacevariable{StopSound}{StopSound}
+\setinterfacevariable{SubmitForm}{SubmitForm}
+\setinterfacevariable{ToggleLayer}{ToggleLayer}
+\setinterfacevariable{ToggleViewer}{ToggleViewer}
+\setinterfacevariable{URL}{URL}
+\setinterfacevariable{VideLayer}{VideLayer}
+\setinterfacevariable{ViewerHelp}{ViewerHelp}
+\setinterfacevariable{WEEKDAY}{WEEKDAY}
+\setinterfacevariable{WORD}{WORD}
+\setinterfacevariable{abbreviation}{abbreviation}
+\setinterfacevariable{abbreviations}{abbreviations}
+\setinterfacevariable{absolute}{absolute}
+\setinterfacevariable{action}{action}
+\setinterfacevariable{after}{after}
+\setinterfacevariable{all}{all}
+\setinterfacevariable{always}{always}
+\setinterfacevariable{answerarea}{answerarea}
+\setinterfacevariable{appendices}{appendices}
+\setinterfacevariable{appendix}{appendix}
+\setinterfacevariable{april}{April}
+\setinterfacevariable{atmargin}{atmargin}
+\setinterfacevariable{atpage}{atpage}
+\setinterfacevariable{august}{August}
+\setinterfacevariable{auto}{auto}
+\setinterfacevariable{autointro}{autointro}
+\setinterfacevariable{back}{back}
+\setinterfacevariable{background}{background}
+\setinterfacevariable{backmatter}{backmatter}
+\setinterfacevariable{backpart}{backpart}
+\setinterfacevariable{backspace}{backspace}
+\setinterfacevariable{backward}{backward}
+\setinterfacevariable{before}{before}
+\setinterfacevariable{big}{big}
+\setinterfacevariable{bigbodyfont}{bigbodyfont}
+\setinterfacevariable{bigpreference}{bigpreference}
+\setinterfacevariable{blank}{blank}
+\setinterfacevariable{blockquote}{blockquote}
+\setinterfacevariable{bodymatter}{bodymatter}
+\setinterfacevariable{bodypart}{bodypart}
+\setinterfacevariable{bold}{bold}
+\setinterfacevariable{bolditalic}{bolditalic}
+\setinterfacevariable{boldslanted}{boldslanted}
+\setinterfacevariable{bookmark}{bookmark}
+\setinterfacevariable{both}{both}
+\setinterfacevariable{bottom}{bottom}
+\setinterfacevariable{brief}{brief}
+\setinterfacevariable{broad}{broad}
+\setinterfacevariable{buffer}{buffer}
+\setinterfacevariable{by}{by}
+\setinterfacevariable{calligraphic}{calligraphic}
+\setinterfacevariable{cap}{cap}
+\setinterfacevariable{capital}{capital}
+\setinterfacevariable{center}{center}
+\setinterfacevariable{chapter}{chapter}
+\setinterfacevariable{character}{character}
+\setinterfacevariable{characters}{characters}
+\setinterfacevariable{color}{color}
+\setinterfacevariable{column}{column}
+\setinterfacevariable{columns}{columns}
+\setinterfacevariable{command}{command}
+\setinterfacevariable{commands}{commands}
+\setinterfacevariable{comment}{comment}
+\setinterfacevariable{component}{component}
+\setinterfacevariable{concept}{concept}
+\setinterfacevariable{content}{content}
+\setinterfacevariable{contents}{contents}
+\setinterfacevariable{continue}{continue}
+\setinterfacevariable{controls}{controls}
+\setinterfacevariable{conversion}{conversion}
+\setinterfacevariable{current}{current}
+\setinterfacevariable{cutspace}{cutspace}
+\setinterfacevariable{date}{date}
+\setinterfacevariable{day}{day}
+\setinterfacevariable{december}{December}
+\setinterfacevariable{default}{default}
+\setinterfacevariable{depth}{depth}
+\setinterfacevariable{description}{description}
+\setinterfacevariable{disable}{disable}
+\setinterfacevariable{display}{display}
+\setinterfacevariable{dot}{dot}
+\setinterfacevariable{doublesided}{doublesided}
+\setinterfacevariable{each}{each}
+\setinterfacevariable{edge}{edge}
+\setinterfacevariable{empty}{empty}
+\setinterfacevariable{endnote}{endnote}
+\setinterfacevariable{enumeration}{enumeration}
+\setinterfacevariable{environment}{environment}
+\setinterfacevariable{even}{even}
+\setinterfacevariable{external}{external}
+\setinterfacevariable{fact}{fact}
+\setinterfacevariable{february}{February}
+\setinterfacevariable{figure}{figure}
+\setinterfacevariable{figures}{figures}
+\setinterfacevariable{file}{file}
+\setinterfacevariable{final}{final}
+\setinterfacevariable{first}{first}
+\setinterfacevariable{firstcolumn}{firstcolumn}
+\setinterfacevariable{firstpage}{firstpage}
+\setinterfacevariable{firstsubpage}{firstsubpage}
+\setinterfacevariable{fit}{fit}
+\setinterfacevariable{five}{five}
+\setinterfacevariable{fix}{fix}
+\setinterfacevariable{fixed}{fixed}
+\setinterfacevariable{flexible}{flexible}
+\setinterfacevariable{float}{float}
+\setinterfacevariable{flushinner}{flushinner}
+\setinterfacevariable{flushleft}{flushleft}
+\setinterfacevariable{flushouter}{flushouter}
+\setinterfacevariable{flushright}{flushright}
+\setinterfacevariable{footer}{footer}
+\setinterfacevariable{footnote}{footnote}
+\setinterfacevariable{force}{force}
+\setinterfacevariable{foreground}{foreground}
+\setinterfacevariable{formeel}{formeel}
+\setinterfacevariable{formula}{formula}
+\setinterfacevariable{formulae}{formulae}
+\setinterfacevariable{forward}{forward}
+\setinterfacevariable{four}{four}
+\setinterfacevariable{frame}{frame}
+\setinterfacevariable{framedtext}{framedtext}
+\setinterfacevariable{friday}{friday}
+\setinterfacevariable{frontmatter}{frontmatter}
+\setinterfacevariable{frontpart}{frontpart}
+\setinterfacevariable{global}{global}
+\setinterfacevariable{graphic}{graphic}
+\setinterfacevariable{graphics}{graphics}
+\setinterfacevariable{gray}{gray}
+\setinterfacevariable{greek}{greek}
+\setinterfacevariable{grid}{grid}
+\setinterfacevariable{halfline}{halfline}
+\setinterfacevariable{handwritten}{handwritten}
+\setinterfacevariable{hang}{hang}
+\setinterfacevariable{hanging}{hanging}
+\setinterfacevariable{head}{head}
+\setinterfacevariable{header}{header}
+\setinterfacevariable{height}{height}
+\setinterfacevariable{helptext}{helptext}
+\setinterfacevariable{hencefore}{hencefore}
+\setinterfacevariable{here}{here}
+\setinterfacevariable{hereafter}{hereafter}
+\setinterfacevariable{hidden}{hidden}
+\setinterfacevariable{hiding}{hiding}
+\setinterfacevariable{high}{high}
+\setinterfacevariable{horizontal}{horizontal}
+\setinterfacevariable{hyphenated}{hyphenated}
+\setinterfacevariable{hz}{hz}
+\setinterfacevariable{inbetween}{inbetween}
+\setinterfacevariable{index}{index}
+\setinterfacevariable{indices}{indices}
+\setinterfacevariable{informeel}{informeel}
+\setinterfacevariable{inherit}{inherit}
+\setinterfacevariable{inleft}{inleft}
+\setinterfacevariable{inmargin}{inmargin}
+\setinterfacevariable{inner}{inner}
+\setinterfacevariable{inneredge}{inneredge}
+\setinterfacevariable{innermargin}{innermargin}
+\setinterfacevariable{inright}{inright}
+\setinterfacevariable{interaction}{interaction}
+\setinterfacevariable{interactionmenu}{interactionmenu}
+\setinterfacevariable{intermezzi}{intermezzi}
+\setinterfacevariable{intermezzo}{intermezzo}
+\setinterfacevariable{intext}{intext}
+\setinterfacevariable{intro}{intro}
+\setinterfacevariable{italic}{italic}
+\setinterfacevariable{italicbold}{italicbold}
+\setinterfacevariable{item}{item}
+\setinterfacevariable{itemize}{itemize}
+\setinterfacevariable{its}{its}
+\setinterfacevariable{january}{January}
+\setinterfacevariable{joinedup}{joinedup}
+\setinterfacevariable{july}{July}
+\setinterfacevariable{june}{June}
+\setinterfacevariable{keep}{keep}
+\setinterfacevariable{knockout}{knockout}
+\setinterfacevariable{label}{label}
+\setinterfacevariable{landscape}{landscape}
+\setinterfacevariable{last}{last}
+\setinterfacevariable{lastcolumn}{lastcolumn}
+\setinterfacevariable{lastpage}{lastpage}
+\setinterfacevariable{lastpagenumber}{lastpagenumber}
+\setinterfacevariable{lastsubpage}{lastsubpage}
+\setinterfacevariable{layer}{layer}
+\setinterfacevariable{left}{left}
+\setinterfacevariable{leftedge}{leftedge}
+\setinterfacevariable{lefthanging}{lefthanging}
+\setinterfacevariable{leftmargin}{leftmargin}
+\setinterfacevariable{leftpage}{leftpage}
+\setinterfacevariable{lefttoright}{lefttoright}
+\setinterfacevariable{legend}{legend}
+\setinterfacevariable{lesshyphenation}{lesshyphenation}
+\setinterfacevariable{line}{line}
+\setinterfacevariable{linenote}{linenote}
+\setinterfacevariable{lines}{lines}
+\setinterfacevariable{list}{list}
+\setinterfacevariable{local}{local}
+\setinterfacevariable{localenvironment}{localenvironment}
+\setinterfacevariable{logo}{logo}
+\setinterfacevariable{logos}{logos}
+\setinterfacevariable{lohi}{lohi}
+\setinterfacevariable{loose}{loose}
+\setinterfacevariable{low}{low}
+\setinterfacevariable{ls}{ls}
+\setinterfacevariable{makeup}{makeup}
+\setinterfacevariable{mar}{mar}
+\setinterfacevariable{march}{March}
+\setinterfacevariable{margin}{margin}
+\setinterfacevariable{marginedge}{marginedge}
+\setinterfacevariable{margintitle}{margintitle}
+\setinterfacevariable{marking}{marking}
+\setinterfacevariable{mathalignment}{mathalignment}
+\setinterfacevariable{mathcases}{mathcases}
+\setinterfacevariable{mathmatrix}{mathmatrix}
+\setinterfacevariable{max}{max}
+\setinterfacevariable{may}{May}
+\setinterfacevariable{mediaeval}{mediaeval}
+\setinterfacevariable{medium}{medium}
+\setinterfacevariable{middle}{middle}
+\setinterfacevariable{min}{min}
+\setinterfacevariable{minheight}{minheight}
+\setinterfacevariable{minwidth}{minwidth}
+\setinterfacevariable{mirrored}{mirrored}
+\setinterfacevariable{monday}{monday}
+\setinterfacevariable{mono}{mono}
+\setinterfacevariable{month}{month}
+\setinterfacevariable{morehyphenation}{morehyphenation}
+\setinterfacevariable{name}{name}
+\setinterfacevariable{narrow}{narrow}
+\setinterfacevariable{negative}{negative}
+\setinterfacevariable{never}{never}
+\setinterfacevariable{new}{new}
+\setinterfacevariable{next}{next}
+\setinterfacevariable{nextevenpage}{nextevenpage}
+\setinterfacevariable{nextoddpage}{nextoddpage}
+\setinterfacevariable{nextpage}{nextpage}
+\setinterfacevariable{nextsubpage}{nextsubpage}
+\setinterfacevariable{no}{no}
+\setinterfacevariable{nocheck}{nocheck}
+\setinterfacevariable{nofit}{nofit}
+\setinterfacevariable{nogrid}{nogrid}
+\setinterfacevariable{nohz}{nohz}
+\setinterfacevariable{nomarking}{nomarking}
+\setinterfacevariable{none}{none}
+\setinterfacevariable{nonumber}{nonumber}
+\setinterfacevariable{normal}{normal}
+\setinterfacevariable{nospacing}{nospacing}
+\setinterfacevariable{not}{not}
+\setinterfacevariable{note}{note}
+\setinterfacevariable{nothanging}{nothanging}
+\setinterfacevariable{nothyphenated}{nothyphenated}
+\setinterfacevariable{november}{November}
+\setinterfacevariable{nowhere}{nowhere}
+\setinterfacevariable{nowhite}{nowhite}
+\setinterfacevariable{number}{number}
+\setinterfacevariable{numbers}{numbers}
+\setinterfacevariable{october}{October}
+\setinterfacevariable{odd}{odd}
+\setinterfacevariable{off}{off}
+\setinterfacevariable{offset}{offset}
+\setinterfacevariable{old}{old}
+\setinterfacevariable{on}{on}
+\setinterfacevariable{one}{one}
+\setinterfacevariable{opposite}{opposite}
+\setinterfacevariable{outer}{outer}
+\setinterfacevariable{outeredge}{outeredge}
+\setinterfacevariable{outermargin}{outermargin}
+\setinterfacevariable{overlay}{overlay}
+\setinterfacevariable{overprint}{overprint}
+\setinterfacevariable{packed}{packed}
+\setinterfacevariable{page}{page}
+\setinterfacevariable{pagecomment}{pagecomment}
+\setinterfacevariable{pagenumber}{pagenumber}
+\setinterfacevariable{paper}{paper}
+\setinterfacevariable{paragraph}{paragraph}
+\setinterfacevariable{part}{part}
+\setinterfacevariable{positive}{positive}
+\setinterfacevariable{postponing}{postponing}
+\setinterfacevariable{postscript}{postscript}
+\setinterfacevariable{preference}{preference}
+\setinterfacevariable{preview}{preview}
+\setinterfacevariable{previous}{previous}
+\setinterfacevariable{previousevenpage}{previousevenpage}
+\setinterfacevariable{previousoddpage}{previousoddpage}
+\setinterfacevariable{previouspage}{previouspage}
+\setinterfacevariable{previoussubpage}{previoussubpage}
+\setinterfacevariable{printable}{printable}
+\setinterfacevariable{process}{process}
+\setinterfacevariable{product}{product}
+\setinterfacevariable{program}{program}
+\setinterfacevariable{project}{project}
+\setinterfacevariable{protected}{protected}
+\setinterfacevariable{quadruple}{quadruple}
+\setinterfacevariable{quotation}{quotation}
+\setinterfacevariable{quote}{quote}
+\setinterfacevariable{ran}{ran}
+\setinterfacevariable{random}{random}
+\setinterfacevariable{readonly}{readonly}
+\setinterfacevariable{rectangular}{rectangular}
+\setinterfacevariable{referral}{referral}
+\setinterfacevariable{register}{register}
+\setinterfacevariable{regular}{regular}
+\setinterfacevariable{rekening}{rekening}
+\setinterfacevariable{relative}{relative}
+\setinterfacevariable{repeat}{repeat}
+\setinterfacevariable{required}{required}
+\setinterfacevariable{reset}{reset}
+\setinterfacevariable{reverse}{reverse}
+\setinterfacevariable{right}{right}
+\setinterfacevariable{rightedge}{rightedge}
+\setinterfacevariable{righthanging}{righthanging}
+\setinterfacevariable{rightmargin}{rightmargin}
+\setinterfacevariable{rightpage}{rightpage}
+\setinterfacevariable{righttoleft}{righttoleft}
+\setinterfacevariable{roman}{roman}
+\setinterfacevariable{romannumerals}{romannumerals}
+\setinterfacevariable{rotate}{rotate}
+\setinterfacevariable{rotated}{rotated}
+\setinterfacevariable{round}{round}
+\setinterfacevariable{row}{row}
+\setinterfacevariable{rule}{rule}
+\setinterfacevariable{samepage}{samepage}
+\setinterfacevariable{sans}{sans}
+\setinterfacevariable{sansbold}{sansbold}
+\setinterfacevariable{sansserif}{sansserif}
+\setinterfacevariable{saturday}{saturday}
+\setinterfacevariable{screen}{screen}
+\setinterfacevariable{section}{section}
+\setinterfacevariable{sectionblockenvironment}{sectionblockenvironment}
+\setinterfacevariable{sectionnumber}{sectionnumber}
+\setinterfacevariable{see}{see}
+\setinterfacevariable{september}{September}
+\setinterfacevariable{serif}{serif}
+\setinterfacevariable{serried}{serried}
+\setinterfacevariable{setups}{setups}
+\setinterfacevariable{sheet}{sheet}
+\setinterfacevariable{singlesided}{singlesided}
+\setinterfacevariable{slanted}{slanted}
+\setinterfacevariable{slantedbold}{slantedbold}
+\setinterfacevariable{small}{small}
+\setinterfacevariable{smallbodyfont}{smallbodyfont}
+\setinterfacevariable{smallbold}{smallbold}
+\setinterfacevariable{smallbolditalic}{smallbolditalic}
+\setinterfacevariable{smallboldslanted}{smallboldslanted}
+\setinterfacevariable{smallcaps}{smallcaps}
+\setinterfacevariable{smallitalic}{smallitalic}
+\setinterfacevariable{smallitalicbold}{smallitalicbold}
+\setinterfacevariable{smallnormal}{smallnormal}
+\setinterfacevariable{smallslanted}{smallslanted}
+\setinterfacevariable{smallslantedbold}{smallslantedbold}
+\setinterfacevariable{smalltype}{smalltype}
+\setinterfacevariable{somewhere}{somewhere}
+\setinterfacevariable{sorted}{sorted}
+\setinterfacevariable{space}{space}
+\setinterfacevariable{spacing}{spacing}
+\setinterfacevariable{speech}{speech}
+\setinterfacevariable{split}{split}
+\setinterfacevariable{spot}{spot}
+\setinterfacevariable{standard}{standard}
+\setinterfacevariable{start}{start}
+\setinterfacevariable{sticker}{sticker}
+\setinterfacevariable{stop}{stop}
+\setinterfacevariable{stopper}{stopper}
+\setinterfacevariable{stretch}{stretch}
+\setinterfacevariable{strict}{strict}
+\setinterfacevariable{strong}{sterk}
+\setinterfacevariable{strut}{strut}
+\setinterfacevariable{sub}{sub}
+\setinterfacevariable{subbackward}{subbackward}
+\setinterfacevariable{subformula}{subformula}
+\setinterfacevariable{subforward}{subforward}
+\setinterfacevariable{subject}{subject}
+\setinterfacevariable{subpage}{subpage}
+\setinterfacevariable{subsection}{subsection}
+\setinterfacevariable{subsubject}{subsubject}
+\setinterfacevariable{subsubsection}{subsubsection}
+\setinterfacevariable{subsubsubject}{subsubsubject}
+\setinterfacevariable{subsubsubsection}{subsubsubsection}
+\setinterfacevariable{subsubsubsubject}{subsubsubsubject}
+\setinterfacevariable{subsubsubsubsection}{subsubsubsubsection}
+\setinterfacevariable{subsubsubsubsubject}{subsubsubsubsubject}
+\setinterfacevariable{subsubsubsubsubsection}{subsubsubsubsubsection}
+\setinterfacevariable{subsubsubsubsubsubject}{subsubsubsubsubsubject}
+\setinterfacevariable{subsubsubsubsubsubsection}{subsubsubsubsubsubsection}
+\setinterfacevariable{subsubsubsubsubsubsubject}{subsubsubsubsubsubsubject}
+\setinterfacevariable{subsubsubsubsubsubsubsection}{subsubsubsubsubsubsubsection}
+\setinterfacevariable{subsubsubsubsubsubsubsubject}{subsubsubsubsubsubsubsubject}
+\setinterfacevariable{subsubsubsubsubsubsubsubsection}{subsubsubsubsubsubsubsubsection}
+\setinterfacevariable{subsubsubsubsubsubsubsubsubject}{subsubsubsubsubsubsubsubsubject}
+\setinterfacevariable{subsubsubsubsubsubsubsubsubsection}{subsubsubsubsubsubsubsubsubsection}
+\setinterfacevariable{subsubsubsubsubsubsubsubsubsubject}{subsubsubsubsubsubsubsubsubsubject}
+\setinterfacevariable{sunday}{sunday}
+\setinterfacevariable{support}{support}
+\setinterfacevariable{sym}{sym}
+\setinterfacevariable{symbol}{symbol}
+\setinterfacevariable{synchronize}{synchronize}
+\setinterfacevariable{system}{system}
+\setinterfacevariable{table}{table}
+\setinterfacevariable{tablehead}{tablehead}
+\setinterfacevariable{tables}{tables}
+\setinterfacevariable{tabletail}{tabletail}
+\setinterfacevariable{tabulate}{tabulate}
+\setinterfacevariable{tabulatehead}{tabulatehead}
+\setinterfacevariable{tabulatetail}{tabulatetail}
+\setinterfacevariable{tall}{tall}
+\setinterfacevariable{teletype}{teletype}
+\setinterfacevariable{temporary}{temporary}
+\setinterfacevariable{test}{test}
+\setinterfacevariable{text}{text}
+\setinterfacevariable{three}{three}
+\setinterfacevariable{thursday}{thursday}
+\setinterfacevariable{title}{title}
+\setinterfacevariable{toggle}{wissel}
+\setinterfacevariable{tolerant}{tolerant}
+\setinterfacevariable{top}{top}
+\setinterfacevariable{tuesday}{tuesday}
+\setinterfacevariable{two}{two}
+\setinterfacevariable{txt}{txt}
+\setinterfacevariable{type}{type}
+\setinterfacevariable{typing}{typing}
+\setinterfacevariable{unavailable}{unavailable}
+\setinterfacevariable{unit}{unit}
+\setinterfacevariable{units}{units}
+\setinterfacevariable{unknown}{unknown}
+\setinterfacevariable{unpacked}{unpacked}
+\setinterfacevariable{url}{url}
+\setinterfacevariable{used}{used}
+\setinterfacevariable{value}{value}
+\setinterfacevariable{vertical}{vertical}
+\setinterfacevariable{very}{very}
+\setinterfacevariable{verystrict}{verystrict}
+\setinterfacevariable{verytolerant}{verytolerant}
+\setinterfacevariable{weak}{zwak}
+\setinterfacevariable{wednesday}{wednesday}
+\setinterfacevariable{week}{week}
+\setinterfacevariable{weekday}{weekday}
+\setinterfacevariable{white}{white}
+\setinterfacevariable{wide}{wide}
+\setinterfacevariable{width}{width}
+\setinterfacevariable{xml}{xml}
+\setinterfacevariable{year}{year}
+\setinterfacevariable{yes}{yes}
+% definitions for interface constants for language en
+%
+\setinterfaceconstant{action}{action}
+\setinterfaceconstant{address}{address}
+\setinterfaceconstant{after}{after}
+\setinterfaceconstant{afterhead}{afterhead}
+\setinterfaceconstant{afterkey}{afterkey}
+\setinterfaceconstant{align}{align}
+\setinterfaceconstant{aligncharacter}{aligncharacter}
+\setinterfaceconstant{alignmentcharacter}{alignmentcharacter}
+\setinterfaceconstant{aligntitle}{aligntitle}
+\setinterfaceconstant{alternative}{alternative}
+\setinterfaceconstant{apa}{apa}
+\setinterfaceconstant{arrow}{arrow}
+\setinterfaceconstant{at}{at}
+\setinterfaceconstant{author}{author}
+\setinterfaceconstant{auto}{auto}
+\setinterfaceconstant{autofile}{autofile}
+\setinterfaceconstant{autofocus}{autofocus}
+\setinterfaceconstant{autohang}{autohang}
+\setinterfaceconstant{autostrut}{autostrut}
+\setinterfaceconstant{autowidth}{autowidth}
+\setinterfaceconstant{axis}{axis}
+\setinterfaceconstant{background}{background}
+\setinterfaceconstant{backgroundcolor}{backgroundcolor}
+\setinterfaceconstant{backgroundcorner}{backgroundcorner}
+\setinterfaceconstant{backgrounddepth}{backgrounddepth}
+\setinterfaceconstant{backgroundoffset}{backgroundoffset}
+\setinterfaceconstant{backgroundradius}{backgroundradius}
+\setinterfaceconstant{backgroundscreen}{backgroundscreen}
+\setinterfaceconstant{backspace}{backspace}
+\setinterfaceconstant{balance}{balance}
+\setinterfaceconstant{before}{before}
+\setinterfaceconstant{beforehead}{beforehead}
+\setinterfaceconstant{bet}{bet}
+\setinterfaceconstant{big}{big}
+\setinterfaceconstant{blank}{blank}
+\setinterfaceconstant{blockway}{blockway}
+\setinterfaceconstant{bodyfont}{bodyfont}
+\setinterfaceconstant{bookmark}{bookmark}
+\setinterfaceconstant{bottom}{bottom}
+\setinterfaceconstant{bottomafter}{bottomafter}
+\setinterfaceconstant{bottombefore}{bottombefore}
+\setinterfaceconstant{bottomdistance}{bottomdistance}
+\setinterfaceconstant{bottomframe}{bottomframe}
+\setinterfaceconstant{bottomoffset}{bottomoffset}
+\setinterfaceconstant{bottomspace}{bottomspace}
+\setinterfaceconstant{bottomstate}{bottomstate}
+\setinterfaceconstant{cache}{cache}
+\setinterfaceconstant{calculate}{calculate}
+\setinterfaceconstant{ccommand}{ccommand}
+\setinterfaceconstant{click}{click}
+\setinterfaceconstant{clickin}{clickin}
+\setinterfaceconstant{clickout}{clickout}
+\setinterfaceconstant{clipoffset}{clipoffset}
+\setinterfaceconstant{closeaction}{closeaction}
+\setinterfaceconstant{closecommand}{closecommand}
+\setinterfaceconstant{closepageaction}{closepageaction}
+\setinterfaceconstant{closesymbol}{closesymbol}
+\setinterfaceconstant{color}{color}
+\setinterfaceconstant{column}{column}
+\setinterfaceconstant{columndistance}{columndistance}
+\setinterfaceconstant{columns}{columns}
+\setinterfaceconstant{command}{command}
+\setinterfaceconstant{commandafter}{commandafter}
+\setinterfaceconstant{commandbefore}{commandbefore}
+\setinterfaceconstant{commands}{commands}
+\setinterfaceconstant{component}{component}
+\setinterfaceconstant{compoundhyphen}{compoundhyphen}
+\setinterfaceconstant{compress}{compress}
+\setinterfaceconstant{connector}{connector}
+\setinterfaceconstant{continue}{continue}
+\setinterfaceconstant{contrastcolor}{contrastcolor}
+\setinterfaceconstant{controls}{controls}
+\setinterfaceconstant{conversion}{conversion}
+\setinterfaceconstant{convertfile}{convertfile}
+\setinterfaceconstant{corner}{corner}
+\setinterfaceconstant{coupling}{coupling}
+\setinterfaceconstant{couplingway}{couplingway}
+\setinterfaceconstant{criterium}{criterium}
+\setinterfaceconstant{current}{current}
+\setinterfaceconstant{cutspace}{cutspace}
+\setinterfaceconstant{dash}{dash}
+\setinterfaceconstant{dat}{dat}
+\setinterfaceconstant{date}{date}
+\setinterfaceconstant{deepnumbercommand}{deepnumbercommand}
+\setinterfaceconstant{deeptextcommand}{deeptextcommand}
+\setinterfaceconstant{default}{default}
+\setinterfaceconstant{delay}{delay}
+\setinterfaceconstant{depth}{depth}
+\setinterfaceconstant{depthcorrection}{depthcorrection}
+\setinterfaceconstant{direction}{direction}
+\setinterfaceconstant{directory}{directory}
+\setinterfaceconstant{display}{display}
+\setinterfaceconstant{distance}{distance}
+\setinterfaceconstant{dot}{dot}
+\setinterfaceconstant{doublesided}{doublesided}
+\setinterfaceconstant{dummy}{dummy}
+\setinterfaceconstant{dx}{dx}
+\setinterfaceconstant{dy}{dy}
+\setinterfaceconstant{edge}{edge}
+\setinterfaceconstant{edgedistance}{edgedistance}
+\setinterfaceconstant{empty}{empty}
+\setinterfaceconstant{equalheight}{equalheight}
+\setinterfaceconstant{equalwidth}{equalwidth}
+\setinterfaceconstant{escape}{escape}
+\setinterfaceconstant{evenmargin}{evenmargin}
+\setinterfaceconstant{expansion}{expansion}
+\setinterfaceconstant{extras}{extras}
+\setinterfaceconstant{factor}{factor}
+\setinterfaceconstant{fallback}{fallback}
+\setinterfaceconstant{family}{family}
+\setinterfaceconstant{fieldbackgroundcolor}{fieldbackgroundcolor}
+\setinterfaceconstant{fieldframecolor}{fieldframecolor}
+\setinterfaceconstant{fieldlayer}{fieldlayer}
+\setinterfaceconstant{fieldoffset}{fieldoffset}
+\setinterfaceconstant{file}{file}
+\setinterfaceconstant{filtercommand}{filtercommand}
+\setinterfaceconstant{focus}{focus}
+\setinterfaceconstant{focusin}{focusin}
+\setinterfaceconstant{focusout}{focusout}
+\setinterfaceconstant{footer}{footer}
+\setinterfaceconstant{footerdistance}{footerdistance}
+\setinterfaceconstant{footerstate}{footerstate}
+\setinterfaceconstant{foregroundcolor}{foregroundcolor}
+\setinterfaceconstant{foregroundstyle}{foregroundstyle}
+\setinterfaceconstant{format}{format}
+\setinterfaceconstant{frame}{frame}
+\setinterfaceconstant{framecolor}{framecolor}
+\setinterfaceconstant{framecorner}{framecorner}
+\setinterfaceconstant{framedepth}{framedepth}
+\setinterfaceconstant{frameoffset}{frameoffset}
+\setinterfaceconstant{frameradius}{frameradius}
+\setinterfaceconstant{frames}{frames}
+\setinterfaceconstant{from}{from}
+\setinterfaceconstant{get}{get}
+\setinterfaceconstant{global}{global}
+\setinterfaceconstant{grid}{grid}
+\setinterfaceconstant{hang}{hang}
+\setinterfaceconstant{headcolor}{headcolor}
+\setinterfaceconstant{headcommand}{headcommand}
+\setinterfaceconstant{headconversion}{headconversion}
+\setinterfaceconstant{header}{header}
+\setinterfaceconstant{headerdistance}{headerdistance}
+\setinterfaceconstant{headerstate}{headerstate}
+\setinterfaceconstant{headlabel}{headlabel}
+\setinterfaceconstant{headnumber}{headnumber}
+\setinterfaceconstant{headstyle}{headstyle}
+\setinterfaceconstant{height}{height}
+\setinterfaceconstant{hfactor}{hfactor}
+\setinterfaceconstant{hfil}{hfil}
+\setinterfaceconstant{hidenumber}{hidenumber}
+\setinterfaceconstant{hoffset}{hoffset}
+\setinterfaceconstant{horoffset}{horoffset}
+\setinterfaceconstant{hyphen}{hyphen}
+\setinterfaceconstant{icommand}{icommand}
+\setinterfaceconstant{in}{in}
+\setinterfaceconstant{inbetween}{inbetween}
+\setinterfaceconstant{increment}{increment}
+\setinterfaceconstant{incrementnumber}{incrementnumber}
+\setinterfaceconstant{indenting}{indenting}
+\setinterfaceconstant{indentnext}{indentnext}
+\setinterfaceconstant{indicator}{indicator}
+\setinterfaceconstant{inner}{inner}
+\setinterfaceconstant{innermargin}{innermargin}
+\setinterfaceconstant{inputfile}{inputfile}
+\setinterfaceconstant{interaction}{interaction}
+\setinterfaceconstant{interlinespace}{interlinespace}
+\setinterfaceconstant{itemalign}{itemalign}
+\setinterfaceconstant{items}{items}
+\setinterfaceconstant{ken}{ken}
+\setinterfaceconstant{keyexpansion}{keyexpansion}
+\setinterfaceconstant{keyword}{keyword}
+\setinterfaceconstant{label}{label}
+\setinterfaceconstant{left}{left}
+\setinterfaceconstant{leftcolor}{leftcolor}
+\setinterfaceconstant{leftcompoundhyphen}{leftcompoundhyphen}
+\setinterfaceconstant{leftedge}{leftedge}
+\setinterfaceconstant{leftedgedistance}{leftedgedistance}
+\setinterfaceconstant{leftframe}{leftframe}
+\setinterfaceconstant{lefthyphen}{lefthyphen}
+\setinterfaceconstant{leftmargin}{leftmargin}
+\setinterfaceconstant{leftmargindistance}{leftmargindistance}
+\setinterfaceconstant{leftoffset}{leftoffset}
+\setinterfaceconstant{leftquotation}{leftquotation}
+\setinterfaceconstant{leftquote}{leftquote}
+\setinterfaceconstant{leftsentence}{leftsentence}
+\setinterfaceconstant{leftspeech}{leftspeech}
+\setinterfaceconstant{leftstyle}{leftstyle}
+\setinterfaceconstant{leftsubsentence}{leftsubsentence}
+\setinterfaceconstant{lefttext}{lefttext}
+\setinterfaceconstant{leftwidth}{leftwidth}
+\setinterfaceconstant{level}{level}
+\setinterfaceconstant{levels}{levels}
+\setinterfaceconstant{limittext}{limittext}
+\setinterfaceconstant{line}{line}
+\setinterfaceconstant{linecorrection}{linecorrection}
+\setinterfaceconstant{lines}{lines}
+\setinterfaceconstant{list}{list}
+\setinterfaceconstant{listtext}{listtext}
+\setinterfaceconstant{local}{local}
+\setinterfaceconstant{location}{location}
+\setinterfaceconstant{logo}{logo}
+\setinterfaceconstant{logos}{logos}
+\setinterfaceconstant{marcolor}{marcolor}
+\setinterfaceconstant{margin}{margin}
+\setinterfaceconstant{margindistance}{margindistance}
+\setinterfaceconstant{marginedge}{marginedge}
+\setinterfaceconstant{marginedgetext}{marginedgetext}
+\setinterfaceconstant{margintext}{margintext}
+\setinterfaceconstant{marking}{marking}
+\setinterfaceconstant{marstyle}{marstyle}
+\setinterfaceconstant{max}{max}
+\setinterfaceconstant{maxheight}{maxheight}
+\setinterfaceconstant{maxwidth}{maxwidth}
+\setinterfaceconstant{menu}{menu}
+\setinterfaceconstant{method}{method}
+\setinterfaceconstant{middle}{middle}
+\setinterfaceconstant{middlespeech}{middlespeech}
+\setinterfaceconstant{middletext}{middletext}
+\setinterfaceconstant{midsentence}{midsentence}
+\setinterfaceconstant{min}{min}
+\setinterfaceconstant{mindepth}{mindepth}
+\setinterfaceconstant{minheight}{minheight}
+\setinterfaceconstant{minwidth}{minwidth}
+\setinterfaceconstant{n}{n}
+\setinterfaceconstant{name}{name}
+\setinterfaceconstant{nbottom}{nbottom}
+\setinterfaceconstant{nc}{nc}
+\setinterfaceconstant{next}{next}
+\setinterfaceconstant{nl}{nl}
+\setinterfaceconstant{nleft}{nleft}
+\setinterfaceconstant{nlines}{nlines}
+\setinterfaceconstant{norm}{norm}
+\setinterfaceconstant{nr}{nr}
+\setinterfaceconstant{nright}{nright}
+\setinterfaceconstant{ntop}{ntop}
+\setinterfaceconstant{number}{number}
+\setinterfaceconstant{numbercolor}{numbercolor}
+\setinterfaceconstant{numbercommand}{numbercommand}
+\setinterfaceconstant{numberconversion}{numberconversion}
+\setinterfaceconstant{numberconversionset}{numberconversionset}
+\setinterfaceconstant{numberdistance}{numberdistance}
+\setinterfaceconstant{numbering}{numbering}
+\setinterfaceconstant{numberorder}{numberorder}
+\setinterfaceconstant{numberprefix}{numberprefix}
+\setinterfaceconstant{numbersegments}{numbersegments}
+\setinterfaceconstant{numberseparator}{numberseparator}
+\setinterfaceconstant{numberseparatorset}{numberseparatorset}
+\setinterfaceconstant{numberset}{numberset}
+\setinterfaceconstant{numberstopper}{numberstopper}
+\setinterfaceconstant{numberstyle}{numberstyle}
+\setinterfaceconstant{numberwidth}{numberwidth}
+\setinterfaceconstant{nx}{nx}
+\setinterfaceconstant{ny}{ny}
+\setinterfaceconstant{object}{object}
+\setinterfaceconstant{obstruction}{obstruction}
+\setinterfaceconstant{oddmargin}{oddmargin}
+\setinterfaceconstant{offset}{offset}
+\setinterfaceconstant{openaction}{openaction}
+\setinterfaceconstant{openpageaction}{openpageaction}
+\setinterfaceconstant{option}{option}
+\setinterfaceconstant{orientation}{orientation}
+\setinterfaceconstant{outermargin}{outermargin}
+\setinterfaceconstant{overprint}{overprint}
+\setinterfaceconstant{ownnumber}{ownnumber}
+\setinterfaceconstant{page}{page}
+\setinterfaceconstant{pageboundaries}{pageboundaries}
+\setinterfaceconstant{pagecolor}{pagecolor}
+\setinterfaceconstant{pagecommand}{pagecommand}
+\setinterfaceconstant{pageconversion}{pageconversion}
+\setinterfaceconstant{pageconversionset}{pageconversionset}
+\setinterfaceconstant{pagenumber}{pagenumber}
+\setinterfaceconstant{pageprefix}{pageprefix}
+\setinterfaceconstant{pageprefixconnector}{pageprefixconnector}
+\setinterfaceconstant{pageprefixconversion}{pageprefixconversion}
+\setinterfaceconstant{pageprefixconversionset}{pageprefixconversionset}
+\setinterfaceconstant{pageprefixsegments}{pageprefixsegments}
+\setinterfaceconstant{pageprefixseparatorset}{pageprefixseparatorset}
+\setinterfaceconstant{pageprefixset}{pageprefixset}
+\setinterfaceconstant{pageprefixstopper}{pageprefixstopper}
+\setinterfaceconstant{pagesegments}{pagesegments}
+\setinterfaceconstant{pageseparatorset}{pageseparatorset}
+\setinterfaceconstant{pageset}{pageset}
+\setinterfaceconstant{pagestate}{pagestate}
+\setinterfaceconstant{pagestopper}{pagestopper}
+\setinterfaceconstant{pagestyle}{pagestyle}
+\setinterfaceconstant{palet}{palet}
+\setinterfaceconstant{paper}{paper}
+\setinterfaceconstant{paragraph}{paragraph}
+\setinterfaceconstant{place}{place}
+\setinterfaceconstant{placehead}{placehead}
+\setinterfaceconstant{placestopper}{placestopper}
+\setinterfaceconstant{position}{position}
+\setinterfaceconstant{prefix}{prefix}
+\setinterfaceconstant{prefixconnector}{prefixconnector}
+\setinterfaceconstant{prefixconversion}{prefixconversion}
+\setinterfaceconstant{prefixconversionset}{prefixconversionset}
+\setinterfaceconstant{prefixsegments}{prefixsegments}
+\setinterfaceconstant{prefixseparatorset}{prefixseparatorset}
+\setinterfaceconstant{prefixset}{prefixset}
+\setinterfaceconstant{prefixstopper}{prefixstopper}
+\setinterfaceconstant{preset}{preset}
+\setinterfaceconstant{preview}{preview}
+\setinterfaceconstant{previous}{previous}
+\setinterfaceconstant{previousnumber}{previousnumber}
+\setinterfaceconstant{process}{process}
+\setinterfaceconstant{radius}{radius}
+\setinterfaceconstant{random}{random}
+\setinterfaceconstant{reduction}{reduction}
+\setinterfaceconstant{ref}{ref}
+\setinterfaceconstant{reference}{reference}
+\setinterfaceconstant{referenceprefix}{referenceprefix}
+\setinterfaceconstant{referencing}{referencing}
+\setinterfaceconstant{regionin}{regionin}
+\setinterfaceconstant{regionout}{regionout}
+\setinterfaceconstant{repeat}{repeat}
+\setinterfaceconstant{reset}{reset}
+\setinterfaceconstant{resetnumber}{resetnumber}
+\setinterfaceconstant{resolution}{resolution}
+\setinterfaceconstant{right}{right}
+\setinterfaceconstant{rightcolor}{rightcolor}
+\setinterfaceconstant{rightcompoundhyphen}{rightcompoundhyphen}
+\setinterfaceconstant{rightedge}{rightedge}
+\setinterfaceconstant{rightedgedistance}{rightedgedistance}
+\setinterfaceconstant{rightframe}{rightframe}
+\setinterfaceconstant{righthyphen}{righthyphen}
+\setinterfaceconstant{rightmargin}{rightmargin}
+\setinterfaceconstant{rightmargindistance}{rightmargindistance}
+\setinterfaceconstant{rightoffset}{rightoffset}
+\setinterfaceconstant{rightquotation}{rightquotation}
+\setinterfaceconstant{rightquote}{rightquote}
+\setinterfaceconstant{rightsentence}{rightsentence}
+\setinterfaceconstant{rightspeech}{rightspeech}
+\setinterfaceconstant{rightstyle}{rightstyle}
+\setinterfaceconstant{rightsubsentence}{rightsubsentence}
+\setinterfaceconstant{righttext}{righttext}
+\setinterfaceconstant{rightwidth}{rightwidth}
+\setinterfaceconstant{rotation}{rotation}
+\setinterfaceconstant{rule}{rule}
+\setinterfaceconstant{rulecolor}{rulecolor}
+\setinterfaceconstant{rulethickness}{rulethickness}
+\setinterfaceconstant{samepage}{samepage}
+\setinterfaceconstant{sample}{sample}
+\setinterfaceconstant{saveinlist}{saveinlist}
+\setinterfaceconstant{scale}{scale}
+\setinterfaceconstant{scope}{scope}
+\setinterfaceconstant{screen}{screen}
+\setinterfaceconstant{section}{section}
+\setinterfaceconstant{sectionconversion}{sectionconversion}
+\setinterfaceconstant{sectionconversionset}{sectionconversionset}
+\setinterfaceconstant{sectionnumber}{sectionnumber}
+\setinterfaceconstant{sectionresetset}{sectionresetset}
+\setinterfaceconstant{sectionsegments}{sectionsegments}
+\setinterfaceconstant{sectionseparatorset}{sectionseparatorset}
+\setinterfaceconstant{sectionset}{sectionset}
+\setinterfaceconstant{sectionstopper}{sectionstopper}
+\setinterfaceconstant{separator}{separator}
+\setinterfaceconstant{set}{set}
+\setinterfaceconstant{setups}{setups}
+\setinterfaceconstant{side}{side}
+\setinterfaceconstant{sidealign}{sidealign}
+\setinterfaceconstant{sidemethod}{sidemethod}
+\setinterfaceconstant{sidespaceafter}{sidespaceafter}
+\setinterfaceconstant{sidespacebefore}{sidespacebefore}
+\setinterfaceconstant{sign}{sign}
+\setinterfaceconstant{size}{size}
+\setinterfaceconstant{small}{small}
+\setinterfaceconstant{sorttype}{sorttype}
+\setinterfaceconstant{source}{source}
+\setinterfaceconstant{space}{space}
+\setinterfaceconstant{spaceafter}{spaceafter}
+\setinterfaceconstant{spacebefore}{spacebefore}
+\setinterfaceconstant{spaceinbetween}{spaceinbetween}
+\setinterfaceconstant{spacing}{spacing}
+\setinterfaceconstant{split}{split}
+\setinterfaceconstant{splitcolor}{splitcolor}
+\setinterfaceconstant{splitmethod}{splitmethod}
+\setinterfaceconstant{splitoffset}{splitoffset}
+\setinterfaceconstant{spot}{spot}
+\setinterfaceconstant{stack}{stack}
+\setinterfaceconstant{start}{start}
+\setinterfaceconstant{state}{state}
+\setinterfaceconstant{step}{step}
+\setinterfaceconstant{stop}{stop}
+\setinterfaceconstant{stopper}{stopper}
+\setinterfaceconstant{stretch}{stretch}
+\setinterfaceconstant{strut}{strut}
+\setinterfaceconstant{style}{style}
+\setinterfaceconstant{sub}{sub}
+\setinterfaceconstant{subtitle}{subtitle}
+\setinterfaceconstant{suffix}{suffix}
+\setinterfaceconstant{sx}{sx}
+\setinterfaceconstant{sy}{sy}
+\setinterfaceconstant{symalign}{symalign}
+\setinterfaceconstant{symbol}{symbol}
+\setinterfaceconstant{symbolset}{symbolset}
+\setinterfaceconstant{symcolor}{symcolor}
+\setinterfaceconstant{symstyle}{symstyle}
+\setinterfaceconstant{synonym}{synonym}
+\setinterfaceconstant{synonymcolor}{synonymcolor}
+\setinterfaceconstant{synonymcommand}{synonymcommand}
+\setinterfaceconstant{synonymstyle}{synonymstyle}
+\setinterfaceconstant{tab}{tab}
+\setinterfaceconstant{text}{text}
+\setinterfaceconstant{textcolor}{textcolor}
+\setinterfaceconstant{textcommand}{textcommand}
+\setinterfaceconstant{textdistance}{textdistance}
+\setinterfaceconstant{textlayer}{textlayer}
+\setinterfaceconstant{textmargin}{textmargin}
+\setinterfaceconstant{textmethod}{textmethod}
+\setinterfaceconstant{textseparator}{textseparator}
+\setinterfaceconstant{textsize}{textsize}
+\setinterfaceconstant{textstate}{textstate}
+\setinterfaceconstant{textstyle}{textstyle}
+\setinterfaceconstant{textwidth}{textwidth}
+\setinterfaceconstant{title}{title}
+\setinterfaceconstant{titlecolor}{titlecolor}
+\setinterfaceconstant{titlecommand}{titlecommand}
+\setinterfaceconstant{titledistance}{titledistance}
+\setinterfaceconstant{titleleft}{titleleft}
+\setinterfaceconstant{titleright}{titleright}
+\setinterfaceconstant{titlestyle}{titlestyle}
+\setinterfaceconstant{to}{to}
+\setinterfaceconstant{tolerance}{tolerance}
+\setinterfaceconstant{top}{top}
+\setinterfaceconstant{topdistance}{topdistance}
+\setinterfaceconstant{topframe}{topframe}
+\setinterfaceconstant{topoffset}{topoffset}
+\setinterfaceconstant{topspace}{topspace}
+\setinterfaceconstant{topstate}{topstate}
+\setinterfaceconstant{type}{type}
+\setinterfaceconstant{unit}{unit}
+\setinterfaceconstant{unknownreference}{unknownreference}
+\setinterfaceconstant{urlalternative}{urlalternative}
+\setinterfaceconstant{urlspace}{urlspace}
+\setinterfaceconstant{validate}{validate}
+\setinterfaceconstant{vcommand}{vcommand}
+\setinterfaceconstant{veroffset}{veroffset}
+\setinterfaceconstant{vfil}{vfil}
+\setinterfaceconstant{voffset}{voffset}
+\setinterfaceconstant{way}{way}
+\setinterfaceconstant{wfactor}{wfactor}
+\setinterfaceconstant{white}{white}
+\setinterfaceconstant{width}{width}
+\setinterfaceconstant{xfactor}{xfactor}
+\setinterfaceconstant{xmax}{xmax}
+\setinterfaceconstant{xoffset}{xoffset}
+\setinterfaceconstant{xscale}{xscale}
+\setinterfaceconstant{xstep}{xstep}
+\setinterfaceconstant{yfactor}{yfactor}
+\setinterfaceconstant{ymax}{ymax}
+\setinterfaceconstant{yoffset}{yoffset}
+\setinterfaceconstant{yscale}{yscale}
+\setinterfaceconstant{ystep}{ystep}
+% definitions for interface elements for language en
+%
+\setinterfaceelement{answerlines}{answerlines}
+\setinterfaceelement{answerspace}{answerspace}
+\setinterfaceelement{begin}{begin}
+\setinterfaceelement{complete}{complete}
+\setinterfaceelement{coupled}{coupled}
+\setinterfaceelement{currentlocal}{currentlocal}
+\setinterfaceelement{emptyone}{empty}
+\setinterfaceelement{emptytwo}{empty}
+\setinterfaceelement{end}{end}
+\setinterfaceelement{endsetup}{}
+\setinterfaceelement{get}{get}
+\setinterfaceelement{increment}{increment}
+\setinterfaceelement{list}{list}
+\setinterfaceelement{listof}{listof}
+\setinterfaceelement{load}{load}
+\setinterfaceelement{local}{local}
+\setinterfaceelement{makeup}{makeup}
+\setinterfaceelement{next}{next}
+\setinterfaceelement{place}{place}
+\setinterfaceelement{previous}{previous}
+\setinterfaceelement{previouslocal}{previouslocal}
+\setinterfaceelement{reserve}{reserve}
+\setinterfaceelement{see}{see}
+\setinterfaceelement{setup}{setup}
+\setinterfaceelement{start}{start}
+\setinterfaceelement{stop}{stop}
+\setinterfaceelement{text}{text}
+\setinterfaceelement{type}{type}
+% definitions for interface commands for language en
+%
+\setinterfacecommand{CAPPED}{CAP}
+\setinterfacecommand{Character}{Character}
+\setinterfacecommand{Characters}{Characters}
+\setinterfacecommand{LABELTEXT}{LABELTEXT}
+\setinterfacecommand{MONTH}{MONTH}
+\setinterfacecommand{Numbers}{Numbers}
+\setinterfacecommand{Romannumerals}{Romannumerals}
+\setinterfacecommand{SmallCapped}{Cap}
+\setinterfacecommand{SmallCaps}{Caps}
+\setinterfacecommand{WEEKDAY}{WEEKDAY}
+\setinterfacecommand{WORD}{WORD}
+\setinterfacecommand{WORDS}{WORDS}
+\setinterfacecommand{Word}{Word}
+\setinterfacecommand{Words}{Words}
+\setinterfacecommand{about}{about}
+\setinterfacecommand{adaptlayout}{adaptlayout}
+\setinterfacecommand{arg}{arg}
+\setinterfacecommand{at}{at}
+\setinterfacecommand{atleftmargin}{atleftmargin}
+\setinterfacecommand{atpage}{atpage}
+\setinterfacecommand{atrightmargin}{atrightmargin}
+\setinterfacecommand{background}{background}
+\setinterfacecommand{backspace}{backspace}
+\setinterfacecommand{blackrule}{blackrule}
+\setinterfacecommand{blackrules}{blackrules}
+\setinterfacecommand{blank}{blank}
+\setinterfacecommand{bookmark}{bookmark}
+\setinterfacecommand{bottomdistance}{bottomdistance}
+\setinterfacecommand{bottomheight}{bottomheight}
+\setinterfacecommand{bottomspace}{bottomspace}
+\setinterfacecommand{but}{but}
+\setinterfacecommand{button}{button}
+\setinterfacecommand{bypassblocks}{bypassblocks}
+\setinterfacecommand{character}{character}
+\setinterfacecommand{characters}{characters}
+\setinterfacecommand{chem}{chem}
+\setinterfacecommand{clip}{clip}
+\setinterfacecommand{clonefield}{clonefield}
+\setinterfacecommand{color}{color}
+\setinterfacecommand{colorbar}{colorbar}
+\setinterfacecommand{colorvalue}{colorvalue}
+\setinterfacecommand{column}{column}
+\setinterfacecommand{comment}{comment}
+\setinterfacecommand{comparecolorgroup}{comparecolorgroup}
+\setinterfacecommand{comparepalet}{comparepalet}
+\setinterfacecommand{completepagenumber}{completepagenumber}
+\setinterfacecommand{completeregister}{completeregister}
+\setinterfacecommand{component}{component}
+\setinterfacecommand{convertnumber}{convertnumber}
+\setinterfacecommand{copyfield}{copyfield}
+\setinterfacecommand{correctwhitespace}{correctwhitespace}
+\setinterfacecommand{coupledocument}{coupledocument}
+\setinterfacecommand{couplemarking}{couplemarking}
+\setinterfacecommand{couplepage}{couplepage}
+\setinterfacecommand{couplepaper}{couplepaper}
+\setinterfacecommand{coupleregister}{coupleregister}
+\setinterfacecommand{crlf}{crlf}
+\setinterfacecommand{currentdate}{currentdate}
+\setinterfacecommand{currentheadnumber}{currentheadnumber}
+\setinterfacecommand{cutspace}{cutspace}
+\setinterfacecommand{date}{date}
+\setinterfacecommand{decouplemarking}{decouplemarking}
+\setinterfacecommand{decrementnumber}{decrementnumber}
+\setinterfacecommand{define}{define}
+\setinterfacecommand{defineaccent}{defineaccent}
+\setinterfacecommand{defineblank}{defineblank}
+\setinterfacecommand{defineblock}{defineblock}
+\setinterfacecommand{definebodyfont}{definebodyfont}
+\setinterfacecommand{definebodyfontenvironment}{definebodyfontenvironment}
+\setinterfacecommand{definebuffer}{definebuffer}
+\setinterfacecommand{definecharacter}{definecharacter}
+\setinterfacecommand{definecolor}{definecolor}
+\setinterfacecommand{definecolorgroup}{definecolorgroup}
+\setinterfacecommand{definecolumnbreak}{definecolumnbreak}
+\setinterfacecommand{definecolumnset}{definecolumnset}
+\setinterfacecommand{definecombination}{definecombination}
+\setinterfacecommand{definecombinedlist}{definecombinedlist}
+\setinterfacecommand{definecommand}{definecommand}
+\setinterfacecommand{defineconversion}{defineconversion}
+\setinterfacecommand{definedescription}{definedescription}
+\setinterfacecommand{defineenumeration}{defineenumeration}
+\setinterfacecommand{definefield}{definefield}
+\setinterfacecommand{definefieldstack}{definefieldstack}
+\setinterfacecommand{definefiguresymbol}{definefiguresymbol}
+\setinterfacecommand{definefloat}{definefloat}
+\setinterfacecommand{definefont}{definefont}
+\setinterfacecommand{definefontstyle}{definefontstyle}
+\setinterfacecommand{definefontsynonym}{definefontsynonym}
+\setinterfacecommand{defineframed}{defineframed}
+\setinterfacecommand{defineframedtext}{defineframedtext}
+\setinterfacecommand{definehbox}{definehbox}
+\setinterfacecommand{definehead}{definehead}
+\setinterfacecommand{defineindenting}{defineindenting}
+\setinterfacecommand{defineinmargin}{defineinmargin}
+\setinterfacecommand{defineinteractionmenu}{defineinteractionmenu}
+\setinterfacecommand{defineitemgroup}{defineitemgroup}
+\setinterfacecommand{definelabel}{definelabel}
+\setinterfacecommand{definelayer}{definelayer}
+\setinterfacecommand{definelayout}{definelayout}
+\setinterfacecommand{definelist}{definelist}
+\setinterfacecommand{definelogo}{definelogo}
+\setinterfacecommand{definemainfield}{definemainfield}
+\setinterfacecommand{definemakeup}{definemakeup}
+\setinterfacecommand{definemarking}{definemarking}
+\setinterfacecommand{definemathalignment}{definemathalignment}
+\setinterfacecommand{defineoutput}{defineoutput}
+\setinterfacecommand{defineoverlay}{defineoverlay}
+\setinterfacecommand{definepagebreak}{definepagebreak}
+\setinterfacecommand{definepalet}{definepalet}
+\setinterfacecommand{definepapersize}{definepapersize}
+\setinterfacecommand{defineparagraphs}{defineparagraphs}
+\setinterfacecommand{defineplacement}{defineplacement}
+\setinterfacecommand{defineprofile}{defineprofile}
+\setinterfacecommand{defineprogram}{defineprogram}
+\setinterfacecommand{definerawfont}{definerawfont}
+\setinterfacecommand{definereference}{definereference}
+\setinterfacecommand{definereferenceformat}{definereferenceformat}
+\setinterfacecommand{definereferencelist}{definereferencelist}
+\setinterfacecommand{defineregister}{defineregister}
+\setinterfacecommand{definerule}{definerule}
+\setinterfacecommand{definesection}{definesection}
+\setinterfacecommand{definesectionblock}{definesectionblock}
+\setinterfacecommand{definesorting}{definesorting}
+\setinterfacecommand{definestartstop}{definestartstop}
+\setinterfacecommand{definestyle}{definestyle}
+\setinterfacecommand{definesubfield}{definesubfield}
+\setinterfacecommand{definesymbol}{definesymbol}
+\setinterfacecommand{definesynonyms}{definesynonyms}
+\setinterfacecommand{definetabletemplate}{definetabletemplate}
+\setinterfacecommand{definetabulate}{definetabulate}
+\setinterfacecommand{definetext}{definetext}
+\setinterfacecommand{definetextposition}{definetextposition}
+\setinterfacecommand{definetextvariable}{definetextvariable}
+\setinterfacecommand{definetype}{definetype}
+\setinterfacecommand{definetyping}{definetyping}
+\setinterfacecommand{defineversion}{defineversion}
+\setinterfacecommand{determineheadnumber}{determineheadnumber}
+\setinterfacecommand{determinelistcharacteristics}{determinelistcharacteristics}
+\setinterfacecommand{determineregistercharacteristics}{determineregistercharacteristics}
+\setinterfacecommand{dimension}{dimension}
+\setinterfacecommand{disableinteractionmenu}{disableinteractionmenu}
+\setinterfacecommand{domicile}{domicile}
+\setinterfacecommand{donttest}{donttest}
+\setinterfacecommand{edgedistance}{edgedistance}
+\setinterfacecommand{edgewidth}{edgewidth}
+\setinterfacecommand{emptylines}{emptylines}
+\setinterfacecommand{environment}{environment}
+\setinterfacecommand{externalfigure}{externalfigure}
+\setinterfacecommand{fact}{fact}
+\setinterfacecommand{field}{field}
+\setinterfacecommand{fieldstack}{fieldstack}
+\setinterfacecommand{fillinfield}{fillinfield}
+\setinterfacecommand{fillinline}{fillinline}
+\setinterfacecommand{fillinrules}{fillinrules}
+\setinterfacecommand{fillintext}{fillintext}
+\setinterfacecommand{fitfield}{fitfield}
+\setinterfacecommand{fixedspace}{fixedspace}
+\setinterfacecommand{fixedspaces}{fixedspaces}
+\setinterfacecommand{followprofile}{followprofile}
+\setinterfacecommand{followprofileversion}{followprofileversion}
+\setinterfacecommand{followversion}{followversion}
+\setinterfacecommand{footerdistance}{footerdistance}
+\setinterfacecommand{footerheight}{footerheight}
+\setinterfacecommand{footnote}{footnote}
+\setinterfacecommand{footnotetext}{footnotetext}
+\setinterfacecommand{forceblocks}{forceblocks}
+\setinterfacecommand{formulanumber}{formulanumber}
+\setinterfacecommand{fraction}{fraction}
+\setinterfacecommand{framed}{framed}
+\setinterfacecommand{from}{from}
+\setinterfacecommand{getbuffer}{getbuffer}
+\setinterfacecommand{getmarking}{getmarking}
+\setinterfacecommand{getnumber}{getnumber}
+\setinterfacecommand{godown}{godown}
+\setinterfacecommand{goto}{goto}
+\setinterfacecommand{gotobox}{gotobox}
+\setinterfacecommand{gotopage}{gotopage}
+\setinterfacecommand{graycolor}{graycolor}
+\setinterfacecommand{greyvalue}{greyvalue}
+\setinterfacecommand{grid}{grid}
+\setinterfacecommand{hairline}{hairline}
+\setinterfacecommand{head}{head}
+\setinterfacecommand{headerdistance}{headerdistance}
+\setinterfacecommand{headerheight}{headerheight}
+\setinterfacecommand{headlevel}{headlevel}
+\setinterfacecommand{headnumber}{headnumber}
+\setinterfacecommand{headsym}{headsym}
+\setinterfacecommand{headtext}{headtext}
+\setinterfacecommand{hideblocks}{hideblocks}
+\setinterfacecommand{high}{high}
+\setinterfacecommand{hl}{hl}
+\setinterfacecommand{immediatebetweenlist}{immediatebetweenlist}
+\setinterfacecommand{immediatetolist}{immediatetolist}
+\setinterfacecommand{in}{in}
+\setinterfacecommand{incrementnumber}{incrementnumber}
+\setinterfacecommand{indenting}{indenting}
+\setinterfacecommand{inframed}{inframed}
+\setinterfacecommand{infull}{infull}
+\setinterfacecommand{ininner}{ininner}
+\setinterfacecommand{inleft}{inleft}
+\setinterfacecommand{inleftedge}{inleftedge}
+\setinterfacecommand{inleftmargin}{inleftmargin}
+\setinterfacecommand{inline}{inline}
+\setinterfacecommand{inmargin}{inmargin}
+\setinterfacecommand{inmframed}{inmaframed}
+\setinterfacecommand{inneredgedistance}{inneredgedistance}
+\setinterfacecommand{inneredgewidth}{inneredgewidth}
+\setinterfacecommand{innermargindistance}{innermargindistance}
+\setinterfacecommand{innermarginwidth}{innermarginwidth}
+\setinterfacecommand{inothermargin}{inothermargin}
+\setinterfacecommand{inouter}{inouter}
+\setinterfacecommand{inright}{inright}
+\setinterfacecommand{inrightedge}{inrightedge}
+\setinterfacecommand{inrightmargin}{inrightmargin}
+\setinterfacecommand{installlanguage}{installlanguage}
+\setinterfacecommand{interactionbar}{interactionbar}
+\setinterfacecommand{interactionbuttons}{interactionbuttons}
+\setinterfacecommand{interactionmenu}{interactionmenu}
+\setinterfacecommand{item}{item}
+\setinterfacecommand{items}{items}
+\setinterfacecommand{its}{its}
+\setinterfacecommand{keepblocks}{keepblocks}
+\setinterfacecommand{label}{label}
+\setinterfacecommand{labels}{labels}
+\setinterfacecommand{labeltext}{labeltext}
+\setinterfacecommand{language}{language}
+\setinterfacecommand{leftaligned}{leftaligned}
+\setinterfacecommand{leftedgedistance}{leftedgedistance}
+\setinterfacecommand{leftedgewidth}{leftedgewidth}
+\setinterfacecommand{leftmargindistance}{leftmargindistance}
+\setinterfacecommand{leftmarginwidth}{leftmarginwidth}
+\setinterfacecommand{leg}{leg}
+\setinterfacecommand{linewidth}{linethickness}
+\setinterfacecommand{listheight}{listheight}
+\setinterfacecommand{listlength}{listlength}
+\setinterfacecommand{listsymbol}{listsymbol}
+\setinterfacecommand{listwidth}{listwidth}
+\setinterfacecommand{logfields}{logfields}
+\setinterfacecommand{lohi}{lohi}
+\setinterfacecommand{low}{low}
+\setinterfacecommand{macroname}{name}
+\setinterfacecommand{mainlanguage}{mainlanguage}
+\setinterfacecommand{makeupheight}{makeupheight}
+\setinterfacecommand{makeupwidth}{makeupwidth}
+\setinterfacecommand{mar}{mar}
+\setinterfacecommand{margindistance}{margindistance}
+\setinterfacecommand{marginrule}{marginrule}
+\setinterfacecommand{margintext}{margintext}
+\setinterfacecommand{margintitle}{margintitle}
+\setinterfacecommand{marginwidth}{marginwidth}
+\setinterfacecommand{marginword}{marginword}
+\setinterfacecommand{marking}{marking}
+\setinterfacecommand{markversion}{markversion}
+\setinterfacecommand{mathematics}{mathematics}
+\setinterfacecommand{menubutton}{menubutton}
+\setinterfacecommand{mframed}{maframed}
+\setinterfacecommand{midaligned}{midaligned}
+\setinterfacecommand{mirror}{mirror}
+\setinterfacecommand{month}{month}
+\setinterfacecommand{moveformula}{moveformula}
+\setinterfacecommand{moveongrid}{moveongrid}
+\setinterfacecommand{movesidefloat}{movesidefloat}
+\setinterfacecommand{navigating}{navigating}
+\setinterfacecommand{nodimension}{nodimension}
+\setinterfacecommand{noheaderandfooterlines}{noheaderandfooterlines}
+\setinterfacecommand{noindenting}{noindenting}
+\setinterfacecommand{nolist}{nolist}
+\setinterfacecommand{nomarking}{nomarking}
+\setinterfacecommand{nomoreblocks}{nomoreblocks}
+\setinterfacecommand{nomorefiles}{nomorefiles}
+\setinterfacecommand{nop}{nop}
+\setinterfacecommand{nospace}{nospace}
+\setinterfacecommand{note}{note}
+\setinterfacecommand{notopandbottomlines}{notopandbottomlines}
+\setinterfacecommand{notsmallcapped}{nocap}
+\setinterfacecommand{nowhitespace}{nowhitespace}
+\setinterfacecommand{numberofsubpages}{numberofsubpages}
+\setinterfacecommand{numbers}{numbers}
+\setinterfacecommand{outeredgedistance}{outeredgedistance}
+\setinterfacecommand{outeredgewidth}{outeredgewidth}
+\setinterfacecommand{outermargindistance}{outermargindistance}
+\setinterfacecommand{outermarginwidth}{outermarginwidth}
+\setinterfacecommand{overbar}{overbar}
+\setinterfacecommand{overbars}{overbars}
+\setinterfacecommand{overstrike}{overstrike}
+\setinterfacecommand{overstrikes}{overstrikes}
+\setinterfacecommand{packed}{packed}
+\setinterfacecommand{page}{page}
+\setinterfacecommand{pagedepth}{pagedepth}
+\setinterfacecommand{pagenumber}{pagenumber}
+\setinterfacecommand{pageoffset}{pageoffset}
+\setinterfacecommand{pagereference}{pagereference}
+\setinterfacecommand{pagetype}{pagetype}
+\setinterfacecommand{paperheight}{paperheight}
+\setinterfacecommand{paperwidth}{paperwidth}
+\setinterfacecommand{periods}{periods}
+\setinterfacecommand{plaatsruwelijst}{placerawlist}
+\setinterfacecommand{placebookmarks}{placebookmarks}
+\setinterfacecommand{placecombinedlist}{placecombinedlist}
+\setinterfacecommand{placefloat}{placefloat}
+\setinterfacecommand{placefootnotes}{placefootnotes}
+\setinterfacecommand{placeformula}{placeformula}
+\setinterfacecommand{placeheadnumber}{placeheadnumber}
+\setinterfacecommand{placeheadtext}{placeheadtext}
+\setinterfacecommand{placelegend}{placelegend}
+\setinterfacecommand{placelist}{placelist}
+\setinterfacecommand{placelocalfootnotes}{placelocalfootnotes}
+\setinterfacecommand{placelogos}{placelogos}
+\setinterfacecommand{placeongrid}{placeongrid}
+\setinterfacecommand{placeontopofeachother}{placeontopofeachother}
+\setinterfacecommand{placepagenumber}{placepagenumber}
+\setinterfacecommand{placereferencelist}{placereferencelist}
+\setinterfacecommand{placeregister}{placeregister}
+\setinterfacecommand{placerule}{placerule}
+\setinterfacecommand{placesidebyside}{placesidebyside}
+\setinterfacecommand{placesubformula}{placesubformula}
+\setinterfacecommand{placetextvariable}{placetextvariable}
+\setinterfacecommand{position}{position}
+\setinterfacecommand{positiontext}{positiontext}
+\setinterfacecommand{printpaperheight}{printpaperheight}
+\setinterfacecommand{printpaperwidth}{printpaperwidth}
+\setinterfacecommand{processblocks}{processblocks}
+\setinterfacecommand{processpage}{processpage}
+\setinterfacecommand{product}{product}
+\setinterfacecommand{program}{program}
+\setinterfacecommand{project}{project}
+\setinterfacecommand{publication}{publication}
+\setinterfacecommand{quotation}{quotation}
+\setinterfacecommand{quote}{quote}
+\setinterfacecommand{ran}{ran}
+\setinterfacecommand{redo}{redo}
+\setinterfacecommand{ref}{ref}
+\setinterfacecommand{reference}{reference}
+\setinterfacecommand{referral}{referral}
+\setinterfacecommand{referraldate}{referraldate}
+\setinterfacecommand{referring}{referring}
+\setinterfacecommand{remark}{remark}
+\setinterfacecommand{reset}{reset}
+\setinterfacecommand{resetmarking}{resetmarking}
+\setinterfacecommand{resetnumber}{resetnumber}
+\setinterfacecommand{resettext}{resettextcontent}
+\setinterfacecommand{rightaligned}{rightaligned}
+\setinterfacecommand{rightedgedistance}{rightedgedistance}
+\setinterfacecommand{rightedgewidth}{rightedgewidth}
+\setinterfacecommand{rightmargindistance}{rightmargindistance}
+\setinterfacecommand{rightmarginwidth}{rightmarginwidth}
+\setinterfacecommand{romannumerals}{romannumerals}
+\setinterfacecommand{rotate}{rotate}
+\setinterfacecommand{scale}{scale}
+\setinterfacecommand{screen}{screen}
+\setinterfacecommand{selectblocks}{selectblocks}
+\setinterfacecommand{selectpaper}{selectpaper}
+\setinterfacecommand{selectversion}{selectversion}
+\setinterfacecommand{setnumber}{setnumber}
+\setinterfacecommand{settextcontent}{settextcontent}
+\setinterfacecommand{settextvariable}{settextvariable}
+\setinterfacecommand{setupalign}{setupalign}
+\setinterfacecommand{setupanswerarea}{setupanswerarea}
+\setinterfacecommand{setuparranging}{setuparranging}
+\setinterfacecommand{setupbackground}{setupbackground}
+\setinterfacecommand{setupbackgrounds}{setupbackgrounds}
+\setinterfacecommand{setupblackrules}{setupblackrules}
+\setinterfacecommand{setupblank}{setupblank}
+\setinterfacecommand{setupblock}{setupblock}
+\setinterfacecommand{setupbodyfont}{setupbodyfont}
+\setinterfacecommand{setupbodyfontenvironment}{setupbodyfontenvironment}
+\setinterfacecommand{setupbottom}{setupbottom}
+\setinterfacecommand{setupbottomtexts}{setupbottomtexts}
+\setinterfacecommand{setupbuffer}{setupbuffer}
+\setinterfacecommand{setupbuttons}{setupbuttons}
+\setinterfacecommand{setupcapitals}{setupcapitals}
+\setinterfacecommand{setupcaption}{setupcaption}
+\setinterfacecommand{setupcaptions}{setupcaptions}
+\setinterfacecommand{setupclipping}{setupclipping}
+\setinterfacecommand{setupcolor}{setupcolor}
+\setinterfacecommand{setupcolors}{setupcolors}
+\setinterfacecommand{setupcolumns}{setupcolumns}
+\setinterfacecommand{setupcolumnset}{setupcolumnset}
+\setinterfacecommand{setupcolumnsetlines}{setupcolumnsetlines}
+\setinterfacecommand{setupcolumnsetstart}{setupcolumnsetstart}
+\setinterfacecommand{setupcombinations}{setupcombinations}
+\setinterfacecommand{setupcombinedlist}{setupcombinedlist}
+\setinterfacecommand{setupcomment}{setupcomment}
+\setinterfacecommand{setupdescriptions}{setupdescriptions}
+\setinterfacecommand{setupenumerations}{setupenumerations}
+\setinterfacecommand{setupexternalfigures}{setupexternalfigures}
+\setinterfacecommand{setupfield}{setupfield}
+\setinterfacecommand{setupfields}{setupfields}
+\setinterfacecommand{setupfillinlines}{setupfillinlines}
+\setinterfacecommand{setupfillinrules}{setupfillinrules}
+\setinterfacecommand{setupfloat}{setupfloat}
+\setinterfacecommand{setupfloats}{setupfloats}
+\setinterfacecommand{setupfloatsplitting}{setupfloatsplitting}
+\setinterfacecommand{setupfooter}{setupfooter}
+\setinterfacecommand{setupfootertexts}{setupfootertexts}
+\setinterfacecommand{setupfootnotedefinition}{setupfootnotedefinition}
+\setinterfacecommand{setupfootnotes}{setupfootnotes}
+\setinterfacecommand{setupforms}{setupforms}
+\setinterfacecommand{setupformulas}{setupformulae}
+\setinterfacecommand{setupframed}{setupframed}
+\setinterfacecommand{setupframedtexts}{setupframedtexts}
+\setinterfacecommand{setuphead}{setuphead}
+\setinterfacecommand{setupheader}{setupheader}
+\setinterfacecommand{setupheadertexts}{setupheadertexts}
+\setinterfacecommand{setupheadnumber}{setupheadnumber}
+\setinterfacecommand{setupheads}{setupheads}
+\setinterfacecommand{setupheadtext}{setupheadtext}
+\setinterfacecommand{setuphyphenmark}{setuphyphenmark}
+\setinterfacecommand{setupindentations}{setupindentations}
+\setinterfacecommand{setupindenting}{setupindenting}
+\setinterfacecommand{setupinmargin}{setupinmargin}
+\setinterfacecommand{setupinteraction}{setupinteraction}
+\setinterfacecommand{setupinteractionbar}{setupinteractionbar}
+\setinterfacecommand{setupinteractionmenu}{setupinteractionmenu}
+\setinterfacecommand{setupinteractionscreen}{setupinteractionscreen}
+\setinterfacecommand{setupinterlinespace}{setupinterlinespace}
+\setinterfacecommand{setupitemgroup}{setupitemgroup}
+\setinterfacecommand{setupitemgroups}{setupitemizations}
+\setinterfacecommand{setupitems}{setupitems}
+\setinterfacecommand{setuplabeltext}{setuplabeltext}
+\setinterfacecommand{setuplanguage}{setuplanguage}
+\setinterfacecommand{setuplayout}{setuplayout}
+\setinterfacecommand{setuplegend}{setuplegend}
+\setinterfacecommand{setuplinenumbering}{setuplinenumbering}
+\setinterfacecommand{setuplines}{setuplines}
+\setinterfacecommand{setuplinewidth}{setuplinewidth}
+\setinterfacecommand{setuplist}{setuplist}
+\setinterfacecommand{setupmakeup}{setupmakeup}
+\setinterfacecommand{setupmarginblocks}{setupmarginblocks}
+\setinterfacecommand{setupmarginrules}{setupmarginrules}
+\setinterfacecommand{setupmarking}{setupmarking}
+\setinterfacecommand{setupmathalignment}{setupmathalignment}
+\setinterfacecommand{setupnarrower}{setupnarrower}
+\setinterfacecommand{setupnumber}{setupnumber}
+\setinterfacecommand{setupnumbering}{setupnumbering}
+\setinterfacecommand{setupoppositeplacing}{setupoppositeplacing}
+\setinterfacecommand{setupoutput}{setupoutput}
+\setinterfacecommand{setuppagecomment}{setuppagecomment}
+\setinterfacecommand{setuppagenumber}{setuppagenumber}
+\setinterfacecommand{setuppagenumbering}{setuppagenumbering}
+\setinterfacecommand{setuppagetransitions}{setuppagetransitions}
+\setinterfacecommand{setuppalet}{setuppalet}
+\setinterfacecommand{setuppaper}{setuppaper}
+\setinterfacecommand{setuppapersize}{setuppapersize}
+\setinterfacecommand{setupparagraphnumbering}{setupparagraphnumbering}
+\setinterfacecommand{setupparagraphs}{setupparagraphs}
+\setinterfacecommand{setupplacement}{setupplacement}
+\setinterfacecommand{setuppositioning}{setuppositioning}
+\setinterfacecommand{setupprofiles}{setupprofiles}
+\setinterfacecommand{setupprograms}{setupprograms}
+\setinterfacecommand{setuppublications}{setuppublications}
+\setinterfacecommand{setupquote}{setupquote}
+\setinterfacecommand{setupreferencelist}{setupreferencelist}
+\setinterfacecommand{setupreferencing}{setupreferencing}
+\setinterfacecommand{setupregister}{setupregister}
+\setinterfacecommand{setuprotate}{setuprotate}
+\setinterfacecommand{setuprule}{setuprule}
+\setinterfacecommand{setups}{setups}
+\setinterfacecommand{setupscreens}{setupscreens}
+\setinterfacecommand{setupsection}{setupsection}
+\setinterfacecommand{setupsectionblock}{setupsectionblock}
+\setinterfacecommand{setupsorting}{setupsorting}
+\setinterfacecommand{setupspacing}{setupspacing}
+\setinterfacecommand{setupstartstop}{setupstartstop}
+\setinterfacecommand{setupstrut}{setupstrut}
+\setinterfacecommand{setupsubpagenumber}{setupsubpagenumber}
+\setinterfacecommand{setupsymbolset}{setupsymbolset}
+\setinterfacecommand{setupsynchronization}{setupsynchronization}
+\setinterfacecommand{setupsynchronizationbar}{setupsynchronizationbar}
+\setinterfacecommand{setupsynonyms}{setupsynonyms}
+\setinterfacecommand{setupsystem}{setupsystem}
+\setinterfacecommand{setuptab}{setuptab}
+\setinterfacecommand{setuptables}{setuptables}
+\setinterfacecommand{setuptabulate}{setuptabulate}
+\setinterfacecommand{setuptext}{setuptext}
+\setinterfacecommand{setuptextposition}{setuptextposition}
+\setinterfacecommand{setuptextrules}{setuptextrules}
+\setinterfacecommand{setuptexttexts}{setuptexttexts}
+\setinterfacecommand{setuptextvariable}{setuptextvariable}
+\setinterfacecommand{setupthinrules}{setupthinrules}
+\setinterfacecommand{setuptolerance}{setuptolerance}
+\setinterfacecommand{setuptop}{setuptop}
+\setinterfacecommand{setuptoptexts}{setuptoptexts}
+\setinterfacecommand{setuptype}{setuptype}
+\setinterfacecommand{setuptyping}{setuptyping}
+\setinterfacecommand{setupunderbar}{setupunderbar}
+\setinterfacecommand{setupurl}{setupurl}
+\setinterfacecommand{setupversions}{setupversions}
+\setinterfacecommand{setupwhitespace}{setupwhitespace}
+\setinterfacecommand{showbodyfont}{showbodyfont}
+\setinterfacecommand{showbodyfontenvironment}{showbodyfontenvironment}
+\setinterfacecommand{showcolor}{showcolor}
+\setinterfacecommand{showcolorgroup}{showcolorgroup}
+\setinterfacecommand{showexternalfigures}{showexternalfigures}
+\setinterfacecommand{showfields}{showfields}
+\setinterfacecommand{showframe}{showframe}
+\setinterfacecommand{showgrid}{showgrid}
+\setinterfacecommand{showlayout}{showlayout}
+\setinterfacecommand{showmakeup}{showmakeup}
+\setinterfacecommand{showpalet}{showpalet}
+\setinterfacecommand{showprint}{showprint}
+\setinterfacecommand{showsetups}{showsetups}
+\setinterfacecommand{showstruts}{showstruts}
+\setinterfacecommand{showsymbolset}{showsymbolset}
+\setinterfacecommand{smallcapped}{cap}
+\setinterfacecommand{someline}{someline}
+\setinterfacecommand{somewhere}{somewhere}
+\setinterfacecommand{space}{space}
+\setinterfacecommand{splitfloat}{splitfloat}
+\setinterfacecommand{startalignment}{startalignment}
+\setinterfacecommand{startbackground}{startbackground}
+\setinterfacecommand{startcoding}{startcoding}
+\setinterfacecommand{startcolor}{startcolor}
+\setinterfacecommand{startcolumnmakeup}{startcolumnmakeup}
+\setinterfacecommand{startcolumns}{startcolumns}
+\setinterfacecommand{startcolumnset}{startcolumnset}
+\setinterfacecommand{startcombination}{startcombination}
+\setinterfacecommand{startcomponent}{startcomponent}
+\setinterfacecommand{startdocument}{startdocument}
+\setinterfacecommand{startenvironment}{startenvironment}
+\setinterfacecommand{startfigure}{startfigure}
+\setinterfacecommand{startglobal}{startglobal}
+\setinterfacecommand{startline}{startline}
+\setinterfacecommand{startlinecorrection}{startlinecorrection}
+\setinterfacecommand{startlinenumbering}{startlinenumbering}
+\setinterfacecommand{startlines}{startlines}
+\setinterfacecommand{startlocal}{startlocal}
+\setinterfacecommand{startlocalfootnotes}{startlocalfootnotes}
+\setinterfacecommand{startmakeup}{startmakeup}
+\setinterfacecommand{startmarginblock}{startmarginblock}
+\setinterfacecommand{startmarginrule}{startmarginrule}
+\setinterfacecommand{startnarrower}{startnarrower}
+\setinterfacecommand{startopposite}{startopposite}
+\setinterfacecommand{startoverlay}{startoverlay}
+\setinterfacecommand{startoverzicht}{startoverview}
+\setinterfacecommand{startpacked}{startpacked}
+\setinterfacecommand{startpositioning}{startpositioning}
+\setinterfacecommand{startproduct}{startproduct}
+\setinterfacecommand{startprofile}{startprofile}
+\setinterfacecommand{startproject}{startproject}
+\setinterfacecommand{startquotation}{startquotation}
+\setinterfacecommand{startraster}{startraster}
+\setinterfacecommand{startsymbolset}{startsymbolset}
+\setinterfacecommand{startsynchronization}{startsynchronization}
+\setinterfacecommand{starttable}{starttable}
+\setinterfacecommand{starttables}{starttables}
+\setinterfacecommand{starttext}{starttext}
+\setinterfacecommand{starttextrule}{starttextrule}
+\setinterfacecommand{startunpacked}{startunpacked}
+\setinterfacecommand{startversion}{startversion}
+\setinterfacecommand{stopalignment}{stopalignment}
+\setinterfacecommand{stopbackground}{stopbackground}
+\setinterfacecommand{stopcoding}{stopcoding}
+\setinterfacecommand{stopcolor}{stopcolor}
+\setinterfacecommand{stopcolumnmakeup}{stopcolumnmakeup}
+\setinterfacecommand{stopcolumns}{stopcolumns}
+\setinterfacecommand{stopcolumnset}{stopcolumnset}
+\setinterfacecommand{stopcombination}{stopcombination}
+\setinterfacecommand{stopcomponent}{stopcomponent}
+\setinterfacecommand{stopdocument}{stopdocument}
+\setinterfacecommand{stopenvironment}{stopenvironment}
+\setinterfacecommand{stopglobal}{stopglobal}
+\setinterfacecommand{stopline}{stopline}
+\setinterfacecommand{stoplinecorrection}{stoplinecorrection}
+\setinterfacecommand{stoplinenumbering}{stoplinenumbering}
+\setinterfacecommand{stoplines}{stoplines}
+\setinterfacecommand{stoplocal}{stoplocal}
+\setinterfacecommand{stoplocalfootnotes}{stoplocalfootnotes}
+\setinterfacecommand{stopmakeup}{stopmakeup}
+\setinterfacecommand{stopmarginblock}{stopmarginblock}
+\setinterfacecommand{stopmarginrule}{stopmarginrule}
+\setinterfacecommand{stopnarrower}{stopnarrower}
+\setinterfacecommand{stopopposite}{stopopposite}
+\setinterfacecommand{stopoverlay}{stopoverlay}
+\setinterfacecommand{stopoverzicht}{stopoverview}
+\setinterfacecommand{stoppacked}{stoppacked}
+\setinterfacecommand{stoppositioning}{stoppositioning}
+\setinterfacecommand{stopproduct}{stopproduct}
+\setinterfacecommand{stopprofile}{stopprofile}
+\setinterfacecommand{stopproject}{stopproject}
+\setinterfacecommand{stopquotation}{stopquotation}
+\setinterfacecommand{stopraster}{stopraster}
+\setinterfacecommand{stopsynchronization}{stopsynchronization}
+\setinterfacecommand{stoptable}{stoptable}
+\setinterfacecommand{stoptables}{stoptables}
+\setinterfacecommand{stoptext}{stoptext}
+\setinterfacecommand{stoptextrule}{stoptextrule}
+\setinterfacecommand{stopunpacked}{stopunpacked}
+\setinterfacecommand{stopversion}{stopversion}
+\setinterfacecommand{stretched}{stretched}
+\setinterfacecommand{subformulanumber}{subformulanumber}
+\setinterfacecommand{subpagenumber}{subpagenumber}
+\setinterfacecommand{switchtobodyfont}{switchtobodyfont}
+\setinterfacecommand{switchtorawfont}{switchtorawfont}
+\setinterfacecommand{sym}{sym}
+\setinterfacecommand{symbol}{symbol}
+\setinterfacecommand{synchronizationbar}{synchronizationbar}
+\setinterfacecommand{synchronize}{synchronize}
+\setinterfacecommand{tab}{tab}
+\setinterfacecommand{testcolumn}{testcolumn}
+\setinterfacecommand{testpage}{testpage}
+\setinterfacecommand{tex}{tex}
+\setinterfacecommand{textheight}{textheight}
+\setinterfacecommand{textreference}{textreference}
+\setinterfacecommand{textrule}{textrule}
+\setinterfacecommand{textvariable}{textvariable}
+\setinterfacecommand{textwidth}{textwidth}
+\setinterfacecommand{thinrule}{thinrule}
+\setinterfacecommand{thinrules}{thinrules}
+\setinterfacecommand{tooltip}{tooltip}
+\setinterfacecommand{topdistance}{topdistance}
+\setinterfacecommand{topheight}{topheight}
+\setinterfacecommand{topspace}{topspace}
+\setinterfacecommand{totalnumberofpages}{totalnumberofpages}
+\setinterfacecommand{translate}{translate}
+\setinterfacecommand{txt}{txt}
+\setinterfacecommand{typ}{typ}
+\setinterfacecommand{type}{type}
+\setinterfacecommand{typebuffer}{typebuffer}
+\setinterfacecommand{typefile}{typefile}
+\setinterfacecommand{underbar}{underbar}
+\setinterfacecommand{underbars}{underbars}
+\setinterfacecommand{unitmeaning}{unitmeaning}
+\setinterfacecommand{unknown}{unknown}
+\setinterfacecommand{useJSscripts}{useJSscripts}
+\setinterfacecommand{useURL}{useURL}
+\setinterfacecommand{useXMLfilter}{useXMLfilter}
+\setinterfacecommand{useblocks}{useblocks}
+\setinterfacecommand{usecommands}{usecommands}
+\setinterfacecommand{useencoding}{useencoding}
+\setinterfacecommand{useexternaldocument}{useexternaldocument}
+\setinterfacecommand{useexternalfigure}{useexternalfigure}
+\setinterfacecommand{useexternalfile}{useexternalfile}
+\setinterfacecommand{useexternalfiles}{useexternalfiles}
+\setinterfacecommand{useexternalsoundtrack}{useexternalsoundtrack}
+\setinterfacecommand{usemodule}{usemodule}
+\setinterfacecommand{usemodules}{usemodules}
+\setinterfacecommand{usepath}{usedirectory}
+\setinterfacecommand{usereferences}{usereferences}
+\setinterfacecommand{usespecials}{usespecials}
+\setinterfacecommand{usesymbols}{usesymbols}
+\setinterfacecommand{usetypescript}{usetypescript}
+\setinterfacecommand{usetypescriptfile}{usetypescriptfile}
+\setinterfacecommand{useurl}{useurl}
+\setinterfacecommand{version}{version}
+\setinterfacecommand{vl}{vl}
+\setinterfacecommand{weekday}{weekday}
+\setinterfacecommand{whitespace}{whitespace}
+\setinterfacecommand{wordright}{wordright}
+\setinterfacecommand{writebetweenlist}{writebetweenlist}
+\setinterfacecommand{writetolist}{writetolist}
+\setinterfacecommand{writetoreferencelist}{writetoreferencelist}
+\setinterfacecommand{writetoregister}{writetoregister}
+%
+\endinput \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/base/mult-fr.tex b/Master/texmf-dist/tex/context/base/mult-fr.tex
new file mode 100644
index 00000000000..16f22ec7f62
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mult-fr.tex
@@ -0,0 +1,1636 @@
+% this file is auto-generated, don't edit this file
+%
+% definitions for interface variables for language fr
+%
+\setinterfacevariable{Addition}{Ajout}
+\setinterfacevariable{Balloon}{Ballon}
+\setinterfacevariable{Character}{Caratere}
+\setinterfacevariable{Characters}{Caracteres}
+\setinterfacevariable{CloseDocument}{FermeDocument}
+\setinterfacevariable{ExitViewer}{SortVisualisateur}
+\setinterfacevariable{FirstPage}{PremierePage}
+\setinterfacevariable{FitHeight}{AjusteHauteur}
+\setinterfacevariable{FitWidth}{AjusteLargeur}
+\setinterfacevariable{GotoPage}{VaalaPage}
+\setinterfacevariable{Greek}{Grec}
+\setinterfacevariable{Help}{Aide}
+\setinterfacevariable{HideField}{CacheChamp}
+\setinterfacevariable{HideLayer}{CacheCalque}
+\setinterfacevariable{Key}{Cle}
+\setinterfacevariable{LastPage}{DernierePage}
+\setinterfacevariable{LoadForm}{ChargeForm}
+\setinterfacevariable{MONTH}{MOIS}
+\setinterfacevariable{New}{Nouveau}
+\setinterfacevariable{NextJump}{SautSuivant}
+\setinterfacevariable{NextPage}{PageSuivante}
+\setinterfacevariable{Numbers}{Numeros}
+\setinterfacevariable{OpenNamedDocument}{OuvreDocumentNomme}
+\setinterfacevariable{Paragraph}{Paragraphe}
+\setinterfacevariable{PauseMovie}{PauseFilm}
+\setinterfacevariable{PauseRendering}{PauseRendering}
+\setinterfacevariable{PauseSound}{PauseSon}
+\setinterfacevariable{PreviousJump}{SautPrecedent}
+\setinterfacevariable{PreviousPage}{PagePrecedente}
+\setinterfacevariable{PrintDocument}{ImprimeDocument}
+\setinterfacevariable{Query}{Query}
+\setinterfacevariable{QueryAgain}{QueryAgain}
+\setinterfacevariable{ResetForm}{RazForm}
+\setinterfacevariable{ResumeMovie}{ReprendFilm}
+\setinterfacevariable{ResumeRendering}{ResumeRendering}
+\setinterfacevariable{ResumeSound}{ReprendSon}
+\setinterfacevariable{Romannumerals}{Chiffresromains}
+\setinterfacevariable{SaveDocument}{SauvegardeDocument}
+\setinterfacevariable{SaveForm}{SauvegardeForm}
+\setinterfacevariable{SaveNamedDocument}{SauvegardeDocumentNomme}
+\setinterfacevariable{SearchAgain}{RechercheSuivant}
+\setinterfacevariable{SearchDocument}{RechercheDocument}
+\setinterfacevariable{ShowBookmarks}{ShowBookmarks}
+\setinterfacevariable{ShowField}{MontreChamp}
+\setinterfacevariable{ShowThumbs}{ShowThumbs}
+\setinterfacevariable{StartMovie}{DemarreFilm}
+\setinterfacevariable{StartRendering}{StartRendering}
+\setinterfacevariable{StartSound}{DemarreSon}
+\setinterfacevariable{StopMovie}{StoppeFilm}
+\setinterfacevariable{StopRendering}{StopRendering}
+\setinterfacevariable{StopSound}{StoppeSon}
+\setinterfacevariable{SubmitForm}{SoumettreForm}
+\setinterfacevariable{ToggleLayer}{ToggleLayer}
+\setinterfacevariable{ToggleViewer}{ChangeVisualisateur}
+\setinterfacevariable{URL}{URL}
+\setinterfacevariable{VideLayer}{VideLayer}
+\setinterfacevariable{ViewerHelp}{AideVisualisateur}
+\setinterfacevariable{WEEKDAY}{JOURSEMAINE}
+\setinterfacevariable{WORD}{MOT}
+\setinterfacevariable{abbreviation}{abreviation}
+\setinterfacevariable{abbreviations}{abreviations}
+\setinterfacevariable{absolute}{absolute}
+\setinterfacevariable{action}{action}
+\setinterfacevariable{after}{apres}
+\setinterfacevariable{all}{tout}
+\setinterfacevariable{always}{toujours}
+\setinterfacevariable{answerarea}{answerarea}
+\setinterfacevariable{appendices}{annexes}
+\setinterfacevariable{appendix}{annexe}
+\setinterfacevariable{april}{avril}
+\setinterfacevariable{atmargin}{alamarge}
+\setinterfacevariable{atpage}{alapage}
+\setinterfacevariable{august}{aout}
+\setinterfacevariable{auto}{auto}
+\setinterfacevariable{autointro}{autointro}
+\setinterfacevariable{back}{retour}
+\setinterfacevariable{background}{arriereplan}
+\setinterfacevariable{backmatter}{epilogue}
+\setinterfacevariable{backpart}{postface}
+\setinterfacevariable{backspace}{retourarriere}
+\setinterfacevariable{backward}{retourarriere}
+\setinterfacevariable{before}{avant}
+\setinterfacevariable{big}{grand}
+\setinterfacevariable{bigbodyfont}{grandepolicecorp}
+\setinterfacevariable{bigpreference}{grandepreference}
+\setinterfacevariable{blank}{vide}
+\setinterfacevariable{blockquote}{blockquote}
+\setinterfacevariable{bodymatter}{texteprincipal}
+\setinterfacevariable{bodypart}{corpsdetexte}
+\setinterfacevariable{bold}{gras}
+\setinterfacevariable{bolditalic}{italiquegras}
+\setinterfacevariable{boldslanted}{inclinegras}
+\setinterfacevariable{bookmark}{marquepage}
+\setinterfacevariable{both}{lesdeux}
+\setinterfacevariable{bottom}{inf}
+\setinterfacevariable{brief}{brief}
+\setinterfacevariable{broad}{large}
+\setinterfacevariable{buffer}{buffer}
+\setinterfacevariable{by}{par}
+\setinterfacevariable{calligraphic}{calligraphique}
+\setinterfacevariable{cap}{cap}
+\setinterfacevariable{capital}{capitale}
+\setinterfacevariable{center}{center}
+\setinterfacevariable{chapter}{chapitre}
+\setinterfacevariable{character}{caractere}
+\setinterfacevariable{characters}{caracteres}
+\setinterfacevariable{color}{couleur}
+\setinterfacevariable{column}{colonne}
+\setinterfacevariable{columns}{colonnes}
+\setinterfacevariable{command}{commande}
+\setinterfacevariable{commands}{commandes}
+\setinterfacevariable{comment}{commentaire}
+\setinterfacevariable{component}{composant}
+\setinterfacevariable{concept}{concept}
+\setinterfacevariable{content}{contenu}
+\setinterfacevariable{contents}{contenus}
+\setinterfacevariable{continue}{continue}
+\setinterfacevariable{controls}{controles}
+\setinterfacevariable{conversion}{conversion}
+\setinterfacevariable{current}{courant}
+\setinterfacevariable{cutspace}{cutspace}
+\setinterfacevariable{date}{date}
+\setinterfacevariable{day}{jour}
+\setinterfacevariable{december}{decembre}
+\setinterfacevariable{default}{defaut}
+\setinterfacevariable{depth}{profondeur}
+\setinterfacevariable{description}{description}
+\setinterfacevariable{disable}{desactiver}
+\setinterfacevariable{display}{affichage}
+\setinterfacevariable{dot}{point}
+\setinterfacevariable{doublesided}{rectoverso}
+\setinterfacevariable{each}{chaque}
+\setinterfacevariable{edge}{bord}
+\setinterfacevariable{empty}{vide}
+\setinterfacevariable{endnote}{notefin}
+\setinterfacevariable{enumeration}{enumeration}
+\setinterfacevariable{environment}{environement}
+\setinterfacevariable{even}{paire}
+\setinterfacevariable{external}{external}
+\setinterfacevariable{fact}{fait}
+\setinterfacevariable{february}{fevrier}
+\setinterfacevariable{figure}{figure}
+\setinterfacevariable{figures}{figures}
+\setinterfacevariable{file}{fichier}
+\setinterfacevariable{final}{final}
+\setinterfacevariable{first}{premier}
+\setinterfacevariable{firstcolumn}{premierecolonne}
+\setinterfacevariable{firstpage}{premierepage}
+\setinterfacevariable{firstsubpage}{premieresouspage}
+\setinterfacevariable{fit}{adapte}
+\setinterfacevariable{five}{cinq}
+\setinterfacevariable{fix}{fixe}
+\setinterfacevariable{fixed}{fixe}
+\setinterfacevariable{flexible}{flexible}
+\setinterfacevariable{float}{flottant}
+\setinterfacevariable{flushinner}{flushinner}
+\setinterfacevariable{flushleft}{flushleft}
+\setinterfacevariable{flushouter}{flushouter}
+\setinterfacevariable{flushright}{flushright}
+\setinterfacevariable{footer}{pdp}
+\setinterfacevariable{footnote}{notepdp}
+\setinterfacevariable{force}{force}
+\setinterfacevariable{foreground}{premierplan}
+\setinterfacevariable{formeel}{formeel}
+\setinterfacevariable{formula}{formule}
+\setinterfacevariable{formulae}{formules}
+\setinterfacevariable{forward}{avance}
+\setinterfacevariable{four}{quatre}
+\setinterfacevariable{frame}{cadre}
+\setinterfacevariable{framedtext}{texteencadre}
+\setinterfacevariable{friday}{vendredi}
+\setinterfacevariable{frontmatter}{preambule}
+\setinterfacevariable{frontpart}{preface}
+\setinterfacevariable{global}{global}
+\setinterfacevariable{graphic}{graphique}
+\setinterfacevariable{graphics}{graphiques}
+\setinterfacevariable{gray}{gris}
+\setinterfacevariable{greek}{grec}
+\setinterfacevariable{grid}{grille}
+\setinterfacevariable{halfline}{demiligne}
+\setinterfacevariable{handwritten}{manuscript}
+\setinterfacevariable{hang}{suspend}
+\setinterfacevariable{hanging}{suspend}
+\setinterfacevariable{head}{tete}
+\setinterfacevariable{header}{entete}
+\setinterfacevariable{height}{hauteur}
+\setinterfacevariable{helptext}{texteaide}
+\setinterfacevariable{hencefore}{precedent}
+\setinterfacevariable{here}{ici}
+\setinterfacevariable{hereafter}{suivant}
+\setinterfacevariable{hidden}{cache}
+\setinterfacevariable{hiding}{cache}
+\setinterfacevariable{high}{haut}
+\setinterfacevariable{horizontal}{horizontale}
+\setinterfacevariable{hyphenated}{hyphenated}
+\setinterfacevariable{hz}{hz}
+\setinterfacevariable{inbetween}{entre}
+\setinterfacevariable{index}{index}
+\setinterfacevariable{indices}{indices}
+\setinterfacevariable{informeel}{informeel}
+\setinterfacevariable{inherit}{herite}
+\setinterfacevariable{inleft}{dansgauche}
+\setinterfacevariable{inmargin}{dansmarge}
+\setinterfacevariable{inner}{interieur}
+\setinterfacevariable{inneredge}{bordinterieur}
+\setinterfacevariable{innermargin}{margeinterieure}
+\setinterfacevariable{inright}{dansdroit}
+\setinterfacevariable{interaction}{interaction}
+\setinterfacevariable{interactionmenu}{menuinteraction}
+\setinterfacevariable{intermezzi}{intermezzi}
+\setinterfacevariable{intermezzo}{intermezzo}
+\setinterfacevariable{intext}{danstexte}
+\setinterfacevariable{intro}{intro}
+\setinterfacevariable{italic}{italique}
+\setinterfacevariable{italicbold}{grasitalique}
+\setinterfacevariable{item}{element}
+\setinterfacevariable{itemize}{lister}
+\setinterfacevariable{its}{its}
+\setinterfacevariable{january}{janvier}
+\setinterfacevariable{joinedup}{joinedup}
+\setinterfacevariable{july}{juillet}
+\setinterfacevariable{june}{juin}
+\setinterfacevariable{keep}{maintient}
+\setinterfacevariable{knockout}{knockout}
+\setinterfacevariable{label}{etiquette}
+\setinterfacevariable{landscape}{paysage}
+\setinterfacevariable{last}{dernier}
+\setinterfacevariable{lastcolumn}{dernierecolonne}
+\setinterfacevariable{lastpage}{dernierepage}
+\setinterfacevariable{lastpagenumber}{derniernumeropage}
+\setinterfacevariable{lastsubpage}{dernieresouspage}
+\setinterfacevariable{layer}{layer}
+\setinterfacevariable{left}{gauche}
+\setinterfacevariable{leftedge}{bordgauche}
+\setinterfacevariable{lefthanging}{lefthanging}
+\setinterfacevariable{leftmargin}{margegauche}
+\setinterfacevariable{leftpage}{pagegauche}
+\setinterfacevariable{lefttoright}{lefttoright}
+\setinterfacevariable{legend}{legende}
+\setinterfacevariable{lesshyphenation}{lesshyphenation}
+\setinterfacevariable{line}{ligne}
+\setinterfacevariable{linenote}{noteligne}
+\setinterfacevariable{lines}{lignes}
+\setinterfacevariable{list}{liste}
+\setinterfacevariable{local}{local}
+\setinterfacevariable{localenvironment}{environementlocal}
+\setinterfacevariable{logo}{logo}
+\setinterfacevariable{logos}{logos}
+\setinterfacevariable{lohi}{baha}
+\setinterfacevariable{loose}{perte}
+\setinterfacevariable{low}{bas}
+\setinterfacevariable{ls}{ls}
+\setinterfacevariable{makeup}{makeup}
+\setinterfacevariable{mar}{mar}
+\setinterfacevariable{march}{mars}
+\setinterfacevariable{margin}{marge}
+\setinterfacevariable{marginedge}{bordmarge}
+\setinterfacevariable{margintitle}{titremarge}
+\setinterfacevariable{marking}{marquage}
+\setinterfacevariable{mathalignment}{mathalignment}
+\setinterfacevariable{mathcases}{mathcases}
+\setinterfacevariable{mathmatrix}{mathmatrix}
+\setinterfacevariable{max}{max}
+\setinterfacevariable{may}{mai}
+\setinterfacevariable{mediaeval}{medieval}
+\setinterfacevariable{medium}{moyen}
+\setinterfacevariable{middle}{milieu}
+\setinterfacevariable{min}{min}
+\setinterfacevariable{minheight}{hauteurmin}
+\setinterfacevariable{minwidth}{largeurmin}
+\setinterfacevariable{mirrored}{reflete}
+\setinterfacevariable{monday}{lundi}
+\setinterfacevariable{mono}{mono}
+\setinterfacevariable{month}{mois}
+\setinterfacevariable{morehyphenation}{morehyphenation}
+\setinterfacevariable{name}{nom}
+\setinterfacevariable{narrow}{etroit}
+\setinterfacevariable{negative}{negatif}
+\setinterfacevariable{never}{jamais}
+\setinterfacevariable{new}{nouveau}
+\setinterfacevariable{next}{prochain}
+\setinterfacevariable{nextevenpage}{pagepairesuivante}
+\setinterfacevariable{nextoddpage}{pageimpairesuivante}
+\setinterfacevariable{nextpage}{pagesuivante}
+\setinterfacevariable{nextsubpage}{souspagesuivante}
+\setinterfacevariable{no}{non}
+\setinterfacevariable{nocheck}{nonverifie}
+\setinterfacevariable{nofit}{nofit}
+\setinterfacevariable{nogrid}{nogrid}
+\setinterfacevariable{nohz}{nohz}
+\setinterfacevariable{nomarking}{sansmarquage}
+\setinterfacevariable{none}{rien}
+\setinterfacevariable{nonumber}{sansnumero}
+\setinterfacevariable{normal}{normal}
+\setinterfacevariable{nospacing}{sansespacement}
+\setinterfacevariable{not}{pas}
+\setinterfacevariable{note}{note}
+\setinterfacevariable{nothanging}{nonsuspendu}
+\setinterfacevariable{nothyphenated}{nothyphenated}
+\setinterfacevariable{november}{novembre}
+\setinterfacevariable{nowhere}{nulpart}
+\setinterfacevariable{nowhite}{sansblanc}
+\setinterfacevariable{number}{numero}
+\setinterfacevariable{numbers}{numeros}
+\setinterfacevariable{october}{octobre}
+\setinterfacevariable{odd}{impair}
+\setinterfacevariable{off}{desactive}
+\setinterfacevariable{offset}{offset}
+\setinterfacevariable{old}{old}
+\setinterfacevariable{on}{actif}
+\setinterfacevariable{one}{un}
+\setinterfacevariable{opposite}{opposition}
+\setinterfacevariable{outer}{exterieur}
+\setinterfacevariable{outeredge}{bordexterieur}
+\setinterfacevariable{outermargin}{margeexterieure}
+\setinterfacevariable{overlay}{revetement}
+\setinterfacevariable{overprint}{overprint}
+\setinterfacevariable{packed}{groupe}
+\setinterfacevariable{page}{page}
+\setinterfacevariable{pagecomment}{commentairepage}
+\setinterfacevariable{pagenumber}{numeropage}
+\setinterfacevariable{paper}{papier}
+\setinterfacevariable{paragraph}{paragraphe}
+\setinterfacevariable{part}{partie}
+\setinterfacevariable{positive}{positif}
+\setinterfacevariable{postponing}{postponing}
+\setinterfacevariable{postscript}{postscript}
+\setinterfacevariable{preference}{preference}
+\setinterfacevariable{preview}{previsualisation}
+\setinterfacevariable{previous}{precedent}
+\setinterfacevariable{previousevenpage}{pagepaireprecedente}
+\setinterfacevariable{previousoddpage}{pageimpaireprecedente}
+\setinterfacevariable{previouspage}{pageprecedente}
+\setinterfacevariable{previoussubpage}{souspageprecedente}
+\setinterfacevariable{printable}{editable}
+\setinterfacevariable{process}{process}
+\setinterfacevariable{product}{produit}
+\setinterfacevariable{program}{programme}
+\setinterfacevariable{project}{projet}
+\setinterfacevariable{protected}{protege}
+\setinterfacevariable{quadruple}{quadruple}
+\setinterfacevariable{quotation}{citation}
+\setinterfacevariable{quote}{citer}
+\setinterfacevariable{ran}{cours}
+\setinterfacevariable{random}{aleatoire}
+\setinterfacevariable{readonly}{lectureseule}
+\setinterfacevariable{rectangular}{rectangulaire}
+\setinterfacevariable{referral}{referral}
+\setinterfacevariable{register}{registre}
+\setinterfacevariable{regular}{regulier}
+\setinterfacevariable{rekening}{rekening}
+\setinterfacevariable{relative}{relatif}
+\setinterfacevariable{repeat}{repete}
+\setinterfacevariable{required}{recquis}
+\setinterfacevariable{reset}{raz}
+\setinterfacevariable{reverse}{inverse}
+\setinterfacevariable{right}{droite}
+\setinterfacevariable{rightedge}{borddroit}
+\setinterfacevariable{righthanging}{righthanging}
+\setinterfacevariable{rightmargin}{margedroite}
+\setinterfacevariable{rightpage}{pagedroite}
+\setinterfacevariable{righttoleft}{righttoleft}
+\setinterfacevariable{roman}{roman}
+\setinterfacevariable{romannumerals}{chiffresromains}
+\setinterfacevariable{rotate}{oriente}
+\setinterfacevariable{rotated}{tourne}
+\setinterfacevariable{round}{rond}
+\setinterfacevariable{row}{rang}
+\setinterfacevariable{rule}{regle}
+\setinterfacevariable{samepage}{memepage}
+\setinterfacevariable{sans}{sans}
+\setinterfacevariable{sansbold}{sansgras}
+\setinterfacevariable{sansserif}{sansserif}
+\setinterfacevariable{saturday}{samedi}
+\setinterfacevariable{screen}{ecran}
+\setinterfacevariable{section}{section}
+\setinterfacevariable{sectionblockenvironment}{environementblocsection}
+\setinterfacevariable{sectionnumber}{numerosection}
+\setinterfacevariable{see}{voit}
+\setinterfacevariable{september}{septembre}
+\setinterfacevariable{serif}{serif}
+\setinterfacevariable{serried}{serried}
+\setinterfacevariable{setups}{reglages}
+\setinterfacevariable{sheet}{sheet}
+\setinterfacevariable{singlesided}{recto}
+\setinterfacevariable{slanted}{incline}
+\setinterfacevariable{slantedbold}{grasincline}
+\setinterfacevariable{small}{petit}
+\setinterfacevariable{smallbodyfont}{petitepolicecorps}
+\setinterfacevariable{smallbold}{graspetit}
+\setinterfacevariable{smallbolditalic}{italiquegraspetit}
+\setinterfacevariable{smallboldslanted}{inclinegraspetit}
+\setinterfacevariable{smallcaps}{petitescapitales}
+\setinterfacevariable{smallitalic}{italiquepetit}
+\setinterfacevariable{smallitalicbold}{grasitaliquepetit}
+\setinterfacevariable{smallnormal}{normalpetit}
+\setinterfacevariable{smallslanted}{inclinepetit}
+\setinterfacevariable{smallslantedbold}{grasinclinepetit}
+\setinterfacevariable{smalltype}{petittype}
+\setinterfacevariable{somewhere}{qqpart}
+\setinterfacevariable{sorted}{trie}
+\setinterfacevariable{space}{espace}
+\setinterfacevariable{spacing}{espacement}
+\setinterfacevariable{speech}{discours}
+\setinterfacevariable{split}{split}
+\setinterfacevariable{spot}{spot}
+\setinterfacevariable{standard}{standard}
+\setinterfacevariable{start}{demarre}
+\setinterfacevariable{sticker}{sticker}
+\setinterfacevariable{stop}{stoppe}
+\setinterfacevariable{stopper}{stopper}
+\setinterfacevariable{stretch}{etire}
+\setinterfacevariable{strict}{strict}
+\setinterfacevariable{strong}{strong}
+\setinterfacevariable{strut}{strut}
+\setinterfacevariable{sub}{sous}
+\setinterfacevariable{subbackward}{sousretourarriere}
+\setinterfacevariable{subformula}{subformule}
+\setinterfacevariable{subforward}{sousavance}
+\setinterfacevariable{subject}{sujet}
+\setinterfacevariable{subpage}{souspage}
+\setinterfacevariable{subsection}{soussection}
+\setinterfacevariable{subsubject}{soussujet}
+\setinterfacevariable{subsubsection}{soussoussection}
+\setinterfacevariable{subsubsubject}{soussoussujet}
+\setinterfacevariable{subsubsubsection}{soussoussoussection}
+\setinterfacevariable{subsubsubsubject}{soussoussoussujet}
+\setinterfacevariable{subsubsubsubsection}{soussoussoussoussection}
+\setinterfacevariable{subsubsubsubsubject}{soussoussoussoussujet}
+\setinterfacevariable{subsubsubsubsubsection}{soussoussoussoussoussection}
+\setinterfacevariable{subsubsubsubsubsubject}{soussoussoussoussoussujet}
+\setinterfacevariable{subsubsubsubsubsubsection}{soussoussoussoussoussoussection}
+\setinterfacevariable{subsubsubsubsubsubsubject}{soussoussoussoussoussoussujet}
+\setinterfacevariable{subsubsubsubsubsubsubsection}{soussoussoussoussoussoussoussection}
+\setinterfacevariable{subsubsubsubsubsubsubsubject}{soussoussoussoussoussoussoussujet}
+\setinterfacevariable{subsubsubsubsubsubsubsubsection}{soussoussoussoussoussoussoussoussection}
+\setinterfacevariable{subsubsubsubsubsubsubsubsubject}{soussoussoussoussoussoussoussoussujet}
+\setinterfacevariable{subsubsubsubsubsubsubsubsubsection}{soussoussoussoussoussoussoussoussoussection}
+\setinterfacevariable{subsubsubsubsubsubsubsubsubsubject}{soussoussoussoussoussoussoussoussoussujet}
+\setinterfacevariable{sunday}{dimanche}
+\setinterfacevariable{support}{support}
+\setinterfacevariable{sym}{sym}
+\setinterfacevariable{symbol}{symbole}
+\setinterfacevariable{synchronize}{synchronize}
+\setinterfacevariable{system}{systeme}
+\setinterfacevariable{table}{tableau}
+\setinterfacevariable{tablehead}{tetetableau}
+\setinterfacevariable{tables}{tables}
+\setinterfacevariable{tabletail}{queuetableau}
+\setinterfacevariable{tabulate}{tabule}
+\setinterfacevariable{tabulatehead}{tetetabule}
+\setinterfacevariable{tabulatetail}{queuetabule}
+\setinterfacevariable{tall}{long}
+\setinterfacevariable{teletype}{teletype}
+\setinterfacevariable{temporary}{temporaire}
+\setinterfacevariable{test}{test}
+\setinterfacevariable{text}{texte}
+\setinterfacevariable{three}{trois}
+\setinterfacevariable{thursday}{jeudi}
+\setinterfacevariable{title}{titre}
+\setinterfacevariable{toggle}{toggle}
+\setinterfacevariable{tolerant}{tolerant}
+\setinterfacevariable{top}{sup}
+\setinterfacevariable{tuesday}{mardi}
+\setinterfacevariable{two}{deux}
+\setinterfacevariable{txt}{txt}
+\setinterfacevariable{type}{type}
+\setinterfacevariable{typing}{typing}
+\setinterfacevariable{unavailable}{indisponible}
+\setinterfacevariable{unit}{unite}
+\setinterfacevariable{units}{unites}
+\setinterfacevariable{unknown}{inconnu}
+\setinterfacevariable{unpacked}{degroupe}
+\setinterfacevariable{url}{url}
+\setinterfacevariable{used}{used}
+\setinterfacevariable{value}{valeur}
+\setinterfacevariable{vertical}{verticale}
+\setinterfacevariable{very}{tres}
+\setinterfacevariable{verystrict}{tresstrict}
+\setinterfacevariable{verytolerant}{trestolerant}
+\setinterfacevariable{weak}{weak}
+\setinterfacevariable{wednesday}{mercredi}
+\setinterfacevariable{week}{semaine}
+\setinterfacevariable{weekday}{joursemaine}
+\setinterfacevariable{white}{blanc}
+\setinterfacevariable{wide}{ample}
+\setinterfacevariable{width}{largeur}
+\setinterfacevariable{xml}{xml}
+\setinterfacevariable{year}{annee}
+\setinterfacevariable{yes}{oui}
+% definitions for interface constants for language fr
+%
+\setinterfaceconstant{action}{action}
+\setinterfaceconstant{address}{adresse}
+\setinterfaceconstant{after}{apres}
+\setinterfaceconstant{afterhead}{aprestete}
+\setinterfaceconstant{afterkey}{aprescle}
+\setinterfaceconstant{align}{alignement}
+\setinterfaceconstant{aligncharacter}{caracterealigne}
+\setinterfaceconstant{alignmentcharacter}{alignementcaractere}
+\setinterfaceconstant{aligntitle}{alignementtitre}
+\setinterfaceconstant{alternative}{alternative}
+\setinterfaceconstant{apa}{apa}
+\setinterfaceconstant{arrow}{fleche}
+\setinterfaceconstant{at}{a}
+\setinterfaceconstant{author}{auteur}
+\setinterfaceconstant{auto}{auto}
+\setinterfaceconstant{autofile}{autofile}
+\setinterfaceconstant{autofocus}{autofocus}
+\setinterfaceconstant{autohang}{autohang}
+\setinterfaceconstant{autostrut}{autostrut}
+\setinterfaceconstant{autowidth}{autolargeur}
+\setinterfaceconstant{axis}{axe}
+\setinterfaceconstant{background}{arriereplan}
+\setinterfaceconstant{backgroundcolor}{couleurarriereplan}
+\setinterfaceconstant{backgroundcorner}{coinarriereplan}
+\setinterfaceconstant{backgrounddepth}{profondeurarriereplan}
+\setinterfaceconstant{backgroundoffset}{decalagearriereplan}
+\setinterfaceconstant{backgroundradius}{rayonarriereplan}
+\setinterfaceconstant{backgroundscreen}{ecranarriereplan}
+\setinterfaceconstant{backspace}{retour}
+\setinterfaceconstant{balance}{equilibre}
+\setinterfaceconstant{before}{avant}
+\setinterfaceconstant{beforehead}{avanttete}
+\setinterfaceconstant{bet}{bet}
+\setinterfaceconstant{big}{grand}
+\setinterfaceconstant{blank}{vide}
+\setinterfaceconstant{blockway}{blockway}
+\setinterfaceconstant{bodyfont}{policecorps}
+\setinterfaceconstant{bookmark}{marquepage}
+\setinterfaceconstant{bottom}{inf}
+\setinterfaceconstant{bottomafter}{bottomafter}
+\setinterfaceconstant{bottombefore}{bottombefore}
+\setinterfaceconstant{bottomdistance}{distanceinf}
+\setinterfaceconstant{bottomframe}{cadreinf}
+\setinterfaceconstant{bottomoffset}{decalageinf}
+\setinterfaceconstant{bottomspace}{espaceinf}
+\setinterfaceconstant{bottomstate}{etatinf}
+\setinterfaceconstant{cache}{cache}
+\setinterfaceconstant{calculate}{calculer}
+\setinterfaceconstant{ccommand}{ccommande}
+\setinterfaceconstant{click}{clic}
+\setinterfaceconstant{clickin}{clicinterieur}
+\setinterfaceconstant{clickout}{clicexterieur}
+\setinterfaceconstant{clipoffset}{clipoffset}
+\setinterfaceconstant{closeaction}{actionfermeture}
+\setinterfaceconstant{closecommand}{closecommand}
+\setinterfaceconstant{closepageaction}{actionfermeturepage}
+\setinterfaceconstant{closesymbol}{closesymbol}
+\setinterfaceconstant{color}{couleur}
+\setinterfaceconstant{column}{colonne}
+\setinterfaceconstant{columndistance}{distancecolonne}
+\setinterfaceconstant{columns}{colonnes}
+\setinterfaceconstant{command}{commande}
+\setinterfaceconstant{commandafter}{commandeapres}
+\setinterfaceconstant{commandbefore}{commandeavant}
+\setinterfaceconstant{commands}{commandes}
+\setinterfaceconstant{component}{composant}
+\setinterfaceconstant{compoundhyphen}{compoundhyphen}
+\setinterfaceconstant{compress}{compress}
+\setinterfaceconstant{connector}{connector}
+\setinterfaceconstant{continue}{continue}
+\setinterfaceconstant{contrastcolor}{coleurcontraste}
+\setinterfaceconstant{controls}{controles}
+\setinterfaceconstant{conversion}{conversion}
+\setinterfaceconstant{convertfile}{conversionfichier}
+\setinterfaceconstant{corner}{coin}
+\setinterfaceconstant{coupling}{couplage}
+\setinterfaceconstant{couplingway}{modecouplage}
+\setinterfaceconstant{criterium}{critere}
+\setinterfaceconstant{current}{courant}
+\setinterfaceconstant{cutspace}{cutspace}
+\setinterfaceconstant{dash}{pointille}
+\setinterfaceconstant{dat}{dat}
+\setinterfaceconstant{date}{date}
+\setinterfaceconstant{deepnumbercommand}{deepnumbercommand}
+\setinterfaceconstant{deeptextcommand}{deeptextcommand}
+\setinterfaceconstant{default}{defaut}
+\setinterfaceconstant{delay}{delai}
+\setinterfaceconstant{depth}{profondeur}
+\setinterfaceconstant{depthcorrection}{correctionprofondeur}
+\setinterfaceconstant{direction}{direction}
+\setinterfaceconstant{directory}{repertoire}
+\setinterfaceconstant{display}{affichage}
+\setinterfaceconstant{distance}{distance}
+\setinterfaceconstant{dot}{point}
+\setinterfaceconstant{doublesided}{rectoverso}
+\setinterfaceconstant{dummy}{dummy}
+\setinterfaceconstant{dx}{dx}
+\setinterfaceconstant{dy}{dy}
+\setinterfaceconstant{edge}{bord}
+\setinterfaceconstant{edgedistance}{distancebord}
+\setinterfaceconstant{empty}{vide}
+\setinterfaceconstant{equalheight}{equalheight}
+\setinterfaceconstant{equalwidth}{equalwidth}
+\setinterfaceconstant{escape}{escape}
+\setinterfaceconstant{evenmargin}{margepaire}
+\setinterfaceconstant{expansion}{expansion}
+\setinterfaceconstant{extras}{extras}
+\setinterfaceconstant{factor}{facteur}
+\setinterfaceconstant{fallback}{fallback}
+\setinterfaceconstant{family}{famille}
+\setinterfaceconstant{fieldbackgroundcolor}{couleurarrierreplanchamp}
+\setinterfaceconstant{fieldframecolor}{couleurcadrechamp}
+\setinterfaceconstant{fieldlayer}{calquechamp}
+\setinterfaceconstant{fieldoffset}{offsetchamp}
+\setinterfaceconstant{file}{fichier}
+\setinterfaceconstant{filtercommand}{filtercommand}
+\setinterfaceconstant{focus}{focus}
+\setinterfaceconstant{focusin}{focusin}
+\setinterfaceconstant{focusout}{focusout}
+\setinterfaceconstant{footer}{pdp}
+\setinterfaceconstant{footerdistance}{dsitancepdp}
+\setinterfaceconstant{footerstate}{etatpdp}
+\setinterfaceconstant{foregroundcolor}{couleurpremierplan}
+\setinterfaceconstant{foregroundstyle}{stylepremierplan}
+\setinterfaceconstant{format}{formatter}
+\setinterfaceconstant{frame}{cadre}
+\setinterfaceconstant{framecolor}{couleurcadre}
+\setinterfaceconstant{framecorner}{coincadre}
+\setinterfaceconstant{framedepth}{profondeurcadre}
+\setinterfaceconstant{frameoffset}{decalagecadre}
+\setinterfaceconstant{frameradius}{rayoncadre}
+\setinterfaceconstant{frames}{cadres}
+\setinterfaceconstant{from}{de}
+\setinterfaceconstant{get}{obtient}
+\setinterfaceconstant{global}{global}
+\setinterfaceconstant{grid}{grille}
+\setinterfaceconstant{hang}{suspend}
+\setinterfaceconstant{headcolor}{couleurtete}
+\setinterfaceconstant{headcommand}{commandetete}
+\setinterfaceconstant{headconversion}{conversiontete}
+\setinterfaceconstant{header}{entete}
+\setinterfaceconstant{headerdistance}{distanceentete}
+\setinterfaceconstant{headerstate}{etatentete}
+\setinterfaceconstant{headlabel}{etiquettetete}
+\setinterfaceconstant{headnumber}{numerotete}
+\setinterfaceconstant{headstyle}{styletete}
+\setinterfaceconstant{height}{hauteur}
+\setinterfaceconstant{hfactor}{facteurhauteur}
+\setinterfaceconstant{hfil}{hfil}
+\setinterfaceconstant{hidenumber}{hidenumber}
+\setinterfaceconstant{hoffset}{decalagehauteur}
+\setinterfaceconstant{horoffset}{horoffset}
+\setinterfaceconstant{hyphen}{hyphen}
+\setinterfaceconstant{icommand}{icommande}
+\setinterfaceconstant{in}{in}
+\setinterfaceconstant{inbetween}{entre}
+\setinterfaceconstant{increment}{incremente}
+\setinterfaceconstant{incrementnumber}{incrementenumero}
+\setinterfaceconstant{indenting}{composeenalinea}
+\setinterfaceconstant{indentnext}{indentesuivant}
+\setinterfaceconstant{indicator}{indicateur}
+\setinterfaceconstant{inner}{interieur}
+\setinterfaceconstant{innermargin}{margeinterieure}
+\setinterfaceconstant{inputfile}{fichierentree}
+\setinterfaceconstant{interaction}{interaction}
+\setinterfaceconstant{interlinespace}{espaceinterligne}
+\setinterfaceconstant{itemalign}{itemalign}
+\setinterfaceconstant{items}{elements}
+\setinterfaceconstant{ken}{ken}
+\setinterfaceconstant{keyexpansion}{keyexpansion}
+\setinterfaceconstant{keyword}{motcle}
+\setinterfaceconstant{label}{etiquette}
+\setinterfaceconstant{left}{gauche}
+\setinterfaceconstant{leftcolor}{couleurgauche}
+\setinterfaceconstant{leftcompoundhyphen}{leftcompoundhyphen}
+\setinterfaceconstant{leftedge}{bordgauche}
+\setinterfaceconstant{leftedgedistance}{distancebordgauche}
+\setinterfaceconstant{leftframe}{cadregauche}
+\setinterfaceconstant{lefthyphen}{lefthyphen}
+\setinterfaceconstant{leftmargin}{margegauche}
+\setinterfaceconstant{leftmargindistance}{distancemargegauche}
+\setinterfaceconstant{leftoffset}{decalagegauche}
+\setinterfaceconstant{leftquotation}{citationgauche}
+\setinterfaceconstant{leftquote}{citergauche}
+\setinterfaceconstant{leftsentence}{phrasegauche}
+\setinterfaceconstant{leftspeech}{leftspeech}
+\setinterfaceconstant{leftstyle}{leftstyle}
+\setinterfaceconstant{leftsubsentence}{sousphrasegauche}
+\setinterfaceconstant{lefttext}{textegauche}
+\setinterfaceconstant{leftwidth}{largeurgauche}
+\setinterfaceconstant{level}{niveau}
+\setinterfaceconstant{levels}{niveaux}
+\setinterfaceconstant{limittext}{limittext}
+\setinterfaceconstant{line}{ligne}
+\setinterfaceconstant{linecorrection}{correctionligne}
+\setinterfaceconstant{lines}{lignes}
+\setinterfaceconstant{list}{liste}
+\setinterfaceconstant{listtext}{texteliste}
+\setinterfaceconstant{local}{local}
+\setinterfaceconstant{location}{emplacement}
+\setinterfaceconstant{logo}{logo}
+\setinterfaceconstant{logos}{logos}
+\setinterfaceconstant{marcolor}{couleurmarquage}
+\setinterfaceconstant{margin}{marge}
+\setinterfaceconstant{margindistance}{distancemarge}
+\setinterfaceconstant{marginedge}{bordmarge}
+\setinterfaceconstant{marginedgetext}{textebordmarge}
+\setinterfaceconstant{margintext}{textemarge}
+\setinterfaceconstant{marking}{marquage}
+\setinterfaceconstant{marstyle}{stylemarquage}
+\setinterfaceconstant{max}{max}
+\setinterfaceconstant{maxheight}{hauteurmax}
+\setinterfaceconstant{maxwidth}{largeurmax}
+\setinterfaceconstant{menu}{menu}
+\setinterfaceconstant{method}{methode}
+\setinterfaceconstant{middle}{milieu}
+\setinterfaceconstant{middlespeech}{middlespeech}
+\setinterfaceconstant{middletext}{textecentre}
+\setinterfaceconstant{midsentence}{midsentence}
+\setinterfaceconstant{min}{min}
+\setinterfaceconstant{mindepth}{profondeurmin}
+\setinterfaceconstant{minheight}{hauteurmin}
+\setinterfaceconstant{minwidth}{largeurmin}
+\setinterfaceconstant{n}{n}
+\setinterfaceconstant{name}{nom}
+\setinterfaceconstant{nbottom}{ninf}
+\setinterfaceconstant{nc}{nc}
+\setinterfaceconstant{next}{suivant}
+\setinterfaceconstant{nl}{nl}
+\setinterfaceconstant{nleft}{ngauche}
+\setinterfaceconstant{nlines}{nlignes}
+\setinterfaceconstant{norm}{norme}
+\setinterfaceconstant{nr}{nr}
+\setinterfaceconstant{nright}{ndroite}
+\setinterfaceconstant{ntop}{nsup}
+\setinterfaceconstant{number}{numero}
+\setinterfaceconstant{numbercolor}{couleurnumero}
+\setinterfaceconstant{numbercommand}{commandenumero}
+\setinterfaceconstant{numberconversion}{numberconversion}
+\setinterfaceconstant{numberconversionset}{numberconversionset}
+\setinterfaceconstant{numberdistance}{numberdistance}
+\setinterfaceconstant{numbering}{numerotation}
+\setinterfaceconstant{numberorder}{numberorder}
+\setinterfaceconstant{numberprefix}{numberprefix}
+\setinterfaceconstant{numbersegments}{numbersegments}
+\setinterfaceconstant{numberseparator}{separateurnumbero}
+\setinterfaceconstant{numberseparatorset}{numberseparatorset}
+\setinterfaceconstant{numberset}{numberset}
+\setinterfaceconstant{numberstopper}{numberstopper}
+\setinterfaceconstant{numberstyle}{stylenumero}
+\setinterfaceconstant{numberwidth}{numberwidth}
+\setinterfaceconstant{nx}{nx}
+\setinterfaceconstant{ny}{ny}
+\setinterfaceconstant{object}{objet}
+\setinterfaceconstant{obstruction}{obstruction}
+\setinterfaceconstant{oddmargin}{margepaire}
+\setinterfaceconstant{offset}{offset}
+\setinterfaceconstant{openaction}{actionouverture}
+\setinterfaceconstant{openpageaction}{actionouverturepage}
+\setinterfaceconstant{option}{option}
+\setinterfaceconstant{orientation}{orientation}
+\setinterfaceconstant{outermargin}{margeexterieure}
+\setinterfaceconstant{overprint}{overprint}
+\setinterfaceconstant{ownnumber}{numeroproprio}
+\setinterfaceconstant{page}{page}
+\setinterfaceconstant{pageboundaries}{limitespage}
+\setinterfaceconstant{pagecolor}{couleurpage}
+\setinterfaceconstant{pagecommand}{commandepage}
+\setinterfaceconstant{pageconversion}{pageconversion}
+\setinterfaceconstant{pageconversionset}{pageconversionset}
+\setinterfaceconstant{pagenumber}{numeropage}
+\setinterfaceconstant{pageprefix}{pageprefix}
+\setinterfaceconstant{pageprefixconnector}{pageprefixconnector}
+\setinterfaceconstant{pageprefixconversion}{pageprefixconversion}
+\setinterfaceconstant{pageprefixconversionset}{pageprefixconversionset}
+\setinterfaceconstant{pageprefixsegments}{pageprefixsegments}
+\setinterfaceconstant{pageprefixseparatorset}{pageprefixseparatorset}
+\setinterfaceconstant{pageprefixset}{pageprefixset}
+\setinterfaceconstant{pageprefixstopper}{pageprefixstopper}
+\setinterfaceconstant{pagesegments}{pagesegments}
+\setinterfaceconstant{pageseparatorset}{pageseparatorset}
+\setinterfaceconstant{pageset}{pageset}
+\setinterfaceconstant{pagestate}{etatpage}
+\setinterfaceconstant{pagestopper}{pagestopper}
+\setinterfaceconstant{pagestyle}{stylepage}
+\setinterfaceconstant{palet}{palette}
+\setinterfaceconstant{paper}{papier}
+\setinterfaceconstant{paragraph}{paragraphe}
+\setinterfaceconstant{place}{place}
+\setinterfaceconstant{placehead}{placetete}
+\setinterfaceconstant{placestopper}{emplacementstopper}
+\setinterfaceconstant{position}{position}
+\setinterfaceconstant{prefix}{prefixe}
+\setinterfaceconstant{prefixconnector}{prefixconnector}
+\setinterfaceconstant{prefixconversion}{prefixconversion}
+\setinterfaceconstant{prefixconversionset}{prefixconversionset}
+\setinterfaceconstant{prefixsegments}{prefixsegments}
+\setinterfaceconstant{prefixseparatorset}{prefixseparatorset}
+\setinterfaceconstant{prefixset}{prefixset}
+\setinterfaceconstant{prefixstopper}{prefixstopper}
+\setinterfaceconstant{preset}{prereglage}
+\setinterfaceconstant{preview}{previsualisation}
+\setinterfaceconstant{previous}{precedent}
+\setinterfaceconstant{previousnumber}{numeroprecedent}
+\setinterfaceconstant{process}{process}
+\setinterfaceconstant{radius}{rayon}
+\setinterfaceconstant{random}{aleatoire}
+\setinterfaceconstant{reduction}{reduction}
+\setinterfaceconstant{ref}{ref}
+\setinterfaceconstant{reference}{reference}
+\setinterfaceconstant{referenceprefix}{referenceprefix}
+\setinterfaceconstant{referencing}{referencing}
+\setinterfaceconstant{regionin}{entreregion}
+\setinterfaceconstant{regionout}{regionexterieure}
+\setinterfaceconstant{repeat}{repete}
+\setinterfaceconstant{reset}{reset}
+\setinterfaceconstant{resetnumber}{raznumero}
+\setinterfaceconstant{resolution}{resolution}
+\setinterfaceconstant{right}{droite}
+\setinterfaceconstant{rightcolor}{couleurdroite}
+\setinterfaceconstant{rightcompoundhyphen}{rightcompoundhyphen}
+\setinterfaceconstant{rightedge}{borddroit}
+\setinterfaceconstant{rightedgedistance}{distanceborddroit}
+\setinterfaceconstant{rightframe}{cadredroit}
+\setinterfaceconstant{righthyphen}{righthyphen}
+\setinterfaceconstant{rightmargin}{margedroite}
+\setinterfaceconstant{rightmargindistance}{distancemargedroite}
+\setinterfaceconstant{rightoffset}{rightoffset}
+\setinterfaceconstant{rightquotation}{citationdroite}
+\setinterfaceconstant{rightquote}{citerdroite}
+\setinterfaceconstant{rightsentence}{phrasedroite}
+\setinterfaceconstant{rightspeech}{rightspeech}
+\setinterfaceconstant{rightstyle}{styledroit}
+\setinterfaceconstant{rightsubsentence}{sousphrasedroite}
+\setinterfaceconstant{righttext}{textedroit}
+\setinterfaceconstant{rightwidth}{largeurdroite}
+\setinterfaceconstant{rotation}{rotation}
+\setinterfaceconstant{rule}{ligne}
+\setinterfaceconstant{rulecolor}{couleurligne}
+\setinterfaceconstant{rulethickness}{epaisseurligne}
+\setinterfaceconstant{samepage}{memepage}
+\setinterfaceconstant{sample}{echantillon}
+\setinterfaceconstant{saveinlist}{saveinlist}
+\setinterfaceconstant{scale}{echelle}
+\setinterfaceconstant{scope}{scope}
+\setinterfaceconstant{screen}{ecran}
+\setinterfaceconstant{section}{section}
+\setinterfaceconstant{sectionconversion}{sectionconversion}
+\setinterfaceconstant{sectionconversionset}{sectionconversionset}
+\setinterfaceconstant{sectionnumber}{numerosection}
+\setinterfaceconstant{sectionresetset}{sectionresetset}
+\setinterfaceconstant{sectionsegments}{sectionsegments}
+\setinterfaceconstant{sectionseparatorset}{sectionseparatorset}
+\setinterfaceconstant{sectionset}{sectionset}
+\setinterfaceconstant{sectionstopper}{sectionstopper}
+\setinterfaceconstant{separator}{separateur}
+\setinterfaceconstant{set}{set}
+\setinterfaceconstant{setups}{reglages}
+\setinterfaceconstant{side}{cote}
+\setinterfaceconstant{sidealign}{sidealign}
+\setinterfaceconstant{sidemethod}{sidemethod}
+\setinterfaceconstant{sidespaceafter}{espacelateralapres}
+\setinterfaceconstant{sidespacebefore}{espacelateralavant}
+\setinterfaceconstant{sign}{signe}
+\setinterfaceconstant{size}{dimension}
+\setinterfaceconstant{small}{petit}
+\setinterfaceconstant{sorttype}{sorttype}
+\setinterfaceconstant{source}{origine}
+\setinterfaceconstant{space}{espace}
+\setinterfaceconstant{spaceafter}{espaceapres}
+\setinterfaceconstant{spacebefore}{espaceavant}
+\setinterfaceconstant{spaceinbetween}{spaceinbetween}
+\setinterfaceconstant{spacing}{espacement}
+\setinterfaceconstant{split}{split}
+\setinterfaceconstant{splitcolor}{splitcolor}
+\setinterfaceconstant{splitmethod}{splitmethod}
+\setinterfaceconstant{splitoffset}{splitoffset}
+\setinterfaceconstant{spot}{spot}
+\setinterfaceconstant{stack}{stack}
+\setinterfaceconstant{start}{demarre}
+\setinterfaceconstant{state}{etat}
+\setinterfaceconstant{step}{pas}
+\setinterfaceconstant{stop}{stoppe}
+\setinterfaceconstant{stopper}{taquet}
+\setinterfaceconstant{stretch}{etire}
+\setinterfaceconstant{strut}{strut}
+\setinterfaceconstant{style}{style}
+\setinterfaceconstant{sub}{sous}
+\setinterfaceconstant{subtitle}{soustitre}
+\setinterfaceconstant{suffix}{suffix}
+\setinterfaceconstant{sx}{sx}
+\setinterfaceconstant{sy}{sy}
+\setinterfaceconstant{symalign}{symalignement}
+\setinterfaceconstant{symbol}{symbole}
+\setinterfaceconstant{symbolset}{jeusymbole}
+\setinterfaceconstant{symcolor}{couleursym}
+\setinterfaceconstant{symstyle}{stylesym}
+\setinterfaceconstant{synonym}{synonyme}
+\setinterfaceconstant{synonymcolor}{couleursynonyme}
+\setinterfaceconstant{synonymcommand}{synonymcommand}
+\setinterfaceconstant{synonymstyle}{stylesynonyme}
+\setinterfaceconstant{tab}{tab}
+\setinterfaceconstant{text}{texte}
+\setinterfaceconstant{textcolor}{couleurtexte}
+\setinterfaceconstant{textcommand}{commandetexte}
+\setinterfaceconstant{textdistance}{distancetexte}
+\setinterfaceconstant{textlayer}{calquetexte}
+\setinterfaceconstant{textmargin}{margetexte}
+\setinterfaceconstant{textmethod}{textmethod}
+\setinterfaceconstant{textseparator}{separateurtexte}
+\setinterfaceconstant{textsize}{tailletexte}
+\setinterfaceconstant{textstate}{etattexte}
+\setinterfaceconstant{textstyle}{styletexte}
+\setinterfaceconstant{textwidth}{largeurtexte}
+\setinterfaceconstant{title}{titre}
+\setinterfaceconstant{titlecolor}{couleurtitre}
+\setinterfaceconstant{titlecommand}{titlecommand}
+\setinterfaceconstant{titledistance}{distancetitre}
+\setinterfaceconstant{titleleft}{titleleft}
+\setinterfaceconstant{titleright}{titleright}
+\setinterfaceconstant{titlestyle}{styletitre}
+\setinterfaceconstant{to}{vers}
+\setinterfaceconstant{tolerance}{tolerance}
+\setinterfaceconstant{top}{sup}
+\setinterfaceconstant{topdistance}{distancesup}
+\setinterfaceconstant{topframe}{cadresup}
+\setinterfaceconstant{topoffset}{decalagesup}
+\setinterfaceconstant{topspace}{espacesup}
+\setinterfaceconstant{topstate}{etatsup}
+\setinterfaceconstant{type}{type}
+\setinterfaceconstant{unit}{unite}
+\setinterfaceconstant{unknownreference}{referenceinconnue}
+\setinterfaceconstant{urlalternative}{alternativeurl}
+\setinterfaceconstant{urlspace}{espaceurl}
+\setinterfaceconstant{validate}{valider}
+\setinterfaceconstant{vcommand}{vcommande}
+\setinterfaceconstant{veroffset}{veroffset}
+\setinterfaceconstant{vfil}{vfil}
+\setinterfaceconstant{voffset}{voffset}
+\setinterfaceconstant{way}{mode}
+\setinterfaceconstant{wfactor}{facteurlargeur}
+\setinterfaceconstant{white}{blanc}
+\setinterfaceconstant{width}{largeur}
+\setinterfaceconstant{xfactor}{xfactor}
+\setinterfaceconstant{xmax}{xmax}
+\setinterfaceconstant{xoffset}{xoffset}
+\setinterfaceconstant{xscale}{xscale}
+\setinterfaceconstant{xstep}{xstep}
+\setinterfaceconstant{yfactor}{yfactor}
+\setinterfaceconstant{ymax}{ymax}
+\setinterfaceconstant{yoffset}{yoffset}
+\setinterfaceconstant{yscale}{yscale}
+\setinterfaceconstant{ystep}{ystep}
+% definitions for interface elements for language fr
+%
+\setinterfaceelement{answerlines}{answerlines}
+\setinterfaceelement{answerspace}{answerspace}
+\setinterfaceelement{begin}{debut}
+\setinterfaceelement{complete}{complete}
+\setinterfaceelement{coupled}{couple}
+\setinterfaceelement{currentlocal}{localcourant}
+\setinterfaceelement{emptyone}{vide}
+\setinterfaceelement{emptytwo}{vide}
+\setinterfaceelement{end}{fin}
+\setinterfaceelement{endsetup}{}
+\setinterfaceelement{get}{obtient}
+\setinterfaceelement{increment}{incremente}
+\setinterfaceelement{list}{liste}
+\setinterfaceelement{listof}{listede}
+\setinterfaceelement{load}{charge}
+\setinterfaceelement{local}{local}
+\setinterfaceelement{makeup}{makeup}
+\setinterfaceelement{next}{suivant}
+\setinterfaceelement{place}{place}
+\setinterfaceelement{previous}{precedent}
+\setinterfaceelement{previouslocal}{localprecedent}
+\setinterfaceelement{reserve}{reserver}
+\setinterfaceelement{see}{voit}
+\setinterfaceelement{setup}{regle}
+\setinterfaceelement{start}{demarre}
+\setinterfaceelement{stop}{stoppe}
+\setinterfaceelement{text}{texte}
+\setinterfaceelement{type}{type}
+% definitions for interface commands for language fr
+%
+\setinterfacecommand{CAPPED}{CAP}
+\setinterfacecommand{Character}{Caractere}
+\setinterfacecommand{Characters}{Caracteres}
+\setinterfacecommand{LABELTEXT}{LABELTEXTE}
+\setinterfacecommand{MONTH}{MOIS}
+\setinterfacecommand{Numbers}{Numeros}
+\setinterfacecommand{Romannumerals}{Chiffresromains}
+\setinterfacecommand{SmallCapped}{Cap}
+\setinterfacecommand{SmallCaps}{Caps}
+\setinterfacecommand{WEEKDAY}{JOURSEMAINE}
+\setinterfacecommand{WORD}{MOT}
+\setinterfacecommand{WORDS}{MOTS}
+\setinterfacecommand{Word}{Mot}
+\setinterfacecommand{Words}{Mots}
+\setinterfacecommand{about}{concernant}
+\setinterfacecommand{adaptlayout}{adaptedisposition}
+\setinterfacecommand{arg}{arg}
+\setinterfacecommand{at}{a}
+\setinterfacecommand{atleftmargin}{atleftmargin}
+\setinterfacecommand{atpage}{alapage}
+\setinterfacecommand{atrightmargin}{atrightmargin}
+\setinterfacecommand{background}{arriereplan}
+\setinterfacecommand{backspace}{retourarriere}
+\setinterfacecommand{blackrule}{lignenoire}
+\setinterfacecommand{blackrules}{lignesnoires}
+\setinterfacecommand{blank}{vide}
+\setinterfacecommand{bookmark}{marquepage}
+\setinterfacecommand{bottomdistance}{distanceinf}
+\setinterfacecommand{bottomheight}{hauteurinf}
+\setinterfacecommand{bottomspace}{espaceinf}
+\setinterfacecommand{but}{but}
+\setinterfacecommand{button}{bouton}
+\setinterfacecommand{bypassblocks}{sauteblocs}
+\setinterfacecommand{character}{caractere}
+\setinterfacecommand{characters}{caracteres}
+\setinterfacecommand{chem}{chem}
+\setinterfacecommand{clip}{clip}
+\setinterfacecommand{clonefield}{clonechamp}
+\setinterfacecommand{color}{couleur}
+\setinterfacecommand{colorbar}{barrecouleur}
+\setinterfacecommand{colorvalue}{valeurcouleur}
+\setinterfacecommand{column}{colonne}
+\setinterfacecommand{comment}{commentaire}
+\setinterfacecommand{comparecolorgroup}{comparegroupecouleur}
+\setinterfacecommand{comparepalet}{comparepalette}
+\setinterfacecommand{completepagenumber}{completenumeropage}
+\setinterfacecommand{completeregister}{completeregistre}
+\setinterfacecommand{component}{composant}
+\setinterfacecommand{convertnumber}{convertitnumero}
+\setinterfacecommand{copyfield}{copitchamp}
+\setinterfacecommand{correctwhitespace}{corrigeespaceblanc}
+\setinterfacecommand{coupledocument}{coupledocument}
+\setinterfacecommand{couplemarking}{couplemarquage}
+\setinterfacecommand{couplepage}{pagedouble}
+\setinterfacecommand{couplepaper}{couplepapier}
+\setinterfacecommand{coupleregister}{coupleregistre}
+\setinterfacecommand{crlf}{crlf}
+\setinterfacecommand{currentdate}{datecourante}
+\setinterfacecommand{currentheadnumber}{numerotetecourant}
+\setinterfacecommand{cutspace}{cutspace}
+\setinterfacecommand{date}{date}
+\setinterfacecommand{decouplemarking}{decouplemarquage}
+\setinterfacecommand{decrementnumber}{decrementenumero}
+\setinterfacecommand{define}{definit}
+\setinterfacecommand{defineaccent}{definitaccent}
+\setinterfacecommand{defineblank}{definitvide}
+\setinterfacecommand{defineblock}{definitbloc}
+\setinterfacecommand{definebodyfont}{definitpolicecorps}
+\setinterfacecommand{definebodyfontenvironment}{definitenvironnementpolicecorps}
+\setinterfacecommand{definebuffer}{definitbuffer}
+\setinterfacecommand{definecharacter}{definicaractere}
+\setinterfacecommand{definecolor}{definitcouleur}
+\setinterfacecommand{definecolorgroup}{definitgroupecouleur}
+\setinterfacecommand{definecolumnbreak}{definitsautdecolonne}
+\setinterfacecommand{definecolumnset}{definitjeucolonne}
+\setinterfacecommand{definecombination}{definecombination}
+\setinterfacecommand{definecombinedlist}{definitlisteimbriquee}
+\setinterfacecommand{definecommand}{definitcommande}
+\setinterfacecommand{defineconversion}{definitconversion}
+\setinterfacecommand{definedescription}{definitdescription}
+\setinterfacecommand{defineenumeration}{definitenumeration}
+\setinterfacecommand{definefield}{definitchamp}
+\setinterfacecommand{definefieldstack}{definitpilechamp}
+\setinterfacecommand{definefiguresymbol}{definitsymbolefigure}
+\setinterfacecommand{definefloat}{definitflottant}
+\setinterfacecommand{definefont}{definitpolice}
+\setinterfacecommand{definefontstyle}{definitstylepolice}
+\setinterfacecommand{definefontsynonym}{definitsynonymepolice}
+\setinterfacecommand{defineframed}{defineframed}
+\setinterfacecommand{defineframedtext}{defineframedtext}
+\setinterfacecommand{definehbox}{definithbox}
+\setinterfacecommand{definehead}{definittete}
+\setinterfacecommand{defineindenting}{definitcompoalinea}
+\setinterfacecommand{defineinmargin}{definitdansmarge}
+\setinterfacecommand{defineinteractionmenu}{definitmenuinteraction}
+\setinterfacecommand{defineitemgroup}{defineitemgroup}
+\setinterfacecommand{definelabel}{definitetiquette}
+\setinterfacecommand{definelayer}{definitcalque}
+\setinterfacecommand{definelayout}{definitdisposition}
+\setinterfacecommand{definelist}{definitliste}
+\setinterfacecommand{definelogo}{definitlogo}
+\setinterfacecommand{definemainfield}{definitchampprincipal}
+\setinterfacecommand{definemakeup}{definitmakeup}
+\setinterfacecommand{definemarking}{definitmarquage}
+\setinterfacecommand{definemathalignment}{definemathalignment}
+\setinterfacecommand{defineoutput}{definitsortie}
+\setinterfacecommand{defineoverlay}{definitrevetement}
+\setinterfacecommand{definepagebreak}{definitsautdepage}
+\setinterfacecommand{definepalet}{definitpalette}
+\setinterfacecommand{definepapersize}{definittaillepapier}
+\setinterfacecommand{defineparagraphs}{definitparagraphes}
+\setinterfacecommand{defineplacement}{defineplacement}
+\setinterfacecommand{defineprofile}{definitprofil}
+\setinterfacecommand{defineprogram}{definitprogramme}
+\setinterfacecommand{definerawfont}{definitpolicebrute}
+\setinterfacecommand{definereference}{definitreference}
+\setinterfacecommand{definereferenceformat}{definitformatreference}
+\setinterfacecommand{definereferencelist}{definitlistereference}
+\setinterfacecommand{defineregister}{definitregistre}
+\setinterfacecommand{definerule}{definitregle}
+\setinterfacecommand{definesection}{definitsection}
+\setinterfacecommand{definesectionblock}{definitblocsection}
+\setinterfacecommand{definesorting}{definittri}
+\setinterfacecommand{definestartstop}{definitdemarrestoppe}
+\setinterfacecommand{definestyle}{definitstyle}
+\setinterfacecommand{definesubfield}{definitsouschamp}
+\setinterfacecommand{definesymbol}{definitsymbole}
+\setinterfacecommand{definesynonyms}{definitsynonymes}
+\setinterfacecommand{definetabletemplate}{definittrametableau}
+\setinterfacecommand{definetabulate}{definittabulation}
+\setinterfacecommand{definetext}{definittexte}
+\setinterfacecommand{definetextposition}{definitpositiontexte}
+\setinterfacecommand{definetextvariable}{definitvariabletexte}
+\setinterfacecommand{definetype}{definittype}
+\setinterfacecommand{definetyping}{definitdactylo}
+\setinterfacecommand{defineversion}{definitversion}
+\setinterfacecommand{determineheadnumber}{determinenumerotete}
+\setinterfacecommand{determinelistcharacteristics}{determinecaracteristiqueliste}
+\setinterfacecommand{determineregistercharacteristics}{determinecaracteristiquesregistre}
+\setinterfacecommand{dimension}{dimension}
+\setinterfacecommand{disableinteractionmenu}{inhibemenuinteraction}
+\setinterfacecommand{domicile}{domicile}
+\setinterfacecommand{donttest}{sanstest}
+\setinterfacecommand{edgedistance}{distancebord}
+\setinterfacecommand{edgewidth}{largeurbord}
+\setinterfacecommand{emptylines}{emptylines}
+\setinterfacecommand{environment}{environement}
+\setinterfacecommand{externalfigure}{figureexterne}
+\setinterfacecommand{fact}{fait}
+\setinterfacecommand{field}{champ}
+\setinterfacecommand{fieldstack}{pilechamp}
+\setinterfacecommand{fillinfield}{remplitchamp}
+\setinterfacecommand{fillinline}{remplitligne}
+\setinterfacecommand{fillinrules}{remplitlignesreglees}
+\setinterfacecommand{fillintext}{remplittexte}
+\setinterfacecommand{fitfield}{ajustechamp}
+\setinterfacecommand{fixedspace}{espacefixe}
+\setinterfacecommand{fixedspaces}{espacesfixes}
+\setinterfacecommand{followprofile}{suivantprofil}
+\setinterfacecommand{followprofileversion}{suivantversionprofil}
+\setinterfacecommand{followversion}{suivantversion}
+\setinterfacecommand{footerdistance}{distancepdp}
+\setinterfacecommand{footerheight}{hauteurpdp}
+\setinterfacecommand{footnote}{notepdp}
+\setinterfacecommand{footnotetext}{textenotepdp}
+\setinterfacecommand{forceblocks}{forceblocs}
+\setinterfacecommand{formulanumber}{numeroformule}
+\setinterfacecommand{fraction}{fraction}
+\setinterfacecommand{framed}{framed}
+\setinterfacecommand{from}{de}
+\setinterfacecommand{getbuffer}{prendbuffer}
+\setinterfacecommand{getmarking}{obtientmarquage}
+\setinterfacecommand{getnumber}{getnumber}
+\setinterfacecommand{godown}{vaenbas}
+\setinterfacecommand{goto}{va}
+\setinterfacecommand{gotobox}{vaalaboite}
+\setinterfacecommand{gotopage}{vaalapage}
+\setinterfacecommand{graycolor}{couleurgrise}
+\setinterfacecommand{greyvalue}{valeurgris}
+\setinterfacecommand{grid}{grille}
+\setinterfacecommand{hairline}{ligneh}
+\setinterfacecommand{head}{tete}
+\setinterfacecommand{headerdistance}{distanceentete}
+\setinterfacecommand{headerheight}{hauteurentete}
+\setinterfacecommand{headlevel}{niveautete}
+\setinterfacecommand{headnumber}{numerotete}
+\setinterfacecommand{headsym}{headsym}
+\setinterfacecommand{headtext}{textetete}
+\setinterfacecommand{hideblocks}{cacheblocs}
+\setinterfacecommand{high}{haut}
+\setinterfacecommand{hl}{hl}
+\setinterfacecommand{immediatebetweenlist}{immediatebetweenlist}
+\setinterfacecommand{immediatetolist}{immediatetolist}
+\setinterfacecommand{in}{dans}
+\setinterfacecommand{incrementnumber}{incrementenumero}
+\setinterfacecommand{indenting}{composeenalinea}
+\setinterfacecommand{inframed}{inframed}
+\setinterfacecommand{infull}{infull}
+\setinterfacecommand{ininner}{ininner}
+\setinterfacecommand{inleft}{dansgauche}
+\setinterfacecommand{inleftedge}{dansbordgauche}
+\setinterfacecommand{inleftmargin}{dansmargegauche}
+\setinterfacecommand{inline}{alaligne}
+\setinterfacecommand{inmargin}{dansmarge}
+\setinterfacecommand{inmframed}{inmframed}
+\setinterfacecommand{inneredgedistance}{inneredgedistance}
+\setinterfacecommand{inneredgewidth}{inneredgewidth}
+\setinterfacecommand{innermargindistance}{innermargindistance}
+\setinterfacecommand{innermarginwidth}{innermarginwidth}
+\setinterfacecommand{inothermargin}{dansautremarge}
+\setinterfacecommand{inouter}{inouter}
+\setinterfacecommand{inright}{dansdroite}
+\setinterfacecommand{inrightedge}{dansborddroit}
+\setinterfacecommand{inrightmargin}{dansmargedroite}
+\setinterfacecommand{installlanguage}{installelangue}
+\setinterfacecommand{interactionbar}{barreinteraction}
+\setinterfacecommand{interactionbuttons}{boutonsinteraction}
+\setinterfacecommand{interactionmenu}{menuinteraction}
+\setinterfacecommand{item}{element}
+\setinterfacecommand{items}{elements}
+\setinterfacecommand{its}{el}
+\setinterfacecommand{keepblocks}{gardeblocs}
+\setinterfacecommand{label}{etiquette}
+\setinterfacecommand{labels}{etiquettes}
+\setinterfacecommand{labeltext}{labeltexte}
+\setinterfacecommand{language}{langue}
+\setinterfacecommand{leftaligned}{aligneagauche}
+\setinterfacecommand{leftedgedistance}{distancebordgauche}
+\setinterfacecommand{leftedgewidth}{largeurbordgauche}
+\setinterfacecommand{leftmargindistance}{distancemargegauche}
+\setinterfacecommand{leftmarginwidth}{largeurmargegauche}
+\setinterfacecommand{leg}{leg}
+\setinterfacecommand{linewidth}{largeurligne}
+\setinterfacecommand{listheight}{hauteurliste}
+\setinterfacecommand{listlength}{llongueurliste}
+\setinterfacecommand{listsymbol}{listesymbole}
+\setinterfacecommand{listwidth}{largeurliste}
+\setinterfacecommand{logfields}{logchamp}
+\setinterfacecommand{lohi}{baha}
+\setinterfacecommand{low}{bas}
+\setinterfacecommand{macroname}{nommacro}
+\setinterfacecommand{mainlanguage}{langueprincipale}
+\setinterfacecommand{makeupheight}{hauteurmakeup}
+\setinterfacecommand{makeupwidth}{largeurmakeup}
+\setinterfacecommand{mar}{mar}
+\setinterfacecommand{margindistance}{distancemarge}
+\setinterfacecommand{marginrule}{margereglee}
+\setinterfacecommand{margintext}{textemarge}
+\setinterfacecommand{margintitle}{titremarge}
+\setinterfacecommand{marginwidth}{largeurmarge}
+\setinterfacecommand{marginword}{motmarge}
+\setinterfacecommand{marking}{marquage}
+\setinterfacecommand{markversion}{marquageversion}
+\setinterfacecommand{mathematics}{mathematique}
+\setinterfacecommand{menubutton}{boutonmenu}
+\setinterfacecommand{mframed}{mframed}
+\setinterfacecommand{midaligned}{aligneaumilieu}
+\setinterfacecommand{mirror}{reflete}
+\setinterfacecommand{month}{mois}
+\setinterfacecommand{moveformula}{deplaceformule}
+\setinterfacecommand{moveongrid}{deplacesurgrille}
+\setinterfacecommand{movesidefloat}{movesidefloat}
+\setinterfacecommand{navigating}{navigating}
+\setinterfacecommand{nodimension}{sansdimension}
+\setinterfacecommand{noheaderandfooterlines}{sanslignesenteteetpdp}
+\setinterfacecommand{noindenting}{sansalinea}
+\setinterfacecommand{nolist}{sansliste}
+\setinterfacecommand{nomarking}{sansmarquage}
+\setinterfacecommand{nomoreblocks}{pasplusdeblocs}
+\setinterfacecommand{nomorefiles}{pasplusdefichiers}
+\setinterfacecommand{nop}{nop}
+\setinterfacecommand{nospace}{sansespace}
+\setinterfacecommand{note}{note}
+\setinterfacecommand{notopandbottomlines}{sanslignessupetinf}
+\setinterfacecommand{notsmallcapped}{nocap}
+\setinterfacecommand{nowhitespace}{sansespaceblanc}
+\setinterfacecommand{numberofsubpages}{nombredesouspages}
+\setinterfacecommand{numbers}{numeros}
+\setinterfacecommand{outeredgedistance}{outeredgedistance}
+\setinterfacecommand{outeredgewidth}{outeredgewidth}
+\setinterfacecommand{outermargindistance}{outermargindistance}
+\setinterfacecommand{outermarginwidth}{outermarginwidth}
+\setinterfacecommand{overbar}{overbar}
+\setinterfacecommand{overbars}{overbars}
+\setinterfacecommand{overstrike}{surlignetout}
+\setinterfacecommand{overstrikes}{surligne}
+\setinterfacecommand{packed}{groupe}
+\setinterfacecommand{page}{page}
+\setinterfacecommand{pagedepth}{pagedepth}
+\setinterfacecommand{pagenumber}{numeropage}
+\setinterfacecommand{pageoffset}{pageoffset}
+\setinterfacecommand{pagereference}{referencepage}
+\setinterfacecommand{pagetype}{tapepage}
+\setinterfacecommand{paperheight}{hauteurpapier}
+\setinterfacecommand{paperwidth}{largeurpapier}
+\setinterfacecommand{periods}{periodes}
+\setinterfacecommand{plaatsruwelijst}{placerawlist}
+\setinterfacecommand{placebookmarks}{placemarquespages}
+\setinterfacecommand{placecombinedlist}{placelisteinmbriquee}
+\setinterfacecommand{placefloat}{placeflottant}
+\setinterfacecommand{placefootnotes}{placenotespdp}
+\setinterfacecommand{placeformula}{placeformule}
+\setinterfacecommand{placeheadnumber}{placenumerotete}
+\setinterfacecommand{placeheadtext}{placetextetete}
+\setinterfacecommand{placelegend}{placelegende}
+\setinterfacecommand{placelist}{placeliste}
+\setinterfacecommand{placelocalfootnotes}{placenotespdplocales}
+\setinterfacecommand{placelogos}{placelogos}
+\setinterfacecommand{placeongrid}{placesurgrille}
+\setinterfacecommand{placeontopofeachother}{placelesunsaudessusdesautres}
+\setinterfacecommand{placepagenumber}{placenumeropage}
+\setinterfacecommand{placereferencelist}{placelistereference}
+\setinterfacecommand{placeregister}{placeregistre}
+\setinterfacecommand{placerule}{placeregle}
+\setinterfacecommand{placesidebyside}{placecoteacote}
+\setinterfacecommand{placesubformula}{placesousformule}
+\setinterfacecommand{placetextvariable}{placevariabletexte}
+\setinterfacecommand{position}{position}
+\setinterfacecommand{positiontext}{positionnetexte}
+\setinterfacecommand{printpaperheight}{hauteureditionpapier}
+\setinterfacecommand{printpaperwidth}{largeureditionpapier}
+\setinterfacecommand{processblocks}{traiteblocs}
+\setinterfacecommand{processpage}{traitepage}
+\setinterfacecommand{product}{produit}
+\setinterfacecommand{program}{programme}
+\setinterfacecommand{project}{projet}
+\setinterfacecommand{publication}{publication}
+\setinterfacecommand{quotation}{citation}
+\setinterfacecommand{quote}{citer}
+\setinterfacecommand{ran}{ran}
+\setinterfacecommand{redo}{refait}
+\setinterfacecommand{ref}{ref}
+\setinterfacecommand{reference}{reference}
+\setinterfacecommand{referral}{recommandation}
+\setinterfacecommand{referraldate}{daterecommandation}
+\setinterfacecommand{referring}{faitreference}
+\setinterfacecommand{remark}{commentaire}
+\setinterfacecommand{reset}{raz}
+\setinterfacecommand{resetmarking}{razmarquage}
+\setinterfacecommand{resetnumber}{raznumero}
+\setinterfacecommand{resettext}{resettextcontent}
+\setinterfacecommand{rightaligned}{aligneadroite}
+\setinterfacecommand{rightedgedistance}{distanceborddroit}
+\setinterfacecommand{rightedgewidth}{largeurborddroit}
+\setinterfacecommand{rightmargindistance}{distancemargedroite}
+\setinterfacecommand{rightmarginwidth}{largeurmargedroite}
+\setinterfacecommand{romannumerals}{chiffresromains}
+\setinterfacecommand{rotate}{oriente}
+\setinterfacecommand{scale}{echelle}
+\setinterfacecommand{screen}{ecran}
+\setinterfacecommand{selectblocks}{selectionneblocs}
+\setinterfacecommand{selectpaper}{selectionnepapier}
+\setinterfacecommand{selectversion}{selectionneversion}
+\setinterfacecommand{setnumber}{affectenumero}
+\setinterfacecommand{settextcontent}{settext}
+\setinterfacecommand{settextvariable}{affectevariabletexte}
+\setinterfacecommand{setupalign}{reglealignement}
+\setinterfacecommand{setupanswerarea}{setupanswerarea}
+\setinterfacecommand{setuparranging}{reglearrangement}
+\setinterfacecommand{setupbackground}{reglearriereplan}
+\setinterfacecommand{setupbackgrounds}{reglearriereplans}
+\setinterfacecommand{setupblackrules}{reglelignesnoires}
+\setinterfacecommand{setupblank}{definitvide}
+\setinterfacecommand{setupblock}{reglebloc}
+\setinterfacecommand{setupbodyfont}{reglepolicecorps}
+\setinterfacecommand{setupbodyfontenvironment}{regleenvironnementpolicecorps}
+\setinterfacecommand{setupbottom}{regleinf}
+\setinterfacecommand{setupbottomtexts}{regletextesinf}
+\setinterfacecommand{setupbuffer}{reglebuffer}
+\setinterfacecommand{setupbuttons}{regleboutons}
+\setinterfacecommand{setupcapitals}{reglecapitales}
+\setinterfacecommand{setupcaption}{regleintitule}
+\setinterfacecommand{setupcaptions}{regleintitules}
+\setinterfacecommand{setupclipping}{regleclipping}
+\setinterfacecommand{setupcolor}{reglecouleur}
+\setinterfacecommand{setupcolors}{reglecouleurs}
+\setinterfacecommand{setupcolumns}{reglecolonnes}
+\setinterfacecommand{setupcolumnset}{reglejeucolonne}
+\setinterfacecommand{setupcolumnsetlines}{setupcolumnsetlines}
+\setinterfacecommand{setupcolumnsetstart}{setupcolumnsetstart}
+\setinterfacecommand{setupcombinations}{reglecombinaisons}
+\setinterfacecommand{setupcombinedlist}{reglelisteimbriquee}
+\setinterfacecommand{setupcomment}{reglecommentaire}
+\setinterfacecommand{setupdescriptions}{regledescriptions}
+\setinterfacecommand{setupenumerations}{regleenumerations}
+\setinterfacecommand{setupexternalfigures}{reglefiguresexternes}
+\setinterfacecommand{setupfield}{reglechamp}
+\setinterfacecommand{setupfields}{reglechamps}
+\setinterfacecommand{setupfillinlines}{regleremplitligne}
+\setinterfacecommand{setupfillinrules}{regleremplitlignesreglees}
+\setinterfacecommand{setupfloat}{regleflottant}
+\setinterfacecommand{setupfloats}{regleflottants}
+\setinterfacecommand{setupfloatsplitting}{regleseparationflottant}
+\setinterfacecommand{setupfooter}{reglepdp}
+\setinterfacecommand{setupfootertexts}{regletextespdp}
+\setinterfacecommand{setupfootnotedefinition}{definitnotepdp}
+\setinterfacecommand{setupfootnotes}{reglenotepdp}
+\setinterfacecommand{setupforms}{regleformulaires}
+\setinterfacecommand{setupformulas}{regleformules}
+\setinterfacecommand{setupframed}{regleencadre}
+\setinterfacecommand{setupframedtexts}{setupframedtexts}
+\setinterfacecommand{setuphead}{regletete}
+\setinterfacecommand{setupheader}{regleentete}
+\setinterfacecommand{setupheadertexts}{regletextesentete}
+\setinterfacecommand{setupheadnumber}{reglenumerotete}
+\setinterfacecommand{setupheads}{regletetes}
+\setinterfacecommand{setupheadtext}{regletextetete}
+\setinterfacecommand{setuphyphenmark}{reglemarquagehyphenation}
+\setinterfacecommand{setupindentations}{reglealineas}
+\setinterfacecommand{setupindenting}{reglecomposeenalinea}
+\setinterfacecommand{setupinmargin}{regledansmarge}
+\setinterfacecommand{setupinteraction}{regleinteraction}
+\setinterfacecommand{setupinteractionbar}{reglebarreinteraction}
+\setinterfacecommand{setupinteractionmenu}{reglemenuinteraction}
+\setinterfacecommand{setupinteractionscreen}{regleecraninteraction}
+\setinterfacecommand{setupinterlinespace}{regleespacementinterligne}
+\setinterfacecommand{setupitemgroup}{setupitemgroup}
+\setinterfacecommand{setupitemgroups}{reglegroupeselements}
+\setinterfacecommand{setupitems}{regleelements}
+\setinterfacecommand{setuplabeltext}{reglelabeltexte}
+\setinterfacecommand{setuplanguage}{reglelangue}
+\setinterfacecommand{setuplayout}{regledisposition}
+\setinterfacecommand{setuplegend}{reglelegende}
+\setinterfacecommand{setuplinenumbering}{reglenumerotationligne}
+\setinterfacecommand{setuplines}{reglelignes}
+\setinterfacecommand{setuplinewidth}{regleepaisseurligne}
+\setinterfacecommand{setuplist}{regleliste}
+\setinterfacecommand{setupmakeup}{reglemakeup}
+\setinterfacecommand{setupmarginblocks}{regleblocmarge}
+\setinterfacecommand{setupmarginrules}{reglemargereglee}
+\setinterfacecommand{setupmarking}{reglemarquage}
+\setinterfacecommand{setupmathalignment}{setupmathalignment}
+\setinterfacecommand{setupnarrower}{reglecompoetroite}
+\setinterfacecommand{setupnumber}{reglenumero}
+\setinterfacecommand{setupnumbering}{reglenumerotation}
+\setinterfacecommand{setupoppositeplacing}{regleplacementopposition}
+\setinterfacecommand{setupoutput}{reglesortie}
+\setinterfacecommand{setuppagecomment}{reglecommentairepage}
+\setinterfacecommand{setuppagenumber}{reglenumeropage}
+\setinterfacecommand{setuppagenumbering}{reglenumerotationpage}
+\setinterfacecommand{setuppagetransitions}{regletransitionspage}
+\setinterfacecommand{setuppalet}{reglepalette}
+\setinterfacecommand{setuppaper}{reglepapier}
+\setinterfacecommand{setuppapersize}{regletaillepapier}
+\setinterfacecommand{setupparagraphnumbering}{reglenumerotationparagraphe}
+\setinterfacecommand{setupparagraphs}{regleparagraphes}
+\setinterfacecommand{setupplacement}{setupplacement}
+\setinterfacecommand{setuppositioning}{reglepositionnement}
+\setinterfacecommand{setupprofiles}{regleprofils}
+\setinterfacecommand{setupprograms}{regleprogrammes}
+\setinterfacecommand{setuppublications}{reglepublications}
+\setinterfacecommand{setupquote}{demarreciter}
+\setinterfacecommand{setupreferencelist}{reglelistereference}
+\setinterfacecommand{setupreferencing}{reglereferencage}
+\setinterfacecommand{setupregister}{regleregistre}
+\setinterfacecommand{setuprotate}{regleoriente}
+\setinterfacecommand{setuprule}{regleregle}
+\setinterfacecommand{setups}{reglages}
+\setinterfacecommand{setupscreens}{regleecrans}
+\setinterfacecommand{setupsection}{reglesection}
+\setinterfacecommand{setupsectionblock}{regleblocsection}
+\setinterfacecommand{setupsorting}{regletri}
+\setinterfacecommand{setupspacing}{regleespacement}
+\setinterfacecommand{setupstartstop}{regledemarrestoppe}
+\setinterfacecommand{setupstrut}{reglestrut}
+\setinterfacecommand{setupsubpagenumber}{reglesousnumeropage}
+\setinterfacecommand{setupsymbolset}{reglejeusymboles}
+\setinterfacecommand{setupsynchronization}{reglesynchronisation}
+\setinterfacecommand{setupsynchronizationbar}{reglebarresynchronisation}
+\setinterfacecommand{setupsynonyms}{reglesynonymes}
+\setinterfacecommand{setupsystem}{reglesysteme}
+\setinterfacecommand{setuptab}{regletab}
+\setinterfacecommand{setuptables}{regletableaux}
+\setinterfacecommand{setuptabulate}{regletabulation}
+\setinterfacecommand{setuptext}{regletexte}
+\setinterfacecommand{setuptextposition}{reglepositiontexte}
+\setinterfacecommand{setuptextrules}{reglelignesreglestexte}
+\setinterfacecommand{setuptexttexts}{regletextestexte}
+\setinterfacecommand{setuptextvariable}{reglevariabletexte}
+\setinterfacecommand{setupthinrules}{regletraitsfins}
+\setinterfacecommand{setuptolerance}{regletolerance}
+\setinterfacecommand{setuptop}{reglesup}
+\setinterfacecommand{setuptoptexts}{regletextessup}
+\setinterfacecommand{setuptype}{regletype}
+\setinterfacecommand{setuptyping}{regledactylo}
+\setinterfacecommand{setupunderbar}{reglesouslignage}
+\setinterfacecommand{setupurl}{regleurl}
+\setinterfacecommand{setupversions}{regleversions}
+\setinterfacecommand{setupwhitespace}{regleespaceblanc}
+\setinterfacecommand{showbodyfont}{montrepolicecorps}
+\setinterfacecommand{showbodyfontenvironment}{montreenvironnementpolicecorps}
+\setinterfacecommand{showcolor}{montrecouleur}
+\setinterfacecommand{showcolorgroup}{montregroupecouleur}
+\setinterfacecommand{showexternalfigures}{montrefiguresexternes}
+\setinterfacecommand{showfields}{montrechamps}
+\setinterfacecommand{showframe}{montrecadre}
+\setinterfacecommand{showgrid}{montregrille}
+\setinterfacecommand{showlayout}{montredisposition}
+\setinterfacecommand{showmakeup}{montremakeup}
+\setinterfacecommand{showpalet}{montrepalette}
+\setinterfacecommand{showprint}{montreedition}
+\setinterfacecommand{showsetups}{montrereglages}
+\setinterfacecommand{showstruts}{montrestruts}
+\setinterfacecommand{showsymbolset}{montrejeusymboles}
+\setinterfacecommand{smallcapped}{cap}
+\setinterfacecommand{someline}{uneligne}
+\setinterfacecommand{somewhere}{qqpart}
+\setinterfacecommand{space}{espace}
+\setinterfacecommand{splitfloat}{separeflottant}
+\setinterfacecommand{startalignment}{demarrealignement}
+\setinterfacecommand{startbackground}{demarrearriereplan}
+\setinterfacecommand{startcoding}{demarrecodage}
+\setinterfacecommand{startcolor}{demarrecouleur}
+\setinterfacecommand{startcolumnmakeup}{startcolumnmakeup}
+\setinterfacecommand{startcolumns}{demarrecolonnes}
+\setinterfacecommand{startcolumnset}{demarrejeucolonne}
+\setinterfacecommand{startcombination}{demarrecombinaison}
+\setinterfacecommand{startcomponent}{demarrecomposant}
+\setinterfacecommand{startdocument}{demarredocument}
+\setinterfacecommand{startenvironment}{demarreenvironement}
+\setinterfacecommand{startfigure}{demarrefigure}
+\setinterfacecommand{startglobal}{demarreglobal}
+\setinterfacecommand{startline}{demarreligne}
+\setinterfacecommand{startlinecorrection}{demarrecorrectionligne}
+\setinterfacecommand{startlinenumbering}{demarrenumerotationligne}
+\setinterfacecommand{startlines}{demarrelignes}
+\setinterfacecommand{startlocal}{demarrelocal}
+\setinterfacecommand{startlocalfootnotes}{demarrenotespdplocales}
+\setinterfacecommand{startmakeup}{demarremakeup}
+\setinterfacecommand{startmarginblock}{demarreblocmarge}
+\setinterfacecommand{startmarginrule}{demarremargereglee}
+\setinterfacecommand{startnarrower}{demarrecompoetroite}
+\setinterfacecommand{startopposite}{demarreopposition}
+\setinterfacecommand{startoverlay}{demarrerevetement}
+\setinterfacecommand{startoverzicht}{demarrevuedensemble}
+\setinterfacecommand{startpacked}{demarregroupe}
+\setinterfacecommand{startpositioning}{demarrepositionnement}
+\setinterfacecommand{startproduct}{demarreproduit}
+\setinterfacecommand{startprofile}{demarreprofil}
+\setinterfacecommand{startproject}{demarreprojet}
+\setinterfacecommand{startquotation}{demarrecitation}
+\setinterfacecommand{startraster}{demarreraster}
+\setinterfacecommand{startsymbolset}{demarrejeusymboles}
+\setinterfacecommand{startsynchronization}{demarresynchronisation}
+\setinterfacecommand{starttable}{demarretableau}
+\setinterfacecommand{starttables}{demarretableaux}
+\setinterfacecommand{starttext}{demarretexte}
+\setinterfacecommand{starttextrule}{demarreligneregleetexte}
+\setinterfacecommand{startunpacked}{demarredegroupe}
+\setinterfacecommand{startversion}{demarreversion}
+\setinterfacecommand{stopalignment}{stoppealignement}
+\setinterfacecommand{stopbackground}{stoppearriereplan}
+\setinterfacecommand{stopcoding}{stoppecodage}
+\setinterfacecommand{stopcolor}{stoppecouleur}
+\setinterfacecommand{stopcolumnmakeup}{stopcolumnmakeup}
+\setinterfacecommand{stopcolumns}{stoppecolonnes}
+\setinterfacecommand{stopcolumnset}{stoppejeucolonne}
+\setinterfacecommand{stopcombination}{stoppecombinaison}
+\setinterfacecommand{stopcomponent}{stoppecomposant}
+\setinterfacecommand{stopdocument}{stoppedocument}
+\setinterfacecommand{stopenvironment}{stoppeenvironement}
+\setinterfacecommand{stopglobal}{stoppeglobal}
+\setinterfacecommand{stopline}{stoppeligne}
+\setinterfacecommand{stoplinecorrection}{stoppecorrectionligne}
+\setinterfacecommand{stoplinenumbering}{stoppenumerotationligne}
+\setinterfacecommand{stoplines}{stoppelignes}
+\setinterfacecommand{stoplocal}{stoppelocal}
+\setinterfacecommand{stoplocalfootnotes}{stoppenotespdplocales}
+\setinterfacecommand{stopmakeup}{stoppemakeup}
+\setinterfacecommand{stopmarginblock}{stoppeblocmarge}
+\setinterfacecommand{stopmarginrule}{stoppemargereglee}
+\setinterfacecommand{stopnarrower}{stopcompoetroite}
+\setinterfacecommand{stopopposite}{stoppeopposition}
+\setinterfacecommand{stopoverlay}{stopperevetement}
+\setinterfacecommand{stopoverzicht}{stoppevuedensemble}
+\setinterfacecommand{stoppacked}{stoppegroupe}
+\setinterfacecommand{stoppositioning}{stoppepositionnement}
+\setinterfacecommand{stopproduct}{stoppeproduit}
+\setinterfacecommand{stopprofile}{stoppeprofil}
+\setinterfacecommand{stopproject}{stoppeprojet}
+\setinterfacecommand{stopquotation}{stoppecitation}
+\setinterfacecommand{stopraster}{stopperaster}
+\setinterfacecommand{stopsynchronization}{stoppesynchronisation}
+\setinterfacecommand{stoptable}{stoppetableau}
+\setinterfacecommand{stoptables}{stoppetableaux}
+\setinterfacecommand{stoptext}{stoppetexte}
+\setinterfacecommand{stoptextrule}{stoppeligneregleetexte}
+\setinterfacecommand{stopunpacked}{stoppedegroupe}
+\setinterfacecommand{stopversion}{stoppeversion}
+\setinterfacecommand{stretched}{etire}
+\setinterfacecommand{subformulanumber}{numerosousformule}
+\setinterfacecommand{subpagenumber}{sousnumeropage}
+\setinterfacecommand{switchtobodyfont}{changepolicecorps}
+\setinterfacecommand{switchtorawfont}{changepolicebrute}
+\setinterfacecommand{sym}{sym}
+\setinterfacecommand{symbol}{symbole}
+\setinterfacecommand{synchronizationbar}{barresynchronisation}
+\setinterfacecommand{synchronize}{synchronise}
+\setinterfacecommand{tab}{tab}
+\setinterfacecommand{testcolumn}{testcolumn}
+\setinterfacecommand{testpage}{testpage}
+\setinterfacecommand{tex}{tex}
+\setinterfacecommand{textheight}{hauteurtexte}
+\setinterfacecommand{textreference}{referencetexte}
+\setinterfacecommand{textrule}{ligneregleetexte}
+\setinterfacecommand{textvariable}{variabletexte}
+\setinterfacecommand{textwidth}{largeurtexte}
+\setinterfacecommand{thinrule}{traitfin}
+\setinterfacecommand{thinrules}{traitsfins}
+\setinterfacecommand{tooltip}{suggestion}
+\setinterfacecommand{topdistance}{distancesup}
+\setinterfacecommand{topheight}{hauteursup}
+\setinterfacecommand{topspace}{espacesup}
+\setinterfacecommand{totalnumberofpages}{nombretotaldepages}
+\setinterfacecommand{translate}{traduire}
+\setinterfacecommand{txt}{txt}
+\setinterfacecommand{typ}{typ}
+\setinterfacecommand{type}{dactylographier}
+\setinterfacecommand{typebuffer}{tapebuffer}
+\setinterfacecommand{typefile}{fichierdactylo}
+\setinterfacecommand{underbar}{souslignetout}
+\setinterfacecommand{underbars}{sousligne}
+\setinterfacecommand{unitmeaning}{sensunite}
+\setinterfacecommand{unknown}{inconnu}
+\setinterfacecommand{useJSscripts}{utiliseJSscripts}
+\setinterfacecommand{useURL}{utiliseURL}
+\setinterfacecommand{useXMLfilter}{useXMLfilter}
+\setinterfacecommand{useblocks}{utiliseblocs}
+\setinterfacecommand{usecommands}{utilisecommandes}
+\setinterfacecommand{useencoding}{utiliseencodage}
+\setinterfacecommand{useexternaldocument}{utilisedocumentexterne}
+\setinterfacecommand{useexternalfigure}{utilisefigureexterne}
+\setinterfacecommand{useexternalfile}{utilisefichierexterne}
+\setinterfacecommand{useexternalfiles}{utilisefichiersexternes}
+\setinterfacecommand{useexternalsoundtrack}{utilisepsiteaudioexterne}
+\setinterfacecommand{usemodule}{utilisemodule}
+\setinterfacecommand{usemodules}{utilisemodules}
+\setinterfacecommand{usepath}{utilisechemin}
+\setinterfacecommand{usereferences}{utilisereferences}
+\setinterfacecommand{usespecials}{utilisespecialites}
+\setinterfacecommand{usesymbols}{utilisesymboles}
+\setinterfacecommand{usetypescript}{usetypescript}
+\setinterfacecommand{usetypescriptfile}{usetypescriptfile}
+\setinterfacecommand{useurl}{utiliseurl}
+\setinterfacecommand{version}{version}
+\setinterfacecommand{vl}{vl}
+\setinterfacecommand{weekday}{joursemaine}
+\setinterfacecommand{whitespace}{espaceblanc}
+\setinterfacecommand{wordright}{motdroit}
+\setinterfacecommand{writebetweenlist}{ecritentreliste}
+\setinterfacecommand{writetolist}{ecritdansliste}
+\setinterfacecommand{writetoreferencelist}{ecritdanslistereference}
+\setinterfacecommand{writetoregister}{ecritregistre}
+%
+\endinput \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/base/mult-fst.tex b/Master/texmf-dist/tex/context/base/mult-fst.tex
index af915e000de..c237f574399 100644
--- a/Master/texmf-dist/tex/context/base/mult-fst.tex
+++ b/Master/texmf-dist/tex/context/base/mult-fst.tex
@@ -20,10 +20,33 @@
\startinterface english
- \def\dosetevalue #1#2{\@EA\edef\csname#1#2\endcsname}
- \def\dosetgvalue #1#2{\@EA\gdef\csname#1#2\endcsname}
- \def\dosetvalue #1#2{\@EA\def \csname#1#2\endcsname}
- \def\docopyvalue#1#2#3{\@EA\def \csname#1#3\@EA\endcsname\@EA{\csname#2#3\endcsname}}
+ \def\dosetvalue #1#2{\@EA\def \csname#1#2\endcsname}
+ \def\dosetevalue #1#2{\@EA\edef\csname#1#2\endcsname}
+ \def\dosetgvalue #1#2{\@EA\gdef\csname#1#2\endcsname}
+ \def\dosetxvalue #1#2{\@EA\gdef\csname#1#2\endcsname}
+ \def\docopyvalue#1#2#3{\@EA\def \csname#1#3\@EA\endcsname\@EA{\csname#2#3\endcsname}}
+
+ \ifx\ctxlua\undefined
+
+ \def\setinterfaceconstant#1#2%
+ {\setvalue{\c!prefix!#1}{#1}}
+
+ \def\setinterfacevariable#1#2%
+ {\setvalue{\v!prefix!#1}{#2}}
+
+ \else
+
+ \def\setinterfaceconstant#1#2%
+ {\ctxlua{interfaces.setconstant("#1","#2")}%
+ \setvalue{\c!prefix!#1}{#1}}
+
+ \def\setinterfacevariable#1#2%
+ {\ctxlua{interfaces.setvariable("#1","#2")}%
+ \setvalue{\v!prefix!#1}{#2}}
+
+ \fi
+
+ \def\interfaced#1{#1}
\stopinterface
diff --git a/Master/texmf-dist/tex/context/base/mult-ini.lua b/Master/texmf-dist/tex/context/base/mult-ini.lua
index a92561b09b7..06707adf87a 100644
--- a/Master/texmf-dist/tex/context/base/mult-ini.lua
+++ b/Master/texmf-dist/tex/context/base/mult-ini.lua
@@ -6,51 +6,65 @@ if not modules then modules = { } end modules ['mult-ini'] = {
license = "see context related readme files"
}
+local format, gmatch, gsub = string.format, string.gmatch, string.gsub
+
interfaces = interfaces or { }
interfaces.messages = interfaces.messages or { }
interfaces.constants = interfaces.constants or { }
interfaces.variables = interfaces.variables or { }
-input.storage.register(false,"interfaces/messages", interfaces.messages, "interfaces.messages" )
-input.storage.register(false,"interfaces/constants", interfaces.constants, "interfaces.constants")
-input.storage.register(false,"interfaces/variables", interfaces.variables, "interfaces.variables")
+storage.register("interfaces/messages", interfaces.messages, "interfaces.messages" )
+storage.register("interfaces/constants", interfaces.constants, "interfaces.constants")
+storage.register("interfaces/variables", interfaces.variables, "interfaces.variables")
+
+local messages, constants, variables = interfaces.messages, interfaces.constants, interfaces.variables
-function interfaces.setmessage(category,str)
- local m = interfaces.messages[category] or { }
- for k, v in str:gmatch("(%S+) *: *(.-) *[\n\r]") do
- m[k] = v:gsub("%-%-","%%s")
+function interfaces.setmessages(category,str)
+ local m = messages[category] or { }
+ for k, v in gmatch(str,"(%S+) *: *(.-) *[\n\r]") do
+ m[k] = gsub(v,"%-%-","%%s")
end
- interfaces.messages[category] = m
+ messages[category] = m
+end
+
+function interfaces.setmessage(category,tag,message)
+ local m = messages[category]
+ if not m then
+ m = { }
+ messages[category] = m
+ end
+ m[tag] = message:gsub("%-%-","%%s")
end
function interfaces.getmessage(category,tag)
- local m = interfaces.messages[category]
+ local m = messages[category]
return (m and m[tag]) or "unknown message"
end
+local messagesplitter = lpeg.splitat(",")
+
function interfaces.makemessage(category,tag,arguments)
- local m = interfaces.messages[category]
- m = (m and m[tag] ) or "unknown message"
+ local m = messages[category]
+ m = (m and m[tag] ) or format("unknown message, category '%s', tag '%s'",category,tag)
if not m then
return m .. " " .. tag
elseif not arguments then
return m
- elseif arguments:find(",") then
- return string.format(m,unpack(arguments:split(",")))
else
- return string.format(m,arguments)
+ return format(m,messagesplitter:match(arguments))
end
end
function interfaces.showmessage(category,tag,arguments)
- local m = interfaces.messages[category]
- ctx.writestatus((m and m.title) or "unknown title",interfaces.makemessage(category,tag,arguments))
+ local m = messages[category]
+ commands.writestatus((m and m.title) or "unknown title",interfaces.makemessage(category,tag,arguments))
end
function interfaces.setvariable(variable,given)
- interfaces.variables[given] = variable
+--~ variables[given] = variable
+ variables[variable] = given
end
function interfaces.setconstant(constant,given)
- interfaces.constants[given] = constant
+ constants[given] = constant
end
diff --git a/Master/texmf-dist/tex/context/base/mult-ini.mkii b/Master/texmf-dist/tex/context/base/mult-ini.mkii
index fff800df193..c2bb40861e1 100644
--- a/Master/texmf-dist/tex/context/base/mult-ini.mkii
+++ b/Master/texmf-dist/tex/context/base/mult-ini.mkii
@@ -1,6 +1,6 @@
%D \module
%D [ file=mult-ini,
-%D version=1996.06.01,
+%D version=2008.10.22, % 1996.06.01,
%D title=\CONTEXT\ Multilingual Macros,
%D subtitle=Initialization,
%D author=Hans Hagen,
@@ -11,9 +11,341 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+%D This module is a stripped down version of \type {mult-ini.tex},
+%D which we keep around as \type {mult-kep.tex} for sentimental
+%D reasons. There you will find some more historic information.
+
+\writestatus{loading}{ConTeXt Multilingual Macros / Initialization}
+
\unprotect
-%D This is the oldest variant. Here we filter messages from a big string.
+%D \macros
+%D [constanten,variabelen,commands]
+%D {v!,c!,k!,s!,e!,m!,l!,r!,f!,p!,x!,y!}
+%D
+%D In the system modules we introduced some prefixed constants,
+%D variables (both macros) and registers. Apart from a
+%D tremendous saving in terms of memory and a gain in speed we
+%D use from now on prefixes when possible for just another
+%D reason: consistency and multi||linguality. Systematically
+%D using prefixed macros enables us to implement a
+%D multi||lingual user interface. Redefining these next set of
+%D prefixes therefore can have desastrous results.
+%D
+%D \startlinecorrection
+%D \starttable[|c|c|c|]
+%D \HL
+%D \NC \bf prefix \NC \bf meaning \NC \bf application \NC\SR
+%D \HL
+%D \NC \type{\c!prefix!} \NC c! \NC constant (direct) \NC\FR
+%D \NC \type{\e!prefix!} \NC e! \NC element \NC\MR
+%D \NC \type{\f!prefix!} \NC f! \NC file \NC\MR
+%D \NC \type{\k!prefix!} \NC k! \NC constant (indirect) \NC\MR
+%D \NC \type{\l!prefix!} \NC l! \NC language \NC\MR
+%D \NC \type{\m!prefix!} \NC m! \NC message \NC\MR
+%D \NC \type{\p!prefix!} \NC p! \NC procedure \NC\MR
+%D \NC \type{\r!prefix!} \NC r! \NC reference \NC\MR
+%D \NC \type{\s!prefix!} \NC s! \NC system \NC\MR
+%D \NC \type{\v!prefix!} \NC v! \NC variable \NC\MR
+%D \HL
+%D \stoptable
+%D \stoplinecorrection
+%D
+%D In the single||lingual version we used \type{!}, \type{!!},
+%D \type{!!!} and \type{!!!!}.
+
+\def\c!prefix!{c!} \def\e!prefix!{e!} \def\f!prefix!{f!}
+\def\k!prefix!{k!} \def\l!prefix!{l!} \def\m!prefix!{m!}
+\def\p!prefix!{p!} \def\r!prefix!{r!} \def\s!prefix!{s!}
+\def\v!prefix!{v!} \def\t!prefix!{t!}
+
+%D \macros
+%D [constants,variables,commands]
+%D {@@,??}
+%D
+%D Variables generated by the system can be recognized on their
+%D prefix \type{@@}. They are composed of a command (class)
+%D specific tag, which can be recognized on \type{??}, and a
+%D system constant, which has the prefix \type{c!}. We'll se
+%D some more of this.
+
+\def\??prefix {??}
+\def\@@prefix {@@}
+
+%D Just to be complete we repeat some of the already defined
+%D system constants here. Maybe their prefix \type{\s!} now
+%D falls into place.
+
+\def\s!next {next} \def\s!default {default}
+\def\s!dummy {dummy} \def\s!unknown {unknown}
+
+\def\s!do {do} \def\s!dodo {dodo}
+
+\def\s!complex {complex} \def\s!start {start}
+\def\s!simple {simple} \def\s!stop {stop}
+
+%D The word \type{height} takes 6~token memory cells. The
+%D control sequence \type{\height} on the other hand uses only
+%D one. Knowing this, we can improve the performance of \TEX,
+%D both is terms of speed and memory usage, by using control
+%D sequences instead of the words written in full.
+%D
+%D Where in the \ASCII\ file the second lines takes nine extra
+%D characters, \TEX\ saves us 13~tokens.
+%D
+%D \starttyping
+%D \hrule width 10pt height 2pt depth 1pt
+%D \hrule \!!width 10pt \!!height 2pt \!!depth 1pt
+%D \stoptyping
+%D
+%D One condition is that we have defined \type{\!!height},
+%D \type{\!!width} and \type{\!!depth} as respectively
+%D \type{height}, \type{width} and \type{depth}. Using this
+%D scheme therefore only makes sense when a token sequence is
+%D used more than once. Savings like this should of course be
+%D implemented in english, just because \TEX\ is english.
+
+\def\!!width {width}
+\def\!!height {height}
+\def\!!depth {depth}
+\def\!!plus {plus}
+\def\!!minus {minus}
+\def\!!fill {fill}
+\def\!!to {to}
+
+%D \macros
+%D {defineinterfaceconstant,
+%D defineinterfacevariable,
+%D defineinterfaceelement,
+%D definesystemvariable,
+%D definesystemconstant,
+%D definemessageconstant,
+%D definereferenceconstant,
+%D definefileconstant}
+%D
+%D The first part of this module is dedicated to dealing with
+%D multi||lingual constants and variables. When \CONTEXT\ grew
+%D bigger and bigger in terms of bytes and used string space,
+%D we switched to predefined constants. At the cost of more
+%D hash table entries, the macros not only becase more compact,
+%D they became much faster too. Maybe an even bigger advantage
+%D was that mispelling could no longer lead to problems. Even a
+%D multi||lingual interface became possible.
+%D
+%D Constants --- we'll introduce the concept of variables later
+%D on --- are preceded by a type specific prefix, followed by a
+%D \type{!}. To force consistency, we provide a few commands
+%D for defining such constants.
+%D
+%D \starttyping
+%D \defineinterfaceconstant {name} {meaning}
+%D \defineinterfacevariable {name} {meaning}
+%D \defineinterfaceelement {name} {meaning}
+%D \stoptyping
+%D
+%D Which is the same as:
+%D
+%D \starttyping
+%D \def\c!name{meaning}
+%D \def\v!name{meaning}
+%D \def\e!name{meaning}
+%D \stoptyping
+
+\def\defineinterfaceconstant #1#2{\setvalue{\c!prefix!#1}{#2}}
+\def\defineinterfacevariable #1#2{\setvalue{\v!prefix!#1}{#2}}
+\def\defineinterfaceelement #1#2{\setvalue{\e!prefix!#1}{#2}}
+
+%D Next come some interface independant constants:
+%D
+%D \starttyping
+%D \definereferenceconstant {name} {meaning}
+%D \definefileconstant {name} {meaning}
+%D \stoptyping
+
+\def\definereferenceconstant #1#2{\setvalue{\r!prefix!#1}{#2}}
+\def\definefileconstant #1#2{\setvalue{\f!prefix!#1}{#2}}
+
+%D A new one:
+
+\def\definetypescriptconstant#1#2{\setvalue{\t!prefix!#1}{#2}}
+
+%D And finaly we have the one argument, space saving constants
+%D
+%D \starttyping
+%D \definesystemconstant {name}
+%D \definemessageconstant {name}
+%D \stoptyping
+
+\def\definesystemconstant #1{\setvalue{\s!prefix!#1}{#1}}
+\def\definemessageconstant #1{\setvalue{\m!prefix!#1}{#1}}
+
+%D In a parameter driven system, some parameters are shared
+%D by more system components. In \CONTEXT\ we can distinguish
+%D parameters by a unique prefix. Such a prefix is defined
+%D with:
+%D
+%D \starttyping
+%D \definesystemvariable {name}
+%D \stoptyping
+
+\def\definesystemvariable#1{\setevalue{\??prefix#1}{\@@prefix#1}}
+
+\definesystemvariable{ms}
+
+%D \macros
+%D {selectinterface,
+%D defaultinterface, currentinterface, currentresponses}
+%D
+%D With \type{\selectinterface} we specify the language we are
+%D going to use. The system asks for the language wanted, and
+%D defaults to \type{\currentinterface} when we just give
+%D \type{enter}. By default the message system uses the
+%D current interface language, but \type{\currentresponses}
+%D can specify another language too.
+%D
+%D Because we want to generate formats directly too, we do
+%D not ask for interface specifications when these are already
+%D defined (like in cont-nl.tex and alike).
+
+\ifx\defaultinterface\undefined
+
+ \def\defaultinterface{english}
+
+ \def\selectinterface
+ {\def\docommand##1##2%
+ {\bgroup
+ \endlinechar\minusone
+ \global\read16 to ##1
+ \egroup
+ \doifnothing\currentinterface{\let##1=##2}%
+ \doifundefined{\s!prefix!##1}{\let##1=##2}}%
+ \docommand\currentinterface\defaultinterface
+ \writestatus{interface}{defining \currentinterface\space interface}%
+ \writeline
+ \docommand\currentresponses\currentinterface
+ \writestatus{interface}{using \currentresponses\space messages}%
+ \writeline
+ \let\selectinterface\relax}
+
+\else
+
+ \def\selectinterface
+ {\writestatus{interface}{defining \currentinterface\space interface}%
+ \writeline
+ \writestatus{interface}{using \currentresponses\space messages}%
+ \writeline
+ \let\selectinterface\relax}
+
+\fi
+
+\ifx\currentinterface\undefined \let\currentinterface=\defaultinterface \fi
+\ifx\currentresponses\undefined \let\currentresponses=\defaultinterface \fi
+
+%D \macros
+%D {startinterface}
+%D
+%D Sometimes we want to define things only for specific
+%D interface languages. This can be done by means of the
+%D selector:
+%D
+%D \starttyping
+%D \startinterface language
+%D
+%D language specific definitions & commands
+%D
+%D \stopinterface
+%D \stoptyping
+
+\def\startinterface #1
+ {\doifnot{#1}{all}{\doifnotinset\currentinterface{#1}{\gobbleuntil\stopinterface}}}
+
+\let\stopinterface\relax
+
+%D \macros
+%D {startmessages,
+%D getmessage,
+%D showmessage,
+%D makemessage}
+%D
+%D A package as large as \CONTEXT\ can hardly function without
+%D a decent message mechanism. Due to its multi||lingual
+%D interface, the message subsystem has to be multi||lingual
+%D too. A major drawback of this feature is that we have to
+%D code messages. As a result, the source becomes less self
+%D documented. On the other hand, consistency will improve.
+%D
+%D Because the overhead in terms of entries in the (already
+%D exhausted) hash table has to be minimal, messages are packed
+%D in libraries. We can extract a message from such a library
+%D in three ways:
+%D
+%D \starttyping
+%D \getmessage {library} {tag}
+%D \showmessage {library} {tag} {data}
+%D \makemessage {library} {tag} {data}
+%D \stoptyping
+%D
+%D The first command gets the message \type{tag} from the
+%D \type{library} specified. The other commands take an extra
+%D argument: a list of items to be inserted in the message
+%D text. While \type{\showmessage} shows the message at the
+%D terminal, the other commands generate the message as text.
+%D Before we explain the \type{data} argument, we give an
+%D example of a library.
+%D
+%D \starttyping
+%D \startmessages english library: alfa
+%D title: something
+%D 1: first message
+%D 2: second (--) message --
+%D \stopmessages
+%D \stoptyping
+%D
+%D The first message is a simple one and can be shown with:
+%D
+%D \starttyping
+%D \showmessage {alfa} {1} {}
+%D \stoptyping
+%D
+%D The second message on the other hand needs some extra data:
+%D
+%D \starttyping
+%D \showmessage {alfa} {2} {and last,to you}
+%D \stoptyping
+%D
+%D This message is shown as:
+%D
+%D \starttyping
+%D something : second (and last) message to you
+%D \stoptyping
+%D
+%D As we can see, the title entry is shown with the message.
+%D The data fields are comma separated and are specified in the
+%D message text by \type{--}.
+%D
+%D It is not required to define all messages in a library at
+%D once. We can add messages to a library in the following way:
+%D
+%D \starttyping
+%D \startmessages english library: alfa
+%D 10: tenth message
+%D \stopmessages
+%D \stoptyping
+%D
+%D Because such definitions can take place in different
+%D modules, the system gives a warning when a tag occurs more
+%D than once. The first occurrence takes preference over later
+%D ones, so we had better use a save offset, as shown in the
+%D example. As we can see, the title field is specified only
+%D the first time!
+%D
+%D Because we want to check for duplicate tags, the macros
+%D are a bit more complicated than neccessary. The \NEWLINE\
+%D token is used as message separator.
+%D
+%D For internal purposes one can use \type {\setmessagetext},
+%D which puts the message text asked for in \type
+%D {\currentmessagetext}.
\def\findinterfacemessage#1#2%
{\let#2\empty
@@ -106,7 +438,7 @@
{\definemessageconstant{#2}% handy for modules
\bgroup
\obeylines
- \doifundefined{\m!prefix!#2}{\setgvalue{\m!prefix!#2}{#2}}%
+ \ifcsname\m!prefix!#2\endcsname\else\setgvalue{\m!prefix!#2}{#2}\fi
\doifinsetelse{#1}{\currentresponses,all}
{\def\next
{\def\currentmessagelibrary{#2}%
@@ -128,4 +460,476 @@
\setxvalue{\??ms\currentmessagelibrary#1}{#2}%
\futurelet\next\getinterfacemessage}
+\def\setinterfacemessage#1#2#3%
+ {\ifcsname\m!prefix!#1\endcsname\else\setgvalue{\m!prefix!#1}{#1}\fi
+ \expandafter\def\csname\??ms#1#2\endcsname{#3}}
+
+%D \macros
+%D {ifshowwarnings, ifshowmessages}
+%D
+%D Sometimes displaying message can slow down processing
+%D considerably. We therefore introduce warnings. Users can
+%D turn of warnings and messages by saying:
+%D
+%D \starttyping
+%D \showwarningstrue
+%D \showmessagestrue
+%D \stoptyping
+%D
+%D Turning off messages also turns off warnings, which is
+%D quote logical because they are less important.
+
+% not yet mkiv
+
+\newif\ifshowwarnings \showwarningstrue
+\newif\ifshowmessages \showmessagestrue
+
+\let\normalshowmessage\showmessage
+
+\def\showwarning
+ {\ifshowwarnings
+ \expandafter\showmessage
+ \else
+ \expandafter\gobblethreearguments
+ \fi}
+
+\def\showmessage
+ {\ifshowmessages
+ \expandafter\normalshowmessage
+ \else
+ \expandafter\gobblethreearguments
+ \fi}
+
+%D \macros
+%D {dosetvalue,dosetevalue,dosetgvalue,dosetxvalue,docopyvalue,doresetvalue} % dogetvalue
+%D
+%D We already defined these auxiliary macros in the system
+%D modules. Starting with this module however, we have to take
+%D multi||linguality a bit more serious.
+
+\def\doresetvalue#1#2%
+ {\dosetvalue{#1}{#2}{}}
+
+\def\doignorevalue#1#2#3%
+ {\dosetvalue{#1}{#2}{}}
+
+\def\dosetvalue#1#2%
+ {\let\c!internal!\c!internal!n
+ \ifcsname\k!prefix!#2\endcsname
+ \let\c!internal!\c!internal!y
+ \@EA\def\csname#1\csname\k!prefix!#2\endcsname%\endcsname
+ \else
+ \let\c!internal!\c!internal!y
+ \@EA\def\csname#1#2%\endcsname
+ \fi\endcsname}
+
+\def\dosetevalue#1#2%
+ {\let\c!internal!\c!internal!n
+ \ifcsname\k!prefix!#2\endcsname
+ \let\c!internal!\c!internal!y
+ \@EA\edef\csname#1\csname\k!prefix!#2\endcsname%\endcsname
+ \else
+ \let\c!internal!\c!internal!y
+ \@EA\edef\csname#1#2%\endcsname
+ \fi\endcsname}
+
+\def\dosetgvalue#1#2%
+ {\let\c!internal!\c!internal!n
+ \ifcsname\k!prefix!#2\endcsname
+ \let\c!internal!\c!internal!y
+ \@EA\gdef\csname#1\csname\k!prefix!#2\endcsname%\endcsname
+ \else
+ \let\c!internal!\c!internal!y
+ \@EA\gdef\csname#1#2%\endcsname
+ \fi\endcsname}
+
+\def\dosetxvalue#1#2%
+ {\let\c!internal!\c!internal!n
+ \ifcsname\k!prefix!#2\endcsname
+ \let\c!internal!\c!internal!y
+ \@EA\xdef\csname#1\csname\k!prefix!#2\endcsname%\endcsname
+ \else
+ \let\c!internal!\c!internal!y
+ \@EA\xdef\csname#1#2%\endcsname
+ \fi\endcsname}
+
+\def\docopyvalue#1#2#3% real tricky expansion, quite unreadable
+ {\let\c!internal!\c!internal!n
+ \ifcsname\k!prefix!#3\endcsname
+ \let\c!internal!\c!internal!y
+ \@EA\def\csname#1\csname\k!prefix!#3\endcsname
+ \@EA\endcsname\@EA{\csname#2\csname\k!prefix!#3\endcsname\endcsname}%
+ \else
+ \let\c!internal!\c!internal!y
+ \@EA\def\csname#1#3\@EA\endcsname\@EA{\csname#2#3\endcsname}%
+ \fi}
+
+%D We can now redefine some messages that will be
+%D introduced in the multi||lingual system module.
+
+\def\showassignerror #1#2{\showmessage\m!check1{#1,#2}\waitonfatalerror}
+\def\showargumenterror#1#2{\showmessage\m!check2{#1,#2}\waitonfatalerror}
+\def\showdefinederror #1#2{\showmessage\m!check3{#1,#2}\waitonfatalerror}
+
+%D \CONTEXT\ is a parameter driven package. This means that
+%D users instruct the system by means of variables, values and
+%D keywords. These instructions take the form:
+%D
+%D \starttyping
+%D \setupsomething[some variable=some value, another one=a keyword]
+%D \stoptyping
+%D
+%D or by keyword only:
+%D
+%D \starttyping
+%D \dosomething[this way,that way,no way]
+%D \stoptyping
+%D
+%D Because the same variables can occur in more than one setup
+%D command, we have to be able to distinguish them. This is
+%D achieved by assigning them a unique prefix.
+%D
+%D Imagine a setup command for boxed text, that enables us to
+%D specify the height and width of the box. Behide the scenes
+%D the command
+%D
+%D \starttyping
+%D \setupbox [width=12cm, height=3cm]
+%D \stoptyping
+%D
+%D results in something like
+%D
+%D \starttyping
+%D \<box><width> {12cm}
+%D \<box><height> {3cm}
+%D \stoptyping
+%D
+%D while a similar command for specifying the page dimensions
+%D of an \cap{A4} page results in:
+%D
+%D \starttyping
+%D \<page><width> {21.0cm}
+%D \<page><height> {27.9cm}
+%D \stoptyping
+%D
+%D The prefixes \type{<box>} and \type{<page>} are hidden from
+%D users and can therefore be language independant. Variables
+%D on the other hand, differ for each language:
+%D
+%D \starttyping
+%D \<box><color> {<blue>}
+%D \<box><kleur> {<blauw>}
+%D \<box><couleur> {<blue>}
+%D \stoptyping
+%D
+%D In this example we can see that the assigned values or
+%D keywords are language dependant too. This will be a
+%D complication when defining multi||lingual setup files.
+%D
+%D A third phenomena is that variables and values can have a
+%D similar meaning.
+%D
+%D \starttyping
+%D \<pagenumber><location> {<left>}
+%D \<skip><left> {12cm}
+%D \stoptyping
+%D
+%D A (minor) complication is that where in english we use
+%D \type{<left>}, in dutch we find both \type{<links>} and
+%D \type{<linker>}. This means that when we use some sort of
+%D translation table, we have to distinguish between the
+%D variables at the left side and the fixed values at the
+%D right.
+%D
+%D The same goes for commands that are composed of different
+%D user supplied and/or language specific elements. In english
+%D we can use:
+%D
+%D \starttyping
+%D \<empty><figure>
+%D \<empty><intermezzo>
+%D \stoptyping
+%D
+%D But in dutch we have the following:
+%D
+%D \starttyping
+%D \<lege><figuur>
+%D \<leeg><intermezzo>
+%D \stoptyping
+%D
+%D These subtle differences automatically lead to a solution
+%D where variables, values, elements and other components have
+%D a similar logical name (used in macro's) but a different
+%D meaning (supplied by the user).
+%D
+%D Our solution is one in which the whole system is programmed
+%D in terms of identifiers with language specific meanings. In
+%D such an implementation, each fixed variable is available as:
+%D
+%D \starttyping
+%D \<prefix><variable>
+%D \stoptyping
+%D
+%D This means that for instance:
+%D
+%D \starttyping
+%D \setupbox[width=12cm]
+%D \stoptyping
+%D
+%D expands to something like:
+%D
+%D \starttyping
+%D \def\boxwidth{12cm}
+%D \stoptyping
+%D
+%D because we don't want to recode the source, a setup command
+%D in another language has to expand to this variable, so:
+%D
+%D \starttyping
+%D \setupblock[width=12cm]
+%D \stoptyping
+%D
+%D has to result in the definition of \type{\boxwidth} too.
+%D This method enables us to build compact, fast and readable
+%D code.
+%D
+%D An alternative method, which we considered using, uses a
+%D more indirect way. In this case, both calls generate a
+%D different variable:
+%D
+%D \starttyping
+%D \def\boxwidth {12cm}
+%D \def\boxbreedte {12cm}
+%D \stoptyping
+%D
+%D And because we don't want to recode those megabytes of
+%D already developed code, this variable has to be called with
+%D something like:
+%D
+%D \starttyping
+%D \valueof\box\width
+%D \stoptyping
+%D
+%D where \type{\valueof} takes care of the translation of
+%D \type{width} or \type{breedte} to \type{width} and
+%D combining this with \type{box} to \type{\boxwidth}.
+%D
+%D One advantage of this other scheme is that, within certain
+%D limits, we can implement an interface that can be switched
+%D to another language at will, while the current approach
+%D fixes the interface at startup. There are, by the way,
+%D other reasons too for not choosing this scheme. Switching
+%D user generated commands is for instance impossible and a
+%D dual interface would therefore give a strange mix of
+%D languages.
+%D
+%D Now let's work out the first scheme. Although the left hand
+%D of the assignment is a variable from the users point of
+%D view, it is a constant in terms of the system. Both
+%D \type{width} and \type{breedte} expand to \type{width}
+%D because in the source we only encounter \type{width}. Such
+%D system constants are presented as
+%D
+%D \starttyping
+%D \c!width
+%D \stoptyping
+%D
+%D This constant is always equivalent to \type{width}. As we
+%D can see, we use \type{c!} to mark this one as constant. Its
+%D dutch counterpart is:
+%D
+%D \starttyping
+%D breedte
+%D \stoptyping
+%D
+%D When we interpret a setup command each variable is
+%D translated to it's \type{c!} counterpart. This means that
+%D \type{breedte} and \type{width} expand to \type{breedte}
+%D and \type{\c!width} which both expand to \type{width}. That
+%D way user variables become system constants.
+%D
+%D The interpretation is done by means of a general setup
+%D command \type{\getparameters} that we introduced in the
+%D system module. Let us define some simple setup command:
+%D
+%D \starttyping
+%D \def\setupbox[#1]%
+%D {\getparameters[\??bx][#1]}
+%D \stoptyping
+%D
+%D This command can be used as:
+%D
+%D \starttyping
+%D \setupbox [width=3cm, height=1cm]
+%D \stoptyping
+%D
+%D Afterwards we have two variables \type{\@@bxwidth} and
+%D \type{\@@bxheight} which have the values \type{3cm} and
+%D \type{1cm} assigned. These variables are a combinatiom of
+%D the setup prefix \type{\??bx}, which expands to \type{@@bx}
+%D and the translated user supplied variables \type{width} and
+%D \type{height} or \type{breedte} and \type{hoogte},
+%D depending on the actual language. In dutch we just say:
+%D
+%D \starttyping
+%D \setupblock [width=3cm, height=1cm]
+%D \stoptyping
+%D
+%D and get ourselves \type{\@@bxwidth} and \type{\@@bxheight}
+%D too. In the source of \CONTEXT, we can recognize constants
+%D and variables on their leading \type{c!}, \type{v!} etc.,
+%D prefixes on \type{??} and composed variables on \type{@@}.
+%D
+%D We already saw that user supplied keywords need some
+%D special treatment too. This time we don't translate the
+%D keyword, but instead use in the source a variable which
+%D meaning depends on the interface language.
+%D
+%D \starttyping
+%D \v!left
+%D \stoptyping
+%D
+%D Which can be used in macro's like:
+%D
+%D \starttyping
+%D \processaction
+%D [\@@bxlocation]
+%D [ \v!left=>\dosomethingontheleft,
+%D \v!middle=>\dosomthinginthemiddle,
+%D \v!right=>\dosomethingontheright]
+%D \stoptyping
+%D
+%D Because variables like \type{\@@bxlocation} can have a lot
+%D of meanings, including tricky expandable tokens, we cannot
+%D translate this meaning when we compare. This means that
+%D \type{\@@bxlocation} can be \type{left} of \type{links} of
+%D whatever meaning suits the language. But because
+%D \type{\v!left} also has a meaning that suits the language,
+%D we are able to compare.
+%D
+%D Although we know it sounds confusing we want to state two
+%D important characteristics of the interface as described:
+%D
+%D \startnarrower \em
+%D user variables become system constants
+%D \stopnarrower
+%D
+%D and
+%D
+%D \startnarrower \em
+%D user constants (keywords) become system variables
+%D \stopnarrower
+%D
+
+%D Anno 2003 I've forgotten why the \type {\c!internal} is
+%D still in there; it's probably a left over from an experiment.
+
+\let\c!internal!y \string
+\def\c!internal!n {-}
+\let\c!internal! \c!internal!y
+
+\def\setinterfaceconstant#1#2%
+ {\setvalue{\c!prefix!#1}{\c!internal!#1}%
+ \setvalue{\k!prefix!#2}{#1}}
+
+\def\setinterfacevariable#1#2%
+ {\setvalue{\v!prefix!#1}{#2}}
+
+%D \macros
+%D {defineinterfaceconstant}
+%D
+%D Next we redefine a previously defined macro to take care of
+%D interface translation too. It's a bit redundant, because
+%D in these situations we could use the c||version, but for
+%D documentation purposes the x||alternative comes in handy.
+
+\def\defineinterfaceconstant#1#2%
+ {\setvalue{\c!prefix!#1}{#2}}
+
+%D \macros
+%D {startelements}
+%D
+%D Due to the object oriented nature of \CONTEXT, we also need
+%D to define the elements that are used to build commands.
+%D
+%D Such elements sometimes are the same in diferent
+%D languages, but mostly they differ. Things can get even
+%D confusing when we look at for instance the setup commands.
+%D In english we say \type{\setup<something>}, but in dutch we
+%D have: \type{\stel<iets>in}. Such split elements are no
+%D problem, because we just define two elements. When no second
+%D part is needed, we use a \type{-}:
+
+\def\setinterfaceelement#1#2%
+ {\ifcsname\e!prefix!#1\endcsname
+ \doifnotvalue{\e!prefix!#1}{#2}{\setvalue{\e!prefix!#1}{#2}}%
+ \else
+ \setvalue{\e!prefix!#1}{#2}%
+ \fi}
+
+\def\setinterfacecommand#1#2%
+ {\doifnot{#1}{#2}{\@EA\def\csname#2\@EA\endcsname\@EA{\csname#1\endcsname}}}% or just \let ?
+
+%D We just ignore these:
+
+\def\startvariables{\gobbleuntil\stopvariables}
+\def\startconstants{\gobbleuntil\stopconstants}
+\def\startelements {\gobbleuntil\stopelements}
+\def\startcommands {\gobbleuntil\stopcommands}
+
+%D \macros
+%D {interfaced}
+%D
+%D The setup commands translate the constants automatically.
+%D When we want to translate 'by hand' we can use the simple
+%D but effective command:
+%D
+%D \starttyping
+%D \interfaced {something}
+%D \stoptyping
+%D
+%D Giving \type{\interfaced{breedte}} results in \type{width}
+%D or, when not defined, in \type{breedte} itself. This
+%D macro is used in the font switching mechanism.
+
+\def\interfaced#1%
+ {\ifcsname\k!prefix!#1\endcsname
+ \csname\k!prefix!#1\endcsname
+ \else
+ #1%
+ \fi}
+
+%D So much for the basic multi||lingual interface commands. The
+%D macro's can be enhanced with more testing facilities, but
+%D for the moment they suffice.
+
+%D Out of convenience we define the banners here.
+
+\def\contextbanner
+ {ConTeXt \space
+ ver: \contextversion \space \contextmark \space \space
+ fmt: \formatversion \space \space
+ int: \currentinterface/\currentresponses}
+
+\def\showcontextbanner
+ {\writeline\writebanner{\contextbanner}\writeline}
+
+\edef\formatversion
+ {\the\normalyear.\the\normalmonth.\the\normalday}
+
+\ifx\contextversion\undefined
+ \def\contextversion {unknown}
+ \def\contextversionnumber{0}
+\else
+ \def\contextversionnumber#1.#2.#3 #4:#5\relax{#1\ifnum#2<10 0\fi#2\ifnum#3<10 0\fi#3 #4:#5}
+ \edef\contextversionnumber{\expandafter\contextversionnumber\contextversion\relax\space\contextmark}
+\fi
+
+\ifx\undefined\everydump
+ \newtoks\everydump
+ \def\dump{\the\everydump\normaldump}
+\fi
+
+\appendtoks \showcontextbanner \to \everydump
+
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mult-ini.mkiv b/Master/texmf-dist/tex/context/base/mult-ini.mkiv
index e785624f513..5033a523336 100644
--- a/Master/texmf-dist/tex/context/base/mult-ini.mkiv
+++ b/Master/texmf-dist/tex/context/base/mult-ini.mkiv
@@ -1,6 +1,6 @@
%D \module
%D [ file=mult-ini,
-%D version=2008.02.15,
+%D version=2008.10.22, % 1996.06.01,
%D title=\CONTEXT\ Multilingual Macros,
%D subtitle=Initialization,
%D author=Hans Hagen,
@@ -11,31 +11,839 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+%D This module is a stripped down version of \type {mult-ini.tex},
+%D which we keep around as \type {mult-kep.tex} for sentimental
+%D reasons. There you will find some more historic information.
+
+\writestatus{loading}{ConTeXt Multilingual Macros / Initialization}
+
\unprotect
\registerctxluafile{mult-ini}{1.001}
+%D \macros
+%D [constanten,variabelen,commands]
+%D {v!,c!,k!,s!,e!,m!,l!,r!,f!,p!,x!,y!}
+%D
+%D In the system modules we introduced some prefixed constants,
+%D variables (both macros) and registers. Apart from a
+%D tremendous saving in terms of memory and a gain in speed we
+%D use from now on prefixes when possible for just another
+%D reason: consistency and multi||linguality. Systematically
+%D using prefixed macros enables us to implement a
+%D multi||lingual user interface. Redefining these next set of
+%D prefixes therefore can have desastrous results.
+%D
+%D \startlinecorrection
+%D \starttable[|c|c|c|]
+%D \HL
+%D \NC \bf prefix \NC \bf meaning \NC \bf application \NC\SR
+%D \HL
+%D \NC \type{\c!prefix!} \NC c! \NC constant (direct) \NC\FR
+%D \NC \type{\e!prefix!} \NC e! \NC element \NC\MR
+%D \NC \type{\f!prefix!} \NC f! \NC file \NC\MR
+%D \NC \type{\k!prefix!} \NC k! \NC constant (indirect) \NC\MR
+%D \NC \type{\l!prefix!} \NC l! \NC language \NC\MR
+%D \NC \type{\m!prefix!} \NC m! \NC message \NC\MR
+%D \NC \type{\p!prefix!} \NC p! \NC procedure \NC\MR
+%D \NC \type{\r!prefix!} \NC r! \NC reference \NC\MR
+%D \NC \type{\s!prefix!} \NC s! \NC system \NC\MR
+%D \NC \type{\v!prefix!} \NC v! \NC variable \NC\MR
+%D \HL
+%D \stoptable
+%D \stoplinecorrection
+%D
+%D In the single||lingual version we used \type{!}, \type{!!},
+%D \type{!!!} and \type{!!!!}.
+
+\def\c!prefix!{c!} \def\e!prefix!{e!} \def\f!prefix!{f!}
+\def\k!prefix!{k!} \def\l!prefix!{l!} \def\m!prefix!{m!}
+\def\p!prefix!{p!} \def\r!prefix!{r!} \def\s!prefix!{s!}
+\def\v!prefix!{v!} \def\t!prefix!{t!}
+
+%D \macros
+%D [constants,variables,commands]
+%D {@@,??}
+%D
+%D Variables generated by the system can be recognized on their
+%D prefix \type{@@}. They are composed of a command (class)
+%D specific tag, which can be recognized on \type{??}, and a
+%D system constant, which has the prefix \type{c!}. We'll se
+%D some more of this.
+
+\def\??prefix {??}
+\def\@@prefix {@@}
+
+%D Just to be complete we repeat some of the already defined
+%D system constants here. Maybe their prefix \type{\s!} now
+%D falls into place.
+
+\def\s!next {next} \def\s!default {default}
+\def\s!dummy {dummy} \def\s!unknown {unknown}
+
+\def\s!do {do} \def\s!dodo {dodo}
+
+\def\s!complex {complex} \def\s!start {start}
+\def\s!simple {simple} \def\s!stop {stop}
+
+\def\s!true {true}
+\def\s!false {false}
+
+%D The word \type{height} takes 6~token memory cells. The
+%D control sequence \type{\height} on the other hand uses only
+%D one. Knowing this, we can improve the performance of \TEX,
+%D both is terms of speed and memory usage, by using control
+%D sequences instead of the words written in full.
+%D
+%D Where in the \ASCII\ file the second lines takes nine extra
+%D characters, \TEX\ saves us 13~tokens.
+%D
+%D \starttyping
+%D \hrule width 10pt height 2pt depth 1pt
+%D \hrule \!!width 10pt \!!height 2pt \!!depth 1pt
+%D \stoptyping
+%D
+%D One condition is that we have defined \type{\!!height},
+%D \type{\!!width} and \type{\!!depth} as respectively
+%D \type{height}, \type{width} and \type{depth}. Using this
+%D scheme therefore only makes sense when a token sequence is
+%D used more than once. Savings like this should of course be
+%D implemented in english, just because \TEX\ is english.
+
+\def\!!width {width}
+\def\!!height{height}
+\def\!!depth {depth}
+\def\!!plus {plus}
+\def\!!minus {minus}
+\def\!!fill {fill}
+\def\!!to {to}
+\def\!!spread{spread}
+
+%D \macros
+%D {defineinterfaceconstant,
+%D defineinterfacevariable,
+%D defineinterfaceelement,
+%D definesystemvariable,
+%D definesystemconstant,
+%D definemessageconstant,
+%D definereferenceconstant,
+%D definefileconstant}
+%D
+%D The first part of this module is dedicated to dealing with
+%D multi||lingual constants and variables. When \CONTEXT\ grew
+%D bigger and bigger in terms of bytes and used string space,
+%D we switched to predefined constants. At the cost of more
+%D hash table entries, the macros not only becase more compact,
+%D they became much faster too. Maybe an even bigger advantage
+%D was that mispelling could no longer lead to problems. Even a
+%D multi||lingual interface became possible.
+%D
+%D Constants --- we'll introduce the concept of variables later
+%D on --- are preceded by a type specific prefix, followed by a
+%D \type{!}. To force consistency, we provide a few commands
+%D for defining such constants.
+%D
+%D \starttyping
+%D \defineinterfaceconstant {name} {meaning}
+%D \defineinterfacevariable {name} {meaning}
+%D \defineinterfaceelement {name} {meaning}
+%D \stoptyping
+%D
+%D Which is the same as:
+%D
+%D \starttyping
+%D \def\c!name{meaning}
+%D \def\v!name{meaning}
+%D \def\e!name{meaning}
+%D \stoptyping
+
+\def\defineinterfaceconstant #1#2{\setvalue{\c!prefix!#1}{#2}}
+\def\defineinterfacevariable #1#2{\setvalue{\v!prefix!#1}{#2}}
+\def\defineinterfaceelement #1#2{\setvalue{\e!prefix!#1}{#2}}
+
+%D Next come some interface independant constants:
+%D
+%D \starttyping
+%D \definereferenceconstant {name} {meaning}
+%D \definefileconstant {name} {meaning}
+%D \stoptyping
+
+\def\definereferenceconstant #1#2{\setvalue{\r!prefix!#1}{#2}}
+\def\definefileconstant #1#2{\setvalue{\f!prefix!#1}{#2}}
+
+%D A new one:
+
+\def\definetypescriptconstant#1#2{\setvalue{\t!prefix!#1}{#2}}
+
+%D And finaly we have the one argument, space saving constants
+%D
+%D \starttyping
+%D \definesystemconstant {name}
+%D \definemessageconstant {name}
+%D \stoptyping
+
+\def\definesystemconstant #1{\setvalue{\s!prefix!#1}{#1}}
+\def\definemessageconstant #1{\setvalue{\m!prefix!#1}{#1}}
+
+%D In a parameter driven system, some parameters are shared
+%D by more system components. In \CONTEXT\ we can distinguish
+%D parameters by a unique prefix. Such a prefix is defined
+%D with:
+%D
+%D \starttyping
+%D \definesystemvariable {name}
+%D \stoptyping
+
+\def\definesystemvariable#1{\setevalue{\??prefix#1}{\@@prefix#1}}
+
+\definesystemvariable{ms}
+
+%D \macros
+%D {selectinterface,
+%D defaultinterface, currentinterface, currentresponses}
+%D
+%D With \type{\selectinterface} we specify the language we are
+%D going to use. The system asks for the language wanted, and
+%D defaults to \type{\currentinterface} when we just give
+%D \type{enter}. By default the message system uses the
+%D current interface language, but \type{\currentresponses}
+%D can specify another language too.
+%D
+%D Because we want to generate formats directly too, we do
+%D not ask for interface specifications when these are already
+%D defined (like in cont-nl.tex and alike).
+
+\ifx\defaultinterface\undefined
+
+ \def\defaultinterface{english}
+
+ \def\selectinterface
+ {\def\docommand##1##2%
+ {\bgroup
+ \endlinechar\minusone
+ \global\read16 to ##1
+ \egroup
+ \doifnothing\currentinterface{\let##1=##2}%
+ \doifundefined{\s!prefix!##1}{\let##1=##2}}%
+ \docommand\currentinterface\defaultinterface
+ \writestatus{interface}{defining \currentinterface\space interface}%
+ \writeline
+ \docommand\currentresponses\currentinterface
+ \writestatus{interface}{using \currentresponses\space messages}%
+ \writeline
+ \let\selectinterface\relax}
+
+\else
+
+ \def\selectinterface
+ {\writestatus{interface}{defining \currentinterface\space interface}%
+ \writeline
+ \writestatus{interface}{using \currentresponses\space messages}%
+ \writeline
+ \let\selectinterface\relax}
+
+\fi
+
+\ifx\currentinterface\undefined \let\currentinterface\defaultinterface \fi
+\ifx\currentresponses\undefined \let\currentresponses\defaultinterface \fi
+
+%D \macros
+%D {startinterface}
+%D
+%D Sometimes we want to define things only for specific
+%D interface languages. This can be done by means of the
+%D selector:
+%D
+%D \starttyping
+%D \startinterface language
+%D
+%D language specific definitions & commands
+%D
+%D \stopinterface
+%D \stoptyping
+
+\def\startinterface #1
+ {\doifnot{#1}{all}{\doifnotinset\currentinterface{#1}{\gobbleuntil\stopinterface}}}
+
+\let\stopinterface\relax
+
+%D \macros
+%D {startmessages,
+%D getmessage,
+%D showmessage,
+%D makemessage}
+%D
+%D A package as large as \CONTEXT\ can hardly function without
+%D a decent message mechanism. Due to its multi||lingual
+%D interface, the message subsystem has to be multi||lingual
+%D too. A major drawback of this feature is that we have to
+%D code messages. As a result, the source becomes less self
+%D documented. On the other hand, consistency will improve.
+%D
+%D Because the overhead in terms of entries in the (already
+%D exhausted) hash table has to be minimal, messages are packed
+%D in libraries. We can extract a message from such a library
+%D in three ways:
+%D
+%D \starttyping
+%D \getmessage {library} {tag}
+%D \showmessage {library} {tag} {data}
+%D \makemessage {library} {tag} {data}
+%D \stoptyping
+%D
+%D The first command gets the message \type{tag} from the
+%D \type{library} specified. The other commands take an extra
+%D argument: a list of items to be inserted in the message
+%D text. While \type{\showmessage} shows the message at the
+%D terminal, the other commands generate the message as text.
+%D Before we explain the \type{data} argument, we give an
+%D example of a library.
+%D
+%D \starttyping
+%D \startmessages english library: alfa
+%D title: something
+%D 1: first message
+%D 2: second (--) message --
+%D \stopmessages
+%D \stoptyping
+%D
+%D The first message is a simple one and can be shown with:
+%D
+%D \starttyping
+%D \showmessage {alfa} {1} {}
+%D \stoptyping
+%D
+%D The second message on the other hand needs some extra data:
+%D
+%D \starttyping
+%D \showmessage {alfa} {2} {and last,to you}
+%D \stoptyping
+%D
+%D This message is shown as:
+%D
+%D \starttyping
+%D something : second (and last) message to you
+%D \stoptyping
+%D
+%D As we can see, the title entry is shown with the message.
+%D The data fields are comma separated and are specified in the
+%D message text by \type{--}.
+%D
+%D It is not required to define all messages in a library at
+%D once. We can add messages to a library in the following way:
+%D
+%D \starttyping
+%D \startmessages english library: alfa
+%D 10: tenth message
+%D \stopmessages
+%D \stoptyping
+%D
+%D Because such definitions can take place in different
+%D modules, the system gives a warning when a tag occurs more
+%D than once. The first occurrence takes preference over later
+%D ones, so we had better use a save offset, as shown in the
+%D example. As we can see, the title field is specified only
+%D the first time!
+%D
+%D Because we want to check for duplicate tags, the macros
+%D are a bit more complicated than neccessary. The \NEWLINE\
+%D token is used as message separator.
+%D
+%D For internal purposes one can use \type {\setmessagetext},
+%D which puts the message text asked for in \type
+%D {\currentmessagetext}.
+
\def\startmessages #1 library: #2 %
{\bgroup
- \doifundefined{\m!prefix!#2}{\setgvalue{\m!prefix!#2}{#2}}%
+ \ifcsname\m!prefix!#2\endcsname\else\setgvalue{\m!prefix!#2}{#2}\fi
\catcode13=\active
\doifinsetelse{#1}{\currentresponses,all}\dostartmessages\nostartmessages{#2}}
\def\dostartmessages#1#2\stopmessages
- {\ctxlua{interfaces.setmessage("#1",[[#2]])}%
+ {\ctxlua{interfaces.setmessages("#1",\!!bs#2\!!es)}%
\egroup}
\def\nostartmessages#1#2\stopmessages
{\egroup}
+\def\setinterfacemessage#1#2#3%
+ {\ifcsname\m!prefix!#1\endcsname\else\setgvalue{\m!prefix!#1}{#1}\fi
+ \ctxlua{interfaces.setmessage("#1","#2",\!!bs#3\!!es)}}
+
\unexpanded\def\setmessagetext #1#2{\edef\currentmessagetext{\ctxlua{tex.sprint(tex.ctxcatcodes,interfaces.getmessage("#1","#2"))}}}
\unexpanded\def\getmessage #1#2{\ctxlua{tex.sprint(tex.ctxcatcodes,interfaces.getmessage("#1","#2"))}}
\unexpanded\def\makemessage #1#2#3{\ctxlua{tex.sprint(tex.ctxcatcodes,interfaces.makemessage("#1","#2","#3"))}}
\unexpanded\def\showmessage #1#2#3{\ctxlua{interfaces.showmessage("#1","#2","#3")}}
-%D This way we also have the keywords at the lua end:
+%D \macros
+%D {ifshowwarnings, ifshowmessages}
+%D
+%D Sometimes displaying message can slow down processing
+%D considerably. We therefore introduce warnings. Users can
+%D turn of warnings and messages by saying:
+%D
+%D \starttyping
+%D \showwarningstrue
+%D \showmessagestrue
+%D \stoptyping
+%D
+%D Turning off messages also turns off warnings, which is
+%D quote logical because they are less important.
+
+% not yet mkiv
+
+\newif\ifshowwarnings \showwarningstrue
+\newif\ifshowmessages \showmessagestrue
+
+\let\normalshowmessage\showmessage
+
+\def\showwarning
+ {\ifshowwarnings
+ \expandafter\showmessage
+ \else
+ \expandafter\gobblethreearguments
+ \fi}
+
+\def\showmessage
+ {\ifshowmessages
+ \expandafter\normalshowmessage
+ \else
+ \expandafter\gobblethreearguments
+ \fi}
+
+%D \macros
+%D {dosetvalue,dosetevalue,dosetgvalue,dosetxvalue,docopyvalue,doresetvalue} % dogetvalue
+%D
+%D We already defined these auxiliary macros in the system
+%D modules. Starting with this module however, we have to take
+%D multi||linguality a bit more serious.
+
+\def\doresetvalue#1#2%
+ {\dosetvalue{#1}{#2}{}}
+
+\def\doignorevalue#1#2#3%
+ {\dosetvalue{#1}{#2}{}}
+
+\def\dosetvalue#1#2%
+ {\let\c!internal!\c!internal!n
+ \ifcsname\k!prefix!#2\endcsname
+ \let\c!internal!\c!internal!y
+ \@EA\def\csname#1\csname\k!prefix!#2\endcsname%\endcsname
+ \else
+ \let\c!internal!\c!internal!y
+ \@EA\def\csname#1#2%\endcsname
+ \fi\endcsname}
+
+\def\dosetevalue#1#2%
+ {\let\c!internal!\c!internal!n
+ \ifcsname\k!prefix!#2\endcsname
+ \let\c!internal!\c!internal!y
+ \@EA\edef\csname#1\csname\k!prefix!#2\endcsname%\endcsname
+ \else
+ \let\c!internal!\c!internal!y
+ \@EA\edef\csname#1#2%\endcsname
+ \fi\endcsname}
+
+\def\dosetgvalue#1#2%
+ {\let\c!internal!\c!internal!n
+ \ifcsname\k!prefix!#2\endcsname
+ \let\c!internal!\c!internal!y
+ \@EA\gdef\csname#1\csname\k!prefix!#2\endcsname%\endcsname
+ \else
+ \let\c!internal!\c!internal!y
+ \@EA\gdef\csname#1#2%\endcsname
+ \fi\endcsname}
+
+\def\dosetxvalue#1#2%
+ {\let\c!internal!\c!internal!n
+ \ifcsname\k!prefix!#2\endcsname
+ \let\c!internal!\c!internal!y
+ \@EA\xdef\csname#1\csname\k!prefix!#2\endcsname%\endcsname
+ \else
+ \let\c!internal!\c!internal!y
+ \@EA\xdef\csname#1#2%\endcsname
+ \fi\endcsname}
+
+\def\docopyvalue#1#2#3% real tricky expansion, quite unreadable
+ {\let\c!internal!\c!internal!n
+ \ifcsname\k!prefix!#3\endcsname
+ \let\c!internal!\c!internal!y
+ \@EA\def\csname#1\csname\k!prefix!#3\endcsname
+ \@EA\endcsname\@EA{\csname#2\csname\k!prefix!#3\endcsname\endcsname}%
+ \else
+ \let\c!internal!\c!internal!y
+ \@EA\def\csname#1#3\@EA\endcsname\@EA{\csname#2#3\endcsname}%
+ \fi}
+
+%D We can now redefine some messages that will be
+%D introduced in the multi||lingual system module.
+
+\def\showassignerror #1#2{\showmessage\m!check1{#1,#2}\waitonfatalerror}
+\def\showargumenterror#1#2{\showmessage\m!check2{#1,#2}\waitonfatalerror}
+\def\showdefinederror #1#2{\showmessage\m!check3{#1,#2}\waitonfatalerror}
+
+%D \CONTEXT\ is a parameter driven package. This means that
+%D users instruct the system by means of variables, values and
+%D keywords. These instructions take the form:
+%D
+%D \starttyping
+%D \setupsomething[some variable=some value, another one=a keyword]
+%D \stoptyping
+%D
+%D or by keyword only:
+%D
+%D \starttyping
+%D \dosomething[this way,that way,no way]
+%D \stoptyping
+%D
+%D Because the same variables can occur in more than one setup
+%D command, we have to be able to distinguish them. This is
+%D achieved by assigning them a unique prefix.
+%D
+%D Imagine a setup command for boxed text, that enables us to
+%D specify the height and width of the box. Behide the scenes
+%D the command
+%D
+%D \starttyping
+%D \setupbox [width=12cm, height=3cm]
+%D \stoptyping
+%D
+%D results in something like
+%D
+%D \starttyping
+%D \<box><width> {12cm}
+%D \<box><height> {3cm}
+%D \stoptyping
+%D
+%D while a similar command for specifying the page dimensions
+%D of an \cap{A4} page results in:
+%D
+%D \starttyping
+%D \<page><width> {21.0cm}
+%D \<page><height> {27.9cm}
+%D \stoptyping
+%D
+%D The prefixes \type{<box>} and \type{<page>} are hidden from
+%D users and can therefore be language independant. Variables
+%D on the other hand, differ for each language:
+%D
+%D \starttyping
+%D \<box><color> {<blue>}
+%D \<box><kleur> {<blauw>}
+%D \<box><couleur> {<blue>}
+%D \stoptyping
+%D
+%D In this example we can see that the assigned values or
+%D keywords are language dependant too. This will be a
+%D complication when defining multi||lingual setup files.
+%D
+%D A third phenomena is that variables and values can have a
+%D similar meaning.
+%D
+%D \starttyping
+%D \<pagenumber><location> {<left>}
+%D \<skip><left> {12cm}
+%D \stoptyping
+%D
+%D A (minor) complication is that where in english we use
+%D \type{<left>}, in dutch we find both \type{<links>} and
+%D \type{<linker>}. This means that when we use some sort of
+%D translation table, we have to distinguish between the
+%D variables at the left side and the fixed values at the
+%D right.
+%D
+%D The same goes for commands that are composed of different
+%D user supplied and/or language specific elements. In english
+%D we can use:
+%D
+%D \starttyping
+%D \<empty><figure>
+%D \<empty><intermezzo>
+%D \stoptyping
+%D
+%D But in dutch we have the following:
+%D
+%D \starttyping
+%D \<lege><figuur>
+%D \<leeg><intermezzo>
+%D \stoptyping
+%D
+%D These subtle differences automatically lead to a solution
+%D where variables, values, elements and other components have
+%D a similar logical name (used in macro's) but a different
+%D meaning (supplied by the user).
+%D
+%D Our solution is one in which the whole system is programmed
+%D in terms of identifiers with language specific meanings. In
+%D such an implementation, each fixed variable is available as:
+%D
+%D \starttyping
+%D \<prefix><variable>
+%D \stoptyping
+%D
+%D This means that for instance:
+%D
+%D \starttyping
+%D \setupbox[width=12cm]
+%D \stoptyping
+%D
+%D expands to something like:
+%D
+%D \starttyping
+%D \def\boxwidth{12cm}
+%D \stoptyping
+%D
+%D because we don't want to recode the source, a setup command
+%D in another language has to expand to this variable, so:
+%D
+%D \starttyping
+%D \setupblock[width=12cm]
+%D \stoptyping
+%D
+%D has to result in the definition of \type{\boxwidth} too.
+%D This method enables us to build compact, fast and readable
+%D code.
+%D
+%D An alternative method, which we considered using, uses a
+%D more indirect way. In this case, both calls generate a
+%D different variable:
+%D
+%D \starttyping
+%D \def\boxwidth {12cm}
+%D \def\boxbreedte {12cm}
+%D \stoptyping
+%D
+%D And because we don't want to recode those megabytes of
+%D already developed code, this variable has to be called with
+%D something like:
+%D
+%D \starttyping
+%D \valueof\box\width
+%D \stoptyping
+%D
+%D where \type{\valueof} takes care of the translation of
+%D \type{width} or \type{breedte} to \type{width} and
+%D combining this with \type{box} to \type{\boxwidth}.
+%D
+%D One advantage of this other scheme is that, within certain
+%D limits, we can implement an interface that can be switched
+%D to another language at will, while the current approach
+%D fixes the interface at startup. There are, by the way,
+%D other reasons too for not choosing this scheme. Switching
+%D user generated commands is for instance impossible and a
+%D dual interface would therefore give a strange mix of
+%D languages.
+%D
+%D Now let's work out the first scheme. Although the left hand
+%D of the assignment is a variable from the users point of
+%D view, it is a constant in terms of the system. Both
+%D \type{width} and \type{breedte} expand to \type{width}
+%D because in the source we only encounter \type{width}. Such
+%D system constants are presented as
+%D
+%D \starttyping
+%D \c!width
+%D \stoptyping
+%D
+%D This constant is always equivalent to \type{width}. As we
+%D can see, we use \type{c!} to mark this one as constant. Its
+%D dutch counterpart is:
+%D
+%D \starttyping
+%D breedte
+%D \stoptyping
+%D
+%D When we interpret a setup command each variable is
+%D translated to it's \type{c!} counterpart. This means that
+%D \type{breedte} and \type{width} expand to \type{breedte}
+%D and \type{\c!width} which both expand to \type{width}. That
+%D way user variables become system constants.
+%D
+%D The interpretation is done by means of a general setup
+%D command \type{\getparameters} that we introduced in the
+%D system module. Let us define some simple setup command:
+%D
+%D \starttyping
+%D \def\setupbox[#1]%
+%D {\getparameters[\??bx][#1]}
+%D \stoptyping
+%D
+%D This command can be used as:
+%D
+%D \starttyping
+%D \setupbox [width=3cm, height=1cm]
+%D \stoptyping
+%D
+%D Afterwards we have two variables \type{\@@bxwidth} and
+%D \type{\@@bxheight} which have the values \type{3cm} and
+%D \type{1cm} assigned. These variables are a combinatiom of
+%D the setup prefix \type{\??bx}, which expands to \type{@@bx}
+%D and the translated user supplied variables \type{width} and
+%D \type{height} or \type{breedte} and \type{hoogte},
+%D depending on the actual language. In dutch we just say:
+%D
+%D \starttyping
+%D \setupblock [width=3cm, height=1cm]
+%D \stoptyping
+%D
+%D and get ourselves \type{\@@bxwidth} and \type{\@@bxheight}
+%D too. In the source of \CONTEXT, we can recognize constants
+%D and variables on their leading \type{c!}, \type{v!} etc.,
+%D prefixes on \type{??} and composed variables on \type{@@}.
+%D
+%D We already saw that user supplied keywords need some
+%D special treatment too. This time we don't translate the
+%D keyword, but instead use in the source a variable which
+%D meaning depends on the interface language.
+%D
+%D \starttyping
+%D \v!left
+%D \stoptyping
+%D
+%D Which can be used in macro's like:
+%D
+%D \starttyping
+%D \processaction
+%D [\@@bxlocation]
+%D [ \v!left=>\dosomethingontheleft,
+%D \v!middle=>\dosomthinginthemiddle,
+%D \v!right=>\dosomethingontheright]
+%D \stoptyping
+%D
+%D Because variables like \type{\@@bxlocation} can have a lot
+%D of meanings, including tricky expandable tokens, we cannot
+%D translate this meaning when we compare. This means that
+%D \type{\@@bxlocation} can be \type{left} of \type{links} of
+%D whatever meaning suits the language. But because
+%D \type{\v!left} also has a meaning that suits the language,
+%D we are able to compare.
+%D
+%D Although we know it sounds confusing we want to state two
+%D important characteristics of the interface as described:
+%D
+%D \startnarrower \em
+%D user variables become system constants
+%D \stopnarrower
+%D
+%D and
+%D
+%D \startnarrower \em
+%D user constants (keywords) become system variables
+%D \stopnarrower
+
+%D Anno 2003 I've forgotten why the \type {\c!internal} is
+%D still in there; it's probably a left over from an experiment.
+
+\let\c!internal!y \string
+\def\c!internal!n {-}
+\let\c!internal! \c!internal!y
+
+% temporary mkiv hack (we can best just store the whole table in memory)
+
+\def\setinterfaceconstant#1#2%
+ {\ctxlua{interfaces.setconstant("#1","#2")}%
+ \setvalue{\c!prefix!#1}{\c!internal!#1}%
+ \setvalue{\k!prefix!#2}{#1}}
+
+\def\setinterfacevariable#1#2%
+ {\ctxlua{interfaces.setvariable("#1","#2")}%
+ \setvalue{\v!prefix!#1}{#2}}
+
+%D \macros
+%D {defineinterfaceconstant}
+%D
+%D Next we redefine a previously defined macro to take care of
+%D interface translation too. It's a bit redundant, because
+%D in these situations we could use the c||version, but for
+%D documentation purposes the x||alternative comes in handy.
+
+\def\defineinterfaceconstant#1#2%
+ {\setvalue{\c!prefix!#1}{#2}}
+
+%D \macros
+%D {startelements}
+%D
+%D Due to the object oriented nature of \CONTEXT, we also need
+%D to define the elements that are used to build commands.
+%D
+%D Such elements sometimes are the same in diferent
+%D languages, but mostly they differ. Things can get even
+%D confusing when we look at for instance the setup commands.
+%D In english we say \type{\setup<something>}, but in dutch we
+%D have: \type{\stel<iets>in}. Such split elements are no
+%D problem, because we just define two elements. When no second
+%D part is needed, we use a \type{-}:
+
+\def\setinterfaceelement#1#2%
+ {\ifcsname\e!prefix!#1\endcsname
+ \doifnotvalue{\e!prefix!#1}{#2}{\setvalue{\e!prefix!#1}{#2}}%
+ \else
+ \setvalue{\e!prefix!#1}{#2}%
+ \fi}
+
+\def\setinterfacecommand#1#2%
+ {\doifnot{#1}{#2}{\@EA\def\csname#2\@EA\endcsname\@EA{\csname#1\endcsname}}}% or just \let ?
+
+%D We just ignore these:
+
+\def\startvariables{\gobbleuntil\stopvariables}
+\def\startconstants{\gobbleuntil\stopconstants}
+\def\startelements {\gobbleuntil\stopelements}
+\def\startcommands {\gobbleuntil\stopcommands}
+
+%D \macros
+%D {interfaced}
+%D
+%D The setup commands translate the constants automatically.
+%D When we want to translate 'by hand' we can use the simple
+%D but effective command:
+%D
+%D \starttyping
+%D \interfaced {something}
+%D \stoptyping
+%D
+%D Giving \type{\interfaced{breedte}} results in \type{width}
+%D or, when not defined, in \type{breedte} itself. This
+%D macro is used in the font switching mechanism.
+
+\def\interfaced#1%
+ {\ifcsname\k!prefix!#1\endcsname
+ \csname\k!prefix!#1\endcsname
+ \else
+ #1%
+ \fi}
+
+%D So much for the basic multi||lingual interface commands. The
+%D macro's can be enhanced with more testing facilities, but
+%D for the moment they suffice.
+
+%D Out of convenience we define the banners here.
+
+\def\contextbanner
+ {ConTeXt \space
+ ver: \contextversion \space \contextmark \space \space
+ fmt: \formatversion \space \space
+ int: \currentinterface/\currentresponses}
+
+\def\showcontextbanner
+ {\writeline\writebanner{\contextbanner}\writeline}
+
+\edef\formatversion
+ {\the\normalyear .\the\normalmonth.\the\normalday}
+
+\ifx\contextversion\undefined
+ \def\contextversion {unknown}
+ \def\contextversionnumber{0}
+\else
+ \def\contextversionnumber#1.#2.#3 #4:#5\relax{#1\ifnum#2<10 0\fi#2\ifnum#3<10 0\fi#3 #4:#5}
+ \edef\contextversionnumber{\expandafter\contextversionnumber\contextversion\relax\space\contextmark}
+\fi
+
+\ifx\undefined\everydump
+ \newtoks\everydump
+ \def\dump{\the\everydump\normaldump}
+\fi
-\def\dowithinterfaceconstant#1#2{\ctxlua{interfaces.setconstant("#1","#2")}}
-\def\dowithinterfacevariable#1#2{\ctxlua{interfaces.setvariable("#1","#2")}}
+\appendtoks \showcontextbanner \to \everydump
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mult-ini.tex b/Master/texmf-dist/tex/context/base/mult-ini.tex
deleted file mode 100644
index 53a1014c5ba..00000000000
--- a/Master/texmf-dist/tex/context/base/mult-ini.tex
+++ /dev/null
@@ -1,1493 +0,0 @@
-%D \module
-%D [ file=mult-ini,
-%D version=1996.06.01,
-%D title=\CONTEXT\ Multilingual Macros,
-%D subtitle=Initialization,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This module implements the multi||lingual interface to
-%D \CONTEXT. These capabilities concern messages, commands and
-%D parameters. Currently the following interfaces are
-%D supported:
-%D
-%D \starttabulate[|l|l|c|c|]
-%D \NC\bf language\NC\bf translator \NC\bf messages\NC \bf interface\NC\NR
-%D \NC dutch \NC Hans Hagen \NC yes \NC yes \NC\NR
-%D \NC english \NC Hans Hagen \& SPQR \NC yes \NC yes \NC\NR
-%D \NC german \NC Tobias Burnus \NC yes \NC yes \NC\NR
-%D \NC czech \NC Tom Hudec \NC yes \NC yes \NC\NR
-%D \NC italian \NC Giuseppe Bilotta \NC yes \NC yes \NC\NR
-%D \NC french \NC Renaud Aubin \NC yes \NC yes \NC\NR
-%D \NC romanian \NC .... \NC yes \NC yes \NC\NR
-%D \NC norwegian \NC Hans Fredrik Nordhaug \NC yes \NC no \NC\NR
-%D \stoptabulate
-
-%D to be translated:
-%D
-%D message : floatblocks/13
-%D variables : sorttype compress autohang
-
-\writestatus{loading}{Context Multilingual Macros / Initialization}
-
-\unprotect
-
-%D \macros
-%D [constanten,variabelen,commands]
-%D {v!,c!,k!,s!,e!,m!,l!,r!,f!,p!,x!,y!}
-%D
-%D In the system modules we introduced some prefixed constants,
-%D variables (both macros) and registers. Apart from a
-%D tremendous saving in terms of memory and a gain in speed we
-%D use from now on prefixes when possible for just another
-%D reason: consistency and multi||linguality. Systematically
-%D using prefixed macros enables us to implement a
-%D multi||lingual user interface. Redefining these next set of
-%D prefixes therefore can have desastrous results.
-%D
-%D \startlinecorrection
-%D \starttable[|c|c|c|]
-%D \HL
-%D \NC \bf prefix \NC \bf meaning \NC \bf application \NC\SR
-%D \HL
-%D \NC \type{\c!prefix!} \NC c! \NC constant (direct) \NC\FR
-%D \NC \type{\e!prefix!} \NC e! \NC element \NC\MR
-%D \NC \type{\f!prefix!} \NC f! \NC file \NC\MR
-%D \NC \type{\k!prefix!} \NC k! \NC constant (indirect) \NC\MR
-%D \NC \type{\l!prefix!} \NC l! \NC language \NC\MR
-%D \NC \type{\m!prefix!} \NC m! \NC message \NC\MR
-%D \NC \type{\p!prefix!} \NC p! \NC procedure \NC\MR
-%D \NC \type{\r!prefix!} \NC r! \NC reference \NC\MR
-%D \NC \type{\s!prefix!} \NC s! \NC system \NC\MR
-%D \NC \type{\v!prefix!} \NC v! \NC variable \NC\MR
-%D \NC \type{\x!prefix!} \NC x! \NC setup constant \NC\MR
-%D \NC \type{\y!prefix!} \NC y! \NC setup variable \NC\LR
-%D \HL
-%D \stoptable
-%D \stoplinecorrection
-%D
-%D In the single||lingual version we used \type{!}, \type{!!},
-%D \type{!!!} and \type{!!!!}.
-
-\def\c!prefix!{c!} \def\e!prefix!{e!} \def\f!prefix!{f!}
-\def\k!prefix!{k!} \def\l!prefix!{l!} \def\m!prefix!{m!}
-\def\p!prefix!{p!} \def\r!prefix!{r!} \def\s!prefix!{s!}
-\def\v!prefix!{v!} \def\t!prefix!{t!}
-
-% \def\x!prefix!{x!} % obsolete
-% \def\y!prefix!{y!} % obsolete
-
-%D \macros
-%D [constants,variables,commands]
-%D {@@,??}
-%D
-%D Variables generated by the system can be recognized on their
-%D prefix \type{@@}. They are composed of a command (class)
-%D specific tag, which can be recognized on \type{??}, and a
-%D system constant, which has the prefix \type{c!}. We'll se
-%D some more of this.
-
-\def\??prefix {??}
-\def\@@prefix {@@}
-
-%D Just to be complete we repeat some of the already defined
-%D system constants here. Maybe their prefix \type{\s!} now
-%D falls into place.
-
-\def\s!next {next} \def\s!default {default}
-\def\s!dummy {dummy} \def\s!unknown {unknown}
-
-\def\s!do {do} \def\s!dodo {dodo}
-
-\def\s!complex {complex} \def\s!start {start}
-\def\s!simple {simple} \def\s!stop {stop}
-
-%D The word \type{height} takes 6~token memory cells. The
-%D control sequence \type{\height} on the other hand uses only
-%D one. Knowing this, we can improve the performance of \TEX,
-%D both is terms of speed and memory usage, by using control
-%D sequences instead of the words written in full.
-%D
-%D Where in the \ASCII\ file the second lines takes nine extra
-%D characters, \TEX\ saves us 13~tokens.
-%D
-%D \starttyping
-%D \hrule width 10pt height 2pt depth 1pt
-%D \hrule \!!width 10pt \!!height 2pt \!!depth 1pt
-%D \stoptyping
-%D
-%D One condition is that we have defined \type{\!!height},
-%D \type{\!!width} and \type{\!!depth} as respectively
-%D \type{height}, \type{width} and \type{depth}. Using this
-%D scheme therefore only makes sense when a token sequence is
-%D used more than once. Savings like this should of course be
-%D implemented in english, just because \TEX\ is english.
-
-\def\!!width {width}
-\def\!!height {height}
-\def\!!depth {depth}
-\def\!!plus {plus}
-\def\!!minus {minus}
-\def\!!fill {fill}
-\def\!!to {to}
-
-%D \macros
-%D {defineinterfaceconstant,
-%D defineinterfacevariable,
-%D defineinterfaceelement,
-%D definesystemvariable,
-%D definesystemconstant,
-%D definemessageconstant,
-%D definereferenceconstant,
-%D definefileconstant}
-%D
-%D The first part of this module is dedicated to dealing with
-%D multi||lingual constants and variables. When \CONTEXT\ grew
-%D bigger and bigger in terms of bytes and used string space,
-%D we switched to predefined constants. At the cost of more
-%D hash table entries, the macros not only becase more compact,
-%D they became much faster too. Maybe an even bigger advantage
-%D was that mispelling could no longer lead to problems. Even a
-%D multi||lingual interface became possible.
-%D
-%D Constants --- we'll introduce the concept of variables later
-%D on --- are preceded by a type specific prefix, followed by a
-%D \type{!}. To force consistency, we provide a few commands
-%D for defining such constants.
-%D
-%D \starttyping
-%D \defineinterfaceconstant {name} {meaning}
-%D \defineinterfacevariable {name} {meaning}
-%D \defineinterfaceelement {name} {meaning}
-%D \stoptyping
-%D
-%D Which is the same as:
-%D
-%D \starttyping
-%D \def\c!name{meaning}
-%D \def\v!name{meaning}
-%D \def\e!name{meaning}
-%D \stoptyping
-
-\def\defineinterfaceconstant #1#2{\setvalue{\c!prefix!#1}{#2}}
-\def\defineinterfacevariable #1#2{\setvalue{\v!prefix!#1}{#2}}
-\def\defineinterfaceelement #1#2{\setvalue{\e!prefix!#1}{#2}}
-
-%D Next come some interface independant constants:
-%D
-%D \starttyping
-%D \definereferenceconstant {name} {meaning}
-%D \definefileconstant {name} {meaning}
-%D \stoptyping
-
-\def\definereferenceconstant #1#2{\setvalue{\r!prefix!#1}{#2}}
-\def\definefileconstant #1#2{\setvalue{\f!prefix!#1}{#2}}
-
-%D A new one:
-
-\def\definetypescriptconstant#1#2{\setvalue{\t!prefix!#1}{#2}}
-
-%D And finaly we have the one argument, space saving constants
-%D
-%D \starttyping
-%D \definesystemconstant {name}
-%D \definemessageconstant {name}
-%D \stoptyping
-
-\def\definesystemconstant #1{\setvalue{\s!prefix!#1}{#1}}
-\def\definemessageconstant #1{\setvalue{\m!prefix!#1}{#1}}
-
-%D In a parameter driven system, some parameters are shared
-%D by more system components. In \CONTEXT\ we can distinguish
-%D parameters by a unique prefix. Such a prefix is defined
-%D with:
-%D
-%D \starttyping
-%D \definesystemvariable {name}
-%D \stoptyping
-
-\def\definesystemvariable#1{\setevalue{\??prefix#1}{\@@prefix#1}}
-
-\definesystemvariable{ms}
-
-%D \macros
-%D {selectinterface,
-%D defaultinterface, currentinterface, currentresponses}
-%D
-%D With \type{\selectinterface} we specify the language we are
-%D going to use. The system asks for the language wanted, and
-%D defaults to \type{\currentinterface} when we just give
-%D \type{enter}. By default the message system uses the
-%D current interface language, but \type{\currentresponses}
-%D can specify another language too.
-%D
-%D Because we want to generate formats directly too, we do
-%D not ask for interface specifications when these are already
-%D defined (like in cont-nl.tex and alike).
-
-\ifx\undefined\scratchwrite \newwrite\scratchwrite \fi
-\ifx\undefined\scratchread \newwrite\scratchread \fi
-
-\immediate\openin\scratchread=mult-def.tex % may overload the defaults
-
-\ifeof\scratchread % no high level commands yet
- \immediate\closein\scratchread
-\else
- \immediate\closein\scratchread \input mult-def.tex
-\fi
-
-\ifx\defaultinterface\undefined
-
- \def\defaultinterface{english}
-
- \def\selectinterface
- {\def\docommand##1##2%
- {\bgroup
- \endlinechar\minusone
- \global\read16 to ##1
- \egroup
- \doifnothing\currentinterface{\let##1=##2}%
- \doifundefined{\s!prefix!##1}{\let##1=##2}}%
- \docommand\currentinterface\defaultinterface
- \writestatus{interface}{defining \currentinterface\space interface}%
- \writeline
- \docommand\currentresponses\currentinterface
- \writestatus{interface}{using \currentresponses\space messages}%
- \writeline
- \let\selectinterface\relax}
-
-\else
-
- \def\selectinterface
- {\writestatus{interface}{defining \currentinterface\space interface}%
- \writeline
- \writestatus{interface}{using \currentresponses\space messages}%
- \writeline
- \let\selectinterface\relax}
-
-\fi
-
-\ifx\currentinterface\undefined \let\currentinterface=\defaultinterface \fi
-\ifx\currentresponses\undefined \let\currentresponses=\defaultinterface \fi
-
-%D \macros
-%D {startinterface}
-%D
-%D Sometimes we want to define things only for specific
-%D interface languages. This can be done by means of the
-%D selector:
-%D
-%D \starttyping
-%D \startinterface language
-%D
-%D language specific definitions & commands
-%D
-%D \stopinterface
-%D \stoptyping
-
-%\def\startinterface #1
-% {\doifinsetelse{\currentinterface}{#1}
-% {\let\next\relax}
-% {\long\def\next##1\stopinterface{}}%
-% \next}
-
-\def\startinterface #1
- {\doifnotinset\currentinterface{#1}{\gobbleuntil\stopinterface}}
-
-\let\stopinterface=\relax
-
-%D \macros
-%D {startmessages,
-%D getmessage,
-%D showmessage,
-%D makemessage}
-%D
-%D A package as large as \CONTEXT\ can hardly function without
-%D a decent message mechanism. Due to its multi||lingual
-%D interface, the message subsystem has to be multi||lingual
-%D too. A major drawback of this feature is that we have to
-%D code messages. As a result, the source becomes less self
-%D documented. On the other hand, consistency will improve.
-%D
-%D Because the overhead in terms of entries in the (already
-%D exhausted) hash table has to be minimal, messages are packed
-%D in libraries. We can extract a message from such a library
-%D in three ways:
-%D
-%D \starttyping
-%D \getmessage {library} {tag}
-%D \showmessage {library} {tag} {data}
-%D \makemessage {library} {tag} {data}
-%D \stoptyping
-%D
-%D The first command gets the message \type{tag} from the
-%D \type{library} specified. The other commands take an extra
-%D argument: a list of items to be inserted in the message
-%D text. While \type{\showmessage} shows the message at the
-%D terminal, the other commands generate the message as text.
-%D Before we explain the \type{data} argument, we give an
-%D example of a library.
-%D
-%D \starttyping
-%D \startmessages english library: alfa
-%D title: something
-%D 1: first message
-%D 2: second (--) message --
-%D \stopmessages
-%D \stoptyping
-%D
-%D The first message is a simple one and can be shown with:
-%D
-%D \starttyping
-%D \showmessage {alfa} {1} {}
-%D \stoptyping
-%D
-%D The second message on the other hand needs some extra data:
-%D
-%D \starttyping
-%D \showmessage {alfa} {2} {and last,to you}
-%D \stoptyping
-%D
-%D This message is shown as:
-%D
-%D \starttyping
-%D something : second (and last) message to you
-%D \stoptyping
-%D
-%D As we can see, the title entry is shown with the message.
-%D The data fields are comma separated and are specified in the
-%D message text by \type{--}.
-%D
-%D It is not required to define all messages in a library at
-%D once. We can add messages to a library in the following way:
-%D
-%D \starttyping
-%D \startmessages english library: alfa
-%D 10: tenth message
-%D \stopmessages
-%D \stoptyping
-%D
-%D Because such definitions can take place in different
-%D modules, the system gives a warning when a tag occurs more
-%D than once. The first occurrence takes preference over later
-%D ones, so we had better use a save offset, as shown in the
-%D example. As we can see, the title field is specified only
-%D the first time!
-%D
-%D Because we want to check for duplicate tags, the macros
-%D are a bit more complicated than neccessary. The \NEWLINE\
-%D token is used as message separator.
-%D
-%D For internal purposes one can use \type {\setmessagetext},
-%D which puts the message text asked for in \type
-%D {\currentmessagetext}.
-
-\loadmarkfile{mult-ini}
-
-%D \macros
-%D {ifshowwarnings, ifshowmessages}
-%D
-%D Sometimes displaying message can slow down processing
-%D considerably. We therefore introduce warnings. Users can
-%D turn of warnings and messages by saying:
-%D
-%D \starttyping
-%D \showwarningstrue
-%D \showmessagestrue
-%D \stoptyping
-%D
-%D Turning off messages also turns off warnings, which is
-%D quote logical because they are less important.
-
-% not yet mkiv
-
-\newif\ifshowwarnings \showwarningstrue
-\newif\ifshowmessages \showmessagestrue
-
-\let\normalshowmessage=\showmessage
-
-\def\showwarning
- {\ifshowwarnings
- \expandafter\showmessage
- \else
- \expandafter\gobblethreearguments
- \fi}
-
-\def\showmessage
- {\ifshowmessages
- \expandafter\normalshowmessage
- \else
- \expandafter\gobblethreearguments
- \fi}
-
-%D \macros
-%D {dosetvalue,dosetevalue,dosetgvalue,dosetxvalue,docopyvalue,doresetvalue} % dogetvalue
-%D
-%D We already defined these auxiliary macros in the system
-%D modules. Starting with this module however, we have to take
-%D multi||linguality a bit more serious.
-%D
-%D First we show a well||defined (simplified) alternative:
-%D
-%D \starttyping
-%D \def\dosetvalue#1#2#3%
-%D {\doifdefinedelse{\c!prefix!#2}
-%D {\setvalue{#1\getvalue{\c!prefix!#2}}{#3}}
-%D {\setvalue{#1#2}{#3}}}
-%D
-%D \def\docopyvalue#1#2#3%
-%D {\doifdefinedelse{\c!prefix!#3}
-%D {\setvalue{#1\getvalue{\c!prefix!#3}}%
-%D {\getvalue{#2\getvalue{\c!prefix!#3}}}}
-%D {\setvalue{#1#3}%
-%D {\getvalue{#2#3}}}}
-%D \stoptyping
-%D
-%D These macros are called upon quite often and so we optimized
-%D them a bit.
-%D
-%D \starttyping
-%D \def\dosetvalue#1#2#3%
-%D {\let\c!internal!\c!internal!n
-%D \p!doifundefined{\k!prefix!#2}%
-%D \let\c!internal!\c!internal!y
-%D \let\donottest\doprocesstest
-%D \@EA\def\csname#1#2\endcsname{#3}%
-%D \else
-%D \let\c!internal!\c!internal!y
-%D \let\donottest\doprocesstest
-%D \@EA\def\csname#1\csname\k!prefix!#2\endcsname\endcsname{#3}%
-%D \fi}
-%D
-%D \def\dosetevalue#1#2#3%
-%D {\let\c!internal!\c!internal!n
-%D \p!doifundefined{\k!prefix!#2}%
-%D \let\c!internal!\c!internal!y
-%D \let\donottest\doprocesstest
-%D \@EA\edef\csname#1#2\endcsname{#3}%
-%D \else
-%D \let\c!internal!\c!internal!y
-%D \let\donottest\doprocesstest
-%D \@EA\edef\csname#1\csname\k!prefix!#2\endcsname\endcsname{#3}%
-%D \fi}
-%D
-%D \def\dosetgvalue#1#2#3%
-%D {\let\c!internal!\c!internal!n
-%D \p!doifundefined{\k!prefix!#2}%
-%D \let\c!internal!\c!internal!y
-%D \let\donottest\doprocesstest
-%D \@EA\gdef\csname#1#2\endcsname{#3}%
-%D \else
-%D \let\c!internal!\c!internal!y
-%D \let\donottest\doprocesstest
-%D \@EA\gdef\csname#1\csname\k!prefix!#2\endcsname\endcsname{#3}%
-%D \fi}
-%D
-%D \def\docopyvalue#1#2#3%
-%D {\let\c!internal!\c!internal!n
-%D \p!doifundefined{\k!prefix!#3}%
-%D \let\c!internal!\c!internal!y
-%D \let\donottest\doprocesstest % still needed ?
-%D \@EA\def\csname#1#3\endcsname%
-%D {\csname#2#3\endcsname}%
-%D \else
-%D \let\c!internal!\c!internal!y
-%D \let\donottest\doprocesstest % still needed ?
-%D \@EA\def\csname#1\csname\k!prefix!#3\endcsname\endcsname%
-%D {\csname#2\csname\k!prefix!#3\endcsname\endcsname}%
-%D \fi}
-%D \stoptyping
-
-\def\doresetvalue#1#2%
- {\dosetvalue{#1}{#2}{}}
-
-\def\doignorevalue#1#2#3%
- {\dosetvalue{#1}{#2}{}}
-
-% \def\dogetvalue#1#2%
-% {\csname#1\csname\k!prefix!#2\endcsname\endcsname}
-
-%D Although maybe not clearly visible, there is a
-%D considerable profit in further optimization. By expanding
-%D the embedded \type {\csname} we can reduce the format file
-%D by about 5\% (60~KB out of 1.9~MB).
-%D
-%D \starttyping
-%D \def\docopyvalue#1#2#3% c -> k
-%D {\p!doifundefined{\k!prefix!#3}%
-%D \let\donottest\doprocesstest
-%D \@EAEAEA\def\@EA
-%D \csname\@EA#1\@EA#3\@EA
-%D \endcsname\@EA{\csname#2#3\endcsname}%
-%D \else
-%D \let\donottest\doprocesstest
-%D \@EAEAEA\def\@EA
-%D \csname\@EA#1\@EA\csname\@EA\k!prefix!\@EA#3\@EA\endcsname\@EA
-%D \endcsname\@EA{\csname#2\csname\k!prefix!#3\endcsname\endcsname}%
-%D \fi}
-%D \stoptyping
-%D
-%D The next alternatives are slightly faster.
-
-\beginTEX
-
-% \def\dosetvalue#1#2#3%
-% {\let\c!internal!\c!internal!n
-% \@EA\ifx\csname\k!prefix!#2\endcsname\relax
-% \let\c!internal!\c!internal!y
-% \@EA\def\csname#1#2\endcsname{#3}%
-% \else
-% \let\c!internal!\c!internal!y
-% \@EA\def\csname#1\csname\k!prefix!#2\endcsname\endcsname{#3}%
-% \fi}
-%
-% \def\dosetevalue#1#2#3%
-% {\let\c!internal!\c!internal!n
-% \@EA\ifx\csname\k!prefix!#2\endcsname\relax
-% \let\c!internal!\c!internal!y
-% \@EA\edef\csname#1#2\endcsname{#3}%
-% \else
-% \let\c!internal!\c!internal!y
-% \@EA\edef\csname#1\csname\k!prefix!#2\endcsname\endcsname{#3}%
-% \fi}
-%
-% \def\dosetgvalue#1#2#3%
-% {\let\c!internal!\c!internal!n
-% \@EA\ifx\csname\k!prefix!#2\endcsname\relax
-% \let\c!internal!\c!internal!y
-% \@EA\gdef\csname#1#2\endcsname{#3}%
-% \else
-% \let\c!internal!\c!internal!y
-% \@EA\gdef\csname#1\csname\k!prefix!#2\endcsname\endcsname{#3}%
-% \fi}
-%
-% cleaner (not that much faster) don't pass #3 yet:
-
-\def\dosetvalue#1#2%
- {\let\c!internal!\c!internal!n
- \@EA\ifx\csname\k!prefix!#2\endcsname\relax
- \let\c!internal!\c!internal!y
- \@EAEAEA\def\@EA\@EA\csname#1#2\endcsname
- \else
- \let\c!internal!\c!internal!y
- \@EAEAEA\def\@EA\@EA\csname#1\csname\k!prefix!#2\endcsname\endcsname
- \fi}
-
-\def\dosetevalue#1#2%
- {\let\c!internal!\c!internal!n
- \@EA\ifx\csname\k!prefix!#2\endcsname\relax
- \let\c!internal!\c!internal!y
- \@EAEAEA\edef\@EA\@EA\csname#1#2\endcsname
- \else
- \let\c!internal!\c!internal!y
- \@EAEAEA\edef\@EA\@EA\csname#1\csname\k!prefix!#2\endcsname\endcsname
- \fi}
-
-\def\dosetgvalue#1#2%
- {\let\c!internal!\c!internal!n
- \@EA\ifx\csname\k!prefix!#2\endcsname\relax
- \let\c!internal!\c!internal!y
- \@EAEAEA\gdef\@EA\@EA\csname#1#2\endcsname
- \else
- \let\c!internal!\c!internal!y
- \@EAEAEA\gdef\@EA\@EA\csname#1\csname\k!prefix!#2\endcsname\endcsname
- \fi}
-
-\def\dosetxvalue#1#2%
- {\let\c!internal!\c!internal!n
- \@EA\ifx\csname\k!prefix!#2\endcsname\relax
- \let\c!internal!\c!internal!y
- \@EAEAEA\xdef\@EA\@EA\csname#1#2\endcsname
- \else
- \let\c!internal!\c!internal!y
- \@EAEAEA\xdef\@EA\@EA\csname#1\csname\k!prefix!#2\endcsname\endcsname
- \fi}
-
-% so far
-
-\def\docopyvalue#1#2#3%
- {\let\c!internal!\c!internal!n
- \@EA\ifx\csname\k!prefix!#3\endcsname\relax
- \let\c!internal!\c!internal!y
- \@EAEAEA\def\@EA
- \csname\@EA#1\@EA#3\@EA
- \endcsname\@EA{\csname#2#3\endcsname}%
- \else
- \let\c!internal!\c!internal!y
- \@EAEAEA\def\@EA
- \csname\@EA#1\@EA\csname\@EA\k!prefix!\@EA#3\@EA\endcsname\@EA
- \endcsname\@EA{\csname#2\csname\k!prefix!#3\endcsname\endcsname}%
- \fi}
-
-\endTEX
-
-\beginETEX \protected
-
-% \def\dosetvalue#1#2#3%
-% {\let\c!internal!\c!internal!n
-% \ifcsname\k!prefix!#2\endcsname
-% \let\c!internal!\c!internal!y
-% \@EA\def\csname#1\csname\k!prefix!#2\endcsname\endcsname{#3}%
-% \else
-% \let\c!internal!\c!internal!y
-% \@EA\def\csname#1#2\endcsname{#3}%
-% \fi}
-%
-% \def\dosetevalue#1#2#3%
-% {\let\c!internal!\c!internal!n
-% \ifcsname\k!prefix!#2\endcsname
-% \let\c!internal!\c!internal!y
-% \@EA\edef\csname#1\csname\k!prefix!#2\endcsname\endcsname{#3}%
-% \else
-% \let\c!internal!\c!internal!y
-% \@EA\edef\csname#1#2\endcsname{#3}%
-% \fi}
-%
-% \def\dosetgvalue#1#2#3%
-% {\let\c!internal!\c!internal!n
-% \ifcsname\k!prefix!#2\endcsname
-% \let\c!internal!\c!internal!y
-% \@EA\gdef\csname#1\csname\k!prefix!#2\endcsname\endcsname{#3}%
-% \else
-% \let\c!internal!\c!internal!y
-% \@EA\gdef\csname#1#2\endcsname{#3}%
-% \fi}
-%
-% \def\dosetxvalue#1#2#3%
-% {\let\c!internal!\c!internal!n
-% \ifcsname\k!prefix!#2\endcsname
-% \let\c!internal!\c!internal!y
-% \@EA\xdef\csname#1\csname\k!prefix!#2\endcsname\endcsname{#3}%
-% \else
-% \let\c!internal!\c!internal!y
-% \@EA\xdef\csname#1#2\endcsname{#3}%
-% \fi}
-%
-% cleaner (not that much faster) don't pass #3 yet:
-%
-% \def\dosetvalue#1#2%
-% {\let\c!internal!\c!internal!n
-% \ifcsname\k!prefix!#2\endcsname
-% \let\c!internal!\c!internal!y
-% \@EAEAEA\def\@EA\@EA\csname#1\csname\k!prefix!#2\endcsname\endcsname
-% \else
-% \let\c!internal!\c!internal!y
-% \@EAEAEA\def\@EA\@EA\csname#1#2\endcsname
-% \fi}
-%
-% \def\dosetevalue#1#2%
-% {\let\c!internal!\c!internal!n
-% \ifcsname\k!prefix!#2\endcsname
-% \let\c!internal!\c!internal!y
-% \@EAEAEA\edef\@EA\@EA\csname#1\csname\k!prefix!#2\endcsname\endcsname
-% \else
-% \let\c!internal!\c!internal!y
-% \@EAEAEA\edef\@EA\@EA\csname#1#2\endcsname
-% \fi}
-%
-% \def\dosetgvalue#1#2%
-% {\let\c!internal!\c!internal!n
-% \ifcsname\k!prefix!#2\endcsname
-% \let\c!internal!\c!internal!y
-% \@EAEAEA\gdef\@EA\@EA\csname#1\csname\k!prefix!#2\endcsname\endcsname
-% \else
-% \let\c!internal!\c!internal!y
-% \@EAEAEA\gdef\@EA\@EA\csname#1#2\endcsname
-% \fi}
-%
-% \def\dosetxvalue#1#2%
-% {\let\c!internal!\c!internal!n
-% \ifcsname\k!prefix!#2\endcsname
-% \let\c!internal!\c!internal!y
-% \@EAEAEA\xdef\@EA\@EA\csname#1\csname\k!prefix!#2\endcsname\endcsname
-% \else
-% \let\c!internal!\c!internal!y
-% \@EAEAEA\xdef\@EA\@EA\csname#1#2\endcsname
-% \fi}
-%
-% \def\docopyvalue#1#2#3%
-% {\let\c!internal!\c!internal!n
-% \ifcsname\k!prefix!#3\endcsname
-% \let\c!internal!\c!internal!y
-% \@EAEAEA\def\@EA
-% \csname\@EA#1\@EA\csname\@EA\k!prefix!\@EA#3\@EA\endcsname\@EA
-% \endcsname\@EA{\csname#2\csname\k!prefix!#3\endcsname\endcsname}%
-% \else
-% \let\c!internal!\c!internal!y
-% \@EAEAEA\def\@EA
-% \csname\@EA#1\@EA#3\@EA
-% \endcsname\@EA{\csname#2#3\endcsname}%
-% \fi}
-%
-% slightly more efficient (but not faster in day to day runs)
-
-\def\dosetvalue#1#2%
- {\let\c!internal!\c!internal!n
- \ifcsname\k!prefix!#2\endcsname
- \let\c!internal!\c!internal!y
- \@EA\def\csname#1\csname\k!prefix!#2\endcsname%\endcsname
- \else
- \let\c!internal!\c!internal!y
- \@EA\def\csname#1#2%\endcsname
- \fi\endcsname}
-
-\def\dosetevalue#1#2%
- {\let\c!internal!\c!internal!n
- \ifcsname\k!prefix!#2\endcsname
- \let\c!internal!\c!internal!y
- \@EA\edef\csname#1\csname\k!prefix!#2\endcsname%\endcsname
- \else
- \let\c!internal!\c!internal!y
- \@EA\edef\csname#1#2%\endcsname
- \fi\endcsname}
-
-\def\dosetgvalue#1#2%
- {\let\c!internal!\c!internal!n
- \ifcsname\k!prefix!#2\endcsname
- \let\c!internal!\c!internal!y
- \@EA\gdef\csname#1\csname\k!prefix!#2\endcsname%\endcsname
- \else
- \let\c!internal!\c!internal!y
- \@EA\gdef\csname#1#2%\endcsname
- \fi\endcsname}
-
-\def\dosetxvalue#1#2%
- {\let\c!internal!\c!internal!n
- \ifcsname\k!prefix!#2\endcsname
- \let\c!internal!\c!internal!y
- \@EA\xdef\csname#1\csname\k!prefix!#2\endcsname%\endcsname
- \else
- \let\c!internal!\c!internal!y
- \@EA\xdef\csname#1#2%\endcsname
- \fi\endcsname}
-
-\def\docopyvalue#1#2#3% real tricky expansion, quite unreadable
- {\let\c!internal!\c!internal!n
- \ifcsname\k!prefix!#3\endcsname
- \let\c!internal!\c!internal!y
- \@EA\def\csname#1\csname\k!prefix!#3\endcsname
- \@EA\endcsname\@EA{\csname#2\csname\k!prefix!#3\endcsname\endcsname}%
- \else
- \let\c!internal!\c!internal!y
- \@EA\def\csname#1#3\@EA\endcsname\@EA{\csname#2#3\endcsname}%
- \fi}
-
-\endETEX
-
-%D We can now redefine some messages that will be
-%D introduced in the multi||lingual system module.
-
-\def\showassignerror #1#2{\showmessage\m!check1{#1,#2}\waitonfatalerror}
-\def\showargumenterror#1#2{\showmessage\m!check2{#1,#2}\waitonfatalerror}
-\def\showdefinederror #1#2{\showmessage\m!check3{#1,#2}\waitonfatalerror}
-
-%D \CONTEXT\ is a parameter driven package. This means that
-%D users instruct the system by means of variables, values and
-%D keywords. These instructions take the form:
-%D
-%D \starttyping
-%D \setupsomething[some variable=some value, another one=a keyword]
-%D \stoptyping
-%D
-%D or by keyword only:
-%D
-%D \starttyping
-%D \dosomething[this way,that way,no way]
-%D \stoptyping
-%D
-%D Because the same variables can occur in more than one setup
-%D command, we have to be able to distinguish them. This is
-%D achieved by assigning them a unique prefix.
-%D
-%D Imagine a setup command for boxed text, that enables us to
-%D specify the height and width of the box. Behide the scenes
-%D the command
-%D
-%D \starttyping
-%D \setupbox [width=12cm, height=3cm]
-%D \stoptyping
-%D
-%D results in something like
-%D
-%D \starttyping
-%D \<box><width> {12cm}
-%D \<box><height> {3cm}
-%D \stoptyping
-%D
-%D while a similar command for specifying the page dimensions
-%D of an \cap{A4} page results in:
-%D
-%D \starttyping
-%D \<page><width> {21.0cm}
-%D \<page><height> {27.9cm}
-%D \stoptyping
-%D
-%D The prefixes \type{<box>} and \type{<page>} are hidden from
-%D users and can therefore be language independant. Variables
-%D on the other hand, differ for each language:
-%D
-%D \starttyping
-%D \<box><color> {<blue>}
-%D \<box><kleur> {<blauw>}
-%D \<box><couleur> {<blue>}
-%D \stoptyping
-%D
-%D In this example we can see that the assigned values or
-%D keywords are language dependant too. This will be a
-%D complication when defining multi||lingual setup files.
-%D
-%D A third phenomena is that variables and values can have a
-%D similar meaning.
-%D
-%D \starttyping
-%D \<pagenumber><location> {<left>}
-%D \<skip><left> {12cm}
-%D \stoptyping
-%D
-%D A (minor) complication is that where in english we use
-%D \type{<left>}, in dutch we find both \type{<links>} and
-%D \type{<linker>}. This means that when we use some sort of
-%D translation table, we have to distinguish between the
-%D variables at the left side and the fixed values at the
-%D right.
-%D
-%D The same goes for commands that are composed of different
-%D user supplied and/or language specific elements. In english
-%D we can use:
-%D
-%D \starttyping
-%D \<empty><figure>
-%D \<empty><intermezzo>
-%D \stoptyping
-%D
-%D But in dutch we have the following:
-%D
-%D \starttyping
-%D \<lege><figuur>
-%D \<leeg><intermezzo>
-%D \stoptyping
-%D
-%D These subtle differences automatically lead to a solution
-%D where variables, values, elements and other components have
-%D a similar logical name (used in macro's) but a different
-%D meaning (supplied by the user).
-%D
-%D Our solution is one in which the whole system is programmed
-%D in terms of identifiers with language specific meanings. In
-%D such an implementation, each fixed variable is available as:
-%D
-%D \starttyping
-%D \<prefix><variable>
-%D \stoptyping
-%D
-%D This means that for instance:
-%D
-%D \starttyping
-%D \setupbox[width=12cm]
-%D \stoptyping
-%D
-%D expands to something like:
-%D
-%D \starttyping
-%D \def\boxwidth{12cm}
-%D \stoptyping
-%D
-%D because we don't want to recode the source, a setup command
-%D in another language has to expand to this variable, so:
-%D
-%D \starttyping
-%D \setupblock[width=12cm]
-%D \stoptyping
-%D
-%D has to result in the definition of \type{\boxwidth} too.
-%D This method enables us to build compact, fast and readable
-%D code.
-%D
-%D An alternative method, which we considered using, uses a
-%D more indirect way. In this case, both calls generate a
-%D different variable:
-%D
-%D \starttyping
-%D \def\boxwidth {12cm}
-%D \def\boxbreedte {12cm}
-%D \stoptyping
-%D
-%D And because we don't want to recode those megabytes of
-%D already developed code, this variable has to be called with
-%D something like:
-%D
-%D \starttyping
-%D \valueof\box\width
-%D \stoptyping
-%D
-%D where \type{\valueof} takes care of the translation of
-%D \type{width} or \type{breedte} to \type{width} and
-%D combining this with \type{box} to \type{\boxwidth}.
-%D
-%D One advantage of this other scheme is that, within certain
-%D limits, we can implement an interface that can be switched
-%D to another language at will, while the current approach
-%D fixes the interface at startup. There are, by the way,
-%D other reasons too for not choosing this scheme. Switching
-%D user generated commands is for instance impossible and a
-%D dual interface would therefore give a strange mix of
-%D languages.
-%D
-%D Now let's work out the first scheme. Although the left hand
-%D of the assignment is a variable from the users point of
-%D view, it is a constant in terms of the system. Both
-%D \type{width} and \type{breedte} expand to \type{width}
-%D because in the source we only encounter \type{width}. Such
-%D system constants are presented as
-%D
-%D \starttyping
-%D \c!width
-%D \stoptyping
-%D
-%D This constant is always equivalent to \type{width}. As we
-%D can see, we use \type{c!} to mark this one as constant. Its
-%D dutch counterpart is:
-%D
-%D \starttyping
-%D breedte
-%D \stoptyping
-%D
-%D When we interpret a setup command each variable is
-%D translated to it's \type{c!} counterpart. This means that
-%D \type{breedte} and \type{width} expand to \type{breedte}
-%D and \type{\c!width} which both expand to \type{width}. That
-%D way user variables become system constants.
-%D
-%D The interpretation is done by means of a general setup
-%D command \type{\getparameters} that we introduced in the
-%D system module. Let us define some simple setup command:
-%D
-%D \starttyping
-%D \def\setupbox[#1]%
-%D {\getparameters[\??bx][#1]}
-%D \stoptyping
-%D
-%D This command can be used as:
-%D
-%D \starttyping
-%D \setupbox [width=3cm, height=1cm]
-%D \stoptyping
-%D
-%D Afterwards we have two variables \type{\@@bxwidth} and
-%D \type{\@@bxheight} which have the values \type{3cm} and
-%D \type{1cm} assigned. These variables are a combinatiom of
-%D the setup prefix \type{\??bx}, which expands to \type{@@bx}
-%D and the translated user supplied variables \type{width} and
-%D \type{height} or \type{breedte} and \type{hoogte},
-%D depending on the actual language. In dutch we just say:
-%D
-%D \starttyping
-%D \setupblock [width=3cm, height=1cm]
-%D \stoptyping
-%D
-%D and get ourselves \type{\@@bxwidth} and \type{\@@bxheight}
-%D too. In the source of \CONTEXT, we can recognize constants
-%D and variables on their leading \type{c!}, \type{v!} etc.,
-%D prefixes on \type{??} and composed variables on \type{@@}.
-%D
-%D We already saw that user supplied keywords need some
-%D special treatment too. This time we don't translate the
-%D keyword, but instead use in the source a variable which
-%D meaning depends on the interface language.
-%D
-%D \starttyping
-%D \v!left
-%D \stoptyping
-%D
-%D Which can be used in macro's like:
-%D
-%D \starttyping
-%D \processaction
-%D [\@@bxlocation]
-%D [ \v!left=>\dosomethingontheleft,
-%D \v!middle=>\dosomthinginthemiddle,
-%D \v!right=>\dosomethingontheright]
-%D \stoptyping
-%D
-%D Because variables like \type{\@@bxlocation} can have a lot
-%D of meanings, including tricky expandable tokens, we cannot
-%D translate this meaning when we compare. This means that
-%D \type{\@@bxlocation} can be \type{left} of \type{links} of
-%D whatever meaning suits the language. But because
-%D \type{\v!left} also has a meaning that suits the language,
-%D we are able to compare.
-%D
-%D Although we know it sounds confusing we want to state two
-%D important characteristics of the interface as described:
-%D
-%D \startnarrower \em
-%D user variables become system constants
-%D \stopnarrower
-%D
-%D and
-%D
-%D \startnarrower \em
-%D user constants (keywords) become system variables
-%D \stopnarrower
-%D
-
-%D \macros
-%D {startconstants,startvariables}
-%D
-%D It's time to introduce the macro's that are responsible for
-%D this translations process, but first we show how constants
-%D and variables are defined. We only show two languages and
-%D a few words.
-%D
-%D \starttyping
-%D \startconstants english dutch
-%D
-%D width: width breedte
-%D height: height hoogte
-%D
-%D \stopconstants
-%D \stoptyping
-%D
-%D Keep in mind that what users see as variables, are constants
-%D for the system.
-%D
-%D \starttyping
-%D \startvariables english dutch
-%D
-%D location: left links
-%D text: text tekst
-%D
-%D \stopvariables
-%D \stoptyping
-%D
-%D The macro's responsible for interpreting these setups are
-%D shared. They take care of empty lines and permit a more or
-%D less free format. All setups accept the keyword \type{all}
-%D which equals every language.
-
-%D The next few macros come into action when we generate
-%D interface log files:
-
-\newif\iflogginginterface
-
-\def\flushinterfaceelementline
- {\iflogginginterface
- \immediate\write\scratchwrite{\interfaceelementline}%
- \let\interfaceelementline\empty
- \fi}
-
-\def\saveinterfaceelementline#1%
- {\iflogginginterface
- \edef\interfaceelementline{\interfaceelementline#1\space}%
- \fi}
-
-\def\startlogginginterface #1 %
- {\logginginterfacetrue
- \let\interfaceelementline\empty
- \immediate\openout\scratchwrite=./#1\relax}
-
-\def\stoplogginginterface
- {\flushinterfaceelementline
- \immediate\closeout\scratchwrite
- \logginginterfacefalse}
-
-%D By default we don't log at all.
-
-\def\startlogginginterface #1 {}
-\def\stoplogginginterface {}
-
-%D These logging commands are used in the next macros.
-
-\def\nointerfaceobject{-}
-
-\def\startinterfaceobjects#1#2%
- {\!!counta\plusone
- \let\dogetinterfaceobject\dogetinterfacetemplate
- \let\dowithinterfaceelement#1%
- \def\dodogetinterfaceobjects
- {\ifx\next#2%
- \flushinterfaceelementline
- \flushinterfaceelementline
- \def\next####1{#2}% was: \let\next\gobbleoneargument
- \else\ifx\next\par
- \long\def\next####1{\dogetinterfaceobjects}%
- \else\ifx\next\empty
- \def\next####1{\dogetinterfaceobjects}%
- \else
- \def\next####1 {\dogetinterfaceobject[####1:\relax]\dogetinterfaceobjects}%
- \fi\fi\fi
- \next}%
- \def\dogetinterfaceobjects{\futurelet\next\dodogetinterfaceobjects}%
- \dogetinterfaceobjects}
-
-\def\dogetinterfacetemplate[#1:#2]%
- {\saveinterfaceelementline{#1}%
- \doifinsetelse{#1}{\currentinterface,all}
- {\let\dogetinterfaceobject\doskipinterfaceobject}
- {\advance\!!counta\plusone}}
-
-\def\doskipinterfaceobject[#1:#2#3]%
- {\if#2:%
- \let\dogetinterfaceobject\dogetinterfaceelement
- \dogetinterfaceobject[#1:#2#3]%
- \else
- \saveinterfaceelementline{#1}%
- \fi}
-
-\let\interfaceelementline\empty
-
-\def\dogetinterfaceelement[#1:#2#3]%
- {\ifx#2:%
- \!!countb\zerocount
- \def\!!stringa{#1}%
- \flushinterfaceelementline
- \else
- \advance\!!countb\plusone
- \saveinterfaceelementline{#1}%
- \ifnum\!!countb=\!!counta
- \@EA\dowithinterfaceelement\@EA{\!!stringa}{#1}%
- \let\dogetinterfaceobject\doskipinterfaceobject
- \fi
- \fi}
-
-%D The constants and variables are defined as described. When
-%D \type {\interfacetranslation} is \type{true}, we also
-%D generate a reverse translation. Because we don't want to put
-%D too big a burden on \TEX's hash table, this is no default
-%D behavior. Reverse translation is used in the commands that
-%D generate the quick reference cards. We are going to define
-%D the real \CONTEXT\ commands in an abstract way and generate
-%D those reference cards for each language without further
-%D interference.
-
-%D Anno 2003 I've forgotten why the \type {\c!internal} is
-%D still in there; it's probably a left over from an experiment.
-
-%D Once we're gone XML we can drop some of the extra mappings.
-
-\let\c!internal!y \string
-\def\c!internal!n {-}
-\let\c!internal! \c!internal!y
-
-% \def\setinterfaceconstant#1#2%
-% {\setvalue{\c!prefix!#1}{\c!internal!#1}%
-% \doifelse{#2}\nointerfaceobject % ?
-% {\debuggerinfo{constant}{#1 defined as #1 by default}%
-% }% \setvalue{\k!prefix!#1}{#1}} % was #2 -> #1
-% {\debuggerinfo{constant}{#1 defined as #2}%
-% \ifinterfacetranslation
-% \setvalue{\x!prefix!#1}{#2}%
-% \fi
-% \checksetvalue{\k!prefix!#2}{#1}%
-% \setvalue{\k!prefix!#2}{#1}}}
-
-% temporary mkiv hack
-
-\ifx\dowithinterfaceconstant\undefined \let\dowithinterfaceconstant\gobbletwoarguments \fi
-\ifx\dowithinterfacevariable\undefined \let\dowithinterfacevariable\gobbletwoarguments \fi
-
-\def\setinterfaceconstant#1#2%
- {\dowithinterfaceconstant{#1}{#2}%
- \setvalue{\c!prefix!#1}{\c!internal!#1}%
- \doifelse{#2}\nointerfaceobject % ?
- {\debuggerinfo{constant}{#1 defined as #1 by default}}%
- {\debuggerinfo{constant}{#1 defined as #2}%
- \checksetvalue{\k!prefix!#2}{#1}%
- \setvalue{\k!prefix!#2}{#1}}}
-
-\def\setinterfacevariable#1#2%
- {\dowithinterfacevariable{#1}{#2}%
- \doifelse{#2}\nointerfaceobject
- {\debuggerinfo{variable}{#1 defined as #1 by default}%
- \checksetvalue{\v!prefix!#1}{#1}%
- \setvalue{\v!prefix!#1}{#1}}
- {\debuggerinfo{variable}{#1 defined as #2}%
- \checksetvalue{\v!prefix!#1}{#2}%
- \setvalue{\v!prefix!#1}{#2}}}
-
-\def\checksetvalue#1#2%
- {\doifdefined{#1}{\doifvaluesomething{#1}{\doifnotvalue{#1}{#2}
- {\writestatus{problems}{set #1 to #2 overloads \getvalue{#1}}}}}}
-
-% \def\checksetvalue#1#2%
-% {\expandafter\ifx\csname#1\endcsname\relax\else
-% \expandafter\ifx\csname#1\endcsname\empty\else
-% \def\!!stringa{#1}%
-% \def\!!stringb{#2}%
-% \ifx\!!stringa\!!stringb\else
-% \writestatus{problems}{set #1 to #2 overloads \getvalue{#1}}%
-% \fi
-% \fi
-% \fi}
-
-\def\startvariables{\startinterfaceobjects\setinterfacevariable\stopvariables}
-\def\startconstants{\startinterfaceobjects\setinterfaceconstant\stopconstants}
-
-\let\stopvariables\relax
-\let\stopconstants\relax
-
-%D \macros
-%D {defineinterfaceconstant}
-%D
-%D Next we redefine a previously defined macro to take care of
-%D interface translation too. It's a bit redundant, because
-%D in these situations we could use the c||version, but for
-%D documentation purposes the x||alternative comes in handy.
-
-% \def\defineinterfaceconstant#1#2%
-% {\setvalue{\c!prefix!#1}{#2}%
-% \ifinterfacetranslation
-% \setvalue{\x!prefix!#1}{#2}%
-% \fi}
-
-\def\defineinterfaceconstant#1#2%
- {\setvalue{\c!prefix!#1}{#2}}
-
-% %D \macros
-% %D {startinterfacesetupconstant}
-% %D
-% %D The next command, \type{\startinterfacesetupconstant}, which
-% %D behavior also depends on the boolean, is used for constants
-% %D that are only needed in these quick reference macro's. The
-% %D following, more efficient approach does not work here,
-% %D because it sometimes generates spaces.
-% %D
-% %D \starttyping
-% %D \def\setinterfacesetupconstant
-% %D {\ifinterfacetranslation
-% %D \expandafter\setinterfaceconstant
-% %D \fi}
-% %D \stoptyping
-% %D
-% %D We therefore use the more redundant but robust method:
-
-% \def\setinterfacesetupvariable#1#2%
-% {\ifinterfacetranslation
-% \doifelse{#2}\nointerfaceobject
-% {\setvalue{\y!prefix!#1}{#1}}
-% {\setvalue{\y!prefix!#1}{#2}}%
-% \fi}
-%
-% \def\startsetupvariables{\startinterfaceobjects\setinterfacesetupvariable\stopsetupvariables}
-%
-% \let\stopsetupvariables\relax
-
-%D \macros
-%D {startelements}
-%D
-%D Due to the object oriented nature of \CONTEXT, we also need
-%D to define the elements that are used to build commands:
-%D
-%D \starttyping
-%D \startelements english dutch
-%D
-%D beginvan: begin beginvan
-%D eindvan: end eindvan
-%D start: start start
-%D stop: stop stop
-%D
-%D \stopelements
-%D \stoptyping
-%D
-%D Such elements sometimes are the same in diferent
-%D languages, but mostly they differ. Things can get even
-%D confusing when we look at for instance the setup commands.
-%D In english we say \type{\setup<something>}, but in dutch we
-%D have: \type{\stel<iets>in}. Such split elements are no
-%D problem, because we just define two elements. When no second
-%D part is needed, we use a \type{-}:
-%D
-%D \starttyping
-%D \startelements english dutch
-%D
-%D setupa: setup stel
-%D setupb: - in
-%D
-%D \stopelements
-%D \stoptyping
-%D
-%D Element translation is realized by means of:
-
-\def\setinterfaceelement#1#2%
- {\doifelse{#2}\nointerfaceobject
- {\debuggerinfo{element}{#1 defined as <empty>}%
- \resetvalue{\e!prefix!#1}}
- {\doifdefinedelse{\e!prefix!#1}
- {\doifnotvalue{\e!prefix!#1}{#2}
- {\debuggerinfo{element}{#1 redefined as #2}%
- \setvalue{\e!prefix!#1}{#2}}}
- {\debuggerinfo{element}{#1 defined as #2}%
- \setvalue{\e!prefix!#1}{#2}}}}
-
-\def\startelements{\startinterfaceobjects\setinterfaceelement\stopelements}
-
-\let\stopelements\relax
-
-%D \macros
-%D {startcommands}
-%D
-%D The last setup has to do with the commands themselve.
-%D Commands are defined as:
-%D
-%D \starttyping
-%D \startcommands english dutch
-%D
-%D starttekst: starttext starttekst
-%D stoptekst: stoptext stoptekst
-%D omlijnd: framed omlijnd
-%D margewoord: marginword margewoord
-%D
-%D \stopcommands
-%D \stoptyping
-
-% %D Here we also have to take care of the optional translation
-% %D needed for reference cards.
-
-% \def\setinterfacecommand#1#2%
-% {\doifelse{#2}\nointerfaceobject
-% {\debuggerinfo{command}{no link to #1}%
-% \setinterfacesetupvariable{#1}{#1}}
-% {\doifelse{#1}{#2}
-% {\debuggerinfo{command}{#1 remains #1}}
-% {\doifdefinedelse{#2}
-% {\debuggerinfo{command}{core command #2 redefined as #1}}%
-% {\debuggerinfo{command}{#2 defined as #1}}%
-% %\@EAEAEA\def\@EA\csname\@EA#2\@EA\endcsname\@EA{\csname#1\endcsname}}%
-% \@EA\def\csname#2\@EA\endcsname\@EA{\csname#1\endcsname}}% ugly but faster
-% \setinterfacesetupvariable{#1}{#2}}}
-
-\def\setinterfacecommand#1#2%
- {\doifelse{#2}\nointerfaceobject
- {\debuggerinfo{command}{no link to #1}}
- {\doifelse{#1}{#2}
- {\debuggerinfo{command}{#1 remains #1}}
- {\doifdefinedelse{#2}
- {\debuggerinfo{command}{core command #2 redefined as #1}}%
- {\debuggerinfo{command}{#2 defined as #1}}%
- \@EA\def\csname#2\@EA\endcsname\@EA{\csname#1\endcsname}}}}
-
-\def\startcommands{\startinterfaceobjects\setinterfacecommand\stopcommands}
-
-\let\stopcommands\relax
-
-% %D \macros
-% %D {getinterfaceconstant, getinterfacevariable}
-% %D
-% %D Generating the interface translation macro's that are used
-% %D in the reference lists, is enabled by setting the boolean:
-% %D
-% %D \starttyping
-% %D \interfacetranslationtrue
-% %D \stoptyping
-% %D
-% %D Keep in mind that enabling interfacetranslation costs a
-% %D bit of hash space.
-%
-% %D Interface translation is obsolete now that we use an \XML\
-% %D definition base.
-
-% \newif\ifinterfacetranslation
-
-% \def\getinterfaceconstant#1%
-% {\ifinterfacetranslation
-% \executeifdefined{\x!prefix!#1}{#1}%
-% \else
-% #1%
-% \fi}
-
-% \def\getinterfacevariable#1%
-% {\ifinterfacetranslation
-% \executeifdefined{\y!prefix!#1}{#1}%
-% \else
-% #1%
-% \fi}
-
-%D When a reference list is generated, one does not need to
-%D generate a new format. Just reloading the relevant
-%D definition files suits:
-%D
-%D \starttyping
-%D \interfacetranslationtrue
-%D \input mult-con
-%D \input mult-com
-%D \stoptyping
-
-%D \macros
-%D {interfaced}
-%D
-%D The setup commands translate the constants automatically.
-%D When we want to translate 'by hand' we can use the simple
-%D but effective command:
-%D
-%D \starttyping
-%D \interfaced {something}
-%D \stoptyping
-%D
-%D Giving \type{\interfaced{breedte}} results in \type{width}
-%D or, when not defined, in \type{breedte} itself. This
-%D macro is used in the font switching mechanism.
-
-\beginTEX
-
-\def\interfaced#1%
- {\expandafter\ifx\csname\k!prefix!#1\endcsname\relax
- #1%
- \else
- \csname\k!prefix!#1\endcsname
- \fi}
-
-\endTEX
-
-\beginETEX \ifcsname
-
-\def\interfaced#1%
- {\ifcsname\k!prefix!#1\endcsname
- \csname\k!prefix!#1\endcsname
- \else
- #1%
- \fi}
-
-\endETEX
-
-%D So much for the basic multi||lingual interface commands. The
-%D macro's can be enhanced with more testing facilities, but
-%D for the moment they suffice.
-
-%D Out of convenience we define the banners here.
-
-\def\contextbanner
- {ConTeXt \space
- ver: \contextversion \space \contextmark \space \space
- fmt: \formatversion \space \space
- int: \currentinterface/\currentresponses}
-
-\def\showcontextbanner
- {\writeline\writebanner{\contextbanner}\writeline}
-
-\edef\formatversion
- {\ifx\normalyear \undefined\the\year \else\the\normalyear \fi.%
- \ifx\normalmonth\undefined\the\month\else\the\normalmonth\fi.%
- \ifx\normalday \undefined\the\day \else\the\normalday \fi}
-
-\ifx\contextversion\undefined
- \def\contextversion {unknown}
- \def\contextversionnumber{0}
-\else
- \def\contextversionnumber#1.#2.#3 #4:#5\relax{#1\ifnum#2<10 0\fi#2\ifnum#3<10 0\fi#3 #4:#5}
- \edef\contextversionnumber{\expandafter\contextversionnumber\contextversion\relax\space\contextmark}
-\fi
-
-\ifx\undefined\normaldump
- \newtoks\everydump
- \let\normaldump\dump
- \def\dump{\the\everydump\normaldump}
-\fi
-
-\appendtoks \showcontextbanner \to \everydump
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mult-it.tex b/Master/texmf-dist/tex/context/base/mult-it.tex
new file mode 100644
index 00000000000..530a491527b
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mult-it.tex
@@ -0,0 +1,1636 @@
+% this file is auto-generated, don't edit this file
+%
+% definitions for interface variables for language it
+%
+\setinterfacevariable{Addition}{Aggiunta}
+\setinterfacevariable{Balloon}{Pallone}
+\setinterfacevariable{Character}{Lettera}
+\setinterfacevariable{Characters}{Lettere}
+\setinterfacevariable{CloseDocument}{ChiudiDocumento}
+\setinterfacevariable{ExitViewer}{EsciVisualizzatore}
+\setinterfacevariable{FirstPage}{PrimaPagina}
+\setinterfacevariable{FitHeight}{FitHeight}
+\setinterfacevariable{FitWidth}{FitWidth}
+\setinterfacevariable{GotoPage}{VaiAPagina}
+\setinterfacevariable{Greek}{Greco}
+\setinterfacevariable{Help}{Aiuto}
+\setinterfacevariable{HideField}{NascondiCampo}
+\setinterfacevariable{HideLayer}{HideLayer}
+\setinterfacevariable{Key}{Tasto}
+\setinterfacevariable{LastPage}{UltimaPagina}
+\setinterfacevariable{LoadForm}{CaricaForm}
+\setinterfacevariable{MONTH}{MESE}
+\setinterfacevariable{New}{Nuovo}
+\setinterfacevariable{NextJump}{SaltoSuccessivo}
+\setinterfacevariable{NextPage}{PaginaSuccessiva}
+\setinterfacevariable{Numbers}{Numeri}
+\setinterfacevariable{OpenNamedDocument}{OpenNamedDocument}
+\setinterfacevariable{Paragraph}{Capoverso}
+\setinterfacevariable{PauseMovie}{PausaFilm}
+\setinterfacevariable{PauseRendering}{PauseRendering}
+\setinterfacevariable{PauseSound}{PausaSuono}
+\setinterfacevariable{PreviousJump}{SaltoPrecedente}
+\setinterfacevariable{PreviousPage}{PaginaPrecedente}
+\setinterfacevariable{PrintDocument}{StampaDocumento}
+\setinterfacevariable{Query}{Richiesta}
+\setinterfacevariable{QueryAgain}{RinnovaRichiesta}
+\setinterfacevariable{ResetForm}{ReimpostaForm}
+\setinterfacevariable{ResumeMovie}{RiprendiFilm}
+\setinterfacevariable{ResumeRendering}{ResumeRendering}
+\setinterfacevariable{ResumeSound}{RiprendiSuono}
+\setinterfacevariable{Romannumerals}{Numeriromani}
+\setinterfacevariable{SaveDocument}{SalvaDocumento}
+\setinterfacevariable{SaveForm}{SalvaForm}
+\setinterfacevariable{SaveNamedDocument}{SaveNamedDocument}
+\setinterfacevariable{SearchAgain}{CercaAncora}
+\setinterfacevariable{SearchDocument}{CercaDocumento}
+\setinterfacevariable{ShowBookmarks}{MostraSegnalibro}
+\setinterfacevariable{ShowField}{MostraCampo}
+\setinterfacevariable{ShowThumbs}{MostraThumbs}
+\setinterfacevariable{StartMovie}{IniziaFilm}
+\setinterfacevariable{StartRendering}{StartRendering}
+\setinterfacevariable{StartSound}{IniziaSuono}
+\setinterfacevariable{StopMovie}{FermaFilm}
+\setinterfacevariable{StopRendering}{StopRendering}
+\setinterfacevariable{StopSound}{FermaSuono}
+\setinterfacevariable{SubmitForm}{MandaForm}
+\setinterfacevariable{ToggleLayer}{ToggleLayer}
+\setinterfacevariable{ToggleViewer}{ScambiaVisualizzatore}
+\setinterfacevariable{URL}{URL}
+\setinterfacevariable{VideLayer}{VideLayer}
+\setinterfacevariable{ViewerHelp}{AiutoVisualizzatore}
+\setinterfacevariable{WEEKDAY}{GIORNOSETTIMANA}
+\setinterfacevariable{WORD}{PAROLA}
+\setinterfacevariable{abbreviation}{abbreviazione}
+\setinterfacevariable{abbreviations}{abbreviazioni}
+\setinterfacevariable{absolute}{assoluto}
+\setinterfacevariable{action}{azione}
+\setinterfacevariable{after}{dopo}
+\setinterfacevariable{all}{tutti}
+\setinterfacevariable{always}{sempre}
+\setinterfacevariable{answerarea}{answerarea}
+\setinterfacevariable{appendices}{appendici}
+\setinterfacevariable{appendix}{appendice}
+\setinterfacevariable{april}{aprile}
+\setinterfacevariable{atmargin}{almargine}
+\setinterfacevariable{atpage}{apagina}
+\setinterfacevariable{august}{agosto}
+\setinterfacevariable{auto}{auto}
+\setinterfacevariable{autointro}{autointro}
+\setinterfacevariable{back}{dietro}
+\setinterfacevariable{background}{sfondo}
+\setinterfacevariable{backmatter}{postambolo}
+\setinterfacevariable{backpart}{postfazione}
+\setinterfacevariable{backspace}{backspace}
+\setinterfacevariable{backward}{indietro}
+\setinterfacevariable{before}{prima}
+\setinterfacevariable{big}{grande}
+\setinterfacevariable{bigbodyfont}{grossofontdeltesto}
+\setinterfacevariable{bigpreference}{grandepreferenza}
+\setinterfacevariable{blank}{rigovuoto}
+\setinterfacevariable{blockquote}{blockquote}
+\setinterfacevariable{bodymatter}{testiprincipali}
+\setinterfacevariable{bodypart}{testoprincipale}
+\setinterfacevariable{bold}{grassetto}
+\setinterfacevariable{bolditalic}{grassettocorsivo}
+\setinterfacevariable{boldslanted}{grassettoinclinato}
+\setinterfacevariable{bookmark}{segnalibro}
+\setinterfacevariable{both}{entrambi}
+\setinterfacevariable{bottom}{fondo}
+\setinterfacevariable{brief}{brief}
+\setinterfacevariable{broad}{ampio}
+\setinterfacevariable{buffer}{buffer}
+\setinterfacevariable{by}{da}
+\setinterfacevariable{calligraphic}{calligrafico}
+\setinterfacevariable{cap}{cap}
+\setinterfacevariable{capital}{maiuscolo}
+\setinterfacevariable{center}{center}
+\setinterfacevariable{chapter}{capitolo}
+\setinterfacevariable{character}{lettera}
+\setinterfacevariable{characters}{lettere}
+\setinterfacevariable{color}{colore}
+\setinterfacevariable{column}{colonna}
+\setinterfacevariable{columns}{colonne}
+\setinterfacevariable{command}{comando}
+\setinterfacevariable{commands}{comandi}
+\setinterfacevariable{comment}{commento}
+\setinterfacevariable{component}{componente}
+\setinterfacevariable{concept}{concetto}
+\setinterfacevariable{content}{indice}
+\setinterfacevariable{contents}{indici}
+\setinterfacevariable{continue}{continua}
+\setinterfacevariable{controls}{controlli}
+\setinterfacevariable{conversion}{coversione}
+\setinterfacevariable{current}{corrente}
+\setinterfacevariable{cutspace}{cutspace}
+\setinterfacevariable{date}{data}
+\setinterfacevariable{day}{giorno}
+\setinterfacevariable{december}{dicembre}
+\setinterfacevariable{default}{implicito}
+\setinterfacevariable{depth}{profondita}
+\setinterfacevariable{description}{descrizione}
+\setinterfacevariable{disable}{disattiva}
+\setinterfacevariable{display}{schermo}
+\setinterfacevariable{dot}{punto}
+\setinterfacevariable{doublesided}{doppiafaccia}
+\setinterfacevariable{each}{ogni}
+\setinterfacevariable{edge}{bordo}
+\setinterfacevariable{empty}{vuoto}
+\setinterfacevariable{endnote}{endnote}
+\setinterfacevariable{enumeration}{enumerazione}
+\setinterfacevariable{environment}{ambiente}
+\setinterfacevariable{even}{pari}
+\setinterfacevariable{external}{esterno}
+\setinterfacevariable{fact}{fatto}
+\setinterfacevariable{february}{febbraio}
+\setinterfacevariable{figure}{figura}
+\setinterfacevariable{figures}{figure}
+\setinterfacevariable{file}{file}
+\setinterfacevariable{final}{finale}
+\setinterfacevariable{first}{primo}
+\setinterfacevariable{firstcolumn}{firstcolumn}
+\setinterfacevariable{firstpage}{primapagina}
+\setinterfacevariable{firstsubpage}{primasottopagina}
+\setinterfacevariable{fit}{adatta}
+\setinterfacevariable{five}{cinque}
+\setinterfacevariable{fix}{fisso}
+\setinterfacevariable{fixed}{fisso}
+\setinterfacevariable{flexible}{flessibile}
+\setinterfacevariable{float}{oggettomobile}
+\setinterfacevariable{flushinner}{flushinner}
+\setinterfacevariable{flushleft}{flushleft}
+\setinterfacevariable{flushouter}{flushouter}
+\setinterfacevariable{flushright}{flushright}
+\setinterfacevariable{footer}{piedipagina}
+\setinterfacevariable{footnote}{notapdp}
+\setinterfacevariable{force}{forza}
+\setinterfacevariable{foreground}{foreground}
+\setinterfacevariable{formeel}{formeel}
+\setinterfacevariable{formula}{formula}
+\setinterfacevariable{formulae}{formule}
+\setinterfacevariable{forward}{avanti}
+\setinterfacevariable{four}{quattro}
+\setinterfacevariable{frame}{cornice}
+\setinterfacevariable{framedtext}{testoincorniciato}
+\setinterfacevariable{friday}{venerdi}
+\setinterfacevariable{frontmatter}{preambolo}
+\setinterfacevariable{frontpart}{prefazione}
+\setinterfacevariable{global}{globale}
+\setinterfacevariable{graphic}{grafico}
+\setinterfacevariable{graphics}{grafici}
+\setinterfacevariable{gray}{grigio}
+\setinterfacevariable{greek}{greco}
+\setinterfacevariable{grid}{griglia}
+\setinterfacevariable{halfline}{mezzariga}
+\setinterfacevariable{handwritten}{grafiamanuale}
+\setinterfacevariable{hang}{sospendi}
+\setinterfacevariable{hanging}{sospeso}
+\setinterfacevariable{head}{testa}
+\setinterfacevariable{header}{intestazione}
+\setinterfacevariable{height}{altezza}
+\setinterfacevariable{helptext}{testoaiuto}
+\setinterfacevariable{hencefore}{precedente}
+\setinterfacevariable{here}{qui}
+\setinterfacevariable{hereafter}{seguente}
+\setinterfacevariable{hidden}{nascosto}
+\setinterfacevariable{hiding}{nascondere}
+\setinterfacevariable{high}{alto}
+\setinterfacevariable{horizontal}{orizzontale}
+\setinterfacevariable{hyphenated}{sillabato}
+\setinterfacevariable{hz}{hz}
+\setinterfacevariable{inbetween}{tra}
+\setinterfacevariable{index}{indiceanalitico}
+\setinterfacevariable{indices}{indicianalitici}
+\setinterfacevariable{informeel}{informeel}
+\setinterfacevariable{inherit}{inherit}
+\setinterfacevariable{inleft}{insinistra}
+\setinterfacevariable{inmargin}{inmargine}
+\setinterfacevariable{inner}{interno}
+\setinterfacevariable{inneredge}{bordointerno}
+\setinterfacevariable{innermargin}{margineinterno}
+\setinterfacevariable{inright}{indestra}
+\setinterfacevariable{interaction}{interazione}
+\setinterfacevariable{interactionmenu}{menuinterattivo}
+\setinterfacevariable{intermezzi}{intermezzi}
+\setinterfacevariable{intermezzo}{intermezzo}
+\setinterfacevariable{intext}{intesto}
+\setinterfacevariable{intro}{intro}
+\setinterfacevariable{italic}{corsivo}
+\setinterfacevariable{italicbold}{corsivograssetto}
+\setinterfacevariable{item}{elemento}
+\setinterfacevariable{itemize}{elenco}
+\setinterfacevariable{its}{its}
+\setinterfacevariable{january}{gennaio}
+\setinterfacevariable{joinedup}{unito}
+\setinterfacevariable{july}{luglio}
+\setinterfacevariable{june}{giugno}
+\setinterfacevariable{keep}{mantieni}
+\setinterfacevariable{knockout}{knockout}
+\setinterfacevariable{label}{etichetta}
+\setinterfacevariable{landscape}{orizzontale}
+\setinterfacevariable{last}{ultimo}
+\setinterfacevariable{lastcolumn}{lastcolumn}
+\setinterfacevariable{lastpage}{ultimapagina}
+\setinterfacevariable{lastpagenumber}{lastpagenumber}
+\setinterfacevariable{lastsubpage}{ultimasottopagina}
+\setinterfacevariable{layer}{layer}
+\setinterfacevariable{left}{sinistra}
+\setinterfacevariable{leftedge}{bordosinistro}
+\setinterfacevariable{lefthanging}{lefthanging}
+\setinterfacevariable{leftmargin}{marginesinistro}
+\setinterfacevariable{leftpage}{paginasinistra}
+\setinterfacevariable{lefttoright}{lefttoright}
+\setinterfacevariable{legend}{legenda}
+\setinterfacevariable{lesshyphenation}{lesshyphenation}
+\setinterfacevariable{line}{riga}
+\setinterfacevariable{linenote}{linenote}
+\setinterfacevariable{lines}{righe}
+\setinterfacevariable{list}{elenco}
+\setinterfacevariable{local}{locale}
+\setinterfacevariable{localenvironment}{ambientelocale}
+\setinterfacevariable{logo}{logo}
+\setinterfacevariable{logos}{loghi}
+\setinterfacevariable{lohi}{pedap}
+\setinterfacevariable{loose}{lento}
+\setinterfacevariable{low}{basso}
+\setinterfacevariable{ls}{ls}
+\setinterfacevariable{makeup}{makeup}
+\setinterfacevariable{mar}{mar}
+\setinterfacevariable{march}{marzo}
+\setinterfacevariable{margin}{margine}
+\setinterfacevariable{marginedge}{bordomargine}
+\setinterfacevariable{margintitle}{titoloinmargine}
+\setinterfacevariable{marking}{marcatura}
+\setinterfacevariable{mathalignment}{mathalignment}
+\setinterfacevariable{mathcases}{mathcases}
+\setinterfacevariable{mathmatrix}{mathmatrix}
+\setinterfacevariable{max}{max}
+\setinterfacevariable{may}{maggio}
+\setinterfacevariable{mediaeval}{medievale}
+\setinterfacevariable{medium}{medio}
+\setinterfacevariable{middle}{centro}
+\setinterfacevariable{min}{min}
+\setinterfacevariable{minheight}{altezzamin}
+\setinterfacevariable{minwidth}{ampiezzamin}
+\setinterfacevariable{mirrored}{riflesso}
+\setinterfacevariable{monday}{lunedi}
+\setinterfacevariable{mono}{mono}
+\setinterfacevariable{month}{mese}
+\setinterfacevariable{morehyphenation}{morehyphenation}
+\setinterfacevariable{name}{nome}
+\setinterfacevariable{narrow}{stretto}
+\setinterfacevariable{negative}{negativo}
+\setinterfacevariable{never}{mai}
+\setinterfacevariable{new}{nuovo}
+\setinterfacevariable{next}{successivo}
+\setinterfacevariable{nextevenpage}{paginaparisuccessiva}
+\setinterfacevariable{nextoddpage}{paginadisparisuccessiva}
+\setinterfacevariable{nextpage}{paginasuccessiva}
+\setinterfacevariable{nextsubpage}{sottopaginasuccessiva}
+\setinterfacevariable{no}{no}
+\setinterfacevariable{nocheck}{nocheck}
+\setinterfacevariable{nofit}{nofit}
+\setinterfacevariable{nogrid}{nogrid}
+\setinterfacevariable{nohz}{nohz}
+\setinterfacevariable{nomarking}{nomarcature}
+\setinterfacevariable{none}{nessuno}
+\setinterfacevariable{nonumber}{nonumber}
+\setinterfacevariable{normal}{normale}
+\setinterfacevariable{nospacing}{nospacing}
+\setinterfacevariable{not}{non}
+\setinterfacevariable{note}{note}
+\setinterfacevariable{nothanging}{nonsospeso}
+\setinterfacevariable{nothyphenated}{nonsillabato}
+\setinterfacevariable{november}{novembre}
+\setinterfacevariable{nowhere}{danessunaparte}
+\setinterfacevariable{nowhite}{nobianco}
+\setinterfacevariable{number}{numero}
+\setinterfacevariable{numbers}{numeri}
+\setinterfacevariable{october}{ottobre}
+\setinterfacevariable{odd}{dispari}
+\setinterfacevariable{off}{disattivo}
+\setinterfacevariable{offset}{offset}
+\setinterfacevariable{old}{old}
+\setinterfacevariable{on}{attivo}
+\setinterfacevariable{one}{uno}
+\setinterfacevariable{opposite}{opposto}
+\setinterfacevariable{outer}{esterno}
+\setinterfacevariable{outeredge}{bordoesterno}
+\setinterfacevariable{outermargin}{margineesterno}
+\setinterfacevariable{overlay}{sovrapponi}
+\setinterfacevariable{overprint}{overprint}
+\setinterfacevariable{packed}{impaccato}
+\setinterfacevariable{page}{pagina}
+\setinterfacevariable{pagecomment}{commentopagina}
+\setinterfacevariable{pagenumber}{numeropagina}
+\setinterfacevariable{paper}{carta}
+\setinterfacevariable{paragraph}{capoverso}
+\setinterfacevariable{part}{parte}
+\setinterfacevariable{positive}{positivo}
+\setinterfacevariable{postponing}{posporre}
+\setinterfacevariable{postscript}{postscript}
+\setinterfacevariable{preference}{preferenza}
+\setinterfacevariable{preview}{anteprima}
+\setinterfacevariable{previous}{precedente}
+\setinterfacevariable{previousevenpage}{paginapariprecedente}
+\setinterfacevariable{previousoddpage}{paginadispariprecedente}
+\setinterfacevariable{previouspage}{paginaprecedente}
+\setinterfacevariable{previoussubpage}{sottopaginaprecedente}
+\setinterfacevariable{printable}{stampabile}
+\setinterfacevariable{process}{process}
+\setinterfacevariable{product}{prodotto}
+\setinterfacevariable{program}{programma}
+\setinterfacevariable{project}{progetto}
+\setinterfacevariable{protected}{protetto}
+\setinterfacevariable{quadruple}{quadruplo}
+\setinterfacevariable{quotation}{citazione}
+\setinterfacevariable{quote}{menzione}
+\setinterfacevariable{ran}{corse}
+\setinterfacevariable{random}{casuale}
+\setinterfacevariable{readonly}{solalettura}
+\setinterfacevariable{rectangular}{rettangolare}
+\setinterfacevariable{referral}{referral}
+\setinterfacevariable{register}{registro}
+\setinterfacevariable{regular}{regolare}
+\setinterfacevariable{rekening}{rekening}
+\setinterfacevariable{relative}{relativo}
+\setinterfacevariable{repeat}{ripeti}
+\setinterfacevariable{required}{richiestp}
+\setinterfacevariable{reset}{reimposta}
+\setinterfacevariable{reverse}{invertito}
+\setinterfacevariable{right}{destra}
+\setinterfacevariable{rightedge}{bordodestro}
+\setinterfacevariable{righthanging}{righthanging}
+\setinterfacevariable{rightmargin}{marginedestro}
+\setinterfacevariable{rightpage}{paginadestra}
+\setinterfacevariable{righttoleft}{righttoleft}
+\setinterfacevariable{roman}{roman}
+\setinterfacevariable{romannumerals}{numeriromani}
+\setinterfacevariable{rotate}{ruota}
+\setinterfacevariable{rotated}{ruotato}
+\setinterfacevariable{round}{rotondo}
+\setinterfacevariable{row}{row}
+\setinterfacevariable{rule}{linea}
+\setinterfacevariable{samepage}{stessapagina}
+\setinterfacevariable{sans}{sans}
+\setinterfacevariable{sansbold}{sansgrassetto}
+\setinterfacevariable{sansserif}{sansserif}
+\setinterfacevariable{saturday}{sabato}
+\setinterfacevariable{screen}{schermo}
+\setinterfacevariable{section}{capoverso}
+\setinterfacevariable{sectionblockenvironment}{ambientebloccosezione}
+\setinterfacevariable{sectionnumber}{numerosezione}
+\setinterfacevariable{see}{vedi}
+\setinterfacevariable{september}{settembre}
+\setinterfacevariable{serif}{serif}
+\setinterfacevariable{serried}{vicino}
+\setinterfacevariable{setups}{nastaveni}
+\setinterfacevariable{sheet}{sheet}
+\setinterfacevariable{singlesided}{facciasingola}
+\setinterfacevariable{slanted}{inclinato}
+\setinterfacevariable{slantedbold}{inclinatograssetto}
+\setinterfacevariable{small}{piccolo}
+\setinterfacevariable{smallbodyfont}{piccolofontdelcorpo}
+\setinterfacevariable{smallbold}{piccolograssetto}
+\setinterfacevariable{smallbolditalic}{piccolograssettocorsivo}
+\setinterfacevariable{smallboldslanted}{piccolograssettoinclinato}
+\setinterfacevariable{smallcaps}{maiuscoletto}
+\setinterfacevariable{smallitalic}{piccolocorsivo}
+\setinterfacevariable{smallitalicbold}{piccolocorsivograssetto}
+\setinterfacevariable{smallnormal}{piccolonormale}
+\setinterfacevariable{smallslanted}{piccoloinclinato}
+\setinterfacevariable{smallslantedbold}{piccoloinclinatograssetto}
+\setinterfacevariable{smalltype}{piccolotype}
+\setinterfacevariable{somewhere}{daqualcheparte}
+\setinterfacevariable{sorted}{ordinato}
+\setinterfacevariable{space}{spazio}
+\setinterfacevariable{spacing}{spaziatura}
+\setinterfacevariable{speech}{speech}
+\setinterfacevariable{split}{separa}
+\setinterfacevariable{spot}{spot}
+\setinterfacevariable{standard}{standard}
+\setinterfacevariable{start}{inizia}
+\setinterfacevariable{sticker}{sticker}
+\setinterfacevariable{stop}{termina}
+\setinterfacevariable{stopper}{stopper}
+\setinterfacevariable{stretch}{dilata}
+\setinterfacevariable{strict}{rigido}
+\setinterfacevariable{strong}{strong}
+\setinterfacevariable{strut}{strut}
+\setinterfacevariable{sub}{sotto}
+\setinterfacevariable{subbackward}{sottoindietro}
+\setinterfacevariable{subformula}{subformula}
+\setinterfacevariable{subforward}{sottoavanti}
+\setinterfacevariable{subject}{argomento}
+\setinterfacevariable{subpage}{sottopagina}
+\setinterfacevariable{subsection}{sottocapoverso}
+\setinterfacevariable{subsubject}{sottoargomento}
+\setinterfacevariable{subsubsection}{sottosottocapoverso}
+\setinterfacevariable{subsubsubject}{sottosottoargomento}
+\setinterfacevariable{subsubsubsection}{sottosottosottocapoverso}
+\setinterfacevariable{subsubsubsubject}{sottosottosottoargomento}
+\setinterfacevariable{subsubsubsubsection}{sottosottosottosottocapoverso}
+\setinterfacevariable{subsubsubsubsubject}{sottosottosottosottoargomento}
+\setinterfacevariable{subsubsubsubsubsection}{sottosottosottosottosottocapoverso}
+\setinterfacevariable{subsubsubsubsubsubject}{sottosottosottosottosottoargomento}
+\setinterfacevariable{subsubsubsubsubsubsection}{sottosottosottosottosottosottocapoverso}
+\setinterfacevariable{subsubsubsubsubsubsubject}{sottosottosottosottosottosottoargomento}
+\setinterfacevariable{subsubsubsubsubsubsubsection}{sottosottosottosottosottosottosottocapoverso}
+\setinterfacevariable{subsubsubsubsubsubsubsubject}{sottosottosottosottosottosottosottoargomento}
+\setinterfacevariable{subsubsubsubsubsubsubsubsection}{sottosottosottosottosottosottosottosottocapoverso}
+\setinterfacevariable{subsubsubsubsubsubsubsubsubject}{sottosottosottosottosottosottosottosottoargomento}
+\setinterfacevariable{subsubsubsubsubsubsubsubsubsection}{sottosottosottosottosottosottosottosottosottocapoverso}
+\setinterfacevariable{subsubsubsubsubsubsubsubsubsubject}{sottosottosottosottosottosottosottosottosottoargomento}
+\setinterfacevariable{sunday}{domenica}
+\setinterfacevariable{support}{supporto}
+\setinterfacevariable{sym}{sim}
+\setinterfacevariable{symbol}{simbolo}
+\setinterfacevariable{synchronize}{synchronize}
+\setinterfacevariable{system}{sistema}
+\setinterfacevariable{table}{tabella}
+\setinterfacevariable{tablehead}{testatabella}
+\setinterfacevariable{tables}{tabelle}
+\setinterfacevariable{tabletail}{codatabella}
+\setinterfacevariable{tabulate}{tabulato}
+\setinterfacevariable{tabulatehead}{testatabulato}
+\setinterfacevariable{tabulatetail}{codatabulato}
+\setinterfacevariable{tall}{alto}
+\setinterfacevariable{teletype}{teletype}
+\setinterfacevariable{temporary}{temporaneo}
+\setinterfacevariable{test}{test}
+\setinterfacevariable{text}{testo}
+\setinterfacevariable{three}{tre}
+\setinterfacevariable{thursday}{giovedi}
+\setinterfacevariable{title}{titolo}
+\setinterfacevariable{toggle}{toggle}
+\setinterfacevariable{tolerant}{tollerante}
+\setinterfacevariable{top}{cima}
+\setinterfacevariable{tuesday}{martedi}
+\setinterfacevariable{two}{due}
+\setinterfacevariable{txt}{txt}
+\setinterfacevariable{type}{type}
+\setinterfacevariable{typing}{typing}
+\setinterfacevariable{unavailable}{nondisponibile}
+\setinterfacevariable{unit}{unita}
+\setinterfacevariable{units}{unita}
+\setinterfacevariable{unknown}{ignoto}
+\setinterfacevariable{unpacked}{unpacked}
+\setinterfacevariable{url}{url}
+\setinterfacevariable{used}{usato}
+\setinterfacevariable{value}{valore}
+\setinterfacevariable{vertical}{verticale}
+\setinterfacevariable{very}{molto}
+\setinterfacevariable{verystrict}{moltorigido}
+\setinterfacevariable{verytolerant}{moltotollerante}
+\setinterfacevariable{weak}{weak}
+\setinterfacevariable{wednesday}{mercoledi}
+\setinterfacevariable{week}{settimana}
+\setinterfacevariable{weekday}{giornosettimana}
+\setinterfacevariable{white}{bianco}
+\setinterfacevariable{wide}{ampio}
+\setinterfacevariable{width}{ampiezza}
+\setinterfacevariable{xml}{xml}
+\setinterfacevariable{year}{anno}
+\setinterfacevariable{yes}{si}
+% definitions for interface constants for language it
+%
+\setinterfaceconstant{action}{azione}
+\setinterfaceconstant{address}{indirizzo}
+\setinterfaceconstant{after}{dopo}
+\setinterfaceconstant{afterhead}{dopotesta}
+\setinterfaceconstant{afterkey}{dopotasto}
+\setinterfaceconstant{align}{allinea}
+\setinterfaceconstant{aligncharacter}{allineacarattere}
+\setinterfaceconstant{alignmentcharacter}{carattereallineamento}
+\setinterfaceconstant{aligntitle}{allineatitolo}
+\setinterfaceconstant{alternative}{alternativa}
+\setinterfaceconstant{apa}{apa}
+\setinterfaceconstant{arrow}{freccia}
+\setinterfaceconstant{at}{ad}
+\setinterfaceconstant{author}{autore}
+\setinterfaceconstant{auto}{auto}
+\setinterfaceconstant{autofile}{autofile}
+\setinterfaceconstant{autofocus}{autofocus}
+\setinterfaceconstant{autohang}{autohang}
+\setinterfaceconstant{autostrut}{autostrut}
+\setinterfaceconstant{autowidth}{autoampiezza}
+\setinterfaceconstant{axis}{asse}
+\setinterfaceconstant{background}{sfondo}
+\setinterfaceconstant{backgroundcolor}{coloresfondo}
+\setinterfaceconstant{backgroundcorner}{angolosfondo}
+\setinterfaceconstant{backgrounddepth}{profonditasfondo}
+\setinterfaceconstant{backgroundoffset}{offsetsfondo}
+\setinterfaceconstant{backgroundradius}{raggiosfondo}
+\setinterfaceconstant{backgroundscreen}{schermosfondo}
+\setinterfaceconstant{backspace}{backspace}
+\setinterfaceconstant{balance}{bilanciamento}
+\setinterfaceconstant{before}{prima}
+\setinterfaceconstant{beforehead}{primaditesta}
+\setinterfaceconstant{bet}{bet}
+\setinterfaceconstant{big}{grande}
+\setinterfaceconstant{blank}{rigovuoto}
+\setinterfaceconstant{blockway}{blockway}
+\setinterfaceconstant{bodyfont}{fonttesto}
+\setinterfaceconstant{bookmark}{segnalibro}
+\setinterfaceconstant{bottom}{fondo}
+\setinterfaceconstant{bottomafter}{bottomafter}
+\setinterfaceconstant{bottombefore}{bottombefore}
+\setinterfaceconstant{bottomdistance}{distanzafondo}
+\setinterfaceconstant{bottomframe}{cornicefondo}
+\setinterfaceconstant{bottomoffset}{offsetfondo}
+\setinterfaceconstant{bottomspace}{spaziofondo}
+\setinterfaceconstant{bottomstate}{statofondo}
+\setinterfaceconstant{cache}{cache}
+\setinterfaceconstant{calculate}{calcola}
+\setinterfaceconstant{ccommand}{ccomando}
+\setinterfaceconstant{click}{click}
+\setinterfaceconstant{clickin}{clickdentro}
+\setinterfaceconstant{clickout}{clickfuori}
+\setinterfaceconstant{clipoffset}{clipoffset}
+\setinterfaceconstant{closeaction}{azionechiudi}
+\setinterfaceconstant{closecommand}{closecommand}
+\setinterfaceconstant{closepageaction}{azionechiudipagina}
+\setinterfaceconstant{closesymbol}{closesymbol}
+\setinterfaceconstant{color}{colore}
+\setinterfaceconstant{column}{colonna}
+\setinterfaceconstant{columndistance}{distanzacolonne}
+\setinterfaceconstant{columns}{colonne}
+\setinterfaceconstant{command}{comando}
+\setinterfaceconstant{commandafter}{comdandodopo}
+\setinterfaceconstant{commandbefore}{comandoprima}
+\setinterfaceconstant{commands}{comandi}
+\setinterfaceconstant{component}{component}
+\setinterfaceconstant{compoundhyphen}{compoundhyphen}
+\setinterfaceconstant{compress}{compress}
+\setinterfaceconstant{connector}{connector}
+\setinterfaceconstant{continue}{continua}
+\setinterfaceconstant{contrastcolor}{colorecontrasto}
+\setinterfaceconstant{controls}{controlli}
+\setinterfaceconstant{conversion}{conversione}
+\setinterfaceconstant{convertfile}{convertifile}
+\setinterfaceconstant{corner}{angolo}
+\setinterfaceconstant{coupling}{accoppiamento}
+\setinterfaceconstant{couplingway}{modoaccoppiamento}
+\setinterfaceconstant{criterium}{criterio}
+\setinterfaceconstant{current}{corrente}
+\setinterfaceconstant{cutspace}{cutspace}
+\setinterfaceconstant{dash}{dash}
+\setinterfaceconstant{dat}{dat}
+\setinterfaceconstant{date}{data}
+\setinterfaceconstant{deepnumbercommand}{deepnumbercommand}
+\setinterfaceconstant{deeptextcommand}{deeptextcommand}
+\setinterfaceconstant{default}{implicito}
+\setinterfaceconstant{delay}{attesa}
+\setinterfaceconstant{depth}{profondita}
+\setinterfaceconstant{depthcorrection}{correzioneprofondita}
+\setinterfaceconstant{direction}{direzione}
+\setinterfaceconstant{directory}{directory}
+\setinterfaceconstant{display}{display}
+\setinterfaceconstant{distance}{distanza}
+\setinterfaceconstant{dot}{punto}
+\setinterfaceconstant{doublesided}{doppiafaccia}
+\setinterfaceconstant{dummy}{dummy}
+\setinterfaceconstant{dx}{dx}
+\setinterfaceconstant{dy}{dy}
+\setinterfaceconstant{edge}{bordo}
+\setinterfaceconstant{edgedistance}{distanzabordo}
+\setinterfaceconstant{empty}{vuoto}
+\setinterfaceconstant{equalheight}{equalheight}
+\setinterfaceconstant{equalwidth}{equalwidth}
+\setinterfaceconstant{escape}{escape}
+\setinterfaceconstant{evenmargin}{marginepari}
+\setinterfaceconstant{expansion}{espansione}
+\setinterfaceconstant{extras}{extras}
+\setinterfaceconstant{factor}{fattore}
+\setinterfaceconstant{fallback}{fallback}
+\setinterfaceconstant{family}{famiglia}
+\setinterfaceconstant{fieldbackgroundcolor}{coloresfondocampo}
+\setinterfaceconstant{fieldframecolor}{colorecornicecampo}
+\setinterfaceconstant{fieldlayer}{fieldlayer}
+\setinterfaceconstant{fieldoffset}{offsetcampo}
+\setinterfaceconstant{file}{file}
+\setinterfaceconstant{filtercommand}{filtercommand}
+\setinterfaceconstant{focus}{focus}
+\setinterfaceconstant{focusin}{focusin}
+\setinterfaceconstant{focusout}{focusout}
+\setinterfaceconstant{footer}{piedipagina}
+\setinterfaceconstant{footerdistance}{distanzapdp}
+\setinterfaceconstant{footerstate}{statopdp}
+\setinterfaceconstant{foregroundcolor}{coloreprimopiano}
+\setinterfaceconstant{foregroundstyle}{foregroundstyle}
+\setinterfaceconstant{format}{format}
+\setinterfaceconstant{frame}{cornice}
+\setinterfaceconstant{framecolor}{colorecornice}
+\setinterfaceconstant{framecorner}{angolocornice}
+\setinterfaceconstant{framedepth}{profonditacornice}
+\setinterfaceconstant{frameoffset}{offsetcornice}
+\setinterfaceconstant{frameradius}{raggiocornice}
+\setinterfaceconstant{frames}{cornici}
+\setinterfaceconstant{from}{da}
+\setinterfaceconstant{get}{prendi}
+\setinterfaceconstant{global}{globale}
+\setinterfaceconstant{grid}{griglia}
+\setinterfaceconstant{hang}{sospendi}
+\setinterfaceconstant{headcolor}{coloretesta}
+\setinterfaceconstant{headcommand}{headcommand}
+\setinterfaceconstant{headconversion}{conversionetesta}
+\setinterfaceconstant{header}{intestazione}
+\setinterfaceconstant{headerdistance}{distanzaintestazione}
+\setinterfaceconstant{headerstate}{statointestazione}
+\setinterfaceconstant{headlabel}{etichettatesta}
+\setinterfaceconstant{headnumber}{numerotesta}
+\setinterfaceconstant{headstyle}{stiletesta}
+\setinterfaceconstant{height}{altezza}
+\setinterfaceconstant{hfactor}{hfactor}
+\setinterfaceconstant{hfil}{hfil}
+\setinterfaceconstant{hidenumber}{hidenumber}
+\setinterfaceconstant{hoffset}{hoffset}
+\setinterfaceconstant{horoffset}{horoffset}
+\setinterfaceconstant{hyphen}{hyphen}
+\setinterfaceconstant{icommand}{icomando}
+\setinterfaceconstant{in}{in}
+\setinterfaceconstant{inbetween}{tra}
+\setinterfaceconstant{increment}{incremento}
+\setinterfaceconstant{incrementnumber}{incrementanumero}
+\setinterfaceconstant{indenting}{rientro}
+\setinterfaceconstant{indentnext}{rientrasuccessivo}
+\setinterfaceconstant{indicator}{indicatore}
+\setinterfaceconstant{inner}{interno}
+\setinterfaceconstant{innermargin}{margineinterno}
+\setinterfaceconstant{inputfile}{inputfile}
+\setinterfaceconstant{interaction}{interazione}
+\setinterfaceconstant{interlinespace}{interlinea}
+\setinterfaceconstant{itemalign}{itemalign}
+\setinterfaceconstant{items}{elementi}
+\setinterfaceconstant{ken}{ken}
+\setinterfaceconstant{keyexpansion}{keyexpansion}
+\setinterfaceconstant{keyword}{parolachiave}
+\setinterfaceconstant{label}{etichetta}
+\setinterfaceconstant{left}{sinistra}
+\setinterfaceconstant{leftcolor}{coloresinistra}
+\setinterfaceconstant{leftcompoundhyphen}{leftcompoundhyphen}
+\setinterfaceconstant{leftedge}{bordosinistro}
+\setinterfaceconstant{leftedgedistance}{distanzabordosinistro}
+\setinterfaceconstant{leftframe}{cornicesinistra}
+\setinterfaceconstant{lefthyphen}{lefthyphen}
+\setinterfaceconstant{leftmargin}{marginesinistro}
+\setinterfaceconstant{leftmargindistance}{distanzamarginesinistro}
+\setinterfaceconstant{leftoffset}{offsetsinistro}
+\setinterfaceconstant{leftquotation}{citazionesinistra}
+\setinterfaceconstant{leftquote}{menzionesinistra}
+\setinterfaceconstant{leftsentence}{frasesinistra}
+\setinterfaceconstant{leftspeech}{leftspeech}
+\setinterfaceconstant{leftstyle}{stilesinistra}
+\setinterfaceconstant{leftsubsentence}{sottofrasesinistra}
+\setinterfaceconstant{lefttext}{testosinistro}
+\setinterfaceconstant{leftwidth}{ampiezzasinistra}
+\setinterfaceconstant{level}{livello}
+\setinterfaceconstant{levels}{livelli}
+\setinterfaceconstant{limittext}{limittext}
+\setinterfaceconstant{line}{riga}
+\setinterfaceconstant{linecorrection}{correzioneriga}
+\setinterfaceconstant{lines}{righe}
+\setinterfaceconstant{list}{elenco}
+\setinterfaceconstant{listtext}{listtext}
+\setinterfaceconstant{local}{locale}
+\setinterfaceconstant{location}{luogo}
+\setinterfaceconstant{logo}{logo}
+\setinterfaceconstant{logos}{loghi}
+\setinterfaceconstant{marcolor}{coloremarcatura}
+\setinterfaceconstant{margin}{margine}
+\setinterfaceconstant{margindistance}{distanzamargine}
+\setinterfaceconstant{marginedge}{bordomargine}
+\setinterfaceconstant{marginedgetext}{testobordomargine}
+\setinterfaceconstant{margintext}{testomargine}
+\setinterfaceconstant{marking}{marcatura}
+\setinterfaceconstant{marstyle}{stilemarcatura}
+\setinterfaceconstant{max}{max}
+\setinterfaceconstant{maxheight}{altezzamax}
+\setinterfaceconstant{maxwidth}{ampiezzamax}
+\setinterfaceconstant{menu}{menu}
+\setinterfaceconstant{method}{metodo}
+\setinterfaceconstant{middle}{centro}
+\setinterfaceconstant{middlespeech}{middlespeech}
+\setinterfaceconstant{middletext}{testocentro}
+\setinterfaceconstant{midsentence}{midsentence}
+\setinterfaceconstant{min}{min}
+\setinterfaceconstant{mindepth}{mindeoth}
+\setinterfaceconstant{minheight}{altezzamin}
+\setinterfaceconstant{minwidth}{ampiezzamin}
+\setinterfaceconstant{n}{n}
+\setinterfaceconstant{name}{nome}
+\setinterfaceconstant{nbottom}{nfondo}
+\setinterfaceconstant{nc}{nc}
+\setinterfaceconstant{next}{successivo}
+\setinterfaceconstant{nl}{nl}
+\setinterfaceconstant{nleft}{nsinistra}
+\setinterfaceconstant{nlines}{nrighe}
+\setinterfaceconstant{norm}{norma}
+\setinterfaceconstant{nr}{nr}
+\setinterfaceconstant{nright}{ndestra}
+\setinterfaceconstant{ntop}{ncima}
+\setinterfaceconstant{number}{numero}
+\setinterfaceconstant{numbercolor}{colorenumero}
+\setinterfaceconstant{numbercommand}{comandonumero}
+\setinterfaceconstant{numberconversion}{numberconversion}
+\setinterfaceconstant{numberconversionset}{numberconversionset}
+\setinterfaceconstant{numberdistance}{numberdistance}
+\setinterfaceconstant{numbering}{numerazione}
+\setinterfaceconstant{numberorder}{numberorder}
+\setinterfaceconstant{numberprefix}{numberprefix}
+\setinterfaceconstant{numbersegments}{numbersegments}
+\setinterfaceconstant{numberseparator}{separatorenumero}
+\setinterfaceconstant{numberseparatorset}{numberseparatorset}
+\setinterfaceconstant{numberset}{numberset}
+\setinterfaceconstant{numberstopper}{numberstopper}
+\setinterfaceconstant{numberstyle}{stilenumero}
+\setinterfaceconstant{numberwidth}{numberwidth}
+\setinterfaceconstant{nx}{nx}
+\setinterfaceconstant{ny}{ny}
+\setinterfaceconstant{object}{oggetto}
+\setinterfaceconstant{obstruction}{ostruzione}
+\setinterfaceconstant{oddmargin}{marginedispari}
+\setinterfaceconstant{offset}{offset}
+\setinterfaceconstant{openaction}{azioneapri}
+\setinterfaceconstant{openpageaction}{azioneapripagina}
+\setinterfaceconstant{option}{opzione}
+\setinterfaceconstant{orientation}{orientation}
+\setinterfaceconstant{outermargin}{margineesterno}
+\setinterfaceconstant{overprint}{overprint}
+\setinterfaceconstant{ownnumber}{numeroproprio}
+\setinterfaceconstant{page}{pagina}
+\setinterfaceconstant{pageboundaries}{limitipagina}
+\setinterfaceconstant{pagecolor}{colorepagina}
+\setinterfaceconstant{pagecommand}{comandopagina}
+\setinterfaceconstant{pageconversion}{pageconversion}
+\setinterfaceconstant{pageconversionset}{pageconversionset}
+\setinterfaceconstant{pagenumber}{numeropagina}
+\setinterfaceconstant{pageprefix}{pageprefix}
+\setinterfaceconstant{pageprefixconnector}{pageprefixconnector}
+\setinterfaceconstant{pageprefixconversion}{pageprefixconversion}
+\setinterfaceconstant{pageprefixconversionset}{pageprefixconversionset}
+\setinterfaceconstant{pageprefixsegments}{pageprefixsegments}
+\setinterfaceconstant{pageprefixseparatorset}{pageprefixseparatorset}
+\setinterfaceconstant{pageprefixset}{pageprefixset}
+\setinterfaceconstant{pageprefixstopper}{pageprefixstopper}
+\setinterfaceconstant{pagesegments}{pagesegments}
+\setinterfaceconstant{pageseparatorset}{pageseparatorset}
+\setinterfaceconstant{pageset}{pageset}
+\setinterfaceconstant{pagestate}{statopagina}
+\setinterfaceconstant{pagestopper}{pagestopper}
+\setinterfaceconstant{pagestyle}{stilepagina}
+\setinterfaceconstant{palet}{tavolozza}
+\setinterfaceconstant{paper}{carta}
+\setinterfaceconstant{paragraph}{capoverso}
+\setinterfaceconstant{place}{metti}
+\setinterfaceconstant{placehead}{mettitesta}
+\setinterfaceconstant{placestopper}{mettistopper}
+\setinterfaceconstant{position}{posizione}
+\setinterfaceconstant{prefix}{prefisso}
+\setinterfaceconstant{prefixconnector}{prefixconnector}
+\setinterfaceconstant{prefixconversion}{prefixconversion}
+\setinterfaceconstant{prefixconversionset}{prefixconversionset}
+\setinterfaceconstant{prefixsegments}{prefixsegments}
+\setinterfaceconstant{prefixseparatorset}{prefixseparatorset}
+\setinterfaceconstant{prefixset}{prefixset}
+\setinterfaceconstant{prefixstopper}{prefixstopper}
+\setinterfaceconstant{preset}{preimpostato}
+\setinterfaceconstant{preview}{anteprima}
+\setinterfaceconstant{previous}{precedente}
+\setinterfaceconstant{previousnumber}{numeroprecedente}
+\setinterfaceconstant{process}{process}
+\setinterfaceconstant{radius}{raggio}
+\setinterfaceconstant{random}{casuale}
+\setinterfaceconstant{reduction}{riduzione}
+\setinterfaceconstant{ref}{ref}
+\setinterfaceconstant{reference}{riferimento}
+\setinterfaceconstant{referenceprefix}{referenceprefix}
+\setinterfaceconstant{referencing}{referencing}
+\setinterfaceconstant{regionin}{entraregione}
+\setinterfaceconstant{regionout}{esciregione}
+\setinterfaceconstant{repeat}{ripeti}
+\setinterfaceconstant{reset}{reset}
+\setinterfaceconstant{resetnumber}{resetnumber}
+\setinterfaceconstant{resolution}{risoluzione}
+\setinterfaceconstant{right}{destra}
+\setinterfaceconstant{rightcolor}{coloredestra}
+\setinterfaceconstant{rightcompoundhyphen}{rightcompoundhyphen}
+\setinterfaceconstant{rightedge}{bordodestro}
+\setinterfaceconstant{rightedgedistance}{distanzabordodestro}
+\setinterfaceconstant{rightframe}{cornicedestra}
+\setinterfaceconstant{righthyphen}{righthyphen}
+\setinterfaceconstant{rightmargin}{marginedestro}
+\setinterfaceconstant{rightmargindistance}{distanzamarginedestro}
+\setinterfaceconstant{rightoffset}{offsetdestro}
+\setinterfaceconstant{rightquotation}{citazionedestra}
+\setinterfaceconstant{rightquote}{menzionedestra}
+\setinterfaceconstant{rightsentence}{frasedestra}
+\setinterfaceconstant{rightspeech}{rightspeech}
+\setinterfaceconstant{rightstyle}{stiledestra}
+\setinterfaceconstant{rightsubsentence}{sottofrasedestra}
+\setinterfaceconstant{righttext}{testodestro}
+\setinterfaceconstant{rightwidth}{ampiezzadestra}
+\setinterfaceconstant{rotation}{rotazione}
+\setinterfaceconstant{rule}{linea}
+\setinterfaceconstant{rulecolor}{colorelinea}
+\setinterfaceconstant{rulethickness}{spessorelinea}
+\setinterfaceconstant{samepage}{stessapagina}
+\setinterfaceconstant{sample}{campione}
+\setinterfaceconstant{saveinlist}{saveinlist}
+\setinterfaceconstant{scale}{scala}
+\setinterfaceconstant{scope}{scope}
+\setinterfaceconstant{screen}{schermo}
+\setinterfaceconstant{section}{sezione}
+\setinterfaceconstant{sectionconversion}{sectionconversion}
+\setinterfaceconstant{sectionconversionset}{sectionconversionset}
+\setinterfaceconstant{sectionnumber}{numerosezione}
+\setinterfaceconstant{sectionresetset}{sectionresetset}
+\setinterfaceconstant{sectionsegments}{sectionsegments}
+\setinterfaceconstant{sectionseparatorset}{sectionseparatorset}
+\setinterfaceconstant{sectionset}{sectionset}
+\setinterfaceconstant{sectionstopper}{sectionstopper}
+\setinterfaceconstant{separator}{separatore}
+\setinterfaceconstant{set}{set}
+\setinterfaceconstant{setups}{setups}
+\setinterfaceconstant{side}{lato}
+\setinterfaceconstant{sidealign}{sidealign}
+\setinterfaceconstant{sidemethod}{sidemethod}
+\setinterfaceconstant{sidespaceafter}{spaziolateraledopo}
+\setinterfaceconstant{sidespacebefore}{spaziolateraleprima}
+\setinterfaceconstant{sign}{segno}
+\setinterfaceconstant{size}{dimensione}
+\setinterfaceconstant{small}{piccolo}
+\setinterfaceconstant{sorttype}{sorttype}
+\setinterfaceconstant{source}{origine}
+\setinterfaceconstant{space}{spazio}
+\setinterfaceconstant{spaceafter}{spaziodopo}
+\setinterfaceconstant{spacebefore}{spazioprima}
+\setinterfaceconstant{spaceinbetween}{spaceinbetween}
+\setinterfaceconstant{spacing}{spaziatura}
+\setinterfaceconstant{split}{separa}
+\setinterfaceconstant{splitcolor}{splitcolor}
+\setinterfaceconstant{splitmethod}{splitmethod}
+\setinterfaceconstant{splitoffset}{splitoffset}
+\setinterfaceconstant{spot}{spot}
+\setinterfaceconstant{stack}{stack}
+\setinterfaceconstant{start}{inizia}
+\setinterfaceconstant{state}{stato}
+\setinterfaceconstant{step}{passo}
+\setinterfaceconstant{stop}{termina}
+\setinterfaceconstant{stopper}{stopper}
+\setinterfaceconstant{stretch}{dilata}
+\setinterfaceconstant{strut}{strut}
+\setinterfaceconstant{style}{stile}
+\setinterfaceconstant{sub}{sotto}
+\setinterfaceconstant{subtitle}{sottotitolo}
+\setinterfaceconstant{suffix}{suffix}
+\setinterfaceconstant{sx}{sx}
+\setinterfaceconstant{sy}{sy}
+\setinterfaceconstant{symalign}{symallinea}
+\setinterfaceconstant{symbol}{simbolo}
+\setinterfaceconstant{symbolset}{setsimboli}
+\setinterfaceconstant{symcolor}{coloresimbolo}
+\setinterfaceconstant{symstyle}{stilesimbolo}
+\setinterfaceconstant{synonym}{sinonimo}
+\setinterfaceconstant{synonymcolor}{coloresinonimi}
+\setinterfaceconstant{synonymcommand}{synonymcommand}
+\setinterfaceconstant{synonymstyle}{stilesinonimi}
+\setinterfaceconstant{tab}{tab}
+\setinterfaceconstant{text}{testo}
+\setinterfaceconstant{textcolor}{coloretesto}
+\setinterfaceconstant{textcommand}{comandotesto}
+\setinterfaceconstant{textdistance}{distanzatesto}
+\setinterfaceconstant{textlayer}{textlayer}
+\setinterfaceconstant{textmargin}{textmargin}
+\setinterfaceconstant{textmethod}{textmethod}
+\setinterfaceconstant{textseparator}{separatoretesto}
+\setinterfaceconstant{textsize}{dimensionetesto}
+\setinterfaceconstant{textstate}{statotesto}
+\setinterfaceconstant{textstyle}{stiletesto}
+\setinterfaceconstant{textwidth}{ampiezzatesto}
+\setinterfaceconstant{title}{titolo}
+\setinterfaceconstant{titlecolor}{coloretitolo}
+\setinterfaceconstant{titlecommand}{titlecommand}
+\setinterfaceconstant{titledistance}{distanzatitolo}
+\setinterfaceconstant{titleleft}{titleleft}
+\setinterfaceconstant{titleright}{titleright}
+\setinterfaceconstant{titlestyle}{stiletitolo}
+\setinterfaceconstant{to}{verso}
+\setinterfaceconstant{tolerance}{tolleranza}
+\setinterfaceconstant{top}{cima}
+\setinterfaceconstant{topdistance}{distanzacima}
+\setinterfaceconstant{topframe}{cornicecima}
+\setinterfaceconstant{topoffset}{offsetcima}
+\setinterfaceconstant{topspace}{spaziocima}
+\setinterfaceconstant{topstate}{statocima}
+\setinterfaceconstant{type}{type}
+\setinterfaceconstant{unit}{unita}
+\setinterfaceconstant{unknownreference}{riferimentoingoto}
+\setinterfaceconstant{urlalternative}{alternativaurl}
+\setinterfaceconstant{urlspace}{spaziourl}
+\setinterfaceconstant{validate}{verifica}
+\setinterfaceconstant{vcommand}{vcomando}
+\setinterfaceconstant{veroffset}{veroffset}
+\setinterfaceconstant{vfil}{vfil}
+\setinterfaceconstant{voffset}{voffset}
+\setinterfaceconstant{way}{modo}
+\setinterfaceconstant{wfactor}{wfactor}
+\setinterfaceconstant{white}{bianco}
+\setinterfaceconstant{width}{ampiezza}
+\setinterfaceconstant{xfactor}{xfactor}
+\setinterfaceconstant{xmax}{xmax}
+\setinterfaceconstant{xoffset}{xoffset}
+\setinterfaceconstant{xscale}{xscale}
+\setinterfaceconstant{xstep}{xstep}
+\setinterfaceconstant{yfactor}{yfactor}
+\setinterfaceconstant{ymax}{ymax}
+\setinterfaceconstant{yoffset}{yoffset}
+\setinterfaceconstant{yscale}{yscale}
+\setinterfaceconstant{ystep}{ystep}
+% definitions for interface elements for language it
+%
+\setinterfaceelement{answerlines}{answerlines}
+\setinterfaceelement{answerspace}{answerspace}
+\setinterfaceelement{begin}{inizio}
+\setinterfaceelement{complete}{completo}
+\setinterfaceelement{coupled}{accoppiato}
+\setinterfaceelement{currentlocal}{correntelocale}
+\setinterfaceelement{emptyone}{prazdne}
+\setinterfaceelement{emptytwo}{vuoti}
+\setinterfaceelement{end}{fine}
+\setinterfaceelement{endsetup}{}
+\setinterfaceelement{get}{prendi}
+\setinterfaceelement{increment}{incrementa}
+\setinterfaceelement{list}{elenco}
+\setinterfaceelement{listof}{elencodi}
+\setinterfaceelement{load}{carica}
+\setinterfaceelement{local}{locale}
+\setinterfaceelement{makeup}{makeup}
+\setinterfaceelement{next}{successivo}
+\setinterfaceelement{place}{metti}
+\setinterfaceelement{previous}{precedente}
+\setinterfaceelement{previouslocal}{precedentelocale}
+\setinterfaceelement{reserve}{riserva}
+\setinterfaceelement{see}{vedi}
+\setinterfaceelement{setup}{imposta}
+\setinterfaceelement{start}{inizia}
+\setinterfaceelement{stop}{termina}
+\setinterfaceelement{text}{testo}
+\setinterfaceelement{type}{type}
+% definitions for interface commands for language it
+%
+\setinterfacecommand{CAPPED}{CAP}
+\setinterfacecommand{Character}{Lettera}
+\setinterfacecommand{Characters}{Lettere}
+\setinterfacecommand{LABELTEXT}{TESTOETICHETTA}
+\setinterfacecommand{MONTH}{MESE}
+\setinterfacecommand{Numbers}{Numeri}
+\setinterfacecommand{Romannumerals}{Numeriromani}
+\setinterfacecommand{SmallCapped}{Cap}
+\setinterfacecommand{SmallCaps}{Caps}
+\setinterfacecommand{WEEKDAY}{GIORNOSETTIMANA}
+\setinterfacecommand{WORD}{PAROLA}
+\setinterfacecommand{WORDS}{PAROLE}
+\setinterfacecommand{Word}{Parola}
+\setinterfacecommand{Words}{Parole}
+\setinterfacecommand{about}{intorno}
+\setinterfacecommand{adaptlayout}{adattalayout}
+\setinterfacecommand{arg}{arg}
+\setinterfacecommand{at}{al}
+\setinterfacecommand{atleftmargin}{atleftmargin}
+\setinterfacecommand{atpage}{apagina}
+\setinterfacecommand{atrightmargin}{atrightmargin}
+\setinterfacecommand{background}{sfondo}
+\setinterfacecommand{backspace}{spaziodietro}
+\setinterfacecommand{blackrule}{lineanera}
+\setinterfacecommand{blackrules}{lineenere}
+\setinterfacecommand{blank}{rigovuoto}
+\setinterfacecommand{bookmark}{segnalibro}
+\setinterfacecommand{bottomdistance}{distanzafondo}
+\setinterfacecommand{bottomheight}{altezzafondo}
+\setinterfacecommand{bottomspace}{spaziofondo}
+\setinterfacecommand{but}{fondo}
+\setinterfacecommand{button}{pulsante}
+\setinterfacecommand{bypassblocks}{saltablocchi}
+\setinterfacecommand{character}{lettera}
+\setinterfacecommand{characters}{lettere}
+\setinterfacecommand{chem}{chim}
+\setinterfacecommand{clip}{clip}
+\setinterfacecommand{clonefield}{clonacampo}
+\setinterfacecommand{color}{colore}
+\setinterfacecommand{colorbar}{barracolori}
+\setinterfacecommand{colorvalue}{valorecolore}
+\setinterfacecommand{column}{colonna}
+\setinterfacecommand{comment}{commento}
+\setinterfacecommand{comparecolorgroup}{confrontagruppocolori}
+\setinterfacecommand{comparepalet}{confrontatavolozza}
+\setinterfacecommand{completepagenumber}{numeropaginacompleto}
+\setinterfacecommand{completeregister}{completeregister}
+\setinterfacecommand{component}{componenet}
+\setinterfacecommand{convertnumber}{convertinumero}
+\setinterfacecommand{copyfield}{copiacampo}
+\setinterfacecommand{correctwhitespace}{correggispaziobianco}
+\setinterfacecommand{coupledocument}{accoppiadocumento}
+\setinterfacecommand{couplemarking}{accoppiamarcatura}
+\setinterfacecommand{couplepage}{accoppiapagina}
+\setinterfacecommand{couplepaper}{accoppiacarta}
+\setinterfacecommand{coupleregister}{accoppiaregistro}
+\setinterfacecommand{crlf}{crlf}
+\setinterfacecommand{currentdate}{datadioggi}
+\setinterfacecommand{currentheadnumber}{numerotestacorrente}
+\setinterfacecommand{cutspace}{cutspace}
+\setinterfacecommand{date}{data}
+\setinterfacecommand{decouplemarking}{separamarcatura}
+\setinterfacecommand{decrementnumber}{decrementnumber}
+\setinterfacecommand{define}{definisci}
+\setinterfacecommand{defineaccent}{definisciaccento}
+\setinterfacecommand{defineblank}{definiscirigovuoto}
+\setinterfacecommand{defineblock}{definisciblocco}
+\setinterfacecommand{definebodyfont}{definiscifontdeltesto}
+\setinterfacecommand{definebodyfontenvironment}{definisciambientefontdeltesto}
+\setinterfacecommand{definebuffer}{definiscibuffer}
+\setinterfacecommand{definecharacter}{definiscicarattere}
+\setinterfacecommand{definecolor}{definiscicolore}
+\setinterfacecommand{definecolorgroup}{definiscigruppocolori}
+\setinterfacecommand{definecolumnbreak}{definecolumnbreak}
+\setinterfacecommand{definecolumnset}{definiscigruppocolonne}
+\setinterfacecommand{definecombination}{definecombination}
+\setinterfacecommand{definecombinedlist}{definiscielencocombinato}
+\setinterfacecommand{definecommand}{definiscicomando}
+\setinterfacecommand{defineconversion}{definisciconversione}
+\setinterfacecommand{definedescription}{definiscidescrizione}
+\setinterfacecommand{defineenumeration}{definiscienumerazione}
+\setinterfacecommand{definefield}{definiscicampo}
+\setinterfacecommand{definefieldstack}{definiscistackcampi}
+\setinterfacecommand{definefiguresymbol}{definiscifigurasimbolo}
+\setinterfacecommand{definefloat}{definiscioggettomobile}
+\setinterfacecommand{definefont}{definiscifont}
+\setinterfacecommand{definefontstyle}{definiscistilefont}
+\setinterfacecommand{definefontsynonym}{definiscisinonimofont}
+\setinterfacecommand{defineframed}{definisciincorniciato}
+\setinterfacecommand{defineframedtext}{definiscitestoincorniciato}
+\setinterfacecommand{definehbox}{definiscihbox}
+\setinterfacecommand{definehead}{definiscitesta}
+\setinterfacecommand{defineindenting}{definiscirientro}
+\setinterfacecommand{defineinmargin}{defineinmargin}
+\setinterfacecommand{defineinteractionmenu}{definiscimenuinterazione}
+\setinterfacecommand{defineitemgroup}{defineitemgroup}
+\setinterfacecommand{definelabel}{definiscietichetta}
+\setinterfacecommand{definelayer}{definelayer}
+\setinterfacecommand{definelayout}{definiscilayout}
+\setinterfacecommand{definelist}{definiscielenco}
+\setinterfacecommand{definelogo}{definiscilogo}
+\setinterfacecommand{definemainfield}{definiscicampoprincipale}
+\setinterfacecommand{definemakeup}{definiscimakeup}
+\setinterfacecommand{definemarking}{definiscimarcatura}
+\setinterfacecommand{definemathalignment}{definemathalignment}
+\setinterfacecommand{defineoutput}{definiscioutput}
+\setinterfacecommand{defineoverlay}{definiscisovrapposizione}
+\setinterfacecommand{definepagebreak}{definepagebreak}
+\setinterfacecommand{definepalet}{definiscitavolozza}
+\setinterfacecommand{definepapersize}{definiscidimensionicarta}
+\setinterfacecommand{defineparagraphs}{definiscicapoversi}
+\setinterfacecommand{defineplacement}{defineplacement}
+\setinterfacecommand{defineprofile}{definisciprofilo}
+\setinterfacecommand{defineprogram}{definisciprogramma}
+\setinterfacecommand{definerawfont}{definiscifontgrezzo}
+\setinterfacecommand{definereference}{definisciriferimento}
+\setinterfacecommand{definereferenceformat}{definisciformatoriferimento}
+\setinterfacecommand{definereferencelist}{definiscilistariferimenti}
+\setinterfacecommand{defineregister}{definisciregistro}
+\setinterfacecommand{definerule}{definiscilinea}
+\setinterfacecommand{definesection}{definiscisezione}
+\setinterfacecommand{definesectionblock}{definiscibloccosezione}
+\setinterfacecommand{definesorting}{definisciordinamento}
+\setinterfacecommand{definestartstop}{definisciiniziatermina}
+\setinterfacecommand{definestyle}{definiscistile}
+\setinterfacecommand{definesubfield}{definiscisottocampo}
+\setinterfacecommand{definesymbol}{definiscisimbolo}
+\setinterfacecommand{definesynonyms}{definiscisinonimi}
+\setinterfacecommand{definetabletemplate}{definiscimodellotabella}
+\setinterfacecommand{definetabulate}{definiscitabulato}
+\setinterfacecommand{definetext}{definiscitesto}
+\setinterfacecommand{definetextposition}{definisciposizionetesto}
+\setinterfacecommand{definetextvariable}{definiscivariabiletesto}
+\setinterfacecommand{definetype}{definiscitype}
+\setinterfacecommand{definetyping}{definiscityping}
+\setinterfacecommand{defineversion}{definisciversion}
+\setinterfacecommand{determineheadnumber}{determinanumerotesta}
+\setinterfacecommand{determinelistcharacteristics}{determinacarattersticheelenco}
+\setinterfacecommand{determineregistercharacteristics}{determinacaratteristicheregistro}
+\setinterfacecommand{dimension}{dimensione}
+\setinterfacecommand{disableinteractionmenu}{disabilitamenuinterazione}
+\setinterfacecommand{domicile}{domicilio}
+\setinterfacecommand{donttest}{notest}
+\setinterfacecommand{edgedistance}{distanzabordo}
+\setinterfacecommand{edgewidth}{ampiezzabordo}
+\setinterfacecommand{emptylines}{emptylines}
+\setinterfacecommand{environment}{ambiente}
+\setinterfacecommand{externalfigure}{figuraesterna}
+\setinterfacecommand{fact}{fatto}
+\setinterfacecommand{field}{campi}
+\setinterfacecommand{fieldstack}{stackcampi}
+\setinterfacecommand{fillinfield}{camporiempimento}
+\setinterfacecommand{fillinline}{rigariempimento}
+\setinterfacecommand{fillinrules}{lineeriempimento}
+\setinterfacecommand{fillintext}{testoriempimento}
+\setinterfacecommand{fitfield}{adattacampo}
+\setinterfacecommand{fixedspace}{spaziofisso}
+\setinterfacecommand{fixedspaces}{spazifissi}
+\setinterfacecommand{followprofile}{seguiprofilo}
+\setinterfacecommand{followprofileversion}{seguiversioneprofilo}
+\setinterfacecommand{followversion}{seguiversione}
+\setinterfacecommand{footerdistance}{distanzapdp}
+\setinterfacecommand{footerheight}{altezzapdp}
+\setinterfacecommand{footnote}{notapdp}
+\setinterfacecommand{footnotetext}{testonotapdp}
+\setinterfacecommand{forceblocks}{forzablocchi}
+\setinterfacecommand{formulanumber}{numeroformula}
+\setinterfacecommand{fraction}{frazione}
+\setinterfacecommand{framed}{incorniciato}
+\setinterfacecommand{from}{da}
+\setinterfacecommand{getbuffer}{prendibuffer}
+\setinterfacecommand{getmarking}{prendimarcatura}
+\setinterfacecommand{getnumber}{getnumber}
+\setinterfacecommand{godown}{vaigiu}
+\setinterfacecommand{goto}{vaia}
+\setinterfacecommand{gotobox}{vaiabox}
+\setinterfacecommand{gotopage}{vaiapagina}
+\setinterfacecommand{graycolor}{coloregrigio}
+\setinterfacecommand{greyvalue}{valoregrigio}
+\setinterfacecommand{grid}{griglia}
+\setinterfacecommand{hairline}{capello}
+\setinterfacecommand{head}{testa}
+\setinterfacecommand{headerdistance}{distanzaintestazione}
+\setinterfacecommand{headerheight}{altezzaintestazione}
+\setinterfacecommand{headlevel}{livellotesta}
+\setinterfacecommand{headnumber}{numerotesta}
+\setinterfacecommand{headsym}{headsym}
+\setinterfacecommand{headtext}{testoinstestazioni}
+\setinterfacecommand{hideblocks}{nascondiblocchi}
+\setinterfacecommand{high}{ap}
+\setinterfacecommand{hl}{hl}
+\setinterfacecommand{immediatebetweenlist}{immediatebetweenlist}
+\setinterfacecommand{immediatetolist}{immediatetolist}
+\setinterfacecommand{in}{in}
+\setinterfacecommand{incrementnumber}{incrementanumero}
+\setinterfacecommand{indenting}{rientro}
+\setinterfacecommand{inframed}{circondato}
+\setinterfacecommand{infull}{perlungo}
+\setinterfacecommand{ininner}{ininner}
+\setinterfacecommand{inleft}{insinistra}
+\setinterfacecommand{inleftedge}{inlatosinistro}
+\setinterfacecommand{inleftmargin}{inmarginesinistro}
+\setinterfacecommand{inline}{inriga}
+\setinterfacecommand{inmargin}{inmargine}
+\setinterfacecommand{inmframed}{inmaframed}
+\setinterfacecommand{inneredgedistance}{inneredgedistance}
+\setinterfacecommand{inneredgewidth}{inneredgewidth}
+\setinterfacecommand{innermargindistance}{innermargindistance}
+\setinterfacecommand{innermarginwidth}{innermarginwidth}
+\setinterfacecommand{inothermargin}{inaltromargine}
+\setinterfacecommand{inouter}{inouter}
+\setinterfacecommand{inright}{indestra}
+\setinterfacecommand{inrightedge}{inlatodestro}
+\setinterfacecommand{inrightmargin}{inmarginedestro}
+\setinterfacecommand{installlanguage}{installalingua}
+\setinterfacecommand{interactionbar}{barrainterazione}
+\setinterfacecommand{interactionbuttons}{pulsantinterazione}
+\setinterfacecommand{interactionmenu}{menuinterattivo}
+\setinterfacecommand{item}{elemento}
+\setinterfacecommand{items}{elementi}
+\setinterfacecommand{its}{el}
+\setinterfacecommand{keepblocks}{tieniblocchi}
+\setinterfacecommand{label}{etichetta}
+\setinterfacecommand{labels}{etichette}
+\setinterfacecommand{labeltext}{testoetichetta}
+\setinterfacecommand{language}{lingua}
+\setinterfacecommand{leftaligned}{allineasinistra}
+\setinterfacecommand{leftedgedistance}{distanzabordosinistro}
+\setinterfacecommand{leftedgewidth}{ampiezzabordosinistro}
+\setinterfacecommand{leftmargindistance}{distanzamarginesinistro}
+\setinterfacecommand{leftmarginwidth}{ampiezzamarginesinistro}
+\setinterfacecommand{leg}{leg}
+\setinterfacecommand{linewidth}{spessoreriga}
+\setinterfacecommand{listheight}{altezzaelenco}
+\setinterfacecommand{listlength}{lunghezzaelenco}
+\setinterfacecommand{listsymbol}{listsymbol}
+\setinterfacecommand{listwidth}{ampiezzaelenco}
+\setinterfacecommand{logfields}{logcampi}
+\setinterfacecommand{lohi}{pedap}
+\setinterfacecommand{low}{ped}
+\setinterfacecommand{macroname}{nome}
+\setinterfacecommand{mainlanguage}{linguaprincipale}
+\setinterfacecommand{makeupheight}{altezzamakeup}
+\setinterfacecommand{makeupwidth}{ampiezzamakeup}
+\setinterfacecommand{mar}{mar}
+\setinterfacecommand{margindistance}{distanzamargine}
+\setinterfacecommand{marginrule}{lineamargine}
+\setinterfacecommand{margintext}{testoinmargine}
+\setinterfacecommand{margintitle}{titoloinmargine}
+\setinterfacecommand{marginwidth}{ampiezzamargine}
+\setinterfacecommand{marginword}{parolainmargine}
+\setinterfacecommand{marking}{marcatura}
+\setinterfacecommand{markversion}{marcaversione}
+\setinterfacecommand{mathematics}{matematica}
+\setinterfacecommand{menubutton}{pulsantemenu}
+\setinterfacecommand{mframed}{maframed}
+\setinterfacecommand{midaligned}{allineacentro}
+\setinterfacecommand{mirror}{riflessione}
+\setinterfacecommand{month}{mese}
+\setinterfacecommand{moveformula}{spostaformula}
+\setinterfacecommand{moveongrid}{spostaagriglia}
+\setinterfacecommand{movesidefloat}{movesidefloat}
+\setinterfacecommand{navigating}{navigating}
+\setinterfacecommand{nodimension}{nientedimensioni}
+\setinterfacecommand{noheaderandfooterlines}{nientelineintestazionepdp}
+\setinterfacecommand{noindenting}{nienterientro}
+\setinterfacecommand{nolist}{nienteelenco}
+\setinterfacecommand{nomarking}{nientemarcatura}
+\setinterfacecommand{nomoreblocks}{bastablocchi}
+\setinterfacecommand{nomorefiles}{bastafile}
+\setinterfacecommand{nop}{nop}
+\setinterfacecommand{nospace}{nientespazio}
+\setinterfacecommand{note}{nota}
+\setinterfacecommand{notopandbottomlines}{nientelineecimafondo}
+\setinterfacecommand{notsmallcapped}{nocap}
+\setinterfacecommand{nowhitespace}{nientespaziobianco}
+\setinterfacecommand{numberofsubpages}{numberofsubpages}
+\setinterfacecommand{numbers}{numeri}
+\setinterfacecommand{outeredgedistance}{outeredgedistance}
+\setinterfacecommand{outeredgewidth}{outeredgewidth}
+\setinterfacecommand{outermargindistance}{outermargindistance}
+\setinterfacecommand{outermarginwidth}{outermarginwidth}
+\setinterfacecommand{overbar}{sopralinea}
+\setinterfacecommand{overbars}{sopralinee}
+\setinterfacecommand{overstrike}{sbarrato}
+\setinterfacecommand{overstrikes}{sbarrati}
+\setinterfacecommand{packed}{impaccato}
+\setinterfacecommand{page}{pagina}
+\setinterfacecommand{pagedepth}{pagedepth}
+\setinterfacecommand{pagenumber}{numeropagina}
+\setinterfacecommand{pageoffset}{pageoffset}
+\setinterfacecommand{pagereference}{riferimentopagina}
+\setinterfacecommand{pagetype}{tipopagina}
+\setinterfacecommand{paperheight}{altezzacarta}
+\setinterfacecommand{paperwidth}{ampiezzacarta}
+\setinterfacecommand{periods}{punti}
+\setinterfacecommand{plaatsruwelijst}{placerawlist}
+\setinterfacecommand{placebookmarks}{mettisegnalibro}
+\setinterfacecommand{placecombinedlist}{mettielencocombinato}
+\setinterfacecommand{placefloat}{placefloat}
+\setinterfacecommand{placefootnotes}{mettinotepdp}
+\setinterfacecommand{placeformula}{mettiformula}
+\setinterfacecommand{placeheadnumber}{posizionanumerotesta}
+\setinterfacecommand{placeheadtext}{posizionatestotesta}
+\setinterfacecommand{placelegend}{mettilegenda}
+\setinterfacecommand{placelist}{mettielenco}
+\setinterfacecommand{placelocalfootnotes}{mettinotepdplocali}
+\setinterfacecommand{placelogos}{mettiloghi}
+\setinterfacecommand{placeongrid}{mettiingriglia}
+\setinterfacecommand{placeontopofeachother}{mettiunosullaltro}
+\setinterfacecommand{placepagenumber}{mettinumeropagina}
+\setinterfacecommand{placereferencelist}{placereferencelist}
+\setinterfacecommand{placeregister}{mettiregistro}
+\setinterfacecommand{placerule}{mettilinea}
+\setinterfacecommand{placesidebyside}{mettifiancoafianco}
+\setinterfacecommand{placesubformula}{mettisottoformula}
+\setinterfacecommand{placetextvariable}{mettivariabiletesto}
+\setinterfacecommand{position}{posizione}
+\setinterfacecommand{positiontext}{posizionatesto}
+\setinterfacecommand{printpaperheight}{altezzacartastampa}
+\setinterfacecommand{printpaperwidth}{ampiezzacartastampa}
+\setinterfacecommand{processblocks}{elaborablocchi}
+\setinterfacecommand{processpage}{elaborapagina}
+\setinterfacecommand{product}{prodotto}
+\setinterfacecommand{program}{programma}
+\setinterfacecommand{project}{progetto}
+\setinterfacecommand{publication}{pubblicazione}
+\setinterfacecommand{quotation}{citazione}
+\setinterfacecommand{quote}{menzione}
+\setinterfacecommand{ran}{ran}
+\setinterfacecommand{redo}{rifai}
+\setinterfacecommand{ref}{rif}
+\setinterfacecommand{reference}{riferimento}
+\setinterfacecommand{referral}{referral}
+\setinterfacecommand{referraldate}{datareferral}
+\setinterfacecommand{referring}{referring}
+\setinterfacecommand{remark}{commento}
+\setinterfacecommand{reset}{reimposta}
+\setinterfacecommand{resetmarking}{reimpostamarcatura}
+\setinterfacecommand{resetnumber}{resetnumber}
+\setinterfacecommand{resettext}{resettextcontent}
+\setinterfacecommand{rightaligned}{allineadestra}
+\setinterfacecommand{rightedgedistance}{distanzabordodestro}
+\setinterfacecommand{rightedgewidth}{ampiezzabordodestro}
+\setinterfacecommand{rightmargindistance}{distanzamarginedestro}
+\setinterfacecommand{rightmarginwidth}{ampiezzamarginedestro}
+\setinterfacecommand{romannumerals}{numeriromani}
+\setinterfacecommand{rotate}{ruota}
+\setinterfacecommand{scale}{scala}
+\setinterfacecommand{screen}{schermo}
+\setinterfacecommand{selectblocks}{selezionablocchi}
+\setinterfacecommand{selectpaper}{selezionacarta}
+\setinterfacecommand{selectversion}{selezionaversione}
+\setinterfacecommand{setnumber}{setnumber}
+\setinterfacecommand{settextcontent}{settext}
+\setinterfacecommand{settextvariable}{setvariabiletesto}
+\setinterfacecommand{setupalign}{impostaallineamento}
+\setinterfacecommand{setupanswerarea}{setupanswerarea}
+\setinterfacecommand{setuparranging}{impostaparranging}
+\setinterfacecommand{setupbackground}{impostasfondo}
+\setinterfacecommand{setupbackgrounds}{impostasfondi}
+\setinterfacecommand{setupblackrules}{impostalineenere}
+\setinterfacecommand{setupblank}{impostarigovuoto}
+\setinterfacecommand{setupblock}{impostablocco}
+\setinterfacecommand{setupbodyfont}{impostafontdeltesto}
+\setinterfacecommand{setupbodyfontenvironment}{impostaambientefontdeltesto}
+\setinterfacecommand{setupbottom}{impostafondo}
+\setinterfacecommand{setupbottomtexts}{impostatestifondo}
+\setinterfacecommand{setupbuffer}{impostabuffer}
+\setinterfacecommand{setupbuttons}{impostapulsanti}
+\setinterfacecommand{setupcapitals}{impostamaiuscole}
+\setinterfacecommand{setupcaption}{impostacaption}
+\setinterfacecommand{setupcaptions}{impostacaptions}
+\setinterfacecommand{setupclipping}{impostaclippling}
+\setinterfacecommand{setupcolor}{impostacolore}
+\setinterfacecommand{setupcolors}{impostacolori}
+\setinterfacecommand{setupcolumns}{impostacolonne}
+\setinterfacecommand{setupcolumnset}{impostagruppocolonne}
+\setinterfacecommand{setupcolumnsetlines}{setupcolumnsetlines}
+\setinterfacecommand{setupcolumnsetstart}{setupcolumnsetstart}
+\setinterfacecommand{setupcombinations}{impostacombinazioni}
+\setinterfacecommand{setupcombinedlist}{impostaelencocombinato}
+\setinterfacecommand{setupcomment}{impostacommento}
+\setinterfacecommand{setupdescriptions}{impostadescrizioni}
+\setinterfacecommand{setupenumerations}{impostaenumerazioni}
+\setinterfacecommand{setupexternalfigures}{impostafigureesterne}
+\setinterfacecommand{setupfield}{impostacampo}
+\setinterfacecommand{setupfields}{impostacampi}
+\setinterfacecommand{setupfillinlines}{impostarigheriempimento}
+\setinterfacecommand{setupfillinrules}{impostalineeriempimento}
+\setinterfacecommand{setupfloat}{impostaoggettomobile}
+\setinterfacecommand{setupfloats}{impostaoggettimobili}
+\setinterfacecommand{setupfloatsplitting}{impostaspezzamentooggettomobile}
+\setinterfacecommand{setupfooter}{impostapdp}
+\setinterfacecommand{setupfootertexts}{impostatestipdp}
+\setinterfacecommand{setupfootnotedefinition}{impostadefinizionenotepdp}
+\setinterfacecommand{setupfootnotes}{impostanotepdp}
+\setinterfacecommand{setupforms}{impostaforms}
+\setinterfacecommand{setupformulas}{impostaformule}
+\setinterfacecommand{setupframed}{impostaincorniciato}
+\setinterfacecommand{setupframedtexts}{impostatestiincorniciati}
+\setinterfacecommand{setuphead}{impostatesta}
+\setinterfacecommand{setupheader}{impostainstestazione}
+\setinterfacecommand{setupheadertexts}{impostatestiintestazioni}
+\setinterfacecommand{setupheadnumber}{impostanumerotesta}
+\setinterfacecommand{setupheads}{impostateste}
+\setinterfacecommand{setupheadtext}{impostatestointestazioni}
+\setinterfacecommand{setuphyphenmark}{impostasegnosillabazione}
+\setinterfacecommand{setupindentations}{impostarientri}
+\setinterfacecommand{setupindenting}{impostarientro}
+\setinterfacecommand{setupinmargin}{impostainmargine}
+\setinterfacecommand{setupinteraction}{impostainterazione}
+\setinterfacecommand{setupinteractionbar}{impostabarrainterazione}
+\setinterfacecommand{setupinteractionmenu}{impostamenuinterazione}
+\setinterfacecommand{setupinteractionscreen}{impostaschermointerazione}
+\setinterfacecommand{setupinterlinespace}{impostainterlinea}
+\setinterfacecommand{setupitemgroup}{setupitemgroup}
+\setinterfacecommand{setupitemgroups}{impostaelencazioni}
+\setinterfacecommand{setupitems}{impostaelementi}
+\setinterfacecommand{setuplabeltext}{impostatestoetichette}
+\setinterfacecommand{setuplanguage}{impostalingua}
+\setinterfacecommand{setuplayout}{impostalayout}
+\setinterfacecommand{setuplegend}{impostalegenda}
+\setinterfacecommand{setuplinenumbering}{impostanumerazionerighe}
+\setinterfacecommand{setuplines}{impostarighe}
+\setinterfacecommand{setuplinewidth}{impostaampiezzariga}
+\setinterfacecommand{setuplist}{impostaelenco}
+\setinterfacecommand{setupmakeup}{impostamakeup}
+\setinterfacecommand{setupmarginblocks}{impostablocchimargine}
+\setinterfacecommand{setupmarginrules}{impostalineemargine}
+\setinterfacecommand{setupmarking}{impostamarcatura}
+\setinterfacecommand{setupmathalignment}{setupmathalignment}
+\setinterfacecommand{setupnarrower}{impostapiustretto}
+\setinterfacecommand{setupnumber}{impostanumerazione}
+\setinterfacecommand{setupnumbering}{impostanumerazione}
+\setinterfacecommand{setupoppositeplacing}{impostaposizionamentoopposti}
+\setinterfacecommand{setupoutput}{impostaoutput}
+\setinterfacecommand{setuppagecomment}{impostacommentopagina}
+\setinterfacecommand{setuppagenumber}{impostanumeropagina}
+\setinterfacecommand{setuppagenumbering}{impostanumerazionepagina}
+\setinterfacecommand{setuppagetransitions}{impostatransizionepagina}
+\setinterfacecommand{setuppalet}{impostatavolozza}
+\setinterfacecommand{setuppaper}{setuppaper}
+\setinterfacecommand{setuppapersize}{impostadimensionicarta}
+\setinterfacecommand{setupparagraphnumbering}{impostanumerazionecapoversi}
+\setinterfacecommand{setupparagraphs}{impostacapoversi}
+\setinterfacecommand{setupplacement}{setupplacement}
+\setinterfacecommand{setuppositioning}{impostaposizionamento}
+\setinterfacecommand{setupprofiles}{impostaprofili}
+\setinterfacecommand{setupprograms}{impostaprogrammi}
+\setinterfacecommand{setuppublications}{impostapubblicazioni}
+\setinterfacecommand{setupquote}{impostamenzione}
+\setinterfacecommand{setupreferencelist}{impostalistariferimenti}
+\setinterfacecommand{setupreferencing}{impostariferimento}
+\setinterfacecommand{setupregister}{impostaregistro}
+\setinterfacecommand{setuprotate}{impostarotazione}
+\setinterfacecommand{setuprule}{impostalinea}
+\setinterfacecommand{setups}{impostazioni}
+\setinterfacecommand{setupscreens}{impostaschermi}
+\setinterfacecommand{setupsection}{impostasezione}
+\setinterfacecommand{setupsectionblock}{impostabloccosezione}
+\setinterfacecommand{setupsorting}{impostaordinamento}
+\setinterfacecommand{setupspacing}{impostaspaziatura}
+\setinterfacecommand{setupstartstop}{impostainiziatermina}
+\setinterfacecommand{setupstrut}{impostastrut}
+\setinterfacecommand{setupsubpagenumber}{impostanumerosottopagina}
+\setinterfacecommand{setupsymbolset}{impostasetsimboli}
+\setinterfacecommand{setupsynchronization}{impostasincronizzazione}
+\setinterfacecommand{setupsynchronizationbar}{impostabarrasincronizzazione}
+\setinterfacecommand{setupsynonyms}{impostasinonimi}
+\setinterfacecommand{setupsystem}{impostasistema}
+\setinterfacecommand{setuptab}{impostatab}
+\setinterfacecommand{setuptables}{impostatabelle}
+\setinterfacecommand{setuptabulate}{impostatabulato}
+\setinterfacecommand{setuptext}{impostatesto}
+\setinterfacecommand{setuptextposition}{impostaposizionetesto}
+\setinterfacecommand{setuptextrules}{impostalineetesto}
+\setinterfacecommand{setuptexttexts}{impostatestotesti}
+\setinterfacecommand{setuptextvariable}{impostavariabiletesto}
+\setinterfacecommand{setupthinrules}{impostalineesottili}
+\setinterfacecommand{setuptolerance}{impostatolleranza}
+\setinterfacecommand{setuptop}{impostacima}
+\setinterfacecommand{setuptoptexts}{impostatesticima}
+\setinterfacecommand{setuptype}{impostatype}
+\setinterfacecommand{setuptyping}{impostatyping}
+\setinterfacecommand{setupunderbar}{impostasottolinea}
+\setinterfacecommand{setupurl}{impostaurl}
+\setinterfacecommand{setupversions}{impostaversioni}
+\setinterfacecommand{setupwhitespace}{impostaspaziobianco}
+\setinterfacecommand{showbodyfont}{mostrafontdeltesto}
+\setinterfacecommand{showbodyfontenvironment}{mostraambientefontdeltesto}
+\setinterfacecommand{showcolor}{mostracolore}
+\setinterfacecommand{showcolorgroup}{mostragruppocolori}
+\setinterfacecommand{showexternalfigures}{mostrafiguresterne}
+\setinterfacecommand{showfields}{mostracampi}
+\setinterfacecommand{showframe}{mostracornice}
+\setinterfacecommand{showgrid}{mostragriglia}
+\setinterfacecommand{showlayout}{mostralyout}
+\setinterfacecommand{showmakeup}{mostramakeup}
+\setinterfacecommand{showpalet}{mostratavolozza}
+\setinterfacecommand{showprint}{mostrastampa}
+\setinterfacecommand{showsetups}{mostraimpostazioni}
+\setinterfacecommand{showstruts}{mostrastruts}
+\setinterfacecommand{showsymbolset}{mostrasetsimboli}
+\setinterfacecommand{smallcapped}{cap}
+\setinterfacecommand{someline}{qualcheriga}
+\setinterfacecommand{somewhere}{daqualcheparte}
+\setinterfacecommand{space}{spazio}
+\setinterfacecommand{splitfloat}{spezzaoggettomobile}
+\setinterfacecommand{startalignment}{iniziaallineamento}
+\setinterfacecommand{startbackground}{iniziasfondo}
+\setinterfacecommand{startcoding}{iniziacodifica}
+\setinterfacecommand{startcolor}{iniziacolore}
+\setinterfacecommand{startcolumnmakeup}{startcolumnmakeup}
+\setinterfacecommand{startcolumns}{iniziacolonne}
+\setinterfacecommand{startcolumnset}{iniziagruppocolonne}
+\setinterfacecommand{startcombination}{iniziacombinazione}
+\setinterfacecommand{startcomponent}{iniziacomponente}
+\setinterfacecommand{startdocument}{iniziadocumento}
+\setinterfacecommand{startenvironment}{iniziaambiente}
+\setinterfacecommand{startfigure}{iniziafigura}
+\setinterfacecommand{startglobal}{iniziaglobale}
+\setinterfacecommand{startline}{iniziariga}
+\setinterfacecommand{startlinecorrection}{iniziacorrezioneriga}
+\setinterfacecommand{startlinenumbering}{inizianumerazionerighe}
+\setinterfacecommand{startlines}{iniziarighe}
+\setinterfacecommand{startlocal}{inizialocale}
+\setinterfacecommand{startlocalfootnotes}{inizianotepdplocali}
+\setinterfacecommand{startmakeup}{iniziamakeup}
+\setinterfacecommand{startmarginblock}{iniziabloccomargine}
+\setinterfacecommand{startmarginrule}{inizialineamargine}
+\setinterfacecommand{startnarrower}{iniziapiustretto}
+\setinterfacecommand{startopposite}{iniziaopposto}
+\setinterfacecommand{startoverlay}{iniziasovrapposizione}
+\setinterfacecommand{startoverzicht}{iniziaoverview}
+\setinterfacecommand{startpacked}{iniziaimpaccato}
+\setinterfacecommand{startpositioning}{iniziaposizionamento}
+\setinterfacecommand{startproduct}{iniziaprodotto}
+\setinterfacecommand{startprofile}{iniziaprofilo}
+\setinterfacecommand{startproject}{iniziaprogetto}
+\setinterfacecommand{startquotation}{iniziacitazione}
+\setinterfacecommand{startraster}{iniziaraster}
+\setinterfacecommand{startsymbolset}{iniziasetsimboli}
+\setinterfacecommand{startsynchronization}{iniziasincronizzazione}
+\setinterfacecommand{starttable}{iniziatabella}
+\setinterfacecommand{starttables}{iniziatabelle}
+\setinterfacecommand{starttext}{iniziatesto}
+\setinterfacecommand{starttextrule}{inizialineatesto}
+\setinterfacecommand{startunpacked}{iniziaunpacked}
+\setinterfacecommand{startversion}{iniziaversione}
+\setinterfacecommand{stopalignment}{terminaallineamento}
+\setinterfacecommand{stopbackground}{terminasfondo}
+\setinterfacecommand{stopcoding}{terminacodifica}
+\setinterfacecommand{stopcolor}{terminacolore}
+\setinterfacecommand{stopcolumnmakeup}{stopcolumnmakeup}
+\setinterfacecommand{stopcolumns}{terminacolonne}
+\setinterfacecommand{stopcolumnset}{terminagruppocolonne}
+\setinterfacecommand{stopcombination}{terminacombinazione}
+\setinterfacecommand{stopcomponent}{terminacomponente}
+\setinterfacecommand{stopdocument}{terminadocumento}
+\setinterfacecommand{stopenvironment}{terminaambiente}
+\setinterfacecommand{stopglobal}{terminaglobale}
+\setinterfacecommand{stopline}{terminariga}
+\setinterfacecommand{stoplinecorrection}{terminacorrezioneriga}
+\setinterfacecommand{stoplinenumbering}{terminanumerazionerighe}
+\setinterfacecommand{stoplines}{terminarighe}
+\setinterfacecommand{stoplocal}{terminalocale}
+\setinterfacecommand{stoplocalfootnotes}{terminanotepdplocali}
+\setinterfacecommand{stopmakeup}{terminamakeup}
+\setinterfacecommand{stopmarginblock}{terminabloccomargine}
+\setinterfacecommand{stopmarginrule}{terminalineamargine}
+\setinterfacecommand{stopnarrower}{terminapiustretto}
+\setinterfacecommand{stopopposite}{terminaopposto}
+\setinterfacecommand{stopoverlay}{terminasovrapposizione}
+\setinterfacecommand{stopoverzicht}{terminaoverview}
+\setinterfacecommand{stoppacked}{terminaimpaccato}
+\setinterfacecommand{stoppositioning}{terminaposizionamento}
+\setinterfacecommand{stopproduct}{terminaprodotto}
+\setinterfacecommand{stopprofile}{terminaprofili}
+\setinterfacecommand{stopproject}{terminaprogetto}
+\setinterfacecommand{stopquotation}{terminacitazione}
+\setinterfacecommand{stopraster}{terminaraster}
+\setinterfacecommand{stopsynchronization}{terminasincronizzazione}
+\setinterfacecommand{stoptable}{terminatabella}
+\setinterfacecommand{stoptables}{terminatabelle}
+\setinterfacecommand{stoptext}{terminatesto}
+\setinterfacecommand{stoptextrule}{terminalineatesto}
+\setinterfacecommand{stopunpacked}{terminaunpacked}
+\setinterfacecommand{stopversion}{terminaversioni}
+\setinterfacecommand{stretched}{stirato}
+\setinterfacecommand{subformulanumber}{numerosottoformula}
+\setinterfacecommand{subpagenumber}{subpagenumber}
+\setinterfacecommand{switchtobodyfont}{cambiaafontdeltesto}
+\setinterfacecommand{switchtorawfont}{passaafontgrezzo}
+\setinterfacecommand{sym}{sim}
+\setinterfacecommand{symbol}{simbolo}
+\setinterfacecommand{synchronizationbar}{barrasincronizzazione}
+\setinterfacecommand{synchronize}{sincronizza}
+\setinterfacecommand{tab}{tab}
+\setinterfacecommand{testcolumn}{testcolumn}
+\setinterfacecommand{testpage}{testpage}
+\setinterfacecommand{tex}{tex}
+\setinterfacecommand{textheight}{altezzatesto}
+\setinterfacecommand{textreference}{riferimentotesto}
+\setinterfacecommand{textrule}{lineatesto}
+\setinterfacecommand{textvariable}{variabiletesto}
+\setinterfacecommand{textwidth}{ampiezzatesto}
+\setinterfacecommand{thinrule}{lineasottile}
+\setinterfacecommand{thinrules}{lineesottili}
+\setinterfacecommand{tooltip}{tooltip}
+\setinterfacecommand{topdistance}{distanzacima}
+\setinterfacecommand{topheight}{altezzacima}
+\setinterfacecommand{topspace}{spaziocima}
+\setinterfacecommand{totalnumberofpages}{numerototaledipagine}
+\setinterfacecommand{translate}{traduci}
+\setinterfacecommand{txt}{txt}
+\setinterfacecommand{typ}{typ}
+\setinterfacecommand{type}{type}
+\setinterfacecommand{typebuffer}{typebuffer}
+\setinterfacecommand{typefile}{typefile}
+\setinterfacecommand{underbar}{sottolinea}
+\setinterfacecommand{underbars}{sottolinee}
+\setinterfacecommand{unitmeaning}{nomeunita}
+\setinterfacecommand{unknown}{ignoto}
+\setinterfacecommand{useJSscripts}{usaJSscripts}
+\setinterfacecommand{useURL}{usaURL}
+\setinterfacecommand{useXMLfilter}{useXMLfilter}
+\setinterfacecommand{useblocks}{usablocco}
+\setinterfacecommand{usecommands}{usacomandi}
+\setinterfacecommand{useencoding}{usacodifica}
+\setinterfacecommand{useexternaldocument}{usadocumentoesterno}
+\setinterfacecommand{useexternalfigure}{usafiguraesterna}
+\setinterfacecommand{useexternalfile}{usafileesterno}
+\setinterfacecommand{useexternalfiles}{usafileesterni}
+\setinterfacecommand{useexternalsoundtrack}{usacolonnasonoraesterna}
+\setinterfacecommand{usemodule}{usamodulo}
+\setinterfacecommand{usemodules}{usamoduli}
+\setinterfacecommand{usepath}{usacartella}
+\setinterfacecommand{usereferences}{usariferimenti}
+\setinterfacecommand{usespecials}{usaspecialita}
+\setinterfacecommand{usesymbols}{usasimboli}
+\setinterfacecommand{usetypescript}{usetypescript}
+\setinterfacecommand{usetypescriptfile}{usetypescriptfile}
+\setinterfacecommand{useurl}{usaurl}
+\setinterfacecommand{version}{versione}
+\setinterfacecommand{vl}{vl}
+\setinterfacecommand{weekday}{giornosettimana}
+\setinterfacecommand{whitespace}{spaziobianco}
+\setinterfacecommand{wordright}{paroladestra}
+\setinterfacecommand{writebetweenlist}{scrividentroelenco}
+\setinterfacecommand{writetolist}{scriviinelenco}
+\setinterfacecommand{writetoreferencelist}{scriviinlistariferimenti}
+\setinterfacecommand{writetoregister}{scriviinregistro}
+%
+\endinput \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/base/mult-mcs.tex b/Master/texmf-dist/tex/context/base/mult-mcs.tex
new file mode 100644
index 00000000000..bee7b777d10
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mult-mcs.tex
@@ -0,0 +1,198 @@
+\setinterfacemessage{references}{1}{neznama reference --}
+\setinterfacemessage{references}{3}{neznamy typ reference --}
+\setinterfacemessage{references}{2}{duplicitni reference -- na strane --}
+\setinterfacemessage{references}{4}{nedovolena reference --}
+\setinterfacemessage{references}{title}{reference}
+\setinterfacemessage{references}{30}{neznamy objekt --}
+\setinterfacemessage{references}{31}{duplicitni object --}
+\setinterfacemessage{references}{21}{dokument -- nacten}
+\setinterfacemessage{references}{22}{dokument -- neni interaktivni}
+\setinterfacemessage{references}{23}{obskurni (nejasna) reference -- (prefix=--)}
+\setinterfacemessage{documents}{1}{sheet --}
+\setinterfacemessage{documents}{title}{sheets}
+\setinterfacemessage{documents}{2}{number --}
+\setinterfacemessage{handlings}{1}{font handling --}
+\setinterfacemessage{handlings}{3}{unknown font handling --}
+\setinterfacemessage{handlings}{2}{font handling -- is loaded}
+\setinterfacemessage{handlings}{title}{handling}
+\setinterfacemessage{systems}{title}{system}
+\setinterfacemessage{systems}{41}{externi soubor -- ve skupine -- neexistuje}
+\setinterfacemessage{systems}{9}{-- nenalezeno/nezpracovano}
+\setinterfacemessage{systems}{91}{papertray --}
+\setinterfacemessage{systems}{8}{nova verze pomocneho souboru, je treba druheho behu}
+\setinterfacemessage{systems}{21}{pomocny soubor necten}
+\setinterfacemessage{systems}{20}{vyznam (trideni) -- nacten}
+\setinterfacemessage{systems}{5}{makra z -- nactena}
+\setinterfacemessage{systems}{4}{prikaz -- je jiz definovan}
+\setinterfacemessage{systems}{27}{verze}
+\setinterfacemessage{systems}{26}{registry}
+\setinterfacemessage{systems}{25}{reference}
+\setinterfacemessage{systems}{24}{plovouci bloky}
+\setinterfacemessage{systems}{1}{nacteni pomocneho souboru odlozeno (typemode)}
+\setinterfacemessage{systems}{23}{-- upraveno na --}
+\setinterfacemessage{systems}{22}{pouzijte platny pomocny soubor}
+\setinterfacemessage{systems}{2}{-- nacteno}
+\setinterfacemessage{systems}{19}{vyznam (synonyma) -- nacten}
+\setinterfacemessage{systems}{18}{synonymum -- -- neexistuje}
+\setinterfacemessage{systems}{7}{makra z -- jsou jiz nactena}
+\setinterfacemessage{systems}{6}{zadna makra v -- nenalezena}
+\setinterfacemessage{systems}{14}{vynucena nova stranka v seznamu na --}
+\setinterfacemessage{systems}{15}{uklada se buffer --}
+\setinterfacemessage{systems}{16}{sazi se buffer --}
+\setinterfacemessage{systems}{17}{sazi se doslovny (verbatim) buffer --}
+\setinterfacemessage{systems}{13}{znacka -- definovana --}
+\setinterfacemessage{systems}{12}{pomosny soubor neni setriden, pouzijte texutil}
+\setinterfacemessage{systems}{11}{vytvarim jednoduchy pomocny soubor}
+\setinterfacemessage{systems}{10}{nepouzivejte em v --}
+\setinterfacemessage{floatblocks}{1}{-- precislovano / -- => --}
+\setinterfacemessage{floatblocks}{3}{-- presunuto}
+\setinterfacemessage{floatblocks}{2}{-- ulozeno}
+\setinterfacemessage{floatblocks}{5}{poradi prizpusobeno}
+\setinterfacemessage{floatblocks}{4}{-- umisteno}
+\setinterfacemessage{floatblocks}{7}{pocet spodnich plovoucich objektu je omezen na --}
+\setinterfacemessage{floatblocks}{6}{pocet hornich plovoucich objektu je omezen na --}
+\setinterfacemessage{floatblocks}{9}{poradi naruseno}
+\setinterfacemessage{floatblocks}{8}{radku je mene nez --}
+\setinterfacemessage{floatblocks}{title}{plovouciobjekty}
+\setinterfacemessage{floatblocks}{13}{there is nothing to split}
+\setinterfacemessage{floatblocks}{12}{nedefinovano}
+\setinterfacemessage{floatblocks}{11}{nedan zadny blok}
+\setinterfacemessage{floatblocks}{10}{-- omezeno}
+\setinterfacemessage{interactions}{1}{pomer -- x -- (s x v)}
+\setinterfacemessage{interactions}{3}{neaktivni}
+\setinterfacemessage{interactions}{2}{aktivni}
+\setinterfacemessage{interactions}{5}{unknown attachment --}
+\setinterfacemessage{interactions}{4}{zadna strankova synchronizace (--) v hmode}
+\setinterfacemessage{interactions}{6}{attachment file -- does not exist}
+\setinterfacemessage{interactions}{title}{interakce}
+\setinterfacemessage{interactions}{21}{-- kod vlozen}
+\setinterfacemessage{structures}{1}{zacatek oddilu (sekce) --}
+\setinterfacemessage{structures}{title}{struktury}
+\setinterfacemessage{structures}{2}{konec oddilu (sekce) --}
+\setinterfacemessage{linguals}{1}{vzory -- pro -- nacteny (n=--,e=--,m=--)}
+\setinterfacemessage{linguals}{3}{deleni slov -- pro -- nacteno (n=--,e=--,m=--)}
+\setinterfacemessage{linguals}{2}{zadne vzory -- pro -- (n=--,e=--,m=--) (--,--)}
+\setinterfacemessage{linguals}{5}{vzory pro -- nenacteny}
+\setinterfacemessage{linguals}{4}{zadne deleni slov -- pro -- (n=--,e=--,m=--)}
+\setinterfacemessage{linguals}{7}{specificke volby jazyka [--] zavadeji -- (zavlecenou) mezeru}
+\setinterfacemessage{linguals}{6}{jazyk -- neni definovan}
+\setinterfacemessage{linguals}{9}{language -- is active}
+\setinterfacemessage{linguals}{8}{specificke volby jazyka [--] bez mezer pripojeny}
+\setinterfacemessage{linguals}{title}{jazyky}
+\setinterfacemessage{linguals}{10}{vzory --nacteny}
+\setinterfacemessage{regimes}{1}{kodovani --}
+\setinterfacemessage{regimes}{3}{nezname kodovani --}
+\setinterfacemessage{regimes}{2}{je nacteno kodovani --}
+\setinterfacemessage{regimes}{title}{kodovani}
+\setinterfacemessage{filters}{1}{filter -- is loaded}
+\setinterfacemessage{filters}{title}{filter}
+\setinterfacemessage{filters}{2}{unknown filter --}
+\setinterfacemessage{verbatims}{1}{soubor -- neexistuje}
+\setinterfacemessage{verbatims}{title}{verbatim}
+\setinterfacemessage{encodings}{1}{kodovani --}
+\setinterfacemessage{encodings}{3}{nezname kodovani --}
+\setinterfacemessage{encodings}{2}{je nacteno kodovani --}
+\setinterfacemessage{encodings}{title}{kodovani}
+\setinterfacemessage{columns}{1}{je mozno pouze -- sloupcu}
+\setinterfacemessage{columns}{3}{problem, vypina se vyvazovani}
+\setinterfacemessage{columns}{2}{pouzijte \string\filbreak\space jako alternativu}
+\setinterfacemessage{columns}{5}{spodni plovouci objekt jeste neni podporovan}
+\setinterfacemessage{columns}{4}{horni plovouci objekt jeste neni podporovan}
+\setinterfacemessage{columns}{7}{vyvazovani ukonceno po 100 krocich}
+\setinterfacemessage{columns}{6}{-- plovouci objekt(y) odlozeny}
+\setinterfacemessage{columns}{9}{kontrola nerovnost}
+\setinterfacemessage{columns}{8}{vyvazeno v -- krocich}
+\setinterfacemessage{columns}{title}{sloupce}
+\setinterfacemessage{columns}{13}{siroky plovouci objekt je presunut nad sloupce}
+\setinterfacemessage{columns}{12}{plovouci objekt je presunut do nasledujiciho sloupce / --}
+\setinterfacemessage{columns}{11}{plovouci objekt je pro sloupec prilis siroky}
+\setinterfacemessage{columns}{10}{zbyl (mene nez) 1 radek}
+\setinterfacemessage{textblocks}{1}{nova verze, je treba druhy beh}
+\setinterfacemessage{textblocks}{3}{ctu bloky z --}
+\setinterfacemessage{textblocks}{2}{zapisuji bloky do --}
+\setinterfacemessage{textblocks}{5}{-- neni skryto}
+\setinterfacemessage{textblocks}{4}{je treba druhy beh}
+\setinterfacemessage{textblocks}{7}{-- skryto}
+\setinterfacemessage{textblocks}{6}{-- skryto a zpracovano}
+\setinterfacemessage{textblocks}{9}{-- nevysazeno}
+\setinterfacemessage{textblocks}{8}{-- vysazeno}
+\setinterfacemessage{textblocks}{title}{textovyblok}
+\setinterfacemessage{textblocks}{12}{-- preskoceno}
+\setinterfacemessage{textblocks}{11}{-- nacteno a vysazeno}
+\setinterfacemessage{textblocks}{10}{-- nacteno a zpracovano}
+\setinterfacemessage{symbols}{1}{nacita se soubor symbolu --}
+\setinterfacemessage{symbols}{title}{symboly}
+\setinterfacemessage{versions}{1}{postradam @+}
+\setinterfacemessage{versions}{3}{oznacene strany: --}
+\setinterfacemessage{versions}{2}{oznacuji se strany}
+\setinterfacemessage{versions}{title}{verze}
+\setinterfacemessage{specials}{1}{-- nacteno}
+\setinterfacemessage{specials}{3}{-- je resetovano}
+\setinterfacemessage{specials}{2}{neni dovoleno hlubsi zanoreni --}
+\setinterfacemessage{specials}{5}{nacita se definicni soubor --}
+\setinterfacemessage{specials}{4}{prikaz -- neexistuje}
+\setinterfacemessage{specials}{7}{neznamy ovladac (driver) --}
+\setinterfacemessage{specials}{6}{zanoreni neni dovoleno}
+\setinterfacemessage{specials}{title}{speciality}
+\setinterfacemessage{javascript}{1}{nacita se soubor skriptu --}
+\setinterfacemessage{javascript}{title}{javascript}
+\setinterfacemessage{javascript}{2}{neznama preambule --}
+\setinterfacemessage{fonts}{1}{kodovani --}
+\setinterfacemessage{fonts}{3}{neznama varianta --}
+\setinterfacemessage{fonts}{2}{varianta -- je nactena}
+\setinterfacemessage{fonts}{5}{styl -- neni definovan}
+\setinterfacemessage{fonts}{4}{zakladni font -- neni definovan}
+\setinterfacemessage{fonts}{7}{neznamy format --}
+\setinterfacemessage{fonts}{6}{-- je nacten}
+\setinterfacemessage{fonts}{14}{bodyfont -- is defined (can better be done global)}
+\setinterfacemessage{fonts}{8}{styl -- definovan}
+\setinterfacemessage{fonts}{title}{zakladnifont}
+\setinterfacemessage{fonts}{10}{neznamy font --}
+\setinterfacemessage{databases}{1}{--}
+\setinterfacemessage{databases}{3}{global file --}
+\setinterfacemessage{databases}{2}{local file --}
+\setinterfacemessage{databases}{4}{unknown file --}
+\setinterfacemessage{databases}{title}{databases}
+\setinterfacemessage{colors}{1}{system -- je globalne aktivovana}
+\setinterfacemessage{colors}{3}{-- neni definovana --}
+\setinterfacemessage{colors}{2}{system -- je lokalne activovana}
+\setinterfacemessage{colors}{5}{neznamy system --}
+\setinterfacemessage{colors}{4}{system -- je nacten}
+\setinterfacemessage{colors}{7}{palette -- neni k dispozici}
+\setinterfacemessage{colors}{6}{palette -- je k dispozici}
+\setinterfacemessage{colors}{9}{-- prostor barev neni podporovan}
+\setinterfacemessage{colors}{8}{specifikace -- v barve -- bude cerna}
+\setinterfacemessage{colors}{title}{barva}
+\setinterfacemessage{colors}{12}{-- is registered}
+\setinterfacemessage{colors}{11}{barva je prevedena na sed}
+\setinterfacemessage{colors}{10}{-- prostor barev je podporovan}
+\setinterfacemessage{layouts}{1}{vyska textu prizpusobena s -- na strane --}
+\setinterfacemessage{layouts}{3}{-- krat text odlozen}
+\setinterfacemessage{layouts}{2}{-- krat odlozeny text umisten}
+\setinterfacemessage{layouts}{5}{okrajove bloky neaktivni}
+\setinterfacemessage{layouts}{4}{okrajove bloky aktivni}
+\setinterfacemessage{layouts}{7}{pocita se misto pro logo}
+\setinterfacemessage{layouts}{6}{sada stran -- zpracovana (velikost --)}
+\setinterfacemessage{layouts}{9}{aktualne ne vice nez -- urovne/urovni vyctu}
+\setinterfacemessage{layouts}{8}{pocita se pozadi}
+\setinterfacemessage{layouts}{title}{layout}
+\setinterfacemessage{layouts}{11}{svisla mezera -- neni povolena v pevnem radkovem rejstriku}
+\setinterfacemessage{layouts}{10}{-- a -- nedava dohromady 1.0}
+\setinterfacemessage{check}{1}{postradam '=' po '--' na radku --}
+\setinterfacemessage{check}{3}{-- -- nahrazuje makro, uzijte VERZALKY!}
+\setinterfacemessage{check}{2}{ocekavam -- argument(y) na radku --}
+\setinterfacemessage{check}{title}{kontrola}
+\setinterfacemessage{metapost}{1}{loading metapost library --}
+\setinterfacemessage{metapost}{title}{metapost}
+\setinterfacemessage{files}{1}{synonymum souboru -- je jiz pouzito pro --}
+\setinterfacemessage{files}{title}{soubory}
+\setinterfacemessage{figures}{1}{obraz -- nelze nalezt}
+\setinterfacemessage{figures}{3}{dimensions of -- are determined externally}
+\setinterfacemessage{figures}{2}{obraz -- nepritomen}
+\setinterfacemessage{figures}{5}{dimensions of -- are unknown}
+\setinterfacemessage{figures}{4}{dimenze obrazu -- nacteny primo z jeho souboru}
+\setinterfacemessage{figures}{6}{dimenze obrazu -- spocteny programem rlxtools}
+\setinterfacemessage{figures}{8}{obrazovy objekt -- je znovu pouzit}
+\setinterfacemessage{figures}{title}{obrazy}
+%
+\endinput \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/base/mult-mde.tex b/Master/texmf-dist/tex/context/base/mult-mde.tex
new file mode 100644
index 00000000000..a80ac4306e6
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mult-mde.tex
@@ -0,0 +1,198 @@
+\setinterfacemessage{references}{1}{unbekannte Referenz --}
+\setinterfacemessage{references}{3}{unbekannte Referenz Typ --}
+\setinterfacemessage{references}{2}{doppelte Referenz -- auf Seite --}
+\setinterfacemessage{references}{4}{illegale Referenz --}
+\setinterfacemessage{references}{title}{referenzen}
+\setinterfacemessage{references}{30}{unbekanntes Object --}
+\setinterfacemessage{references}{31}{doppeltes Object --}
+\setinterfacemessage{references}{21}{Dokument -- geladen}
+\setinterfacemessage{references}{22}{Dokument -- ist nicht aktiv}
+\setinterfacemessage{references}{23}{Obskure Referenz -- (Prefix=--)}
+\setinterfacemessage{documents}{1}{Blatt --}
+\setinterfacemessage{documents}{title}{Blaetter}
+\setinterfacemessage{documents}{2}{Nummer --}
+\setinterfacemessage{handlings}{1}{Font Verarbeitung --}
+\setinterfacemessage{handlings}{3}{unknown font handling --}
+\setinterfacemessage{handlings}{2}{Font Verarbeitung -- ist geladen}
+\setinterfacemessage{handlings}{title}{handling}
+\setinterfacemessage{systems}{title}{system}
+\setinterfacemessage{systems}{41}{Externe Datei -- in Gruppe -- existiert nicht}
+\setinterfacemessage{systems}{9}{-- nicht gefunden/verarbeitet}
+\setinterfacemessage{systems}{91}{papertray --}
+\setinterfacemessage{systems}{8}{Neue Version der Hilfsdatei, zweiter Durchlauf benoetigt}
+\setinterfacemessage{systems}{21}{Die Hilfsdatei ist nicht geladen}
+\setinterfacemessage{systems}{20}{Bedeutung (sortieren) von -- geladen}
+\setinterfacemessage{systems}{5}{Modul -- geladen}
+\setinterfacemessage{systems}{4}{Befehl -- ist bereits definiert}
+\setinterfacemessage{systems}{27}{Version}
+\setinterfacemessage{systems}{26}{Register}
+\setinterfacemessage{systems}{25}{Referenzen}
+\setinterfacemessage{systems}{24}{Fliessbloecke}
+\setinterfacemessage{systems}{1}{Laden der Hilfsdatei aufgeschoben (Eingabe-Modus)}
+\setinterfacemessage{systems}{23}{-- angeordnet auf --}
+\setinterfacemessage{systems}{22}{Benoetige gueltige Hilfsdateie}
+\setinterfacemessage{systems}{2}{-- geladen}
+\setinterfacemessage{systems}{19}{Bedeutung (synonyme) von -- geladen}
+\setinterfacemessage{systems}{18}{Synonym -- -- existiert nicht}
+\setinterfacemessage{systems}{7}{Modul -- bereits geladen}
+\setinterfacemessage{systems}{6}{Modul -- gefunden}
+\setinterfacemessage{systems}{14}{Erzwungendes Seitenumbruch in Liste bei --}
+\setinterfacemessage{systems}{15}{Speichere Buffer --}
+\setinterfacemessage{systems}{16}{Setzte Buffer --}
+\setinterfacemessage{systems}{17}{Setzte tippen-Buffer --}
+\setinterfacemessage{systems}{13}{Beschriftung -- definiert --}
+\setinterfacemessage{systems}{12}{Die Hilfdatei ist nicht sortiert, verwende texutil}
+\setinterfacemessage{systems}{11}{Erstelle einfache Hilfdatei}
+\setinterfacemessage{systems}{10}{Benutzte kein em in --}
+\setinterfacemessage{floatblocks}{1}{-- neu nummeriert / -- => --}
+\setinterfacemessage{floatblocks}{3}{-- verschoben}
+\setinterfacemessage{floatblocks}{2}{-- gespeichert}
+\setinterfacemessage{floatblocks}{5}{Reihenfolge angepasst}
+\setinterfacemessage{floatblocks}{4}{-- plaziert}
+\setinterfacemessage{floatblocks}{7}{Anz. der unteren Gleitobjekte beschraengt auf --}
+\setinterfacemessage{floatblocks}{6}{Anz. der oberen Gleitobjekte beschraengt auf --}
+\setinterfacemessage{floatblocks}{9}{Reigenfolge gestoert}
+\setinterfacemessage{floatblocks}{8}{weniger als -- zeilen}
+\setinterfacemessage{floatblocks}{title}{Gleitobjektbloecke}
+\setinterfacemessage{floatblocks}{13}{there is nothing to split}
+\setinterfacemessage{floatblocks}{12}{undefiniert}
+\setinterfacemessage{floatblocks}{11}{kein Block gegeben}
+\setinterfacemessage{floatblocks}{10}{-- begrenzt}
+\setinterfacemessage{interactions}{1}{Seitenverhaeltnis -- x -- (B x H)}
+\setinterfacemessage{interactions}{3}{inaktiv}
+\setinterfacemessage{interactions}{2}{aktiv}
+\setinterfacemessage{interactions}{5}{unknown attachment --}
+\setinterfacemessage{interactions}{4}{keine Seitensynchronisation (--) im hmode}
+\setinterfacemessage{interactions}{6}{attachment file -- does not exist}
+\setinterfacemessage{interactions}{title}{Interaktion}
+\setinterfacemessage{interactions}{21}{-- Code eingefuegt}
+\setinterfacemessage{structures}{1}{Begin des Abschnittsblocks --}
+\setinterfacemessage{structures}{title}{struktur}
+\setinterfacemessage{structures}{2}{Ende des Abschnittsblocks --}
+\setinterfacemessage{linguals}{1}{Trennmuster -- fuer -- geladen (n=--,e=--,m=--)}
+\setinterfacemessage{linguals}{3}{Trenndefinitionen -- fuer -- geladen (n=--,e=--,m=--)}
+\setinterfacemessage{linguals}{2}{Keine Trennmuster -- fuer -- (n=--,e=--,m=--) (--,--)}
+\setinterfacemessage{linguals}{5}{Trennmuster fuer -- nicht geladen}
+\setinterfacemessage{linguals}{4}{Keine Trenndefinitionen -- fuer -- (n=--,e=--,m=--)}
+\setinterfacemessage{linguals}{7}{Sprachenspezifische Option [--] fuegt eine Luecke von -- ein}
+\setinterfacemessage{linguals}{6}{Sprache -- ist undefiniert}
+\setinterfacemessage{linguals}{9}{Sprache -- ist aktiv}
+\setinterfacemessage{linguals}{8}{Sprachenspezifische Option [--] nahtlos hinzugefuegt}
+\setinterfacemessage{linguals}{title}{Sprache}
+\setinterfacemessage{linguals}{10}{Trennmuster --geladen}
+\setinterfacemessage{regimes}{1}{Kodierung --}
+\setinterfacemessage{regimes}{3}{Unbekannte Kodierung --}
+\setinterfacemessage{regimes}{2}{Kodierung -- ist geladen}
+\setinterfacemessage{regimes}{title}{Kodierung}
+\setinterfacemessage{filters}{1}{filter -- ist geladen}
+\setinterfacemessage{filters}{title}{filter}
+\setinterfacemessage{filters}{2}{unknown filter --}
+\setinterfacemessage{verbatims}{1}{Datei -- existiert nicht}
+\setinterfacemessage{verbatims}{title}{verbatim}
+\setinterfacemessage{encodings}{1}{Kodierung --}
+\setinterfacemessage{encodings}{3}{Unbekannte Kodierung --}
+\setinterfacemessage{encodings}{2}{Kodierung -- ist geladen}
+\setinterfacemessage{encodings}{title}{Kodierung}
+\setinterfacemessage{columns}{1}{nur -- Spalten moeglich}
+\setinterfacemessage{columns}{3}{Problem, verwende [ausgleich=nein]}
+\setinterfacemessage{columns}{2}{benutzte \string\filbreak\space als Alternative}
+\setinterfacemessage{columns}{5}{Gleitobjekt unten ncoh nicht unterstuetzt}
+\setinterfacemessage{columns}{4}{Gleitobjekt oben ncoh nicht unterstuetzt}
+\setinterfacemessage{columns}{7}{ausgleich nach 100 Schritten abgebrocheb}
+\setinterfacemessage{columns}{6}{-- Gleitobjekt(e) verschoben}
+\setinterfacemessage{columns}{9}{Ausrichtung ueberpruefen}
+\setinterfacemessage{columns}{8}{ausgeglichen nach -- Schritt(en)}
+\setinterfacemessage{columns}{title}{Spalten}
+\setinterfacemessage{columns}{13}{breites Gleitobjekt an den Anfang der Spalten verschoben}
+\setinterfacemessage{columns}{12}{Gleitobjekt in naechste Zeile verschoben / --}
+\setinterfacemessage{columns}{11}{Gleitobjekt zu breit fuer Spalte}
+\setinterfacemessage{columns}{10}{(weniger als) 1 Zeile uebrig}
+\setinterfacemessage{textblocks}{1}{neue Version, zweiter Durchlauf benoetigt}
+\setinterfacemessage{textblocks}{3}{lese Bloecke von --}
+\setinterfacemessage{textblocks}{2}{schreibe Bloecke zu --}
+\setinterfacemessage{textblocks}{5}{-- nicht verborgen}
+\setinterfacemessage{textblocks}{4}{zweiter Durchlauf benoetigt}
+\setinterfacemessage{textblocks}{7}{-- verborgen}
+\setinterfacemessage{textblocks}{6}{-- verborgen und verarbeitet}
+\setinterfacemessage{textblocks}{9}{-- nicht gesetzt}
+\setinterfacemessage{textblocks}{8}{-- gesetzt}
+\setinterfacemessage{textblocks}{title}{textblock}
+\setinterfacemessage{textblocks}{12}{-- ausgelassen}
+\setinterfacemessage{textblocks}{11}{-- geladen und gesetzt}
+\setinterfacemessage{textblocks}{10}{-- geladen und verarbeitet}
+\setinterfacemessage{symbols}{1}{Lade Symboldatei --}
+\setinterfacemessage{symbols}{title}{Symbole}
+\setinterfacemessage{versions}{1}{fehlendes @+}
+\setinterfacemessage{versions}{3}{Ausgewaehlte Seiten: --}
+\setinterfacemessage{versions}{2}{Erstelle Seiten}
+\setinterfacemessage{versions}{title}{Version}
+\setinterfacemessage{specials}{1}{-- geladen}
+\setinterfacemessage{specials}{3}{-- ist zurueckgesetzt}
+\setinterfacemessage{specials}{2}{keine tiefere Verschachtelung erlaubt --}
+\setinterfacemessage{specials}{5}{lade Definitionsdatei --}
+\setinterfacemessage{specials}{4}{Befehl -- existiert nicht}
+\setinterfacemessage{specials}{7}{unbekante Driver --}
+\setinterfacemessage{specials}{6}{Verschachtelung nicht erlaubt}
+\setinterfacemessage{specials}{title}{spezielles}
+\setinterfacemessage{javascript}{1}{Lade Scriptdatei --}
+\setinterfacemessage{javascript}{title}{javascript}
+\setinterfacemessage{javascript}{2}{unbekannte Preamble --}
+\setinterfacemessage{fonts}{1}{Kodierung --}
+\setinterfacemessage{fonts}{3}{Unbekannte Variante --}
+\setinterfacemessage{fonts}{2}{Variante -- ist geladen}
+\setinterfacemessage{fonts}{5}{Stil -- ist nicht definiert}
+\setinterfacemessage{fonts}{4}{Fliesstext -- ist nicht definiert}
+\setinterfacemessage{fonts}{7}{unbekanntes Format --}
+\setinterfacemessage{fonts}{6}{-- ist geladen}
+\setinterfacemessage{fonts}{14}{Fliesstext -- wurde definiert (besser waere globale Definition)}
+\setinterfacemessage{fonts}{8}{Stil -- definiert}
+\setinterfacemessage{fonts}{title}{Fliesstext}
+\setinterfacemessage{fonts}{10}{unbekanntes Font --}
+\setinterfacemessage{databases}{1}{--}
+\setinterfacemessage{databases}{3}{globale Datei --}
+\setinterfacemessage{databases}{2}{lokale Datei --}
+\setinterfacemessage{databases}{4}{unbekannte Datei --}
+\setinterfacemessage{databases}{title}{Datenbank}
+\setinterfacemessage{colors}{1}{system -- ist global aktiviert}
+\setinterfacemessage{colors}{3}{-- ist undefiniert --}
+\setinterfacemessage{colors}{2}{system -- ist lokal aktiviert}
+\setinterfacemessage{colors}{5}{unbekanntes System --}
+\setinterfacemessage{colors}{4}{system -- ist geladen}
+\setinterfacemessage{colors}{7}{palette -- ist nicht verfuegbar}
+\setinterfacemessage{colors}{6}{palette -- ist verfuegbar}
+\setinterfacemessage{colors}{9}{-- Farbraum wird nicht unterstuetzt}
+\setinterfacemessage{colors}{8}{Spezifikation -- bei Farbe -- wird schwarz}
+\setinterfacemessage{colors}{title}{farbe}
+\setinterfacemessage{colors}{12}{-- is registered}
+\setinterfacemessage{colors}{11}{Farbe wird in Grau umgewandelt}
+\setinterfacemessage{colors}{10}{-- Farbraum wird unterstuetzt}
+\setinterfacemessage{layouts}{1}{Texthoehe angepasst mit -- auf Seite --}
+\setinterfacemessage{layouts}{3}{-- mal Text verschoben}
+\setinterfacemessage{layouts}{2}{-- mal verschobener Text plaziert}
+\setinterfacemessage{layouts}{5}{marginalbloecke inaktiv}
+\setinterfacemessage{layouts}{4}{marginalbloecke aktiv}
+\setinterfacemessage{layouts}{7}{berechne Platzbedarf des Logos}
+\setinterfacemessage{layouts}{6}{Unterseitenfolge -- verarbeitet (Groesse --)}
+\setinterfacemessage{layouts}{9}{z.Z. nicht mehr als -- Ebenen in Aufzaehlungen}
+\setinterfacemessage{layouts}{8}{berechne Hintergrund}
+\setinterfacemessage{layouts}{title}{Layout}
+\setinterfacemessage{layouts}{11}{Zwischenraum -- nicht im Grittermoduserlau}
+\setinterfacemessage{layouts}{10}{-- und -- ergeben zusammen nicht 1.0}
+\setinterfacemessage{check}{1}{Fehlendes '=' nach '--' in Zeile --}
+\setinterfacemessage{check}{3}{-- -- ersetzt ein Makro, verwende VERSALIEN!}
+\setinterfacemessage{check}{2}{-- Argument(e) in Zeile -- erwartet}
+\setinterfacemessage{check}{title}{check}
+\setinterfacemessage{metapost}{1}{Lade metapost Bibliothek --}
+\setinterfacemessage{metapost}{title}{metapost}
+\setinterfacemessage{files}{1}{Dateisynonym -- wird bereits fuer -- benutzt}
+\setinterfacemessage{files}{title}{files}
+\setinterfacemessage{figures}{1}{Abbildung -- kann nicht gefunden werden}
+\setinterfacemessage{figures}{3}{dimensions of -- are determined externally}
+\setinterfacemessage{figures}{2}{Abbildung -- wird nicht erstellt}
+\setinterfacemessage{figures}{5}{Dimensions of -- are unknown}
+\setinterfacemessage{figures}{4}{Dimensionen von -- geladen aus der Abbildungsdatei selbst}
+\setinterfacemessage{figures}{6}{Dimensionen von -- ausgerechnet durch rlxtools}
+\setinterfacemessage{figures}{8}{Abbildungobjekt -- wurde wiederverwandt}
+\setinterfacemessage{figures}{title}{Abbildungen}
+%
+\endinput \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/base/mult-men.tex b/Master/texmf-dist/tex/context/base/mult-men.tex
new file mode 100644
index 00000000000..8335d291143
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mult-men.tex
@@ -0,0 +1,198 @@
+\setinterfacemessage{references}{1}{unknown reference --}
+\setinterfacemessage{references}{3}{unknown reference type --}
+\setinterfacemessage{references}{2}{duplicate reference -- on page --}
+\setinterfacemessage{references}{4}{illegal reference --}
+\setinterfacemessage{references}{title}{references}
+\setinterfacemessage{references}{30}{unknown object --}
+\setinterfacemessage{references}{31}{duplicate object --}
+\setinterfacemessage{references}{21}{document -- loaded}
+\setinterfacemessage{references}{22}{document -- is not interactive}
+\setinterfacemessage{references}{23}{obscure reference -- (prefix=--)}
+\setinterfacemessage{documents}{1}{sheet --}
+\setinterfacemessage{documents}{title}{sheets}
+\setinterfacemessage{documents}{2}{number --}
+\setinterfacemessage{handlings}{1}{font handling --}
+\setinterfacemessage{handlings}{3}{unknown font handling --}
+\setinterfacemessage{handlings}{2}{font handling -- is loaded}
+\setinterfacemessage{handlings}{title}{handling}
+\setinterfacemessage{systems}{title}{system}
+\setinterfacemessage{systems}{41}{external file -- in group -- does not exist}
+\setinterfacemessage{systems}{9}{-- not found/processed}
+\setinterfacemessage{systems}{91}{papertray --}
+\setinterfacemessage{systems}{8}{new version of utility file, second pass needed}
+\setinterfacemessage{systems}{21}{no utility data is loaded}
+\setinterfacemessage{systems}{20}{meaning (sorts) of -- loaded}
+\setinterfacemessage{systems}{5}{module -- loaded}
+\setinterfacemessage{systems}{4}{command -- is already defined}
+\setinterfacemessage{systems}{27}{Version}
+\setinterfacemessage{systems}{26}{Registers}
+\setinterfacemessage{systems}{25}{References}
+\setinterfacemessage{systems}{24}{Floatblocks}
+\setinterfacemessage{systems}{1}{loading utility-file postponed (typemode)}
+\setinterfacemessage{systems}{23}{-- arranged at --}
+\setinterfacemessage{systems}{22}{use a valid utilityfile}
+\setinterfacemessage{systems}{2}{-- loaded}
+\setinterfacemessage{systems}{19}{meaning (synonyms) of -- loaded}
+\setinterfacemessage{systems}{18}{synonym -- -- does not exist}
+\setinterfacemessage{systems}{7}{module -- already loaded}
+\setinterfacemessage{systems}{6}{module -- not found}
+\setinterfacemessage{systems}{14}{forced newpage in list at --}
+\setinterfacemessage{systems}{15}{saving buffer --}
+\setinterfacemessage{systems}{16}{typesetting buffer --}
+\setinterfacemessage{systems}{17}{typesetting verbatim buffer --}
+\setinterfacemessage{systems}{13}{mark -- defined --}
+\setinterfacemessage{systems}{12}{the utility-file is not sorted, use texutil}
+\setinterfacemessage{systems}{11}{building simple util}
+\setinterfacemessage{systems}{10}{don't use em in --}
+\setinterfacemessage{floatblocks}{1}{-- renumbered / -- => --}
+\setinterfacemessage{floatblocks}{3}{-- moved}
+\setinterfacemessage{floatblocks}{2}{-- saved}
+\setinterfacemessage{floatblocks}{5}{order adapted}
+\setinterfacemessage{floatblocks}{4}{-- placed}
+\setinterfacemessage{floatblocks}{7}{n of bottom floats limited to --}
+\setinterfacemessage{floatblocks}{6}{n of top floats limited to --}
+\setinterfacemessage{floatblocks}{9}{order disturbed}
+\setinterfacemessage{floatblocks}{8}{less than -- lines}
+\setinterfacemessage{floatblocks}{title}{floatblocks}
+\setinterfacemessage{floatblocks}{13}{there is nothing to split}
+\setinterfacemessage{floatblocks}{12}{undefined}
+\setinterfacemessage{floatblocks}{11}{no block given}
+\setinterfacemessage{floatblocks}{10}{-- limited}
+\setinterfacemessage{interactions}{1}{aspect ratio -- x -- (b x h)}
+\setinterfacemessage{interactions}{3}{inactive}
+\setinterfacemessage{interactions}{2}{active}
+\setinterfacemessage{interactions}{5}{unknown attachment --}
+\setinterfacemessage{interactions}{4}{no pagesynchronisation (--) in hmode}
+\setinterfacemessage{interactions}{6}{attachment file -- does not exist}
+\setinterfacemessage{interactions}{title}{interaction}
+\setinterfacemessage{interactions}{21}{-- code inserted}
+\setinterfacemessage{structures}{1}{begin of sectionblock --}
+\setinterfacemessage{structures}{title}{structure}
+\setinterfacemessage{structures}{2}{end of sectionblock --}
+\setinterfacemessage{linguals}{1}{patterns -- for -- loaded (n=--,e=--,m=--)}
+\setinterfacemessage{linguals}{3}{hyphenations -- for -- loaded (n=--,e=--,m=--)}
+\setinterfacemessage{linguals}{2}{no patterns -- for -- (n=--,e=--,m=--) (--,--)}
+\setinterfacemessage{linguals}{5}{patterns for -- not loaded}
+\setinterfacemessage{linguals}{4}{no hyphenations -- for -- (n=--,e=--,m=--)}
+\setinterfacemessage{linguals}{7}{language specific options [--] introduce a -- skip}
+\setinterfacemessage{linguals}{6}{language -- is undefined}
+\setinterfacemessage{linguals}{9}{language -- is active}
+\setinterfacemessage{linguals}{8}{language specific options [--] seamless appended}
+\setinterfacemessage{linguals}{title}{language}
+\setinterfacemessage{linguals}{10}{patterns --loaded}
+\setinterfacemessage{regimes}{1}{regime --}
+\setinterfacemessage{regimes}{3}{unknown regime --}
+\setinterfacemessage{regimes}{2}{regime -- is loaded}
+\setinterfacemessage{regimes}{title}{regime}
+\setinterfacemessage{filters}{1}{filter -- is loaded}
+\setinterfacemessage{filters}{title}{filter}
+\setinterfacemessage{filters}{2}{unknown filter --}
+\setinterfacemessage{verbatims}{1}{file -- does not exist}
+\setinterfacemessage{verbatims}{title}{verbatim}
+\setinterfacemessage{encodings}{1}{coding --}
+\setinterfacemessage{encodings}{3}{unknown coding --}
+\setinterfacemessage{encodings}{2}{coding -- is loaded}
+\setinterfacemessage{encodings}{title}{encoding}
+\setinterfacemessage{columns}{1}{only -- columns possible}
+\setinterfacemessage{columns}{3}{problems, disable balancing}
+\setinterfacemessage{columns}{2}{use \string\filbreak\space as alternative}
+\setinterfacemessage{columns}{5}{bottom float not yet supported}
+\setinterfacemessage{columns}{4}{top float not yet supported}
+\setinterfacemessage{columns}{7}{balancing aborted after 100 steps}
+\setinterfacemessage{columns}{6}{-- float(s) postponed}
+\setinterfacemessage{columns}{9}{check raggedness}
+\setinterfacemessage{columns}{8}{balanced in -- step(s)}
+\setinterfacemessage{columns}{title}{columns}
+\setinterfacemessage{columns}{13}{wide float moved to top of columns}
+\setinterfacemessage{columns}{12}{float moved to next column / --}
+\setinterfacemessage{columns}{11}{float too wide for column}
+\setinterfacemessage{columns}{10}{(less than) 1 line left}
+\setinterfacemessage{textblocks}{1}{new version, second pass needed}
+\setinterfacemessage{textblocks}{3}{reading blocks from --}
+\setinterfacemessage{textblocks}{2}{writing blocks to --}
+\setinterfacemessage{textblocks}{5}{-- not hidden}
+\setinterfacemessage{textblocks}{4}{second pass needed}
+\setinterfacemessage{textblocks}{7}{-- hidden}
+\setinterfacemessage{textblocks}{6}{-- hidden and processed}
+\setinterfacemessage{textblocks}{9}{-- not typeset}
+\setinterfacemessage{textblocks}{8}{-- typeset}
+\setinterfacemessage{textblocks}{title}{textblocks}
+\setinterfacemessage{textblocks}{12}{-- skipped}
+\setinterfacemessage{textblocks}{11}{-- loaded and typeset}
+\setinterfacemessage{textblocks}{10}{-- loaded and processed}
+\setinterfacemessage{symbols}{1}{loading symbolset --}
+\setinterfacemessage{symbols}{title}{symbols}
+\setinterfacemessage{versions}{1}{missing @+}
+\setinterfacemessage{versions}{3}{selected pages: --}
+\setinterfacemessage{versions}{2}{marking pages}
+\setinterfacemessage{versions}{title}{version}
+\setinterfacemessage{specials}{1}{-- loaded}
+\setinterfacemessage{specials}{3}{-- is reset}
+\setinterfacemessage{specials}{2}{no deeper nesting is permitted --}
+\setinterfacemessage{specials}{5}{loading definition file --}
+\setinterfacemessage{specials}{4}{command -- does not exist}
+\setinterfacemessage{specials}{7}{unknown driver --}
+\setinterfacemessage{specials}{6}{nesting is not permitted}
+\setinterfacemessage{specials}{title}{specials}
+\setinterfacemessage{javascript}{1}{loading script set --}
+\setinterfacemessage{javascript}{title}{javascript}
+\setinterfacemessage{javascript}{2}{unknown preamble --}
+\setinterfacemessage{fonts}{1}{coding --}
+\setinterfacemessage{fonts}{3}{unknown variant --}
+\setinterfacemessage{fonts}{2}{variant -- is loaded}
+\setinterfacemessage{fonts}{5}{style -- is not defined}
+\setinterfacemessage{fonts}{4}{bodyfont -- is not defined}
+\setinterfacemessage{fonts}{7}{unknown format --}
+\setinterfacemessage{fonts}{6}{-- is loaded}
+\setinterfacemessage{fonts}{14}{bodyfont -- is defined (can better be done global)}
+\setinterfacemessage{fonts}{8}{style -- defined}
+\setinterfacemessage{fonts}{title}{bodyfont}
+\setinterfacemessage{fonts}{10}{unknown font file --}
+\setinterfacemessage{databases}{1}{--}
+\setinterfacemessage{databases}{3}{global file --}
+\setinterfacemessage{databases}{2}{local file --}
+\setinterfacemessage{databases}{4}{unknown file --}
+\setinterfacemessage{databases}{title}{databases}
+\setinterfacemessage{colors}{1}{system -- is global activated}
+\setinterfacemessage{colors}{3}{-- is not defined --}
+\setinterfacemessage{colors}{2}{system -- is local activated}
+\setinterfacemessage{colors}{5}{unknown system --}
+\setinterfacemessage{colors}{4}{system -- is loaded}
+\setinterfacemessage{colors}{7}{palette -- is not available}
+\setinterfacemessage{colors}{6}{palette -- is available}
+\setinterfacemessage{colors}{9}{-- color space is not supported}
+\setinterfacemessage{colors}{8}{specification -- at color -- becomes black}
+\setinterfacemessage{colors}{title}{color}
+\setinterfacemessage{colors}{12}{-- is registered}
+\setinterfacemessage{colors}{11}{color is converted to gray}
+\setinterfacemessage{colors}{10}{-- color space is supported}
+\setinterfacemessage{layouts}{1}{textheight adapted with -- at page --}
+\setinterfacemessage{layouts}{3}{-- times text postponed}
+\setinterfacemessage{layouts}{2}{-- times postponed text placed}
+\setinterfacemessage{layouts}{5}{marginblocks inactive}
+\setinterfacemessage{layouts}{4}{marginblocks active}
+\setinterfacemessage{layouts}{7}{calculating logospace}
+\setinterfacemessage{layouts}{6}{subpage set -- processed (size --)}
+\setinterfacemessage{layouts}{9}{currently no more than -- levels in itemizations}
+\setinterfacemessage{layouts}{8}{calculating backgrounds}
+\setinterfacemessage{layouts}{title}{layout}
+\setinterfacemessage{layouts}{11}{spacing -- not permitted in gridmode}
+\setinterfacemessage{layouts}{10}{-- and -- don't add up to 1.0}
+\setinterfacemessage{check}{1}{missing or ungrouped '=' after '--' in line --}
+\setinterfacemessage{check}{3}{-- -- replaces a macro, use CAPITALS!}
+\setinterfacemessage{check}{2}{-- argument(s) expected in line --}
+\setinterfacemessage{check}{title}{check}
+\setinterfacemessage{metapost}{1}{loading metapost library --}
+\setinterfacemessage{metapost}{title}{metapost}
+\setinterfacemessage{files}{1}{file synonym -- is already used for --}
+\setinterfacemessage{files}{title}{files}
+\setinterfacemessage{figures}{1}{figure -- can not be found}
+\setinterfacemessage{figures}{3}{dimensions of -- are determined externally}
+\setinterfacemessage{figures}{2}{figure -- is not preset}
+\setinterfacemessage{figures}{5}{dimensions of -- are unknown}
+\setinterfacemessage{figures}{4}{dimensions of -- loaded from figurefile itself}
+\setinterfacemessage{figures}{6}{dimensions of -- calculated by rlxtools}
+\setinterfacemessage{figures}{8}{figureobject -- is reused}
+\setinterfacemessage{figures}{title}{figures}
+%
+\endinput \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/base/mult-mes.lua b/Master/texmf-dist/tex/context/base/mult-mes.lua
new file mode 100644
index 00000000000..6d177fd8fbb
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mult-mes.lua
@@ -0,0 +1,2005 @@
+return {
+ ["check"]={
+ ["1"]={
+ ["cs"]="postradam '=' po '--' na radku --",
+ ["de"]="Fehlendes '=' nach '--' in Zeile --",
+ ["en"]="missing or ungrouped '=' after '--' in line --",
+ ["fr"]="manquant ou dégroupé '=' après '--' à la ligne --",
+ ["it"]="'=' mancante o non raggruppato dopo '--' alla riga --",
+ ["nl"]="'=' ontbreekt of zonder {} na '--' in regel --",
+ ["no"]="manglende '=' etter '--' i linje --",
+ ["ro"]="lipseste '=' dupa '--' in linia --",
+ },
+ ["2"]={
+ ["cs"]="ocekavam -- argument(y) na radku --",
+ ["de"]="-- Argument(e) in Zeile -- erwartet",
+ ["en"]="-- argument(s) expected in line --",
+ ["fr"]="-- argument(s) attendu(s) à la ligne --",
+ ["it"]="-- argomento/i attesi alla riga --",
+ ["nl"]="-- argument(en) verwacht in regel --",
+ ["no"]="-- argument forventet i linje --",
+ ["ro"]="argumentul(ele) -- sunt asteptate in linia --",
+ },
+ ["3"]={
+ ["cs"]="-- -- nahrazuje makro, uzijte VERZALKY!",
+ ["de"]="-- -- ersetzt ein Makro, verwende VERSALIEN!",
+ ["en"]="-- -- replaces a macro, use CAPITALS!",
+ ["fr"]="-- -- remplace une macro, utilisez des MAJUSCULES !",
+ ["it"]="-- -- sostituisce una macro, usare le MAIUSCOLE!",
+ ["nl"]="-- -- vervangt een macro, gebruik HOOFDLETTERS!",
+ ["no"]="-- -- overskygger en makro, bruk STORE BOKSTAVER!",
+ ["ro"]="-- -- inlocuieste un macro, folositi MAJUSCULE!",
+ },
+ ["files"]={ "mult-sys.tex" },
+ ["title"]={
+ ["cs"]="kontrola",
+ ["de"]="check",
+ ["en"]="check",
+ ["fr"]="vérification",
+ ["it"]="controllo",
+ ["nl"]="controle",
+ ["no"]="kontroll",
+ ["ro"]="verificari",
+ },
+ },
+ ["colors"]={
+ ["1"]={
+ ["cs"]="system -- je globalne aktivovana",
+ ["de"]="system -- ist global aktiviert",
+ ["en"]="system -- is global activated",
+ ["fr"]="le système -- est globalement activé",
+ ["it"]="sistema -- attivato globalmente",
+ ["nl"]="systeem -- is globaal actief",
+ ["no"]="system -- er aktivert globalt",
+ ["ro"]="sistem -- este activata global",
+ },
+ ["10"]={
+ ["cs"]="-- prostor barev je podporovan",
+ ["de"]="-- Farbraum wird unterstuetzt",
+ ["en"]="-- color space is supported",
+ ["fr"]="-- l'espace de couleur est supporté",
+ ["it"]="spazio dei colori -- supportato",
+ ["nl"]="-- kleurruimte wordt ondersteund",
+ ["no"]="-- fargerom er støttet",
+ ["ro"]="spatiul de culoare -- este suportat",
+ },
+ ["11"]={
+ ["cs"]="barva je prevedena na sed",
+ ["de"]="Farbe wird in Grau umgewandelt",
+ ["en"]="color is converted to gray",
+ ["fr"]="la couleur est convertie en niveau de gris",
+ ["it"]="il colore ø convertito in grigio",
+ ["nl"]="kleur wordt vertaald in grijs",
+ ["no"]="fargen vil bli vist som grø",
+ ["ro"]="culoarea este convertita la gri",
+ },
+ ["12"]={
+ ["cs"]="-- is registered",
+ ["de"]="-- is registered",
+ ["en"]="-- is registered",
+ ["fr"]="-- est enregistré",
+ ["it"]="-- is registered",
+ ["nl"]="-- is geregistreerd",
+ ["no"]="-- is registered",
+ ["ro"]="-- is registered",
+ },
+ ["2"]={
+ ["cs"]="system -- je lokalne activovana",
+ ["de"]="system -- ist lokal aktiviert",
+ ["en"]="system -- is local activated",
+ ["fr"]="le système -- est localement activé",
+ ["it"]="sistema -- attivato localmente",
+ ["nl"]="systeem -- is lokaal actief",
+ ["no"]="system -- er aktivert lokalt",
+ ["ro"]="sistem -- este activata local",
+ },
+ ["3"]={
+ ["cs"]="-- neni definovana --",
+ ["de"]="-- ist undefiniert --",
+ ["en"]="-- is not defined --",
+ ["fr"]="-- n'est pas défini --",
+ ["it"]="-- non definito --",
+ ["nl"]="-- is niet gedefinieerd --",
+ ["no"]="-- er udefinert --",
+ ["ro"]="-- nu este definita --",
+ },
+ ["4"]={
+ ["cs"]="system -- je nacten",
+ ["de"]="system -- ist geladen",
+ ["en"]="system -- is loaded",
+ ["fr"]="le système -- est chargé",
+ ["it"]="sistema -- caricato",
+ ["nl"]="systeem -- wordt geladen",
+ ["no"]="system -- er lest inn",
+ ["ro"]="sistem -- este incarcata",
+ },
+ ["5"]={
+ ["cs"]="neznamy system --",
+ ["de"]="unbekanntes System --",
+ ["en"]="unknown system --",
+ ["fr"]="système -- inconnu",
+ ["it"]="sistema -- sconosciuto",
+ ["nl"]="onbekend systeem --",
+ ["no"]="ukjent system --",
+ ["ro"]="sistem -- necunoscuta",
+ },
+ ["6"]={
+ ["cs"]="palette -- je k dispozici",
+ ["de"]="palette -- ist verfuegbar",
+ ["en"]="palette -- is available",
+ ["fr"]="la palette -- est disponible",
+ ["it"]="tavolozza -- resa disponibile",
+ ["nl"]="palet -- is beschikbaar",
+ ["no"]="palett -- er tilgjengelig",
+ ["ro"]="paleta -- este disponibila",
+ },
+ ["7"]={
+ ["cs"]="palette -- neni k dispozici",
+ ["de"]="palette -- ist nicht verfuegbar",
+ ["en"]="palette -- is not available",
+ ["fr"]="le palette -- n'est pas disponible",
+ ["it"]="tavolozza -- non disponibile",
+ ["nl"]="palet -- is niet beschikbaar",
+ ["no"]="palett -- er ikke tilgjengelig",
+ ["ro"]="palette -- nu este disponibila",
+ },
+ ["8"]={
+ ["cs"]="specifikace -- v barve -- bude cerna",
+ ["de"]="Spezifikation -- bei Farbe -- wird schwarz",
+ ["en"]="specification -- at color -- becomes black",
+ ["fr"]="la spécification -- de la couleur -- devient noire",
+ ["it"]="specifica -- del colore -- convertita in nero",
+ ["nl"]="specificatie -- bij -- wordt zwart",
+ ["no"]="spesifikasjon -- for farge -- gir kun svart",
+ ["ro"]="specificatia -- la culoarea -- devine neagra",
+ },
+ ["9"]={
+ ["cs"]="-- prostor barev neni podporovan",
+ ["de"]="-- Farbraum wird nicht unterstuetzt",
+ ["en"]="-- color space is not supported",
+ ["fr"]="l'espace de couleur -- n'est pas supporté",
+ ["it"]="spazio dei colori -- non supportato",
+ ["nl"]="-- kleurruimte wordt niet ondersteund",
+ ["no"]="-- fargerom er ikke støttet",
+ ["ro"]="spatiul de culoare -- nu este suportat",
+ },
+ ["files"]={ "colo-ini.tex" },
+ ["title"]={
+ ["cs"]="barva",
+ ["de"]="farbe",
+ ["en"]="color",
+ ["fr"]="couleurs",
+ ["it"]="colore",
+ ["nl"]="kleur",
+ ["no"]="farge",
+ ["ro"]="culori",
+ },
+ },
+ ["columns"]={
+ ["1"]={
+ ["cs"]="je mozno pouze -- sloupcu",
+ ["de"]="nur -- Spalten moeglich",
+ ["en"]="only -- columns possible",
+ ["fr"]="seules -- colonnes possibles",
+ ["it"]="solo -- colonne possibili",
+ ["nl"]="maximaal -- kolommen",
+ ["no"]="maksimalt -- kolonner",
+ ["ro"]="este posibil numai -- coloane",
+ },
+ ["10"]={
+ ["cs"]="zbyl (mene nez) 1 radek",
+ ["de"]="(weniger als) 1 Zeile uebrig",
+ ["en"]="(less than) 1 line left",
+ ["fr"]="(moins de) 1 ligne restante",
+ ["it"]="(meno di) una riga rimasta",
+ ["nl"]="(minder dan) 1 regel over",
+ ["no"]="(mindre enn) 1 linje igjen",
+ ["ro"]="a mai ramas (mai putin de) 1 linie",
+ },
+ ["11"]={
+ ["cs"]="plovouci objekt je pro sloupec prilis siroky",
+ ["de"]="Gleitobjekt zu breit fuer Spalte",
+ ["en"]="float too wide for column",
+ ["fr"]="flottant mis à la largeur de la colonne",
+ ["it"]="oggetto mobile troppo ampio per la colonna",
+ ["nl"]="plaatsblok te breed voor kolom",
+ ["no"]="flytblokk for bredt for kolonna",
+ ["ro"]="blocul este prea lat pentru coloana",
+ },
+ ["12"]={
+ ["cs"]="plovouci objekt je presunut do nasledujiciho sloupce / --",
+ ["de"]="Gleitobjekt in naechste Zeile verschoben / --",
+ ["en"]="float moved to next column / --",
+ ["fr"]="flottant déplacé à la colonne suivante / --",
+ ["it"]="oggetto mobile spostata alla colonna successiva / --",
+ ["nl"]="plaatsblok verplaatst naar volgende kolom / --",
+ ["no"]="flytblokk forskjøvet til neste kolonne / --",
+ ["ro"]="blocul este mutat pe urmatoarea coloana / --",
+ },
+ ["13"]={
+ ["cs"]="siroky plovouci objekt je presunut nad sloupce",
+ ["de"]="breites Gleitobjekt an den Anfang der Spalten verschoben",
+ ["en"]="wide float moved to top of columns",
+ ["fr"]="flottant large déplacé dans la partie supérieure de la colonne",
+ ["it"]="oggetto mobile ampio spostato sopra le colonne",
+ ["nl"]="breed figuur geplaatst boven kolommen",
+ ["no"]="bred flytblokk forksjøvet til toppen av kolonnene",
+ ["ro"]="blocul lat este mutat in partea de sus a coloanelor",
+ },
+ ["2"]={
+ ["cs"]="pouzijte \\string\\filbreak\\space jako alternativu",
+ ["de"]="benutzte \\string\\filbreak\\space als Alternative",
+ ["en"]="use \\string\\filbreak\\space as alternative",
+ ["fr"]="utilisez \\string\\filbreak\\space en tant qu'alternative",
+ ["it"]="in alternativa, usare \\string\\filbreak",
+ ["nl"]="gebruik eventueel \\string\\filbreak",
+ ["no"]="bruk \\string\\filbreak\\space som et alternativ",
+ ["ro"]="folositi \\string\\filbreak\\space ca alternativa",
+ },
+ ["3"]={
+ ["cs"]="problem, vypina se vyvazovani",
+ ["de"]="Problem, verwende [ausgleich=nein]",
+ ["en"]="problems, disable balancing",
+ ["fr"]="problèmes, désactive l'équilibrage",
+ ["it"]="problemi, disabilitare il bilanciamento",
+ ["nl"]="probleempje, probeer [balanceren=nee]",
+ ["no"]="problemer, slår av balansering",
+ ["ro"]="probleme, se dezactiveaza alinierea",
+ },
+ ["4"]={
+ ["cs"]="horni plovouci objekt jeste neni podporovan",
+ ["de"]="Gleitobjekt oben ncoh nicht unterstuetzt",
+ ["en"]="top float not yet supported",
+ ["fr"]="flottant en partie supérieure pas encore supporté",
+ ["it"]="float in cima non ancora supportato",
+ ["nl"]="plaatsblok boven nog niet mogelijk",
+ ["no"]="flytblokker øverst er ikke støttet enda",
+ ["ro"]="cadrele top (top float) nu sunt inca suportate",
+ },
+ ["5"]={
+ ["cs"]="spodni plovouci objekt jeste neni podporovan",
+ ["de"]="Gleitobjekt unten ncoh nicht unterstuetzt",
+ ["en"]="bottom float not yet supported",
+ ["fr"]="flottant en partie inférieure pas encore supporté",
+ ["it"]="float in fondo non ancora supportato",
+ ["nl"]="plaatsblok onder nog niet mogelijk",
+ ["no"]="flytblokker nedert er ikke støttet enda",
+ ["ro"]="cadrele bottom (bottom float) nu sunt inca suportate",
+ },
+ ["6"]={
+ ["cs"]="-- plovouci objekt(y) odlozeny",
+ ["de"]="-- Gleitobjekt(e) verschoben",
+ ["en"]="-- float(s) postponed",
+ ["fr"]="-- flottant(s) reporté(s)",
+ ["it"]="-- float(s) posticipate",
+ ["nl"]="-- plaatsblok(en) opgeschort",
+ ["no"]="-- flytblokk forskjøvet",
+ ["ro"]="-- blocurile sunt amanate",
+ },
+ ["7"]={
+ ["cs"]="vyvazovani ukonceno po 100 krocich",
+ ["de"]="ausgleich nach 100 Schritten abgebrocheb",
+ ["en"]="balancing aborted after 100 steps",
+ ["fr"]="équilibrage abandonné après 100 pas",
+ ["it"]="bilanciamento annullato dopo 100 passi",
+ ["nl"]="balanceren afgebroken na 100 stappen",
+ ["no"]="balansering avbrutt etter 100 iterasjoner",
+ ["ro"]="alinierea este oprita dupa 100 de incercari",
+ },
+ ["8"]={
+ ["cs"]="vyvazeno v -- krocich",
+ ["de"]="ausgeglichen nach -- Schritt(en)",
+ ["en"]="balanced in -- step(s)",
+ ["fr"]="équilibré en -- pas",
+ ["it"]="bilanciamento in -- passo/i",
+ ["nl"]="gebalanceerd in -- stap(pen)",
+ ["no"]="balansert etter -- iterasjoner",
+ ["ro"]="aliniat in -- pas(i)",
+ },
+ ["9"]={
+ ["cs"]="kontrola nerovnost",
+ ["de"]="Ausrichtung ueberpruefen",
+ ["en"]="check raggedness",
+ ["fr"]="vérification des irrégularités",
+ ["it"]="controllare seghettamento",
+ ["nl"]="uitlijnen controleren!",
+ ["no"]="kontroller tekstlayout!",
+ ["ro"]="verificat alinierea",
+ },
+ ["files"]={ "page-ini.tex" },
+ ["title"]={
+ ["cs"]="sloupce",
+ ["de"]="Spalten",
+ ["en"]="columns",
+ ["fr"]="colonnes",
+ ["it"]="colonne",
+ ["nl"]="kolommen",
+ ["no"]="kolonner",
+ ["ro"]="coloane",
+ },
+ },
+ ["databases"]={
+ ["1"]={
+ ["cs"]="--",
+ ["de"]="--",
+ ["en"]="--",
+ ["fr"]="--",
+ ["it"]="--",
+ ["nl"]="--",
+ ["no"]="--",
+ ["ro"]="--",
+ },
+ ["2"]={
+ ["cs"]="local file --",
+ ["de"]="lokale Datei --",
+ ["en"]="local file --",
+ ["fr"]="fichier local --",
+ ["it"]="file locale --",
+ ["nl"]="lokaal bestand --",
+ ["no"]="lokal fil --",
+ ["ro"]="fisier local --",
+ },
+ ["3"]={
+ ["cs"]="global file --",
+ ["de"]="globale Datei --",
+ ["en"]="global file --",
+ ["fr"]="fichier global --",
+ ["it"]="file globale --",
+ ["nl"]="globaal bestand --",
+ ["no"]="global fil --",
+ ["ro"]="fisier global --",
+ },
+ ["4"]={
+ ["cs"]="unknown file --",
+ ["de"]="unbekannte Datei --",
+ ["en"]="unknown file --",
+ ["fr"]="fichier inconnu --",
+ ["it"]="file sconosciuto --",
+ ["nl"]="onbekend bestand --",
+ ["no"]="ukjent fil --",
+ ["ro"]="fisier necunoscut --",
+ },
+ ["files"]={ "core-dat.tex" },
+ ["title"]={
+ ["cs"]="databases",
+ ["de"]="Datenbank",
+ ["en"]="databases",
+ ["fr"]="bases de données",
+ ["it"]="database",
+ ["nl"]="database",
+ ["no"]="databaser",
+ ["ro"]="baze de date",
+ },
+ },
+ ["documents"]={
+ ["1"]={
+ ["de"]="Blatt --",
+ ["en"]="sheet --",
+ ["nl"]="sheet --",
+ },
+ ["2"]={
+ ["de"]="Nummer --",
+ ["en"]="number --",
+ ["nl"]="nummer --",
+ },
+ ["files"]={ "docs-bri.tex", "docs-she.tex" },
+ ["title"]={
+ ["de"]="Blaetter",
+ ["en"]="sheets",
+ ["nl"]="sheets",
+ },
+ },
+ ["encodings"]={
+ ["1"]={
+ ["cs"]="kodovani --",
+ ["de"]="Kodierung --",
+ ["en"]="coding --",
+ ["fr"]="encodage --",
+ ["it"]="codifica --",
+ ["nl"]="codering --",
+ ["no"]="koding --",
+ ["ro"]="codificarea --",
+ },
+ ["2"]={
+ ["cs"]="je nacteno kodovani --",
+ ["de"]="Kodierung -- ist geladen",
+ ["en"]="coding -- is loaded",
+ ["fr"]="l'encodage -- est chargé",
+ ["it"]="codifica -- caricata",
+ ["nl"]="codering -- wordt geladen",
+ ["no"]="koding -- er lest inn",
+ ["ro"]="codificarea -- este Encarcata",
+ },
+ ["3"]={
+ ["cs"]="nezname kodovani --",
+ ["de"]="Unbekannte Kodierung --",
+ ["en"]="unknown coding --",
+ ["fr"]="encodage -- inconnu",
+ ["it"]="codifica sconosciuta --",
+ ["nl"]="onbekende codering --",
+ ["no"]="ukjent koding --",
+ ["ro"]="codificarea -- este necunoscuta",
+ },
+ ["files"]={ "enco-ini.mkii" },
+ ["title"]={
+ ["cs"]="kodovani",
+ ["de"]="Kodierung",
+ ["en"]="encoding",
+ ["fr"]="encodage",
+ ["it"]="codifica",
+ ["nl"]="encoding",
+ ["no"]="koding",
+ ["ro"]="codificari",
+ },
+ },
+ ["figures"]={
+ ["1"]={
+ ["cs"]="obraz -- nelze nalezt",
+ ["de"]="Abbildung -- kann nicht gefunden werden",
+ ["en"]="figure -- can not be found",
+ ["fr"]="la figure -- ne peut être trouvée",
+ ["it"]="figura -- non trovata",
+ ["nl"]="figuur -- is niet te vinden",
+ ["ro"]="figura -- nu poate fi gasita",
+ },
+ ["2"]={
+ ["cs"]="obraz -- nepritomen",
+ ["de"]="Abbildung -- wird nicht erstellt",
+ ["en"]="figure -- is not preset",
+ ["fr"]="la figure -- n'est pas pré-sélectionnée",
+ ["it"]="la figura -- non è preimpostata",
+ ["nl"]="figuur -- wordt niet preset",
+ ["ro"]="figura -- nu este presetata",
+ },
+ ["3"]={
+ ["cs"]="dimensions of -- are determined externally",
+ ["de"]="dimensions of -- are determined externally",
+ ["en"]="dimensions of -- are determined externally",
+ ["fr"]="dimensions of -- are determined externally",
+ ["it"]="dimensions of -- are determined externally",
+ ["nl"]="maten van -- worden extern vastgesteld",
+ ["ro"]="dimensions of -- are determined externally",
+ },
+ ["4"]={
+ ["cs"]="dimenze obrazu -- nacteny primo z jeho souboru",
+ ["de"]="Dimensionen von -- geladen aus der Abbildungsdatei selbst",
+ ["en"]="dimensions of -- loaded from figurefile itself",
+ ["fr"]="les dimensions de -- chargées implicitement à partir du fichier de figure",
+ ["it"]="dimensioni di -- caricate dal file di immagini stesso",
+ ["nl"]="maten van -- geladen uit figuurfile zelf",
+ ["ro"]="dimensiunea figurii -- se incarca din fisierul insusi",
+ },
+ ["5"]={
+ ["cs"]="dimensions of -- are unknown",
+ ["de"]="Dimensions of -- are unknown",
+ ["en"]="dimensions of -- are unknown",
+ ["fr"]="dimensions of -- are unknown",
+ ["it"]="dimensions of -- are unknown",
+ ["nl"]="maten van -- zijn onbekend",
+ ["ro"]="dimensions of -- are unknown",
+ },
+ ["6"]={
+ ["cs"]="dimenze obrazu -- spocteny programem rlxtools",
+ ["de"]="Dimensionen von -- ausgerechnet durch rlxtools",
+ ["en"]="dimensions of -- calculated by rlxtools",
+ ["fr"]="les dimensions de -- calculées par rlxtools",
+ ["it"]="dimensioni di -- calcolate da rlxtools",
+ ["nl"]="maten van -- berekend door rlxtools",
+ ["ro"]="dimensiunea figurii -- este calculata de rlxtools",
+ },
+ ["8"]={
+ ["cs"]="obrazovy objekt -- je znovu pouzit",
+ ["de"]="Abbildungobjekt -- wurde wiederverwandt",
+ ["en"]="figureobject -- is reused",
+ ["fr"]="figureobject -- est réutilisé",
+ ["it"]="oggetto-figura -- riutilizzato",
+ ["nl"]="figuurobject -- wordt opnieuw gebruikt",
+ ["ro"]="obiectul figura -- este refolosit",
+ },
+ ["files"]={ "core-inc.mkii" },
+ ["title"]={
+ ["cs"]="obrazy",
+ ["de"]="Abbildungen",
+ ["en"]="figures",
+ ["fr"]="figures",
+ ["it"]="figure",
+ ["nl"]="figuren",
+ ["ro"]="figuri",
+ },
+ },
+ ["files"]={
+ ["1"]={
+ ["cs"]="synonymum souboru -- je jiz pouzito pro --",
+ ["de"]="Dateisynonym -- wird bereits fuer -- benutzt",
+ ["en"]="file synonym -- is already used for --",
+ ["fr"]="le synonyme de fichier -- est déjà utilisé pour --",
+ ["it"]="sinonimo file -- già in uso per --",
+ ["nl"]="file synoniem -- is al in gebruik voor --",
+ ["no"]="filesynonym -- er allerede brukt for --",
+ ["ro"]="sinonimul fisierelor -- este folosit deja pentru --",
+ },
+ ["files"]={ "core-fil.tex" },
+ ["title"]={
+ ["cs"]="soubory",
+ ["de"]="files",
+ ["en"]="files",
+ ["fr"]="fichiers",
+ ["it"]="file",
+ ["nl"]="files",
+ ["no"]="filer",
+ ["ro"]="fisiere",
+ },
+ },
+ ["filters"]={
+ ["1"]={
+ ["cs"]="filter -- is loaded",
+ ["de"]="filter -- ist geladen",
+ ["en"]="filter -- is loaded",
+ ["fr"]="le filtre -- est chargé",
+ ["it"]="filtro -- caricato",
+ ["nl"]="filter -- wordt geladen",
+ },
+ ["2"]={
+ ["cs"]="unknown filter --",
+ ["de"]="unknown filter --",
+ ["en"]="unknown filter --",
+ ["fr"]="filtre -- inconnu",
+ ["it"]="filtro sconosciuto --",
+ ["nl"]="onbekend filter --",
+ },
+ ["files"]={ "filt-ini.tex" },
+ ["title"]={
+ ["cs"]="filter",
+ ["de"]="filter",
+ ["en"]="filter",
+ ["fr"]="filtre",
+ ["it"]="filtri",
+ ["nl"]="filter",
+ },
+ },
+ ["floatblocks"]={
+ ["1"]={
+ ["cs"]="-- precislovano / -- => --",
+ ["de"]="-- neu nummeriert / -- => --",
+ ["en"]="-- renumbered / -- => --",
+ ["fr"]="-- renuméroté / -- => --",
+ ["it"]="-- rinumerato / -- => --",
+ ["nl"]="-- hernummerd / -- => --",
+ ["no"]="-- renummerert / -- => --",
+ ["ro"]="-- renumerotat / -- => --",
+ },
+ ["10"]={
+ ["cs"]="-- omezeno",
+ ["de"]="-- begrenzt",
+ ["en"]="-- limited",
+ ["fr"]="-- limité",
+ ["it"]="-- limitato",
+ ["nl"]="-- begrensd",
+ ["no"]="-- begrenset",
+ ["ro"]="-- limitat",
+ },
+ ["11"]={
+ ["cs"]="nedan zadny blok",
+ ["de"]="kein Block gegeben",
+ ["en"]="no block given",
+ ["fr"]="pas de bloc donné",
+ ["it"]="nessun oggetto specificato",
+ ["nl"]="geen blok opgegeven",
+ ["no"]="ingen blokk oppgitt",
+ ["ro"]="nu este dat nici un bloc",
+ },
+ ["12"]={
+ ["cs"]="nedefinovano",
+ ["de"]="undefiniert",
+ ["en"]="undefined",
+ ["fr"]="indéfini",
+ ["it"]="non definito",
+ ["nl"]="niet gedefinieerd",
+ ["no"]="udefinert",
+ ["ro"]="nedefinit",
+ },
+ ["13"]={
+ ["cs"]="there is nothing to split",
+ ["de"]="there is nothing to split",
+ ["en"]="there is nothing to split",
+ ["fr"]="there is nothing to split",
+ ["it"]="there is nothing to split",
+ ["nl"]="er is niets te splitsen",
+ ["no"]="there is nothing to split",
+ ["ro"]="there is nothing to split",
+ },
+ ["2"]={
+ ["cs"]="-- ulozeno",
+ ["de"]="-- gespeichert",
+ ["en"]="-- saved",
+ ["fr"]="-- sauvegardé",
+ ["it"]="-- salvato",
+ ["nl"]="-- bewaard",
+ ["no"]="-- lagret",
+ ["ro"]="-- salvat",
+ },
+ ["3"]={
+ ["cs"]="-- presunuto",
+ ["de"]="-- verschoben",
+ ["en"]="-- moved",
+ ["fr"]="-- déplacé",
+ ["it"]="-- mosso",
+ ["nl"]="-- verplaatst",
+ ["no"]="-- flyttet",
+ ["ro"]="-- mutat",
+ },
+ ["4"]={
+ ["cs"]="-- umisteno",
+ ["de"]="-- plaziert",
+ ["en"]="-- placed",
+ ["fr"]="-- placé",
+ ["it"]="-- sistemato",
+ ["nl"]="-- geplaatst",
+ ["no"]="-- plassert",
+ ["ro"]="-- plasat",
+ },
+ ["5"]={
+ ["cs"]="poradi prizpusobeno",
+ ["de"]="Reihenfolge angepasst",
+ ["en"]="order adapted",
+ ["fr"]="ordre adapté",
+ ["it"]="ordine aggiustato",
+ ["nl"]="volgorde aangepast",
+ ["no"]="rekkefølge tilpasset",
+ ["ro"]="ordinea adaptata",
+ },
+ ["6"]={
+ ["cs"]="pocet hornich plovoucich objektu je omezen na --",
+ ["de"]="Anz. der oberen Gleitobjekte beschraengt auf --",
+ ["en"]="n of top floats limited to --",
+ ["fr"]="n flottants de haut de page limité à --",
+ ["it"]="n di top floats limitato a --",
+ ["nl"]="maximaal -- boven",
+ ["no"]="maksimalt -- flytblokker øverst",
+ ["ro"]="nr. cadrelor de sus limitat la --",
+ },
+ ["7"]={
+ ["cs"]="pocet spodnich plovoucich objektu je omezen na --",
+ ["de"]="Anz. der unteren Gleitobjekte beschraengt auf --",
+ ["en"]="n of bottom floats limited to --",
+ ["fr"]="n flottants de bas de page limité à --",
+ ["it"]="n di bottom floats limitato a --",
+ ["nl"]="maximaal -- onder",
+ ["no"]="maksimalt -- flytblokker nederst",
+ ["ro"]="nr. blocurilor de jos limitat la --",
+ },
+ ["8"]={
+ ["cs"]="radku je mene nez --",
+ ["de"]="weniger als -- zeilen",
+ ["en"]="less than -- lines",
+ ["fr"]="moins de -- lignes",
+ ["it"]="meno di -- righe",
+ ["nl"]="minder dan -- regels",
+ ["no"]="mindre enn -- linjer",
+ ["ro"]="mai putin de -- linii",
+ },
+ ["9"]={
+ ["cs"]="poradi naruseno",
+ ["de"]="Reigenfolge gestoert",
+ ["en"]="order disturbed",
+ ["fr"]="ordre perturbé",
+ ["it"]="ordine disturbato",
+ ["nl"]="volgorde verstoord",
+ ["no"]="rekkefølge endret",
+ ["ro"]="ordinea deranjata",
+ },
+ ["files"]={ "page-flt.tex", "strc-flt.tex" },
+ ["title"]={
+ ["cs"]="plovouciobjekty",
+ ["de"]="Gleitobjektbloecke",
+ ["en"]="floatblocks",
+ ["fr"]="blocs de flottants",
+ ["it"]="oggetti mobili",
+ ["nl"]="plaatsblokken",
+ ["no"]="flytblokker",
+ ["ro"]="Blocuri",
+ },
+ },
+ ["fonts"]={
+ ["1"]={
+ ["cs"]="kodovani --",
+ ["de"]="Kodierung --",
+ ["en"]="coding --",
+ ["fr"]="encodage --",
+ ["it"]="codifica --",
+ ["nl"]="codering --",
+ ["no"]="koding --",
+ ["ro"]="codificarea --",
+ },
+ ["10"]={
+ ["cs"]="neznamy font --",
+ ["de"]="unbekanntes Font --",
+ ["en"]="unknown font file --",
+ ["fr"]="fichier de police -- inconnu",
+ ["it"]="file di font sconosciuto --",
+ ["nl"]="onbekende font file --",
+ ["no"]="ukjent fontfil --",
+ ["ro"]="fisier font necunoscut --",
+ },
+ ["14"]={
+ ["cs"]="bodyfont -- is defined (can better be done global)",
+ ["de"]="Fliesstext -- wurde definiert (besser waere globale Definition)",
+ ["en"]="bodyfont -- is defined (can better be done global)",
+ ["fr"]="policecorps -- est défini (une définition globale pourrait être plus adéquat)",
+ ["it"]="corpo del testo -- definito (sarebbe meglio globale)",
+ ["nl"]="korps -- is gedefinieerd (kan beter globaal plaatsvinden)",
+ ["no"]="bodyfont -- is defined (can better be done global)",
+ ["ro"]="bodyfont -- is defined (can better be done global)",
+ },
+ ["2"]={
+ ["cs"]="varianta -- je nactena",
+ ["de"]="Variante -- ist geladen",
+ ["en"]="variant -- is loaded",
+ ["fr"]="la variante -- est chargée",
+ ["it"]="variante -- caricata",
+ ["nl"]="variant -- wordt geladen",
+ ["no"]="variant -- er lest inn",
+ ["ro"]="varianta -- este incarcata",
+ },
+ ["3"]={
+ ["cs"]="neznama varianta --",
+ ["de"]="Unbekannte Variante --",
+ ["en"]="unknown variant --",
+ ["fr"]="variante -- inconnue",
+ ["it"]="variante sconosciuta --",
+ ["nl"]="onbekende variant --",
+ ["no"]="ukjent variant --",
+ ["ro"]="varianta necunoscuta --",
+ },
+ ["4"]={
+ ["cs"]="zakladni font -- neni definovan",
+ ["de"]="Fliesstext -- ist nicht definiert",
+ ["en"]="bodyfont -- is not defined",
+ ["fr"]="policecorps -- n'est pas définie",
+ ["it"]="corpo del testo -- non definito",
+ ["nl"]="korps -- is niet gedefinieerd",
+ ["no"]="hovedfont -- er ikke definert",
+ ["ro"]="corpul de litere -- nu este definit",
+ },
+ ["5"]={
+ ["cs"]="styl -- neni definovan",
+ ["de"]="Stil -- ist nicht definiert",
+ ["en"]="style -- is not defined",
+ ["fr"]="le style -- n'est pas défini",
+ ["it"]="stile -- non definito",
+ ["nl"]="stijl -- is niet gedefinieerd",
+ ["no"]="stil -- er ikke definert",
+ ["ro"]="stilul -- nu este definit",
+ },
+ ["6"]={
+ ["cs"]="-- je nacten",
+ ["de"]="-- ist geladen",
+ ["en"]="-- is loaded",
+ ["fr"]="-- est chargé",
+ ["it"]="-- caricato",
+ ["nl"]="-- wordt geladen",
+ ["no"]="-- er lest inn",
+ ["ro"]="-- este incarcat",
+ },
+ ["7"]={
+ ["cs"]="neznamy format --",
+ ["de"]="unbekanntes Format --",
+ ["en"]="unknown format --",
+ ["fr"]="format -- inconnu",
+ ["it"]="formato sconosciuto --",
+ ["nl"]="onbekend formaat --",
+ ["no"]="ukjent format --",
+ ["ro"]="format necunoscut --",
+ },
+ ["8"]={
+ ["cs"]="styl -- definovan",
+ ["de"]="Stil -- definiert",
+ ["en"]="style -- defined",
+ ["fr"]="style -- défini",
+ ["it"]="stile -- definito",
+ ["nl"]="stijl -- gedefinieerd",
+ ["no"]="stil -- definert",
+ ["ro"]="stilul -- definit",
+ },
+ ["files"]={ "font-ini.mkii", "font-ini.mkiv" },
+ ["title"]={
+ ["cs"]="zakladnifont",
+ ["de"]="Fliesstext",
+ ["en"]="bodyfont",
+ ["fr"]="corps de texte",
+ ["it"]="font del corpo",
+ ["nl"]="korps",
+ ["no"]="hovedfont",
+ ["ro"]="corp de litere",
+ },
+ },
+ ["handlings"]={
+ ["1"]={
+ ["cs"]="font handling --",
+ ["de"]="Font Verarbeitung --",
+ ["en"]="font handling --",
+ ["fr"]="manipulation -- de police",
+ ["it"]="font handling --",
+ ["nl"]="font afhandeling --",
+ ["no"]="font handling --",
+ ["ro"]="font handling --",
+ },
+ ["2"]={
+ ["cs"]="font handling -- is loaded",
+ ["de"]="Font Verarbeitung -- ist geladen",
+ ["en"]="font handling -- is loaded",
+ ["fr"]="la manipulation -- de police est chargée",
+ ["it"]="font handling -- is loaded",
+ ["nl"]="font afhandeling -- wordt geladen",
+ ["no"]="font handling -- is loaded",
+ ["ro"]="font handling -- is loaded",
+ },
+ ["3"]={
+ ["cs"]="unknown font handling --",
+ ["de"]="unknown font handling --",
+ ["en"]="unknown font handling --",
+ ["fr"]="manipulation -- inconnue de police",
+ ["it"]="unknown font handling --",
+ ["nl"]="onbekende font afhandeling --",
+ ["no"]="unknown font handling --",
+ ["ro"]="unknown font handling --",
+ },
+ ["files"]={ "hand-ini.mkii" },
+ ["title"]={
+ ["cs"]="handling",
+ ["de"]="handling",
+ ["en"]="handling",
+ ["fr"]="manipulation",
+ ["it"]="handling",
+ ["nl"]="handling",
+ ["no"]="handling",
+ ["ro"]="handling",
+ },
+ },
+ ["interactions"]={
+ ["1"]={
+ ["cs"]="pomer -- x -- (s x v)",
+ ["de"]="Seitenverhaeltnis -- x -- (B x H)",
+ ["en"]="aspect ratio -- x -- (b x h)",
+ ["fr"]="ratio d'aspect -- x -- (b x h)",
+ ["it"]="rapporto -- x -- (b x a)",
+ ["nl"]="aspect ratio -- x -- (b x h)",
+ ["no"]="forholdstall -- x -- (b x h)",
+ ["ro"]="aspectul -- x -- (b x h)",
+ },
+ ["2"]={
+ ["cs"]="aktivni",
+ ["de"]="aktiv",
+ ["en"]="active",
+ ["fr"]="actif",
+ ["it"]="attiva",
+ ["nl"]="actief",
+ ["no"]="aktiv",
+ ["ro"]="activ",
+ },
+ ["21"]={
+ ["cs"]="-- kod vlozen",
+ ["de"]="-- Code eingefuegt",
+ ["en"]="-- code inserted",
+ ["fr"]="-- code inseré",
+ ["it"]="codice -- inserito",
+ ["nl"]="-- code tussengevoegd",
+ ["no"]="-- kode satt inn / tilføyd",
+ ["ro"]="-- cod inserat",
+ },
+ ["3"]={
+ ["cs"]="neaktivni",
+ ["de"]="inaktiv",
+ ["en"]="inactive",
+ ["fr"]="inactif",
+ ["it"]="inattiva",
+ ["nl"]="niet actief",
+ ["no"]="inaktiv",
+ ["ro"]="inactiv",
+ },
+ ["4"]={
+ ["cs"]="zadna strankova synchronizace (--) v hmode",
+ ["de"]="keine Seitensynchronisation (--) im hmode",
+ ["en"]="no pagesynchronisation (--) in hmode",
+ ["fr"]="pas de synchronisation de page (--) dans le hmode",
+ ["it"]="sincronizzazione di pagina (--) non disponibile in hmode",
+ ["nl"]="geen paginasynchronisatie (--) in hmode",
+ ["no"]="ingen sidesynkronisering (--) i hmode",
+ ["ro"]="nu exista sincronizare pt. pagini (--) in hmode",
+ },
+ ["5"]={
+ ["cs"]="unknown attachment --",
+ ["de"]="unknown attachment --",
+ ["en"]="unknown attachment --",
+ ["fr"]="le fichier joint -- est inconnu",
+ ["it"]="unknown attachment --",
+ ["nl"]="onbekend attachment --",
+ ["no"]="unknown attachment --",
+ ["ro"]="unknown attachment --",
+ },
+ ["6"]={
+ ["cs"]="attachment file -- does not exist",
+ ["de"]="attachment file -- does not exist",
+ ["en"]="attachment file -- does not exist",
+ ["fr"]="le fichier joint -- n'existe pas",
+ ["it"]="attachment file -- does not exist",
+ ["nl"]="attachment file -- bestaat niet",
+ ["no"]="attachment file -- does not exist",
+ ["ro"]="attachment file -- does not exist",
+ },
+ ["files"]={ "core-int.tex", "spec-ini.tex" },
+ ["title"]={
+ ["cs"]="interakce",
+ ["de"]="Interaktion",
+ ["en"]="interaction",
+ ["fr"]="interaction",
+ ["it"]="interazione",
+ ["nl"]="interactie",
+ ["no"]="interaksjon",
+ ["ro"]="interactiuni",
+ },
+ },
+ ["javascript"]={
+ ["1"]={
+ ["cs"]="nacita se soubor skriptu --",
+ ["de"]="Lade Scriptdatei --",
+ ["en"]="loading script set --",
+ ["fr"]="chargement du jeu de script --",
+ ["it"]="caricamento dello script set --",
+ ["nl"]="script set -- wordt geladen",
+ ["no"]="leser inn scriptsett --",
+ ["ro"]="se incarca scriptul --",
+ },
+ ["2"]={
+ ["cs"]="neznama preambule --",
+ ["de"]="unbekannte Preamble --",
+ ["en"]="unknown preamble --",
+ ["fr"]="préambule -- inconnu",
+ ["it"]="preambolo sconosciuto --",
+ ["nl"]="onbekende preamble --",
+ ["no"]="ukjent 'preamble' --",
+ ["ro"]="preambul necunoscut --",
+ },
+ ["files"]={ "java-ini.tex" },
+ ["title"]={
+ ["cs"]="javascript",
+ ["de"]="javascript",
+ ["en"]="javascript",
+ ["fr"]="javascript",
+ ["it"]="javascript",
+ ["nl"]="javascript",
+ ["no"]="javascript",
+ ["ro"]="javascript",
+ },
+ },
+ ["layouts"]={
+ ["1"]={
+ ["cs"]="vyska textu prizpusobena s -- na strane --",
+ ["de"]="Texthoehe angepasst mit -- auf Seite --",
+ ["en"]="textheight adapted with -- at page --",
+ ["fr"]="hauteurtexte adaptée avec -- à la page --",
+ ["it"]="altezza del testo adattata con -- a pagina --",
+ ["nl"]="teksthoogte aangepast met -- op pagina --",
+ ["no"]="teksthøyde tilpasset med -- på side --",
+ ["ro"]="textheight adaptat cu -- la pagina --",
+ },
+ ["10"]={
+ ["cs"]="-- a -- nedava dohromady 1.0",
+ ["de"]="-- und -- ergeben zusammen nicht 1.0",
+ ["en"]="-- and -- don't add up to 1.0",
+ ["fr"]="-- et -- ne sont pas ajoutés à 1.0",
+ ["it"]="-- e -- non sommano a 1.0",
+ ["nl"]="-- en -- tellen niet op tot 1.0",
+ ["no"]="-- og -- er ikke 1.0 til sammen",
+ ["ro"]="-- si -- nu se adauga pana la 1.0",
+ },
+ ["11"]={
+ ["cs"]="svisla mezera -- neni povolena v pevnem radkovem rejstriku",
+ ["de"]="Zwischenraum -- nicht im Grittermoduserlau",
+ ["en"]="spacing -- not permitted in gridmode",
+ ["fr"]="espacement -- non permis en modegrille",
+ ["it"]="spaziatura -- non permessa in modo griglia",
+ ["nl"]="interlinie -- niet toegestaan in gridmode",
+ ["no"]="mellomrom -- ikke tillatt i gridmodus",
+ ["ro"]="spatierea -- nu este permisa in gridmode",
+ },
+ ["2"]={
+ ["cs"]="-- krat odlozeny text umisten",
+ ["de"]="-- mal verschobener Text plaziert",
+ ["en"]="-- times postponed text placed",
+ ["fr"]="-- times postponed text placed",
+ ["it"]="posizionato testo posticipato -- volte",
+ ["nl"]="-- maal uitgestelde tekst tussengevoegd",
+ ["no"]="-- ganger forskjøvet tekst plassert",
+ ["ro"]="textul amanat de -- ori a fost plasat",
+ },
+ ["3"]={
+ ["cs"]="-- krat text odlozen",
+ ["de"]="-- mal Text verschoben",
+ ["en"]="-- times text postponed",
+ ["fr"]="-- times text postponed",
+ ["it"]="testo posticipato -- volte",
+ ["nl"]="-- maal tekst plaatsen uitstellen",
+ ["no"]="-- ganger tekst forskjøvet",
+ ["ro"]="textul amanat de -- ori",
+ },
+ ["4"]={
+ ["cs"]="okrajove bloky aktivni",
+ ["de"]="marginalbloecke aktiv",
+ ["en"]="marginblocks active",
+ ["fr"]="blocsmarge actifs",
+ ["it"]="blocchi in margine attivi",
+ ["nl"]="margeblokken actief",
+ ["no"]="margblokker aktive",
+ ["ro"]="blocuri marginale active",
+ },
+ ["5"]={
+ ["cs"]="okrajove bloky neaktivni",
+ ["de"]="marginalbloecke inaktiv",
+ ["en"]="marginblocks inactive",
+ ["fr"]="blocsmarge inactifs",
+ ["it"]="blocchi in margine inattivi",
+ ["nl"]="margeblokken inactief",
+ ["no"]="margblokker inaktive",
+ ["ro"]="blocuri marginale inactive",
+ },
+ ["6"]={
+ ["cs"]="sada stran -- zpracovana (velikost --)",
+ ["de"]="Unterseitenfolge -- verarbeitet (Groesse --)",
+ ["en"]="subpage set -- processed (size --)",
+ ["fr"]="jeu de souspage -- traité (taille --)",
+ ["it"]="gruppo di sottopagine -- elaborato (dimensione --)",
+ ["nl"]="subpagina reeks -- verwerkt (aantal --)",
+ ["no"]="delside sett -- behandlet (størrelse --)",
+ ["ro"]="setul -- de subpagini procesat (dimensiunea --)",
+ },
+ ["7"]={
+ ["cs"]="pocita se misto pro logo",
+ ["de"]="berechne Platzbedarf des Logos",
+ ["en"]="calculating logospace",
+ ["fr"]="calcul de l'espace pour le logo",
+ ["it"]="calcolo dello spazio per logo",
+ ["nl"]="beeldmerken berekenen",
+ ["no"]="beregner plass for logo",
+ ["ro"]="se calculeaza spatiul pentru logo",
+ },
+ ["8"]={
+ ["cs"]="pocita se pozadi",
+ ["de"]="berechne Hintergrund",
+ ["en"]="calculating backgrounds",
+ ["fr"]="calcul des arrières-plans",
+ ["it"]="calcolo dello sfondo",
+ ["nl"]="achtergronden berekenen",
+ ["no"]="beregner bakgrunn",
+ ["ro"]="se calculeaza fundalurile",
+ },
+ ["9"]={
+ ["cs"]="aktualne ne vice nez -- urovne/urovni vyctu",
+ ["de"]="z.Z. nicht mehr als -- Ebenen in Aufzaehlungen",
+ ["en"]="currently no more than -- levels in itemizations",
+ ["fr"]="pas plus de -- niveaux pour l'instant dans les élémentarisations",
+ ["it"]="attualmente non più di -- livelli di elencazione",
+ ["nl"]="momenteel maximaal -- niveaus in opsommingen",
+ ["no"]="for øyeblikket maksimalt -- nivåer i opplisting",
+ ["ro"]="acum nu se supota mai mult de -- nivele de adancime la iteratii",
+ },
+ ["files"]={ "core-itm.tex", "page-bck.mkii", "page-bck.mkiv", "page-ini.tex", "page-log.tex", "strc-itm.tex" },
+ ["title"]={
+ ["cs"]="layout",
+ ["de"]="Layout",
+ ["en"]="layout",
+ ["fr"]="calque",
+ ["it"]="layout",
+ ["nl"]="layout",
+ ["no"]="layout",
+ ["ro"]="aranjamente",
+ },
+ },
+ ["linguals"]={
+ ["1"]={
+ ["cs"]="vzory -- pro -- nacteny (n=--,e=--,m=--)",
+ ["de"]="Trennmuster -- fuer -- geladen (n=--,e=--,m=--)",
+ ["en"]="patterns -- for -- loaded (n=--,e=--,m=--)",
+ ["fr"]="les motifs -- pour -- sont chargés (n=--,e=--,m=--)",
+ ["it"]="schemi -- per -- caricati (n=--,e=--,m=--)",
+ ["nl"]="afbreekpatronen -- voor -- geladen (n=--,e=--,m=--)",
+ ["no"]="orddelingsmønster -- for -- er lest inn (n=--,e=--,m=--)",
+ ["ro"]="sablonul -- pentru -- s-a incarcat (n=--,e=--,m=--)",
+ },
+ ["10"]={
+ ["cs"]="vzory --nacteny",
+ ["de"]="Trennmuster --geladen",
+ ["en"]="patterns --loaded",
+ ["fr"]="motifs -- chargés",
+ ["it"]="schemi -- caricati",
+ ["nl"]="patronen --geladen",
+ ["no"]="orddelingsmønster -- er lest inn",
+ ["ro"]="sabloanele -- incarcate",
+ },
+ ["2"]={
+ ["cs"]="zadne vzory -- pro -- (n=--,e=--,m=--) (--,--)",
+ ["de"]="Keine Trennmuster -- fuer -- (n=--,e=--,m=--) (--,--)",
+ ["en"]="no patterns -- for -- (n=--,e=--,m=--) (--,--)",
+ ["fr"]="pas de motifs -- pour -- (n=--,e=--,m=--) (--,--)",
+ ["it"]="niente schemi -- per -- (n=--,e=--,m=--) (--,--)",
+ ["nl"]="geen afbreekpatronen -- voor -- (n=--,e=--,m=--) (--,--)",
+ ["no"]="ingen orddelingsmønster -- for -- (n=--,e=--,m=--) (--,--)",
+ ["ro"]="nu exista sabloane -- pentru -- (n=--,e=--,m=--) (--,--)",
+ },
+ ["3"]={
+ ["cs"]="deleni slov -- pro -- nacteno (n=--,e=--,m=--)",
+ ["de"]="Trenndefinitionen -- fuer -- geladen (n=--,e=--,m=--)",
+ ["en"]="hyphenations -- for -- loaded (n=--,e=--,m=--)",
+ ["fr"]="hyphenations -- pour -- chargés (n=--,e=--,m=--)",
+ ["it"]="sillabazione -- per -- caricata (n=--,e=--,m=--)",
+ ["nl"]="afbreekdefinities -- voor -- geladen (n=--,e=--,m=--)",
+ ["no"]="orddelingsdefinisjon -- for -- er lest inn (n=--,e=--,m=--)",
+ ["ro"]="despartirea in silabe -- pentru -- s-a incarcat (n=--,e=--,m=--)",
+ },
+ ["4"]={
+ ["cs"]="zadne deleni slov -- pro -- (n=--,e=--,m=--)",
+ ["de"]="Keine Trenndefinitionen -- fuer -- (n=--,e=--,m=--)",
+ ["en"]="no hyphenations -- for -- (n=--,e=--,m=--)",
+ ["fr"]="pas d'hyphenations -- pour -- (n=--,e=--,m=--)",
+ ["it"]="niente sillabazione -- per -- (n=--,e=--,m=--)",
+ ["nl"]="geen afbreekdefinities -- voor -- (n=--,e=--,m=--)",
+ ["no"]="ingen orddelingsdefinisjon -- for -- (n=--,e=--,m=--)",
+ ["ro"]="nu exista despartire in silabe -- pentru -- (n=--,e=--,m=--)",
+ },
+ ["5"]={
+ ["cs"]="vzory pro -- nenacteny",
+ ["de"]="Trennmuster fuer -- nicht geladen",
+ ["en"]="patterns for -- not loaded",
+ ["fr"]="les motifs pour -- ne sont pas chargés",
+ ["it"]="schemi per -- non caricati",
+ ["nl"]="afbreekpatronen voor -- niet geladen",
+ ["no"]="orddelingsmønster for -- er ikke lest inn",
+ ["ro"]="sabloanele pentru -- nu sunt incarcate",
+ },
+ ["6"]={
+ ["cs"]="jazyk -- neni definovan",
+ ["de"]="Sprache -- ist undefiniert",
+ ["en"]="language -- is undefined",
+ ["fr"]="langue -- non définie",
+ ["it"]="lingua -- non definita",
+ ["nl"]="taal -- is niet gedefinieerd",
+ ["no"]="spràk -- er udefinert",
+ ["ro"]="limba -- nu este definita",
+ },
+ ["7"]={
+ ["cs"]="specificke volby jazyka [--] zavadeji -- (zavlecenou) mezeru",
+ ["de"]="Sprachenspezifische Option [--] fuegt eine Luecke von -- ein",
+ ["en"]="language specific options [--] introduce a -- skip",
+ ["fr"]="les options spécifiques de langue [--] introduisent un -- saut",
+ ["it"]="opzioni specifiche per la lingua [--] introducono un salto --",
+ ["nl"]="taal specifieke opties [--] introduceren een skip van --",
+ ["no"]="spràk spesifikk opsjon [--] introduserer et -- hopp",
+ ["ro"]="optiunile specifice ale limbii [--] introduc un spatiu --",
+ },
+ ["8"]={
+ ["cs"]="specificke volby jazyka [--] bez mezer pripojeny",
+ ["de"]="Sprachenspezifische Option [--] nahtlos hinzugefuegt",
+ ["en"]="language specific options [--] seamless appended",
+ ["fr"]="les options spécifiques de langue [--] sont ajoutés en douceur",
+ ["it"]="opzioni specifiche per la lingua [--] aggiunte trasparentemente",
+ ["nl"]="taal specifieke opties [--] naadloos toegevoegd",
+ ["no"]="spràk spesifikk opsjon [--] problemfritt tilføyd",
+ ["ro"]="optiunile specifice ale limbii [--] adaugate",
+ },
+ ["9"]={
+ ["cs"]="language -- is active",
+ ["de"]="Sprache -- ist aktiv",
+ ["en"]="language -- is active",
+ ["fr"]="la langue -- est active",
+ ["it"]="lingua -- attiva",
+ ["nl"]="taal -- is actief",
+ ["no"]="spràk -- er aktivt",
+ ["ro"]="limba -- este activa",
+ },
+ ["files"]={ "lang-ini.mkii", "lang-ini.mkiv" },
+ ["title"]={
+ ["cs"]="jazyky",
+ ["de"]="Sprache",
+ ["en"]="language",
+ ["fr"]="langue",
+ ["it"]="lingua",
+ ["nl"]="taal",
+ ["no"]="sprøk",
+ ["ro"]="limbi",
+ },
+ },
+ ["metapost"]={
+ ["1"]={
+ ["cs"]="loading metapost library --",
+ ["de"]="Lade metapost Bibliothek --",
+ ["en"]="loading metapost library --",
+ ["fr"]="chargement de la bibliothèque metapost --",
+ ["it"]="caricamento della libreria metapost --",
+ ["nl"]="metapost bibliotheek -- wordt geladen",
+ ["no"]="metapost bibliotek -- blir lest inn",
+ ["ro"]="se incarca biblioteca metapost --",
+ },
+ ["files"]={ "meta-ini.mkii", "meta-ini.mkiv" },
+ ["title"]={
+ ["cs"]="metapost",
+ ["de"]="metapost",
+ ["en"]="metapost",
+ ["fr"]="metapost",
+ ["it"]="metapost",
+ ["nl"]="metapost",
+ ["no"]="metapost",
+ ["ro"]="metapost",
+ },
+ },
+ ["references"]={
+ ["1"]={
+ ["cs"]="neznama reference --",
+ ["de"]="unbekannte Referenz --",
+ ["en"]="unknown reference --",
+ ["fr"]="réference -- inconnue",
+ ["it"]="riferimento sconosciuto --",
+ ["nl"]="onbekende verwijzing --",
+ ["no"]="ukjent referanse --",
+ ["ro"]="referinta necunoscuta --",
+ },
+ ["2"]={
+ ["cs"]="duplicitni reference -- na strane --",
+ ["de"]="doppelte Referenz -- auf Seite --",
+ ["en"]="duplicate reference -- on page --",
+ ["fr"]="réference -- dupliquée à la page --",
+ ["it"]="riferimento duplicato -- a pagina --",
+ ["nl"]="dubbele verwijzing -- op pagina --",
+ ["no"]="duplikat referanse -- pø side --",
+ ["ro"]="referinta duplicat -- la pagina --",
+ },
+ ["21"]={
+ ["cs"]="dokument -- nacten",
+ ["de"]="Dokument -- geladen",
+ ["en"]="document -- loaded",
+ ["fr"]="document -- chargé",
+ ["it"]="documento -- caricato",
+ ["nl"]="document -- geladen",
+ ["no"]="dokument -- er lest inn",
+ ["ro"]="documentul -- este incarcat",
+ },
+ ["22"]={
+ ["cs"]="dokument -- neni interaktivni",
+ ["de"]="Dokument -- ist nicht aktiv",
+ ["en"]="document -- is not interactive",
+ ["fr"]="le document -- n'est pas interactif",
+ ["it"]="il documento -- non ø interattivo",
+ ["nl"]="document -- is niet interactief",
+ ["no"]="dokument -- er ikke interaktivt",
+ ["ro"]="documentul -- nu este interactiv",
+ },
+ ["23"]={
+ ["cs"]="obskurni (nejasna) reference -- (prefix=--)",
+ ["de"]="Obskure Referenz -- (Prefix=--)",
+ ["en"]="obscure reference -- (prefix=--)",
+ ["fr"]="reference -- indéterminé (préfixe=--)",
+ ["it"]="riferimento ambiguo -- (prefisso=--)",
+ ["nl"]="onduidelijke verwijzing -- (prefix=--)",
+ ["no"]="obskur referanse -- (Prefix=--)",
+ ["ro"]="referinta obscura -- (prefix=--)",
+ },
+ ["3"]={
+ ["cs"]="neznamy typ reference --",
+ ["de"]="unbekannte Referenz Typ --",
+ ["en"]="unknown reference type --",
+ ["fr"]="type -- de réference inconnu",
+ ["it"]="riferimento di tipo sconosciuto --",
+ ["nl"]="type verwijzing -- onbekend",
+ ["no"]="ukjent referansetype --",
+ ["ro"]="tip necunoscut de referinta --",
+ },
+ ["30"]={
+ ["cs"]="neznamy objekt --",
+ ["de"]="unbekanntes Object --",
+ ["en"]="unknown object --",
+ ["fr"]="objet -- inconnu",
+ ["it"]="oggetto sconosciuto --",
+ ["nl"]="onbekend object --",
+ ["no"]="ukjent objekt --",
+ ["ro"]="obiect necunoscut --",
+ },
+ ["31"]={
+ ["cs"]="duplicitni object --",
+ ["de"]="doppeltes Object --",
+ ["en"]="duplicate object --",
+ ["fr"]="objet -- dupliqué",
+ ["it"]="oggetto duplicato --",
+ ["nl"]="dubbel object --",
+ ["no"]="duplikat objekt --",
+ ["ro"]="obiect duplicat --",
+ },
+ ["4"]={
+ ["cs"]="nedovolena reference --",
+ ["de"]="illegale Referenz --",
+ ["en"]="illegal reference --",
+ ["fr"]="réference -- inconnue",
+ ["it"]="riferimento illecito --",
+ ["nl"]="verboden verwijzing --",
+ ["no"]="ulovlig referanse --",
+ ["ro"]="referinta eronata --",
+ },
+ ["files"]={ "core-obj.tex", "core-ref.tex", "strc-ref.tex" },
+ ["title"]={
+ ["cs"]="reference",
+ ["de"]="referenzen",
+ ["en"]="references",
+ ["fr"]="réferences",
+ ["it"]="riferimenti",
+ ["nl"]="verwijzingen",
+ ["no"]="referanser",
+ ["ro"]="referinte",
+ },
+ },
+ ["regimes"]={
+ ["1"]={
+ ["cs"]="kodovani --",
+ ["de"]="Kodierung --",
+ ["en"]="regime --",
+ ["fr"]="encodage --",
+ ["it"]="codifica --",
+ ["nl"]="regime --",
+ ["no"]="koding --",
+ ["ro"]="codificarea --",
+ },
+ ["2"]={
+ ["cs"]="je nacteno kodovani --",
+ ["de"]="Kodierung -- ist geladen",
+ ["en"]="regime -- is loaded",
+ ["fr"]="l'encodage -- est chargé",
+ ["it"]="codifica -- caricata",
+ ["nl"]="regime -- wordt geladen",
+ ["no"]="koding -- er lest inn",
+ ["ro"]="codificarea -- este Encarcata",
+ },
+ ["3"]={
+ ["cs"]="nezname kodovani --",
+ ["de"]="Unbekannte Kodierung --",
+ ["en"]="unknown regime --",
+ ["fr"]="encodage -- inconnu",
+ ["it"]="codifica sconosciuta --",
+ ["nl"]="onbekend regime --",
+ ["no"]="ukjent koding --",
+ ["ro"]="codificarea -- este necunoscuta",
+ },
+ ["files"]={ "regi-ini.mkii" },
+ ["title"]={
+ ["cs"]="kodovani",
+ ["de"]="Kodierung",
+ ["en"]="regime",
+ ["fr"]="encodage",
+ ["it"]="codifica",
+ ["nl"]="regime",
+ ["no"]="koding",
+ ["ro"]="codificari",
+ },
+ },
+ ["specials"]={
+ ["1"]={
+ ["cs"]="-- nacteno",
+ ["de"]="-- geladen",
+ ["en"]="-- loaded",
+ ["fr"]="-- chargé",
+ ["it"]="-- caricato",
+ ["nl"]="-- geladen",
+ ["no"]="-- er lest inn",
+ ["ro"]="-- incarcat",
+ },
+ ["2"]={
+ ["cs"]="neni dovoleno hlubsi zanoreni --",
+ ["de"]="keine tiefere Verschachtelung erlaubt --",
+ ["en"]="no deeper nesting is permitted --",
+ ["fr"]="pas d'imbracations plus profondes ne sont permises --",
+ ["it"]="non ø permesso un annidamento maggiore --",
+ ["nl"]="verdere nesting is niet toegestaan --",
+ ["no"]="dypere 'nesting' er ikke tillatt --",
+ ["ro"]="nu este permis un nivel de imbricare mai mare --",
+ },
+ ["3"]={
+ ["cs"]="-- je resetovano",
+ ["de"]="-- ist zurueckgesetzt",
+ ["en"]="-- is reset",
+ ["fr"]="-- est remis à zéro",
+ ["it"]="-- reimpostato",
+ ["nl"]="-- gereset",
+ ["no"]="-- er tilbakestilt",
+ ["ro"]="-- s-a resetat",
+ },
+ ["4"]={
+ ["cs"]="prikaz -- neexistuje",
+ ["de"]="Befehl -- existiert nicht",
+ ["en"]="command -- does not exist",
+ ["fr"]="la commande -- n'existe pas",
+ ["it"]="il comando -- non esiste",
+ ["nl"]="commando -- bestaat niet",
+ ["no"]="kommando -- eksisterer ikke",
+ ["ro"]="comanda -- nu exista",
+ },
+ ["5"]={
+ ["cs"]="nacita se definicni soubor --",
+ ["de"]="lade Definitionsdatei --",
+ ["en"]="loading definition file --",
+ ["fr"]="chargement du fichier de définition --",
+ ["it"]="caricamento del file di definizione --",
+ ["nl"]="definitiefile -- wordt geladen",
+ ["no"]="leser inn definisjonsfil for --",
+ ["ro"]="se incarca fisierul de definitii --",
+ },
+ ["6"]={
+ ["cs"]="zanoreni neni dovoleno",
+ ["de"]="Verschachtelung nicht erlaubt",
+ ["en"]="nesting is not permitted",
+ ["fr"]="l'imbrication n'est pas permise",
+ ["it"]="annidamento non permesso",
+ ["nl"]="nesting is niet toegestaan",
+ ["no"]="'nesting' er ikke tillatt",
+ ["ro"]="imbricarea nu este permisa",
+ },
+ ["7"]={
+ ["cs"]="neznamy ovladac (driver) --",
+ ["de"]="unbekante Driver --",
+ ["en"]="unknown driver --",
+ ["fr"]="pilote -- inconnu",
+ ["it"]="driver sconosciuto --",
+ ["nl"]="onbekende driver --",
+ ["no"]="ukjent driver --",
+ ["ro"]="driver necunoscut --",
+ },
+ ["files"]={ "spec-ini.tex" },
+ ["title"]={
+ ["cs"]="speciality",
+ ["de"]="spezielles",
+ ["en"]="specials",
+ ["fr"]="specials",
+ ["it"]="specialitø",
+ ["nl"]="specials",
+ ["no"]="specials",
+ ["ro"]="specials",
+ },
+ },
+ ["structures"]={
+ ["1"]={
+ ["cs"]="zacatek oddilu (sekce) --",
+ ["de"]="Begin des Abschnittsblocks --",
+ ["en"]="begin of sectionblock --",
+ ["fr"]="début de blocsection --",
+ ["it"]="inizio del blocco (sezione) --",
+ ["nl"]="begin van sectieblok --",
+ ["no"]="starten av blokk -- (seksjon)",
+ ["ro"]="inceput de bloc sectiune --",
+ },
+ ["2"]={
+ ["cs"]="konec oddilu (sekce) --",
+ ["de"]="Ende des Abschnittsblocks --",
+ ["en"]="end of sectionblock --",
+ ["fr"]="fin de blocsection --",
+ ["it"]="fine del blocco (sezione) --",
+ ["nl"]="eind van sectieblok --",
+ ["no"]="slutten av blokk -- (seksjon)",
+ ["ro"]="sfarsit de bloc sectiune --",
+ },
+ ["files"]={ "core-sec.mkii", "core-sec.mkiv", "strc-sbe.tex" },
+ ["title"]={
+ ["cs"]="struktury",
+ ["de"]="struktur",
+ ["en"]="structure",
+ ["fr"]="structure",
+ ["it"]="struttura",
+ ["nl"]="structuur",
+ ["no"]="struktur",
+ ["ro"]="structuri",
+ },
+ },
+ ["symbols"]={
+ ["1"]={
+ ["cs"]="nacita se soubor symbolu --",
+ ["de"]="Lade Symboldatei --",
+ ["en"]="loading symbolset --",
+ ["fr"]="chargement du jeu de symbole --",
+ ["it"]="caricamento gruppo di simboli --",
+ ["nl"]="symboolset -- wordt geladen",
+ ["no"]="leser inn symbolsett --",
+ ["ro"]="se incarca setul de simboluri --",
+ },
+ ["files"]={ "symb-ini.tex" },
+ ["title"]={
+ ["cs"]="symboly",
+ ["de"]="Symbole",
+ ["en"]="symbols",
+ ["fr"]="symboles",
+ ["it"]="simboli",
+ ["nl"]="symbolen",
+ ["no"]="symboler",
+ ["ro"]="simboluri",
+ },
+ },
+ ["systems"]={
+ ["1"]={
+ ["cs"]="nacteni pomocneho souboru odlozeno (typemode)",
+ ["de"]="Laden der Hilfsdatei aufgeschoben (Eingabe-Modus)",
+ ["en"]="loading utility-file postponed (typemode)",
+ ["fr"]="chargement de fichier utilitaire reporté (typemode)",
+ ["it"]="caricamento dei file supplementari posticipato (typemode)",
+ ["nl"]="laden hulpfile uitgesteld (typemode)",
+ ["no"]="innlesning av hjelpefila utsatt (typemode)",
+ ["ro"]="se incarca utilitarul-fisierul este amanat (typemode)",
+ },
+ ["10"]={
+ ["cs"]="nepouzivejte em v --",
+ ["de"]="Benutzte kein em in --",
+ ["en"]="don't use em in --",
+ ["fr"]="n'utilisez pas em dans --",
+ ["it"]="non usare em in --",
+ ["nl"]="gebruik geen em in --",
+ ["no"]="ikke bruk em i --",
+ ["ro"]="nu folositi em in --",
+ },
+ ["11"]={
+ ["cs"]="vytvarim jednoduchy pomocny soubor",
+ ["de"]="Erstelle einfache Hilfdatei",
+ ["en"]="building simple util",
+ ["fr"]="construction util simple",
+ ["it"]="costruzione di un semplice supplemento",
+ ["nl"]="aanmaken basale hulpfile",
+ ["no"]="lager enkel hjelpefil",
+ ["ro"]="se creeaza un utilitar simplu",
+ },
+ ["12"]={
+ ["cs"]="pomosny soubor neni setriden, pouzijte texutil",
+ ["de"]="Die Hilfdatei ist nicht sortiert, verwende texutil",
+ ["en"]="the utility-file is not sorted, use texutil",
+ ["fr"]="le fichier utilitaire n'est pas trié, utilise texutil",
+ ["it"]="file di supplemento non ordinato, usare texutil",
+ ["nl"]="de hulpfile is niet gesorteerd, gebruik texutil",
+ ["no"]="hjelpefila er ikke sortert, bruk texutil",
+ ["ro"]="fisierul utilitar nu este sortat, folositi texutil",
+ },
+ ["13"]={
+ ["cs"]="znacka -- definovana --",
+ ["de"]="Beschriftung -- definiert --",
+ ["en"]="mark -- defined --",
+ ["fr"]="marquage -- defini --",
+ ["it"]="marcatura -- definita --",
+ ["nl"]="markering -- gedefinieerd --",
+ ["no"]="markering -- definert --",
+ ["ro"]="marcajul -- definit --",
+ },
+ ["14"]={
+ ["cs"]="vynucena nova stranka v seznamu na --",
+ ["de"]="Erzwungendes Seitenumbruch in Liste bei --",
+ ["en"]="forced newpage in list at --",
+ ["fr"]="nouvellepage forcée dans la liste à --",
+ ["it"]="nuova pagina obbligata in lista a --",
+ ["nl"]="geforceerde paginaovergang in lijst voor --",
+ ["no"]="tvunget sideskift i liste ved --",
+ ["ro"]="s-a fortat trecere pa pagina noua in lista la --",
+ },
+ ["15"]={
+ ["cs"]="uklada se buffer --",
+ ["de"]="Speichere Buffer --",
+ ["en"]="saving buffer --",
+ ["fr"]="sauvegarde du tampon (buffer) --",
+ ["it"]="salvataggio del buffer --",
+ ["nl"]="wegschrijven buffer --",
+ ["no"]="lagrer Buffer --",
+ ["ro"]="buffer salvat --",
+ },
+ ["16"]={
+ ["cs"]="sazi se buffer --",
+ ["de"]="Setzte Buffer --",
+ ["en"]="typesetting buffer --",
+ ["fr"]="composition du tampon (buffer) --",
+ ["it"]="composizione del buffer --",
+ ["nl"]="inlezen buffer --",
+ ["no"]="tegnsetter buffer --",
+ ["ro"]="buffer-ul -- s-a cules",
+ },
+ ["17"]={
+ ["cs"]="sazi se doslovny (verbatim) buffer --",
+ ["de"]="Setzte tippen-Buffer --",
+ ["en"]="typesetting verbatim buffer --",
+ ["fr"]="composition textuelle du tampon (buffer) --",
+ ["it"]="composizione verbatim del buffer --",
+ ["nl"]="verbatim inlezen buffer --",
+ ["no"]="tegnsetter verbatim-buffer --",
+ ["ro"]="se culege buffer-ul verbatim --",
+ },
+ ["18"]={
+ ["cs"]="synonymum -- -- neexistuje",
+ ["de"]="Synonym -- -- existiert nicht",
+ ["en"]="synonym -- -- does not exist",
+ ["fr"]="le synonyme -- -- n'existe pas",
+ ["it"]="sinonimo -- -- non esistente",
+ ["nl"]="synoniem -- -- bestaat niet",
+ ["no"]="synonym -- -- eksisterer ikke",
+ ["ro"]="sinonimul -- -- nu exista",
+ },
+ ["19"]={
+ ["cs"]="vyznam (synonyma) -- nacten",
+ ["de"]="Bedeutung (synonyme) von -- geladen",
+ ["en"]="meaning (synonyms) of -- loaded",
+ ["fr"]="signification (synonymes) de -- chargée",
+ ["it"]="significato (sinonimi) di -- caricato",
+ ["nl"]="betekenissen (synoniemen) van -- geladen",
+ ["no"]="betydning (synonymer) av -- er lest inn",
+ ["ro"]="intelesul (sinonimele) pentru -- incarcat",
+ },
+ ["2"]={
+ ["cs"]="-- nacteno",
+ ["de"]="-- geladen",
+ ["en"]="-- loaded",
+ ["fr"]="-- chargé",
+ ["it"]="-- caricato",
+ ["nl"]="-- geladen",
+ ["no"]="-- er lest inn",
+ ["ro"]="-- s-a incarcat",
+ },
+ ["20"]={
+ ["cs"]="vyznam (trideni) -- nacten",
+ ["de"]="Bedeutung (sortieren) von -- geladen",
+ ["en"]="meaning (sorts) of -- loaded",
+ ["fr"]="signification (tris) de -- chargée",
+ ["it"]="significato (specie) di -- caricato",
+ ["nl"]="betekenissen (sorteren) van -- geladen",
+ ["no"]="betydning (sorterer) av -- er lest inn",
+ ["ro"]="intelesul (ordinea) pentru -- incarcat",
+ },
+ ["21"]={
+ ["cs"]="pomocny soubor necten",
+ ["de"]="Die Hilfsdatei ist nicht geladen",
+ ["en"]="no utility data is loaded",
+ ["fr"]="pas de données utilitaires chargées",
+ ["it"]="nessuna informazione supplementare caricata",
+ ["nl"]="de hulpfile is niet geladen",
+ ["no"]="hjelpefila er ikke lest inn",
+ ["ro"]="nici o data utilitara nu este incarcata",
+ },
+ ["22"]={
+ ["cs"]="pouzijte platny pomocny soubor",
+ ["de"]="Benoetige gueltige Hilfsdateie",
+ ["en"]="use a valid utilityfile",
+ ["fr"]="utilise un fichier utilitaire valide",
+ ["it"]="usare un file supplementare valido",
+ ["nl"]="gebruik een goede hulpfile",
+ ["no"]="bruk en gyldig hjelpefil",
+ ["ro"]="folositi un fisier utilitar valid",
+ },
+ ["23"]={
+ ["cs"]="-- upraveno na --",
+ ["de"]="-- angeordnet auf --",
+ ["en"]="-- arranged at --",
+ ["fr"]="-- arrangé à --",
+ ["it"]="-- sistemato a --",
+ ["nl"]="-- gearrangeerd op --",
+ ["no"]="-- arrangert på --",
+ ["ro"]="-- aranjat la --",
+ },
+ ["24"]={
+ ["cs"]="plovouci bloky",
+ ["de"]="Fliessbloecke",
+ ["en"]="Floatblocks",
+ ["fr"]="blocsflottants",
+ ["it"]="Oggetti mobili",
+ ["nl"]="Plaatsblokken",
+ ["no"]="Flytblokker",
+ ["ro"]="Blocuri",
+ },
+ ["25"]={
+ ["cs"]="reference",
+ ["de"]="Referenzen",
+ ["en"]="References",
+ ["fr"]="Réferences",
+ ["it"]="Riferimenti",
+ ["nl"]="Verwijzingen",
+ ["no"]="Referanser",
+ ["ro"]="Referinte",
+ },
+ ["26"]={
+ ["cs"]="registry",
+ ["de"]="Register",
+ ["en"]="Registers",
+ ["fr"]="Registres",
+ ["it"]="Registri",
+ ["nl"]="Registers",
+ ["no"]="Registere",
+ ["ro"]="Registri",
+ },
+ ["27"]={
+ ["cs"]="verze",
+ ["de"]="Version",
+ ["en"]="Version",
+ ["fr"]="Version",
+ ["it"]="Versione",
+ ["nl"]="Versie",
+ ["no"]="Versjon",
+ ["ro"]="Versiune",
+ },
+ ["4"]={
+ ["cs"]="prikaz -- je jiz definovan",
+ ["de"]="Befehl -- ist bereits definiert",
+ ["en"]="command -- is already defined",
+ ["fr"]="la commande -- est déjà définie",
+ ["it"]="comando -- già definito",
+ ["nl"]="commando -- is al gedefinieerd",
+ ["no"]="kommando -- er allerede definert",
+ ["ro"]="comanda -- este deja definita",
+ },
+ ["41"]={
+ ["cs"]="externi soubor -- ve skupine -- neexistuje",
+ ["de"]="Externe Datei -- in Gruppe -- existiert nicht",
+ ["en"]="external file -- in group -- does not exist",
+ ["fr"]="le fichier externe -- du groupe -- n'existe pas",
+ ["it"]="il file esterno -- del gruppo -- non esiste",
+ ["nl"]="externe file -- in groep -- bestaat niet",
+ ["no"]="ekstern fil -- i gruppe -- eksisterer ikke",
+ ["ro"]="fisierul extern -- din grupul -- nu exista",
+ },
+ ["5"]={
+ ["cs"]="makra z -- nactena",
+ ["de"]="Modul -- geladen",
+ ["en"]="module -- loaded",
+ ["fr"]="module -- chargé",
+ ["it"]="macro del modulo -- caricate",
+ ["nl"]="module -- geladen",
+ ["no"]="makroene i modul -- er lest inn",
+ ["ro"]="macro-urile din modulul -- s-au incarcat",
+ },
+ ["6"]={
+ ["cs"]="zadna makra v -- nenalezena",
+ ["de"]="Modul -- gefunden",
+ ["en"]="module -- not found",
+ ["fr"]="module -- non trouvé",
+ ["it"]="nessuna macro trovata nel modulo --",
+ ["nl"]="geen module -- gevonden",
+ ["no"]="ingen makroer funnet i modul ---",
+ ["ro"]="nu s-au gasit macro-uri in modulul --",
+ },
+ ["7"]={
+ ["cs"]="makra z -- jsou jiz nactena",
+ ["de"]="Modul -- bereits geladen",
+ ["en"]="module -- already loaded",
+ ["fr"]="module -- déjà chargé",
+ ["it"]="macro del modulo -- già caricate",
+ ["nl"]="module -- reeds geladen",
+ ["no"]="makroene i modul -- er allerede lest inn",
+ ["ro"]="macro-urile din modulul -- s-au incarcat deja",
+ },
+ ["8"]={
+ ["cs"]="nova verze pomocneho souboru, je treba druheho behu",
+ ["de"]="Neue Version der Hilfsdatei, zweiter Durchlauf benoetigt",
+ ["en"]="new version of utility file, second pass needed",
+ ["fr"]="nouvelle version de fichier utilitaire, seconde passe nécessaire",
+ ["it"]="nuova versione del file supplementare, seconda passata necessaria",
+ ["nl"]="nieuwe versie hulpfile, tweede run nodig",
+ ["no"]="ny versjon av hjelpefil, andre gjennomkjøring nødvendig",
+ ["ro"]="o noua versiune de fisier utilitar, este necesara o noua trecere",
+ },
+ ["9"]={
+ ["cs"]="-- nenalezeno/nezpracovano",
+ ["de"]="-- nicht gefunden/verarbeitet",
+ ["en"]="-- not found/processed",
+ ["fr"]="-- non trouvé/traité",
+ ["it"]="-- non trovato/elaborato",
+ ["nl"]="-- niet gevonden/geplaatst",
+ ["no"]="-- ikke funnet/behandlet",
+ ["ro"]="-- nu este gasit/procesat",
+ },
+ ["91"]={
+ ["en"]="papertray --",
+ ["nl"]="papierlade --",
+ },
+ ["files"]={ "core-mis.tex", "page-ini.tex", "prag-gen.tex", "strc-mar.tex" },
+ ["title"]={
+ ["cs"]="system",
+ ["de"]="system",
+ ["en"]="system",
+ ["fr"]="système",
+ ["it"]="sistema",
+ ["nl"]="systeem",
+ ["no"]="system",
+ ["ro"]="sistem",
+ },
+ },
+ ["textblocks"]={
+ ["1"]={
+ ["cs"]="nova verze, je treba druhy beh",
+ ["de"]="neue Version, zweiter Durchlauf benoetigt",
+ ["en"]="new version, second pass needed",
+ ["fr"]="nouvelle version, une seconde passe est nécessaire",
+ ["it"]="nuova versione, seconda passata necessaria",
+ ["nl"]="nieuwe versie, tweede run nodig",
+ ["no"]="ny versjon, andre gjennomkjøring nødvendig",
+ ["ro"]="o noua versiune, este nevoie de inca o trecere",
+ },
+ ["10"]={
+ ["cs"]="-- nacteno a zpracovano",
+ ["de"]="-- geladen und verarbeitet",
+ ["en"]="-- loaded and processed",
+ ["fr"]="-- chargé et traité",
+ ["it"]="-- caricato ed elaborato",
+ ["nl"]="-- geladen en verwerkt",
+ ["no"]="-- lest inn og behandlet",
+ ["ro"]="-- incarcat si procesat",
+ },
+ ["11"]={
+ ["cs"]="-- nacteno a vysazeno",
+ ["de"]="-- geladen und gesetzt",
+ ["en"]="-- loaded and typeset",
+ ["fr"]="-- chargé et composé",
+ ["it"]="-- caricato e composto",
+ ["nl"]="-- geladen en geplaatst",
+ ["no"]="-- lest inn og tegnsatt",
+ ["ro"]="-- incarcat si cules",
+ },
+ ["12"]={
+ ["cs"]="-- preskoceno",
+ ["de"]="-- ausgelassen",
+ ["en"]="-- skipped",
+ ["fr"]="-- sauté",
+ ["it"]="-- saltato",
+ ["nl"]="-- overgeslagen",
+ ["no"]="-- utelatt",
+ ["ro"]="-- sarit peste",
+ },
+ ["2"]={
+ ["cs"]="zapisuji bloky do --",
+ ["de"]="schreibe Bloecke zu --",
+ ["en"]="writing blocks to --",
+ ["fr"]="ecriture des blocs vers --",
+ ["it"]="scrittura dei blocchi su --",
+ ["nl"]="wegschrijven blokken naar --",
+ ["no"]="skriver blokker til --",
+ ["ro"]="se scriu blocurile in --",
+ },
+ ["3"]={
+ ["cs"]="ctu bloky z --",
+ ["de"]="lese Bloecke von --",
+ ["en"]="reading blocks from --",
+ ["fr"]="lecture des blocs en provenance de --",
+ ["it"]="lettura dei blocchi da --",
+ ["nl"]="inlezen blokken uit --",
+ ["no"]="leser blokker fra --",
+ ["ro"]="se citesc blocurile din --",
+ },
+ ["4"]={
+ ["cs"]="je treba druhy beh",
+ ["de"]="zweiter Durchlauf benoetigt",
+ ["en"]="second pass needed",
+ ["fr"]="seconde passe nécessaire",
+ ["it"]="seconda passata necessaria",
+ ["nl"]="er is een tweede run nodig",
+ ["no"]="andre gjennomkjøring nødvendig",
+ ["ro"]="este nevoie de inca o trecere",
+ },
+ ["5"]={
+ ["cs"]="-- neni skryto",
+ ["de"]="-- nicht verborgen",
+ ["en"]="-- not hidden",
+ ["fr"]="-- non caché",
+ ["it"]="-- non nascosto",
+ ["nl"]="-- niet verborgen",
+ ["no"]="-- ikke skjult",
+ ["ro"]="-- nu este ascuns",
+ },
+ ["6"]={
+ ["cs"]="-- skryto a zpracovano",
+ ["de"]="-- verborgen und verarbeitet",
+ ["en"]="-- hidden and processed",
+ ["fr"]="-- caché et traité",
+ ["it"]="-- nascosto ed elaborato",
+ ["nl"]="-- verborgen en verwerkt",
+ ["no"]="-- skjult og behandlet",
+ ["ro"]="-- ascuns si procesat",
+ },
+ ["7"]={
+ ["cs"]="-- skryto",
+ ["de"]="-- verborgen",
+ ["en"]="-- hidden",
+ ["fr"]="-- caché",
+ ["it"]="-- nascosto",
+ ["nl"]="-- verborgen",
+ ["no"]="-- skjult",
+ ["ro"]="-- ascuns",
+ },
+ ["8"]={
+ ["cs"]="-- vysazeno",
+ ["de"]="-- gesetzt",
+ ["en"]="-- typeset",
+ ["fr"]="-- composé",
+ ["it"]="-- composto",
+ ["nl"]="-- gehandhaafd",
+ ["no"]="-- tegnsatt",
+ ["ro"]="-- cules",
+ },
+ ["9"]={
+ ["cs"]="-- nevysazeno",
+ ["de"]="-- nicht gesetzt",
+ ["en"]="-- not typeset",
+ ["fr"]="-- non composé",
+ ["it"]="-- non composto",
+ ["nl"]="-- niet gehandhaafd",
+ ["no"]="-- ikke tegnsatt",
+ ["ro"]="-- nu este cules",
+ },
+ ["files"]={ "core-blk.tex" },
+ ["title"]={
+ ["cs"]="textovyblok",
+ ["de"]="textblock",
+ ["en"]="textblocks",
+ ["fr"]="blocs de texte",
+ ["it"]="blocchi di testo",
+ ["nl"]="tekstblokken",
+ ["no"]="tekstblokker",
+ ["ro"]="blocuri de text",
+ },
+ },
+ ["verbatims"]={
+ ["1"]={
+ ["cs"]="soubor -- neexistuje",
+ ["de"]="Datei -- existiert nicht",
+ ["en"]="file -- does not exist",
+ ["fr"]="le fichier -- n'existe pas",
+ ["it"]="il file -- non esiste",
+ ["nl"]="file -- bestaat niet",
+ ["no"]="fil -- eksisterer ikke",
+ ["ro"]="fisierul -- nu exista",
+ },
+ ["files"]={ "core-ver.tex" },
+ ["title"]={
+ ["cs"]="verbatim",
+ ["de"]="verbatim",
+ ["en"]="verbatim",
+ ["fr"]="verbatim",
+ ["it"]="verbatim",
+ ["nl"]="typen",
+ ["no"]="verbatim",
+ ["ro"]="verbatim",
+ },
+ },
+ ["versions"]={
+ ["1"]={
+ ["cs"]="postradam @+",
+ ["de"]="fehlendes @+",
+ ["en"]="missing @+",
+ ["fr"]="@+ manquant",
+ ["it"]="@+ mancante",
+ ["nl"]="er mankeert een @+",
+ ["no"]="manglende @+",
+ ["ro"]="lipseste @+",
+ },
+ ["2"]={
+ ["cs"]="oznacuji se strany",
+ ["de"]="Erstelle Seiten",
+ ["en"]="marking pages",
+ ["fr"]="marquage des pages",
+ ["it"]="marcatura pagine",
+ ["nl"]="markeren pagina's",
+ ["no"]="markerer sider",
+ ["ro"]="pagini marcate",
+ },
+ ["3"]={
+ ["cs"]="oznacene strany: --",
+ ["de"]="Ausgewaehlte Seiten: --",
+ ["en"]="selected pages: --",
+ ["fr"]="pages sélectionnées : --",
+ ["it"]="pagine selezionate: --",
+ ["nl"]="geselecteerde pagina's: --",
+ ["no"]="valgte sider: --",
+ ["ro"]="pagini selectate: --",
+ },
+ ["files"]={ "core-int.tex" },
+ ["title"]={
+ ["cs"]="verze",
+ ["de"]="Version",
+ ["en"]="version",
+ ["fr"]="version",
+ ["it"]="version",
+ ["nl"]="versie",
+ ["no"]="versjon",
+ ["ro"]="versiuni",
+ },
+ },
+} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/base/mult-mfr.tex b/Master/texmf-dist/tex/context/base/mult-mfr.tex
new file mode 100644
index 00000000000..ecfd88ecc25
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mult-mfr.tex
@@ -0,0 +1,198 @@
+\setinterfacemessage{references}{1}{réference -- inconnue}
+\setinterfacemessage{references}{3}{type -- de réference inconnu}
+\setinterfacemessage{references}{2}{réference -- dupliquée à la page --}
+\setinterfacemessage{references}{4}{réference -- inconnue}
+\setinterfacemessage{references}{title}{réferences}
+\setinterfacemessage{references}{30}{objet -- inconnu}
+\setinterfacemessage{references}{31}{objet -- dupliqué}
+\setinterfacemessage{references}{21}{document -- chargé}
+\setinterfacemessage{references}{22}{le document -- n'est pas interactif}
+\setinterfacemessage{references}{23}{reference -- indéterminé (préfixe=--)}
+\setinterfacemessage{documents}{1}{sheet --}
+\setinterfacemessage{documents}{title}{sheets}
+\setinterfacemessage{documents}{2}{number --}
+\setinterfacemessage{handlings}{1}{manipulation -- de police}
+\setinterfacemessage{handlings}{3}{manipulation -- inconnue de police}
+\setinterfacemessage{handlings}{2}{la manipulation -- de police est chargée}
+\setinterfacemessage{handlings}{title}{manipulation}
+\setinterfacemessage{systems}{title}{système}
+\setinterfacemessage{systems}{41}{le fichier externe -- du groupe -- n'existe pas}
+\setinterfacemessage{systems}{9}{-- non trouvé/traité}
+\setinterfacemessage{systems}{91}{papertray --}
+\setinterfacemessage{systems}{8}{nouvelle version de fichier utilitaire, seconde passe nécessaire}
+\setinterfacemessage{systems}{21}{pas de données utilitaires chargées}
+\setinterfacemessage{systems}{20}{signification (tris) de -- chargée}
+\setinterfacemessage{systems}{5}{module -- chargé}
+\setinterfacemessage{systems}{4}{la commande -- est déjà définie}
+\setinterfacemessage{systems}{27}{Version}
+\setinterfacemessage{systems}{26}{Registres}
+\setinterfacemessage{systems}{25}{Réferences}
+\setinterfacemessage{systems}{24}{blocsflottants}
+\setinterfacemessage{systems}{1}{chargement de fichier utilitaire reporté (typemode)}
+\setinterfacemessage{systems}{23}{-- arrangé à --}
+\setinterfacemessage{systems}{22}{utilise un fichier utilitaire valide}
+\setinterfacemessage{systems}{2}{-- chargé}
+\setinterfacemessage{systems}{19}{signification (synonymes) de -- chargée}
+\setinterfacemessage{systems}{18}{le synonyme -- -- n'existe pas}
+\setinterfacemessage{systems}{7}{module -- déjà chargé}
+\setinterfacemessage{systems}{6}{module -- non trouvé}
+\setinterfacemessage{systems}{14}{nouvellepage forcée dans la liste à --}
+\setinterfacemessage{systems}{15}{sauvegarde du tampon (buffer) --}
+\setinterfacemessage{systems}{16}{composition du tampon (buffer) --}
+\setinterfacemessage{systems}{17}{composition textuelle du tampon (buffer) --}
+\setinterfacemessage{systems}{13}{marquage -- defini --}
+\setinterfacemessage{systems}{12}{le fichier utilitaire n'est pas trié, utilise texutil}
+\setinterfacemessage{systems}{11}{construction util simple}
+\setinterfacemessage{systems}{10}{n'utilisez pas em dans --}
+\setinterfacemessage{floatblocks}{1}{-- renuméroté / -- => --}
+\setinterfacemessage{floatblocks}{3}{-- déplacé}
+\setinterfacemessage{floatblocks}{2}{-- sauvegardé}
+\setinterfacemessage{floatblocks}{5}{ordre adapté}
+\setinterfacemessage{floatblocks}{4}{-- placé}
+\setinterfacemessage{floatblocks}{7}{n flottants de bas de page limité à --}
+\setinterfacemessage{floatblocks}{6}{n flottants de haut de page limité à --}
+\setinterfacemessage{floatblocks}{9}{ordre perturbé}
+\setinterfacemessage{floatblocks}{8}{moins de -- lignes}
+\setinterfacemessage{floatblocks}{title}{blocs de flottants}
+\setinterfacemessage{floatblocks}{13}{there is nothing to split}
+\setinterfacemessage{floatblocks}{12}{indéfini}
+\setinterfacemessage{floatblocks}{11}{pas de bloc donné}
+\setinterfacemessage{floatblocks}{10}{-- limité}
+\setinterfacemessage{interactions}{1}{ratio d'aspect -- x -- (b x h)}
+\setinterfacemessage{interactions}{3}{inactif}
+\setinterfacemessage{interactions}{2}{actif}
+\setinterfacemessage{interactions}{5}{le fichier joint -- est inconnu}
+\setinterfacemessage{interactions}{4}{pas de synchronisation de page (--) dans le hmode}
+\setinterfacemessage{interactions}{6}{le fichier joint -- n'existe pas}
+\setinterfacemessage{interactions}{title}{interaction}
+\setinterfacemessage{interactions}{21}{-- code inseré}
+\setinterfacemessage{structures}{1}{début de blocsection --}
+\setinterfacemessage{structures}{title}{structure}
+\setinterfacemessage{structures}{2}{fin de blocsection --}
+\setinterfacemessage{linguals}{1}{les motifs -- pour -- sont chargés (n=--,e=--,m=--)}
+\setinterfacemessage{linguals}{3}{hyphenations -- pour -- chargés (n=--,e=--,m=--)}
+\setinterfacemessage{linguals}{2}{pas de motifs -- pour -- (n=--,e=--,m=--) (--,--)}
+\setinterfacemessage{linguals}{5}{les motifs pour -- ne sont pas chargés}
+\setinterfacemessage{linguals}{4}{pas d'hyphenations -- pour -- (n=--,e=--,m=--)}
+\setinterfacemessage{linguals}{7}{les options spécifiques de langue [--] introduisent un -- saut}
+\setinterfacemessage{linguals}{6}{langue -- non définie}
+\setinterfacemessage{linguals}{9}{la langue -- est active}
+\setinterfacemessage{linguals}{8}{les options spécifiques de langue [--] sont ajoutés en douceur}
+\setinterfacemessage{linguals}{title}{langue}
+\setinterfacemessage{linguals}{10}{motifs -- chargés}
+\setinterfacemessage{regimes}{1}{encodage --}
+\setinterfacemessage{regimes}{3}{encodage -- inconnu}
+\setinterfacemessage{regimes}{2}{l'encodage -- est chargé}
+\setinterfacemessage{regimes}{title}{encodage}
+\setinterfacemessage{filters}{1}{le filtre -- est chargé}
+\setinterfacemessage{filters}{title}{filtre}
+\setinterfacemessage{filters}{2}{filtre -- inconnu}
+\setinterfacemessage{verbatims}{1}{le fichier -- n'existe pas}
+\setinterfacemessage{verbatims}{title}{verbatim}
+\setinterfacemessage{encodings}{1}{encodage --}
+\setinterfacemessage{encodings}{3}{encodage -- inconnu}
+\setinterfacemessage{encodings}{2}{l'encodage -- est chargé}
+\setinterfacemessage{encodings}{title}{encodage}
+\setinterfacemessage{columns}{1}{seules -- colonnes possibles}
+\setinterfacemessage{columns}{3}{problèmes, désactive l'équilibrage}
+\setinterfacemessage{columns}{2}{utilisez \string\filbreak\space en tant qu'alternative}
+\setinterfacemessage{columns}{5}{flottant en partie inférieure pas encore supporté}
+\setinterfacemessage{columns}{4}{flottant en partie supérieure pas encore supporté}
+\setinterfacemessage{columns}{7}{équilibrage abandonné après 100 pas}
+\setinterfacemessage{columns}{6}{-- flottant(s) reporté(s)}
+\setinterfacemessage{columns}{9}{vérification des irrégularités}
+\setinterfacemessage{columns}{8}{équilibré en -- pas}
+\setinterfacemessage{columns}{title}{colonnes}
+\setinterfacemessage{columns}{13}{flottant large déplacé dans la partie supérieure de la colonne}
+\setinterfacemessage{columns}{12}{flottant déplacé à la colonne suivante / --}
+\setinterfacemessage{columns}{11}{flottant mis à la largeur de la colonne}
+\setinterfacemessage{columns}{10}{(moins de) 1 ligne restante}
+\setinterfacemessage{textblocks}{1}{nouvelle version, une seconde passe est nécessaire}
+\setinterfacemessage{textblocks}{3}{lecture des blocs en provenance de --}
+\setinterfacemessage{textblocks}{2}{ecriture des blocs vers --}
+\setinterfacemessage{textblocks}{5}{-- non caché}
+\setinterfacemessage{textblocks}{4}{seconde passe nécessaire}
+\setinterfacemessage{textblocks}{7}{-- caché}
+\setinterfacemessage{textblocks}{6}{-- caché et traité}
+\setinterfacemessage{textblocks}{9}{-- non composé}
+\setinterfacemessage{textblocks}{8}{-- composé}
+\setinterfacemessage{textblocks}{title}{blocs de texte}
+\setinterfacemessage{textblocks}{12}{-- sauté}
+\setinterfacemessage{textblocks}{11}{-- chargé et composé}
+\setinterfacemessage{textblocks}{10}{-- chargé et traité}
+\setinterfacemessage{symbols}{1}{chargement du jeu de symbole --}
+\setinterfacemessage{symbols}{title}{symboles}
+\setinterfacemessage{versions}{1}{@+ manquant}
+\setinterfacemessage{versions}{3}{pages sélectionnées : --}
+\setinterfacemessage{versions}{2}{marquage des pages}
+\setinterfacemessage{versions}{title}{version}
+\setinterfacemessage{specials}{1}{-- chargé}
+\setinterfacemessage{specials}{3}{-- est remis à zéro}
+\setinterfacemessage{specials}{2}{pas d'imbracations plus profondes ne sont permises --}
+\setinterfacemessage{specials}{5}{chargement du fichier de définition --}
+\setinterfacemessage{specials}{4}{la commande -- n'existe pas}
+\setinterfacemessage{specials}{7}{pilote -- inconnu}
+\setinterfacemessage{specials}{6}{l'imbrication n'est pas permise}
+\setinterfacemessage{specials}{title}{specials}
+\setinterfacemessage{javascript}{1}{chargement du jeu de script --}
+\setinterfacemessage{javascript}{title}{javascript}
+\setinterfacemessage{javascript}{2}{préambule -- inconnu}
+\setinterfacemessage{fonts}{1}{encodage --}
+\setinterfacemessage{fonts}{3}{variante -- inconnue}
+\setinterfacemessage{fonts}{2}{la variante -- est chargée}
+\setinterfacemessage{fonts}{5}{le style -- n'est pas défini}
+\setinterfacemessage{fonts}{4}{policecorps -- n'est pas définie}
+\setinterfacemessage{fonts}{7}{format -- inconnu}
+\setinterfacemessage{fonts}{6}{-- est chargé}
+\setinterfacemessage{fonts}{14}{policecorps -- est défini (une définition globale pourrait être plus adéquat)}
+\setinterfacemessage{fonts}{8}{style -- défini}
+\setinterfacemessage{fonts}{title}{corps de texte}
+\setinterfacemessage{fonts}{10}{fichier de police -- inconnu}
+\setinterfacemessage{databases}{1}{--}
+\setinterfacemessage{databases}{3}{fichier global --}
+\setinterfacemessage{databases}{2}{fichier local --}
+\setinterfacemessage{databases}{4}{fichier inconnu --}
+\setinterfacemessage{databases}{title}{bases de données}
+\setinterfacemessage{colors}{1}{le système -- est globalement activé}
+\setinterfacemessage{colors}{3}{-- n'est pas défini --}
+\setinterfacemessage{colors}{2}{le système -- est localement activé}
+\setinterfacemessage{colors}{5}{système -- inconnu}
+\setinterfacemessage{colors}{4}{le système -- est chargé}
+\setinterfacemessage{colors}{7}{le palette -- n'est pas disponible}
+\setinterfacemessage{colors}{6}{la palette -- est disponible}
+\setinterfacemessage{colors}{9}{l'espace de couleur -- n'est pas supporté}
+\setinterfacemessage{colors}{8}{la spécification -- de la couleur -- devient noire}
+\setinterfacemessage{colors}{title}{couleurs}
+\setinterfacemessage{colors}{12}{-- est enregistré}
+\setinterfacemessage{colors}{11}{la couleur est convertie en niveau de gris}
+\setinterfacemessage{colors}{10}{-- l'espace de couleur est supporté}
+\setinterfacemessage{layouts}{1}{hauteurtexte adaptée avec -- à la page --}
+\setinterfacemessage{layouts}{3}{-- times text postponed}
+\setinterfacemessage{layouts}{2}{-- times postponed text placed}
+\setinterfacemessage{layouts}{5}{blocsmarge inactifs}
+\setinterfacemessage{layouts}{4}{blocsmarge actifs}
+\setinterfacemessage{layouts}{7}{calcul de l'espace pour le logo}
+\setinterfacemessage{layouts}{6}{jeu de souspage -- traité (taille --)}
+\setinterfacemessage{layouts}{9}{pas plus de -- niveaux pour l'instant dans les élémentarisations}
+\setinterfacemessage{layouts}{8}{calcul des arrières-plans}
+\setinterfacemessage{layouts}{title}{calque}
+\setinterfacemessage{layouts}{11}{espacement -- non permis en modegrille}
+\setinterfacemessage{layouts}{10}{-- et -- ne sont pas ajoutés à 1.0}
+\setinterfacemessage{check}{1}{manquant ou dégroupé '=' après '--' à la ligne --}
+\setinterfacemessage{check}{3}{-- -- remplace une macro, utilisez des MAJUSCULES !}
+\setinterfacemessage{check}{2}{-- argument(s) attendu(s) à la ligne --}
+\setinterfacemessage{check}{title}{vérification}
+\setinterfacemessage{metapost}{1}{chargement de la bibliothèque metapost --}
+\setinterfacemessage{metapost}{title}{metapost}
+\setinterfacemessage{files}{1}{le synonyme de fichier -- est déjà utilisé pour --}
+\setinterfacemessage{files}{title}{fichiers}
+\setinterfacemessage{figures}{1}{la figure -- ne peut être trouvée}
+\setinterfacemessage{figures}{3}{dimensions of -- are determined externally}
+\setinterfacemessage{figures}{2}{la figure -- n'est pas pré-sélectionnée}
+\setinterfacemessage{figures}{5}{dimensions of -- are unknown}
+\setinterfacemessage{figures}{4}{les dimensions de -- chargées implicitement à partir du fichier de figure}
+\setinterfacemessage{figures}{6}{les dimensions de -- calculées par rlxtools}
+\setinterfacemessage{figures}{8}{figureobject -- est réutilisé}
+\setinterfacemessage{figures}{title}{figures}
+%
+\endinput \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/base/mult-mit.tex b/Master/texmf-dist/tex/context/base/mult-mit.tex
new file mode 100644
index 00000000000..0efb03e90df
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mult-mit.tex
@@ -0,0 +1,198 @@
+\setinterfacemessage{references}{1}{riferimento sconosciuto --}
+\setinterfacemessage{references}{3}{riferimento di tipo sconosciuto --}
+\setinterfacemessage{references}{2}{riferimento duplicato -- a pagina --}
+\setinterfacemessage{references}{4}{riferimento illecito --}
+\setinterfacemessage{references}{title}{riferimenti}
+\setinterfacemessage{references}{30}{oggetto sconosciuto --}
+\setinterfacemessage{references}{31}{oggetto duplicato --}
+\setinterfacemessage{references}{21}{documento -- caricato}
+\setinterfacemessage{references}{22}{il documento -- non ø interattivo}
+\setinterfacemessage{references}{23}{riferimento ambiguo -- (prefisso=--)}
+\setinterfacemessage{documents}{1}{sheet --}
+\setinterfacemessage{documents}{title}{sheets}
+\setinterfacemessage{documents}{2}{number --}
+\setinterfacemessage{handlings}{1}{font handling --}
+\setinterfacemessage{handlings}{3}{unknown font handling --}
+\setinterfacemessage{handlings}{2}{font handling -- is loaded}
+\setinterfacemessage{handlings}{title}{handling}
+\setinterfacemessage{systems}{title}{sistema}
+\setinterfacemessage{systems}{41}{il file esterno -- del gruppo -- non esiste}
+\setinterfacemessage{systems}{9}{-- non trovato/elaborato}
+\setinterfacemessage{systems}{91}{papertray --}
+\setinterfacemessage{systems}{8}{nuova versione del file supplementare, seconda passata necessaria}
+\setinterfacemessage{systems}{21}{nessuna informazione supplementare caricata}
+\setinterfacemessage{systems}{20}{significato (specie) di -- caricato}
+\setinterfacemessage{systems}{5}{macro del modulo -- caricate}
+\setinterfacemessage{systems}{4}{comando -- già definito}
+\setinterfacemessage{systems}{27}{Versione}
+\setinterfacemessage{systems}{26}{Registri}
+\setinterfacemessage{systems}{25}{Riferimenti}
+\setinterfacemessage{systems}{24}{Oggetti mobili}
+\setinterfacemessage{systems}{1}{caricamento dei file supplementari posticipato (typemode)}
+\setinterfacemessage{systems}{23}{-- sistemato a --}
+\setinterfacemessage{systems}{22}{usare un file supplementare valido}
+\setinterfacemessage{systems}{2}{-- caricato}
+\setinterfacemessage{systems}{19}{significato (sinonimi) di -- caricato}
+\setinterfacemessage{systems}{18}{sinonimo -- -- non esistente}
+\setinterfacemessage{systems}{7}{macro del modulo -- già caricate}
+\setinterfacemessage{systems}{6}{nessuna macro trovata nel modulo --}
+\setinterfacemessage{systems}{14}{nuova pagina obbligata in lista a --}
+\setinterfacemessage{systems}{15}{salvataggio del buffer --}
+\setinterfacemessage{systems}{16}{composizione del buffer --}
+\setinterfacemessage{systems}{17}{composizione verbatim del buffer --}
+\setinterfacemessage{systems}{13}{marcatura -- definita --}
+\setinterfacemessage{systems}{12}{file di supplemento non ordinato, usare texutil}
+\setinterfacemessage{systems}{11}{costruzione di un semplice supplemento}
+\setinterfacemessage{systems}{10}{non usare em in --}
+\setinterfacemessage{floatblocks}{1}{-- rinumerato / -- => --}
+\setinterfacemessage{floatblocks}{3}{-- mosso}
+\setinterfacemessage{floatblocks}{2}{-- salvato}
+\setinterfacemessage{floatblocks}{5}{ordine aggiustato}
+\setinterfacemessage{floatblocks}{4}{-- sistemato}
+\setinterfacemessage{floatblocks}{7}{n di bottom floats limitato a --}
+\setinterfacemessage{floatblocks}{6}{n di top floats limitato a --}
+\setinterfacemessage{floatblocks}{9}{ordine disturbato}
+\setinterfacemessage{floatblocks}{8}{meno di -- righe}
+\setinterfacemessage{floatblocks}{title}{oggetti mobili}
+\setinterfacemessage{floatblocks}{13}{there is nothing to split}
+\setinterfacemessage{floatblocks}{12}{non definito}
+\setinterfacemessage{floatblocks}{11}{nessun oggetto specificato}
+\setinterfacemessage{floatblocks}{10}{-- limitato}
+\setinterfacemessage{interactions}{1}{rapporto -- x -- (b x a)}
+\setinterfacemessage{interactions}{3}{inattiva}
+\setinterfacemessage{interactions}{2}{attiva}
+\setinterfacemessage{interactions}{5}{unknown attachment --}
+\setinterfacemessage{interactions}{4}{sincronizzazione di pagina (--) non disponibile in hmode}
+\setinterfacemessage{interactions}{6}{attachment file -- does not exist}
+\setinterfacemessage{interactions}{title}{interazione}
+\setinterfacemessage{interactions}{21}{codice -- inserito}
+\setinterfacemessage{structures}{1}{inizio del blocco (sezione) --}
+\setinterfacemessage{structures}{title}{struttura}
+\setinterfacemessage{structures}{2}{fine del blocco (sezione) --}
+\setinterfacemessage{linguals}{1}{schemi -- per -- caricati (n=--,e=--,m=--)}
+\setinterfacemessage{linguals}{3}{sillabazione -- per -- caricata (n=--,e=--,m=--)}
+\setinterfacemessage{linguals}{2}{niente schemi -- per -- (n=--,e=--,m=--) (--,--)}
+\setinterfacemessage{linguals}{5}{schemi per -- non caricati}
+\setinterfacemessage{linguals}{4}{niente sillabazione -- per -- (n=--,e=--,m=--)}
+\setinterfacemessage{linguals}{7}{opzioni specifiche per la lingua [--] introducono un salto --}
+\setinterfacemessage{linguals}{6}{lingua -- non definita}
+\setinterfacemessage{linguals}{9}{lingua -- attiva}
+\setinterfacemessage{linguals}{8}{opzioni specifiche per la lingua [--] aggiunte trasparentemente}
+\setinterfacemessage{linguals}{title}{lingua}
+\setinterfacemessage{linguals}{10}{schemi -- caricati}
+\setinterfacemessage{regimes}{1}{codifica --}
+\setinterfacemessage{regimes}{3}{codifica sconosciuta --}
+\setinterfacemessage{regimes}{2}{codifica -- caricata}
+\setinterfacemessage{regimes}{title}{codifica}
+\setinterfacemessage{filters}{1}{filtro -- caricato}
+\setinterfacemessage{filters}{title}{filtri}
+\setinterfacemessage{filters}{2}{filtro sconosciuto --}
+\setinterfacemessage{verbatims}{1}{il file -- non esiste}
+\setinterfacemessage{verbatims}{title}{verbatim}
+\setinterfacemessage{encodings}{1}{codifica --}
+\setinterfacemessage{encodings}{3}{codifica sconosciuta --}
+\setinterfacemessage{encodings}{2}{codifica -- caricata}
+\setinterfacemessage{encodings}{title}{codifica}
+\setinterfacemessage{columns}{1}{solo -- colonne possibili}
+\setinterfacemessage{columns}{3}{problemi, disabilitare il bilanciamento}
+\setinterfacemessage{columns}{2}{in alternativa, usare \string\filbreak}
+\setinterfacemessage{columns}{5}{float in fondo non ancora supportato}
+\setinterfacemessage{columns}{4}{float in cima non ancora supportato}
+\setinterfacemessage{columns}{7}{bilanciamento annullato dopo 100 passi}
+\setinterfacemessage{columns}{6}{-- float(s) posticipate}
+\setinterfacemessage{columns}{9}{controllare seghettamento}
+\setinterfacemessage{columns}{8}{bilanciamento in -- passo/i}
+\setinterfacemessage{columns}{title}{colonne}
+\setinterfacemessage{columns}{13}{oggetto mobile ampio spostato sopra le colonne}
+\setinterfacemessage{columns}{12}{oggetto mobile spostata alla colonna successiva / --}
+\setinterfacemessage{columns}{11}{oggetto mobile troppo ampio per la colonna}
+\setinterfacemessage{columns}{10}{(meno di) una riga rimasta}
+\setinterfacemessage{textblocks}{1}{nuova versione, seconda passata necessaria}
+\setinterfacemessage{textblocks}{3}{lettura dei blocchi da --}
+\setinterfacemessage{textblocks}{2}{scrittura dei blocchi su --}
+\setinterfacemessage{textblocks}{5}{-- non nascosto}
+\setinterfacemessage{textblocks}{4}{seconda passata necessaria}
+\setinterfacemessage{textblocks}{7}{-- nascosto}
+\setinterfacemessage{textblocks}{6}{-- nascosto ed elaborato}
+\setinterfacemessage{textblocks}{9}{-- non composto}
+\setinterfacemessage{textblocks}{8}{-- composto}
+\setinterfacemessage{textblocks}{title}{blocchi di testo}
+\setinterfacemessage{textblocks}{12}{-- saltato}
+\setinterfacemessage{textblocks}{11}{-- caricato e composto}
+\setinterfacemessage{textblocks}{10}{-- caricato ed elaborato}
+\setinterfacemessage{symbols}{1}{caricamento gruppo di simboli --}
+\setinterfacemessage{symbols}{title}{simboli}
+\setinterfacemessage{versions}{1}{@+ mancante}
+\setinterfacemessage{versions}{3}{pagine selezionate: --}
+\setinterfacemessage{versions}{2}{marcatura pagine}
+\setinterfacemessage{versions}{title}{version}
+\setinterfacemessage{specials}{1}{-- caricato}
+\setinterfacemessage{specials}{3}{-- reimpostato}
+\setinterfacemessage{specials}{2}{non ø permesso un annidamento maggiore --}
+\setinterfacemessage{specials}{5}{caricamento del file di definizione --}
+\setinterfacemessage{specials}{4}{il comando -- non esiste}
+\setinterfacemessage{specials}{7}{driver sconosciuto --}
+\setinterfacemessage{specials}{6}{annidamento non permesso}
+\setinterfacemessage{specials}{title}{specialitø}
+\setinterfacemessage{javascript}{1}{caricamento dello script set --}
+\setinterfacemessage{javascript}{title}{javascript}
+\setinterfacemessage{javascript}{2}{preambolo sconosciuto --}
+\setinterfacemessage{fonts}{1}{codifica --}
+\setinterfacemessage{fonts}{3}{variante sconosciuta --}
+\setinterfacemessage{fonts}{2}{variante -- caricata}
+\setinterfacemessage{fonts}{5}{stile -- non definito}
+\setinterfacemessage{fonts}{4}{corpo del testo -- non definito}
+\setinterfacemessage{fonts}{7}{formato sconosciuto --}
+\setinterfacemessage{fonts}{6}{-- caricato}
+\setinterfacemessage{fonts}{14}{corpo del testo -- definito (sarebbe meglio globale)}
+\setinterfacemessage{fonts}{8}{stile -- definito}
+\setinterfacemessage{fonts}{title}{font del corpo}
+\setinterfacemessage{fonts}{10}{file di font sconosciuto --}
+\setinterfacemessage{databases}{1}{--}
+\setinterfacemessage{databases}{3}{file globale --}
+\setinterfacemessage{databases}{2}{file locale --}
+\setinterfacemessage{databases}{4}{file sconosciuto --}
+\setinterfacemessage{databases}{title}{database}
+\setinterfacemessage{colors}{1}{sistema -- attivato globalmente}
+\setinterfacemessage{colors}{3}{-- non definito --}
+\setinterfacemessage{colors}{2}{sistema -- attivato localmente}
+\setinterfacemessage{colors}{5}{sistema -- sconosciuto}
+\setinterfacemessage{colors}{4}{sistema -- caricato}
+\setinterfacemessage{colors}{7}{tavolozza -- non disponibile}
+\setinterfacemessage{colors}{6}{tavolozza -- resa disponibile}
+\setinterfacemessage{colors}{9}{spazio dei colori -- non supportato}
+\setinterfacemessage{colors}{8}{specifica -- del colore -- convertita in nero}
+\setinterfacemessage{colors}{title}{colore}
+\setinterfacemessage{colors}{12}{-- is registered}
+\setinterfacemessage{colors}{11}{il colore ø convertito in grigio}
+\setinterfacemessage{colors}{10}{spazio dei colori -- supportato}
+\setinterfacemessage{layouts}{1}{altezza del testo adattata con -- a pagina --}
+\setinterfacemessage{layouts}{3}{testo posticipato -- volte}
+\setinterfacemessage{layouts}{2}{posizionato testo posticipato -- volte}
+\setinterfacemessage{layouts}{5}{blocchi in margine inattivi}
+\setinterfacemessage{layouts}{4}{blocchi in margine attivi}
+\setinterfacemessage{layouts}{7}{calcolo dello spazio per logo}
+\setinterfacemessage{layouts}{6}{gruppo di sottopagine -- elaborato (dimensione --)}
+\setinterfacemessage{layouts}{9}{attualmente non più di -- livelli di elencazione}
+\setinterfacemessage{layouts}{8}{calcolo dello sfondo}
+\setinterfacemessage{layouts}{title}{layout}
+\setinterfacemessage{layouts}{11}{spaziatura -- non permessa in modo griglia}
+\setinterfacemessage{layouts}{10}{-- e -- non sommano a 1.0}
+\setinterfacemessage{check}{1}{'=' mancante o non raggruppato dopo '--' alla riga --}
+\setinterfacemessage{check}{3}{-- -- sostituisce una macro, usare le MAIUSCOLE!}
+\setinterfacemessage{check}{2}{-- argomento/i attesi alla riga --}
+\setinterfacemessage{check}{title}{controllo}
+\setinterfacemessage{metapost}{1}{caricamento della libreria metapost --}
+\setinterfacemessage{metapost}{title}{metapost}
+\setinterfacemessage{files}{1}{sinonimo file -- già in uso per --}
+\setinterfacemessage{files}{title}{file}
+\setinterfacemessage{figures}{1}{figura -- non trovata}
+\setinterfacemessage{figures}{3}{dimensions of -- are determined externally}
+\setinterfacemessage{figures}{2}{la figura -- non è preimpostata}
+\setinterfacemessage{figures}{5}{dimensions of -- are unknown}
+\setinterfacemessage{figures}{4}{dimensioni di -- caricate dal file di immagini stesso}
+\setinterfacemessage{figures}{6}{dimensioni di -- calcolate da rlxtools}
+\setinterfacemessage{figures}{8}{oggetto-figura -- riutilizzato}
+\setinterfacemessage{figures}{title}{figure}
+%
+\endinput \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/base/mult-mnl.tex b/Master/texmf-dist/tex/context/base/mult-mnl.tex
new file mode 100644
index 00000000000..5c52f7affa1
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mult-mnl.tex
@@ -0,0 +1,198 @@
+\setinterfacemessage{references}{1}{onbekende verwijzing --}
+\setinterfacemessage{references}{3}{type verwijzing -- onbekend}
+\setinterfacemessage{references}{2}{dubbele verwijzing -- op pagina --}
+\setinterfacemessage{references}{4}{verboden verwijzing --}
+\setinterfacemessage{references}{title}{verwijzingen}
+\setinterfacemessage{references}{30}{onbekend object --}
+\setinterfacemessage{references}{31}{dubbel object --}
+\setinterfacemessage{references}{21}{document -- geladen}
+\setinterfacemessage{references}{22}{document -- is niet interactief}
+\setinterfacemessage{references}{23}{onduidelijke verwijzing -- (prefix=--)}
+\setinterfacemessage{documents}{1}{sheet --}
+\setinterfacemessage{documents}{title}{sheets}
+\setinterfacemessage{documents}{2}{nummer --}
+\setinterfacemessage{handlings}{1}{font afhandeling --}
+\setinterfacemessage{handlings}{3}{onbekende font afhandeling --}
+\setinterfacemessage{handlings}{2}{font afhandeling -- wordt geladen}
+\setinterfacemessage{handlings}{title}{handling}
+\setinterfacemessage{systems}{title}{systeem}
+\setinterfacemessage{systems}{41}{externe file -- in groep -- bestaat niet}
+\setinterfacemessage{systems}{9}{-- niet gevonden/geplaatst}
+\setinterfacemessage{systems}{91}{papierlade --}
+\setinterfacemessage{systems}{8}{nieuwe versie hulpfile, tweede run nodig}
+\setinterfacemessage{systems}{21}{de hulpfile is niet geladen}
+\setinterfacemessage{systems}{20}{betekenissen (sorteren) van -- geladen}
+\setinterfacemessage{systems}{5}{module -- geladen}
+\setinterfacemessage{systems}{4}{commando -- is al gedefinieerd}
+\setinterfacemessage{systems}{27}{Versie}
+\setinterfacemessage{systems}{26}{Registers}
+\setinterfacemessage{systems}{25}{Verwijzingen}
+\setinterfacemessage{systems}{24}{Plaatsblokken}
+\setinterfacemessage{systems}{1}{laden hulpfile uitgesteld (typemode)}
+\setinterfacemessage{systems}{23}{-- gearrangeerd op --}
+\setinterfacemessage{systems}{22}{gebruik een goede hulpfile}
+\setinterfacemessage{systems}{2}{-- geladen}
+\setinterfacemessage{systems}{19}{betekenissen (synoniemen) van -- geladen}
+\setinterfacemessage{systems}{18}{synoniem -- -- bestaat niet}
+\setinterfacemessage{systems}{7}{module -- reeds geladen}
+\setinterfacemessage{systems}{6}{geen module -- gevonden}
+\setinterfacemessage{systems}{14}{geforceerde paginaovergang in lijst voor --}
+\setinterfacemessage{systems}{15}{wegschrijven buffer --}
+\setinterfacemessage{systems}{16}{inlezen buffer --}
+\setinterfacemessage{systems}{17}{verbatim inlezen buffer --}
+\setinterfacemessage{systems}{13}{markering -- gedefinieerd --}
+\setinterfacemessage{systems}{12}{de hulpfile is niet gesorteerd, gebruik texutil}
+\setinterfacemessage{systems}{11}{aanmaken basale hulpfile}
+\setinterfacemessage{systems}{10}{gebruik geen em in --}
+\setinterfacemessage{floatblocks}{1}{-- hernummerd / -- => --}
+\setinterfacemessage{floatblocks}{3}{-- verplaatst}
+\setinterfacemessage{floatblocks}{2}{-- bewaard}
+\setinterfacemessage{floatblocks}{5}{volgorde aangepast}
+\setinterfacemessage{floatblocks}{4}{-- geplaatst}
+\setinterfacemessage{floatblocks}{7}{maximaal -- onder}
+\setinterfacemessage{floatblocks}{6}{maximaal -- boven}
+\setinterfacemessage{floatblocks}{9}{volgorde verstoord}
+\setinterfacemessage{floatblocks}{8}{minder dan -- regels}
+\setinterfacemessage{floatblocks}{title}{plaatsblokken}
+\setinterfacemessage{floatblocks}{13}{er is niets te splitsen}
+\setinterfacemessage{floatblocks}{12}{niet gedefinieerd}
+\setinterfacemessage{floatblocks}{11}{geen blok opgegeven}
+\setinterfacemessage{floatblocks}{10}{-- begrensd}
+\setinterfacemessage{interactions}{1}{aspect ratio -- x -- (b x h)}
+\setinterfacemessage{interactions}{3}{niet actief}
+\setinterfacemessage{interactions}{2}{actief}
+\setinterfacemessage{interactions}{5}{onbekend attachment --}
+\setinterfacemessage{interactions}{4}{geen paginasynchronisatie (--) in hmode}
+\setinterfacemessage{interactions}{6}{attachment file -- bestaat niet}
+\setinterfacemessage{interactions}{title}{interactie}
+\setinterfacemessage{interactions}{21}{-- code tussengevoegd}
+\setinterfacemessage{structures}{1}{begin van sectieblok --}
+\setinterfacemessage{structures}{title}{structuur}
+\setinterfacemessage{structures}{2}{eind van sectieblok --}
+\setinterfacemessage{linguals}{1}{afbreekpatronen -- voor -- geladen (n=--,e=--,m=--)}
+\setinterfacemessage{linguals}{3}{afbreekdefinities -- voor -- geladen (n=--,e=--,m=--)}
+\setinterfacemessage{linguals}{2}{geen afbreekpatronen -- voor -- (n=--,e=--,m=--) (--,--)}
+\setinterfacemessage{linguals}{5}{afbreekpatronen voor -- niet geladen}
+\setinterfacemessage{linguals}{4}{geen afbreekdefinities -- voor -- (n=--,e=--,m=--)}
+\setinterfacemessage{linguals}{7}{taal specifieke opties [--] introduceren een skip van --}
+\setinterfacemessage{linguals}{6}{taal -- is niet gedefinieerd}
+\setinterfacemessage{linguals}{9}{taal -- is actief}
+\setinterfacemessage{linguals}{8}{taal specifieke opties [--] naadloos toegevoegd}
+\setinterfacemessage{linguals}{title}{taal}
+\setinterfacemessage{linguals}{10}{patronen --geladen}
+\setinterfacemessage{regimes}{1}{regime --}
+\setinterfacemessage{regimes}{3}{onbekend regime --}
+\setinterfacemessage{regimes}{2}{regime -- wordt geladen}
+\setinterfacemessage{regimes}{title}{regime}
+\setinterfacemessage{filters}{1}{filter -- wordt geladen}
+\setinterfacemessage{filters}{title}{filter}
+\setinterfacemessage{filters}{2}{onbekend filter --}
+\setinterfacemessage{verbatims}{1}{file -- bestaat niet}
+\setinterfacemessage{verbatims}{title}{typen}
+\setinterfacemessage{encodings}{1}{codering --}
+\setinterfacemessage{encodings}{3}{onbekende codering --}
+\setinterfacemessage{encodings}{2}{codering -- wordt geladen}
+\setinterfacemessage{encodings}{title}{encoding}
+\setinterfacemessage{columns}{1}{maximaal -- kolommen}
+\setinterfacemessage{columns}{3}{probleempje, probeer [balanceren=nee]}
+\setinterfacemessage{columns}{2}{gebruik eventueel \string\filbreak}
+\setinterfacemessage{columns}{5}{plaatsblok onder nog niet mogelijk}
+\setinterfacemessage{columns}{4}{plaatsblok boven nog niet mogelijk}
+\setinterfacemessage{columns}{7}{balanceren afgebroken na 100 stappen}
+\setinterfacemessage{columns}{6}{-- plaatsblok(en) opgeschort}
+\setinterfacemessage{columns}{9}{uitlijnen controleren!}
+\setinterfacemessage{columns}{8}{gebalanceerd in -- stap(pen)}
+\setinterfacemessage{columns}{title}{kolommen}
+\setinterfacemessage{columns}{13}{breed figuur geplaatst boven kolommen}
+\setinterfacemessage{columns}{12}{plaatsblok verplaatst naar volgende kolom / --}
+\setinterfacemessage{columns}{11}{plaatsblok te breed voor kolom}
+\setinterfacemessage{columns}{10}{(minder dan) 1 regel over}
+\setinterfacemessage{textblocks}{1}{nieuwe versie, tweede run nodig}
+\setinterfacemessage{textblocks}{3}{inlezen blokken uit --}
+\setinterfacemessage{textblocks}{2}{wegschrijven blokken naar --}
+\setinterfacemessage{textblocks}{5}{-- niet verborgen}
+\setinterfacemessage{textblocks}{4}{er is een tweede run nodig}
+\setinterfacemessage{textblocks}{7}{-- verborgen}
+\setinterfacemessage{textblocks}{6}{-- verborgen en verwerkt}
+\setinterfacemessage{textblocks}{9}{-- niet gehandhaafd}
+\setinterfacemessage{textblocks}{8}{-- gehandhaafd}
+\setinterfacemessage{textblocks}{title}{tekstblokken}
+\setinterfacemessage{textblocks}{12}{-- overgeslagen}
+\setinterfacemessage{textblocks}{11}{-- geladen en geplaatst}
+\setinterfacemessage{textblocks}{10}{-- geladen en verwerkt}
+\setinterfacemessage{symbols}{1}{symboolset -- wordt geladen}
+\setinterfacemessage{symbols}{title}{symbolen}
+\setinterfacemessage{versions}{1}{er mankeert een @+}
+\setinterfacemessage{versions}{3}{geselecteerde pagina's: --}
+\setinterfacemessage{versions}{2}{markeren pagina's}
+\setinterfacemessage{versions}{title}{versie}
+\setinterfacemessage{specials}{1}{-- geladen}
+\setinterfacemessage{specials}{3}{-- gereset}
+\setinterfacemessage{specials}{2}{verdere nesting is niet toegestaan --}
+\setinterfacemessage{specials}{5}{definitiefile -- wordt geladen}
+\setinterfacemessage{specials}{4}{commando -- bestaat niet}
+\setinterfacemessage{specials}{7}{onbekende driver --}
+\setinterfacemessage{specials}{6}{nesting is niet toegestaan}
+\setinterfacemessage{specials}{title}{specials}
+\setinterfacemessage{javascript}{1}{script set -- wordt geladen}
+\setinterfacemessage{javascript}{title}{javascript}
+\setinterfacemessage{javascript}{2}{onbekende preamble --}
+\setinterfacemessage{fonts}{1}{codering --}
+\setinterfacemessage{fonts}{3}{onbekende variant --}
+\setinterfacemessage{fonts}{2}{variant -- wordt geladen}
+\setinterfacemessage{fonts}{5}{stijl -- is niet gedefinieerd}
+\setinterfacemessage{fonts}{4}{korps -- is niet gedefinieerd}
+\setinterfacemessage{fonts}{7}{onbekend formaat --}
+\setinterfacemessage{fonts}{6}{-- wordt geladen}
+\setinterfacemessage{fonts}{14}{korps -- is gedefinieerd (kan beter globaal plaatsvinden)}
+\setinterfacemessage{fonts}{8}{stijl -- gedefinieerd}
+\setinterfacemessage{fonts}{title}{korps}
+\setinterfacemessage{fonts}{10}{onbekende font file --}
+\setinterfacemessage{databases}{1}{--}
+\setinterfacemessage{databases}{3}{globaal bestand --}
+\setinterfacemessage{databases}{2}{lokaal bestand --}
+\setinterfacemessage{databases}{4}{onbekend bestand --}
+\setinterfacemessage{databases}{title}{database}
+\setinterfacemessage{colors}{1}{systeem -- is globaal actief}
+\setinterfacemessage{colors}{3}{-- is niet gedefinieerd --}
+\setinterfacemessage{colors}{2}{systeem -- is lokaal actief}
+\setinterfacemessage{colors}{5}{onbekend systeem --}
+\setinterfacemessage{colors}{4}{systeem -- wordt geladen}
+\setinterfacemessage{colors}{7}{palet -- is niet beschikbaar}
+\setinterfacemessage{colors}{6}{palet -- is beschikbaar}
+\setinterfacemessage{colors}{9}{-- kleurruimte wordt niet ondersteund}
+\setinterfacemessage{colors}{8}{specificatie -- bij -- wordt zwart}
+\setinterfacemessage{colors}{title}{kleur}
+\setinterfacemessage{colors}{12}{-- is geregistreerd}
+\setinterfacemessage{colors}{11}{kleur wordt vertaald in grijs}
+\setinterfacemessage{colors}{10}{-- kleurruimte wordt ondersteund}
+\setinterfacemessage{layouts}{1}{teksthoogte aangepast met -- op pagina --}
+\setinterfacemessage{layouts}{3}{-- maal tekst plaatsen uitstellen}
+\setinterfacemessage{layouts}{2}{-- maal uitgestelde tekst tussengevoegd}
+\setinterfacemessage{layouts}{5}{margeblokken inactief}
+\setinterfacemessage{layouts}{4}{margeblokken actief}
+\setinterfacemessage{layouts}{7}{beeldmerken berekenen}
+\setinterfacemessage{layouts}{6}{subpagina reeks -- verwerkt (aantal --)}
+\setinterfacemessage{layouts}{9}{momenteel maximaal -- niveaus in opsommingen}
+\setinterfacemessage{layouts}{8}{achtergronden berekenen}
+\setinterfacemessage{layouts}{title}{layout}
+\setinterfacemessage{layouts}{11}{interlinie -- niet toegestaan in gridmode}
+\setinterfacemessage{layouts}{10}{-- en -- tellen niet op tot 1.0}
+\setinterfacemessage{check}{1}{'=' ontbreekt of zonder {} na '--' in regel --}
+\setinterfacemessage{check}{3}{-- -- vervangt een macro, gebruik HOOFDLETTERS!}
+\setinterfacemessage{check}{2}{-- argument(en) verwacht in regel --}
+\setinterfacemessage{check}{title}{controle}
+\setinterfacemessage{metapost}{1}{metapost bibliotheek -- wordt geladen}
+\setinterfacemessage{metapost}{title}{metapost}
+\setinterfacemessage{files}{1}{file synoniem -- is al in gebruik voor --}
+\setinterfacemessage{files}{title}{files}
+\setinterfacemessage{figures}{1}{figuur -- is niet te vinden}
+\setinterfacemessage{figures}{3}{maten van -- worden extern vastgesteld}
+\setinterfacemessage{figures}{2}{figuur -- wordt niet preset}
+\setinterfacemessage{figures}{5}{maten van -- zijn onbekend}
+\setinterfacemessage{figures}{4}{maten van -- geladen uit figuurfile zelf}
+\setinterfacemessage{figures}{6}{maten van -- berekend door rlxtools}
+\setinterfacemessage{figures}{8}{figuurobject -- wordt opnieuw gebruikt}
+\setinterfacemessage{figures}{title}{figuren}
+%
+\endinput \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/base/mult-mno.tex b/Master/texmf-dist/tex/context/base/mult-mno.tex
new file mode 100644
index 00000000000..676c2cb2c71
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mult-mno.tex
@@ -0,0 +1,198 @@
+\setinterfacemessage{references}{1}{ukjent referanse --}
+\setinterfacemessage{references}{3}{ukjent referansetype --}
+\setinterfacemessage{references}{2}{duplikat referanse -- pø side --}
+\setinterfacemessage{references}{4}{ulovlig referanse --}
+\setinterfacemessage{references}{title}{referanser}
+\setinterfacemessage{references}{30}{ukjent objekt --}
+\setinterfacemessage{references}{31}{duplikat objekt --}
+\setinterfacemessage{references}{21}{dokument -- er lest inn}
+\setinterfacemessage{references}{22}{dokument -- er ikke interaktivt}
+\setinterfacemessage{references}{23}{obskur referanse -- (Prefix=--)}
+\setinterfacemessage{documents}{1}{sheet --}
+\setinterfacemessage{documents}{title}{sheets}
+\setinterfacemessage{documents}{2}{number --}
+\setinterfacemessage{handlings}{1}{font handling --}
+\setinterfacemessage{handlings}{3}{unknown font handling --}
+\setinterfacemessage{handlings}{2}{font handling -- is loaded}
+\setinterfacemessage{handlings}{title}{handling}
+\setinterfacemessage{systems}{title}{system}
+\setinterfacemessage{systems}{41}{ekstern fil -- i gruppe -- eksisterer ikke}
+\setinterfacemessage{systems}{9}{-- ikke funnet/behandlet}
+\setinterfacemessage{systems}{91}{papertray --}
+\setinterfacemessage{systems}{8}{ny versjon av hjelpefil, andre gjennomkjøring nødvendig}
+\setinterfacemessage{systems}{21}{hjelpefila er ikke lest inn}
+\setinterfacemessage{systems}{20}{betydning (sorterer) av -- er lest inn}
+\setinterfacemessage{systems}{5}{makroene i modul -- er lest inn}
+\setinterfacemessage{systems}{4}{kommando -- er allerede definert}
+\setinterfacemessage{systems}{27}{Versjon}
+\setinterfacemessage{systems}{26}{Registere}
+\setinterfacemessage{systems}{25}{Referanser}
+\setinterfacemessage{systems}{24}{Flytblokker}
+\setinterfacemessage{systems}{1}{innlesning av hjelpefila utsatt (typemode)}
+\setinterfacemessage{systems}{23}{-- arrangert på --}
+\setinterfacemessage{systems}{22}{bruk en gyldig hjelpefil}
+\setinterfacemessage{systems}{2}{-- er lest inn}
+\setinterfacemessage{systems}{19}{betydning (synonymer) av -- er lest inn}
+\setinterfacemessage{systems}{18}{synonym -- -- eksisterer ikke}
+\setinterfacemessage{systems}{7}{makroene i modul -- er allerede lest inn}
+\setinterfacemessage{systems}{6}{ingen makroer funnet i modul ---}
+\setinterfacemessage{systems}{14}{tvunget sideskift i liste ved --}
+\setinterfacemessage{systems}{15}{lagrer Buffer --}
+\setinterfacemessage{systems}{16}{tegnsetter buffer --}
+\setinterfacemessage{systems}{17}{tegnsetter verbatim-buffer --}
+\setinterfacemessage{systems}{13}{markering -- definert --}
+\setinterfacemessage{systems}{12}{hjelpefila er ikke sortert, bruk texutil}
+\setinterfacemessage{systems}{11}{lager enkel hjelpefil}
+\setinterfacemessage{systems}{10}{ikke bruk em i --}
+\setinterfacemessage{floatblocks}{1}{-- renummerert / -- => --}
+\setinterfacemessage{floatblocks}{3}{-- flyttet}
+\setinterfacemessage{floatblocks}{2}{-- lagret}
+\setinterfacemessage{floatblocks}{5}{rekkefølge tilpasset}
+\setinterfacemessage{floatblocks}{4}{-- plassert}
+\setinterfacemessage{floatblocks}{7}{maksimalt -- flytblokker nederst}
+\setinterfacemessage{floatblocks}{6}{maksimalt -- flytblokker øverst}
+\setinterfacemessage{floatblocks}{9}{rekkefølge endret}
+\setinterfacemessage{floatblocks}{8}{mindre enn -- linjer}
+\setinterfacemessage{floatblocks}{title}{flytblokker}
+\setinterfacemessage{floatblocks}{13}{there is nothing to split}
+\setinterfacemessage{floatblocks}{12}{udefinert}
+\setinterfacemessage{floatblocks}{11}{ingen blokk oppgitt}
+\setinterfacemessage{floatblocks}{10}{-- begrenset}
+\setinterfacemessage{interactions}{1}{forholdstall -- x -- (b x h)}
+\setinterfacemessage{interactions}{3}{inaktiv}
+\setinterfacemessage{interactions}{2}{aktiv}
+\setinterfacemessage{interactions}{5}{unknown attachment --}
+\setinterfacemessage{interactions}{4}{ingen sidesynkronisering (--) i hmode}
+\setinterfacemessage{interactions}{6}{attachment file -- does not exist}
+\setinterfacemessage{interactions}{title}{interaksjon}
+\setinterfacemessage{interactions}{21}{-- kode satt inn / tilføyd}
+\setinterfacemessage{structures}{1}{starten av blokk -- (seksjon)}
+\setinterfacemessage{structures}{title}{struktur}
+\setinterfacemessage{structures}{2}{slutten av blokk -- (seksjon)}
+\setinterfacemessage{linguals}{1}{orddelingsmønster -- for -- er lest inn (n=--,e=--,m=--)}
+\setinterfacemessage{linguals}{3}{orddelingsdefinisjon -- for -- er lest inn (n=--,e=--,m=--)}
+\setinterfacemessage{linguals}{2}{ingen orddelingsmønster -- for -- (n=--,e=--,m=--) (--,--)}
+\setinterfacemessage{linguals}{5}{orddelingsmønster for -- er ikke lest inn}
+\setinterfacemessage{linguals}{4}{ingen orddelingsdefinisjon -- for -- (n=--,e=--,m=--)}
+\setinterfacemessage{linguals}{7}{spràk spesifikk opsjon [--] introduserer et -- hopp}
+\setinterfacemessage{linguals}{6}{spràk -- er udefinert}
+\setinterfacemessage{linguals}{9}{spràk -- er aktivt}
+\setinterfacemessage{linguals}{8}{spràk spesifikk opsjon [--] problemfritt tilføyd}
+\setinterfacemessage{linguals}{title}{sprøk}
+\setinterfacemessage{linguals}{10}{orddelingsmønster -- er lest inn}
+\setinterfacemessage{regimes}{1}{koding --}
+\setinterfacemessage{regimes}{3}{ukjent koding --}
+\setinterfacemessage{regimes}{2}{koding -- er lest inn}
+\setinterfacemessage{regimes}{title}{koding}
+\setinterfacemessage{filters}{1}{filter -- is loaded}
+\setinterfacemessage{filters}{title}{filter}
+\setinterfacemessage{filters}{2}{unknown filter --}
+\setinterfacemessage{verbatims}{1}{fil -- eksisterer ikke}
+\setinterfacemessage{verbatims}{title}{verbatim}
+\setinterfacemessage{encodings}{1}{koding --}
+\setinterfacemessage{encodings}{3}{ukjent koding --}
+\setinterfacemessage{encodings}{2}{koding -- er lest inn}
+\setinterfacemessage{encodings}{title}{koding}
+\setinterfacemessage{columns}{1}{maksimalt -- kolonner}
+\setinterfacemessage{columns}{3}{problemer, slår av balansering}
+\setinterfacemessage{columns}{2}{bruk \string\filbreak\space som et alternativ}
+\setinterfacemessage{columns}{5}{flytblokker nedert er ikke støttet enda}
+\setinterfacemessage{columns}{4}{flytblokker øverst er ikke støttet enda}
+\setinterfacemessage{columns}{7}{balansering avbrutt etter 100 iterasjoner}
+\setinterfacemessage{columns}{6}{-- flytblokk forskjøvet}
+\setinterfacemessage{columns}{9}{kontroller tekstlayout!}
+\setinterfacemessage{columns}{8}{balansert etter -- iterasjoner}
+\setinterfacemessage{columns}{title}{kolonner}
+\setinterfacemessage{columns}{13}{bred flytblokk forksjøvet til toppen av kolonnene}
+\setinterfacemessage{columns}{12}{flytblokk forskjøvet til neste kolonne / --}
+\setinterfacemessage{columns}{11}{flytblokk for bredt for kolonna}
+\setinterfacemessage{columns}{10}{(mindre enn) 1 linje igjen}
+\setinterfacemessage{textblocks}{1}{ny versjon, andre gjennomkjøring nødvendig}
+\setinterfacemessage{textblocks}{3}{leser blokker fra --}
+\setinterfacemessage{textblocks}{2}{skriver blokker til --}
+\setinterfacemessage{textblocks}{5}{-- ikke skjult}
+\setinterfacemessage{textblocks}{4}{andre gjennomkjøring nødvendig}
+\setinterfacemessage{textblocks}{7}{-- skjult}
+\setinterfacemessage{textblocks}{6}{-- skjult og behandlet}
+\setinterfacemessage{textblocks}{9}{-- ikke tegnsatt}
+\setinterfacemessage{textblocks}{8}{-- tegnsatt}
+\setinterfacemessage{textblocks}{title}{tekstblokker}
+\setinterfacemessage{textblocks}{12}{-- utelatt}
+\setinterfacemessage{textblocks}{11}{-- lest inn og tegnsatt}
+\setinterfacemessage{textblocks}{10}{-- lest inn og behandlet}
+\setinterfacemessage{symbols}{1}{leser inn symbolsett --}
+\setinterfacemessage{symbols}{title}{symboler}
+\setinterfacemessage{versions}{1}{manglende @+}
+\setinterfacemessage{versions}{3}{valgte sider: --}
+\setinterfacemessage{versions}{2}{markerer sider}
+\setinterfacemessage{versions}{title}{versjon}
+\setinterfacemessage{specials}{1}{-- er lest inn}
+\setinterfacemessage{specials}{3}{-- er tilbakestilt}
+\setinterfacemessage{specials}{2}{dypere 'nesting' er ikke tillatt --}
+\setinterfacemessage{specials}{5}{leser inn definisjonsfil for --}
+\setinterfacemessage{specials}{4}{kommando -- eksisterer ikke}
+\setinterfacemessage{specials}{7}{ukjent driver --}
+\setinterfacemessage{specials}{6}{'nesting' er ikke tillatt}
+\setinterfacemessage{specials}{title}{specials}
+\setinterfacemessage{javascript}{1}{leser inn scriptsett --}
+\setinterfacemessage{javascript}{title}{javascript}
+\setinterfacemessage{javascript}{2}{ukjent 'preamble' --}
+\setinterfacemessage{fonts}{1}{koding --}
+\setinterfacemessage{fonts}{3}{ukjent variant --}
+\setinterfacemessage{fonts}{2}{variant -- er lest inn}
+\setinterfacemessage{fonts}{5}{stil -- er ikke definert}
+\setinterfacemessage{fonts}{4}{hovedfont -- er ikke definert}
+\setinterfacemessage{fonts}{7}{ukjent format --}
+\setinterfacemessage{fonts}{6}{-- er lest inn}
+\setinterfacemessage{fonts}{14}{bodyfont -- is defined (can better be done global)}
+\setinterfacemessage{fonts}{8}{stil -- definert}
+\setinterfacemessage{fonts}{title}{hovedfont}
+\setinterfacemessage{fonts}{10}{ukjent fontfil --}
+\setinterfacemessage{databases}{1}{--}
+\setinterfacemessage{databases}{3}{global fil --}
+\setinterfacemessage{databases}{2}{lokal fil --}
+\setinterfacemessage{databases}{4}{ukjent fil --}
+\setinterfacemessage{databases}{title}{databaser}
+\setinterfacemessage{colors}{1}{system -- er aktivert globalt}
+\setinterfacemessage{colors}{3}{-- er udefinert --}
+\setinterfacemessage{colors}{2}{system -- er aktivert lokalt}
+\setinterfacemessage{colors}{5}{ukjent system --}
+\setinterfacemessage{colors}{4}{system -- er lest inn}
+\setinterfacemessage{colors}{7}{palett -- er ikke tilgjengelig}
+\setinterfacemessage{colors}{6}{palett -- er tilgjengelig}
+\setinterfacemessage{colors}{9}{-- fargerom er ikke støttet}
+\setinterfacemessage{colors}{8}{spesifikasjon -- for farge -- gir kun svart}
+\setinterfacemessage{colors}{title}{farge}
+\setinterfacemessage{colors}{12}{-- is registered}
+\setinterfacemessage{colors}{11}{fargen vil bli vist som grø}
+\setinterfacemessage{colors}{10}{-- fargerom er støttet}
+\setinterfacemessage{layouts}{1}{teksthøyde tilpasset med -- på side --}
+\setinterfacemessage{layouts}{3}{-- ganger tekst forskjøvet}
+\setinterfacemessage{layouts}{2}{-- ganger forskjøvet tekst plassert}
+\setinterfacemessage{layouts}{5}{margblokker inaktive}
+\setinterfacemessage{layouts}{4}{margblokker aktive}
+\setinterfacemessage{layouts}{7}{beregner plass for logo}
+\setinterfacemessage{layouts}{6}{delside sett -- behandlet (størrelse --)}
+\setinterfacemessage{layouts}{9}{for øyeblikket maksimalt -- nivåer i opplisting}
+\setinterfacemessage{layouts}{8}{beregner bakgrunn}
+\setinterfacemessage{layouts}{title}{layout}
+\setinterfacemessage{layouts}{11}{mellomrom -- ikke tillatt i gridmodus}
+\setinterfacemessage{layouts}{10}{-- og -- er ikke 1.0 til sammen}
+\setinterfacemessage{check}{1}{manglende '=' etter '--' i linje --}
+\setinterfacemessage{check}{3}{-- -- overskygger en makro, bruk STORE BOKSTAVER!}
+\setinterfacemessage{check}{2}{-- argument forventet i linje --}
+\setinterfacemessage{check}{title}{kontroll}
+\setinterfacemessage{metapost}{1}{metapost bibliotek -- blir lest inn}
+\setinterfacemessage{metapost}{title}{metapost}
+\setinterfacemessage{files}{1}{filesynonym -- er allerede brukt for --}
+\setinterfacemessage{files}{title}{filer}
+\setinterfacemessage{figures}{1}{figure -- can not be found}
+\setinterfacemessage{figures}{3}{dimensions of -- are determined externally}
+\setinterfacemessage{figures}{2}{figure -- is not preset}
+\setinterfacemessage{figures}{5}{dimensions of -- are unknown}
+\setinterfacemessage{figures}{4}{dimensions of -- loaded from figurefile itself}
+\setinterfacemessage{figures}{6}{dimensions of -- calculated by rlxtools}
+\setinterfacemessage{figures}{8}{figureobject -- is reused}
+\setinterfacemessage{figures}{title}{figures}
+%
+\endinput \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/base/mult-mpe.tex b/Master/texmf-dist/tex/context/base/mult-mpe.tex
new file mode 100644
index 00000000000..8335d291143
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mult-mpe.tex
@@ -0,0 +1,198 @@
+\setinterfacemessage{references}{1}{unknown reference --}
+\setinterfacemessage{references}{3}{unknown reference type --}
+\setinterfacemessage{references}{2}{duplicate reference -- on page --}
+\setinterfacemessage{references}{4}{illegal reference --}
+\setinterfacemessage{references}{title}{references}
+\setinterfacemessage{references}{30}{unknown object --}
+\setinterfacemessage{references}{31}{duplicate object --}
+\setinterfacemessage{references}{21}{document -- loaded}
+\setinterfacemessage{references}{22}{document -- is not interactive}
+\setinterfacemessage{references}{23}{obscure reference -- (prefix=--)}
+\setinterfacemessage{documents}{1}{sheet --}
+\setinterfacemessage{documents}{title}{sheets}
+\setinterfacemessage{documents}{2}{number --}
+\setinterfacemessage{handlings}{1}{font handling --}
+\setinterfacemessage{handlings}{3}{unknown font handling --}
+\setinterfacemessage{handlings}{2}{font handling -- is loaded}
+\setinterfacemessage{handlings}{title}{handling}
+\setinterfacemessage{systems}{title}{system}
+\setinterfacemessage{systems}{41}{external file -- in group -- does not exist}
+\setinterfacemessage{systems}{9}{-- not found/processed}
+\setinterfacemessage{systems}{91}{papertray --}
+\setinterfacemessage{systems}{8}{new version of utility file, second pass needed}
+\setinterfacemessage{systems}{21}{no utility data is loaded}
+\setinterfacemessage{systems}{20}{meaning (sorts) of -- loaded}
+\setinterfacemessage{systems}{5}{module -- loaded}
+\setinterfacemessage{systems}{4}{command -- is already defined}
+\setinterfacemessage{systems}{27}{Version}
+\setinterfacemessage{systems}{26}{Registers}
+\setinterfacemessage{systems}{25}{References}
+\setinterfacemessage{systems}{24}{Floatblocks}
+\setinterfacemessage{systems}{1}{loading utility-file postponed (typemode)}
+\setinterfacemessage{systems}{23}{-- arranged at --}
+\setinterfacemessage{systems}{22}{use a valid utilityfile}
+\setinterfacemessage{systems}{2}{-- loaded}
+\setinterfacemessage{systems}{19}{meaning (synonyms) of -- loaded}
+\setinterfacemessage{systems}{18}{synonym -- -- does not exist}
+\setinterfacemessage{systems}{7}{module -- already loaded}
+\setinterfacemessage{systems}{6}{module -- not found}
+\setinterfacemessage{systems}{14}{forced newpage in list at --}
+\setinterfacemessage{systems}{15}{saving buffer --}
+\setinterfacemessage{systems}{16}{typesetting buffer --}
+\setinterfacemessage{systems}{17}{typesetting verbatim buffer --}
+\setinterfacemessage{systems}{13}{mark -- defined --}
+\setinterfacemessage{systems}{12}{the utility-file is not sorted, use texutil}
+\setinterfacemessage{systems}{11}{building simple util}
+\setinterfacemessage{systems}{10}{don't use em in --}
+\setinterfacemessage{floatblocks}{1}{-- renumbered / -- => --}
+\setinterfacemessage{floatblocks}{3}{-- moved}
+\setinterfacemessage{floatblocks}{2}{-- saved}
+\setinterfacemessage{floatblocks}{5}{order adapted}
+\setinterfacemessage{floatblocks}{4}{-- placed}
+\setinterfacemessage{floatblocks}{7}{n of bottom floats limited to --}
+\setinterfacemessage{floatblocks}{6}{n of top floats limited to --}
+\setinterfacemessage{floatblocks}{9}{order disturbed}
+\setinterfacemessage{floatblocks}{8}{less than -- lines}
+\setinterfacemessage{floatblocks}{title}{floatblocks}
+\setinterfacemessage{floatblocks}{13}{there is nothing to split}
+\setinterfacemessage{floatblocks}{12}{undefined}
+\setinterfacemessage{floatblocks}{11}{no block given}
+\setinterfacemessage{floatblocks}{10}{-- limited}
+\setinterfacemessage{interactions}{1}{aspect ratio -- x -- (b x h)}
+\setinterfacemessage{interactions}{3}{inactive}
+\setinterfacemessage{interactions}{2}{active}
+\setinterfacemessage{interactions}{5}{unknown attachment --}
+\setinterfacemessage{interactions}{4}{no pagesynchronisation (--) in hmode}
+\setinterfacemessage{interactions}{6}{attachment file -- does not exist}
+\setinterfacemessage{interactions}{title}{interaction}
+\setinterfacemessage{interactions}{21}{-- code inserted}
+\setinterfacemessage{structures}{1}{begin of sectionblock --}
+\setinterfacemessage{structures}{title}{structure}
+\setinterfacemessage{structures}{2}{end of sectionblock --}
+\setinterfacemessage{linguals}{1}{patterns -- for -- loaded (n=--,e=--,m=--)}
+\setinterfacemessage{linguals}{3}{hyphenations -- for -- loaded (n=--,e=--,m=--)}
+\setinterfacemessage{linguals}{2}{no patterns -- for -- (n=--,e=--,m=--) (--,--)}
+\setinterfacemessage{linguals}{5}{patterns for -- not loaded}
+\setinterfacemessage{linguals}{4}{no hyphenations -- for -- (n=--,e=--,m=--)}
+\setinterfacemessage{linguals}{7}{language specific options [--] introduce a -- skip}
+\setinterfacemessage{linguals}{6}{language -- is undefined}
+\setinterfacemessage{linguals}{9}{language -- is active}
+\setinterfacemessage{linguals}{8}{language specific options [--] seamless appended}
+\setinterfacemessage{linguals}{title}{language}
+\setinterfacemessage{linguals}{10}{patterns --loaded}
+\setinterfacemessage{regimes}{1}{regime --}
+\setinterfacemessage{regimes}{3}{unknown regime --}
+\setinterfacemessage{regimes}{2}{regime -- is loaded}
+\setinterfacemessage{regimes}{title}{regime}
+\setinterfacemessage{filters}{1}{filter -- is loaded}
+\setinterfacemessage{filters}{title}{filter}
+\setinterfacemessage{filters}{2}{unknown filter --}
+\setinterfacemessage{verbatims}{1}{file -- does not exist}
+\setinterfacemessage{verbatims}{title}{verbatim}
+\setinterfacemessage{encodings}{1}{coding --}
+\setinterfacemessage{encodings}{3}{unknown coding --}
+\setinterfacemessage{encodings}{2}{coding -- is loaded}
+\setinterfacemessage{encodings}{title}{encoding}
+\setinterfacemessage{columns}{1}{only -- columns possible}
+\setinterfacemessage{columns}{3}{problems, disable balancing}
+\setinterfacemessage{columns}{2}{use \string\filbreak\space as alternative}
+\setinterfacemessage{columns}{5}{bottom float not yet supported}
+\setinterfacemessage{columns}{4}{top float not yet supported}
+\setinterfacemessage{columns}{7}{balancing aborted after 100 steps}
+\setinterfacemessage{columns}{6}{-- float(s) postponed}
+\setinterfacemessage{columns}{9}{check raggedness}
+\setinterfacemessage{columns}{8}{balanced in -- step(s)}
+\setinterfacemessage{columns}{title}{columns}
+\setinterfacemessage{columns}{13}{wide float moved to top of columns}
+\setinterfacemessage{columns}{12}{float moved to next column / --}
+\setinterfacemessage{columns}{11}{float too wide for column}
+\setinterfacemessage{columns}{10}{(less than) 1 line left}
+\setinterfacemessage{textblocks}{1}{new version, second pass needed}
+\setinterfacemessage{textblocks}{3}{reading blocks from --}
+\setinterfacemessage{textblocks}{2}{writing blocks to --}
+\setinterfacemessage{textblocks}{5}{-- not hidden}
+\setinterfacemessage{textblocks}{4}{second pass needed}
+\setinterfacemessage{textblocks}{7}{-- hidden}
+\setinterfacemessage{textblocks}{6}{-- hidden and processed}
+\setinterfacemessage{textblocks}{9}{-- not typeset}
+\setinterfacemessage{textblocks}{8}{-- typeset}
+\setinterfacemessage{textblocks}{title}{textblocks}
+\setinterfacemessage{textblocks}{12}{-- skipped}
+\setinterfacemessage{textblocks}{11}{-- loaded and typeset}
+\setinterfacemessage{textblocks}{10}{-- loaded and processed}
+\setinterfacemessage{symbols}{1}{loading symbolset --}
+\setinterfacemessage{symbols}{title}{symbols}
+\setinterfacemessage{versions}{1}{missing @+}
+\setinterfacemessage{versions}{3}{selected pages: --}
+\setinterfacemessage{versions}{2}{marking pages}
+\setinterfacemessage{versions}{title}{version}
+\setinterfacemessage{specials}{1}{-- loaded}
+\setinterfacemessage{specials}{3}{-- is reset}
+\setinterfacemessage{specials}{2}{no deeper nesting is permitted --}
+\setinterfacemessage{specials}{5}{loading definition file --}
+\setinterfacemessage{specials}{4}{command -- does not exist}
+\setinterfacemessage{specials}{7}{unknown driver --}
+\setinterfacemessage{specials}{6}{nesting is not permitted}
+\setinterfacemessage{specials}{title}{specials}
+\setinterfacemessage{javascript}{1}{loading script set --}
+\setinterfacemessage{javascript}{title}{javascript}
+\setinterfacemessage{javascript}{2}{unknown preamble --}
+\setinterfacemessage{fonts}{1}{coding --}
+\setinterfacemessage{fonts}{3}{unknown variant --}
+\setinterfacemessage{fonts}{2}{variant -- is loaded}
+\setinterfacemessage{fonts}{5}{style -- is not defined}
+\setinterfacemessage{fonts}{4}{bodyfont -- is not defined}
+\setinterfacemessage{fonts}{7}{unknown format --}
+\setinterfacemessage{fonts}{6}{-- is loaded}
+\setinterfacemessage{fonts}{14}{bodyfont -- is defined (can better be done global)}
+\setinterfacemessage{fonts}{8}{style -- defined}
+\setinterfacemessage{fonts}{title}{bodyfont}
+\setinterfacemessage{fonts}{10}{unknown font file --}
+\setinterfacemessage{databases}{1}{--}
+\setinterfacemessage{databases}{3}{global file --}
+\setinterfacemessage{databases}{2}{local file --}
+\setinterfacemessage{databases}{4}{unknown file --}
+\setinterfacemessage{databases}{title}{databases}
+\setinterfacemessage{colors}{1}{system -- is global activated}
+\setinterfacemessage{colors}{3}{-- is not defined --}
+\setinterfacemessage{colors}{2}{system -- is local activated}
+\setinterfacemessage{colors}{5}{unknown system --}
+\setinterfacemessage{colors}{4}{system -- is loaded}
+\setinterfacemessage{colors}{7}{palette -- is not available}
+\setinterfacemessage{colors}{6}{palette -- is available}
+\setinterfacemessage{colors}{9}{-- color space is not supported}
+\setinterfacemessage{colors}{8}{specification -- at color -- becomes black}
+\setinterfacemessage{colors}{title}{color}
+\setinterfacemessage{colors}{12}{-- is registered}
+\setinterfacemessage{colors}{11}{color is converted to gray}
+\setinterfacemessage{colors}{10}{-- color space is supported}
+\setinterfacemessage{layouts}{1}{textheight adapted with -- at page --}
+\setinterfacemessage{layouts}{3}{-- times text postponed}
+\setinterfacemessage{layouts}{2}{-- times postponed text placed}
+\setinterfacemessage{layouts}{5}{marginblocks inactive}
+\setinterfacemessage{layouts}{4}{marginblocks active}
+\setinterfacemessage{layouts}{7}{calculating logospace}
+\setinterfacemessage{layouts}{6}{subpage set -- processed (size --)}
+\setinterfacemessage{layouts}{9}{currently no more than -- levels in itemizations}
+\setinterfacemessage{layouts}{8}{calculating backgrounds}
+\setinterfacemessage{layouts}{title}{layout}
+\setinterfacemessage{layouts}{11}{spacing -- not permitted in gridmode}
+\setinterfacemessage{layouts}{10}{-- and -- don't add up to 1.0}
+\setinterfacemessage{check}{1}{missing or ungrouped '=' after '--' in line --}
+\setinterfacemessage{check}{3}{-- -- replaces a macro, use CAPITALS!}
+\setinterfacemessage{check}{2}{-- argument(s) expected in line --}
+\setinterfacemessage{check}{title}{check}
+\setinterfacemessage{metapost}{1}{loading metapost library --}
+\setinterfacemessage{metapost}{title}{metapost}
+\setinterfacemessage{files}{1}{file synonym -- is already used for --}
+\setinterfacemessage{files}{title}{files}
+\setinterfacemessage{figures}{1}{figure -- can not be found}
+\setinterfacemessage{figures}{3}{dimensions of -- are determined externally}
+\setinterfacemessage{figures}{2}{figure -- is not preset}
+\setinterfacemessage{figures}{5}{dimensions of -- are unknown}
+\setinterfacemessage{figures}{4}{dimensions of -- loaded from figurefile itself}
+\setinterfacemessage{figures}{6}{dimensions of -- calculated by rlxtools}
+\setinterfacemessage{figures}{8}{figureobject -- is reused}
+\setinterfacemessage{figures}{title}{figures}
+%
+\endinput \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/base/mult-mro.tex b/Master/texmf-dist/tex/context/base/mult-mro.tex
new file mode 100644
index 00000000000..3f52fbc70a4
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mult-mro.tex
@@ -0,0 +1,198 @@
+\setinterfacemessage{references}{1}{referinta necunoscuta --}
+\setinterfacemessage{references}{3}{tip necunoscut de referinta --}
+\setinterfacemessage{references}{2}{referinta duplicat -- la pagina --}
+\setinterfacemessage{references}{4}{referinta eronata --}
+\setinterfacemessage{references}{title}{referinte}
+\setinterfacemessage{references}{30}{obiect necunoscut --}
+\setinterfacemessage{references}{31}{obiect duplicat --}
+\setinterfacemessage{references}{21}{documentul -- este incarcat}
+\setinterfacemessage{references}{22}{documentul -- nu este interactiv}
+\setinterfacemessage{references}{23}{referinta obscura -- (prefix=--)}
+\setinterfacemessage{documents}{1}{sheet --}
+\setinterfacemessage{documents}{title}{sheets}
+\setinterfacemessage{documents}{2}{number --}
+\setinterfacemessage{handlings}{1}{font handling --}
+\setinterfacemessage{handlings}{3}{unknown font handling --}
+\setinterfacemessage{handlings}{2}{font handling -- is loaded}
+\setinterfacemessage{handlings}{title}{handling}
+\setinterfacemessage{systems}{title}{sistem}
+\setinterfacemessage{systems}{41}{fisierul extern -- din grupul -- nu exista}
+\setinterfacemessage{systems}{9}{-- nu este gasit/procesat}
+\setinterfacemessage{systems}{91}{papertray --}
+\setinterfacemessage{systems}{8}{o noua versiune de fisier utilitar, este necesara o noua trecere}
+\setinterfacemessage{systems}{21}{nici o data utilitara nu este incarcata}
+\setinterfacemessage{systems}{20}{intelesul (ordinea) pentru -- incarcat}
+\setinterfacemessage{systems}{5}{macro-urile din modulul -- s-au incarcat}
+\setinterfacemessage{systems}{4}{comanda -- este deja definita}
+\setinterfacemessage{systems}{27}{Versiune}
+\setinterfacemessage{systems}{26}{Registri}
+\setinterfacemessage{systems}{25}{Referinte}
+\setinterfacemessage{systems}{24}{Blocuri}
+\setinterfacemessage{systems}{1}{se incarca utilitarul-fisierul este amanat (typemode)}
+\setinterfacemessage{systems}{23}{-- aranjat la --}
+\setinterfacemessage{systems}{22}{folositi un fisier utilitar valid}
+\setinterfacemessage{systems}{2}{-- s-a incarcat}
+\setinterfacemessage{systems}{19}{intelesul (sinonimele) pentru -- incarcat}
+\setinterfacemessage{systems}{18}{sinonimul -- -- nu exista}
+\setinterfacemessage{systems}{7}{macro-urile din modulul -- s-au incarcat deja}
+\setinterfacemessage{systems}{6}{nu s-au gasit macro-uri in modulul --}
+\setinterfacemessage{systems}{14}{s-a fortat trecere pa pagina noua in lista la --}
+\setinterfacemessage{systems}{15}{buffer salvat --}
+\setinterfacemessage{systems}{16}{buffer-ul -- s-a cules}
+\setinterfacemessage{systems}{17}{se culege buffer-ul verbatim --}
+\setinterfacemessage{systems}{13}{marcajul -- definit --}
+\setinterfacemessage{systems}{12}{fisierul utilitar nu este sortat, folositi texutil}
+\setinterfacemessage{systems}{11}{se creeaza un utilitar simplu}
+\setinterfacemessage{systems}{10}{nu folositi em in --}
+\setinterfacemessage{floatblocks}{1}{-- renumerotat / -- => --}
+\setinterfacemessage{floatblocks}{3}{-- mutat}
+\setinterfacemessage{floatblocks}{2}{-- salvat}
+\setinterfacemessage{floatblocks}{5}{ordinea adaptata}
+\setinterfacemessage{floatblocks}{4}{-- plasat}
+\setinterfacemessage{floatblocks}{7}{nr. blocurilor de jos limitat la --}
+\setinterfacemessage{floatblocks}{6}{nr. cadrelor de sus limitat la --}
+\setinterfacemessage{floatblocks}{9}{ordinea deranjata}
+\setinterfacemessage{floatblocks}{8}{mai putin de -- linii}
+\setinterfacemessage{floatblocks}{title}{Blocuri}
+\setinterfacemessage{floatblocks}{13}{there is nothing to split}
+\setinterfacemessage{floatblocks}{12}{nedefinit}
+\setinterfacemessage{floatblocks}{11}{nu este dat nici un bloc}
+\setinterfacemessage{floatblocks}{10}{-- limitat}
+\setinterfacemessage{interactions}{1}{aspectul -- x -- (b x h)}
+\setinterfacemessage{interactions}{3}{inactiv}
+\setinterfacemessage{interactions}{2}{activ}
+\setinterfacemessage{interactions}{5}{unknown attachment --}
+\setinterfacemessage{interactions}{4}{nu exista sincronizare pt. pagini (--) in hmode}
+\setinterfacemessage{interactions}{6}{attachment file -- does not exist}
+\setinterfacemessage{interactions}{title}{interactiuni}
+\setinterfacemessage{interactions}{21}{-- cod inserat}
+\setinterfacemessage{structures}{1}{inceput de bloc sectiune --}
+\setinterfacemessage{structures}{title}{structuri}
+\setinterfacemessage{structures}{2}{sfarsit de bloc sectiune --}
+\setinterfacemessage{linguals}{1}{sablonul -- pentru -- s-a incarcat (n=--,e=--,m=--)}
+\setinterfacemessage{linguals}{3}{despartirea in silabe -- pentru -- s-a incarcat (n=--,e=--,m=--)}
+\setinterfacemessage{linguals}{2}{nu exista sabloane -- pentru -- (n=--,e=--,m=--) (--,--)}
+\setinterfacemessage{linguals}{5}{sabloanele pentru -- nu sunt incarcate}
+\setinterfacemessage{linguals}{4}{nu exista despartire in silabe -- pentru -- (n=--,e=--,m=--)}
+\setinterfacemessage{linguals}{7}{optiunile specifice ale limbii [--] introduc un spatiu --}
+\setinterfacemessage{linguals}{6}{limba -- nu este definita}
+\setinterfacemessage{linguals}{9}{limba -- este activa}
+\setinterfacemessage{linguals}{8}{optiunile specifice ale limbii [--] adaugate}
+\setinterfacemessage{linguals}{title}{limbi}
+\setinterfacemessage{linguals}{10}{sabloanele -- incarcate}
+\setinterfacemessage{regimes}{1}{codificarea --}
+\setinterfacemessage{regimes}{3}{codificarea -- este necunoscuta}
+\setinterfacemessage{regimes}{2}{codificarea -- este Encarcata}
+\setinterfacemessage{regimes}{title}{codificari}
+\setinterfacemessage{filters}{1}{filter -- is loaded}
+\setinterfacemessage{filters}{title}{filter}
+\setinterfacemessage{filters}{2}{unknown filter --}
+\setinterfacemessage{verbatims}{1}{fisierul -- nu exista}
+\setinterfacemessage{verbatims}{title}{verbatim}
+\setinterfacemessage{encodings}{1}{codificarea --}
+\setinterfacemessage{encodings}{3}{codificarea -- este necunoscuta}
+\setinterfacemessage{encodings}{2}{codificarea -- este Encarcata}
+\setinterfacemessage{encodings}{title}{codificari}
+\setinterfacemessage{columns}{1}{este posibil numai -- coloane}
+\setinterfacemessage{columns}{3}{probleme, se dezactiveaza alinierea}
+\setinterfacemessage{columns}{2}{folositi \string\filbreak\space ca alternativa}
+\setinterfacemessage{columns}{5}{cadrele bottom (bottom float) nu sunt inca suportate}
+\setinterfacemessage{columns}{4}{cadrele top (top float) nu sunt inca suportate}
+\setinterfacemessage{columns}{7}{alinierea este oprita dupa 100 de incercari}
+\setinterfacemessage{columns}{6}{-- blocurile sunt amanate}
+\setinterfacemessage{columns}{9}{verificat alinierea}
+\setinterfacemessage{columns}{8}{aliniat in -- pas(i)}
+\setinterfacemessage{columns}{title}{coloane}
+\setinterfacemessage{columns}{13}{blocul lat este mutat in partea de sus a coloanelor}
+\setinterfacemessage{columns}{12}{blocul este mutat pe urmatoarea coloana / --}
+\setinterfacemessage{columns}{11}{blocul este prea lat pentru coloana}
+\setinterfacemessage{columns}{10}{a mai ramas (mai putin de) 1 linie}
+\setinterfacemessage{textblocks}{1}{o noua versiune, este nevoie de inca o trecere}
+\setinterfacemessage{textblocks}{3}{se citesc blocurile din --}
+\setinterfacemessage{textblocks}{2}{se scriu blocurile in --}
+\setinterfacemessage{textblocks}{5}{-- nu este ascuns}
+\setinterfacemessage{textblocks}{4}{este nevoie de inca o trecere}
+\setinterfacemessage{textblocks}{7}{-- ascuns}
+\setinterfacemessage{textblocks}{6}{-- ascuns si procesat}
+\setinterfacemessage{textblocks}{9}{-- nu este cules}
+\setinterfacemessage{textblocks}{8}{-- cules}
+\setinterfacemessage{textblocks}{title}{blocuri de text}
+\setinterfacemessage{textblocks}{12}{-- sarit peste}
+\setinterfacemessage{textblocks}{11}{-- incarcat si cules}
+\setinterfacemessage{textblocks}{10}{-- incarcat si procesat}
+\setinterfacemessage{symbols}{1}{se incarca setul de simboluri --}
+\setinterfacemessage{symbols}{title}{simboluri}
+\setinterfacemessage{versions}{1}{lipseste @+}
+\setinterfacemessage{versions}{3}{pagini selectate: --}
+\setinterfacemessage{versions}{2}{pagini marcate}
+\setinterfacemessage{versions}{title}{versiuni}
+\setinterfacemessage{specials}{1}{-- incarcat}
+\setinterfacemessage{specials}{3}{-- s-a resetat}
+\setinterfacemessage{specials}{2}{nu este permis un nivel de imbricare mai mare --}
+\setinterfacemessage{specials}{5}{se incarca fisierul de definitii --}
+\setinterfacemessage{specials}{4}{comanda -- nu exista}
+\setinterfacemessage{specials}{7}{driver necunoscut --}
+\setinterfacemessage{specials}{6}{imbricarea nu este permisa}
+\setinterfacemessage{specials}{title}{specials}
+\setinterfacemessage{javascript}{1}{se incarca scriptul --}
+\setinterfacemessage{javascript}{title}{javascript}
+\setinterfacemessage{javascript}{2}{preambul necunoscut --}
+\setinterfacemessage{fonts}{1}{codificarea --}
+\setinterfacemessage{fonts}{3}{varianta necunoscuta --}
+\setinterfacemessage{fonts}{2}{varianta -- este incarcata}
+\setinterfacemessage{fonts}{5}{stilul -- nu este definit}
+\setinterfacemessage{fonts}{4}{corpul de litere -- nu este definit}
+\setinterfacemessage{fonts}{7}{format necunoscut --}
+\setinterfacemessage{fonts}{6}{-- este incarcat}
+\setinterfacemessage{fonts}{14}{bodyfont -- is defined (can better be done global)}
+\setinterfacemessage{fonts}{8}{stilul -- definit}
+\setinterfacemessage{fonts}{title}{corp de litere}
+\setinterfacemessage{fonts}{10}{fisier font necunoscut --}
+\setinterfacemessage{databases}{1}{--}
+\setinterfacemessage{databases}{3}{fisier global --}
+\setinterfacemessage{databases}{2}{fisier local --}
+\setinterfacemessage{databases}{4}{fisier necunoscut --}
+\setinterfacemessage{databases}{title}{baze de date}
+\setinterfacemessage{colors}{1}{sistem -- este activata global}
+\setinterfacemessage{colors}{3}{-- nu este definita --}
+\setinterfacemessage{colors}{2}{sistem -- este activata local}
+\setinterfacemessage{colors}{5}{sistem -- necunoscuta}
+\setinterfacemessage{colors}{4}{sistem -- este incarcata}
+\setinterfacemessage{colors}{7}{palette -- nu este disponibila}
+\setinterfacemessage{colors}{6}{paleta -- este disponibila}
+\setinterfacemessage{colors}{9}{spatiul de culoare -- nu este suportat}
+\setinterfacemessage{colors}{8}{specificatia -- la culoarea -- devine neagra}
+\setinterfacemessage{colors}{title}{culori}
+\setinterfacemessage{colors}{12}{-- is registered}
+\setinterfacemessage{colors}{11}{culoarea este convertita la gri}
+\setinterfacemessage{colors}{10}{spatiul de culoare -- este suportat}
+\setinterfacemessage{layouts}{1}{textheight adaptat cu -- la pagina --}
+\setinterfacemessage{layouts}{3}{textul amanat de -- ori}
+\setinterfacemessage{layouts}{2}{textul amanat de -- ori a fost plasat}
+\setinterfacemessage{layouts}{5}{blocuri marginale inactive}
+\setinterfacemessage{layouts}{4}{blocuri marginale active}
+\setinterfacemessage{layouts}{7}{se calculeaza spatiul pentru logo}
+\setinterfacemessage{layouts}{6}{setul -- de subpagini procesat (dimensiunea --)}
+\setinterfacemessage{layouts}{9}{acum nu se supota mai mult de -- nivele de adancime la iteratii}
+\setinterfacemessage{layouts}{8}{se calculeaza fundalurile}
+\setinterfacemessage{layouts}{title}{aranjamente}
+\setinterfacemessage{layouts}{11}{spatierea -- nu este permisa in gridmode}
+\setinterfacemessage{layouts}{10}{-- si -- nu se adauga pana la 1.0}
+\setinterfacemessage{check}{1}{lipseste '=' dupa '--' in linia --}
+\setinterfacemessage{check}{3}{-- -- inlocuieste un macro, folositi MAJUSCULE!}
+\setinterfacemessage{check}{2}{argumentul(ele) -- sunt asteptate in linia --}
+\setinterfacemessage{check}{title}{verificari}
+\setinterfacemessage{metapost}{1}{se incarca biblioteca metapost --}
+\setinterfacemessage{metapost}{title}{metapost}
+\setinterfacemessage{files}{1}{sinonimul fisierelor -- este folosit deja pentru --}
+\setinterfacemessage{files}{title}{fisiere}
+\setinterfacemessage{figures}{1}{figura -- nu poate fi gasita}
+\setinterfacemessage{figures}{3}{dimensions of -- are determined externally}
+\setinterfacemessage{figures}{2}{figura -- nu este presetata}
+\setinterfacemessage{figures}{5}{dimensions of -- are unknown}
+\setinterfacemessage{figures}{4}{dimensiunea figurii -- se incarca din fisierul insusi}
+\setinterfacemessage{figures}{6}{dimensiunea figurii -- este calculata de rlxtools}
+\setinterfacemessage{figures}{8}{obiectul figura -- este refolosit}
+\setinterfacemessage{figures}{title}{figuri}
+%
+\endinput \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/base/mult-nl.tex b/Master/texmf-dist/tex/context/base/mult-nl.tex
new file mode 100644
index 00000000000..492220961e2
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mult-nl.tex
@@ -0,0 +1,1636 @@
+% this file is auto-generated, don't edit this file
+%
+% definitions for interface variables for language nl
+%
+\setinterfacevariable{Addition}{Toevoeging}
+\setinterfacevariable{Balloon}{Ballon}
+\setinterfacevariable{Character}{Letter}
+\setinterfacevariable{Characters}{Letters}
+\setinterfacevariable{CloseDocument}{SluitDocument}
+\setinterfacevariable{ExitViewer}{VerlaatViewer}
+\setinterfacevariable{FirstPage}{EerstePagina}
+\setinterfacevariable{FitHeight}{HoogtePassend}
+\setinterfacevariable{FitWidth}{BreedtePassend}
+\setinterfacevariable{GotoPage}{GaNaarPagina}
+\setinterfacevariable{Greek}{Grieks}
+\setinterfacevariable{Help}{Help}
+\setinterfacevariable{HideField}{VerbergVeld}
+\setinterfacevariable{HideLayer}{VerbergLaag}
+\setinterfacevariable{Key}{Sleutel}
+\setinterfacevariable{LastPage}{LaatstePagina}
+\setinterfacevariable{LoadForm}{LaadFormulier}
+\setinterfacevariable{MONTH}{MAAND}
+\setinterfacevariable{New}{Nieuw}
+\setinterfacevariable{NextJump}{VolgendeSprong}
+\setinterfacevariable{NextPage}{VolgendePagina}
+\setinterfacevariable{Numbers}{Cijfers}
+\setinterfacevariable{OpenNamedDocument}{OpenDocumentOpNaam}
+\setinterfacevariable{Paragraph}{Paragraaf}
+\setinterfacevariable{PauseMovie}{PauzeerFilm}
+\setinterfacevariable{PauseRendering}{PauzeerRendering}
+\setinterfacevariable{PauseSound}{PauzeerGeluid}
+\setinterfacevariable{PreviousJump}{VorigeSprong}
+\setinterfacevariable{PreviousPage}{VorigePagina}
+\setinterfacevariable{PrintDocument}{PrintDocument}
+\setinterfacevariable{Query}{RaadpleegDocument}
+\setinterfacevariable{QueryAgain}{HerhaalRaadplegen}
+\setinterfacevariable{ResetForm}{ResetFormulier}
+\setinterfacevariable{ResumeMovie}{HervatFilm}
+\setinterfacevariable{ResumeRendering}{HervatRendering}
+\setinterfacevariable{ResumeSound}{HervatGeluid}
+\setinterfacevariable{Romannumerals}{Romeins}
+\setinterfacevariable{SaveDocument}{BewaarDocument}
+\setinterfacevariable{SaveForm}{BewaarFormulier}
+\setinterfacevariable{SaveNamedDocument}{BewaarDocumentOpNaam}
+\setinterfacevariable{SearchAgain}{HerhaalZoeken}
+\setinterfacevariable{SearchDocument}{DoorzoekDocument}
+\setinterfacevariable{ShowBookmarks}{ShowBookmarks}
+\setinterfacevariable{ShowField}{ToonVeld}
+\setinterfacevariable{ShowThumbs}{ShowThumbs}
+\setinterfacevariable{StartMovie}{StartFilm}
+\setinterfacevariable{StartRendering}{StartRendering}
+\setinterfacevariable{StartSound}{StartGeluid}
+\setinterfacevariable{StopMovie}{StopFilm}
+\setinterfacevariable{StopRendering}{StopRendering}
+\setinterfacevariable{StopSound}{StopGeluid}
+\setinterfacevariable{SubmitForm}{VerzendFormulier}
+\setinterfacevariable{ToggleLayer}{WisselLaag}
+\setinterfacevariable{ToggleViewer}{WisselViewer}
+\setinterfacevariable{URL}{URL}
+\setinterfacevariable{VideLayer}{ToonLaag}
+\setinterfacevariable{ViewerHelp}{ViewerHelp}
+\setinterfacevariable{WEEKDAY}{WEEKDAG}
+\setinterfacevariable{WORD}{WOORD}
+\setinterfacevariable{abbreviation}{afkorting}
+\setinterfacevariable{abbreviations}{afkortingen}
+\setinterfacevariable{absolute}{absoluut}
+\setinterfacevariable{action}{actie}
+\setinterfacevariable{after}{na}
+\setinterfacevariable{all}{alles}
+\setinterfacevariable{always}{altijd}
+\setinterfacevariable{answerarea}{antwoordgebied}
+\setinterfacevariable{appendices}{bijlagen}
+\setinterfacevariable{appendix}{bijlage}
+\setinterfacevariable{april}{april}
+\setinterfacevariable{atmargin}{opmarge}
+\setinterfacevariable{atpage}{oppagina}
+\setinterfacevariable{august}{augustus}
+\setinterfacevariable{auto}{auto}
+\setinterfacevariable{autointro}{autointro}
+\setinterfacevariable{back}{terug}
+\setinterfacevariable{background}{achtergrond}
+\setinterfacevariable{backmatter}{uitleidingen}
+\setinterfacevariable{backpart}{uitleiding}
+\setinterfacevariable{backspace}{rugwit}
+\setinterfacevariable{backward}{achteruit}
+\setinterfacevariable{before}{voor}
+\setinterfacevariable{big}{groot}
+\setinterfacevariable{bigbodyfont}{grootkorps}
+\setinterfacevariable{bigpreference}{grotevoorkeur}
+\setinterfacevariable{blank}{blanko}
+\setinterfacevariable{blockquote}{blokcitaat}
+\setinterfacevariable{bodymatter}{hoofdteksten}
+\setinterfacevariable{bodypart}{hoofdtekst}
+\setinterfacevariable{bold}{vet}
+\setinterfacevariable{bolditalic}{vetitalic}
+\setinterfacevariable{boldslanted}{vetschuin}
+\setinterfacevariable{bookmark}{bookmark}
+\setinterfacevariable{both}{beide}
+\setinterfacevariable{bottom}{onder}
+\setinterfacevariable{brief}{brief}
+\setinterfacevariable{broad}{ruim}
+\setinterfacevariable{buffer}{buffer}
+\setinterfacevariable{by}{per}
+\setinterfacevariable{calligraphic}{calligrafie}
+\setinterfacevariable{cap}{kap}
+\setinterfacevariable{capital}{kapitaal}
+\setinterfacevariable{center}{centreer}
+\setinterfacevariable{chapter}{hoofdstuk}
+\setinterfacevariable{character}{letter}
+\setinterfacevariable{characters}{letters}
+\setinterfacevariable{color}{kleur}
+\setinterfacevariable{column}{kolom}
+\setinterfacevariable{columns}{kolommen}
+\setinterfacevariable{command}{commando}
+\setinterfacevariable{commands}{commandos}
+\setinterfacevariable{comment}{commentaar}
+\setinterfacevariable{component}{onderdeel}
+\setinterfacevariable{concept}{concept}
+\setinterfacevariable{content}{inhoud}
+\setinterfacevariable{contents}{inhouden}
+\setinterfacevariable{continue}{verder}
+\setinterfacevariable{controls}{sturing}
+\setinterfacevariable{conversion}{conversie}
+\setinterfacevariable{current}{huidige}
+\setinterfacevariable{cutspace}{snijwit}
+\setinterfacevariable{date}{datum}
+\setinterfacevariable{day}{dag}
+\setinterfacevariable{december}{december}
+\setinterfacevariable{default}{default}
+\setinterfacevariable{depth}{diepte}
+\setinterfacevariable{description}{doordefinitie}
+\setinterfacevariable{disable}{blokkeer}
+\setinterfacevariable{display}{scherm}
+\setinterfacevariable{dot}{punt}
+\setinterfacevariable{doublesided}{dubbelzijdig}
+\setinterfacevariable{each}{elk}
+\setinterfacevariable{edge}{rand}
+\setinterfacevariable{empty}{leeg}
+\setinterfacevariable{endnote}{eindnoot}
+\setinterfacevariable{enumeration}{doornummering}
+\setinterfacevariable{environment}{omgeving}
+\setinterfacevariable{even}{even}
+\setinterfacevariable{external}{extern}
+\setinterfacevariable{fact}{gegeven}
+\setinterfacevariable{february}{februari}
+\setinterfacevariable{figure}{figuur}
+\setinterfacevariable{figures}{figuren}
+\setinterfacevariable{file}{file}
+\setinterfacevariable{final}{definitief}
+\setinterfacevariable{first}{eerste}
+\setinterfacevariable{firstcolumn}{eerstekolom}
+\setinterfacevariable{firstpage}{eerstepagina}
+\setinterfacevariable{firstsubpage}{eerstesubpagina}
+\setinterfacevariable{fit}{passend}
+\setinterfacevariable{five}{vijf}
+\setinterfacevariable{fix}{herstel}
+\setinterfacevariable{fixed}{vast}
+\setinterfacevariable{flexible}{flexibel}
+\setinterfacevariable{float}{blok}
+\setinterfacevariable{flushinner}{lijnbinnen}
+\setinterfacevariable{flushleft}{lijnlinks}
+\setinterfacevariable{flushouter}{lijnbuiten}
+\setinterfacevariable{flushright}{lijnrechts}
+\setinterfacevariable{footer}{voet}
+\setinterfacevariable{footnote}{voetnoot}
+\setinterfacevariable{force}{forceer}
+\setinterfacevariable{foreground}{voorgrond}
+\setinterfacevariable{formeel}{formeel}
+\setinterfacevariable{formula}{formule}
+\setinterfacevariable{formulae}{formules}
+\setinterfacevariable{forward}{vooruit}
+\setinterfacevariable{four}{vier}
+\setinterfacevariable{frame}{kader}
+\setinterfacevariable{framedtext}{kadertekst}
+\setinterfacevariable{friday}{vrijdag}
+\setinterfacevariable{frontmatter}{inleidingen}
+\setinterfacevariable{frontpart}{inleiding}
+\setinterfacevariable{global}{globaal}
+\setinterfacevariable{graphic}{grafiek}
+\setinterfacevariable{graphics}{grafieken}
+\setinterfacevariable{gray}{grijs}
+\setinterfacevariable{greek}{grieks}
+\setinterfacevariable{grid}{grid}
+\setinterfacevariable{halfline}{halveregel}
+\setinterfacevariable{handwritten}{handschrift}
+\setinterfacevariable{hang}{hang}
+\setinterfacevariable{hanging}{hangend}
+\setinterfacevariable{head}{kop}
+\setinterfacevariable{header}{hoofd}
+\setinterfacevariable{height}{hoogte}
+\setinterfacevariable{helptext}{helptekst}
+\setinterfacevariable{hencefore}{hierboven}
+\setinterfacevariable{here}{hier}
+\setinterfacevariable{hereafter}{hieronder}
+\setinterfacevariable{hidden}{verborgen}
+\setinterfacevariable{hiding}{verbergen}
+\setinterfacevariable{high}{hoog}
+\setinterfacevariable{horizontal}{horizontaal}
+\setinterfacevariable{hyphenated}{afgebroken}
+\setinterfacevariable{hz}{hz}
+\setinterfacevariable{inbetween}{tussen}
+\setinterfacevariable{index}{index}
+\setinterfacevariable{indices}{indices}
+\setinterfacevariable{informeel}{informeel}
+\setinterfacevariable{inherit}{erf}
+\setinterfacevariable{inleft}{inlinker}
+\setinterfacevariable{inmargin}{inmarge}
+\setinterfacevariable{inner}{binnen}
+\setinterfacevariable{inneredge}{binnenrand}
+\setinterfacevariable{innermargin}{binnenmarge}
+\setinterfacevariable{inright}{inrechter}
+\setinterfacevariable{interaction}{interactie}
+\setinterfacevariable{interactionmenu}{interactiemenu}
+\setinterfacevariable{intermezzi}{intermezzos}
+\setinterfacevariable{intermezzo}{intermezzo}
+\setinterfacevariable{intext}{intekst}
+\setinterfacevariable{intro}{intro}
+\setinterfacevariable{italic}{italic}
+\setinterfacevariable{italicbold}{italicvet}
+\setinterfacevariable{item}{som}
+\setinterfacevariable{itemize}{opsomming}
+\setinterfacevariable{its}{its}
+\setinterfacevariable{january}{januari}
+\setinterfacevariable{joinedup}{aansluitend}
+\setinterfacevariable{july}{juli}
+\setinterfacevariable{june}{juni}
+\setinterfacevariable{keep}{handhaaf}
+\setinterfacevariable{knockout}{knockout}
+\setinterfacevariable{label}{label}
+\setinterfacevariable{landscape}{liggend}
+\setinterfacevariable{last}{laatste}
+\setinterfacevariable{lastcolumn}{laatstekolom}
+\setinterfacevariable{lastpage}{laatstepagina}
+\setinterfacevariable{lastpagenumber}{laatstepaginanummer}
+\setinterfacevariable{lastsubpage}{laatstesubpagina}
+\setinterfacevariable{layer}{layer}
+\setinterfacevariable{left}{links}
+\setinterfacevariable{leftedge}{linkerrand}
+\setinterfacevariable{lefthanging}{linkshangend}
+\setinterfacevariable{leftmargin}{linkermarge}
+\setinterfacevariable{leftpage}{linkerpagina}
+\setinterfacevariable{lefttoright}{lefttoright}
+\setinterfacevariable{legend}{legenda}
+\setinterfacevariable{lesshyphenation}{lesshyphenation}
+\setinterfacevariable{line}{regel}
+\setinterfacevariable{linenote}{regelnoot}
+\setinterfacevariable{lines}{regels}
+\setinterfacevariable{list}{lijst}
+\setinterfacevariable{local}{lokaal}
+\setinterfacevariable{localenvironment}{deelomgeving}
+\setinterfacevariable{logo}{logo}
+\setinterfacevariable{logos}{logos}
+\setinterfacevariable{lohi}{laho}
+\setinterfacevariable{loose}{los}
+\setinterfacevariable{low}{laag}
+\setinterfacevariable{ls}{ls}
+\setinterfacevariable{makeup}{opmaak}
+\setinterfacevariable{mar}{mar}
+\setinterfacevariable{march}{maart}
+\setinterfacevariable{margin}{marge}
+\setinterfacevariable{marginedge}{kantlijn}
+\setinterfacevariable{margintitle}{margetitel}
+\setinterfacevariable{marking}{markering}
+\setinterfacevariable{mathalignment}{wiskundeuitlijnen}
+\setinterfacevariable{mathcases}{mathcases}
+\setinterfacevariable{mathmatrix}{wiskundematrix}
+\setinterfacevariable{max}{max}
+\setinterfacevariable{may}{mei}
+\setinterfacevariable{mediaeval}{mediaeval}
+\setinterfacevariable{medium}{middel}
+\setinterfacevariable{middle}{midden}
+\setinterfacevariable{min}{min}
+\setinterfacevariable{minheight}{minhoogte}
+\setinterfacevariable{minwidth}{minbreedte}
+\setinterfacevariable{mirrored}{gespiegeld}
+\setinterfacevariable{monday}{maandag}
+\setinterfacevariable{mono}{mono}
+\setinterfacevariable{month}{maand}
+\setinterfacevariable{morehyphenation}{morehyphenation}
+\setinterfacevariable{name}{naam}
+\setinterfacevariable{narrow}{smal}
+\setinterfacevariable{negative}{negatief}
+\setinterfacevariable{never}{nooit}
+\setinterfacevariable{new}{nieuw}
+\setinterfacevariable{next}{volgende}
+\setinterfacevariable{nextevenpage}{volgendeevenpagina}
+\setinterfacevariable{nextoddpage}{volgendeonevenpagina}
+\setinterfacevariable{nextpage}{volgendepagina}
+\setinterfacevariable{nextsubpage}{volgendesubpagina}
+\setinterfacevariable{no}{nee}
+\setinterfacevariable{nocheck}{geencontrole}
+\setinterfacevariable{nofit}{nietpassend}
+\setinterfacevariable{nogrid}{geengrid}
+\setinterfacevariable{nohz}{geenhz}
+\setinterfacevariable{nomarking}{geenmarkering}
+\setinterfacevariable{none}{geen}
+\setinterfacevariable{nonumber}{geennummer}
+\setinterfacevariable{normal}{normaal}
+\setinterfacevariable{nospacing}{geenspatiering}
+\setinterfacevariable{not}{niet}
+\setinterfacevariable{note}{note}
+\setinterfacevariable{nothanging}{niethangend}
+\setinterfacevariable{nothyphenated}{nietafgebroken}
+\setinterfacevariable{november}{november}
+\setinterfacevariable{nowhere}{nergens}
+\setinterfacevariable{nowhite}{geenwit}
+\setinterfacevariable{number}{nummer}
+\setinterfacevariable{numbers}{cijfers}
+\setinterfacevariable{october}{oktober}
+\setinterfacevariable{odd}{oneven}
+\setinterfacevariable{off}{uit}
+\setinterfacevariable{offset}{offset}
+\setinterfacevariable{old}{oud}
+\setinterfacevariable{on}{aan}
+\setinterfacevariable{one}{een}
+\setinterfacevariable{opposite}{naast}
+\setinterfacevariable{outer}{buiten}
+\setinterfacevariable{outeredge}{buitenrand}
+\setinterfacevariable{outermargin}{buitenmarge}
+\setinterfacevariable{overlay}{overlay}
+\setinterfacevariable{overprint}{overprint}
+\setinterfacevariable{packed}{opelkaar}
+\setinterfacevariable{page}{pagina}
+\setinterfacevariable{pagecomment}{paginacommentaar}
+\setinterfacevariable{pagenumber}{paginanummer}
+\setinterfacevariable{paper}{papier}
+\setinterfacevariable{paragraph}{alinea}
+\setinterfacevariable{part}{deel}
+\setinterfacevariable{positive}{positief}
+\setinterfacevariable{postponing}{uitstellen}
+\setinterfacevariable{postscript}{postscript}
+\setinterfacevariable{preference}{voorkeur}
+\setinterfacevariable{preview}{preview}
+\setinterfacevariable{previous}{vorige}
+\setinterfacevariable{previousevenpage}{vorigeevenpagina}
+\setinterfacevariable{previousoddpage}{vorigeonevenpagina}
+\setinterfacevariable{previouspage}{vorigepagina}
+\setinterfacevariable{previoussubpage}{vorigesubpagina}
+\setinterfacevariable{printable}{printbaar}
+\setinterfacevariable{process}{proces}
+\setinterfacevariable{product}{produkt}
+\setinterfacevariable{program}{programma}
+\setinterfacevariable{project}{project}
+\setinterfacevariable{protected}{beschermd}
+\setinterfacevariable{quadruple}{viertal}
+\setinterfacevariable{quotation}{citaat}
+\setinterfacevariable{quote}{citeer}
+\setinterfacevariable{ran}{ran}
+\setinterfacevariable{random}{willekeurig}
+\setinterfacevariable{readonly}{alleenleesbaar}
+\setinterfacevariable{rectangular}{recht}
+\setinterfacevariable{referral}{kenmerk}
+\setinterfacevariable{register}{register}
+\setinterfacevariable{regular}{regular}
+\setinterfacevariable{rekening}{rekening}
+\setinterfacevariable{relative}{relatief}
+\setinterfacevariable{repeat}{herhaal}
+\setinterfacevariable{required}{verplicht}
+\setinterfacevariable{reset}{reset}
+\setinterfacevariable{reverse}{omgekeerd}
+\setinterfacevariable{right}{rechts}
+\setinterfacevariable{rightedge}{rechterrand}
+\setinterfacevariable{righthanging}{rechtshangend}
+\setinterfacevariable{rightmargin}{rechtermarge}
+\setinterfacevariable{rightpage}{rechterpagina}
+\setinterfacevariable{righttoleft}{righttoleft}
+\setinterfacevariable{roman}{romaan}
+\setinterfacevariable{romannumerals}{romeins}
+\setinterfacevariable{rotate}{roteer}
+\setinterfacevariable{rotated}{geroteerd}
+\setinterfacevariable{round}{rond}
+\setinterfacevariable{row}{rij}
+\setinterfacevariable{rule}{lijn}
+\setinterfacevariable{samepage}{zelfdepagina}
+\setinterfacevariable{sans}{sans}
+\setinterfacevariable{sansbold}{sansvet}
+\setinterfacevariable{sansserif}{schreefloos}
+\setinterfacevariable{saturday}{zaterdag}
+\setinterfacevariable{screen}{raster}
+\setinterfacevariable{section}{paragraaf}
+\setinterfacevariable{sectionblockenvironment}{sectieblokomgeving}
+\setinterfacevariable{sectionnumber}{sectienummer}
+\setinterfacevariable{see}{zie}
+\setinterfacevariable{september}{september}
+\setinterfacevariable{serif}{serif}
+\setinterfacevariable{serried}{aanelkaar}
+\setinterfacevariable{setups}{instellingen}
+\setinterfacevariable{sheet}{sheet}
+\setinterfacevariable{singlesided}{enkelzijdig}
+\setinterfacevariable{slanted}{schuin}
+\setinterfacevariable{slantedbold}{schuinvet}
+\setinterfacevariable{small}{klein}
+\setinterfacevariable{smallbodyfont}{kleinkorps}
+\setinterfacevariable{smallbold}{kleinvet}
+\setinterfacevariable{smallbolditalic}{kleinvetitalic}
+\setinterfacevariable{smallboldslanted}{kleinvetschuin}
+\setinterfacevariable{smallcaps}{smallcaps}
+\setinterfacevariable{smallitalic}{kleinitalic}
+\setinterfacevariable{smallitalicbold}{kleinitalicvet}
+\setinterfacevariable{smallnormal}{kleinnormaal}
+\setinterfacevariable{smallslanted}{kleinschuin}
+\setinterfacevariable{smallslantedbold}{kleinschuinvet}
+\setinterfacevariable{smalltype}{kleintype}
+\setinterfacevariable{somewhere}{ergens}
+\setinterfacevariable{sorted}{gesorteerd}
+\setinterfacevariable{space}{spatie}
+\setinterfacevariable{spacing}{spatiering}
+\setinterfacevariable{speech}{spraak}
+\setinterfacevariable{split}{splitsen}
+\setinterfacevariable{spot}{spot}
+\setinterfacevariable{standard}{standaard}
+\setinterfacevariable{start}{start}
+\setinterfacevariable{sticker}{sticker}
+\setinterfacevariable{stop}{stop}
+\setinterfacevariable{stopper}{afsluiter}
+\setinterfacevariable{stretch}{rek}
+\setinterfacevariable{strict}{streng}
+\setinterfacevariable{strong}{strong}
+\setinterfacevariable{strut}{strut}
+\setinterfacevariable{sub}{sub}
+\setinterfacevariable{subbackward}{subachteruit}
+\setinterfacevariable{subformula}{subformule}
+\setinterfacevariable{subforward}{subvooruit}
+\setinterfacevariable{subject}{onderwerp}
+\setinterfacevariable{subpage}{subpagina}
+\setinterfacevariable{subsection}{subparagraaf}
+\setinterfacevariable{subsubject}{subonderwerp}
+\setinterfacevariable{subsubsection}{subsubparagraaf}
+\setinterfacevariable{subsubsubject}{subsubonderwerp}
+\setinterfacevariable{subsubsubsection}{subsubsubparagraaf}
+\setinterfacevariable{subsubsubsubject}{subsubsubonderwerp}
+\setinterfacevariable{subsubsubsubsection}{subsubsubsubparagraaf}
+\setinterfacevariable{subsubsubsubsubject}{subsubsubsubonderwerp}
+\setinterfacevariable{subsubsubsubsubsection}{subsubsubsubsubparagraaf}
+\setinterfacevariable{subsubsubsubsubsubject}{subsubsubsubsubonderwerp}
+\setinterfacevariable{subsubsubsubsubsubsection}{subsubsubsubsubsubparagraaf}
+\setinterfacevariable{subsubsubsubsubsubsubject}{subsubsubsubsubsubonderwerp}
+\setinterfacevariable{subsubsubsubsubsubsubsection}{subsubsubsubsubsubsubparagraaf}
+\setinterfacevariable{subsubsubsubsubsubsubsubject}{subsubsubsubsubsubsubonderwerp}
+\setinterfacevariable{subsubsubsubsubsubsubsubsection}{subsubsubsubsubsubsubsubparagraaf}
+\setinterfacevariable{subsubsubsubsubsubsubsubsubject}{subsubsubsubsubsubsubsubonderwerp}
+\setinterfacevariable{subsubsubsubsubsubsubsubsubsection}{subsubsubsubsubsubsubsubsubparagraaf}
+\setinterfacevariable{subsubsubsubsubsubsubsubsubsubject}{subsubsubsubsubsubsubsubsubonderwerp}
+\setinterfacevariable{sunday}{zondag}
+\setinterfacevariable{support}{support}
+\setinterfacevariable{sym}{sym}
+\setinterfacevariable{symbol}{symbool}
+\setinterfacevariable{synchronize}{synchroniseer}
+\setinterfacevariable{system}{systeem}
+\setinterfacevariable{table}{tabel}
+\setinterfacevariable{tablehead}{tabelkop}
+\setinterfacevariable{tables}{tabellen}
+\setinterfacevariable{tabletail}{tabelstaart}
+\setinterfacevariable{tabulate}{tabulatie}
+\setinterfacevariable{tabulatehead}{tabulatiekop}
+\setinterfacevariable{tabulatetail}{tabulatiestaart}
+\setinterfacevariable{tall}{lang}
+\setinterfacevariable{teletype}{teletype}
+\setinterfacevariable{temporary}{voorlopig}
+\setinterfacevariable{test}{test}
+\setinterfacevariable{text}{tekst}
+\setinterfacevariable{three}{drie}
+\setinterfacevariable{thursday}{donderdag}
+\setinterfacevariable{title}{titel}
+\setinterfacevariable{toggle}{toggle}
+\setinterfacevariable{tolerant}{soepel}
+\setinterfacevariable{top}{boven}
+\setinterfacevariable{tuesday}{dinsdag}
+\setinterfacevariable{two}{twee}
+\setinterfacevariable{txt}{txt}
+\setinterfacevariable{type}{type}
+\setinterfacevariable{typing}{typen}
+\setinterfacevariable{unavailable}{nietbeschikbaar}
+\setinterfacevariable{unit}{eenheid}
+\setinterfacevariable{units}{eenheden}
+\setinterfacevariable{unknown}{onbekend}
+\setinterfacevariable{unpacked}{vanelkaar}
+\setinterfacevariable{url}{url}
+\setinterfacevariable{used}{gebruikt}
+\setinterfacevariable{value}{waarde}
+\setinterfacevariable{vertical}{vertikaal}
+\setinterfacevariable{very}{zeer}
+\setinterfacevariable{verystrict}{zeerstreng}
+\setinterfacevariable{verytolerant}{zeersoepel}
+\setinterfacevariable{weak}{weak}
+\setinterfacevariable{wednesday}{woensdag}
+\setinterfacevariable{week}{week}
+\setinterfacevariable{weekday}{weekdag}
+\setinterfacevariable{white}{wit}
+\setinterfacevariable{wide}{breed}
+\setinterfacevariable{width}{breedte}
+\setinterfacevariable{xml}{xml}
+\setinterfacevariable{year}{jaar}
+\setinterfacevariable{yes}{ja}
+% definitions for interface constants for language nl
+%
+\setinterfaceconstant{action}{actie}
+\setinterfaceconstant{address}{adres}
+\setinterfaceconstant{after}{na}
+\setinterfaceconstant{afterhead}{kopna}
+\setinterfaceconstant{afterkey}{natoets}
+\setinterfaceconstant{align}{uitlijnen}
+\setinterfaceconstant{aligncharacter}{karakteruitlijnen}
+\setinterfaceconstant{alignmentcharacter}{uitlijnkarakter}
+\setinterfaceconstant{aligntitle}{titeluitlijnen}
+\setinterfaceconstant{alternative}{variant}
+\setinterfaceconstant{apa}{apa}
+\setinterfaceconstant{arrow}{pijl}
+\setinterfaceconstant{at}{op}
+\setinterfaceconstant{author}{auteur}
+\setinterfaceconstant{auto}{auto}
+\setinterfaceconstant{autofile}{autofile}
+\setinterfaceconstant{autofocus}{autofocus}
+\setinterfaceconstant{autohang}{autohang}
+\setinterfaceconstant{autostrut}{autostrut}
+\setinterfaceconstant{autowidth}{autobreedte}
+\setinterfaceconstant{axis}{assenstelsel}
+\setinterfaceconstant{background}{achtergrond}
+\setinterfaceconstant{backgroundcolor}{achtergrondkleur}
+\setinterfaceconstant{backgroundcorner}{achtergrondhoek}
+\setinterfaceconstant{backgrounddepth}{achtergronddiepte}
+\setinterfaceconstant{backgroundoffset}{achtergrondoffset}
+\setinterfaceconstant{backgroundradius}{achtergrondstraal}
+\setinterfaceconstant{backgroundscreen}{achtergrondraster}
+\setinterfaceconstant{backspace}{rugwit}
+\setinterfaceconstant{balance}{balanceren}
+\setinterfaceconstant{before}{voor}
+\setinterfaceconstant{beforehead}{kopvoor}
+\setinterfaceconstant{bet}{bet}
+\setinterfaceconstant{big}{groot}
+\setinterfaceconstant{blank}{blanko}
+\setinterfaceconstant{blockway}{blokwijze}
+\setinterfaceconstant{bodyfont}{korps}
+\setinterfaceconstant{bookmark}{bookmark}
+\setinterfaceconstant{bottom}{onder}
+\setinterfaceconstant{bottomafter}{bottomafter}
+\setinterfaceconstant{bottombefore}{bottombefore}
+\setinterfaceconstant{bottomdistance}{onderafstand}
+\setinterfaceconstant{bottomframe}{onderkader}
+\setinterfaceconstant{bottomoffset}{onderoffset}
+\setinterfaceconstant{bottomspace}{bodemwit}
+\setinterfaceconstant{bottomstate}{onderstatus}
+\setinterfaceconstant{cache}{cache}
+\setinterfaceconstant{calculate}{bereken}
+\setinterfaceconstant{ccommand}{ccommando}
+\setinterfaceconstant{click}{klik}
+\setinterfaceconstant{clickin}{klikin}
+\setinterfaceconstant{clickout}{klikuit}
+\setinterfaceconstant{clipoffset}{clipoffset}
+\setinterfaceconstant{closeaction}{sluitactie}
+\setinterfaceconstant{closecommand}{sluitcommando}
+\setinterfaceconstant{closepageaction}{sluitpaginaactie}
+\setinterfaceconstant{closesymbol}{sluitsymbool}
+\setinterfaceconstant{color}{kleur}
+\setinterfaceconstant{column}{kolom}
+\setinterfaceconstant{columndistance}{kolomafstand}
+\setinterfaceconstant{columns}{kolommen}
+\setinterfaceconstant{command}{commando}
+\setinterfaceconstant{commandafter}{nacommando}
+\setinterfaceconstant{commandbefore}{voorcommando}
+\setinterfaceconstant{commands}{commandos}
+\setinterfaceconstant{component}{component}
+\setinterfaceconstant{compoundhyphen}{koppelteken}
+\setinterfaceconstant{compress}{comprimeren}
+\setinterfaceconstant{connector}{connector}
+\setinterfaceconstant{continue}{doorgaan}
+\setinterfaceconstant{contrastcolor}{contrastkleur}
+\setinterfaceconstant{controls}{sturing}
+\setinterfaceconstant{conversion}{conversie}
+\setinterfaceconstant{convertfile}{converteerfile}
+\setinterfaceconstant{corner}{hoek}
+\setinterfaceconstant{coupling}{koppeling}
+\setinterfaceconstant{couplingway}{koppelwijze}
+\setinterfaceconstant{criterium}{criterium}
+\setinterfaceconstant{current}{huidige}
+\setinterfaceconstant{cutspace}{snijwit}
+\setinterfaceconstant{dash}{streep}
+\setinterfaceconstant{dat}{dat}
+\setinterfaceconstant{date}{datum}
+\setinterfaceconstant{deepnumbercommand}{diepnummercommando}
+\setinterfaceconstant{deeptextcommand}{dieptekstcommando}
+\setinterfaceconstant{default}{default}
+\setinterfaceconstant{delay}{wachttijd}
+\setinterfaceconstant{depth}{diepte}
+\setinterfaceconstant{depthcorrection}{dieptecorrectie}
+\setinterfaceconstant{direction}{richting}
+\setinterfaceconstant{directory}{gebied}
+\setinterfaceconstant{display}{scherm}
+\setinterfaceconstant{distance}{afstand}
+\setinterfaceconstant{dot}{punt}
+\setinterfaceconstant{doublesided}{dubbelzijdig}
+\setinterfaceconstant{dummy}{dummy}
+\setinterfaceconstant{dx}{dx}
+\setinterfaceconstant{dy}{dy}
+\setinterfaceconstant{edge}{rand}
+\setinterfaceconstant{edgedistance}{randafstand}
+\setinterfaceconstant{empty}{leeg}
+\setinterfaceconstant{equalheight}{equalheight}
+\setinterfaceconstant{equalwidth}{equalwidth}
+\setinterfaceconstant{escape}{escape}
+\setinterfaceconstant{evenmargin}{evenmarge}
+\setinterfaceconstant{expansion}{expansie}
+\setinterfaceconstant{extras}{extras}
+\setinterfaceconstant{factor}{factor}
+\setinterfaceconstant{fallback}{terugval}
+\setinterfaceconstant{family}{soort}
+\setinterfaceconstant{fieldbackgroundcolor}{veldachtergrondkleur}
+\setinterfaceconstant{fieldframecolor}{veldkaderkleur}
+\setinterfaceconstant{fieldlayer}{veldlaag}
+\setinterfaceconstant{fieldoffset}{veldoffset}
+\setinterfaceconstant{file}{file}
+\setinterfaceconstant{filtercommand}{filtercommand}
+\setinterfaceconstant{focus}{focus}
+\setinterfaceconstant{focusin}{focusin}
+\setinterfaceconstant{focusout}{focusuit}
+\setinterfaceconstant{footer}{voet}
+\setinterfaceconstant{footerdistance}{voetafstand}
+\setinterfaceconstant{footerstate}{voetstatus}
+\setinterfaceconstant{foregroundcolor}{voorgrondkleur}
+\setinterfaceconstant{foregroundstyle}{voorgrondletter}
+\setinterfaceconstant{format}{formatteer}
+\setinterfaceconstant{frame}{kader}
+\setinterfaceconstant{framecolor}{kaderkleur}
+\setinterfaceconstant{framecorner}{kaderhoek}
+\setinterfaceconstant{framedepth}{kaderdiepte}
+\setinterfaceconstant{frameoffset}{kaderoffset}
+\setinterfaceconstant{frameradius}{kaderstraal}
+\setinterfaceconstant{frames}{hokjes}
+\setinterfaceconstant{from}{van}
+\setinterfaceconstant{get}{haal}
+\setinterfaceconstant{global}{globaal}
+\setinterfaceconstant{grid}{grid}
+\setinterfaceconstant{hang}{hang}
+\setinterfaceconstant{headcolor}{kopkleur}
+\setinterfaceconstant{headcommand}{kopcommando}
+\setinterfaceconstant{headconversion}{kopconversie}
+\setinterfaceconstant{header}{hoofd}
+\setinterfaceconstant{headerdistance}{hoofdafstand}
+\setinterfaceconstant{headerstate}{hoofdstatus}
+\setinterfaceconstant{headlabel}{koplabel}
+\setinterfaceconstant{headnumber}{kopnummer}
+\setinterfaceconstant{headstyle}{kopletter}
+\setinterfaceconstant{height}{hoogte}
+\setinterfaceconstant{hfactor}{hfactor}
+\setinterfaceconstant{hfil}{hfil}
+\setinterfaceconstant{hidenumber}{hidenumber}
+\setinterfaceconstant{hoffset}{hoffset}
+\setinterfaceconstant{horoffset}{rugoffset}
+\setinterfaceconstant{hyphen}{hyphen}
+\setinterfaceconstant{icommand}{icommando}
+\setinterfaceconstant{in}{in}
+\setinterfaceconstant{inbetween}{tussen}
+\setinterfaceconstant{increment}{verhoog}
+\setinterfaceconstant{incrementnumber}{verhoognummer}
+\setinterfaceconstant{indenting}{inspringen}
+\setinterfaceconstant{indentnext}{springvolgendein}
+\setinterfaceconstant{indicator}{aanduiding}
+\setinterfaceconstant{inner}{binnen}
+\setinterfaceconstant{innermargin}{binnenmarge}
+\setinterfaceconstant{inputfile}{inputfile}
+\setinterfaceconstant{interaction}{interactie}
+\setinterfaceconstant{interlinespace}{interlinie}
+\setinterfaceconstant{itemalign}{itemuitlijnen}
+\setinterfaceconstant{items}{items}
+\setinterfaceconstant{ken}{ken}
+\setinterfaceconstant{keyexpansion}{sleutelexpansie}
+\setinterfaceconstant{keyword}{trefwoord}
+\setinterfaceconstant{label}{label}
+\setinterfaceconstant{left}{links}
+\setinterfaceconstant{leftcolor}{linkerkleur}
+\setinterfaceconstant{leftcompoundhyphen}{linkerkoppelteken}
+\setinterfaceconstant{leftedge}{linkerrand}
+\setinterfaceconstant{leftedgedistance}{linkerrandafstand}
+\setinterfaceconstant{leftframe}{linkerkader}
+\setinterfaceconstant{lefthyphen}{lefthyphen}
+\setinterfaceconstant{leftmargin}{linkermarge}
+\setinterfaceconstant{leftmargindistance}{linkermargeafstand}
+\setinterfaceconstant{leftoffset}{linkeroffset}
+\setinterfaceconstant{leftquotation}{linkercitaat}
+\setinterfaceconstant{leftquote}{linkerciteer}
+\setinterfaceconstant{leftsentence}{linkerzin}
+\setinterfaceconstant{leftspeech}{linkeruitspraak}
+\setinterfaceconstant{leftstyle}{linkerletter}
+\setinterfaceconstant{leftsubsentence}{linkersubzin}
+\setinterfaceconstant{lefttext}{linkertekst}
+\setinterfaceconstant{leftwidth}{linkerbreedte}
+\setinterfaceconstant{level}{niveau}
+\setinterfaceconstant{levels}{niveaus}
+\setinterfaceconstant{limittext}{limiettekst}
+\setinterfaceconstant{line}{regel}
+\setinterfaceconstant{linecorrection}{regelcorrectie}
+\setinterfaceconstant{lines}{regels}
+\setinterfaceconstant{list}{lijst}
+\setinterfaceconstant{listtext}{lijsttekst}
+\setinterfaceconstant{local}{lokaal}
+\setinterfaceconstant{location}{plaats}
+\setinterfaceconstant{logo}{logo}
+\setinterfaceconstant{logos}{logos}
+\setinterfaceconstant{marcolor}{markleur}
+\setinterfaceconstant{margin}{marge}
+\setinterfaceconstant{margindistance}{margeafstand}
+\setinterfaceconstant{marginedge}{kantlijn}
+\setinterfaceconstant{marginedgetext}{kantlijntekst}
+\setinterfaceconstant{margintext}{margetekst}
+\setinterfaceconstant{marking}{markering}
+\setinterfaceconstant{marstyle}{marletter}
+\setinterfaceconstant{max}{max}
+\setinterfaceconstant{maxheight}{maxhoogte}
+\setinterfaceconstant{maxwidth}{maxbreedte}
+\setinterfaceconstant{menu}{menu}
+\setinterfaceconstant{method}{methode}
+\setinterfaceconstant{middle}{midden}
+\setinterfaceconstant{middlespeech}{middenuitspraak}
+\setinterfaceconstant{middletext}{middentekst}
+\setinterfaceconstant{midsentence}{middenzin}
+\setinterfaceconstant{min}{min}
+\setinterfaceconstant{mindepth}{mindiepte}
+\setinterfaceconstant{minheight}{minhoogte}
+\setinterfaceconstant{minwidth}{minbreedte}
+\setinterfaceconstant{n}{n}
+\setinterfaceconstant{name}{naam}
+\setinterfaceconstant{nbottom}{nonder}
+\setinterfaceconstant{nc}{nc}
+\setinterfaceconstant{next}{volgende}
+\setinterfaceconstant{nl}{nl}
+\setinterfaceconstant{nleft}{nlinks}
+\setinterfaceconstant{nlines}{nregels}
+\setinterfaceconstant{norm}{norm}
+\setinterfaceconstant{nr}{nr}
+\setinterfaceconstant{nright}{nrechts}
+\setinterfaceconstant{ntop}{nboven}
+\setinterfaceconstant{number}{nummer}
+\setinterfaceconstant{numbercolor}{nummerkleur}
+\setinterfaceconstant{numbercommand}{nummercommando}
+\setinterfaceconstant{numberconversion}{numberconversion}
+\setinterfaceconstant{numberconversionset}{numberconversionset}
+\setinterfaceconstant{numberdistance}{nummerafstand}
+\setinterfaceconstant{numbering}{nummeren}
+\setinterfaceconstant{numberorder}{numberorder}
+\setinterfaceconstant{numberprefix}{numberprefix}
+\setinterfaceconstant{numbersegments}{numbersegments}
+\setinterfaceconstant{numberseparator}{nummerscheider}
+\setinterfaceconstant{numberseparatorset}{numberseparatorset}
+\setinterfaceconstant{numberset}{numberset}
+\setinterfaceconstant{numberstopper}{numberstopper}
+\setinterfaceconstant{numberstyle}{nummerletter}
+\setinterfaceconstant{numberwidth}{nummerbreedte}
+\setinterfaceconstant{nx}{nx}
+\setinterfaceconstant{ny}{ny}
+\setinterfaceconstant{object}{object}
+\setinterfaceconstant{obstruction}{blokkade}
+\setinterfaceconstant{oddmargin}{onevenmarge}
+\setinterfaceconstant{offset}{offset}
+\setinterfaceconstant{openaction}{openactie}
+\setinterfaceconstant{openpageaction}{openpaginaactie}
+\setinterfaceconstant{option}{optie}
+\setinterfaceconstant{orientation}{orientatie}
+\setinterfaceconstant{outermargin}{buitenmarge}
+\setinterfaceconstant{overprint}{overprint}
+\setinterfaceconstant{ownnumber}{eigennummer}
+\setinterfaceconstant{page}{pagina}
+\setinterfaceconstant{pageboundaries}{paginaovergangen}
+\setinterfaceconstant{pagecolor}{paginakleur}
+\setinterfaceconstant{pagecommand}{paginacommando}
+\setinterfaceconstant{pageconversion}{pageconversion}
+\setinterfaceconstant{pageconversionset}{pageconversionset}
+\setinterfaceconstant{pagenumber}{paginanummer}
+\setinterfaceconstant{pageprefix}{pageprefix}
+\setinterfaceconstant{pageprefixconnector}{pageprefixconnector}
+\setinterfaceconstant{pageprefixconversion}{pageprefixconversion}
+\setinterfaceconstant{pageprefixconversionset}{pageprefixconversionset}
+\setinterfaceconstant{pageprefixsegments}{pageprefixsegments}
+\setinterfaceconstant{pageprefixseparatorset}{pageprefixseparatorset}
+\setinterfaceconstant{pageprefixset}{pageprefixset}
+\setinterfaceconstant{pageprefixstopper}{pageprefixstopper}
+\setinterfaceconstant{pagesegments}{pagesegments}
+\setinterfaceconstant{pageseparatorset}{pageseparatorset}
+\setinterfaceconstant{pageset}{pageset}
+\setinterfaceconstant{pagestate}{paginastatus}
+\setinterfaceconstant{pagestopper}{pagestopper}
+\setinterfaceconstant{pagestyle}{paginaletter}
+\setinterfaceconstant{palet}{palet}
+\setinterfaceconstant{paper}{papier}
+\setinterfaceconstant{paragraph}{alinea}
+\setinterfaceconstant{place}{plaatsen}
+\setinterfaceconstant{placehead}{plaatskop}
+\setinterfaceconstant{placestopper}{plaatsafsluiter}
+\setinterfaceconstant{position}{positie}
+\setinterfaceconstant{prefix}{prefix}
+\setinterfaceconstant{prefixconnector}{prefixconnector}
+\setinterfaceconstant{prefixconversion}{prefixconversion}
+\setinterfaceconstant{prefixconversionset}{prefixconversionset}
+\setinterfaceconstant{prefixsegments}{prefixsegments}
+\setinterfaceconstant{prefixseparatorset}{prefixseparatorset}
+\setinterfaceconstant{prefixset}{prefixset}
+\setinterfaceconstant{prefixstopper}{prefixstopper}
+\setinterfaceconstant{preset}{preset}
+\setinterfaceconstant{preview}{preview}
+\setinterfaceconstant{previous}{vorige}
+\setinterfaceconstant{previousnumber}{vorigenummer}
+\setinterfaceconstant{process}{proces}
+\setinterfaceconstant{radius}{straal}
+\setinterfaceconstant{random}{willekeur}
+\setinterfaceconstant{reduction}{reductie}
+\setinterfaceconstant{ref}{ref}
+\setinterfaceconstant{reference}{verwijzing}
+\setinterfaceconstant{referenceprefix}{referenceprefix}
+\setinterfaceconstant{referencing}{refereren}
+\setinterfaceconstant{regionin}{gebiedin}
+\setinterfaceconstant{regionout}{gebieduit}
+\setinterfaceconstant{repeat}{herhaal}
+\setinterfaceconstant{reset}{reset}
+\setinterfaceconstant{resetnumber}{resetnummer}
+\setinterfaceconstant{resolution}{resolutie}
+\setinterfaceconstant{right}{rechts}
+\setinterfaceconstant{rightcolor}{rechterkleur}
+\setinterfaceconstant{rightcompoundhyphen}{rechterkoppelteken}
+\setinterfaceconstant{rightedge}{rechterrand}
+\setinterfaceconstant{rightedgedistance}{rechterrandafstand}
+\setinterfaceconstant{rightframe}{rechterkader}
+\setinterfaceconstant{righthyphen}{righthyphen}
+\setinterfaceconstant{rightmargin}{rechtermarge}
+\setinterfaceconstant{rightmargindistance}{rechtermargeafstand}
+\setinterfaceconstant{rightoffset}{rechteroffset}
+\setinterfaceconstant{rightquotation}{rechtercitaat}
+\setinterfaceconstant{rightquote}{rechterciteer}
+\setinterfaceconstant{rightsentence}{rechterzin}
+\setinterfaceconstant{rightspeech}{rechteruitspraak}
+\setinterfaceconstant{rightstyle}{rechterletter}
+\setinterfaceconstant{rightsubsentence}{rechtersubzin}
+\setinterfaceconstant{righttext}{rechtertekst}
+\setinterfaceconstant{rightwidth}{rechterbreedte}
+\setinterfaceconstant{rotation}{rotatie}
+\setinterfaceconstant{rule}{lijn}
+\setinterfaceconstant{rulecolor}{lijnkleur}
+\setinterfaceconstant{rulethickness}{lijndikte}
+\setinterfaceconstant{samepage}{zelfdepagina}
+\setinterfaceconstant{sample}{monster}
+\setinterfaceconstant{saveinlist}{saveinlist}
+\setinterfaceconstant{scale}{schaal}
+\setinterfaceconstant{scope}{scope}
+\setinterfaceconstant{screen}{raster}
+\setinterfaceconstant{section}{sectie}
+\setinterfaceconstant{sectionconversion}{sectionconversion}
+\setinterfaceconstant{sectionconversionset}{sectionconversionset}
+\setinterfaceconstant{sectionnumber}{sectienummer}
+\setinterfaceconstant{sectionresetset}{sectionresetset}
+\setinterfaceconstant{sectionsegments}{sectionsegments}
+\setinterfaceconstant{sectionseparatorset}{sectionseparatorset}
+\setinterfaceconstant{sectionset}{sectionset}
+\setinterfaceconstant{sectionstopper}{sectionstopper}
+\setinterfaceconstant{separator}{scheider}
+\setinterfaceconstant{set}{set}
+\setinterfaceconstant{setups}{setups}
+\setinterfaceconstant{side}{zij}
+\setinterfaceconstant{sidealign}{zijuitlijnen}
+\setinterfaceconstant{sidemethod}{zijmethode}
+\setinterfaceconstant{sidespaceafter}{zijnawit}
+\setinterfaceconstant{sidespacebefore}{zijvoorwit}
+\setinterfaceconstant{sign}{teken}
+\setinterfaceconstant{size}{formaat}
+\setinterfaceconstant{small}{klein}
+\setinterfaceconstant{sorttype}{sortering}
+\setinterfaceconstant{source}{bron}
+\setinterfaceconstant{space}{spatie}
+\setinterfaceconstant{spaceafter}{nawit}
+\setinterfaceconstant{spacebefore}{voorwit}
+\setinterfaceconstant{spaceinbetween}{tussenwit}
+\setinterfaceconstant{spacing}{spatiering}
+\setinterfaceconstant{split}{splitsen}
+\setinterfaceconstant{splitcolor}{splitskleur}
+\setinterfaceconstant{splitmethod}{splitsmethode}
+\setinterfaceconstant{splitoffset}{splitsoffset}
+\setinterfaceconstant{spot}{spot}
+\setinterfaceconstant{stack}{stapel}
+\setinterfaceconstant{start}{start}
+\setinterfaceconstant{state}{status}
+\setinterfaceconstant{step}{stap}
+\setinterfaceconstant{stop}{stop}
+\setinterfaceconstant{stopper}{afsluiter}
+\setinterfaceconstant{stretch}{rek}
+\setinterfaceconstant{strut}{strut}
+\setinterfaceconstant{style}{letter}
+\setinterfaceconstant{sub}{sub}
+\setinterfaceconstant{subtitle}{subtitel}
+\setinterfaceconstant{suffix}{suffix}
+\setinterfaceconstant{sx}{sx}
+\setinterfaceconstant{sy}{sy}
+\setinterfaceconstant{symalign}{symuitlijnen}
+\setinterfaceconstant{symbol}{symbool}
+\setinterfaceconstant{symbolset}{symboolset}
+\setinterfaceconstant{symcolor}{symkleur}
+\setinterfaceconstant{symstyle}{symletter}
+\setinterfaceconstant{synonym}{synoniem}
+\setinterfaceconstant{synonymcolor}{synoniemkleur}
+\setinterfaceconstant{synonymcommand}{synoniemcommando}
+\setinterfaceconstant{synonymstyle}{synoniemletter}
+\setinterfaceconstant{tab}{tab}
+\setinterfaceconstant{text}{tekst}
+\setinterfaceconstant{textcolor}{tekstkleur}
+\setinterfaceconstant{textcommand}{tekstcommando}
+\setinterfaceconstant{textdistance}{tekstafstand}
+\setinterfaceconstant{textlayer}{tekstlaag}
+\setinterfaceconstant{textmargin}{tekstmarge}
+\setinterfaceconstant{textmethod}{tekstmethode}
+\setinterfaceconstant{textseparator}{tekstscheider}
+\setinterfaceconstant{textsize}{tekstformaat}
+\setinterfaceconstant{textstate}{tekststatus}
+\setinterfaceconstant{textstyle}{tekstletter}
+\setinterfaceconstant{textwidth}{tekstbreedte}
+\setinterfaceconstant{title}{titel}
+\setinterfaceconstant{titlecolor}{titelkleur}
+\setinterfaceconstant{titlecommand}{titelcommando}
+\setinterfaceconstant{titledistance}{titelafstand}
+\setinterfaceconstant{titleleft}{titellinks}
+\setinterfaceconstant{titleright}{titelrechts}
+\setinterfaceconstant{titlestyle}{titelletter}
+\setinterfaceconstant{to}{aan}
+\setinterfaceconstant{tolerance}{tolerantie}
+\setinterfaceconstant{top}{boven}
+\setinterfaceconstant{topdistance}{bovenafstand}
+\setinterfaceconstant{topframe}{bovenkader}
+\setinterfaceconstant{topoffset}{bovenoffset}
+\setinterfaceconstant{topspace}{kopwit}
+\setinterfaceconstant{topstate}{bovenstatus}
+\setinterfaceconstant{type}{type}
+\setinterfaceconstant{unit}{eenheid}
+\setinterfaceconstant{unknownreference}{onbekendeverwijzing}
+\setinterfaceconstant{urlalternative}{urlvariant}
+\setinterfaceconstant{urlspace}{urlspatie}
+\setinterfaceconstant{validate}{valideer}
+\setinterfaceconstant{vcommand}{vcommando}
+\setinterfaceconstant{veroffset}{kopoffset}
+\setinterfaceconstant{vfil}{vfil}
+\setinterfaceconstant{voffset}{voffset}
+\setinterfaceconstant{way}{wijze}
+\setinterfaceconstant{wfactor}{bfactor}
+\setinterfaceconstant{white}{wit}
+\setinterfaceconstant{width}{breedte}
+\setinterfaceconstant{xfactor}{xfactor}
+\setinterfaceconstant{xmax}{xmax}
+\setinterfaceconstant{xoffset}{xoffset}
+\setinterfaceconstant{xscale}{xschaal}
+\setinterfaceconstant{xstep}{xstap}
+\setinterfaceconstant{yfactor}{yfactor}
+\setinterfaceconstant{ymax}{ymax}
+\setinterfaceconstant{yoffset}{yoffset}
+\setinterfaceconstant{yscale}{yschaal}
+\setinterfaceconstant{ystep}{ystap}
+% definitions for interface elements for language nl
+%
+\setinterfaceelement{answerlines}{antwoordregels}
+\setinterfaceelement{answerspace}{antwoordruimte}
+\setinterfaceelement{begin}{beginvan}
+\setinterfaceelement{complete}{volledige}
+\setinterfaceelement{coupled}{gekoppelde}
+\setinterfaceelement{currentlocal}{huidigelokale}
+\setinterfaceelement{emptyone}{leeg}
+\setinterfaceelement{emptytwo}{lege}
+\setinterfaceelement{end}{eindvan}
+\setinterfaceelement{endsetup}{in}
+\setinterfaceelement{get}{haal}
+\setinterfaceelement{increment}{verhoog}
+\setinterfaceelement{list}{lijst}
+\setinterfaceelement{listof}{lijstmet}
+\setinterfaceelement{load}{laad}
+\setinterfaceelement{local}{lokale}
+\setinterfaceelement{makeup}{opmaak}
+\setinterfaceelement{next}{volgende}
+\setinterfaceelement{place}{plaats}
+\setinterfaceelement{previous}{vorige}
+\setinterfaceelement{previouslocal}{vorigelokale}
+\setinterfaceelement{reserve}{reserveer}
+\setinterfaceelement{see}{zie}
+\setinterfaceelement{setup}{stel}
+\setinterfaceelement{start}{start}
+\setinterfaceelement{stop}{stop}
+\setinterfaceelement{text}{tekst}
+\setinterfaceelement{type}{type}
+% definitions for interface commands for language nl
+%
+\setinterfacecommand{CAPPED}{KAP}
+\setinterfacecommand{Character}{Letter}
+\setinterfacecommand{Characters}{Letters}
+\setinterfacecommand{LABELTEXT}{LABELTEKST}
+\setinterfacecommand{MONTH}{MAAND}
+\setinterfacecommand{Numbers}{Cijfers}
+\setinterfacecommand{Romannumerals}{Romeins}
+\setinterfacecommand{SmallCapped}{Kap}
+\setinterfacecommand{SmallCaps}{Kaps}
+\setinterfacecommand{WEEKDAY}{WEEKDAG}
+\setinterfacecommand{WORD}{WOORD}
+\setinterfacecommand{WORDS}{WOORDEN}
+\setinterfacecommand{Word}{Woord}
+\setinterfacecommand{Words}{Woorden}
+\setinterfacecommand{about}{about}
+\setinterfacecommand{adaptlayout}{paslayoutaan}
+\setinterfacecommand{arg}{arg}
+\setinterfacecommand{at}{op}
+\setinterfacecommand{atleftmargin}{oplinkermarge}
+\setinterfacecommand{atpage}{oppagina}
+\setinterfacecommand{atrightmargin}{oprechtermarge}
+\setinterfacecommand{background}{achtergrond}
+\setinterfacecommand{backspace}{rugwit}
+\setinterfacecommand{blackrule}{blokje}
+\setinterfacecommand{blackrules}{blokjes}
+\setinterfacecommand{blank}{blanko}
+\setinterfacecommand{bookmark}{bookmark}
+\setinterfacecommand{bottomdistance}{onderafstand}
+\setinterfacecommand{bottomheight}{onderhoogte}
+\setinterfacecommand{bottomspace}{bodemwit}
+\setinterfacecommand{but}{but}
+\setinterfacecommand{button}{button}
+\setinterfacecommand{bypassblocks}{passeerblokken}
+\setinterfacecommand{character}{letter}
+\setinterfacecommand{characters}{letters}
+\setinterfacecommand{chem}{chem}
+\setinterfacecommand{clip}{clip}
+\setinterfacecommand{clonefield}{kloonveld}
+\setinterfacecommand{color}{kleur}
+\setinterfacecommand{colorbar}{kleurenbalk}
+\setinterfacecommand{colorvalue}{kleurwaarde}
+\setinterfacecommand{column}{kolom}
+\setinterfacecommand{comment}{commentaar}
+\setinterfacecommand{comparecolorgroup}{vergelijkkleurgroep}
+\setinterfacecommand{comparepalet}{vergelijkpalet}
+\setinterfacecommand{completepagenumber}{volledigepaginanummer}
+\setinterfacecommand{completeregister}{volledigregister}
+\setinterfacecommand{component}{onderdeel}
+\setinterfacecommand{convertnumber}{converteernummer}
+\setinterfacecommand{copyfield}{copieerveld}
+\setinterfacecommand{correctwhitespace}{corrigeerwitruimte}
+\setinterfacecommand{coupledocument}{koppeldocument}
+\setinterfacecommand{couplemarking}{koppelmarkering}
+\setinterfacecommand{couplepage}{koppelpagina}
+\setinterfacecommand{couplepaper}{koppelpapier}
+\setinterfacecommand{coupleregister}{koppelregister}
+\setinterfacecommand{crlf}{crlf}
+\setinterfacecommand{currentdate}{huidigedatum}
+\setinterfacecommand{currentheadnumber}{huidigekopnummer}
+\setinterfacecommand{cutspace}{snijwit}
+\setinterfacecommand{date}{datum}
+\setinterfacecommand{decouplemarking}{ontkoppelmarkering}
+\setinterfacecommand{decrementnumber}{verlaagnummer}
+\setinterfacecommand{define}{definieer}
+\setinterfacecommand{defineaccent}{definieeraccent}
+\setinterfacecommand{defineblank}{definieerblanko}
+\setinterfacecommand{defineblock}{definieerblok}
+\setinterfacecommand{definebodyfont}{definieerkorps}
+\setinterfacecommand{definebodyfontenvironment}{definieerkorpsomgeving}
+\setinterfacecommand{definebuffer}{definieerbuffer}
+\setinterfacecommand{definecharacter}{definieerkarakter}
+\setinterfacecommand{definecolor}{definieerkleur}
+\setinterfacecommand{definecolorgroup}{definieerkleurgroep}
+\setinterfacecommand{definecolumnbreak}{definieerkolomovergang}
+\setinterfacecommand{definecolumnset}{definieerkolomgroep}
+\setinterfacecommand{definecombination}{definieercombinatie}
+\setinterfacecommand{definecombinedlist}{definieersamengesteldelijst}
+\setinterfacecommand{definecommand}{definieercommando}
+\setinterfacecommand{defineconversion}{definieerconversie}
+\setinterfacecommand{definedescription}{doordefinieren}
+\setinterfacecommand{defineenumeration}{doornummeren}
+\setinterfacecommand{definefield}{definieerveld}
+\setinterfacecommand{definefieldstack}{definieerveldstapel}
+\setinterfacecommand{definefiguresymbol}{definieerfiguursymbool}
+\setinterfacecommand{definefloat}{definieerplaatsblok}
+\setinterfacecommand{definefont}{definieerfont}
+\setinterfacecommand{definefontstyle}{definieerfontstijl}
+\setinterfacecommand{definefontsynonym}{definieerfontsynoniem}
+\setinterfacecommand{defineframed}{definieeromlijnd}
+\setinterfacecommand{defineframedtext}{definieerkadertekst}
+\setinterfacecommand{definehbox}{definieerhbox}
+\setinterfacecommand{definehead}{definieerkop}
+\setinterfacecommand{defineindenting}{doorspringen}
+\setinterfacecommand{defineinmargin}{definieerinmarge}
+\setinterfacecommand{defineinteractionmenu}{definieerinteractiemenu}
+\setinterfacecommand{defineitemgroup}{definieeritemgroep}
+\setinterfacecommand{definelabel}{doorlabelen}
+\setinterfacecommand{definelayer}{definieerlayer}
+\setinterfacecommand{definelayout}{definieerlayout}
+\setinterfacecommand{definelist}{definieerlijst}
+\setinterfacecommand{definelogo}{definieerbeeldmerk}
+\setinterfacecommand{definemainfield}{definieerhoofdveld}
+\setinterfacecommand{definemakeup}{definieeropmaak}
+\setinterfacecommand{definemarking}{definieermarkering}
+\setinterfacecommand{definemathalignment}{definieerwiskundeuitlijnen}
+\setinterfacecommand{defineoutput}{definieeruitvoer}
+\setinterfacecommand{defineoverlay}{definieeroverlay}
+\setinterfacecommand{definepagebreak}{definieerpaginaovergang}
+\setinterfacecommand{definepalet}{definieerpalet}
+\setinterfacecommand{definepapersize}{definieerpapierformaat}
+\setinterfacecommand{defineparagraphs}{definieeralineas}
+\setinterfacecommand{defineplacement}{definieerplaats}
+\setinterfacecommand{defineprofile}{definieerprofiel}
+\setinterfacecommand{defineprogram}{definieerprogramma}
+\setinterfacecommand{definerawfont}{definerawfont}
+\setinterfacecommand{definereference}{definieerreferentie}
+\setinterfacecommand{definereferenceformat}{definieerreferentieformaat}
+\setinterfacecommand{definereferencelist}{definieerreferentielijst}
+\setinterfacecommand{defineregister}{definieerregister}
+\setinterfacecommand{definerule}{definieerlijn}
+\setinterfacecommand{definesection}{definieersectie}
+\setinterfacecommand{definesectionblock}{definieersectieblok}
+\setinterfacecommand{definesorting}{definieersorteren}
+\setinterfacecommand{definestartstop}{definieerstartstop}
+\setinterfacecommand{definestyle}{definieerletter}
+\setinterfacecommand{definesubfield}{definieersubveld}
+\setinterfacecommand{definesymbol}{definieersymbool}
+\setinterfacecommand{definesynonyms}{definieersynoniemen}
+\setinterfacecommand{definetabletemplate}{definieertabelvorm}
+\setinterfacecommand{definetabulate}{definieertabulatie}
+\setinterfacecommand{definetext}{definieertekst}
+\setinterfacecommand{definetextposition}{definieertekstpositie}
+\setinterfacecommand{definetextvariable}{definieertekstvariabele}
+\setinterfacecommand{definetype}{definieertype}
+\setinterfacecommand{definetyping}{definieertypen}
+\setinterfacecommand{defineversion}{definieerversie}
+\setinterfacecommand{determineheadnumber}{bepaalkopnummer}
+\setinterfacecommand{determinelistcharacteristics}{bepaallijstkenmerken}
+\setinterfacecommand{determineregistercharacteristics}{bepaalregisterkenmerken}
+\setinterfacecommand{dimension}{dimensie}
+\setinterfacecommand{disableinteractionmenu}{blokkeerinteractiemenu}
+\setinterfacecommand{domicile}{woonplaats}
+\setinterfacecommand{donttest}{geentest}
+\setinterfacecommand{edgedistance}{randafstand}
+\setinterfacecommand{edgewidth}{randbreedte}
+\setinterfacecommand{emptylines}{legeregels}
+\setinterfacecommand{environment}{omgeving}
+\setinterfacecommand{externalfigure}{externfiguur}
+\setinterfacecommand{fact}{geg}
+\setinterfacecommand{field}{veld}
+\setinterfacecommand{fieldstack}{veldstapel}
+\setinterfacecommand{fillinfield}{invulveld}
+\setinterfacecommand{fillinline}{invulregel}
+\setinterfacecommand{fillinrules}{invullijnen}
+\setinterfacecommand{fillintext}{invultekst}
+\setinterfacecommand{fitfield}{passendveld}
+\setinterfacecommand{fixedspace}{vastespatie}
+\setinterfacecommand{fixedspaces}{vastespaties}
+\setinterfacecommand{followprofile}{volgprofiel}
+\setinterfacecommand{followprofileversion}{volgprofielversie}
+\setinterfacecommand{followversion}{volgversie}
+\setinterfacecommand{footerdistance}{voetafstand}
+\setinterfacecommand{footerheight}{voethoogte}
+\setinterfacecommand{footnote}{voetnoot}
+\setinterfacecommand{footnotetext}{voetnoottekst}
+\setinterfacecommand{forceblocks}{forceerblokken}
+\setinterfacecommand{formulanumber}{formulenummer}
+\setinterfacecommand{fraction}{breuk}
+\setinterfacecommand{framed}{omlijnd}
+\setinterfacecommand{from}{uit}
+\setinterfacecommand{getbuffer}{haalbuffer}
+\setinterfacecommand{getmarking}{haalmarkering}
+\setinterfacecommand{getnumber}{haalnummer}
+\setinterfacecommand{godown}{omlaag}
+\setinterfacecommand{goto}{naar}
+\setinterfacecommand{gotobox}{naarbox}
+\setinterfacecommand{gotopage}{naarpagina}
+\setinterfacecommand{graycolor}{grijskleur}
+\setinterfacecommand{greyvalue}{grijswaarde}
+\setinterfacecommand{grid}{rooster}
+\setinterfacecommand{hairline}{haarlijn}
+\setinterfacecommand{head}{kop}
+\setinterfacecommand{headerdistance}{hoofdafstand}
+\setinterfacecommand{headerheight}{hoofdhoogte}
+\setinterfacecommand{headlevel}{kopniveau}
+\setinterfacecommand{headnumber}{kopnummer}
+\setinterfacecommand{headsym}{kopsym}
+\setinterfacecommand{headtext}{koptekst}
+\setinterfacecommand{hideblocks}{verbergblokken}
+\setinterfacecommand{high}{hoog}
+\setinterfacecommand{hl}{hl}
+\setinterfacecommand{immediatebetweenlist}{directtussenlijst}
+\setinterfacecommand{immediatetolist}{directnaarlijst}
+\setinterfacecommand{in}{in}
+\setinterfacecommand{incrementnumber}{verhoognummer}
+\setinterfacecommand{indenting}{inspringen}
+\setinterfacecommand{inframed}{inlijnd}
+\setinterfacecommand{infull}{voluit}
+\setinterfacecommand{ininner}{inbinnen}
+\setinterfacecommand{inleft}{inlinker}
+\setinterfacecommand{inleftedge}{inlinkerrand}
+\setinterfacecommand{inleftmargin}{inlinkermarge}
+\setinterfacecommand{inline}{inregel}
+\setinterfacecommand{inmargin}{inmarge}
+\setinterfacecommand{inmframed}{inwilijnd}
+\setinterfacecommand{inneredgedistance}{binnenrandafstand}
+\setinterfacecommand{inneredgewidth}{binnenrandbreedte}
+\setinterfacecommand{innermargindistance}{binnenmargeafstand}
+\setinterfacecommand{innermarginwidth}{binnenmargebreedte}
+\setinterfacecommand{inothermargin}{inanderemarge}
+\setinterfacecommand{inouter}{inbuiten}
+\setinterfacecommand{inright}{inrechter}
+\setinterfacecommand{inrightedge}{inrechterrand}
+\setinterfacecommand{inrightmargin}{inrechtermarge}
+\setinterfacecommand{installlanguage}{installeertaal}
+\setinterfacecommand{interactionbar}{interactiebalk}
+\setinterfacecommand{interactionbuttons}{interactiebuttons}
+\setinterfacecommand{interactionmenu}{interactiemenu}
+\setinterfacecommand{item}{som}
+\setinterfacecommand{items}{items}
+\setinterfacecommand{its}{its}
+\setinterfacecommand{keepblocks}{handhaafblokken}
+\setinterfacecommand{label}{label}
+\setinterfacecommand{labels}{labels}
+\setinterfacecommand{labeltext}{labeltekst}
+\setinterfacecommand{language}{taal}
+\setinterfacecommand{leftaligned}{regellinks}
+\setinterfacecommand{leftedgedistance}{linkerrandafstand}
+\setinterfacecommand{leftedgewidth}{linkerrandbreedte}
+\setinterfacecommand{leftmargindistance}{linkermargeafstand}
+\setinterfacecommand{leftmarginwidth}{linkermargebreedte}
+\setinterfacecommand{leg}{leg}
+\setinterfacecommand{linewidth}{lijndikte}
+\setinterfacecommand{listheight}{lijsthoogte}
+\setinterfacecommand{listlength}{lijstlengte}
+\setinterfacecommand{listsymbol}{lijstsymbool}
+\setinterfacecommand{listwidth}{lijstbreedte}
+\setinterfacecommand{logfields}{registreervelden}
+\setinterfacecommand{lohi}{laho}
+\setinterfacecommand{low}{laag}
+\setinterfacecommand{macroname}{naam}
+\setinterfacecommand{mainlanguage}{hoofdtaal}
+\setinterfacecommand{makeupheight}{zethoogte}
+\setinterfacecommand{makeupwidth}{zetbreedte}
+\setinterfacecommand{mar}{mar}
+\setinterfacecommand{margindistance}{margeafstand}
+\setinterfacecommand{marginrule}{kantlijn}
+\setinterfacecommand{margintext}{margetekst}
+\setinterfacecommand{margintitle}{margetitel}
+\setinterfacecommand{marginwidth}{margebreedte}
+\setinterfacecommand{marginword}{margewoord}
+\setinterfacecommand{marking}{markeer}
+\setinterfacecommand{markversion}{markeerversie}
+\setinterfacecommand{mathematics}{wiskunde}
+\setinterfacecommand{menubutton}{menubutton}
+\setinterfacecommand{mframed}{wilijnd}
+\setinterfacecommand{midaligned}{regelmidden}
+\setinterfacecommand{mirror}{spiegel}
+\setinterfacecommand{month}{maand}
+\setinterfacecommand{moveformula}{verplaatsformule}
+\setinterfacecommand{moveongrid}{verplaatsopgrid}
+\setinterfacecommand{movesidefloat}{verplaatszijblok}
+\setinterfacecommand{navigating}{navigerend}
+\setinterfacecommand{nodimension}{geendimensie}
+\setinterfacecommand{noheaderandfooterlines}{geenhoofdenvoetregels}
+\setinterfacecommand{noindenting}{nietinspringen}
+\setinterfacecommand{nolist}{geenlijst}
+\setinterfacecommand{nomarking}{geenmarkering}
+\setinterfacecommand{nomoreblocks}{geenblokkenmeer}
+\setinterfacecommand{nomorefiles}{geenfilesmeer}
+\setinterfacecommand{nop}{nop}
+\setinterfacecommand{nospace}{geenspatie}
+\setinterfacecommand{note}{noot}
+\setinterfacecommand{notopandbottomlines}{geenbovenenonderregels}
+\setinterfacecommand{notsmallcapped}{nokap}
+\setinterfacecommand{nowhitespace}{geenwitruimte}
+\setinterfacecommand{numberofsubpages}{aantalsubpaginas}
+\setinterfacecommand{numbers}{cijfers}
+\setinterfacecommand{outeredgedistance}{buitenrandafstand}
+\setinterfacecommand{outeredgewidth}{buitenrandbreedte}
+\setinterfacecommand{outermargindistance}{buitenmargeafstand}
+\setinterfacecommand{outermarginwidth}{buitenmargebreedte}
+\setinterfacecommand{overbar}{overstreep}
+\setinterfacecommand{overbars}{overstrepen}
+\setinterfacecommand{overstrike}{doorstreep}
+\setinterfacecommand{overstrikes}{doorstrepen}
+\setinterfacecommand{packed}{opelkaar}
+\setinterfacecommand{page}{pagina}
+\setinterfacecommand{pagedepth}{paginadiepte}
+\setinterfacecommand{pagenumber}{paginanummer}
+\setinterfacecommand{pageoffset}{paginaoffset}
+\setinterfacecommand{pagereference}{paginareferentie}
+\setinterfacecommand{pagetype}{soortpagina}
+\setinterfacecommand{paperheight}{papierhoogte}
+\setinterfacecommand{paperwidth}{papierbreedte}
+\setinterfacecommand{periods}{punten}
+\setinterfacecommand{plaatsruwelijst}{plaatsruwelijst}
+\setinterfacecommand{placebookmarks}{plaatsbookmarks}
+\setinterfacecommand{placecombinedlist}{plaatssamengesteldelijst}
+\setinterfacecommand{placefloat}{plaatsplaatsblok}
+\setinterfacecommand{placefootnotes}{plaatsvoetnoten}
+\setinterfacecommand{placeformula}{plaatsformule}
+\setinterfacecommand{placeheadnumber}{plaatskopnummer}
+\setinterfacecommand{placeheadtext}{plaatskoptekst}
+\setinterfacecommand{placelegend}{plaatslegenda}
+\setinterfacecommand{placelist}{plaatslijst}
+\setinterfacecommand{placelocalfootnotes}{plaatslokalevoetnoten}
+\setinterfacecommand{placelogos}{plaatsbeeldmerken}
+\setinterfacecommand{placeongrid}{plaatsopgrid}
+\setinterfacecommand{placeontopofeachother}{plaatsonderelkaar}
+\setinterfacecommand{placepagenumber}{plaatspaginanummer}
+\setinterfacecommand{placereferencelist}{plaatsreferentielijst}
+\setinterfacecommand{placeregister}{plaatsregister}
+\setinterfacecommand{placerule}{plaatslijn}
+\setinterfacecommand{placesidebyside}{plaatsnaastelkaar}
+\setinterfacecommand{placesubformula}{plaatssubformule}
+\setinterfacecommand{placetextvariable}{plaatstekstvariabele}
+\setinterfacecommand{position}{positioneer}
+\setinterfacecommand{positiontext}{positioneertekst}
+\setinterfacecommand{printpaperheight}{printpapierhoogte}
+\setinterfacecommand{printpaperwidth}{printpapierbreedte}
+\setinterfacecommand{processblocks}{verwerkblokken}
+\setinterfacecommand{processpage}{verwerkpagina}
+\setinterfacecommand{product}{produkt}
+\setinterfacecommand{program}{programma}
+\setinterfacecommand{project}{projekt}
+\setinterfacecommand{publication}{publicatie}
+\setinterfacecommand{quotation}{citaat}
+\setinterfacecommand{quote}{citeer}
+\setinterfacecommand{ran}{ran}
+\setinterfacecommand{redo}{herhaal}
+\setinterfacecommand{ref}{ref}
+\setinterfacecommand{reference}{referentie}
+\setinterfacecommand{referral}{kenmerk}
+\setinterfacecommand{referraldate}{kenmerkdatum}
+\setinterfacecommand{referring}{refereer}
+\setinterfacecommand{remark}{toelichting}
+\setinterfacecommand{reset}{reset}
+\setinterfacecommand{resetmarking}{resetmarkering}
+\setinterfacecommand{resetnumber}{resetnummer}
+\setinterfacecommand{resettext}{resettekstinhoud}
+\setinterfacecommand{rightaligned}{regelrechts}
+\setinterfacecommand{rightedgedistance}{rechterrandafstand}
+\setinterfacecommand{rightedgewidth}{rechterrandbreedte}
+\setinterfacecommand{rightmargindistance}{rechtermargeafstand}
+\setinterfacecommand{rightmarginwidth}{rechtermargebreedte}
+\setinterfacecommand{romannumerals}{romeins}
+\setinterfacecommand{rotate}{roteer}
+\setinterfacecommand{scale}{schaal}
+\setinterfacecommand{screen}{scherm}
+\setinterfacecommand{selectblocks}{selecteerblokken}
+\setinterfacecommand{selectpaper}{selecteerpapier}
+\setinterfacecommand{selectversion}{selecteerversie}
+\setinterfacecommand{setnumber}{setnummer}
+\setinterfacecommand{settextcontent}{steltekstinhoudin}
+\setinterfacecommand{settextvariable}{kentekstvariabeletoe}
+\setinterfacecommand{setupalign}{steluitlijnenin}
+\setinterfacecommand{setupanswerarea}{stelantwoordgebiedin}
+\setinterfacecommand{setuparranging}{stelarrangerenin}
+\setinterfacecommand{setupbackground}{stelachtergrondin}
+\setinterfacecommand{setupbackgrounds}{stelachtergrondenin}
+\setinterfacecommand{setupblackrules}{stelblokjesin}
+\setinterfacecommand{setupblank}{stelblankoin}
+\setinterfacecommand{setupblock}{stelblokin}
+\setinterfacecommand{setupbodyfont}{stelkorpsin}
+\setinterfacecommand{setupbodyfontenvironment}{stelkorpsomgevingin}
+\setinterfacecommand{setupbottom}{stelonderin}
+\setinterfacecommand{setupbottomtexts}{stelondertekstenin}
+\setinterfacecommand{setupbuffer}{stelbufferin}
+\setinterfacecommand{setupbuttons}{stelbuttonsin}
+\setinterfacecommand{setupcapitals}{stelkapitalenin}
+\setinterfacecommand{setupcaption}{stelblokkopjein}
+\setinterfacecommand{setupcaptions}{stelblokkopjesin}
+\setinterfacecommand{setupclipping}{stelclipin}
+\setinterfacecommand{setupcolor}{stelkleurin}
+\setinterfacecommand{setupcolors}{stelkleurenin}
+\setinterfacecommand{setupcolumns}{stelkolommenin}
+\setinterfacecommand{setupcolumnset}{stelkolomgroepin}
+\setinterfacecommand{setupcolumnsetlines}{stelkolomgroepregelsin}
+\setinterfacecommand{setupcolumnsetstart}{stelkolomgroepstartin}
+\setinterfacecommand{setupcombinations}{stelcombinatiesin}
+\setinterfacecommand{setupcombinedlist}{stelsamengesteldelijstin}
+\setinterfacecommand{setupcomment}{stelcommentaarin}
+\setinterfacecommand{setupdescriptions}{steldoordefinierenin}
+\setinterfacecommand{setupenumerations}{steldoornummerenin}
+\setinterfacecommand{setupexternalfigures}{stelexternefigurenin}
+\setinterfacecommand{setupfield}{stelveldin}
+\setinterfacecommand{setupfields}{stelveldenin}
+\setinterfacecommand{setupfillinlines}{stelinvulregelsin}
+\setinterfacecommand{setupfillinrules}{stelinvullijnenin}
+\setinterfacecommand{setupfloat}{stelplaatsblokin}
+\setinterfacecommand{setupfloats}{stelplaatsblokkenin}
+\setinterfacecommand{setupfloatsplitting}{stelplaatsbloksplitsenin}
+\setinterfacecommand{setupfooter}{stelvoetin}
+\setinterfacecommand{setupfootertexts}{stelvoettekstenin}
+\setinterfacecommand{setupfootnotedefinition}{stelvoetnootdefinitiein}
+\setinterfacecommand{setupfootnotes}{stelvoetnotenin}
+\setinterfacecommand{setupforms}{stelformulierenin}
+\setinterfacecommand{setupformulas}{stelformulesin}
+\setinterfacecommand{setupframed}{stelomlijndin}
+\setinterfacecommand{setupframedtexts}{stelkadertekstenin}
+\setinterfacecommand{setuphead}{stelkopin}
+\setinterfacecommand{setupheader}{stelhoofdin}
+\setinterfacecommand{setupheadertexts}{stelhoofdtekstenin}
+\setinterfacecommand{setupheadnumber}{stelkopnummerin}
+\setinterfacecommand{setupheads}{stelkoppenin}
+\setinterfacecommand{setupheadtext}{stelkoptekstin}
+\setinterfacecommand{setuphyphenmark}{stelkoppeltekenin}
+\setinterfacecommand{setupindentations}{steldoorspringenin}
+\setinterfacecommand{setupindenting}{stelinspringenin}
+\setinterfacecommand{setupinmargin}{stelinmargein}
+\setinterfacecommand{setupinteraction}{stelinteractiein}
+\setinterfacecommand{setupinteractionbar}{stelinteractiebalkin}
+\setinterfacecommand{setupinteractionmenu}{stelinteractiemenuin}
+\setinterfacecommand{setupinteractionscreen}{stelinteractieschermin}
+\setinterfacecommand{setupinterlinespace}{stelinterliniein}
+\setinterfacecommand{setupitemgroup}{stelitemgroepin}
+\setinterfacecommand{setupitemgroups}{stelopsommingenin}
+\setinterfacecommand{setupitems}{stelitemsin}
+\setinterfacecommand{setuplabeltext}{stellabeltekstin}
+\setinterfacecommand{setuplanguage}{steltaalin}
+\setinterfacecommand{setuplayout}{stellayoutin}
+\setinterfacecommand{setuplegend}{stellegendain}
+\setinterfacecommand{setuplinenumbering}{stelregelnummerenin}
+\setinterfacecommand{setuplines}{stelregelsin}
+\setinterfacecommand{setuplinewidth}{stellijndiktein}
+\setinterfacecommand{setuplist}{stellijstin}
+\setinterfacecommand{setupmakeup}{stelopmaakin}
+\setinterfacecommand{setupmarginblocks}{stelmargeblokkenin}
+\setinterfacecommand{setupmarginrules}{stelkantlijnin}
+\setinterfacecommand{setupmarking}{stelmarkeringin}
+\setinterfacecommand{setupmathalignment}{stelwiskundeuitlijnenin}
+\setinterfacecommand{setupnarrower}{stelsmallerin}
+\setinterfacecommand{setupnumber}{stelnummerin}
+\setinterfacecommand{setupnumbering}{stelnummerenin}
+\setinterfacecommand{setupoppositeplacing}{stelnaastplaatsenin}
+\setinterfacecommand{setupoutput}{steluitvoerin}
+\setinterfacecommand{setuppagecomment}{stelpaginacommentaarin}
+\setinterfacecommand{setuppagenumber}{stelpaginanummerin}
+\setinterfacecommand{setuppagenumbering}{stelpaginanummeringin}
+\setinterfacecommand{setuppagetransitions}{stelpaginaovergangenin}
+\setinterfacecommand{setuppalet}{stelpaletin}
+\setinterfacecommand{setuppaper}{stelpapierin}
+\setinterfacecommand{setuppapersize}{stelpapierformaatin}
+\setinterfacecommand{setupparagraphnumbering}{stelparagraafnummerenin}
+\setinterfacecommand{setupparagraphs}{stelalineasin}
+\setinterfacecommand{setupplacement}{stelplaatsin}
+\setinterfacecommand{setuppositioning}{stelpositionerenin}
+\setinterfacecommand{setupprofiles}{stelprofielenin}
+\setinterfacecommand{setupprograms}{stelprogrammasin}
+\setinterfacecommand{setuppublications}{stelpublicatiesin}
+\setinterfacecommand{setupquote}{stelciterenin}
+\setinterfacecommand{setupreferencelist}{stelreferentielijstin}
+\setinterfacecommand{setupreferencing}{stelrefererenin}
+\setinterfacecommand{setupregister}{stelregisterin}
+\setinterfacecommand{setuprotate}{stelroterenin}
+\setinterfacecommand{setuprule}{stellijnin}
+\setinterfacecommand{setups}{instellingen}
+\setinterfacecommand{setupscreens}{stelrastersin}
+\setinterfacecommand{setupsection}{stelsectiein}
+\setinterfacecommand{setupsectionblock}{stelsectieblokin}
+\setinterfacecommand{setupsorting}{stelsorterenin}
+\setinterfacecommand{setupspacing}{stelspatieringin}
+\setinterfacecommand{setupstartstop}{stelstartstopin}
+\setinterfacecommand{setupstrut}{stelstrutin}
+\setinterfacecommand{setupsubpagenumber}{stelsubpaginanummerin}
+\setinterfacecommand{setupsymbolset}{stelsymboolsetin}
+\setinterfacecommand{setupsynchronization}{stelsynchronisatiein}
+\setinterfacecommand{setupsynchronizationbar}{stelsynchronisatiebalkin}
+\setinterfacecommand{setupsynonyms}{stelsynoniemenin}
+\setinterfacecommand{setupsystem}{stelsysteemin}
+\setinterfacecommand{setuptab}{steltabin}
+\setinterfacecommand{setuptables}{steltabellenin}
+\setinterfacecommand{setuptabulate}{steltabulatiein}
+\setinterfacecommand{setuptext}{steltekstin}
+\setinterfacecommand{setuptextposition}{steltekstpositiein}
+\setinterfacecommand{setuptextrules}{steltekstlijnenin}
+\setinterfacecommand{setuptexttexts}{stelteksttekstenin}
+\setinterfacecommand{setuptextvariable}{steltekstvariabelein}
+\setinterfacecommand{setupthinrules}{steldunnelijnenin}
+\setinterfacecommand{setuptolerance}{steltolerantiein}
+\setinterfacecommand{setuptop}{stelbovenin}
+\setinterfacecommand{setuptoptexts}{stelboventekstenin}
+\setinterfacecommand{setuptype}{steltypein}
+\setinterfacecommand{setuptyping}{steltypenin}
+\setinterfacecommand{setupunderbar}{stelonderstrepenin}
+\setinterfacecommand{setupurl}{stelurlin}
+\setinterfacecommand{setupversions}{stelversiesin}
+\setinterfacecommand{setupwhitespace}{stelwitruimtein}
+\setinterfacecommand{showbodyfont}{toonkorps}
+\setinterfacecommand{showbodyfontenvironment}{toonkorpsomgeving}
+\setinterfacecommand{showcolor}{toonkleur}
+\setinterfacecommand{showcolorgroup}{toonkleurgroep}
+\setinterfacecommand{showexternalfigures}{toonexternefiguren}
+\setinterfacecommand{showfields}{toonvelden}
+\setinterfacecommand{showframe}{toonkader}
+\setinterfacecommand{showgrid}{toongrid}
+\setinterfacecommand{showlayout}{toonlayout}
+\setinterfacecommand{showmakeup}{toonopmaak}
+\setinterfacecommand{showpalet}{toonpalet}
+\setinterfacecommand{showprint}{toonprint}
+\setinterfacecommand{showsetups}{tooninstellingen}
+\setinterfacecommand{showstruts}{toonstruts}
+\setinterfacecommand{showsymbolset}{toonsymboolset}
+\setinterfacecommand{smallcapped}{kap}
+\setinterfacecommand{someline}{eenregel}
+\setinterfacecommand{somewhere}{ergens}
+\setinterfacecommand{space}{spatie}
+\setinterfacecommand{splitfloat}{splitsplaatsblok}
+\setinterfacecommand{startalignment}{startuitlijnen}
+\setinterfacecommand{startbackground}{startachtergrond}
+\setinterfacecommand{startcoding}{startcodering}
+\setinterfacecommand{startcolor}{startkleur}
+\setinterfacecommand{startcolumnmakeup}{startkolomopmaak}
+\setinterfacecommand{startcolumns}{startkolommen}
+\setinterfacecommand{startcolumnset}{startkolomgroep}
+\setinterfacecommand{startcombination}{startcombinatie}
+\setinterfacecommand{startcomponent}{startonderdeel}
+\setinterfacecommand{startdocument}{startdocument}
+\setinterfacecommand{startenvironment}{startomgeving}
+\setinterfacecommand{startfigure}{startfiguur}
+\setinterfacecommand{startglobal}{startglobaal}
+\setinterfacecommand{startline}{startregel}
+\setinterfacecommand{startlinecorrection}{startregelcorrectie}
+\setinterfacecommand{startlinenumbering}{startregelnummeren}
+\setinterfacecommand{startlines}{startregels}
+\setinterfacecommand{startlocal}{startlokaal}
+\setinterfacecommand{startlocalfootnotes}{startlokalevoetnoten}
+\setinterfacecommand{startmakeup}{startopmaak}
+\setinterfacecommand{startmarginblock}{startmargeblok}
+\setinterfacecommand{startmarginrule}{startkantlijn}
+\setinterfacecommand{startnarrower}{startsmaller}
+\setinterfacecommand{startopposite}{startnaast}
+\setinterfacecommand{startoverlay}{startoverlay}
+\setinterfacecommand{startoverzicht}{startoverzicht}
+\setinterfacecommand{startpacked}{startopelkaar}
+\setinterfacecommand{startpositioning}{startpositioneren}
+\setinterfacecommand{startproduct}{startprodukt}
+\setinterfacecommand{startprofile}{startprofiel}
+\setinterfacecommand{startproject}{startprojekt}
+\setinterfacecommand{startquotation}{startcitaat}
+\setinterfacecommand{startraster}{startraster}
+\setinterfacecommand{startsymbolset}{startsymboolset}
+\setinterfacecommand{startsynchronization}{startsynchronisatie}
+\setinterfacecommand{starttable}{starttabel}
+\setinterfacecommand{starttables}{starttabellen}
+\setinterfacecommand{starttext}{starttekst}
+\setinterfacecommand{starttextrule}{starttekstlijn}
+\setinterfacecommand{startunpacked}{startvanelkaar}
+\setinterfacecommand{startversion}{startversie}
+\setinterfacecommand{stopalignment}{stopuitlijnen}
+\setinterfacecommand{stopbackground}{stopachtergrond}
+\setinterfacecommand{stopcoding}{stopcodering}
+\setinterfacecommand{stopcolor}{stopkleur}
+\setinterfacecommand{stopcolumnmakeup}{stopkolomopmaak}
+\setinterfacecommand{stopcolumns}{stopkolommen}
+\setinterfacecommand{stopcolumnset}{stopkolomgroep}
+\setinterfacecommand{stopcombination}{stopcombinatie}
+\setinterfacecommand{stopcomponent}{stoponderdeel}
+\setinterfacecommand{stopdocument}{stopdocument}
+\setinterfacecommand{stopenvironment}{stopomgeving}
+\setinterfacecommand{stopglobal}{stopglobaal}
+\setinterfacecommand{stopline}{stopregel}
+\setinterfacecommand{stoplinecorrection}{stopregelcorrectie}
+\setinterfacecommand{stoplinenumbering}{stopregelnummeren}
+\setinterfacecommand{stoplines}{stopregels}
+\setinterfacecommand{stoplocal}{stoplokaal}
+\setinterfacecommand{stoplocalfootnotes}{stoplokalevoetnoten}
+\setinterfacecommand{stopmakeup}{stopopmaak}
+\setinterfacecommand{stopmarginblock}{stopmargeblok}
+\setinterfacecommand{stopmarginrule}{stopkantlijn}
+\setinterfacecommand{stopnarrower}{stopsmaller}
+\setinterfacecommand{stopopposite}{stopnaast}
+\setinterfacecommand{stopoverlay}{stopoverlay}
+\setinterfacecommand{stopoverzicht}{stopoverzicht}
+\setinterfacecommand{stoppacked}{stopopelkaar}
+\setinterfacecommand{stoppositioning}{stoppositioneren}
+\setinterfacecommand{stopproduct}{stopprodukt}
+\setinterfacecommand{stopprofile}{stopprofiel}
+\setinterfacecommand{stopproject}{stopprojekt}
+\setinterfacecommand{stopquotation}{stopcitaat}
+\setinterfacecommand{stopraster}{stopraster}
+\setinterfacecommand{stopsynchronization}{stopsynchronisatie}
+\setinterfacecommand{stoptable}{stoptabel}
+\setinterfacecommand{stoptables}{stoptabellen}
+\setinterfacecommand{stoptext}{stoptekst}
+\setinterfacecommand{stoptextrule}{stoptekstlijn}
+\setinterfacecommand{stopunpacked}{stopvanelkaar}
+\setinterfacecommand{stopversion}{stopversie}
+\setinterfacecommand{stretched}{uitgerekt}
+\setinterfacecommand{subformulanumber}{subformulenummer}
+\setinterfacecommand{subpagenumber}{subpaginanummer}
+\setinterfacecommand{switchtobodyfont}{switchnaarkorps}
+\setinterfacecommand{switchtorawfont}{switchtorawfont}
+\setinterfacecommand{sym}{sym}
+\setinterfacecommand{symbol}{symbool}
+\setinterfacecommand{synchronizationbar}{synchronisatiebalk}
+\setinterfacecommand{synchronize}{synchroniseer}
+\setinterfacecommand{tab}{tab}
+\setinterfacecommand{testcolumn}{testkolom}
+\setinterfacecommand{testpage}{testpagina}
+\setinterfacecommand{tex}{tex}
+\setinterfacecommand{textheight}{teksthoogte}
+\setinterfacecommand{textreference}{tekstreferentie}
+\setinterfacecommand{textrule}{tekstlijn}
+\setinterfacecommand{textvariable}{tekstvariabele}
+\setinterfacecommand{textwidth}{tekstbreedte}
+\setinterfacecommand{thinrule}{dunnelijn}
+\setinterfacecommand{thinrules}{dunnelijnen}
+\setinterfacecommand{tooltip}{suggestie}
+\setinterfacecommand{topdistance}{bovenafstand}
+\setinterfacecommand{topheight}{bovenhoogte}
+\setinterfacecommand{topspace}{kopwit}
+\setinterfacecommand{totalnumberofpages}{totaalaantalpaginas}
+\setinterfacecommand{translate}{vertaal}
+\setinterfacecommand{txt}{txt}
+\setinterfacecommand{typ}{typ}
+\setinterfacecommand{type}{type}
+\setinterfacecommand{typebuffer}{typebuffer}
+\setinterfacecommand{typefile}{typefile}
+\setinterfacecommand{underbar}{onderstreep}
+\setinterfacecommand{underbars}{onderstrepen}
+\setinterfacecommand{unitmeaning}{betekenis}
+\setinterfacecommand{unknown}{onbekend}
+\setinterfacecommand{useJSscripts}{gebruikJSscripts}
+\setinterfacecommand{useURL}{gebruikURL}
+\setinterfacecommand{useXMLfilter}{gebruikXMLfilter}
+\setinterfacecommand{useblocks}{gebruikblokken}
+\setinterfacecommand{usecommands}{gebruikcommandos}
+\setinterfacecommand{useencoding}{usecodering}
+\setinterfacecommand{useexternaldocument}{gebruikexterndocument}
+\setinterfacecommand{useexternalfigure}{gebruikexternfiguur}
+\setinterfacecommand{useexternalfile}{gebruikexternefile}
+\setinterfacecommand{useexternalfiles}{gebruikexternefiles}
+\setinterfacecommand{useexternalsoundtrack}{gebruikexterngeluidsfragment}
+\setinterfacecommand{usemodule}{gebruikmodule}
+\setinterfacecommand{usemodules}{gebruikmodules}
+\setinterfacecommand{usepath}{gebruikgebied}
+\setinterfacecommand{usereferences}{gebruikreferenties}
+\setinterfacecommand{usespecials}{gebruikspecials}
+\setinterfacecommand{usesymbols}{gebruiksymbolen}
+\setinterfacecommand{usetypescript}{gebruiktypescript}
+\setinterfacecommand{usetypescriptfile}{gebruiktypescriptfile}
+\setinterfacecommand{useurl}{gebruikurl}
+\setinterfacecommand{version}{versie}
+\setinterfacecommand{vl}{vl}
+\setinterfacecommand{weekday}{weekdag}
+\setinterfacecommand{whitespace}{witruimte}
+\setinterfacecommand{wordright}{woordrechts}
+\setinterfacecommand{writebetweenlist}{schrijftussenlijst}
+\setinterfacecommand{writetolist}{schrijfnaarlijst}
+\setinterfacecommand{writetoreferencelist}{schrijfnaarreferentielijst}
+\setinterfacecommand{writetoregister}{schrijfnaarregister}
+%
+\endinput \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/base/mult-ro.tex b/Master/texmf-dist/tex/context/base/mult-ro.tex
new file mode 100644
index 00000000000..ece67fead09
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mult-ro.tex
@@ -0,0 +1,1636 @@
+% this file is auto-generated, don't edit this file
+%
+% definitions for interface variables for language ro
+%
+\setinterfacevariable{Addition}{Adaugare}
+\setinterfacevariable{Balloon}{Balon}
+\setinterfacevariable{Character}{Caracter}
+\setinterfacevariable{Characters}{Caractere}
+\setinterfacevariable{CloseDocument}{InchideDocument}
+\setinterfacevariable{ExitViewer}{IesireVizualizator}
+\setinterfacevariable{FirstPage}{PrimaPagina}
+\setinterfacevariable{FitHeight}{AjustatInaltime}
+\setinterfacevariable{FitWidth}{AjustatLatime}
+\setinterfacevariable{GotoPage}{LaPagina}
+\setinterfacevariable{Greek}{Grec}
+\setinterfacevariable{Help}{Ajutor}
+\setinterfacevariable{HideField}{AscundeCamp}
+\setinterfacevariable{HideLayer}{HideLayer}
+\setinterfacevariable{Key}{Cheie}
+\setinterfacevariable{LastPage}{UltimaPagina}
+\setinterfacevariable{LoadForm}{IncarcaFormular}
+\setinterfacevariable{MONTH}{LUNA}
+\setinterfacevariable{New}{Nou}
+\setinterfacevariable{NextJump}{SaltUrmator}
+\setinterfacevariable{NextPage}{PaginaUrmatoare}
+\setinterfacevariable{Numbers}{Numere}
+\setinterfacevariable{OpenNamedDocument}{OpenNamedDocument}
+\setinterfacevariable{Paragraph}{Paragraf}
+\setinterfacevariable{PauseMovie}{PauzaFilm}
+\setinterfacevariable{PauseRendering}{PauseRendering}
+\setinterfacevariable{PauseSound}{PauzaSunet}
+\setinterfacevariable{PreviousJump}{SaltPrecedent}
+\setinterfacevariable{PreviousPage}{PaginaPrecedenta}
+\setinterfacevariable{PrintDocument}{TiparesteDocument}
+\setinterfacevariable{Query}{Query}
+\setinterfacevariable{QueryAgain}{QueryAgain}
+\setinterfacevariable{ResetForm}{ResetareFormular}
+\setinterfacevariable{ResumeMovie}{RepornesteFilm}
+\setinterfacevariable{ResumeRendering}{ResumeRendering}
+\setinterfacevariable{ResumeSound}{RepornesteSunet}
+\setinterfacevariable{Romannumerals}{Numereromane}
+\setinterfacevariable{SaveDocument}{SalvareDocument}
+\setinterfacevariable{SaveForm}{SalveazaFormular}
+\setinterfacevariable{SaveNamedDocument}{SaveNamedDocument}
+\setinterfacevariable{SearchAgain}{CautaDinNou}
+\setinterfacevariable{SearchDocument}{CautaDocument}
+\setinterfacevariable{ShowBookmarks}{ShowBookmarks}
+\setinterfacevariable{ShowField}{AfiseazaCamp}
+\setinterfacevariable{ShowThumbs}{ShowThumbs}
+\setinterfacevariable{StartMovie}{StartFilm}
+\setinterfacevariable{StartRendering}{StartRendering}
+\setinterfacevariable{StartSound}{StartSunet}
+\setinterfacevariable{StopMovie}{StopFilm}
+\setinterfacevariable{StopRendering}{StopRendering}
+\setinterfacevariable{StopSound}{StopSunet}
+\setinterfacevariable{SubmitForm}{TrimiteFormular}
+\setinterfacevariable{ToggleLayer}{ToggleLayer}
+\setinterfacevariable{ToggleViewer}{SchimbaVizualizator}
+\setinterfacevariable{URL}{URL}
+\setinterfacevariable{VideLayer}{VideLayer}
+\setinterfacevariable{ViewerHelp}{AjutorVizualizator}
+\setinterfacevariable{WEEKDAY}{ZISAPTAMANA}
+\setinterfacevariable{WORD}{CUVANT}
+\setinterfacevariable{abbreviation}{abreviere}
+\setinterfacevariable{abbreviations}{abrevieri}
+\setinterfacevariable{absolute}{absolut}
+\setinterfacevariable{action}{actiune}
+\setinterfacevariable{after}{dupa}
+\setinterfacevariable{all}{tot}
+\setinterfacevariable{always}{totdeauna}
+\setinterfacevariable{answerarea}{answerarea}
+\setinterfacevariable{appendices}{apendixuri}
+\setinterfacevariable{appendix}{apendix}
+\setinterfacevariable{april}{aprilie}
+\setinterfacevariable{atmargin}{lamargine}
+\setinterfacevariable{atpage}{lapagina}
+\setinterfacevariable{august}{august}
+\setinterfacevariable{auto}{auto}
+\setinterfacevariable{autointro}{autointro}
+\setinterfacevariable{back}{inapot}
+\setinterfacevariable{background}{fundal}
+\setinterfacevariable{backmatter}{epilogul}
+\setinterfacevariable{backpart}{epilog}
+\setinterfacevariable{backspace}{spatiuspate}
+\setinterfacevariable{backward}{inapoi}
+\setinterfacevariable{before}{inainte}
+\setinterfacevariable{big}{mare}
+\setinterfacevariable{bigbodyfont}{bigbodyfont}
+\setinterfacevariable{bigpreference}{preferintamare}
+\setinterfacevariable{blank}{blank}
+\setinterfacevariable{blockquote}{blockquote}
+\setinterfacevariable{bodymatter}{principalul}
+\setinterfacevariable{bodypart}{principal}
+\setinterfacevariable{bold}{aldin}
+\setinterfacevariable{bolditalic}{aldinitalic}
+\setinterfacevariable{boldslanted}{aldininclinat}
+\setinterfacevariable{bookmark}{semncarte}
+\setinterfacevariable{both}{ambele}
+\setinterfacevariable{bottom}{subsol}
+\setinterfacevariable{brief}{brief}
+\setinterfacevariable{broad}{broad}
+\setinterfacevariable{buffer}{buffer}
+\setinterfacevariable{by}{de}
+\setinterfacevariable{calligraphic}{caligrafic}
+\setinterfacevariable{cap}{cap}
+\setinterfacevariable{capital}{majuscula}
+\setinterfacevariable{center}{center}
+\setinterfacevariable{chapter}{capitol}
+\setinterfacevariable{character}{caracter}
+\setinterfacevariable{characters}{caractere}
+\setinterfacevariable{color}{culoare}
+\setinterfacevariable{column}{coloana}
+\setinterfacevariable{columns}{coloane}
+\setinterfacevariable{command}{comanda}
+\setinterfacevariable{commands}{comenzi}
+\setinterfacevariable{comment}{comentariu}
+\setinterfacevariable{component}{componenta}
+\setinterfacevariable{concept}{concept}
+\setinterfacevariable{content}{cuprins}
+\setinterfacevariable{contents}{cuprinsuri}
+\setinterfacevariable{continue}{continuu}
+\setinterfacevariable{controls}{controale}
+\setinterfacevariable{conversion}{conversie}
+\setinterfacevariable{current}{curent}
+\setinterfacevariable{cutspace}{cutspace}
+\setinterfacevariable{date}{data}
+\setinterfacevariable{day}{zi}
+\setinterfacevariable{december}{decembrie}
+\setinterfacevariable{default}{implicit}
+\setinterfacevariable{depth}{adancime}
+\setinterfacevariable{description}{descriere}
+\setinterfacevariable{disable}{dezactivat}
+\setinterfacevariable{display}{display}
+\setinterfacevariable{dot}{punct}
+\setinterfacevariable{doublesided}{douafete}
+\setinterfacevariable{each}{fiecare}
+\setinterfacevariable{edge}{bordura}
+\setinterfacevariable{empty}{gol}
+\setinterfacevariable{endnote}{endnote}
+\setinterfacevariable{enumeration}{enumerare}
+\setinterfacevariable{environment}{mediu}
+\setinterfacevariable{even}{par}
+\setinterfacevariable{external}{extern}
+\setinterfacevariable{fact}{fapt}
+\setinterfacevariable{february}{februarie}
+\setinterfacevariable{figure}{figura}
+\setinterfacevariable{figures}{figure}
+\setinterfacevariable{file}{fisier}
+\setinterfacevariable{final}{final}
+\setinterfacevariable{first}{primul}
+\setinterfacevariable{firstcolumn}{firstcolumn}
+\setinterfacevariable{firstpage}{primapagina}
+\setinterfacevariable{firstsubpage}{primasubpagina}
+\setinterfacevariable{fit}{ajustat}
+\setinterfacevariable{five}{cinci}
+\setinterfacevariable{fix}{fix}
+\setinterfacevariable{fixed}{fixat}
+\setinterfacevariable{flexible}{flexibil}
+\setinterfacevariable{float}{obiectmobil}
+\setinterfacevariable{flushinner}{flushinner}
+\setinterfacevariable{flushleft}{flushleft}
+\setinterfacevariable{flushouter}{flushouter}
+\setinterfacevariable{flushright}{flushright}
+\setinterfacevariable{footer}{subsol}
+\setinterfacevariable{footnote}{notasubsol}
+\setinterfacevariable{force}{fortat}
+\setinterfacevariable{foreground}{primplan}
+\setinterfacevariable{formeel}{formeel}
+\setinterfacevariable{formula}{formula}
+\setinterfacevariable{formulae}{formule}
+\setinterfacevariable{forward}{avans}
+\setinterfacevariable{four}{patru}
+\setinterfacevariable{frame}{incadrat}
+\setinterfacevariable{framedtext}{textinconjurat}
+\setinterfacevariable{friday}{vineri}
+\setinterfacevariable{frontmatter}{prologul}
+\setinterfacevariable{frontpart}{prolog}
+\setinterfacevariable{global}{global}
+\setinterfacevariable{graphic}{graficul}
+\setinterfacevariable{graphics}{graficele}
+\setinterfacevariable{gray}{gri}
+\setinterfacevariable{greek}{grec}
+\setinterfacevariable{grid}{grila}
+\setinterfacevariable{halfline}{jumatatelinie}
+\setinterfacevariable{handwritten}{scrismanual}
+\setinterfacevariable{hang}{suspenda}
+\setinterfacevariable{hanging}{suspendat}
+\setinterfacevariable{head}{antet}
+\setinterfacevariable{header}{antet}
+\setinterfacevariable{height}{inaltime}
+\setinterfacevariable{helptext}{textajutator}
+\setinterfacevariable{hencefore}{precedent}
+\setinterfacevariable{here}{aici}
+\setinterfacevariable{hereafter}{urmator}
+\setinterfacevariable{hidden}{ascuns}
+\setinterfacevariable{hiding}{ascundere}
+\setinterfacevariable{high}{inalt}
+\setinterfacevariable{horizontal}{orizontal}
+\setinterfacevariable{hyphenated}{despsilabe}
+\setinterfacevariable{hz}{hz}
+\setinterfacevariable{inbetween}{intre}
+\setinterfacevariable{index}{index}
+\setinterfacevariable{indices}{indexuri}
+\setinterfacevariable{informeel}{informeel}
+\setinterfacevariable{inherit}{inherit}
+\setinterfacevariable{inleft}{instanga}
+\setinterfacevariable{inmargin}{inmargine}
+\setinterfacevariable{inner}{intern}
+\setinterfacevariable{inneredge}{inneredge}
+\setinterfacevariable{innermargin}{innermargin}
+\setinterfacevariable{inright}{indreapta}
+\setinterfacevariable{interaction}{interactiune}
+\setinterfacevariable{interactionmenu}{meniuinteractiune}
+\setinterfacevariable{intermezzi}{intermezzi}
+\setinterfacevariable{intermezzo}{intermezzo}
+\setinterfacevariable{intext}{intext}
+\setinterfacevariable{intro}{intro}
+\setinterfacevariable{italic}{italic}
+\setinterfacevariable{italicbold}{italicaldin}
+\setinterfacevariable{item}{element}
+\setinterfacevariable{itemize}{enumerare}
+\setinterfacevariable{its}{propriu}
+\setinterfacevariable{january}{ianuarie}
+\setinterfacevariable{joinedup}{unit}
+\setinterfacevariable{july}{iulie}
+\setinterfacevariable{june}{iunie}
+\setinterfacevariable{keep}{mentine}
+\setinterfacevariable{knockout}{knockout}
+\setinterfacevariable{label}{eticheta}
+\setinterfacevariable{landscape}{vedere}
+\setinterfacevariable{last}{ultim}
+\setinterfacevariable{lastcolumn}{lastcolumn}
+\setinterfacevariable{lastpage}{ultimapagina}
+\setinterfacevariable{lastpagenumber}{lastpagenumber}
+\setinterfacevariable{lastsubpage}{ultimasubpagina}
+\setinterfacevariable{layer}{layer}
+\setinterfacevariable{left}{stanga}
+\setinterfacevariable{leftedge}{bordurastanga}
+\setinterfacevariable{lefthanging}{lefthanging}
+\setinterfacevariable{leftmargin}{marginestanga}
+\setinterfacevariable{leftpage}{paginastanga}
+\setinterfacevariable{lefttoright}{lefttoright}
+\setinterfacevariable{legend}{legenda}
+\setinterfacevariable{lesshyphenation}{lesshyphenation}
+\setinterfacevariable{line}{linie}
+\setinterfacevariable{linenote}{linenote}
+\setinterfacevariable{lines}{linii}
+\setinterfacevariable{list}{lista}
+\setinterfacevariable{local}{local}
+\setinterfacevariable{localenvironment}{mediulocal}
+\setinterfacevariable{logo}{logo}
+\setinterfacevariable{logos}{logos}
+\setinterfacevariable{lohi}{lohi}
+\setinterfacevariable{loose}{larg}
+\setinterfacevariable{low}{jos}
+\setinterfacevariable{ls}{ls}
+\setinterfacevariable{makeup}{marcaj}
+\setinterfacevariable{mar}{mar}
+\setinterfacevariable{march}{martie}
+\setinterfacevariable{margin}{margine}
+\setinterfacevariable{marginedge}{marginebordura}
+\setinterfacevariable{margintitle}{titlumarginal}
+\setinterfacevariable{marking}{marcaje}
+\setinterfacevariable{mathalignment}{mathalignment}
+\setinterfacevariable{mathcases}{mathcases}
+\setinterfacevariable{mathmatrix}{mathmatrix}
+\setinterfacevariable{max}{max}
+\setinterfacevariable{may}{mai}
+\setinterfacevariable{mediaeval}{medieval}
+\setinterfacevariable{medium}{mediu}
+\setinterfacevariable{middle}{centru}
+\setinterfacevariable{min}{min}
+\setinterfacevariable{minheight}{inaltimeminima}
+\setinterfacevariable{minwidth}{latimeminima}
+\setinterfacevariable{mirrored}{oglindit}
+\setinterfacevariable{monday}{luni}
+\setinterfacevariable{mono}{mono}
+\setinterfacevariable{month}{luna}
+\setinterfacevariable{morehyphenation}{morehyphenation}
+\setinterfacevariable{name}{nume}
+\setinterfacevariable{narrow}{ingust}
+\setinterfacevariable{negative}{negativ}
+\setinterfacevariable{never}{niciodata}
+\setinterfacevariable{new}{nou}
+\setinterfacevariable{next}{urmatorul}
+\setinterfacevariable{nextevenpage}{paginaparaurmatoarea}
+\setinterfacevariable{nextoddpage}{paginaimparaurmatoarea}
+\setinterfacevariable{nextpage}{paginaurmatoare}
+\setinterfacevariable{nextsubpage}{urmatoareasubpagina}
+\setinterfacevariable{no}{nu}
+\setinterfacevariable{nocheck}{nocheck}
+\setinterfacevariable{nofit}{nofit}
+\setinterfacevariable{nogrid}{nogrid}
+\setinterfacevariable{nohz}{nohz}
+\setinterfacevariable{nomarking}{faramarcare}
+\setinterfacevariable{none}{niciunul}
+\setinterfacevariable{nonumber}{nonumber}
+\setinterfacevariable{normal}{normal}
+\setinterfacevariable{nospacing}{nospacing}
+\setinterfacevariable{not}{nu}
+\setinterfacevariable{note}{note}
+\setinterfacevariable{nothanging}{nothanging}
+\setinterfacevariable{nothyphenated}{nedespsilabe}
+\setinterfacevariable{november}{noiembrie}
+\setinterfacevariable{nowhere}{niciunde}
+\setinterfacevariable{nowhite}{faraalb}
+\setinterfacevariable{number}{numar}
+\setinterfacevariable{numbers}{numere}
+\setinterfacevariable{october}{octombrie}
+\setinterfacevariable{odd}{impar}
+\setinterfacevariable{off}{dezactivat}
+\setinterfacevariable{offset}{offset}
+\setinterfacevariable{old}{old}
+\setinterfacevariable{on}{on}
+\setinterfacevariable{one}{unu}
+\setinterfacevariable{opposite}{opus}
+\setinterfacevariable{outer}{extern}
+\setinterfacevariable{outeredge}{outeredge}
+\setinterfacevariable{outermargin}{outermargin}
+\setinterfacevariable{overlay}{overlay}
+\setinterfacevariable{overprint}{overprint}
+\setinterfacevariable{packed}{impachetat}
+\setinterfacevariable{page}{pagina}
+\setinterfacevariable{pagecomment}{comentariupagina}
+\setinterfacevariable{pagenumber}{numarpagina}
+\setinterfacevariable{paper}{foaie}
+\setinterfacevariable{paragraph}{paragraf}
+\setinterfacevariable{part}{parte}
+\setinterfacevariable{positive}{positiv}
+\setinterfacevariable{postponing}{postponing}
+\setinterfacevariable{postscript}{postscript}
+\setinterfacevariable{preference}{preferinta}
+\setinterfacevariable{preview}{previzualizare}
+\setinterfacevariable{previous}{precedent}
+\setinterfacevariable{previousevenpage}{paginaparaprecedenta}
+\setinterfacevariable{previousoddpage}{paginaimparaprecedenta}
+\setinterfacevariable{previouspage}{paginaanterioara}
+\setinterfacevariable{previoussubpage}{subpaginaanterioara}
+\setinterfacevariable{printable}{tiparibil}
+\setinterfacevariable{process}{process}
+\setinterfacevariable{product}{produs}
+\setinterfacevariable{program}{program}
+\setinterfacevariable{project}{proiect}
+\setinterfacevariable{protected}{protejat}
+\setinterfacevariable{quadruple}{cvadrupul}
+\setinterfacevariable{quotation}{citat}
+\setinterfacevariable{quote}{minicitat}
+\setinterfacevariable{ran}{rulat}
+\setinterfacevariable{random}{aleator}
+\setinterfacevariable{readonly}{readonly}
+\setinterfacevariable{rectangular}{rectangular}
+\setinterfacevariable{referral}{referinta}
+\setinterfacevariable{register}{registru}
+\setinterfacevariable{regular}{regular}
+\setinterfacevariable{rekening}{rekening}
+\setinterfacevariable{relative}{relativ}
+\setinterfacevariable{repeat}{repetat}
+\setinterfacevariable{required}{obligatoriu}
+\setinterfacevariable{reset}{reset}
+\setinterfacevariable{reverse}{reverse}
+\setinterfacevariable{right}{dreapta}
+\setinterfacevariable{rightedge}{borduradreapta}
+\setinterfacevariable{righthanging}{righthanging}
+\setinterfacevariable{rightmargin}{marginedreapta}
+\setinterfacevariable{rightpage}{paginadreapta}
+\setinterfacevariable{righttoleft}{righttoleft}
+\setinterfacevariable{roman}{roman}
+\setinterfacevariable{romannumerals}{numereromane}
+\setinterfacevariable{rotate}{rotit}
+\setinterfacevariable{rotated}{rotat}
+\setinterfacevariable{round}{rotund}
+\setinterfacevariable{row}{rand}
+\setinterfacevariable{rule}{rigla}
+\setinterfacevariable{samepage}{aceeasipagina}
+\setinterfacevariable{sans}{sans}
+\setinterfacevariable{sansbold}{sansaldin}
+\setinterfacevariable{sansserif}{sansserif}
+\setinterfacevariable{saturday}{sambata}
+\setinterfacevariable{screen}{ecran}
+\setinterfacevariable{section}{sectiune}
+\setinterfacevariable{sectionblockenvironment}{blocsectiuneambient}
+\setinterfacevariable{sectionnumber}{numarsetiune}
+\setinterfacevariable{see}{vezi}
+\setinterfacevariable{september}{septembrie}
+\setinterfacevariable{serif}{serif}
+\setinterfacevariable{serried}{serried}
+\setinterfacevariable{setups}{setari}
+\setinterfacevariable{sheet}{sheet}
+\setinterfacevariable{singlesided}{ofata}
+\setinterfacevariable{slanted}{inclinat}
+\setinterfacevariable{slantedbold}{inclinataldin}
+\setinterfacevariable{small}{mic}
+\setinterfacevariable{smallbodyfont}{smallbodyfont}
+\setinterfacevariable{smallbold}{micaldin}
+\setinterfacevariable{smallbolditalic}{micaldininclinat}
+\setinterfacevariable{smallboldslanted}{micaldininclinat}
+\setinterfacevariable{smallcaps}{majusculemici}
+\setinterfacevariable{smallitalic}{micitalic}
+\setinterfacevariable{smallitalicbold}{micitalicaldin}
+\setinterfacevariable{smallnormal}{micnormal}
+\setinterfacevariable{smallslanted}{micinclinat}
+\setinterfacevariable{smallslantedbold}{micinclinataldin}
+\setinterfacevariable{smalltype}{mictype}
+\setinterfacevariable{somewhere}{undeva}
+\setinterfacevariable{sorted}{sortat}
+\setinterfacevariable{space}{spatiu}
+\setinterfacevariable{spacing}{spatiere}
+\setinterfacevariable{speech}{speech}
+\setinterfacevariable{split}{split}
+\setinterfacevariable{spot}{spot}
+\setinterfacevariable{standard}{standard}
+\setinterfacevariable{start}{start}
+\setinterfacevariable{sticker}{sticker}
+\setinterfacevariable{stop}{stop}
+\setinterfacevariable{stopper}{stopper}
+\setinterfacevariable{stretch}{dilatat}
+\setinterfacevariable{strict}{strict}
+\setinterfacevariable{strong}{strong}
+\setinterfacevariable{strut}{strut}
+\setinterfacevariable{sub}{sub}
+\setinterfacevariable{subbackward}{subinapoi}
+\setinterfacevariable{subformula}{subformula}
+\setinterfacevariable{subforward}{subavans}
+\setinterfacevariable{subject}{subiect}
+\setinterfacevariable{subpage}{subpagina}
+\setinterfacevariable{subsection}{subsectiune}
+\setinterfacevariable{subsubject}{subsubiect}
+\setinterfacevariable{subsubsection}{subsubsectiune}
+\setinterfacevariable{subsubsubject}{subsubsubiect}
+\setinterfacevariable{subsubsubsection}{subsubsubsectiune}
+\setinterfacevariable{subsubsubsubject}{subsubsubsubiect}
+\setinterfacevariable{subsubsubsubsection}{subsubsubsubsectiune}
+\setinterfacevariable{subsubsubsubsubject}{subsubsubsubsubiect}
+\setinterfacevariable{subsubsubsubsubsection}{subsubsubsubsubsectiune}
+\setinterfacevariable{subsubsubsubsubsubject}{subsubsubsubsubsubiect}
+\setinterfacevariable{subsubsubsubsubsubsection}{subsubsubsubsubsubsectiune}
+\setinterfacevariable{subsubsubsubsubsubsubject}{subsubsubsubsubsubsubiect}
+\setinterfacevariable{subsubsubsubsubsubsubsection}{subsubsubsubsubsubsubsectiune}
+\setinterfacevariable{subsubsubsubsubsubsubsubject}{subsubsubsubsubsubsubsubiect}
+\setinterfacevariable{subsubsubsubsubsubsubsubsection}{subsubsubsubsubsubsubsubsectiune}
+\setinterfacevariable{subsubsubsubsubsubsubsubsubject}{subsubsubsubsubsubsubsubsubiect}
+\setinterfacevariable{subsubsubsubsubsubsubsubsubsection}{subsubsubsubsubsubsubsubsubsectiune}
+\setinterfacevariable{subsubsubsubsubsubsubsubsubsubject}{subsubsubsubsubsubsubsubsubsubiect}
+\setinterfacevariable{sunday}{duminica}
+\setinterfacevariable{support}{suport}
+\setinterfacevariable{sym}{sym}
+\setinterfacevariable{symbol}{simbol}
+\setinterfacevariable{synchronize}{synchronize}
+\setinterfacevariable{system}{sistem}
+\setinterfacevariable{table}{tabelul}
+\setinterfacevariable{tablehead}{antettabel}
+\setinterfacevariable{tables}{tabelele}
+\setinterfacevariable{tabletail}{subsoltabel}
+\setinterfacevariable{tabulate}{tabulate}
+\setinterfacevariable{tabulatehead}{tabulatehead}
+\setinterfacevariable{tabulatetail}{tabulatetail}
+\setinterfacevariable{tall}{inalt}
+\setinterfacevariable{teletype}{teletype}
+\setinterfacevariable{temporary}{temporar}
+\setinterfacevariable{test}{test}
+\setinterfacevariable{text}{text}
+\setinterfacevariable{three}{trei}
+\setinterfacevariable{thursday}{joi}
+\setinterfacevariable{title}{titlu}
+\setinterfacevariable{toggle}{toggle}
+\setinterfacevariable{tolerant}{tolerant}
+\setinterfacevariable{top}{sus}
+\setinterfacevariable{tuesday}{marti}
+\setinterfacevariable{two}{doi}
+\setinterfacevariable{txt}{txt}
+\setinterfacevariable{type}{type}
+\setinterfacevariable{typing}{typing}
+\setinterfacevariable{unavailable}{nedisponibil}
+\setinterfacevariable{unit}{unitate}
+\setinterfacevariable{units}{unitati}
+\setinterfacevariable{unknown}{necunoscut}
+\setinterfacevariable{unpacked}{despachetat}
+\setinterfacevariable{url}{url}
+\setinterfacevariable{used}{folosit}
+\setinterfacevariable{value}{valoare}
+\setinterfacevariable{vertical}{vertical}
+\setinterfacevariable{very}{foarte}
+\setinterfacevariable{verystrict}{foartestrict}
+\setinterfacevariable{verytolerant}{foartetolerant}
+\setinterfacevariable{weak}{weak}
+\setinterfacevariable{wednesday}{miercuri}
+\setinterfacevariable{week}{saptamana}
+\setinterfacevariable{weekday}{zisaptamana}
+\setinterfacevariable{white}{alb}
+\setinterfacevariable{wide}{larg}
+\setinterfacevariable{width}{latime}
+\setinterfacevariable{xml}{xml}
+\setinterfacevariable{year}{an}
+\setinterfacevariable{yes}{da}
+% definitions for interface constants for language ro
+%
+\setinterfaceconstant{action}{actiune}
+\setinterfaceconstant{address}{adresa}
+\setinterfaceconstant{after}{dupa}
+\setinterfaceconstant{afterhead}{dupatitlu}
+\setinterfaceconstant{afterkey}{dupatasta}
+\setinterfaceconstant{align}{aliniere}
+\setinterfaceconstant{aligncharacter}{aliniazacaracter}
+\setinterfaceconstant{alignmentcharacter}{alierecaracter}
+\setinterfaceconstant{aligntitle}{alinieretitlu}
+\setinterfaceconstant{alternative}{alternativ}
+\setinterfaceconstant{apa}{apa}
+\setinterfaceconstant{arrow}{sageata}
+\setinterfaceconstant{at}{la}
+\setinterfaceconstant{author}{autor}
+\setinterfaceconstant{auto}{auto}
+\setinterfaceconstant{autofile}{autofile}
+\setinterfaceconstant{autofocus}{autofocus}
+\setinterfaceconstant{autohang}{autohang}
+\setinterfaceconstant{autostrut}{autostrut}
+\setinterfaceconstant{autowidth}{autolatime}
+\setinterfaceconstant{axis}{axa}
+\setinterfaceconstant{background}{fundal}
+\setinterfaceconstant{backgroundcolor}{culoarefundal}
+\setinterfaceconstant{backgroundcorner}{coltfundal}
+\setinterfaceconstant{backgrounddepth}{adancimefundal}
+\setinterfaceconstant{backgroundoffset}{offsetfundal}
+\setinterfaceconstant{backgroundradius}{razafundal}
+\setinterfaceconstant{backgroundscreen}{ecranfundal}
+\setinterfaceconstant{backspace}{spatiuspate}
+\setinterfaceconstant{balance}{balanta}
+\setinterfaceconstant{before}{inainte}
+\setinterfaceconstant{beforehead}{inaintetitlu}
+\setinterfaceconstant{bet}{bet}
+\setinterfaceconstant{big}{mare}
+\setinterfaceconstant{blank}{blanc}
+\setinterfaceconstant{blockway}{blockway}
+\setinterfaceconstant{bodyfont}{fonttext}
+\setinterfaceconstant{bookmark}{semncarte}
+\setinterfaceconstant{bottom}{jos}
+\setinterfaceconstant{bottomafter}{bottomafter}
+\setinterfaceconstant{bottombefore}{bottombefore}
+\setinterfaceconstant{bottomdistance}{distantajos}
+\setinterfaceconstant{bottomframe}{framejos}
+\setinterfaceconstant{bottomoffset}{offsetjos}
+\setinterfaceconstant{bottomspace}{spatiujos}
+\setinterfaceconstant{bottomstate}{starejos}
+\setinterfaceconstant{cache}{cache}
+\setinterfaceconstant{calculate}{calculeaza}
+\setinterfaceconstant{ccommand}{comandac}
+\setinterfaceconstant{click}{click}
+\setinterfaceconstant{clickin}{clickintru}
+\setinterfaceconstant{clickout}{clickies}
+\setinterfaceconstant{clipoffset}{clipoffset}
+\setinterfaceconstant{closeaction}{actiuneinchidere}
+\setinterfaceconstant{closecommand}{closecommand}
+\setinterfaceconstant{closepageaction}{actiuneinchiderepagina}
+\setinterfaceconstant{closesymbol}{closesymbol}
+\setinterfaceconstant{color}{culoare}
+\setinterfaceconstant{column}{coloana}
+\setinterfaceconstant{columndistance}{distantacoloane}
+\setinterfaceconstant{columns}{coloane}
+\setinterfaceconstant{command}{comanda}
+\setinterfaceconstant{commandafter}{comandadupa}
+\setinterfaceconstant{commandbefore}{comandainainte}
+\setinterfaceconstant{commands}{comenzi}
+\setinterfaceconstant{component}{component}
+\setinterfaceconstant{compoundhyphen}{compoundhyphen}
+\setinterfaceconstant{compress}{compress}
+\setinterfaceconstant{connector}{connector}
+\setinterfaceconstant{continue}{continua}
+\setinterfaceconstant{contrastcolor}{culoarecontrast}
+\setinterfaceconstant{controls}{controale}
+\setinterfaceconstant{conversion}{conversie}
+\setinterfaceconstant{convertfile}{convertestefisier}
+\setinterfaceconstant{corner}{colt}
+\setinterfaceconstant{coupling}{cuplare}
+\setinterfaceconstant{couplingway}{modcuplare}
+\setinterfaceconstant{criterium}{criteriu}
+\setinterfaceconstant{current}{curent}
+\setinterfaceconstant{cutspace}{cutspace}
+\setinterfaceconstant{dash}{dash}
+\setinterfaceconstant{dat}{dat}
+\setinterfaceconstant{date}{data}
+\setinterfaceconstant{deepnumbercommand}{deepnumbercommand}
+\setinterfaceconstant{deeptextcommand}{deeptextcommand}
+\setinterfaceconstant{default}{implicit}
+\setinterfaceconstant{delay}{intarziere}
+\setinterfaceconstant{depth}{inaltime}
+\setinterfaceconstant{depthcorrection}{corectieadancime}
+\setinterfaceconstant{direction}{directie}
+\setinterfaceconstant{directory}{director}
+\setinterfaceconstant{display}{display}
+\setinterfaceconstant{distance}{distanta}
+\setinterfaceconstant{dot}{punct}
+\setinterfaceconstant{doublesided}{douafete}
+\setinterfaceconstant{dummy}{dummy}
+\setinterfaceconstant{dx}{dx}
+\setinterfaceconstant{dy}{dy}
+\setinterfaceconstant{edge}{bordura}
+\setinterfaceconstant{edgedistance}{distantabordura}
+\setinterfaceconstant{empty}{gol}
+\setinterfaceconstant{equalheight}{equalheight}
+\setinterfaceconstant{equalwidth}{equalwidth}
+\setinterfaceconstant{escape}{escape}
+\setinterfaceconstant{evenmargin}{marginepara}
+\setinterfaceconstant{expansion}{expansiune}
+\setinterfaceconstant{extras}{extras}
+\setinterfaceconstant{factor}{factor}
+\setinterfaceconstant{fallback}{fallback}
+\setinterfaceconstant{family}{familie}
+\setinterfaceconstant{fieldbackgroundcolor}{culoarefundalcamp}
+\setinterfaceconstant{fieldframecolor}{culoareframecamp}
+\setinterfaceconstant{fieldlayer}{fieldlayer}
+\setinterfaceconstant{fieldoffset}{offsetcamp}
+\setinterfaceconstant{file}{fisier}
+\setinterfaceconstant{filtercommand}{filtercommand}
+\setinterfaceconstant{focus}{focus}
+\setinterfaceconstant{focusin}{focusin}
+\setinterfaceconstant{focusout}{focusout}
+\setinterfaceconstant{footer}{subsol}
+\setinterfaceconstant{footerdistance}{distantasubsol}
+\setinterfaceconstant{footerstate}{staresubsol}
+\setinterfaceconstant{foregroundcolor}{foregroundcolor}
+\setinterfaceconstant{foregroundstyle}{foregroundstyle}
+\setinterfaceconstant{format}{format}
+\setinterfaceconstant{frame}{frame}
+\setinterfaceconstant{framecolor}{culoareframe}
+\setinterfaceconstant{framecorner}{coltframe}
+\setinterfaceconstant{framedepth}{adancimeframe}
+\setinterfaceconstant{frameoffset}{offsetframe}
+\setinterfaceconstant{frameradius}{razaframe}
+\setinterfaceconstant{frames}{frames}
+\setinterfaceconstant{from}{dela}
+\setinterfaceconstant{get}{adu}
+\setinterfaceconstant{global}{global}
+\setinterfaceconstant{grid}{grid}
+\setinterfaceconstant{hang}{suspenda}
+\setinterfaceconstant{headcolor}{culoaretitlu}
+\setinterfaceconstant{headcommand}{headcommand}
+\setinterfaceconstant{headconversion}{conversietitlu}
+\setinterfaceconstant{header}{antet}
+\setinterfaceconstant{headerdistance}{distantaantet}
+\setinterfaceconstant{headerstate}{stareantet}
+\setinterfaceconstant{headlabel}{etichetatitlu}
+\setinterfaceconstant{headnumber}{numartitlu}
+\setinterfaceconstant{headstyle}{stiltitlu}
+\setinterfaceconstant{height}{inaltime}
+\setinterfaceconstant{hfactor}{hfactor}
+\setinterfaceconstant{hfil}{hfil}
+\setinterfaceconstant{hidenumber}{hidenumber}
+\setinterfaceconstant{hoffset}{hoffset}
+\setinterfaceconstant{horoffset}{offsetoriz}
+\setinterfaceconstant{hyphen}{hyphen}
+\setinterfaceconstant{icommand}{comandai}
+\setinterfaceconstant{in}{in}
+\setinterfaceconstant{inbetween}{intre}
+\setinterfaceconstant{increment}{increment}
+\setinterfaceconstant{incrementnumber}{numarincrement}
+\setinterfaceconstant{indenting}{aliniat}
+\setinterfaceconstant{indentnext}{aliniaturmator}
+\setinterfaceconstant{indicator}{indicator}
+\setinterfaceconstant{inner}{intern}
+\setinterfaceconstant{innermargin}{innermargin}
+\setinterfaceconstant{inputfile}{inputfile}
+\setinterfaceconstant{interaction}{interactiune}
+\setinterfaceconstant{interlinespace}{spatiereinterliniara}
+\setinterfaceconstant{itemalign}{itemalign}
+\setinterfaceconstant{items}{elemente}
+\setinterfaceconstant{ken}{ken}
+\setinterfaceconstant{keyexpansion}{keyexpansion}
+\setinterfaceconstant{keyword}{keyword}
+\setinterfaceconstant{label}{eticheta}
+\setinterfaceconstant{left}{stanga}
+\setinterfaceconstant{leftcolor}{culoarestanga}
+\setinterfaceconstant{leftcompoundhyphen}{leftcompoundhyphen}
+\setinterfaceconstant{leftedge}{bordurastanga}
+\setinterfaceconstant{leftedgedistance}{distantabordurastanga}
+\setinterfaceconstant{leftframe}{framestanga}
+\setinterfaceconstant{lefthyphen}{lefthyphen}
+\setinterfaceconstant{leftmargin}{marginestanga}
+\setinterfaceconstant{leftmargindistance}{distantamarginestanga}
+\setinterfaceconstant{leftoffset}{offsetstanga}
+\setinterfaceconstant{leftquotation}{citatstanga}
+\setinterfaceconstant{leftquote}{minicitatstanga}
+\setinterfaceconstant{leftsentence}{propozitiestanga}
+\setinterfaceconstant{leftspeech}{leftspeech}
+\setinterfaceconstant{leftstyle}{stilstanga}
+\setinterfaceconstant{leftsubsentence}{subpropozitiestanga}
+\setinterfaceconstant{lefttext}{textstanga}
+\setinterfaceconstant{leftwidth}{latimestanga}
+\setinterfaceconstant{level}{nivel}
+\setinterfaceconstant{levels}{nivele}
+\setinterfaceconstant{limittext}{limittext}
+\setinterfaceconstant{line}{linie}
+\setinterfaceconstant{linecorrection}{corectielinie}
+\setinterfaceconstant{lines}{linii}
+\setinterfaceconstant{list}{lista}
+\setinterfaceconstant{listtext}{listtext}
+\setinterfaceconstant{local}{local}
+\setinterfaceconstant{location}{locatie}
+\setinterfaceconstant{logo}{logo}
+\setinterfaceconstant{logos}{logos}
+\setinterfaceconstant{marcolor}{culoaremarcaj}
+\setinterfaceconstant{margin}{margine}
+\setinterfaceconstant{margindistance}{distantamargine}
+\setinterfaceconstant{marginedge}{coltbordura}
+\setinterfaceconstant{marginedgetext}{textcoltbordura}
+\setinterfaceconstant{margintext}{textmargine}
+\setinterfaceconstant{marking}{marcaje}
+\setinterfaceconstant{marstyle}{stilmarcaj}
+\setinterfaceconstant{max}{max}
+\setinterfaceconstant{maxheight}{inaltimemaxima}
+\setinterfaceconstant{maxwidth}{latimemaxima}
+\setinterfaceconstant{menu}{meniu}
+\setinterfaceconstant{method}{metoda}
+\setinterfaceconstant{middle}{mijloc}
+\setinterfaceconstant{middlespeech}{middlespeech}
+\setinterfaceconstant{middletext}{textmijloc}
+\setinterfaceconstant{midsentence}{midsentence}
+\setinterfaceconstant{min}{min}
+\setinterfaceconstant{mindepth}{mindepth}
+\setinterfaceconstant{minheight}{inaltimeminima}
+\setinterfaceconstant{minwidth}{latimeminima}
+\setinterfaceconstant{n}{n}
+\setinterfaceconstant{name}{nume}
+\setinterfaceconstant{nbottom}{njos}
+\setinterfaceconstant{nc}{nc}
+\setinterfaceconstant{next}{urmatorul}
+\setinterfaceconstant{nl}{nl}
+\setinterfaceconstant{nleft}{nstanga}
+\setinterfaceconstant{nlines}{nlinii}
+\setinterfaceconstant{norm}{norm}
+\setinterfaceconstant{nr}{nr}
+\setinterfaceconstant{nright}{ndreapta}
+\setinterfaceconstant{ntop}{nsus}
+\setinterfaceconstant{number}{numar}
+\setinterfaceconstant{numbercolor}{culoarenumar}
+\setinterfaceconstant{numbercommand}{comandanumar}
+\setinterfaceconstant{numberconversion}{numberconversion}
+\setinterfaceconstant{numberconversionset}{numberconversionset}
+\setinterfaceconstant{numberdistance}{numberdistance}
+\setinterfaceconstant{numbering}{numerotare}
+\setinterfaceconstant{numberorder}{numberorder}
+\setinterfaceconstant{numberprefix}{numberprefix}
+\setinterfaceconstant{numbersegments}{numbersegments}
+\setinterfaceconstant{numberseparator}{separatornumar}
+\setinterfaceconstant{numberseparatorset}{numberseparatorset}
+\setinterfaceconstant{numberset}{numberset}
+\setinterfaceconstant{numberstopper}{numberstopper}
+\setinterfaceconstant{numberstyle}{stilnumar}
+\setinterfaceconstant{numberwidth}{numberwidth}
+\setinterfaceconstant{nx}{nx}
+\setinterfaceconstant{ny}{ny}
+\setinterfaceconstant{object}{obiect}
+\setinterfaceconstant{obstruction}{obstructie}
+\setinterfaceconstant{oddmargin}{margineimpara}
+\setinterfaceconstant{offset}{offset}
+\setinterfaceconstant{openaction}{actiunedeschidere}
+\setinterfaceconstant{openpageaction}{actiunedeschiderepagina}
+\setinterfaceconstant{option}{optiune}
+\setinterfaceconstant{orientation}{orientation}
+\setinterfaceconstant{outermargin}{outermargin}
+\setinterfaceconstant{overprint}{overprint}
+\setinterfaceconstant{ownnumber}{numarpropriu}
+\setinterfaceconstant{page}{pagina}
+\setinterfaceconstant{pageboundaries}{marginipagina}
+\setinterfaceconstant{pagecolor}{culoarepagina}
+\setinterfaceconstant{pagecommand}{comandapagina}
+\setinterfaceconstant{pageconversion}{pageconversion}
+\setinterfaceconstant{pageconversionset}{pageconversionset}
+\setinterfaceconstant{pagenumber}{numarpagina}
+\setinterfaceconstant{pageprefix}{pageprefix}
+\setinterfaceconstant{pageprefixconnector}{pageprefixconnector}
+\setinterfaceconstant{pageprefixconversion}{pageprefixconversion}
+\setinterfaceconstant{pageprefixconversionset}{pageprefixconversionset}
+\setinterfaceconstant{pageprefixsegments}{pageprefixsegments}
+\setinterfaceconstant{pageprefixseparatorset}{pageprefixseparatorset}
+\setinterfaceconstant{pageprefixset}{pageprefixset}
+\setinterfaceconstant{pageprefixstopper}{pageprefixstopper}
+\setinterfaceconstant{pagesegments}{pagesegments}
+\setinterfaceconstant{pageseparatorset}{pageseparatorset}
+\setinterfaceconstant{pageset}{pageset}
+\setinterfaceconstant{pagestate}{pagestate}
+\setinterfaceconstant{pagestopper}{pagestopper}
+\setinterfaceconstant{pagestyle}{stilpagina}
+\setinterfaceconstant{palet}{paleta}
+\setinterfaceconstant{paper}{hartie}
+\setinterfaceconstant{paragraph}{paragraf}
+\setinterfaceconstant{place}{pune}
+\setinterfaceconstant{placehead}{punetitlu}
+\setinterfaceconstant{placestopper}{punestopper}
+\setinterfaceconstant{position}{pozitie}
+\setinterfaceconstant{prefix}{prefix}
+\setinterfaceconstant{prefixconnector}{prefixconnector}
+\setinterfaceconstant{prefixconversion}{prefixconversion}
+\setinterfaceconstant{prefixconversionset}{prefixconversionset}
+\setinterfaceconstant{prefixsegments}{prefixsegments}
+\setinterfaceconstant{prefixseparatorset}{prefixseparatorset}
+\setinterfaceconstant{prefixset}{prefixset}
+\setinterfaceconstant{prefixstopper}{prefixstopper}
+\setinterfaceconstant{preset}{preset}
+\setinterfaceconstant{preview}{previzualizare}
+\setinterfaceconstant{previous}{precendent}
+\setinterfaceconstant{previousnumber}{numarprecedent}
+\setinterfaceconstant{process}{process}
+\setinterfaceconstant{radius}{raza}
+\setinterfaceconstant{random}{aleator}
+\setinterfaceconstant{reduction}{reducere}
+\setinterfaceconstant{ref}{ref}
+\setinterfaceconstant{reference}{referinta}
+\setinterfaceconstant{referenceprefix}{referenceprefix}
+\setinterfaceconstant{referencing}{referinta}
+\setinterfaceconstant{regionin}{regiuneintrare}
+\setinterfaceconstant{regionout}{regiuneiesire}
+\setinterfaceconstant{repeat}{repeta}
+\setinterfaceconstant{reset}{reset}
+\setinterfaceconstant{resetnumber}{resetnumber}
+\setinterfaceconstant{resolution}{rezolutie}
+\setinterfaceconstant{right}{dreapta}
+\setinterfaceconstant{rightcolor}{culoaredreapta}
+\setinterfaceconstant{rightcompoundhyphen}{rightcompoundhyphen}
+\setinterfaceconstant{rightedge}{borduradreapta}
+\setinterfaceconstant{rightedgedistance}{distantacoltdreapta}
+\setinterfaceconstant{rightframe}{framedreapta}
+\setinterfaceconstant{righthyphen}{righthyphen}
+\setinterfaceconstant{rightmargin}{marginedreapta}
+\setinterfaceconstant{rightmargindistance}{distantamarginedreapta}
+\setinterfaceconstant{rightoffset}{offsetdreapta}
+\setinterfaceconstant{rightquotation}{citatdreapta}
+\setinterfaceconstant{rightquote}{minicitatdreapta}
+\setinterfaceconstant{rightsentence}{propozitiedreapta}
+\setinterfaceconstant{rightspeech}{rightspeech}
+\setinterfaceconstant{rightstyle}{stildreapta}
+\setinterfaceconstant{rightsubsentence}{subpropozitiedreapta}
+\setinterfaceconstant{righttext}{textdreapta}
+\setinterfaceconstant{rightwidth}{marginedreapta}
+\setinterfaceconstant{rotation}{rotatie}
+\setinterfaceconstant{rule}{rigla}
+\setinterfaceconstant{rulecolor}{culoarerigla}
+\setinterfaceconstant{rulethickness}{grosimerigla}
+\setinterfaceconstant{samepage}{aceeasipagina}
+\setinterfaceconstant{sample}{exemplu}
+\setinterfaceconstant{saveinlist}{saveinlist}
+\setinterfaceconstant{scale}{scala}
+\setinterfaceconstant{scope}{scop}
+\setinterfaceconstant{screen}{ecran}
+\setinterfaceconstant{section}{sectiune}
+\setinterfaceconstant{sectionconversion}{sectionconversion}
+\setinterfaceconstant{sectionconversionset}{sectionconversionset}
+\setinterfaceconstant{sectionnumber}{numarsectiune}
+\setinterfaceconstant{sectionresetset}{sectionresetset}
+\setinterfaceconstant{sectionsegments}{sectionsegments}
+\setinterfaceconstant{sectionseparatorset}{sectionseparatorset}
+\setinterfaceconstant{sectionset}{sectionset}
+\setinterfaceconstant{sectionstopper}{sectionstopper}
+\setinterfaceconstant{separator}{separator}
+\setinterfaceconstant{set}{set}
+\setinterfaceconstant{setups}{setups}
+\setinterfaceconstant{side}{parte}
+\setinterfaceconstant{sidealign}{sidealign}
+\setinterfaceconstant{sidemethod}{sidemethod}
+\setinterfaceconstant{sidespaceafter}{spatiulateraldupa}
+\setinterfaceconstant{sidespacebefore}{spatiulateralinainte}
+\setinterfaceconstant{sign}{semn}
+\setinterfaceconstant{size}{dimensiune}
+\setinterfaceconstant{small}{mic}
+\setinterfaceconstant{sorttype}{sorttype}
+\setinterfaceconstant{source}{sursa}
+\setinterfaceconstant{space}{spatiu}
+\setinterfaceconstant{spaceafter}{spatiudupa}
+\setinterfaceconstant{spacebefore}{spatiuinainte}
+\setinterfaceconstant{spaceinbetween}{spaceinbetween}
+\setinterfaceconstant{spacing}{spatiere}
+\setinterfaceconstant{split}{split}
+\setinterfaceconstant{splitcolor}{splitcolor}
+\setinterfaceconstant{splitmethod}{splitmethod}
+\setinterfaceconstant{splitoffset}{splitoffset}
+\setinterfaceconstant{spot}{spot}
+\setinterfaceconstant{stack}{stack}
+\setinterfaceconstant{start}{start}
+\setinterfaceconstant{state}{stare}
+\setinterfaceconstant{step}{pas}
+\setinterfaceconstant{stop}{stop}
+\setinterfaceconstant{stopper}{stopper}
+\setinterfaceconstant{stretch}{dilatat}
+\setinterfaceconstant{strut}{strut}
+\setinterfaceconstant{style}{stil}
+\setinterfaceconstant{sub}{sub}
+\setinterfaceconstant{subtitle}{subtitlu}
+\setinterfaceconstant{suffix}{suffix}
+\setinterfaceconstant{sx}{sx}
+\setinterfaceconstant{sy}{sy}
+\setinterfaceconstant{symalign}{symaliniere}
+\setinterfaceconstant{symbol}{simbol}
+\setinterfaceconstant{symbolset}{setsimbol}
+\setinterfaceconstant{symcolor}{culoaresimbol}
+\setinterfaceconstant{symstyle}{stilsimbol}
+\setinterfaceconstant{synonym}{sinonim}
+\setinterfaceconstant{synonymcolor}{culoaresinonim}
+\setinterfaceconstant{synonymcommand}{synonymcommand}
+\setinterfaceconstant{synonymstyle}{stilsinonim}
+\setinterfaceconstant{tab}{tab}
+\setinterfaceconstant{text}{text}
+\setinterfaceconstant{textcolor}{culoaretext}
+\setinterfaceconstant{textcommand}{comandatext}
+\setinterfaceconstant{textdistance}{textdistance}
+\setinterfaceconstant{textlayer}{textlayer}
+\setinterfaceconstant{textmargin}{textmargin}
+\setinterfaceconstant{textmethod}{textmethod}
+\setinterfaceconstant{textseparator}{separatortext}
+\setinterfaceconstant{textsize}{dimensiunetext}
+\setinterfaceconstant{textstate}{staretext}
+\setinterfaceconstant{textstyle}{stiltext}
+\setinterfaceconstant{textwidth}{latimetext}
+\setinterfaceconstant{title}{titlu}
+\setinterfaceconstant{titlecolor}{culoaretitlu}
+\setinterfaceconstant{titlecommand}{titlecommand}
+\setinterfaceconstant{titledistance}{distantatitlu}
+\setinterfaceconstant{titleleft}{titleleft}
+\setinterfaceconstant{titleright}{titleright}
+\setinterfaceconstant{titlestyle}{stiltitlu}
+\setinterfaceconstant{to}{catre}
+\setinterfaceconstant{tolerance}{toleranta}
+\setinterfaceconstant{top}{sus}
+\setinterfaceconstant{topdistance}{distantasus}
+\setinterfaceconstant{topframe}{framesus}
+\setinterfaceconstant{topoffset}{offsetsus}
+\setinterfaceconstant{topspace}{spatiusus}
+\setinterfaceconstant{topstate}{staresus}
+\setinterfaceconstant{type}{type}
+\setinterfaceconstant{unit}{unitate}
+\setinterfaceconstant{unknownreference}{referintanecunoscuta}
+\setinterfaceconstant{urlalternative}{urlalternativ}
+\setinterfaceconstant{urlspace}{spatiuurl}
+\setinterfaceconstant{validate}{verifica}
+\setinterfaceconstant{vcommand}{comandav}
+\setinterfaceconstant{veroffset}{veroffset}
+\setinterfaceconstant{vfil}{vfil}
+\setinterfaceconstant{voffset}{voffset}
+\setinterfaceconstant{way}{mod}
+\setinterfaceconstant{wfactor}{factorw}
+\setinterfaceconstant{white}{alb}
+\setinterfaceconstant{width}{latime}
+\setinterfaceconstant{xfactor}{xfactor}
+\setinterfaceconstant{xmax}{xmax}
+\setinterfaceconstant{xoffset}{xoffset}
+\setinterfaceconstant{xscale}{xscala}
+\setinterfaceconstant{xstep}{xstep}
+\setinterfaceconstant{yfactor}{yfactor}
+\setinterfaceconstant{ymax}{ymax}
+\setinterfaceconstant{yoffset}{yoffset}
+\setinterfaceconstant{yscale}{yscala}
+\setinterfaceconstant{ystep}{ystep}
+% definitions for interface elements for language ro
+%
+\setinterfaceelement{answerlines}{answerlines}
+\setinterfaceelement{answerspace}{answerspace}
+\setinterfaceelement{begin}{inceput}
+\setinterfaceelement{complete}{complet}
+\setinterfaceelement{coupled}{cuplat}
+\setinterfaceelement{currentlocal}{localcurent}
+\setinterfaceelement{emptyone}{gol}
+\setinterfaceelement{emptytwo}{gol}
+\setinterfaceelement{end}{sfarsit}
+\setinterfaceelement{endsetup}{}
+\setinterfaceelement{get}{get}
+\setinterfaceelement{increment}{increment}
+\setinterfaceelement{list}{lista}
+\setinterfaceelement{listof}{listade}
+\setinterfaceelement{load}{incarca}
+\setinterfaceelement{local}{local}
+\setinterfaceelement{makeup}{makeup}
+\setinterfaceelement{next}{urmatorul}
+\setinterfaceelement{place}{pune}
+\setinterfaceelement{previous}{precedent}
+\setinterfaceelement{previouslocal}{precedentlocal}
+\setinterfaceelement{reserve}{rezervat}
+\setinterfaceelement{see}{vezi}
+\setinterfaceelement{setup}{setare}
+\setinterfaceelement{start}{start}
+\setinterfaceelement{stop}{stop}
+\setinterfaceelement{text}{text}
+\setinterfaceelement{type}{type}
+% definitions for interface commands for language ro
+%
+\setinterfacecommand{CAPPED}{KAP}
+\setinterfacecommand{Character}{Litera}
+\setinterfacecommand{Characters}{Litere}
+\setinterfacecommand{LABELTEXT}{TEXTETICHETA}
+\setinterfacecommand{MONTH}{LUNA}
+\setinterfacecommand{Numbers}{Numere}
+\setinterfacecommand{Romannumerals}{Numereromane}
+\setinterfacecommand{SmallCapped}{Kap}
+\setinterfacecommand{SmallCaps}{Kaps}
+\setinterfacecommand{WEEKDAY}{ZIDINSAPTAMANA}
+\setinterfacecommand{WORD}{CUVANT}
+\setinterfacecommand{WORDS}{CUVINTE}
+\setinterfacecommand{Word}{Cuvant}
+\setinterfacecommand{Words}{Cuvinte}
+\setinterfacecommand{about}{despre}
+\setinterfacecommand{adaptlayout}{adapteazaaspect}
+\setinterfacecommand{arg}{arg}
+\setinterfacecommand{at}{la}
+\setinterfacecommand{atleftmargin}{atleftmargin}
+\setinterfacecommand{atpage}{lapagina}
+\setinterfacecommand{atrightmargin}{atrightmargin}
+\setinterfacecommand{background}{fundal}
+\setinterfacecommand{backspace}{spatiuspate}
+\setinterfacecommand{blackrule}{linieneagra}
+\setinterfacecommand{blackrules}{liniinegre}
+\setinterfacecommand{blank}{blanc}
+\setinterfacecommand{bookmark}{semncarte}
+\setinterfacecommand{bottomdistance}{distantajos}
+\setinterfacecommand{bottomheight}{inaltimejos}
+\setinterfacecommand{bottomspace}{spatiujos}
+\setinterfacecommand{but}{but}
+\setinterfacecommand{button}{buton}
+\setinterfacecommand{bypassblocks}{saripesteblocuri}
+\setinterfacecommand{character}{litera}
+\setinterfacecommand{characters}{litere}
+\setinterfacecommand{chem}{chem}
+\setinterfacecommand{clip}{clip}
+\setinterfacecommand{clonefield}{cloneazacamp}
+\setinterfacecommand{color}{culoare}
+\setinterfacecommand{colorbar}{baraculoare}
+\setinterfacecommand{colorvalue}{valoareculoare}
+\setinterfacecommand{column}{coloana}
+\setinterfacecommand{comment}{comentariu}
+\setinterfacecommand{comparecolorgroup}{comparagrupculoare}
+\setinterfacecommand{comparepalet}{comparapaleta}
+\setinterfacecommand{completepagenumber}{completeazanumarpagina}
+\setinterfacecommand{completeregister}{completeregister}
+\setinterfacecommand{component}{componenta}
+\setinterfacecommand{convertnumber}{convertestenumar}
+\setinterfacecommand{copyfield}{copiazacamp}
+\setinterfacecommand{correctwhitespace}{corecteazaspatiualb}
+\setinterfacecommand{coupledocument}{cupleazadocument}
+\setinterfacecommand{couplemarking}{cupleazamarcaje}
+\setinterfacecommand{couplepage}{paginadubla}
+\setinterfacecommand{couplepaper}{hartiedubla}
+\setinterfacecommand{coupleregister}{cupleazaregistru}
+\setinterfacecommand{crlf}{crlf}
+\setinterfacecommand{currentdate}{datacurenta}
+\setinterfacecommand{currentheadnumber}{numartitlucurent}
+\setinterfacecommand{cutspace}{cutspace}
+\setinterfacecommand{date}{data}
+\setinterfacecommand{decouplemarking}{decupleazamarcaje}
+\setinterfacecommand{decrementnumber}{decrementnumber}
+\setinterfacecommand{define}{defineste}
+\setinterfacecommand{defineaccent}{definesteaccent}
+\setinterfacecommand{defineblank}{definesteblanc}
+\setinterfacecommand{defineblock}{definestebloc}
+\setinterfacecommand{definebodyfont}{definestefonttext}
+\setinterfacecommand{definebodyfontenvironment}{definestemediulfonttext}
+\setinterfacecommand{definebuffer}{definestebuffer}
+\setinterfacecommand{definecharacter}{definestecaracter}
+\setinterfacecommand{definecolor}{definesteculoare}
+\setinterfacecommand{definecolorgroup}{definestegrupculori}
+\setinterfacecommand{definecolumnbreak}{definecolumnbreak}
+\setinterfacecommand{definecolumnset}{definecolumnset}
+\setinterfacecommand{definecombination}{definecombination}
+\setinterfacecommand{definecombinedlist}{definestelistacombinata}
+\setinterfacecommand{definecommand}{definestecomanda}
+\setinterfacecommand{defineconversion}{definesteconversie}
+\setinterfacecommand{definedescription}{definestedescriere}
+\setinterfacecommand{defineenumeration}{definesteenumerare}
+\setinterfacecommand{definefield}{definestecamp}
+\setinterfacecommand{definefieldstack}{definestestivacampuri}
+\setinterfacecommand{definefiguresymbol}{definestesimbolfigura}
+\setinterfacecommand{definefloat}{definestefloat}
+\setinterfacecommand{definefont}{definestefont}
+\setinterfacecommand{definefontstyle}{definestestilfont}
+\setinterfacecommand{definefontsynonym}{definestesinonimfont}
+\setinterfacecommand{defineframed}{definesteinconjurare}
+\setinterfacecommand{defineframedtext}{definestetextinconjurat}
+\setinterfacecommand{definehbox}{definestehbox}
+\setinterfacecommand{definehead}{definesteantet}
+\setinterfacecommand{defineindenting}{definestealiat}
+\setinterfacecommand{defineinmargin}{defineinmargin}
+\setinterfacecommand{defineinteractionmenu}{definestemeniuinteractiune}
+\setinterfacecommand{defineitemgroup}{defineitemgroup}
+\setinterfacecommand{definelabel}{definesteeticheta}
+\setinterfacecommand{definelayer}{definelayer}
+\setinterfacecommand{definelayout}{definelayout}
+\setinterfacecommand{definelist}{definestelista}
+\setinterfacecommand{definelogo}{definestelogo}
+\setinterfacecommand{definemainfield}{definestecampprincipal}
+\setinterfacecommand{definemakeup}{definestemakeup}
+\setinterfacecommand{definemarking}{definestemarcaje}
+\setinterfacecommand{definemathalignment}{definemathalignment}
+\setinterfacecommand{defineoutput}{definesteoutput}
+\setinterfacecommand{defineoverlay}{definesteoverlay}
+\setinterfacecommand{definepagebreak}{definepagebreak}
+\setinterfacecommand{definepalet}{definestepaleta}
+\setinterfacecommand{definepapersize}{definestedimensiunehartie}
+\setinterfacecommand{defineparagraphs}{definesteparagraf}
+\setinterfacecommand{defineplacement}{defineplacement}
+\setinterfacecommand{defineprofile}{definesteprofil}
+\setinterfacecommand{defineprogram}{definesteprogram}
+\setinterfacecommand{definerawfont}{definestefontraw}
+\setinterfacecommand{definereference}{definestereferinte}
+\setinterfacecommand{definereferenceformat}{definesteformatreferinte}
+\setinterfacecommand{definereferencelist}{definestelistareferinte}
+\setinterfacecommand{defineregister}{definesteregistru}
+\setinterfacecommand{definerule}{definesterigla}
+\setinterfacecommand{definesection}{definestesectiune}
+\setinterfacecommand{definesectionblock}{definesteblocsectiune}
+\setinterfacecommand{definesorting}{definestesortare}
+\setinterfacecommand{definestartstop}{definestestartstop}
+\setinterfacecommand{definestyle}{definestestil}
+\setinterfacecommand{definesubfield}{definestesubcamp}
+\setinterfacecommand{definesymbol}{definestesimbol}
+\setinterfacecommand{definesynonyms}{definestesinonim}
+\setinterfacecommand{definetabletemplate}{definestesablontabel}
+\setinterfacecommand{definetabulate}{definestetabulatori}
+\setinterfacecommand{definetext}{definestetext}
+\setinterfacecommand{definetextposition}{definestepozitietext}
+\setinterfacecommand{definetextvariable}{definestevariabilatext}
+\setinterfacecommand{definetype}{definetype}
+\setinterfacecommand{definetyping}{definestetyping}
+\setinterfacecommand{defineversion}{definesteversiune}
+\setinterfacecommand{determineheadnumber}{determinanumartitlu}
+\setinterfacecommand{determinelistcharacteristics}{determinacaracteristicilelistei}
+\setinterfacecommand{determineregistercharacteristics}{determinacaracteristiciregistru}
+\setinterfacecommand{dimension}{dimensiune}
+\setinterfacecommand{disableinteractionmenu}{dezactiveazameniuinteractiune}
+\setinterfacecommand{domicile}{domiciliu}
+\setinterfacecommand{donttest}{nutesta}
+\setinterfacecommand{edgedistance}{distantacolt}
+\setinterfacecommand{edgewidth}{latimecolturi}
+\setinterfacecommand{emptylines}{emptylines}
+\setinterfacecommand{environment}{mediu}
+\setinterfacecommand{externalfigure}{figuraexterna}
+\setinterfacecommand{fact}{fact}
+\setinterfacecommand{field}{camp}
+\setinterfacecommand{fieldstack}{stivacampuri}
+\setinterfacecommand{fillinfield}{campumplere}
+\setinterfacecommand{fillinline}{linieumplere}
+\setinterfacecommand{fillinrules}{rigleumplere}
+\setinterfacecommand{fillintext}{textumplere}
+\setinterfacecommand{fitfield}{potrivestecamp}
+\setinterfacecommand{fixedspace}{spatiufixat}
+\setinterfacecommand{fixedspaces}{spatiifixate}
+\setinterfacecommand{followprofile}{urmeazaprofil}
+\setinterfacecommand{followprofileversion}{urmeazaversiuneprofil}
+\setinterfacecommand{followversion}{urmeazaversiune}
+\setinterfacecommand{footerdistance}{distantasubsol}
+\setinterfacecommand{footerheight}{inaltimesubsol}
+\setinterfacecommand{footnote}{notasubsol}
+\setinterfacecommand{footnotetext}{footnotetext}
+\setinterfacecommand{forceblocks}{forteazablocuri}
+\setinterfacecommand{formulanumber}{numarformula}
+\setinterfacecommand{fraction}{fractie}
+\setinterfacecommand{framed}{framed}
+\setinterfacecommand{from}{din}
+\setinterfacecommand{getbuffer}{adubuffer}
+\setinterfacecommand{getmarking}{adumarcaje}
+\setinterfacecommand{getnumber}{getnumber}
+\setinterfacecommand{godown}{injos}
+\setinterfacecommand{goto}{dute}
+\setinterfacecommand{gotobox}{dutebox}
+\setinterfacecommand{gotopage}{dutepagina}
+\setinterfacecommand{graycolor}{culoaregri}
+\setinterfacecommand{greyvalue}{valoaregri}
+\setinterfacecommand{grid}{grid}
+\setinterfacecommand{hairline}{firdepar}
+\setinterfacecommand{head}{titlu}
+\setinterfacecommand{headerdistance}{distantaantet}
+\setinterfacecommand{headerheight}{inaltimeantet}
+\setinterfacecommand{headlevel}{niveltitlu}
+\setinterfacecommand{headnumber}{numartitlu}
+\setinterfacecommand{headsym}{headsym}
+\setinterfacecommand{headtext}{texttitlu}
+\setinterfacecommand{hideblocks}{ascundeblocuri}
+\setinterfacecommand{high}{inalt}
+\setinterfacecommand{hl}{hl}
+\setinterfacecommand{immediatebetweenlist}{immediatebetweenlist}
+\setinterfacecommand{immediatetolist}{immediatetolist}
+\setinterfacecommand{in}{in}
+\setinterfacecommand{incrementnumber}{numarincrement}
+\setinterfacecommand{indenting}{aliniat}
+\setinterfacecommand{inframed}{inframed}
+\setinterfacecommand{infull}{pelung}
+\setinterfacecommand{ininner}{ininner}
+\setinterfacecommand{inleft}{instanga}
+\setinterfacecommand{inleftedge}{inparteastanga}
+\setinterfacecommand{inleftmargin}{inmargineastanga}
+\setinterfacecommand{inline}{inlinie}
+\setinterfacecommand{inmargin}{marginal}
+\setinterfacecommand{inmframed}{inmaframed}
+\setinterfacecommand{inneredgedistance}{inneredgedistance}
+\setinterfacecommand{inneredgewidth}{inneredgewidth}
+\setinterfacecommand{innermargindistance}{innermargindistance}
+\setinterfacecommand{innermarginwidth}{innermarginwidth}
+\setinterfacecommand{inothermargin}{inaltamargine}
+\setinterfacecommand{inouter}{inouter}
+\setinterfacecommand{inright}{indreapta}
+\setinterfacecommand{inrightedge}{inparteadreapta}
+\setinterfacecommand{inrightmargin}{inmargineadreapta}
+\setinterfacecommand{installlanguage}{instalarelimba}
+\setinterfacecommand{interactionbar}{barainteractiune}
+\setinterfacecommand{interactionbuttons}{butoaneinteractiune}
+\setinterfacecommand{interactionmenu}{meniuinteractiune}
+\setinterfacecommand{item}{element}
+\setinterfacecommand{items}{element}
+\setinterfacecommand{its}{el}
+\setinterfacecommand{keepblocks}{pastreazablocuri}
+\setinterfacecommand{label}{eticheta}
+\setinterfacecommand{labels}{etichete}
+\setinterfacecommand{labeltext}{texteticheta}
+\setinterfacecommand{language}{limba}
+\setinterfacecommand{leftaligned}{aliniatstanga}
+\setinterfacecommand{leftedgedistance}{distantacoltstanga}
+\setinterfacecommand{leftedgewidth}{latimecoltstanga}
+\setinterfacecommand{leftmargindistance}{distantamarginestanga}
+\setinterfacecommand{leftmarginwidth}{latimemarginestanga}
+\setinterfacecommand{leg}{leg}
+\setinterfacecommand{linewidth}{grosimelinie}
+\setinterfacecommand{listheight}{inaltimelista}
+\setinterfacecommand{listlength}{lungimelista}
+\setinterfacecommand{listsymbol}{listsymbol}
+\setinterfacecommand{listwidth}{latimelista}
+\setinterfacecommand{logfields}{logcampuri}
+\setinterfacecommand{lohi}{jossus}
+\setinterfacecommand{low}{jos}
+\setinterfacecommand{macroname}{nume}
+\setinterfacecommand{mainlanguage}{limbaprincipala}
+\setinterfacecommand{makeupheight}{inaltimemakeup}
+\setinterfacecommand{makeupwidth}{latimemakeup}
+\setinterfacecommand{mar}{mar}
+\setinterfacecommand{margindistance}{distantamargine}
+\setinterfacecommand{marginrule}{liniemargine}
+\setinterfacecommand{margintext}{textmarginal}
+\setinterfacecommand{margintitle}{titlumarginal}
+\setinterfacecommand{marginwidth}{latimemargine}
+\setinterfacecommand{marginword}{cuvantmarginal}
+\setinterfacecommand{marking}{marcaje}
+\setinterfacecommand{markversion}{marcheazaversiune}
+\setinterfacecommand{mathematics}{matematica}
+\setinterfacecommand{menubutton}{butonmeniu}
+\setinterfacecommand{mframed}{maframed}
+\setinterfacecommand{midaligned}{aliniatcentru}
+\setinterfacecommand{mirror}{reflexie}
+\setinterfacecommand{month}{luna}
+\setinterfacecommand{moveformula}{moveformula}
+\setinterfacecommand{moveongrid}{mutapegrid}
+\setinterfacecommand{movesidefloat}{movesidefloat}
+\setinterfacecommand{navigating}{navigating}
+\setinterfacecommand{nodimension}{faradimensiune}
+\setinterfacecommand{noheaderandfooterlines}{faraliniiantetsisubsol}
+\setinterfacecommand{noindenting}{faraaliniat}
+\setinterfacecommand{nolist}{faralista}
+\setinterfacecommand{nomarking}{faramarcaje}
+\setinterfacecommand{nomoreblocks}{gatablocuri}
+\setinterfacecommand{nomorefiles}{farafisiere}
+\setinterfacecommand{nop}{nop}
+\setinterfacecommand{nospace}{faraspatiu}
+\setinterfacecommand{note}{nota}
+\setinterfacecommand{notopandbottomlines}{faraliniisussijos}
+\setinterfacecommand{notsmallcapped}{nokap}
+\setinterfacecommand{nowhitespace}{faraspatiualb}
+\setinterfacecommand{numberofsubpages}{numberofsubpages}
+\setinterfacecommand{numbers}{numere}
+\setinterfacecommand{outeredgedistance}{outeredgedistance}
+\setinterfacecommand{outeredgewidth}{outeredgewidth}
+\setinterfacecommand{outermargindistance}{outermargindistance}
+\setinterfacecommand{outermarginwidth}{outermarginwidth}
+\setinterfacecommand{overbar}{barasus}
+\setinterfacecommand{overbars}{supralinie}
+\setinterfacecommand{overstrike}{liniepeste}
+\setinterfacecommand{overstrikes}{liniipeste}
+\setinterfacecommand{packed}{impachetat}
+\setinterfacecommand{page}{pagina}
+\setinterfacecommand{pagedepth}{pagedepth}
+\setinterfacecommand{pagenumber}{numarpagina}
+\setinterfacecommand{pageoffset}{pageoffset}
+\setinterfacecommand{pagereference}{referintapagina}
+\setinterfacecommand{pagetype}{tippagina}
+\setinterfacecommand{paperheight}{inaltimehartie}
+\setinterfacecommand{paperwidth}{latimehartie}
+\setinterfacecommand{periods}{puncte}
+\setinterfacecommand{plaatsruwelijst}{placerawlist}
+\setinterfacecommand{placebookmarks}{plaseazasemnecarte}
+\setinterfacecommand{placecombinedlist}{punelistacombinata}
+\setinterfacecommand{placefloat}{placefloat}
+\setinterfacecommand{placefootnotes}{punenotesubsol}
+\setinterfacecommand{placeformula}{puneformula}
+\setinterfacecommand{placeheadnumber}{placeheadnumber}
+\setinterfacecommand{placeheadtext}{placeheadtext}
+\setinterfacecommand{placelegend}{punelegenda}
+\setinterfacecommand{placelist}{punelista}
+\setinterfacecommand{placelocalfootnotes}{punenotesubsollocale}
+\setinterfacecommand{placelogos}{punelogouri}
+\setinterfacecommand{placeongrid}{plaseazapegrid}
+\setinterfacecommand{placeontopofeachother}{punedeasuprafiecareia}
+\setinterfacecommand{placepagenumber}{punenumarpagina}
+\setinterfacecommand{placereferencelist}{placereferencelist}
+\setinterfacecommand{placeregister}{puneregistru}
+\setinterfacecommand{placerule}{punerigla}
+\setinterfacecommand{placesidebyside}{punefatainfata}
+\setinterfacecommand{placesubformula}{punesubformula}
+\setinterfacecommand{placetextvariable}{punevariabilatext}
+\setinterfacecommand{position}{pozitie}
+\setinterfacecommand{positiontext}{pozitietext}
+\setinterfacecommand{printpaperheight}{inaltimehartieimprimanta}
+\setinterfacecommand{printpaperwidth}{latimehartieimprimanta}
+\setinterfacecommand{processblocks}{proceseazabloc}
+\setinterfacecommand{processpage}{proceseazapagina}
+\setinterfacecommand{product}{produs}
+\setinterfacecommand{program}{program}
+\setinterfacecommand{project}{proiect}
+\setinterfacecommand{publication}{publicatie}
+\setinterfacecommand{quotation}{citat}
+\setinterfacecommand{quote}{minicitat}
+\setinterfacecommand{ran}{ran}
+\setinterfacecommand{redo}{refa}
+\setinterfacecommand{ref}{ref}
+\setinterfacecommand{reference}{referinta}
+\setinterfacecommand{referral}{referit}
+\setinterfacecommand{referraldate}{datareferit}
+\setinterfacecommand{referring}{referring}
+\setinterfacecommand{remark}{remarca}
+\setinterfacecommand{reset}{reset}
+\setinterfacecommand{resetmarking}{reseteazamarcaje}
+\setinterfacecommand{resetnumber}{resetnumber}
+\setinterfacecommand{resettext}{resettextcontent}
+\setinterfacecommand{rightaligned}{aliniatdreapta}
+\setinterfacecommand{rightedgedistance}{distantacoltdreapta}
+\setinterfacecommand{rightedgewidth}{latimecoltdreapta}
+\setinterfacecommand{rightmargindistance}{distantamarginedreapta}
+\setinterfacecommand{rightmarginwidth}{latimemarginedreapta}
+\setinterfacecommand{romannumerals}{numereromane}
+\setinterfacecommand{rotate}{roteste}
+\setinterfacecommand{scale}{scala}
+\setinterfacecommand{screen}{ecran}
+\setinterfacecommand{selectblocks}{selecteazablocuri}
+\setinterfacecommand{selectpaper}{selecteazahartie}
+\setinterfacecommand{selectversion}{selecteazaversiune}
+\setinterfacecommand{setnumber}{setnumber}
+\setinterfacecommand{settextcontent}{settextcontent}
+\setinterfacecommand{settextvariable}{setvariabilatext}
+\setinterfacecommand{setupalign}{seteazaalinierea}
+\setinterfacecommand{setupanswerarea}{setupanswerarea}
+\setinterfacecommand{setuparranging}{seteazaaranjareapag}
+\setinterfacecommand{setupbackground}{seteazafundal}
+\setinterfacecommand{setupbackgrounds}{seteazafundaluri}
+\setinterfacecommand{setupblackrules}{seteazaliniinegre}
+\setinterfacecommand{setupblank}{seteazablanc}
+\setinterfacecommand{setupblock}{seteazabloc}
+\setinterfacecommand{setupbodyfont}{seteazafonttext}
+\setinterfacecommand{setupbodyfontenvironment}{seteazamediulfonttext}
+\setinterfacecommand{setupbottom}{seteazajos}
+\setinterfacecommand{setupbottomtexts}{seteazatextejos}
+\setinterfacecommand{setupbuffer}{seteazabuffer}
+\setinterfacecommand{setupbuttons}{seteazabutoane}
+\setinterfacecommand{setupcapitals}{seteazamajuscule}
+\setinterfacecommand{setupcaption}{seteazalegenda}
+\setinterfacecommand{setupcaptions}{seteazalegendele}
+\setinterfacecommand{setupclipping}{seteazaclipping}
+\setinterfacecommand{setupcolor}{seteazaculoare}
+\setinterfacecommand{setupcolors}{seteazaculori}
+\setinterfacecommand{setupcolumns}{seteazacoloane}
+\setinterfacecommand{setupcolumnset}{setupcolumnset}
+\setinterfacecommand{setupcolumnsetlines}{setupcolumnsetlines}
+\setinterfacecommand{setupcolumnsetstart}{setupcolumnsetstart}
+\setinterfacecommand{setupcombinations}{seteazacombinari}
+\setinterfacecommand{setupcombinedlist}{seteazalistacombinata}
+\setinterfacecommand{setupcomment}{seteazacomentariu}
+\setinterfacecommand{setupdescriptions}{seteazadescriere}
+\setinterfacecommand{setupenumerations}{seteazaenumerare}
+\setinterfacecommand{setupexternalfigures}{seteazafiguriexterne}
+\setinterfacecommand{setupfield}{seteazacamp}
+\setinterfacecommand{setupfields}{seteazacampuri}
+\setinterfacecommand{setupfillinlines}{seteazaliniiumplere}
+\setinterfacecommand{setupfillinrules}{seteazarigleumplere}
+\setinterfacecommand{setupfloat}{seteazafloat}
+\setinterfacecommand{setupfloats}{seteazafloats}
+\setinterfacecommand{setupfloatsplitting}{seteazaimpartireafloat}
+\setinterfacecommand{setupfooter}{seteazasubsol}
+\setinterfacecommand{setupfootertexts}{seteazatextesubsol}
+\setinterfacecommand{setupfootnotedefinition}{seteazadefinireanotasubsol}
+\setinterfacecommand{setupfootnotes}{seteazanotasubsol}
+\setinterfacecommand{setupforms}{seteazaformulare}
+\setinterfacecommand{setupformulas}{seteazaformule}
+\setinterfacecommand{setupframed}{seteazainconjurat}
+\setinterfacecommand{setupframedtexts}{definestetexteinconjurate}
+\setinterfacecommand{setuphead}{seteazatitlu}
+\setinterfacecommand{setupheader}{seteazaantet}
+\setinterfacecommand{setupheadertexts}{seteazatexteantet}
+\setinterfacecommand{setupheadnumber}{seteazanumartitlu}
+\setinterfacecommand{setupheads}{seteazatitluri}
+\setinterfacecommand{setupheadtext}{seteazatexttitlu}
+\setinterfacecommand{setuphyphenmark}{seteazaliniesilabe}
+\setinterfacecommand{setupindentations}{seteazaaliniate}
+\setinterfacecommand{setupindenting}{seteazaaliniat}
+\setinterfacecommand{setupinmargin}{seteazamarginal}
+\setinterfacecommand{setupinteraction}{seteazainteractiunea}
+\setinterfacecommand{setupinteractionbar}{seteazabarainteractiune}
+\setinterfacecommand{setupinteractionmenu}{seteazameniuinteractiune}
+\setinterfacecommand{setupinteractionscreen}{seteazaecraninteractiune}
+\setinterfacecommand{setupinterlinespace}{seteazaspatiuinterliniar}
+\setinterfacecommand{setupitemgroup}{setupitemgroup}
+\setinterfacecommand{setupitemgroups}{setareitemization}
+\setinterfacecommand{setupitems}{seteazaelemente}
+\setinterfacecommand{setuplabeltext}{seteazatexteticheta}
+\setinterfacecommand{setuplanguage}{setarelimba}
+\setinterfacecommand{setuplayout}{seteazaaspect}
+\setinterfacecommand{setuplegend}{seteazalegenda}
+\setinterfacecommand{setuplinenumbering}{seteazanumerotarelinii}
+\setinterfacecommand{setuplines}{seteazalinii}
+\setinterfacecommand{setuplinewidth}{seteazagrosimelinie}
+\setinterfacecommand{setuplist}{seteazalista}
+\setinterfacecommand{setupmakeup}{seteazamakeup}
+\setinterfacecommand{setupmarginblocks}{seteazablocurimarginale}
+\setinterfacecommand{setupmarginrules}{seteazaliniimargine}
+\setinterfacecommand{setupmarking}{seteazamarcaje}
+\setinterfacecommand{setupmathalignment}{setupmathalignment}
+\setinterfacecommand{setupnarrower}{seteazaingust}
+\setinterfacecommand{setupnumber}{setupnumber}
+\setinterfacecommand{setupnumbering}{seteazanumerotare}
+\setinterfacecommand{setupoppositeplacing}{seteazaplasareaopozita}
+\setinterfacecommand{setupoutput}{setareoutput}
+\setinterfacecommand{setuppagecomment}{seteazacomentariupagina}
+\setinterfacecommand{setuppagenumber}{seteazanumarpagina}
+\setinterfacecommand{setuppagenumbering}{seteazanumerotarepagina}
+\setinterfacecommand{setuppagetransitions}{seteazatranzitiepagina}
+\setinterfacecommand{setuppalet}{seteazapaleta}
+\setinterfacecommand{setuppaper}{setuppaper}
+\setinterfacecommand{setuppapersize}{seteazadimensiunihartie}
+\setinterfacecommand{setupparagraphnumbering}{seteazanumerotareparagrafe}
+\setinterfacecommand{setupparagraphs}{seteazaparagrafe}
+\setinterfacecommand{setupplacement}{setupplacement}
+\setinterfacecommand{setuppositioning}{setarepozitie}
+\setinterfacecommand{setupprofiles}{seteazaprofile}
+\setinterfacecommand{setupprograms}{seteazaprograme}
+\setinterfacecommand{setuppublications}{seteazapublicatii}
+\setinterfacecommand{setupquote}{seteazaminicitat}
+\setinterfacecommand{setupreferencelist}{seteazalistareferinte}
+\setinterfacecommand{setupreferencing}{seteazareferinte}
+\setinterfacecommand{setupregister}{seteazaregistru}
+\setinterfacecommand{setuprotate}{seteazarotare}
+\setinterfacecommand{setuprule}{seteazarigla}
+\setinterfacecommand{setups}{setari}
+\setinterfacecommand{setupscreens}{seteazaecrane}
+\setinterfacecommand{setupsection}{seteazasectiune}
+\setinterfacecommand{setupsectionblock}{seteazablocsectiune}
+\setinterfacecommand{setupsorting}{seteazasortare}
+\setinterfacecommand{setupspacing}{seteazaspatiu}
+\setinterfacecommand{setupstartstop}{setupstartstop}
+\setinterfacecommand{setupstrut}{seteazastrut}
+\setinterfacecommand{setupsubpagenumber}{seteazanumarsubpagina}
+\setinterfacecommand{setupsymbolset}{seteazasimbol}
+\setinterfacecommand{setupsynchronization}{setaresincronizare}
+\setinterfacecommand{setupsynchronizationbar}{setarebarasincronizare}
+\setinterfacecommand{setupsynonyms}{seteazasinonime}
+\setinterfacecommand{setupsystem}{seteazasistem}
+\setinterfacecommand{setuptab}{seteazatab}
+\setinterfacecommand{setuptables}{seteazatabele}
+\setinterfacecommand{setuptabulate}{seteazatabulatori}
+\setinterfacecommand{setuptext}{seteazatext}
+\setinterfacecommand{setuptextposition}{seteazapozitietext}
+\setinterfacecommand{setuptextrules}{seteazarigletext}
+\setinterfacecommand{setuptexttexts}{seteazatextetext}
+\setinterfacecommand{setuptextvariable}{seteazavariabilatext}
+\setinterfacecommand{setupthinrules}{seteazaliniesubtire}
+\setinterfacecommand{setuptolerance}{seteazatoleranta}
+\setinterfacecommand{setuptop}{seteazasus}
+\setinterfacecommand{setuptoptexts}{seteazatextesus}
+\setinterfacecommand{setuptype}{seteazatype}
+\setinterfacecommand{setuptyping}{seteazatyping}
+\setinterfacecommand{setupunderbar}{seteazasublinie}
+\setinterfacecommand{setupurl}{seteazaurl}
+\setinterfacecommand{setupversions}{seteazaversiuni}
+\setinterfacecommand{setupwhitespace}{seteazaspatiualb}
+\setinterfacecommand{showbodyfont}{afiseazafonttext}
+\setinterfacecommand{showbodyfontenvironment}{afiseazamediufonttext}
+\setinterfacecommand{showcolor}{afiseazaculoare}
+\setinterfacecommand{showcolorgroup}{afiseazagrupculoare}
+\setinterfacecommand{showexternalfigures}{afiseazafiguriexterne}
+\setinterfacecommand{showfields}{afiseazacampuri}
+\setinterfacecommand{showframe}{afiseazarama}
+\setinterfacecommand{showgrid}{afiseazagrid}
+\setinterfacecommand{showlayout}{afiseazaaspect}
+\setinterfacecommand{showmakeup}{afiseazamakeup}
+\setinterfacecommand{showpalet}{afiseazapaleta}
+\setinterfacecommand{showprint}{afiseazatiparire}
+\setinterfacecommand{showsetups}{afiseazasetari}
+\setinterfacecommand{showstruts}{afiseazastruts}
+\setinterfacecommand{showsymbolset}{afiseazasetsimboluri}
+\setinterfacecommand{smallcapped}{kap}
+\setinterfacecommand{someline}{olinie}
+\setinterfacecommand{somewhere}{undeva}
+\setinterfacecommand{space}{spatiu}
+\setinterfacecommand{splitfloat}{impartefloat}
+\setinterfacecommand{startalignment}{startaliniere}
+\setinterfacecommand{startbackground}{startfundal}
+\setinterfacecommand{startcoding}{startcodificare}
+\setinterfacecommand{startcolor}{startculoare}
+\setinterfacecommand{startcolumnmakeup}{startcolumnmakeup}
+\setinterfacecommand{startcolumns}{startcoloane}
+\setinterfacecommand{startcolumnset}{startcolumnset}
+\setinterfacecommand{startcombination}{startcombinare}
+\setinterfacecommand{startcomponent}{startcomponenta}
+\setinterfacecommand{startdocument}{startdocument}
+\setinterfacecommand{startenvironment}{startmediu}
+\setinterfacecommand{startfigure}{startfigura}
+\setinterfacecommand{startglobal}{startglobal}
+\setinterfacecommand{startline}{startlinie}
+\setinterfacecommand{startlinecorrection}{startcorectielinie}
+\setinterfacecommand{startlinenumbering}{startnumerotarelinii}
+\setinterfacecommand{startlines}{startlinii}
+\setinterfacecommand{startlocal}{startlocal}
+\setinterfacecommand{startlocalfootnotes}{startnotesubsollocale}
+\setinterfacecommand{startmakeup}{startmakeup}
+\setinterfacecommand{startmarginblock}{startblocmarginal}
+\setinterfacecommand{startmarginrule}{startliniemargine}
+\setinterfacecommand{startnarrower}{startingust}
+\setinterfacecommand{startopposite}{startopozit}
+\setinterfacecommand{startoverlay}{startoverlay}
+\setinterfacecommand{startoverzicht}{startoverview}
+\setinterfacecommand{startpacked}{startimpachetat}
+\setinterfacecommand{startpositioning}{startpozitionare}
+\setinterfacecommand{startproduct}{startprodus}
+\setinterfacecommand{startprofile}{startprofil}
+\setinterfacecommand{startproject}{startproiect}
+\setinterfacecommand{startquotation}{startcitat}
+\setinterfacecommand{startraster}{startraster}
+\setinterfacecommand{startsymbolset}{startsetsimboluri}
+\setinterfacecommand{startsynchronization}{startsincronizare}
+\setinterfacecommand{starttable}{starttabel}
+\setinterfacecommand{starttables}{starttabele}
+\setinterfacecommand{starttext}{starttext}
+\setinterfacecommand{starttextrule}{startriglatext}
+\setinterfacecommand{startunpacked}{startneimpachetat}
+\setinterfacecommand{startversion}{startversiune}
+\setinterfacecommand{stopalignment}{stopaliniere}
+\setinterfacecommand{stopbackground}{stopfundal}
+\setinterfacecommand{stopcoding}{stopcodificare}
+\setinterfacecommand{stopcolor}{stopculoare}
+\setinterfacecommand{stopcolumnmakeup}{stopcolumnmakeup}
+\setinterfacecommand{stopcolumns}{stopcoloane}
+\setinterfacecommand{stopcolumnset}{stopcolumnset}
+\setinterfacecommand{stopcombination}{stopcombinare}
+\setinterfacecommand{stopcomponent}{stopcomponenta}
+\setinterfacecommand{stopdocument}{stopdocument}
+\setinterfacecommand{stopenvironment}{stopmediu}
+\setinterfacecommand{stopglobal}{stopblobal}
+\setinterfacecommand{stopline}{stoplinie}
+\setinterfacecommand{stoplinecorrection}{stopcorectielinie}
+\setinterfacecommand{stoplinenumbering}{stopnumerotarelinii}
+\setinterfacecommand{stoplines}{stoplinii}
+\setinterfacecommand{stoplocal}{stoplocal}
+\setinterfacecommand{stoplocalfootnotes}{stopnotesubsollocale}
+\setinterfacecommand{stopmakeup}{stopmakeup}
+\setinterfacecommand{stopmarginblock}{stopblocmarginal}
+\setinterfacecommand{stopmarginrule}{stopliniemargine}
+\setinterfacecommand{stopnarrower}{stopingust}
+\setinterfacecommand{stopopposite}{stopopozit}
+\setinterfacecommand{stopoverlay}{stopoverlay}
+\setinterfacecommand{stopoverzicht}{stopoverview}
+\setinterfacecommand{stoppacked}{stopimpachetat}
+\setinterfacecommand{stoppositioning}{stoppozitionare}
+\setinterfacecommand{stopproduct}{stopprodus}
+\setinterfacecommand{stopprofile}{stopprofil}
+\setinterfacecommand{stopproject}{stopproiect}
+\setinterfacecommand{stopquotation}{stopcitat}
+\setinterfacecommand{stopraster}{stopraster}
+\setinterfacecommand{stopsynchronization}{stopsincronizare}
+\setinterfacecommand{stoptable}{stoptabel}
+\setinterfacecommand{stoptables}{stoptabele}
+\setinterfacecommand{stoptext}{stoptext}
+\setinterfacecommand{stoptextrule}{stopriglatext}
+\setinterfacecommand{stopunpacked}{stopneimpachetat}
+\setinterfacecommand{stopversion}{stopversiune}
+\setinterfacecommand{stretched}{intins}
+\setinterfacecommand{subformulanumber}{numarsubformula}
+\setinterfacecommand{subpagenumber}{subpagenumber}
+\setinterfacecommand{switchtobodyfont}{trecilafonttext}
+\setinterfacecommand{switchtorawfont}{trecilafontraw}
+\setinterfacecommand{sym}{sim}
+\setinterfacecommand{symbol}{simbol}
+\setinterfacecommand{synchronizationbar}{barasincronizare}
+\setinterfacecommand{synchronize}{sincronizeaza}
+\setinterfacecommand{tab}{tab}
+\setinterfacecommand{testcolumn}{testcolumn}
+\setinterfacecommand{testpage}{testpage}
+\setinterfacecommand{tex}{tex}
+\setinterfacecommand{textheight}{inaltimetext}
+\setinterfacecommand{textreference}{referintatext}
+\setinterfacecommand{textrule}{riglatext}
+\setinterfacecommand{textvariable}{variabilatext}
+\setinterfacecommand{textwidth}{latimetext}
+\setinterfacecommand{thinrule}{liniesubtire}
+\setinterfacecommand{thinrules}{liniisubtiri}
+\setinterfacecommand{tooltip}{tooltip}
+\setinterfacecommand{topdistance}{distantasus}
+\setinterfacecommand{topheight}{inaltimesus}
+\setinterfacecommand{topspace}{spatiusus}
+\setinterfacecommand{totalnumberofpages}{numartotalpagini}
+\setinterfacecommand{translate}{traduce}
+\setinterfacecommand{txt}{txt}
+\setinterfacecommand{typ}{typ}
+\setinterfacecommand{type}{type}
+\setinterfacecommand{typebuffer}{scriebuffer}
+\setinterfacecommand{typefile}{typefile}
+\setinterfacecommand{underbar}{sublinie}
+\setinterfacecommand{underbars}{sublinii}
+\setinterfacecommand{unitmeaning}{numeunitate}
+\setinterfacecommand{unknown}{necunoscut}
+\setinterfacecommand{useJSscripts}{folosestescriptJS}
+\setinterfacecommand{useURL}{folosesteURL}
+\setinterfacecommand{useXMLfilter}{useXMLfilter}
+\setinterfacecommand{useblocks}{folosestebloc}
+\setinterfacecommand{usecommands}{folosestecomenzi}
+\setinterfacecommand{useencoding}{folosestecodificarea}
+\setinterfacecommand{useexternaldocument}{folosestedocumentextern}
+\setinterfacecommand{useexternalfigure}{folosestefiguraexterna}
+\setinterfacecommand{useexternalfile}{folosestefisierextern}
+\setinterfacecommand{useexternalfiles}{folosestefisiereexterne}
+\setinterfacecommand{useexternalsoundtrack}{folosestemuzicaexterna}
+\setinterfacecommand{usemodule}{folosestemodul}
+\setinterfacecommand{usemodules}{folosestemodule}
+\setinterfacecommand{usepath}{folosestedirector}
+\setinterfacecommand{usereferences}{folosestereferinte}
+\setinterfacecommand{usespecials}{folosestespeciale}
+\setinterfacecommand{usesymbols}{folosestesimboluri}
+\setinterfacecommand{usetypescript}{usetypescript}
+\setinterfacecommand{usetypescriptfile}{usetypescriptfile}
+\setinterfacecommand{useurl}{folosesteurl}
+\setinterfacecommand{version}{versiune}
+\setinterfacecommand{vl}{vl}
+\setinterfacecommand{weekday}{zidinsaptamana}
+\setinterfacecommand{whitespace}{spatiualb}
+\setinterfacecommand{wordright}{cuvantdreapta}
+\setinterfacecommand{writebetweenlist}{scrieintreliste}
+\setinterfacecommand{writetolist}{scrieinlista}
+\setinterfacecommand{writetoreferencelist}{scrieinlistareferinte}
+\setinterfacecommand{writetoregister}{scrieinregistru}
+%
+\endinput \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/base/mult-sys.tex b/Master/texmf-dist/tex/context/base/mult-sys.tex
index 2b17c959026..2fd74251c74 100644
--- a/Master/texmf-dist/tex/context/base/mult-sys.tex
+++ b/Master/texmf-dist/tex/context/base/mult-sys.tex
@@ -15,7 +15,7 @@
%D system constants. By doing so we save lots of memory while
%D at the same time we prevent ourself from typing errors.
-\writestatus{loading}{Context Multilingual Macros / System}
+\writestatus{loading}{ConTeXt Multilingual Macros / System}
\unprotect
@@ -36,10 +36,11 @@
%D multi||lingual interface and multi||linguag typesetting.
\definesystemconstant {afrikaans} \definesystemconstant {af}
+\definesystemconstant {arabic} \definesystemconstant {ar}
\definesystemconstant {catalan} \definesystemconstant {ca}
\definesystemconstant {chinese} \definesystemconstant {cn}
-\definesystemconstant {croation} \definesystemconstant {hr}
-\definesystemconstant {czech} \definesystemconstant {cz}
+\definesystemconstant {croatian} \definesystemconstant {hr}
+\definesystemconstant {czech} \definesystemconstant {cs} \definesystemconstant {cz}
\definesystemconstant {danish} \definesystemconstant {da}
\definesystemconstant {dutch} \definesystemconstant {nl}
\definesystemconstant {english} \definesystemconstant {en}
@@ -49,8 +50,10 @@
\definesystemconstant {hungarian} \definesystemconstant {hu}
\definesystemconstant {italian} \definesystemconstant {it}
\definesystemconstant {latin} \definesystemconstant {la}
-\definesystemconstant {norwegian} \definesystemconstant {no}
+\definesystemconstant {bokmal} \definesystemconstant {nb} \definesystemconstant {norwegian} \definesystemconstant {no}
+\definesystemconstant {nynorsk} \definesystemconstant {nn}
\definesystemconstant {polish} \definesystemconstant {pl}
+\definesystemconstant {persian} \definesystemconstant {pe}
\definesystemconstant {portuguese} \definesystemconstant {pt}
\definesystemconstant {romanian} \definesystemconstant {ro}
\definesystemconstant {russian} \definesystemconstant {ru}
@@ -60,12 +63,12 @@
\definesystemconstant {spanish} \definesystemconstant {es}
\definesystemconstant {swedish} \definesystemconstant {sv}
\definesystemconstant {turkish} \definesystemconstant {tr}
-\definesystemconstant {ukenglish} \definesystemconstant {uk}
-\definesystemconstant {ukrainian} \definesystemconstant {ua}
+\definesystemconstant {gbenglish} \definesystemconstant {gb} \definesystemconstant {ukenglish} \definesystemconstant {uk}
\definesystemconstant {usenglish} \definesystemconstant {us}
+\definesystemconstant {ukrainian} \definesystemconstant {ua}
\definesystemconstant {greek} \definesystemconstant {gr}
\definesystemconstant {ancientgreek} \definesystemconstant {agr}
-\definesystemconstant {vietnamese} \definesystemconstant {vn}
+\definesystemconstant {vietnamese} \definesystemconstant {vi} \definesystemconstant {vn}
%D For proper \UNICODE\ support we need a few font related
%D constants.
@@ -96,6 +99,7 @@
\definemessageconstant {encodings}
\definemessageconstant {regimes}
\definemessageconstant {figures}
+\definemessageconstant {fields}
\definemessageconstant {files}
\definemessageconstant {floatblocks}
\definemessageconstant {fonts}
@@ -113,10 +117,16 @@
\definemessageconstant {textblocks}
\definemessageconstant {verbatims}
\definemessageconstant {versions}
+\definemessageconstant {metapost}
+\definemessageconstant {chemicals}
%D Net come some \CONTEXT\ constants, used in the definition
%D of private commands:
+\definesystemconstant {tex}
+\definesystemconstant {xml}
+\definesystemconstant {lua}
+
\definesystemconstant {next}
\definesystemconstant {pickup}
\definesystemconstant {ascii}
@@ -136,7 +146,17 @@
\definesystemconstant {done}
\definesystemconstant {font}
\definesystemconstant {link}
+\definesystemconstant {parent}
+\definesystemconstant {clone}
\definesystemconstant {section} \let\v!sectionlevel\s!section % for old times sake
+\definesystemconstant {handler}
+\definesystemconstant {counter}
+\definesystemconstant {single}
+\definesystemconstant {multi}
+
+\definesystemconstant {hasnumber}
+\definesystemconstant {hastitle}
+\definesystemconstant {hascaption}
%D A more experienced \TEX\ user will recognize the next four
%D constants. We need these because font-definitions are
@@ -154,6 +174,7 @@
\definesystemconstant {skewchar}
\definesystemconstant {hyphenchar}
+\definesystemconstant {catcodes}
\definesystemconstant {encoding}
\definesystemconstant {resource}
\definesystemconstant {mapping}
@@ -162,6 +183,8 @@
\definesystemconstant {rscale}
\definesystemconstant {handling}
\definesystemconstant {features}
+\definesystemconstant {fallbacks}
+\definesystemconstant {background}
\definesystemconstant {ucmap}
\definesystemconstant {property}
@@ -175,6 +198,10 @@
\definesystemconstant {black}
\definesystemconstant {white}
+\definesystemconstant {format}
+\definesystemconstant {extensions}
+\definesystemconstant {initializations}
+
%D Just to be complete we define the standard \TEX\ units.
\definesystemconstant {cm}
@@ -201,8 +228,11 @@
\definesystemconstant {see}
\definesystemconstant {from}
\definesystemconstant {to}
-\definesystemconstant {page}
\definesystemconstant {line}
+\definesystemconstant {page}
+\definesystemconstant {realpage}
+\definesystemconstant {userpage}
+\definesystemconstant {subpage}
\definesystemconstant {synonym}
@@ -323,22 +353,11 @@
\def\!!twelvepoint {12pt}
\def\!!fourteenpointfour {14.4pt}
-\newdimen \onepoint \onepoint = 1pt
-\newdimen \onebasepoint \onebasepoint = 1bp
-\chardef \scaledpoint = 1
-
\let\onerealpoint\onepoint % needed for latex
-\newcount\medcard \medcard\!!medcard % used in font module
-\newcount\maxcard \maxcard\!!maxcard % used in font module
-
-\ifx\thousandpoint\undefined \newdimen\thousandpoint \fi
-
-\thousandpoint=1000pt
-
-%D Another optimization is:
-
-\let\points\onepoint
+% D Another optimization is:
+%
+% \let\points\onepoint
%D A rough test is:
%D
@@ -366,11 +385,13 @@
% vervallen : hd hr hm vt vr vm tr tn te br bm bo on om or
\definesystemvariable {ab} % AlignedBoxes
+\definesystemvariable {ac} % ACcent
\definesystemvariable {ag} % AchterGrond
\definesystemvariable {al} % ALinea's
\definesystemvariable {am} % interActieMenu
\definesystemvariable {an} % ANchor
\definesystemvariable {as} % AlignmentSwitch
+\definesystemvariable {at} % ATtachments
\definesystemvariable {ba} % synchronisatieBAlk
\definesystemvariable {be} % startstop (BeginEnd)
\definesystemvariable {bj} % BlokJe
@@ -393,6 +414,7 @@
\definesystemvariable {ck} % Character Kerning
\definesystemvariable {cl} % kleur (CoLor setup)
\definesystemvariable {cn} % CollumN
+\definesystemvariable {cm} % CheMical
\definesystemvariable {co} % COmbinaties
\definesystemvariable {cp} % CliP
\definesystemvariable {cr} % kleur (ColoR)
@@ -400,9 +422,11 @@
\definesystemvariable {cv} % ConVersie
\definesystemvariable {cy} % CrYteria
\definesystemvariable {da} % DAte
+\definesystemvariable {db} % Labels
\definesystemvariable {dc} % DroppedCaps
\definesystemvariable {dd} % DoorDefinieren
\definesystemvariable {de} % DEel
+\definesystemvariable {di} % DIrections
\definesystemvariable {dl} % DunneLijnen
\definesystemvariable {dn} % DoorNummeren
\definesystemvariable {dm} % DefineMeasure
@@ -427,9 +451,11 @@
\definesystemvariable {fm} % ForMules
\definesystemvariable {fn} % subformulas
\definesystemvariable {fp} % FilegroeP
+\definesystemvariable {fq} % Features
\definesystemvariable {fr} % ForM
\definesystemvariable {fs} % FileSynonym
\definesystemvariable {ft} % FonTs
+\definesystemvariable {fu} % FontSolution
\definesystemvariable {fv} % FontVariant
\definesystemvariable {fx} % FoXet
\definesystemvariable {ha} % HAng
@@ -473,21 +499,28 @@
\definesystemvariable {ln} % LijNen
\definesystemvariable {lo} % LOgos
\definesystemvariable {lt} % LiTeratuur
+\definesystemvariable {ls} % languageScript
\definesystemvariable {ly} % LaYout
\definesystemvariable {ma} % MargeAchtergrond
\definesystemvariable {mb} % MargeBlokken
\definesystemvariable {md} % MoDule
\definesystemvariable {mg} % Metapost paGe
+\definesystemvariable {mh} % MultilingualHead
\definesystemvariable {mk} % MarKering
+\definesystemvariable {ml} % MultilingualLabel
\definesystemvariable {mt} % inline MaTh
\definesystemvariable {mo} % Math Options
-\definesystemvariable {nm} % Nummering
+\definesystemvariable {mp} % MetaPost
\definesystemvariable {mx} % MatriX
+\definesystemvariable {ng} % parbuilders
+\definesystemvariable {nh} % new heads (structure)
+\definesystemvariable {nm} % Nummering
\definesystemvariable {np} % NaastPlaatsen
\definesystemvariable {nr} % Nummeren
\definesystemvariable {of} % OFfset
\definesystemvariable {oi} % OmlijndInstellingen
\definesystemvariable {ol} % OmLijnd
+\definesystemvariable {od} % Omlijnd Defaults (simple)
\definesystemvariable {on} % ONderstreep
\definesystemvariable {oo} % OpsOmmingen
\definesystemvariable {op} % OPsomming
@@ -505,6 +538,7 @@
\definesystemvariable {ph} % ParagrapH
\definesystemvariable {pl} % PLaats
\definesystemvariable {pn} % PaginaNummer
+\definesystemvariable {po} % PrOcessor
\definesystemvariable {pp} % PaPier
\definesystemvariable {pr} % PRogrammas
\definesystemvariable {ps} % PoSitioneren
@@ -556,6 +590,7 @@
\definesystemvariable {tm} % TypesynonyM
\definesystemvariable {tp} % TyPen
\definesystemvariable {tx} % TeXtflow
+\definesystemvariable {tr} % TRacer
\definesystemvariable {ts} % TypeScript
\definesystemvariable {tt} % TabulaTe
\definesystemvariable {ty} % TYpe
@@ -569,6 +604,7 @@
\definesystemvariable {wr} % WitRuimte
\definesystemvariable {wl} % WordList
\definesystemvariable {xf} % XML File
+\definesystemvariable {xm} % xml (mkiv)
\definesystemvariable {xp} % XML Processing
\definesystemvariable {xy} % schaal
\definesystemvariable {za} % ZetspiegelAanpassing
@@ -657,7 +693,7 @@
\definefileconstant {filfilename} {cont-fil}
\definefileconstant {modfilename} {cont-mod}
-%D Handy for typescripts:
+%D Handy for typescripts (we could use s! instead:
\definetypescriptconstant {name} {name}
\definetypescriptconstant {default} {default}
@@ -692,6 +728,7 @@
\definefileconstant {propprefix} {prop-}
\definefileconstant {unicprefix} {unic-}
\definefileconstant {sortprefix} {sort-}
+\definefileconstant {prettyprefix} {pret-}
\definefileconstant {moduleprefix} {m-}
\definefileconstant {styleprefix} {s-}
@@ -767,71 +804,6 @@
\selectinterface
-%D And only after this selection is done, we can define
-%D messages, otherwise the default language is in use.
-
-% \ifinterfacetranslation \else % interfacetranslation is obsolete
-
-\startmessages dutch library: check
- title: controle
- 1: '=' ontbreekt of zonder {} na '--' in regel --
- 2: -- argument(en) verwacht in regel --
- 3: -- -- vervangt een macro, gebruik HOOFDLETTERS!
-\stopmessages
-
-\startmessages english library: check
- title: check
- 1: missing or ungrouped '=' after '--' in line --
- 2: -- argument(s) expected in line --
- 3: -- -- replaces a macro, use CAPITALS!
-\stopmessages
-
-% 1: to be adapted
-
-\startmessages german library: check
- title: check
- 1: Fehlendes '=' nach '--' in Zeile --
- 2: -- Argument(e) in Zeile -- erwartet
- 3: -- -- ersetzt ein Makro, verwende VERSALIEN!
-\stopmessages
-
-\startmessages czech library: check
- title: kontrola
- 1: postradam '=' po '--' na radku --
- 2: ocekavam -- argument(y) na radku --
- 3: -- -- nahrazuje makro, uzijte VERZALKY!
-\stopmessages
-
-\startmessages italian library: check
- title: controllo
- 1: '=' mancante o non raggruppato dopo '--' alla riga --
- 2: -- argomento/i attesi alla riga --
- 3: -- -- sostituisce una macro, usare le MAIUSCOLE!
-\stopmessages
-
-\startmessages norwegian library: check
- title: kontroll
- 1: manglende '=' etter '--' i linje --
- 2: -- argument forventet i linje --
- 3: -- -- overskygger en makro, bruk STORE BOKSTAVER!
-\stopmessages
-
-\startmessages romanian library: check
- title: verificari
- 1: lipseste '=' dupa '--' in linia --
- 2: argumentul(ele) -- sunt asteptate in linia --
- 3: -- -- inlocuieste un macro, folositi MAJUSCULE!
-\stopmessages
-
-\startmessages french library: check
- title: vérification
- 1: manquant ou dégroupé '=' après '--' à la ligne --
- 2: -- argument(s) attendu(s) à la ligne --
- 3: -- -- remplace une macro, utilisez des MAJUSCULES !
-\stopmessages
-
-% \fi
-
%D Ok, here are some more, because we've got ouselves some
%D extensions to \CONTEXT.
diff --git a/Master/texmf-dist/tex/context/base/node-bck.lua b/Master/texmf-dist/tex/context/base/node-bck.lua
new file mode 100644
index 00000000000..6a01294f84d
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/node-bck.lua
@@ -0,0 +1,116 @@
+if not modules then modules = { } end modules ['node-bck'] = {
+ version = 1.001,
+ comment = "companion to node-bck.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local hlist = node.id("hlist")
+local vlist = node.id("vlist")
+
+local has_attribute = node.has_attribute
+local set_attribute = node.set_attribute
+local traverse = node.traverse
+
+local new_rule = nodes.rule
+local new_glue = nodes.glue
+
+local a_color = attributes.private('color')
+local a_transparency = attributes.private('transparency')
+local a_colorspace = attributes.private('colormodel')
+local a_background = attributes.private('background')
+
+local function add_backgrounds(head) -- boxes, inline will be done too
+ local id = head.id
+ if id == vlist or id == hlist then
+ local current = head.list
+ while current do
+ local id = current.id
+ if id == hlist then -- and current.list
+ local background = has_attribute(current,a_background)
+ if background then
+ -- direct to hbox
+ -- colorspace is already set so we can omit that and stick to color
+ local mode = has_attribute(current,a_colorspace)
+ if mode then
+ local glue = new_glue(-current.width)
+ local rule = new_rule(current.width,current.height,current.depth)
+ local color = has_attribute(current,a_color)
+ local transparency = has_attribute(current,a_transparency)
+ set_attribute(rule,a_colorspace, mode)
+ if color then
+ set_attribute(rule,a_color, color)
+ end
+ if transparency then
+ set_attribute(rule,a_transparency,transparency)
+ end
+ rule.next = glue
+ glue.next = current.list
+ current.list = rule
+ end
+ else
+ -- temporary hack for aligments
+ local list, background, found = current.list, nil, nil
+ for l in traverse(list) do
+ background = has_attribute(l,a_background)
+ if background then
+ found = l
+ break
+ end
+ end
+ if background then
+ local mode = has_attribute(found,a_colorspace)
+ if mode then
+ local glue = new_glue(-current.width)
+ local rule = new_rule(current.width,current.height,current.depth)
+ local color = has_attribute(found,a_color)
+ local transparency = has_attribute(found,a_transparency)
+ set_attribute(rule,a_colorspace, mode)
+ if color then
+ set_attribute(rule,a_color, color)
+ end
+ if transparency then
+ set_attribute(rule,a_transparency,transparency)
+ end
+ rule.next = glue
+ glue.next = list
+ current.list = rule
+ end
+ else
+ add_backgrounds(current)
+ end
+ end
+ elseif id == vlist then -- and current.list
+ -- direct to vbox
+ local background = has_attribute(current,a_background)
+ if background then
+ local mode = has_attribute(current,a_colorspace)
+ if mode then
+ local glue = new_glue(-current.height-current.depth)
+ local rule = new_rule(current.width,current.height,current.depth)
+ local color = has_attribute(current,a_color)
+ local transparency = has_attribute(current,a_transparency)
+ set_attribute(rule,a_colorspace, mode)
+ if color then
+ set_attribute(rule,a_color, color)
+ end
+ if transparency then
+ set_attribute(rule,a_transparency,transparency)
+ end
+ rule.next = glue
+ glue.next = current.list
+ current.list = rule
+ end
+ end
+ add_backgrounds(current)
+ end
+ current = current.next
+ end
+ end
+ return head, true
+end
+
+nodes.add_backgrounds = add_backgrounds
+
+tasks.appendaction("shipouts","normalizers","nodes.add_backgrounds")
diff --git a/Master/texmf-dist/tex/context/base/node-bck.mkiv b/Master/texmf-dist/tex/context/base/node-bck.mkiv
new file mode 100644
index 00000000000..758e598e836
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/node-bck.mkiv
@@ -0,0 +1,163 @@
+%D \module
+%D [ file=node-bck,
+%D version=2009.06.08,
+%D title=\CONTEXT\ Node Macros,
+%D subtitle=Backgrounds,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Node Support / Backgrounds}
+
+%D This is first attempt to replacing backgrounds in a few
+%D tables mechanisms.
+
+\unprotect
+
+\registerctxluafile{node-bck}{1.001}
+
+%D Box helpers:
+
+\def\doaddbackgroundtobox#1[#2]%
+ {\begingroup\faststartcolor[#2]%
+ \normalexpanded{\noexpand\faststopcolor\endgroup#1
+ attr \backgroundattribute \plusone
+ attr \colormodelattribute \the\attribute\colormodelattribute
+ attr \colorattribute \the\attribute\colorattribute
+ attr \transparencyattribute \the\attribute\transparencyattribute}}
+
+\def\backgroundvbox{\doaddbackgroundtobox\vbox}
+\def\backgroundvtop{\doaddbackgroundtobox\vtop}
+\def\backgroundhbox{\doaddbackgroundtobox\hbox}
+
+\def\colorattr#1%
+ {\ifcsname(cs:\currentpalet#1)\endcsname
+ \thecolorattr{\currentpalet#1}%
+ \else\ifcsname(cs:#1)\endcsname
+ \thecolorattr{#1}%
+ \fi\fi}
+
+\def\thecolorattr#1%
+ {attr \colormodelattribute \attribute\colormodelattribute
+ attr \colorattribute \csname(cs:#1)\endcsname
+ attr \transparencyattribute \csname(ts:#1)\endcsname}
+
+\def\backgroundcolorattr#1%
+ {\ifcsname(cs:\currentpalet#1)\endcsname
+ \thebackgroundcolorattr{\currentpalet#1}%
+ \else\ifcsname(cs:#1)\endcsname
+ \thebackgroundcolorattr{#1}%
+ \fi\fi}
+
+\def\thebackgroundcolorattr#1%
+ {attr \backgroundattribute \plusone
+ attr \colormodelattribute \attribute\colormodelattribute
+ attr \colorattribute \csname(cs:#1)\endcsname
+ attr \transparencyattribute \csname(ts:#1)\endcsname}
+
+% \def\backgroundvbox[#1]{\vbox \backgroundcolorattr{#1}}
+% \def\backgroundvtop[#1]{\vtop \backgroundcolorattr{#1}}
+% \def\backgroundhbox[#1]{\hbox \backgroundcolorattr{#1}}
+
+%D tabulate:
+
+\def\tabulatenormalcolumn#1%
+ {\doiffastoptionalcheckelse{\tabulatenormalcolumnyes#1}{\tabulatenormalcolumnnop#1}}
+
+\def\tabulatenormalcolumnnop#1% overloads anch-pgr
+ {&\iftabulateequal\tabulateequalpos\else\tabulatenormalpos\fi&\global\chardef\tabulatetype#1&}
+
+\def\tabulatenormalcolumnyes#1[#2]%
+ {&\iftabulateequal\tabulateequalpos\else\tabulatenormalpos\fi&\global\chardef\tabulatetype#1&%
+ \iftrialtypesetting\else\settabulatecolor{#2}\fi\ignorespaces}
+
+\newcount\maxtabularcolorcolumn
+
+\def\settabulatecolor#1% we could store the attributes at the cost of a lua call
+ {\begingroup
+ \global\settrue\tabulatehascolors
+ \ifnum\tabulatecolumn>\maxtabularcolorcolumn
+ \global\maxtabularcolorcolumn\tabulatecolumn
+ \fi
+ \setxvalue{\??tt:c:\the\tabulatecolumn}{#1}%
+ \dosetattribute{background}\plusone
+ \faststartcolor[#1]\strut\char0\faststopcolor
+ \endgroup}
+
+\def\repeatsettabulatecolor
+ {\begingroup
+ \ifcsname\??tt:c:\the\tabulatecolumn\endcsname
+ \dosetattribute{background}\plusone
+ \faststartcolor[\csname\??tt:c:\the\tabulatecolumn\endcsname]\strut\char0\faststopcolor
+ \fi
+ \endgroup}
+
+\def\resettabulatecolors
+ {\ifcase\maxtabularcolorcolumn\else
+ \doresettabulatecolors
+ \fi}
+
+\def\doresettabulatecolors
+ {\dorecurse\maxtabularcolorcolumn{\letgvalue{\??tt:c:\recurselevel}\undefined}} % slow
+
+\appendtoks
+ \resettabulatecolors
+\to \everyaftertabulaterow
+
+\def\splitofftabulatebox % overloads in anch-pgr
+ {\dontcomplain
+ \global\setbox\tabulatebox % % % global ? % % %
+ \vsplit\tablebox\tabulatecolumn to \lineheight
+ \setbox\tabulatebox\normalvbox
+ {\unvbox\tabulatebox}%
+ \setbox\tabulatebox\hbox to \wd\tabulatebox
+ {\iftrialtypesetting\else\ifconditional\tabulatehascolors\repeatsettabulatecolor\fi\fi
+ \hss\dotabulatehook{\box\tabulatebox}\hss}%
+ \ht\tabulatebox\strutht
+ \dp\tabulatebox\strutdp
+ \box\tabulatebox
+ \iftrialtypesetting\else\ifconditional\tablehaspositions\doflushtabulateepos\fi\fi}
+
+\appendtoks
+ \global\setfalse\tabulatehascolors
+\to \everytabulate
+
+\protect \endinput
+
+% test
+
+\starttext
+
+\backgroundvbox[green] {\input tufte } \par
+\backgroundvbox[blue] {\input ward } \par
+\backgroundvbox[red] {\input knuth } \par
+\backgroundhbox[yellow]{\rotate[rotation=45]{hello world}} \par
+
+\starttabulate[||p||]
+\NC test \NC test \NC test \NC \NR
+\NC test \NC[green] \input tufte \NC[yellow] test \NC \NR
+\NC test \NC test \NC test \NC \NR
+\NC test \NC test \NC test \NC \NR
+\NC test \NC test \NC test \NC \NR
+\NC test \NC test \NC test \NC \NR
+\NC[blue] test \NC[red] test \NC test \NC \NR
+\NC test \NC test \NC test \NC \NR
+\NC test \NC test \NC test \NC \NR
+\NC test \NC test \NC test \NC \NR
+\NC test \NC test \NC[gray] test \NC \NR
+\NC test \NC test \NC test \NC \NR
+\NC test \NC test \NC test \NC \NR
+\NC[blue] test \NC test \NC test \NC \NR
+\NC test \NC test \NC test \NC \NR
+\NC test \NC test \NC[magenta] test \NC \NR
+\NC test \NC test \NC test \NC \NR
+\NC test \NC[cyan] \dorecurse{10}{\input ward }\NC test \NC \NR
+\NC test \NC test \NC test \NC \NR
+\NC test \NC[yellow] test \NC test \NC \NR
+\stoptabulate
+
+\stoptext
diff --git a/Master/texmf-dist/tex/context/base/node-dum.lua b/Master/texmf-dist/tex/context/base/node-dum.lua
new file mode 100644
index 00000000000..f39a0873f70
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/node-dum.lua
@@ -0,0 +1,19 @@
+if not modules then modules = { } end modules ['node-dum'] = {
+ version = 1.001,
+ comment = "companion to luatex-*.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+nodes = nodes or { }
+
+function nodes.simple_font_handler(head)
+-- lang.hyphenate(head)
+ head = nodes.process_characters(head)
+ nodes.inject_kerns(head)
+ nodes.protect_glyphs(head)
+ head = node.ligaturing(head)
+ head = node.kerning(head)
+ return head
+end
diff --git a/Master/texmf-dist/tex/context/base/node-ext.lua b/Master/texmf-dist/tex/context/base/node-ext.lua
new file mode 100644
index 00000000000..b098829cd81
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/node-ext.lua
@@ -0,0 +1,30 @@
+if not modules then modules = { } end modules ['node-ext'] = {
+ version = 1.001,
+ comment = "companion to node-ini.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+--[[ldx--
+<p>Serializing nodes can be handy for tracing. Also, saving and
+loading node lists can come in handy as soon we are going to
+use external applications to process node lists.</p>
+--ldx]]--
+
+function nodes.show(stack)
+-- texio.write_nl(table.serialize(stack))
+end
+
+function nodes.save(stack,name) -- *.ltn : luatex node file
+-- if name then
+-- file.savedata(name,table.serialize(stack))
+-- else
+-- texio.write_nl('log',table.serialize(stack))
+-- end
+end
+
+function nodes.load(name)
+-- return file.loaddata(name)
+-- -- todo
+end
diff --git a/Master/texmf-dist/tex/context/base/node-fin.lua b/Master/texmf-dist/tex/context/base/node-fin.lua
new file mode 100644
index 00000000000..e83a354f24c
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/node-fin.lua
@@ -0,0 +1,444 @@
+if not modules then modules = { } end modules ['node-fin'] = {
+ version = 1.001,
+ comment = "companion to node-fin.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- this module is being reconstructed
+
+local next, type, format = next, type, string.format
+local texsprint = tex.sprint
+
+local ctxcatcodes = tex.ctxcatcodes
+
+local glyph = node.id('glyph')
+local glue = node.id('glue')
+local rule = node.id('rule')
+local whatsit = node.id('whatsit')
+local hlist = node.id('hlist')
+local vlist = node.id('vlist')
+
+local has_attribute = node.has_attribute
+local copy_node = node.copy
+
+local starttiming, stoptiming = statistics.starttiming, statistics.stoptiming
+
+states = states or { }
+shipouts = shipouts or { }
+
+local numbers = attributes.numbers
+local trigger = attributes.private('trigger')
+local triggering = false
+
+-- these two will be like trackers
+
+function states.enabletriggering()
+ triggering = true
+end
+function states.disabletriggering()
+ triggering = false
+end
+
+-- the following code is no longer needed due to the new backend
+-- but we keep it around for a while as an example
+--
+-- states.collected = states.collected or { }
+--
+-- storage.register("states/collected", states.collected, "states.collected")
+--
+-- local collected = states.collected
+--
+-- function states.collect(str)
+-- collected[#collected+1] = str
+-- end
+--
+-- function states.flush()
+-- if #collected > 0 then
+-- for i=1,#collected do
+-- texsprint(ctxcatcodes,collected[i]) -- we're in context mode anyway
+-- end
+-- collected = { }
+-- states.collected = collected
+-- end
+-- end
+--
+-- function states.check()
+-- texio.write_nl(concat(collected,"\n"))
+-- end
+
+-- we used to do the main processor loop here and call processor for each node
+-- but eventually this was too much a slow down (1 sec on 23 for 120 pages mk)
+-- so that we moved looping to the processor itself; this may lead to a bit of
+-- duplicate code once that we have more state handlers
+
+local function process_attribute(head,plugin) -- head,attribute,enabled,initializer,resolver,processor,finalizer
+ local namespace = plugin.namespace
+ if namespace.enabled then
+ starttiming(attributes)
+ local done, used, ok = false, nil, false
+ local attribute = namespace.attribute or numbers[plugin.name] -- todo: plugin.attribute
+ local processor = plugin.processor
+ if processor then
+ local initializer = plugin.initializer
+ local resolver = plugin.resolver
+ local inheritance = (resolver and resolver()) or nil -- -0x7FFFFFFF -- we can best use nil and skip !
+ if initializer then
+ initializer(namespace,attribute,head)
+ end
+ head, ok = processor(namespace,attribute,head,inheritance)
+ if ok then
+ local finalizer = plugin.finalizer
+ if finalizer then
+ head, ok, used = finalizer(namespace,attribute,head)
+ if used then
+ local flusher = plugin.flusher
+ if flusher then
+ head = flusher(namespace,attribute,head,used)
+ end
+ end
+ end
+ done = true
+ end
+ end
+ stoptiming(attributes)
+ return head, done
+ else
+ return head, false
+ end
+end
+
+nodes.process_attribute = process_attribute
+
+function nodes.install_attribute_handler(plugin) -- we need to avoid this nested function
+ return function(head)
+ return process_attribute(head,plugin)
+ end
+end
+
+--~ experiment (maybe local to function makes more sense)
+--~
+--~ plugindata = { }
+--~
+--~ local template = [[
+--~ local plugin = plugindata["%s"]
+--~ local starttiming, stoptiming = statistics.starttiming, statistics.stoptiming
+--~ local namespace = plugin.namespace
+--~ local attribute = namespace.attribute
+--~ local processor = plugin.processor
+--~ local initializer = plugin.initializer
+--~ local resolver = plugin.resolver
+--~ local finalizer = plugin.finalizer
+--~ local flusher = plugin.flusher
+--~ return function (head)
+--~ if namespace.enabled then
+--~ starttiming(attributes)
+--~ local done, used, ok = false, nil, false
+--~ if procesxsor then
+--~ local inheritance = (resolver and resolver()) or nil -- -0x7FFFFFFF -- we can best use nil and skip !
+--~ if initializer then
+--~ initializer(namespace,attribute,head)
+--~ end
+--~ head, ok = processor(namespace,attribute,head,inheritance)
+--~ if ok then
+--~ if finalizer then
+--~ head, ok, used = finalizer(namespace,attribute,head)
+--~ if used and flusher then
+--~ head = flusher(namespace,attribute,head,used)
+--~ end
+--~ end
+--~ done = true
+--~ end
+--~ end
+--~ stoptiming(attributes)
+--~ return head, done
+--~ else
+--~ return head, false
+--~ end
+--~ end
+--~ ]]
+--~
+--~ function nodes.install_attribute_handler(plugin) -- we need to avoid this nested function
+--~ plugindata[plugin.name] = plugin
+--~ local str = format(template,plugin.name)
+--~ return loadstring(str)()
+--~ end
+
+-- the injectors
+
+local insert_node_before = node.insert_before
+local insert_node_after = node.insert_after
+
+local nsdata, nsdone, nsforced, nsselector, nstrigger
+local current, current_selector, done = 0, 0, false -- nb, stack has a local current !
+
+function states.initialize(namespace,attribute,head)
+ nsdata, nsnone = namespace.data, namespace.none
+ nsforced, nsselector, nslistwise = namespace.forced, namespace.selector, namespace.listwise
+ nstrigger = triggering and namespace.triggering and trigger
+ current, current_selector, done = 0, 0, false -- todo: done cleanup
+end
+
+function states.finalize(namespace,attribute,head) -- is this one ok?
+ if current > 0 and nsnone then
+ local id = head.id
+ if id == hlist or id == vlist then
+ local list = head.list
+ if list then
+ head.list = insert_node_before(list,list,copy_node(nsnone))
+ end
+ else
+ head = insert_node_before(head,head,copy_node(nsnone))
+ end
+ return head, true, true
+ end
+ return head, false, false
+end
+
+local function process(namespace,attribute,head,inheritance,default) -- one attribute
+ local stack, done = head, false
+ while stack do
+ local id = stack.id
+ -- we need to deal with literals too (reset as well as oval)
+ -- if id == glyph or (id == whatsit and stack.subtype == 8) or (id == rule and stack.width ~= 0) or (id == glue and stack.leader) then -- or disc
+ if id == glyph or (id == rule and stack.width ~= 0) or (id == glue and stack.leader) then -- or disc
+ local c = has_attribute(stack,attribute)
+ if c then
+ if default and c == inheritance then
+ if current ~= default then
+ head = insert_node_before(head,stack,copy_node(nsdata[default]))
+ current, done = default, true
+ end
+ elseif current ~= c then
+ head = insert_node_before(head,stack,copy_node(nsdata[c]))
+ current, done = c, true
+ end
+ -- here ? compare selective
+ if id == glue then --leader
+ -- same as *list
+ local content = stack.leader
+ if content then
+ local savedcurrent = current
+ local ci = content.id
+ if ci == hlist or ci == vlist then
+ -- else we reset inside a box unneeded, okay, the downside is
+ -- that we trigger color in each repeated box, so there is room
+ -- for improvement here
+ current = 0
+ end
+ local ok = false
+ if nstrigger and has_attribute(stack,nstrigger) then
+ local outer = has_attribute(stack,attribute)
+ if outer ~= inheritance then
+ stack.leader, ok = process(namespace,attribute,content,inheritance,outer)
+ else
+ stack.leader, ok = process(namespace,attribute,content,inheritance,default)
+ end
+ else
+ stack.leader, ok = process(namespace,attribute,content,inheritance,default)
+ end
+ current = savedcurrent
+ done = done or ok
+ end
+ end
+ elseif default and inheritance then
+ if current ~= default then
+ head = insert_node_before(head,stack,copy_node(nsdata[default]))
+ current, done = default, true
+ end
+ elseif current > 0 then
+ head = insert_node_before(head,stack,copy_node(nsnone))
+ current, done = 0, true
+ end
+ elseif id == hlist or id == vlist then
+ local content = stack.list
+ if content then
+ local ok = false
+ if nstrigger and has_attribute(stack,nstrigger) then
+ local outer = has_attribute(stack,attribute)
+ if outer ~= inheritance then
+ stack.list, ok = process(namespace,attribute,content,inheritance,outer)
+ else
+ stack.list, ok = process(namespace,attribute,content,inheritance,default)
+ end
+ else
+ stack.list, ok = process(namespace,attribute,content,inheritance,default)
+ end
+ done = done or ok
+ end
+ end
+ stack = stack.next
+ end
+ return head, done
+end
+
+states.process = process
+
+-- we can force a selector, e.g. document wide color spaces, saves a little
+-- watch out, we need to check both the selector state (like colorspace) and
+-- the main state (like color), otherwise we get into troubles when a selector
+-- state changes while the main state stays the same (like two glyphs following
+-- each other with the same color but different color spaces e.g. \showcolor)
+
+local function selective(namespace,attribute,head,inheritance,default) -- two attributes
+ local stack, done = head, false
+ while stack do
+ local id = stack.id
+ -- we need to deal with literals too (reset as well as oval)
+ -- if id == glyph or (id == whatsit and stack.subtype == 8) or (id == rule and stack.width ~= 0) or (id == glue and stack.leader) then -- or disc
+ if id == glyph or (id == rule and stack.width ~= 0) or (id == glue and stack.leader) then -- or disc
+ local c = has_attribute(stack,attribute)
+ if c then
+ if default and c == inheritance then
+ if current ~= default then
+ local data = nsdata[default]
+ head = insert_node_before(head,stack,copy_node(data[nsforced or has_attribute(stack,nsselector) or nsselector]))
+ current, done = default, true
+ end
+ else
+ local s = has_attribute(stack,nsselector)
+ if current ~= c or current_selector ~= s then
+ local data = nsdata[c]
+ head = insert_node_before(head,stack,copy_node(data[nsforced or has_attribute(stack,nsselector) or nsselector]))
+ current, current_selector, done = c, s, true
+ end
+ end
+ elseif default and inheritance then
+ if current ~= default then
+ local data = nsdata[default]
+ head = insert_node_before(head,stack,copy_node(data[nsforced or has_attribute(stack,nsselector) or nsselector]))
+ current, done = default, true
+ end
+ elseif current > 0 then
+ head = insert_node_before(head,stack,copy_node(nsnone))
+ current, current_selector, done = 0, 0, true
+ end
+ if id == glue then -- leader
+ -- same as *list
+ local content = stack.leader
+ if content then
+ local savedcurrent = current
+ local ci = content.id
+ if ci == hlist or ci == vlist then
+ -- else we reset inside a box unneeded, okay, the downside is
+ -- that we trigger color in each repeated box, so there is room
+ -- for improvement here
+ current = 0
+ end
+ local ok = false
+ if nstrigger and has_attribute(stack,nstrigger) then
+ local outer = has_attribute(stack,attribute)
+ if outer ~= inheritance then
+ stack.leader, ok = selective(namespace,attribute,content,inheritance,outer)
+ else
+ stack.leader, ok = selective(namespace,attribute,content,inheritance,default)
+ end
+ else
+ stack.leader, ok = selective(namespace,attribute,content,inheritance,default)
+ end
+ current = savedcurrent
+ done = done or ok
+ end
+ end
+ elseif id == hlist or id == vlist then
+ local content = stack.list
+ if content then
+ local ok = false
+ if nstrigger and has_attribute(stack,nstrigger) then
+ local outer = has_attribute(stack,attribute)
+ if outer ~= inheritance then
+ stack.list, ok = selective(namespace,attribute,content,inheritance,outer)
+ else
+ stack.list, ok = selective(namespace,attribute,content,inheritance,default)
+ end
+ else
+ stack.list, ok = selective(namespace,attribute,content,inheritance,default)
+ end
+ done = done or ok
+ end
+ end
+ stack = stack.next
+ end
+ return head, done
+end
+
+states.selective = selective
+
+-- Ideally the next one should be merged with the previous but keeping it separate is
+-- safer. We deal with two situations: efficient boxwise (layoutareas) and mixed layers
+-- (as used in the stepper). In the stepper we cannot use the box branch as it involves
+-- paragraph lines and then getsmixed up. A messy business (esp since we want to be
+-- efficient).
+
+local function stacked(namespace,attribute,head,default) -- no triggering, no inheritance, but list-wise
+ local stack, done = head, false
+ local current, depth = default or 0, 0
+ while stack do
+ local id = stack.id
+ if id == glyph or (id == rule and stack.width ~= 0) or (id == glue and stack.leader) then -- or disc
+ local c = has_attribute(stack,attribute)
+ if c then
+ if current ~= c then
+ head = insert_node_before(head,stack,copy_node(nsdata[c]))
+ depth = depth + 1
+ current, done = c, true
+ end
+ if id == glue then
+ local content = stack.leader
+ if content then -- unchecked
+ local ok = false
+ stack.leader, ok = stacked(namespace,attribute,content,current)
+ done = done or ok
+ end
+ end
+ elseif default then
+ --
+ elseif current > 0 then
+ head = insert_node_before(head,stack,copy_node(nsnone))
+ depth = depth - 1
+ current, done = 0, true
+ end
+ elseif id == hlist or id == vlist then
+ local content = stack.list
+ if content then
+ -- the problem is that broken lines gets the attribute which can be a later one
+ if nslistwise then
+ local c = has_attribute(stack,attribute)
+ if c and current ~= c and nslistwise[c] then -- viewerlayer
+ local p = current
+ current, done = c, true
+ head = insert_node_before(head,stack,copy_node(nsdata[c]))
+ stack.list = stacked(namespace,attribute,content,current)
+ head, stack = insert_node_after(head,stack,copy_node(nsnone))
+ current = p
+ else
+ local ok = false
+ stack.list, ok = stacked(namespace,attribute,content,current)
+ done = done or ok
+ end
+ else
+ local ok = false
+ stack.list, ok = stacked(namespace,attribute,content,current)
+ done = done or ok
+ end
+ end
+ end
+ stack = stack.next
+ end
+ while depth > 0 do
+ head = insert_node_after(head,stack,copy_node(nsnone))
+ depth = depth -1
+ end
+ return head, done
+end
+
+states.stacked = stacked
+
+-- -- --
+
+statistics.register("attribute processing time", function()
+ if statistics.elapsedindeed(attributes) then
+ return format("%s seconds (front- and backend)",statistics.elapsedtime(attributes))
+ end
+end)
diff --git a/Master/texmf-dist/tex/context/base/node-fin.mkiv b/Master/texmf-dist/tex/context/base/node-fin.mkiv
new file mode 100644
index 00000000000..8c15eb57db2
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/node-fin.mkiv
@@ -0,0 +1,72 @@
+%D \module
+%D [ file=attr-ini,
+%D version=2007.06.06, % probably a bit older
+%D title=\CONTEXT\ Node Macros,
+%D subtitle=Finalizing,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA-ADE]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Node Support / Finalizing}
+
+% Objects are processed indepently \unknown\ actually we may
+% need a proper callback.
+
+\unprotect
+
+\registerctxluafile{node-fin}{1.001} % we might generalize this one
+
+\definesystemattribute[trigger] % feature inheritance
+
+\def\finalizeobjectbox #1{\ctxlua{nodes.process_page(tex.box[\number#1])}}
+\def\finalizeshipoutbox#1{\ctxlua{nodes.process_page(tex.box[\number#1])}}
+
+% tricky stuff:
+
+\newcount\attributeboxcount
+
+\edef\startinheritattributes{\dosetattribute {trigger}{1}}
+\edef\stopinheritattributes {\doresetattribute{trigger}}
+
+\def\doattributedcopy {\afterassignment\dodoattributedcopy\attributeboxcount}
+\def\doattributedbox {\afterassignment\dodoattributedbox \attributeboxcount}
+
+\def\dodoattributedcopy
+ {\startinheritattributes
+ \ifvbox\attributeboxcount
+ \vbox{\unvcopy\attributeboxcount}%
+ \else
+ \hbox{\unhcopy\attributeboxcount}%
+ \fi
+ \stopinheritattributes}
+
+\def\dodoattributedbox
+ {\startinheritattributes
+ \ifvbox\attributeboxcount
+ \vbox{\unvbox\attributeboxcount}%
+ \else
+ \hbox{\unhbox\attributeboxcount}%
+ \fi
+ \stopinheritattributes}
+
+\def\enableattributeinheritance
+ {\ctxlua{states.enabletriggering()}%
+ \let\attributedcopy\doattributedcopy
+ \let\attributedbox \doattributedbox}
+
+\def\disableattributeinheritance
+ {\ctxlua{states.disabletriggering()}%
+ \let\attributedcopy\copy
+ \let\attributedbox \box}
+
+\disableattributeinheritance
+
+% \appendtoks
+% \enableattributeinheritance % will become default
+% \to\everyjob
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/node-fnt.lua b/Master/texmf-dist/tex/context/base/node-fnt.lua
new file mode 100644
index 00000000000..3ad9060c307
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/node-fnt.lua
@@ -0,0 +1,206 @@
+if not modules then modules = { } end modules ['node-fnt'] = {
+ version = 1.001,
+ comment = "companion to font-ini.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local next, type = next, type
+
+local trace_characters = false trackers.register("nodes.characters", function(v) trace_characters = v end)
+
+local glyph = node.id('glyph')
+
+local traverse_id = node.traverse_id
+local has_attribute = node.has_attribute
+
+local starttiming, stoptiming = statistics.starttiming, statistics.stoptiming
+
+fonts = fonts or { }
+fonts.tfm = fonts.tfm or { }
+fonts.ids = fonts.ids or { }
+
+local fontdata = fonts.ids
+
+-- some tests with using an array of dynamics[id] and processes[id] demonstrated
+-- that there was nothing to gain (unless we also optimize other parts)
+--
+-- maybe getting rid of the intermediate shared can save some time
+
+-- potential speedup: check for subtype < 256 so that we can remove that test
+-- elsewhere, danger: injected nodes will not be dealt with but that does not
+-- happen often; we could consider processing sublists but that might need mor
+-- checking later on; the current approach also permits variants
+
+if tex.attribute[0] < 0 then
+
+ texio.write_nl("log","!")
+ texio.write_nl("log","! Attribute 0 is reserved for ConTeXt's font feature management and has to be")
+ texio.write_nl("log","! set to zero. Also, some attributes in the range 1-255 are used for special")
+ texio.write_nl("log","! purposed so setting them at the TeX end might break the font handler.")
+ texio.write_nl("log","!")
+
+ tex.attribute[0] = 0 -- else no features
+
+end
+
+function nodes.process_characters(head)
+ -- either next or not, but definitely no already processed list
+ starttiming(nodes)
+ local usedfonts, attrfonts, done = { }, { }, false
+ local a, u, prevfont, prevattr = 0, 0, nil, 0
+ for n in traverse_id(glyph,head) do
+ local font, attr = n.font, has_attribute(n,0) -- zero attribute is reserved for fonts, preset to 0 is faster (first match)
+ if attr and attr > 0 then
+ if font ~= prevfont or attr ~= prevattr then
+ local used = attrfonts[font]
+ if not used then
+ used = { }
+ attrfonts[font] = used
+ end
+ if not used[attr] then
+ -- we do some testing outside the function
+ local tfmdata = fontdata[font]
+ local shared = tfmdata.shared
+ if shared then
+ local dynamics = shared.dynamics
+ if dynamics then
+ local d = shared.set_dynamics(font,dynamics,attr) -- still valid?
+ if d then
+ used[attr] = d
+ a = a + 1
+ end
+ end
+ end
+ end
+ prevfont, prevattr = font, attr
+ end
+ elseif font ~= prevfont then
+ prevfont, prevattr = font, 0
+ local used = usedfonts[font]
+ if not used then
+ local tfmdata = fontdata[font]
+ if tfmdata then
+ local shared = tfmdata.shared -- we need to check shared, only when same features
+ if shared then
+ local processors = shared.processes
+ if processors and #processors > 0 then
+ usedfonts[font] = processors
+ u = u + 1
+ end
+ end
+ else
+ -- probably nullfont
+ end
+ end
+ else
+ prevattr = attr
+ end
+ end
+ -- we could combine these and just make the attribute nil
+ if u == 1 then
+ local font, processors = next(usedfonts)
+ local n = #processors
+ if n > 0 then
+ local h, d = processors[1](head,font,false)
+ head, done = h or head, done or d
+ if n > 1 then
+ for i=2,n do
+ local h, d = processors[i](head,font,0) -- false)
+ head, done = h or head, done or d
+ end
+ end
+ end
+ elseif u > 0 then
+ for font, processors in next, usedfonts do
+ local n = #processors
+ local h, d = processors[1](head,font,false)
+ head, done = h or head, done or d
+ if n > 1 then
+ for i=2,n do
+ local h, d = processors[i](head,font,0) -- false)
+ head, done = h or head, done or d
+ end
+ end
+ end
+ end
+ if a == 1 then
+ local font, dynamics = next(attrfonts)
+ for attribute, processors in next, dynamics do -- attr can switch in between
+ local n = #processors
+ local h, d = processors[1](head,font,attribute)
+ head, done = h or head, done or d
+ if n > 1 then
+ for i=2,n do
+ local h, d = processors[i](head,font,attribute)
+ head, done = h or head, done or d
+ end
+ end
+ end
+ elseif a > 0 then
+ for font, dynamics in next, attrfonts do
+ for attribute, processors in next, dynamics do -- attr can switch in between
+ local n = #processors
+ local h, d = processors[1](head,font,attribute)
+ head, done = h or head, done or d
+ if n > 1 then
+ for i=2,n do
+ local h, d = processors[i](head,font,attribute)
+ head, done = h or head, done or d
+ end
+ end
+ end
+ end
+ end
+ stoptiming(nodes)
+ if trace_characters then
+ nodes.report(head,done)
+ end
+ return head, true
+end
+
+if node.protect_glyphs then
+
+ nodes.protect_glyphs = node.protect_glyphs
+ nodes.unprotect_glyphs = node.unprotect_glyphs
+
+else do
+
+ -- initial value subtype : X000 0001 = 1 = 0x01 = char
+ --
+ -- expected before linebreak : X000 0000 = 0 = 0x00 = glyph
+ -- X000 0010 = 2 = 0x02 = ligature
+ -- X000 0100 = 4 = 0x04 = ghost
+ -- X000 1010 = 10 = 0x0A = leftboundary lig
+ -- X001 0010 = 18 = 0x12 = rightboundary lig
+ -- X001 1010 = 26 = 0x1A = both boundaries lig
+ -- X000 1100 = 12 = 0x1C = leftghost
+ -- X001 0100 = 20 = 0x14 = rightghost
+
+
+ function nodes.protect_glyphs(head)
+ local done = false
+ for g in traverse_id(glyph,head) do
+ local s = g.subtype
+ if s == 1 then
+ done, g.subtype = true, 256
+ elseif s <= 256 then
+ done, g.subtype = true, 256 + s
+ end
+ end
+ return done
+ end
+
+ function nodes.unprotect_glyphs(head)
+ local done = false
+ for g in traverse_id(glyph,head) do
+ local s = g.subtype
+ if s > 256 then
+ done, g.subtype = true, s - 256
+ end
+ end
+ return done
+ end
+
+end end
diff --git a/Master/texmf-dist/tex/context/base/node-ini.lua b/Master/texmf-dist/tex/context/base/node-ini.lua
index 5923a49e40b..3ff73c62f16 100644
--- a/Master/texmf-dist/tex/context/base/node-ini.lua
+++ b/Master/texmf-dist/tex/context/base/node-ini.lua
@@ -7,234 +7,68 @@ if not modules then modules = { } end modules ['node-ini'] = {
}
--[[ldx--
-<p>Access to nodes is what gives <l n='luatex'/> its power. Here we
-implement a few helper functions. These functions are rather optimized.</p>
+<p>Most of the code that had accumulated here is now separated in
+modules.</p>
--ldx]]--
-nodes = nodes or { }
-nodes.trace = false
-nodes.ignore = nodes.ignore or false
-
--- handy helpers
-
-if node.protect_glyphs then
-
- nodes.protect_glyphs = node.protect_glyphs
- nodes.unprotect_glyphs = node.unprotect_glyphs
-
-else do
-
- -- initial value subtype : X000 0001 = 1 = 0x01 = char
- --
- -- expected before linebreak : X000 0000 = 0 = 0x00 = glyph
- -- X000 0010 = 2 = 0x02 = ligature
- -- X000 0100 = 4 = 0x04 = ghost
- -- X000 1010 = 10 = 0x0A = leftboundary lig
- -- X001 0010 = 18 = 0x12 = rightboundary lig
- -- X001 1010 = 26 = 0x1A = both boundaries lig
- -- X000 1100 = 12 = 0x1C = leftghost
- -- X001 0100 = 20 = 0x14 = rightghost
-
+-- this module is being reconstructed
- local glyph = node.id('glyph')
- local traverse_id = node.traverse_id
+local utf = unicode.utf8
+local next, type = next, type
+local format, concat, match, utfchar = string.format, table.concat, string.match, utf.char
- function nodes.protect_glyphs(head)
- local done = false
- for g in traverse_id(glyph,head) do
- local s = g.subtype
- if s == 1 then
- done, g.subtype = true, 256
- elseif s <= 256 then
- done, g.subtype = true, 256 + s
- end
- end
- return done
- end
-
- function nodes.unprotect_glyphs(head)
- local done = false
- for g in traverse_id(glyph,head) do
- local s = g.subtype
- if s > 256 then
- done, g.subtype = true, s - 256
- end
- end
- return done
- end
+local chardata = characters and characters.data
-end end
-
-do
-
- local remove, free = node.remove, node.free
-
- --~ function nodes.remove(head, current, free_too)
- --~ if head == current then
- --~ local cn = current.next
- --~ if cn then
- --~ cn.prev = nil
- --~ if free_too then
- --~ node.free(current)
- --~ return cn, cn, nil
- --~ else
- --~ current.prev = nil
- --~ current.next = nil
- --~ return cn, cn, current
- --~ end
- --~ else
- --~ if free_too then
- --~ node.free(current)
- --~ return nil, nil, nil
- --~ else
- --~ return head,current,current
- --~ end
- --~ end
- --~ else
- --~ local cp = current.prev
- --~ local cn = current.next
- --~ if not cp and head.next == current then
- --~ cp = head
- --~ end
- --~ if cn then
- --~ cn.prev = cp
- --~ if cp then
- --~ cp.next = cn
- --~ end
- --~ elseif cp then
- --~ cp.next = nil
- --~ end
- --~ if free_too then
- --~ node.free(current)
- --~ return head, cn, nil
- --~ else
- --~ current.prev = nil
- --~ current.next = nil
- --~ return head, cn, current
- --~ end
- --~ end
- --~ end
-
- function nodes.remove(head, current, free_too)
- local t = current
- head, current = remove(head,current)
- if t then
- if free_too then
- free(t)
- t = nil
- else
- t.next, t.prev = nil, nil
- end
- end
- return head, current, t
- end
+--[[ldx--
+<p>We start with a registration system for atributes so that we can use the
+symbolic names later on.</p>
+--ldx]]--
- function nodes.delete(head,current)
- return nodes.remove(head,current,true)
- end
+attributes = attributes or { }
- nodes.before = node.insert_before -- broken
- nodes.after = node.insert_after
+attributes.names = attributes.names or { }
+attributes.numbers = attributes.numbers or { }
+attributes.list = attributes.list or { }
+attributes.unsetvalue = -0x7FFFFFFF
- function nodes.before(h,c,n)
- if c then
- if c == h then
- n.next = h
- n.prev = nil
- h.prev = n
- else
- local cp = c.prev
- n.next = c
- n.prev = cp
- if cp then
- cp.next = n
- end
- c.prev = n
- return h, n
- end
- end
- return n, n
- end
+storage.register("attributes/names", attributes.names, "attributes.names")
+storage.register("attributes/numbers", attributes.numbers, "attributes.numbers")
+storage.register("attributes/list", attributes.list, "attributes.list")
- function nodes.after(h,c,n)
- if c then
- local cn = c.next
- if cn then
- n.next = cn
- cn.prev = n
- else
- n.next = nil
- end
- c.next = n
- n.prev = c
- if c ~= h then
- return h, n
- end
- end
- return n, n
- end
+local names, numbers, list = attributes.names, attributes.numbers, attributes.list
- function nodes.show_list(head, message)
- if message then
- texio.write_nl(message)
- end
- for n in node.traverse(head) do
- texio.write_nl(tostring(n))
- end
+function attributes.define(name,number) -- at the tex end
+ if not numbers[name] then
+ numbers[name], names[number], list[number] = number, name, { }
end
-
end
--- will move
+--[[ldx--
+<p>We can use the attributes in the range 127-255 (outside user space). These
+are only used when no attribute is set at the \TEX\ end which normally
+happens in <l n='context'/>.</p>
+--ldx]]--
-nodes.processors = { }
-nodes.processors.char = { }
-nodes.processors.char.proc = { }
+storage.shared.attributes_last_private = storage.shared.attributes_last_private or 127
-function nodes.report(t,done)
- if nodes.trace then -- best also test this before calling
- if done then
- if status.output_active then
- texio.write(string.format("<++ %s>",nodes.count(t)))
- else
- texio.write(string.format("<+ %s>",nodes.count(t)))
- end
- else
- if status.output_active then
- texio.write(string.format("<-- %s>",nodes.count(t)))
- else
- texio.write(string.format("<- %s>",nodes.count(t)))
- end
+function attributes.private(name) -- at the lua end (hidden from user)
+ local number = numbers[name]
+ if not number then
+ local last = storage.shared.attributes_last_private or 127
+ if last < 255 then
+ last = last + 1
+ storage.shared.attributes_last_private = last
end
+ number = last
+ numbers[name], names[number], list[number] = number, name, { }
end
+ return number
end
-do
-
- local hlist, vlist = node.id('hlist'), node.id('vlist')
-
- local function count(stack,flat)
- local n = 0
- while stack do
- local id = stack.id
- if not flat and id == hlist or id == vlist then
- local list = stack.list
- if list then
- n = n + 1 + count(list) -- self counts too
- else
- n = n + 1
- end
- else
- n = n + 1
- end
- stack = stack.next
- end
- return n
- end
-
- nodes.count = count
-
-end
+--[[ldx--
+<p>Access to nodes is what gives <l n='luatex'/> its power. Here we
+implement a few helper functions. These functions are rather optimized.</p>
+--ldx]]--
--[[ldx--
<p>When manipulating node lists in <l n='context'/>, we will remove
@@ -264,779 +98,135 @@ into the <l n='tex'/> engine, but this is a not so natural extension.</p>
also ignore the empty nodes. [This is obsolete!]</p>
--ldx]]--
-
---[[ldx--
-<p>Serializing nodes can be handy for tracing. Also, saving and
-loading node lists can come in handy as soon we are going to
-use external applications to process node lists.</p>
---ldx]]--
-
-function nodes.show(stack)
---~ texio.write_nl(table.serialize(stack))
-end
-
-function nodes.save(stack,name) -- *.ltn : luatex node file
---~ if name then
---~ file.savedata(name,table.serialize(stack))
---~ else
---~ texio.write_nl('log',table.serialize(stack))
---~ end
-end
-
-function nodes.load(name)
---~ return file.loaddata(name)
-end
-
--- node-cap.lua
-
---~ nodes.capture = { } -- somehow fails
-
---~ function nodes.capture.start(cbk)
---~ local head, tail = nil, nil
---~ callbacks.push(cbk, function(t)
---~ if tail then
---~ tail.next = t
---~ else
---~ head, tail = t, t
---~ end
---~ while tail.next do
---~ tail = tail.next
---~ end
---~ return false
---~ end)
---~ function nodes.capture.stop()
---~ function nodes.capture.stop() end
---~ function nodes.capture.get()
---~ function nodes.capture.get() end
---~ return head
---~ end
---~ callbacks.pop(cbk)
---~ end
---~ function nodes.capture.get() end -- error
---~ end
-
---~ nodes.capture.stop = function() end
---~ nodes.capture.get = function() end
-
--- node-gly.lua
-
-if not fonts then fonts = { } end
-if not fonts.otf then fonts.otf = { } end
-if not fonts.tfm then fonts.tfm = { } end
-if not fonts.tfm.id then fonts.tfm.id = { } end
-
-do
-
- local glyph = node.id('glyph')
- local has_attribute = node.has_attribute
- local traverse_id = node.traverse_id
-
- local pairs = pairs
-
- local starttiming, stoptiming = input.starttiming, input.stoptiming
-
- function nodes.process_characters(head)
- -- not ok yet; we need a generic blocker
- -- if status.output_active then
- if false then -- status.output_active then
- return head, false -- true
+nodes = nodes or { }
+
+local hlist = node.id('hlist')
+local vlist = node.id('vlist')
+local glyph = node.id('glyph')
+local glue = node.id('glue')
+local penalty = node.id('penalty')
+local kern = node.id('kern')
+local whatsit = node.id('whatsit')
+
+local traverse_id = node.traverse_id
+local traverse = node.traverse
+local free_node = node.free
+local remove_node = node.remove
+
+function nodes.remove(head, current, free_too)
+ local t = current
+ head, current = remove_node(head,current)
+ if t then
+ if free_too then
+ free_node(t)
+ t = nil
else
- -- either next or not, but definitely no already processed list
- starttiming(nodes)
- local usedfonts, attrfonts, done = { }, { }, false
- -- todo: should be independent of otf
- local set_dynamics, font_ids = fonts.otf.set_dynamics, fonts.tfm.id -- todo: font-var.lua so that we can global this one
- local a, u, prevfont, prevattr = 0, 0, nil, 0
- for n in traverse_id(glyph,head) do
- local font, attr = n.font, has_attribute(n,0) -- zero attribute is reserved for fonts, preset to 0 is faster (first match)
- if attr and attr > 0 then
- if font ~= prevfont or attr ~= prevattr then
- local used = attrfonts[font]
- if not used then
- used = { }
- attrfonts[font] = used
- end
- if not used[attr] then
- local d = set_dynamics(font_ids[font],attr) -- todo, script, language -> n.language also axis
- if d then
- used[attr] = d
- a = a + 1
- end
- end
- prevfont, prevattr = font, attr
- end
- elseif font ~= prevfont then
- prevfont, prevattr = font, 0
- local used = usedfonts[font]
- if not used then
- local data = font_ids[font]
- if data then
- local shared = data.shared -- we need to check shared, only when same features
- if shared then
- local processors = shared.processors
- if processors and #processors > 0 then
- usedfonts[font] = processors
- u = u + 1
- end
- end
- else
- -- probably nullfont
- end
- end
- else
- prevattr = attr
- end
- end
- -- we could combine these and just make the attribute nil
- if u > 0 then
- for font, processors in pairs(usedfonts) do
- local n = #processors
- if n == 1 then
- local h, d = processors[1](head,font,false)
- head, done = h or head, done or d
- else
- for i=1,#processors do
- local h, d = processors[i](head,font,false)
- head, done = h or head, done or d
- end
- end
- end
- end
- if a > 0 then -- we need to get rid of a loop here
- for font, dynamics in pairs(attrfonts) do
- for attribute, processors in pairs(dynamics) do -- attr can switch in between
- local n = #processors
- if n == 1 then
- local h, d = processors[1](head,font,attribute)
- head, done = h or head, done or d
- else
- for i=1,n do
- local h, d = processors[i](head,font,attribute)
- head, done = h or head, done or d
- end
- end
- end
- end
- end
- stoptiming(nodes)
- if nodes.trace then
- nodes.report(head,done)
- end
- return head, true
+ t.next, t.prev = nil, nil
end
- end
-
+ end
+ return head, current, t
end
--- vbox: grouptype: vbox vtop output split_off split_keep | box_type: exactly|aditional
--- hbox: grouptype: hbox adjusted_hbox(=hbox_in_vmode) | box_type: exactly|aditional
+function nodes.delete(head,current)
+ return nodes.remove(head,current,true)
+end
-do
+nodes.before = node.insert_before
+nodes.after = node.insert_after
- local has_attribute, set, attribute = node.has_attribute, node.set_attribute, tex.attribute
+-- we need to test this, as it might be fixed now
- function nodes.inherit_attributes(n) -- still ok ?
- if n then
- local i = 1
- while true do
- local a = attribute[i]
- if a < 0 then
- break
- else
- local ai = has_attribute(n,i)
- if not ai then
- set(n,i,a)
- end
- i = i + 1
- end
+function nodes.before(h,c,n)
+ if c then
+ if c == h then
+ n.next = h
+ n.prev = nil
+ h.prev = n
+ else
+ local cp = c.prev
+ n.next = c
+ n.prev = cp
+ if cp then
+ cp.next = n
end
+ c.prev = n
+ return h, n
end
end
-
-end
-
-function nodes.length(head)
- if head then
- local m = 0
- for n in node.traverse(head) do
- m = m + 1
- end
- return m
- else
- return 0
- end
-end
-
---~ nodes.processors.actions = nodes.processors.actions or { }
-
---~ function nodes.processors.action(head)
---~ if head then
---~ node.slide(head)
---~ local done = false
---~ local actions = nodes.processors.actions
---~ for i=1,#actions do
---~ local h, ok = actions[i](head)
---~ if ok then
---~ head, done = h, true
---~ end
---~ end
---~ if done then
---~ return head
---~ else
---~ return true
---~ end
---~ else
---~ return head
---~ end
---~ end
-
-lists = lists or { }
-lists.plugins = lists.plugins or { }
-
-chars = chars or { }
-chars.plugins = chars.plugins or { }
-
---~ words = words or { }
---~ words.plugins = words.plugins or { }
-
-callbacks.trace = false
-
-do
-
- kernel = kernel or { }
-
- local starttiming, stoptiming = input.starttiming, input.stoptiming
- local hyphenate, ligaturing, kerning = lang.hyphenate, node.ligaturing, node.kerning
-
- function kernel.hyphenation(head,tail) -- lang.hyphenate returns done
- starttiming(kernel)
- local done = hyphenate(head,tail)
- stoptiming(kernel)
- return head, tail, done
- end
- function kernel.ligaturing(head,tail) -- node.ligaturing returns head,tail,done
- starttiming(kernel)
- local head, tail, done = ligaturing(head,tail)
- stoptiming(kernel)
- return head, tail, done
- end
- function kernel.kerning(head,tail) -- node.kerning returns head,tail,done
- starttiming(kernel)
- local head, tail, done = kerning(head,tail)
- stoptiming(kernel)
- return head, tail, done
- end
-
-end
-
-callback.register('hyphenate' , function(head,tail) return tail end)
-callback.register('ligaturing', function(head,tail) return tail end)
-callback.register('kerning' , function(head,tail) return tail end)
-
--- used to be loop, this is faster, called often; todo: shift up tail or even better,
--- handle tail everywhere; for the moment we're safe
-
-do
-
- local charplugins, listplugins = chars.plugins, lists.plugins
-
- nodes.processors.actions = function(head,tail) -- removed: if head ... end
- local ok, done = false, false
- head, ok = nodes.process_attributes(head,charplugins) ; done = done or ok -- attribute driven
- head, tail, ok = kernel.hyphenation (head,tail) ; done = done or ok -- language driven
- head, ok = languages.words.check (head,tail) ; done = done or ok -- language driven
- head, ok = nodes.process_characters(head) ; done = done or ok -- font driven
- ok = nodes.protect_glyphs (head) ; done = done or ok -- turn chars into glyphs
- head, tail, ok = kernel.ligaturing (head,tail) ; done = done or ok -- normal ligaturing routine / needed for base mode
- head, tail, ok = kernel.kerning (head,tail) ; done = done or ok -- normal kerning routine / needed for base mode
- head, ok = nodes.process_attributes(head,listplugins) ; done = done or ok -- attribute driven
- return head, done
- end
-
+ return n, n
end
-do
-
- local actions = nodes.processors.actions
- local first_character = node.first_character
- local slide = node.slide
-
- local function tracer(what,state,head,groupcode,glyphcount)
- texio.write_nl(string.format("%s %s: group: %s, nodes: %s",
- (state and "Y") or "N", what, groupcode or "?", nodes.count(head,true)))
- end
-
- function nodes.processors.pre_linebreak_filter(head,groupcode) -- todo: tail
- local first, found = first_character(head)
- if found then
- if callbacks.trace then tracer("pre_linebreak",true,head,groupcode) end
- local head, done = actions(head,slide(head))
- return (done and head) or true
+function nodes.after(h,c,n)
+ if c then
+ local cn = c.next
+ if cn then
+ n.next = cn
+ cn.prev = n
else
- if callbacks.trace then tracer("pre_linebreak",false,head,groupcode) end
- return true
+ n.next = nil
end
+ c.next = n
+ n.prev = c
+ return h, n
end
-
- function nodes.processors.hpack_filter(head,groupcode) -- todo: tail
- local first, found = first_character(head)
- if found then
- if callbacks.trace then tracer("hpack",true,head,groupcode) end
- local head, done = actions(head,slide(head))
- return (done and head) or true
- end
- if callbacks.trace then tracer("hpack",false,head,groupcode) end
- return true
- end
-
+ return n, n
end
-callback.register('pre_linebreak_filter', nodes.processors.pre_linebreak_filter)
-callback.register('hpack_filter' , nodes.processors.hpack_filter)
-
-do
-
- -- beware, some field names will change in a next release of luatex
-
- local expand = table.tohash {
- "list", -- list_ptr & ins_ptr & adjust_ptr
- "pre", --
- "post", --
- "spec", -- glue_ptr
- "top_skip", --
- "attr", --
- "replace", -- nobreak
- "components", -- lig_ptr
- "box_left", --
- "box_right", --
- "glyph", -- margin_char
- "leader", -- leader_ptr
- "action", -- action_ptr
- "value", -- user_defined nodes with subtype 'a' en 'n'
- }
-
- -- page_insert: "height", "last_ins_ptr", "best_ins_ptr"
- -- split_insert: "height", "last_ins_ptr", "best_ins_ptr", "broken_ptr", "broken_ins"
-
- local ignore = table.tohash {
- "page_insert",
- "split_insert",
- "ref_count",
- }
-
- local dimension = table.tohash {
- "width", "height", "depth", "shift",
- "stretch", "shrink",
- "xoffset", "yoffset",
- "surround",
- "kern",
- "box_left_width", "box_right_width"
- }
-
- -- flat: don't use next, but indexes
- -- verbose: also add type
- -- can be sped up
-
- nodes.dimensionfields = dimension
- nodes.listablefields = expand
- nodes.ignorablefields = ignore
-
- -- not ok yet:
-
- function nodes.astable(n,sparse) -- not yet ok
- local f, t = node.fields(n.id,n.subtype), { }
- for i=1,#f do
- local v = f[i]
- local d = n[v]
- if d then
- if ignore[v] or v == "id" then
- -- skip
- elseif expand[v] then -- or: type(n[v]) ~= "string" or type(n[v]) ~= "number" or type(n[v]) ~= "table"
- t[v] = "pointer to list"
- elseif sparse then
- if (type(d) == "number" and d ~= 0) or (type(d) == "string" and d ~= "") then
- t[v] = d
- end
- else
- t[v] = d
- end
- end
- end
- t.type = node.type(n.id)
- return t
- end
-
- local nodefields = node.fields
- local nodetype = node.type
-
- -- under construction:
-
- local function totable(n,flat,verbose)
- local function to_table(n)
- local f = nodefields(n.id,n.subtype)
- local tt = { }
- for k=1,#f do
- local v = f[k]
- local nv = n[v]
- if nv then
- if ignore[v] then
- -- skip
- elseif expand[v] then
- if type(nv) == "number" or type(nv) == "string" then
- tt[v] = nv
- else
- tt[v] = totable(nv,flat,verbose)
- end
- elseif type(nv) == "table" then
- tt[v] = nv -- totable(nv,flat,verbose) -- data
- else
- tt[v] = nv
- end
- end
- end
- if verbose then
- tt.type = nodetype(tt.id)
- end
- return tt
+function nodes.replace(head,current,new)
+ if current and next then
+ local p, n = current.prev, current.next
+ new.prev, new.next = p, n
+ if p then
+ p.next = new
+ else
+ head = new
end
if n then
- if flat then
- local t = { }
- while n do
- t[#t+1] = to_table(n)
- n = n.next
- end
- return t
- else
- local t = to_table(n)
- if n.next then
- t.next = totable(n.next,flat,verbose)
- end
- return t
- end
- else
- return { }
+ n.prev = new
end
+ free_node(current)
end
+ return head, current
+end
- nodes.totable = totable
-
- local function key(k)
- return ((type(k) == "number") and "["..k.."]") or k
- end
-
- -- not ok yet:
+-- will move
- local function serialize(root,name,handle,depth,m)
- handle = handle or print
- if depth then
- depth = depth .. " "
- handle(("%s%s={"):format(depth,key(name)))
- else
- depth = ""
- local tname = type(name)
- if tname == "string" then
- if name == "return" then
- handle("return {")
- else
- handle(name .. "={")
- end
- elseif tname == "number"then
- handle("[" .. name .. "]={")
- else
- handle("t={")
- end
- end
- if root then
- local fld
- if root.id then
- fld = nodefields(root.id,root.subtype) -- we can cache these (todo)
+local function count(stack,flat)
+ local n = 0
+ while stack do
+ local id = stack.id
+ if not flat and id == hlist or id == vlist then
+ local list = stack.list
+ if list then
+ n = n + 1 + count(list) -- self counts too
else
- fld = table.sortedkeys(root)
- end
- if type(root) == 'table' and root['type'] then -- userdata or table
- handle(("%s %s=%q,"):format(depth,'type',root['type']))
- end
- for _,k in ipairs(fld) do
- if k == "ref_count" then
- -- skip
- elseif k then
- local v = root[k]
- local t = type(v)
- if t == "number" then
- if v == 0 then
- -- skip
- else
- handle(("%s %s=%s,"):format(depth,key(k),v))
- end
- elseif t == "string" then
- if v == "" then
- -- skip
- else
- handle(("%s %s=%q,"):format(depth,key(k),v))
- end
- elseif v then -- userdata or table
- serialize(v,k,handle,depth,m+1)
- end
- end
- end
- if root['next'] then -- userdata or table
- serialize(root['next'],'next',handle,depth,m+1)
+ n = n + 1
end
- end
- if m and m > 0 then
- handle(("%s},"):format(depth))
else
- handle(("%s}"):format(depth))
- end
- end
-
- function nodes.serialize(root,name)
- local t = { }
- local function flush(s)
- t[#t+1] = s
- end
- serialize(root, name, flush, nil, 0)
- return table.concat(t,"\n")
- end
-
- function nodes.serializebox(n,flat,verbose)
- return nodes.serialize(nodes.totable(tex.box[n],flat,verbose))
- -- return nodes.serialize(tex.box[n])
- end
-
- function nodes.visualizebox(...)
- -- tex.sprint(tex.ctxcatcodes,"\\starttyping\n" .. nodes.serializebox(...) .. "\n\\stoptyping\n")
- tex.print(tex.ctxcatcodes,"\\starttyping")
- tex.print(nodes.serializebox(...))
- tex.print("\\stoptyping")
- end
-
- function nodes.check_for_leaks(sparse)
- local l = { }
- local q = node.usedlist()
- for p in node.traverse(q) do
- local s = table.serialize(nodes.astable(p,sparse),node.type(p.id))
- l[s] = (l[s] or 0) + 1
- end
- node.flush_list(q)
- for k, v in pairs(l) do
- texio.write_nl(string.format("%s * %s", v, k))
- end
- end
-
-end
-
-if not node.list_has_attribute then -- no longer needed
-
- function node.list_has_attribute(list,attribute)
- if list and attribute then
- for n in node.traverse(list) do
- local a = has_attribute(n,attribute)
- if a then return a end
- end
+ n = n + 1
end
- return false
+ stack = stack.next
end
-
+ return n
end
-function nodes.pack_list(head)
- local t = { }
- for n in node.traverse(head) do
- t[#t+1] = tostring(n)
- end
- return t
-end
-
-do
+nodes.count = count
- local glue, whatsit, hlist = node.id("glue"), node.id("whatsit"), node.id("hlist")
+-- new
- function nodes.leftskip(n)
- while n do
- local id = n.id
- if id == glue then
- if n.subtype == 8 then -- 7 in c/web source
- return (n.spec and n.spec.width) or 0
- else
- return 0
- end
- elseif id == whatsit then
- n = n.next
- elseif id == hlist then
- return n.width
- else
- break
- end
+function attributes.ofnode(n)
+ local a = n.attr
+ if a then
+ local names = attributes.names
+ a = a.next
+ while a do
+ local number, value = a.number, a.value
+ texio.write_nl(format("%s : attribute %3i, value %4i, name %s",tostring(n),number,value,names[number] or '?'))
+ a = a.next
end
- return 0
- end
- function nodes.rightskip(n)
- if n then
- n = node.slide(n)
- while n do
- local id = n.id
- if id == glue then
- if n.subtype == 9 then -- 8 in the c/web source
- return (n.spec and n.spec.width) or 0
- else
- return 0
- end
- elseif id == whatsit then
- n = n.prev
- else
- break
- end
- end
- end
- return false
- end
-
+ end
end
--- goodie
---
--- if node.valid(tex.box[0]) then print("valid node") end
-
---~ do
---~ local n = node.new(0,0)
---~ local m = getmetatable(n)
---~ m.__metatable = 'node'
---~ node.free(n)
-
---~ function node.valid(n)
---~ return n and getmetatable(n) == 'node'
---~ end
---~ end
-
--- for the moment we put this here:
-
-do
-
- nodes.tracers = { }
- nodes.tracers.characters = { }
-
- local glyph, disc = node.id('glyph'), node.id('disc')
-
- local fontdata = fonts.tfm.id
-
- local function collect(head,list,tag,n)
- n = n or 0
- local ok, fn = false, nil
- while head do
- local id = head.id
- if id == glyph then
- local f = head.font
- if f ~= fn then
- ok, fn = false, f
- end
- local c = head.char
- local d = fontdata[f].characters[c]
- local i = (d and d.description.index) or -1
- if not ok then
- ok = true
- n = n + 1
- list[n] = list[n] or { }
- list[n][tag] = { }
- end
- local l = list[n][tag]
- l[#l+1] = { c, f, i }
- elseif id == disc then
- -- skip
- else
- ok = false
- end
- head = head.next
- end
- end
-
- function nodes.tracers.characters.equal(ta, tb)
- if #ta ~= #tb then
- return false
- else
- for i=1,#ta do
- local a, b = ta[i], tb[i]
- if a[1] ~= b[1] or a[2] ~= b[2] or a[3] ~= b[3] then
- return false
- end
- end
- end
- return true
- end
- function nodes.tracers.characters.string(t)
- local tt = { }
- for i=1,#t do
- tt[i] = utf.char(t[i][1])
- end
- return table.concat(tt,"")
- end
- function nodes.tracers.characters.unicodes(t,decimal)
- local tt = { }
- for i=1,#t do
- if decimal then
- tt[i] = t[i][1]
- else
- tt[i] = string.format("%04X",t[i][1])
- end
- end
- return table.concat(tt," ")
- end
- function nodes.tracers.characters.indices(t,decimal)
- local tt = { }
- for i=1,#t do
- if decimal then
- tt[i] = t[i][3]
- else
- tt[i] = string.format("%04X",t[i][3])
- end
- end
- return table.concat(tt," ")
- end
- function nodes.tracers.characters.fonts(t)
- local f = t[1] and t[1][2]
- return (f and file.basename(fontdata[f].filename or "unknown")) or "unknown"
- end
-
- function nodes.tracers.characters.start()
- local npc = nodes.process_characters
- local list = { }
- function nodes.process_characters(head)
- local n = #list
- collect(head,list,'before',n)
- local h, d = npc(head)
- collect(head,list,'after',n)
- if #list > n then
- list[#list+1] = { }
- end
- return h, d
- end
- function nodes.tracers.characters.stop()
- tracers.list['characters'] = list
- lmx.set('title', 'ConTeXt Character Processing Information')
- lmx.set('color-background-one', lmx.get('color-background-yellow'))
- lmx.set('color-background-two', lmx.get('color-background-purple'))
- lmx.show('context-characters.lmx')
- lmx.restore()
- nodes.process_characters = npc
- end
- end
+local left, space = lpeg.P("<"), lpeg.P(" ")
- local stack = { }
-
- function nodes.tracers.start(tag)
- stack[#stack+1] = tag
- local tracer = nodes.tracers[tag]
- if tracer and tracer.start then
- tracer.start()
- end
- end
- function nodes.tracers.stop()
- local tracer = stack[#stack]
- if tracer and tracer.stop then
- tracer.stop()
- end
- stack[#stack] = nil
- end
-
-end
+nodes.filterkey = left * (1-left)^0 * left * space^0 * lpeg.C((1-space)^0)
diff --git a/Master/texmf-dist/tex/context/base/node-ini.mkiv b/Master/texmf-dist/tex/context/base/node-ini.mkiv
new file mode 100644
index 00000000000..210f21229b2
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/node-ini.mkiv
@@ -0,0 +1,106 @@
+%D \module
+%D [ file=node-ini,
+%D version=2006.08.20,
+%D title=\CONTEXT\ Node Macros,
+%D subtitle=Initialization,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Node Support / Initialization}
+
+\unprotect
+
+\newcount\filterstate \filterstate\plusone
+
+\registerctxluafile{node-ini}{1.001}
+\registerctxluafile{node-tst}{1.001}
+\registerctxluafile{node-tra}{1.001} % we might split it off (module)
+\registerctxluafile{node-seq}{1.001} % we might generalize this one
+\registerctxluafile{node-tsk}{1.001}
+\registerctxluafile{node-tex}{1.001}
+\registerctxluafile{node-res}{1.001}
+\registerctxluafile{node-pro}{1.001}
+\registerctxluafile{node-shp}{1.001}
+\registerctxluafile{node-ser}{1.001}
+\registerctxluafile{node-ext}{1.001}
+\registerctxluafile{node-inj}{1.001} % we might split it off
+
+\newtoks \attributesresetlist
+
+\ifdefined \v!global \else \def\v!global{global} \fi % for metatex
+
+\def\defineattribute
+ {\dodoubleempty\dodefineattribute}
+
+\def\dodefineattribute[#1][#2]% alternatively we can let lua do the housekeeping
+ {\expandafter\newattribute\csname @attr@#1\endcsname
+ \expandafter \xdef\csname :attr:#1\endcsname{\number\lastallocatedattribute}%
+ \ctxlua{attributes.define("#1",\number\lastallocatedattribute)}%
+ %\writestatus\m!systems{defining attribute #1 with number \number\lastallocatedattribute}%
+ \doifnotinset\v!global{#2}{\appendetoks\csname @attr@#1\endcsname\attributeunsetvalue\to\attributesresetlist}}
+
+\def\definesystemattribute
+ {\dodoubleempty\dodefinesystemattribute}
+
+\def\dodefinesystemattribute[#1][#2]% alternatively we can let lua do the housekeeping
+ {\scratchcounter\ctxlua{tex.print(attributes.private("#1"))}\relax
+ \global\expandafter\attributedef\csname @attr@#1\endcsname\scratchcounter
+ \expandafter \xdef\csname :attr:#1\endcsname{\number\scratchcounter}%
+ %\writestatus\m!systems{defining system attribute #1 with number \number\scratchcounter}%
+ \doifnotinset\v!global{#2}{\appendetoks\csname @attr@#1\endcsname\attributeunsetvalue\to\attributesresetlist}}
+
+% expandable so we can \edef them for speed
+
+\def\dosetattribute#1#2{\csname @attr@#1\endcsname#2\relax}
+\def\doresetattribute#1{\csname @attr@#1\endcsname\attributeunsetvalue}
+\def\dogetattribute #1{\number\csname @attr@#1\endcsname}
+\def\dogetattributeid#1{\csname :attr:#1\endcsname}
+
+\let\dompattribute\gobbletwoarguments
+
+\def\resetallattributes{\the\attributesresetlist}
+
+% \appendtoks
+% \ctxlua {
+% callbacks.push('hpack_filter')
+% callbacks.push('vpack_filter')
+% callbacks.push('buildpage_filter')
+% callbacks.push('pre_linebreak_filter')
+% callbacks.push('pre_output_filter')
+% }%
+% \to \everybeforeoutput
+% \appendtoks
+% \ctxlua {
+% callbacks.pop('hpack_filter')
+% callbacks.pop('vpack_filter')
+% callbacks.pop('buildpage_filter')
+% callbacks.pop('pre_linebreak_filter')
+% callbacks.pop('pre_output_filter')
+% }%
+% \to \everyafteroutput
+
+\newcount\shownodescounter
+
+\def\shownextnodes {\afterassignment\doshownodes\shownextnodescounter}
+\def\showflatnodes {\afterassignment\doshownodes\showflatnodescounter}
+\def\doshownextnodes {\ctxlua{texio.write_nl('log',nodes.serializebox(\number\shownodescounter,false,true))}}
+\def\doshowflatnodes {\ctxlua{texio.write_nl('log',nodes.serializebox(\number\shownodescounter,true, true))}}
+\def\visualizenextnodes{\dowithnextbox{\ctxlua{nodes.visualizebox(\number\nextbox,false,true)}}}
+\def\visualizeflatnodes{\dowithnextbox{\ctxlua{nodes.visualizebox(\number\nextbox,true,true)}}}
+
+\def\starttracingnodes[#1]{\ctxlua{nodes.tracers.characters.start("#1")}}
+\def\stoptracingnodes {\ctxlua{nodes.tracers.characters.stop()}}
+
+% \starttext
+% \starttracingnodes[characters]
+% \input tufte \par
+% \input tufte \par
+% \stoptracingnodes
+% \stoptext
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/node-ini.tex b/Master/texmf-dist/tex/context/base/node-ini.tex
deleted file mode 100644
index 845a62b31c3..00000000000
--- a/Master/texmf-dist/tex/context/base/node-ini.tex
+++ /dev/null
@@ -1,56 +0,0 @@
-%D \module
-%D [ file=node-ini,
-%D version=2006.08.20,
-%D title=\CONTEXT\ Character Macros,
-%D subtitle=Node Support (Initialization),
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright=PRAGMA]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{Node Support (initialization)}
-
-\registerctxluafile{node-ini}{1.001}
-
-% \appendtoks
-% \ctxlua {
-% callbacks.push('hpack_filter')
-% callbacks.push('vpack_filter')
-% callbacks.push('buildpage_filter')
-% callbacks.push('pre_linebreak_filter')
-% callbacks.push('pre_output_filter')
-% }%
-% \to \everybeforeoutput
-% \appendtoks
-% \ctxlua {
-% callbacks.pop('hpack_filter')
-% callbacks.pop('vpack_filter')
-% callbacks.pop('buildpage_filter')
-% callbacks.pop('pre_linebreak_filter')
-% callbacks.pop('pre_output_filter')
-% }%
-% \to \everyafteroutput
-
-\newcount\shownodescounter
-
-\def\shownextnodes {\afterassignment\doshownodes\shownextnodescounter}
-\def\showflatnodes {\afterassignment\doshownodes\showflatnodescounter}
-\def\doshownextnodes {\ctxlua{texio.write_nl('log',nodes.serializebox(\number\shownodescounter,false,true))}}
-\def\doshowflatnodes {\ctxlua{texio.write_nl('log',nodes.serializebox(\number\shownodescounter,true, true))}}
-\def\visualizenextnodes{\dowithnextbox{\ctxlua{nodes.visualizebox(\number\nextbox,false,true)}}}
-\def\visualizeflatnodes{\dowithnextbox{\ctxlua{nodes.visualizebox(\number\nextbox,true,true)}}}
-
-\def\starttracingnodes[#1]{\ctxlua{nodes.tracers.characters.start("#1")}}
-\def\stoptracingnodes {\ctxlua{nodes.tracers.characters.stop()}}
-
-% \starttext
-% \starttracingnodes[characters]
-% \input tufte \par
-% \input tufte \par
-% \stoptracingnodes
-% \stoptext
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/node-inj.lua b/Master/texmf-dist/tex/context/base/node-inj.lua
new file mode 100644
index 00000000000..dc676a412ed
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/node-inj.lua
@@ -0,0 +1,417 @@
+if not modules then modules = { } end modules ['node-inj'] = {
+ version = 1.001,
+ comment = "companion to node-ini.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- tricky ... fonts.ids is not yet defined .. to be solved (maybe general tex ini)
+
+-- This is very experimental (this will change when we have luatex > .50 and
+-- a few pending thingies are available. Also, Idris needs to make a few more
+-- test fonts.
+
+local next = next
+
+local trace_injections = false trackers.register("nodes.injections", function(v) trace_injections = v end)
+
+fonts = fonts or { }
+fonts.tfm = fonts.tfm or { }
+fonts.ids = fonts.ids or { }
+
+local fontdata = fonts.ids
+
+local glyph = node.id('glyph')
+local kern = node.id('kern')
+
+local traverse_id = node.traverse_id
+local has_attribute = node.has_attribute
+local set_attribute = node.set_attribute
+local insert_node_before = node.insert_before
+local insert_node_after = node.insert_after
+
+local newkern = nodes.kern
+
+local markbase = attributes.private('markbase')
+local markmark = attributes.private('markmark')
+local markdone = attributes.private('markdone')
+local cursbase = attributes.private('cursbase')
+local curscurs = attributes.private('curscurs')
+local cursdone = attributes.private('cursdone')
+local kernpair = attributes.private('kernpair')
+
+local cursives = { }
+local marks = { }
+local kerns = { }
+
+-- currently we do gpos/kern in a bit inofficial way but when we
+-- have the extra fields in glyphnodes to manipulate ht/dp/wd
+-- explicitly i will provide an alternative; also, we can share
+-- tables
+
+function nodes.set_cursive(start,nxt,factor,rlmode,exit,entry,tfmstart,tfmnext)
+ local dx, dy = factor*(exit[1]-entry[1]), factor*(exit[2]-entry[2])
+ local ws, wn = tfmstart.width, tfmnext.width
+ local bound = #cursives + 1
+ set_attribute(start,cursbase,bound)
+ set_attribute(nxt,curscurs,bound)
+ cursives[bound] = { rlmode, dx, dy, ws, wn }
+ return dx, dy, bound
+end
+
+function nodes.set_pair(current,factor,rlmode,spec,tfmchr)
+ local x, y, w, h = factor*spec[1], factor*spec[2], factor*spec[3], factor*spec[4]
+ -- dy = y - h
+ if x ~= 0 or w ~= 0 or y ~= 0 or h ~= 0 then
+ local bound = has_attribute(current,kernpair)
+ if bound then
+ local kb = kerns[bound]
+ kb[2], kb[3], kb[4], kb[5] = kb[2] + x, kb[3] + y, kb[4] + w, kb[5] + h
+ else
+ bound = #kerns + 1
+ set_attribute(current,kernpair,bound)
+ kerns[bound] = { rlmode, x, y, w, h }
+ end
+ return x, y, w, h, bound
+ end
+ return x, y, w, h -- no bound
+end
+
+function nodes.set_kern(current,factor,rlmode,x,tfmchr)
+ local dx = factor*x
+ if dx ~= 0 then
+ local bound = #kerns + 1
+ set_attribute(current,kernpair,bound)
+ kerns[bound] = { rlmode, dx }
+ end
+ return dx, bound
+end
+
+function nodes.set_mark(start,base,factor,rlmode,ba,ma,index) --ba=baseanchor, ma=markanchor
+ local dx, dy = factor*(ba[1]-ma[1]), factor*(ba[2]-ma[2])
+ local bound = has_attribute(base,markbase)
+ if bound then
+ local mb = marks[bound]
+ if mb then
+ if not index then index = #mb + 1 end
+ mb[index] = { dx, dy }
+ set_attribute(start,markmark,bound)
+ set_attribute(start,markdone,index)
+ return dx, dy, bound
+ else
+ logs.report("nodes mark", "possible problem, U+%04X is base without data (id: %s)",base.char,bound)
+ end
+ end
+ index = index or 1
+ bound = #marks + 1
+ set_attribute(base,markbase,bound)
+ set_attribute(start,markmark,bound)
+ set_attribute(start,markdone,index)
+ marks[bound] = { [index] = { dx, dy } }
+ return dx, dy, bound
+end
+
+function nodes.trace_injection(head)
+ local function dir(n)
+ return (n and n<0 and "r-to-l") or (n and n>0 and "l-to-r") or ("unset")
+ end
+ local function report(...)
+ logs.report("nodes finisher",...)
+ end
+ report("begin run")
+ for n in traverse_id(glyph,head) do
+ if n.subtype < 256 then
+ local kp = has_attribute(n,kernpair)
+ local mb = has_attribute(n,markbase)
+ local mm = has_attribute(n,markmark)
+ local md = has_attribute(n,markdone)
+ local cb = has_attribute(n,cursbase)
+ local cc = has_attribute(n,curscurs)
+ report("char U+%05X, font=%s",n.char,n.font)
+ if kp then
+ local k = kerns[kp]
+ if k[3] then
+ report(" pairkern: dir=%s, x=%s, y=%s, w=%s, h=%s",dir(k[1]),k[2] or "?",k[3] or "?",k[4] or "?",k[5] or "?")
+ else
+ report(" kern: dir=%s, dx=%s",dir(k[1]),k[2] or "?")
+ end
+ end
+ if mb then
+ report(" markbase: bound=%s",mb)
+ end
+ if mm then
+ local m = marks[mm]
+ if mb then
+ local m = m[mb]
+ if m then
+ report(" markmark: bound=%s, index=%s, dx=%s, dy=%s",mm,md or "?",m[1] or "?",m[2] or "?")
+ else
+ report(" markmark: bound=%s, missing index",mm)
+ end
+ else
+ m = m[1]
+ report(" markmark: bound=%s, dx=%s, dy=%s",mm,m[1] or "?",m[2] or "?")
+ end
+ end
+ if cb then
+ report(" cursbase: bound=%s",cb)
+ end
+ if cc then
+ local c = cursives[cc]
+ report(" curscurs: bound=%s, dir=%s, dx=%s, dy=%s",cc,dir(c[1]),c[2] or "?",c[3] or "?")
+ end
+ end
+ end
+ report("end run")
+end
+
+-- todo: reuse tables (i.e. no collection), but will be extra fields anyway
+
+function nodes.inject_kerns(head,where,keep)
+ local has_marks, has_cursives, has_kerns = next(marks), next(cursives), next(kerns)
+ if has_marks or has_cursives then
+ if trace_injections then
+ nodes.trace_injection(head)
+ end
+ -- in the future variant we will not copy items but refs to tables
+ local done, ky, rl, valid, cx, wx, mk = false, { }, { }, { }, { }, { }, { }
+ if has_kerns then -- move outside loop
+ local nf, tm = nil, nil
+ for n in traverse_id(glyph,head) do
+ if n.subtype < 256 then
+ valid[#valid+1] = n
+ if n.font ~= nf then
+ nf = n.font
+ tm = fontdata[nf].marks
+ end
+ mk[n] = tm[n.char]
+ local k = has_attribute(n,kernpair)
+ if k then
+ local kk = kerns[k]
+ if kk then
+ local x, y, w, h = kk[2], kk[3], kk[4], kk[5]
+ local dy = y - h
+ if dy ~= 0 then
+ ky[n] = dy
+ end
+ if w ~= 0 or x ~= 0 then
+ wx[n] = kk
+ end
+ rl[n] = kk[1] -- could move in test
+ end
+ end
+ end
+ end
+ else
+ local nf, tm = nil, nil
+ for n in traverse_id(glyph,head) do
+ if n.subtype < 256 then
+ valid[#valid+1] = n
+ if n.font ~= nf then
+ nf = n.font
+ tm = fontdata[nf].marks
+ end
+ mk[n] = tm[n.char]
+ end
+ end
+ end
+ if #valid > 0 then
+ -- we can assume done == true because we have cursives and marks
+ local cx = { }
+ if has_kerns and next(ky) then
+ for n, k in next, ky do
+ n.yoffset = k
+ end
+ end
+ -- todo: reuse t and use maxt
+ if has_cursives then
+ local p_cursbase, p = nil, nil
+ -- since we need valid[n+1] we can also use a "while true do"
+ local t, d, maxt = { }, { }, 0
+ for i=1,#valid do -- valid == glyphs
+ local n = valid[i]
+ if not mk[n] then
+ local n_cursbase = has_attribute(n,cursbase)
+ if p_cursbase then
+ local n_curscurs = has_attribute(n,curscurs)
+ if p_cursbase == n_curscurs then
+ local c = cursives[n_curscurs]
+ if c then
+ local rlmode, dx, dy, ws, wn = c[1], c[2], c[3], c[4], c[5]
+ if rlmode >= 0 then
+ dx = dx - ws
+ else
+ dx = dx + wn
+ end
+ if dx ~= 0 then
+ cx[n] = dx
+ rl[n] = rlmode
+ end
+ -- if rlmode and rlmode < 0 then
+ dy = -dy
+ -- end
+ maxt = maxt + 1
+ t[maxt] = p
+ d[maxt] = dy
+ else
+ maxt = 0
+ end
+ end
+ elseif maxt > 0 then
+ local ny = n.yoffset
+ for i=maxt,1,-1 do
+ ny = ny + d[i]
+ local ti = t[i]
+ ti.yoffset = ti.yoffset + ny
+ end
+ maxt = 0
+ end
+ if not n_cursbase and maxt > 0 then
+ local ny = n.yoffset
+ for i=maxt,1,-1 do
+ ny = ny + d[i]
+ local ti = t[i]
+ ti.yoffset = ny
+ end
+ maxt = 0
+ end
+ p_cursbase, p = n_cursbase, n
+ end
+ end
+ if maxt > 0 then
+ local ny = n.yoffset
+ for i=maxt,1,-1 do
+ ny = ny + d[i]
+ local ti = t[i]
+ ti.yoffset = ny
+ end
+ maxt = 0
+ end
+ if not keep then
+ cursives = { }
+ end
+ end
+ if has_marks then
+ for i=1,#valid do
+ local p = valid[i]
+ local p_markbase = has_attribute(p,markbase)
+ if p_markbase then
+ local mrks = marks[p_markbase]
+ for n in traverse_id(glyph,p.next) do
+ local n_markmark = has_attribute(n,markmark)
+ if p_markbase == n_markmark then
+ local index = has_attribute(n,markdone) or 1
+ local d = mrks[index]
+ if d then
+ -- local rlmode = d[3] -- not used
+ -- if rlmode and rlmode < 0 then
+ -- n.xoffset = p.xoffset + d[1]
+ -- else
+ n.xoffset = p.xoffset - d[1]
+--~ local k = wx[p]
+--~ if k then
+--~ wx[n] = k
+--~ end
+ -- end
+ if mk[p] then
+ n.yoffset = p.yoffset + d[2]
+ else
+ n.yoffset = n.yoffset + p.yoffset + d[2]
+ end
+ end
+ else
+ break
+ end
+ end
+ end
+ end
+ if not keep then
+ marks = { }
+ end
+ end
+ -- todo : combine
+ if next(wx) then
+ for n, k in next, wx do
+ -- only w can be nil, can be sped up when w == nil
+ local rl, x, w = k[1], k[2] or 0, k[4] or 0
+ local wx = w - x
+ if rl < 0 then
+ if wx ~= 0 then
+ insert_node_before(head,n,newkern(wx))
+ end
+ if x ~= 0 then
+ insert_node_after (head,n,newkern(x))
+ end
+ else
+ -- if wx ~= 0 then
+ -- insert_node_after(head,n,newkern(wx))
+ -- end
+ if x ~= 0 then
+ insert_node_before(head,n,newkern(x))
+ end
+ end
+ end
+ end
+ if next(cx) then
+ for n, k in next, cx do
+ if k ~= 0 then
+ local rln = rl[n]
+ if rln and rln < 0 then
+ insert_node_before(head,n,newkern(-k))
+ else
+ insert_node_before(head,n,newkern(k))
+ end
+ end
+ end
+ end
+ if not keep then
+ kerns = { }
+ end
+ return head, true
+ elseif not keep then
+ kerns, cursives, marks = { }, { }, { }
+ end
+ elseif has_kerns then
+ if trace_injections then
+ nodes.trace_injection(head)
+ end
+ -- we assume done is true because there are kerns
+ for n in traverse_id(glyph,head) do
+ local k = has_attribute(n,kernpair)
+ if k then
+ local kk = kerns[k]
+ if kk then
+ -- only w can be nil, can be sped up when w == nil
+ local rl, x, y, w = kk[1], kk[2] or 0, kk[3] or 0, kk[4] or 0
+ if y ~= 0 then
+ n.yoffset = y -- todo: h ?
+ end
+ local wx = w - x
+ if rl < 0 then
+ if wx ~= 0 then
+ insert_node_before(head,n,newkern(wx))
+ end
+ if x ~= 0 then
+ insert_node_after (head,n,newkern(x))
+ end
+ else
+ -- if wx ~= 0 then
+ -- insert_node_after(head,n,newkern(wx))
+ -- end
+ if x ~= 0 then
+ insert_node_before(head,n,newkern(x))
+ end
+ end
+ end
+ end
+ end
+ if not keep then
+ kerns = { }
+ end
+ return head, true
+ else
+ -- no tracing needed
+ end
+ return head, false
+end
diff --git a/Master/texmf-dist/tex/context/base/node-par.lua b/Master/texmf-dist/tex/context/base/node-par.lua
new file mode 100644
index 00000000000..f275a103559
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/node-par.lua
@@ -0,0 +1,43 @@
+if not modules then modules = { } end modules ['node-par'] = {
+ version = 1.001,
+ comment = "companion to node-par.lua",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+parbuilders = parbuilders or { }
+parbuilders.constructors = parbuilders.constructors or { }
+parbuilders.names = parbuilders.names or { }
+parbuilders.attribute = attributes.numbers['parbuilder'] or 999
+
+storage.register("parbuilders.names", parbuilders.names, "parbuilders.names")
+
+-- store parbuilders.names
+
+function parbuilders.register(name,attribute)
+ parbuilders.names[attribute] = name
+end
+
+function parbuilders.main(head,interupted_by_display)
+ local attribute = node.has_attribute(head,parbuilders.attribute)
+ if attribute then
+ local constructor = parbuilders.names[attribute]
+ if constructor then
+ return parbuilders.constructors[constructor](head,interupted_by_display)
+ end
+ end
+ return false
+end
+
+-- just for testing
+
+function parbuilders.constructors.default(head,ibd)
+ return false
+end
+
+-- also for testing (no surrounding spacing done)
+
+function parbuilders.constructors.oneline(head,ibd)
+ return node.hpack(head)
+end
diff --git a/Master/texmf-dist/tex/context/base/node-par.mkiv b/Master/texmf-dist/tex/context/base/node-par.mkiv
new file mode 100644
index 00000000000..7f7ca9977f8
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/node-par.mkiv
@@ -0,0 +1,60 @@
+%D \module
+%D [ file=node-par,
+%D version=2008.09.30,
+%D title=\CONTEXT\ Node Macros,
+%D subtitle=Paragraph Building,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Node Macros / Paragraph Building}
+
+%D This is very experimental, undocumented, subjected to changes, etc. just as
+%D the underlying interfaces.
+
+% \enableparbuilders
+%
+% \startparbuilder[default]
+% \input tufte \par
+% \startparbuilder[oneline]
+% \input tufte \par
+% \stopparbuilder
+% \input tufte \par
+% \stopparbuilder
+
+\unprotect
+
+\registerctxluafile{node-par}{1.001}
+
+\definesystemattribute[parbuilder]
+
+\newcount\nofparbuilders
+
+\def\defineparbuilder[#1]%
+ {\global\advance\nofparbuilders\plusone
+ \ctxlua{parbuilders.register("#1",\number\nofparbuilders)}%
+ \setxvalue{\??ng:#1}{\dosetattribute{parbuilder}{\number\nofparbuilders}}}
+
+\def\startparbuilder[#1]%
+ {\edef\@@currentparbuilder{\number\dogetattribute{parbuilder}}%
+ \globalpushmacro\@@currentparbuilder
+ \getvalue{\??ng:#1}}
+
+\def\stopparbuilder
+ {\globalpopmacro\@@currentparbuilder
+ \dosetattribute{parbuilder}{\@@currentparbuilder}}
+
+% no high level interface, after all implementing a linebreaker is not something that
+% the average user will do
+
+\defineparbuilder[default] % just for testing
+\defineparbuilder[oneline] % just for testing
+
+\def\enableparbuilders {\ctxlua{callback.register('linebreak_filter', parbuilders.main)}}
+\def\disableparbuilders{\ctxlua{callback.register('linebreak_filter', nil)}}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/node-pro.lua b/Master/texmf-dist/tex/context/base/node-pro.lua
new file mode 100644
index 00000000000..acc3f1676f8
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/node-pro.lua
@@ -0,0 +1,151 @@
+if not modules then modules = { } end modules ['node-pro'] = {
+ version = 1.001,
+ comment = "companion to node-ini.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local utf = unicode.utf8
+local format, concat = string.format, table.concat
+
+local trace_callbacks = false trackers.register("nodes.callbacks", function(v) trace_callbacks = v end)
+
+local glyph = node.id('glyph')
+
+local free_node = node.free
+local first_character = node.first_character
+
+nodes.processors = nodes.processors or { }
+
+-- vbox: grouptype: vbox vtop output split_off split_keep | box_type: exactly|aditional
+-- hbox: grouptype: hbox adjusted_hbox(=hbox_in_vmode) | box_type: exactly|aditional
+
+lists = lists or { }
+chars = chars or { }
+words = words or { } -- not used yet
+
+local actions = tasks.actions("processors",2) -- head, where, boolean
+
+local n = 0
+
+local function reconstruct(head)
+ local t = { }
+ local h = head
+ while h do
+ local id = h.id
+ if id == glyph then
+ t[#t+1] = utf.char(h.char)
+ else
+ t[#t+1] = "[]"
+ end
+ h = h.next
+ end
+ return concat(t)
+end
+
+local function tracer(what,state,head,groupcode,before,after,show)
+ if not groupcode then
+ groupcode = "unknown"
+ elseif groupcode == "" then
+ groupcode = "mvl"
+ end
+ n = n + 1
+ if show then
+ texio.write_nl(format("%s %s: %s, group: %s, nodes: %s -> %s, string: %s",what,n,state,groupcode,before,after,reconstruct(head)))
+ else
+ texio.write_nl(format("%s %s: %s, group: %s, nodes: %s -> %s",what,n,state,groupcode,before,after))
+ end
+end
+
+nodes.processors.enabled = true -- thsi will become a proper state (like trackers)
+
+function nodes.processors.pre_linebreak_filter(head,groupcode)
+ local first, found = first_character(head)
+ if found then
+ if trace_callbacks then
+ local before = nodes.count(head,true)
+ local head, done = actions(head,groupcode)
+ local after = nodes.count(head,true)
+ if done then
+ tracer("pre_linebreak","changed",head,groupcode,before,after,true)
+ else
+ tracer("pre_linebreak","unchanged",head,groupcode,before,after,true)
+ end
+ return (done and head) or true
+ else
+ local head, done = actions(head,groupcode)
+ return (done and head) or true
+ end
+ elseif trace_callbacks then
+ local n = nodes.count(head,false)
+ tracer("pre_linebreak","no chars",head,groupcode,n,n)
+ end
+ return true
+end
+
+function nodes.processors.hpack_filter(head,groupcode)
+ local first, found = first_character(head)
+ if found then
+ if trace_callbacks then
+ local before = nodes.count(head,true)
+ local head, done = actions(head,groupcode)
+ local after = nodes.count(head,true)
+ if done then
+ tracer("hpack","changed",head,groupcode,before,after,true)
+ else
+ tracer("hpack","unchanged",head,groupcode,before,after,true)
+ end
+ return (done and head) or true
+ else
+ local head, done = actions(head,groupcode)
+ return (done and head) or true
+ end
+ elseif trace_callbacks then
+ local n = nodes.count(head,false)
+ tracer("hpack","no chars",head,groupcode,n,n)
+ end
+ return true
+end
+
+callback.register('pre_linebreak_filter', nodes.processors.pre_linebreak_filter)
+callback.register('hpack_filter' , nodes.processors.hpack_filter)
+
+local actions = tasks.actions("finalizers",2) -- head, where, boolean
+
+-- beware, these are packaged boxes so no first_character test
+-- maybe some day a hash with valid groupcodes
+--
+-- beware, much can pass twice, for instance vadjust passes two times
+
+function nodes.processors.post_linebreak_filter(head,groupcode)
+--~ local first, found = first_character(head)
+--~ if found then
+ if trace_callbacks then
+ local before = nodes.count(head,true)
+ local head, done = actions(head,groupcode)
+ local after = nodes.count(head,true)
+ if done then
+ tracer("finalizer","changed",head,groupcode,before,after,true)
+ else
+ tracer("finalizer","unchanged",head,groupcode,before,after,true)
+ end
+ return (done and head) or true
+ else
+ local head, done = actions(head,groupcode)
+ return (done and head) or true
+ end
+--~ elseif trace_callbacks then
+--~ local n = nodes.count(head,false)
+--~ tracer("finalizer","no chars",head,groupcode,n,n)
+--~ end
+--~ return true
+end
+
+callback.register('post_linebreak_filter', nodes.processors.post_linebreak_filter)
+
+statistics.register("h-node processing time", function()
+ if statistics.elapsedindeed(nodes) then
+ return format("%s seconds including kernel", statistics.elapsedtime(nodes))
+ end
+end)
diff --git a/Master/texmf-dist/tex/context/base/node-ref.lua b/Master/texmf-dist/tex/context/base/node-ref.lua
new file mode 100644
index 00000000000..04598082304
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/node-ref.lua
@@ -0,0 +1,519 @@
+if not modules then modules = { } end modules ['node-bck'] = {
+ version = 1.001,
+ comment = "companion to node-bck.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- We supported pdf right from the start and in mkii this has resulted in
+-- extensive control over the links. Nowadays pdftex provides a lot more
+-- control over margins but as mkii supports multiple backends we stuck to
+-- our own mechanisms. In mkiv again we implement our own handling. Eventually
+-- we will even disable the pdf primitives.
+
+-- helper, will end up in luatex
+
+local cleanupreferences, cleanupdestinations = false, true
+
+local nodeinjections = backends.nodeinjections
+local codeinjections = backends.codeinjections
+
+local hpack_list = node.hpack
+local list_dimensions = node.dimensions
+
+-- current.glue_set current.glue_sign
+
+local trace_backend = false trackers.register("nodes.backend", function(v) trace_backend = v end)
+local trace_references = false trackers.register("nodes.references", function(v) trace_references = v end)
+local trace_destinations = false trackers.register("nodes.destinations", function(v) trace_destinations = v end)
+
+local hlist = node.id("hlist")
+local vlist = node.id("vlist")
+local glue = node.id("glue")
+local whatsit = node.id("whatsit")
+
+local new_kern = nodes.kern
+
+local has_attribute = node.has_attribute
+local traverse = node.traverse
+local find_node_tail = node.tail or node.slide
+local tosequence = nodes.tosequence
+
+local function dimensions(parent,start,stop)
+ stop = stop and stop.next
+ if parent then
+ if stop then
+ return list_dimensions(parent.glue_set,parent.glue_sign,parent.glue_order,start,stop)
+ else
+ return list_dimensions(parent.glue_set,parent.glue_sign,parent.glue_order,start)
+ end
+ else
+ if stop then
+ return list_dimensions(start,stop)
+ else
+ return list_dimensions(start)
+ end
+ end
+end
+
+--~ more compact
+
+local function dimensions(parent,start,stop)
+ if parent then
+ return list_dimensions(parent.glue_set,parent.glue_sign,parent.glue_order,start,stop and stop.next)
+ else
+ return list_dimensions(start,stop and stop.next)
+ end
+end
+
+local function inject_range(head,first,last,reference,make,stack,parent,pardir,txtdir)
+ local width, height, depth = dimensions(parent,first,last)
+ if pardir == "TRT" or txtdir == "+TRT" then
+ width = - width
+ end
+ local result, resolved = make(width,height,depth,reference)
+ if result and resolved then
+ if head == first then
+ if trace_backend then
+ logs.report("backend","head: %04i %s %s %s => w=%s, h=%s, d=%s, c=%s",reference,pardir or "---",txtdir or "----",tosequence(first,last,true),width,height,depth,resolved)
+ end
+ result.next = first
+ first.prev = result
+ return result, last
+ else
+ if trace_backend then
+ logs.report("backend","middle: %04i %s %s => w=%s, h=%s, d=%s, c=%s",reference,pardir or "---",txtdir or "----",tosequence(first,last,true),width,height,depth,resolved)
+ end
+ local prev = first.prev
+ if prev then
+ result.next = first
+ result.prev = prev
+ prev.next = result
+ first.prev = result
+ else
+ result.next = first
+ first.prev = result
+ end
+ if first == head.next then
+ head.next = result -- hm, weird
+ end
+ return head, last
+ end
+ else
+ return head, last
+ end
+end
+
+local function inject_list(id,current,reference,make,stack,pardir,txtdir)
+ local width, height, depth, correction = current.width, current.height, current.depth, 0
+ local moveright = false
+ local first = current.list
+ if id == hlist then
+ -- can be either an explicit hbox or a line and there is no way
+ -- to recognize this; anyway only if ht/dp (then inline)
+ local sr = stack[reference]
+ if first then
+ if sr and sr[2] then
+ local last = find_node_tail(first)
+ if last.id == glue and last.subtype == 9 then
+ local prev = last.prev
+ moveright = first.id == glue and first.subtype == 8
+ if prev and prev.id == glue and prev.subtype == 15 then
+ width = dimensions(current,first,prev.prev) -- maybe not current as we already take care of it
+ else
+ if moveright and first.spec then
+ width = width - first.spec.stretch*current.glue_set * current.glue_sign
+ end
+ if last.spec then
+ width = width - last.spec.stretch*current.glue_set * current.glue_sign
+ end
+ end
+ end
+ else
+ -- also weird
+ end
+ else
+ -- ok
+ end
+ correction = width
+ else
+ correction = height + depth
+ height, depth = depth, height -- ugly hack, needed because pdftex backend does something funny
+ end
+ if pardir == "TRT" then
+ width = - width
+ end
+ local result, resolved = make(width,height,depth,reference)
+ if result and resolved then
+ if trace_backend then
+ logs.report("backend","box: %04i %s %s: w=%s, h=%s, d=%s, c=%s",reference,pardir or "---",txtdir or "----",width,height,depth,resolved)
+ end
+ if not first then
+ current.list = result
+ elseif moveright then -- brr no prevs done
+ -- result after first
+ local n = first.next
+ result.next = n
+ first.next = result
+ result.prev = first
+ if n then n.prev = result end
+ else
+ -- first after result
+ result.next = first
+ first.prev = result
+ current.list = result
+ end
+ end
+end
+
+-- skip is somewhat messy
+
+local function inject_areas(head,attribute,make,stack,done,skip,parent,pardir,txtdir) -- main
+ if head then
+ local current, first, last, firstdir, reference = head, nil, nil, nil, nil
+ pardir = pardir or "==="
+ txtdir = txtdir or "==="
+ while current do
+ local id = current.id
+ local r = has_attribute(current,attribute)
+ if id == whatsit then
+ local subtype = current.subtype
+ if subtype == 6 then
+ pardir = current.dir
+ elseif subtype == 7 then
+ txtdir = current.dir
+ end
+ elseif id == hlist or id == vlist then
+--~ if r and (not skip or r > skip) then
+ if not reference and r and (not skip or r > skip) then
+ inject_list(id,current,r,make,stack,pardir,txtdir)
+--~ done[r] = true
+ end
+if r then done[r] = (done[r] or 0) + 1 end
+ local list = current.list
+ if list then
+ local _
+ current.list, _, pardir, txtdir = inject_areas(list,attribute,make,stack,done,r or skip or 0,current,pardir,txtdir)
+ end
+if r then done[r] = done[r] - 1 end
+ elseif not r then
+ -- just go on, can be kerns
+ elseif not reference then
+ reference, first, last, firstdir = r, current, current, txtdir
+ elseif r == reference then
+ last = current
+--~ elseif not done[reference] then
+elseif (done[reference] or 0) == 0 then
+ if not skip or r > skip then
+ head, current = inject_range(head,first,last,reference,make,stack,parent,pardir,firstdir)
+ reference, first, last, firstdir = nil, nil, nil, nil
+ end
+ else
+ reference, first, last, firstdir = r, current, current, txtdir
+ end
+ current = current.next
+ end
+--~ if reference and not done[reference] then
+ if reference and (done[reference] or 0) == 0 then
+ head = inject_range(head,first,last,reference,make,stack,parent,pardir,firstdir)
+ end
+ end
+ return head, true, pardir, txtdir
+end
+
+local function inject_area(head,attribute,make,stack,done,parent,pardir,txtdir) -- singular !
+ if head then
+ pardir = pardir or "==="
+ txtdir = txtdir or "==="
+ local current = head
+ while current do
+ local id = current.id
+ local r = has_attribute(current,attribute)
+ if id == whatsit then
+ local subtype = current.subtype
+ if subtype == 6 then
+ pardir = current.dir
+ elseif subtype == 7 then
+ txtdir = current.dir
+ end
+ elseif id == hlist or id == vlist then
+ if r and not done[r] then
+ done[r] = true
+ inject_list(id,current,r,make,stack,pardir,txtdir)
+ end
+ current.list = inject_area(current.list,attribute,make,stack,done,current,pardir,txtdir)
+ elseif r and not done[r] then
+ done[r] = true
+ head, current = inject_range(head,current,current,r,make,stack,parent,pardir,txtdir)
+ end
+ current = current.next
+ end
+ end
+ return head, true
+end
+
+-- tracing
+
+local new_rule = nodes.rule
+local new_kern = nodes.kern
+local set_attribute = node.set_attribute
+local register_color = colors.register
+
+local a_colormodel = attributes.private('colormodel')
+local a_color = attributes.private('color')
+local a_transparency = attributes.private('transparency')
+local u_transparency = nil
+local u_colors = { }
+local force_gray = true
+
+local function colorize(width,height,depth,n)
+ if force_gray then n = 0 end
+ u_transparency = u_transparency or transparencies.register(nil,2,.65)
+ local ucolor = u_colors[n]
+ if not ucolor then
+ if n == 1 then
+ u_color = register_color(nil,'rgb',.75,0,0)
+ elseif n == 2 then
+ u_color = register_color(nil,'rgb',0,.75,0)
+ elseif n == 3 then
+ u_color = register_color(nil,'rgb',0,0,.75)
+ else
+ n = 0
+ u_color = register_color(nil,'gray',.5)
+ end
+ u_colors[n] = u_color
+ end
+ local rule = new_rule(width,height,depth)
+ set_attribute(rule,a_colormodel,1) -- gray color model
+ set_attribute(rule,a_color,u_color)
+ set_attribute(rule,a_transparency,u_transparency)
+ if width < 0 then
+ local kern = new_kern(width)
+ rule.width = -width
+ kern.next = rule
+ rule.prev = kern
+ return kern
+ else
+ return rule
+ end
+end
+
+local new_kern = nodes.kern
+local texattribute = tex.attribute
+local texcount = tex.count
+
+-- references:
+
+nodes.references = {
+ attribute = attributes.private('reference'),
+ stack = { },
+ done = { },
+}
+
+local stack, done, attribute = nodes.references.stack, nodes.references.done, nodes.references.attribute
+
+local nofreferences, topofstack = 0, 0
+
+local function setreference(n,h,d,r) -- n is just a number, can be used for tracing
+ topofstack = topofstack + 1
+ stack[topofstack] = { n, h, d, codeinjections.prerollreference(r) } -- the preroll permits us to determine samepage (but delayed also has some advantages)
+--~ texattribute[attribute] = topofstack -- todo -> at tex end
+ texcount.lastreferenceattribute = topofstack
+end
+
+nodes.setreference = setreference
+
+local function makereference(width,height,depth,reference)
+ local sr = stack[reference]
+ if sr then
+ local resolved, ht, dp, set = sr[1], sr[2], sr[3], sr[4]
+ if ht then
+ if height < ht then height = ht end
+ if depth < dp then depth = dp end
+ end
+ local annot = nodeinjections.reference(width,height,depth,set)
+ if annot then
+ nofreferences = nofreferences + 1
+ local result, current
+ if trace_references then
+ local step = 65536
+ result = hpack_list(colorize(width,height-step,depth-step,2)) -- step subtracted so that we can see seperate links
+ result.width = 0
+ current = result
+ end
+ if current then
+ current.next = annot
+ else
+ result = annot
+ end
+ result = hpack_list(result,0)
+ result.width, result.height, result.depth = 0, 0, 0
+ if cleanupreferences then stack[reference] = nil end
+ return result, resolved
+ else
+ logs.report("backends","unable to resolve reference annotation %s",reference)
+ end
+ else
+ logs.report("backends","unable to resolve reference attribute %s",reference)
+ end
+end
+
+function nodes.add_references(head)
+ if topofstack > 0 then
+ return inject_areas(head,attribute,makereference,stack,done)
+ else
+ return head, false
+ end
+end
+
+-- destinations (we can clean up once set!)
+
+nodes.destinations = {
+ attribute = attributes.private('destination'),
+ stack = { },
+ done = { },
+}
+
+local stack, done, attribute = nodes.destinations.stack, nodes.destinations.done, nodes.destinations.attribute
+
+local nofdestinations, topofstack = 0, 0
+
+local function setdestination(n,h,d,name,view) -- n = grouplevel, name == table
+ topofstack = topofstack + 1
+ stack[topofstack] = { n, h, d, name, view }
+ return topofstack
+end
+
+nodes.setdestination = setdestination
+
+local function makedestination(width,height,depth,reference)
+ local sr = stack[reference]
+ if sr then
+ local resolved, ht, dp, name, view = sr[1], sr[2], sr[3], sr[4], sr[5]
+ if ht then
+ if height < ht then height = ht end
+ if depth < dp then depth = dp end
+ end
+ local result, current
+ if trace_destinations then
+ local step = 0
+ if width == 0 then
+ step = 4*65536
+ width, height, depth = 5*step, 5*step, 0
+ end
+ for n=1,#name do
+ local rule = hpack_list(colorize(width,height,depth,3))
+ rule.width = 0
+ if not result then
+ result, current = rule, rule
+ else
+ current.next = rule
+ rule.prev = current
+ current = rule
+ end
+ width, height = width - step, height - step
+ end
+ end
+ nofdestinations = nofdestinations + 1
+ for n=1,#name do
+ local annot = nodeinjections.destination(width,height,depth,name[n],view)
+ if not result then
+ result, current = annot, annot
+ else
+ current.next = annot
+ annot.prev = current
+ current = annot
+ end
+ end
+ result = hpack_list(result,0)
+ result.width, result.height, result.depth = 0, 0, 0
+ if cleanupdestinations then stack[reference] = nil end
+ return result, resolved
+ else
+ logs.report("backends","unable to resolve destination attribute %s",reference)
+ end
+end
+
+function nodes.add_destinations(head)
+ if topofstack > 0 then
+ return inject_area(head,attribute,makedestination,stack,done) -- singular
+ else
+ return head, false
+ end
+end
+
+-- will move
+
+function jobreferences.mark(reference,h,d,view)
+ return setdestination(tex.currentgrouplevel,h,d,reference,view)
+end
+
+function jobreferences.inject(prefix,reference,h,d,highlight,newwindow,layer) -- todo: use currentreference is possible
+ local set, bug = jobreferences.identify(prefix,reference)
+ if bug or #set == 0 then
+ -- unknown ref, just don't set it and issue an error
+ else
+ -- check
+ set.highlight, set.newwindow,set.layer = highlight, newwindow, layer
+ setreference(tex.currentgrouplevel,h,d,set) -- sets attribute / todo: for set[*].error
+ end
+end
+
+function jobreferences.injectcurrentset(h,d) -- used inside doifelse
+ local currentset = jobreferences.currentset
+ if currentset then
+ setreference(tex.currentgrouplevel,h,d,currentset) -- sets attribute / todo: for set[*].error
+ end
+end
+
+--
+
+local function checkboth(open,close)
+ if open and open ~= "" then
+ local set, bug = jobreferences.identify("",open)
+ open = not bug and #set > 0 and set
+ end
+ if close and close ~= "" then
+ local set, bug = jobreferences.identify("",close)
+ close = not bug and #set > 0 and set
+ end
+ return open, close
+end
+
+-- expansion is temp hack
+
+local opendocument, closedocument, openpage, closepage
+
+local function check(what)
+ if what and what ~= "" then
+ local set, bug = jobreferences.identify("",what)
+ return not bug and #set > 0 and set
+ end
+end
+
+function jobreferences.checkopendocumentactions (open) opendocument = check(open) end
+function jobreferences.checkclosedocumentactions(close) closedocument = check(close) end
+function jobreferences.checkopenpageactions (open) openpage = check(open) end
+function jobreferences.checkclosepageactions (close) closepage = check(close) end
+
+function jobreferences.flushdocumentactions()
+ if opendocument or closedocument then
+ backends.codeinjections.flushdocumentactions(opendocument,closedocument) -- backend
+ end
+end
+function jobreferences.flushpageactions()
+ if openpage or closepage then
+ backends.codeinjections.flushpageactions(openpage,closepage) -- backend
+ end
+end
+
+-- end temp hack
+
+statistics.register("interactive elements", function()
+ if nofreferences > 0 or nofdestinations > 0 then
+ return string.format("%s references, %s destinations",nofreferences,nofdestinations)
+ else
+ return nil
+ end
+end)
diff --git a/Master/texmf-dist/tex/context/base/node-res.lua b/Master/texmf-dist/tex/context/base/node-res.lua
new file mode 100644
index 00000000000..4f2cf5a0509
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/node-res.lua
@@ -0,0 +1,118 @@
+if not modules then modules = { } end modules ['node-res'] = {
+ version = 1.001,
+ comment = "companion to node-ini.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local gmatch, format = string.gmatch, string.format
+local copy_node, free_node, free_list, new_node = node.copy, node.free, node.flush_list, node.new
+
+--[[ldx--
+<p>The next function is not that much needed but in <l n='context'/> we use
+for debugging <l n='luatex'/> node management.</p>
+--ldx]]--
+
+nodes = nodes or { }
+
+local reserved = { }
+
+function nodes.register(n)
+ reserved[#reserved+1] = n
+ return n
+end
+
+function nodes.cleanup_reserved(nofboxes) -- todo
+ nodes.tracers.steppers.reset() -- todo: make a registration subsystem
+ local nr, nl = #reserved, 0
+ for i=1,nr do
+ free_node(reserved[i])
+ end
+ if nofboxes then
+ local tb = tex.box
+ for i=0,nofboxes do
+ local l = tb[i]
+ if l then
+ free_node(tb[i])
+ nl = nl + 1
+ end
+ end
+ end
+ reserved = { }
+ return nr, nl, nofboxes -- can be nil
+end
+
+function nodes.usage()
+ local t = { }
+ for n, tag in gmatch(status.node_mem_usage,"(%d+) ([a-z_]+)") do
+ t[tag] = n
+ end
+ return t
+end
+
+local disc = nodes.register(new_node("disc"))
+local kern = nodes.register(new_node("kern",1))
+local penalty = nodes.register(new_node("penalty"))
+local glue = nodes.register(new_node("glue"))
+local glue_spec = nodes.register(new_node("glue_spec"))
+local glyph = nodes.register(new_node("glyph",0))
+local textdir = nodes.register(new_node("whatsit",7))
+local rule = nodes.register(new_node("rule"))
+local latelua = nodes.register(new_node("whatsit",35))
+
+function nodes.glyph(fnt,chr)
+ local n = copy_node(glyph)
+ if fnt then n.font = fnt end
+ if chr then n.char = chr end
+ return n
+end
+function nodes.penalty(p)
+ local n = copy_node(penalty)
+ n.penalty = p
+ return n
+end
+function nodes.kern(k)
+ local n = copy_node(kern)
+ n.kern = k
+ return n
+end
+function nodes.glue(width,stretch,shrink)
+ local n, s = copy_node(glue), copy_node(glue_spec)
+ s.width, s.stretch, s.shrink = width, stretch, shrink
+ n.spec = s
+ return n
+end
+function nodes.glue_spec(width,stretch,shrink)
+ local s = copy_node(glue_spec)
+ s.width, s.stretch, s.shrink = width, stretch, shrink
+ return s
+end
+function nodes.disc()
+ return copy_node(disc)
+end
+function nodes.textdir(dir)
+ local t = copy_node(textdir)
+ t.dir = dir
+ return t
+end
+function nodes.rule(w,h,d)
+ local n = copy_node(rule)
+ if w then n.width = w end
+ if h then n.height = h end
+ if d then n.depth = d end
+ return n
+end
+function nodes.latelua(code)
+ local n = copy_node(latelua)
+ n.data = code
+ return n
+end
+
+statistics.register("cleaned up reserved nodes", function()
+ return format("%s nodes, %s lists of %s", nodes.cleanup_reserved(tex.count["lastallocatedbox"]))
+end) -- \topofboxstack
+
+statistics.register("node memory usage", function() -- comes after cleanup !
+ return status.node_mem_usage
+end)
diff --git a/Master/texmf-dist/tex/context/base/node-seq.lua b/Master/texmf-dist/tex/context/base/node-seq.lua
new file mode 100644
index 00000000000..43ca8a99bab
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/node-seq.lua
@@ -0,0 +1,192 @@
+if not modules then modules = { } end modules ['node-seq'] = {
+ version = 1.001,
+ comment = "companion to node-ini.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+--[[ldx--
+<p>Here we implement a mechanism for chaining the special functions
+that we use in <l n="context"> to deal with mode list processing. We
+assume that namespaces for the functions are used, but for speed we
+use locals to refer to them when compiling the chain.</p>
+--ldx]]--
+
+local format, gsub, concat, gmatch = string.format, string.gsub, table.concat, string.gmatch
+
+sequencer = sequencer or { }
+
+local function validaction(action)
+ local g = _G
+ for str in gmatch(action,"[^%.]+") do
+ g = g[str]
+ if not g then
+ return false
+ end
+ end
+ return true
+end
+
+function sequencer.reset()
+ return {
+ list = { },
+ order = { },
+ kind = { },
+ }
+end
+
+function sequencer.prependgroup(t,group,where)
+ local list, order = t.list, t.order
+ table.remove_value(order,group)
+ table.insert_before_value(order,where,group)
+ list[group] = { }
+end
+
+function sequencer.appendgroup(t,group,where)
+ local list, order = t.list, t.order
+ table.remove_value(order,group)
+ table.insert_after_value(order,where,group)
+ list[group] = { }
+end
+
+function sequencer.prependaction(t,group,action,where,kind,force)
+ local g = t.list[group]
+ if g and (force or validaction(action)) then
+ table.remove_value(g,action)
+ table.insert_before_value(g,where,action)
+ t.kind[action] = kind
+ end
+end
+
+function sequencer.appendaction(t,group,action,where,kind,force)
+ local g = t.list[group]
+ if g and (force or validaction(action)) then
+ table.remove_value(g,action)
+ table.insert_after_value(g,where,action)
+ t.kind[action] = kind
+ end
+end
+
+function sequencer.setkind(t,action,kind)
+ t.kind[action] = kind
+end
+
+function sequencer.removeaction(t,group,action,force)
+ local g = t.list[group]
+ if g and (force or validaction(action)) then
+ table.remove_value(g,action)
+ end
+end
+
+function sequencer.compile(t,compiler,n)
+ if type(t) == "string" then
+ -- already compiled
+ elseif compiler then
+ t = compiler(t,n)
+ else
+ t = sequencer.tostring(t,n)
+ end
+ return loadstring(t)()
+end
+
+local function localize(str)
+ return (gsub(str,"%.","_"))
+end
+
+local template = [[
+%s
+return function(...)
+%s
+end]]
+
+function sequencer.tostring(t,n) -- n not done
+ local list, order, kind, vars, calls = t.list, t.order, t.kind, { }, { }
+ for i=1,#order do
+ local group = order[i]
+ local actions = list[group]
+ for i=1,#actions do
+ local action = actions[i]
+ local localized = localize(action)
+ vars [#vars +1] = format("local %s = %s", localized, action)
+ calls[#calls+1] = format(" %s(...) -- %s %i", localized, group, i)
+ end
+ end
+ return format(template,concat(vars,"\n"),concat(calls,"\n"))
+end
+
+-- we used to deal with tail as well but now that the lists are always
+-- double linked and the kernel function no longer expect tail as
+-- argument we stick to head and done (done can probably also go
+-- as luatex deals with return values efficiently now .. in the
+-- past there was some copying involved, but no longer)
+
+local template = [[
+%s
+return function(head%s)
+ local ok, done = false, false
+%s
+ return head, done
+end]]
+
+function sequencer.nodeprocessor(t,n)
+ local list, order, kind, vars, calls, args = t.list, t.order, t.kind, { }, { }, nil
+ if n == 0 then
+ args = ""
+ elseif n == 1 then
+ args = ",one"
+ elseif n == 2 then
+ args = ",one,two"
+ else
+ args = ",..."
+ end
+ for i=1,#order do
+ local group = order[i]
+ local actions = list[group]
+ for i=1,#actions do
+ local action = actions[i]
+ local localized = localize(action)
+ vars[#vars+1] = format("local %s = %s",localized,action)
+ if kind[action] == "nohead" then
+ calls[#calls+1] = format(" ok = %s(head%s) done = done or ok -- %s %i",localized,args,group,i)
+ else
+ calls[#calls+1] = format(" head, ok = %s(head%s) done = done or ok -- %s %i",localized,args,group,i)
+ end
+ end
+ end
+ local processor = format(template,concat(vars,"\n"),args,concat(calls,"\n"))
+ -- print(processor)
+ return processor
+end
+
+--~ hans = {}
+--~ taco = {}
+
+--~ function hans.a(head,tail) print("a",head,tail) return head,tail,true end
+--~ function hans.b(head,tail) print("b",head,tail) return head,tail,true end
+--~ function hans.c(head,tail) print("c",head,tail) return head,tail,true end
+--~ function hans.x(head,tail) print("x",head,tail) return head,tail,true end
+--~ function taco.i(head,tail) print("i",head,tail) return head,tail,true end
+--~ function taco.j(head,tail) print("j",head,tail) return head,tail,true end
+
+--~ t = sequencer.reset()
+
+--~ sequencer.appendgroup(t,"hans")
+--~ sequencer.appendgroup(t,"taco")
+--~ sequencer.prependaction(t,"hans","hans.a")
+--~ sequencer.appendaction (t,"hans","hans.b")
+--~ sequencer.appendaction (t,"hans","hans.x")
+--~ sequencer.prependaction(t,"hans","hans.c","hans.b")
+--~ sequencer.prependaction(t,"taco","taco.i")
+--~ sequencer.prependaction(t,"taco","taco.j")
+--~ sequencer.removeaction(t,"hans","hans.x")
+
+--~ sequencer.setkind(t,"hans.b")
+--~ sequencer.setkind(t,"taco.j","nohead")
+
+--~ print(sequencer.tostring(t))
+
+--~ s = sequencer.compile(t,sequencer.nodeprocessor)
+
+--~ print(sequencer.nodeprocessor(t))
+--~ print(s("head","tail"))
diff --git a/Master/texmf-dist/tex/context/base/node-ser.lua b/Master/texmf-dist/tex/context/base/node-ser.lua
new file mode 100644
index 00000000000..65c071c0050
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/node-ser.lua
@@ -0,0 +1,274 @@
+if not modules then modules = { } end modules ['node-ser'] = {
+ version = 1.001,
+ comment = "companion to node-ini.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- beware, some field names will change in a next releases
+-- of luatex; this is pretty old code that needs an overhaul
+
+local type, format, concat = type, string.format, table.concat
+
+local ctxcatcodes = tex.ctxcatcodes
+
+local hlist = node.id('hlist')
+local vlist = node.id('vlist')
+
+local traverse = node.traverse
+local node_fields = node.fields
+local node_type = node.type
+
+local expand = table.tohash {
+ "list", -- list_ptr & ins_ptr & adjust_ptr
+ "pre", --
+ "post", --
+ "spec", -- glue_ptr
+ "top_skip", --
+ "attr", --
+ "replace", -- nobreak
+ "components", -- lig_ptr
+ "box_left", --
+ "box_right", --
+ "glyph", -- margin_char
+ "leader", -- leader_ptr
+ "action", -- action_ptr
+ "value", -- user_defined nodes with subtype 'a' en 'n'
+}
+
+-- page_insert: "height", "last_ins_ptr", "best_ins_ptr"
+-- split_insert: "height", "last_ins_ptr", "best_ins_ptr", "broken_ptr", "broken_ins"
+
+local ignore = table.tohash {
+ "page_insert",
+ "split_insert",
+ "ref_count",
+}
+
+local dimension = table.tohash {
+ "width", "height", "depth", "shift",
+ "stretch", "shrink",
+ "xoffset", "yoffset",
+ "surround",
+ "kern",
+ "box_left_width", "box_right_width"
+}
+
+-- flat: don't use next, but indexes
+-- verbose: also add type
+-- can be sped up
+
+nodes.dimensionfields = dimension
+nodes.listablefields = expand
+nodes.ignorablefields = ignore
+
+-- not ok yet:
+
+function nodes.astable(n,sparse) -- not yet ok
+ local f, t = node_fields(n.id,n.subtype), { }
+ for i=1,#f do
+ local v = f[i]
+ local d = n[v]
+ if d then
+ if ignore[v] or v == "id" then
+ -- skip
+ elseif expand[v] then -- or: type(n[v]) ~= "string" or type(n[v]) ~= "number" or type(n[v]) ~= "table"
+ t[v] = "pointer to list"
+ elseif sparse then
+ if (type(d) == "number" and d ~= 0) or (type(d) == "string" and d ~= "") then
+ t[v] = d
+ end
+ else
+ t[v] = d
+ end
+ end
+ end
+ t.type = node_type(n.id)
+ return t
+end
+
+-- under construction:
+
+local function totable(n,flat,verbose)
+ -- todo: no local function
+ local function to_table(n,flat,verbose)
+ local f = node_fields(n.id,n.subtype)
+ local tt = { }
+ for k=1,#f do
+ local v = f[k]
+ local nv = n[v]
+ if nv then
+ if ignore[v] then
+ -- skip
+ elseif expand[v] then
+ if type(nv) == "number" or type(nv) == "string" then
+ tt[v] = nv
+ else
+ tt[v] = totable(nv,flat,verbose)
+ end
+ elseif type(nv) == "table" then
+ tt[v] = nv -- totable(nv,flat,verbose) -- data
+ else
+ tt[v] = nv
+ end
+ end
+ end
+ if verbose then
+ tt.type = node_type(tt.id)
+ end
+ return tt
+ end
+ if n then
+ if flat then
+ local t = { }
+ while n do
+ t[#t+1] = to_table(n,flat,verbise)
+ n = n.next
+ end
+ return t
+ else
+ local t = to_table(n)
+ if n.next then
+ t.next = totable(n.next,flat,verbose)
+ end
+ return t
+ end
+ else
+ return { }
+ end
+end
+
+nodes.totable = totable
+
+local function key(k)
+ return ((type(k) == "number") and "["..k.."]") or k
+end
+
+-- not ok yet; this will become a module
+
+local function serialize(root,name,handle,depth,m)
+ handle = handle or print
+ if depth then
+ depth = depth .. " "
+ handle(format("%s%s={",depth,key(name)))
+ else
+ depth = ""
+ local tname = type(name)
+ if tname == "string" then
+ if name == "return" then
+ handle("return {")
+ else
+ handle(name .. "={")
+ end
+ elseif tname == "number" then
+ handle("[" .. name .. "]={")
+ else
+ handle("t={")
+ end
+ end
+ if root then
+ local fld
+ if root.id then
+ fld = node_fields(root.id,root.subtype) -- we can cache these (todo)
+ else
+ fld = table.sortedkeys(root)
+ end
+ if type(root) == 'table' and root['type'] then -- userdata or table
+ handle(format("%s %s=%q,",depth,'type',root['type']))
+ end
+ for f=1,#fld do
+ local k = fld[f]
+ if k == "ref_count" then
+ -- skip
+ elseif k then
+ local v = root[k]
+ local t = type(v)
+ if t == "number" then
+ if v == 0 then
+ -- skip
+ else
+ handle(format("%s %s=%s,",depth,key(k),v))
+ end
+ elseif t == "string" then
+ if v == "" then
+ -- skip
+ else
+ handle(format("%s %s=%q,",depth,key(k),v))
+ end
+ elseif v then -- userdata or table
+ serialize(v,k,handle,depth,m+1)
+ end
+ end
+ end
+ if root['next'] then -- userdata or table
+ serialize(root['next'],'next',handle,depth,m+1)
+ end
+ end
+ if m and m > 0 then
+ handle(format("%s},",depth))
+ else
+ handle(format("%s}",depth))
+ end
+end
+
+function nodes.serialize(root,name)
+ local t = { }
+ local function flush(s)
+ t[#t+1] = s
+ end
+ serialize(root, name, flush, nil, 0)
+ return concat(t,"\n")
+end
+
+function nodes.serializebox(n,flat,verbose,name)
+ return nodes.serialize(nodes.totable(tex.box[n],flat,verbose),name)
+end
+
+function nodes.visualizebox(...)
+ tex.print(ctxcatcodes,"\\starttyping")
+ tex.print(nodes.serializebox(...))
+ tex.print("\\stoptyping")
+end
+
+function nodes.list(head,n) -- name might change to nodes.type
+ if not n then
+ tex.print(ctxcatcodes,"\\starttyping")
+ end
+ while head do
+ local id = head.id
+ tex.print(string.rep(" ",n or 0) .. tostring(head) .. "\n")
+ if id == hlist or id == vlist then
+ nodes.list(head.list,(n or 0)+1)
+ end
+ head = head.next
+ end
+ if not n then
+ tex.print("\\stoptyping")
+ end
+end
+
+function nodes.print(head,n)
+ while head do
+ local id = head.id
+ texio.write_nl(string.rep(" ",n or 0) .. tostring(head))
+ if id == hlist or id == vlist then
+ nodes.print(head.list,(n or 0)+1)
+ end
+ head = head.next
+ end
+end
+
+function nodes.check_for_leaks(sparse)
+ local l = { }
+ local q = node.usedlist()
+ for p in traverse(q) do
+ local s = table.serialize(nodes.astable(p,sparse),node_type(p.id))
+ l[s] = (l[s] or 0) + 1
+ end
+ node.flush_list(q)
+ for k, v in next, l do
+ texio.write_nl(format("%s * %s", v, k))
+ end
+end
+
diff --git a/Master/texmf-dist/tex/context/base/node-shp.lua b/Master/texmf-dist/tex/context/base/node-shp.lua
new file mode 100644
index 00000000000..8cde38dc0a8
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/node-shp.lua
@@ -0,0 +1,58 @@
+if not modules then modules = { } end modules ['node-shp'] = {
+ version = 1.001,
+ comment = "companion to node-ini.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local hlist = node.id('hlist')
+local vlist = node.id('vlist')
+local disc = node.id('disc')
+local mark = node.id('mark')
+local kern = node.id('kern')
+local glue = node.id('glue')
+
+local free_node = node.free
+local remove_node = node.remove
+
+local function cleanup_page(head) -- rough
+ local start = head
+ while start do
+ local id = start.id
+ if id == disc or (id == glue and not start.spec) or (id == kern and start.kern == 0) or id == mark then
+ head, start, tmp = remove_node(head,start)
+ free_node(tmp)
+ elseif id == hlist or id == vlist then
+ local sl = start.list
+ if sl then
+ start.list = cleanup_page(sl)
+ start = start.next
+ else
+ head, start, tmp = remove_node(head,start)
+ free_node(tmp)
+ end
+ else
+ start = start.next
+ end
+ end
+ return head
+end
+
+nodes.cleanup_page_first = false
+
+function nodes.cleanup_page(head)
+ -- about 10% of the nodes make no sense for the backend
+ if nodes.cleanup_page_first then
+ head = cleanup_page(head)
+ end
+ return head, false
+end
+
+local actions = tasks.actions("shipouts",0) -- no extra arguments
+
+function nodes.process_page(head) -- problem, attr loaded before node, todo ...
+ return actions(head)
+end
+
+--~ nodes.process_page = actions
diff --git a/Master/texmf-dist/tex/context/base/node-tex.lua b/Master/texmf-dist/tex/context/base/node-tex.lua
new file mode 100644
index 00000000000..1995f4aa273
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/node-tex.lua
@@ -0,0 +1,39 @@
+if not modules then modules = { } end modules ['node-tex'] = {
+ version = 1.001,
+ comment = "companion to node-ini.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local format = string.format
+
+kernel = kernel or { }
+
+local starttiming, stoptiming = statistics.starttiming, statistics.stoptiming
+local hyphenate, ligaturing, kerning = lang.hyphenate, node.ligaturing, node.kerning
+
+function kernel.hyphenation(head)
+ -- starttiming(kernel)
+ local done = hyphenate(head)
+ -- stoptiming(kernel)
+ return head, done
+end
+
+function kernel.ligaturing(head)
+ -- starttiming(kernel)
+ local head, tail, done = ligaturing(head) -- todo: check what is returned
+ -- stoptiming(kernel)
+ return head, done
+end
+
+function kernel.kerning(head)
+ -- starttiming(kernel)
+ local head, tail, done = kerning(head) -- todo: check what is returned
+ -- stoptiming(kernel)
+ return head, done
+end
+
+callback.register('hyphenate' , false)
+callback.register('ligaturing', false)
+callback.register('kerning' , false)
diff --git a/Master/texmf-dist/tex/context/base/node-tra.lua b/Master/texmf-dist/tex/context/base/node-tra.lua
new file mode 100644
index 00000000000..aeaa6769e5e
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/node-tra.lua
@@ -0,0 +1,416 @@
+if not modules then modules = { } end modules ['node-tra'] = {
+ version = 1.001,
+ comment = "companion to node-ini.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+--[[ldx--
+<p>This is rather experimental. We need more control and some of this
+might become a runtime module instead.</p>
+--ldx]]--
+
+local utf = unicode.utf8
+local format, match, concat, utfchar = string.format, string.match, table.concat, utf.char
+
+local ctxcatcodes = tex.ctxcatcodes
+
+fonts = fonts or { }
+fonts.tfm = fonts.tfm or { }
+fonts.ids = fonts.ids or { }
+
+nodes = nodes or { }
+nodes.tracers = nodes.tracers or { }
+nodes.tracers.characters = nodes.tracers.characters or { }
+nodes.tracers.steppers = nodes.tracers.steppers or { }
+
+local glyph = node.id('glyph')
+local disc = node.id('disc')
+local glue = node.id('glue')
+local kern = node.id('kern')
+local whatsit = node.id('whatsit')
+
+local copy_node_list = node.copy_list
+local hpack_node_list = node.hpack
+local free_node_list = node.flush_list
+local first_character = node.first_character
+local node_type = node.type
+local traverse_nodes = node.traverse
+
+local texsprint = tex.sprint
+local fontdata = fonts.ids
+
+function nodes.tracers.characters.collect(head,list,tag,n)
+ n = n or 0
+ local ok, fn = false, nil
+ while head do
+ local id = head.id
+ if id == glyph then
+ local f = head.font
+ if f ~= fn then
+ ok, fn = false, f
+ end
+ local c = head.char
+ local i = fontdata[f].indices[c] or 0
+ if not ok then
+ ok = true
+ n = n + 1
+ list[n] = list[n] or { }
+ list[n][tag] = { }
+ end
+ local l = list[n][tag]
+ l[#l+1] = { c, f, i }
+ elseif id == disc then
+ -- skip
+ else
+ ok = false
+ end
+ head = head.next
+ end
+end
+
+function nodes.tracers.characters.equal(ta, tb)
+ if #ta ~= #tb then
+ return false
+ else
+ for i=1,#ta do
+ local a, b = ta[i], tb[i]
+ if a[1] ~= b[1] or a[2] ~= b[2] or a[3] ~= b[3] then
+ return false
+ end
+ end
+ end
+ return true
+end
+
+function nodes.tracers.characters.string(t)
+ local tt = { }
+ for i=1,#t do
+ tt[i] = utfchar(t[i][1])
+ end
+ return concat(tt,"")
+end
+
+function nodes.tracers.characters.unicodes(t,decimal)
+ local tt = { }
+ for i=1,#t do
+ local n = t[i][1]
+ if n == 0 then
+ tt[i] = "-"
+ elseif decimal then
+ tt[i] = n
+ else
+ tt[i] = format("U+%04X",n)
+ end
+ end
+ return concat(tt," ")
+end
+
+function nodes.tracers.characters.indices(t,decimal)
+ local tt = { }
+ for i=1,#t do
+ local n = t[i][3]
+ if n == 0 then
+ tt[i] = "-"
+ elseif decimal then
+ tt[i] = n
+ else
+ tt[i] = format("U+%04X",n)
+ end
+ end
+ return concat(tt," ")
+end
+
+function nodes.tracers.characters.start()
+ local npc = nodes.process_characters
+ local list = { }
+ function nodes.process_characters(head)
+ local n = #list
+ nodes.tracers.characters.collect(head,list,'before',n)
+ local h, d = npc(head)
+ nodes.tracers.characters.collect(head,list,'after',n)
+ if #list > n then
+ list[#list+1] = { }
+ end
+ return h, d
+ end
+ function nodes.tracers.characters.stop()
+ tracers.list['characters'] = list
+ lmx.set('title', 'ConTeXt Character Processing Information')
+ lmx.set('color-background-one', lmx.get('color-background-yellow'))
+ lmx.set('color-background-two', lmx.get('color-background-purple'))
+ lmx.show('context-characters.lmx')
+ lmx.restore()
+ nodes.process_characters = npc
+ tasks.restart("processors", "characters")
+ end
+ tasks.restart("processors", "characters")
+end
+
+local stack = { }
+
+function nodes.tracers.start(tag)
+ stack[#stack+1] = tag
+ local tracer = nodes.tracers[tag]
+ if tracer and tracer.start then
+ tracer.start()
+ end
+end
+function nodes.tracers.stop()
+ local tracer = stack[#stack]
+ if tracer and tracer.stop then
+ tracer.stop()
+ end
+ stack[#stack] = nil
+end
+
+-- experimental
+
+local collection, collecting, messages = { }, false, { }
+
+function nodes.tracers.steppers.start()
+ collecting = true
+end
+
+function nodes.tracers.steppers.stop()
+ collecting = false
+end
+
+function nodes.tracers.steppers.reset()
+ for i=1,#collection do
+ local c = collection[i]
+ if c then
+ free_node_list(c)
+ end
+ end
+ collection, messages = { }, { }
+end
+
+function nodes.tracers.steppers.nofsteps()
+ return tex.write(#collection)
+end
+
+function nodes.tracers.steppers.glyphs(n,i)
+ local c = collection[i]
+ if c then
+ tex.box[n] = hpack_node_list(copy_node_list(c))
+ end
+end
+
+function nodes.tracers.steppers.features()
+-- local f = first_character(collection[1])
+-- if f then -- something fishy with first_character
+ local f = collection[1]
+ while f do
+ if f.id == glyph then
+ local tfmdata, t = fontdata[f.font], { }
+ for feature, value in table.sortedpairs(tfmdata.shared.features) do
+ if feature == "number" or feature == "features" then
+ -- private
+ elseif type(value) == "boolean" then
+ if value then
+ t[#t+1] = format("%s=yes",feature)
+ else
+ -- skip
+ end
+ else
+ t[#t+1] = format("%s=%s",feature,value)
+ end
+ end
+ if #t > 0 then
+ texsprint(ctxcatcodes,concat(t,", "))
+ else
+ texsprint(ctxcatcodes,"no features")
+ end
+ return
+ end
+ f = f.next
+ end
+end
+
+function nodes.tracers.fontchar(font,char)
+ local n = nodes.glyph()
+ n.font, n.char, n.subtype = font, char, 256
+ node.write(n)
+end
+
+function nodes.tracers.steppers.codes(i,command)
+ local c = collection[i]
+ while c do
+ local id = c.id
+ if id == glyph then
+ if command then
+ texsprint(ctxcatcodes,format("%s{%s}{%s}",command,c.font,c.char))
+ else
+ texsprint(ctxcatcodes,format("[%s:U+%04X]",c.font,c.char))
+ end
+ elseif id == whatsit and (c.subtype == 6 or c.subtype == 7) then
+ texsprint(ctxcatcodes,format("[%s]",c.dir))
+ else
+ texsprint(ctxcatcodes,format("[%s]",node_type(id)))
+ end
+ c = c.next
+ end
+end
+
+function nodes.tracers.steppers.messages(i,command,split)
+ local list = messages[i] -- or { "no messages" }
+ if list then
+ for i=1,#list do
+ local l = list[i]
+ if split then
+ local a, b = match(l,"^(.-)%s*:%s*(.*)$")
+ texsprint(ctxcatcodes,format("%s{%s}{%s}",command,a or l,b or ""))
+ else
+ texsprint(ctxcatcodes,format("%s{%s}",command,l))
+ end
+ end
+ end
+end
+
+-- hooks into the node list processor (see otf)
+
+function nodes.tracers.steppers.check(head)
+ if collecting then
+ nodes.tracers.steppers.reset()
+ local n = copy_node_list(head)
+ nodes.inject_kerns(n,nil,"trace",true)
+ nodes.protect_glyphs(n) -- can be option
+ collection[1] = n
+ end
+end
+
+function nodes.tracers.steppers.register(head)
+ if collecting then
+ local nc = #collection+1
+ if messages[nc] then
+ local n = copy_node_list(head)
+ nodes.inject_kerns(n,nil,"trace",true)
+ nodes.protect_glyphs(n) -- can be option
+ collection[nc] = n
+ end
+ end
+end
+
+function nodes.tracers.steppers.message(str,...)
+ str = format(str,...)
+ if collecting then
+ local n = #collection + 1
+ local m = messages[n]
+ if not m then m = { } messages[n] = m end
+ m[#m+1] = str
+ end
+ return str -- saves an intermediate var in the caller
+end
+
+-- this will be reorganized:
+
+function nodes.show_list(head, message)
+ if message then
+ texio.write_nl(message)
+ end
+ for n in traverse(head) do
+ texio.write_nl(tostring(n))
+ end
+end
+
+function nodes.check_glyphs(head,message)
+ local t = { }
+ for g in traverse_id(glyph,head) do
+ t[#t+1] = format("U+%04X:%s",g.char,g.subtype)
+ end
+ if #t > 0 then
+ logs.report(message or "nodes","%s glyphs: %s",#t,concat(t," "))
+ end
+ return false
+end
+
+function nodes.tosequence(start,stop,compact)
+ if start then
+ local t = { }
+ while start do
+ if start.id == glyph then
+ local c = start.char
+ if compact then
+ if start.components then
+ t[#t+1] = nodes.tosequence(start.components,nil,compact)
+ else
+ t[#t+1] = format("%s",utfchar(c))
+ end
+ else
+ t[#t+1] = format("U+%04X:%s",c,utfchar(c))
+ end
+ else
+ if compact then
+ t[#t+1] = "[]"
+ else
+ t[#t+1] = match(tostring(start),": (%S+)")
+ end
+ end
+ if start == stop then
+ break
+ else
+ start = start.next
+ end
+ end
+ if compact then
+ return concat(t)
+ else
+ return concat(t," ")
+ end
+ else
+ return "<empty>"
+ end
+end
+
+function nodes.report(t,done)
+ if done then
+ if status.output_active then
+ texio.write(format("<++ %s>",count(t)))
+ else
+ texio.write(format("<+ %s>",count(t)))
+ end
+ else
+ if status.output_active then
+ texio.write(format("<-- %s>",count(t)))
+ else
+ texio.write(format("<- %s>",count(t)))
+ end
+ end
+end
+
+function nodes.pack_list(head)
+ local t = { }
+ for n in traverse(head) do
+ t[#t+1] = tostring(n)
+ end
+ return t
+end
+
+function nodes.ids_to_string(head,tail)
+ local t, last_id, last_n = { }, nil, 0
+ for n in traverse_nodes(head,tail) do
+ local id = n.id
+ if not last_id then
+ last_id, last_n = id, 1
+ elseif last_id == id then
+ last_n = last_n + 1
+ else
+ if last_n > 1 then
+ t[#t+1] = format("[%s*%s]",last_n,node_type(last_id) or "?")
+ else
+ t[#t+1] = format("[%s]",node_type(last_id) or "?")
+ end
+ last_id, last_n = id, 1
+ end
+ end
+ if not last_id then
+ t[#t+1] = "no nodes"
+ elseif last_n > 1 then
+ t[#t+1] = format("[%s*%s]",last_n,node_type(last_id) or "?")
+ else
+ t[#t+1] = format("[%s]",node_type(last_id) or "?")
+ end
+ return concat(t," ")
+end
diff --git a/Master/texmf-dist/tex/context/base/node-tsk.lua b/Master/texmf-dist/tex/context/base/node-tsk.lua
new file mode 100644
index 00000000000..d2ac57d6b97
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/node-tsk.lua
@@ -0,0 +1,174 @@
+if not modules then modules = { } end modules ['node-tsk'] = {
+ version = 1.001,
+ comment = "companion to node-ini.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local trace_tasks = false trackers.register("tasks", function(v) trace_tasks = v end)
+
+tasks = tasks or { }
+tasks.data = tasks.data or { }
+
+function tasks.new(name,list)
+ local tasklist = sequencer.reset()
+ tasks.data[name] = { list = tasklist, runner = false }
+ for l=1,#list do
+ sequencer.appendgroup(tasklist,list[l])
+ end
+end
+
+function tasks.restart(name,group)
+ local data = tasks.data[name]
+ if data then
+ data.runner = false
+ end
+end
+
+function tasks.appendaction(name,group,action,where,kind)
+ local data = tasks.data[name]
+ if data then
+ sequencer.appendaction(data.list,group,action,where,kind)
+ data.runner = false
+ end
+end
+
+function tasks.prependaction(name,group,action,where,kind)
+ local data = tasks.data[name]
+ if data then
+ sequencer.prependaction(data.list,group,action,where,kind)
+ data.runner = false
+ end
+end
+
+function tasks.removeaction(name,group,action)
+ local data = tasks.data[name]
+ if data then
+ sequencer.removeaction(data.list,group,action)
+ data.runner = false
+ end
+end
+
+function tasks.showactions(name,group,action,where,kind)
+ local data = tasks.data[name]
+ if data then
+ logs.report("nodes","task %s, list:\n%s",name,sequencer.nodeprocessor(data.list))
+ end
+end
+
+-- Optimizing for the number of arguments makes sense, but getting rid of
+-- the nested call (no problem but then we also need to register the
+-- callback with this mechanism so that it gets updated) does not save
+-- much time (24K calls on mk.tex).
+
+local created, total = 0, 0
+
+statistics.register("node list callback tasks", function()
+ if total > 0 then
+ return string.format("%s unique tasks, %s created, %s calls",table.count(tasks.data),created,total)
+ else
+ return nil
+ end
+end)
+
+function tasks.actions(name,n) -- we optimize for the number or arguments (no ...)
+ local data = tasks.data[name]
+ if data then
+ if n == 0 then
+ return function(head)
+ local runner = data.runner
+ total = total + 1 -- will go away
+ if not runner then
+ created = created + 1
+ if trace_tasks then
+ logs.report("nodes","creating task runner '%s'",name)
+ end
+ runner = sequencer.compile(data.list,sequencer.nodeprocessor,0)
+ data.runner = runner
+ end
+ return runner(head)
+ end
+ elseif n == 1 then
+ return function(head,one)
+ total = total + 1 -- will go away
+ local runner = data.runner
+ if not runner then
+ created = created + 1
+ if trace_tasks then
+ logs.report("nodes","creating task runner '%s'",name)
+ end
+ runner = sequencer.compile(data.list,sequencer.nodeprocessor,1)
+ data.runner = runner
+ end
+ return runner(head,one)
+ end
+ elseif n == 2 then
+ return function(head,one,two)
+ total = total + 1 -- will go away
+ local runner = data.runner
+ if not runner then
+ created = created + 1
+ if trace_tasks then
+ logs.report("nodes","creating task runner '%s'",name)
+ end
+ runner = sequencer.compile(data.list,sequencer.nodeprocessor,2)
+ data.runner = runner
+ end
+ return runner(head,one,two)
+ end
+ else
+ return function(head,...)
+ total = total + 1 -- will go away
+ local runner = data.runner
+ if not runner then
+ created = created + 1
+ if trace_tasks then
+ logs.report("nodes","creating task runner '%s'",name)
+ end
+ runner = sequencer.compile(data.list,sequencer.nodeprocessor,3)
+ data.runner = runner
+ end
+ return runner(head,...)
+ end
+ end
+ else
+ return nil
+ end
+end
+
+tasks.new (
+ "processors",
+ {
+ "before", -- for users
+ "normalizers",
+ "characters",
+ "words",
+ "fonts",
+ "lists",
+ "after", -- for users
+ }
+)
+
+tasks.new (
+ "finalizers",
+ {
+ "before", -- for users
+ "normalizers",
+-- "characters",
+-- "finishers",
+ "fonts",
+ "lists",
+ "after", -- for users
+ }
+)
+
+tasks.new (
+ "shipouts",
+ {
+ "before", -- for users
+ "normalizers",
+ "finishers",
+ "after", -- for users
+ }
+)
diff --git a/Master/texmf-dist/tex/context/base/node-tst.lua b/Master/texmf-dist/tex/context/base/node-tst.lua
new file mode 100644
index 00000000000..4fb6b4bcaf5
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/node-tst.lua
@@ -0,0 +1,119 @@
+if not modules then modules = { } end modules ['node-tst'] = {
+ version = 1.001,
+ comment = "companion to node-ini.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local glue = node.id("glue")
+local penalty = node.id("penalty")
+local kern = node.id("kern")
+local glyph = node.id("glyph")
+local whatsit = node.id("whatsit")
+local hlist = node.id("hlist")
+
+local find_node_tail = node.tail or node.slide
+
+local chardata = characters.data
+
+function nodes.leftskip(n)
+ while n do
+ local id = n.id
+ if id == glue then
+ if n.subtype == 8 then -- 7 in c/web source
+ return (n.spec and n.spec.width) or 0
+ else
+ return 0
+ end
+ elseif id == whatsit then
+ n = n.next
+ elseif id == hlist then
+ return n.width
+ else
+ break
+ end
+ end
+ return 0
+end
+
+function nodes.rightskip(n)
+ if n then
+ n = find_node_tail(n)
+ while n do
+ local id = n.id
+ if id == glue then
+ if n.subtype == 9 then -- 8 in the c/web source
+ return (n.spec and n.spec.width) or 0
+ else
+ return 0
+ end
+ elseif id == whatsit then
+ n = n.prev
+ else
+ break
+ end
+ end
+ end
+ return false
+end
+
+function nodes.somespace(n,all)
+ if n then
+ local id = n.id
+ if id == glue then
+ return (all or (n.spec.width ~= 0)) and glue
+ elseif id == kern then
+ return (all or (n.kern ~= 0)) and kern
+ elseif id == glyph then
+ local category = chardata[n.char].category
+ -- maybe more category checks are needed
+ return (category == "zs") and glyph
+ end
+ end
+ return false
+end
+
+function nodes.somepenalty(n,value)
+ if n then
+ local id = n.id
+ if id == penalty then
+ if value then
+ return n.penalty == value
+ else
+ return true
+ end
+ end
+ end
+ return false
+end
+
+function nodes.is_display_math(head)
+ local n = head.prev
+ while n do
+ local id = n.id
+ if id == penalty then
+ elseif id == glue then
+ if n.subtype == 6 then -- above_display_short_skip
+ return true
+ end
+ else
+ break
+ end
+ n = n.prev
+ end
+ n = head.next
+ while n do
+ local id = n.id
+ if id == penalty then
+ elseif id == glue then
+ if n.subtype == 7 then -- below_display_short_skip
+ return true
+ end
+ else
+ break
+ end
+ n = n.next
+ end
+ return false
+end
diff --git a/Master/texmf-dist/tex/context/base/norm-alo.tex b/Master/texmf-dist/tex/context/base/norm-alo.tex
new file mode 100644
index 00000000000..d47f49037d7
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/norm-alo.tex
@@ -0,0 +1,36 @@
+%D \module
+%D [ file=norm-alo,
+%D version=2009.03.19,
+%D title=\CONTEXT\ Norm Macros,
+%D subtitle=\ALEPH\ and \OMEGA,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D This file will become obsolete!
+
+% omega primitives
+
+\let\textdir = \textdir
+\let\pagedir = \pagedir
+\let\mathdir = \mathdir
+\let\pardir = \pardir
+\let\bodydir = \bodydir
+\let\leftghost = \leftghost
+\let\rightghost = \rightghost
+\let\localleftbox = \localleftbox
+\let\localrightbox = \localrightbox
+\let\localinterlinepenalty = \localinterlinepenalty
+\let\localbrokenpenalty = \localbrokenpenalty
+
+% aleph primitives
+
+\let\boxdir = \boxdir
+\let\pagebottomoffset = \pagebottomoffset
+\let\pagerightoffset = \pagerightoffset
+
+\endinput
diff --git a/Master/texmf-dist/tex/context/base/norm-ctx.tex b/Master/texmf-dist/tex/context/base/norm-ctx.tex
new file mode 100644
index 00000000000..707705d89eb
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/norm-ctx.tex
@@ -0,0 +1,16 @@
+%D \module
+%D [ file=norm-ctx,
+%D version=2009.03.19,
+%D title=\CONTEXT\ Norm Macros,
+%D subtitle=\ALEPH\ and \OMEGA,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D A few more might end up here (like the weird ones in syst-ini).
+
+\let\normalreqno = \normaleqno
diff --git a/Master/texmf-dist/tex/context/base/norm-etx.tex b/Master/texmf-dist/tex/context/base/norm-etx.tex
new file mode 100644
index 00000000000..3edd8e7ef1f
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/norm-etx.tex
@@ -0,0 +1,79 @@
+%D \module
+%D [ file=norm-etx,
+%D version=2009.03.19,
+%D title=\CONTEXT\ Norm Macros,
+%D subtitle=\ETEX,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+% etex primitives
+
+\let \normalbotmarks = \botmarks
+\let \normalclubpenalties = \clubpenalties
+\let \normalcurrentgrouplevel = \currentgrouplevel
+\let \normalcurrentgrouptype = \currentgrouptype
+\let \normalcurrentifbranch = \currentifbranch
+\let \normalcurrentiflevel = \currentiflevel
+\let \normalcurrentiftype = \currentiftype
+\let \normaldetokenize = \detokenize
+\let \normaldimexpr = \dimexpr
+\let \normaldisplaywidowpenalties = \displaywidowpenalties
+\let \normaleTeXVersion = \eTeXVersion
+\let \normaleTeXminorversion = \eTeXminorversion
+\let \normaleTeXrevision = \eTeXrevision
+\let \normaleTeXversion = \eTeXversion
+\let \normaleveryeof = \everyeof
+\let \normalfirstmarks = \firstmarks
+\let \normalfontchardp = \fontchardp
+\let \normalfontcharht = \fontcharht
+\let \normalfontcharic = \fontcharic
+\let \normalfontcharwd = \fontcharwd
+\let \normalglueexpr = \glueexpr
+\let \normalglueshrink = \glueshrink
+\let \normalglueshrinkorder = \glueshrinkorder
+\let \normalgluestretch = \gluestretch
+\let \normalgluestretchorder = \gluestretchorder
+\let \normalgluetomu = \gluetomu
+\let \normalifcsname = \ifcsname
+\let \normalifdefined = \ifdefined
+\let \normaliffontchar = \iffontchar
+\let \normalinteractionmode = \interactionmode
+\let \normalinterlinepenalties = \interlinepenalties
+\let \normallastlinefit = \lastlinefit
+\let \normallastnodetype = \lastnodetype
+\let \normalmarks = \marks
+\let \normalmuexpr = \muexpr
+\let \normalmutoglue = \mutoglue
+\let \normalnumexpr = \numexpr
+\let \normalpagediscards = \pagediscards
+\let \normalparshapedimen = \parshapedimen
+\let \normalparshapeindent = \parshapeindent
+\let \normalparshapelength = \parshapelength
+\let \normalpredisplaydirection = \predisplaydirection
+\let \normalprotected = \protected
+\let \normalreadline = \readline
+\let \normalsavinghyphcodes = \savinghyphcodes
+\let \normalsavingvdiscards = \savingvdiscards
+\let \normalscantokens = \scantokens
+\let \normalshowgroups = \showgroups
+\let \normalshowifs = \showifs
+\let \normalshowtokens = \showtokens
+\let \normalsplitbotmarks = \splitbotmarks
+\let \normalsplitdiscards = \splitdiscards
+\let \normalsplitfirstmarks = \splitfirstmarks
+\let \normaltopmarks = \topmarks
+\let \normaltracingassigns = \tracingassigns
+\let \normaltracinggroups = \tracinggroups
+\let \normaltracingifs = \tracingifs
+\let \normaltracingnesting = \tracingnesting
+\let \normaltracingscantokens = \tracingscantokens
+\let \normalunexpanded = \unexpanded
+\let \normalunless = \unless
+\let \normalwidowpenalties = \widowpenalties
+
+\endinput
diff --git a/Master/texmf-dist/tex/context/base/norm-ltx.tex b/Master/texmf-dist/tex/context/base/norm-ltx.tex
new file mode 100644
index 00000000000..a779735dd53
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/norm-ltx.tex
@@ -0,0 +1,177 @@
+%D \module
+%D [ file=norm-ltx,
+%D version=2009.03.19,
+%D title=\CONTEXT\ Norm Macros,
+%D subtitle=\LUATEX,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D This file will become obsolete!
+
+% luatex primitives (incomplete)
+
+\let \normalUdelcode = \Udelcode
+\let \normalUdelcodenum = \Udelcodenum
+\let \normalUdelimiter = \Udelimiter
+\let \normalUmathaccent = \Umathaccent
+\let \normalUmathaccents = \Umathaccents
+\let \normalUmathaxis = \Umathaxis
+\let \normalUmathbinbinspacing = \Umathbinbinspacing
+\let \normalUmathbinclosespacing = \Umathbinclosespacing
+\let \normalUmathbininnerspacing = \Umathbininnerspacing
+\let \normalUmathbinopenspacing = \Umathbinopenspacing
+\let \normalUmathbinopspacing = \Umathbinopspacing
+\let \normalUmathbinordspacing = \Umathbinordspacing
+\let \normalUmathbinpunctspacing = \Umathbinpunctspacing
+\let \normalUmathbinrelspacing = \Umathbinrelspacing
+\let \normalUmathbotaccent = \Umathbotaccent
+\let \normalUmathchar = \Umathchar
+\let \normalUmathchardef = \Umathchardef
+\let \normalUmathcharnum = \Umathcharnum
+\let \normalUmathclosebinspacing = \Umathclosebinspacing
+\let \normalUmathcloseclosespacing = \Umathcloseclosespacing
+\let \normalUmathcloseinnerspacing = \Umathcloseinnerspacing
+\let \normalUmathcloseopenspacing = \Umathcloseopenspacing
+\let \normalUmathcloseopspacing = \Umathcloseopspacing
+\let \normalUmathcloseordspacing = \Umathcloseordspacing
+\let \normalUmathclosepunctspacing = \Umathclosepunctspacing
+\let \normalUmathcloserelspacing = \Umathcloserelspacing
+\let \normalUmathcode = \Umathcode
+\let \normalUmathcodenum = \Umathcodenum
+\let \normalUmathconnectoroverlapmin = \Umathconnectoroverlapmin
+\let \normalUmathfractiondelsize = \Umathfractiondelsize
+\let \normalUmathfractiondenomdown = \Umathfractiondenomdown
+\let \normalUmathfractiondenomvgap = \Umathfractiondenomvgap
+\let \normalUmathfractionnumup = \Umathfractionnumup
+\let \normalUmathfractionnumvgap = \Umathfractionnumvgap
+\let \normalUmathfractionrule = \Umathfractionrule
+\let \normalUmathinnerbinspacing = \Umathinnerbinspacing
+\let \normalUmathinnerclosespacing = \Umathinnerclosespacing
+\let \normalUmathinnerinnerspacing = \Umathinnerinnerspacing
+\let \normalUmathinneropenspacing = \Umathinneropenspacing
+\let \normalUmathinneropspacing = \Umathinneropspacing
+\let \normalUmathinnerordspacing = \Umathinnerordspacing
+\let \normalUmathinnerpunctspacing = \Umathinnerpunctspacing
+\let \normalUmathinnerrelspacing = \Umathinnerrelspacing
+\let \normalUmathlimitabovebgap = \Umathlimitabovebgap
+\let \normalUmathlimitabovekern = \Umathlimitabovekern
+\let \normalUmathlimitabovevgap = \Umathlimitabovevgap
+\let \normalUmathlimitdownbgap = \Umathlimitdownbgap
+\let \normalUmathlimitdownkern = \Umathlimitdownkern
+\let \normalUmathlimitdownvgap = \Umathlimitdownvgap
+\let \normalUmathopbinspacing = \Umathopbinspacing
+\let \normalUmathopclosespacing = \Umathopclosespacing
+\let \normalUmathopenbinspacing = \Umathopenbinspacing
+\let \normalUmathopenclosespacing = \Umathopenclosespacing
+\let \normalUmathopeninnerspacing = \Umathopeninnerspacing
+\let \normalUmathopenopenspacing = \Umathopenopenspacing
+\let \normalUmathopenopspacing = \Umathopenopspacing
+\let \normalUmathopenordspacing = \Umathopenordspacing
+\let \normalUmathopenpunctspacing = \Umathopenpunctspacing
+\let \normalUmathopenrelspacing = \Umathopenrelspacing
+\let \normalUmathoperatorsize = \Umathoperatorsize
+\let \normalUmathopinnerspacing = \Umathopinnerspacing
+\let \normalUmathopopenspacing = \Umathopopenspacing
+\let \normalUmathopopspacing = \Umathopopspacing
+\let \normalUmathopordspacing = \Umathopordspacing
+\let \normalUmathoppunctspacing = \Umathoppunctspacing
+\let \normalUmathoprelspacing = \Umathoprelspacing
+\let \normalUmathordbinspacing = \Umathordbinspacing
+\let \normalUmathordclosespacing = \Umathordclosespacing
+\let \normalUmathordinnerspacing = \Umathordinnerspacing
+\let \normalUmathordopenspacing = \Umathordopenspacing
+\let \normalUmathordopspacing = \Umathordopspacing
+\let \normalUmathordordspacing = \Umathordordspacing
+\let \normalUmathordpunctspacing = \Umathordpunctspacing
+\let \normalUmathordrelspacing = \Umathordrelspacing
+\let \normalUmathoverbarkern = \Umathoverbarkern
+\let \normalUmathoverbarrule = \Umathoverbarrule
+\let \normalUmathoverbarvgap = \Umathoverbarvgap
+\let \normalUmathoverdelimiterbgap = \Umathoverdelimiterbgap
+\let \normalUmathoverdelimitervgap = \Umathoverdelimitervgap
+\let \normalUmathpunctbinspacing = \Umathpunctbinspacing
+\let \normalUmathpunctclosespacing = \Umathpunctclosespacing
+\let \normalUmathpunctinnerspacing = \Umathpunctinnerspacing
+\let \normalUmathpunctopenspacing = \Umathpunctopenspacing
+\let \normalUmathpunctopspacing = \Umathpunctopspacing
+\let \normalUmathpunctordspacing = \Umathpunctordspacing
+\let \normalUmathpunctpunctspacing = \Umathpunctpunctspacing
+\let \normalUmathpunctrelspacing = \Umathpunctrelspacing
+\let \normalUmathquad = \Umathquad
+\let \normalUmathradicaldegreeafter = \Umathradicaldegreeafter
+\let \normalUmathradicaldegreebefore = \Umathradicaldegreebefore
+\let \normalUmathradicaldegreeraise = \Umathradicaldegreeraise
+\let \normalUmathradicalkern = \Umathradicalkern
+\let \normalUmathradicalrule = \Umathradicalrule
+\let \normalUmathradicalvgap = \Umathradicalvgap
+\let \normalUmathrelbinspacing = \Umathrelbinspacing
+\let \normalUmathrelclosespacing = \Umathrelclosespacing
+\let \normalUmathrelinnerspacing = \Umathrelinnerspacing
+\let \normalUmathrelopenspacing = \Umathrelopenspacing
+\let \normalUmathrelopspacing = \Umathrelopspacing
+\let \normalUmathrelordspacing = \Umathrelordspacing
+\let \normalUmathrelpunctspacing = \Umathrelpunctspacing
+\let \normalUmathrelrelspacing = \Umathrelrelspacing
+\let \normalUmathspaceafterscript = \Umathspaceafterscript
+\let \normalUmathstackdenomdown = \Umathstackdenomdown
+\let \normalUmathstacknumup = \Umathstacknumup
+\let \normalUmathstackvgap = \Umathstackvgap
+\let \normalUmathsubshiftdown = \Umathsubshiftdown
+\let \normalUmathsubshiftdrop = \Umathsubshiftdrop
+\let \normalUmathsubsupshiftdown = \Umathsubsupshiftdown
+\let \normalUmathsubsupvgap = \Umathsubsupvgap
+\let \normalUmathsubtopmax = \Umathsubtopmax
+\let \normalUmathsupbottommin = \Umathsupbottommin
+\let \normalUmathsupshiftdrop = \Umathsupshiftdrop
+\let \normalUmathsupshiftup = \Umathsupshiftup
+\let \normalUmathsupsubbottommax = \Umathsupsubbottommax
+\let \normalUmathunderbarkern = \Umathunderbarkern
+\let \normalUmathunderbarrule = \Umathunderbarrule
+\let \normalUmathunderbarvgap = \Umathunderbarvgap
+\let \normalUmathunderdelimiterbgap = \Umathunderdelimiterbgap
+\let \normalUmathunderdelimitervgap = \Umathunderdelimitervgap
+\let \normalUoverdelimiter = \Uoverdelimiter
+\let \normalUradical = \Uradical
+\let \normalUroot = \Uroot
+\let \normalUunderdelimiter = \Uunderdelimiter
+\let \normalattribute = \attribute
+\let \normalattributedef = \attributedef
+\let \normalcatcodetable = \catcodetable
+\let \normalclearmarks = \clearmarks
+\let \normalcrampeddisplaystyle = \crampeddisplaystyle
+\let \normalcrampedscriptscriptstyle = \crampedscriptscriptstyle
+\let \normalcrampedscriptstyle = \crampedscriptstyle
+\let \normalcrampedtextstyle = \crampedtextstyle
+\let \normalformatname = \formatname
+\let \normalifabsdim = \ifabsdim
+\let \normalifabsnum = \ifabsnum
+\let \normalifprimitive = \ifprimitive
+\let \normalinitcatcodetable = \initcatcodetable
+\let \normallatelua = \latelua
+\let \normalluaescapestring = \luaescapestring
+\let \normalluastartup = \luastartup
+\let \normalluatexdatestamp = \luatexdatestamp
+\let \normalluatexrevision = \luatexrevision
+\let \normalluatexversion = \luatexversion
+\let \normalnokerns = \nokerns
+\let \normalnoligs = \noligs
+\let \normalpageleftoffset = \pageleftoffset
+\let \normalpagetopoffset = \pagetopoffset
+\let \normalpostexhyphenchar = \postexhyphenchar
+\let \normalposthyphenchar = \posthyphenchar
+\let \normalpreexhyphenchar = \preexhyphenchar
+\let \normalprehyphenchar = \prehyphenchar
+\let \normalprimitive = \primitive
+\let \normalsavecatcodetable = \savecatcodetable
+\let \normalscantextokens = \scantextokens
+\let \normalsuppressfontnotfounderror = \suppressfontnotfounderror
+\let \normalsuppressifcsnameerror = \suppressifcsnameerror
+\let \normalsuppresslongerror = \suppresslongerror
+\let \normalsynctex = \synctex
+
+\endinput
diff --git a/Master/texmf-dist/tex/context/base/norm-ptx.tex b/Master/texmf-dist/tex/context/base/norm-ptx.tex
new file mode 100644
index 00000000000..8f911d874b6
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/norm-ptx.tex
@@ -0,0 +1,130 @@
+%D \module
+%D [ file=norm-ptx,
+%D version=2009.03.19,
+%D title=\CONTEXT\ Norm Macros,
+%D subtitle=\PDFTEX,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\let \normalefcode = \efcode
+\let \normalexpanded = \expanded
+\let \normalifincsname = \ifincsname
+\let \normalifpdfabsdim = \ifpdfabsdim
+\let \normalifpdfabsnum = \ifpdfabsnum
+\let \normalifpdfprimitive = \ifpdfprimitive
+\let \normalleftmarginkern = \leftmarginkern
+\let \normalletterspacefont = \letterspacefont
+\let \normallpcode = \lpcode
+\let \normalpdfadjustspacing = \pdfadjustspacing
+\let \normalpdfannot = \pdfannot
+\let \normalpdfcatalog = \pdfcatalog
+\let \normalpdfcolorstack = \pdfcolorstack
+\let \normalpdfcolorstackinit = \pdfcolorstackinit
+\let \normalpdfcompresslevel = \pdfcompresslevel
+\let \normalpdfcopyfont = \pdfcopyfont
+\let \normalpdfcreationdate = \pdfcreationdate
+\let \normalpdfdecimaldigits = \pdfdecimaldigits
+\let \normalpdfdest = \pdfdest
+\let \normalpdfdestmargin = \pdfdestmargin
+\let \normalpdfdraftmode = \pdfdraftmode
+\let \normalpdfeachlinedepth = \pdfeachlinedepth
+\let \normalpdfeachlineheight = \pdfeachlineheight
+\let \normalpdfendlink = \pdfendlink
+\let \normalpdfendthread = \pdfendthread
+\let \normalpdffirstlineheight = \pdffirstlineheight
+\let \normalpdffontattr = \pdffontattr
+\let \normalpdffontexpand = \pdffontexpand
+\let \normalpdffontname = \pdffontname
+\let \normalpdffontobjnum = \pdffontobjnum
+\let \normalpdffontsize = \pdffontsize
+\let \normalpdfforcepagebox = \pdfforcepagebox % obsolete
+\let \normalpdfgamma = \pdfgamma
+\let \normalpdfgentounicode = \pdfgentounicode
+\let \normalpdfglyphtounicode = \pdfglyphtounicode
+\let \normalpdfhorigin = \pdfhorigin
+\let \normalpdfignoreddimen = \pdfignoreddimen
+\let \normalpdfimageapplygamma = \pdfimageapplygamma
+\let \normalpdfimagegamma = \pdfimagegamma
+\let \normalpdfimagehicolor = \pdfimagehicolor
+\let \normalpdfimageresolution = \pdfimageresolution
+\let \normalpdfincludechars = \pdfincludechars
+\let \normalpdfinclusioncopyfonts = \pdfinclusioncopyfonts
+\let \normalpdfinclusionerrorlevel = \pdfinclusionerrorlevel
+\let \normalpdfinfo = \pdfinfo
+\let \normalpdfinsertht = \pdfinsertht
+\let \normalpdflastannot = \pdflastannot
+\let \normalpdflastlinedepth = \pdflastlinedepth
+\let \normalpdflastlink = \pdflastlink
+\let \normalpdflastobj = \pdflastobj
+\let \normalpdflastxform = \pdflastxform
+\let \normalpdflastximage = \pdflastximage
+\let \normalpdflastximagecolordepth = \pdflastximagecolordepth
+\let \normalpdflastximagepages = \pdflastximagepages
+\let \normalpdflastxpos = \pdflastxpos
+\let \normalpdflastypos = \pdflastypos
+\let \normalpdflinkmargin = \pdflinkmargin
+\let \normalpdfliteral = \pdfliteral
+\let \normalpdfmapfile = \pdfmapfile
+\let \normalpdfmapline = \pdfmapline
+\let \normalpdfminorversion = \pdfminorversion
+\let \normalpdfmovechars = \pdfmovechars % obsolete
+\let \normalpdfnames = \pdfnames
+\let \normalpdfnoligatures = \pdfnoligatures
+\let \normalpdfnormaldeviate = \pdfnormaldeviate
+\let \normalpdfobj = \pdfobj
+\let \normalpdfobjcompresslevel = \pdfobjcompresslevel
+\let \normalpdfoptionalwaysusepdfpagebox = \pdfoptionalwaysusepdfpagebox % obsolete
+\let \normalpdfoptionpdfinclusionerrorlevel = \pdfoptionpdfinclusionerrorlevel % obsolete
+\let \normalpdfoptionpdfminorversion = \pdfoptionpdfminorversion
+\let \normalpdfoutline = \pdfoutline
+\let \normalpdfoutput = \pdfoutput
+\let \normalpdfpageattr = \pdfpageattr
+\let \normalpdfpagebox = \pdfpagebox
+\let \normalpdfpageheight = \pdfpageheight
+\let \normalpdfpageref = \pdfpageref
+\let \normalpdfpageresources = \pdfpageresources
+\let \normalpdfpagesattr = \pdfpagesattr
+\let \normalpdfpagewidth = \pdfpagewidth
+\let \normalpdfpkmode = \pdfpkmode
+\let \normalpdfpkresolution = \pdfpkresolution
+\let \normalpdfprimitive = \pdfprimitive
+\let \normalpdfprotrudechars = \pdfprotrudechars
+\let \normalpdfpxdimen = \pdfpxdimen
+\let \normalpdfrandomseed = \pdfrandomseed
+\let \normalpdfrefobj = \pdfrefobj
+\let \normalpdfrefxform = \pdfrefxform
+\let \normalpdfrefximage = \pdfrefximage
+\let \normalpdfreplacefont = \pdfreplacefont
+\let \normalpdfrestore = \pdfrestore
+\let \normalpdfretval = \pdfretval
+\let \normalpdfsave = \pdfsave
+\let \normalpdfsavepos = \pdfsavepos
+\let \normalpdfsetmatrix = \pdfsetmatrix
+\let \normalpdfsetrandomseed = \pdfsetrandomseed
+\let \normalpdfstartlink = \pdfstartlink
+\let \normalpdfstartthread = \pdfstartthread
+\let \normalpdftexbanner = \pdftexbanner
+\let \normalpdftexrevision = \pdftexrevision
+\let \normalpdftexversion = \pdftexversion
+\let \normalpdfthread = \pdfthread
+\let \normalpdfthreadmargin = \pdfthreadmargin
+\let \normalpdftracingfonts = \pdftracingfonts
+\let \normalpdftrailer = \pdftrailer
+\let \normalpdfuniformdeviate = \pdfuniformdeviate
+\let \normalpdfuniqueresname = \pdfuniqueresname
+\let \normalpdfvorigin = \pdfvorigin
+\let \normalpdfxform = \pdfxform
+\let \normalpdfxformname = \pdfxformname
+\let \normalpdfximage = \pdfximage
+\let \normalpdfximagebbox = \pdfximagebbox
+\let \normalquitvmode = \quitvmode
+\let \normalrightmarginkern = \rightmarginkern
+\let \normalrpcode = \rpcode
+\let \normaltagcode = \tagcode
+
+\endinput
diff --git a/Master/texmf-dist/tex/context/base/norm-tex.tex b/Master/texmf-dist/tex/context/base/norm-tex.tex
new file mode 100644
index 00000000000..61f9740efe4
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/norm-tex.tex
@@ -0,0 +1,351 @@
+%D \module
+%D [ file=norm-etx,
+%D version=2009.03.19,
+%D title=\CONTEXT\ Norm Macros,
+%D subtitle=\TEX,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D Since \LUATEX\ can generate these lists internally it started
+%D to make sense to cleanup this \type {\normalstuff} for \MKII\ as
+%D well. The tables are generated with a \LUA\ script.
+
+% tex primitives
+
+% Beware, we already redefined \dump, \outer and \everyjob !
+
+% \normal = \
+% \normal- = \-
+% \normal/ = \/
+\let \normalabove = \above
+\let \normalabovedisplayshortskip = \abovedisplayshortskip
+\let \normalabovedisplayskip = \abovedisplayskip
+\let \normalabovewithdelims = \abovewithdelims
+\let \normalaccent = \accent
+\let \normaladjdemerits = \adjdemerits
+\let \normaladvance = \advance
+\let \normalafterassignment = \afterassignment
+\let \normalaftergroup = \aftergroup
+\let \normalatop = \atop
+\let \normalatopwithdelims = \atopwithdelims
+\let \normalbadness = \badness
+\let \normalbaselineskip = \baselineskip
+\let \normalbatchmode = \batchmode
+\let \normalbegingroup = \begingroup
+\let \normalbelowdisplayshortskip = \belowdisplayshortskip
+\let \normalbelowdisplayskip = \belowdisplayskip
+\let \normalbinoppenalty = \binoppenalty
+\let \normalbotmark = \botmark
+\let \normalbox = \box
+\let \normalboxmaxdepth = \boxmaxdepth
+\let \normalbrokenpenalty = \brokenpenalty
+\let \normalcatcode = \catcode
+\let \normalchar = \char
+\let \normalchardef = \chardef
+\let \normalcleaders = \cleaders
+\let \normalclosein = \closein
+\let \normalcloseout = \closeout
+\let \normalclubpenalty = \clubpenalty
+\let \normalcopy = \copy
+\let \normalcount = \count
+\let \normalcountdef = \countdef
+\let \normalcr = \cr
+\let \normalcrcr = \crcr
+\let \normalcsname = \csname
+\let \normalday = \day
+\let \normaldeadcycles = \deadcycles
+\let \normaldef = \def
+\let \normaldefaulthyphenchar = \defaulthyphenchar
+\let \normaldefaultskewchar = \defaultskewchar
+\let \normaldelcode = \delcode
+\let \normaldelimiter = \delimiter
+\let \normaldelimiterfactor = \delimiterfactor
+\let \normaldelimitershortfall = \delimitershortfall
+\let \normaldimen = \dimen
+\let \normaldimendef = \dimendef
+\let \normaldirectlua = \directlua
+\let \normaldiscretionary = \discretionary
+\let \normaldisplayindent = \displayindent
+\let \normaldisplaylimits = \displaylimits
+\let \normaldisplaystyle = \displaystyle
+\let \normaldisplaywidowpenalty = \displaywidowpenalty
+\let \normaldisplaywidth = \displaywidth
+\let \normaldivide = \divide
+\let \normaldoublehyphendemerits = \doublehyphendemerits
+\let \normaldp = \dp
+% \normaldump = \dump
+\let \normaledef = \edef
+\let \normalelse = \else
+\let \normalemergencystretch = \emergencystretch
+\let \normalend = \end
+\let \normalendcsname = \endcsname
+\let \normalendgroup = \endgroup
+\let \normalendinput = \endinput
+\let \normalendlinechar = \endlinechar
+\let \normaleqno = \eqno
+\let \normalerrhelp = \errhelp
+\let \normalerrmessage = \errmessage
+\let \normalerrorcontextlines = \errorcontextlines
+\let \normalerrorstopmode = \errorstopmode
+\let \normalescapechar = \escapechar
+\let \normaleverycr = \everycr
+\let \normaleverydisplay = \everydisplay
+\let \normaleveryhbox = \everyhbox
+% \normaleveryjob = \everyjob
+\let \normaleverymath = \everymath
+\let \normaleverypar = \everypar
+\let \normaleveryvbox = \everyvbox
+\let \normalexhyphenchar = \exhyphenchar
+\let \normalexhyphenpenalty = \exhyphenpenalty
+\let \normalexpandafter = \expandafter
+\let \normalfam = \fam
+\let \normalfi = \fi
+\let \normalfinalhyphendemerits = \finalhyphendemerits
+\let \normalfirstmark = \firstmark
+\let \normalfloatingpenalty = \floatingpenalty
+\let \normalfont = \font
+\let \normalfontdimen = \fontdimen
+\let \normalfontname = \fontname
+\let \normalfuturelet = \futurelet
+\let \normalgdef = \gdef
+\let \normalglobal = \global
+\let \normalglobaldefs = \globaldefs
+\let \normalhalign = \halign
+\let \normalhangafter = \hangafter
+\let \normalhangindent = \hangindent
+\let \normalhbadness = \hbadness
+\let \normalhbox = \hbox
+\let \normalhfil = \hfil
+\let \normalhfill = \hfill
+\let \normalhfilneg = \hfilneg
+\let \normalhfuzz = \hfuzz
+\let \normalhoffset = \hoffset
+\let \normalholdinginserts = \holdinginserts
+\let \normalhrule = \hrule
+\let \normalhsize = \hsize
+\let \normalhskip = \hskip
+\let \normalhss = \hss
+\let \normalht = \ht
+\let \normalhyphenation = \hyphenation
+\let \normalhyphenchar = \hyphenchar
+\let \normalhyphenpenalty = \hyphenpenalty
+\let \normalif = \if
+\let \normalifcase = \ifcase
+\let \normalifcat = \ifcat
+\let \normalifdim = \ifdim
+\let \normalifeof = \ifeof
+\let \normaliffalse = \iffalse
+\let \normalifhbox = \ifhbox
+\let \normalifhmode = \ifhmode
+\let \normalifinner = \ifinner
+\let \normalifmmode = \ifmmode
+\let \normalifnum = \ifnum
+\let \normalifodd = \ifodd
+\let \normaliftrue = \iftrue
+\let \normalifvbox = \ifvbox
+\let \normalifvmode = \ifvmode
+\let \normalifvoid = \ifvoid
+\let \normalifx = \ifx
+\let \normalignorespaces = \ignorespaces
+\let \normalimmediate = \immediate
+\let \normalindent = \indent
+% \normalinput = \input
+\let \normalinputlineno = \inputlineno
+\let \normalinsert = \insert
+\let \normalinsertpenalties = \insertpenalties
+\let \normalinterlinepenalty = \interlinepenalty
+\let \normaljobname = \jobname
+\let \normalkern = \kern
+\let \normallanguage = \language
+\let \normallastbox = \lastbox
+\let \normallastkern = \lastkern
+\let \normallastpenalty = \lastpenalty
+\let \normallastskip = \lastskip
+\let \normallccode = \lccode
+\let \normalleaders = \leaders
+\let \normalleft = \left
+\let \normallefthyphenmin = \lefthyphenmin
+\let \normalleftskip = \leftskip
+\let \normalleqno = \leqno
+\let \normallet = \let
+\let \normallimits = \limits
+\let \normallinepenalty = \linepenalty
+\let \normallineskip = \lineskip
+\let \normallineskiplimit = \lineskiplimit
+\let \normallong = \long
+\let \normallooseness = \looseness
+\let \normallower = \lower
+\let \normallowercase = \lowercase
+\let \normalmag = \mag
+\let \normalmark = \mark
+\let \normalmathaccent = \mathaccent
+\let \normalmathbin = \mathbin
+\let \normalmathchar = \mathchar
+\let \normalmathchardef = \mathchardef
+\let \normalmathchoice = \mathchoice
+\let \normalmathclose = \mathclose
+\let \normalmathcode = \mathcode
+\let \normalmathinner = \mathinner
+\let \normalmathop = \mathop
+\let \normalmathopen = \mathopen
+\let \normalmathord = \mathord
+\let \normalmathpunct = \mathpunct
+\let \normalmathrel = \mathrel
+\let \normalmathsurround = \mathsurround
+\let \normalmaxdeadcycles = \maxdeadcycles
+\let \normalmaxdepth = \maxdepth
+\let \normalmeaning = \meaning
+\let \normalmedmuskip = \medmuskip
+\let \normalmessage = \message
+\let \normalmiddle = \middle
+\let \normalmkern = \mkern
+\let \normalmonth = \month
+\let \normalmoveleft = \moveleft
+\let \normalmoveright = \moveright
+\let \normalmskip = \mskip
+\let \normalmultiply = \multiply
+\let \normalmuskip = \muskip
+\let \normalmuskipdef = \muskipdef
+\let \normalnewlinechar = \newlinechar
+\let \normalnoalign = \noalign
+\let \normalnoboundary = \noboundary
+\let \normalnoexpand = \noexpand
+\let \normalnoindent = \noindent
+\let \normalnolimits = \nolimits
+\let \normalnonscript = \nonscript
+\let \normalnonstopmode = \nonstopmode
+\let \normalnulldelimiterspace = \nulldelimiterspace
+\let \normalnullfont = \nullfont
+\let \normalnumber = \number
+\let \normalomit = \omit
+\let \normalopenin = \openin
+\let \normalopenout = \openout
+\let \normalor = \or
+% \normalouter = \outer
+\let \normaloutput = \output
+\let \normaloutputpenalty = \outputpenalty
+\let \normalover = \over
+\let \normaloverfullrule = \overfullrule
+\let \normaloverline = \overline
+\let \normaloverwithdelims = \overwithdelims
+\let \normalpagedepth = \pagedepth
+\let \normalpagefilllstretch = \pagefilllstretch
+\let \normalpagefillstretch = \pagefillstretch
+\let \normalpagefilstretch = \pagefilstretch
+\let \normalpagegoal = \pagegoal
+\let \normalpageshrink = \pageshrink
+\let \normalpagestretch = \pagestretch
+\let \normalpagetotal = \pagetotal
+\let \normalpar = \par
+\let \normalparfillskip = \parfillskip
+\let \normalparindent = \parindent
+\let \normalparshape = \parshape
+\let \normalparskip = \parskip
+\let \normalpatterns = \patterns
+\let \normalpausing = \pausing
+\let \normalpenalty = \penalty
+\let \normalpostdisplaypenalty = \postdisplaypenalty
+\let \normalpredisplaypenalty = \predisplaypenalty
+\let \normalpredisplaysize = \predisplaysize
+\let \normalpretolerance = \pretolerance
+\let \normalprevdepth = \prevdepth
+\let \normalprevgraf = \prevgraf
+\let \normalradical = \radical
+\let \normalraise = \raise
+\let \normalread = \read
+\let \normalrelax = \relax
+\let \normalrelpenalty = \relpenalty
+\let \normalright = \right
+\let \normalrighthyphenmin = \righthyphenmin
+\let \normalrightskip = \rightskip
+\let \normalromannumeral = \romannumeral
+\let \normalscriptfont = \scriptfont
+\let \normalscriptscriptfont = \scriptscriptfont
+\let \normalscriptscriptstyle = \scriptscriptstyle
+\let \normalscriptspace = \scriptspace
+\let \normalscriptstyle = \scriptstyle
+\let \normalscrollmode = \scrollmode
+\let \normalsetbox = \setbox
+\let \normalsetlanguage = \setlanguage
+\let \normalsfcode = \sfcode
+\let \normalshipout = \shipout
+\let \normalshow = \show
+\let \normalshowbox = \showbox
+\let \normalshowboxbreadth = \showboxbreadth
+\let \normalshowboxdepth = \showboxdepth
+\let \normalshowlists = \showlists
+\let \normalshowthe = \showthe
+\let \normalskewchar = \skewchar
+\let \normalskip = \skip
+\let \normalskipdef = \skipdef
+\let \normalspacefactor = \spacefactor
+\let \normalspaceskip = \spaceskip
+\let \normalspan = \span
+\let \normalspecial = \special
+\let \normalsplitbotmark = \splitbotmark
+\let \normalsplitfirstmark = \splitfirstmark
+\let \normalsplitmaxdepth = \splitmaxdepth
+\let \normalsplittopskip = \splittopskip
+\let \normalstring = \string
+\let \normaltabskip = \tabskip
+\let \normaltextfont = \textfont
+\let \normaltextstyle = \textstyle
+\let \normalthe = \the
+\let \normalthickmuskip = \thickmuskip
+\let \normalthinmuskip = \thinmuskip
+\let \normaltime = \time
+\let \normaltoks = \toks
+\let \normaltoksdef = \toksdef
+\let \normaltolerance = \tolerance
+\let \normaltopmark = \topmark
+\let \normaltopskip = \topskip
+\let \normaltracingcommands = \tracingcommands
+\let \normaltracinglostchars = \tracinglostchars
+\let \normaltracingmacros = \tracingmacros
+\let \normaltracingonline = \tracingonline
+\let \normaltracingoutput = \tracingoutput
+\let \normaltracingpages = \tracingpages
+\let \normaltracingparagraphs = \tracingparagraphs
+\let \normaltracingrestores = \tracingrestores
+\let \normaltracingstats = \tracingstats
+\let \normaluccode = \uccode
+\let \normaluchyph = \uchyph
+\let \normalunderline = \underline
+\let \normalunhbox = \unhbox
+\let \normalunhcopy = \unhcopy
+\let \normalunkern = \unkern
+\let \normalunpenalty = \unpenalty
+\let \normalunskip = \unskip
+\let \normalunvbox = \unvbox
+\let \normalunvcopy = \unvcopy
+\let \normaluppercase = \uppercase
+\let \normalvadjust = \vadjust
+\let \normalvalign = \valign
+\let \normalvbadness = \vbadness
+\let \normalvbox = \vbox
+\let \normalvcenter = \vcenter
+\let \normalvfil = \vfil
+\let \normalvfill = \vfill
+\let \normalvfilneg = \vfilneg
+\let \normalvfuzz = \vfuzz
+\let \normalvoffset = \voffset
+\let \normalvrule = \vrule
+\let \normalvsize = \vsize
+\let \normalvskip = \vskip
+\let \normalvsplit = \vsplit
+\let \normalvss = \vss
+\let \normalvtop = \vtop
+\let \normalwd = \wd
+\let \normalwidowpenalty = \widowpenalty
+\let \normalwrite = \write
+\let \normalxdef = \xdef
+\let \normalxleaders = \xleaders
+\let \normalxspaceskip = \xspaceskip
+\let \normalyear = \year
+
+\endinput
diff --git a/Master/texmf-dist/tex/context/base/norm-xtx.tex b/Master/texmf-dist/tex/context/base/norm-xtx.tex
new file mode 100644
index 00000000000..3da94465624
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/norm-xtx.tex
@@ -0,0 +1,18 @@
+%D \module
+%D [ file=norm-xtx,
+%D version=2009.03.19,
+%D title=\CONTEXT\ Norm Macros,
+%D subtitle=\XETEX,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+% xetex primitives
+
+% nothing yet (also defined pdftex primitives)
+
+\endinput
diff --git a/Master/texmf-dist/tex/context/base/pack-bar.mkiv b/Master/texmf-dist/tex/context/base/pack-bar.mkiv
new file mode 100644
index 00000000000..05afd32d02e
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/pack-bar.mkiv
@@ -0,0 +1,67 @@
+%D \module
+%D [ file=pack-bar,
+%D version=2009.06.26,
+%D title=\CONTEXT\ Packaging Macros,
+%D subtitle=Bars,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Packaging Macros / Bars}
+
+%D This code has been moved from scrn-int to here (was some old
+%D experimental code). It could be in scrn-bar but it's static.
+
+\unprotect
+
+%D \startbuffer
+%D \dorecurse{10}
+%D {\horizontalpositionbar
+%D \pos\recurselevel \min1 \max10
+%D \token\framed{\recurselevel}%
+%D \\}
+%D
+%D \hbox to 15em
+%D {\hss
+%D \dorecurse{10}
+%D {\verticalpositionbar\pos\recurselevel\min1\max10\token\blackrule\\
+%D \hss}}
+%D \stopbuffer
+
+\def\horizontalpositionbar\pos#1\min#2\max#3\token#4\\%
+ {\hbox to \hsize
+ {\hskip\zeropoint\!!plus #1\!!fill
+ \hskip\zeropoint\!!plus-#2\!!fill
+ #4\relax
+ \hskip\zeropoint\!!plus #3\!!fill
+ \hskip\zeropoint\!!plus-#1\!!fill}}
+
+\def\verticalpositionbar\pos#1\min#2\max#3\token#4\\%
+ {\vbox to \vsize
+ {\vskip\zeropoint\!!plus #1\!!fill
+ \vskip\zeropoint\!!plus-#2\!!fill
+ \hbox{#4}\relax
+ \vskip\zeropoint\!!plus #3\!!fill
+ \vskip\zeropoint\!!plus-#1\!!fill}}
+
+\def\horizontalgrowingbar\pos#1\min#2\max#3\height#4\depth#5\\%
+ {\hbox to \hsize
+ {\scratchcounter\numexpr#1-#2+\plusone\relax
+ \leaders\vrule\hskip\zeropoint\!!plus \scratchcounter\!!fill
+ \vrule\!!width\zeropoint\!!height#4\!!depth#5%
+ \hskip\zeropoint\!!plus #3\!!fill
+ \hskip\zeropoint\!!plus-#1\!!fill}}
+
+\def\verticalgrowingbar\pos#1\min#2\max#3\width#4\\%
+ {\vbox to \vsize
+ {\scratchcounter\numexpr#1-#2+\plusone\relax
+ \leaders\hrule\vskip\zeropoint\!!plus\scratchcounter\!!fill
+ \hrule\!!width#4\!!height\zeropoint\!!depth\zeropoint
+ \vskip\zeropoint\!!plus #3\!!fill
+ \vskip\zeropoint\!!plus-#1\!!fill}}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/pack-box.mkii b/Master/texmf-dist/tex/context/base/pack-box.mkii
new file mode 100644
index 00000000000..1be84055237
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/pack-box.mkii
@@ -0,0 +1,954 @@
+%D \module
+%D [ file=pack-box,
+%D version=2002.04.12,
+%D title=\CONTEXT\ Packaging Macros,
+%D subtitle=Boxes,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Packaging Macros / Boxes}
+
+%D This module contains all kind of macros for moving content
+%D around. Many macros here come from other modules, but
+%D depencies made it more clear to isolate them.
+
+% \placeornament
+
+\unprotect
+
+% \definelayer[\v!tekst-2][\c!positie=\v!ja]
+% \definelayer[\v!tekst-1][\c!positie=\v!ja]
+% \definelayer[\v!tekst+1][\c!positie=\v!ja]
+% \definelayer[\v!tekst+2][\c!positie=\v!ja]
+
+% we need to set the size, else we get dimensions depending
+% on the content, which in itsel fis ok, but can lead to loops
+% due to rounding errors (happened in demo-obv)
+
+\definelayer[\v!text-2][\c!position=\v!yes,\c!width=\overlaywidth,\c!height=\overlayheight]
+\definelayer[\v!text-1][\c!position=\v!yes,\c!width=\overlaywidth,\c!height=\overlayheight]
+\definelayer[\v!text+1][\c!position=\v!yes,\c!width=\overlaywidth,\c!height=\overlayheight]
+\definelayer[\v!text+2][\c!position=\v!yes,\c!width=\overlaywidth,\c!height=\overlayheight]
+
+\def\internaltextoverlay#1% will become more generic and installable
+ {\startoverlay % i.e. probably an overlay by itself
+ {\positionoverlay{\v!text#1}} % see later
+ {\composedlayer {\v!text#1}}
+ \stopoverlay}
+
+%\def\internaltextoverlay#1%
+% {\hbox to \zeropoint{\positionoverlay{\v!tekst#1}\hss}%
+% \composedlayer{\v!tekst#1}}
+
+% todo: share info, so that tuo will be smaller
+
+\defineoverlay[\v!text-2][\internaltextoverlay{-2}]
+\defineoverlay[\v!text-1][\internaltextoverlay{-1}]
+\defineoverlay[\v!text+1][\internaltextoverlay{+1}]
+\defineoverlay[\v!text+2][\internaltextoverlay{+2}]
+
+% to be documented
+
+\definelayer[anchor]
+
+\def\anchor
+ {\dosingleargument\doanchor}
+
+\def\doanchor[#1]%
+ {\ifundefined{\??an#1}\@EA\dodoanchor\else\@EA\nonoanchor\fi[#1]}
+
+\def\nonoanchor[#1]%
+ {\getvalue{\??an#1}}
+
+\def\dodoanchor[#1]%
+ {\dotripleempty\dododoanchor[#1]}
+
+\def\dododoanchor
+ {\ifthirdargument
+ \expandafter\dodoanchorT
+ \else
+ \expandafter\dodoanchorS
+ \fi}
+
+\def\dodoanchorS[#1][#2][#3]%
+ {\dodoanchorT[#1][#2][#2]}
+
+\def\dodoanchorT[#1][#2][#3]%
+ {\dowithnextbox
+ {\bgroup
+ \checktextbackgrounds
+ \setbox\scratchbox\null
+ \wd\scratchbox\nextboxwd
+ \ht\scratchbox\nextboxht
+ \dp\scratchbox\nextboxdp
+ \setlayer
+ [anchor]
+ [\c!width=\wd\scratchbox,
+ \c!height=\ht\scratchbox,
+ \c!offset=\!!zeropoint,
+ #2,#3]
+ {\setlayer[#1]{\flushnextbox}}%
+ \framed
+ [#2,
+ \c!background=anchor,
+ \c!offset=\v!overlay,
+ \c!frame=\v!off,
+ #3]
+ {\box\scratchbox}%
+ \egroup}%
+ \vbox}
+
+\def\defineanchor
+ {\doquadrupleempty\dodefineanchor}
+
+\def\dodefineanchor[#1][#2][#3][#4]%
+ {\setvalue{\??an#1}{\dodefinedanchor[#2][#3][#4]}}
+
+\def\dodefinedanchor[#1][#2][#3]%
+ {\def\docommand[##1][##2]%
+ {\ifsecondargument
+ \def\next{\dodoanchorT[#1][#2,##1][#3,##2]}%
+ \else\iffirstargument
+ \def\next{\dodoanchorT[#1][#2,##1][#2,##1]}%
+ \else
+ \def\next{\dodoanchorT[#1][#2][#3]}%
+ \fi\fi
+ \next}%
+ \dodoubleempty\docommand}
+
+\def\@@collectorbox{@@collectorbox}
+
+\def\definecollector
+ {\dodoubleargument\dodefinecollector}
+
+\def\dodefinecollector[#1][#2]%
+ {\ifundefined{\@@collectorbox#1}%
+ \expandafter\newbox\csname\@@collectorbox#1\endcsname
+ \fi
+ \resetcollector[#1]%
+ \setupcollector
+ [#1]
+ [\c!state=\v!start,
+ \c!x=\!!zeropoint,\c!y=\!!zeropoint,
+ \c!offset=\!!zeropoint,\c!rotation=, % geen 0 !
+ \c!hoffset=\!!zeropoint,\c!voffset=\!!zeropoint,
+ \c!location=rb,\c!corner=,#2]}
+
+\def\setupcollector
+ {\dodoubleargument\dosetupcollector}
+
+\def\dosetupcollector[#1][#2]%
+ {\def\docommand##1{\getparameters[\??cb##1][#2]}%
+ \processcommalist[#1]\docommand}
+
+\def\setcollector
+ {\dodoubleargument\dosetcollector}
+
+\def\dosetcollector[#1][#2]%
+ {\bgroup
+ \forgetall
+ \dontcomplain
+ \dowithnextbox
+ {\ifundefined{\@@collectorbox#1}%
+ \writestatus{collector}{unknown layer #1}%
+ \else
+ \dodosetcollector[#1][#2]%
+ \fi
+ \egroup}
+ \hbox}
+
+\def\collectorparameter#1{\csname\??cb\currentcollector#1\endcsname}
+
+\def\dodosetcollector[#1][#2]% todo: keep reference point
+ {\def\currentcollector{#1}%
+ \mathchardef\collectorbox\csname\@@collectorbox#1\endcsname
+ \getparameters[\??cb#1][#2]%
+ \@@layerxsiz\wd\collectorbox
+ \@@layerysiz\ht\collectorbox
+ \doifvaluesomething{\??cb#1\c!rotation}
+ {\setbox\nextbox\hbox
+ {\rotate
+ [\c!location=\v!high,
+ \c!rotation=\collectorparameter\c!rotation]
+ {\flushnextbox}}}%
+ \advance\@@layerysiz\dp\collectorbox
+ \@@layerxpos\collectorparameter\c!x
+ \advance\@@layerxpos\collectorparameter\c!hoffset
+ \@@layerypos\collectorparameter\c!y
+ \advance\@@layerypos\collectorparameter\c!voffset
+ \doifelse\v!middle{\collectorparameter\c!corner}
+ {\ifdim\@@layerxsiz>\zeropoint
+ \advance\@@layerxpos.5\@@layerxsiz
+ \fi
+ \ifdim\@@layerysiz>\zeropoint
+ \advance\@@layerypos.5\@@layerysiz
+ \fi}%
+ {\ExpandBothAfter\doifinset\v!bottom{\collectorparameter\c!corner}
+ {\ifdim\@@layerysiz>\zeropoint
+ \advance\@@layerypos-\@@layerysiz
+ \@@layerypos-\@@layerypos
+ \fi}%
+ \ExpandBothAfter\doifinset\v!right{\collectorparameter\c!corner}
+ {\ifdim\@@layerxsiz>\zeropoint
+ \advance\@@layerxpos-\@@layerxsiz
+ \@@layerxpos-\@@layerxpos
+ \fi}}%
+ \setbox\nextbox\hbox
+ {\alignedbox[\collectorparameter\c!location]\vbox{\flushnextbox}}%
+ \boxmaxdepth\zeropoint % really needed, nice example
+ \global\advance\boxhdisplacement\@@layerxpos
+ \ifdim\boxhdisplacement<\zeropoint
+ \global\setbox\collectorbox\hbox
+ {\hskip-\boxhdisplacement
+ \box\collectorbox}%
+ \fi
+ \global\advance\boxvdisplacement\@@layerypos
+ \ifdim\boxvdisplacement<\zeropoint
+ \global\setbox\collectorbox\hbox
+ {\lower-\boxvdisplacement
+ \box\collectorbox}%
+ \fi
+ \@@layerxsiz\wd\collectorbox
+ \@@layerysiz\ht\collectorbox
+ \advance\@@layerysiz\dp\collectorbox
+ \global\setbox\collectorbox\hbox
+ {\box\collectorbox
+ \hskip-\@@layerxsiz
+ \hskip\@@layerxpos\relax
+ \ifdim\boxhdisplacement<\zeropoint
+ \hskip-\boxhdisplacement
+ \fi
+ \lower\@@layerypos\hbox
+ {\ifdim\boxvdisplacement<\zeropoint
+ \lower-\boxvdisplacement\flushnextbox
+ \else
+ \flushnextbox
+ \fi}}%
+ % combine height and depth into depth only (later flushed as height)
+ \global\setbox\collectorbox\hbox
+ {\lower\ht\collectorbox\box\collectorbox}%
+ % just to be sure
+ \ifdim\wd\collectorbox<\@@layerxsiz
+ \global\wd\collectorbox\@@layerxsiz
+ \fi}
+
+\def\flushcollector[#1]%
+ {\ifundefined{\@@collectorbox#1}%
+ \writestatus{collector}{unknown collector #1}%
+ \else
+ \doifnotvalue{\??cb#1\c!state}\v!stop
+ {\vbox
+ {\hbox
+ {\doifelsevalue{\??cb#1\c!state}\v!repeat
+ {\let\next\copy}{\let\next\box}%
+ \raise\dp\csname\@@collectorbox#1\endcsname
+ \next\csname\@@collectorbox#1\endcsname}}}%
+ \fi}
+
+\def\composedcollector#1{\flushcollector[#1]}
+
+\def\resetcollector[#1]%
+ {\ifundefined{\@@collectorbox#1}\else
+ \global\setbox\csname\@@collectorbox#1\endcsname\emptybox
+ \fi}
+
+\def\adaptcollector
+ {\dodoubleargument\doadaptcollector}
+
+\def\doadaptcollector[#1][#2]%
+ {\bgroup
+ \def\currentcollector{#1}%
+ \mathchardef\collectorbox\csname\@@collectorbox#1\endcsname
+ \getparameters
+ [\??cb#1][\c!voffset=\zeropoint,\c!hoffset=\zeropoint,#2]%
+ \scratchdimen\wd\collectorbox
+ \advance\scratchdimen\collectorparameter\c!hoffset
+ \global\wd\collectorbox\scratchdimen
+ \scratchdimen\ht\collectorbox
+ \advance\scratchdimen\collectorparameter\c!voffset
+ \global\ht\collectorbox\scratchdimen
+ \egroup}
+
+%\definecollector[test]
+%\setcollector[test]
+% [location=rb]
+% {\externalfigure[koe][frame=on,width=3cm]}
+%\setcollector[test]
+% [corner={right,bottom},location={left,top}]
+% {\framed{gans}}
+%\composedcollector{test}
+
+\definecollector
+ [caption]
+
+\def\collectedtext
+ {\dodoubleempty\docollectedtext}
+
+\def\docollectedtext[#1][#2]#3%
+ {\bgroup
+ \dowithnextbox
+ {\setcollector
+ [caption]
+ {\flushnextbox}%
+ \setcollector
+ [caption][#1]
+ {\getparameters[\??du][#2]%
+ \dosetfontattribute\??du\c!style\setupinterlinespace
+ \framed % watch the special setting of kader/overlay
+ [\c!frame=\v!overlay,#2]
+ {\doattributes\??du\c!style\c!color{#3}}}%
+ \composedcollector{caption}%
+ \egroup}%
+ \hbox}
+
+% \collectedtext
+% [corner={right,bottom},location={left,top}]
+% [background=color,backgroundcolor=white,offset=0pt]
+% {gans}
+% {\externalfigure[koe][width=3cm]}
+%
+% \collectedtext
+% [rotation=90,corner={right,bottom},location={right,top}]
+% [frame=on,offset=0pt]
+% {gans}
+% {\externalfigure[koe][width=3cm]}
+%
+% \collectedtext
+% [rotation=90,corner={left,bottom},location={left,top}]
+% [frame=on,offset=0pt]
+% {gans}
+% {\externalfigure[koe][width=3cm]}
+
+\definelayer
+ [caption]
+
+\def\layeredtext
+ {\dodoubleempty\dolayeredtext}
+
+\def\dolayeredtext[#1][#2]#3%
+ {\bgroup
+ \dowithnextbox
+ {\!!widtha \nextboxwd
+ \!!heighta\nextboxht
+ \bgroup % preserve \nextbox
+ \setuplayer
+ [caption]
+ [\c!width=\!!widtha,\c!height=\!!heighta]%
+ \setlayer
+ [caption]
+ [#1]
+ {\getparameters[\??du][#2]%
+ \dosetfontattribute\??du\c!style\setupinterlinespace
+ \framed
+ [\c!frame=\v!overlay,,#2]
+ {\doattributes\??du\c!style\c!color{#3}}}%
+ \egroup
+ \framed
+ [\c!offset=\v!overlay,
+ \c!frame=\v!off,
+ \c!background={\v!foreground,caption},
+ \c!width=\!!widtha,
+ \c!height=\!!heighta]
+ {\flushnextbox}%
+ \egroup}%
+ \hbox}
+
+% \layeredtext
+% [corner={right,bottom},location={left,top}]
+% [background=color,backgroundcolor=white,offset=0pt]
+% {gans}
+% {\externalfigure[koe][width=3cm]}
+%
+% \layeredtext
+% [rotation=90,corner={right,bottom},location={right,top}]
+% [frame=on,offset=0pt]
+% {gans}
+% {\externalfigure[koe][width=3cm]}
+%
+% \layeredtext
+% [rotation=90,corner={left,bottom},location={left,top}]
+% [frame=on,offset=0pt]
+% {gans}
+% {\externalfigure[koe][width=3cm]}
+
+\def\ornamenttext
+ {\dodoubleempty\doornamenttext}
+
+\def\doornamenttext[#1][#2]%
+ {\bgroup
+ \doifassignmentelse{#1}
+ {\getparameters[\s!dummy][\c!alternative=\v!a,#1]%
+ \doifelse\dummyalternative\v!a
+ {\egroup\collectedtext}%
+ {\egroup\layeredtext }%
+ [#1][#2]}%
+ {\egroup\getvalue{#1}}}
+
+\def\defineornament
+ {\dotripleempty\dodefineornament}
+
+\def\dodefineornament[#1][#2][#3]%
+ {\setvalue{#1}{\doornamenttext[#2][#3]}}
+
+% \defineornament
+% [affiliation]
+% [rotation=90,corner={right,bottom},location={right,top},
+% hoffset=-.25ex]
+% [frame=on,background=color,backgroundcolor=red,offset=0pt]
+%
+% \ruledhbox{\affiliation{gans}{\externalfigure[koe][width=3cm]}}
+%
+% \defineornament
+% [affiliation]
+% [rotation=90,corner={right,bottom},location={right,top},
+% hoffset=-.25ex,alternative=b]
+% [frame=on,background=color,backgroundcolor=red,offset=0pt]
+%
+% \ruledhbox{\affiliation{gans}{\externalfigure[koe][width=3cm]}}
+%
+% \defineornament
+% [affiliation]
+% [rotation=90,corner={right,bottom},location={left,top},
+% hoffset=.25ex,voffset=.25ex,alternative=a]
+% [background=color,style=\ss\tfxx,backgroundcolor=white,offset=0pt]
+%
+% \affiliation{photo}{\externalfigure[molen][width=3cm]}
+%
+% \defineornament
+% [affiliation]
+% [rotation=90,corner={right,bottom},location={left,top},
+% hoffset=.25ex,voffset=.25ex,alternative=b]
+% [background=color,style=\ss\tfxx,backgroundcolor=white,offset=0pt]
+%
+% \affiliation{drawing}{\externalfigure[hakker][width=3cm]}
+
+% pas op: aanpassen aan nieuwe layer hoek ankers en columnset
+
+\newcount\nofbleeds % per pag
+
+\def\setupbleeding
+ {\dodoubleempty\getparameters[\??bg]}
+
+\setupbleeding
+ [\c!location=l,
+ \c!stretch=\v!yes,
+ \c!width=3cm,
+ \c!height=3cm,
+ \c!offset=2mm,
+ \c!page=\v!no,
+ \c!voffset=\@@bgoffset,
+ \c!hoffset=\@@bgoffset]
+
+\def\bleed
+ {\dosingleempty\dobleed}
+
+
+\def\bleedwidth {\the\hsize}%
+\def\bleedheight{\the\vsize}%
+
+\def\dobleed[#1]#2%
+ {\hbox\bgroup
+ \xdef\bleedwidth {\the\hsize}%
+ \xdef\bleedheight{\the\vsize}%
+ \global\advance\nofbleeds\plusone
+ \getparameters[\??bg][#1]%
+ \!!doneafalse % left
+ \!!donebfalse % right
+ \!!donecfalse % top
+ \!!donedfalse % bottom
+ % replace this part ! todo: default location
+ \processaction
+ [\@@bglocation]
+ [ t=>\!!donectrue\let\@@bghoffset\!!zeropoint,
+ b=>\!!donedtrue\let\@@bghoffset\!!zeropoint,
+ l=>\!!doneatrue\let\@@bgvoffset\!!zeropoint,
+ r=>\!!donebtrue\let\@@bgvoffset\!!zeropoint,
+ bl=>\!!doneatrue\!!donedtrue,
+ lb=>\!!doneatrue\!!donedtrue,
+ br=>\!!donebtrue\!!donedtrue,
+ rb=>\!!donebtrue\!!donedtrue,
+ tl=>\!!doneatrue\!!donectrue,
+ lt=>\!!doneatrue\!!donectrue,
+ tr=>\!!donebtrue\!!donectrue,
+ rt=>\!!donebtrue\!!donectrue]%
+ \doifelse\@@bgstretch\v!yes\donetrue\donefalse
+ \scratchdimen\@@bgwidth
+ \ifdone
+ \if!!donea
+ \advance\scratchdimen\MPx{\??bg:\number\nofbleeds}%
+ \else\if!!doneb
+ \scratchdimen\paperwidth
+ \advance\scratchdimen-\MPx{\??bg:\number\nofbleeds}%
+ \fi\fi
+ \fi
+ \advance\scratchdimen\@@bghoffset
+ \xdef\bleedwidth{\the\scratchdimen}%
+ \scratchdimen\@@bgheight
+ \ifdone
+ \if!!donec
+ \scratchdimen\paperheight
+ \advance\scratchdimen-\MPy{\??bg:\number\nofbleeds}%
+ \else\if!!doned
+ \advance\scratchdimen\MPy{\??bg:\number\nofbleeds}%
+ \fi\fi
+ \fi
+ \advance\scratchdimen\@@bgvoffset
+ \xdef\bleedheight{\the\scratchdimen}%
+ \hsize\bleedwidth
+ \vsize\bleedheight
+ \setbox\scratchbox\hbox{#2}%
+ \doif\@@bgpage\v!yes
+ {\setbox\scratchbox\topskippedbox{\box\scratchbox}}%
+ \setbox\scratchbox\hbox to \@@bgwidth
+ {\if!!donea\hss\fi\box\scratchbox\if!!doneb\hss\fi}%
+ \if!!doned
+ \setbox\scratchbox\hbox
+ {\lower\bleedheight\hbox{\raise\@@bgheight\box\scratchbox}}%
+ \fi
+ \wd\scratchbox\@@bgwidth
+ \ht\scratchbox\@@bgheight
+ \dp\scratchbox\zeropoint
+ \ifdone
+ \hpos{\??bg:\number\nofbleeds}{\box\scratchbox}%
+ \else
+ \box\scratchbox
+ \fi
+ \egroup}
+
+\setupbleeding[\c!stretch=\v!yes]
+
+\defineexternalfigure[bleed][\c!width=\bleedwidth,\c!height=\bleedheight]
+
+% \placefigure[left]{none}
+% {\bleed[width=5cm,height=3cm,location=lt]{\externalfigure[koe][bleed]}}
+%
+% \input tufte
+%
+% \placefigure[left]{none}
+% {\bleed[width=5cm,height=3cm,location=l]{\externalfigure[koe][bleed]}}
+%
+% \input tufte
+%
+% \placefigure[right]{none}
+% {\bleed[width=5cm,height=3cm,location=r]{\externalfigure[koe][bleed]}}
+%
+% \input tufte
+%
+% \placesomefloat[right]{none}
+% {\bleed[width=5cm,height=3cm,location=rb]{\externalfigure[koe][bleed]}}
+%
+% \input tufte
+%
+% \placefigure
+% [top,none]
+% {} % no caption
+% {\bleed
+% [hoffset=-\backspace,
+% voffset=3mm,
+% width=0cm,
+% height=6\lineheight,
+% page=yes, % correct for topskip
+% location=lt]
+% {\externalfigure[koe][bleed][frame=on]}}
+
+% \setlayerframed[layer id][layer settings][framed setting]{data}
+% \setlayerframed[layer id][combined settings]{data}
+
+\def\setlayerframed
+ {\dotripleempty\dosetlayerframed}
+
+\def\dosetlayerframed
+ {\ifthirdargument
+ \expandafter\dosetlayerframedT
+ \else
+ \expandafter\dosetlayerframedS
+ \fi}
+
+\def\dosetlayerframedT[#1][#2][#3]%
+ {\dowithnextbox{\setlayer[#1][#2]{\flushnextbox}}%
+ \hbox\framed[#3]}
+
+\def\dosetlayerframedS[#1][#2][#3]%
+ {\dowithnextbox
+ {\setlayer
+ [#1]
+ [\c!width=\nextboxwd,\c!height=\nextboxht,
+ \c!offset=\!!zeropoint,#2]
+ {\flushnextbox}}%
+ \hbox\framed[\c!location=\v!normal,#2]}
+
+\def\setlayertext
+ {\dotripleempty\dosetlayertext}
+
+\def\dosetlayertext[#1][#2][#3]%
+ {\bgroup
+ \getparameters
+ [\??lx]
+ [\c!align=,
+ \c!width=\hsize,
+ \c!color=,
+ \c!style=,
+ #3]%
+ \dowithnextboxcontent
+ {\forgetall
+ \hsize\@@lxwidth
+ \expanded{\setupalign[\@@lxalign]}%
+ \dosetfontattribute\??lx\c!style}
+ {\setlayer[#1][#2]{\strut\color[\@@lxcolor]{\flushnextbox}}%
+ \egroup}%
+ \vtop}
+
+% \setupbackgrounds
+% [page]
+% [background=pagefigures]
+%
+% \definelayer
+% [pagefigures]
+% [x=-2mm,
+% y=-2mm,
+% width=\paperwidth,
+% height=\paperheight]
+%
+% \definelayerpreset [lefttop] [corner={left,top},location={right,bottom}]
+% \definelayerpreset [righttop] [corner={right,top},location={left,bottom}]
+% \definelayerpreset [leftbottom] [corner={left,bottom},location={right,top}]
+% \definelayerpreset [rightbottom] [corner={right,bottom},location={left,top}]
+% \definelayerpreset [middle] [corner=middle,location=middle]
+%
+% \setlayer[pagefigures][preset=lefttop]
+% \setlayer[pagefigures][preset=righttop]
+% \setlayer[pagefigures][preset=leftbottom]
+% \setlayer[pagefigures][preset=rightbottom]
+
+\definelayerpreset
+ [\v!left\v!top]
+ [\c!corner={\v!left,\v!top},\c!location={\v!right,\v!bottom}]
+
+\definelayerpreset
+ [\v!right\v!top]
+ [\c!corner={\v!right,\v!top},\c!location={\v!left,\v!bottom}]
+
+\definelayerpreset
+ [\v!left\v!bottom]
+ [\c!corner={\v!left,\v!bottom},\c!location={\v!right,\v!top}]
+
+\definelayerpreset
+ [\v!right\v!bottom]
+ [\c!corner={\v!right,\v!bottom},\c!location={\v!left,\v!top}]
+
+\definelayerpreset
+ [\v!middle]
+ [\c!corner=\v!middle,\c!location=\v!middle]
+
+% \definelayerpreset
+% [\v!middle\v!top]
+% [\c!location=\v!bottom,\c!hoffset=.5\layerwidth]
+
+% \definelayerpreset
+% [\v!middle\v!bottom]
+% [\c!location=\v!top,\c!hoffset=.5\layerwidth,\c!voffset=\layerheight]
+
+% \definelayerpreset
+% [\v!middle\v!left]
+% [\c!location=\v!right,\c!voffset=.5\layerheight]
+
+% \definelayerpreset
+% [\v!middle\v!right]
+% [\c!location=\v!left,\c!hoffset=\layerwidth,\c!voffset=.5\layerheight]
+
+\definelayerpreset
+ [\v!middle\v!top]
+ [\c!location=\v!bottom,\c!corner=\v!top,\c!dx=.5\layerwidth]
+
+\definelayerpreset
+ [\v!middle\v!bottom]
+ [\c!location=\v!top,\c!corner=\v!bottom,\c!dx=.5\layerwidth]
+
+\definelayerpreset
+ [\v!middle\v!left]
+ [\c!location=\v!right,\c!corner=\v!left,\c!dy=.5\layerheight]
+
+\definelayerpreset
+ [\v!middle\v!right]
+ [\c!location=\v!left,\c!corner=\v!right,\c!dy=.5\layerheight]
+
+\def\alignedbox
+ {\dodoubleempty\doalignedbox[]}
+
+% \def\doalignedbox[#1][#2]%
+% {\bgroup
+% %\let\iftraceboxplacement\iftracelayers % ugly
+% \dowithnextbox
+% {\let\next\middlebox
+% \processaction
+% [#2]
+% [ t=>\let\next\topbox , b=>\let\next\bottombox ,
+% l=>\let\next\leftbox , r=>\let\next\rightbox ,
+% bl=>\let\next\bottomleftbox,br=>\let\next\bottomrightbox,
+% tl=>\let\next\topleftbox ,tr=>\let\next\toprightbox ,
+% lt=>\let\next\lefttopbox ,lb=>\let\next\leftbottombox ,
+% rt=>\let\next\righttopbox ,rb=>\let\next\rightbottombox]%
+% \next{\flushnextbox}%
+% \egroup}#1}
+
+\def\doalignedbox[#1][#2]%
+ {\bgroup
+ %\let\iftraceboxplacement\iftracelayers % ugly
+ \dowithnextbox
+ {\serializecommalist[#2]%
+ \executeifdefined{\??ab\??ab\serializedcommalist}\middlebox{\flushnextbox}%
+ \egroup}#1}
+
+\setvalue{\??ab\??ab }{\middlebox}
+\setvalue{\??ab\??ab\v!middle }{\middlebox}
+\setvalue{\??ab\??ab\v!left }{\leftbox }
+\setvalue{\??ab\??ab\v!right }{\rightbox }
+\setvalue{\??ab\??ab\v!bottom }{\bottombox}
+\setvalue{\??ab\??ab\v!top }{\topbox }
+
+\setvalue{\??ab\??ab\v!middle\v!middle}{\middlebox}
+\setvalue{\??ab\??ab\v!left \v!top }{\lefttopbox}
+\setvalue{\??ab\??ab\v!left \v!bottom}{\leftbottombox}
+\setvalue{\??ab\??ab\v!right \v!top }{\righttopbox}
+\setvalue{\??ab\??ab\v!right \v!bottom}{\rightbottombox}
+\setvalue{\??ab\??ab\v!top \v!left }{\topleftbox}
+\setvalue{\??ab\??ab\v!bottom\v!left }{\bottomleftbox}
+\setvalue{\??ab\??ab\v!top \v!right }{\toprightbox}
+\setvalue{\??ab\??ab\v!bottom\v!right }{\bottomrightbox}
+
+\setvalue{\??ab\??ab c}{\middlebox}
+\setvalue{\??ab\??ab l}{\leftbox}
+\setvalue{\??ab\??ab r}{\rightbox}
+\setvalue{\??ab\??ab b}{\bottombox}
+\setvalue{\??ab\??ab t}{\topbox}
+
+\setvalue{\??ab\??ab lt}{\lefttopbox}
+\setvalue{\??ab\??ab lb}{\leftbottombox}
+\setvalue{\??ab\??ab rt}{\righttopbox}
+\setvalue{\??ab\??ab rb}{\rightbottombox}
+\setvalue{\??ab\??ab tl}{\topleftbox}
+\setvalue{\??ab\??ab bl}{\bottomleftbox}
+\setvalue{\??ab\??ab tr}{\toprightbox}
+\setvalue{\??ab\??ab br}{\bottomrightbox}
+
+\setvalue{\??ab\??ab m}{\middlebox}
+
+% The next ones were desparately needed by Vit Zyka (see
+% \type {supp-box} for definitions).
+
+\setvalue{\??ab\??ab g}{\baselinemiddlebox}
+\setvalue{\??ab\??ab gl}{\baselineleftbox}
+\setvalue{\??ab\??ab gc}{\baselinemiddlebox}
+\setvalue{\??ab\??ab gr}{\baselinerightbox}
+
+\setvalue{\??ab\??ab \v!line }{\baselinemiddlebox} % \v!grid is taken
+\setvalue{\??ab\??ab \v!line\v!left }{\baselineleftbox}
+\setvalue{\??ab\??ab \v!line\v!middle}{\baselinemiddlebox}
+\setvalue{\??ab\??ab \v!line\v!right }{\baselinerightbox}
+
+\def\offsetbox
+ {\dodoubleempty\dooffsetbox[]}
+
+% left/right/top/bottomoffset -> dimensions change
+% x/y | method=fixed -> dimensions don't change
+
+\def\dooffsetbox[#1][#2]%
+ {\bgroup
+ \dowithnextbox
+ {\getparameters[\??ox]
+ [\c!x=\zeropoint,
+ \c!y=\zeropoint,
+ \c!width=\nextboxwd,
+ \c!height=\nextboxht,
+ \c!depth=\nextboxdp,
+ \c!location=,
+ \c!leftoffset=\zeropoint,
+ \c!rightoffset=\zeropoint,
+ \c!topoffset=\zeropoint,
+ \c!bottomoffset=\zeropoint,
+ \c!method=,
+ #2]%
+ \donefalse
+ \ifdim\@@oxleftoffset =\zeropoint\else\donetrue\fi
+ \ifdim\@@oxrightoffset=\zeropoint\else\donetrue\fi
+ \ifdim\@@oxtopoffset =\zeropoint\else\donetrue\fi
+ \ifdim\@@oxbottomoffset =\zeropoint\else\donetrue\fi
+ \ifdone
+ \doif\@@oxmethod\v!fixed % new
+ {\ifdim\@@oxleftoffset=\zeropoint
+ \ifdim\@@oxrightoffset=\zeropoint \else
+ \scratchdimen-\@@oxrightoffset
+ \edef\@@oxx{\the\scratchdimen}%
+ \let\@@oxrightoffset\zeropoint
+ \fi
+ \else
+ \let\@@oxx\@@oxleftoffset
+ \let\@@oxleftoffset\zeropoint
+ \fi
+ \ifdim\@@oxtopoffset=\zeropoint
+ \ifdim\@@oxbottomoffset=\zeropoint \else
+ \scratchdimen-\@@oxbottomoffset
+ \edef\@@oxy{\the\scratchdimen}%
+ \let\@@oxbottomoffset\zeropoint
+ \fi
+ \else
+ \let\@@oxy\@@oxtopoffset
+ \let\@@oxtopoffset\zeropoint
+ \fi
+ \donefalse}%
+ \fi
+ \ifdone
+ \setbox\nextbox\vbox
+ {\forgetall\offinterlineskip
+ \vskip\@@oxtopoffset
+ \hbox
+ {\hskip\@@oxleftoffset
+ \flushnextbox
+ \hskip\@@oxrightoffset}%
+ \vskip\@@oxbottomoffset}%
+ \scratchdimen\nextboxht
+ \advance\scratchdimen\nextboxdp
+ \nextboxht\scratchdimen
+ \nextboxdp\zeropoint
+ \fi
+ \freezedimenmacro\@@oxwidth
+ \freezedimenmacro\@@oxheight
+ \freezedimenmacro\@@oxdepth
+ \setbox\nextbox\hbox
+ {\hskip\@@oxx\lower\@@oxy\hbox
+ {\doifelsenothing\@@oxlocation
+ {\flushnextbox}
+ {\alignedbox[\@@oxlocation]\hbox{\flushnextbox}}}}%
+ \nextboxwd\@@oxwidth
+ \nextboxht\@@oxheight
+ \nextboxdp\@@oxdepth
+ \flushnextbox
+ \egroup}#1}
+
+% \useMPlibrary[pre] \setupbackgrounds[page][background=pagegrid]
+%
+% \placefigure[left,none]{}{\offset[leftoffset=1cm]{\externalfigure[koe][breedte=3cm]}}
+% \input tufte
+% \placefigure[left,none]{}{\offset[rightoffset=1cm]{\externalfigure[koe][breedte=3cm]}}
+% \input tufte
+% \placefigure[left,none]{}{\offset[topoffset=1cm]{\externalfigure[koe][breedte=3cm]}}
+% \input tufte
+% \placefigure[left,none]{}{\offset[bottomoffset=1cm]{\externalfigure[koe][breedte=3cm]}}
+% \input tufte
+
+\def\offset {\dodoubleempty\dooffsetbox [\hbox]} % yes or no
+\def\aligned{\dosingleempty\doalignedbox[\hbox]} % yes or no
+
+%\ruledhbox{\offsetbox[x=-1cm,y=-1cm,location=c]
+% {\framed[width=4cm,height=4cm]{x}}}
+
+\def\dotabbed#1#2#3#4%
+ {\dontleavehmode
+ \bgroup
+ \setbox\scratchbox\hbox{#3}%
+ \hbox to \wd\scratchbox{#1#4#2}%
+ \egroup}
+
+\def\ltabbed{\dotabbed\relax\hss}
+\def\rtabbed{\dotabbed\hss \relax}
+\def\ctabbed{\dotabbed\hss \hss} \let\mtabbed\ctabbed
+
+% \ltabbed{\romeins{3}}{\romeins{1}} test \endgraf
+% \ltabbed{\romeins{3}}{\romeins{2}} test \endgraf
+% \ltabbed{\romeins{3}}{\romeins{3}} test \endgraf
+%
+% \rtabbed{\romeins{3}}{\romeins{1}} test \endgraf
+% \rtabbed{\romeins{3}}{\romeins{2}} test \endgraf
+% \rtabbed{\romeins{3}}{\romeins{3}} test \endgraf
+%
+% \ctabbed{\romeins{3}}{\romeins{1}} test \endgraf
+% \ctabbed{\romeins{3}}{\romeins{2}} test \endgraf
+% \ctabbed{\romeins{3}}{\romeins{3}} test \endgraf
+
+% alternative, if done, then other name
+%
+% \def\dotabbed#1#2#3#4%
+% {\dontleavehmode
+% \bgroup
+% \scratchdimen\zeropoint
+% \def\docommand##1%
+% {\setbox\scratchbox\hbox{##1}%
+% \ifdim\wd\scratchbox>\scratchdimen
+% \scratchdimen\wd\scratchbox
+% \fi}%
+% \processcommalist[#3]\docommand
+% \hbox to \scratchdimen{#1#4#2}%
+% \egroup}
+%
+% \def\ltabbed{\dotabbed\relax\hss}
+% \def\rtabbed{\dotabbed\hss \relax}
+% \def\ctabbed{\dotabbed\hss \hss} \let\mtabbed\ctabbed
+%
+% \ltabbed{\romeins{10},\romeins{2000},\romeins{15}}{\romeins{10}} test \endgraf
+% \ltabbed{\romeins{10},\romeins{2000},\romeins{15}}{\romeins{15}} test \endgraf
+% \ltabbed{\romeins{10},\romeins{2000},\romeins{15}}{\romeins{2000}} test \endgraf
+%
+% \rtabbed{\romeins{10},\romeins{2000},\romeins{15}}{\romeins{10}} test \endgraf
+% \rtabbed{\romeins{10},\romeins{2000},\romeins{15}}{\romeins{15}} test \endgraf
+% \rtabbed{\romeins{10},\romeins{2000},\romeins{15}}{\romeins{2000}} test \endgraf
+%
+% \ctabbed{\romeins{10},\romeins{2000},\romeins{15}}{\romeins{10}} test \endgraf
+% \ctabbed{\romeins{10},\romeins{2000},\romeins{15}}{\romeins{15}} test \endgraf
+% \ctabbed{\romeins{10},\romeins{2000},\romeins{15}}{\romeins{2000}} test \endgraf
+
+% to be documented
+
+\def\phantombox[#1]%
+ {\hbox\bgroup
+ \getparameters
+ [\??ol]
+ [\c!width=\zeropoint,%
+ \c!height=\zeropoint,%
+ \c!depth=\zeropoint,#1]%
+ \setbox\scratchbox\null
+ \wd\scratchbox\@@olwidth
+ \ht\scratchbox\@@olheight
+ \dp\scratchbox\@@oldepth
+ \box\scratchbox
+ \egroup}
+
+% \backgroundimage{1}{\hsize}{\vsize}{\externalfigure[cow][\c!width=3cm]}
+
+\def\backgroundimage#1#2#3% repeat hsize vsize
+ {\bgroup
+ \forgetall
+ \dowithnextbox
+ {\offinterlineskip
+ \ifcase#1\relax
+ % just one
+ \else
+ \scratchdimen#2\divide\scratchdimen\nextboxwd\count0\scratchdimen\advance\count0\plusone
+ \scratchdimen#3\divide\scratchdimen\nextboxht\count2\scratchdimen\advance\count2\plusone
+ % to be considered, probably methods
+ \ifcase#1\or % x and y
+ \setbox\nextbox\hbox{\dorecurse{\count0}{\copy\nextbox}}%
+ \setbox\nextbox\vbox{\dorecurse{\count2}{\copy\nextbox\endgraf}}%
+ \or % x
+ \setbox\nextbox\hbox{\dorecurse{\count0}{\copy\nextbox}}%
+ \or % y
+ \setbox\nextbox\vbox{\dorecurse{\count2}{\copy\nextbox\endgraf}}%
+ \fi
+ \fi
+ \ifdim\nextboxwd>#2\relax
+ \setbox\nextbox\hbox to #2{\hss\flushnextbox\hss}%
+ \setbox\nextbox\hbox{\expanded{\clip[\c!width=#2,\c!height=\the\nextboxht]{\flushnextbox}}}%
+ \fi
+ \ifdim\nextboxht>#3\relax
+ \setbox\nextbox\vbox to #3{\vss\flushnextbox\vss}%
+ \setbox\nextbox\hbox{\expanded{\clip[\c!width=\the\nextboxwd,\c!height=#3]{\flushnextbox}}}%
+ \fi
+ \flushnextbox
+ \egroup}%
+ \hbox}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/pack-box.mkiv b/Master/texmf-dist/tex/context/base/pack-box.mkiv
new file mode 100644
index 00000000000..2ab765d7d75
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/pack-box.mkiv
@@ -0,0 +1,949 @@
+%D \module
+%D [ file=pack-box,
+%D version=2002.04.12,
+%D title=\CONTEXT\ Packaging Macros,
+%D subtitle=Boxes,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Packaging Macros / Boxes}
+
+%D This module contains all kind of macros for moving content
+%D around. Many macros here come from other modules, but
+%D depencies made it more clear to isolate them.
+
+% \placeornament
+
+\unprotect
+
+% \definelayer[\v!tekst-2][\c!positie=\v!ja]
+% \definelayer[\v!tekst-1][\c!positie=\v!ja]
+% \definelayer[\v!tekst+1][\c!positie=\v!ja]
+% \definelayer[\v!tekst+2][\c!positie=\v!ja]
+
+% we need to set the size, else we get dimensions depending
+% on the content, which in itsel fis ok, but can lead to loops
+% due to rounding errors (happened in demo-obv)
+
+\definelayer[\v!text-2][\c!position=\v!yes,\c!width=\overlaywidth,\c!height=\overlayheight]
+\definelayer[\v!text-1][\c!position=\v!yes,\c!width=\overlaywidth,\c!height=\overlayheight]
+\definelayer[\v!text+1][\c!position=\v!yes,\c!width=\overlaywidth,\c!height=\overlayheight]
+\definelayer[\v!text+2][\c!position=\v!yes,\c!width=\overlaywidth,\c!height=\overlayheight]
+
+\def\internaltextoverlay#1% will become more generic and installable
+ {\startoverlay % i.e. probably an overlay by itself
+ {\positionoverlay{\v!text#1}} % see later
+ {\composedlayer {\v!text#1}}
+ \stopoverlay}
+
+%\def\internaltextoverlay#1%
+% {\hbox to \zeropoint{\positionoverlay{\v!tekst#1}\hss}%
+% \composedlayer{\v!tekst#1}}
+
+% todo: share info, so that tuo will be smaller
+
+\defineoverlay[\v!text-2][\internaltextoverlay{-2}]
+\defineoverlay[\v!text-1][\internaltextoverlay{-1}]
+\defineoverlay[\v!text+1][\internaltextoverlay{+1}]
+\defineoverlay[\v!text+2][\internaltextoverlay{+2}]
+
+% to be documented
+
+\definelayer[anchor]
+
+\def\anchor
+ {\dosingleargument\doanchor}
+
+\def\doanchor[#1]%
+ {\ifcsname\??an#1\endcsname\@EA\nonoanchor\else\@EA\dodoanchor\fi[#1]}
+
+\def\nonoanchor[#1]%
+ {}
+
+\def\dodoanchor[#1]%
+ {\dotripleempty\dododoanchor[#1]}
+
+\def\dododoanchor
+ {\ifthirdargument
+ \expandafter\dodoanchorT
+ \else
+ \expandafter\dodoanchorS
+ \fi}
+
+\def\dodoanchorS[#1][#2][#3]%
+ {\dodoanchorT[#1][#2][#2]}
+
+\def\dodoanchorT[#1][#2][#3]%
+ {\dowithnextbox
+ {\bgroup
+ \checktextbackgrounds
+ \setbox\scratchbox\null
+ \wd\scratchbox\nextboxwd
+ \ht\scratchbox\nextboxht
+ \dp\scratchbox\nextboxdp
+ \setlayer
+ [anchor]
+ [\c!width=\wd\scratchbox,
+ \c!height=\ht\scratchbox,
+ \c!offset=\!!zeropoint,
+ #2,#3]
+ {\setlayer[#1]{\flushnextbox}}%
+ \framed
+ [#2,
+ \c!background=anchor,
+ \c!offset=\v!overlay,
+ \c!frame=\v!off,
+ #3]
+ {\box\scratchbox}%
+ \egroup}%
+ \vbox}
+
+\def\defineanchor
+ {\doquadrupleempty\dodefineanchor}
+
+\def\dodefineanchor[#1][#2][#3][#4]%
+ {\setvalue{\??an#1}{\dodefinedanchor[#2][#3][#4]}}
+
+\def\dodefinedanchor[#1][#2][#3]%
+ {\def\docommand[##1][##2]%
+ {\ifsecondargument
+ \def\next{\dodoanchorT[#1][#2,##1][#3,##2]}%
+ \else\iffirstargument
+ \def\next{\dodoanchorT[#1][#2,##1][#2,##1]}%
+ \else
+ \def\next{\dodoanchorT[#1][#2][#3]}%
+ \fi\fi
+ \next}%
+ \dodoubleempty\docommand}
+
+\def\@@collectorbox{@@collectorbox}
+
+\def\definecollector
+ {\dodoubleargument\dodefinecollector}
+
+\def\dodefinecollector[#1][#2]%
+ {\ifcsname\@@collectorbox#1\endcsname \else
+ \expandafter\newbox\csname\@@collectorbox#1\endcsname
+ \fi
+ \resetcollector[#1]%
+ \setupcollector
+ [#1]
+ [\c!state=\v!start,
+ \c!x=\!!zeropoint,\c!y=\!!zeropoint,
+ \c!offset=\!!zeropoint,\c!rotation=, % geen 0 !
+ \c!hoffset=\!!zeropoint,\c!voffset=\!!zeropoint,
+ \c!location=rb,\c!corner=,#2]}
+
+\def\setupcollector
+ {\dodoubleargument\dosetupcollector}
+
+\def\dosetupcollector[#1][#2]%
+ {\def\docommand##1{\getparameters[\??cb##1][#2]}%
+ \processcommalist[#1]\docommand}
+
+\def\setcollector
+ {\dodoubleargument\dosetcollector}
+
+\def\dosetcollector[#1][#2]%
+ {\bgroup
+ \forgetall
+ \dontcomplain
+ \dowithnextbox
+ {\ifcsname\@@collectorbox#1\endcsname
+ \dodosetcollector[#1][#2]%
+ \else
+ \writestatus{collector}{unknown layer #1}%
+ \fi
+ \egroup}
+ \hbox}
+
+\def\collectorparameter#1{\csname\??cb\currentcollector#1\endcsname}
+
+\def\dodosetcollector[#1][#2]% todo: keep reference point
+ {\def\currentcollector{#1}%
+ \chardef\collectorbox\csname\@@collectorbox#1\endcsname
+ \getparameters[\??cb#1][#2]%
+ \@@layerxsiz\wd\collectorbox
+ \@@layerysiz\ht\collectorbox
+ \doifvaluesomething{\??cb#1\c!rotation}
+ {\setbox\nextbox\hbox
+ {\rotate
+ [\c!location=\v!high,
+ \c!rotation=\collectorparameter\c!rotation]
+ {\flushnextbox}}}%
+ \advance\@@layerysiz\dp\collectorbox
+ \@@layerxpos\collectorparameter\c!x
+ \advance\@@layerxpos\collectorparameter\c!hoffset
+ \@@layerypos\collectorparameter\c!y
+ \advance\@@layerypos\collectorparameter\c!voffset
+ \doifelse\v!middle{\collectorparameter\c!corner}
+ {\ifdim\@@layerxsiz>\zeropoint
+ \advance\@@layerxpos.5\@@layerxsiz
+ \fi
+ \ifdim\@@layerysiz>\zeropoint
+ \advance\@@layerypos.5\@@layerysiz
+ \fi}%
+ {\normalexpanded{\noexpand\doifinset{\v!bottom}{\collectorparameter\c!corner}}
+ {\ifdim\@@layerysiz>\zeropoint
+ \advance\@@layerypos-\@@layerysiz
+ \@@layerypos-\@@layerypos
+ \fi}%
+ \normalexpanded{\noexpand\doifinset{\v!right}{\collectorparameter\c!corner}}
+ {\ifdim\@@layerxsiz>\zeropoint
+ \advance\@@layerxpos-\@@layerxsiz
+ \@@layerxpos-\@@layerxpos
+ \fi}}%
+ \setbox\nextbox\hbox
+ {\alignedbox[\collectorparameter\c!location]\vbox{\flushnextbox}}%
+ \boxmaxdepth\zeropoint % really needed, nice example
+ \global\advance\boxhdisplacement\@@layerxpos
+ \ifdim\boxhdisplacement<\zeropoint
+ \global\setbox\collectorbox\hbox
+ {\hskip-\boxhdisplacement
+ \box\collectorbox}%
+ \fi
+ \global\advance\boxvdisplacement\@@layerypos
+ \ifdim\boxvdisplacement<\zeropoint
+ \global\setbox\collectorbox\hbox
+ {\lower-\boxvdisplacement
+ \box\collectorbox}%
+ \fi
+ \@@layerxsiz\wd\collectorbox
+ \@@layerysiz\ht\collectorbox
+ \advance\@@layerysiz\dp\collectorbox
+ \global\setbox\collectorbox\hbox
+ {\box\collectorbox
+ \hskip-\@@layerxsiz
+ \hskip\@@layerxpos\relax
+ \ifdim\boxhdisplacement<\zeropoint
+ \hskip-\boxhdisplacement
+ \fi
+ \lower\@@layerypos\hbox
+ {\ifdim\boxvdisplacement<\zeropoint
+ \lower-\boxvdisplacement\flushnextbox
+ \else
+ \flushnextbox
+ \fi}}%
+ % combine height and depth into depth only (later flushed as height)
+ \global\setbox\collectorbox\hbox
+ {\lower\ht\collectorbox\box\collectorbox}%
+ % just to be sure
+ \ifdim\wd\collectorbox<\@@layerxsiz
+ \global\wd\collectorbox\@@layerxsiz
+ \fi}
+
+\def\flushcollector[#1]%
+ {\ifcsname\@@collectorbox#1\endcsname
+ \doifnotvalue{\??cb#1\c!state}\v!stop
+ {\vbox
+ {\hbox
+ {\doifelsevalue{\??cb#1\c!state}\v!repeat
+ {\let\next\copy}{\let\next\box}%
+ \raise\dp\csname\@@collectorbox#1\endcsname
+ \next\csname\@@collectorbox#1\endcsname}}}%
+ \else
+ \writestatus{collector}{unknown collector #1}%
+ \fi}
+
+\def\composedcollector#1{\flushcollector[#1]}
+
+\def\resetcollector[#1]%
+ {\ifcsname\@@collectorbox#1\endcsname
+ \global\setbox\csname\@@collectorbox#1\endcsname\emptybox
+ \fi}
+
+\def\adaptcollector
+ {\dodoubleargument\doadaptcollector}
+
+\def\doadaptcollector[#1][#2]%
+ {\bgroup
+ \def\currentcollector{#1}%
+ \chardef\collectorbox\csname\@@collectorbox#1\endcsname
+ \getparameters[\??cb#1][\c!voffset=\zeropoint,\c!hoffset=\zeropoint,#2]%
+ \scratchdimen\wd\collectorbox
+ \advance\scratchdimen\collectorparameter\c!hoffset
+ \global\wd\collectorbox\scratchdimen
+ \scratchdimen\ht\collectorbox
+ \advance\scratchdimen\collectorparameter\c!voffset
+ \global\ht\collectorbox\scratchdimen
+ \egroup}
+
+%\definecollector[test]
+%\setcollector[test]
+% [location=rb]
+% {\externalfigure[koe][frame=on,width=3cm]}
+%\setcollector[test]
+% [corner={right,bottom},location={left,top}]
+% {\framed{gans}}
+%\composedcollector{test}
+
+\definecollector
+ [caption]
+
+\def\collectedtext
+ {\dodoubleempty\docollectedtext}
+
+\def\docollectedtext[#1][#2]#3%
+ {\bgroup
+ \dowithnextbox
+ {\setcollector
+ [caption]
+ {\flushnextbox}%
+ \setcollector
+ [caption][#1]
+ {\getparameters[\??du][#2]%
+ \dosetfontattribute\??du\c!style\setupinterlinespace
+ \framed % watch the special setting of kader/overlay
+ [\c!frame=\v!overlay,#2]
+ {\doattributes\??du\c!style\c!color{#3}}}%
+ \composedcollector{caption}%
+ \egroup}%
+ \hbox}
+
+% \collectedtext
+% [corner={right,bottom},location={left,top}]
+% [background=color,backgroundcolor=white,offset=0pt]
+% {gans}
+% {\externalfigure[koe][width=3cm]}
+%
+% \collectedtext
+% [rotation=90,corner={right,bottom},location={right,top}]
+% [frame=on,offset=0pt]
+% {gans}
+% {\externalfigure[koe][width=3cm]}
+%
+% \collectedtext
+% [rotation=90,corner={left,bottom},location={left,top}]
+% [frame=on,offset=0pt]
+% {gans}
+% {\externalfigure[koe][width=3cm]}
+
+\definelayer
+ [caption]
+
+\def\layeredtext
+ {\dodoubleempty\dolayeredtext}
+
+\def\dolayeredtext[#1][#2]#3%
+ {\bgroup
+ \dowithnextbox
+ {\!!widtha \nextboxwd
+ \!!heighta\nextboxht
+ \bgroup % preserve \nextbox
+ \setuplayer
+ [caption]
+ [\c!width=\!!widtha,\c!height=\!!heighta]%
+ \setlayer
+ [caption]
+ [#1]
+ {\getparameters[\??du][#2]%
+ \dosetfontattribute\??du\c!style\setupinterlinespace
+ \framed
+ [\c!frame=\v!overlay,,#2]
+ {\doattributes\??du\c!style\c!color{#3}}}%
+ \egroup
+ \framed
+ [\c!offset=\v!overlay,
+ \c!frame=\v!off,
+ \c!background={\v!foreground,caption},
+ \c!width=\!!widtha,
+ \c!height=\!!heighta]
+ {\flushnextbox}%
+ \egroup}%
+ \hbox}
+
+% \layeredtext
+% [corner={right,bottom},location={left,top}]
+% [background=color,backgroundcolor=white,offset=0pt]
+% {gans}
+% {\externalfigure[koe][width=3cm]}
+%
+% \layeredtext
+% [rotation=90,corner={right,bottom},location={right,top}]
+% [frame=on,offset=0pt]
+% {gans}
+% {\externalfigure[koe][width=3cm]}
+%
+% \layeredtext
+% [rotation=90,corner={left,bottom},location={left,top}]
+% [frame=on,offset=0pt]
+% {gans}
+% {\externalfigure[koe][width=3cm]}
+
+\def\ornamenttext
+ {\dodoubleempty\doornamenttext}
+
+\def\doornamenttext[#1][#2]%
+ {\bgroup
+ \doifassignmentelse{#1}
+ {\getparameters[\s!dummy][\c!alternative=\v!a,#1]%
+ \doifelse\dummyalternative\v!a
+ {\egroup\collectedtext}%
+ {\egroup\layeredtext }%
+ [#1][#2]}%
+ {\egroup\getvalue{#1}}}
+
+\def\defineornament
+ {\dotripleempty\dodefineornament}
+
+\def\dodefineornament[#1][#2][#3]%
+ {\setvalue{#1}{\doornamenttext[#2][#3]}}
+
+% \defineornament
+% [affiliation]
+% [rotation=90,corner={right,bottom},location={right,top},
+% hoffset=-.25ex]
+% [frame=on,background=color,backgroundcolor=red,offset=0pt]
+%
+% \ruledhbox{\affiliation{gans}{\externalfigure[koe][width=3cm]}}
+%
+% \defineornament
+% [affiliation]
+% [rotation=90,corner={right,bottom},location={right,top},
+% hoffset=-.25ex,alternative=b]
+% [frame=on,background=color,backgroundcolor=red,offset=0pt]
+%
+% \ruledhbox{\affiliation{gans}{\externalfigure[koe][width=3cm]}}
+%
+% \defineornament
+% [affiliation]
+% [rotation=90,corner={right,bottom},location={left,top},
+% hoffset=.25ex,voffset=.25ex,alternative=a]
+% [background=color,style=\ss\tfxx,backgroundcolor=white,offset=0pt]
+%
+% \affiliation{photo}{\externalfigure[molen][width=3cm]}
+%
+% \defineornament
+% [affiliation]
+% [rotation=90,corner={right,bottom},location={left,top},
+% hoffset=.25ex,voffset=.25ex,alternative=b]
+% [background=color,style=\ss\tfxx,backgroundcolor=white,offset=0pt]
+%
+% \affiliation{drawing}{\externalfigure[hakker][width=3cm]}
+
+% pas op: aanpassen aan nieuwe layer hoek ankers en columnset
+
+\newcount\nofbleeds % per pag
+
+\def\setupbleeding
+ {\dodoubleempty\getparameters[\??bg]}
+
+\setupbleeding
+ [\c!location=l,
+ \c!stretch=\v!yes,
+ \c!width=3cm,
+ \c!height=3cm,
+ \c!offset=2mm,
+ \c!page=\v!no,
+ \c!voffset=\@@bgoffset,
+ \c!hoffset=\@@bgoffset]
+
+\def\bleed
+ {\dosingleempty\dobleed}
+
+
+\def\bleedwidth {\the\hsize}%
+\def\bleedheight{\the\vsize}%
+
+\def\dobleed[#1]#2%
+ {\hbox\bgroup
+ \xdef\bleedwidth {\the\hsize}%
+ \xdef\bleedheight{\the\vsize}%
+ \global\advance\nofbleeds\plusone
+ \getparameters[\??bg][#1]%
+ \!!doneafalse % left
+ \!!donebfalse % right
+ \!!donecfalse % top
+ \!!donedfalse % bottom
+ % replace this part ! todo: default location
+ \processaction
+ [\@@bglocation]
+ [ t=>\!!donectrue\let\@@bghoffset\!!zeropoint,
+ b=>\!!donedtrue\let\@@bghoffset\!!zeropoint,
+ l=>\!!doneatrue\let\@@bgvoffset\!!zeropoint,
+ r=>\!!donebtrue\let\@@bgvoffset\!!zeropoint,
+ bl=>\!!doneatrue\!!donedtrue,
+ lb=>\!!doneatrue\!!donedtrue,
+ br=>\!!donebtrue\!!donedtrue,
+ rb=>\!!donebtrue\!!donedtrue,
+ tl=>\!!doneatrue\!!donectrue,
+ lt=>\!!doneatrue\!!donectrue,
+ tr=>\!!donebtrue\!!donectrue,
+ rt=>\!!donebtrue\!!donectrue]%
+ \doifelse\@@bgstretch\v!yes\donetrue\donefalse
+ \scratchdimen\@@bgwidth
+ \ifdone
+ \if!!donea
+ \advance\scratchdimen\MPx{\??bg:\number\nofbleeds}%
+ \else\if!!doneb
+ \scratchdimen\paperwidth
+ \advance\scratchdimen-\MPx{\??bg:\number\nofbleeds}%
+ \fi\fi
+ \fi
+ \advance\scratchdimen\@@bghoffset
+ \xdef\bleedwidth{\the\scratchdimen}%
+ \scratchdimen\@@bgheight
+ \ifdone
+ \if!!donec
+ \scratchdimen\paperheight
+ \advance\scratchdimen-\MPy{\??bg:\number\nofbleeds}%
+ \else\if!!doned
+ \advance\scratchdimen\MPy{\??bg:\number\nofbleeds}%
+ \fi\fi
+ \fi
+ \advance\scratchdimen\@@bgvoffset
+ \xdef\bleedheight{\the\scratchdimen}%
+ \hsize\bleedwidth
+ \vsize\bleedheight
+ \setbox\scratchbox\hbox{#2}%
+ \doif\@@bgpage\v!yes
+ {\setbox\scratchbox\topskippedbox{\box\scratchbox}}%
+ \setbox\scratchbox\hbox to \@@bgwidth
+ {\if!!donea\hss\fi\box\scratchbox\if!!doneb\hss\fi}%
+ \if!!doned
+ \setbox\scratchbox\hbox
+ {\lower\bleedheight\hbox{\raise\@@bgheight\box\scratchbox}}%
+ \fi
+ \wd\scratchbox\@@bgwidth
+ \ht\scratchbox\@@bgheight
+ \dp\scratchbox\zeropoint
+ \ifdone
+ \hpos{\??bg:\number\nofbleeds}{\box\scratchbox}%
+ \else
+ \box\scratchbox
+ \fi
+ \egroup}
+
+\setupbleeding[\c!stretch=\v!yes]
+
+\defineexternalfigure[bleed][\c!width=\bleedwidth,\c!height=\bleedheight]
+
+% \placefigure[left]{none}
+% {\bleed[width=5cm,height=3cm,location=lt]{\externalfigure[koe][bleed]}}
+%
+% \input tufte
+%
+% \placefigure[left]{none}
+% {\bleed[width=5cm,height=3cm,location=l]{\externalfigure[koe][bleed]}}
+%
+% \input tufte
+%
+% \placefigure[right]{none}
+% {\bleed[width=5cm,height=3cm,location=r]{\externalfigure[koe][bleed]}}
+%
+% \input tufte
+%
+% \placesomefloat[right]{none}
+% {\bleed[width=5cm,height=3cm,location=rb]{\externalfigure[koe][bleed]}}
+%
+% \input tufte
+%
+% \placefigure
+% [top,none]
+% {} % no caption
+% {\bleed
+% [hoffset=-\backspace,
+% voffset=3mm,
+% width=0cm,
+% height=6\lineheight,
+% page=yes, % correct for topskip
+% location=lt]
+% {\externalfigure[koe][bleed][frame=on]}}
+
+% \setlayerframed[layer id][layer settings][framed setting]{data}
+% \setlayerframed[layer id][combined settings]{data}
+
+\def\setlayerframed
+ {\dotripleempty\dosetlayerframed}
+
+\def\dosetlayerframed
+ {\ifthirdargument
+ \expandafter\dosetlayerframedT
+ \else
+ \expandafter\dosetlayerframedS
+ \fi}
+
+\def\dosetlayerframedT[#1][#2][#3]%
+ {\dowithnextbox{\setlayer[#1][#2]{\flushnextbox}}%
+ \hbox\framed[#3]}
+
+\def\dosetlayerframedS[#1][#2][#3]%
+ {\dowithnextbox % we could use a local setlayer command (no doif..empty) which also saves a nextbox
+ {\setlayer[#1][\c!width=\nextboxwd,\c!height=\nextboxht,\c!offset=\!!zeropoint,#2]{\flushnextbox}}%
+ \hbox\framed[\c!location=\v!normal,#2]}
+
+\def\setlayertext
+ {\dotripleempty\dosetlayertext}
+
+\def\dosetlayertext[#1][#2][#3]%
+ {\bgroup
+ \getparameters
+ [\??lx]
+ [\c!align=,
+ \c!width=\hsize,
+ \c!color=,
+ \c!style=,
+ #3]%
+ \dowithnextboxcontent
+ {\forgetall
+ \hsize\@@lxwidth
+ \expanded{\setupalign[\@@lxalign]}%
+ \dosetfontattribute\??lx\c!style}
+ {\setlayer[#1][#2]{\strut\color[\@@lxcolor]{\flushnextbox}}%
+ \egroup}%
+ \vtop}
+
+% \setupbackgrounds
+% [page]
+% [background=pagefigures]
+%
+% \definelayer
+% [pagefigures]
+% [x=-2mm,
+% y=-2mm,
+% width=\paperwidth,
+% height=\paperheight]
+%
+% \definelayerpreset [lefttop] [corner={left,top},location={right,bottom}]
+% \definelayerpreset [righttop] [corner={right,top},location={left,bottom}]
+% \definelayerpreset [leftbottom] [corner={left,bottom},location={right,top}]
+% \definelayerpreset [rightbottom] [corner={right,bottom},location={left,top}]
+% \definelayerpreset [middle] [corner=middle,location=middle]
+%
+% \setlayer[pagefigures][preset=lefttop]
+% \setlayer[pagefigures][preset=righttop]
+% \setlayer[pagefigures][preset=leftbottom]
+% \setlayer[pagefigures][preset=rightbottom]
+
+\definelayerpreset
+ [\v!left\v!top]
+ [\c!corner={\v!left,\v!top},\c!location={\v!right,\v!bottom}]
+
+\definelayerpreset
+ [\v!right\v!top]
+ [\c!corner={\v!right,\v!top},\c!location={\v!left,\v!bottom}]
+
+\definelayerpreset
+ [\v!left\v!bottom]
+ [\c!corner={\v!left,\v!bottom},\c!location={\v!right,\v!top}]
+
+\definelayerpreset
+ [\v!right\v!bottom]
+ [\c!corner={\v!right,\v!bottom},\c!location={\v!left,\v!top}]
+
+\definelayerpreset
+ [\v!middle]
+ [\c!corner=\v!middle,\c!location=\v!middle]
+
+% \definelayerpreset
+% [\v!middle\v!top]
+% [\c!location=\v!bottom,\c!hoffset=.5\layerwidth]
+
+% \definelayerpreset
+% [\v!middle\v!bottom]
+% [\c!location=\v!top,\c!hoffset=.5\layerwidth,\c!voffset=\layerheight]
+
+% \definelayerpreset
+% [\v!middle\v!left]
+% [\c!location=\v!right,\c!voffset=.5\layerheight]
+
+% \definelayerpreset
+% [\v!middle\v!right]
+% [\c!location=\v!left,\c!hoffset=\layerwidth,\c!voffset=.5\layerheight]
+
+\definelayerpreset
+ [\v!middle\v!top]
+ [\c!location=\v!bottom,\c!corner=\v!top,\c!dx=.5\layerwidth]
+
+\definelayerpreset
+ [\v!middle\v!bottom]
+ [\c!location=\v!top,\c!corner=\v!bottom,\c!dx=.5\layerwidth]
+
+\definelayerpreset
+ [\v!middle\v!left]
+ [\c!location=\v!right,\c!corner=\v!left,\c!dy=.5\layerheight]
+
+\definelayerpreset
+ [\v!middle\v!right]
+ [\c!location=\v!left,\c!corner=\v!right,\c!dy=.5\layerheight]
+
+\def\alignedbox
+ {\dodoubleempty\doalignedbox[]}
+
+% \def\doalignedbox[#1][#2]%
+% {\bgroup
+% %\let\iftraceboxplacement\iftracelayers % ugly
+% \dowithnextbox
+% {\let\next\middlebox
+% \processaction
+% [#2]
+% [ t=>\let\next\topbox , b=>\let\next\bottombox ,
+% l=>\let\next\leftbox , r=>\let\next\rightbox ,
+% bl=>\let\next\bottomleftbox,br=>\let\next\bottomrightbox,
+% tl=>\let\next\topleftbox ,tr=>\let\next\toprightbox ,
+% lt=>\let\next\lefttopbox ,lb=>\let\next\leftbottombox ,
+% rt=>\let\next\righttopbox ,rb=>\let\next\rightbottombox]%
+% \next{\flushnextbox}%
+% \egroup}#1}
+
+\def\doalignedbox[#1][#2]%
+ {\bgroup
+ %\let\iftraceboxplacement\iftracelayers % ugly
+ \dowithnextbox
+ {\serializecommalist[#2]%
+ \executeifdefined{\??ab\??ab\serializedcommalist}\middlebox{\flushnextbox}%
+ \egroup}#1}
+
+\setvalue{\??ab\??ab }{\middlebox}
+\setvalue{\??ab\??ab\v!middle }{\middlebox}
+\setvalue{\??ab\??ab\v!left }{\leftbox }
+\setvalue{\??ab\??ab\v!right }{\rightbox }
+\setvalue{\??ab\??ab\v!bottom }{\bottombox}
+\setvalue{\??ab\??ab\v!top }{\topbox }
+
+\setvalue{\??ab\??ab\v!middle\v!middle}{\middlebox}
+\setvalue{\??ab\??ab\v!left \v!top }{\lefttopbox}
+\setvalue{\??ab\??ab\v!left \v!bottom}{\leftbottombox}
+\setvalue{\??ab\??ab\v!right \v!top }{\righttopbox}
+\setvalue{\??ab\??ab\v!right \v!bottom}{\rightbottombox}
+\setvalue{\??ab\??ab\v!top \v!left }{\topleftbox}
+\setvalue{\??ab\??ab\v!bottom\v!left }{\bottomleftbox}
+\setvalue{\??ab\??ab\v!top \v!right }{\toprightbox}
+\setvalue{\??ab\??ab\v!bottom\v!right }{\bottomrightbox}
+
+\setvalue{\??ab\??ab c}{\middlebox}
+\setvalue{\??ab\??ab l}{\leftbox}
+\setvalue{\??ab\??ab r}{\rightbox}
+\setvalue{\??ab\??ab b}{\bottombox}
+\setvalue{\??ab\??ab t}{\topbox}
+
+\setvalue{\??ab\??ab lt}{\lefttopbox}
+\setvalue{\??ab\??ab lb}{\leftbottombox}
+\setvalue{\??ab\??ab rt}{\righttopbox}
+\setvalue{\??ab\??ab rb}{\rightbottombox}
+\setvalue{\??ab\??ab tl}{\topleftbox}
+\setvalue{\??ab\??ab bl}{\bottomleftbox}
+\setvalue{\??ab\??ab tr}{\toprightbox}
+\setvalue{\??ab\??ab br}{\bottomrightbox}
+
+\setvalue{\??ab\??ab m}{\middlebox}
+
+% The next ones were desparately needed by Vit Zyka (see
+% \type {supp-box} for definitions).
+
+\setvalue{\??ab\??ab g}{\baselinemiddlebox}
+\setvalue{\??ab\??ab gl}{\baselineleftbox}
+\setvalue{\??ab\??ab gc}{\baselinemiddlebox}
+\setvalue{\??ab\??ab gr}{\baselinerightbox}
+
+\setvalue{\??ab\??ab \v!line }{\baselinemiddlebox} % \v!grid is taken
+\setvalue{\??ab\??ab \v!line\v!left }{\baselineleftbox}
+\setvalue{\??ab\??ab \v!line\v!middle}{\baselinemiddlebox}
+\setvalue{\??ab\??ab \v!line\v!right }{\baselinerightbox}
+
+\def\offsetbox
+ {\dodoubleempty\dooffsetbox[]}
+
+% left/right/top/bottomoffset -> dimensions change
+% x/y | method=fixed -> dimensions don't change
+
+\def\dooffsetbox[#1][#2]%
+ {\bgroup
+ \dowithnextbox
+ {\getparameters[\??ox]
+ [\c!x=\zeropoint,
+ \c!y=\zeropoint,
+ \c!width=\nextboxwd,
+ \c!height=\nextboxht,
+ \c!depth=\nextboxdp,
+ \c!location=,
+ \c!leftoffset=\zeropoint,
+ \c!rightoffset=\zeropoint,
+ \c!topoffset=\zeropoint,
+ \c!bottomoffset=\zeropoint,
+ \c!method=,
+ #2]%
+ \donefalse
+ \ifdim\@@oxleftoffset =\zeropoint\else\donetrue\fi
+ \ifdim\@@oxrightoffset=\zeropoint\else\donetrue\fi
+ \ifdim\@@oxtopoffset =\zeropoint\else\donetrue\fi
+ \ifdim\@@oxbottomoffset =\zeropoint\else\donetrue\fi
+ \ifdone
+ \doif\@@oxmethod\v!fixed % new
+ {\ifdim\@@oxleftoffset=\zeropoint
+ \ifdim\@@oxrightoffset=\zeropoint \else
+ \scratchdimen-\@@oxrightoffset
+ \edef\@@oxx{\the\scratchdimen}%
+ \let\@@oxrightoffset\zeropoint
+ \fi
+ \else
+ \let\@@oxx\@@oxleftoffset
+ \let\@@oxleftoffset\zeropoint
+ \fi
+ \ifdim\@@oxtopoffset=\zeropoint
+ \ifdim\@@oxbottomoffset=\zeropoint \else
+ \scratchdimen-\@@oxbottomoffset
+ \edef\@@oxy{\the\scratchdimen}%
+ \let\@@oxbottomoffset\zeropoint
+ \fi
+ \else
+ \let\@@oxy\@@oxtopoffset
+ \let\@@oxtopoffset\zeropoint
+ \fi
+ \donefalse}%
+ \fi
+ \ifdone
+ \setbox\nextbox\vbox
+ {\forgetall\offinterlineskip
+ \vskip\@@oxtopoffset
+ \hbox
+ {\hskip\@@oxleftoffset
+ \flushnextbox
+ \hskip\@@oxrightoffset}%
+ \vskip\@@oxbottomoffset}%
+ \scratchdimen\nextboxht
+ \advance\scratchdimen\nextboxdp
+ \nextboxht\scratchdimen
+ \nextboxdp\zeropoint
+ \fi
+ \freezedimenmacro\@@oxwidth
+ \freezedimenmacro\@@oxheight
+ \freezedimenmacro\@@oxdepth
+ \setbox\nextbox\hbox
+ {\hskip\@@oxx\lower\@@oxy\hbox
+ {\doifelsenothing\@@oxlocation
+ {\flushnextbox}
+ {\alignedbox[\@@oxlocation]\hbox{\flushnextbox}}}}%
+ \nextboxwd\@@oxwidth
+ \nextboxht\@@oxheight
+ \nextboxdp\@@oxdepth
+ \flushnextbox
+ \egroup}#1}
+
+% \useMPlibrary[pre] \setupbackgrounds[page][background=pagegrid]
+%
+% \placefigure[left,none]{}{\offset[leftoffset=1cm]{\externalfigure[koe][breedte=3cm]}}
+% \input tufte
+% \placefigure[left,none]{}{\offset[rightoffset=1cm]{\externalfigure[koe][breedte=3cm]}}
+% \input tufte
+% \placefigure[left,none]{}{\offset[topoffset=1cm]{\externalfigure[koe][breedte=3cm]}}
+% \input tufte
+% \placefigure[left,none]{}{\offset[bottomoffset=1cm]{\externalfigure[koe][breedte=3cm]}}
+% \input tufte
+
+\def\offset {\dodoubleempty\dooffsetbox [\hbox]} % yes or no
+\def\aligned{\dosingleempty\doalignedbox[\hbox]} % yes or no
+
+%\ruledhbox{\offsetbox[x=-1cm,y=-1cm,location=c]
+% {\framed[width=4cm,height=4cm]{x}}}
+
+\def\dotabbed#1#2#3#4%
+ {\dontleavehmode
+ \bgroup
+ \setbox\scratchbox\hbox{#3}%
+ \hbox to \wd\scratchbox{#1#4#2}%
+ \egroup}
+
+\def\ltabbed{\dotabbed\relax\hss}
+\def\rtabbed{\dotabbed\hss \relax}
+\def\ctabbed{\dotabbed\hss \hss} \let\mtabbed\ctabbed
+
+% \ltabbed{\romeins{3}}{\romeins{1}} test \endgraf
+% \ltabbed{\romeins{3}}{\romeins{2}} test \endgraf
+% \ltabbed{\romeins{3}}{\romeins{3}} test \endgraf
+%
+% \rtabbed{\romeins{3}}{\romeins{1}} test \endgraf
+% \rtabbed{\romeins{3}}{\romeins{2}} test \endgraf
+% \rtabbed{\romeins{3}}{\romeins{3}} test \endgraf
+%
+% \ctabbed{\romeins{3}}{\romeins{1}} test \endgraf
+% \ctabbed{\romeins{3}}{\romeins{2}} test \endgraf
+% \ctabbed{\romeins{3}}{\romeins{3}} test \endgraf
+
+% alternative, if done, then other name
+%
+% \def\dotabbed#1#2#3#4%
+% {\dontleavehmode
+% \bgroup
+% \scratchdimen\zeropoint
+% \def\docommand##1%
+% {\setbox\scratchbox\hbox{##1}%
+% \ifdim\wd\scratchbox>\scratchdimen
+% \scratchdimen\wd\scratchbox
+% \fi}%
+% \processcommalist[#3]\docommand
+% \hbox to \scratchdimen{#1#4#2}%
+% \egroup}
+%
+% \def\ltabbed{\dotabbed\relax\hss}
+% \def\rtabbed{\dotabbed\hss \relax}
+% \def\ctabbed{\dotabbed\hss \hss} \let\mtabbed\ctabbed
+%
+% \ltabbed{\romeins{10},\romeins{2000},\romeins{15}}{\romeins{10}} test \endgraf
+% \ltabbed{\romeins{10},\romeins{2000},\romeins{15}}{\romeins{15}} test \endgraf
+% \ltabbed{\romeins{10},\romeins{2000},\romeins{15}}{\romeins{2000}} test \endgraf
+%
+% \rtabbed{\romeins{10},\romeins{2000},\romeins{15}}{\romeins{10}} test \endgraf
+% \rtabbed{\romeins{10},\romeins{2000},\romeins{15}}{\romeins{15}} test \endgraf
+% \rtabbed{\romeins{10},\romeins{2000},\romeins{15}}{\romeins{2000}} test \endgraf
+%
+% \ctabbed{\romeins{10},\romeins{2000},\romeins{15}}{\romeins{10}} test \endgraf
+% \ctabbed{\romeins{10},\romeins{2000},\romeins{15}}{\romeins{15}} test \endgraf
+% \ctabbed{\romeins{10},\romeins{2000},\romeins{15}}{\romeins{2000}} test \endgraf
+
+% to be documented
+
+\def\phantombox[#1]%
+ {\hbox\bgroup
+ \getparameters
+ [\??ol]
+ [\c!width=\zeropoint,%
+ \c!height=\zeropoint,%
+ \c!depth=\zeropoint,#1]%
+ \setbox\scratchbox\null
+ \wd\scratchbox\@@olwidth
+ \ht\scratchbox\@@olheight
+ \dp\scratchbox\@@oldepth
+ \box\scratchbox
+ \egroup}
+
+% \backgroundimage{1}{\hsize}{\vsize}{\externalfigure[cow][\c!width=3cm]}
+
+\def\backgroundimage#1#2#3% repeat hsize vsize
+ {\bgroup
+ \forgetall
+ \dowithnextbox
+ {\offinterlineskip
+ \ifcase#1\relax
+ % just one
+ \else
+ \scratchdimen#2\divide\scratchdimen\nextboxwd\count0\scratchdimen\advance\count0\plusone
+ \scratchdimen#3\divide\scratchdimen\nextboxht\count2\scratchdimen\advance\count2\plusone
+ % to be considered, probably methods
+ \ifcase#1\or % x and y
+ \setbox\nextbox\hbox{\dorecurse{\count0}{\copy\nextbox}}%
+ \setbox\nextbox\vbox{\dorecurse{\count2}{\copy\nextbox\endgraf}}%
+ \or % x
+ \setbox\nextbox\hbox{\dorecurse{\count0}{\copy\nextbox}}%
+ \or % y
+ \setbox\nextbox\vbox{\dorecurse{\count2}{\copy\nextbox\endgraf}}%
+ \fi
+ \fi
+ \ifdim\nextboxwd>#2\relax
+ \setbox\nextbox\hbox to #2{\hss\flushnextbox\hss}%
+ \setbox\nextbox\hbox{\expanded{\clip[\c!width=#2,\c!height=\the\nextboxht]{\flushnextbox}}}%
+ \fi
+ \ifdim\nextboxht>#3\relax
+ \setbox\nextbox\vbox to #3{\vss\flushnextbox\vss}%
+ \setbox\nextbox\hbox{\expanded{\clip[\c!width=\the\nextboxwd,\c!height=#3]{\flushnextbox}}}%
+ \fi
+ \flushnextbox
+ \egroup}%
+ \hbox}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/page-lyr.tex b/Master/texmf-dist/tex/context/base/pack-lyr.mkii
index a1af3adc9d3..85549bccbdb 100644
--- a/Master/texmf-dist/tex/context/base/page-lyr.tex
+++ b/Master/texmf-dist/tex/context/base/pack-lyr.mkii
@@ -1,7 +1,7 @@
%D \module
-%D [ file=page-lyr,
+%D [ file=pack-lyr,
%D version=2000.10.20,
-%D title=\CONTEXT\ Page Macros,
+%D title=\CONTEXT\ Packaging Macros,
%D subtitle=Layers,
%D author=Hans Hagen,
%D date=\currentdate,
@@ -11,12 +11,13 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Page Macros / Layers}
+\writestatus{loading}{ConTeXt Packaging Macros / Layers}
%D This module is now etex dependent.
% todo : first / last / next / +... => page key
% test on left/right box when no doublesided option given
+% use \ifcsname instead of doifvalue
\unprotect
@@ -137,8 +138,8 @@
{\edef\currentlayerwidth {\thelayerwidth {#2#1}}%
\edef\currentlayerheight{\thelayerheight{#2#1}}}
-\def\thelayerwidth #1{\the\wd\executeifdefined{\@@layerbox#1}\voidbox}
-\def\thelayerheight#1{\the\ht\executeifdefined{\@@layerbox#1}\voidbox}
+\def\thelayerwidth #1{\the\wd\executeifdefined{\@@layerbox#1}\emptybox}
+\def\thelayerheight#1{\the\ht\executeifdefined{\@@layerbox#1}\emptybox}
\def\setlayer
{\dotripleempty\dosetlayer}
@@ -149,7 +150,9 @@
{\ifthirdargument
\dodosetlayer[#1][#2][#3]%
\else
- \dodosetlayer[#1][][#2]%
+ \doifassignmentelse{#2}
+ {\dodosetlayer[#1][][#2]}%
+ {\dodosetlayer[#1][#2][]}%
\fi}}
\def\dodosetlayer[#1][#2][#3]% #2 = links/rechts
@@ -162,24 +165,27 @@
\doifvalue{\??ll#1\c!option}\v!test\tracelayerstrue
\iftracelayers\traceboxplacementtrue\fi
\dowithnextbox % sneller als aparte macro
- {\ifundefined{\@@layerbox#1}%
- \writestatus{layer}{unknown layer #1}%
- \else
- \doifelse{#2}\v!even
- {\ifodd\realpageno
+ {\ifcsname\@@layerbox#1\endcsname % nb: odd/even discard, left/right not
+ \edef\@@layerloc{#2}%
+ \ifx\@@layerloc\v!even
+ \ifodd\realpageno
% discard nextbox
- \else
- \dododosetlayer[#1][\v!left][#3]%
- \fi}%
- {\doifelse{#2}\v!odd
- {\ifodd\realpageno
- \dododosetlayer[#1][\v!right][#3]%
- %\else
- % discard nextbox
- \fi}%
- {\dododosetlayer[#1][#2][#3]}}%
+ \else
+ \dododosetlayer[#1][\v!left][#3]%
+ \fi
+ \else\ifx\@@layerloc\v!odd
+ \ifodd\realpageno
+ \dododosetlayer[#1][\v!right][#3]%
+ %\else
+ % discard nextbox
+ \fi
+ \else
+ \dododosetlayer[#1][#2][#3]%
+ \fi\fi
+ \else
+ \writestatus{layer}{unknown layer #1}%
\fi
- \egroup}
+ \egroup}%
\hbox}
\newbox\layerbox
@@ -249,7 +255,7 @@
% etc
\executeifdefined{\??ll\??ll\layerparameter\c!preset}\gobbletwoarguments\currentlayer{#3}%
% that was real slow
- \doif{\layerparameter\c!position}\v!overlay % slow
+ \doif{\layerparameter\c!position}\v!overlay % slow, use \dosetvalue instead
{\getparameters[\??ll\currentlayer][\c!width=\zeropoint,\c!height=\zeropoint,\c!position=\v!yes]}%
\doifsomething{\layerparameter\c!rotation}
{\setbox\nextbox\hbox
@@ -379,17 +385,14 @@
\hsize\layerparameter\c!width % new, keep box small
\vbox to \layerparameter\c!height \bgroup
\smashbox\nextbox
- \vskip\@@layerypos
- \vskip\@@layeryoff
- \hskip\@@layerxpos
- \hskip\@@layerxoff
+ \vskip\dimexpr\@@layerypos+\@@layeryoff\relax
+ \hskip\dimexpr\@@layerxpos+\@@layerxoff\relax
\flushnextbox
\ifvoid\layerpagebox
% already flushed
\else
% the reverse case % check !
- \vskip-\@@layerypos
- \vskip-\@@layeryoff
+ \vskip-\dimexpr\@@layerypos+\@@layeryoff\relax
\box\layerpagebox
\fi
\egroup}%
@@ -619,7 +622,7 @@
\newskip\xdimension \newskip\ydimension
\newskip\xoffset \newskip\yoffset
-\newbox\positionbox
+% already defined \newbox\positionbox
\def\startpositioning
{\bgroup
diff --git a/Master/texmf-dist/tex/context/base/pack-lyr.mkiv b/Master/texmf-dist/tex/context/base/pack-lyr.mkiv
new file mode 100644
index 00000000000..2e1bd2a11ea
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/pack-lyr.mkiv
@@ -0,0 +1,786 @@
+%D \module
+%D [ file=pack-lyr,
+%D version=2000.10.20,
+%D title=\CONTEXT\ Packaging Macros,
+%D subtitle=Layers,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Packaging Macros / Layers}
+
+% todo : first / last / next / +... => page key
+% test on left/right box when no doublesided option given
+% use \ifcsname instead of doifvalue
+
+\unprotect
+
+% When being backgrounds layers get the background offset
+% displacement. Should be an option, on by default
+% (compatibility).
+
+% positie=forceer == ja maar dan ook in status=herhaal
+
+%D The layering mechanism implemented here is independent of
+%D the output routine, but future extensions may depend on a
+%D more close cooperation.
+
+%D First we overload a macro from \type {core-rul}. From now on
+%D we accept a (optional) argument: the specific layer it
+%D will go in. This means that we can move an overlay from one
+%D background to the other using the dimensions of the parent.
+
+\ifx\undefined\defineoverlay \message{loaded to early} \wait \fi
+
+\def\defineoverlay
+ {\dotripleempty\dodefineoverlay}
+
+\def\dodefineoverlay[#1][#2][#3]% overlay [layer] content
+ {\ifthirdargument
+ %\writestatus{BEWARE}{This (overlay definition) has changed!}% temp
+ \def\docommand##1{\setvalue{\??ov##1}{\setlayer[#2]{\executedefinedoverlay{##1}{#3}}}}
+ \else
+ \def\docommand##1{\setvalue{\??ov##1}{\executedefinedoverlay{##1}{#2}}}%
+ \fi
+ \processcommalist[#1]\docommand}
+
+%D When tracing is turned on, a couple of boxes will
+%D show up as well as the reference point.
+
+\newif\iftracelayers % \tracelayerstrue
+
+%D This handy constant saved some string memory.
+
+\def\@@layerbox{@@layerbox}
+
+%D \macros
+%D {definelayer}
+%D
+%D Each layer gets its own (global) box. This also means that
+%D the data that goes into a layer, is typeset immediately.
+%D Each layer automatically gets an associated overlay,
+%D which can be used in any background assignment.
+
+% todo : links/rechts
+
+\def\definelayer
+ {\dodoubleargument\dodefinelayer}
+
+\def\dodefinelayer[#1][#2]% \zeropoint ipv \!!zeropoint
+ {\setuplayer
+ [#1]
+ [\c!doublesided=,\c!preset=,
+ \c!state=\v!start,\c!direction=\v!normal,\c!option=,
+ \c!x=\zeropoint,\c!y=\zeropoint,\c!position=\v!no,
+ \c!line=0,\c!column=0,
+ \c!width=\nextboxwd,\c!height=\nextboxht,
+ \c!offset=\zeropoint,\c!rotation=, % geen 0 !
+ \c!hoffset=\zeropoint,\c!voffset=\zeropoint,
+ \c!dx=\zeropoint,\c!dy=\zeropoint,
+ \c!location=rb,\c!position=\v!no,\c!page=,
+ \c!method=\v!overlay,
+ \c!sx=1,\c!sy=1,\c!corner=,#2]%
+ \doifvalue{\??ll#1\c!doublesided}\v!yes
+ {\dopresetlayerbox{\v!left #1}%
+ \dopresetlayerbox{\v!right#1}}%
+ \dopresetlayerbox{#1}%
+ \defineoverlay[#1][\composedlayer{#1}]}
+
+\def\dopresetlayerbox#1%
+ {\ifcsname\@@layerbox#1\endcsname
+ \resetlayer[#1]%
+ \else
+ \expandafter\newbox\csname\@@layerbox#1\endcsname
+ \fi}
+
+%D \macros
+%D {setuplayer}
+%D
+%D After a layer is defined, you can change its
+%D characteristics.
+
+\def\setuplayer
+ {\dodoubleargument\dosetuplayer}
+
+\def\dosetuplayer[#1][#2]%
+ {\def\docommand##1{\getparameters[\??ll##1][#2]}%
+ \processcommalist[#1]\docommand}
+
+%D \macros
+%D {setlayer}
+%D
+%D Data is moved into a layer with the following macro. When
+%D \type {position} is set, relative positioning is used, with
+%D the current point as reference point. Otherwise the topleft
+%D corner is used as reference point.
+%D
+%D \starttyping
+%D \setlayer [identifier] [optional parameters] {data}
+%D \stoptyping
+
+\newcount\currentlayerdata
+
+\let\currentlayerwidth \!!zeropoint
+\let\currentlayerheight\!!zeropoint
+
+\def\setcurrentlayerdimensions
+ {\dodoubleempty\dosetcurrentlayerdimensions}
+
+\def\dosetcurrentlayerdimensions[#1][#2]% name left|right
+ {\edef\currentlayerwidth {\thelayerwidth {#2#1}}%
+ \edef\currentlayerheight{\thelayerheight{#2#1}}}
+
+\def\thelayerwidth #1{\the\wd\executeifdefined{\@@layerbox#1}\emptybox}
+\def\thelayerheight#1{\the\ht\executeifdefined{\@@layerbox#1}\emptybox}
+
+\def\setlayer
+ {\dotripleempty\dosetlayer}
+
+% \def\dosetlayer[#1][#2][#3]% #4 == box do \fi is ok
+% {\doifelsevalue{\??ll#1\c!state}\v!stop
+% {\dowithnextbox\donothing\hbox}
+% {\ifthirdargument
+% \dodosetlayer[#1][#2][#3]%
+% \else
+% \dodosetlayer[#1][][#2]%
+% \fi}}
+
+\def\dosetlayer[#1][#2][#3]% #4 == box do \fi is ok
+ {\doifelsevalue{\??ll#1\c!state}\v!stop
+ {\dowithnextbox\donothing\hbox}
+ {\ifthirdargument
+ \dodosetlayer[#1][#2][#3]%
+ \else
+ \doifassignmentelse{#2}
+ {\dodosetlayer[#1][][#2]}%
+ {\dodosetlayer[#1][#2][]}%
+ \fi}}
+
+\def\dodosetlayer[#1][#2][#3]% #2 = links/rechts
+ {\bgroup
+ \recalculatebackgrounds % brrr
+ \global\advance\currentlayerdata\plusone
+ \forgetall
+ \dontcomplain
+ \doifvalue{\??ll#1\c!option}\v!test\tracelayerstrue
+ \iftracelayers\traceboxplacementtrue\fi
+ \dowithnextbox{\dodosetlayerindeed{#1}{#2}{#3}\egroup}\hbox}
+
+\def\dodosetlayerindeed#1#2#3% #2 = links/rechts
+ {\ifcsname\@@layerbox#1\endcsname % nb: odd/even discard, left/right not
+ \edef\@@layerloc{#2}%
+ \ifx\@@layerloc\v!even
+ \ifodd\realpageno
+ % discard nextbox
+ \else
+ \dododosetlayer[#1][\v!left][#3]%
+ \fi
+ \else\ifx\@@layerloc\v!odd
+ \ifodd\realpageno
+ \dododosetlayer[#1][\v!right][#3]%
+ %\else
+ % discard nextbox
+ \fi
+ \else
+ \dododosetlayer[#1][#2][#3]%
+ \fi\fi
+ \else
+ \writestatus{layer}{unknown layer #1}%
+ \fi}
+
+\newbox\layerbox
+
+\newdimen\@@layerxsiz
+\newdimen\@@layerysiz
+\newdimen\@@layerxoff
+\newdimen\@@layeryoff
+\newdimen\@@layerxpos
+\newdimen\@@layerypos
+
+\let\lastlayerxpos\!!zeropoint
+\let\lastlayerypos\!!zeropoint
+\let\lastlayerwd \!!zeropoint
+\let\lastlayerht \!!zeropoint
+\let\lastlayerdp \!!zeropoint
+
+% todo left/right
+
+\def\setlastlayerpos#1%
+ {\edef\layerpage{\MPp{lyr:\the\currentlayerdata}}%
+ \xdef\lastlayerxpos{\the\dimexpr-\MPx{lyr:#1:\layerpage}+\MPx{lyr:\the\currentlayerdata}\relax}%
+ \xdef\lastlayerypos{\the\dimexpr \MPy{lyr:#1:\layerpage}-\MPy{lyr:\the\currentlayerdata}\relax}}
+
+\def\definelayerpreset
+ {\dodoubleargument\dodefinelayerpreset}
+
+% \def\dodefinelayerpreset[#1][#2]%
+% {\setvalue{\??ll\??ll#1}{\dopresetlayer{#2}}}
+%
+% more fun: \definelayerpreset[whatever][lefttop]
+
+\def\dodefinelayerpreset[#1][#2]%
+ {\doifassignmentelse{#2}
+ {\setvalue{\??ll\??ll#1}{\dopresetlayer{#2}}}
+ {\setvalue{\??ll\??ll#1}{\csname\??ll\??ll#2\endcsname}}}
+
+\def\dopresetlayer#1#2#3% #1=list #2=tag #3=list
+ {\getparameters[\??ll#2][#1,#3]}
+
+\letempty\currentlayer
+
+\def\layerparameter#1{\csname\??ll\currentlayer#1\endcsname}
+
+\newdimen\layerwidth
+\newdimen\layerheight
+
+\chardef\@@lacome=1 % LAyerCOnstructionMEthod / temp, will be default
+
+\def\dododosetlayer[#1][#2][#3]% will be sped up
+ {% we use the global width, never change this
+ \def\currentlayer{#1}%
+ \@@layerxsiz\layerparameter\c!width
+ \@@layerysiz\layerparameter\c!height
+ \layerwidth \@@layerxsiz
+ \layerheight\@@layerysiz
+ % preroll
+ \getparameters[\??ll\currentlayer][#3]%
+ %
+ % \executeifdefined{\??ll\??ll\layerparameter\c!preset}\gobbletwoarguments\currentlayer{#3}%
+ %
+ \edef\@@currentlayerpreset{\layerparameter\c!preset}%
+ \ifcsname\??ll\??ll\@@currentlayerpreset\endcsname\csname\??ll\??ll\@@currentlayerpreset\endcsname\currentlayer{#3}\fi
+ %
+ \doif{\layerparameter\c!position}\v!overlay % slow, use \dosetvalue instead
+ {\getparameters[\??ll\currentlayer][\c!width=\zeropoint,\c!height=\zeropoint,\c!position=\v!yes]}%
+ \doifsomething{\layerparameter\c!rotation}% todo: use direct lowlevel call
+ {\setbox\nextbox\hbox{\rotate[\c!location=\v!high,\c!rotation=\layerparameter\c!rotation]{\flushnextbox}}}%
+ % no, not local
+ % \@@layerxsiz\layerparameter\c!width
+ % \@@layerysiz\layerparameter\c!height
+ % never change that
+ \@@layerxpos\layerparameter\c!x
+ \@@layerypos\layerparameter\c!y
+ \doifelse{\layerparameter\c!hoffset}\v!max{\@@layerxoff\@@layerxsiz}{\@@layerxoff\layerparameter\c!hoffset}%
+ \doifelse{\layerparameter\c!voffset}\v!max{\@@layeryoff\@@layerysiz}{\@@layeryoff\layerparameter\c!voffset}%
+ % dx/dy are internal context ones and can be used in preset
+ \advance\@@layerxoff\dimexpr\layerparameter\c!offset+\layerparameter\c!dx\relax
+ \advance\@@layeryoff\dimexpr\layerparameter\c!offset+\layerparameter\c!dy\relax
+ \@@layerxpos\layerparameter\c!sx\@@layerxpos
+ \@@layerypos\layerparameter\c!sy\@@layerypos
+ \@@layerxoff\layerparameter\c!sx\@@layerxoff
+ \@@layeryoff\layerparameter\c!sy\@@layeryoff
+ \edef\@@currentlayerposition{\layerparameter\c!position}%
+ \ifx\@@currentlayerposition\v!yes % combine ^
+ \setlastlayerpos{#2\currentlayer}% sets \layerpage; todo l/r %%%%%%%%%%%%
+ \@@layerxpos\lastlayerxpos
+ \@@layerypos\lastlayerypos
+ \letgvalue{\??ll\currentlayer\layerpage\c!position}\v!yes
+ \letgvalue{\??ll\currentlayer\c!state}\v!start % needed ?
+ \setbox\layerbox\vbox to \@@layerysiz{\hbox to \@@layerxsiz{\xypos{lyr:\the\currentlayerdata}\hss}\vss}%
+ \else
+ \setbox\layerbox\emptybox
+ \globallet\lastlayerxpos\!!zeropoint
+ \globallet\lastlayerypos\!!zeropoint
+ \normalexpanded{\noexpand\doifinset{\v!bottom}{\layerparameter\c!corner}}\dosetlayerbottompositions
+ \normalexpanded{\noexpand\doifinset{\v!right }{\layerparameter\c!corner}}\dosetlayerrightpositions
+ \normalexpanded{\noexpand\doifinset{\v!middle}{\layerparameter\c!corner}}\dosetlayermiddlepositions
+ \edef\layerpage{\layerparameter\c!page}%
+ \fi
+ \ifx\layerpage\empty \else % is expanded
+ \edef\layerpage{:\layerpage}%
+ \ifcsname\@@layerbox#2\currentlayer\layerpage\endcsname \else
+ \expandafter\newbox\csname\@@layerbox#2\currentlayer\layerpage\endcsname
+ \fi
+ \fi
+ \chardef\layerpagebox\csname\@@layerbox#2\currentlayer\layerpage\endcsname
+ \ifvoid\layerpagebox
+ \gsetboxllx\layerpagebox\zeropoint
+ \gsetboxlly\layerpagebox\zeropoint
+ \fi
+ \global\setbox\layerpagebox\vbox %to \layerparameter\c!height % new, otherwise no negative y possible
+ {\offinterlineskip
+ %postpone, to after nextboxwd correction % \hsize\layerparameter\c!width % new, keep box small
+ %\ifvoid\csname\@@layerbox\currentlayer\layerpage\endcsname\else % why not #2#1
+ \ifvoid\layerpagebox
+ \let\lastlayerwidth \zeropoint
+ \let\lastlayerheight\zeropoint
+ \else
+ \edef\lastlayerwidth {\the\wd\layerpagebox}%
+ \edef\lastlayerheight{\the\ht\layerpagebox}%
+ \ht\layerpagebox\zeropoint
+ \dp\layerpagebox\zeropoint
+ \wd\layerpagebox\zeropoint
+ \doifnot{\layerparameter\c!direction}\v!reverse{\box\layerpagebox}%
+ \fi
+ % don't move
+ \xdef\lastlayerwd{\the\nextboxwd}%
+ \xdef\lastlayerht{\the\nextboxht}% % not entirely ok when grid !
+ \xdef\lastlayerdp{\the\nextboxdp}% % not entirely ok when grid !
+ % this code
+ \doifelse{\layerparameter\c!location}\v!grid\donetrue\donefalse
+ \ifdone
+ \nextboxht\strutheight
+ \nextboxdp\strutdepth
+ \else
+ \setbox\nextbox\hbox{\alignedbox[\layerparameter\c!location]\vbox{\flushnextbox}}%
+ \fi
+ \ifnum\layerparameter\c!line=\zerocount\else % no \ifcase, can be negative
+ \advance\@@layerypos\dimexpr\layerparameter\c!line\lineheight+\topskip-\lineheight-\nextboxht\relax
+ \fi
+ \ifnum\layerparameter\c!column=\zerocount\else % no \ifcase, can be negative
+ \advance\@@layerxpos\layoutcolumnoffset{\layerparameter\c!column}%
+ \fi
+ \ifdone
+ \setbox\nextbox\hbox{\alignedbox[rb]\vbox{\flushnextbox}}%
+ \fi
+ % ll registration
+ \scratchdimen\@@layerxpos
+ \advance\scratchdimen\@@layerxoff
+ \ifdim\scratchdimen<\getboxllx\layerpagebox
+ \gsetboxllx\layerpagebox\scratchdimen
+ \fi
+ \ifcase\@@lacome\or % this test will become obsolete
+ \advance\scratchdimen\nextboxwd
+ \nextboxwd\ifdim\scratchdimen>\lastlayerwidth \scratchdimen \else \lastlayerwidth \fi
+ \fi
+ \scratchdimen\dimexpr\@@layerypos+\@@layeryoff\relax
+ \ifdim\scratchdimen<\getboxlly\layerpagebox
+ \gsetboxlly\layerpagebox\scratchdimen
+ \fi
+ % ll compensation
+ \ifcase\@@lacome\or % this test will become obsolete
+ \advance\scratchdimen\dimexpr\nextboxht+\nextboxdp\relax
+ \nextboxht\ifdim\scratchdimen>\lastlayerheight \scratchdimen \else \lastlayerheight \fi
+ \nextboxdp\zeropoint
+ \fi
+ % placement
+ \hsize\layerparameter\c!width % new, keep box small
+ \vbox to \layerparameter\c!height \bgroup
+ \smashbox\nextbox
+ \vskip\dimexpr\@@layerypos+\@@layeryoff\relax
+ \hskip\dimexpr\@@layerxpos+\@@layerxoff\relax
+ \flushnextbox
+ \ifvoid\layerpagebox
+ % already flushed
+ \else
+ % the reverse case % check !
+ \vskip-\dimexpr\@@layerypos+\@@layeryoff\relax
+ \box\layerpagebox
+ \fi
+ \egroup}%
+ % when position is true, the layerbox holds the compensation and needs
+ % to be placed; never change this !
+ \ifvoid\layerbox\else\box\layerbox\fi}
+
+\def\dosetlayerbottompositions
+ {\ifnum\layerparameter\c!line=\zerocount\else % can be < 0
+ \setevalue{\??ll\currentlayer\c!line}{\the\numexpr-\layerparameter\c!line+\layoutlines+\plusone\relax}%
+ \fi
+ \ifdim\@@layerysiz>\zeropoint
+ \advance\@@layerypos-\@@layerysiz
+ \@@layerypos-\@@layerypos
+ \@@layeryoff-\@@layeryoff
+ \fi}
+
+\def\dosetlayerrightpositions
+ {\ifnum\layerparameter\c!column=\zerocount\else % can be < 0
+ \setevalue{\??ll\currentlayer\c!column}{\the\numexpr-\layerparameter\c!column+\layoutcolumns+\plusone\relax}%
+ \fi
+ \ifdim\@@layerxsiz>\zeropoint
+ \advance\@@layerxpos-\@@layerxsiz
+ \@@layerxpos-\@@layerxpos
+ \@@layerxoff-\@@layerxoff
+ \fi}
+
+\def\dosetlayermiddlepositions
+ {\ifdim\@@layerxsiz>\zeropoint \advance\@@layerxpos.5\@@layerxsiz \fi
+ \ifdim\@@layerysiz>\zeropoint \advance\@@layerypos.5\@@layerysiz \fi}
+
+%D Given the task to be accomplished, the previous macro is
+%D not even that complicated. It mainly comes down to skipping
+%D to the right place and placing a box on top of or below the
+%D existing content. In the case of position tracking, another
+%D reference point is chosen.
+
+%D \macros
+%D {doifelselayerdata}
+
+\def\doifelselayerdata#1%
+ {\ifcsname\@@layerbox#1\endcsname
+ \ifvoid\csname\@@layerbox#1\endcsname
+ \@EAEAEA\secondoftwoarguments
+ \else
+ \@EAEAEA\firstoftwoarguments
+ \fi
+ \else
+ \@EA\secondoftwoarguments
+ \fi}
+
+%D \macros
+%D {flushlayer}
+%D
+%D When we flush a layer, we flush both the main one and the
+%D page dependent one (when defined). This feature is more
+%D efficient in \ETEX\ since there testing for an undefined
+%D macro does not takes hash space.
+
+% todo: setups before flush, handy hook
+
+% \unexpanded\def\flushlayer[#1]%
+% {\doifelsevalue{\??ll#1\c!state}\v!next
+% {\global\letvalue{\??ll#1\c!state}\v!start} % dangerous, stack-built-up
+% {\doifelsevalue{\??ll#1\c!state}\v!continue
+% {\global\letvalue{\??ll#1\c!state}\v!repeat} % dangerous, stack-built-up
+% {\doifelsevalue{\??ll#1\c!doublesided}\v!yes
+% {\doifundefinedelse{\@@layerbox#1}%
+% {\dodoflushlayerA[#1]}
+% {\doifbothsidesoverruled
+% {\dodoflushlayerB\v!left [#1]}% left
+% {\dodoflushlayerB\v!right[#1]}% right
+% {\dodoflushlayerB\v!left [#1]}}}% left
+% {\dodoflushlayerA[#1]}}}}
+
+\unexpanded\def\flushlayer[#1]% quite core, so optimized
+ {\begingroup
+ \forgetall
+ \edef\currentlayer{#1}%
+ \edef\@@currentlayerstate{\csname\??ll\currentlayer\c!state\endcsname}%
+ \ifx\@@currentlayerstate\v!stop
+ % nothing
+ \else\ifx\@@currentlayerstate\v!next
+ \global\expandafter\let\csname\??ll\currentlayer\c!state\endcsname\v!start % dangerous, stack-built-up
+ \else\ifx\@@currentlayerstate\v!continue
+ \global\expandafter\let\csname\??ll\currentlayer\c!state\endcsname\v!repeat % dangerous, stack-built-up
+ \else
+ \edef\@@currentlayerdoublesided{\csname\??ll\currentlayer\c!doublesided\endcsname}%
+ \ifx\@@currentlayerdoublesided\v!yes
+ \ifcsname\@@layerbox#1\endcsname
+ % we can make a dedicated one for this
+ \doifbothsidesoverruled{\dodoflushlayerB\v!left}{\dodoflushlayerB\v!right}{\dodoflushlayerB\v!left}%
+ \else
+ \dodoflushlayerA
+ \fi
+ \else
+ \dodoflushlayerA
+ \fi
+ \fi\fi\fi
+ \endgroup}
+
+% \ifcase#1\else\writestatus{layer}{unknown layer #3}\fi
+
+\def\dodoflushlayerA
+ {\startoverlay
+ {\ifcsname\@@layerbox\currentlayer \endcsname\dodoflushlayer\plusone \currentlayer \fi}%
+ {\ifcsname\@@layerbox\currentlayer:\realfolio\endcsname\dodoflushlayer\zerocount{\currentlayer:\realfolio}\fi}%
+ \stopoverlay}
+
+\def\dodoflushlayerB#1%
+ {\startoverlay
+ {\ifcsname\@@layerbox \currentlayer \endcsname\dodoflushlayer\plusone \currentlayer \fi}%
+ {\ifcsname\@@layerbox \currentlayer:\realfolio\endcsname\dodoflushlayer\zerocount {\currentlayer:\realfolio}\fi}%
+ {\ifcsname\@@layerbox#1\currentlayer \endcsname\dodoflushlayer\plusone {#1\currentlayer }\fi}%
+ {\ifcsname\@@layerbox#1\currentlayer:\realfolio\endcsname\dodoflushlayer\zerocount{#1\currentlayer:\realfolio}\fi}%
+ \stopoverlay}
+
+\def\dodoflushlayer#1#2% quite core, so optimized
+ {\begingroup % already grouped
+ \offinterlineskip
+ \edef\@@currentlayermethod{\csname\??ll\currentlayer\c!method\endcsname}%
+ \edef\@@currentlayeroption{\csname\??ll\currentlayer\c!option\endcsname}%
+ % needed because we need to handle method but we should find a way to
+ % speed this up
+ \edef\@@currentlayerpreset{\csname\??ll\currentlayer\c!preset\endcsname}%
+ \ifcsname\??ll\??ll\@@currentlayerpreset\endcsname\csname\??ll\??ll\@@currentlayerpreset\endcsname\currentlayer{}\fi
+ %
+ \ifx\@@currentlayeroption\v!test
+ \tracelayerstrue
+ \fi
+ \iftracelayers
+ \traceboxplacementtrue
+ \fi
+ \!!doneafalse
+ \!!donebfalse
+ \ifx\@@currentlayermethod\v!overlay\!!doneatrue\fi
+ \ifx\@@currentlayermethod\v!fit \!!donebtrue\fi
+ \!!donectrue
+ \ifcase#1\else
+ \edef\@@currentlayerposition{\csname\??ll\currentlayer\c!position\endcsname}%
+ \ifx\@@currentlayerposition\v!yes \else
+ \edef\@@currentlayerrepeat{\csname\??ll\currentlayer\c!repeat\endcsname}%
+ % \edef\@@currentlayerstate {\csname\??ll\currentlayer\c!state\endcsname}% actually this is already set
+ \ifx\@@currentlayerrepeat\v!yes
+ \!!donecfalse
+ \else\ifx\@@currentlayerstate\v!repeat
+ \!!donecfalse
+ \fi\fi
+ \fi
+ \fi
+ \chardef\layerbox\csname\@@layerbox#2\endcsname % \@@layerbox\currentlayer
+ % we need to copy in order to retain the negative offsets for a next
+ % stage of additions, i.e. llx/lly accumulate in repeat mode and the
+ % compensation may differ each flush depending on added content
+ \setbox\nextbox
+ \if!!doneb
+ \therepositionededlayerbox
+ \else
+ \if!!donec\box\else\copy\fi\layerbox % sorry for the delay due to copying
+ \fi
+ % todo: method=offset => overlayoffset right/down (handy for backgrounds with offset)
+ \doifoverlayelse{#2}{\setlayoutcomponentattribute\v!layer{#2}}\resetlayoutcomponentattribute
+ \iftracelayers \ruledvbox \else \vbox \fi \if!!donea to \overlayheight \fi \layoutcomponentboxattribute
+ {\hbox \if!!donea to \overlaywidth \fi
+ {\edef\@@currentlayerpageposition{\csname\??ll#2\realfolio\c!position\endcsname}%
+ \ifx\@@currentlayerpageposition\v!yes\xypos{lyr:#2:\realfolio}\fi
+ \box\nextbox
+ \hss}%
+ \vss}%
+ \if!!donec
+ \gsetboxllx\layerbox\zeropoint
+ \gsetboxlly\layerbox\zeropoint
+ \fi
+ \endgroup}
+
+\def\therepositionededlayerbox % assumes that \if!!donec is set (todo: use dedicated flags)
+ {\vbox
+ {\vskip-\getboxlly\layerbox
+ \hskip-\getboxllx\layerbox
+ \hsize-\dimexpr\getboxllx\layerbox-\wd\layerbox\relax
+ \if!!donec\box\else\copy\fi\layerbox}}
+
+% \definelayer[test][method=fit] \setupcolors[state=start] \tracelayerstrue
+%
+% \framed[framecolor=red,offset=overlay]{\setlayer[test]{aa}\setlayer[test][x=10pt]{g}\flushlayer[test]}
+% \framed[framecolor=red,offset=overlay]{\setlayer[test]{aa}\setlayer[test][x=-10pt]{bb}\flushlayer[test]}
+% \framed[framecolor=red,offset=overlay]{\setlayer[test][x=-20pt]{cccccc}\flushlayer[test]}
+% \framed[framecolor=red,offset=overlay]{\setlayer[test]{dd}\setlayer[test][x=-20pt,y=-3pt]{eeeeee}\flushlayer[test]}
+
+%D \macros
+%D {composedlayer,placelayer,tightlayer}
+%D
+%D This is a handy shortcut, which saves a couple of braces
+%D when we use it as parameter. This name also suits better
+%D to other layering commands.
+
+\def\composedlayer#1{\flushlayer[#1]}
+
+\let\placelayer\flushlayer
+
+\def\tightlayer[#1]%
+ {\hbox
+ {\def\currentlayer{#1}% todo: left/right
+ \setbox\nextbox\emptybox % hoogte/breedte are \wd\nextbox/\ht\nextbox
+ \hsize\layerparameter\c!width % \overlaywidth = \hsize
+ \vsize\layerparameter\c!height % \overlaywheight = \vsize
+ \composedlayer{#1}}}
+
+%D \macros
+%D {resetlayer}
+%D
+%D This macro hardly needs an explanation (and is seldom
+%D needed as well).
+
+\def\doresetlayer#1%
+ {\ifcsname\@@layerbox#1\endcsname
+ \global\setbox\csname\@@layerbox#1\endcsname\emptybox
+ \fi}
+
+\def\resetlayer[#1]%
+ {\doresetlayer{#1}%
+ \doifvalue{\??ll#1\c!doublesided}\v!yes % kind of redundant test
+ {\doresetlayer{\v!left #1}%
+ \doresetlayer{\v!right#1}}%
+ \doresetlayer{#1:\realfolio}}
+
+%D \macros
+%D {setMPlayer}
+%D
+%D The following layer macro uses the positions that are
+%D registered by \METAPOST.
+%D
+%D \starttyping
+%D \definelayer[test]
+%D
+%D \setMPlayer [test] [somepos-1] {Whatever we want here!}
+%D \setMPlayer [test] [somepos-2] {Whatever we need there!}
+%D \setMPlayer [test] [somepos-3] {\externalfigure[cow.mps][width=2cm]}
+%D
+%D \startuseMPgraphic{oeps}
+%D draw fullcircle scaled 10cm withcolor red ;
+%D register ("somepos-1",2cm,3cm,center currentpicture) ;
+%D register ("somepos-2",8cm,5cm,(-1cm,-2cm)) ;
+%D register ("somepos-3",0cm,0cm,(-2cm,2cm)) ;
+%D \stopuseMPgraphic
+%D
+%D \getMPlayer[test]{\useMPgraphic{oeps}}
+%D \stoptyping
+%D
+%D The last line is equivalent to
+%D
+%D \starttyping
+%D \framed
+%D [background={foreground,test},offset=overlay]
+%D {\useMPgraphic{oeps}}
+%D \stoptyping
+
+\def\setMPlayer
+ {\dotripleempty\dosetMPlayer}
+
+\def\MPlayerwidth {\hsize}
+\def\MPlayerheight{\vsize}
+
+\def\dosetMPlayer[#1][#2][#3]%
+ {\edef\MPlayerwidth {\MPw{#2}}%
+ \edef\MPlayerheight{\MPh{#2}}%
+ \setlayer[#1][\c!x=\MPx{#2},\c!y=\MPy{#2},\c!position=\v!no,#3]}
+
+\def\getMPlayer
+ {\dodoubleempty\dogetMPlayer}
+
+\def\dogetMPlayer[#1][#2]%
+ {\framed
+ [\c!background={\v!foreground,#1},
+ \c!frame=\v!off,
+ \c!offset=\v!overlay,#2]}
+
+% The next mechanism is obsolete and will be removed in \MKIV\ (or move to
+% the compatibility module.
+
+% \newskip\xposition \newskip\yposition
+% \newskip\xdimension \newskip\ydimension
+% \newskip\xoffset \newskip\yoffset
+
+% already defined \newbox\positionbox
+
+\def\startpositioning
+ {\bgroup
+ \xposition \zeropoint \yposition \zeropoint
+ \xdimension\zeropoint \ydimension\zeropoint
+ \xoffset \zeropoint \yoffset \zeropoint
+ \hfuzz \paperwidth \vfuzz \paperheight
+ \setbox\positionbox\hbox\bgroup}
+
+\def\stoppositioning
+ {\doifnot\@@psoffset\v!yes
+ {\global\xoffset\zeropoint
+ \global\yoffset\zeropoint}%
+ \global\advance\xdimension \xoffset
+ \global\advance\ydimension \yoffset
+ \egroup
+ \vbox to \ydimension
+ {\vskip\yoffset
+ \hbox to \xdimension
+ {\hskip\xoffset
+ \box\positionbox
+ \hfill}
+ \vfill}%
+ \egroup}
+
+\def\resetpositioning
+ {\getparameters[\??ps]
+ [\c!state=\v!start,%
+ \c!unit=\s!cm,%
+ \c!factor=1,%
+ \c!scale=1,%
+ \c!xfactor=\@@psfactor,%
+ \c!yfactor=\@@psfactor,%
+ \c!xscale=\@@psscale,%
+ \c!yscale=\@@psscale,%
+ \c!xstep=\v!absolute,%
+ \c!ystep=\v!absolute,%
+ \c!xoffset=\!!zeropoint,%
+ \c!yoffset=\!!zeropoint]}
+
+\def\setuppositioning
+ {\resetpositioning
+ \dodoubleargument\getparameters[\??ps]}
+
+\def\calculateposition#1#2#3#4#5#6#7#8#9%
+ {\setdimensionwithunit\scratchskip{#1}\@@psunit
+ \scratchskip#8\scratchskip
+ \scratchskip#9\scratchskip
+ \advance\scratchskip #4\relax
+ \doif{#2}\v!relative
+ {\advance\scratchskip #3%
+ \let#4\!!zeropoint}%
+ #3\scratchskip\relax
+ \doifnot\@@psstate\v!overlay
+ {\scratchskip#5\relax
+ \advance\scratchskip #3\relax
+ \ifdim#3<-#7\relax \global#7-#3\relax \fi
+ \ifdim\scratchskip>#6\relax \global#6\scratchskip\relax \fi}}
+
+\def\position
+ {\dosingleempty\doposition}
+
+\def\doposition[#1]#2(#3,#4)%
+ {\dowithnextbox
+ {\bgroup
+ \getparameters[\??ps][#1]%
+ \dontcomplain
+ \calculateposition{#3}\@@psxstep\xposition
+ \@@psxoffset{\nextboxwd}\xdimension\xoffset
+ \@@psxscale\@@psxfactor
+ \scratchdimen\nextboxht \advance\scratchdimen \nextboxdp
+ \calculateposition{#4}\@@psystep\yposition
+ \@@psyoffset\scratchdimen\ydimension\yoffset
+ \@@psyscale\@@psyfactor
+ \vbox to \zeropoint % kan beter.
+ {\vskip\yposition
+ \hbox to \zeropoint
+ {\hskip\xposition
+ \flushnextbox
+ \hss}
+ \vss}%
+ \xdef\dopoppositioning
+ {\xposition\the\xposition
+ \yposition\the\yposition
+ \noexpand\def\noexpand\@@psxoffset{\@@psxoffset}%
+ \noexpand\def\noexpand\@@psyoffset{\@@psyoffset}}%
+ \egroup
+ \dopoppositioning
+ \ignorespaces}
+ \hbox}
+
+\resetpositioning
+
+\setuppositioning
+ [\c!unit=\s!cm,
+ \c!factor=1,
+ \c!scale=1,
+ \c!xstep=\v!absolute,
+ \c!ystep=\v!absolute,
+ \c!offset=\v!yes,
+ \c!xoffset=\!!zeropoint,
+ \c!yoffset=\!!zeropoint]
+
+%D Watch out, a redefinition:
+
+\ifx\settextpagecontent\undefined \writestatus\m!systems{error in page-lyr.tex} \wait \fi
+
+\let\normalsettextpagecontent\settextpagecontent
+
+\definelayer
+ [OTRTEXT]
+
+\setuplayer
+ [OTRTEXT]
+ [\c!width=\innermakeupwidth,
+ \c!height=\textheight]
+
+% will be overloaded in page-spr
+
+\def\settextpagecontent#1#2#3% #2 and #3 will disappear
+ {\doifelselayerdata{OTRTEXT}
+ {\setbox#1\hbox to \makeupwidth
+ {\startoverlay
+ {\tightlayer[OTRTEXT]} % first, otherwise problems with toc
+ {\normalsettextpagecontent{#1}{#2}{#3}\box#1}
+ \stopoverlay}%
+ \dp#1\zeropoint}%
+ {\normalsettextpagecontent{#1}{#2}{#3}}}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/pack-obj.lua b/Master/texmf-dist/tex/context/base/pack-obj.lua
new file mode 100644
index 00000000000..ce1c520ce65
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/pack-obj.lua
@@ -0,0 +1,54 @@
+if not modules then modules = { } end modules ['pack-obj'] = {
+ version = 1.001,
+ comment = "companion to pack-obj.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+--[[ldx--
+<p>We save object references in the main utility table. jobobjects are
+reusable components.</p>
+--ldx]]--
+
+local texsprint, texcount = tex.sprint, tex.count
+
+jobobjects = jobobjects or { }
+jobobjects.collected = jobobjects.collected or { }
+jobobjects.tobesaved = jobobjects.tobesaved or { }
+
+local collected, tobesaved = jobobjects.collected, jobobjects.tobesaved
+
+local function initializer()
+ collected, tobesaved = jobobjects.collected, jobobjects.tobesaved
+end
+
+job.register('jobobjects.collected', jobobjects.tobesaved, initializer, nil)
+
+function jobobjects.save(tag,number,page)
+ local t = { number, page }
+ tobesaved[tag], collected[tag] = t, t
+end
+
+function jobobjects.set(tag,number,page)
+ collected[tag] = { number, page }
+end
+
+function jobobjects.get(tag)
+ return collected[tag] or tobesaved[tag]
+end
+
+function jobobjects.number(tag,default)
+ local o = collected[tag] or tobesaved[tag]
+ texsprint((o and o[1]) or default)
+end
+
+function jobobjects.page(tag,default)
+ local o = collected[tag] or tobesaved[tag]
+ texsprint((o and o[2]) or default)
+end
+
+function jobobjects.doifelse(tag)
+ commands.testcase(collected[tag] or tobesaved[tag])
+end
+
diff --git a/Master/texmf-dist/tex/context/base/core-obj.tex b/Master/texmf-dist/tex/context/base/pack-obj.mkii
index a1b0796d1ab..6971ad04ff6 100644
--- a/Master/texmf-dist/tex/context/base/core-obj.tex
+++ b/Master/texmf-dist/tex/context/base/pack-obj.mkii
@@ -1,8 +1,8 @@
%D \module
-%D [ file=core-obj,
+%D [ file=pack-obj,
%D version=1998.01.15,
-%D title=\CONTEXT\ Core Macros,
-%D subtitle=Object Handling,
+%D title=\CONTEXT\ Packaging Macros,
+%D subtitle=Objects,
%D author=Hans Hagen,
%D date=\currentdate,
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
@@ -11,49 +11,11 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Core Macros / Object Handling}
+% todo, move more to mkiv, get rid of blabelgroup
-\unprotect
+\writestatus{loading}{ConTeXt Packaging Macros / Objects}
-\startmessages dutch library: references
- 30: onbekend object --
- 31: dubbel object --
-\stopmessages
-
-\startmessages english library: references
- 30: unknown object --
- 31: duplicate object --
-\stopmessages
-
-\startmessages german library: references
- 30: unbekanntes Object --
- 31: doppeltes Object --
-\stopmessages
-
-\startmessages czech library: references
- 30: neznamy objekt --
- 31: duplicitni object --
-\stopmessages
-
-\startmessages italian library: references
- 30: oggetto sconosciuto --
- 31: oggetto duplicato --
-\stopmessages
-
-\startmessages norwegian library: references
- 30: ukjent objekt --
- 31: duplikat objekt --
-\stopmessages
-
-\startmessages romanian library: references
- 30: obiect necunoscut --
- 31: obiect duplicat --
-\stopmessages
-
-\startmessages french library: references
- 30: objet -- inconnu
- 31: objet -- dupliqué
-\stopmessages
+\unprotect
%D \macros
%D {setobject,getobject,ifinobject}
@@ -91,15 +53,22 @@
\newif\ifinobject
-\ifx\mkcheckobjectreferences\undefined \let\mkcheckobjectreferences\relax \fi
-
-\def\checkobjectreferences{\mkcheckobjectreferences}
+\def\checkobjectreferences
+ {\startnointerference
+ \protectlabels
+ \ifx\usedoutputdriver\currentoutput
+ \doutilities{objectreferences}\jobname\empty\relax\relax
+ \else
+ % different format (will fails on \purenumber)
+ \fi
+ \global\let\checkobjectreferences\relax
+ \stopnointerference}
\def\objectplaceholder{NOT YET FLUSHED}%
\def\presetobject#1#2% \global added
{\blabelgroup
- \ifundefined{\r!object#1::#2}%
+ \ifcsname\r!object#1::#2\endcsname\else
\global\@EA\let\csname\r!object#1::#2\endcsname\objectplaceholder
\fi
\elabelgroup}
@@ -107,10 +76,10 @@
\def\dosetobject#1#2#3% \initializepaper this will move to \everyshipout
{\initializepaper
\blabelgroup
- \ifundefined{\r!object#2::#3}%
- \elabelgroup \expandafter\dodosetobject
- \else % tzt, overload internal referenced objects to save entries
+ \ifcsname\r!object#2::#3\endcsname
\elabelgroup \expandafter\gobblefivearguments
+ \else % tzt, overload internal referenced objects to save entries
+ \elabelgroup \expandafter\dodosetobject
\fi
{#1}{#2}{#3}}
@@ -287,12 +256,38 @@
% no undefined test ! ! ! ! (pdftex fails on undefined objects)
+\def\setobjectreferences
+ {\def\objectreference##1##2##3##4%
+ {\ifundefined{\r!driver##1::##2}%
+ \setxvalue{\r!driver##1::##2}{{##3}{##4}}%
+ \else
+ \showmessage\m!references{31}{[##1 ##2=>##3/##4]}%
+ \fi}}
+
+\def\resetobjectreferences
+ {\let\objectreference\gobblefourarguments}
+
+\resetobjectreferences
+
+\def\doregisterobjectreference#1#2#3%
+ {\checkobjectreferences
+ \blabelgroup
+ \expanded{\writeutilitycommand{\noexpand\objectreference{#1}{#2}{#3}{\noexpand\realfolio}}}%
+ \setxvalue{\r!driver#1::#2}{{#3}{\noexpand\realfolio}}%
+ \elabelgroup}
+
+\def\dooverloadobjectreference#1#2#3%
+ {\checkobjectreferences
+ \blabelgroup
+ \setxvalue{\r!driver#1::#2}{{#3}{\noexpand\realfolio}}%
+ \elabelgroup}
+
\def\dosetobjectreference
{\ifcase\crossreferenceobject
\objectreferenced
- \expandafter\mkoverloadobjectreference
+ \expandafter\dooverloadobjectreference
\else
- \expandafter\mkregisterobjectreference
+ \expandafter\doregisterobjectreference
\fi}
\def\dosetdriverreference
@@ -301,8 +296,19 @@
\def\defaultobjectreference#1#2{0} % driver dependent
\def\defaultobjectpage #1#2{\realfolio}
-\def\dogetobjectreference {\mkgetobjectreference}
-\def\dogetobjectreferencepage{\mkgetobjectreferencepage}
+\def\dogetobjectreference {\dodogetobjectreference\firstoftwoarguments\defaultobjectreference}
+\def\dogetobjectreferencepage{\dodogetobjectreference\secondoftwoarguments\defaultobjectpage}
+
+\def\dodogetobjectreference#1#2#3#4#5%
+ {\checkobjectreferences
+ \blabelgroup
+ \ifundefined{\r!driver#3::#4}%
+ \showmessage\m!references{30}{[#3 #4=>#3/#4]}%
+ \xdef#5{#2{#3}{#4}}%
+ \else
+ \xdef#5{\@EAEAEA#1\csname\r!driver#3::#4\endcsname}%
+ \fi
+ \elabelgroup}
\def\setobject {\driverreferenced\dosetobject1}
\def\settightobject{\driverreferenced\dosetobject0}
@@ -325,7 +331,13 @@
\elabelgroup \expandafter\secondoftwoarguments
\fi}
-\def\doifobjectreferencefoundelse{\mkifobjectreferencefoundelse}
+\def\doifobjectreferencefoundelse#1#2%
+ {\checkobjectreferences
+ \blabelgroup \ifcsname\r!driver#1::#2\endcsname
+ \elabelgroup \expandafter\firstoftwoarguments
+ \else
+ \elabelgroup \expandafter\secondoftwoarguments
+ \fi}
%D \macros
%D {doifobjectssupportedelse}
@@ -356,8 +368,4 @@
%D support objects while we still want to be able to use the
%D \DVI\ output.
-%D Plugin code:
-
-\loadmarkfile{core-obj}
-
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/pack-obj.mkiv b/Master/texmf-dist/tex/context/base/pack-obj.mkiv
new file mode 100644
index 00000000000..14afef62387
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/pack-obj.mkiv
@@ -0,0 +1,398 @@
+%D \module
+%D [ file=pack-obj,
+%D version=1998.01.15,
+%D title=\CONTEXT\ Packaging Macros,
+%D subtitle=Objects,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Packaging Macros / Objects}
+
+\unprotect
+
+\let\objectreference\gobblefourarguments % catch mkii tuo stuff
+
+\registerctxluafile{pack-obj}{1.001}
+
+% \startluacode
+% local texbox, texdimen, texcount, texwrite = tex.box, tex.dimen, tex.count, tex.write
+% local pdfxform, pdfrefxform = pdf.xform, pdf.refxform
+%
+% function pdf.xform (l) texbox["objectbox"] = nil return l end
+% function pdf.refxform(l) return node.copy_list(l) end
+%
+% backends.codeinjections.register = pdf.xform
+% backends.codeinjections.restore = pdf.refxform
+%
+% local codeinjections = backends.codeinjections
+%
+% objects = objects or { }
+%
+% local data = { }
+%
+% objects.data = data
+% objects.n = 0
+%
+% function objects.register(name)
+% objects.n = objects.n + 1
+% local list = texbox.objectbox
+% nodes.process_page(list)
+% data[name] = {
+% codeinjections.restore(list),
+% texdimen.objectwd,
+% texdimen.objectht,
+% texdimen.objectdp,
+% texdimen.objectoff,
+% }
+% end
+%
+% function objects.restore(name)
+% local d = data[name]
+% if d then
+% texbox .objectbox = codeinjections.restore(d[1])
+% texdimen.objectwd = d[2]
+% texdimen.objectht = d[3]
+% texdimen.objectdp = d[4]
+% texdimen.objectoff = d[5]
+% else
+% texbox .objectbox = nil
+% texdimen.objectwd = 0
+% texdimen.objectht = 0
+% texdimen.objectdp = 0
+% texdimen.objectoff = 0
+% end
+% end
+%
+% function objects.reference(name)
+% local d = data[name]
+% texwrite((d and d[1]) or 0)
+% end
+%
+% function objects.enhance(name)
+% local d = data[name]
+% if d then
+% d[6] = texcount.realpageno
+% end
+% end
+%
+% function objects.page(name)
+% local d = data[name]
+% texwrite((d and d[6]) or texcount.realpageno)
+% end
+%
+% function objects.doifelse(name)
+% commands.testcase(data[name])
+% end
+% \stopluacode
+%
+% \newbox \objectbox
+% \newtoks \everyobject
+% \newif \ifinobject
+%
+% \newdimen\objectoff \def\objectmargin{\the\objectoff}
+% \newdimen\objectwd \def\objectwidth {\the\objectwd }
+% \newdimen\objectht \def\objectheight{\the\objectht }
+% \newdimen\objectdp \def\objectdepth {\the\objectdp }
+%
+% \def\objectoffset{1cm}
+%
+% \everyobject{\the\everyPDFxform}
+%
+% \let\doresetobjects\relax
+%
+% \def\setobject #1#2{\begingroup\objectoff\objectoffset\inobjecttrue\the\everyobject\dowithnextbox{\dosetobject{#1}{#2}}}
+% \def\settightobject#1#2{\begingroup\objectoff\zeropoint \inobjecttrue\the\everyobject\dowithnextbox{\dosetobject{#1}{#2}}}
+%
+% \let\objectsetvbox\vbox %\def\objectsetvbox{\ruledvbox}
+% \let\objectgetvbox\vbox %\def\objectgetvbox{\ruledvbox}
+% \let\objectsethbox\hbox %\def\objectsethbox{\ruledhbox}
+% \let\objectgethbox\hbox %\def\objectgethbox{\ruledhbox}
+%
+% \def\dosetobject#1#2%
+% {\objectwd\wd\nextbox
+% \objectht\ht\nextbox
+% \objectdp\dp\nextbox
+% \ifdim\objectoff=\zeropoint\relax
+% \setbox\objectbox\box\nextbox
+% \else
+% \setbox\objectbox\objectsetvbox spread 2\objectoff{\vss\objectsethbox spread 2\objectoff{\hss\flushnextbox\hss}\vss}%
+% \fi
+% \ctxlua{objects.register("#1::#2")}%
+% \endgroup}
+%
+% \def\getobject#1#2%
+% {\begingroup
+% \ctxlua{objects.restore("#1::#2")}%
+% \ifdim\objectoff=\zeropoint\relax \else
+% \setbox\objectbox\objectgetvbox to \dimexpr\objectht+\objectdp\relax
+% {\vss\objectgethbox to \objectwd{\hss\box\objectbox\hss}\vss}%
+% \wd\objectbox\objectwd
+% \ht\objectbox\objectht
+% \dp\objectbox\objectdp
+% \fi
+% \box\objectbox
+% \endgroup}
+%
+% \def\getpageobject#1#2%
+% {\begingroup
+% \ctxlua{objects.restore("#1::#2")}%
+% \ifdim\objectoff=\zeropoint\relax
+% \setbox\objectbox\objectgethbox{\ctxlatelua{objects.enhance("#1::#2")}\box\objectbox}
+% \else
+% \setbox\objectbox\objectgetvbox to \dimexpr\objectht+\objectdp\relax
+% {\vss\objectgethbox to \objectwd{\ctxlatelua{objects.enhance("#1::#2")}\hss\box\objectbox\hss}\vss}%
+% \wd\objectbox\objectwd
+% \ht\objectbox\objectht
+% \dp\objectbox\objectdp
+% \fi
+% \box\objectbox
+% \endgroup}
+%
+% \def\setobjectdirectly #1#2{\ctxlua{objects.register("#1::#2")}}
+% \def\getobjectdirectly #1#2{\ctxlua{objects.restore ("#1::#2")}}
+% \def\getobjectdimensions #1#2{\ctxlua{objects.restore ("#1::#2")}}
+% \def\doifobjectfoundelse #1#2{\ctxlua{objects.doifelse("#1::#2")}}
+% \def\doifobjectreferencefoundelse#1#2{\ctxlua{objects.doifelse("#1::#2")}}
+%
+% \let\objectreferenced\relax
+% \let\driverreferenced\relax
+%
+% \def\doregisterobjectreference{\writestatus{objects}{obsolete: register object reference}\gobblethreearguments}
+% \def\dooverloadobjectreference{\writestatus{objects}{obsolete: overload object reference}\gobblethreearguments}
+% \def\dosetobjectreference {\writestatus{objects}{obsolete: set object reference}\gobblethreearguments}
+% \def\dosetdriverreference {\writestatus{objects}{obsolete: set driver reference}\gobblethreearguments}
+%
+% \def\defaultobjectreference{0}
+% \def\defaultobjectpage {\realfolio}
+%
+% \def\dogetobjectreference #1#2#3{\xdef#3{\ctxlua{objects.reference("#1::#2)}}}
+% \def\dogetobjectreferencepage#1#2#3{\xdef#3{\ctxlua{objects.page("#1::#2))}}}
+%
+% \protect
+%
+% \starttext
+% test \setobject{a}{b}\ruledhbox{xxx}\getobject{a}{b} test
+% \vskip3cm
+% test \settightobject{a}{b}\ruledhbox{xxx}\getobject{a}{b} test
+% test \settightobject{a}{c}\ruledhbox{xxx}\getobject{a}{c} test
+% \dorecurse{5000}{test \setobject{a}{b}\ruledhbox{xxx}\getobject{a}{b} test }
+% \stoptext
+
+%D \macros
+%D {setobject,getobject,ifinobject}
+%D
+%D Boxes can be considered reuable objects. Unfortunaltely once
+%D passed to the \DVI\ file, such objects cannot be reused. In
+%D \PDF\ however, reusing is possible and sometimes even a
+%D necessity. Therefore, \CONTEXT\ supports reusable objects.
+%D
+%D During the \TEX\ processing run, boxes can serve the purpose
+%D of objects, and the \DVI\ driver module implements objects
+%D using packed boxes.
+%D
+%D The \PDF\ and \PDFTEX\ driver modules implement objects
+%D using \PDF\ forms. There is no (real) restriction on the
+%D number of objects there.
+%D
+%D The first application of objects in \CONTEXT\ concerned
+%D \METAPOST\ graphics and fill||in form fields. The first
+%D application can save lots of bytes, while the latter use is
+%D more a necessity than byte saving.
+%D
+%D \starttyping
+%D \setobject{class}{name}\somebox{}
+%D \getobject{class}{name}
+%D \stoptyping
+%D
+%D Here \type{\somebox} can be whatever box specification suits
+%D \TEX. We save the dimensions of an object, although some
+%D drivers will do so themselves. This means that when for
+%D instance using \PDFTEX\ we could save a hash entry plus some
+%D 20+ memory locations per object by delegating this
+%D housekeeping to the driver. The current approach permits
+%D us to keep the box characteristic too.
+
+\newif\ifinobject
+
+\def\objectplaceholder{NOT YET FLUSHED}%
+
+\def\presetobject#1#2% \global added
+ {\ifcsname\r!object#1::#2\endcsname\else
+ \global\@EA\let\csname\r!object#1::#2\endcsname\objectplaceholder
+ \fi}
+
+\def\dosetobject#1#2#3% \initializepaper this will move to \everyshipout
+ {% \initializepaper
+ \ifcsname\r!object#2::#3\endcsname
+ \expandafter\gobblefivearguments
+ \else % tzt, overload internal referenced objects to save entries
+ \expandafter\dodosetobject
+ \fi
+ {#1}{#2}{#3}}
+
+\def\resetobject#1#2%
+ {\letbeundefined{\r!object#1::#2}}
+
+%D \macros
+%D {finalizeobjectbox}
+%D
+%D This one provides a hook for last minute object box processing
+%D we need this in \MKIV.
+
+\ifx\finalizeobjectbox\undefined
+ \let\finalizeobjectbox\gobbleoneargument
+\fi
+
+%D Somehow there is a rounding error problem in either \PDFTEX\
+%D or in viewers, or maybe it is conforming the specs. The next
+%D variable compensate for it by removing the rather tight
+%D clip.
+
+\def\objectoffset{1cm}
+
+\def\dodosetobject#1#2#3%
+ {\bgroup
+ \globalpushmacro\crossreferenceobject \objectreferenced
+ \inobjecttrue
+ \dowithnextbox
+ {\globalpopmacro\crossreferenceobject
+ \dododosetobject{#1}{#2}{#3}\egroup}}
+
+\def\dododosetobject#1#2#3%
+ {\begingroup
+ \dontshowcomposition % rather fuzzy in \setxvalue ... \hbox
+ \scratchdimen\objectoffset
+ \@EA\xdef\csname\r!object#2::#3\endcsname
+ {\noexpand\dohandleobject{#2}{#3}%
+ {\ifhbox\nextbox\hbox\else\vbox\fi}%
+ {\number\nextboxwd}{\number\nextboxht}{\number\nextboxdp}%
+ {\number\scratchdimen}}%
+ \expanded % freeze the dimensions since \dostartobject may use \nextbox
+ {\dostartobject{#2}{#3}{\the\nextboxwd}{\the\nextboxht}{\the\nextboxdp}}%
+ \ifcase#1\relax\else \ifdim\objectoffset>\zeropoint
+ \setbox\nextbox\vbox spread 2\scratchdimen
+ {\forgetall \offinterlineskip
+ \vss\hbox spread 2\scratchdimen{\hss\flushnextbox\hss}\vss}%
+ \fi \fi
+ \flushnextbox
+ \dostopobject
+ \endgroup}
+
+\def\getobject#1#2%
+ {\begingroup
+ \let\dohandleobject\dogetobject
+ \csname\r!object#1::#2\endcsname}
+
+\def\dogetobject#1#2#3#4#5#6#7% don't change this, should work for dvi & pdf
+ {% \initializepaper
+ \forgetall
+ \dontshowcomposition
+ \setbox\scratchbox\vbox
+ {\doinsertobject{#1}{#2}}%
+ \setbox\scratchbox#3%
+ {\vbox to #5\scaledpoint
+ {\ifdim\ht\scratchbox>#5\scaledpoint
+ \vss\hbox to #4\scaledpoint{\hss\box\scratchbox\hss}\vss
+ \else\ifdim\wd\scratchbox>#4\scaledpoint
+ \vss\hbox to #4\scaledpoint{\hss\box\scratchbox\hss}\vss
+ \else
+ %\vss\box\scratchbox
+ \vss\hbox to #4\scaledpoint{\box\scratchbox\hss}% fix Chof
+ \fi\fi}}%
+ \box\scratchbox
+ \endgroup}
+
+%D If needed one can ask for the dimensions of an object with:
+%D
+%D \starttyping
+%D \getobjectdimensions{class}{name}
+%D \stoptyping
+%D
+%D The results are reported in \type {\objectwidth}, \type
+%D {\objectheight} and \type {\objectdepth}.
+
+\def\dogetobjectdimensions#1#2#3#4#5#6#7%
+ {\def\objectwidth {#4\s!sp}%
+ \def\objectheight{#5\s!sp}%
+ \def\objectdepth {#6\s!sp}%
+ \def\objectmargin{#7\s!sp}}
+
+\def\getobjectdimensions#1#2%
+ {\let\dohandleobject\dogetobjectdimensions
+ \let\objectwidth \!!zeropoint
+ \let\objectheight\!!zeropoint
+ \let\objectdepth \!!zeropoint
+ \csname\r!object#1::#2\endcsname}
+
+%D Apart from this kind of objects, that have typeset content,
+%D we can have low level driver specific objects. Both types
+%D can have references to internal representations, hidden for
+%D the user. We keep track of such references by means of a
+%D dedicated cross reference mechanism. Normally, objects are
+%D defined before they are used, but forward referencing
+%D sometimes occurs.
+%D
+%D \starttyping
+%D \dosetobjectreference {class} {identifier} {reference value} {page}
+%D \dogetobjectreference {class} {identifier} \csname
+%D \stoptyping
+%D
+%D These commands are to be called by the \type{\startobject},
+%D \type{\stopobject} and \type{\insertobject} specials.
+
+\def\objectreferenced{\global\chardef\crossreferenceobject\plusone}
+\def\driverreferenced{\global\chardef\crossreferenceobject\zerocount}
+
+\objectreferenced
+
+% no undefined test ! ! ! ! (pdftex fails on undefined objects)
+
+\def\doregisterobjectreference#1#2#3{\normalexpanded{\noexpand\ctxlatelua{jobobjects.save("#1::#2",#3,\noexpand\the\realpageno)}}}
+\def\dooverloadobjectreference#1#2#3{\ctxlua{jobobjects.set("#1::#2",#3,\the\realpageno)}}
+
+\def\dosetobjectreference
+ {\ifcase\crossreferenceobject
+ \objectreferenced
+ \expandafter\dooverloadobjectreference
+ \else
+ \expandafter\doregisterobjectreference
+ \fi}
+
+\def\dosetdriverreference
+ {\driverreferenced\dosetobjectreference}
+
+\def\defaultobjectreference#1#2{0} % driver dependent
+\def\defaultobjectpage #1#2{\realfolio}
+
+\def\dogetobjectreference #1#2#3{\xdef#3{\ctxlua{jobobjects.number("#1::#2","\defaultobjectreference{#1}{#2}")}}}
+\def\dogetobjectreferencepage#1#2#3{\xdef#3{\ctxlua{jobobjects.page("#1::#2","\defaultobjectpage{#1}{#2}")}}}
+
+\def\setobject {\driverreferenced\dosetobject1}
+\def\settightobject{\driverreferenced\dosetobject0}
+
+%D \macros
+%D {doifobjectfoundelse,doifobjectreferencefoundelse}
+%D
+%D To prevent redundant definition of objects, one can use
+%D the next tests:
+%D
+%D \starttyping
+%D \doifobjectfoundelse{class}{object}{do then}{do else}
+%D \doifobjectreferencefoundelse{class}{object}{do then}{do else}
+%D \stoptyping
+
+\def\doifobjectfoundelse#1#2%
+ {\ifcsname\r!object#1::#2\endcsname
+ \expandafter\firstoftwoarguments
+ \else
+ \expandafter\secondoftwoarguments
+ \fi}
+
+\def\doifobjectreferencefoundelse#1#2{\ctxlua{jobobjects.doifelse("#1::#2")}}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/pack-rul.lua b/Master/texmf-dist/tex/context/base/pack-rul.lua
new file mode 100644
index 00000000000..6bbd3c856b4
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/pack-rul.lua
@@ -0,0 +1,53 @@
+if not modules then modules = { } end modules ['pack-rul'] = {
+ version = 1.001,
+ comment = "companion to pack-rul.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+--[[ldx--
+<p>An explanation is given in the history document <t>mk</t>.</p>
+--ldx]]--
+
+local texdimen, texcount, texbox, texwd = tex.dimen, tex.count, tex.box, tex.wd
+local hpack, free, copy, traverse_id = node.hpack, node.free, node.copy_list, node.traverse_id
+
+function commands.doreshapeframedbox(n)
+ local noflines, lastlinelength = 0, 0
+ if texwd[n] ~= 0 then
+ local list = texbox[n].list
+ if list then
+ local width, done = 0, false
+ for h in traverse_id('hlist',list) do
+ local l = h.list
+ if l then
+ done = true
+ local p = hpack(copy(l))
+ lastlinelength = p.width
+ if lastlinelength > width then
+ width = lastlinelength
+ end
+ free(p)
+ end
+ end
+ if done then
+ if width ~= 0 then
+ for h in traverse_id('hlist',list) do
+ local l = h.list
+ if l then
+ -- if h.width ~= width then -- else no display math handling (uses shift)
+ h.list = hpack(l,width,'exactly')
+ h.shift = 0 -- needed for display math
+ h.width = width
+ -- end
+ end
+ end
+ end
+ texwd[n] = width
+ end
+ end
+ end
+ texdimen["framedlastlength"] = lastlinelength
+ texcount["framednoflines"] = noflines
+end
diff --git a/Master/texmf-dist/tex/context/base/core-rul.tex b/Master/texmf-dist/tex/context/base/pack-rul.mkii
index 5ede142bbe5..055094547c2 100644
--- a/Master/texmf-dist/tex/context/base/core-rul.tex
+++ b/Master/texmf-dist/tex/context/base/pack-rul.mkii
@@ -1,8 +1,8 @@
%D \module
-%D [ file=core-rul,
+%D [ file=pack-rul, % was core-rul,
%D version=1998.10.16,
-%D title=\CONTEXT\ Core Macros,
-%D subtitle=Ruled Stuff Handling,
+%D title=\CONTEXT\ Packaging Macros,
+%D subtitle=Ruled Content,
%D author=Hans Hagen,
%D date=\currentdate,
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
@@ -11,9 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Core Macros / Ruled Content Handling}
-
-%D This module is now etex dependent.
+\writestatus{loading}{ConTeXt Packaging Macros / Ruled Content}
\unprotect
@@ -170,38 +168,49 @@
{\bgroup
\doifelse{\framedparameter\c!backgroundcorner}\v!rectangular
{\dofilledlinedbox}
- {\scratchdimen\framedparameter\c!backgroundradius\relax % just in case of .x\bodyfontsize
- \ifzeropt\scratchdimen
+ {\ifzeropt\dimexpr\framedparameter\c!backgroundradius\relax % just in case of .x\bodyfontsize
\dofilledlinedbox
\else
\dofilledroundbox
\fi}%
\egroup}
-
\def\dophantombox
{\hphantom{\dofilledbox}}
\def\dofilledlinedbox
{\vrule\!!width\frameddimenwd\!!height\frameddimenht\!!depth\frameddimendp\relax}%
-\def\dofilledroundbox
- {\doroundedbox\v!off\v!on{\framedparameter\c!backgroundcorner}}
+\def\dostrokedroundbox
+ {\doif{\framedparameter\c!frame}\v!on\dodostrokedroundbox}
+
+\def\dodostrokedroundbox
+ {\bgroup
+ \edef\ovalmod{\framedparameter\c!framecorner}%
+ \doifelse\ovalmod\v!round{\let\ovalmod\!!zerocount}{\edef\ovalmod{\number\ovalmod}}%
+ \edef\ovalwid{\the\frameddimenwd}%
+ \edef\ovalhei{\the\frameddimenht}%
+ \edef\ovaldep{\the\frameddimendp}%
+ \edef\ovallin{\the\dimexpr\ruledlinewidth}%
+ \edef\ovalrad{\the\dimexpr\framedparameter\c!frameradius}%
+ \let\ovalstr\!!plusone
+ \let\ovalfil\!!zerocount
+ \forcecolorhack
+ \doovalbox\ovalwid\ovalhei\ovaldep\ovallin\ovalrad\ovalstr\ovalfil\ovalmod
+ \egroup}
-\def\doroundedbox#1#2#3%
+\def\dofilledroundbox
{\bgroup
- \doifelse{#3}\v!round{\let\ovalmod\!!zerocount}{\edef\ovalmod{\number#3}}%
+ \edef\ovalmod{\framedparameter\c!backgroundcorner}%
+ \doifelse\ovalmod\v!round{\let\ovalmod\!!zerocount}{\edef\ovalmod{\number\ovalmod}}%
\edef\ovalwid{\the\frameddimenwd}%
\edef\ovalhei{\the\frameddimenht}%
\edef\ovaldep{\the\frameddimendp}%
- \scratchdimen\ruledlinewidth\edef\ovallin{\the\scratchdimen}%
- \scratchdimen\framedparameter\c!frameradius\edef\ovalrad{\the\scratchdimen}%
- \doifelse{#1}\v!on % will be a macro that handles
- {\let\ovalstr\!!plusone} % start, stop, ja, nee, aan, uit
- {\let\ovalstr\!!zerocount}% % and something \doif
- \doifelse{#2}\v!on
- {\let\ovalfil\!!plusone}
- {\let\ovalfil\!!zerocount}%
+ \edef\ovallin{\the\dimexpr\ruledlinewidth\relax}%
+ \edef\ovalrad{\the\dimexpr\framedparameter\c!backgroundradius\relax}%
+ \let\ovalstr\!!zerocount
+ \let\ovalfil\!!plusone
+ \forcecolorhack
\doovalbox\ovalwid\ovalhei\ovaldep\ovallin\ovalrad\ovalstr\ovalfil\ovalmod
\egroup}
@@ -368,13 +377,7 @@
%\edef\overlaycorner{\framedparameter\c!backgroundcorner}%
%\edef\overlayradius{\framedparameter\c!backgroundradius}%
\let\overlayoffset\backgroundoffset % we steal this one
- %\writestatus
- % {overlay}
- % {#1\space w=\overlaywidth/h+d=\overlayheight/d=\overlaydepth]}%
\setbox\scratchbox\hbox{\lower\overlaydepth\hbox{\the\everyoverlay#2}}%
-% \dimen0=\dimexpr\wd\scratchbox-\overlaywidth \relax
-% \dimen2=\dimexpr\ht\scratchbox-\frameddimenht\relax % not overlayheight !
-% \setbox\scratchbox\hbox{\hskip-.5\dimen0\raise-.5\dimen2\box\scratchbox}%
\setbox\scratchbox\hbox
{\hskip-.5\dimexpr\wd\scratchbox-\overlaywidth \relax
\raise-.5\dimexpr\ht\scratchbox-\frameddimenht\relax % not overlayheight !
@@ -417,24 +420,59 @@
% %D purpose, the name of the current background is available in
% %D \type {\currentbackgound}.
+%D The content of the box will be (temporary) saved in a box. We
+%D also have an extra box for backgrounds.
+
+\newbox\framebox
\newbox\extraframebox
\newtoks\everybackgroundbox
\let\currentbackground\empty
-\def\dodobackgroundbox#1% also less passing, we can get rid of the old method
+% \def\dodobackgroundbox#1% also less passing, we can get rid of the old method
+% {\bgroup
+% \def\currentbackground{#1}%
+% \the\everybackgroundbox
+% \setbox\extraframebox\hbox
+% {\vbox{\moveleft\backgroundoffset\hbox{\executeifdefined{\??ov\currentbackground}\donothing}}}%
+% \wd\extraframebox\zeropoint % \backgroundwidth
+% \ht\extraframebox\backgroundheight
+% \dp\extraframebox\backgrounddepth
+% \box\extraframebox % \hskip-\backgroundwidth
+% \egroup}
+
+% \def\dodobackgroundbox#1% also less passing, we can get rid of the old method
+% {\bgroup
+% \def\currentbackground{#1}%
+% \ifcsname\??ov\currentbackground\endcsname
+% \the\everybackgroundbox
+% \setbox\extraframebox\hbox{\vbox{\moveleft\backgroundoffset\hbox{\csname\??ov\currentbackground\endcsname}}}%
+% \wd\extraframebox\zeropoint % \backgroundwidth
+% \ht\extraframebox\backgroundheight
+% \dp\extraframebox\backgrounddepth
+% \box\extraframebox % \hskip-\backgroundwidth
+% \fi
+% \egroup}
+
+\def\dodobackgroundbox
{\bgroup
- \def\currentbackground{#1}%
- \the\everybackgroundbox
- \setbox\extraframebox\hbox
- {\vbox{\moveleft\backgroundoffset\hbox{\executeifdefined{\??ov\currentbackground}\donothing}}}%
- \wd\extraframebox\zeropoint % \backgroundwidth
- \ht\extraframebox\backgroundheight
- \dp\extraframebox\backgrounddepth
- \box\extraframebox % \hskip-\backgroundwidth
+ \ifcsname\??ov\currentbackground\endcsname
+ \the\everybackgroundbox
+ \setbox\extraframebox\hbox{\vbox{\moveleft\backgroundoffset\hbox{\csname\??ov\currentbackground\endcsname}}}%
+ \wd\extraframebox\zeropoint % \backgroundwidth
+ \ht\extraframebox\backgroundheight
+ \dp\extraframebox\backgrounddepth
+ \box\extraframebox % \hskip-\backgroundwidth
+ \fi
\egroup}
+\def\dododobackgroundbox#1,#2% #2 gobbles spaces
+ {\edef\currentbackground{#1}%
+ \ifx\currentbackground\s!unknown\else
+ \dodobackgroundbox\expandafter\dododobackgroundbox
+ \fi#2}
+
\let\backgroundoffset\!!zeropoint
\let\backgrounddepth \!!zeropoint
\def\backgroundwidth {\the\hsize}
@@ -442,6 +480,35 @@
% todo: also \def\theforegroundbox{#1}
+% \def\dobackgroundbox#1%
+% {\setbox\framebox\vbox
+% {\forgetall
+% \boxmaxdepth\maxdimen
+% \scratchdimen \framedparameter{#1}\relax
+% \frameddimenwd\dimexpr\wd\framebox+2\scratchdimen\relax
+% \frameddimenht\dimexpr\ht\framebox+ \scratchdimen\relax
+% \frameddimendp\dimexpr\dp\framebox+ \scratchdimen+\framedparameter\c!backgrounddepth\relax
+% \edef\backgroundoffset{\the\scratchdimen}%
+% \edef\backgroundwidth {\the\wd\framebox}%
+% \edef\backgroundheight{\the\ht\framebox}%
+% \edef\backgrounddepth {\the\dp\framebox}%
+% %\edef\foregroundbox{\box#1}%
+% \def\foregroundbox% fuzzy but needed hack, this \vss, otherwise
+% {\vbox to \backgroundheight{\vss\box\framebox\vss}}% vertical shift
+% \edef\component{\framedparameter\c!component}%
+% \hbox to \backgroundwidth % in case 'foreground' is used as overlay
+% {\ifx\component\empty
+% \rawprocesscommalist[\framedbackground]\dodobackgroundbox
+% \else
+% \startlayoutcomponent{b:\component}{\s!background\space\component}%
+% \rawprocesscommalist[\framedbackground]\dodobackgroundbox
+% \stoplayoutcomponent
+% \fi
+% \box\framebox\hss}}}
+
+\def\normalforegroundbox% fuzzy but needed hack, this \vss, otherwise
+ {\vbox to \backgroundheight{\vss\box\framebox\vss}}% vertical shift
+
\def\dobackgroundbox#1%
{\setbox\framebox\vbox
{\forgetall
@@ -455,15 +522,14 @@
\edef\backgroundheight{\the\ht\framebox}%
\edef\backgrounddepth {\the\dp\framebox}%
%\edef\foregroundbox{\box#1}%
- \def\foregroundbox% fuzzy but needed hack, this \vss, otherwise
- {\vbox to \backgroundheight{\vss\box\framebox\vss}}% vertical shift
\edef\component{\framedparameter\c!component}%
+ \let\foregroundbox\normalforegroundbox
\hbox to \backgroundwidth % in case 'foreground' is used as overlay
{\ifx\component\empty
- \expanded{\rawprocesscommalist[\framedparameter\c!background]}\dodobackgroundbox
+ \expanded{\dododobackgroundbox\framedparameter\c!background},\s!unknown,\relax
\else
\startlayoutcomponent{b:\component}{background \component}%
- \expanded{\rawprocesscommalist[\framedparameter\c!background]}\dodobackgroundbox
+ \expanded{\dododobackgroundbox\framedparameter\c!background},\s!unknown,\relax
\stoplayoutcomponent
\fi
\box\framebox\hss}}}
@@ -482,12 +548,14 @@
%D by \TEX\ itself, the latter one depends on the driver. This
%D macro also support a negative offset.
+\ifx\scratchoffset\undefined \newdimen\scratchoffset \fi
+
\def\dooutlinebox % we needed to move the color command in order to apply attributes properly
{\setbox\framebox\vbox % rules on top of box
- {\scratchdimen \framedparameter\c!frameoffset\relax
- \frameddimenwd\dimexpr\wd\framebox+2\scratchdimen\relax
- \frameddimenht\dimexpr\ht\framebox+ \scratchdimen\relax
- \frameddimendp\dimexpr\dp\framebox+ \scratchdimen+\framedparameter\c!framedepth\relax
+ {\scratchoffset \framedparameter\c!frameoffset\relax
+ \frameddimenwd\dimexpr\wd\framebox+2\scratchoffset\relax
+ \frameddimenht\dimexpr\ht\framebox+ \scratchoffset\relax
+ \frameddimendp\dimexpr\dp\framebox+ \scratchoffset+\framedparameter\c!framedepth\relax
\ifdim\frameddimendp<\zeropoint
\advance\frameddimenht \frameddimendp
\scratchdimen-\frameddimendp
@@ -499,7 +567,7 @@
{\doifsomething{\framedparameter\c!framecolor}{\color[\framedparameter\c!framecolor]}{\dostrokedbox}}%
\setbox\extraframebox\hbox
{\raise\scratchdimen\vbox
- {\moveleft\framedparameter\c!frameoffset
+ {\moveleft\scratchoffset
\box\extraframebox}}%
\wd\extraframebox\wd\framebox
\ht\extraframebox\ht\framebox
@@ -570,11 +638,15 @@
\letvalue{r\@@frame@@\v!off\v!on}\@@frame@@rrule
\letvalue{r\@@frame@@\v!on }\@@frame@@rrule
+% no overlapping rules
+
\def\@@frame@@trules{\hbox{\kern\ruledlinewidth\vrule\!!width\dimexpr\frameddimenwd-2\ruledlinewidth\relax\!!height\ruledlinewidth}\nointerlineskip\kern-\ruledlinewidth}
\def\@@frame@@brules{\kern-\ruledlinewidth\nointerlineskip\hbox{\kern\ruledlinewidth\vrule\!!width\dimexpr\frameddimenwd-2\ruledlinewidth\relax\!!height\ruledlinewidth}}
\def\@@frame@@rrules{\kern-\ruledlinewidth\vrule\!!height\dimexpr\frameddimenht-\ruledlinewidth\relax\!!depth-\ruledlinewidth\!!width\ruledlinewidth}
\def\@@frame@@lrules{\vrule\!!height\dimexpr\frameddimenht-\ruledlinewidth\relax\!!depth-\ruledlinewidth\!!width\ruledlinewidth\kern-\ruledlinewidth}
+% small is relatively new
+
\letvalue{t\@@frame@@\v!small\v!small}\@@frame@@trules
\letvalue{t\@@frame@@\v!off \v!small}\@@frame@@trules
\letvalue{t\@@frame@@\v!small }\@@frame@@trules
@@ -608,14 +680,6 @@
% frame=off,rightframe=small,leftframe=small,topframe=small,bottomframe=on]
% {}
-%D Before we come to using these macros we yet have to define
-%D the rounded corner alternative, which after all is not that
-%D hard because it uses the previously defined macro \type
-%D {\doroundedbox}.
-
-\def\dostrokedroundbox
- {\doif{\framedparameter\c!frame}\v!on{\doroundedbox\v!on\v!off{\framedparameter\c!framecorner}}}
-
%D The next few macros are probably the most misused ones in
%D \CONTEXT. They deal with putting rules around boxes, provide
%D backgrounds, offer alignment features, and some more. We
@@ -638,14 +702,6 @@
\newdimen\@@localoffset
\newdimen\@@globalwidth
-%D The content of the box will be (temporary) saved in a box:
-
-\newbox\framebox
-
-%D We also need a box for outlines and backgrounds:
-
-\newbox\extraframebox
-
%D \macros
%D {framed, setupframed}
%D
@@ -668,28 +724,67 @@
\unexpanded\def\framed
{\bgroup
- \presetlocalframed[\??ol]%
+ \copylocalframed[\??ol][\??oi]% == \presetlocalframed[\??ol]%
\dodoubleempty\startlocalframed[\??ol]}
\def\presetlocalframed[#1]%
{\copylocalframed[#1][\??oi]}
+% \def\copylocalframed[#1]#2[#3]%
+% {\copyparameters[#1][#3]%
+% [\c!width,\c!height,\c!radius,\c!corner,\c!depth,\c!offset,%
+% \c!autowidth,\c!empty,\c!component,\c!orientation,\c!lines,%
+% \c!align,\c!bottom,\c!top,\c!strut,\c!autostrut,\c!location,\c!setups,\c!extras,%
+% \c!foregroundstyle,\c!foregroundcolor,%
+% \c!background,\c!backgroundoffset,\c!backgroundcorner,\c!backgroundradius,\c!backgrounddepth,\c!backgroundcolor,\c!backgroundscreen,%
+% \c!frame,\c!frameoffset,\c!framecorner,\c!frameradius,\c!framedepth,\c!framecolor,\c!rulethickness,%
+% \c!topframe,\c!bottomframe,\c!leftframe,\c!rightframe]}
+
+% since framed is used all over the place, we have a (small) speedup)
+
\def\copylocalframed[#1]#2[#3]%
- {\copyparameters[#1][#3]%
- [\c!width,\c!height,\c!autowidth,\c!offset,\c!empty,\c!rulethickness,%
- \c!radius,\c!corner,\c!depth,\c!frame,\c!framecolor,%
- \c!foregroundstyle,\c!foregroundcolor,\c!lines,\c!orientation,%
- \c!topframe,\c!bottomframe,\c!leftframe,\c!rightframe,%
- \c!rulethickness,\c!frameoffset,\c!background,\c!component,%
- \c!backgroundoffset,\c!backgroundscreen,\c!backgroundcolor,%
- \c!align,\c!bottom,\c!top,\c!strut,\c!autostrut,\c!location,\c!setups,\c!extras]%
- \copyparameters[#1\c!background][#1]%
- [\c!radius,\c!corner,\c!depth]%
- \copyparameters[#1\c!frame][#1]%
- [\c!radius,\c!corner,\c!depth]}
-
-% \def\setupframed
-% {\dodoubleargument\getparameters[\??oi]}
+ {\edef\copiedfrom{#1}\edef\copiedto{#3}%
+ \docopyvalue\copiedfrom\copiedto\c!width
+ \docopyvalue\copiedfrom\copiedto\c!height
+ \docopyvalue\copiedfrom\copiedto\c!autowidth
+ \docopyvalue\copiedfrom\copiedto\c!offset
+ \docopyvalue\copiedfrom\copiedto\c!empty
+ \docopyvalue\copiedfrom\copiedto\c!rulethickness
+ \docopyvalue\copiedfrom\copiedto\c!radius
+ \docopyvalue\copiedfrom\copiedto\c!corner
+ \docopyvalue\copiedfrom\copiedto\c!depth
+ \docopyvalue\copiedfrom\copiedto\c!frame
+ \docopyvalue\copiedfrom\copiedto\c!framecolor
+ \docopyvalue\copiedfrom\copiedto\c!foregroundstyle
+ \docopyvalue\copiedfrom\copiedto\c!foregroundcolor
+ \docopyvalue\copiedfrom\copiedto\c!lines
+ \docopyvalue\copiedfrom\copiedto\c!orientation
+ \docopyvalue\copiedfrom\copiedto\c!topframe
+ \docopyvalue\copiedfrom\copiedto\c!bottomframe
+ \docopyvalue\copiedfrom\copiedto\c!leftframe
+ \docopyvalue\copiedfrom\copiedto\c!rightframe
+ \docopyvalue\copiedfrom\copiedto\c!rulethickness
+ \docopyvalue\copiedfrom\copiedto\c!frameoffset
+ \docopyvalue\copiedfrom\copiedto\c!background
+ \docopyvalue\copiedfrom\copiedto\c!component
+ \docopyvalue\copiedfrom\copiedto\c!backgroundoffset
+ \docopyvalue\copiedfrom\copiedto\c!backgroundscreen
+ \docopyvalue\copiedfrom\copiedto\c!backgroundcolor
+ \docopyvalue\copiedfrom\copiedto\c!align
+ \docopyvalue\copiedfrom\copiedto\c!bottom
+ \docopyvalue\copiedfrom\copiedto\c!top
+ \docopyvalue\copiedfrom\copiedto\c!strut
+ \docopyvalue\copiedfrom\copiedto\c!autostrut
+ \docopyvalue\copiedfrom\copiedto\c!location
+ \docopyvalue\copiedfrom\copiedto\c!component
+ \docopyvalue\copiedfrom\copiedto\c!extras
+ \docopyvalue\copiedfrom\copiedto\c!setups
+ \docopyvalue\copiedfrom\copiedto\c!backgroundradius
+ \docopyvalue\copiedfrom\copiedto\c!backgroundcorner
+ \docopyvalue\copiedfrom\copiedto\c!backgrounddepth
+ \docopyvalue\copiedfrom\copiedto\c!frameradius
+ \docopyvalue\copiedfrom\copiedto\c!framecorner
+ \docopyvalue\copiedfrom\copiedto\c!framedepth}
\def\setupframed
{\dodoubleempty\dosetupframed}
@@ -773,17 +868,21 @@
% \edef\doframedsetups{\noexpand\setups[\doframedsetups]}%
% \fi
\removeframedboxdepth
- \docolorframebox
+ \edef\framedforegroundcolor{\framedparameter\c!foregroundcolor}%
+ \ifx\framedforegroundcolor\empty\else\docolorframebox\fi
\edef\overlaylinecolor{\framedparameter\c!framecolor}%
\edef\overlaylinewidth{\the\ruledlinewidth}%
\edef\@@localframing {\framedparameter\c!frame}%
\ifx\@@localframing\v!overlay \else \ifx\@@localframing\v!none \else
- \doifvaluesomething{\@@framed\c!rulethickness}
- {\ruledlinewidth\framedparameter\c!rulethickness\relax
- \ifinheritruledlinewidth\linewidth\ruledlinewidth\fi}%
+ \edef\framedrulethickness{\framedparameter\c!rulethickness}%
+ \ifx\framedrulethickness\empty\else
+ \ruledlinewidth\framedrulethickness\relax
+ \ifinheritruledlinewidth\linewidth\ruledlinewidth\fi
+ \fi
\dooutlinebox % real or invisible frame
\fi \fi
- \doifvaluesomething{\@@framed\c!background}\dobackedbox
+ \edef\framedbackground{\framedparameter\c!background}%
+ \ifx\framedbackground\empty\else\dobackedbox\fi
\restoreframedboxdepth
\box\framebox
\egroup}
@@ -863,9 +962,11 @@
\boxhasframetrue
\fi\fi
\ifboxhasframe
- \doifvaluesomething{\@@framed\c!rulethickness}
- {\ruledlinewidth\framedparameter\c!rulethickness\relax
- \ifinheritruledlinewidth\linewidth\ruledlinewidth\fi}%
+ \edef\framedrulethickness{\framedparameter\c!rulethickness}%
+ \ifx\framedrulethickness\empty\else
+ \ruledlinewidth\framedrulethickness\relax
+ \ifinheritruledlinewidth\linewidth\ruledlinewidth\fi
+ \fi
\else
\ruledlinewidth\zeropoint
\fi
@@ -1089,7 +1190,7 @@
\def\stoplocalframed
{\dontshowcomposition
- \@@stopframedorientation % hm, wrong place ! should rotatethe result (after reshape)
+ \@@stopframedorientation % hm, wrong place ! should rotate the result (after reshape)
\stopregistercolor
\handleframedlocator\c!before\@@locallocation
\ifboxhasformat
@@ -1123,7 +1224,8 @@
\ht\scratchbox\ht\framebox
\dp\scratchbox\dp\framebox
\setbox\framebox\box\scratchbox}%
- \docolorframebox
+ \edef\framedforegroundcolor{\framedparameter\c!foregroundcolor}%
+ \ifx\framedforegroundcolor\empty\else\docolorframebox\fi
\ifboxhasoffset
\dooffsetframebox
\fi
@@ -1140,7 +1242,8 @@
\ifboxhasframe % real or invisible frame
\dooutlinebox
\fi
- \doifvaluesomething{\@@framed\c!background}\dobackedbox
+ \edef\framedbackground{\framedparameter\c!background}%
+ \ifx\framedbackground\empty\else\dobackedbox\fi
\handleframedlocator\c!after\@@locallocation
\box\framebox
\egroup
@@ -1766,57 +1869,59 @@
\chardef\reshapeframeboxmethod\plusone % 0=no flush, 1=old method 2=no depth messing
+\def\shapeboxstrut % put this in front if needed !
+ {\vrule\!!width\zeropoint\!!height\ht\shapebox\!!depth\dp\shapebox}
+
\let\framedboxwidth \!!zeropoint
\let\framedboxheight\!!zeropoint
\let\framedboxdepth \!!zeropoint
-\def\shapeboxstrut % put this in front if needed !
- {\vrule\!!width\zeropoint\!!height\ht\shapebox\!!depth\dp\shapebox}
-
\def\doreshapeframedbox % frozen, that is ... \shapeboxstrut added
- {\beginofshapebox
- \unvcopy\framebox
- \endofshapebox
- \edef\framedboxwidth {\the\wd\framebox}%
- \edef\framedboxheight{\the\ht\framebox}%
- \edef\framedboxdepth {\the\dp\framebox}%
- \global\@@globalwidth\zeropoint
- \resetshapeframebox
- \reshapebox
- {\setbox0\hbox
- {\strut\ifhbox\shapebox\shapeboxstrut\unhbox\else\box\fi\shapebox}%
- \global\advance\framednoflines \plusone
- \ifdim\framedlastlength>\zeropoint\else
- \global\framedlastlength\wd0
- \fi
- \ifdim\wd0>\@@globalwidth
- \global\@@globalwidth\wd0
- \fi}%
- \ifreshapingfailed
- % no need for anothr pass or finalizer
- \else
- \dosetraggedcommand\localformat
- \raggedcommand
- \ifboxhasheight
- \setbox\framebox\vbox to \localheight
- {\hsize\@@globalwidth
- \reshapebox{\hbox to \hsize{\ifhbox\shapebox\shapeboxstrut\unhbox\else\box\fi\shapebox}}%
- \dobeforeframedbox
- \innerflushshapebox
- \doafterframedbox}%
- \else
- \setbox\framebox\vbox to \framedboxheight % \ht\framebox
- {\hsize\@@globalwidth
- \reshapebox{\hbox to \hsize{\ifhbox\shapebox\shapeboxstrut\unhbox\else\box\fi\shapebox}}%
- \ifcase\reshapeframeboxmethod
- \or \innerflushshapebox \or \innerflushshapebox
- \fi}%
- \ifcase\reshapeframeboxmethod \or
- \dp\framebox\framedboxdepth % \strutdp otherwise problem with math
+ {\ifvbox\framebox
+ \beginofshapebox
+ \unvcopy\framebox
+ \endofshapebox
+ \global\@@globalwidth\zeropoint
+ \edef\framedboxwidth {\the\wd\framebox}%
+ \edef\framedboxheight{\the\ht\framebox}%
+ \edef\framedboxdepth {\the\dp\framebox}%
+ \resetshapeframebox
+ \reshapebox
+ {\setbox0\hbox
+ {\strut\ifhbox\shapebox\shapeboxstrut\unhbox\else\box\fi\shapebox}%
+ \global\advance\framednoflines \plusone
+ \ifdim\framedlastlength>\zeropoint\else
+ \global\framedlastlength\wd0
\fi
- \fi
- \ifdim\framedlastlength=\zeropoint\global\framedlastlength\wd\framebox\fi
- \ifcase\framednoflines\global\framednoflines\plusone\fi
+ \ifdim\wd0>\@@globalwidth
+ \global\@@globalwidth\wd0
+ \fi}%
+ \ifreshapingfailed
+ % no need for anothr pass or finalizer
+ \else
+ \dosetraggedcommand\localformat
+ \raggedcommand
+ \ifboxhasheight
+ \setbox\framebox\vbox to \localheight
+ {\hsize\@@globalwidth
+ \reshapebox{\hbox to \hsize{\ifhbox\shapebox\shapeboxstrut\unhbox\else\box\fi\shapebox}}%
+ \dobeforeframedbox
+ \innerflushshapebox
+ \doafterframedbox}%
+ \else
+ \setbox\framebox\vbox to \framedboxheight % \ht\framebox
+ {\hsize\@@globalwidth
+ \reshapebox{\hbox to \hsize{\ifhbox\shapebox\shapeboxstrut\unhbox\else\box\fi\shapebox}}%
+ \ifcase\reshapeframeboxmethod
+ \or \innerflushshapebox \or \innerflushshapebox
+ \fi}%
+ \ifcase\reshapeframeboxmethod \or
+ \dp\framebox\framedboxdepth % \strutdp otherwise problem with math
+ \fi
+ \fi
+ \ifdim\framedlastlength=\zeropoint\global\framedlastlength\wd\framebox\fi
+ \ifcase\framednoflines\global\framednoflines\plusone\fi
+ \fi
\fi}
%D The two variables \type {\framednoflines} and \type
@@ -1852,7 +1957,7 @@
%D \bgroup
%D \startalignment[middle]
%D \vss
-%D \leavevmode\vbox to .8\vsize
+%D \dontleavehmode\vbox to .8\vsize
%D \bgroup
%D \hsize=300pt
%D \setupframed
@@ -1866,17 +1971,17 @@
%D {backgroundoffset=\framedparameter\c!backgroundoffset\\
%D frameoffset=\framedparameter\c!frameoffset\\
%D depth=\framedparameter\c!depth}
-%D \leavevmode \ruledhbox{\framed[backgroundoffset=0pt,frameoffset=0pt]{\status}}
+%D \dontleavehmode \ruledhbox{\framed[backgroundoffset=0pt,frameoffset=0pt]{\status}}
%D \vss
-%D \leavevmode \ruledhbox{\framed[backgroundoffset=5pt,frameoffset=0pt]{\status}}
+%D \dontleavehmode \ruledhbox{\framed[backgroundoffset=5pt,frameoffset=0pt]{\status}}
%D \vss
-%D \leavevmode \ruledhbox{\framed[backgroundoffset=0pt,frameoffset=5pt]{\status}}
+%D \dontleavehmode \ruledhbox{\framed[backgroundoffset=0pt,frameoffset=5pt]{\status}}
%D \vss
-%D \leavevmode \ruledhbox{\framed[backgroundoffset=2pt,frameoffset=5pt]{\status}}
+%D \dontleavehmode \ruledhbox{\framed[backgroundoffset=2pt,frameoffset=5pt]{\status}}
%D \vss
-%D \leavevmode \ruledhbox{\framed[backgroundoffset=5pt,frameoffset=2pt]{\status}}
+%D \dontleavehmode \ruledhbox{\framed[backgroundoffset=5pt,frameoffset=2pt]{\status}}
%D \vss
-%D \leavevmode \ruledhbox{\framed[backgroundoffset=5pt,frameoffset=5pt]{\status}}
+%D \dontleavehmode \ruledhbox{\framed[backgroundoffset=5pt,frameoffset=5pt]{\status}}
%D \egroup
%D \vss
%D \stopalignment
@@ -1963,8 +2068,8 @@
%\endgraf\nointerlineskip\localbegstrut
\endgraf\obeydepth\nointerlineskip
\moveleft\dimen4\box0
- \endgraf\nointerlineskip\localbegstrut
- \egroup}
+ \endgraf\nointerlineskip\localbegstrut % beware, we might kill it in a style using \vskip\lineheight
+ \egroup} % so this must not be changed
\def\hboxedhairline % use framed dimen
{\bgroup
@@ -2672,6 +2777,19 @@
\setfalse\framedtextlocationnone
+\def\checkframedtext % messy dependency
+ {\ifinsidefloat
+ \localhsize\hsize
+ \else\ifdim\sidefloatvsize>\zeropoint % will be proper handle
+ % \strut % rather clean way to invoke the sidefloat OTR
+ % \setbox0=\lastbox % and get the widths set, so from now on we
+ % \setlocalhsize % can have framed texts alongside sidefloats
+ \checksidefloat
+ \setlocalhsize
+ \else
+ \localhsize\hsize
+ \fi\fi}
+
\def\dododostartframedtext[#1][#2][#3]% #3 only passed to framed, not to framedtext
{\doifsomething{#2}{\setvalue{\??kd#1\c!location}{#2}}% does not listen to #3
\setfalse\framedtextlocationnone
@@ -3379,6 +3497,9 @@
%{\doifsomething{#1}{\dobackgroundline{#1}}\hbox}
{\doifcolorelse{#1}{\dobackgroundline{#1}\hbox}\hbox}
+% \def\backgroundline[#1]%
+% {\doifcolor{#1}{\dobackgroundline{#1}}\hbox}
+
\def\dobackgroundline#1%
{\dowithnextbox
{\hbox
@@ -3429,6 +3550,12 @@
\c!backgroundoffset=\!!zeropoint,
\c!framecolor=,
\c!frameoffset=\!!zeropoint,
+ \c!backgroundcorner=\framedparameter\c!corner,
+ \c!backgroundradius=\framedparameter\c!radius,
+ \c!backgrounddepth=\framedparameter\c!depth,
+ \c!framecorner=\framedparameter\c!corner,
+ \c!frameradius=\framedparameter\c!radius,
+ \c!framedepth=\framedparameter\c!depth,
\c!component=,
\c!align=,
\c!bottom=\vss,
diff --git a/Master/texmf-dist/tex/context/base/pack-rul.mkiv b/Master/texmf-dist/tex/context/base/pack-rul.mkiv
new file mode 100644
index 00000000000..26fdaadeaf5
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/pack-rul.mkiv
@@ -0,0 +1,3585 @@
+%D \module
+%D [ file=pack-rul, % was core-rul,
+%D version=1998.10.16,
+%D title=\CONTEXT\ Packaging Macros,
+%D subtitle=Ruled Content,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Packaging Macros / Ruled Content}
+
+%D After a few months testing this solution is now added
+%D to the core. This introduces a possible incompatibility
+%D between \MKII\ and \MKIV\ but for the better.
+
+\registerctxluafile{pack-rul}{1.001}
+
+% old off new
+% 4 lines oeps : 3.6 2.8 3.0
+% tufte 7.5 4.1 4.3
+
+\unprotect
+
+%D We have removed the rather old and out dated raster methods. They
+%D have not been used for ages. You can still find the old code in
+%D the \MKII\ counterpart of this module.
+
+%D This module is rather optimized so sometimes readability has been
+%D sacrisfied for speed. This is because the framing mechanism is used
+%D all over the place.
+
+%D \macros
+%D {linewidth, setuplinewidth}
+%D
+%D This module deals with rules (lines) in several ways. First
+%D we introduce two macros that can be used to set some common
+%D characteristics.
+%D
+%D \showsetup{setuplinewidth}
+%D
+%D The linewidth is available in \type{\linewidth}. The
+%D preset value of .4pt equals the default hard coded \TEX\
+%D rule width.
+
+\newdimen\linewidth
+
+\def\dosetuplinewidth[#1]%
+ {\assigndimension{#1}\linewidth{.2\points}{.4\points}{.6\points}}
+
+\def\setuplinewidth
+ {\dosingleargument\dosetuplinewidth}
+
+%D \macros
+%D {ruledlinewidth, inheritruledlinewidth}
+%D
+%D Inside framed boxed we will use a private dimensions. As
+%D an option one can let the linewidth inherit its value from
+%D this one.
+
+\newdimen\ruledlinewidth \newif\ifinheritruledlinewidth
+
+%D \macros
+%D {setupscreens}
+%D
+%D The previous macro uses a predefined constant
+%D \type{\@@rsfactor}. This factor can be set by:
+%D
+%D \showsetup{setupscreens}
+
+\def\setupscreens
+ {\dodoubleargument\getparameters[\??rs]}
+
+%D We will communicate through module specific variables, current
+%D framed parameters and some reserved dimension registers.
+
+\newdimen \frameddimenwd
+\newdimen \frameddimenht
+\newdimen \frameddimendp
+
+%D We don't have to stick to a \TEX\ drawn rule, but
+%D also can use rounded or even fancier shapes, as we will
+%D see later on.
+
+\def\dofilledbox
+ {\bgroup
+ \edef\@@framedfilledmod{\framedparameter\c!backgroundcorner}%
+ \ifx\@@framedfilledmod\v!rectangular
+ \dofilledlinedbox
+ \else\ifzeropt\dimexpr\framedparameter\c!backgroundradius\relax % just in case of .x\bodyfontsize
+ \dofilledlinedbox
+ \else
+ \dofilledroundbox
+ \fi\fi
+ \egroup}
+
+\def\dophantombox
+ {\hphantom{\dofilledbox}}
+
+\def\dofilledlinedbox
+ {\vrule\!!width\frameddimenwd\!!height\frameddimenht\!!depth\frameddimendp\relax}%
+
+\def\dostrokedroundbox
+ {\doif{\framedparameter\c!frame}\v!on\dodostrokedroundbox}
+
+\def\dodostrokedroundbox
+ {\bgroup
+ \edef\ovalmod{\framedparameter\c!framecorner}%
+ \ifx\ovalmod\v!round
+ \let\ovalmod\!!zerocount
+ \else
+ \edef\ovalmod{\number\ovalmod}%
+ \fi
+ \edef\ovalwid{\the\frameddimenwd}%
+ \edef\ovalhei{\the\frameddimenht}%
+ \edef\ovaldep{\the\frameddimendp}%
+ \edef\ovallin{\the\dimexpr\ruledlinewidth}%
+ \edef\ovalrad{\the\dimexpr\framedparameter\c!frameradius}%
+ \let\ovalstr\!!plusone
+ \let\ovalfil\!!zerocount
+% \forcecolorhack
+ \doovalbox\ovalwid\ovalhei\ovaldep\ovallin\ovalrad\ovalstr\ovalfil\ovalmod
+ \egroup}
+
+\def\dofilledroundbox
+ {\bgroup
+ \edef\ovalmod{\framedparameter\c!backgroundcorner}%
+ \ifx\ovalmod\v!round
+ \let\ovalmod\!!zerocount
+ \else
+ \edef\ovalmod{\number\ovalmod}%
+ \fi
+ \edef\ovalwid{\the\frameddimenwd}%
+ \edef\ovalhei{\the\frameddimenht}%
+ \edef\ovaldep{\the\frameddimendp}%
+ \edef\ovallin{\the\dimexpr\ruledlinewidth\relax}%
+ \edef\ovalrad{\the\dimexpr\framedparameter\c!backgroundradius\relax}%
+ \let\ovalstr\!!zerocount
+ \let\ovalfil\!!plusone
+% \forcecolorhack
+ \doovalbox\ovalwid\ovalhei\ovaldep\ovallin\ovalrad\ovalstr\ovalfil\ovalmod
+ \egroup}
+
+% a lot of weird corners
+%
+% \startTEXpage
+% \dontleavehmode\framed
+% [corner=0,frame=on,framecolor=green,
+% background=color,backgroundcolor=yellow]{\tttf TEST \twodigits\recurselevel}%
+% \vskip1em
+% \dontleavehmode\dostepwiserecurse {1} {4}{1}{\framed
+% [corner=\recurselevel,frame=on,framecolor=green,
+% background=color,backgroundcolor=yellow]{\tttf TEST \twodigits\recurselevel}%
+% \quad}
+% \vskip1em
+% \dontleavehmode\dostepwiserecurse {5} {8}{1}{\framed
+% [corner=\recurselevel,frame=on,framecolor=green,
+% background=color,backgroundcolor=yellow]{\tttf TEST \twodigits\recurselevel}%
+% \quad}
+% \vskip1em
+% \dontleavehmode\dostepwiserecurse {1} {4}{1}{\framed
+% [corner=\recurselevel,frame=on,framecolor=green]{\tttf TEST \twodigits\recurselevel}%
+% \quad}
+% \vskip1em
+% \dontleavehmode\dostepwiserecurse {5} {8}{1}{\framed
+% [corner=\recurselevel,frame=on,framecolor=green]{\tttf TEST \twodigits\recurselevel}%
+% \quad}
+% \vskip1em
+% \dontleavehmode\dostepwiserecurse {9}{12}{1}{\framed
+% [corner=\recurselevel,frame=on,framecolor=green]{\tttf TEST \twodigits\recurselevel}%
+% \quad}
+% \vskip1em
+% \dontleavehmode\dostepwiserecurse{13}{16}{1}{\framed
+% [corner=\recurselevel,frame=on,framecolor=green]{\tttf TEST \twodigits\recurselevel}%
+% \quad}
+% \vskip1em
+% \dontleavehmode\dostepwiserecurse{17}{20}{1}{\framed
+% [corner=\recurselevel,frame=on,framecolor=green]{\tttf TEST \twodigits\recurselevel}%
+% \quad}
+% \vskip1em
+% \dontleavehmode\dostepwiserecurse{21}{24}{1}{\framed
+% [corner=\recurselevel,frame=on,framecolor=green]{\tttf TEST \twodigits\recurselevel}%
+% \quad}
+% \vskip1em
+% \dontleavehmode\dostepwiserecurse{25}{28}{1}{\framed
+% [corner=\recurselevel,frame=on,framecolor=green]{\tttf TEST \twodigits\recurselevel}%
+% \quad}
+% \stopTEXpage
+
+%D The oval box is drawn using a special macro, depending on
+%D the driver in use.
+
+\def\dograybox % avoid black rules when no gray
+ {\doifelsenothing{\framedparameter\c!backgroundscreen}
+ {\dophantombox}
+ {\raster[\framedparameter\c!backgroundscreen]{\dofilledbox}}}
+
+%D It won't be a surprise that we not only provide gray boxes,
+%D but also colored ones. Here it is:
+
+\def\dobackgroundcolorbox
+ {\hbox{\faststartcolor[\framedbackgroundcolor]\dofilledbox\faststopcolor}}
+ %{\hbox{\doactivatecolor\framedbackgroundcolor\dofilledbox}}
+
+\def\docolorbox % can be more of \color[] -> \faststartcolor in mkiv
+ {\ifincolor
+ \edef\framedbackgroundcolor{\framedparameter\c!backgroundcolor}%
+ \ifx\framedbackgroundcolor\empty
+ \dophantombox
+ \else
+ \doifcolorelse\framedbackgroundcolor\dobackgroundcolorbox\dophantombox
+ \fi
+ \else
+ \dophantombox
+ \fi}
+
+%D \macros
+%D {defineoverlay, doifoverlayelse, overlayoffset,
+%D overlaywidth, overlayheight, overlaydepth,
+%D overlaycolor, overlaylinecolor, overlaylinewidth}
+%D
+%D Before we define the macro that actually takes card of the
+%D backgrounds, we introduce overlays. An overlay is something
+%D that contrary to its name lays {\em under} the text. An
+%D example of an overlay definition is:
+%D
+%D \startbuffer[tmp-1]
+%D \defineoverlay
+%D [fancy]
+%D [{\externalfigure
+%D [mp-cont.502]
+%D [width=\overlaywidth,
+%D height=\overlayheight]}]
+%D \stopbuffer
+%D
+%D \typebuffer[tmp-1]
+%D
+%D That for instance can be uses in:
+%D
+%D \startbuffer[tmp-2]
+%D \framed[backgroundachtergrond=fancy]{How Fancy!}
+%D \framed[backgroundachtergrond=fancy,frame=off]{Even More Fancy!}
+%D \stopbuffer
+%D
+%D and looks like:
+%D
+%D \startlinecorrection
+%D \vbox{\baselineskip24pt\getbuffer[tmp-1]\getbuffer[tmp-2]}
+%D \stoplinecorrection
+%D
+%D The formal definition is:
+%D
+%D \showsetup{defineoverlay}
+%D
+%D This macro's definition is a bit obscure, due the many
+%D non||used arguments and the two step call that enable the
+%D setting of the width, height and depth variables.
+%D Multiple backgrounds are possible and are specified as:
+%D
+%D \starttyping
+%D \framed[background={one,two,three}]{Three backgrounds!}
+%D \stoptyping
+%D
+%D Most drawing packages only know width and height. Therefore
+%D the dimensions have a slightly different meaning here:
+%D
+%D \startitemize[packed]
+%D \item \type{\overlaywidth }: width of the overlay
+%D \item \type{\overlayheight}: height plus depth of the overlay
+%D \item \type{\overlaydepth }: depth of the overlay
+%D \stopitemize
+%D
+%D The resulting box is lowered to the right depth.
+
+\def\overlaywidth {\the\hsize\space} % We preset the variables
+\def\overlayheight {\the\vsize\space} % to some reasonable default
+\let\overlaydepth \!!zeropoint % values. The attributes
+\let\overlayoffset \!!zeropoint % of the frame can be (are)
+\let\overlaycolor \empty % set somewhere else.
+\let\overlaylinewidth \!!zeropoint %
+\let\overlaylinecolor \empty %
+
+%D The next register is used to initialize overlays.
+
+\newtoks\everyoverlay
+
+%D An example of an initialization is the following (overlays
+%D can contain text and be executed under an regime where
+%D interlineskip is off).
+
+\appendtoks \oninterlineskip \to \everyoverlay
+
+\def\defineoverlay
+ {\dodoubleargument\dodefineoverlay}
+
+\def\dodefineoverlay[#1][#2]%
+ {\def\docommand##1{\setvalue{\??ov##1}{\executedefinedoverlay{##1}{#2}}}%
+ \processcommalist[#1]\docommand}
+
+\prependtoks
+ \hsize\overlaywidth
+ \vsize\overlayheight
+\to\everyoverlay
+
+\long\def\executedefinedoverlay#1#2%
+ {\bgroup
+ \setlayoutcomponentattribute\v!overlay{#1}%
+ \edef\overlaywidth {\the\frameddimenwd\space}%
+ \edef\overlayheight{\the\dimexpr\frameddimenht+\frameddimendp\relax\space}%
+ \edef\overlaydepth {\the\frameddimendp\space}%
+ \edef\overlaycolor {\framedparameter\c!backgroundcolor}%
+ %\edef\overlaycorner{\framedparameter\c!backgroundcorner}%
+ %\edef\overlayradius{\framedparameter\c!backgroundradius}%
+ \let\overlayoffset\backgroundoffset % we steal this one
+ \setbox\scratchbox\hbox{\lower\overlaydepth\hbox{\the\everyoverlay#2}}%
+ \setbox\scratchbox\hbox \layoutcomponentboxattribute
+ {\hskip-.5\dimexpr\wd\scratchbox-\overlaywidth \relax
+ \raise-.5\dimexpr\ht\scratchbox-\frameddimenht\relax % not overlayheight !
+ \box\scratchbox}%
+ \wd\scratchbox\frameddimenwd
+ \ht\scratchbox\frameddimenht
+ \dp\scratchbox\frameddimendp
+ \box\scratchbox
+ \egroup}
+
+%D The empty case is:
+
+\let\executeoverlay\gobblesevenarguments
+
+%D For testing we provide:
+
+\def\doifoverlayelse#1%
+ {\ifcsname\??ov#1\endcsname
+ \expandafter\firstoftwoarguments
+ \else
+ \expandafter\secondoftwoarguments
+ \fi}
+
+%D We predefine two already familiar backgrounds:
+
+\setvalue{\??ov\v!screen}{\dograybox }
+\setvalue{\??ov\v!color }{\docolorbox}
+
+% %D After all these preparations, the background macro does no
+% %D bring to many surprises. One has to keep in mind that this
+% %D macro starts up a call chain, depending on the background
+% %D one needs:
+% %D
+% %D \startitemize[packed]
+% %D \item a raster, color or user defined shape
+% %D \item square or round corners
+% %D \item a \TEX\ or driver based method
+% %D \stopitemize
+% %D
+% %D The macro can be extended by adding commands to the token
+% %D list register \type {\everybackgroundbox}. For this
+% %D purpose, the name of the current background is available in
+% %D \type {\currentbackgound}.
+
+%D The content of the box will be (temporary) saved in a box. We
+%D also have an extra box for backgrounds.
+
+\newbox\framebox
+\newbox\extraframebox
+
+\newtoks\everybackgroundbox
+
+\let\currentbackground\empty
+
+\def\dodobackgroundbox
+ {\bgroup
+ \ifcsname\??ov\currentbackground\endcsname
+ \the\everybackgroundbox
+ \setbox\extraframebox\hbox{\vbox{\moveleft\backgroundoffset\hbox{\csname\??ov\currentbackground\endcsname}}}%
+ \wd\extraframebox\zeropoint % \backgroundwidth
+ \ht\extraframebox\backgroundheight
+ \dp\extraframebox\backgrounddepth
+ \box\extraframebox % \hskip-\backgroundwidth
+ \fi
+ \egroup}
+
+\def\dododobackgroundbox#1,#2% #2 gobbles spaces
+ {\edef\currentbackground{#1}%
+ \ifx\currentbackground\s!unknown\else % use $ instead of s!unknown
+ \dodobackgroundbox\expandafter\dododobackgroundbox
+ \fi#2}
+
+\let\backgroundoffset\!!zeropoint
+\let\backgrounddepth \!!zeropoint
+\def\backgroundwidth {\the\hsize}
+\def\backgroundheight{\the\vsize}
+
+\def\normalforegroundbox% fuzzy but needed hack, this \vss, otherwise
+ {\vbox to \backgroundheight{\vss\box\framebox\vss}}% vertical shift
+
+\def\dobackedbox
+ {\setbox\framebox\vbox
+ {\framedforgetall
+ \boxmaxdepth\maxdimen
+ \frameddimenwd\dimexpr\wd\framebox+2\!!framedbackgroundoffset\relax
+ \frameddimenht\dimexpr\ht\framebox+ \!!framedbackgroundoffset\relax
+ \frameddimendp\dimexpr\dp\framebox+ \!!framedbackgroundoffset+\framedparameter\c!backgrounddepth\relax
+ \edef\backgroundoffset{\the\!!framedbackgroundoffset}%
+ \edef\backgroundwidth {\the\wd\framebox}%
+ \edef\backgroundheight{\the\ht\framebox}%
+ \edef\backgrounddepth {\the\dp\framebox}%
+ %\edef\foregroundbox{\box#1}%
+ \edef\component{\framedparameter\c!component}%
+ \ifx\component\empty
+ \resetlayoutcomponentattribute
+ \else
+ \setlayoutcomponentattribute\v!background\component
+ \fi
+ \let\foregroundbox\normalforegroundbox
+ \hbox to \backgroundwidth \layoutcomponentboxattribute % width in case 'foreground' is used as overlay
+ {\expandafter\dododobackgroundbox\framedbackground,\s!unknown,\relax % hm, messy .. look into it
+ \box\framebox\hss}}}
+
+%D One can explictly insert the foreground box. For that
+%D purpose we introduce the overlay \type {foreground}.
+
+\defineoverlay[\v!foreground][\foregroundbox]
+
+%D We can specify overlays as a comma separated list of
+%D overlays, a sometimes handy feature.
+
+%D Besides backgrounds (overlays) we also need some macros to
+%D draw outlines (ruled borders). Again we have to deal with
+%D square and round corners. The first category can be handled
+%D by \TEX\ itself, the latter one depends on the driver. This
+%D macro also support a negative offset.
+
+\def\dooutlinebox % we needed to move the color command in order to apply attributes properly
+ {\setbox\framebox\vbox % rules on top of box
+ {\frameddimenwd\dimexpr\wd\framebox+2\!!framedframeoffset\relax
+ \frameddimenht\dimexpr\ht\framebox+ \!!framedframeoffset\relax
+ \frameddimendp\dimexpr\dp\framebox+ \!!framedframeoffset+\framedparameter\c!framedepth\relax
+ \ifdim\frameddimendp<\zeropoint
+ \advance\frameddimenht \frameddimendp
+ \scratchdimen-\frameddimendp
+ \frameddimendp\zeropoint
+ \else
+ \scratchdimen\zeropoint
+ \fi
+ \setbox\extraframebox\hbox
+ {\doifsomething{\framedparameter\c!framecolor}{\color[\framedparameter\c!framecolor]}{\dostrokedbox}}%
+ \setbox\extraframebox\hbox
+ {\raise\scratchdimen\vbox
+ {\moveleft\!!framedframeoffset
+ \box\extraframebox}}%
+ \wd\extraframebox\wd\framebox
+ \ht\extraframebox\ht\framebox
+ \dp\extraframebox\dp\framebox
+ \hbox{\box\framebox\hskip-\wd\extraframebox\box\extraframebox}}}
+
+\def\dostrokedbox
+ {\edef\@@framedcornermod{\framedparameter\c!framecorner}%
+ \ifx\@@framedcornermod\v!rectangular
+ \dostrokedlinedbox
+ \else\ifzeropt\dimexpr\framedparameter\c!frameradius\relax % just in case of .x\bodyfontsize
+ \dostrokedlinedbox
+ \else
+ \dostrokedroundbox
+ \fi\fi}
+
+\def\dostrokedlinedbox
+ {\setbox\scratchbox\null
+ \wd\scratchbox\frameddimenwd
+ \ht\scratchbox\frameddimenht
+ \dp\scratchbox\frameddimendp
+ \setbox\scratchbox\vbox \bgroup
+ \csname t\@@frame@@\framedparameter\c!frame\framedparameter\c!topframe \endcsname
+ \hbox \bgroup
+ \csname l\@@frame@@\framedparameter\c!frame\framedparameter\c!leftframe \endcsname
+ \box\scratchbox
+ \csname r\@@frame@@\framedparameter\c!frame\framedparameter\c!rightframe \endcsname
+ \egroup
+ \csname b\@@frame@@\framedparameter\c!frame\framedparameter\c!bottomframe\endcsname
+ \egroup
+ \wd\scratchbox\frameddimenwd
+ \ht\scratchbox\frameddimenht
+ \dp\scratchbox\frameddimendp
+ \box\scratchbox}
+
+\def\@@frame@@{@@frame@@}
+
+% \setvalue{t\@@frame@@\v!on \v!on}{\hrule\!!height\ruledlinewidth\kern-\ruledlinewidth}
+% \setvalue{t\@@frame@@\v!off\v!on}{\hrule\!!height\ruledlinewidth\kern-\ruledlinewidth}
+% \setvalue{t\@@frame@@\v!on }{\hrule\!!height\ruledlinewidth\kern-\ruledlinewidth}
+% \setvalue{b\@@frame@@\v!on \v!on}{\kern-\ruledlinewidth\hrule\!!height\ruledlinewidth}
+% \setvalue{b\@@frame@@\v!off\v!on}{\kern-\ruledlinewidth\hrule\!!height\ruledlinewidth}
+% \setvalue{b\@@frame@@\v!on }{\kern-\ruledlinewidth\hrule\!!height\ruledlinewidth}
+% \setvalue{l\@@frame@@\v!on \v!on}{\vrule\!!width\ruledlinewidth\kern-\ruledlinewidth}
+% \setvalue{l\@@frame@@\v!off\v!on}{\vrule\!!width\ruledlinewidth\kern-\ruledlinewidth}
+% \setvalue{l\@@frame@@\v!on }{\vrule\!!width\ruledlinewidth\kern-\ruledlinewidth}
+% \setvalue{r\@@frame@@\v!on \v!on}{\kern-\ruledlinewidth\vrule\!!width\ruledlinewidth}
+% \setvalue{r\@@frame@@\v!off\v!on}{\kern-\ruledlinewidth\vrule\!!width\ruledlinewidth}
+% \setvalue{r\@@frame@@\v!on }{\kern-\ruledlinewidth\vrule\!!width\ruledlinewidth}
+
+\def\@@frame@@trule{\hrule\!!height\ruledlinewidth\kern-\ruledlinewidth}
+\def\@@frame@@brule{\kern-\ruledlinewidth\hrule\!!height\ruledlinewidth}
+\def\@@frame@@rrule{\kern-\ruledlinewidth\vrule\!!width\ruledlinewidth}
+\def\@@frame@@lrule{\vrule\!!width\ruledlinewidth\kern-\ruledlinewidth}
+
+\letvalue{t\@@frame@@\v!on \v!on}\@@frame@@trule
+\letvalue{t\@@frame@@\v!off\v!on}\@@frame@@trule
+\letvalue{t\@@frame@@\v!on }\@@frame@@trule
+
+\letvalue{b\@@frame@@\v!on \v!on}\@@frame@@brule
+\letvalue{b\@@frame@@\v!off\v!on}\@@frame@@brule
+\letvalue{b\@@frame@@\v!on }\@@frame@@brule
+
+\letvalue{l\@@frame@@\v!on \v!on}\@@frame@@lrule
+\letvalue{l\@@frame@@\v!off\v!on}\@@frame@@lrule
+\letvalue{l\@@frame@@\v!on }\@@frame@@lrule
+
+\letvalue{r\@@frame@@\v!on \v!on}\@@frame@@rrule
+\letvalue{r\@@frame@@\v!off\v!on}\@@frame@@rrule
+\letvalue{r\@@frame@@\v!on }\@@frame@@rrule
+
+% no overlapping rules
+
+\def\@@frame@@trules{\hbox{\kern\ruledlinewidth\vrule\!!width\dimexpr\frameddimenwd-2\ruledlinewidth\relax\!!height\ruledlinewidth}\nointerlineskip\kern-\ruledlinewidth}
+\def\@@frame@@brules{\kern-\ruledlinewidth\nointerlineskip\hbox{\kern\ruledlinewidth\vrule\!!width\dimexpr\frameddimenwd-2\ruledlinewidth\relax\!!height\ruledlinewidth}}
+\def\@@frame@@rrules{\kern-\ruledlinewidth\vrule\!!height\dimexpr\frameddimenht-\ruledlinewidth\relax\!!depth-\ruledlinewidth\!!width\ruledlinewidth}
+\def\@@frame@@lrules{\vrule\!!height\dimexpr\frameddimenht-\ruledlinewidth\relax\!!depth-\ruledlinewidth\!!width\ruledlinewidth\kern-\ruledlinewidth}
+
+% small is relatively new
+
+\letvalue{t\@@frame@@\v!small\v!small}\@@frame@@trules
+\letvalue{t\@@frame@@\v!off \v!small}\@@frame@@trules
+\letvalue{t\@@frame@@\v!small }\@@frame@@trules
+
+\letvalue{b\@@frame@@\v!small\v!small}\@@frame@@brules
+\letvalue{b\@@frame@@\v!off \v!small}\@@frame@@brules
+\letvalue{b\@@frame@@\v!small }\@@frame@@brules
+
+\letvalue{l\@@frame@@\v!small\v!small}\@@frame@@lrules
+\letvalue{l\@@frame@@\v!off \v!small}\@@frame@@lrules
+\letvalue{l\@@frame@@\v!small }\@@frame@@lrules
+
+\letvalue{r\@@frame@@\v!small\v!small}\@@frame@@rrules
+\letvalue{r\@@frame@@\v!off \v!small}\@@frame@@rrules
+\letvalue{r\@@frame@@\v!small }\@@frame@@rrules
+
+%D I condidered using the low level support command
+%D \type{\ruledhbox}, but this would slow down processing by a
+%D factor~3.
+
+% \framed
+% [width=4cm,height=3cm,rulethickness=3mm,
+% frame=off,rightframe=on,leftframe=on,topframe=on,bottomframe=on]
+% {}
+% \framed
+% [width=4cm,height=3cm,rulethickness=3mm,
+% frame=off,rightframe=small,leftframe=small,topframe=small,bottomframe=small]
+% {}
+% \framed
+% [width=4cm,height=3cm,rulethickness=3mm,
+% frame=off,rightframe=small,leftframe=small,topframe=small,bottomframe=on]
+% {}
+
+%D The next few macros are probably the most misused ones in
+%D \CONTEXT. They deal with putting rules around boxes, provide
+%D backgrounds, offer alignment features, and some more. We
+%D start with defining some booleans. These give an impression
+%D of what we are going to take into account.
+
+% todo: chardefs
+
+\newif\ifboxhasoffset
+\newif\ifboxhaswidth
+\newif\ifboxhasheight
+\newif\ifboxhasformat
+\newif\ifboxhasstrut
+\newif\ifboxisoverlaid
+\newif\ifboxhasframe
+\newif\ifdelayedstrut
+\newif\ifboxhasextraoffset
+
+%D We also need a few \DIMENSIONS:
+
+\newdimen\@@localoffset
+\newdimen\@@globalwidth
+
+%D \macros
+%D {framed, setupframed}
+%D
+%D Ruled boxes are typeset using \type{\framed}. This command
+%D is quite versatile and, although some users will probably
+%D seldom use it, one cannot overlook its features.
+%D
+%D \showsetup{setupframed}
+%D \showsetup{framed}
+%D
+%D This general macro is a special version of an even more
+%D general case, that can easily be linked into other macros
+%D that need some kind of framing. The local version is called
+%D with an extra parameter: the variable identifier. The reason
+%D for passing this identifier between brackets lays in the
+%D mere fact that this way we can use the optional argument
+%D grabbers.
+
+\def\defaultframeoffset{.25ex}
+
+\def\presetlocalframed [#1]{\letvalue{#1\s!parent}\??oi}
+\def\inheritlocalframed[#1]#2[#3]{\letvalue{#1\s!parent}#3}
+\def\copylocalframed [#1]#2[#3]{\setvalue{#1\s!parent}{#3}}
+
+\presetlocalframed[\??ol]
+
+\newcount\framednesting
+
+\unexpanded\def\framed
+ {\bgroup
+ \advance\framednesting\plusone
+ \expandafter\let\csname\??ol:\the\framednesting\s!parent\endcsname\??ol
+ \dodoubleempty\startlocalframed[\??ol:\the\framednesting]}
+
+\def\setupframed
+ {\dodoubleempty\dosetupframed}
+
+\def\dosetupframed
+ {\ifsecondargument
+ \@EA\dodoublesetupframed
+ \else
+ \@EA\dosinglesetupframed
+ \fi}
+
+\def\dosinglesetupframed[#1][#2]%
+ {\getparameters[\??ol][#1]}
+
+\def\dodoublesetupframed[#1][#2]%
+ {\bgroup
+ \let\dodoubleempty\empty
+ \def\doframed[##1]{\gdef\globalredefinedframed{\dodoubleempty\doframed[##1,#2]}}%
+ \getvalue{#1}%
+ \egroup
+ \letvalue{#1}\globalredefinedframed}
+
+%D \startbuffer
+%D \setupframed [framecolor=yellow] \framed{A}
+%D \defineframed[myframed] [framecolor=blue] \myframed{B}
+%D \setupframed [myframed] [framecolor=red] \myframed{C}
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+%D
+%D \startbuffer
+%D \presetlocalframed[myframed]
+%D \setuplocalframed[myframed][width=4cm,height=2cm]
+%D \localframed[myframed][framecolor=green]{oeps}
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+
+%D \macros
+%D {ifinframed}
+%D
+%D The normal case first presets all parameters and next starts
+%D looking for the user supplied ones. The first step is
+%D omitted in the local case, because these are preset at
+%D declaration time and keep their values unless explictly
+%D changed. By presetting the variables everytime the normal
+%D command is called, we can use this command nested, without
+%D the unwanted side effect of inheritance. The boolean is
+%D used to speed up the color stack.
+
+\newif\ifinframed
+
+\def\localframed
+ {\bgroup
+ \dodoubleempty\startlocalframed}
+
+%D The next one is faster on multiple backgrounds per page. No
+%D dimensions can be set, only frames and backgrounds.
+
+\def\fastlocalframed[#1]#2[#3]#4% 3-4
+ {\bgroup
+ \inframedtrue
+ \edef\@@framed{#1}%
+ \setbox\framebox\hbox{#4}%
+ \getparameters[\@@framed][#3]% no \expanded !
+ \!!framedframeoffset\framedparameter\c!frameoffset
+ \edef\@@framedbackgroundoffset{\framedparameter\c!backgroundoffset}%
+ \ifx\@@framedbackgroundoffset\v!frame
+ \!!framedbackgroundoffset\!!framedframeoffset
+ \else
+ \!!framedbackgroundoffset\@@framedbackgroundoffset
+ \fi
+ % not here, in calling macro: setups
+ \removeframedboxdepth
+% \edef\framedforegroundcolor{\framedparameter\c!foregroundcolor}%
+% \ifx\framedforegroundcolor\empty\else\docolorframebox\fi
+ \edef\overlaylinecolor{\framedparameter\c!framecolor}%
+ \edef\overlaylinewidth{\the\ruledlinewidth}%
+ \edef\@@localframing {\framedparameter\c!frame}%
+ \ifx\@@localframing\v!overlay \else \ifx\@@localframing\v!none \else
+ \edef\framedrulethickness{\framedparameter\c!rulethickness}%
+ \ifx\framedrulethickness\empty\else
+ \ruledlinewidth\framedrulethickness\relax
+ \ifinheritruledlinewidth\linewidth\ruledlinewidth\fi
+ \fi
+ \dooutlinebox % real or invisible frame
+ \fi \fi
+ \edef\framedbackground{\framedparameter\c!background}%
+ \ifx\framedbackground\empty\else\dobackedbox\fi
+ \restoreframedboxdepth
+ \box\framebox
+ \egroup}
+
+%D Here is another fast one:
+
+\def\localbackgroundframed#1#2#3#4% tag box wd ht
+ {\setbox#2\vbox\bgroup
+ \inframedtrue
+ \edef\@@framed{\??ma#1}%
+ \expandafter\def\csname\??ma#1\c!component\endcsname{#1}%
+ \expandafter\def\csname\??ma#1\c!width \endcsname{#3}%
+ \expandafter\def\csname\??ma#1\c!height \endcsname{#4}%
+ \!!framedframeoffset\framedparameter\c!frameoffset
+ \edef\@@framedbackgroundoffset{\framedparameter\c!backgroundoffset}%
+ \ifx\@@framedbackgroundoffset\v!frame
+ \!!framedbackgroundoffset\!!framedframeoffset
+ \else
+ \!!framedbackgroundoffset\@@framedbackgroundoffset
+ \fi
+ \setbox\framebox\box#2%
+ \dp\framebox\zeropoint
+% \removeframedboxdepth
+% \edef\framedforegroundcolor{\framedparameter\c!foregroundcolor}%
+% \ifx\framedforegroundcolor\empty\else\docolorframebox\fi
+ \edef\overlaylinecolor{\framedparameter\c!framecolor}%
+ \edef\overlaylinewidth{\the\ruledlinewidth}%
+ \edef\@@localframing {\framedparameter\c!frame}%
+ \ifx\@@localframing\v!overlay \else \ifx\@@localframing\v!none \else
+ \edef\framedrulethickness{\framedparameter\c!rulethickness}%
+ \ifx\framedrulethickness\empty\else
+ \ruledlinewidth\framedrulethickness\relax
+ \ifinheritruledlinewidth\linewidth\ruledlinewidth\fi
+ \fi
+ \dooutlinebox % real or invisible frame
+ \fi \fi
+ \edef\framedbackground{\framedparameter\c!background}%
+ \ifx\framedbackground\empty\else\dobackedbox\fi
+% \restoreframedboxdepth
+ \box\framebox
+ \egroup}
+
+%D Before we go into details, we present (and implement) the
+%D main framing routine. I saw no real reason for splitting the
+%D next two macros into smaller pieces. The content will be
+%D collected in a horizontal or vertical box with fixed or free
+%D dimensions and specific settings concerning aligment and
+%D offsets.
+%D
+%D In the first few lines, we pre||expand the frame and
+%D background offsets. We do so, because the can be defined in
+%D terms of the main offset. However, see for instance page
+%D backgrounds, when \type {#2} sets the offset to \type
+%D {overlay}, both offsets become invalid.
+%D
+%D Because it is used so often the he next macro is (and
+%D looks) rather optimized.
+
+\let\postprocessframebox\relax
+
+\let\@@framed\s!unknown
+
+\def\framedparameter #1{\csname\doframedparameter\@@framed#1\endcsname}
+\def\framedparameterhash#1{\doframedparameterhash \@@framed#1}
+
+\def\doframedparameter #1#2{\ifcsname#1#2\endcsname#1#2\else\expandafter\doframedparentparameter \csname#1\s!parent\endcsname#2\fi}
+\def\doframedparameterhash#1#2{\ifcsname#1#2\endcsname #1\else\expandafter\doframedparentparameterhash\csname#1\s!parent\endcsname#2\fi}
+
+\def\doframedparentparameter #1#2{\ifx#1\relax\s!empty\else\doframedparameter #1#2\fi}
+\def\doframedparentparameterhash#1#2{\ifx#1\relax \else\doframedparameterhash#1#2\fi}
+
+% \def\s!root{root} % maybe configurable
+
+\def\doframedparentparameter#1#2{\ifx#1\relax\doframedrootparameter#2\else\doframedparameter#1#2\fi}
+\def\doframedrootparameter #1{\ifcsname\??oi#1\endcsname\??oi#1\else\s!empty\fi}
+
+\def\dosetframedattributes#1#2% style color
+ {\edef\fontattributehash {\framedparameterhash#1}%
+ \edef\colorattributehash{\framedparameterhash#2}%
+ \ifx\fontattributehash \empty\else\dosetfontattribute \fontattributehash #1\fi
+ \ifx\colorattributehash\empty\else\dosetcolorattribute\colorattributehash#2\fi}
+
+% defaults, kind of isolated now
+
+\getparameters
+ [\??oi]
+ [\c!width=\v!fit,
+ \c!height=\v!broad,
+ %\c!lines=,
+ \c!offset=0.25ex, % \defaultframeoffset
+ \c!empty=\v!no,
+ \c!frame=\v!on,
+ %\c!topframe=,
+ %\c!bottomframe=,
+ %\c!leftframe=,
+ %\c!rightframe=,
+ \c!radius=.5\bodyfontsize,
+ \c!rulethickness=\linewidth,
+ \c!corner=\v!rectangular,
+ \c!depth=\zeropoint,
+ %\c!foregroundcolor=,
+ %\c!foregroundstyle=,
+ %\c!background=,
+ %\c!backgroundscreen=,
+ %\c!backgroundcolor=,
+ \c!backgroundoffset=\zeropoint,
+ %\c!framecolor=,
+ \c!frameoffset=\zeropoint,
+ \c!backgroundcorner=\framedparameter\c!corner,
+ \c!backgroundradius=\framedparameter\c!radius,
+ \c!backgrounddepth=\framedparameter\c!depth,
+ \c!framecorner=\framedparameter\c!corner,
+ \c!frameradius=\framedparameter\c!radius,
+ \c!framedepth=\framedparameter\c!depth,
+ %\c!component=,
+ %\c!align=,
+ \c!bottom=\vss,
+ %\c!top=,
+ \c!strut=\v!yes,
+ \c!autostrut=\v!yes,
+ \c!location=\v!normal,
+ %\c!orientation=,
+ \c!autowidth=\v!yes,
+ %\c!setups=
+]
+
+\getparameters
+ [\??od] % for fast version
+ [\c!frame=\v!off,
+ \c!depth=\zeropoint,
+ \c!offset=\v!overlay,
+ %\c!component=,
+ \c!radius=.5\bodyfontsize,
+ \c!rulethickness=\linewidth,
+ \c!corner=\v!rectangular,
+ \c!backgroundoffset=\zeropoint,
+ \c!frameoffset=\zeropoint,
+ \c!backgroundcorner=\framedparameter\c!corner,
+ \c!backgroundradius=\framedparameter\c!radius,
+ \c!backgrounddepth=\framedparameter\c!depth,
+ \c!framecorner=\framedparameter\c!corner,
+ \c!frameradius=\framedparameter\c!radius,
+ \c!framedepth=\framedparameter\c!depth,
+ \c!location=\v!normal]
+
+% so far
+
+\newdimen\!!framedwidth
+\newdimen\!!framedheight
+\newdimen\!!framedscratch % so that users can use \scratchdimen
+\newdimen\!!framedframeoffset
+\newdimen\!!framedbackgroundoffset
+
+\let\setextraframedoffsets \relax
+\let\applyextraframedoffsets\relax
+
+% todo: protect local \framednames
+
+\def\startlocalframed[#1][#2]%
+ {\bgroup
+ \inframedtrue
+ \edef\@@framed{#1}%
+ \ifsecondargument % faster
+ \getparameters[\@@framed][#2]% here !
+ \fi
+ \!!framedframeoffset\framedparameter\c!frameoffset
+ \edef\@@framedbackgroundoffset{\framedparameter\c!backgroundoffset}%
+ \ifx\@@framedbackgroundoffset\v!frame
+ \!!framedbackgroundoffset\!!framedframeoffset
+ \else
+ \!!framedbackgroundoffset\@@framedbackgroundoffset
+ \fi
+ % new, experimental dirty hook
+ \framedparameter\c!extras
+ % to get the right spacing
+ \edef\fontattributehash{\framedparameterhash\c!foregroundstyle}%
+ \ifx\fontattributehash\empty\else\dosetfontattribute \fontattributehash\c!foregroundstyle\fi
+ % beware, both the frame and background offset can be overruled
+ %
+ \edef\doframedsetups{\framedparameter\c!setups}%
+ \ifx\doframedsetups\empty\else
+ \edef\doframedsetups{\noexpand\setups[\doframedsetups]}%
+ \fi
+ % the next macros are visible
+ \edef\localoffset{\framedparameter\c!offset}%
+ \edef\localwidth {\framedparameter\c!width}%
+ \edef\localheight{\framedparameter\c!height}%
+ \edef\localformat{\framedparameter\c!align}%
+ \edef\localstrut {\framedparameter\c!strut}%
+ % these are not
+ \edef\@@localautostrut {\framedparameter\c!autostrut}%
+ \edef\@@localframing {\framedparameter\c!frame}%
+ \edef\@@locallocation {\framedparameter\c!location}%
+ \edef\@@localorientation{\framedparameter\c!orientation}%
+ %
+ \edef\@@localautowidth {\framedparameter\c!autowidth}%
+ %
+ \ifx\@@localframing\v!overlay % no frame, no offset, no framewidth
+ \boxhasframefalse
+ \let\localoffset\v!overlay
+ \else\ifx\@@localframing\v!none % no frame, no framewidth
+ \boxhasframefalse
+ \else
+ \boxhasframetrue
+ \fi\fi
+ \ifboxhasframe
+ \edef\framedrulethickness{\framedparameter\c!rulethickness}%
+ \ifx\framedrulethickness\empty\else
+ \ruledlinewidth\framedrulethickness\relax
+ \ifinheritruledlinewidth\linewidth\ruledlinewidth\fi
+ \fi
+ \else
+ \ruledlinewidth\zeropoint
+ \fi
+ \ifx\localformat\empty
+ \boxhasformatfalse
+ \else
+ \boxhasformattrue
+ \dosetraggedcommand\localformat
+ \edef\dobeforeframedbox{\raggedtopcommand\framedparameter\c!top}%
+ \edef\doafterframedbox {\framedparameter\c!bottom\raggedbottomcommand}%
+ \fi
+ \ifx\localoffset\v!none
+ \boxhasoffsetfalse
+ \boxhasstrutfalse
+ \boxisoverlaidfalse
+ \@@localoffset\ruledlinewidth
+ \else\ifx\localoffset\v!overlay
+ % \ifx\@@localframing\v!no \boxhasframefalse \fi % test first
+ \boxhasoffsetfalse
+ \boxhasstrutfalse
+ \boxisoverlaidtrue
+ \@@localoffset\zeropoint
+ \else
+ \boxhasoffsettrue
+ \boxhasstruttrue
+ \boxisoverlaidfalse
+ \ifx\localoffset\v!default % new per 2-6-2000
+ \let\localoffset\defaultframeoffset
+ \expandafter\let\csname\@@framed\c!offset\endcsname\defaultframeoffset
+ \else
+ \let\defaultframeoffset\localoffset
+ \fi
+ \@@localoffset\dimexpr\localoffset+\ruledlinewidth\relax
+ \fi\fi
+ \!!framedheight\zeropoint
+ \!!framedwidth \zeropoint
+ \ifx\localwidth\v!fit
+ \ifboxhasformat
+ \boxhaswidthtrue
+ \!!framedwidth\hsize
+ \else
+ \boxhaswidthfalse
+ \fi
+ \else\ifx\localwidth\v!fixed % equals \v!fit but no shapebox
+ \ifboxhasformat
+ \boxhaswidthtrue
+ \!!framedwidth\hsize
+ \else
+ \boxhaswidthfalse
+ \fi
+ \else\ifx\localwidth\v!broad
+ \boxhaswidthtrue
+ \!!framedwidth\hsize
+ \else\ifx\localwidth\v!local
+ \boxhaswidthtrue
+ \setlocalhsize
+ \!!framedwidth\localhsize
+ \else
+ \boxhaswidthtrue
+ \!!framedwidth\localwidth
+ \fi\fi\fi\fi
+ \ifx\localheight\v!fit
+ \boxhasheightfalse % no longer: \boxhasstrutfalse
+ \else\ifx\localheight\v!broad
+ \boxhasheightfalse
+ \else
+ \boxhasheighttrue
+ \!!framedheight\localheight
+ \fi\fi
+ \ifboxhasheight
+ % obey user set height, also downward compatible
+ \else
+ \edef\@@framedlines{\framedparameter\c!lines}%
+ \ifx\@@framedlines\empty\else
+ \ifcase\@@framedlines\else
+ \!!framedheight\@@framedlines\lineheight
+ \edef\localheight{\the\!!framedheight}%
+ \boxhasheighttrue
+ \fi
+ \fi
+ \fi
+ % this is now an option: width=local
+ %
+ % \ifdim\!!framedwidth=\hsize
+ % \parindent\zeropoint
+ % \setlocalhsize
+ % \!!framedwidth\localhsize
+ % \fi
+ % i.e. disable (colsetbackgroundproblemintechniek)
+ \advance\!!framedwidth -2\@@localoffset
+ \advance\!!framedheight -2\@@localoffset
+ \ifx\localstrut\v!no
+ \boxhasstrutfalse
+ \else\ifx\localstrut\v!global
+ \setstrut
+ \else\ifx\localstrut\v!local
+ \setfontstrut
+ \else
+ \setstrut
+ \fi\fi\fi
+ \ifboxhasstrut
+ \let\localbegstrut\begstrut
+ \let\localendstrut\endstrut
+ \let\localstrut \strut
+ \else
+ \let\localbegstrut\pseudobegstrut % was: \relax
+ \let\localendstrut\pseudoendstrut % was: \relax
+ \let\localstrut \pseudostrut % was: \relax
+ %\ifboxhasheight\ifdim\!!framedheight<\strutht % saveguard
+ % \let\localbegstrut\relax % but not that
+ % \let\localstrut \relax % save after all
+ %\fi\fi
+ \fi
+ \ifx\@@localautostrut\v!yes
+ \let\delayedbegstrut\relax
+ \let\delayedendstrut\relax
+ \let\delayedstrut \relax
+ \else
+ \let\delayedbegstrut\localbegstrut
+ \let\delayedendstrut\localendstrut
+ \let\delayedstrut \localstrut
+ \let\localbegstrut \relax
+ \let\localendstrut \relax
+ \let\localstrut \relax
+ \fi
+ \ifboxhasheight
+ \let\\\vboxednewline
+ \ifboxhaswidth
+ \let\hairline\vboxedhairline
+ \ifboxhasformat
+ \let\next\doformatboxSomeFormat
+ \else
+ \let\next\doformatboxNoFormat
+ \fi
+ \else
+ \let\hairline\hboxedhairline
+ \ifboxhasformat
+ \let\next\doformatboxHeight
+ \else
+ \let\next\doformatboxVSize
+ \fi
+ \fi
+ \else
+ \ifboxhaswidth
+ \ifboxhasformat
+ \let\hairline\vboxedhairline
+ \let\\\vboxednewline
+ \let\next\doformatboxWidth
+ \else
+ \let\hairline\hboxedhairline
+ \let\\\hboxednewline
+ \let\next\doformatboxHSize
+ \fi
+ \else
+ \let\hairline\hboxedhairline
+ \let\\\hboxednewline
+ \let\next\doformatboxNoSize
+ \fi
+ \fi
+ \setextraframedoffsets
+ \edef\framedbackground{\framedparameter\c!background}%
+ \ifx\framedbackground\empty
+ \let\framedforgetall\forgetall
+ \else
+ \let\framedforgetall\relax
+ \forgetall
+ \fi
+ \edef\framedwidth {\ifdim\!!framedwidth >\zeropoint\the\!!framedwidth \else\!!zeropoint\fi}% a new feature, visible for user
+ \edef\framedheight{\ifdim\!!framedheight>\zeropoint\the\!!framedheight\else\!!zeropoint\fi}% a new feature, visible for user
+ \@@startframedorientation
+ \afterassignment\dodowithframebox
+ \setbox\framebox\next}
+
+\def\dowithframebox
+ {% moved : \let\postprocessframebox\relax
+ \stoplocalframed}
+
+\def\dodowithframebox
+ {\aftergroup\dowithframebox}
+
+\let\doafterframedbox \relax
+\let\dobeforeframedbox\relax
+
+%D Carefull analysis of this macro will learn us that not all
+%D branches in the last conditionals can be encountered, that
+%D is, some assignments to \type{\next} will never occur.
+%D Nevertheless we implement the whole scheme, if not for
+%D future extensions.
+
+%D \macros
+%D {ifreshapeframebox}
+%D
+%D The last few lines tell what to do after the content of the
+%D box is collected and passed to the next macro. In the case
+%D of a fixed width and centered alignment, the content is
+%D evaluated and used to determine the most natural width. The
+%D rest of the code deals with backgrounds and frames.
+
+\newif\ifreshapeframebox \reshapeframeboxtrue
+
+%D Beware: setting \type {top} and \type {bottom} to nothing, may
+%D result in a frame that is larger that the given height! try:
+%D
+%D \starttyping
+%D \framed
+%D [height=3cm,top=,bottom=,offset=overlay]
+%D {\strut test \shapefill \strut test}
+%D \stoptyping
+%D
+%D This is intended behaviour and not a bug! One can always set
+%D
+%D \starttyping
+%D ...,bottom=\kern0pt,...
+%D \stoptyping
+
+\def\stoplocalframed
+ {\dontshowcomposition
+ \@@stopframedorientation % hm, wrong place ! should rotate the result (after reshape)
+ \handleframedlocator\c!before\@@locallocation
+ \ifboxhasformat
+ \ifx\@@localautowidth\v!force
+ \ifreshapeframebox\doreshapeframedbox\fi
+ \boxhaswidthfalse
+ \else
+ \ifx\localwidth\v!fit
+ \ifx\@@localautowidth\v!yes
+ \ifreshapeframebox\doreshapeframedbox\fi
+ \fi
+ \boxhaswidthfalse
+ \else\ifx\localwidth\v!fixed
+ \boxhaswidthfalse
+ \else
+ \resetshapeframebox
+ \fi\fi
+ \fi
+ \ifconditional\boxcontentneedsprocessing
+ \mkdoprocessboxcontents\framebox
+ \fi
+ \else
+ \resetshapeframebox
+ \fi
+ \ifboxhaswidth
+ \wd\framebox\!!framedwidth
+ \fi
+ \ifboxhasheight
+ \ht\framebox\!!framedheight
+ \fi
+ \doif{\framedparameter\c!empty}\v!yes\dosetfakedframebox
+ \ifboxhasextraoffset
+ \applyextraframedoffsets
+ \fi
+ \ifboxhasoffset
+ \dooffsetframebox
+ \fi
+ \ifboxisoverlaid \else
+ \dolocateframebox
+ \fi
+ \ifx\postprocessframebox\relax \else
+ \let\next\postprocessframebox
+ \let\postprocessframebox\relax % prevent nesting
+ \next\framebox
+ \fi
+ \edef\overlaylinecolor{\framedparameter\c!framecolor}%
+ \edef\overlaylinewidth{\the\ruledlinewidth}% \@@...
+ \ifboxhasframe % real or invisible frame
+ \dooutlinebox
+ \fi
+ \ifx\framedbackground\empty\else\dobackedbox\fi
+ \handleframedlocator\c!after\@@locallocation
+ \box\framebox
+ \egroup
+ \egroup}
+
+\def\dosetfakedframebox
+ {\setbox\scratchbox\null
+ \wd\scratchbox\wd\framebox
+ \ht\scratchbox\ht\framebox
+ \dp\scratchbox\dp\framebox
+ \setbox\framebox\box\scratchbox}
+
+% test: (saves one forgetall)
+%
+% \edef\framedbackground{\framedparameter\c!background}%
+% \ifx\framedbackground\empty
+% \let\framedforgetall\forgetall
+% \else
+% \let\framedforgetall\relax
+% \forgetall
+% \fi
+
+\def\installframedlocator#1#2#3%
+ {\setvalue{\??oi:\c!location:\c!before:#1}{#2}%
+ \setvalue{\??oi:\c!location:\c!after :#1}{#3}}
+
+\def\handleframedlocator#1#2%
+ {\csname\??oi:\c!location:#1:#2\endcsname}
+
+\def\doprelocframedbox#1%
+ {\scratchdimen\dimexpr#1+\ruledlinewidth\relax
+ \ifboxhasoffset
+ \advance\scratchdimen \framedparameter\c!offset
+ \fi
+ \scratchskip\dimexpr\ht\framebox-\scratchdimen\relax}
+
+% \ruledhbox
+% {A
+% \framed[width=2cm,align=middle,location=hanging]{location\\equals\\hanging}
+% \framed[width=2cm,align=middle,location=depth] {location\\equals\\depth}
+% \framed[width=2cm,align=middle,location=height] {location\\equals\\height}
+% B}
+% \vskip2cm
+% \ruledhbox
+% {A
+% \framed[width=2cm,align=middle,location=low] {location\\equals\\low}
+% \framed[width=2cm,align=middle,location=line] {location\\equals\\line}
+% \framed[width=2cm,align=middle,location=high] {location\\equals\\high}
+% B}
+% \vskip2cm
+% \ruledhbox
+% {A
+% \framed[width=2cm,align=middle,location=top] {location\\equals\\top}
+% \framed[width=2cm,align=middle,location=bottom] {location\\equals\\bottom}
+% \framed[width=2cm,align=middle,location=lohi] {location\\equals\\lohi}
+% \framed[width=2cm,align=middle,location=middle] {location\\equals\\middle}
+% B}
+
+\installframedlocator \v!hanging % best with strut=no
+ {}
+ {\dp\framebox\ht\framebox
+ \ht\framebox\zeropoint}
+
+\installframedlocator \v!depth
+ {}
+ {\ht\framebox\dimexpr\ht\framebox-\strutdp\relax
+ \dp\framebox\strutdp
+ \box\framebox}
+
+\installframedlocator \v!height
+ {}
+ {\dp\framebox\dimexpr\ht\framebox-\strutht\relax
+ \ht\framebox\strutht
+ \box\framebox}
+
+\installframedlocator \v!high
+ {}
+ {\doprelocframedbox\strutht
+ \setbox\framebox\hbox{\lower\scratchskip\box\framebox}%
+ \ht\framebox\strutht
+ \dp\framebox\strutdp
+ \hbox{\box\framebox}}
+
+\installframedlocator \v!line
+ {}
+ {\setbox\framebox\hbox{\lower.5\ht\framebox\box\framebox}%
+ \ht\framebox.5\lineheight
+ \dp\framebox.5\lineheight
+ \hbox{\box\framebox}}
+
+\installframedlocator \v!low
+ {}
+ {\doprelocframedbox\strutdp
+ \setbox\framebox\hbox{\lower\scratchdimen\box\framebox}%
+ \ht\framebox\strutht
+ \dp\framebox\strutdp
+ \box\framebox}
+
+\installframedlocator \v!top
+ {}
+ {\doprelocframedbox\strutht
+ \setbox\framebox\hbox{\lower\scratchskip\box\framebox}%
+ \ht\framebox\scratchdimen
+ \dp\framebox\scratchskip
+ \hbox{\box\framebox}}
+
+\installframedlocator \v!middle
+ {}
+ {\scratchdimen.5\ht\framebox
+ \setbox\framebox\hbox{\lower\scratchdimen\box\framebox}%
+ \ht\framebox\scratchdimen
+ \dp\framebox\scratchdimen
+ \hbox{\box\framebox}}
+
+\installframedlocator \v!lohi
+ {\handleframedlocator\c!before\v!middle}
+ {\handleframedlocator\c!after \v!middle}
+
+\installframedlocator \v!bottom
+ {}
+ {\doprelocframedbox\strutdp
+ \setbox\framebox\hbox{\lower\scratchdimen\box\framebox}%
+ \ht\framebox\scratchskip
+ \dp\framebox\scratchdimen
+ \hbox{\box\framebox}}
+
+\installframedlocator \v!keep % retains height/depth
+ {\removeframedboxdepth}
+ {\restoreframedboxdepth}
+
+% also used in fastlocalframed
+
+\newdimen\originalframedwd
+\newdimen\originalframedht
+\newdimen\originalframeddp
+
+\def\removeframedboxdepth
+ {\originalframedwd\wd\framebox
+ \originalframedht\ht\framebox
+ \originalframeddp\dp\framebox
+ \ifzeropt\originalframeddp\else\setbox\framebox\hbox{\raise\originalframeddp\box\framebox}\fi
+ \wd\framebox\originalframedwd
+ \ht\framebox\dimexpr\originalframedht+\originalframeddp\relax
+ \dp\framebox\zeropoint}
+
+\def\restoreframedboxdepth
+ {\ifzeropt\originalframeddp\else\setbox\framebox\hbox{\lower\originalframeddp\box\framebox}\fi
+ \wd\framebox\originalframedwd
+ \ht\framebox\originalframedht
+ \dp\framebox\originalframeddp}
+
+% \let\@@startframedorientation\relax
+% \let\@@stopframedorientation \relax
+
+% \framed[width=12cm,height=3cm,orientation=0]{\input ward\relax}
+% \framed[width=12cm,height=3cm,orientation=90]{\input ward\relax}
+% \framed[width=12cm,height=3cm,orientation=180]{\input ward\relax}
+% \framed[width=12cm,height=3cm,orientation=270]{\input ward\relax}
+% \framed[width=12cm,height=3cm,orientation=-90]{\input ward\relax}
+% \framed[width=12cm,height=3cm,orientation=-180]{\input ward\relax}
+% \framed[width=12cm,height=3cm,orientation=-270]{\input ward\relax}
+
+\def\@@startframedorientation
+ {\let\@@stopframedorientation \relax
+ \ifx\@@localorientation\empty\else
+ \ifcase\@@localorientation\else
+ \scratchcounter\@@localorientation
+ \divide\scratchcounter\plustwo
+ \ifodd\scratchcounter
+ \swapmacros\framedwidth \framedheight
+ \swapmacros\localwidth \localheight
+ \swapdimens\!!framedheight\!!framedwidth
+ \def\@@stopframedorientation{\@@dostopframedorientation\plusone}%
+ \else
+ \def\@@stopframedorientation{\@@dostopframedorientation\zerocount}%
+ \fi
+ \fi
+ \fi}
+
+\def\@@dostopframedorientation#1%
+ {\ifcase#1\else
+ \swapmacros\framedwidth \framedheight
+ \swapmacros\localwidth \localheight
+ \swapdimens\!!framedheight\!!framedwidth
+ \fi
+ \setbox\framebox\hbox{\dorotatebox\@@localorientation\hbox{\box\framebox}}}
+
+%D The last conditional takes care of the special situation of
+%D in||line \inframed[height=3cm]{framed} boxes. Such boxes have
+%D to be \inframed{aligned} with the running text.
+
+\def\doinframed[#1]% we could omit #1] but readibility ...
+ {\framed[\c!location=\v!low,#1]}
+
+\unexpanded\def\inframed
+ {\dosingleempty\doinframed}
+
+%D When we set \type{empty} to \type{yes}, we get
+%D ourselves a frame and/or background, but no content, so
+%D actually we have a sort of phantom framed box.
+
+%D Because color marks and specials can interfere with
+%D spacing, we provide a way to specify a foregroundcolor.
+
+\def\docolorframebox
+ {\doifcolor\framedforegroundcolor
+ {\setbox\framebox\hbox{\faststartcolor[\framedforegroundcolor]\box\framebox\faststopcolor}}}
+ %{\setbox\framebox\hbox{\doactivatecolor\framedforegroundcolor\box\framebox}}}
+
+%D \macros
+%D {mframed, minframed}
+%D
+%D When Tobias asked how to frame mathematical elements in
+%D formulas, Taco's posted the next macro:
+%D
+%D \starttyping
+%D \def\mframed#1%
+%D {\relax
+%D \ifmmode
+%D \vcenter{\hbox{\framed{$\ifinner\else\displaystyle\fi#1$}}}%
+%D \else
+%D \framed{$#1$}%
+%D \fi}
+%D \stoptyping
+%D
+%D Because \type {\ifinner} does not (always) reports what
+%D one would expect, we move the test to the outer level. We
+%D also want to pass arguments,
+%D
+%D \starttyping
+%D \def\mframed%
+%D {\dosingleempty\domframed}
+%D
+%D \def\domframed[#1]#2% % tzt \dowithnextmathbox ?
+%D {\relax
+%D \ifmmode
+%D \ifinner
+%D \inframed[#1]{$#2$}%
+%D \else
+%D \vcenter{\hbox{\framed[#1]{$\displaystyle#2$}}}%
+%D \fi
+%D \else
+%D \inframed[#1]{$#2$}%
+%D \fi}
+%D \stoptyping
+%D
+%D Still better is the next alternative, if only because it
+%D takes care of setting the super- and subscripts styles
+
+\newcount\mframedstyle
+
+\def\doinlinemframed[#1]#2%
+ {\begingroup
+ \mframedstyle\mathstyle\relax
+ \inframed[#1]{$\triggermathstyle\mframedstyle#2$}%
+ \endgroup}
+
+\def\dodisplaymframed[#1]#2%
+ {\begingroup
+ \mframedstyle\mathstyle\relax
+ \def\normalstrut{$\triggermathstyle\mframedstyle\vphantom{(}$}%
+ \framed[#1]{$\triggermathstyle\mframedstyle#2$}%
+ \endgroup}
+
+\def\mframed {\dosingleempty\dodisplaymframed}
+\def\inmframed{\dosingleempty\doinlinemframed }
+
+%D So instead of the rather versatile \type {\framed}, we ue
+%D the \type {\mframed}.
+%D
+%D \startbuffer
+%D \startformula
+%D x \times \mframed{y} \times y^{z_z}
+%D x \times \inmframed{y} \times y^{z_z}
+%D \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D \getbuffer
+%D
+%D However, we got into troubles when we want to nest sub- and
+%D superscripts, like in
+%D
+%D \startbuffer
+%D \startformula
+%D x \times \mframed{y} \times y^{\mframed{z}_{\mframed{z}}}
+%D \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D \getbuffer
+%D
+%D Therefore, we can best use \type {\super} and \type {\suber}
+%D instead of \type {^} and \type {_}. Both commands take care
+%D of proper font switching.
+%D
+%D \startbuffer
+%D \startformula
+%D x \times \mframed{y} \times y\super{\mframed{z}\suber{\mframed{z}}}
+%D \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D \getbuffer
+%D
+%D As usual, one can specify in what way the text should be
+%D framed. One should be aware of the fact that, inorder to
+%D preserve the proper spacing, the \type {offset} is set to
+%D \type {overlay} and \type {frameoffset} is used used
+%D instead.
+%D
+%D \startbuffer
+%D \startformula
+%D x \times y\super{\mframed[framecolor=red]{z}\suber{z}}
+%D \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D \getbuffer
+%D
+%D For inline use, we also provide the \type {\inmframed}
+%D alternative: we want $x \times \inmframed{y}$ in inline
+%D math, right?
+
+%D This previous framing macros needs a lot of alternatives for
+%D putting rules around boxes, inserting offsets and aligning
+%D text. Each step is handled by separate macros.
+
+\def\dowidenframebox#1%
+ {\setbox\framebox\vbox
+ {\kern#1\hbox{\kern#1\box\framebox\kern#1}\kern#1}}
+
+\def\dooffsetframebox{\dowidenframebox\localoffset}
+\def\dolocateframebox{\dowidenframebox\ruledlinewidth}
+
+%D Let's hope that the next few examples show us enough of
+%D what needs to be done by the auxiliary macros.
+%D
+%D \startbuffer
+%D \framed[height=1cm,offset=.5cm] {rule based learning}
+%D \framed[height=1cm,offset=0cm] {rule based learning}
+%D \framed[height=1cm,offset=none] {rule based learning}
+%D \framed[height=1cm,offset=overlay]{rule based learning}
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D \startlinecorrection
+%D \hbox{\getbuffer}
+%D \stoplinecorrection
+%D
+%D \startbuffer
+%D \framed[offset=.5cm] {rule based learning}
+%D \framed[offset=0cm] {rule based learning}
+%D \framed[offset=none] {rule based learning}
+%D \framed[offset=overlay]{rule based learning}
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D \startlinecorrection
+%D \hbox{\getbuffer}
+%D \stoplinecorrection
+%D
+%D \startbuffer
+%D \framed[strut=nee,offset=.5cm] {rule based learning}
+%D \framed[strut=nee,offset=0cm] {rule based learning}
+%D \framed[strut=nee,offset=none] {rule based learning}
+%D \framed[strut=nee,offset=overlay]{rule based learning}
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D \startlinecorrection
+%D \hbox{\getbuffer}
+%D \stoplinecorrection
+%D
+%D \startbuffer
+%D \framed[width=3cm,align=left] {rule\\based\\learning}
+%D \framed[width=3cm,align=middle] {rule\\based\\learning}
+%D \framed[width=3cm,align=right] {rule\\based\\learning}
+%D \framed[width=fit,align=middle] {rule\\based\\learning}
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D \startlinecorrection
+%D \hbox{\dontcomplain\getbuffer}
+%D \stoplinecorrection
+%D
+%D So now we're ready for the complicated stuff. We distinguish
+%D between borders with straight lines and those with round
+%D corners. When using the first alternative it is possible to
+%D turn off one or more lines. More fancy shapes are also
+%D possible by specifying dedicated backgrounds. Turning lines
+%D on and off is implemented as efficient as possible and as a
+%D result is interface language dependant. This next
+%D implementation evolved from simpler ones. It puts for
+%D instance the rules on top of the content and provides
+%D additional offset capabilities. The lot of calls to other
+%D macros makes this mechanism not that easy to comprehend.
+
+%D We handle left, right or middle alignment as well as fixed
+%D or free widths and heights. Each combination gets its own
+%D macro.
+
+%D The following code handles one-liners: \type{align={line,flushright}}.
+%D Beware, since we entered a group and either or not grab the next
+%D bgroup token, we need to finish the group in the oneliner mode.
+
+\ifx\raggedoneliner\undefined \chardef\raggedoneliner\zerocount \fi
+
+\def\doformatonelinerbox % beware: assumes explicit preceding bgroup
+ {\ifcase\raggedoneliner
+ \expandafter\nodoformatonelinerbox
+ \else
+ \expandafter\dodoformatonelinerbox
+ \fi}
+
+\def\dodoformatonelinerbox
+ {\dowithnextboxcontent
+ {\ignorespaces}
+ {\hbox to \hsize
+ {\ifcase\raggedstatus\or\hss\or\hss\fi
+ \unhbox\nextbox \removeunwantedspaces
+ \ifcase\raggedstatus\or \or\hss\or\hss\fi}%
+ \egroup}
+ \hbox}
+
+\def\nodoformatonelinerbox % grabs {
+ {\let\next=}
+
+%D The handlers:
+
+\def\framedforgetall{\forgetall}
+
+\def\setframedforegroundcolor
+ {\edef\colorattributehash{\framedparameterhash\c!foregroundcolor}%
+ \ifx\colorattributehash\empty\else\dosetcolorattribute\colorattributehash\c!foregroundcolor\fi}
+
+\def\doformatboxSomeFormat
+ {\vbox to \!!framedheight
+ \bgroup
+ \let\postprocessframebox\relax
+ \framedforgetall
+ \setframedforegroundcolor
+ \oninterlineskip
+ \hsize\!!framedwidth
+ \vsize\!!framedheight
+ \doframedsetups
+ \raggedcommand
+ \dobeforeframedbox
+ \bgroup
+ \localbegstrut
+ \aftergroup\localendstrut
+ \aftergroup\doafterframedbox
+ \aftergroup\egroup
+ \doformatonelinerbox}
+
+\def\doformatboxNoFormat
+ {\vbox to \!!framedheight
+ \bgroup
+ \let\postprocessframebox\relax
+ \framedforgetall
+ \setframedforegroundcolor
+ \oninterlineskip
+ \hsize\!!framedwidth
+ \vsize\!!framedheight
+ \doframedsetups
+ \raggedcenter
+ \vss
+ \bgroup
+ \localbegstrut
+ \aftergroup\localendstrut
+ \aftergroup\vss
+ \aftergroup\egroup
+ \doformatonelinerbox}
+
+\def\doformatboxHeight
+ {\vbox to \!!framedheight
+ \bgroup
+ \let\postprocessframebox\relax
+ \framedforgetall
+ \setframedforegroundcolor
+ \oninterlineskip
+ \doframedsetups
+ \raggedcommand
+ \vss
+ \bgroup
+ \aftergroup\localendstrut
+ \aftergroup\vss
+ \aftergroup\egroup
+ \localbegstrut
+ \doformatonelinerbox}
+
+\def\doformatboxWidth
+ {\vbox
+ \bgroup
+ \let\postprocessframebox\relax
+ \framedforgetall
+ \setframedforegroundcolor
+ \oninterlineskip
+ \hsize\!!framedwidth
+ \doframedsetups
+ \raggedcommand
+ \dobeforeframedbox
+ \bgroup
+ \localbegstrut
+ \aftergroup\localendstrut
+ \aftergroup\doafterframedbox
+ \aftergroup\egroup
+ \doformatonelinerbox}
+
+\def\doformatboxVSize
+ {\vbox to \!!framedheight
+ \bgroup
+ \let\postprocessframebox\relax
+ \framedforgetall
+ \setframedforegroundcolor
+ \vsize\!!framedheight
+ \doframedsetups
+ \vss
+ \bgroup
+ \aftergroup\vss
+ \aftergroup\egroup
+ \hbox
+ \bgroup
+ \aftergroup\egroup
+ \localstrut
+ \doformatonelinerbox}
+
+\def\doformatboxHSize
+ {\hbox to \!!framedwidth
+ \bgroup
+ \let\postprocessframebox\relax
+ \framedforgetall
+ \setframedforegroundcolor
+ \doframedsetups
+ \hss
+ \localstrut
+ \bgroup
+ \aftergroup\hss
+ \aftergroup\egroup
+ \doformatonelinerbox}
+
+\def\doformatboxNoSize
+ {\hbox
+ \bgroup
+ \setframedforegroundcolor
+ \let\postprocessframebox\relax
+ \doframedsetups
+ \localstrut
+ \doformatonelinerbox}
+
+\let\doframedsetups\relax
+
+%D On the next page we show some examples of how these macros
+%D come into action. The examples show us how
+%D \type {fit}, \type {broad} dimensions influence the
+%D formatting. Watch the visualized struts. \footnote {Here we
+%D used \type {\showstruts}.}
+%D
+%D \startpostponing
+%D \bgroup
+%D \showstruts
+%D \dontcomplain
+%D \startlinecorrection
+%D \halign{#\enskip&#\enskip&#\enskip&#\enskip&#\enskip&#\cr
+%D \framed[width=.2\hsize, height=.2\hsize, align=] {a\par b\par c}&
+%D \framed[width=.2\hsize, height=broad, align=] {a\par b\par c}&
+%D \framed[width=.2\hsize, height=fit, align=] {a\par b\par c}&
+%D \framed[width=fit, height=.2\hsize, align=] {a\par b\par c}&
+%D \framed[width=fit, height=broad, align=] {a\par b\par c}&
+%D \framed[width=fit, height=fit, align=] {a\par b\par c}\cr
+%D \noalign{\vskip1em}
+%D \framed[width=.2\hsize, height=.2\hsize, align=yes] {a\par b\par c}&
+%D \framed[width=.2\hsize, height=broad, align=yes] {a\par b\par c}&
+%D \framed[width=.2\hsize, height=fit, align=yes] {a\par b\par c}&
+%D \framed[width=fit, height=.2\hsize, align=yes] {a\par b\par c}&
+%D \framed[width=fit, height=broad, align=yes] {a\par b\par c}&
+%D \framed[width=fit, height=fit, align=yes] {a\par b\par c}\cr
+%D \noalign{\vskip1em}
+%D \framed[width=.2\hsize, height=.2\hsize, align=right] {a\par b\par c}&
+%D \framed[width=.2\hsize, height=broad, align=right] {a\par b\par c}&
+%D \framed[width=.2\hsize, height=fit, align=right] {a\par b\par c}&
+%D \framed[width=fit, height=.2\hsize, align=right] {a\par b\par c}&
+%D \framed[width=fit, height=broad, align=right] {a\par b\par c}&
+%D \framed[width=fit, height=fit, align=right] {a\par b\par c}\cr
+%D \noalign{\vskip1em}
+%D \framed[width=.2\hsize, height=.2\hsize, align=left] {a\par b\par c}&
+%D \framed[width=.2\hsize, height=broad, align=left] {a\par b\par c}&
+%D \framed[width=.2\hsize, height=fit, align=left] {a\par b\par c}&
+%D \framed[width=fit, height=.2\hsize, align=left] {a\par b\par c}&
+%D \framed[width=fit, height=broad, align=left] {a\par b\par c}&
+%D \framed[width=fit, height=fit, align=left] {a\par b\par c}\cr
+%D \noalign{\vskip1em}
+%D \framed[width=.2\hsize, height=.2\hsize, align=middle] {a\par b\par c}&
+%D \framed[width=.2\hsize, height=broad, align=middle] {a\par b\par c}&
+%D \framed[width=.2\hsize, height=fit, align=middle] {a\par b\par c}&
+%D \framed[width=fit, height=.2\hsize, align=middle] {a\par b\par c}&
+%D \framed[width=fit, height=broad, align=middle] {a\par b\par c}&
+%D \framed[width=fit, height=fit, align=middle] {a\par b\par c}\cr}
+%D \stoplinecorrection
+%D \blank[2*big]
+%D \egroup
+%D \stoppostponing
+
+%D \macros
+%D {framednoflines, framedlastlength}
+%D
+%D It is possible to let the frame macro calculate the width
+%D of a centered box automatically (\type {fit}). When
+%D doing so, we need to reshape the box:
+
+\newcount\framednoflines
+\newdimen\framedlastlength
+
+\def\resetshapeframebox
+ {\framednoflines \zerocount
+ \framedlastlength\zeropoint}
+
+\let\framedboxwidth \!!zeropoint
+\let\framedboxheight\!!zeropoint
+\let\framedboxdepth \!!zeropoint
+
+\def\doreshapeframedbox{\ifvbox\framebox\ctxlua{commands.doreshapeframedbox(\number\framebox)}\fi}
+
+%D The two variables \type {\framednoflines} and \type
+%D {\framedlastlength} can be used in a second pass to
+%D optimized framed material.
+
+% torture test / strange case (much depth) / method 2 needed
+%
+% \startTEXpage[frame=on]
+% \startformula \startalign \NC A \NC B \NR \intertext{test} \NC C \NC D \NR \stopalign \stopformula
+% test outside formula
+% \startformula \startalign \NC A \NC B \NR \intertext{test} \NC C \NC D \NR \stopalign \stopformula
+% \blank[big]
+% \startformula \startalign \NC \int_01 \NC B \NR \intertext{test} \NC \int_01 \NC D \NR \stopalign \stopformula
+% test outside formula
+% \startformula \startalign \NC \int_01 \NC B \NR \intertext{test} \NC \int_01 \NC D \NR \stopalign \stopformula
+% \stopTEXpage
+
+%D The examples on the next page show how one can give the
+%D frame as well as the background an additional offset and
+%D even a bit more depth. The blue outline is the frame, the
+%D red box is the background and the small black outline is the
+%D visualization of the resulting box, that is, we applied
+%D \type{\ruledhbox} to the result.
+
+%D \startpostponing
+%D \bgroup
+%D \unprotect
+%D \dontcomplain
+%D
+%D \startbuffer
+%D \vbox to \vsize
+%D \bgroup
+%D \startalignment[middle]
+%D \vss
+%D \dontleavehmode\vbox to .8\vsize
+%D \bgroup
+%D \hsize=300pt
+%D \setupframed
+%D [background=color,
+%D backgroundcolorachtergrondkleur=darkred,
+%D width=300pt,
+%D height=60pt,
+%D framecolorkaderkleur=DemoBlue,
+%D rulethickness=2pt]
+%D \def\status%
+%D {backgroundoffset=\framedparameter\c!backgroundoffset\\
+%D frameoffset=\framedparameter\c!frameoffset\\
+%D depth=\framedparameter\c!depth}
+%D \dontleavehmode \ruledhbox{\framed[backgroundoffset=0pt,frameoffset=0pt]{\status}}
+%D \vss
+%D \dontleavehmode \ruledhbox{\framed[backgroundoffset=5pt,frameoffset=0pt]{\status}}
+%D \vss
+%D \dontleavehmode \ruledhbox{\framed[backgroundoffset=0pt,frameoffset=5pt]{\status}}
+%D \vss
+%D \dontleavehmode \ruledhbox{\framed[backgroundoffset=2pt,frameoffset=5pt]{\status}}
+%D \vss
+%D \dontleavehmode \ruledhbox{\framed[backgroundoffset=5pt,frameoffset=2pt]{\status}}
+%D \vss
+%D \dontleavehmode \ruledhbox{\framed[backgroundoffset=5pt,frameoffset=5pt]{\status}}
+%D \egroup
+%D \vss
+%D \stopalignment
+%D \egroup
+%D \stopbuffer
+%D
+%D \getbuffer \page
+%D
+%D {\setupframed[depth=4pt]\getbuffer} \page
+%D
+%D \protect
+%D \egroup
+%D \stoppostponing
+
+%D When typesetting the framed box inline, we have to keep the
+%D baseline intact outside as well as inside the framed box.
+
+\def\doinlineframedbox
+ {\scratchdimen\dimexpr\strutdp+\ruledlinewidth\relax
+ \ifboxhasoffset
+ \advance\scratchdimen \framedparameter\c!offset
+ \fi
+ \setbox\framebox\hbox{\lower\scratchdimen\box\framebox}%
+ \ht\framebox\strutht
+ \dp\framebox\strutdp
+ \box\framebox}
+
+%D We can also lower the box over the natural depth of the
+%D line.
+
+\def\doloweredframedbox
+ {\ht\framebox\dimexpr\ht\framebox+\dp\framebox-\strutdp\relax
+ \dp\framebox\strutdp
+ \box\framebox}
+
+%D Hanging the content is mainly meant for cases like the
+%D following:
+%D
+%D \starttyping
+%D \framed[strut=no]
+%D {\framed[height=2cm,location=hanging]{test}%
+%D \framed[height=1cm,location=hanging]{test}}
+%D \stoptyping
+
+\def\dohangingframedbox % best with strut=no
+ {\scratchdimen\dimexpr\ht\framebox+\dp\framebox\relax
+ \ht\framebox\zeropoint
+ \dp\framebox\scratchdimen}
+
+%D We can draw lines from left to right and top to bottom by
+%D using the normal \type{\hairline} command. Both directions
+%D need a different treatment.
+%D
+%D \startbuffer
+%D \framed[width=4cm] {alfa\hairline beta\hairline gamma}
+%D \framed[height=2cm] {alfa\hairline beta\hairline gamma}
+%D \framed[width=4cm,height=2cm]{alfa\hairline beta\hairline gamma}
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D \startlinecorrection
+%D \hbox{\getbuffer}
+%D \stoplinecorrection
+%D
+%D These macros try to adapt their behaviour as good as
+%D possible to the circumstances and act as natural as
+%D possible.
+
+\def\vboxedhairline
+ {\bgroup
+ \dimen2=\ifboxhasoffset \localoffset \else \zeropoint \fi
+ \dimen4=\dimexpr\dimen2+\ruledlinewidth\relax
+ \setbox0\vbox
+ {\advance\hsize 2\dimen4
+ \vskip\dimen2
+ \hrule
+ \!!height\ruledlinewidth
+ \!!depth\zeropoint
+ \!!width\hsize
+ \vskip\dimen2}%
+ %\endgraf\nointerlineskip\endgraf
+ %\moveleft\dimen4\box0
+ %\endgraf\nointerlineskip\localbegstrut
+ \endgraf\obeydepth\nointerlineskip
+ \moveleft\dimen4\box0
+ \endgraf\nointerlineskip\localbegstrut % beware, we might kill it in a style using \vskip\lineheight
+ \egroup} % so this must not be changed
+
+\def\hboxedhairline % use framed dimen
+ {\bgroup
+ \dimen2=\ifboxhasoffset \localoffset \else \zeropoint \fi
+ \ifboxhasheight
+ \dimen4\dimexpr\localheight/2+\strutdp-2\ruledlinewidth\relax
+ \dimen6\dimexpr\localheight/2-\strutdp+2\ruledlinewidth\relax
+ \else
+ \dimen4\dimexpr\strutht+\dimen2\relax
+ \dimen6\dimexpr\strutdp+\dimen2\relax
+ \fi
+ \unskip
+ \setbox\scratchbox\hbox
+ {\hskip\dimen2
+ \vrule\!!height\dimen4\!!depth\dimen6\!!width\ruledlinewidth
+ \hskip\dimen2}%
+ \ht\scratchbox\strutht
+ \dp\scratchbox\strutdp
+ \box\scratchbox
+ \ignorespaces
+ \egroup}
+
+%D The argument of the frame command accepts \type{\\} as a
+%D sort of newline signal. In horizontal boxes it expands to a
+%D space.
+
+\def\vboxednewline
+ {\endgraf\ignorespaces}
+
+\def\hboxednewline
+ {\unskip\normalspace\ignorespaces}
+
+%D We can set each rule on or off. The default setting is
+%D inherited from \type{frame}. An earlier implementation
+%D use a bit different approach, but the new one seems more
+%D natural:
+%D
+%D \bgroup
+%D \setuptyping[margin=0pt]
+%D \startlinecorrection
+%D \startbuffer
+%D \framed[offset=overlay,frame=on]{\darkred\blackrule}
+%D \stopbuffer
+%D \hbox{\getbuffer\vbox{\typebuffer}}
+%D
+%D \startbuffer
+%D \framed[offset=overlay,frame=on,bottomframe=off]{\darkred\blackrule}
+%D \stopbuffer
+%D \hbox{\getbuffer\vbox{\typebuffer}}
+%D
+%D \startbuffer
+%D \framed[offset=overlay,frame=on,bottomframe=on]{\darkred\blackrule}
+%D \stopbuffer
+%D \hbox{\getbuffer\vbox{\typebuffer}}
+%D
+%D \startbuffer
+%D \framed[offset=overlay,frame=off]{\darkred\blackrule}
+%D \stopbuffer
+%D \hbox{\getbuffer\vbox{\typebuffer}}
+%D
+%D \startbuffer
+%D \framed[offset=overlay,frame=off,bottomframe=off]{\darkred\blackrule}
+%D \stopbuffer
+%D \hbox{\getbuffer\vbox{\typebuffer}}
+%D
+%D \startbuffer
+%D \framed[offset=overlay,frame=off,bottomframe=on]{\darkred\blackrule}
+%D \stopbuffer
+%D \hbox{\getbuffer\vbox{\typebuffer}}
+%D \stoplinecorrection
+%D \egroup
+
+%D \macros
+%D {setupblackrules}
+%D
+%D The graphic capabilities of \TEX\ do not go beyond simple
+%D filled rules, except of course when using specials. Let's
+%D start with a warning: using this commands is far more slower
+%D than using the \TEX\ primitives \type{\hrule} and
+%D \type{\vrule}, but they save us some tokens. The
+%D characteristics of these rule drawing command can be set by:
+%D
+%D \showsetup{setupblackrules}
+
+\def\setupblackrules
+ {\dodoubleargument\getparameters[\??bj]}
+
+%D \macros
+%D {blackrule}
+%D
+%D The simple command draws only one rule. Its optional
+%D argument can be used to specify the dimensions. By setting
+%D the width, height or depth to \type {max}, one gets the
+%D natural dimensions.
+%D
+%D \showsetup{blackrule}
+
+\def\complexblackrule[#1]%
+ {\hbox\bgroup\getparameters[\??bj][#1]\domakeblackrule\egroup}
+
+\def\simpleblackrule
+ {\hbox\bgroup\domakeblackrule\egroup}
+
+\def\domakeblackrule
+ {\doif\@@bjwidth \v!max{\def\@@bjwidth {1em}}%
+ \doif\@@bjheight\v!max{\setstrut\let\setstrut\relax\def\@@bjheight{\strutht}}%
+ \doif\@@bjdepth \v!max{\setstrut\def\@@bjdepth {\strutdp}}%
+ \startcolor[\@@bjcolor]% can be made faster, just direct attr
+ \vrule
+ \!!width \@@bjwidth
+ \!!height\@@bjheight
+ \!!depth \@@bjdepth
+ \stopcolor}
+
+\definecomplexorsimple\blackrule
+
+%D \macros
+%D {blackrules}
+%D
+%D One can call for a sequence of black rules, if needed
+%D equally spaced over the given width.
+%D
+%D \showsetup{blackrules}
+%D
+%D The two alternative calls are therefore:
+%D
+%D \startbuffer
+%D Tell me, is this according to the \blackrules[n=6]?
+%D These \blackrules[alternativevariant=b,n=10,distance=.2em,width=4cm] are quite clear.
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D or:
+%D
+%D \startvoorbeeld
+%D \startlines
+%D \getbuffer
+%D \stoplines
+%D \stopvoorbeeld
+%D
+%D We could of course have implemented this macro using
+%D \type{\leaders}, but this would probably have taken more
+%D tokens.
+
+\def\doblackrules[#1]%
+ {\hbox\bgroup
+ \getparameters[\??bj][#1]%
+ \!!widtha\@@bjwidth
+ \!!widthb\@@bjdistance
+ \doif\@@bjalternative\c!b
+ {\scratchcounter\@@bjn
+ \ifnum\scratchcounter=\plusone
+ \!!widthb\zeropoint
+ \else
+ \advance\scratchcounter \minusone
+ \advance\!!widtha -\scratchcounter\!!widthb
+ \divide \!!widtha \@@bjn
+ \fi}%
+ \startcolor[\@@bjcolor]%
+ \dorecurse\@@bjn
+ {\vrule
+ \!!width \!!widtha
+ \!!height\@@bjheight
+ \!!depth \@@bjdepth
+ \hskip\!!widthb}%
+ \unskip
+ \stopcolor
+ \egroup}
+
+\unexpanded\def\blackrules
+ {\dosingleempty\doblackrules}
+
+%D The next commands can be used to draw margin rules. We
+%D support two methods: \marginrule{one for in||line use} and
+%D one that acts on a paragraph. Drawing a margin rule is
+%D rather straightforward because we can use the commands that
+%D put text in the margin.
+
+\def\dodrawmarginrule
+ {\setbox\scratchbox\hbox
+ {\vrule\!!depth\strutdepth\!!height\strutheight\!!width\@@karulethickness}%
+ \smashbox\scratchbox % no \vsmash !!!
+ \box\scratchbox}
+
+\def\drawmarginrule
+ {\strut\inleft{\dodrawmarginrule}}
+
+%D \macros
+%D {marginrule}
+%D
+%D The first method gobbles words and simply puts a bar in the
+%D margin. This method is not entirely robust.
+%D
+%D \showsetup{marginrule}
+
+\definecomplexorsimple\marginrule
+
+\def\simplemarginrule
+ {\let\processword\drawmarginrule
+ \processwords}
+
+\def\complexmarginrule[#1]%
+ {\ifnum#1<\@@kalevel\relax \else
+ \def\@@kadefaultwidth{#1}%
+ \expandafter\simplemarginrule
+ \fi}
+
+%D We need an auxiliary variable
+
+\def\@@kadefaultwidth{1}
+
+%D \macros
+%D {setupmarginrules}
+%D
+%D This macro definitions show us that we can pass an optional
+%D level, which is matched against the previous set one. The
+%D level can be set up with
+%D
+%D \showsetup{setupmarginrules}
+
+\def\setupmarginrules
+ {\dodoubleargument\getparameters[\??ka]}
+
+%D \macros
+%D {startmarginrule}
+%D
+%D The second method collects text and reformats it afterwards,
+%D using the shapebox macros. We prevent local margin rules.
+%D
+%D \showsetup{startmarginrule}
+
+\definecomplexorsimple\startmarginrule
+
+\def\simplestartmarginrule
+ {\bgroup
+ \let\drawmarginrule\relax
+ \let\stopmarginrule\dostopmarginrule
+ \beginofshapebox}
+
+\def\complexstartmarginrule[#1]%
+ {\bgroup
+ \let\drawmarginrule\relax
+ \ifnum#1<\@@kalevel\relax
+ \let\stopmarginrule\egroup
+ \else
+ \def\@@kadefaultwidth{#1}%
+ \let\stopmarginrule\dostopmarginrule
+ \expandafter\beginofshapebox
+ \fi}
+
+\def\dostopmarginrule
+ {\endofshapebox
+ \reshapebox
+ {\hbox{\inleftmargin{\dodrawmarginrule}\box\shapebox}}%
+ \flushshapebox
+ \egroup}
+
+%D \startbuffer
+%D \setupmarginrules[level=5]
+%D
+%D \startmarginrule[1]
+%D First we set the level at~5. Next we typeset this first
+%D paragraph as a level~1 one. As expected no rule show up.
+%D \stopmarginrule
+%D
+%D \startmarginrule[5]
+%D The second paragraph is a level~5 one. As we can see here,
+%D the marginal rule gets a width according to its level.
+%D \stopmarginrule
+%D
+%D \startmarginrule[8]
+%D It will of course be no surprise that this third paragraph
+%D has a even thicker margin rule. This behavior can be
+%D overruled by specifying the width explictly.
+%D \stopmarginrule
+%D \stopbuffer
+%D
+%D In next example we show most features. Watch the rule
+%D thickness adapting itself to the level.
+%D
+%D \startvoorbeeld
+%D \getbuffer
+%D \stopvoorbeeld
+%D
+%D We just said:
+%D
+%D \typebuffer
+
+%D \macros
+%D {vl, hl}
+%D
+%D The command \type{\vl} draws a vertical rule \vl\ with strut
+%D dimensions, multiplied with the factor specified in the
+%D optional argument. The height and depth are clipped \vl[3]
+%D to the baselinedistance. Its horizontal counterpart
+%D \type{\hl} draws a horizontal rule \hl\ with a width of 1em,
+%D multiplied with the optional factor. The horizontal rule is
+%D drawn on top of the baseline.
+%D
+%D \showsetup{vl}
+%D \showsetup{hl}
+
+\def\complexvl[#1]%
+ {\bgroup
+ \!!dimena#1\strutht
+ \!!dimenb#1\strutdp
+ \setbox\scratchbox\hbox
+ {\vrule
+ \!!width \linewidth
+ \!!height\!!dimena
+ \!!depth \!!dimenb}%
+ \dp\scratchbox\strutdp
+ \ht\scratchbox\strutht
+ \box\scratchbox
+ \egroup}
+
+\def\complexhl[#1]%
+ {\hbox
+ {\vrule
+ \!!width #1\s!em
+ \!!height\linewidth
+ \!!depth \zeropoint}}
+
+\definecomplexorsimple\vl \def\simplevl{\complexvl[1]}
+\definecomplexorsimple\hl \def\simplehl{\complexhl[1]}
+
+%D \macros
+%D {hairline, thinrule, thinrules, setupthinrules}
+%D
+%D Drawing thin lines can of course easily be accomplished by
+%D the \TEX\ primitives \type{\hrule} and \type{\vrule}. The
+%D next few macros however free us from some specifications.
+%D
+%D \startbuffer
+%D some text
+%D
+%D \hairline
+%D
+%D some more text
+%D
+%D \thinrule
+%D
+%D more and more text
+%D
+%D hi \thinrule\ there
+%D
+%D and then the final text
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D becomes
+%D
+%D \startvoorbeeld
+%D \getbuffer
+%D \stopvoorbeeld
+%D
+%D So we've got
+%D
+%D \showsetup{hairline}
+%D \showsetup{thinrule}
+%D
+%D Both can be set up with:
+%D
+%D \showsetup{setupthinrules}
+%D
+%D We also have
+%D
+%D \showsetup{thinrules}
+%D
+%D which looks like: \thinrules[n=2]
+
+\def\thinrule
+ {\strut
+ \bgroup
+ \chardef\ruletype\plusone
+ \processaction
+ [\@@dlalternative]
+ [ \v!a=>\chardef\ruletype0,% no line
+ %\v!b=>\chardef\ruletype1,% height/depth
+ \v!c=>\chardef\ruletype2,% topheight/botdepth
+ % 11=>\chardef\ruletype1,% fallback for backgrounds
+ 0=>\chardef\ruletype0,% compatible with backgrounds
+ % 1=>\chardef\ruletype1,% compatible with backgrounds
+ 2=>\chardef\ruletype2]% compatible with backgrounds
+ \doifsomething\@@dlrulethickness
+ {\linewidth\@@dlrulethickness}%
+ \ifdim\linewidth=\zeropoint
+ \chardef\ruletype\zerocount
+ \else
+ \doifnot\@@dlframe\v!on{\chardef\ruletype\zerocount}%
+ \fi
+ \ifnum\ruletype=\plusone
+ \doif\@@dlheight\v!max{\let\@@dlheight\!!plusone}%
+ \doif\@@dldepth \v!max{\let\@@dldepth \!!plusone}%
+ \else
+ \let\@@dlheight\!!plusone
+ \let\@@dldepth\!!plusone
+ \fi
+ \freezedimensionwithunit\@@dlheight\strutht
+ \freezedimensionwithunit\@@dldepth\strutdp
+ \divide\linewidth \plustwo
+ \doifelse\@@dlbackground\v!color
+ {\startcolor[\@@dlbackgroundcolor]%
+ \ifnum\ruletype=\plustwo % prevent overshoot due to rounding
+ \leaders
+ \hrule
+ \!!height\dimexpr\@@dlheight-.5\linewidth\relax
+ \!!depth \dimexpr\@@dldepth -.5\linewidth\relax
+ \hfill
+ \else
+ \leaders
+ \hrule
+ \!!height\@@dlheight
+ \!!depth \@@dldepth
+ \hfill
+ \fi
+ \stopcolor
+ \ifcase\ruletype
+ % no rule
+ \or
+ \startcolor[\@@dlcolor]%
+ \hfillneg
+ \leaders\hrule\!!height\linewidth\!!depth\linewidth\hfill
+ \stopcolor
+ \or
+ \startcolor[\@@dlcolor]%
+ \hfillneg\leaders\hrule\!!height\dimexpr-\@@dldepth+\linewidth\relax\!!depth\@@dldepth\hfill
+ \hfillneg\leaders\hrule\!!height\@@dlheight\!!depth\dimexpr-\@@dlheight+\linewidth\relax\hfill
+ \stopcolor
+ \fi}
+ {\ifcase\ruletype \else
+ \startcolor[\@@dlcolor]%
+ \leaders\hrule\!!height\@@dlheight\!!depth\@@dldepth\hfill
+ \stopcolor
+ \fi}%
+ \strut
+ \carryoverpar\egroup}
+
+\def\hairline
+ {\endgraf
+ \thinrule
+ \endgraf}
+
+\def\dosetupthinrules[#1]%
+ {\getparameters[\??dl][#1]}
+
+\def\setupthinrules
+ {\dosingleargument\dosetupthinrules}
+
+\def\dothinrules[#1]%
+ {\bgroup
+ \dosetupthinrules[#1]%
+ \@@dlbefore
+ \assignvalue\@@dlinterlinespace\@@dlinterlinespace{1.0}{1.5}{2.0}%
+ \spacing\@@dlinterlinespace
+ \dorecurse\@@dln
+ {\ifnum\recurselevel=\@@dln \dothinrulesnobreak \else
+ \ifnum\recurselevel=2 \dothinrulesnobreak \fi\fi
+ \thinrule
+ \ifnum\recurselevel<\@@dln\relax
+ % test needed, else messed up whitespace
+ \ifx\@@dlinbetween\empty
+ \softbreak
+ \else
+ \endgraf
+ \nowhitespace
+ \@@dlinbetween
+ \fi
+ \fi}%
+ \doifelsenothing\@@dlafter
+ {\carryoverpar\egroup}
+ {\@@dlafter\egroup}}
+
+\def\thinrules
+ {\dosingleempty\dothinrules}
+
+%D A couple of examples are given below.
+%D
+%D \startbuffer
+%D \setupthinrules[n=3,inbetween=,color=gray]
+%D
+%D test test \thinrules\ test test \par
+%D test test \thinrules [color=green] test test \par
+%D test test \thinrules [height=max, depth=max] test test \par
+%D
+%D \setupthinrules[height=.9,depth=.9]
+%D
+%D test test \thinrules\ test test \par
+%D test test \thinrules [alternativevariant=b] test test \par
+%D test test \thinrules [alternativevariant=c] test test \par
+%D test test \thinrules [alternativevariant=c,inbetween=\vskip2ex] test test \par
+%D \stopbuffer
+%D
+%D \typebuffer {\getbuffer}
+%D
+%D There are a couple of alternative ways to visualize rules
+%D using backgrounds. At first sight these may look strange,
+%D but they make sense in educational settings. The
+%D alternatives are more or less compatible with the more
+%D advanced \METAPOST\ based implementation.
+%D
+%D \startbuffer[a]
+%D \setupthinrules
+%D [n=2,
+%D backgroundcolor=gray ,
+%D rulethickness=1pt,
+%D colorkleur=donkerblauw,
+%D after=\blank,
+%D before=\blank]
+%D \stopbuffer
+%D
+%D \typebuffer[a]
+%D
+%D \startbuffer[b]
+%D \thinrules[alternativevariant=a]
+%D \thinrules[alternativevariant=b]
+%D \thinrules[alternativevariant=c]
+%D \stopbuffer
+%D
+%D \typebuffer[b] \getbuffer[a,b]
+%D
+%D \startbuffer[b]
+%D \thinrules[alternativevariant=a,background=color]
+%D \thinrules[alternativevariant=b,background=color]
+%D \thinrules[alternativevariant=c,background=color]
+%D \stopbuffer
+%D
+%D \typebuffer[b] \getbuffer[a,b]
+%D
+%D \startbuffer[b]
+%D \thinrules[alternativevariant=a,height=.8,depth=.8,background=color]
+%D \thinrules[alternativevariant=b,height=.8,depth=.8,background=color]
+%D \thinrules[alternativevariant=c,height=.8,depth=.8,background=color]
+%D \stopbuffer
+%D
+%D \typebuffer[b] \getbuffer[a,b]
+
+%D \macros
+%D {optimizethinrules}
+%D
+%D By saying \type {\thinrulestrue} or \type {-false}, we
+%D can influence the way dangling lines are handled.
+
+\newif\ifoptimizethinrules \optimizethinrulestrue
+
+\def\dothinrulesnobreak
+ {\ifoptimizethinrules\penalty500\fi}
+
+%D \macros
+%D {startframedtext, setupframedtexts, defineframedtext}
+%D
+%D The general framing command we discussed previously, is not
+%D entirely suited for what we call framed texts, as for
+%D instance used in intermezzo's. The next examples show what
+%D we have in mind.
+%D
+%D \startbuffer[framed-0]
+%D \setupframedtexts
+%D [frame=off,
+%D width=\hsize,
+%D background=screen]
+%D
+%D \startframedtext
+%D By default the framed text is centered \dots
+%D \stopframedtext
+%D
+%D \startframedtext[right]
+%D \dots\ but we can also align left, middle and right.
+%D \stopframedtext
+%D \stopbuffer
+%D
+%D \startbuffer[framed-1]
+%D \defineframedtext
+%D [Example]
+%D [width=6cm,
+%D height=5cm]
+%D
+%D \startExample
+%D \typebuffer[framed-1]
+%D \stopExample
+%D \stopbuffer
+%D
+%D \startbuffer[framed-2]
+%D \defineframedtext
+%D [Example]
+%D [width=6cm]
+%D
+%D \startExample
+%D \typebuffer[framed-2]
+%D \stopExample
+%D \stopbuffer
+%D
+%D \startbuffer[framed-3]
+%D \defineframedtext
+%D [Example]
+%D [height=5cm]
+%D
+%D \startExample
+%D \typebuffer[framed-3]
+%D \stopExample
+%D \stopbuffer
+%D
+%D \startbuffer[framed-4]
+%D \defineframedtext
+%D [Example]
+%D [width=fit,height=broad]
+%D
+%D \Example{a very exciting example}
+%D \stopbuffer
+%D
+%D \bgroup \setuptyping[margin=0pt] \getbuffer[framed-0] \egroup
+%D \bgroup \setuptyping[margin=0pt] \getbuffer[framed-1] \egroup
+%D \bgroup \setuptyping[margin=0pt] \getbuffer[framed-2] \egroup
+%D \bgroup \setuptyping[margin=0pt] \getbuffer[framed-3] \egroup
+%D \bgroup \setuptyping[margin=0pt] \getbuffer[framed-4] \egroup
+%D
+%D Here we can see that we have a predefined framed text class
+%D as well as the tools for defining our own. So we have:
+%D
+%D \showsetup{setupframedtexts}
+%D
+%D as well as the definition command:
+%D
+%D \showsetup{defineframedtext}
+%D
+%D that generates two commands:
+%D
+%D \showsetup{start<<framedtext>>}
+%D \showsetup{<<framedtext>>}
+%D
+%D The next definition shows the defaults.
+
+\def\dodefineframedtext[#1][#2]%
+ {\presetlocalframed[\??kd#1]%
+ \getparameters[\??kd#1]
+ [\c!width=0.75\hsize,
+ \c!height=\v!fit,
+ \c!align=\v!yes,
+ \c!top=,
+ \c!bottom=\vfill,
+ \c!offset=1em,
+ \c!bodyfont=,
+ \c!style=,
+ \c!color=,
+ \c!left=,
+ \c!right=\hfill,
+ \c!before=\blank,
+ \c!after=\blank,
+ \c!inner=,
+ \c!frame=\v!on,
+ \c!topframe=,
+ \c!bottomframe=,
+ \c!leftframe=,
+ \c!rightframe=,
+ \c!radius=.5\bodyfontsize,
+ \c!corner=\v!rectangular,
+ \c!foregroundcolor=,
+ \c!foregroundstyle=,
+ \c!background=,
+ \c!backgroundcolor=,
+ \c!backgroundscreen=\@@rsscreen,
+ \c!linecorrection=\v!on,
+ \c!depthcorrection=\v!on,
+ \c!margin=\v!standard,
+ \c!orientation=,
+ \c!indenting=,
+ #2]%
+ \setvalue{\e!start#1}{\dostartframedtext[#1]}%
+ \setvalue{\e!stop #1}{\dostopframedtext }%
+ \setvalue {#1}{\doframedtext [#1]}}
+
+\def\defineframedtext
+ {\dodoubleempty\dodefineframedtext}
+
+%D We define the general (and original) case by just saying:
+
+\defineframedtext[\v!framedtext]
+
+%D We need several steps before the actual job is done,
+%D because we have to handle an optional identifier (and
+%D because these commands evolved out of a single case).
+
+\def\framedtextparameter#1#2%
+ {\csname\??kd#1#2\endcsname}
+
+\def\dosetupframedtexts[#1][#2]%
+ {\ifsecondargument
+ \def\docommand##1{\getparameters[\??kd##1][#2]}%
+ \processcommacommand[#1]\docommand % new, #1 may be macro
+ \else
+ \getparameters[\??kd\v!framedtext][#1]%
+ \fi}
+
+\def\setupframedtexts
+ {\dodoubleempty\dosetupframedtexts}
+
+\def\dostartframedtext
+ {\bgroup\dotripleempty\dodostartframedtext}
+
+\def\dodostartframedtext[#1][#2][#3]%
+ {\doifassignmentelse{#2}
+ {\dododostartframedtext[#1][][#2]}
+ {\dododostartframedtext[#1][#2][#3]}}
+
+\setfalse\framedtextlocationnone
+
+\def\checkframedtext % messy dependency
+ {\ifinsidefloat
+ \localhsize\hsize
+ \else\ifdim\sidefloatvsize>\zeropoint % will be proper handle
+ % \strut % rather clean way to invoke the sidefloat OTR
+ % \setbox0=\lastbox % and get the widths set, so from now on we
+ % \setlocalhsize % can have framed texts alongside sidefloats
+ \checksidefloat
+ \setlocalhsize
+ \else
+ \localhsize\hsize
+ \fi\fi}
+
+\def\dododostartframedtext[#1][#2][#3]% #3 only passed to framed, not to framedtext
+ {\doifsomething{#2}{\setvalue{\??kd#1\c!location}{#2}}% does not listen to #3
+ \setfalse\framedtextlocationnone
+ \processaction % \v!low en \v!depth are already taken !
+ [\framedtextparameter{#1}\c!location]
+ [ \v!left=>\letvalue{\??kd#1\c!left }\relax
+ \letvalue{\??kd#1\c!right}\hfill,
+ \v!right=>\letvalue{\??kd#1\c!left }\hfill
+ \letvalue{\??kd#1\c!right}\relax,
+ \v!middle=>\letvalue{\??kd#1\c!left }\hfill
+ \letvalue{\??kd#1\c!right}\hfill,
+ \v!none=>\letvalue{\??kd#1\c!left }\relax % new
+ \letvalue{\??kd#1\c!right}\relax % new
+ \settrue\framedtextlocationnone]%
+ \letvalue{\??kd#1\c!location}\empty
+ % removed 06/2001
+ % \forgetparindent
+ % added 06/2001 [see demo-bbv]
+ \localhsize\hsize \checkframedtext
+ % so far
+ \setbox\framebox\vbox
+ \startboxedcontent
+ \hsize\localhsize
+ % \insidefloattrue % ? better
+ \normalexpanded{\noexpand\switchtobodyfont[\framedtextparameter{#1}\c!bodyfont]}%
+ \startcolor[\framedtextparameter{#1}\c!color]%
+ \localframed[\??kd#1][\c!strut=\v!no,#3]% todo: use delayedstrut
+ \bgroup
+ \let\\=\endgraf
+ \framedtextparameter{#1}\c!inner % oud spul
+ \doifvalue{\??kd#1\c!depthcorrection}\v!on % new, inside box
+ {\bgroup
+ \verticalstrut
+ % we need \nowhitespace in case of setups setting whitespace
+ % nb, not safe, text vs \vbox as next
+ \vskip-\struttotal
+ \nowhitespace % na vskip ! new 20/05/2004, fails with next content being box (\scale{..})
+ }%
+ \doinhibitblank % \blank[\v!disable]% plaatst signal
+\setupindenting[\framedtextparameter{#1}\c!indenting]%
+ \doconvertfont{\framedtextparameter{#1}\c!style}\empty
+ \def\dostopframedtext{\dodostopframedtext{#1}{#2}}}
+
+%D The \type {none} option is handy for nested usage, as
+%D in the presentation styles, where we don't want
+%D interference.
+
+\def\dodostopframedtext#1#2% % no \baselinecorrection, see faq docs
+ {\endgraf
+ \removelastskip
+ \doifvalue{\??kd#1\c!depthcorrection}\v!on % local and global
+ {\forgetall
+ \vskip-\struttotal
+ \verticalstrut
+ \egroup
+ \forgetall % brrr too often
+ \vskip-\lineheight
+ % will be an option, not default
+ % \setbaselinecorrections
+ % \donegbotbaselinecorrection
+ \verticalstrut}
+ \stopboxedcontent
+ \stopcolor
+ \ifconditional\framedtextlocationnone
+ \egroup
+ \box\framebox
+ \else\ifinsidefloat
+ \egroup
+ \box\framebox
+ \else
+ \egroup
+ \doplacement[\??kd#1][\c!depthcorrection=\v!off]{\box\framebox}%
+ \fi\fi
+ \egroup}
+
+%D Placement can be ignored:
+%D
+%D \starttyping
+%D \hbox to \hsize \bgroup
+%D \startframedtext[none][width=.5\textwidth] \input tufte \stopframedtext
+%D \startframedtext[none][width=.5\textwidth] \input zapf \stopframedtext
+%D \egroup
+%D
+%D \hbox to \hsize \bgroup
+%D \setupframedtexts[location=none]%
+%D \startframedtext[width=.5\textwidth] \input zapf \stopframedtext
+%D \startframedtext[width=.5\textwidth] \input tufte \stopframedtext
+%D \egroup
+%D \stoptyping
+
+%D The simple brace (or group) delimited case is typeset
+%D slightly different and is not aligned.
+
+\def\doframedtext
+ {\bgroup\dodoubleempty\dodoframedtext}
+
+\def\dodoframedtext[#1][#2]% beware!
+ {\normalexpanded{\noexpand\switchtobodyfont[\getvalue{\??kd#1\c!bodyfont}]}%
+ \localframed[\??kd#1][\c!strut=\v!no,#2]%
+ \bgroup
+ \blank[\v!disable]%
+ \let\\=\endgraf
+ \getvalue{\??kd#1\c!inner}% % kleur naar outer level
+ \dostartattributes{\??kd#1}\c!style\c!color\empty
+ \bgroup
+ \aftergroup\docloseframedtext
+ \let\next=}
+
+\def\docloseframedtext
+ {\removelastskip
+ \dostopattributes
+ \egroup
+ \egroup}
+
+%D \macros
+%D {defineframed}
+%D
+%D One can also define simple framed texts, using:
+%D
+%D \showsetup{defineframed}
+
+\def\defineframed
+ {\dodoubleempty\dodefineframed}
+
+\def\dodefineframed[#1][#2]%
+ {\iffirstargument
+ \setvalue{#1}{\dodoubleempty\doframed[#2]}%
+ \fi}
+
+\def\doframed[#1][#2]%
+ {\framed[#1,#2]}
+
+%D \macros
+%D {textrule, starttextrule, setuptextrules}
+%D
+%D Putting rules before and after a paragraph is very space
+%D sensitive, but the next command handles that quite well. It
+%D comes in two disguises:
+%D
+%D \startbuffer
+%D \textrule[top]{fragments}
+%D \input reich
+%D \textrule
+%D \stopbuffer
+%D
+%D \bgroup \typebuffer \getbuffer \egroup
+%D
+%D \startbuffer
+%D \setuptextrules
+%D [width=90pt,distance=12pt,rulecolor=blue,
+%D bodyfont=small,style=\sc,color=red]
+%D
+%D \starttextrule{Ship Building Tools}
+%D \nl \setuptolerance[tolerant] \input materie
+%D \stoptextrule
+%D \stopbuffer
+%D
+%D \bgroup \typebuffer \getbuffer \egroup
+%D
+%D \startbuffer
+%D \setuptextrules
+%D [location=inmargin,
+%D bodyfont=small,style=slantedbold]
+%D
+%D \starttextrule{wonderful}
+%D \input tufte
+%D \stoptextrule
+%D \stopbuffer
+%D
+%D \bgroup \typebuffer \getbuffer \egroup
+%D
+%D The formal definition of these commands is:
+%D
+%D \showsetup{textrule}
+%D \showsetup{starttextrule}
+%D \showsetup{setuptextrules}
+%D
+%D The implementation looks a bit complicated due to the
+%D optional arguments.
+
+\def\setuptextrules
+ {\dodoubleargument\getparameters[\??tl]}
+
+\def\complextextrule[#1]% if needed we can make it installable
+ {\let\next\dobottomtextrule
+ \processaction
+ [#1]
+ [ \v!top=>\let\next\dotoptextrule,
+ \v!middle=>\let\next\domiddletextrule,
+ \v!bottom=>\let\next\dobottomtextrule]%
+ \dosinglegroupempty\next}
+
+\definecomplexorsimple\textrule
+
+\def\simpletextrule
+ {\dosinglegroupempty\dounknowntextrule}
+
+\def\docomplextextrule#1%
+ {\bgroup
+ \advance\hsize\dimexpr-\rightskip-\leftskip\relax
+ \setbox\scratchbox\hbox to \hsize
+ {\dimen4\dimexpr .5ex+.5\linewidth\relax
+ \dimen6\dimexpr-.5ex+.5\linewidth\relax
+ \doifnothing{#1}\firstargumentfalse
+ \iffirstargument
+ \doifelse\@@tllocation\v!inmargin
+ {\llap{\doattributes\??tl\c!style\c!color{#1}\hskip\leftmargindistance}}
+ {\color[\@@tlrulecolor]
+ {\vrule\!!height\dimen4\!!depth\dimen6\!!width\@@tlwidth}%
+ \hbox spread 2\dimexpr\@@tldistance\relax
+ {\hss\doattributes\??tl\c!style\c!color{\strut#1}\hss}}%
+ \fi
+ \color[\@@tlrulecolor]
+ {\leaders\hrule\!!height\dimen4\!!depth\dimen6\hfill}}%
+ \ht\scratchbox\strutht
+ \dp\scratchbox\strutdp
+ \noindent\box\scratchbox
+%\nobreak\verticalstrut\kern-\struttotal
+% evt \witruimte
+ \egroup}
+
+\def\dotoptextrule#1%
+ {\page[\v!preference] % interferes
+ %\whitespace % no
+ \@@tlbefore
+ \docomplextextrule{#1}%
+% todo, option: \doifnothing{#1}{\ruledvskip-.5ex}
+ \nowhitespace
+ \@@tlinbetween
+ \endgraf}
+
+\def\dodobottomtextrule#1#2%
+ {\ifhmode
+ \endgraf
+ \fi
+ \dimen0\strutdp
+ \ifdim\prevdepth>\strutdp\else % was <\strutdp
+ \ifdim\prevdepth>\zeropoint
+ \advance\dimen0 -\prevdepth
+ \fi
+ \fi
+ \advance\dimen0 .5ex
+ \vskip\dimen0
+% ==
+% \vskip\dimexpr \strutdp + .5ex
+% \ifdim\prevdepth>\strutdp\else\ifdim\prevdepth>\zeropoint-\prevdepth\fi\fi\relax
+%
+ \@@tlinbetween
+ \doifelsenothing{#2}
+ {\bgroup
+ \advance\hsize\dimexpr-\rightskip-\leftskip\relax
+ \nointerlineskip
+ \moveleft-\leftskip\vbox
+ {\color[\@@tlrulecolor]
+ {\hrule\!!depth\linewidth\!!height\zeropoint\!!width\hsize}}%
+ \egroup}
+ {\docomplextextrule{#2}}%
+ \ifvmode\prevdepth\zeropoint\fi
+ #1%
+ \page[\v!preference]}
+
+\def\dobottomtextrule
+ {\dodobottomtextrule\@@tlafter}
+
+\def\domiddletextrule
+ {\dodobottomtextrule\@@tlinbetween}
+
+\def\dounknowntextrule
+ {\iffirstargument
+ \@EA\dotoptextrule
+ \else
+ \@EA\dobottomtextrule\@EA\empty
+ \fi}
+
+%D The grouped commands also supports bodyfont switching:
+
+\def\starttextrule#1%
+ {\bgroup
+ \def\dounknowntextrule{\domiddletextrule}
+ \dotoptextrule{#1}
+ \bgroup
+ \doifsomething\@@tlbodyfont{\switchtobodyfont[\@@tlbodyfont]}}
+
+\def\stoptextrule
+ {\par
+ \egroup
+ \dobottomtextrule\empty
+ \egroup}
+
+%D \macros
+%D {fillinrules, setupfillinrules}
+%D
+%D The next few commands do not really deserve a place in a
+%D core module, because they deal with specific typography.
+%D Nevertheless I decided to make them part of the core,
+%D because they permit us to make questionaires. Let's start
+%D with some examples.
+%D
+%D \fillinrules[n=2,width=fit]{first}
+%D \fillinrules[n=2,width=broad]{first}
+%D \fillinrules[n=2,width=3cm]{first}
+%D \fillinrules[n=2,width=3cm,distance=.5em,separator=:]{first}
+%D \fillinrules[n=2]{first}{last}
+%D \fillintext{first}{last} \input reich \par
+%D
+%D The main command is \type{\fillinrules}. This command takes
+%D one and an optional second argument and sets a paragraph with
+%D empty visualized lines.
+%D
+%D \showsetup{fillinrules}
+%D \showsetup{setupfillinrules}
+
+\def\setupfillinrules
+ {\dodoubleargument\getparameters[\??il]}
+
+\definecomplexorsimpleempty\fillinrules
+
+\def\complexfillinrules[#1]%
+ {\def\docomplexfillinrules##1##2%
+ {\dodocomplexfillinrules[#1]{##1}{##2}{\thinrules
+ [\c!n=\@@iln,\c!interlinespace=\@@ilinterlinespace,\c!before=,\c!after=]}}%
+ \dodoublegroupempty\docomplexfillinrules}
+
+\def\dodocomplexfillinrules[#1]#2#3#4%
+ {\endgraf
+ \@@ilbefore
+ \begingroup
+ \setupfillinrules[#1]%
+ \noindent
+ \doifsomething{#2}
+ {\doifelse\@@ilwidth\v!fit
+ {\let\@@ildistance\!!zeropoint
+ \hbox}
+ {\doifelse\@@ilwidth\v!broad
+ {\hbox}
+ {\hbox to \@@ilwidth}}%
+ \bgroup
+ \doattributes\??il\c!style\c!color{\strut#2\hfill\@@ilseparator}%
+ \hskip\@@ildistance
+ \egroup}%
+ %\hangindent=\wd0\relax % tzt hang=yes,n
+ %\parindent=\hangindent
+ %\box0\relax
+ \setupwhitespace[\v!big]%
+ \ignorespaces
+ #4%
+ \doifsomething{#3}
+ {\kern\@@ildistance
+ \doattributes\??il\c!style\c!color{#3\strut}}%
+ \endgroup
+ \endgraf
+ \@@ilafter}
+
+%D \macros
+%D {fillintext}
+%D
+%D To provide compatible layouts when texts and lines are
+%D mixed, one can typeset a paragraph by using the command
+%D \type{\fillintext}.
+%D
+%D \showsetup{fillintext}
+
+\definecomplexorsimpleempty\fillintext
+
+\def\complexfillintext[#1]% rather rough, using an \unhbox is suboptimal
+ {\def\docomplexfillintext##1##2%
+ {\dowithnextbox
+ {\dodocomplexfillinrules[#1]{##1}{\hfill##2}{\unhbox\nextbox\unskip}}%
+ \hbox\bgroup\let\par\egroup\ignorespaces}%
+ \dodoublegroupempty\docomplexfillintext}
+
+%D \macros
+%D {fillinline, setupfillinlines}
+%D
+%D Another member of the family takes care of putting a (often
+%D small) rule after a piece of text, like
+%D
+%D \startbuffer
+%D \fillinline \input reich \par
+%D \fillinline[margin=0cm] \input reich \par
+%D \stopbuffer
+%D
+%D \startvoorbeeld
+%D \getbuffer
+%D \stopvoorbeeld
+%D
+%D which was typeset by saying:
+%D
+%D \typebuffer
+%D
+%D The two commands that take care of this are:
+%D
+%D \showsetup{fillinline}
+%D \showsetup{setupfillinlines}
+
+\def\setupfillinlines
+ {\dodoubleargument\getparameters[\??iv]}
+
+\definecomplexorsimpleempty\fillinline
+
+\def\complexfillinline[#1]%
+ {%\endgraf % interferes with \definedescription cum suis
+ \@@ivbefore
+ \begingroup
+ \setupfillinlines[#1]%
+ \advance\rightskip \@@ivmargin
+ \parfillskip\zeropoint
+ \def\par % very dangerous
+ {\let\par\endgraf % -)
+ \ifhmode\unskip\hfill\fi
+ \scratchdimen\dimexpr\@@ivwidth-\@@ivdistance\relax
+ \ifdim\scratchdimen>\@@ivmargin\else\expandafter\rlap\fi
+ {\kern\@@ivdistance
+ \vrule
+ \!!width \scratchdimen
+ \!!height.5\linewidth
+ \!!depth .5\linewidth}%
+ \endgraf % !
+ \endgroup
+ \endgraf % !
+ \@@ilafter}}
+
+%D \stopdocumentation
+%D \bgroup
+%D
+%D \setupframedtexts
+%D [setuptext]
+%D [background=color,backgroundcolor=white]
+%D
+%D \startbuffer
+%D \setupbackground
+%D [backgroundoffset=4pt,
+%D background=screen,
+%D frame=on,
+%D framecolor=red,
+%D leftoffset=2pt]
+%D \stopbuffer
+%D
+%D \getbuffer
+%D
+%D \startbackground
+%D
+%D \macros
+%D {setupbackground,startbackground,background}
+%D
+%D The section deals with backgrounds in the running text. This
+%D means that texts is to be collected and split over pages. To
+%D show what can be done, we provide this part of the
+%D documentation with some gray background and a red frame.
+%D Both the background and frame can have all characteristics
+%D of \type{\framed}. This time we used the setting:
+%D
+%D \typebuffer
+%D
+%D The implementation is not that sophisticated, but suffices.
+%D The main problem with this kind of functionality is to get
+%D the spacing all right.
+
+%D Specifying the background is more or less the same as
+%D specifying a framed box.
+%D
+%D \showsetup{setupbackground}
+
+\presetlocalframed[\??ag]
+
+\def\dosetupbackground[#1]%
+ {\getparameters[\??ag][#1]%
+ \doifelse\@@agstate\v!start
+ {\let\startbackground\dostartbackground
+ \let\stopbackground \dostopbackground
+ \let\background \dobackground}
+ {\let\startbackground\relax
+ \let\stopbackground \relax
+ \let\background \relax}}
+
+\def\setupbackground
+ {\dosingleargument\dosetupbackground}
+
+%D Actually typesetting the background is implemented rather
+%D straightforward. We need to handle some spacing as well as
+%D the (often) a bit smaller horizontal size.
+%D
+%D \showsetup{startbackground}
+%D
+%D Although we could have used a scratch one, we first
+%D declare a boolean.
+
+% 0=no-split, 1=no-split+indent, 2=split, 3=split+indent
+
+\chardef\backgroundsplitmode\plusthree
+
+%D The \type{\vbox to \lineheight{}\vskip\zeropoint}
+%D construction gives the first real line a decent height by
+%D adding a dummy line.
+
+\def\dostartbackground
+ {\endgraf
+ \bgroup
+ \setbox0\vbox\bgroup
+ \vbox to \lineheight{}\vskip\zeropoint
+ \blank[\v!disable]
+ % \advance\hsize -\@@agleftoffset
+ % \advance\hsize -\@@agrightoffset
+ \leftskip \@@agleftoffset % new **
+ \rightskip\@@agrightoffset} % new **
+
+%D This dummy line is removed by \type{\setbox2=\vsplit0 to
+%D \lineheight}. That way \type{\topskip} takes care of the
+%D lineheight. I'll probably forget to apply this trick
+%D elsewhere.
+
+\def\dostopbackground % improved version (i hope)
+ {\endgraf
+ \removelastskip
+ \egroup
+ \dimen2\leftskip % new **
+ \forgetall
+ \ifinsidefloat
+ \chardef\backgroundsplitmode\zerocount
+ \fi
+ \ifcase\backgroundsplitmode
+ \localframed[\??ag][\c!offset=\v!overlay]{\box0}%
+ \or
+ \hskip\dimen2
+ \localframed[\??ag][\c!offset=\v!overlay]{\box0}%
+ \else
+ \splitmaxdepth\boxmaxdepth
+ \splittopskip\topskip
+ \setbox2\vsplit0 to \lineheight % get rid of fake line
+ \loop
+ \ifdim\pagetotal=\zeropoint % empty page
+ \scratchdimen\textheight
+ \chardef\backgroundsplit\plusone % split to max height
+ \else
+ \setbox\scratchbox\vbox{\@@agbefore}%
+ \scratchdimen\dimexpr\pagegoal-\ht\scratchbox-\pagetotal\relax
+ \chardef\backgroundsplit\plustwo % split to partial height
+ \fi
+ \advance\scratchdimen\dimexpr-\@@agtopoffset-\@@agbottomoffset\relax
+ \ifdim\scratchdimen>2\lineheight\relax % reasonable, will be configurable
+ \ifdim\ht0>\scratchdimen % larger than page
+ \setbox2\vsplit0 to \scratchdimen
+ \else
+ \setbox2\box0
+ \chardef\backgroundsplit\zerocount % no split
+ \fi
+ \setbox2\vbox \ifcase\backgroundsplit\or to \textheight \fi % max split
+ {\vskip\@@agtopoffset
+ \unvcopy2
+ \prevdepth\dp2
+ \obeydepth
+ \vskip\@@agbottomoffset
+ \vfill}
+ \@@agbefore
+ \ifcase\backgroundsplit\or\or % partial split
+ \ifdim\pagegoal<\maxdimen
+ \pagegoal=1.2\pagegoal % be a bit more tolerant
+ \fi
+ \fi
+ \startlinecorrection
+ %\localframed[\??ag][\c!offset=\v!overlay]{\hskip\@@agleftoffset\box2\hskip\@@agrightoffset}%
+ \ifnum\backgroundsplitmode=\plusthree \hskip\dimen2 \fi %
+ \localframed[\??ag][\c!offset=\v!overlay]{\box2}% new **
+ \stoplinecorrection
+ \ifcase\backgroundsplit % no split
+ \@@agafter
+ \else % some split
+ \vfill\eject % geen \page !
+ \fi
+ \else
+ \page
+ \fi
+ \ifdim\ht0>\zeropoint \repeat
+ \fi
+ \egroup
+ \endgraf}
+
+%D As a bonus we also have a short command, that is of not
+%D much use, but kept there for historic reasons.
+%D
+%D \showsetup{background}
+
+\def\dobackground
+ {\bgroup
+ \dowithnextbox
+ {\localframed[\??ag][\c!offset=\v!overlay]{\flushnextbox}\egroup}
+ \vbox}
+
+%D \stopdocumentation
+%D \stopbackground
+%D \egroup
+
+%D New, for the moment private; let's see when GB finds out
+%D about this one and its obscure usage. It's used in:
+%D
+%D \startbuffer
+%D \defineframedtext
+%D [tabulateframe]
+%D [offset=overlay,
+%D backgroundoffset=3pt,
+%D background=color,
+%D backgroundcolor=green]
+%D
+%D \setuptabulate
+%D [tabulate]
+%D [frame=tabulateframe]
+%D
+%D \setuptables
+%D [frame=tabulateframe]
+%D
+%D \input tufte
+%D
+%D \starttabulate[|l|l|]
+%D \NC test \NC test \NC \NR \NC test \NC test \NC \NR
+%D \NC test \NC test \NC \NR \NC test \NC test \NC \NR
+%D \stoptabulate
+%D
+%D \input tufte
+%D
+%D \starttable[|l|l|]
+%D \NC test \NC test \NC \AR \NC test \NC test \NC \AR
+%D \NC test \NC test \NC \AR \NC test \NC test \NC \AR
+%D \stoptable
+%D \stopbuffer
+%D
+%D \typebuffer
+
+\def\defineframedcontent
+ {\dodoubleempty\dodefineframedcontent}
+
+\def\dodefineframedcontent[#1][#2]%
+ {\presetlocalframed[\??fc#1]%
+ \getparameters[\??fc#1]
+ [\c!leftoffset=\zeropoint,
+ \c!rightoffset=\getvalue{\??fc#1\c!leftoffset},
+ \c!topoffset=\zeropoint,
+ \c!bottomoffset=\getvalue{\??fc#1\c!topoffset},
+ \c!strut=\v!no,
+ \c!offset=\v!overlay,
+ \c!linecorrection=\v!no,
+ \c!left=,
+ \c!right=,
+ #2]}
+
+\let\setuplocalframed\getparameters
+
+\def\setupframedcontent
+ {\dodoubleempty\dosetupframedcontent}
+
+\def\dosetupframedcontent[#1][#2]%
+ {\def\docommand##1{\getparameters[\??fc##1][#2]}%
+ \processcommacommand[#1]\docommand}
+
+\def\startframedcontent[#1]%
+ {\bgroup
+ \doifelse{#1}\v!off
+ {\let\stopframedcontent\egroup}
+ {\ifcsname\??fc#1\c!frame\endcsname
+ \dostartframedcontent{#1}%
+ \fi}}
+
+\def\dostartframedcontent#1%
+ {\def\stopframedcontent{\dostopframedcontent{#1}}%
+ \setbox\framebox\hbox\bgroup
+ \setlocalhsize
+ \hsize\localhsize
+ \advance\hsize\dimexpr-\getvalue{\??fc#1\c!leftoffset}-\getvalue{\??fc#1\c!rightoffset} \relax
+ \advance\vsize\dimexpr-\getvalue{\??fc#1\c!topoffset} -\getvalue{\??fc#1\c!bottomoffset}\relax
+ \hskip\getvalue{\??fc#1\c!leftoffset}%
+ \vbox\bgroup
+ \vskip\getvalue{\??fc#1\c!topoffset}%
+ \vbox\bgroup
+ \forgetall
+ \blank[\v!disable]}
+
+\def\dostopframedcontent#1%
+ {\removelastskip
+ \egroup
+ \vskip\getvalue{\??fc#1\c!bottomoffset}%
+ \egroup
+ \hskip\getvalue{\??fc#1\c!rightoffset}%
+ \egroup
+ \doifvalue{\??fc#1\c!width}\v!fit
+ {\letvalue{\??fc#1\c!width}\v!fixed}% no shapebox
+ \ifinsidefloat
+ \donefalse
+ \else
+ \doifelsevalue{\??fc#1\c!linecorrection}\v!yes\donetrue\donefalse
+ \fi
+ % plaats ?
+ \ifdone\startlinecorrection\fi
+ \getvalue{\??fc#1\c!left}% new
+ \localframed[\??fc#1]{\box\framebox}%
+ \getvalue{\??fc#1\c!right}% new
+ \ifdone\stoplinecorrection\fi
+ \egroup}
+
+%D \macros
+%D {backgroundline}
+%D
+%D For the moment an undocumented feature, but a cancidate
+%D for going public.
+
+\def\backgroundline[#1]%
+ %{\doifsomething{#1}{\dobackgroundline{#1}}\hbox}
+ {\doifcolorelse{#1}{\dobackgroundline{#1}\hbox}\hbox}
+
+% \def\backgroundline[#1]%
+% {\doifcolor{#1}{\dobackgroundline{#1}}\hbox}
+
+\def\dobackgroundline#1%
+ {\dowithnextbox
+ {\hbox
+ {\startcolor[#1]%
+ \vrule
+ \!!width \nextboxwd
+ \!!height\nextboxht
+ \!!depth \nextboxdp
+ \stopcolor
+ \hskip-\nextboxwd
+ \flushnextbox}}}
+
+%D \macros
+%D {encircled}
+%D
+%D Some not so robust left||overs (borrowed from Knuth,
+%D \TEX Book\ page 356):
+
+\def\encircled#1%
+ {{\ooalign{\hfil\raise0.07ex\hbox{{\tx#1}}\hfil\crcr\mathhexbox20D}}}
+
+\let\omcirkeld\encircled
+
+\setuplinewidth
+ [\v!medium]
+
+\setupframed
+ [\c!width=\v!fit,
+ \c!height=\v!broad,
+ \c!lines=,
+ \c!offset=0.25ex, % \defaultframeoffset
+ \c!empty=\v!no,
+ \c!frame=\v!on,
+ \c!topframe=,
+ \c!bottomframe=,
+ \c!leftframe=,
+ \c!rightframe=,
+ \c!radius=.5\bodyfontsize,
+ \c!rulethickness=\linewidth,
+ \c!corner=\v!rectangular,
+ \c!depth=\zeropoint,
+ \c!foregroundcolor=,
+ \c!foregroundstyle=,
+ \c!background=,
+ \c!backgroundscreen=\@@rsscreen,
+ \c!backgroundcolor=,
+ \c!backgroundoffset=\zeropoint,
+ \c!framecolor=,
+ \c!frameoffset=\zeropoint,
+ \c!backgroundcorner=\framedparameter\c!corner,
+ \c!backgroundradius=\framedparameter\c!radius,
+ \c!backgrounddepth=\framedparameter\c!depth,
+ \c!framecorner=\framedparameter\c!corner,
+ \c!frameradius=\framedparameter\c!radius,
+ \c!framedepth=\framedparameter\c!depth,
+ \c!component=,
+ \c!align=,
+ \c!bottom=\vss,
+ \c!top=,
+ \c!strut=\v!yes,
+ \c!autostrut=\v!yes,
+ \c!location=\v!normal,
+ \c!orientation=,
+ \c!autowidth=\v!yes,
+ \c!setups=]
+
+\setupscreens
+ [%\c!factor=1.0, % obsolete
+ %\c!method=\v!external, % obsolete
+ \c!screen=0.95]
+
+\setupblackrules
+ [\c!n=3,
+ \c!width=1em,
+ \c!height=1ex,
+ \c!depth=\!!zeropoint,
+ \c!alternative=\c!a,
+ \c!distance=.25ex,
+ \c!color=]
+
+\setupmarginrules
+ [\c!level=0,
+ \c!rulethickness=\@@kadefaultwidth\linewidth]
+
+\setupthinrules
+ [\c!interlinespace=\v!small,
+ \c!n=3,
+ \c!before=,
+ \c!inbetween={\blank[\v!white]},
+ \c!after=,
+ \c!color=,
+ \c!height=.5\linewidth,
+ \c!depth=.5\linewidth,
+ \c!frame=\v!on, % compatible with textbackgrounds
+ \c!alternative=\v!b,
+ \c!backgroundcolor=,
+ \c!background=,
+ \c!rulethickness=]
+
+\setuptextrules
+ [\c!location=\v!left,
+ \c!before=\blank,
+ \c!after=\blank,
+ \c!inbetween=,
+ \c!width=2em,
+ \c!style=\v!bold,
+ \c!color=,
+ \c!rulecolor=,
+ \c!bodyfont=,
+ \c!distance=.5em]
+
+\setupfillinrules
+ [\c!width=\v!broad,
+ \c!distance=1em,
+ \c!before=\blank,
+ \c!after=\blank,
+ \c!n=1,
+ \c!interlinespace=\v!small,
+ \c!separator=,
+ \c!style=\v!normal,
+ \c!color=]
+
+\setupfillinlines
+ [\c!width=3cm,
+ \c!margin=\@@ivwidth,
+ \c!distance=1em,
+ \c!before=\blank,
+ \c!after=\blank]
+
+\setupbackground
+ [\c!leftoffset=.5\bodyfontsize,
+ \c!rightoffset=\@@agleftoffset,
+ \c!topoffset=\!!zeropoint,
+ \c!bottomoffset=\@@agtopoffset,
+ \c!state=\v!start,
+ \c!radius=.5\bodyfontsize,
+ \c!corner=\v!rectangular,
+ \c!frame=\v!off,
+ \c!color=,
+ \c!depth=\!!zeropoint,
+ \c!background=\v!screen,
+ \c!backgroundcolor=\@@agcolor,
+ \c!screen=\@@rsscreen,
+ \c!before=,
+ \c!after=]
+
+% Experimental extension:
+
+\def\c!loffset{loffset}
+\def\c!roffset{roffset}
+\def\c!toffset{toffset}
+\def\c!boffset{boffset}
+
+\getparameters
+ [\??oi]
+ [\c!loffset=\zeropoint,
+ \c!roffset=\zeropoint,
+ \c!toffset=\zeropoint,
+ \c!boffset=\zeropoint]
+
+\newdimen\!!framedloffset
+\newdimen\!!framedroffset
+\newdimen\!!framedtoffset
+\newdimen\!!framedboffset
+
+\def\setextraframedoffsets
+ {\boxhasextraoffsetfalse
+ \!!framedloffset\framedparameter\c!loffset
+ \!!framedroffset\framedparameter\c!roffset
+ \!!framedtoffset\framedparameter\c!toffset
+ \!!framedboffset\framedparameter\c!boffset
+ \ifzeropt\!!framedloffset\else \advance\!!framedwidth -\!!framedloffset \boxhasextraoffsettrue \fi
+ \ifzeropt\!!framedroffset\else \advance\!!framedwidth -\!!framedroffset \boxhasextraoffsettrue \fi
+ \ifzeropt\!!framedtoffset\else \advance\!!framedheight-\!!framedtoffset \boxhasextraoffsettrue \fi
+ \ifzeropt\!!framedboffset\else \advance\!!framedheight-\!!framedboffset \boxhasextraoffsettrue \fi}
+
+\def\applyextraframedoffsets
+ {\setbox\framebox\vbox\bgroup
+ \vskip\!!framedtoffset
+ \hbox\bgroup
+ \hskip\!!framedloffset
+ \box\framebox
+ \hskip\!!framedroffset
+ \egroup
+ \vskip\!!framedboffset
+ \egroup}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/page-app.tex b/Master/texmf-dist/tex/context/base/page-app.mkii
index 6e477903c22..e5c149aa0c7 100644
--- a/Master/texmf-dist/tex/context/base/page-app.tex
+++ b/Master/texmf-dist/tex/context/base/page-app.mkii
@@ -1,7 +1,7 @@
%D \module
%D [ file=page-app, % from meta-fig
%D version=1998.01.15,
-%D title=\CONTEXT\ Core Macros,
+%D title=\CONTEXT\ Page Macros,
%D subtitle=Independent page building,
%D author=Hans Hagen,
%D date=\currentdate,
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Page Macros / Applications}
+\writestatus{loading}{ConTeXt Page Macros / Applications}
%D The fitting page code is moved from \type {meta-fig} to
%D here.
@@ -35,8 +35,10 @@
\c!rightmargin=\!!zeropoint,\c!rightedge=\!!zeropoint,
\c!header=\!!zeropoint,\c!footer=\!!zeropoint]
+
\def\dostartfittingpage[#1][#2]%
{\page % this is kind of tricky! there can be preceding page refs
+ \autostarttext
\bgroup % resulting in a zero height page; test fig-make !
\def\currentfittingpage{#1}%
\dontcomplain
@@ -87,7 +89,8 @@
\centerbox{\box\scratchbox}%
\stopmakeup
\stoplocallayout
- \egroup}
+ \egroup
+ \autostoptext}
%D \TEX\ pages (for \METAPOST\ pages, see \type {meta-fig}):
diff --git a/Master/texmf-dist/tex/context/base/page-app.mkiv b/Master/texmf-dist/tex/context/base/page-app.mkiv
new file mode 100644
index 00000000000..e5c149aa0c7
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/page-app.mkiv
@@ -0,0 +1,225 @@
+%D \module
+%D [ file=page-app, % from meta-fig
+%D version=1998.01.15,
+%D title=\CONTEXT\ Page Macros,
+%D subtitle=Independent page building,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Page Macros / Applications}
+
+%D The fitting page code is moved from \type {meta-fig} to
+%D here.
+
+\unprotect
+
+\definepapersize
+ [\??fp\s!dummy]
+ [\c!width=\fittingwd,
+ \c!height=\fittinght]
+
+\definelayout
+ [\??fp\s!dummy]
+ [\c!width=\fittingwd,\c!height=\fittinght,\c!location=\v!middle,
+ \c!topspace=\!!zeropoint,\c!backspace=\!!zeropoint,
+ \c!cutspace=\!!zeropoint,\c!bottomspace=\!!zeropoint,
+ \c!textdistance=\!!zeropoint,\c!lines=0,\c!grid=\v!no,
+ \c!top=\!!zeropoint,\c!bottom=\!!zeropoint,
+ \c!margin=\!!zeropoint,\c!edge=\!!zeropoint,
+ \c!leftmargin=\!!zeropoint,\c!leftedge=\!!zeropoint,
+ \c!rightmargin=\!!zeropoint,\c!rightedge=\!!zeropoint,
+ \c!header=\!!zeropoint,\c!footer=\!!zeropoint]
+
+
+\def\dostartfittingpage[#1][#2]%
+ {\page % this is kind of tricky! there can be preceding page refs
+ \autostarttext
+ \bgroup % resulting in a zero height page; test fig-make !
+ \def\currentfittingpage{#1}%
+ \dontcomplain
+ % runs under current page regime, i.e. page variables passed to mp
+ \getparameters[\currentfittingpage][\c!paper=,#2]% auto or size or nothing
+ \setbox\scratchbox\hbox
+ \bgroup
+ % needed later \getparameters[\currentfittingpage][\c!paper=,#2]% auto or size or nothing
+ \doifvalue{\currentfittingpage\c!margin}\v!page % undocumented
+ {\offsetbox
+ [\c!leftoffset=\backspace,
+ \c!rightoffset=\cutspace,
+ \c!topoffset=\topspace,
+ \c!bottomoffset=\bottomspace]\hbox}%
+ \bgroup
+ \scale[\c!scale=\getvalue{\currentfittingpage\c!scale}]%
+ \bgroup\localframed[\currentfittingpage]%
+ \bgroup}
+
+\def\dostopfittingpage
+ {\egroup % localframed
+ \egroup % scale
+ \egroup % offsetbox
+ \egroup % scratchbox
+ \edef\fittingwd{\the\wd\scratchbox}%
+ \edef\fittinght{\the\ht\scratchbox}%
+ \startlocallayout
+ \ifdim\fittinght<\lineheight
+ % write status : too small
+ \setbox\scratchbox\vbox to \lineheight{\vss\box\scratchbox\vss}%
+ \edef\fittinght{\the\lineheight}%
+ \fi
+ \let\checkcurrentlayout\relax % else interference with odd/even layout
+ \processaction
+ [\getvalue{\currentfittingpage\c!paper}]
+ [ \v!auto=>\let\fittingpapersize\printpapersize,
+ \s!unknown=>\let\fittingpapersize\commalistelement,
+ \s!default=>\def\fittingpapersize{\??fp\s!dummy}]%
+ \expanded{\setuppapersize[\??fp\s!dummy][\fittingpapersize]}%
+ \definelayout
+ [\v!page]%
+ [\c!location=\v!middle,
+ \c!width=\fittingwd,
+ \c!height=\fittinght]%
+ \setuplayout
+ [\v!page]%
+ \startmakeup[\v!standard][\c!textstate=\v!empty,\c!doublesided=\v!no,\c!page=]%
+ \centerbox{\box\scratchbox}%
+ \stopmakeup
+ \stoplocallayout
+ \egroup
+ \autostoptext}
+
+%D \TEX\ pages (for \METAPOST\ pages, see \type {meta-fig}):
+
+\presetlocalframed[\??tg]
+
+\def\setupTEXpage
+ {\dodoubleargument\getparameters[\??tg]}
+
+\def\startTEXpage
+ {\dosingleempty\dostartTEXpage}
+
+\def\dostartTEXpage[#1]%
+ {\dostartfittingpage[\??tg][#1]\gobblespacetokens}
+
+\def\stopTEXpage
+ {\removelastspace
+ \dostopfittingpage}
+
+\setupTEXpage
+ [\c!scale=1000,
+ \c!strut=\v!no,
+ \c!align=\v!normal, % needed, else problems !
+ \c!offset=\v!overlay,
+ \c!width=\v!fit,
+ \c!height=\v!fit,
+ \c!frame=\v!off]
+
+%D For Mojca:
+%D
+%D \starttyping
+%D \startTEXstream \chapter{Bla} Hello world!\crlf Hello world! \stopTEXstream
+%D \startTEXpage \chapter{Bla} Hello world!\crlf Hello world! \stopTEXpage
+%D \stoptyping
+%D
+%D maybe I should support stream=yes in framed.
+
+\def\startTEXstream
+ {\dosingleempty\dostartTEXstream}
+
+\def\dostartTEXstream[#1]%
+ {\page
+ \defineoutputstream[tex]%
+ \enableoutputstream[tex]%
+ \def\stopTEXstream
+ {\disableoutputstream
+ \startTEXpage
+ \outputstreamunvbox[tex]%
+ \stopTEXpage}}
+
+%D Application pages (for an example, see \type {m-pstric}):
+
+\def\@@texapp{texapp}
+\def\@@texdim{texdim}
+
+\def\saveTEXapplication#1#2%
+ {\immediate\openout\scratchwrite=\bufferprefix\@@texdim.tmp
+ \immediate\write\scratchwrite{\dimen#1=\the\ht\scratchbox}%
+ \immediate\write\scratchwrite{\dimen#2=\the\wd\scratchbox}%
+ \immediate\closeout\scratchwrite}
+
+\def\restoreTEXapplication
+ {\readlocfile{\bufferprefix\@@texdim.tmp}\donothing\donothing}
+
+\def\startTEXapplication
+ {\dosingleempty\dostartTEXapplication}
+
+\long\def\dostartTEXapplication[#1]#2#3\stopTEXapplication
+ {\bgroup
+ \bgroup
+ \let\f!temporaryextension\c!tex
+ \setbuffer[\@@texapp]%
+ \starttext
+ #2% preamble
+ \startTEXpage[#1]%
+ \topskip\zeropoint
+ \setbox\scratchbox\hbox{#3}%
+ \saveTEXapplication02% dimensions
+ \box\scratchbox
+ \stopTEXpage
+ \stoptext
+ \endbuffer
+ \egroup
+ \doifelse\jobsuffix{dvi}\donetrue\donefalse
+ \executesystemcommand{texexec \bufferprefix\@@texapp.tex --once --batch}%
+ \ifdone % eps
+ \executesystemcommand{dvips -E* -o \@@texapp.eps \@@texapp}%
+ \else % pdf
+ \executesystemcommand{dvips \bufferprefix\@@texapp}%
+ \executesystemcommand{ps2pdf \bufferprefix\@@texapp.ps \bufferprefix\@@texapp.pdf}%
+% \executesystemcommand{texmfstart pstopdf \bufferprefix\@@texapp.ps \bufferprefix\@@texapp.pdf}%
+ \fi
+ \restoreTEXapplication % dimensions
+ \doifelse\jobsuffix{dvi}\donetrue\donefalse
+ \setbox\scratchbox\hbox
+ {\expanded{\externalfigure
+ [\bufferprefix\@@texapp.\ifdone eps\else pdf\fi]
+ [\c!object=\v!no]}}%
+ \setbox\scratchbox\hbox
+ {\lower\ht\scratchbox\hbox{\raise\dimen2\box\scratchbox}}%
+ \wd\scratchbox\dimen0
+ \ht\scratchbox\dimen2
+ \dp\scratchbox\zeropoint
+ \box\scratchbox
+ \egroup}
+
+%D \macros
+%D {startpagefigure}
+%D
+%D \starttyping
+%D \starttext \pagefigure[two.1] \stoptext
+%D \stoptyping
+
+\def\startpagefigure
+ {\dodoubleempty\dostartpagefigure}
+
+\def\dostartpagefigure[#1][#2]%
+ {\bgroup
+ \getparameters[\??ex][\c!offset=\v!overlay,#2]%
+ \startTEXpage[\c!offset=\@@exoffset]%
+ \externalfigure[#1][#2]\ignorespaces} % so we can put some text below the graphic
+
+\def\stoppagefigure
+ {\stopTEXpage
+ \egroup}
+
+\def\pagefigure
+ {\dodoubleempty\dopagefigure}
+
+\def\dopagefigure[#1][#2]%
+ {\dostartpagefigure[#1][#2]\stoppagefigure}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/page-bck.tex b/Master/texmf-dist/tex/context/base/page-bck.mkii
index c2430967ca6..0b4ad779afa 100644
--- a/Master/texmf-dist/tex/context/base/page-bck.tex
+++ b/Master/texmf-dist/tex/context/base/page-bck.mkii
@@ -11,43 +11,27 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Page Macros / Backgrounds}
+\writestatus{loading}{ConTeXt Page Macros / Backgrounds}
% \chardef\kindofpagetextareas=1 will isolate graphics from backgrounds
\unprotect
-\startmessages dutch library: layouts
- 8: achtergronden berekenen
-\stopmessages
+% messages moved
-\startmessages english library: layouts
- 8: calculating backgrounds
-\stopmessages
+% messages moved
-\startmessages german library: layouts
- 8: berechne Hintergrund
-\stopmessages
+% messages moved
-\startmessages czech library: layouts
- 8: pocita se pozadi
-\stopmessages
+% messages moved
-\startmessages italian library: layouts
- 8: calcolo dello sfondo
-\stopmessages
+% messages moved
-\startmessages norwegian library: layouts
- 8: beregner bakgrunn
-\stopmessages
+% messages moved
-\startmessages romanian library: layouts
- 8: se calculeaza fundalurile
-\stopmessages
+% messages moved
-\startmessages french library: layouts
- 8: calcul des arrières-plans
-\stopmessages
+% messages moved
%D \macros
%D {recalculatebackgrounds}
@@ -302,8 +286,7 @@
\calculatereducedvsizes
\offinterlineskip
#2\relax
- \vskip-\topheight
- \vskip-\topdistance
+ \vskip\dimexpr-\topheight-\topdistance\relax
\dodopagebodybackground\v!top\topheight
\vskip\topdistance
\dodopagebodybackground\v!header\headerheight
@@ -380,15 +363,12 @@
\def\docommand##1%
{\doifinsetelse{##1}{\v!paper,\v!page,\v!leftpage,\v!rightpage}
{\getparameters[\??ma##1][#3]\checkbackground{##1}}
- {\def\dodocommand####1%
- {\getparameters[\??ma##1####1][#3]\checkbackground{##1####1}}%
+ {\def\dodocommand####1{\getparameters[\??ma##1####1][#3]\checkbackground{##1####1}}%
\processcommalist[#2]\dodocommand}}%
\processcommalist[#1]\docommand
\else\ifsecondargument
\global\somebackgroundtrue
- \doifcommonelse{#1}{\v!text,\v!hidden,%
- %\v!linkertekst,\v!rechtertekst,%
- \v!paper,\v!page,\v!leftpage,\v!rightpage}
+ \doifcommonelse{#1}{\v!text,\v!hidden,\v!paper,\v!page,\v!leftpage,\v!rightpage}
{\def\docommand##1{\getparameters[\??ma##1][#2]\checkbackground{##1}}%
\processcommalist[#1]\docommand}%
{\setupbackgrounds
@@ -411,8 +391,6 @@
\let\pagebackgroundoffset\!!zeropoint
\let\pagebackgrounddepth \!!zeropoint
-\appendtoks\global\newbackgroundfalse\to\everyjob
-
%D Each areas (currently there are $1+3+25+1=30$ of them)
%D has its own low level framed object associated.
@@ -472,10 +450,8 @@
%D The stand alone text area inherits from the page too.
-\dodocommand\v!text \empty
-%dodocommand\v!linkertekst \empty
-%dodocommand\v!rechtertekst\empty
-\dodocommand\v!hidden \empty
+\dodocommand\v!text \empty
+\dodocommand\v!hidden\empty
%D We now define all 25 main areas in a row.
diff --git a/Master/texmf-dist/tex/context/base/page-bck.mkiv b/Master/texmf-dist/tex/context/base/page-bck.mkiv
new file mode 100644
index 00000000000..fae091c6a01
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/page-bck.mkiv
@@ -0,0 +1,563 @@
+%D \module
+%D [ file=page-bck, % copied from main-001
+%D version=1997.03.31,
+%D title=\CONTEXT\ Page Macros,
+%D subtitle=Backgrounds,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Page Macros / Backgrounds}
+
+% \chardef\kindofpagetextareas=1 will isolate graphics from backgrounds
+
+% todo \fastlocalframed -> \localbackgroundframed
+
+\unprotect
+
+%D \macros
+%D {recalculatebackgrounds}
+%D
+%D We use a couple of switches so that we can minimize the
+%D amount of background calculations. The main switch is set
+%D by the recalculate directive.
+%D
+%D \starttyping
+%D \recalculatebackgrounds
+%D \stoptyping
+%D
+%D Other modules may not directly set the switches
+%D themselves.
+
+\newif\ifnewbackground
+\newif\ifsomebackground
+
+%D For special purposes, users can question the \type
+%D {*background} mode. This mode is only available when
+%D typesetting the pagebody.
+%D
+%D \starttyping
+%D \startmode[*background] ...
+%D \stoptyping
+
+\appendtoks
+ \ifsomebackground \ifnewbackground \setsystemmode\v!background \fi \fi
+\to \everybeforepagebody
+
+%D \macros
+%D {addmainbackground, addtextbackground,
+%D addpagebackground, addprintbackground}
+%D
+%D Apart from the previously mentioned directive, the
+%D interface between this module and the other modules
+%D is made up by four macros that add background to parts of
+%D the layout.
+%D
+%D \starttyping
+%D \addmainbackground <box>
+%D \addtextbackground <box>
+%D \addpagebackground <box>
+%D \addprintbackground <box>
+%D \stoptyping
+
+%D To minimize calculations, we keep track of the state of the
+%D background of each area. A previous implementation did
+%D check each call to the background calculation macro, but
+%D using an intermediate usage flag instead of testing each
+%D time saves about 3\% on a run with a couple of backgrounds.
+%D (On the 824 pages maps bibliography runtime went down from
+%D 309 to 299 seconds.)
+
+% \let\currentotrbackground\empty
+%
+% \def\@@docheckbackground#1#2%
+% {\ifcsname\currentotrbackground#1\endcsname
+% \edef\!!stringa{\csname\currentotrbackground#1\endcsname}\ifx\!!stringa#2\!!doneatrue\fi
+% \fi}
+%
+% \def\@@nocheckbackground#1#2%
+% {\ifcsname\currentotrbackground#1\endcsname
+% \edef\!!stringa{\csname\currentotrbackground#1\endcsname}\ifx\!!stringa#2\else\!!doneatrue\fi
+% \fi}
+%
+% \def\checkbackground#1%
+% {\edef\currentotrbackground{\??ma#1}%
+% \begingroup
+% \!!doneafalse
+% \if!!donea\else\@@nocheckbackground\c!background \empty
+% \if!!donea\else\@@docheckbackground\c!frame \v!on
+% \if!!donea\else\@@nocheckbackground\c!foregroundcolor\empty
+% \if!!donea\else\@@docheckbackground\c!leftframe \v!on
+% \if!!donea\else\@@docheckbackground\c!rightframe \v!on
+% \if!!donea\else\@@docheckbackground\c!topframe \v!on
+% \if!!donea\else\@@docheckbackground\c!bottomframe \v!on \fi\fi\fi\fi\fi\fi\fi
+% \if!!donea
+% \endgroup\setusage \currentotrbackground
+% \else
+% \endgroup\resetusage\currentotrbackground
+% \fi}
+%
+% \def\ifsomebackgroundfound#1%
+% {\ifusage{\??ma#1}}
+%
+% \def\doifsomebackgroundelse#1%
+% {\ifusage{\??ma#1}%
+% \expandafter\firstoftwoarguments
+% \else
+% \expandafter\secondoftwoarguments
+% \fi}
+
+\let\currentotrbackground\empty
+
+\def\@@docheckbackground#1#2%
+ {\ifcsname\currentotrbackground#1\endcsname
+ \edef\!!stringa{\csname\currentotrbackground#1\endcsname}\ifx\!!stringa#2\!!doneatrue\fi
+ \fi}
+
+\def\@@nocheckbackground#1#2%
+ {\ifcsname\currentotrbackground#1\endcsname
+ \edef\!!stringa{\csname\currentotrbackground#1\endcsname}\ifx\!!stringa#2\else\!!doneatrue\fi
+ \fi}
+
+\def\checkbackground#1% here we need an \ifempty primitive
+ {\edef\currentotrbackground{\??ma#1}%
+ \begingroup
+ \!!doneafalse
+ \if!!donea\else\@@nocheckbackground\c!background \empty
+ \if!!donea\else\@@docheckbackground\c!frame \v!on
+ \if!!donea\else\@@nocheckbackground\c!foregroundcolor\empty
+ \if!!donea\else\@@docheckbackground\c!leftframe \v!on
+ \if!!donea\else\@@docheckbackground\c!rightframe \v!on
+ \if!!donea\else\@@docheckbackground\c!topframe \v!on
+ \if!!donea\else\@@docheckbackground\c!bottomframe \v!on \fi\fi\fi\fi\fi\fi\fi
+ \if!!donea
+ \endgroup\expandafter\let\csname\currentotrbackground\endcsname\relax
+ \else
+ \endgroup\expandafter\let\csname\currentotrbackground\endcsname\undefined
+ \fi}
+
+\def\ifsomebackgroundfound#1%
+ {\ifcsname\??ma#1\endcsname}
+
+\def\doifsomebackgroundelse#1%
+ {\ifcsname\??ma#1\endcsname
+ \expandafter\firstoftwoarguments
+ \else
+ \expandafter\secondoftwoarguments
+ \fi}
+
+\def\doifsomebackground#1%
+ {\ifcsname\??ma#1\endcsname
+ \expandafter\firstofoneargument
+ \else
+ \expandafter\gobbleoneargument
+ \fi}
+
+%D The background mechanism falls back on the \type {\framed}
+%D macro. This means that all normal frame and overlay
+%D features can be used.
+
+% \def\addsomebackground#1#2#3#4% area box width height / zero test added
+% {\ifsomebackgroundfound#1\ifdim#3>\zeropoint\ifdim#4>\zeropoint
+% \ifcsname\??ma#1\c!setups\endcsname % to be done
+% \doifvaluesomething{\??ma#1\c!setups}{\setups[\csname\??ma#1\c!setups\endcsname]}% should not produce funny spaces !
+% \fi
+% \setbox#2\vbox\fastlocalframed % maybe \superfastlocalframed{tag}{w}{h}
+% [\??ma#1]%
+% [\c!component=#1,\c!width=#3,\c!height=#4]% are width and height used?
+% {\dp#2\zeropoint\box#2}%
+% \fi\fi\fi}
+
+\def\addsomebackground#1#2#3#4% area box width height / zero test added
+ {\ifsomebackgroundfound#1\ifdim#3>\zeropoint\ifdim#4>\zeropoint
+ \ifcsname\??ma#1\c!setups\endcsname % to be done
+ \doifvaluesomething{\??ma#1\c!setups}{\setups[\csname\??ma#1\c!setups\endcsname]}% should not produce funny spaces !
+ \fi
+ \localbackgroundframed{#1}{#2}{#3}{#4}%
+ \fi\fi\fi}
+
+%D There are quite some backgrounds. At the bottom layer,
+%D there is the {\em paper} background. This one is only
+%D used for special purposes, like annotations to documents.
+
+\def\addprintbackground#1%
+ {\addsomebackground\v!paper#1\printpaperwidth\printpaperheight}
+
+%D The page backgrounds can be put behind the {\em left
+%D page}, the {\em right page} or {\em each page}. As with
+%D the paper background, these are calculated on each page.
+
+\def\addpagebackground#1%
+ {\doifbothsidesoverruled
+ {\addsomebackground\v!rightpage#1\paperwidth\paperheight}
+ {\addsomebackground\v!rightpage#1\paperwidth\paperheight}
+ {\addsomebackground\v!leftpage #1\paperwidth\paperheight}%
+ \addsomebackground\v!page #1\paperwidth\paperheight}
+
+%D Then there are the 25 areas that make up the layout: {\em
+%D top, header, text, footer, bottom} times {\em left edge,
+%D left margin, text, right margin, right edge}. These are
+%D only recalculated when they change or when the \type
+%D {status} is set to \type {repeat}.
+
+\newbox\leftbackground
+\newbox\rightbackground
+
+\def\addmainbackground#1% todo: dimension spec
+ {\ifsomebackground
+ \ifnewbackground \setbackgroundboxes \fi
+ \setbox#1\vbox
+ {\offinterlineskip
+ \doifmarginswapelse{\copy\leftbackground}{\copy\rightbackground}%
+ \box#1}%
+ \fi}
+
+%D Finaly there is an aditional {\em text} background, again
+%D useful for special purposes only. This one is calculated
+%D each time. The hidden backgrounds are not meant for users!
+
+\newconditional\hiddenbackgroundenabled
+
+\def\addtextbackground#1%
+ {\ifconditional\hiddenbackgroundenabled
+ \addsomebackground\v!hidden#1\makeupwidth\textheight % mine !
+ \fi
+ \addsomebackground\v!text#1\makeupwidth\textheight}
+
+%D The next couple of macros implement the area backgrounds.
+%D As said, these are cached in dedicated boxes. The offsets
+%D and depth of the page are used for alignment purposes.
+
+\newdimen\pageoffset % bleed
+\newdimen\pagedepth
+
+% \def\setbackgroundboxes
+% {\showmessage\m!layouts8\empty
+% \setbackgroundbox\leftbackground\relax
+% \ifdoublesided
+% \setbackgroundbox\rightbackground\doswapmargins
+% \fi
+% \doifnot\@@mastatus\v!herhaal{\global\newbackgroundfalse}}
+
+%D We need a bit more clever mechanism in order to handle
+%D layers well. This means that we cannot calculate both
+%D background at the same time since something may have
+%D changed halfway a page.
+
+\chardef\newrightbackground\zerocount
+\chardef\newleftbackground \zerocount
+
+\def\recalculatebackgrounds
+ {\global\newbackgroundtrue}
+
+\def\setbackgroundboxes
+ {\ifnewbackground
+ \dosetbackgroundboxesr
+ \fi
+ \doifbothsides\dosetbackgroundboxesa\dosetbackgroundboxesb\dosetbackgroundboxesc
+ \ifx\@@mastate\v!repeat\else\global\newbackgroundfalse\fi}
+
+\def\dosetbackgroundboxesr
+ {\global\chardef\newrightbackground\plusone
+ \global\chardef\newleftbackground\plusone
+ \global\setbox\leftbackground\emptybox
+ \global\setbox\rightbackground\emptybox}
+\def\dosetbackgroundboxesa
+ {\ifcase\newleftbackground \else
+ % \showmessage\m!layouts8\empty
+ \setbackgroundbox\leftbackground\relax
+ \global\chardef\newleftbackground\zerocount
+ \global\chardef\newrightbackground\zerocount
+ \fi}
+\def\dosetbackgroundboxesb
+ {\ifcase\newleftbackground \else
+ % \showmessage\m!layouts8\empty
+ \setbackgroundbox\leftbackground\relax
+ \global\chardef\newleftbackground\zerocount
+ \fi}
+\def\dosetbackgroundboxesc
+ {\ifcase\newrightbackground \else
+ % \showmessage\m!layouts8\empty
+ \setbackgroundbox\rightbackground\doswapmargins
+ \global\chardef\newrightbackground\zerocount
+ \fi}
+
+\def\addmainbackground#1% todo: dimension spec
+ {\ifsomebackground
+ \setbackgroundboxes
+ \setbox#1\vbox
+ {\offinterlineskip
+ \doifmarginswapelse{\copy\leftbackground}{\copy\rightbackground}%
+ \box#1}%
+ \fi}
+
+\newdimen\pagebackgroundhoffset
+\newdimen\pagebackgroundvoffset
+\newdimen\pagebackgrounddepth
+\newdimen\pagebackgroundoffset
+
+\def\setbackgroundoffsets % used in menus (we can use ifcsname's here)
+ {\ifsomebackground \ifnewbackground
+ \global\pagebackgroundhoffset\zeropoint
+ \global\pagebackgroundvoffset\zeropoint
+ \global\pagebackgrounddepth \zeropoint
+ \doifsomebackgroundelse{\v!text\v!text}\donetrue\donefalse
+ \ifdone\else\doifsomebackgroundelse\v!text\donetrue\donothing\fi
+ \ifdone
+ \begingroup
+ \scratchdimen\csname\??ma\v!page\c!offset\endcsname
+ \doifsomebackgroundelse{\v!top\v!text}\donothing
+ {\doifsomebackgroundelse{\v!bottom\v!text}\donothing
+ {\global\pagebackgroundhoffset\scratchdimen}}%
+ \doifsomebackgroundelse{\v!text\v!rightedge}\donothing
+ {\doifsomebackgroundelse{\v!text\v!leftedge}\donothing
+ {\global\pagebackgroundvoffset\scratchdimen
+ \global\pagebackgrounddepth\csname\??ma\v!page\c!depth\endcsname}}%
+ \endgroup
+ \fi
+ \fi \fi}
+
+\appendtoks \setbackgroundoffsets \to \everybeforepagebody
+
+\newconditional\swapbackgroundmargins \settrue\swapbackgroundmargins
+
+\def\setbackgroundbox#1#2%
+ {\global\setbox#1\vbox
+ {\dontcomplain
+ \swapmargins
+ \ifconditional\swapbackgroundmargins
+ \doifmarginswapelse \donothing
+ {\swapmacros\v!rightmargin\v!leftmargin
+ \swapmacros\v!rightedge \v!leftedge}%
+ \fi
+ \calculatereducedvsizes
+ \offinterlineskip
+ #2\relax
+ \vskip\dimexpr-\topheight-\topdistance\relax
+ \dodopagebodybackground\v!top\topheight
+ \vskip\topdistance
+ \dodopagebodybackground\v!header\headerheight
+ \vskip\headerdistance
+ \dodopagebodybackground\v!text\textheight
+ \vskip\footerdistance
+ \dodopagebodybackground\v!footer\footerheight
+ \vskip\bottomdistance
+ \dodopagebodybackground\v!bottom\bottomheight
+ \vfilll}%
+ \smashbox#1}
+
+\def\dodopagebodybackground#1#2% maybe helper
+ {\ifdim#2>\zeropoint % added, faster
+ \setbox\scratchbox\vbox to #2
+ \bgroup\hbox\bgroup
+ % \swapmargins
+ \goleftonpage
+ \dododopagebodybackground\leftedgewidth #2#1\v!leftedge
+ \hskip\leftedgedistance
+ \dododopagebodybackground\leftmarginwidth #2#1\v!leftmargin
+ \hskip\leftmargindistance
+ \dododopagebodybackground\makeupwidth #2#1\v!text
+ \hskip\rightmargindistance
+ \dododopagebodybackground\rightmarginwidth#2#1\v!rightmargin
+ \hskip\rightedgedistance
+ \dododopagebodybackground\rightedgewidth #2#1\v!rightedge
+ \egroup\egroup
+ \wd\scratchbox\zeropoint
+ \box\scratchbox\relax
+ \fi}
+
+\def\dododopagebodybackground#1#2#3#4% width height pos pos % maybe helper
+ {\ifsomebackgroundfound{#3#4}%
+ \ifdim#2>\zeropoint\relax
+ \ifdim#1>\zeropoint\relax
+ \ifcsname\??ma#3#4\c!setups\endcsname % to be done
+ \doifvaluesomething{\??ma#3#4\c!setups}{\setups[\csname\??ma#3#4\c!setups\endcsname]}% should not produce funny spaces !
+ \fi
+ \fastlocalframed
+ [\??ma#3#4]%
+ [\c!component=#3-#4]%
+ {\vbox to #2{\vss\hbox to#1{\hss\csname\??ma#3#4\c!command\endcsname\hss}\vss}}%
+ \else
+ \hskip#1%
+ \fi
+ \else
+ \hskip#1%
+ \fi
+ \else
+ \hskip#1%
+ \fi}
+
+%D The background mechanism is quite demanding in terms or
+%D resources. We used to delay these definitions till runtime
+%D usage, but since today's \TEX's are large, we now do the
+%D work on forehand.
+%D
+%D \starttyping
+%D \setupbackgrounds [settings]
+%D \setupbackgrounds [paper,page,text,..] [settings]
+%D \setupbackgrounds [top,...] [leftedge,...] [settings]
+%D \stoptyping
+%D
+%D \showsetup{setupbackgrounds}
+%D
+%D Because the number of arguments runs from one to three,
+%D we need to check for it.
+
+\def\setupbackgrounds
+ {\dotripleempty\dosetupbackgrounds}
+
+\def\dosetupbackgrounds[#1][#2][#3]%
+ {\ifthirdargument
+ \global\somebackgroundtrue
+ \def\docommand##1%
+ {\doifinsetelse{##1}{\v!paper,\v!page,\v!leftpage,\v!rightpage}
+ {\getparameters[\??ma##1][#3]\checkbackground{##1}}
+ {\def\dodocommand####1{\getparameters[\??ma##1####1][#3]\checkbackground{##1####1}}%
+ \processcommalist[#2]\dodocommand}}%
+ \processcommalist[#1]\docommand
+ \else\ifsecondargument
+ \global\somebackgroundtrue
+ \doifcommonelse{#1}{\v!text,\v!hidden,\v!paper,\v!page,\v!leftpage,\v!rightpage}
+ {\def\docommand##1{\getparameters[\??ma##1][#2]\checkbackground{##1}}%
+ \processcommalist[#1]\docommand}%
+ {\setupbackgrounds
+ [#1]%
+ [\v!leftedge,\v!leftmargin,\v!text,\v!rightmargin,\v!rightedge]%
+ [#2]}%
+ \else\iffirstargument
+ \getparameters[\??ma][#1]%
+ \fi\fi\fi
+ \doifelsevalue{\??ma\v!page\c!offset}\v!overlay
+ {\global\pageoffset\zeropoint}
+ {\global\pageoffset\csname\??ma\v!page\c!offset\endcsname}%
+ \global\pagedepth\csname\??ma\v!page\c!depth\endcsname
+ \global\pagebackgroundoffset\pageoffset
+ \global\pagebackgrounddepth\pagedepth
+ \doifelse\@@mastate\v!stop
+ {\global\newbackgroundfalse}
+ {\global\newbackgroundtrue }}
+
+%D Each areas (currently there are $1+3+25+1=30$ of them)
+%D has its own low level framed object associated.
+
+\def\installsomebackground#1#2{\inheritlocalframed[\??ma#1#2][\??od]}
+
+\installsomebackground \v!paper \empty
+\installsomebackground \v!page \empty
+\installsomebackground \v!leftpage \empty
+\installsomebackground \v!rightpage \empty
+
+%D The stand alone text area inherits from the page too.
+
+\installsomebackground \v!text \empty
+\installsomebackground \v!hidden \empty
+
+%D We save some keying by defining the areas using a helper:
+
+\def\docommand#1%
+ {\installsomebackground#1\v!leftedge
+ \installsomebackground#1\v!leftmargin
+ \installsomebackground#1\v!text
+ \installsomebackground#1\v!rightmargin
+ \installsomebackground#1\v!rightedge}
+
+\docommand \v!top
+\docommand \v!header
+\docommand \v!text
+\docommand \v!footer
+\docommand \v!bottom
+
+%D We need some cleanup now.
+
+\let\docommand\relax
+
+%D We now set up the individual areas to use reasonable
+%D defaults.
+
+\installsomebackground \v!paper \empty
+\installsomebackground \v!page \empty
+\installsomebackground \v!leftpage \empty
+\installsomebackground \v!rightpage \empty
+
+\getparameters
+ [\??ma\v!page]
+ [\c!offset=\zeropoint, % hm, so we need to force overlay elsewhere
+ \c!depth=\zeropoint]
+
+%D General setup:
+
+\setupbackgrounds
+ [\c!state=\c!start]
+
+%D The hidden layer can be populated by extending the
+%D following comma separated list. This only happens in core
+%D modules.
+
+% todo page-2 .. page+2 achter pagina -> bleed
+% spread-2 .. spread+2 achter spread -> spread (repeat 2 times)
+
+\def\enablehiddenbackground
+ {\global\settrue\hiddenbackgroundenabled
+ \global\somebackgroundtrue
+ \recalculatebackgrounds}
+
+\def\disablehiddenbackground
+ {\global\setfalse\hiddenbackgroundenabled}
+
+\def\hiddenbackground
+ {\v!text-2,\v!text-1,\v!foreground,\v!text+1,\v!text+2}
+
+\setupbackgrounds
+ [\v!hidden]
+ [\c!background=\hiddenbackground]
+
+% The next series is used in local (for instance floating)
+% backgrounds.
+
+\installsomebackground \v!local \empty % not really a background, invisible for users
+
+\getparameters
+ [\??ma\v!local]
+ [\c!component=local,
+ \c!background=\localbackground]
+
+\def\localbackground
+ {\v!local-2,\v!local-1,\v!foreground,\v!local+1,\v!local+2}
+
+\defineoverlay[\v!local-2][\positionoverlay{\v!local-2}]
+\defineoverlay[\v!local-1][\positionoverlay{\v!local-1}]
+\defineoverlay[\v!local+1][\positionoverlay{\v!local+1}]
+\defineoverlay[\v!local+2][\positionoverlay{\v!local+2}]
+
+\def\addlocalbackgroundtobox
+ {\ifconditional\hiddenbackgroundenabled
+ \expandafter\doaddlocalbackground
+ \else
+ \resetglobal \expandafter\gobbleoneargument
+ \fi}
+
+\def\doaddlocalbackground#1%
+ {\dodoglobal\setbox#1\hbox{\fastlocalframed[\??ma\v!local][]{\registerMPlocaltextarea{\box#1}}}%
+ \resetglobal % redundant
+ \doglobal\increment\localpositionnumber\relax} % afterwards !
+
+% Test how previous macro behaves with depth:
+%
+% \startcolumnset
+% \input tufte
+% \placefigure{none}{\framed[lines=5]{xxx}}
+% \input tufte
+% \placefigure{none}{\starttabulate\NC test\nc test\NC\NR\stoptabulate}
+% \input tufte
+% \stopcolumnset
+
+%D Because we haven't really set up backgrounds yet, we set
+%D the main efficiency switch to false.
+
+\somebackgroundfalse
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/page-flw.tex b/Master/texmf-dist/tex/context/base/page-flw.mkii
index 1a8ffd3c422..3eb867a78f4 100644
--- a/Master/texmf-dist/tex/context/base/page-flw.tex
+++ b/Master/texmf-dist/tex/context/base/page-flw.mkii
@@ -1,7 +1,7 @@
%D \module
%D [ file=page-flw,
%D version=2003.04.19, % from test-002 (1997) profile experiment
-%D title=\CONTEXT\ OTR Macros,
+%D title=\CONTEXT\ Page Macros,
%D subtitle=Text Flows,
%D author=Hans Hagen,
%D date=\currentdate,
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context OTR Macros / Text Flows}
+\writestatus{loading}{ConTeXt Page Macros / Text Flows}
%D This is high experimental and especially flushing may change (proper
%D spacing is the driving force here).
diff --git a/Master/texmf-dist/tex/context/base/page-flw.mkiv b/Master/texmf-dist/tex/context/base/page-flw.mkiv
new file mode 100644
index 00000000000..3eb867a78f4
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/page-flw.mkiv
@@ -0,0 +1,107 @@
+%D \module
+%D [ file=page-flw,
+%D version=2003.04.19, % from test-002 (1997) profile experiment
+%D title=\CONTEXT\ Page Macros,
+%D subtitle=Text Flows,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA ADE]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Page Macros / Text Flows}
+
+%D This is high experimental and especially flushing may change (proper
+%D spacing is the driving force here).
+
+\unprotect
+
+\def\definetextflow
+ {\dodoubleempty\dodefinetextflow}
+
+\def\dodefinetextflow[#1][#2]% flow settings
+ {\iffirstargument
+ \doiftextflowcollectorelse{#1}
+ {\setbox\textflowcollector{#1}\emptybox}
+ {\@EA\newbox\csname\??tx:c:#1\endcsname}%
+ \getparameters[\??tx:p:#1]
+ [\c!width=\hsize,\c!style=,#2]%
+ \fi}
+
+\def\textflowparameter#1#2{\csname\??tx:p:#1#2\endcsname}
+\def\textflowcollector #1{\csname\??tx:c:#1\endcsname}
+
+\def\doiftextflowcollectorelse#1{\doifdefinedelse{\??tx:c:#1}}
+
+\def\doiftextflowelse#1%
+ {\doiftextflowcollectorelse{#1}
+ {\ifvoid\textflowcollector{#1}%
+ \expandafter\secondoftwoarguments
+ \else
+ \expandafter\firstoftwoarguments
+ \fi}
+ {\secondoftwoarguments}}
+
+\def\doiftextflow#1%
+ {\doiftextflowelse{#1}\firstofoneargument\gobbleoneargument}
+
+\def\starttextflow[#1]%
+ {\doiftextflowcollectorelse{#1}
+ {\global\setbox\textflowcollector{#1}\vbox
+ \bgroup
+ \unvbox\textflowcollector{#1}%
+ \hsize\textflowparameter{#1}\c!width
+ \doifsomething{\textflowparameter{#1}\c!style}%
+ {\doconvertfont{\textflowparameter{#1}\c!style}}%
+ \def\stoptextflow{\endgraf\egroup}}
+ {\let\stoptextflow\relax}}
+
+\def\flushtextflow#1%
+ {\doiftextflow{#1}
+ {\ifdim\ht\textflowcollector{#1}>\vsize
+ \setbox\scratchbox\vsplit\textflowcollector{#1} to \vsize
+ \unvbox\scratchbox
+ \else
+ \unvbox\textflowcollector{#1}%
+ \fi}}
+
+\protect \endinput
+
+% Example (dutch)
+%
+% \stelpapierformaatin [S6]
+% \steltolerantiein [soepel,rek]
+% \stelkleurenin [status=start]
+% \stelvoetin [strut=nee]
+% \stelwitruimtein [groot]
+%
+% \stellayoutin
+% [rechterrand=5cm,breedte=passend,marge=0pt,randafstand=1cm,
+% voet=4cm,voetafstand=1cm,hoofd=0cm]
+%
+% \stelteksttekstenin[rand][][\vbox{\flushtextflow{alpha}}]
+% \stelvoettekstenin [rand][][\vbox{\flushtextflow{beta}}]
+% \stelvoettekstenin [\vbox{\flushtextflow{gamma}}][]
+%
+% \definetextflow [alfa] [breedte=\rechterrandbreedte]
+% \definetextflow [beta] [breedte=\rechterrandbreedte]
+% \definetextflow [gamma] [breedte=\voethoogte]
+%
+% \starttekst
+%
+% \dorecurse{50}
+% {\getrandomnumber{\funny}{0}{8}
+% \ifcase\funny \starttextflow[alfa] \input tufte.tex \stoptextflow
+% \or \starttextflow[beta] \input knuth.tex \stoptextflow
+% \or \starttextflow[gamma] \input materie.tex \stoptextflow
+% \or {\bf TUFTE}\quad \input tufte \par
+% \or {\bf TUFTE}\quad \input tufte \par
+% \or {\bf KNUTH}\quad \input knuth \par
+% \or {\bf KNUTH}\quad \input knuth \par
+% \or {\bf MATERIE}\quad \input materie \par
+% \else {\bf MATERIE}\quad \input materie \par
+% \fi}
+%
+% \stoptekst
diff --git a/Master/texmf-dist/tex/context/base/page-imp.tex b/Master/texmf-dist/tex/context/base/page-imp.mkii
index 4c8a334bf67..e4ece04a626 100644
--- a/Master/texmf-dist/tex/context/base/page-imp.tex
+++ b/Master/texmf-dist/tex/context/base/page-imp.mkii
@@ -1,7 +1,7 @@
%D \module
%D [ file=page-imp, % was: core-pag,
%D version=1998.01.15,
-%D title=\CONTEXT\ Core Macros,
+%D title=\CONTEXT\ Page Macros,
%D subtitle=Pagebody Building (Imposition),
%D author=Hans Hagen,
%D date=\currentdate,
@@ -13,7 +13,7 @@
% much of this can more to run time loading !
-\writestatus{loading}{Context Core Macros / Pagebody Building}
+\writestatus{loading}{ConTeXt Page Macros / Pagebody Building}
\unprotect
@@ -115,13 +115,26 @@
% moved code:
+% \def\myshipout#1%
+% {\beforeshipout % voor de pagebody dus !
+% \dontshowcomposition
+% \ifarrangingpages\@EA\actualarrange\else\@EA\actualshipout\fi
+% {\thisisrealpage\realfolio#1}%
+% \gotonextrealpage
+% \aftershipout}
+
+\def\installpagehandler#1#2% % a handler takes one argument: something to be boxed
+ {\setvalue{\??pp:\c!method:#1}{#2}} % and shipped out (don't depend on the exact package)
+
+\installpagehandler\v!normal
+ {\ifarrangingpages\expandafter\actualarrange\else\expandafter\actualshipout\fi}
+
\def\myshipout#1%
- {\beforeshipout % voor de pagebody dus !
- \dontshowcomposition
- \ifarrangingpages\@EA\actualarrange\else\@EA\actualshipout\fi
- {\thisisrealpage\realfolio#1}%
- \gotonextrealpage
- \aftershipout}
+ {\beforeshipout % voor de pagebody dus !
+ \dontshowcomposition
+ \executeifdefined{\??pp:\c!method:\@@ppmethod}\gobbleoneargument{\thisisrealpage\realfolio#1}%
+ \gotonextrealpage
+ \aftershipout}
\newbox\postponedcontent
@@ -1002,7 +1015,7 @@
%D \starttext
%D \combinepages[slides][nx=2,ny=3,frame=on]
%D \stoptext
-%D \starttyping
+%D \stoptyping
%D
%D One can influence the way the pages are combined. (This
%D will be explained some time.)
@@ -1156,12 +1169,12 @@
\doifelse\@@pcstate\v!start
{\doifinsetelse\@@pclocation{\v!bottom,\v!top}
{\setuppapersize[\c!left=\hskip\@@pcoffset]%
- \adddimenmacro\paperheight\@@pcoffset\@@pcoffset\@@pcdistance\@@pcheight\to\@@pcpaperheight
- \adddimenmacro\paperwidth\@@pcoffset\@@pcoffset\to\@@pcpaperwidth
+ \edef\@@pcpaperheight{\the\dimexpr\paperheight+\@@pcoffset+\@@pcoffset+\@@pcdistance+\@@pcheight\relax}%
+ \edef\@@pcpaperwidth {\the\dimexpr\paperwidth+\@@pcoffset+\@@pcoffset\relax}%
\defineoverlay[\v!pagecomment][\placepagecommentTB]}
{\setuppapersize[\c!top=\vskip\@@pcoffset]%
- \adddimenmacro\paperheight\@@pcoffset\@@pcoffset\to\@@pcpaperheight
- \adddimenmacro\paperwidth\@@pcoffset\@@pcoffset\@@pcdistance\@@pcwidth\to\@@pcpaperwidth
+ \edef\@@pcpaperheight{\the\dimexpr\paperheight+\@@pcoffset+\@@pcoffset\relax}%
+ \edef\@@pcpaperwidth {\the\dimexpr\paperwidth+\@@pcoffset+\@@pcoffset+\@@pcdistance+\@@pcwidth\relax}%
\defineoverlay[\v!pagecomment][\placepagecommentLR]}%
\processaction
[\@@pclocation]
@@ -1188,7 +1201,7 @@
{\forgetall
\hsize\printpaperwidth
\vskip\@@pcoffset
- \doifelse\@@pclocation\v!bottom{\vskip\paperheight\vskip\@@pcdistance}\vss
+ \doifelse\@@pclocation\v!bottom{\vskip\dimexpr\paperheight+\@@pcdistance\relax}\vss
\hskip\@@pcoffset
\vbox to \@@pcheight
{\forgetall
@@ -1198,7 +1211,7 @@
\global\pagecommentfalse
\fi}%
\hfill
- \doifelse\@@pclocation\v!bottom\vss{\vskip\paperheight\vskip\@@pcdistance}
+ \doifelse\@@pclocation\v!bottom\vss{\vskip\dimexpr\paperheight+\@@pcdistance\relax}%
\vskip\@@pcoffset}}
\def\placepagecommentLR
diff --git a/Master/texmf-dist/tex/context/base/page-imp.mkiv b/Master/texmf-dist/tex/context/base/page-imp.mkiv
new file mode 100644
index 00000000000..fd0482585f3
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/page-imp.mkiv
@@ -0,0 +1,1298 @@
+%D \module
+%D [ file=page-imp, % was: core-pag,
+%D version=1998.01.15,
+%D title=\CONTEXT\ Page Macros,
+%D subtitle=Pagebody Building (Imposition),
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+% much of this can more to run time loading !
+
+\writestatus{loading}{ConTeXt Page Macros / Pagebody Building}
+
+\unprotect
+
+% sizing bug:
+%
+% \setuppapersize[A4][A4,landscape] \setuparranging[2UP] \showframe
+%
+% \starttext \dorecurse{10}{\input tufte \par} \stoptext
+
+% to be moved code:
+
+\newif\ifclipprintbox \clipprintboxtrue
+%newif\ifclippagebox \clippageboxtrue
+
+\def\clippedprintbox#1#2% can be made more efficient, see other clipper
+ {\ifclipprintbox
+ \!!widthc \pagebackgroundoffset
+ \!!widtha \dimexpr\paperwidth + \!!widthc\relax
+ \!!heighta\dimexpr\paperheight+2\!!widthc\relax
+ \setbox#2\vbox to \paperheight{\vfill\box#2}%
+ \ht#2\paperheight
+ \wd#2\paperwidth
+ \setbox#2\vbox
+ {\framed
+ [\c!offset=\!!widthc,\c!strut=\v!no,\c!frame=\v!off]
+ {\box#2}}%
+ \setbox#2\hbox to \paperwidth
+ {\ifcase#1\relax
+ \!!widthb\zeropoint
+ \hskip-\!!widthc
+ \else
+ \!!widthb\!!widthc
+ \fi
+ \lower\!!widthc\hbox
+ {\clip
+ [\c!width=\!!widtha,\c!height=\!!heighta,
+ \c!hoffset=\!!widthb,\c!voffset=\zeropoint]
+ {\box#2}}}%
+ \wd#2\paperwidth
+ \ht#2\paperheight
+ \fi
+ \box#2\relax}
+
+\let\clippagebox \gobbleoneargument
+\let\clipprintbox\gobbleoneargument
+
+% \setuppagenumbering[alternative=doublesided]
+% \setupcolors[state=start]
+% \setuppapersize[A4][A4,oversized]
+% \setuplayout[location=middle,clipoffset=5mm]
+% \setupbackgrounds
+% [page]
+% [frame=on,rulethickness=1mm,
+% backgroundoffset=10mm,background=color,backgroundcolor=red]
+% \starttext \dorecurse{10}{\input tufte \par} \stoptext
+
+\def\clippagebox % skip fast over false
+ {\ifdim\@@lyclipoffset>\zeropoint
+ \expandafter\doclippagebox
+ \else
+ \expandafter\gobbleoneargument
+ \fi}
+
+\def\doclippagebox#1%
+ {\!!widtha \wd#1%
+ \!!heighta\ht#1%
+ \!!deptha \dp#1%
+ \setbox#1\hbox
+ {\!!widthb \@@lyclipoffset
+ \advance\!!heighta\dimexpr\!!deptha+2\!!widthb\relax
+ \advance\!!widtha \!!widthb
+ \doifbothsides
+ {\advance\!!widtha\!!widthb \!!widthc-\!!widthb \hskip\!!widthc}%
+ {\!!widthc\zeropoint}
+ {\!!widthc-\!!widthb \hskip\!!widthc}%
+ \lower\!!widthb\hbox
+ {\clip
+ [\c!hoffset=\!!widthc,
+ \c!voffset=-\!!widthb,
+ \c!width=\!!widtha,
+ \c!height=\!!heighta]%
+ {\box#1}}}%
+ \wd#1\!!widtha
+ \ht#1\!!heighta
+ \dp#1\!!deptha}
+
+%D \macros
+%D {starttextdata}
+%D
+%D This is a user macro (appending to every last shipout is not
+%D really user friendly.
+
+\newtoks \collectedtextdata
+
+\long\def\starttextdata#1\stoptextdata
+ {\doglobal\appendtoks#1\to\collectedtextdata}
+
+\def\flushtextdata
+ {\vsmashed{\the\collectedtextdata}% all dimensions zero
+ \global\collectedtextdata\emptytoks
+ \globallet\flushtextdata\donothing}
+
+\prependtoks \flushtextdata \to \everylastshipout
+
+\def\installpagehandler#1#2% % a handler takes one argument: something to be boxed
+ {\setgvalue{\??pp:\c!method:#1}##1{#2{##1}}} % and shipped out (don't depend on the exact package)
+
+\installpagehandler\v!normal
+ {\ifarrangingpages\expandafter\actualarrange\else\expandafter\actualshipout\fi}
+
+\def\myshipout#1%
+ {\beforeshipout % voor de pagebody dus !
+ \dontshowcomposition
+ \executeifdefined{\??pp:\c!method:\@@ppmethod}\gobbleoneargument{#1}%
+ \setnextrealpageno
+ \aftershipout}
+
+\newbox\postponedcontent
+
+\def\flushatshipout
+ {\dowithnextbox
+ {\global\setbox\postponedcontent\hbox to \zeropoint
+ {%\hskip-\maxdimen % niet hier, gaat mis in acrobat (clipt)
+ \unhbox\postponedcontent\unhbox\nextbox}% was \box
+ \global\ht\postponedcontent\zeropoint
+ \global\dp\postponedcontent\zeropoint
+ \global\wd\postponedcontent\zeropoint}%
+ \hbox}
+
+% \starttypen
+% \def\pagestoshipout{1,3,5}
+% \stoptypen
+
+\newcount\shippedoutpages
+
+\let\pagestoshipout\empty % {1,3,6}
+\chardef\whichpagetoshipout=0 % 0=all 1=odd 2=even
+
+\def\actualshipout#1%
+ {\global\advance\shippedoutpages\plusone
+ % this is not resource safe!
+ \ifx\pagestoshipout\empty
+ \ifcase\whichpagetoshipout\relax
+ \donetrue
+ \or % 1
+ \ifodd\shippedoutpages\relax\donetrue\else\donefalse\fi
+ \or % 2
+ \ifodd\shippedoutpages\relax\donefalse\else\donetrue\fi
+ \else
+ \donetrue
+ \fi
+ \else % testen, aangepast / expanded nodig ?
+ \normalexpanded{\noexpand\doifinsetelse{\the\shippedoutpages}{\pagestoshipout}}%
+ \donetrue\donefalse
+ \fi
+ \ifdone
+ \shipout\vbox
+ {%\forgetall
+ \offinterlineskip
+ \dontcomplain
+ \scratchdimen-1in
+ \vskip\scratchdimen
+ \hskip\scratchdimen
+ \setbox0\hbox{#1}% just in case there are objects there, hook for testing
+ \finalizeshipoutbox0%
+ \setbox\scratchbox\hbox
+ {% before the main one !
+ \ifcase\realfolio \or
+ \the\everyfirstshipout
+ \global\everyfirstshipout\emptytoks
+ \fi
+ % the main one
+ \the\everyshipout\relax
+ % always last (and after the main one)
+ \ifnum\realpageno=\lastpage\relax
+ \the\everylastshipout
+ \global\everylastshipout\emptytoks
+ \fi}%
+ \smashbox\scratchbox
+ \hbox % \setbox0=\box.. is nicer
+ {\box\scratchbox
+ \ifvoid\postponedcontent\else\box\postponedcontent\fi % evt ver naar links !
+ \box0}}%
+ \else
+ \message
+ {[\ifarrangingpages arranged \fi page
+ \ifarrangingpages\the\arrangeno\else\the\realpageno\fi\normalspace
+ not flushed]}%
+ \setbox0\hbox{#1}%
+ \deadcycles\zerocount
+ \fi}
+
+\def\actualarrange#1%
+ {\setbox0\hbox{#1}%
+ \pusharrangedpage0%
+ \deadcycles\zerocount}
+
+%D We need a couple of boxes for duplex printing \unknown
+
+\newbox\arrangedpageA \newbox\arrangedpageB
+
+%D \unknown\ and some for simulating big sheets.
+
+\newbox\arrangedpageC \newbox\arrangedpageD
+\newbox\arrangedpageE \newbox\arrangedpageF
+\newbox\arrangedpageG \newbox\arrangedpageH
+
+\newif\ifswaparranged
+\newif\ifnegatearranged
+\newif\ifmirrorarranged
+\newif\ifdoublearranged
+
+\newif\ifarrangingdisabled
+
+\def\arrangedrotationO{0}
+\def\arrangedrotationE{0}
+
+\newcounter\arrangedpageN
+\newcounter\arrangedpageM
+
+\chardef\arrangedpageT=1
+\chardef\arrangedpageX=1
+\chardef\arrangedpageY=1
+
+\def\calculatepaperoffsets#1%
+ {\scratchdimen\getvalue{\??pp#1\c!offset}%
+ \divide\scratchdimen \arrangedpageX
+ \global\advance\paperwidth -2\scratchdimen
+ \scratchdimen\getvalue{\??pp#1\c!offset}%
+ \divide\scratchdimen \arrangedpageY
+ \global\advance\paperheight-2\scratchdimen}
+
+\newconditional\arrangedbackgroundokay % more ifs -> conditionals
+
+\def\setuparranging[#1]%
+ {\ifarrangingdisabled \else
+ \doifelse{#1}\v!disable
+ {\global\arrangingdisabledtrue}
+ {\global\arrangingdisabledfalse}%
+ \global\arrangingpagestrue
+ \global\negatearrangedfalse
+ \global\mirrorarrangedfalse
+ \global\doublearrangedfalse
+ \gdef\arrangedrotationO{0}%
+ \gdef\arrangedrotationE{180}%
+ \processallactionsinset
+ [#1]
+ [ \v!mirrored=>\global\mirrorarrangedtrue,
+ \v!doublesided=>\global\doublearrangedtrue,
+ \v!negative=>\global\negatearrangedtrue,
+ \v!rotated=>\gdef\arrangedrotationO {90}\gdef\arrangedrotationE{270},
+ 90=>\gdef\arrangedrotationO {90}\gdef\arrangedrotationE{270},
+ 180=>\gdef\arrangedrotationO{180}\gdef\arrangedrotationE{0},
+ 270=>\gdef\arrangedrotationO{270}\gdef\arrangedrotationE{90},
+ \s!reset=>\global\arrangingpagesfalse,
+ \v!background=>\global\settrue\arrangedbackgroundokay,
+ \s!unknown=>\checkinstalledpagearrangement\commalistelement]%
+ % no \s!default=> we can have aaa,,bbb
+ \ifx\handlearrangedpage\undefined
+ \global\arrangingpagesfalse
+ \fi
+ \doifcommonelse{#1}{90,270,\v!rotated}
+ {\swapmacros\horizontalcutmarks\verticalcutmarks}{}% ugly solution
+ \setuppapersize
+ \fi}
+
+\def\installpagearrangement #1 %
+ {\setgvalue{\??pp\??pp#1}}
+
+\def\checkinstalledpagearrangement#1% can be empty: aaa,,bbb
+ {\executeifdefined{\??pp\??pp#1}\donothing}
+
+\def\dosetuparrangement#1#2#3#4#5#6#7#8%
+ {\global\chardef\arrangedpageX #1%
+ \global\chardef\arrangedpageY #2%
+ \global\chardef\arrangedpageT #3%
+ \global\chardef\horizontalcutmarks#4%
+ \global\chardef\verticalcutmarks #5%
+ \global\let \pusharrangedpage #6%
+ \global\let \poparrangedpages #7%
+ \global\let \handlearrangedpage#8}
+
+\installpagearrangement {\v!normal}
+ {\global\arrangingpagesfalse}
+
+\installpagearrangement 2*16
+ {\dosetuparrangement{4}{4}{16}{5}{5}%
+ \pusharrangedpageTHIRTYTWO\poparrangedpagesAB\relax}
+
+\installpagearrangement 2*8
+ {\dosetuparrangement{4}{2}{8}{5}{3}%
+ \pusharrangedpageSIXTEEN\poparrangedpagesAB\relax}
+
+\installpagearrangement 2*4
+ {\dosetuparrangement{2}{2}{4}{3}{3}%
+ \pusharrangedpageEIGHT\poparrangedpagesAB\relax}
+
+\installpagearrangement 2*2
+ {\dosetuparrangement{2}{1}{2}{3}{2}%
+ \pusharrangedpageFOURA\poparrangedpagesAB\relax}
+
+\installpagearrangement 2**2
+ {\dosetuparrangement{2}{1}{2}{3}{2}%
+ \pusharrangedpageFOURB\poparrangedpagesAB\relax}
+
+\installpagearrangement 2SIDE
+ {\dosetuparrangement{2}{1}{2}{3}{2}%
+ \pusharrangedpageSIDETOP\poparrangedpagesTWO\handlearrangedpageSIDE}
+
+\installpagearrangement 2TOP
+ {\dosetuparrangement{1}{2}{2}{2}{3}%
+ \pusharrangedpageSIDETOP\poparrangedpagesTWO\handlearrangedpageTOP}
+
+\installpagearrangement 2UP
+ {\dosetuparrangement{2}{1}{4}{3}{2}%
+ \pusharrangedpageTWO\poparrangedpagesTWO\handlearrangedpageTWOUP}
+
+\installpagearrangement 2DOWN
+ {\dosetuparrangement{1}{2}{4}{2}{3}%
+ \pusharrangedpageTWO\poparrangedpagesTWO\handlearrangedpageTWODOWN}
+
+\installpagearrangement 2*4*2 % one defined by Willy Egger:
+ {\dosetuparrangement{2}{2}{4}{3}{2}%
+ \pusharrangedpageSIXTEENTWO\poparrangedpagesAtoD\relax}
+
+\installpagearrangement 2*2*4 % onother one of Willy Egger
+ {\dosetuparrangement{2}{1}{8}{3}{2}%
+ \pusharrangedpageSIXTEENFOUR\poparrangedpagesAtoH\relax}
+
+\installpagearrangement 2TOPSIDE
+ {\dosetuparrangement{1}{2}{4}{2}{3}%
+ \pusharrangedpageTWOTOPSIDE\poparrangedpagesTWOTOPSIDE\handlearrangedpageTOP}
+
+% \def\filluparrangedpages % beware: \realpageno is 1 ahead
+% {\ifarrangingpages
+% \scratchcounter-\realpageno
+% \divide\scratchcounter \arrangedpageT
+% \multiply\scratchcounter \arrangedpageT
+% \advance\scratchcounter \realpageno
+% \advance\scratchcounter \minusone
+% \dorecurse\scratchcounter{\noheaderandfooterlines\ejectdummypage}%
+% \fi}
+
+\def\filluparrangedpages % beware: \realpageno is 1 ahead
+ {\ifarrangingpages
+ \scratchcounter\numexpr\realpageno-\plusone\relax
+ \dosetmodulo\scratchcounter\arrangedpageT\scratchcounter
+ \ifcase\scratchcounter\else
+ \advance\scratchcounter \plusone
+ \dostepwiserecurse\scratchcounter\arrangedpageT\plusone
+ {\noheaderandfooterlines\ejectdummypage}%
+ \fi
+ \fi}
+
+\def\handlearrangedpageXandY#1#2#3#4#5%
+ {\global\setbox#5\hbox to \arrangedpageX\paperwidth
+ {\setbox\scratchbox\vbox to \arrangedpageY\paperheight
+ {%\forgetall
+ \offinterlineskip
+ \dontcomplain
+ \vskip#4\paperheight
+ \hskip#3\paperwidth
+ \dorotatebox{\ifcase#2 0\else180\fi}\hbox{\box#1}%
+ \vfill}%
+ \wd\scratchbox\zeropoint
+ \box\scratchbox\box#5\hss}}
+
+\def\gotonextarrangepage
+ {\global\advance\arrangeno \plusone
+ \def\pagecutmarksymbol{\the\arrangeno}}
+
+\def\outputarrangedbox#1%
+ {\bgroup
+ \gotonextarrangepage
+ \ifnum\arrangedrotationO\arrangedrotationE>\zerocount
+ \setbox#1\vbox
+ {\ifdoublearranged
+ \ifodd\arrangeno
+ \dorotatebox\arrangedrotationO\hbox{\box#1}%
+ \else
+ \dorotatebox\arrangedrotationE\hbox{\box#1}%
+ \fi
+ \else
+ \dorotatebox\arrangedrotationO\hbox{\box#1}%
+ \fi}%
+ \fi
+ \ifmirrorarranged
+ \setbox#1\vbox{\domirrorbox\vbox{\box#1}}%
+ \fi
+ \ifnegatearranged
+ \negatecolorbox{#1}%
+ \fi
+ \finishpagebox#1%
+ \ifconditional\arrangedbackgroundokay\addprintbackground#1\fi
+ \actualshipout{\box#1}%
+ \egroup}
+
+%D The format file can be 16K smaller when we postpone the
+%D real arrangments. Some day ...
+
+% TOP
+
+% 32/16/8/4/SIDE
+
+\def\poparrangedpagesAB
+ {\ifnum\arrangedpageN>\zerocount
+ \dontcomplain
+ \paperwidth\arrangedpageX\paperwidth
+ \paperheight\arrangedpageY\paperheight
+ \outputarrangedbox\arrangedpageA
+ \outputarrangedbox\arrangedpageB
+ \doglobal\newcounter\arrangedpageN
+ \fi}
+
+\def\pusharrangedpageTHIRTYTWO#1% taco's challenge
+ {\doglobal\increment\arrangedpageN
+ \reportarrangedpage\arrangedpageN
+ \ifcase\arrangedpageN
+ \or \handlearrangedpageXandY{#1}033\arrangedpageA % 1
+ \or \handlearrangedpageXandY{#1}003\arrangedpageB % 2
+ \or \handlearrangedpageXandY{#1}100\arrangedpageB % 3
+ \or \handlearrangedpageXandY{#1}130\arrangedpageA % 4
+ \or \handlearrangedpageXandY{#1}100\arrangedpageA % 5
+ \or \handlearrangedpageXandY{#1}130\arrangedpageB % 6
+ \or \handlearrangedpageXandY{#1}033\arrangedpageB % 7
+ \or \handlearrangedpageXandY{#1}003\arrangedpageA % 8
+ \or \handlearrangedpageXandY{#1}102\arrangedpageA % 9
+ \or \handlearrangedpageXandY{#1}132\arrangedpageB % 10
+ \or \handlearrangedpageXandY{#1}031\arrangedpageB % 11
+ \or \handlearrangedpageXandY{#1}001\arrangedpageA % 12
+ \or \handlearrangedpageXandY{#1}031\arrangedpageA % 13
+ \or \handlearrangedpageXandY{#1}001\arrangedpageB % 14
+ \or \handlearrangedpageXandY{#1}102\arrangedpageB % 15
+ \or \handlearrangedpageXandY{#1}132\arrangedpageA % 16
+ \or \handlearrangedpageXandY{#1}122\arrangedpageA % 17
+ \or \handlearrangedpageXandY{#1}112\arrangedpageB % 18
+ \or \handlearrangedpageXandY{#1}011\arrangedpageB % 19
+ \or \handlearrangedpageXandY{#1}021\arrangedpageA % 20
+ \or \handlearrangedpageXandY{#1}011\arrangedpageA % 21
+ \or \handlearrangedpageXandY{#1}021\arrangedpageB % 22
+ \or \handlearrangedpageXandY{#1}122\arrangedpageB % 23
+ \or \handlearrangedpageXandY{#1}112\arrangedpageA % 24
+ \or \handlearrangedpageXandY{#1}013\arrangedpageA % 25
+ \or \handlearrangedpageXandY{#1}023\arrangedpageB % 26
+ \or \handlearrangedpageXandY{#1}120\arrangedpageB % 27
+ \or \handlearrangedpageXandY{#1}110\arrangedpageA % 28
+ \or \handlearrangedpageXandY{#1}120\arrangedpageA % 29
+ \or \handlearrangedpageXandY{#1}110\arrangedpageB % 30
+ \or \handlearrangedpageXandY{#1}013\arrangedpageB % 31
+ \or \handlearrangedpageXandY{#1}023\arrangedpageA % 32
+ \poparrangedpages
+ \fi}
+
+\def\pusharrangedpageSIXTEEN#1% changed to match the official way of doing
+ {\doglobal\increment\arrangedpageN
+ \reportarrangedpage\arrangedpageN
+ \ifcase\arrangedpageN
+ \or \handlearrangedpageXandY{#1}031\arrangedpageA % 1
+ \or \handlearrangedpageXandY{#1}001\arrangedpageB % 2
+ \or \handlearrangedpageXandY{#1}031\arrangedpageB % 3
+ \or \handlearrangedpageXandY{#1}001\arrangedpageA % 4
+ \or \handlearrangedpageXandY{#1}100\arrangedpageA % 5
+ \or \handlearrangedpageXandY{#1}130\arrangedpageB % 6
+ \or \handlearrangedpageXandY{#1}100\arrangedpageB % 7
+ \or \handlearrangedpageXandY{#1}130\arrangedpageA % 8
+ \or \handlearrangedpageXandY{#1}120\arrangedpageA % 9
+ \or \handlearrangedpageXandY{#1}110\arrangedpageB % 10
+ \or \handlearrangedpageXandY{#1}120\arrangedpageB % 11
+ \or \handlearrangedpageXandY{#1}110\arrangedpageA % 12
+ \or \handlearrangedpageXandY{#1}011\arrangedpageA % 13
+ \or \handlearrangedpageXandY{#1}021\arrangedpageB % 14
+ \or \handlearrangedpageXandY{#1}011\arrangedpageB % 15
+ \or \handlearrangedpageXandY{#1}021\arrangedpageA % 16
+ \poparrangedpages
+ \fi}
+
+\def\pusharrangedpageEIGHT#1% changed to match the official way of doing
+ {\doglobal\increment\arrangedpageN
+ \reportarrangedpage\arrangedpageN
+ \ifcase\arrangedpageN
+ \or \handlearrangedpageXandY{#1}011\arrangedpageA % 1
+ \or \handlearrangedpageXandY{#1}001\arrangedpageB % 2
+ \or \handlearrangedpageXandY{#1}100\arrangedpageB % 3
+ \or \handlearrangedpageXandY{#1}110\arrangedpageA % 4
+ \or \handlearrangedpageXandY{#1}100\arrangedpageA % 5
+ \or \handlearrangedpageXandY{#1}110\arrangedpageB % 6
+ \or \handlearrangedpageXandY{#1}011\arrangedpageB % 7
+ \or \handlearrangedpageXandY{#1}001\arrangedpageA % 8
+ \poparrangedpages
+ \fi}
+
+\def\pusharrangedpageFOURA{\pusharrangedpageFOURdo01}
+\def\pusharrangedpageFOURB{\pusharrangedpageFOURdo10}
+
+\def\pusharrangedpageFOURdo#1#2#3%
+ {\doglobal\increment\arrangedpageN
+ \reportarrangedpage\arrangedpageN
+ \ifcase\arrangedpageN
+ \or \handlearrangedpageXandY{#3}010\arrangedpageA % 1
+ \or \handlearrangedpageXandY{#3}0{#1}0\arrangedpageB % 2/3 not {1}
+ \or \handlearrangedpageXandY{#3}0{#2}0\arrangedpageB % 3/2 not {1}
+ \or \handlearrangedpageXandY{#3}000\arrangedpageA % 4
+ \poparrangedpages
+ \fi}
+
+\def\pusharrangedpageSIDETOP#1%
+ {\doglobal\increment\arrangedpageN
+ \reportarrangedpage\arrangedpageN
+ \ifcase\arrangedpageN
+ \or \handlearrangedpageXandY{#1}000\arrangedpageA % 1
+ \or \handlearrangedpageXandY{#1}000\arrangedpageB % 2
+ \poparrangedpages
+ \fi}
+
+\def\handlearrangedpageSIDE
+ {\global\wd\arrangedpageA\paperwidth
+ \global\wd\arrangedpageB\paperwidth
+ \global\setbox\arrangedpageA\hbox
+ {\box\arrangedpageA\box\arrangedpageB}%
+ \global\ht\arrangedpageA\paperheight}
+
+\def\handlearrangedpageTOP
+ {\global\ht\arrangedpageA\paperheight
+ \global\ht\arrangedpageB\paperheight
+ \global\setbox\arrangedpageA\vbox
+ {%\forgetall
+ \offinterlineskip\vskip\paperheight
+ \box\arrangedpageA\box\arrangedpageB}%
+ \global\setbox\arrangedpageB\box\scratchbox} % ?
+
+% 2UP/2DOWN / 1pt prevents overflow
+
+\def\splitoffarrangedpagesTWO
+ {\splittopskip\zeropoint
+ \global\setbox\arrangedpageA\vsplit\arrangedpageB to \onepoint
+ \scratchdimen\dimexpr\ht\arrangedpageB-\onepoint\relax
+ \ifdim\scratchdimen>\onepoint
+ \setbox\scratchbox\vsplit\arrangedpageB to \scratchdimen
+ \fi}
+
+\def\handlearrangedpageTWOUP
+ {\splitoffarrangedpagesTWO
+ \ifswaparranged
+ \global\setbox\arrangedpageA\hbox
+ {\clippedprintbox0\arrangedpageA
+ \clippedprintbox1\arrangedpageB}%
+ \swaparrangedfalse
+ \else
+ \global\setbox\arrangedpageA\hbox
+ {\clippedprintbox0\arrangedpageB
+ \clippedprintbox1\arrangedpageA}%
+ \swaparrangedtrue
+ \fi
+ \global\ht\arrangedpageA\paperheight
+ \global\setbox\arrangedpageB\box\scratchbox}
+
+\def\handlearrangedpageTWODOWN
+ {\splitoffarrangedpagesTWO
+ \global\ht\arrangedpageA\paperheight
+ \global\ht\arrangedpageB\paperheight
+ \ifswaparranged
+ \global\setbox\arrangedpageA\vbox
+ {%\forgetall
+ \offinterlineskip\vskip\paperheight
+ \box\arrangedpageA\box\arrangedpageB}%
+ \swaparrangedfalse
+ \else
+ \global\setbox\arrangedpageA\vbox
+ {%\forgetall
+ \offinterlineskip\vskip\paperheight
+ \box\arrangedpageB\box\arrangedpageA}%
+ \swaparrangedtrue
+ \fi
+ \global\setbox\arrangedpageB\box\scratchbox}
+
+\def\poparrangedpagesTWO
+ {\ifnum\arrangedpageN>\zerocount
+ \dontcomplain
+ \swaparrangedfalse
+ \doloop
+ {\handlearrangedpage
+ \bgroup
+ \paperwidth\arrangedpageX\paperwidth
+ \paperheight\arrangedpageY\paperheight
+ \ht\arrangedpageA\paperheight
+ \wd\arrangedpageA\paperwidth
+ \outputarrangedbox\arrangedpageA
+ \egroup
+ \ifdim\ht\arrangedpageB=\zeropoint
+ \exitloop
+ \fi}%
+ \doglobal\newcounter\arrangedpageN
+ \fi}
+
+\def\pusharrangedpageTWO#1%
+ {\doglobal\increment\arrangedpageN
+ \reportarrangedpage\arrangedpageN
+ \global\setbox\arrangedpageB\vbox
+ {%\forgetall
+ \offinterlineskip
+ \unvbox\arrangedpageB
+ \allowbreak
+ \ht#1\onepoint
+ \dp#1\zeropoint
+ \vbox{\box#1}}}
+
+\def\poparrangedpagesTWOTOPSIDE
+ {\ifnum\arrangedpageN>\zerocount
+ \bgroup
+ \gdef\arrangedpageN{2}\poparrangedpagesTWO
+ \let\arrangedpageA\arrangedpageC
+ \let\arrangedpageB\arrangedpageD
+ \gdef\arrangedpageN{2}\poparrangedpagesTWO
+ \doglobal\newcounter\arrangedpageN
+ \egroup
+ \fi}
+
+\def\pusharrangedpageTWOTOPSIDE#1%
+ {\doglobal\increment\arrangedpageN
+ \reportarrangedpage\arrangedpageN
+ \ifcase\arrangedpageN
+ \or \handlearrangedpageXandY{#1}000\arrangedpageA % 1
+ \or \handlearrangedpageXandY{#1}000\arrangedpageC % 2
+ \or \handlearrangedpageXandY{#1}000\arrangedpageB % 1
+ \or \handlearrangedpageXandY{#1}000\arrangedpageD % 2
+ \poparrangedpages
+ \fi}
+
+%D Willy Egger's sheet simulations:
+
+\def\poparrangedpagesAtoH
+ {\ifnum\arrangedpageN>\zerocount
+ \dontcomplain
+ \paperwidth\arrangedpageX\paperwidth
+ \paperheight\arrangedpageY\paperheight
+ \outputarrangedbox\arrangedpageA
+ \outputarrangedbox\arrangedpageB
+ \outputarrangedbox\arrangedpageC
+ \outputarrangedbox\arrangedpageD
+ \outputarrangedbox\arrangedpageE
+ \outputarrangedbox\arrangedpageF
+ \outputarrangedbox\arrangedpageG
+ \outputarrangedbox\arrangedpageH
+ \doglobal\newcounter\arrangedpageN
+ \fi}
+
+% to arrange 16 pages on 2 sheets to form one booklet
+
+\def\poparrangedpagesAtoD
+ {\ifnum\arrangedpageN>\zerocount
+ \dontcomplain
+ \paperwidth\arrangedpageX\paperwidth
+ \paperheight\arrangedpageY\paperheight
+ \outputarrangedbox\arrangedpageA
+ \outputarrangedbox\arrangedpageB
+ \outputarrangedbox\arrangedpageC
+ \outputarrangedbox\arrangedpageD
+ \doglobal\newcounter\arrangedpageN
+ \fi}
+
+% to arrange 16 pages on 4 sheets to form one booklet
+
+\def\pusharrangedpageSIXTEENFOUR#1%
+ {\doglobal\increment\arrangedpageN
+ \reportarrangedpage\arrangedpageN
+ \ifcase\arrangedpageN
+ \or \handlearrangedpageXandY{#1}010\arrangedpageA % 1
+ \or \handlearrangedpageXandY{#1}000\arrangedpageB % 2
+ \or \handlearrangedpageXandY{#1}010\arrangedpageC % 3
+ \or \handlearrangedpageXandY{#1}000\arrangedpageD % 4
+ \or \handlearrangedpageXandY{#1}010\arrangedpageE % 5
+ \or \handlearrangedpageXandY{#1}000\arrangedpageF % 6
+ \or \handlearrangedpageXandY{#1}010\arrangedpageG % 7
+ \or \handlearrangedpageXandY{#1}000\arrangedpageH % 8
+ \or \handlearrangedpageXandY{#1}010\arrangedpageH % 9
+ \or \handlearrangedpageXandY{#1}000\arrangedpageG % 10
+ \or \handlearrangedpageXandY{#1}010\arrangedpageF % 11
+ \or \handlearrangedpageXandY{#1}000\arrangedpageE % 12
+ \or \handlearrangedpageXandY{#1}010\arrangedpageD % 13
+ \or \handlearrangedpageXandY{#1}000\arrangedpageC % 14
+ \or \handlearrangedpageXandY{#1}010\arrangedpageB % 15
+ \or \handlearrangedpageXandY{#1}000\arrangedpageA % 16
+ \poparrangedpages
+ \fi}
+
+% to arrange 16 pages on 2 sheets to form one booklet
+
+\def\pusharrangedpageSIXTEENTWO#1%
+ {\doglobal\increment\arrangedpageN
+ \reportarrangedpage\arrangedpageN
+ \ifcase\arrangedpageN
+ \or \handlearrangedpageXandY{#1}011\arrangedpageA % 1
+ \or \handlearrangedpageXandY{#1}001\arrangedpageB % 2
+ \or \handlearrangedpageXandY{#1}011\arrangedpageC % 3
+ \or \handlearrangedpageXandY{#1}001\arrangedpageD % 4
+ \or \handlearrangedpageXandY{#1}100\arrangedpageD % 5
+ \or \handlearrangedpageXandY{#1}110\arrangedpageC % 6
+ \or \handlearrangedpageXandY{#1}100\arrangedpageB % 7
+ \or \handlearrangedpageXandY{#1}110\arrangedpageA % 8
+ \or \handlearrangedpageXandY{#1}100\arrangedpageA % 9
+ \or \handlearrangedpageXandY{#1}110\arrangedpageB % 10
+ \or \handlearrangedpageXandY{#1}100\arrangedpageC % 11
+ \or \handlearrangedpageXandY{#1}110\arrangedpageD % 12
+ \or \handlearrangedpageXandY{#1}011\arrangedpageD % 13
+ \or \handlearrangedpageXandY{#1}001\arrangedpageC % 14
+ \or \handlearrangedpageXandY{#1}011\arrangedpageB % 15
+ \or \handlearrangedpageXandY{#1}001\arrangedpageA % 16
+ \poparrangedpages
+ \fi}
+
+% % handy for stickers etc, this way we can treat them as page
+%
+% \setuppapersize [XY][A4]
+% \setuppaper [topspace=5mm,backspace=5mm,dx=1mm,dy=1mm,nx=2,ny=6]
+% \setuplayout [page] [topspace=5mm,backspace=5mm]
+% \setuplayout [page]
+% \setuplayout [location=middle]
+% \setuparranging [XY]
+% \showframe
+%
+% \starttext \dorecurse{30}{test \recurselevel \page} \stoptext
+
+\def\pusharrangedpageXY#1%
+ {\doglobal\increment\arrangedpageN
+ \reportarrangedpage\arrangedpageN
+ \doglobal\increment\arrangedpageM
+ \global\setbox\arrangedpageB\hbox
+ \ifdim\@@ppwidth>\zeropoint to \@@ppwidth \fi
+ {\ifvoid\arrangedpageB\else
+ \unhbox\arrangedpageB
+ \ifdim\@@ppdx>\zeropoint \else \hss\fi
+ \hskip\@@ppdx
+ \ifdim\@@ppdx>\zeropoint \else \hss\fi
+ \fi
+ \box#1}%
+ \ifnum\arrangedpageM<\arrangedpageX\else
+ \global\setbox\arrangedpageA\vbox
+ \ifdim\@@ppheight>\zeropoint to \@@ppheight \fi
+ {\offinterlineskip
+ \ifvoid\arrangedpageA\else
+ \unvbox\arrangedpageA
+ \ifdim\@@ppdy>\zeropoint \else \vss\fi
+ \vskip\@@ppdy
+ \ifdim\@@ppdy>\zeropoint \else \vss\fi
+ \fi
+ \box\arrangedpageB}%
+ \doglobal\newcounter\arrangedpageM
+ \fi
+ \ifnum\arrangedpageN<\arrangedpageT\else
+ \poparrangedpages
+ \fi}
+
+\def\poparrangedpagesXY
+ {\ifnum\arrangedpageN>\zerocount
+ \dontcomplain
+ \paperwidth\arrangedpageX\paperwidth
+ \paperheight \arrangedpageY\paperheight
+ \outputarrangedbox\arrangedpageA
+ \doglobal\newcounter\arrangedpageN
+ \doglobal\newcounter\arrangedpageM
+ \fi}
+
+\installpagearrangement XY
+ {\dosetuparrangement\@@ppnx\@@ppny\@@ppxy\!!zerocount\!!zerocount
+ \pusharrangedpageXY\poparrangedpagesXY\relax}
+
+%D A crazy definition, don't guess who pushed me for the landscape option.
+
+\definepapersize
+ [XY]
+ [\c!height=\dimexpr\dimexpr\@@ppheight-\numexpr\@@ppny-1\relax\dimexpr\@@ppdy\relax\relax/\@@ppny\relax,
+ \c!width =\dimexpr\dimexpr\@@ppwidth -\numexpr\@@ppnx-1\relax\dimexpr\@@ppdx\relax\relax/\@@ppnx\relax]
+
+\setuppaper
+ [\c!width =\dimexpr\printpaperwidth -2\dimexpr\@@ppbackspace\relax\relax,
+ \c!height=\dimexpr\printpaperheight-2\dimexpr\@@pptopspace \relax\relax]
+
+% \definepageshift[test][horizontal][10pt,20pt,30pt,40pt,50pt]
+% \definepageshift[test][vertical] [10pt,20pt,30pt,40pt,50pt]
+%
+% \setuppageshift[test]
+% \setuppageshift[test][test]
+% \setuppageshift[test][none]
+% \setuppageshift[none][test]
+% \setuppageshift[paper][test][test] % arrange only
+% \setuppageshift[paper][test] % arrange only
+% \setuppageshift[print][test][test]
+%
+% \showframe \dorecurse{100}{\input tufte \par}
+
+% #1=name #2=horizontal|vertical #3=shiftlist
+
+\def\definepageshift
+ {\dotripleargument\dodefinepageshift}
+
+\def\dodefinepageshift[#1][#2][#3]%
+ {\setvalue{\??pt#2:#1}{#3}}
+
+\letempty \hpageshifts \newcounter\nofhpageshifts
+\letempty \vpageshifts \newcounter\nofvpageshifts
+
+% \let\shiftprintpagebox\gobbleoneargument
+% \let\shiftpaperpagebox\gobbleoneargument
+
+\def\dogetpageshift#1#2#3% #1=\dimenx #2=\xpageshifts #3=\nofxpageshifts
+ {\ifx#2\empty
+ #1\zeropoint
+ \else
+ \doglobal\increment#3%
+ \getfromcommacommand[#2][#3]%
+ \ifx\commalistelement\empty
+ \globallet#3\!!plusone
+ \getfromcommacommand[#2][#3]%
+ \fi
+ \ifx\commalistelement\empty
+ #1\zeropoint
+ \else
+ #1=\commalistelement
+ \donetrue
+ \fi
+ \fi}
+
+\def\shiftpagebox#1%
+ {\donefalse
+ \dogetpageshift{\dimen0}\hpageshifts\nofhpageshifts
+ \dogetpageshift{\dimen2}\vpageshifts\nofvpageshifts
+ \ifdone % see also layout offsets, maybe \movebox
+ \edef\next{\wd#1\the\wd#1\ht#1\the\ht#1\dp#1\the\dp#1}%
+ \setbox#1\vbox
+ {\offinterlineskip\vskip\dimen2\hskip\dimen0\box#1}%
+ \next
+ \fi}
+
+\def\setuppageshift
+ {\dotripleempty\dosetuppageshift}
+
+\def\dosetuppageshift[#1][#2][#3]% page|paper horizontal vertical
+ {\ifthirdargument % paper=arrange
+ \let\hpageshifts\empty
+ \let\vpageshifts\empty
+ \let\shiftprintpagebox\gobbleoneargument
+ \let\shiftpaperpagebox\gobbleoneargument
+ \doifdefined{\??pt\v!horizontal:#2}
+ {\edef\hpageshifts{\getvalue{\??pt\v!horizontal:#2}}}%
+ \doifdefined{\??pt\v!vertical :#3}
+ {\edef\vpageshifts{\getvalue{\??pt\v!vertical :#3}}}%
+ \doif{#1}\v!page{\let\shiftprintpagebox\shiftpagebox}%
+ \doif{#1}\v!paper{\let\shiftpaperpagebox\shiftpagebox}%
+ \else\ifsecondargument
+ \doifinsetelse{#1}{\v!page,\v!paper}
+ {\setuppageshift[#1][#2][#2]}
+ {\setuppageshift[\v!page][#1][#2]}%
+ \else\iffirstargument
+ \setuppageshift[\v!page][#1][#1]%
+ \fi\fi\fi}
+
+%D One can (mis)use this mechanism, in close cooperation
+%D with \PDFTEX\ to arrange pages of already produced files.
+%D
+%D \starttyping
+%D \insertpages[file.pdf][1,3][n=30,width=18cm]
+%D \stoptyping
+%D
+%D The pages are inserted in the text area, and even pages
+%D are repositioned according to the width. In this example
+%D empty pages are added after page 1 and 3.
+%D
+%D Selecting pages can be accomplished by:
+%D
+%D \starttyping
+%D \filterpages[file.pdf][1,3,5][n=30,width=18cm]
+%D \stoptyping
+%D
+%D One may pass \type {odd} or \type {even} instead of a
+%D comma separated list. A third alternative is:
+%D
+%D \starttyping
+%D \copypages[file.pdf][n=30,scale=950]
+%D \stoptyping
+%D
+%D This macros inserts the page, according to the settings
+%D provided.
+
+\def\insertpages
+ {\dotripleempty\doinsertpages}
+
+\def\doinsertpages[#1][#2][#3]%
+ {\doifassignmentelse{#2}
+ {\dodoinsertpages[#1][][#2]}
+ {\dodoinsertpages[#1][#2][#3]}}
+
+\def\dodoinsertpages[#1][#2][#3]%
+ {\bgroup
+ \dontcomplain
+ \getfiguredimensions[#1]%
+ \getparameters[\??ip][\c!n=\noffigurepages,\c!width=\!!zeropoint,#3]%
+ \doifinset0{#2}{\null\page}%
+ \dorecurse\@@ipn
+ {\dofilterpage{#1}\recurselevel
+ \doifinset\recurselevel{#2}{\null\page}}%
+ \egroup}
+
+\def\filterpages
+ {\dotripleempty\dofilterpages}
+
+\def\dofilterpages[#1][#2][#3]% % \noffigurepages not yet supported
+ {\bgroup
+ \dontcomplain
+ \getfiguredimensions[#1]%
+ \getparameters[\??ip][\c!n=\noffigurepages,\c!width=\!!zeropoint,#3]%
+ \doifelse{#2}\v!even
+ {\dorecurse\@@ipn
+ {\ifodd\recurselevel\relax\else\dofilterpage{#1}\recurselevel\fi}}
+ {\doifelse{#2}\v!odd
+ {\dorecurse\@@ipn
+ {\ifodd\recurselevel\relax\dofilterpage{#1}\recurselevel\fi}}
+ {\def\dodocommand##1%
+ {\ifnum##1>\@@ipn\else\dofilterpage{#1}{##1}\fi}%
+ \def\docommand##1%
+ {\dowithrange{##1}\dodocommand}%
+ \processcommalist[#2]\docommand}}%
+ \egroup}
+
+\def\dofilterpage#1#2%
+ {\hbox to \textwidth
+ {\ifdoublesided\ifdim\@@ipwidth>\zeropoint\relax\ifodd\realpageno\else
+ \hfill
+ \def\dowithfigure{\hskip-\@@ipwidth}%
+ \fi\fi\fi
+ \setbox0\hbox
+ {\externalfigure[#1][\c!page=#2,\c!height=\textheight]}%
+ \wd0\zeropoint
+ \box0}
+ \page}
+
+\def\copypages
+ {\dodoubleempty\docopypages}
+
+\def\docopypages[#1][#2]%
+ {\bgroup
+ \getfiguredimensions[#1]%
+ \getparameters[\??ip]
+ [\c!n=\noffigurepages,
+ \c!marking=\v!off,
+ \c!scale=\!!thousand,
+ \c!offset=\!!zeropoint,
+ #2]%
+ \dorecurse\@@ipn
+ {\vbox to \textheight
+ {\hsize\textwidth
+ \scratchdimen\@@ipoffset
+ \centeredbox
+ {\doifelse\@@ipmarking\v!on\cuthbox\hbox
+ {\ifdim\scratchdimen>\zeropoint\relax
+ \advance\vsize -2\scratchdimen
+ \advance\hsize -2\scratchdimen
+ \externalfigure[#1][\c!page=\recurselevel,#2,\c!scale=,\c!factor=\v!max,\c!offset=\v!overlay]%
+ \else
+ \externalfigure[#1][\c!page=\recurselevel,#2,\c!offset=\v!overlay]%
+ \fi}}}
+ \page}
+ \egroup}
+
+%D \macros
+%D {combinepages}
+%D
+%D Yet another way of postprocessing is handles by \type
+%D {\combinepages}. This macro builds a matrix of pages from a
+%D file, for example:
+%D
+%D \starttyping
+%D \setuppapersize
+%D [A4][A4] % or [A4,landscape][A4,landscape]
+%D
+%D \setuplayout
+%D [header=0pt,footer=1cm,
+%D backspace=1cm,topspace=1cm,
+%D width=middle,height=middle]
+%D
+%D \setupfootertexts
+%D [presentation---\currentdate\space---\space\pagenumber]
+%D
+%D \starttext
+%D \combinepages[slides][nx=2,ny=3,frame=on]
+%D \stoptext
+%D \stoptyping
+%D
+%D One can influence the way the pages are combined. (This
+%D will be explained some time.)
+
+\def\combinepages
+ {\dodoubleempty\docombinepages}
+
+\def\docombinepages[#1][#2]% a=perpag b=free
+ {\bgroup
+ \dontcomplain
+ \getfiguredimensions[#1]%
+ \getparameters
+ [\??ip]
+ [\c!alternative=\v!a,
+ \c!n=\noffigurepages,\c!nx=2,\c!ny=2,\c!start=1,\c!stop=\!!maxcard,
+ \c!distance=\bodyfontsize,
+ \c!bottom=\vfill,\c!top=\vss,
+ \c!left=\hss,\c!right=\hss,
+ \c!before=\page,\c!after=\page,\c!inbetween=\blank,
+ \c!frame=,\c!background=,\c!backgroundcolor=,
+ #2]%
+ \def\@@ipname{#1}%
+ \@@ipbefore
+ \expandcheckedcsname{\??ip::\c!alternative:}\@@ipalternative\v!b
+ \@@ipafter
+ \egroup}
+
+\setvalue{\??ip::\c!alternative:\v!a}%
+ {\globallet\combinedpagescounter\@@ipstart
+ \doloop
+ {\vbox to \textheight
+ {\hsize\textwidth % ? ?
+ \scratchdimen\@@ipdistance
+ \!!widtha \dimexpr(\hsize-\@@ipnx\scratchdimen+\scratchdimen)/\@@ipnx\relax
+ \!!heighta\dimexpr(\vsize-\@@ipny\scratchdimen+\scratchdimen)/\@@ipny\relax
+ \dorecurse\@@ipny
+ {\hbox to \hsize
+ {\dorecurse\@@ipnx
+ {\vbox to \!!heighta
+ {\hsize\!!widtha
+ \vsize\!!heighta
+ \@@iptop
+ \hbox to \hsize
+ {\@@ipleft
+ \ifnum\combinedpagescounter>\@@ipstop\relax
+ \globallet\@@ipn\!!zerocount
+ \else\ifnum\combinedpagescounter>\@@ipn \else
+ \externalfigure[\@@ipname]
+ [\c!object=\v!no,
+ \c!page=\combinedpagescounter,
+ \c!factor=\v!max,
+ \c!background=\@@ipbackground,
+ \c!backgroundcolor=\@@ipbackgroundcolor,
+ \c!frame=\@@ipframe]%
+ \fi\fi
+ \@@ipright}
+ \@@ipbottom}%
+ \doglobal\increment\combinedpagescounter
+ \hfil}%
+ \hfilneg}
+ \vfil}%
+ \vfilneg}%
+ \page
+ \ifnum\combinedpagescounter>\@@ipn \exitloop\fi}}
+
+\setvalue{\??ip::\c!alternative:\v!c}%
+ {\globallet\combinedpagescounter\@@ipstart
+ \doloop
+ {\vbox to \textheight
+ {\hsize\textwidth % ? ?
+ \scratchdimen\@@ipdistance
+ \!!widtha \dimexpr(\hsize-\@@ipnx\scratchdimen+\scratchdimen)/\@@ipnx\relax
+ \!!heighta\dimexpr(\vsize-\@@ipny\scratchdimen+\scratchdimen)/\@@ipny\relax
+ \hbox to \hsize
+ {\dorecurse\@@ipnx
+ {\@@ipleft
+ \vbox to \textheight
+ {\hsize\!!widtha
+ {\dorecurse\@@ipny
+ {\@@iptop
+ \hbox to \hsize
+ {\vbox to \!!heighta
+ {\hsize\!!widtha
+ \vsize\!!heighta
+ \ifnum\combinedpagescounter>\@@ipstop\relax
+ \globallet\@@ipn\!!zerocount
+ \else\ifnum\combinedpagescounter>\@@ipn \else
+ \externalfigure[\@@ipname]
+ [\c!object=\v!no,
+ \c!page=\combinedpagescounter,
+ \c!factor=\v!max,
+ \c!background=\@@ipbackground,
+ \c!backgroundcolor=\@@ipbackgroundcolor,
+ \c!frame=\@@ipframe]%
+ \fi\fi}}
+ \doglobal\increment\combinedpagescounter
+ \@@ipbottom}%
+ \vfil}%
+ \vfilneg}
+ \hfil}%
+ \hfilneg}}
+ \page
+ \ifnum\combinedpagescounter>\@@ipn \exitloop\fi}}
+
+\setvalue{\??ip::\c!alternative:\v!horizontal}{\getvalue{\??ip::\c!alternative:\v!a}}
+\setvalue{\??ip::\c!alternative:\v!vertical }{\getvalue{\??ip::\c!alternative:\v!c}}
+
+\setvalue{\??ip::\c!alternative:\v!b}%
+ {\globallet\combinedpagescounter\@@ipstart
+ \doloop
+ {\startbaselinecorrection
+ \scratchdimen\@@ipdistance
+ \!!widtha\dimexpr(\hsize-\@@ipnx\scratchdimen+\scratchdimen)/\@@ipnx\relax
+ \hbox to \hsize
+ {\dorecurse\@@ipnx
+ {\doglobal\increment\combinedpagescounter
+ \ifnum\combinedpagescounter>\@@ipn \else
+ \normalexpanded{\noexpand\externalfigure[\@@ipname]
+ [\c!page=\combinedpagescounter,
+ \c!width=\the\!!widtha,% todo \freezedimenmacro
+ \c!background=\@@ipbackground,
+ \c!backgroundcolor=\@@ipbackgroundcolor,
+ \c!frame=\@@ipframe]}%
+ \hfill
+ \fi}\hfillneg}%
+ \stopbaselinecorrection
+ \ifnum\combinedpagescounter<\@@ipn\relax
+ \@@ipinbetween
+ \else
+ \exitloop
+ \fi}}
+
+%D \macros
+%D {setuppagecomment,startpagecomment}
+%D
+%D This command is not yet documented. Usage:
+%D
+%D \starttyping
+%D \setuppagecomment[state=start,location=right]
+%D
+%D \startpagecomment
+%D \input knuth
+%D \stoppagecomment
+%D \stoptyping
+
+\def\setuppagecomment
+ {\dosingleempty\dosetuppagecomment}
+
+\def\dosetuppagecomment[#1]%
+ {\getparameters[\??pc][#1]%
+ \doifelse\@@pcstate\v!start
+ {\doifinsetelse\@@pclocation{\v!bottom,\v!top}
+ {\setuppapersize[\c!left=\hskip\@@pcoffset]%
+ \edef\@@pcpaperheight{\the\dimexpr\paperheight+\@@pcoffset+\@@pcoffset+\@@pcdistance+\@@pcheight\relax}%
+ \edef\@@pcpaperwidth {\the\dimexpr\paperwidth+\@@pcoffset+\@@pcoffset\relax}%
+ \defineoverlay[\v!pagecomment][\placepagecommentTB]}
+ {\setuppapersize[\c!top=\vskip\@@pcoffset]%
+ \edef\@@pcpaperheight{\the\dimexpr\paperheight+\@@pcoffset+\@@pcoffset\relax}%
+ \edef\@@pcpaperwidth {\the\dimexpr\paperwidth+\@@pcoffset+\@@pcoffset+\@@pcdistance+\@@pcwidth\relax}%
+ \defineoverlay[\v!pagecomment][\placepagecommentLR]}%
+ \processaction
+ [\@@pclocation]
+ [ \v!bottom=>{\setuppapersize[\c!bottom =\vss,\c!top =\vskip\@@pcoffset]},
+ \v!top=>{\setuppapersize[\c!top =\vss,\c!bottom =\vskip\@@pcoffset]},
+ \v!left=>{\setuppapersize[\c!left =\hss,\c!right=\hskip\@@pcoffset]},
+ \v!right=>{\setuppapersize[\c!right=\hss,\c!left =\hskip\@@pcoffset]}]%
+ \definepapersize
+ [\v!pagecomment]
+ [\c!height=\@@pcpaperheight,
+ \c!width=\@@pcpaperwidth]%
+ \let\@@pcprintpapersize\printpapersize
+ \setuppapersize[\papersize][\v!pagecomment]%
+ \setupbackgrounds[\v!paper][\c!background=\v!pagecomment]}
+ {\doif\@@pcstate\v!stop % else initialization invokes backgrounds
+ {% this should be tested first
+ % \normalexpanded{\noexpand\setuppapersize[\papersize][\@@pcprintpapersize]}%
+ \setupbackgrounds[\v!paper][\c!background=]}}}
+
+\def\@@pcprintpapersize{\printpapersize}
+
+\def\placepagecommentTB
+ {\vbox to \printpaperheight
+ {%\forgetall
+ \hsize\printpaperwidth
+ \vskip\@@pcoffset
+ \doifelse\@@pclocation\v!bottom{\vskip\dimexpr\paperheight+\@@pcdistance\relax}\vss
+ \hskip\@@pcoffset
+ \vbox to \@@pcheight
+ {%\forgetall
+ \hsize\paperwidth
+ \ifpagecomment
+ \getbuffer[\v!pagecomment]%
+ \global\pagecommentfalse
+ \fi}%
+ \hfill
+ \doifelse\@@pclocation\v!bottom\vss{\vskip\dimexpr\paperheight+\@@pcdistance\relax}%
+ \vskip\@@pcoffset}}
+
+\def\placepagecommentLR
+ {\hbox to \printpaperwidth
+ {\hskip\@@pcoffset
+ \doifelse\@@pclocation\v!right{\hskip\paperwidth\hskip\@@pcdistance}\hss
+ \vbox to \printpaperheight
+ {%\forgetall
+ \vskip\@@pcoffset
+ \hsize\@@pcwidth
+ \ifpagecomment
+ \getbuffer[\v!pagecomment]%
+ \global\pagecommentfalse
+ \fi
+ \vss}%
+ \doifelse\@@pclocation\v!right\hss{\hskip\paperwidth\hskip\@@pcdistance}%
+ \hskip\@@pcoffset}}
+
+\newif\ifpagecomment
+
+\setvalue{\e!start\v!pagecomment}%
+ {\global\pagecommenttrue
+ \dostartbuffer[\v!pagecomment][\e!start\v!pagecomment][\e!stop\v!pagecomment]}
+
+\setuppagecomment
+ [\c!state=, % \v!stop would invoke background calculation
+ \c!location=\v!bottom,
+ \c!offset=.5cm,
+ \c!distance=.5cm,
+ \c!height=5cm,
+ \c!width=10cm]
+
+% This macro cuts a page into n parts that can be pasted
+% together.
+
+\def\slicepages
+ {\dotripleempty\doslicepages}
+
+\def\doslicepages[#1][#2][#3]%
+ {\ifthirdargument
+ \dodoslicepages[#1][#2][#3]%
+ \else
+ \dodoslicepages[#1][#2][#2]%
+ \fi}
+
+\newcounter\slicedpagenumber
+
+\def\dodoslicepages[#1][#2][#3]%
+ {\bgroup
+ \dontcomplain
+ \globallet\slicedpagenumber\!!zerocount
+ \getfiguredimensions[#1]
+ \getparameters
+ [\??ip]
+ [\c!n=1,
+ \c!offset=\!!zeropoint,
+ \c!hoffset=\!!zeropoint,\c!voffset=\!!zeropoint,
+ \c!width=\figurewidth,\c!height=\figureheight,#2]
+ \ifnum\@@ipn>\zerocount
+ \definepapersize
+ [\s!dummy][\c!height=\@@ipheight,\c!width=\@@ipwidth]
+ \setuppapersize
+ [\s!dummy][\s!dummy]
+ \setuplayout
+ [\c!backspace=\!!zeropoint,\c!topspace=\!!zeropoint,
+ \c!height=\v!middle,\c!width=\v!middle,
+ \c!textdistance=\!!zeropoint,
+ \c!header=\!!zeropoint,\c!footer=\!!zeropoint]
+ \fi
+ \dorecurse\noffigurepages
+ {\global\let\slicedpagenumber\recurselevel
+ \ifnum\@@ipn>\plusone
+ \dorecurse\@@ipn
+ {\let\xslice\recurselevel
+ \dorecurse\@@ipn
+ {\let\yslice\recurselevel
+ \clip
+ [\c!nx=\@@ipn,\c!ny=\@@ipn,\c!x=\xslice,\c!y=\yslice]
+ {\scale
+ [\c!scale=\@@ipn000]
+ {\externalfigure[#1][\c!page=\slicedpagenumber]}}
+ \page}}
+ \else
+ \ifodd\slicedpagenumber\relax
+ \getparameters[\??ip][#2]
+ \else
+ \getparameters[\??ip][#3]
+ \fi
+ \hskip\@@ipoffset
+ \clip
+ [\c!hoffset=\@@iphoffset,\c!voffset=\@@ipvoffset,
+ \c!height=\@@ipheight,\c!width=\@@ipwidth]
+ {\externalfigure[#1][\c!page=\slicedpagenumber]}
+ \page
+ \fi}
+ \egroup}
+
+% \starttext \slicepages[slice1.pdf][n=3] \stoptext
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/page-ini.tex b/Master/texmf-dist/tex/context/base/page-ini.mkii
index b3cab9bdc71..65bc27f538c 100644
--- a/Master/texmf-dist/tex/context/base/page-ini.tex
+++ b/Master/texmf-dist/tex/context/base/page-ini.mkii
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Page Macros / Initializations}
+\writestatus{loading}{ConTeXt Page Macros / Initializations}
% still a dutch/english mess
@@ -25,368 +25,6 @@
%D mechanism use a different way of looping over columns.
\unprotect
-
-% message will be distributed
-
-\startmessages dutch library: systems
- title: systeem
- 1: laden hulpfile uitgesteld (typemode)
- 2: -- geladen
-% 3: probeer LaTeX eens
- 4: commando -- is al gedefinieerd
- 5: module -- geladen
- 6: geen module -- gevonden
- 7: module -- reeds geladen
- 8: nieuwe versie hulpfile, tweede run nodig
- 9: -- niet gevonden/geplaatst
- 10: gebruik geen em in --
- 11: aanmaken basale hulpfile
- 12: de hulpfile is niet gesorteerd, gebruik texutil
- 13: markering -- gedefinieerd --
- 14: geforceerde paginaovergang in lijst voor --
- 15: wegschrijven buffer --
- 16: inlezen buffer --
- 17: verbatim inlezen buffer --
- 18: synoniem -- -- bestaat niet
- 19: betekenissen (synoniemen) van -- geladen
- 20: betekenissen (sorteren) van -- geladen
- 21: de hulpfile is niet geladen
- 22: gebruik een goede hulpfile
- 23: -- gearrangeerd op --
- 24: Plaatsblokken
- 25: Verwijzingen
- 26: Registers
- 27: Versie
-\stopmessages
-
-\startmessages english library: systems
- title: system
- 1: loading utility-file postponed (typemode)
- 2: -- loaded
-% 3: try LaTeX
- 4: command -- is already defined
- 5: module -- loaded
- 6: module -- not found
- 7: module -- already loaded
- 8: new version of utility file, second pass needed
- 9: -- not found/processed
- 10: don't use em in --
- 11: building simple util
- 12: the utility-file is not sorted, use texutil
- 13: mark -- defined --
- 14: forced newpage in list at --
- 15: saving buffer --
- 16: typesetting buffer --
- 17: typesetting verbatim buffer --
- 18: synonym -- -- does not exist
- 19: meaning (synonyms) of -- loaded
- 20: meaning (sorts) of -- loaded
- 21: no utility data is loaded
- 22: use a valid utilityfile
- 23: -- arranged at --
- 24: Floatblocks
- 25: References
- 26: Registers
- 27: Version
-\stopmessages
-
-\startmessages german library: systems
- title: system
- 1: Laden der Hilfsdatei aufgeschoben (Eingabe-Modus)
- 2: -- geladen
-% 3: Versuche LaTeX
- 4: Befehl -- ist bereits definiert
- 5: Modul -- geladen
- 6: Modul -- gefunden
- 7: Modul -- bereits geladen
- 8: Neue Version der Hilfsdatei, zweiter Durchlauf benoetigt
- 9: -- nicht gefunden/verarbeitet
- 10: Benutzte kein em in --
- 11: Erstelle einfache Hilfdatei
- 12: Die Hilfdatei ist nicht sortiert, verwende texutil
- 13: Beschriftung -- definiert --
- 14: Erzwungendes Seitenumbruch in Liste bei --
- 15: Speichere Buffer --
- 16: Setzte Buffer --
- 17: Setzte tippen-Buffer --
- 18: Synonym -- -- existiert nicht
- 19: Bedeutung (synonyme) von -- geladen
- 20: Bedeutung (sortieren) von -- geladen
- 21: Die Hilfsdatei ist nicht geladen
- 22: Benoetige gueltige Hilfsdateie
- 23: -- angeordnet auf --
- 24: Fliessbloecke
- 25: Referenzen
- 26: Register
- 27: Version
-\stopmessages
-
-\startmessages czech library: systems
- title: system
- 1: nacteni pomocneho souboru odlozeno (typemode)
- 2: -- nacteno
-% 3: zkuste LaTeX
- 4: prikaz -- je jiz definovan
- 5: makra z -- nactena
- 6: zadna makra v -- nenalezena
- 7: makra z -- jsou jiz nactena
- 8: nova verze pomocneho souboru, je treba druheho behu
- 9: -- nenalezeno/nezpracovano
- 10: nepouzivejte em v --
- 11: vytvarim jednoduchy pomocny soubor
- 12: pomosny soubor neni setriden, pouzijte texutil
- 13: znacka -- definovana --
- 14: vynucena nova stranka v seznamu na --
- 15: uklada se buffer --
- 16: sazi se buffer --
- 17: sazi se doslovny (verbatim) buffer --
- 18: synonymum -- -- neexistuje
- 19: vyznam (synonyma) -- nacten
- 20: vyznam (trideni) -- nacten
- 21: pomocny soubor necten
- 22: pouzijte platny pomocny soubor
- 23: -- upraveno na --
- 24: plovouci bloky
- 25: reference
- 26: registry
- 27: verze
-\stopmessages
-
-\startmessages italian library: systems
- title: sistema
- 1: caricamento dei file supplementari posticipato (typemode)
- 2: -- caricato
-% 3: provare LaTeX
- 4: comando -- già definito
- 5: macro del modulo -- caricate
- 6: nessuna macro trovata nel modulo --
- 7: macro del modulo -- già caricate
- 8: nuova versione del file supplementare, seconda passata necessaria
- 9: -- non trovato/elaborato
- 10: non usare em in --
- 11: costruzione di un semplice supplemento
- 12: file di supplemento non ordinato, usare texutil
- 13: marcatura -- definita --
- 14: nuova pagina obbligata in lista a --
- 15: salvataggio del buffer --
- 16: composizione del buffer --
- 17: composizione verbatim del buffer --
- 18: sinonimo -- -- non esistente
- 19: significato (sinonimi) di -- caricato
- 20: significato (specie) di -- caricato
- 21: nessuna informazione supplementare caricata
- 22: usare un file supplementare valido
- 23: -- sistemato a --
- 24: Oggetti mobili
- 25: Riferimenti
- 26: Registri
- 27: Versione
-\stopmessages
-
-\startmessages norwegian library: systems
- title: system
- 1: innlesning av hjelpefila utsatt (typemode)
- 2: -- er lest inn
-% 3: forsøker LaTeX
- 4: kommando -- er allerede definert
- 5: makroene i modul -- er lest inn
- 6: ingen makroer funnet i modul ---
- 7: makroene i modul -- er allerede lest inn
- 8: ny versjon av hjelpefil, andre gjennomkjøring nødvendig
- 9: -- ikke funnet/behandlet
- 10: ikke bruk em i --
- 11: lager enkel hjelpefil
- 12: hjelpefila er ikke sortert, bruk texutil
- 13: markering -- definert --
- 14: tvunget sideskift i liste ved --
- 15: lagrer Buffer --
- 16: tegnsetter buffer --
- 17: tegnsetter verbatim-buffer --
- 18: synonym -- -- eksisterer ikke
- 19: betydning (synonymer) av -- er lest inn
- 20: betydning (sorterer) av -- er lest inn
- 21: hjelpefila er ikke lest inn
- 22: bruk en gyldig hjelpefil
- 23: -- arrangert på --
- 24: Flytblokker
- 25: Referanser
- 26: Registere
- 27: Versjon
-\stopmessages
-
-\startmessages romanian library: systems
- title: sistem
- 1: se incarca utilitarul-fisierul este amanat (typemode)
- 2: -- s-a incarcat
-% 3: incercati LaTeX
- 4: comanda -- este deja definita
- 5: macro-urile din modulul -- s-au incarcat
- 6: nu s-au gasit macro-uri in modulul --
- 7: macro-urile din modulul -- s-au incarcat deja
- 8: o noua versiune de fisier utilitar, este necesara o noua trecere
- 9: -- nu este gasit/procesat
- 10: nu folositi em in --
- 11: se creeaza un utilitar simplu
- 12: fisierul utilitar nu este sortat, folositi texutil
- 13: marcajul -- definit --
- 14: s-a fortat trecere pa pagina noua in lista la --
- 15: buffer salvat --
- 16: buffer-ul -- s-a cules
- 17: se culege buffer-ul verbatim --
- 18: sinonimul -- -- nu exista
- 19: intelesul (sinonimele) pentru -- incarcat
- 20: intelesul (ordinea) pentru -- incarcat
- 21: nici o data utilitara nu este incarcata
- 22: folositi un fisier utilitar valid
- 23: -- aranjat la --
- 24: Blocuri
- 25: Referinte
- 26: Registri
- 27: Versiune
-\stopmessages
-
-\startmessages french library: systems
- title: système
- 1: chargement de fichier utilitaire reporté (typemode)
- 2: -- chargé
-% 3: try LaTeX
- 4: la commande -- est déjà définie
- 5: module -- chargé
- 6: module -- non trouvé
- 7: module -- déjà chargé
- 8: nouvelle version de fichier utilitaire, seconde passe nécessaire
- 9: -- non trouvé/traité
- 10: n'utilisez pas em dans --
- 11: construction util simple
- 12: le fichier utilitaire n'est pas trié, utilise texutil
- 13: marquage -- defini --
- 14: nouvellepage forcée dans la liste à --
- 15: sauvegarde du tampon (buffer) --
- 16: composition du tampon (buffer) --
- 17: composition textuelle du tampon (buffer) --
- 18: le synonyme -- -- n'existe pas
- 19: signification (synonymes) de -- chargée
- 20: signification (tris) de -- chargée
- 21: pas de données utilitaires chargées
- 22: utilise un fichier utilitaire valide
- 23: -- arrangé à --
- 24: blocsflottants
- 25: Réferences
- 26: Registres
- 27: Version
-\stopmessages
-
-\startmessages dutch library: layouts
- title: layout
- 1: teksthoogte aangepast met -- op pagina --
- 2: -- maal uitgestelde tekst tussengevoegd
- 3: -- maal tekst plaatsen uitstellen
- 4: margeblokken actief
- 5: margeblokken inactief
- 6: subpagina reeks -- verwerkt (aantal --)
-% 7: beeldmerken berekenen
-% 8: achtergronden berekenen
- 10: -- en -- tellen niet op tot 1.0
- 11: interlinie -- niet toegestaan in gridmode
-\stopmessages
-
-\startmessages english library: layouts
- title: layout
- 1: textheight adapted with -- at page --
- 2: -- times postponed text placed
- 3: -- times text postponed
- 4: marginblocks active
- 5: marginblocks inactive
- 6: subpage set -- processed (size --)
-% 7: calculating logospace
-% 8: calculating backgrounds
- 10: -- and -- don't add up to 1.0
- 11: spacing -- not permitted in gridmode
-\stopmessages
-
-\startmessages german library: layouts
- title: Layout
- 1: Texthoehe angepasst mit -- auf Seite --
- 2: -- mal verschobener Text plaziert
- 3: -- mal Text verschoben
- 4: marginalbloecke aktiv
- 5: marginalbloecke inaktiv
- 6: Unterseitenfolge -- verarbeitet (Groesse --)
-% 7: berechne Platz des Logo
-% 8: berechne Hintergrund
- 10: -- und -- ergeben zusammen nicht 1.0
- 11: Zwischenraum -- nicht im Grittermoduserlau
-\stopmessages
-
-\startmessages czech library: layouts
- title: layout
- 1: vyska textu prizpusobena s -- na strane --
- 2: -- krat odlozeny text umisten
- 3: -- krat text odlozen
- 4: okrajove bloky aktivni
- 5: okrajove bloky neaktivni
- 6: sada stran -- zpracovana (velikost --)
-% 7: pocita se misto pro logo
-% 8: pocita se pozadi
- 10: -- a -- nedava dohromady 1.0
- 11: svisla mezera -- neni povolena v pevnem radkovem rejstriku
-\stopmessages
-
-\startmessages italian library: layouts
- title: layout
- 1: altezza del testo adattata con -- a pagina --
- 2: posizionato testo posticipato -- volte
- 3: testo posticipato -- volte
- 4: blocchi in margine attivi
- 5: blocchi in margine inattivi
- 6: gruppo di sottopagine -- elaborato (dimensione --)
-% 7: calcolo dello spazio per logo
-% 8: calcolo dello sfondo
- 10: -- e -- non sommano a 1.0
- 11: spaziatura -- non permessa in modo griglia
-\stopmessages
-
-\startmessages norwegian library: layouts
- title: layout
- 1: teksthøyde tilpasset med -- på side --
- 2: -- ganger forskjøvet tekst plassert
- 3: -- ganger tekst forskjøvet
- 4: margblokker aktive
- 5: margblokker inaktive
- 6: delside sett -- behandlet (størrelse --)
-% 7: beregner plass for logo
-% 8: beregner bakgrunn
- 10: -- og -- er ikke 1.0 til sammen
- 11: mellomrom -- ikke tillatt i gridmodus
-\stopmessages
-
-\startmessages romanian library: layouts
- title: aranjamente
- 1: textheight adaptat cu -- la pagina --
- 2: textul amanat de -- ori a fost plasat
- 3: textul amanat de -- ori
- 4: blocuri marginale active
- 5: blocuri marginale inactive
- 6: setul -- de subpagini procesat (dimensiunea --)
-% 7: se calculeaza spatiul pentru logo
-% 8: se calculeaza fundalurile
- 10: -- si -- nu se adauga pana la 1.0
- 11: spatierea -- nu este permisa in gridmode
-\stopmessages
-
-\startmessages french library: layouts
- title: calque
- 1: hauteurtexte adaptée avec -- à la page --
- 2: -- times postponed text placed
- 3: -- times text postponed
- 4: blocsmarge actifs
- 5: blocsmarge inactifs
- 6: jeu de souspage -- traité (taille --)
-% 7: calculating logospace
-% 8: calculating backgrounds
- 10: -- et -- ne sont pas ajoutés à 1.0
- 11: espacement -- non permis en modegrille
-\stopmessages
\def\m!otr{otr}
@@ -420,7 +58,12 @@
\ifx\realpageno\undefined
- \countdef\realpageno\zerocount \realpageno\plusone
+ \countdef\realpageno = 0 \realpageno = 1
+ \countdef\userpageno = 1 \userpageno = 1
+ \countdef\subpageno = 2 \subpageno = 0 % !!
+ \countdef\arrangeno = 3 \arrangeno = 0 % !!
+
+ \let\pageno\userpageno
\fi
@@ -490,141 +133,21 @@
%
% tricky in balancing mode, a la huidige multi columns
-\startmessages dutch library: columns
- title: kolommen
- 1: maximaal -- kolommen
- 2: gebruik eventueel \string\filbreak
- 3: probleempje, probeer [balanceren=nee]
- 4: plaatsblok boven nog niet mogelijk
- 5: plaatsblok onder nog niet mogelijk
- 6: -- plaatsblok(en) opgeschort
- 7: balanceren afgebroken na 100 stappen
- 8: gebalanceerd in -- stap(pen)
- 9: uitlijnen controleren!
- 10: (minder dan) 1 regel over
- 11: plaatsblok te breed voor kolom
- 12: plaatsblok verplaatst naar volgende kolom / --
- 13: breed figuur geplaatst boven kolommen
-\stopmessages
-
-\startmessages english library: columns
- title: columns
- 1: only -- columns possible
- 2: use \string\filbreak\space as alternative
- 3: problems, disable balancing
- 4: top float not yet supported
- 5: bottom float not yet supported
- 6: -- float(s) postponed
- 7: balancing aborted after 100 steps
- 8: balanced in -- step(s)
- 9: check raggedness
- 10: (less than) 1 line left
- 11: float too wide for column
- 12: float moved to next column / --
- 13: wide float moved to top of columns
-\stopmessages
-
-\startmessages german library: columns
- title: Spalten
- 1: nur -- Spalten moeglich
- 2: benutzte \string\filbreak\space als Alternative
- 3: Problem, verwende [ausgleich=nein]
- 4: Gleitobjekt oben ncoh nicht unterstuetzt
- 5: Gleitobjekt unten ncoh nicht unterstuetzt
- 6: -- Gleitobjekt(e) verschoben
- 7: ausgleich nach 100 Schritten abgebrocheb
- 8: ausgeglichen nach -- Schritt(en)
- 9: Ausrichtung ueberpruefen
- 10: (weniger als) 1 Zeile uebrig
- 11: Gleitobjekt zu breit fuer Spalte
- 12: Gleitobjekt in naechste Zeile verschoben / --
- 13: breites Gleitobjekt an den Anfang der Spalten verschoben
-\stopmessages
-
-\startmessages czech library: columns
- title: sloupce
- 1: je mozno pouze -- sloupcu
- 2: pouzijte \string\filbreak\space jako alternativu
- 3: problem, vypina se vyvazovani
- 4: horni plovouci objekt jeste neni podporovan
- 5: spodni plovouci objekt jeste neni podporovan
- 6: -- plovouci objekt(y) odlozeny
- 7: vyvazovani ukonceno po 100 krocich
- 8: vyvazeno v -- krocich
- 9: kontrola nerovnost
- 10: zbyl (mene nez) 1 radek
- 11: plovouci objekt je pro sloupec prilis siroky
- 12: plovouci objekt je presunut do nasledujiciho sloupce / --
- 13: siroky plovouci objekt je presunut nad sloupce
-\stopmessages
-
-\startmessages italian library: columns
- title: colonne
- 1: solo -- colonne possibili
- 2: in alternativa, usare \string\filbreak
- 3: problemi, disabilitare il bilanciamento
- 4: float in cima non ancora supportato
- 5: float in fondo non ancora supportato
- 6: -- float(s) posticipate
- 7: bilanciamento annullato dopo 100 passi
- 8: bilanciamento in -- passo/i
- 9: controllare seghettamento
- 10: (meno di) una riga rimasta
- 11: oggetto mobile troppo ampio per la colonna
- 12: oggetto mobile spostata alla colonna successiva / --
- 13: oggetto mobile ampio spostato sopra le colonne
-\stopmessages
-
-\startmessages norwegian library: columns
- title: kolonner
- 1: maksimalt -- kolonner
- 2: bruk \string\filbreak\space som et alternativ
- 3: problemer, slår av balansering
- 4: flytblokker øverst er ikke støttet enda
- 5: flytblokker nedert er ikke støttet enda
- 6: -- flytblokk forskjøvet
- 7: balansering avbrutt etter 100 iterasjoner
- 8: balansert etter -- iterasjoner
- 9: kontroller tekstlayout!
- 10: (mindre enn) 1 linje igjen
- 11: flytblokk for bredt for kolonna
- 12: flytblokk forskjøvet til neste kolonne / --
- 13: bred flytblokk forksjøvet til toppen av kolonnene
-\stopmessages
-
-\startmessages romanian library: columns
- title: coloane
- 1: este posibil numai -- coloane
- 2: folositi \string\filbreak\space ca alternativa
- 3: probleme, se dezactiveaza alinierea
- 4: cadrele top (top float) nu sunt inca suportate
- 5: cadrele bottom (bottom float) nu sunt inca suportate
- 6: -- blocurile sunt amanate
- 7: alinierea este oprita dupa 100 de incercari
- 8: aliniat in -- pas(i)
- 9: verificat alinierea
- 10: a mai ramas (mai putin de) 1 linie
- 11: blocul este prea lat pentru coloana
- 12: blocul este mutat pe urmatoarea coloana / --
- 13: blocul lat este mutat in partea de sus a coloanelor
-\stopmessages
-
-\startmessages french library: columns
- title: colonnes
- 1: seules -- colonnes possibles
- 2: utilisez \string\filbreak\space en tant qu'alternative
- 3: problèmes, désactive l'équilibrage
- 4: flottant en partie supérieure pas encore supporté
- 5: flottant en partie inférieure pas encore supporté
- 6: -- flottant(s) reporté(s)
- 7: équilibrage abandonné après 100 pas
- 8: équilibré en -- pas
- 9: vérification des irrégularités
- 10: (moins de) 1 ligne restante
- 11: flottant mis à la largeur de la colonne
- 12: flottant déplacé à la colonne suivante / --
- 13: flottant large déplacé dans la partie supérieure de la colonne
-\stopmessages
+% messages moved
+
+% messages moved
+
+% messages moved
+
+% messages moved
+
+% messages moved
+
+% messages moved
+
+% messages moved
+
+% messages moved
\ifx\dosetuplayout\undefined % overloaded in page-lay !
@@ -636,20 +159,12 @@
\ifx\mkprocesspagecontents \undefined\let\mkprocesspagecontents \gobbleoneargument\fi
\ifx\mkprocessboxcontents \undefined\let\mkprocessboxcontents \gobbleoneargument\fi
-\def\normalejectpenalty{-\@M} \let\ejectpenalty\normalejectpenalty
-\def\normalsuperpenalty{-\@MM} \let\superpenalty\normalsuperpenalty
+\def\normalejectpenalty{-\plustenthousand } \let\ejectpenalty\normalejectpenalty
+\def\normalsuperpenalty{-\plustwentythousand} \let\superpenalty\normalsuperpenalty
%D In case we're not running \ETEX, we need to bypass a
%D couple of primitives.
-\beginTEX \...discards
-
- \chardef \savingvdiscards \zerocount
- \let \splitdiscards \relax
- \let \pagediscards \relax
-
-\endTEX
-
% ONE = single column
% MUL = multi column
% SET = columns sets
@@ -658,8 +173,6 @@
\let\OTRdefault\empty
-\beginETEX \ifcsname
-
\def\OTRcommand#1%
{\csname\@@OTR
\ifcsname\@@OTR\OTRidentifier\strippedcsname#1\endcsname
@@ -669,24 +182,6 @@
\fi\fi
\strippedcsname#1\endcsname}
-\endETEX
-
-\beginTEX
-
-\def\OTRcommand#1%
- {\csname\@@OTR
- \@EA\ifx\csname\@@OTR\OTRidentifier\strippedcsname#1\endcsname\relax
- \@EA\ifx\csname\@@OTR\OTRdefault\strippedcsname#1\endcsname\relax % fallback
- \else
- \OTRdefault
- \fi
- \else
- \OTRidentifier
- \fi
- \strippedcsname#1\endcsname}
-
-\endTEX
-
% obsolete
\def\installotr#1% andere naam, beter \connectotr of zo
@@ -735,7 +230,7 @@
\newtoks \mainoutput
\newcount\otrlevel
-% When issuing two \par\penalty-\@M's, only the first
+% When issuing two \par\penalty-\plustenthousand's, only the first
% triggers the otr; obscure feature or optimization?
\def\outputcounter{-100010} % -10010
@@ -947,8 +442,8 @@
% to be replaced by \page[now] \page[final] / merged
-% \def\eject {\par\penalty-\@M } % == {\par\break} % plain
-% \def\supereject {\par\penalty-\@MM} % also plain
+% \def\eject {\par\penalty-\plustenthousand } % == {\par\break} % plain
+% \def\supereject {\par\penalty-\plustwentythousand} % also plain
\def\eject {\par\ifvmode\penalty\ejectpenalty\fi\resetpagebreak} % == {\par\break} % plain
\def\supereject {\par\ifvmode\penalty\superpenalty\fi\resetpagebreak} % also plain
@@ -1329,8 +824,11 @@
\shiftpaperpagebox \pagebox % \v!paper
\else
\clippagebox \pagebox
- \addpagecutmarks \pagebox
- \replicatepagebox \pagebox
+ \doifelse\@@lymarking\v!page
+ {\replicatepagebox \pagebox
+ \addpagecutmarks \pagebox}
+ {\addpagecutmarks \pagebox
+ \replicatepagebox \pagebox}%
\scalepagebox \pagebox
\mirrorpaperbox \pagebox
\orientpaperbox \pagebox
@@ -1410,7 +908,7 @@
% not here
-\newif\ifpaginageblokkeerd \paginageblokkeerdfalse
+\newif\ifpagebreakdisabled \pagebreakdisabledfalse
% \chardef\testpagemethod=0 % todo: \testnewpage[method=,lines=,voffset=]
%
@@ -1420,7 +918,7 @@
% \def\dotestpage[#1][#2][#3]%
% {%\relax % needed before \if
% \endgraf
-% \ifpaginageblokkeerd
+% \ifpagebreakdisabled
% % do nothing
% \else
% %ifnum#1=\plusone\synchronizeoutput\fi
@@ -1474,7 +972,7 @@
\def\dotestpage[#1][#2][#3]% don't change, only add more methods
{\relax % needed before \if
- \ifpaginageblokkeerd
+ \ifpagebreakdisabled
\endgraf
\else
% new from here
@@ -1573,7 +1071,7 @@
\def\page{\pagebreak} % the short form of \pagebreak (mult-com one)
\def\resetpagebreak
- {\global\paginageblokkeerdfalse}
+ {\global\pagebreakdisabledfalse}
\def\simplifypagebreak
{\def\dopagebreak[##1]{\goodbreak}}
@@ -1656,10 +1154,10 @@
\resetpagebreak}
\installpagebreakhandler \v!disable
- {\global\paginageblokkeerdtrue}
+ {\global\pagebreakdisabledtrue}
\installpagebreakhandler \v!yes
- {\ifpaginageblokkeerd\else
+ {\ifpagebreakdisabled\else
\ejectinsert
\gotonextpage
\ifinsidecolumns % this will move to MUL
@@ -1668,7 +1166,7 @@
\fi}
\installpagebreakhandler \v!makeup % ??
- {\ifpaginageblokkeerd\else
+ {\ifpagebreakdisabled\else
\eject
\fi}
@@ -1678,12 +1176,12 @@
\fi}
\installpagebreakhandler \v!no
- {\ifpaginageblokkeerd\else
+ {\ifpagebreakdisabled\else
\dosomebreak\nobreak
\fi}
\installpagebreakhandler \v!preference
- {\ifpaginageblokkeerd\else
+ {\ifpagebreakdisabled\else
\ifinsidecolumns % this will move to MUL
\dosomebreak\goodbreak
\else
@@ -1692,7 +1190,7 @@
\fi}
\installpagebreakhandler \v!bigpreference
- {\ifpaginageblokkeerd\else
+ {\ifpagebreakdisabled\else
\ifinsidecolumns % this will move to MUL
\dosomebreak\goodbreak
\else
@@ -1845,8 +1343,6 @@
% We don't want spurious last pages (due to left over marks):
-\ifx\undefined\normalshipout \let\normalshipout=\shipout \fi
-
\def\noshipout
{\writestatus\m!systems{ignoring further shipouts}%
\global\advance\realpageno\minusone % else no flush of resources
diff --git a/Master/texmf-dist/tex/context/base/page-ini.mkiv b/Master/texmf-dist/tex/context/base/page-ini.mkiv
new file mode 100644
index 00000000000..6beba4492c5
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/page-ini.mkiv
@@ -0,0 +1,1452 @@
+%D \module
+%D [ file=page-ini,
+%D version=2000.10.20,
+%D title=\CONTEXT\ Page Macros,
+%D subtitle=Initializations,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Page Macros / Initializations}
+
+% still a dutch/english mess
+
+%D This class of modules implements the output routines and
+%D floating body support. Although the modules are relatively
+%D new, the code herein is rather old. This reordering was
+%D needed when column sets were implemented and sharing code
+%D started to make sense.
+
+%D The history shows from the code, since both column
+%D mechanism use a different way of looping over columns.
+
+\unprotect
+
+\def\m!otr{otr}
+
+\chardef\normalpagebox=255
+
+\newbox\pagebox
+
+\ifx\recalculatelayout\undefined
+
+ \let \recalculatelayout \relax
+
+\fi
+
+\ifx\recalculatebackgrounds\undefined
+
+ \let \recalculatebackgrounds \relax
+ \let \addmainbackground \gobbleoneargument % <box>
+ \let \addtextbackground \gobbleoneargument % <box>
+ \let \addpagebackground \gobbleoneargument % <box>
+ \let \addprintbackground \gobbleoneargument % <box>
+ \let \addstatusinfo \gobbleoneargument % <box>
+
+\fi
+
+\ifx\realpageno\undefined
+
+ \countdef\realpageno = 0 \realpageno = 1
+ \countdef\userpageno = 1 \userpageno = 1
+ \countdef\subpageno = 2 \subpageno = 0 % !!
+ \countdef\arrangeno = 3 \arrangeno = 0 % !!
+
+ \let\pageno\userpageno
+
+\fi
+
+\ifx\realfolio\undefined
+
+ \def\realfolio{\the\realpageno}
+
+\fi
+
+\newcount\nofshipouts
+
+\appendtoks
+ \global\advance\nofshipouts\plusone
+\to \everyaftershipout
+
+% principle:
+%
+% multiple otr's
+%
+% (1) single column, simple routine (old one)
+% (2) multi column, collect and split routine (old one)
+% (3) multi column, page by page (new one, needed for taco)
+% (4) single column, spread handling (for fun)
+% (5) multi column, page by page, spread handling (as challenge)
+%
+% common components
+%
+% (1) float placement
+% (2) float flushing
+% (3) page body building
+% (4) ...
+%
+% ort
+%
+% + balancing
+% - mixed / one / multi / balancetofit
+% + backgrounds
+% + pre / post
+% + distances / heights
+% + ragged / baseline / normal
+% - pos sync
+% - last page
+%
+% - itemize / subtexts -> old mechanism
+%
+% floats
+%
+% - top / bottom / side / page / column / spead
+% - flush / packed flush / current page / next page / area
+%
+% footnotes
+%
+% + carry over pre column / local to column
+% + last column / pre last column / each column
+% - multiple classes
+% - area / page / end
+%
+% areas
+%
+% - top / bottom / mid in spread
+%
+% IMPORTANT
+%
+% switchtobodyfont in between ivm top
+
+% floats:
+%
+% tricky in balancing mode, a la huidige multi columns
+
+\ifx\dosetuplayout\undefined % overloaded in page-lay !
+
+ \def\setuplayout{\dodoubleempty\getparameters[\??ly]}
+
+\fi
+
+\ifx\mkprocesscolumncontents\undefined\let\mkprocesscolumncontents\gobbleoneargument\fi
+\ifx\mkprocesspagecontents \undefined\let\mkprocesspagecontents \gobbleoneargument\fi
+\ifx\mkprocessboxcontents \undefined\let\mkprocessboxcontents \gobbleoneargument\fi
+
+\def\normalejectpenalty{-\plustenthousand } \let\ejectpenalty\normalejectpenalty
+\def\normalsuperpenalty{-\plustwentythousand} \let\superpenalty\normalsuperpenalty
+
+%D In case we're not running \ETEX, we need to bypass a
+%D couple of primitives.
+
+% ONE = single column
+% MUL = multi column
+% SET = columns sets
+
+\def\@@OTR{OTR}
+
+\let\OTRdefault\empty
+
+% obsolete
+
+\def\installotr#1% andere naam, beter \connectotr of zo
+ {\def\OTRidentifier{#1}}
+
+% \def\OTRcommand#1%
+% {\csname\@@OTR
+% \ifcsname\@@OTR\OTRidentifier\strippedcsname#1\endcsname
+% \OTRidentifier
+% \else\ifcsname\@@OTR\OTRdefault\strippedcsname#1\endcsname % fallback
+% \OTRdefault
+% \fi\fi
+% \strippedcsname#1\endcsname}
+%
+% maybe faster but at least less tracing:
+
+\def\OTRcommand#1%
+ {\csname\@@OTR
+ \ifcsname\@@OTR\OTRidentifier\expandafter\gobbleoneargument\string#1\endcsname
+ \OTRidentifier
+ \else\ifcsname\@@OTR\OTRdefault\expandafter\gobbleoneargument\string#1\endcsname % fallback
+ \OTRdefault
+ \fi\fi
+ \expandafter\gobbleoneargument\string#1\endcsname}
+
+\def\activateotr#1#2%
+ {\def\OTRidentifier{#1}%
+ \def\OTRdefault {#2}}
+
+% variant that does a preset:
+
+\newtoks\registeredotrcommands
+
+\def\registerotrcommand#1%
+ {\appendtoks\dowithotrcommand#1\to\registeredotrcommands}
+
+\def\dopresetotrcommand#1%
+ {\expandafter\let\expandafter#1\csname\@@OTR
+ \ifcsname\@@OTR\OTRidentifier\expandafter\gobbleoneargument\string#1\endcsname
+ \OTRidentifier
+ \else\ifcsname\@@OTR\OTRdefault\expandafter\gobbleoneargument\string#1\endcsname % fallback
+ \OTRdefault
+ \fi\fi
+ \expandafter\gobbleoneargument\string#1\endcsname}
+
+\def\activateotr#1#2%
+ {\def\OTRidentifier{#1}%
+ \def\OTRdefault {#2}%
+ \let\dowithotrcommand\dopresetotrcommand
+ \the\registeredotrcommands}
+
+\appendtoks
+ \activateotr{ONE}{}%
+\to\everydump
+
+%D The initialization of the \type {\hsize} and \type {\vsize}
+%D depends on the OTR used.
+
+% todo: \registerotrcommand\output, is a toks
+
+\registerotrcommand\setvsize % \def\setvsize {\OTRcommand\setvsize}
+\registerotrcommand\sethsize % \def\sethsize {\OTRcommand\sethsize}
+\registerotrcommand\finalsidefloatoutput % \def\finalsidefloatoutput {\OTRcommand\finalsidefloatoutput}
+\registerotrcommand\dopagecontents % \def\dopagecontents {\OTRcommand\dopagecontents}
+\registerotrcommand\dosettopinserts % \def\dosettopinserts {\OTRcommand\dosettopinserts}
+\registerotrcommand\dosetbotinserts % \def\dosetbotinserts {\OTRcommand\dosetbotinserts}
+\registerotrcommand\dotopinsertions % \def\dotopinsertions {\OTRcommand\dotopinsertions}
+\registerotrcommand\dobotinsertions % \def\dobotinsertions {\OTRcommand\dobotinsertions}
+\registerotrcommand\dosetbothinserts % \def\dosetbothinserts {\OTRcommand\dosetbothinserts}
+\registerotrcommand\doflushfloats % \def\doflushfloats {\OTRcommand\doflushfloats}
+\registerotrcommand\flushfloatbox % \def\flushfloatbox {\OTRcommand\flushfloatbox}
+\registerotrcommand\docheckiffloatfits % \def\docheckiffloatfits {\OTRcommand\docheckiffloatfits}
+\registerotrcommand\someherefloat % \def\someherefloat {\OTRcommand\someherefloat}
+\registerotrcommand\somefixdfloat % \def\somefixdfloat {\OTRcommand\somefixdfloat}
+\registerotrcommand\somepagefloat % \def\somepagefloat {\OTRcommand\somepagefloat}
+\registerotrcommand\sometopsfloat % \def\sometopsfloat {\OTRcommand\sometopsfloat}
+\registerotrcommand\somebotsfloat % \def\somebotsfloat {\OTRcommand\somebotsfloat}
+\registerotrcommand\somesidefloat % \def\somesidefloat {\OTRcommand\somesidefloat}
+\registerotrcommand\flushsavedfloats % \def\flushsavedfloats {\OTRcommand\flushsavedfloats}
+\registerotrcommand\synchronizehsize % \def\synchronizehsize {\OTRcommand\synchronizehsize}
+\registerotrcommand\gotonextpage % \def\gotonextpage {\OTRcommand\gotonextpage }
+\registerotrcommand\gotonextpageX % \def\gotonextpageX {\OTRcommand\gotonextpageX} % will become obsolete
+
+% beter een \installotr#1 met #1 = macro en auto test
+
+\newif \iftraceotr
+\newif \ifinotr
+\newtoks \mainoutput
+\newcount\otrlevel
+
+% When issuing two \par\penalty-\plustenthousand's, only the first
+% triggers the otr; obscure feature or optimization?
+
+\def\outputcounter{-100010} % -10010
+
+\def\doinvokeoutput
+ {\iftraceotr
+ \expandafter\dodotracedoutput
+ \else
+ \expandafter\dodoinvokeoutput
+ \fi}
+
+\def\outputmessage#1#2#3%
+ {\iftraceotr\writestatus\m!otr{#1 #2 \number#3}\fi}
+
+\def\dodoinvokeoutput#1%
+ {\outputmessage+{special}{#1}%
+ \bgroup\par\penalty#1\relax\egroup
+ \outputmessage-{special}{#1}}
+
+\def\dodotracedoutput#1%
+ {\outputmessage+{traced}{#1/\the\outputpenalty}%
+ \writestatus\m!otr{c:\number\mofcolumns,v:\the\vsize,g:\the\pagegoal,t:\the\pagetotal}%
+ \dodoinvokeoutput{#1}%
+ \writestatus\m!otr{c:\number\mofcolumns,v:\the\vsize,g:\the\pagegoal,t:\the\pagetotal}%
+ \outputmessage-{traced}{#1/\the\outputpenalty}}
+
+\def\installoutput#1#2% \invoke \action
+ {\decrement\outputcounter
+ \edef#1{\noexpand\doinvokeoutput{\outputcounter}}%
+ \setvalue{\@@OTR\outputcounter}{#2}}
+
+\def\invokeoutputroutine
+ {\outputmessage+{trying}\outputpenalty
+ \executeifdefined{\@@OTR\the\outputpenalty}\dodonormaloutput
+ \outputmessage-{trying}\outputpenalty}
+
+\def\dodonormaloutput
+ {\outputmessage+{normal}\outputpenalty
+ \the\OTRcommand\output
+ \outputmessage-{normal}\outputpenalty}
+
+\mainoutput{\invokeoutputroutine} \output{\inotrtrue\the\mainoutput}
+
+%D Some hooks:
+
+\output{\inotrtrue\the\everybeforeoutput\the\mainoutput\the\everyafteroutput}
+
+\ifx\pagediscards\undefined \let\pagediscards\relax \fi
+
+\installoutput\synchronizeoutput % maybe add pagediscards
+ {\ifvoid\normalpagebox\else
+ \unvbox\normalpagebox
+ \pagediscards % maybe not needed ?
+ \fi}
+
+\installoutput\discardpage
+ {\setbox\scratchbox\box\normalpagebox}
+
+%D In order to force consistent use of variables, we
+%D predefine a lot of them here.
+
+%D The next two registers can be used to store pre column
+%D material as well as footnotes or so.
+
+\newbox\precolumnbox \newdimen\precolumnboxheight
+\newbox\postcolumnbox \newdimen\postcolumnboxheight
+
+%D We reserve a counter for the number of columns as well as
+%D the current column. Both are not to be changed by users!
+
+\newcount\nofcolumns \nofcolumns = 1
+\newcount\mofcolumns \mofcolumns = 1
+
+\chardef\maxnofcolumns = 50
+\chardef\allocatednofcolumns = 0
+
+%D The next dimensions reports the final column height
+
+\newdimen\finalcolumnheights
+\newcount\finalcolumnlines
+
+%D During initialization the temporary boxes are allocated.
+%D This enables us to use as much columns as we want, without
+%D exhausting the pool of boxes too fast. We could have packed
+%D them in one box, but we've got enough boxes.
+%D
+%D Two sets of boxes are declared, the txtboxes are used for
+%D the text, the topboxes are for moved column floats.
+
+\def\@col@{@col@}
+
+\def\initializecolumns#1%
+ {\ifnum#1>\maxnofcolumns
+ \showmessage\m!columns1\maxnofcolumns
+ \nofcolumns\maxnofcolumns
+ \else
+ \nofcolumns#1\relax
+ \fi
+ \ifnum\nofcolumns>\allocatednofcolumns
+ \dorecurse\nofcolumns
+ {\ifnum\recurselevel>\allocatednofcolumns\relax
+ % \newbox\next \letgvalue{\@col@-\recurselevel-t}=\next
+ \@EA\newbox\csname\@col@-\recurselevel-t\endcsname % text
+ \@EA\newbox\csname\@col@-\recurselevel-f\endcsname % foot
+ \@EA\newbox\csname\@col@-\recurselevel-h\endcsname % top insert
+ \@EA\newbox\csname\@col@-\recurselevel-l\endcsname % top insert
+ \fi}%
+ \global\chardef\allocatednofcolumns=\nofcolumns
+ \fi}
+
+\def\firstcolumnbox {\columntextbox\plusone}
+\def\currentcolumnbox {\columntextbox\mofcolumns}
+\def\lastcolumnbox {\columntextbox\nofcolumns}
+
+\def\firsttopcolumnbox {\columntopbox \plusone}
+\def\currenttopcolumnbox{\columntopbox \mofcolumns}
+\def\lasttopcolumnbox {\columntopbox \nofcolumns}
+
+\def\columntextbox#1{\csname\@col@-\number#1-t\endcsname}
+\def\columnfootbox#1{\csname\@col@-\number#1-f\endcsname}
+\def\columntopbox #1{\csname\@col@-\number#1-h\endcsname}
+\def\columnbotbox #1{\csname\@col@-\number#1-l\endcsname}
+
+\def\columnsettextbox{\global\setbox\columntextbox}
+\def\columnsetfootbox{\global\setbox\columnfootbox}
+\def\columnsettopbox {\global\setbox\columntopbox}
+\def\columnsetbotbox {\global\setbox\columnbotbox}
+
+\def\columngettextbox{\copy\columntextbox}
+\def\columngetfootbox{\copy\columnfootbox}
+\def\columngettopbox {\copy\columntopbox}
+\def\columngetbotbox {\copy\columnbotbox}
+
+\def\columnerasetextboxes{\dorecurse\allocatednofcolumns{\columnsettextbox\recurselevel\emptybox}}
+\def\columnerasefootboxes{\dorecurse\allocatednofcolumns{\columnsetfootbox\recurselevel\emptybox}}
+\def\columnerasetopboxes {\dorecurse\allocatednofcolumns{\columnsettopbox \recurselevel\emptybox}}
+\def\columnerasebotboxes {\dorecurse\allocatednofcolumns{\columnsetbotbox \recurselevel\emptybox}}
+
+%D Without going in details we present two macro's which handle
+%D the columns. The action which is transfered by the the first
+%D and only parameter can do something with \type
+%D {\currentcolumnbox}. In case of the mid columns, \type
+%D {\firstcolumnbox} and \type {\lastcolumnbox} are handled
+%D outside these macro's.
+
+\def\dohandlecolumn#1%
+ {\mofcolumns\recurselevel
+ \let\currentcolumn\recurselevel
+ #1\relax}
+
+\def\dohandleallcolumns#1%
+ {\dorecurse\nofcolumns{\dohandlecolumn{#1}}}
+
+\def\dohandlerevcolumns#1%
+ {\dostepwiserecurse\nofcolumns\plusone\minusone{\dohandlecolumn{#1}}}
+
+\def\dohandlemidcolumns#1%
+ {\dohandleallcolumns
+ {\ifnum\recurselevel>\plusone
+ \ifnum\recurselevel<\nofcolumns
+ \dohandlecolumn{#1}%
+ \fi
+ \fi}}
+
+%D This register can be used as a temporary storage for page
+%D content.
+
+\newbox\restofpage
+
+%D Features.
+
+\newif\ifintermediatefootnotes
+\newif\ifcarryoverfootnotes %\carryoverfootnotestrue
+\newif\iflastcolumnfootnotes %\lastcolumnfootnotestrue
+\newif\ifbalancecolumns %\balancecolumnstrue
+\newif\ifbalancetoheight %\balancetoheighttrue
+\newif\ifforcecolumngrid \forcecolumngridtrue
+\newif\ifstretchcolumns \stretchcolumnsfalse
+\newif\ifinheritcolumns \inheritcolumnsfalse
+\newif\ifheightencolumns \heightencolumnsfalse
+
+\newif\ifbalancingcolumns
+\newif\ifcollectingcontent
+\newif\ifcolumnoverflow
+\newif\iffinalflushingfloats
+\newif\ifpackflushedfloats \packflushedfloatstrue % for the moment
+
+\newdimen\intercolumnwidth
+\newdimen\localcolumnwidth
+\newdimen\savedpagetotal
+
+\chardef\columndirection=0 % 0:lr 1:rl
+
+\def\minbalancetoplines {1}
+\def\minfreecolumnlines {2}
+
+\newif\ifrecentercolumnbox \recentercolumnboxtrue
+\newif\ifrerecentercolumnbox \rerecentercolumnboxtrue
+\newif\ifpackcolumnfloats \packcolumnfloatstrue
+
+\newbox\collectedpagefloats
+\newbox\collectedleftpagefloats
+\newbox\collectedrightpagefloats
+
+%D The \type {\ifdim} test is needed, because otherwise the
+%D last line of a text end up on top of the baseline instead of
+%D on the baseline, as is the case with preceding pages.
+%D Also, a \type {\vfil} better than a \type {\vfill}.
+
+% to be replaced by \page[now] \page[final] / merged
+
+% \def\eject {\par\penalty-\plustenthousand } % == {\par\break} % plain
+% \def\supereject {\par\penalty-\plustwentythousand} % also plain
+
+\def\eject {\par\ifvmode\penalty\ejectpenalty\fi\resetpagebreak} % == {\par\break} % plain
+\def\supereject {\par\ifvmode\penalty\superpenalty\fi\resetpagebreak} % also plain
+
+\def\doejectpage {\par\ifvmode\ifdim\pagetotal>\pagegoal\else\normalvfil\fi\fi} % pg set to \textheight
+\def\ejectpage {\doejectpage\eject}
+\def\superejectpage{\doejectpage\supereject}
+
+\ifx\bye\undefined \def\bye{\par\vfill\supereject\end} \fi % plain tex command
+
+% floats
+
+\def\ejectinsert
+ {%\flushnotes already done
+ \bgroup
+ \noftopfloats\plusthousand
+ \nofbotfloats\zerocount
+ % this is needed in case a float that has been stored
+ % ends up at the current page; this border case occurs when
+ % the calculated room is 'eps' smaller that the room available
+ % when just flushing; so now we have (maybe optional):
+ \pagebaselinecorrection
+ % alas, this is tricky but needed (first surfaced in prikkels)
+ \doflushfloats
+ \egroup}
+
+\def\ejectdummypage
+ {\endgraf \ifvmode
+ \ejectinsert
+ \fixedspace
+ \vfill
+ \gotonextpage
+ \fi}
+
+\def\beforefinaloutput
+ {}
+
+\def\afterfinaloutput
+ {%\forgetall
+ \vskip\zeropoint\relax
+ \ifvoid\normalpagebox \else
+ \unvbox\normalpagebox
+ \penalty\outputpenalty
+ \fi
+ % not really needed, replaced by \flushsavedfloats
+ \ifnum\outputpenalty>\superpenalty \else % better use a proper otr signal
+ \dosupereject
+ \fi
+ % but does not hurt either (we're still in the otr!)
+ \inpagebodytrue % needed for enabling \blank !
+ \flushsavedfloats % was \dosetbothinserts; only otr one !
+ \setvsize % this is needed for interacting components, like floats and multicolumns
+ \adaptfuzzypagegoal} % watch this hack!
+
+\def\dofinaloutput#1#2% \vbox: prevents spurious spaces in every..pagebody
+ {\forgetall
+ \beforefinaloutput
+ \the\everybeforeshipout % brrr not in shipout
+ \the\pageboundsettings
+ \myshipout{\hbox{\vbox{\dopagebody#1#2}}}% is this hbox needed
+ \the\everyaftershipout
+ \afterfinaloutput}
+
+\def\donofinaloutput#1#2%
+ {\forgetall
+ \beforefinaloutput
+ \the\everybeforeshipout
+ \setpagecounters
+ \message{[-\the\realpageno]}%
+ \setbox\scratchbox\hbox{\dopagebody#1#2}%
+ \deadcycles\zerocount
+ \setnextrealpageno
+ \the\everyaftershipout
+ \afterfinaloutput}
+
+% beware: \ifprocessingpages is in use
+
+\ifdefined\doflushspread\else \let\doflushspread\relax \fi % todo
+
+\def\finaloutput#1#2%
+ {\ifprocessingpages
+ \ifpageselected
+ \@EAEAEA\dofinaloutput
+ \else
+ \@EAEAEA\donofinaloutput
+ \fi
+ \else
+ \ifpageselected
+ \@EAEAEA\donofinaloutput
+ \else
+ \@EAEAEA\dofinaloutput
+ \fi
+ \fi#1#2%
+ \resetselectiepagina
+ \incrementpagenumber
+ \checkpagedimensions
+ \ifnum\outputpenalty>\superpenalty \else
+ \dosupereject
+ \fi
+ \doflushspread
+ \dopostponeblock}
+
+\def\dooutput
+ {\finaloutput\unvbox\normalpagebox}
+
+\maxdeadcycles=1000
+
+% will be installable tracer; better use chardef
+
+% this needs a real cleanup
+
+\def\doplaceversiontext#1#2%
+ {\doifsomething{#2}
+ {\defconvertedcommand\ascii{#2}%
+ \space#1:\space\ascii\space
+ \!!doneatrue}}
+
+\def\placeversioninfo % nog engels maken
+ {\ifcase\conceptmode
+ % 0 : nothing
+ \or
+ % 1 : simple
+ \vskip\!!sixpoint
+ \hbox to \makeupwidth
+ {\infofont
+ \v!concept:\space\currentdate
+ \hss\reportpagedimensions}%
+ \else
+ % 2/3 : extensive
+ \vskip\!!sixpoint
+ \hbox to \makeupwidth
+ {\infofont
+ \getmessage\m!systems{27}:\space\currentdate\space
+ \doplaceversiontext\v!project \currentproject
+ \doplaceversiontext\v!product \currentproduct
+ \doplaceversiontext\v!component\currentcomponent
+ \if!!donea\else\space\v!file:\space\jobname\fi
+ \hss\reportpagedimensions}%
+ \fi}
+
+% tot hier
+
+\def\doversion[#1]%
+ {\chardef\conceptmode\zerocount
+ \overfullrule\zeropoint
+ \processaction % \v!final=>
+ [#1]
+ [ \v!concept=>\chardef\conceptmode\plusone, % simple banner
+ \v!file=>\chardef\conceptmode\plustwo, % full banner
+ \v!temporary=>\chardef\conceptmode\plusthree % full banner plus
+ \overfullrule5\points]} % info in the margin
+
+\def\version
+ {\dosingleargument\doversion}
+
+\def\addstatusinfo
+ {\ifcase\conceptmode
+ \@EA\gobbleoneargument
+ \else
+ \@EA\doaddstatusinfo
+ \fi}
+
+\def\doaddstatusinfo#1%
+ {\setbox#1\vbox to \paperheight
+ {\vsmashbox#1\box#1%
+ \offinterlineskip
+ \vskip\topspace
+ \hsize\paperwidth
+ %\hfill\hbox{\placetestinfo\hskip.5cm}\vss % obsolete
+ \settexthoffset\hskip\texthoffset % brrrr
+ \vbox to 1cm{\vss\placeversioninfo\vss}}}
+
+\def\dotestinfo#1#2#3%
+ {\ifinpagebody\else\ifnum\conceptmode=\plusthree
+ \begingroup
+ \defconvertedcommand\ascii{#3}%
+ \xdef\extratestinfo
+ {#2\space\ascii}%
+ \gdef\totaltestinfo
+ {\global\setbox#1\vbox
+ {\unvbox#1\relax
+ \infofont \setupinterlinespace
+ \hbox
+ {\strut
+ \expanded{\doboundtext{\extratestinfo}{12em}{..}}%
+ \quad}}}%
+ \endgroup
+ \ifinner
+ \aftergroup\totaltestinfo
+ \else
+ \totaltestinfo
+ \fi
+ \fi\fi}
+
+\version[\v!final]
+
+% bewaren tvb documentatie
+%
+% \hbox to \hsize
+% {\en
+% \switchnaarkorps[5pt]%
+% \emergencystretch2em
+% \dimen0=\baselineskip
+% \baselineskip=\dimen0 plus 1pt
+% \hsize=.2\hsize
+% \vsize=2\hsize
+% \ruledvbox to \vsize{\input tufte \par}\hss
+% \ruledvbox to \vsize{\input tufte \par\kern-\prevdepth}\hss
+% \ruledvbox to \vsize{\input tufte \par\kern0pt}\hss
+% \ruledvbox to \vsize{\input tufte \par\vfill}\hss
+% \ruledvbox to \vsize{\input tufte \par\kern-\prevdepth\vfill}}
+%
+% \hbox to \hsize
+% {\en
+% \switchnaarkorps[5pt]%
+% \emergencystretch2em
+% \dimen0=\baselineskip
+% \baselineskip=\dimen0 plus 1pt
+% \hsize=.18\hsize
+% \vsize=2.5\hsize
+% \setbox0=\vbox{\input tufte\relax}%
+% \ruledvbox to \vsize{\unvcopy0}\hss
+% \ruledvbox to \vsize{\unvcopy0\kern-\dp0}\hss
+% \ruledvbox to \vsize{\unvcopy0\kern0pt}\hss
+% \ruledvbox to \vsize{\unvcopy0\vfill}\hss
+% \ruledvbox to \vsize{\unvcopy0\kern-\dp0\vfill}}
+
+\newtoks\afterpage \newtoks\aftereverypage
+\newtoks\beforepage \newtoks\beforeeverypage
+
+\chardef\showgridstate=0
+
+\def\showgrid
+ {\dosingleempty\doshowgrid}
+
+\def\doshowgrid[#1]%
+ {\chardef\showgridstate \plusone % downward compatible default
+ \chardef\gridboxlinemode \plusone
+ \chardef\gridboxlinenomode\plusone
+ \processallactionsinset
+ [#1]%
+ [ \v!reset=>\chardef\showgridstate \zerocount,
+ \v!bottom=>\chardef\showgridstate \plusone,
+ \v!top=>\chardef\showgridstate \plustwo,
+ \v!none=>\chardef\gridboxlinemode \zerocount,
+ \v!all=>\chardef\gridboxlinemode \plusone,
+ \v!lines=>\chardef\gridboxlinemode \plustwo,
+ \v!frame=>\chardef\gridboxlinemode \plusthree,
+ \v!nonumber=>\chardef\gridboxlinenomode\zerocount,
+ \v!right=>\chardef\gridboxlinenomode\plusone,
+ \v!left=>\chardef\gridboxlinenomode\plustwo]}
+
+\def\buildpagebox#1%
+ {\setbox#1\vbox to \paperheight
+ {\hsize\paperwidth
+ \vskip\topspace
+ \doifbothsides
+ {\hskip\backspace}
+ {\hskip\backspace}
+ {\hskip\paperwidth \hskip-\backspace \hskip-\makeupwidth}%
+ \box#1}%
+ \dp#1\zeropoint}
+
+% \newif\ifpagebodyornaments \pagebodyornamentstrue
+%
+% \appendtoks
+% \global\pagebodyornamentstrue
+% \to \everyaftershipout
+
+\newif\ifarrangingpages \arrangingpagesfalse
+
+\chardef\pageornamentstate\zerocount % 0=on 1=one-off 2=always-off
+
+\def\pagebodyornamentstrue {\chardef\pageornamentstate\zerocount} % for a while
+\def\pagebodyornamentsfalse{\chardef\pageornamentstate\plusone} % for a while
+
+\appendtoks
+ \ifcase\pageornamentstate\or
+ \chardef\pageornamentstate\zerocount
+ \fi
+\to \everyaftershipout
+
+\let\poparrangedpages\relax
+\let\pusharrangedpage\relax
+
+\ifx\shiftprintpagebox\undefined
+ \let\shiftprintpagebox\gobbleoneargument
+ \let\shiftpaperpagebox\gobbleoneargument
+\fi
+
+\ifx\registerpageposition\undefined
+ \let\registerpageposition\gobbleoneargument
+\fi
+
+\def\reportarrangedpage#1%
+ {\showmessage\m!systems
+ {23}{\the\realpageno.\the\pageno\ifnum\subpageno>0 .\the\subpageno\fi,#1}}
+
+\newif\ifsavepagebody \newbox\savedpagebody
+
+% beware, \??ly is used before defined, i.e. bad module design
+
+\setuplayout[\c!method=\v!normal]
+
+\def\buildpagebody#1#2%
+ {\ifsavepagebody\global\setbox\savedpagebody\fi
+ \vbox
+ {\beginrestorecatcodes
+% \forgetall % igv problemen, check: \boxmaxdepth\maxdimen
+ \boxmaxdepth\maxdimen % new
+ \dontcomplain
+ % the following plugin uses and sets pagebox; beware: this
+ % will change and is for my (hh) personal experiments
+ \executeifdefined{\??ly\c!method\@@lymethod}%
+ {\getvalue{\??ly\c!method\v!normal}}#1#2%
+ % the finishing touch
+ \ifcase\pageornamentstate
+ \addpagebackground \pagebox
+ \fi
+ \registerpageposition\pagebox
+ \ifarrangingpages
+ \shiftpaperpagebox \pagebox % \v!paper
+ \else
+ \clippagebox \pagebox
+ \doifelse\@@lymarking\v!page
+ {\replicatepagebox \pagebox
+ \addpagecutmarks \pagebox}
+ {\addpagecutmarks \pagebox
+ \replicatepagebox \pagebox}%
+ \scalepagebox \pagebox
+ \mirrorpaperbox \pagebox
+ \orientpaperbox \pagebox
+ \addpagecolormarks \pagebox
+ \centerpagebox \pagebox
+ \addprintbackground\pagebox
+ \mirrorprintbox \pagebox
+ \orientprintbox \pagebox
+ \shiftprintpagebox \pagebox % \v!page
+ \offsetprintbox \pagebox
+ \negateprintbox \pagebox
+ \fi
+ \box\pagebox
+ \endrestorecatcodes}%
+ \ifsavepagebody\copy\savedpagebody\fi}
+
+\setvalue{\??ly\c!method\v!normal}#1#2%
+ {\setbox\pagebox\vbox
+ {\offinterlineskip
+ \ifcase\pageornamentstate
+ \bgroup % else footnotes get inconsistent font/baseline
+ \dostartattributes\??ly\c!style\c!color\empty
+ \offinterlineskip
+ \gettextboxes
+ \dostopattributes
+ \egroup
+ \fi
+ \getmainbox#1#2}% including footnotes
+ \ifcase\pageornamentstate
+ \addmainbackground \pagebox
+ \fi
+ \buildpagebox \pagebox
+ \addstatusinfo \pagebox}
+
+\def\finishpagebox#1%
+ {\ifarrangingpages
+ \addpagecutmarks #1%
+ \addpagecolormarks#1%
+ \centerpagebox #1%
+ \mirrorprintbox #1%
+ \orientprintbox #1%
+ \offsetprintbox #1%
+ \negateprintbox #1%
+ \fi}
+
+\appendtoks \restoreouterspacing \to \everybeforepagebody
+\appendtoks \restoreglobalbodyfont \to \everybeforepagebody
+%appendtoks \restoreouterspacing \to \everybeforepagebody
+
+\ifx\nestednewbox\undefined \newbox\nestednextbox \fi
+
+\prependtoks \let\nextbox\nestednextbox \to \everybeforepagebody
+
+\def\dopagebody#1#2%
+ {%\getallmarks % now in following token register
+ \the\everybeforepagebody
+ \starttextproperties
+ \setnextsubpageno % nog eens: als in pagina (tbv standaard opmaak)
+ \dontshowboxes % dan hier blokkeren en verderop resetten
+% \shipoutfacingpage
+ \checkmargeblokken
+ \the\beforeeverypage
+ \normalexpanded{\global\beforepage\emptytoks\the\beforepage}% \scratchtoks\beforepage\global\beforepage\emptytoks\the\scratchtoks % was \flushtoks\beforepage
+ \inpagebodytrue\buildpagebody#1#2%
+ \normalexpanded{\global\afterpage \emptytoks\the\afterpage }% \scratchtoks\afterpage \global\afterpage \emptytoks\the\scratchtoks % was \flushtoks\afterpage
+ \the\aftereverypage
+ \resetpagebreak
+ %updatelistreferences % now in aftereverypage
+ \resetlayouttextlines % will go to \aftereverypage
+ \stoptextproperties
+ \the\everyafterpagebody}
+
+\newtoks\pageboundsettings
+
+% \prependtoks \initializepaper \to \pageboundsettings
+
+% not here
+
+\newif\ifpagebreakdisabled \pagebreakdisabledfalse
+
+\chardef\testpagemethod \zerocount % todo: \testnewpage[method=,lines=,voffset=]
+\chardef\testpagetrigger\zerocount
+
+\def\testpage {\dotripleempty\dotestpage[\plusone ]} %
+\def\testpageonly{\dotripleempty\dotestpage[\plustwo ]} % no penalties added to the mvl
+\def\testpagesync{\dotripleempty\dotestpage[\plusthree]} % force sync
+
+\def\dotestpage[#1][#2][#3]% don't change, only add more methods
+ {\relax % needed before \if
+ \ifpagebreakdisabled
+ \endgraf
+ \else
+ % new from here
+ \ifcase\testpagetrigger
+ \endgraf
+ \or
+ \ifvmode
+ \dosomebreak\allowbreak
+ \else % indeed?
+ \vadjust{\allowbreak}%
+ \endgraf
+ \fi
+ \fi
+ % till here
+ \ifdim\pagegoal<\maxdimen \relax
+ \ifdim\pagetotal<\pagegoal \relax
+ \scratchdimen\lineheight
+ \multiply\scratchdimen#2\relax
+ \advance\scratchdimen \pagetotal
+ \ifdim\lastskip<\parskip
+ \advance\scratchdimen \parskip
+ \fi
+ \ifthirdargument
+ \advance\scratchdimen#3\relax
+ \fi
+ \ifcase\testpagemethod
+ \ifdim\scratchdimen>.99\pagegoal
+ \penalty-\!!tenthousand\relax
+ \fi
+ \or
+ \advance\scratchdimen-\pagegoal
+ \ifdim\scratchdimen>-\lineheight
+ \penalty-\!!tenthousand\relax
+ \fi
+ \or
+ \getnoflines\pagegoal
+ \advance\scratchdimen-\noflines\lineheight \relax
+ \ifdim\scratchdimen>-\lineheight
+ \penalty-\!!tenthousand\relax
+ \fi
+ \or % same as 0 but more accurate
+ \advance\scratchdimen-10\s!sp\relax
+ \ifdim\scratchdimen>\pagegoal
+ \penalty-\!!tenthousand\relax
+ \fi
+ \fi
+ \else
+ \ifnum#1=\plusthree
+ \flushpagesofar
+ \fi
+ \fi
+ \else
+ \ifnum#1=\plusone\goodbreak\fi
+ \fi
+ \fi}
+
+\def\flushpagesofar
+ {\endgraf
+ \ifdim\pagetotal>\pagegoal
+ \ifdim\dimexpr\pagetotal-\pageshrink\relax>\pagegoal
+ \goodbreak % \penalty0
+ \else
+ \page
+ \fi
+ \else
+ \fi}
+
+\def\testcolumn
+ {\dodoubleempty\dotestcolumn}
+
+\def\dotestcolumn[#1][#2]%
+ {%\relax % needed before \if !
+ \endgraf
+ \ifdim\pagegoal<\maxdimen \ifdim\pagetotal<\pagegoal % \relax
+ \scratchdimen\pagegoal
+ \advance\scratchdimen-\pagetotal
+ \ifdim\lastskip<\parskip
+ \advance\scratchdimen \parskip
+ \fi
+ \ifsecondargument
+ \advance\scratchdimen#2%
+ \fi
+ \getrawnoflines\scratchdimen % raw !
+ % \message{[\number#1>\number\noflines ?}\wait
+ \ifnum#1>\noflines
+ \column
+ \fi
+ \else
+ \penalty-\!!tenthousand % untested ! ! \column
+ \fi \fi}
+
+\let\resetcurrentsectionmarks\relax
+
+% was: \resetsectionmarks\firstsection, zie \handlepagebreak
+
+\def\page{\pagebreak} % the short form of \pagebreak (mult-com one)
+
+\def\resetpagebreak
+ {\global\pagebreakdisabledfalse}
+
+\def\simplifypagebreak
+ {\def\dopagebreak[##1]{\goodbreak}}
+
+\def\disablepagebreaks
+ {\def\dopagebreak[##1]{}}
+
+\def\executepagebreakhandler#1%
+ {\edef\@@pagespecification{#1}%
+ \ifcsname\??pe:\@@pagespecification\endcsname
+ \csname\??pe:\@@pagespecification\endcsname
+ \else\ifcsname\??pe::\@@pagespecification\endcsname
+ \executepagebreakhandlers{\csname\??pe::\@@pagespecification\endcsname}%
+ \else
+ \csname\??pe:\s!unknown\endcsname
+ \fi\fi}
+
+\long\def\installpagebreakhandler#1#2%
+ {\long\setvalue{\??pe:#1}{#2}}
+
+\unexpanded\def\pagebreak
+ {\dosingleempty\dopagebreak}
+
+\def\dopagebreak[#1]% so, page ornaments are reset after a pagebreak command, unless set
+ {\bgroup
+ \flushnotes
+ \edef\prevrealpageno{\the\realpageno}%
+ \ifcase\pageornamentstate \or
+ % disable reset after shipout
+ \global\chardef\pageornamentstate\plustwo
+ \fi
+ \iffirstargument % or if empty i.e. []
+ \executepagebreakhandlers{#1}%
+ \else % so, no pagebreak when \pagebreak[] ! ! !
+ \executepagebreakhandler\v!yes
+ \fi
+ \ifnum\prevrealpageno<\realpageno
+ \global\chardef\pageornamentstate\zerocount
+ \fi
+ \egroup}
+
+\def\executepagebreakhandlers#1%
+ {\processcommacommand[#1]\executepagebreakhandler}
+
+\installpagebreakhandler \s!dummy
+ {\ejectinsert
+ \gotonextpage
+ \ejectdummypage}
+
+\installpagebreakhandler \v!frame
+ {\page\bgroup\showframe\page[\v!empty]\egroup}
+
+\installpagebreakhandler \s!unknown
+ {\doifinstringelse{+}\@@pagespecification
+ {\ejectinsert
+ \gotonextpage
+ \dorecurse\@@pagespecification\ejectdummypage}
+ {\doifnumberelse\@@pagespecification
+ {\ejectinsert
+ \gotonextpage
+ \doloop
+ {\ifnum\userpageno<\@@pagespecification\relax
+ \ejectdummypage
+ \else
+ \exitloop
+ \fi}}
+ {}}}
+
+\installpagebreakhandler \s!default
+ {} % do nothing if empty
+
+\installpagebreakhandler \v!reset
+ {% better not: \global\chardef\pageornamentstate\zerocount
+ \resetpagebreak}
+
+\installpagebreakhandler \v!disable
+ {\global\pagebreakdisabledtrue}
+
+\installpagebreakhandler \v!yes
+ {\ifpagebreakdisabled\else
+ \ejectinsert
+ \gotonextpage
+ \ifinsidecolumns % this will move to MUL
+ \ejectpage % anders soms geen overgang
+ \fi
+ \fi}
+
+\installpagebreakhandler \v!makeup % ??
+ {\ifpagebreakdisabled\else
+ \eject
+ \fi}
+
+\installpagebreakhandler \v!blank
+ {\ifcase\pageornamentstate
+ \global\chardef\pageornamentstate\plusone
+ \fi}
+
+\installpagebreakhandler \v!no
+ {\ifpagebreakdisabled\else
+ \dosomebreak\nobreak
+ \fi}
+
+\installpagebreakhandler \v!preference
+ {\ifpagebreakdisabled\else
+ \ifinsidecolumns % this will move to MUL
+ \dosomebreak\goodbreak
+ \else
+ \testpage[3][\zeropoint]%
+ \fi
+ \fi}
+
+\installpagebreakhandler \v!bigpreference
+ {\ifpagebreakdisabled\else
+ \ifinsidecolumns % this will move to MUL
+ \dosomebreak\goodbreak
+ \else
+ \testpage[5][\zeropoint]%
+ \fi
+ \fi}
+
+\installpagebreakhandler \v!empty
+ {\ejectinsert
+ \gotonextpage
+ \doifnotvalue{\??tk\v!header\c!state}\v!stop{\setupheader[\c!state=\v!empty]}%
+ \doifnotvalue{\??tk\v!footer\c!state}\v!stop{\setupfooter[\c!state=\v!empty]}%
+ \ejectdummypage}
+
+\installpagebreakhandler \v!left
+ {\ejectinsert
+ \gotonextpageX % will become \gotonextpage
+ \doifbothsidesoverruled{}{\resetcurrentsectionmarks\ejectdummypage}{}}
+
+\installpagebreakhandler \v!right
+ {\ejectinsert
+ \gotonextpageX % will become \gotonextpage
+ \doifbothsidesoverruled{}{}{\resetcurrentsectionmarks\ejectdummypage}}
+
+\installpagebreakhandler \v!even
+ {\page
+ \doifoddpageelse{\resetcurrentsectionmarks\ejectdummypage}\donothing}
+
+\installpagebreakhandler \v!odd
+ {\page
+ \doifoddpageelse\donothing{\resetcurrentsectionmarks\ejectdummypage}}
+
+\installpagebreakhandler \v!quadruple % not yet ok inside columnsets
+ {\ifdoublesided
+ \!!counta\realpageno
+ \!!countb\realpageno
+ \divide\!!counta 4
+ \divide\!!countb 2
+ \ifnum\!!counta=\!!countb
+ \else
+ \executepagebreakhandler\v!yes
+ \executepagebreakhandler\v!empty
+ \executepagebreakhandler\v!empty
+ \fi
+ \fi}
+
+\installpagebreakhandler \v!last
+ {\ejectinsert
+ \gotonextpageX % will become \gotonextpage
+ \relax
+ \doifbothsidesoverruled
+ {\shipoutfacingpage}
+ {}
+ {\noheaderandfooterlines \ejectdummypage}%
+ \filluparrangedpages}
+
+\installpagebreakhandler \v!lastpage % handy for backpage preceded by empty pages
+ {\executepagebreakhandler\v!yes
+ \ifdoublesided
+ \executepagebreakhandler\v!left
+ \executepagebreakhandler\v!empty
+ \executepagebreakhandler\v!empty
+ \fi}
+
+\installpagebreakhandler \v!start
+ {\globallet\shipout\normalshipout}
+
+\installpagebreakhandler \v!stop
+ {\globallet\shipout\noshipout}
+
+% nb: \executepagebreakhandler\v!hoofd in other ones
+
+\installpagebreakhandler \v!header
+ {\doifnotvalue{\??tk\v!header\c!state}\v!stop{\setupheader[\c!state=\v!empty]}}
+
+\installpagebreakhandler \v!footer
+ {\doifnotvalue{\??tk\v!footer\c!state}\v!stop{\setupfooter[\c!state=\v!empty]}}
+
+% \definepagebreak
+% [chapter]
+% [yes,header,right]
+%
+% \setuphead
+% [chapter]
+% [page=chapter,
+% header=empty,
+% footer=chapter]
+%
+% \definepagebreak % untested
+% [lastpage]
+% [left,{empty,right},{empty,left}]
+
+% public page handler, beware: definepage already in use (core-ref)
+%
+% \definepagebreak[instance][forsure]
+% \definepagebreak[forsure][yes,+4]
+
+\def\definepagebreak
+ {\dodoubleargument\dodefinepagebreak}
+
+\def\dodefinepagebreak[#1][#2]% non recursive, meant for simple mappings
+ {\setvalue{\??pe::#1}{#2}}
+
+% hier nog uti blokkeren
+
+% don't change this / test case:
+%
+% \setupbackgrounds[state=repeat]
+% \setupbackgrounds[text][text][background=whatever]
+% \couplepage[chapter][before={\defineoverlay[whatever][ON]}]
+% \setuphead[chapter][before={\pagetype[chapter]}]
+% \chapter{First} \page test \chapter{second} \page test
+
+\long\def\installcolumnbreakhandler#1#2#3% #1=otr-id #2=tag
+ {\long\setvalue{\??cn:#1:#2}{#3}}
+
+\def\definecolumnbreak
+ {\dodoubleargument\dodefinecolumnbreak}
+
+\def\dodefinecolumnbreak[#1][#2]% non recursive, meant for simple mappings
+ {\setvalue{\??cn::#1}{#2}}
+
+%\def\columnbreak
+% {\dosingleempty\docolumnbreak}
+%
+%\def\docolumnbreak[#1]%
+% {\expanded{\nextcolumn[\executeifdefined{\??cn::#1}{#1}]}}
+
+\definecomplexorsimple\columnbreak
+
+\def\simplecolumnbreak
+ {\executecolumnbreakhandler\v!yes}
+
+\def\complexcolumnbreak[#1]% if empty, do nothing and avoid processing
+ {\doifsomething{#1}{\executecolumnbreakhandlers{#1}}}
+
+\def\executecolumnbreakhandlers#1%
+ {\processcommacommand[#1]\executecolumnbreakhandler}
+
+\def\executecolumnbreakhandler#1% here no commalist
+ {\edef\@@columnspecification{#1}%
+ \doifdefinedelse{\??cn:\OTRidentifier:\@@columnspecification}
+ {\getvalue{\??cn:\OTRidentifier:\@@columnspecification}}
+ {\doifdefinedelse{\??cn::\@@columnspecification}
+ {\executecolumnbreakhandlers{\getvalue{\??cn::\@@columnspecification}}}
+ {\getvalue{\??cn:\OTRidentifier:\s!unknown}}}}
+
+%let\nextcolumn\columnbreak
+\let\column \columnbreak
+
+% We don't want spurious last pages (due to left over marks):
+
+\def\noshipout
+ {\writestatus\m!systems{ignoring further shipouts}%
+ \global\advance\realpageno\minusone % else no flush of resources
+ \dowithnextbox{\deadcycles\zerocount}}
+
+% \def\doignorerestoftext
+% {\ifarrangingpages \else \ifnum\textlevel>\zerocount \else
+% \globallet\shipout\noshipout
+% \fi \fi}
+%
+% better:
+
+\def\doignorerestoftext
+ {\ifarrangingpages \else \ifnum\textlevel=\plusone
+ \globallet\shipout\noshipout
+ \fi \fi}
+
+\let\ignorerestoftext\donothing
+
+\prependtoks % only ignore in a symmetrical doc
+ \globallet\ignorerestoftext\doignorerestoftext
+\to \everystarttext
+
+% \appendtoks
+% \ignorerestoftext
+% \to \everylastshipout
+
+\newif\ifpageselected \pageselectedtrue
+\newif\ifselectingpages \selectingpagesfalse
+\newif\ifprocessingpages\processingpagestrue
+
+\let\pageselection \empty
+\let\currentpageselection\empty
+\let\aftershipout \relax
+\let\beforeshipout \relax
+
+\def\dodobeforeshipout#1%
+ {\global\let\beforeshipout\relax
+ \csname\??pg#1\c!before\endcsname}
+
+\def\dobeforeshipout
+ {\doifsomething\currentpageselection
+ {\processcommacommand[\currentpageselection]\dodobeforeshipout}}
+
+\def\dododoaftershipout#1%
+ {\global\let\aftershipout\relax
+ \global\let\currentpageselection\empty
+ \csname\??pg#1\c!after\endcsname}
+
+\def\dodoaftershipout#1%
+ {\doifelsevalue{\??pg#1\c!option}\v!doublesided
+ {\doifbothsidesoverruled
+ {\dododoaftershipout{#1}}
+ {\dododoaftershipout{#1}}
+ {}}
+ {\dododoaftershipout{#1}}}
+
+\def\doaftershipout
+ {\doifsomething\currentpageselection
+ {\processcommacommand[\currentpageselection]\dodoaftershipout}}
+
+% Dit wordt eigenlijk nooit en moet worden vervangen door
+% het meer algemene mechanisme.
+
+\def\dopagetype[#1]%
+ {\edef\desoortpagina{#1}%
+ \ifx\desoortpagina\empty \else
+ \@EA\doglobal\@EA\addtocommalist\@EA{\desoortpagina}\currentpageselection
+ \ifselectingpages
+ \fullexpandtwoargsafter\doifcommon\desoortpagina\pageselection
+ {\global\pageselectedtrue}%
+ \fi
+ \gdef\beforeshipout{\dobeforeshipout}%
+ \gdef\aftershipout {\doaftershipout}%
+ \fi}
+
+\def\pagetype
+ {\dosingleargument\dopagetype}
+
+\def\docouplepage[#1][#2]%
+ {\getparameters
+ [\??pg]
+ [\c!before=,
+ \c!after=,
+ \c!option=,
+ #2]%
+ \def\docommand##1%
+ {\getparameters
+ [\??pg##1]
+ [\c!before=\@@pgbefore,
+ \c!after=\@@pgafter,
+ \c!option=\@@pgoption]}%
+ \processcommalist[#1]\docommand}%
+
+\def\couplepage
+ {\dodoubleargument\docouplepage}
+
+\def\doprocesspage[#1][#2]%
+ {\processaction
+ [#2]
+ [\v!yes=>\global\processingpagestrue,
+ \v!no=>\global\processingpagesfalse]%
+ \gdef\pageselection{#1}%
+ \global\selectingpagestrue
+ \global\pageselectedfalse}
+
+\def\processpage
+ {\dodoubleargument\doprocesspage}
+
+\def\resetselectiepagina
+ {\ifselectingpages
+ \doifbothsidesoverruled{\global\pageselectedfalse}{}{\global\pageselectedfalse}%
+ \fi}
+
+\newif\ifregistertextareas
+\newif\iftracetextareas
+
+\newbox\registertextbox
+
+% \def\registeredtextarea#1#2#3% #1=lower-dp #2=correct-ht #3=box
+% {\hbox{\box#3}}
+
+\def\enabletextarearegistration{\global\registertextareastrue}
+
+\def\registeredtextarea#1#2#3% #1=lower-dp #2=correct-ht #3=box
+ {\hbox\bgroup
+ \ifregistertextareas \ifx\registerMPtextarea\undefined \else
+ \setbox\registertextbox\null
+ \wd\registertextbox\wd#3%
+ \ht\registertextbox\ht#3%
+ \dp\registertextbox\dp#3%
+ \ifcase#1\or % 1
+ \setbox\registertextbox\hbox{\lower\strutdp\box\registertextbox}%
+ \fi
+ \ifcase#2\or % 1
+ \setbox\registertextbox\hbox{\raise\topskip\hbox{\lower\strutht\box\registertextbox}}%
+ \dp\registertextbox\strutdp
+ \fi
+ \dp\registertextbox\strutdp % needed
+ %\setbox\registertextbox\hbox
+ % {\iftracetextareas\gray\boxrulewidth2pt\ruledhbox\fi
+ % {\registerMPtextarea{\box\registertextbox}}}%
+ \setbox\registertextbox\hbox
+ {\registerMPtextarea{\box\registertextbox}}%
+ \smashbox\registertextbox
+ \box\registertextbox
+ \fi \fi
+ \box#3%
+ \egroup}
+
+%D \macros
+%D {setupoppositeplacing,startopposite}
+%D
+%D \starttyping
+%D \starttext
+%D test \startopposite \blackrule[width=3cm,height=4cm] \stopopposite test
+%D test \startopposite \blackrule[width=3cm,height=4cm] \stopopposite test
+%D \stoptext
+%D \stoptyping
+
+% Moved from page-mar.tex, made english, cleaned up, but still to be
+% redesigned
+
+\newbox\facingpage
+
+\def\setupoppositeplacing
+ {\dodoubleargument\getparameters[\??np]}
+
+\def\startopposite
+ {\dowithnextboxcontent
+ {\hsize\makeupwidth}%
+ {\global\setbox\facingpage\vbox
+ {\ifvoid\facingpage
+ \@@npbefore
+ \else
+ \@@npinbetween
+ \unvbox\facingpage
+ \fi
+ \box\nextbox}}%
+ \vbox\bgroup}
+
+\def\stopopposite
+ {\egroup}
+
+\def\finishfacingpage
+ {\ifvoid\facingpage\else
+ \global\setbox\facingpage\vbox to \makeupheight
+ {\unvbox\facingpage
+ \@@npafter
+ \vss}%
+ \fi}
+
+\def\shipoutfacingpage
+ {\doif\@@npstate\v!start
+ {\ifvoid\facingpage\else
+ \ifnum\realpageno>\plusone
+ \bgroup
+ \chardef\pageornamentstate\plusone
+ \finishfacingpage
+ \myshipout{\buildpagebody\box\facingpage}%
+ \egroup
+ \else
+ \global\setbox\facingpage\emptybox
+ \fi
+ \fi}}
+
+\setupoppositeplacing
+ [\c!state=\v!start,
+ \c!before=,
+ \c!inbetween=\blank,
+ \c!after=]
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-ins.tex b/Master/texmf-dist/tex/context/base/page-ins.mkii
index c1185f7de53..069153434ad 100644
--- a/Master/texmf-dist/tex/context/base/core-ins.tex
+++ b/Master/texmf-dist/tex/context/base/page-ins.mkii
@@ -2,7 +2,7 @@
%D [ file=core-ins,
%D version=2002.04.16,
%D title=\CONTEXT\ Insertion Macros,
-%D subtitle=Insertions,
+%D subtitle=Insertions,
%D author=Hans Hagen,
%D date=\currentdate,
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
@@ -11,14 +11,14 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Insertion Macros / General}
+\writestatus{loading}{ConTeXt Core Macros / Insertions}
%D Insertions are special data collections that are associated
%D to \TEX's internal page builder. When multiple footnote
%D classes were introduced, I decided to isolate some of the
-%D functionality in a module.
+%D functionality in a module.
-\unprotect
+\unprotect
\newtoks\@@insertionlist
@@ -29,7 +29,7 @@
%\def\installinsertion#1%
% {\ifx#1\undefined
% \newinsert#1%
-% \count#1\plusthousand
+% \count#1\plusthousand
% \skip #1\zeropoint
% \dimen#1\maxdimen
% \appendtoks\doprocessinsert#1\to\@@insertionlist
@@ -41,7 +41,7 @@
\fi
\ifx#1\relax % permits \csname...\endcsname
\newinsert#1%
- \count#1\plusthousand
+ \count#1\plusthousand
\skip #1\zeropoint
\dimen#1\maxdimen
\appendtoks\doprocessinsert#1\to\@@insertionlist
@@ -52,10 +52,10 @@
{\def\doprocessinsert##1{\ifvoid##1\else\insert##1{\unvbox##1}\fi}%
\processinsertions}
-%D For instance, when we postpone footnotes, we need to save
-%D some data related to the inserts. The next methods are
-%D far from ideal, but better than nothing. We save and
-%D restore box content and associated data independently.
+%D For instance, when we postpone footnotes, we need to save
+%D some data related to the inserts. The next methods are
+%D far from ideal, but better than nothing. We save and
+%D restore box content and associated data independently.
%D The box content is only restores when non||void.
\def\backupinsertion#1%
@@ -63,41 +63,41 @@
\def\installbackupinsertion#1%
{\expandafter\newinsert\csname\string#1\endcsname
- \count\backupinsertion#1\zerocount
+ \count\backupinsertion#1\zerocount
\skip \backupinsertion#1\zeropoint
\dimen\backupinsertion#1\maxdimen}
\def\saveinsertionbox#1%
- {\ifdim\ht#1>\zeropoint % hm, actually unknown
+ {\ifdim\ht#1>\zeropoint % hm, actually unknown
\global\setbox\backupinsertion#1\box#1%
\else
- \global\setbox\backupinsertion#1\box\voidb@x
+ \global\setbox\backupinsertion#1\emptybox
\fi}
\def\restoreinsertionbox#1%
- {\ifvoid\backupinsertion#1\else % if void, we keep the content
+ {\ifvoid\backupinsertion#1\else % if void, we keep the content
\global\setbox#1\box\backupinsertion#1%
\fi}
\def\eraseinsertionbackup#1%
- {\global\setbox\backupinsertion#1\box\voidb@x}
+ {\global\setbox\backupinsertion#1\emptybox}
-\def\saveinsertiondata#1%
+\def\saveinsertiondata#1%
{\global\skip \backupinsertion#1\skip #1%
\global\count\backupinsertion#1\count#1%
\global\dimen\backupinsertion#1\dimen#1}
-\def\restoreinsertiondata#1%
+\def\restoreinsertiondata#1%
{\global\skip #1\skip \backupinsertion#1%
\global\count#1\count\backupinsertion#1%
\global\dimen#1\dimen\backupinsertion#1}
-%D Auxiliary macros:
+%D Auxiliary macros:
\def\addinsertionheight#1\to#2%
{\ifvoid#1\else
- \advance#2 1\skip#1\relax
- \advance#2 \ht #1\relax
+ \advance#2 1\skip#1\relax
+ \advance#2 \ht #1\relax
\fi}
-\protect \endinput
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/page-ins.mkiv b/Master/texmf-dist/tex/context/base/page-ins.mkiv
new file mode 100644
index 00000000000..3e12bfcf003
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/page-ins.mkiv
@@ -0,0 +1,94 @@
+%D \module
+%D [ file=core-ins,
+%D version=2002.04.16,
+%D title=\CONTEXT\ Insertion Macros,
+%D subtitle=Insertions,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Core Macros / Insertions}
+
+%D Insertions are special data collections that are associated
+%D to \TEX's internal page builder. When multiple footnote
+%D classes were introduced, I decided to isolate some of the
+%D functionality in a module.
+
+\unprotect
+
+\newtoks\@@insertionlist
+
+\def\processinsertions{\the\@@insertionlist}
+
+\let\doprocessinsert\gobbleoneargument
+
+\def\installinsertion#1%
+ {\ifdefined#1\else
+ \let#1\relax
+ \fi
+ \ifx#1\relax % permits \csname...\endcsname
+ \newinsert#1%
+ \count#1\plusthousand
+ \skip #1\zeropoint
+ \dimen#1\maxdimen
+ \appendtoks\doprocessinsert#1\to\@@insertionlist
+ \fi}
+
+
+\def\synchronizeinsertions
+ {\def\doprocessinsert##1{\ifvoid##1\else\insert##1{\unvbox##1}\fi}%
+ \processinsertions}
+
+%D For instance, when we postpone footnotes, we need to save
+%D some data related to the inserts. The next methods are
+%D far from ideal, but better than nothing. We save and
+%D restore box content and associated data independently.
+%D The box content is only restores when non||void.
+
+\def\backupinsertion#1%
+ {\csname\string#1\endcsname}
+
+\def\installbackupinsertion#1%
+ {\expandafter\newinsert\csname\string#1\endcsname
+ \count\backupinsertion#1\zerocount
+ \skip \backupinsertion#1\zeropoint
+ \dimen\backupinsertion#1\maxdimen}
+
+\def\saveinsertionbox#1%
+ {\ifdim\ht#1>\zeropoint % hm, actually unknown
+ \global\setbox\backupinsertion#1\box#1%
+ \else
+ \global\setbox\backupinsertion#1\emptybox
+ \fi}
+
+\def\restoreinsertionbox#1%
+ {\ifvoid\backupinsertion#1\else % if void, we keep the content
+ \global\setbox#1\box\backupinsertion#1%
+ \fi}
+
+\def\eraseinsertionbackup#1%
+ {\global\setbox\backupinsertion#1\emptybox}
+
+\def\saveinsertiondata#1%
+ {\global\skip \backupinsertion#1\skip #1%
+ \global\count\backupinsertion#1\count#1%
+ \global\dimen\backupinsertion#1\dimen#1}
+
+\def\restoreinsertiondata#1%
+ {\global\skip #1\skip \backupinsertion#1%
+ \global\count#1\count\backupinsertion#1%
+ \global\dimen#1\dimen\backupinsertion#1}
+
+%D Auxiliary macros:
+
+\def\addinsertionheight#1\to#2%
+ {\ifvoid#1\else
+ \advance#2 1\skip#1\relax
+ \advance#2 \ht #1\relax
+ \fi}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/page-lay.tex b/Master/texmf-dist/tex/context/base/page-lay.mkii
index 70414c50001..de1194c2ae8 100644
--- a/Master/texmf-dist/tex/context/base/page-lay.tex
+++ b/Master/texmf-dist/tex/context/base/page-lay.mkii
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Page Macros / Layout Specification}
+\writestatus{loading}{ConTeXt Page Macros / Layout Specification}
%D This module is now etex dependent.
@@ -82,29 +82,6 @@
\let\currentlayout\empty
-%\def\layoutparameter#1%
-% {\ifundefined{\??ly\currentlayout#1}%
-% \getvalue{\??ly#1}%
-% \else
-% \getvalue{\??ly\currentlayout#1}%
-% \fi}
-%
-% faster
-
-\def\layoutparameter#1%
- {\csname\??ly
- \ifundefined{\??ly\currentlayout#1}\else\currentlayout\fi
- #1\endcsname}
-
-\def\namedlayoutparameter#1#2%
- {\ifundefined{\??ly#1#2}%
- \layoutparameter{#2}%
- \else
- \getvalue{\??ly#1#2}%
- \fi}
-
-%D Look how ugly a speed up looks:
-
\def\layoutparameter#1%
{\csname\??ly\ifcsname
\??ly\currentlayout#1\endcsname\currentlayout
@@ -595,12 +572,12 @@
\xdef\currentlayout{#1}\recalculatelayout}
\def\checkcurrentoddlayout
- {\ifundefined{\??ly\v!odd\c!state}\else
+ {\ifcsname\??ly\v!odd\c!state\endcsname
\doifvalue{\??ly\v!odd\c!state}\v!start{\changetolayout\v!odd}%
\fi}
\def\checkcurrentevenlayout
- {\ifundefined{\??ly\v!even\c!state}\else
+ {\ifcsname\??ly\v!even\c!state\endcsname
\doifvalue{\??ly\v!even\c!state}\v!start{\changetolayout\v!even}%
\fi}
@@ -619,17 +596,6 @@
\!!zerocount
\fi}
-% \def\checkcurrentlayout % public and used in naw, so keep this name
-% {\doifundefinedelse{\??ly\realfolio\c!state}
-% {\doifundefinedelse{\??ly\reverserealfolio\c!state}
-% {\doifundefinedelse{\??ly\v!current\c!state}
-% {\doifoddpageelse\checkcurrentoddlayout\checkcurrentevenlayout}
-% {\changetolayout\v!current}}
-% {\doifvalue{\??ly\reverserealfolio\c!state}\v!start
-% {\changetolayout\reverserealfolio}}}
-% {\doifvalue{\??ly\realfolio\c!state}\v!start
-% {\changetolayout\realfolio}}}
-
\def\checkcurrentlayout % public and used in naw, so keep this name
{\ifcsname\??ly\realfolio\c!state\endcsname
\doifvalue{\??ly\realfolio\c!state}\v!start{\changetolayout\realfolio}%
@@ -760,7 +726,7 @@
\def\reportpagedimensions
{\ifx\poppagedimensions\relax \else
- \space\@@zaheight\space-\space
+ \space\the\dimexpr\@@zaheight\relax\space-\space
\fi
\realfolio}
@@ -915,26 +881,34 @@
\let\cutmarkbottomtext\pagecutmarkbottomtext
\makecutbox}
+\setvalue{\??ly:n:\c!marking:\v!on}%
+ {\makepagecutbox}
+
+\setvalue{\??ly:n:\c!marking:\v!page}% only at outer when nx/ny > 0
+ {\makepagecutbox}
+
+\setvalue{\??ly:n:\c!marking:\v!empty}%
+ {\let\pagecutmarksymbol\empty
+ \let\pagecutmarktoptext\empty
+ \let\pagecutmarkbottomtext\empty
+ \makepagecutbox}
+
+\setvalue{\??ly:n:\c!marking:\v!text}%
+ {\let\pagecutmarksymbol\empty
+ \let\pagecutmarkbottomtext\extrapagecutmarkbottomtext
+ \makepagecutbox}
+
+\setvalue{\??ly:c:\c!marking:\v!color}%
+ {\doaddpagecolormarks\colormarkbox}
+
+\setvalue{\??ly:c:\c!marking:\v!screen}%
+ {\doaddpagecolormarks\rastermarkbox}
+
\def\addpagecutmarks % #1
- {\doifelse\@@lymarking\v!on
- \makepagecutbox
- {\doifelse\@@lymarking\v!empty
- {\let\pagecutmarksymbol\empty
- \let\pagecutmarktoptext\empty
- \let\pagecutmarkbottomtext\empty
- \makepagecutbox}
- {\doifelse\@@lymarking\v!text
- {\let\pagecutmarksymbol\empty
- \let\pagecutmarkbottomtext\extrapagecutmarkbottomtext
- \makepagecutbox}
- \gobbleoneargument}}}
+ {\executeifdefined{\??ly:n:\c!marking:\@@lymarking}\gobbleoneargument}
\def\addpagecolormarks % #1
- {\doifelse\@@lymarking\v!color
- {\doaddpagecolormarks\colormarkbox}
- {\doifelse\@@lymarking\v!screen
- {\doaddpagecolormarks\rastermarkbox}
- \gobbleoneargument}}
+ {\executeifdefined{\??ly:c:\c!marking:\@@lymarking}\gobbleoneargument}
\def\doaddpagecolormarks#1#2%
{\makepagecutbox{#2}%
@@ -1041,22 +1015,42 @@
% what are those \relax'es doing there?
-\def\doifbothsidesoverruled#1#2#3%
+% \def\doifbothsidesoverruled#1#2#3%
+% {\ifdoublesided
+% \doifoddpageelse{#2}{#3}\relax
+% \else
+% #1\relax
+% \fi}
+
+% \def\doifbothsides#1#2#3%
+% {\ifdoublesided
+% \ifsinglesided
+% #1\relax
+% \else
+% \doifoddpageelse{#2}{#3}\relax
+% \fi
+% \else
+% #1\relax
+% \fi}
+
+\def\redoifoddpageelse#1{\doifoddpageelse}
+
+\def\doifbothsidesoverruled
{\ifdoublesided
- \doifoddpageelse{#2}{#3}\relax
+ \@EA\redoifoddpageelse
\else
- #1\relax
+ \@EA\firstofthreearguments
\fi}
-\def\doifbothsides#1#2#3%
+\def\doifbothsides
{\ifdoublesided
\ifsinglesided
- #1\relax
+ \@EAEAEA\firstofthreearguments
\else
- \doifoddpageelse{#2}{#3}\relax
+ \@EAEAEA\redoifoddpageelse
\fi
\else
- #1\relax
+ \@EA\firstofthreearguments
\fi}
\newdimen\texthoffset
@@ -1156,11 +1150,11 @@
%D \showsetup{showsetups}
%D %showsetup{showmargins}
-\fetchruntimecommand \showprint {page-run}
-\fetchruntimecommand \showframe {page-run}
-\fetchruntimecommand \showlayout {page-run}
-\fetchruntimecommand \showsetups {page-run}
-\fetchruntimecommand \showmargins {page-run}
+\fetchruntimecommand \showprint {page-run.mkii}
+\fetchruntimecommand \showframe {page-run.mkii}
+\fetchruntimecommand \showlayout {page-run.mkii}
+\fetchruntimecommand \showsetups {page-run.mkii}
+\fetchruntimecommand \showmargins {page-run.mkii}
%D The default dimensions are quite old and will not change.
%D The funny fractions were introduced when we went from fixed
@@ -1241,7 +1235,8 @@
\c!dx=\zeropoint,
\c!dy=\zeropoint,
\c!nx=1,
- \c!ny=1]
+ \c!ny=1,
+ \c!method=\v!normal]
\setuppapersize
[\c!option=\v!max,
@@ -1364,6 +1359,11 @@
\definepapersize [SRA3] [\c!width=320mm,\c!height=450mm]
\definepapersize [SRA4] [\c!width=225mm,\c!height=320mm]
+%D Swedish thesis formats:
+
+\definepapersize [G5] [\c!width=169mm,\c!height=239mm]
+\definepapersize [E5] [\c!width=155mm,\c!height=220mm]
+
%D Industry invention:
\definepapersize [A3plus] [\c!width=329mm,\c!height=483mm]
diff --git a/Master/texmf-dist/tex/context/base/page-lay.mkiv b/Master/texmf-dist/tex/context/base/page-lay.mkiv
new file mode 100644
index 00000000000..18972c3502e
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/page-lay.mkiv
@@ -0,0 +1,1406 @@
+%D \module
+%D [ file=page-lay,
+%D version=2000.10.20, % copied from main-001
+%D title=\CONTEXT\ Page Macros,
+%D subtitle=Layout Specification,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Page Macros / Layout Specification}
+
+%D This module is now etex dependent.
+
+% to be translated into english
+
+% hoofdhoogte wordt bij status=hoog niet aangepast op outer
+% level, wel binnen bepaalde berekeningen
+
+%D Before you start wondering why some of the page related
+%D modules skip upward or left in order to place elements, you
+%D must realize that the reference point is the top left
+%D corner of the main typesetting area. One reason for this
+%D choice is that it suited some viewers that displayed page
+%D areas. Another reason is that margins, edges and top and
+%D bottom areas are kind of virtual, while the header, text
+%D and footer areas normally determine the text flow.
+
+\unprotect
+
+%D First we get rid of the funny \TEX\ offset defaults of one
+%D inch by setting them to zero.
+
+\voffset = 0pt % setting this to -1in let's go metapost crazy
+\hoffset = 0pt % setting this to -1in let's go metapost crazy
+
+%D The dimensions related to layout areas are represented by
+%D real dimensions.
+
+\newdimen\paperheight \paperheight = 297mm
+\newdimen\paperwidth \paperwidth = 210mm
+
+\newdimen\printpaperheight \printpaperheight = \paperheight
+\newdimen\printpaperwidth \printpaperwidth = \paperwidth
+
+\newdimen\makeupheight % calculated
+\newdimen\makeupwidth % calculated
+
+\newdimen\textheight % calculated
+\newdimen\textwidth % calculated
+
+\newdimen\topspace \topspace = 2cm
+\newdimen\backspace \backspace = \topspace
+\newdimen\cutspace \cutspace = 0pt
+\newdimen\bottomspace \bottomspace = 0pt
+
+\newdimen\headerheight \headerheight = 2cm
+\newdimen\footerheight \footerheight = \headerheight
+
+\newdimen\topoffset \topoffset = 0pt
+\newdimen\backoffset \backoffset = \topoffset
+
+\newdimen\leftmarginwidth \leftmarginwidth = 3cm
+\newdimen\rightmarginwidth \rightmarginwidth = \leftmarginwidth
+
+\newdimen\leftedgewidth \leftedgewidth = 3cm
+\newdimen\rightedgewidth \rightedgewidth = \leftedgewidth
+
+\newdimen\topheight \topheight = 0cm
+\newdimen\bottomheight \bottomheight = \topheight
+
+\newcount\layoutlines \layoutlines = 0
+\newcount\layoutcolumns \layoutcolumns = 0
+\newdimen\layoutcolumndistance \layoutcolumndistance = 0pt
+\newdimen\layoutcolumnwidth \layoutcolumnwidth = 0pt
+
+%D We can save some tokens and fuzzy parameters by using a
+%D symbolic name for the current set of layout parameters.
+
+\let\currentlayout\empty
+
+\def\layoutparameter#1%
+ {\csname\??ly\ifcsname
+ \??ly\currentlayout#1\endcsname\currentlayout
+ \fi#1\endcsname}
+
+\def\namedlayoutparameter#1#2%
+ {\csname\??ly\ifcsname\??ly #1#2\endcsname#1\else
+ \ifcsname\??ly\currentlayout#2\endcsname\currentlayout
+ \fi\fi#2\endcsname}
+
+%D Beause normal \TEX\ has at most 256 dimensions (of which a
+%D substantial part is already in use), we provide a way to
+%D generate a format with macro based alternatives. For a long
+%D time, this used to be the default case. Beware: only fixed
+%D dimensions can be used in calculations! By the way, the
+%D gain in speed can hardly be called impressive and is roughly
+%D 1 second on a 35 second run of 850 empty pages with a
+%D couple of backgrounds only (which is far less than one
+%D percent on a normal document).
+
+%D The next series of dimensions are complemented by left
+%D and rights ones.
+
+\newdimen \margindistance
+\newdimen \edgedistance
+\newdimen \marginwidth
+\newdimen \edgewidth
+
+%D Because a distance does not really makes sense when there
+%D is no area, we use a zero distance in case there is no
+%D area.
+
+\def\layoutdistance#1#2%
+ {\ifdim\zeropoint<#1\layoutparameter#2\else\zeropoint\fi}
+
+%D The horizontal distances are:
+
+\newdimen \leftedgedistance
+\newdimen \rightedgedistance
+\newdimen \leftmargindistance
+\newdimen \rightmargindistance
+
+%D The vertical distances are:
+
+\newdimen \topdistance
+\newdimen \headerdistance
+\newdimen \footerdistance
+\newdimen \bottomdistance
+
+%D We need to calculate the extra distances:
+
+\def\setlayoutdimensions
+ {\global\marginwidth \layoutparameter\c!margin
+ \global\edgewidth \layoutparameter\c!edge
+ \global\margindistance \layoutparameter\c!margindistance
+ \global\edgedistance \layoutparameter\c!edgedistance
+ \global\leftedgedistance \layoutdistance \leftedgewidth \c!leftedgedistance
+ \global\rightedgedistance \layoutdistance \rightedgewidth \c!rightedgedistance
+ \global\leftmargindistance \layoutdistance \leftmarginwidth \c!leftmargindistance
+ \global\rightmargindistance\layoutdistance \rightmarginwidth \c!rightmargindistance
+ \global\topdistance \layoutdistance \topheight \c!topdistance
+ \global\headerdistance \layoutdistance \headerheight \c!headerdistance
+ \global\footerdistance \layoutdistance \footerheight \c!footerdistance
+ \global\bottomdistance \layoutdistance \bottomheight \c!bottomdistance}
+
+\def\setlayoutdistances % local in \setreducedvsize
+ {\headerdistance\layoutdistance\headerheight\c!headerdistance
+ \footerdistance\layoutdistance\footerheight\c!footerdistance}
+
+% these are wrong in the running text, assumes some swapping, needs a cleanup
+
+\def\outermarginwidth {\rightorleftpageaction\rightmarginwidth \leftmarginwidth }
+\def\innermarginwidth {\rightorleftpageaction\leftmarginwidth \rightmarginwidth}
+\def\outermargindistance{\rightorleftpageaction\rightmargindistance\leftmargindistance }
+\def\innermargindistance{\rightorleftpageaction\leftmargindistance \rightmargindistance}
+
+\def\outeredgewidth {\rightorleftpageaction\rightedgewidth \leftedgewidth }
+\def\inneredgewidth {\rightorleftpageaction\leftedgewidth \rightedgewidth}
+\def\outeredgedistance {\rightorleftpageaction\rightedgedistance\leftedgedistance }
+\def\inneredgedistance {\rightorleftpageaction\leftedgedistance \rightedgedistance}
+
+\def\outerspacewidth {\rightorleftpageaction\cutspace\backspace}
+\def\innerspacewidth {\rightorleftpageaction\backspace\cutspace}
+
+\newtoks\extralayoutcalculations \def\calculatelayoutextras{\the\extralayoutcalculations}
+
+% \appendtoks
+% non etex calculations used to go here
+% \to \extralayoutcalculations
+
+\newtoks\everyswapmargins % watch the order !
+
+\appendtoks
+ \swapdimens\leftmargindistance\rightmargindistance
+ \swapdimens\leftedgedistance \rightedgedistance
+ \swapdimens\leftmarginwidth \rightmarginwidth
+ \swapdimens\leftedgewidth \rightedgewidth
+\to \everyswapmargins
+
+\appendtoks
+ \swapmacros\leftmargintotal \rightmargintotal
+ \swapmacros\leftedgetotal \rightedgetotal
+ \swapmacros\leftsidetotal \rightsidetotal
+ \swapmacros\leftcombitotal \rightcombitotal
+ \swapmacros\innermargintotal\outermargintotal
+ \swapmacros\inneredgetotal \outeredgetotal
+ \swapmacros\innercombitotal \outercombitotal
+ \swapmacros\innersidetotal \outersidetotal
+\to \everyswapmargins
+
+%D \macros
+%D {definepapersize}
+%D
+%D Before we start calculating layout dimensions, we will
+%D first take care of paper sizes. The first argument can be
+%D either an assignment (for defaults) or an identifier, in
+%D which case the second argument is an assignment.
+%D
+%D \showsetup{definepapersize}
+
+\def\definepapersize
+ {\dodoubleempty\dodefinepapersize}
+
+\def\definepapersize
+ {\dotripleempty\dodefinepapersize}
+
+\def\dodefinepapersize[#1][#2][#3]%
+ {\ifsecondargument
+ \doifsomething{#1} % to be sure
+ {\doifassignmentelse{#2}
+ {\getparameters
+ [\??pp#1] % geen \c!scale, scheelt hash ruimte
+ [\c!width=\@@ppwidth,\c!height=\@@ppheight,\c!offset=\@@ppoffset,#2]}
+ {\setvalue{\??pp:1:#1}{#2}%
+ \setvalue{\??pp:2:#1}{#3}}}%
+ \else
+ \getparameters[\??pp][#1]%
+ \setuppapersize % hm. this will freeze !
+ \fi}
+
+%D For the moment we need to fake this macro.
+
+\ifx\setuppapersize\undefined
+ \let\setuppapersize\relax
+\fi
+
+%D We set the defaults to the dimensions of an A4 sheet of
+%D paper.
+
+\definepapersize
+ [\c!width=210mm,\c!height=297mm,\c!offset=\zeropoint]
+
+%D Yet undocumented, let's see if it gets noticed.
+%D
+%D \starttyping
+%D \definepapersize[main] [A4] [A4]
+%D \definepapersize[extra][A4,landscape][A4,landscape]
+%D
+%D \starttext
+%D \setuppapersize[main]
+%D Page 1. \page
+%D Page 2. \page
+%D \setuppapersize[extra]
+%D Page 2 \page
+%D \setuppapersize[main]
+%D Page 3. \page
+%D Page 4. \page
+%D \adaptpapersize[extra]
+%D Page 5. \page
+%D Page 6. \page
+%D \stoptext
+%D \stoptyping
+
+%D \macros
+%D {setuppaper,setuppapersize}
+%D
+%D When setting up the papersize on which to typeset and
+%D print, we can also determine some more characteristics.
+%D
+%D \showsetup{setuppapersize}
+%D
+%D We keep track of these features with the following
+%D variables.
+
+\chardef\papermirror =0 \chardef\printmirror =0
+\chardef\paperorientation=0 \chardef\printorientation=0 % beware: later no chardef
+\chardef\paperreverse =0 \chardef\printreverse =0
+\chardef\paperlandscape =0 \chardef\printlandscape =0
+
+\let\papersize\empty \let\printpapersize\empty
+
+\def\paperscale{1} \newif\ifnegateprintbox
+
+\def\setuppaper[#1]%
+ {\getparameters[\??pp][\c!paper=,\c!page=,#1]%
+ \edef\@@ppxy{\the\numexpr\@@ppnx*\@@ppny\relax}%
+ \doifelsenothing\@@pppage
+ {\doifelsenothing\@@pppaper
+ {} % {\setuppapersize} % added, removed, no need for, too tricky, mag-01 (fixed by freezing pp's)
+ {\dodosetuppapersize[\papersize][\@@pppaper]}}
+ {\doifelsenothing\@@pppaper
+ {\dodosetuppapersize[\@@pppage][\printpapersize]}
+ {\dodosetuppapersize[\@@pppage][\@@pppaper]}}}
+
+\def\setuppapersize
+ {\dodoubleempty\dosetuppapersize}
+
+\def\dosetuppapersize[#1][#2]%
+ {\doifassignmentelse{#1}
+ {\setuppaper[#1]}
+ {\doifelsenothing{#2}
+ {\expanded{\dodosetuppapersize
+ [\executeifdefined{\??pp:1:#1}{#1}]%
+ [\executeifdefined{\??pp:2:#1}{}]}}
+ {\doifassignmentelse{#2}
+ {\getparameters[\??pp\executeifdefined{\??pp:1:#1}{#1}][#2]}
+ {\expanded{\dodosetuppapersize
+ [\executeifdefined{\??pp:1:#1}{#1}]%
+ [\executeifdefined{\??pp:1:#2}{#2}]}}}}}
+
+\let\reinstatepapersize\relax
+
+\def\adaptpapersize
+ {\global\let\reinstatepapersize\restorepapersize
+ \setuppapersize}
+
+\appendtoks
+ \reinstatepapersize
+ \global\let\reinstatepapersize\relax
+\to \everyaftershipout
+
+\def\dodosetuppapersize[#1][#2]%
+ {\ifsecondargument
+ \expanded{\dododosetuppapersize[#1][#2]}%
+ \calculatehsizes
+ \calculatevsizes
+ \recalculatebackgrounds
+ \recalculatelayout
+ \else\iffirstargument
+ \setuppapersize[#1][#2]%
+ \else\ifx\papersize\undefined\else
+ \restorepapersize
+ \fi\fi\fi}
+
+% dimen freeze is a bit tricky, but catches local redundant calls
+% with values where e.g width is defined in terms of \paperwidth
+
+\def\dododosetuppapersize[#1][#2]%
+ {\xdef\restorepapersize{\noexpand\setuppapersize[#1][#2]}%
+ \dosetuppaperorientation{#1}\paperlandscape\paperorientation\paperreverse\papermirror
+ \dosetuppaperorientation{#2}\printlandscape\printorientation\printreverse\printmirror
+ \def\docommand##1%
+ {\doifsomething{##1}{\doifdefined{\??pp##1\c!width}
+ {\global\paperwidth \getvalue{\??pp##1\c!width}%
+ \global\paperheight\getvalue{\??pp##1\c!height}%
+ \ifinpagebody
+ \setevalue{\??pp##1\c!height}{\the\paperheight}%
+ \setevalue{\??pp##1\c!width }{\the\paperwidth }%
+ \fi
+ \calculatepaperoffsets{##1}%
+ \xdef\papersize{##1}}}}%
+ \processcommacommand[#1]\docommand
+ \doifdefinedelse{\??pp#1\c!scale}
+ {\edef\paperscale{\getvalue{\??pp#1\c!scale}}}
+ {\edef\paperscale{1}}%
+ \def\docommand##1%
+ {\doifsomething{##1}{\doifdefined{\??pp##1\c!width}
+ {\global\printpaperwidth \getvalue{\??pp##1\c!width}%
+ \global\printpaperheight\getvalue{\??pp##1\c!height}%
+ \ifinpagebody
+ \setevalue{\??pp##1\c!height}{\the\printpaperheight}%
+ \setevalue{\??pp##1\c!width }{\the\printpaperwidth}%
+ \fi
+ \xdef\printpapersize{##1}}}}%
+ \processcommacommand[#2]\docommand
+ \global\setdimentoatleast\paperwidth \onepoint
+ \global\setdimentoatleast\paperheight \onepoint
+ \global\setdimentoatleast\printpaperwidth \onepoint
+ \global\setdimentoatleast\printpaperheight\onepoint
+ \ifcase\paperlandscape\else
+ \doglobal\swapdimens\paperwidth\paperheight
+ \fi
+ \ifcase\printlandscape\else
+ \doglobal\swapdimens\printpaperwidth\printpaperheight
+ \fi
+ % this check can be confusing, so we've added the possibility
+ % to bypass this test: \setuppapersize[option=fit]
+ \doif\@@ppoption\v!max % \v!fit is
+ {\bgroup
+ % we need to pre-swap else we get the wrong paper size
+ \ifcase\paperorientation\else
+ \doifinset\paperorientation{90,270}{\swapdimens\paperwidth\paperheight}%
+ \fi
+ \ifcase\printorientation\else
+ \doifinset\printorientation{90,270}{\swapdimens\printpaperwidth\printpaperheight}%
+ \fi
+ \ifdim\paperheight>\printpaperheight
+ \global\printpaperheight\paperheight
+ \writestatus\m!systems{print height forced to paper height}%
+ \fi
+ \ifdim\paperwidth>\printpaperwidth
+ \global\printpaperwidth\paperwidth
+ \writestatus\m!systems{print width forced to paper width}%
+ \fi
+ \egroup}}
+
+\def\dosetuppaperorientation#1#2#3#4#5%
+ {\global\chardef#2\zerocount
+ \global\chardef#5\zerocount
+ \globallet#3\!!zerocount
+ \globallet#4\!!zerocount
+ \global\negateprintboxfalse
+ \processallactionsinset
+ [#1]
+ [ \v!landscape=>\global\chardef#2\plusone,
+ \v!mirrored=>\global\chardef#5\plusone,
+ \v!rotated=>\gdef#3{90}\gdef#4{270},
+ \v!negative=>\global\negateprintboxtrue,
+ 90=>\gdef#3{90}\gdef#4{270},
+ 180=>\gdef#3{180}\gdef#4{0},
+ 270=>\gdef#3{270}\gdef#4{90}]}
+
+\ifx\calculatepaperoffsets\undefined
+
+ \def\calculatepaperoffsets#1%
+ {\scratchdimen\getvalue{\??pp#1\c!offset}%
+ \global\advance\paperwidth -2\scratchdimen
+ \global\advance\paperheight-2\scratchdimen}
+
+\fi
+
+\let\restorepapersize\relax
+
+% \def\docheckforems#1%
+% {\beforesplitstring#1\at em\to\asciia
+% \doifnot\asciia{#1}
+% {\aftersplitstring\asciia\at=\to\asciia
+% \doifsomething\asciia{\showmessage\m!systems{10}{#1}}}}
+%
+% \def\checkforems[#1]%
+% {\processcommalist[#1]\docheckforems}
+
+\ifx\setups\undefined \def\setups[#1]{\setdefaultpenalties} \fi
+
+% \newtoks \everybeforelayout \relax
+% \newtoks \everyafterlayout \relax
+
+\def\recalculatelayout
+ {\doifsomething{\layoutparameter\c!page\layoutparameter\c!paper}
+ {\expanded{\dododosetuppapersize[\layoutparameter\c!page][\layoutparameter\c!paper]}}%
+ \dorecalculatelayout}
+
+\def\dorecalculatelayout
+ {%\the\everybeforelayout
+ \setups[\layoutparameter\c!preset]%
+ \global\leftmarginwidth \layoutparameter\c!leftmargin
+ \global\rightmarginwidth\layoutparameter\c!rightmargin
+ \global\leftedgewidth \layoutparameter\c!leftedge
+ \global\rightedgewidth \layoutparameter\c!rightedge
+ \global\headerheight \layoutparameter\c!header
+ \global\footerheight \layoutparameter\c!footer
+ \global\bottomheight \layoutparameter\c!bottom
+ \global\topheight \layoutparameter\c!top
+ \global\backspace \layoutparameter\c!backspace
+ \global\topspace \layoutparameter\c!topspace
+ \setlayoutdimensions % the rest of the `dimensions'
+ \doifelse\@@lygrid\v!yes\gridsnappingtrue\gridsnappingfalse
+ \ifgridsnapping
+ \setsystemmode\v!grid
+ \else
+ \resetsystemmode\v!grid
+ \fi
+ \setups[\layoutparameter\c!setups]% depends on gridsnapping !
+ \simplesetupwhitespace
+ \simplesetupblank
+ \global\cutspace\layoutparameter\c!cutspace
+ \relax
+ \doifelse{\layoutparameter\c!width}\v!middle
+ {\ifdim\cutspace=\zeropoint
+ \global\cutspace\backspace
+ \fi
+ \global\makeupwidth\dimexpr\paperwidth-\backspace-\cutspace\relax}
+ {\doifelse{\layoutparameter\c!width}\v!fit
+ {\ifdim\cutspace=\zeropoint
+ \global\cutspace\backspace
+ \fi
+ \global\makeupwidth\dimexpr\paperwidth-\cutspace\relax
+ \scratchdimen\dimexpr\backspace
+ -\leftedgewidth -\leftedgedistance
+ -\leftmarginwidth-\leftmargindistance\relax
+ \ifdim\scratchdimen<\zeropoint
+ \scratchdimen\zeropoint
+ \fi
+ \global\advance\makeupwidth\dimexpr
+ -\rightmargindistance-\rightmarginwidth
+ -\rightedgedistance -\rightedgewidth
+ -\scratchdimen\relax}
+ {\global\makeupwidth\layoutparameter\c!width\relax
+ \ifdim\cutspace=\zeropoint
+ \global\cutspace\dimexpr\paperwidth-\makeupwidth-\backspace\relax
+ % \else
+ % A kind of inconsistent specification, but used
+ % in for instance s-pre-19.tex; the cutspace is
+ % used only for determining some kind of right
+ % margin; don't use this in doublesided mode
+ \fi}}%
+ \scratchdimen\layoutparameter\c!bottomspace\relax
+ %\ifdim\scratchdimen=\zeropoint
+ % \scratchdimen\topspace
+ %\fi
+ \global\bottomspace\layoutparameter\c!bottomspace\relax
+ \global\layoutlines0\number\layoutparameter\c!lines\relax % may be empty
+ \ifcase\layoutlines
+ \doifelse{\layoutparameter\c!height}\v!middle
+ {\ifdim\bottomspace=\zeropoint
+ \global\bottomspace\topspace
+ \fi
+ \global\makeupheight\dimexpr\paperheight-\topspace-\bottomspace\relax}
+ {\doifelse{\layoutparameter\c!height}\v!fit
+ {\ifdim\bottomspace=\zeropoint
+ \global\bottomspace\topspace
+ \fi
+ \global\makeupheight\dimexpr\paperheight-\bottomspace\relax
+ \scratchdimen\dimexpr\topspace-\topheight-\topdistance\relax
+ \ifdim\scratchdimen<\zeropoint
+ \scratchdimen\zeropoint
+ \fi
+ \global\advance\makeupheight\dimexpr-\bottomdistance-\bottomheight-\scratchdimen\relax}
+ {\global\makeupheight\layoutparameter\c!height\relax
+ \ifdim\bottomspace=\zeropoint
+ \global\bottomspace\dimexpr\paperheight-\makeupheight-\topspace\relax
+ \else
+ % inconsistent specification
+ \fi}}%
+ \else
+ % beware, when the bodyfont changes (switched) this will change as well; implementing
+ % a global lineheight is tricky: should we take the bodyfont interlinespace or the one set
+ % independent of the bodyfont (before or after a layout spec); way too fuzzy, so we
+ % stick to the current method (after a night of experimenting ...2003/10/13)
+ \global\makeupheight\dimexpr
+ \layoutparameter\c!lines\lineheight-\strutheight+\topskip+
+ \headerdistance+\headerheight+\footerdistance+\footerheight\relax
+ \fi
+ \backoffset\layoutparameter\c!horoffset
+ \topoffset \layoutparameter\c!veroffset
+ \global\setdimentoatleast\makeupwidth\onepoint
+ \global\setdimentoatleast\makeupheight \onepoint
+ % \checkcurrentlayout % here ?
+ % \the\everyafterlayout
+ \calculatelayoutextras
+ \calculatehsizes
+ \calculatevsizes
+ \calculatepseudocolumns
+ \checkgridsnapping
+ \recalculatebackgrounds}
+
+\def\calculatepseudocolumns
+ {\global\layoutcolumns\layoutparameter\c!columns
+ \global\layoutcolumndistance\layoutparameter\c!columndistance
+ \global\layoutcolumnwidth\dimexpr\makeupwidth-\layoutcolumns\layoutcolumndistance+\layoutcolumndistance\relax
+ \global\divide\layoutcolumnwidth\layoutcolumns
+ \dorecurse\layoutcolumns
+ {\setxvalue{\??ly:c:\recurselevel}%
+ {\the\numexpr\recurselevel-\plusone\relax\dimexpr\layoutcolumnwidth+\layoutcolumndistance\relax}}}
+
+%\dorecurse\layoutcolumns
+% {\setxvalue{\??ly:c:\recurselevel}{\the\dimexpr
+% (\numexpr(\recurselevel-1)\dimexpr(\layoutcolumnwidth+\layoutcolumndistance))}}
+
+\def\layoutcolumnoffset#1%
+ {\executeifdefined{\??ly:c:#1}\zeropoint}
+
+\def\checklayout
+ {\ifdim\makeupheight=\layoutlines\lineheight \else \recalculatelayout \fi}
+
+\appendtoks \checklayout \to \everystarttext
+
+% document:
+%
+% \setuplayout[odd][state=stop] \setuplayout[even][state=stop] \setuplayout[page]
+%
+% \startstandardmakeup[page=blank] ... \stopstandardmakeup
+
+\def\changetolayout#1%
+ {%\writestatus\m!layouts{changing to layout #1}%
+ \xdef\currentlayout{#1}\recalculatelayout}
+
+\def\checkcurrentoddlayout
+ {\ifcsname\??ly\v!odd\c!state\endcsname
+ \doifvalue{\??ly\v!odd\c!state}\v!start{\changetolayout\v!odd}%
+ \fi}
+
+\def\checkcurrentevenlayout
+ {\ifcsname\??ly\v!even\c!state\endcsname
+ \doifvalue{\??ly\v!even\c!state}\v!start{\changetolayout\v!even}%
+ \fi}
+
+\ifx\lastpage\undefined \def\lastpage{1} \fi
+
+\def\reverserealfolio
+ {\ifnum\lastpage>\plusone
+ \ifnum\lastpage=\realfolio
+ \v!last
+ \else\ifnum\plusone=\realfolio
+ \v!first
+ \else
+ \the\numexpr\realfolio-\lastpage\relax
+ \fi\fi
+ \else
+ \!!zerocount
+ \fi}
+
+\def\checkcurrentlayout % public and used in naw, so keep this name
+ {\ifcsname\??ly\realfolio\c!state\endcsname
+ \doifvalue{\??ly\realfolio\c!state}\v!start{\changetolayout\realfolio}%
+ \else\ifcsname\??ly\reverserealfolio\c!state\endcsname
+ \doifvalue{\??ly\reverserealfolio\c!state}\v!start{\changetolayout\reverserealfolio}%
+ \else\ifcsname\??ly\v!current\c!state\endcsname
+ \changetolayout\v!current % no start test ?
+ \else
+ \doifoddpageelse\checkcurrentoddlayout\checkcurrentevenlayout
+ \fi\fi\fi}
+
+% testcase
+%
+% \setuppagenumbering[alternative=doublesided]
+%
+% \setuplayout [width=11cm]
+% \definelayout [odd] [backspace=1cm]
+% \definelayout [even] [backspace=4cm]
+% \definelayout [5] [backspace=5cm]
+% \definelayout [6] [backspace=5cm]
+% \definelayout [-2] [backspace=0cm,cutspace=0cm]
+% \definelayout [last] [backspace=0cm,cutspace=0cm]
+%
+% \checkcurrentlayout \showframe
+%
+% \starttext
+% \dorecurse{20} {\input knuth \endgraf \input tufte \endgraf}
+% \stoptext
+
+%appendtoks \checkcurrentlayout \to \everyaftershipout % no
+\appendtoks \checkcurrentlayout \to \everystarttext
+
+\appendtoks
+ \dochecknextlayout
+\to \everyaftershipout
+
+% \def\dochecknextlayout
+% {\ifx\currentlayout\v!current
+% % prevent redundant calculations
+% \else
+% \globallet\currentlayout\empty
+% \global\letbeundefined{\??ly\v!current\c!state}%
+% \checkcurrentlayout
+% \fi}
+%
+% this breaks after a standardmakeup
+
+\def\dochecknextlayout{\checkcurrentlayout}
+
+\newif\ifdoublesidedprint
+
+\def\presetcenterpagebox % in \setuplayout !!!!!!!!!!!!!!!!
+ {\doublesidedprintfalse
+ \normalexpanded{\noexpand\processallactionsinset[\@@lylocation]}
+ [ \v!middle=>{\setuppapersize[\c!left=\hss,\c!right=\hss,\c!top=\vss,\c!bottom=\vss]},
+ \v!left=>{\setuppapersize[\c!left=,\c!right=\hss]},
+ \v!right=>{\setuppapersize[\c!left=\hss,\c!right=]},
+ \v!bottom=>{\setuppapersize[\c!top=\vss,\c!bottom=]},
+ \v!top=>{\setuppapersize[\c!top=,\c!bottom=\vss]},%
+ \v!doublesided=>\doublesidedprinttrue,
+ \v!singlesided=>\doublesidedprintfalse]}
+
+\def\definelayout
+ {\dodoubleargument\dodefinelayout}
+
+\def\dodefinelayout[#1][#2]%
+ {\getparameters[\??ly#1][\c!state=\v!start,#2]}
+
+% \def\dodosetuplayout[#1][#2]%
+% {\ConvertToConstant\doifnot{#2}\v!reset % #2 ?
+% {\getparameters[\??ly#1][#2]%
+% \checkforems[#2]}}
+
+\def\dodosetuplayout[#1][#2]%
+ {\doifnot{#2}\v!reset{\getparameters[\??ly#1][#2]}}
+
+% global needed for non-doublesided standardmakeup
+
+\def\dosetuplayout[#1][#2]%
+ {\globallet\currentlayout\empty % new, global
+ \ifsecondargument
+ \dodosetuplayout[#1][#2]%
+ \else\iffirstargument
+ \doifassignmentelse{#1}
+ {\dodosetuplayout[][#1]}
+ {\doifnot{#1}\v!reset{\xdef\currentlayout{#1}}}% new, global
+ \fi\fi
+ \recalculatelayout
+ \checkcurrentlayout % here ?
+ \presetcenterpagebox}
+
+\def\setuplayout
+ {\dodoubleempty\dosetuplayout}
+
+\let\@@zaheight\!!zeropoint
+
+\def\dopushpagedimensions
+ {\xdef\oldtextheight {\the\textheight }%
+ \xdef\oldfooterheight{\the\footerheight}%
+ \global\let\@@zaheight\@@zaheight}
+
+\def\dopoppagedimensions
+ {\global\textheight \oldtextheight
+ \global\footerheight\oldfooterheight
+ \recalculatelayout
+ \global\let\pushpagedimensions\dopushpagedimensions
+ \global\let\poppagedimensions\relax}
+
+\let\poppagedimensions \relax
+\let\pushpagedimensions\dopushpagedimensions
+
+% Elke \csname ... \endcsname wordt ook aangemaakt, dus ook
+% in een test met \doifdefined. Bij veel bladzijden kan dit
+% te veel macro's kosten. Vandaar de set \adaptedpages. Het
+% kost tijd, maar scheelt macro's.
+
+\let\adaptedpages\empty
+
+\def\adaptpagedimensions
+ {\ifx\adaptedpages\empty\else
+ \adaptpagedimensionsindeed
+ \fi}
+
+\def\adaptpagedimensionsindeed
+ {\rawdoifinsetelse\realfolio\adaptedpages
+ {\removefromcommalist\realfolio\adaptedpages
+ \getvalue{\??za\realfolio}%
+ \letbeundefined{\??za\realfolio}}}
+
+\def\checkpagedimensions
+ {\poppagedimensions
+ \adaptpagedimensions}
+
+\def\reportpagedimensions
+ {\ifx\poppagedimensions\relax \else
+ \space\the\dimexpr\@@zaheight\relax\space-\space
+ \fi
+ \realfolio}
+
+\def\dodoadaptlayout[#1]%
+ {\getparameters[\??za][\c!height=,\c!lines=0,#1]%
+ \pushpagedimensions
+ \ifcase\@@zalines\relax
+ \showmessage\m!layouts1{\@@zaheight,\realfolio}%
+ \else
+ \showmessage\m!layouts1{\@@zalines\space\v!lines,\realfolio}%
+ \def\@@zaheight{\@@zalines\openlineheight}%
+ \fi
+ \doifelse\@@zaheight\v!max
+ {\balancedimensions\textheight\footerheight\footerheight}
+ {\balancedimensions\textheight\footerheight\@@zaheight}%
+ \ifdim\footerheight<\zeropoint
+ \global\advance\textheight \footerheight
+ \global\footerheight\zeropoint
+ \global\xdef\@@zaheight{\layoutparameter\c!footer\space(\v!max)}%
+ \fi
+ \setvsize
+ \global\pagegoal\vsize % nog corrigeren voor insertions ?
+ \recalculatebackgrounds
+ \global\let\pushpagedimensions\relax
+ \global\let\poppagedimensions\dopoppagedimensions}
+
+\def\doadaptlayout[#1][#2]%
+ {\doifelsenothing{#2}
+ {\dodoadaptlayout[#1]}
+ {\def\docommand##1%
+ {\addtocommalist{##1}\adaptedpages
+ \setgvalue{\??za##1}{\dodoadaptlayout[#2]}}%
+ \processcommalist[#1]\docommand
+ \adaptpagedimensions}}
+
+\def\adaptlayout
+ {\dodoubleempty\doadaptlayout}
+
+% describe interface
+
+%D Centering the paper area on the print area is determined
+%D by the \type {top}, \type {bottom}, \type {left} and \type
+%D {right} parameters.
+
+\def\centerpagebox#1%
+ {\printpaperwidth \paperscale\printpaperwidth
+ \printpaperheight\paperscale\printpaperheight
+ \setbox#1\vbox to \printpaperheight
+ {\@@pptop
+ \hbox to \printpaperwidth
+ {\ifdoublesidedprint
+ \doifbothsides
+ {\@@ppleft \box#1\@@ppright}
+ {\@@ppleft \box#1\@@ppright}
+ {\@@ppright\box#1\@@ppleft }%
+ \else
+ \@@ppleft \box#1\@@ppright
+ \fi}%
+ \par
+ \@@ppbottom}}
+
+\def\offsetprintbox#1%
+ {\ifdim\topoffset=\zeropoint % \relax
+ \ifdim\backoffset=\zeropoint
+ \donefalse
+ \else
+ \donetrue
+ \fi
+ \else
+ \donetrue
+ \fi
+ \ifdone
+ \edef\next{\wd#1\the\wd#1\ht#1\the\ht#1\dp#1\the\dp#1}%
+ \setbox#1\vbox
+ {\offinterlineskip
+ \vskip\topoffset
+ \hskip\doifbothsides\backoffset\backoffset{-\backoffset}%
+ \box#1}%
+ \next
+ \fi}
+
+\def\replicatepagebox#1%
+ {\ifnum\@@lynx>\plusone
+ \donetrue
+ \else\ifnum\@@lyny>\plusone
+ \donetrue
+ \else
+ \donefalse
+ \fi\fi
+ \ifdone
+ \setbox#1\vbox
+ {\offinterlineskip
+ \dorecurse\@@lyny
+ {\hbox{\dorecurse\@@lynx{\copy#1\hskip\@@lydx}\unskip}%
+ \vskip\@@lydy}
+ \unskip}%
+ \fi}
+
+\def\orientpagebodybox#1#2#3%
+ {\ifnum#2#3>\zerocount
+ \setbox#1\vbox
+ {\edef\somerotation{\ifdoublesided\ifodd\realpageno#2\else#3\fi\else#2\fi}%
+ \dorotatebox\somerotation\hbox{\box#1}}%
+ \fi}
+
+\def\orientpaperbox#1%
+ {\orientpagebodybox{#1}\paperorientation\paperreverse}
+
+\def\orientprintbox#1%
+ {\orientpagebodybox{#1}\printorientation\printreverse}
+
+\def\mirrorpagebodybox#1#2%
+ {\ifcase#2\or
+ \setbox#1\vbox{\domirrorbox\vbox{\box#1}}%
+ \fi}
+
+\def\mirrorpaperbox#1%
+ {\mirrorpagebodybox{#1}\papermirror}
+
+\def\mirrorprintbox#1%
+ {\mirrorpagebodybox{#1}\printmirror}
+
+\def\scalepagebox#1%
+ {\ifdim\@@lyscale\points=\onepoint \else
+ \setbox#1\vbox{\scale[\c!sx=\@@lyscale,\c!sy=\@@lyscale]{\box#1}}%
+ \paperwidth \@@lyscale\paperwidth
+ \paperheight\@@lyscale\paperheight
+ \fi}
+
+\def\negateprintbox#1%
+ {\ifnegateprintbox
+ \negatecolorbox{#1}%
+ \fi}
+
+\def\pagecutmarksymbol {\the\realpageno}
+\def\pagecutmarklength {.5cm}
+\let\pagecutmarktoptext \empty
+\let\pagecutmarkbottomtext \empty
+
+\def\extrapagecutmarkbottomtext
+ {\rlap{\jobname}\hfill\currentdate\space-\space\currenttime\hfill\llap{\realfolio}}
+
+\def\makepagecutbox % #1
+ {\let\cutmarksymbol \pagecutmarksymbol
+ \let\cutmarklength \pagecutmarklength
+ \let\cutmarktoptext \pagecutmarktoptext
+ \let\cutmarkbottomtext\pagecutmarkbottomtext
+ \makecutbox}
+
+\setvalue{\??ly:n:\c!marking:\v!on}%
+ {\makepagecutbox}
+
+\setvalue{\??ly:n:\c!marking:\v!page}% only at outer when nx/ny > 0
+ {\makepagecutbox}
+
+\setvalue{\??ly:n:\c!marking:\v!empty}%
+ {\let\pagecutmarksymbol\empty
+ \let\pagecutmarktoptext\empty
+ \let\pagecutmarkbottomtext\empty
+ \makepagecutbox}
+
+\setvalue{\??ly:n:\c!marking:\v!text}%
+ {\let\pagecutmarksymbol\empty
+ \let\pagecutmarkbottomtext\extrapagecutmarkbottomtext
+ \makepagecutbox}
+
+\setvalue{\??ly:c:\c!marking:\v!color}%
+ {\doaddpagecolormarks\colormarkbox}
+
+\setvalue{\??ly:c:\c!marking:\v!screen}%
+ {\doaddpagecolormarks\rastermarkbox}
+
+\letvalue{\??ly:c:\c!marking:\v!unknown}\gobbleoneargument
+\letvalue{\??ly:n:\c!marking:\v!unknown}\gobbleoneargument
+
+% \def\addpagecutmarks {\executeifdefined{\??ly:n:\c!marking:\@@lymarking}\gobbleoneargument}
+% \def\addpagecolormarks{\executeifdefined{\??ly:c:\c!marking:\@@lymarking}\gobbleoneargument}
+
+\def\addpagecutmarks {\expandcheckedcsname{\??ly:n:\c!marking:}\@@lymarking\s!unknown}
+\def\addpagecolormarks{\expandcheckedcsname{\??ly:c:\c!marking:}\@@lymarking\s!unknown}
+
+\def\doaddpagecolormarks#1#2%
+ {\makepagecutbox{#2}%
+ \ifnum\horizontalcutmarks>\plustwo \chardef\colormarkoffset\plusfour \fi
+ \ifnum\verticalcutmarks >\plustwo \chardef\colormarkoffset\plusfour \fi
+ #1{#2}}
+
+% NOG EENS NAGAAN WANNEER NU GLOBAL EN WANNEER NIET
+
+\ifx\doifelselayoutsomeline\undefined % defined in page-txt
+ \let\doifelselayoutsomeline\secondofthreearguments
+\fi
+
+\def\compensatevsizeheader {\advance\textheight-\dimexpr\headerheight+\headerdistance\relax}
+\def\compensatevsizefooter {\advance\textheight-\dimexpr\footerheight+\footerdistance\relax}
+\def\globalcompensatevsizeheader{\global\advance\textheight-\dimexpr\headerheight+\headerdistance\relax}
+\def\globalcompensatevsizefooter{\global\advance\textheight-\dimexpr\footerheight+\footerdistance\relax}
+
+\def\compensatevsizeheaderzero{\headerheight\zeropoint\setlayoutdistances}
+\def\compensatevsizefooterzero{\footerheight\zeropoint\setlayoutdistances}
+
+\def\calculatevsizes
+ {\textheight\makeupheight
+ \doifelselayoutsomeline\v!header\compensatevsizeheader\donothing
+ \doifelselayoutsomeline\v!footer\compensatevsizefooter\donothing
+ \setvsizemodes
+ \resetglobal
+ \setvsize}
+
+\def\calculateglobalvsizes
+ {\global\textheight\makeupheight
+ \doifelselayoutsomeline\v!header\globalcompensatevsizeheader\donothing
+ \doifelselayoutsomeline\v!footer\globalcompensatevsizefooter\donothing
+ \setvsizemodes
+ \setvsize}
+
+\def\setvsizemodes
+ {\ifzeropt\headerheight
+ \resetsystemmode\v!header
+ \else
+ \setsystemmode\v!header
+ \fi
+ \ifzeropt\footerheight
+ \resetsystemmode\v!footer
+ \else
+ \setsystemmode\v!footer
+ \fi}
+
+\def\calculatereducedvsizes
+ {\textheight\makeupheight
+ \doifelselayoutsomeline\v!header\compensatevsizeheader\compensatevsizeheaderzero
+ \doifelselayoutsomeline\v!footer\compensatevsizefooter\compensatevsizefooterzero}
+
+\newdimen\innermakeupwidth % special purpose
+\newdimen\innermakeupmargin % special purpose
+
+\chardef\innermakeupcompensation\plusone
+
+\def\compensatedinnermakeupmargin
+ {\dimexpr\ifnum\innermakeupcompensation=\plusone+\innermakeupmargin\else\zeropoint\fi\relax}
+
+\def\freezetextwidth % \makeupwidth may be set to \textwidth
+ {\textwidth\makeupwidth % which is a tricky but valid value
+ \doifsomething{\layoutparameter\c!textwidth}
+ {\textwidth\layoutparameter\c!textwidth}% % local
+ \global\innermakeupwidth\textwidth
+ \doifelsenothing{\layoutparameter\c!textmargin}
+ {\global\innermakeupmargin\zeropoint}
+ {\global\innermakeupmargin\layoutparameter\c!textmargin}%
+ \global\advance\innermakeupwidth-\dimexpr\innermakeupmargin+\innermakeupmargin\relax
+ \advance\textwidth-\dimexpr\innermakeupmargin+\innermakeupmargin\relax} % local
+
+\def\calculatehsizes
+ {\freezetextwidth
+ \sethsize}
+
+% De onderstaande macro voert commando's uit, afhankelijk van
+% het karakter van het paginanummer.
+%
+% \doifoddpageelse{then-commando}{else-commando}
+
+%D When we start at an even page, we need to swap the layout
+%D differently. We cannot adapt the real page number, since
+%D it is used in cross referencing. The next switch is set
+%D when we start at an even page.
+
+\newif\ifshiftedrealpageno
+
+% We could use nested if here plu ssone \@EAEAEA's but but the
+% next variant has less expansion which is nicer in tracing.
+
+\def\doifoddpageelse {\ifshiftedrealpageno\expandafter\doifoddpageelseyes\else\expandafter\doifoddpageelsenop\fi}
+\def\doifoddpageelseyes{\ifodd\realpageno\expandafter\secondoftwoarguments\else\expandafter\firstoftwoarguments\fi}
+\def\doifoddpageelsenop{\ifodd\realpageno\expandafter\firstoftwoarguments\else\expandafter\secondoftwoarguments\fi}
+
+\let\doifonevenpaginaelse\doifoddpageelse
+
+\def\redoifoddpageelse#1{\doifoddpageelse}
+
+\def\doifbothsidesoverruled
+ {\ifdoublesided
+ \expandafter\redoifoddpageelse
+ \else
+ \expandafter\firstofthreearguments
+ \fi}
+
+\def\doifbothsides% #1 #2 #3
+ {\ifdoublesided
+ \expandafter\doifbothsidesindeed
+ \else
+ \expandafter\firstofthreearguments
+ \fi}
+
+\def\doifbothsidesindeed
+ {\ifsinglesided
+ \expandafter\firstofthreearguments
+ \else
+ \expandafter\redoifoddpageelse
+ \fi}
+
+\newdimen\texthoffset
+
+\def\settexthoffset
+ {\texthoffset\doifbothsides\backspace\backspace{\dimexpr\paperwidth-\backspace-\makeupwidth\relax}}
+
+\def\goleftonpage
+ {\hskip-\dimexpr\leftmargindistance+\leftmarginwidth+\leftedgedistance+\leftedgewidth\relax}
+
+\def\doifmarginswapelse#1#2%
+ {\doifbothsides{#1}{#1}{#2}}
+
+\def\swapmargins
+ {\doifmarginswapelse\relax\doswapmargins}
+
+\def\doswapmargins
+ {\let\swapmargins \relax % to prevent local swapping
+ \let\doswapmargins\relax % to prevent local swapping
+ \the\everyswapmargins}
+
+\def\rightorleftpageaction
+ {\ifdoublesided
+ \expandafter\rightorleftpageactionindeed
+ \else
+ \expandafter\firstoftwoarguments
+ \fi}
+
+\def\rightorleftpageactionindeed
+ {\ifsinglesided
+ \expandafter\firstoftwoarguments
+ \else
+ \expandafter\doifoddpageelse
+ \fi}
+
+\def\outermarginwidth {\rightorleftpageaction\rightmarginwidth \leftmarginwidth }
+\def\innermarginwidth {\rightorleftpageaction\leftmarginwidth \rightmarginwidth}
+\def\outermargindistance{\rightorleftpageaction\rightmargindistance\leftmargindistance }
+\def\innermargindistance{\rightorleftpageaction\leftmargindistance \rightmargindistance}
+
+\def\outeredgewidth {\rightorleftpageaction\rightedgewidth \leftedgewidth }
+\def\inneredgewidth {\rightorleftpageaction\leftedgewidth \rightedgewidth}
+\def\outeredgedistance {\rightorleftpageaction\rightedgedistance\leftedgedistance }
+\def\inneredgedistance {\rightorleftpageaction\leftedgedistance \rightedgedistance}
+
+\def\outerspacewidth {\rightorleftpageaction\cutspace \backspace}
+\def\innerspacewidth {\rightorleftpageaction\backspace\cutspace }
+
+\def\leftmargintotal {\dimexpr\leftmarginwidth +\leftmargindistance \relax}
+\def\rightmargintotal {\dimexpr\rightmarginwidth+\rightmargindistance\relax}
+\def\leftedgetotal {\dimexpr\leftedgewidth +\leftedgedistance \relax}
+\def\rightedgetotal {\dimexpr\rightedgewidth +\rightedgedistance \relax}
+
+\def\leftsidetotal {\dimexpr\leftmarginwidth +\leftedgetotal \relax}
+\def\rightsidetotal {\dimexpr\rightmarginwidth+\rightedgetotal\relax}
+\def\leftcombitotal {\dimexpr\leftmargintotal +\leftedgetotal \relax}
+\def\rightcombitotal {\dimexpr\rightmargintotal+\rightedgetotal\relax}
+
+\def\innermargintotal {\dimexpr\innermarginwidth+\innermargindistance\relax}
+\def\outermargintotal {\dimexpr\outermarginwidth+\outermargindistance\relax}
+\def\inneredgetotal {\dimexpr\inneredgewidth +\inneredgedistance \relax}
+\def\outeredgetotal {\dimexpr\outeredgewidth +\outeredgedistance \relax}
+
+\def\innercombitotal {\dimexpr\innermargintotal+\inneredgetotal\relax}
+\def\outercombitotal {\dimexpr\outermargintotal+\outeredgetotal\relax}
+\def\innersidetotal {\dimexpr\innermarginwidth+\inneredgetotal\relax}
+\def\outersidetotal {\dimexpr\outermarginwidth+\outeredgetotal\relax}
+
+%D \macros
+%D {startlocallayout}
+%D
+%D These macros should be used with care. They permit local
+%D layouts (as used in fitting pages, see \type {page-app.tex}).
+
+%D This is kind of obsolete now that we have \type
+%D {\definelayout}, so this hack will disappear in future
+%D versions.
+
+\def\startlocallayout
+ {\globalpushmacro\restorepapersize
+ \globalpushmacro\currentlayout}
+
+\def\stoplocallayout
+ {\globalpopmacro\currentlayout
+ \globalpopmacro\restorepapersize
+ \restorepapersize
+ \setuplayout}
+
+%D \macros
+%D {showprint, showframe, showlayout, showsetups}
+%D
+%D We predefine a couple of tracing macros.
+%D
+%D \showsetup{showprint}
+%D \showsetup{showframe}
+%D \showsetup{showlayout}
+%D \showsetup{showsetups}
+%D %showsetup{showmargins}
+
+\fetchruntimecommand \showprint {page-run.mkii}
+\fetchruntimecommand \showframe {page-run.mkii}
+\fetchruntimecommand \showlayout {page-run.mkii}
+\fetchruntimecommand \showsetups {page-run.mkii}
+\fetchruntimecommand \showmargins {page-run.mkii}
+
+%D The default dimensions are quite old and will not change.
+%D The funny fractions were introduced when we went from fixed
+%D dimensions to relative ones. Since \CONTEXT\ is a dutch
+%D package, the dimensions are based on the metric system. The
+%D asymmetrical layout is kind of handy for short
+%D quick||and||dirty stapled documents.
+%D
+%D Although valid, it is not a real good idea to use
+%D dimensions based on the \type {em} unit. First of all,
+%D since there are no fonts loaded yet, this dimension makes
+%D no sense, and second, you would loose track of values,
+%D since they could change while going to a new page,
+%D depending on the current font setting.
+
+\setuplayout
+ [ \c!topspace=.08417508418\paperheight, % 2.5cm
+ \c!top=\zeropoint,
+ \c!topdistance=\zeropoint,
+ \c!header=.06734006734\paperheight, % 2.0cm
+ \c!headerdistance=\zeropoint,
+ \c!height=.84175084175\paperheight, % 25.0cm
+ \c!footerdistance=\layoutparameter\c!headerdistance,
+ \c!footer=.06734006734\paperheight, % 2.0cm
+ \c!bottomdistance=\layoutparameter\c!topdistance,
+ \c!bottom=\zeropoint,
+ \c!backspace=.11904761905\paperwidth, % 2.5cm
+ \c!edge=\zeropoint,
+ \c!edgedistance=\layoutparameter\c!margindistance,
+ \c!margin=.12649983170\paperwidth, % snijwit-2*afstand
+ \c!margindistance=.02008341748\paperwidth, % 12.0pt
+ \c!leftedge=\layoutparameter\c!edge,
+ \c!leftedgedistance=\layoutparameter\c!edgedistance,
+ \c!leftmargin=\layoutparameter\c!margin,
+ \c!leftmargindistance=\layoutparameter\c!margindistance,
+ \c!width=.71428571429\paperwidth, % 15.0cm
+ \c!rightmargindistance=\layoutparameter\c!margindistance,
+ \c!rightmargin=\layoutparameter\c!margin,
+ \c!rightedgedistance=\layoutparameter\c!edgedistance,
+ \c!rightedge=\layoutparameter\c!edge,
+ \c!veroffset=\zeropoint,
+ \c!bottomspace=\zeropoint,
+ \c!horoffset=\zeropoint,
+ \c!cutspace=\zeropoint,
+ \c!textwidth=, % dangerous option -> centered / local
+ \c!textmargin=, % dangerous option -> both sides
+ \c!textdistance=\zeropoint, % shift down on grid
+ \c!style=,
+ \c!color=,
+ \c!marking=\v!off,
+ \c!location=, % \v!singlesided, but empty is signal
+ \c!scale=1,
+ \c!nx=1,
+ \c!ny=1,
+ \c!dx=\zeropoint,
+ \c!dy=\zeropoint,
+ \c!grid=\v!no,
+ \c!preset=,
+ \c!setups=\systemsetupsprefix\s!default,
+ \c!clipoffset=\zeropoint,
+ \c!lines=0,
+ \c!paper=, % for foxet
+ \c!page=, % for foxet
+ \c!columns=1,
+ \c!columndistance=\zeropoint]
+
+%D First we define a whole range of (DIN) papersizes,
+%D of which the A-series makes most sense. We enable checking.
+
+%D We also set some of the parameters that will be used when
+%D positioning the typeset paper onto the print paper.
+
+\setuppaper % (size) % only used in XY imposition
+ [\c!width=\zeropoint,
+ \c!height=\zeropoint,
+ \c!topspace=\zeropoint,
+ \c!backspace=\zeropoint,
+ \c!dx=\zeropoint,
+ \c!dy=\zeropoint,
+ \c!nx=1,
+ \c!ny=1,
+ \c!method=\v!normal]
+
+\setuppapersize
+ [\c!option=\v!max,
+ \c!top=,
+ \c!bottom=\vss,
+ \c!left=,
+ \c!right=\hss]
+
+\definepapersize [A0] [\c!width=841mm,\c!height=1189mm]
+\definepapersize [A1] [\c!width=594mm,\c!height=841mm]
+\definepapersize [A2] [\c!width=420mm,\c!height=594mm]
+\definepapersize [A3] [\c!width=297mm,\c!height=420mm]
+\definepapersize [A4] [\c!width=210mm,\c!height=297mm]
+\definepapersize [A5] [\c!width=148mm,\c!height=210mm]
+\definepapersize [A6] [\c!width=105mm,\c!height=148mm]
+\definepapersize [A7] [\c!width=74mm,\c!height=105mm]
+\definepapersize [A8] [\c!width=52mm,\c!height=74mm]
+\definepapersize [A9] [\c!width=37mm,\c!height=52mm]
+\definepapersize [A10] [\c!width=26mm,\c!height=37mm]
+
+\definepapersize [B0] [\c!width=1000mm,\c!height=1414mm]
+\definepapersize [B1] [\c!width=707mm,\c!height=1000mm]
+\definepapersize [B2] [\c!width=500mm,\c!height=707mm]
+\definepapersize [B3] [\c!width=353mm,\c!height=500mm] % [\c!width=354mm,\c!height=500mm]
+\definepapersize [B4] [\c!width=250mm,\c!height=353mm] % [\c!width=250mm,\c!height=354mm]
+\definepapersize [B5] [\c!width=176mm,\c!height=250mm] % [\c!width=177mm,\c!height=250mm]
+\definepapersize [B6] [\c!width=125mm,\c!height=176mm] % [\c!width=125mm,\c!height=177mm]
+\definepapersize [B7] [\c!width=88mm,\c!height=125mm]
+\definepapersize [B8] [\c!width=62mm,\c!height=88mm] % [\c!width=63mm,\c!height=88mm]
+\definepapersize [B9] [\c!width=44mm,\c!height=62mm] % [\c!width=44mm,\c!height=63mm]
+\definepapersize [B10] [\c!width=31mm,\c!height=44mm]
+
+\definepapersize [C0] [\c!width=917mm,\c!height=1297mm]
+\definepapersize [C1] [\c!width=648mm,\c!height=917mm] % [\c!width=649mm,\c!height=917mm]
+\definepapersize [C2] [\c!width=458mm,\c!height=648mm] % [\c!width=459mm,\c!height=649mm]
+\definepapersize [C3] [\c!width=324mm,\c!height=458mm] % [\c!width=324mm,\c!height=459mm]
+\definepapersize [C4] [\c!width=229mm,\c!height=324mm]
+\definepapersize [C5] [\c!width=162mm,\c!height=229mm]
+\definepapersize [C6] [\c!width=114mm,\c!height=162mm] % [\c!width=115mm,\c!height=162mm]
+\definepapersize [C7] [\c!width=81mm,\c!height=114mm] % [\c!width=81mm,\c!height=115mm]
+\definepapersize [C8] [\c!width=57mm,\c!height=81mm]
+\definepapersize [C9] [\c!width=40mm,\c!height=57mm]
+\definepapersize [C10] [\c!width=28mm,\c!height=40mm]
+
+%D Per August 2004 the rounding of some (seldom used) sizes
+%D were corrected top the latest DIN specifications. Peter
+%D Rolf came up with these and a few more missing sizes.
+%D Watch out: spaces and slashes!
+
+\definepapersize [4 A0] [\c!width=1682mm,\c!height=2378mm]
+\definepapersize [2 A0] [\c!width=1189mm,\c!height=1682mm]
+\definepapersize [C6/C5] [\c!width=114mm,\c!height=229mm]
+
+%D Because there are no standardized screen sizes, we define
+%D a bunch of sizes with $4:3$ ratios. The \type {S6} size is
+%D nearly as wide as a sheet of \type {A4} paper.
+
+\definepapersize [S3] [\c!width=300pt,\c!height=225pt]
+\definepapersize [S4] [\c!width=400pt,\c!height=300pt]
+\definepapersize [S5] [\c!width=500pt,\c!height=375pt]
+\definepapersize [S6] [\c!width=600pt,\c!height=450pt]
+\definepapersize [S8] [\c!width=800pt,\c!height=600pt]
+\definepapersize [SW] [\c!width=800pt,\c!height=450pt]
+\definepapersize [SM] [\c!width=720pt,\c!height=450pt]
+
+%D These are handy too:
+
+\definepapersize [S33] [\c!width=300pt,\c!height=300pt]
+\definepapersize [S44] [\c!width=400pt,\c!height=400pt]
+\definepapersize [S55] [\c!width=500pt,\c!height=500pt]
+\definepapersize [S66] [\c!width=600pt,\c!height=600pt]
+
+%D One may wonder if \TEX\ should be used for typesetting
+%D \CDROM\ covers, but it does not hurt to have the paper size
+%D ready.
+
+\definepapersize [CD] [\c!width=120mm,\c!height=120mm]
+
+%D The next series is for our English speaking friends who
+%D decided to stick to non metric values. Thanks to Nelson
+%D Beebe for completing the inch based list.
+
+\definepapersize [letter] [\c!width=8.5in,\c!height=11in]
+\definepapersize [ledger] [\c!width=11in,\c!height=17in]
+\definepapersize [tabloid] [\c!width=17in,\c!height=11in]
+
+\definepapersize [legal] [\c!width=8.5in,\c!height=14in]
+\definepapersize [folio] [\c!width=8.5in,\c!height=13in]
+\definepapersize [executive] [\c!width=7.25in,\c!height=10.5in]
+
+\definepapersize [A] [\c!width=8.5in,\c!height=11in] % 1 sheet
+\definepapersize [B] [\c!width=11in,\c!height=17in] % 2 sheets
+\definepapersize [C] [\c!width=17in,\c!height=22in] % 4 sheets
+
+%D The next set is for Tobias Burnus, who gave me the sizes.
+
+\definepapersize [envelope 9] [\c!width=8.88in,\c!height=3.88in]
+\definepapersize [envelope 10] [\c!width=9.5in,\c!height=4.13in]
+\definepapersize [envelope 11] [\c!width=10.38in,\c!height=4.5in]
+\definepapersize [envelope 12] [\c!width=11.0in,\c!height=4.75in]
+\definepapersize [envelope 14] [\c!width=11.5in,\c!height=5.0in]
+\definepapersize [monarch] [\c!width=7.5in,\c!height=3.88in]
+\definepapersize [check] [\c!width=8.58in,\c!height=3.88in]
+\definepapersize [DL] [\c!width=110mm,\c!height=220mm] % [\c!width=220mm,\c!height=110mm]
+\definepapersize [E4] [\c!width=280mm,\c!height=400mm]
+
+%D The next three sets are supplied by Taco:
+
+\definepapersize [RA0] [\c!width=860mm,\c!height=1220mm]
+\definepapersize [RA1] [\c!width=610mm,\c!height=860mm]
+\definepapersize [RA2] [\c!width=430mm,\c!height=610mm]
+\definepapersize [RA3] [\c!width=305mm,\c!height=430mm]
+\definepapersize [RA4] [\c!width=215mm,\c!height=305mm]
+
+%D ISO SRA (supplementary raw A) sizes:
+
+\definepapersize [SRA0] [\c!width=900mm,\c!height=1280mm]
+\definepapersize [SRA1] [\c!width=640mm,\c!height=900mm]
+\definepapersize [SRA2] [\c!width=450mm,\c!height=640mm]
+\definepapersize [SRA3] [\c!width=320mm,\c!height=450mm]
+\definepapersize [SRA4] [\c!width=225mm,\c!height=320mm]
+
+%D Swedish thesis formats:
+
+\definepapersize [G5] [\c!width=169mm,\c!height=239mm]
+\definepapersize [E5] [\c!width=155mm,\c!height=220mm]
+
+%D Industry invention:
+
+\definepapersize [A3plus] [\c!width=329mm,\c!height=483mm]
+
+%D We can now default to a reasonable size. We match the print
+%D paper size with the typeset paper size. This setting should
+%D come after the first layout specification (already done).
+
+\setuppapersize
+ [A4][A4]
+
+%D A few goodies:
+
+\definepapersize
+ [oversized]
+ [ \c!width=\dimexpr\paperwidth +1.5cm\relax,
+ \c!height=\dimexpr\paperheight+1.5cm\relax]
+
+\definepapersize
+ [doublesized]
+ [ \c!width=\dimexpr \paperwidth \relax,
+ \c!height=\dimexpr2\paperheight\relax]
+
+\definepapersize
+ [doubleoversized]
+ [ \c!width=\dimexpr \paperheight+1.5cm\relax,
+ \c!height=\dimexpr2\paperwidth +1.5cm\relax]
+
+%D For orthogonality:
+
+\definepapersize
+ [undersized]
+ [ \c!width=\dimexpr\paperwidth -1.5cm\relax,
+ \c!height=\dimexpr\paperheight-1.5cm\relax]
+
+\definelayout
+ [\v!page]
+ [\c!backspace=\zeropoint,
+ \c!cutspace=\zeropoint,
+ \c!topspace=\zeropoint,
+ \c!bottomspace=\zeropoint,
+ \c!margin=\zeropoint,
+ \c!edge=\zeropoint,
+ \c!header=\zeropoint,
+ \c!footer=\zeropoint,
+ \c!top=\zeropoint,
+ \c!bottom=\zeropoint,
+ \c!leftmargin=\zeropoint,
+ \c!rightmargin=\zeropoint,
+ \c!leftedge=\zeropoint,
+ \c!rightedge=\zeropoint,
+ \c!textdistance=\zeropoint,
+ \c!width=\v!middle,
+ \c!height=\v!middle,
+ \c!lines=0,
+ \c!grid=\v!no]
+
+\definelayout
+ [\v!middle]
+ [\c!width=\v!middle,
+ \c!height=\v!middle]
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/page-lin.lua b/Master/texmf-dist/tex/context/base/page-lin.lua
index a8d868f36bf..0efb6314e93 100644
--- a/Master/texmf-dist/tex/context/base/page-lin.lua
+++ b/Master/texmf-dist/tex/context/base/page-lin.lua
@@ -8,95 +8,103 @@ if not modules then modules = { } end modules ['page-lin'] = {
-- experimental
+local format = string.format
+local texsprint, texbox = tex.sprint, tex.box
+
+local ctxcatcodes = tex.ctxcatcodes
+
nodes = nodes or { }
nodes.lines = nodes.lines or { }
nodes.lines.data = nodes.lines.data or { } -- start step tag
-do
-
- -- if there is demand for it, we can support multiple numbering streams
- -- and use more than one attibute
+-- if there is demand for it, we can support multiple numbering streams
+-- and use more than one attibute
- local hlist, vlist, whatsit = node.id('hlist'), node.id('vlist'), node.id('whatsit')
+local hlist, vlist, whatsit = node.id('hlist'), node.id('vlist'), node.id('whatsit')
- local display_math = attributes.numbers['display-math'] or 121
- local line_number = attributes.numbers['line-number'] or 131
- local line_reference = attributes.numbers['line-reference'] or 132
+local display_math = attributes.private('display-math')
+local line_number = attributes.private('line-number')
+local line_reference = attributes.private('line-reference')
- local current_list = { }
- local cross_references = { }
- local chunksize = 250 -- not used in boxed
+local current_list = { }
+local cross_references = { }
+local chunksize = 250 -- not used in boxed
- local has_attribute = node.has_attribute
- local traverse_id = node.traverse_id
- local copy = node.copy
- local format = string.format
- local sprint = tex.sprint
+local has_attribute = node.has_attribute
+local traverse_id = node.traverse_id
+local traverse = node.traverse
+local copy_node = node.copy
- local data = nodes.lines.data
+local data = nodes.lines.data
- nodes.lines.scratchbox = nodes.lines.scratchbox or 0
+nodes.lines.scratchbox = nodes.lines.scratchbox or 0
- -- cross referencing
+-- cross referencing
- function nodes.lines.number(n)
- local cr = cross_references[n] or 0
- cross_references[n] = nil
- return cr
- end
+function nodes.lines.number(n)
+ local cr = cross_references[n] or 0
+ cross_references[n] = nil
+ return cr
+end
- local function resolve(n,m)
- while n do
- local id = n.id
- if id == whatsit then
- local a = has_attribute(n,line_reference)
- if a then
- cross_references[a] = m
- end
- elseif id == hlist or id == vlist then
- resolve(n.list,m)
+local function resolve(n,m)
+ while n do
+ local id = n.id
+ if id == whatsit then
+ local a = has_attribute(n,line_reference)
+ if a then
+ cross_references[a] = m
end
- n = n.next
+ elseif id == hlist or id == vlist then
+ resolve(n.list,m)
end
+ n = n.next
end
+end
- -- boxed variant
+-- boxed variant
- nodes.lines.boxed = { }
+nodes.lines.boxed = { }
- function nodes.lines.boxed.register(configuration)
- data[#data+1] = configuration
- return #data
+function nodes.lines.boxed.register(configuration)
+ data[#data+1] = configuration
+ return #data
+end
+function nodes.lines.boxed.setup(n,configuration)
+ local d = data[n]
+ if d then
+ for k,v in pairs(configuration) do d[k] = v end
+ else
+ data[n] = configuration
end
- function nodes.lines.boxed.setup(n,configuration)
- local d = data[n]
- if d then
- for k,v in pairs(configuration) do d[k] = v end
+ return n
+end
+
+local leftskip = nodes.leftskip
+
+local function check_number(n,a) -- move inline
+ local d = data[a]
+ if d then
+ local s = d.start
+ current_list[#current_list+1] = { n, s }
+ if d.start % d.step == 0 then
+ texsprint(ctxcatcodes, format("\\makenumber{%s}{%s}{%s}{%s}{%s}\\endgraf", d.tag or "", s, n.shift, n.width, leftskip(n.list)))
else
- data[n] = configuration
+ texsprint(ctxcatcodes, "\\skipnumber\\endgraf")
end
- return n
+ d.start = s + 1 -- (d.step or 1)
end
+end
- local leftskip = nodes.leftskip
-
- function nodes.lines.boxed.stage_one(n)
- current_list = { }
- local head = tex.box[n].list
- local function check_number(n,a) -- move inline
- local d = data[a]
- if d then
- local s = d.start
- current_list[#current_list+1] = { n, s }
- if d.start % d.step == 0 then
- sprint(tex.ctxcatcodes, format("\\makenumber{%s}{%s}{%s}{%s}{%s}\\endgraf", d.tag or "", s, n.shift, n.width, leftskip(n.list)))
- else
- sprint(tex.ctxcatcodes, "\\skipnumber\\endgraf")
- end
- d.start = s + 1 -- (d.step or 1)
- end
- end
- for n in traverse_id(hlist,head) do -- attr test here and quit as soon as zero found
+function nodes.lines.boxed.stage_one(n)
+ current_list = { }
+ local head = texbox[n]
+ if head then
+ local list = head.list
+ --~ while list.id == vlist and not list.next do
+ --~ list = list.list
+ --~ end
+ for n in traverse_id(hlist,list) do -- attr test here and quit as soon as zero found
if n.height == 0 and n.depth == 0 then
-- skip funny hlists
else
@@ -115,14 +123,17 @@ do
end
end
end
+end
- function nodes.lines.boxed.stage_two(n,m)
+function nodes.lines.boxed.stage_two(n,m)
+ if #current_list > 0 then
m = m or nodes.lines.scratchbox
local t, i = { }, 0
- for l in traverse_id(hlist,tex.box[m].list) do
- t[#t+1] = copy(l)
+ for l in traverse_id(hlist,texbox[m].list) do
+ t[#t+1] = copy_node(l)
end
- for _, l in ipairs(current_list) do
+ for j=1,#current_list do
+ local l = current_list[j]
local n, m = l[1], l[2]
i = i + 1
t[i].next = n.list
@@ -130,107 +141,107 @@ do
resolve(n,m)
end
end
+end
- -- flow variant
- --
- -- it's too hard to make this one robust, so for the moment it's not
- -- available; todo: line refs
+-- flow variant
+--
+-- it's too hard to make this one robust, so for the moment it's not
+-- available; todo: line refs
- if false then
+if false then
- nodes.lines.flowed = { }
+ nodes.lines.flowed = { }
- function nodes.lines.flowed.prepare()
- for i=1,#data do
- sprint(tex.ctxcatcodes,format("\\ctxlua{nodes.lines.flowed.prepare_a(%s)}\\ctxlua{nodes.lines.flowed.prepare_b(%s)}",i, i))
- end
+ function nodes.lines.flowed.prepare(tag)
+ for i=1,#data do -- ??
+ texsprint(ctxcatcodes,format("\\ctxlua{nodes.lines.flowed.prepare_a(%s)}\\ctxlua{nodes.lines.flowed.prepare_b(%s)}",i,i))
end
+ end
- function nodes.lines.flowed.prepare_a(i)
- local d = data[i]
- local p = d.present
- if p < chunksize then
- local b = nodes.lines.scratchbox
- sprint(tex.ctxcatcodes, format("{\\forgetall\\global\\setbox%s=\\vbox{\\unvbox%s\\relax\\offinterlineskip", b, b))
- while p < chunksize do
- sprint(tex.ctxcatcodes, format("\\mkmaketextlinenumber{%s}{%s}\\endgraf",d.start,1))
- p = p + 1
- d.start = d.start + d.step
- end
- d.present = p
- sprint(tex.ctxcatcodes, "}}")
+ function nodes.lines.flowed.prepare_a(i)
+ local d = data[i]
+ local p = d.present
+ if p and p < chunksize then
+ local b = nodes.lines.scratchbox
+ texsprint(ctxcatcodes, format("{\\forgetall\\global\\setbox%s=\\vbox{\\unvbox%s\\relax\\offinterlineskip", b, b))
+ while p < chunksize do
+ texsprint(ctxcatcodes, format("\\mkmaketextlinenumber{%s}{%s}\\endgraf",d.start,1))
+ p = p + 1
+ d.start = d.start + d.step
end
+ d.present = p
+ texsprint(ctxcatcodes, "}}")
end
+ end
- function nodes.lines.flowed.prepare_b(i)
- local d = data[i]
- local b = nodes.lines.scratchbox
- local l = tex.box[b]
- if l then
- l = l.list
- local n = d.numbers
- while l do
- if l.id == hlist then
- local m = node.copy(l)
- m.next = nil
- if n then
- n.next = m
- else
- d.numbers = m
- end
- n = m
+ function nodes.lines.flowed.prepare_b(i)
+ local d = data[i]
+ local b = nodes.lines.scratchbox
+ local l = texbox[b]
+ if l then
+ l = l.list
+ local n = d.numbers
+ while l do
+ if l.id == hlist then
+ local m = copy_node(l)
+ m.next = nil
+ if n then
+ n.next = m
+ else
+ d.numbers = m
end
- l = l.next
+ n = m
end
+ l = l.next
end
- tex.box[b] = nil
end
+ tex.box[b] = nil
+ end
- function nodes.lines.flowed.cleanup(i)
- if i then
+ function nodes.lines.flowed.cleanup(i)
+ if i then
+ node.flush_list(data[i].numbers)
+ else
+ for i=1,#data do
node.flush_list(data[i].numbers)
- else
- for i=1,#data do
- node.flush_list(data[i].numbers)
- end
end
end
+ end
- function nodes.lines.flowed.apply(head)
- local function check_number(n,a)
- local d = data[a]
- if d then
- local m = d.numbers
- if m then
- d.numbers = m.next
- m.next = n.list
- n.list = m
- d.present = d.present - 1
- end
- end
+ local function check_number(n,a)
+ local d = data[a]
+ if d then
+ local m = d.numbers
+ if m then
+ d.numbers = m.next
+ m.next = n.list
+ n.list = m
+ d.present = d.present - 1
end
- for n in node.traverse(head) do
- local id = n.id
- if id == hlist then
- if n.height == 0 and n.depth == 0 then
- -- skip funny hlists
- else
- local a = has_attribute(n,line_number)
- if a and a > 0 then
- if has_attribute(n,display_math) then
- if nodes.is_display_math(n) then
- check_number(n,a)
- end
- else
+ end
+ end
+
+ function nodes.lines.flowed.apply(head)
+ for n in node.traverse(head) do
+ local id = n.id
+ if id == hlist then
+ if n.height == 0 and n.depth == 0 then
+ -- skip funny hlists
+ else
+ local a = has_attribute(n,line_number)
+ if a and a > 0 then
+ if has_attribute(n,display_math) then
+ if nodes.is_display_math(n) then
check_number(n,a)
end
+ else
+ check_number(n,a)
end
end
end
end
- return head, true
end
-
+ return head, true
end
end
diff --git a/Master/texmf-dist/tex/context/base/page-lin.mkii b/Master/texmf-dist/tex/context/base/page-lin.mkii
index 35728325231..a04804ce6b8 100644
--- a/Master/texmf-dist/tex/context/base/page-lin.mkii
+++ b/Master/texmf-dist/tex/context/base/page-lin.mkii
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Core Macros / Line Numbering}
+\writestatus{loading}{ConTeXt Core Macros / Line Numbering}
\unprotect
diff --git a/Master/texmf-dist/tex/context/base/page-lin.mkiv b/Master/texmf-dist/tex/context/base/page-lin.mkiv
index 4b805e0a308..c82d4d5206e 100644
--- a/Master/texmf-dist/tex/context/base/page-lin.mkiv
+++ b/Master/texmf-dist/tex/context/base/page-lin.mkiv
@@ -13,21 +13,21 @@
% generic or not ... maybe not bother too much and simplify to mkiv only
-\writestatus{loading}{Context Core Macros / Line Numbering}
+\writestatus{loading}{ConTeXt Core Macros / Line Numbering}
\unprotect
% low level interface
-\defineattribute[line-number]
-\defineattribute[line-reference]
-
\registerctxluafile{page-lin}{1.001}
-% \ctxluafileload{page-lin}{1.001}
+
+\definesystemattribute[line-number]
+\definesystemattribute[line-reference]
\appendtoksonce\doresetattribute{line-number}\to\everyforgetall
\appendtoksonce\dosetattribute{display-math}{1}\to\everybeforedisplayformula
+\newcount\linenumber
\newbox \linenumberscratchbox
\newcount\linenumberchunk
\newcount\linerefcounter
@@ -63,6 +63,8 @@
\def\makenumber#1#2{\hbox{\llap{#1\quad\hskip#2\scaledpoint}}\endgraf}%
+\newconditional\boxcontentneedsprocessing
+
\def\mkdoprocesspagecontents #1{\mkaddtextlinenumbers{#1}\plusone \plusone}
\def\mkdoprocessboxcontents #1{\mkaddtextlinenumbers{#1}\plusone \plusone}
\def\mkdoprocesscolumncontents#1{\mkaddtextlinenumbers{#1}\currentcolumn\nofcolumns}
@@ -79,6 +81,7 @@
\def\mkstarttextlinenumbering#1#2%
{\globallet\mkprocesspagecontents \mkdoprocesspagecontents
\globallet\mkprocesscolumncontents\mkdoprocesscolumncontents
+ \global\settrue\boxcontentneedsprocessing % see core-rul.mkiv
\ifcase#2\relax
% continue
\or
@@ -96,7 +99,8 @@
{\dontleavehmode\begingroup
\global\advance\linerefcounter\plusone
\dosetattribute{line-reference}\linerefcounter
- #3\rawtextreference\s!lin{#2}{\noexpand\ctxlua{tex.sprint(nodes.lines.number(\the\linerefcounter))}}%
+ % this will change and is troublesome anyway
+ #3\textreference[#2]{\noexpand\ctxlua{tex.sprint(nodes.lines.number(\the\linerefcounter))}}%
\endgroup}
\def\mkstartlinereference#1{\mksomelinereference{#1}{lr:b:#1}{}\ignorespaces}
@@ -388,8 +392,8 @@
\doifreferencefoundelse{lr:e:#1}
{\let\tline\currenttextreference
\ifx\fline\tline#2\else#3\fi}
- {#2}}
- {#2}}
+ {\unknownreference{#1}#2}}
+ {\unknownreference{#1}#2}}
\def\inline#1[#2]%
{\doifelsenothing{#1}
@@ -408,8 +412,8 @@
\appendtoks\ctxlua{nodes.lines.flowed.cleanup()}\to\everybye
\def\mkstarttextlinenumbering#1#2%
- {\ctxlua{nodes.lines.flowed.prepare(#1)}%
- \dosetattribute{line-number}{#1}}
+ {\ctxlua{nodes.lines.flowed.prepare("#1")}%
+ \dosetattribute{line-number}{#2}}
\def\mkstoptextlinenumbering
{\doresetattribute{line-number}}
diff --git a/Master/texmf-dist/tex/context/base/page-lin.tex b/Master/texmf-dist/tex/context/base/page-lin.tex
deleted file mode 100644
index d28674686ac..00000000000
--- a/Master/texmf-dist/tex/context/base/page-lin.tex
+++ /dev/null
@@ -1,454 +0,0 @@
-%D \module
-%D [ file=page-lin, % copied from main-001
-%D version=1997.03.31,
-%D title=\CONTEXT\ Core Macros,
-%D subtitle=Line Numbering,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{Context Core Macros / Line Numbering}
-
-\unprotect
-
-\newif\ifnumberinglines
-\newif\iftypesettinglines
-
-\newcount\linenumber
-\newcount\linestepper
-
-\chardef\linenumberlocation=0
-
-\newtoks\beforeeverylinenumbering
-\newtoks\aftereverylinenumbering
-
-\def\setuplines
- {\dodoubleargument\getparameters[\??rg]}
-
-\def\startlines
- {\@@rgbefore
- \pushmacro\checkindentation
- \whitespace
- %\page[\v!preference]} gaat mis na koppen, nieuw: later \nobreak
- \begingroup
- \setupindenting[\@@rgindenting]%
- \typesettinglinestrue
- \setupwhitespace[\v!none]%
- \obeylines
- \ignorespaces
- \gdef\afterfirstobeyedline % tzt two pass, net als opsomming
- {\gdef\afterfirstobeyedline
- {\nobreak
- \global\let\afterfirstobeyedline\relax}}%
- \def\obeyedline
- {\par
- \afterfirstobeyedline
- \futurelet\next\dobetweenthelines}%
- \activatespacehandler\@@rgspace
- \GotoPar}
-
-\def\stoplines
- {\endgroup
- \popmacro\checkindentation
- \@@rgafter}
-
-%D When spacing is active we need to handle commands in
-%D a special way:
-%D
-%D \starttyping
-%D \setuplines[space=on]
-%D
-%D \startlines
-%D Let's talk about this{\ttsl\gobbleoneargument or}that.
-%D \stoplines
-%D
-%D \startlines
-%D Let's talk about this{\getvalue{ttsl}or}that.
-%D \stoplines
-%D \stoptyping
-%D
-%D One can indent in several ways:
-%D
-%D \starttyping
-%D \setupindenting[medium] \setuplines[indenting=odd] % no yes odd even
-%D
-%D \startlines
-%D first
-%D second
-%D third
-%D fourth
-%D \stoplines
-%D \stoptyping
-
-% this is not the natural place
-
-\def\installspacehandler#1#2% needs to set \obeyedspace
- {\setvalue{\??sr#1}{#2}}
-
-\installspacehandler \v!on
- {\obeyspaces
- \def\obeyedspace{\mathortext\normalspace{\dontleavehmode{\tt\controlspace}}}%
- \let\ =\obeyedspace}
-
-\installspacehandler \v!yes
- {\obeyspaces
- \def\obeyedspace{\mathortext\normalspace{\dontleavehmode \normalspace }}%
- \let\ =\obeyedspace}
-
-\installspacehandler \v!off
- {\normalspaces
- \let\obeyedspace\normalspace
- \let\ =\normalspace}
-
-\def\activatespacehandler#1%
- {\executeifdefined{\??sr#1}{\activatespacehandler\v!off}}
-
-\def\dobetweenthelines
- {\doifmeaningelse\next\obeyedline\@@rginbetween\donothing}
-
-% het gebruik van \setlocalreference scheelt een hash entry
-
-\def\dodoshowlinenumber % for use elsewhere, to be extended
- {\doplacelinenumber
- \global\advance\linenumber \plusone}
-
-\def\completelinenumber
- {\@@rnleft\convertnumber\@@rnconversion\linenumber\@@rnright}
-
-\def\dosetuplinenumbering[#1]%
- {\getparameters[\??rn][\c!start=1,\c!step=1,#1]%
- \global\linenumber\plusone}
-
-\def\setuplinenumbering
- {\dosingleargument\dosetuplinenumbering}
-
-\def\dostartnummerenLINE
- {\EveryPar{\placelinenumber}} % why not append to everypar ? better
-
-\def\dostopnummerenLINE
- {\the\aftereverylinenumbering
- \egroup}
-
-\def\dostartnummerenVERB
- {\EveryLine{\placelinenumber}}
-
-\def\dostopnummerenVERB
- {\the\aftereverylinenumbering
- \egroup}
-
-\newevery \everylinenumber \relax
-
-\def\dodoplacelinenumber
- {% beware of em's, the font is already switched !
- \setbox\scratchbox\hbox
- {\setbox0\hbox{\@@rncommand{\completelinenumber}}\vsmashbox0%
- \ifcase\linenumberlocation
- \iftypesettinglines % hack
- \expandafter\llap
- \else
- \expandafter\rlap
- \fi{\hbox to \@@rnwidth{\box0\hss}}% was \llap, nog testen !!
- \or
- \inleftmargin
- {\forgetall
- \doifelse\@@rnwidth\v!margin
- {\hsize\leftmarginwidth}{\hsize\@@rnwidth}%
- \alignedline\@@rnalign\v!right{\box0\hskip\@@rndistance}}%
- \else
- \inrightmargin
- {\forgetall
- \doifelse\@@rnwidth\v!margin
- {\hsize\rightmarginwidth}{\hsize\@@rnwidth}%
- \alignedline\@@rnalign\v!left{\hskip\@@rndistance\box0}}%
- \fi}%
- \vsmashbox\scratchbox
- \box\scratchbox
- \the\everylinenumber}
-
-\def\complexstartlinenumbering[#1]%
- {\doifnot{#1}\v!continue
- {\doifnumberelse{#1}
- {\global\linenumber#1\relax}
- {\doifelsenothing\@@rnstart
- {\global\linenumber\plusone}
- {\global\linenumber\@@rnstart}}}%
- \chardef\linenumberlocation\zerocount
- \processaction
- [\@@rnlocation]
- [ \v!inmargin=>\chardef\linenumberlocation\plusone,
- \v!inleft=>\chardef\linenumberlocation\plusone,
- \v!inright=>\chardef\linenumberlocation\plustwo,
- \v!margin=>\chardef\linenumberlocation\plusone]%
- % \v!text=>\chardef\linenumberlocation\zerocount,
- %\s!unknown=>\chardef\linenumberlocation\zerocount,
- %\s!default=>\chardef\linenumberlocation\zerocount]%
- \doifnot\@@rnwidth\v!margin
- {\freezedimenmacro\@@rnwidth
- \ifcase\linenumberlocation % text
- \advance\leftskip\@@rnwidth\relax
- \fi}%
- \freezedimenmacro\@@rndistance
- \chardef\@@rn@@rnmethod
- \ifprocessingverbatim\zerocount\else\iftypesettinglines\plusone\else\plustwo\fi\fi
- \processaction
- [\@@rnmethod]
- [ \v!type=>\chardef\@@rn@@rnmethod\zerocount,
- \v!line=>\chardef\@@rn@@rnmethod\plusone,
- \v!text=>\chardef\@@rn@@rnmethod\plustwo,
- \v!file=>\chardef\@@rn@@rnmethod\plusthree]%
- \ifcase\@@rn@@rnmethod % verbatim, line by line
- \typesettinglinestrue
- \let\dostartnummeren\dostartnummerenVERB
- \let\stoplinenumbering\dostopnummerenVERB
- \def\placelinenumber
- {\doplacelinenumber
- \global\advance\linenumber \plusone}%
- \or % text, line by line
- \let\dostartnummeren\dostartnummerenLINE
- \let\stoplinenumbering\dostopnummerenLINE
- \def\placelinenumber
- {\doplacelinenumber
- \global\advance\linenumber \plusone}%
- \or % text, whole lot
- \let\dostartnummeren\dostartnummerenPAR
- \let\stoplinenumbering\dostopnummerenPAR
- \def\placelinenumber
- {\global\advance\linenumber \minusone
- \doplacelinenumber}%
- \or % verbatim, selective line by line
- \typesettinglinestrue
- \let\dostartnummeren\dostartnummerenVERB
- \let\stoplinenumbering\dostopnummerenVERB
- \def\placelinenumber
- {\global\linenumber\verbatimlinenumber
- \global\advance\linenumber \minusone
- \doplacelinenumber}%
- \fi
- \dostartnummeren}
-
-\def\startlinenumbering
- {\bgroup
- \the\beforeeverylinenumbering
- \numberinglinestrue
- \complexorsimpleempty\startlinenumbering}
-
-\def\donoplacelinenumber
- {\the\everylinenumber}
-
-\def\doplacelinenumber
- {\ifnum\linenumber<\@@rnstart\relax
- \donoplacelinenumber
- \else
- \ifnum\numexpr(\linenumber/\@@rnstep)*\@@rnstep\relax=\linenumber
- \doattributes\??rn\c!style\c!color\dodoplacelinenumber
- \else
- \donoplacelinenumber
- \fi
- \fi}
-
-\def\someline[#1]%
- {\dolinereference0[#1]\ignorespaces}
-
-\def\startline[#1]%
- {\dolinereference1[#1]\ignorespaces}
-
-\def\stopline[#1]%
- {\removelastspace\dolinereference2[#1]}
-
-\def\inline#1[#2]%
- {\doifelsenothing{#1}
- {\doifinstringelse{--}\currenttextreference
- {\in{\leftlabeltext\v!lines}{\rightlabeltext\v!lines}[\@@rnprefix#2]}
- {\in{\leftlabeltext\v!line }{\rightlabeltext\v!line }[\@@rnprefix#2]}}
- {\in{#1}[\@@rnprefix#2]}}
-
-\def\dostartnummerenPAR
- {\beginofshapebox
- \doglobal\newcounter\linereference}
-
-% localcrossref heroverwegen
-
-\def\setlinereference#1#2#3#4%
- {\setxvalue{lrf:#1}{\noexpand\dogetlinereference{#2}{#3}{#4}}}
-
-\def\getlinereference#1%
- {\getvalue{lrf:#1}}
-
-\def\dogetlinereference#1#2#3%
- {\edef\linereferencename{#1}%
- \edef\linereferenceline{#2}%
- \edef\linereferenceplus{#3}}
-
-% 1 xxx xxx xxx xxx xxx xxx xxx
-% 2 xxx yyy yyy yyy yyy yyy yyy <= start y
-% 3 yyy yyy yyy yyy yyy yyy yyy
-% 4 yyy yyy yyy yyy yyy xxx xxx <= stop y
-% 5 xxx xxx xxx xxx xxx xxx xxx
-
-\def\dolinereference#1[#2]%
- {\bgroup
- \dimen0=\strutdp
- \doif\@@rnreferencing\v!on
- {\doglobal\increment\linereference
- % start 1=>(n=y,l=0,p=1)
- % stop 2=>(n=y,l=0,p=2)
- \setlinereference{\linereference}{\@@rnprefix#2}{0}{#1}%
- \advance\dimen0 \linereference sp}%
- \prewordbreak
- \vrule \!!width \zeropoint \!!depth \dimen0 \!!height \zeropoint
- \prewordbreak
- \egroup}
-
-\def\dostopnummerenPAR % dp's -> openstrutdepth
- {\endofshapebox
- \checkreferences
- \linestepper\zerocount
- \reshapebox{\global\advance\linestepper \plusone}%
- \global\advance\linenumber \linestepper
- \doifelse\@@rnreferencing\v!on
- {\reshapebox % We are going back!
- {\global\advance\linenumber \minusone
- \dimen0=\dp\shapebox
- \advance\dimen0 -\strutdp\relax
- \ifdim\dimen0>\zeropoint
- % 1=>4 | 2=>4 1=>2
- % start 1=>(n=y,l=2,p=1)
- % stop 2=>(n=y,l=4,p=2)
- \dostepwiserecurse\plusone{\number\dimen0}\plusone
- {\getlinereference\recurselevel
- \setlinereference\recurselevel
- {\linereferencename}{\the\linenumber}{\linereferenceplus}}%
- \fi}%
- \global\advance\linenumber \linestepper
- \ifnum\linereference>\zerocount % anders vreemde loop in paragraphs+recurse
- \dorecurse\linereference
- {\getlinereference\recurselevel
- \ifnum\linereferenceplus=2 % stop
- % ref y: text = 4 / Kan dit buiten referentie mechanisme om?
- \expanded{\setlocalcrossreference
- {\referenceprefix\linereferencename}{}{}{\linereferenceline}}%
- \fi}%
- \dorecurse\linereference
- {\getlinereference\recurselevel
- \ifnum\linereferenceplus<2 % start / lone
- \ifnum\linereferenceplus=1 % start
- \getreferenceelements\linereferencename % text = 4
- \ifnum\linereferenceline<0\currenttextreference\relax % 0 prevents error
- \edef\linereferenceline{\linereferenceline--\currenttextreference}%
- \fi
- \fi
- \expanded{\setlocalcrossreference
- {\referenceprefix\linereferencename}{}{}{\linereferenceline}}%
- \fi}%
- \global\let\scratchline\linenumber % We are going back!
- \reshapebox
- {\doglobal\decrement\scratchline
- \hbox
- {\dorecurse\linereference
- {\getlinereference\recurselevel
- \getreferenceelements\linereferencename
- \beforesplitstring\currenttextreference--\at--\to\firstline
- \ifnum\firstline=\scratchline\relax
- % beter een rawtextreference, i.e. expanded
- % \textreference[\linereferencename]{\currenttextreference}%
- \rawtextreference\s!lin\linereferencename\currenttextreference
- \expanded{\setlocalcrossreference
- {\referenceprefix\linereferencename}{}{}{0}}% ==done
- \fi}%
- \dimen0\dp\shapebox
- \advance\dimen0 -\strutdp\relax
- \ifdim\dimen0>\zeropoint
- \dp\shapebox\strutdp
- \fi
- \placelinenumber\box\shapebox}}% no \strut !
- \else
- \reshapebox{\hbox{\placelinenumber\box\shapebox}}% no \strut !
- \fi}
- {\reshapebox{\global\advance\linenumber \minusone}%
- \global\advance\linenumber \linestepper
- \reshapebox{\hbox{\placelinenumber\box\shapebox}}}% no \strut !
- \global\advance\linenumber \linestepper
- \flushshapebox
- \the\aftereverylinenumbering
- \egroup}
-
-\def\emptylines
- {\dosingleempty\doemptylines}
-
-\def\doemptylines[#1]%
- {\endgraf\dorecurse{\iffirstargument#1\else3\fi}\crlf}
-
-\newcount\internalparagraphnumber
-
-\def\setupparagraphnumbering
- {\dosingleempty\dosetupparagraphnumbering}
-
-\def\dosetupparagraphnumbering[#1]%
- {\getparameters
- [\??ph][#1]%
- \processaction
- [\@@phstate]
- [\v!start=>\let\showparagraphnumber\doshowparagraphnumberA,
- \v!stop=>\let\showparagraphnumber\relax,
- \v!line=>\let\showparagraphnumber\doshowparagraphnumberB,
- \v!reset=>\global\internalparagraphnumber\zerocount
- \let\showparagraphnumber\doshowparagraphnumberA]}
-
-\def\dodoshowparagraphnumber
- {\global\advance\internalparagraphnumber \plusone
- \inleftmargin % \tf normalizes em
- {\tf{\doattributes\??ph\c!style\c!color{\the\internalparagraphnumber}}%
- \kern\@@phdistance}}
-
-\def\doshowparagraphnumberA
- {\ifprocessingverbatim
- \iflinepar\dodoshowparagraphnumber\fi
- \else
- \dodoshowparagraphnumber
- \fi}
-
-\def\doshowparagraphnumberB
- {\ifnumberinglines
- \doshowparagraphnumberA
- \fi}
-
-\setuplinenumbering
- [\c!method=,
- \c!conversion=\v!numbers,
- \c!start=1,
- \c!step=1,
- \c!location=\v!margin,
- \c!style=,
- \c!color=,
- \c!width=2em,
- \c!prefix=,
- \c!referencing=\v!on]
-
-% new
-
-\setuplinenumbering
- [\c!width=\ifcase\linenumberlocation2em\else\v!margin\fi,
- \c!left=,
- \c!right=,
- \c!command=,
- \c!distance=\zeropoint,
- \c!align=\ifcase\linenumberlocation\v!right\or\v!right\or\v!left\fi]
-
-\setupparagraphnumbering
- [\c!state=\v!stop,
- \c!style=,
- \c!color=,
- \c!distance=\ifcase\linenumberlocation2em\else\!!zeropoint\fi]
-
-\setuplines
- [\c!before=\blank,
- \c!after=\blank,
- \c!inbetween=\blank,
- \c!indenting=\v!no,
- \c!space=\v!default]
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/page-log.tex b/Master/texmf-dist/tex/context/base/page-log.mkii
index 5140486af56..18c7991b1b7 100644
--- a/Master/texmf-dist/tex/context/base/page-log.tex
+++ b/Master/texmf-dist/tex/context/base/page-log.mkii
@@ -11,42 +11,10 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Page Macros / Logos}
+\writestatus{loading}{ConTeXt Page Macros / Logos}
\unprotect
-\startmessages dutch library: layouts
- 7: beeldmerken berekenen
-\stopmessages
-
-\startmessages english library: layouts
- 7: calculating logospace
-\stopmessages
-
-\startmessages german library: layouts
- 7: berechne Platzbedarf des Logos
-\stopmessages
-
-\startmessages czech library: layouts
- 7: pocita se misto pro logo
-\stopmessages
-
-\startmessages italian library: layouts
- 7: calcolo dello spazio per logo
-\stopmessages
-
-\startmessages norwegian library: layouts
- 7: beregner plass for logo
-\stopmessages
-
-\startmessages romanian library: layouts
- 7: se calculeaza spatiul pentru logo
-\stopmessages
-
-\startmessages french library: layouts
- 7: calcul de l'espace pour le logo
-\stopmessages
-
%D Although logos can conveniently be implemented on top of
%D background and text areas, we provide a dedicated mechanism
%D here. One reason is that such a separate mechanism cannot
@@ -149,12 +117,9 @@
\dodosetlogobox\v!top\blap
\vskip\topspace
\dodosetlogobox\v!header\blap
- \vskip\headerheight
- \vskip\headerdistance
+ \vskip\dimexpr\headerheight+\headerdistance\relax
\dodosetlogobox\v!text\blap
- \vskip\textheight
- \vskip\footerdistance
- \vskip\footerheight
+ \vskip\dimexpr\textheight+\footerdistance+\footerheight\relax
\dodosetlogobox\v!footer \tlap
\vfilll
\dodosetlogobox\v!bottom\tlap
diff --git a/Master/texmf-dist/tex/context/base/page-mak.tex b/Master/texmf-dist/tex/context/base/page-mak.mkii
index 1637e632703..040feb1d214 100644
--- a/Master/texmf-dist/tex/context/base/page-mak.tex
+++ b/Master/texmf-dist/tex/context/base/page-mak.mkii
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Page Macros / MakeUp}
+\writestatus{loading}{ConTeXt Page Macros / MakeUp}
\unprotect
@@ -164,8 +164,11 @@
\global\pageselectedfalse
\fi}
+% \def\pushpagestate{\globalpushmacro\@@pnstate}
+% \def\poppagestate {\globalpopmacro \@@pnstate}
+
\def\doshipoutmakeup
- {\globalpushmacro\@@pnstate % new
+ {\pushpagestate % new
\makeupparameter\c!before
\setbox\makeupbox\vbox{\hbox{\color[\makeupparameter\c!color]{\box\makeupbox}}}%
% \ifgridsnapping
@@ -190,7 +193,7 @@
\null
\page}]%
\fi \fi
- \globalpopmacro\@@pnstate} % new
+ \poppagestate} % new
%D The text surrounding the main body text can be influenced
%D by setting their associated status variables. The
diff --git a/Master/texmf-dist/tex/context/base/page-mak.mkiv b/Master/texmf-dist/tex/context/base/page-mak.mkiv
new file mode 100644
index 00000000000..45a1f11674c
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/page-mak.mkiv
@@ -0,0 +1,233 @@
+%D \module
+%D [ file=page-mak, % copied from main-001,
+%D version=1997.03.31,
+%D title=\CONTEXT\ Page Macros,
+%D subtitle=Simple MakeUp,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Page Macros / MakeUp}
+
+\unprotect
+
+%D \macros
+%D {definemakeup, setupmakeup, startmakeup}
+%D
+%D A makeup is a separate page, like a title page or colofon.
+%D There is one standard makeup page, but you can define more
+%D if needed.
+%D
+%D \starttyping
+%D \startstandardmakeup
+%D My Fancy Title
+%D \stopstandardmakeup
+%D \stoptyping
+%D
+%D The associated commands are:
+%D
+%D \showsetup{definemakeup}
+%D \showsetup{setupmakeup}
+%D \showsetup{startmakeup}
+
+\def\definemakeup
+ {\dodoubleargument\dodefinemakeup}
+
+\def\dodefinemakeup[#1][#2]%
+ {\getparameters
+ [\??do#1]%
+ [\c!width=\innermakeupwidth, % example in manual / was \makeupwidth
+ \c!height=\textheight, % example in manual
+ \c!voffset=\!!zeropoint, % example in manual
+ \c!hoffset=\!!zeropoint, % example in manual
+ \c!commands=,
+ \c!setups=,
+ \c!page=\v!right,
+ \c!doublesided=\v!empty,
+ \c!before=,
+ \c!top=\vss,
+ \c!bottom=\vss,
+ \c!after=,
+ \c!bottomstate=\v!normal,
+ \c!topstate=\v!normal,
+ \c!textstate=\v!normal,
+ \c!headerstate=\v!stop,
+ \c!footerstate=\v!stop,
+ \c!pagestate=\v!stop, % in manual ! ! !
+ \c!color=,
+ \c!align=,
+ #2]%
+ \setvalue{\e!start#1\e!makeup}{\startmakeup[#1]}%
+ \setvalue{\e!stop #1\e!makeup}{\stopmakeup}}
+
+\def\setupmakeup
+ {\dodoubleargument\dosetupmakeup}
+
+\def\dosetupmakeup[#1]%
+ {\getparameters[\??do#1]}
+
+%D This will save us some 375 bytes in the format file.
+
+\def\makeupparameter#1{\getvalue{\??do\currentmakeup#1}}
+
+%D The \type{\start}||\type{\stop} macros are used for both
+%D the direct and indirect way. The parameterless call will
+%D build a simple box.
+
+\newtoks\everymakeup
+
+\appendtoks \postponemarks \to \everymakeup
+
+\let\currentmakeup\empty
+
+\def\startmakeup
+ {\dodoubleempty\dostartmakeup}
+
+\def\dostartmakeup[#1][#2]%
+ {\bgroup
+ \edef\currentmakeup{#1}%
+ \the\everymakeup
+ \iffirstargument
+ \setupmakeup[\currentmakeup][#2]%
+ \let\stopmakeup\dodostopmakeup
+ \expandafter \dodostartmakeup
+ \else
+ \let\stopmakeup\donostopmakeup
+ \expandafter \donostartmakeup
+ \fi}
+
+%D The simple case:
+
+\def\donostartmakeup % textwidth ?
+ {\page
+ \setupheader[\c!state=\v!empty]%
+ \setupfooter[\c!state=\v!empty]%
+ \setsystemmode\v!makeup
+ \vbox to \textheight\bgroup\hsize\textwidth}
+
+\def\donostopmakeup
+ {\egroup
+ \flushmarks % new, here, else empty pages
+ \page
+ \egroup}
+
+%D The normal one:
+
+\newbox\makeupbox
+
+\def\dodostartmakeup
+ {\doifvaluesomething{\??do\currentmakeup\c!page}
+ {\ExpandFirstAfter\page[\makeupparameter\c!page]}%
+ \pagetype[\currentmakeup]%
+ \setsystemmode\v!makeup
+ \setupmakeuplayout
+ \makeupparameter\c!commands % hm, what is this one doing here ?
+ \startregistercolor[\makeupparameter\c!color]%
+ \forgetall % else indented flush
+ \global\setbox\makeupbox\vbox to \makeupparameter\c!height
+ \bgroup
+ \setups[\makeupparameter\c!setups]%
+ \hsize\makeupparameter\c!width
+ \doifsomething{\makeupparameter\c!align}
+ {\setupalign[\makeupparameter\c!align]}%
+ \makeupparameter\c!top}
+
+\def\dodostopmakeup
+ {\endgraf
+ \makeupparameter\c!bottom
+ \egroup
+ \flushmarks % new, here, else empty pages
+ \stopregistercolor
+ \doflushmakeup
+ \egroup
+ \calculatehsizes
+ \calculatevsizes}
+
+%D Selective page processing is handled here. (Why?)
+
+\def\doflushmakeup
+ {\ifprocessingpages
+ \ifpageselected
+ \doshipoutmakeup
+ \fi
+ \else
+ \ifpageselected \else
+ \doshipoutmakeup
+ \fi
+ \fi
+ \ifselectingpages
+ \global\pageselectedfalse
+ \fi}
+
+% \def\pushpagestate{\globalpushmacro\@@pnstate}
+% \def\poppagestate {\globalpopmacro \@@pnstate}
+
+\def\doshipoutmakeup
+ {\pushpagestate % new
+ \makeupparameter\c!before
+ \setbox\makeupbox\vbox{\hbox{\color[\makeupparameter\c!color]{\box\makeupbox}}}%
+ % \ifgridsnapping
+ % new per 22/6/2006
+ \ifdim\ht\makeupbox>\vsize
+ \ht\makeupbox\vsize
+ \fi
+ % \fi
+ \box\makeupbox
+ \setuppagenumber[\c!state=\makeupparameter\c!pagestate]%
+ \setupmakeuplayout
+ \page
+ \makeupparameter\c!after
+ \relax % voor fi
+ \ifdoublesided \ifodd\realpageno\else
+ \processaction
+ [\makeupparameter\c!doublesided]
+ [ \v!yes=>\null
+ \page,
+ \v!empty=>{\setupmakeuplayout
+ \page[\v!blank]%
+ \null
+ \page}]%
+ \fi \fi
+ \poppagestate} % new
+
+%D The text surrounding the main body text can be influenced
+%D by setting their associated status variables. The
+%D connection between them is made by the following macro
+
+\def\setupmakeuplayout
+ {\setupfooter[\c!state=\makeupparameter\c!footerstate]%
+ \setupheader[\c!state=\makeupparameter\c!headerstate]%
+ \setuptext [\c!state=\makeupparameter\c!textstate]%
+ \setupbottom[\c!state=\makeupparameter\c!bottomstate]%
+ \setuptop [\c!state=\makeupparameter\c!topstate]%
+ % this is needed, but no \setuplayout here; fails in texexec --fig=c
+ \recalculatelayout}
+
+%D The standard page template is defined as follows:
+
+\definemakeup
+ [\v!standard]
+ [\c!width=\innermakeupwidth,
+ \c!height=\textheight,
+ \c!voffset=\!!zeropoint,
+ \c!hoffset=\!!zeropoint,
+ \c!page=\v!right,
+ \c!doublesided=\v!empty]
+
+\definemakeup
+ [\v!text]
+ [\c!topstate=\v!start,
+ \c!headerstate=\v!start,
+ \c!textstate=\v!start,
+ \c!footerstate=\v!start,
+ \c!bottomstate=\v!start,
+ \c!doublesided=\v!no,
+ \c!page=\v!yes,
+ \c!top=\pseudostrut\ignorespaces,
+ \c!bottom=\obeydepth\vss]
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/page-mar.tex b/Master/texmf-dist/tex/context/base/page-mar.mkii
index c6804704b2f..96223bafecf 100644
--- a/Master/texmf-dist/tex/context/base/page-mar.tex
+++ b/Master/texmf-dist/tex/context/base/page-mar.mkii
@@ -1,7 +1,7 @@
%D \module
%D [ file=page-mar, % moved here from main-001
%D version=1997.03.31,
-%D title=\CONTEXT\ Core Macros,
+%D title=\CONTEXT\ Page Macros,
%D subtitle=Marginal Things,
%D author=Hans Hagen,
%D date=\currentdate,
@@ -16,7 +16,7 @@
%D extended en enhanced. Therefore it's always good to watch
%D out for unexpected side effects.
-\writestatus{loading}{Context Core Macros / Maginal Things}
+\writestatus{loading}{ConTeXt Page Macros / Maginal Things}
\unprotect
@@ -215,7 +215,7 @@
\getparameters[\??im#2][#1]%
% will become an \everyinmarginsetup thing
\ifcase\executeifdefined{\??im#2\c!sidemethod}{0}\else
- \positioningtrue \positioningpartrue % global ?
+ \enableparpositions
\fi}
\def\checkinmargin[#1]%
@@ -542,7 +542,7 @@
%D \stopbuffer
%D
%D \dorecurse{80}\getbuffer \page
-%D stoptypen
+%D \stoptyping
%D
%D and
%D
@@ -599,7 +599,7 @@
% \def\dodoinmargin[#1][#2][#3][#4][#5]#6%
% {\bgroup
% \forgetall % otherwise sidefloat problems, added 2005/07/20, maybe dangerous
-% \postponefootnotes % group is (somehow) needed
+% \postponenotes % group is (somehow) needed
% \doifinsetelse\v!low{#4}
% {\chardef\margincontentdisplacement\plusone}
% {\chardef\margincontentdisplacement\zerocount}%
@@ -645,7 +645,7 @@
\chardef\marginpagecheckmethod \executeifdefined{\??im\currentmargincontent\c!splitmethod}\plusone
% so far
\forgetall % otherwise sidefloat problems, added 2005/07/20, maybe dangerous
- \postponefootnotes % group is (somehow) needed
+ \postponenotes % group is (somehow) needed
\doifinsetelse\v!low{#4}
{\chardef\margincontentdisplacement\plusone}
{\chardef\margincontentdisplacement\zerocount}%
@@ -693,7 +693,7 @@
\def\marginword {\margintext}
\def\margintitle{\margintext} % txt mark as well
-\newtoks\collectedmargintexts
+\newtoks\collectedmargintexts % so .. delayed!
\chardef\margintextcollected \zerocount
\def\domargincontent[#1][#2]#3% we used to check for #2/#1 being number, no longer now
diff --git a/Master/texmf-dist/tex/context/base/page-mar.mkiv b/Master/texmf-dist/tex/context/base/page-mar.mkiv
new file mode 100644
index 00000000000..b85a99aa618
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/page-mar.mkiv
@@ -0,0 +1,827 @@
+%D \module
+%D [ file=page-mar, % moved here from main-001
+%D version=1997.03.31,
+%D title=\CONTEXT\ Page Macros,
+%D subtitle=Marginal Things,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D Support for margin words is one of the reasons for writing
+%D \CONTEXT. Over time support for marginal content has been
+%D extended en enhanced. Therefore it's always good to watch
+%D out for unexpected side effects.
+
+\writestatus{loading}{ConTeXt Page Macros / Maginal Things}
+
+\unprotect
+
+%D There are three categories and their historically grown meaning is
+%D as follows:
+%D
+%D marginlines: these are flushed relative to the start of a line and
+%D need to be invoked there.
+%D
+%D marginwords: these can be issued in the text flow and will migrate
+%D sidewards; in spite of the name, it can be a paragraph of text as
+%D well, but normally it's words.
+%D
+%D margintexts: these can be set beforehand and are flushed at the
+%D next paragraph of text (of header)
+%D
+%D While these mechanisms were rather separated, they now are slightly
+%D more integrated. Instead of low level instances we now have a mechanism
+%D for defining additional ones.
+
+%D \macros
+%D {inleftedge,inleftmargin,inrightmargin,inrightedge}
+%D
+%D The fast and clean way of putting things in the margin is
+%D using \type{\rlap} or \type{\llap}. Unfortunately these
+%D macro's don't handle indentation, left and right skips. We
+%D therefore embed them in some macro's that (force and)
+%D remove the indentation and restore it afterwards.
+
+\def\definemarginline
+ {\dodoubleargument\dodefinemarginline}
+
+\def\dodefinemarginline[#1][#2]%
+ {\getparameters
+ [\??im\??im#1]
+ [\c!location=\v!left,
+ \c!distance=\zeropoint,
+ \c!width=\leftmarginwidth,
+ \c!hoffset=\leftmargindistance,
+ \c!command=,
+ #2]%
+ \unexpanded\setvalue{#1}{\dohandlemarginline{#1}}}
+
+\def\marginlineparameter #1{\csname\??im\??im\currentmarginline#1\endcsname}
+\def\marginlineexecuter #1#2{\executeifdefined{\??im\??im\currentmarginline#1}{#2}}
+
+\def\dohandlemarginline#1% #2
+ {\def\currentmarginline{#1}%
+ \csname\s!do\??im\??im\executeifdefined{\??im\??im#1\c!location}\v!left\endcsname{#1}} % {#2}
+
+\def\doleftmarginline#1#2% #1 is redundant (we can remove it when we group dohandlemarginline; maybe ...
+ {\pushindentation
+ \llap
+ {\def\currentmarginline{#1}%
+ \postsignalrightpage
+ \hsize\marginlineparameter\c!width\relax
+ \marginlineexecuter\c!command\firstofoneargument{#2}\relax
+ \hskip\dimexpr
+ +\leftskip
+ +\compensatedinnermakeupmargin
+ +\marginlineparameter\c!hoffset
+ +\marginlineparameter\c!distance
+ \relax}%
+ \popindentation
+ \ignorespaces}
+
+\def\dorightmarginline#1#2% #1 is redundant
+ {\pushindentation
+ \rlap
+ {\def\currentmarginline{#1}%
+ \postsignalrightpage
+ \hskip\dimexpr
+ +\hsize
+ -\rightskip
+ +\compensatedinnermakeupmargin
+ +\marginlineparameter\c!hoffset
+ +\marginlineparameter\c!distance
+ \relax
+ \hsize\marginlineparameter\c!width
+ \marginlineexecuter\c!command\firstofoneargument{#2}}%
+ \popindentation
+ \ignorespaces}
+
+\long\def\installmarginlinehandler#1#2{\setvalue{\s!do\??im\??im#1}{#2}}
+
+\installmarginlinehandler \v!left {\doleftmarginline}
+\installmarginlinehandler \v!right {\dorightmarginline}
+\installmarginlinehandler \v!inner {\presignalrightpage\doifrightpageelse\doleftmarginline \dorightmarginline}
+\installmarginlinehandler \v!outer {\presignalrightpage\doifrightpageelse\dorightmarginline\doleftmarginline }
+
+\definemarginline[inleftmargin] [\c!location=\v!left, \c!width=\leftmarginwidth, \c!distance=\leftmargindistance, \c!hoffset=\zeropoint]
+\definemarginline[inrightmargin][\c!location=\v!right,\c!width=\rightmarginwidth,\c!distance=\rightmargindistance,\c!hoffset=\zeropoint]
+\definemarginline[inleftedge] [\c!location=\v!left, \c!width=\leftedgewidth, \c!distance=\leftedgedistance, \c!hoffset=\leftmargintotal]
+\definemarginline[inrightedge] [\c!location=\v!right,\c!width=\rightedgewidth, \c!distance=\rightedgedistance, \c!hoffset=\rightmargintotal]
+
+\definemarginline[inoutermargin][\c!location=\v!outer,\c!width=\outermarginwidth,\c!distance=\outermargindistance,\c!hoffset=\zeropoint]
+\definemarginline[ininnermargin][\c!location=\v!inner,\c!width=\innermarginwidth,\c!distance=\innermargindistance,\c!hoffset=\zeropoint]
+\definemarginline[inouteredge] [\c!location=\v!outer,\c!width=\outeredgewidth, \c!distance=\outeredgedistance, \c!hoffset=\outermargintotal]
+\definemarginline[ininneredge] [\c!location=\v!inner,\c!width=\inneredgewidth, \c!distance=\inneredgedistance, \c!hoffset=\innermargintotal]
+
+\definemarginline[atleftmargin] [\c!location=\v!left, \c!command=\lrlap,\c!width=\zeropoint,\c!distance=\zeropoint,\c!hoffset=\zeropoint]
+\definemarginline[atrightmargin][\c!location=\v!right,\c!command=\rllap,\c!width=\zeropoint,\c!distance=\zeropoint,\c!hoffset=\zeropoint]
+
+\ifx\lrlap\undefined \def\lrlap#1{\llap{\rlap{#1}}} \fi
+\ifx\rllap\undefined \def\rllap#1{\rlap{\llap{#1}}} \fi
+
+\def\lrlap#1{\llap{\rlap{#1}}}
+\def\rllap#1{\rlap{\hskip\hsize\llap{#1}}}
+
+%D We want to keep things efficient and therefore only handle
+%D situations like:
+%D
+%D \startbuffer
+%D \inleftedge {fine} some text \par
+%D \strut \inleftmargin {fine} some text \par
+%D \noindent \inrightmargin {fine} some text \par
+%D \noindent \strut \inrightedge {fine} some text \par
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D which looks like:
+%D
+%D \bgroup
+%D \getbuffer
+%D \parindent 30pt
+%D \getbuffer
+%D \egroup
+%D
+%D A torture test:
+%D
+%D \starttyping
+%D \def\TestLine#1#2{\backgroundline[#1]{\strut\white\tttf#2~\recurselevel}}
+%D
+%D \startbuffer
+%D \inleftmargin {\TestLine{red} {lm}} test test test \par
+%D \inrightmargin{\TestLine{green} {rm}} test test test \par
+%D \inleftedge {\TestLine{red} {le}} test test test \par
+%D \inrightedge {\TestLine{green} {re}} test test test \par
+%D \inoutermargin{\TestLine{blue} {om}} test test test \par
+%D \ininnermargin{\TestLine{yellow}{im}} test test test \par
+%D \inouteredge {\TestLine{blue} {oe}} test test test \par
+%D \ininneredge {\TestLine{yellow}{ie}} test test test \par
+%D \atleftmargin {\TestLine{red} {alm}} \hfill test \par
+%D \atrightmargin{\TestLine{green} {arm}} test \hfill \par
+%D \stopbuffer
+%D
+%D \dorecurse{40}\getbuffer \page
+%D \stoptyping
+
+%D New, yet undocumented:
+%D
+%D used for pascal:
+%D
+%D \starttyping
+%D \index {test} test \index {west} west \index {rest} rest
+%D
+%D \startnarrower
+%D \placeregister[index][alternative=b,command=\atleftmargin]
+%D \stopnarrower
+%D \stoptyping
+
+% todo: compensate distance when setuplayout[textwidth=..]
+% todo: generalize margin/edge model, now too much duplication
+
+%D The next bunch of macros looks messy which is due to its
+%D multi-purpose character.
+
+\chardef\margincontentdisplacement \zerocount
+\let \margincontentdistance \!!zeropoint
+\let \margincontenthoffset \!!zeropoint
+\def \margincontentlines {1}
+\def \margincontenttag {0}
+\let \margincontentseparator \empty
+\def \margincontentstrutheight {\strutht}
+
+\newcount\margincontentlevel
+\newdimen\margincontentheight
+
+\def\setupinmargin
+ {\dodoubleempty\dosetupinmargin}
+
+\def\dosetupinmargin[#1][#2]%
+ {\ifsecondargument
+ \processcommalist[#1]{\dodosetupinmargin[#2]}% becomes [#2]{##1}
+ \else
+ \getparameters[\??im][#1]%
+ \fi}
+
+% \def\dodosetupinmargin[#1]#2% [settings]{class}
+% {\checkinmargin[#2]%
+% \getparameters[\??im#2][#1]}
+
+\def\dodosetupinmargin[#1]#2% [settings]{class}
+ {\checkinmargin[#2]%
+ \getparameters[\??im#2][#1]%
+ % will become an \everyinmarginsetup thing
+ \ifcase\executeifdefined{\??im#2\c!sidemethod}{0}\else
+ \enableparpositions
+ \fi}
+
+\def\checkinmargin[#1]%
+ {\ifcsname\??im#1\c!offset\endcsname\else % this offset is related to framed !
+ \addtocommalist{#1}\inmargintaglist
+ \presetmargintext[#1]%
+ \fi}
+
+\def\presetmargintext[#1]%
+ {\presetlocalframed
+ [\??im#1]%
+ \getparameters
+ [\??im#1]
+ [\c!frame=\v!off,
+ \c!offset=\v!overlay,
+ \c!line=1,
+ \c!separator=,
+ \c!width=\v!broad,
+ \c!distance=, % empty = signal
+ \c!hoffset=\zeropoint,
+ \c!style=\@@imstyle,
+ \c!color=\@@imcolor,
+ \c!strut=\@@imstrut,
+ \c!location=\@@imlocation,
+ \c!align=\@@imalign,
+ \c!before=\@@imbefore,
+ \c!after=\@@imafter]}
+
+\newdimen\naturalmargincontentheight
+
+\def\makemargintextblock#1#2#3% width l r content
+ {\bgroup
+ \forgetall % added, else problems with 'center' and nested itemize
+ \dontcomplain
+ \hsize\getvalue{\??im#1\c!width}\relax
+ \doifnumberelse\margincontenttag
+ {\ifcase\margincontenttag\relax
+ \edef\margincontenttag{#1}% first one is setups id as well
+ \fi}
+ \donothing
+ \doifnumberelse\margincontenttag
+ {\ifnum\margincontenttag>25 % to be translated
+ \writestatus\m!systems{potential margin stack overflow (\margincontenttag)}%
+ \fi}
+ \donothing
+ % we need to preserve {a,b,c} kind of settings
+ \let\margincontentalign#1%
+ \processallactionsinset
+ [\getvalue{\??im\margincontenttag\c!align}]
+ [ \v!yes=>\let\margincontentalign#1,
+ \v!no=>\let\margincontentalign\v!normal,
+ \v!inner=>\let\margincontentalign#1,
+ \v!outer=>\let\margincontentalign#2,
+ \v!left=>\let\margincontentalign\v!left,
+ \v!middle=>\let\margincontentalign\v!middle,
+ \v!right=>\let\margincontentalign\v!right]%
+ \doifvaluesomething{\??im\margincontenttag\c!align} % watch {} around set
+ {\edef\margincontentalign{{\getvalue{\??im\margincontenttag\c!align},\margincontentalign}}}%
+ %
+ \expanded{\getparameters[\??im\margincontenttag][\c!align=\margincontentalign]}%
+ %
+ \edef\margincontentstrut{\getvalue{\??im\margincontenttag\c!strut}}%
+ \savestrut %
+ \setbox\scratchbox\vbox\localframed
+ [\??im\margincontenttag]
+ [\c!strut=\v!no,\c!offset=\v!overlay] % strut handled internally
+ {\decrement\margincontentlines
+ \dorecurse\margincontentlines{\savedstrut\endgraf\nointerlineskip}% ! savedstrut
+ \@@imbefore
+ \dostartattributes{\??im\margincontenttag}\c!style\c!color\empty
+ \dosetupstrut[\margincontentstrut]% was: \setstrut % yes or no
+ \begstrut#3\endstrut\endgraf
+ \xdef\margincontentstrutheight{\the\strutht}% so that it's known outside the framed
+ \dostopattributes
+ \@@imafter}%
+ \global \naturalmargincontentheight\ht\scratchbox
+ \global\advance\naturalmargincontentheight\dp\scratchbox
+ \doif\@@imstack\v!yes
+ {\def\overlappingmargin{-20\scaledpoint}% test value, maybe .25\strutboxdp, maybe configurable
+ \setbox\scratchbox\vbox{\stackeddown\vbox{\box\scratchbox}}}% new
+ \ht\scratchbox\strutht
+ \dp\scratchbox\strutdp % nieuw
+ \box\scratchbox
+ \egroup}
+
+%D The stacker permits constructs like:
+%D
+%D \starttyping
+%D \setupinmargin[stack=yes]
+%D
+%D \inleft{test 1}test\break
+%D \inleft{test 2}test\break
+%D \inleft{test 1}
+%D \input tufte
+%D \inleft{test 1}
+%D \inleft{test 2}
+%D \inleft{test 3}
+%D \input tufte
+%D \inleft{test 1}
+%D \inleft{test 2\endgraf test 3}
+%D \inleft{test 4}
+%D \input tufte
+%D \inleft{test 1}
+%D \inleft{test 2\endgraf test 3}
+%D \inleft{test 4\endgraf test 5\endgraf test 6}
+%D \inleft{test 7\endgraf test 8\endgraf test 9}
+%D \input tufte
+%D \stoptyping
+
+%D This approach permits us to implement a better mechanism
+%D later. We need the \type {\graphicvadjust} in order to
+%D handle:
+%D
+%D \starttyping
+%D \inleft{test} {\red \dorecurse{40}{test }\par}
+%D {\red \inleft{test} \dorecurse{40}{test }\par}
+%D \stoptyping
+%D
+%D The outer margin color is either black or color set as
+%D main text color.
+
+\newif\ifrightmargin % documenteren
+
+\ifx\dopositionmarginbox\undefined
+ \def\dopositionmarginbox#1{\graphicvadjust{\box#1}}
+\fi
+
+% watch out, margin dimensions are swapped locally (\swapmargins)
+
+% with \margincontentmethod one can control pagebreaks
+%
+% 0 no break
+% 1 each entry is one line
+% 2 only natural height
+% 3 also stack height
+
+\chardef\margincontentmethod \plusthree % beware: 1 = old method
+\chardef\marginpagecheckmethod\plusone
+
+\def\margincontentextralines{1} % old method, play safe
+\def\nofmargincontentlines {0}
+
+\def\doplacemargintext#1#2#3#4%
+ {\dontcomplain
+ \strut
+ \doifsomething{#1}
+ {\def\margincontenttag{#1}}%
+ \doifinsetelse{\margincontenttag}{\v!left,\v!right} % ugly hack
+ {\let \margincontentdistance \empty % signal
+ \let \margincontenthoffset \zeropoint}
+ {\edef\margincontentdistance{\executeifdefined{\??im\margincontenttag\c!distance }\empty }% signal
+ \edef\margincontenthoffset {\executeifdefined{\??im\margincontenttag\c!hoffset }\zeropoint}}%
+ \edef\margincontentlines {\executeifdefined{\??im\margincontenttag\c!line }\plusone }%
+ \edef\margincontentseparator {\executeifdefined{\??im\margincontenttag\c!separator}\donothing}%
+ \setbox\scratchbox\hbox{#4}% % todo: make sure that color stack works
+ \ifcase\margincontentmethod
+ \scratchdimen\zeropoint
+ \or % old method
+ \scratchdimen\ht\scratchbox
+ \advance\scratchdimen\dp\scratchbox
+ \or
+ \scratchdimen\naturalmargincontentheight
+ \or
+ \scratchdimen\naturalmargincontentheight
+ \ifx\laststackvmove\undefined\else\global\advance\scratchdimen\laststackvmove\fi
+ \fi
+ \ifdim\scratchdimen>\margincontentheight
+ \global\margincontentheight\scratchdimen
+ \fi
+ \setbox\scratchbox\hbox
+ {#2{\hskip#3\strut
+ \ifcase\margincontentdisplacement
+ % normal, move strutheight up
+ \scratchdimen\strutdp
+ \advance\scratchdimen \margincontentstrutheight
+ \advance\scratchdimen -\strutht
+ \raise\scratchdimen
+ \or
+ % low, obey vadjust
+ \fi
+ \box\scratchbox}}%
+ \ht\scratchbox\zeropoint
+ \dp\scratchbox\zeropoint
+ \gdef\margincontentstrutheight{\the\strutht}%
+ %\graphicvadjust{\box\scratchbox}} % fails in high math lines, let it be
+ %\hbox{\lower\strutdp\box\scratchbox}} % alas, wrong lapping, therefore useless
+ \dopositionmarginbox\scratchbox}
+
+% \def\domarginblockskip#1%
+% {\hskip\margincontenthoffset
+% \hskip\compensatedinnermakeupmargin\relax
+% \doifelsenothing\margincontentdistance
+% {\hskip\getvalue{\??im#1\c!distance}}
+% {\hskip\margincontentdistance}%
+% \relax}
+
+\def\domarginblockskip#1%
+ {\doifelsenothing\margincontentdistance
+ {\hskip\dimexpr
+ +\margincontenthoffset
+ +\compensatedinnermakeupmargin
+ +\csname\??im#1\c!distance\endcsname
+ \relax}
+ {\dimexpr
+ +\margincontenthoffset
+ +\compensatedinnermakeupmargin
+ +\margincontentdistance
+ \relax}%
+ \relax}
+
+\def\doleftmarginblock#1#2%
+ {\doplacemargintext{#1}\llap\zeropoint
+ {\llap{\placemargincontentseparator}%
+ \makemargintextblock\v!left\v!right{#2}%
+ \domarginblockskip\v!left}}
+
+\def\dorightmarginblock#1#2%
+ {\doplacemargintext{#1}\rlap\hsize
+ {\hskip\textwidth\hskip-\hsize % new: hsize correction
+ \domarginblockskip\v!right
+ \makemargintextblock\v!right\v!left{#2}%
+ \rlap{\placemargincontentseparator}}}
+
+\def\placemargincontentseparator
+ {\ifnum\margincontentlevel>\zerocount
+ \ifx\margincontentseparator\empty\else
+ \bgroup
+ \scratchdimen\margincontentlines\lineheight
+ \advance\scratchdimen -\lineheight
+ \lower\scratchdimen\hbox{\margincontentseparator}%
+ \egroup
+ \fi
+ \fi}
+
+\newbox\marginconstructbox
+
+\def\doinmarginswapped#1#2#3#4%
+ {\iffirstsidefloatparagraph\nowhitespace\fi % zo laat mogelijk
+ \setbox\marginconstructbox\hbox\bgroup % prevents page break in the middle of construction
+ \startsignalrightpage
+ \doifswappedrightpageelse
+ {\rightmargintrue #2}
+ {\rightmarginfalse#1}
+ {#3}% setups
+ {#4}% content
+ \stopsignalrightpage
+ \egroup
+ \unhbox\marginconstructbox}
+
+% history made this a bit complicated, the +/- was needed before
+% we had enough mem/hash to do the page correction
+
+\edef\inmargintaglist{+,-,\v!low,\v!left,\v!right,\v!inner,\v!outer}
+
+% the old one:
+%
+% \def\doinmargin[#1][#2][#3][#4][#5]% #6 #7
+% {\doifcommonelse{+,-,\v!laag}{#4}
+% {\dodoinmargin[#1][#2][#3][#4][#5]}
+% {\dodoinmargin[#1][#2][#3][][#4]}}
+%
+% an alternative:
+%
+% \letvalue{\??im\v!laag\c!offset}\empty
+% \letvalue{\??im +\c!offset}\empty
+% \letvalue{\??im -\c!offset}\empty
+%
+% \def\doinmargin[#1][#2][#3][#4][#5]% #6 #7
+% {\doifnumberelse{#4}
+% {\dodoinmargin[#1][#2][#3][#4][#5]}
+% {\doifdefinedelse{\??im#4\c!offset}
+% {\dodoinmargin[#1][#2][#3][#4][#5]}
+% {\dodoinmargin[#1][#2][#3][][#4]}}}
+%
+% the problem is that we need to keep downward compatibility
+% with respect to the first argument thing a reference or a
+% directive; the alternative is to force users to pass a
+% directive along with a reference; anyhow, as long as one
+% does not use references that have the same name as a
+% directive we can use the (slow) alternative
+
+\def\doinmargin[#1][#2][#3][#4][#5]% #6 #7
+ {\expanded{\doifinsetelse{#4}{\inmargintaglist}}
+ {\dodoinmargin[#1][#2][#3][#4][#5]}
+ {\dodoinmargin[#1][#2][#3][][#4]}}
+
+\def\defineinmargin
+ {\doquadrupleempty\dodefineinmargin}
+
+\def\dodefineinmargin[#1][#2][#3][#4]%
+ {\doifassignmentelse{#4}
+ {\setupinmargin[#1][#4]%
+ \setvalue{#1}{\indentation\doquintupleempty\doinmargin[#2][#3][#1]}}
+ {\setvalue{#1}{\indentation\doquintupleempty\doinmargin[#2][#3][#4]}}}
+
+\defineinmargin [inleft] [\v!left] [\v!normal] % takes left settings
+\defineinmargin [inright] [\v!right] [\v!normal] % takes right settings
+\defineinmargin [ininner] [\v!inner] [\v!normal] % takes left/right settings
+\defineinmargin [inouter] [\v!outer] [\v!normal] % takes left/right settings
+\defineinmargin [inmargin] [\@@imlocation] [\v!normal] % takes left/right settings
+\defineinmargin [inother] [\@@imlocation] [\v!reverse] % takes left/right settings
+
+\def\inothermargin{\inother}
+
+%D This permits definitions like:
+%D
+%D \starttyping
+%D \defineinmargin [SomePlace] [inner] [normal] [distance=1cm]
+%D \defineinmargin [SomePlace] [inner] [normal] [SomePlace] \setupinmargin[SomePlace][distance=1cm]
+%D \defineinmargin [MyPlace] [inner] [normal] [SomePlace]
+%D \defineinmargin [YourPlace] [inner] [normal] [SomePlace]
+%D \stoptyping
+%D
+%D A torture test:
+%D
+%D \starttyping
+%D \startbuffer
+%D \inleft {\TestLine{red} {l}} test test test \par
+%D \inright {\TestLine{green} {r}} test test test \par
+%D \inmargin {\TestLine{blue} {m}} test test test \par
+%D \inothermargin{\TestLine{yellow} {x}} test test test \par
+%D \ininner {\TestLine{cyan} {i}} test test test \par
+%D \inouter {\TestLine{magenta}{o}} test test test \par
+%D \stopbuffer
+%D
+%D \dorecurse{80}\getbuffer \page
+%D \stoptyping
+%D
+%D and
+%D
+%D \starttyping
+%D \defineinmargin [InOuterA] [outer] [normal] [distance=0cm]
+%D \defineinmargin [InOuterB] [outer] [normal] [distance=1cm]
+%D \defineinmargin [InOuterC] [outer] [normal] [distance=2cm,line=2]
+%D
+%D \startbuffer
+%D \InOuterA{\TestLine{red} {A}} test test test \par
+%D \InOuterB{\TestLine{green}{B}} test test test \par
+%D \InOuterC{\TestLine{blue} {C}} test test test \par
+%D \stopbuffer
+%D
+%D \dorecurse{80}\getbuffer \page
+%D
+%D \dorecurse{10}{\inleft {one} test \inleft {two} test } \page
+%D
+%D \start
+%D \margintext {one} \margintext {two} \input thuan \par
+%D \setupinmargin[1][line=3,distance=1cm]
+%D \margintext [1]{one}
+%D \margintext [2]{two}
+%D \input thuan \page
+%D \stop
+%D
+%D \setupinmargin[3][location=inner,distance=1cm]
+%D \setupinmargin[4][location=outer,distance=2cm]
+%D
+%D % \setupinmargin[left] [line=2]
+%D % \setupinmargin[right][line=2]
+%D
+%D \dorecurse
+%D {10}
+%D {\margintext {\kern3cm\TestLine{blue}{none}}
+%D \margintext[3] {\TestLine{darkgray}{3}}
+%D \margintext[4] {\TestLine{darkgray}{4}}
+%D \margintext[left] {\TestLine{red} {left}}
+%D \margintext[right]{\TestLine{green} {right}}
+%D \margintext[inner]{\TestLine{cyan} {inner}}
+%D \margintext[outer]{\TestLine{magenta} {outer}}
+%D \input thuan \endgraf}
+%D
+%D \dorecurse{10}{\margintext{test\\test\\test} \input thuan \endgraf}
+%D \stoptyping
+
+% Test case:
+%
+% \setuppagenumbering[alternative=doublesided] \setupwhitespace[medium]
+%
+% \placefigure[right]{}{\externalfigure[dummy][width=2cm]}
+% \input tufte \inothermargin{test} \input tufte
+
+% test first
+%
+% setupsystem[random=1235]
+%
+% \setupinmargin[left][sidemethod=3]
+% \dorecurse{10}{test \fakewords{20}{40} test \inleft{test\\test} test \fakewords{20}{40} \par}
+% \page
+% \setupinmargin[left][sidemethod=4]
+% \dorecurse{40}{test \fakewords{50}{80} test \inleft{test\\test} \par}
+% \page
+
+\def\dodoinmargin[#1][#2][#3][#4][#5]#6%
+ {\bgroup
+ % old stuff, a bit tricky, but now interfaced
+ \edef\currentmargincontent{#1}%
+ \chardef\marginrepositionmethod\executeifdefined{\??im\currentmargincontent\c!sidemethod }\plusone
+ \chardef\margincontentmethod \executeifdefined{\??im\currentmargincontent\c!textmethod }\plusthree
+ \chardef\marginpagecheckmethod \executeifdefined{\??im\currentmargincontent\c!splitmethod}\plusone
+ % so far
+ \forgetall % otherwise sidefloat problems, added 2005/07/20, maybe dangerous
+ \postponenotes % group is (somehow) needed
+ \doifinsetelse\v!low{#4}
+ {\chardef\margincontentdisplacement\plusone}
+ {\chardef\margincontentdisplacement\zerocount}%
+ \doif\v!reverse{#2}
+ {\swapmacros\dorightmarginblock\doleftmarginblock}%
+ \processaction
+ [#1]
+ [ \v!left=>\let\next\doleftmarginblock, % no swapping
+ \v!right=>\let\next\dorightmarginblock, % no swapping
+ \v!inner=>\def\next{\doinmarginswapped\dorightmarginblock\doleftmarginblock },
+ \v!outer=>\def\next{\doinmarginswapped\doleftmarginblock \dorightmarginblock},
+ \s!unknown=>\ifdoublesided
+ \doifcommonelse{+,-}{#4}
+ {\def\next{\doinmarginswapped\dorightmarginblock\doleftmarginblock }}
+ {\def\next{\doinmarginswapped\doleftmarginblock \dorightmarginblock}}%
+ \else
+ \let\next\doleftmarginblock
+ \fi]%
+ \next{#3}{#6}%
+ \pagereference[#5]% naar binnen ! ! ! !
+ \flushnotes
+ \egroup % don't forget the group
+ \ignorespaces}
+
+% dit zijn voorlopig lokale commando's / vervallen
+%
+% \def\woordinmarge {\indentation\doquintupleempty\doinmargin[\@@implaats][\inleftmargin][\inrightmarge]}
+%
+% \def\woordinlinker {\inleftmargin } % vervallen
+% \def\woordinrechter{\inrechtermarge} % vervallen
+
+% Some day: \definemarking[\v!margetitel]
+
+%D Now come the margin text collectors. The collected content is
+%D flushed at every paragraph by the following macro. Note for
+%D myself: here the location (plaats) is no longer a tag (number).
+
+%D These are now all the same (long ago they had different
+%D implementations, somewhere in Sork time if I remember
+%D right).
+
+\def\margintext {\dodoubleempty\domargincontent}
+\def\marginword {\margintext}
+\def\margintitle{\margintext} % txt mark as well
+
+\newtoks\collectedmargintexts % so .. delayed!
+\chardef\margintextcollected \zerocount
+
+\def\domargincontent[#1][#2]#3% we used to check for #2/#1 being number, no longer now
+ {\global\chardef\margintextcollected\plusone
+ \global\let\flushmargincontents\doflushmargincontents
+ \edef\margincontenttag{#1}%
+ \ifx\margincontenttag\empty
+ \global\advance\margincontentlevel\plusone
+ \edef\margincontenttag{\number\margincontentlevel}%
+ \fi
+ \checkinmargin[\margincontenttag]%
+ \doglobal \appendetoks
+ \noexpand \checkinmargin[\margincontenttag]%
+ \noexpand \doinmargin[\executeifdefined{\??im\margincontenttag\c!location}\@@imlocation][\v!normal][\margincontenttag][\margincontenttag][#2]%
+ \to \collectedmargintexts
+ \doglobal \appendtoks
+ {#3}%
+ \to \collectedmargintexts}
+
+\def\doflushmargincontents % plural
+ {\ifcase\margintextcollected\else
+ \expandafter\flushmargincontentsindeed
+ \fi}
+
+\let\flushmargincontents\relax
+
+\def\flushmargincontentsindeed % links + rechts
+ {\bgroup
+ \forgetall
+ \global\margincontentheight\zeropoint
+ \startsignalrightpage
+ \the\collectedmargintexts
+ \signalrightpage
+ \stopsignalrightpage
+ \resetmargincontent
+ % dirty tricks
+ \ifcase\margincontentmethod
+ \donefalse
+ \else\ifinsidecolumns % brrrr
+ \donetrue % how fuzzy
+ \else\ifdim\margincontentheight>\lineheight\relax
+ \donetrue % how dirty
+ \else
+ \donefalse % how needed
+ \fi\fi\fi
+ \savemargincontentlines
+ \ifdone
+ \advance\margincontentheight \margincontentextralines\lineheight
+ \ifdim\pagegoal>\pagetotal
+ \bgroup % preserve \margincontentheight
+ \advance\margincontentheight \pagetotal
+ \ifdim\margincontentheight>\pagegoal
+ \egroup
+ \ifcase\marginpagecheckmethod
+ % disabled
+ \or
+ \setmargincontentpenalties
+ \or
+ % potentially dangerous, maybe better a \goodbreak; the problem is that
+ % there can be a penalty there, which we then overload and we also introduce
+ % nasty side effects, so, we drop this option
+ % \vadjust pre {\page}%
+ \fi
+ \else
+ \egroup
+ \fi
+ \fi
+ \else % We need the above because interlinepenalties overrule vadjusted \nobreaks.
+ % a bit dangerous
+ \vadjust{\nobreak}%
+ \fi
+ \global\let\flushmargincontents\relax
+ \egroup}
+
+\def\setmargincontentpenalties
+ {\getnoflines\margincontentheight
+ \keeplinestogether\noflines}
+
+\def\savemargincontentlines
+ {\bgroup
+ \advance\margincontentheight \margincontentextralines\lineheight % 1 by default
+ \getnoflines\margincontentheight
+ \xdef\nofmargincontentlines{\the\noflines}%
+ \egroup}
+
+\def\fillupmargincontentlines % etex ! ! !
+ {\endgraf
+ \begingroup
+ \scratchcounter\numexpr\nofmargincontentlines-\prevgraf\relax\relax
+ \ifnum\scratchcounter>\zerocount
+ \forgetall\dorecurse\scratchcounter{\nobreak\crlf}%
+ \fi
+ \endgroup}
+
+% Yet undocumented, for a manual flush in for instance headers.
+
+\def\resetmargincontent
+ {\global\margincontentlevel\zerocount
+ \global\chardef\margintextcollected\zerocount
+ \global\collectedmargintexts\emptytoks}
+
+\def\placemargincontent
+ {\ifcase\margintextcollected\else % was level check
+ \bgroup
+ \redoconvertfont % !!
+ \chardef\graphicvadjustmode\zerocount
+ \flushmargincontentsindeed
+ \egroup
+ \fi}
+
+% For old times sake (i use it in project styles) we provide
+
+\def\placemargintexts {\placemargincontent}
+\def\resetmargetitels {\resetmargincontent}
+\def\margewoordpositie{\margewoord} % obsolete, now no longer range
+
+% but never use them yourself since they may disappear.
+
+\def\oplinker#1%
+ {\strut
+ \graphicvadjust
+ {\dontcomplain
+ \setbox\scratchbox\vtop{\forgetall\strut#1}%
+ \getboxheight\scratchdimen\of\box\scratchbox
+ \vskip-\scratchdimen % waarom stond hier een \ ?
+ \box\scratchbox}}
+
+\setupinmargin
+ [\c!style=\v!bold,
+ \c!color=,
+ \c!strut=\v!auto,
+ \c!location=\v!both,
+ \c!align=\v!inner,
+ \c!stack=\v!no,
+ \c!before=,
+ \c!after=]
+
+\setupinmargin
+ [\v!left]
+ [\c!distance=\leftmargindistance,
+ \c!width=\leftmarginwidth,
+ %\c!align=\v!left, % no
+ \c!location=\v!left]
+
+\setupinmargin
+ [\v!right]
+ [\c!distance=\rightmargindistance,
+ \c!width=\rightmarginwidth,
+ %\c!align=\v!right, % no
+ \c!location=\v!right]
+
+% bonus needed when [inner/outer] is used as tag
+
+\setupinmargin[\v!inner][\c!location=\v!inner,\c!align=\v!inner]
+\setupinmargin[\v!outer][\c!location=\v!outer,\c!align=\v!inner]
+
+% more efficient (5K less fotmat file)
+%
+% \letvalue{\??im\v!inner\c!location}\v!inner \letvalue{\??im\v!inner\c!align}\v!inner
+% \letvalue{\??im\v!outer\c!location}\v!outer \letvalue{\??im\v!outer\c!align}\v!inner
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/page-mis.mkii b/Master/texmf-dist/tex/context/base/page-mis.mkii
new file mode 100644
index 00000000000..bd029f896b2
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/page-mis.mkii
@@ -0,0 +1,268 @@
+%D \module
+%D [ file=page-mis,
+%D version=2008.11.17, % was part of page-flt.tex / 2000.10.20
+%D title=\CONTEXT\ Page Macros,
+%D subtitle=Misc Float Things,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Page Macros / Misc Float Things}
+
+\unprotect
+
+\newif\ifmargeblokken
+
+\def\dosetupmarginblocks[#1]%
+ {\getparameters[\??mb][#1]%
+ \doifelse\@@mbstate\v!start
+ {\showmessage\m!layouts4\empty
+ \margeblokkentrue
+ \let\somenextfloat\dosomenextfloat
+ \let\startmarginblock\dostartmarginblock
+ \let\stopmarginblock\dostopmarginblock}%
+ {\showmessage\m!layouts5\empty
+ \margeblokkenfalse
+ \def\somenextfloat[##1]%
+ {\someelsefloat[##1,\v!here]}%
+ \let\startmarginblock\dontstartmargeblok
+ \let\stopmarginblock\dontstopmargeblok}}
+
+\def\setupmarginblocks
+ {\dosingleargument\dosetupmarginblocks}
+
+\newbox\marginbox
+
+\def\dosomenextfloat[#1]%
+ {\global\setbox\marginbox\vbox
+ {\hsize\@@mbwidth
+ \unvcopy\marginbox
+ \ifvoid\marginbox\else\expandafter\@@mbinbetween\fi
+ \box\floatbox\filbreak}%
+ \ifdim\ht\marginbox>\textheight
+ \dosavefloatinfo
+ \else
+ \doinsertfloatinfo
+ \fi}
+
+\newbox\preparedmarginbox
+
+\def\reshapemargin
+ {\ifdim\ht\preparedmarginbox>\zeropoint
+ \beginofshapebox
+ \unvbox\preparedmarginbox
+ \endofshapebox
+ \reshapebox
+ {\box\shapebox}%
+ \setbox\preparedmarginbox\vbox to \textheight
+ {\@@mbtop
+ \flushshapebox
+ \@@mbbottom}%
+ \fi}
+
+\def\plaatsrechtermargeblok
+ {\hskip\rightmarginwidth}
+
+\def\plaatslinkermargeblok
+ {\hskip\leftmarginwidth}
+
+\def\checkmargeblokken
+ {\ifvoid\marginbox\else\docheckmargeblokken\fi}
+
+\def\docheckmargeblokken % erg inefficient
+ {\setbox\preparedmarginbox\vbox
+ {\forgetall
+ \splittopskip\topskip
+ \ifvoid\marginbox\else
+ \ifdim\ht\marginbox>\textheight
+ \vsplit\marginbox to \textheight
+ \else
+ \unvbox\marginbox
+ \fi
+ \fi}%
+ \reshapemargin
+ \setbox\preparedmarginbox\vbox
+ {\@@mbbefore\box\preparedmarginbox\@@mbafter}%
+ \def\rightmarginbox
+ {\def\plaatsrechtermargeblok
+ {\setbox\preparedmarginbox\hbox to \rightmarginwidth
+ {\@@mbleft\box\preparedmarginbox\@@mbright}%
+ \vsmashbox\preparedmarginbox
+ \box\preparedmarginbox}}%
+ \def\leftmarginbox
+ {\def\plaatslinkermargeblok
+ {\setbox\preparedmarginbox\hbox to \leftmarginwidth
+ {\@@mbright\box\preparedmarginbox\@@mbleft}%
+ \vsmashbox\preparedmarginbox
+ \box\preparedmarginbox}}%
+ \processaction % traag
+ [\@@mblocation]
+ [ \v!inmargin=>\doifbothsidesoverruled\rightmarginbox\rightmarginbox\leftmarginbox,
+ \v!middle=>\doifbothsidesoverruled\rightmarginbox\leftmarginbox\rightmarginbox,
+ \v!left=>\leftmarginbox,
+ \v!right=>\rightmarginbox,
+ \s!unknown=>\setbox\preparedmarginbox\hbox{}]}
+
+\def\dostartmarginblock % 2 maal \vbox ivm \unvbox elders
+ {\global\setbox\marginbox\vtop\bgroup\vbox\bgroup
+ \hsize\@@mbwidth
+ \ifvoid\marginbox\else
+ \unvbox\marginbox
+ \@@mbinbetween
+ \fi
+ \setupalign[\@@mbalign]%
+ \dostartattributes\??mb\c!style\c!color{}%
+ \begstrut\ignorespaces}
+
+\def\dostopmarginblock
+ {\unskip\endstrut
+ \dostopattributes
+ \egroup
+ \egroup}
+
+\def\dontstartmargeblok
+ {\@@mbbefore
+ \bgroup
+ \dostartattributes\??mb\c!style\c!color\empty}
+
+\def\dontstopmargeblok
+ {\dostopattributes
+ \egroup
+ \@@mbafter}
+
+\newcounter\nofpostponedblocks
+
+\newif\ifinpostponing
+
+\newevery\everytopofpage\relax
+
+\appendtoks \the\everytopofpage \to\everystarttext
+\appendtoks\global\everytopofpage\emptytoks\to\everystoptext
+
+% \startpostponing [pagenumber] [+pageoffset]
+%
+% \startpostponing[2]
+% PAGE 2 \blank
+% \stoppostponing
+%
+% \startpostponing[+1]
+% PAGE +1 \blank
+% \stoppostponing
+%
+% \startpostponing[+2]
+% PAGE +2 \blank
+% \stoppostponing
+%
+% \starttext \dorecurse{4}{\input tufte \page} \stoptext
+
+\newtoks \postponedpageblocks
+\newcounter\nofpostponedpageblocks
+
+% \ifinpostponing: handhaven, want gebruikt in stijlen ! ! ! ! !
+
+\def\flushpagefloats
+ {\doifoddpageelse
+ {\ifvoid\collectedleftpagefloats
+ \ifvoid\collectedrightpagefloats\else
+ \unvbox\collectedrightpagefloats
+ \page
+ %\the\everytopofpage
+ \fi
+ \fi}
+ {\ifvoid\collectedleftpagefloats\else
+ \unvbox\collectedleftpagefloats
+ \page
+ %\the\everytopofpage
+ \fi
+ \ifvoid\collectedrightpagefloats\else
+ \unvbox\collectedrightpagefloats
+ \page
+ %\the\everytopofpage
+ \fi}%
+ \ifvoid\collectedpagefloats\else
+ % message
+ \unvbox\collectedpagefloats
+ \fi}
+
+% \def\flushrestfloats
+% {\doif{\floatsharedparameter\c!cache}\v!no\doflushfloats}
+
+% \let\flushrestfloats\relax
+
+\def\dopostponeblock
+ {\bgroup % new may 2004
+ \setsystemmode\v!postponing % new may 2004
+ \the\everytopofpage
+ %\flushrestfloats
+ \flushpagefloats
+ \donefalse
+ \ifinpostponing \else
+ \ifcase\nofpostponedblocks \else \donetrue \fi
+ \ifcase\nofpostponedpageblocks \else \donetrue \fi
+ \fi
+ \ifdone
+ \bgroup % we need the color/font switch, else problems inside split verbatim
+ \setnormalcatcodes % postponing in verbatim
+ \pushpostponedpagecolor
+ \restoreglobalbodyfont % The \nof-test is
+ \global\pagetotal\zeropoint % recently added and
+ \global\inpostponingtrue % definitely needed else
+ \the\postponedpageblocks % we can loose or disorder
+ \dorecurse\nofpostponedblocks % floats; anyhow, this
+ {\getbuffer[pbuf-\recurselevel]}% % mechanism is still
+ \doflushfloats % new but potential dangerous % suboptimal and needs a
+ \doglobal\newcounter\nofpostponedblocks % proper analysis
+ \global\inpostponingfalse
+ \poppostponedpagecolor
+ \egroup
+ \fi
+ \egroup} % new may 2004
+
+\def\getpostponedblock#1#2%
+ {\doif{#1}\realfolio{\getbuffer[rbuf-#2]}} % no \ifnum, avoid \fi
+
+% beware, \dosingleempty conflicts with buffers (feeds back the \par)
+
+\setvalue{\e!start\v!postponing}%
+ {\bgroup
+ \obeylines
+ \doifnextoptionalelse{\egroup\nodostartpostponing}{\egroup\dodostartpostponing}}
+
+\def\nodostartpostponing[#1]%
+ {\doglobal\increment\nofpostponedpageblocks
+ \bgroup % a little bit of misusing grouping
+ \doifinstring{+}{#1}\advance \realpageno#1\relax % ugly but efficient
+ \doglobal\appendetoks\noexpand\getpostponedblock
+ {\realfolio}{\nofpostponedpageblocks}\to\postponedpageblocks
+ \egroup
+ \showmessage\m!layouts3\nofpostponedpageblocks
+ \dostartbuffer[rbuf-\nofpostponedpageblocks]%
+ [\e!start\v!postponing][\e!stop\v!postponing]}
+
+\def\dodostartpostponing
+ {\doglobal\increment\nofpostponedblocks
+ \showmessage\m!layouts3\nofpostponedblocks
+ \expanded{\dostartbuffer[pbuf-\nofpostponedblocks][\e!start\v!postponing][\e!stop\v!postponing]}}
+
+% Setups:
+
+\setupmarginblocks
+ [\c!state=\v!start,
+ \c!location=\v!inmargin,
+ \c!width=\rightmarginwidth,
+ \c!style=,
+ \c!color=,
+ \c!align=,
+ \c!left=,
+ \c!right=,
+ \c!top=,
+ \c!inbetween=\blank,
+ \c!bottom=\vfill,
+ \c!before=,
+ \c!after=]
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/page-mis.mkiv b/Master/texmf-dist/tex/context/base/page-mis.mkiv
new file mode 100644
index 00000000000..a620835e470
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/page-mis.mkiv
@@ -0,0 +1,266 @@
+%D \module
+%D [ file=page-mis,
+%D version=2008.11.17, % was part of page-flt.tex / 2000.10.20
+%D title=\CONTEXT\ Page Macros,
+%D subtitle=Misc Float Things,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Page Macros / Misc Float Things}
+
+\unprotect
+
+\newif\ifmargeblokken
+
+\def\dosetupmarginblocks[#1]%
+ {\getparameters[\??mb][#1]%
+ \doifelse\@@mbstate\v!start
+ {\showmessage\m!layouts4\empty
+ \margeblokkentrue
+ \let\somenextfloat\dosomenextfloat
+ \let\startmarginblock\dostartmarginblock
+ \let\stopmarginblock\dostopmarginblock}%
+ {\showmessage\m!layouts5\empty
+ \margeblokkenfalse
+ \def\somenextfloat[##1]%
+ {\someelsefloat[##1,\v!here]}%
+ \let\startmarginblock\dontstartmargeblok
+ \let\stopmarginblock\dontstopmargeblok}}
+
+\def\setupmarginblocks
+ {\dosingleargument\dosetupmarginblocks}
+
+\newbox\marginbox
+
+\def\dosomenextfloat[#1]%
+ {\global\setbox\marginbox\vbox
+ {\hsize\@@mbwidth
+ \unvcopy\marginbox
+ \ifvoid\marginbox\else\expandafter\@@mbinbetween\fi
+ \box\floatbox\filbreak}%
+ \ifdim\ht\marginbox>\textheight
+ \dosavefloatinfo
+ \else
+ \doinsertfloatinfo
+ \fi}
+
+\newbox\preparedmarginbox
+
+\def\reshapemargin
+ {\ifdim\ht\preparedmarginbox>\zeropoint
+ \beginofshapebox
+ \unvbox\preparedmarginbox
+ \endofshapebox
+ \reshapebox
+ {\box\shapebox}%
+ \setbox\preparedmarginbox\vbox to \textheight
+ {\@@mbtop
+ \flushshapebox
+ \@@mbbottom}%
+ \fi}
+
+\def\plaatsrechtermargeblok
+ {\hskip\rightmarginwidth}
+
+\def\plaatslinkermargeblok
+ {\hskip\leftmarginwidth}
+
+\def\checkmargeblokken
+ {\ifvoid\marginbox\else\docheckmargeblokken\fi}
+
+\def\docheckmargeblokken % erg inefficient
+ {\setbox\preparedmarginbox\vbox
+ {\forgetall
+ \splittopskip\topskip
+ \ifvoid\marginbox\else
+ \ifdim\ht\marginbox>\textheight
+ \vsplit\marginbox to \textheight
+ \else
+ \unvbox\marginbox
+ \fi
+ \fi}%
+ \reshapemargin
+ \setbox\preparedmarginbox\vbox
+ {\@@mbbefore\box\preparedmarginbox\@@mbafter}%
+ \def\rightmarginbox
+ {\def\plaatsrechtermargeblok
+ {\setbox\preparedmarginbox\hbox to \rightmarginwidth
+ {\@@mbleft\box\preparedmarginbox\@@mbright}%
+ \vsmashbox\preparedmarginbox
+ \box\preparedmarginbox}}%
+ \def\leftmarginbox
+ {\def\plaatslinkermargeblok
+ {\setbox\preparedmarginbox\hbox to \leftmarginwidth
+ {\@@mbright\box\preparedmarginbox\@@mbleft}%
+ \vsmashbox\preparedmarginbox
+ \box\preparedmarginbox}}%
+ \processaction % traag
+ [\@@mblocation]
+ [ \v!inmargin=>\doifbothsidesoverruled\rightmarginbox\rightmarginbox\leftmarginbox,
+ \v!middle=>\doifbothsidesoverruled\rightmarginbox\leftmarginbox\rightmarginbox,
+ \v!left=>\leftmarginbox,
+ \v!right=>\rightmarginbox,
+ \s!unknown=>\setbox\preparedmarginbox\hbox{}]}
+
+\def\dostartmarginblock % 2 maal \vbox ivm \unvbox elders
+ {\global\setbox\marginbox\vtop\bgroup\vbox\bgroup
+ \hsize\@@mbwidth
+ \ifvoid\marginbox\else
+ \unvbox\marginbox
+ \@@mbinbetween
+ \fi
+ \setupalign[\@@mbalign]%
+ \dostartattributes\??mb\c!style\c!color{}%
+ \begstrut\ignorespaces}
+
+\def\dostopmarginblock
+ {\unskip\endstrut
+ \dostopattributes
+ \egroup
+ \egroup}
+
+\def\dontstartmargeblok
+ {\@@mbbefore
+ \bgroup
+ \dostartattributes\??mb\c!style\c!color\empty}
+
+\def\dontstopmargeblok
+ {\dostopattributes
+ \egroup
+ \@@mbafter}
+
+\newcounter\nofpostponedblocks
+
+\newif\ifinpostponing
+
+\newevery\everytopofpage\relax
+
+\appendtoks \the\everytopofpage \to\everystarttext
+\appendtoks\global\everytopofpage\emptytoks\to\everystoptext
+
+% \startpostponing [pagenumber] [+pageoffset]
+%
+% \startpostponing[2]
+% PAGE 2 \blank
+% \stoppostponing
+%
+% \startpostponing[+1]
+% PAGE +1 \blank
+% \stoppostponing
+%
+% \startpostponing[+2]
+% PAGE +2 \blank
+% \stoppostponing
+%
+% \starttext \dorecurse{4}{\input tufte \page} \stoptext
+
+\newtoks \postponedpageblocks
+\newcounter\nofpostponedpageblocks
+
+% \ifinpostponing: handhaven, want gebruikt in stijlen ! ! ! ! !
+
+\def\flushpagefloats
+ {\doifoddpageelse
+ {\ifvoid\collectedleftpagefloats
+ \ifvoid\collectedrightpagefloats\else
+ \unvbox\collectedrightpagefloats
+ \page
+ %\the\everytopofpage
+ \fi
+ \fi}
+ {\ifvoid\collectedleftpagefloats\else
+ \unvbox\collectedleftpagefloats
+ \page
+ %\the\everytopofpage
+ \fi
+ \ifvoid\collectedrightpagefloats\else
+ \unvbox\collectedrightpagefloats
+ \page
+ %\the\everytopofpage
+ \fi}%
+ \ifvoid\collectedpagefloats\else
+ % message
+ \unvbox\collectedpagefloats
+ \fi}
+
+% \def\flushrestfloats
+% {\doif{\floatsharedparameter\c!cache}\v!no\doflushfloats}
+
+% \let\flushrestfloats\relax
+
+\def\dopostponeblock
+ {\bgroup % new may 2004
+ \setsystemmode\v!postponing % new may 2004
+ \the\everytopofpage
+ %\flushrestfloats
+ \flushpagefloats
+ \donefalse
+ \ifinpostponing \else
+ \ifcase\nofpostponedblocks \else \donetrue \fi
+ \ifcase\nofpostponedpageblocks \else \donetrue \fi
+ \fi
+ \ifdone
+ \bgroup % we need the color/font switch, else problems inside split verbatim
+ \setnormalcatcodes % postponing in verbatim
+ \restoreglobalbodyfont % The \nof-test is
+ \global\pagetotal\zeropoint % recently added and
+ \global\inpostponingtrue % definitely needed else
+ \the\postponedpageblocks % we can loose or disorder
+ \dorecurse\nofpostponedblocks % floats; anyhow, this
+ {\getbuffer[pbuf-\recurselevel]}% % mechanism is still
+ \doflushfloats % new but potential dangerous % suboptimal and needs a
+ \doglobal\newcounter\nofpostponedblocks % proper analysis
+ \global\inpostponingfalse
+ \egroup
+ \fi
+ \egroup} % new may 2004
+
+\def\getpostponedblock#1#2%
+ {\doif{#1}\realfolio{\getbuffer[rbuf-#2]}} % no \ifnum, avoid \fi
+
+% beware, \dosingleempty conflicts with buffers (feeds back the \par)
+
+\setvalue{\e!start\v!postponing}%
+ {\bgroup
+ \obeylines
+ \doifnextoptionalelse{\egroup\nodostartpostponing}{\egroup\dodostartpostponing}}
+
+\def\nodostartpostponing[#1]%
+ {\doglobal\increment\nofpostponedpageblocks
+ \bgroup % a little bit of misusing grouping
+ \doifinstring{+}{#1}\advance \realpageno#1\relax % ugly but efficient
+ \doglobal\appendetoks\noexpand\getpostponedblock
+ {\realfolio}{\nofpostponedpageblocks}\to\postponedpageblocks
+ \egroup
+ \showmessage\m!layouts3\nofpostponedpageblocks
+ \dostartbuffer[rbuf-\nofpostponedpageblocks]%
+ [\e!start\v!postponing][\e!stop\v!postponing]}
+
+\def\dodostartpostponing
+ {\doglobal\increment\nofpostponedblocks
+ \showmessage\m!layouts3\nofpostponedblocks
+ \expanded{\dostartbuffer[pbuf-\nofpostponedblocks][\e!start\v!postponing][\e!stop\v!postponing]}}
+
+% Setups:
+
+\setupmarginblocks
+ [\c!state=\v!start,
+ \c!location=\v!inmargin,
+ \c!width=\rightmarginwidth,
+ \c!style=,
+ \c!color=,
+ \c!align=,
+ \c!left=,
+ \c!right=,
+ \c!top=,
+ \c!inbetween=\blank,
+ \c!bottom=\vfill,
+ \c!before=,
+ \c!after=]
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/page-mul.tex b/Master/texmf-dist/tex/context/base/page-mul.mkii
index e8375d2e0e5..c78af074ada 100644
--- a/Master/texmf-dist/tex/context/base/page-mul.tex
+++ b/Master/texmf-dist/tex/context/base/page-mul.mkii
@@ -1,7 +1,7 @@
%D \module
%D [ file=page-mul, % was: core-mul
%D version=1998.03.15,
-%D title=\CONTEXT\ OTR Macros,
+%D title=\CONTEXT\ Page Macros,
%D subtitle=Multi Column Output,
%D author=Hans Hagen,
%D date=\currentdate,
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context OTR Macros / Simple Multi Column}
+\writestatus{loading}{ConTeXt Page Macros / Simple Multi Column}
%D This module is mostly a copy from the original multi column
%D routine as implemented in \type {core-mul}. When the main
@@ -464,7 +464,7 @@
\global\output{\continuousmulticolumnsout}%
\setcolumnfloats
\dohandleallcolumns
- {\global\setbox\currenttopcolumnbox\box\voidb@x}%
+ {\global\setbox\currenttopcolumnbox\emptybox}%
\checkbegincolumnfootnotes
\activateotr{MUL}{ONE}% todo ! ! ! !
\let\sethsize\setcolumnhsize
@@ -495,7 +495,9 @@
\ifnum\multicolumnendsyncmethod=\plustwo
\synchronizeoutput
\else
- \vskip\lineheight\vskip-\lineheight % take footnotes into account
+ % don't combine these
+ \vskip\lineheight
+ \vskip-\lineheight % take footnotes into account
\fi
\dontshowcomposition
\doflushcolumnfloat % added recently
@@ -640,7 +642,7 @@
{\ifdim-\ht\currenttopcolumnbox<\scratchdimen
\scratchdimen-\ht\currenttopcolumnbox
\fi
- \global\setbox\currenttopcolumnbox\box\voidb@x}%
+ \global\setbox\currenttopcolumnbox\emptybox}%
\advance\scratchdimen \ht\columnpagebox
\setbox\scratchbox\hbox to \columntextwidth
{\vrule
diff --git a/Master/texmf-dist/tex/context/base/page-mul.mkiv b/Master/texmf-dist/tex/context/base/page-mul.mkiv
new file mode 100644
index 00000000000..789cfbe439c
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/page-mul.mkiv
@@ -0,0 +1,1755 @@
+%D \module
+%D [ file=page-mul, % was: core-mul
+%D version=1998.03.15,
+%D title=\CONTEXT\ Page Macros,
+%D subtitle=Multi Column Output,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Page Macros / Simple Multi Column}
+
+%D This module is mostly a copy from the original multi column
+%D routine as implemented in \type {core-mul}. When the main
+%D OTR macro's were isolated in modules and column sets were
+%D introduced, this module became part of the OTR modules. As
+%D a result this module is no longer generic. It also needs
+%D an overhaul.
+
+\unprotect
+
+% TO DO !
+
+\let\OTRMULsetvsize \OTRONEsetvsize
+\let\OTRMULsethsize \OTRONEsethsize
+\let\OTRMULdopagecontents \OTRONEdopagecontents
+\let\OTRMULfinalsidefloatoutput\OTRONEfinalsidefloatoutput % ???
+\let\OTRMULflushfloatbox \OTRONEflushfloatbox
+
+\let\OTRMULdosettopinserts \relax
+\let\OTRMULdosetbotinserts \relax
+\let\OTRMULdotopinsertions \relax
+\let\OTRMULdobotinsertions \relax
+\let\OTRMULdosetbothinserts \relax
+\let\OTRMULflushsavedfloats \relax
+
+\let\OTRMULflushsidefloats \forgetsidefloats % \relax
+\let\OTRMULsynchronizesidefloats\forgetsidefloats % \relax
+
+\newtoks \OTRMULoutput
+
+\def\OTRMULgotonextpage
+ {\ejectpage}
+
+\def\OTRMULgotonextpageX % will become obsolete
+ {\superejectpage}
+
+% check \count<insert> multiplications
+
+% some day try this in balancing routine
+%
+% \ifdim\pagetotal>\pagegoal
+% \eject
+% \else
+% \goodbreak
+% \fi
+
+%D The following macro's implement a multi||column output
+%D routine. The original implementation was based on Donald
+%D Knuth's implementation, which was adapted by Craig Platt to
+%D support balancing of the last page. I gradually adapted
+%D Platt's version to our needs but under certain
+%D circumstances things still went wrong. I considered all
+%D calls to Platt's \type{\balancingerror} as undesirable.
+
+%D This completely new implementation can handle enough
+%D situations for everyday documents, but is still far from
+%D perfect. While at the moment the routine doesn't support
+%D all kind of floats, it does support:
+%D
+%D \startitemize[packed]
+%D \item an unlimitted number of columns
+%D \item ragged or not ragged bottoms
+%D \item optional balancing without \type{\balancingerrors}
+%D \item different \type{\baselineskips}, \type{\spacing},
+%D \type{\topskip} and \type{\maxdepth}
+%D \item left- and right indentation, e.g. within lists
+%D \item moving columns floats to the next column or page
+%D \item handling of floats that are to wide for a columns
+%D \stopitemize
+%D
+%D One could wonder why single and multi||columns modes are
+%D still separated. One reason for this is that \TeX\ is not
+%D suited well for handling multi||columns. As a result, the
+%D single columns routines are more robust. Handling one
+%D column as a special case of multi||columns is posible but at
+%D the cost of worse float handling, worse page breaking,
+%D worse etc. Complicated multi||column page handling should
+%D be done in \cap{DTP}||systems anyway.
+%D
+%D There are three commands provided for entering and leaving
+%D multi||column mode and for going to the next column:
+%D
+%D \interface \type{\beginmulticolumns} \\ \\
+%D \interface \type{\endmulticolumns} \\ \\
+%D \interface \type{\ejectcolumn} \\ \\
+%D
+%D This routines are sort of stand||alone. They communicate
+%D with the rest of \CONTEXT\ by means of some interface
+%D macro's, which we only mention.
+%D
+%D \interface \type{\nofcolumns} \\
+%D the number of columns \\
+%D \interface \type{\minbalancetoplines} \\
+%D the minimum number op balanced top lines \\
+%D \interface \type{\betweencolumns} \\
+%D the stuff between columns \\
+%D \interface \type{\finaloutput{action}{box}} \\
+%D some kind of \type{\pagebody} and \type{\shipout} \\
+%D
+%D \interface \type{\ifbalancecolumns} \\
+%D balancing the colums or not \\
+%D \interface \type{\ifstretchcolumns} \\
+%D ragging the bottom or not \\
+%D
+%D \interface \type{\ifheightencolumns} \\
+%D fix the heigh tor not \\
+%D \interface \type{\fixedcolumnheight} \\
+%D the optional fixed height \\
+%D
+%D \interface \type{\ifinheritcolumns} \\
+%D handle ragging or not \\
+%D \interface \type{\ifr@ggedbottom} \\
+%D use ragged bottoms \\
+%D \interface \type{\ifb@selinebottom} \\
+%D put the bottom line on the baseline \\
+%D \interface \type{\ifnormalbottom} \\
+%D put the bottom line at the baseline \\
+%D
+%D \interface \type{\ifreversecolumns} \\
+%D reverse the order in wich columns are flushed \\
+%D
+%D \interface \type{\usercolumnwidth} \\
+%D the calculated width of a column \\
+%D \interface \type{\columntextwidth} \\
+%D the maximum width of a column \\
+%D \interface \type{\columntextheight} \\
+%D the minimum width of a column \\
+%D
+%D \interface \type{\spacingfactor} \\
+%D the spacing factor \\
+%D \interface \type{\bodyfontsize} \\
+%D the (local) bodyfontsize \\
+%D \interface \type{\openlineheight} \\
+%D the lineheight (including \type{\spacing}) \\
+%D
+%D \interface \type{\EveryBodyFont} \\
+%D communication channel to font switching routines \\
+%D
+%D \interface \type{\global\settopskip} \\
+%D set \type{\topskip} \\
+%D \interface \type{\setvsize} \\
+%D set \type{\vsize} and \type{\pagegoal} \\
+%D \interface \type{\sethsize} \\
+%D set \type{\hsize} \\
+%D
+%D \interface \type{\flushcolumnfloats} \\
+%D push saved column floats (next page) \\
+%D \interface \type{\flushcolumnfloat} \\
+%D push saved column floats (next column) \\
+%D \interface \type{\setcolumnfloats} \\
+%D initialize column floats \\
+%D
+%D \interface \type{\finishcolumnbox} \\
+%D do something special (a hook) \\
+%D \interface \type{\postprocesscolumnpagebox} \\
+%D do something with each columnbox (also a hook) \\
+%D \interface \type{\postprocesscolumnbox} \\
+%D do something with each columnbox (also a hook) \\
+%D \interface \type{\postprocesscolumnline} \\
+%D do something with each columnline (also a hook) \\
+%D \interface \type{\currentcolumn} \\
+%D the current column \\
+%D
+%D These interface macro's are called upon or initialized
+%D by the multi||column macro's.
+
+%D A lot of footnote stuff added!
+
+\def\finalcolumntextwidth {\makeupwidth}
+\def\finalcolumntextheight {\textheight}
+\def\columntextwidth {\makeupwidth}
+\def\columntextheight {\textheight}
+\def\usercolumnwidth {\textwidth}
+\def\columntextoffset {\!!zeropoint}
+
+\def\fixedcolumnheight {\textheight}
+\def\betweencolumns {\hskip\bodyfontsize}
+
+\let\setcolumnfloats \relax % in CONTEXT used for floats
+\let\flushcolumnfloats \relax % in CONTEXT used for floats
+\let\flushcolumnfloat \relax % in CONTEXT used for floats
+\let\finishcolumnbox \relax % in CONTEXT used for backgrounds
+
+% %D In fact, the column height and width are set by means of
+% %D two macro's. One can change their meaning if needed:
+%
+% \def\setcolumntextheight
+% {\def\columntextheight{\teksthoogte}}
+%
+% \def\setcolumntextwidth
+% {\def\columntextwidth{\zetbreedte}}
+
+%D Both macros are redefined in \CONTEXT\ when backgrounds
+%D are applied to columns. The final values are used when
+%D flushing the columns.
+
+\newtoks\singlecolumnout % remove that one
+
+%D It's more convenient to use \type {\columnwidth} instead
+%D of messing around with boxes each time.
+
+\newdimen\columnwidth
+\newdimen\gutterwidth
+
+\def\determinecolumnwidth
+ {\bgroup
+ \setbox\scratchbox\hbox
+ {\setcolumnhsize
+ \global\columnwidth\usercolumnwidth
+ \global\gutterwidth\intercolumnwidth}%
+ \egroup}
+
+%D Going to a new columns is done by means of a
+%D \type{\ejectcolumn}. The following definition does not
+%D always work.
+
+\def\ejectcolumn
+ {\goodbreak\showmessage\m!columns2\empty}
+
+%D The next macro should never be called so let's deal with it.
+%D There were several solutions to these kind of errors. First
+%D we check for a good breakpoint before firing up the
+%D multi||column routine (\type{\break} or \type{\allowbreak}).
+%D We do the same at the end of the routine
+%D (\type{\allowbreak}). These allowances are definitely
+%D needed!
+%D
+%D Some on first sight redundant calls to for instance
+%D \type{\setvsize} in the flushing, splitting and balancing
+%D macro's can definitely not be omitted! Some are just there
+%D to handle situations that only few times arise. One of
+%D those can be that the output routine is invoked before
+%D everything is taken care of. This happens when we
+%D flush (part of) the current page with an \type{\unvbox}
+%D with a \type{\pagetotal}~$\approx$ \type{\pagegoal}. One
+%D simply cannot balance columns that are just balanced.
+%D
+%D I hope one never sees the following message. Because it
+%D took me a lot of time to develop the multi||columns
+%D routines, every (although seldom) warning gives me the
+%D creeps!
+
+\def\balancingerror
+ {\showmessage\m!columns3\empty
+ \finaloutput\unvbox\normalpagebox}
+
+\def\OTRMULsometopsfloat{\showmessage\m!columns4\empty \someherefloat}
+\def\OTRMULsomebotsfloat{\showmessage\m!columns5\empty \someherefloat}
+
+\def\OTRMULsomeherefloat{\OTRONEsomeherefloat}
+
+%D The local column width is available in the dimension
+%D register \type{\localcolumnwidth}, which is calculated as:
+
+\def\setcolumnhsize % beware, this one is available for use in macros
+ {\setbox\scratchbox\hbox{\parindent\zeropoint\betweencolumns}%
+ \intercolumnwidth\wd\scratchbox
+ \localcolumnwidth\columntextwidth
+ \advance\localcolumnwidth -\leftskip
+ \advance\localcolumnwidth -\rightskip
+ % new
+ \advance\localcolumnwidth -\colleftskip
+ \advance\localcolumnwidth -\colrightskip
+ %
+ \advance\localcolumnwidth -\nofcolumns\intercolumnwidth
+ \advance\localcolumnwidth \intercolumnwidth
+ \divide \localcolumnwidth \nofcolumns
+ \scratchdimen\columntextoffset
+ \multiply\scratchdimen \plustwo
+ \advance\localcolumnwidth -\scratchdimen
+ \usercolumnwidth\localcolumnwidth
+ \hsize\localcolumnwidth} % we don't do it \global
+
+%D Torture test:
+%D
+%D \startbuffer
+%D \startbuffer[b]
+%D \startcolumns
+%D \input tufte
+%D \stopcolumns
+%D \stopbuffer
+%D \typebuffer[b] \getbuffer[b]
+%D
+%D \startbuffer[b]
+%D \startnarrower
+%D \input tufte
+%D \stopnarrower
+%D \stopbuffer
+%D \typebuffer[b] \getbuffer[b]
+%D
+%D \startbuffer[b]
+%D \startcolumns \startnarrower
+%D \input tufte
+%D \stopnarrower \stopcolumns
+%D \stopbuffer
+%D \typebuffer[b] \getbuffer[b]
+%D
+%D \startbuffer[b]
+%D \startnarrower \startcolumns
+%D \input tufte
+%D \stopcolumns \stopnarrower
+%D \stopbuffer
+%D \typebuffer[b] \getbuffer[b]
+%D
+%D \startbuffer[b]
+%D \startcolumns \startnarrower[left]
+%D \input tufte
+%D \stopnarrower \stopcolumns
+%D \stopbuffer
+%D \typebuffer[b] \getbuffer[b]
+%D
+%D \startbuffer[b]
+%D \startnarrower[left] \startcolumns
+%D \input tufte
+%D \stopcolumns \stopnarrower
+%D \stopbuffer
+%D \typebuffer[b] \getbuffer[b]
+%D
+%D \startbuffer[b]
+%D \startnarrower \startcolumns \startnarrower
+%D \input tufte
+%D \stopnarrower\stopcolumns \stopnarrower
+%D \stopbuffer
+%D \typebuffer[b] \getbuffer[b]
+%D
+%D \startbuffer[b]
+%D \startnarrower[left] \startcolumns \startnarrower
+%D \input tufte
+%D \stopnarrower\stopcolumns \stopnarrower
+%D \stopbuffer
+%D \typebuffer[b] \getbuffer[b]
+%D \stopbuffer
+%D
+%D \start
+%D \def\postprocesscolumnline#1{\ruledhbox{\strut\box#1}\hss}
+%D \getbuffer
+%D \stop
+
+%D One should be aware that when font related dimensions are
+%D used in typesetting the in||between material, these
+%D dimensions are influenced by bodyfont switches inside
+%D multi||column mode.
+
+\newdimen\mcscratchdimen
+\newcount\nofcolumnlines
+
+\chardef\multicolumnlinemethod\zerocount % 0: overshoot (old default), 1: tight
+% \chardef\multicolumnlinemethod\plusone
+
+\def\getmulticolumnlines
+ {\mcscratchdimen-\columntextoffset
+ \multiply\mcscratchdimen \plustwo
+ \advance\mcscratchdimen \columntextheight
+ \ifdim\precolumnboxheight>\zeropoint
+ \advance\mcscratchdimen -\precolumnboxheight
+ \fi
+ \settotalinsertionheight
+ \advance\mcscratchdimen -\totalinsertionheight
+ \ifcase\multicolumnlinemethod \getnoflines\mcscratchdimen
+ \or \getrawnoflines\mcscratchdimen
+ \else \getrawnoflines\mcscratchdimen
+ \fi
+ % added 30/7/2004
+ \ifnum\layoutlines>\zerocount \ifnum\noflines>\layoutlines
+ \noflines\layoutlines
+ \fi \fi
+ \nofcolumnlines\noflines}
+
+\def\multicolumnovershootratio{.5} % {\ifgridsnapping0\else.5\fi}
+
+\def\setcolumnvsize
+ {\getmulticolumnlines
+ \mcscratchdimen\nofcolumnlines\openlineheight
+ \advance\mcscratchdimen \multicolumnovershootratio\openlineheight % collect enough data
+ \global\vsize\nofcolumns\mcscratchdimen
+ \global\pagegoal\vsize} % let's do it only here
+
+%D It really starts here. After some checks and initializations
+%D we change the output routine to continous multi||column
+%D mode. This mode handles columns that fill the current and
+%D next full pages. The method used is (more or less)
+%D multiplying \type{\vsize} and dividing \type{\hsize} by
+%D \type{\nofcolumns}. More on this can be found in the
+%D \TeX book. We save the top of the current page in box
+%D \type{\precolumnbox}.
+%D
+%D We manipulate \type{\topskip} a bit, just to be shure that
+%D is has no flexibility. This has te be done every time a
+%D font switch takles place, because \type{\topskip} can depend
+%D on this.
+%D
+%D Watch the trick with the \type{\vbox}. This way we get the
+%D right interlining and white space.
+
+\def\beginmulticolumns
+ {\par
+ \flushnotes
+ \xdef\precolumndepth{\the\prevdepth}%
+ \begingroup
+ % new
+ \leftskip1\leftskip
+ \rightskip1\rightskip
+ \edef\colleftskip {\the\leftskip}%
+ \edef\colrightskip{\the\rightskip}%
+ \leftskip\zeropoint
+ \rightskip\zeropoint
+ %
+ \dontshowcomposition
+ %\setcolumntextwidth\relax
+ %\setcolumntextheight\relax
+ \widowpenalty\zerocount % is gewoon beter
+ \clubpenalty \zerocount % zeker bij grids
+ \ifsomefloatwaiting
+ \showmessage\m!columns6{\the\savednoffloats}%
+ \global\setbox\savedfloatlist\box\floatlist
+ \xdef\restoresavedfloats
+ {\global\savednoffloats\the\savednoffloats
+ \global\setbox\floatlist\box\savedfloatlist
+ \global\noexpand\somefloatwaitingtrue}%
+ \global\savednoffloats\zerocount
+ \global\somefloatwaitingfalse
+ \else
+ \global\let\restoresavedfloats\relax
+ \fi
+ \dimen0\dimexpr\pagetotal+\parskip+\openlineheight\relax
+ \ifdim\dimen0<\pagegoal
+ \allowbreak
+ \else
+ \break % Sometimes fails
+ \fi
+ \appendtoks\topskip1\topskip\to\everybodyfont
+ \the\everybodyfont % ugly here
+ \saveinterlinespace % ugly here
+ \initializecolumns\nofcolumns
+ \hangafter\zerocount
+ \hangindent\zeropoint
+ \everypar\emptytoks
+ \ifdim\pagetotal=\zeropoint \else
+ \verticalstrut
+ \vskip-\struttotal
+ \fi
+ \global\savedpagetotal\pagetotal
+ \global\singlecolumnout\output
+ %\global\output{\global\setbox\precolumnbox\vbox{\unvbox\normalpagebox}}%
+ \global\output{\global\setbox\precolumnbox\vbox{\dotopinsertions\unvbox\normalpagebox}}%
+ \eject % no \holdinginserts=1, can make footnote disappear !
+ \global\precolumnboxheight\ht\precolumnbox
+ \global\output{\continuousmulticolumnsout}%
+ \setcolumnfloats
+ \dohandleallcolumns
+ {\global\setbox\currenttopcolumnbox\emptybox}%
+ \checkbegincolumnfootnotes
+ \activateotr{MUL}{ONE}% todo ! ! ! !
+ \let\sethsize\setcolumnhsize
+ \let\setvsize\setcolumnvsize
+ \sethsize
+ \setvsize
+ \showcomposition}
+
+%D When we leave the multi||column mode, we have to process the
+%D not yet shipped out part of the columns. When we don't
+%D balance, we simply force a continuous output, but a balanced
+%D output is more tricky.
+
+%D First we try to fill up the page and when all or something
+%D is left we try to balance things. This is another useful
+%D adaption of the ancesters of these macro's. It takes some
+%D reasoning to find out what happens and maybe I'm making
+%D some mistake, but it works.
+%D
+%D Voiding box \type{\precolumnbox} is sometimes necessary,
+%D e.g. when there is no text given between \type{\begin..}
+%D and \type{\end..}. The \type{\par} is needed!
+
+\chardef\multicolumnendsyncmethod\plusone % 1: old sync 2: new sync (cont-loc/project) / may fail ! ! ! !
+
+\def\endmulticolumns
+ {%\par
+ \ifnum\multicolumnendsyncmethod=\plustwo
+ \synchronizeoutput
+ \else
+ % don't combine these
+ \vskip\lineheight
+ \vskip-\lineheight % take footnotes into account
+ \fi
+ \dontshowcomposition
+ \doflushcolumnfloat % added recently
+ %\doflushcolumnfloats % no, since it results in wrong top floats
+ \flushnotes % before start of columns
+ \par
+ \ifbalancecolumns
+ \ifnum\multicolumnendsyncmethod=\plusone
+ \global\output{\continuousmulticolumnsout}%
+ \goodbreak
+ \fi
+ \global\output{\balancedmulticolumnsout}%
+ \else
+ \goodbreak
+ \fi
+ \eject % the prevdepth is important, try e.g. toclist in
+ \prevdepth\zeropoint % columns before some noncolumned text text
+ \global\output\singlecolumnout
+ \global\output{\the\mainoutput}% % % % % todo
+ \ifvoid\precolumnbox\else
+ \unvbox\precolumnbox
+ \fi
+ \global\precolumnboxheight\zeropoint
+ \endgroup % here
+ \nofcolumns\plusone
+ \setvsize % the outer one!
+ \synchronizeoutput % new may 2004 / we need to: \pagegoal\vsize
+ \checkendcolumnfootnotes
+ \dosomebreak\allowbreak
+ \restoresavedfloats}
+
+%D Because some initializations happen three times, we
+%D defined a macro for them. Erasing \type{\everypar} is
+%D needed because we don't want anything to interfere.
+
+\def\setmulticolumnsout
+ {\everypar\emptytoks
+ \dontcomplain
+ \settopskip
+ \setmaxdepth
+ \topskip1\topskip
+ \splittopskip\topskip
+ \splitmaxdepth\maxdepth
+ \boxmaxdepth\maxdepth % dangerous
+ \emergencystretch\zeropoint\relax} % sometimes needed !
+
+%D Flushing the page comes to pasting the columns together and
+%D appending the result to box \type{\precolumnbox}, if not
+%D void. I've seen a lot of implementations in which some skip
+%D was put between normal text and multi||column text. When we
+%D don't want this, the baselines can be messed up. I hope the
+%D seemingly complicated calculation of a correction
+%D \type{\kern} is adequate to overcome this. Although not
+%D watertight, spacing is taken into account and even multiple
+%D mode changes on one page go well. But cross your fingers and
+%D don't blame me.
+%D
+%D One of the complications of flushing out the boxes is that
+%D \type{\precolumnbox} needs to be \type{\unvbox}'ed, otherwise
+%D there is too less flexibility in the page when using
+%D \type{\r@ggedbottom}. It took a lot of time before these
+%D kind of problems were overcome. Using \type{\unvbox} at the
+%D wrong moment can generate \type{\balancingerror}'s.
+%D
+%D One can use the macros \type {\maxcolumnheight} and \type
+%D {\maxcolumndepth} when generating material between columns
+%D as well as postprocessing column lines.
+
+\let\maxcolumnheight=\zeropoint
+\let\maxcolumndepth =\zeropoint
+
+\newbox\columnpagebox
+
+\def\setmaxcolumndimensions
+ {\let\maxcolumnheight\!!zeropoint
+ \let\maxcolumndepth \!!zeropoint
+ \dohandleallcolumns
+ {\ifdim\ht\currentcolumnbox>\maxcolumnheight
+ \edef\maxcolumnheight{\the\ht\currentcolumnbox}%
+ \fi
+ \ifdim\dp\currentcolumnbox>\maxcolumndepth
+ \edef\maxcolumndepth{\the\dp\currentcolumnbox}%
+ \fi}}
+
+\chardef\multicolumntopflushmethod\plusone % 0: no correction, 1: correction when topstuff, 2: correction, 3: correction++
+\chardef\multicolumntopalignmethod\plustwo % 0: nothing, 1: force grid, 2: follow grid
+
+\def\flushprecolumnboxnogrid
+ {\unvbox\precolumnbox}
+
+\def\flushprecolumnboxongrid
+ {\scratchdimen\savedpagetotal
+ \advance\scratchdimen -\ht\precolumnbox
+ \advance\scratchdimen -\dp\precolumnbox
+ \advance\scratchdimen -\topskip
+ \box\precolumnbox
+ \kern\scratchdimen}
+
+\newconditional\someprecolumncontent
+
+\def\flushcolumnedpage#1%
+ {\bgroup
+ \ifvoid\precolumnbox
+ \setfalse\someprecolumncontent % will be set elsewhere
+ \else
+ \settrue\someprecolumncontent
+\mkprocessboxcontents\precolumnbox
+ \fi
+ \forgetall
+ \setmulticolumnsout
+ \showcomposition
+ \setmaxcolumndimensions
+ \dohandleallcolumns
+ {\mkprocesscolumncontents\currentcolumnbox}%
+ \postprocesscolumns
+ \dohandleallcolumns % \hbox i.v.m. \showcomposition
+ {\global\setbox\currentcolumnbox\hbox to \localcolumnwidth
+ {\box\currentcolumnbox
+ \global\wd\currentcolumnbox\localcolumnwidth
+ \ifheightencolumns
+ \global\ht\currentcolumnbox\fixedcolumnheight
+ \fi}}%
+ \setmaxcolumndimensions
+ \overlaycolumnfootnotes
+ \setbox\columnpagebox\vbox
+ {\hbox to \finalcolumntextwidth
+ {\hskip\colleftskip\relax % new, \relax needed
+ \ifreversecolumns
+ \@EA\dohandlerevcolumns
+ \else
+ \@EA\dohandleallcolumns
+ \fi
+ {\finishcolumnbox{\hbox
+ {\ifx\finishcolumnbox\relax\else\strut\fi
+ \box\currentcolumnbox}}%
+ \hfil}%
+ \unskip
+ \hskip\colrightskip}}% new
+ \scratchdimen\zeropoint
+ \dohandleallcolumns
+ {\ifdim-\ht\currenttopcolumnbox<\scratchdimen
+ \scratchdimen-\ht\currenttopcolumnbox
+ \fi
+ \global\setbox\currenttopcolumnbox\emptybox}%
+ \advance\scratchdimen \ht\columnpagebox
+ \setbox\scratchbox\hbox to \columntextwidth
+ {\vrule
+ \!!width\zeropoint
+ \!!height\scratchdimen
+ \!!depth\dp\columnpagebox
+ \dostepwiserecurse2\nofcolumns1{\hfil\betweencolumns}\hfil}%
+ \setbox\columnpagebox\hbox
+ {\box\columnpagebox
+ \hskip-\columntextwidth
+ \box\scratchbox}%
+ \postprocesscolumnpagebox % new, acts upon \box\columnpagebox
+ \ifconditional\someprecolumncontent
+ \settrue\someprecolumncontent
+ % next some incredible crappy code
+ \ifcase\multicolumntopalignmethod
+ \flushprecolumnboxnogrid % not on grid
+ \or
+ \flushprecolumnboxongrid % force on grid
+ \else\ifgridsnapping % somehow this junk fails in pascal
+ \flushprecolumnboxongrid % obey grid settings, force on grid
+ \else
+ \flushprecolumnboxnogrid % ignore grid settings, not on grid
+ \fi \fi
+ \fi
+ \global\precolumnboxheight\zeropoint
+ \setvsize
+ \dosomebreak\nobreak % hm, only needed when topstuff
+ \ifgridsnapping
+ \else
+ \ifcase\multicolumntopflushmethod
+ % sometimes method 1 goes wrong, so we need a way out; best sort this out
+ % when we run into it again
+ \or
+ % \input tufte \startcolumns \showbaselines \input tufte \stopcolumns \input tufte
+ \ifconditional\someprecolumncontent
+% \scratchdimen\topskip
+% \advance\scratchdimen -\openstrutheight
+% \nointerlineskip
+% \vskip-\scratchdimen
+ \nointerlineskip
+ \vskip\dimexpr\openstrutheight-\topskip\relax
+ \fi
+ \or
+% \scratchdimen\topskip
+% \advance\scratchdimen -\openstrutheight
+% \nointerlineskip
+% \vskip-\scratchdimen
+ \nointerlineskip
+ \vskip\dimexpr\openstrutheight-\topskip\relax
+ \or
+ % untested but maybe handy
+% \scratchdimen\topskip
+% \advance\scratchdimen -\openstrutheight
+% \nointerlineskip
+% \vskip-\scratchdimen
+% \vskip-\lineheight
+% \vbox{\strut}%
+ \nointerlineskip
+ \vskip\dimexpr\openstrutheight-\topskip-\lineheight\relax
+ \vbox{\strut}%
+ \fi
+ \fi
+ \prevdepth\openstrutdepth
+ \nointerlineskip
+ \dp\columnpagebox\zeropoint
+ \global\finalcolumnheights\ht\columnpagebox
+ \getnoflines\finalcolumnheights
+ \global\finalcolumnlines\noflines
+ \ifcase#1\else
+ % messy correction, we need to rewrite this module (newcolumns)
+ \setbox\columnpagebox\vbox
+ {\offinterlineskip
+ \scratchdimen\ht\columnpagebox
+ \advance\scratchdimen\dp\columnpagebox % we probably lost that one already
+ \box\columnpagebox
+ \vskip-\scratchdimen}%
+ \scratchdimen\noflines\openlineheight
+ \advance\scratchdimen-\openstrutdepth
+ \advance\scratchdimen-\openlineheight
+ \advance\scratchdimen\topskip
+ \ht\columnpagebox\scratchdimen
+ \dp\columnpagebox\openstrutdepth
+ % end of mess
+ \fi
+ \box\columnpagebox
+ \egroup}
+
+%D In case one didn't notice, finaly \type{\finishcolumnbox} is
+%D applied to all boxes. One can use these hooks for special
+%D purposes.
+%D
+%D Once upon a time I wanted to manipulate the individual lines
+%D in a column. This feature is demonstrated in the two examples
+%D below.
+%D
+%D \startbuffer
+%D \def\postprocesscolumnline#1% or \postprocesscolumnbox
+%D {\ruledhbox{\box#1}\hss}
+%D
+%D \startcolumns[n=4]
+%D \dorecurse{25}{line: \recurselevel\par}
+%D \stopcolumns
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D Here we show the natural width of the lines:
+%D
+%D {\getbuffer}
+%D
+%D The next example does a bit more advanced manipulation:
+%D
+%D \startbuffer
+%D \def\postprocesscolumnline#1%
+%D {\ifodd\currentcolumn
+%D \hfill\unhbox#1\relax
+%D \else
+%D \relax\unhbox#1\hfill
+%D \fi}
+%D
+%D \startcolumns[n=4]
+%D \dorecurse{25}{line \recurselevel\par}
+%D \stopcolumns
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D Here we also see an application of \type{\currentcolumn}:
+%D
+%D {\getbuffer}
+%D
+%D This feature is implemented using the reshape macros
+%D presented in \type{supp-box}.
+
+\def\postprocesscolumns
+ {\ifx\postprocesscolumnline\undefined \else
+ \dohandleallcolumns
+ {\global\setbox\currentcolumnbox\vtop
+ {\beginofshapebox
+ \unvbox\currentcolumnbox
+ \unskip\unskip
+ \endofshapebox
+ \reshapebox
+ {\dimen0\ht\shapebox
+ \dimen2\dp\shapebox
+ \setbox\shapebox\hbox to \hsize
+ {\postprocesscolumnline\shapebox}%
+ \ht\shapebox\dimen0
+ \dp\shapebox\dimen2
+ \box\shapebox}%
+ \flushshapebox
+ \everypar\emptytoks
+ \parskip\zeropoint % = \forgetall
+ \verticalstrut
+ \vskip-\struttotal
+ \vfil}}%
+ \fi
+ \ifx\postprocesscolumnbox\undefined \else
+ \dohandleallcolumns
+ {\global\setbox\currentcolumnbox\hbox
+ {\postprocesscolumnbox\currentcolumnbox}}
+ \fi}
+
+%D We default to doing nothing!
+
+\let\postprocesscolumnline =\undefined
+\let\postprocesscolumnbox =\undefined
+\let\postprocesscolumnpagebox=\relax
+
+%D \macros
+%D {reversecolumnstrue}
+%D
+%D We can force the macro that takes care of combining
+%D the columns, to flush them in the revere order. Of
+%D course, by default we don't reverse.
+
+\newif\ifreversecolumns
+
+%D Here comes the simple splitting routine. It's a bit
+%D longer than expected because of ragging bottoms or not.
+%D This part can be a bit shorter but I suppose that I will
+%D forget what happens. The splitting takes some already
+%D present material (think of floats) into account!
+%D
+%D First we present some auxiliary routines. Any material,
+%D like for instance floats, that is already present in the
+%D boxes is preserved.
+
+\def\splitcolumn#1from \box#2to \dimen#3 top \box#4%
+ {\bgroup
+ \ifdim\ht#4>\zeropoint
+ \dimen0\dimen#3\relax
+ \dimen2\dimen0
+ \advance\dimen0 -\ht#4%
+ \columnfootnotecorrection{#1}{\dimen0}%
+ \setbox0\vsplit#2 to \dimen0
+ \global\setbox#1\vbox to \dimen2
+ {\ifgridsnapping
+ \dimen0-\openstrutheight
+ \advance\dimen0 \topskip
+ \vskip\dimen0\copy#4\vskip-\dimen0
+ \else
+ \unvcopy#4%
+ \fi
+ \fuzzysnappedbox\unvbox0
+ \fakecolumnfootnotes{#1}}%
+ \else
+ \ifcase\clevernotes
+ \global\setbox#1\vsplit#2 to \dimen#3%
+ \global\setbox#1\vbox
+ {\fuzzysnappedbox\unvbox{#1}}% % or \box ?
+ \else
+ \columnfootnotecorrection{#1}{\dimen#3}%
+ \setbox0\vsplit#2 to \dimen#3%
+ \global\setbox#1\vbox to \dimen#3%
+ {\fuzzysnappedbox\unvbox0
+ \fakecolumnfootnotes{#1}}%
+ \fi
+ \fi
+ \egroup}
+
+\def\splitcurrentcolumn from \box#1to \dimen#2%
+ {\splitcolumn\currentcolumnbox from \box#1 to \dimen#2 top \box\currenttopcolumnbox}
+
+\def\splitfirstcolumn from \box#1to \dimen#2%
+ {\splitcolumn\firstcolumnbox from \box#1 to \dimen#2 top \box\firsttopcolumnbox}
+
+\def\splitlastcolumn from \box#1to \dimen#2%
+ {\global\setbox\lastcolumnbox\vbox
+ {\unvcopy\lasttopcolumnbox
+ \fuzzysnappedbox\unvbox{#1}%
+ \fakecolumnfootnotes\lastcolumnbox}}
+
+%D NEW: still to be documented.
+
+\def\fakecolumnfootnotes#1%
+ {\relax
+ \ifcase\clevernotes\else
+ \ifnum#1=\lastcolumnbox
+ \fakenotes
+ \fi
+ \fi}
+
+\def\columnfootnotecorrection#1#2%
+ {\relax
+ \ifcase\clevernotes
+ % page notes
+ \or
+ \ifnum#1=\firstcolumnbox\relax
+ \calculatetotalclevernoteheight
+ \advance#2 -\totalnoteheight
+ \fi
+ \else
+ \ifnum#1=\lastcolumnbox\relax
+ \calculatetotalclevernoteheight
+ \advance#2 -\totalnoteheight
+ \fi
+ \fi}
+
+\def\overlaycolumnfootnotes
+ {\relax
+ \ifcase\clevernotes
+ % page notes
+ \else
+ \checknotepresence
+ \ifnotespresent
+ % the note box has the depth of the notefont
+ % because a column (i.e. first column has no depth,
+ % we need to anchor top down)
+ \bgroup
+ \ifcase\clevernotes\or
+ \getmulticolumnlines
+ \advance\nofcolumnlines \minustwo
+ \scratchdimen\nofcolumnlines\lineheight
+ \advance\scratchdimen \topskip
+ \setbox0\hbox
+ {\lower\scratchdimen\vbox{\placenoteinserts}}%
+ \ht0=\openstrutheight % \strutht
+ \dp0=\openstrutdepth % \strutdp
+ \scratchdimen\ht\firstcolumnbox
+ \global\setbox\firstcolumnbox\vbox to \scratchdimen
+ {\box\firstcolumnbox
+ \vskip-\scratchdimen
+ \box0}%
+ \else
+ % maybe here also \getmulticolumnlines
+ \scratchdimen\ht\firstcolumnbox
+ \advance\scratchdimen -\openstrutdepth % \strutdp
+ \getnoflines\scratchdimen
+ \advance\noflines \minustwo
+ \scratchdimen\noflines\lineheight
+ \advance\scratchdimen \topskip
+ \setbox0\hbox
+ {\lower\scratchdimen\vbox{\placenoteinserts}}%
+ \ht0=\openstrutheight % \strutht
+ \dp0=\openstrutdepth % \strutdp
+ \scratchdimen\ht\lastcolumnbox
+ \global\setbox\lastcolumnbox\vbox to \scratchdimen
+ {\box\lastcolumnbox
+ \vskip-\scratchdimen
+ box0}%
+ \fi
+ \egroup
+ \fi
+ \fi}
+
+%D Here comes the routine that splits the long box in columns.
+%D The macro \type{\flushcolumnfloats} can be used to flush
+%D either floats that were present before the multi||column
+%D mode was entered, or floats that migrate to next columns.
+%D Flushing floats is a delicate process.
+
+\def\continuousmulticolumnsout
+ {\bgroup
+ \forgetall
+ \setmulticolumnsout
+ \dontshowcomposition
+% \dimen0=\columntextheight
+% \advance\dimen0 -\precolumnboxheight
+% \settotalinsertionheight
+% \advance\dimen0 -\totalinsertionheight
+% \ifgridsnapping % evt altijd, nog testen
+% \getnoflines{\dimen0}
+% \dimen0=\noflines\openlineheight
+% \fi
+ \getmulticolumnlines
+ \dimen0=\nofcolumnlines\openlineheight
+ \dohandleallcolumns
+ {\splitcurrentcolumn from \box\normalpagebox to \dimen0}%
+ \setbox\restofpage\vbox{\unvbox\normalpagebox}%
+ \ifinheritcolumns
+ \ifr@ggedbottom % vreemd
+ \dohandleallcolumns
+ {\global\setbox\currentcolumnbox\vbox to \ht\firstcolumnbox
+ {\dimen0\dp\currentcolumnbox
+ \unvbox\currentcolumnbox
+ \vskip-\dimen0
+ \vskip\openstrutdepth % \strutdp
+ \prevdepth\openstrutdepth % \strutdp
+ \vfill}}%
+ \ifbottomnotes \else
+ \dimen0\ht\firstcolumnbox
+ \fi
+ \fi
+ \ifn@rmalbottom
+ \advance\dimen0 \maxdepth
+ \dohandleallcolumns
+ {\global\setbox\currentcolumnbox\vbox to \dimen0
+ {\unvbox\currentcolumnbox}}%
+ \fi
+ \ifb@selinebottom
+ % the columns are on top of the baseline
+ \fi
+ \else
+ \dohandleallcolumns
+ {\global\setbox\currentcolumnbox\vbox to \dimen0
+ {\ifstretchcolumns
+ \unvbox\currentcolumnbox
+ \else
+ \unvbox\currentcolumnbox % wel of niet \unvbox ?
+ \vfill
+ \fi}}%
+ \dohandleallcolumns
+ {\global\ht\currentcolumnbox\dimen0}%
+ \fi
+ \setbox\precolumnbox\vbox{\flushcolumnedpage\zerocount}%
+ \finaloutput\box\precolumnbox
+ \sethsize
+ \setvsize
+ \flushcolumnfloats
+ \unvbox\restofpage
+ % \penalty\outputpenalty % gaat gruwelijk mis in opsommingen
+ \egroup}
+
+%D And this is the balancing stuff. Again, part of the routine
+%D is dedicated to handling ragged bottoms, but here we also
+%D see some handling concerning the stretching of columns.
+%D We set \type{\widowpenalty} at~0, which enables us to
+%D balance columns with few lines. The use of \type{\box2} and
+%D \type{\box4} garantees a more robust check when skips are
+%D used.
+
+\def\multicolumnsbalancemax{250} % 100 is too small when floats are involved
+
+\def\balancedmulticolumnsout
+ {\bgroup
+ \setmulticolumnsout
+ \dontshowcomposition
+ \widowpenalty\zerocount
+ \setbox0\vbox{\unvbox\normalpagebox}%
+\ifdim\ht0>\openlineheight % at least one line
+ \ifnum\minbalancetoplines<2 % balance anyway
+ \donetrue
+ \else % check criterium to available lines
+ \getnoflines{\ht0}%
+ \divide\noflines \nofcolumns \relax
+ \ifnum\noflines<\minbalancetoplines \relax
+ \dimen0\ht0
+ \advance\dimen0 \ht\firsttopcolumnbox
+ \advance\dimen0 \openlineheight \relax % let's play safe
+ \ifdim\dimen0>\columntextheight % column exceeding text height
+ \donetrue
+ \else % it seems to fit
+ \donefalse
+ \fi
+ \else % balance indeed
+ \donetrue
+ \fi
+ \fi
+\else % balancing does not make sense
+ \donefalse
+\fi
+\ifdone % start balancing
+ %\ifdim\ht0>\openlineheight
+ \dimen0\ht0
+ \advance\dimen0 \topskip
+ \advance\dimen0 -\baselineskip
+ \dohandleallcolumns
+ {\advance\dimen0 \ht\currenttopcolumnbox}%
+ \divide\dimen0 \nofcolumns
+ \vbadness\!!tenthousand\relax
+ \count255=\zerocount
+ \bgroup
+ \ifgridsnapping
+ \dimen2\lineheight
+ \else
+ \dimen2=\onepoint % RUBISH
+ \dimen2=\spacingfactor\dimen2
+ \fi
+ \doloop
+ {\advance\count255 \plusone
+ \global\setbox\restofpage\copy0\relax
+ \splitfirstcolumn from \box\restofpage to \dimen0
+ \dohandlemidcolumns
+ {\splitcurrentcolumn from \box\restofpage to \dimen0}%
+ \splitlastcolumn from \box\restofpage to \dimen0
+ \setbox2\vbox{\unvcopy\firstcolumnbox}%
+ \dimen4\zeropoint
+ \dohandleallcolumns
+ {\setbox4\vbox
+ {\unvcopy\currentcolumnbox
+ %rather new, test this on pdftex-z.tex
+ \unpenalty\unskip\unpenalty\unskip}% maybe better in main splitter
+ %\writestatus{balance}{\the\currentcolumnbox: \the\ht4}%
+% \dimen6\ht4 \ifdim\dimen6>\dimen4 \dimen4=\dimen6 \fi}%
+ \ifdim\ht4>\dimen4 \dimen4=\ht4 \fi}%
+ \advance\dimen4 -.0005pt % get rid of accurracy problem, pretty new
+ \ifnum\count255>\multicolumnsbalancemax\relax
+ \exitloop
+ \else\ifdim\dimen4>\ht2
+ \advance\dimen0 \dimen2\relax
+ \else
+ \exitloop
+ \fi\fi}%
+ \dohandleallcolumns
+ {\global\setbox\currentcolumnbox\vbox{\unvcopy\currentcolumnbox}}% NIEUW
+ \ifnum\count255>\multicolumnsbalancemax\relax
+ \showmessage\m!columns7\empty
+ \else
+ \showmessage\m!columns8{\the\count255\space}%
+ \fi
+ \egroup
+ \ifinheritcolumns
+ % We cannot assume that the first column is the tallest, if
+ % only because we may have an aborted balance (one line in the
+ % first column and a graphic in the second one).
+ %
+ % \dimen0\ht\firstcolumnbox
+ % \dimen2\ht\firstcolumnbox
+ %
+ \dimen0=\zeropoint
+ \dohandleallcolumns
+ {\ifdim\ht\currentcolumnbox>\dimen0
+ \dimen0=\ht\currentcolumnbox
+ \fi}%
+ \dimen2\dimen0
+ % so far
+ \advance\dimen2 -\openlineheight
+ \dohandleallcolumns
+ {\dimen4\ht\currentcolumnbox
+ \dimen6=10\openlineheight % funny value
+ \global\setbox\currentcolumnbox\vbox to \dimen0
+ {\unvbox\currentcolumnbox
+ \ifdim\dimen4>\dimen6
+ \ifdim\dimen4<\dimen0
+ \ifdim\dimen4>\dimen2
+ \vskip\zeropoint % !!
+ \else
+ \vskip\openlineheight
+ \vfill
+ \fi
+ \else
+ \vskip\zeropoint
+ \fi
+ \else
+ \vskip\openlineheight
+ \vfill
+ \fi}}%
+ \else
+ \bgroup
+ \ifstretchcolumns
+ \dimen0\ht\firstcolumnbox
+ \dimen2=\bottomtolerance\ht\firstcolumnbox
+ \setbox0\vbox{\unvcopy\lastcolumnbox}%
+ \advance\dimen0 -\ht0\relax
+ \advance\dimen0 -\dp0\relax
+ \ifdim\dimen0>\openlineheight\relax
+ \ifdim\dimen0>\dimen2\relax
+ % \stretchcolumnsfalse % beter goed slecht dan slecht goed
+ \showmessage\m!columns9\empty
+ \fi
+ \fi
+ \fi
+ \dohandleallcolumns
+ {\global\setbox\currentcolumnbox\vbox to \ht\firstcolumnbox
+ {\ifstretchcolumns
+ \unvbox\currentcolumnbox
+ \else
+ \box\currentcolumnbox
+ \vfill
+ \fi}}%
+ \egroup
+ \fi
+ \else
+ % a one liner is not properly handled here, so best rewrite the text then
+ \showmessage\m!columns{10}\empty
+ \global\setbox\firstcolumnbox\vbox{\unvbox0}%
+ \fi
+ \global\output{\balancingerror}%
+ \b@selinebottomtrue % forces depth in separation rule
+ \flushcolumnedpage\plusone
+ \multicolumnseject
+ \egroup}
+
+\def\multicolumnseject
+ {\ifdim\pagetotal>\textheight
+ \eject % new
+ \else
+ \allowbreak
+ \fi}
+
+%D The multicolumn mechanism is incorporated in a \CONTEXT\
+%D interface, which acts like:
+%D
+%D \starttyping
+%D \startcolumns[n=4,balance=no]
+%D some text
+%D \stopcolumns
+%D \stoptyping
+%D
+%D The setup is optional. The default behaviour of columns
+%D can be set up with:
+%D
+%D \starttyping
+%D \setupcolumns
+%D [n=2,
+%D balance=yes]
+%D \stoptyping
+%D
+%D In this case, stretching is according to the way it's
+%D done outside columns (\type{\inheritcolumnstrue}). Also
+%D we can setup the \type{tolerance} within a column, the
+%D \type{distance} between columns and the fixed
+%D \type{height} of a column.
+
+%D Multi||column output: the float routines
+%D
+%D Here come the routines that handle the placement of column
+%D floats. Floats that are to big migrate to the next
+%D column. Floats that are too wide, migrate to the top of the
+%D next page, where they span as much columns as needed.
+%D Floats that are left over from outside the multi||column
+%D mode are flushed first. In macro \type{\finaloutput} the
+%D topfloats that are left from previous text should be set.
+%D
+%D When there are some floats in the queue, we inhibit the
+%D flushing of floats on top of columns. The number of
+%D waiting floats is preswent in \type{\savednoftopfloats} and
+%D is saved. As long as there are floats waiting, the topfloats
+%D are places as if we are outside multi||column mode. This is
+%D neccessary for e.g. multicolumn lists.
+%D
+%D When all those floats are flushed, we switch to the local
+%D flushing routine.
+
+\def\setcolumnfloats
+ {\xdef\globalsavednoffloats{\the\savednoffloats}%
+ \ifnum\globalsavednoffloats>\zerocount
+ \setglobalcolumnfloats
+ \else
+ \setlocalcolumnfloats
+ \fi}
+
+\def\setglobalcolumnfloats
+ {\everypar\emptytoks
+ \let\flushcolumnfloat\relax
+ %\let\doroomfloat\relax
+ \let\docheckiffloatfits\relax
+ \let\flushcolumnfloats\noflushcolumnfloats}
+
+\def\setlocalcolumnfloats
+ {\everypar{\flushnotes\flushcolumnfloat\flushmargincontents\checkindentation}%
+ \let\flushcolumnfloat\doflushcolumnfloat
+ %\let\doroomfloat\docolumnroomfloat
+ \let\docheckiffloatfits\docolumnroomfloat
+ \let\flushcolumnfloats\doflushcolumnfloats
+ \let\doflushfloats\doflushcolumnfloats % new
+ \let\dosetbothinserts\relax
+ \let\dotopinsertions\relax}
+
+\def\noflushcolumnfloats
+ {\bgroup
+ \xdef\localsavednoffloats{\the\savednoffloats}%
+ \global\savednoffloats\globalsavednoffloats
+ \dotopinsertions
+ \xdef\globalsavenoffloats{\the\savednoffloats}%
+ \ifnum\globalsavednoffloats=\zerocount
+ \setlocalcolumnfloats
+ \fi
+ \global\savednoffloats\localsavednoffloats
+ \egroup}
+
+%D We need to calculate the amount of free space in a columns.
+%D When there is not enough room, we migrate the float to the
+%D next column. These macro's are alternatives (and
+%D look||alikes) of \type{\doroomfloat}. When a float is to
+%D wide, for one column, it is moved to the top of the next
+%D page. Of course such moved floats have to be taken into
+%D account when we calculate the available space. It's a pitty
+%D that such things are no integral part of \TEX.
+
+\def\getcolumnstatus\column#1\total#2\goal#3\\%
+ {\dimen0=\ifdim\pagegoal<\maxdimen \pagetotal \else \zeropoint \fi
+ \dimen2=\zeropoint
+ \count255=\zerocount
+ \dimen8=\columntextheight
+ \advance\dimen8 -\precolumnboxheight
+ \def\dogetcolumnstatus
+ {\advance\count255 \plusone
+ \advance\dimen2 \ht\currenttopcolumnbox
+ \advance\dimen2 \dp\currenttopcolumnbox
+ \dimen4\dimen2
+ \advance\dimen4 \dimen0
+ \dimen6=\count255\dimen8
+ \ifdim\dimen4>\dimen6
+ \else
+ \let\dogetcolumnstatus\relax
+ \fi}%
+ \dohandleallcolumns{\dogetcolumnstatus}%
+ \ifnum\count255=0 \count255=1 \fi
+ #1=\count255
+ #2=\dimen4
+ #3=\dimen6 }
+
+\def\getinsertionheight
+ {\ifdim\pagegoal<\maxdimen
+ \bgroup
+ \dimen0=\columntextheight
+ \advance\dimen0 -\pagegoal
+ \xdef\insertionheight{\the\dimen0}%
+ \egroup
+ \else
+ \global\let\insertionheight\zeropoint
+ \fi}
+
+\def\docolumnroomfloat
+ {\ifpostponecolumnfloats
+ \global\roomforfloatfalse
+ \else\ifnofloatpermitted
+ \global\roomforfloatfalse
+ \else
+ \bgroup
+ \getcolumnstatus\column\count255\total\dimen0\goal\dimen2\\%
+ \advance\dimen0 2\openlineheight % nog nodig ?
+ %\ifnum\count255=\nofcolumns
+ % \getinsertionheight
+ % %\message{\insertionheight}\wait
+ % \advance\dimen0 \insertionheight
+ %\fi
+ \setbox\scratchbox\vbox % tricky met objecten ?
+ {\blank[\@@bkspacebefore]
+ \snaptogrid\vbox{\copy\floatbox}}%
+ \advance\dimen0 \ht\scratchbox
+ \advance\dimen0 .5\lineheight % needed because goal a bit higher
+ %\message{column: \the\count255; total: \the\dimen0; goal: \the\dimen2}\wait
+ \ifdim\dimen0>\dimen2
+ \global\roomforfloatfalse
+ \else
+ \global\roomforfloattrue
+ \fi
+ \ifdim\wd\floatbox>\hsize
+ \showmessage\m!columns{11}\empty
+ \global\roomforfloatfalse
+ \fi
+ \egroup
+ \fi\fi}
+
+%D Flushing one float is done as soon as possible, i.e.
+%D \type{\everypar}. This means that (at the moment)
+%D sidefloats are not supported (overulled)!
+
+\newif\ifflushingcolumnfloats \flushingcolumnfloatstrue
+
+\def\doflushcolumnfloat
+ {\ifpostponecolumnfloats\else\ifflushingcolumnfloats\ifprocessingverbatim\else\ifsomefloatwaiting
+ \bgroup
+ \forgetall
+ \let\doflushcolumnfloat\relax
+ \getcolumnstatus\column\mofcolumns\total\dimen0\goal\dimen2\\%
+ \ifdim\dimen0>\zeropoint
+ \dogetfloat
+ \ifdim\wd\floatbox>\hsize
+ \doresavefloat
+ \else
+ %\setbox2=\vbox
+ % {\blank[\@@bkspacebefore]
+ % \snaptogrid\vbox{\copy\floatbox}%
+ % \blank[\@@bkspaceafter]
+ \setbox2=\vbox
+ {\blank[\@@bkspacebefore]
+ \snaptogrid\vbox{\copy\floatbox}}%
+ \advance\dimen0 \ht2
+ \ifdim\dimen0>\dimen2
+ \ifnum\mofcolumns<\nofcolumns
+ \advance\mofcolumns \plusone
+%% bug %% \edef\currenttopcolumnbox{\getvalue{\@@topcol\the\count255}}%
+ \ifdim\ht\currenttopcolumnbox=\zeropoint
+ \global\setbox\currenttopcolumnbox\vbox
+ {\snaptogrid\vbox{\copy\floatbox}
+ \whitespace % nodig ?
+ \blank[\@@bkspaceafter]}%
+ \dimen4=\ht\currenttopcolumnbox
+ \advance\dimen4 \dp\currenttopcolumnbox
+ \global\advance\vsize -\dimen4
+ \advance\dimen4 -\pagegoal
+ \global\pagegoal-\dimen4
+ \showmessage\m!columns{12}a%
+ \else
+ \showmessage\m!columns{12}b%
+ \doresavefloat
+ \fi
+ \else
+ \showmessage\m!columns{12}c%
+ \doresavefloat
+ \fi
+ \else
+ \ifhmode{\setbox0\lastbox}\fi% waar is die er in geslopen
+ \par
+ \ifdim\prevdepth<\zeropoint \else % anders bovenaan kolom witruimte
+ \nobreak
+ \blank[\@@bkspacebefore]
+ \nobreak
+ \fi
+ \flushfloatbox
+ \blank[\@@bkspaceafter]
+ \fi
+ \fi
+ \fi
+ \egroup
+ \fi\fi\fi\fi}
+
+%D This one looks complicated. Upto \type{\nofcolumns} floats
+%D are placed, taking the width of a float into account. This
+%D routine can be improved on different ways:
+%D
+%D \startitemize[intro,packed]
+%D \item taking into account some imaginary baseline, just to
+%D get the captions in line
+%D \item multipass flushing until as many floats are displaced
+%D as possible
+%D \stopitemize
+%D
+%D When handling lots of (small) floats spacing can get worse
+%D because of lining out the columns.
+
+\def\doflushcolumnfloats
+ {\ifpostponecolumnfloats\else
+ \bgroup
+ \forgetall
+ \ifsomefloatwaiting
+ \dimen8\zeropoint
+ \dimen4\zeropoint
+ \count0\zerocount % count0 can be used local
+ \count2\nofcolumns % count2 can be used local
+ \dohandleallcolumns
+ {\ifnum\count0>\zerocount % the wide one's reserved space
+ \global\setbox\currenttopcolumnbox\vbox
+ {\snaptogrid\vbox
+ {\copy\currenttopcolumnbox
+ \hbox{\vphantom{\copy\floatbox}}}
+ \whitespace % nodig ?
+ \blank[\@@bkspaceafter]}%
+ \else
+ \dogetfloat
+ \ifdim\wd\floatbox>\finalcolumntextwidth % better somewhere else too
+ \global\setbox\floatbox\hbox to \finalcolumntextwidth{\hss\box\floatbox\hss}%
+ \fi % otherwise the graphic may disappear
+ \ifdim\wd\floatbox>\hsize
+ \dimen0\wd\floatbox
+ \advance\dimen0 \intercolumnwidth
+ \dimen2\hsize
+ \advance\dimen2 \intercolumnwidth
+ \advance\dimen0 .5pt % hm, why 1
+ \advance\dimen2 .5pt % hm, why 2
+ \divide\dimen0 \dimen2
+ \count0\dimen0
+ \advance\count0 \plusone
+ \ifnum\count0>\count2
+ \doresavefloat
+ \count0\zerocount
+ \else
+ \dimen0=\count0\hsize
+ \advance\dimen0 \count0\intercolumnwidth
+ \advance\dimen0 -\intercolumnwidth
+ \global\setbox\floatbox\hbox to \dimen0
+ %{\hss\hbox{\copy\floatbox}\hss}%
+ {\processaction[\@@bklocation] % how easy to forget
+ [ \v!left=>\copy\floatbox\hss,
+ \v!right=>\hss\copy\floatbox,
+ \s!default=>\hss\copy\floatbox\hss,
+ \s!unknown=>\hss\copy\floatbox\hss]}%
+ \fi
+ \showmessage\m!columns{13}\empty
+ \else
+ % \showmessage\m!columns{13}\empty
+ \fi
+ \ifdim\ht\floatbox>\zeropoint\relax
+ \global\setbox\currenttopcolumnbox\vbox
+ {\snaptogrid\vbox
+ {\copy\currenttopcolumnbox
+ \copy\floatbox}
+ \whitespace % nodig ?
+ \blank[\@@bkspaceafter]}%
+ \fi
+ \dimen6\ht\currenttopcolumnbox
+ \advance\dimen6 \dp\currenttopcolumnbox
+ \fi
+ \ifdim\dimen4<\ht\currenttopcolumnbox
+ \dimen4\ht\currenttopcolumnbox
+ \fi
+ \advance\dimen8 \dimen6
+ \advance\count2 \minusone
+ \advance\count0 \minusone }%
+ \setvsize
+ \global\advance\vsize -\dimen8
+ \global\pagegoal\vsize
+ \else
+ %\doflushfloats % does not snap!
+ \fi
+ \egroup
+ \fi}
+
+%D The next macro can be used to flush floats in the current
+%D stream. No width checking is (yet) done.
+
+\def\insertcolumnfloats
+ {\doloop
+ {\ifsomefloatwaiting
+ \bgroup
+ \forgetall
+ % no check for width
+ \dogetfloat
+ \blank[\@@bkspacebefore]
+ \snaptogrid\vbox{\copy\floatbox}
+ \blank[\@@bkspaceafter]
+ \egroup
+ \else
+ \exitloop
+ \fi}}
+
+%D This were the multi||column routines. They can and need to
+%D be improved but at the moment their behaviour is acceptable.
+%D
+%D One inprovement can be to normalize the height of floats
+%D to $n\times$\type{\lineheight} with a macro like:
+%D
+%D \starttyping
+%D \normalizevbox{...}
+%D \stoptyping
+
+% border case, should fit on one page
+%
+% \startcolumns
+%
+% 1 \input tufte \par \plaatsfiguur{}{\omlijnd[breedte=\hsize,hoogte=3cm]{1}}
+% 2 \input tufte \par \plaatsfiguur{}{\omlijnd[breedte=\hsize,hoogte=3cm]{2}}
+% 3 \input tufte \par \plaatsfiguur{}{\omlijnd[breedte=\hsize,hoogte=3cm]{3}}
+%
+% \stopcolumns
+
+\def\setupcolumns
+ {\dosingleempty\dosetupcolumns}
+
+\def\dosetupcolumns[#1]%
+ {\getparameters[\??kl][#1]%
+ \nofcolumns\@@kln\relax
+ \processaction
+ [\@@klrule]
+ [ \v!on=>\let\betweencolumns\linebetweencolumns,
+ \v!off=>\let\betweencolumns\spacebetweencolumns,
+ \s!default=>\let\betweencolumns\spacebetweencolumns,
+ \s!unknown=>\let\betweencolumns\@@klrule]}
+
+\def\linebetweencolumns
+ {\bgroup
+ \starttextproperties
+ \ifdim\@@kldistance>\zeropoint
+ \dimen0=\@@kldistance
+ \else
+ \dimen0=\linewidth
+ \fi
+ \advance\dimen0 -\linewidth
+ \hskip.5\dimen0
+ \vrule
+ \!!width\linewidth
+ \ifb@selinebottom\!!depth\strutdepth\fi
+ \hskip.5\dimen0\relax
+ \stoptextproperties
+ \egroup}
+
+\def\spacebetweencolumns
+ {\hskip\@@kldistance}
+
+\presetlocalframed[\??kl]
+
+\def\backgroundfinishcolumnbox
+ {\doifinsetelse\@@kloffset{\v!none,\v!overlay}
+ {\let\@@kloffset\!!zeropoint}
+ {\scratchdimen\@@kloffset
+ \advance\scratchdimen -\@@klrulethickness
+ \edef\@@kloffset{\the\scratchdimen}}%
+ \localframed
+ [\??kl]
+ [\c!strut=\v!no,
+ \c!width=\v!fit,
+ \c!height=\v!fit,
+ \c!align=]}
+
+\definecomplexorsimpleempty\startcolumns
+
+\def\complexstartcolumns[#1]% %% \startcolumns
+ {\bgroup
+ \let\stopcolumns\egroup
+ \ifinsidecolumns
+ \else
+ \setupcolumns[#1]%
+ \ifnum\@@kln>1\relax
+ \whitespace
+ \begingroup
+ \doif\@@kloption\v!background
+ {\let\finishcolumnbox\backgroundfinishcolumnbox
+ \let\columntextoffset\@@kloffset}%
+ \ifx\@@klcommand\empty\else
+ \let\postprocesscolumnline\@@klcommand
+ \fi
+ \doifelsenothing\@@klheight
+ \heightencolumnsfalse
+ \heightencolumnstrue
+ \doifelse\@@kldirection\v!right
+ \reversecolumnsfalse
+ \reversecolumnstrue
+ \doifelse\@@klbalance\v!yes
+ \balancecolumnstrue
+ \balancecolumnsfalse
+ \installalign\v!yes {\stretchcolumnstrue \inheritcolumnsfalse}% todo: new key
+ \installalign\v!no {\stretchcolumnsfalse\inheritcolumnsfalse}% todo: new key
+ \installalign\v!text{\stretchcolumnsfalse\inheritcolumnstrue }%
+ \stretchcolumnsfalse
+ \inheritcolumnstrue
+ \doifsomething\@@klalign{\expanded{\setupalign[\@@klalign]}}%
+ \nofcolumns=\@@kln
+ %
+ % probably more is needed, and how about nesting save's
+ %
+ \saveouterspacing
+ %
+ \edef\fixedcolumnheight{\@@klheight}%
+ \edef\minbalancetoplines{\@@klntop}%
+ \setuptolerance[\@@kltolerance]% %% \startcolumns
+ \setupblank[\@@klblank]%
+ \ifdim\ctxparskip>\zeropoint\relax
+ \setupwhitespace[\@@klblank]%
+ \fi
+ \def\stopcolumns
+ {\endmulticolumns
+ \global\insidecolumnsfalse
+ \endgroup
+ \egroup}%
+ \global\insidecolumnstrue
+ \beginmulticolumns
+ \fi
+ \fi}
+
+\installcolumnbreakhandler {MUL} \v!preference
+ {\goodbreak}
+
+\installcolumnbreakhandler {MUL} \v!yes
+ {\par % todo: since
+ {\testrulewidth\zeropoint\ruledvskip\textheight} % we misuse a
+ \penalty-200 % side effect
+ \vskip-\textheight
+ }% bugged : \prevdepth-\thousandpoint} % signals top of column to \blank
+
+%D New: only at start of columns; may change ! Rather
+%D interwoven and therefore to be integrated when the multi
+%D column modules are merged. (moved from cont-new.tex)
+
+\def\setupcolumnspan[#1]%
+ {\getparameters[\??ks][#1]}
+
+\presetlocalframed
+ [\??ks]
+
+\setupcolumnspan
+ [\c!n=2,
+ \c!offset=\v!overlay,
+ \c!frame=\v!off]
+
+\newbox\columnspanbox \let\postprocesscolumnspanbox\gobbleoneargument
+
+\def\dostartcolumnspan[#1]%
+ {\bgroup
+ \setupcolumnspan[#1]%
+ \forgetall
+ \ifinsidecolumns
+ \advance\hsize \intercolumnwidth
+ \hsize\@@ksn\hsize
+ \advance\hsize -\intercolumnwidth
+ \fi
+ \dowithnextbox
+ {\setbox\columnspanbox\flushnextbox
+ \ifinsidecolumns\wd\columnspanbox\hsize\fi
+ \postprocesscolumnspanbox\columnspanbox
+ \scratchdimen\ht\columnspanbox
+ \setbox\columnspanbox\hbox % depth to be checked, probably option!
+ {\localframed[\??ks][\c!offset=\v!overlay]{\box\columnspanbox}}%
+ \ht\columnspanbox\scratchdimen
+ \dp\columnspanbox\strutdp
+ \wd\columnspanbox\hsize
+ \ifinsidecolumns
+ \ifnum\@@ksn>1
+ \setvsize
+ \dohandleallcolumns
+ {\ifnum\currentcolumn>\@@ksn\else
+ \global\setbox\currenttopcolumnbox=\vbox
+ {\ifnum\currentcolumn=1
+ \snaptogrid\vbox{\copy\columnspanbox}
+ \else
+ \snaptogrid\vbox{\vphantom{\copy\columnspanbox}}
+ \fi}%
+ \wd\currenttopcolumnbox\hsize
+ \global\advance\vsize -\ht\currenttopcolumnbox
+ \fi}
+ \global\pagegoal\vsize
+ \else
+ \snaptogrid\vbox{\box\columnspanbox}
+ \fi
+ \else
+ \snaptogrid\vbox{\box\columnspanbox}
+ \fi
+ \endgraf
+ \ifvmode\prevdepth\strutdp\fi
+ \egroup}
+ \vbox\bgroup
+ %\topskipcorrection % becomes an option !
+ \EveryPar{\begstrut\EveryPar{}}} % also !
+
+\def\startcolumnspan
+ {\dosingleempty\dostartcolumnspan}
+
+\def\stopcolumnspan
+ {\egroup}
+
+\setupcolumns
+ [\c!n=2,
+ \c!ntop=1,
+ \c!command=,
+ \c!direction=\v!right,
+ \c!rule=\v!off,
+ \c!tolerance=\v!tolerant,
+ \c!distance=1.5\bodyfontsize, % influenced by switching
+ \c!height=,
+ \c!balance=\v!yes,
+ \c!align=\v!text,
+ \c!blank={\v!line,\v!fixed},
+ \c!option=,
+ \c!rulethickness=\linewidth,
+ \c!offset=.5\bodyfontsize]
+
+%D Undocumented and still under development.
+
+\def\startsimplecolumns
+ {\dosingleempty\dostartsimplecolumns}
+
+\def\dostartsimplecolumns[#1]%
+ {\bgroup
+ \nopenalties
+ \getparameters[\??kl]
+ [\c!width=\hsize,\c!distance=1.5\bodyfontsize,%
+ \c!n=2,\c!lines=0,#1]%
+ \let\rigidcolumnlines\@@kllines
+ \setrigidcolumnhsize\@@klwidth\@@kldistance\@@kln
+ \setbox\scratchbox\vbox\bgroup
+ \forgetall} % \blank[\v!disable]
+
+\def\stopsimplecolumns
+ {\removebottomthings
+ \egroup
+ \rigidcolumnbalance\scratchbox
+ \egroup}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/page-new.tex b/Master/texmf-dist/tex/context/base/page-new.tex
deleted file mode 100644
index 0b047ffbe6f..00000000000
--- a/Master/texmf-dist/tex/context/base/page-new.tex
+++ /dev/null
@@ -1,277 +0,0 @@
-%D \module
-%D [ file=page-new,
-%D version=2000.10.20,
-%D title=\CONTEXT\ Page Macros,
-%D subtitle=Page New,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%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
-
-% % % NOT ENGLISH % % %
-
-% clean up footnotes to notes
-
-% We need to set the \dimen globally since we are in the
-% OTR. Unfortunately this interferes with local settings,
-% although we may assume that they will not cross page
-% boundaries.
-
-\def\OTRSETcheckcontent
- {\bgroup
- \donefalse
- \def\OTRSETcheckcontent##1%
- {\setbox\scratchbox##1\recurselevel
- \setbox\scratchbox\vbox{\unvbox\scratchbox}%
- \ifdim\ht\scratchbox>\zeropoint\donetrue\fi}%
- \dorecurse{\nofcolumns}
- {\OTRSETcheckcontent\columngettextbox
- \OTRSETcheckcontent\columngetfootbox
- \OTRSETcheckcontent\columngettopbox
- \OTRSETcheckcontent\columngetbotbox}%
- \ifdone\egroup\donefalse\else\egroup\donetrue\fi}
-
-\def\OTRSETgetcolumntextheight#1% max - boven - top
- {\scratchdimen=\OTRSETgetparameter\c!maxhoogte#1%
- \advance\scratchdimen -\OTRSETgetparameter\c!bovenoffset#1%
- \advance\scratchdimen -\ht\columntopbox#1%
- \advance\scratchdimen -\getvalue{\??mc\number\mofcolumns-f}%
- \advance\scratchdimen -\ht\columnbotbox#1} % not used
-
-\def\OTRSETgetcolumnnaturalheight#1% max - boven - top
- {\setbox\scratchbox\vbox{\unvcopy\columntextbox#1}%
- \scratchdimen\ht\scratchbox
- \advance\scratchdimen \OTRSETgetparameter\c!bovenoffset#1%
- \advance\scratchdimen \ht\columntopbox#1%
- \advance\scratchdimen -\getvalue{\??mc\number\mofcolumns-f}%
- \advance\scratchdimen \ht\columnbotbox#1} % not used
-
-\def\OTRSETdobalance% splitten in met en zonder footnotes
- {\bgroup
- \maxdeadcycles=1000
- % collect content and notes
- \bgroup
- \OTRSEToutput
- {\global\setbox1\vbox{\unvbox\normalpagebox}%
- \global\setbox3\vbox{\unvbox\footins}}%
- \verticalstrut\vskip-\struttotal % makes footnotes flush
- \eject
- \global\collectingcontentfalse
- % check for footnotes only
- \ifdim\ht1<\topskip % real dirty
- \global\setbox1=\vbox{}
- % fix height of first line
- \ifdim\ht3>\!!zeropoint
- \global\setbox3\vbox
- {\setfootnotebodyfont
- \kern-\strutht
- \kern\topskip
- \unvbox3}
- \fi
- % prepare trial box
- \global\setbox5\vbox
- {\ifdim\ht1>\zeropoint
- \unvcopy1 \ifdim\ht3>\zeropoint \kern\skip\footins \fi
- \fi
- \ifdim\ht3>\zeropoint \unvcopy3 \fi}
- \egroup
- % erase old stuff
- \columnerasetextboxes
- \columnerasefootboxes
- % prepare floats
- \OTRSETdotopinsertions
- \OTRSETdobotinsertions % not used can be removed
- % calculate available space
- \!!heighta\zeropoint % available total height
- \dorecurse{\nofcolumns}
- {\OTRSETgetcolumntextheight\recurselevel
- \OTRSETcalculatelines\scratchdimen
- \advance\!!heighta \scratchdimen}
- % quick check
- \ifdim\ht5>\!!heighta
- % use normal routine
- \columnerasetextboxes
- \columnerasefootboxes
- % TEMP, TODO, FORCE NEXT PASS !
- \unvbox1
- \unvbox3
- \doglobal\addtocommalist{-\realfolio}\OTRSETbalancinglist
- \donefalse
- %\writestatus\m!columns{no balancing, text overflows height}%
- \else\ifdim\ht5>\zeropoint \relax
- % some text and/or notes
- \donetrue
- \else
- \donefalse
- \dorecurse\nofcolumns
- {\ifdim\ht\columntopbox\recurselevel>\zeropoint \donetrue \fi}%
- \ifdone
- % no text and notes, but figures
- \else
- % no text, no notes, no figures
- \doglobal\addtocommalist{-\realfolio}\OTRSETbalancinglist
- \writestatus\m!columns{no balancing, nothing to be placed}%
- \fi
- \fi\fi
- \ifdone
- \ifdim\ht5>\zeropoint \relax
- % balancing text and notes
- %\writestatus\m!columns{text may fit, balancing}%
- \newcounter\loopcounter
- \newcounter\balancinglines
- \doloop
- {\increment\loopcounter\relax
- % initialize
- \columnerasetextboxes
- \columnerasefootboxes
- \setbox0=\copy5
- \splittopskip\topskip
- % pre-split loop and quality calculation
- %\writestatus\m!columns{pass \loopcounter: correction -\balancinglines}
- \dorecurse\nofcolumns
- {\OTRSETgetcolumntextheight\recurselevel
- \OTRSETcalculatelines\scratchdimen
- \!!heightc\scratchdimen
- \ifnum\recurselevel<\nofcolumns
- \advance\!!heightc -\balancinglines\lineheight
- \fi
- \columnsettextbox\recurselevel\vsplit0 to \!!heightc}
- % just one method
- \OTRSETgetcolumnnaturalheight1 \dimen4\scratchdimen
- \OTRSETgetcolumnnaturalheight\nofcolumns \dimen6\scratchdimen
- %\writestatus\m!columns{first column: \the\dimen4}%
- %\writestatus\m!columns{last column: \the\dimen6}%
- \ifdim\dimen4=\dimen6
- \donetrue % perfect balance
- \else\ifdim\dimen4>\dimen6
- \donefalse % not yet good enough
- \increment\balancinglines % try again
- \edef\balancingcount{\the\!!counta}
- \else
- \donetrue % worse balance
- \ifnum\balancinglines>0 % take previous
- \decrement\balancinglines
- \fi
- \fi\fi
- % extra check
- % \ifdim\ht0>\zeropoint\relax \donefalse \fi
- % another check
- \ifdone
- %\writestatus\m!columns{balancing finished in pass \loopcounter}%
- \else \ifnum\loopcounter>100 \donetrue
- %\writestatus\m!columns{balancing aborted after pass \loopcounter}%
- \else
- %\writestatus\m!columns{balancing continued after pass \loopcounter}%
- \fi \fi
- % final balancing pass
- \ifdone
- \setbox0\copy1
- \setbox2\copy3
- \columnerasetextboxes
- \columnerasefootboxes
- \dorecurse\nofcolumns
- {\OTRSETgetcolumntextheight\recurselevel
- \OTRSETcalculatelines\scratchdimen
- \!!heightc\scratchdimen
- \ifnum\recurselevel<\nofcolumns
- \advance\!!heightc -\balancinglines\lineheight
- \fi
- % split off text
- \ifdim\ht0>\zeropoint
- \columnsettextbox\recurselevel\vsplit0 to \!!heightc
- \setbox4\vbox{\unvcopy\columntextbox\recurselevel}
- \advance\!!heightc -\ht4
- \ifdim\ht0>\zeropoint
- \columnsettextbox\recurselevel\box4
- \advance\!!heightc \skip\footins
- \fi
- \fi
- % split off footnotes
- \ifdim\ht0>\zeropoint\relax \else
- \ifdim\ht2>\zeropoint\relax
- \setbox4\vsplit2 to \!!heightc
- \setbox\footins=\vbox{\unvbox4} % ugly and dirty trick
- \ifdim\ht\columntextbox\recurselevel=\zeropoint\relax
- \columnsettextbox\recurselevel\hbox
- {\raise\strutdp\hbox % ugly but needed
- {\setfootnotebodyfont % both these moves
- \lower\strutdp\hbox{\placebottomnotes}}}
- \else
- \columnsetfootbox\recurselevel\hbox{\placebottomnotes}
- \fi
- \fi
- \fi}
- \exitloop
- \fi}
- \else
- % no reason to balance floats
- \fi
- \fi
- \doglobal\addtocommalist{\realfolio}\OTRSETbalancinglist
- \OTRSETdoflush
- \fi
- \egroup}
-
-\protect \endinput
-
-% \def\OTRSETsetbalanceht#1#2% var col
-% {#1\getvalue{\??mc\OTRSETidentifier\number#2\c!regels}\relax
-% \ifcase#1#1\getvalue{\??mc\OTRSETidentifier\c!regels}\relax\fi
-% \ifcase#1#1\savedcolumnmaxcells\relax\fi}
-
-% \def\OTRSETinitbalancing
-% {\ifbalancecolumns
-% \let\savedcolumnmaxcells\columnmaxcells
-% \ifnum\realpageno=\balancingpageno\relax
-% \ifnum\mofcolumns=\plusone\relax
-% \ifcase\OTRSETbottombalance \else
-% \!!countc\zeropoint
-% \dorecurse\nofcolumns
-% {\OTRSETsetbalanceht\!!countb\recurselevel
-% \ifnum\!!countb>\!!countc\!!countc\!!countb\fi}%
-% \fi
-% \dorecurse\nofcolumns
-% {\!!counta\recurselevel\relax
-% % can be an option: absolute versus relative
-% \ifcase\OTRSETbottombalance
-% \OTRSETsetbalanceht\!!countb\recurselevel
-% \advance\!!countb\precolumnlines
-% \ifnum\!!countb>\localcolumnmaxcells\relax
-% \xdef\localcolumnmaxcells{\the\!!countb}%
-% \fi
-% \advance\!!countb \plusone
-% \dostepwiserecurse\!!countb\columnmaxcells\plusone
-% {\ifvoid\OTRSETgridcell\!!counta\recurselevel
-% \OTRSETsetgridcell\!!counta\recurselevel\copy\placeholderboxe
-% \fi}%
-% \else
-% \globallet\localcolumnmaxcells\columnmaxcells
-% \!!countb\!!countc
-% \advance\!!countb-\columnmaxcells
-% \!!countb-\!!countb
-% \advance\!!countb \minusone
-% \ifnum\!!countb>\zerocount
-% \dostepwiserecurse\plusone\!!countb\plusone
-% {\ifvoid\OTRSETgridcell\!!counta\recurselevel
-% \OTRSETsetgridcell\!!counta\recurselevel\copy\placeholderboxe
-% \fi}%
-% \OTRSETsetbalanceht\!!countb\recurselevel
-% \ifnum\!!countc>\!!countb
-% \!!countd\columnmaxcells
-% \advance\!!countd-\!!countc
-% \advance\!!countd+\!!countb
-% \dostepwiserecurse\!!countd\columnmaxcells\plusone
-% {\ifvoid\OTRSETgridcell\!!counta\recurselevel
-% \OTRSETsetgridcell\!!counta\recurselevel\copy\placeholderboxe
-% \fi}%
-% \fi
-% \fi
-% \fi}%
-% \OTRSETsetvsize % ! ! !
-% \fi
-% \fi
-% \fi}
diff --git a/Master/texmf-dist/tex/context/base/page-not.tex b/Master/texmf-dist/tex/context/base/page-not.mkii
index 151f957f4bd..9c67f18f16b 100644
--- a/Master/texmf-dist/tex/context/base/page-not.tex
+++ b/Master/texmf-dist/tex/context/base/page-not.mkii
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Page Macros / Footnotes}
+\writestatus{loading}{ConTeXt Page Macros / Footnotes}
%D Terrible hacks: we need to share save/restore
diff --git a/Master/texmf-dist/tex/context/base/page-not.mkiv b/Master/texmf-dist/tex/context/base/page-not.mkiv
new file mode 100644
index 00000000000..9628b9d5f29
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/page-not.mkiv
@@ -0,0 +1,72 @@
+%D \module
+%D [ file=page-nnt,
+%D version=2002.04.16,
+%D title=\CONTEXT\ Page Macros,
+%D subtitle=Footnotes,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Page Macros / Footnotes}
+
+%D Terrible hacks: we need to share save/restore
+
+%D We've moved some footnote handling to a separate page
+%D module. The macros below are used in the single and multi
+%D column page handlers and permit mixed usage of column and
+%D page notes.
+
+\unprotect
+
+\def\checkbegincolumnfootnotes % should happen inside otr
+ {\ifcase\clevernotes
+ \erasenotebackup
+ \else
+ \flushnotes
+ \savenotecontent
+ \fi
+ \savenotedata
+ \checknotes}
+
+\def\checkendcolumnfootnotes
+ {\restorenotedata % maybe better just \checknotes
+ \ifcase\clevernotes\else
+ \restorenotecontent
+ \fi}
+
+\def\checksinglecolumnfootnotes
+ {\checknotes} % niet : \restorenotedata
+
+\newdimen\totalinsertionheight
+
+\def\settotalinsertionheight
+ {\calculatetotalnoteheight
+ \totalinsertionheight\totalnoteheight
+ \addinsertionheight\topins\to\totalinsertionheight
+ \addinsertionheight\botins\to\totalinsertionheight}
+
+% hm
+
+\def\checkbegincolumnfootnotes % should happen inside otr
+ {\ifcase\clevernotes
+ \erasenotebackup
+ \else
+ \flushnotes
+ \savenotecontent
+ \fi
+ \savenotedata
+ \checknotes}
+
+\def\checkendcolumnfootnotes
+ {\restorenotedata
+ \ifinsidecolumns
+ \ifcase\clevernotes\else
+ \restorenotecontent
+ \fi
+ \fi}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/page-one.tex b/Master/texmf-dist/tex/context/base/page-one.mkii
index fd4f55387f8..1affc24d0e9 100644
--- a/Master/texmf-dist/tex/context/base/page-one.tex
+++ b/Master/texmf-dist/tex/context/base/page-one.mkii
@@ -1,7 +1,7 @@
%D \module
%D [ file=page-one,
%D version=2000.10.20,
-%D title=\CONTEXT\ OTR Macros,
+%D title=\CONTEXT\ Page Macros,
%D subtitle=Default Routine,
%D author=Hans Hagen,
%D date=\currentdate,
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context OTR Macros / Default Routine}
+\writestatus{loading}{ConTeXt Page Macros / Default Routine}
%D This is just the good old \CONTEXT\ output routine, which
%D has been there right from the start.
@@ -547,26 +547,35 @@
\chardef\fixedfloatmethod=3
+% \def\OTRONEsomefixdfloat % [#1]
+% {\docheckiffloatfits
+% \ifroomforfloat\else
+% \ifzeropt\pagetotal
+% % let's assume that there is room
+% \else
+% \ifcase\fixedfloatmethod
+% % disabled
+% \or % 1 (old method)
+% \goodbreak
+% \or % 2 (safe method)
+% \page
+% \or % 3 (keeps in stream)
+% \vskip\textheight
+% \vskip-\textheight
+% \or % 4 (also keeps in place)
+% \dosomebreak\nobreak
+% \fi
+% \fi
+% \fi
+% \showmessage\m!floatblocks9\empty
+% \someherefloat} % [#1]
+
\def\OTRONEsomefixdfloat % [#1]
- {\docheckiffloatfits
- \ifroomforfloat\else
- \ifzeropt\pagetotal
- % let's assume that there is room
- \else
- \ifcase\fixedfloatmethod
- % disabled
- \or % 1 (old method)
- \goodbreak
- \or % 2 (safe method)
- \page
- \or % 3 (keeps in stream)
- \vskip-.5\floatheight % play safe
- \vskip\textheight
- \fi
- \fi
- \fi
+ {% there is (in mkii) no good way to prevent a break
+ % so better fail than mess, we can get loose from
+ % heads, so be it
\showmessage\m!floatblocks9\empty
- \someherefloat} % [#1]
+ \OTRONEsomeherefloat} % [#1]
\def\OTRONEsomesidefloat[#1]% links, rechts NOG TESTEN EN AANPASSEN
{\ifinsidecolumns
diff --git a/Master/texmf-dist/tex/context/base/page-one.mkiv b/Master/texmf-dist/tex/context/base/page-one.mkiv
new file mode 100644
index 00000000000..73f69d58253
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/page-one.mkiv
@@ -0,0 +1,654 @@
+%D \module
+%D [ file=page-one,
+%D version=2000.10.20,
+%D title=\CONTEXT\ Page Macros,
+%D subtitle=Default Routine,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Page Macros / Default Routine}
+
+%D This is just the good old \CONTEXT\ output routine, which
+%D has been there right from the start.
+
+\unprotect
+
+% OTRONE: basic single column
+
+\activateotr{ONE}{} % the default one
+
+\newtoks\OTRONEoutput
+
+\def\OTRONEgotonextpage
+ {\ejectpage}
+
+\def\OTRONEgotonextpageX % will become obsolete
+ {\superejectpage}
+
+\def\OTRONEsethsize
+ {\global\hsize\textwidth}
+
+% keep (original one)
+%
+% \def\OTRONEsetvsize
+% {\ifdim\vsize=\teksthoogte \else
+% \bgroup
+% \scratchdimen-\vsize
+% \advance\scratchdimen \teksthoogte
+% \global\advance\vsize \scratchdimen
+% \relax \ifdim\pagegoal<\maxdimen
+% \advance\scratchdimen \pagegoal
+% \global\pagegoal\scratchdimen
+% \fi
+% \egroup
+% \fi}
+%
+% no (keep)
+%
+% \def\OTRONEsetvsize
+% {\ifdim\vsize=\teksthoogte \else
+% \bgroup
+% \scratchdimen-\vsize
+% \advance\scratchdimen \teksthoogte
+% \ifgridsnapping
+% \getrawnoflines\scratchdimen
+% \scratchdimen\noflines\openlineheight
+% \ifdim\scratchdimen>\noflinesheight % available afterwards
+% \advance\scratchdimen-\openlineheight
+% \fi
+% \ifdim\scratchdimen<\zeropoint
+% \scratchdimen\zeropoint
+% \fi
+% \fi
+% \global\advance\vsize \scratchdimen
+% \relax \ifdim\pagegoal<\maxdimen
+% \advance\scratchdimen \pagegoal
+% \global\pagegoal\scratchdimen
+% \fi
+% \egroup
+% \fi}
+
+% \def\OTRONEsetvsize
+% {\ifgridsnapping
+% \ifcase\layoutlines
+% \getrawnoflines\teksthoogte
+% \else
+% \noflines\layoutlines
+% \fi
+% \global\vsize\noflines\openlineheight
+% \else
+% \global\vsize\teksthoogte
+% \fi
+% \ifdim\pagegoal<\maxdimen
+% \global\pagegoal\vsize
+% \fi}
+
+\newdimen\oldvsize
+
+\def\OTRONEsetvsize
+ {\ifgridsnapping
+ \ifcase\layoutlines
+ \getrawnoflines\textheight
+ \else
+ \noflines\layoutlines
+ \fi
+ \global\vsize\noflines\openlineheight
+ \else
+ \global\vsize\textheight
+ \fi
+ \ifdim\pagegoal<\maxdimen
+ \ifdim\oldvsize=\vsize
+ % let's assume that the layout didn't change
+ \else
+ \bgroup
+ \global\oldvsize\vsize
+ \advance\vsize-\topinserted
+ \advance\vsize-\botinserted
+ \global\pagegoal\vsize
+ \egroup
+ \fi
+ \fi}
+
+\chardef\kindofpagetextareas=2 % whole page (public variable! never change)
+
+% can we avoind the extra vboxing here?
+
+\def\OTRONEregisteredtextarea#1%
+ {\ifregistertextareas
+ \setbox0\vbox{#1}%
+ \wd0\makeupwidth % somehow a space creeps in
+ \vbox{\registeredtextarea000}%
+ \else
+ #1%
+ \fi}
+
+% \chardef\kindofpagetextareas\plusone
+
+\def\doOTRONEregisteredtextareaA#1%
+ {\ifregistertextareas
+ \xypos{pbd:\realfolio:b}% we could save bytes by only saving the y
+ \endgraf
+ \begingroup
+ \scratchdimen\dimexpr\MPy{pbd:\realfolio:b}-\MPy{pbd:\realfolio:e}\relax
+ \setbox\scratchbox\null
+ \wd\scratchbox\makeupwidth
+ \ht\scratchbox\scratchdimen
+ \vsmash{\registeredtextarea00\scratchbox}%
+ \endgroup
+ #1%
+ \endgraf
+ \xypos{pbd:\realfolio:e}%
+ \else
+ #1%
+ \fi}
+
+\def\doOTRONEregisteredtextareaB#1%
+ {\ifregistertextareas
+ \setbox0\vbox{#1}%
+ \wd0\makeupwidth % somehow a space creeps in
+ \vbox{\registeredtextarea000}%
+ \else
+ #1%
+ \fi}
+
+\let\OTRONEregisteredtextareaA\firstofoneargument
+\let\OTRONEregisteredtextareaB\firstofoneargument
+
+\def\OTRONEdopagecontents#1#2% \box<n> \unvbox<n>
+ {\bgroup % niet breedte zetten, kan fractie zijn!
+ \ifcase\kindofpagetextareas
+ \or % partial page (experimental)
+ \let\OTRONEregisteredtextareaA\doOTRONEregisteredtextareaA
+ \or % whole page (default)
+ \let\OTRONEregisteredtextareaB\doOTRONEregisteredtextareaB
+ \or % partial page (only works well with no stretch!)
+ \let\OTRONEregisteredtextareaA\doOTRONEregisteredtextareaB
+ \fi
+ \setbox0\vbox \ifbottomnotes to \textheight \fi
+ {\edef\currentpagedepth{\the\dp#2}% still to be derived from #1
+ \dotopinsertions
+ \ifgridsnapping
+ \OTRONEregisteredtextareaA{#1#2}%
+ \vskip-\currentpagedepth\vskip\openstrutdepth
+ \prevdepth\openstrutdepth
+ \dobotinsertions
+ \vfil
+ \else\ifr@ggedbottom
+ \OTRONEregisteredtextareaA{#1#2}%
+ \vskip-\currentpagedepth\vskip\openstrutdepth
+ \prevdepth\openstrutdepth
+ \dobotinsertions
+ \vfil
+ \else\ifb@selinebottom
+ \OTRONEregisteredtextareaA{#1#2}%
+ \kern-\currentpagedepth\kern\maxdepth
+ \dobotinsertions
+ \else
+ \OTRONEregisteredtextareaA{#1#2}%
+ \dobotinsertions % added
+ \fi\fi\fi
+ \fakepagenotes}% was \fakenotes, but wrong! (check with \setupalign[height])
+ \ifbottomnotes
+ \ifgridsnapping
+ \ifcase\layoutlines % todo: make macro of this
+ \getrawnoflines\textheight
+ \else
+ \noflines\layoutlines
+ \fi
+ \advance\noflines \minusone
+ \scratchdimen\noflines\lineheight
+ \advance\scratchdimen \topskip
+ \else
+ \scratchdimen\ht0
+ \fi
+ \else
+ \scratchdimen\zeropoint
+ \fi
+ \setbox2\hbox
+ {\checksinglecolumnfootnotes
+ \lower\scratchdimen\vbox{\placebottomnotes}}%
+ \smashbox2% % needed here
+ \ifbottomnotes
+ \ht0\zeropoint
+ \fi
+ \OTRONEregisteredtextareaB
+ {\vbox to \textheight
+ {\box0\box2\ifbottomnotes\else\vfill\fi}}%
+ \egroup}
+
+\def\OTRONEfinalsidefloatoutput
+ {\finaloutput\unvbox\normalpagebox}
+
+\OTRONEoutput
+ {\sidefloatoutput}
+
+%D Insertions
+
+\newif\iftopofinsert
+
+% \def\OTRONEdosettopinserts
+% {\bgroup
+% \ifsomefloatwaiting
+% \noffloatinserts\zerocount
+% \let\totaltopinserted\!!zeropoint
+% \OTRONEdodosettopinserts
+% \ifnum\@@bknbottom=\zerocount
+% \ifnum\@@bknlines>\zerocount
+% \ifdim\totaltopinserted>\zeropoint\relax
+% \dimen0=\lineheight
+% \dimen0=\@@bknlines\dimen0
+% \advance\dimen0 \totaltopinserted\relax
+% \ifdim\dimen0>\textheight
+% \showmessage\m!floatblocks8\@@bknlines
+% \vfilll\eject
+% \fi
+% \fi
+% \fi
+% \fi
+% \fi
+% \egroup}
+
+\def\OTRONEdosettopinserts
+ {\bgroup
+ \ifsomefloatwaiting
+ \noffloatinserts\zerocount
+ \let\totaltopinserted\!!zeropoint
+ \OTRONEdodosettopinserts
+ \ifnum\@@bknbottom=\zerocount
+ \ifnum\@@bknlines>\zerocount
+ \ifdim\totaltopinserted>\zeropoint\relax
+ \ifdim\dimexpr\@@bknlines\lineheight+\totaltopinserted\relax>\textheight
+ \showmessage\m!floatblocks8\@@bknlines
+ \vfilll\eject
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \egroup}
+
+\def\OTRONEdodosettopinserts
+ {\ifnum\noffloatinserts<\noftopfloats
+ \dogetfloat
+ \ifdim\topinserted=\zeropoint
+ \topofinserttrue
+ \else
+ \topofinsertfalse
+ \fi
+ \global\advance\topinserted\dimexpr\ht\floatbox+\dp\floatbox+\floatbottomskip\relax
+ \ifdim\topinserted<\textheight\relax
+ \xdef\totaltopinserted{\the\topinserted}%
+ \insert\topins
+ {\forgetall
+ \iftopofinsert
+ \topskipcorrection % [xx] new: see icare topbleed
+ \kern-\lineskip\par
+ \prevdepth\maxdimen
+ \else
+ %\blank[-\@@bkspaceafter,\@@bkspacebefore]% inserts can't look back
+ \betweenfloatblanko
+ \fi
+ \flushfloatbox
+ \blank[\@@bkspaceafter]}%
+ \ifsomefloatwaiting
+ \advance\noffloatinserts \plusone
+ \else
+ \noffloatinserts\noftopfloats\relax
+ \fi
+ \dofloatflushedinfo
+ \else
+ \doresavefloat
+ \noffloatinserts\noftopfloats\relax
+ \fi
+ \else
+ \ifsomefloatwaiting
+ \showmessage\m!floatblocks6{\the\noftopfloats}%
+ \fi
+ \let\OTRONEdodosettopinserts\relax
+ \fi
+ \OTRONEdodosettopinserts}
+
+\def\OTRONEdosetbotinserts
+ {\bgroup
+ \ifsomefloatwaiting
+ \noffloatinserts\zerocount
+ \OTRONEdodosetbotinserts
+ \fi
+ \egroup}
+
+\def\OTRONEdodosetbotinserts
+ {\ifnum\noffloatinserts<\nofbotfloats\relax
+ \dogetfloat
+ \global\advance\botinserted \ht\floatbox\relax
+ \global\advance\botinserted \dp\floatbox\relax
+ \global\advance\botinserted \floattopskip\relax
+ \ifdim\botinserted<\pagegoal\relax
+ \insert\botins
+ {\forgetall
+ \blank[\@@bkspacebefore]%
+ \flushfloatbox}%
+ \ifsomefloatwaiting
+ \advance\noffloatinserts \plusone
+ \else
+ \noffloatinserts\nofbotfloats
+ \fi
+ \dofloatflushedinfo
+ \else
+ \doresavefloat
+ \noffloatinserts\nofbotfloats\relax
+ \fi
+ \global\nofloatpermittedtrue % vgl topfloats s!
+ \else
+ \ifsomefloatwaiting
+ \showmessage\m!floatblocks7{\the\nofbotfloats}%
+ \fi
+ \let\OTRONEdodosetbotinserts\relax
+ \fi
+ \OTRONEdodosetbotinserts}
+
+\def\OTRONEdosetbothinserts
+ {\global\topinserted\zeropoint
+ \global\botinserted\zeropoint
+ \ifflushingfloats \else
+ \OTRONEdosettopinserts
+ \OTRONEdosetbotinserts
+ \ifsomefloatwaiting
+ \doif\@@bkcache\v!no\doflushfloats
+ \fi
+ \fi}
+
+% \def\OTRONEdotopinsertions
+% {\ifvoid\topins\else
+% \ifgridsnapping
+% \box\topins
+% \vskip-\topskip \vskip\strutheight % [xx] new: see icare topbleed
+% \else
+% \unvbox\topins
+% \fi
+% \fi
+% \global\topinserted\zeropoint}
+
+\chardef\topinserttopskipmode=0 % 1 no topskip
+
+\def\OTRONEdotopinsertions
+ {\ifvoid\topins\else
+ \ifgridsnapping
+ \box\topins
+ \vskip-\topskip
+ \vskip\strutheight % [xx] new: see icare topbleed
+ \else
+ \ifcase\topinserttopskipmode
+ % 0: default, do nothing
+ \or
+ % 1: no topskip (crossed fingers)
+ \vskip-\topskip
+ \vskip\strutheight
+ \fi
+ \unvbox\topins
+ \fi
+ \fi
+ \global\topinserted\zeropoint}
+
+\def\OTRONEdobotinsertions
+ {\ifvoid\botins\else
+ \ifgridsnapping
+ % \floatparameter\c!bottombefore
+ \snaptogrid\hbox{\box\botins}%
+ % \floatparameter\c!bottomafter
+ \else
+ \floatparameter\c!bottombefore
+ \unvbox\botins
+ \floatparameter\c!bottomafter
+ \fi
+ \fi
+ \global\botinserted\zeropoint
+ \global\nofloatpermittedfalse}
+
+\def\OTRONEdoflushfloats
+ {\global\flushingfloatstrue
+ \ifsomefloatwaiting
+ \par
+ % if kept, then option and definitely off in gridmode ! ! ! !
+ % \ifvmode \prevdepth\maxdimen \fi % prevents whitespace; problematic in icare tests
+ \OTRONEdodoflushfloats
+ \fi
+ \global\savednoffloats\zerocount
+ \global\somefloatwaitingfalse
+ \global\flushingfloatsfalse}
+
+\def\OTRONEflushfloatbox % nog verder doorvoeren en meer info in marge
+ {\ifcenterfloatbox \ifdim\wd\floatbox<\hsize
+ \setbox\floatbox\hbox to \hsize{\hss\box\floatbox\hss}%
+ \fi \fi
+ \snaptogrid\hbox{\iftestfloatbox\ruledhbox\fi{\copy\floatbox}}}
+
+\def\OTRONEdodoflushfloats % much in common with OTRSET
+ {\ifsomefloatwaiting
+ \ifpackflushedfloats
+ \centerfloatboxfalse
+ \dogetfloat
+ \ifdim\wd\floatbox>\makeupwidth
+ \global\setbox\floatbox\hbox to \makeupwidth{\hss\box\floatbox\hss}%
+ \fi
+ \OTRONEsetvsize
+ \!!widtha\wd\floatbox
+ \dofloatflushedinfo
+ \doloop
+ {\ifsomefloatwaiting
+ \dosavefloatstatus
+ \dogetfloat
+ \advance\!!widtha 1em % variable
+ \advance\!!widtha \wd\floatbox\relax
+ \ifdim\!!widtha>\hsize
+ \dorestorefloatstatus
+ \global\somefloatwaitingtrue
+ \exitloop
+ \else
+ \global\setbox\floatbox\hbox
+ {\ifcase\columndirection % nog document wide
+ \ifvoid\savedfloatbox\else
+ \ifhbox\savedfloatbox\unhbox\else\box\fi\savedfloatbox\hfil
+ \fi
+ \ifhbox\floatbox\unhbox\else\box\fi\floatbox
+ \else
+ \ifhbox\floatbox\unhbox\else\box\fi\floatbox
+ \ifvoid\savedfloatbox\else
+ \hfil\ifhbox\savedfloatbox\unhbox\else\box\fi\savedfloatbox
+ \fi
+ \fi}%
+ \dofloatflushedinfo
+ \fi
+ \else
+ \exitloop
+ \fi}%
+ \global\setbox\floatbox\hbox to \hsize
+ {\hfil\ifhbox\floatbox\unhbox\else\box\fi\floatbox\hfil}%
+ \else
+ %\bgroup % \box\floatbox can be in use!? messy
+ \dogetfloat
+ %\doplacefloatbox
+ %\egroup
+ \dofloatflushedinfo
+ \fi
+ % there is a chance that due to rounding errors, the float
+ % fits on a page where it was first rejected, in which case
+ % the prevdepth is -maxdimen and we cannot obey the grid
+ \doplacefloatbox
+ \expandafter\OTRONEdodoflushfloats
+ \fi}
+
+\def\OTRONEdocheckiffloatfits % vervangen ivm downward comp
+ {\ifnofloatpermitted
+ \global\roomforfloatfalse
+ \else
+ % new per 31/5/2004, should be an option, only one column mode
+ \begingroup
+ \scratchdimen\dimexpr\pagetotal+\lineheight\relax
+ \ifdim\scratchdimen>\pagegoal
+ \goodbreak % hack ? needed in icare-az
+ \fi
+ % should be an option
+ \endgroup
+ \dimen0\dimexpr\pagetotal+\ht\floatbox+\dp\floatbox+\floattopskip-\pageshrink\relax
+ %\message{c:\the\mofcolumns,t:\the\pagetotal,g:\the\pagegoal}%\wait
+ \dimen2\pagegoal
+ \relax % needed
+ \ifcase\textfloatmethod
+ % method 0 : raw
+ \or
+ % method 1 : safe
+ \dimen2 .99\pagegoal
+ \or
+ % method 2 : tight
+ \advance\dimen0 -\onepoint
+ \fi
+ \relax % really needed ! ! ! !
+ \ifdim\dimen0>\dimen2
+ \global\roomforfloatfalse
+ \else
+ \global\roomforfloattrue
+ \fi
+ \fi}
+
+\def\OTRONEflushsavedfloats
+ {\dosetbothinserts}
+
+% TODO: TEST FIRST, NO CORRECTION NEEDED IN GRID MODE, EVT OPTION
+
+\def\OTRONEsomeherefloat[#1]% spacing between two successive must be better
+ {\baselinecorrection % not really needed in grid mode:
+ %\ifgridsnapping \else \baselinecorrection \fi % ! ! ! test test test ! ! ! !
+ \doplacefloatbox
+ \doinsertfloatinfo
+ \dohandlenextfloatindent}
+
+% \def\OTRONEsomefixdfloat % [#1]
+% {\docheckiffloatfits
+% \ifroomforfloat\else
+% \goodbreak
+% \fi
+% \showmessage\m!floatblocks9\empty
+% \someherefloat} % [#1]
+%
+% better:
+%
+% \dorecurse{50}
+% {[before normal] \input thuan
+% \placefigure{normal}{\framed[height=1cm,width=8cm]{}}
+% \placefigure{normal}{\framed[height=2cm,width=8cm]{}}
+% [before force] \input thuan
+% \placefigure[force]{force}{\framed[height=8cm,width=8cm]{}}}
+
+\chardef\fixedfloatmethod=3
+
+% \def\OTRONEsomefixdfloat % [#1]
+% {\docheckiffloatfits
+% \ifroomforfloat\else
+% \ifzeropt\pagetotal
+% % let's assume that there is room
+% \else
+% \ifcase\fixedfloatmethod
+% % disabled
+% \or % 1 (old method)
+% \goodbreak
+% \or % 2 (safe method)
+% \page
+% \or % 3 (keeps in stream)
+% \vskip\textheight
+% \vskip-\textheight
+% \or % 4 (also keeps in place)
+% \dosomebreak\nobreak
+% \fi
+% \fi
+% \fi
+% \showmessage\m!floatblocks9\empty
+% \someherefloat} % [#1]
+
+\def\OTRONEsomefixdfloat % [#1]
+ {% there is (in mkii) no good way to prevent a break
+ % so better fail than mess, we can get loose from
+ % heads, so be it
+ \showmessage\m!floatblocks9\empty
+ \OTRONEsomeherefloat} % [#1]
+
+\def\OTRONEsomesidefloat[#1]% links, rechts NOG TESTEN EN AANPASSEN
+ {\ifinsidecolumns
+ \someelsefloat[\v!here]%
+ \else
+ %\checkwaitingfloats{#1}%
+ \def\logsidefloat
+ {\doinsertfloatinfo}%
+ \setbox\floatbox\vbox{\box\floatbox}%
+ \wd\floatbox\floatwidth
+ \processfirstactioninset
+ [#1]
+ [ \v!left=>\leftfloat {\box\floatbox},
+ \v!right=>\rightfloat {\box\floatbox},
+ \v!inleft=>\leftmarginfloat {\box\floatbox},
+ \v!inright=>\rightmarginfloat{\box\floatbox},
+ \v!leftmargin=>\leftmarginfloat {\box\floatbox},
+ \v!rightmargin=>\rightmarginfloat{\box\floatbox},
+ \v!leftedge=>\leftedgefloat {\box\floatbox},
+ \v!rightedge=>\rightedgefloat {\box\floatbox},
+ \v!backspace=>\backspacefloat {\box\floatbox},
+ \v!cutspace=>\cutspacefloat {\box\floatbox},
+ \v!inmargin=>\cutspacefloat {\box\floatbox}]%
+ \doifinset\v!tall{#1}\flushsidefloatsafterpar
+ \fi}
+
+\def\OTRONEdosomepagefloat#1[#2]%
+ {%\checkwaitingfloats{#1}%
+ \global\setbox#1\vbox
+ {\unvbox#1%
+ \vbox to \textheight
+ {\doifnotinset\v!high{#2}\vfill
+ \box\floatbox
+ \doifnotinset\v!low{#2}\vfill}%
+ \goodbreak}%
+ \doinsertfloatinfo}
+
+\def\OTRONEsomepagefloat {\OTRONEdosomepagefloat\collectedpagefloats}
+\def\OTRONEsomeleftpagefloat {\OTRONEdosomepagefloat\collectedleftpagefloats}
+\def\OTRONEsomerightpagefloat{\OTRONEdosomepagefloat\collectedrightpagefloats}
+
+\def\OTRONEsometopsfloat[#1]%
+ {\ifdim\topinserted=\zeropoint
+ \topofinserttrue
+ \else
+ \topofinsertfalse
+ \fi
+ \global\advance\topinserted \ht\floatbox+\dp\floatbox+\floatbottomskip\relax
+ \insert\topins
+ {\forgetall
+ \iftopofinsert
+ \topskipcorrection % [xx] new: see icare topbleed
+ \kern-\lineskip\par\prevdepth\maxdimen
+ \else
+ %\blank[-\@@bkspaceafter,\@@bkspacebefore]% inserts can't look back
+ \betweenfloatblanko
+ \fi
+ \flushfloatbox
+ \blank[\@@bkspaceafter]}%
+ \doinsertfloatinfo}
+
+\def\OTRONEsomebotsfloat[#1]%
+ {\global\advance\botinserted\dimexpr\ht\floatbox+\dp\floatbox+\floattopskip\relax
+ \insert\botins
+ {\forgetall
+ \blank[\@@bkspacebefore]%
+ \flushfloatbox}%
+ %\global\nofloatpermittedtrue
+ \doinsertfloatinfo}
+
+\def\OTRONEsomefacefloat[#1]% untested
+ {\startopposite\flushfloatbox\stopopposite}
+
+\def\OTRONEnextcolumn[#1]%
+ {}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/page-par.tex b/Master/texmf-dist/tex/context/base/page-par.mkii
index fa1723d37ce..a5dea2e635d 100644
--- a/Master/texmf-dist/tex/context/base/page-par.tex
+++ b/Master/texmf-dist/tex/context/base/page-par.mkii
@@ -1,7 +1,7 @@
%D \module
%D [ file=page-par, % copied from page-lin
%D version=1997.03.31,
-%D title=\CONTEXT\ Core Macros,
+%D title=\CONTEXT\ Page Macros,
%D subtitle=Line Numbering,
%D author=Hans Hagen,
%D date=\currentdate,
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Core Macros / Paragraph Numbering}
+\writestatus{loading}{ConTeXt Page Macros / Paragraph Numbering}
\unprotect
diff --git a/Master/texmf-dist/tex/context/base/page-par.mkiv b/Master/texmf-dist/tex/context/base/page-par.mkiv
new file mode 100644
index 00000000000..a5dea2e635d
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/page-par.mkiv
@@ -0,0 +1,58 @@
+%D \module
+%D [ file=page-par, % copied from page-lin
+%D version=1997.03.31,
+%D title=\CONTEXT\ Page Macros,
+%D subtitle=Line Numbering,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Page Macros / Paragraph Numbering}
+
+\unprotect
+
+\newcount\internalparagraphnumber
+
+\def\setupparagraphnumbering
+ {\dosingleempty\dosetupparagraphnumbering}
+
+\def\dosetupparagraphnumbering[#1]%
+ {\getparameters
+ [\??ph][#1]%
+ \processaction
+ [\@@phstate]
+ [\v!start=>\let\showparagraphnumber\doshowparagraphnumberA,
+ \v!stop=>\let\showparagraphnumber\relax,
+ \v!line=>\let\showparagraphnumber\doshowparagraphnumberB,
+ \v!reset=>\global\internalparagraphnumber\zerocount
+ \let\showparagraphnumber\doshowparagraphnumberA]}
+
+\def\dodoshowparagraphnumber
+ {\global\advance\internalparagraphnumber \plusone
+ \inleftmargin % \tf normalizes em
+ {\tf{\doattributes\??ph\c!style\c!color{\the\internalparagraphnumber}}%
+ \kern\@@phdistance}}
+
+\def\doshowparagraphnumberA
+ {\ifprocessingverbatim
+ \iflinepar\dodoshowparagraphnumber\fi
+ \else
+ \dodoshowparagraphnumber
+ \fi}
+
+\def\doshowparagraphnumberB
+ {\ifnumberinglines
+ \doshowparagraphnumberA
+ \fi}
+
+\setupparagraphnumbering
+ [\c!state=\v!stop,
+ \c!style=,
+ \c!color=,
+ \c!distance=\ifcase\linenumberlocation2em\else\!!zeropoint\fi] % will change
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/page-plg.tex b/Master/texmf-dist/tex/context/base/page-plg.mkii
index b8da7f88af7..3203b923cbf 100644
--- a/Master/texmf-dist/tex/context/base/page-plg.tex
+++ b/Master/texmf-dist/tex/context/base/page-plg.mkii
@@ -1,7 +1,7 @@
%D \module
%D [ file=page-pls,
%D version=2003.03.16,
-%D title=\CONTEXT\ Core Macros,
+%D title=\CONTEXT\ Page Macros,
%D subtitle=Page Setup,
%D author=Hans Hagen,
%D date=\currentdate,
@@ -13,7 +13,7 @@
\ifx\pageareabox\undefined \else \endinput \fi
-\writestatus{loading}{Context Core Macros / Extra Page Building}
+\writestatus{loading}{ConTeXt Page Macros / Extra Page Building}
%D This feature has been present for a while but has never been
%D exploited: pluggable pagebuilders. The next example code
@@ -115,8 +115,7 @@
{\vbox to \textheight
{\offinterlineskip
% optie
- \vskip-1\topskip
- \vskip\strutheight
+ \vskip\dimexpr-1\topskip+\strutheight\relax
%
\textwidth\makeupwidth
\hsize\textwidth
diff --git a/Master/texmf-dist/tex/context/base/page-plg.mkiv b/Master/texmf-dist/tex/context/base/page-plg.mkiv
new file mode 100644
index 00000000000..bbee2eb57ba
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/page-plg.mkiv
@@ -0,0 +1,198 @@
+%D \module
+%D [ file=page-pls,
+%D version=2003.03.16,
+%D title=\CONTEXT\ Page Macros,
+%D subtitle=Page Setup,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA-ADE]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\ifx\pageareabox\undefined \else \endinput \fi
+
+\writestatus{loading}{ConTeXt Page Macros / Extra Page Building}
+
+%D This feature has been present for a while but has never been
+%D exploited: pluggable pagebuilders. The next example code
+%D demonstrates the application of one such a plug-in. This variant
+%D support \type {page}, \type {leftpage} and \type {rightpage}
+%D definitions where specific areas are placed with the \type
+%D {\pagearea} command.
+%D
+%D \starttyping
+%D \setupheadertexts[the header text]
+%D \setupfootertexts[a pretty long left footer text][something right]
+%D \setupbottomtexts[a not so long bottom text][another right thing]
+%D \setuptexttexts [margin][something marginal][indeed]
+%D
+%D \startpagelayout[leftpage]
+%D \setupTABLE[offset=overlay]
+%D \setupTABLE[c][1][width=\leftmarginwidth]
+%D \bTABLE
+%D \bTR
+%D \bTD[nx=3,background=color,backgroundcolor=green]
+%D \pagearea[header][text][middle]
+%D \eTD
+%D \eTR
+%D \bTR
+%D \bTD \pagearea[text][margin][left] \eTD
+%D \bTD[nx=2] \pagearea[text] \eTD
+%D \eTR
+%D \bTR
+%D \bTD[nx=3,offset=overlay]
+%D {\bTABLE[width=.5\hsize]
+%D \bTR
+%D \bTD \pagearea[footer][text][left] \eTD
+%D \bTD \pagearea[bottom][text][left] \eTD
+%D \eTR
+%D \eTABLE}
+%D \eTD
+%D \eTR
+%D \eTABLE
+%D \stoppagelayout
+%D
+%D \startpagelayout[rightpage]
+%D \setupTABLE[offset=overlay]
+%D \setupTABLE[c][1][width=\rightmarginwidth]
+%D \bTABLE
+%D \bTR
+%D \bTD[nx=3] \pagearea[header][text][middle] \eTD
+%D \eTR
+%D \bTR
+%D \bTD \pagearea[text][margin][left] \eTD
+%D \bTD[nx=2] \pagearea[text] \eTD
+%D \eTR
+%D \bTR
+%D \bTD[nx=3,offset=overlay]
+%D {\bTABLE[width=.5\hsize]
+%D \bTR
+%D \bTD \pagearea[bottom][text][right] \eTD
+%D \bTD \pagearea[footer][text][right] \eTD
+%D \eTR
+%D \eTABLE}
+%D \eTD
+%D \eTR
+%D \eTABLE
+%D \stoppagelayout
+%D
+%D \setupcolors[state=start]
+%D
+%D \setupbackgrounds[text][background=color,backgroundcolor=blue]
+%D \setupbackgrounds[header][text][background=color,backgroundcolor=red]
+%D
+%D \setuppagenumbering[alternative=doublesided,location=]
+%D
+%D \setuplayout[method=makeup]
+%D
+%D \definetextbackground
+%D [test]
+%D [state=start,
+%D background=color,
+%D backgroundcolor=yellow]
+%D
+%D \starttext
+%D
+%D \dorecurse{10}{\input tufte \par}
+%D
+%D \input tufte \starttest \input tufte \stoptest \input tufte
+%D
+%D \starttabulate
+%D \NC test \NC \starttest \input tufte \stoptest \NC \NR
+%D \stoptabulate
+%D
+%D \dorecurse{10}{\input tufte \par}
+%D
+%D \stoptext
+%D \stoptyping
+
+\unprotect
+
+\setvalue{\??ly\c!method\v!makeup}#1#2%
+ {\setbox\pagebox\hbox
+ {\vbox to \textheight
+ {\offinterlineskip
+ % optie
+ \vskip\dimexpr-1\topskip+\strutheight\relax
+ %
+ \textwidth\makeupwidth
+ \hsize\textwidth
+ \boxmaxdepth\maxdepth
+ \noindent
+ \dopagecontents#1#2}}%
+ \wd\pagebox\makeupwidth
+ \ht\pagebox\textheight
+ \dp\pagebox\zeropoint
+ \hsize\paperwidth
+ \vsize\paperheight
+ \setbox\pagebox\vbox
+ {\doifbothsidesoverruled
+ {\let\!!stringa\v!page}
+ {\let\!!stringa\v!rightpage}
+ {\let\!!stringa\v!leftpage}%
+ \getvalue{\??ly\c!method:\!!stringa}}%
+ \wd\pagebox\paperwidth
+ \ht\pagebox\paperheight
+ \dp\pagebox\zeropoint}
+
+\newbox\pageareabox
+
+\def\pagearea
+ {\dotripleempty\dopagearea}
+
+\def\dopagearea[#1][#2][#3]%
+ {\ifthirdargument
+ \doifelse{#3}\v!left
+ {\dodopagearea{#1}{#2}\c!lefttext}
+ {\doifelse{#3}\v!right
+ {\dodopagearea{#1}{#2}\c!righttext}
+ {\dodopagearea{#1}{#2}\c!middletext}}%
+ \else\ifsecondargument
+ \doifbothsidesoverruled
+ {\dodopagearea{#1}{#2}\c!righttext}
+ {\dodopagearea{#1}{#2}\c!righttext}
+ {\dodopagearea{#1}{#2}\c!lefttext }%
+ \else
+ \doif{#1}\v!text % copy due to trial runs in TABLE
+ {\iftrialtypesetting
+ \copy\pagebox
+ \else
+ \localpositioningfalse
+ \addtextbackground\pagebox
+ \addtextgridlayer\pagebox
+ \box\pagebox
+ \fi}%
+ \fi\fi}
+
+\def\dodopagearea#1#2#3%
+ {\setbox\pageareabox\vbox{\getvalue{\??tk#1#2#3}}%
+ \ifsomebackgroundfound{#1#2}%
+ \iftrialtypesetting
+ \box\pageareabox
+ \else
+ \localframed
+ [\??ma#1#2]
+ [\c!width=\wd\pageareabox,
+ \c!height=\ht\pageareabox,
+ \c!offset=\v!overlay]
+ {\box\pageareabox}%
+ \fi
+ \else
+ \box\pageareabox
+ \fi}
+
+\setvalue{\??ly\c!method:\v!leftpage }{\getvalue{\??ly\c!method:\v!page}}
+\setvalue{\??ly\c!method:\v!rightpage}{\getvalue{\??ly\c!method:\v!page}}
+
+% \long\def\startpagelayout[#1]#2\stoppagelayout
+% {\long\setvalue{\??ly\c!method:#1}{#2}}
+
+\long\def\startpagelayout
+ {\bgroup\catcode`\^^M=\@@ignore\dostartpagelayout}
+
+\long\def\dostartpagelayout[#1]#2\stoppagelayout
+ {\egroup\long\setvalue{\??ly\c!method:#1}{#2}}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/page-run.tex b/Master/texmf-dist/tex/context/base/page-run.mkii
index 302a1b5a07b..ae5af81e94c 100644
--- a/Master/texmf-dist/tex/context/base/page-run.tex
+++ b/Master/texmf-dist/tex/context/base/page-run.mkii
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Page Macros / Runtime Macros}
+\writestatus{loading}{ConTeXt Page Macros / Runtime Macros}
\unprotect
diff --git a/Master/texmf-dist/tex/context/base/page-run.mkiv b/Master/texmf-dist/tex/context/base/page-run.mkiv
new file mode 100644
index 00000000000..ae5af81e94c
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/page-run.mkiv
@@ -0,0 +1,382 @@
+%D \module
+%D [ file=page-run,
+%D version=2000.10.20,
+%D title=\CONTEXT\ Page Macros,
+%D subtitle=Runtime Macros,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Page Macros / Runtime Macros}
+
+\unprotect
+
+\gdef\doshowprint[#1][#2][#3]%
+ {\framed
+ [\c!offset=\v!overlay,
+ \c!strut=\v!no]
+ {\forgetall
+ \dontcomplain
+ \globaldefs\minusone
+ \dimen0\pagegoal
+ \definepapersize[X][\c!width=4em, \c!height=6em]%
+ \definepapersize[Y][\c!width=12em,\c!height=14em]%
+ \setuppapersize[#1,X][#2,Y]%
+ \setuplayout[#3]%
+ \setbox0\vbox
+ {\framed
+ [\c!offset=\v!overlay,\c!strut=\v!no,
+ \c!width=\paperwidth,\c!height=\paperheight]
+ {\ss ABC\par DEF}}%
+ \doublesidedfalse
+ \def\cutmarklength{.5em}%
+ \addpagecutmarks0%
+ \replicatepagebox0%
+ \scalepagebox0%
+ \mirrorpaperbox0%
+ \orientpaperbox0%
+ \centerpagebox0%
+ \mirrorprintbox0%
+ \orientprintbox0%
+ \offsetprintbox0%
+ \pagegoal\dimen0
+ \box0}}
+
+\gdef\showprint
+ {\dotripleempty\doshowprint}
+
+% \switchnaarkorps[8pt]
+%
+% \startcombinatie[4*4]
+% {\toonprint} {\strut}
+% {\toonprint[][][plaats=midden]} {\type{plaats=midden}}
+% {\toonprint[][][plaats=midden,markering=aan]} {\type{markering=aan}\break
+% \type{plaats=midden}}
+% {\toonprint[][][plaats=midden,markering=aan,nx=2]} {\type{markering=aan}\break
+% \type{plaats=midden}\break
+% \type{nx=2}}
+% {\toonprint[][][plaats=links]} {\type{plaats=links}}
+% {\toonprint[][][plaats=rechts]} {\type{plaats=rechts}}
+% {\toonprint[][][plaats={links,onder}]} {\type{plaats={links,onder}}}
+% {\toonprint[][][plaats={rechts,onder}]} {\type{plaats={rechts,onder}}}
+% {\toonprint[][][nx=2,ny=1]} {\type{nx=2,ny=1}}
+% {\toonprint[][][nx=1,ny=2]} {\type{nx=1,ny=2}}
+% {\toonprint[][][nx=2,ny=2]} {\type{nx=2,ny=2}}
+% {\toonprint[][][nx=2,ny=2,plaats=midden]} {\type{nx=2,ny=2}\break
+% \type{plaats=midden}}
+% {\toonprint[][][rugoffset=3pt]} {\type{rugoffset=.5cm}}
+% {\toonprint[][][kopoffset=3pt]} {\type{kopoffset=.5cm}}
+% {\toonprint[][][schaal=1.5]} {\type{schaal=1.5}}
+% {\toonprint[][][schaal=0.8]} {\type{schaal=0.8}}
+% \stopcombinatie
+%
+% \startcombinatie[3*4]
+% {\toonprint[liggend][][plaats=midden]} {\type{liggend}}
+% {\toonprint[][liggend][plaats=midden]} {\strut\break\type{liggend}}
+% {\toonprint[liggend][liggend][plaats=midden]} {\type{liggend}\break\type{liggend}}
+% {\toonprint[90][][plaats=midden]} {\type{90}}
+% {\toonprint[][90][plaats=midden]} {\strut\break\type{90}}
+% {\toonprint[90][90][plaats=midden]} {\type{90}\break\type{90}}
+% {\toonprint[180][][plaats=midden]} {\type{180}}
+% {\toonprint[][180][plaats=midden]} {\strut\break\type{180}}
+% {\toonprint[180][180][plaats=midden]} {\type{180}\break\type{180}}
+% {\toonprint[gespiegeld][][plaats=midden]} {\type{gespiegeld}}
+% {\toonprint[][gespiegeld][plaats=midden]} {\strut\break\type{gespiegeld}}
+% {\toonprint[gespiegeld][gespiegeld][plaats=midden]} {\type{gespiegeld}\break\type{gespiegeld}}
+% \stopcombinatie
+
+\gdef\doshowframe[#1][#2]%
+ {\ifsecondargument
+ \setupbackgrounds
+ [\v!page]
+ [\c!frame=\v!on,
+ \c!corner=\v!rectangular,
+ \c!frameoffset=\!!zeropoint,
+ \c!framedepth=\!!zeropoint,
+ \c!framecolor=layout:page]
+ \setupbackgrounds
+ [#1][#2]
+ [\c!background=,
+ \c!frame=\v!on,
+ \c!corner=\v!rectangular,
+ \c!frameoffset=\!!zeropoint,
+ \c!framedepth=\!!zeropoint,
+ \c!framecolor=]
+ \else\iffirstargument
+ \showframe
+ [\v!header,\v!text,\v!footer]
+ [#1]
+ \else
+ \showframe
+ [\v!header,\v!text,\v!footer]
+ [\v!leftedge,\v!leftmargin,
+ \v!text,
+ \v!rightmargin,\v!rightedge]
+ \fi\fi
+ \setupbackgrounds
+ [\c!state=\v!repeat]}
+
+\gdef\showframe{\dodoubleempty\doshowframe}
+
+\gdef\showsetupA#1#2%
+ {#1&\PtToCm{\the#2}&\the#2&\tttf\string#2\cr}
+
+\gdef\showsetupB#1#2#3%
+ {#1&&#2#3&\tttf\string#3\cr}
+
+% \startinterface english % english is fallback
+
+\gdef\showsetups
+ {\noindent
+ \vbox
+ {\forgetall
+ \dontcomplain
+ \switchtobodyfont[\v!small]
+ \tabskip\zeropoint
+ \halign
+ {\strut##\quad\hss&##\quad\hss&##\quad\hss&##\hss\cr
+ \showsetupA{paperheight} \paperheight
+ \showsetupA{paperwidth} \paperwidth
+ \showsetupA{printpaperheight} \printpaperheight
+ \showsetupA{printpaperwidth} \printpaperwidth
+ \showsetupA{topspace} \topspace
+ \showsetupA{backspace} \backspace
+ \showsetupA{height} \makeupheight
+ \showsetupA{width} \makeupwidth
+ \showsetupA{top} \topheight
+ \showsetupA{topdistance} \topdistance
+ \showsetupA{header} \headerheight
+ \showsetupA{headerdistance} \headerdistance
+ \showsetupA{textheight} \textheight
+ \showsetupA{footerdistance} \footerdistance
+ \showsetupA{footer} \footerheight
+ \showsetupA{bottomdistance} \bottomdistance
+ \showsetupA{bottom} \bottomheight
+ \showsetupA{leftedge} \leftedgewidth
+ \showsetupA{leftedgedistance} \leftedgedistance
+ \showsetupA{leftmargin} \leftmarginwidth
+ \showsetupA{leftmargindistance} \leftmargindistance
+ \showsetupA{textwidth} \textwidth
+ \showsetupA{rightmargindistance}\rightmargindistance
+ \showsetupA{rightmargin} \rightmarginwidth
+ \showsetupA{rightedgedistance} \rightedgedistance
+ \showsetupA{rightedge} \rightedgewidth
+ \showsetupB{bodyfontsize} \the \globalbodyfontsize
+ \showsetupB{line} \relax \normallineheight
+ \showsetupB{height} \relax \strutheightfactor
+ \showsetupB{depth} \relax \strutdepthfactor
+ \showsetupB{topskip} \relax \topskipfactor
+ \showsetupB{maxdepth} \relax \maxdepthfactor}}}
+
+% \stopinterface
+
+\startinterface dutch
+
+\gdef\showsetups
+ {\noindent
+ \vbox
+ {\forgetall
+ \dontcomplain
+ \switchtobodyfont[\v!small]
+ \tabskip\zeropoint
+ \halign
+ {\strut##\quad\hss&##\quad\hss&##\quad\hss&##\hss\cr
+ \showsetupA{papierhoogte} \papierhoogte
+ \showsetupA{papierbreedte} \papierbreedte
+ \showsetupA{printpapierhoogte} \printpapierhoogte
+ \showsetupA{printpapierbreedte} \printpapierbreedte
+ \showsetupA{kopwit} \kopwit
+ \showsetupA{rugwit} \rugwit
+ \showsetupA{snijwit} \snijwit
+ \showsetupA{hoogte} \zethoogte
+ \showsetupA{breedte} \zetbreedte
+ \showsetupA{boven} \bovenhoogte
+ \showsetupA{bovenafstand} \bovenafstand
+ \showsetupA{hoofd} \hoofdhoogte
+ \showsetupA{hoofdafstand} \hoofdafstand
+ \showsetupA{teksthoogte} \teksthoogte
+ \showsetupA{voetafstand} \voetafstand
+ \showsetupA{voet} \voethoogte
+ \showsetupA{onderafstand} \onderafstand
+ \showsetupA{onder} \onderhoogte
+ \showsetupA{linkerrand} \linkerrandbreedte
+ \showsetupA{linkerrandafstand} \linkerrandafstand
+ \showsetupA{linkermarge} \linkermargebreedte
+ \showsetupA{linkermargeafstand} \linkermargeafstand
+ \showsetupA{tekstbreedte} \tekstbreedte
+ \showsetupA{rechtermargeafstand}\rechtermargeafstand
+ \showsetupA{rechtermarge} \rechtermargebreedte
+ \showsetupA{rechterrandafstand} \rechterrandafstand
+ \showsetupA{rechterrand} \rechterrandbreedte
+ \showsetupB{korps} \the \globalbodyfontsize
+ \showsetupB{regel} \relax \normallineheight
+ \showsetupB{hoogte} \relax \strutheightfactor
+ \showsetupB{diepte} \relax \strutdepthfactor
+ \showsetupB{boven} \relax \topskipfactor
+ \showsetupB{onder} \relax \maxdepthfactor}}}
+
+\stopinterface
+
+% todo: \showsetupA{rugwit} \rugwit
+
+\startinterface german
+
+\gdef\showsetups%
+ {\noindent
+ \vbox
+ {\forgetall
+ \dontcomplain
+ \switchtobodyfont[\v!small]
+ \tabskip\zeropoint
+ \halign
+ {\strut##\quad\hss&##\quad\hss&##\quad\hss&##\hss\cr
+ \showsetupA{papierhoehe} \papierhoehe
+ \showsetupA{papierbreite} \papierbreite
+ \showsetupA{printpapierhoehe} \printpapierhoehe
+ \showsetupA{printpapierbreite} \printpapierbreite
+ \showsetupA{kopfweite} \kopfweite
+ \showsetupA{rumpfweite} \rumpfweite
+ \showsetupA{hoehe} \satzhoehe
+ \showsetupA{breite} \satzbreite
+ \showsetupA{oben} \hoeheoben
+ \showsetupA{abstandoben} \abstandoben
+ \showsetupA{kopfzeile} \kopfzeilenhoehe
+ \showsetupA{kopfzeilenabstand} \kopfzeilenabstand
+ \showsetupA{texthoehe} \texthoehe
+ \showsetupA{fusszeileabstand} \fusszeileabstand
+ \showsetupA{fusszeilen} \fusszeilenhoehe
+ \showsetupA{abstandunten} \abstandunten
+ \showsetupA{hoeheunten} \hoeheunten
+ \showsetupA{linkerrand} \breitelinkerrand
+ \showsetupA{abstandlinkerrand} \abstandlinkerrand
+ \showsetupA{linkemarginal} \linkemarginalbreite
+ \showsetupA{linkemarginalafstand} \linkemarginalafstand
+ \showsetupA{textbreite} \textbreite
+ \showsetupA{rechtemarginalafstand}\rechtemarginalafstand
+ \showsetupA{rechtemarginal} \rechtemarginalbreite
+ \showsetupA{abstandrechterrand} \abstandrechterrand
+ \showsetupA{rechterrand} \breiterechterrand
+ \showsetupB{fliesstext} \the \globalbodyfontsize
+ \showsetupB{linie} \relax \normallineheight
+ \showsetupB{hoehe} \relax \strutheightfactor
+ \showsetupB{tiefe} \relax \strutdepthfactor
+ \showsetupB{topskip} \relax \topskipfactor
+ \showsetupB{maxdepth} \relax \maxdepthfactor}}}
+
+\stopinterface
+
+\startinterface czech
+
+\gdef\showsetups%
+ {\noindent
+ \vbox
+ {\forgetall
+ \dontcomplain
+ \switchtobodyfont[\v!small]
+ \tabskip\zeropoint
+ \halign
+ {\strut##\quad\hss&##\quad\hss&##\quad\hss&##\hss\cr
+ \showsetupA{vyskapapiru} \vyskapapiru
+ \showsetupA{sirkapapiru} \sirkapapiru
+ \showsetupA{vyskatiskpapiru} \vyskatiskpapiru
+ \showsetupA{sirkatiskpapiru} \sirkatiskpapiru
+ \showsetupA{hornimezera} \hornimezera
+ \showsetupA{spodnimezera} \spodnimezera
+ \showsetupA{vyska} \vyskasazby
+ \showsetupA{breite} \sirkasazby
+ \showsetupA{vyskatextu} \vyskatextu
+ \showsetupA{sirkatextu} \sirkatextu
+ \showsetupA{horejsek} \vyskahorejsku
+ \showsetupA{vzdalenosthorejsku} \vzdalenosthorejsku
+ \showsetupA{zahlavi} \vyskazahlavi
+ \showsetupA{vzdalenostzahlavi} \vzdalenostzahlavi
+ \showsetupA{fusszeileabstand} \vzdalenostupati
+ \showsetupA{upati} \vyskaupati
+ \showsetupA{vzdalenostspodku} \vzdalenostspodku
+ \showsetupA{spodek} \vyakaspodku
+ \showsetupA{levyokraj} \sirkalevehookraje
+ \showsetupA{vzdalenostlevehookraje} \vzdalenostlevehookraje
+ \showsetupA{levamarginalie} \sirkalevemarginalie
+ \showsetupA{vzdalenostlevemarginalie} \vzdalenostlevemarginalie
+ \showsetupA{vzdalenostpravemarginalie}\vzdalenostpravemarginalie
+ \showsetupA{pravamarginalie} \sirkapravemarginalie
+ \showsetupA{vzdalenostpravehookraje} \vzdalenostpravehookraje
+ \showsetupA{pravyokraj} \sirkapravehookraje
+ \showsetupB{zakladnivelikost} \the \globalbodyfontsize
+ \showsetupB{linka} \relax \normallineheight
+ \showsetupB{vyska} \relax \strutheightfactor
+ \showsetupB{hloubka} \relax \strutdepthfactor
+ \showsetupB{topskip} \relax \topskipfactor
+ \showsetupB{maxdepth} \relax \maxdepthfactor}}}
+
+\stopinterface
+
+\startinterface romanian
+
+\gdef\showsetups%
+ {\noindent
+ \vbox
+ {\forgetall
+ \dontcomplain
+ \switchtobodyfont[\v!small]
+ \tabskip\zeropoint
+ \halign
+ {\strut##\quad\hss&##\quad\hss&##\quad\hss&##\hss\cr
+ \showsetupA{paperheight} \paperheight
+ \showsetupA{paperwidth} \paperwidth
+ \showsetupA{printpaperheight} \printpaperheight
+ \showsetupA{printpaperwidth} \printpaperwidth
+ \showsetupA{topspace} \topspace
+ \showsetupA{backspace} \backspace
+ \showsetupA{height} \makeupheight
+ \showsetupA{width} \makeupwidth
+ \showsetupA{top} \topheight
+ \showsetupA{topdistance} \topdistance
+ \showsetupA{header} \headerheight
+ \showsetupA{headerdistance} \headerdistance
+ \showsetupA{textheight} \textheight
+ \showsetupA{footerdistance} \footerdistance
+ \showsetupA{footer} \footerheight
+ \showsetupA{bottomdistance} \bottomdistance
+ \showsetupA{bottom} \bottomheight
+ \showsetupA{leftedge} \leftedgewidth
+ \showsetupA{leftedgedistance} \leftedgedistance
+ \showsetupA{leftmargin} \leftmarginwidth
+ \showsetupA{leftmargindistance} \leftmargindistance
+ \showsetupA{textwidth} \textwidth
+ \showsetupA{rightmargindistance}\rightmargindistance
+ \showsetupA{rightmargin} \rightmarginwidth
+ \showsetupA{rightedgedistance} \rightedgedistance
+ \showsetupA{rightedge} \rightedgewidth
+ \showsetupB{bodyfontsize} \the \globalbodyfontsize
+ \showsetupB{line} \relax \normallineheight
+ \showsetupB{height} \relax \strutheightfactor
+ \showsetupB{depth} \relax \strutdepthfactor
+ \showsetupB{topskip} \relax \topskipfactor
+ \showsetupB{maxdepth} \relax \maxdepthfactor}}}
+
+\stopinterface
+
+\gdef\showlayout % interfereert lelijk met een \typefile er na
+ {\bgroup
+ \page
+ \showframe
+ \setuplayout[\c!marking=\v!on]
+ \dorecurse{4}{\showsetups\page}
+ \egroup}
+
+\gdef\showmargins
+ {\starttabulate
+ \NC asynchrone \NC \doifoddpageelse {odd} {even} \NC \NR
+ \NC synchrone \NC \doifrightpageelse {right} {left} \NC \NR
+ \NC right margin \NC \the\rightmarginwidth \NC \NR
+ \NC left margin \NC \the\leftmarginwidth \NC \NR
+ \NC outer margin \NC \the\outermarginwidth \NC \NR
+ \NC inner margin \NC \the\innermarginwidth \NC \NR
+ \stoptabulate}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/page-set.tex b/Master/texmf-dist/tex/context/base/page-set.mkii
index 6dc5598e085..b8a0751795c 100644
--- a/Master/texmf-dist/tex/context/base/page-set.tex
+++ b/Master/texmf-dist/tex/context/base/page-set.mkii
@@ -1,7 +1,7 @@
%D \module
%D [ file=page-set,
%D version=2000.10.20,
-%D title=\CONTEXT\ OTR Macros,
+%D title=\CONTEXT\ Page Macros,
%D subtitle=Column Sets,
%D author=Hans Hagen,
%D date=\currentdate,
@@ -15,7 +15,7 @@
% some day: cleanup and go etex
-\writestatus{loading}{Context OTR Macros / Column Sets}
+\writestatus{loading}{ConTeXt Page Macros / Column Sets}
% todo : last longer than previous
% todo : block span over last column if footnotes
@@ -203,8 +203,6 @@
\relax % needed ! ! ! ! else lookahead over \fi and \@EA
\@EA\egroup\@EA\scratchdimen\the\!!dimena\relax}
-\beginETEX \ifcsname
-
\def\columnerasegridboxes % maybe dedicated loops
{\bgroup
\increment\columnmaxcells\relax
@@ -219,13 +217,13 @@
\edef\!!stringb{\the\scratchcounter}%
\dostepwiserecurse \zerocount \columnmaxcells \plusone
{\ifcsname\@otr@:\!!stringa:\recurselevel\endcsname
- \global\setbox\csname\@otr@:\!!stringa:\recurselevel\endcsname\box
+ \global\setbox\csname\@otr@:\!!stringa:\recurselevel\endcsname
\ifcsname\@otr@:\!!stringb:\recurselevel\endcsname
- \csname\@otr@:\!!stringb:\recurselevel\endcsname
+ \box\csname\@otr@:\!!stringb:\recurselevel\endcsname
%\global\setbox\csname\@otr@:\!!stringa:\recurselevel\endcsname\box\csname\@otr@:\!!stringb:\recurselevel\endcsname
\else
- \voidb@x
- %\global\setbox\csname\@otr@:\!!stringa:\recurselevel\endcsname\box\voidb@x
+ \emptybox
+ %\global\setbox\csname\@otr@:\!!stringa:\recurselevel\endcsname\emptybox
\expandafter\newbox\csname\@otr@:\!!stringb:\recurselevel\endcsname
\fi
\else
@@ -241,7 +239,7 @@
{\let\!!stringa\recurselevel
\dostepwiserecurse \zerocount \columnmaxcells \plusone
{\ifcsname\@otr@:\!!stringa:\recurselevel\endcsname
- \global\setbox\csname\@otr@:\!!stringa:\recurselevel\endcsname\box\voidb@x
+ \global\setbox\csname\@otr@:\!!stringa:\recurselevel\endcsname\emptybox
\else
\expandafter\newbox\csname\@otr@:\!!stringa:\recurselevel\endcsname
\fi}}%
@@ -253,59 +251,6 @@
\global\columnfreecells\columnfirstcell
\egroup}
-\endETEX
-
-\beginTEX
-
-\def\columnerasegridboxes
- {\bgroup
- \increment\columnmaxcells\relax
- \ifodd\realpageno \else % we are on the other page
- \columnspreadfalse
- \fi
- \ifcolumnspread
- \dorecurse\nofcolumns
- {\let\!!stringa\recurselevel
- \scratchcounter\recurselevel \advance\scratchcounter\lofcolumns
- \edef\!!stringb{\the\scratchcounter}%
- \dostepwiserecurse \zerocount \columnmaxcells \plusone
- {\expandafter\ifx\csname\@otr@:\!!stringa:\recurselevel\endcsname\relax
- \expandafter\newbox\csname\@otr@:\!!stringa:\recurselevel\endcsname
- \expandafter\ifx\csname\@otr@:\!!stringb:\recurselevel\endcsname\relax
- \expandafter\newbox\csname\@otr@:\!!stringb:\recurselevel\endcsname
- \else
- \global\setbox\csname\@otr@:\!!stringa:\recurselevel\endcsname\box\csname\@otr@:\!!stringb:\recurselevel\endcsname
- \fi
- \else
- \global\setbox\csname\@otr@:\!!stringa:\recurselevel\endcsname\box
- \expandafter\ifx\csname\@otr@:\!!stringb:\recurselevel\endcsname\relax
- \voidb@x
- %\global\setbox\csname\@otr@:\!!stringa:\recurselevel\endcsname\box\voidb@x
- \expandafter\newbox\csname\@otr@:\!!stringb:\recurselevel\endcsname
- \else
- \csname\@otr@:\!!stringb:\recurselevel\endcsname
- %\global\setbox\csname\@otr@:\!!stringa:\recurselevel\endcsname\box\csname\@otr@:\!!stringb:\recurselevel\endcsname
- \fi
- \fi}}%
- \else
- \dorecurse\tofcolumns
- {\let\!!stringa\recurselevel
- \dostepwiserecurse \zerocount \columnmaxcells \plusone
- {\expandafter\ifx\csname\@otr@:\!!stringa:\recurselevel\endcsname\relax
- \expandafter\newbox\csname\@otr@:\!!stringa:\recurselevel\endcsname
- \else
- \global\setbox\csname\@otr@:\!!stringa:\recurselevel\endcsname\box\voidb@x
- \fi}}%
- \fi
- \dorecurse\tofcolumns
- {\global\setbox\csname\@otr@:\recurselevel:\columnmaxcells\endcsname\copy\placeholderboxa}%
- \global\columnfirstcell\zerocount
- \global\columnlastcell\columnfirstcell
- \global\columnfreecells\columnfirstcell
- \egroup}
-
-\endTEX
-
\def\doOTRSETsetgridcells#1#2#3#4#5#6% placeholder col row wid hei {data}
{\!!countd#2\advance\!!countd#4\advance\!!countd\minusone
\!!counte#3\advance\!!counte#5\advance\!!counte\minusone
@@ -321,7 +266,7 @@
{\doOTRSETsetgridcells{\copy\placeholderboxb}}
\def\OTRSETerasegridcells#1#2#3#4%
- {\doOTRSETsetgridcells{\box\voidb@x}{#1}{#2}{#3}{#4}{\box\voidb@x}}
+ {\doOTRSETsetgridcells{\emptybox}{#1}{#2}{#3}{#4}{\emptybox}}
\def\setupcolumnsetlines{\doquintupleempty\dosetupcolumnsettrick[l]}
\def\setupcolumnsetstart{\doquintupleempty\dosetupcolumnsettrick[s]}
@@ -340,63 +285,32 @@
\def\currentcolumnmaxcellstag #1{\??mc:l:\OTRSETidentifier:\columnsetpage:\number#1}
\def\currentcolumnstartcelltag#1{\??mc:s:\OTRSETidentifier:\columnsetpage:\number#1}
-\beginTEX
+\def\doresetcolumnsetlines#1%
+ {\ifcsname\currentcolumnmaxcellstag{#1}\endcsname
+ \letgvalue{\currentcolumnmaxcellstag{#1}}\zerocount
+ \fi
+ \ifcsname\currentcolumnmaxcellstag{#1}\endcsname
+ \letgvalue{\currentcolumnmaxcellstag{#1}}\zerocount
+ \fi}
- \def\doresetcolumnsetlines#1%
- {\ifundefined{\currentcolumnmaxcellstag{#1}}\else
- \letgvalue{\currentcolumnmaxcellstag{#1}}\zerocount
- \fi
- \ifundefined{\currentcolumnmaxcellstag{#1}}\else
- \letgvalue{\currentcolumnmaxcellstag{#1}}\zerocount
- \fi}
-
- \def\currentcolumnsomecells#1#2%
- {\expandafter\ifx\csname#1\mofcolumns\endcsname\relax
- \expandafter\ifx\csname#10\endcsname\relax
- #2%
- \else
- \ifnum\csname#10\endcsname=\zerocount
- #2\else\csname#10\endcsname
- \fi
- \fi
+\def\currentcolumnsomecells#1#2%
+ {\ifcsname#1\mofcolumns\endcsname
+ \ifnum\csname#1\mofcolumns\endcsname=\zerocount
+ #2%
\else
- \ifnum\csname#1\mofcolumns\endcsname=\zerocount
- #2\else\csname#1\mofcolumns\endcsname
- \fi
- \fi}
-
-\endTEX
-
-\beginETEX \numexpr
-
- \def\doresetcolumnsetlines#1%
- {\ifcsname\currentcolumnmaxcellstag{#1}\endcsname
- \letgvalue{\currentcolumnmaxcellstag{#1}}\zerocount
+ \number\numexpr\ifnum\csname#1\mofcolumns\endcsname<\zerocount
+ \columnmaxcells+\fi\csname#1\mofcolumns\endcsname\relax
\fi
- \ifcsname\currentcolumnmaxcellstag{#1}\endcsname
- \letgvalue{\currentcolumnmaxcellstag{#1}}\zerocount
- \fi}
-
- \def\currentcolumnsomecells#1#2%
- {\ifcsname#1\mofcolumns\endcsname
- \ifnum\csname#1\mofcolumns\endcsname=\zerocount
- #2%
- \else
- \number\numexpr(\ifnum\csname#1\mofcolumns\endcsname<\zerocount
- \columnmaxcells+\fi\csname#1\mofcolumns\endcsname)%
- \fi
- \else\ifcsname#10\endcsname
- \ifnum\csname#10\endcsname=\zerocount
- #2%
- \else
- \number\numexpr(\ifnum\csname#10\endcsname<\zerocount
- \columnmaxcells+\fi\csname#10\endcsname)%
- \fi
- \else
+ \else\ifcsname#10\endcsname
+ \ifnum\csname#10\endcsname=\zerocount
#2%
- \fi\fi}
-
-\endETEX
+ \else
+ \number\numexpr\ifnum\csname#10\endcsname<\zerocount
+ \columnmaxcells+\fi\csname#10\endcsname\relax
+ \fi
+ \else
+ #2%
+ \fi\fi}
\def\currentcolumnmaxcells {\currentcolumnsomecells\currentcolumnmaxcellstag \columnmaxcells}
\def\currentcolumnstartcell{\currentcolumnsomecells\currentcolumnstartcelltag\plusone}
@@ -2601,6 +2515,15 @@
\processcommacommand[#1]\docommand
\egroup}
+% \page[left]
+% \definecolumntextarea[intro][left][x=1,y=1,nx=4,ny=20,state=start,background=introlayer]
+% \setupcolumntextareatext[intro][left][\setups{intro}]
+% \flushcolumntextareas
+
+\def\flushcolumntextareas
+ {\initializecolumntextareas
+ \setvsize}
+
\def\columntextlastbackspace{\backspace}
% beware, we have clipping offsets of 2\lineheight by default
@@ -2875,6 +2798,206 @@
% \startcolumnsetspan[two] \input tufte \stopcolumnsetspan
% \stopcolumnset
+% We need to set the \dimen globally since we are in the
+% OTR. Unfortunately this interferes with local settings,
+% although we may assume that they will not cross page
+% boundaries.
+
+\def\OTRSETcheckcontent
+ {\bgroup
+ \donefalse
+ \def\OTRSETcheckcontent##1%
+ {\setbox\scratchbox##1\recurselevel
+ \setbox\scratchbox\vbox{\unvbox\scratchbox}%
+ \ifdim\ht\scratchbox>\zeropoint\donetrue\fi}%
+ \dorecurse{\nofcolumns}
+ {\OTRSETcheckcontent\columngettextbox
+ \OTRSETcheckcontent\columngetfootbox
+ \OTRSETcheckcontent\columngettopbox
+ \OTRSETcheckcontent\columngetbotbox}%
+ \ifdone\egroup\donefalse\else\egroup\donetrue\fi}
+
+\def\OTRSETgetcolumntextheight#1% max - boven - top
+ {\scratchdimen=\OTRSETgetparameter\c!maxhoogte#1%
+ \advance\scratchdimen -\OTRSETgetparameter\c!bovenoffset#1%
+ \advance\scratchdimen -\ht\columntopbox#1%
+ \advance\scratchdimen -\getvalue{\??mc\number\mofcolumns-f}%
+ \advance\scratchdimen -\ht\columnbotbox#1} % not used
+
+\def\OTRSETgetcolumnnaturalheight#1% max - boven - top
+ {\setbox\scratchbox\vbox{\unvcopy\columntextbox#1}%
+ \scratchdimen\ht\scratchbox
+ \advance\scratchdimen \OTRSETgetparameter\c!bovenoffset#1%
+ \advance\scratchdimen \ht\columntopbox#1%
+ \advance\scratchdimen -\getvalue{\??mc\number\mofcolumns-f}%
+ \advance\scratchdimen \ht\columnbotbox#1} % not used
+
+\def\OTRSETdobalance% splitten in met en zonder footnotes
+ {\bgroup
+ \maxdeadcycles=1000
+ % collect content and notes
+ \bgroup
+ \OTRSEToutput
+ {\global\setbox1\vbox{\unvbox\normalpagebox}%
+ \global\setbox3\vbox{\unvbox\footins}}%
+ \verticalstrut\vskip-\struttotal % makes footnotes flush
+ \eject
+ \global\collectingcontentfalse
+ % check for footnotes only
+ \ifdim\ht1<\topskip % real dirty
+ \global\setbox1=\vbox{}
+ % fix height of first line
+ \ifdim\ht3>\!!zeropoint
+ \global\setbox3\vbox
+ {\setfootnotebodyfont
+ \kern-\strutht
+ \kern\topskip
+ \unvbox3}
+ \fi
+ % prepare trial box
+ \global\setbox5\vbox
+ {\ifdim\ht1>\zeropoint
+ \unvcopy1 \ifdim\ht3>\zeropoint \kern\skip\footins \fi
+ \fi
+ \ifdim\ht3>\zeropoint \unvcopy3 \fi}
+ \egroup
+ % erase old stuff
+ \columnerasetextboxes
+ \columnerasefootboxes
+ % prepare floats
+ \OTRSETdotopinsertions
+ \OTRSETdobotinsertions % not used can be removed
+ % calculate available space
+ \!!heighta\zeropoint % available total height
+ \dorecurse{\nofcolumns}
+ {\OTRSETgetcolumntextheight\recurselevel
+ \OTRSETcalculatelines\scratchdimen
+ \advance\!!heighta \scratchdimen}
+ % quick check
+ \ifdim\ht5>\!!heighta
+ % use normal routine
+ \columnerasetextboxes
+ \columnerasefootboxes
+ % TEMP, TODO, FORCE NEXT PASS !
+ \unvbox1
+ \unvbox3
+ \doglobal\addtocommalist{-\realfolio}\OTRSETbalancinglist
+ \donefalse
+ %\writestatus\m!columns{no balancing, text overflows height}%
+ \else\ifdim\ht5>\zeropoint \relax
+ % some text and/or notes
+ \donetrue
+ \else
+ \donefalse
+ \dorecurse\nofcolumns
+ {\ifdim\ht\columntopbox\recurselevel>\zeropoint \donetrue \fi}%
+ \ifdone
+ % no text and notes, but figures
+ \else
+ % no text, no notes, no figures
+ \doglobal\addtocommalist{-\realfolio}\OTRSETbalancinglist
+ \writestatus\m!columns{no balancing, nothing to be placed}%
+ \fi
+ \fi\fi
+ \ifdone
+ \ifdim\ht5>\zeropoint \relax
+ % balancing text and notes
+ %\writestatus\m!columns{text may fit, balancing}%
+ \newcounter\loopcounter
+ \newcounter\balancinglines
+ \doloop
+ {\increment\loopcounter\relax
+ % initialize
+ \columnerasetextboxes
+ \columnerasefootboxes
+ \setbox0=\copy5
+ \splittopskip\topskip
+ % pre-split loop and quality calculation
+ %\writestatus\m!columns{pass \loopcounter: correction -\balancinglines}
+ \dorecurse\nofcolumns
+ {\OTRSETgetcolumntextheight\recurselevel
+ \OTRSETcalculatelines\scratchdimen
+ \!!heightc\scratchdimen
+ \ifnum\recurselevel<\nofcolumns
+ \advance\!!heightc -\balancinglines\lineheight
+ \fi
+ \columnsettextbox\recurselevel\vsplit0 to \!!heightc}
+ % just one method
+ \OTRSETgetcolumnnaturalheight1 \dimen4\scratchdimen
+ \OTRSETgetcolumnnaturalheight\nofcolumns \dimen6\scratchdimen
+ %\writestatus\m!columns{first column: \the\dimen4}%
+ %\writestatus\m!columns{last column: \the\dimen6}%
+ \ifdim\dimen4=\dimen6
+ \donetrue % perfect balance
+ \else\ifdim\dimen4>\dimen6
+ \donefalse % not yet good enough
+ \increment\balancinglines % try again
+ \edef\balancingcount{\the\!!counta}
+ \else
+ \donetrue % worse balance
+ \ifnum\balancinglines>0 % take previous
+ \decrement\balancinglines
+ \fi
+ \fi\fi
+ % extra check
+ % \ifdim\ht0>\zeropoint\relax \donefalse \fi
+ % another check
+ \ifdone
+ %\writestatus\m!columns{balancing finished in pass \loopcounter}%
+ \else \ifnum\loopcounter>100 \donetrue
+ %\writestatus\m!columns{balancing aborted after pass \loopcounter}%
+ \else
+ %\writestatus\m!columns{balancing continued after pass \loopcounter}%
+ \fi \fi
+ % final balancing pass
+ \ifdone
+ \setbox0\copy1
+ \setbox2\copy3
+ \columnerasetextboxes
+ \columnerasefootboxes
+ \dorecurse\nofcolumns
+ {\OTRSETgetcolumntextheight\recurselevel
+ \OTRSETcalculatelines\scratchdimen
+ \!!heightc\scratchdimen
+ \ifnum\recurselevel<\nofcolumns
+ \advance\!!heightc -\balancinglines\lineheight
+ \fi
+ % split off text
+ \ifdim\ht0>\zeropoint
+ \columnsettextbox\recurselevel\vsplit0 to \!!heightc
+ \setbox4\vbox{\unvcopy\columntextbox\recurselevel}
+ \advance\!!heightc -\ht4
+ \ifdim\ht0>\zeropoint
+ \columnsettextbox\recurselevel\box4
+ \advance\!!heightc \skip\footins
+ \fi
+ \fi
+ % split off footnotes
+ \ifdim\ht0>\zeropoint\relax \else
+ \ifdim\ht2>\zeropoint\relax
+ \setbox4\vsplit2 to \!!heightc
+ \setbox\footins=\vbox{\unvbox4} % ugly and dirty trick
+ \ifdim\ht\columntextbox\recurselevel=\zeropoint\relax
+ \columnsettextbox\recurselevel\hbox
+ {\raise\strutdp\hbox % ugly but needed
+ {\setfootnotebodyfont % both these moves
+ \lower\strutdp\hbox{\placebottomnotes}}}
+ \else
+ \columnsetfootbox\recurselevel\hbox{\placebottomnotes}
+ \fi
+ \fi
+ \fi}
+ \exitloop
+ \fi}
+ \else
+ % no reason to balance floats
+ \fi
+ \fi
+ \doglobal\addtocommalist{\realfolio}\OTRSETbalancinglist
+ \OTRSETdoflush
+ \fi
+ \egroup}
+
\protect \endinput
% extreme examples (1)
@@ -2899,3 +3022,88 @@
% \startcolumnset[first,next]
% \chapter{thuan} \dorecurse{25}{\input thuan \endgraf\placefigure{}{}}
% \stopcolumnset
+
+\unprotect
+
+% only in columnsets
+
+% \def\cornerfigure
+% {\dotripleempty\docornerfigure}
+%
+% \def\docornerfigure[#1][#2][#3]% [layer] [location] [settings]
+% {\bgroup
+% \dowithnextbox
+% {\!!doneafalse
+% \!!donebfalse
+% \processallactionsinset
+% [\v!left,\v!bottom,#2]
+% [ \v!left=>\!!doneatrue ,
+% \v!right=>\!!doneafalse,
+% \v!top=>\!!donebtrue ,
+% \v!bottom=>\!!donebfalse]%
+% \!!widtha\nextboxwd
+% \if!!donea
+% % unchecked
+% \advance\!!widtha-\backspace
+% \else
+% % unchecked
+% \advance\!!widtha-\backspace
+% \fi
+% \!!widtha\textwidth % could be an option
+% \!!heighta\nextboxht
+% % zou een macro moeten zijn \getnoflayoutlines
+% \ifnum\layoutparameter\c!lines=\zerocount
+% \getnoflines\textheight
+% \else
+% \noflines\layoutparameter\c!lines
+% \fi
+% %
+% \advance\noflines \plusone % wordt default, instelbaar
+% \!!heightb\noflines\lineheight\relax
+% \if!!doneb % boven
+% % unchecked
+% \advance\!!heighta-\topspace
+% \advance\!!heighta-\headerheight
+% \advance\!!heighta-\headerdistance
+% \else % onder
+% % checked
+% \advance\!!heighta-\paperheight
+% \advance\!!heighta+\!!heightb
+% \advance\!!heighta+\topspace
+% \advance\!!heighta+\headerheight
+% \advance\!!heighta+\headerdistance
+% \advance\!!heighta-\footerdistance
+% \advance\!!heighta-\footerheight
+% \fi
+% \getnoflines\!!heighta
+% \!!heighta\noflines\lineheight\relax
+% \def\docornerfigure[####1]%
+% {\expanded{\plaatsfiguur[####1,\v!none]{}
+% {\noexpand\phantombox[\c!width=\the\!!widtha,\c!height=\the\!!heighta]}}}%
+% \if!!donea
+% \if!!doneb % links boven / rb
+% \setlayer[#1]
+% [\c!corner={\v!left,\v!top},\c!location=rb,#3]
+% {\flushnextbox}%
+% \docornerfigure[tblr]%
+% \else % links onder / rt
+% \setlayer[#1]
+% [\c!corner={\v!left,\v!bottom},\c!location=rt,#3]
+% {\flushnextbox}%
+% \docornerfigure[btlr]%
+% \fi
+% \else
+% \if!!doneb % rechts boven / lt
+% \setlayer[#1]
+% [\c!corner={\v!right,\v!top},\c!location=lb,#3]
+% {\flushnextbox}%
+% \docornerfigure[tbrl]%
+% \else % rechts onder / lb
+% \setlayer[#1]
+% [\c!corner={\v!right,\v!bottom},\c!location=lt,#3]
+% {\flushnextbox}%
+% \docornerfigure[btrl]%
+% \fi
+% \fi
+% \egroup}
+% \vbox}
diff --git a/Master/texmf-dist/tex/context/base/page-set.mkiv b/Master/texmf-dist/tex/context/base/page-set.mkiv
new file mode 100644
index 00000000000..8dc8a2fd9f0
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/page-set.mkiv
@@ -0,0 +1,3108 @@
+%D \module
+%D [ file=page-set,
+%D version=2000.10.20,
+%D title=\CONTEXT\ Page Macros,
+%D subtitle=Column Sets,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+% getnoflines vs getrawnoflines
+
+% some day: cleanup and go etex
+
+\writestatus{loading}{ConTeXt Page Macros / Column Sets}
+
+% todo : last longer than previous
+% todo : block span over last column if footnotes
+% todo : diagnosis balancing run
+% todo : separate footnote placement
+% todo : go on on same page with colset
+% todo : test page areas per page
+% todo : leftmargin/rightmargin (better than afstand(1))
+
+% use the OTRSET layer for more purposes, like the footnotes !
+
+\unprotect
+
+\newcount\tofcolumns % total
+\newcount\lofcolumns % left
+\newcount\rofcolumns % right
+
+\newcount\columnfirstcell \columnfirstcell=1
+\newcount\columnlastcell
+\newcount\columnfreecells
+\newcount\currenthcell
+\newcount\currentvcell
+\newcount\columnhcells
+\newcount\columnvcells
+
+\newif\ifenoughcolumncells
+\newif\ifsomefreecolumncells
+\newif\ifcolumnspread
+\newif\iftracecolumnset % \tracecolumnsettrue
+
+\def\columnmaxcells {75} % runtime
+\def\columnmaxfreecells {0} % runtime
+\def\columngaplimit {0} % {5}
+
+\def\@otr@{otr}
+
+\def\OTRSETmakeupwidth{\innermakeupwidth}
+
+\let\OTRSETflushsidefloats \forgetsidefloats % \relax
+\let\OTRSETsynchronizesidefloats\forgetsidefloats % \relax
+
+\def\OTRSETgridcell #1#2{\csname \@otr@:\number#1:\number#2\endcsname}
+\def\OTRSETgetgridcell#1#2{\box\csname \@otr@:\number#1:\number#2\endcsname}
+\def\OTRSETsetgridcell#1#2{\global\setbox\csname\@otr@:\number#1:\number#2\endcsname}
+
+\long\def\OTRSETdoifcellelse#1#2%
+ {\relax\ifvoid\csname\@otr@:\number#1:\number#2\endcsname
+ \@EA\secondoftwoarguments\else\@EA\firstoftwoarguments
+ \fi}
+
+% The following two macros are used to compensate for a switch in body fonts
+% as in:
+%
+% \definecolumnset [two] [n=2,balancing=yes]
+% \definecolumnset [three] [n=3,balancing=yes]
+%
+% \setupcolumnsetlines[two][1][1][7]
+% \setupcolumnsetlines[two][1][2][10]
+%
+% \setupcolumnsetlines[three][1][1][40]
+% \setupcolumnsetlines[three][1][2][40]
+% \setupcolumnsetlines[three][1][3][40]
+%
+% \setupcolumnsetstart[three][1][1][15]
+% \setupcolumnsetstart[three][1][2][20]
+% \setupcolumnsetstart[three][1][3][20]
+%
+% \starttext
+% \startcolumnset [two] \dorecurse {1}{\input tufte \par} \stopcolumnset
+% \switchtobodyfont[small]
+% \startcolumnset [three] \dorecurse {1}{\input tufte \par} \stopcolumnset
+% \stoptext
+
+%D Marks in columnsets:
+%D
+%D \starttyping
+%D \definemarking[M]
+%D \setupheadertexts[\setups{show-M-marks}]
+%D \definecolumnset[test][n=3]
+%D
+%D \startsetups show-M-marks
+%D \getmarking[M][1][previous]/\getmarking[M][1][first]/\getmarking[M][1][last]\quad
+%D \getmarking[M][2][previous]/\getmarking[M][2][first]/\getmarking[M][2][last]\quad
+%D \getmarking[M][3][previous]/\getmarking[M][3][first]/\getmarking[M][3][last]\quad
+%D \getmarking[M][1][previous]/\getmarking[M][1][first]/\getmarking[M][last]\quad
+%D \getsavedmarking[M][previous]/\getsavedmarking[M][first]/\getsavedmarking[M][last]
+%D \stopsetups
+%D
+%D \startbuffer
+%D \section{Knuth} [K1]\marking[M]{k1} [K2]\marking[M]{k2} \input knuth
+%D \section{Zapf} [Z]\marking[M]{z} \input zapf
+%D \stopbuffer
+%D
+%D \startbuffer
+%D \section{Ward} [W]\marking[M]{w} \input ward
+%D \placefigure[here]{none}{\externalfigure[a][height=2cm]}
+%D \section{Davis} [D]\marking[M]{d} \input davis
+%D \section{Zapf} [Z]\marking[M]{z} \input zapf
+%D \stopbuffer
+%D
+%D \startbuffer
+%D \section{Ward} [W]\marking[M]{w} \input ward
+%D \placefigure[here]{none}{\externalfigure[a][height=2cm]}
+%D \section{Davis} [D]\marking[M]{d} \input davis
+%D \section{Zapf} [Z]\marking[M]{z} \input zapf
+%D \section{Douglas} [O]\marking[M]{o} \input douglas
+%D \stopbuffer
+%D
+%D \starttext
+%D \startcolumnset[test]
+%D \dorecurse{5}{\getbuffer}
+%D \placefigure[here]{none}{\externalfigure[a][height=2cm]}
+%D % \column % sometimes needed
+%D \stopcolumnset
+%D \stoptext
+%D \stoptyping
+
+% not ok yet, for column sets we need a special case: within a column we
+% need to bubble-up the marks; the indirectness permits overloading here
+
+\let\saveOTRSETmark \refreshsavedmark
+\let\bubbleOTRSETmark\bubblesavedmark
+\let\resetOTRSETmark \resetsavedmark
+\let\presetOTRSETmark\presetsavedmark
+
+\def\doregisterOTRSETmarks#1{\saveOTRSETmark [#1][\number\mofcolumns]}
+\def\dobubbleOTRSETmarks #1{\bubbleOTRSETmark[#1][\number\mofcolumns]}
+\def\doresetOTRSETmarks #1{\resetOTRSETmark [#1][\recurselevel]}
+\def\dopresetOTRSETmarks #1{\presetOTRSETmark[#1][\recurselevel]}
+
+\def\registerOTRSETmarks
+ {\processcommacommand[\alldefinedmarks]\doregisterOTRSETmarks}
+\def\bubbleOTRSETmarks
+ {\processcommacommand[\alldefinedmarks]\dobubbleOTRSETmarks}
+\def\resetOTRSETmarks
+ {\dorecurse\nofcolumns{\processcommacommand[\alldefinedmarks]\doresetOTRSETmarks}}
+\def\presetOTRSETmarks
+ {\dorecurse\nofcolumns{\processcommacommand[\alldefinedmarks]\dopresetOTRSETmarks}}
+
+%D test case of Vit Zika (context list):
+%D
+%D \starttyping
+%D \setuplayout[height=middle,width=middle,grid=yes]
+%D
+%D \starttext
+%D \startcolumnset
+%D \dorecurse{10}
+%D {\input thuan \endgraf
+%D \bgroup
+%D \ss\restoreinterlinespace
+%D \dorecurse{3}{\input hawking \endgraf}
+%D \egroup
+%D \input bryson \endgraf}
+%D \stopcolumnset
+%D \stoptext
+%D \stoptyping
+
+\def\OTRSETsetcorrectnofcells#1%
+ {\bgroup
+ \!!counta#1\relax
+ \ifdim\globalbodyfontsize=\localbodyfontsize
+ \restoreinterlinespace
+ \else
+ \!!dimena-\!!counta\lineheight
+ \restoreglobalbodyfont % slow, we need a fast one
+ \advance\!!dimena\!!counta\lineheight
+ \getnoflines\!!dimena
+ \advance\!!counta\noflines
+ \ifnum\!!counta<#1\else
+ \!!counta#1\relax
+ \fi
+ \fi
+ \relax % needed ! ! ! ! else lookahead over \fi and \@EA
+ \@EA\egroup\@EA\scratchcounter\the\!!counta\relax}
+
+\def\OTRSETsetcorrectcellht
+ {\bgroup
+ \!!dimena-\strutht\relax
+ \ifdim\globalbodyfontsize=\localbodyfontsize
+ \restoreinterlinespace
+ \else
+ \restoreglobalbodyfont
+ \fi
+ \advance\!!dimena\strutht
+ \relax % needed ! ! ! ! else lookahead over \fi and \@EA
+ \@EA\egroup\@EA\scratchdimen\the\!!dimena\relax}
+
+\def\columnerasegridboxes % maybe dedicated loops
+ {\bgroup
+ \increment\columnmaxcells\relax
+ \ifodd\realpageno
+ \else % we are on the other page
+ \columnspreadfalse
+ \fi
+ \ifcolumnspread
+ \dorecurse\nofcolumns
+ {\let\!!stringa\recurselevel
+ \scratchcounter\recurselevel \advance\scratchcounter\lofcolumns
+ \edef\!!stringb{\the\scratchcounter}%
+ \dostepwiserecurse \zerocount \columnmaxcells \plusone
+ {\ifcsname\@otr@:\!!stringa:\recurselevel\endcsname
+ \global\setbox\csname\@otr@:\!!stringa:\recurselevel\endcsname
+ \ifcsname\@otr@:\!!stringb:\recurselevel\endcsname
+ \box\csname\@otr@:\!!stringb:\recurselevel\endcsname
+ %\global\setbox\csname\@otr@:\!!stringa:\recurselevel\endcsname\box\csname\@otr@:\!!stringb:\recurselevel\endcsname
+ \else
+ \emptybox
+ %\global\setbox\csname\@otr@:\!!stringa:\recurselevel\endcsname\emptybox
+ \expandafter\newbox\csname\@otr@:\!!stringb:\recurselevel\endcsname
+ \fi
+ \else
+ \expandafter\newbox\csname\@otr@:\!!stringa:\recurselevel\endcsname
+ \ifcsname\@otr@:\!!stringb:\recurselevel\endcsname
+ \global\setbox\csname\@otr@:\!!stringa:\recurselevel\endcsname\box\csname\@otr@:\!!stringb:\recurselevel\endcsname
+ \else
+ \expandafter\newbox\csname\@otr@:\!!stringb:\recurselevel\endcsname
+ \fi
+ \fi}}%
+ \else
+ \dorecurse \tofcolumns
+ {\let\!!stringa\recurselevel
+ \dostepwiserecurse \zerocount \columnmaxcells \plusone
+ {\ifcsname\@otr@:\!!stringa:\recurselevel\endcsname
+ \global\setbox\csname\@otr@:\!!stringa:\recurselevel\endcsname\emptybox
+ \else
+ \expandafter\newbox\csname\@otr@:\!!stringa:\recurselevel\endcsname
+ \fi}}%
+ \fi
+ \dorecurse\tofcolumns
+ {\global\setbox\csname\@otr@:\recurselevel:\columnmaxcells\endcsname\copy\placeholderboxa}%
+ \global\columnfirstcell\zerocount
+ \global\columnlastcell\columnfirstcell
+ \global\columnfreecells\columnfirstcell
+ \egroup}
+
+\def\doOTRSETsetgridcells#1#2#3#4#5#6% placeholder col row wid hei {data}
+ {\!!countd#2\advance\!!countd#4\advance\!!countd\minusone
+ \!!counte#3\advance\!!counte#5\advance\!!counte\minusone
+ \dostepwiserecurse{#2}\!!countd\plusone
+ {\!!countf\recurselevel
+ \dostepwiserecurse{#3}\!!counte\plusone
+ {\OTRSETsetgridcell\!!countf\recurselevel#1}}%
+ \dostepwiserecurse{#3}\!!counte\plusone
+ {\global\wd\OTRSETgridcell{#2}\recurselevel\hsize}%
+ \OTRSETsetgridcell{#2}\!!counte#6}
+
+\def\OTRSETsetgridcells
+ {\doOTRSETsetgridcells{\copy\placeholderboxb}}
+
+\def\OTRSETerasegridcells#1#2#3#4%
+ {\doOTRSETsetgridcells{\emptybox}{#1}{#2}{#3}{#4}{\emptybox}}
+
+\def\setupcolumnsetlines{\doquintupleempty\dosetupcolumnsettrick[l]}
+\def\setupcolumnsetstart{\doquintupleempty\dosetupcolumnsettrick[s]}
+
+\def\dosetupcolumnsettrick[#1][#2][#3][#4][#5]% tag id page col value
+ {% not needed, is already relative
+ % \doifinstringelse{+}{#3}{\scratchcounter\realpageno}{\scratchcounter\zerocount}%
+ % \advance\scratchcounter#3\relax % \relax needed
+ % \setevalue{\??mc:#1:#2:\the\scratchcounter:\number#4}{\number#5}}
+ \iffifthargument
+ \setevalue{\??mc:#1:#2:\number#3:\number#4}{\number#5}%
+ \else
+ \setevalue{\??mc:#1:#2:\number#3:0}{\number#4}%
+ \fi}
+
+\def\currentcolumnmaxcellstag #1{\??mc:l:\OTRSETidentifier:\columnsetpage:\number#1}
+\def\currentcolumnstartcelltag#1{\??mc:s:\OTRSETidentifier:\columnsetpage:\number#1}
+
+\def\doresetcolumnsetlines#1%
+ {\ifcsname\currentcolumnmaxcellstag{#1}\endcsname
+ \letgvalue{\currentcolumnmaxcellstag{#1}}\zerocount
+ \fi
+ \ifcsname\currentcolumnmaxcellstag{#1}\endcsname
+ \letgvalue{\currentcolumnmaxcellstag{#1}}\zerocount
+ \fi}
+
+\def\currentcolumnsomecells#1#2%
+ {\ifcsname#1\mofcolumns\endcsname
+ \ifnum\csname#1\mofcolumns\endcsname=\zerocount
+ #2%
+ \else
+ \number\numexpr\ifnum\csname#1\mofcolumns\endcsname<\zerocount
+ \columnmaxcells+\fi\csname#1\mofcolumns\endcsname\relax
+ \fi
+ \else\ifcsname#10\endcsname
+ \ifnum\csname#10\endcsname=\zerocount
+ #2%
+ \else
+ \number\numexpr\ifnum\csname#10\endcsname<\zerocount
+ \columnmaxcells+\fi\csname#10\endcsname\relax
+ \fi
+ \else
+ #2%
+ \fi\fi}
+
+\def\currentcolumnmaxcells {\currentcolumnsomecells\currentcolumnmaxcellstag \columnmaxcells}
+\def\currentcolumnstartcell{\currentcolumnsomecells\currentcolumnstartcelltag\plusone}
+
+\def\OTRSETsetfreecells#1#2% col start
+ {\bgroup
+ \global\columnfirstcell\ifnum#2=0 1\else#2\fi\relax
+ \OTRSETsetcorrectnofcells\currentcolumnmaxcells % sets \scratchcounter
+ \edef\columnmaxcells{\the\scratchcounter}%
+ \ifnum\columnfirstcell>\columnmaxcells
+ \global\columnfreecells\zerocount
+ \global\columnfirstcell\plusone
+ \global\columnlastcell \zerocount
+ \global\somefreecolumncellsfalse
+ %\message{no cells a}%
+ \else
+ \doloop
+ {\ifnum\columnfirstcell>\columnmaxcells\relax
+ \exitloop
+ \else
+ \OTRSETdoifcellelse{#1}\columnfirstcell
+ {\global\advance\columnfirstcell\plusone}\exitloop
+ \fi}%
+ \global\columnlastcell\columnfirstcell
+ \doloop
+ {\ifnum\columnlastcell>\columnmaxcells\relax
+ \exitloop
+ \else
+ \OTRSETdoifcellelse{#1}\columnlastcell
+ {\global\advance\columnlastcell \minusone \exitloop}
+ {\global\advance\columnlastcell \plusone }%
+ \fi}%
+ \ifnum\columnfirstcell>\columnmaxcells
+ \global\columnfreecells\zerocount
+ \global\columnfirstcell\plusone
+ \global\columnlastcell \zerocount
+ \global\somefreecolumncellsfalse
+ %\message{no cells b}%
+ \else
+ \ifnum\columnlastcell>\columnmaxcells
+ \global\columnlastcell\columnmaxcells
+ \fi
+ \global\columnfreecells\columnlastcell
+ \global\advance\columnfreecells -\columnfirstcell
+ \global\advance\columnfreecells \plusone
+ \global\somefreecolumncellstrue
+ %\message{\number\columnfirstcell-\number\columnlastcell=\number\columnfreecells}%
+ \fi
+ \fi
+ \egroup}
+
+\def\OTRSETgetmaxfreecells#1#2% col start
+ {\let\columnmaxfreecells\!!zerocount
+ \let\columnfrmfreecells\!!zerocount
+ \pushmacro \columnmaxcells
+\OTRSETsetcorrectnofcells\currentcolumnmaxcells % sets \scratchcounter
+\edef\columnmaxcells{\the\scratchcounter}%
+ \scratchcounter\zerocount
+ \dostepwiserecurse{#2}\columnmaxcells\plusone
+ {\OTRSETdoifcellelse{#1}\recurselevel
+ {\ifnum\columnmaxfreecells<\scratchcounter
+ \edef\columnmaxfreecells{\the\scratchcounter}%
+ \let\columnfrmfreecells\recurselevel
+ \fi
+ \scratchcounter\zerocount}
+ {\advance\scratchcounter\plusone}}%
+ \popmacro\columnmaxcells}
+
+\long\def\OTRSETrecurseRL#1%
+ {\dostepwiserecurse\nofcolumns\plusone\minusone
+ {#1\hskip\OTRSETgetparameter\c!distance\recurselevel}}
+
+\def\OTRSETmakegridbox
+ {\ifcase\columndirection
+ \OTRSETdomakegridbox\plusone\nofcolumns\plusone
+ \else
+ \OTRSETdomakegridbox\nofcolumns\plusone\minusone
+ \fi}
+
+\def\OTRSETmakeupwidth{\makeupwidth} % temporary indirectness
+
+\def\OTRSETdomakegridbox#1#2#3%
+ {\hbox\bgroup
+ \dontcomplain
+ \forgetall % can go once in \flush
+ \!!heighta \textheight
+ % test first !
+ \hbox to \OTRSETmakeupwidth
+ {\dostepwiserecurse{#1}{#2}{#3}
+ {\mofcolumns\recurselevel
+ \localcolumnwidth\OTRSETlocalwidth\mofcolumns
+ \setbox\scratchbox\hbox\localframed
+ [\??mc\OTRSETidentifier\number\mofcolumns]%
+ [\c!width=\localcolumnwidth,\c!height=\!!heighta,\c!lines=]%
+ {}%
+ \wd\scratchbox\localcolumnwidth
+ \ht\scratchbox\!!heighta
+ \ifcase\columndirection
+ \hskip\OTRSETgetparameter\c!distance\recurselevel
+ \box\scratchbox
+ \else
+ \box\scratchbox
+ \hskip\OTRSETgetparameter\c!distance\recurselevel
+ \fi}}%
+ \hskip-\OTRSETmakeupwidth
+ % main text
+ \hbox to \OTRSETmakeupwidth
+ {\dostepwiserecurse{#1}{#2}{#3}
+ {\mofcolumns\recurselevel
+ \localcolumnwidth\OTRSETlocalwidth\mofcolumns
+ \offinterlineskip
+ \setbox\scratchbox\vbox to \!!heighta
+ {\topskipcorrection % not needed
+ \ifcase\OTRSETbalancemethod
+ % no
+ \or
+ % yes
+ \doifelselayerdata{OTRTEXT}\vfill\relax % temp hack
+ \or
+ % top
+ \or
+ % bottom
+ \vfill
+ \fi
+ \dorecurse\columnmaxcells
+ {\setbox\scratchbox\hbox{\OTRSETgetgridcell\mofcolumns\recurselevel}%
+ \ht\scratchbox\strutht
+ \dp\scratchbox\strutdp
+ \ifcase\columndirection
+ \box\scratchbox
+ \else
+ \hbox to \localcolumnwidth
+ {\hskip\localcolumnwidth\llap{\box\scratchbox}}%
+ \fi
+ \par}%
+ \ifcase\OTRSETbalancemethod
+ % no
+ \else
+ % yes, top, bottom
+ \ifdim\globalbodyfontsize=\localbodyfontsize
+ \removedepth
+ \restoreglobalbodyfont
+ \vskip\strutdepth
+ \fi
+ \kern\zeropoint
+ \vss
+ \fi}%
+ \wd\scratchbox\localcolumnwidth % \textwidth
+ \ifcase\columndirection
+ \hskip\OTRSETgetparameter\c!distance\recurselevel\box\scratchbox
+ \else
+ \box\scratchbox\hskip\OTRSETgetparameter\c!distance\recurselevel
+ \fi}}%
+ \egroup}
+
+\let\OTRSETbalht\zeropoint
+
+\def\OTRSETreducegridbox % for the moment no difference between methods
+ {\globallet\OTRSETbalht\zeropoint
+ \ifcase\OTRSETbalancemethod
+ % no balancing
+ \else
+ \bgroup
+ \!!counta\columnmaxcells
+ \donetrue
+ \doloop
+ {\dorecurse\nofcolumns{\OTRSETdoifcellelse\recurselevel\!!counta\donefalse\donothing}%
+ \ifdone
+ \ifnum\!!counta>\plusone\advance\!!counta\minusone\else\exitloop\fi
+ \else
+ \exitloop
+ \fi}%
+ \ifnum\!!counta>\plusone
+ \!!heighta\lineheight
+ \multiply\!!heighta \!!counta
+ \advance\!!heighta \topskip
+ \advance\!!heighta -\lineheight
+ \else
+ \!!heighta\zeropoint
+ \fi
+ \xdef\OTRSETbalht{\the\!!heighta}%
+ \egroup
+ \fi}
+
+\def\OTRSETflushfinalfootnotes
+ {\ifcase\lastcolumnlastcell \else
+ \setbox\scratchbox\hbox
+ {\placebottomnotes}%
+ \ifdim\ht\scratchbox>\zeropoint
+ \setbox\scratchbox\hbox
+ {\hbox to \zeropoint{\OTRSETgetgridcell\nofcolumns\lastcolumnlastcell}%
+ \box\scratchbox}%
+ \ht\scratchbox\strutht
+ \dp\scratchbox\strutdp
+ \OTRSETsetgridcell\nofcolumns\lastcolumnlastcell\box\scratchbox
+ \fi
+ \global\lastcolumnlastcell\zerocount
+ \fi}
+
+\def\OTRSETdoflush
+ {\ifcollectingcontent
+ \registerOTRSETmarks
+ \global\mofcolumns\plusone
+ \else
+ \OTRSETdofinalflush
+ \OTRSETdofinaloutput
+ \ifnum\columnsetpage>0
+ \dorecurse\nofcolumns{\doresetcolumnsetlines\recurselevel}%
+ \fi
+ \doglobal\increment\columnsetpage
+ \OTRSETinitializecolumns
+ %\OTRSETdoflushfloats
+ \OTRSETstartnextpage
+\presetOTRSETmarks
+ \initializecolumntextareas
+ \fi}
+
+\newbox\OTRfinalpagebox
+
+\def\OTRSETdofinalflush % see \OTRSETdoflush
+ {\OTRSETflushfinalfootnotes
+ \placecolumntextareas
+ \OTRSETcentergridcells
+ \bgroup % we want to keep the reduction local
+ \OTRSETreducegridbox
+ \global\setbox\OTRfinalpagebox\OTRSETmakegridbox
+ \egroup % otherwise we get the wrong number of free cells
+ %\gdef\localcolumnmaxcells{0}% here ?
+ \global\mofcolumns\nofcolumns} % otherwise problems in finaloutput
+
+% \def\OTRSETdofinaloutput
+% {\ifdim\ht\OTRfinalpagebox=\teksthoogte
+% % \bgroup \let\OTRSETsetvsize\relax % prevents useless search for gap
+% \ifcase\OTRSETbalancemethod
+% \finaloutput\box\OTRfinalpagebox
+% \else\ifdim\OTRSETbalht>\zeropoint
+% \global\setbox\OTRfinalpagebox \iftracecolumnset\ruledvbox\else\vbox\fi to \OTRSETbalht
+% {\box\OTRfinalpagebox}%
+% \global\dp\OTRfinalpagebox\strutdepth
+% \box\OTRfinalpagebox
+% \else
+% \finaloutput\box\OTRfinalpagebox
+% \fi \fi
+% \globallet\OTRSETbalht\zeropoint
+% % \egroup
+% \fi}
+
+\def\OTRSETdofinaloutput
+ {\ifdim\ht\OTRfinalpagebox=\textheight
+ \bgroup % \let\OTRSETsetvsize\relax % prevents useless search for gap
+ \ifcase\OTRSETbalancemethod
+ \finaloutput\box\OTRfinalpagebox
+ \else\ifdim\OTRSETbalht>\zeropoint
+ % catch a bordercase
+ \scratchdimen\OTRSETbalht
+ \advance\scratchdimen\lineheight\relax
+ \ifdim\scratchdimen>\textheight
+ % full page
+ \finaloutput\box\OTRfinalpagebox
+ \else
+ % same page
+ \global\setbox\OTRfinalpagebox \iftracecolumnset\ruledvbox\else\vbox\fi to \OTRSETbalht
+ {\box\OTRfinalpagebox\vss}%
+ \setlayer[OTRTEXT]{\box\OTRfinalpagebox}%
+ \snaptogrid\vbox{\vskip\OTRSETbalht}% hack
+ \fi
+ \else
+ \finaloutput\box\OTRfinalpagebox
+ \fi \fi
+ \globallet\OTRSETbalht\zeropoint
+ \egroup
+ \fi}
+
+\definesystemvariable {mc}
+\definesystemvariable {mt}
+\definesystemconstant {colset}
+
+\definetwopasslist\s!colset
+
+\newdimen \OTRSETtextswidth
+\newdimen \OTRSETtextsheight
+\let \OTRSETidentifier=\empty
+
+\newtoks \OTRSEToutput
+
+\def\OTRSETgetparameter#1#2{\csname\??mc\OTRSETidentifier\number#2#1\endcsname}
+\def\OTRSETsetparameter#1#2{\setvalue{\??mc\OTRSETidentifier\number#2#1}}
+
+\def\OTRSETskipstart
+ {\scratchcounter\executeifdefined{\??mc\OTRSETidentifier\c!start}\zerocount
+ \relax % needed !
+ \ifcase\scratchcounter\else
+ \advance\scratchcounter\plusone
+ \doOTRSETsetgridcells
+ {\copy\placeholderboxe}
+ \plusone\plusone\nofcolumns\scratchcounter
+ \null
+ \fi}
+
+\def\OTRSETsetvsize % snap per sectie (gap here?)
+ {\ifcollectingcontent \else % can be assigndimen
+\OTRSETskipstart % not that well tested
+ \OTRSETcheckinsert % added
+ \OTRSETsetfreecells\mofcolumns\columnfirstcell
+ \ifsomefreecolumncells
+ \global\vsize\columnfreecells\lineheight
+ \ifinotr % else problems with floats, see extreme
+ \global\pagegoal\vsize % niet nodig, tenzij binnen otr
+ \fi
+ \synchronizeoutput % fails on example
+ % \allowbreak % hm
+ \fi
+ \synchronizenotes
+ \fi}
+
+\def\OTRSETsethsize % of course this does not migrate outside the otr
+ {\localcolumnwidth\OTRSETlocalwidth\mofcolumns
+ \textwidth\localcolumnwidth
+ \hsize\localcolumnwidth}
+
+\def\OTRSETsynchronizehsize
+ {\ifcase0\getvalue{\??mc\??mc\c!width}\else % some width set
+ \bgroup
+ \scratchdimen\OTRSETlocalwidth\mofcolumns
+ \ifdim\scratchdimen=\textwidth
+ \egroup
+ \else
+ % only if change in width and \column/\break
+ \egroup \OTRSETsethsize
+ \fi
+ \fi}
+
+\def\OTRSETcheckfreelines
+ {\OTRSETsetvsize}
+
+\def\doOTRSETcolumnseparator
+ {\hbox to \zeropoint{\hss\red\vl\hss}}
+
+\let\OTRSETcolumnseparator\relax
+
+\def\showbreaks
+ {\let\OTRSETcolumnseparator\doOTRSETcolumnseparator}
+
+% \installcolumnbreakhandler {SET} \v!ja
+% {% hmmm:
+% \ifhmode
+% \bgroup
+% \removeunwantedspaces
+% \parfillskip\zeropoint
+% \OTRSETcolumnseparator
+% \par
+% \egroup
+% \fi
+% % brrr:
+% \ejectinsert
+% \ejectpage
+% \OTRSETsynchronizehsize} % no \OTRSETsethsize, can be mid smaller (like tabulate)
+%
+% \installcolumnbreakhandler {SET} \v!forceer
+% {\OTRSETgotocolumn[\v!forceer]}
+% \installcolumnbreakhandler {SET} \v!eerste
+% {\OTRSETgotocolumn[\v!eerste]}
+% \installcolumnbreakhandler {SET} \v!laatste
+% {\OTRSETgotocolumn[\v!laatste]}
+%
+% \installcolumnbreakhandler {SET} \v!pagina
+% {\simplepagebreak % \flushnotes \executepagebreakhandler\v!ja
+% \ifnum\mofcolumns>\plusone
+% \OTRSETgotocolumn[\v!laatste,\v!forceer]%
+% \fi}
+
+\def\OTRSETcolumnhbreak
+ {\ifhmode
+ \bgroup
+ \removeunwantedspaces
+ \parfillskip\zeropoint
+ \OTRSETcolumnseparator
+ \par
+ \egroup
+ \fi}
+
+\installcolumnbreakhandler {SET} \v!local
+ {\OTRSETcolumnhbreak
+ \ejectinsert
+ \ejectpage % brrr
+ % no \OTRSETsethsize, can be mid smaller (like tabulate)
+ % also, this one should be executed at the outer level
+ % (setting hsize inside otr does not work)
+ \OTRSETsynchronizehsize}
+
+% We need to make sure that we really leave the column; mid
+% column we may end up in an empty gap, and we don't want to
+% stay there (basically such a gap is a small empty page
+% then).
+
+\installcolumnbreakhandler {SET} \v!yes
+ {\OTRSETcolumnhbreak
+ \edef\savedmofcolumns{\the\mofcolumns}%
+ \edef\savedrealpageno{\the\realpageno}%
+ \ejectinsert
+ \ejectpage % brrr
+ \doloop
+ {\ifnum\savedmofcolumns=\mofcolumns
+ \ifnum\savedrealpageno=\realpageno
+ \OTRSETdummycolumn
+ \else
+ \exitloop
+ \fi
+ \else
+ \exitloop
+ \fi}%
+ \OTRSETsynchronizehsize}
+
+\installcolumnbreakhandler {SET} \s!unknown
+ {\expanded{\OTRSETgotocolumn[\@@columnspecification]}}
+
+\installcolumnbreakhandler {SET} \v!page
+ {\vfill\eject % \doejectpage\eject
+ \OTRSETgotonextpage}
+
+\newtoks\OTRSETeverystartofcolumn
+
+\newbox\OTRSETsavedfootnotes
+
+% \installoutput\OTRSETflushtextsofar % spacing goes wrong
+
+%\def\OTRSETflushtextsofar
+% {\ifvoid\normalpagebox \else
+% \setbox\scratchbox\vbox{\unvbox\normalpagebox}%
+% \OTRSETsavenotes
+% \OTRSEThandleflushedtext0
+% \fi}
+
+% The complication is in the fact that when the HERE float
+% is placed, the otr is not invoked when there is not yet
+% enough content; this can lead to a change in order (turning
+% on the tracer with option 0 is very instructive, watch the
+% small numbers in the margin)
+%
+% 0 = no flushing, so no interference but user should handle
+% border cases of placement
+% 1 = the normal otr, rather untested
+% 2 = a solution that works ok, is experimental and above
+% all messy
+
+\chardef\OTRSETflushtextmode=0
+
+\def\OTRSETflushtextsofar
+ {\ifcase\OTRSETflushtextmode
+ % don't mess around
+ \or
+ % the normal one
+ \ifvoid\normalpagebox\else
+ \OTRSETnaturalflush
+ \OTRSETcheckfreelines
+ \fi
+ \or
+ % way to complicated, but kind of ok
+ \doOTRSETflushtextsofar
+ \fi}
+
+\newskip\lastskipinotr
+
+\installoutput\doOTRSETflushtextsofar % experimental
+ {\ifvoid\normalpagebox\else
+ \scratchdimen\dp\normalpagebox
+ \setbox\scratchbox\vbox
+ {\forgetall
+ \unvbox\normalpagebox
+ \global\lastskipinotr\lastskip\relax
+ \ifdim\lastskipinotr>\zeropoint\relax
+ \removelastskip
+ \else
+ \kern-\scratchdimen % handle depth
+ \fi}%
+ \ifdim\lastskipinotr>\zeropoint
+ \scratchskip\ht\scratchbox
+ \setbox\scratchbox\hbox
+ {\lower\strutdepth\box\scratchbox}%
+ \dp\scratchbox\scratchdimen
+ \ht\scratchbox\scratchskip
+ \fi
+ \OTRSETsavenotes
+ \OTRSEThandleflushedtext\zerocount
+ \ifdim\lastskipinotr>\zeropoint
+ %\vskip \lastskipinotr % hm, gets lost anyway
+ \else
+ % we should not discard skips after here; tricky
+ \fi
+ \OTRSETsetvsize
+ \fi}
+
+\def\OTRSETplacebottomnotes
+ {\iflastcolumnfootnotes
+ \ifnum\nofcolumns=\mofcolumns
+ \ifintermediatefootnotes \placebottomnotes \fi
+ \fi
+ \else
+ \placebottomnotes
+ \fi}
+
+\def\OTRSETflushsavednotes
+ {\iflastcolumnfootnotes
+ \ifnum\nofcolumns=\mofcolumns
+ \flushsavednotes
+ \fi
+ \else
+ \flushsavednotes
+ \fi}
+
+\def\OTRSETsavenotes
+ {\iflastcolumnfootnotes
+ \ifnum\nofcolumns=\mofcolumns \else
+ \savenotes
+ \fi
+ \fi}
+
+\appendtoks \OTRSETflushsavednotes \to \OTRSETeverystartofcolumn
+
+\def\OTRSETnaturalflush
+ {\bgroup
+ \forgetall % new, needed !
+ \setbox0\vbox to \columnfreecells\lineheight
+ {\vskip-\topskip
+ \vskip\lineheight
+ \prevdepth\strutdp
+ \unvbox\normalpagebox
+ \vfill}%
+ \setbox2\hbox
+ {\OTRSETplacebottomnotes}%
+ \setbox\scratchbox\hbox
+ {\wd0\zeropoint\box0\box2}%
+ \dp\scratchbox\strutdp
+ \OTRSEThandleflushedtext\plusone
+ \egroup}
+
+\newcount\lastcolumnlastcell
+
+\def\OTRSEThandleflushedtext#1%
+ {\getnoflines{\ht\scratchbox}%
+ %\wd\scratchbox\textwidth % geen \hsize kan < zijn in bv split tabulate
+ \wd\scratchbox\OTRSETlocalwidth\mofcolumns
+ \doOTRSETsetgridcells
+ {\copy\placeholderboxf}
+ \mofcolumns\columnfirstcell\plusone\noflines
+ {\registeredtextarea1\columnfirstcell\scratchbox}% == \hbox / tricky htcorr == \columnfirstcell
+ \global\columnlastcell\columnfirstcell
+ \global\advance\columnlastcell \noflines
+ \global\lastcolumnlastcell\columnlastcell
+ \global\advance\lastcolumnlastcell \minusone
+ % find next (acceptable) gap, todo: deadcycle
+ \ifcase#1\else
+ \OTRSETfillgapsbetweencells\mofcolumns\columnlastcell
+ \fi
+ \OTRSETfindnextgap
+ % \message{\the\mofcolumns,\the\columnfirstcell,\the\columnfreecells}%
+ % \wait
+ % we cannot adapt the hsize since it may have changed (like
+ % inside a tabulate) so we only change it when there is a
+ % reason to do so
+ \OTRSETsynchronizehsize
+ \OTRSETsetvsize}
+
+\def\OTRSETfindnextgap
+ {\OTRSETsetfreecells\mofcolumns\columnlastcell
+ \ifsomefreecolumncells
+ % okay
+ \bubbleOTRSETmarks % not robust because we reenter
+ \else
+ \registerOTRSETmarks % not robust because we reenter
+ \global\advance\mofcolumns \plusone
+ \ifnum\mofcolumns>\nofcolumns
+ \OTRSETdoflush
+ \global\columnlastcell\plusone
+ \global\columnfirstcell\zerocount
+ \OTRSETdoflushfloats
+ \else
+ \the\OTRSETeverystartofcolumn
+ \global\columnlastcell\plusone
+ \global\columnfirstcell\zerocount
+ \fi
+ \fi}
+
+\let\OTRSETcheckfreelines\donothing
+
+\def\OTRSETfillgapsbetweencells#1#2% col
+ {\ifnum\columngaplimit>\zerocount
+ \donefalse
+ \dostepwiserecurse{#2}\columnmaxcells\plusone
+ {\OTRSETdoifcellelse{#1}\recurselevel
+ {\ifdone
+ \!!countb\recurselevel \advance\!!countb -\!!counta\relax
+ \ifnum\!!countb>\plusone
+ \advance\!!countb \minusone
+ \ifnum\!!countb<\columngaplimit\relax
+ \!!countb\recurselevel \advance\!!countb \minusone
+ \dostepwiserecurse\!!counta\!!countb\plusone
+ {\OTRSETsetgridcell{#1}\recurselevel\copy\placeholderboxc}%
+ %\message{[gap]}%
+ \fi
+ \fi
+ \fi
+ \donefalse}
+ {\ifdone \else
+ \donetrue
+ \!!counta\recurselevel
+ \fi}}%
+ \fi}
+
+\appendtoks
+ \OTRSETfillgapsbetweencells\mofcolumns\plusone
+\to \OTRSETeverystartofcolumn
+
+%\def\OTRSETfreezeminimumgap#1%
+% {\OTRSETgetmaxfreecells{#1}{1}%
+% \ifnum\columnmaxfreecells>0
+% \!!countb=\columnfrmfreecells
+% \!!counta=\!!counta \advance\!!counta -\columnmaxfreecells
+% \dorecurse{\columnmaxcells}
+% {\ifnum\recurselevel<\!!counta\relax
+% \donetrue
+% \else\ifnum\recurselevel>\!!countb
+% \donetrue
+% \else
+% \donefalse
+% \fi\fi
+% \ifdone
+% \OTRSETdoifcellelse{#1}{\recurselevel}
+% {}{\OTRSETsetgridcell{#1}\recurselevel\copy\placeholderboxc}%
+% \fi}%
+% \fi}
+%
+%\def\OTRSETfillgaps#1#2#3% col from to
+% {\dostepwiserecurse{#2}{#3}{1}
+% {\OTRSETdoifcellelse{#1}{\recurselevel}
+% {}{\OTRSETsetgridcell{#1}\recurselevel\copy\placeholderboxc}}}
+%
+%\def\OTRSETfillbotgaps#1#2% col first
+% {\OTRSETfillgaps{#1}{#2}{\columnmaxcells}}
+%
+%\def\OTRSETfilltopgaps#1#2% col last
+% {\OTRSETfillgaps{#1}{1}{#2}}
+
+\newif\ifspancolumnslots \spancolumnslotstrue
+\newif\ifcheckcolumnspan \checkcolumnspantrue
+
+\def\OTRSETcheckwidthgap#1#2% box size
+ {\ifcheckcolumnspan
+ \bgroup
+ \scratchdimen#2%
+ \advance\scratchdimen-\wd#1\relax
+ \ifdim-10\scaledpoint>\scratchdimen
+ \egroup
+ \else\ifdim10\scaledpoint<\scratchdimen
+ \egroup
+ \else
+ \egroup
+ \wd#1=#2%
+ \fi\fi
+ \fi}
+
+\def\OTRSETcheckcolumnslot#1%
+ {\enoughcolumncellstrue
+ \ifspancolumnslots\else
+ \OTRSETcheckwidthgap#1\hsize
+ \ifdim\wd#1>\hsize
+ \enoughcolumncellsfalse
+ \fi
+ \fi
+ \ifenoughcolumncells
+ \getnoflines\pagetotal
+ \scratchcounter\noflines
+ \getnoflines{\ht#1}%
+ \columnvcells\noflines
+ \columnhcells\plusone
+ \advance\scratchcounter \columnvcells \relax
+ \ifnum\scratchcounter>\columnfreecells
+ \enoughcolumncellsfalse
+ \fi
+ \fi}
+
+\def\OTRSETstoreincolumnslotPAGE#1%
+ {\ifenoughcolumncells
+ % to do
+ \OTRSETsavebox{#1}%
+ \else
+ \OTRSETsavebox{#1}%
+ \fi}
+
+\def\OTRSETstoreincolumnslotTOPS#1%
+ {\OTRSETprepareforcolumnslot1{#1}%
+ \OTRSETcheckcolumnslot{#1}%
+ \ifenoughcolumncells
+ \OTRSETcheckcolumnspace\mofcolumns\columnfirstcell{#1}%
+ \fi
+ \ifenoughcolumncells
+ \OTRSETsetgridcells\mofcolumns\columnfirstcell\columnhcells\columnvcells
+ {\hbox{\copy#1}}%
+ \OTRSETsetvsize
+ \else
+ \OTRSETsavebox{#1}%
+ \fi}
+
+\def\OTRSETstoreincolumnslotBOTS#1%
+ {\OTRSETprepareforcolumnslot3{#1}%
+ \edef\savedcolumnlastcell{\the\columnlastcell}%
+ \OTRSETcheckcolumnslot{#1}%
+ \ifenoughcolumncells
+ \advance\columnlastcell -\columnvcells \advance\columnlastcell \plusone
+% \OTRSETcheckcolumnspace\mofcolumns\columnfirstcell{#1}%
+ \OTRSETcheckcolumnspace\mofcolumns\columnlastcell{#1}%
+ \fi
+ \ifenoughcolumncells
+ \OTRSETsetgridcells\mofcolumns\columnlastcell\columnhcells\columnvcells{\copy#1}%
+ \OTRSETfillgapsbetweencells\mofcolumns\savedcolumnlastcell % -)
+ \OTRSETsetvsize
+ \else
+ \columnlastcell\savedcolumnlastcell
+ \OTRSETsavebox{#1}%
+ \fi}
+
+\newdimen\totalcolumnspace
+
+\def\columnspacetopoffset{0}
+\def\columnspacebotoffset{0}
+
+\def\OTRSETcheckcolumnspace#1#2#3% col row box
+ {\columnhcells\plusone
+ \totalcolumnspace\zeropoint
+ \scratchcounter#1%
+ \enoughcolumncellstrue
+ \doloop
+ {\advance\totalcolumnspace \OTRSETlocalwidth\scratchcounter\relax % needed
+\OTRSETcheckwidthgap#3\totalcolumnspace
+ \ifnum\wd#3>\totalcolumnspace\relax
+ \ifnum\scratchcounter=\nofcolumns
+ \enoughcolumncellsfalse
+ \exitloop
+ \else
+ \advance\columnhcells \plusone
+ \advance\scratchcounter \plusone
+ \advance\totalcolumnspace \OTRSETgetparameter\c!distance\scratchcounter
+ \fi
+ \else
+ \exitloop
+ \fi}%
+ \ifenoughcolumncells
+ \getnoflines{\ht#3}%
+ \columnvcells\noflines
+ \OTRSETcheckcolumncells{#1}{#2}\columnhcells\columnvcells
+ \fi}
+
+\def\OTRSETcheckcolumncells#1#2#3#4% col row wid hei
+ {\!!countd#1\advance\!!countd#3\advance\!!countd\minusone
+ \!!counte#2\advance\!!counte#4\advance\!!counte\minusone
+ \ifnum\!!counte>\columnmaxcells\relax
+ \enoughcolumncellsfalse
+ \else
+ \enoughcolumncellstrue
+%\let\columnspacetopoffset\zerocount
+%\scratchcounter#2\advance\scratchcounter\minusone
+%\ifnum\scratchcounter>0
+% \dostepwiserecurse{#1}\!!countd\plusone
+% {\ifdim\wd\OTRSETgridcell\recurselevel\scratchcounter>\zeropoint
+% \let\columnspacetopoffset\plusone
+% \else\ifdim\dp\OTRSETgridcell\recurselevel\scratchcounter>\zeropoint
+% \let\columnspacetopoffset\plusone
+% \fi\fi}%
+% \advance\!!counte \columnspacetopoffset \relax
+% \advance\columnvcells \columnspacetopoffset \relax
+%\fi
+%\let\columnspacebotoffset\zerocount
+%\scratchcounter\!!counte
+%\advance\scratchcounter \columnvcells \relax
+%\ifnum\scratchcounter>\columnmaxcells\else
+% \dostepwiserecurse{#1}\!!countd\plusone
+% {\ifdim\wd\OTRSETgridcell\recurselevel\scratchcounter>\zeropoint
+% \let\columnspacebotoffset\plusone
+% \else\ifdim\dp\OTRSETgridcell\recurselevel\scratchcounter>\zeropoint
+% \let\columnspacebotoffset\plusone
+% \fi\fi}%
+% \advance\!!counte \columnspacebotoffset \relax
+% \advance\columnvcells \columnspacebotoffset \relax
+%\fi
+ \dostepwiserecurse{#1}\!!countd\plusone % cols
+ {\ifenoughcolumncells
+ \!!countf\recurselevel\relax
+ \dostepwiserecurse{#2}\!!counte\plusone % rows
+ {\ifenoughcolumncells
+ \OTRSETdoifcellelse\!!countf\recurselevel
+ {\enoughcolumncellsfalse}{}%
+ \fi}%
+ \fi}%
+ \fi}
+
+\def\OTRSETsetpreferedcolumnslot#1#2%
+ {\doifsomething{#1}{\edef\preferedcolumn{#1}}%
+ \doifsomething{#2}{\edef\preferedrow {#2}}}
+
+\OTRSETsetpreferedcolumnslot{\nofcolumns}{1} % default ?
+
+\let\pofcolumns\mofcolumns
+\let\qofcolumns\mofcolumns
+
+\newif\ifquitincurrentcolumn
+
+\def\OTRSETstoreincolumnslotLRTB#1%
+ {\OTRSETprepareforcolumnslot1{#1}%
+ \OTRSETflushtextsofar
+ \OTRSETstoreincolumnslotindeed
+ \mofcolumns\nofcolumns+\currenthcell
+ \plusone\columnmaxcells+\currentvcell{#1}}
+
+\def\OTRSETstoreincolumnslotLRBT#1%
+ {\OTRSETprepareforcolumnslot3{#1}%
+ \OTRSETflushtextsofar
+ \OTRSETstoreincolumnslotindeed
+ \mofcolumns\nofcolumns+\currenthcell
+ \columnmaxcells\plusone-\currentvcell{#1}}
+
+\def\OTRSETstoreincolumnslotRLTB#1%
+ {\OTRSETprepareforcolumnslot1{#1}%
+ \OTRSETflushtextsofar
+ \OTRSETcheckprefered
+ \OTRSETstoreincolumnslotindeed
+ \nofcolumns\qofcolumns-\currenthcell
+ \plusone\columnmaxcells+\currentvcell{#1}}
+
+\def\OTRSETstoreincolumnslotRLBT#1%
+ {\OTRSETprepareforcolumnslot3{#1}%
+ \OTRSETflushtextsofar
+ \OTRSETcheckprefered
+ \OTRSETstoreincolumnslotindeed
+ \nofcolumns\qofcolumns-\currenthcell
+ \columnmaxcells\plusone-\currentvcell{#1}}
+
+\def\OTRSETstoreincolumnslotTBLR#1%
+ {\OTRSETprepareforcolumnslot1{#1}%
+ \OTRSETflushtextsofar
+ \OTRSETstoreincolumnslotindeed
+ \plusone\columnmaxcells+\currentvcell
+ \mofcolumns\nofcolumns+\currenthcell{#1}}
+
+\def\OTRSETstoreincolumnslotTBRL#1%
+ {\OTRSETprepareforcolumnslot1{#1}%
+ \OTRSETflushtextsofar
+ \OTRSETcheckprefered
+ \OTRSETstoreincolumnslotindeed
+ \plusone\columnmaxcells+\currentvcell
+ \nofcolumns\qofcolumns-\currenthcell{#1}}
+
+\def\OTRSETstoreincolumnslotBTLR#1%
+ {\OTRSETprepareforcolumnslot3{#1}%
+ \OTRSETflushtextsofar
+ \OTRSETstoreincolumnslotindeed
+ \columnmaxcells\plusone-\currentvcell
+ \mofcolumns\nofcolumns+\currenthcell{#1}}
+
+\def\OTRSETstoreincolumnslotBTRL#1%
+ {\OTRSETprepareforcolumnslot3{#1}%
+ \OTRSETflushtextsofar
+ \OTRSETcheckprefered
+ \OTRSETstoreincolumnslotindeed
+ \columnmaxcells\plusone-\currentvcell
+ \nofcolumns\qofcolumns-\currenthcell{#1}}
+
+\def\OTRSETstoreincolumnslotFXTB#1% fixed column
+ {\OTRSETcheckprefered
+ \OTRSETdoifcellelse\pofcolumns\plusone
+ {\OTRSETprepareforcolumnslot2}{\OTRSETprepareforcolumnslot1}{#1}% % 1/2 dependent of place, todo
+ \OTRSETflushtextsofar
+ \OTRSETstoreincolumnslotindeed
+ \pofcolumns \pofcolumns +\currenthcell
+ \preferedrow\columnmaxcells+\currentvcell{#1}}
+
+\def\OTRSETstoreincolumnslotFXBT#1% fixed column
+ {\OTRSETcheckprefered
+ \OTRSETdoifcellelse\pofcolumns\columnmaxcells
+ {\OTRSETprepareforcolumnslot2}{\OTRSETprepareforcolumnslot3}{#1}% % 3/2 dependent of place, todo
+ \OTRSETflushtextsofar
+ \OTRSETstoreincolumnslotindeed
+ \pofcolumns \pofcolumns +\currenthcell
+ \columnmaxcells\preferedrow-\currentvcell{#1}}
+
+% \def\OTRSETstoreincolumnslotHERE#1% fixed column
+% {\OTRSETprepareforcolumnslot2{#1}%
+% \OTRSETflushtextsofar
+% \getnoflines\pagetotal \advance\noflines\columnfirstcell
+% \OTRSETstoreincolumnslotindeed
+% \mofcolumns\mofcolumns+\currenthcell
+% \noflines\columnmaxcells+\currentvcell{#1}%
+% \OTRSETsetvsize}
+
+\chardef\OTRSETforcefixedfloats=0
+
+\def\OTRSETstoreincolumnslotHERE#1% fixed column
+ {\ifcase\OTRSETforcefixedfloats
+ \OTRSETstoreincolumnslotSOMEWHERE2{#1}%
+ \else
+ \OTRSETstoreincolumnslotFIXD{#1}%
+ \fi}
+
+% this one looses too wide graphics
+%
+% \def\OTRSETstoreincolumnslotFIXD#1% fixed column
+% {\OTRSETprepareforcolumnslot2{#1}%
+% % no flush text sofar here, beware: no width test
+% \snaptogrid\vbox{\box#1}}
+%
+% still imperfect
+
+\def\OTRSETstoreincolumnslotFIXD#1% fixed column
+ {\OTRSETflushtextsofar
+ \ifdim\wd#1>\textwidth
+ \OTRSETstoreincolumnslotSOMEWHERE2{#1}%
+ \else
+ % crappy test / needed for o-pbu-f / will be replaced
+ \getnoflines{\ht#1}%
+ \scratchdimen\noflines\lineheight
+ \advance\scratchdimen\lineheight
+ \advance\scratchdimen\pagetotal\relax
+ \ifdim\scratchdimen<\pagegoal
+ %OTRSETprepareforcolumnslot3{#1}%
+ %ruledvskip\columnslotspacing\lineheight
+ \blank[\columnslotspacing*\v!line]%
+ \snaptogrid\hbox to \hsize{\hss\box#1\hss}% strange, why the centering
+ \blank[\columnslotspacing*\v!line]%
+ \else
+ \OTRSETstoreincolumnslotSOMEWHERE2{#1}%
+ \fi
+ \fi}
+
+\def\OTRSETstoreincolumnslotSOMEWHERE#1#2%
+ {\OTRSETprepareforcolumnslot{#1}{#2}%
+ \OTRSETflushtextsofar
+ \getnoflines\pagetotal \advance\noflines\columnfirstcell
+ \OTRSETstoreincolumnslotindeed
+ \mofcolumns\mofcolumns+\currenthcell
+ \noflines\columnmaxcells+\currentvcell{#2}%
+ \OTRSETsetvsize}
+
+\def\OTRSETcheckprefered
+ {\ifnum\preferedcolumn<\mofcolumns
+ \let\pofcolumns\mofcolumns
+ \else
+ \let\pofcolumns\preferedcolumn
+ \fi
+ \ifquitincurrentcolumn
+ \ifnum\mofcolumns=\nofcolumns
+ \def\qofcolumns{\mofcolumns}%
+ \else
+ \scratchcounter\mofcolumns
+ \advance\scratchcounter \plusone
+ \edef\qofcolumns{\the\scratchcounter}%
+ \fi
+ \else
+ \let\qofcolumns\mofcolumns
+ \fi}
+
+\def\OTRSETstoreincolumnslotindeed#1#2#3#4#5#6#7#8#9%
+ {\OTRSETcheckprefered
+ \enoughcolumncellsfalse
+ \donefalse
+ \dostepwiserecurse{#1}{#2}{#31}
+ {\ifdone
+ \exitloop
+ \else
+ #4=\recurselevel
+ \dostepwiserecurse{#5}{#6}{#71}
+ {\ifdone
+ \exitloop
+ \else
+ #8=\recurselevel
+ \OTRSETcheckcolumnspace\currenthcell\currentvcell{#9}%
+ \ifenoughcolumncells \donetrue \fi
+ \fi}%
+ \fi}%
+ \ifdone
+ \enoughcolumncellstrue
+ \else
+ \enoughcolumncellsfalse
+ \fi
+ \ifenoughcolumncells
+% \ifnum\columnspacetopoffset>0\message{[+++]}\fi
+% \ifnum\columnspacebotoffset>0\message{[---]}\fi
+% \OTRSETsetgridcells\currenthcell\currentvcell\columnhcells\columnvcells
+% {\vbox
+% {\ifcase\columnspacetopoffset\else\ruledvskip\columnspacetopoffset\lineheight\fi
+% \copy#9
+% \ifcase\columnspacebotoffset\else\ruledvskip\columnspacebotoffset\lineheight\fi}}%
+ \OTRSETsetgridcells\currenthcell\currentvcell\columnhcells\columnvcells
+ {\copy#9}%
+ \ifnum\currenthcell=\mofcolumns\relax
+ \ifdim\ht\OTRSETsavedfootnotes>\zeropoint
+ \OTRSETsetfreecells\mofcolumns\columnfirstcell
+ \ifsomefreecolumncells
+ \getnoflines{\ht\OTRSETsavedfootnotes}\relax
+ \ifnum\columnfreecells<\noflines
+ \global\somefreecolumncellsfalse
+ \else
+ %\message{[flt]}% float
+ \fi
+ \fi
+ \ifsomefreecolumncells
+ % ok, enough room for notes
+ %\message{[flt]}% float
+ \else % ?
+ \OTRSETsavebox{#9}%
+ \OTRSETerasegridcells\currenthcell\currentvcell\columnhcells\columnvcells
+ %\message{[clr]}% save box
+ \fi
+ \else
+ %\message{[flt]}% float
+ \fi
+ \else
+ %\message{[flt]}% float
+ \fi
+ \OTRSETsetvsize
+ %\message{[fnt]}% float
+ \else
+ %\message{[rej]}% save box
+ \OTRSETsavebox{#9}%
+ \fi}
+
+\chardef\columnslotspacing \plusone
+
+\def\OTRSETstoreincolumnslot#1% #2 % {method} {box} % alleen last
+ {% no messing around here
+ % \dp#2=\zeropoint
+ % \ifcase\columnslotspacing\else
+ % \setbox#2=\vbox spread \columnslotspacing\lineheight
+ % {\vss\box#2\vss}%
+ % \fi
+ % and don't change this any more
+% \doifdefinedelse{\strippedcsname\OTRSETstoreincolumnslot#1}
+% {\getvalue{\strippedcsname\OTRSETstoreincolumnslot#1}{#2}}
+% {\OTRSETstoreincolumnslotUNKNOWN{#2}}}
+ \executeifdefined{\strippedcsname\OTRSETstoreincolumnslot#1}
+ \OTRSETstoreincolumnslotUNKNOWN} % {#2}}
+
+\def\OTRSETstoreincolumnslotUNKNOWN#1%
+ {\OTRSETprepareforcolumnslot2{#1}\copy#1} % {} ?
+
+% \def\OTRSETprepareforcolumnslot#1#2% 1=hoog 2=midden 3=laag
+% {\dp#2\zeropoint
+% \ifcase\columnslotspacing\else
+% \scratchdimen\columnslotspacing\lineheight
+% \ifnum#1=2 \scratchdimen2\scratchdimen \fi
+% \setbox#2\vbox spread \scratchdimen
+% {\ifnum#1>1\vss\fi\box#2\relax\ifnum#1<3\vss\fi}%
+% \fi}
+
+\def\OTRSETprepareforcolumnslot#1#2% 1=hoog 2=midden 3=laag
+ {\dp#2\zeropoint
+ \ifcase\columnslotspacing\else
+ \scratchdimen\columnslotspacing\lineheight
+ \ifnum#1=2 \scratchdimen2\scratchdimen \fi
+ \begingroup
+ \advance\scratchdimen\ht#2\relax
+ \ifdim\scratchdimen<\columnmaxcells\lineheight
+ \endgroup \setbox#2\vbox spread \scratchdimen \bgroup
+ \else
+ \endgroup \setbox#2\vbox to \columnmaxcells\lineheight \bgroup
+ \vskip\strutdepth
+ \fi
+ \ifnum#1>1\vss\fi
+ \box#2\relax
+ \ifnum#1<3\vss\fi
+ \egroup
+ \fi}
+
+\def\OTRSETdocheckiffloatfits % eigenlijk moet else float anders
+ {\global\ifnofloatpermitted\roomforfloatfalse\else\roomforfloattrue\fi}
+
+\def\OTRSETunpreparebox#1%
+ {\ifhbox#1% spans and so
+ \global\setbox\floatbox\vbox{\box#1}%
+ \else
+ \setbox\scratchbox\vbox
+ {\unvbox#1\unskip\unskip\unskip
+ \global\setbox\floatbox\lastbox}%
+ \fi}
+
+\def\OTRSETsavebox#1% clean up the skips
+ {\OTRSETunpreparebox{#1}%
+ \dosavefloat}
+
+\def\OTRSETresavebox#1% clean up the skips
+ {\OTRSETunpreparebox{#1}%
+ \doresavefloat}
+
+\def\OTRSETflushfloatbox % nog verder doorvoeren en meer info in marge
+ {\iftestfloatbox\ruledhbox\fi{\box\floatbox}}
+
+\def\OTRSETdoflushfloats
+ {\bgroup
+ \def\OTRSETsavebox##1{\!!doneafalse}%
+ \doloop
+ {\ifsomefloatwaiting
+\OTRSETskipstart
+ \dogetfloat
+ \ifdim\wd\floatbox>\zeropoint
+ \!!doneatrue
+ \dp\floatbox\zeropoint
+ \OTRSETstoreincolumnslot{TBLR}\floatbox
+ \if!!donea
+ %\message{[flu]}%
+ \else
+ \OTRSETresavebox\floatbox
+ \exitloop
+ \fi
+ \else
+ %\message{[err]}% happens but why?
+ \fi
+ \else
+ \exitloop
+ \fi}
+ \egroup}
+
+\newif\ifcentergridcells \centergridcellstrue
+
+\newif\ifcentergridcellonly \centergridcellonlyfalse
+\newif\ifautocentergridcellonly \autocentergridcellonlytrue
+
+\def\OTRSETcentergridcells
+ {\ifcentergridcells
+ \dorecurse\nofcolumns
+ {\currenthcell\recurselevel
+ \ifautocentergridcellonly
+ % we prevent centering when the next column is empty
+ % to be checked ! ! ! !
+ \advance\currenthcell \plusone
+ \centergridcellonlytrue
+ \ifnum\currenthcell>\nofcolumns
+ % ok already
+ \else
+ % only span if there is a next column with content
+ \dorecurse\columnmaxcells
+ {\ifdim\ht\OTRSETgridcell\currenthcell\currentvcell>\zeropoint
+ \centergridcellonlyfalse
+ \else\ifdim\dp\OTRSETgridcell\currenthcell\currentvcell>\zeropoint
+ \centergridcellonlyfalse
+ \fi\fi}%
+ \fi
+ \fi
+ \currenthcell\recurselevel
+ \dorecurse\columnmaxcells
+ {\currentvcell\recurselevel\relax
+ \ifdim\ht\OTRSETgridcell\currenthcell\currentvcell>\zeropoint
+ \ifdim\dp\OTRSETgridcell\currenthcell\currentvcell=\zeropoint
+ \bgroup
+ \setbox\scratchbox\OTRSETgetgridcell\currenthcell\currentvcell
+ \getnoflines{\ht\scratchbox}%
+ \!!counta\currentvcell
+ \advance\!!counta -\noflines
+ \advance\!!counta \plusone
+ % first col always ok
+ \!!countb\currenthcell
+ \!!countc\currenthcell
+ \advance\!!countc \plusone
+ \!!donebtrue
+ \ifcentergridcellonly
+ \!!countc\maxdimen
+ \fi
+ \dostepwiserecurse\!!countc\nofcolumns\plusone
+ {\if!!doneb
+ \let\xrecurselevel\recurselevel
+ \dostepwiserecurse\!!counta\currentvcell\plusone
+ {\ifdim\ht\OTRSETgridcell\xrecurselevel\recurselevel>\zeropoint
+ \!!donebfalse
+ \else\ifdim\wd\OTRSETgridcell\xrecurselevel\recurselevel>\zeropoint
+ \!!donebfalse
+ \fi\fi}%
+ \if!!doneb
+ \!!countb\xrecurselevel
+ \fi
+ \fi}%
+ \totalcolumnspace\OTRSETlocalwidth\currenthcell
+ \dostepwiserecurse\!!countc\!!countb\plusone
+ {\advance\totalcolumnspace \OTRSETlocalwidth\recurselevel
+ \advance\totalcolumnspace \OTRSETgetparameter\c!distance\recurselevel}%
+ \ifdim\totalcolumnspace>\wd\scratchbox
+ \setbox\scratchbox\hbox to \totalcolumnspace{\hss\box\scratchbox\hss}%
+ \fi
+ \OTRSETsetgridcell\currenthcell\currentvcell\box\scratchbox
+ \egroup
+ \fi
+ \fi}}%
+ \fi}
+
+\def\OTRSETinitializecolumns% once per page
+ {\columnspreadtrue % todo
+ \ifcolumnspread
+ \global\rofcolumns\getvalue{\??mc\OTRSETidentifier\c!nright}%
+ \global\lofcolumns\getvalue{\??mc\OTRSETidentifier\c!nleft}%
+ \global\tofcolumns\rofcolumns \relax
+ \ifodd\realpageno\relax
+ \global\nofcolumns\rofcolumns
+ \else
+ \global\advance\tofcolumns\lofcolumns
+ \global\nofcolumns\lofcolumns
+ \fi
+ \else
+ \global\nofcolumns\getvalue{\??mc\OTRSETidentifier\c!n}%
+ \global\rofcolumns\nofcolumns
+ \global\lofcolumns\nofcolumns
+ \global\tofcolumns\nofcolumns
+ \fi
+ \OTRSETassignwidths
+ \global\mofcolumns\plusone
+ \columnerasegridboxes}
+
+% vanaf hier:
+
+\def\definecolumnset
+ {\dodoubleargument\dodefinecolumnset}
+
+\def\dodefinecolumnset[#1][#2]%
+ {\getparameters[\??mc#1]
+ [\c!direction=\v!right,
+ \c!balance=\v!no,
+ \c!distance=1.5\bodyfontsize, % controleren
+ \c!n=2,
+ \c!nleft=\getvalue{\??mc#1\c!n},
+ \c!nright=\getvalue{\??mc#1\c!n},
+ \c!width=\v!fit,
+ \c!lines=0,
+ \c!start=0,
+ #2]%
+ \dorecurse{\getvalue{\??mc#1\c!nleft}} % todo
+ {\dododefinecolumnset[#1][\recurselevel]}%
+ \dorecurse{\getvalue{\??mc#1\c!nright}} % todo
+ {\dododefinecolumnset[#1][\recurselevel]}%
+ % redo framed settings
+ \setupcolumnset[#1][1][\c!distance=\!!zeropoint]}
+
+\def\dododefinecolumnset[#1][#2]%
+ {\presetlocalframed
+ [\??mc#1#2]%
+ \setupcolumnset
+ [#1][#2]
+ [\c!offset=\v!overlay,
+ \c!frame=\v!off,
+ \c!align=,
+ \c!lines=0,% really needed since c!regels is now part of framed
+ \c!width=\getvalue{\??mc#1\c!width},
+ \c!distance=\getvalue{\??mc#1\c!distance}]}
+
+\def\setupcolumnset
+ {\dotripleargument\dosetupcolumnset}
+
+\def\dosetupcolumnset[#1][#2][#3]%
+ {\ifthirdargument
+ \def\docommand##1%
+ {\doifelse{##1}\v!each
+ {\dorecurse{\getvalue{\??mc#1\c!n}}{\docommand\recurselevel}}
+ {\getparameters[\??mc#1##1][#3]}}%
+ \processcommalist[#2]\docommand
+ \else
+ \getparameters[\??mc#1][#2]%
+ \fi}
+
+\definecolumnset[\s!default][\c!n=2] % fallback
+
+\def\OTRSETgotonextpage
+ {\vfill\eject
+ \relax\ifnum\mofcolumns>\plusone
+ \OTRSETgotocolumn[\v!last]%
+ \ifnum\mofcolumns>\plusone
+ \OTRSETgotocolumn[\v!force]%
+ \fi
+ \fi}
+
+\let\OTRSETgotonextpageX\OTRSETgotonextpage % will become obsolete
+
+\def\OTRSETgotocolumn
+ {\dosingleempty\doOTRSETgotocolumn}
+
+\def\doOTRSETgotoCOLROW#1% <number>|<number>*<number>
+ {\bgroup % really needed
+ \splitstring#1\at*\to\column\and\row
+ \bgroup
+ \ifx\column\empty\else\expanded{\doOTRSETgotoCOLUMN{\column}}\fi
+ \egroup
+ \bgroup
+ \ifx\row \empty\else\expanded{\doOTRSETgotoROW {\row }}\fi
+ \egroup
+ \egroup}
+
+\def\doOTRSETgotoCOLUMN#1%
+ {\ifnum\mofcolumns=#1\else
+ \vfill\eject % \doejectpage\eject
+ \doloop
+ {\ifnum\mofcolumns=#1\relax
+ \exitloop \else \OTRSETdummycolumn
+ \fi}%
+ \fi}
+
+\def\doOTRSETgotoROW#1%
+ {\ifnum#1>1
+ \scratchcounter\zerocount
+ \currenthcell\mofcolumns
+ \currentvcell#1\advance\currentvcell \minusone
+ \dorecurse\currentvcell
+ {\OTRSETdoifcellelse\mofcolumns\recurselevel\donothing
+ {\advance\scratchcounter\plusone}}
+ \getnoflines\pagetotal
+ \advance\scratchcounter-\noflines
+ \ifnum\scratchcounter>\zerocount
+ \dorecurse\scratchcounter{\line{\strut}}%
+ \fi
+ \fi
+ \OTRSETsetvsize}
+
+\def\doOTRSETgotocolumn[#1]% yes|force|first|last|<number>|<number>*<number>
+ {\processallactionsinset
+ [#1]
+ [ \v!yes=>\OTRSETdummycolumn,
+ \v!no=>,% not supported
+ \v!force=>\OTRSETdummycolumn,
+ \v!first=>\expanded{\doOTRSETgotoCOLUMN{1}},
+ \v!last=>\expanded{\doOTRSETgotoCOLUMN{\the\nofcolumns}},
+ \s!default=>\OTRSETdummycolumn,
+ \s!unknown=>\expanded{\doOTRSETgotoCOLROW{\commalistelement}}]}
+
+% to be documented and tested, not yet that robust
+
+% \def\OTRSETgotocell#1#2%
+% {\endgraf
+% \gdef\gotocellcounter{0}%
+% \doloop
+% {\ifnum\mofcolumns<#1\relax
+% \doglobal\increment\gotocellcounter\relax
+% \ifnum\gotocellcounter>#1\relax
+% \line{\strut}\crlf
+% \line{\strut}\crlf
+% \column
+% \writestatus{columnset}{quitting goto cell}%
+% \exitloop
+% \else
+% \column
+% \fi
+% \else
+% \exitloop
+% \fi}%
+% \ifnum\mofcolumns=#1\relax
+% \ifnum#2>1
+% \scratchcounter\zerocount
+% \currenthcell\mofcolumns
+% \currentvcell#2\advance\currentvcell \minusone
+% \dorecurse\currentvcell
+% {\OTRSETdoifcellelse\mofcolumns\recurselevel\donothing
+% {\advance\scratchcounter\plusone}}
+% \getnoflines\pagetotal
+% \advance\scratchcounter-\noflines
+% \ifnum\scratchcounter>\zerocount
+% \dorecurse\scratchcounter{\line{\strut}}%
+% \fi
+% \fi
+% \fi
+% \OTRSETsetvsize}
+
+\def\OTRSETgotocell#1#2% obsolete: now \column[#1*#2]
+ {\endgraf
+ \doOTRSETgotoCOLUMN{#1}%
+ \doOTRSETgotoROW {#2}}
+
+\def\OTRSETdummycolumn
+ {\verticalstrut
+ \vskip-\struttotal
+ \vfill
+ \eject}
+
+\newcounter\columnsetlevel
+\let\currentcolumnset\empty
+\chardef\OTRSETfinish\zerocount
+
+\def\startcolumnset
+ {\dodoubleempty\dostartcolumnset}
+
+\def\dostartcolumnset[#1][#2]%
+ {\increment\columnsetlevel\relax
+ \globallet\localcolumnmaxcells\!!zerocount
+ \global\chardef\OTRSETfinish\zerocount
+ \resetOTRSETmarks
+ \ifnum\columnsetlevel=\plusone
+ \bgroup
+ \saveinterlinespace
+ \globallet\columnsetpage\!!plusone
+ \def\currentcolumnset{#2}%
+ \insidecolumnstrue % will be different flag in addition
+ \activateotr{SET}{ONE}% andere naam, activate or so
+ \doifelsenothing{#1}
+ {\globallet\OTRSETlist\s!default}
+ {\xdef\OTRSETlist{#1}}%
+ \OTRSETstartnextpage
+ \OTRSETassignwidths
+ \OTRSETsethsize
+ \else
+ \bgroup
+ \fi}
+
+% \setuplayout[grid=yes] \definecolumnset[example] \showgrid
+
+% \starttext
+% \startcolumnset[example]
+% \input knuth \endgraf \input knuth
+% \placetable{table}{\framed[width=\makeupwidth,height=4cm]{Hello}}
+% \input knuth \endgraf \input knuth
+% \stopcolumnset
+% \input knuth \endgraf \input knuth
+% \stoptext
+
+
+\def\OTRSETflushleftovers % new per 13/4/2006
+ {\OTRSETdoifcellelse{1}{1}
+ {\bgroup
+ \OTRSETcentergridcells
+ \chardef\OTRSETbalancemethod\plusone
+ \OTRSETreducegridbox
+ \global\setbox\OTRfinalpagebox\OTRSETmakegridbox
+ \global\ht\OTRfinalpagebox\textheight % signals output that there is content
+ \OTRSETdofinaloutput
+ \globallet\OTRSETbalht\zeropoint
+ \egroup}
+ {}}
+
+\def\stopcolumnset
+ {\relax
+ \ifnum\columnsetlevel=\plusone
+ \endgraf % needed, else wrong vsize in one par case
+ \global\chardef\OTRSETfinish\plusone
+ % no, extra page \pagebreak % (test on pascal toc)
+ \dostopcolumnset
+ \egroup
+ \global\notelimittrue % brrr, untested and fuzzy
+ \setvsize
+ \sethsize
+ \ifvoid\OTRfinalpagebox\else
+ % probably balanced
+ \ifdim\ht\OTRfinalpagebox<\textheight
+ \snaptogrid[\v!page]\hbox{\box\OTRfinalpagebox}%
+ \else
+ \box\OTRfinalpagebox
+ \fi
+ \fi
+ \global\chardef\OTRSETfinish\zerocount
+ \ifsomefloatwaiting \setvsize \pagebreak \setvsize \fi
+ \OTRSETflushleftovers
+ \else
+ \egroup
+ \fi
+ \decrement\columnsetlevel\relax}
+
+\chardef\OTRSETbalancemethod\zerocount
+
+\def\dostopcolumnset
+ {%\OTRSETdofinalflushfloats % yes/no
+ \ifcase\OTRSETbalancemethod
+ \OTRSETnobalance
+ \else
+ \OTRSETdobalance
+ \fi}
+
+\def\OTRSETdobalance
+ {\OTRSETnobalance}
+
+\def\localcolumnmaxcells{0}
+
+% currently line represents real line, i.e. on the grid, and
+% not something noflines (also, watch out for switching from
+% 2-3 columns on one page with both sets balanced: the
+% second set does not see the first set
+
+% \def\OTRSETinitbalancing
+% {\ifcase\OTRSETbalancemethod\or
+% \let\savedcolumnmaxcells\columnmaxcells
+% \ifnum\realpageno=\balancingpageno\relax
+% \ifnum\mofcolumns=\plusone
+% \dorecurse\nofcolumns
+% {\!!counta\recurselevel\relax
+% \!!countb\getvalue{\??mc\OTRSETidentifier\number\!!counta\c!regels}\relax
+% \ifcase\!!countb
+% \!!countb\getvalue{\??mc\OTRSETidentifier\c!regels}\relax
+% \fi
+% \ifcase\!!countb
+% \!!countb \savedcolumnmaxcells\relax
+% \fi
+% % can be an option: absolute versus relative
+% \ifnum\OTRSETbalancemethod=\plusthree
+% \advance\!!countb\precolumnlines
+% \ifnum\!!countb>\localcolumnmaxcells\relax
+% \xdef\localcolumnmaxcells{\the\!!countb}%
+% \fi
+% \advance\!!countb \plusone
+% \dostepwiserecurse\!!countb\columnmaxcells\plusone
+% {\ifvoid\OTRSETgridcell\!!counta\recurselevel
+% \OTRSETsetgridcell\!!counta\recurselevel\copy\placeholderboxe
+% \fi}%
+% \else
+% \globallet\localcolumnmaxcells\columnmaxcells
+% \advance\!!countb-\columnmaxcells
+% \!!countb-\!!countb
+% \advance\!!countb \minusone
+% \ifnum\!!countb>\zerocount
+% \dostepwiserecurse\plusone\!!countb\plusone
+% {\ifvoid\OTRSETgridcell\!!counta\recurselevel
+% \OTRSETsetgridcell\!!counta\recurselevel\copy\placeholderboxe
+% \fi}%
+% \fi
+% \fi}%
+% \OTRSETsetvsize % ! ! !
+% \fi
+% \fi
+% \fi}
+%
+% \def\OTRSETpresetbalancing
+% {\doifvaluesomething{\??mc\OTRSETidentifier\c!regels}%
+% {\getcommacommandsize[\csname\??mc\OTRSETidentifier\c!regels\endcsname]%
+% \ifnum\commalistsize>\plusone
+% \scratchcounter\zerocount
+% \def\docommand##1%
+% {\advance\scratchcounter\plusone
+% \setvalue{\??mc\OTRSETidentifier\the\scratchcounter\c!regels}{##1}}%
+% \processcommacommand
+% [\csname\??mc\OTRSETidentifier\c!regels\endcsname]\docommand
+% \setvalue{\??mc\OTRSETidentifier\c!regels}{0}%
+% \fi}}
+
+% don't loose empty 1page/1column with area (example **)
+%
+% \definecolumntextarea[title][x=1,y=4,nx=2,ny=7,state=start]
+% \setupcolumntextareatext[title][\vtop to 5cm{a\\b\\b\\d}]
+%
+% \starttext
+% \startcolumnset \dorecurse{1}{\input tufte \par} \stopcolumnset
+% \stoptext
+
+% better:
+
+\def\definecolumnsetarea {\definecolumntextarea}
+\def\setupcolumnsetarea {\setupcolumntextarea}
+\def\setupcolumnsetareatext{\setupcolumntextareatext}
+
+% so this will be changed
+
+% \def\OTRSETnobalance
+% {\iflastcolumnfootnotes % testen ! optie
+% % inhibit flush of floats !
+% % todo: nothing if no footnotes, else empty page
+% \dostepwiserecurse\mofcolumns\nofcolumns\plusone
+% {\vskip-\struttotal\verticalstrut\vfill\eject}%
+% \else
+% \ifdim\pagetotal>\zeropoint % no, see example **
+% \ifnum\mofcolumns=\nofcolumns
+% \OTRSETflushfinalfootnotes
+% \else
+% % probably todo
+% \fi
+% \vfill
+% \eject
+% % brr, may result in empty page after nicely fit text
+% % or if left, then lost of first column only text
+% \ifnum\mofcolumns>1
+% \OTRSETdofinalflush
+% \OTRSETdofinaloutput
+% \fi
+% \fi
+% \fi}
+
+\def\OTRSETnobalance
+ {\iflastcolumnfootnotes % testen ! optie
+ % inhibit flush of floats !
+ % todo: nothing if no footnotes, else empty page
+ \dostepwiserecurse\mofcolumns\nofcolumns\plusone
+ {\vskip-\struttotal\verticalstrut\vfill\eject}%
+ \else
+ \ifnum\mofcolumns>\plusone
+ \donetrue
+ \else\ifdim\pagetotal>\zeropoint % too dangerous, we loose data
+ \donetrue
+ \else
+ \donefalse
+ \fi\fi
+ \ifdone
+ \ifnum\mofcolumns=\nofcolumns
+ \OTRSETflushfinalfootnotes
+ \else
+ % probably todo
+ \fi
+ \vfill
+ \eject
+\registerOTRSETmarks
+ % brr, may result in empty page after nicely fit text
+ % or if left, then lost of first column only text
+ \ifnum\mofcolumns>\plusone
+ \OTRSETdofinalflush
+ \OTRSETdofinaloutput
+ \fi
+ \fi
+ \fi}
+
+\def\OTRSETstartnextpage
+ {\doifsomething\OTRSETlist
+ {\getfromcommacommand[\OTRSETlist][1]%
+ \global\let\OTRSETidentifier\commalistelement
+ \doifundefined{\??mc\OTRSETidentifier\c!n}
+ {\globallet\OTRSETidentifier\s!default}%
+ \let\newcommalistelement\empty
+ \doglobal\replaceincommalist\OTRSETlist1%
+ \OTRSETrestart}}
+
+\def\OTRSETrestart % weed
+ {\OTRSETinitializefeatures
+ \OTRSETflushpreposttext
+ \OTRSETinitializecolumns
+ \OTRSETcheckinsert
+ \OTRSETcheckgrid
+ \OTRSETsetvsize
+ \OTRSETsethsize % or local ?
+ \OTRSETsetplaceholders
+ \OTRSEThandlepreposttext
+ \initializecolumntextareas % name !
+ \OTRSETcheckstartcells
+ \OTRSETsetvsize}
+
+% \def\OTRSETcheckstartcells
+% {\dorecurse\nofcolumns
+% {\bgroup
+% \mofcolumns\recurselevel
+% \scratchcounter\currentcolumnstartcell % uses \mofcolumns, returns 1 or more
+% \advance\scratchcounter \minusone
+% \dorecurse\scratchcounter
+% {\OTRSETdoifcellelse\mofcolumns\recurselevel
+% \donothing{\OTRSETsetgridcell\mofcolumns\recurselevel\copy\placeholderboxe}}%
+% \egroup}}
+
+\def\OTRSETcheckstartcells
+ {\dorecurse\nofcolumns
+ {\bgroup
+ \mofcolumns\recurselevel
+\OTRSETsetcorrectnofcells\currentcolumnstartcell
+\advance\scratchcounter \minusone
+ \dorecurse\scratchcounter
+ {\OTRSETdoifcellelse\mofcolumns\recurselevel
+ \donothing{\OTRSETsetgridcell\mofcolumns\recurselevel\copy\placeholderboxe}}%
+ \egroup}}
+
+% \OTRSEToutput
+% {\dontcomplain % new, get rid of overfull message (to be sorted out)
+% \OTRSETnaturalflush
+% %\OTRSETstartnextpage
+% \OTRSETdoflushfloats % actually belongs in \flushsavedfloats (but goes wrong)
+% \OTRSETcheckfreelines
+% \OTRSETchecksidefloat}
+
+\OTRSEToutput
+ {\dontcomplain % new, get rid of overfull message (to be sorted out)
+ \doloop
+ {\OTRSETnaturalflush
+ %\OTRSETstartnextpage % no
+ \OTRSETdoflushfloats % actually belongs in \flushsavedfloats (but goes wrong)
+ \OTRSETcheckfreelines
+ \ifsomefreecolumncells
+ \exitloop
+ \else
+ % flush page and get rid of more floats if present
+ \fi}%
+ \OTRSETchecksidefloat}
+
+\def\OTRSETinitializefeatures
+ {% number of lines
+ % new: raw
+ \getrawnoflines\textheight\xdef\columnmaxcells{\the\noflines}%
+ % direction
+ \doifelsevalue{\??mc\OTRSETidentifier\c!direction}\v!right
+ {\chardef\columndirection\zerocount}
+ {\chardef\columndirection\plusone}%
+ % balancing
+ \chardef\OTRSETbalancemethod\zerocount
+ \processaction
+ [\getvalue{\??mc\OTRSETidentifier\c!balance}]
+ [ \v!yes=>\chardef\OTRSETbalancemethod\plusone,
+ \v!top=>\chardef\OTRSETbalancemethod\plustwo,
+ \v!bottom=>\chardef\OTRSETbalancemethod\plusthree]}
+
+% keep 'm for a while
+%
+% \installoutput\OTRSETflushpreposttext
+% {\global\setbox\precolumnbox\vbox{\unvbox\normalpagebox}%
+% \ifcarryoverfootnotes \else
+% \global\setbox\postcolumnbox\vbox{\placebottomnotes}%
+% \fi}
+%
+% to be tested on 'boekinhoud' in 'pascal/demo-bbi'
+%
+% junk ! ! ! ! !
+%
+%\installoutput\OTRSETflushpreposttext
+% {\global\setbox\precolumnbox\vbox
+% {\unvbox\normalpagebox
+% \strut\vskip-2\lineheight\strut}% we want a proper depth
+% \ifcarryoverfootnotes \else
+% \global\setbox\postcolumnbox\vbox{\placebottomnotes}%
+% \fi}
+%
+% \starttext
+% \definecolumnset[two][n=2]
+% \startcolumnset[two] \dorecurse{4}{\input tufte } \stopcolumnset
+% \input tufte
+% \startcolumnset[two] \input tufte \stopcolumnset
+% \stoptext
+%
+% \installoutput\OTRSETflushpreposttext
+% {\global\setbox\precolumnbox\vbox{\unvbox\normalpagebox}%
+% \global\dp\precolumnbox\strutdepth
+% \ifcarryoverfootnotes \else
+% \global\setbox\postcolumnbox\vbox{\placebottomnotes}%
+% \fi}
+
+% test:
+%
+% \definecolumnset[two] [n=2,balance=yes]
+% \definecolumnset[three][n=3,balance=yes]
+% \setupcolumnset [two] [1] [lines=10]
+% \setupcolumnset [two] [2] [lines=10]
+%
+% \startcolumnset[two] \dorecurse{14}{\input tufte \par} \stopcolumnset
+% \startcolumnset[three] \dorecurse{12}{\input tufte \par} \stopcolumnset
+%
+% with:
+%
+% \installoutput\OTRSETflushpreposttext
+% {%\ifvoid\normalpagebox
+% % \global\setbox\precolumnbox\vbox{}%
+% %\else
+% \global\setbox\precolumnbox\vbox
+% {\unvcopy\normalpagebox}%
+% \global\setbox\precolumnbox\vbox to \ht\precolumnbox
+% {\box\normalpagebox}%
+% %\fi
+% \global\dp\precolumnbox\strutdepth
+% \ifcarryoverfootnotes \else
+% \global\setbox\postcolumnbox\vbox{\placebottomnotes}%
+% \fi}
+
+% testcase : pascal demo-bbi, paragraaf/aanduiding koppen
+
+\ifx\lastskipinotr\undefined \newskip\lastskipinotr \fi
+
+\installoutput\OTRSETflushpreposttext
+ {\global\setbox\precolumnbox\vbox
+ {\unvbox\normalpagebox
+ \global\lastskipinotr\lastskip}%
+ \ifdim\lastskipinotr>\zeropoint
+ \global\setbox\precolumnbox\hbox
+ {\lower\strutdepth\box\precolumnbox}%
+ \fi
+ \global\dp\precolumnbox\strutdepth
+ \ifcarryoverfootnotes \else
+ \global\setbox\postcolumnbox\vbox{\placebottomnotes}%
+ \fi}
+
+\let\precolumnlines \!!zerocount
+\let\postcolumnlines\!!zerocount
+
+% \def\OTRSEThandlepreposttext
+% {\ifdim\ht\precolumnbox>\zeropoint % new
+% \getnoflines{\ht\precolumnbox}%
+% \edef\precolumnlines{\the\noflines}%
+% \doOTRSETsetgridcells
+% {\copy\placeholderboxe}
+% \plusone\plusone\nofcolumns\noflines
+% {\box\precolumnbox}%
+% \else
+% \let\precolumnlines\!!zerocount
+% \fi
+% \ifdim\ht\postcolumnbox>\zeropoint % new, otherwise empty bottom line
+% \getnoflines{\ht\postcolumnbox}%
+% \edef\postcolumnlines{\the\noflines}%
+% \advance\columnfreecells -\noflines
+% \advance\columnfreecells \plusone
+% \doOTRSETsetgridcells
+% {\copy\placeholderboxe}
+% \plusone\columnfreecells\nofcolumns\noflines
+% {\box\postcolumnbox}%
+% \else
+% \let\postcolumnlines\!!zerocount
+% \fi}
+
+\def\OTRSEThandlepreposttext
+ {\ifdim\ht\precolumnbox>\zeropoint % new
+ \getnoflines{\ht\precolumnbox}%
+ \edef\precolumnlines{\the\noflines}%
+ \doOTRSETsetgridcells
+ {\copy\placeholderboxe}
+ \plusone\plusone\nofcolumns\noflines
+ % normal version (single column set)
+ % {\box\precolumnbox}%
+ % compensated for bodyfont change
+ {\hbox
+ {\OTRSETsetcorrectcellht
+ \raise\scratchdimen\box\precolumnbox}}%
+ \else
+ \let\precolumnlines\!!zerocount
+ \fi
+ \ifdim\ht\postcolumnbox>\zeropoint % new, otherwise empty bottom line
+ \getnoflines{\ht\postcolumnbox}%
+ \edef\postcolumnlines{\the\noflines}%
+ \advance\columnfreecells -\noflines
+ \advance\columnfreecells \plusone
+ \doOTRSETsetgridcells
+ {\copy\placeholderboxe}
+ \plusone\columnfreecells\nofcolumns\noflines
+ {\box\postcolumnbox}%
+ \else
+ \let\postcolumnlines\!!zerocount
+ \fi}
+
+\def\OTRSETchecksidefloat
+ {} % {\sidefloatoutput}
+
+\def\OTRSETfinalsidefloatoutput
+ {}
+
+\def\OTRSETcheckgrid
+ {\topskip1\topskip
+ \ifforcecolumngrid
+ \widowpenalty\zerocount
+ \clubpenalty\zerocount
+ \brokenpenalty\zerocount
+ \fi}
+
+\def\OTRSETcheckinsert
+ {\iflastcolumnfootnotes
+ \ifnum\nofcolumns=\mofcolumns
+ \OTRSETforceinserts
+ \else
+ \OTRSETinhibitinserts
+ \fi
+ \else
+ \OTRSETforceinserts
+ \fi}
+
+\def\OTRSETforceinserts
+ {\enablenotes}
+
+\def\OTRSETinhibitinserts
+ {\disablenotes}
+
+% interface to footnotes
+
+\def\OTRSETassignwidths
+ {%\scratchdimen\makeupwidth
+ \freezetextwidth \scratchdimen\textwidth
+ %
+ \scratchcounter\zerocount
+ \dorecurse\nofcolumns
+ {\doifelsevalue{\??mc\OTRSETidentifier\recurselevel\c!width}\v!fit
+ {\advance\scratchcounter \plusone }
+ {\advance\scratchdimen -\getvalue{\??mc\OTRSETidentifier\recurselevel\c!width}}%
+ \advance\scratchdimen -\getvalue{\??mc\OTRSETidentifier\recurselevel\c!distance}}%
+ \ifcase\scratchcounter\else
+ \divide\scratchdimen \scratchcounter
+ \fi
+ \setgvalue{\??mc\??mc\c!width}{0}%
+ \dorecurse\nofcolumns
+ {\doifelsevalue{\??mc\OTRSETidentifier\recurselevel\c!width}\v!fit
+ {\dimen0=\scratchdimen}
+ {\setgvalue{\??mc\??mc\c!width}{1}%
+ \dimen0=\getvalue{\??mc\OTRSETidentifier\recurselevel\c!width}}%
+ \setxvalue{\??mc\recurselevel\??mc\c!width}{\the\dimen0}}}
+
+\def\OTRSETlocalwidth#1%
+ {\getvalue{\??mc\number#1\??mc\c!width}}
+
+\newbox\placeholderboxa
+\newbox\placeholderboxb
+\newbox\placeholderboxc
+\newbox\placeholderboxd
+\newbox\placeholderboxe
+\newbox\placeholderboxf
+
+\def\columnplaceholder#1#2%
+ {\hbox
+ {\setbox\scratchbox\hbox to \hsize
+ {\iftracecolumnset
+ \hskip-.5ex%
+ \startcolor[columnset:#2]\vrule\!!width1ex\!!height.5ex\!!depth.5ex\stopcolor
+ \fi
+ \hss}%
+ \ifcase#1\relax
+ \ht\scratchbox\zeropoint
+ \dp\scratchbox\zeropoint
+ \wd\scratchbox\zeropoint
+ \else
+ \wd\scratchbox\hsize
+ \ht\scratchbox\strutht
+ \dp\scratchbox\strutdp
+ \fi
+ \box\scratchbox}}
+
+\definepalet
+ [columnset]
+ [a=cyan,b=green,c=blue,d=red,e=magenta,f=darkgray]
+
+\def\OTRSETsetplaceholders
+ {\global\setbox\placeholderboxa\columnplaceholder0a%
+ \global\setbox\placeholderboxb\columnplaceholder0b%
+ \global\setbox\placeholderboxc\columnplaceholder0c%
+ \global\setbox\placeholderboxd\columnplaceholder0d%
+ \global\setbox\placeholderboxe\columnplaceholder0e%
+ \global\setbox\placeholderboxf\columnplaceholder1f}
+
+\def\doOTRSETshowstatus
+ {\llap{\tt\tfxx
+ \startcolor[blue](\the\vsize->\number\columnfirstcell\#\number\columnfreecells)\stopcolor
+ \hskip\leftskip}}
+
+\installtextracer{OTRSET} % low level
+
+\def\enabletextracerOTRSET {\tracecolumnsettrue \let\OTRSETshowstatus\doOTRSETshowstatus}
+\def\disabletextracerOTRSET{\tracecolumnsetfalse\let\OTRSETshowstatus\relax}
+
+\disabletextracerOTRSET
+
+% \appendtoks \OTRSETshowstatus \to \everypar
+
+% page contents
+
+\def\OTRSETdopagecontents#1#2% takes two args: \box<n> \unvbox<n>
+ {\vbox to \textheight{\forgetall#1#2}}
+
+\def\OTRSETsomepagefloat {\def\floatmethod{PAGE}\OTRSETsomeslotfloat} % check
+\def\OTRSETsomeherefloat {\def\floatmethod{HERE}\OTRSETsomeslotfloat} % check
+\def\OTRSETsomeelsefloat {\def\floatmethod{HERE}\OTRSETsomeslotfloat} % check
+\def\OTRSETsomefixdfloat {\def\floatmethod{FIXD}\OTRSETsomeslotfloat} % check
+\def\OTRSETsometopfloat {\def\floatmethod{TOPS}\OTRSETsomeslotfloat} % check
+\def\OTRSETsomebottomfloat{\def\floatmethod{BOTS}\OTRSETsomeslotfloat} % check
+
+\def\OTRSETflushfloatbox % nog verder doorvoeren en meer info in marge
+ {\iftestfloatbox\ruledhbox\fi{\box\floatbox}}
+
+\def\OTRSETsomeslotfloat[#1]%
+ {\setbox\floatbox\vbox{\flushfloatbox}%
+ \dp\floatbox\strutdp
+ \@EA\uppercasestring\floatmethod\to\floatmethod
+ \OTRSETstoreincolumnslot\floatmethod\floatbox
+ \doinsertfloatinfo}
+
+% kind of new, looks much like OTRONE, but not entirely
+
+\def\OTRSETdosettopinserts
+ {\bgroup
+ \ifsomefloatwaiting
+ \noffloatinserts\zerocount
+ \let\totaltopinserted\!!zeropoint
+ \OTRSETdodosettopinserts
+ \ifnum\@@bknbottom=\zerocount
+ \ifnum\@@bknlines>\zerocount
+ \ifdim\totaltopinserted>\zeropoint\relax
+ \dimen0\lineheight
+ \dimen0=\@@bknlines\dimen0
+ \advance\dimen0 \totaltopinserted\relax
+ \ifdim\dimen0>\textheight % \vsize %%%%%%%%% \textheight
+ \showmessage\m!floatblocks8{\@@bknlines}%
+ \vfilll\eject
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \egroup}
+
+\def\OTRSETdodosettopinserts
+ {\ifnum\noffloatinserts<\noftopfloats
+ \dogetfloat
+ \ifdim\topinserted=\zeropoint\relax
+ \topofinserttrue
+ \else
+ \topofinsertfalse
+ \fi
+ \setbox\scratchbox\vbox % kan beter !
+ {\forgetall
+ \iftopofinsert
+ \ifdim\OTRSETtopoffset=\zeropoint
+ \moveongrid[\v!top]
+ \fi
+ \else
+ \betweenfloatblanko % inserts can't look back
+ \fi
+ \flushfloatbox
+ \blank[\@@bkspaceafter]}%
+ \global\advance\topinserted \ht\scratchbox\relax
+ \ifdim\topinserted>\vsize % was \textheight\relax
+ \OTRSETresavebox\floatbox
+ \noffloatinserts\noftopfloats\relax
+ \global\advance\topinserted -\ht\scratchbox
+ \let\OTRSETdodosettopinserts\relax % to be tested
+ \else
+ \xdef\totaltopinserted{\the\topinserted}%
+ \insert\topins{\forgetall\box\scratchbox}% interlineskip ?
+ \ifsomefloatwaiting
+ \advance\noffloatinserts \plusone
+ \else
+ \noffloatinserts\noftopfloats\relax
+ \fi
+ \dofloatflushedinfo
+ \fi
+ \else
+ \ifsomefloatwaiting
+ \showmessage\m!floatblocks6{\the\noftopfloats}%
+ \fi
+ \let\OTRSETdodosettopinserts\relax
+ \fi
+ \OTRSETdodosettopinserts}
+
+\def\OTRSETdosetbotinserts
+ {\bgroup
+ \ifsomefloatwaiting
+ \noffloatinserts\zerocount
+ \OTRSETdodosetbotinserts
+ \fi
+ \egroup}
+
+\def\OTRSETdodosetbotinserts
+ {\ifnum\noffloatinserts<\nofbotfloats\relax
+ \dogetfloat
+ \global\advance\botinserted \ht\floatbox\relax
+ \global\advance\botinserted \dp\floatbox\relax
+ \global\advance\botinserted \floattopskip\relax
+ \ifdim\botinserted<\pagegoal\relax
+ \insert\botins
+ {\forgetall
+ \blank[\@@bkspacebefore]%
+ \flushfloatbox}%
+ \ifsomefloatwaiting
+ \advance\noffloatinserts \plusone
+ \else
+ \noffloatinserts\nofbotfloats
+ \fi
+ \dofloatflushedinfo
+ \else
+ \OTRSETresavebox\floatbox
+ \noffloatinserts\nofbotfloats\relax
+ \fi
+ \global\nofloatpermittedtrue % vgl topfloats s!
+ \else
+ \ifsomefloatwaiting
+ \showmessage\m!floatblocks7{\the\nofbotfloats}%
+ \fi
+ \let\OTRSETdodosetbotinserts\relax
+ \fi
+ \OTRSETdodosetbotinserts}
+
+\let\OTRSETdosetbothinserts\relax
+
+\def\OTRSETdotopinsertions
+ {\ifvoid\topins\else
+ \ifvoid\columntopbox\mofcolumns
+ \columnsettopbox\mofcolumns\box\topins
+ \else
+ \columnsettopbox\mofcolumns\vbox % temp, must be better
+ {\forgetall
+ \offinterlineskip
+ \box\columntopbox\mofcolumns
+ \box\topins}
+ \fi
+ \fi
+ \global\topinserted\zeropoint\relax} % goes away
+
+\def\OTRSETdobotinsertions
+ {\ifvoid\botins \else
+ \columnsetbotbox\mofcolumns\box\botins
+% \else
+% \columnsetbotbox\mofcolumns\vbox % temp, must be better
+% {\forgetall
+% \offinterlineskip
+% \box\botins
+% \box\columnbotbox\mofcolumns}
+ \fi
+ \global\botinserted\zeropoint\relax} % goes away
+
+% set ipv text
+
+% left right 1 2 3 +1 +2 +3
+
+\let\columnleftareas \empty
+\let\columnrightareas\empty
+
+% links rechts => odd, even, n, named
+
+\def\definecolumntextarea
+ {\dotripleempty\dodefinecolumntextarea}
+
+\def\dodefinecolumntextarea[#1][#2][#3]% y=0 is mogelijke en handig !
+ {\ifthirdargument
+ \doifinsetelse{#2}{\v!both,\v!fixed}
+ {\definecolumntextarea[#1][\v!left ][\c!type=#2,#3]%
+ \definecolumntextarea[#1][\v!right][\c!type=#2,#3]}
+ {\doifelse{#2}\v!next
+ {\doifoddpageelse
+ {\definecolumntextarea[#1][\v!right][\c!type=#2,#3]}
+ {\definecolumntextarea[#1][\v!left ][\c!type=#2,#3]}}
+ {\presetlocalframed
+ [\??mt#1#2]%
+ \processaction[#2] % \doglobal voorkomt stack build up
+ [ \v!left=>\doglobal\addtocommalist{#1}\columnleftareas,
+ \v!right=>\doglobal\addtocommalist{#1}\columnrightareas]%
+ \getparameters[\??mt#1#2]
+ [\c!x=1,\c!y=1,\c!nx=1,\c!ny=1,\c!clipoffset=2\lineheight,
+ \c!offset=\v!overlay,\c!strut=\v!no,\c!frame=\v!off,
+ \c!type=#2,\c!page=1,\c!state=\v!stop,#3]}}%
+ \else
+ \definecolumntextarea[#1][\v!next][#2]%
+ \fi}
+
+\def\setupcolumntextarea
+ {\dotripleempty\dosetupcolumntextarea}
+
+\def\dosetupcolumntextarea[#1][#2][#3]%
+ {\ifthirdargument
+ \doifelse{#2}\v!both
+ {\setupcolumntextarea[#1][\v!left ][#3]%
+ \setupcolumntextarea[#1][\v!right][#3]}
+ {\doifelse{#2}\v!next
+ {\doifoddpageelse
+ {\setupcolumntextarea[#1][\v!right][#3]}
+ {\setupcolumntextarea[#1][\v!left][#3]}}
+ {\getparameters[\??mt#1#2][#3]}}%
+ \else
+ \setupcolumntextarea[#1][\v!next][#2]%
+ \fi}
+
+\def\docheckcolumnsetareapage#1#2%
+ {\ifnum\getvalue{\??mt#1\c!page}>\plusone
+ \doifelsevalue{\??mt#1\c!type}\v!fixed
+ {\ifnum\columnsetpage=\getvalue{\??mt#1\c!page}\relax
+ \donetrue\else\donefalse
+ \fi}
+ {\ifnum\columnsetpage<\getvalue{\??mt#1\c!page}\relax
+ \donefalse\else\donetrue
+ \fi}%
+ \else
+ \donetrue
+ \fi}
+
+\def\initializecolumntextareas
+ {\ifodd\realpageno
+ \doinitializecolumntextareas\columnrightareas\v!right
+ \else
+ \doinitializecolumntextareas\columnleftareas\v!left
+ \fi}
+
+\def\doinitializecolumntextareas#1#2%
+ {\def\docommand##1%
+ {\docheckcolumnsetareapage{##1#2}\plusone
+ \ifdone
+ \donefalse
+ \processaction
+ [\getvalue{\??mt##1#2\c!state}]
+ [ \v!start=>\donetrue,
+ \v!repeat=>\donetrue,
+ \s!unknown=>\doperformtest\commalistelement\donetrue\donefalse]%
+ \ifdone\dodoinitializecolumntextareas{##1}{#2}\fi
+ \fi}%
+ \processcommacommand[#1]\docommand}
+
+\def\dodoinitializecolumntextareas#1#2%
+ {\doOTRSETsetgridcells
+ {\copy\placeholderboxd}
+ {\getvalue{\??mt#1#2\c!x }}{\getvalue{\??mt#1#2\c!y }}
+ {\getvalue{\??mt#1#2\c!nx}}{\getvalue{\??mt#1#2\c!ny}}
+ {\copy\placeholderboxd}}
+
+\def\placecolumntextareas
+ {\ifodd\realpageno
+ \doplacecolumntextareas\columnrightareas\v!right
+ \else
+ \doplacecolumntextareas\columnleftareas\v!left
+ \fi}
+
+\def\doplacecolumntextareas#1#2% global ?
+ {\bgroup
+ \forgetall
+ \def\docommand##1%
+ {\docheckcolumnsetareapage{##1#2}\zerocount
+ \ifdone
+ \donefalse
+ \processaction
+ [\getvalue{\??mt##1#2\c!state}]
+ [ \v!start=>\donetrue\doglobal\removefromcommalist{##1}#1,
+ \v!repeat=>\donetrue,
+ \s!unknown=>\doperformtest\commalistelement\donetrue\donefalse]%
+ \ifdone
+ \dodoplacecolumntextareas{##1}{#2}%
+ \else
+ \doglobal\removefromcommalist{##1}#1%
+ \fi
+ \fi}%
+ \processcommacommand[#1]\docommand
+ \egroup}
+
+% \page[left]
+% \definecolumntextarea[intro][left][x=1,y=1,nx=4,ny=20,state=start,background=introlayer]
+% \setupcolumntextareatext[intro][left][\setups{intro}]
+% \flushcolumntextareas
+
+\def\flushcolumntextareas
+ {\initializecolumntextareas
+ \setvsize}
+
+\def\columntextlastbackspace{\backspace}
+
+% beware, we have clipping offsets of 2\lineheight by default
+
+\def\columntextareaparameter#1%
+ {\csname\??mt\currentcolumntestarea#1\endcsname}
+
+\def\dodoplacecolumntextareas#1#2%
+ {\def\currentcolumntestarea{#1#2}%
+ \!!counta\columntextareaparameter\c!x
+ \!!countb\columntextareaparameter\c!nx
+ \docalculatecolumnsetspan
+ \!!heighta\columntextareaparameter\c!ny\lineheight
+ % wrong
+ % \ifnum\columntextareaparameter\c!y=\zerocount
+ % \advance\!!heighta -\lineheight
+ % \advance\!!heighta \topskip
+ % \fi
+ % \advance\!!heighta -\lineheight % option
+ \ifnum\columntextareaparameter\c!y=\plusone
+ \advance\!!heighta -\lineheight
+ \advance\!!heighta \topskip
+ \fi
+ %
+ \setbox\scratchbox\vbox
+ {\donetrue\localframed
+ [\??mt\currentcolumntestarea]
+ [\c!location=,% new (*)
+ \c!width=\!!widtha,\c!height=\!!heighta,\c!lines=]
+ {\columntextareaparameter\empty}}%
+ \!!counta\columntextareaparameter\c!x
+ \!!countb\columntextareaparameter\c!y
+ \advance\!!countb \columntextareaparameter\c!ny
+ \advance\!!countb \minusone
+ % new (*)
+ \doif{\columntextareaparameter\c!location}\v!depth
+ {\setbox\scratchbox\hbox{\lower\strutdepth\box\scratchbox}%
+ \dp\scratchbox\zeropoint
+ \ht\scratchbox\!!heighta}%
+ %
+ \setbox0\hbox
+ {\ifcase\!!countc
+ \copy\scratchbox % \box
+ \else
+ \clip
+ [ %\c!topoffset=\columntextareaparameter\c!clipoffset,%
+ %\c!bottomoffset=\columntextareaparameter\c!clipoffset,%
+ %\c!leftoffset=\columntextareaparameter\c!clipoffset,%
+ \c!offset=\columntextareaparameter\c!clipoffset,%
+ \c!rightoffset=\zeropoint,%
+ \c!width=\!!widthb,%
+ \c!height=\!!heighta]%
+ {\copy\scratchbox}%
+ \fi}%
+ \OTRSETsetgridcell\!!counta\!!countb\box0
+ \ifcase\!!countc\else
+ \advance\!!counta \columntextareaparameter\c!nx
+ \advance\!!counta -\!!countc
+ \advance\!!widtha -\!!widthb
+ \setbox0\hbox
+ {\hskip-\namedlayoutparameter\v!odd\c!backspace
+ \clip
+ [ %\c!topoffset=\columntextareaparameter\c!clipoffset,%
+ %\c!bottomoffset=\columntextareaparameter\c!clipoffset,%
+ %\c!rightoffset=\columntextareaparameter\c!clipoffset,%
+ \c!offset=\columntextareaparameter\c!clipoffset,%
+ \c!leftoffset=\zeropoint,%
+ \c!width=\!!widtha,%
+ \c!height=\!!heighta,%
+ \c!hoffset=\!!widthb]%
+ {\copy\scratchbox}}%
+ \OTRSETsetgridcell\!!counta\!!countb\box0%
+ \fi}
+
+\def\setupcolumntextareatext
+ {\dotripleempty\dosetupcolumntextareatext}
+
+\long\def\dosetupcolumntextareatext[#1][#2][#3]%
+ {\ifthirdargument
+ \doifelse{#2}\v!both
+ {\setvalue{\??mt#1\v!left }{#3}%
+ \setvalue{\??mt#1\v!right}{#3}}
+ {\doifelse{#2}\v!next
+ {\doifoddpageelse
+ {\setvalue{\??mt#1\v!right}{#3}}%
+ {\setvalue{\??mt#1\v!left }{#3}}}%
+ {\setvalue{\??mt#1#2}{#3}}}%
+ \else
+ \setupcolumntextareatext[#1][\v!next][{#2}]%
+ \fi}
+
+\def\docalculatecolumnsetspan
+ {% \!!counta <= x
+ % \!!countb <= nx
+ % \!!widtha => total width
+ % \!!widthb => left width
+ % \!!countc => left cols
+ \!!widtha\!!countb\textwidth % we assume equal widths
+ \advance\!!countb \!!counta
+ \advance\!!countb \minusone
+ \ifnum\!!countb>\nofcolumns
+ \!!countc\!!countb
+ \advance\!!countc -\nofcolumns
+ \!!countb\nofcolumns
+ \else
+ \!!countc\zerocount
+ \fi
+ \advance\!!counta \plusone
+ \dostepwiserecurse\!!counta\!!countb\plusone
+ {\advance\!!widtha\OTRSETgetparameter\c!distance\recurselevel}%
+ \!!widthb\!!widtha
+ \advance\!!widthb -\!!countc\textwidth
+ \ifodd\realpageno \else % tricky, assumes that we keep there
+ \ifcase\!!countc\else
+ % nog niet ok voor enkel/doublesided
+ \advance\!!widtha \namedlayoutparameter\v!even\c!backspace
+ \advance\!!widtha \namedlayoutparameter\v!odd \c!backspace
+ \advance\!!widthb \namedlayoutparameter\v!even\c!backspace
+ \dorecurse\!!countc
+ {\advance\!!widtha\OTRSETgetparameter\c!distance\recurselevel}%
+ \fi
+ \fi}
+
+\def\columnsetspanhsize{\textwidth}
+
+\def\setcolumnsetspanhsize#1#2% x nx / uses counta/b
+ {\!!counta#1\!!countb#2\docalculatecolumnsetspan
+ \edef\columnsetspanhsize{\the\!!widtha}}
+
+\def\definecolumnsetspan
+ {\dodoubleempty\dodefinecolumnsetspan}
+
+\def\dodefinecolumnsetspan[#1][#2]%
+ {%\ifsecondargument
+ \defineframedtext
+ [cs:#1]
+ [\c!frame=\v!off,
+ \c!before=,
+ \c!after=,
+ \c!offset=\v!overlay,
+ \c!location=\v!left,
+ \c!linecorrection=\v!off,
+ \c!depthcorrection=\v!off,
+ \c!n=2,
+ \c!nlines=0,
+ \c!indenting=,
+ \c!indentnext=\v!yes,
+ \c!default=HERE,
+ \c!alternative=\v!a,
+ #2]%
+ %\else
+ % \definecolumnspan[][#1]%
+ }%\fi}
+
+\definecolumnsetspan[\s!default]
+
+\def\setupcolumnsetspan
+ {\dodoubleempty\dosetupcolumnsetspan}
+
+\def\dosetupcolumnsetspan[#1][#2]%
+ {\ifsecondargument
+ \setupframedtexts[cs:#1][#2]%
+ \else
+ \setupcolumnsetspan[\s!default][#1]%
+ \fi}
+
+\def\startcolumnsetspan
+ {\dotripleempty\dostartcolumnsetspan}
+
+%%%%%%%%%%%%%%%% TODO
+
+\def\dostartcolumnsetspan[#1][#2][#3]% [#3] gobbles space
+ {\endgraf % else rubish output if forgotten
+ \vskip \zeropoint % make sure otr is done, otherwise last line problems
+ \bgroup
+ \forgetall
+ \ifnum\columnsetlevel>\zerocount\else
+ % of course we needed a one-column fall back for tm
+ \columnsetspanhsize\hsize
+ \nofcolumns\plusone
+ \mofcolumns\plusone
+ \fi
+ \setupframedtexts[cs:#1]
+ [\c!width=\columnsetspanhsize,
+ \c!linecorrection=\v!off,
+ \c!depthcorrection=\v!off,
+ #2]%
+ % determine widths
+ \!!countc\framedtextparameter{cs:#1}\c!n
+ % \!!countd\numexpr(\nofcolumns-\mofcolumns+\plusone)%
+ \!!countd\nofcolumns
+ % n <= n of columns
+ \ifnum\!!countc>\!!countd \!!countc\!!countd \fi
+ \advance\!!countd -\mofcolumns
+ \advance\!!countd \plusone
+ % n <= n of available columns (alternative a)
+ \doif{\framedtextparameter{cs:#1}\c!alternative}\v!a
+ {\ifnum\!!countc>\!!countd \!!countc\!!countd \fi}%
+ % here it all starts
+ \setcolumnsetspanhsize\mofcolumns\!!countc % a/b used
+ \hsize\columnsetspanhsize
+ \setbox\scratchbox\vbox\bgroup
+ \dostartframedtext[cs:#1][\v!none]% geen nils placement
+ % spoils spacing : \vskip-\struttotal\par\verticalstrut\par
+ \ifnum\columnsetlevel>\zerocount
+ \framedtextparameter{cs:#1}\c!before
+ \fi
+ \def\stopcolumnsetspan{\dostopcolumnsetspan{#1}}}
+
+\def\dostopcolumnsetspan#1%
+ {\par
+ \verticalstrut
+ \kern-2\struttotal
+ \verticalstrut
+ \ifnum\columnsetlevel>\zerocount
+ \doifsomething{\framedtextparameter{cs:#1}\c!after}
+ {\framedtextparameter{cs:#1}\c!after
+ \kern\zeropoint}% otherwise blanks disappear, better be a switch
+ \else
+ \endgraf
+ \fi
+ \dostopframedtext
+ \egroup
+ \setbox\scratchbox\frozenhbox to \hsize
+ {\dontcomplain
+ \alignedline{\framedtextparameter{cs:#1}\c!location}\v!middle
+ {\lower\strutdepth\box\scratchbox}}%
+ \dp\scratchbox\zeropoint % else wrong snap insidefloat
+%
+% to be tested first (strange in grid mode)
+%
+% \setbox\scratchbox\frozenhbox to \hsize
+% {\dontcomplain
+% \chardef\alignstrutmode\zerocount
+% \alignedline{\framedtextparameter{cs:#1}\c!plaats}\v!midden
+% {\box\scratchbox}}%
+%
+ \ifinsidefloat
+ \box\scratchbox
+ \else\ifnum\columnsetlevel>\zerocount
+ % we only set \columnsetspacing when asked for, else bottom problems
+ % don't change this any more (test naw)
+ \chardef\columnslotspacing\framedtextparameter{cs:#1}\c!nlines\relax
+ % todo: nboven/onder & \chardef\columnslotlocation2
+ %\OTRSETstoreincolumnslotHERE\scratchbox
+ \edef\floatmethod{\framedtextparameter{cs:#1}\c!default}%
+ \@EA\uppercasestring\floatmethod\to\floatmethod
+ % todo : \v!here -> here enzovoorts
+ \OTRSETstoreincolumnslot\floatmethod\scratchbox
+ % watch out: no \dochecknextindentation{tag}
+ \checknextindentation[\framedtextparameter{cs:#1}\c!indentnext]%
+ \else
+ % of course we needed a one-column fall back for tm; brrr, the box has now too
+ % much height (try \ruledvbox); don't change this without testing techniek
+ \scratchdimen\ht\scratchbox
+ \advance\scratchdimen-\strutdp
+ \ht\scratchbox\scratchdimen
+ \framedtextparameter{cs:#1}\c!before
+ \snaptogrid\vbox{\box\scratchbox}%
+ \framedtextparameter{cs:#1}\c!after
+ \fi\fi
+ \egroup
+ \endgraf}
+
+% \startcolumnset[two]
+% \input tufte
+% \startcolumnsetspan[two][width=20cm,location=middle] \input tufte \stopcolumnsetspan
+% \startcolumnsetspan[two][default=btlr] \input tufte \stopcolumnsetspan
+% \input tufte \par
+% \input tufte \par
+% \startcolumnsetspan[two] \emptylines[5] \stopcolumnsetspan
+% \startcolumnsetspan[two] \input tufte \stopcolumnsetspan
+% \stopcolumnset
+
+% We need to set the \dimen globally since we are in the
+% OTR. Unfortunately this interferes with local settings,
+% although we may assume that they will not cross page
+% boundaries.
+
+\def\OTRSETcheckcontent
+ {\bgroup
+ \donefalse
+ \def\OTRSETcheckcontent##1%
+ {\setbox\scratchbox##1\recurselevel
+ \setbox\scratchbox\vbox{\unvbox\scratchbox}%
+ \ifdim\ht\scratchbox>\zeropoint\donetrue\fi}%
+ \dorecurse{\nofcolumns}
+ {\OTRSETcheckcontent\columngettextbox
+ \OTRSETcheckcontent\columngetfootbox
+ \OTRSETcheckcontent\columngettopbox
+ \OTRSETcheckcontent\columngetbotbox}%
+ \ifdone\egroup\donefalse\else\egroup\donetrue\fi}
+
+\def\OTRSETgetcolumntextheight#1% max - boven - top
+ {\scratchdimen=\OTRSETgetparameter\c!maxhoogte#1%
+ \advance\scratchdimen -\OTRSETgetparameter\c!bovenoffset#1%
+ \advance\scratchdimen -\ht\columntopbox#1%
+ \advance\scratchdimen -\getvalue{\??mc\number\mofcolumns-f}%
+ \advance\scratchdimen -\ht\columnbotbox#1} % not used
+
+\def\OTRSETgetcolumnnaturalheight#1% max - boven - top
+ {\setbox\scratchbox\vbox{\unvcopy\columntextbox#1}%
+ \scratchdimen\ht\scratchbox
+ \advance\scratchdimen \OTRSETgetparameter\c!bovenoffset#1%
+ \advance\scratchdimen \ht\columntopbox#1%
+ \advance\scratchdimen -\getvalue{\??mc\number\mofcolumns-f}%
+ \advance\scratchdimen \ht\columnbotbox#1} % not used
+
+\def\OTRSETdobalance% splitten in met en zonder footnotes
+ {\bgroup
+ \maxdeadcycles=1000
+ % collect content and notes
+ \bgroup
+ \OTRSEToutput
+ {\global\setbox1\vbox{\unvbox\normalpagebox}%
+ \global\setbox3\vbox{\unvbox\footins}}%
+ \verticalstrut\vskip-\struttotal % makes footnotes flush
+ \eject
+ \global\collectingcontentfalse
+ % check for footnotes only
+ \ifdim\ht1<\topskip % real dirty
+ \global\setbox1=\vbox{}
+ % fix height of first line
+ \ifdim\ht3>\!!zeropoint
+ \global\setbox3\vbox
+ {\setfootnotebodyfont
+ \kern-\strutht
+ \kern\topskip
+ \unvbox3}
+ \fi
+ % prepare trial box
+ \global\setbox5\vbox
+ {\ifdim\ht1>\zeropoint
+ \unvcopy1 \ifdim\ht3>\zeropoint \kern\skip\footins \fi
+ \fi
+ \ifdim\ht3>\zeropoint \unvcopy3 \fi}
+ \egroup
+ % erase old stuff
+ \columnerasetextboxes
+ \columnerasefootboxes
+ % prepare floats
+ \OTRSETdotopinsertions
+ \OTRSETdobotinsertions % not used can be removed
+ % calculate available space
+ \!!heighta\zeropoint % available total height
+ \dorecurse{\nofcolumns}
+ {\OTRSETgetcolumntextheight\recurselevel
+ \OTRSETcalculatelines\scratchdimen
+ \advance\!!heighta \scratchdimen}
+ % quick check
+ \ifdim\ht5>\!!heighta
+ % use normal routine
+ \columnerasetextboxes
+ \columnerasefootboxes
+ % TEMP, TODO, FORCE NEXT PASS !
+ \unvbox1
+ \unvbox3
+ \doglobal\addtocommalist{-\realfolio}\OTRSETbalancinglist
+ \donefalse
+ %\writestatus\m!columns{no balancing, text overflows height}%
+ \else\ifdim\ht5>\zeropoint \relax
+ % some text and/or notes
+ \donetrue
+ \else
+ \donefalse
+ \dorecurse\nofcolumns
+ {\ifdim\ht\columntopbox\recurselevel>\zeropoint \donetrue \fi}%
+ \ifdone
+ % no text and notes, but figures
+ \else
+ % no text, no notes, no figures
+ \doglobal\addtocommalist{-\realfolio}\OTRSETbalancinglist
+ \writestatus\m!columns{no balancing, nothing to be placed}%
+ \fi
+ \fi\fi
+ \ifdone
+ \ifdim\ht5>\zeropoint \relax
+ % balancing text and notes
+ %\writestatus\m!columns{text may fit, balancing}%
+ \newcounter\loopcounter
+ \newcounter\balancinglines
+ \doloop
+ {\increment\loopcounter\relax
+ % initialize
+ \columnerasetextboxes
+ \columnerasefootboxes
+ \setbox0=\copy5
+ \splittopskip\topskip
+ % pre-split loop and quality calculation
+ %\writestatus\m!columns{pass \loopcounter: correction -\balancinglines}
+ \dorecurse\nofcolumns
+ {\OTRSETgetcolumntextheight\recurselevel
+ \OTRSETcalculatelines\scratchdimen
+ \!!heightc\scratchdimen
+ \ifnum\recurselevel<\nofcolumns
+ \advance\!!heightc -\balancinglines\lineheight
+ \fi
+ \columnsettextbox\recurselevel\vsplit0 to \!!heightc}
+ % just one method
+ \OTRSETgetcolumnnaturalheight1 \dimen4\scratchdimen
+ \OTRSETgetcolumnnaturalheight\nofcolumns \dimen6\scratchdimen
+ %\writestatus\m!columns{first column: \the\dimen4}%
+ %\writestatus\m!columns{last column: \the\dimen6}%
+ \ifdim\dimen4=\dimen6
+ \donetrue % perfect balance
+ \else\ifdim\dimen4>\dimen6
+ \donefalse % not yet good enough
+ \increment\balancinglines % try again
+ \edef\balancingcount{\the\!!counta}
+ \else
+ \donetrue % worse balance
+ \ifnum\balancinglines>0 % take previous
+ \decrement\balancinglines
+ \fi
+ \fi\fi
+ % extra check
+ % \ifdim\ht0>\zeropoint\relax \donefalse \fi
+ % another check
+ \ifdone
+ %\writestatus\m!columns{balancing finished in pass \loopcounter}%
+ \else \ifnum\loopcounter>100 \donetrue
+ %\writestatus\m!columns{balancing aborted after pass \loopcounter}%
+ \else
+ %\writestatus\m!columns{balancing continued after pass \loopcounter}%
+ \fi \fi
+ % final balancing pass
+ \ifdone
+ \setbox0\copy1
+ \setbox2\copy3
+ \columnerasetextboxes
+ \columnerasefootboxes
+ \dorecurse\nofcolumns
+ {\OTRSETgetcolumntextheight\recurselevel
+ \OTRSETcalculatelines\scratchdimen
+ \!!heightc\scratchdimen
+ \ifnum\recurselevel<\nofcolumns
+ \advance\!!heightc -\balancinglines\lineheight
+ \fi
+ % split off text
+ \ifdim\ht0>\zeropoint
+ \columnsettextbox\recurselevel\vsplit0 to \!!heightc
+ \setbox4\vbox{\unvcopy\columntextbox\recurselevel}
+ \advance\!!heightc -\ht4
+ \ifdim\ht0>\zeropoint
+ \columnsettextbox\recurselevel\box4
+ \advance\!!heightc \skip\footins
+ \fi
+ \fi
+ % split off footnotes
+ \ifdim\ht0>\zeropoint\relax \else
+ \ifdim\ht2>\zeropoint\relax
+ \setbox4\vsplit2 to \!!heightc
+ \setbox\footins=\vbox{\unvbox4} % ugly and dirty trick
+ \ifdim\ht\columntextbox\recurselevel=\zeropoint\relax
+ \columnsettextbox\recurselevel\hbox
+ {\raise\strutdp\hbox % ugly but needed
+ {\setfootnotebodyfont % both these moves
+ \lower\strutdp\hbox{\placebottomnotes}}}
+ \else
+ \columnsetfootbox\recurselevel\hbox{\placebottomnotes}
+ \fi
+ \fi
+ \fi}
+ \exitloop
+ \fi}
+ \else
+ % no reason to balance floats
+ \fi
+ \fi
+ \doglobal\addtocommalist{\realfolio}\OTRSETbalancinglist
+ \OTRSETdoflush
+ \fi
+ \egroup}
+
+\protect \endinput
+
+% extreme examples (1)
+%
+% \setupfloats[numbering=nocheck]
+%
+% \definecolumnset [first] [n=2,start=0]
+% \definecolumnset [next] [n=2,start=3]
+%
+% \setuptexttexts[\vbox to \textheight{\topskipcorrection \hsize\makeupwidth left \hfill right\vfill}]
+%
+% \setuphead[chapter][text=empty]
+%
+% \starttext
+%
+% \startcolumnset[first,next]
+% \placefigure[btrl]{}{}
+% \placefigure[tblr]{}{}
+% \chapter{thuan} \dorecurse{25}{\recurselevel: \input thuan \endgraf}
+% \stopcolumnset
+%
+% \startcolumnset[first,next]
+% \chapter{thuan} \dorecurse{25}{\input thuan \endgraf\placefigure{}{}}
+% \stopcolumnset
+
+\unprotect
+
+% only in columnsets
+
+% \def\cornerfigure
+% {\dotripleempty\docornerfigure}
+%
+% \def\docornerfigure[#1][#2][#3]% [layer] [location] [settings]
+% {\bgroup
+% \dowithnextbox
+% {\!!doneafalse
+% \!!donebfalse
+% \processallactionsinset
+% [\v!left,\v!bottom,#2]
+% [ \v!left=>\!!doneatrue ,
+% \v!right=>\!!doneafalse,
+% \v!top=>\!!donebtrue ,
+% \v!bottom=>\!!donebfalse]%
+% \!!widtha\nextboxwd
+% \if!!donea
+% % unchecked
+% \advance\!!widtha-\backspace
+% \else
+% % unchecked
+% \advance\!!widtha-\backspace
+% \fi
+% \!!widtha\textwidth % could be an option
+% \!!heighta\nextboxht
+% % zou een macro moeten zijn \getnoflayoutlines
+% \ifnum\layoutparameter\c!lines=\zerocount
+% \getnoflines\textheight
+% \else
+% \noflines\layoutparameter\c!lines
+% \fi
+% %
+% \advance\noflines \plusone % wordt default, instelbaar
+% \!!heightb\noflines\lineheight\relax
+% \if!!doneb % boven
+% % unchecked
+% \advance\!!heighta-\topspace
+% \advance\!!heighta-\headerheight
+% \advance\!!heighta-\headerdistance
+% \else % onder
+% % checked
+% \advance\!!heighta-\paperheight
+% \advance\!!heighta+\!!heightb
+% \advance\!!heighta+\topspace
+% \advance\!!heighta+\headerheight
+% \advance\!!heighta+\headerdistance
+% \advance\!!heighta-\footerdistance
+% \advance\!!heighta-\footerheight
+% \fi
+% \getnoflines\!!heighta
+% \!!heighta\noflines\lineheight\relax
+% \def\docornerfigure[####1]%
+% {\expanded{\plaatsfiguur[####1,\v!none]{}
+% {\noexpand\phantombox[\c!width=\the\!!widtha,\c!height=\the\!!heighta]}}}%
+% \if!!donea
+% \if!!doneb % links boven / rb
+% \setlayer[#1]
+% [\c!corner={\v!left,\v!top},\c!location=rb,#3]
+% {\flushnextbox}%
+% \docornerfigure[tblr]%
+% \else % links onder / rt
+% \setlayer[#1]
+% [\c!corner={\v!left,\v!bottom},\c!location=rt,#3]
+% {\flushnextbox}%
+% \docornerfigure[btlr]%
+% \fi
+% \else
+% \if!!doneb % rechts boven / lt
+% \setlayer[#1]
+% [\c!corner={\v!right,\v!top},\c!location=lb,#3]
+% {\flushnextbox}%
+% \docornerfigure[tbrl]%
+% \else % rechts onder / lb
+% \setlayer[#1]
+% [\c!corner={\v!right,\v!bottom},\c!location=lt,#3]
+% {\flushnextbox}%
+% \docornerfigure[btrl]%
+% \fi
+% \fi
+% \egroup}
+% \vbox}
diff --git a/Master/texmf-dist/tex/context/base/page-sid.tex b/Master/texmf-dist/tex/context/base/page-sid.mkii
index 02c4261fb59..0848c9d8c4d 100644
--- a/Master/texmf-dist/tex/context/base/page-sid.tex
+++ b/Master/texmf-dist/tex/context/base/page-sid.mkii
@@ -1,7 +1,7 @@
%D \module
%D [ file=page-sid,
%D version=2000.10.20,
-%D title=\CONTEXT\ OTR Macros,
+%D title=\CONTEXT\ Page Macros,
%D subtitle=Side Floats,
%D author=Hans Hagen,
%D date=\currentdate,
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context OTR Macros / Side Floats}
+\writestatus{loading}{ConTeXt Page Macros / Side Floats}
\unprotect
@@ -453,7 +453,7 @@
\ifdim\wd\floatbottom<\sidefloathsize
\parskip\zeropoint
%\noindent
- \vadjust{\penalty\minusone}%
+ \ifinner\else\vadjust{\penalty\minusone}\fi
\iffloatlefteqo
\global\floatlefteqofalse
\else
@@ -488,7 +488,7 @@
\parskip\zeropoint % here ?
\ifdim\sidefloatwidth>\zeropoint % new, see prikkels
\noindent
- \vadjust{\penalty\minusone}%
+ \ifinner\else\vadjust{\penalty\minusone}\fi
\hskip\sidefloatwidth
%\else
% we have a margin or edge float
diff --git a/Master/texmf-dist/tex/context/base/page-sid.mkiv b/Master/texmf-dist/tex/context/base/page-sid.mkiv
new file mode 100644
index 00000000000..ecfa195e688
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/page-sid.mkiv
@@ -0,0 +1,832 @@
+%D \module
+%D [ file=page-sid,
+%D version=2000.10.20,
+%D title=\CONTEXT\ Page Macros,
+%D subtitle=Side Floats,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Page Macros / Side Floats}
+
+\unprotect
+
+% problem: when too small, side effects; we need to determine the
+% shift earlier so that we can act when shift < size
+%
+% \definefloat[edgefigure]
+% \setupfloat
+% [edgefigure]
+% [rightmargindistance=-\rightmargintotal,
+% leftmargindistance=-\rightmargintotal,
+% default=outer]
+% \starttext
+% \placeedgefigure{}{\framed[width=12cm]{}} \input tufte
+% \placeedgefigure{}{\framed[width=5cm]{}} \input tufte
+% \placeedgefigure{}{\framed[width=4cm]{}} \input tufte
+% \placeedgefigure{}{\framed[width=2cm]{}} \input tufte
+% \stoptext
+
+% todo: dimexpr an dnumexpr
+
+% These macro deal with side floats. We started with Daniel
+% Comenetz macros as published in TUGBoat Volume 14 (1993),
+% No.\ 1: Anchored Figures at Either Margin. I extended and
+% patched the macros to suite our needs which results in a
+% messy module. Therefore, this module badly needs an update
+% because it's now a mixture of old and new macros.
+
+% afhankelijke variabelen
+%
+% \overgap vervangen door \floatsidetopskip
+% \sidegap vervangen door \floatsideskip
+% \undergap vervangen door \floatsidebottomskip
+%
+% \prskp vervangen door \ctxparskip
+
+% toegevoegde macro's/aanroepen
+%
+% \logsidefloat : loginformatie
+% \flushsidefloats : nodig voor koppen
+
+% recente wijzigingen:
+%
+% namen aangepast: \float... enz. i.p.v. \pic
+
+% Pas op: \EveryPar{\EveryPar{}\margetitel{whatever}}
+% \plaatsfiguur[links]{}{} moet goed gaan. In dat geval
+% begint de tekst terecht wat lager.
+
+\newdimen\sidefloatheight % includes the topskip
+\newdimen\sidefloatwidth
+\newdimen\sidefloathsize
+\newdimen\sidefloatshift
+\newdimen\sidefloatextrashift
+\newdimen\sidefloatvsize \def\nofloatvsize{-1pt }
+\newdimen\sidefloatprogress
+\newdimen\sidefloatpagetotal
+
+\newbox\floatbottom
+
+\newcount\sidefloatsidelines
+\newcount\sidefloatlinesdone
+
+% 1 = backspace
+% 2 = leftedge
+% 3 = leftmargin
+% 4 = leftside
+% 5 = rightside
+% 6 = rightmargin
+% 7 = rightedge
+% 8 = cutspace
+
+\chardef\sidefloattype\zerocount
+
+\def\backspacefloat {\global\chardef\sidefloattype1 \putsidefloat}
+\def\leftedgefloat {\global\chardef\sidefloattype2 \putsidefloat}
+\def\leftmarginfloat {\global\chardef\sidefloattype3 \putsidefloat}
+\def\leftfloat {\global\chardef\sidefloattype4 \putsidefloat}
+\def\rightfloat {\global\chardef\sidefloattype5 \putsidefloat}
+\def\rightmarginfloat {\global\chardef\sidefloattype6 \putsidefloat}
+\def\rightedgefloat {\global\chardef\sidefloattype7 \putsidefloat}
+\def\cutspacefloat {\global\chardef\sidefloattype8 \putsidefloat}
+
+\let\marginfloat \cutspacefloat
+
+\newif\ifroomforfloat
+\newif\iffloatshort
+\newif\iffloatflag
+\newif\iffloatrighteqo
+\newif\iffloatlefteqo
+
+\newdimen\sidefloatleftskip
+\newdimen\sidefloatrightskip
+\newdimen\sidefloatmaximum
+
+\def\checksidefloatshift
+ {\ifdim\sidefloatmaximum>\zeropoint
+ \ifcase\sidefloattype
+ % invalid
+ \or
+ % backspace
+ \or
+ \global\sidefloatshift\dimexpr
+ -\sidefloatmaximum
+ -\rightorleftpageaction \leftedgedistance \rightedgedistance
+ -\rightorleftpageaction \leftmarginwidth \rightmarginwidth
+ -\rightorleftpageaction \leftmargindistance \rightmargindistance
+ -\compensatedinnermakeupmargin
+ \relax
+ \or
+ \global\sidefloatshift\dimexpr
+ -\sidefloatmaximum
+ -\rightorleftpageaction \leftmargindistance \rightmargindistance
+ -\compensatedinnermakeupmargin
+ \relax
+ \or
+ % left
+ \or
+ % right
+ \or
+ \global\sidefloatshift\dimexpr
+ -\sidefloatmaximum
+ -\rightorleftpageaction \leftmargindistance \rightmargindistance
+ -\compensatedinnermakeupmargin
+ \relax
+ \or
+ \global\sidefloatshift\dimexpr
+ -\sidefloatmaximum
+ -\rightorleftpageaction \leftedgedistance \rightedgedistance
+ -\rightorleftpageaction \leftmarginwidth \rightmarginwidth
+ -\rightorleftpageaction \leftmargindistance \rightmargindistance
+ -\compensatedinnermakeupmargin
+ \relax
+ \or
+ % cutspace
+ \fi
+ \fi}
+
+% \def\setsidefloatskips
+% {\global\sidefloatrightskip\zeropoint
+% \global\sidefloatleftskip \zeropoint
+% \ifcase\sidefloattype
+% \or % backspace
+% \global \sidefloatleftskip \rightorleftpageaction \backspace \cutspace
+% \or % leftedge
+% \global \sidefloatleftskip \rightorleftpageaction \leftmargindistance\rightmargindistance
+% \global\advance\sidefloatleftskip \rightorleftpageaction \leftmarginwidth\rightmarginwidth
+% \global\advance\sidefloatleftskip \rightorleftpageaction \leftedgedistance\rightedgedistance
+% \or % leftmargin
+% \global \sidefloatleftskip \rightorleftpageaction \leftmargindistance\rightmargindistance
+% \or % leftside
+% \or % rightside
+% \or % rightmargin
+% \global \sidefloatrightskip\rightorleftpageaction \rightmargindistance\leftmargindistance
+% \or % rightedge
+% \global \sidefloatrightskip\rightorleftpageaction \rightmargindistance\leftmargindistance
+% \global\advance\sidefloatrightskip\rightorleftpageaction \rightmarginwidth\leftmarginwidth
+% \global\advance\sidefloatrightskip\rightorleftpageaction \rightedgedistance\leftedgedistance
+% \or % cutspace
+% \global \sidefloatrightskip\rightorleftpageaction \cutspace\backspace
+% \fi
+% \ifdim\sidefloatrightskip>\zeropoint
+% \doglobal\advance\sidefloatrightskip\rightskip
+% \fi
+% \ifdim\sidefloatleftskip>\zeropoint
+% \doglobal\advance\sidefloatleftskip\leftskip
+% \fi}
+
+
+% use \outermarginwidth etc here
+
+\def\setsidefloatskips
+ {\global\sidefloatrightskip\zeropoint
+ \global\sidefloatleftskip \zeropoint
+ \ifcase\sidefloattype
+ \or % backspace
+ \global\sidefloatleftskip\dimexpr
+ +\rightorleftpageaction \backspace \cutspace
+ +\compensatedinnermakeupmargin
+ \relax
+ \or % leftedge
+ \global\sidefloatleftskip\dimexpr
+ +\rightorleftpageaction \leftmargindistance \rightmargindistance
+ +\rightorleftpageaction \leftmarginwidth \rightmarginwidth
+ +\rightorleftpageaction \leftedgedistance \rightedgedistance
+ +\compensatedinnermakeupmargin
+ \relax
+ \or % leftmargin
+ \global\sidefloatleftskip\dimexpr
+ +\rightorleftpageaction \leftmargindistance \rightmargindistance
+ +\compensatedinnermakeupmargin
+ \relax
+ \or % leftside
+ \or % rightside
+ \or % rightmargin
+ \global\sidefloatrightskip\dimexpr
+ +\rightorleftpageaction \rightmargindistance \leftmargindistance
+ +\compensatedinnermakeupmargin
+ \relax
+ \or % rightedge
+ \global\sidefloatrightskip\dimexpr
+ +\rightorleftpageaction \rightmargindistance \leftmargindistance
+ +\rightorleftpageaction \rightmarginwidth \leftmarginwidth
+ +\rightorleftpageaction \rightedgedistance \leftedgedistance
+ +\compensatedinnermakeupmargin
+ \relax
+ \or % cutspace
+ \global\sidefloatrightskip\dimexpr
+ +\rightorleftpageaction \cutspace \backspace
+ +\compensatedinnermakeupmargin
+ \relax
+ \fi
+ \ifdim\sidefloatrightskip>\zeropoint \doglobal\advance\sidefloatrightskip\rightskip \fi
+ \ifdim\sidefloatleftskip >\zeropoint \doglobal\advance\sidefloatleftskip \leftskip \fi}
+
+% eq is still crap
+
+\ifx\normalleqno\undefined
+
+ \let\floatrighteqo=\eqno
+ \let\floatleftleqo=\leqno
+
+\else
+
+ \let\floatrighteqo=\normaleqno
+ \let\floatleftleqo=\normalleqno
+
+\fi
+
+% Watch it even more! In inner, gaat't mis omdat daar
+% pagetotal enz niet zijn aangepast. Inner kan overigens niet
+% betrouwbaar worden getest!
+
+\newif\iftracesidefloats
+
+\def\flushsidefloats
+ {\par
+ \!!heighta\sidefloatvsize
+ \advance\!!heighta -\pagetotal
+ \ifnum\!!heighta>\zeropoint
+ \global\advance\sidefloatvsize -\sidefloatbottomskip
+ \ifdim\!!heighta>\zeropoint
+ \bgroup
+ \let\flushsidefloats\relax
+ \forgetall
+ \doloop
+ {\strut
+ \iftracesidefloats
+ \color[darkgray]%
+ {\baselinerulefalse
+ \boxrulewidth.5\points
+ \ruledhbox{\strut\kern\sidefloatwidth}}%
+ \fi
+ \par
+ \!!heighta\sidefloatvsize
+ \advance\!!heighta -\pagetotal
+ \ifdim\!!heighta>\zeropoint
+ \ifnum\recurselevel>\plushundred
+ \exitloop
+ \fi
+ \else
+ \exitloop
+ \fi}%
+ \egroup
+ \ifdim\parskip>\zeropoint
+ \ifdim\sidefloatbottomskip>\parskip
+ \nowhitespace
+ \vskip\sidefloatbottomskip
+ \fi
+ \fi
+ \else\ifdim\sidefloatbottomskip>\parskip
+ \vskip\sidefloatbottomskip
+ \fi\fi
+ \fi
+ % not entirely the same as \forgetsidefloats
+ \global\sidefloatvsize\nofloatvsize
+ % \global\sidefloatsidelines\zerocount % no, we flush before a side float
+ \global\floatshortfalse % so this will get lost
+ % also here if used at all \global\holdinginserts\zerocount
+ \global\floatflagfalse}
+
+\def\dochecksidefloatafterpar
+ {\dochecksidefloat
+ \ifdim\oldpagetotal=\pagetotal \else
+ \global\let\checksidefloat\dochecksidefloat
+ \flushsidefloats
+ \global\sidefloatsidelines\zerocount % here !
+ \fi}
+
+\def\flushsidefloatsafterpar
+ {\xdef\oldpagetotal{\the\pagetotal}%
+ \global\let\checksidefloat\dochecksidefloatafterpar}
+
+\def\forgetsidefloats
+ {\global\sidefloatvsize\nofloatvsize
+ \global\sidefloatsidelines\zerocount
+ % also here if used at all \global\holdinginserts\zerocount
+ \global\floatshortfalse
+ \global\floatflagfalse}
+
+\let\logsidefloat=\relax
+
+\def\pushpenalties % needed ? and right
+ {\widowpenalty\plusone
+ \clubpenalty\plustwo
+ \brokenpenalty\plusone
+ \let\pushpenalties\relax
+ \edef\poppenalties
+ {\widowpenalty \the\widowpenalty
+ \clubpenalty \the\clubpenalty
+ \brokenpenalty\the\brokenpenalty
+ \let\poppenalties\relax}}
+
+% shouldn;t that be:
+%
+% \def\pushpenalties % needed?
+% {\let\pushpenalties\relax
+% \edef\poppenalties
+% {\widowpenalty \the\widowpenalty
+% \clubpenalty \the\clubpenalty
+% \brokenpenalty\the\brokenpenalty
+% \let\poppenalties\relax}%
+% \widowpenalty\plusone
+% \clubpenalty\plustwo
+% \brokenpenalty\plusone}
+
+\let\poppenalties=\relax
+
+\def\restorepenalties
+ {\ifnum\outputpenalty=\!!tenthousand\else
+ \penalty\outputpenalty
+ \fi}
+
+\def\sidefloatoutput
+ {\iffloatshort
+ \unvbox\normalpagebox
+ \setbox\floatbottom\lastbox
+ \ifdim\wd\floatbottom>\sidefloathsize
+ \penalty-201
+ \box\floatbottom
+ \else
+ \ifvoid\floatbottom
+ \else
+ \restoreleftindent
+ \ifdim\wd\floatbottom<\sidefloathsize
+ \parskip\zeropoint
+ %\noindent
+ \ifinner\else\vadjust{\penalty\minusone}\fi
+ \iffloatlefteqo
+ \global\floatlefteqofalse
+ \else
+ \global\advance\sidefloathsize -\wd\floatbottom
+ \iffloatrighteqo
+ \global\floatrighteqofalse
+ \else
+ \global\divide\sidefloathsize \plustwo
+ \fi
+ \hskip\sidefloathsize
+ \fi
+ \fi
+ \box\floatbottom
+ \restorepenalties
+ \fi
+ \fi
+ % why was this \global\holdinginserts\zerocount
+ \global\floatshortfalse
+ \else
+ \finalsidefloatoutput % new
+ \global\sidefloatvsize\nofloatvsize
+ \global\sidefloatsidelines\zerocount
+ % we can end up in fig lock, so \global\holdinginserts\zerocount here too ?
+ \poppenalties
+ \fi}
+
+\def\finalsidefloatoutput% new
+ {\finaloutput\unvbox\normalpagebox}
+
+\def\restoreleftindent
+ {\relax \ifnum\sidefloattype>4 \else
+ \parskip\zeropoint % here ?
+ \ifdim\sidefloatwidth>\zeropoint % new, see prikkels
+ \noindent
+ \ifinner\else\vadjust{\penalty\minusone}\fi
+ \hskip\sidefloatwidth
+ %\else
+ % we have a margin or edge float
+ \fi
+ \fi}
+
+\ifx\normaleqno\undefined
+
+ \def\normaleqno
+ {\iffloatshort
+ \global\floatrighteqotrue
+ \fi
+ \floatrighteqo}
+
+\else
+
+ \def\eqno
+ {\iffloatshort
+ \global\floatrighteqotrue
+ \fi
+ \floatrighteqo}
+
+\fi
+
+% externfiguur -> grid =ja|hoogte|diepte|halveregel|passend -> helemaal in details
+% stelplaatsblokin -> zijuitlijnen=hoogte|diepte|regel|halveregel|grid -> halveregel in 'details'
+
+% replacement for below
+%
+% \global\setbox\floatbox\hbox % no \hskip, but \kern here
+% {\ifcase\sidefloattype
+% \vbox{#1}%
+% \or % 1
+% \hskip\sidefloatleftshift
+% \hskip\sidefloatshift
+% \vbox{#1}%
+% \kern-\sidefloatextrashift
+% \or % 2
+% \hskip\sidefloatshift
+% \vbox{#1}%
+% \kern-\sidefloatextrashift
+% \or % 3
+% \hskip\sidefloatshift
+% \vbox{#1}%
+% \kern-\sidefloatextrashift
+% \or % 4
+% \hskip\sidefloatleftshift
+% \hskip\sidefloatshift
+% \vbox{#1\removedepth}%
+% \kern-\sidefloatextrashift
+% \or % 5
+% \hskip-\sidefloatextrashift
+% \vbox{#1}%
+% \kern\sidefloatshift
+% \kern\sidefloatrightshift
+% \or % 6
+% \hskip-\sidefloatextrashift
+% \vbox{#1}%
+% \kern\sidefloatshift
+% \or % 7
+% \hskip-\sidefloatextrashift
+% \vbox{#1}%
+% \kern\sidefloatshift
+% \or % 8
+% \hskip-\sidefloatextrashift
+% \vbox{#1}%
+% \kern\sidefloatshift
+% \kern\sidefloatrightshift
+% \fi}%
+%
+% keep this ^
+
+\def\putsidefloat#1% grid (4) is rather experimental
+ {\par
+ \whitespace
+ % moved here dec 2001
+ {\everypar\emptytoks\forgetall\verticalstrut\vskip-\struttotal}% moved
+ \checksidefloatshift
+ \ifdim\sidefloatshift=\zeropoint \relax
+ \ifnum\sidefloattype=\plusfour
+ \global\advance\sidefloatshift\sidefloatextrashift
+ \global\sidefloatextrashift\zeropoint
+ \else\ifnum\sidefloattype=\plusfive
+ \global\advance\sidefloatshift\sidefloatextrashift
+ \global\sidefloatextrashift\zeropoint
+ \fi\fi
+ \else
+ \ifnum\sidefloattype<\plusfour
+ \global\chardef\sidefloattype\plusfour
+ \else\ifnum\sidefloattype>\plusfive
+ \global\chardef\sidefloattype\plusfive
+ \fi\fi
+ \fi
+ \previoussidefloat
+ \stallsidefloat
+ \global\setbox\floatbox\hbox % no \hskip, but \kern here
+ {\ifnum\sidefloattype=\plusfour
+ \hskip\sidefloatleftshift
+ \else\ifnum\sidefloattype=\plusone
+ \hskip\sidefloatleftshift
+ \fi\fi
+ \ifnum\sidefloattype>\plusfour
+ \hskip-\sidefloatextrashift
+ \else
+ \hskip\sidefloatshift
+ \fi
+ \vbox{#1\ifnum\sidefloatalign=\plusfour \removedepth\fi}%
+ \ifnum\sidefloattype>\plusfour
+ \kern\sidefloatshift
+ \else
+ \kern-\sidefloatextrashift
+ \fi
+ \ifnum\sidefloattype=8
+ \kern\sidefloatrightshift
+ \else\ifnum\sidefloattype=\plusfive
+ \kern\sidefloatrightshift
+ \fi\fi}%
+ \ifnum\sidefloatalign=\plusfour
+ \getnoflines{\ht\floatbox}%
+ \scratchdimen\noflines\lineheight
+ \advance\scratchdimen-\strutdepth
+ \getrawnoflines\sidefloattopskip
+ \advance\scratchdimen\noflines\lineheight
+ % todo: maybe rounding problem here
+ % \global\setbox\floatbox\hbox{\lower\lineheight\box\floatbox}%
+ \global\setbox\floatbox\hbox{\lower\strutdepth\box\floatbox}%
+ \global\ht\floatbox\scratchdimen
+ \global\dp\floatbox\zeropoint
+ \fi
+ \ifcase\sidefloatalign \else
+ \global\sidefloattopskip\zeropoint
+ \fi
+ \scratchdimen
+ \ifnum\sidefloattype<\plusfour
+ \sidefloattopskip
+ \else\ifnum\sidefloattype>\plusfive
+ \sidefloattopskip
+ \else
+ \zeropoint
+ \fi\fi
+ % the top of the box is at the previous baseline
+ \ifcase\sidefloatalign
+ % 0 normal
+ \advance\scratchdimen\strutdepth % == \sidefloattopoffset
+ \or % 1 height
+ \advance\scratchdimen\strutdepth % == \sidefloattopoffset
+ \or % 2 line
+ \or % 3 depth
+ \advance\scratchdimen\lineheight
+ \advance\scratchdimen\strutdepth
+ \or % 4 grid
+ \scratchdimen\zeropoint
+ \or
+ \advance\scratchdimen\strutheight
+ \fi
+ % new
+ \global\sidefloatlinesdone\zerocount
+ \ifnum\sidefloatsidelines>\zerocount
+ \advance\scratchdimen\sidefloatsidelines\lineheight
+ \fi
+ % new
+ \global\setbox\floatbox\hbox
+ {\vbox
+ {\vskip\scratchdimen
+ \nointerlineskip
+ \box\floatbox
+ \ifnum\sidefloatalign=\plusfive \vskip-\lineheight \fi}}%
+ \ifnum\sidefloattype<\plusfour
+ \global\sidefloattopskip\zeropoint
+ \else\ifnum\sidefloattype>\plusfive
+ \global\sidefloattopskip\zeropoint
+ \fi\fi
+ \global\sidefloatdownshift\zeropoint
+ \measuresidefloat
+ \ifroomforfloat \else
+ \vfill\eject % inline \tosssidefloat
+ \measuresidefloat
+ \stallsidefloat
+ \fi
+ \setsidefloat}
+
+% \def\progresssidefloat
+% {\sidefloatprogress\sidefloatvsize
+% \iffloatflag
+% \advance\sidefloatprogress -\sidefloatpagetotal
+% \global\floatflagfalse
+% \else
+% \advance\sidefloatprogress -\pagetotal
+% \fi}
+%
+% more compact:
+
+\def\progresssidefloat
+ {\sidefloatprogress\sidefloatvsize
+ \advance\sidefloatprogress-\iffloatflag\sidefloatpagetotal\global\floatflagfalse\else\pagetotal\fi}
+
+\def\measuresidefloat
+ {\global\floatflagtrue
+ \global\sidefloatpagetotal \pagetotal % global
+ \ifnum\sidefloattype<\plusfour
+ \global \sidefloatwidth \zeropoint
+ \else\ifnum\sidefloattype>\plusfive
+ \global \sidefloatwidth \zeropoint
+ \else
+ \global \sidefloatwidth \wd\floatbox
+ \global\advance\sidefloatwidth \floatsideskip
+ \fi\fi
+ \ifdim\sidefloatwidth<\zeropoint
+ \global\sidefloatwidth\zeropoint
+ \fi
+ \global \sidefloathsize \hsize
+ \global\advance\sidefloathsize -\sidefloatwidth
+ \global \sidefloatheight \ht\floatbox
+ \global\advance\sidefloatheight \dp\floatbox
+ \global\advance\sidefloatheight \sidefloattopskip
+ \global \sidefloatvsize \sidefloatheight
+ \global\advance\sidefloatvsize \sidefloatpagetotal
+ \dimen0\sidefloatvsize
+ \dimen2\pagegoal
+ \relax
+ \ifcase\sidefloatmethod
+ % method 0 : raw
+ \or
+ % method 1 : safe
+ \dimen2 .99\pagegoal
+ \or
+ % method 2 : tight
+ \advance\dimen0 -\onepoint
+ \fi
+ \relax % really needed ! ! ! !
+ \ifdim\dimen0>\dimen2
+ \global\roomforfloatfalse
+ \else
+ \dimen0=\pagegoal
+ \advance\dimen0 -\sidefloatvsize
+ \ifdim\dimen0<\sidefloatbottomskip
+ \global\advance\sidefloatvsize \dimen0
+ \global\floatshorttrue
+ \pushpenalties
+ % why was this \global\holdinginserts\plusone
+ \else
+ \global\advance\sidefloatvsize \sidefloatbottomskip
+ \global\floatshortfalse
+ \fi
+ \global\roomforfloattrue
+ \fi}
+
+\def\setsidefloat% nilling everypar saves time and redudant pos's
+ {% removed here dec 2001
+ % {\everypar\emptytoks\forgetall\verticalstrut\vskip-\struttotal}%
+ \ifnum\sidefloattype=\plusfour \kern\sidefloattopskip \fi
+ \ifnum\sidefloattype=\plusfive \kern\sidefloattopskip \fi
+ \edef\presidefloatdepth{\the\prevdepth}%
+ \nointerlineskip
+ \bgroup
+ \everypar\emptytoks
+ \parskip\zeropoint
+ \setsidefloatskips
+ \logsidefloat
+ \relax
+ \ifcase\sidefloattype
+ % invalid
+ \or % backspace
+ \noindent\llap{\rlap{\box\floatbox}\hskip\sidefloatleftskip}\hfill
+ \or % leftedge
+ \noindent\llap{\box\floatbox\hskip\sidefloatleftskip}\hfill
+ \or % leftmargin
+ \noindent\llap{\box\floatbox\hskip\sidefloatleftskip}\hfill
+ \or % leftside
+ \noindent\box\floatbox\hfill
+ \or % rightside
+ \hfill\box\floatbox
+ \or % rightmargin
+ \hfill\rlap{\hskip\sidefloatrightskip\box\floatbox}%
+ \or % rightedge
+ \hfill\rlap{\hskip\sidefloatrightskip\box\floatbox}%
+ \or % cutspace
+ \hfill\rlap{\hskip\sidefloatrightskip\llap{\box\floatbox}}%
+ \fi
+ \egroup
+ \par
+ \kern-\sidefloatheight
+ \penalty10001 % oeps, this will change
+ \normalbaselines
+ \prevdepth\presidefloatdepth
+ % \noindent
+ \resetsidefloatparagraph
+ \ignorespaces} % not really needed
+
+\newcount\sidefloatparagraph
+
+\def\iffirstsidefloatparagraph
+ {\ifcase\sidefloatparagraph\or}
+
+% without sidefloat lines
+%
+% \def\setsidefloatparagraph
+% {%\advance\sidefloatprogress \sidefloatbottomskip
+% %\!!counta\sidefloatprogress
+% \scratchdimen\sidefloatprogress
+% \advance\scratchdimen \strutht
+% \advance\scratchdimen -\roundingeps % new, needed in prikkels, prevent rounding errors
+% \!!counta\scratchdimen
+% \divide\!!counta \baselineskip
+% \ifnum\!!counta>0
+% \hangindent \ifnum\sidefloattype>4 -\fi\sidefloatwidth
+% \hangafter-\!!counta
+% \fi
+% \global\advance\sidefloatparagraph \plusone
+% \iftracesidefloats
+% \hskip-\sidefloatwidth
+% \color[darkgray]%
+% {\vrule\!!height.5\points\!!depth.5\points\!!width\sidefloatwidth
+% %\hskip-.25\bodyfontsize\showstruts\strut\hskip.25\bodyfontsize}%
+% \llap{\showstruts\strut\hskip.25\bodyfontsize}}%
+% \fi}
+
+\def\setsidefloatparagraph
+ {%\advance\sidefloatprogress \sidefloatbottomskip
+ %\!!counta\sidefloatprogress
+ \scratchdimen\sidefloatprogress
+ \advance\scratchdimen \strutht
+ \advance\scratchdimen -\roundingeps % new, needed in prikkels, prevent rounding errors
+ \!!counta\scratchdimen
+ \divide\!!counta \baselineskip\relax
+ \ifnum\!!counta>0
+ % new from here
+ \ifcase\sidefloatsidelines\else
+ \ifcase\sidefloatlinesdone
+ \global\sidefloatlinesdone\!!counta
+ \else
+ \scratchcounter\sidefloatlinesdone
+ \advance\scratchcounter-\!!counta
+ \global\advance\sidefloatsidelines-\scratchcounter
+ \fi
+ \fi
+ \ifnum\sidefloatsidelines>\zerocount
+ \scratchtoks\emptytoks
+ \scratchcounter\sidefloatsidelines
+ \scratchdimen\hsize
+ \advance\scratchdimen-\sidefloatwidth
+ \dorecurse\sidefloatsidelines
+ {\appendtoks \zeropoint \hsize \to \scratchtoks}%
+ \ifnum\!!counta>\sidefloatsidelines
+ \advance\!!counta -\sidefloatsidelines\relax
+ \advance\scratchcounter\!!counta
+ \dorecurse\!!counta
+ {\ifnum\sidefloattype>\plusfour
+ \appendtoks \zeropoint \scratchdimen \to \scratchtoks
+ \else
+ \appendtoks \sidefloatwidth \scratchdimen \to \scratchtoks
+ \fi}%
+ \fi
+ \advance\scratchcounter \plusone
+ \parshape \scratchcounter \the\scratchtoks \zeropoint \hsize\relax
+ \else
+ % new till here
+ \hangindent \ifnum\sidefloattype>\plusfour -\fi\sidefloatwidth
+ \hangafter-\!!counta
+ \fi
+ \fi
+ \global\advance\sidefloatparagraph \plusone
+ \iftracesidefloats
+ \hskip-\sidefloatwidth
+ \color[darkgray]%
+ {\vrule\!!height.5\points\!!depth.5\points\!!width\sidefloatwidth
+ %\hskip-.25\bodyfontsize\showstruts\strut\hskip.25\bodyfontsize}%
+ \llap{\showstruts\strut\hskip.25\bodyfontsize}}%
+ \fi}
+
+\def\resetsidefloatparagraph
+ {\global\sidefloatparagraph\zerocount}
+
+\def\dochecksidefloat
+ {\progresssidefloat
+ \ifdim\sidefloatprogress>\zeropoint
+ \setsidefloatparagraph
+ \else
+ \resetsidefloatparagraph
+ \fi
+ \parskip\ctxparskip}
+
+\let\checksidefloat\dochecksidefloat
+
+\def\synchronizesidefloats
+ {\ifinner \else \checksidefloat \fi}
+
+\def\doadjustsidefloatdisplaylines
+ {\par
+ \vskip-\parskip
+ \noindent
+ \ignorespaces}
+
+\def\adjustsidefloatdisplaylines
+ {\aftergroup\doadjustsidefloatdisplaylines}
+
+\def\previoussidefloat
+ {\progresssidefloat
+ \ifdim\sidefloatprogress>\zeropoint \relax
+ \iffloatshort
+ \global\floatshortfalse
+ \vfill\eject % inline \tosssidefloat
+ \else
+ \kern\sidefloatprogress
+ \fi
+ \fi}
+
+\def\stallsidefloat
+ {\!!counta\pageshrink
+ \divide\!!counta \baselineskip
+ \advance\!!counta \plusone
+ \parskip\zeropoint
+ \dorecurse\!!counta{\line{}}
+ \kern-\!!counta\baselineskip
+ \penalty\zerocount }
+
+% We need to hook it into the other otr's. This code will move.
+
+\let\OTRONEflushsidefloats \flushsidefloats
+\let\OTRONEsynchronizesidefloats\synchronizesidefloats
+
+% page-set
+%
+% \let\OTRSETflushsidefloats \forgetsidefloats
+% \let\OTRSETsynchronizesidefloats\forgetsidefloats
+
+% page-mul
+%
+% \let\OTRMULflushsidefloats \forgetsidefloats
+% \let\OTRMULsynchronizesidefloats\forgetsidefloats
+
+\registerotrcommand\synchronizesidefloats % \def\synchronizesidefloats{\OTRcommand\synchronizesidefloats}
+\registerotrcommand\flushsidefloats % \def\flushsidefloats {\OTRcommand\flushsidefloats}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/page-spr.tex b/Master/texmf-dist/tex/context/base/page-spr.mkii
index 53d50875240..06947a36a09 100644
--- a/Master/texmf-dist/tex/context/base/page-spr.tex
+++ b/Master/texmf-dist/tex/context/base/page-spr.mkii
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Page Macros / Spreading}
+\writestatus{loading}{ConTeXt Page Macros / Spreading}
% This module is experimental and not yet official!
diff --git a/Master/texmf-dist/tex/context/base/page-spr.mkiv b/Master/texmf-dist/tex/context/base/page-spr.mkiv
new file mode 100644
index 00000000000..4436ddcc2c4
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/page-spr.mkiv
@@ -0,0 +1,103 @@
+%D \module
+%D [ file=page-spr,
+%D version=2002.11.11,
+%D title=\CONTEXT\ Page Macros,
+%D subtitle=Spreading,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Page Macros / Spreading}
+
+% This module is experimental and not yet official!
+
+\unprotect
+
+\newbox\spreadbox
+\newif \ifinspread
+
+\chardef\showspreadmode\plusone
+
+% beware, ugly overload, to be redone
+
+\def\normalsettextpagecontent#1#2#3% #2 and #3 will disappear
+ {\setbox#1\hbox
+ {\setlayoutcomponentattribute\v!page\v!text
+ \vbox \layoutcomponentboxattribute to \textheight
+ {\offinterlineskip
+ \freezetextwidth
+ \hsize\textwidth % local variant of \sethsize
+ \boxmaxdepth\maxdepth
+ \noindent % content can be < \hsize
+ \dopagecontents#2#3}}%
+ \dp#1\zeropoint
+ \setbox#1\hbox to \makeupwidth
+ {\ifinspread
+ \ifvoid\spreadbox
+ \global\setbox\spreadbox\box#1%
+ \copy\spreadbox\hss % left page
+ \else
+ % prevent duplicate writes in normal run
+ \ifarrangingpages \else \ifcase\showspreadmode
+ \global\setbox\spreadbox\null
+ \wd\spreadbox\makeupwidth
+ \ht\spreadbox\textheight
+ \fi \fi
+ \hss\box\spreadbox % right page
+ \fi
+ \else
+ \hss\box#1\hss % never change the \hss's
+ \fi}}
+
+\def\doflushspread
+ {\ifinspread \ifvoid\spreadbox\else
+ % this page will be discarded later
+ \null \page
+ \fi \fi }
+
+\def\startspread
+ {\bgroup
+ \ifdoublesided
+ \page[\v!left]%
+ %\setsystemmode{spread}%
+ \inspreadtrue
+ \expanded{\setuplayout[\c!textwidth=\the\dimexpr2\textwidth+2\backspace\relax]}%
+ \def\startspread{\bgroup\let\stopspread\egroup}%
+ \let\stopspread\dostopspread
+ \else
+ \let\stopspread\egroup
+ \fi}
+
+\let\stopspread\relax
+
+\def\dostopspread
+ {\kern\zeropoint\page
+ \inspreadfalse
+ \setuplayout[\c!textwidth=\textwidth]
+ \page[\v!left]
+ \egroup}
+
+\protect \endinput
+
+% texexec --arr --pdf test
+%
+% \setuplayout[width=middle]
+% \setuppapersize[A4][A3,landscape]
+% \setuppagenumbering[alternative=doublesided]
+% \setuparranging[2UP]
+%
+% \starttext
+%
+% \dorecurse{3}{\input tufte }
+%
+% \startspread
+% \dorecurse{10}{\input tufte }
+% \stopspread
+%
+% \dorecurse{3}{\input tufte }
+%
+% \stoptext
diff --git a/Master/texmf-dist/tex/context/base/page-str.tex b/Master/texmf-dist/tex/context/base/page-str.mkii
index 1a68adf521e..cfaebe3985b 100644
--- a/Master/texmf-dist/tex/context/base/page-str.tex
+++ b/Master/texmf-dist/tex/context/base/page-str.mkii
@@ -1,7 +1,7 @@
%D \module
%D [ file=page-str,
%D version=2006.03.21,
-%D title=\CONTEXT\ Core Macros,
+%D title=\CONTEXT\ Page Macros,
%D subtitle=Page Streams,
%D author=Hans Hagen,
%D date=\currentdate,
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Page Macros / Page Streams}
+\writestatus{loading}{ConTeXt Page Macros / Page Streams}
%D The first version of this component of \CONTEXT\ was written
%D for Thomas Schmitz who asked for parallel page streams. While
@@ -23,6 +23,8 @@
%D These macros were written while listening to and watching the DVD
%D \quotation {Rush In Rio}.
+% not yet ok in mkiv ... marknotes
+
\unprotect
% taco, what is the best way to append a otr chunk (insert pagediscards?)
@@ -92,7 +94,7 @@
\def\saveoutputstream[#1]%
{\writestatus{otr}{saving otr stream #1}%
\ifvoid\normalpagebox
- \global\setbox\outputstreamtag{#1}\voidbox
+ \global\setbox\outputstreamtag{#1}\emptybox
\else
\global\setbox\outputstreamtag{#1}\vbox
{\presetoutputstream
@@ -150,19 +152,19 @@
\def\flushmarknotes[#1]% assumes split
{\begingroup
- \edef\firstmarknote{0\fetchmark[mn:#1][column:first]}%
- \edef\lastmarknote {0\fetchmark[mn:#1][column:last]}%
- \ifnum\firstmarknote<\lastmarknote\relax
- \getvalue{mn:#1\c!before}%
- \dostepwiserecurse\firstmarknote\lastmarknote\plusone
- {\ifnum\recurselevel>\firstmarknote\relax
- \ifnum\recurselevel<\lastmarknote\relax
- \getvalue{mn:#1\c!inbetween}%
- \fi
- \fi
- \getvalue{mn:#1\c!command}{\getvalue{mn:#1:t:\recurselevel}}}%
- \getvalue{mn:#1\c!after}%
- \fi
+% \edef\firstmarknote{0\fetchmark[mn:#1][column:first]}%
+% \edef\lastmarknote {0\fetchmark[mn:#1][column:last]}%
+% \ifnum\firstmarknote<\lastmarknote\relax
+% \getvalue{mn:#1\c!before}%
+% \dostepwiserecurse\firstmarknote\lastmarknote\plusone
+% {\ifnum\recurselevel>\firstmarknote\relax
+% \ifnum\recurselevel<\lastmarknote\relax
+% \getvalue{mn:#1\c!inbetween}%
+% \fi
+% \fi
+% \getvalue{mn:#1\c!command}{\getvalue{mn:#1:t:\recurselevel}}}%
+% \getvalue{mn:#1\c!after}%
+% \fi
\endgroup}
\def\erasemarknotes[#1]%
diff --git a/Master/texmf-dist/tex/context/base/page-str.mkiv b/Master/texmf-dist/tex/context/base/page-str.mkiv
new file mode 100644
index 00000000000..e4fd3979434
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/page-str.mkiv
@@ -0,0 +1,380 @@
+%D \module
+%D [ file=page-str,
+%D version=2006.03.21,
+%D title=\CONTEXT\ Page Macros,
+%D subtitle=Page Streams,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA-ADE]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Page Macros / Page Streams}
+
+%D The first version of this component of \CONTEXT\ was written
+%D for Thomas Schmitz who asked for parallel page streams. While
+%D playing with the code, I decided to make it into a component
+%D that can be used to construct all kind of stream related
+%D mechanisms. Because I could apply this feature in a project,
+%D there is some additional code here (related to graphics).
+%D
+%D These macros were written while listening to and watching the DVD
+%D \quotation {Rush In Rio}.
+
+% not yet ok in mkiv ... marknotes .. will be completely redone
+
+\unprotect
+
+% taco, what is the best way to append a otr chunk (insert pagediscards?)
+
+\let\currentoutputstream\s!default
+
+\newtoks\defaultstreamoutput \defaultstreamoutput=\OTRONEoutput
+
+\newtoks\normalstreamoutput \normalstreamoutput={\saveoutputstream[\currentoutputstream]}
+
+\newcount\streampenalty \streampenalty=-101010101
+
+\ifx\multicolumnseject\undefined \else
+ \let\normalmulticolumnseject\multicolumnseject
+ \def\multicolumnseject{\ifinoutputstream\else\normalmulticolumnseject\fi}
+\fi
+
+\newif\ifinoutputstream
+
+\newtoks \everyenableoutputstream
+
+\appendtoks
+ \flushsidefloats
+\to \everyenableoutputstream
+
+\def\enableoutputstream[#1]%
+ {\the\everyenableoutputstream
+ \finishoutputstream
+ \writestatus{otr}{switching to output stream #1}%
+ \inoutputstreamtrue
+ \xdef\currentoutputstream{#1}}
+
+\def\disableoutputstream
+ {\finishoutputstream
+ \writestatus{otr}{switching to default output stream}%
+ \inoutputstreamfalse
+ \global\let\currentoutputstream\s!default}
+
+\def\useoutputstream[#1]%
+ {\writestatus{otr}{using output stream #1}%
+ \xdef\currentoutputstream{#1}}
+
+\def\handlestreamoutput
+ {\ifx\currentoutputstream\s!default % already expanded
+ \ifnum\outputpenalty=\streampenalty
+ \ifvoid\normalpagebox \else
+ \unvbox\normalpagebox
+ \fi
+ \else
+ \the\defaultstreamoutput
+ \fi
+ \else
+ \the\normalstreamoutput
+ \fi}
+
+\OTRONEoutput{\handlestreamoutput}
+
+\def\defineoutputstream[#1]%
+ {\doifundefined{otrs:#1}{\expandafter\newbox\csname otrs:#1\endcsname}}
+
+\def\outputstreamtag#1%
+ {\csname otrs:#1\endcsname}
+
+\def\finishoutputstream % todo: installoutput
+ {\endgraf
+ \penalty\streampenalty
+ \endgraf}
+
+\def\saveoutputstream[#1]%
+ {\writestatus{otr}{saving otr stream #1}%
+ \ifvoid\normalpagebox
+ \global\setbox\outputstreamtag{#1}\emptybox
+ \else
+ \global\setbox\outputstreamtag{#1}\vbox
+ {\presetoutputstream
+ \ifvoid\outputstreamtag{#1}\else\unvbox\outputstreamtag{#1}\fi
+ \scratchdimen\dp\normalpagebox
+ \unvbox\normalpagebox
+ \vskip-\scratchdimen
+ \kern\strutdepth}%
+ \fi}
+
+% \def\presetoutputstream
+% {\pdffirstlineheight\strutheight
+% \pdflastlinedepth \strutdepth
+% \pdfeachlineheight \strutheight
+% \pdfeachlinedepth \strutdepth}
+
+\let\presetoutputstream\relax
+
+\def\outputstreamht [#1]{\ht\outputstreamtag{#1}}
+\def\outputstreamdp [#1]{\dp\outputstreamtag{#1}}
+\def\outputstreamwd [#1]{\wd\outputstreamtag{#1}}
+
+%def\outputstreambox [#1]{\ifvoid\outputstreamtag{#1}\else\box \outputstreamtag{#1}\fi}
+%def\outputstreamcopy[#1]{\ifvoid\outputstreamtag{#1}\else\copy\outputstreamtag{#1}\fi}
+
+\def\dowithoutputstreambox#1[#2]{\ifvoid\outputstreamtag{#2}\else#1\outputstreamtag{#2}\fi}
+
+\def\outputstreamcopy {\dowithoutputstreambox\copy }
+\def\outputstreambox {\dowithoutputstreambox\box }
+\def\outputstreamunvcopy{\dowithoutputstreambox\unvcopy}
+\def\outputstreamunvbox {\dowithoutputstreambox\unvbox }
+
+%D Footnotes don't go along with streams, simply because there is no
+%D way to re-split inserts. A dirty way out is to use marks and store
+%D notes that way.
+
+% not mkiv ready yet
+
+\def\definemarknote
+ {\dodoubleempty\dodefinemarknote}
+
+\def\dodefinemarknote[#1][#2]%
+ {\definemarking[mn:#1]%
+ \setvalue{mn:#1:n}{0}%
+ \getparameters
+ [mn:#1]
+ [\c!before=,
+ \c!after=,
+ \c!inbetween=\endgraf,
+ \c!command=\firstofoneargument,
+ #2]}
+
+\def\setmarknote[#1]#2%
+ {\doglobal\incrementvalue{mn:#1:n}%
+ \setgvalue{mn:#1:t:\getvalue{mn:#1:n}}{#2}%
+ \expanded{\marking[mn:#1]{\getvalue{mn:#1:n}}}}
+
+\def\flushmarknotes[#1]% assumes split
+ {\begingroup
+% \edef\firstmarknote{0\fetchmark[mn:#1][column:first]}%
+% \edef\lastmarknote {0\fetchmark[mn:#1][column:last]}%
+% \ifnum\firstmarknote<\lastmarknote\relax
+% \getvalue{mn:#1\c!before}%
+% \dostepwiserecurse\firstmarknote\lastmarknote\plusone
+% {\ifnum\recurselevel>\firstmarknote\relax
+% \ifnum\recurselevel<\lastmarknote\relax
+% \getvalue{mn:#1\c!inbetween}%
+% \fi
+% \fi
+% \getvalue{mn:#1\c!command}{\getvalue{mn:#1:t:\recurselevel}}}%
+% \getvalue{mn:#1\c!after}%
+% \fi
+ \endgroup}
+
+\def\erasemarknotes[#1]%
+ {\begingroup
+ \edef\firstmarknote{0\fetchmark[mn:#1][column:first]}%
+ \edef\lastmarknote {0\fetchmark[mn:#1][column:last]}%
+ \dostepwiserecurse\firstmarknote\lastmarknote\plusone
+ {\global\letvalue{mn:#1:t:\recurselevel}\empty}%
+ \endgroup}
+
+%D The next section implements synchronization of (currently
+%D two) output streams. In due time we will implement both a
+%D vertical and horizontal system, as well as alternative
+%D splitters (firstpagevsize, succesivevsize etc).
+
+\def\synchronizeoutputstreams[#1]% [one,two] [left,right]
+ {\bgroup
+ \getfromcommalist[#1][\plusone]\let\firstoutputstream \commalistelement
+ \getfromcommalist[#1][\plustwo]\let\secondoutputstream\commalistelement
+ \forgeteverypar
+ \def\roundingeps{50sp}%
+ \getboxheight\dimen0\of\box\outputstreamtag\firstoutputstream
+ \getboxheight\dimen2\of\box\outputstreamtag\secondoutputstream
+ \scratchdimen\dimexpr\dimen0-\dimen2\relax
+ \ifdim\scratchdimen<-\roundingeps\relax
+ \scratchdimen-\scratchdimen
+ \writestatus{sync}{compensating first stream: \the\scratchdimen/\number\scratchdimen}%
+ \getroundednoflines\scratchdimen
+ \global\setbox\outputstreamtag\firstoutputstream\vbox
+ {\presetoutputstream
+ \unvbox\outputstreamtag\firstoutputstream\dorecurse\noflines\crlf}%
+ \else\ifdim\scratchdimen>\roundingeps\relax
+ \writestatus{sync}{compensating second stream: \the\scratchdimen/\number\scratchdimen}%
+ \getroundednoflines\scratchdimen
+ \global\setbox\outputstreamtag\secondoutputstream\vbox
+ {\presetoutputstream
+ \unvbox\outputstreamtag\secondoutputstream\dorecurse\noflines\crlf}%
+ \else
+ \writestatus{sync}{no need to compensate streams: \the\scratchdimen/\number\scratchdimen}%
+ \fi\fi
+ \egroup}
+
+\def\nofoutputstreamsplitlines {\v!auto} % {40}
+\def\outputstreamsplittolerance {-5}
+
+\def\flushoutputstreampages[#1]%
+ {\bgroup
+ \getfromcommalist[#1][\plusone]\let\firstoutputstream \commalistelement
+ \getfromcommalist[#1][\plustwo]\let\secondoutputstream\commalistelement
+ \doloop
+ {\flushoutputstreams[#1]%
+ \ifvoid\outputstreamtag\firstoutputstream
+ \ifvoid\outputstreamtag\secondoutputstream
+ \exitloop
+ \else
+ \global\setbox\outputstreamtag\firstoutputstream\vbox{\strut}%
+ \fi
+ \else
+ \ifvoid\outputstreamtag\secondoutputstream
+ \global\setbox\outputstreamtag\secondoutputstream\vbox{\strut}%
+ \else
+ % okay
+ \fi
+ \fi}%
+ \egroup}
+
+\def\flushoutputstreams[#1]%
+ {\bgroup
+ \getfromcommalist[#1][\plusone]\let\firstoutputstream \commalistelement
+ \getfromcommalist[#1][\plustwo]\let\secondoutputstream\commalistelement
+ \doif\nofoutputstreamsplitlines\v!auto
+ {\getrawnoflines\textheight
+ \edef\nofoutputstreamsplitlines{\the\noflines}}%
+ \splittopskip\strutheight
+ \scratchdimen\nofoutputstreamsplitlines\lineheight\relax
+ \unless\iffalse
+ \dimen0\scratchdimen
+ \doloop
+ {\setbox4\copy\outputstreamtag\firstoutputstream
+ \setbox0\vsplit4 to \dimen0
+ \setbox0\vbox
+ {\directsetup{stream:\firstoutputstream:top}%
+ \unvbox0
+ \directsetup{stream:\firstoutputstream:bottom}}%
+ \ifdim\ht0>\scratchdimen
+ \advance\dimen0-\lineheight
+ \else
+ \exitloop
+ \fi}%
+ \scratchdimen\dimen0
+ \dimen2\scratchdimen
+ \doloop
+ {\setbox6\copy\outputstreamtag\secondoutputstream
+ \setbox2\vsplit6 to \dimen2
+ \setbox2\vbox
+ {\directsetup{stream:\secondoutputstream:top}%
+ \unvbox0
+ \directsetup{stream:\secondoutputstream:bottom}}%
+ \ifdim\ht2>\scratchdimen
+ \advance\dimen2-\lineheight
+ \else
+ \exitloop
+ \fi}%
+ \scratchdimen\dimen2
+ \fi
+ \setbox4\copy\outputstreamtag\firstoutputstream
+ \setbox6\copy\outputstreamtag\secondoutputstream
+ \scratchcounter\zerocount
+ \doloop
+ {\setbox0\vsplit4 to \scratchdimen
+ \setbox0\vbox{\unvbox0}%
+ \setbox2\vsplit6 to \scratchdimen
+ \setbox2\vbox{\unvbox2}%
+ \ifvoid4
+ \exitloop
+ \else\ifvoid6
+ \exitloop
+ \else
+ \dimen8=\dimexpr\ht4-\ht6\relax
+ \ifdim\dimen8<\zeropoint\dimen8=-\dimen8\relax\fi
+ \advance\scratchcounter\plusone
+ \ifdim\dimen8<.5\lineheight
+ \exitloop
+ \else\ifnum\outputstreamsplittolerance>\zeropoint
+ \ifnum\scratchcounter>\outputstreamsplittolerance\relax
+ \exitloop
+ \else
+ \advance\scratchdimen\lineheight
+ \fi
+ \else\ifnum\outputstreamsplittolerance<\zeropoint
+ \ifnum-\scratchcounter<\outputstreamsplittolerance\relax
+ \exitloop
+ \else
+ \advance\scratchdimen-\lineheight
+ \fi
+ \else\ifnum\outputstreamsplittolerance=\zeropoint
+ \exitloop
+ \fi\fi\fi\fi
+ \fi\fi}%
+ \setbox0\vsplit\outputstreamtag\firstoutputstream to \scratchdimen
+ \setbox0\vbox to \textheight
+ {\presetoutputstream
+ \directsetup{stream:\firstoutputstream:top}%
+ \unvbox0
+ \vfill
+ \directsetup{stream:\firstoutputstream:bottom}}%
+ \setbox2\vsplit\outputstreamtag\secondoutputstream to \scratchdimen
+ \setbox2\vbox to \textheight
+ {\presetoutputstream
+ \directsetup{stream:\secondoutputstream:top}%
+ \unvbox2
+ \vfill
+ \directsetup{stream:\secondoutputstream:bottom}}%
+ \directsetup{stream:\firstoutputstream:reset}%
+ \directsetup{stream:\secondoutputstream:reset}%
+ \page[even]
+ \box0\vfill\page
+ \box2\vfill\page
+ \egroup}
+
+ %D Although one can put floats in a stream, it sometimes makes sense
+ %D to keep them apart and this is what local floats do.
+
+ \def\setuplocalfloats
+ {\getparameters[\??lf]}
+
+ \setuplocalfloats
+ [%before=\blank,
+ %after=\blank,
+ inbetween=\blank]
+
+ \installfloathandler \v!local \somelocalfloat
+
+ \initializeboxstack{localfloats}
+
+ \newcounter\noflocalfloats
+
+ \def\resetlocalfloats
+ {\doglobal\newcounter\noflocalfloats
+ \initializeboxstack{localfloats}}
+
+ \def\somelocalfloat[#1]%
+ {\doglobal\increment\noflocalfloats
+ \savebox{localfloats}{\noflocalfloats}{\box\floatbox}}
+
+ \def\getlocalfloats
+ {\dorecurse\noflocalfloats
+ {\ifnum\recurselevel=\plusone % 1\relax
+ \getvalue{\??lf\c!before}%
+ \else
+ \getvalue{\??lf\c!inbetween}%
+ \fi
+ \dontleavehmode\hbox{\foundbox{localfloats}\recurselevel}%
+ \ifnum\recurselevel=\noflocalfloats\relax
+ \getvalue{\??lf\c!after}%
+ \fi}}
+
+ \def\flushlocalfloats
+ {\getlocalfloats
+ \resetlocalfloats}
+
+ \def\getlocalfloat#1{\expanded{\foundbox{localfloats}{\number#1}}}
+
+ \def\forcelocalfloats{\let\forcedfloatmethod\v!local}
+
+%D Because many arrangements are possible, we will implement
+%D some examples in a runtime loadable module \type {m-streams}.
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/page-txt.tex b/Master/texmf-dist/tex/context/base/page-txt.mkii
index c39d592ab5a..9fe73bec199 100644
--- a/Master/texmf-dist/tex/context/base/page-txt.tex
+++ b/Master/texmf-dist/tex/context/base/page-txt.mkii
@@ -13,7 +13,7 @@
% \setuplayouttext in manual
-\writestatus{loading}{Context Page Macros / Texts}
+\writestatus{loading}{ConTeXt Page Macros / Texts}
\unprotect
@@ -381,14 +381,11 @@
\calculatereducedvsizes
\swapmargins
\offinterlineskip
- \vskip-\topheight
- \vskip-\topdistance
+ \vskip\dimexpr-\topheight-\topdistance\relax
\the\toptextcontent
- \vskip\topheight
- \vskip\topdistance
+ \vskip\dimexpr\topheight+\topdistance\relax
\the\headertextcontent
- \vskip\headerheight
- \vskip\headerdistance
+ \vskip\dimexpr\headerheight+\headerdistance\relax
\placepositionanchors
\vskip-\textheight
\the\texttextcontent
@@ -396,8 +393,7 @@
\the\everyendoftextbody
\vskip\footerdistance
\the\footertextcontent
- \vskip\footerheight
- \vskip\bottomdistance
+ \vskip\dimexpr\footerheight+\bottomdistance\relax
\the\bottomtextcontent
\vskip\bottomheight
\vfilll}%
@@ -410,9 +406,7 @@
\calculatereducedvsizes
\calculatehsizes
\swapmargins
- \vskip\headerheight
- \vskip\headerdistance
- \vskip\layoutparameter\c!textdistance
+ \vskip\dimexpr\headerheight+\headerdistance+\layoutparameter\c!textdistance\relax
\hbox to \makeupwidth
{\bgroup
\swapmargins
@@ -430,15 +424,15 @@
\egroup
\mkprocesspagecontents{#2}%
\settextpagecontent\scratchpagebox{#1}{#2}%
-\setbox\scratchpagebox\vbox
- {\startlayoutcomponent{textbody}{text body}%
- \box\scratchpagebox
- \stoplayoutcomponent}%
+ \setbox\scratchpagebox\vbox % can we avoid this extra box
+ {\startlayoutcomponent{textbody}{text body}%
+ \box\scratchpagebox
+ \stoplayoutcomponent}%
\addtextbackground\scratchpagebox
\addtextgridlayer\scratchpagebox
- \localstarttextcolor
+ \localstarttextcolor % does not work in mkiv
\box\scratchpagebox
- \localstoptextcolor
+ \localstoptextcolor % so we have to change this
\bgroup
\hskip\rightmargindistance
\ifdim\rightmarginwidth>\zeropoint
diff --git a/Master/texmf-dist/tex/context/base/page-txt.mkiv b/Master/texmf-dist/tex/context/base/page-txt.mkiv
new file mode 100644
index 00000000000..f4e2d76f94c
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/page-txt.mkiv
@@ -0,0 +1,875 @@
+%D \module
+%D [ file=page-txt, % copied from main-001,
+%D version=1997.03.31,
+%D title=\CONTEXT\ Page Macros,
+%D subtitle=Texts,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+% where we can do some mkiv cleanup
+
+% \setuplayouttext in manual
+
+\writestatus{loading}{ConTeXt Page Macros / Texts}
+
+\unprotect
+
+%D Interfacing between this and other modules is handled by
+%D the following macros. The current state of a text line
+%D (header, footer, etc.) is checked by:
+%D
+%D \starttyping
+%D \resetlayouttextlines
+%D \stoptyping
+%D
+%D The main text box is finished by the following macro:
+%D
+%D \starttyping
+%D \getmainbox <box> <\vbox|\unvbox>
+%D \stoptyping
+%D
+%D The text lines are collected with:
+%D
+%D \starttyping
+%D \gettextboxes
+%D \stoptyping
+%D
+%D It is possible to extens the default content of the text
+%D areas by appending content to the following token list
+%D registers:
+
+\newtoks\toptextcontent \newtoks\leftedgetextcontent
+\newtoks\headertextcontent \newtoks\leftmargintextcontent
+\newtoks\footertextcontent \newtoks\rightmargintextcontent
+\newtoks\bottomtextcontent \newtoks\rightedgetextcontent
+
+\newtoks\texttextcontent
+
+%D \macros
+%D {setuptop, setupheader, setuptext,
+%D setupfooter, setupbottom}
+%D
+%D The macros in this module sometimes look a bit more complicated
+%D than needed, which is a direct result of the fact that their
+%D ancestors are quite old and upward compatibility is a must.
+%D
+%D \showsetup{setuptop}
+%D \showsetup{setupheader}
+%D \showsetup{setuptext}
+%D \showsetup{setupfooter}
+%D \showsetup{setupbottom}
+
+\def\setuplayouttext
+ {\dotripleempty\dosetuplayouttext}
+
+\def\dosetuplayouttext[#1][#2][#3]% beware, non global
+ {\ifthirdargument
+ \getparameters[\??tk#1#2][#3]%
+ \else
+ %\getparameters[\??tk#1\v!text][#2]%
+ \edef\previoustextstate{\csname\??tk#1\c!state\endcsname}%
+ \getparameters[\??tk#1][#2]%
+ \edef\currenttextstate{\csname\??tk#1\c!state\endcsname}%
+ \ifx\currenttextstate\previoustextstate
+ % no change in state
+ \else
+ %\checkcurrentlayout % no
+ % speed optimization (calculating backgrounds takes time)
+ \doifcommon{\previoustextstate,\currenttextstate}{\v!high,\v!none}
+ {\calculatevsizes
+ \recalculatebackgrounds}%
+ \fi
+ \fi}
+
+\def\setuptop {\dotripleempty\dosetuplayouttext[\v!top]}
+\def\setupheader {\dotripleempty\dosetuplayouttext[\v!header]}
+\def\setuptext {\dotripleempty\dosetuplayouttext[\v!text]}
+\def\setupfooter {\dotripleempty\dosetuplayouttext[\v!footer]}
+\def\setupbottom {\dotripleempty\dosetuplayouttext[\v!bottom]}
+
+%D \macros
+%D {noheaderandfooterlines,notopandbottomlines}
+%D
+%D Although not really needed, the following shortcuts
+%D sometimes come in handy.
+%D
+%D \showsetup{noheaderandfooterlines}
+%D \showsetup{notopandbottomlines}
+
+\def\noheaderandfooterlines
+ {\setupheader[\c!state=\v!empty]%
+ \setupfooter[\c!state=\v!empty]}
+
+\def\notopandbottomlines
+ {\setuptop [\c!state=\v!empty]%
+ \setupbottom[\c!state=\v!empty]}
+
+%D \macros
+%D {setuptoptexts, setupheadertexts, setuptexttexts,
+%D setupfootertexts, setupbottomtexts}
+%D
+%D The next macros take one or more arguments. The exact setup
+%D depends on the number of arguments. Although not that
+%D intuitive, the current scheme evolved out of the original.
+%D When margin and edge texts as well as middle texts showed
+%D up, the current odd|/|even scheme surfaced.
+%D
+%D \showsetup{setuptoptexts}
+%D \showsetup{setupheadertexts}
+%D \showsetup{setuptexttexts}
+%D \showsetup{setupfootertexts}
+%D \showsetup{setupbottomtexts}
+
+\def\setuptoptexts {\dosixtupleempty\dosetuptexts[\v!top ]}
+\def\setupheadertexts {\dosixtupleempty\dosetuptexts[\v!header ]}
+\def\setuptexttexts {\dosixtupleempty\dosetuptexts[\v!text ]}
+\def\setupfootertexts {\dosixtupleempty\dosetuptexts[\v!footer ]}
+\def\setupbottomtexts {\dosixtupleempty\dosetuptexts[\v!bottom ]}
+
+%D The left, right and center variables can also be set
+%D directly using the previously discussed macros.
+
+\def\dosetuptexts[#1][#2][#3][#4][#5][#6]%
+ {\ifsixthargument
+ \setvalue{\??tk#1#2\c!lefttext}%
+ {\dodoubletexts{#1}{#2}%
+ {\c!leftstyle \c!leftcolor \c!leftwidth }{#3}%
+ {\c!rightstyle\c!rightcolor\c!rightwidth}{#6}}%
+ \setvalue{\??tk#1#2\c!righttext}%
+ {\dodoubletexts{#1}{#2}%
+ {\c!rightstyle\c!rightcolor\c!rightwidth}{#4}%
+ {\c!leftstyle \c!leftcolor \c!leftwidth }{#5}}%
+ \else\iffifthargument
+ \setvalue{\??tk#1\v!text\c!lefttext}%
+ {\dodoubletexts{#1}\v!text
+ {\c!leftstyle \c!leftcolor \c!leftwidth }{#2}%
+ {\c!rightstyle\c!rightcolor\c!rightwidth}{#5}}%
+ \setvalue{\??tk#1\v!text\c!righttext}%
+ {\dodoubletexts{#1}\v!text
+ {\c!rightstyle\c!rightcolor\c!rightwidth}{#3}%
+ {\c!leftstyle \c!leftcolor \c!leftwidth }{#4}}%
+ \else\iffourthargument
+ \setvalue{\??tk#1#2\c!lefttext}%
+ {\dodoubletexts{#1}{#2}
+ {\c!leftstyle\c!leftcolor\c!leftwidth}{#3}%
+ {\c!leftstyle\c!leftcolor\c!leftwidth}{#3}}%
+ \setvalue{\??tk#1#2\c!righttext}%
+ {\dodoubletexts{#1}{#2}
+ {\c!rightstyle\c!rightcolor\c!rightwidth}{#4}%
+ {\c!rightstyle\c!rightcolor\c!rightwidth}{#4}}%
+ \else\ifthirdargument
+ \setvalue{\??tk#1\v!text\c!lefttext}%
+ {\dodoubletexts{#1}\v!text
+ {\c!leftstyle\c!leftcolor\c!leftwidth}{#2}%
+ {\c!leftstyle\c!leftcolor\c!leftwidth}{#2}}%
+ \setvalue{\??tk#1\v!text\c!righttext}%
+ {\dodoubletexts{#1}\v!text
+ {\c!rightstyle\c!rightcolor\c!rightwidth}{#3}%
+ {\c!rightstyle\c!rightcolor\c!rightwidth}{#3}}%
+ \else\ifsecondargument % new
+ \letvalue{\??tk#1\v!text\c!lefttext }\empty
+ \letvalue{\??tk#1\v!text\c!righttext }\empty
+ \setvalue{\??tk#1\v!text\c!middletext}{\dosingletexts{#1}\v!text\c!style\c!color\c!width{#2}}%
+ \else
+ \dosixtupleempty\dosetuptexts[#1][\v!text ][][][][]%
+ \dosixtupleempty\dosetuptexts[#1][\v!margin][][][][]%
+ \dosixtupleempty\dosetuptexts[#1][\v!edge ][][][][]%
+ \fi\fi\fi\fi\fi}
+
+%D Left and right texts are swapped on odd and even pages, but
+%D only when double sided typesetting is enabled.
+
+\def\dodoubletexts{\doifoddpageelse\dodoubletextsodd\dodoubletextseven}
+
+\def\dodoubletextsodd #1#2#3#4#5#6{\dosingletexts{#1}{#2}#3{#4}} % #3 => provides three arguments
+\def\dodoubletextseven#1#2#3#4#5#6{\dosingletexts{#1}{#2}#5{#6}} % #5 => provides three arguments
+
+%D The next macro will be cleaned up and made less messy and
+%D dependent.
+
+\def\placetextlinestrut#1%
+ {\doifvalue{#1\c!strut}\v!yes{\setstrut\strut}}
+
+\def\dosingletexts#1#2#3#4#5#6%
+ {\bgroup
+ \defconvertedargument\ascii{#6}% no longer \defconvertedargument
+ \ifx\ascii\empty\else
+ \dostartattributes{\??tk#1#2}#3#4\empty
+ \placetextlinestrut{\??tk#1}% here !
+ \doifelsemarking\ascii
+ {\dolimitatetexts{\??tk#1#2#5}{\getmarking[\ascii][\v!first]}}%
+ {\ifcsname\??tk->\ascii\endcsname
+ \csname\??tk->\ascii\endcsname
+ \else
+ % #6{}{}{} -> {} needed for macros that look
+ % ahead, like \uniqueMPgraphic
+ \ignorecrlf\dolimitatetexts{\??tk#1#2#5}{#6{}{}{}}%
+ \fi}%
+ \dostopattributes
+ \fi
+ \egroup}
+
+\setvalue{\??tk->\v!pagenumber}{\placelocationpagenumber}
+\setvalue{\??tk->\v!date }{\currentdate}
+
+%D When specified, the texts are automatically limited in
+%D length.
+
+\def\dolimitatetexts#1#2%
+ {\doifelsevaluenothing{#1}{#2}{\limitatetext{#2}{\csname#1\endcsname}{\unknown}}}
+
+%D The placement of text is hooked into the token lists
+%D associated to the area at hand.
+
+\appendtoks \placelayouttextline\v!top \topheight \to \toptextcontent
+\appendtoks \placelayouttextline\v!header\headerheight \to \headertextcontent
+\appendtoks \placelayouttextline\v!text \textheight \to \texttextcontent
+\appendtoks \placelayouttextline\v!footer\footerheight \to \footertextcontent
+\appendtoks \placelayouttextline\v!bottom\bottomheight \to \bottomtextcontent
+
+%D Texts can be disabled, moved up and ignored, depending in
+%D the \type {status} variable. This is handled by the next
+%D couple of macros.
+
+\def\settextlinestatus#1%
+ {\edef\textlinestatus{\csname\??tk#1\c!state\endcsname}}
+
+\def\resettextlinestatus#1% postpone
+ {\expandafter\gdef\csname\??tk#1\s!reset\endcsname{\global\expandafter\let\csname\??tk#1\c!state\endcsname\v!normal}}
+
+\def\placelayouttextline#1% #2
+ {\settextlinestatus#1%
+ \csname\??tk::\ifcsname\??tk::\textlinestatus\endcsname\textlinestatus\else\s!unknown\fi\endcsname#1} % {#2}
+
+\def\doifelselayouttextline#1% shown or not
+ {\edef\!!stringa{\csname\??tk#1\c!state\endcsname}%
+ \ifx\!!stringa\v!normal
+ \@EA\firstoftwoarguments
+ \else\ifx\!!stringa\v!start
+ \@EAEAEA\firstoftwoarguments
+ \else
+ \@EAEAEA\secondoftwoarguments
+ \fi\fi}
+
+\def\doifelselayoutsomeline#1% present or not
+ {\edef\!!stringa{\csname\??tk#1\c!state\endcsname}%
+ \ifx\!!stringa\v!none
+ \@EA\secondoftwoarguments
+ \else\ifx\!!stringa\v!high
+ \@EAEAEA\secondoftwoarguments
+ \else
+ \@EAEAEA\firstoftwoarguments
+ \fi\fi}
+
+% \doplacelayouttextline does the actual placement (when a non-zero height)
+
+\newconditional\resyncaftertextline
+
+% there is no need for {#1} etc since we use symbolic names
+
+\setvalue{\??tk::\v!normal}{\doplacelayouttextline}
+\setvalue{\??tk::\empty }{\doplacelayouttextline}
+
+\setvalue{\??tk::\v!none }#1#2{}
+\setvalue{\??tk::\v!stop }#1#2{}
+
+\setvalue{\??tk::\v!high}#1#2%
+ {\global\settrue\resyncaftertextline
+ \resettextlinestatus#1}
+
+\setvalue{\??tk::\v!empty}#1#2%
+ {\resettextlinestatus#1}
+
+\setvalue{\??tk::\v!start}#1#2%
+ {\resettextlinestatus#1%
+ \doplacelayouttextline#1#2}
+
+\setvalue{\??tk::\v!nomarking}#1#2%
+ {\bgroup
+ \resettextlinestatus#1%
+ \let\dogetmarking\nogetmarking
+ \doplacelayouttextline#1#2%
+ \egroup}
+
+\setvalue{\??tk::\s!unknown}#1#2%
+ {\global\settrue\resyncaftertextline
+ \bgroup % new
+ \resettextlinestatus#1%
+ \csname\??tk#1\textlinestatus\endcsname
+ \csname\??tk#1\v!text \textlinestatus\endcsname
+ \csname\??tk#1\v!margin\textlinestatus\endcsname
+ \csname\??tk#1\v!edge \textlinestatus\endcsname
+ \doplacelayouttextline#1#2%
+ \egroup}
+
+%D The following macro has to be called after a page
+%D is flushed.
+
+\def\resetlayouttextline#1%
+ {\csname\??tk#1\s!reset\endcsname
+ \global\expandafter\let\csname\??tk#1\s!reset\endcsname\relax}
+
+\def\resetlayouttextlines
+ {\resetlayouttextline\v!top
+ \resetlayouttextline\v!header
+ \resetlayouttextline\v!text
+ \resetlayouttextline\v!footer
+ \resetlayouttextline\v!bottom
+ \ifconditional\resyncaftertextline
+ \calculateglobalvsizes
+ \recalculatebackgrounds
+ \global\setfalse\resyncaftertextline
+ \fi}
+
+% \settext[header][text][middle][xxx][yyy]
+
+\def\settextcontent
+ {\doquintupleempty\dosettextcontent}
+
+\def\dosettextcontent[#1][#2][#3][#4][#5]% header text middle text/text
+ {\iffifthargument
+ \setvalue{\??tk#1#2\executeifdefined{:\c!text:#3:}\c!middletext}%
+ {\dodoubletexts{\??tk#1}{#2}%
+ {\c!leftstyle \c!leftcolor \c!leftwidth }{#4}%
+ {\c!rightstyle\c!rightcolor\c!rightwidth}{#5}}%
+ \else\iffourthargument
+ \setvalue{\??tk#1#2\executeifdefined{:\c!text:#3:}\c!middletext}%
+ {\dodoubletexts{\??tk#1}{#2}%
+ {\c!leftstyle \c!leftcolor \c!leftwidth }{#4}%
+ {\c!rightstyle\c!rightcolor\c!rightwidth}{#4}}%
+ \else\ifthirdargument
+ \setvalue{\??tk#1#2\c!middletext}%
+ {\dodoubletexts{\??tk#1}{#2}%
+ {\c!leftstyle \c!leftcolor \c!leftwidth }{#3}%
+ {\c!rightstyle\c!rightcolor\c!rightwidth}{#3}}%
+ \fi\fi\fi}
+
+\def\resettextcontent
+ {\dotripleempty\doresettextcontent}
+
+\def\doresettextcontent[#1][#2][#3]% header text middle
+ {\ifthirdargument
+ \letvalue{\??tk#1#2\executeifdefined{:\c!text:#3:}\c!middletext}\empty
+ \else\ifsecondargument
+ \letvalue{\??tk#1#2\c!lefttext }\empty
+ \letvalue{\??tk#1#2\c!middletext}\empty
+ \letvalue{\??tk#1#2\c!righttext }\empty
+ \fi\fi}
+
+\let\settext \settextcontent % downward compatibility
+\let\resettext\resettextcontent % downward compatibility
+
+\setvalue{:\c!middle:\c!text:}{\c!middletext}
+\setvalue{:\c!left :\c!text:}{\c!lefttext }
+\setvalue{:\c!right :\c!text:}{\c!righttext }
+
+%D The next series of macros is not that easy to read,
+%D because they hook into the main page building macros. By
+%D using token list registers for the text content, we can
+%D easily hook in other code, like menu generators.
+%D
+%D Beware: the token lists are always expanded, also when the
+%D height of an area is zero. This is because reset actions can
+%D be part of them.
+
+\newbox\scratchpagebox
+
+\def\gettextboxes
+ {\setbox\scratchpagebox\vbox
+ {\dontcomplain
+ \calculatereducedvsizes
+ \swapmargins
+ \offinterlineskip
+ \vskip\dimexpr-\topheight-\topdistance\relax
+ \the\toptextcontent
+ \vskip\dimexpr\topheight+\topdistance\relax
+ \the\headertextcontent
+ \vskip\dimexpr\headerheight+\headerdistance\relax
+ \placepositionanchors
+ \vskip-\textheight
+ \the\texttextcontent
+ \vskip\textheight
+ \the\everyendoftextbody
+ \vskip\footerdistance
+ \the\footertextcontent
+ \vskip\dimexpr\footerheight+\bottomdistance\relax
+ \the\bottomtextcontent
+ \vskip\bottomheight
+ \vfilll}%
+ \smashbox\scratchpagebox
+ \box\scratchpagebox}
+
+\def\getmainbox#1#2%
+ {\setbox\scratchpagebox\vbox
+ {\offinterlineskip % na \paginaletter !
+ \calculatereducedvsizes
+ \calculatehsizes
+ \swapmargins
+ \vskip\dimexpr\headerheight+\headerdistance+\layoutparameter\c!textdistance\relax
+ \hbox to \makeupwidth
+ {\bgroup
+ \swapmargins
+ \goleftonpage
+ \ifdim\leftedgewidth>\zeropoint
+ \the\leftedgetextcontent
+ \hskip\leftedgewidth
+ \fi
+ \hskip\leftedgedistance
+ \ifdim\leftmarginwidth>\zeropoint
+ \the\leftmargintextcontent
+ \hskip\leftmarginwidth
+ \fi
+ \hskip\leftmargindistance
+ \egroup
+ \mkprocesspagecontents{#2}%
+ \settextpagecontent\scratchpagebox{#1}{#2}%
+ \addtextbackground\scratchpagebox
+ \addtextgridlayer\scratchpagebox
+ \box\scratchpagebox
+ \bgroup
+ \hskip\rightmargindistance
+ \ifdim\rightmarginwidth>\zeropoint
+ \the\rightmargintextcontent
+ \hskip\rightmarginwidth
+ \fi
+ \hskip\rightedgedistance
+ \ifdim\rightedgewidth>\zeropoint
+ \the\rightedgetextcontent
+ \hskip\rightedgewidth
+ \fi
+ \egroup
+ \hss}}%
+ \smashbox\scratchpagebox
+ \box\scratchpagebox}
+
+%D The main text area has to be combined with some additional
+%D (tracing) information.
+
+% will be stored as normal and overloaded in page-lyr and later in
+% page-spr we overload the the stored version .. evenatually i will
+% clear up the experimental mess
+
+\def\settextpagecontent#1#2#3% #2 and #3 will disappear
+ {\setbox#1\hbox to \makeupwidth
+ {\hss % so don't change this
+ \setlayoutcomponentattribute\v!page\v!text
+ \vbox \layoutcomponentboxattribute to \textheight
+ {\offinterlineskip
+ \freezetextwidth
+ \hsize\textwidth % local variant of \sethsize
+ \boxmaxdepth\maxdepth
+ \noindent % content can be < \hsize
+ \dopagecontents#2#3}%
+ \hss}%
+ \dp#1\zeropoint}
+
+\definepalet
+ [layout]
+ [grid=red,
+ page=green]
+
+\def\addtextgridlayer#1% to be checked for color and layer
+ {\ifcase\showgridstate\else % 1=bottom 2=top
+ \startcolor[layout:grid]%
+ \setgridbox\scratchbox\makeupwidth\textheight % todo: check color
+ \setbox#1\hbox
+ {\ifcase\showgridstate\or\or\box#1\hskip-\makeupwidth\fi
+ \bgroup % color
+ \ifcase\layoutcolumns\else
+ \gray
+ \setlayoutcomponentattribute\v!grid\v!columns
+ \hbox \layoutcomponentboxattribute to \makeupwidth
+ {\dorecurse\layoutcolumns
+ {\hskip\layoutcolumnwidth
+ \ifnum\recurselevel<\layoutcolumns
+ \vrule
+ \!!height\ht\scratchbox
+ \!!depth\dp\scratchbox
+ \!!width\layoutcolumndistance
+ \fi}}%
+ \hskip-\makeupwidth
+ \fi
+ \setlayoutcomponentattribute\v!grid\v!lines
+ \hbox \layoutcomponentboxattribute{\box\scratchbox}%
+ \egroup
+ \ifcase\showgridstate\or\hskip-\makeupwidth\box#1\fi}%
+ \stopcolor
+ \fi}
+
+%D The placement of a whole line is handled by the next two
+%D macros. These are hooked into the general purpose token
+%D list registers mentioned before.
+
+\def\ignoredlinebreak{\unskip\space\ignorespaces}
+
+% \def\doplacelayouttextline#1#2%
+% {\ifdim#2>\zeropoint\relax % prevents pagenumbers when zero height
+% \goleftonpage
+% \hbox
+% {\setbox\scratchpagebox\vbox to #2
+% {\vsize#2\relax
+% \normalbaselines
+% \let\\\ignoredlinebreak
+% \let\crlf\ignoredlinebreak
+% \csname\??tk#1\c!before\endcsname
+% \doifbothsidesoverruled
+% {\dodoplacelayouttextline#1\c!lefttext \c!middletext\c!righttext\zerocount\plusone}
+% {\dodoplacelayouttextline#1\c!lefttext \c!middletext\c!righttext\zerocount\plusone}
+% {\dodoplacelayouttextline#1\c!righttext\c!middletext\c!lefttext \plusone\zerocount}%
+% \csname\??tk#1\c!after\endcsname
+% \kern\zeropoint}% keep the \dp, beware of \vtops, never change this!
+% \dp\scratchpagebox\zeropoint
+% \box\scratchpagebox}%
+% \vskip-#2\relax
+% \fi}
+%
+% \def\dodoplacelayouttextline#1#2#3#4#5#6% \hsize toegevoegd, \hss's niet meer wijzigen
+% {\hbox
+% {\ifdim\leftedgewidth>\zeropoint
+% \dododoplacelayouttextline\leftedgewidth#1\v!edge
+% {\hss\csname\??tk#1\v!edge#2\endcsname}%
+% \hskip\leftedgedistance
+% \fi
+% \ifdim\leftmarginwidth>\zeropoint
+% \dododoplacelayouttextline\leftmarginwidth#1\v!margin
+% {\hbox to \leftmarginwidth
+% {\hss\csname\??tk#1\v!margin#2\endcsname}%
+% \hskip-\leftmarginwidth
+% \hbox to \leftmarginwidth
+% {\hss\ifcase#5\or\csname\??tk#1\v!margin\c!margintext\endcsname\fi}}%
+% \hskip\leftmargindistance
+% \fi
+% \ifdim\makeupwidth>\zeropoint
+% \dododoplacelayouttextline\makeupwidth{#1}\v!text
+% {\hbox to \makeupwidth
+% {\ifcase#5\or\@@nmpre{\csname\??tk#1\v!text\c!marginedgetext\endcsname}\fi
+% \csname\??tk#1\v!text#2\endcsname\hss}%
+% \hskip-\makeupwidth
+% \hbox to \makeupwidth
+% {\hss\csname\??tk#1\v!text#3\endcsname\hss}%
+% \hskip-\makeupwidth
+% \hbox to \makeupwidth
+% {\hss\csname\??tk#1\v!text#4\endcsname
+% \ifcase#6\or\@@nmpos{\csname\??tk#1\v!text\c!marginedgetext\endcsname}\fi}}%
+% \fi
+% \ifdim\rightmarginwidth>\zeropoint
+% \hskip\rightmargindistance
+% \dododoplacelayouttextline\rightmarginwidth{#1}\v!margin
+% {\hbox to \rightmarginwidth
+% {\csname\??tk#1\v!margin#4\endcsname\hss}%
+% \hskip-\rightmarginwidth
+% \hbox to \rightmarginwidth
+% {\ifcase#6\or\csname\??tk#1\v!margin\c!margintext\endcsname\fi\hss}}%
+% \fi
+% \ifdim\rightedgewidth>\zeropoint
+% \hskip\rightedgedistance
+% \dododoplacelayouttextline\rightedgewidth{#1}\v!edge
+% {\csname\??tk#1\v!edge#4\endcsname\hss}%
+% \fi}}
+%
+% \def\dododoplacelayouttextline#1#2#3#4%
+% {\vbox % to \vsize
+% {\hsize#1\relax
+% \csname\??tk#2#3\c!before\endcsname
+% \setlayoutcomponentattribute#2#3%
+% \hbox \layoutcomponentboxattribute to #1{#4}%
+% \csname\??tk#2#3\c!after\endcsname}}
+
+\def\doplacelayouttextline#1#2%
+ {\let\currentlayouttextline#1%
+ \ifdim#2>\zeropoint\relax % prevents pagenumbers when zero height
+ \doplacelayouttextlineindeed{#2}%
+ \fi}
+
+\def\doplacelayouttextlineindeed#1%
+ {\goleftonpage
+ \hbox
+ {\setbox\scratchpagebox\vbox to #1
+ {\vsize#1\relax
+ \normalbaselines
+ \let\\\ignoredlinebreak
+ \let\crlf\ignoredlinebreak
+ \csname\??tk\currentlayouttextline\c!before\endcsname
+ \doifbothsidesoverruled\dodoplacelayouttextlineright\dodoplacelayouttextlineright\dodoplacelayouttextlineleft
+ \csname\??tk\currentlayouttextline\c!after\endcsname
+ \kern\zeropoint}% keep the \dp, beware of \vtops, never change this!
+ \dp\scratchpagebox\zeropoint
+ \box\scratchpagebox}%
+ \vskip-#1\relax}
+
+\def\dodoplacelayouttextlineright{\dodoplacelayouttextline\c!lefttext \c!middletext\c!righttext\zerocount\plusone}
+\def\dodoplacelayouttextlineleft {\dodoplacelayouttextline\c!righttext\c!middletext\c!lefttext \plusone\zerocount}
+
+\def\dodoplacelayouttextline#1#2#3#4#5% \hsize toegevoegd, \hss's niet meer wijzigen
+ {\hbox
+ {\ifdim\leftedgewidth>\zeropoint
+ \dododoplacelayouttextline\leftedgewidth\currentlayouttextline\v!edge{\thelayoutleftedgeline#1}%
+ \hskip\leftedgedistance
+ \fi
+ \ifdim\leftmarginwidth>\zeropoint
+ \dododoplacelayouttextline\leftmarginwidth\currentlayouttextline\v!margin{\thelayoutleftmarginline#1#4}%
+ \hskip\leftmargindistance
+ \fi
+ \ifdim\makeupwidth>\zeropoint
+ \dododoplacelayouttextline\makeupwidth\currentlayouttextline\v!text{\thelayouttextline#1#2#3#4#5}%
+ \fi
+ \ifdim\rightmarginwidth>\zeropoint
+ \hskip\rightmargindistance
+ \dododoplacelayouttextline\rightmarginwidth\currentlayouttextline\v!margin{\thelayoutrightmarginline#3#5}%
+ \fi
+ \ifdim\rightedgewidth>\zeropoint
+ \hskip\rightedgedistance
+ \dododoplacelayouttextline\rightedgewidth\currentlayouttextline\v!edge{\thelayoutrightedgeline#1}%
+ \fi}}
+
+\def\thelayoutleftedgeline#1%
+ {\hss\csname\??tk\currentlayouttextline\v!edge#1\endcsname}%
+
+\def\thelayoutrightedgeline#1%
+ {\csname\??tk\currentlayouttextline\v!edge#1\endcsname\hss}
+
+\def\thelayoutleftmarginline#1#2%
+ {\hbox to \leftmarginwidth{\hss\csname\??tk\currentlayouttextline\v!margin#1\endcsname}%
+ \hskip-\leftmarginwidth
+ \hbox to \leftmarginwidth{\hss\ifcase#2\or\csname\??tk\currentlayouttextline\v!margin\c!margintext\endcsname\fi}}
+
+\def\thelayoutrightmarginline#1#2%
+ {\hbox to \rightmarginwidth{\csname\??tk\currentlayouttextline\v!margin#1\endcsname\hss}%
+ \hskip-\rightmarginwidth
+ \hbox to \rightmarginwidth{\ifcase#2\or\csname\??tk\currentlayouttextline\v!margin\c!margintext\endcsname\fi\hss}}
+
+\def\thelayoutedgetextline{\csname\??tk\currentlayouttextline\v!text\c!marginedgetext\endcsname}
+
+\def\thelayouttextline#1#2#3#4#5%
+ {\hbox to \makeupwidth{\ifcase#4\or\@@nmpre\thelayoutedgetextline\fi\csname\??tk\currentlayouttextline\v!text#1\endcsname\hss}%
+ \hskip-\makeupwidth
+ \hbox to \makeupwidth{\hss\csname\??tk\currentlayouttextline\v!text#2\endcsname\hss}%
+ \hskip-\makeupwidth
+ \hbox to \makeupwidth{\hss\csname\??tk\currentlayouttextline\v!text#3\endcsname\ifcase#5\or\@@nmpos\thelayoutedgetextline\fi}}
+
+\def\dododoplacelayouttextline#1#2#3#4%
+ {\vbox % to \vsize
+ {\hsize#1\relax
+ \csname\??tk#2#3\c!before\endcsname
+ \setlayoutcomponentattribute#2#3%
+ \hbox \layoutcomponentboxattribute to #1{#4}%
+ \csname\??tk#2#3\c!after\endcsname}}
+
+%D Although it is far better to use backgrounds for this
+%D purpose, one can add a rule in the following way. This
+%D method makes the rules disappear in case of an empty text
+%D line. Consider this a feature.
+%D
+%D \starttyping
+%D \setupheadertexts[left][right]
+%D
+%D \setupheader[text][after=\hrule,style=bold]
+%D
+%D \starttext
+%D \input tufte \page
+%D \setupheader[state=empty]
+%D \input tufte \page
+%D \stoptext
+%D \stoptyping
+
+%D The next twosome will be done differently (using an
+%D existing auxiliary macro).
+
+% \def\@@nmpre#1{\setbox0\hbox{#1}\ifdim\wd0=\zeropoint\else\unhbox0\tfskip\fi}
+% \def\@@nmpos#1{\setbox0\hbox{#1}\ifdim\wd0=\zeropoint\else\tfskip\unhbox0\fi}
+
+% cleaner
+%
+% \def\@@nmpre#1{\doiftext{#1}{{#1}\tfskip}}
+% \def\@@nmpos#1{\doiftext{#1}{\tfskip{#1}}}
+%
+% newer
+%
+% \def\@@nmprepos#1#2#3#4#5%
+% {\doifelsenothing\@@nmwidth
+% {\doiftext{#5}{#1{#5}#2}}
+% {\doiftext{#5}{\hbox to \@@nmwidth{#3{#5}#4}}}}
+%
+% \def\@@nmpre{\@@nmprepos\empty\tfskip\relax\hss}
+% \def\@@nmpos{\@@nmprepos\tfskip\empty\hss\relax}
+%
+% faster
+
+\def\@@nmpre#1%
+ {\begingroup
+ \setbox\scratchbox\normalhbox{\trialtypesettingtrue\ignorespaces#1\removeunwantedspaces}%
+ \ifzeropt\wd\scratchbox\else
+ \doifelsenothing\@@nmwidth
+ {\box\scratchbox\tfskip}
+ {\hbox to \@@nmwidth{\box\scratchbox\hss}}%
+ \fi
+ \endgroup}
+
+\def\@@nmpos#1%
+ {\begingroup
+ \setbox\scratchbox\normalhbox{\trialtypesettingtrue\ignorespaces#1\removeunwantedspaces}%
+ \ifzeropt\wd\scratchbox\else
+ \doifelsenothing\@@nmwidth
+ {\tfskip\box\scratchbox}
+ {\hbox to \@@nmwidth{\hss\box\scratchbox}}%
+ \fi
+ \endgroup}
+
+%D This code will move to \type {page-flt.tex}.
+
+\appendtoks
+ \plaatsrechtermargeblok \hskip-\rightmarginwidth
+\to \rightmargintextcontent
+
+\appendtoks
+ \plaatslinkermargeblok \hskip-\leftmarginwidth
+\to \leftmargintextcontent
+
+%D The next hook will later be used for keeping track of
+%D positions, i.e.\ it will provide a proper (page
+%D dependent) reference point.
+
+\ifx\undefined\placepositionanchors
+ \def\placepositionanchors{\vskip\textheight}
+\fi
+
+%D \macros
+%D {definetext}
+%D
+%D Some macros ago, we implemented the \type {status} option
+%D \type {unknown}. This one is used to take care of
+%D symbolic texts handlers.
+%D
+%D \showsetup{definetext}
+%D
+%D The next example demonstrates how we can use this
+%D mechanism to provide page (event) dependent text lines.
+%D
+%D \starttyping
+%D \definetext[chapter][footer][pagenumber]
+%D \setuphead[chapter][header=high,footer=chapter]
+%D \setupheadertexts[pagenumber]
+%D \setupfootertexts[left][right]
+%D \chapter{eerste} \dorecurse{20}{\input tufte \relax}
+%D \chapter{tweede} \dorecurse{20}{\input tufte \relax}
+%D \stoptyping
+
+\def\definetext
+ {\doseventupleempty\dodefinetext}
+
+\def\dodefinetext[#1][#2][#3][#4][#5][#6][#7]%
+ {\ifseventhargument
+ \setvalue{\??tk#2#3#1}{\dosixtupleempty\dosetuptexts[#2][#3][#4][#5][#6][#7]}%
+ \else\ifsixthargument
+ \setvalue{\??tk #2#1}{\dosixtupleempty\dosetuptexts[#2][#3][#4][#5][#6]}%
+ \else\iffifthargument
+ \setvalue{\??tk#2#3#1}{\dosixtupleempty\dosetuptexts[#2][#3][#4][#5]}%
+ \else\iffourthargument
+ \setvalue{\??tk #2#1}{\dosixtupleempty\dosetuptexts[#2][#3][#4]}%
+ \else
+ \setvalue{\??tk #2#1}{\dosixtupleempty\dosetuptexts[#2][#3]}%
+ \fi\fi\fi\fi}
+
+%D The rest of this file is dedicated to setting up the
+%D texts. This code is not that impressive.
+
+\setupheadertexts [\v!text] [] []
+\setupheadertexts [\v!margin] [] []
+\setupheadertexts [\v!edge] [] []
+
+\setupfootertexts [\v!text] [] []
+\setupfootertexts [\v!margin] [] []
+\setupfootertexts [\v!edge] [] []
+
+\setuptexttexts [\v!text] [] []
+\setuptexttexts [\v!margin] [] []
+\setuptexttexts [\v!edge] [] []
+
+\setupbottomtexts [\v!text] [] []
+\setupbottomtexts [\v!margin] [] []
+\setupbottomtexts [\v!edge] [] []
+
+\setuptoptexts [\v!text] [] []
+\setuptoptexts [\v!margin] [] []
+\setuptoptexts [\v!edge] [] []
+
+% alternative
+%
+% \def\resetlayouttekst%
+% {\dodoubleempty\doresetlayouttekst}
+%
+% \def\doresetlayouttekst[#1][#2]%
+% {\ifsecondargument
+% \dodoresetlayouttekst[#1][#2]%
+% \else
+% \dodoresetlayouttekst[#1][\v!tekst]%
+% \fi}
+%
+% \def\dodoresetlayouttekst[#1][#2]%
+% {...}
+%
+% \def\docommand#1%
+% {\resetlayouttekst[#1][\v!tekst]%
+% \resetlayouttekst[#1][\v!marge]%
+% \resetlayouttekst[#1][\v!rand]}
+
+%D We combine a lot of similar settings in a macro that
+%D we will later dispose.
+
+\def\dodocommand[#1][#2]%
+ {\getparameters
+ [\??tk#1#2]
+ [%\c!state=\v!normal, % moved
+ \c!before=,% both global and local are used
+ \c!after=,% both global and local are used
+ \c!strut=,% the local one, not (yet) used
+ \c!style=\csname\??tk#1\c!style\endcsname,% hm, got lost
+ \c!color=\csname\??tk#1\c!color\endcsname,% hm, got lost
+ \c!lefttext=,
+ \c!middletext=,
+ \c!righttext=,
+ \c!marginedgetext=,
+ \c!margintext=,
+ \c!width=]%
+ \inheritparameter[\??tk#1#2][\c!leftstyle ][\c!style ]%
+ \inheritparameter[\??tk#1#2][\c!rightstyle][\c!style ]%
+ \inheritparameter[\??tk#1#2][\c!leftcolor ][\c!color ]%
+ \inheritparameter[\??tk#1#2][\c!rightcolor][\c!color ]%
+ \inheritparameter[\??tk#1#2][\c!leftwidth ][\c!width]%
+ \inheritparameter[\??tk#1#2][\c!rightwidth][\c!width]}
+
+\def\docommand#1%
+ {\dodocommand[#1][\v!text]%
+ \dodocommand[#1][\v!margin]%
+ \dodocommand[#1][\v!edge]}
+
+\docommand\v!top
+\docommand\v!header
+\docommand\v!footer
+\docommand\v!text
+\docommand\v!bottom
+
+\let\docommand \relax
+\let\dodocommand\relax
+
+%D While the header and footer lines are moved away from the
+%D main text, the top and bottom lines are centered.
+
+\setuptop [\c!state=\v!normal,\c!before=\vss,\c!after=\vss,\c!strut=]
+\setupheader[\c!state=\v!normal,\c!before=, \c!after=\vss,\c!strut=\v!yes]
+\setuptext [\c!state=\v!normal,\c!before=\vss,\c!after=\vss,\c!strut=]
+\setupfooter[\c!state=\v!normal,\c!before=\vss,\c!after=, \c!strut=\v!yes]
+\setupbottom[\c!state=\v!normal,\c!before=\vss,\c!after=\vss,\c!strut=]
+
+\setuptop [\c!style=,\c!color=]
+\setupheader[\c!style=,\c!color=]
+\setuptext [\c!style=,\c!color=]
+\setupfooter[\c!style=,\c!color=]
+\setupbottom[\c!style=,\c!color=]
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/pdfr-def.tex b/Master/texmf-dist/tex/context/base/pdfr-def.mkii
index fb1aaa0604d..7554bda9e92 100644
--- a/Master/texmf-dist/tex/context/base/pdfr-def.tex
+++ b/Master/texmf-dist/tex/context/base/pdfr-def.mkii
@@ -1,5 +1,8 @@
-% This file is generated with Luatex using the
-% character tables that come with ConTeXt MKIV.
+% filename : pdfr-def.tex
+% comment : generated by mtxrun --script chars --pdf
+% author : Hans Hagen, PRAGMA-ADE, Hasselt NL
+% copyright: PRAGMA ADE / ConTeXt Development Team
+% license : see context related readme files
%
\pdfglyphtounicode{space}{0020}%
\pdfglyphtounicode{exclam}{0021}%
@@ -33,808 +36,808 @@
\pdfglyphtounicode{equal}{003D}%
\pdfglyphtounicode{greater}{003E}%
\pdfglyphtounicode{question}{003F}%
+\pdfglyphtounicode{at}{0040}%
\pdfglyphtounicode{A}{0041}%
+\pdfglyphtounicode{B}{0042}%
\pdfglyphtounicode{C}{0043}%
+\pdfglyphtounicode{D}{0044}%
\pdfglyphtounicode{E}{0045}%
+\pdfglyphtounicode{F}{0046}%
\pdfglyphtounicode{G}{0047}%
+\pdfglyphtounicode{H}{0048}%
\pdfglyphtounicode{I}{0049}%
+\pdfglyphtounicode{J}{004A}%
\pdfglyphtounicode{K}{004B}%
+\pdfglyphtounicode{L}{004C}%
\pdfglyphtounicode{M}{004D}%
+\pdfglyphtounicode{N}{004E}%
\pdfglyphtounicode{O}{004F}%
+\pdfglyphtounicode{P}{0050}%
\pdfglyphtounicode{Q}{0051}%
+\pdfglyphtounicode{R}{0052}%
\pdfglyphtounicode{S}{0053}%
+\pdfglyphtounicode{T}{0054}%
\pdfglyphtounicode{U}{0055}%
+\pdfglyphtounicode{V}{0056}%
\pdfglyphtounicode{W}{0057}%
+\pdfglyphtounicode{X}{0058}%
\pdfglyphtounicode{Y}{0059}%
+\pdfglyphtounicode{Z}{005A}%
\pdfglyphtounicode{bracketleft}{005B}%
+\pdfglyphtounicode{backslash}{005C}%
\pdfglyphtounicode{bracketright}{005D}%
+\pdfglyphtounicode{asciicircum}{005E}%
\pdfglyphtounicode{underscore}{005F}%
+\pdfglyphtounicode{grave}{0060}%
\pdfglyphtounicode{a}{0061}%
+\pdfglyphtounicode{b}{0062}%
\pdfglyphtounicode{c}{0063}%
+\pdfglyphtounicode{d}{0064}%
\pdfglyphtounicode{e}{0065}%
+\pdfglyphtounicode{f}{0066}%
\pdfglyphtounicode{g}{0067}%
+\pdfglyphtounicode{h}{0068}%
\pdfglyphtounicode{i}{0069}%
+\pdfglyphtounicode{j}{006A}%
\pdfglyphtounicode{k}{006B}%
+\pdfglyphtounicode{l}{006C}%
\pdfglyphtounicode{m}{006D}%
+\pdfglyphtounicode{n}{006E}%
\pdfglyphtounicode{o}{006F}%
+\pdfglyphtounicode{p}{0070}%
\pdfglyphtounicode{q}{0071}%
+\pdfglyphtounicode{r}{0072}%
\pdfglyphtounicode{s}{0073}%
+\pdfglyphtounicode{t}{0074}%
\pdfglyphtounicode{u}{0075}%
+\pdfglyphtounicode{v}{0076}%
\pdfglyphtounicode{w}{0077}%
+\pdfglyphtounicode{x}{0078}%
\pdfglyphtounicode{y}{0079}%
+\pdfglyphtounicode{z}{007A}%
\pdfglyphtounicode{braceleft}{007B}%
+\pdfglyphtounicode{bar}{007C}%
\pdfglyphtounicode{braceright}{007D}%
+\pdfglyphtounicode{asciitilde}{007E}%
+\pdfglyphtounicode{exclamdown}{00A1}%
+\pdfglyphtounicode{cent}{00A2}%
\pdfglyphtounicode{sterling}{00A3}%
+\pdfglyphtounicode{currency}{00A4}%
+\pdfglyphtounicode{yen}{00A5}%
+\pdfglyphtounicode{brokenbar}{00A6}%
\pdfglyphtounicode{section}{00A7}%
+\pdfglyphtounicode{dieresis}{00A8}%
+\pdfglyphtounicode{copyright}{00A9}%
+\pdfglyphtounicode{ordfeminine}{00AA}%
\pdfglyphtounicode{guillemotleft}{00AB}%
+\pdfglyphtounicode{logicalnot}{00AC}%
+\pdfglyphtounicode{registered}{00AE}%
\pdfglyphtounicode{macron}{00AF}%
+\pdfglyphtounicode{degree}{00B0}%
+\pdfglyphtounicode{plusminus}{00B1}%
+\pdfglyphtounicode{acute}{00B4}%
+\pdfglyphtounicode{mu}{00B5}%
+\pdfglyphtounicode{paragraph}{00B6}%
\pdfglyphtounicode{periodcentered}{00B7}%
+\pdfglyphtounicode{cedilla}{00B8}%
+\pdfglyphtounicode{ordmasculine}{00BA}%
\pdfglyphtounicode{guillemotright}{00BB}%
+\pdfglyphtounicode{onequarter}{00BC}%
+\pdfglyphtounicode{onehalf}{00BD}%
+\pdfglyphtounicode{threequarters}{00BE}%
\pdfglyphtounicode{questiondown}{00BF}%
+\pdfglyphtounicode{Agrave}{00C0}%
+\pdfglyphtounicode{Aacute}{00C1}%
+\pdfglyphtounicode{Acircumflex}{00C2}%
\pdfglyphtounicode{Atilde}{00C3}%
+\pdfglyphtounicode{Adieresis}{00C4}%
+\pdfglyphtounicode{Aring}{00C5}%
+\pdfglyphtounicode{AE}{00C6}%
\pdfglyphtounicode{Ccedilla}{00C7}%
+\pdfglyphtounicode{Egrave}{00C8}%
+\pdfglyphtounicode{Eacute}{00C9}%
+\pdfglyphtounicode{Ecircumflex}{00CA}%
\pdfglyphtounicode{Edieresis}{00CB}%
+\pdfglyphtounicode{Igrave}{00CC}%
+\pdfglyphtounicode{Iacute}{00CD}%
+\pdfglyphtounicode{Icircumflex}{00CE}%
\pdfglyphtounicode{Idieresis}{00CF}%
+\pdfglyphtounicode{Eth}{00D0}%
+\pdfglyphtounicode{Ntilde}{00D1}%
+\pdfglyphtounicode{Ograve}{00D2}%
\pdfglyphtounicode{Oacute}{00D3}%
+\pdfglyphtounicode{Ocircumflex}{00D4}%
+\pdfglyphtounicode{Otilde}{00D5}%
+\pdfglyphtounicode{Odieresis}{00D6}%
\pdfglyphtounicode{multiply}{00D7}%
+\pdfglyphtounicode{Oslash}{00D8}%
+\pdfglyphtounicode{Ugrave}{00D9}%
+\pdfglyphtounicode{Uacute}{00DA}%
\pdfglyphtounicode{Ucircumflex}{00DB}%
+\pdfglyphtounicode{Udieresis}{00DC}%
+\pdfglyphtounicode{Yacute}{00DD}%
+\pdfglyphtounicode{Thorn}{00DE}%
\pdfglyphtounicode{germandbls}{00DF}%
+\pdfglyphtounicode{agrave}{00E0}%
+\pdfglyphtounicode{aacute}{00E1}%
+\pdfglyphtounicode{acircumflex}{00E2}%
\pdfglyphtounicode{atilde}{00E3}%
+\pdfglyphtounicode{adieresis}{00E4}%
+\pdfglyphtounicode{aring}{00E5}%
+\pdfglyphtounicode{ae}{00E6}%
\pdfglyphtounicode{ccedilla}{00E7}%
+\pdfglyphtounicode{egrave}{00E8}%
+\pdfglyphtounicode{eacute}{00E9}%
+\pdfglyphtounicode{ecircumflex}{00EA}%
\pdfglyphtounicode{edieresis}{00EB}%
+\pdfglyphtounicode{igrave}{00EC}%
+\pdfglyphtounicode{iacute}{00ED}%
+\pdfglyphtounicode{icircumflex}{00EE}%
\pdfglyphtounicode{idieresis}{00EF}%
+\pdfglyphtounicode{eth}{00F0}%
+\pdfglyphtounicode{ntilde}{00F1}%
+\pdfglyphtounicode{ograve}{00F2}%
\pdfglyphtounicode{oacute}{00F3}%
+\pdfglyphtounicode{ocircumflex}{00F4}%
+\pdfglyphtounicode{otilde}{00F5}%
+\pdfglyphtounicode{odieresis}{00F6}%
\pdfglyphtounicode{divide}{00F7}%
+\pdfglyphtounicode{oslash}{00F8}%
+\pdfglyphtounicode{ugrave}{00F9}%
+\pdfglyphtounicode{uacute}{00FA}%
\pdfglyphtounicode{ucircumflex}{00FB}%
+\pdfglyphtounicode{udieresis}{00FC}%
+\pdfglyphtounicode{yacute}{00FD}%
+\pdfglyphtounicode{thorn}{00FE}%
\pdfglyphtounicode{ydieresis}{00FF}%
+\pdfglyphtounicode{Amacron}{0100}%
+\pdfglyphtounicode{amacron}{0101}%
+\pdfglyphtounicode{Abreve}{0102}%
+\pdfglyphtounicode{abreve}{0103}%
+\pdfglyphtounicode{Aogonek}{0104}%
+\pdfglyphtounicode{aogonek}{0105}%
+\pdfglyphtounicode{Cacute}{0106}%
\pdfglyphtounicode{cacute}{0107}%
+\pdfglyphtounicode{Ccircumflex}{0108}%
+\pdfglyphtounicode{ccircumflex}{0109}%
+\pdfglyphtounicode{Cdotaccent}{010A}%
+\pdfglyphtounicode{cdotaccent}{010B}%
+\pdfglyphtounicode{Ccaron}{010C}%
+\pdfglyphtounicode{ccaron}{010D}%
+\pdfglyphtounicode{Dcaron}{010E}%
\pdfglyphtounicode{dcaron}{010F}%
+\pdfglyphtounicode{Dcroat}{0110}%
+\pdfglyphtounicode{dcroat}{0111}%
+\pdfglyphtounicode{Emacron}{0112}%
+\pdfglyphtounicode{emacron}{0113}%
+\pdfglyphtounicode{Ebreve}{0114}%
+\pdfglyphtounicode{ebreve}{0115}%
+\pdfglyphtounicode{Edotaccent}{0116}%
\pdfglyphtounicode{edotaccent}{0117}%
+\pdfglyphtounicode{Eogonek}{0118}%
+\pdfglyphtounicode{eogonek}{0119}%
+\pdfglyphtounicode{Ecaron}{011A}%
+\pdfglyphtounicode{ecaron}{011B}%
+\pdfglyphtounicode{Gcircumflex}{011C}%
+\pdfglyphtounicode{gcircumflex}{011D}%
+\pdfglyphtounicode{Gbreve}{011E}%
\pdfglyphtounicode{gbreve}{011F}%
+\pdfglyphtounicode{Gdotaccent}{0120}%
+\pdfglyphtounicode{gdotaccent}{0121}%
+\pdfglyphtounicode{Gcommaaccent}{0122}%
+\pdfglyphtounicode{gcommaaccent}{0123}%
+\pdfglyphtounicode{Hcircumflex}{0124}%
+\pdfglyphtounicode{hcircumflex}{0125}%
+\pdfglyphtounicode{Hbar}{0126}%
\pdfglyphtounicode{hbar}{0127}%
+\pdfglyphtounicode{Itilde}{0128}%
+\pdfglyphtounicode{itilde}{0129}%
+\pdfglyphtounicode{Imacron}{012A}%
+\pdfglyphtounicode{imacron}{012B}%
+\pdfglyphtounicode{Ibreve}{012C}%
+\pdfglyphtounicode{ibreve}{012D}%
+\pdfglyphtounicode{Iogonek}{012E}%
\pdfglyphtounicode{iogonek}{012F}%
+\pdfglyphtounicode{Idotaccent}{0130}%
+\pdfglyphtounicode{dotlessi}{0131}%
+\pdfglyphtounicode{IJ}{0132}%
+\pdfglyphtounicode{ij}{0133}%
+\pdfglyphtounicode{Jcircumflex}{0134}%
+\pdfglyphtounicode{jcircumflex}{0135}%
+\pdfglyphtounicode{Kcommaaccent}{0136}%
\pdfglyphtounicode{kcommaaccent}{0137}%
+\pdfglyphtounicode{kgreenlandic}{0138}%
+\pdfglyphtounicode{Lacute}{0139}%
+\pdfglyphtounicode{lacute}{013A}%
+\pdfglyphtounicode{Lcommaaccent}{013B}%
+\pdfglyphtounicode{lcommaaccent}{013C}%
+\pdfglyphtounicode{Lcaron}{013D}%
+\pdfglyphtounicode{lcaron}{013E}%
\pdfglyphtounicode{Ldot}{013F}%
+\pdfglyphtounicode{ldot}{0140}%
+\pdfglyphtounicode{Lslash}{0141}%
+\pdfglyphtounicode{lslash}{0142}%
+\pdfglyphtounicode{Nacute}{0143}%
+\pdfglyphtounicode{nacute}{0144}%
+\pdfglyphtounicode{Ncommaaccent}{0145}%
+\pdfglyphtounicode{ncommaaccent}{0146}%
\pdfglyphtounicode{Ncaron}{0147}%
+\pdfglyphtounicode{ncaron}{0148}%
+\pdfglyphtounicode{napostrophe}{0149}%
+\pdfglyphtounicode{Eng}{014A}%
+\pdfglyphtounicode{eng}{014B}%
+\pdfglyphtounicode{Omacron}{014C}%
+\pdfglyphtounicode{omacron}{014D}%
+\pdfglyphtounicode{Obreve}{014E}%
\pdfglyphtounicode{obreve}{014F}%
+\pdfglyphtounicode{Ohungarumlaut}{0150}%
+\pdfglyphtounicode{ohungarumlaut}{0151}%
+\pdfglyphtounicode{OE}{0152}%
+\pdfglyphtounicode{oe}{0153}%
+\pdfglyphtounicode{Racute}{0154}%
+\pdfglyphtounicode{racute}{0155}%
+\pdfglyphtounicode{Rcommaaccent}{0156}%
\pdfglyphtounicode{rcommaaccent}{0157}%
+\pdfglyphtounicode{Rcaron}{0158}%
+\pdfglyphtounicode{rcaron}{0159}%
+\pdfglyphtounicode{Sacute}{015A}%
+\pdfglyphtounicode{sacute}{015B}%
+\pdfglyphtounicode{Scircumflex}{015C}%
+\pdfglyphtounicode{scircumflex}{015D}%
+\pdfglyphtounicode{Scedilla}{015E}%
\pdfglyphtounicode{scedilla}{015F}%
+\pdfglyphtounicode{Scaron}{0160}%
+\pdfglyphtounicode{scaron}{0161}%
+\pdfglyphtounicode{Tcommaaccent}{0162}%
+\pdfglyphtounicode{tcommaaccent}{0163}%
+\pdfglyphtounicode{Tcaron}{0164}%
+\pdfglyphtounicode{tcaron}{0165}%
+\pdfglyphtounicode{Tbar}{0166}%
\pdfglyphtounicode{tbar}{0167}%
+\pdfglyphtounicode{Utilde}{0168}%
+\pdfglyphtounicode{utilde}{0169}%
+\pdfglyphtounicode{Umacron}{016A}%
+\pdfglyphtounicode{umacron}{016B}%
+\pdfglyphtounicode{Ubreve}{016C}%
+\pdfglyphtounicode{ubreve}{016D}%
+\pdfglyphtounicode{Uring}{016E}%
\pdfglyphtounicode{uring}{016F}%
+\pdfglyphtounicode{Uhungarumlaut}{0170}%
+\pdfglyphtounicode{uhungarumlaut}{0171}%
+\pdfglyphtounicode{Uogonek}{0172}%
+\pdfglyphtounicode{uogonek}{0173}%
+\pdfglyphtounicode{Wcircumflex}{0174}%
+\pdfglyphtounicode{wcircumflex}{0175}%
+\pdfglyphtounicode{Ycircumflex}{0176}%
\pdfglyphtounicode{ycircumflex}{0177}%
+\pdfglyphtounicode{Ydieresis}{0178}%
+\pdfglyphtounicode{Zacute}{0179}%
+\pdfglyphtounicode{zacute}{017A}%
+\pdfglyphtounicode{Zdotaccent}{017B}%
+\pdfglyphtounicode{zdotaccent}{017C}%
+\pdfglyphtounicode{Zcaron}{017D}%
+\pdfglyphtounicode{zcaron}{017E}%
\pdfglyphtounicode{longs}{017F}%
+\pdfglyphtounicode{florin}{0192}%
+\pdfglyphtounicode{Ohorn}{01A0}%
+\pdfglyphtounicode{ohorn}{01A1}%
\pdfglyphtounicode{Uhorn}{01AF}%
+\pdfglyphtounicode{uhorn}{01B0}%
+\pdfglyphtounicode{Gcaron}{01E6}%
\pdfglyphtounicode{gcaron}{01E7}%
+\pdfglyphtounicode{Aringacute}{01FA}%
+\pdfglyphtounicode{aringacute}{01FB}%
+\pdfglyphtounicode{AEacute}{01FC}%
+\pdfglyphtounicode{aeacute}{01FD}%
+\pdfglyphtounicode{Oslashacute}{01FE}%
\pdfglyphtounicode{oslashacute}{01FF}%
+\pdfglyphtounicode{Scommaaccent}{0218}%
+\pdfglyphtounicode{scommaaccent}{0219}%
+\pdfglyphtounicode{afii57929}{02BC}%
+\pdfglyphtounicode{afii64937}{02BD}%
+\pdfglyphtounicode{circumflex}{02C6}%
+\pdfglyphtounicode{caron}{02C7}%
+\pdfglyphtounicode{breve}{02D8}%
+\pdfglyphtounicode{dotaccent}{02D9}%
+\pdfglyphtounicode{ring}{02DA}%
+\pdfglyphtounicode{ogonek}{02DB}%
+\pdfglyphtounicode{tilde}{02DC}%
+\pdfglyphtounicode{hungarumlaut}{02DD}%
+\pdfglyphtounicode{gravecomb}{0300}%
+\pdfglyphtounicode{acutecomb}{0301}%
+\pdfglyphtounicode{tildecomb}{0303}%
+\pdfglyphtounicode{hookabovecomb}{0309}%
+\pdfglyphtounicode{dotbelowcomb}{0323}%
+\pdfglyphtounicode{tonos}{0384}%
+\pdfglyphtounicode{dieresistonos}{0385}%
+\pdfglyphtounicode{Alphatonos}{0386}%
+\pdfglyphtounicode{anoteleia}{0387}%
+\pdfglyphtounicode{Epsilontonos}{0388}%
+\pdfglyphtounicode{Etatonos}{0389}%
+\pdfglyphtounicode{Iotatonos}{038A}%
+\pdfglyphtounicode{Omicrontonos}{038C}%
+\pdfglyphtounicode{Upsilontonos}{038E}%
\pdfglyphtounicode{Omegatonos}{038F}%
+\pdfglyphtounicode{iotadieresistonos}{0390}%
+\pdfglyphtounicode{Alpha}{0391}%
+\pdfglyphtounicode{Beta}{0392}%
+\pdfglyphtounicode{Gamma}{0393}%
+\pdfglyphtounicode{Epsilon}{0395}%
+\pdfglyphtounicode{Zeta}{0396}%
+\pdfglyphtounicode{Eta}{0397}%
+\pdfglyphtounicode{Theta}{0398}%
+\pdfglyphtounicode{Iota}{0399}%
+\pdfglyphtounicode{Kappa}{039A}%
+\pdfglyphtounicode{Lambda}{039B}%
+\pdfglyphtounicode{Mu}{039C}%
+\pdfglyphtounicode{Nu}{039D}%
+\pdfglyphtounicode{Xi}{039E}%
\pdfglyphtounicode{Omicron}{039F}%
+\pdfglyphtounicode{Pi}{03A0}%
+\pdfglyphtounicode{Rho}{03A1}%
+\pdfglyphtounicode{Sigma}{03A3}%
+\pdfglyphtounicode{Tau}{03A4}%
+\pdfglyphtounicode{Upsilon}{03A5}%
+\pdfglyphtounicode{Phi}{03A6}%
+\pdfglyphtounicode{Chi}{03A7}%
+\pdfglyphtounicode{Psi}{03A8}%
+\pdfglyphtounicode{Iotadieresis}{03AA}%
+\pdfglyphtounicode{Upsilondieresis}{03AB}%
+\pdfglyphtounicode{alphatonos}{03AC}%
+\pdfglyphtounicode{epsilontonos}{03AD}%
+\pdfglyphtounicode{etatonos}{03AE}%
\pdfglyphtounicode{iotatonos}{03AF}%
+\pdfglyphtounicode{upsilondieresistonos}{03B0}%
+\pdfglyphtounicode{alpha}{03B1}%
+\pdfglyphtounicode{beta}{03B2}%
+\pdfglyphtounicode{gamma}{03B3}%
+\pdfglyphtounicode{delta}{03B4}%
+\pdfglyphtounicode{epsilon}{03B5}%
+\pdfglyphtounicode{zeta}{03B6}%
+\pdfglyphtounicode{eta}{03B7}%
+\pdfglyphtounicode{theta}{03B8}%
+\pdfglyphtounicode{iota}{03B9}%
+\pdfglyphtounicode{kappa}{03BA}%
+\pdfglyphtounicode{lambda}{03BB}%
+\pdfglyphtounicode{nu}{03BD}%
+\pdfglyphtounicode{xi}{03BE}%
\pdfglyphtounicode{omicron}{03BF}%
+\pdfglyphtounicode{pi}{03C0}%
+\pdfglyphtounicode{rho}{03C1}%
+\pdfglyphtounicode{sigma1}{03C2}%
+\pdfglyphtounicode{sigma}{03C3}%
+\pdfglyphtounicode{tau}{03C4}%
+\pdfglyphtounicode{upsilon}{03C5}%
+\pdfglyphtounicode{phi}{03C6}%
+\pdfglyphtounicode{chi}{03C7}%
+\pdfglyphtounicode{psi}{03C8}%
+\pdfglyphtounicode{omega}{03C9}%
+\pdfglyphtounicode{iotadieresis}{03CA}%
+\pdfglyphtounicode{upsilondieresis}{03CB}%
+\pdfglyphtounicode{omicrontonos}{03CC}%
+\pdfglyphtounicode{upsilontonos}{03CD}%
+\pdfglyphtounicode{omegatonos}{03CE}%
+\pdfglyphtounicode{theta1}{03D1}%
+\pdfglyphtounicode{Upsilon1}{03D2}%
+\pdfglyphtounicode{phi1}{03D5}%
+\pdfglyphtounicode{omega1}{03D6}%
+\pdfglyphtounicode{afii10023}{0401}%
+\pdfglyphtounicode{afii10051}{0402}%
+\pdfglyphtounicode{afii10052}{0403}%
+\pdfglyphtounicode{afii10053}{0404}%
+\pdfglyphtounicode{afii10054}{0405}%
+\pdfglyphtounicode{afii10055}{0406}%
+\pdfglyphtounicode{afii10056}{0407}%
+\pdfglyphtounicode{afii10057}{0408}%
+\pdfglyphtounicode{afii10058}{0409}%
+\pdfglyphtounicode{afii10059}{040A}%
+\pdfglyphtounicode{afii10060}{040B}%
+\pdfglyphtounicode{afii10061}{040C}%
+\pdfglyphtounicode{afii10062}{040E}%
+\pdfglyphtounicode{afii10145}{040F}%
+\pdfglyphtounicode{afii10017}{0410}%
+\pdfglyphtounicode{afii10018}{0411}%
+\pdfglyphtounicode{afii10019}{0412}%
+\pdfglyphtounicode{afii10020}{0413}%
+\pdfglyphtounicode{afii10021}{0414}%
+\pdfglyphtounicode{afii10022}{0415}%
+\pdfglyphtounicode{afii10024}{0416}%
+\pdfglyphtounicode{afii10025}{0417}%
+\pdfglyphtounicode{afii10026}{0418}%
+\pdfglyphtounicode{afii10027}{0419}%
+\pdfglyphtounicode{afii10028}{041A}%
+\pdfglyphtounicode{afii10029}{041B}%
+\pdfglyphtounicode{afii10030}{041C}%
+\pdfglyphtounicode{afii10031}{041D}%
+\pdfglyphtounicode{afii10032}{041E}%
\pdfglyphtounicode{afii10033}{041F}%
+\pdfglyphtounicode{afii10034}{0420}%
+\pdfglyphtounicode{afii10035}{0421}%
+\pdfglyphtounicode{afii10036}{0422}%
+\pdfglyphtounicode{afii10037}{0423}%
+\pdfglyphtounicode{afii10038}{0424}%
+\pdfglyphtounicode{afii10039}{0425}%
+\pdfglyphtounicode{afii10040}{0426}%
+\pdfglyphtounicode{afii10041}{0427}%
+\pdfglyphtounicode{afii10042}{0428}%
+\pdfglyphtounicode{afii10043}{0429}%
+\pdfglyphtounicode{afii10044}{042A}%
+\pdfglyphtounicode{afii10045}{042B}%
+\pdfglyphtounicode{afii10046}{042C}%
+\pdfglyphtounicode{afii10047}{042D}%
+\pdfglyphtounicode{afii10048}{042E}%
+\pdfglyphtounicode{afii10049}{042F}%
+\pdfglyphtounicode{afii10065}{0430}%
+\pdfglyphtounicode{afii10066}{0431}%
+\pdfglyphtounicode{afii10067}{0432}%
+\pdfglyphtounicode{afii10068}{0433}%
+\pdfglyphtounicode{afii10069}{0434}%
+\pdfglyphtounicode{afii10070}{0435}%
+\pdfglyphtounicode{afii10072}{0436}%
+\pdfglyphtounicode{afii10073}{0437}%
+\pdfglyphtounicode{afii10074}{0438}%
+\pdfglyphtounicode{afii10075}{0439}%
+\pdfglyphtounicode{afii10076}{043A}%
+\pdfglyphtounicode{afii10077}{043B}%
+\pdfglyphtounicode{afii10078}{043C}%
+\pdfglyphtounicode{afii10079}{043D}%
+\pdfglyphtounicode{afii10080}{043E}%
\pdfglyphtounicode{afii10081}{043F}%
+\pdfglyphtounicode{afii10082}{0440}%
+\pdfglyphtounicode{afii10083}{0441}%
+\pdfglyphtounicode{afii10084}{0442}%
+\pdfglyphtounicode{afii10085}{0443}%
+\pdfglyphtounicode{afii10086}{0444}%
+\pdfglyphtounicode{afii10087}{0445}%
+\pdfglyphtounicode{afii10088}{0446}%
+\pdfglyphtounicode{afii10089}{0447}%
+\pdfglyphtounicode{afii10090}{0448}%
+\pdfglyphtounicode{afii10091}{0449}%
+\pdfglyphtounicode{afii10092}{044A}%
+\pdfglyphtounicode{afii10093}{044B}%
+\pdfglyphtounicode{afii10094}{044C}%
+\pdfglyphtounicode{afii10095}{044D}%
+\pdfglyphtounicode{afii10096}{044E}%
+\pdfglyphtounicode{afii10097}{044F}%
+\pdfglyphtounicode{afii10071}{0451}%
+\pdfglyphtounicode{afii10099}{0452}%
+\pdfglyphtounicode{afii10100}{0453}%
+\pdfglyphtounicode{afii10101}{0454}%
+\pdfglyphtounicode{afii10102}{0455}%
+\pdfglyphtounicode{afii10103}{0456}%
+\pdfglyphtounicode{afii10104}{0457}%
+\pdfglyphtounicode{afii10105}{0458}%
+\pdfglyphtounicode{afii10106}{0459}%
+\pdfglyphtounicode{afii10107}{045A}%
+\pdfglyphtounicode{afii10108}{045B}%
+\pdfglyphtounicode{afii10109}{045C}%
+\pdfglyphtounicode{afii10110}{045E}%
\pdfglyphtounicode{afii10193}{045F}%
+\pdfglyphtounicode{afii10146}{0462}%
+\pdfglyphtounicode{afii10194}{0463}%
+\pdfglyphtounicode{afii10147}{0472}%
+\pdfglyphtounicode{afii10195}{0473}%
+\pdfglyphtounicode{afii10148}{0474}%
+\pdfglyphtounicode{afii10196}{0475}%
+\pdfglyphtounicode{afii10050}{0490}%
+\pdfglyphtounicode{afii10098}{0491}%
+\pdfglyphtounicode{afii10846}{04D9}%
+\pdfglyphtounicode{afii57799}{05B0}%
+\pdfglyphtounicode{afii57801}{05B1}%
+\pdfglyphtounicode{afii57800}{05B2}%
+\pdfglyphtounicode{afii57802}{05B3}%
+\pdfglyphtounicode{afii57793}{05B4}%
+\pdfglyphtounicode{afii57794}{05B5}%
+\pdfglyphtounicode{afii57795}{05B6}%
+\pdfglyphtounicode{afii57798}{05B7}%
+\pdfglyphtounicode{afii57797}{05B8}%
+\pdfglyphtounicode{afii57806}{05B9}%
+\pdfglyphtounicode{afii57796}{05BB}%
+\pdfglyphtounicode{afii57807}{05BC}%
+\pdfglyphtounicode{afii57839}{05BD}%
+\pdfglyphtounicode{afii57645}{05BE}%
\pdfglyphtounicode{afii57841}{05BF}%
+\pdfglyphtounicode{afii57842}{05C0}%
+\pdfglyphtounicode{afii57804}{05C1}%
+\pdfglyphtounicode{afii57803}{05C2}%
+\pdfglyphtounicode{afii57658}{05C3}%
+\pdfglyphtounicode{afii57664}{05D0}%
+\pdfglyphtounicode{afii57665}{05D1}%
+\pdfglyphtounicode{afii57666}{05D2}%
+\pdfglyphtounicode{afii57667}{05D3}%
+\pdfglyphtounicode{afii57668}{05D4}%
+\pdfglyphtounicode{afii57669}{05D5}%
+\pdfglyphtounicode{afii57670}{05D6}%
+\pdfglyphtounicode{afii57671}{05D7}%
+\pdfglyphtounicode{afii57672}{05D8}%
+\pdfglyphtounicode{afii57673}{05D9}%
+\pdfglyphtounicode{afii57674}{05DA}%
+\pdfglyphtounicode{afii57675}{05DB}%
+\pdfglyphtounicode{afii57676}{05DC}%
+\pdfglyphtounicode{afii57677}{05DD}%
+\pdfglyphtounicode{afii57678}{05DE}%
\pdfglyphtounicode{afii57679}{05DF}%
+\pdfglyphtounicode{afii57680}{05E0}%
+\pdfglyphtounicode{afii57681}{05E1}%
+\pdfglyphtounicode{afii57682}{05E2}%
+\pdfglyphtounicode{afii57683}{05E3}%
+\pdfglyphtounicode{afii57684}{05E4}%
+\pdfglyphtounicode{afii57685}{05E5}%
+\pdfglyphtounicode{afii57686}{05E6}%
+\pdfglyphtounicode{afii57687}{05E7}%
+\pdfglyphtounicode{afii57688}{05E8}%
+\pdfglyphtounicode{afii57689}{05E9}%
+\pdfglyphtounicode{afii57690}{05EA}%
+\pdfglyphtounicode{afii57716}{05F0}%
+\pdfglyphtounicode{afii57717}{05F1}%
+\pdfglyphtounicode{afii57718}{05F2}%
+\pdfglyphtounicode{afii57388}{060C}%
+\pdfglyphtounicode{afii57403}{061B}%
\pdfglyphtounicode{afii57407}{061F}%
-\pdfglyphtounicode{universal}{2200}%
-\pdfglyphtounicode{SF100000}{2500}%
+\pdfglyphtounicode{afii57409}{0621}%
+\pdfglyphtounicode{afii57410}{0622}%
+\pdfglyphtounicode{afii57411}{0623}%
+\pdfglyphtounicode{afii57412}{0624}%
+\pdfglyphtounicode{afii57413}{0625}%
+\pdfglyphtounicode{afii57414}{0626}%
+\pdfglyphtounicode{afii57415}{0627}%
+\pdfglyphtounicode{afii57416}{0628}%
+\pdfglyphtounicode{afii57417}{0629}%
+\pdfglyphtounicode{afii57418}{062A}%
+\pdfglyphtounicode{afii57419}{062B}%
+\pdfglyphtounicode{afii57420}{062C}%
+\pdfglyphtounicode{afii57421}{062D}%
+\pdfglyphtounicode{afii57422}{062E}%
+\pdfglyphtounicode{afii57423}{062F}%
+\pdfglyphtounicode{afii57424}{0630}%
+\pdfglyphtounicode{afii57425}{0631}%
+\pdfglyphtounicode{afii57426}{0632}%
+\pdfglyphtounicode{afii57427}{0633}%
+\pdfglyphtounicode{afii57428}{0634}%
+\pdfglyphtounicode{afii57429}{0635}%
+\pdfglyphtounicode{afii57430}{0636}%
+\pdfglyphtounicode{afii57431}{0637}%
+\pdfglyphtounicode{afii57432}{0638}%
+\pdfglyphtounicode{afii57433}{0639}%
+\pdfglyphtounicode{afii57434}{063A}%
+\pdfglyphtounicode{afii57440}{0640}%
+\pdfglyphtounicode{afii57441}{0641}%
+\pdfglyphtounicode{afii57442}{0642}%
+\pdfglyphtounicode{afii57443}{0643}%
+\pdfglyphtounicode{afii57444}{0644}%
+\pdfglyphtounicode{afii57445}{0645}%
+\pdfglyphtounicode{afii57446}{0646}%
+\pdfglyphtounicode{afii57470}{0647}%
+\pdfglyphtounicode{afii57448}{0648}%
+\pdfglyphtounicode{afii57449}{0649}%
+\pdfglyphtounicode{afii57450}{064A}%
+\pdfglyphtounicode{afii57451}{064B}%
+\pdfglyphtounicode{afii57452}{064C}%
+\pdfglyphtounicode{afii57453}{064D}%
+\pdfglyphtounicode{afii57454}{064E}%
+\pdfglyphtounicode{afii57455}{064F}%
+\pdfglyphtounicode{afii57456}{0650}%
+\pdfglyphtounicode{afii57457}{0651}%
+\pdfglyphtounicode{afii57458}{0652}%
+\pdfglyphtounicode{afii57392}{0660}%
+\pdfglyphtounicode{afii57393}{0661}%
+\pdfglyphtounicode{afii57394}{0662}%
+\pdfglyphtounicode{afii57395}{0663}%
+\pdfglyphtounicode{afii57396}{0664}%
+\pdfglyphtounicode{afii57397}{0665}%
+\pdfglyphtounicode{afii57398}{0666}%
+\pdfglyphtounicode{afii57399}{0667}%
+\pdfglyphtounicode{afii57400}{0668}%
+\pdfglyphtounicode{afii57401}{0669}%
+\pdfglyphtounicode{afii57381}{066A}%
+\pdfglyphtounicode{afii63167}{066D}%
+\pdfglyphtounicode{afii57511}{0679}%
+\pdfglyphtounicode{afii57506}{067E}%
+\pdfglyphtounicode{afii57507}{0686}%
+\pdfglyphtounicode{afii57512}{0688}%
+\pdfglyphtounicode{afii57513}{0691}%
+\pdfglyphtounicode{afii57508}{0698}%
+\pdfglyphtounicode{afii57505}{06A4}%
+\pdfglyphtounicode{afii57509}{06AF}%
+\pdfglyphtounicode{afii57514}{06BA}%
+\pdfglyphtounicode{afii57519}{06D2}%
+\pdfglyphtounicode{afii57534}{06D5}%
\pdfglyphtounicode{Wgrave}{1E80}%
-\pdfglyphtounicode{partialdiff}{2202}%
-\pdfglyphtounicode{house}{2302}%
-\pdfglyphtounicode{SF110000}{2502}%
\pdfglyphtounicode{wgrave}{1E81}%
-\pdfglyphtounicode{existential}{2203}%
\pdfglyphtounicode{Wacute}{1E82}%
-\pdfglyphtounicode{afii61248}{2105}%
-\pdfglyphtounicode{emptyset}{2205}%
-\pdfglyphtounicode{Delta}{2206}%
-\pdfglyphtounicode{afii10034}{0420}%
-\pdfglyphtounicode{afii10082}{0440}%
-\pdfglyphtounicode{afii57842}{05C0}%
-\pdfglyphtounicode{afii57680}{05E0}%
-\pdfglyphtounicode{afii57440}{0640}%
-\pdfglyphtounicode{afii57392}{0660}%
\pdfglyphtounicode{wacute}{1E83}%
-\pdfglyphtounicode{gradient}{2207}%
-\pdfglyphtounicode{element}{2208}%
\pdfglyphtounicode{Wdieresis}{1E84}%
-\pdfglyphtounicode{notelement}{2209}%
\pdfglyphtounicode{wdieresis}{1E85}%
-\pdfglyphtounicode{suchthat}{220B}%
+\pdfglyphtounicode{Ygrave}{1EF2}%
+\pdfglyphtounicode{ygrave}{1EF3}%
\pdfglyphtounicode{afii61664}{200C}%
-\pdfglyphtounicode{SF010000}{250C}%
\pdfglyphtounicode{afii301}{200D}%
-\pdfglyphtounicode{gravecomb}{0300}%
-\pdfglyphtounicode{iotadieresistonos}{0390}%
-\pdfglyphtounicode{Pi}{03A0}%
-\pdfglyphtounicode{upsilondieresistonos}{03B0}%
-\pdfglyphtounicode{pi}{03C0}%
-\pdfglyphtounicode{afii10023}{0401}%
-\pdfglyphtounicode{afii10035}{0421}%
-\pdfglyphtounicode{afii10083}{0441}%
-\pdfglyphtounicode{afii57804}{05C1}%
-\pdfglyphtounicode{afii57681}{05E1}%
-\pdfglyphtounicode{afii57409}{0621}%
-\pdfglyphtounicode{afii57441}{0641}%
-\pdfglyphtounicode{afii57393}{0661}%
+\pdfglyphtounicode{afii299}{200E}%
\pdfglyphtounicode{afii300}{200F}%
-\pdfglyphtounicode{product}{220F}%
-\pdfglyphtounicode{revlogicalnot}{2310}%
-\pdfglyphtounicode{SF030000}{2510}%
-\pdfglyphtounicode{Ifraktur}{2111}%
-\pdfglyphtounicode{summation}{2211}%
\pdfglyphtounicode{figuredash}{2012}%
-\pdfglyphtounicode{minus}{2212}%
\pdfglyphtounicode{endash}{2013}%
-\pdfglyphtounicode{afii61289}{2113}%
\pdfglyphtounicode{emdash}{2014}%
-\pdfglyphtounicode{SF020000}{2514}%
-\pdfglyphtounicode{afii00208}{2015}%
-\pdfglyphtounicode{afii61352}{2116}%
-\pdfglyphtounicode{afii10051}{0402}%
-\pdfglyphtounicode{afii10036}{0422}%
-\pdfglyphtounicode{afii10084}{0442}%
-\pdfglyphtounicode{afii10146}{0462}%
-\pdfglyphtounicode{afii57803}{05C2}%
-\pdfglyphtounicode{afii57682}{05E2}%
-\pdfglyphtounicode{afii57410}{0622}%
-\pdfglyphtounicode{afii57442}{0642}%
-\pdfglyphtounicode{afii57394}{0662}%
+\pdfglyphtounicode{afii208}{2015}%
\pdfglyphtounicode{underscoredbl}{2017}%
-\pdfglyphtounicode{asteriskmath}{2217}%
\pdfglyphtounicode{quoteleft}{2018}%
-\pdfglyphtounicode{weierstrass}{2118}%
-\pdfglyphtounicode{SF040000}{2518}%
\pdfglyphtounicode{quoteright}{2019}%
\pdfglyphtounicode{quotesinglbase}{201A}%
-\pdfglyphtounicode{radical}{221A}%
\pdfglyphtounicode{quotereversed}{201B}%
\pdfglyphtounicode{quotedblleft}{201C}%
-\pdfglyphtounicode{Rfraktur}{211C}%
-\pdfglyphtounicode{SF080000}{251C}%
\pdfglyphtounicode{quotedblright}{201D}%
-\pdfglyphtounicode{proportional}{221D}%
-\pdfglyphtounicode{Amacron}{0100}%
-\pdfglyphtounicode{Ccircumflex}{0108}%
-\pdfglyphtounicode{Dcroat}{0110}%
-\pdfglyphtounicode{Eogonek}{0118}%
-\pdfglyphtounicode{Gdotaccent}{0120}%
-\pdfglyphtounicode{Itilde}{0128}%
-\pdfglyphtounicode{Idotaccent}{0130}%
-\pdfglyphtounicode{kgreenlandic}{0138}%
-\pdfglyphtounicode{ldot}{0140}%
-\pdfglyphtounicode{ncaron}{0148}%
-\pdfglyphtounicode{Ohungarumlaut}{0150}%
-\pdfglyphtounicode{Rcaron}{0158}%
-\pdfglyphtounicode{Scaron}{0160}%
-\pdfglyphtounicode{Utilde}{0168}%
-\pdfglyphtounicode{Uhungarumlaut}{0170}%
-\pdfglyphtounicode{Ydieresis}{0178}%
-\pdfglyphtounicode{Ohorn}{01A0}%
-\pdfglyphtounicode{uhorn}{01B0}%
-\pdfglyphtounicode{acutecomb}{0301}%
-\pdfglyphtounicode{Alpha}{0391}%
-\pdfglyphtounicode{Rho}{03A1}%
-\pdfglyphtounicode{alpha}{03B1}%
-\pdfglyphtounicode{rho}{03C1}%
-\pdfglyphtounicode{theta1}{03D1}%
-\pdfglyphtounicode{afii10052}{0403}%
-\pdfglyphtounicode{afii10037}{0423}%
-\pdfglyphtounicode{afii10085}{0443}%
-\pdfglyphtounicode{afii10194}{0463}%
-\pdfglyphtounicode{afii57658}{05C3}%
-\pdfglyphtounicode{afii57683}{05E3}%
-\pdfglyphtounicode{afii57411}{0623}%
-\pdfglyphtounicode{afii57443}{0643}%
-\pdfglyphtounicode{afii57395}{0663}%
-\pdfglyphtounicode{orthogonal}{221F}%
+\pdfglyphtounicode{quotedblbase}{201E}%
\pdfglyphtounicode{dagger}{2020}%
-\pdfglyphtounicode{angle}{2220}%
-\pdfglyphtounicode{integraltp}{2320}%
\pdfglyphtounicode{daggerdbl}{2021}%
-\pdfglyphtounicode{integralbt}{2321}%
\pdfglyphtounicode{bullet}{2022}%
-\pdfglyphtounicode{trademark}{2122}%
\pdfglyphtounicode{onedotenleader}{2024}%
-\pdfglyphtounicode{SF090000}{2524}%
\pdfglyphtounicode{twodotenleader}{2025}%
\pdfglyphtounicode{ellipsis}{2026}%
-\pdfglyphtounicode{Omega}{2126}%
-\pdfglyphtounicode{afii10053}{0404}%
-\pdfglyphtounicode{afii10038}{0424}%
-\pdfglyphtounicode{afii10086}{0444}%
-\pdfglyphtounicode{afii57684}{05E4}%
-\pdfglyphtounicode{afii57412}{0624}%
-\pdfglyphtounicode{afii57444}{0644}%
-\pdfglyphtounicode{afii57396}{0664}%
-\pdfglyphtounicode{afii57505}{06A4}%
-\pdfglyphtounicode{logicaland}{2227}%
-\pdfglyphtounicode{logicalor}{2228}%
-\pdfglyphtounicode{intersection}{2229}%
-\pdfglyphtounicode{angleleft}{2329}%
-\pdfglyphtounicode{union}{222A}%
-\pdfglyphtounicode{angleright}{232A}%
-\pdfglyphtounicode{integral}{222B}%
\pdfglyphtounicode{afii61573}{202C}%
-\pdfglyphtounicode{SF060000}{252C}%
\pdfglyphtounicode{afii61574}{202D}%
-\pdfglyphtounicode{Beta}{0392}%
-\pdfglyphtounicode{beta}{03B2}%
-\pdfglyphtounicode{sigma1}{03C2}%
-\pdfglyphtounicode{Upsilon1}{03D2}%
-\pdfglyphtounicode{afii10054}{0405}%
-\pdfglyphtounicode{afii10039}{0425}%
-\pdfglyphtounicode{afii10087}{0445}%
-\pdfglyphtounicode{afii57685}{05E5}%
-\pdfglyphtounicode{afii57413}{0625}%
-\pdfglyphtounicode{afii57445}{0645}%
-\pdfglyphtounicode{afii57397}{0665}%
+\pdfglyphtounicode{afii61575}{202E}%
\pdfglyphtounicode{perthousand}{2030}%
\pdfglyphtounicode{minute}{2032}%
\pdfglyphtounicode{second}{2033}%
-\pdfglyphtounicode{therefore}{2234}%
-\pdfglyphtounicode{SF070000}{2534}%
-\pdfglyphtounicode{aleph}{2135}%
-\pdfglyphtounicode{afii10055}{0406}%
-\pdfglyphtounicode{afii10040}{0426}%
-\pdfglyphtounicode{afii10088}{0446}%
-\pdfglyphtounicode{afii57686}{05E6}%
-\pdfglyphtounicode{afii57414}{0626}%
-\pdfglyphtounicode{afii57446}{0646}%
-\pdfglyphtounicode{afii57398}{0666}%
-\pdfglyphtounicode{afii57507}{0686}%
\pdfglyphtounicode{guilsinglleft}{2039}%
\pdfglyphtounicode{guilsinglright}{203A}%
-\pdfglyphtounicode{smileface}{263A}%
-\pdfglyphtounicode{invsmileface}{263B}%
\pdfglyphtounicode{exclamdbl}{203C}%
-\pdfglyphtounicode{similar}{223C}%
-\pdfglyphtounicode{SF050000}{253C}%
-\pdfglyphtounicode{sun}{263C}%
-\pdfglyphtounicode{currency}{00A4}%
-\pdfglyphtounicode{dieresis}{00A8}%
-\pdfglyphtounicode{logicalnot}{00AC}%
-\pdfglyphtounicode{degree}{00B0}%
-\pdfglyphtounicode{acute}{00B4}%
-\pdfglyphtounicode{cedilla}{00B8}%
-\pdfglyphtounicode{onequarter}{00BC}%
-\pdfglyphtounicode{Agrave}{00C0}%
-\pdfglyphtounicode{Adieresis}{00C4}%
-\pdfglyphtounicode{Egrave}{00C8}%
-\pdfglyphtounicode{Igrave}{00CC}%
-\pdfglyphtounicode{Eth}{00D0}%
-\pdfglyphtounicode{Ocircumflex}{00D4}%
-\pdfglyphtounicode{Oslash}{00D8}%
-\pdfglyphtounicode{Udieresis}{00DC}%
-\pdfglyphtounicode{agrave}{00E0}%
-\pdfglyphtounicode{adieresis}{00E4}%
-\pdfglyphtounicode{egrave}{00E8}%
-\pdfglyphtounicode{igrave}{00EC}%
-\pdfglyphtounicode{eth}{00F0}%
-\pdfglyphtounicode{ocircumflex}{00F4}%
-\pdfglyphtounicode{oslash}{00F8}%
-\pdfglyphtounicode{udieresis}{00FC}%
-\pdfglyphtounicode{amacron}{0101}%
-\pdfglyphtounicode{ccircumflex}{0109}%
-\pdfglyphtounicode{dcroat}{0111}%
-\pdfglyphtounicode{eogonek}{0119}%
-\pdfglyphtounicode{gdotaccent}{0121}%
-\pdfglyphtounicode{itilde}{0129}%
-\pdfglyphtounicode{dotlessi}{0131}%
-\pdfglyphtounicode{Lacute}{0139}%
-\pdfglyphtounicode{Lslash}{0141}%
-\pdfglyphtounicode{napostrophe}{0149}%
-\pdfglyphtounicode{ohungarumlaut}{0151}%
-\pdfglyphtounicode{rcaron}{0159}%
-\pdfglyphtounicode{scaron}{0161}%
-\pdfglyphtounicode{utilde}{0169}%
-\pdfglyphtounicode{uhungarumlaut}{0171}%
-\pdfglyphtounicode{Zacute}{0179}%
-\pdfglyphtounicode{ohorn}{01A1}%
-\pdfglyphtounicode{tildecomb}{0303}%
-\pdfglyphtounicode{dotbelowcomb}{0323}%
-\pdfglyphtounicode{Gamma}{0393}%
-\pdfglyphtounicode{Sigma}{03A3}%
-\pdfglyphtounicode{gamma}{03B3}%
-\pdfglyphtounicode{sigma}{03C3}%
-\pdfglyphtounicode{afii10056}{0407}%
-\pdfglyphtounicode{afii10041}{0427}%
-\pdfglyphtounicode{afii10089}{0447}%
-\pdfglyphtounicode{afii57687}{05E7}%
-\pdfglyphtounicode{afii57415}{0627}%
-\pdfglyphtounicode{afii57470}{0647}%
-\pdfglyphtounicode{afii57399}{0667}%
-\pdfglyphtounicode{female}{2640}%
-\pdfglyphtounicode{male}{2642}%
\pdfglyphtounicode{fraction}{2044}%
+\pdfglyphtounicode{colonmonetary}{20A1}%
+\pdfglyphtounicode{franc}{20A3}%
+\pdfglyphtounicode{lira}{20A4}%
+\pdfglyphtounicode{peseta}{20A7}%
+\pdfglyphtounicode{afii57636}{20AA}%
+\pdfglyphtounicode{dong}{20AB}%
+\pdfglyphtounicode{Euro}{20AC}%
+\pdfglyphtounicode{afii61248}{2105}%
+\pdfglyphtounicode{Ifraktur}{2111}%
+\pdfglyphtounicode{afii61289}{2113}%
+\pdfglyphtounicode{afii61352}{2116}%
+\pdfglyphtounicode{weierstrass}{2118}%
+\pdfglyphtounicode{Rfraktur}{211C}%
+\pdfglyphtounicode{prescription}{211E}%
+\pdfglyphtounicode{trademark}{2122}%
+\pdfglyphtounicode{Omega}{2126}%
+\pdfglyphtounicode{estimated}{212E}%
+\pdfglyphtounicode{aleph}{2135}%
+\pdfglyphtounicode{onethird}{2153}%
+\pdfglyphtounicode{twothirds}{2154}%
+\pdfglyphtounicode{oneeighth}{215B}%
+\pdfglyphtounicode{threeeighths}{215C}%
+\pdfglyphtounicode{fiveeighths}{215D}%
+\pdfglyphtounicode{seveneighths}{215E}%
+\pdfglyphtounicode{arrowleft}{2190}%
+\pdfglyphtounicode{arrowup}{2191}%
+\pdfglyphtounicode{arrowright}{2192}%
+\pdfglyphtounicode{arrowdown}{2193}%
+\pdfglyphtounicode{arrowboth}{2194}%
+\pdfglyphtounicode{arrowupdn}{2195}%
+\pdfglyphtounicode{arrowupdnbse}{21A8}%
+\pdfglyphtounicode{carriagereturn}{21B5}%
+\pdfglyphtounicode{arrowdblleft}{21D0}%
+\pdfglyphtounicode{arrowdblup}{21D1}%
+\pdfglyphtounicode{arrowdblright}{21D2}%
+\pdfglyphtounicode{arrowdbldown}{21D3}%
+\pdfglyphtounicode{arrowdblboth}{21D4}%
+\pdfglyphtounicode{universal}{2200}%
+\pdfglyphtounicode{partialdiff}{2202}%
+\pdfglyphtounicode{existential}{2203}%
+\pdfglyphtounicode{emptyset}{2205}%
+\pdfglyphtounicode{Delta}{2206}%
+\pdfglyphtounicode{gradient}{2207}%
+\pdfglyphtounicode{element}{2208}%
+\pdfglyphtounicode{notelement}{2209}%
+\pdfglyphtounicode{suchthat}{220B}%
+\pdfglyphtounicode{product}{220F}%
+\pdfglyphtounicode{summation}{2211}%
+\pdfglyphtounicode{minus}{2212}%
+\pdfglyphtounicode{asteriskmath}{2217}%
+\pdfglyphtounicode{radical}{221A}%
+\pdfglyphtounicode{proportional}{221D}%
+\pdfglyphtounicode{infinity}{221E}%
+\pdfglyphtounicode{orthogonal}{221F}%
+\pdfglyphtounicode{angle}{2220}%
+\pdfglyphtounicode{logicaland}{2227}%
+\pdfglyphtounicode{logicalor}{2228}%
+\pdfglyphtounicode{intersection}{2229}%
+\pdfglyphtounicode{union}{222A}%
+\pdfglyphtounicode{integral}{222B}%
+\pdfglyphtounicode{therefore}{2234}%
+\pdfglyphtounicode{similar}{223C}%
\pdfglyphtounicode{congruent}{2245}%
-\pdfglyphtounicode{afii10057}{0408}%
-\pdfglyphtounicode{afii10042}{0428}%
-\pdfglyphtounicode{afii10090}{0448}%
-\pdfglyphtounicode{afii57688}{05E8}%
-\pdfglyphtounicode{afii57416}{0628}%
-\pdfglyphtounicode{afii57448}{0648}%
-\pdfglyphtounicode{afii57400}{0668}%
-\pdfglyphtounicode{afii57512}{0688}%
\pdfglyphtounicode{approxequal}{2248}%
-\pdfglyphtounicode{tonos}{0384}%
-\pdfglyphtounicode{Tau}{03A4}%
-\pdfglyphtounicode{delta}{03B4}%
-\pdfglyphtounicode{tau}{03C4}%
-\pdfglyphtounicode{afii10058}{0409}%
-\pdfglyphtounicode{afii10043}{0429}%
-\pdfglyphtounicode{afii10091}{0449}%
-\pdfglyphtounicode{afii57689}{05E9}%
-\pdfglyphtounicode{afii57417}{0629}%
-\pdfglyphtounicode{afii57449}{0649}%
-\pdfglyphtounicode{afii57401}{0669}%
+\pdfglyphtounicode{notequal}{2260}%
+\pdfglyphtounicode{equivalence}{2261}%
+\pdfglyphtounicode{lessequal}{2264}%
+\pdfglyphtounicode{greaterequal}{2265}%
+\pdfglyphtounicode{propersubset}{2282}%
+\pdfglyphtounicode{propersuperset}{2283}%
+\pdfglyphtounicode{notsubset}{2284}%
+\pdfglyphtounicode{reflexsubset}{2286}%
+\pdfglyphtounicode{reflexsuperset}{2287}%
+\pdfglyphtounicode{circleplus}{2295}%
+\pdfglyphtounicode{circlemultiply}{2297}%
+\pdfglyphtounicode{perpendicular}{22A5}%
+\pdfglyphtounicode{dotmath}{22C5}%
+\pdfglyphtounicode{house}{2302}%
+\pdfglyphtounicode{revlogicalnot}{2310}%
+\pdfglyphtounicode{integraltp}{2320}%
+\pdfglyphtounicode{integralbt}{2321}%
+\pdfglyphtounicode{angleleft}{2329}%
+\pdfglyphtounicode{angleright}{232A}%
+\pdfglyphtounicode{SF100000}{2500}%
+\pdfglyphtounicode{SF110000}{2502}%
+\pdfglyphtounicode{SF10000}{250C}%
+\pdfglyphtounicode{SF30000}{2510}%
+\pdfglyphtounicode{SF20000}{2514}%
+\pdfglyphtounicode{SF40000}{2518}%
+\pdfglyphtounicode{SF80000}{251C}%
+\pdfglyphtounicode{SF90000}{2524}%
+\pdfglyphtounicode{SF60000}{252C}%
+\pdfglyphtounicode{SF70000}{2534}%
+\pdfglyphtounicode{SF50000}{253C}%
\pdfglyphtounicode{SF430000}{2550}%
\pdfglyphtounicode{SF240000}{2551}%
\pdfglyphtounicode{SF510000}{2552}%
-\pdfglyphtounicode{onethird}{2153}%
\pdfglyphtounicode{SF520000}{2553}%
-\pdfglyphtounicode{twothirds}{2154}%
\pdfglyphtounicode{SF390000}{2554}%
\pdfglyphtounicode{SF220000}{2555}%
\pdfglyphtounicode{SF210000}{2556}%
-\pdfglyphtounicode{afii10059}{040A}%
-\pdfglyphtounicode{afii10044}{042A}%
-\pdfglyphtounicode{afii10092}{044A}%
-\pdfglyphtounicode{afii57690}{05EA}%
-\pdfglyphtounicode{afii57418}{062A}%
-\pdfglyphtounicode{afii57450}{064A}%
-\pdfglyphtounicode{afii57381}{066A}%
\pdfglyphtounicode{SF250000}{2557}%
\pdfglyphtounicode{SF500000}{2558}%
\pdfglyphtounicode{SF490000}{2559}%
\pdfglyphtounicode{SF380000}{255A}%
-\pdfglyphtounicode{oneeighth}{215B}%
\pdfglyphtounicode{SF280000}{255B}%
-\pdfglyphtounicode{threeeighths}{215C}%
\pdfglyphtounicode{SF270000}{255C}%
-\pdfglyphtounicode{fiveeighths}{215D}%
\pdfglyphtounicode{SF260000}{255D}%
-\pdfglyphtounicode{Abreve}{0102}%
-\pdfglyphtounicode{Cdotaccent}{010A}%
-\pdfglyphtounicode{Emacron}{0112}%
-\pdfglyphtounicode{Ecaron}{011A}%
-\pdfglyphtounicode{Gcommaaccent}{0122}%
-\pdfglyphtounicode{Imacron}{012A}%
-\pdfglyphtounicode{IJ}{0132}%
-\pdfglyphtounicode{lacute}{013A}%
-\pdfglyphtounicode{lslash}{0142}%
-\pdfglyphtounicode{Eng}{014A}%
-\pdfglyphtounicode{OE}{0152}%
-\pdfglyphtounicode{Sacute}{015A}%
-\pdfglyphtounicode{Tcommaaccent}{0162}%
-\pdfglyphtounicode{Umacron}{016A}%
-\pdfglyphtounicode{Uogonek}{0172}%
-\pdfglyphtounicode{zacute}{017A}%
-\pdfglyphtounicode{florin}{0192}%
-\pdfglyphtounicode{Aringacute}{01FA}%
-\pdfglyphtounicode{dieresistonos}{0385}%
-\pdfglyphtounicode{Epsilon}{0395}%
-\pdfglyphtounicode{Upsilon}{03A5}%
-\pdfglyphtounicode{epsilon}{03B5}%
-\pdfglyphtounicode{upsilon}{03C5}%
-\pdfglyphtounicode{phi1}{03D5}%
-\pdfglyphtounicode{afii10060}{040B}%
-\pdfglyphtounicode{afii10045}{042B}%
-\pdfglyphtounicode{afii10093}{044B}%
-\pdfglyphtounicode{afii57419}{062B}%
-\pdfglyphtounicode{afii57451}{064B}%
+\pdfglyphtounicode{SF360000}{255E}%
\pdfglyphtounicode{SF370000}{255F}%
-\pdfglyphtounicode{notequal}{2260}%
\pdfglyphtounicode{SF420000}{2560}%
-\pdfglyphtounicode{spade}{2660}%
-\pdfglyphtounicode{equivalence}{2261}%
\pdfglyphtounicode{SF190000}{2561}%
\pdfglyphtounicode{SF200000}{2562}%
\pdfglyphtounicode{SF230000}{2563}%
-\pdfglyphtounicode{club}{2663}%
-\pdfglyphtounicode{lessequal}{2264}%
\pdfglyphtounicode{SF470000}{2564}%
-\pdfglyphtounicode{greaterequal}{2265}%
\pdfglyphtounicode{SF480000}{2565}%
-\pdfglyphtounicode{heart}{2665}%
\pdfglyphtounicode{SF410000}{2566}%
-\pdfglyphtounicode{diamond}{2666}%
-\pdfglyphtounicode{afii10061}{040C}%
-\pdfglyphtounicode{afii10046}{042C}%
-\pdfglyphtounicode{afii10094}{044C}%
-\pdfglyphtounicode{afii57388}{060C}%
-\pdfglyphtounicode{afii57420}{062C}%
-\pdfglyphtounicode{afii57452}{064C}%
\pdfglyphtounicode{SF450000}{2567}%
\pdfglyphtounicode{SF460000}{2568}%
\pdfglyphtounicode{SF400000}{2569}%
\pdfglyphtounicode{SF540000}{256A}%
-\pdfglyphtounicode{musicalnote}{266A}%
\pdfglyphtounicode{SF530000}{256B}%
-\pdfglyphtounicode{musicalnotedbl}{266B}%
\pdfglyphtounicode{SF440000}{256C}%
-\pdfglyphtounicode{circumflex}{02C6}%
-\pdfglyphtounicode{Alphatonos}{0386}%
-\pdfglyphtounicode{Zeta}{0396}%
-\pdfglyphtounicode{Phi}{03A6}%
-\pdfglyphtounicode{zeta}{03B6}%
-\pdfglyphtounicode{phi}{03C6}%
-\pdfglyphtounicode{omega1}{03D6}%
-\pdfglyphtounicode{afii10047}{042D}%
-\pdfglyphtounicode{afii10095}{044D}%
-\pdfglyphtounicode{afii57421}{062D}%
-\pdfglyphtounicode{afii57453}{064D}%
-\pdfglyphtounicode{afii63167}{066D}%
-\pdfglyphtounicode{afii10062}{040E}%
-\pdfglyphtounicode{afii10048}{042E}%
-\pdfglyphtounicode{afii10096}{044E}%
-\pdfglyphtounicode{afii57422}{062E}%
-\pdfglyphtounicode{afii57454}{064E}%
-\pdfglyphtounicode{at}{0040}%
-\pdfglyphtounicode{B}{0042}%
-\pdfglyphtounicode{D}{0044}%
-\pdfglyphtounicode{F}{0046}%
-\pdfglyphtounicode{H}{0048}%
-\pdfglyphtounicode{J}{004A}%
-\pdfglyphtounicode{L}{004C}%
-\pdfglyphtounicode{N}{004E}%
-\pdfglyphtounicode{P}{0050}%
-\pdfglyphtounicode{R}{0052}%
-\pdfglyphtounicode{T}{0054}%
-\pdfglyphtounicode{V}{0056}%
-\pdfglyphtounicode{X}{0058}%
-\pdfglyphtounicode{Z}{005A}%
-\pdfglyphtounicode{backslash}{005C}%
-\pdfglyphtounicode{asciicircum}{005E}%
-\pdfglyphtounicode{grave}{0060}%
-\pdfglyphtounicode{b}{0062}%
-\pdfglyphtounicode{d}{0064}%
-\pdfglyphtounicode{f}{0066}%
-\pdfglyphtounicode{h}{0068}%
-\pdfglyphtounicode{j}{006A}%
-\pdfglyphtounicode{l}{006C}%
-\pdfglyphtounicode{n}{006E}%
-\pdfglyphtounicode{p}{0070}%
-\pdfglyphtounicode{r}{0072}%
-\pdfglyphtounicode{t}{0074}%
-\pdfglyphtounicode{v}{0076}%
-\pdfglyphtounicode{x}{0078}%
-\pdfglyphtounicode{z}{007A}%
-\pdfglyphtounicode{bar}{007C}%
-\pdfglyphtounicode{asciitilde}{007E}%
-\pdfglyphtounicode{exclamdown}{00A1}%
-\pdfglyphtounicode{yen}{00A5}%
-\pdfglyphtounicode{copyright}{00A9}%
-\pdfglyphtounicode{plusminus}{00B1}%
-\pdfglyphtounicode{mu}{00B5}%
-\pdfglyphtounicode{onehalf}{00BD}%
-\pdfglyphtounicode{Aacute}{00C1}%
-\pdfglyphtounicode{Aring}{00C5}%
-\pdfglyphtounicode{Eacute}{00C9}%
-\pdfglyphtounicode{Iacute}{00CD}%
-\pdfglyphtounicode{Ntilde}{00D1}%
-\pdfglyphtounicode{Otilde}{00D5}%
-\pdfglyphtounicode{Ugrave}{00D9}%
-\pdfglyphtounicode{Yacute}{00DD}%
-\pdfglyphtounicode{aacute}{00E1}%
-\pdfglyphtounicode{aring}{00E5}%
-\pdfglyphtounicode{eacute}{00E9}%
-\pdfglyphtounicode{iacute}{00ED}%
-\pdfglyphtounicode{ntilde}{00F1}%
-\pdfglyphtounicode{otilde}{00F5}%
-\pdfglyphtounicode{ugrave}{00F9}%
-\pdfglyphtounicode{yacute}{00FD}%
-\pdfglyphtounicode{abreve}{0103}%
-\pdfglyphtounicode{cdotaccent}{010B}%
-\pdfglyphtounicode{emacron}{0113}%
-\pdfglyphtounicode{ecaron}{011B}%
-\pdfglyphtounicode{gcommaaccent}{0123}%
-\pdfglyphtounicode{imacron}{012B}%
-\pdfglyphtounicode{ij}{0133}%
-\pdfglyphtounicode{Lcommaaccent}{013B}%
-\pdfglyphtounicode{Nacute}{0143}%
-\pdfglyphtounicode{eng}{014B}%
-\pdfglyphtounicode{oe}{0153}%
-\pdfglyphtounicode{sacute}{015B}%
-\pdfglyphtounicode{tcommaaccent}{0163}%
-\pdfglyphtounicode{umacron}{016B}%
-\pdfglyphtounicode{uogonek}{0173}%
-\pdfglyphtounicode{Zdotaccent}{017B}%
-\pdfglyphtounicode{aringacute}{01FB}%
-\pdfglyphtounicode{caron}{02C7}%
-\pdfglyphtounicode{anoteleia}{0387}%
-\pdfglyphtounicode{Eta}{0397}%
-\pdfglyphtounicode{Chi}{03A7}%
-\pdfglyphtounicode{eta}{03B7}%
-\pdfglyphtounicode{chi}{03C7}%
-\pdfglyphtounicode{afii10145}{040F}%
-\pdfglyphtounicode{afii10049}{042F}%
-\pdfglyphtounicode{afii10097}{044F}%
-\pdfglyphtounicode{afii57423}{062F}%
-\pdfglyphtounicode{afii57455}{064F}%
-\pdfglyphtounicode{afii57509}{06AF}%
\pdfglyphtounicode{upblock}{2580}%
-\pdfglyphtounicode{propersubset}{2282}%
-\pdfglyphtounicode{propersuperset}{2283}%
-\pdfglyphtounicode{notsubset}{2284}%
\pdfglyphtounicode{dnblock}{2584}%
-\pdfglyphtounicode{reflexsubset}{2286}%
-\pdfglyphtounicode{afii10017}{0410}%
-\pdfglyphtounicode{afii10065}{0430}%
-\pdfglyphtounicode{afii10050}{0490}%
-\pdfglyphtounicode{afii57799}{05B0}%
-\pdfglyphtounicode{afii57664}{05D0}%
-\pdfglyphtounicode{afii57716}{05F0}%
-\pdfglyphtounicode{afii57424}{0630}%
-\pdfglyphtounicode{afii57456}{0650}%
-\pdfglyphtounicode{reflexsuperset}{2287}%
\pdfglyphtounicode{block}{2588}%
\pdfglyphtounicode{lfblock}{258C}%
-\pdfglyphtounicode{Scommaaccent}{0218}%
-\pdfglyphtounicode{breve}{02D8}%
-\pdfglyphtounicode{Epsilontonos}{0388}%
-\pdfglyphtounicode{Theta}{0398}%
-\pdfglyphtounicode{Psi}{03A8}%
-\pdfglyphtounicode{theta}{03B8}%
-\pdfglyphtounicode{psi}{03C8}%
-\pdfglyphtounicode{afii10018}{0411}%
-\pdfglyphtounicode{afii10066}{0431}%
-\pdfglyphtounicode{afii10071}{0451}%
-\pdfglyphtounicode{afii10098}{0491}%
-\pdfglyphtounicode{afii57801}{05B1}%
-\pdfglyphtounicode{afii57665}{05D1}%
-\pdfglyphtounicode{afii57717}{05F1}%
-\pdfglyphtounicode{afii57425}{0631}%
-\pdfglyphtounicode{afii57457}{0651}%
-\pdfglyphtounicode{afii57513}{0691}%
-\pdfglyphtounicode{arrowleft}{2190}%
\pdfglyphtounicode{rtblock}{2590}%
-\pdfglyphtounicode{arrowup}{2191}%
\pdfglyphtounicode{ltshade}{2591}%
-\pdfglyphtounicode{arrowright}{2192}%
\pdfglyphtounicode{shade}{2592}%
-\pdfglyphtounicode{arrowdown}{2193}%
\pdfglyphtounicode{dkshade}{2593}%
-\pdfglyphtounicode{arrowboth}{2194}%
-\pdfglyphtounicode{arrowupdn}{2195}%
-\pdfglyphtounicode{circleplus}{2295}%
-\pdfglyphtounicode{afii10019}{0412}%
-\pdfglyphtounicode{afii10067}{0432}%
-\pdfglyphtounicode{afii10099}{0452}%
-\pdfglyphtounicode{afii10147}{0472}%
-\pdfglyphtounicode{afii57800}{05B2}%
-\pdfglyphtounicode{afii57666}{05D2}%
-\pdfglyphtounicode{afii57718}{05F2}%
-\pdfglyphtounicode{afii57426}{0632}%
-\pdfglyphtounicode{afii57458}{0652}%
-\pdfglyphtounicode{afii57519}{06D2}%
-\pdfglyphtounicode{circlemultiply}{2297}%
-\pdfglyphtounicode{Aogonek}{0104}%
-\pdfglyphtounicode{Ccaron}{010C}%
-\pdfglyphtounicode{Ebreve}{0114}%
-\pdfglyphtounicode{Gcircumflex}{011C}%
-\pdfglyphtounicode{Hcircumflex}{0124}%
-\pdfglyphtounicode{Ibreve}{012C}%
-\pdfglyphtounicode{Jcircumflex}{0134}%
-\pdfglyphtounicode{lcommaaccent}{013C}%
-\pdfglyphtounicode{nacute}{0144}%
-\pdfglyphtounicode{Omacron}{014C}%
-\pdfglyphtounicode{Racute}{0154}%
-\pdfglyphtounicode{Scircumflex}{015C}%
-\pdfglyphtounicode{Tcaron}{0164}%
-\pdfglyphtounicode{Ubreve}{016C}%
-\pdfglyphtounicode{Wcircumflex}{0174}%
-\pdfglyphtounicode{zdotaccent}{017C}%
-\pdfglyphtounicode{AEacute}{01FC}%
-\pdfglyphtounicode{scommaaccent}{0219}%
-\pdfglyphtounicode{dotaccent}{02D9}%
-\pdfglyphtounicode{hookabovecomb}{0309}%
-\pdfglyphtounicode{Etatonos}{0389}%
-\pdfglyphtounicode{Iota}{0399}%
-\pdfglyphtounicode{iota}{03B9}%
-\pdfglyphtounicode{omega}{03C9}%
-\pdfglyphtounicode{afii10020}{0413}%
-\pdfglyphtounicode{afii10068}{0433}%
-\pdfglyphtounicode{afii10100}{0453}%
-\pdfglyphtounicode{afii10195}{0473}%
-\pdfglyphtounicode{afii57802}{05B3}%
-\pdfglyphtounicode{afii57667}{05D3}%
-\pdfglyphtounicode{afii57427}{0633}%
\pdfglyphtounicode{filledbox}{25A0}%
-\pdfglyphtounicode{colonmonetary}{20A1}%
\pdfglyphtounicode{H22073}{25A1}%
-\pdfglyphtounicode{franc}{20A3}%
-\pdfglyphtounicode{lira}{20A4}%
-\pdfglyphtounicode{perpendicular}{22A5}%
-\pdfglyphtounicode{afii10021}{0414}%
-\pdfglyphtounicode{afii10069}{0434}%
-\pdfglyphtounicode{afii10101}{0454}%
-\pdfglyphtounicode{afii10148}{0474}%
-\pdfglyphtounicode{afii57793}{05B4}%
-\pdfglyphtounicode{afii57668}{05D4}%
-\pdfglyphtounicode{afii57428}{0634}%
-\pdfglyphtounicode{peseta}{20A7}%
-\pdfglyphtounicode{arrowupdnbse}{21A8}%
-\pdfglyphtounicode{afii57636}{20AA}%
\pdfglyphtounicode{H18543}{25AA}%
-\pdfglyphtounicode{dong}{20AB}%
\pdfglyphtounicode{H18551}{25AB}%
-\pdfglyphtounicode{Euro}{20AC}%
\pdfglyphtounicode{filledrect}{25AC}%
-\pdfglyphtounicode{ring}{02DA}%
-\pdfglyphtounicode{Iotatonos}{038A}%
-\pdfglyphtounicode{Kappa}{039A}%
-\pdfglyphtounicode{Iotadieresis}{03AA}%
-\pdfglyphtounicode{kappa}{03BA}%
-\pdfglyphtounicode{iotadieresis}{03CA}%
-\pdfglyphtounicode{afii10022}{0415}%
-\pdfglyphtounicode{afii10070}{0435}%
-\pdfglyphtounicode{afii10102}{0455}%
-\pdfglyphtounicode{afii10196}{0475}%
-\pdfglyphtounicode{afii57794}{05B5}%
-\pdfglyphtounicode{afii57669}{05D5}%
-\pdfglyphtounicode{afii57429}{0635}%
-\pdfglyphtounicode{afii57534}{06D5}%
\pdfglyphtounicode{triagup}{25B2}%
-\pdfglyphtounicode{carriagereturn}{21B5}%
-\pdfglyphtounicode{afii10024}{0416}%
-\pdfglyphtounicode{afii10072}{0436}%
-\pdfglyphtounicode{afii10103}{0456}%
-\pdfglyphtounicode{afii57795}{05B6}%
-\pdfglyphtounicode{afii57670}{05D6}%
-\pdfglyphtounicode{afii57430}{0636}%
\pdfglyphtounicode{triagrt}{25BA}%
\pdfglyphtounicode{triagdn}{25BC}%
-\pdfglyphtounicode{cent}{00A2}%
-\pdfglyphtounicode{brokenbar}{00A6}%
-\pdfglyphtounicode{ordfeminine}{00AA}%
-\pdfglyphtounicode{registered}{00AE}%
-\pdfglyphtounicode{paragraph}{00B6}%
-\pdfglyphtounicode{ordmasculine}{00BA}%
-\pdfglyphtounicode{threequarters}{00BE}%
-\pdfglyphtounicode{Acircumflex}{00C2}%
-\pdfglyphtounicode{AE}{00C6}%
-\pdfglyphtounicode{Ecircumflex}{00CA}%
-\pdfglyphtounicode{Icircumflex}{00CE}%
-\pdfglyphtounicode{Ograve}{00D2}%
-\pdfglyphtounicode{Odieresis}{00D6}%
-\pdfglyphtounicode{Uacute}{00DA}%
-\pdfglyphtounicode{Thorn}{00DE}%
-\pdfglyphtounicode{acircumflex}{00E2}%
-\pdfglyphtounicode{ae}{00E6}%
-\pdfglyphtounicode{ecircumflex}{00EA}%
-\pdfglyphtounicode{icircumflex}{00EE}%
-\pdfglyphtounicode{ograve}{00F2}%
-\pdfglyphtounicode{odieresis}{00F6}%
-\pdfglyphtounicode{uacute}{00FA}%
-\pdfglyphtounicode{thorn}{00FE}%
-\pdfglyphtounicode{aogonek}{0105}%
-\pdfglyphtounicode{ccaron}{010D}%
-\pdfglyphtounicode{ebreve}{0115}%
-\pdfglyphtounicode{gcircumflex}{011D}%
-\pdfglyphtounicode{hcircumflex}{0125}%
-\pdfglyphtounicode{ibreve}{012D}%
-\pdfglyphtounicode{jcircumflex}{0135}%
-\pdfglyphtounicode{Lcaron}{013D}%
-\pdfglyphtounicode{Ncommaaccent}{0145}%
-\pdfglyphtounicode{omacron}{014D}%
-\pdfglyphtounicode{racute}{0155}%
-\pdfglyphtounicode{scircumflex}{015D}%
-\pdfglyphtounicode{tcaron}{0165}%
-\pdfglyphtounicode{ubreve}{016D}%
-\pdfglyphtounicode{wcircumflex}{0175}%
-\pdfglyphtounicode{Zcaron}{017D}%
-\pdfglyphtounicode{aeacute}{01FD}%
-\pdfglyphtounicode{ogonek}{02DB}%
-\pdfglyphtounicode{Lambda}{039B}%
-\pdfglyphtounicode{Upsilondieresis}{03AB}%
-\pdfglyphtounicode{lambda}{03BB}%
-\pdfglyphtounicode{upsilondieresis}{03CB}%
-\pdfglyphtounicode{afii10025}{0417}%
-\pdfglyphtounicode{afii10073}{0437}%
-\pdfglyphtounicode{afii10104}{0457}%
-\pdfglyphtounicode{afii57798}{05B7}%
-\pdfglyphtounicode{afii57671}{05D7}%
-\pdfglyphtounicode{afii57431}{0637}%
\pdfglyphtounicode{triaglf}{25C4}%
-\pdfglyphtounicode{dotmath}{22C5}%
-\pdfglyphtounicode{afii10026}{0418}%
-\pdfglyphtounicode{afii10074}{0438}%
-\pdfglyphtounicode{afii10105}{0458}%
-\pdfglyphtounicode{afii57797}{05B8}%
-\pdfglyphtounicode{afii57672}{05D8}%
-\pdfglyphtounicode{afii57432}{0638}%
-\pdfglyphtounicode{afii57508}{0698}%
\pdfglyphtounicode{lozenge}{25CA}%
\pdfglyphtounicode{circle}{25CB}%
-\pdfglyphtounicode{afii57929}{02BC}%
-\pdfglyphtounicode{tilde}{02DC}%
-\pdfglyphtounicode{Omicrontonos}{038C}%
-\pdfglyphtounicode{Mu}{039C}%
-\pdfglyphtounicode{alphatonos}{03AC}%
-\pdfglyphtounicode{omicrontonos}{03CC}%
-\pdfglyphtounicode{afii10027}{0419}%
-\pdfglyphtounicode{afii10075}{0439}%
-\pdfglyphtounicode{afii10106}{0459}%
-\pdfglyphtounicode{afii10846}{04D9}%
-\pdfglyphtounicode{afii57806}{05B9}%
-\pdfglyphtounicode{afii57673}{05D9}%
-\pdfglyphtounicode{afii57433}{0639}%
-\pdfglyphtounicode{afii57511}{0679}%
\pdfglyphtounicode{H18533}{25CF}%
-\pdfglyphtounicode{arrowdblleft}{21D0}%
-\pdfglyphtounicode{arrowdblup}{21D1}%
-\pdfglyphtounicode{arrowdblright}{21D2}%
-\pdfglyphtounicode{arrowdbldown}{21D3}%
-\pdfglyphtounicode{arrowdblboth}{21D4}%
-\pdfglyphtounicode{afii10028}{041A}%
-\pdfglyphtounicode{afii10076}{043A}%
-\pdfglyphtounicode{afii10107}{045A}%
-\pdfglyphtounicode{afii57674}{05DA}%
-\pdfglyphtounicode{afii57434}{063A}%
-\pdfglyphtounicode{afii57514}{06BA}%
\pdfglyphtounicode{invbullet}{25D8}%
\pdfglyphtounicode{invcircle}{25D9}%
-\pdfglyphtounicode{Cacute}{0106}%
-\pdfglyphtounicode{Dcaron}{010E}%
-\pdfglyphtounicode{Edotaccent}{0116}%
-\pdfglyphtounicode{Gbreve}{011E}%
-\pdfglyphtounicode{Hbar}{0126}%
-\pdfglyphtounicode{Iogonek}{012E}%
-\pdfglyphtounicode{Kcommaaccent}{0136}%
-\pdfglyphtounicode{lcaron}{013E}%
-\pdfglyphtounicode{ncommaaccent}{0146}%
-\pdfglyphtounicode{Obreve}{014E}%
-\pdfglyphtounicode{Rcommaaccent}{0156}%
-\pdfglyphtounicode{Scedilla}{015E}%
-\pdfglyphtounicode{Tbar}{0166}%
-\pdfglyphtounicode{Uring}{016E}%
-\pdfglyphtounicode{Ycircumflex}{0176}%
-\pdfglyphtounicode{zcaron}{017E}%
-\pdfglyphtounicode{Gcaron}{01E6}%
-\pdfglyphtounicode{Oslashacute}{01FE}%
-\pdfglyphtounicode{afii64937}{02BD}%
-\pdfglyphtounicode{hungarumlaut}{02DD}%
-\pdfglyphtounicode{Nu}{039D}%
-\pdfglyphtounicode{epsilontonos}{03AD}%
-\pdfglyphtounicode{nu}{03BD}%
-\pdfglyphtounicode{upsilontonos}{03CD}%
-\pdfglyphtounicode{afii10029}{041B}%
-\pdfglyphtounicode{afii10077}{043B}%
-\pdfglyphtounicode{afii10108}{045B}%
-\pdfglyphtounicode{afii57796}{05BB}%
-\pdfglyphtounicode{afii57675}{05DB}%
-\pdfglyphtounicode{afii57403}{061B}%
-\pdfglyphtounicode{estimated}{212E}%
-\pdfglyphtounicode{infinity}{221E}%
-\pdfglyphtounicode{SF360000}{255E}%
-\pdfglyphtounicode{Ygrave}{1EF2}%
\pdfglyphtounicode{openbullet}{25E6}%
-\pdfglyphtounicode{afii10030}{041C}%
-\pdfglyphtounicode{afii10078}{043C}%
-\pdfglyphtounicode{afii10109}{045C}%
-\pdfglyphtounicode{afii57807}{05BC}%
-\pdfglyphtounicode{afii57676}{05DC}%
-\pdfglyphtounicode{ygrave}{1EF3}%
-\pdfglyphtounicode{Upsilontonos}{038E}%
-\pdfglyphtounicode{Xi}{039E}%
-\pdfglyphtounicode{etatonos}{03AE}%
-\pdfglyphtounicode{xi}{03BE}%
-\pdfglyphtounicode{omegatonos}{03CE}%
-\pdfglyphtounicode{afii10031}{041D}%
-\pdfglyphtounicode{afii10079}{043D}%
-\pdfglyphtounicode{afii57839}{05BD}%
-\pdfglyphtounicode{afii57677}{05DD}%
-\pdfglyphtounicode{afii10032}{041E}%
-\pdfglyphtounicode{afii10080}{043E}%
-\pdfglyphtounicode{afii10110}{045E}%
-\pdfglyphtounicode{afii57645}{05BE}%
-\pdfglyphtounicode{afii57678}{05DE}%
-\pdfglyphtounicode{afii57506}{067E}%
-\pdfglyphtounicode{seveneighths}{215E}%
-\pdfglyphtounicode{prescription}{211E}%
-\pdfglyphtounicode{afii61575}{202E}%
-\pdfglyphtounicode{quotedblbase}{201E}%
-\pdfglyphtounicode{afii299}{200E}%
+\pdfglyphtounicode{smileface}{263A}%
+\pdfglyphtounicode{invsmileface}{263B}%
+\pdfglyphtounicode{sun}{263C}%
+\pdfglyphtounicode{female}{2640}%
+\pdfglyphtounicode{male}{2642}%
+\pdfglyphtounicode{spade}{2660}%
+\pdfglyphtounicode{club}{2663}%
+\pdfglyphtounicode{heart}{2665}%
+\pdfglyphtounicode{diamond}{2666}%
+\pdfglyphtounicode{musicalnote}{266A}%
+\pdfglyphtounicode{musicalnotedbl}{266B}%
%
\endinput
diff --git a/Master/texmf-dist/tex/context/base/pdfr-ec.tex b/Master/texmf-dist/tex/context/base/pdfr-ec.mkii
index b6604984cf8..b6604984cf8 100644
--- a/Master/texmf-dist/tex/context/base/pdfr-ec.tex
+++ b/Master/texmf-dist/tex/context/base/pdfr-ec.mkii
diff --git a/Master/texmf-dist/tex/context/base/pdfr-il2.mkii b/Master/texmf-dist/tex/context/base/pdfr-il2.mkii
new file mode 100644
index 00000000000..70bcb25da38
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/pdfr-il2.mkii
@@ -0,0 +1,233 @@
+%D \module
+%D [ file=pdfr-il2,
+%D version=2000.12.10,
+%D title=\CONTEXT\ PDF Font Resources,
+%D subtitle=ISO Latin 2,
+%D author={Ondrej Koala Vacha, Hans Hagen},
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D This vector is derived (but reformatted a bit) from a
+%D sample send to me by Petr Ferdus. There was some Czech
+%D comment in which I could recognize the name of Ondrej
+%D Koala Vacha. More information on setting up such a vector
+%D can be found in the \PDF\ reference manual.
+
+\startpdffontresource[il2]
+/CIDInit /ProcSet findresource begin
+12 dict begin
+ begincmap
+ /CIDSystemInfo
+ << /Registry (Adobe)
+ /Ordering (T1UV)
+ /Supplement 0
+ >> def
+ /CMapName /Adobe-Identity-UCS def
+ /CMapType 1 def
+ 1 begincodespacerange
+ <00> <FF>
+ endcodespacerange
+ %%FontSpecificEncoding
+ 191 beginbfrange
+ <20> <20> <0020> % space dec: 32 oct:040 hex:20
+ <21> <21> <0021> % exclam dec: 33 oct:041 hex:21
+ <22> <22> <0022> % quotedbl dec: 34 oct:042 hex:22
+ <23> <23> <0023> % numbersign dec: 35 oct:043 hex:23
+ <24> <24> <0024> % dollar dec: 36 oct:044 hex:24
+ <25> <25> <0025> % percent dec: 37 oct:045 hex:25
+ <26> <26> <0026> % ampersand dec: 38 oct:046 hex:26
+ <27> <27> <0027> % quotesingle dec: 39 oct:047 hex:27
+ <28> <28> <0028> % parenleft dec: 40 oct:050 hex:28
+ <29> <29> <0029> % parenright dec: 41 oct:051 hex:29
+ <2a> <2a> <002a> % asterisk dec: 42 oct:052 hex:2a
+ <2b> <2b> <002b> % plus dec: 43 oct:053 hex:2b
+ <2c> <2c> <002c> % comma dec: 44 oct:054 hex:2c
+ <2d> <2d> <002d> % hyphen dec: 45 oct:055 hex:2d
+ <2e> <2e> <002e> % period dec: 46 oct:056 hex:2e
+ <2f> <2f> <002f> % slash dec: 47 oct:057 hex:2f
+ <30> <30> <0030> % zero dec: 48 oct:060 hex:30
+ <31> <31> <0031> % one dec: 49 oct:061 hex:31
+ <32> <32> <0032> % two dec: 50 oct:062 hex:32
+ <33> <33> <0033> % three dec: 51 oct:063 hex:33
+ <34> <34> <0034> % four dec: 52 oct:064 hex:34
+ <35> <35> <0035> % five dec: 53 oct:065 hex:35
+ <36> <36> <0036> % six dec: 54 oct:066 hex:36
+ <37> <37> <0037> % seven dec: 55 oct:067 hex:37
+ <38> <38> <0038> % eight dec: 56 oct:070 hex:38
+ <39> <39> <0039> % nine dec: 57 oct:071 hex:39
+ <3a> <3a> <003a> % colon dec: 58 oct:072 hex:3a
+ <3b> <3b> <003b> % semicolon dec: 59 oct:073 hex:3b
+ <3c> <3c> <003c> % less dec: 60 oct:074 hex:3c
+ <3d> <3d> <003d> % equal dec: 61 oct:075 hex:3d
+ <3e> <3e> <003e> % greater dec: 62 oct:076 hex:3e
+ <3f> <3f> <003f> % question dec: 63 oct:077 hex:3f
+ <40> <40> <0040> % at dec: 64 oct:100 hex:40
+ <41> <41> <0041> % A dec: 65 oct:101 hex:41
+ <42> <42> <0042> % B dec: 66 oct:102 hex:42
+ <43> <43> <0043> % C dec: 67 oct:103 hex:43
+ <44> <44> <0044> % D dec: 68 oct:104 hex:44
+ <45> <45> <0045> % E dec: 69 oct:105 hex:45
+ <46> <46> <0046> % F dec: 70 oct:106 hex:46
+ <47> <47> <0047> % G dec: 71 oct:107 hex:47
+ <48> <48> <0048> % H dec: 72 oct:110 hex:48
+ <49> <49> <0049> % I dec: 73 oct:111 hex:49
+ <4a> <4a> <004a> % J dec: 74 oct:112 hex:4a
+ <4b> <4b> <004b> % K dec: 75 oct:113 hex:4b
+ <4c> <4c> <004c> % L dec: 76 oct:114 hex:4c
+ <4d> <4d> <004d> % M dec: 77 oct:115 hex:4d
+ <4e> <4e> <004e> % N dec: 78 oct:116 hex:4e
+ <4f> <4f> <004f> % O dec: 79 oct:117 hex:4f
+ <50> <50> <0050> % P dec: 80 oct:120 hex:50
+ <51> <51> <0051> % Q dec: 81 oct:121 hex:51
+ <52> <52> <0052> % R dec: 82 oct:122 hex:52
+ <53> <53> <0053> % S dec: 83 oct:123 hex:53
+ <54> <54> <0054> % T dec: 84 oct:124 hex:54
+ <55> <55> <0055> % U dec: 85 oct:125 hex:55
+ <56> <56> <0056> % V dec: 86 oct:126 hex:56
+ <57> <57> <0057> % W dec: 87 oct:127 hex:57
+ <58> <58> <0058> % X dec: 88 oct:130 hex:58
+ <59> <59> <0059> % Y dec: 89 oct:131 hex:59
+ <5a> <5a> <005a> % Z dec: 90 oct:132 hex:5a
+ <5b> <5b> <005b> % bracketleft dec: 91 oct:133 hex:5b
+ <5c> <5c> <005c> % backslash dec: 92 oct:134 hex:5c
+ <5d> <5d> <005d> % bracketright dec: 93 oct:135 hex:5d
+ <5e> <5e> <005e> % asciicircum dec: 94 oct:136 hex:5e
+ <5f> <5f> <005f> % underscore dec: 95 oct:137 hex:5f
+ <60> <60> <0060> % grave dec: 96 oct:140 hex:60
+ <61> <61> <0061> % a dec: 97 oct:141 hex:61
+ <62> <62> <0062> % b dec: 98 oct:142 hex:62
+ <63> <63> <0063> % c dec: 99 oct:143 hex:63
+ <64> <64> <0064> % d dec:100 oct:144 hex:64
+ <65> <65> <0065> % e dec:101 oct:145 hex:65
+ <66> <66> <0066> % f dec:102 oct:146 hex:66
+ <67> <67> <0067> % g dec:103 oct:147 hex:67
+ <68> <68> <0068> % h dec:104 oct:150 hex:68
+ <69> <69> <0069> % i dec:105 oct:151 hex:69
+ <6a> <6a> <006a> % j dec:106 oct:152 hex:6a
+ <6b> <6b> <006b> % k dec:107 oct:153 hex:6b
+ <6c> <6c> <006c> % l dec:108 oct:154 hex:6c
+ <6d> <6d> <006d> % m dec:109 oct:155 hex:6d
+ <6e> <6e> <006e> % n dec:110 oct:156 hex:6e
+ <6f> <6f> <006f> % o dec:111 oct:157 hex:6f
+ <70> <70> <0070> % p dec:112 oct:160 hex:70
+ <71> <71> <0071> % q dec:113 oct:161 hex:71
+ <72> <72> <0072> % r dec:114 oct:162 hex:72
+ <73> <73> <0073> % s dec:115 oct:163 hex:73
+ <74> <74> <0074> % t dec:116 oct:164 hex:74
+ <75> <75> <0075> % u dec:117 oct:165 hex:75
+ <76> <76> <0076> % v dec:118 oct:166 hex:76
+ <77> <77> <0077> % w dec:119 oct:167 hex:77
+ <78> <78> <0078> % x dec:120 oct:170 hex:78
+ <79> <79> <0079> % y dec:121 oct:171 hex:79
+ <7a> <7a> <007a> % z dec:122 oct:172 hex:7a
+ <7b> <7b> <007b> % braceleft dec:123 oct:173 hex:7b
+ <7c> <7c> <007c> % bar dec:124 oct:174 hex:7c
+ <7d> <7d> <007d> % braceright dec:125 oct:175 hex:7d
+ <7e> <7e> <007e> % asciitilde dec:126 oct:176 hex:7e
+ <a0> <a0> <00a0> % nbspace dec:160 oct:240 hex:a0
+ <a1> <a1> <0104> % Aogonek dec:161 oct:241 hex:a1
+ <a2> <a2> <00a2> % breve dec:162 oct:242 hex:a2
+ <a3> <a3> <00a3> % Lslash dec:163 oct:243 hex:a3
+ <a4> <a4> <00a4> % currency dec:164 oct:244 hex:a4
+ <a5> <a5> <013d> % Lcaron dec:165 oct:245 hex:a5
+ <a6> <a6> <015a> % Sacute dec:166 oct:246 hex:a6
+ <a7> <a7> <00a7> % section dec:167 oct:247 hex:a7
+ <a8> <a8> <00a8> % dieresis dec:168 oct:250 hex:a8
+ <a9> <a9> <0160> % Scaron dec:169 oct:251 hex:a9
+ <aa> <aa> <015e> % Scedilla dec:170 oct:252 hex:aa
+ <ab> <ab> <0164> % Tcaron dec:171 oct:253 hex:ab
+ <ac> <ac> <0179> % Zacute dec:172 oct:254 hex:ac
+ <ad> <ad> <00ad> % sfthyphen dec:173 oct:255 hex:ad
+ <ae> <ae> <017d> % Zcaron dec:174 oct:256 hex:ae
+ <af> <af> <00af> % Zdotaccent dec:175 oct:257 hex:af
+ <b0> <b0> <00b0> % ring dec:176 oct:260 hex:b0
+ <b1> <b1> <0105> % aogonek dec:177 oct:261 hex:b1
+ <b2> <b2> <00b2> % ogonek dec:178 oct:262 hex:b2
+ <b3> <b3> <00b3> % lslash dec:179 oct:263 hex:b3
+ <b4> <b4> <00b4> % acute dec:180 oct:264 hex:b4
+ <b5> <b5> <013e> % lcaron dec:181 oct:265 hex:b5
+ <b6> <b6> <015b> % sacute dec:182 oct:266 hex:b6
+ <b7> <b7> <00b7> % caron dec:183 oct:267 hex:b7
+ <b8> <b8> <00b8> % cedilla dec:184 oct:270 hex:b8
+ <b9> <b9> <0161> % scaron dec:185 oct:271 hex:b9
+ <ba> <ba> <015f> % scedilla dec:186 oct:272 hex:ba
+ <bb> <bb> <0165> % tcaron dec:187 oct:273 hex:bb
+ <bc> <bc> <017a> % zacute dec:188 oct:274 hex:bc
+ <bd> <bd> <00bd> % hungarumlaut dec:189 oct:275 hex:bd
+ <be> <be> <017e> % zcaron dec:190 oct:276 hex:be
+ <bf> <bf> <00bf> % zdotaccent dec:191 oct:277 hex:bf
+ <c0> <c0> <0154> % Racute dec:192 oct:300 hex:c0
+ <c1> <c1> <00c1> % Aacute dec:193 oct:301 hex:c1
+ <c2> <c2> <00c2> % Acircumflex dec:194 oct:302 hex:c2
+ <c3> <c3> <0102> % Abreve dec:195 oct:303 hex:c3
+ <c4> <c4> <00c4> % Adieresis dec:196 oct:304 hex:c4
+ <c5> <c5> <0139> % Lacute dec:197 oct:305 hex:c5
+ <c6> <c6> <0106> % Cacute dec:198 oct:306 hex:c6
+ <c7> <c7> <00c7> % Ccedilla dec:199 oct:307 hex:c7
+ <c8> <c8> <010c> % Ccaron dec:200 oct:310 hex:c8
+ <c9> <c9> <00c9> % Eacute dec:201 oct:311 hex:c9
+ <ca> <ca> <0118> % Eogonek dec:202 oct:312 hex:ca
+ <cb> <cb> <00cb> % Edieresis dec:203 oct:313 hex:cb
+ <cc> <cc> <011a> % Ecaron dec:204 oct:314 hex:cc
+ <cd> <cd> <00cd> % Iacute dec:205 oct:315 hex:cd
+ <ce> <ce> <00ce> % Icircumflex dec:206 oct:316 hex:ce
+ <cf> <cf> <010e> % Dcaron dec:207 oct:317 hex:cf
+ <d0> <d0> <00d0> % Dslash dec:208 oct:320 hex:d0
+ <d1> <d1> <0143> % Nacute dec:209 oct:321 hex:d1
+ <d2> <d2> <0147> % Ncaron dec:210 oct:322 hex:d2
+ <d3> <d3> <00d3> % Oacute dec:211 oct:323 hex:d3
+ <d4> <d4> <00d4> % Ocircumflex dec:212 oct:324 hex:d4
+ <d5> <d5> <00d5> % Ohungarumlaut dec:213 oct:325 hex:d5
+ <d6> <d6> <00d6> % Odieresis dec:214 oct:326 hex:d6
+ <d7> <d7> <00d7> % multiply dec:215 oct:327 hex:d7
+ <d8> <d8> <0158> % Rcaron dec:216 oct:330 hex:d8
+ <d9> <d9> <016e> % Uring dec:217 oct:331 hex:d9
+ <da> <da> <00da> % Uacute dec:218 oct:332 hex:da
+ <db> <db> <00db> % Uhungarumlaut dec:219 oct:333 hex:db
+ <dc> <dc> <00dc> % Udieresis dec:220 oct:334 hex:dc
+ <dd> <dd> <00dd> % Yacute dec:221 oct:335 hex:dd
+ <de> <de> <00de> % Tcommaaccent dec:222 oct:336 hex:de
+ <df> <df> <00df> % germandbls dec:223 oct:337 hex:df
+ <e0> <e0> <0155> % racute dec:224 oct:340 hex:e0
+ <e1> <e1> <00e1> % aacute dec:225 oct:341 hex:e1
+ <e2> <e2> <00e2> % acircumflex dec:226 oct:342 hex:e2
+ <e3> <e3> <0103> % abreve dec:227 oct:343 hex:e3
+ <e4> <e4> <00e4> % adieresis dec:228 oct:344 hex:e4
+ <e5> <e5> <013a> % lacute dec:229 oct:345 hex:e5
+ <e6> <e6> <0107> % cacute dec:230 oct:346 hex:e6
+ <e7> <e7> <00e7> % ccedilla dec:231 oct:347 hex:e7
+ <e8> <e8> <010d> % ccaron dec:232 oct:350 hex:e8
+ <e9> <e9> <00e9> % eacute dec:233 oct:351 hex:e9
+ <ea> <ea> <0119> % eogonek dec:234 oct:352 hex:ea
+ <eb> <eb> <00eb> % edieresis dec:235 oct:353 hex:eb
+ <ec> <ec> <011b> % ecaron dec:236 oct:354 hex:ec
+ <ed> <ed> <00ed> % iacute dec:237 oct:355 hex:ed
+ <ee> <ee> <00ee> % icircumflex dec:238 oct:356 hex:ee
+ <ef> <ef> <010f> % dcaron dec:239 oct:357 hex:ef
+ <f0> <f0> <00f0> % dmacron dec:240 oct:360 hex:f0
+ <f1> <f1> <0144> % nacute dec:241 oct:361 hex:f1
+ <f2> <f2> <0148> % ncaron dec:242 oct:362 hex:f2
+ <f3> <f3> <00f3> % oacute dec:243 oct:363 hex:f3
+ <f4> <f4> <00f4> % ocircumflex dec:244 oct:364 hex:f4
+ <f5> <f5> <00f5> % ohungarumlaut dec:245 oct:365 hex:f5
+ <f6> <f6> <00f6> % odieresis dec:246 oct:366 hex:f6
+ <f7> <f7> <00f7> % divide dec:247 oct:367 hex:f7
+ <f8> <f8> <0159> % rcaron dec:248 oct:370 hex:f8
+ <f9> <f9> <016f> % uring dec:249 oct:371 hex:f9
+ <fa> <fa> <00fa> % uacute dec:250 oct:372 hex:fa
+ <fb> <fb> <00fb> % uhungarumlaut dec:251 oct:373 hex:fb
+ <fc> <fc> <00fc> % udieresis dec:252 oct:374 hex:fc
+ <fd> <fd> <00fd> % yacute dec:253 oct:375 hex:fd
+ <fe> <fe> <00fe> % tcommaaccent dec:254 oct:376 hex:fe
+ <ff> <ff> <00ff> % dotaccent dec:255 oct:377 hex:ff
+ endbfrange
+ endcmap
+CMapName currentdict /CMap defineresource pop end
+end
+\stoppdffontresource
+
+\endinput
diff --git a/Master/texmf-dist/tex/context/base/ppchtex.tex b/Master/texmf-dist/tex/context/base/ppchtex.mkii
index 13c457800b5..285b0004ecd 100644
--- a/Master/texmf-dist/tex/context/base/ppchtex.tex
+++ b/Master/texmf-dist/tex/context/base/ppchtex.mkii
@@ -56,7 +56,7 @@
% getoont. Buiten Context genereren we een melding:
\doifundefined{usemodule}
- {\writestatus{loading}{Context Chemical Macro's / 1996.3.1}}
+ {\writestatus{loading}{ConTeXt Chemical Macro's / 1996.3.1}}
% Er kan gebruik worden gemaakt van PiCTeX of PStricks. Een
% van deze pakketten moet van te voren zijn geladen.
@@ -337,6 +337,13 @@
\endlatexmathmodehack
\fi}
+\ifx\Umathchar\undefined \else
+ % for the moment we nil them, soon we will have a proper
+ % way to deal with this
+ \let\setsubscripts \relax
+ \let\resetsubscripts\relax
+\fi
+
\def\doresetsubscripts
{\resetsubscripts}
@@ -404,7 +411,7 @@
\def\doifchemicalnumber#1#2#3%
{\doifnumberelse{#1}
- {\ifnum#1>\maxchemical
+ {\ifnum#1>\maxchemical\relax
\writestatus{ppchtex}{number #1 is skipped}%
\else
#3%
@@ -556,6 +563,10 @@
\stopMPdrawing
\fi}
+\ifx\MPdivten\undefined % hack to prevent overflows in mp
+ \def\MPdivten[#1]{\withoutpt\the\dimexpr#1pt/10\relax}
+\fi
+
\def\@@setchemicalaxis#1#2#3#4%
{\ifcase\chemicaldrawingmode
\axis
@@ -568,6 +579,7 @@
\psaxes[labels=none,Dx=500,Dy=500](0,0)(#1,#3)(#2,#4)%
\or
\global\MPdrawingdonetrue
+ % we need to div beforehand because of mp limitations
\startMPdrawing
x1 := \MPdivten[#1]u ; x2 := \MPdivten[#2]u;
y1 := \MPdivten[#3]u ; y2 := \MPdivten[#4]u;
@@ -1156,14 +1168,15 @@
{\def\@@chemicalframe{\chemicalframe}}
{\def\@@chemicalframe{}}%
\dosetsubscripts
- \setbox2=\hbox{$\@@dochemicalstyle{\@@localchemicalformat \chemicaltext}$}%
+ \setbox2=\hbox{\@@dochemicalcolor
+ $\@@dochemicalstyle{\@@localchemicalformat \chemicaltext}$}%
\setbox4=\hbox{$\@@dochemicalstyle{\@@localchemicalformat C_2^2}$}%
\setbox6=\hbox{$\@@dochemicalstyle{\@@localchemicalformat O}$}% or C
\doresetsubscripts
\doifnot\@@chemicallocation\v!intext
{\ht2=\ht4
\dp2=\dp4}%
- \setbox2=\hbox{\@@chemicalframe{\@@dochemicalcolor\box2}}%
+ \setbox2=\hbox{\@@chemicalframe{\box2}}%
\ifdim\wd2>\wd6
\doifelse{#1}{0}
{\doifnot{#2}{0}{\wd2=\wd6}}
@@ -3369,24 +3382,35 @@ RT##3##4##5=>\processchemicaltextelement{RN}{##3##4##5}{#1}{0}{},
%D \item position tracking
%D \stopitemize
-
\ifCONTEXT \else \protect \endinput \fi
+\let\@@chemicalrulecolor\empty
+\let\@@chemicalcolor \empty
+
+% \def\setchemicalattributes
+% {\scratchdimen\@@chemicalchemicalrulethickness
+% \def\chemicalattributes
+% {withpen pencircle scaled \the\scratchdimen\space
+% withcolor }%
+% \doifelsenothing\@@chemicalchemicalrulecolor
+% {\edef\chemicalattributes{\chemicalattributes black}}
+% {\edef\chemicalattributes{\chemicalattributes \MPcolor{\@@chemicalchemicalrulecolor}}}%
+% \startMPdrawing
+% drawoptions (\chemicalattributes) ;
+% \stopMPdrawing}
+
\def\setchemicalattributes
- {\scratchdimen\@@chemicalchemicalrulethickness
+ {\scratchdimen\@@chemicalrulethickness
\def\chemicalattributes
{withpen pencircle scaled \the\scratchdimen\space
withcolor }%
- \doifelsenothing\@@chemicalchemicalrulecolor
+ \doifelsenothing\@@chemicalrulecolor
{\edef\chemicalattributes{\chemicalattributes black}}
- {\edef\chemicalattributes
- {\chemicalattributes \MPcolor{\@@chemicalchemicalrulecolor}}}%
+ {\edef\chemicalattributes{\chemicalattributes \MPcolor{\@@chemicalrulecolor}}}%
\startMPdrawing
drawoptions (\chemicalattributes) ;
\stopMPdrawing}
-\let\@@chemicalcolor\empty
-
\def\@@dochemicalcolor
{\doifsomething\@@chemicalcolor{\color[\@@chemicalcolor]}}
diff --git a/Master/texmf-dist/tex/context/base/ppchtex.mkiv b/Master/texmf-dist/tex/context/base/ppchtex.mkiv
new file mode 100644
index 00000000000..f0fc54bcc47
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/ppchtex.mkiv
@@ -0,0 +1,3359 @@
+%D \module
+%D [ file=ppchtex (m-chemie),
+%D version=1997.03.19,
+%D title=\CONTEXT\ Extra Modules,
+%D subtitle=\PPCHTEX\ (Plain Pictex Context cHemie \TEX),
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten},
+%D suggestions={Tobias Burnus, Dirk Kuypers \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+% option=test => boxes
+% dummy => file
+% final => file / local run
+%
+% constante van phantom in definitie ONE: \setchemicaltextwidth 300
+%
+% it would be interesting to rewrite this module with todays
+% experiences and new context functionality, maybe ...
+
+% Deze module ondersteunt het zetten van chemische
+% (structuur)formules. Hoewel de macro' zijn afgestemd op
+% CONTEXT, zijn ze ook buiten deze zetomgeving te gebruiken.
+%
+% Dit is, afgezien van updates, de definitieve versie van
+% PPCHTEX. Gebruikersgemak, eenvoud, flexibiliteit, en
+% snelheid zijn inmiddels redelijk geoptimaliseerd. Dit neemt
+% niet weg dat hier en daar nog verbetering mogelijk is. Dit
+% zal dan ook nog gebeuren.
+%
+% Volgende versies zullen tenminste dezelfde functionaliteit
+% hebben. We houden ons natuurlijk het recht voor de kwaliteit
+% van de output te verbeteren. Daarnaast staan nog op het
+% wensenlijstje:
+%
+% - optimaliseren in termen van proces-tijd
+% - aanpassen naamgeving van interne macro's
+% - toevoegen van functionaliteit
+% - in \x!-vorm omzetten van GIVES, TB enz.
+%
+% De mix tussen engels en nederlands lijkt soms verwarrend.
+% Meestal zijn verborgen macro's engels en zichtbare macro's
+% nederlands. Het gebruik van [ ] en { } sluit aan op andere
+% Context-macro's. Hetzelfde geldt voor instellingen en
+% \start-\stop-constructies.
+%
+% De schijnbaar overbodige \bgroup-\egroup constructie
+% garandeert aansluiting bij de Context-macro's voor het
+% plaatsen van figuren, tabellen en andere floats.
+%
+% Binnen Context worden de macro's geladen met
+% \gebruikextras[chemie]. Daarbij wordt een passende melding
+% getoont. Buiten Context genereren we een melding:
+
+\doifundefined{usemodule}
+ {\writestatus{loading}{ConTeXt Chemical Macro's / 1996.3.1}}
+
+% Er kan gebruik worden gemaakt van PiCTeX of PStricks. Een
+% van deze pakketten moet van te voren zijn geladen.
+%
+% \input prepictex.tex (i.g.v. LaTeX)
+% \input pictex.tex
+% \input postpictex.tex (i.g.v. LaTeX)
+%
+% of:
+%
+% \input multido.tex
+% \input pstricks.tex
+% \input pst-plot.tex
+%
+% In \CONTEXT\ kan men de modules m-pictex en m-pstricks
+% gebruiken. De eerste module laad of efficiente wijze PiCTeX
+% en de tweede module koppelt het PSTRICKS kleurmechanisme
+% aan dat van \CONTEXT.
+%
+
+% PSTricks: {-\chemicalangle} instead of {*0}, which produces
+% faulty ps code when \chemicalangle=0
+
+\startcommands dutch english german
+
+ gotochemical: naarchemie gotochemical zurchemie
+ setupchemical: stelchemiein setupchemical stellechemieein
+ startchemical: startchemie startchemical startchemie
+ stopchemical: stopchemie stopchemical stopchemie
+ definechemical: definieerchemie definechemical definierechemie
+ chemical: chemie chemical chemie
+ toptext: boventekst toptext textueber
+ bottext: ondertekst bottext textunter
+ midtext: middentekst midtext textmitte
+
+\stopcommands
+
+\doifundefined{fiverm} % In the more recent LaTeX versions
+ {\font\fiverm=cmr5 } % \fiverm is no longer (pre)defined.
+
+\doifdefinedelse{beginpicture} % PiCTeX
+ {\doifdefinedelse{startMPdrawing}
+ {\chardef\chemicaldrawingmode=2 } % MetaPost
+ {\chardef\chemicaldrawingmode=0 }} % raw
+ {\doifdefinedelse{psaxes}
+ {\chardef\chemicaldrawingmode=1 } % PSTricks
+ {\chardef\chemicaldrawingmode=3 }} % unknown
+
+\ifcase\chemicaldrawingmode
+ \writestatus{ppchtex}{using PiCTeX}
+\or
+ \writestatus{ppchtex}{using PSTricks (still experimental)}
+ \writestatus{ppchtex}{automatic sizing not (yet) supported}
+\or
+ \writestatus{ppchtex}{using PiCTeX and MetaPost}
+\else
+ \writestatus{ppchtex}{load PiCTeX (+pre/post) or PSTricks (+pst_plot) first}
+ \bgroup
+ \read16 to \exit
+ \egroup
+ \expandafter\endinput
+\fi
+
+%I n=Chemie
+%I c=\stelchemiein,\chemie
+%I
+%I Chemische formules kunnen worden gezet met behulp van de
+%I onderstaande commando's:
+%I
+%I buiten $ en $$ :
+%I
+%I \chemie[segmenten][symbolen]
+%I
+%I \startchemie[instellingen]
+%I \chemie...
+%I \chemie...
+%I \stopchemie
+%I
+%I en binnen $ en $$:
+%I
+%I \chemie{}{}
+%I
+%I Voor tekst, uitleg en voorbeelde verwijzen we vooralsnog
+%I naar de handleiding.
+%P
+%I Het gedrag van de macro's kan worden ingesteld met:
+%I
+%I \stelchemiein[breedte=,hoogte=,links=,rechts=,boven=,
+%I onder=,korps=,schaal=,status=,assenstelsel=,kader=,
+%I variant=,optie=,formaat=,tekstformaat=,resolutie=,
+%I offset=,letter=]
+%I
+%I Structuren kunnen worden voorgedefinieerd met het commando
+%I
+%I \definieerchemie[naam]{\chemie...}
+
+%S \startsetup
+%S \command
+%S [\!stelchemiein]
+%S \type
+%S [\c!vars!]
+%S \variable
+%S [\c!breedte]
+%S [\c!number!,\v!passend]
+%S [0]
+%S \variable
+%S [\c!hoogte]
+%S [\c!number!,\v!passend]
+%S [0]
+%S \variable
+%S [\c!links]
+%S [\c!number!]
+%S [0]
+%S \variable
+%S [\c!rechts]
+%S [\c!number!]
+%S [0]
+%S \variable
+%S [\c!boven]
+%S [\c!number!]
+%S [0]
+%S \variable
+%S [\c!onder]
+%S [\c!number!]
+%S [0]
+%S \variable
+%S [\c!resolutie]
+%S [\c!number!]
+%S [\outputresolution]
+%S \variable
+%S [\c!korps]
+%S [10pt,11pt,12pt]
+%S [\bodyfontsize]
+%S \variable
+%S [\c!schaal]
+%S [\v!klein,\v!middel,\v!groot]
+%S [\v!middel]
+%S \variable
+%S [\c!formaat]
+%S [\v!klein,\v!middel,\v!groot]
+%S [\v!groot]
+%S \variable
+%S [\c!tekstformaat]
+%S [\v!klein,\v!middel,\v!groot]
+%S [\v!groot]
+%S \variable
+%S [\c!status]
+%S [\v!start,\v!stop]
+%S [\v!start]
+%S \variable
+%S [\c!kader]
+%S [\v!aan,\v!uit]
+%S [\v!uit]
+%S \variable
+%S [\c!assenstelsel]
+%S [\v!aan,\v!uit]
+%S [\v!uit]
+%S \variable
+%S [\c!optie]
+%S [\v!test]
+%S []
+%S \variable
+%S [\c!variant]
+%S [1,2]
+%S [1]
+%S \variable
+%S [\c!offset]
+%S [HIGH,LOW]
+%S [LOW]
+%S \variable
+%S [\c!letter]
+%S [\c!command!]
+%S [\rm]
+%S \stopsetup
+
+%S \startsetup
+%S \command
+%S [\v!startchemie]
+%S \type
+%S [\c!vars!\c!stp!]
+%S \inheritvariable
+%S [\v!stelchemiein]
+%S []
+%S \stopsetup
+
+%S \startsetup
+%S \command
+%S [\v!chemie]
+%S \type
+%S [\c!vals!\c!vals!]
+%S \value
+%S [\c!list!]
+%S []
+%S \value
+%S [\c!list!]
+%S []
+%S \stopsetup
+
+%S \startsetup
+%S \command
+%S [definieerchemie]
+%S \type
+%S [\c!val!\c!arg!]
+%S \value
+%S [\c!text!]
+%S []
+%S \stopsetup
+
+\unprotect
+
+% Om te voorkomen dat sub- en superscripts botsen passen we
+% wat fontdimen's aan (Knuth, The TeXBook, p179). Helaas
+% kunnen deze instellingen niet lokaal worden gehouden door
+% groeperen, vandaar dat een en ander moet worden geset n
+% gereset.
+%
+% Er dient een relatie te worden gelegd met de afmetingen
+% van de letters. In een eerdere versie werden daartoe de
+% \fontdimen's opgehoogd. Omdat dit problemen gaf bij
+% scaled fonts, is bij nader inzien gekozen voor de
+% onderstaande oplossing, waarbij de nieuwe waarden worden
+% afgeleid van de x-height (\fontexheight). De factor 0.70
+% is min of meer experimenteel vastgesteld. Soms worden de
+% regels iets verder uit elkaar gezet. Jammer. Italic fonts
+% hebben grotere cijfers en vallen min of meer uit de boot.
+
+\newif\ifloweredsubscripts
+
+% Due to some upward incompatibality of LaTeX to LaTeX2.09
+% and/or LaTeX2e we had to force \@@dochemicalstyle. Otherwise
+% some weird \nullfont error comes up.
+
+\def\beginlatexmathmodehack
+ {\ifmmode
+ \let\endlatexmathmodehack=\relax
+ \else
+ \def\endlatexmathmodehack{$}$\@@dochemicalstyle\empty
+ \fi}
+
+\def\setsubscripts
+ {\beginlatexmathmodehack
+ \def\dosetsubscript##1##2##3%
+ {\dimen0=##3\fontexheight##2%
+ \setxvalue{@@\string##1\string##2}{\the##1##2\relax}%
+ ##1##2=\dimen0\relax}%
+ \def\dodosetsubscript##1##2%
+ {\dosetsubscript{##1}{\textfont 2}{##2}%
+ \dosetsubscript{##1}{\scriptfont 2}{##2}%
+ \dosetsubscript{##1}{\scriptscriptfont2}{##2}}%
+ %dodosetsubscript\mathsupnormal {?}%
+ \dodosetsubscript\mathsubnormal {.7}%
+ \dodosetsubscript\mathsubcombined{.7}%
+ \global\loweredsubscriptstrue
+ \endlatexmathmodehack}
+
+\def\resetsubscripts
+ {\ifloweredsubscripts
+ \beginlatexmathmodehack
+ \def\doresetsubscript##1##2%
+ {\dimen0=\getvalue{@@\string##1\string##2}\relax
+ ##1##2=\dimen0}%
+ \def\dodoresetsubscript##1%
+ {\doresetsubscript{##1}{\textfont2}%
+ \doresetsubscript{##1}{\scriptfont2}%
+ \doresetsubscript{##1}{\scriptscriptfont2}}%
+ %dodoresetsubscript\mathsupnormal
+ \dodoresetsubscript\mathsubnormal
+ \dodoresetsubscript\mathsubcombined
+ \global\loweredsubscriptsfalse
+ \endlatexmathmodehack
+ \fi}
+
+\ifx\Umathchar\undefined \else
+ % for the moment we nil them, soon we will have a proper
+ % way to deal with this
+ \let\setsubscripts \relax
+ \let\resetsubscripts\relax
+\fi
+
+\def\doresetsubscripts
+ {\resetsubscripts}
+
+\def\sethighsubscripts
+ {\resetsubscripts
+ \let\dosetsubscripts=\relax}
+
+\def\setlowsubscripts
+ {\def\dosetsubscripts{\setsubscripts}}
+
+\setlowsubscripts
+
+\newcount\horchemical % t.z.t. \newcounter
+\newcount\verchemical % t.z.t. \newcounter
+\newcount\txtchemical % t.z.t. \newcounter
+\newcount\levchemical % t.z.t. \newcounter
+
+\newif\ifinchemical \inchemicalfalse
+\newif\iffixedchemical \fixedchemicalfalse
+
+\newbox\chemicalsymbols
+
+% Eigenlijk moeten de constanten en variabelen in cont-nl.tex
+% staan. Dit pakket is echter relatief onafhankelijk van CONTEXT.
+
+\definesystemvariable {chemical}
+
+\definesystemconstant {chemical}
+
+\definesystemconstant {translate}
+\definesystemconstant {distance}
+\definesystemconstant {mirror}
+\definesystemconstant {rotate}
+\definesystemconstant {substitute}
+\definesystemconstant {angle}
+
+\definesystemconstant {executechemical}
+\definesystemconstant {chemicaltextelement}
+\definesystemconstant {chemicallinesegment}
+\definesystemconstant {chemicalcircsegment}
+
+\def\chemicalspace {\quad}
+
+% begin van experiment:
+%
+% De onderstaande twee macro's kunnen worden gebruikt voor
+% bijvoorbeeld een interactiemechanisme.
+%
+% \localgotochemical {verwijzing} {tekst}
+% \localthisischemical {verwijzing}
+
+\def\dowithchemical%
+ {}
+
+\doifdefinedelse{@@iastate}
+ {\def\localgotochemical#1#2{\naarbox{#2}[#1]}%
+ \def\localthisischemical#1{\pagereference[#1]}}
+ {\def\localgotochemical#1{}%
+ \def\localthisischemical#1{}}
+
+% eind van experiment
+
+\def\setchemicalmaximum #1
+ {\def\maxchemical{#1}}
+
+\def\doifchemicalnumber#1#2#3%
+ {\doifnumberelse{#1}
+ {\ifnum#1>\maxchemical\relax
+ \writestatus{ppchtex}{number #1 is skipped}%
+ \else
+ #3%
+ \fi}
+ {\unknownchemical{#2}}}%
+
+\newif\ifsmallchemicaltext
+
+\let\@@localchemicalstyle\empty
+
+\def\setupchemicalformat[#1]%
+ {\processaction
+ [\getvalue{#1\c!size}]
+ [ \v!small=>\def\@@localchemicalformat{\scriptscriptstyle},
+ \v!medium=>\def\@@localchemicalformat{\ifsmallchemicaltext\scriptscriptstyle\else\scriptstyle\fi},
+ \v!big=>\def\@@localchemicalformat{\ifsmallchemicaltext\scriptstyle\else\textstyle\fi},
+ \s!unknown=>\def\@@localchemicalformat{\getvalue{#1\c!size}}]%
+ \processaction
+ [\getvalue{#1\c!textsize}]
+ [ \v!small=>\def\@@localchemicalstyle{\scriptscriptstyle},
+ \v!medium=>\def\@@localchemicalstyle{\ifsmallchemicaltext\scriptscriptstyle\else\scriptstyle\fi},
+ \v!big=>\def\@@localchemicalstyle{\ifsmallchemicaltext\scriptstyle\else\textstyle\fi},
+ \s!unknown=>\def\@@localchemicalstyle{\getvalue{#1\c!textsize}}]%
+ \processaction
+ [\getvalue{#1\c!scale}]
+ [ \v!small=>\def\@@localchemicalscale{500},
+ \v!medium=>\def\@@localchemicalscale{625},
+ \v!big=>\def\@@localchemicalscale{750},
+ \s!unknown=>\def\@@localchemicalscale{\getvalue{#1\c!scale}}]}
+
+\def\@@currentchemicalformat
+ {\ifinchemical
+ \@@localchemicalformat
+ \else
+ \@@localchemicalstyle
+ \fi}
+
+\def\dosetupchemical[#1]%
+ {\getparameters[\??chemical\s!chemical][#1]%
+ \doifelse{\@@chemicalchemicaloffset}{LOW}
+ {\setlowsubscripts}
+ {\sethighsubscripts}%
+ \setupchemicalformat[\??chemical\s!chemical]%
+ \ignorespaces}
+
+\def\setupchemical
+ {\dosingleargument\dosetupchemical}
+
+\def\@@dochemicalstyle% % default mapping
+ {\@@chemicalstyle}
+
+\def\@@dochemicalcolor% % no mapping yet
+ {}
+
+\def\@@chemicalstyle % $inner-style$ % (overloaded)
+ {\@@chemicalchemicalstyle} % $$outer-style$$
+
+\def\@@writechemicalstate#1#2%
+ {}
+
+\def\@@beginchemicallocalpicture
+ {\ifcase\chemicaldrawingmode
+ \beginpicture
+ \or
+ \pspicture(0,0)(0,0) % is this permitted ?
+ \or
+ \pushMPdrawing
+ \startMPdrawing
+ %prologues := 1 ;
+ %input mp-tool ;
+ u := 10*\@@chemicalunit;
+ bboxmargin := 0pt ;
+ pickup pencircle scaled 2u ; % ???
+ \stopMPdrawing
+ \beginpicture
+ \fi}
+
+\def\@@endchemicallocalpicture#1#2%
+ {\ifcase\chemicaldrawingmode
+ \endpicture
+ \or
+ \endpspicture
+ \or
+ \resetchemicalcoordinates
+ \setbox2\hbox{\MPshiftdrawingtrue\MPstaticgraphictrue\getMPdrawing}%
+ \wd2=\!!zeropoint
+ \ht2=\!!zeropoint
+ \dp2=\!!zeropoint
+ \put {\box2} at 0 0
+ \endpicture
+ \popMPdrawing
+ \fi}
+
+\def\@@beginchemicalpicture#1#2#3#4%
+ {\ifnum\chemicaldrawingmode=1
+ \pspicture(#1,#3)(#2,#4)%
+ \def\account##1##2{}%
+ \psaxes[axesstyle=none,labels=none,ticks=none](#1,#3)(#2,#4)%
+ \else
+ \beginpicture
+ \setplotarea
+ x from {#1} to {#2},
+ y from {#3} to {#4}
+ \iffixedchemical
+ \accountingon
+ \def\account##1##2%
+ {\put {} at {##1} {##2} }%
+ \else
+ \accountingoff
+ \def\account##1##2{}%
+ \fi
+ \fi
+ \ignorespaces}
+
+\def\@@endchemicalpicture%
+ {\ifcase\chemicaldrawingmode
+ \put {\box\chemicalsymbols} at 0 0 % elders
+ \endpicture
+ \or
+ \rput(0,0){\box\chemicalsymbols}%
+ \endpspicture
+ \or
+ \put {\box\chemicalsymbols} at 0 0 % elders
+ \ifMPdrawingdone
+ \resetchemicalcoordinates
+ \setbox2\hbox{\MPshiftdrawingtrue\MPstaticgraphictrue\getMPdrawing}%
+ \wd2=\!!zeropoint
+ \ht2=\!!zeropoint
+ \dp2=\!!zeropoint
+ \put {\box2} at 0 0 %
+ \fi
+ \endpicture
+ \fi}
+
+\def\@@setchemicalcoordinatesystem#1%
+ {\edef\@@chemicalunit{#1}%
+ \ifcase\chemicaldrawingmode
+ \setcoordinatesystem units <\@@chemicalunit,\@@chemicalunit> %
+ \or
+ \psset{unit=\@@chemicalunit}%
+ \or
+ \setcoordinatesystem units <\@@chemicalunit,\@@chemicalunit> %
+ \startMPdrawing
+ %input mp-tool ;
+ %prologues := 1 ;
+ u := 10*#1;
+ bboxmargin := 0pt ;
+ pickup pencircle scaled 2u ; % ???
+ \stopMPdrawing
+ \fi}
+
+\ifx\MPdivten\undefined % hack to prevent overflows in mp
+ \def\MPdivten[#1]{\withoutpt\the\dimexpr#1pt/10\relax}
+\fi
+
+\def\@@setchemicalaxis#1#2#3#4%
+ {\ifcase\chemicaldrawingmode
+ \axis
+ bottom shiftedto y=0
+ ticks from {#1} to {#2} by 500 /
+ \axis
+ left shiftedto x=0
+ ticks from {#3} to {#4} by 500 / %
+ \or
+ \psaxes[labels=none,Dx=500,Dy=500](0,0)(#1,#3)(#2,#4)%
+ \or
+ \global\MPdrawingdonetrue
+ % we need to div beforehand because of mp limitations
+ \startMPdrawing
+ x1 := \MPdivten[#1]u ; x2 := \MPdivten[#2]u;
+ y1 := \MPdivten[#3]u ; y2 := \MPdivten[#4]u;
+ draw z1--(x2,y1)--z2--(x1,y2)--cycle ;
+ d := 50u ; dd := 10u ;
+ draw (x1,0)--(x2,0) ;
+ draw (0,y1)--(0,y2) ;
+ for i=d step -d until x1: draw (i,dd)--(i,-dd) ; endfor ;
+ for i=d step d until x2: draw (i,dd)--(i,-dd) ; endfor ;
+ for i=d step -d until y1: draw (-dd,i)--(dd,i) ; endfor ;
+ for i=d step d until y2: draw (-dd,i)--(dd,i) ; endfor ;
+ \stopMPdrawing
+ \fi}
+
+\def\@@setsecondchemicalplotsymbol%
+ {\ifcase\chemicaldrawingmode
+ \!!widtha=50.8mm
+ \divide\!!widtha by \@@chemicalresolution\relax
+ \plotsymbolspacing=\!!widtha
+ \setplotsymbol({\vrule\!!height\!!widtha\!!width\!!widtha})%
+ \fi}
+
+% Something for Dirk:
+
+\newcount \currentchemical
+
+%\newif \ifskipchemical
+
+\def\setchemicaldimensions#1#2#3%
+ {\bgroup
+ \global\advance\currentchemical by 1
+ \dimen0=#1\relax
+ \dimen2=#2\relax
+ \dimen4=#3\relax
+ \setxvalue{chemical::\the\currentchemical}%
+ {\noexpand\docommand{\the\dimen0}{\the\dimen2}{\the\dimen4}}%
+ \egroup}
+
+\ifx\normalchemicalframe\undefined
+ \let\normalchemicalframe\hbox % hook for educational purposes
+\fi
+
+\unexpanded\def\complexstartchemical[#1]%
+ {\copyparameters
+ [\??chemical][\??chemical\s!chemical]
+ [\c!width,\c!height,\c!left,\c!right,\c!top,\c!bottom,
+ \c!bodyfont,\c!size,\c!scale,\c!state,\c!frame,\c!axis,\c!factor,
+ \c!location,\c!option,\c!alternative,\c!resolution,\c!offset,\c!style,
+ \c!color,\c!rulecolor,\c!rulethickness]%
+ \getparameters
+ [\??chemical]
+ [#1]%
+ %
+ \setupchemicalformat[\??chemical]%
+ %
+ \ifnum\chemicaldrawingmode=2
+ \resetMPdrawing
+ \fi
+ %
+ \doif{\@@chemicalalternative}{2}
+ {\@@setsecondchemicalplotsymbol}%
+ %
+ \doif{\@@chemicalaxis}\v!on
+ {\let\chemicalframe\hbox}%
+ %
+ \!!counta=250000
+ \divide\!!counta by \@@localchemicalscale
+ \!!widtha=\@@chemicalbodyfont
+ \divide\!!widtha by \!!counta
+ \@@setchemicalcoordinatesystem{\the\!!widtha}%
+ %
+ % \!!counta = -x \!!countc = -y
+ % \!!countb = +x \!!countd = +y
+ %
+ \def\calculateaxis##1##2##3##4##5%
+ {##1=##3\relax
+ ##2=##4\relax
+ \ifnum##5=0
+ \ifnum##3=0
+ \ifnum##4=0
+ ##1=2000
+ ##2=2000
+ \fi
+ \fi
+ \else
+ \ifnum##3=0
+ \ifnum##4=0
+ ##1=##5\relax
+ \divide##1 by 2
+ ##2=##1\relax
+ \else
+ ##1=##5\relax
+ \advance##1 by -##2\relax
+ \fi
+ \else
+ \ifnum##4=0
+ ##2=##5\relax
+ \advance##2 by -##1\relax
+ \fi
+ \fi
+ \fi}%
+ \fixedchemicalfalse
+ \doif\@@chemicalwidth\v!fit
+ {\edef\@@chemicalwidth
+ {\ifnum\chemicaldrawingmode=1 2000 \else 1 \fi}%
+ \fixedchemicaltrue}%
+ \doif\@@chemicalheight\v!fit
+ {\edef\@@chemicalheight
+ {\ifnum\chemicaldrawingmode=1 2000 \else 1 \fi}%
+ \fixedchemicaltrue}%
+ \doifelse\@@chemicallocation\v!intext
+ {\!!counta=0 \!!countb=0
+ \!!counta=0 \!!countd=0 }
+ {\calculateaxis
+ \!!counta\!!countb
+ \@@chemicalleft\@@chemicalright\@@chemicalwidth
+ \calculateaxis
+ \!!countc\!!countd
+ \@@chemicalbottom\@@chemicaltop\@@chemicalheight}%
+ %
+ \edef\@@chemheight {\the\!!countc}%
+ \edef\@@chemdepth {\the\!!countd}%
+ \edef\@@chemicaltop {\the\!!countc}%
+ \edef\@@chemicalbottom{\the\!!countd}%
+ %
+ \doifinsetelse\v!on{\@@chemicalframe,\@@chemicalaxis}
+ {\def\@@chemicalborder{\chemicalframe}}
+ {\def\@@chemicalborder{\normalchemicalframe}}%
+ %
+ \setbox0=\hbox\bgroup % this was a \vbox which took \hsize
+ %
+ \@@beginchemicalpicture
+ {-\the\!!counta}{\the\!!countb}
+ {-\the\!!countc}{\the\!!countd}%
+ \doif{\@@chemicalstate}\v!start
+ {\doif\@@chemicalaxis\v!on
+ {\@@setchemicalaxis
+ {-\the\!!counta}{\the\!!countb}
+ {-\the\!!countc}{\the\!!countd}}}%
+ \doifelse\@@chemicaloption\v!test
+ {\def\@@writechemicalstate##1##2%
+ {\convertargument##2\to\ascii
+ \writestatus{##1}{\ascii}}}
+ {\def\@@writechemicalstate##1##2{}}%
+ \ignorespaces}
+
+\def\dostartchemical%
+ {\catcode`\^=\@@superscript% t.b.v. \enableduplication
+ \catcode`\_=\@@subscript % t.b.v. de zekerheid
+ \begingroup
+ \inchemicaltrue
+ \def\toptext##1{\gdef\thetoptext{##1}\ignorespaces}\toptext{}%
+ \def\bottext##1{\gdef\thebottext{##1}\ignorespaces}\bottext{}%
+ \def\midtext##1{\gdef\themidtext{##1}\ignorespaces}\midtext{}%
+ \def\@@chemicalpostponed{}%
+ \complexorsimpleempty\startchemical}
+
+\def\startchemical
+ {\bgroup % t.b.v. ungrouped floats
+ \dostartchemical}
+
+\def\stopchemical
+ {\checkchemicalpicture
+ \@@endchemicalpicture
+ \egroup
+ \ifnum\chemicaldrawingmode=1
+ \dimen0=\@@chemicalunit
+ \setbox0=\hbox{\lower\@@chemdepth\dimen0\box0}%
+ \ht0=\@@chemheight\dimen0
+ \dp0=\@@chemdepth\dimen0
+ \fi
+ \dimen0=\ht0
+ \advance\dimen0 by \dp0
+ \inchemicalfalse % enables \chemie{} in text
+ \setbox4=\alignedchemical\themidtext
+ \setbox6=\alignedchemical\thetoptext
+ \setbox8=\alignedchemical\thebottext
+ \setbox4=\hbox to \wd0
+ {\strut\hss$\vcenter{\box4}$\hss}%
+ \setbox2=\vbox to \dimen0
+ {\hbox to \wd0{\strut\hss\box6\hss}
+ \vfill
+ \hbox to \wd0{\strut\hss\box8\hss}
+ \vss}% disables the depth
+ \wd0=0pt \wd4=0pt
+ \ht2=\ht0 \dp2=\dp0
+ \ht4=\ht0 \dp4=\dp0
+ \@@chemicalborder{\box0\box4\box2}% text on top of chemicals
+ \endgroup
+ \ignorespaces
+ \egroup} % t.b.v. ungrouped floats
+
+\def\alignedchemical#1%
+ {\vtop
+ {\def\par{\egroup\hbox\bgroup\strut}%
+ \let\\=\par
+ \let\endgraf=\par
+ \hbox\bgroup\strut#1\egroup}}
+
+% \setchemicalcoordinates{#1}{#2}
+%
+% #1: verplaatsing in x-richting
+% #2: verplaatsing in y-richting
+
+\newif\ifchemicaldirection
+
+\def\checkchemicaldirection#1#2%
+ {\ifchemicaldirection
+ \ifnum#1>0 \advance\horchemical -\chemicaldirection \fi
+ \ifnum#1<0 \advance\horchemical +\chemicaldirection \fi
+ \ifnum#2>0 \advance\verchemical -\chemicaldirection \fi
+ \ifnum#2<0 \advance\verchemical +\chemicaldirection \fi
+ \chemicaldirectionfalse
+ \fi}
+
+\def\processchemicaldirection%
+ {\chemicaldirectiontrue\processchemicaltranslate}
+
+\def\setchemicalcoordinates#1#2%
+ {\advance\horchemical #1\relax
+ \advance\verchemical #2\relax
+ \checkchemicaldirection{#1}{#2}%
+ \!!counta=-\horchemical\edef\chemicalxoffset{\the\!!counta}%
+ \!!countb=-\verchemical\edef\chemicalyoffset{\the\!!countb}%
+ \ifnum\chemicaldrawingmode=1
+ % njet
+ \else
+ \setcoordinatesystem point at {\the\horchemical} {\the\verchemical}
+ \fi}
+
+\def\resetchemicalcoordinates
+ {\horchemical=0
+ \verchemical=0
+ \edef\chemicalxoffset{0}%
+ \edef\chemicalyoffset{0}%
+ \ifnum\chemicaldrawingmode=1
+ % njet
+ \else
+ \setcoordinatesystem point at 0 0
+ \fi}
+
+\def\restorechemicalcoordinates
+ {%\writestatus{ppchtex}{restoring \the\horchemical,\the\verchemical}%
+ \edef\chemicalxoffset{\the\horchemical}%
+ \edef\chemicalyoffset{\the\verchemical}%
+ \ifnum\chemicaldrawingmode=1
+ % njet
+ \else
+ \setcoordinatesystem point at {\the\horchemical} {\the\verchemical}
+ \fi}
+
+\def\setchemicaltranslate #1 #2 #3
+ {\setvalue{\s!translate#1}{\setchemicalcoordinates{#2}{#3}}}
+
+\def\processchemicaltranslate#1%
+ {\def\doprocess[##1##2]%
+ {\doifchemicalnumber{##1}{MOV#1}
+ {\ifnum##1=0
+ \def\chemicaloffset{0}% incompatible change
+ \resetchemicalcoordinates
+ \else
+ \getvalue{\s!translate##1}%
+ \dochemicaloffset{##1}%
+ \def\chemicaloffset{0}%
+ \fi}}%
+ \doprocess[#1]}
+
+\def\setchemicaldistance #1
+ {\setvalue{\s!distance1}{\setchemicalcoordinates{-#1}{ 0}}%
+ \setvalue{\s!distance2}{\setchemicalcoordinates{ 0}{ #1}}%
+ \setvalue{\s!distance3}{\setchemicalcoordinates{ #1}{ 0}}%
+ \setvalue{\s!distance4}{\setchemicalcoordinates{ 0}{-#1}}}
+
+\def\setchemicaldirection #1
+ {\def\chemicaldirection{#1}}
+
+\def\processchemicaldistance#1%
+ {\def\doprocess[##1##2]%
+ {\doifchemicalnumber{##1}{ADJ#1}
+ {\ifnum##1=0
+ \resetchemicalcoordinates
+ \else
+ \def\@@chemicalpostponed{\getvalue{\s!distance##1}}%
+ \@@chemicalpostponed
+ \fi}}%
+ \doprocess[#1]}
+
+\def\setchemicalsubstitute #1
+ {\setvalue{\s!substitute1}{\setchemicalcoordinates{-#1}{ 0}}%
+ \setvalue{\s!substitute2}{\setchemicalcoordinates{ 0}{ #1}}%
+ \setvalue{\s!substitute3}{\setchemicalcoordinates{ #1}{ 0}}%
+ \setvalue{\s!substitute4}{\setchemicalcoordinates{ 0}{-#1}}}
+
+\def\processchemicalsubstitute#1%
+ {\def\doprocess[##1##2]%
+ {\doifchemicalnumber{##1}{SUB#1}
+ {\ifnum##1=0
+ \resetchemicalcoordinates
+ \else
+ \def\@@chemicalpostponed{\getvalue{\s!substitute##1}}%
+ \@@chemicalpostponed
+ \fi}}%
+ \doprocess[#1]}
+
+% Het is mogelijk een offset of move meerdere malen uit te
+% voeren, door een nummer voor het commando te plaatsen.
+
+\def\chemicalrepeat {1}
+
+\def\redoprocesschemical[#1#2]%
+ {\doifinstringelse{#1}{0123456789.}
+ {\edef\chemicalrepeat{\chemicalrepeat#1}%
+ \redoprocesschemical[#2]}
+ {\processchemical[#1#2]%
+ \def\chemicalrepeat{1}}}
+
+\def\doprocesschemical[#1#2]#3%
+ {\doifinstringelse{#1}{0123456789.}
+ {\def\chemicalrepeat{#1}%
+ \redoprocesschemical[#2]}
+ {#3}}
+
+% \dochemicaloffset{#1}
+%
+% #1: binding
+
+\def\chemicaloffset{0}
+
+\def\processchemicaloffset#1%
+ {\dimen0=62500 sp % real calc on cardinals, funny number
+ \dimen0=\chemicalrepeat\dimen0
+ \divide\dimen0 by \@@localchemicalscale
+ \!!counta=\dimen0
+ \def\doprocess[##1##2]%
+ {\doifinstringelse{##1}{128}
+ {\edef\chemicaloffset{\the\!!counta}}
+ {\doifinstringelse{##1}{456}
+ {\edef\chemicaloffset{-\the\!!counta}}
+ {\doifelse{##1}{0}
+ {\edef\chemicaloffset{0}}
+ {\unknownchemical{OFF#1}}}}}%
+ \doprocess[#1]}
+
+\def\dochemicaloffset#1%
+ {\ifnum\chemicaloffset=0
+ \def\undochemicaloffset{}%
+ \else
+ \setchemicalcoordinates{-\chemicaloffset}{0}%
+ \def\undochemicaloffset%
+ {\setchemicalcoordinates{\chemicaloffset}{0}%
+ \def\undochemicaloffset{}}%
+ \fi}
+
+\def\processchemicalphantom#1#2%
+ {\setbox0=\hbox
+ {\def\splitoff##1????{##1}%
+ $\@@dochemicalstyle{\@@localchemicalformat\splitoff#2}$}%
+ \dimen0=.25\wd0
+ \divide\dimen0 by \@@localchemicalscale
+ \!!counta=\dimen0
+ \doifinstringelse{#1}{128}
+ {\edef\chemicaloffset{\the\!!counta}}
+ {\doifinstringelse{#1}{456}
+ {\edef\chemicaloffset{-\the\!!counta}}
+ {\doifelse{#1}{0}
+ {\edef\chemicaloffset{0}}
+ {\unknownchemical{OF#1:#2}}}}}
+
+% \dosetchemicalrotation{#1}{#2}
+%
+% #1: cos(phi)
+% #2: sin(phi)
+
+\def\chemicalrotation {1}
+\def\chemicalangle {0}
+\def\chemicalxoffset {0}
+\def\chemicalyoffset {0}
+
+\def\setchemicalmirror#1%
+ {\setvalue{\s!mirror#1}{*}}
+
+\def\resetchemicalmirror#1%
+ {\resetvalue{\s!mirror#1}}
+
+\def\togglechemicalmirror#1%
+ {\doifelse{\getvalue{\s!mirror#1}}{*}
+ {\resetchemicalmirror{#1}}
+ {\setchemicalmirror{#1}}}
+
+\def\setchemicalrotation #1 #2 #3 #4 #5 #6 #7 #8 #9
+ {\setvalue{\s!rotate1.#1}{\dosetchemicalrotation{#2}{#3}}%
+ \setvalue{\s!rotate2.#1}{\dosetchemicalrotation{#4}{#5}}%
+ \setvalue{\s!rotate3.#1}{\dosetchemicalrotation{#6}{#7}}%
+ \setvalue{\s!rotate4.#1}{\dosetchemicalrotation{#8}{#9}}}
+
+\def\setchemicalangle #1 #2 #3 #4 #5
+ {\setvalue{\s!angle1.#1}{\dosetchemicalangle{#2}}%
+ \setvalue{\s!angle2.#1}{\dosetchemicalangle{#3}}%
+ \setvalue{\s!angle3.#1}{\dosetchemicalangle{#4}}%
+ \setvalue{\s!angle4.#1}{\dosetchemicalangle{#5}}}
+
+\def\chemicalrotate[#1]%
+ {\doifdefinedelse{\s!mirror#1}
+ {\getvalue{\s!rotate\chemicalrotation.#1\getvalue{\s!mirror#1}}%
+ \getvalue{\s!angle\chemicalrotation.#1\getvalue{\s!mirror#1}}}
+ {\getvalue{\s!rotate\chemicalrotation.#1}%
+ \getvalue{\s!angle\chemicalrotation.#1}}}
+
+\def\dosetchemicalangle#1% zwak zie onder
+ {\def\chemicalangle{#1}}
+
+\def\dosetchemicalrotation#1#2%
+ {\ifnum\chemicaldrawingmode=1
+ % njet
+ \else
+ \startrotation by {#1} {#2} %% \stoprotation (t.b.v. testen)
+ \fi}
+
+\def\doresetchemicalrotation
+ {\ifnum\chemicaldrawingmode=1
+ % njet
+ \else
+ \stoprotation
+ \fi}
+
+\def\processchemicalrotation#1%
+ {\def\doprocess[##1##2]%
+ {\doifnumberelse{##1}
+ {\def\chemicalrotation{##1}}
+ {\unknownchemical{ROT#1}}}%
+ \doprocess[#1]}
+
+% \filtertextelement[#1][#2][#3][#4]
+%
+% #1: volgnummer
+% #2: offset in uitlijningen
+% #3: lijst met uitlijningen -> \chemicalloca
+% #4: lijst met teksten -> \chemicaltext
+
+\def\setchemicallocation#1%
+ {\doifelse{#1}{}
+ {\edef\chemicalloca{c}}
+ {\edef\chemicalloca{#1}}}
+
+\newif\iffixedchemicaltext
+
+\def\filterchemicaltextelement[#1][#2][#3][#4]%
+ {\ifchemicaltextconstant
+ \def\chemicaltext{#4}%
+ \setchemicallocation{}%
+ \else
+ \ifnum#1=0\relax
+ \setchemicallocation{}%
+ \else
+ \iffixedchemicaltext
+ \!!counta#2
+ \else
+ \!!counta=\chemicalrotation
+ \advance\!!counta -1
+ \multiply\!!counta #2
+ \advance\!!counta #1
+ \fi
+ \getfromcommalist[#3][\the\!!counta]%
+ \setchemicallocation\commalistelement
+ \fi
+ \ifchemicalpicture
+ \let\chemicaltext\relax
+ \else
+ \advance\txtchemical 1
+ \getfromcommalist[#4][\txtchemical]%
+ \let\chemicaltext\commalistelement
+ \fi
+ \fi
+ \fixedchemicaltextfalse}
+
+% \putchemicaltext{#1}{#2}
+%
+% #1 : x-coordinaat
+% #2 : y-coordinaat
+%
+% \chemicaltext en \chemicalloca worden met \gettextelement
+% opgehaald uit de tweede set bij \chemie
+%
+% Ten behoeve van testdoeleinden wordt gebruik gemaakt van
+% \chemicalframe in plaats van het meer sjieke, maar tevens
+% meer trage \framed.
+
+\ifx\ruledhbox\undefined
+ \def\chemicalframe#1%
+ {\hbox
+ {\vrule\hskip-.4pt
+ \vbox{\hrule\vskip-.4pt\hbox{#1}\vskip-.4pt\hrule}%
+ \hskip-.4pt\vrule}}
+\else
+ \def\chemicalframe#1%
+ {\ruledhbox{#1}}
+\fi
+
+\def\doputchemicaltext#1 [#2] at #3 #4 %
+ {\ifnum\chemicaldrawingmode=1
+ \rput
+ {-\chemicalangle}(\chemicalxoffset,\chemicalyoffset)%
+ {\expanded{\rput[#2]{\chemicalangle}(#3,#4){#1}}}%
+ \else
+ \put {#1} [#2] at {#3} {#4} %
+ \fi}
+
+\def\dodoifsinglelocation#1#2\\#3%
+ {\ifx#2\relax#3\fi}
+
+\def\doifsinglelocationelse#1%
+ {\expandafter\dodoifsinglelocationelse#1\relax\\}
+
+\def\putchemicaltext#1#2%
+ {\enablechemicalspecials
+ \ifchemicalpicture
+ \setchemicalpicture{#1}{#2}%
+ \else
+ \doifelse\@@chemicaloption\v!test
+ {\def\@@chemicalframe{\chemicalframe}}
+ {\def\@@chemicalframe{}}%
+ \dosetsubscripts
+ \setbox2=\hbox{\@@dochemicalcolor
+ $\@@dochemicalstyle{\@@localchemicalformat \chemicaltext}$}%
+ \setbox4=\hbox{$\@@dochemicalstyle{\@@localchemicalformat C_2^2}$}%
+ \setbox6=\hbox{$\@@dochemicalstyle{\@@localchemicalformat O}$}% or C
+ \doresetsubscripts
+ \doifnot\@@chemicallocation\v!intext
+ {\ht2=\ht4
+ \dp2=\dp4}%
+ \setbox2=\hbox{\@@chemicalframe{\box2}}%
+ \ifdim\wd2>\wd6
+ \doifelse{#1}{0}
+ {\doifnot{#2}{0}{\wd2=\wd6}}
+ {%\doifsinglelocation\chemicalloca
+ {\doifinset{\chemicalloca}{t,b}{\wd2=\wd6}}}% common ?
+ \fi
+ \expanded
+ {\doputchemicaltext
+ {\noexpand\dowithchemical{\copy2}} % per se \copy2 i.p.v. \box2
+ [\chemicalloca] at {#1} {#2} }
+ \nomoreaccounting
+ \fi
+ \disablechemicalspecials}
+
+\def\setchemicaltextelement #1 #2 #3
+ {\setvalue{\s!chemicaltextelement#1}{\putchemicaltext{#2}{#3}}}
+
+\def\getchemicalfixedtextelement%
+ {\fixedchemicaltexttrue
+ \getchemicaltextelement}
+
+\def\getchemicaltextelement[#1][#2][#3][#4][#5]%
+ {\filterchemicaltextelement[#2][#3][#4][#5]%
+ \doifelse{#2}{0}
+ {\dochemicaloffset{#2}% % incompatible change
+ \putchemicaltext{0}{0}%
+ \undochemicaloffset} % incompatible change
+ {\chemicalrotate[#2]%
+ \dochemicaloffset{#2}%
+ \def\chemicaltextelementnumber{#2}%
+ \getvalue{\s!chemicaltextelement#1}%
+ \getvalue{\s!chemicaltextelement#11}%
+ \getvalue{\s!chemicaltextelement#12}%
+ \getvalue{\s!chemicaltextelement#13}%
+ \undochemicaloffset}}
+
+\def\processchemicaltextelement#1#2#3#4#5%
+ {\def\doprocess[##1##2##3##4##5]%
+ {\doifelse{##1}{?}
+ {\doprocess[1..\maxchemical ????]}
+ {\doifchemicalnumber{##1}{#1#2}
+ {\doifelse{##2##3}{..}
+ {\doifchemicalnumber{##4}{#1#2}
+ {\getchemicaltextelement[#1][##1][#4][#5][#3]%
+ \doifnot{##1}{##4}
+ {\!!counta=##1\relax
+ \advance\!!counta by 1
+ \edef\nextsegment{\the\!!counta}%
+ \doprocess[\nextsegment..##4##5]}}}
+ {\getchemicaltextelement[#1][##1][#4][#5][#3]%
+ \doifnot{##2}{?}{\doprocess[##2##3##4##5]}}}}}%
+ \doprocess[#2]%
+ \smallchemicaltextfalse}
+
+\def\processchemicalsmalltextelement%
+ {\smallchemicaltexttrue\processchemicaltextelement}
+
+\def\processchemicalsmalltextconstant%
+ {\smallchemicaltexttrue\processchemicaltextconstant}
+
+\def\processchemicalunrotatedtextelement#1#2#3#4#5#6%
+ {\bgroup
+ \xdef\@@xxx{0}%
+ \xdef\@@yyy{0}%
+ \def\putchemicaltext##1##2%
+ {\xdef\@@xxx{##1}%
+ \xdef\@@yyy{##2}}%
+ \getvalue{\s!chemicaltextelement#1}%
+ \egroup
+ \bgroup
+ \def\doputchemicaltext##1 [##2] at ##3 ##4 %
+ {\ifnum\chemicaldrawingmode=1
+ \rput
+ {-\chemicalangle}(\chemicalxoffset,\chemicalyoffset)%
+ {\rput{\chemicalangle}(\@@xxx,\@@yyy){\expanded{\rput[##2](##3,##4){##1}}}}%
+ \else
+ \put
+ {\stoprotation \setcoordinatesystem point at 0 0
+ \expanded{\put {##1} [##2] at {##3} {##4} }}
+ at {\@@xxx} {\@@yyy}
+ \fi}%
+ \processchemicaltextelement{#2}{#3}{#4}{#5}{#6}%
+ \egroup}
+
+\newif\ifchemicaltextconstant
+
+\def\processchemicaltextconstant#1#2#3#4%
+ {\chemicaltextconstanttrue
+ \let\@@oldchemicalframe\@@chemicalframe
+ \let\@@chemicalframe\relax
+ \processchemicaltextelement{#1}{#2}{#3}{#4}{}%
+ \let\@@chemicalframe\@@oldchemicalframe
+ \chemicaltextconstantfalse}
+
+% \plotchemicalline{#1}{#2}{#3}{#4}
+%
+% #1: x-coordinaat beginpunt
+% #2: y-coordinaat beginpunt
+% #3: x-coordinaat eindpunt
+% #4: y-coordinaat eindpunt
+
+\chardef\chemicallinetype=0
+
+\def\doplotchemicalline
+ {\!!counte=\!!countc \advance\!!counte by -\!!counta
+ \!!countf=\!!countd \advance\!!countf by -\!!countb
+ \bgroup
+ \ifcase\chemicaldrawingmode
+ \ifcase\chemicallinetype
+ % 0 : normal line
+ \plot {\!!counta} {\!!countb} {\!!countc} {\!!countd} /%
+ \or
+ % 1 : normal arrow
+ \arrow <5pt> [.2,.67] from {\!!counta} {\!!countb} to {\!!countc} {\!!countd}
+ \or
+ % 2 : reverse arrow
+ \arrow <5pt> [.2,.67] from {\!!countc} {\!!countd} to {\!!counta} {\!!countb}
+ \or
+ % 3 : unrotated line
+ \put {\stoprotation \setcoordinatesystem point at 0 0
+ \plot 0 0 {\!!counte} {\!!countf} /}
+ [\chemicallineposition] at {\!!counta} {\!!countb}
+ \else
+ % 4 : dashed line
+ \findlength {\plot {\!!counta} {\!!countb} {\!!countc} {\!!countd} /}%
+ \setdashesnear <2pt> for <\totalarclength>%
+ \plot {\!!counta} {\!!countb} {\!!countc} {\!!countd} /%
+ \fi
+ \or
+ \ifcase\chemicallinetype
+ \rput
+ {-\chemicalangle}(\chemicalxoffset,\chemicalyoffset)%
+ {\psline(\!!counta,\!!countb)(\!!countc,\!!countd)}%
+ \or
+ \rput
+ {-\chemicalangle}(\chemicalxoffset,\chemicalyoffset)%
+ {\psline{->}(\!!counta,\!!countb)(\!!countc,\!!countd)}%
+ \or
+ \rput
+ {-\chemicalangle}(\chemicalxoffset,\chemicalyoffset)%
+ {\psline{<-}(\!!counta,\!!countb)(\!!countc,\!!countd)}%
+ \or
+ \rput
+ {-\chemicalangle}(\chemicalxoffset,\chemicalyoffset)%
+ {\expanded{\rput[\chemicallineposition]{-\chemicalangle}%
+ (\!!counta,\!!countb){\psline(0,0)(\!!counte,\!!countf)}}}%
+ \else
+ \psset{linestyle=dashed}%
+ \rput
+ {-\chemicalangle}(\chemicalxoffset,\chemicalyoffset)%
+ {\psline(\!!counta,\!!countb)(\!!countc,\!!countd)}%
+ \fi
+ \or
+ \global\MPdrawingdonetrue
+ \setchemicalattributes
+ \startMPdrawing
+ x0 := \MPdivten[\chemicalxoffset]u ;
+ y0 := \MPdivten[\chemicalyoffset]u ;
+ x1 := \MPdivten[\the\!!counta]u ;
+ y1 := \MPdivten[\the\!!countb]u ;
+ x2 := \MPdivten[\the\!!countc]u ;
+ y2 := \MPdivten[\the\!!countd]u ;
+ x3 := \MPdivten[\the\!!counte]u ;
+ y3 := \MPdivten[\the\!!countf]u ;
+ \ifcase\chemicallinetype
+ % 0 : normal line
+ draw ((z1--z2) rotatedaround(origin,-\chemicalangle))
+ shifted z0 ;
+ \or
+ % 1 : normal arrow
+ drawarrow ((z1--z2) rotatedaround(origin,-\chemicalangle))
+ shifted z0 ;
+ \or
+ % 2 : reverse arrow
+ drawarrow ((z2--z1) rotatedaround(origin,-\chemicalangle))
+ shifted z0 ;
+ \or
+ % 3 : unrotated line % nog \chemicalineposition: t/b
+ draw (origin--z3)
+ shifted (z1 rotatedaround(origin,-\chemicalangle))
+ shifted z0 ;
+ \else
+ % 4 : dashed line
+ draw ((z1--z2) rotatedaround(origin,-\chemicalangle))
+ shifted z0 dashed dashpattern(on 5.5u off 6u) ;
+ \fi
+ \stopMPdrawing
+ \fi
+ \egroup
+ \account\!!counta\!!countb
+ \account\!!countc\!!countd}
+
+\def\plotchemicalline#1#2#3#4%
+ {\!!counta=#1\!!countb=#2\!!countc=#3\!!countd=#4\relax
+ \doplotchemicalline}
+
+\def\plotchemicalfactorline#1#2#3#4%
+ {\!!counta=#1\!!countb=#2\!!countc=#3\!!countd=#4\relax
+ \ifdim\@@chemicalfactor\onepoint=\onepoint \else
+ \scratchdimen\!!counta\s!sp \multiply\scratchdimen1000 \scratchdimen\@@chemicalfactor\scratchdimen \divide\scratchdimen1000 \!!counta\scratchdimen
+ \scratchdimen\!!countc\s!sp \multiply\scratchdimen1000 \scratchdimen\@@chemicalfactor\scratchdimen \divide\scratchdimen1000 \!!countc\scratchdimen
+ \fi
+ \doplotchemicalline}
+
+\def\plotchemicalzline#1#2#3#4%
+ {\!!counta=#1\!!countb=#2\!!countc=#3\!!countd=#4\relax
+ \ifnum\chemicaldrawingmode=2
+ \global\MPdrawingdonetrue
+ \setchemicalattributes
+ \startMPdrawing
+ x0 := \MPdivten[\chemicalxoffset]u ;
+ y0 := \MPdivten[\chemicalyoffset]u ;
+ x1 := \MPdivten[\the\!!counta]u ;
+ y1 := \MPdivten[\the\!!countb]u ;
+ x2 := \MPdivten[\the\!!countc]u ;
+ y2 := \MPdivten[\the\!!countd]u ;
+ filldraw ((
+ \ifnum\chemicalangle>180
+ z1--z2
+ \else\ifnum\chemicalangle<90
+ z1--(z2 shifted (-2u,+2u))--(z2 shifted (+2u,-2u))
+ \else\ifnum\chemicalangle=90
+ (z1 shifted (-2u,+2u))--(z1 shifted (+2u,-2u))--
+ (z2 shifted (+2u,+2u))--(z2 shifted (-2u,-2u))
+ \else
+ (z1 shifted (+2u,+2u))--(z1 shifted (-2u,-2u))--z2
+ \fi\fi\fi
+ --cycle) rotatedaround(origin,-\chemicalangle)) shifted z0 ;
+ \stopMPdrawing
+ \else
+ \doplotchemicalline
+ \ifnum\chemicalangle>180 \else
+ \ifnum\chemicalangle=90
+ \advance\!!counta by -20 \advance\!!countc by -20
+ \doplotchemicalline
+ \advance\!!counta by 40 \advance\!!countc by 40
+ \else\ifnum\chemicalangle<90
+ \advance\!!countc by -20 \advance\!!countd by +20
+ \doplotchemicalline
+ \advance\!!countc by +40 \advance\!!countd by -40
+ \else
+ \advance\!!counta by 20 \advance\!!countb by 20
+ \doplotchemicalline
+ \advance\!!counta by -40 \advance\!!countb by -40
+ \fi\fi
+ \fi
+ \doplotchemicalline
+ \fi}
+
+\def\plotchemicaldeltaline#1#2#3#4%
+ {\!!counta=#1\!!countb=#2\!!countc=#3\!!countd=#4\relax
+ \ifnum\chemicaldrawingmode=2
+ \global\MPdrawingdonetrue
+ \setchemicalattributes
+ \startMPdrawing
+ x0 := \MPdivten[\chemicalxoffset]u ;
+ y0 := \MPdivten[\chemicalyoffset]u ;
+ x1 := \MPdivten[\the\!!counta]u ;
+ y1 := \MPdivten[\the\!!countb]u ;
+ x2 := \MPdivten[\the\!!countc]u ;
+ y2 := \MPdivten[\the\!!countd]u ;
+ filldraw ((z1--(z2 rotatedaround(z1,5))--(z2 rotatedaround(z1,-5))
+ --cycle) rotatedaround(origin,-\chemicalangle))
+ shifted z0 ;
+ \stopMPdrawing
+ \account{#1}{#2}%
+ \account{#3}{#4}%
+ \else
+ \doplotchemicalline
+ \advance\!!countc by 16 \advance\!!countd by -21
+ \doplotchemicalline
+ \advance\!!countc by -4 \advance\!!countd by 7
+ \doplotchemicalline
+ \advance\!!countc by -4 \advance\!!countd by 7
+ \doplotchemicalline
+ \advance\!!countc by -8 \advance\!!countd by 14
+ \doplotchemicalline
+ \advance\!!countc by -4 \advance\!!countd by 7
+ \doplotchemicalline
+ \advance\!!countc by -4 \advance\!!countd by 7
+ \doplotchemicalline
+ \advance\!!countc by -4 \advance\!!countd by 7
+ \doplotchemicalline
+ \fi}
+
+\def\setchemicallinesegment #1 #2 #3 #4 #5
+ {\setvalue{\s!chemicallinesegment#1}{\plotchemicalline{#2}{#3}{#4}{#5}}}
+
+\def\setchemicalfactorlinesegment #1 #2 #3 #4 #5
+ {\setvalue{\s!chemicallinesegment#1}{\plotchemicalfactorline{#2}{#3}{#4}{#5}}}
+
+\def\getchemicallinesegment[#1][#2]%
+ {\chemicalrotate[#1]%
+ \dochemicaloffset{#1}%
+ \getvalue{\s!chemicallinesegment#2}%
+ \getvalue{\s!chemicallinesegment#21}%
+ \getvalue{\s!chemicallinesegment#22}%
+ \undochemicaloffset}
+
+\def\getprivatechemicallinesegment[#1][#2]%
+ {\chemicalrotate[#1]%
+ \getvalue{\s!chemicallinesegment#2#1}}
+
+\def\doprocesschemicallinesegment#1#2#3#4#5%
+ {\chardef\chemicallinetype=#1
+ \def\chemicallineposition{#2}%
+ \def\doprocess[##1##2##3##4##5]%
+ {\doifelse{##1}{?}
+ {\doprocess[1..\maxchemical ????]}
+ {\doifchemicalnumber{##1}{#4#5}
+ {\doifelse{##2##3}{..}
+ {\doifchemicalnumber{##4}{#4#5}
+ {#3[##1][#4]%
+ \doifnot{##1}{##4}
+ {\!!counta=##1\relax
+ \advance\!!counta by 1
+ \edef\nextsegment{\the\!!counta}%
+ \doprocess[\nextsegment..##4##5]}}}
+ {#3[##1][#4]%
+ \doifnot{##2}{?}
+ {\doprocess[##2##3##4##5]}}}}}%
+ \doprocess[#5]}
+
+\def\processchemicallinesegment
+ {\doprocesschemicallinesegment0c\getchemicallinesegment}
+
+\def\processchemicalzlinesegment#1#2%
+ {%\doprocesschemicallinesegment0c\getchemicallinesegment{#1}{#2}%
+ \bgroup
+ \def\plotchemicalline{\plotchemicalzline}%
+ \doprocesschemicallinesegment0c\getchemicallinesegment{#1}{#2}%
+ \egroup}
+
+\def\processchemicaldeltalinesegment#1#2%
+ {%\doprocesschemicallinesegment0c\getchemicallinesegment{#1}{#2}%
+ \bgroup
+ \def\plotchemicalline{\plotchemicaldeltaline}%
+ \doprocesschemicallinesegment0c\getchemicallinesegment{#1}{#2}%
+ \egroup}
+
+\def\processprivatechemicallinesegment%
+ {\doprocesschemicallinesegment0c\getprivatechemicallinesegment}
+
+\def\processchemicaldownarrowsegment%
+ {\doprocesschemicallinesegment1c\getchemicallinesegment}
+
+\def\processchemicaluparrowsegment%
+ {\doprocesschemicallinesegment2c\getchemicallinesegment}
+
+\def\processchemicalunrotatedlinesegment#1%
+ {\doprocesschemicallinesegment3{#1}\getchemicallinesegment}
+
+\def\processchemicaldashedlinesegment%
+ {\doprocesschemicallinesegment4c\getchemicallinesegment}
+
+\def\processchemicalopenend#1#2%
+ {\doprocesschemicallinesegment0c\doprocesschemicalopenend{#1}{#2}}
+
+\def\doprocesschemicalopenend[#1][#2]%
+ {\chemicalrotate[#1]%
+ \dochemicaloffset{#1}%
+ \ifcase\chemicaldrawingmode
+ \beginpicture
+ \setquadratic\plot
+ 300 0 400 0
+ 500 0 550 75
+ 600 0 650 -75
+ 700 0 750 75
+ 800 0 850 -75
+ 900 0 950 0
+ 1050 0 /
+ \endpicture
+ \or
+ \rput{-\chemicalangle}(\chemicalxoffset,\chemicalyoffset)%
+ {\psline(300,0)(500,0)%
+ \rput(500,0){\psplot[yunit=75,plotstyle=curve]{0}{720}{x sin}}%
+ \psline(950,0)(1050,0)}%
+ \or
+ \global\MPdrawingdonetrue
+ \setchemicalattributes
+ \startMPdrawing
+ x0 := \MPdivten[\chemicalxoffset]u ;
+ y0 := \MPdivten[\chemicalyoffset]u ;
+ draw
+ (((30.0u,0)--(50.0u,0){up}..(55.0u,7.5u)..
+ (60.0u,0)..(65.0u,-7.5u)..(70.0u,0)..
+ (75.0u,7.5u)..(80.0u,0)..(85.0u,-7.5u)..{up}
+ (90.0u,0)--(105.0u,0)) rotatedaround(origin,-\chemicalangle))
+ shifted z0 ;
+ \stopMPdrawing
+ \fi
+ \undochemicaloffset}
+
+% \plotchemicalcircle{#1}{#2}{#3}{#4}
+%
+% #1: lengte van de boog in graden
+% #2: x-coordinaat eindpunt
+% #3: y-coordinaat eindpunt
+
+\newif\ifchemicaldotted
+
+\def\plotchemicalcircle#1#2#3#4#5#6%
+ {\bgroup
+ \ifcase\chemicaldrawingmode
+ \ifchemicaldotted
+ \findlength{\circulararc {#4} degrees from {#5} {#6} center at {0} {0} }%
+ \divide\totalarclength by 6
+ \def\b{\the\totalarclength}%
+ \divide\totalarclength by 2
+ \def\a{\the\totalarclength}%
+ \setdashpattern <\a,\b,\b,\b,\b,\b,\a>
+ \fi
+ \circulararc {#4} degrees from {#5} {#6} center at {0} {0} %
+ \or
+ \ifchemicaldotted
+ \psset{linestyle=dashed}%
+ \fi
+ \rput
+ {-\chemicalangle}(\chemicalxoffset,\chemicalyoffset)%
+ {\psarc(0,0){#3}{#1}{#2}}%
+ \or
+ \global\MPdrawingdonetrue
+ \setchemicalattributes
+ \startMPdrawing
+ r := \MPdivten[#3]*2u;
+ x0 := \MPdivten[\chemicalxoffset]u ;
+ y0 := \MPdivten[\chemicalyoffset]u ;
+ draw ((subpath (#1/45,#2/45) of (fullcircle scaled (r)))
+ rotatedaround (origin,\chemicalangle+150))
+ shifted z0 \ifchemicaldotted dashed withdots \fi ;
+ \stopMPdrawing
+ \fi
+ \egroup}
+
+\def\setchemicalcircsegment #1 #2 #3 #4 #5 #6 #7
+ {\setvalue{\s!chemicalcircsegment#1}{\plotchemicalcircle{#2}{#3}{#4}{#5}{#6}{#7}}}
+
+\def\getchemicalcircsegment[#1][#2]%
+ {\chemicalrotate[#1]%
+ \getvalue{\s!chemicalcircsegment#2}}
+
+\def\doprocesschemicalcircsegment#1#2%
+ {\def\doprocess[##1##2##3##4##5]%
+ {\doifelse{##1}{?}
+ {\doprocess[1..\maxchemical ????]}
+ {\doifchemicalnumber{##1}{#1#2}
+ {\doifelse{##2##3}{..}
+ {\doifchemicalnumber{##4}{#1#2}
+ {\getchemicalcircsegment[##1][#1]%
+ \doifnot{##1}{##4}
+ {\!!counta=##1\relax
+ \advance\!!counta by 1
+ \edef\nextsegment{\the\!!counta}%
+ \doprocess[\nextsegment..##4##5]}}}
+ {\getchemicalcircsegment[##1][#1]%
+ \doifnot{##2}{?}
+ {\doprocess[##2##3##4##5]}}}}}%
+ \doprocess[#2]}
+
+\def\processchemicalcircsegment%
+ {\chemicaldottedfalse\doprocesschemicalcircsegment}
+
+\def\processchemicaldottsegment%
+ {\chemicaldottedtrue\doprocesschemicalcircsegment}
+
+\let\endchemicalpicture = \relax
+\let\checkchemicalpicture = \relax
+\let\nomoreaccounting = \relax
+
+\newif\ifchemicalpicture
+
+\def\beginchemicalpicture#1% NO PSTRICKS SUPPORT YET
+ {\checkchemicalpicture
+ \bgroup % DOES NOT HANDLE AUTOWIDTH/HEIGHT
+ \chemicalpicturetrue
+ \processchemical[#1]}
+
+\def\setchemicalpicture#1#2%
+ {\chemicalpicturefalse
+ \def\endchemicalpicture%
+ {\@@endchemicallocalpicture{#1}{#2}%
+ \egroup
+ \ifnum\chemicaldrawingmode=1
+ \rput
+ {-\chemicalangle}(\chemicalxoffset,\chemicalyoffset)%
+ {\expanded{\rput[\chemicalloca]{\chemicalangle}(#1,#2){\box\nextbox}}}%
+ \else
+ \expanded{\put{\box\nextbox}[\chemicalloca] at {#1} {#2} }
+ \fi
+ \egroup}%
+ \def\checkchemicalpicture%
+ {\ifx\endchemicalpicture\relax \else
+ \writestatus{ppchtex}{missing end of picture (PE)}%
+ \endchemicalpicture
+ \fi}%
+ \setbox\nextbox=\hbox\bgroup
+ \@@beginchemicallocalpicture
+ % alternatief: gewoon accounting, en zelf l,r afhandelen
+ \ifnum\chemicaldrawingmode=1
+ % njet
+ \else
+ \accountingon
+ \let\nomoreaccounting=\accountingoff
+ \fi}
+
+\def\doskipchemical[#1][#2]%
+ {{\tt[ppchtex]}}
+
+\def\skipchemical%
+ {\dodoubleargument\doskipchemical}
+
+\def\complexchemical% met \expandafter
+ {\ifinchemical
+ \expandafter\dochemical
+ \else
+ \writestatus{ppchtex}{the [][]-alternative is not permitted here}%
+ \expandafter\skipchemical
+ \fi}
+
+\newif\ifinnerchemical
+
+\def\dosimplechemical#1#2#3%
+ {\doifdefinedelse{\??chemical\c!location}
+ {\writestatus{ppchtex}{the {}{}-alternative is not permitted here}}
+ {\ifinnerchemical
+ \let\chemicalsign = \chemicalinnersign
+ \let\chemicalmolecule = \chemicalinnermolecule
+ \let\chemicalsinglearrow = \chemicalsingleinnerarrow
+ \let\chemicaldoublearrow = \chemicaldoubleinnerarrow
+ \let\chemicaltwintiparrow = \chemicaltwintipinnerarrow
+ \else
+ \let\chemicalsign = \chemicaloutersign
+ \let\chemicalmolecule = \chemicaloutermolecule
+ \let\chemicalsinglearrow = \chemicalsingleouterarrow
+ \let\chemicaldoublearrow = \chemicaldoubleouterarrow
+ \let\chemicaltwintiparrow = \chemicaltwintipouterarrow
+ \fi
+ \disablechemicalspecials
+ \unexpandedprocessallactionsinset
+ [#1]
+ [ HIGH=>\sethighsubscripts,
+ LOW=>\setlowsubscripts,
+ PLUS=>\chemicalsign{+},
+ GIVES=>\chemicalsinglearrow{#2}{#3},
+ EQUILIBRIUM=>\chemicaldoublearrow{#2}{#3},
+ MESOMERIC=>\chemicaltwintiparrow{#2}{#3},
+ SINGLE=>\singlechemicalbond,
+ DOUBLE=>\doublechemicalbond,
+ TRIPLE=>\triplechemicalbond,
+ +=>\chemicalsign{+},
+ ->=>\chemicalsinglearrow{#2}{#3},
+ <->=>\chemicaldoublearrow{#2}{#3},
+ <>=>\chemicaltwintiparrow{#2}{#3},
+ -=>\singlechemicalbond,
+ --=>\doublechemicalbond,
+ ---=>\triplechemicalbond,
+ \s!unknown=>\enablechemicalspecials
+ \chemicalmolecule{\commalistelement}{#2}{#3}]}}
+
+\def\dosimplechemicalA#1#2#3% % evt: {#1,\relax}
+ {\let\chemicalspace=\relax
+ \@EA\dosimplechemical\@EA{\@@chemicalchemicaloffset,#1}{#2}{#3}%
+ \egroup}
+
+\def\dosimplechemicalB#1#2#3%
+ {\dosimplechemical{#1}{#2}{#3}%
+ \egroup}
+
+\def\dosimplechemicalC#1#2#3%
+ {$\simplechemical{#1}{#2}{#3}$%
+ \egroup} % erbij
+
+\def\simplechemical
+ {\ifinner
+ \innerchemicaltrue
+ \else
+ \innerchemicalfalse
+ \fi
+ \bgroup
+ \catcode`\^=\@@superscript % t.b.v. \enableduplication
+ \catcode`\_=\@@subscript % t.b.v. de zekerheid
+ \ifmmode
+ \ifinnerchemical
+ \def\next{\dotriplegroupempty\dosimplechemicalA}%
+ \else
+ \def\next{\dotriplegroupempty\dosimplechemicalB}%
+ \fi
+ \else
+ \def\next{\dotriplegroupempty\dosimplechemicalC}%
+ \fi
+ \next}
+
+\definecomplexorsimple\chemical
+
+\def\dogotochemical#1#2%
+ {\def\dowithchemical% % experiment
+ {\localgotochemical{#1}}% % experiment
+ \chemical} % experiment
+
+\def\gotochemical% % experiment
+ {\dosingleargument\dogotochemical} % experiment
+
+\def\dododochemical#1[#2][#3]% % experiment
+ {\def\simpledododochemical% % experiment
+ {#1[#2][#3]}% % experiment
+ \def\complexdododochemical[##1]% % experiment
+ {\def\dowithchemical% % experiment
+ {\localthisischemical{#2}}% % experiment
+ #1[#3][##1]}% % experiment
+ \complexorsimple\dododochemical} % experiment
+
+\def\dodochemical[#1][#2]%
+ {\ignorespaces
+ \ifinchemical
+ \drawchemical[#1][#2]%
+ \ignorespaces
+ \else
+ \startchemical[\c!location=\v!intext]%
+ \drawchemical[#1][#2]%
+ \expandafter\stopchemical
+ \fi
+ \ignorespaces}
+
+\def\dochemical[#1]%
+ {\def\simpledochemical%
+ {\@@writechemicalstate{ppchtex}{[#1][]}%
+ \dodochemical[#1][]}%
+ %
+ \def\complexdochemical[##1]%
+ {\@@writechemicalstate{ppchtex}{[#1][##1]}%
+ \txtchemical=0%
+ \dodochemical[#1][##1]}%
+ %
+ \def\complexdochemical[##1]% % experiment
+ {\@@writechemicalstate{ppchtex}{[#1][##1]}% % experiment
+ \txtchemical=0% % experiment
+ \dododochemical\dodochemical[#1][##1]}% % experiment
+ %
+ \complexorsimple\dochemical}
+
+% \processlocalchemicals{#1}
+%
+% #1: commando's
+
+\def\dodoprocesschemical#1%
+ {\processchemical[#1????]}
+
+\def\processlocalchemicals#1%
+ {\processcommalist[#1]\dodoprocesschemical}
+
+% \drawchemical[#1][#2]
+%
+% #1: bindingen enz.
+% #2: atomen enz.
+
+\def\localdodochemical[#1][#2]%
+ {\@@writechemicalstate{ppchtex}{[#1][#2]}%
+ %\bgroup % koppelen en afmetingen gaat fout, vandaar:
+ \advance\levchemical 1
+ \letvalue{\??chemical\s!unknown\the\levchemical}\unknownchemical
+ \setevalue{\??chemical\c!text\the\levchemical}{\the\txtchemical}%
+ \txtchemical=0
+ \dodochemical[#1][#2]%
+ % \@EA\txtchemical\@EA\csname\??chemical\c!text\the\levchemical\endcsname
+ \txtchemical\csname\??chemical\c!text\the\levchemical\endcsname
+ \@EA\let\@EA\unknownchemical\csname\??chemical\s!unknown\the\levchemical\endcsname
+ \advance\levchemical -1
+ %\egroup
+ \ignorespaces}
+
+\def\drawchemical[#1][#2]%
+ {\ignorespaces
+ \def\dodochemical[##1][##2]%
+ {\drawchemical[##1][##2]%
+ \ignorespaces}%
+ \def\dochemical[##1]%
+ {\def\simpledochemical%
+ {\@@writechemicalstate{ppchtex}{[##1][#2]}%
+ \dodochemical[##1][#2]%
+ \ignorespaces}%
+ \def\complexdochemical[####1]%
+ {\dododochemical\localdodochemical[##1][####1,#2]}%
+ \complexorsimple\dochemical}%
+ \doif\@@chemicalstate\v!start
+ {\doifelse\chemicalname\s!unknown
+ {\getvalue{\s!executechemical\defaultchemical}[#2]}
+ {\getvalue{\s!executechemical\chemicalname}[#2]}%
+ \def\unknownchemical##1%
+ {\processunknownchemical[##1][#2]}%
+ \processcommalist[\@@chemicaloffset,#1]\dodoprocesschemical}%
+ \ignorespaces}
+
+\unexpanded\def\chemicaloxidation#1#2#3%
+ {\chemicaltop
+ {\ifnum#20=0
+ 0%
+ \else
+ #1\expandafter\uppercase\expandafter{\romannumeral#2}%
+ \fi}
+ {#3}}
+
+\def\chemicaltfraction{\ifinchemical.60\else.8\fi}
+\def\chemicalbfraction{\ifinchemical.45\else.6\fi}
+\def\chemicallfraction{\ifinchemical.1\else.1\fi}
+\def\chemicalrfraction{\ifinchemical.1\else.1\fi}
+
+\def\chemicaltighttext
+ {\def\chemicaltfraction{\ifinchemical.3\else.6\fi}%
+ \def\chemicalbfraction{\ifinchemical.2\else.4\fi}%
+ \def\chemicallfraction{\ifinchemical 0\else 0\fi}%
+ \def\chemicalrfraction{\ifinchemical 0\else 0\fi}}
+
+\def\dochemicaltop#1#2#3#4%
+ {\vbox
+ {\@@dochemicalcolor
+ \baselineskip=\chemicaltfraction\baselineskip \lineskip0pt
+ \halign
+ {#1###2\cr
+ $\@@dochemicalstyle{\scriptscriptstyle#3}$\cr
+ $\@@dochemicalstyle{\@@currentchemicalformat#4}$\cr}}}
+
+\def\dochemicalbottom#1#2#3#4%
+ {\vtop
+ {\@@dochemicalcolor
+ \baselineskip=\chemicalbfraction\baselineskip \lineskip0pt
+ \halign
+ {#1###2\cr
+ $\@@dochemicalstyle{\@@currentchemicalformat#4}$\cr
+ $\@@dochemicalstyle{\scriptscriptstyle#3}$\cr}}}
+
+\def\chemicalleft#1#2%
+ {\hbox
+ {\@@dochemicalcolor
+ $\@@dochemicalstyle{\scriptscriptstyle#1}$%
+ $\@@dochemicalstyle{\@@currentchemicalformat\hskip\chemicallfraction em#2}$}}
+
+\def\chemicalright#1#2%
+ {\hbox
+ {\@@dochemicalcolor
+ $\@@dochemicalstyle{\@@currentchemicalformat#2\hskip\chemicalrfraction em}$%
+ $\@@dochemicalstyle{\scriptscriptstyle#1}$}}
+
+\def\chemicalcentered#1%
+ {\setbox0=\hbox{$\@@dochemicalstyle{\scriptscriptstyle#1}$}%
+ \setbox2=\hbox{$\@@dochemicalstyle{\@@currentchemicalformat C}$}%
+ \dimen0=.5\ht2
+ \advance\dimen0 by -.5\ht0
+ \advance\dimen0 by \dp0
+ \hbox{\@@dochemicalcolor\raise\dimen0\box0}}
+
+\def\chemicalleftcentered#1#2%
+ {\hbox
+ {\@@dochemicalcolor
+ \chemicalcentered{#1}%
+ $\@@dochemicalstyle{\@@currentchemicalformat\hskip\chemicallfraction em#2}$}}
+
+\def\chemicalrightcentered#1#2%
+ {\hbox
+ {\@@dochemicalcolor
+ $\@@dochemicalstyle{\@@currentchemicalformat#2\hskip\chemicalrfraction em}$%
+ \chemicalcentered{#1}}}
+
+\def\chemicaltop {\dochemicaltop \hss \hss }
+\def\chemicallefttop {\dochemicaltop \relax \hss }
+\def\chemicalrighttop {\dochemicaltop \hss \relax}
+\def\chemicalbottom {\dochemicalbottom \hss \hss }
+\def\chemicalleftbottom {\dochemicalbottom \relax \hss }
+\def\chemicalrightbottom {\dochemicalbottom \hss \relax}
+
+\def\chemicaltopleft #1{\chemicalleft {\chemicallefttop {#1}{}}}
+\def\chemicalbottomleft #1{\chemicalleft {\chemicalleftbottom{#1}{}}}
+\def\chemicaltopright #1{\chemicalright{\chemicallefttop {#1}{}}}
+\def\chemicalbottomright#1{\chemicalright{\chemicalleftbottom{#1}{}}}
+
+\def\chemicalsmashedleft#1%
+ {\hbox\bgroup
+ \@@dochemicalcolor
+ \setbox0=\hbox{$\@@dochemicalstyle{\@@currentchemicalformat C}$}%
+ \setbox2=\hbox{$\@@dochemicalstyle{\@@currentchemicalformat#1}$}%
+ \wd2=\wd0
+ \box2
+ \egroup}
+
+\def\chemicalsmashedmiddle#1%
+ {\hbox\bgroup
+ \@@dochemicalcolor
+ \setbox0=\hbox{$\@@dochemicalstyle{\@@currentchemicalformat C}$}%
+ \setbox2=\hbox{$\@@dochemicalstyle{\@@currentchemicalformat#1}$}%
+ \hbox{\hskip-.5\wd2\hskip.5\wd0\box2}
+ \egroup}
+
+\def\chemicalsmashedright#1%
+ {\hbox\bgroup
+ \@@dochemicalcolor
+ \setbox0=\hbox{$\@@dochemicalstyle{\@@currentchemicalformat C}$}%
+ \setbox2=\hbox{$\@@dochemicalstyle{\@@currentchemicalformat#1}$}%
+ \hbox to \wd0{\hskip-\wd2\hskip\wd0\box2}%
+ \egroup}
+
+\def\+{\tabalign} % is \long in Plain
+
+\def\chemicalforever#1#2%
+ {\bgroup
+ \setbox0=\hbox
+ {\@@dochemicalcolor
+ $\@@dochemicalstyle{\scriptscriptstyle\hskip-.15em#2}$}%
+ \wd0=0pt
+ \big#1_{\hskip.1em\box0}%
+ \egroup}
+
+\def\disablechemicalspecials%
+ {\def\+##1{##1}\def\-##1{##1}%
+ \def\[{[}\def\]{]}%
+ \def\1{}\def\2{}\def\3{}\def\4{}\def\5{}\def\6{}\def\7{}%
+ \def\X{}%
+ \def\T{}\def\B{}\def\L{}\def\R{}\def\LC{}\def\RC{}%
+ \def\TL{}\def\BL{}\def\TR{}\def\BR{}%
+ \def\LT{}\def\LB{}\def\RT{}\def\RB{}%
+ \def\SL{}\def\SM{}\def\SR{}}
+
+\def\enablechemicalspecials%
+ {\def\+{\dodoublegroupempty\chemicaloxidation{+}}% {} needed!
+ \def\-{\dodoublegroupempty\chemicaloxidation{-}}% {} needed!
+ \def\[{\dodoublegroupempty\chemicalforever {[}}% {} needed!
+ \def\]{\dodoublegroupempty\chemicalforever {]}}% {} needed!
+ \def\1{\chemicaloxidation\relax1}%
+ \def\2{\chemicaloxidation\relax2}%
+ \def\3{\chemicaloxidation\relax3}%
+ \def\4{\chemicaloxidation\relax4}%
+ \def\5{\chemicaloxidation\relax5}%
+ \def\6{\chemicaloxidation\relax6}%
+ \def\7{\chemicaloxidation\relax7}%
+ \def\X{\chemicaltighttext}%
+ \def\T{\chemicaltop}%
+ \def\B{\chemicalbottom}%
+ \def\L{\chemicalleft}%
+ \def\LC{\chemicalleftcentered}%
+ \def\R{\chemicalright}%
+ \def\RC{\chemicalrightcentered}%
+ \def\TL{\chemicaltopleft}%
+ \def\BL{\chemicalbottomleft}%
+ \def\TR{\chemicaltopright}%
+ \def\BR{\chemicalbottomright}%
+ \def\LT{\chemicallefttop}%
+ \def\LB{\chemicalleftbottom}%
+ \def\RT{\chemicalrighttop}%
+ \def\RB{\chemicalrightbottom}%
+ \def\SL{\chemicalsmashedleft}%
+ \def\SM{\chemicalsmashedmiddle}%
+ \def\SR{\chemicalsmashedright}}
+
+% \reversechemical#1#2#3
+%
+% #1: prefix
+% #2: volgnummer enz
+% #3: tegengestelde volgnummers
+
+\def\reversechemical#1#2#3%
+ {\def\doprocess[##1##2]%
+ {\doifchemicalnumber{##1}{#1#2}%
+ {\getfromcommalist[#3][##1]%
+ \let\reversechemicalaction=\commalistelement
+ \processchemical[#1\reversechemicalaction##2]}}%
+ \doprocess[#2]}
+
+% \processunknownchemical[#1????][#2]
+%
+% #1: bindingen enz.
+% #2: atomen enz.
+
+\def\defaultchemical%
+ {SIX}
+
+\def\processunknownchemical[#1????][#2]%
+ {\processaction
+ [#1]
+ [ SAVE=>\executechemicalSAVE,
+ RESTORE=>\executechemicalRESTORE,
+ HIGH=>\sethighsubscripts,
+ LOW=>\setlowsubscripts,
+ \s!default=>,
+ \s!unknown=>\doifdefinedelse{\s!executechemical#1}
+ {\def\chemicalrotation{1}%
+ \def\chemicaloffset{0}%
+ \doifdefined{\s!executechemical#1}
+ {\getvalue{\s!executechemical#1}[#2]}%
+ \@@chemicalpostponed}
+ {\getpredefinedchemical{#1}}]}
+
+\newcount\chemicalstack % tzt \newwounter
+
+\setvalue{\s!chemical\c!x1}{0}
+\setvalue{\s!chemical\c!y1}{0}
+
+\def\executechemicalSAVE
+ {%\writestatus{ppchtex}{saving \the\horchemical,\the\verchemical}%
+ \advance\chemicalstack by 1
+ \letvalue {\s!chemical n\the\chemicalstack}=\chemicalname
+ %\letvalue {\s!chemical p\the\chemicalstack}=\@@chemicalpostponed
+ \setevalue{\s!chemical x\the\chemicalstack}{\the\horchemical}%
+ \setevalue{\s!chemical y\the\chemicalstack}{\the\verchemical}}
+
+\def\restorechemicalvalues#1%
+ {\let\oldprocesschemical=\processchemical
+ \doifdefined{\s!executechemical#1}{\getvalue{\s!executechemical#1}[]}%
+ \let\processchemical=\oldprocesschemical}
+
+\def\executechemicalRESTORE
+ {\ifnum\chemicalstack=0\relax
+ \horchemical=\getvalue{\s!chemical x1}\relax
+ \verchemical=\getvalue{\s!chemical y1}\relax
+ \else
+ \restorechemicalvalues{\getvalue{\s!chemical n\the\chemicalstack}}%
+ %\@EA\let\@EA\@@chemicalpostponed\@EA=\csname\s!chemical p\the\chemicalstack\endcsname
+ \let\@@chemicalpostponed=\relax
+ \horchemical=\getvalue{\s!chemical x\the\chemicalstack}\relax
+ \verchemical=\getvalue{\s!chemical y\the\chemicalstack}\relax
+ \advance\chemicalstack by -1
+ \fi
+ \restorechemicalcoordinates}
+
+% De onderstaande macro's zijn verantwoordelijk voor het zetten
+% van de + en pijlen. De +, en dus ook de pijlen, worden omhoog
+% gehaald. Dit oogt m.i. fraaier.
+
+\def\chemicalinnerclip#1%
+ {{\setbox0=\hbox{#1}\ht0\ht\strutbox\dp0\dp\strutbox\box0}}
+
+\def\chemicalraise#1#2%
+ {\chemicalinnerclip
+ {\setbox0=\hbox{$#1+$}%
+ \raise\dp0\hbox{$#1#2$}}}
+
+\def\chemicalinnersign#1% todo: \@@chemicaltextcolor
+ {\chemicalraise{\@@localchemicalstyle}{#1}}
+
+\def\chemicaloutersign#1%
+ {\chemicalraise{}{\@@dochemicalcolor#1}}
+
+\def\chemicalsingleinnerarrow#1#2%
+ {\chemicalraise{\@@localchemicalstyle}{\longrightarrow}}
+
+\def\chemicaldoubleinnerarrow#1#2% todo: \@@chemicaltextcolor
+ {\chemicalinnerclip
+ {\lower.2ex\hbox
+ {\setbox0=\hbox{$\@@localchemicalstyle\longrightarrow$}%
+ \setbox2=\hbox{$\@@localchemicalstyle\longleftarrow$}%
+ \wd0=0pt\raise\ht0\box0\box2}}}
+
+\def\chemicaltwintipinnerarrow#1#2% todo: \@@chemicaltextcolor
+ {\chemicalinnerclip
+ {\setbox0=\hbox{\chemicalraise{\@@localchemicalstyle}{\longrightarrow}}%
+ \setbox2=\hbox{\chemicalraise{\@@localchemicalstyle}{\longleftarrow}}%
+ \wd0=0pt\box0\box2}}
+
+\def\dochemicalouterarrow#1#2#3%
+ {\bgroup
+ \setbox0=\hbox{$\longrightarrow$}%
+ \setbox2=\hbox{$\@@dochemicalstyle{\scriptstyle\quad#2\quad}$}%
+ \setbox4=\hbox{$\@@dochemicalstyle{\scriptstyle\quad#3\quad}$}%
+ \dimen2=\wd0 % \dimen0 is used elsewhere
+ \ifdim\wd2>\dimen2 \dimen0=\wd2 \fi
+ \ifdim\wd4>\dimen2 \dimen0=\wd4 \fi
+ \chemicaloutermolecule
+ {#1}
+ {\ifdim\ht2>\!!zeropoint\box2\fi} % expands to \empty in test
+ {\ifdim\ht4>\!!zeropoint\box4\fi}% % expands to \empty in test
+ \egroup}
+
+\def\chemicalsingleouterarrow
+ {\dochemicalouterarrow
+ {\hbox to \dimen2{\rightarrowfill}}}
+
+\def\chemicaldoubleouterarrow
+ {\dochemicalouterarrow
+ {\lower.5\ht0\vbox
+ {\offinterlineskip
+ \hbox to \dimen2{\rightarrowfill}
+ \hbox to \dimen2{\leftarrowfill}}}}
+
+\def\chemicaltwintipouterarrow
+ {\dochemicalouterarrow
+ {\hbox
+ {\hbox to \dimen2{\rightarrowfill}%
+ \hskip-\dimen2
+ \hbox to \dimen2{\leftarrowfill}}}}
+
+\def\chemicalinnermolecule#1#2#3% no mathop here, can generate space
+ {\chemicalspace % todo: \@@chemicaltextcolor
+ \chemicalinnerclip
+ {\dosetsubscripts
+ $\@@dochemicalstyle{\@@localchemicalstyle\strut#1}$%
+ \doresetsubscripts}%
+ \chemicalspace}
+
+\def\chemicaloutermolecule#1#2#3%
+ {\chemicalspace
+ \bgroup
+ \@@dochemicalcolor
+ \setbox0=\hbox % else the font is reset
+ {\dosetsubscripts
+ \hbox{$\@@dochemicalstyle{\strut#1}$}%
+ \doresetsubscripts}%
+ \mathop{\box0}%
+ \ifthirdargument
+ \doifnot{#2}{}
+ {^{\@@dochemicalstyle{\strut#2}}}%
+ \doifnot{#3}{}
+ {_{\@@dochemicalstyle{\strut#3}}}%
+ \else
+ \doifnot{#2}{}
+ {_{\@@dochemicalstyle{\strut#2}}}%
+ \fi
+ \egroup
+ \chemicalspace}
+
+\def\chemicalsinglepicturearrow#1%
+ {\lower.5ex\hbox
+ {\@@dochemicalstyle
+ $\chemicalspace
+ \buildrel
+ \@@dochemicalstyle{\scriptstyle\quad#1\quad}%
+ \over{\overrightarrow
+ {\hphantom{\@chemicalstyle{\scriptstyle\quad#1\quad}}}}%
+ \chemicalspace$}}
+
+\def\chemicaldoublepicturearrow#1%
+ {\lower.5ex\hbox
+ {\@@dochemicalstyle
+ $\chemicalspace
+ \buildrel
+ \@@dochemicalstyle{\scriptstyle\quad#1\quad}%
+ \over{\overrightarrow{\overleftarrow
+ {\hphantom{\@@dochemicalstyle{\scriptstyle\quad#1\quad}}}}}%
+ \chemicalspace$}}
+
+% Bij de in-line bindingen wordt gebruik gemaakt van
+% een \hrule. De maatvoering wordt bepaald door een
+% kunstmatige em (\wd0).
+
+\def\somechemicalbond%
+ {\hrule width \wd0 height .4pt}
+
+\def\dochemicalbonds#1#2#3% todo: \@@chemicaltextstyle
+ {{\setbox0=\hbox
+ {${\@@localchemicalstyle M}$}%
+ \vbox to \ht0
+ {\@@dochemicalcolor
+ \hsize\wd0
+ \vskip.1\wd0#1\vfill#2\vfill#3\vskip.1\wd0}}}
+
+\def\singlechemicalbond%
+ {\dochemicalbonds{}{\somechemicalbond}{}}
+
+\def\doublechemicalbond%
+ {\dochemicalbonds{\somechemicalbond}{}{\somechemicalbond}}
+
+\def\triplechemicalbond%
+ {\dochemicalbonds{\somechemicalbond}{\somechemicalbond}{\somechemicalbond}}
+
+% In plaats van \def\naam{\chemie[...]...} kan beter gebruik
+% worden gemaakt van het commando
+%
+% \definieerchemie[naam]{commando's}
+%
+% De naam krijgt, om problemen met bestaande macro's te
+% voorkomen, een prefix. Bij het ophalen van een commando
+% worden beide definities afgehandeld.
+
+\def\dodefinechemical[#1]#2%
+ {\doifdefined{\??chemical#1}
+ {\writestatus{ppchtex}{chemical definition #1 is redefined}}%
+ \setvalue{\??chemical#1}{#2}}
+
+\def\definechemical%
+ {\dosingleargument\dodefinechemical}
+
+\def\getpredefinedchemical#1%
+ {\doifdefinedelse{\??chemical#1}
+ {\getvalue{\??chemical#1}}
+ {\doifdefinedelse{#1}
+ {\getvalue{#1}}
+ {\writestatus{ppchtex}{unknown chemical definition #1}}}}
+
+% Hieronder zijn de definities van de structuren opgenomen. De
+% naam van de structuur is als volgt opgebouwd:
+%
+% \executechemicalNUMBER[#1]
+%
+% waarbij [#1] betrekking heeft op de tekstelementen van \chemie,
+% de [tweede lijst] dus.
+%
+% De aan \chemie[#1][#2] meegegeven lijst van segmenten wordt
+% deels door de in \execute gedefinieerde macro's afgehandeld,
+% deels door algemene macro's. Segmenten hebben de vorm:
+%
+% [+|-|]identifier[X|XYZ|X..Y]
+%
+% Voorbeelden van segmenten zijn:
+%
+% R1
+% R1..4
+% R135
+% -R1
+% +R35
+
+\setchemicalmaximum 0
+
+\def\processchemical[#1]%
+ {\unknownchemical{#1}}
+
+\def\setchemicalname#1 %
+ {\def\chemicalname{#1}}
+
+\let\chemicalname=\s!unknown
+
+% Vooruitlopend op een gedetailleerde documentatie, zijn hier
+% vast enkele gebruikte afmetingen:
+%
+% lengte radikalen : 500
+% afstand radikalen : 100
+% afstand dubbele radikalen : 260
+% afstand substituenten : +125
+
+\def\executechemicalONE[#1]%
+ {\setchemicalname ONE
+ %
+ \setchemicalmaximum 8
+ \setchemicaldistance 0
+ \setchemicalsubstitute 625
+ \setchemicaldirection 303
+ %
+ \setchemicalrotation 1 1 0 1 0 1 0 1 0
+ \setchemicalrotation 2 0.707 -0.707 0.707 -0.707 0.707 -0.707 0.707 -0.707
+ \setchemicalrotation 3 0 -1 0 -1 0 -1 0 -1
+ \setchemicalrotation 4 -0.707 -0.707 -0.707 -0.707 -0.707 -0.707 -0.707 -0.707
+ \setchemicalrotation 5 -1 0 -1 0 -1 0 -1 0
+ \setchemicalrotation 6 -0.707 0.707 -0.707 0.707 -0.707 0.707 -0.707 0.707
+ \setchemicalrotation 7 0 1 0 1 0 1 0 1
+ \setchemicalrotation 8 0.707 0.707 0.707 0.707 0.707 0.707 0.707 0.707
+ %
+ \setchemicalangle 1 0 90 180 270
+ \setchemicalangle 2 45 135 225 315
+ \setchemicalangle 3 90 180 270 0
+ \setchemicalangle 4 135 225 315 45
+ \setchemicalangle 5 180 270 0 90
+ \setchemicalangle 6 225 315 45 135
+ \setchemicalangle 7 270 0 90 180
+ \setchemicalangle 8 315 45 135 225
+ %
+ \setchemicaltranslate 1 -1000 0
+ \setchemicaltranslate 2 -1000 1000
+ \setchemicaltranslate 3 0 1000
+ \setchemicaltranslate 4 1000 1000
+ \setchemicaltranslate 5 1000 0
+ \setchemicaltranslate 6 1000 -1000
+ \setchemicaltranslate 7 0 -1000
+ \setchemicaltranslate 8 -1000 -1000
+ %
+ \setchemicallinesegment SB 300 0 700 0
+ \setchemicallinesegment DB1 300 50 700 50
+ \setchemicallinesegment DB2 300 -50 700 -50
+ %
+ %setchemicallinesegment EP 200 125 200 -125
+ \setchemicalfactorlinesegment EP 200 125 200 -125
+ %
+ \setchemicaltextelement ES 200 0
+ \setchemicaltextelement ED1 200 50
+ \setchemicaltextelement ED2 200 -50
+ \setchemicaltextelement ET1 200 75
+ \setchemicaltextelement ET2 200 0
+ \setchemicaltextelement ET3 200 -75
+ \setchemicaltextelement HB1 300 0
+ \setchemicaltextelement HB2 475 0
+ \setchemicaltextelement HB3 650 0
+ %
+ \setchemicaltextelement Z 800 0
+ \setchemicaltextelement RZ 950 0
+ \setchemicaltextelement ZN 500 0
+ \setchemicaltextelement ZTN 500 150
+ \setchemicaltextelement ZBN 500 -150
+ %
+ \def\processchemical[##1##2##3##4##5]%
+ {\doprocesschemical[##1##2##3##4##5]
+ {\processaction
+ [##1##2##3##4##5]
+ [ PB:##4##5=>\beginchemicalpicture{##4##5},
+ PE????=>\endchemicalpicture,
+ SUB##4##5=>\processchemicalsubstitute{##4##5},
+ ADJ##4##5=>\processchemicaldistance{##4##5},
+ MOV##4##5=>\processchemicaltranslate{##4##5},
+ DIR##4##5=>\processchemicaldirection{##4##5},
+ OFF##4##5=>\processchemicaloffset{##4##5},
+ CCD##4##5=>\processchemicaldottsegment{CC}{##4##5},
+ LDD##4##5=>\processchemicaldashedlinesegment{DB1}{##4##5}%
+ \processchemicallinesegment{DB2}{##4##5},
+ RDD##4##5=>\processchemicallinesegment{DB1}{##4##5}%
+ \processchemicaldashedlinesegment{DB2}{##4##5},
+ OF##3:##5=>\processchemicalphantom{##3}{##5},
+ OE##3##4##5=>\processchemicalopenend{OE}{##3##4##5},
+ EP##3##4##5=>\processchemicallinesegment{EP}{##3##4##5},
+ ES##3##4##5=>\processchemicaltextconstant{ES}{##3##4##5}{\hbox{$\cdot$}}{0},
+ ED##3##4##5=>\processchemicaltextconstant{ED}{##3##4##5}{\hbox{$\cdot$}}{0},
+ ET##3##4##5=>\processchemicaltextconstant{ET}{##3##4##5}{\hbox{$\cdot$}}{0},
+ HB##3##4##5=>\processchemicaltextconstant{HB}{##3##4##5}{\hbox{$\cdot$}}{0},
+ SB##3##4##5=>\processchemicallinesegment{SB}{##3##4##5},
+ DB##3##4##5=>\processchemicallinesegment{DB}{##3##4##5},
+ SB##3##4##5=>\processchemicallinesegment{SB}{##3##4##5},
+ BB##3##4##5=>\processchemicaldeltalinesegment{SB}{##3##4##5},
+ SD##3##4##5=>\processchemicaldashedlinesegment{SB}{##3##4##5},
+ TB##3##4##5=>\processchemicallinesegment{SB}{##3##4##5}%
+ \processchemicallinesegment{DB}{##3##4##5},
+ CZ##3##4##5=>\processchemicaltextelement{RZ}{##3##4##5}{#1}{0}{},
+ ZTN##4##5=>\processchemicalsmalltextconstant{ZTN}{##4##5}{\chemicaltextelementnumber}{0},
+ ZTT##4##5=>\processchemicalsmalltextelement{ZTN}{##4##5}{#1}{0}{},
+ ZBN##4##5=>\processchemicalsmalltextconstant{ZBN}{##4##5}{\chemicaltextelementnumber}{0},
+ ZBT##4##5=>\processchemicalsmalltextelement{ZBN}{##4##5}{#1}{0}{},
+ ZN##3##4##5=>\processchemicaltextconstant{ZN}{##3##4##5}{\chemicaltextelementnumber}{0},
+ ZT##3##4##5=>\processchemicaltextelement{ZN}{##3##4##5}{#1}{0}{},
+ Z##2##3##4##5=>\processchemicaltextelement{Z}{##2##3##4##5}{#1}{0}
+ {l,l,t,r,r,r,b,l},
+ \s!unknown=>\unknownchemical{##1##2##3##4##5}]}}}
+
+\def\executechemicalTHREE[#1]%
+ {\setchemicalname THREE
+ %
+ \setchemicalmaximum 3
+ \setchemicaldistance 289
+ \setchemicalsubstitute 952
+ %
+ \setchemicalrotation 1 1 0 0 -1 -1 0 0 1
+ \setchemicalrotation 2 -0.5 -0.866 -0.866 0.5 0.5 0.866 0.866 -0.5
+ \setchemicalrotation 3 -0.5 0.866 0.866 0.5 0.5 -0.866 -0.866 -0.5
+ %
+ \setchemicalangle 1 0 90 180 270
+ \setchemicalangle 2 120 210 300 30
+ \setchemicalangle 3 240 330 60 150
+ %
+ \setchemicaltranslate 1 -1000 0
+ \setchemicaltranslate 2 0 1000
+ \setchemicaltranslate 3 1000 0
+ \setchemicaltranslate 4 0 -1000
+ %
+ \setchemicallinesegment B 577 0 -289 -500
+ \setchemicallinesegment SB 352 -130 -64 -370
+ \setchemicallinesegment -SB 352 -130 -289 -500
+ \setchemicallinesegment +SB 577 0 -64 -370
+ \setchemicallinesegment DB1 327 -87 -89 -327
+ \setchemicallinesegment DB2 377 -172 -39 -413
+ \setchemicallinesegment R 577 0 1077 0
+ \setchemicallinesegment -R 577 0 1010 250
+ \setchemicallinesegment +R 577 0 1010 -250
+ \setchemicallinesegment ER1 577 50 1077 50
+ \setchemicallinesegment ER2 577 -50 1077 -50
+ \setchemicallinesegment SR 837 0 1077 0
+ \setchemicallinesegment -SR 802 130 1010 250
+ \setchemicallinesegment +SR 802 -130 1010 -250
+ \setchemicallinesegment DR1 837 50 1077 50
+ \setchemicallinesegment DR2 837 -50 1077 -50
+ %
+ \setchemicaltextelement Z 577 0
+ \setchemicaltextelement RZ 1177 0
+ \setchemicaltextelement -RZ 1097 300
+ \setchemicaltextelement +RZ 1097 -300
+ \setchemicaltextelement CRZ 1077 0
+ %
+ \def\processchemical[##1##2##3##4]%
+ {\processaction
+ [##1##2##3##4]
+ [ ROT##4=>\processchemicalrotation{##4},
+ MOV##4=>\processchemicaltranslate{##4},
+ SUB##4=>\processchemicalsubstitute{##4},
+ ADJ##4=>\processchemicaldistance{##4},
+ -RZ##4=>\processchemicaltextelement{-RZ}{##4}{#1}{3}
+ {l,t,r, l,r,l, r,b,l, r,l,r},
+ +RZ##4=>\processchemicaltextelement{+RZ}{##4}{#1}{3}
+ {l,r,b, r,r,l, r,l,t, l,l,r},
+ -SB##4=>\processchemicallinesegment{-SB}{##4},
+ +SB##4=>\processchemicallinesegment{+SB}{##4},
+ -SR##4=>\processchemicallinesegment{-SR}{##4},
+ +SR##4=>\processchemicallinesegment{+SR}{##4},
+ CRZ##4=>\processchemicaltextelement{CRZ}{##4}{#1}{0}
+ {},
+ DB##3##4=>\processchemicallinesegment{DB}{##3##4},
+ DR##3##4=>\processchemicallinesegment{DR}{##3##4},
+ RZ##3##4=>\processchemicaltextelement{RZ}{##3##4}{#1}{3}
+ {l,r,r, t,r,l, r,l,l, b,l,r},
+ ER##3##4=>\processchemicallinesegment{ER}{##3##4},
+ SB##3##4=>\processchemicallinesegment{SB}{##3##4},
+ SR##3##4=>\processchemicallinesegment{SR}{##3##4},
+ -R##3##4=>\processchemicallinesegment{-R}{##3##4},
+ +R##3##4=>\processchemicallinesegment{+R}{##3##4},
+ B##2##3##4=>\processchemicallinesegment{B}{##2##3##4},
+ R##2##3##4=>\processchemicallinesegment{R}{##2##3##4},
+ Z##2##3##4=>\processchemicaltextelement{Z}{##2##3##4}{#1}{0}{},
+ \s!unknown=>\unknownchemical{##1##2##3##4}]}}
+
+\def\executechemicalFOUR[#1]%
+ {\setchemicalname FOUR
+ %
+ \setchemicalmaximum 4
+ \setchemicaldistance 500
+ \setchemicalsubstitute 0
+ %
+ \setchemicalrotation 1 1 0 0 -1 -1 0 0 1
+ \setchemicalrotation 2 0 -1 -1 0 0 1 1 0
+ \setchemicalrotation 3 -1 0 0 1 1 0 0 -1
+ \setchemicalrotation 4 0 1 1 0 0 -1 -1 0
+ %
+ \setchemicalangle 1 0 90 180 270
+ \setchemicalangle 2 90 180 270 0
+ \setchemicalangle 3 180 270 0 90
+ \setchemicalangle 4 270 0 90 180
+ %
+ \setchemicaltranslate 1 -1000 0
+ \setchemicaltranslate 2 0 1000
+ \setchemicaltranslate 3 1000 0
+ \setchemicaltranslate 4 0 -1000
+ %
+ \setchemicallinesegment B 500 500 500 -500
+ \setchemicallinesegment SB 500 240 500 -240
+ \setchemicallinesegment -SB 500 240 500 -500
+ \setchemicallinesegment +SB 500 500 500 -240
+ \setchemicallinesegment DB1 450 240 450 -240
+ \setchemicallinesegment DB2 550 240 550 -240
+ \setchemicallinesegment EB 360 300 360 -300
+ \setchemicallinesegment R 500 500 854 854
+ \setchemicallinesegment -R 500 500 500 1000
+ \setchemicallinesegment +R 500 500 1000 500
+ \setchemicallinesegment ER1 465 535 819 889
+ \setchemicallinesegment ER2 535 465 889 819
+ \setchemicallinesegment SR 684 684 854 854
+ \setchemicallinesegment -SR 500 760 500 1000
+ \setchemicallinesegment +SR 760 500 1000 500
+ \setchemicallinesegment DR1 649 719 819 889
+ \setchemicallinesegment DR2 719 649 889 819
+ %
+ \setchemicaltextelement Z 500 500
+ \setchemicaltextelement RZ 925 925
+ \setchemicaltextelement -RZ 500 1100
+ \setchemicaltextelement +RZ 1100 500
+ \setchemicaltextelement CRZ 1038 1038
+ %
+ \setchemicaltextelement ZN 350 350
+ %
+ \def\processchemical[##1##2##3##4]%
+ {\processaction
+ [##1##2##3##4]
+ [ PB:##4=>\beginchemicalpicture{##4},
+ PE????=>\endchemicalpicture,
+ ROT##4=>\processchemicalrotation{##4},
+ SUB##4=>\processchemicalsubstitute{##4},
+ ADJ##4=>\processchemicaldistance{##4},
+ MOV##4=>\processchemicaltranslate{##4},
+ -RZ##4=>\processchemicaltextelement{-RZ}{##4}{#1}{4}
+ {b,l,t,r, l,t,r,b, t,r,b,l, r,b,l,t},
+ +RZ##4=>\processchemicaltextelement{+RZ}{##4}{#1}{4}
+ {l,t,r,b, t,r,b,l, r,b,l,t, b,l,t,r},
+ -SB##4=>\processchemicallinesegment{-SB}{##4},
+ +SB##4=>\processchemicallinesegment{+SB}{##4},
+ -SR##4=>\processchemicallinesegment{-SR}{##4},
+ +SR##4=>\processchemicallinesegment{+SR}{##4},
+ CRZ##4=>\processchemicaltextelement{CRZ}{##4}{#1}{0}{},
+ ZN##3##4=>\processchemicaltextconstant{ZN}{##3##4}{\chemicaltextelementnumber}{0},
+ ZT##3##4=>\processchemicaltextelement{ZN}{##3##4}{#1}{0}{},
+ DB##3##4=>\processchemicallinesegment{DB}{##3##4},
+ DR##3##4=>\processchemicallinesegment{DR}{##3##4},
+ EB##3##4=>\processchemicallinesegment{EB}{##3##4},
+ ER##3##4=>\processchemicallinesegment{ER}{##3##4},
+ RZ##3##4=>\processchemicaltextelement{RZ}{##3##4}{#1}{4}
+ {lb,lt,rt,rb, lt,rt,rb,lb, rt,rb,lb,lt, rb,lb,lt,rt},
+ SB##3##4=>\processchemicallinesegment{SB}{##3##4},
+ SR##3##4=>\processchemicallinesegment{SR}{##3##4},
+ -R##3##4=>\processchemicallinesegment{-R}{##3##4},
+ +R##3##4=>\processchemicallinesegment{+R}{##3##4},
+ B##2##3##4=>\processchemicallinesegment{B}{##2##3##4},
+ R##2##3##4=>\processchemicallinesegment{R}{##2##3##4},
+ Z##2##3##4=>\processchemicaltextelement{Z}{##2##3##4}{#1}{0}{},
+ \s!unknown=>\unknownchemical{##1##2##3##4}]}}
+
+\def\executechemicalFIVE[#1]%
+ {\setchemicalname FIVE
+ %
+ \setchemicalmaximum 5
+ \setchemicaldistance 688
+ \setchemicalsubstitute 1226
+ %
+ \setchemicalrotation 1 1 0 0 -1 -1 0 0 1
+ \setchemicalrotation 2 0.309 -0.951 -0.951 -0.309 -0.309 0.940 0.951 0.309
+ \setchemicalrotation 3 -0.809 -0.588 -0.588 0.809 0.809 0.588 0.588 -0.809
+ \setchemicalrotation 4 -0.809 0.588 0.588 0.809 0.809 -0.588 -0.588 -0.809
+ \setchemicalrotation 5 0.309 0.951 0.951 -0.309 -0.309 -0.951 -0.951 0.309
+ %
+ \setchemicalangle 1 0 90 180 270
+ \setchemicalangle 2 72 162 252 342
+ \setchemicalangle 3 144 234 324 54
+ \setchemicalangle 4 216 306 36 126
+ \setchemicalangle 5 288 18 108 198
+ %
+ \setchemicaltranslate 1 -1376 0
+ \setchemicaltranslate 2 -425 1304
+ \setchemicaltranslate 3 1113 809
+ \setchemicaltranslate 4 1113 -809
+ \setchemicaltranslate 5 -425 -1304
+ %
+ \setchemicallinesegment A 1188 500 1188 -500
+ \setchemicallinesegment B 688 500 688 -500
+ \setchemicallinesegment S -263 808 688 -500
+ \setchemicallinesegment SS -116 606 541 -298
+ \setchemicallinesegment -SS -263 808 541 -298
+ \setchemicallinesegment +SS -116 606 688 -500
+ \setchemicallinesegment SB 688 240 688 -240
+ \setchemicallinesegment -SB 688 240 688 -500
+ \setchemicallinesegment +SB 688 500 688 -240
+ \setchemicallinesegment DB1 638 240 638 -240
+ \setchemicallinesegment DB2 738 240 738 -240
+ \setchemicallinesegment EB 548 340 548 -340
+ \setchemicallinesegment R 688 500 1093 794
+ \setchemicallinesegment -R 688 500 688 1000
+ \setchemicallinesegment +R 688 500 1163 345
+ \setchemicallinesegment ER1 659 540 1064 834
+ \setchemicallinesegment ER2 727 460 1122 754
+ \setchemicallinesegment SR 898 653 1093 794
+ \setchemicallinesegment -SR 688 760 688 1000
+ \setchemicallinesegment +SR 935 420 1163 345
+ \setchemicallinesegment DR1 869 693 1064 834
+ \setchemicallinesegment DR2 927 613 1122 754
+ %
+ \setchemicaltextelement Z 688 500
+ \setchemicaltextelement RZ 1188 863
+ \setchemicaltextelement -RZ 688 1100
+ \setchemicaltextelement +RZ 1258 315
+ \setchemicaltextelement CRZ 1323 947
+ %
+ \setchemicalcircsegment C -36 36 590 72 475 -345
+ \setchemicalcircsegment CC -72 0 590 72 182 -561
+ %
+ \setchemicaltextelement ZN 468 350
+ \setchemicaltextelement RN 860 625 % 1.25 Z
+ \setchemicaltextelement RTN 785 728 % .12 / 103 75
+ \setchemicaltextelement RBN 935 522
+ %
+ \def\processchemical[##1##2##3##4]%
+ {\processaction
+ [##1##2##3##4]
+ [ FRONT????=>{\executechemicalFIVEFRONT[#1]},
+ PB:##4=>\beginchemicalpicture{##4},
+ PE????=>\endchemicalpicture,
+ ROT##4=>\processchemicalrotation{##4},
+ SUB##4=>\processchemicalsubstitute{##4},
+ ADJ##4=>\processchemicaldistance{##4},
+ MOV##4=>\processchemicaltranslate{##4},
+ -RZ##4=>\processchemicaltextelement{-RZ}{##4}{#1}{5}
+ {b,l,t,r,r, l,t,r,r,l, t,r,r,l,l, r,b,l,t,r},
+ +RZ##4=>\processchemicaltextelement{+RZ}{##4}{#1}{5}
+ {l,t,r,r,b, t,r,r,l,l, r,r,l,l,r, b,l,l,r,r},
+ -SB##4=>\processchemicallinesegment{-SB}{##4},
+ +SB##4=>\processchemicallinesegment{+SB}{##4},
+ -SR##4=>\processchemicallinesegment{-SR}{##4},
+ +SR##4=>\processchemicallinesegment{+SR}{##4},
+ -RD##4=>\processchemicaldashedlinesegment{-R}{##4},
+ +RD##4=>\processchemicaldashedlinesegment{+R}{##4},
+ -RB##4=>\processchemicaldeltalinesegment{-R}{##4},
+ +RB##4=>\processchemicaldeltalinesegment{+R}{##4},
+ CRZ##4=>\processchemicaltextelement{CRZ}{##4}{#1}{0}{},
+ RTN##4=>\processchemicaltextconstant{RTN}{##4}{\chemicaltextelementnumber}{0},
+ RTT##4=>\processchemicaltextelement{RTN}{##4}{#1}{0}{},
+ RBN##4=>\processchemicaltextconstant{RBN}{##4}{\chemicaltextelementnumber}{0},
+ RBT##4=>\processchemicaltextelement{RBN}{##4}{#1}{0}{},
+ -SS##4=>\processchemicallinesegment{-SS}{##4},
+ +SS##4=>\processchemicallinesegment{+SS}{##4},
+ CCD##4=>\processchemicaldottsegment{CC}{##4},
+ SS##3##4=>\processchemicallinesegment{SS}{##3##4},
+ RD##3##4=>\processchemicaldashedlinesegment{R}{##3##4},
+ RB##3##4=>\processchemicaldeltalinesegment{R}{##3##4},
+ ZN##3##4=>\processchemicaltextconstant{ZN}{##3##4}{\chemicaltextelementnumber}{0},
+ ZT##3##4=>\processchemicaltextelement{ZN}{##3##4}{#1}{0}{},
+ RN##3##4=>\processchemicaltextconstant{RN}{##3##4}{\chemicaltextelementnumber}{0},
+ RT##3##4=>\processchemicaltextelement{RN}{##3##4}{#1}{0}{},
+ AU##3##4=>\processchemicaluparrowsegment{A}{##3##4},
+ AD##3##4=>\processchemicaldownarrowsegment{A}{##3##4},
+ CC##3##4=>\processchemicalcircsegment{CC}{##3##4},
+ CD##3##4=>\processchemicaldottsegment{C}{##3##4},
+ DB##3##4=>\processchemicallinesegment{DB}{##3##4},
+ DR##3##4=>\processchemicallinesegment{DR}{##3##4},
+ EB##3##4=>\processchemicallinesegment{EB}{##3##4},
+ ER##3##4=>\processchemicallinesegment{ER}{##3##4},
+ RZ##3##4=>\processchemicaltextelement{RZ}{##3##4}{#1}{5}
+ {l,l,r,r,r, l,r,r,b,l, r,r,b,l,t, r,l,l,t,r},
+ SB##3##4=>\processchemicallinesegment{SB}{##3##4},
+ SR##3##4=>\processchemicallinesegment{SR}{##3##4},
+ -R##3##4=>\processchemicallinesegment{-R}{##3##4},
+ +R##3##4=>\processchemicallinesegment{+R}{##3##4},
+ B##2##3##4=>\processchemicallinesegment{B}{##2##3##4},
+ C##2##3##4=>\processchemicalcircsegment{C}{##2##3##4},
+ R##2##3##4=>\processchemicallinesegment{R}{##2##3##4},
+ S##2##3##4=>\processchemicallinesegment{S}{##2##3##4},
+ Z##2##3##4=>\processchemicaltextelement{Z}{##2##3##4}{#1}{0}{},
+ \s!unknown=>\unknownchemical{##1##2##3##4}]}}
+
+\def\executechemicalSIX[#1]%
+ {\setchemicalname SIX
+ %
+ \setchemicalmaximum 6
+ \setchemicalsubstitute 1375
+ \setchemicaldistance 866
+ %
+ \setchemicalrotation 1 1 0 0 -1 -1 0 0 1
+ \setchemicalrotation 2 0.5 -0.866 -0.866 -0.5 -0.5 0.866 0.866 0.5
+ \setchemicalrotation 3 -0.5 -0.866 -0.866 0.5 0.5 0.866 0.866 -0.5
+ \setchemicalrotation 4 -1 0 0 1 1 0 0 -1
+ \setchemicalrotation 5 -0.5 0.866 0.866 0.5 0.5 -0.866 -0.866 -0.5
+ \setchemicalrotation 6 0.5 0.866 0.866 -0.5 -0.5 -0.866 -0.866 0.5
+ %
+ \setchemicalangle 1 0 90 180 270
+ \setchemicalangle 2 60 150 240 330
+ \setchemicalangle 3 120 210 300 30
+ \setchemicalangle 4 180 270 0 90
+ \setchemicalangle 5 240 330 60 150
+ \setchemicalangle 6 300 30 120 210
+ %
+ \setchemicaltranslate 1 -1732 0
+ \setchemicaltranslate 2 -866 1500
+ \setchemicaltranslate 3 866 1500
+ \setchemicaltranslate 4 1732 0
+ \setchemicaltranslate 5 866 -1500
+ \setchemicaltranslate 6 -866 -1500
+ %
+ \setchemicallinesegment A 1386 500 1386 -500
+ \setchemicallinesegment S 0 1000 866 -500
+ \setchemicallinesegment SS 125 783 741 -283
+ \setchemicallinesegment -SS 0 1000 741 -283
+ \setchemicallinesegment +SS 125 783 866 -500
+ \setchemicallinesegment B 866 500 866 -500
+ \setchemicallinesegment SB 866 240 866 -240
+ \setchemicallinesegment -SB 866 240 866 -500
+ \setchemicallinesegment +SB 866 500 866 -240
+ \setchemicallinesegment DB1 816 240 816 -240
+ \setchemicallinesegment DB2 916 240 916 -240
+ \setchemicallinesegment EB 726 340 726 -340
+ \setchemicallinesegment R 866 500 1299 750
+ \setchemicallinesegment -R 866 500 866 1000
+ \setchemicallinesegment +R 866 500 1299 250
+ \setchemicallinesegment ER1 841 543 1274 793
+ \setchemicallinesegment ER2 891 457 1324 707
+ \setchemicallinesegment SR 1091 630 1299 750
+ \setchemicallinesegment -SR 866 740 866 1000
+ \setchemicallinesegment +SR 1091 370 1299 250
+ \setchemicallinesegment DR1 1066 673 1274 793
+ \setchemicallinesegment DR2 1116 588 1324 707
+ \setchemicallinesegment MID1 0 1000 -150 200
+ \setchemicallinesegment MID2 0 -1000 -150 -200
+ \setchemicallinesegment MIDS1 0 1000 -180 0
+ \setchemicallinesegment MIDS2 0 -1000 -180 0
+ %
+ \setchemicalcircsegment C -30 30 700 60 600 -346
+ \setchemicalcircsegment CC -60 0 700 60 350 -606
+ %
+ \setchemicaltextelement Z 866 500
+ \setchemicaltextelement RZ 1386 800
+ \setchemicaltextelement -RZ 866 1100
+ \setchemicaltextelement +RZ 1386 200
+ \setchemicaltextelement CRZ 1524 880
+ \setchemicaltextelement MIDZ -150 0
+ %
+ \setchemicaltextelement ZN 589 350
+ \setchemicaltextelement RN 1083 625 % 1.25 Z
+ \setchemicaltextelement RTN 1008 755 % .12 / 130 75
+ \setchemicaltextelement RBN 1158 495
+ %
+ \def\processchemical[##1##2##3##4##5]%
+ {\processaction
+ [##1##2##3##4##5]
+ [ FRONT????=>{\executechemicalSIXFRONT[#1]},
+ MID????=>\processchemicallinesegment{MID}{1????},
+ MIDS????=>\processchemicallinesegment{MIDS}{1????},
+ MIDZ????=>\processchemicaltextelement{MIDZ}{1????}{#1}{0}{},
+ PB:##4##5=>\beginchemicalpicture{##4##5},
+ PE????=>\endchemicalpicture,
+ ROT##4##5=>\processchemicalrotation{##4##5},
+ SUB##4##5=>\processchemicalsubstitute{##4##5},
+ ADJ##4##5=>\processchemicaldistance{##4##5},
+ MOV##4##5=>\processchemicaltranslate{##4##5},
+ -RZ##4##5=>\processchemicaltextelement{-RZ}{##4##5}{#1}{6}
+ {b,l,l,t,r,r, l,l,r,r,r,l, t,r,r,b,l,l, r,r,l,l,l,r},
+ +RZ##4##5=>\processchemicaltextelement{+RZ}{##4##5}{#1}{6}
+ {l,t,r,r,b,l, r,r,r,l,l,l, r,b,l,l,t,r, l,l,l,r,r,r},
+ -SB##4##5=>\processchemicallinesegment{-SB}{##4##5},
+ +SB##4##5=>\processchemicallinesegment{+SB}{##4##5},
+ -SR##4##5=>\processchemicallinesegment{-SR}{##4##5},
+ +SR##4##5=>\processchemicallinesegment{+SR}{##4##5},
+ -RD##4##5=>\processchemicaldashedlinesegment{-R}{##4##5},
+ +RD##4##5=>\processchemicaldashedlinesegment{+R}{##4##5},
+ -RB##4##5=>\processchemicaldeltalinesegment{-R}{##4##5},
+ +RB##4##5=>\processchemicaldeltalinesegment{+R}{##4##5},
+ CRZ##4##5=>\processchemicaltextelement{CRZ}{##4##5}{#1}{0}{},
+ -SS##4##5=>\processchemicallinesegment{-SS}{##4##5},
+ +SS##4##5=>\processchemicallinesegment{+SS}{##4##5},
+ CCD##4##5=>\processchemicaldottsegment{CC}{##4##5},
+RTN##4##5=>\processchemicaltextconstant{RTN}{##4##5}{\chemicaltextelementnumber}{0},
+RTT##4##5=>\processchemicaltextelement{RTN}{##4##5}{#1}{0}{},
+RBN##4##5=>\processchemicaltextconstant{RBN}{##4##5}{\chemicaltextelementnumber}{0},
+RBT##4##5=>\processchemicaltextelement{RBN}{##4##5}{#1}{0}{},
+ SS##3##4##5=>\processchemicallinesegment{SS}{##3##4##5},
+ RD##3##4##5=>\processchemicaldashedlinesegment{R}{##3##4##5},
+ RB##3##4##5=>\processchemicaldeltalinesegment{R}{##3##4##5},
+ ZN##3##4##5=>\processchemicaltextconstant{ZN}{##3##4##5}{\chemicaltextelementnumber}{0},
+ ZT##3##4##5=>\processchemicaltextelement{ZN}{##3##4##5}{#1}{0}{},
+RN##3##4##5=>\processchemicaltextconstant{RN}{##3##4##5}{\chemicaltextelementnumber}{0},
+RT##3##4##5=>\processchemicaltextelement{RN}{##3##4##5}{#1}{0}{},
+ AU##3##4##5=>\processchemicaluparrowsegment{A}{##3##4##5},
+ AD##3##4##5=>\processchemicaldownarrowsegment{A}{##3##4##5},
+ CD##3##4##5=>\processchemicaldottsegment{C}{##3##4##5},
+ CC##3##4##5=>\processchemicalcircsegment{CC}{##3##4##5},
+ DB##3##4##5=>\processchemicallinesegment{DB}{##3##4##5},
+ EB##3##4##5=>\processchemicallinesegment{EB}{##3##4##5},
+ ER##3##4##5=>\processchemicallinesegment{ER}{##3##4##5},
+ RZ##3##4##5=>\processchemicaltextelement{RZ}{##3##4##5}{#1}{6}
+ {l,l,t,r,r,b, l,r,r,r,l,l, r,r,b,l,l,t, r,l,l,l,r,r},
+ SB##3##4##5=>\processchemicallinesegment{SB}{##3##4##5},
+ SR##3##4##5=>\processchemicallinesegment{SR}{##3##4##5},
+ DR##3##4##5=>\processchemicallinesegment{DR}{##3##4##5},
+ -R##3##4##5=>\processchemicallinesegment{-R}{##3##4##5},
+ +R##3##4##5=>\processchemicallinesegment{+R}{##3##4##5},
+ B##2##3##4##5=>\processchemicallinesegment{B}{##2##3##4##5},
+ C##2##3##4##5=>\processchemicalcircsegment{C}{##2##3##4##5},
+ R##2##3##4##5=>\processchemicallinesegment{R}{##2##3##4##5},
+ S##2##3##4##5=>\processchemicallinesegment{S}{##2##3##4##5},
+ Z##2##3##4##5=>\processchemicaltextelement{Z}{##2##3##4##5}{#1}{0}{},
+ \s!unknown=>\unknownchemical{##1##2##3##4##5}]}}
+
+\def\executechemicalSEVEN[#1]% incomplete !
+ {\setchemicalname SEVEN
+ %
+ \setchemicalmaximum 7
+ \setchemicalsubstitute -
+ \setchemicaldistance 1038
+ %
+ \setchemicalrotation 1 .623 .782 - - - - - -
+ \setchemicalrotation 2 -.223 .975 - - - - - -
+ \setchemicalrotation 3 -.901 .434 - - - - - -
+ \setchemicalrotation 4 -.901 -.434 - - - - - -
+ \setchemicalrotation 5 -.223 -.975 - - - - - -
+ \setchemicalrotation 6 .623 -.782 - - - - - -
+ \setchemicalrotation 7 1 0 - - - - - -
+ %
+ \setchemicalangle 1 0 - - -
+ \setchemicalangle 2 51.429 - - -
+ \setchemicalangle 3 102.857 - - -
+ \setchemicalangle 4 154.286 - - -
+ \setchemicalangle 5 205.714 - - -
+ \setchemicalangle 6 257.143 - - -
+ \setchemicalangle 7 308.571 - - -
+ %
+ \setchemicaltranslate 1 - -
+ \setchemicaltranslate 2 - -
+ \setchemicaltranslate 3 - -
+ \setchemicaltranslate 4 - -
+ \setchemicaltranslate 5 - -
+ \setchemicaltranslate 6 - -
+ \setchemicaltranslate 7 - -
+ %
+ \setchemicallinesegment B 1038 500 1038 -500
+ \setchemicallinesegment SB 1038 240 1038 -240
+ \setchemicallinesegment -SB 1038 240 1038 -500
+ \setchemicallinesegment +SB 1038 500 1038 -240
+ %
+ \setchemicaltextelement Z 1038 500
+ %
+ \def\processchemical[##1##2##3##4##5]%
+ {\processaction
+ [##1##2##3##4##5]
+ [ PB:##4##5=>\beginchemicalpicture{##4##5},
+ PE????=>\endchemicalpicture,
+ %ROT##4##5=>\processchemicalrotation{##4},
+ %SUB##4##5=>\processchemicalsubstitute{##4##5},
+ %ADJ##4##5=>\processchemicaldistance{##4##5},
+ %MOV##4##5=>\processchemicaltranslate{##4##5},
+ -SB##4##5=>\processchemicallinesegment{-SB}{##4##5},
+ +SB##4##5=>\processchemicallinesegment{+SB}{##4##5},
+ SB##3##4##5=>\processchemicallinesegment{SB}{##3##4##5},
+ B##2##3##4##5=>\processchemicallinesegment{B}{##2##3##4##5},
+ Z##2##3##4##5=>\processchemicaltextelement{Z}{##2##3##4##5}{#1}{0}{},
+ \s!unknown=>\unknownchemical{##1##2##3##4##5}]}}
+
+\def\executechemicalEIGHT[#1]% incomplete !
+ {\setchemicalname EIGHT
+ %
+ \setchemicalmaximum 8
+ %\setchemicalsubstitute 1307
+ \setchemicaldistance 1207
+ %
+ \setchemicalrotation 1 .707 .707 - - - - - -
+ \setchemicalrotation 2 0 1 - - - - - -
+ \setchemicalrotation 3 -.707 .707 - - - - - -
+ \setchemicalrotation 4 -1 0 - - - - - -
+ \setchemicalrotation 5 -.707 -.707 - - - - - -
+ \setchemicalrotation 6 0 -1 - - - - - -
+ \setchemicalrotation 7 .707 -.707 - - - - - -
+ \setchemicalrotation 8 1 0 - - - - - -
+ %
+ \setchemicalangle 1 45 - - -
+ \setchemicalangle 2 90 - - -
+ \setchemicalangle 3 135 - - -
+ \setchemicalangle 4 180 - - -
+ \setchemicalangle 5 225 - - -
+ \setchemicalangle 6 270 - - -
+ \setchemicalangle 7 315 - - -
+ \setchemicalangle 8 0 - - -
+ %
+ \setchemicaltranslate 1 -2414 0
+ \setchemicaltranslate 2 -1706 1706
+ \setchemicaltranslate 3 0 2414
+ \setchemicaltranslate 4 1706 1706
+ \setchemicaltranslate 5 2414 0
+ \setchemicaltranslate 6 1706 -1706
+ \setchemicaltranslate 7 0 -2414
+ \setchemicaltranslate 8 -1706 -1706
+ %
+ \setchemicallinesegment B 1207 500 1207 -500
+ \setchemicallinesegment SB 1207 240 1207 -240
+ \setchemicallinesegment -SB 1207 240 1207 -500
+ \setchemicallinesegment +SB 1207 500 1207 -240
+ %
+ \setchemicaltextelement Z 1207 500
+ %
+ \def\processchemical[##1##2##3##4##5]%
+ {\processaction
+ [##1##2##3##4##5]
+ [ PB:##4##5=>\beginchemicalpicture{##4##5},
+ PE????=>\endchemicalpicture,
+ %SUB##4##5=>\processchemicalsubstitute{##4##5},
+ ADJ##4##5=>\processchemicaldistance{##4##5},
+ MOV##4##5=>\processchemicaltranslate{##4##5},
+ -SB##4##5=>\processchemicallinesegment{-SB}{##4##5},
+ +SB##4##5=>\processchemicallinesegment{+SB}{##4##5},
+ SB##3##4##5=>\processchemicallinesegment{SB}{##3##4##5},
+ B##2##3##4##5=>\processchemicallinesegment{B}{##2##3##4##5},
+ Z##2##3##4##5=>\processchemicaltextelement{Z}{##2##3##4##5}{#1}{0}{},
+ \s!unknown=>\unknownchemical{##1##2##3##4##5}]}}
+
+\def\executechemicalFIVEFRONT[#1]%
+ {\executechemicalFIVE[]%
+ %
+ \setchemicalname FIVEFRONT
+ %
+ \setchemicallinesegment -R 688 500 688 100
+ \setchemicallinesegment +R 688 500 688 900
+ %
+ \setchemicaltextelement -RZ 0 -1300
+ \setchemicaltextelement +RZ 0 1300
+ %
+ \def\processchemical[##1##2##3##4]%
+ {\def\chemicalrotation{2}%
+ \processaction
+ [##1##2##3##4]
+ [ -RZ##4=>\processchemicalunrotatedtextelement{Z}{-RZ}{##4}{#1}{5}
+ {,,,,, t,t,t,t,t},
+ +RZ##4=>\processchemicalunrotatedtextelement{Z}{+RZ}{##4}{#1}{5}
+ {,,,,, b,b,b,b,b},
+ -SB##4=>\processchemicallinesegment{-SB}{##4},
+ +SB##4=>\processchemicallinesegment{+SB}{##4},
+ SB##3##4=>\processchemicallinesegment{SB}{##3##4},
+ -R##3##4=>\processchemicalunrotatedlinesegment{t}{-R}{##3##4},
+ +R##3##4=>\processchemicalunrotatedlinesegment{b}{+R}{##3##4},
+ BB##3##4=>\processchemicalzlinesegment{B}{##3##4},
+ R##2##3##4=>\processchemicalunrotatedlinesegment{t}{-R}{##2##3##4}%
+ \processchemicalunrotatedlinesegment{b}{+R}{##2##3##4},
+ B##2##3##4=>\processchemicallinesegment{B}{##2##3##4},
+ Z##2##3##4=>\processchemicaltextelement{Z}{##2##3##4}{#1}{0}{},
+ \s!unknown=>\unknownchemical{##1##2##3##4}]}}
+
+\def\executechemicalSIXFRONT[#1]%
+ {\executechemicalSIX[]%
+ %
+ \setchemicalname SIXFRONT
+ %
+ \setchemicallinesegment -R 866 500 866 100
+ \setchemicallinesegment +R 866 500 866 900
+ %
+ \setchemicaltextelement -RZ 0 -1300
+ \setchemicaltextelement +RZ 0 1300
+ %
+ \def\processchemical[##1##2##3##4]%
+ {\def\chemicalrotation{2}%
+ \processaction
+ [##1##2##3##4]
+ [ -RZ##4=>\processchemicalunrotatedtextelement{Z}{-RZ}{##4}{#1}{6}
+ {,,,,,, t,t,t,t,t,t},
+ +RZ##4=>\processchemicalunrotatedtextelement{Z}{+RZ}{##4}{#1}{6}
+ {,,,,,, b,b,b,b,b,b},
+ -SB##4=>\processchemicallinesegment{-SB}{##4},
+ +SB##4=>\processchemicallinesegment{+SB}{##4},
+ SB##3##4=>\processchemicallinesegment{SB}{##3##4},
+ -R##3##4=>\processchemicalunrotatedlinesegment{t}{-R}{##3##4},
+ +R##3##4=>\processchemicalunrotatedlinesegment{b}{+R}{##3##4},
+ BB##3##4=>\processchemicalzlinesegment{B}{##3##4},
+ R##2##3##4=>\processchemicalunrotatedlinesegment{t}{-R}{##2##3##4}%
+ \processchemicalunrotatedlinesegment{b}{+R}{##2##3##4},
+ B##2##3##4=>\processchemicallinesegment{B}{##2##3##4},
+ Z##2##3##4=>\processchemicaltextelement{Z}{##2##3##4}{#1}{0}{},
+ \s!unknown=>\unknownchemical{##1##2##3##4}]}}
+
+% 1 : 0
+% 2 : -115
+% 3* : -195
+% 3 : -165
+% 4 : -245
+
+\def\executechemicalCARBON[#1]%
+ {\setchemicalname CARBON
+ %
+ \setchemicalmaximum 4
+ \setchemicaldistance 0
+ \setchemicalsubstitute 0
+ %
+ \setchemicalrotation 1 1 0 0 -1 -1 0 0 1
+ \setchemicalrotation 2 -0.423 -0.906 -0.906 0.423 0.423 0.906 0.906 -0.423
+ \setchemicalrotation 3 -0.966 -0.259 -0.259 0.966 0.966 0.259 0.259 -0.966
+ \setchemicalrotation 3* -0.966 0.259 0.259 0.966 0.966 -0.259 -0.259 -0.966
+ \setchemicalrotation 4 -0.423 0.906 0.906 0.423 0.423 -0.906 -0.906 -0.423
+ %
+ \setchemicalangle 1 0 90 180 270
+ \setchemicalangle 2 115 205 295 25
+ \setchemicalangle 3 165 255 345 75
+ \setchemicalangle 3* 195 285 15 105
+ \setchemicalangle 4 245 335 65 155
+ %
+ \setchemicaltranslate 1 -1500 0
+ \setchemicaltranslate 2 0 1500
+ \setchemicaltranslate 3 1500 0
+ \setchemicaltranslate 4 0 -1500
+ %
+ \setchemicallinesegment B1 500 0 1000 0
+ \setchemicallinesegment B2 300 0 1000 0
+ \setchemicallinesegment B3 500 0 1000 0
+ \setchemicallinesegment B4 300 0 1000 0
+ %
+ \setchemicaltextelement Z 1100 0
+ %
+ \setchemicalcircsegment C 0 360 500 360 0 -500
+ %
+ \def\processchemical[##1##2##3##4##5]%
+ {\processaction
+ [##1##2##3##4##5]
+ [ MIR????=>\setchemicalmirror{3},
+ -MIR????=>\resetchemicalmirror{3},
+ *MIR????=>\togglechemicalmirror{3},
+ CB????=>\processlocalchemicals{B,C,Z},
+ C????=>\processchemicalcircsegment{C}{1????},
+ -ROT##5=>\reversechemical{ROT}{##5}{3,4,1,2},
+ ROT##4##5=>\processchemicalrotation{##4##5},
+ MOV##4##5=>\processchemicaltranslate{##4##5},
+ CB##3##4##5=>\processlocalchemicals
+ {ROT##3,C,B,Z2..4,
+ MOV##3,*MIR,-ROT##3,C,B,Z2..4},
+ B##2##3##4##5=>\processprivatechemicallinesegment{B}{##2##3##4##5},
+ Z##2##3##4##5=>\processchemicaltextelement{Z}{##2##3##4##5}{#1}{4}
+ {l,t,r,b, t,r,b,l, r,b,l,t, b,l,t,r},
+ \s!unknown=>\unknownchemical{##1##2##3##4##5}]}}
+
+% 1: 45 2: -90 3: -225
+% 4: -45 5: -135 6: -270
+
+\newif\ifNEWMANstagger \NEWMANstaggertrue
+
+\def\executechemicalNEWMANSTAGGER%
+ {\NEWMANstaggertrue\executechemicalNEWMAN}
+
+\def\executechemicalNEWMANECLIPSE%
+ {\NEWMANstaggerfalse\executechemicalNEWMAN}
+
+\def\executechemicalNEWMAN[#1]%
+ {\setchemicalname NEWMAN
+ %
+ \setchemicalmaximum 6
+ \setchemicaldistance 0
+ \setchemicalsubstitute 0
+ %
+ \ifNEWMANstagger
+ \setchemicalrotation 1 0.707 0.707 0.707 -0.707 -0.707 -0.707 -0.707 0.707
+ \setchemicalrotation 2 0 -1 -1 0 0 1 1 0
+ \setchemicalrotation 3 -0.707 0.707 0.707 0.707 0.707 -0.707 -0.707 -0.707
+ \else
+ \setchemicalrotation 1 .866 -.5 -.5 -.866 -.866 .5 .5 .866
+ \setchemicalrotation 2 -.259 .966 .966 .259 .259 -.966 -.966 -.259
+ \setchemicalrotation 3 -.5 -.866 -.866 .5 .5 .866 .866 -.5
+ \fi
+ \setchemicalrotation 4 0.707 -0.707 -0.707 -0.707 -0.707 0.707 0.707 0.707
+ \setchemicalrotation 5 -0.707 -0.707 -0.707 0.707 0.707 0.707 0.707 -0.707
+ \setchemicalrotation 6 0 1 1 0 0 -1 -1 0
+ %
+ \ifNEWMANstagger
+ \setchemicalangle 1 315 45 135 225
+ \setchemicalangle 2 90 180 270 0
+ \setchemicalangle 3 225 315 45 135
+ \else
+ \setchemicalangle 1 30 120 210 300
+ \setchemicalangle 2 255 345 75 165
+ \setchemicalangle 3 120 210 300 30
+ \fi
+ \setchemicalangle 4 45 135 225 315
+ \setchemicalangle 5 135 225 315 45
+ \setchemicalangle 6 270 0 90 180
+ %
+ \setchemicaltranslate 1 -1500 0
+ \setchemicaltranslate 2 0 1500
+ \setchemicaltranslate 3 1500 0
+ \setchemicaltranslate 4 0 -1500
+ %
+ \setchemicallinesegment B1 0 0 1000 0
+ \setchemicallinesegment B2 0 0 1000 0
+ \setchemicallinesegment B3 0 0 1000 0
+ \setchemicallinesegment B4 500 0 1000 0
+ \setchemicallinesegment B5 500 0 1000 0
+ \setchemicallinesegment B6 500 0 1000 0
+ %
+ \setchemicaltextelement Z 1100 0
+ %
+ \setchemicalcircsegment C 0 360 500 360 0 -500
+ %
+ \def\processchemical[##1##2##3##4]%
+ {\processaction
+ [##1##2##3##4]
+ [STAGGER????=>{\executechemicalNEWMANSTAGGER[#1]},
+ ECLIPSE????=>{\executechemicalNEWMANECLIPSE[#1]},
+ B????=>\processlocalchemicals{B1..6},
+ CB????=>\processlocalchemicals{B1..6,C,Z1..6},
+ C????=>\processchemicalcircsegment{C}{1????},
+ ROT##4=>\processchemicalrotation{##4},
+ MOV##4=>\processchemicaltranslate{##4},
+ B##2##3##4=>\processprivatechemicallinesegment{B}{##2##3##4},
+ Z##2##3##4=>\ifNEWMANstagger
+ \processchemicaltextelement{Z}{##2##3##4}{#1}{6}
+ {l,t,r,l,r,b, l,r,l,r,r,l, r,b,l,r,l,t, r,l,r,l,l,r}%
+ \else
+ \processchemicaltextelement{Z}{##2##3##4}{#1}{6}
+ {l,r,t,t,r,b, t,b,r,r,b,l, r,l,b,b,l,t, b,t,l,l,t,r}%
+ \fi,
+ \s!unknown=>\unknownchemical{##1##2##3##4}]}}
+
+\def\executechemicalCHAIR[#1]% smaller
+ {\setchemicalname CHAIR
+ %
+ \setchemicalmaximum 6
+ %
+ \setchemicallinesegment B1 1600 800 2800 -800
+ \setchemicallinesegment B2 2800 -800 800 0
+ \setchemicallinesegment B3 800 0 -1600 -800
+ \setchemicallinesegment B4 -1600 -800 -2800 800
+ \setchemicallinesegment B5 -2800 800 -800 0
+ \setchemicallinesegment B6 -800 0 1600 800
+ %
+ \setchemicallinesegment +R1 1600 800 1600 1600
+ \setchemicallinesegment +R2 2800 -800 2800 -1600
+ \setchemicallinesegment +R3 800 0 800 800
+ \setchemicallinesegment +R4 -1600 -800 -1600 -1600
+ \setchemicallinesegment +R5 -2800 800 -2800 1600
+ \setchemicallinesegment +R6 -800 0 -800 -800
+ %
+ \setchemicallinesegment -R1 1600 800 2350 522 % 750 278
+ \setchemicallinesegment -R2 2800 -800 3493 -400
+ \setchemicallinesegment -R3 800 0 1329 -600 % 528 600
+ \setchemicallinesegment -R4 -1600 -800 -2350 -522 % 750 278
+ \setchemicallinesegment -R5 -2800 800 -3493 400
+ \setchemicallinesegment -R6 -800 0 -1329 600 % 528 600
+ %
+ \setchemicaltextelement +RZ1 1600 1800
+ \setchemicaltextelement +RZ2 2800 -1800
+ \setchemicaltextelement +RZ3 800 1000
+ \setchemicaltextelement +RZ4 -1600 -1800
+ \setchemicaltextelement +RZ5 -2800 1800
+ \setchemicaltextelement +RZ6 -800 -1000
+ %
+ \setchemicaltextelement -RZ1 2538 453 % 200 lang
+ \setchemicaltextelement -RZ2 3666 -300
+ \setchemicaltextelement -RZ3 1460 -750
+ \setchemicaltextelement -RZ4 -2538 -453
+ \setchemicaltextelement -RZ5 -3666 300
+ \setchemicaltextelement -RZ6 -1460 750
+ %
+ \def\processchemical[##1##2##3##4##5]%
+ {\def\chemicalrotation{1}%
+ \processaction
+ [##1##2##3##4##5]
+ [ B????=>\processlocalchemicals{B1,B2,B3,B4,B5,B6},
+ -R????=>\processlocalchemicals{-R1,-R2,-R3,-R4,-R5,-R6},
+ +R????=>\processlocalchemicals{+R1,+R2,+R3,+R4,+R5,+R6},
+ B##2????=>{\getchemicallinesegment[0][B##2]},
+ -RZ##4????=>{\getchemicalfixedtextelement[-RZ##4][1][##4][l,l,tc,r,r,bc][#1]},
+ +RZ##4????=>{\getchemicalfixedtextelement[+RZ##4][1][##4][c][#1]},
+ -R##3????=>{\getchemicallinesegment[0][-R##3]},
+ +R##3????=>{\getchemicallinesegment[0][+R##3]},
+ \s!unknown=>\unknownchemical{##1##2##3##4##5}]}}
+
+\def\executechemicalarrow#1#2[#3]%
+ {\dogetcommalistelement1\from#3\to\toptext
+ \dogetcommalistelement2\from#3\to\bottext
+ \def\dochemicaltext##1%
+ {\dosetsubscripts%
+ $\@@dochemicalstyle{\@@localchemicalformat\strut##1}$%
+ \doresetsubscripts}%
+ \doifelse\@@chemicallocation\v!intext
+ {#1{\dochemicaltext\toptext}}%
+ {\setbox\chemicalsymbols=\hbox
+ {\box\chemicalsymbols
+ \vbox{\halign{##\cr
+ \hbox to 3em{\hss\dochemicaltext{\toptext}\hss}\cr
+ #2%
+ \hbox to 3em{\hss\dochemicaltext{\bottext}\hss}\cr}}}}}
+
+\def\executechemicalGIVES
+ {\executechemicalarrow
+ {\chemicalsinglepicturearrow}% nodig
+ {\rightarrowfill\cr}}
+
+\def\executechemicalEQUILIBRIUM
+ {\executechemicalarrow
+ {\chemicaldoublepicturearrow}% nodig
+ {\rightarrowfill\cr\leftarrowfill\cr}}
+
+\def\executechemicalMESOMERIC
+ {\executechemicalarrow
+ {\chemicalsinglepicturearrow}% nodig
+ {$\leftarrow\hskip-1em$\rightarrowfill\cr}}
+
+\def\executechemicalsign#1[#2]%
+ {\doifelse\@@chemicallocation\v!intext
+ {\dosetsubscripts
+ $\@@dochemicalstyle{\@@localchemicalformat#1}$%
+ \doresetsubscripts}
+ {\setbox\chemicalsymbols\hbox
+ {\box\chemicalsymbols
+ \dosetsubscripts
+ $\@@dochemicalstyle{\@@localchemicalformat#1}$%
+ \doresetsubscripts}}}
+
+\def\executechemicalPLUS
+ {\executechemicalsign{+}}
+
+\def\executechemicalMINUS
+ {\executechemicalsign{-}}
+
+\def\executechemicalEQUAL
+ {\executechemicalsign{=}}
+
+\def\executechemicalSPACE[#1]%
+ {\doifnot\@@chemicallocation\v!intext
+ {\setbox\chemicalsymbols\hbox
+ {\box\chemicalsymbols
+ \quad}}}
+
+\def\executechemicalCHEM[#1]%
+ {\doifnot\@@chemicallocation\v!intext
+ {\setbox\chemicalsymbols\hbox
+ {\box\chemicalsymbols
+ $\@@dochemicalstyle{\@@localchemicalformat#1}$}}}
+
+\def\executechemicalTEXT[#1]%
+ {\doifnot\@@chemicallocation\v!intext
+ {\setbox\chemicalsymbols\hbox
+ {\box\chemicalsymbols#1}}}
+
+%\def\executechemicalLOW[#1]%
+% {\setlowsubscripts}
+%
+%\def\executechemicalHIGH[#1]%
+% {\sethighsubscripts}
+
+\def\putchemicalrule#1#2#3#4%
+ {\ifcase\chemicaldrawingmode
+ \putrule from {#1} {#2} to {#3} {#4}
+ \or
+ \psline(#1,#2)(#3,#4)%
+ \or
+ \bgroup
+ \!!counta=#1\!!countb=#2\!!countc=#3\!!countd=#4\relax
+ \global\MPdrawingdonetrue
+ \setchemicalattributes
+ \startMPdrawing
+ x1 := \MPdivten[\the\!!counta]u ;
+ y1 := \MPdivten[\the\!!countb]u ;
+ x2 := \MPdivten[\the\!!countc]u ;
+ y2 := \MPdivten[\the\!!countd]u ;
+ draw z1--z2 ;
+ \stopMPdrawing
+ \egroup
+ \fi}
+
+\def\executechemicalcomplex#1%
+ {\bgroup
+ \putchemicalrule {0} {-\@@chemicalbottom} {0} {\@@chemicaltop}%
+ \putchemicalrule {0} {\@@chemicaltop} {#1150} {\@@chemicaltop}%
+ \putchemicalrule {0} {-\@@chemicalbottom} {#1150} {-\@@chemicalbottom}%
+ \egroup}
+
+\def\executechemicalOPENCOMPLEX[#1]%
+ {\executechemicalcomplex+\ignorespaces
+ \executechemicalSPACE[]}
+
+\def\executechemicalCLOSECOMPLEX[#1]%
+ {\executechemicalSPACE[]%
+ \executechemicalcomplex-\ignorespaces}
+
+% nog niet door midden as!
+
+\def\executechemicalverticalsymbol#1#2%
+ {\executechemicalTEXT
+ [$\left#1\relax
+ \dimen0=\@@chemicalunit
+ \scratchcounter=\@@chemicaltop
+ \advance\scratchcounter by \@@chemicalbottom
+ \dimen0=\scratchcounter\dimen0
+ \vcenter to \dimen0{}
+ \dimen2=\@@chemicalunit
+ \dimen2=\@@chemicalright\dimen0
+ \vcenter{\leftskip1em\hsize\dimen2\relax\strut#2\strut}%
+ \right.$]}%
+
+\def\executechemicalUPARROW[#1]%
+ {\executechemicalverticalsymbol\uparrow{#1}}
+
+\def\executechemicalDOWNARROW[#1]%
+ {\executechemicalverticalsymbol\downarrow{#1}}
+
+\def\executechemicalUPDOWNARROW[#1]%
+ {\executechemicalverticalsymbol\updownarrow{#1}}
+
+\let\setchemicalattributes\relax
+
+\setupchemical
+ [\c!width=0,
+ \c!height=0,
+ \c!left=0,
+ \c!right=0,
+ \c!top=0,
+ \c!bottom=0,
+ \c!bodyfont=\the\bodyfontsize,
+ \c!resolution=\outputresolution,
+ \c!scale=\v!medium,
+ \c!size=\v!medium,
+ \c!textsize=\v!big,
+ \c!frame=\v!off,
+ \c!axis=\v!off,
+ \c!state=\v!start,
+ \c!style=\rm,
+ \c!location=,
+ \c!option=,
+ \c!offset=LOW,
+ \c!alternative=1,
+ \c!color=,
+ \c!rulethickness=,
+ \c!rulecolor=,
+ \c!factor=1]
+
+% Tijdelijk plaatsen we deze extra macro's hier.
+%
+% mathontop: \mtop {} {}
+% textontop: \ttop {} {}
+
+\def\putontop#1#2%
+ {\vbox
+ {\halign
+ {\strut\hss##\hss\cr
+ #1\cr
+ #2\cr}}}
+
+\def\ttop#1#2%
+ {\putontop{\tx#1}{#2}}
+
+\def\mtop#1#2%
+ {\vbox
+ {\offinterlineskip
+ \halign
+ {\hss##\hss\cr
+ $\scriptscriptstyle#1$\cr
+ \noalign{\vskip.5ex}%
+ $#2$\cr}}}
+
+\def\ctop#1#2%
+ {\vbox
+ {\offinterlineskip
+ \halign
+ {\hss##\hss\cr
+ $\@@dochemicalstyle{\@@localchemicalformat\scriptscriptstyle#1}$\cr
+ \noalign{\vskip.5ex}%
+ $\@@dochemicalstyle{\@@localchemicalformat#2}$\cr}}}
+
+%D Here are a couple of goodies:
+%D
+%D \startitemize
+%D \item styles hooked into \CONTEXT\ style mechanism
+%D \item support for color and rulethickness (mp mode only)
+%D \item position tracking
+%D \stopitemize
+
+\let\@@chemicalrulecolor\empty
+\let\@@chemicalcolor \empty
+
+\def\setchemicalattributes
+ {\scratchdimen\@@chemicalrulethickness
+ \def\chemicalattributes
+ {withpen pencircle scaled \the\scratchdimen\space
+ withcolor }%
+ \doifelsenothing\@@chemicalrulecolor
+ {\edef\chemicalattributes{\chemicalattributes black}}
+ {\edef\chemicalattributes{\chemicalattributes \MPcolor{\@@chemicalrulecolor}}}%
+ \startMPdrawing
+ drawoptions (\chemicalattributes) ;
+ \stopMPdrawing}
+
+\def\@@dochemicalcolor
+ {\doifsomething\@@chemicalcolor{\color[\@@chemicalcolor]}}
+
+\def\@@dochemicalstyle
+ {\doconvertfont\@@chemicalstyle}
+
+\setupchemical
+ [\c!rulethickness=\linewidth,
+ \c!rulecolor=,
+ \c!color=]
+
+\def\cpos#1#2%
+ {\iftrialtypesetting
+ #2%
+ \else
+ \bgroup
+ \globalpushmacro\dowithchemical
+ \gdef\dowithchemical##1{\hpos{#1}{##1}\globalpopmacro\dowithchemical}%
+ #2%
+ \egroup
+ \fi}
+
+\protect \endinput
+
+% \startchemical[axis=on,frame=yes]
+% \chemical[SIX,ROT2,B,R36,RZ6][CH_3]
+% \chemical[PB:RZ3,ONE,Z05,SB5,EP37,PE][O,H]
+% \stopchemical
+
+% \startchemical[size=big,scale=small,axis=on,frame=yes,factor=1.5]
+% \chemical[SIX,ROT2,B,R36,RZ6][CH_3]
+% \chemical[PB:RZ3,ONE,Z05,SB5,EP37,PE][O,H]
+% \stopchemical
+
+% \startchemical[size=big,scale=medium,axis=on,frame=yes,factor=1.5]
+% \chemical[SIX,ROT2,B,R36,RZ6][CH_3]
+% \chemical[PB:RZ3,ONE,Z05,SB5,EP37,PE][O,H]
+% \stopchemical
+
+% \startchemical[size=big,scale=big,axis=on,frame=yes,factor=1.5]
+% \chemical[SIX,ROT2,B,R36,RZ6][CH_3]
+% \chemical[PB:RZ3,ONE,Z05,SB5,EP37,PE][O,H]
+% \stopchemical
diff --git a/Master/texmf-dist/tex/context/base/pret-lua.lua b/Master/texmf-dist/tex/context/base/pret-lua.lua
new file mode 100644
index 00000000000..3faf8108142
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/pret-lua.lua
@@ -0,0 +1,260 @@
+if not modules then modules = { } end modules ['pret-lua'] = {
+ version = 1.001,
+ comment = "companion to buff-ver.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local utf = unicode.utf8
+
+local utfcharacters, utfvalues = string.utfcharacters, string.utfvalues
+local utfbyte, utffind = utf.byte, utf.find
+local byte, sub, find, match = string.byte, string.sub, string.find, string.match
+local texsprint, texwrite = tex.sprint, tex.write
+local ctxcatcodes = tex.ctxcatcodes
+
+local visualizer = buffers.newvisualizer("lua")
+
+visualizer.identifiers = { }
+
+-- borrowed from scite
+
+visualizer.identifiers.core = {
+ "and", "break", "do", "else", "elseif", "end", "false", "for", "function",
+ "if", "in", "local", "nil", "not", "or", "repeat", "return", "then",
+ "true", "until", "while"
+}
+
+visualizer.identifiers.base = {
+ "assert", "collectgarbage", "dofile", "error", "gcinfo", "loadfile",
+ "loadstring", "print", "rawget", "rawset", "require", "tonumber",
+ "tostring", "type", "unpack",
+}
+
+visualizer.identifiers.five = {
+ "_G", "getfenv", "getmetatable", "ipairs", "loadlib", "next", "pairs",
+ "pcall", "rawequal", "setfenv", "setmetatable", "xpcall", "string", "table",
+ "math", "coroutine", "io", "os", "debug", "load", "module", "select"
+}
+
+visualizer.identifiers.libs = {
+ -- coroutine
+ "coroutine.create", "coroutine.resume", "coroutine.status", "coroutine.wrap",
+ "coroutine.yield", "coroutine.running",
+ -- package
+ "package.cpath", "package.loaded", "package.loadlib", "package.path",
+ -- io
+ "io.close", "io.flush", "io.input", "io.lines", "io.open", "io.output",
+ "io.read", "io.tmpfile", "io.type", "io.write", "io.stdin", "io.stdout",
+ "io.stderr", "io.popen",
+ -- math
+ "math.abs", "math.acos", "math.asin", "math.atan", "math.atan2", "math.ceil",
+ "math.cos", "math.deg", "math.exp", "math.floor math.", "math.ldexp",
+ "math.log", "math.log10", "math.max", "math.min math.mod math.pi", "math.pow",
+ "math.rad", "math.random", "math.randomseed", "math.sin", "math.sqrt",
+ "math.tan", "math.cosh", "math.fmod", "math.modf", "math.sinh", "math.tanh",
+ "math.huge",
+ -- string
+ "string.byte", "string.char", "string.dump", "string.find", "string.len",
+ "string.lower", "string.rep", "string.sub", "string.upper", "string.format",
+ "string.gfind", "string.gsub", "string.gmatch", "string.match", "string.reverse",
+ -- table
+ "table.maxn", "table.concat", "table.foreach", "table.foreachi", "table.getn",
+ "table.sort", "table.insert", "table.remove", "table.setn",
+ -- os
+ "os.clock", "os.date", "os.difftime", "os.execute", "os.exit", "os.getenv",
+ "os.remove", "os.rename", "os.setlocale", "os.time", "os.tmpname",
+ -- package
+ "package.preload", "package.seeall"
+}
+
+local known_words = { }
+
+for k,v in pairs(visualizer.identifiers) do
+ for _,w in pairs(v) do
+ known_words[w] = k
+ end
+end
+
+visualizer.styles = {
+ core = "",
+ base = "\\sl ",
+ five = "\\sl ",
+ libs = "\\sl ",
+}
+
+local styles = visualizer.styles
+
+local colors = {
+ "prettyone",
+ "prettytwo",
+ "prettythree",
+ "prettyfour",
+}
+
+local states = {
+ ['"']=1, ["'"]=1, ["[["] = 1, ["]]"] = 1,
+ ['+']=1, ['-']=1, ['*']=1, ['/']=1, ['%']=1, ['^']=1,
+ ["("] = 3, [")"] = 3, ["["] = 3, ["]"] = 3,
+ ['--']=4,
+}
+
+local change_state, finish_state = buffers.change_state, buffers.finish_state
+
+local function flush_lua_word(state, word)
+ if word then
+ local id = known_words[word]
+ if id then
+ state = change_state(2,state)
+ if styles[id] then
+ texsprint(ctxcatcodes,styles[id])
+ end
+ texwrite(word)
+ state = finish_state(state)
+ else
+ state = finish_state(state) -- ?
+ texwrite(word)
+ end
+ else
+ state = finish_state(state)
+ end
+ return state
+end
+
+local incomment, inlongstring = false, false
+
+function visualizer.reset()
+ incomment, inlongstring = false, false -- needs to be hooked into flusher
+end
+
+-- we will also provide a proper parser based pretty printer although normaly
+-- a pretty printer should handle faulty code too (educational purposes)
+
+function visualizer.flush_line(str, nested)
+ local state, instr, inesc, word = 0, false, false, nil
+ buffers.currentcolors = colors
+ local code, comment = match(str,"^(.-)%-%-%[%[(.*)$")
+ if comment then
+ -- process the code and then flush the comment
+ elseif incomment then
+ comment, code = match(str,"^(.-)%]%](.*)$")
+ if comment then
+ -- flush the comment and then process the code
+ for c in utfcharacters(comment) do
+ if c == " " then texsprint(ctxcatcodes,"\\obs") else texwrite(c) end
+ end
+ state = change_state(states['--'], state)
+ texwrite("]]")
+ state = finish_state(state)
+ incomment = false
+ else
+ for c in utfcharacters(str) do
+ if c == " " then texsprint(ctxcatcodes,"\\obs") else texwrite(c) end
+ end
+ end
+ comment = nil
+ else
+ code = str
+ end
+ if code and code ~= "" then
+ local pre, post = match(code,"^(.-)%-%-(.*)$")
+ if pre then
+ code = pre
+ end
+ local p, s = nil, nil
+ for c in utfcharacters(code) do
+ if c == "[" then
+ if p == "[" then
+ inlongstring = true
+ state = change_state(states["[["],state)
+ texwrite(p,c)
+ state = finish_state(state)
+ p = nil
+ else
+ p = c
+ end
+ elseif c == "]" then
+ if p == "]" then
+ inlongstring = false
+ state = change_state(states["]]"],state)
+ texwrite(p,c)
+ state = finish_state(state)
+ p = nil
+ else
+ p = c
+ end
+ else
+ if p then
+ state = change_state(states[c],state)
+ texwrite(p,c)
+ state = finish_state(state)
+ p = nil
+ end
+ if c == " " then
+ if word then
+ state = flush_lua_word(state,word)
+ word = nil
+ end
+ texsprint(ctxcatcodes,"\\obs")
+ elseif inlongstring then
+ texwrite(c)
+ elseif instr then
+ if c == s then
+ if inesc then
+ texwrite(c)
+ inesc = false
+ else
+ state = change_state(states[c],state)
+ instr = false
+ texwrite(c)
+ state = finish_state(state)
+ end
+ s = nil
+ else
+ if c == "\\" then
+ inesc = not inesc
+ else
+ inesc = false
+ end
+ texwrite(c)
+ end
+ elseif c == '"' or c == "'" then
+ instr = true
+ state = change_state(states[c],state)
+ texwrite(c)
+ state = finish_state(state)
+ s = c
+ elseif find(c,"^[%a]$") then
+ state = finish_state(state)
+ if word then word = word .. c else word = c end
+ elseif word and (#word > 1) and find(c,"^[%d%.%_]$") then
+ if word then word = word .. c else word = c end
+ else
+ state = flush_lua_word(state,word)
+ word = nil
+ state = change_state(states[c],state)
+ texwrite(c)
+ instr = (c == '"')
+ end
+ end
+ end
+ state = flush_lua_word(state,word)
+ if post then
+ state = change_state(states['--'], state)
+ texwrite("--")
+ state = finish_state(state)
+ for c in utfcharacters(post) do
+ if c == " " then texsprint(ctxcatcodes,"\\obs") else texwrite(c) end
+ end
+ end
+ end
+ if comment then
+ incomment = true
+ state = change_state(states['--'], state)
+ texwrite("[[")
+ state = finish_state(state)
+ texwrite(comment)
+ end
+ state = finish_state(state)
+end
diff --git a/Master/texmf-dist/tex/context/base/verb-mp.lua b/Master/texmf-dist/tex/context/base/pret-mp.lua
index 90091a2a98c..939065230a2 100644
--- a/Master/texmf-dist/tex/context/base/verb-mp.lua
+++ b/Master/texmf-dist/tex/context/base/pret-mp.lua
@@ -1,16 +1,23 @@
--- filename : type-mp.lua
--- comment : companion to core-buf.tex
--- author : Hans Hagen, PRAGMA-ADE, Hasselt NL
--- copyright: PRAGMA ADE / ConTeXt Development Team
--- license : see context related readme files
+if not modules then modules = { } end modules ['pret-mp'] = {
+ version = 1.001,
+ comment = "companion to buff-ver.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local utf = unicode.utf8
-if not buffers then buffers = { } end
-if not buffers.visualizers then buffers.visualizers = { } end
-if not buffers.visualizers.mp then buffers.visualizers.mp = { } end
+local utfcharacters, utfvalues = string.utfcharacters, string.utfvalues
+local utfbyte, utffind = utf.byte, utf.find
+local texsprint, texwrite = tex.sprint, tex.write
+local ctxcatcodes = tex.ctxcatcodes
-buffers.visualizers.mp.identifiers = { }
+local visualizer = buffers.newvisualizer("mp")
-buffers.visualizers.mp.identifiers.primitives = {
+visualizer.identifiers = { }
+
+visualizer.identifiers.primitives = {
'charcode', 'day', 'linecap', 'linejoin', 'miterlimit', 'month', 'pausing',
'prologues', 'showstopping', 'time', 'tracingcapsules', 'tracingchoices',
'tracingcommands', 'tracingequations', 'tracinglostchars',
@@ -52,7 +59,7 @@ buffers.visualizers.mp.identifiers.primitives = {
'end', 'btex', 'etex', 'verbatimtex'
}
-buffers.visualizers.mp.identifiers.plain = {
+visualizer.identifiers.plain = {
'ahangle', 'ahlength', 'bboxmargin', 'defaultpen', 'defaultscale',
'labeloffset', 'background', 'currentpen', 'currentpicture', 'cuttings',
'defaultfont', 'extra_beginfig', 'extra_endfig',
@@ -79,7 +86,7 @@ buffers.visualizers.mp.identifiers.plain = {
'font_extra_space'
}
-buffers.visualizers.mp.identifiers.metafun = {
+visualizer.identifiers.metafun = {
'unitcircle', 'fulldiamond', 'unitdiamond',
'halfcircle', 'quartercircle',
'llcircle', 'lrcircle', 'urcircle', 'ulcircle',
@@ -87,6 +94,7 @@ buffers.visualizers.mp.identifiers.metafun = {
'lltriangle', 'lrtriangle', 'urtriangle', 'ultriangle',
'smoothed', 'cornered', 'superellipsed', 'randomized', 'squeezed',
'punked', 'curved', 'unspiked', 'simplified', 'blownup', 'stretched',
+ 'paralled', 'enlonged', 'shortened',
'enlarged', 'leftenlarged', 'topenlarged', 'rightenlarged', 'bottomenlarged',
'llenlarged', 'lrenlarged', 'urenlarged', 'ulenlarged',
'llmoved', 'lrmoved', 'urmoved', 'ulmoved',
@@ -100,68 +108,71 @@ buffers.visualizers.mp.identifiers.metafun = {
'loadfigure', 'externalfigure'
}
-buffers.visualizers.mp.words = { }
-
-for k,v in pairs(buffers.visualizers.mp.identifiers) do
- for _,w in pairs(v) do
- buffers.visualizers.mp.words[w] = k
- end
-end
-
-buffers.visualizers.mp.styles = { }
+visualizer.styles = {
+ primitives = "",
+ plain = "\\sl",
+ metafun = "\\sl",
+}
-buffers.visualizers.mp.styles.primitives = ""
-buffers.visualizers.mp.styles.plain = "\\sl "
-buffers.visualizers.mp.styles.metafun = "\\sl "
+local styles = visualizer.styles
-- btex .. etex
-buffers.visualizers.mp.colors = {
+local colors = {
"prettyone",
"prettytwo",
"prettythree",
"prettyfour",
}
-buffers.visualizers.mp.states = {
+local states = {
[';']=1, ['$']=1, ['@']=1, ['#']=1,
['\\']=2,
- ['(']=3, [')']=3, ['[']=3, [']']=3, [':']=3, ['=']=3, ['<']=3, ['>']=3,
+ ['(']=3, [')']=3, ['[']=3, [']']=3, [':']=3, ['=']=3, ['<']=3, ['>']=3, ['"']=3,
['-']=4, ['+']=4, ['/']=4, ['*']=4, ['|']=4, ['`']=4, ['!']=4, ['?']=4, ['^']=4, ['&']=4, ['%']=4,
['%']=4, ['.']=4, [',']=4
}
-function buffers.flush_mp_word(state, word, intex, result)
- if #word>0 then
+local known_words = { }
+
+for k,v in pairs(visualizer.identifiers) do
+ for _,w in pairs(v) do
+ known_words[w] = k
+ end
+end
+
+local change_state, finish_state = buffers.change_state, buffers.finish_state
+
+local function flush_mp_word(state, word, intex)
+ if word then
if intex then
if word == 'etex' then
- state = buffers.change_state(2, state, result)
- result[#result+1] = word
- state = buffers.finish_state(state,result)
+ state = change_state(2,state)
+ texwrite(word)
+ state = finish_state(state)
return state, false
else
- result[#result+1] = word
+ texwrite(word)
return state, true
end
else
- local id = buffers.visualizers.mp.words[word]
+ local id = known_words[word]
if id then
- state = buffers.change_state(2, state, result)
- if buffers.visualizers.mp.styles[id] then
- result[#result+1] = buffers.visualizers.mp.styles[id] .. word
- else
- result[#result+1] = word
+ state = change_state(2,state)
+ if styles[id] then
+ texsprint(ctxcatcodes,styles[id])
end
- state = buffers.finish_state(state,result)
+ texwrite(word)
+ state = finish_state(state)
return state, (word == 'btex') or (word == 'verbatimtex')
else
- state = buffers.finish_state(state,result)
- result[#result+1] = word
+ state = finish_state(state)
+ texwrite(word)
return state, intex
end
end
else
- state = buffers.finish_state(state,result)
+ state = finish_state(state)
return state, intex
end
end
@@ -171,64 +182,55 @@ end
-- to be considered: visualizer => table [result, instr, incomment, word]
-function buffers.visualizers.mp.flush_line_(str,nested)
- local result, state, word = { }, 0, ""
- local instr, intex, incomment = false, false, false
- local byte, find = utf.byte, utf.find
- local finish, change = buffers.finish_state, buffers.change_state
- buffers.currentcolors = buffers.visualizers.mp.colors
- for c in string.utfcharacters(str) do
- if incomment then
- result[#result+1] = buffers.escaped_chr(c)
+function visualizer.flush_line(str,nested)
+ local state, word, instr, intex, incomment = 0, nil, false, false, false
+ buffers.currentcolors = colors
+ for c in utfcharacters(str) do
+ if c == " " then
+ state, intex = flush_mp_word(state, word, intex)
+ word = nil
+ texsprint(ctxcatcodes,"\\obs")
+ elseif incomment then
+ texwrite(c)
elseif c == '%' then
- state = change(buffers.visualizers.mp.states[c], state, result)
+ state = change_state(states[c], state)
incomment = true
- result[#result+1] = "\\char" .. byte(c) .. " "
- state = finish(state,result)
+ texwrite(c)
+ state = finish_state(state)
elseif instr then
if c == '"' then
- state = change(buffers.visualizers.mp.states[c], state, result)
+ state = change_state(states[c],state)
instr = false
- result[#result+1] = "\\char" .. byte(c) .. " "
- state = finish(state,result)
- elseif find(c,"^[%a%d]$") then
- result[#result+1] = c
+ texwrite(c)
+ state = finish_state(state)
else
- result[#result+1] = "\\char" .. byte(c) .. " "
+ texwrite(c)
end
- elseif c == " " then
- state, intex = buffers.flush_mp_word_(state, word, intex, result)
- word = ""
- result[#result+1] = "\\obs "
elseif intex then
- if find(c,"^[%a]$") then
- word = word .. c
+ if utffind(c,"^[%a]$") then
+ if word then word = word .. c else word = c end
else
- state, intex = buffers.flush_mp_word_(state, word, intex, result)
- word = ""
+ state, intex = flush_mp_word(state, word, intex)
+ word = nil
if intex then
- if find(c,"^[%d]$") then
- result[#result+1] = c
- else
- result[#result+1] = "\\char" .. byte(c) .. " "
- end
+ texwrite(c)
else
- state = change(buffers.visualizers.mp.states[c], state, result)
- result[#result+1] = "\\char" .. byte(c) .. " "
+ state = change_state(states[c], state)
+ texwrite(c)
end
end
- elseif find(c,"^[%a]$") then
- state = finish(state,result)
- word = word .. c
+ elseif utffind(c,"^[%a]$") then
+ state = finish_state(state)
+ if word then word = word .. c else word = c end
else
- state, intex = buffers.flush_mp_word_(state, word, intex, result)
- word = ""
- state = change(buffers.visualizers.mp.states[c], state, result)
- result[#result+1] = "\\char" .. byte(c) .. " "
+ state, intex = flush_mp_word(state, word, intex)
+ word = nil
+ state = change_state(states[c], state)
+ texwrite(c)
+ state = finish_state(state)
instr = (c == '"')
end
end
- state, intex = buffers.flush_mp_word_(state, word, intex, result)
- state = finish(state,result)
- buffers.flush_result(result,false)
+ state, intex = flush_mp_word(state, word, intex)
+ state = finish_state(state)
end
diff --git a/Master/texmf-dist/tex/context/base/pret-tex.lua b/Master/texmf-dist/tex/context/base/pret-tex.lua
new file mode 100644
index 00000000000..080075eb81a
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/pret-tex.lua
@@ -0,0 +1,85 @@
+if not modules then modules = { } end modules ['pret-tex'] = {
+ version = 1.001,
+ comment = "companion to buff-ver.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local utf = unicode.utf8
+
+local utfcharacters, utfvalues = string.utfcharacters, string.utfvalues
+local utfbyte, utffind = utf.byte, utf.find
+local rep = string.rep
+local texsprint, texwrite = tex.sprint, tex.write
+local ctxcatcodes, vrbcatcodes = tex.ctxcatcodes, tex.vrbcatcodes
+
+local visualizer = buffers.newvisualizer("tex")
+
+local colors = {
+ "prettytwo",
+ "prettyone",
+ "prettythree",
+ "prettyfour"
+}
+
+local states = {
+ ['$']=2, ['{']=2, ['}']=2,
+ ['[']=3, [']']=3, ['(']=3, [')']=3, ['<']=3, ['>']=3, ['#']=3, ['=']=3, ['"']=3,
+ ['/']=4, ['^']=4, ['_']=4, ['-']=4, ['&']=4, ['+']=4, ["'"]=4, ['`']=4, ['|']=4, ['%']=4
+}
+
+-- some day I'll make an lpeg
+
+local change_state, finish_state = buffers.change_state, buffers.finish_state
+
+local chardata = characters.data
+local is_letter = characters.is_letter
+
+function visualizer.flush_line(str,nested)
+ local state, first = 0, false
+ buffers.currentcolors = colors
+ for c in utfcharacters(str) do
+ if c == " " then
+ state = finish_state(state)
+ texsprint(ctxcatcodes,"\\obs")
+ first = false
+ elseif c == "\t" then
+ state = finish_state(state)
+ texsprint(ctxcatcodes,"\\obs")
+ if buffers.visualizers.enabletab then
+ texsprint(ctxcatcodes,rep("\\obs ",i%buffers.visualizers.tablength))
+ end
+ first = false
+ elseif first then
+ state = 1
+ texwrite(c)
+ if not utffind(c,"^[%a%!%?%@]$") then
+ state = finish_state(state)
+ end
+ first = false
+ elseif state == 1 then
+ if utffind(c,"^[%a%!%?%@]$") then
+ texwrite(c)
+ first = false
+ elseif c == "\\" then
+ state = change_state(1, state)
+ texwrite(c)
+ first = true
+ else
+ state = change_state(states[c], state)
+ texwrite(c)
+ first = false
+ end
+ elseif c == "\\" then
+ first = true
+ state = change_state(1, state)
+ texwrite(c)
+ else
+ state = change_state(states[c], state)
+ texwrite(c)
+ first = false
+ end
+ end
+ state = finish_state(state)
+end
diff --git a/Master/texmf-dist/tex/context/base/prop-ini.tex b/Master/texmf-dist/tex/context/base/prop-ini.mkii
index 084842fdd37..035a40c9337 100644
--- a/Master/texmf-dist/tex/context/base/prop-ini.tex
+++ b/Master/texmf-dist/tex/context/base/prop-ini.mkii
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Property Macros / initialization}
+\writestatus{loading}{ConTeXt Property Macros / Initialization}
%D Welcome to the third alternative of this yet undocumented module,
%D which means that there is no public interface yet!
@@ -28,7 +28,7 @@
% more efficient:
-\def\currentproperty {\csname\??py:c:\number\propertylevel\endcsname} % string
+\def\currentproperty {\csname\??py:c:\number\propertylevel\endcsname} % string
\def\currentpropertytype {\csname\??py\currentproperty\c!type\endcsname}
\def\docheckproperty % watch the s instead of e
@@ -73,14 +73,11 @@
\def\defineproperty
{\dotripleempty\dodefineproperty}
-\def\defineproperty
- {\dotripleempty\dodefineproperty}
-
\def\dodefineproperty[#1]%
- {\ifundefined{\??py#1\c!global}%
- \expandafter\dododefineproperty
- \else
+ {\ifcsname\??py#1\c!global\endcsname
\expandafter\nododefineproperty
+ \else
+ \expandafter\dododefineproperty
\fi[#1]}
% due to initializations/counters, definitions are always global
@@ -92,10 +89,12 @@
\def\dododefineproperty[#1][#2][#3]% global ! ! !
{\getgparameters[\??py#1][\c!global=\v!no,\c!type=#2,\c!method=\v!none,#3]% global ! ! ! !
- \expandafter\newcount\csname\??py:l:#2\endcsname % current level
- \expandafter\newcount\csname\??py:p:#2\endcsname % previous level
- \global\csname\??py:p:#2\endcsname\minusone
- \global\expandafter\expandafter\let\csname\??py:c:0\endcsname\empty
+ \ifcsname\??py:l:#2\endcsname \else
+ \expandafter\newcount\csname\??py:l:#2\endcsname % current level
+ \expandafter\newcount\csname\??py:p:#2\endcsname % previous level
+ \global\csname\??py:p:#2\endcsname\minusone
+ \global\expandafter\expandafter\let\csname\??py:c:0\endcsname\empty
+ \fi
\letgvalue{\??py\s!check#1}\docheckproperty
\doifelsevalue{\??py#1\c!method}\v!command
{\doifelsevalue{\??py#1\c!global}\v!yes
diff --git a/Master/texmf-dist/tex/context/base/prop-ini.mkiv b/Master/texmf-dist/tex/context/base/prop-ini.mkiv
new file mode 100644
index 00000000000..c5df391a76c
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/prop-ini.mkiv
@@ -0,0 +1,150 @@
+%D \module
+%D [ file=prop-ini,
+%D version=2003.04.20,
+%D title=\CONTEXT\ Property Macros,
+%D subtitle=Initialization,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Property Macros / Initialization}
+
+%D Welcome to the third alternative of this yet undocumented module,
+%D which means that there is no public interface yet!
+
+\unprotect
+
+\newcount\propertylevel
+
+\def\currentpropertylevel {\csname\??py:l:\currentpropertytype\endcsname} % counter
+\def\previouspropertylevel{\csname\??py:p:\currentpropertytype\endcsname} % counter
+
+\def\currentproperty {\csname\??py:c:\number\currentpropertylevel \endcsname} % string
+\def\previousproperty {\csname\??py:c:\number\previouspropertylevel\endcsname} % string
+
+% more efficient:
+
+\def\currentproperty {\csname\??py:c:\number\propertylevel\endcsname} % string
+\def\currentpropertytype {\csname\??py\currentproperty\c!type\endcsname}
+
+\def\docheckproperty % watch the s instead of e
+ {\csname\s!check\currentpropertytype property\endcsname
+ \global\expandafter\let\csname\??py\s!check\currentproperty\endcsname\empty}
+
+\def\checkproperty[#1]%
+ {\bgroup
+ \def\currentproperty{#1}%
+ \csname\??py\s!check\currentproperty\endcsname
+ \egroup}
+
+\unexpanded\def\property[#1]%
+ {\groupedcommand{\dostartproperty{#1}}\dostopproperty}
+
+\unexpanded\def\startproperty[#1]%
+ {\dostartproperty{#1}}
+
+\unexpanded\def\stopproperty
+ {\dostopproperty}
+
+\def\dostartgproperty
+ {\begingroup\dostartproperty}
+
+\def\dostopgproperty
+ {\dostopproperty\endgroup}
+
+\def\dostartproperty#1% evt pack: {current}{level}{
+ {\global\advance\propertylevel\plusone
+ \@EAEAEA\xdef\currentproperty{#1}%
+ \global\advance\previouspropertylevel\plusone
+ \global\advance\currentpropertylevel\plusone
+ \csname\??py\s!check\currentproperty\endcsname
+ \csname\s!start\currentpropertytype\s!property\endcsname}
+
+\def\dostopproperty
+ {\csname\s!stop\currentpropertytype\s!property\endcsname
+ \global\advance\currentpropertylevel\minusone
+ \global\advance\previouspropertylevel\minusone
+ \global\advance\propertylevel\minusone}
+
+\def\defineproperty
+ {\dotripleempty\dodefineproperty}
+
+\def\dodefineproperty[#1]%
+ {\ifcsname\??py#1\c!global\endcsname
+ \expandafter\nododefineproperty
+ \else
+ \expandafter\dododefineproperty
+ \fi[#1]}
+
+% due to initializations/counters, definitions are always global
+%
+% global : yes : ungrouped
+% no : grouped
+% method : command : define commands
+% none : no commands
+
+\def\dododefineproperty[#1][#2][#3]% global ! ! !
+ {\getgparameters[\??py#1][\c!global=\v!no,\c!type=#2,\c!method=\v!none,#3]% global ! ! ! !
+ \ifcsname\??py:l:#2\endcsname \else
+ \expandafter\newcount\csname\??py:l:#2\endcsname % current level
+ \expandafter\newcount\csname\??py:p:#2\endcsname % previous level
+ \global\csname\??py:p:#2\endcsname\minusone
+ \global\expandafter\let\csname\??py:c:0\endcsname\empty
+ \fi
+ \letgvalue{\??py\s!check#1}\docheckproperty
+ \doifelsevalue{\??py#1\c!method}\v!command
+ {\doifelsevalue{\??py#1\c!global}\v!yes
+ {\unexpanded\setgvalue{\e!start#1}{\dostartproperty{#1}}%
+ \unexpanded\setgvalue{\e!stop #1}{\dostopproperty}}%
+ {\unexpanded\setgvalue{\e!start#1}{\dostartgproperty{#1}}%
+ \unexpanded\setgvalue{\e!stop #1}{\dostopgproperty}}}%
+ {\doifelsevalue{\??py#1\c!global}\v!yes
+ {\unexpanded\setgvalue{\e!start#2}[##1]{\dostartproperty{##1}}%
+ \unexpanded\setgvalue{\e!stop #2}{\dostopproperty}}%
+ {\unexpanded\setgvalue{\e!start#2}[##1]{\dostartgproperty{##1}}%
+ \unexpanded\setgvalue{\e!stop #2}{\dostopgproperty}}}}
+
+\def\nododefineproperty[#1][#2][#3]%
+ {}
+
+\def\doifelseproperty#1{\doifdefinedelse{\??py#1\c!global}}
+
+\def\setupproperty
+ {\dodoubleempty\dosetupproperty}
+
+\def\dosetupproperty[#1][#2]% local
+ {\ifsecondargument
+ \getparameters[\??py#1][#2]%
+ \else
+ \getparameters[\??py][#1]%
+ \fi}
+
+\letvalue{\??py\s!empty}\empty
+
+% beware, normally \*parameter concerns the current one
+
+\def\propertyparameter#1#2% expands to #1 when not defined (see \define...)
+ {\csname\??py
+ \ifcsname\??py#1#2\endcsname
+ #1#2%
+ \else\ifcsname\??py\csname\??py#1\c!type\endcsname#2\endcsname
+ \csname\??py#1\c!type\endcsname#2%
+ \else
+ \s!empty
+ \fi\fi
+ \endcsname}
+
+\def\currentpropertyparameter % self and class
+ {\propertyparameter\currentproperty}
+
+\def\checkedpropertyparameter#1% only self
+ {\ifcsname\??py\currentproperty#1\endcsname\csname\??py\currentproperty#1\endcsname\fi}
+
+\def\definepropertyhandler#1{\setvalue{\??py*#1}}
+\def\propertyhandler #1{\getvalue{\??py*#1}}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/prop-lay.tex b/Master/texmf-dist/tex/context/base/prop-lay.mkii
index f29298976b4..aeec94bb296 100644
--- a/Master/texmf-dist/tex/context/base/prop-lay.tex
+++ b/Master/texmf-dist/tex/context/base/prop-lay.mkii
@@ -11,12 +11,15 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Property Macros / layers}
+\writestatus{loading}{ConTeXt Property Macros / Layers}
-%D Highly experimental, will probably change/evolve.
+%D Highly experimental, will probably change/evolve. Also, quite certainly
+%D we will no longer share code between mkii and mkiv.
\unprotect
+\let\currentlayerproperty\empty
+
\def\checklayerproperty
{\doifelse{\checkedpropertyparameter\v!printable\currentproperty}\v!no
{\def\printviewerlayer{0}}
@@ -28,8 +31,6 @@
{0}% type (1=frozen)
{\printviewerlayer}}% 1=printable
-\let\currentlayerproperty\empty
-
\def\startlayerproperty
{\let\currentlayerproperty\currentproperty
\dostartviewerlayer\currentproperty}
@@ -38,6 +39,13 @@
{\dostopviewerlayer
\let\currentlayerproperty\previousproperty}
+\def\domakelayerpropertylist
+ {\iflocation
+ \expandafter\domakeviewerlayerlist
+ \else
+ \expandafter\gobbleoneargument
+ \fi}
+
\setglobalsystemreference \rt!exec \v!HideLayer {hidelayer}
\setglobalsystemreference \rt!exec \v!VideLayer {videlayer}
\setglobalsystemreference \rt!exec \v!ToggleLayer {togglelayer}
@@ -46,15 +54,11 @@
\setexecutecommandcheck {videlayer} \domakelayerpropertylist
\setexecutecommandcheck {togglelayer} \domakelayerpropertylist
-\def\domakelayerpropertylist
- {\iflocation
- \expandafter\domakeviewerlayerlist
- \else
- \expandafter\gobbleoneargument
- \fi}
-
-% \defineproperty [debugging] [\s!layer] [title=debugging]
-% \defineproperty [navigation] [\s!layer] [title=navigation]
+% \currentlayerproperty
+% \checklayerproperty
+% \startlayerproperty
+% \stoplayerproperty
+% \domakelayerpropertylist
%D \starttext
%D
@@ -98,7 +102,26 @@
%D
%D \stoptext
-\fetchruntimecommand \showlayoutcomponents {\f!propprefix\s!run}
+%D Handy for tracing:
+
+\def\showlayoutcomponents
+ {\let\startlayoutcomponent\dostartlayoutcomponent
+ \let\stoplayoutcomponent \dostoplayoutcomponent}
+
+\def\dodefinelayoutcomponent#1#2%
+ {\doifelsenothing{#2}%
+ {\defineproperty[#1][\s!layer]}%
+ {\defineproperty[#1][\s!layer][\c!title=#2]}}
+
+\def\dostartlayoutcomponent#1#2%
+ {\doifelseproperty{#1}\donothing{\dodefinelayoutcomponent{#1}{#2}}%
+ \startproperty[#1]}
+
+\def\dostoplayoutcomponent
+ {\stopproperty}
+
+\let\startlayoutcomponent\gobbletwoarguments
+\let\stoplayoutcomponent \relax
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/prop-lay.mkiv b/Master/texmf-dist/tex/context/base/prop-lay.mkiv
new file mode 100644
index 00000000000..67e103ffb04
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/prop-lay.mkiv
@@ -0,0 +1,140 @@
+%D \module
+%D [ file=prop-lay,
+%D version=2003.04.20,
+%D title=\CONTEXT\ Property Macros,
+%D subtitle=Layers,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Property Macros / Layers}
+
+%D Highly experimental, will probably change/evolve. Also, quite certainly
+%D we will no longer share code between mkii and mkiv.
+
+% test, nesting is somewhat special with layers
+%
+% \defineproperty[hans][layer]
+% \defineproperty[ton] [layer]
+% \setupheadertexts[no layer]
+% 1\startproperty[hans]2\startproperty[ton]3\stopproperty4\stopproperty5
+
+\unprotect
+
+% will be redone ... no longer using property mechanism (less clashes)
+
+\let\currentviewerlayer\empty
+
+\appendtoks
+ \let\currentviewerlayer\empty
+\to \everypagebody
+
+\def\startlayerproperty
+ {\pushmacro\currentviewerlayer % grouped (used in interaction)
+ \let\currentlayerproperty\currentproperty % can be cross group
+ \dotriggerviewerlayer\currentlayerproperty}
+
+\def\stoplayerproperty
+ {\popmacro\currentviewerlayer % grouped (used in interaction)
+ \let\currentlayerproperty\previousproperty % can be cross group
+ \dotriggerviewerlayer\currentlayerproperty}
+
+\def\checklayerproperty % could be made more clever
+ {\registerviewerlayer\currentproperty\currentproperty
+ \ctxlua{backends.codeinjections.defineviewerlayer{
+ tag = "\currentproperty",
+ title = "\checkedpropertyparameter\c!title\currentproperty",
+ visible = "\checkedpropertyparameter\c!state\v!start",
+ kind = 0, % 1 == frozen
+ printable = "\checkedpropertyparameter\v!printable\v!yes" % v! looks wrong
+ }}}
+
+%D \starttext
+%D
+%D \setuppapersize[S4][S4]
+%D \setuplayout[middle]
+%D \setupcolors[state=start]
+%D \setupinteraction[state=start,color=,contrastcolor=]
+%D
+%D \defineproperty [L1] [layer] [title=layer 1]
+%D \defineproperty [L2] [layer] [title=layer 2]
+%D
+%D \button{HIDE L1}[HideLayer{L1}]
+%D \button{VIDE L1}[VideLayer{L1}]
+%D \button{TOGGLE L1}[ToggleLayer{L1}]
+%D
+%D \button{HIDE L2}[HideLayer{L2}]
+%D \button{VIDE L2}[VideLayer{L2}]
+%D \button{TOGGLE L2}[ToggleLayer{L2}]
+%D
+%D \noheaderandfooterlines \centerbox{\startoverlay
+%D {\definedfont[Mono at 150pt]%
+%D \startproperty[L1]\red TEST\stopproperty}
+%D {\definedfont[Mono at 150pt]%
+%D \startproperty[L2]\green TEST\stopproperty}
+%D \stopoverlay} \page
+%D
+%D \noheaderandfooterlines \centerbox{\startoverlay
+%D {\definedfont[Mono at 15pt]%
+%D \goto{\startproperty[L1]\red TEST\stopproperty}[CloseDocument]}
+%D {\definedfont[Mono at 15pt]%
+%D \goto{\startproperty[L2]\green TEST\stopproperty}[CloseDocument]}
+%D \stopoverlay} \page
+%D
+%D \startproperty[L1]
+%D level 1 \startproperty[L2]level 2 \stopproperty level 1
+%D \stopproperty
+%D
+%D \startproperty[L1]
+%D level 1 \page \startproperty[L2]level 2 \stopproperty level 1
+%D \stopproperty
+%D
+%D \stoptext
+
+\def\doinitializelayoutcomponent#1#2%
+ {\ctxlua{backends.codeinjections.defineviewerlayer{% this will move to the lua end i.e be merged with register
+ tag = "#1:#2",
+ title = "#1 #2",
+ visible = "\v!start",
+ kind = 0, % 1 == frozen
+ printable = "\v!yes"
+ }}%
+ \edef\layoutcomponentboxattribute{attr \viewerlayerattribute \ctxlua{tex.write(viewerlayers.register('#1:#2',true))}\relax}%
+ \expandafter\glet\csname\??ly>#1:#2\endcsname\layoutcomponentboxattribute}
+
+\def\dosetlayoutcomponentattribute#1#2% make this faster
+ {\expandafter\let\expandafter\layoutcomponentboxattribute\csname\??ly>#1:#2\endcsname
+ \ifx\layoutcomponentboxattribute\relax
+ \doinitializelayoutcomponent{#1}{#2}% get rid of { }
+ \fi}
+
+\def\doresetlayoutcomponentattribute
+ {\let\layoutcomponentboxattribute\empty}
+
+\let\setlayoutcomponentattribute \gobbletwoarguments
+\let\resetlayoutcomponentattribute\relax
+\let\layoutcomponentboxattribute \empty
+
+\def\showlayoutcomponents
+ {\ctxlua{viewerlayers.enabled=true}%
+ \let\setlayoutcomponentattribute \dosetlayoutcomponentattribute
+ \let\resetlayoutcomponentattribute\doresetlayoutcomponentattribute}
+
+\protect \endinput
+
+% \starttext
+% \showlayoutcomponents
+% \setupinteraction[state=start]
+% \setupheadertexts[{\goto{page 1}[page(2)]}]
+% test \setlayoutcomponentattribute{test}{aap}\hbox \layoutcomponentboxattribute \bgroup aap
+% \setlayoutcomponentattribute{test}{noot}\hbox \layoutcomponentboxattribute \bgroup noot
+% \setlayoutcomponentattribute{test}{mies}\hbox \layoutcomponentboxattribute \bgroup mies
+% \egroup noot \egroup aap \egroup
+% test \setlayoutcomponentattribute{test}{hans}\hbox \layoutcomponentboxattribute \bgroup aap \hbox{!} aap\egroup
+% test \page test \page
+% \stoptext
+
diff --git a/Master/texmf-dist/tex/context/base/prop-mis.mkii b/Master/texmf-dist/tex/context/base/prop-mis.mkii
index 3b372546dfe..d8e9ab17393 100644
--- a/Master/texmf-dist/tex/context/base/prop-mis.mkii
+++ b/Master/texmf-dist/tex/context/base/prop-mis.mkii
@@ -11,8 +11,41 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+\writestatus{loading}{ConTeXt Property Macros / Miscelaneous}
+
+%D This module contains some code that has been in use in some
+%D private modules (p-*). These features depend on the fact
+%D that pdftex writes the page content as one stream.
+
+%D EXPERIMENTAL
+
\unprotect
+%D Stream based overprint and knockout:
+
+\defineproperty[\v!overprint][\s!overprint] [\c!method=\v!command]
+\defineproperty[\v!knockout] [\s!overprint] [\c!method=\v!command]
+
+%D Negation.
+
+\defineproperty [\v!negative] [\s!negative] [\c!method=\v!command]
+\defineproperty [\v!positive] [\s!negative] [\c!method=\v!command]
+
+%D Special font effects.
+
+\setupproperty
+ [\s!effect]
+ [\c!rulethickness=\zeropoint,
+ \c!stretch=0]
+
+\defineproperty [\v!inner] [\s!effect] [\c!rulethickness=.25pt]
+\defineproperty [\v!outer] [\s!effect] [\c!rulethickness=.25pt]
+\defineproperty [\v!both] [\s!effect] [\c!rulethickness=.25pt]
+\defineproperty [\v!normal] [\s!effect]
+\defineproperty [\v!hidden] [\s!effect]
+
+\defineproperty [\v!stretch] [\s!effect] [\c!stretch=1]
+
%D Overprint cum suis.
\definepropertyhandler \v!overprint {\dostartoverprint}
@@ -110,6 +143,7 @@
\definepropertyhandler \v!outer {1}
\definepropertyhandler \v!both {2}
\definepropertyhandler \v!hidden {3}
+\definepropertyhandler \v!stretch{0}
\def\effectpropertydata#1%
{{\propertyhandler{#1}}%
diff --git a/Master/texmf-dist/tex/context/base/prop-mis.mkiv b/Master/texmf-dist/tex/context/base/prop-mis.mkiv
index ee292155efa..623b10f13bf 100644
--- a/Master/texmf-dist/tex/context/base/prop-mis.mkiv
+++ b/Master/texmf-dist/tex/context/base/prop-mis.mkiv
@@ -11,8 +11,41 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+\writestatus{loading}{ConTeXt Property Macros / Miscelaneous}
+
+%D This module contains some code that has been in use in some
+%D private modules (p-*). These features depend on the fact
+%D that pdftex writes the page content as one stream.
+
+%D EXPERIMENTAL
+
\unprotect
+%D Stream based overprint and knockout:
+
+\defineproperty[\v!overprint][\s!overprint] [\c!method=\v!command]
+\defineproperty[\v!knockout] [\s!overprint] [\c!method=\v!command]
+
+%D Negation.
+
+\defineproperty [\v!negative] [\s!negative] [\c!method=\v!command]
+\defineproperty [\v!positive] [\s!negative] [\c!method=\v!command]
+
+%D Special font effects.
+
+\setupproperty
+ [\s!effect]
+ [\c!rulethickness=\zeropoint,
+ \c!stretch=0]
+
+\defineproperty [\v!inner] [\s!effect] [\c!rulethickness=.25pt]
+\defineproperty [\v!outer] [\s!effect] [\c!rulethickness=.25pt]
+\defineproperty [\v!both] [\s!effect] [\c!rulethickness=.25pt]
+\defineproperty [\v!normal] [\s!effect]
+\defineproperty [\v!hidden] [\s!effect]
+
+\defineproperty [\v!stretch] [\s!effect] [\c!stretch=1]
+
%D Overprint cum suis.
\definepropertyhandler \v!overprint {\dotriggeroverprint\v!overprint}
@@ -39,6 +72,7 @@
\definepropertyhandler \v!outer {\mktriggereffect\v!outer }
\definepropertyhandler \v!both {\mktriggereffect\v!both }
\definepropertyhandler \v!hidden {\mktriggereffect\v!hidden}
+\definepropertyhandler \v!stretch{\mktriggereffect\v!normal}
\def\starteffectproperty{\mktriggereffect\currentproperty}
\def\stopeffectproperty {\mktriggereffect\v!normal }
diff --git a/Master/texmf-dist/tex/context/base/prop-mis.tex b/Master/texmf-dist/tex/context/base/prop-mis.tex
deleted file mode 100644
index d78e0c5848c..00000000000
--- a/Master/texmf-dist/tex/context/base/prop-mis.tex
+++ /dev/null
@@ -1,53 +0,0 @@
-%D \module
-%D [ file=prop-mis,
-%D version=2004.05.29, % some code moved from private modules
-%D title=\CONTEXT\ Property Macros,
-%D subtitle=Miscelaneous,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{Context Property Macros / initialization}
-
-%D This module contains some code that has been in use in some
-%D private modules (p-*). These features depend on the fact
-%D that pdftex writes the page content as one stream.
-
-%D EXPERIMENTAL
-
-\unprotect
-
-%D Stream based overprint and knockout:
-
-\defineproperty[\v!overprint][\s!overprint] [\c!method=\v!command]
-\defineproperty[\v!knockout] [\s!overprint] [\c!method=\v!command]
-
-%D Negation.
-
-\defineproperty [\v!negative] [\s!negative] [\c!method=\v!command]
-\defineproperty [\v!positive] [\s!negative] [\c!method=\v!command]
-
-%D Special font effects.
-
-\setupproperty
- [\s!effect]
- [\c!rulethickness=\zeropoint,
- \c!stretch=0]
-
-\defineproperty [\v!inner] [\s!effect] [\c!rulethickness=.25pt]
-\defineproperty [\v!outer] [\s!effect] [\c!rulethickness=.25pt]
-\defineproperty [\v!both] [\s!effect] [\c!rulethickness=.25pt]
-\defineproperty [\v!normal] [\s!effect]
-\defineproperty [\v!hidden] [\s!effect]
-
-\defineproperty [\v!stretch] [\s!effect] [\c!stretch=1]
-
-%D Plugin:
-
-\loadmarkfile{prop-mis}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/prop-run.tex b/Master/texmf-dist/tex/context/base/prop-run.tex
deleted file mode 100644
index 4eb853b42c2..00000000000
--- a/Master/texmf-dist/tex/context/base/prop-run.tex
+++ /dev/null
@@ -1,39 +0,0 @@
-%D \module
-%D [ file=prop-run,
-%D version=2003.04.20,
-%D title=\CONTEXT\ Property Macros,
-%D subtitle=Runtime Macros,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%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
-
-\doglobal\newif\ifshowcomponents
-
-\gdef\showlayoutcomponents
- {\showcomponentstrue}
-
-% By postponing loading of the next two macro's till their usage, we
-% don't put a burden on the system when they are not used.
-
-\gdef\startlayoutcomponent#1#2%
- {\ifshowcomponents
- \doifelseproperty{#1}
- \donothing
- {\doifelsenothing{#2}%
- {\defineproperty[#1][\s!layer]}% [\c!title=#1]
- {\defineproperty[#1][\s!layer][\c!title=#2]}}%
- \startproperty[#1]%
- \fi}
-
-\gdef\stoplayoutcomponent
- {\ifshowcomponents
- \stopproperty
- \fi}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/regi-8859-1.tex b/Master/texmf-dist/tex/context/base/regi-8859-1.mkii
index c291b029ad2..c291b029ad2 100644
--- a/Master/texmf-dist/tex/context/base/regi-8859-1.tex
+++ b/Master/texmf-dist/tex/context/base/regi-8859-1.mkii
diff --git a/Master/texmf-dist/tex/context/base/regi-8859-10.tex b/Master/texmf-dist/tex/context/base/regi-8859-10.mkii
index 79d74d952ac..79d74d952ac 100644
--- a/Master/texmf-dist/tex/context/base/regi-8859-10.tex
+++ b/Master/texmf-dist/tex/context/base/regi-8859-10.mkii
diff --git a/Master/texmf-dist/tex/context/base/regi-8859-13.tex b/Master/texmf-dist/tex/context/base/regi-8859-13.mkii
index a6dbe376f01..a6dbe376f01 100644
--- a/Master/texmf-dist/tex/context/base/regi-8859-13.tex
+++ b/Master/texmf-dist/tex/context/base/regi-8859-13.mkii
diff --git a/Master/texmf-dist/tex/context/base/regi-8859-15.tex b/Master/texmf-dist/tex/context/base/regi-8859-15.mkii
index cf788d3f3b3..cf788d3f3b3 100644
--- a/Master/texmf-dist/tex/context/base/regi-8859-15.tex
+++ b/Master/texmf-dist/tex/context/base/regi-8859-15.mkii
diff --git a/Master/texmf-dist/tex/context/base/regi-8859-16.tex b/Master/texmf-dist/tex/context/base/regi-8859-16.mkii
index 96f0a15d462..96f0a15d462 100644
--- a/Master/texmf-dist/tex/context/base/regi-8859-16.tex
+++ b/Master/texmf-dist/tex/context/base/regi-8859-16.mkii
diff --git a/Master/texmf-dist/tex/context/base/regi-8859-2.tex b/Master/texmf-dist/tex/context/base/regi-8859-2.mkii
index 81fe8419ed5..81fe8419ed5 100644
--- a/Master/texmf-dist/tex/context/base/regi-8859-2.tex
+++ b/Master/texmf-dist/tex/context/base/regi-8859-2.mkii
diff --git a/Master/texmf-dist/tex/context/base/regi-8859-3.tex b/Master/texmf-dist/tex/context/base/regi-8859-3.mkii
index dcb8be67f24..dcb8be67f24 100644
--- a/Master/texmf-dist/tex/context/base/regi-8859-3.tex
+++ b/Master/texmf-dist/tex/context/base/regi-8859-3.mkii
diff --git a/Master/texmf-dist/tex/context/base/regi-8859-4.tex b/Master/texmf-dist/tex/context/base/regi-8859-4.mkii
index 3ebe66a137e..3ebe66a137e 100644
--- a/Master/texmf-dist/tex/context/base/regi-8859-4.tex
+++ b/Master/texmf-dist/tex/context/base/regi-8859-4.mkii
diff --git a/Master/texmf-dist/tex/context/base/regi-8859-5.tex b/Master/texmf-dist/tex/context/base/regi-8859-5.mkii
index 531226433c1..531226433c1 100644
--- a/Master/texmf-dist/tex/context/base/regi-8859-5.tex
+++ b/Master/texmf-dist/tex/context/base/regi-8859-5.mkii
diff --git a/Master/texmf-dist/tex/context/base/regi-8859-7.tex b/Master/texmf-dist/tex/context/base/regi-8859-7.mkii
index 80259be6508..80259be6508 100644
--- a/Master/texmf-dist/tex/context/base/regi-8859-7.tex
+++ b/Master/texmf-dist/tex/context/base/regi-8859-7.mkii
diff --git a/Master/texmf-dist/tex/context/base/regi-8859-9.tex b/Master/texmf-dist/tex/context/base/regi-8859-9.mkii
index 8460d739b1c..8460d739b1c 100644
--- a/Master/texmf-dist/tex/context/base/regi-8859-9.tex
+++ b/Master/texmf-dist/tex/context/base/regi-8859-9.mkii
diff --git a/Master/texmf-dist/tex/context/base/regi-cp1250.tex b/Master/texmf-dist/tex/context/base/regi-cp1250.mkii
index b92eb5e31a2..b92eb5e31a2 100644
--- a/Master/texmf-dist/tex/context/base/regi-cp1250.tex
+++ b/Master/texmf-dist/tex/context/base/regi-cp1250.mkii
diff --git a/Master/texmf-dist/tex/context/base/regi-cp1251.tex b/Master/texmf-dist/tex/context/base/regi-cp1251.mkii
index 60f04170b31..60f04170b31 100644
--- a/Master/texmf-dist/tex/context/base/regi-cp1251.tex
+++ b/Master/texmf-dist/tex/context/base/regi-cp1251.mkii
diff --git a/Master/texmf-dist/tex/context/base/regi-cp1252.tex b/Master/texmf-dist/tex/context/base/regi-cp1252.mkii
index 9a54f178f3e..9a54f178f3e 100644
--- a/Master/texmf-dist/tex/context/base/regi-cp1252.tex
+++ b/Master/texmf-dist/tex/context/base/regi-cp1252.mkii
diff --git a/Master/texmf-dist/tex/context/base/regi-cp1253.tex b/Master/texmf-dist/tex/context/base/regi-cp1253.mkii
index 24ec45eac5e..24ec45eac5e 100644
--- a/Master/texmf-dist/tex/context/base/regi-cp1253.tex
+++ b/Master/texmf-dist/tex/context/base/regi-cp1253.mkii
diff --git a/Master/texmf-dist/tex/context/base/regi-cp1254.tex b/Master/texmf-dist/tex/context/base/regi-cp1254.mkii
index 4dd509b9d69..4dd509b9d69 100644
--- a/Master/texmf-dist/tex/context/base/regi-cp1254.tex
+++ b/Master/texmf-dist/tex/context/base/regi-cp1254.mkii
diff --git a/Master/texmf-dist/tex/context/base/regi-cp1257.tex b/Master/texmf-dist/tex/context/base/regi-cp1257.mkii
index 0790ef7344d..0790ef7344d 100644
--- a/Master/texmf-dist/tex/context/base/regi-cp1257.tex
+++ b/Master/texmf-dist/tex/context/base/regi-cp1257.mkii
diff --git a/Master/texmf-dist/tex/context/base/regi-cyp.tex b/Master/texmf-dist/tex/context/base/regi-cyp.mkii
index 7d134df50be..7d134df50be 100644
--- a/Master/texmf-dist/tex/context/base/regi-cyp.tex
+++ b/Master/texmf-dist/tex/context/base/regi-cyp.mkii
diff --git a/Master/texmf-dist/tex/context/base/regi-cyr.tex b/Master/texmf-dist/tex/context/base/regi-cyr.mkii
index 1e84b9cba87..1e84b9cba87 100644
--- a/Master/texmf-dist/tex/context/base/regi-cyr.tex
+++ b/Master/texmf-dist/tex/context/base/regi-cyr.mkii
diff --git a/Master/texmf-dist/tex/context/base/regi-def.tex b/Master/texmf-dist/tex/context/base/regi-def.mkii
index e26709c77e7..e26709c77e7 100644
--- a/Master/texmf-dist/tex/context/base/regi-def.tex
+++ b/Master/texmf-dist/tex/context/base/regi-def.mkii
diff --git a/Master/texmf-dist/tex/context/base/regi-ibm.tex b/Master/texmf-dist/tex/context/base/regi-ibm.mkii
index 1fad9545aa9..1fad9545aa9 100644
--- a/Master/texmf-dist/tex/context/base/regi-ibm.tex
+++ b/Master/texmf-dist/tex/context/base/regi-ibm.mkii
diff --git a/Master/texmf-dist/tex/context/base/regi-ini.lua b/Master/texmf-dist/tex/context/base/regi-ini.lua
index a12fd24a24f..04b93db35b0 100644
--- a/Master/texmf-dist/tex/context/base/regi-ini.lua
+++ b/Master/texmf-dist/tex/context/base/regi-ini.lua
@@ -6,57 +6,60 @@ if not modules then modules = { } end modules ['regi-ini'] = {
license = "see context related readme files"
}
+local utf = unicode.utf8
+local char, utfchar = string.char, utf.char
+local texsprint = tex.sprint
+
+local ctxcatcodes = tex.ctxcatcodes
+
--[[ldx--
<p>Regimes take care of converting the input characters into
<l n='utf'/> sequences. The conversion tables are loaded at
runtime.</p>
--ldx]]--
-regimes = regimes or { }
-regimes.data = regimes.data or { }
-regimes.utf = regimes.utf or { }
-regimes.context = regimes.context or { }
+regimes = regimes or { }
+regimes.data = regimes.data or { }
+regimes.utf = regimes.utf or { }
+regimes.synonyms = regimes.synonyms or { }
+
+storage.register("regimes/synonyms", regimes.synonyms, "regimes.synonyms")
-- setmetatable(regimes.data,_empty_table_)
-regimes.currentregime = ""
+regimes.currentregime = "utf"
--[[ldx--
<p>We will hook regime handling code into the input methods.</p>
--ldx]]--
-input = input or { }
-input.filters = input.filters or { }
-
function regimes.number(n)
if type(n) == "string" then return tonumber(n,16) else return n end
end
-function regimes.define(c) -- is this used at all?
- local r, u, s = c.regime, c.unicodeslot, c.slot
- regimes.data[r] = regimes.data[r] or { }
- if s then
- if u then
- regimes.data[r][regimes.number(s)] = regimes.number(u)
- else
- regimes.data[r][regimes.number(s)] = 0
- end
- else
- input.report(string.format("regi-ini: invalid regime code %s/%s", r, s))
- end
+function regimes.setsynonym(synonym,target)
+ regimes.synonyms[synonym] = target
+end
+
+function regimes.truename(regime)
+ texsprint(ctxcatcodes,(regime and regimes.synonyms[synonym] or regime) or regimes.currentregime)
end
function regimes.load(regime)
- environment.loadlucfile("regi-"..regime, 1.001)
- if regimes.data[regime] then
- regimes.utf[regime] = { }
- for k,v in pairs(regimes.data[regime]) do
- regimes.utf[regime][string.char(k)] = unicode.utf8.char(v)
+ regime = regimes.synonyms[regime] or regime
+ if not regimes.data[regime] then
+ environment.loadluafile("regi-"..regime, 1.001)
+ if regimes.data[regime] then
+ regimes.utf[regime] = { }
+ for k,v in pairs(regimes.data[regime]) do
+ regimes.utf[regime][char(k)] = utfchar(v)
+ end
end
end
end
function regimes.translate(line,regime)
+ regime = regimes.synonyms[regime] or regime
if regime and line then
local rur = regimes.utf[regime]
if rur then
@@ -67,44 +70,19 @@ function regimes.translate(line,regime)
end
function regimes.enable(regime)
+ regime = regimes.synonyms[regime] or regime
if regimes.data[regime] then
regimes.currentregime = regime
local translate = regimes.translate
- input.filters.dynamic_translator = function(s)
+ resolvers.install_text_filter('input',function(s)
return translate(s,regime)
- end
+ end)
else
regimes.disable()
end
end
function regimes.disable()
- regimes.currentregime = ""
- input.filters.dynamic_translator = nil
-end
-
-function input.filters.frozen_translator(regime)
- return function(s)
- return regimes.translate(s,regime)
- end
-end
-
---[[ldx--
-<p>The following code is rather <l n='context'/> specific.</p>
---ldx]]--
-
-function regimes.context.show(regime)
- local flush, tc = tex.sprint, tex.ctxcatcodes
- local r = regimes.data[regime]
- if r then
- flush(tc, "\\starttabulate[|rT|T|rT|lT|lT|lT|]")
- for k, v in ipairs(r) do
- flush(tc, string.format("\\NC %s\\NC\\getvalue{%s}\\NC %s\\NC %s\\NC %s\\NC %s\\NC\\NR", k,
- characters.contextname(v), characters.hexindex(v), characters.contextname(v),
- characters.category(v), characters.description(v)))
- end
- flush(tc, "\\stoptabulate")
- else
- flush(tc, "unknown regime " .. regime)
- end
+ regimes.currentregime = "utf"
+ resolvers.install_text_filter('input',nil)
end
diff --git a/Master/texmf-dist/tex/context/base/regi-ini.mkii b/Master/texmf-dist/tex/context/base/regi-ini.mkii
index 538db3bcf96..3cdfe2763c2 100644
--- a/Master/texmf-dist/tex/context/base/regi-ini.mkii
+++ b/Master/texmf-dist/tex/context/base/regi-ini.mkii
@@ -13,51 +13,25 @@
\unprotect
-%D Plugs into the common interface.
-
-\beginOLDTEX
-
- \def\mkloadregime#1%
- {\makeshortfilename[\truefilename{\f!regimeprefix#1}]%
- \startreadingfile
- \readsysfile\shortfilename
- {\showmessage\m!regimes2{#1}}
- {\showmessage\m!regimes3{#1}}%
- \stopreadingfile}
-
- \def\mkenableregime#1%
- {\the\executeifdefined{\@reg@#1}\emptytoks}
-
- \def\mkwalkregime#1%
- {\the\executeifdefined{\@reg@\currentregime}\emptytoks}
-
- \def\mkautosetregime#1#2%
- {\ifnum#2>127
- \expanded{\defineactivetoken #2 \@EA\noexpand\csname#1\endcsname}%
- \fi}
-
-\endOLDTEX
+%D Remark: regimes accumulate, so there is no explicit reset in
+%D mkii mode.
-\beginXETEX
+%D Variables.
- \let\mkloadregime \gobbleoneargument
- \let\mkenableregime \gobbleoneargument
- \let\mkwalkregime \gobbleoneargument
- \let\mkautosetregime\gobbletwoarguments
+\def\@reg@{@r@eg@} % regime prefix
- % \def\mkenableregime#1%
- % {\XeTeXinputencoding "#1"\relax}
+%D \macros
+%D {currentregime}
- \def\mkenableregime#1%
- {\doifelse{#1}{utf}%
- {\writestatus\m!regimes{mapping utf to utf-8}%
- \XeTeXinputencoding{utf-8}}
- {\XeTeXinputencoding{#1}}}
+\let\currentregime\empty
+\let\defaultregime\s!default
-\endXETEX
+%D Some low level inheritance stuff (mkii).
-%D Remark: regimes accumulate, so there is no explicit reset in
-%D mkii mode.
+\def\doautosetregime#1#2%
+ {\ifnum#2>127
+ \expanded{\defineactivetoken #2 \@EA\noexpand\csname#1\endcsname}%
+ \fi}
%D \macros
%D {startregime}
@@ -153,27 +127,122 @@
{\setregimetoks
\regimetoks\expandafter{\the\regimetoks\defineactivecharacter#1 {#2}}}
-% D This is kind of obsolete (replaced by previous code).
-%
-% \def\definetoken #1 % #1 = rawtoken or number
-% {\doifnumberelse{\string#1}
-% {\expanded{\dodefinetoken{\rawcharacter{#1}}}}
-% {\expanded{\dodefinetoken{\string#1}}}}
-%
-% \def\dodefinetoken#1#2%
-% {\defineactivecharacter#1 {\dohandletoken{#1}} %
-% \setvalue{\@reg@:t:\currentregime#1}{#2}}
-%
-% \def\dohandletoken#1%
-% {\csname\ifcsname \@reg@:t:\currentregime#1\endcsname % regi-def sets the defaults
-% \@reg@:t:\currentregime\else\defaultregime\fi#1\endcsname}
-
-%D Preloading:
-
-\beginOLDTEX
+%D \macros
+%D {defineregimesynonym,trueregimename}
+
+\def\defineregimesynonym
+ {\dodoubleargument\dodefineregimesynonym}
+
+\def\dodefineregimesynonym[#1][#2]%
+ {\setevalue{\@reg@:s:#1}{#2}}
+
+\def\trueregimename#1%
+ {\executeifdefined{\@reg@:s:#1}{#1}}
+
+%D \macros
+%D {useregime}
+
+\def\useregime[#1]%
+ {\processcommalist[#1]\douseregime}
+
+\def\douseregime#1%
+ {\doifundefined{\c!file\f!regimeprefix#1}%
+ {\letgvalue{\c!file\f!regimeprefix#1}\empty
+ \makeshortfilename[\truefilename{\f!regimeprefix#1}]%
+ \startreadingfile
+ \readsysfile{\shortfilename.mkii}
+ {\showmessage\m!regimes2{#1}}
+ {\showmessage\m!regimes3{#1}}%
+ \stopreadingfile}}
+
+%D \macros
+%D {enableregime,disableregime}
+
+\let\enabledregime\empty
+
+\def\enableregime[#1]%
+ {\edef\currentregime{\trueregimename{#1}}%
+ \doifelsenothing\currentregime
+ {\disableregime}
+ {\douseregime\currentregime
+ \the\executeifdefined{\@reg@\currentregime}\emptytoks}}
+
+\def\disableregime
+ {\let\currentregime\empty}
+
+%D \macros
+%D {protectregime, settoletterunlessactive, settocodeunlessactive}
+%D
+%D The next boolean is used later on to prevent unwanted
+%D catcode changes. Use it with care.
+
+\newif\ifprotectregime \protectregimetrue
+
+\def\settoletterunlessactive#1%
+ {\ifprotectregime\ifnum\catcode#1=\active\else
+ \catcode#1\@@letter
+ \fi\else
+ \catcode#1\@@letter
+ \fi}
+
+\def\settootherunlessactive#1%
+ {\ifprotectregime\ifnum\catcode#1=\active\else
+ \catcode#1=\@@other
+ \fi\else
+ \catcode#1=\@@other
+ \fi}
+
+\def\settocodeunlessactive#1#2%
+ {\ifprotectregime\ifnum\catcode#1=\active\else
+ \catcode#1=#2\relax
+ \fi\else
+ \catcode#1=#2\relax
+ \fi}
+
+%D Goodie:
+
+\def\showregime[#1]%
+ {\doifnot{#1}{utf}
+ {\bgroup
+ \enableregime[#1]%
+ \starttabulate[|l|l|l|]
+ \dostepwiserecurse{128}{255}{1}
+ {\expanded
+ {\scantokens
+ {\NC \recurselevel
+ \NC \rawcharacter\recurselevel
+ \NC \noexpand\tttf
+ \noexpand\meaning\rawcharacter\recurselevel \NC \NR}}}%
+ \stoptabulate
+ \unskip
+ \egroup}}
+
+%D Sort related:
+
+\def\dowalkregime#1%
+ {\the\executeifdefined{\@reg@#1}\emptytoks}
+
+%D Simplify matters for \XETEX.
+
+\ifnum\texengine=\xetexengine
+
+ \def\enableregime[#1]%
+ {\doifelse{#1}{utf}%
+ {\writestatus\m!regimes{mapping utf to utf-8}%
+ \XeTeXinputencoding{utf-8}}
+ {\XeTeXinputencoding{#1}}}
+
+ \def\disableregime
+ {\XeTeXinputencoding{utf-8}}
+
+ \def\loadregime[#1]{}
+ \let\walkregime \gobbleoneargument
+ \let\doautosetregime \gobbletwoarguments
+
+\else
\useregime[def,uni,utf] % we load the rest runtime
-\endOLDTEX
+\fi
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/regi-ini.mkiv b/Master/texmf-dist/tex/context/base/regi-ini.mkiv
index ef269985c76..5a3be77a2c6 100644
--- a/Master/texmf-dist/tex/context/base/regi-ini.mkiv
+++ b/Master/texmf-dist/tex/context/base/regi-ini.mkiv
@@ -1,7 +1,7 @@
%D \module
-%D [ file=char-reg,
+%D [ file=regi-ini,
%D version=2005.04.25,
-%D title=\CONTEXT\ Lua Macros,
+%D title=\CONTEXT\ Regime Macros,
%D subtitle=Regime Support,
%D author=Hans Hagen,
%D date=\currentdate,
@@ -17,23 +17,39 @@
\registerctxluafile{regi-ini}{1.001}
-\def\mkloadregime #1{\ctxlua{regimes.load("#1")}}
-\def\mkenableregime #1{\ctxlua{regimes.enable("#1")}}
-\def\mkdisableregime {\ctxlua{regimes.disable()}}
-\def\mkshowregime #1{\ctxlua{regimes.context.show("#1")}}
+%D \macros
+%D {currentregime}
-\appendtoks
- \pushmacro\currentregime
- \disableregime
-\to \everystartreadingfile
+\def\currentregime{utf}
-\appendtoks
- \popmacro\currentregime
- \enableregime[\currentregime]%
-\to \everystopreadingfile
+%D \macros
+%D {defineregimesynonym,trueregimename}
-\protect \endinput
+\def\defineregimesynonym
+ {\dodoubleargument\dodefineregimesynonym}
+
+\def\dodefineregimesynonym[#1][#2]%
+ {\ctxlua{regimes.setsynonym("#1","#2")}}
+
+\def\trueregimename#1%
+ {\ctxlua{regimes.truename("#1")}}
+
+%D \macros
+%D {useregime}
+
+\def\useregime[#1]%
+ {\processcommalist[#1]\douseregime}
-% \starttext
-% \showregimetable{cp1250}
-% \stoptext
+\def\douseregime#1%
+ {\ctxlua{regimes.load("#1")}}
+
+%D \macros
+%D {enableregime,disableregime}
+
+\def\enableregime[#1]%
+ {\edef\currentregime{\ctxlua{regimes.load("#1") regimes.enable("#1") regimes.truename()}}}
+
+\def\disableregime
+ {\edef\currentregime{\ctxlua{regimes.disable()}}}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/regi-ini.tex b/Master/texmf-dist/tex/context/base/regi-ini.tex
deleted file mode 100644
index 42bbf9718a8..00000000000
--- a/Master/texmf-dist/tex/context/base/regi-ini.tex
+++ /dev/null
@@ -1,182 +0,0 @@
-%D \module
-%D [ file=regi-ini,
-%D version=2000.12.27, % 1998.12.03,
-%D title=\CONTEXT\ Regime Macros,
-%D subtitle=Initialization,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%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 Messages (to be translated).
-
-\startmessages dutch library: regimes
- title: regime
- 1: regime --
- 2: regime -- wordt geladen
- 3: onbekend regime --
-\stopmessages
-
-\startmessages english library: regimes
- title: regime
- 1: regime --
- 2: regime -- is loaded
- 3: unknown regime --
-\stopmessages
-
-\startmessages german library: regimes
- title: Kodierung
- 1: Kodierung --
- 2: Kodierung -- ist geladen
- 3: Unbekannte Kodierung --
-\stopmessages
-
-\startmessages czech library: regimes
- title: kodovani
- 1: kodovani --
- 2: je nacteno kodovani --
- 3: nezname kodovani --
-\stopmessages
-
-\startmessages italian library: regimes
- title: codifica
- 1: codifica --
- 2: codifica -- caricata
- 3: codifica sconosciuta --
-\stopmessages
-
-\startmessages norwegian library: regimes
- title: koding
- 1: koding --
- 2: koding -- er lest inn
- 3: ukjent koding --
-\stopmessages
-
-\startmessages romanian library: regimes
- title: codificari
- 1: codificarea --
- 2: codificarea -- este Encarcata
- 3: codificarea -- este necunoscuta
-\stopmessages
-
-\startmessages french library: regimes
- title: encodage
- 1: encodage --
- 2: l'encodage -- est chargé
- 3: encodage -- inconnu
-\stopmessages
-
-%D Variables.
-
-\def\@reg@{@r@eg@} % regime prefix
-
-%D \macros
-%D {currentregime}
-
-\let\currentregime\empty
-\let\defaultregime\s!default
-
-%D Plugin interface.
-
-\let\mkloadregime \gobbleoneargument
-\let\mkenableregime \gobbleoneargument
-\let\mkdisableregime\relax
-\let\mkshowregime \gobbleoneargument
-\let\mkwalkregime \gobbleoneargument
-\let\mkautosetregime\gobbletwoarguments
-
-%D Some low level inheritance stuff (mkii).
-
-\def\doautosetregime{\mkautosetregime}
-
-%D \macros
-%D {defineregimesynonym,trueregimename}
-
-\def\defineregimesynonym
- {\dodoubleargument\dodefineregimesynonym}
-
-\def\dodefineregimesynonym[#1][#2]%
- {\setevalue{\@reg@:s:#1}{#2}}
-
-\def\trueregimename#1%
- {\executeifdefined{\@reg@:s:#1}{#1}}
-
-%D \macros
-%D {useregime}
-
-\def\useregime[#1]%
- {\processcommalist[#1]\douseregime}
-
-\def\douseregime#1%
- {\doifundefined{\c!file\f!regimeprefix#1}%
- {\letgvalue{\c!file\f!regimeprefix#1}\empty
- \mkloadregime{#1}}}
-
-%D \macros
-%D {enableregime,disableregime}
-
-\let\enabledregime\empty
-
-\def\enableregime[#1]%
- {\edef\currentregime{\trueregimename{#1}}%
- \doifelsenothing\currentregime
- {\disableregime}
- {\douseregime\currentregime
- \mkenableregime\currentregime}}
-
-\def\disableregime
- {\let\currentregime\empty
- \mkdisableregime}
-
-%D \macros
-%D {protectregime, settoletterunlessactive, settocodeunlessactive}
-%D
-%D The next boolean is used later on to prevent unwanted
-%D catcode changes. Use it with care.
-
-\newif\ifprotectregime \protectregimetrue
-
-\def\settoletterunlessactive#1%
- {\ifprotectregime\ifnum\catcode#1=\active\else
- \catcode#1\@@letter
- \fi\else
- \catcode#1\@@letter
- \fi}
-
-\def\settootherunlessactive#1%
- {\ifprotectregime\ifnum\catcode#1=\active\else
- \catcode#1=\@@other
- \fi\else
- \catcode#1=\@@other
- \fi}
-
-\def\settocodeunlessactive#1#2%
- {\ifprotectregime\ifnum\catcode#1=\active\else
- \catcode#1=#2\relax
- \fi\else
- \catcode#1=#2\relax
- \fi}
-
-%D Sort related:
-
-\def\dowalkregime{\mkwalkregime} % #1
-
-%D \macros
-%D {showregime}
-
-\def\showregime
- {\dosingleempty\doshowregime}
-
-\def\doshowregime[#1]%
- {\mkshowregime{#1}}
-
-%D Plugins.
-
-\loadmarkfile{regi-ini}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/regi-mac.tex b/Master/texmf-dist/tex/context/base/regi-mac.mkii
index b3c281ec0b0..b3c281ec0b0 100644
--- a/Master/texmf-dist/tex/context/base/regi-mac.tex
+++ b/Master/texmf-dist/tex/context/base/regi-mac.mkii
diff --git a/Master/texmf-dist/tex/context/base/regi-run.mkii b/Master/texmf-dist/tex/context/base/regi-run.mkii
deleted file mode 100644
index 573f1803b8f..00000000000
--- a/Master/texmf-dist/tex/context/base/regi-run.mkii
+++ /dev/null
@@ -1,32 +0,0 @@
-%D \module
-%D [ file=regi-run,
-%D version=2003.03.12,
-%D title=\CONTEXT\ Regime Macros,
-%D subtitle=Runtime Macros,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright=Hans Hagen \& Ton Otten]
-%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
-
-\gdef\mkshowregime#1%
- {\doifnot{#1}{utf}
- {\bgroup
- \enableregime[#1]%
- \starttabulate[|l|l|l|]
- \dostepwiserecurse{128}{255}{1}
- {\expanded
- {\scantokens
- {\NC \recurselevel
- \NC \rawcharacter\recurselevel
- \NC \noexpand\tttf
- \noexpand\meaning\rawcharacter\recurselevel \NC \NR}}}%
- \stoptabulate
- \unskip
- \egroup}}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/regi-syn.tex b/Master/texmf-dist/tex/context/base/regi-syn.tex
index b29c0677526..7a8a9c146ca 100644
--- a/Master/texmf-dist/tex/context/base/regi-syn.tex
+++ b/Master/texmf-dist/tex/context/base/regi-syn.tex
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Regime Macros (synonyms)}
+\writestatus{loading}{ConTeXt Regime Macros / Synonyms}
\unprotect
diff --git a/Master/texmf-dist/tex/context/base/regi-uni.tex b/Master/texmf-dist/tex/context/base/regi-uni.mkii
index c4d9521e9d0..c4d9521e9d0 100644
--- a/Master/texmf-dist/tex/context/base/regi-uni.tex
+++ b/Master/texmf-dist/tex/context/base/regi-uni.mkii
diff --git a/Master/texmf-dist/tex/context/base/regi-utf.tex b/Master/texmf-dist/tex/context/base/regi-utf.mkii
index 297ad96496b..01556ab2d04 100644
--- a/Master/texmf-dist/tex/context/base/regi-utf.tex
+++ b/Master/texmf-dist/tex/context/base/regi-utf.mkii
@@ -11,6 +11,10 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+\ifnum\texengine>\pdftexengine
+ \expandafter \endinput
+\fi
+
%D This regime activates the characters $>192$ and let them
%D handle \UTF\ encoded content streams. This regime runs on
%D top of the \type {unic} modules. We use an active inspector
@@ -29,18 +33,6 @@
% Ýýÿ
% ß
-\beginTEX
- \expandafter \endinput
-\endTEX
-
-\beginXETEX
- \expandafter \endinput
-\endXETEX
-
-\beginLUATEX
- \expandafter \endinput
-\endLUATEX
-
\unprotect
\startregime[utf]
diff --git a/Master/texmf-dist/tex/context/base/regi-vis.tex b/Master/texmf-dist/tex/context/base/regi-vis.mkii
index d1071354f96..d1071354f96 100644
--- a/Master/texmf-dist/tex/context/base/regi-vis.tex
+++ b/Master/texmf-dist/tex/context/base/regi-vis.mkii
diff --git a/Master/texmf-dist/tex/context/base/s-abr-01.tex b/Master/texmf-dist/tex/context/base/s-abr-01.tex
index f7665177dca..45bca44f235 100644
--- a/Master/texmf-dist/tex/context/base/s-abr-01.tex
+++ b/Master/texmf-dist/tex/context/base/s-abr-01.tex
@@ -43,7 +43,7 @@
\logo [BLUESKY] {BlueSky}
\logo [BMP] {bmp}
\logo [BSD] {bsd}
-\logo [CCODE] {c}
+\logo [CCODE] {C}
\logo [CALCMATH] {CalcMath}
\logo [CD] {cd}
\logo [CPU] {cpu}
@@ -204,6 +204,7 @@
\logo [SGML] {sgml}
\logo [SI] {si}
\logo [SQL] {sql}
+\logo [SVG] {svg}
\logo [TABLE] {\TaBlE}
\logo [TCPIP] {tcp/ip}
\logo [TDS] {tds} % no sc te
@@ -314,7 +315,12 @@
\def\NEWPAGE {\SystemSpecialB{newpage}}
\def\NEWLINE {\SystemSpecialB{newline}}
-\def\THANH {H\`an Th\^e\llap{\raise 0.5ex\hbox{\'{}}} Th\`anh}
+
+\doifmodeelse {mkiv} {
+ \def\THANH{Han The Thanh} % todo
+} {
+ \def\THANH{H\`an Th\^e\llap{\raise 0.5ex\hbox{\'{}}} Th\`anh}
+}
%def\THANH {H\`an Th\ecircumflexacute\ Th\`anh}
diff --git a/Master/texmf-dist/tex/context/base/s-fnt-01.tex b/Master/texmf-dist/tex/context/base/s-fnt-01.tex
index a0ff16a222f..69c8efab966 100644
--- a/Master/texmf-dist/tex/context/base/s-fnt-01.tex
+++ b/Master/texmf-dist/tex/context/base/s-fnt-01.tex
@@ -1,5 +1,5 @@
%D \module
-%D [ file=s-tnf-01,
+%D [ file=s-fnt-01,
%D version=2001.08.22,
%D title=\CONTEXT\ Style File,
%D subtitle=Font Environment 1,
@@ -12,7 +12,7 @@
%C details.
%D This file is used by the \type {texfont.pl} installation
-%D script.
+%D script. It is of no use for \MKIV.
%D Modes: compact
diff --git a/Master/texmf-dist/tex/context/base/s-fnt-10.tex b/Master/texmf-dist/tex/context/base/s-fnt-10.tex
new file mode 100644
index 00000000000..95e9282b8b2
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/s-fnt-10.tex
@@ -0,0 +1,162 @@
+%D \module
+%D [ file=s-fnt-01,
+%D version=2006.10.10, % guess
+%D title=\CONTEXT\ Style File,
+%D subtitle=Listing Glyphs in Large Fonts,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\startluacode
+local format, sprint = string.format, tex.sprint
+
+function fonts.otf.show_all()
+ local tfmdata = fonts.ids[font.current()]
+ if tfmdata and tfmdata.shared then
+ local otfdata = tfmdata.shared.otfdata
+ if otfdata and otfdata.luatex then
+ local unicodes = otfdata.luatex.unicodes
+ sprint(tex.ctxcatcodes,format("\\starttabulate[|l|r|c|]"))
+ for i, name in ipairs(table.sortedkeys(unicodes)) do
+ local unicode = unicodes[name]
+ if unicode >= 0 then
+ sprint(tex.ctxcatcodes,format("\\NC %s \\NC %s \\NC \\char%s \\NC\\NR",name,unicode,unicode))
+ end
+ end
+ sprint(tex.ctxcatcodes,format("\\stoptabulate"))
+ end
+ end
+end
+
+function fonts.show_all()
+ local tfmdata = fonts.ids[font.current()]
+ if tfmdata then
+ local chars = tfmdata.characters
+ local descs = tfmdata.descriptions or { }
+ local data = characters.data
+ sprint(tex.ctxcatcodes,format("\\setuptabulate[header=repeat]"))
+ sprint(tex.ctxcatcodes,format("\\starttabulatehead"))
+ sprint(tex.ctxcatcodes,"\\NC\\bf unicode\\NC\\bf visual\\NC\\bf index\\NC\\bf glyph\\NC\\bf adobe\\NC\\bf context\\NC\\NR")
+ sprint(tex.ctxcatcodes,"\\HL")
+ sprint(tex.ctxcatcodes,format("\\stoptabulatehead"))
+ sprint(tex.ctxcatcodes,format("\\starttabulate[|l|c|l|p|p|p|]"))
+ for k, unicode in ipairs(table.sortedkeys(chars)) do
+ if unicode >= 0 then
+ local chr, des, dat = chars[unicode], descs[unicode], data[unicode]
+ local index = chr.index or 0
+ local cname = (dat and dat.contextname) or ""
+ local aname = (dat and dat.adobename) or ""
+ local gname = (des and des.name) or ""
+ local mname = dat and dat.mathname
+ if type(mname) ~= "string" then
+ mname = ""
+ end
+ local mspec = dat and dat.mathspec
+ if mspec then
+ for m=1,#mspec do
+ local n = mspec[m].name
+ if n then
+ if mname == "" then
+ mname = n
+ else
+ mname = mname .. " " .. n
+ end
+ end
+ end
+ end
+ if mname ~= "" then
+ mname = "m: " .. mname
+ if cname ~= "" then
+ cname = cname .. " " .. mname
+ else
+ cname = mname
+ end
+ end
+ sprint(tex.ctxcatcodes,format("\\NC\\tttf U+%05X\\NC\\char%s\\NC\\tttf %05X\\NC\\tttf %s\\NC\\tttf %s\\NC\\tttf %s\\NC\\NR",unicode,unicode,index,gname,aname,cname))
+ end
+ end
+ sprint(tex.ctxcatcodes,format("\\stoptabulate"))
+ else
+ sprint(tex.ctxcatcodes,"problems")
+ end
+end
+
+function fonts.show_glyphs()
+ local tfmdata = fonts.ids[font.current()]
+ if tfmdata then
+ local chars = tfmdata.characters
+ for k, v in ipairs(table.sortedkeys(chars)) do
+ if v >=0 then
+ sprint(tex.ctxcatcodes,format("\\dontleavehmode{\\strut\\char%s}\\endgraf",v))
+ end
+ end
+ end
+end
+\stopluacode
+
+\def\ShowCompleteFont#1#2#3%
+ {\bgroup
+ \page
+ \font\TestFont=#1 at #2
+ \setuplayout[style=\TestFont]
+ \setupheadertexts[]
+ \setupfootertexts[#1 -- \pagenumber]
+ \setupfootertexts[pagenumber]
+ \setuplayout[width=middle,height=middle,topspace=1cm,backspace=1cm]
+ \TestFont
+ \nonknuthmode
+ \startcolumns[n=#3]
+ \TestFont
+ \ctxlua { fonts.show_all() }
+ \stopcolumns
+ \page
+ \egroup}
+
+\def\ShowAllGlyphs#1#2#3%
+ {\bgroup
+ \page
+ \font\TestFontA=#1 at 12pt
+ \font\TestFontB=#1 at #2
+ \setuplayout[style=\TestFontA]
+ \setupheadertexts[]
+ \setupfootertexts[#1 -- \pagenumber]
+ \setuplayout[width=middle,height=middle,topspace=1cm,backspace=1cm,header=1cm,footer=2cm]
+ \TestFontB \setupinterlinespace[line=1.2\dimexpr#2\relax] \raggedcenter
+ \nonknuthmode
+ \startcolumns[n=#3]
+ \TestFontB
+ \ctxlua { fonts.show_glyphs() }
+ \stopcolumns
+ \page
+ \egroup}
+
+\endinput
+
+\starttext
+
+% \ShowCompleteFont{name:dejavusansmono}{10pt}{2}
+% \ShowCompleteFont{name:dejavuserif}{10pt}{2}
+% \ShowCompleteFont{name:officinasansbookitcregular}{10pt}{2}
+% \ShowCompleteFont{name:officinaserifbookitcregular}{10pt}{2}
+% \ShowCompleteFont{name:serpentineserifeflight}{10pt}{2}
+% \ShowCompleteFont{name:lmtypewriter10-regular}{10pt}{2}
+% \ShowCompleteFont{lt55485}{10pt}{2}
+% \ShowCompleteFont{lmr10}{10pt}{2}
+% \ShowCompleteFont{lbr}{10pt}{2}
+% \ShowCompleteFont{name:Cambria}{10pt}{2}
+% \ShowCompleteFont{name:CambriaMath}{10pt}{2}
+% \ShowCompleteFont{name:texgyrepagella-regular}{10pt}{2}
+% \ShowCompleteFont{name:texgyrechorus-mediumitalic}{10pt}{2}
+% \ShowAllGlyphs {name:texgyrepagella-regular} {48pt}{2}
+% \ShowAllGlyphs {name:texgyrechorus-mediumitalic}{48pt}{2}
+% \ShowCompleteFont{name:euler10-regular}{10pt}{2}
+
+% \ShowCompleteFont{name:palatinosansinformalcombold}{20pt}{2}
+% \ShowCompleteFont{name:palatinonovaregular}{11pt}{2}
+% \ShowCompleteFont{name:optimanovaltregular}{11pt}{2}
+
+\stoptext
diff --git a/Master/texmf-dist/tex/context/base/s-fnt-11.tex b/Master/texmf-dist/tex/context/base/s-fnt-11.tex
new file mode 100644
index 00000000000..8f855cc7214
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/s-fnt-11.tex
@@ -0,0 +1,61 @@
+%D \module
+%D [ file=s-fnt-11,
+%D version=2006.02.01, % or so
+%D title=\CONTEXT\ Style File,
+%D subtitle=Listing Installed Fonts,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D This code usd to be in the kernel but since it's hardly used
+%D it's now a module.
+%D
+%D \starttyping
+%D \showinstalledfonts[officinasans.*][all]
+%D \showinstalledfonts[officinaserif.*][all]
+%D \showinstalledfonts[officina.*itc.*][all]
+%D
+%D \showinstalledfonts[officina.*itc.*][all,new]
+%D \stoptyping
+
+\startluacode
+function fonts.names.table(pattern,reload,all)
+ local t = fonts.names.list(pattern,reload)
+ if t then
+ tex.sprint(tex.ctxcatcodes,"\\start\\nonknuthmode\\starttabulate[|T|T|T|T|T|]")
+ tex.sprint(tex.ctxcatcodes,"\\NC hashname\\NC type\\NC fontname\\NC filename\\NC\\NR\\HL")
+ for v,tv in table.sortedpairs(t) do
+ local kind, name, file = tv[1], tv[2], tv[3]
+ if all or v == string.lower(name) then
+ if kind and name and file then
+ tex.sprint(tex.ctxcatcodes,string.format("\\NC %s\\NC %s\\NC %s\\NC %s\\NC\\NR",v,kind,name,file))
+ else
+ logs.report("font table", "skipping %s", v)
+ end
+ end
+ end
+ tex.sprint(tex.ctxcatcodes,"\\stoptabulate\\stop")
+ end
+end
+\stopluacode
+
+\unprotect
+
+\def\showinstalledfonts
+ {\dodoubleempty\doshowinstalledfonts}
+
+\def\doshowinstalledfonts[#1][#2]%
+ {\bgroup
+ \def\pattern{#1}%
+ \def\all{false}%
+ \def\reload{false}%
+ \doifnothing\pattern{\def\pattern{.*}}%
+ \processallactionsinset[#2][\v!new=>\def\reload{true},\v!all=>\def\all{true}]%
+ \ctxlua{fonts.names.table("#1",\reload,\all)}%
+ \egroup}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/s-fnt-20.tex b/Master/texmf-dist/tex/context/base/s-fnt-20.tex
new file mode 100644
index 00000000000..a57c0ba4758
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/s-fnt-20.tex
@@ -0,0 +1,140 @@
+%D \module
+%D [ file=s-fnt-20,
+%D version=2009.01.10,
+%D title=\CONTEXT\ Style File,
+%D subtitle=Tracing Feature Application (1),
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D This file is used by Idris and me in the process of getting the
+%D best arabic fonts getting rendered best. As such it might change.
+
+% \setvariables
+% [otftracker]
+% [title=Reverse Chaining,
+% figure=test-003-volt.pdf,
+% font=husayni,
+% sample={ببب بببب ببببب بببببب}]
+
+\def\checkedfeature#1#2{\ifnum\featureattribute{#1}=\zerocount#2\else#1\fi}
+
+% we can consider adding a dir key to features
+
+\definefontfeature
+ [otftracker-default]
+ [default]
+ [mode=node]
+
+\definefontfeature
+ [otftracker-arabtype]
+ [mode=node,analyze=yes,
+ language=dflt,script=arab,ccmp=yes,
+ init=yes,medi=yes,fina=yes,isol=yes,
+ liga=yes,dlig=yes,rlig=yes,clig=yes,
+ mark=yes,mkmk=yes,kern=yes,curs=yes]
+
+% \definefontfeature
+% [otftracker-husayni]
+% [analyze=yes,mode=node,
+% language=dflt,script=arab,ccmp=yes,
+% init=yes,medi=yes,fina=yes,isol=yes,
+% calt=yes,
+% mark=yes,mkmk=yes,kern=yes,curs=yes]
+
+\definefontfeature
+ [otftracker-husayni]
+ [analyze=yes,mode=node,
+ language=dflt,script=arab,ccmp=no,
+ init=yes,medi=yes,fina=yes,
+ rlig=yes,
+ ccmp=yes,
+ ss01=yes, % full Allah, Muhammad, Allahumma
+ ss05=yes, % full Jiim stacking
+ ss09=yes, % full Haa stacking
+ ss10=yes, % partial dipped Miim
+ % ss11=yes, % full dipped Miim
+ ss13=yes, % full stacked Miim
+ ss15=yes, % full stacked Laam-on-Miim
+ ss17=yes, % full stacked Ayn-on-Miim
+ ss19=yes, % LM_im
+ ss24=yes,ss25=yes,ss26=yes, % BX, LH_im, full Yaa.final specials
+ ss27=yes, % partial thin Miim.final
+ ss31=yes, % partial Raa.final contexts
+ ss34=yes, % partial Raa.final contexts
+ ss35=yes, % full Kaaf contexts
+ ss36=yes, % full Laam contexts
+ ss37=yes, % Miim-Miim contexts
+ ss38=yes, % fancy thin Haa.medial-Miim.final
+ ss39=yes, % high and low Baa strings
+ ss40=yes, % diagonal entry
+ ss41=yes, % initial alternates
+ % js06=yes,js08=yes,js10=yes,js11=yes,js17=yes,
+ % ttwl=yes,
+ mark=yes,mkmk=yes,
+ kern=yes,curs=yes]
+
+\definefontfeature
+ [otftracker-simplenaskhi]
+ [analyze=yes,mode=node,
+ language=dflt,script=arab,
+ init=yes,medi=yes,fina=yes,calt=yes,
+ rlig=yes,liga=yes,dlig=yes,
+ mark=yes,mkmk=yes,curs=yes]
+
+\setvalue{otftracker-direction-arabtype}{-1}
+\setvalue{otftracker-direction-husayni}{-1}
+\setvalue{otftracker-direction-simplenaskhi}{-1}
+
+\setvariables
+ [otftracker]
+ [font=Serif,
+ features=\checkedfeature{otftracker-\getvariable{otftracker}{font}}{otftracker-default},
+ size=48pt,
+ figure=,
+ title=Feature Check,
+ sample=no sample,
+ direction=\executeifdefined{otftracker-direction-\getvariable{otftracker}{font}}{0},
+ set=\setups{otftracker}]
+
+\setuplayout
+ [topspace=1.5cm,
+ backspace=1.5cm,
+ width=middle,
+ height=middle,
+ header=1.5cm,
+ footer=1.5cm]
+
+\setuphead
+ [chapter]
+ [header=high,
+ number=no]
+
+\setupfootertexts
+ [chapter]
+
+\setupalign
+ [flushleft]
+
+\setupcolors
+ [state=start]
+
+\startsetups otftracker
+ \setupbodyfont[tt,10pt]
+ \starttext
+ \chapter{\getvariable{otftracker}{title}}
+ \doifsomething {\getvariable{otftracker}{figure}} {
+ \startlinecorrection
+ \externalfigure[\getvariable{otftracker}{figure}]
+ \stoplinecorrection
+ }
+ \showotfcomposition
+ {\getvariable{otftracker}{font}*\getvariable{otftracker}{features} at \getvariable{otftracker}{size}}
+ {\getvariable{otftracker}{direction}}
+ {\getvariable{otftracker}{sample}}
+ \stoptext
+\stopsetups
diff --git a/Master/texmf-dist/tex/context/base/s-fnt-21.tex b/Master/texmf-dist/tex/context/base/s-fnt-21.tex
new file mode 100644
index 00000000000..dd8de398d0b
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/s-fnt-21.tex
@@ -0,0 +1,46 @@
+%D \module
+%D [ file=s-fnt-20,
+%D version=2009.01.10,
+%D title=\CONTEXT\ Style File,
+%D subtitle=Tracing Feature Application (2),
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D This module is related to:
+
+\usemodule[fnt-20]
+
+\setvariables
+ [otftracker]
+ [set=\setups{araball}]
+
+\startsetups araball
+ \begingroup
+ \setupcolors[state=start]%
+ \enabletrackers[otf.analyzing]% beware, kind of global
+ \ruledhbox \bgroup
+ \definedfont[\getvariable{otftracker}{font}*\getvariable{otftracker}{features} at \getvariable{otftracker}{size}]%
+ \ifnum\getvariable{otftracker}{direction}<0 \textdir TRT\else\ifnum\getvariable{otftracker}{direction}>0 \textdir TLT\fi\fi\relax
+ \getvariable{otftracker}{sample}%
+ \egroup
+ \disabletrackers[otf.analyzing]%
+ \endgroup
+\stopsetups
+
+\def\ShowOtfTrackerSample#1%
+ {\doiffile{#1}
+ {\blank
+ \startlinecorrection
+ \vbox \bgroup
+ \forgetall
+ \setbox\scratchbox\hbox{\component #1 \relax}
+ \hbox{\copy\scratchbox\quad\lower\dp\scratchbox\hbox{\ruledhbox{\externalfigure[#1-volt.pdf][height=\htdp\scratchbox]}}}
+ \hbox{\strut\tttf#1}%
+ \egroup
+ \stoplinecorrection
+ \blank}}
diff --git a/Master/texmf-dist/tex/context/base/s-fnt-23.tex b/Master/texmf-dist/tex/context/base/s-fnt-23.tex
new file mode 100644
index 00000000000..096c8fbf5ed
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/s-fnt-23.tex
@@ -0,0 +1,272 @@
+%D \module
+%D [ file=s-fnt-23,
+%D version=2009.03.04,
+%D title=\CONTEXT\ Style File,
+%D subtitle=Tracing Feature Application (3),
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\startluacode
+ local last_data = nil
+ local format = string.format
+ local function tpf(...)
+-- print("!!!!",...)
+ tex.print(tex.ctxcatcodes,format(...))
+ end
+ function fonts.otf.show_shape(n)
+ local tfmdata = fonts.ids[font.current()]
+ lastdata = tfmdata
+ local charnum = tonumber(n)
+ if not charnum then
+ charnum = tfmdata.unicodes[n]
+ end
+ local c = tfmdata.characters[charnum]
+ local d = tfmdata.descriptions[charnum]
+ if d then
+ local factor = (tfmdata.size/tfmdata.units)*((7200/7227)/65536)
+ local llx, lly, urx, ury = unpack(d.boundingbox)
+ llx, lly, urx, ury = llx*factor, lly*factor, urx*factor, ury*factor
+ local width, italic = (d.width or 0)*factor, (d.italic or 0)*factor
+ local top_accent, bot_accent = (d.top_accent or 0)*factor, (d.bot_accent or 0)*factor
+ local anchors, math = d.anchors, d.math
+ tpf("\\startMPcode")
+ tpf("pickup pencircle scaled .25bp ; ")
+ tpf('picture p ; p := image(draw textext.drt("\\gray\\char%s");); draw p ;',charnum)
+ tpf('draw (%s,%s)--(%s,%s)--(%s,%s)--(%s,%s)--cycle withcolor green ;',llx,lly,urx,lly,urx,ury,llx,ury)
+ tpf('draw (%s,%s)--(%s,%s) withcolor green ;',llx,0,urx,0)
+ tpf('draw boundingbox p withcolor .2white withpen pencircle scaled .065bp ;')
+ tpf("defaultscale := 0.05 ; ")
+ -- inefficient but non critical
+ local function slant_1(v,dx,dy,txt,xsign,ysign,loc,labloc)
+ if #v > 0 then
+ local l = { }
+ for kk, vv in ipairs(v) do
+ local h, k = vv.height, vv.kern
+ if h and k then
+ l[#l+1] = format("((%s,%s) shifted (%s,%s))",xsign*k*factor,ysign*h*factor,dx,dy)
+ end
+ end
+ tpf("draw ((%s,%s) shifted (%s,%s))--%s dashed (evenly scaled .25) withcolor .5white;", xsign*v[1].kern*factor,lly,dx,dy,l[1])
+ tpf("draw laddered (%s) withcolor .5white ;",table.concat(l,".."))
+ tpf("draw ((%s,%s) shifted (%s,%s))--%s dashed (evenly scaled .25) withcolor .5white;", xsign*v[#v].kern*factor,ury,dx,dy,l[#l])
+ for k, v in ipairs(l) do
+ tpf("draw %s withcolor blue withpen pencircle scaled 1bp;",v)
+ end
+ end
+ end
+ local function slant_2(v,dx,dy,txt,xsign,ysign,loc,labloc)
+ if #v > 0 then
+ local l = { }
+ for kk, vv in ipairs(v) do
+ local h, k = vv.height, vv.kern
+ if h and k then
+ l[#l+1] = format("((%s,%s) shifted (%s,%s))",xsign*k*factor,ysign*h*factor,dx,dy)
+ end
+ end
+ if loc == "top" then
+ tpf('label.%s("\\type{%s}",%s shifted (0,-1bp)) ;',loc,txt,l[#l])
+ else
+ tpf('label.%s("\\type{%s}",%s shifted (0,2bp)) ;',loc,txt,l[1])
+ end
+ for kk, vv in ipairs(v) do
+ local h, k = vv.height, vv.kern
+ if h and k then
+ tpf('label.top("(%s,%s)",%s shifted (0,-2bp));',k,h,l[kk])
+ end
+ end
+ end
+ end
+ if math then
+ local kerns = math.kerns
+ if kerns then
+ for _, slant in ipairs { slant_1, slant_2 } do
+ for k,v in pairs(kerns) do
+ if k == "top_right" then
+ slant(v,width+italic,0,k,1,1,"top","ulft")
+ elseif k == "bottom_right" then
+ slant(v,width,0,k,1,1,"bot","lrt")
+ elseif k == "top_left" then
+ slant(v,0,0,k,-1,1,"top","ulft")
+ elseif k == "bottom_left" then
+ slant(v,0,0,k,-1,1,"bot","lrt")
+ end
+ end
+ end
+ end
+ end
+ local function show(x,y,txt)
+ local xx, yy = x*factor, y*factor
+ tpf("draw (%s,%s) withcolor blue withpen pencircle scaled 1bp;",xx,yy)
+ tpf('label.top("\\type{%s}",(%s,%s-2bp)) ;',txt,xx,yy)
+ tpf('label.bot("(%s,%s)",(%s,%s+2bp)) ;',x,y,xx,yy)
+ end
+ if anchors then
+ local a = anchors.baselig
+ if a then
+ for k, v in pairs(a) do
+ for kk, vv in ipairs(v) do
+ show(vv[1],vv[2],k .. ":" .. kk)
+ end
+ end
+ end
+ local a = anchors.mark
+ if a then
+ for k, v in pairs(a) do
+ show(v[1],v[2],k)
+ end
+ end
+ local a = anchors.basechar
+ if a then
+ for k, v in pairs(a) do
+ show(v[1],v[2],k)
+ end
+ end
+ local ba = anchors.centry
+ if a then
+ for k, v in pairs(a) do
+ show(v[1],v[2],k)
+ end
+ end
+ local a = anchors.cexit
+ if a then
+ for k, v in pairs(a) do
+ show(v[1],v[2],k)
+ end
+ end
+ end
+ if italic ~= 0 then
+ tpf('draw (%s,%s-1bp)--(%s,%s-0.5bp) withcolor blue;',width,ury,width,ury)
+ tpf('draw (%s,%s-1bp)--(%s,%s-0.5bp) withcolor blue;',width+italic,ury,width+italic,ury)
+ tpf('draw (%s,%s-1bp)--(%s,%s-1bp) withcolor blue;',width,ury,width+italic,ury)
+ tpf('label.lft("\\type{%s}",(%s+2bp,%s-1bp));',"italic",width,ury)
+ tpf('label.rt("%s",(%s-2bp,%s-1bp));',d.italic,width+italic,ury)
+ end
+ if top_accent ~= 0 then
+ tpf('draw (%s,%s+1bp)--(%s,%s-1bp) withcolor blue;',top_accent,ury,top_accent,ury)
+ tpf('label.bot("\\type{%s}",(%s,%s+1bp));',"top_accent",top_accent,ury)
+ tpf('label.top("%s",(%s,%s-1bp));',d.top_accent,top_accent,ury)
+ end
+ if bot_accent ~= 0 then
+ tpf('draw (%s,%s+1bp)--(%s,%s-1bp) withcolor blue;',bot_accent,lly,bot_accent,lly)
+ tpf('label.top("\\type{%s}",(%s,%s-1bp));',"bot_accent",top_accent,ury)
+ tpf('label.bot("%s",(%s,%s+1bp));',d.bot_accent,bot_accent,lly)
+ end
+ tpf('draw origin withcolor red withpen pencircle scaled 1bp;')
+ tpf("setbounds currentpicture to boundingbox currentpicture enlarged 1bp ;")
+ tpf("currentpicture := currentpicture scaled 8 ;")
+ tpf("\\stopMPcode")
+ elseif c then
+ local factor = (7200/7227)/65536
+ tpf("\\startMPcode")
+ tpf("pickup pencircle scaled .25bp ; ")
+ tpf('picture p ; p := image(draw textext.drt("\\gray\\char%s");); draw p ;',charnum)
+ tpf('draw boundingbox p withcolor .2white withpen pencircle scaled .065bp ;')
+ tpf("defaultscale := 0.05 ; ")
+ local italic, top_accent, bot_accent = (c.italic or 0)*factor, (c.top_accent or 0)*factor, (c.bot_accent or 0)*factor
+ local width, height, depth = (c.width or 0)*factor, (c.height or 0)*factor, (c.depth or 0)*factor
+ local ury = height
+ if italic ~= 0 then
+ tpf('draw (%s,%s-1bp)--(%s,%s-0.5bp) withcolor blue;',width,ury,width,ury)
+ tpf('draw (%s,%s-1bp)--(%s,%s-0.5bp) withcolor blue;',width+italic,ury,width+italic,ury)
+ tpf('draw (%s,%s-1bp)--(%s,%s-1bp) withcolor blue;',width,ury,width+italic,height)
+ tpf('label.lft("\\type{%s}",(%s+2bp,%s-1bp));',"italic",width,height)
+ tpf('label.rt("%6.3f bp",(%s-2bp,%s-1bp));',italic,width+italic,height)
+ end
+ if top_accent ~= 0 then
+ tpf('draw (%s,%s+1bp)--(%s,%s-1bp) withcolor blue;',top_accent,ury,top_accent,height)
+ tpf('label.bot("\\type{%s}",(%s,%s+1bp));',"top_accent",top_accent,height)
+ tpf('label.top("%6.3f bp",(%s,%s-1bp));',top_accent,top_accent,height)
+ end
+ if bot_accent ~= 0 then
+ tpf('draw (%s,%s+1bp)--(%s,%s-1bp) withcolor blue;',bot_accent,lly,bot_accent,height)
+ tpf('label.top("\\type{%s}",(%s,%s-1bp));',"bot_accent",top_accent,height)
+ tpf('label.bot("%6.3f bp",(%s,%s+1bp));',bot_accent,bot_accent,height)
+ end
+ tpf('draw origin withcolor red withpen pencircle scaled 1bp;')
+ tpf("setbounds currentpicture to boundingbox currentpicture enlarged 1bp ;")
+ tpf("currentpicture := currentpicture scaled 8 ;")
+ tpf("\\stopMPcode")
+ else
+ tpf("no such shape: %s",n)
+ end
+ end
+ function fonts.otf.show_all_shapes(start,stop)
+ local tfmdata = fonts.ids[font.current()]
+ lastdata = tfmdata
+ start, stop = start or "\\startTEXpage\\gobbleoneargument", stop or "\\stopTEXpage"
+ local unicodes, indices, descriptions = tfmdata.unicodes, tfmdata.indices, tfmdata.descriptions
+ for _, unicode in next, table.sortedkeys(descriptions) do
+ local d = descriptions[unicode]
+ local name = d.name
+ tpf("%s{%s}%%",start,unicode)
+ tpf("\\writestatus{glyph}{U+%04X -> %s}%%",unicode,name)
+ fonts.otf.show_shape(unicode)
+ tpf(stop)
+ end
+ end
+ function fonts.otf.show_shape_field(unicode,name)
+ local tfmdata = lastdata or fonts.ids[font.current()]
+ local d = tfmdata.descriptions[unicode]
+ if d then
+ if name == "unicode" then
+ tpf("U+%04X",unicode)
+ else
+ d = d[name]
+ if d then
+ tpf(d)
+ end
+ end
+ end
+ end
+\stopluacode
+
+\setupcolors
+ [state=start]
+
+\def\GetGlyphField#1#2%
+ {\ctxlua{fonts.otf.show_shape_field(#1,"#2")}}
+
+\def\StartShowGlyphShape#1%
+ {\startTEXpage
+ \nonknuthmode
+ \def\GlyphUnicode{#1}}
+
+\def\StopShowGlyphShape
+ {\par
+ \midaligned{\tttf\setstrut\strut\GetGlyphField\GlyphUnicode{unicode}: \GetGlyphField\GlyphUnicode{name}}%
+ \stopTEXpage}
+
+\def\ShowGlyphShape#1#2#3% name size glyph
+ {\begingroup
+ \definedfont[#1 at #2]%
+ \obeyMPboxdepth
+ \ctxlua{fonts.otf.show_shape("#3")}%
+ \endgroup}
+
+\def\ShowAllGlyphShapes#1#2% name size
+ {\begingroup
+ \nonknuthmode
+ \definedfont[#1 at #2]%
+ \ctxlua{fonts.otf.show_all_shapes("\\StartShowGlyphShape","\\StopShowGlyphShape")}%
+ \endgroup}
+
+\setupcolors
+ [state=start]
+
+\doifnotmode{demo}{\endinput}
+
+\starttext
+
+\startTEXpage \ShowGlyphShape{simplenaskhi}{100bp}{0x62A} \stopTEXpage
+\startTEXpage \ShowGlyphShape{simplenaskhi}{100bp}{0x2004} \stopTEXpage
+\startTEXpage \ShowGlyphShape{simplenaskhi}{100bp}{0xF0299} \stopTEXpage
+\startTEXpage \ShowGlyphShape{simplenaskhi}{100bp}{NameMe.1190} \stopTEXpage
+
+\ShowAllGlyphShapes{simplenaskhi}{100bp}
+
+\stoptext
diff --git a/Master/texmf-dist/tex/context/base/s-fnt-24.tex b/Master/texmf-dist/tex/context/base/s-fnt-24.tex
new file mode 100644
index 00000000000..073588033e2
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/s-fnt-24.tex
@@ -0,0 +1,83 @@
+%D \module
+%D [ file=s-fnt-24,
+%D version=2009.02.06,
+%D title=\CONTEXT\ Style File,
+%D subtitle=CJK Glyph Combination Testing,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%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
+
+\def\ShowChineseCombiChar#1#2#3#4%
+ {\blank[small]
+ \dontleavehmode
+ \hbox\bgroup
+ \dontcomplain
+ \setstrut
+ \hbox to 7em{\ruledhbox{\char#1}\hskip.25em\type{+}\hskip.25em\ruledhbox{\char#2}\hskip.25em\type{=}\hskip.25em\ruledhbox{\char#1\char#2}\hss}\relax
+ \ruledvtop{\hsize1em\char#1\char#2}\relax
+ \hskip2em
+ \ruledvtop{\hsize.625em\char#1\char#2}\relax
+ \hskip2em
+ \ruledvtop{\hsize1.5em\char#1\char#2}\relax
+ \hskip2em
+ \type{#3 + #4}\relax
+ \egroup
+ \blank[small]}
+
+\startluacode
+local example = {
+ korean = 0x0AC00,
+ chinese = 0x04E55,
+ full_width_open = 0x03008,
+ full_width_close = 0x03009,
+ half_width_open = 0x02018,
+ half_width_close = 0x02019,
+ hyphen = 0x02026,
+ non_starter = 0x03005,
+ other = 0x0004D, -- M
+}
+
+function fonts.analyzers.cjktest(first,second)
+ for k, v in next, example do
+ if (not first or first == "") or first == k then
+ for kk, vv in next, example do
+ if (not second or second == "") or second == kk then
+ tex.sprint(tex.ctxcatcodes,string.format("\\ShowChineseCombiChar{%s}{%s}{%s}{%s}",v,vv,k,kk))
+ end
+ end
+ end
+ end
+end
+\stopluacode
+
+\def\ShowCombinationsKorean
+ {\dodoubleempty\doShowCombinationsKorean}
+
+\def\doShowCombinationsKorean[#1][#2]%
+ {\startpacked
+ \setscript[hangul]
+ \setupcolors[\c!state=\v!start]
+ \enabletrackers[cjk.analyzing]
+ \ctxlua{fonts.analyzers.cjktest("#1","#2")}\par % !
+ \disabletrackers[cjk.analyzing]
+ \stoppacked}
+
+\def\ShowCombinationsChinese
+ {\dodoubleempty\doShowCombinationsChinese}
+
+\def\doShowCombinationsChinese[#1][#2]%
+ {\startpacked
+ \setscript[hanzi]
+ \setupcolors[\c!state=\v!start]
+ \enabletrackers[cjk.analyzing]
+ \ctxlua{fonts.analyzers.cjktest("#1","#2")}\par % !
+ \disabletrackers[cjk.analyzing]
+ \stoppacked}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/s-fnt-25.tex b/Master/texmf-dist/tex/context/base/s-fnt-25.tex
new file mode 100644
index 00000000000..83a3ee58669
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/s-fnt-25.tex
@@ -0,0 +1,162 @@
+%D \module
+%D [ file=s-fnt-25,
+%D version=2009.01.25,
+%D title=\CONTEXT\ Style File,
+%D subtitle=Math Glyph Checking,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\def\showmathfontcharacters
+ {\dodoubleempty\doshowmathfontcharacters}
+
+\def\doshowmathfontcharacters[#1][#2]%
+ {\begingroup
+ \doifelsenothing{#1}
+ {\definedfont[MathRoman*math-text]}
+ {\definedfont[#1]}%
+ \doifelsenothing{#2}
+ {\ctxlua{document.showmathfont(font.current())}}
+ {\def\dodoshowmathfontcharacters##1{\ctxlua{document.showmathfont(font.current(),##1)}}%
+ \processcommalist[#2]\dodoshowmathfontcharacters}%
+ \endgroup}
+
+\def\startmathfontlist
+ {\startpacked}
+
+\def\stopmathfontlist
+ {\stoppacked}
+
+\def\startmathfontlistentry
+ {\blank
+ \begingroup}
+
+\def\stopmathfontlistentry
+ {\endgroup
+ \blank}
+
+\def\mathfontlistentryhexdectit#1#2#3%
+ {#1: \ruledhbox{\char#2}\enspace#3\par
+ \advance\leftskip 1em\relax}
+
+\def\mathfontlistentrywdhtdpic#1#2#3#4%
+ {width: #1, height: #2, depth: #3, italic: #4\par}
+
+\def\mathfontlistentrynext#1#2%
+ {#1~\ruledhbox{\char#2}}
+
+\def\mathfontlistentrynextlist#1%
+ {next: #1\par}
+
+\def\fontlistentryvariants#1#2%
+ {#1~\ruledhbox{\char#2}}
+
+\def\mathfontlistentryvariantslist#1%
+ {variants: #1\par}
+
+\def\mathfontlistentrynextvariantslist#1#2%
+ {next: #1 => variants: #2\par}
+
+\def\mathfontlistentryclassname#1#2%
+ {mathclass: #1, mathname: #2\par}
+
+\def\mathfontlistentrysymbol#1#2%
+ {mathsymbol: #1~\ruledhbox{\char#2}\par}
+
+\startluacode
+function document.showmathfont(id,slot)
+ local data = characters.data
+ local tfmdata = fonts.ids[id]
+ local characters = tfmdata.characters
+ local sorted = (slot and { slot }) or table.sortedkeys(characters)
+ local function report(...)
+ tex.sprint(tex.ctxcatcodes,string.format(...))
+ end
+ for _, s in next, sorted do
+ local char = characters[s]
+ if char then
+ local info = data[s]
+ local cnext, cvert_variants, choriz_variants = char.next, char.vert_variants, char.horiz_variants
+ report("\\startmathfontlistentry")
+ report("\\mathfontlistentryhexdectit{U+%05X}{%s}{%s}",s,s,string.lower(info.description or "no description, private to font"))
+ report("\\mathfontlistentrywdhtdpic{%s}{%s}{%s}{%s}",char.width or 0,char.height or 0,char.depth or 0,char.italic or 0)
+ if info.mathclass then
+ report("\\mathfontlistentryclassname{%s}{%s}",info.mathclass,info.mathname or "no name")
+ end
+ if info.mathspec then
+ for i=1,#info.mathspec do
+ report("\\mathfontlistentryclassname{%s}{%s}",info.mathspec[i].class,info.mathspec[i].name or "no name")
+ end
+ end
+ if info.mathsymbol then
+ report("\\mathfontlistentrysymbol{U+%05X}{%s}",info.mathsymbol,info.mathsymbol)
+ end
+ if cnext then
+ local t, done = { }, { }
+ while cnext do
+ if done[cnext] then
+ t[#t+1] = "CYCLE"
+ break
+ else
+ done[cnext] = true
+ t[#t+1] = string.format("\\mathfontlistentrynext{U+%05X}{%s}",cnext,cnext)
+ cnext = characters[cnext]
+ cvert_variants = cnext.vert_variants or cvert_variants
+ choriz_variants = cnext.horiz_variants or choriz_variants
+ if cnext then
+ cnext = cnext.next
+ end
+ end
+ end
+ cnext = t
+ end
+ if cvert_variants then
+ local t = { }
+ for k, v in next, cvert_variants do
+ t[#t+1] = string.format("\\fontlistentryvariants{U+%05X}{%s}",v.glyph,v.glyph)
+ end
+ cvert_variants = t
+ end
+ if choriz_variants then
+ local t = { }
+ for k, v in next, choriz_variants do
+ t[#t+1] = string.format("\\fontlistentryvariants{%s}",v.glyph)
+ end
+ choriz_variants = t
+ end
+ local cvariants = choriz_variants or cvert_variants
+ if cvariants and cnext then
+ report("\\mathfontlistentrynextvariantslist{%s}{%s}",table.concat(cnext," => "),table.concat(cvariants," => "))
+ else
+ if cnext then
+ report("\\mathfontlistentrynextlist{%s}",table.concat(cnext," => "))
+ end
+ if variants then
+ report("\\mathfontlistentryvariantslist{%s}",table.concat(cvariants," "))
+ end
+ end
+ report("\\stopmathfontlistentry")
+ end
+ end
+end
+\stopluacode
+
+\endinput
+
+\startbuffer mathtest
+ \begingroup\mm\mr\showmathfontcharacters\endgroup
+\stopbuffer
+
+\starttext
+ \usetypescript[cambria] \setupbodyfont[cambria, 12pt] \getbuffer[mathtest]
+ \usetypescript[lmvirtual] \setupbodyfont[lmvirtual,12pt] \getbuffer[mathtest]
+ \usetypescript[pxvirtual] \setupbodyfont[pxvirtual,12pt] \getbuffer[mathtest]
+ \usetypescript[txvirtual] \setupbodyfont[txvirtual,12pt] \getbuffer[mathtest]
+ \usetypescript[palatino] \setupbodyfont[palatino, 10pt] \getbuffer[mathtest]
+ \usetypescript[mathtimes] \setupbodyfont[mathtimes,12pt] \getbuffer[mathtest]
+\stoptext
+
diff --git a/Master/texmf-dist/tex/context/base/s-fnt-30.tex b/Master/texmf-dist/tex/context/base/s-fnt-30.tex
new file mode 100644
index 00000000000..81b6c8d19c4
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/s-fnt-30.tex
@@ -0,0 +1,42 @@
+%D \module
+%D [ file=s-fnt-30,
+%D version=2006.05.10, % abou tthen, quite old already
+%D title=\CONTEXT\ Style File,
+%D subtitle=Showing Character Data,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\startluacode
+function document.show_character_data(n)
+ local n = characters.number(n)
+ local d = characters.data[n]
+ if d then
+ local function entry(label,name)
+ texsprint(tex.ctxcatcodes,format("\\NC %s\\NC %s\\NC\\NR",label,characters.valid(d[name])))
+ end
+ texsprint(tex.ctxcatcodes,"\\starttabulate[|Tl|Tl|]")
+ entry("unicode index" , "unicodeslot")
+ entry("context name" , "contextname")
+ entry("adobe name" , "adobename")
+ entry("category" , "category")
+ entry("description" , "description")
+ entry("uppercase code", "uccode")
+ entry("lowercase code", "lccode")
+ entry("specials" , "specials")
+ texsprint(tex.ctxcatcodes,"\\stoptabulate ")
+ end
+end
+\stopluacode
+
+\def\ShowCharacterData#1%
+ {\ctxlua{document.show_character_data(#1)}}
+
+% \ShowCharacterData{123}
+% \ShowCharacterData{0x7B}
+
+% \dostepwiserecurse{`A}{`Z}{1}{\ShowCharacterData{#1}}
diff --git a/Master/texmf-dist/tex/context/base/s-mag-01.tex b/Master/texmf-dist/tex/context/base/s-mag-01.tex
index 54d997fc10c..da4e027f4af 100644
--- a/Master/texmf-dist/tex/context/base/s-mag-01.tex
+++ b/Master/texmf-dist/tex/context/base/s-mag-01.tex
@@ -200,7 +200,7 @@
\startsetups [leftbanner]
- \definedfont[Regular at \bottomheight]
+ \definedfont[Regular at \the\bottomheight]
\setbox\scratchbox\hbox{\TitleColor\getvariable{magazine}{main}}
\ht\scratchbox1ex
\dp\scratchbox\zeropoint
@@ -222,7 +222,7 @@
\startsetups [rightbanner]
- \definedfont[Regular at \bottomheight]
+ \definedfont[Regular at \the\bottomheight]
\setbox\scratchbox\hbox{\TitleColor\getvariable{magazine}{main}}
\ht\scratchbox1ex
\dp\scratchbox\zeropoint
diff --git a/Master/texmf-dist/tex/context/base/s-map-10.tex b/Master/texmf-dist/tex/context/base/s-map-10.tex
index 362aa2700db..807ae42efbd 100644
--- a/Master/texmf-dist/tex/context/base/s-map-10.tex
+++ b/Master/texmf-dist/tex/context/base/s-map-10.tex
@@ -478,5 +478,10 @@
%\let\abovedisplayskip\iabovedisplayskip
%\let\abovedisplayshortskip\iabovedisplayshortskip
+\setuplanguage
+ [nl]
+ [\c!leftquote=\upperleftsinglesixquote,
+ \c!leftquotation=\upperleftdoublesixquote]
+
%\protect
\endinput
diff --git a/Master/texmf-dist/tex/context/base/s-pre-11.tex b/Master/texmf-dist/tex/context/base/s-pre-11.tex
new file mode 100644
index 00000000000..23bf9e22318
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/s-pre-11.tex
@@ -0,0 +1,220 @@
+%D \module
+%D [ file=s-pre-11,
+%D version=1999.08.20,
+%D title=\CONTEXT\ Style File,
+%D subtitle=Presentation Environment 11,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\setuppapersize
+ [S6][S6]
+
+\setuplayout
+ [topspace=0cm,
+ backspace=0cm,
+ header=0pt,
+ footer=0pt,
+ width=middle,
+ height=middle]
+
+\setupbodyfont
+ [14.4pt,lbr]
+
+\setupcolors
+ [state=start]
+
+\setupinteraction
+ [click=no,
+ display=new,
+ state=start]
+
+\setupinteractionscreen
+ [option=max]
+
+\def\SomeShape%
+ {\resetMPdrawing
+ \startMPdrawing
+ path p[], q[] ; pair a, b ;
+ StartPage ;
+ \stopMPdrawing
+ \dorecurse{\CurrentTopic}
+ {\startMPdrawing
+ initialize_box(\MPpos{topic-\realfolio-\recurselevel}) ;
+ p[\recurselevel] := tensecircle (wxy,hxy,.25cm) shifted cxy ;
+ fill p[\recurselevel] withcolor .9white ;
+ pickup pencircle scaled .25cm ;
+ \ifnum\recurselevel=\CurrentTopic\space
+ draw p[\recurselevel] withcolor \MPcolor{ShowColor} ;
+ \else
+ draw p[\recurselevel] withcolor \MPcolor{DoneColor} ;
+ \fi
+ \stopMPdrawing}%
+ \dorecurse{\CurrentMaxItem}
+ {\startMPdrawing
+ initialize_box(\MPpos{item-\realfolio-\recurselevel}) ;
+ linewidth := .25cm ;
+ q[\recurselevel] := tensecircle (wxy,hxy,linewidth) shifted cxy ;
+ fill q[\recurselevel] withcolor .9white ;
+ pickup pencircle scaled linewidth ;
+ \ifnum\recurselevel=\CurrentMaxItem\space
+ draw q[\recurselevel] withcolor \MPcolor{ShowColor} ;
+ \else
+ draw q[\recurselevel] withcolor \MPcolor{DoneColor} ;
+ \fi
+ \stopMPdrawing}%
+ \dostepwiserecurse{2}{\CurrentTopic}{1}
+ {\startMPdrawing
+ draw
+ rt point 3 of p[\recurselevel-1] --
+ lft point 7 of p[\recurselevel]
+ withcolor \MPcolor{ArrowColor} ;
+ \stopMPdrawing}%
+ \dostepwiserecurse{2}{\CurrentMaxItem}{1}
+ {\startMPdrawing
+ draw
+ bot point 9 of q[\recurselevel-1] --
+ top point 5 of q[\recurselevel]
+ withcolor \MPcolor{ArrowColor} ;
+ \stopMPdrawing}%
+ \startMPdrawing
+ draw Page
+ withpen pencircle scaled .5cm
+ withcolor \MPcolor{EdgeColor} ;
+ StopPage ;
+ \stopMPdrawing
+ \MPdrawingdonetrue
+ \getMPdrawing}
+
+\def\TitlePage#1%
+ {\startstandardmakeup
+ \setupalign[middle]
+ \def\\{\vfil\bfb\setupinterlinespace}
+ \bfd\setupinterlinespace
+ \vfil#1\vfil\vfil
+ \stopstandardmakeup}
+
+\definecolor[PageColor][r=.5,g=.4,b=.3]
+\definecolor[LineColor][r=.7,g=.6,b=.5]
+
+\definecolor[PageColor] [s=.60]
+\definecolor[ShowColor] [r=.40]
+\definecolor[EdgeColor] [g=.40]
+\definecolor[DoneColor] [r=.40,g=.40]
+\definecolor[ArrowColor] [b=.40]
+\definecolor[LineColor] [r=.60,g=.60]
+\definecolor[GotoColor] [ArrowColor]
+
+\setupinteraction[color=GotoColor,contrastcolor=GotoColor]
+
+\defineoverlay [shape] [\SomeShape]
+\defineoverlay [next] [\overlaybutton{forward}] % [{nextpage}]
+
+\setupbackgrounds
+ [page]
+ [background={color,next,shape},
+ backgroundcolor=PageColor]
+
+\doglobal\newcounter\CurrentMaxItem
+\doglobal\newcounter\CurrentItem
+\doglobal\newcounter\CurrentTopic
+
+\def\StartIdea%
+ {\doglobal\newcounter\CurrentItem}
+
+\def\StartTopic%
+ {\doglobal\increment\CurrentTopic
+ \dostartbuffer[topic-\CurrentTopic][StartTopic][StopTopic]}
+
+\def\StopIdea%
+ {\dorecurse{\CurrentItem}
+ {\let\CurrentMaxItem\recurselevel
+ \doStopIdea}}
+
+\def\doStopIdea%
+ {\startstandardmakeup
+ \dontcomplain
+ \vskip.875cm
+ \hbox to \makeupwidth
+ {\hfill
+ \dorecurse{\CurrentTopic}
+ {\edef\Topic{topic-\realfolio-\recurselevel}%
+ \hpos
+ {\Topic}
+ {\framed
+ [frame=off,align=middle,offset=.25cm]
+ {\getbuffer[topic-\recurselevel]}}%
+ \ifnum\recurselevel<\CurrentTopic
+ \hskip.875cm
+ \fi}%
+ \hfill}
+ \vskip.875cm
+ \vfilll
+ \dorecurse{\CurrentMaxItem}
+ {\edef\Item{item-\realfolio-\recurselevel}
+ \hbox to \makeupwidth
+ {\hfill
+ \hpos
+ {\Item}
+ {\framed
+ [width=.75\makeupwidth,
+ frame=off,
+ align=middle,offset=.125cm]
+ {\getbuffer[item-\recurselevel]}}%
+ \hfill}
+ \vskip.875cm}
+ \vfilll
+ \stopstandardmakeup}
+
+\def\StartItem%
+ {\doglobal\increment\CurrentItem
+ \dostartbuffer[item-\CurrentItem][StartItem][StopItem]}
+
+\lefthyphenmin =\maxdimen
+\righthyphenmin=\maxdimen
+
+\doifnotmode{demo}{\endinput}
+
+\starttext
+
+\StartIdea
+ \StartTopic
+ A Nice Idea
+ \StopTopic
+ \StartItem
+ \input reich \relax
+ \StopItem
+ \StartItem
+ \input reich \relax
+ \StopItem
+ \StartItem
+ \input reich \relax
+ \StopItem
+\StopIdea
+
+\StartIdea
+ \StartTopic
+ One More Nice Idea
+ \StopTopic
+ \StartItem
+ \input reich \relax
+ \StopItem
+ \StartItem
+ \input reich \relax
+ \StopItem
+\StopIdea
+
+\StartIdea
+ \StartTopic
+ The Last Idea
+ \StopTopic
+ \StartItem
+ \input tufte \relax
+ \StopItem
+\StopIdea
+
+\stoptext
diff --git a/Master/texmf-dist/tex/context/base/s-pre-12.tex b/Master/texmf-dist/tex/context/base/s-pre-12.tex
new file mode 100644
index 00000000000..722d59ced39
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/s-pre-12.tex
@@ -0,0 +1,226 @@
+%D \module
+%D [ file=s-pre-12,
+%D version=1999.08.20,
+%D title=\CONTEXT\ Style File,
+%D subtitle=Presentation Environment 12,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\setuppapersize
+ [S6][S6]
+
+\setuplayout
+ [topspace=0cm,
+ backspace=0cm,
+ header=0pt,
+ footer=0pt,
+ width=middle,
+ height=middle]
+
+\setupbodyfont
+ [14.4pt,lbr]
+
+\setupcolors
+ [state=start]
+
+\setupinteraction
+ [click=no,
+ display=new,
+ state=start]
+
+\setupinteractionscreen
+ [option=max]
+
+\def\SomeShape%
+ {\resetMPdrawing
+ \startMPdrawing
+ path p ; pair a, b ;
+ ahlength := .375cm ;
+ StartPage ;
+ draw Page %unitsquare
+ %xscaled PaperWidth yscaled PaperHeight
+ withpen pencircle scaled .5cm
+ withcolor \MPcolor{EdgeColor} ;
+ \stopMPdrawing
+ \dorecurse{\CurrentTopic}
+ {\startMPdrawing
+ initialize_box(\MPpos{topic-\realfolio-\recurselevel}) ;
+ p := tensecircle (wxy,hxy,.25cm) shifted cxy ;
+ fill p withcolor .9white ;
+ pickup pencircle scaled .25cm ;
+ \ifnum\recurselevel=\CurrentTopic
+ draw p withcolor \MPcolor{ShowColor} ;
+ a := bot point 7 of p ;
+ \else
+ draw p withcolor \MPcolor{DoneColor} ;
+ \fi
+ \stopMPdrawing}
+ \dorecurse{\CurrentMaxItem}
+ {\startMPdrawing
+ initialize_box(\MPpos{item-\realfolio-\recurselevel}) ;
+ linewidth := .25cm ;
+ p := tensecircle (wxy,hxy,linewidth) shifted cxy ;
+ fill p withcolor .9white ;
+ pickup pencircle scaled linewidth ;
+ b := rt point 3 of p ;
+ \ifnum\recurselevel=\CurrentMaxItem
+ draw p withcolor \MPcolor{ShowColor} ;
+ \else
+ draw p withcolor \MPcolor{DoneColor} ;
+ \fi
+ dxab := xpart a-xpart b ;
+ dyab := ypart a-ypart b ;
+ sign := if dyab>0 : - fi 1 ;
+ drawarrow
+ a --
+ a shifted (+2linewidth-dxab/2,0) {left} ..
+ if abs(dyab)>4linewidth :
+ a shifted (-dxab/2,+sign*2linewidth) --
+ b shifted (+dxab/2,-sign*2linewidth) ..
+ fi
+ {left} b shifted (-2linewidth+dxab/2,0) --
+ b
+ withcolor \MPcolor{ArrowColor} ;
+ \stopMPdrawing}%
+ \startMPdrawing
+ StopPage ;
+ \stopMPdrawing
+ \MPdrawingdonetrue
+ \getMPdrawing}
+
+\definecolor[PageColor][r=.5,g=.4,b=.3]
+\definecolor[LineColor][r=.7,g=.6,b=.5]
+
+\definecolor[PageColor] [s=.60]
+\definecolor[ShowColor] [r=.40]
+\definecolor[EdgeColor] [g=.40]
+\definecolor[DoneColor] [r=.40,g=.40]
+\definecolor[ArrowColor] [b=.40]
+\definecolor[LineColor] [r=.60,g=.60]
+\definecolor[GotoColor] [ArrowColor]
+
+\setupinteraction[color=GotoColor,contrastcolor=GotoColor]
+
+\defineoverlay [shape] [\SomeShape]
+\defineoverlay [next] [\overlaybutton{forward}]
+
+\setupbackgrounds
+ [page]
+ [background={color,next,shape},
+ backgroundcolor=PageColor]
+
+\doglobal\newcounter\CurrentItem
+\doglobal\newcounter\CurrentTopic
+\doglobal\newcounter\CurrentMaxItem
+
+\def\StartIdea%
+ {\doglobal\newcounter\CurrentItem}
+
+\def\StartTopic%
+ {\doglobal\increment\CurrentTopic
+ \dostartbuffer[topic-\CurrentTopic][StartTopic][StopTopic]}
+
+\def\StopIdea%
+ {\dorecurse{\CurrentItem}
+ {\let\CurrentMaxItem\recurselevel
+ \doStopIdea}}
+
+\def\IdeaWidth {.6\makeupwidth} % .5
+\def\TopicWidth{.2\makeupwidth} % .3
+
+\def\doStopIdea%
+ {\startstandardmakeup
+ \dontcomplain
+ \vbox to \makeupheight
+ {\vskip.75cm \relax % \vfill
+ \dorecurse{\CurrentMaxItem}
+ {\edef\Item{item-\realfolio-\recurselevel}
+ \hbox to \makeupwidth
+ {\hskip.75cm
+ \hpos
+ {\Item}
+ {\framed
+ [width=\IdeaWidth,frame=off,
+ align=middle,offset=.125cm]
+ {\getbuffer[item-\recurselevel]}}}
+ \vskip.875cm}
+ \vfill}
+ \vskip-\makeupheight
+ \vbox to \makeupheight
+ {\vskip.75cm \relax
+ \dorecurse{\CurrentTopic}
+ {\edef\Topic{topic-\realfolio-\recurselevel}
+ \hbox to \makeupwidth
+ {\hfill
+ \hpos
+ {\Topic}
+ {\framed
+ [width=\TopicWidth,frame=off,
+ align=middle,offset=.25cm]
+ {\getbuffer[topic-\recurselevel]}}%
+ \hskip.75cm}
+ \vskip.875cm}
+ \vfill}
+ \stopstandardmakeup}
+
+\def\StartItem%
+ {\doglobal\increment\CurrentItem
+ \dostartbuffer[item-\CurrentItem][StartItem][StopItem]}
+
+\lefthyphenmin =\maxdimen
+\righthyphenmin=\maxdimen
+
+\def\TitlePage#1%
+ {\startstandardmakeup
+ \setupalign[middle]
+ \def\\{\vfil\bfb\setupinterlinespace}
+ \bfd\setupinterlinespace
+ \vfil#1\vfil\vfil
+ \stopstandardmakeup}
+
+\endinput
+
+% \starttext
+%
+% \StartIdea
+% \StartTopic
+% What a topic
+% \StopTopic
+% \StartItem
+% \input reich \relax
+% \StopItem
+% \StartItem
+% \input reich \relax
+% \StopItem
+% \StartItem
+% \input reich \relax
+% \StopItem
+% \StopIdea
+%
+% \StartIdea
+% \StartTopic
+% One More Nice Idea
+% \StopTopic
+% \StartItem
+% \input reich \relax
+% \StopItem
+% \StartItem
+% \input reich \relax
+% \StopItem
+% \StopIdea
+%
+% \StartIdea
+% \StartTopic
+% The Last Idea
+% \StopTopic
+% \StartItem
+% \input tufte \relax
+% \StopItem
+% \StopIdea
+%
+% \stoptext
diff --git a/Master/texmf-dist/tex/context/base/s-pre-17.tex b/Master/texmf-dist/tex/context/base/s-pre-17.tex
new file mode 100644
index 00000000000..798f30cf841
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/s-pre-17.tex
@@ -0,0 +1,399 @@
+%D \module
+%D [ file=s-pre-17,
+%D version=1999.08.20,
+%D title=\CONTEXT\ Style File,
+%D subtitle=Presentation Environment 17,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\setupbodyfont
+ [12pt,ss]
+
+\setupcolors
+ [state=start]
+
+\setupsystem
+ [random=medium]
+
+\setupbackgrounds
+ [state=repeat]
+
+\setupbackgrounds
+ [page]
+ [background={page,forward}]
+
+\setupbackgrounds
+ [text][text]
+ [background=blowup]
+
+\setupinteraction
+ [state=start,
+ %click=off,
+ color=TitleColor,
+ contrastcolor=TitleColor]
+
+\setupinteractionscreen
+ [option=max]
+
+\setuptolerance
+ [verytolerant,stretch]
+
+\definecolor [BackColor] [s=.30]
+\definecolor [PageColor] [g=1]
+\definecolor [FrameColor] [r=1]
+\definecolor [TitleColor] [y=1]
+\definecolor [ArrowColor] [b=1]
+
+\defineoverlay [title] [\useMPgraphic{title}]
+\defineoverlay [page] [\useMPgraphic{page}]
+\defineoverlay [blowup] [\overlaybutton{page(\realfolio)}]
+\defineoverlay [forward] [\overlaybutton{forward}]
+
+\startMPpositiongraphic{mppos:connection}
+ path pa, pb, pc ; pair ca, cb ;
+ initialize_box(\MPpos{\MPvar{self}}) ; pa := pxy ; ca := cxy ;
+ initialize_box(\MPpos{\MPvar{prev}}) ; pb := pxy ; cb := cxy ;
+ pickup pencircle scaled .5pt ;
+ pa := pa enlarged 10pt ;
+ pb := pb enlarged 10pt ;
+ for i=1 upto 10 :
+ draw pa randomized 20pt withcolor \MPcolor{FrameColor} ;
+ endfor ;
+ if \MPp{\MPvar{prev}}>0 :
+ pair a, b, c, d ;
+ for i=1 upto 25 :
+ a := .5[ulcorner pa,urcorner pa] randomized (10pt,10pt) ;
+ b := .5[llcorner pb,lrcorner pb] randomized (20pt,10pt) ;
+ c := .5[a,b] rotatedaround(a,-25) randomized (5pt,5pt) ;
+ d := .5[a,b] rotatedaround(a,+25) randomized (5pt,5pt) ;
+ draw (a--b) withcolor \MPcolor{ArrowColor} ;
+ draw (d--a--c) withcolor \MPcolor{ArrowColor} ;
+ endfor ;
+ fi ;
+ anchor_box(\MPanchor{\MPvar{self}}) ;
+\stopMPpositiongraphic
+
+\startuseMPgraphic{title}
+ pickup pencircle scaled .5pt ;
+ for i=1 upto 10 :
+ draw
+ fullsquare xyscaled(OverlayWidth,OverlayHeight)
+ enlarged 10pt randomized 20pt
+ withcolor \MPcolor{TitleColor} ;
+ endfor ;
+\stopuseMPgraphic
+
+\startuseMPgraphic{page}
+ StartPage ;
+ pickup pencircle scaled .5pt ;
+ fill Page withcolor \MPcolor{BackColor} ;
+ for i=1 upto 20 :
+ draw Page enlarged -50pt randomized 50pt withcolor \MPcolor{PageColor} ;
+ endfor ;
+ StopPage ;
+\stopuseMPgraphic
+
+\def\StartText%
+ {\bgroup
+ \getrandomdimen\scratchdimen{250pt}{350pt}%
+ \edef\TextWidth{\the\scratchdimen}%
+ \setbox\scratchbox=\hbox\bgroup
+ \hsize\TextWidth
+ \setupframedtexts
+ [before=,after=,
+ width=fit,align=right, % normal,
+ frame=off,foregroundcolor=white]%
+ \framedtext\bgroup}
+
+\def\BlowX{450pt} % \def\BlowX{600pt}
+\def\BlowY{300pt} % \def\BlowY{450pt}
+\def\BlowV {50pt} % \def\BlowV{100pt}
+\def\BlowH {75pt} % \def\BlowH{100pt}
+\def\BackO {50pt} % \def\BackO {50pt}
+
+\def\StopText%
+ {\egroup\egroup
+ \doglobal\increment\CurrentBlaBla
+ \let\PrevBlaBla\CurrentBlaBla \doglobal\decrement\PrevBlaBla
+ \let\NextBlaBla\CurrentBlaBla \doglobal\increment\NextBlaBla
+ \setMPpositiongraphic
+ {connection:\CurrentBlaBla}%
+ {mppos:connection}%
+ {seed=\CurrentBlaBla,
+ prev=connection:\PrevBlaBla,
+ next=connection:\NextBlaBla}%
+ \SetBlowUp{connection:\CurrentBlaBla}\BlowX\BlowY\BlowH\BlowV
+ \hbox to 600pt
+% {\getrandomdimen\scratchdimen{50pt}{100pt}%
+ {\getrandomdimen\scratchdimen{50pt}{75pt}%
+ \hskip0pt plus \scratchdimen minus \scratchdimen
+ \hpos{connection:\CurrentBlaBla}%
+ {\framed
+ [frame=off,
+ offset=overlay,
+ backgroundoffset=\BackO,
+ background=blowup]
+ {\box\scratchbox}}%
+% \getrandomdimen\scratchdimen{50pt}{100pt}%
+ \getrandomdimen\scratchdimen{50pt}{75pt}%
+ \hskip0pt plus \scratchdimen minus \scratchdimen}%
+% \getrandomdimen\scratchdimen{100pt}{150pt}%
+ \getrandomdimen\scratchdimen{75pt}{125pt}%
+ \vskip\scratchdimen
+ \egroup}
+
+\def\xStartText
+ {\bgroup
+ \setbox\scratchbox=\hbox\bgroup
+ \framed
+ [frame=off,foregroundcolor=white]
+ \bgroup}
+
+\def\xStopText{\StopText}
+
+\def\SetBlowUp#1#2#3#4#5% tag width height hoffset voffset
+ {\scratchdimen=\MPw{#1}%
+ \advance\scratchdimen-#2 %
+ \divide\scratchdimen by 2
+ \advance\scratchdimen by \MPx{#1}\relax
+ \ifdim\scratchdimen<0pt \scratchdimen=0pt \fi
+ \ScaledPointsToBigPoints{\number\scratchdimen}\TextX
+ \advance\scratchdimen by #2 %
+ \ScaledPointsToBigPoints{\number\scratchdimen}\TextW
+ %
+ \scratchdimen=\MPh{#1}%
+ \advance\scratchdimen-#3 %
+ \divide\scratchdimen by 2
+ \advance\scratchdimen\MPy{#1}\relax
+ \ifdim\scratchdimen<0pt \scratchdimen=0pt \fi
+ \ScaledPointsToBigPoints{\number\scratchdimen}\TextY
+ \advance\scratchdimen by #3
+ \ScaledPointsToBigPoints{\number\scratchdimen}\TextH
+ %
+ \def\PDFpageviewkey{ fitr \TextX\space\TextY\space\TextW\space\TextH}%
+ \def\PDFpageviewwrd{ /FitR \TextX\space\TextY\space\TextW\space\TextH}%
+ \edef\PDFpageview{/View [\PDFpageviewwrd]}}
+
+\def\xSetBlowUp#1#2#3#4#5% tag width height hoffset voffset
+ {\scratchdimen\MPx{#1}\relax
+ \ifdim\scratchdimen<#4
+ \ScaledPointsToBigPoints{0}\TextX
+ \multiply\scratchdimen 2
+ \else
+ \advance\scratchdimen-#4
+ \ScaledPointsToBigPoints{\number\scratchdimen}\TextX
+ \advance\scratchdimen#4
+ \advance\scratchdimen#4
+ \fi
+ \advance\scratchdimen\MPw{#1}%
+ \ScaledPointsToBigPoints{\number\scratchdimen}\TextW
+ %
+ \scratchdimen\MPy{#1}\relax
+ \ifdim\scratchdimen<#5
+ \ScaledPointsToBigPoints{0}\TextY
+ \multiply\scratchdimen 2
+ \else
+ \advance\scratchdimen-#5
+ \ScaledPointsToBigPoints{\number\scratchdimen}\TextY
+ \advance\scratchdimen#5
+ \advance\scratchdimen#5
+ \fi
+ \advance\scratchdimen\MPh{#1}%
+ \ScaledPointsToBigPoints{\number\scratchdimen}\TextH
+ %
+ \def\PDFpageviewkey{ fitr \TextX\space\TextY\space\TextW\space\TextH}%
+ \def\PDFpageviewwrd{ /FitR \TextX\space\TextY\space\TextW\space\TextH}%
+ \edef\PDFpageview{/View [\PDFpageviewwrd]}}
+
+\dontcomplain
+
+\def\StartPage#1%
+ {\doStartPage{1}{#1}}
+
+\def\doStartPage#1#2%
+ {\def\StopPage{\doStopPage{#1}{#2}}%
+ \setbox\scratchbox=\hbox\bgroup
+ \valign\bgroup\ignorespaces##\vss\cr}
+
+\def\doStopPage#1#2%
+ {\cr
+ \egroup
+ \egroup
+ \setbox\scratchbox=\vbox
+ {\vskip100pt
+ \hbox \ifcase#1 spread 200pt \else to \wd\scratchbox \fi
+ {\hss
+ \switchtobodyfont[big]%
+ \bfd\setupinterlinespace
+ \ifcase#1\else \SetBlowUp{title:\realfolio}\BlowX\BlowY\BlowH\BlowV \fi
+ \hpos{title:\realfolio}
+ {\framed
+ [frame=off,align=middle,
+ foregroundcolor=white,
+ background={title,blowup}]
+ {#2}}%
+ \hss}
+ \vskip100pt
+ \box\scratchbox}
+ \doFlushPage}
+
+\def\doFlushPage
+ {\scratchdimen=\ht\scratchbox
+ \advance\scratchdimen \dp\scratchbox
+ \advance\scratchdimen 100pt
+ \edef\height{\the\scratchdimen}
+ \scratchdimen=\wd\scratchbox
+ \advance\scratchdimen 100pt
+ \edef\width {\the\scratchdimen}
+ \expanded{\definepapersize[MASTER][width=\width,height=\height]}
+ \setuppapersize
+ [MASTER][MASTER]
+ \setuplayout
+ [topspace=25pt,backspace=25pt,
+ width=middle,header=0pt,footer=0pt,height=middle]
+ \centerbox{\box\scratchbox}
+ \page}
+
+\def\StartTopic#1%
+ {\unskip\unskip\cr
+ \doglobal\increment(\CurrentBlaBla,100)%
+ \vbox\bgroup
+ \vskip100pt
+ \bgroup
+ \definecolor[FrameColor][TitleColor]
+ \switchtobodyfont[big]
+ \bfd\setupinterlinespace
+ \xStartText#1\xStopText
+ \vskip25pt
+ \egroup}
+
+\def\StopTopic%
+ {\vskip-\lastskip
+ \vskip100pt
+ \egroup
+ \ignorespaces}
+
+\def\TitlePage#1%
+ {\doStartPage{0}{\def\\{\vskip1ex\bfc\def\\{\vskip1ex\bfb}}#1}
+ \StopPage}
+
+\doifnotmode{demo}{\endinput}
+
+\setupoutput[pdftex]
+
+\starttext
+
+\TitlePage{About Text\\Today's Talk\\Hans Hagen}
+
+\StartPage{The First Page}
+
+\StartTopic{Some Text}
+ \StartText \input tufte \StopText
+ \StartText \input knuth \StopText
+ \StartText \input zapf \StopText
+ \StartText \input knuth \StopText
+\StopTopic
+
+\StartTopic{Another Text}
+ \StartText \input tufte \StopText
+ \StartText \input zapf \StopText
+ \StartText \input knuth \StopText
+\StopTopic
+
+\StartTopic{Some More Text}
+ \StartText \input tufte \StopText
+ \StartText \input knuth \StopText
+ \StartText \input zapf \StopText
+ \StartText \input tufte \StopText
+\StopTopic
+
+\StartTopic{Some Text Agian}
+ \StartText \input tufte \StopText
+ \StartText \input zapf \StopText
+ \StartText \input knuth \StopText
+ \StartText \input tufte \StopText
+\StopTopic
+
+\StopPage
+
+\StartPage{The Second Page}
+
+\StartTopic{Some Text}
+ \StartText \input tufte \StopText
+ \StartText \input knuth \StopText
+ \StartText \input zapf \StopText
+ \StartText \input tufte \StopText
+ \StartText \input knuth \StopText
+ \StartText \input zapf \StopText
+\StopTopic
+
+\StartTopic{Another Text}
+ \StartText \input tufte \StopText
+ \StartText \input knuth \StopText
+ \StartText \input zapf \StopText
+\StopTopic
+
+\StartTopic{Some Nice Text}
+ \StartText \input tufte \StopText
+ \StartText \input knuth \StopText
+ \StartText \input zapf \StopText
+ \StartText \input tufte \StopText
+ \StartText \input tufte \StopText
+\StopTopic
+
+\StartTopic{Some Funny Text}
+ \StartText \input tufte \StopText
+ \StartText \input knuth \StopText
+\StopTopic
+
+\StartTopic{Quite Some Text}
+ \StartText \input tufte \StopText
+ \StartText \input knuth \StopText
+ \StartText \input zapf \StopText
+ \StartText \input tufte \StopText
+ \StartText \input knuth \StopText
+ \StartText \input zapf \StopText
+ \StartText \input tufte \StopText
+ \StartText \input knuth \StopText
+ \StartText \input zapf \StopText
+\StopTopic
+
+\StartTopic{Even More Text}
+ \StartText \input knuth \StopText
+ \StartText \input zapf \StopText
+ \StartText \input tufte \StopText
+ \StartText \input knuth \StopText
+ \StartText \input zapf \StopText
+\StopTopic
+
+\StopPage
+
+\StartPage{The Third Page}
+
+\StartTopic{Some Short Text}
+ \StartText \input tufte \StopText
+ \StartText \input knuth \StopText
+ \StartText \input zapf \StopText
+\StopTopic
+
+\StartTopic{Some Minimal Text}
+ \StartText \input tufte \StopText
+ \StartText \input zapf \StopText
+\StopTopic
+
+\StartTopic{Some More Text}
+ \StartText \input tufte \StopText
+ \StartText \input knuth \StopText
+ \StartText \input zapf \StopText
+ \StartText \input tufte \StopText
+ \StartText \input tufte \StopText
+\StopTopic
+
+\StopPage
+
+\stoptext
diff --git a/Master/texmf-dist/tex/context/base/s-pre-18.tex b/Master/texmf-dist/tex/context/base/s-pre-18.tex
new file mode 100644
index 00000000000..407f3082406
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/s-pre-18.tex
@@ -0,0 +1,177 @@
+%D \module
+%D [ file=s-pre-18,
+%D version=1999.08.20,
+%D title=\CONTEXT\ Style File,
+%D subtitle=Presentation Environment 18,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+
+
+% output=pdftex interface=en
+
+% todo: met pos en dan iedere titel
+
+\setuppapersize
+ [S6][S6]
+
+\setupbodyfont
+ [loc,ppl]
+
+\setupcolors
+ [state=start]
+
+\definecolor [shade-1] [s=.7]
+\definecolor [shade-2] [s=.1]
+
+\definecolor [shade-3] [s=.8]
+\definecolor [shade-4] [b=.8]
+
+\definecolor [shade-5] [g=.6]
+
+\setuplayout
+ [topspace=1cm,
+ height=fit,
+ backspace=1cm,
+ width=middle,
+ header=0pt,
+ footer=0pt,
+ bottomdistance=1cm]
+
+\setupbackgrounds
+ [state=repeat]
+
+\setupbackgrounds [page] [background=page]
+
+\defineoverlay [page] [\useMPgraphic{page}]
+\defineoverlay [text] [\useMPgraphic{text}]
+
+\startuseMPgraphic{page}
+ StartPage ;
+ path p ; numeric s ; pair cp ; cp := center Page ;
+ s := define_circular_shade(cp,cp,0,TextWidth,
+ \MPcolor{shade-1},\MPcolor{shade-2}) ;
+ fill Page withshade s ;
+ p := fullcircle xyscaled (TextWidth+1cm, TextHeight+1cm) shifted cp ;
+ s := define_circular_shade(cp,cp,0,TextWidth,\MPcolor{shade-3},
+ \MPcolor{shade-4}) ;
+ fill p withshade s ;
+ StopPage
+\stopuseMPgraphic
+
+\startuseMPgraphic{text}
+ StartPage ;
+ path p ; numeric s, t ; pair cp ; cp := center Page ;
+ s := define_circular_shade(cp,cp,0,TextWidth,
+ \MPcolor{shade-1},\MPcolor{shade-2}) ;
+ fill Page withshade s ;
+ p := llcorner Field[Text][Bottom] --
+ lrcorner Field[Text][Bottom] --
+ urcorner Field[Text][Text] --
+ ulcorner Field[Text][Text] -- cycle ;
+ p := p enlarged .5cm randomized .5cm ;
+ t := define_circular_shade(cp,cp,0,TextWidth,\MPcolor{shade-3},
+ \MPcolor{shade-4}) ;
+ fill p withshade t ;
+
+ def bottom_menu_button (expr nn, rr, pp, xx, yy, ww, hh, dd) =
+ if (pp>0) and (rr>0) :
+ if nn = 1 :
+ p := (0,0)--(ww,hh/2)--(0,hh)--cycle ;
+ elseif nn = 2 :
+ p := (0,hh/2)--(ww,hh)--(ww,0)--cycle ;
+ else :
+ p := origin--cycle ;
+ fi ;
+ fill p randomized 2.5mm shifted (xx,yy) withshade s ;
+ fi ;
+ enddef ;
+
+ \MPmenubuttons{bottom}
+
+ if length \MPstring{topic} > 0 :
+ graphictext
+ \MPstring{topic}
+ scaled 3
+ shifted ulcorner Field[Text][Text]
+ shifted (0,-1.5cm)
+ withshade s ;
+ fi ;
+
+ StopPage ;
+\stopuseMPgraphic
+
+\setupinteractionmenu
+ [bottom]
+ [state=start,
+ frame=off,
+ left=\hfill,
+ middle=\hskip.5cm,
+ width=2\bottomheight,
+ position=yes]
+
+\startinteractionmenu[bottom]
+ \but [previouspage] \\
+ \but [nextpage] \\
+\stopinteractionmenu
+
+\setupinteraction
+ [state=start,
+ click=no,
+ color=shade-5,
+ contrastcolor=shade-5,
+ menu=on]
+
+\setupwhitespace
+ [big]
+
+\def\Topic#1%
+ {\page
+ \setMPtext{topic}{#1}
+ \vbox to 2cm{}}
+
+\setMPtext{topic}{}
+
+\def\StartTitlePage%
+ {\startstandardmakeup[bottomstate=none]
+ \setupalign[middle]
+ \vfill}
+
+\def\StopTitlePage%
+ {\stopstandardmakeup
+ \setuplayout[bottom=1.5cm]
+ \setupbackgrounds[page][background=text]}
+
+\def\TitleString#1#2%
+ {\indent
+ \startMPcode
+ graphictext
+ "#2"
+ scaled #1
+ withdrawcolor .4white
+ withfillcolor .7white
+ withpen pencircle scaled 2pt ;
+ \stopMPcode
+ \vfill}
+
+\doifnotmode{demo}{\endinput}
+
+\starttext
+
+\StartTitlePage
+ \TitleString{8}{Welcome}
+ \TitleString{4}{to my favourite}
+ \TitleString{8}{Quotes}
+\StopTitlePage
+
+\Topic {Douglas R. Hofstadter} \input douglas \page
+\Topic {Donald E. Knuth} \input knuth \page
+\Topic {Edward R. Tufte} \input tufte \page
+\Topic {Hermann Zapf} \input zapf \page
+
+\stoptext
diff --git a/Master/texmf-dist/tex/context/base/s-pre-19.tex b/Master/texmf-dist/tex/context/base/s-pre-19.tex
index c6ad4f6936b..3715d6ac176 100644
--- a/Master/texmf-dist/tex/context/base/s-pre-19.tex
+++ b/Master/texmf-dist/tex/context/base/s-pre-19.tex
@@ -213,7 +213,6 @@
alternative = 2 : 36pt squeezed squeezeness elseif
alternative = 3 : 36pt randomized randomness else
: 36pt fi ;
-
pickup pencircle scaled 3pt ;
fill Page withcolor \MPcolor{PageColor} ;
@@ -232,7 +231,8 @@
% calls to *_menu_button are generated automatically ...
- def right_menu_button (expr nn, rr, pp, xx, yy, ww, hh, dd) =
+ vardef right_menu_button (expr nn, rr, pp, xx, yy, ww, hh, dd) =
+ save q ; path q ;
if (pp>0) and (rr>0) :
q := rightsuperbutton(p,xx,yy,RightEdgeWidth,hh) ; % \MPw{menu:right:\realfolio}
fill q withcolor \MPcolor{TextColor} ;
@@ -337,6 +337,7 @@ enddef ;
A Simple Style Demo\\
Hans Hagen, August 2000}
+
\Topic {Douglas R. Hofstadter} \input douglas \page
\Topic {Donald E. Knuth} \input knuth \page
\Topic {Edward R. Tufte} \input tufte \page
diff --git a/Master/texmf-dist/tex/context/base/s-pre-26.tex b/Master/texmf-dist/tex/context/base/s-pre-26.tex
new file mode 100644
index 00000000000..a995169607d
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/s-pre-26.tex
@@ -0,0 +1,255 @@
+%D \module
+%D [ file=s-pre-26,
+%D version=2001.02.18,
+%D title=\CONTEXT\ Style File,
+%D subtitle=Presentation Environment 26,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D modes: reverse
+
+%D This is a nice and simple style, written in februari
+%D 2001. It uses a square papersize, derived from \type {S4}.
+%D Because this style is meant to be used with Zapf
+%D Chancery, I dedicate this style to Volker Schaa, a fan of
+%D Zapf.
+
+\setuppapersize
+ [S44][S44]
+
+\startmode[asintended]
+ \definetypeface[zaphy][cg][calligraphy][chancery]
+ \setupbodyfont[zaphy,cg,12pt]
+\stopmode
+
+\startnotmode[asintended]
+ \setupbodyfont[13pt]
+\stopnotmode
+
+%D We use the whole page.
+
+\setuplayout
+ [backspace=0pt,
+ topspace=0pt,
+ header=0pt,
+ footer=0pt,
+ bottom=0pt,
+ width=middle,
+ height=middle]
+
+%D We will be very tolerant in alignment.
+
+\setuptolerance
+ [verytolerant,stretch]
+
+%D Of course use navigation, but we hide the in this case
+%D ugly reverse video hyper spot.
+
+\setupinteraction
+ [state=start,
+ color=white,
+ contrastcolor=white,
+ style=\underbar,
+ click=no]
+
+%D This style looks best in a dark room, full screen.
+
+\setupinteractionscreen
+ [option=max]
+
+%D We use colors and remap a couple of standard colors.
+
+\setupcolors
+ [state=start]
+
+\definecolor[white] [s=.8]
+\definecolor[red] [r=.7]
+\definecolor[green] [g=.7]
+\definecolor[blue] [b=.7]
+\definecolor[yellow][r=.7,g=.7]
+
+\definecolor [PageColor][black]
+
+%D These colors will cyclic be assigned to \type
+%D {TextColor}.
+
+\definecolor [TextColor 0][white]
+\definecolor [TextColor 1][red]
+\definecolor [TextColor 2][green]
+\definecolor [TextColor 3][blue]
+\definecolor [TextColor 4][yellow]
+
+\definecolor [TextColor] [TextColor 0]
+
+%D We will collect everything in a layer.
+
+\definelayer
+ [main]
+ [state=repeat]
+
+%D We have quite some overlays.
+
+\defineoverlay [page] [\reuseMPgraphic{page}]
+\defineoverlay [text] [\useMPgraphic{text}]
+\defineoverlay [next] [\overlaybutton{nextpage}]
+\defineoverlay [prev] [\overlaybutton{previouspage}]
+\defineoverlay [main] [\composedlayer{main}]
+
+%D These end up as paper, page and text backgrounds. We need
+%D to locate the foreground, otherwise hyperlinks will not
+%D work.
+
+\setupbackgrounds % otherwise in acrobat 5 rounding error
+ [paper] % and one pixel white line
+ [backgroundcolor=Pagecolor,
+ background=page]
+
+\setupbackgrounds
+ [page]
+ [background={page,prev,foreground,main}]
+
+\setupbackgrounds
+ [text]
+ [background=next,
+ backgroundoffset=-10pt]
+
+%D This means that clicking on the center brings you to the
+%D next page, while clicking on teh page frame brings you one
+%D page back.
+
+%D As usual, the graphics are handled by \METAPOST:
+
+\startuseMPgraphic{text}
+ path p ; p := unitsquare xyscaled (OverlayWidth,OverlayHeight) ;
+ color c ; c := (.7+uniformdeviate.3)*\MPcolor{TextColor} ;
+ p := p enlarged -1.25pt ;
+ filldraw p withcolor c ;
+ draw p withpen pencircle scaled 2.5pt withcolor .75c ;
+\stopuseMPgraphic
+
+\startreusableMPgraphic{page}
+ path p ; p := unitsquare xyscaled (OverlayWidth,OverlayHeight) ;
+ color c ; c := \MPcolor{PageColor} ;
+ filldraw p enlarged 5pt withcolor c ; % bleeding
+\stopreusableMPgraphic
+
+%D The text is typeset in a framed text. We cycle trough the
+%D colors by means of a counter. This counter also determines
+%D the positioning on the main layer. The width is slightly
+%D random.
+
+\newcounter\KindOfTopic % and cycle through corners
+\newdimen \TopicWidth % with randomized widths
+
+\defineframedtext
+ [TopicText]
+ [frame=off,
+ offset=10pt,
+ style=bold,
+ width=\TopicWidth,
+ background=text,
+ before=,
+ after=,
+ align=normal]
+
+\def\BeforeTopic
+ {\ifcase\KindOfTopic\relax
+ \TopicWidth=.7\textwidth
+ \definecolor[CharColor][black]
+ \else
+ \getrandomdimen\TopicWidth{.55\textwidth}{.7\textwidth}
+ \definecolor[CharColor][white]
+ \fi
+ \doifmode{reverse}
+ {\setupframedtexts[TopicText][foregroundcolor=CharColor]}
+ \definecolor[TextColor][TextColor \KindOfTopic]
+ \ifcase\KindOfTopic\relax
+ \setuplayer[main][x=.5\textwidth,y=.5\textheight,location=c] \or
+ \setuplayer[main][x=0pt, y=0pt, location=rb] \or
+ \setuplayer[main][x=\textwidth, y=0pt, location=lb] \or
+ \setuplayer[main][x=\textwidth, y=\textheight, location=lt] \or
+ \setuplayer[main][x=0pt, y=\textheight, location=rt] \fi}
+
+\def\AfterTopic
+ {\ifnum\KindOfTopic=4
+ \gdef\KindOfTopic{1}
+ \else
+ \doglobal\increment\KindOfTopic
+ \fi}
+
+\def\StartTopic
+ {\BeforeTopic
+ \startstandardmakeup
+ \setlayer[main] \bgroup \startTopicText[none]
+ }%\setupwhitespace[big]} % generates an empty line
+
+\def\StopTopic
+ {\stopTopicText \egroup
+ \stopstandardmakeup
+ \AfterTopic}
+
+%D The title and colofon page are centered on the page.
+
+\def\StartNopic
+ {\doglobal\newcounter\KindOfTopic % centered at the page
+ \StartTopic
+ \bfd\setupinterlinespace
+ \setupinteraction[color=,contrastcolor=]%
+ \def\\{\blank\bfb\setupinterlinespace\def\\{\blank}}%
+ \raggedcenter\ignorespaces}
+
+\def\StopNopic
+ {\StopTopic}
+
+\let\StartTitlePage\StartNopic \let\StartColofonPage\StartNopic
+\let\StopTitlePage \StopNopic \let\StopColofonPage \StopNopic
+
+\def\TitlePage #1{\StartTitlePage #1\StopTitlePage}
+\def\ColofonPage#1{\StartColofonPage#1\StopColofonPage}
+
+%D We provide a minimum of title commands.
+
+\definehead
+ [Title]
+ [title]
+
+\definehead
+ [Subject]
+ [subject]
+
+\setuphead
+ [Title]
+ [style=\bfb,
+ page=,
+ before=,
+ after=\blank]
+
+\setuphead
+ [Subject]
+ [style=\bfa,
+ before=\blank,
+ after=\blank]
+
+\doifnotmode{demo}{\endinput}
+
+\def\Sample #1 {\input #1 \par \rightaligned{--- #1 ---}}
+
+\starttext
+
+\StartNopic The \ConTeXt\ Test Quotes \\ \currentdate \StopNopic
+
+\StartTopic \Sample tufte \StopTopic
+\StartTopic \Sample knuth \StopTopic
+\StartTopic \Sample zapf \StopTopic
+\StartTopic \Sample douglas \StopTopic
+\StartTopic \Sample stork \StopTopic
+\StartTopic \Sample materie \StopTopic
+
+\StartNopic There Will Be Some More \StopNopic
+
+\stoptext
diff --git a/Master/texmf-dist/tex/context/base/s-pre-27.tex b/Master/texmf-dist/tex/context/base/s-pre-27.tex
new file mode 100644
index 00000000000..eda75e8f468
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/s-pre-27.tex
@@ -0,0 +1,181 @@
+%D \module
+%D [ file=s-pre-27,
+%D version=1999.08.20,
+%D title=\CONTEXT\ Style File,
+%D subtitle=Presentation Environment 27,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\setuppapersize
+ [S6][S6]
+
+% \setupbodyfont[ppl]
+
+\definetypeface[main][rm][casual][informal][default]
+\loadmapfile[original-micropress-informal.map]
+
+\setupbodyfont[main,10pt]
+
+\setuplayout
+ [footerdistance=20pt,
+ footer=40pt,
+ %footer=24pt,
+ %bottomdistance=10pt,
+ %bottom=12pt,
+ header=0pt,
+ backspace=20pt,
+ topspace=20pt,
+ width=middle,
+ height=fit]
+
+% \def\MainTitle#1{\setupfootertexts[\hfill#1]}
+% \def\SubTitle #1{\setupbottomtexts[\hfill#1]}
+%
+% \MainTitle{a dull talk held at \currentdate}
+% \SubTitle {welcome to whatever}
+%
+% \setupbottom
+% [style=\ssbf,
+% color=white]
+%
+% \setupfooter
+% [style=\ssbfb,
+% color=white]
+
+\setupfooter
+ [strut=no,
+ style=\bfb,
+ color=white]
+
+\setupinteraction
+ [state=start]
+
+\setupinteractionscreen
+ [option=max]
+
+\definecolor[white] [s=.8]
+\definecolor[red] [r=.7]
+\definecolor[green] [g=.7]
+\definecolor[blue] [b=.7]
+\definecolor[yellow][r=.7,g=.7]
+
+\setupcolors
+ [state=start]
+
+\defineoverlay [page] [\reuseMPgraphic{page}]
+\defineoverlay [text] [\useMPgraphic {text}]
+\defineoverlay [continue] [\overlaybutton {forward}]
+
+\setupbackgrounds
+ [page]
+ [background={page,continue}]
+
+\definecolor [PageColor] [red]
+\definecolor [TextColor] [yellow]
+
+\defineframedtext
+ [TopicPage]
+
+\defineframedtext
+ [TopicText]
+
+\setupframedtexts
+ [TopicPage]
+ [width=\textwidth,
+ height=\textheight,
+ offset=overlay]
+
+\setupframedtexts
+ [TopicText]
+ [offset=10pt,
+ style=bold, % hm
+ width=\TopicWidth,
+ background=text,
+ align=normal]
+
+\setupframedtexts
+ [TopicPage,TopicText]
+ [frame=off,
+ depthcorrection=off,
+ before=,
+ after=]
+
+\newbox \TopicBox
+\newcounter \KindOfTopic
+\newdimen \TopicWidth
+
+\def\KindOfTopic{1}
+
+\def\StartTopic
+ {\getrandomdimen\TopicWidth{.5\textwidth}{.7\textwidth}
+ \ifcase\KindOfTopic\or
+ \setupframedtexts [TopicPage] [align={right,high}] \or
+ \setupframedtexts [TopicPage] [align={left,high}] \or
+ \setupframedtexts [TopicPage] [align={left,low}] \or
+ \setupframedtexts [TopicPage] [align={right,low}] \fi
+ \setbox\scratchbox=\vbox \bgroup \dontcomplain
+ \noindent \startTopicPage [none]
+ \noindent \startTopicText [none]
+ \setuptolerance [verytolerant,stretch]}
+
+\def\StopTopic%
+ {\stopTopicText
+ \stopTopicPage
+ \egroup
+ \global\setbox\TopicBox=\vbox
+ {\startoverlay
+ {\box\TopicBox} {\box\scratchbox}
+ \stopoverlay}
+ \copy\TopicBox
+ \ifnum\KindOfTopic=4
+ \def\KindOfTopic{1}
+ \else
+ \increment\KindOfTopic
+ \fi
+ \page}
+
+\startuseMPgraphic{text}
+ path p ; p := unitsquare xyscaled (OverlayWidth,OverlayHeight) ;
+ color c ; c := (.7+uniformdeviate.3)*\MPcolor{TextColor} ;
+ p := p enlarged -1.25pt ;
+ fill p withcolor c ;
+ draw p withpen pencircle scaled 2.5pt withcolor .75c ;
+\stopuseMPgraphic
+
+\startreusableMPgraphic{page}
+ path p ; p := unitsquare xyscaled (OverlayWidth,OverlayHeight) ;
+ color c ; c := \MPcolor{PageColor} ;
+ fill p withcolor c ;
+ draw p withpen pencircle scaled 2.5pt withcolor c ;
+\stopreusableMPgraphic
+
+\def\StartNopic#1\StopNopic
+ {\setupfootertexts
+ [\vbox to \footerheight
+ {\vfill
+ \raggedleft
+ \def\\{\endgraf\tx\setstrut\strut}
+ \setstrut\strut\ignorespaces#1\unskip\endgraf\removedepth}]
+ \null \page}
+
+\def\TitlePage#1%
+ {\StartNopic#1\StopNopic}
+
+\setuphead[title] [style=\bfc,after=\blank]
+\setuphead[subject][style=\bfa,before=\blank]
+
+\doifnotmode{demo}{\endinput}
+
+\starttext
+
+\TitlePage
+ {a dull talk held at \currentdate\\welcome to whatever}
+
+\dorecurse{10}{\StartTopic \input tufte \StopTopic}
+
+\stoptext
diff --git a/Master/texmf-dist/tex/context/base/s-pre-60.tex b/Master/texmf-dist/tex/context/base/s-pre-60.tex
index bd6b6ae4f77..89ddbbba403 100644
--- a/Master/texmf-dist/tex/context/base/s-pre-60.tex
+++ b/Master/texmf-dist/tex/context/base/s-pre-60.tex
@@ -45,7 +45,7 @@
[set=\setups{set-stepper},
nofsteps=50]
-\defineproperty[step:busy][layer][state=start]
+\defineproperty[step:busy][layer][state=start,global=no]
\definereference [SetupStepper] [JS(SetupStepper{step,\StepMaximum})]
\definereference [ResetStepper] [JS(ResetStepper)]
@@ -62,20 +62,36 @@
\def\NextStepLayer {step:\the\numexpr\StepCounter+1\relax}
\def\FirstStepLayer{step:1}
-\def\StartStep
- {\ifvmode
- \scratchskip\lastskip
- \vskip-\scratchskip
- \startproperty[\StepLayer]%
- \vskip\scratchskip
- \else
- \startproperty[\StepLayer]%
- \fi
- \ignorespaces}
-
-\def\StopStep
- {\removeunwantedspaces
- \stopproperty}
+\startmode[mkiv]
+
+ \def\StartStep
+ {\startproperty[\StepLayer]%
+ \ignorespaces}
+
+ \def\StopStep
+ {\removeunwantedspaces
+ \stopproperty}
+
+\stopmode
+
+\startnotmode[mkiv]
+
+ \def\StartStep
+ {\ifvmode
+ \scratchskip\lastskip
+ \vskip-\scratchskip
+ \startproperty[\StepLayer]%
+ \vskip\scratchskip
+ \else
+ \startproperty[\StepLayer]%
+ \fi
+ \ignorespaces}
+
+ \def\StopStep
+ {\removeunwantedspaces
+ \stopproperty}
+
+\stopnotmode
\def\StartSteps{\iftrialtypesetting\else\ResetStep\NextStep\StartStep\fi}
\def\StopSteps {\iftrialtypesetting\else\StopStep \PrevStep \fi}
diff --git a/Master/texmf-dist/tex/context/base/s-pre-61.tex b/Master/texmf-dist/tex/context/base/s-pre-61.tex
index c2040a0d935..fa52d158a87 100644
--- a/Master/texmf-dist/tex/context/base/s-pre-61.tex
+++ b/Master/texmf-dist/tex/context/base/s-pre-61.tex
@@ -15,9 +15,13 @@
\usemodule[pre-60]
-\usetypescriptfile[type-ghz]
-
-\definetypeface[mainface][ss][sans][optima-nova][default][encoding=\defaultencoding]
+\doifmodeelse {mkiv} {
+ \usetypescriptfile[type-hgz]
+ \definetypeface[mainface][ss][sans][optima-nova][default]
+} {
+ \usetypescriptfile[type-ghz]
+ \definetypeface[mainface][ss][sans][optima-nova][default][encoding=\defaultencoding]
+}
\setupbodyfont[mainface,ss,18pt]
\setupinterlinespace[line=3.25ex]
@@ -168,9 +172,7 @@
style=\HeadFont]
\setupheadertexts
- [\doiftextelse{\placeheadtext[Topic]}
- {\placeheadtext[Topic]}
- {\placeheadtext[Nopic]}]
+ [\doiftextelse{\currentheadnumber}{\placeheadtext[Topic]}{\placeheadtext[Nopic]}]
[]
\setuppagenumbering
@@ -219,7 +221,7 @@
[bottom] [text]
[background=topics]
-\doifnotmode{demo}{\endinput}
+% \doifnotmode{demo}{\endinput}
\starttext
diff --git a/Master/texmf-dist/tex/context/base/s-pre-62.tex b/Master/texmf-dist/tex/context/base/s-pre-62.tex
index c3683cbfad6..64bb3495b5d 100644
--- a/Master/texmf-dist/tex/context/base/s-pre-62.tex
+++ b/Master/texmf-dist/tex/context/base/s-pre-62.tex
@@ -207,4 +207,22 @@
\def\TitlePage {\doTitlePage\TitleFont\relax}
\def\SubTitlePage{\doTitlePage\TitleFont\SubTitleFont}
-\endinput
+\doifnotmode{demo} {\endinput}
+
+\starttext
+
+\StartTitlePage
+bla\\bla bla\\bla
+\StopTitlePage
+
+\StartRemark {Bla Bla}
+ Bla Bla Bla. \FlushStep
+ Bla Bla Bla. \FlushStep
+\StopRemark
+
+\StartRemark {Bla Bla}
+ Bla Bla Bla. \FlushStep
+ Bla Bla Bla. \FlushStep
+\StopRemark
+
+\stoptext
diff --git a/Master/texmf-dist/tex/context/base/s-pre-66.tex b/Master/texmf-dist/tex/context/base/s-pre-66.tex
new file mode 100644
index 00000000000..916a7de66b6
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/s-pre-66.tex
@@ -0,0 +1,133 @@
+%D \module
+%D [ file=s-pre-66,
+%D version=2009.02.24,
+%D title=\CONTEXT\ Style File,
+%D subtitle=Presentation Environment 66,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=Hans Hagen]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D Cambria (made in the aftermath of testing \OPENTYPE\ math).
+
+% \enablemode[paper]
+
+\usemodule[pre-60]
+\usemodule[abr-01]
+
+\definepapersize
+ [wide]
+ [width=960pt,
+ height=600pt]
+
+\setuppapersize
+ [wide]
+ [wide]
+
+\setuplayout
+ [topspace=20pt,
+ bottomspace=20pt,
+ header=0pt,
+ footer=0pt,
+ backspace=20pt,
+ height=middle,
+ rightmargin=0pt,
+ rightedge=\dimexpr220pt-40pt\relax,
+ rightedgedistance=40pt,
+ leftedge=0pt,
+ leftmargin=0pt,
+ cutspace=220pt,
+ width=\dimexpr960pt-40pt-220pt\relax]
+
+\definebodyfontenvironment
+ [20pt]
+
+\definefontfeature[default][default][mode=node,script=latn]
+
+\usetypescript
+ [cambria]
+
+\setupbodyfont
+ [cambria,20pt] \bf
+
+\setupwhitespace
+ [big]
+
+\setupcolors
+ [state=start]
+
+\definecolor[pagecolor][s=.25]
+\definecolor[edgecolor][b=.50,g=.75,r=.75]
+
+\setupinteraction
+ [state=start,
+ click=no,
+ color=,
+ contrastcolor=]
+
+\defineoverlay[pagegraphic][\reuseMPgraphic{pagegraphic}]
+
+\startuseMPgraphic{pagegraphic}
+ StartPage ;
+ fill Page enlarged 10pt withcolor \MPcolor{pagecolor} ;
+ fill Page enlarged 10pt leftenlarged (CutSpace - bbwidth(Page) - 10pt) withcolor \MPcolor{edgecolor} ;
+ % fill Field[Text][RightEdge] withcolor green ;
+ % fill Field[Text][Text] withcolor yellow ;
+ StopPage ;
+\stopuseMPgraphic
+
+\setupbackgrounds
+ [page]
+ [background=pagegraphic]
+
+\setupbackgrounds
+ [text]
+ [rightedge]
+ [background=edge]
+
+\definelayer
+ [edge]
+ [width=\rightedgewidth,
+ state=repeat]
+
+\setuphead
+ [chapter]
+ [style=\bfc,
+ color=edgecolor]
+
+\setupcolors
+ [textcolor=edgecolor]
+
+\newcounter\MyCounter
+
+\def\StartRemark#1%
+ {\doglobal\increment\MyCounter % hm, we could use the autoref (todo in cont-xp)
+ \title[topic:\MyCounter]{#1}
+ \setlayer[edge][preset=middletop,y=\thelayerheight{edge}]{\strut\color[pagecolor]{\bf\goto{#1}[topic:\MyCounter]}}
+ \StartSteps}
+
+\def\StopRemark
+ {\StopSteps
+ \page}
+
+\def\StartRemark#1%
+ {\doglobal\increment\MyCounter % hm, we could use the autoref (todo in cont-xp)
+ \title[topic:\MyCounter]{#1}
+ \StartSteps
+ \def\StopRemark
+ {\StopSteps
+ \page
+ \setlayer[edge][preset=middletop,y=\thelayerheight{edge}]{\strut\color[pagecolor]{\bf\goto{#1}[topic:\MyCounter]}}}}
+
+\def\StartTitlePage
+ {\startstandardmakeup[top=\vss,bottom=\vss\vss]
+ \definedfont[Bold sa 4]
+ \raggedcenter
+ \setupinterlinespace
+ \baselineskip=1\baselineskip plus 1fil minus 1fil\relax}
+
+\def\StopTitlePage
+ {\stopstandardmakeup}
diff --git a/Master/texmf-dist/tex/context/base/s-pre-67.tex b/Master/texmf-dist/tex/context/base/s-pre-67.tex
new file mode 100644
index 00000000000..53c3260f59b
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/s-pre-67.tex
@@ -0,0 +1,144 @@
+% todo: version of placement that also takes the sync node
+
+\usemodule[s][abr-02]
+\usemodule[s][pre-60]
+
+\definecolor[red:fullcolor] [r=1]
+\definecolor[red:lightcolor] [r=.5]
+\definecolor[red:darkcolor] [r=.375]
+
+\definecolor[green:fullcolor] [g=1]
+\definecolor[green:lightcolor] [g=.5]
+\definecolor[green:darkcolor] [g=.375]
+
+\definecolor[blue:fullcolor] [b=1]
+\definecolor[blue:lightcolor] [b=.5]
+\definecolor[blue:darkcolor] [b=.375]
+
+\definepalet[red-scheme] [fullcolor=red:fullcolor, lightcolor=red:lightcolor, darkcolor=red:darkcolor]
+\definepalet[green-scheme][fullcolor=green:fullcolor,lightcolor=green:lightcolor,darkcolor=green:darkcolor]
+\definepalet[blue-scheme] [fullcolor=blue:fullcolor, lightcolor=blue:lightcolor, darkcolor=blue:darkcolor]
+
+\setuppalet[red-scheme]
+
+\setupcolors
+ [textcolor=darkcolor]
+
+\setupinteraction
+ [color=darkcolor,
+ contrastcolor=darkcolor]
+
+\startuseMPgraphic{bullet}
+ path b, p ;
+ p := fullsquare scaled .5LineHeight ;
+ b := boundingbox p ;
+ p := p rotatedaround(center p, 45) ;
+ p := p shifted (0,-.125StrutDepth) ;
+ fill p withcolor \MPcolor{lightcolor} ;
+ setbounds currentpicture to b ;
+\stopuseMPgraphic
+
+\startuseMPgraphic{bar}
+ path b, p ;
+ p := fullsquare scaled .25LineHeight ;
+ b := boundingbox p ;
+ p := p rotatedaround(center p, 45) ;
+ p := p shifted (0,+.25StrutDepth) ;
+ fill p withcolor \MPcolor{lightcolor} ;
+ setbounds currentpicture to b ;
+\stopuseMPgraphic
+
+\startuseMPgraphic{page}
+ StartPage ;
+ fill Page enlarged 5mm withcolor .1[white,\MPcolor{fullcolor}] ;
+ interim linecap := butt ;
+ numeric h ; h := bbheight(Page)/4 ;
+ numeric w ; w := bbwidth(Page)/4 ;
+ h := h randomized(h) ;
+ w := w randomized(w) ;
+ draw
+ ulcorner Page shifted (0,-h) -- ulcorner Page -- ulcorner Page shifted (w,0)
+ withpen pensquare scaled .5cm
+ withcolor \MPcolor{lightcolor} ;
+ numeric h ; h := bbheight(Page)/4 ;
+ numeric w ; w := bbwidth(Page)/4 ;
+ h := h randomized(h) ;
+ w := w randomized(w) ;
+ draw
+ lrcorner Page shifted (0,h) -- lrcorner Page -- lrcorner Page shifted (-w,0)
+ withpen pensquare scaled .5cm
+ withcolor \MPcolor{lightcolor} ;
+ setbounds currentpicture to Page ;
+ StopPage ;
+\stopuseMPgraphic
+
+\defineoverlay[page][\useMPgraphic{page}]
+
+\definesymbol[1][\reuseMPgraphic{bullet}]
+\definesymbol[2][\reuseMPgraphic{bar}]
+
+\setupitemgroup[itemize][2][width=1em]
+
+\setupinteraction
+ [state=start,
+ click=no]
+
+\setuppapersize
+ [S6][S6]
+
+\setuplayout
+ [width=middle,
+ height=middle,
+ header=0pt,
+ footer=0pt,
+ backspace=1cm,
+% topspace=1cm]
+ topspace=.5cm]
+
+\setupbackgrounds
+ [page]
+ [background=page]
+
+\setuphead
+ [chapter]
+ [command=\MyCommand,
+ before=,
+ after={\blank[disable]},
+ color=lightcolor,
+ style=\bfc]
+
+\definelayer
+ [title]
+ [width=\paperwidth,
+ height=\paperheight]
+
+\setupbackgrounds
+ [page]
+ [background={page,title}]
+
+\setupwhitespace
+ [big]
+
+\def\MyCommand#1#2%
+ {\setlayer[title][preset=rightbottom,x=.75cm,y=.5cm]{#2}}
+
+\def\titlepage#1#2%
+ {\startstandardmakeup
+ \definefont[LargeFont][Normal at 120pt]
+ \setlayerframed
+ [title]
+ [preset=lefttop,x=1cm,y=.25cm]
+ [align=flushleft,foregroundstyle=\LargeFont,offset=0pt,foregroundcolor=lightcolor,frame=off]
+ {#1}
+ \definefont[SmallFont][Normal at 60pt]
+ \setlayerframed
+ [title]
+ [preset=rightbottom,x=1cm,y=.5cm]
+ [align=flushright,foregroundstyle=\SmallFont,offset=0pt,foregroundcolor=lightcolor,frame=off]
+ {#2}
+ \stopstandardmakeup}
+
+\let\Title\title
+\let\TitlePage\titlepage
+
+\endinput
diff --git a/Master/texmf-dist/tex/context/base/s-pre-70.tex b/Master/texmf-dist/tex/context/base/s-pre-70.tex
new file mode 100644
index 00000000000..1a842388b0e
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/s-pre-70.tex
@@ -0,0 +1,170 @@
+% engine=luatex
+
+%D \module
+%D [ file=s-pre-70,
+%D version=2008.04.15,
+%D title=\CONTEXT\ Style File,
+%D subtitle=Presentation Environment 70,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA / Hans Hagen]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\usemodule[punk] \usetypescript[punk] \setupbodyfont[punk,20pt]
+
+%D At the cost of more runtime and a larger output file, we
+%D turn on randomization. The instances are cached in the
+%D MkIV cache, so successive runs use the same shapes.
+
+\EnableRandomPunk
+
+%D We use the regular screen size paper and layout setup.
+
+\setuppapersize
+ [S6][S6]
+
+\setuplayout
+ [topspace=30pt,
+ backspace=30pt,
+ width=middle,
+ height=fit,
+ header=0pt,
+ footer=0pt,
+ bottomdistance=24pt,
+ bottom=30pt,
+ bottom=18pt,
+ top=0pt]
+
+\setupinterlinespace
+ [top=height,
+ line=1.25\bodyfontsize]
+
+\setupcolors
+ [state=start,
+ textcolor=white]
+
+\setupinteraction
+ [state=start,
+ %click=off,
+ menu=on]
+
+%D We predefine a few palets. Of course you can define more.
+
+\definecolor[punkblue] [r=.4,b=.8,g=.4]
+\definecolor[punkgreen] [r=.4,b=.4,g=.8]
+\definecolor[punkred] [r=.8,b=.4,g=.4]
+\definecolor[punkyellow][r=.6,g=.6,b=.2]
+
+\definepalet [punk-one] [textcolor=punkblue,pagecolor=punkgreen]
+\definepalet [punk-two] [textcolor=punkred,pagecolor=punkyellow]
+\definepalet [punk-three] [textcolor=punkblue,pagecolor=punkyellow]
+\definepalet [punk-one-reverse] [textcolor=punkgreen,pagecolor=punkblue]
+\definepalet [punk-two-reverse] [textcolor=punkyellow,pagecolor=punkred]
+\definepalet [punk-three-reverse] [textcolor=punkyellow,pagecolor=punkblue]
+
+\setuppalet[punk-one]
+
+%D We use a few backgrounds. The hyperlink that invokes the
+%D stepper is hooked into the text background.
+
+\definelayer
+ [page]
+ [width=\paperwidth,
+ height=\paperheight]
+
+\setupbackgrounds
+ [page]
+ [background={color,page},
+ backgroundcolor=pagecolor,
+ setups=pagestuff]
+
+\setupbackgrounds
+ [text]
+ [background={color,invoke},
+ backgroundoffset=12pt,
+ backgroundcolor=textcolor]
+
+%D We need different symbols for itemized lists.
+
+\definesymbol[1][\hbox{\lower1ex\hbox{*}}]
+\definesymbol[2][\endash]
+\definesymbol[3][\letterhash]
+\definesymbol[3][>]
+
+%D We don't want these reversed clicked areas in Acrobat.
+
+\setupinteraction
+ [click=no]
+
+%D We define a rather simple navigational panel at the
+%D bottom
+
+\setupinteractionmenu
+ [bottom]
+ [color=white, % pagecolor,
+ contrastcolor=white, % pagecolor,
+ background=color,
+ backgroundcolor=textcolor,
+ frame=off,
+ height=24pt,
+ left=\hfill,
+ middle=\hskip12pt]
+
+\setupsubpagenumber
+ [state=start]
+
+\startinteractionmenu[bottom]
+ \txt
+ \interactionbar
+ [alternative=d,
+ symbol=yes,
+ color=white,
+ contrastcolor=textcolor]
+ \\
+ \hfilll
+ \but [previouspage] < < < \\
+ \but [nextpage] > > > \\
+\stopinteractionmenu
+
+%D Instead of the normal symbols we use more punky ones.
+
+\startsymbolset [punk]
+ \definesymbol[previous] [\string<\string<]
+ \definesymbol[somewhere] [\string^\string^]
+ \definesymbol[next] [\string>\string>]
+\stopsymbolset
+
+\setupinteraction[symbolset=punk]
+
+%D Because the font is rather large, we use less whitespace.
+
+\setuphead
+ [chapter]
+ [after={\blank[big]}]
+
+%D Run this file with the command: \type {context --mode=demo s-pre-70}
+%D in order to get an example.
+
+\doifnotmode{demo} {\endinput}
+
+\usemodule[pre-60] % use the stepper
+
+\starttext
+
+\title {Punk for dummies}
+
+\dorecurse{10} {
+ \title{Just a few dummy pages}
+ \StartSteps \startitemize[packed]
+ \startitemize
+ \startitem bla \FlushStep \stopitem
+ \startitem bla bla \FlushStep \stopitem
+ \startitem bla bla bla \FlushStep \stopitem
+ \startitem bla bla bla bla \FlushStep \stopitem
+ \stopitemize \StopSteps
+}
+
+\stoptext
diff --git a/Master/texmf-dist/tex/context/base/s-pre-71.tex b/Master/texmf-dist/tex/context/base/s-pre-71.tex
new file mode 100644
index 00000000000..91075d54d37
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/s-pre-71.tex
@@ -0,0 +1,210 @@
+% engine=luatex
+
+%D \module
+%D [ file=s-pre-71,
+%D version=2008.08.05,
+%D title=\CONTEXT\ Style File,
+%D subtitle=Presentation Environment 71,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D I might improve this module so consider it experimental.
+
+% \enablemode[numbers]
+% \enablemode[paper]
+
+\usemodule[pre-60,abr-02]
+
+\setupinteraction[state=start,click=off]
+
+\definepapersize[wide][width=900pt,height=600pt]
+
+\setuppapersize[wide][wide]
+
+\setuplayout[page]
+
+% \setupbodyfont[15pt]
+
+\usetypescriptfile[type-hgz]
+\usetypescript[palatino-informal]
+\setupbodyfont[palatino-informal,15pt]
+
+\setupsorting[logo][style=]
+
+\startnotmode[paper]
+ \setupbackgrounds[page][background=color,backgroundcolor=black]
+\stopnotmode
+
+\TransparencyHack
+
+\definelayer[page][width=\paperwidth,height=\paperheight]
+
+\definecolor[TopicColor-1][r=.3,g=.4,b=.5]
+\definecolor[TopicColor-2][r=.3,g=.5,b=.4]
+\definecolor[TopicColor-3][r=.4,g=.3,b=.5]
+\definecolor[TopicColor-4][r=.4,g=.5,b=.3]
+\definecolor[TopicColor-5][r=.5,g=.3,b=.4]
+\definecolor[TopicColor-6][r=.5,g=.4,b=.3]
+\definecolor[TopicColor-7][r=.35,g=.35,b=.6]
+\definecolor[TopicColor-8][r=.6,g=.35,b=.35]
+\definecolor[TopicColor-9][r=.35,g=.6,b=.35]
+
+\definecolor[TopicColor-0][t=.5,a=1,s=.5]
+\definecolor[TopicColor] [s=1]
+
+\setupcolors[state=start]
+\setupcolors[textcolor=TopicColor]
+
+\startluacode
+ local locations = {
+ 'lefttop',
+ 'middletop',
+ 'righttop',
+ 'middleleft',
+ 'middle',
+ 'middleright',
+ 'leftbottom',
+ 'middlebottom',
+ 'rightbottom',
+ }
+ local done, current, previous, n = table.tohash(locations,false), 0, 0, 0
+ function document.reset_locations()
+ done, current, previous, n = table.tohash(locations,false), 0, 0, 0
+ end
+ function document.next_location(loc)
+ previous = current
+ n = n + 1
+ loc = loc and loc ~= "" and tonumber(loc)
+ while true do
+ current = loc or math.random(1,#locations)
+ if not done[current] then
+ done[current] = true
+ break
+ end
+ end
+ end
+ function document.current_location()
+ tex.print(locations[current] or "")
+ end
+ function document.previous_location()
+ tex.print(locations[previous] or "")
+ end
+ function document.current_n()
+ tex.print(tostring(current))
+ end
+ function document.previous_n()
+ tex.print(tostring(previous))
+ end
+ function document.step()
+ tex.print(tostring(n))
+ end
+\stopluacode
+
+\def\StartTopics
+ {\startstandardmakeup
+ \ctxlua{document.reset_locations()}
+ \doifnotmode{paper}{\StartLocalSteps}}
+
+\def\StopTopics
+ {\doifnotmode{paper}{\StopLocalSteps}
+ \flushlayer[page]
+ \stopstandardmakeup}
+
+\def\StartTopic
+ {\dosingleempty\doStartTopic}
+
+\def\doStartTopic[#1]%
+ {\doifnotmode{paper}{\NextStep}
+ \ctxlua{document.next_location("#1")}
+ \startnotmode[paper]
+ \doifnothing{#1}
+ {\ifcase\ctxlua{document.previous_n()}\else
+ \setlayer
+ [page]
+ [preset=\ctxlua{document.previous_location()}]
+ \bgroup
+ \doifnotmode{paper}{\startproperty[\StepLayer]}%
+ \framed
+ [offset=20pt,
+ strut=no,
+ align=normal,
+ frame=off,
+ height=\dimexpr\paperheight/3\relax,
+ width=\dimexpr\paperwidth/3\relax,
+ background=color,
+ backgroundcolor=TopicColor-0]
+ {}%
+ \doifnotmode{paper}{\stopproperty}%
+ \egroup
+ \fi}
+ \stopnotmode
+ \setlayer
+ [page]
+ [preset=\ctxlua{document.current_location()}]
+ \bgroup
+ \doifnotmode{paper}{\startproperty[\StepLayer]}%
+ \framed
+ [offset=20pt,
+ strut=no,
+ align=\expdoifelse{#1}{}{normal}{middle,lohi},
+ align=\expdoifelse{#1}{}{flushleft,verytolerant}{middle,lohi},
+ frame=off,
+ height=\dimexpr\paperheight/3\relax,
+ width=\dimexpr\paperwidth/3\relax,
+ background=color,
+ backgroundcolor=TopicColor-\ctxlua{document.current_n()}]
+ \bgroup
+ \ignorespaces}
+
+\def\StopTopic
+ {\removeunwantedspaces
+ \egroup
+ \doifnotmode{paper}{\stopproperty}%
+ \egroup
+ \startmode[numbers]
+ \setlayerframed
+ [page]
+ [preset=\ctxlua{document.current_location()}]
+ [height=\dimexpr\paperheight/3\relax,
+ width=\dimexpr\paperwidth/3\relax,
+ frame=off,
+ foregroundstyle=\bfa,
+ align={flushright,low}]
+ {\doifnotmode{paper}{\startproperty[\StepLayer]}%
+ \ctxlua{document.step()}\kern\strutdepth
+ \doifnotmode{paper}{\stopproperty}}
+ \stopmode}
+
+\logo [METAPOST] {MetaPost}
+
+\definefont[TitleFont][SansBold at 60pt]
+\definefont[TempFont] [SansBold at 12pt]
+
+\doifnotmode{demo}{\endinput}
+
+\starttext
+
+\StartTopics
+ \StartTopic[1] A \StopTopic
+ \StartTopic[5] B \StopTopic
+ \StartTopic[9] C \StopTopic
+\StopTopics
+
+\StartTopics
+ \StartTopic A \StopTopic
+ \StartTopic B \StopTopic
+ \StartTopic C \StopTopic
+ \StartTopic D \StopTopic
+ \StartTopic E \StopTopic
+ \StartTopic F \StopTopic
+ \StartTopic G \StopTopic
+ \StartTopic H \StopTopic
+ \StartTopic I \StopTopic
+\StopTopics
+
+\stoptext
diff --git a/Master/texmf-dist/tex/context/base/s-pre-93.tex b/Master/texmf-dist/tex/context/base/s-pre-93.tex
new file mode 100644
index 00000000000..b6764580656
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/s-pre-93.tex
@@ -0,0 +1,210 @@
+%D \module
+%D [ file=s-pre-20,
+%D version=2000.08.07,
+%D title=\CONTEXT\ Style File,
+%D subtitle=Presentation Environment 20,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\setupbodyfont
+ [lbr,14.4pt]
+
+\setuppapersize
+ [S6][S6]
+
+\setuplayout
+ [topspace=0cm,
+ backspace=0cm,
+ header=0pt,
+ footer=0pt,
+ width=middle,
+ height=middle]
+
+\setupcolors
+ [state=start]
+
+\setupinteraction
+ [state=start,
+ click=no,
+ display=new,
+ color=LineColor,
+ contrastcolor=LineColor]
+
+\setupinteractionscreen
+ [option=max]
+
+\setupsystem
+ [random=big] % once per hour
+
+\startreusableMPgraphic{page}
+ StartPage ;
+ filldraw Page withcolor \MPcolor{PageColor} ;
+ pickup pencircle scaled (.25cm+uniformdeviate.25cm) ;
+ for i=1 upto 200 :
+ drawdot
+ (uniformdeviate PaperWidth,uniformdeviate PaperHeight)
+ withcolor \MPcolor {LineColor} ;
+ endfor ;
+ StopPage ;
+\stopreusableMPgraphic
+
+\startuseMPgraphic{idea}
+ StartPage ;
+ path p ;
+ p := unitsquare xyscaled(\MPw{idea:\realfolio},\MPh{idea:\realfolio}) superellipsed .90 ;
+ p := p shifted \MPxy{idea:\realfolio} ;
+ draw p withpen pencircle scaled .500cm withcolor \MPcolor{PageColor} ;
+ fill p withcolor \MPcolor{\overlaycolor} ;
+ draw p withpen pencircle scaled .250cm withcolor \MPcolor{LineColor} ;
+ p := unitsquare xyscaled(\MPw{title:\realfolio},\MPh{title:\realfolio}) superellipsed .90 ;
+ p := p shifted \MPxy{title:\realfolio} ;
+ draw p withpen pencircle scaled .250cm withcolor \MPcolor{PageColor} ;
+ fill p withcolor \MPcolor{\overlaycolor} ;
+ draw p withpen pencircle scaled .125cm withcolor \MPcolor{LineColor} ;
+ StopPage ;
+\stopuseMPgraphic
+
+\definecolor[PageColor][s=.50]
+\definecolor[TextColor][s=.80]
+\definecolor[DoneColor][s=.65]
+\definecolor[LineColor][r=.7,g=.6,b=.5]
+
+\defineoverlay [idea] [\useMPgraphic {idea}]
+\defineoverlay [page] [\reuseMPgraphic{page}]
+
+\setupbackgrounds
+ [page]
+ [background={page,forward}]
+
+\defineoverlay[forward][\overlaybutton{forward}]
+
+% alternatief: buffer en ander regime, zodat lokale kleuren
+% kunnen worden genilled. Pos gebruiken om te positioneren.
+
+\definereference[thispage][page(\realfolio)]
+
+\newbox\firstideabox \setbox\firstideabox =\null
+\newbox\secondideabox \setbox\secondideabox=\null
+\newbox\thirdideabox \setbox\thirdideabox =\null
+
+\def\StartTopic% bottom title, top title
+ {\dodoublegroupempty\doStartTopic}
+
+\def\doStartTopic#1#2% the positions end up at each page -)
+ {\setbox\firstideabox=
+ \vbox to \makeupheight
+ \bgroup
+ \getrandomdimen\scratchdimen{.5cm}\makeupheight
+ \vskip 0cm plus \scratchdimen
+ \hbox to \makeupwidth
+ \bgroup
+ \getrandomdimen\scratchdimen{.5cm}\makeupwidth
+ \hskip 0cm plus \scratchdimen
+ \setbox\scratchbox=\hbox\bgroup\hpos{idea:\realfolio}
+ \bgroup
+ \getrandomdimen\hsize{.5\makeupwidth}{.7\makeupwidth}%
+ \framed
+ [offset=3ex,align=middle,strut=no,frame=off,
+ before=,after=]
+ \bgroup
+ \setupwhitespace[big]%
+ \doifsomething{#2}{\Title{#2}}%
+ \def\StopTopic{%
+ \egroup
+ \egroup
+ \egroup
+ \gotobox{\box\scratchbox}[thispage]%
+ \getrandomdimen\scratchdimen{.5cm}\makeupwidth
+ \hskip 0cm plus \scratchdimen
+ \egroup
+ \getrandomdimen\scratchdimen{.5cm}\makeupheight
+ \vskip 0cm plus \scratchdimen
+ \hbox to \makeupwidth
+ \bgroup
+ \hfill
+ \hpos{title:\realfolio}
+ {\button[offset=1.5ex,frame=off]{#1}[backward]}%
+ \getrandomdimen\scratchdimen{.5cm}{2.5cm}%
+ \hskip \scratchdimen
+ \egroup
+ \getrandomdimen\scratchdimen{.5cm}{1.5cm}
+ \vskip \scratchdimen
+ \egroup
+ \setbox\secondideabox=\vbox
+ {\framed
+ [offset=overlay,frame=off,background=idea,backgroundcolor=TextColor]
+ {\copy\firstideabox}}
+ \setbox\firstideabox=\vbox
+ {\framed
+ [offset=overlay,frame=off,background=idea,backgroundcolor=DoneColor]
+ {\LineColor\copy\firstideabox}}
+ \startstandardmakeup
+ \startoverlay
+ {\copy\thirdideabox }
+ {\copy\secondideabox}
+ \stopoverlay
+ \stopstandardmakeup
+ \setbox\thirdideabox=\vbox
+ {\startoverlay
+ {\copy\thirdideabox }
+ {\copy\firstideabox}
+ \stopoverlay}}}
+
+\long\def\TitlePage#1#2%
+ {\bgroup
+ \switchtobodyfont[32pt]
+ \StartTopic{#1}#2\StopTopic
+ \egroup}
+
+\def\Title#1{\midaligned{\bfb#1}\blank}
+
+\doifnotmode{demo}{\endinput}
+
+% \usemodule[pre-super] % super ellipse as well as superpositioned
+
+\starttext
+
+\setupoutput[pdftex]
+
+\TitlePage{August 2000}{Something Very Important}
+
+\StartTopic{Alpha}
+ A simple and not too long text just to show the idea.
+ A simple and not too long text just to show the idea.
+ A simple and not too long text just to show the idea.
+\StopTopic
+
+\StartTopic{Beta and Gamma}
+ A simple and not too long text just to show the idea.
+ A simple and not too long text just to show the idea.
+\StopTopic
+
+\StartTopic{Delta}
+ A simple and not too long text just to show the idea.
+\StopTopic
+
+\StartTopic{Epsilon}
+ A simple and not too long text just to show the idea.
+ A simple and not too long text just to show the idea.
+ A simple and not too long text just to show the idea.
+\StopTopic
+
+\StartTopic{Zeta, Eta and Theta}
+ A simple and not too long text just to show the idea.
+ A simple and not too long text just to show the idea.
+ A simple and not too long text just to show the idea.
+\StopTopic
+
+\StartTopic{Omega}
+ A simple and not too long text just to show the idea.
+ A simple and not too long text just to show the idea.
+ A simple and not too long text just to show the idea.
+ A simple and not too long text just to show the idea.
+\StopTopic
+
+\stoptext
diff --git a/Master/texmf-dist/tex/context/base/s-reg-01.tex b/Master/texmf-dist/tex/context/base/s-reg-01.tex
new file mode 100644
index 00000000000..123b97384d8
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/s-reg-01.tex
@@ -0,0 +1,50 @@
+%D \module
+%D [ file=s-reg-01,
+%D version=2005.04.25,
+%D title=\CONTEXT\ Style File,
+%D subtitle=Extra Regime Support,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D \macros
+%D {showregime}
+%D
+%D This code is moved from the kernel to here. (We could make it
+%D auto-loadable).
+
+\startluacode
+--[[ldx--
+<p>The following code is rather <l n='context'/> specific.</p>
+--ldx]]--
+
+function regimes.show(regime)
+ regime = regimes.synonyms[regime] or regime
+ local r = regimes.data[regime]
+ if r then
+ tex.sprint(tc,"\\starttabulate[|rT|T|rT|lT|lT|lT|]")
+ for k, v in ipairs(r) do
+ tex.sprint(tex.ctxcatcodes, string.format("\\NC %s\\NC\\getvalue{%s}\\NC %s\\NC %s\\NC %s\\NC %s\\NC\\NR", k,
+ characters.contextname(v), characters.hexindex(v), characters.contextname(v),
+ characters.category(v), characters.description(v)))
+ end
+ tex.sprint(tex.ctxcatcodes,"\\stoptabulate")
+ else
+ tex.sprint(tex.ctxcatcodes,"unknown regime " .. regime)
+ end
+end
+\stopluacode
+
+\unprotect
+
+\def\showregime
+ {\dosingleempty\doshowregime}
+
+\def\doshowregime[#1]%
+ {\ctxlua{regimes.show("#1")}}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/scrn-bar.mkiv b/Master/texmf-dist/tex/context/base/scrn-bar.mkiv
new file mode 100644
index 00000000000..fd274419dd9
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/scrn-bar.mkiv
@@ -0,0 +1,398 @@
+%D \module
+%D [ file=scrn-bar, % was part of scrn-int
+%D version=1995.01.01,
+%D title=\CONTEXT\ Core Macros,
+%D subtitle=Progress Bars,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Screen Macros / Progress Bars}
+
+\unprotect
+
+%D The code is a bit upgraded to \MKIV\ but the output is mostly the same.
+%D In retrospect this shoul dhave been a module.
+
+% todo: replace blackrule by stupid rules
+
+% \setupinteraction[state=start]
+% \setupsubpagenumber[state=start]
+%
+% \startsetups bars
+% \vbox
+% {\hsize 5cm
+% \hbox{\interactionbar[a]}\blank
+% \hbox{\interactionbar[b]}\blank
+% \hbox{\interactionbar[c]}\blank
+% \hbox{\interactionbar[d]}\blank
+% \hbox{\interactionbar[e]}\blank
+% \hbox{\interactionbar[f]}\blank
+% \hbox{\interactionbar[g]}\blank
+% }
+% \stopsetups
+%
+% \setupheadertexts[\setups{bars}]
+%
+% \starttext
+% \dorecurse{10}{test \page }
+% \stoptext
+
+\presetlocalframed[\??ib]
+
+%D First the usual definition code.
+
+\let\currentinteractionbar\empty
+
+\def\setinteractionbarparameter#1#2#3{\@EA\def\csname\??ib#1#2\endcsname{#3}}
+\def\letinteractionbarparameter #1#2{\@EA\let\csname\??ib#1#2\endcsname}
+
+\def\interactionbarparameter #1{\csname\dointeractionbarparameter{\??ib\currentinteractionbar}#1\endcsname}
+\def\namedinteractionbarparameter#1#2{\csname\dointeractionbarparameter{\??ib#1}#2\endcsname}
+\def\interactionbarparameterhash #1{\dointeractionbarparameterhash {\??ib\currentinteractionbar}#1}
+
+\def\dointeractionbarparameter #1#2{\ifcsname#1#2\endcsname#1#2\else\expandafter\dointeractionbarparentparameter \csname#1\s!parent\endcsname#2\fi}
+\def\dointeractionbarparameterhash#1#2{\ifcsname#1#2\endcsname #1\else\expandafter\dointeractionbarparentparameterhash\csname#1\s!parent\endcsname#2\fi}
+
+\def\dointeractionbarparentparameter #1#2{\ifx#1\relax\s!empty\else\dointeractionbarparameter #1#2\fi}
+\def\dointeractionbarparentparameterhash#1#2{\ifx#1\relax \else\dointeractionbarparameterhash#1#2\fi}
+
+\def\defineinteractionbar{\dodoubleargument\dodefineinteractionbar}
+\def\setupinteractionbar {\dodoubleempty \dosetupinteractionbar}
+\def\interactionbar {\dodoubleempty \dointeractionbar}
+
+\def\dosetupinteractionbar[#1][#2]%
+ {\ifsecondargument
+ \getparameters[\??ib#1][#2]%
+ \else
+ \getparameters[\??ib][#1]%
+ \fi}
+
+\def\dodefineinteractionbar[#1][#2]%
+ {\getparameters
+ [\??ib#1]%
+ [\s!parent=\??ib,%
+% \c!foregroundcolor=\interactionbarparameter\c!color,%
+% \c!foregroundstyle=\interactionbarparameter\c!style,%
+ #2]}
+
+\def\dointeractionbar[#1][#2]%
+ {\iflocation
+ \begingroup
+ \doifnot{#1}\v!reset % obsolete, no caching any more
+ {\doifassignmentelse{#1}
+ {\getparameters[\??ib][#2]%
+ \edef\currentinteractionbar{\interactionbarparameter\c!alternative}}%
+ {\edef\currentinteractionbar{#1}%
+ \ifsecondargument\getparameters[\??ib#1][#2]\fi}%
+ \doif{\interactionbarparameter\c!state}\v!start
+ {\interactionbarparameter\c!command}}%
+ \endgroup
+ \fi}
+
+\newdimen\interactionbarwidth
+\newdimen\interactionbarheight
+\newdimen\interactionbardepth
+\newdimen\interactionbardistance
+
+%D Interaction buttons, in fact a row of tiny buttons, are
+%D typically only used for navigational purposed. The next
+%D macro builds such a row based on a specification list.
+%D
+%D \startbuffer
+%D \interactionbuttons[width=\hsize][page,PreviousJump,ExitViewer]
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D gives
+%D
+%D \getbuffer
+%D
+%D Apart from individual entries, one can use \type{page} and
+%D \type {subpage} as shortcuts to their four associated buttons.
+%D The symbols are derived from the symbols linked to the
+%D entries.
+
+\def\interactionbuttons
+ {\dodoubleempty\dointeractionbuttons}
+
+\def\dointeractionbuttons[#1][#2]% er is een verdeel macro \horizontalfractions
+ {\iflocation
+ \begingroup
+ % beware, is already set \let\currentinteractionbar\empty
+ \doif{\interactionbarparameter\c!state}\v!stop\locationfalse
+ \iflocation
+ \ifsecondargument
+ \let\menuparameter\interactionbarparameter
+ \setupinteractionbar[#1]%
+ \interactionbarwidth\interactionbarparameter\c!width
+ \ifdim\interactionbarwidth=\zeropoint
+ \interactionbarwidth1.5\emwidth
+ \fi
+ \doifnothing\@@ibheight{\letinteractionbarparameter\c!height\v!broad}%
+ \doifnothing\@@ibdepth {\letinteractionbarparameter\c!depth\!!zeropoint}%%%
+ \setbox2\hbox{\localframed[\??ib\currentinteractionbar][\c!background=]{\symbol[\@@iasymbolset][\v!previouspage]}}%
+ \!!heighta\ht2 % needed because we default to nothing
+ \setupinteractionbar[\c!strut=\v!no]%
+ \setinteractionparameter\c!width\!!zeropoint
+ \!!counta\zerocount % new, was 1
+ \processallactionsinset
+ [#2]
+ [ \v!page=>\advance\!!counta 4,
+ \v!subpage=>\advance\!!counta 4,
+ \s!unknown=>\advance\!!counta 1]%
+ \ifdim\interactionbarwidth=\zeropoint
+ \!!widtha\dimexpr2\emwidth+\interactionbardistance\relax
+ \!!widthb\dimexpr\!!counta\!!widtha-\interactionbardistance\relax
+ \else
+ \!!widtha\interactionbarwidth
+ \!!widthb\dimexpr\!!counta\interactionbardistance-\interactionbardistance\relax
+ \advance\!!widtha -\!!widthb
+ \divide\!!widtha \!!counta
+ \!!widthb\interactionbarwidth
+ \fi
+ \hbox to \!!widthb
+ {\setnostrut
+ \processallactionsinset
+ [#2]
+ [ \v!page=>\interactionbargotox\v!firstpage \interactionbargotox\v!nextpage \interactionbargotox\v!previouspage \interactionbargotox\v!lastpage,
+ \v!subpage=>\interactionbargotox\v!firstsubpage\interactionbargotox\v!nextsubpage\interactionbargotox\v!previoussubpage\interactionbargotox\v!lastsubpage,
+ \s!unknown=>\interactionbargotox\commalistelement]%
+ \unskip}%
+ \else
+ \interactionbuttons[][#1]%
+ \fi
+ \fi
+ \endgroup
+ \fi}
+
+\def\interactionbargotox#1%
+ {\normalexpanded{\noexpand\dodocomplexbutton
+% {\??ib\currentinteractionbar}%
+ {\??ib}%
+ [\c!height=\the\!!heighta,\c!width=\the\!!widtha]%
+ {\noexpand\symbol[\@@iasymbolset][#1]}%
+ [#1]}%
+ \hss}
+
+\def\interactionbara
+ {\iflocation
+ \interactionbarwidth \interactionbarparameter\c!width
+ \interactionbardistance\interactionbarparameter\c!distance
+ \interactionbarheight \interactionbarparameter\c!height
+ \interactionbardepth \interactionbarparameter\c!depth
+ \noindent\hbox to \interactionbarwidth \bgroup
+ \dontcomplain
+ \setupblackrules[\c!height=\v!max,\c!depth=\v!max]%
+ \!!widthb\dimexpr\interactionbarwidth-4\emwidth\relax
+ \processaction
+ [\interactionbarparameter\c!step]
+ [ \v!small=>\scratchcounter 20,
+ \v!medium=>\scratchcounter 10,
+ \v!big=>\scratchcounter 5,
+ \s!unknown=>\scratchcounter 10]%
+ \!!widtha\dimexpr\!!widthb/\scratchcounter\relax
+ \setupblackrules[\c!width=\!!widtha]%
+ \setbox\scratchbox\hbox to \interactionbarwidth
+ {\hskip2\emwidth
+ \setbox\scratchbox\hbox{\blackrule[\c!color=\interactionbarparameter\c!backgroundcolor]}%
+ \dorecurse\scratchcounter
+ {\hss\normalexpanded{\directgotodumbbox{\copy\scratchbox}[page(\the\numexpr\recurselevel*\lastpage/\scratchcounter\relax)]}}%
+ \hss
+ \hskip2\emwidth}%
+ \wd\scratchbox\zeropoint
+ \box \scratchbox
+ \setupblackrules[\c!width=\emwidth]%
+ \normalexpanded{\directgotospecbox\noexpand\interactionbarparameter{\blackrule}[\v!firstpage]}%
+ \hskip\emwidth
+ \ifnum\realpageno>\plusone
+ \hskip\zeropoint\!!plus\numexpr\realpageno-\plustwo\relax \s!sp\relax % cm gives overflow
+ \normalexpanded{\directgotospecbox\noexpand\interactionbarparameter{\blackrule}[\v!previouspage)]}%
+ \fi
+ \normalexpanded{\directgotospecbox\noexpand\interactionbarparameter{\blackrule}[page(\number\realpageno)]}% todo: \v!currentpage
+ \ifnum\realpageno<\lastpage\relax
+ \normalexpanded{\directgotospecbox\noexpand\interactionbarparameter{\blackrule}[\v!nextpage]}%
+ \hskip\zeropoint\!!plus\numexpr\lastpage-\realpageno-\plusone\relax \s!sp\relax % cm gives overflow
+ \fi
+ \hskip\emwidth
+ \normalexpanded{\directgotospecbox\noexpand\interactionbarparameter{\blackrule}[\v!lastpage]}%
+ \egroup
+ \fi}
+
+\def\interactionbarb
+ {\ifnum\lastpage>\firstpage\relax
+ \interactionbuttons[\v!firstpage,\v!previouspage,\v!nextpage,\v!lastpage]%
+ \fi}
+
+\def\interactionbarc
+ {\iflocation \ifnum\lastpage>\plusone
+ \interactionbarwidth\interactionbarparameter\c!width
+ \hbox to \interactionbarwidth
+ {\setupblackrules[\c!height=\interactionbarparameter\c!height,\c!depth=\interactionbarparameter\c!depth,\c!width=\emwidth]%
+ \scratchdimen\dimexpr(\interactionbarwidth-4\emwidth)/\numexpr\lastpage+\minusone\relax\relax
+ \!!widtha\numexpr\realpageno+\minusone\relax\scratchdimen
+ \!!widthb\numexpr\lastpage-\realpageno\relax\scratchdimen
+ \directgotospecbox\interactionbarparameter{\blackrule}[\v!firstpage]%
+ \hss
+ \directgotospecbox\interactionbarparameter{\blackrule[\c!width=\!!widtha]}[\v!previouspage]%
+ \blackrule[\c!color=\interactionbarparameter\c!contrastcolor]%
+ \directgotospecbox\interactionbarparameter{\blackrule[\c!width=\!!widthb]}[\v!nextpage]%
+ \hss
+ \directgotospecbox\interactionbarparameter{\blackrule}[\v!lastpage]}%
+ \fi \fi}
+
+\unexpanded\def\@@commoninteractionbargotoa#1%
+ {\symbol[\ifcase#1\v!previous\or\v!somewhere\or\v!next\fi]}
+
+\unexpanded\def\@@commoninteractionbargotob#1%
+ {\vrule\!!height\interactionbarheight\!!depth\interactionbardepth\!!width\!!widtha\relax}
+
+\unexpanded\def\@@commoninteractionbargotoc#1%
+ {\symbol[\ifcase#1\v!previous\or\v!somewhere\or\v!somewhere\or\v!somewhere\or\v!next\fi}
+
+\unexpanded\def\@@commoninteractionbargotod#1%
+ {\vrule \!!width\!!widtha \ifcase#1%
+ \!!height \interactionbarheight \!!depth \interactionbardepth \or
+ \!!height.5\interactionbarheight \!!depth.5\interactionbardepth \or
+ \!!height \interactionbarheight \!!depth \interactionbardepth \or
+ \!!height.5\interactionbarheight \!!depth.5\interactionbardepth \else
+ \!!height \interactionbarheight \!!depth \interactionbardepth \fi}
+
+\unexpanded\def\@@commoninteractionbarx#1%
+ {\doifelse{\interactionbarparameter\c!symbol}\v!yes
+ {\setupsymbolset[\@@iasymbolset]%
+ \let\dogotox\@@commoninteractionbargotoa}
+ {\let\dogotox\@@commoninteractionbargotob}%
+ \dorecurse\nofsubpages
+ {\scratchcounter\numexpr\recurselevel+\firstsubpage+\minusone\relax
+ \chardef\what
+ \ifnum\scratchcounter<\realpageno \zerocount \else
+ \ifnum\scratchcounter=\realpageno \plusone \else
+ \plustwo \fi\fi
+ \normalexpanded{\directgotospecbox\noexpand\interactionbarparameter{\dogotox\what}[page(\the\scratchcounter)]}%
+ #1}%
+ \unskip}
+
+\def\interactionbard
+ {\iflocation \ifnum\nofsubpages>\plusone \doif{\structurecounterparameter\s!subpage\c!state}\v!start{%
+ \interactionbarwidth \interactionbarparameter\c!width
+ \interactionbardistance\interactionbarparameter\c!distance
+ \interactionbarheight \interactionbarparameter\c!height
+ \interactionbardepth \interactionbarparameter\c!depth
+ \!!widtha\interactionbarwidth
+ \noindent\hbox{\@@commoninteractionbarx{\hskip\interactionbardistance}}%
+ }\fi \fi}
+
+\def\interactionbare
+ {\iflocation \ifnum\nofsubpages>\plusone \doif{\structurecounterparameter\s!subpage\c!state}\v!start{%
+ \begingroup
+ \interactionbarwidth \interactionbarparameter\c!width
+ \interactionbardistance\interactionbarparameter\c!distance
+ \interactionbarheight \interactionbarparameter\c!height
+ \interactionbardepth \interactionbarparameter\c!depth
+ \!!widthb\dimexpr\nofsubpages\interactionbardistance-\interactionbardistance\relax % (n-1)
+ \!!widtha\dimexpr(\interactionbarwidth-\!!widthb)/\nofsubpages\relax
+ \ifdim\!!widtha<\interactionbardistance
+ \interactionbarf
+ \else
+ \noindent\hbox to \interactionbarwidth{\@@commoninteractionbarx{\hss}\unskip}%
+ \fi
+ \endgroup
+ }\fi\fi}
+
+\def\interactionbarf
+ {\iflocation \ifnum\nofsubpages>\plusone \doif{\structurecounterparameter\s!subpage\c!state}\v!start{%
+ \interactionbarwidth \interactionbarparameter\c!width
+ \interactionbardistance\interactionbarparameter\c!distance
+ \interactionbarheight \interactionbarparameter\c!height
+ \interactionbardepth \interactionbarparameter\c!depth
+ \noindent \hbox to \interactionbarwidth \bgroup
+ \doloop
+ {\!!countc\numexpr(\nofsubpages/\recurselevel)+\plusone\relax % rounding
+ \!!widthb\interactionbardistance
+ \multiply\!!widthb \!!countc
+ \advance\!!widthb -\interactionbardistance
+ \!!widtha\interactionbarwidth
+ \advance\!!widtha -\!!widthb
+ \divide\!!widtha \!!countc
+ \ifdim\!!widtha<\interactionbardistance\else
+ \!!countb\recurselevel
+ \exitloop
+ \fi}%
+ \ifnum\!!countc>\plusone
+ % this is not that well tested
+ \advance\!!countc \minustwo
+ \!!widtha-\interactionbardistance
+ \!!widtha\!!countc\!!widtha
+ \advance\!!widtha \interactionbarwidth
+ \advance\!!countc \plusone
+ \divide\!!widtha \!!countc
+ \fi
+ \doifelse{\interactionbarparameter\c!symbol}\v!yes
+ {\setupsymbolset[\@@iasymbolset]%
+ \let\dogotox\@@commoninteractionbargotoc}%
+ {\let\dogotox\@@commoninteractionbargotod}%
+ \!!countc\numexpr\realpageno-\plustwo\relax
+ \!!countd\numexpr\realpageno+\plustwo\relax
+ \ifnum\!!countc<\plusone \!!countc\plusone \fi
+ \!!countf\zerocount
+ \dostepwiserecurse\firstsubpage\lastsubpage\plusone
+ {\!!doneafalse
+ \advance\!!countf \plusone
+ \ifnum\recurselevel=\firstsubpage\relax \!!doneatrue \fi
+ \ifnum\recurselevel=\lastsubpage \relax \!!doneatrue \fi
+ \chardef\what \if!!donea
+ \ifnum\recurselevel<\realpageno \zerocount \else
+ \ifnum\recurselevel>\realpageno \plustwo \else
+ \plusfour \fi\fi
+ \else \ifnum\!!countf=\!!countb
+ \ifnum\recurselevel<\realpageno \plusone \else
+ \ifnum\recurselevel>\realpageno \plusthree \else
+ \plustwo \fi\fi
+ \fi \fi
+ \normalexpanded{\directgotospecbox\noexpand\interactionbarparameter{\dogotox\what}[page(\recurselevel)]}%
+ \hss
+ \!!countf\zerocount}%
+ \unskip
+ \egroup
+ }\fi\fi}
+
+\def\interactionbarg
+ {\iflocation \ifnum\lastsubpage>\firstsubpage\relax % no test for state?
+ \interactionbuttons[\v!firstsubpage,\v!previoussubpage,\v!nextsubpage,\v!lastsubpage]%
+ \fi \fi}
+
+\setupinteractionbar
+ [\c!state=\v!start,
+ \c!alternative=a,
+ \c!symbol=\v!no,
+ \c!width=10\emwidth,
+ \c!height=.5\emwidth,
+ \c!depth=\zeropoint,
+ \c!distance=.5\emwidth,
+ \c!step=\v!medium,
+ \c!foregroundcolor=\interactionbarparameter\c!color,
+ \c!foregroundstyle=\interactionbarparameter\c!style,
+ \c!color=\@@iacolor,
+ \c!contrastcolor=\@@iacontrastcolor,
+ \c!style=,
+ \c!frame=\v!on,
+ \c!background=color,
+ \c!backgroundcolor=gray,
+ \c!samepage=\v!yes,
+ \c!unknownreference=\v!yes]
+
+\defineinteractionbar[a][\c!command=\interactionbara]
+\defineinteractionbar[b][\c!command=\interactionbarb,\c!height=\v!broad]
+\defineinteractionbar[c][\c!command=\interactionbarc,\c!height=\v!max,\c!depth=\v!max]
+\defineinteractionbar[d][\c!command=\interactionbard,\c!width=.5\emwidth]
+\defineinteractionbar[e][\c!command=\interactionbare]
+\defineinteractionbar[f][\c!command=\interactionbarf]
+\defineinteractionbar[g][\c!command=\interactionbarg,\c!height=\v!broad]
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/scrn-but.mkiv b/Master/texmf-dist/tex/context/base/scrn-but.mkiv
new file mode 100644
index 00000000000..6beaee75746
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/scrn-but.mkiv
@@ -0,0 +1,126 @@
+%D \module
+%D [ file=scrn-but, % moved code
+%D version=1995.01.01,
+%D title=\CONTEXT\ Core Macros,
+%D subtitle=Interaction,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Screen Macros / Buttons}
+
+\unprotect
+
+%D Buttons are just what their names says: things that can be
+%D clicked (pushed) on. They are similar to \type{\goto},
+%D except that the text argument is not interpreted.
+%D Furthermore one can apply anything to them that can be done
+%D with \type{\framed}.
+%D
+%D \startbuffer
+%D \button[width=3cm,height=1.5cm]{Exit}[ExitViewer]
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D gives
+%D
+%D \getbuffer
+%D
+%D This command is formally specified as:
+%D
+%D \showsetup{button}
+%D
+%D The characteristics can be set with:
+%D
+%D \showsetup{setupbuttons}
+
+\def\setupbuttons
+ {\dodoubleargument\getparameters[\??bt]}
+
+\definecomplexorsimpleempty\button
+
+\def\complexbutton
+ {\docomplexbutton\??bt}
+
+\presetlocalframed[\??bt]
+
+\def\buttonparameter#1{\csname\??bt#1\endcsname} % simple version
+
+\long\def\docomplexbutton#1[#2]#3#4% get rid of possible space before [#4]
+ {\dodocomplexbutton#1[#2]{#3}#4} % #4 == [
+
+\def\buttonframed{\dodoubleempty\localframed[\??bt]} % goodie
+
+% #3=none is obsolete, just use empty=yes
+
+\long\def\dodocomplexbutton#1[#2]#3[#4]% #3 can contain [] -> {#3} later
+ {\begingroup
+ \let\menuparameter\buttonparameter
+ \doif{\buttonparameter\c!state}\v!stop\locationfalse
+ \iflocation
+ \setlocationboxyes#1[#2]{#3}[#4]%
+ \fi
+ \endgroup}
+
+%D \macros
+%D {overlaybutton}
+%D
+%D For converience we provide:
+%D
+%D \starttyping
+%D \overlaybutton[reference]
+%D \stoptyping
+%D
+%D This command can be used to define overlays an/or can be
+%D used in the whatevertext areas, like:
+%D
+%D \starttyping
+%D \defineoverlay[PrevPage][\overlaybutton{PrevPage}]
+%D \setupbackgrounds[page][background=PrevPage]
+%D \setuptexttexts[\overlaybutton{NextPage}]
+%D \stoptyping
+%D
+%D For practical reasons, this macro accepts square brackets
+%D as well as braces.
+
+\definecomplexorsimple\overlaybutton
+
+\def\simpleoverlaybutton#1%
+ {\complexoverlaybutton[#1]}
+
+\def\complexoverlaybutton[#1]%
+ {\iflocation
+ \gotobox{\overlayfakebox}[#1]%
+ \fi}
+
+\def\overlayfakebox
+ {\hbox
+ {\setbox\scratchbox\null
+ \wd\scratchbox\overlaywidth
+ \ht\scratchbox\overlayheight
+ \box\scratchbox}}
+
+%D Done.
+
+\setupbuttons
+ [\c!state=\v!start,
+ \c!width=\v!fit,
+ \c!height=\v!broad,
+ \c!offset=0.25em,
+ \c!frame=\v!on,
+ \c!background=,
+ \c!backgroundcolor=,
+ \c!foregroundstyle=\buttonparameter\c!style,
+ \c!foregroundcolor=\buttonparameter\c!color,
+ \c!style=\@@iastyle,
+ \c!color=\@@iacolor,
+ \c!contrastcolor=\@@iacontrastcolor,
+ \c!samepage=\v!yes,
+ \c!unknownreference=\v!yes]
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-fld.tex b/Master/texmf-dist/tex/context/base/scrn-fld.mkii
index 3b1ce9b3fc6..85e4aa738be 100644
--- a/Master/texmf-dist/tex/context/base/core-fld.tex
+++ b/Master/texmf-dist/tex/context/base/scrn-fld.mkii
@@ -1,8 +1,8 @@
%D \module
-%D [ file=core-fld,
+%D [ file=scrn-fld,
%D version=1997.05.18,
-%D title=\CONTEXT\ Core Macros,
-%D subtitle=Fill in fields,
+%D title=\CONTEXT\ Screen Macros,
+%D subtitle=Fields,
%D author=Hans Hagen,
%D date=\currentdate,
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
@@ -20,7 +20,7 @@
% internal string truncated, (3) second time truncated
% string is sent.
-\writestatus{loading}{Context Field Macros}
+\writestatus{loading}{ConTeXt Screen Macros / Fields}
% messages
@@ -1077,4 +1077,169 @@
\setupforms
[\c!method=HTML]
+%D Goodie:
+
+\def\definepushbutton % name optional setup
+ {\dodoubleempty\dodefinepushbutton}
+
+\def\dodefinepushbutton[#1][#2]% name setup
+ {\dododefinepushbutton{#1}{n}{push}%
+ \dododefinepushbutton{#1}{r}{\symbol[psym:#1:n]}%
+ \dododefinepushbutton{#1}{d}{\symbol[psym:#1:r]}%
+ \setvalue{pushbutton:#1}{\dohandlepushbutton{#1}{#2}}}
+
+\def\dododefinepushbutton#1#2#3%
+ {\doifsymboldefinedelse{psym:#1:#2}%
+ \donothing{\definesymbol[psym:#1:#2][{#3}]}}
+
+\def\definepushsymbol
+ {\dotripleargument\dodefinepushsymbol}
+
+\def\dodefinepushsymbol[#1][#2]% [#3]
+ {\definesymbol[psym:#1:#2]}
+
+\def\dopushbutton[#1][#2]%
+ {\executeifdefined{pushbutton:#1}\gobbleoneargument{#2}}
+
+\def\pushbutton
+ {\dodoubleargument\dopushbutton}
+
+\def\dohandlepushbutton#1#2#3% identifier setup script
+ {\bgroup
+ \nextsystemfield
+ \setupfield
+ [pushbutton]
+ [\c!frame=\v!overlay,
+ \c!offset=\v!overlay,
+ \c!clickout=#3,#2]%
+ \definefield
+ [\currentsystemfield]
+ [push]
+ [pushbutton]
+ [psym:#1:n,psym:#1:r,psym:#1:d]%
+ \fitfield
+ [\currentsystemfield]%
+ \egroup}
+
+% \def\do@@ampsh
+% {\dodoubleargument\dodo@@ampsh}
+%
+% \def\dodo@@ampsh[#1][#2]#3\\%
+% {\txt\pushbutton[#1][#2]\\}%
+%
+%\appendtoks \let\psh\do@@ampsh \to \everysetmenucommands
+
+\def\@@ampsh{\txt\pushbutton}
+
+\appendtoks \let\psh\@@ampsh \to \everysetmenucommands
+
+% \definepushbutton [reset]
+%
+% \definepushsymbol [reset] [n] [\uniqueMPgraphic{whatever}{color=green}]
+% \definepushsymbol [reset] [r] [\uniqueMPgraphic{whatever}{color=white}]
+%
+% \startinteractionmenu[bottom]
+% \psh [reset] [JS(reset_something)] \\
+% \stopinteractionmenu
+
+%D Another goodie:
+
+% \definecolor[rollover:n][red]
+% \definecolor[rollover:r][green]
+% \definecolor[rollover:d][blue]
+
+\definepalet
+ [rollover]
+ [n=red,
+ r=green,
+ d=blue]
+
+\newcounter\nofrollovers
+\newcounter\nofrollbuttons
+
+\def\dorollbutton[#1][#2]#3[#4]%
+ {\dontleavehmode
+ \bgroup
+ \doglobal\increment\nofrollovers
+ \doglobal\increment\nofrollbuttons
+ \unexpanded\def\dosetlocationbox[##1]##2[##3]%
+ {\getparameters[##1][##3]%
+ \definecolor[rollover][rollover:##2]%
+ \doifelse{##2}{n}{\doifelsevalue{##1\c!alternative}\v!hidden\phantom\hbox}\hbox
+ {\localframed[##1]
+ [\c!framecolor=rollover,\c!backgroundcolor=rollover,\c!color=rollover]%
+ {\dolocationattributes{##1}\c!style\c!color{#3}}}}%
+ \iffirstargument
+ \ifsecondargument
+ \def\setlocationbox##1{\dosetlocationbox[\??am#1]{##1}[#2]}%
+ \else
+ \doifassignmentelse{#1}
+ {\def\setlocationbox##1{\dosetlocationbox[\??bt]{##1}[#1]}}
+ {\def\setlocationbox##1{\dosetlocationbox[\??am#1]{##1}[]}}%
+ \fi
+ \else
+ \def\setlocationbox##1{\dosetlocationbox[\??bt]{##1}[]}%
+ \fi
+ % todo: share symbols, tricky since different dimensions
+ \definesymbol[rsym:\nofrollovers:n][\setlocationbox n]%
+ \definesymbol[rsym:\nofrollovers:r][\setlocationbox r]%
+ \definesymbol[rsym:\nofrollovers:d][\setlocationbox d]%
+ \setupfield
+ [rollbutton]
+ [\c!frame=\v!off,
+ \c!offset=\v!overlay,
+ \c!clickout={#4}]%
+ \definefield
+ [roll:\nofrollbuttons][push][rollbutton]
+ [rsym:\nofrollovers:n,%
+ rsym:\nofrollovers:r,%
+ rsym:\nofrollovers:d]%
+ \fitfield[roll:\nofrollbuttons]%
+ \egroup}
+
+\unexpanded\def\rollbutton
+ {\dodoubleempty\dorollbutton}
+
+\def\menu@rob[#1]#2\\%
+ {\txt\rollbutton[\currentmenu]{\ignorespaces#2\unskip}[#1]\\}%
+
+\appendtoks \let\rob\menu@rob \to \everysetmenucommands
+
+% calls:
+% {..} [JS..]
+% [left] {..} [JS..]
+% [a=b] {..} [JS..]
+% [left] [a=b] {..} [JS..]
+%
+% \setupbuttons[offset=0pt,frame=off] % alternative=hidden
+%
+% \rollbutton {Manuals} [JS(Goto_File{show-man.pdf})]
+% \rollbutton {Articles} [JS(Goto_File{show-art.pdf})]
+% \rollbutton {Papers} [JS(Goto_File{show-pap.pdf})]
+% \rollbutton {Presentations} [JS(Goto_File{show-pre.pdf})]
+% \rollbutton {Resources} [JS(Goto_File{show-res.pdf})]
+%
+% \rob [JS(...)] bla bla \\
+
+\unexpanded\def\overlayrollbutton
+ {\dodoubleargument\dooverlayrollbutton}
+
+\def\dooverlayrollbutton[#1][#2]%
+ {\bgroup
+ \nextsystemfield
+ \setupfield
+ [overlayrollbutton]
+ [\c!frame=\v!off,\c!offset=\v!overlay,\c!regionin={#1},\c!regionout={#2}]%
+ \definesymbol
+ [\currentsystemfield]
+ [{\framed[\c!frame=\v!off,\c!width=\overlaywidth,\c!height=\overlayheight]{}}]%
+ \definefield
+ [\currentsystemfield][push][overlayrollbutton][\currentsystemfield][\currentsystemfield]%
+ \fitfield[\currentsystemfield]%
+ \egroup}
+
+% \defineoverlay
+% [ShowMenu]
+% [{\overlayrollbutton[VideLayer{navigation}][HideLayer{navigation}]}]
+
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/scrn-fld.mkiv b/Master/texmf-dist/tex/context/base/scrn-fld.mkiv
new file mode 100644
index 00000000000..4bcc0eabd55
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/scrn-fld.mkiv
@@ -0,0 +1,703 @@
+%D \module
+%D [ file=scrn-fld,
+%D version=1997.05.18,
+%D title=\CONTEXT\ Screen Macros,
+%D subtitle=Fields,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Screen Macros / Fields}
+
+\unprotect
+
+%D First we hook fields into the (viewer based) layering mechanism
+%D (implemented as properties).
+
+\appendtoks
+ \doif\@@iafieldlayer\v!auto{\def\@@iafieldlayer{\currentviewerlayer}}%
+\to \everysetupinteraction
+
+\setupinteraction
+ [\c!fieldlayer=\v!auto] % auto by default
+
+%D \starttyping
+%D \definefield [name] [type] [group] [values] [default]
+%D
+%D \definefield [WWWW] [text] [textsetup] [default text]
+%D \definefield [XXXX] [push] [pushsetup] [yes,no] [yes]
+%D \definefield [XXXX] [check] [checksetup] [yes,no] [yes]
+%D \definefield [YYYY] [combo] [combosetup] [a,b,c,d] [b]
+%D \definefield [ZZZZ] [radio] [radiosetup] [W,X,Y,Z] [Y]
+%D
+%D \definesubfield [W] [subsetup] [p,q]
+%D \definesubfield [X,Y] [subsetup] [p,r]
+%D \definesubfield [Z] [subsetup] [y,z]
+%D
+%D evt \definemainfield ... wanneer geplaatst voor subs gegeven
+%D
+%D \clonefield [XXXX] [XX,YY] [mysetup] [on,off]
+%D \clonefield [Z] [AA,BB] [somesetup] [true,false]
+%D \clonefield [Z] [CC,DD] [anothersetup]
+%D
+%D \copyfield [XXXX] [PP,QQ,RR]
+%D
+%D \field[XXXX]
+%D \fitfield[XXXX]
+%D \stoptyping
+
+%D Internal command, linked to \type{\definesymbol}.
+
+\def\dogetfieldsymbol#1%
+ {\getobject{SYM}{#1}}
+
+\def\dopresetfieldsymbol#1%
+ {\doifobjectfoundelse{SYM}{#1}
+ {}
+ {\settightobject{SYM}{#1}\hbox{\symbol[#1]}%
+ \flushatshipout
+ {\setbox0\hbox{\hskip-\maxdimen\getobject{SYM}{#1}}%
+ \smashbox0\box0}}}
+
+\def\presetfieldsymbols[#1]% slow
+ {\def\dopresetfieldsymbols##1{\processcommalist[##1]\dopresetfieldsymbol}%
+ \@EA\processcommalist\@EA[#1]\dopresetfieldsymbols}
+
+\def\definedefaultsymbols
+ {\definesymbol[defaultyes][$\times$]%
+ \definesymbol[defaultno][$\cdot$]}
+
+\def\resetfieldsymbol[#1]% for experimental usage only
+ {\resetobject{SYM}{#1}}
+
+%D The interface to the specials. DEFAULT NOG ANDERS
+
+\def\typesetfield
+ {\ctxlua{backends.codeinjections.typesetfield("\currentfieldname", {
+ title = "\currentfieldname",
+ width = \number\dimexpr\@@fdwidth\relax,
+ height = \number\dimexpr\@@fdheight\relax,
+ align = "\@@fdalign",
+ length = tonumber("\@@fdn") or 0,
+ style = "\@@fdstyle",
+ color = "\@@fdcolor",
+ backgroundcolor = "\@@fdfieldbackgroundcolor",
+ framecolor = "\@@fdfieldframecolor",
+ layer = "\@@fdfieldlayer",
+ options = "\@@fdoption",
+ align = "\@@fdalign",
+ clickin = "\@@fdclickin",
+ clickout = "\@@fdclickout",
+ regionin = "\@@fdregionin",
+ regionout = "\@@fdregionout",
+ afterkey = "\@@fdafterkey",
+ format = "\@@fdformat",
+ validate = "\@@fdvalidate",
+ calculate = "\@@fdcalculate",
+ focusin = "\@@fdfocusin",
+ focusout = "\@@fdfocusout",
+ }) }}
+
+\unexpanded\def\definefieldset {\dodoubleargument\dodefinefieldset}
+\unexpanded\def\definefield {\doquintupleempty\dodefinefield}
+\unexpanded\def\definemainfield{\doquintupleempty\dodefinefield} % redundant
+\unexpanded\def\definesubfield {\dotripleempty \dodefinesubfield}
+\unexpanded\def\clonefield {\doquadrupleempty\doclonefield}
+\unexpanded\def\copyfield {\dodoubleempty \docopyfield}
+\unexpanded\def\field {\dodoubleempty \donormalfield}
+\unexpanded\def\fitfield {\dodoubleempty \dofitfield}
+\unexpanded\def\setupfield {\doquintupleempty\dosetupfield}
+\unexpanded\def\setupfields {\doquadrupleempty\dosetupfields}
+
+% misc
+
+\appendtoks\ctxlua{backends.codeinjections.finishfields()}\to\everylastshipout
+
+% testing
+
+\def\doiffieldelse #1{\ctxlua{backends.codeinjections.doiffieldelse("#1")}}
+\def\doiffieldgroupelse#1{\ctxlua{backends.codeinjections.doiffieldgroupelse("#1")}}
+
+% definition
+
+\def\dodefinefield[#1][#2][#3][#4][#5]% [name] [kind] [group] [values] [default]
+ {\ctxlua{backends.codeinjections.definefield{ variant="normal", name="#1", kind="#2", group="#3", values=\!!bs#4\!!es, default=\!!bs#5\!!es }}}
+
+\def\dodefinesubfield[#1][#2][#3]% [name] [group] [values]
+ {\ctxlua{backends.codeinjections.definefield{ variant="normal", name="#1", kind="sub", group="#2", values=\!!bs#3\!!es }}}
+
+\def\doclonefield[#1][#2][#3][#4]% [parent] [children] [group] [values]
+ {\ctxlua{backends.codeinjections.clonefield{ variant="clone", parent="#1", children="#2", group="#3", values=\!!bs#4\!!es }}}
+
+\def\docopyfield[#1][#2]% [parent] [children]
+ {\ctxlua{backends.codeinjections.clonefield{ variant="copy", parent="#1", children="#2" }}}
+
+\def\dodefinefieldset[#1][#2]%
+ {\ctxlua{backends.codeinjections.definefieldset("#1","#2")}}
+
+% usage
+%
+% \iftrialtypesetting
+%
+% just a default setup
+
+\def\loadfieldscripts{\useJSscripts[fld]\globallet\loadfieldscripts\relax}
+
+\def\donormalfield{\doprocessfield\dohandlefield}
+\def\dofitfield {\doprocessfield\dohandlefitfield}
+
+% \def\doprocessfield#1[#2][#3]% \method [name] [label]
+% {\dontleavehmode
+% \begingroup
+% \loadfieldscripts
+% \edef\currentfieldname {#2}%
+% \edef\currentfieldlabel{#3}%
+% \edef\currentfieldgroup{\ctxlua{backends.codeinjections.getfieldgroup("#2")}}%
+% \ifx\currentfieldlabel\empty
+% \let\currentfieldlabel\currentfieldname
+% \fi
+% \ifx\currentfieldgroup\empty
+% #1[#2][\v!label,\v!frame,\v!horizontal][][][]%
+% \else
+% \getvalue{\??fd::\currentfieldgroup}%
+% #1[#2][][][][]% todo: pass setups
+% \fi
+% \endgroup}
+
+% \def\dosetupfieldindeed#1#2[#3][#4][#5][#6][#7]%
+% {#1[#2][#4][#5][#6][#7]}
+%
+% equals:
+
+\def\dosetupfieldindeed#1#2[#3]% [#4][#5][#6][#7]%
+ {#1[#2]} % [#4][#5][#6][#7]}
+
+\def\doprocessfield#1[#2][#3]% \method [name] [label]
+ {\dontleavehmode
+ \begingroup
+ \loadfieldscripts
+ \edef\currentfieldname {#2}%
+ \edef\currentfieldlabel{#3}%
+ \edef\currentfieldgroup{\ctxlua{backends.codeinjections.getfieldgroup("#2")}}%
+ \ifx\currentfieldlabel\empty
+ \let\currentfieldlabel\currentfieldname
+ \fi
+ \ifx\currentfieldgroup\empty
+ #1[#2][\v!label,\v!frame,\v!horizontal][][][]%
+ \else
+ \def\dosetupfield{\dosetupfieldindeed{#1}{#2}}%
+ \getvalue{\??fd::\currentfieldgroup}%
+ \fi
+ \endgroup}
+
+% setups
+
+\def\dosetupfield[#1][#2][#3][#4][#5]%
+ {\iffifthargument
+ \def\docommand##1{\dodosetupfield[##1][#2][#3][#4][#5]}%
+ \processcommalist[#1]\docommand
+ \else\ifthirdargument
+ \def\docommand##1{\dodosetupfield[##1][#2][][][#3]}%
+ \processcommalist[#1]\docommand
+ \else\ifsecondargument
+ \doifelse{#2}\v!reset
+ {\def\docommand##1{\donosetupfield[#1][][][][]}}
+ {\def\docommand##1{\dodosetupfield[##1][][][][#2]}}%
+ \processcommalist[#1]\docommand
+ \else\iffirstargument
+ \def\docommand##1{\dodosetupfield[##1][][][][]}%
+ \processcommalist[#1]\docommand
+ \else
+ \writestatus\m!fields{provide either 1, 2, 3 or 5 arguments}%
+ \fi\fi\fi\fi}
+
+\def\normaldodosetupfield[#1][#2][#3][#4][#5]%
+ {\ifcsname\??fd::#1\endcsname
+ \pushmacro\dosetupfield
+ \def\dosetupfield[##1][##2][##3][##4][##5]{\setvalue{\??fd::#1}{\dosetupfield[#1][##2,#2][##3,#3][##4,#4][##5,#5]}}%
+ \getvalue{\??fd::#1}%
+ \popmacro\dosetupfield
+ \else
+ \setvalue{\??fd::#1}{\dosetupfield[#1][#2][#3][#4][#5]}%
+ \fi}
+
+\let\dodosetupfield\normaldodosetupfield
+
+\def\donosetupfield[#1][#2][#3][#4][#5]%
+ {\setvalue{\??fd::#1}{\dosetupfield[#1][#2][#3][#4][#5]}}
+
+\def\dosetupfields[#1][#2][#3][#4]%
+ {\ifsecondargument
+ \def\dodosetupfield[##1][##2][##3][##4][##5]%
+ {\ifcsname\??fd::##1\endcsname
+ \def\dosetupfield[####1][####2][####3][####4][####5]%
+ {\setvalue{\??fd::##1}{\dosetupfield[##1][#1,####2,##2][#2,####3,##3][#3,####4,##4][#4,####5,##5]}}%
+ \getvalue{\??fd::##1}%
+ \else
+ \setvalue{\??fd::##1}{\dosetupfield[##1][#1,##2][#2,##3][#3,##4][#4,##5]}%
+ \fi}%
+ \else\iffirstargument
+ \doifelse{#1}\v!reset
+ {\resetfields}
+ {\setupfields[][][][#1]}% checken
+ \else
+ \writestatus\m!fields{provide either 1 or 4 arguments}%
+ \fi\fi}
+
+\def\resetfields
+ {\let\dodosetupfield\normaldodosetupfield}
+
+% \setupfields[\v!reset]
+
+% opties: veld, label, kader, vertikaal/horizontaal
+
+\newif\ifShowFieldLabel
+\newif\ifShowFieldFrame
+\newif\ifVerticalField
+\newif\ifHorizontalField
+
+% way to slow/complicated, we need some simple alternative
+% as well
+
+\def\dohandlefield[#1][#2][#3][#4][#5]%
+ {\presetlocalframed[\??fd]%
+ \processallactionsinset
+ [#2]
+ [ \v!reset=>\ShowFieldLabelfalse\ShowFieldFramefalse\HorizontalFieldfalse\VerticalFieldfalse,
+ \v!label=>\ShowFieldLabeltrue,
+ \v!frame=>\ShowFieldFrametrue,
+ \v!horizontal=>\HorizontalFieldtrue,
+ \v!vertical=>\VerticalFieldtrue]%
+ \ifVerticalField
+ \getparameters[\??fd][\c!distance=\zeropoint,\c!inbetween=\vskip\@@localoffset,\c!align=\v!right,\c!width=20em]%
+ \else\ifHorizontalField
+ \getparameters[\??fd][\c!distance=\@@localoffset,\c!inbetween=,\c!align=\c!left,\c!height=10ex]%
+ \else
+ \getparameters[\??fd][\c!distance=\zeropoint,\c!inbetween=,\c!align=\c!left]%
+ \fi\fi
+ \getparameters[\??fd][\c!n=,\c!before=,\c!after=\vss,\c!style=,\c!color=,#3]%
+ \ifShowFieldFrame
+ \localframed[\??fd][\c!strut=\v!no,\c!align=]\bgroup
+ \else
+ \vbox\bgroup
+ \fi
+ \dontcomplain
+ \ifShowFieldLabel
+ \setbox0\hbox
+ {\reshapeframeboxtrue % else wrong dimensions
+ \framed
+ [\c!style=,\c!color=,\c!align=\c!right,#4]
+ {\currentfieldlabel}}%
+ \fi
+ \setbox2\hbox
+ {\reshapeframeboxtrue % else wrong dimensions
+ \ifVerticalField
+ \setupframed[\c!height=6ex,\c!width=\hsize]%
+ \else\ifHorizontalField
+ \setupframed[\c!height=\vsize,\c!width=20em]%
+ \else
+ \setupframed[\c!height=2cm,\c!width=2cm]%
+ \fi\fi
+ \framed
+ [\c!align=\v!right,\c!strut=\v!no,#5]
+ {\getparameters
+ [\??fd]
+ [\c!color=,\c!style=,\c!align=\v!right,\c!option=,
+ \c!clickin=,\c!clickout=,\c!regionin=,\c!regionout=,
+ \c!afterkey=,\c!format=,\c!validate=,\c!calculate=,
+ \c!focusin=,\c!focusout=,
+ \c!fieldoffset=\zeropoint,\c!fieldbackgroundcolor=,
+ \c!fieldframecolor=,\c!fieldlayer=\@@iafieldlayer,#5]%
+ \scratchdimen\framedwidth \edef\@@fdwidth {\the\scratchdimen}%
+ \scratchdimen\framedheight\edef\@@fdheight{\the\scratchdimen}%
+ \vfill
+ \hbox{\lower\@@fdfieldoffset\hbox{\typesetfield}}
+ \vss}}%
+ \ifShowFieldLabel
+ \ifVerticalField
+ \vbox
+ {\copy0
+ \@@fdinbetween
+ \copy2}%
+ \else
+ \hbox
+ {\vbox \ifdim\ht2>\ht0 to \ht2 \fi
+ {\@@fdbefore
+ \copy0
+ \@@fdafter}%
+ \hskip\@@fddistance
+ \vbox \ifdim\ht0>\ht2 to \ht0 \fi
+ {\@@fdbefore
+ \box2
+ \@@fdafter}}%
+ \fi
+ \else
+ \box2
+ \fi
+ \egroup}
+
+\chardef\fitfieldmode\plusone % 3 = best
+
+\def\dohandlefitfield[#1][#2][#3][#4][#5]% alleen check
+ {\presetlocalframed[\??fd]%
+ \localframed
+ [\??fd]
+ [\c!n=1024, % beware: weblink plug in truncates
+ \c!strut=\v!no,\c!color=,\c!style=,\c!option=,
+ \c!clickin=,\c!clickout=,\c!regionin=,\c!regionout=,
+ \c!focusin=,\c!focusout=,
+ \c!afterkey=,\c!format=,\c!validate=,\c!calculate=,
+ \c!fieldoffset=\zeropoint,\c!fieldbackgroundcolor=,
+ \c!fieldframecolor=,\c!fieldlayer=\@@iafieldlayer,#5,\c!align=]
+ {\edef\defaultfield{\ctxlua{backends.codeinjections.getdefaultfieldvalue("#1")}}%
+ % \dopresetsymbol\defaultfield
+ \setbox\scratchbox\hbox{\symbol[\defaultfield]}%
+ \edef\@@fdwidth {\the\wd\scratchbox}%
+ \ifcase\fitfieldmode
+ \edef\@@fdheight{\the\ht\scratchbox}%
+ \typesetfield
+ \or % 1 = ignore depth (original, assumed no depth, actually a bug)
+ \edef\@@fdheight{\the\ht\scratchbox}%
+ \vbox to \ht\scratchbox{\vfill\hbox to \wd\scratchbox{\typesetfield\hfill}\vss}%
+ \or % 2 = add depth to height, but no depth in result
+ \edef\@@fdheight{\the\htdp\scratchbox}%
+ \vbox to \ht\scratchbox{\vfill\hbox to \wd\scratchbox{\typesetfield\hfill}\vss}%
+ \or % 3 = add depth to height, and apply depth to result
+ \edef\@@fdheight{\the\htdp\scratchbox}%
+ \hbox to \wd\scratchbox{\lower\dp\scratchbox\hbox{\typesetfield}\hfill}%
+ \fi}}
+
+%D Common stuff
+
+\newcount\nofsystemfields
+
+\def\nextsystemfield
+ {\global\advance\nofsystemfields\plusone
+ \def\currentsystemfield{sys::\number\nofsystemfields}}
+
+%D An example:
+
+\def\fillinfield
+ {\dosingleempty\dofillinfield}
+
+\def\dofillinfield[#1]#2%
+ {\dontleavehmode
+ \hbox
+ {\forgetall
+ \setupfields[\v!reset]%
+ \nextsystemfield
+ \useJSscripts[ans]%
+ \doifelsenothing{#1}
+ {\def\therightanswer{#2}}
+ {\def\therightanswer{#1}}%
+ \setbox0\hbox{#2}%
+ \setbox2\hbox{\therightanswer}%
+ \dimen0=\ifdim\wd0>\wd2 \wd0 \else \wd2 \fi
+ \advance\dimen0 .2em
+ \definefield
+ [\currentsystemfield][line][systemfield]%
+ \setupfield
+ [systemfield]
+ [\c!n=1024, % beware: weblink plugin truncates
+ \c!location=\v!low,\c!strut=\v!yes,\c!fieldoffset=\zeropoint,
+ \c!height=1.2\openlineheight,\c!width=\dimen0,\c!offset=\v!overlay,
+ \c!style=,\c!align=\v!middle,\c!frame=\v!off,
+ \c!color=red,\c!fieldbackgroundcolor=\s!white,\c!fieldframecolor=blue,
+ \c!validate=JS(Check_Answer{\currentsystemfield,\therightanswer})]%
+ \switchtobodyfont
+ [\c!small]%
+ \hbox to \wd0
+ {\copy0\hskip-\wd0\hss\field[\currentsystemfield]\hss}}}
+
+%D and another one:
+
+\def\tooltip
+ {\dosingleempty\dotooltip}
+
+\def\dotooltip[#1]#2#3%
+ {\dontleavehmode
+ \begingroup
+ \setupfields[\v!reset]%
+ \useJSscripts[fld]%
+ \setbox0\hbox
+ {\dontcomplain
+ \nextsystemfield
+ \setbox0\hbox{#2}%
+ \definesymbol
+ [\currentsystemfield:txt]
+ [{\inframed[\c!frame=\v!off,\c!background=\v!screen]{#3}}]%
+ \setbox2\hbox{\symbol[\currentsystemfield:txt]}%
+ \definefield
+ [\currentsystemfield:txt][check]
+ [dummy][\currentsystemfield:txt][\currentsystemfield:txt]%
+ \setupfield
+ [dummy]
+ [\c!frame=\v!off,
+ \c!regionout=JS(Hide_Field{\currentsystemfield:txt}),
+ \c!option=\v!hidden]%
+ \hbox to \zeropoint
+ {\dimen0\wd2\advance\dimen0 -\wd0
+ \doifelse{#1}\v!left
+ {\hskip-\dimen0}
+ {\doif{#1}\v!middle
+ {\hskip-.5\dimen0}}%
+ \lower\openlineheight\hbox to \zeropoint
+ {\fitfield[\currentsystemfield:txt]}}%
+ \dimen0=\ifdim\wd0=\zeropoint 3em\else\wd0\fi
+ \definesymbol
+ [\currentsystemfield:but]
+ [{\framed[\c!height=2ex,\c!width=\dimen0,\c!frame=\v!off]{}}]%
+ \definefield
+ [\currentsystemfield:but][push]
+ [dummy][\currentsystemfield:but][\currentsystemfield:but]%
+ \setupfield
+ [dummy]
+ [\c!frame=\v!off,
+ \c!option=,
+ \c!regionin=JS(Vide_Field{\currentsystemfield:txt}),
+ \c!regionout=JS(Hide_Field{\currentsystemfield:txt}),
+ \c!fieldlayer=\@@iafieldlayer]%
+ \lower2ex\hbox to \zeropoint
+ {\fitfield[\currentsystemfield:but]}%
+ #2}%
+ \ht0\strutht\dp0\strutdp\box0
+ \endgroup}
+
+%D And one more:
+
+\def\definefieldstack
+ {\dotripleargument\dodefinefieldstack}
+
+\def\dodefinefieldstack[#1][#2][#3]% name, symbols, settings
+ {\ifcsname fieldstack:#1\endcsname
+ \setgvalue{fieldstack:#1}{\dodofieldstack[#1][#2][#3]}%
+ \fi}
+
+\def\fieldstack
+ {\dotripleempty\dofieldstack}
+
+\def\dofieldstack[#1][#2][#3]%
+ {\ifsecondargument
+ \dodefinefieldstack[#1][#2][#3]\fieldstack[#1]%
+ \else
+ \getvalue {fieldstack:#1}%
+ \setgvalue{fieldstack:#1}{[#1]}%
+ \fi}
+
+\def\dodofieldstack[#1][#2][#3]% start=n, 0 == leeg
+ {\dontleavehmode
+ \begingroup
+ \getparameters[\??fd][\c!start=1,#3]%
+ \setupfields[\v!reset]%
+ \definesymbol[\v!empty][]%
+ \useJSscripts[fld][FieldStack]%
+ \newcounter\stackedfieldnumber
+ \def\dododofieldstack##1%
+ {\increment\stackedfieldnumber
+ \ifnum\stackedfieldnumber=\@@fdstart\relax
+ \definefield[#1:\stackedfieldnumber][check][#1][##1,\v!empty][##1]%
+ \else
+ \definefield[#1:\stackedfieldnumber][check][#1][##1,\v!empty][\v!empty]%
+ \fi}%
+ \processcommalist[#2]\dododofieldstack
+ \setupfield[#1][\v!reset]% added
+ \setupfield[#1][\c!option=\v!readonly,#3]% #3 swapped
+ \newcounter\stackedfieldnumber
+ \def\dododofieldstack##1%
+ {\doglobal\increment\stackedfieldnumber
+ \fitfield[#1:\stackedfieldnumber]\egroup\bgroup}%
+ \startoverlay
+ \bgroup
+ \globalprocesscommalist[#2]\dododofieldstack
+ \egroup
+ \stopoverlay
+ \endgroup}
+
+%D When submitting a form, we need to tell the driver module
+%D that we want \FDF\ or \HTML.
+
+\newtoks\everysetupforms
+
+\def\setupforms{\dosingleempty\dosetupforms}
+
+\def\dosetupforms[#1]
+ {\getparameters[\??fr][#1]%
+ \the\everysetupforms}
+
+\appendtoks
+ \ctxlua{backends.codeinjections.setformsmethod("@@frmethod")}%
+\to \everysetupforms
+
+\setupforms
+ [\c!method=XML] % no need for everyjob initialization as this is the default
+
+%D Goodie: (unchecked in \MKIV)
+
+\def\definepushbutton % name optional setup
+ {\dodoubleempty\dodefinepushbutton}
+
+\def\dodefinepushbutton[#1][#2]% name setup
+ {\dododefinepushbutton{#1}{n}{push}%
+ \dododefinepushbutton{#1}{r}{\symbol[psym:#1:n]}%
+ \dododefinepushbutton{#1}{d}{\symbol[psym:#1:r]}%
+ \setvalue{pushbutton:#1}{\dohandlepushbutton{#1}{#2}}}
+
+\def\dododefinepushbutton#1#2#3%
+ {\doifsymboldefinedelse{psym:#1:#2}%
+ \donothing{\definesymbol[psym:#1:#2][{#3}]}}
+
+\def\definepushsymbol
+ {\dotripleargument\dodefinepushsymbol}
+
+\def\dodefinepushsymbol[#1][#2]% [#3]
+ {\definesymbol[psym:#1:#2]}
+
+\def\dopushbutton[#1][#2]%
+ {\executeifdefined{pushbutton:#1}\gobbleoneargument{#2}}
+
+\def\pushbutton
+ {\dodoubleargument\dopushbutton}
+
+\def\dohandlepushbutton#1#2#3% identifier setup script
+ {\bgroup
+ \nextsystemfield
+ \setupfield
+ [pushbutton]
+ [\c!frame=\v!overlay,
+ \c!offset=\v!overlay,
+ \c!clickout=#3,#2]%
+ \definefield
+ [\currentsystemfield]
+ [push]
+ [pushbutton]
+ [psym:#1:n,psym:#1:r,psym:#1:d]%
+ \fitfield
+ [\currentsystemfield]%
+ \egroup}
+
+% \def\menu@psh
+% {\dodoubleargument\domenu@psh}
+%
+% \def\domenu@psh[#1][#2]#3\\%
+% {\txt\pushbutton[#1][#2]\\}%
+%
+%\appendtoks \let\psh\do@@ampsh \to \everysetmenucommands
+
+\unexpanded\def\menu@psh{\txt\pushbutton}
+
+\appendtoks \let\psh\menu@psh \to \everysetmenucommands
+
+% \definepushbutton [reset]
+%
+% \definepushsymbol [reset] [n] [\uniqueMPgraphic{whatever}{color=green}]
+% \definepushsymbol [reset] [r] [\uniqueMPgraphic{whatever}{color=white}]
+%
+% \startinteractionmenu[bottom]
+% \psh [reset] [JS(reset_something)] \\
+% \stopinteractionmenu
+
+%D Another goodie: (unchecked in \MKIV)
+
+% \definecolor[rollover:n][red]
+% \definecolor[rollover:r][green]
+% \definecolor[rollover:d][blue]
+
+\definepalet
+ [rollover]
+ [n=red,
+ r=green,
+ d=blue]
+
+\newcounter\nofrollovers
+\newcounter\nofrollbuttons
+
+\def\dorollbutton[#1][#2]#3[#4]%
+ {\dontleavehmode
+ \bgroup
+ \doglobal\increment\nofrollovers
+ \doglobal\increment\nofrollbuttons
+ \unexpanded\def\dosetlocationbox[##1]##2[##3]%
+ {\getparameters[##1][##3]%
+ \definecolor[rollover][rollover:##2]%
+ \doifelse{##2}{n}{\doifelsevalue{##1\c!alternative}\v!hidden\phantom\hbox}\hbox
+ {\localframed[##1]
+ [\c!framecolor=rollover,\c!backgroundcolor=rollover,\c!color=rollover]%
+ {\dolocationattributes{##1}\c!style\c!color{#3}}}}%
+ \iffirstargument
+ \ifsecondargument
+ \def\setlocationbox##1{\dosetlocationbox[\??am#1]{##1}[#2]}%
+ \else
+ \doifassignmentelse{#1}
+ {\def\setlocationbox##1{\dosetlocationbox[\??bt]{##1}[#1]}}
+ {\def\setlocationbox##1{\dosetlocationbox[\??am#1]{##1}[]}}%
+ \fi
+ \else
+ \def\setlocationbox##1{\dosetlocationbox[\??bt]{##1}[]}%
+ \fi
+ % todo: share symbols, tricky since different dimensions
+ \definesymbol[rsym:\nofrollovers:n][\setlocationbox n]%
+ \definesymbol[rsym:\nofrollovers:r][\setlocationbox r]%
+ \definesymbol[rsym:\nofrollovers:d][\setlocationbox d]%
+ \setupfield
+ [rollbutton]
+ [\c!frame=\v!off,
+ \c!offset=\v!overlay,
+ \c!clickout={#4}]%
+ \definefield
+ [roll:\nofrollbuttons][push][rollbutton]
+ [rsym:\nofrollovers:n,%
+ rsym:\nofrollovers:r,%
+ rsym:\nofrollovers:d]%
+ \fitfield[roll:\nofrollbuttons]%
+ \egroup}
+
+\unexpanded\def\rollbutton
+ {\dodoubleempty\dorollbutton}
+
+\def\menu@rob[#1]#2\\%
+ {\txt\rollbutton[\currentmenu]{\ignorespaces#2\unskip}[#1]\\}%
+
+\appendtoks \let\rob\menu@rob \to \everysetmenucommands
+
+% calls:
+% {..} [JS..]
+% [left] {..} [JS..]
+% [a=b] {..} [JS..]
+% [left] [a=b] {..} [JS..]
+%
+% \setupbuttons[offset=0pt,frame=off] % alternative=hidden
+%
+% \rollbutton {Manuals} [JS(Goto_File{show-man.pdf})]
+% \rollbutton {Articles} [JS(Goto_File{show-art.pdf})]
+% \rollbutton {Papers} [JS(Goto_File{show-pap.pdf})]
+% \rollbutton {Presentations} [JS(Goto_File{show-pre.pdf})]
+% \rollbutton {Resources} [JS(Goto_File{show-res.pdf})]
+%
+% \rob [JS(...)] bla bla \\
+
+\unexpanded\def\overlayrollbutton
+ {\dodoubleargument\dooverlayrollbutton}
+
+\def\dooverlayrollbutton[#1][#2]%
+ {\bgroup
+ \nextsystemfield
+ \setupfield
+ [overlayrollbutton]
+ [\c!frame=\v!off,\c!offset=\v!overlay,\c!regionin={#1},\c!regionout={#2}]%
+ \definesymbol
+ [\currentsystemfield]
+ [{\framed[\c!frame=\v!off,\c!width=\overlaywidth,\c!height=\overlayheight]{}}]%
+ \definefield
+ [\currentsystemfield][push][overlayrollbutton][\currentsystemfield][\currentsystemfield]%
+ \fitfield[\currentsystemfield]%
+ \egroup}
+
+% \defineoverlay
+% [ShowMenu]
+% [{\overlayrollbutton[VideLayer{navigation}][HideLayer{navigation}]}]
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-hlp.tex b/Master/texmf-dist/tex/context/base/scrn-hlp.mkii
index 46b469b68dd..c9fcbd29ac0 100644
--- a/Master/texmf-dist/tex/context/base/core-hlp.tex
+++ b/Master/texmf-dist/tex/context/base/scrn-hlp.mkii
@@ -1,7 +1,7 @@
%D \module
-%D [ file=core-hlp,
+%D [ file=scrn-hlp,
%D version=1998.10.10,
-%D title=\CONTEXT\ Core Macros,
+%D title=\CONTEXT\ Screen Macros,
%D subtitle=Help (Experimental),
%D author={Hans Hagen \& Ton Otten},
%D date=\currentdate,
@@ -13,6 +13,8 @@
% todo : dedicated vide/hide voor helps
+\writestatus{loading}{ConTeXt Screen Macros / Help popups}
+
%D This is an experimental and private module, so the interface
%D and functionality can change. Pieces of code will be moved
%D to other modules. More features are possible but will be
diff --git a/Master/texmf-dist/tex/context/base/scrn-hlp.mkiv b/Master/texmf-dist/tex/context/base/scrn-hlp.mkiv
new file mode 100644
index 00000000000..c9fcbd29ac0
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/scrn-hlp.mkiv
@@ -0,0 +1,171 @@
+%D \module
+%D [ file=scrn-hlp,
+%D version=1998.10.10,
+%D title=\CONTEXT\ Screen Macros,
+%D subtitle=Help (Experimental),
+%D author={Hans Hagen \& Ton Otten},
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+% todo : dedicated vide/hide voor helps
+
+\writestatus{loading}{ConTeXt Screen Macros / Help popups}
+
+%D This is an experimental and private module, so the interface
+%D and functionality can change. Pieces of code will be moved
+%D to other modules. More features are possible but will be
+%D interfaces later. See m-chart for an application as well
+%D as the second tno-tpd manual (graphic in margin, click
+%D on it, pop up big one, use menu with hides, as well as
+%D background, etc. etc.
+
+\unprotect
+
+\defineframedtext
+ [\v!helptext]
+
+\setupframedtexts
+ [\v!helptext]
+ [\c!width=.75\textwidth,
+ \c!align=\v!normal,
+ \c!frame=\v!off,
+ \c!background=\v!screen]
+
+\newcounter \nofhelpdataentries
+\newconditional \somehelpdatadefined
+
+\appendtoks \getpagehelpdata \to \beforeeverypage
+\appendtoks \synchronizepagehelpdata \to \aftereverypage
+
+% will be proper state variable
+
+\let\pagehelpdata\empty
+
+\def\dontresetpagedata
+ {\let\synchronizepagehelpdata\relax}
+
+\def\resetpagehelpdata
+ {\iflocation
+ \let\synchronizepagehelpdata\resetpagehelpdata
+ \global\let\pagehelpdata\empty
+ \resetreference[HideHelp]%
+ \fi}
+
+\let\synchronizepagehelpdata\resetpagehelpdata
+
+\resetreference[HideHelp]
+
+\def\getpagehelpdata
+ {\iflocation\ifcase\nofhelpdataentries\else
+ \let\pagehelpdata\empty
+ \ifconditional\somehelpdatadefined
+ \definetwopasslist{hlp:\realfolio}%
+ \doloop
+ {\gettwopassdata{hlp:\realfolio}%
+ \iftwopassdatafound
+ \addtocommalist\twopassdata\pagehelpdata
+ \else
+ \exitloop
+ \fi}%
+ \fi
+ \ifx\pagehelpdata\empty \else
+ \useJSscripts[fld]%
+ \definereference[HideHelp][JS(Hide_Fields)]% for the moment
+ \fi
+ \fi\fi}
+
+\def\setpagehelpdata[#1]%
+ {\iflocation\expanded{\dosetpagehelpdata{#1}}\fi}
+
+\def\dosetpagehelpdata#1%
+ {\doglobal\increment\nofhelpdataentries
+ \savetwopassdata{hlp:\realfolio}{\nofhelpdataentries}{#1}}
+
+\setvalue{\e!start\v!helptext}[#1]%
+ {\iflocation
+ \global\settrue\somehelpdatadefined
+ \setvalue{\e!stop\v!helptext}%
+ %{\definesymbol[helpinfo:#1][{\doframedtext[\v!helptext]{\getbuffer[\v!helptext]}}]%
+ % \dopresetfieldsymbol{helpinfo:#1}}%
+ {\definesymbol[\v!helptext:#1][{\doframedtext[\v!helptext]{\getbuffer[\v!helptext]}}]%
+ \dopresetfieldsymbol{\v!helptext:#1}}%
+ \else
+ \letvalue{\e!stop\v!helptext}\relax
+ \fi
+ \dostartbuffer[\v!helptext][\e!start\v!helptext][\e!stop\v!helptext]}
+
+\long\def\helptext[#1]#2%
+ {\iflocation
+ \global\settrue\somehelpdatadefined
+ %\definesymbol[helpinfo:#1][{\doframedtext[\v!helptext]{#2}}]%
+ %\dopresetfieldsymbol{helpinfo:#1}%
+ \definesymbol[\v!helptext:#1][{\doframedtext[\v!helptext]{#2}}]%
+ \dopresetfieldsymbol{\v!helptext:#1}%
+ \fi}
+
+\let\definehelptext\helptext % for backward compabilities sake
+
+\def\dohelpdata#1%
+ {\setbox\scratchbox\hbox
+ {\startoverlay
+ {\box\scratchbox}
+ %{\definemainfield[help:#1][check][helpsetup][helpinfo:#1][helpinfo:#1]%
+ {\definemainfield[help:#1][check][helpsetup][\v!helptext:#1][\v!helptext:#1]%
+ \fitfield[help:#1]}
+ \stopoverlay}}
+
+\def\helpdata
+ {\iflocation
+ \bgroup
+ %\getpagehelpdata
+ \ifx\pagehelpdata\empty \else
+ \setupfields[\v!reset]%
+ \setupfield
+ [helpsetup]
+ [\c!width=\v!fit,
+ \c!height=\v!fit,
+ \c!frame=\v!off,
+ \c!clickin=JS(Hide_Fields),
+ \c!option={\v!readonly,\v!hidden}]%
+ \setbox\scratchbox\emptybox
+ \processcommacommand[\pagehelpdata]\dohelpdata
+ \box\scratchbox
+ \fi
+ \egroup
+ \fi}
+
+\def\helpbutton % also gobble spaces between [][]
+ {\dodoubleempty\dohelpbutton}
+
+\def\dohelpbutton
+ {\ifsecondargument
+ \expandafter\donohelpbutton
+ \else
+ \expandafter\dodohelpbutton
+ \fi}
+
+\def\dodohelpbutton[#1][#2]#3[#4]% #2 is space gobbling dummy
+ {\iflocation
+ \setpagehelpdata[#4]%
+ \useJSscripts[fld]%
+ \button[#1]{#3}[JS(Vide_Hide_Fields{help:#4})]%
+ \fi}
+
+\def\donohelpbutton[#1][#2]%
+ {\dodohelpbutton[#1][]{}[#2]}
+
+\def\doifhelpinfo#1#2%
+ {\iflocation
+ \doifsymboldefinedelse{helpinfo:#1}{#2}\donothing
+ \fi}
+
+\def\doifelsehelpinfo#1#2#3%
+ {\iflocation
+ \doifsymboldefinedelse{helpinfo:#1}{#2}{#3}%
+ \fi}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/scrn-int.lua b/Master/texmf-dist/tex/context/base/scrn-int.lua
new file mode 100644
index 00000000000..7e90ed069f1
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/scrn-int.lua
@@ -0,0 +1,111 @@
+if not modules then modules = { } end modules ['scrn-int'] = {
+ version = 1.001,
+ comment = "companion to scrn-int.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local format = string.format
+local texsprint, texcount, ctxcatcodes = tex.sprint, tex.count, tex.ctxcatcodes
+
+interactions = interactions or { }
+
+local attachments = { }
+
+function interactions.registerattachment(specification)
+ if specification.label then
+ specification.filename = specification.filename or specification.label
+ specification.newname = specification.newname or specification.filename
+ specification.title = specification.title or specification.filename
+ specification.newname = file.addsuffix(specification.newname,file.extname(specification.filename))
+ attachments[specification.label] = specification
+ return specification
+ end
+end
+
+function interactions.attachment(label)
+ local at = attachments[label]
+ if not at then
+ interfaces.showmessage("interactions",6,label)
+ return interactions.registerattachment { label = label }
+ else
+ return at
+ end
+end
+
+function interactions.attachmentvar(label,key)
+ local at = attachments[label]
+ texsprint(ctxcatcodes,at and at[key] or "")
+end
+
+local soundclips = { }
+
+function interactions.registersoundclip(specification)
+ if specification.label then
+ specification.filename = specification.filename or specification.label
+ soundclips[specification.label] = specification
+ return specification
+ end
+end
+
+function interactions.soundclip(label)
+ local sc = soundclips[label]
+ if not sc then
+ -- todo: message
+ return interactions.registersoundclip { label = label }
+ else
+ return sc
+ end
+end
+
+local renderings = { }
+
+function interactions.registerrendering(specification)
+ if specification.label then
+ renderings[specification.label] = specification
+ return specification
+ end
+end
+
+function interactions.rendering(label)
+ local rn = renderings[label]
+ if not rn then
+ -- todo: message
+ return interactions.registerrendering { label = label }
+ else
+ return rn
+ end
+end
+
+function interactions.renderingvar(label,key)
+ local rn = renderings[label]
+ texsprint(ctxcatcodes,rn and rn[key] or "")
+end
+
+-- linked lists
+
+function interactions.definelinkedlist(name)
+ -- no need
+end
+
+function interactions.addlinktolist(name)
+ local tobesaved = jobpasses.gettobesaved(name)
+ local collected = jobpasses.getcollected(name) or { }
+ local currentlink = #tobesaved + 1
+ local noflinks = #collected
+ tobesaved[currentlink] = 0
+ local f = collected[1] or 0
+ local l = collected[noflinks] or 0
+ local p = collected[currentlink-1] or f
+ local n = collected[currentlink+1] or l
+ texsprint(ctxcatcodes,format("\\setlinkproperties{%s}{%s}{%s}{%s}{%s}{%s}",currentlink,noflinks,f,p,n,l))
+end
+
+function interactions.enhancelinkoflist(name,n)
+ local ll = jobpasses.gettobesaved(name)
+ if ll then
+ ll[n] = texcount.realpageno
+ end
+end
+
diff --git a/Master/texmf-dist/tex/context/base/core-int.tex b/Master/texmf-dist/tex/context/base/scrn-int.mkii
index 6545934f523..9f1be68e193 100644
--- a/Master/texmf-dist/tex/context/base/core-int.tex
+++ b/Master/texmf-dist/tex/context/base/scrn-int.mkii
@@ -1,5 +1,5 @@
%D \module
-%D [ file=core-int,
+%D [ file=scrn-int,
%D version=1995.01.01,
%D title=\CONTEXT\ Core Macros,
%D subtitle=Interaction,
@@ -15,145 +15,7 @@
%D Still to be done properly.
-\writestatus{loading}{Context Core Macros / Interaction}
-
-% interactions 5 and 6 to be translated
-
-\startmessages dutch library: interactions
- title: interactie
- 1: aspect ratio -- x -- (b x h)
- 2: actief
- 3: niet actief
- 4: geen paginasynchronisatie (--) in hmode
- 5: onbekend attachment --
- 6: attachment file -- bestaat niet
-\stopmessages
-
-\startmessages english library: interactions
- title: interaction
- 1: aspect ratio -- x -- (b x h)
- 2: active
- 3: inactive
- 4: no pagesynchronisation (--) in hmode
- 5: unknown attachment --
- 6: attachment file -- does not exist
-\stopmessages
-
-\startmessages german library: interactions
- title: Interaktion
- 1: Seitenverhaeltnis -- x -- (B x H)
- 2: aktiv
- 3: inaktiv
- 4: keine Seitensynchronisation (--) im hmode
- 5: unknown attachment --
- 6: attachment file -- does not exist
-\stopmessages
-
-\startmessages czech library: interactions
- title: interakce
- 1: pomer -- x -- (s x v)
- 2: aktivni
- 3: neaktivni
- 4: zadna strankova synchronizace (--) v hmode
- 5: unknown attachment --
- 6: attachment file -- does not exist
-\stopmessages
-
-\startmessages italian library: interactions
- title: interazione
- 1: rapporto -- x -- (b x a)
- 2: attiva
- 3: inattiva
- 4: sincronizzazione di pagina (--) non disponibile in hmode
- 5: unknown attachment --
- 6: attachment file -- does not exist
-\stopmessages
-
-\startmessages norwegian library: interactions
- title: interaksjon
- 1: forholdstall -- x -- (b x h)
- 2: aktiv
- 3: inaktiv
- 4: ingen sidesynkronisering (--) i hmode
- 5: unknown attachment --
- 6: attachment file -- does not exist
-\stopmessages
-
-\startmessages romanian library: interactions
- title: interactiuni
- 1: aspectul -- x -- (b x h)
- 2: activ
- 3: inactiv
- 4: nu exista sincronizare pt. pagini (--) in hmode
- 5: unknown attachment --
- 6: attachment file -- does not exist
-\stopmessages
-
-\startmessages french library: interactions
- title: interaction
- 1: ratio d'aspect -- x -- (b x h)
- 2: actif
- 3: inactif
- 4: pas de synchronisation de page (--) dans le hmode
- 5: le fichier joint -- est inconnu
- 6: le fichier joint -- n'existe pas
-\stopmessages
-
-\startmessages dutch library: versions
- title: versie
- 1: er mankeert een @+
- 2: markeren pagina's
- 3: geselecteerde pagina's: --
-\stopmessages
-
-\startmessages english library: versions
- title: version
- 1: missing @+
- 2: marking pages
- 3: selected pages: --
-\stopmessages
-
-\startmessages german library: versions
- title: Version
- 1: fehlendes @+
- 2: Erstelle Seiten
- 3: Ausgewaehlte Seiten: --
-\stopmessages
-
-\startmessages czech library: versions
- title: verze
- 1: postradam @+
- 2: oznacuji se strany
- 3: oznacene strany: --
-\stopmessages
-
-\startmessages italian library: versions
- title: version
- 1: @+ mancante
- 2: marcatura pagine
- 3: pagine selezionate: --
-\stopmessages
-
-\startmessages norwegian library: versions
- title: versjon
- 1: manglende @+
- 2: markerer sider
- 3: valgte sider: --
-\stopmessages
-
-\startmessages romanian library: versions
- title: versiuni
- 1: lipseste @+
- 2: pagini marcate
- 3: pagini selectate: --
-\stopmessages
-
-\startmessages french library: versions
- title: version
- 1: @+ manquant
- 2: marquage des pages
- 3: pages sélectionnées : --
-\stopmessages
+\writestatus{loading}{ConTeXt Screen Macros / Interaction}
\unprotect
@@ -165,66 +27,11 @@
\newcounter\numberoflinks
-\def\stelkoppelingenin%
+\def\stelkoppelingenin
{\dodoubleargument\getparameters[\??lk]}
\def\definieerkoppeling[#1]% % local loading !
{\doifundefined{\s!link:#1:\s!list}
- {\expanded{\definetwopasslist{\s!link:#1}}%
- \expanded{\doloadtwopassdata{\s!link:#1}}%
- \getfirsttwopassdata{\s!link:#1}%
- \letgvalue{\s!link:#1:f}\twopassdata
- \getlasttwopassdata{\s!link:#1}%
- \letgvalue{\s!link:#1:l}\twopassdata
- \letgvalue{\s!link:#1:s}\noftwopassitems
- \gettwopassdata{\s!link:#1}%
- \letgvalue{\s!link:#1:c}\twopassdata
- \letgvalue{\s!link:#1:n}\twopassdata}}
-
-\def\koppeling[#1]#2%
- {\bgroup
- \definieerkoppeling[#1]%
- \doglobal\increment\numberoflinks
- \gettwopassdata{\s!link:#1}%
- \edef\numberoflinks{0\getvalue{\s!link:#1:s}}%
- \edef\firstlink {0\getvalue{\s!link:#1:f}}%
- \edef\lastlink {0\getvalue{\s!link:#1:l}}%
- \edef\currentlink {0\getvalue{\s!link:#1:n}}%
- \edef\prevlink {0\getvalue{\s!link:#1:c}}%
- \iftwopassdatafound
- \edef\nextlink{0\twopassdata}%
- \letgvalue{\s!link:#1:n}\nextlink
- \letgvalue{\s!link:#1:c}\currentlink
- \else
- \edef\nextlink{0\getvalue{\s!link:#1:l}}%
- \fi
- \lazysavetwopassdata{\s!link:#1}{\numberoflinks}{\noexpand\realfolio}%
- \ifnum\noflinks<\plustwo
- \locationfalse
- \fi
- \iflocation
- \hbox
- {\setinteractionparameter\c!width\!!zeropoint
- \dogotosomepage\??lk\gotobegincharacter\firstlink\hss
- \ifnum\noflinks>\plustwo
- \hskip\@@lkdistance
- \dogotosomepage\??lk\gobackwardcharacter\prevlink\hss
- \fi
- \hskip\@@lkdistance
- #2\relax
- \hskip\@@lkdistance
- \ifnum\noflinks>\plustwo
- \dogotosomepage\??lk\goforwardcharacter\nextlink\hss
- \hskip\@@lkdistance
- \fi
- \dogotosomepage\??lk\gotoendcharacter\lastlink}%
- \else
- \hbox{#2}%
- \fi
- \egroup}
-
-\def\definieerkoppeling[#1]% % local loading !
- {\doifundefined{\s!link:#1:\s!list}
{\expanded{\definetwopasslist{\s!link:#1}}% \expanded{\doloadtwopassdata{\s!link:#1}}%
\getfirsttwopassdata{\s!link:#1}%
\let\firstlink\twopassdata
@@ -582,7 +389,7 @@
{\chardef\openbookmark\zerocount}%
\iftracebookmarks(#6: #4)\quad(\the\openbookmark)\par\fi
\doinsertbookmark{#2}{#3}{#4}{#5}{\openbookmark}}
-
+
% \startinteractionmenu[rechts]
% \but [eerste] eerste \\
% \txt hello world \\
@@ -698,7 +505,7 @@
\fi}}%
\ifskippedmenuitem\else\box\locationbox\fi}
-\def\setlocationboxnop#1[#2]#3[#4]%
+\def\setlocationboxnop#1[#2]#3[#4]% inefficient as text can be outside box
{\locationclickfalse
\setbox\locationbox\hbox
{\resetgoto % anders cyclische aanroep !
@@ -851,7 +658,7 @@
\setbox\scratchbox\vbox{\hbox{\do@@ammenuposition{#3}{\box\scratchbox}}}%
\setbox\scratchbox\vbox
{\ht\scratchbox\zeropoint
- \vskip\dimexpr-\pagebackgroundvoffset+\endcsname\c!topoffset\relax
+ \vskip\dimexpr-\pagebackgroundvoffset+\menuparameter\c!topoffset\relax
\box\scratchbox
\vskip\pagebackgroundvoffset}% overbodig
\ht\scratchbox\textheight
@@ -1129,8 +936,8 @@
% Hier volgen de synchronisatiemacro's:
\def\syncprefix{sync}
-\def\syncmarker{syncmark}
+%def\syncmarker{syncmark}
%\definemarking[\syncmarker]
%\setupmarking[\syncmarker][\c!expansie=\v!ja]
@@ -1534,7 +1341,7 @@
\def\complexinteractionbar[#1]%
{\doifelse{#1}\v!reset
- {\global\setbox\interactionbarbox\box\voidb@x}%
+ {\global\setbox\interactionbarbox\emptybox}%
{\bgroup
\iflocation
\checksubpages % goes wrong / loads \numberofpages too
@@ -2070,7 +1877,6 @@
%
% \starttext \attachment[whatever] \stoptext
-\definesystemvariable{at}
\def\useattachment
{\doquadrupleempty\douseattachment}
@@ -2166,6 +1972,144 @@
\def\registermenubuttons
{\dodoubleempty\doregistermenubuttons}
+% It took quite a while to figure this out (using the preliminary 1.5
+% spec). There are still a lot of things to be implemented. This is
+% the third alternative.
+
+% todo: multiple instances, dus indirect
+
+\let\currentrendering\empty
+
+\definereference[StartCurrentRendering] [\v!StartRendering {\currentrendering}]
+\definereference[StopCurrentRendering] [\v!StopRendering {\currentrendering}]
+\definereference[PauseCurrentRendering] [\v!PauseRendering {\currentrendering}]
+\definereference[ResumeCurrentRendering][\v!ResumeRendering{\currentrendering}]
+
+\newcounter\nofexternalrenderings
+
+\def\useexternalrendering{\doquadrupleempty\douseexternalrendering}
+\def\setinternalrendering{\dodoubleempty \dosetinternalrendering}
+
+\def\douseexternalrendering[#1][#2][#3][#4]% tag mime file options
+ {\setgvalue{\??rd:#1}{\plusone{#1}{#2}{#3}{#4}}}
+
+\def\dosetinternalrendering[#1][#2]% tag options {content}
+ {\bgroup
+ \dowithnextbox
+ {\setgvalue{\??rd:#1}{\plustwo{#1}{IRO}{#1}{#2}}%
+ \let\objectoffset\zeropoint
+ \setobject{IRO}{#1}\hbox{\box\nextbox}%
+ \egroup}%
+ \hbox}
+
+\def\checkrendering#1% let's hope that \next is not used
+ {\iflocation
+ \doifsomething{#1}%
+ {\doifdefined{\??rd:#1}%
+ {\expanded{\getvalue{\??rd::\number\renderingtype{#1}}%
+ {\filterfromvalue{\??rd:#1}52}{\filterfromvalue{\??rd:#1}53}%
+ {\filterfromvalue{\??rd:#1}54}{\filterfromvalue{\??rd:#1}55}}}}%
+ \fi}
+
+\setvalue{\??rd::1}{\doinsertrendering}
+\setvalue{\??rd::2}{\doinsertrenderingobject}
+
+\def\renderingtype #1{\filterfromvalue{\??rd:#1}51}
+\def\renderingoptions#1{\filterfromvalue{\??rd:#1}55}
+
+\setexecutecommandcheck {startrendering} \checkrendering
+\setexecutecommandcheck {stoprendering} \checkrendering
+\setexecutecommandcheck {pauserendering} \checkrendering
+\setexecutecommandcheck {resumerendering} \checkrendering
+
+% by using a nice trick (used in other places of context as well) we
+% can easily overload the default size to match the opbject size
+
+\def\renderingwidth {8cm}
+\def\renderingheight{6cm}
+
+\def\definerenderingwindow
+ {\dodoubleempty\dodefinerenderingwindow}
+
+\def\dodefinerenderingwindow[#1][#2]%
+ {\presetlocalframed[\??rw#1]%
+ \getparameters%
+ [\??rw#1]%
+ [\c!openpageaction=,\c!closepageaction=,%
+ \c!width=\renderingwidth,\c!height=\renderingheight,%
+ #2]}
+
+\def\setuprenderingwindow
+ {\dodoubleargument\dosetuprenderingwindow}
+
+\def\dosetuprenderingwindow[#1]%
+ {\getparameters[\??rw#1]}
+
+\def\placerenderingwindow
+ {\dodoubleempty\doplacerenderingwindow}
+
+\def\doplacerenderingwindow[#1][#2]%
+ {\bgroup
+ \edef\currentrendering{\ifsecondargument#2\else#1\fi}%
+ \ifcase\renderingtype\currentrendering\or
+ % a file
+ \or
+ % an object
+ \getobjectdimensions{IRO}\currentrendering
+ \scratchdimen\objectheight
+ \advance\scratchdimen\objectdepth
+ \edef\renderingheight{\the\scratchdimen}%
+ \edef\renderingwidth{\objectwidth}%
+ \fi
+ % create fall back if needed
+ \doifdefinedelse{\??rw#1\c!width}
+ {\def\currentrenderingwindow{#1}}
+ {\let\currentrenderingwindow\s!default
+ \definerenderingwindow[\currentrenderingwindow]}%
+ \checkrendering\currentrendering
+ \handlereferenceactions{\getvalue{\??rw\currentrenderingwindow\c!openpageaction }}\dosetuprenderingopenpageaction
+ \handlereferenceactions{\getvalue{\??rw\currentrenderingwindow\c!closepageaction}}\dosetuprenderingclosepageaction
+ \localframed
+ [\??rw\currentrenderingwindow][\c!offset=\v!overlay]%
+ {\expanded{\doinsertrenderingwindow
+ \noexpand\currentrendering\hsize\vsize{\renderingoptions\currentrendering}}}%
+ \egroup}
+
+% todo:
+%
+% \setinternalrendering[example-1][options]{}
+
+% test file:
+%
+% \definerenderingwindow
+% [example]
+% [width=320pt,height=150pt,frame=off,
+% background=color,backgroundcolor=gray,
+% openpageaction=StartCurrentRendering,
+% closepageaction=NextPage]% StopCurrentRendering]
+%
+% \useexternalrendering[example-1][audio/mpeg] [eldorado.mp3]
+% \useexternalrendering[example-2][audio/mpeg] [myst-12.mp3]
+% \useexternalrendering[example-3][application/x-shockwave-flash][http://localhost/mb.swf] [auto]
+% \useexternalrendering[example-4][application/x-shockwave-flash][celebration.swf]
+% \useexternalrendering[example-5][video/quicktime] [p1000726.mov]
+% \useexternalrendering[example-6][application/smil] [quadratic_map.smi]
+%
+% \def\renderingmenu[#1]%
+% {\hbox
+% {\setupbuttons[width=2.5em]%
+% \button{\symbol[StartRendering]} [StartRendering{#1}]\enspace
+% \button{\symbol[StopRendering]} [StopRendering{#1}]\enspace
+% \button{\symbol[PauseRendering]} [PauseRendering{#1}]\enspace
+% \button{\symbol[ResumeRendering]}[ResumeRendering{#1}]}}
+%
+% \renderingmenu[example-1]\blank
+% \renderingmenu[example-2]\blank
+% \renderingmenu[example-3]\blank
+% \renderingmenu[example-4] \placefigure{A ShockWave}{\placerenderingwindow[example][example-4]} \page
+% \renderingmenu[example-5] \placefigure{A Movie}{\placerenderingwindow[example][example-5]} \page
+% \renderingmenu[example-6] \placefigure{A Smile}{\placerenderingwindow[example][example-6]}
+
\stelkoppelingenin
[\c!distance=.25em,
\c!width=\v!fit,
diff --git a/Master/texmf-dist/tex/context/base/scrn-int.mkiv b/Master/texmf-dist/tex/context/base/scrn-int.mkiv
new file mode 100644
index 00000000000..a68c374dd8f
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/scrn-int.mkiv
@@ -0,0 +1,595 @@
+%D \module
+%D [ file=scrn-int,
+%D version=1995.01.01,
+%D title=\CONTEXT\ Core Macros,
+%D subtitle=Interaction,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Screen Macros / Interaction}
+
+\unprotect
+
+%D This is an update of \MKII\ code. In the process profiles and versions
+%D were removed as I never used them (although they were kind of cool at
+%D that time).
+
+% a bit complex due to papercomment (see imposition code)
+
+\newtoks\everysetupinteractionscreen
+
+\def\setupinteractionscreen
+ {\dosingleempty\dosetupinteractionscreen}
+
+\def\dosetupinteractionscreen[#1]%
+ {\getparameters[\??sc][#1]%
+ \the\everysetupinteractionscreen}
+
+\def\synchronizepaperdimensionssimple % simple version
+ {\bgroup
+ \ifx\@@ppleft \empty
+ \ifx\@@ppright \empty
+ \ifx\@@pptop \empty
+ \ifx\@@ppbottom \empty
+ \ifx\@@pcstate\v!start
+ \locationfalse\fi\else
+ \locationfalse\fi\else
+ \locationfalse\fi\else
+ \locationfalse\fi\else
+ \locationfalse\fi
+ \iflocation % without screen settings
+ \ctxlua{backends.codeinjections.setupcanvas {
+ paperwidth = \number\paperwidth,
+ paperheight = \number\paperheight
+ }}%
+ \else
+ \ctxlua{backends.codeinjections.setupcanvas {
+ paperwidth = \number\printpaperwidth,
+ paperheight = \number\printpaperheight
+ }}%
+ \fi
+ \egroup}
+
+\def\synchronizepaperdimensionscomplex % complex version
+ {\bgroup
+ \edef\@@scwidth {\@@scwidth}%
+ \edef\@@scheight{\@@scheight}%
+ \ifx\@@scwidth\v!fit
+ \!!widtha\leftcombitotal
+ \ifdim\backspace>\!!widtha\ifdim\backspace>\zeropoint\relax
+ \advance\backspace -\!!widtha
+ \fi\fi
+ \advance\!!widtha\dimexpr\rightcombitotal+2\dimexpr\@@scbackspace+\@@schoroffset\relax\relax
+ \else\ifx\@@scwidth\v!max
+ \!!widtha\printpaperwidth
+ \else
+ \!!widtha\@@scwidth
+ \fi\fi
+ \ifx\@@scheight\v!fit
+ \!!heighta\dimexpr\topheight+\topdistance\relax
+ \ifdim\topspace>\!!heighta\ifdim\topspace>\zeropoint\relax
+ \advance\topspace -\!!heighta
+ \fi\fi
+ \advance\!!heighta\dimexpr\makeupheight+\bottomdistance+\bottomheight+2\dimexpr\@@sctopspace+\@@scveroffset\relax\relax
+ \else\ifx\@@scheight\v!max
+ \!!heighta\printpaperheight
+ \else
+ \!!heighta\@@scheight
+ \fi\fi
+ \doif\@@scdelay\v!none{\let\@@scdelay\zerocountervalue}%
+ \ifdim\!!widtha>\paperwidth\ifdim\!!widtha>\zeropoint
+ \paperwidth\!!widtha
+ \fi\fi
+ \ifdim\!!heighta>\paperheight\ifdim\!!heighta>\zeropoint
+ \paperheight\!!heighta
+ \fi\fi
+ \ctxlua{backends.codeinjections.setupcanvas {
+ mode = "\@@scoption",
+ doublesided = \ifsinglesided false\else\ifdoublesided true\else false\fi\fi,
+ leftoffset = \number\dimexpr\backoffset\relax,
+ topoffset = \number\dimexpr\topoffset \relax,
+ width = \number\dimexpr\!!widtha \relax,
+ height = \number\dimexpr\!!heighta \relax,
+ paperwidth = \number\paperwidth,
+ paperheight = \number\paperheight
+ }}%
+ \egroup}
+
+\let\synchronizepaperdimensions \synchronizepaperdimensionscomplex
+
+\appendtoks
+ \ifproductionrun
+ \doifelse\@@pcstate\v!start
+ {\let\synchronizepaperdimensions\synchronizepaperdimensionssimple}
+ {\let\synchronizepaperdimensions\synchronizepaperdimensionscomplex}%
+ \fi
+\to \everysetupinteractionscreen
+
+\appendtoks \synchronizepaperdimensions \to \everyshipout
+
+%D The next mechanism, linked lists, is quite old and
+%D is \MKIV'd for completeness. I will finish the
+%D confuguration part when I need it.
+
+% todo: a kind of button that gets a tag passed (\??tk)
+
+% \starttext
+% \setupinteraction[state=start]
+% \definelinkedlist[demo]
+% \dorecurse{10}{\linkedlistelement[demo]{link \recurselevel} \page}
+% \stoptext
+
+\def\linkedlistparameter #1{\csname\dolinkedlistparameter{\??lk\currentlinkedlist}#1\endcsname}
+\def\dolinkedlistparameter #1#2{\ifcsname#1#2\endcsname#1#2\else\expandafter\dolinkedlistparentparameter\csname#1\s!parent\endcsname#2\fi}
+\def\dolinkedlistparentparameter#1#2{\ifx#1\relax\s!empty\else\dolinkedlistparameter#1#2\fi}
+
+\def\definelinkedlist{\dodoubleargument\dodefinelinkedlist}
+\def\setuplinkedlist {\dodoubleargument\dosetuplinkedlist }
+\def\setuplinkedlists{\dosingleargument\dosetuplinkedlists}
+
+\def\dodefinelinkedlist[#1][#2]%
+ {\ctxlua{interactions.definelinkedlist("#1")}%
+ \getparameters[\??lk#1][\s!parent=\??lk,#2]}
+
+\def\dosetuplinkedlist[#1][#2]%
+ {\getparameters[\??lk#1][#2]}
+
+\def\dosetuplinkedlists[#1]%
+ {\getparameters[\??lk][#1]}
+
+\def\setlinkproperties#1#2#3#4#5#6%
+ {\def\currentlink {#1}%
+ \def\noflinks {#2}%
+ \def\firstlink {#3}%
+ \def\previouslink{#4}%
+ \def\nextlink {#5}%
+ \def\lastlink {#6}}
+
+\def\linkedlistelement[#1]#2% currently no view support
+ {\dontleavehmode\hbox\bgroup
+ #2%
+ \iflocation
+ \edef\currentlinkedlist{#1}%
+ \ifcsname\??lk\currentlinkedlist\s!parent\endcsname
+ \hskip\linkedlistparameter\c!distance
+ \ctxlua{interactions.addlinktolist("\currentlinkedlist")}%
+ \expanded{\ctxlatelua{interactions.enhancelinkoflist("\currentlinkedlist",\currentlink)}}%
+ \dogotosomepage {\??lk\currentlinkedlist}\gotobegincharacter \firstlink
+ \ifnum\noflinks>\plustwo
+ \dogotosomepage{\??lk\currentlinkedlist}\gobackwardcharacter\previouslink
+ \dogotosomepage{\??lk\currentlinkedlist}\goforwardcharacter \nextlink
+ \fi
+ \dogotosomepage {\??lk\currentlinkedlist}\gotoendcharacter \lastlink
+ \else
+ \writestatus\m!interactions{no such linked list: \currentlinkedlist}%
+ \fi
+ \fi
+ \egroup}
+
+\setuplinkedlists
+ [\c!distance=.25em,
+ \c!width=\v!fit,
+ \c!location=\v!low,
+ \c!color=\@@iacolor,
+ \c!frame=\v!off,
+ \c!background=,
+ \c!backgroundcolor=]
+
+\def\koppeling {\linkedlistelement}
+\def\stelkoppelingenin {\setuplinkedlists}
+\def\definieerkoppeling{\definelinkedlist}
+
+%D Conditional page breaks:
+
+\def\screen
+ {\dosingleempty\doscreen}
+
+\def\doscreen[#1]%
+ {\iflocation\page[#1]\fi}
+
+%D Page transitions:
+
+\let\askedpagetransitions\empty
+
+\def\setuppagetransitions
+ {\dosingleempty\dosetuppagetransitions}
+
+\def\dosetuppagetransitions[#1]%
+ {\edef\askedpagetransitions{#1}}
+
+\def\setpagetransition
+ {\iflocation \ifx\askedpagetransitions\empty \else
+ \ctxlua{backends.codeinjections.setpagetransition{ n = "\askedpagetransitions", delay = "\@@scdelay" }}%
+ \fi \fi}
+
+\prependtoks \setpagetransition \to \everyshipout
+
+\setuppagetransitions
+ [\v!reset]
+
+%D Comments:
+
+\newbox\commentcollection
+\newbox\commentbox
+\newbox\commentboxone
+\newbox\commentboxtwo
+
+\def\raisedcommentanchors#1#2{#1{\hbox{\raise\strutht#2}}}
+
+\setvalue{\??cc:\c!location:\v!inmargin }{\raisedcommentanchors\inmargin }
+\setvalue{\??cc:\c!location:\v!leftedge }{\raisedcommentanchors\inleftedge }
+\setvalue{\??cc:\c!location:\v!rightedge }{\raisedcommentanchors\inrightedge }
+\setvalue{\??cc:\c!location:\v!leftmargin }{\raisedcommentanchors\inleftmargin }
+\setvalue{\??cc:\c!location:\v!rightmargin}{\raisedcommentanchors\inrightmargin}
+
+\let\flushcommentanchors\relax
+
+\def\doflushcommentanchors
+ {\global\let\flushcommentanchors\relax
+ \ifvoid\commentbox\else\dodoflushcommentanchors\fi} % in everypar so indirect
+
+\def\dodoflushcommentanchors
+ {\executeifdefined{\??cc:\c!location:\@@cclocation}\hbox{\box\commentbox}}
+
+\def\setupcomment
+ {\dodoubleargument\getparameters[\??cc]}
+
+\def\placecomments{\box\commentcollection} % when option=buffer
+
+\def\doinsertcomment#1%
+ {\begingroup
+ \ctxlua{backends.codeinjections.presetsymbollist("\@@ccsymbol")}%
+ % in between predefined symbols are dealt with
+ \ctxlua{backends.codeinjections.registercomment {
+ title = "\@@cctitle",
+ width = \number\dimexpr\@@ccwidth \relax,
+ height = \number\dimexpr\@@ccheight\relax,
+ colormodel = \number\currentcolormodel,
+ colorvalue = \thecolorattribute{\@@cccolor},
+ open = \@@ccopen,
+ symbol = "\@@ccsymbol",
+ buffer = "#1",
+ layer = "\@@cctextlayer"
+ }}%
+ \box\commentboxone
+ \doif\@@ccoption\v!buffer
+ {\setbox\scratchbox\vbox to \@@ccheight{\forgetall\vss\box\commentboxtwo}%
+ \wd\scratchbox\@@ccwidth
+ \global\setbox\commentcollection\vbox
+ {\startoverlay{\box\commentcollection}{\box\scratchbox}\stopoverlay}}%
+ \endgroup}
+
+\setvalue{\e!start\v!comment}{\dotripleempty\dostartcomment}% the dummy triple gobbles trailing spaces
+
+\def\dostartcomment[#1][#2][#3]%
+ {\bgroup
+ \doifassignmentelse{#1}{\getparameters[\??cc][#1]}{\getparameters[\??cc][\c!title=#1,#2]}%
+ \doifelse\@@ccoption\v!max{\let\@@ccopen\s!true}{\let\@@ccopen\s!false}%
+ \setcurrentbuffer{\v!comment\v!buffer}%
+ \dostartbuffer[\v!comment\v!buffer][\v!comment\v!buffer][\e!start\v!comment][\e!stop\v!comment]}
+
+\def\stopcomment
+ {\doif\@@ccstate\v!start
+ {\global\let\flushcommentanchors\doflushcommentanchors
+ \global\setbox\commentbox\frozenhbox
+ {\hbox to \zeropoint{\struttedbox{\tbox{\doinsertcomment{\v!comment\v!buffer}}}\hss}%
+ \hskip\ifvoid\commentbox\@@ccmargin\else\@@ccdistance\fi
+ \box\commentbox}}%
+ \egroup}
+
+\def\comment
+ {\dodoubleempty\docomment}
+
+\def\docomment[#1][#2]#3%
+ {\doif\@@ccstate\v!start
+ {\hbox to \zeropoint
+ {\doifassignmentelse{#1}{\getparameters[\??cc][#1]}{\getparameters[\??cc][\c!title=#1,#2]}%
+ \hskip-\@@ccmargin
+ \ctxlua{buffers.set("\v!comment\v!buffer", \!!bs\detokenize{#3}\!!es)}%
+ \struttedbox{\tbox{\doinsertcomment{\v!comment\v!buffer}}\hss}}}%
+ \ignorespaces}
+
+% test
+%
+% \startcomment
+% hello beautiful\\world
+% \stopcomment
+%
+% test
+%
+% \startcomment[hello]
+% hello << eerste >>
+% beautiful
+% world
+% \stopcomment
+%
+% test
+%
+% \startcomment[hello][color=green,width=10cm,height=3cm]
+% hello \leftguillemot\ \'e\'erste \rightguillemot\
+% beautiful
+% world
+% \stopcomment
+%
+% test
+%
+% \startcomment[hello][color=red,width=4cm,height=3cm]
+% hello \leftguillemot\ \'e\'erste \rightguillemot\ test
+%
+% beautiful
+%
+% world
+% \stopcomment
+%
+% test
+%
+% \startcomment[symbol=Balloon]
+% Do we want this kind of rubish? And, why isn't this and
+% some more features related to text annotations so poorly
+% (actually not) documented? Anyhow, by providing this
+% functionality we demonstrate that \pdfTeX\ can do it. By
+% the way, it's funny that when in Acrobat we scale up the
+% text, the symbols scale down.
+% \stopcomment
+%
+% test
+%
+% \definesymbol [comment-normal][{\externalfigure[cow.pdf]}]
+% \definesymbol [comment-down] [{\externalfigure[cow.pdf]}]
+%
+% \def\CowSymbol#1#2%
+% {\scale
+% [\c!height=#1]
+% {\startMPcode
+% loadfigure "koe.mp" number 1 ;
+% refill currentpicture withcolor #2 ;
+% \stopMPcode}}
+%
+% \definesymbol [comment-normal]
+% [\CowSymbol{4ex}{red}]
+%
+% \definesymbol [comment-down]
+% [\CowSymbol{4ex}{green}]
+%
+% \setupcomment
+% [\c!symbol={comment-normal,comment-down},
+% \c!option=\v!buffer]
+%
+% \startcomment[hello]
+% oeps
+% \stopcomment
+%
+% test
+%
+% \setupcomment
+% [\c!symbol=normal,
+% \c!option=max,width=10cm]
+%
+% \startcomment[hello]
+% oeps
+% \stopcomment
+%
+% test
+
+\setupcomment
+ [\c!state=\v!start,
+ \c!margin=2.5em,
+ \c!distance=1em,
+ \c!width=.3\textwidth,
+ \c!height=.2\textheight,
+ \c!color=\@@iacolor,
+ \c!title=,
+ \c!space=\v!no,
+ \c!symbol=\v!normal,
+ \c!location=\v!inmargin,
+ \c!option=,
+ \c!textlayer=]
+
+%D Attachments:
+
+% \setupinteraction[state=start]
+%
+% \useattachment[test.tex]
+% \useattachment[whatever][test.tex]
+% \useattachment[whatever][newname][test.tex]
+% \useattachment[whatever][title][newname][test.tex]
+%
+% % \setupattachments[\c!symbol={symbol-normal,symbol-down}]
+%
+% \starttext \attachment[whatever] \stoptext
+
+\def\useattachment
+ {\doquadrupleempty\douseattachment}
+
+\def\douseattachment[#1][#2][#3][#4]% tag title newname filename
+ {\iffourthargument
+ \ctxlua{interactions.registerattachment{ label="#1", title="#2", newname="#3", filename="#4" }}%
+ \else\ifthirdargument
+ \ctxlua{interactions.registerattachment{ label="#1", title="#2", newname="#2", filename="#3" }}%
+ \else\ifsecondargument
+ \ctxlua{interactions.registerattachment{ label="#1", title="#2", newname="#2", filename="#2" }}%
+ \else
+ \ctxlua{interactions.registerattachment{ label="#1", title="#1", newname="#1", filename="#1" }}%
+ \fi\fi\fi}
+
+\def\attachment
+ {\dodoubleempty\doattachment}
+
+\def\doattachment[#1][#2]% [tag] [settings]
+ {\iflocation
+ \doif\@@atstate\v!start
+ {\bgroup
+ \setupattachments[#2]%
+ \ctxlua{backends.codeinjections.presetsymbollist("\@@atsymbol")}%
+ \getvalue{\??at:\@@atalternative}{\ctxlua{backends.codeinjections.attachfile{
+ label = "#1",
+ width = \number\dimexpr\@@atwidth \relax,
+ height = \number\dimexpr\@@atheight\relax,
+ depth = \number\dimexpr\@@atdepth \relax,
+ color = "\@@atcolor",
+ symbol = "\@@atsymbol",
+ layer = "\@@attextlayer",
+ }}}%
+ \egroup}%
+ \fi}
+
+\setvalue{\??at:\v!high}#1{\struttedbox{\tbox{#1}}}
+
+\def\setupattachments
+ {\dodoubleempty\getparameters[\??at]}
+
+\setupattachments
+ [\c!state=\v!start,
+ \c!color=\@@iacolor,
+ \c!textlayer=,
+ \c!width=1em,
+ \c!height=\strutheight,
+ \c!depth=\strutdepth,
+ \c!alternative=\v!high,
+ \c!symbol=]
+
+%D Defining sound tracks:
+%D
+%D \starttyping
+%D \useexternalsoundtrack[label][file]
+%D \stoptyping
+%D
+%D associated actions: StartSound StopSound PauseSound ResumeSound
+%D
+%D Todo: like external figures, also search on path,
+%D although, they need to be present ar viewing time, so ...
+
+\def\useexternalsoundtrack
+ {\dodoubleargument\douseexternalsoundtrack}
+
+\def\douseexternalsoundtrack[#1][#2]%
+ {\ctxlua{interactions.registersound{ label="#1", filename="#2" }}}
+
+\def\checksoundtrack#1% yet untested in mkiv (also move management to lua)
+ {\iflocation
+ \ctxlua{codeinjections.insertsound{
+ label = "#1",
+ repeat = "\@@sdoption", % not entirely ok but works
+ }}%
+ \fi}
+
+\def\setupexternalsoundtracks
+ {\dodoubleargument\getparameters[\??sd]}
+
+\setupexternalsoundtracks
+ [\c!option=]
+
+%D Multi Media:
+
+% todo: multiple instances, dus indirect
+
+\let\currentrendering\empty
+
+\definereference[StartCurrentRendering] [\v!StartRendering {\currentrendering}]
+\definereference[StopCurrentRendering] [\v!StopRendering {\currentrendering}]
+\definereference[PauseCurrentRendering] [\v!PauseRendering {\currentrendering}]
+\definereference[ResumeCurrentRendering][\v!ResumeRendering{\currentrendering}]
+
+\newcounter\nofexternalrenderings
+
+\def\useexternalrendering{\doquadrupleempty\douseexternalrendering}
+\def\setinternalrendering{\dodoubleempty \dosetinternalrendering}
+
+\def\douseexternalrendering[#1][#2][#3][#4]% tag mime file options
+ {\ctxlua{interactions.registerrendering {
+ kind = "external",
+ label = "#1",
+ mime = "#2",
+ filename = "#3",
+ options = "#4",
+ }}}
+
+\def\dosetinternalrendering[#1][#2]% tag options {content}
+ {\bgroup
+ \dowithnextbox
+ {\ctxlua{interactions.registerrendering {
+ kind = "internal",
+ label = "#1",
+ mime = "IRO",
+ filename = "#1",
+ options = "#2",
+ }}%
+ \let\objectoffset\zeropoint
+ \setobject{IRO}{#1}\hbox{\box\nextbox}%
+ \egroup}%
+ \hbox}
+
+\def\renderingtype #1{\ctxlua{interactions.renderingvar("#1","kind")}}
+\def\renderingoptions#1{\ctxlua{interactions.renderingvar("#1","options")}}
+
+\def\renderingwidth {8cm}
+\def\renderingheight {6cm}
+
+\def\definerenderingwindow
+ {\dodoubleempty\dodefinerenderingwindow}
+
+\def\dodefinerenderingwindow[#1][#2]%
+ {\presetlocalframed[\??rw#1]%
+ \getparameters
+ [\??rw#1]%
+ [\c!openpageaction=,\c!closepageaction=,%
+ \c!width=\renderingwidth,\c!height=\renderingheight,%
+ #2]}
+
+\def\setuprenderingwindow
+ {\dodoubleargument\dosetuprenderingwindow}
+
+\def\dosetuprenderingwindow[#1]%
+ {\getparameters[\??rw#1]}
+
+\def\placerenderingwindow
+ {\dodoubleempty\doplacerenderingwindow}
+
+\def\doplacerenderingwindow[#1][#2]%
+ {\bgroup
+ \edef\currentrendering{\ifsecondargument#2\else#1\fi}%
+ \doifelse{\renderingtype\currentrendering}{internal} % an object
+ {\getobjectdimensions{IRO}\currentrendering
+ \edef\renderingheight{\the\dimexpr\objectheight+\objectdepth\relax}%
+ \edef\renderingwidth{\objectwidth}%
+ \dogetobjectreferencepage{IRO}\currentrendering\renderingpage}%
+ {\def\renderingheight{\vsize}%
+ \def\renderingwidth{\hsize}%
+ \def\renderingpage{\realpageno}}%
+ % create fall back if needed
+ \ifcsname\??rw#1\c!width\endcsname
+ \def\currentrenderingwindow{#1}%
+ \else
+ \let\currentrenderingwindow\s!default
+ \definerenderingwindow[\currentrenderingwindow]%
+ \fi
+% todo
+% \handlereferenceactions{\getvalue{\??rw\currentrenderingwindow\c!openpageaction }}\dosetuprenderingopenpageaction
+% \handlereferenceactions{\getvalue{\??rw\currentrenderingwindow\c!closepageaction}}\dosetuprenderingclosepageaction
+ \localframed
+ [\??rw\currentrenderingwindow][\c!offset=\v!overlay]%
+ {\ctxlua{backends.codeinjections.insertrenderingwindow {
+ label = "\currentrendering",
+ width = \number\dimexpr\renderingwidth\relax,
+ height = \number\dimexpr\renderingheight\relax,
+ options = "\renderingoptions\currentrendering",
+ page = \number\renderingpage,
+ }}}%
+ \egroup}
+
+\setupinteractionscreen
+ [\c!width=\printpaperwidth,
+ \c!height=\printpaperheight,
+ \c!horoffset=\!!zeropoint,
+ \c!veroffset=\!!zeropoint,
+ \c!backspace=\backspace,
+ \c!topspace=\topspace,
+ \c!option=\v!auto,
+ \c!delay=\v!none]
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/scrn-men.mkiv b/Master/texmf-dist/tex/context/base/scrn-men.mkiv
new file mode 100644
index 00000000000..ae95a5c044f
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/scrn-men.mkiv
@@ -0,0 +1,616 @@
+%D \module
+%D [ file=scrn-bar, % was part of scrn-int
+%D version=1995.01.01,
+%D title=\CONTEXT\ Core Macros,
+%D subtitle=Menus,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Screen Macros / Menus}
+
+\unprotect
+
+% \startinteractionmenu[rechts]
+% \but [eerste] eerste \\
+% \txt hello world \\
+% \but [tweede] tweede \\
+% \nop \\
+% \but [tweede] tweede \\
+% \rul whow \\
+% \but [tweede] tweede \\
+% \raw hello world \\
+% \but [tweede] tweede \\
+% \com \vfill \\
+% \but [derde] derde \\
+% \stopinteractionmenu
+
+% \setupinteraction[menu=on,state=start]
+%
+% \defineinteractionmenuclass[test] [vertical]
+% \defineinteractionmenuclass[another][horizontal]
+%
+% \defineinteractionmenu[test] [left][state=start,width=4cm]
+% \defineinteractionmenu[another][top] [state=start,height=1cm]
+%
+% \startinteractionmenu[test]
+% \but [firstpage] test-a \\
+% \but [nextpage] test-b \\
+% \stopinteractionmenu
+%
+% \startinteractionmenu[another]
+% \but [firstpage] test-a \\
+% \but [nextpage] test-b \\
+% \stopinteractionmenu
+%
+% \setupheadertexts[{\interactionmenu[another]}]
+%
+% \starttext
+%
+% test \interactionmenu[test] \page
+% test \interactionmenu[test] \page
+%
+% \stoptext
+
+% ja : kader/achtergrond met tekst
+% leeg : kader/achtergrond maar geen tekst
+% nee : alleen ruimte reserveren
+% geen : helemaal weglaten
+%
+% \setupinteractionmenu[right][samepage=yes, unknownreference=yes]
+% \setupinteractionmenu[right][samepage=empty,unknownreference=empty]
+% \setupinteractionmenu[right][samepage=no, unknownreference=no]
+% \setupinteractionmenu[right][samepage=none, unknownreference=none]
+%
+% \startinteractionmenu[right]
+% \but [firstpage] first \\
+% \but [lastpage] last \\
+% \but [somepage] crap \\
+% \stopinteractionmenu
+
+%D Define menus:
+
+\def\setmenuparameter#1#2#3{\@EA\def\csname\??am#1#2\endcsname{#3}}
+\def\letmenuparameter #1#2{\@EA\let\csname\??am#1#2\endcsname}
+
+\def\menuparameter #1{\csname\domenuparameter{\??am\currentmenu}#1\endcsname}
+\def\namedmenuparameter#1#2{\csname\domenuparameter{\??am #1}#2\endcsname}
+\def\menuparameterhash #1{\domenuparameterhash {\??am\currentmenu}#1}
+
+\def\domenuparameter #1#2{\ifcsname#1#2\endcsname#1#2\else\expandafter\domenuparentparameter \csname#1\s!parent\endcsname#2\fi}
+\def\domenuparameterhash#1#2{\ifcsname#1#2\endcsname #1\else\expandafter\domenuparentparameterhash\csname#1\s!parent\endcsname#2\fi}
+
+\def\domenuparentparameter #1#2{\ifx#1\relax\s!empty\else\domenuparameter #1#2\fi}
+\def\domenuparentparameterhash#1#2{\ifx#1\relax \else\domenuparameterhash#1#2\fi}
+
+\def\defineinteractionmenu
+ {\dotripleempty\dodefineinteractionmenu}
+
+\def\dodefineinteractionmenu[#1][#2][#3]% [name] [location] [settings]
+ {\ifsecondargument
+ \ifcsname\??am:\c!list:#2\endcsname \else
+ \letvalue{\??am:\c!list:#2}\empty
+ \fi
+ \normalexpanded{\noexpand\addtocommalist{#1}\@EA\noexpand\csname\??am:\c!list:#2\endcsname}%
+ \setvalue{\@@dodolistelement#1}{\def\dosomelistelement{\dodomenulistelement{#1}}}%
+ \ifthirdargument
+ \presetlocalframed[\??am#1]%
+ \doifassignmentelse{#3}
+ {\doifelse{#1}{#2}
+ {\getparameters[\??am#1][\c!location=#2,\c!menu=,\s!parent=\??am,#3]}
+ {\getparameters[\??am#1][\c!location=#2,\c!menu=,\s!parent=\??am#2,#3]}}%
+ {\doifelsenothing{#3}
+ {\getparameters[\??am#1][\c!location=#2,\c!menu=,\s!parent=\??am]}
+ {\getparameters[\??am#1][\c!location=#2,\c!menu=,\s!parent=\??am#3]}}%
+ \else
+ \getparameters[\??am#1][\c!location=#2,\c!menu=,\s!parent=\??am#2]%
+ \fi
+ \else
+ \getparameters[\??am#1][\s!parent=\??am]% simple cloning
+ \fi}
+
+\def\currentmenulist{\ifcsname\??am:\c!list:\currentmenu\endcsname\csname\??am:\c!list:\currentmenu\endcsname\fi}
+
+%D Setup menus:
+
+\def\setupinteractionmenu
+ {\dodoubleargument\dosetupinteractionmenu}
+
+\def\dosetupinteractionmenu[#1][#2]%
+ {\def\docommand##1{\getparameters[\??am##1][#2]}%
+ \processcommalist[#1]\docommand}
+
+\def\setupinteractionmenus[#1]%
+ {\getparameters[\??am][#1]}
+
+%D Fill menus:
+
+\normalexpanded{\long\def\expandafter\noexpand\csname\e!start\v!interactionmenu\endcsname[#1]#2\expandafter\noexpand\csname\e!stop\v!interactionmenu\endcsname}%
+ {\long\setmenuparameter{#1}\c!menu{\dointeractionmenu{#1}{#2}}}
+
+\def\resetinteractionmenu[#1]%
+ {\letmenuparameter{#1}\c!menu\empty}
+
+%D Check if menus permitted:
+
+\newif\iflocationmenupermitted
+
+\def\testinteractionmenu
+ {\iflocation
+ \doifelse\@@iamenu\v!on
+ {\doifelse{\menuparameter\c!state}\v!start
+ {\global\locationmenupermittedtrue}
+ {\global\locationmenupermittedfalse}}
+ {\global\locationmenupermittedfalse}%
+ \else
+ \global\locationmenupermittedfalse
+ \fi}
+
+%D Placement of menus:
+
+\def\interactionmenus[#1]% location
+ {\iflocation
+ \csname\??am:\c!menu:#1\endcsname
+ \fi}
+
+% \def\defineinteractionmenuclass
+% {\dodoubleargument\dodefineinteractionmenuclass}
+%
+% \def\dodefineinteractionmenuclass[#1][#2]% tag hori|veri
+% {\doifelse{#2}\v!vertical
+% {\setvalue{\??am:\c!menu:#1}{\verticalinteractionmenu {#1}{\getvalue{\??am#1\c!width }}}}
+% {\setvalue{\??am:\c!menu:#1}{\horizontalinteractionmenu{#1}{\getvalue{\??am#1\c!height}}}}}
+%
+% \defineinteractionmenuclass[\v!left ][\v!horizontal]
+% \defineinteractionmenuclass[\v!right ][\v!horizontal]
+% \defineinteractionmenuclass[\v!top ][\v!vertical]
+% \defineinteractionmenuclass[\v!bottom][\v!vertical]
+
+\setvalue{\??am:\c!menu :\v!left }{\horizontalinteractionmenu\v!left \leftedgewidth }
+\setvalue{\??am:\c!menu :\v!right }{\horizontalinteractionmenu\v!right \rightedgewidth}
+\setvalue{\??am:\c!menu :\v!top }{\verticalinteractionmenu \v!top \topheight }
+\setvalue{\??am:\c!menu :\v!bottom}{\verticalinteractionmenu \v!bottom\bottomheight }
+
+\setvalue{\??am:\c!command:\v!right }{\@@amvbox{}\rightedgewidth}
+\setvalue{\??am:\c!command:\v!left }{\@@amvbox{}\leftedgewidth }
+\setvalue{\??am:\c!command:\v!top }{\@@amhbox{}\topheight }
+\setvalue{\??am:\c!command:\v!bottom}{\@@amhbox{}\bottomheight }
+
+\def\dointeractionmenu#1#2%
+ {\edef\currentmenu{#1}%
+ \getvalue{\??am:\c!command:\menuparameter\c!location}\currentmenu{#2}}
+
+\unexpanded\def\interactionmenu[#1]%
+ {\def\currentmenu{#1}%
+ \menuparameter\c!menu}
+
+\newdimen \intermenudistance
+\newdimen \finalmenuwidth
+\newdimen \finalmenuheight
+
+\newcounter\currentamposition % better \currentmenuposition
+\newtoks \everysetmenucommands
+
+\def\horizontalinteractionmenu#1#2% location vhsize before/after
+ {\ifdim#2>\zeropoint
+ \edef\currentmenu{#1}%
+ \finalmenuwidth#2\relax
+ \horizontalinteractionmenuindeed
+ \fi}
+
+\def\verticalinteractionmenu#1#2%
+ {\ifdim#2>\zeropoint
+ \edef\currentmenu{#1}%
+ \finalmenuheight#2\relax
+ \verticalinteractionmenuindeed
+ \fi}
+
+\def\horizontalinteractionmenuindeed
+ {\global\intermenudistance\zeropoint
+ \setbox\scratchbox\hbox
+ {\processcommacommand[\currentmenulist]\somehorizontalinteractionmenu}%
+ \wd\scratchbox\finalmenuwidth\relax
+ \box\scratchbox}
+
+\def\verticalinteractionmenuindeed
+ {\global\intermenudistance\zeropoint
+ \setbox\scratchbox\vbox
+ {\processcommacommand[\currentmenulist]\someverticalinteractionmenu}%
+ \ht\scratchbox\finalmenuheight
+ \dp\scratchbox\zeropoint
+ \box\scratchbox}
+
+\def\somehorizontalinteractionmenu#1%
+ {\begingroup
+ \edef\currentmenu{#1}%
+ \doifnot{\menuparameter\c!state}\v!none
+ {\hskip\intermenudistance
+ \setbox\scratchbox\hbox to \finalmenuwidth
+ {\menuparameter\c!left
+ \interactionmenu[#1]%
+ \menuparameter\c!right}%
+ \doifelse{\menuparameter\c!distance}\v!overlay
+ {\global\intermenudistance\zeropoint
+ \wd\scratchbox\zeropoint}%
+ {\global\intermenudistance\menuparameter\c!distance}%
+ \box\scratchbox}%
+ \endgroup}
+
+\def\someverticalinteractionmenu#1%
+ {\begingroup
+ \edef\currentmenu{#1}%
+ \doifnot{\menuparameter\c!state}\v!none
+ {\vskip\intermenudistance
+ \setbox\scratchbox\vbox to \finalmenuheight
+ {\menuparameter\c!before
+ \interactionmenu[#1]%
+ \menuparameter\c!after}%
+ \doifelse{\menuparameter\c!distance}\v!overlay
+ {\global\intermenudistance\zeropoint
+ \offinterlineskip
+ \dp\scratchbox\zeropoint
+ \ht\scratchbox\zeropoint}%
+ {\global\intermenudistance\menuparameter\c!distance}%
+ \box\scratchbox}%
+ \endgroup}
+
+% don't change skipping, this one works! \showcomposition removed
+
+\def\@@amhbox#1#2#3#4% #1 obsolete, #3 is redundant
+ {\edef\currentmenu{#3}%
+ \testinteractionmenu
+ \iflocationmenupermitted
+ \begingroup
+ \forgetall
+ \scratchdimen\dimexpr\makeupwidth+\pagebackgroundhoffset*2-\menuparameter\c!leftoffset-\menuparameter\c!rightoffset\relax
+ \setbox\scratchbox\hbox to \scratchdimen
+ {\executeamboxcommands{#3}{#4}\c!left\c!middle\c!right}%
+ \setbox\scratchbox\hbox{\dowholemenuposition{#3}{\box\scratchbox}}% cannot happen in previous due to align
+ \wd\scratchbox\makeupwidth % geen \ht=#2 setting (yet)
+ \hskip\dimexpr-\pagebackgroundhoffset+\menuparameter\c!leftoffset\relax
+ \box\scratchbox
+ \endgroup
+ \fi}
+
+\def\@@amvbox#1#2#3#4% #1 obsolete, #3 is redundant
+ {\edef\currentmenu{#3}%
+ \testinteractionmenu
+ \iflocationmenupermitted
+ \bgroup
+ \forgetall
+ \scratchdimen\dimexpr\textheight+\pagebackgroundvoffset*2+\pagebackgrounddepth-\menuparameter\c!topoffset-\menuparameter\c!bottomoffset\relax
+ \setbox\scratchbox\vbox to \scratchdimen
+ {\restorestandardblank % todo: vspacing
+ \hsize#2\relax
+ \executeamboxcommands{#3}{#4}\c!before\c!inbetween\c!after}%
+ % strange: when we mnake this a hbox the content disappears
+ \setbox\scratchbox\vbox{\dowholemenuposition{#3}{\box\scratchbox}}% cannot happen in previous due to align
+ \setbox\scratchbox\vbox
+ {\ht\scratchbox\zeropoint
+ \vskip\dimexpr-\pagebackgroundvoffset+\menuparameter\c!topoffset\relax
+ \box\scratchbox
+ \vskip\pagebackgroundvoffset}% overbodig
+ \ht\scratchbox\textheight
+ \wd\scratchbox#2\relax
+ \box\scratchbox
+ \egroup
+ \fi}
+
+\def\executeamboxcommands#1#2#3#4#5%
+ {\begingroup
+ \edef\currentmenu{#1}%
+ \menuparameter#3\relax
+ \setamboxcommands{#1}{#4}%
+ \ignorespaces#2\unskip
+ \menuparameter#5\relax
+ \endgroup}
+
+\def\setamboxcommands#1#2%
+ {\edef\currentmenu{#1}%
+ \edef\betweenmenu{#2}%
+ \doglobal\newcounter\currentamposition
+ \the\everysetmenucommands}
+
+\def\addsomemenuitem#1%
+ {\dontleavehmode
+ \begingroup
+ \ignorespaces#1\unskip\relax
+ \ifconditional\skippedmenuitem \else
+ \menuparameter\betweenmenu
+ \fi
+ \endgroup
+ \ignorespaces}
+
+%D This can save complicated menu macros when one want to
+%D keep control over parts of a menu (i.e.\ turn them on and
+%D off). We could have achieved something similar with modes.
+
+\def\local@@ambox#1#2#3#4% don't change skipping, this one works!
+ {\begingroup
+ \edef\currentmenu{#3}%
+ \iflocationmenupermitted
+ \executeamboxcommands{#3}{#4}\c!before\c!inbetween\c!after
+ \fi
+ \endgroup}
+
+\def\includemenu[#1]%
+ {\begingroup
+ \edef\currentmenu{#1}%
+ \doif{\menuparameter\c!state}\v!local
+ {\letmenuparameter\currentmenu\c!state\v!start
+ \let\@@amvbox\local@@ambox
+ \let\@@amhbox\local@@ambox
+ \menuparameter\c!menu}%
+ \endgroup}
+
+%D The menu commands:
+
+% ja : kader/achtergrond met tekst
+% leeg : kader/achtergrond maar geen tekst
+% nee : alleen ruimte reserveren
+% geen : helemaal weglaten
+
+\newconditional\skippedmenuitem
+\newconditional\usemenuclick
+
+\def\dosetlocationboxcontent#1[#2]#3[#4]% to be checked
+ {\global\setfalse\skippedmenuitem
+ \setbox\locationbox\hbox{\localframed[#1][#2]{#3}}%
+ \ifconditional\usemenuclick
+ \gotobox{\box\locationbox}[#4]%
+ \else
+ \box\locationbox
+ \fi}
+
+\def\dosetlocationboxempty#1[%
+ {\dosetlocationboxcontent{#1}[\c!empty=\v!yes,}
+
+\def\dosetlocationboxno#1[%
+ {\dosetlocationboxcontent{#1}[\c!empty=\v!yes,\c!frame=,\c!background=,}
+
+\def\dosetlocationboxnone#1[#2]#3[#4]%
+ {\global\settrue\skippedmenuitem}
+
+% make two sub macros
+
+% \dosetfontattribute {#1}{#2}%
+% \dosetcolorattribute{#1}{#3}%
+
+\def\setlocationboxyes#1[#2]#3[#4]% needs to be split as the attr is not applicable to the box
+ {\begingroup
+ \settrue\usemenuclick
+ \global\setfalse\skippedmenuitem
+ \attribute\referenceattribute\attributeunsetvalue
+ \doifreferencefoundelse{#4}
+ {\analyzecurrentreference % we need to act on the state
+ \ifcase\referencepagestate
+ % something else than a page reference
+ \ctxlua{jobreferences.injectcurrentset(nil,nil)}%
+ \hbox attr \referenceattribute \lastreferenceattribute {\localframed[#1][#2]{#3}}%
+ \else\ifcase\csname\??am:\c!location:\menuparameter\c!samepage\endcsname\relax
+ % yes: same page or not ... todo
+ \ctxlua{jobreferences.injectcurrentset(nil,nil)}%
+ \ifnum\referencepagestate=\plusone % same page
+ \hbox attr \referenceattribute \lastreferenceattribute {\localframed[#1][#2,\c!color=\menuparameter\c!contrastcolor]{#3}}%
+ \else % elsewhere
+ \hbox attr \referenceattribute \lastreferenceattribute {\localframed[#1][#2]{#3}}%
+ \fi
+ \or
+ % empty but frame: no click
+ \localframed[#1][\c!empty=\v!yes,#2]{#3}%
+ \or
+ % empty no frame: no
+ \localframed[#1][\c!empty=\v!yes,\c!frame=,\c!background=,#2]{#3}%
+ \or
+ % nothing at all
+ \global\settrue\skippedmenuitem
+ \fi\fi}%
+ {\unknownreference{#4}%
+ \ifcase\csname\??am:\c!location:\menuparameter\c!unknownreference\endcsname\relax
+ \localframed[#1][#2]{#3}%
+ \or
+ \localframed[#1][\c!empty=\v!yes,#2]{#3}%
+ \or
+ \localframed[#1][\c!empty=\v!yes,\c!frame=,\c!background=,#2]{#1}%
+ \or
+ \global\skippedmenuitemtrue
+ \fi}%
+ \endgroup}
+
+\def\setlocationboxraw#1[#2]#3[#4]%
+ {\localframed[#1][#2]{#3}}
+
+\def\setlocationnop#1[#2]#3%
+ {\localframed[#1][#2]{#3}}
+
+\def\menu@raw[#1]#2\\%
+ {\addsomemenuitem{\gotobox{\ignorespaces#2\unskip}[#1]}}
+
+\def\menu@but[#1]#2\\%
+ {\addsomemenuitem{\domenuitemposition\currentmenu{#1}{\setlocationboxyes{\??am\currentmenu}[]{\ignorespaces#2\unskip}[#1]}}}
+
+\def\menu@got[#1]#2\\%
+ {\addsomemenuitem{\setlocationboxyes{\??am\currentmenu}[\c!frame=\v!off,\c!background=]{\ignorespaces#2\unskip}[#1]}}
+
+\def\menu@nop#1\\%
+ {\addsomemenuitem{\setlocationboxraw{\??am\currentmenu}[\c!frame=\v!off,\c!background=,\c!empty=\v!yes]{\ignorespaces#1\unskip}[]}}
+
+\def\menu@txt#1\\%
+ {\addsomemenuitem{\localframed[\??am\currentmenu][\c!frame=\v!off,\c!background=]{\ignorespaces#1\unskip}}}
+
+\def\menu@rul#1\\%
+ {\addsomemenuitem{\localframed[\??am\currentmenu][]{\ignorespaces#1\unskip}}}
+
+\def\menu@com#1\\%
+ {\ignorespaces#1\unskip\ignorespaces}
+
+\appendtoks
+ \let\raw\menu@raw \let\but\menu@but \let\got\menu@got \let\nop\menu@nop
+ \let\txt\menu@txt \let\rul\menu@rul \let\com\menu@com
+\to \everysetmenucommands
+
+\ifdefined\domenuitemposition \else \let\domenuitemposition \gobbletwoarguments \fi
+\ifdefined\dowholemenuposition \else \let\dowholemenuposition\gobbleoneargument \fi
+
+%D We also need an explicit position control some day. I'll
+%D do that when I need it. [The stacking order.]
+
+% [name] [location]
+% [name] [location] [pars]
+
+\expandafter\chardef\csname\??am:\c!location:\v!yes \endcsname\zerocount
+\expandafter\chardef\csname\??am:\c!location:\v!empty \endcsname\plusone
+\expandafter\chardef\csname\??am:\c!location:\v!no \endcsname\plustwo
+\expandafter\chardef\csname\??am:\c!location:\v!none \endcsname\plusthree
+
+\expandafter\chardef\csname\??am:\c!location:\v!normal \endcsname\plusone % default
+\expandafter\chardef\csname\??am:\c!location:\s!default\endcsname\plusone % default
+\expandafter\chardef\csname\??am:\c!location:\s!empty \endcsname\plusone % default
+
+\def\dodomenulistelement#1#2#3#4#5#6#7%
+ {\addsomemenuitem{\domenuitemposition\currentmenu{internal(#3)}%
+ {\setlocationboxyes{\??am\currentmenu}[]{\limitatetext{#5}{\namedlistparameter{#2}\c!maxwidth}{\unknown}}[internal(#3)]}}}
+
+\unexpanded\def\menubutton
+ {\dodoubleempty\domenubutton}
+
+\def\domenubutton[#1]%
+ {\iffirstargument
+ \ifsecondargument
+ \@EAEAEA\domenubuttonB
+ \else
+ \doifassignmentelse{#1}
+ {\@EAEAEA\domenubuttonC}
+ {\@EAEAEA\domenubuttonD}%
+ \fi
+ \else
+ \@EA\domenubuttonA
+ \fi[#1]}
+
+\def\domenubuttonA[#1][#2]#3[#4]{\setlocationboxyes\??bt[]{#3}[#4]} % normal button, no parameters
+\def\domenubuttonB[#1][#2]#3[#4]{\setlocationboxyes{\??am#1}[#2]{#3}[#4]} % menu button, with parameters
+\def\domenubuttonC[#1][#2]#3[#4]{\setlocationboxyes\??bt[#1]{#3}[#4]} % normal button, with parameters
+\def\domenubuttonD[#1][#2]#3[#4]{\setlocationboxyes{\??am#1}[]{#3}[#4]} % menu button, no parameters
+
+\def\menubox
+ {\dodoubleempty\domenubox}
+
+\def\domenubox[#1][#2]#3%
+ {\bgroup
+ \let\setlocationboxyes\setlocationboxraw
+ \domenubutton[#1][#2]#3[]%
+ \egroup}
+
+% jammer, tussen/midden had erin gemoeten; \c!commando toevoegen
+
+\def\registermenucommand#1%
+ {{\textonly\noindent#1\space}} % no math switching
+
+\def\doregistermenubuttons[#1][#2]% [menu id] [register]
+ {\bgroup
+ \ifsecondargument
+ \setupinteractionmenu[#1][\c!unknownreference=\v!yes,\c!samepage=\v!yes]%
+ \def\docommand##1{\registermenucommand{\menubutton[#1]{##1}[#2:##1]}}%
+ \else
+ \def\docommand##1{\registermenucommand{\button[\c!unknownreference=\v!yes,\c!samepage=\v!yes]{##1}[#1:##1]}}%
+ \fi
+ \handletokens abcdefghijklmnopqrstuvwxyz\with\docommand % moet anders
+ \egroup}
+
+\def\registermenubuttons
+ {\dodoubleempty\doregistermenubuttons}
+
+\defineinteractionmenu [\v!vertical] % we happen to know that this works out ok (just a setup set)
+\defineinteractionmenu [\v!horizontal] % we happen to know that this works out ok (just a setup set)
+
+\defineinteractionmenu [\v!right ] [\v!right ] [\v!vertical ] % we share a setup set
+\defineinteractionmenu [\v!left ] [\v!left ] [\v!vertical ] % we share a setup set
+\defineinteractionmenu [\v!top ] [\v!top ] [\v!horizontal] % we share a setup set
+\defineinteractionmenu [\v!bottom] [\v!bottom] [\v!horizontal] % we share a setup set
+
+\setupinteractionmenus
+ [\c!offset=.25em,
+ \c!position=\v!no,
+ \c!frame=\v!on,
+ \c!background=,
+ \c!backgroundcolor=,
+ \c!foregroundstyle=\menuparameter\c!style,
+ \c!foregroundcolor=\menuparameter\c!color,
+ \c!style=\@@iastyle,
+ \c!color=\@@iacolor,
+ \c!contrastcolor=\@@iacontrastcolor,
+ \c!state=\v!start,
+ \c!samepage=\v!yes,
+ \c!unknownreference=\v!empty,
+ \c!topoffset=\zeropoint,
+ \c!bottomoffset=\zeropoint,
+ \c!leftoffset=\zeropoint,
+ \c!rightoffset=\zeropoint]
+
+\setupinteractionmenu
+ [\v!vertical] % not really a menu
+ [\c!before=,
+ \c!after=\vfil,
+ \c!inbetween=\blank,
+ \c!distance=\bodyfontsize, % 12pt
+ \c!left=\hss,
+ \c!right=\hss,
+ \c!height=\v!broad]
+
+\setupinteractionmenu
+ [\v!horizontal] % not really a menu
+ [\c!before=\vss,
+ \c!after=\vss,
+ \c!middle=\hfil,
+ \c!distance=\bodyfontsize, % 12pt
+ \c!width=\v!fit,
+ \c!height=\v!broad]
+
+\setupinteractionmenu[\v!left ][\c!width=\leftedgewidth ]
+\setupinteractionmenu[\v!right ][\c!width=\rightedgewidth]
+% \setupinteractionmenu[\v!top ] [\c!height=\topheight ]
+% \setupinteractionmenu[\v!bottom] [\c!height=\bottomheight ]
+
+\def\placeleftedgetextblock % Is \hss/\hsize really needed here? (check outer level and settings)
+ {\hbox to \leftedgewidth{\hsize\leftedgewidth\hss\interactionmenus[\v!left]}}
+
+\def\placerightedgetextblock % Is \hss/\hsize really needed here? (check outer level and settings)
+ {\hbox to \rightedgewidth{\hsize\rightedgewidth\interactionmenus[\v!right]\hss}}
+
+\def\placetoptextblock
+ {\vbox to \topheight
+ {\vsize\topheight
+ \csname\??tk\v!top\c!before\endcsname
+ \interactionmenus[\v!top]%
+ \csname\??tk\v!top\c!after\endcsname
+ \kern\zeropoint}}
+
+\def\placebottomtextblock
+ {\vbox to \bottomheight
+ {\vsize\bottomheight
+ \csname\??tk\v!bottom\c!before\endcsname
+ \interactionmenus[\v!bottom]%
+ \csname\??tk\v!bottom\c!after\endcsname
+ \kern\zeropoint}}
+
+\ifdefined\leftedgetextcontent
+
+ \appendtoks \iflocation\placeleftedgetextblock \hskip-\leftedgewidth \fi\to \leftedgetextcontent
+ \appendtoks \iflocation\placerightedgetextblock \hskip-\rightedgewidth \fi\to \rightedgetextcontent
+ \appendtoks \iflocation\placetoptextblock \vskip-\topheight \fi\to \toptextcontent
+ \appendtoks \iflocation\placebottomtextblock \vskip-\bottomheight \fi\to \bottomtextcontent
+
+\fi
+
+%D Enable and disable menus \unknown\ obsolete:
+
+\def\gobbletwoparameters[#1][#2]{}
+
+\def\disableinteractionmenu{\dodoubleempty\gobbletwoparameters}
+\def\enableinteractionmenu {\dodoubleempty\gobbletwoparameters}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-nav.tex b/Master/texmf-dist/tex/context/base/scrn-nav.mkii
index 045a05123e0..591d4134c36 100644
--- a/Master/texmf-dist/tex/context/base/core-nav.tex
+++ b/Master/texmf-dist/tex/context/base/scrn-nav.mkii
@@ -1,5 +1,5 @@
%D \module
-%D [ file=core-nav,
+%D [ file=scrn-nav,
%D version=1998.01.15,
%D title=\CONTEXT\ Core Macros,
%D subtitle=Navigation,
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Core Macros / Navigation}
+\writestatus{loading}{ConTeXt Screen Macros / Navigation}
\unprotect
diff --git a/Master/texmf-dist/tex/context/base/scrn-nav.mkiv b/Master/texmf-dist/tex/context/base/scrn-nav.mkiv
new file mode 100644
index 00000000000..6b21a9e950f
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/scrn-nav.mkiv
@@ -0,0 +1,232 @@
+%D \module
+%D [ file=scrn-nav,
+%D version=1998.01.15,
+%D title=\CONTEXT\ Screen Macros,
+%D subtitle=Navigation,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Screen Macros / Navigation}
+
+\unprotect
+
+%D Support for interactive document is very present in
+%D \CONTEXT\ and interwoven in many modules. This means that in
+%D this module, where we deal with some common navigational
+%D features, there will be quite some forward references.
+%D
+%D The current support in \MKIV\ is mostly the same as in
+%D \MKII\ and the old files have some more detailed
+%D (sometimes historic) information.
+
+%D There is no interaction at all unless enabled by saying:
+%D
+%D \starttyping
+%D \setupinteraction[state=start]
+%D \stoptyping
+%D
+%D The other settings are:
+%D
+%D \showsetup{setupinteraction}
+
+% use with care, no checking done
+
+\def\setinteractionparameter#1#2%
+ {\expandafter\def\csname\??ia#1\endcsname{#2}}
+
+\def\resetinteractionparameter#1%
+ {\expandafter\let\csname\??ia#1\endcsname\empty}
+
+\newtoks\everysetupinteraction
+
+\def\setupinteraction
+ {\dosingleargument\dodosetupinteraction}
+
+\def\dodosetupinteraction[#1]% % \dosetupinteraction == special
+ {\getparameters[\??ia][#1]%
+ \the\everysetupinteraction}
+
+% todo, move partial append to where the action happens
+
+\appendtoks
+ \doifelse\@@iastate\v!start
+ {\iflocation\else
+ \showmessage\m!interactions2{\ifusepagedestinations\space(PAGE)\fi}%
+ \global\locationtrue
+ \fi}%
+ {\iflocation
+ \showmessage\m!interactions3{\ifusepagedestinations\space(PAGE)\fi}%
+ \global\locationfalse
+ \fi}%
+ \iflocation
+ \setsystemmode \v!interaction
+ \else
+ \resetsystemmode\v!interaction
+ \fi
+ \doifsomething\@@iacalculate
+ {\doregistercalculationset\@@iacalculate}%
+ \doifelse\@@iastrut \v!yes \settrue \setfalse \uselocationstrut
+ \doifelse\@@iaclick \v!yes \settrue \setfalse \highlighthyperlinks
+ \doifelse\@@iadisplay\v!new \settrue \setfalse \gotonewwindow
+ \doifelse\@@iapage \v!yes \settrue \setfalse \usepagedestinations
+\to \everysetupinteraction
+
+\def\synchronizebackendidentity
+ {\ctxlua{backends.codeinjections.setupidentity{
+ title = \!!bs\@@iatitle\!!es,
+ subtitle = \!!bs\@@iasubtitle\!!es,
+ author = \!!bs\@@iaauthor\!!es,
+ creator = \!!bs ConTeXt - \contextversion\!!es,
+ date = \!!bs\@@iadate\!!es,
+ keywords = \!!bs\@@iakeyword\!!es,
+ }}}
+
+\appendtoks
+ \synchronizebackendidentity
+\to \everyfirstshipout
+
+%D We have to make sure of some settings:
+
+\def\dolocationstartup
+ {\iflocation
+ \donefalse
+ \ifx\@@iaopenaction\empty \else \donetrue
+ \ctxlua{jobreferences.checkopendocumentactions("\@@iaopenaction")}%
+ \ctxlua{jobreferences.expandcurrent()}%
+ \fi
+ \ifx\@@iacloseaction\empty \else \donetrue
+ \ctxlua{jobreferences.checkclosedocumentactions("\@@iacloseaction")}%
+ \ctxlua{jobreferences.expandcurrent()}%
+ \fi
+ \ifdone
+ \ctxlua{jobreferences.flushdocumentactions()}%
+ \fi
+ \global\let\dolocationstartup\relax
+ \fi}
+
+\def\dolocationpagecheck
+ {\iflocation
+ \donefalse
+ \ifx\@@iaopenpageaction\empty \else \donetrue
+ \ctxlua{jobreferences.checkopenpageactions("\@@iaopenpageaction")}%
+ \ctxlua{jobreferences.expandcurrent()}%
+ \fi
+ \ifx\@@iaclosepageaction\empty \else \donetrue
+ \ctxlua{jobreferences.checkclosepageactions("\@@iaclosepageaction")}%
+ \ctxlua{jobreferences.expandcurrent()}%
+ \fi
+ \ifdone
+ \ctxlua{jobreferences.flushpageactions()}%
+ \fi
+ \fi}
+
+\appendtoks \dolocationstartup \to \everyshipout
+\appendtoks \dolocationpagecheck \to \everyshipout
+
+%D As long as there a natural feeling of what can be considered
+%D hyper active or not, we have to tell users where they can
+%D possibly click. We've already seen a few macros that deal
+%D with this visualization, something we definitely do not let
+%D up to the viewer. One way of telling is using a distinctive
+%D typeface, another way is using color.
+%D
+%D There are two colors involved: one for normal hyperlinks,
+%D and one for those that point to the currentpage, the
+%D contrast color.
+
+\definecolor [interactioncolor] [r=0, g=.6, b=0]
+\definecolor [interactioncontrastcolor] [r=.8, g=0, b=0]
+
+\definecolor [interactiekleur] [interactioncolor]
+\definecolor [interactiecontrastkleur] [interactioncontrastcolor]
+
+%D The next few macros are responsible for highlighting hyper
+%D links. The first one, \type{\showlocation}, is used in those
+%D situations where the typeface is handled by the calling
+%D macro.
+
+%D When we're dealing with pure page references, contrast
+%D colors are used when we are already at the page mentioned.
+
+\def\setlocationcolor#1% not grouped !
+ {\ifnum\referencepagestate=\plusone
+ \edef\askedcontrastcolor{\csname#1\c!contrastcolor\endcsname}%
+ \ifx\askedcontrastcolor\empty
+ \dosetcolorattribute{#1}\c!color
+ \else
+ \dosetcolorattribute{#1}\c!contrastcolor
+ \fi
+ \else % we could just set and if > 0 set again
+ \dosetcolorattribute{#1}\c!color
+ \fi}
+
+\def\setlocationfont#1%
+ {\dosetfontattribute{#1}\c!style}
+
+\def\setlocationattributes#1%
+ {\ifnum\referencepagestate=\plusone
+ \edef\askedcontrastcolor{\csname#1\c!contrastcolor\endcsname}%
+ \ifx\askedcontrastcolor\empty
+ \dosetcolorattribute{#1}\c!color
+ \else
+ \dosetcolorattribute{#1}\c!contrastcolor
+ \fi
+ \else % we could just set and if > 0 set again
+ \dosetcolorattribute{#1}\c!color
+ \fi
+ \dosetfontattribute{#1}\c!style}
+
+\def\setlocationcolorspec#1% \resolver
+ {\ifnum\referencepagestate=\plusone
+ \edef\askedcontrastcolor{#1\c!contrastcolor}%
+ \ifx\askedcontrastcolor\empty
+ \doactivatecolor{#1\c!color}%
+ \else
+ \doactivatecolor\askedcontrastcolor
+ \fi
+ \else
+ \doactivatecolor{#1\c!color}%
+ \fi}
+
+%D More tokens are spend when we want both typeface and color
+%D highlighting.
+
+\def\@@iatimestamp
+ {\the\normalyear
+ \ifnum\normalmonth<10 0\fi\the\normalmonth
+ \ifnum\normalday <10 0\fi\the\normalday}
+
+\setupinteraction % start fit page and reset form
+ [\c!state=\v!stop,
+ \c!page=\v!no,
+ \c!click=\v!yes,
+ \c!display=,
+ \c!openaction=,
+ \c!closeaction=,
+ \c!openpageaction=,
+ \c!closepageaction=,
+ \c!display=\v!normal,
+ \c!focus=\v!fit,
+ \c!menu=\v!off,
+ \c!style=\v!bold,
+ \c!calculate=,
+ \c!strut=\v!yes,
+ \c!split=\v!yes,
+ \c!color=interactioncolor,
+ \c!contrastcolor=interactioncontrastcolor,
+ \c!symbolset=,
+ \c!width=1em,
+ \c!height=\!!zeropoint,
+ \c!depth=\!!zeropoint,
+ \c!title=\jobname, % needed for fdf/x
+ \c!subtitle=,
+ \c!author=,
+ \c!keyword=,
+ \c!date=\@@iatimestamp]
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/scrp-cjk.lua b/Master/texmf-dist/tex/context/base/scrp-cjk.lua
new file mode 100644
index 00000000000..a452673fa9f
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/scrp-cjk.lua
@@ -0,0 +1,576 @@
+if not modules then modules = { } end modules ['scrp-cjk'] = {
+ version = 1.001,
+ comment = "companion to scrp-ini.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local has_attribute = node.has_attribute
+local make_glue_node = nodes.glue
+local make_penalty_node = nodes.penalty
+local insert_node_after = node.insert_after
+local insert_node_before = node.insert_before
+local remove_node = nodes.remove
+
+local glyph = node.id('glyph')
+local glue = node.id('glue')
+local penalty = node.id('penalty')
+
+local preproc = attributes.private('preproc')
+local prestat = attributes.private('prestat')
+
+scripts.cjk = scripts.cjk or { }
+
+local kind_to_number = scripts.kind_to_number
+local number_to_kind = scripts.number_to_kind
+local hash = scripts.hash
+local cjk = scripts.cjk
+local fontdata = fonts.ids
+
+-- raggedleft is controlled by leftskip and we might end up with a situation where
+-- the intercharacter spacing interferes with this; the solution is to patch the
+-- nodelist but better is to use veryraggedleft
+
+local inter_char_stretch = 0
+local inter_char_half_shrink = 0
+local inter_char_hangul_penalty = 0
+
+local function set_parameters(font,data)
+ -- beware: parameters can be nil in e.g. punk variants
+ local parameters = fontdata[font].parameters
+ local quad = (parameters and parameters.quad or parameters[6]) or 0
+ inter_char_half_shrink = data.inter_char_half_shrink_factor * quad
+ inter_char_stretch = data.inter_char_stretch_factor * quad
+ inter_char_hangul_penalty = data.inter_char_hangul_penalty
+end
+
+-- a test version did compensate for crappy halfwidth but we can best do that
+-- at font definition time and/or just assume a correct font
+
+local function nobreak(head,current)
+ insert_node_before(head,current,make_penalty_node(10000))
+end
+local function stretch_break(head,current)
+ insert_node_before(head,current,make_glue_node(0,inter_char_stretch,0))
+end
+local function shrink_break(head,current)
+ insert_node_before(head,current,make_glue_node(0,0,inter_char_half_shrink))
+end
+local function nobreak_stretch(head,current)
+ insert_node_before(head,current,make_penalty_node(10000))
+ insert_node_before(head,current,make_glue_node(0,inter_char_stretch,0))
+end
+local function korean_break(head,current)
+ insert_node_before(head,current,make_penalty_node(inter_char_hangul_penalty))
+end
+
+local function nobreak_shrink(head,current)
+ insert_node_before(head,current,make_penalty_node(10000))
+ insert_node_before(head,current,make_glue_node(0,0,inter_char_half_shrink))
+end
+local function nobreak_autoshrink(head,current)
+ if true then
+ insert_node_before(head,current,make_penalty_node(10000))
+ insert_node_before(head,current,make_glue_node(0,0,inter_char_half_shrink))
+ end
+end
+
+local function nobreak_stretch_nobreak_shrink(head,current)
+ insert_node_before(head,current,make_penalty_node(10000))
+ insert_node_before(head,current,make_glue_node(0,inter_char_stretch,0))
+ insert_node_before(head,current,make_penalty_node(10000))
+ insert_node_before(head,current,make_glue_node(0,0,inter_char_half_shrink))
+end
+local function nobreak_stretch_nobreak_autoshrink(head,current)
+ insert_node_before(head,current,make_penalty_node(10000))
+ insert_node_before(head,current,make_glue_node(0,inter_char_stretch,0))
+ if true then
+ insert_node_before(head,current,make_penalty_node(10000))
+ insert_node_before(head,current,make_glue_node(0,0,inter_char_half_shrink))
+ end
+end
+
+local function nobreak_shrink_nobreak_stretch(head,current)
+ insert_node_before(head,current,make_penalty_node(10000))
+ insert_node_before(head,current,make_glue_node(0,0,inter_char_half_shrink))
+ insert_node_before(head,current,make_penalty_node(10000))
+ insert_node_before(head,current,make_glue_node(0,inter_char_stretch,0))
+end
+local function nobreak_autoshrink_nobreak_stretch(head,current)
+ if true then
+ insert_node_before(head,current,make_penalty_node(10000))
+ insert_node_before(head,current,make_glue_node(0,0,inter_char_half_shrink))
+ end
+ insert_node_before(head,current,make_penalty_node(10000))
+ insert_node_before(head,current,make_glue_node(0,inter_char_stretch,0))
+end
+
+local function nobreak_shrink_break_stretch(head,current)
+ insert_node_before(head,current,make_penalty_node(10000))
+ insert_node_before(head,current,make_glue_node(0,0,inter_char_half_shrink))
+ insert_node_before(head,current,make_glue_node(0,inter_char_stretch,0))
+end
+local function nobreak_autoshrink_break_stretch(head,current)
+ if true then
+ insert_node_before(head,current,make_penalty_node(10000))
+ insert_node_before(head,current,make_glue_node(0,0,inter_char_half_shrink))
+ end
+ insert_node_before(head,current,make_glue_node(0,inter_char_stretch,0))
+end
+
+local function nobreak_shrink_break_stretch_nobreak_shrink(head,current)
+ insert_node_before(head,current,make_penalty_node(10000))
+ insert_node_before(head,current,make_glue_node(0,0,inter_char_half_shrink))
+ insert_node_before(head,current,make_glue_node(0,inter_char_stretch,0))
+ insert_node_before(head,current,make_penalty_node(10000))
+ insert_node_before(head,current,make_glue_node(0,inter_char_stretch,0))
+end
+local function nobreak_autoshrink_break_stretch_nobreak_autoshrink(head,current)
+ if true then
+ insert_node_before(head,current,make_penalty_node(10000))
+ insert_node_before(head,current,make_glue_node(0,0,inter_char_half_shrink))
+ end
+ insert_node_before(head,current,make_glue_node(0,inter_char_stretch,0))
+ if true then
+ insert_node_before(head,current,make_penalty_node(10000))
+ insert_node_before(head,current,make_glue_node(0,0,inter_char_half_shrink))
+ end
+end
+local function nobreak_autoshrink_break_stretch_nobreak_shrink(head,current)
+ if true then
+ insert_node_before(head,current,make_penalty_node(10000))
+ insert_node_before(head,current,make_glue_node(0,0,inter_char_half_shrink))
+ end
+ insert_node_before(head,current,make_glue_node(0,inter_char_stretch,0))
+ insert_node_before(head,current,make_penalty_node(10000))
+ insert_node_before(head,current,make_glue_node(0,0,inter_char_half_shrink))
+end
+local function nobreak_shrink_break_stretch_nobreak_autoshrink(head,current)
+ insert_node_before(head,current,make_penalty_node(10000))
+ insert_node_before(head,current,make_glue_node(0,0,inter_char_half_shrink))
+ insert_node_before(head,current,make_glue_node(0,inter_char_stretch,0))
+ if true then
+ insert_node_before(head,current,make_penalty_node(10000))
+ insert_node_before(head,current,make_glue_node(0,inter_char_stretch,0))
+ end
+end
+
+local function nobreak_stretch_break_shrink(head,current)
+ insert_node_before(head,current,make_penalty_node(10000))
+ insert_node_before(head,current,make_glue_node(0,inter_char_stretch,0))
+ insert_node_before(head,current,make_glue_node(0,0,inter_char_half_shrink))
+end
+local function nobreak_stretch_break_autoshrink(head,current)
+ insert_node_before(head,current,make_penalty_node(10000))
+ insert_node_before(head,current,make_glue_node(0,inter_char_stretch,0))
+ if true then
+ insert_node_before(head,current,make_glue_node(0,0,inter_char_half_shrink))
+ end
+end
+
+-- hangul (korean)
+
+local injectors = { -- [previous] [current]
+ jamo_final = {
+ jamo_initial = korean_break,
+ korean = korean_break,
+ chinese = korean_break,
+ half_width_open = stretch_break,
+ half_width_close = nobreak,
+ full_width_open = stretch_break,
+ full_width_close = nobreak,
+ -- hyphen = nil,
+ non_starter = korean_break,
+ other = korean_break,
+ },
+ korean = {
+ jamo_initial = korean_break,
+ korean = korean_break,
+ chinese = korean_break,
+ half_width_open = stretch_break,
+ half_width_close = nobreak,
+ full_width_open = stretch_break,
+ full_width_close = nobreak,
+ -- hyphen = nil,
+ non_starter = korean_break,
+ other = korean_break,
+ },
+ chinese = {
+ jamo_initial = korean_break,
+ korean = korean_break,
+ chinese = korean_break,
+ half_width_open = stretch_break,
+ half_width_close = nobreak,
+ full_width_open = stretch_break,
+ full_width_close = nobreak,
+ -- hyphen = nil,
+ non_starter = korean_break,
+ other = korean_break,
+ },
+ hyphen = {
+ jamo_initial = stretch_break,
+ korean = stretch_break,
+ chinese = stretch_break,
+ half_width_open = stretch_break,
+ half_width_close = nobreak,
+ full_width_open = stretch_break,
+ full_width_close = nobreak,
+ -- hyphen = nil,
+ non_starter = stretch_break,
+ other = stretch_break,
+ },
+ start = {
+ -- jamo_initial = nil,
+ -- korean = nil,
+ -- chinese = nil,
+ -- half_width_open = nil,
+ -- half_width_close = nil,
+ -- full_width_open = nil,
+ -- full_width_close = nil,
+ -- hyphen = nil,
+ -- non_starter = nil,
+ -- other = nil,
+ },
+ other = {
+ jamo_initial = stretch_break,
+ korean = stretch_break,
+ chinese = stretch_break,
+ half_width_open = stretch_break,
+ half_width_close = nobreak,
+ full_width_open = stretch_break,
+ full_width_close = nobreak,
+ -- hyphen = nil,
+ non_starter = stretch_break,
+ other = stretch_break,
+ },
+ non_starter = {
+ jamo_initial = stretch_break,
+ korean = stretch_break,
+ chinese = stretch_break,
+ half_width_open = stretch_break,
+ half_width_close = nobreak,
+ full_width_open = stretch_break,
+ full_width_close = nobreak,
+ -- hyphen = nil,
+ non_starter = nobreak,
+ other = nobreak,
+ },
+ full_width_open = {
+ jamo_initial = nobreak,
+ korean = nobreak,
+ chinese = nobreak,
+ half_width_open = nobreak,
+ half_width_close = nobreak,
+ full_width_open = nobreak,
+ full_width_close = nobreak,
+ hyphen = nobreak,
+ non_starter = nobreak,
+ other = nobreak,
+ },
+ half_width_open = {
+ jamo_initial = nobreak,
+ korean = nobreak,
+ chinese = nobreak,
+ half_width_open = nobreak,
+ half_width_close = nobreak,
+ full_width_open = nobreak,
+ full_width_close = nobreak,
+ hyphen = nobreak,
+ non_starter = nobreak,
+ other = nobreak,
+ },
+ full_width_close = {
+ jamo_initial = stretch_break,
+ korean = stretch_break,
+ chinese = stretch_break,
+ half_width_open = stretch_break,
+ half_width_close = nobreak_stretch,
+ full_width_open = stretch_break,
+ full_width_close = nobreak_stretch,
+ hyphen = nobreak_stretch,
+ non_starter = nobreak_stretch,
+ other = stretch_break,
+ },
+ half_width_close = {
+ jamo_initial = stretch_break,
+ korean = stretch_break,
+ chinese = stretch_break,
+ half_width_open = stretch_break,
+ half_width_close = nobreak_stretch,
+ full_width_open = stretch_break,
+ full_width_close = nobreak_stretch,
+ hyphen = nobreak_stretch,
+ non_starter = nobreak_stretch,
+ other = stretch_break,
+ },
+}
+
+local dataset = {
+ inter_char_stretch_factor = 0.50, -- of quad
+ inter_char_half_shrink_factor = 0.50, -- of quad
+ inter_char_hangul_penalty = 50,
+}
+
+local function process(head,first,last)
+ if first ~= last then
+ local lastfont, previous, originals, last = nil, "start", nil, nil
+ while true do
+ local upcoming, id = first.next, first.id
+ if id == glyph then
+ local a = has_attribute(first,prestat)
+ local current = number_to_kind[a]
+ local action = injectors[previous]
+ if action then
+ action = action[current]
+ if action then
+ local font = first.font
+ if font ~= lastfont then
+ lastfont, done = font, true
+ set_parameters(font,dataset)
+ end
+ action(head,first)
+ end
+ end
+ previous = current
+ else -- glue
+ local p, n = first.prev, upcoming
+ if p and n then
+ local pid, nid = p.id, n.id
+ if pid == glyph and nid == glyph then
+ local pa, na = has_attribute(p,prestat), has_attribute(n,prestat)
+ local pcjk, ncjk = pa and number_to_kind[pa], na and number_to_kind[na]
+ if not pcjk or not ncjk
+ or pcjk == "korean" or ncjk == "korean"
+ or pcjk == "other" or ncjk == "other"
+ or pcjk == "jamo_final" or ncjk == "jamo_initial" then
+ previous = "start"
+ else -- if head ~= first then
+ remove_node(head,first,true)
+ previous = pcjk
+ -- else
+ -- previous = pcjk
+ end
+ else
+ previous = "start"
+ end
+ else
+ previous = "start"
+ end
+ end
+ if upcoming == stop then
+ break
+ else
+ first = upcoming
+ end
+ end
+ end
+end
+
+scripts.install {
+ name = "hangul",
+ process = process,
+}
+
+-- hanzi (chinese)
+
+local injectors = { -- [previous] [current]
+ jamo_final = {
+ jamo_initial = korean_break,
+ korean = korean_break,
+ chinese = stretch_break,
+ half_width_open = nobreak_stretch_break_autoshrink,
+ half_width_close = nobreak_stretch,
+ full_width_open = nobreak_stretch_break_shrink,
+ full_width_close = nobreak_stretch,
+ -- hyphen = nil,
+ non_starter = nobreak_stretch,
+ other = stretch_break,
+ },
+ korean = {
+ jamo_initial = korean_break,
+ korean = korean_break,
+ chinese = stretch_break,
+ half_width_open = nobreak_stretch_break_autoshrink,
+ half_width_close = nobreak_stretch,
+ full_width_open = nobreak_stretch_break_shrink,
+ full_width_close = nobreak_stretch,
+ -- hyphen = nil,
+ non_starter = nobreak_stretch,
+ other = stretch_break,
+ },
+ chinese = {
+ jamo_initial = korean_break,
+ korean = stretch_break,
+ chinese = stretch_break,
+ half_width_open = nobreak_stretch_break_autoshrink,
+ half_width_close = nobreak_stretch,
+ full_width_open = nobreak_stretch_break_shrink,
+ full_width_close = nobreak_stretch,
+ hyphen = nobreak_stretch,
+ non_starter = nobreak_stretch,
+ other = stretch_break,
+ },
+ hyphen = {
+ jamo_initial = korean_break,
+ korean = stretch_break,
+ chinese = stretch_break,
+ half_width_open = nobreak_stretch_break_autoshrink,
+ half_width_close = nobreak_stretch,
+ full_width_open = nobreak_stretch_break_shrink,
+ full_width_close = nobreak_stretch,
+ -- hyphen = nil,
+ non_starter = nobreak_stretch,
+ other = stretch_break,
+ },
+ start = {
+ -- jamo_initial = nil,
+ -- korean = nil,
+ -- chinese = nil,
+ half_width_open = nobreak_autoshrink,
+ half_width_close = nil,
+ full_width_open = nobreak_shrink,
+ full_width_close = nobreak,
+ -- hyphen = nil,
+ non_starter = nobreak,
+ -- other = nil,
+ },
+ other = {
+ jamo_initial = stretch_break,
+ korean = stretch_break,
+ chinese = stretch_break,
+ half_width_open = nobreak_stretch_break_autoshrink,
+ half_width_close = nobreak_stretch,
+ full_width_open = nobreak_stretch_break_shrink,
+ full_width_close = nobreak_stretch,
+ -- hyphen = nil,
+ non_starter = nobreak_stretch,
+ other = stretch_break,
+ },
+ non_starter = {
+ jamo_initial = stretch_break,
+ korean = stretch_break,
+ chinese = stretch_break,
+ half_width_open = nobreak_stretch_break_autoshrink,
+ half_width_close = nobreak_stretch,
+ full_width_open = nobreak_stretch_break_shrink,
+ full_width_close = nobreak_stretch,
+ -- hyphen = nil,
+ non_starter = nobreak_stretch,
+ other = stretch_break,
+ },
+ full_width_open = {
+ jamo_initial = nobreak_stretch,
+ korean = nobreak_stretch,
+ chinese = nobreak_stretch,
+ half_width_open = nobreak_stretch_break_autoshrink,
+ half_width_close = nobreak_stretch,
+ full_width_open = nobreak_stretch_break_shrink,
+ full_width_close = nobreak_stretch,
+ hyphen = nobreak_stretch,
+ non_starter = nobreak_stretch,
+ other = nobreak_stretch,
+ },
+ half_width_open = {
+ jamo_initial = nobreak_stretch,
+ korean = nobreak_stretch,
+ chinese = nobreak_stretch,
+ half_width_open = nobreak_stretch_break_autoshrink,
+ half_width_close = nobreak_stretch,
+ full_width_open = nobreak_stretch_nobreak_shrink,
+ full_width_close = nobreak_stretch,
+ hyphen = nobreak_stretch,
+ non_starter = nobreak_stretch,
+ other = nobreak_stretch,
+ },
+ full_width_close = {
+ jami_initial = nobreak_shrink_break_stretch,
+ korean = nobreak_shrink_break_stretch,
+ chinese = nobreak_shrink_break_stretch,
+ half_width_open = nobreak_shrink_break_stretch_nobreak_autoshrink,
+ half_width_close = nobreak_shrink_nobreak_stretch,
+ full_width_open = nobreak_shrink_break_stretch_nobreak_shrink,
+ full_width_close = nobreak_shrink_nobreak_stretch,
+ hyphen = nobreak_shrink_break_stretch,
+ non_starter = nobreak_shrink_break_stretch,
+ other = nobreak_shrink_break_stretch,
+ },
+ half_width_close = {
+ jami_initial = nobreak_shrink_break_stretch,
+ korean = nobreak_autoshrink_break_stretch,
+ chinese = nobreak_autoshrink_break_stretch,
+ half_width_open = nobreak_autoshrink_break_stretch_nobreak_autoshrink,
+ half_width_close = nobreak_autoshrink_nobreak_stretch,
+ full_width_open = nobreak_autoshrink_break_stretch_nobreak_shrink,
+ full_width_close = nobreak_autoshrink_nobreak_stretch,
+ hyphen = nobreak_autoshrink_break_stretch,
+ non_starter = nobreak_autoshrink_break_stretch,
+ other = nobreak_autoshrink_break_stretch,
+ },
+}
+
+local dataset = {
+ inter_char_stretch_factor = 0.50, -- of quad
+ inter_char_half_shrink_factor = 0.50, -- of quad
+ inter_char_hangul_penalty = 50,
+}
+
+local function process(head,first,last)
+ if first ~= last then
+ local lastfont, previous, originals, last = nil, "start", nil, nil
+ while true do
+ local upcoming, id = first.next, first.id
+ if id == glyph then
+ local a = has_attribute(first,prestat)
+ local current = number_to_kind[a]
+ local action = injectors[previous]
+ if action then
+ action = action[current]
+ if action then
+ local font = first.font
+ if font ~= lastfont then
+ lastfont, done = font, true
+ set_parameters(font,dataset)
+ end
+ action(head,first)
+ end
+ end
+ previous = current
+ else -- glue
+ local p, n = first.prev, upcoming
+ if p and n then
+ local pid, nid = p.id, n.id
+ if pid == glyph and nid == glyph then
+ local pa, na = has_attribute(p,prestat), has_attribute(n,prestat)
+ local pcjk, ncjk = pa and number_to_kind[pa], na and number_to_kind[na]
+ if not pcjk or not ncjk
+ or pcjk == "korean" or ncjk == "korean"
+ or pcjk == "other" or ncjk == "other"
+ or pcjk == "jamo_final" or ncjk == "jamo_initial" then
+ previous = "start"
+ else -- if head ~= first then
+ remove_node(head,first,true)
+ previous = pcjk
+ -- else
+ -- previous = pcjk
+ end
+ else
+ previous = "start"
+ end
+ else
+ previous = "start"
+ end
+ end
+ if upcoming == stop then
+ break
+ else
+ first = upcoming
+ end
+ end
+ end
+end
+
+scripts.install {
+ name = "hanzi",
+ process = process,
+}
diff --git a/Master/texmf-dist/tex/context/base/scrp-ini.lua b/Master/texmf-dist/tex/context/base/scrp-ini.lua
new file mode 100644
index 00000000000..a555732842d
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/scrp-ini.lua
@@ -0,0 +1,386 @@
+if not modules then modules = { } end modules ['scrp-ini'] = {
+ version = 1.001,
+ comment = "companion to scrp-ini.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local trace_analyzing = false trackers.register("scripts.analyzing", function(v) trace_analyzing = v end)
+local trace_injections = false trackers.register("scripts.injections", function(v) trace_injections = v end)
+
+local set_attribute = node.set_attribute
+local has_attribute = node.has_attribute
+local first_character = node.first_character
+local traverse_id = node.traverse_id
+
+local glyph = node.id('glyph')
+local glue = node.id('glue')
+local penalty = node.id('penalty')
+
+local fcs = (fonts.color and fonts.color.set) or function() end
+local fcr = (fonts.color and fonts.color.reset) or function() end
+
+local state = attributes.private('state')
+local preproc = attributes.private('preproc')
+local prestat = attributes.private('prestat')
+
+local fontdata = fonts.ids
+
+scripts = scripts or { }
+scripts.handlers = scripts.handlers or { }
+
+scripts.names = scripts.names or { }
+scripts.numbers = scripts.numbers or { }
+scripts.hash = scripts.hash or { }
+
+storage.register("scripts/hash", scripts.hash, "scripts.hash")
+
+if not next(scripts.hash) then
+
+ local hash = {
+ --
+ -- half width opening parenthesis
+ [0x0028] = "half_width_open",
+ [0x005B] = "half_width_open",
+ [0x007B] = "half_width_open",
+ [0x2018] = "half_width_open", -- ‘
+ [0x201C] = "half_width_open", -- “
+ --
+ -- full width opening parenthesis
+ --
+ [0x3008] = "full_width_open", -- 〈 Left book quote
+ [0x300A] = "full_width_open", -- 《 Left double book quote
+ [0x300C] = "full_width_open", -- 「 left quote
+ [0x300E] = "full_width_open", -- 『 left double quote
+ [0x3010] = "full_width_open", -- 【 left double book quote
+ [0x3014] = "full_width_open", -- 〔 left book quote
+ [0x3016] = "full_width_open", --〖 left double book quote
+ [0x3018] = "full_width_open", -- left tortoise bracket
+ [0x301A] = "full_width_open", -- left square bracket
+ [0x301D] = "full_width_open", -- reverse double prime qm
+ [0xFF08] = "full_width_open", -- ( left parenthesis
+ [0xFF3B] = "full_width_open", -- [ left square brackets
+ [0xFF5B] = "full_width_open", -- { left curve bracket
+ [0xFF62] = "full_width_open", -- left corner bracket
+ --
+ -- half width closing parenthesis
+ [0x0029] = "half_width_close",
+ [0x005D] = "half_width_close",
+ [0x007D] = "half_width_close",
+ [0x2019] = "half_width_close", -- ’ right quote, right
+ [0x201D] = "half_width_close", -- ” right double quote
+ --
+ -- full width closing parenthesis
+ --
+ [0x3009] = "full_width_close", -- 〉 book quote
+ [0x300B] = "full_width_close", -- 》 double book quote
+ [0x300D] = "full_width_close", -- 」 right quote, right
+ [0x300F] = "full_width_close", -- 』 right double quote
+ [0x3011] = "full_width_close", -- 】 right double book quote
+ [0x3015] = "full_width_close", -- 〕 right book quote
+ [0x3017] = "full_width_close", -- 〗 right double book quote
+ [0x3019] = "full_width_close", -- right tortoise bracket
+ [0x301B] = "full_width_close", -- right square bracket
+ [0x301E] = "full_width_close", -- double prime qm
+ [0x301F] = "full_width_close", -- low double prime qm
+ [0xFF09] = "full_width_close", -- ) right parenthesis
+ [0xFF3D] = "full_width_close", -- ] right square brackets
+ [0xFF5D] = "full_width_close", -- } right curve brackets
+ [0xFF63] = "full_width_close", -- right corner bracket
+ --
+ -- vertical opening vertical
+ --
+ -- 0xFE35, 0xFE37, 0xFE39, 0xFE3B, 0xFE3D, 0xFE3F, 0xFE41, 0xFE43, 0xFE47,
+ --
+ -- vertical closing
+ --
+ -- 0xFE36, 0xFE38, 0xFE3A, 0xFE3C, 0xFE3E, 0xFE40, 0xFE42, 0xFE44, 0xFE48,
+ --
+ -- half width opening punctuation
+ --
+ -- <empty>
+ --
+ -- full width opening punctuation
+ --
+ -- 0x2236, -- ∶
+ -- 0xFF0C, -- ,
+ --
+ -- half width closing punctuation_hw
+ --
+ [0x0021] = "half_width_close", -- !
+ [0x002C] = "half_width_close", -- ,
+ [0x002E] = "half_width_close", -- .
+ [0x003A] = "half_width_close", -- :
+ [0x003B] = "half_width_close", -- ;
+ [0x003F] = "half_width_close", -- ?
+ [0xFF61] = "half_width_close", -- hw full stop
+ --
+ -- full width closing punctuation
+ [0x3001] = "full_width_close", -- 、
+ [0x3002] = "full_width_close", -- 。
+ [0xFF01] = "full_width_close", -- !
+ [0xFF0C] = "full_width_close", -- ,
+ [0xFF0E] = "full_width_close", -- .
+ [0xFF1A] = "full_width_close", -- :
+ [0xFF1B] = "full_width_close", -- ;
+ [0xFF1F] = "full_width_close", -- ?
+ --
+ -- non starter
+ --
+ [0x3005] = "non_starter", [0x3041] = "non_starter", [0x3043] = "non_starter", [0x3045] = "non_starter", [0x3047] = "non_starter",
+ [0x3049] = "non_starter", [0x3063] = "non_starter", [0x3083] = "non_starter", [0x3085] = "non_starter", [0x3087] = "non_starter",
+ [0x308E] = "non_starter", [0x3095] = "non_starter", [0x3096] = "non_starter", [0x309B] = "non_starter", [0x309C] = "non_starter",
+ [0x309D] = "non_starter", [0x309E] = "non_starter", [0x30A0] = "non_starter", [0x30A1] = "non_starter", [0x30A3] = "non_starter",
+ [0x30A5] = "non_starter", [0x30A7] = "non_starter", [0x30A9] = "non_starter", [0x30C3] = "non_starter", [0x30E3] = "non_starter",
+ [0x30E5] = "non_starter", [0x30E7] = "non_starter", [0x30EE] = "non_starter", [0x30F5] = "non_starter", [0x30F6] = "non_starter",
+ [0x30FC] = "non_starter", [0x30FD] = "non_starter", [0x30FE] = "non_starter", [0x31F0] = "non_starter", [0x31F1] = "non_starter",
+ [0x30F2] = "non_starter", [0x30F3] = "non_starter", [0x30F4] = "non_starter", [0x31F5] = "non_starter", [0x31F6] = "non_starter",
+ [0x30F7] = "non_starter", [0x30F8] = "non_starter", [0x30F9] = "non_starter", [0x31FA] = "non_starter", [0x31FB] = "non_starter",
+ [0x30FC] = "non_starter", [0x30FD] = "non_starter", [0x30FE] = "non_starter", [0x31FF] = "non_starter",
+ --
+ -- hyphenation
+ --
+ [0x2026] = "hyphen", -- … ellipsis
+ [0x2014] = "hyphen", -- — hyphen
+ }
+
+ for i=0x03040,0x0309F do if not hash[i] then hash[i] = "chinese" end end
+ for i=0x030A0,0x030FF do if not hash[i] then hash[i] = "chinese" end end
+ for i=0x031F0,0x031FF do if not hash[i] then hash[i] = "chinese" end end
+ for i=0x03400,0x04DFF do if not hash[i] then hash[i] = "chinese" end end
+ for i=0x04E00,0x09FFF do if not hash[i] then hash[i] = "chinese" end end
+ for i=0x0F900,0x0FAFF do if not hash[i] then hash[i] = "chinese" end end
+ for i=0x0FF00,0x0FFEF do if not hash[i] then hash[i] = "chinese" end end
+ for i=0x20000,0x2A6DF do if not hash[i] then hash[i] = "chinese" end end
+ for i=0x2F800,0x2FA1F do if not hash[i] then hash[i] = "chinese" end end
+ for i=0x0AC00,0x0D7A3 do if not hash[i] then hash[i] = "korean" end end
+ for i=0x01100,0x0115F do if not hash[i] then hash[i] = "jamo_initial" end end
+ for i=0x01160,0x011A7 do if not hash[i] then hash[i] = "jamo_medial" end end
+ for i=0x011A8,0x011FF do if not hash[i] then hash[i] = "jamo_final" end end
+
+ scripts.hash = hash
+
+end
+
+scripts.colors = { -- todo: just named colors
+ korean = "font:isol",
+ chinese = "font:rest",
+ full_width_open = "font:init",
+ full_width_close = "font:fina",
+ half_width_open = "font:init",
+ half_width_close = "font:fina",
+ hyphen = "font:medi",
+ non_starter = "font:isol",
+ jamo_initial = "font:init",
+ jamo_medial = "font:medi",
+ jamo_final = "font:fina",
+
+}
+
+scripts.number_to_kind = {
+ "korean",
+ "chinese",
+ "full_width_open",
+ "full_width_close",
+ "half_width_open",
+ "half_width_close",
+ "hyphen",
+ "non_starter",
+ "jamo_initial",
+ "jamo_medial",
+ "jamo_final",
+}
+
+scripts.kind_to_number = {
+ korean = 1,
+ chinese = 2,
+ full_width_open = 3,
+ full_width_close = 4,
+ half_width_open = 5,
+ half_width_close = 6,
+ hyphen = 7,
+ non_starter = 8,
+ jamo_initial = 9,
+ jamo_medial = 10,
+ jamo_final = 11,
+}
+
+local kind_to_number = scripts.kind_to_number
+local number_to_kind = scripts.number_to_kind
+
+-- no, this time loading the lua always precedes the definitions
+--
+-- storage.register("scripts/names", scripts.names, "scripts.names")
+-- storage.register("scripts/numbers", scripts.numbers, "scripts.numbers")
+
+local handlers = scripts.handlers
+local names = scripts.names
+local numbers = scripts.numbers
+local hash = scripts.hash
+local colors = scripts.colors
+
+-- maybe also process
+
+function scripts.install(handler)
+ local name = handler.name
+ if not names[name] then
+ local n = #numbers + 1
+ numbers[n] = name
+ names[name] = n
+ handlers[n] = handler
+ end
+ return names[name]
+end
+
+function scripts.define(name)
+ tex.write(names[name] or attributes.unsetvalue)
+end
+
+-- some time i will make a fonts.originals[id]
+
+local function colorize(start,stop)
+ for n in traverse_id(glyph,start) do
+ local kind = number_to_kind[has_attribute(n,prestat)]
+ if kind then
+ local ac = colors[kind]
+ if ac then
+ fcs(n,ac)
+ end
+ end
+ if n == stop then
+ break
+ end
+ end
+end
+
+local function traced_process(head,first,last,process,a)
+ if start ~= last then
+ local f, l = first, last
+ logs.report("preprocess","before %s: %s",names[a] or "?",nodes.tosequence(f,l))
+ process(head,first,last)
+ logs.report("preprocess","after %s: %s", names[a] or "?",nodes.tosequence(f,l))
+ end
+end
+
+-- eventually we might end up with more extensive parsing
+-- todo: pass t[start..stop] == original
+
+function scripts.preprocess(head)
+ local start = first_character(head)
+ if not start then
+ return head, false
+ else
+ local last_a, normal_process, lastfont, originals = nil, nil, nil, nil
+ local done, first, last, ok = false, nil, nil, false
+ while start do
+ local id = start.id
+ if id == glyph then
+ local a = has_attribute(start,preproc)
+ if a then
+ if a ~= last_a then
+ if first then
+ if ok then
+ if trace_analyzing then
+ colorize(first,last)
+ end
+ if trace_injections then
+ traced_process(head,first,last,normal_process,last_a)
+ else
+ normal_process(head,first,last)
+ end
+ ok, done = false, true
+ end
+ first, last = nil, nil
+ end
+ last_a = a
+ local handler = handlers[a]
+ normal_process = handler.process
+ end
+ if normal_process then
+ local f = start.font
+ if f ~= lastfont then
+ originals = fontdata[f].originals
+ lastfont = f
+ end
+ local c = start.char
+ if originals then c = originals[c] or c end
+ local h = hash[c]
+ if h then
+ set_attribute(start,prestat,kind_to_number[h])
+ if not first then
+ first, last = start, start
+ else
+ last = start
+ end
+ -- if cjk == "chinese" or cjk == "korean" then -- we need to prevent too much ( ) processing
+ ok = true
+ -- end
+ elseif first then
+ if ok then
+ if trace_analyzing then
+ colorize(first,last)
+ end
+ if trace_injections then
+ traced_process(head,first,last,normal_process,last_a)
+ else
+ normal_process(head,first,last)
+ end
+ ok, done = false, true
+ end
+ first, last = nil, nil
+ end
+ end
+ elseif first then
+ if ok then
+ if trace_analyzing then
+ colorize(first,last)
+ end
+ if trace_injections then
+ traced_process(head,first,last,normal_process,last_a)
+ else
+ normal_process(head,first,last)
+ end
+ ok, done = false, true
+ end
+ first, last = nil, nil
+ end
+ elseif id == glue then
+ if ok then
+ -- continue
+ elseif first then
+ -- no chinese or korean
+ first, last = nil, nil
+ end
+ elseif first then
+ if ok then
+ -- some chinese or korean
+ if trace_analyzing then
+ colorize(first,last)
+ end
+ if trace_injections then
+ traced_process(head,first,last,normal_process,last_a)
+ else
+ normal_process(head,first,last)
+ end
+ first, last, ok, done = nil, nil, false, true
+ elseif first then
+ first, last = nil, nil
+ end
+ end
+ start = start.next
+ end
+ if ok then
+ if trace_analyzing then
+ colorize(first,last)
+ end
+ if trace_injections then
+ traced_process(head,first,last,normal_process,last_a)
+ else
+ normal_process(head,first,last)
+ end
+ done = true
+ end
+ return head, done
+ end
+end
diff --git a/Master/texmf-dist/tex/context/base/scrp-ini.mkiv b/Master/texmf-dist/tex/context/base/scrp-ini.mkiv
new file mode 100644
index 00000000000..3382ef4b64d
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/scrp-ini.mkiv
@@ -0,0 +1,91 @@
+%D \module
+%D [ file=scrp-ini,
+%D version=2009.02.06,
+%D title=\CONTEXT\ Script Macros,
+%D subtitle=Initialization,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA / Hans Hagen]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+% here we collect code from other places (was organized differently)
+
+\registerctxluafile{scrp-ini}{1.001}
+\registerctxluafile{scrp-cjk}{1.001}
+
+\definesystemattribute[preproc]
+\definesystemattribute[prestat]
+
+%D Since scripts need specific \LUA\ code we use hard coded attribute
+%D values, but we might have more tricks at some time, so we use a
+%D proper define macro too.
+
+\unprotect
+
+\def\s!attribute{attribute}
+
+\def\namedscriptparameter#1#2%
+ {\csname\doscriptparameter{\??ls#1}#2\endcsname}
+
+\def\scriptparameter#1%
+ {\csname\doscriptparameter{\??ls\currentscript}#1\endcsname}
+
+\def\doscriptparameter#1#2%
+ {\ifcsname#1#2\endcsname#1#2\else\expandafter\doscriptparentparameter\csname#1\s!parent\endcsname#2\fi}
+
+\def\doscriptparentparameter#1#2%
+ {\ifx#1\relax\s!empty\else\doscriptparameter#1#2\fi}
+
+% \def\scriptparameterhash#1%
+% {\doscriptparameterhash{\??ls\currentscript}#1}
+%
+% \def\doscriptparameterhash#1#2%
+% {\ifcsname#1#2\endcsname#1\else\expandafter\doscriptparentparameterhash\csname#1\s!parent\endcsname#2\fi}
+%
+% \def\doscriptparentparameterhash#1#2%
+% {\ifx#1\relax\else\doscriptparameterhash#1#2\fi}
+
+% when #2 == string, then only synonym, no settings
+
+\def\definescript
+ {\dodoubleargument\dodefinescript}
+
+\def\dodefinescript[#1][#2]%
+ {\doifassignmentelse{#2}
+ {\getparameters[\??ls#1][\c!method=,\s!parent=,#2]%
+ \doifelsenothing{\namedscriptparameter{#1}\c!method}
+ {\letvalue {\??ls#1\s!attribute}\attributeunsetvalue}%
+ {\setevalue{\??ls#1\s!attribute}{\ctxlua{scripts.define("\namedscriptparameter{#1}\c!method")}}}}%
+ {\getparameters[\??ls#1][\s!parent=#2]}%
+ \setvalue{#1}{\dosetscript{#1}}}
+
+\def\setupscript
+ {\dodoubleargument\dosetupscript}
+
+\def\dosetupscript[#1][#2]%
+ {\getparameters[\??ls#1][#2]}
+
+\def\dosetscript#1%
+ {\def\currentscript{#1}%
+ \edef\currentscriptattribute{\scriptparameter\s!attribute}%
+ \ifx\currentscriptattribute\empty
+ \let\currentscript\empty
+ \doresetattribute{preproc}%
+ \else
+ \dosetattribute{preproc}\currentscriptattribute % we can speed this up by storing the attribute in ??ls:a:#1
+ \fi}
+
+\def\setscript [#1]{\dosetscript{#1}}
+\def\startscript[#1]{\begingroup\dosetscript{#1}}
+\def\stopscript {\endgroup}
+
+% \setscript[hangul] \hangul \startscript[hangul]
+
+\definescript[latin] [\c!method=] % resets the attribute
+\definescript[hangul][\c!method=hangul]
+\definescript[hanzi] [\c!method=hanzi]
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/sort-def.tex b/Master/texmf-dist/tex/context/base/sort-def.tex
deleted file mode 100644
index 502fb787f40..00000000000
--- a/Master/texmf-dist/tex/context/base/sort-def.tex
+++ /dev/null
@@ -1,20 +0,0 @@
-%D \module
-%D [ file=sort-def,
-%D version=2005.08.08,
-%D title=\CONTEXT\ Sort Macros,
-%D subtitle=Defaults,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This module replaces existing sort key handling and is meant to be
-%D used with the new texutil functionality. Here we define the default
-%D mappings
-
-\loadmarkfile{sort-def}
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/sort-ini.lua b/Master/texmf-dist/tex/context/base/sort-ini.lua
index e14c927d7b2..5f045938f1a 100644
--- a/Master/texmf-dist/tex/context/base/sort-ini.lua
+++ b/Master/texmf-dist/tex/context/base/sort-ini.lua
@@ -1,8 +1,10 @@
--- filename : sort-ini.lua
--- comment : companion to sort-ini.tex
--- author : Hans Hagen, PRAGMA-ADE, Hasselt NL
--- copyright: PRAGMA ADE / ConTeXt Development Team
--- license : see context related readme files
+if not modules then modules = { } end modules ['sort-ini'] = {
+ version = 1.001,
+ comment = "companion to sort-ini.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
-- todo:
--
@@ -11,7 +13,9 @@
-- texutil compatible
-- always expand to utf
-if not versions then versions = { } end versions['sort-ini'] = 1.001
+local utf = unicode.utf8
+local gsub, rep = string.gsub, string.rep
+local utfcharacters, utfvalues, strcharacters = string.utfcharacters, string.utfvalues, string.characters
sorters = { }
sorters.comparers = { }
@@ -21,18 +25,28 @@ sorters.mappings = { }
sorters.replacements = { }
sorters.language = 'en'
-function sorters.comparers.basic(a,b,i) -- [2] has entry, key, cmp
- local sort_a, sort_b = a[2][i][3], b[2][i][3]
+function sorters.comparers.basic(sort_a,sort_b)
+ -- sm assignment is slow, will become sorters.initialize
+ local sm = sorters.mappings[sorters.language or sorters.defaultlanguage] or sorters.mappings.en
if #sort_a > #sort_b then
if #sort_b == 0 then
return 1
else
for i=1,#sort_b do
local ai, bi = sort_a[i], sort_b[i]
- if ai > bi then
- return 1
- elseif ai < bi then
- return -1
+ local am, bm = sm[ai], sm[bi]
+ if am and bm then
+ if am > bm then
+ return 1
+ elseif am < bm then
+ return -1
+ end
+ else
+ if ai > bi then
+ return 1
+ elseif ai < bi then
+ return -1
+ end
end
end
return 1
@@ -43,10 +57,19 @@ function sorters.comparers.basic(a,b,i) -- [2] has entry, key, cmp
else
for i=1,#sort_a do
local ai, bi = sort_a[i], sort_b[i]
- if ai > bi then
- return 1
- elseif ai < bi then
- return -1
+ local am, bm = sm[ai], sm[bi]
+ if am and bm then
+ if am > bm then
+ return 1
+ elseif am < bm then
+ return -1
+ end
+ else
+ if ai > bi then
+ return 1
+ elseif ai < bi then
+ return -1
+ end
end
end
return -1
@@ -56,126 +79,71 @@ function sorters.comparers.basic(a,b,i) -- [2] has entry, key, cmp
else
for i=1,#sort_a do
local ai, bi = sort_a[i], sort_b[i]
- if ai > bi then
- return 1
- elseif ai < bi then
- return -1
- end
- end
- sort_a, sort_b = a[2][i][2], b[2][i][2]
- if sort_a == "" then sort_a = a[2][i][1] end
- if sort_b == "" then sort_b = b[2][i][1] end
- if sort_a < sort_b then
- return -1
- elseif sort_a > sort_b then
- return 1
- else
- return 0
- end
- end
-end
-
-function sorters.prepare(data,split,n)
- local strip = sorters.strip
- for k,v in ipairs(data) do
- for i=1,n do
- local vv = v[2][i]
- if vv then
- if vv[2] then
- if vv[2] ~= "" then
- vv[3] = split(strip(vv[2]))
- else
- vv[3] = split(strip(vv[1]))
- end
- else
- vv[2] = { }
- vv[3] = split(strip(vv[1]))
+ local am, bm = sm[ai], sm[bi]
+ if am and bm then
+ if am > bm then
+ return 1
+ elseif am < bm then
+ return -1
end
else
- v[2][i] = { {}, {}, {} }
+ if ai > bi then
+ return 1
+ elseif ai < bi then
+ return -1
+ end
end
end
+ return 0
end
end
+local function padd(s) return rep(" ",10-#s) .. s end -- or format with padd
+
function sorters.strip(str) -- todo: only letters and such utf.gsub("([^%w%d])","")
- str = str:gsub("\\%S*","")
- str = str:gsub("[%s%[%](){}%$\"\']*","")
- str = str:gsub("(%d+)",function(s) return (" "):rep(10-#s) .. s end) -- sort numbers properly
- return str
+ if str then
+ str = gsub(str,"\\%S*","")
+ str = gsub(str,"[%s%[%](){}%$\"\']*","")
+ str = gsub(str,"(%d+)",padd) -- sort numbers properly
+ return str
+ else
+ return ""
+ end
+end
+
+function sorters.firstofsplit(split)
+ -- numbers are left padded by spaces
+ local se = sorters.entries[sorters.language or sorters.defaultlanguage] -- slow, will become sorters.initialize
+ local vs = split[1]
+ local entry = (vs and vs[1]) or ""
+ return entry, (se and se[entry]) or "\000"
end
sorters.defaultlanguage = 'en'
-function sorters.splitters.utf(str)
+-- beware, numbers get spaces in front
+
+function sorters.splitters.utf(str) -- brrr, todo: language
local r = sorters.replacements[sorters.language] or sorters.replacements[sorters.defaultlanguage] or { }
- local m = sorters.mappings [sorters.language] or sorters.mappings [sorters.defaultlanguage] or { }
+--~ local m = sorters.mappings [sorters.language] or sorters.mappings [sorters.defaultlanguage] or { }
local u = characters.uncompose
local b = utf.byte
local t = { }
- for _,v in pairs(r) do
- str = str:gsub(v[1],v[2])
+ for _,v in next, r do
+ str = gsub(str,v[1],v[2])
end
- for c in string.utfcharacters(str) do
- if m[c] then
- t[#t+1] = m[c]
- elseif #c == 1 then
- t[#t+1] = b(c)
+ for c in utfcharacters(str) do -- maybe an lpeg
+ if #c == 1 then
+ t[#t+1] = c
else
- for cc in string.characters(u(c)) do
- t[#t+1] = m[cc] or b(cc)
+ for cc in strcharacters(c) do
+ t[#t+1] = cc
end
end
end
return t
end
-function sorters.sort(data,cmp)
- table.sort(data,function(a,b) return cmp(a,b) == -1 end)
-end
-
-function sorters.cleanup(data)
- for k,v in ipairs(data) do
- for kk,vv in ipairs(v[2]) do
- if vv and #vv[1] == 0 then
- v[1][kk] = nil
- else
- vv[3] = nil
- end
- end
- for kk,vv in pairs(v) do
- if vv == "" then
- v[kk] = nil
- end
- end
- end
-end
-
-function sorters.unique(data)
- local prev, last = nil, 0
- for _,v in ipairs(data) do
- if not prev or not table.are_equal(prev,v,2,3) then -- check range
- last = last + 1
- data[last] = v
- prev = v
- end
- end
- for i=last+1,#data do
- data[i] = nil
- end
-end
-
-function sorters.process(kind,data)
- if data.entries then
- if not data.sorted then
- sorters.language = data.language or sorters.language
- sorters[kind].prepare(data.entries)
- sorters[kind].sort(data.entries)
- sorters[kind].unique(data.entries)
- data.sorted = true
- end
- return sorters[kind].flush(sorters[kind].finalize(data.entries),data.class,data.flush)
- else
- return { }
- end
+function sorters.sort(entries,cmp)
+ table.sort(entries,function(a,b) return cmp(a,b) == -1 end)
end
diff --git a/Master/texmf-dist/tex/context/base/sort-ini.mkii b/Master/texmf-dist/tex/context/base/sort-ini.mkii
index 0f049994637..f1ed1c3162e 100644
--- a/Master/texmf-dist/tex/context/base/sort-ini.mkii
+++ b/Master/texmf-dist/tex/context/base/sort-ini.mkii
@@ -1,7 +1,7 @@
%D \module
%D [ file=sort-ini,
%D version=2005.08.08,
-%D title=\CONTEXT\ Sort Macros,
+%D title=\CONTEXT\ Sorting Macros,
%D subtitle=Initialization,
%D author=Hans Hagen,
%D date=\currentdate,
@@ -17,6 +17,12 @@
%D used with the new texutil functionality. This module defines a few
%D auxiliary macros.
+\writestatus{loading}{ConTeXt Sorting Macros / Initialization}
+
+%D This module replaces existing sort key handling and is meant to be
+%D used with the new texutil functionality. This module defines a few
+%D auxiliary macros.
+
\ifx\exportsortaction\undefined \else \endinput \fi
%D The sorting method is largely bases on the one used in the old version
@@ -72,6 +78,14 @@
\unprotect
+\def\savesortkeys
+ {\ifproductionrun
+ \the\everysavesortkeys
+ \global\everysavesortkeys\emptytoks
+ \fi}
+
+\appendtoks \savesortkeys \to \everyshipout
+
\let\currentexportclass\empty
\def\exportsortaction#1#2#3%
@@ -105,17 +119,17 @@
{\exportutfsortexpansion{0}{128}{255}%
\exportutfsortexpansion{1}{0}{255}}
{\def\defineactivecharacter##1 ##2% mkii code !
- {\expanded{\exportsortshortcut{\rawcharacter{##1}}}{##2}}%
+ {\doifnumberelse{##1}
+ {\expanded{\exportsortshortcut{\rawcharacter{##1}}}{##2}}%
+ {\expanded{\exportsortshortcut{\rawcharacter{\number`##1}}}{##2}}}%
\doifelsenothing\currentregime
{\doifnot\characterencoding\nocharacterencoding % to be sure, autoregime
{\dowalkregime\characterencoding}}%
{\dowalkregime\characterencoding}}%
\egroup
\startnointerference
-% \startreadingfile
-\setcatcodetable\ctxcatcodes
- \readsysfile{\f!sortprefix def}\donothing\donothing % default
-% \stopreadingfile
+ \setcatcodetable\ctxcatcodes
+ \readsysfile{\f!sortprefix def.mkii}\donothing\donothing % default
\stopnointerference
\global\let\savesortdefinitions\relax}
@@ -126,10 +140,8 @@
\global\letvalue{\f!sortprefix::#1}\empty
\def\currentexportclass{#1}%
\enablemode[sortorder-#1]%
-% \startreadingfile
-\setcatcodetable\ctxcatcodes
- \readsysfile{\f!sortprefix lan}\donothing\donothing
-% \stopreadingfile
+ \setcatcodetable\ctxcatcodes
+ \readsysfile{\f!sortprefix lan.mkii}\donothing\donothing
\stopnointerference}}}
\prependtoks
diff --git a/Master/texmf-dist/tex/context/base/sort-ini.mkiv b/Master/texmf-dist/tex/context/base/sort-ini.mkiv
index 9c87edb11ef..a4dc2f6badc 100644
--- a/Master/texmf-dist/tex/context/base/sort-ini.mkiv
+++ b/Master/texmf-dist/tex/context/base/sort-ini.mkiv
@@ -11,11 +11,9 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\registerctxluafile{sort-ini}{1.001}
-
-\let\savesortlanguage\gobbleoneargument
+\writestatus{loading}{ConTeXt Sorting Macros / Initialization}
-\readfile{sort-def.tex}{}{} % runtime loaded in mkii
-\readfile{sort-lan.tex}{}{} % runtime loaded in mkii
+\registerctxluafile{sort-ini}{1.001}
+\registerctxluafile{sort-lan}{1.001}
\endinput
diff --git a/Master/texmf-dist/tex/context/base/sort-ini.tex b/Master/texmf-dist/tex/context/base/sort-ini.tex
deleted file mode 100644
index 2baa609fb15..00000000000
--- a/Master/texmf-dist/tex/context/base/sort-ini.tex
+++ /dev/null
@@ -1,32 +0,0 @@
-%D \module
-%D [ file=sort-ini,
-%D version=2005.08.08,
-%D title=\CONTEXT\ Sort Macros,
-%D subtitle=Initialization,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This module replaces existing sort key handling and is meant to be
-%D used with the new texutil functionality. This module defines a few
-%D auxiliary macros.
-
-\writestatus{loading}{Context Sorting Macros (ini)}
-
-\newevery \everysavesortkeys \relax
-
-\def\savesortkeys
- {\ifproductionrun
- \the\everysavesortkeys
- \global\everysavesortkeys\emptytoks
- \fi}
-
-\appendtoks \savesortkeys \to \everyshipout
-
-\loadmarkfile{sort-ini}
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/sort-lan.lua b/Master/texmf-dist/tex/context/base/sort-lan.lua
index dd3a2353f57..5d4ded78eab 100644
--- a/Master/texmf-dist/tex/context/base/sort-lan.lua
+++ b/Master/texmf-dist/tex/context/base/sort-lan.lua
@@ -1,250 +1,262 @@
--- filename : sort-lan.lua
--- comment : companion to sort-lan.tex
--- author : Hans Hagen, PRAGMA-ADE, Hasselt NL
--- copyright: PRAGMA ADE / ConTeXt Development Team
--- license : see context related readme files
+if not modules then modules = { } end modules ['sort-lan'] = {
+ version = 1.001,
+ comment = "companion to sort-lan.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
-if not versions then versions = { } end versions['sort-lan'] = 1.001
+local utf = unicode.utf8
-- this is a rather preliminary and incomplete file
-- maybe we should load this kind of stuff runtime
-- english
-do
- -- The next one can be more efficient when not indexed this way, but
- -- other languages are sparse so for the moment we keep this one.
-
- sorters.entries['en'] = {
- [ 1] = "a", [ 3] = "b", [ 5] = "c", [ 7] = "d", [ 9] = "e",
- [11] = "f", [13] = "g", [15] = "h", [17] = "i", [19] = "j",
- [21] = "k", [23] = "l", [25] = "m", [27] = "n", [29] = "o",
- [31] = "p", [33] = "q", [35] = "r", [37] = "s", [39] = "t",
- [41] = "u", [43] = "v", [45] = "w", [47] = "x", [49] = "y",
- [51] = "z",
- [ 2] = 1, [ 4] = 3, [ 6] = 5, [ 8] = 7, [10] = 9,
- [12] = 11, [14] = 13, [16] = 15, [18] = 17, [20] = 19,
- [22] = 21, [24] = 23, [26] = 25, [28] = 27, [30] = 29,
- [32] = 31, [34] = 33, [36] = 35, [38] = 37, [40] = 39,
- [42] = 41, [44] = 43, [46] = 45, [48] = 47, [50] = 49,
- [52] = 51,
- }
- sorters.mappings['en'] = {
- ["a"] = 1, ["b"] = 3, ["c"] = 5, ["d"] = 7, ["e"] = 9,
- ["f"] = 11, ["g"] = 13, ["h"] = 15, ["i"] = 17, ["j"] = 19,
- ["k"] = 21, ["l"] = 23, ["m"] = 25, ["n"] = 27, ["o"] = 29,
- ["p"] = 31, ["q"] = 33, ["r"] = 35, ["s"] = 37, ["t"] = 39,
- ["u"] = 41, ["v"] = 43, ["w"] = 45, ["x"] = 47, ["y"] = 49,
- ["z"] = 51,
- ["A"] = 2, ["B"] = 4, ["C"] = 6, ["D"] = 8, ["E"] = 10,
- ["F"] = 12, ["G"] = 14, ["H"] = 16, ["I"] = 18, ["J"] = 20,
- ["K"] = 22, ["L"] = 24, ["M"] = 26, ["N"] = 28, ["O"] = 30,
- ["P"] = 32, ["Q"] = 34, ["R"] = 36, ["S"] = 38, ["T"] = 40,
- ["U"] = 42, ["V"] = 44, ["W"] = 46, ["X"] = 48, ["Y"] = 50,
- ["Z"] = 52,
- }
-end
+-- The next one can be more efficient when not indexed this way, but
+-- other languages are sparse so for the moment we keep this one.
+
+sorters.entries['en'] = {
+ ["a"] = "a", ["b"] = "b", ["c"] = "c", ["d"] = "d", ["e"] = "e",
+ ["f"] = "f", ["g"] = "g", ["h"] = "h", ["i"] = "i", ["j"] = "j",
+ ["k"] = "k", ["l"] = "l", ["m"] = "m", ["n"] = "n", ["o"] = "o",
+ ["p"] = "p", ["q"] = "q", ["r"] = "r", ["s"] = "s", ["t"] = "t",
+ ["u"] = "u", ["v"] = "v", ["w"] = "w", ["x"] = "x", ["y"] = "y",
+ ["z"] = "z",
+ ["A"] = "a", ["B"] = "b", ["C"] = "c", ["D"] = "d", ["E"] = "e",
+ ["F"] = "f", ["G"] = "g", ["H"] = "h", ["I"] = "i", ["J"] = "j",
+ ["K"] = "k", ["L"] = "l", ["M"] = "m", ["N"] = "n", ["O"] = "o",
+ ["P"] = "p", ["Q"] = "q", ["R"] = "r", ["S"] = "s", ["T"] = "t",
+ ["U"] = "u", ["V"] = "v", ["W"] = "w", ["X"] = "x", ["Y"] = "y",
+ ["Z"] = "z",
+}
+
+sorters.mappings['en'] = {
+ ["a"] = 1, ["b"] = 3, ["c"] = 5, ["d"] = 7, ["e"] = 9,
+ ["f"] = 11, ["g"] = 13, ["h"] = 15, ["i"] = 17, ["j"] = 19,
+ ["k"] = 21, ["l"] = 23, ["m"] = 25, ["n"] = 27, ["o"] = 29,
+ ["p"] = 31, ["q"] = 33, ["r"] = 35, ["s"] = 37, ["t"] = 39,
+ ["u"] = 41, ["v"] = 43, ["w"] = 45, ["x"] = 47, ["y"] = 49,
+ ["z"] = 51,
+ ["A"] = 2, ["B"] = 4, ["C"] = 6, ["D"] = 8, ["E"] = 10,
+ ["F"] = 12, ["G"] = 14, ["H"] = 16, ["I"] = 18, ["J"] = 20,
+ ["K"] = 22, ["L"] = 24, ["M"] = 26, ["N"] = 28, ["O"] = 30,
+ ["P"] = 32, ["Q"] = 34, ["R"] = 36, ["S"] = 38, ["T"] = 40,
+ ["U"] = 42, ["V"] = 44, ["W"] = 46, ["X"] = 48, ["Y"] = 50,
+ ["Z"] = 52,
+}
-- dutch
-do
- sorters.replacements['nl'] = { { "ij", 'y' }, { "IJ", 'Y' } }
- sorters.entries ['nl'] = sorters.entries ['en']
- sorters.mappings ['nl'] = sorters.mappings['en']
-end
+sorters.replacements['nl'] = { { "ij", 'y' }, { "IJ", 'Y' } }
+sorters.entries ['nl'] = sorters.entries ['en']
+sorters.mappings ['nl'] = sorters.mappings['en']
-- czech
-do
-
- local uc = unicode.utf8.char
- local ub = unicode.utf8.byte
-
- sorters.replacements['cz'] = {
- [1] = { "ch", uc(0xFF01) }
- }
-
- sorters.entries['cz'] = {
- [ 1] = "a",
- [ 2] = 1,
- [ 3] = "b",
- [ 4] = "c",
- [ 5] = uc(0x010D), -- ccaron
- [ 6] = "d",
- [ 7] = uc(0x010F), -- dcaron
- [ 8] = "e",
- [ 9] = 8,
- [10] = 8,
- [11] = "f",
- [12] = "g",
- [13] = "h",
- [14] = "ch",
- [15] = "i",
- [16] = 15,
- [17] = "j",
- [18] = "k",
- [19] = "l",
- [20] = "m",
- [21] = "n",
- [22] = uc(0x0147), -- ncaron
- [23] = "o",
- [24] = "p",
- [25] = "q",
- [26] = "r",
- [27] = uc(0x0147), -- rcaron
- [28] = "s",
- [29] = uc(0x0161), -- scaron
- [30] = "t",
- [31] = uc(0x0165), -- tcaron
- [32] = "u",
- [33] = 32,
- [34] = 32,
- [35] = "v",
- [36] = "w",
- [37] = "x",
- [38] = "y",
- [49] = "z",
- [40] = uc(0x017E), -- zcaron
- }
-
- sorters.mappings['cz'] = {
- ['a'] = 1, -- a
- [uc(0x00E1)] = 2, -- aacute
- ['b'] = 3, -- b
- ['c'] = 4, -- c
- [uc(0x010D)] = 5, -- ccaron
- ['d'] = 6, -- d
- [uc(0x010F)] = 7, -- dcaron
- ['e'] = 8, -- e
- [uc(0x00E9)] = 9, -- eacute
- [uc(0x011B)] = 10, -- ecaron
- ['f'] = 11, -- f
- ['g'] = 12, -- g
- ['h'] = 13, -- h
- [uc(0xFF01)] = 14, -- ch
- ['i'] = 15, -- i
- [uc(0x00ED)] = 16, -- iacute
- ['j'] = 17, -- j
- ['k'] = 18, -- k
- ['l'] = 19, -- l
- ['m'] = 20, -- m
- ['n'] = 21, -- n
- [uc(0x0147)] = 22, -- ncaron
- ['o'] = 23, -- o
- ['p'] = 24, -- p
- ['q'] = 25, -- q
- ['s'] = 26, -- r
- [uc(0x0147)] = 27, -- rcaron
- ['s'] = 28, -- s
- [uc(0x0161)] = 29, -- scaron
- ['t'] = 30, -- t
- [uc(0x0165)] = 31, -- tcaron
- ['u'] = 32, -- u
- [uc(0x00FA)] = 33, -- uacute
- [uc(0x01F6)] = 34, -- uring
- ['v'] = 35, -- v
- ['w'] = 36, -- w
- ['x'] = 37, -- x
- ['y'] = 38, -- y
- ['z'] = 49, -- z
- [uc(0x017E)] = 40, -- zcaron
- }
-
-end
-
--- The german vectors are provided by Wolfgang Schuster.
+local uc = utf.char
+local ub = utf.byte
+
+sorters.replacements['cz'] = {
+ [1] = { "ch", uc(0xFF01) }
+}
+
+sorters.entries['cz'] = {
+ ['a'] = "a",
+ [uc(0x00E1)] = "a",
+ ['b'] = "b",
+ ['c'] = "c",
+ [uc(0x010D)] = uc(0x010D), -- ccaron
+ ['d'] = "d",
+ [uc(0x010F)] = uc(0x010F), -- dcaron
+ ['e'] = "e",
+ [uc(0x00E9)] = "e",
+ [uc(0x011B)] = "e",
+ ['f'] = "f",
+ ['g'] = "g",
+ ['h'] = "h",
+ [uc(0xFF01)] = "ch",
+ ['i'] = "i",
+ [uc(0x00ED)] = "i",
+ ['j'] = "j",
+ ['k'] = "k",
+ ['l'] = "l",
+ ['m'] = "m",
+ ['n'] = "n",
+ [uc(0x0147)] = uc(0x0147), -- ncaron
+ ['o'] = "o",
+ ['p'] = "p",
+ ['q'] = "q",
+ ['s'] = "r",
+ [uc(0x0147)] = uc(0x0147), -- rcaron
+ ['s'] = "s",
+ [uc(0x0161)] = uc(0x0161), -- scaron
+ ['t'] = "t",
+ [uc(0x0165)] = uc(0x0165), -- tcaron
+ ['u'] = "u",
+ [uc(0x00FA)] = "u",
+ [uc(0x01F6)] = "u",
+ ['v'] = "v",
+ ['w'] = "w",
+ ['x'] = "x",
+ ['y'] = "y",
+ ['z'] = "z",
+ [uc(0x017E)] = uc(0x017E), -- zcaron
+}
+
+sorters.mappings['cz'] = {
+ ['a'] = 1, -- a
+ [uc(0x00E1)] = 2, -- aacute
+ ['b'] = 3, -- b
+ ['c'] = 4, -- c
+ [uc(0x010D)] = 5, -- ccaron
+ ['d'] = 6, -- d
+ [uc(0x010F)] = 7, -- dcaron
+ ['e'] = 8, -- e
+ [uc(0x00E9)] = 9, -- eacute
+ [uc(0x011B)] = 10, -- ecaron
+ ['f'] = 11, -- f
+ ['g'] = 12, -- g
+ ['h'] = 13, -- h
+ [uc(0xFF01)] = 14, -- ch
+ ['i'] = 15, -- i
+ [uc(0x00ED)] = 16, -- iacute
+ ['j'] = 17, -- j
+ ['k'] = 18, -- k
+ ['l'] = 19, -- l
+ ['m'] = 20, -- m
+ ['n'] = 21, -- n
+ [uc(0x0147)] = 22, -- ncaron
+ ['o'] = 23, -- o
+ ['p'] = 24, -- p
+ ['q'] = 25, -- q
+ ['s'] = 26, -- r
+ [uc(0x0147)] = 27, -- rcaron
+ ['s'] = 28, -- s
+ [uc(0x0161)] = 29, -- scaron
+ ['t'] = 30, -- t
+ [uc(0x0165)] = 31, -- tcaron
+ ['u'] = 32, -- u
+ [uc(0x00FA)] = 33, -- uacute
+ [uc(0x01F6)] = 34, -- uring
+ ['v'] = 35, -- v
+ ['w'] = 36, -- w
+ ['x'] = 37, -- x
+ ['y'] = 38, -- y
+ ['z'] = 49, -- z
+ [uc(0x017E)] = 40, -- zcaron
+}
+
+-- German (by Wolfgang Schuster)
-- DIN 5007-1
-do
- sorters.entries ['DIN 5007-1'] = sorters.entries ['en']
- sorters.mappings ['DIN 5007-1'] = sorters.mappings['en']
-end
+sorters.entries ['DIN 5007-1'] = sorters.entries ['en']
+sorters.mappings ['DIN 5007-1'] = sorters.mappings['en']
-- DIN 5007-2
-do
- sorters.replacements['DIN 5007-2'] = {
- { "ä", 'ae' },
- { "ö", 'oe' },
- { "ü", 'ue' },
- { "Ä", 'Ae' },
- { "Ö", 'Oe' },
- { "Ü", 'Ue' }
- }
- sorters.entries ['DIN 5007-2'] = sorters.entries ['en']
- sorters.mappings ['DIN 5007-2'] = sorters.mappings['en']
-end
+sorters.replacements['DIN 5007-2'] = {
+ { "ä", 'ae' },
+ { "ö", 'oe' },
+ { "ü", 'ue' },
+ { "Ä", 'Ae' },
+ { "Ö", 'Oe' },
+ { "Ü", 'Ue' }
+}
+
+sorters.entries ['DIN 5007-2'] = sorters.entries ['en']
+sorters.mappings ['DIN 5007-2'] = sorters.mappings['en']
-- Duden
-do
- sorters.replacements['Duden'] = { { "ß", 's' } }
- sorters.entries ['Duden'] = sorters.entries ['en']
- sorters.mappings ['Duden'] = sorters.mappings['en']
-end
+sorters.replacements['Duden'] = { { "ß", 's' } }
+sorters.entries ['Duden'] = sorters.entries ['en']
+sorters.mappings ['Duden'] = sorters.mappings['en']
-- new german
-do
- sorters.entries ['de'] = sorters.entries ['en']
- sorters.mappings ['de'] = sorters.mappings['en']
-end
+sorters.entries ['de'] = sorters.entries ['en']
+sorters.mappings ['de'] = sorters.mappings['en']
-- old german
-do
- sorters.entries ['deo'] = sorters.entries ['de']
- sorters.mappings ['deo'] = sorters.mappings['de']
-end
+sorters.entries ['deo'] = sorters.entries ['de']
+sorters.mappings ['deo'] = sorters.mappings['de']
-- german - Germany
-do
- sorters.entries ['de-DE'] = sorters.entries ['de']
- sorters.mappings ['de-DE'] = sorters.mappings['de']
-end
+sorters.entries ['de-DE'] = sorters.entries ['de']
+sorters.mappings ['de-DE'] = sorters.mappings['de']
-- german - Swiss
-do
- sorters.entries ['de-CH'] = sorters.entries ['de']
- sorters.mappings ['de-CH'] = sorters.mappings['de']
-end
+sorters.entries ['de-CH'] = sorters.entries ['de']
+sorters.mappings ['de-CH'] = sorters.mappings['de']
-- german - Austria
-do
- sorters.entries['de-AT'] = {
- [ 1] = "a", [ 3] = 1, [ 5] = "b", [ 7] = "c", [ 9] = "d",
- [11] = "e", [13] = "f", [15] = "g", [17] = "h", [19] = "i",
- [21] = "j", [23] = "k", [25] = "l", [27] = "m", [29] = "n",
- [31] = "o", [33] = 31, [35] = "p", [37] = "q", [39] = "r",
- [41] = "s", [43] = "t", [45] = "u", [47] = 45, [49] = "v",
- [51] = "w", [53] = "y", [55] = "y", [57] = "z",
- [ 2] = 1, [ 4] = 3, [ 6] = 5, [ 8] = 7, [10] = 9,
- [12] = 11, [14] = 13, [16] = 15, [18] = 17, [20] = 19,
- [22] = 21, [24] = 23, [26] = 25, [28] = 27, [30] = 29,
- [32] = 31, [34] = 33, [36] = 35, [38] = 37, [40] = 39,
- [42] = 41, [44] = 43, [46] = 45, [48] = 47, [50] = 49,
- [52] = 51, [54] = 53, [56] = 55, [58] = 57,
- }
- sorters.mappings['de-AT'] = {
- ["a"] = 1, ["ä"] = 3, ["b"] = 5, ["c"] = 7, ["d"] = 9,
- ["e"] = 11, ["f"] = 13, ["g"] = 15, ["h"] = 17, ["i"] = 19,
- ["j"] = 21, ["k"] = 23, ["l"] = 25, ["m"] = 27, ["n"] = 29,
- ["o"] = 31, ["ö"] = 33, ["p"] = 35, ["q"] = 37, ["r"] = 39,
- ["s"] = 41, ["t"] = 43, ["u"] = 45, ["ü"] = 47, ["v"] = 49,
- ["w"] = 51, ["x"] = 53, ["y"] = 55, ["z"] = 57,
- ["A"] = 2, ["Ä"] = 4, ["B"] = 6, ["C"] = 8, ["D"] = 10,
- ["E"] = 12, ["F"] = 14, ["G"] = 16, ["H"] = 18, ["I"] = 20,
- ["J"] = 22, ["K"] = 24, ["L"] = 26, ["M"] = 28, ["N"] = 30,
- ["O"] = 32, ["Ö"] = 34, ["P"] = 36, ["Q"] = 38, ["R"] = 40,
- ["S"] = 42, ["T"] = 44, ["U"] = 46, ["Ü"] = 48, ["V"] = 50,
- ["W"] = 52, ["X"] = 54, ["Y"] = 56, ["Z"] = 58,
- }
-end
-
+sorters.entries['de-AT'] = {
+ ["a"] = "a", ["ä"] = "ä", ["b"] = "b", ["c"] = "c", ["d"] = "d",
+ ["e"] = "e", ["f"] = "f", ["g"] = "g", ["h"] = "h", ["i"] = "i",
+ ["j"] = "j", ["k"] = "k", ["l"] = "l", ["m"] = "m", ["n"] = "n",
+ ["o"] = "o", ["ö"] = "ö", ["p"] = "p", ["q"] = "q", ["r"] = "r",
+ ["s"] = "s", ["t"] = "t", ["u"] = "u", ["ü"] = "ü", ["v"] = "v",
+ ["w"] = "w", ["x"] = "x", ["y"] = "y", ["z"] = "z",
+ ["A"] = "a", ["Ä"] = "ä", ["B"] = "b", ["C"] = "c", ["D"] = "d",
+ ["E"] = "e", ["F"] = "f", ["G"] = "g", ["H"] = "h", ["I"] = "i",
+ ["J"] = "j", ["K"] = "k", ["L"] = "l", ["M"] = "m", ["N"] = "n",
+ ["O"] = "o", ["Ö"] = "ö", ["P"] = "p", ["Q"] = "q", ["R"] = "r",
+ ["S"] = "s", ["T"] = "t", ["U"] = "u", ["Ü"] = "ü", ["V"] = "v",
+ ["W"] = "w", ["X"] = "x", ["Y"] = "y", ["Z"] = "z",
+}
+
+sorters.mappings['de-AT'] = {
+ ["a"] = 1, ["ä"] = 3, ["b"] = 5, ["c"] = 7, ["d"] = 9,
+ ["e"] = 11, ["f"] = 13, ["g"] = 15, ["h"] = 17, ["i"] = 19,
+ ["j"] = 21, ["k"] = 23, ["l"] = 25, ["m"] = 27, ["n"] = 29,
+ ["o"] = 31, ["ö"] = 33, ["p"] = 35, ["q"] = 37, ["r"] = 39,
+ ["s"] = 41, ["t"] = 43, ["u"] = 45, ["ü"] = 47, ["v"] = 49,
+ ["w"] = 51, ["x"] = 53, ["y"] = 55, ["z"] = 57,
+ ["A"] = 2, ["Ä"] = 4, ["B"] = 6, ["C"] = 8, ["D"] = 10,
+ ["E"] = 12, ["F"] = 14, ["G"] = 16, ["H"] = 18, ["I"] = 20,
+ ["J"] = 22, ["K"] = 24, ["L"] = 26, ["M"] = 28, ["N"] = 30,
+ ["O"] = 32, ["Ö"] = 34, ["P"] = 36, ["Q"] = 38, ["R"] = 40,
+ ["S"] = 42, ["T"] = 44, ["U"] = 46, ["Ü"] = 48, ["V"] = 50,
+ ["W"] = 52, ["X"] = 54, ["Y"] = 56, ["Z"] = 58,
+}
+
+-- finish (by Wolfgang Schuster)
+
+sorters.entries['fi'] = {
+ [ 1] = "a", [ 3] = "b", [ 5] = "c", [ 7] = "d", [ 9] = "e",
+ [11] = "f", [13] = "g", [15] = "h", [17] = "i", [19] = "j",
+ [21] = "k", [23] = "l", [25] = "m", [27] = "n", [29] = "o",
+ [31] = "p", [33] = "q", [35] = "r", [37] = "s", [39] = "t",
+ [41] = "u", [43] = "v", [45] = "w", [47] = "x", [49] = "y",
+ [51] = "z", [53] = "å", [55] = "ä", [57] = "ö",
+ [ 2] = 1, [ 4] = 3, [ 6] = 5, [ 8] = 7, [10] = 9,
+ [12] = 11, [14] = 13, [16] = 15, [18] = 17, [20] = 19,
+ [22] = 21, [24] = 23, [26] = 25, [28] = 27, [30] = 29,
+ [32] = 31, [34] = 33, [36] = 35, [38] = 37, [40] = 39,
+ [42] = 41, [44] = 43, [46] = 45, [48] = 47, [50] = 49,
+ [52] = 51, [54] = 53, [56] = 55, [58] = 57,
+}
+
+sorters.entries['fi'] = {
+ ["a"] = "a", ["b"] = "b", ["c"] = "c", ["d"] = "d", ["e"] = "e",
+ ["f"] = "f", ["g"] = "g", ["h"] = "h", ["i"] = "i", ["j"] = "j",
+ ["k"] = "k", ["l"] = "l", ["m"] = "m", ["n"] = "n", ["o"] = "o",
+ ["p"] = "p", ["q"] = "q", ["r"] = "r", ["s"] = "s", ["t"] = "t",
+ ["u"] = "u", ["v"] = "v", ["w"] = "w", ["x"] = "x", ["y"] = "y",
+ ["z"] = "z", ["å"] = "å", ["ä"] = "ä", ["ö"] = "ö",
+ ["A"] = "a", ["B"] = "b", ["C"] = "c", ["D"] = "d", ["E"] = "e",
+ ["F"] = "f", ["G"] = "g", ["H"] = "h", ["I"] = "i", ["J"] = "j",
+ ["K"] = "k", ["L"] = "l", ["M"] = "m", ["N"] = "n", ["O"] = "o",
+ ["P"] = "p", ["Q"] = "q", ["R"] = "r", ["S"] = "s", ["T"] = "t",
+ ["U"] = "u", ["V"] = "v", ["W"] = "w", ["X"] = "x", ["Y"] = "y",
+ ["Z"] = "z", ["Å"] = "å", ["Ä"] = "ä", ["Ö"] = "ö",
+}
--~ sorters.test = ''
--~ sorters.test = 'nl'
diff --git a/Master/texmf-dist/tex/context/base/sort-lan.tex b/Master/texmf-dist/tex/context/base/sort-lan.tex
deleted file mode 100644
index 1eadae40715..00000000000
--- a/Master/texmf-dist/tex/context/base/sort-lan.tex
+++ /dev/null
@@ -1,18 +0,0 @@
-%D \module
-%D [ file=sort-lan,
-%D version=2005.08.08,
-%D title=\CONTEXT\ Sort Macros,
-%D subtitle=Language Definitions,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{Context Sorting Macros (languages)}
-
-\loadmarkfile{sort-lan}
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/spec-def.mkii b/Master/texmf-dist/tex/context/base/spec-def.mkii
index 6a66c68cb4f..ad1a9bb1d17 100644
--- a/Master/texmf-dist/tex/context/base/spec-def.mkii
+++ b/Master/texmf-dist/tex/context/base/spec-def.mkii
@@ -11,6 +11,1006 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-%D This file is empty.
+%D This module used to be integrated in \type {spec-ini},
+%D but testing optimization is more convenient this way.
-\endinput
+\writestatus{loading}{ConTeXt Special Macros / Definitions}
+
+\unprotect
+
+%D Ok, messy, but we need this because we load drivers before
+%D references.
+
+\newif\ifcollectreferenceactions
+
+%D The following libraries are defined. Two postscript
+%D drivers are supported, as well as two mechanisms for
+%D interactive texts.
+%D
+%D \startlinecorrection
+%D \starttable[|l|l|l|l|l|]
+%D \HL
+%D \NC \bf file \NC
+%D \bf name \NC
+%D \bf calls \NC
+%D \bf support \NC
+%D \bf program / driver \NC\SR
+%D \HL
+%D \NC \tttf spec-tex \NC
+%D \tttf tex \NC
+%D \NC
+%D Generic \TEX\ (\DVI) \NC
+%D (default) \NC\FR
+%D \NC \tttf spec-tpd \NC
+%D \tttf \PDF \NC
+%D \NC
+%D Han The Thanh \NC
+%D (pdftex) \NC\MR
+%D \NC \tttf spec-ps \NC
+%D \tttf postscript \NC
+%D \NC
+%D Adobe PostScript \NC
+%D (default) \NC\MR
+%D \NC \tttf spec-tr \NC
+%D \tttf rokicki \NC
+%D \tttf postscript \NC
+%D Thomas Rokicki \NC
+%D (dvips) \NC\MR
+%D \NC \tttf spec-yy \NC
+%D \tttf yandy \NC
+%D \tttf postscript \NC
+%D YandY \NC
+%D (dvipsone, dviwindo) \NC\MR
+%D \NC \tttf spec-pdf \NC
+%D \tttf pdf \NC
+%D \NC
+%D Adobe PDF \NC
+%D (Acrobat) \NC\MR
+%D \NC \tttf spec-win \NC
+%D \tttf dviwindo \NC
+%D YandY \NC
+%D (dviwindo) \NC\MR
+%D \NC \tttf spec-htm \NC
+%D \tttf html \NC
+%D \NC
+%D HTML V 2.0 \NC
+%D (dvips) \NC\LR
+%D \HL
+%D \stoptable
+%D \stoplinecorrection
+
+%D \macros
+%D {dostartgraymode,dostopgraymode,
+%D dostartrgbcolormode,dostartcmykcolormode,dostartgraycolormode,dostopcolormode}
+%D
+%D Switching to and from color can be done in two ways:
+%D
+%D \startitemize[packed,n]
+%D \item insert driver specific commands
+%D \item pass instructions to the output device
+%D \stopitemize
+%D
+%D The first approach is more general and lays the
+%D responsibility at the driver side. Probably due to the fact
+%D that \TEX\ does not directly support color, we have been
+%D confronted for the last few years with changing special
+%D definitions. The need for support depends on how a macro
+%D package handles colored text that crosses the page boundary.
+%D Again, there are two approaches.
+%D
+%D \startitemize[packed,n]
+%D \item let \TEX\ do the job
+%D \item let the driver handle things
+%D \stopitemize
+%D
+%D The first approach is as driver independant as possible and
+%D can easily be accomplished by using \TEX's mark mechanism.
+%D In \CONTEXT\ we follow this approach. More and more, drivers
+%D are starting to support color, including stacking them.
+%D
+%D Colors as well as grayscales can be represented in scales
+%D from~0 to~1. When drivers use values in the range 0..255,
+%D this value has to be adapted in the translation process.
+%D Technically it's possible to get a grayscale from combining
+%D colors. In the \cap{RGB} color system, a color with Red,
+%D Green and Blue components of 0.80 show the same gray as a
+%D Gray Scale specified 0.80. The \cap{CMYK} color system
+%D supports a Black component apart from Cyan, Magenta and
+%D Yellow.
+%D
+%D Depending on the target format, color support differs from
+%D gray support. PostScript for example offers different
+%D operators for setting gray and color. This is because
+%D printing something using three colors is someting else than
+%D printing with just black.
+%D
+%D In \CONTEXT\ we have implemented a color subsystem that
+%D supports the use of well defined colors that, when printed
+%D in black and white, still can be distinguished. This
+%D approach enables us to serve both printed and electronic
+%D versions, using colored text and illustrations. More on the
+%D fundamentals of this topic can be found in the \cap{MAPS} of
+%D the Dutch User Group, 14 (95.1).
+%D
+%D To satisfy all those needs, we define four specials which
+%D supply enough information for drivers to act upon. We
+%D could have used more general commands with the keywords
+%D 'rgb' and 'gray', but because these specials are used often,
+%D we prefer the more direct and shorter alternative.
+%D
+%D We start with the installation of color and grayscale
+%D specials. The values are in the range 0..1 (e.g. 0.25).
+%D
+%D \starttyping
+%D \dostartgraymode {gray} ... \dostopgraymode
+%D \dostartrgbcolormode {red} {green} {blue} ... \dostopcolormode
+%D \dostartcmykcolormode {cyan} {magenta} {yellow} {black} ... \dostopcolormode
+%D \dostartgraycolormode {gray} ... \dostopcolormode
+%D \stoptyping
+%D
+%D Because we can expect conflicts between drivers, we
+%D implement them as category \type{or}. In previous versions
+%D of \DVIPSONE\ the use of their color||specials did not
+%D interfere with the PostScript ones, but recent versions do.
+
+\installspecial [\dostartgraymode] [or] [1]
+\installspecial [\dostopgraymode] [or] [0]
+
+\installspecial [\dostartrgbcolormode] [or] [3]
+\installspecial [\dostartcmykcolormode] [or] [4]
+\installspecial [\dostartgraycolormode] [or] [1]
+\installspecial [\dostopcolormode] [or] [0]
+
+%D New and experimental:
+
+\installspecial [\dostartspotcolormode] [or] [2]
+
+\installspecial [\doregisterrgbspotcolor] [or] [7]
+\installspecial [\doregistercmykspotcolor] [or] [8]
+\installspecial [\doregistergrayspotcolor] [or] [5]
+
+\installspecial [\doregisterrgbindexcolor] [or] [7]
+\installspecial [\doregistercmykindexcolor] [or] [8]
+\installspecial [\doregistergrayindexcolor] [or] [5]
+
+\installspecial [\doregisterspotcolorname] [or] [2]
+
+\installspecial [\dostartnonecolormode] [or] [0]
+\installspecial [\doregisternonecolor] [or] [0]
+
+%D For some drivers, the stop special is of no use and can
+%D simply call the start one with zero arguments.
+
+%D \macros
+%D {dogetfiguresize,doinsertfile,doinsertMPfile}
+%D
+%D Probably the most problematic special is the following
+%D one. Because we want to be able to support different
+%D schemes, we pass a lot of data to it.
+%D
+%D The support of inserting files (like illustrations) comes in
+%D many flavors. Some drivers use scales, some take dimensions.
+%D Some need offsets and others act on stored characteristics.
+%D They need one thing in common: a filename. Although separate
+%D specials for different formats sometimes are more clear, we
+%D decided to combine them all in one:
+%D
+%D \starttyping
+%D \doinsertfile {type,method} {file,label}
+%D {xscale} {yscale} {x} {y} {w} {h}
+%D {options}
+%D \stoptyping
+%D
+%D The scale is given percents, the other values are base
+%D points.
+%D
+%D Per 2006 we have simplified this model. The amount of drivers
+%D is not growing and all support scaling. We pass variables via
+%D Driver specific macros.
+%D
+%D \starttyping
+%D \doinsertfile
+%D \stoptyping
+%D
+%D The special is implemented as \type{or}. Because \DVIPSONE\
+%D understands them all, a chain of alternatives would generate
+%D multiple occurrences of the same illustration.
+%D
+%D When option 1 is passed, the viewers is asked to present a
+%D preview, like the first frame of a movie.
+
+\installspecial [\dogetfiguresize][or] [0] % now a special
+\installspecial [\doinsertfile] [or] [0] % [9]
+\installspecial [\doinsertMPfile] [or] [1] % speed up
+
+%D No start||stop construction is needed here, because there in
+%D no further interference of \TEX. All dimensions are output
+%D in points and scales as a number, where 100 equal 100\%. (We
+%D used to pass scaled points).
+
+%D \macros
+%D {doinsertsoundtrack}
+%D
+%D Sounds are (for the moment) just files with
+%D associated options.
+%D
+%D \starttyping
+%D \doinsertsoundtrack {file} {label} {options}
+%D \stoptyping
+
+\installspecial [\doinsertsoundtrack] [or] [3]
+
+%D \macros
+%D {dogetnofinsertpages}
+%D
+%D Some file formats support more than one page, like \PDF,
+%D and for special applications, one may want to have access
+%D to the total number of pages.
+%D
+%D \starttyping
+%D \dogetnofinsertpages{filename}
+%D \stoptyping
+%D
+%D The number is also available after the insert is placed,
+%D since inclusion may take place immediate when an insert is
+%D called upon.
+
+\def\nofinsertpages{1} % one of the few 'talk backs'
+
+\installspecial [\dogetnofinsertpages] [or] [1]
+
+%D \macros
+%D {dostartrotation,
+%D dostoprotation}
+%D
+%D We support rotation with the special:
+%D
+%D \starttyping
+%D \dostartrotation {angle} ... \dostoprotation
+%D \stoptyping
+%D
+%D For the moment these specials are installed as
+%D category \type{or}.
+
+\installspecial [\dostartrotation] [or] [1]
+\installspecial [\dostoprotation] [or] [0]
+
+%D \macros
+%D {dostartscaling,
+%D dostopscaling}
+%D
+%D Scaling is also supported:
+%D
+%D \starttyping
+%D \dostartscaling {x} {y} ... \dostopscaling
+%D \stoptyping
+%D
+%D Like the previous one, these specials are of category
+%D \type{or}.
+
+\installspecial [\dostartscaling] [or] [2]
+\installspecial [\dostopscaling] [or] [0]
+
+%D \macros
+%D {dostartmirroring,
+%D dostopmirroring}
+%D
+%D And indeed, mirroring is there too:
+%D
+%D \starttyping
+%D \dostartmirroring {x} {y} ... \dostopmirroring
+%D \stoptyping
+%D
+%D Again these specials are installed as category \type{or}.
+
+\installspecial [\dostartmirroring] [or] [0]
+\installspecial [\dostopmirroring] [or] [0]
+
+%D \macros
+%D {dostartnegative,
+%D dostopnegative}
+%D
+%D When producing output for an image setter, negating the
+%D page comes into view. Here are the tools:
+
+\installspecial [\dostartnegative] [or] [0]
+\installspecial [\dostopnegative] [or] [0]
+
+%D \macros
+%D {dostartoverprint,
+%D dostopoverprint}
+%D
+%D Rudimentary overprint (knockout) control is implemented
+%D using:
+
+\installspecial [\dostartoverprint] [or] [0]
+\installspecial [\dostopoverprint] [or] [0]
+
+%D The following two specials are used in for instance \type
+%D {\vadjust}'d margin material inside colored paragraphs.
+
+\installspecial [\dostartgraphicgroup] [or] [0]
+\installspecial [\dostopgraphicgroup ] [or] [0]
+
+%D \macros
+%D {doselectfirstpaperbin,
+%D doselectsecondpaperbin}
+%D
+%D Here are some very printer||specific ones. No further
+%D comment.
+
+\installspecial [\doselectfirstpaperbin] [or] [0]
+\installspecial [\doselectsecondpaperbin] [or] [0]
+
+%D \macros
+%D {doovalbox}
+%D
+%D When we look at the implementation, this is a complicated
+%D one. There are seven arguments.
+%D
+%D \starttyping
+%D \doovalbox {w} {h} {d} {linewidth} {radius} {stroke} {fill} {variant}
+%D \stoptyping
+%D
+%D This command has to return a \type{\vbox} which can be used
+%D to lay over another one (with text). The radius is in
+%D degrees, the stroke and fill are~\type{1} (true) of~\type{0}
+%D (false).
+
+\installspecial [\doovalbox] [or] [8]
+
+%D \macros
+%D {dostartclipping,dostopclipping}
+%D
+%D Clipping is implemented in such a way that an arbitrary
+%D can be fed.
+%D
+%D \starttyping
+%D \dostartclipping {pathname}{width} {height}
+%D \dostopclipping
+%D \stoptyping
+%D
+%D
+
+\installspecial [\dostartclipping] [or] [3]
+\installspecial [\dostopclipping] [or] [0]
+
+%D \macros
+%D {dosetupidentity}
+%D
+%D We can declare some characteristics of the document with
+%D
+%D \starttyping
+%D \dosetupidentity {title} {subject} {author} {creator} {date} {keys}
+%D \stoptyping
+%D
+%D All data is in string format.
+
+\installspecial [\dosetupidentity] [and] [6]
+
+%D \macros
+%D {dosetuppaper}
+%D
+%D This special can be used to tell the driver what page size
+%D to use. The special takes three arguments.
+%D
+%D \starttyping
+%D \dosetuppaper {type} {width} {height}
+%D \stoptyping
+%D
+%D The type is one of the common identifiers, like A4, A5 or
+%D B2.
+
+\installspecial [\dosetuppaper] [and] [3]
+
+%D \macros
+%D {dosetupprinter}
+%D
+%D Some drivers enable the user to specify the paper type
+%D used and/or page dimensions to be taken into account.
+%D
+%D \starttyping
+%D \dosetupprinter {type} {hoffset} {voffset} {width} {height}
+%D \stoptyping
+%D
+%D The first argument is one of \type{letter}, \type{legal},
+%D \type{A4}, \type{A5} etc. The dimensions are in
+%D basepoints.
+
+\installspecial [\dosetupprinter] [and] [5]
+
+%D \macros
+%D {dosetupopenaction, dosetupclosaction,
+%D dosetupopenpageaction, dosetupclospageaction,
+%D dosetupinteraction,
+%D dosetupscreen,
+%D dosetupviewmode}
+%D
+%D Here come some obscure interactive commands. Probably the
+%D specs will change with the development of the macros that
+%D use them.
+%D
+%D The first ones can be used to set up the interaction.
+%D
+%D \starttyping
+%D \dosetupinteraction
+%D \stoptyping
+%D
+%D Normally this command does nothing but giving a message
+%D that some scheme is supported.
+%D
+%D \starttyping
+%D \dosetupstartaction
+%D \dosetupstopaction
+%D \stoptyping
+%D
+%D These two setup the actions to be executed when the document
+%D is opened and closed.
+%D
+%D The next commands sets up the page and screen. They are
+%D kind of related.
+%D
+%D \starttyping
+%D \dosetuppage {hoffset} {voffset} {width} {height} {options}
+%D \dosetupscreen {hoffset} {voffset} {width} {height} {options}
+%D \stoptyping
+%D
+%D The first four arguments are in points. Option~1 results in a
+%D full screen launch.
+%D
+%D \starttyping
+%D \dosetuppageview {keyword}
+%D \stoptyping
+%D
+%D For the moment we only support \type{fit}.
+
+\installspecial [\dosetupinteraction] [and] [0]
+
+\installspecial [\dosetupopenaction] [and] [0]
+\installspecial [\dosetupscreen] [and] [5]
+\installspecial [\dosetuppageview] [and] [1]
+
+\installspecial [\dosetupcloseaction] [and] [0]
+\installspecial [\dosetupopenpageaction] [and] [0]
+\installspecial [\dosetupclosepageaction] [and] [0]
+\installspecial [\dosetuprenderingopenpageaction] [and] [0]
+\installspecial [\dosetuprenderingclosepageaction] [and] [0]
+
+% new, yet undocumented, replaces \dosetupscreen
+
+\installspecial [\dosetupcropbox] [and] [4]
+\installspecial [\dosetuptrimbox] [and] [4]
+\installspecial [\dosetupartbox] [and] [4]
+\installspecial [\dosetupbleedbox] [and] [4]
+
+%D \macros
+%D {dostarthide,
+%D dostophide}
+%D
+%D Not every part of the screen is suitable for paper. Menus
+%D for instance have no meaning on an non||interactive medium.
+%D These elements are hidden by means of:
+%D
+%D \starttyping
+%D \dostarthide
+%D \dostophide
+%D \stoptyping
+
+\installspecial [\dostarthide] [or] [0]
+\installspecial [\dostophide] [or] [0]
+
+%D \macros
+%D {dostartgotolocation, dostopgotolocation,
+%D dostartgotorealpage, dostopgotorealpage}
+%D
+%D When we want to support hypertext buttons, again we have
+%D to deal with two concepts.
+%D
+%D \startitemize[packed,n]
+%D \item let \TEX\ highlight the text
+%D \item let the driver show us where to click
+%D \stopitemize
+%D
+%D The first approach is the most secure one. It gives us
+%D complete control over the visual appearance of hyper
+%D buttons. The second alternative lets the driver guess what
+%D part of the text needs highlighting. As long as we deal with
+%D not too complicated textual buttons, this is no problem.
+%D It's even a bit more efficient when we take long mid
+%D paragraph active regions into account. When we let \TEX\
+%D handle active sentences {\em for instance marked like this
+%D one}, we have to take care of line- and pagebreaks ourselve.
+%D However, it's no trivial matter to let a driver find out
+%D where things begin and end. Because most hyperlinks can be
+%D found in tables of contents and registers, the saving in
+%D terms of bytes can be neglected and the first approach is a
+%D clear winner.
+%D
+%D The most convenient way of cross||referencing is using named
+%D destinations. A more simple scheme is using page numbers as
+%D destinations. Because the latter alternative can often be
+%D implemented more efficient, and because we cannot be sure
+%D what scheme a driver supports, we always have to supply a
+%D pagenumber, even when we use named destinations.
+%D
+%D To enable a driver to find out what to make active, we have
+%D to provide begin and endpoints, so like with color, we use
+%D pairs of specials. The first scheme can be satisfied with
+%D proper dimensions of the areas to be made active.
+%D
+%D The interactive real work is done by the following four
+%D specials. The reason for providing the first one with both
+%D a label and a number, is a result of the quite poor
+%D implementation of \type{pdfmarks} in version 1.0 of
+%D Acrobat. Because only pagenumbers were supported as
+%D destination, we had to provide both labels (\DVIWINDO) and
+%D pagenumbers (\PDF). Some drivers use start stop pairs.
+%D
+%D \starttyping
+%D \dostartgotolocation {w} {h} {url} {file} {label} {page}
+%D \dostartgotorealpage {w} {h} {url} {file} {page}
+%D \stoptyping
+%D
+%D Their counterparts are:
+%D
+%D \starttyping
+%D \dostopgotolocation
+%D \dostopgotorealpage
+%D \stoptyping
+%D
+%D The internal alternative is used for system||generated
+%D links, the external one for user||generated links. The
+%D Uniform Resource Locator can be used to let the reader
+%D surf the net.
+
+\installspecial [\dostartgotolocation] [and] [6]
+\installspecial [\dostopgotolocation] [and] [0]
+\installspecial [\dostartgotorealpage] [and] [5]
+\installspecial [\dostopgotorealpage] [and] [0]
+
+%D One may wonder why jumps to page and location are not
+%D combined. By splitting them, we enable macro||packages to
+%D force the prefered alternative, while on the other hand
+%D drivers can pick up the alternative desired most.
+
+%D \macros
+%D {dostartgotoJS, doflushJSpreamble}
+%D
+%D Rather special is the option to include and execute
+%D JavaScript code. This is a typical \PDF\ option.
+%D
+%D \starttyping
+%D \dostartgotoJS {w} {h} {script}
+%D \stoptyping
+%D
+%D This not so standard \TEX\ feature should be used with
+%D care. Preamble scripts are flushed by
+%D
+%D \doflushJSpreamble {script}
+
+\installspecial [\dostartgotoJS] [and] [3]
+\installspecial [\dostopgotoJS] [and] [0]
+\installspecial [\doflushJSpreamble][and] [1]
+
+%D \macros
+%D {dostartthisislocation, dostopthisislocation,
+%D dostartthisisrealpage, dostopthisisrealpage}
+%D
+%D Before we can goto some location or page, we have to tell
+%D the system where it can be found. Because some drivers
+%D follow the \SGML\ approach of begin||end tags, we have to
+%D support pairs. A possible extension to this scheme is
+%D supplying coordinates for viewing the text.
+%D
+%D The opposite commands of \type{\dogotosomething} have only
+%D one argument:
+%D
+%D \starttyping
+%D \dostartthisislocation {label}
+%D \dostartthisisrealpage {page}
+%D \stoptyping
+%D
+%D These commands are accompanied by:
+%D
+%D \starttyping
+%D \dostopthisislocation
+%D \dostopthisisrealpage
+%D \stoptyping
+%D
+%D As with all interactive commands's they are installed as
+%D \type{and} category specials.
+
+\installspecial [\dostartthisislocation] [and] [1]
+\installspecial [\dostopthisislocation] [and] [0]
+\installspecial [\dostartthisisrealpage] [and] [1]
+\installspecial [\dostopthisisrealpage] [and] [0]
+
+%D In \CONTEXT\ we don't use the \type{\stopsomething}
+%D macros because we let \TEX\ take care of typographic
+%D issues.
+
+%D \macros
+%D {doresetgotowhereever}
+%D
+%D These and others need:
+
+\installspecial [\doresetgotowhereever] [and] [0]
+
+%D \macros
+%D {dostartexecutecommand, dostopexecutecommand}
+%D
+%D The actual behavior of the next pair of commands depends
+%D much on the viewing engine. Therefore one cannot depend
+%D too much on their support.
+%D
+%D \starttyping
+%D \dostartexecutecommand {w} {h} {command} {options}
+%D \stoptyping
+%D
+%D At least the next commands are supported (more examples
+%D can be found in \type {spec-fdf.tex}:
+%D
+%D \startlinecorrection\setupalign[middle]\leavevmode
+%D \starttable[|l|l|]
+%D \HL
+%D \NC \bf command \NC \bf action \NC\SR
+%D \HL
+%D \NC first \NC go to the first page \NC\FR
+%D \NC previous \NC go to the previous page \NC\MR
+%D \NC next \NC go to the next page \NC\MR
+%D \NC last \NC go to the last page \NC\MR
+%D \NC backward \NC go back to the link list \NC\MR
+%D \NC forward \NC go forward in the link list \NC\MR
+%D \NC print \NC enter print mode \NC\MR
+%D \NC exit \NC exit viewer \NC\MR
+%D \NC close \NC close document \NC\MR
+%D \NC enter \NC enter viewer \NC\MR
+%D \NC help \NC show help on the viewer \NC\LR
+%D \HL
+%D \stoptable
+%D \stoplinecorrection
+%D
+%D Options are to be passed as a comma separated list of
+%D assignments.
+
+\installspecial [\dostartexecutecommand] [and] [4]
+\installspecial [\dostopexecutecommand] [and] [0]
+
+%D \macros
+%D {dostartobject,
+%D dostopobject,
+%D doresetobjects,
+%D doinsertobject}
+%D
+%D Reuse of object can reduce the output filesize
+%D considerably. Reusable objects are implemented with:
+%D
+%D \starttyping
+%D \dostartobject{class}{name}{width}{height}{depth}
+%D some typeset material
+%D \dostopobject
+%D \stoptyping
+%D
+%D \starttyping
+%D \doinsertobject{class}{name}
+%D \stoptyping
+%D
+%D The savings can be huge in interactive texts. The next macro needs
+%D to be called after a graphic is inserted (in order to clean up
+%D global references).
+%D
+%D \starttyping
+%D \doresetobjects
+%D \stoptyping
+
+\installspecial [\dostartobject] [or] [5]
+\installspecial [\dostopobject] [or] [0]
+\installspecial [\doinsertobject] [or] [2]
+\installspecial [\doresetobjects] [or] [0]
+
+%D \macros
+%D {doregisterfigure, doregisterfigurecolor}
+%D
+%D Images can be objects as well and it's up to the driver to
+%D handle this. Alternative images are also up to the driver,
+%D and the next macro tells the driver that the previous image
+%D is somehow followed by another and that both have to be
+%D handled together. This is a rather fuzzy model, but for the
+%D moment it suits its purpose: low res screen versions combined
+%D with high res printable ones.
+
+\installspecial [\doregisterfigure] [or] [2]
+\installspecial [\doregisterfigurecolor][or] [1]
+
+% %D \macros
+% %D {dogetobjectreference}
+% %D
+% %D For very special purposes, one can ask for the internal
+% %D reference to the object. Beware!
+%
+% \installspecial [\dogetobjectreference] [or] [3]
+%
+% %D The first argument is the name, the second a macro that
+% %D gets the associated value.
+
+%D \macros
+%D {dostartrunprogram, dostoprunprogram,
+%D dostartgotoprofile, dostopgotoprofile,
+%D dobeginofprofile,
+%D doendofprofile}
+%D
+%D These specials are still experimental. They are not yet
+%D supported by the programs the way they should be.
+%D
+%D {\em --- still undocumented ---}
+
+\installspecial [\dostartrunprogram] [and] [4]
+\installspecial [\dostoprunprogram] [and] [0]
+\installspecial [\dostartgotoprofile] [and] [3]
+\installspecial [\dostopgotoprofile] [and] [0]
+\installspecial [\dobeginofprofile] [and] [4]
+\installspecial [\doendofprofile] [and] [0]
+
+%D \macros
+%D {doinsertbookmark}
+%D
+%D Bookmarks, that is viewer generated tables of contents, are
+%D a strange phenomena, mainly because \TEX\ can provide
+%D whatever kind of table in much better quality.
+
+\installspecial [\doinsertbookmark] [and] [5]
+
+%D This special is called as:
+%D
+%D \starttyping
+%D \doinstallbookmark {level} {nofsubentries} {text} {page} {open}
+%D \stoptyping
+%D
+%D This definition is very \PDF\ oriented, so for more
+%D information we kindly refer to the \PDF\ manuals.
+
+%D \macros
+%D {dosetpagetransition}
+%D
+%D In presentations, fancy page transitions can, at least for a
+%D short moment, let the audience focus at the screen. Like the
+%D previous one, this special is very \PDF.
+%D
+%D \starttyping
+%D \dosetpagetransition{dissolve}{0}
+%D \stoptyping
+%D
+%D Transitions have symbolic names, like dissolve, box, split,
+%D blinds, wipe and glitter. The second argument determines
+%D the wait time (unless zero).
+
+\installspecial [\dosetpagetransition] [or] [2]
+
+%D \macros
+%D {dopresettextfield,dopresetlinefield,
+%D dopresetchoicefield,dopresetpopupfield,dopresetcombofield,
+%D dopresetbuttonfield,dopresetcheckfield,
+%D dopresetradiofield,dopresetradiorecord}
+%D
+%D The special drivers are programmed independant from their
+%D calling macros are thereby use the standard \TEX\ way of
+%D passing parameters. Unfortunately fields often have more
+%D than nine characteristics, so we pack some arguments in one.
+%D
+%D \starttyping
+%D \dopresettextfield / \dopresetlinefield
+%D {name} {width} {height} {default} {length}
+%D {style,color} {options} {alignment} {actions}
+%D
+%D \dopresetchoicefield / \dopresetpopupfield / \dopresetcombofield
+%D {name} {width} {height} {default}
+%D {style,color} {options} {values} {actions}
+%D
+%D \dopresetpushfield
+%D {name} {width} {height} {default}
+%D {options} {values} {actions}
+%D
+%D \dopresetcheckfield
+%D {name} {width} {height} {default}
+%D {options} {values} {actions}
+%D
+%D \dopresetradiofield
+%D {name} {width} {height} {default}
+%D {options} {parent} {values} {actions}
+%D
+%D \dopresetradiorecord
+%D {name} {top} {options} {kids} {actions}
+%D \stoptyping
+
+\installspecial [\dopresetlinefield] [or] [9]
+\installspecial [\dopresettextfield] [or] [9]
+\installspecial [\dopresetchoicefield] [or] [8]
+\installspecial [\dopresetpopupfield] [or] [8]
+\installspecial [\dopresetcombofield] [or] [8]
+\installspecial [\dopresetpushfield] [or] [7]
+\installspecial [\dopresetcheckfield] [or] [7]
+\installspecial [\dopresetradiofield] [or] [8]
+\installspecial [\dopresetradiorecord] [or] [5]
+
+%D \macros
+%D {dodefinefieldset,dogetfieldset,doiffieldset}
+%D
+%D Field sets, used in resetting and submitting, are handled
+%D by:
+
+\installspecial [\dodefinefieldset] [or] [2]
+\installspecial [\dogetfieldset] [or] [1]
+\installspecial [\doiffieldset] [or] [2]
+
+%D \macros
+%D {dosetfieldstatus}
+%D
+%D For practical reasons we set some field characteristics
+%D using:
+%D
+%D \starttyping
+%D \dosetfieldstatus {mode} {parent} {kids} {root}
+%D \stoptyping
+
+\installspecial [\dosetfieldstatus] [or] [4]
+
+%D with:
+
+\def\fieldlonermode {0} % no \chardef here
+\def\fieldparentmode{1} % no \chardef here
+\def\fieldchildmode {2} % no \chardef here
+\def\fieldcopymode {3} % no \chardef here
+
+%D \macros
+%D {doregistercalculationset}
+%D
+%D We can define a calculation order list with:
+%D
+%D \starttyping
+%D \doregistercalculationset {set identifier}
+%D \stoptyping
+
+\installspecial [\doregistercalculationset] [or] [1]
+
+%D \macros
+%D {doinsertcomment, doflushcomments}
+%D
+%D Not so much out of need, but to be complete, we also
+%D implement text annotations, so called comment:
+%D
+%D \starttyping
+%D \doinsertcomment
+%D {title} {width} {height} {color} {open} {symbol} {collect} {data}
+%D \stoptyping
+%D
+%D When enables, comments can be collected and flushed:
+%D
+%D \starttyping
+%D \doflushcomments
+%D \stoptyping
+
+\installspecial[\doinsertcomment] [and] [8]
+\installspecial[\doflushcomments] [and] [0]
+
+%D \macros
+%D {dosetposition, dosetpositionwhd, dosetpositionplus,
+%D dosetpositionpapersize}
+%D
+%D Not natural to \TEX, but available in \PDFTEX, and by
+%D means of postprocessed \DVI, we can save and call upon
+%D positions.
+%D
+%D \starttyping
+%D \dosetposition {identifier}
+%D \dosetpositionwhd {identifier} {width} {height} {depth}
+%D \dosetpositionplus {identifier} {width} {height} {depth} {list}
+%D \dosetpositionpapersize {width} {height}
+%D \stoptyping
+%D
+%D This is one of the few specials where when using \PDFTEX\
+%D the driver directly deals with the utility file.
+
+%D Support is moved to spec-mis.tex. The whole idea originates
+%D and was implemented first in \PDFTEX. Later \DVIPDFMX\
+%D supported the \CONTEXT\ specific specials and nowadays
+%D \PDFTEX\ supports this feature in \DVI\ mode and \XETEX\
+%D implements it as well. This means that only \ALEPH\ is
+%D still dependent on specials, but that variant of \TEX\ has
+%D become obsolete anyway.
+
+% \installspecial [\dosetposition] [or] [1]
+% \installspecial [\dosetpositionwhd] [or] [4]
+% \installspecial [\dosetpositionplus] [or] [5]
+
+% \installspecial [\dosetpositionpapersize] [or] [2]
+
+%D \macros
+%D {dostarttransparency,dostoptransparency}
+%D
+%D \starttyping
+%D \dostarttransparency{fraction}{type}
+%D \dostoptransparency
+%D \stoptyping
+%D
+%D Although in \CONTEXT\ transparency is closely integrated
+%D in the color drivers, in the end it is an independent
+%D feature.
+
+\installspecial [\dostarttransparency] [or] [2]
+\installspecial [\dostoptransparency] [or] [0]
+
+%D \macros
+%D {doattachfile}
+%D
+%D \starttyping
+%D \doattachfile{title}{width}{height}{depth}{color}{symbol}{filename}{source}
+%D \stoptyping
+
+\installspecial [\doattachfile] [or] [8]
+
+%D Experimental (properties):
+
+\installspecial[\dostartviewerlayer] [or] [1]
+\installspecial[\dostopviewerlayer] [or] [0]
+\installspecial[\dodefineviewerlayer] [or] [5]
+%installspecial[\doflushviewertextlayers] [or] [0]
+%installspecial[\doflushviewerpagelayers] [or] [0]
+\installspecial[\domakeviewerlayerlist] [or] [1]
+
+\installspecial[\doinsertrenderingwindow] [or] [4]
+\installspecial[\doinsertrendering] [or] [4]
+\installspecial[\doinsertrenderingobject] [or] [4]
+\installspecial[\doinsertrenderingobject] [or] [4]
+
+\installspecial[\dostartfonteffect] [or] [3]
+\installspecial[\dostopfonteffect] [or] [0]
+
+%D From now on, mapfile loading is also a special; we assume the
+%D more or less standard dvips syntax.
+
+\installspecial[\doresetmapfilelist] [and] [0]
+\installspecial[\doloadmapfile] [and] [2] % + - = | filename
+\installspecial[\doloadmapline] [and] [2] % + - = | fileline
+
+%D We define a couple of backends:
+
+\defineoutput [dvipsone] [dvi,ps,yy]
+\defineoutput [dviwindo] [dvi,ps,yy,win]
+\defineoutput [dvips] [dvi,ps,tr]
+\defineoutput [dviview] [dvi,ps,tr,dv]
+\defineoutput [pdftex] [tpd]
+\defineoutput [pdf] [tpd]
+\defineoutput [dvipdfm] [dpm]
+\defineoutput [dpm] [dpm]
+\defineoutput [dvipdfmx] [dpx]
+\defineoutput [dpx] [dpx]
+\defineoutput [acrobat] [pdf,ps,tr]
+
+\defineoutput [xetex] [dpx,xet]
+\defineoutput [xtx] [dpx,xet]
+\defineoutput [xdv] [dvi,xtx,xet]
+\defineoutput [xdv2pdf] [dvi,xtx,xet]
+
+%D We don't enable \ACROBAT, because pure \POSTSCRIPT\ is not
+%D that strong on objects and \PDFTEX\ does a better job.
+%D Some reasonable alternatives are:
+%D
+%D \starttyping
+%D \setupoutput [dvipsone,acrobat]
+%D \setupoutput [dviwindo,acrobat]
+%D \stoptyping
+%D
+%D Although, better is:
+%D
+%D \starttyping
+%D \setupoutput [pdftex]
+%D \stoptyping
+
+%D Please let me know if we need more. From now on we default
+%D to:
+
+\appendtoks
+ \setupoutput[dvips]%
+\to \everydump
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/spec-def.mkiv b/Master/texmf-dist/tex/context/base/spec-def.mkiv
deleted file mode 100644
index 82e12186476..00000000000
--- a/Master/texmf-dist/tex/context/base/spec-def.mkiv
+++ /dev/null
@@ -1,19 +0,0 @@
-%D \module
-%D [ file=spec-def,
-%D version=2006.09.18,
-%D title=\CONTEXT\ Special Macros,
-%D subtitle=Definitions,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D We load the lua scripts here because we don't want to load
-%D them multiple times.
-
-\registerctxluafile{spec-pdf}{1.001}
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/spec-def.tex b/Master/texmf-dist/tex/context/base/spec-def.tex
deleted file mode 100644
index fcffbefde8d..00000000000
--- a/Master/texmf-dist/tex/context/base/spec-def.tex
+++ /dev/null
@@ -1,1011 +0,0 @@
-%D \module
-%D [ file=spec-def,
-%D version=1996.01.25,
-%D title=\CONTEXT\ Special Macros,
-%D subtitle=Definitions,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This module used to be integrated in \type {spec-ini},
-%D but testing optimization is more convenient this way.
-
-\writestatus{loading}{Context Special Macros / Definitions}
-
-\unprotect
-
-%D The following libraries are defined. Two postscript
-%D drivers are supported, as well as two mechanisms for
-%D interactive texts.
-%D
-%D \startlinecorrection
-%D \starttable[|l|l|l|l|l|]
-%D \HL
-%D \NC \bf file \NC
-%D \bf name \NC
-%D \bf calls \NC
-%D \bf support \NC
-%D \bf program / driver \NC\SR
-%D \HL
-%D \NC \tttf spec-tex \NC
-%D \tttf tex \NC
-%D \NC
-%D Generic \TEX\ (\DVI) \NC
-%D (default) \NC\FR
-%D \NC \tttf spec-tpd \NC
-%D \tttf \PDF \NC
-%D \NC
-%D Han The Thanh \NC
-%D (pdftex) \NC\MR
-%D \NC \tttf spec-ps \NC
-%D \tttf postscript \NC
-%D \NC
-%D Adobe PostScript \NC
-%D (default) \NC\MR
-%D \NC \tttf spec-tr \NC
-%D \tttf rokicki \NC
-%D \tttf postscript \NC
-%D Thomas Rokicki \NC
-%D (dvips) \NC\MR
-%D \NC \tttf spec-yy \NC
-%D \tttf yandy \NC
-%D \tttf postscript \NC
-%D YandY \NC
-%D (dvipsone, dviwindo) \NC\MR
-%D \NC \tttf spec-pdf \NC
-%D \tttf pdf \NC
-%D \NC
-%D Adobe PDF \NC
-%D (Acrobat) \NC\MR
-%D \NC \tttf spec-win \NC
-%D \tttf dviwindo \NC
-%D YandY \NC
-%D (dviwindo) \NC\MR
-%D \NC \tttf spec-htm \NC
-%D \tttf html \NC
-%D \NC
-%D HTML V 2.0 \NC
-%D (dvips) \NC\LR
-%D \HL
-%D \stoptable
-%D \stoplinecorrection
-
-%D \macros
-%D {dostartgraymode,dostopgraymode,
-%D dostartrgbcolormode,dostartcmykcolormode,dostartgraycolormode,dostopcolormode}
-%D
-%D Switching to and from color can be done in two ways:
-%D
-%D \startitemize[packed,n]
-%D \item insert driver specific commands
-%D \item pass instructions to the output device
-%D \stopitemize
-%D
-%D The first approach is more general and lays the
-%D responsibility at the driver side. Probably due to the fact
-%D that \TEX\ does not directly support color, we have been
-%D confronted for the last few years with changing special
-%D definitions. The need for support depends on how a macro
-%D package handles colored text that crosses the page boundary.
-%D Again, there are two approaches.
-%D
-%D \startitemize[packed,n]
-%D \item let \TEX\ do the job
-%D \item let the driver handle things
-%D \stopitemize
-%D
-%D The first approach is as driver independant as possible and
-%D can easily be accomplished by using \TEX's mark mechanism.
-%D In \CONTEXT\ we follow this approach. More and more, drivers
-%D are starting to support color, including stacking them.
-%D
-%D Colors as well as grayscales can be represented in scales
-%D from~0 to~1. When drivers use values in the range 0..255,
-%D this value has to be adapted in the translation process.
-%D Technically it's possible to get a grayscale from combining
-%D colors. In the \cap{RGB} color system, a color with Red,
-%D Green and Blue components of 0.80 show the same gray as a
-%D Gray Scale specified 0.80. The \cap{CMYK} color system
-%D supports a Black component apart from Cyan, Magenta and
-%D Yellow.
-%D
-%D Depending on the target format, color support differs from
-%D gray support. PostScript for example offers different
-%D operators for setting gray and color. This is because
-%D printing something using three colors is someting else than
-%D printing with just black.
-%D
-%D In \CONTEXT\ we have implemented a color subsystem that
-%D supports the use of well defined colors that, when printed
-%D in black and white, still can be distinguished. This
-%D approach enables us to serve both printed and electronic
-%D versions, using colored text and illustrations. More on the
-%D fundamentals of this topic can be found in the \cap{MAPS} of
-%D the Dutch User Group, 14 (95.1).
-%D
-%D To satisfy all those needs, we define four specials which
-%D supply enough information for drivers to act upon. We
-%D could have used more general commands with the keywords
-%D 'rgb' and 'gray', but because these specials are used often,
-%D we prefer the more direct and shorter alternative.
-%D
-%D We start with the installation of color and grayscale
-%D specials. The values are in the range 0..1 (e.g. 0.25).
-%D
-%D \starttyping
-%D \dostartgraymode {gray} ... \dostopgraymode
-%D \dostartrgbcolormode {red} {green} {blue} ... \dostopcolormode
-%D \dostartcmykcolormode {cyan} {magenta} {yellow} {black} ... \dostopcolormode
-%D \dostartgraycolormode {gray} ... \dostopcolormode
-%D \stoptyping
-%D
-%D Because we can expect conflicts between drivers, we
-%D implement them as category \type{or}. In previous versions
-%D of \DVIPSONE\ the use of their color||specials did not
-%D interfere with the PostScript ones, but recent versions do.
-
-\installspecial [\dostartgraymode] [or] [1]
-\installspecial [\dostopgraymode] [or] [0]
-
-\installspecial [\dostartrgbcolormode] [or] [3]
-\installspecial [\dostartcmykcolormode] [or] [4]
-\installspecial [\dostartgraycolormode] [or] [1]
-\installspecial [\dostopcolormode] [or] [0]
-
-%D New and experimental:
-
-\installspecial [\dostartspotcolormode] [or] [2]
-
-\installspecial [\doregisterrgbspotcolor] [or] [7]
-\installspecial [\doregistercmykspotcolor] [or] [8]
-\installspecial [\doregistergrayspotcolor] [or] [5]
-
-\installspecial [\doregisterrgbindexcolor] [or] [7]
-\installspecial [\doregistercmykindexcolor] [or] [8]
-\installspecial [\doregistergrayindexcolor] [or] [5]
-
-\installspecial [\doregisterspotcolorname] [or] [2]
-
-\installspecial [\dostartnonecolormode] [or] [0]
-\installspecial [\doregisternonecolor] [or] [0]
-
-%D For some drivers, the stop special is of no use and can
-%D simply call the start one with zero arguments.
-
-%D \macros
-%D {dogetfiguresize,doinsertfile,doinsertMPfile}
-%D
-%D Probably the most problematic special is the following
-%D one. Because we want to be able to support different
-%D schemes, we pass a lot of data to it.
-%D
-%D The support of inserting files (like illustrations) comes in
-%D many flavors. Some drivers use scales, some take dimensions.
-%D Some need offsets and others act on stored characteristics.
-%D They need one thing in common: a filename. Although separate
-%D specials for different formats sometimes are more clear, we
-%D decided to combine them all in one:
-%D
-%D \starttyping
-%D \doinsertfile {type,method} {file,label}
-%D {xscale} {yscale} {x} {y} {w} {h}
-%D {options}
-%D \stoptyping
-%D
-%D The scale is given percents, the other values are base
-%D points.
-%D
-%D Per 2006 we have simplified this model. The amount of drivers
-%D is not growing and all support scaling. We pass variables via
-%D Driver specific macros.
-%D
-%D \starttyping
-%D \doinsertfile
-%D \stoptyping
-%D
-%D The special is implemented as \type{or}. Because \DVIPSONE\
-%D understands them all, a chain of alternatives would generate
-%D multiple occurrences of the same illustration.
-%D
-%D When option 1 is passed, the viewers is asked to present a
-%D preview, like the first frame of a movie.
-
-\installspecial [\dogetfiguresize][or] [0] % now a special
-\installspecial [\doinsertfile] [or] [0] % [9]
-\installspecial [\doinsertMPfile] [or] [1] % speed up
-
-%D No start||stop construction is needed here, because there in
-%D no further interference of \TEX. All dimensions are output
-%D in points and scales as a number, where 100 equal 100\%. (We
-%D used to pass scaled points).
-
-%D \macros
-%D {doinsertsoundtrack}
-%D
-%D Sounds are (for the moment) just files with
-%D associated options.
-%D
-%D \starttyping
-%D \doinsertsoundtrack {file} {label} {options}
-%D \stoptyping
-
-\installspecial [\doinsertsoundtrack] [or] [3]
-
-%D \macros
-%D {dogetnofinsertpages}
-%D
-%D Some file formats support more than one page, like \PDF,
-%D and for special applications, one may want to have access
-%D to the total number of pages.
-%D
-%D \starttyping
-%D \dogetnofinsertpages{filename}
-%D \stoptyping
-%D
-%D The number is also available after the insert is placed,
-%D since inclusion may take place immediate when an insert is
-%D called upon.
-
-\def\nofinsertpages{1} % one of the few 'talk backs'
-
-\installspecial [\dogetnofinsertpages] [or] [1]
-
-%D \macros
-%D {dostartrotation,
-%D dostoprotation}
-%D
-%D We support rotation with the special:
-%D
-%D \starttyping
-%D \dostartrotation {angle} ... \dostoprotation
-%D \stoptyping
-%D
-%D For the moment these specials are installed as
-%D category \type{or}.
-
-\installspecial [\dostartrotation] [or] [1]
-\installspecial [\dostoprotation] [or] [0]
-
-%D \macros
-%D {dostartscaling,
-%D dostopscaling}
-%D
-%D Scaling is also supported:
-%D
-%D \starttyping
-%D \dostartscaling {x} {y} ... \dostopscaling
-%D \stoptyping
-%D
-%D Like the previous one, these specials are of category
-%D \type{or}.
-
-\installspecial [\dostartscaling] [or] [2]
-\installspecial [\dostopscaling] [or] [0]
-
-%D \macros
-%D {dostartmirroring,
-%D dostopmirroring}
-%D
-%D And indeed, mirroring is there too:
-%D
-%D \starttyping
-%D \dostartmirroring {x} {y} ... \dostopmirroring
-%D \stoptyping
-%D
-%D Again these specials are installed as category \type{or}.
-
-\installspecial [\dostartmirroring] [or] [0]
-\installspecial [\dostopmirroring] [or] [0]
-
-%D \macros
-%D {dostartnegative,
-%D dostopnegative}
-%D
-%D When producing output for an image setter, negating the
-%D page comes into view. Here are the tools:
-
-\installspecial [\dostartnegative] [or] [0]
-\installspecial [\dostopnegative] [or] [0]
-
-%D \macros
-%D {dostartoverprint,
-%D dostopoverprint}
-%D
-%D Rudimentary overprint (knockout) control is implemented
-%D using:
-
-\installspecial [\dostartoverprint] [or] [0]
-\installspecial [\dostopoverprint] [or] [0]
-
-%D The following two specials are used in for instance \type
-%D {\vadjust}'d margin material inside colored paragraphs.
-
-\installspecial [\dostartgraphicgroup] [or] [0]
-\installspecial [\dostopgraphicgroup ] [or] [0]
-
-%D \macros
-%D {doselectfirstpaperbin,
-%D doselectsecondpaperbin}
-%D
-%D Here are some very printer||specific ones. No further
-%D comment.
-
-\installspecial [\doselectfirstpaperbin] [or] [0]
-\installspecial [\doselectsecondpaperbin] [or] [0]
-
-%D \macros
-%D {doovalbox}
-%D
-%D When we look at the implementation, this is a complicated
-%D one. There are seven arguments.
-%D
-%D \starttyping
-%D \doovalbox {w} {h} {d} {linewidth} {radius} {stroke} {fill} {variant}
-%D \stoptyping
-%D
-%D This command has to return a \type{\vbox} which can be used
-%D to lay over another one (with text). The radius is in
-%D degrees, the stroke and fill are~\type{1} (true) of~\type{0}
-%D (false).
-
-\installspecial [\doovalbox] [or] [8]
-
-%D \macros
-%D {dostartclipping,dostopclipping}
-%D
-%D Clipping is implemented in such a way that an arbitrary
-%D can be fed.
-%D
-%D \starttyping
-%D \dostartclipping {pathname}{width} {height}
-%D \dostopclipping
-%D \stoptyping
-%D
-%D
-
-\installspecial [\dostartclipping] [or] [3]
-\installspecial [\dostopclipping] [or] [0]
-
-%D \macros
-%D {dosetupidentity}
-%D
-%D We can declare some characteristics of the document with
-%D
-%D \starttyping
-%D \dosetupidentity {title} {subject} {author} {creator} {date} {keys}
-%D \stoptyping
-%D
-%D All data is in string format.
-
-\installspecial [\dosetupidentity] [and] [6]
-
-%D \macros
-%D {dosetuppaper}
-%D
-%D This special can be used to tell the driver what page size
-%D to use. The special takes three arguments.
-%D
-%D \starttyping
-%D \dosetuppaper {type} {width} {height}
-%D \stoptyping
-%D
-%D The type is one of the common identifiers, like A4, A5 or
-%D B2.
-
-\installspecial [\dosetuppaper] [and] [3]
-
-%D \macros
-%D {dosetupprinter}
-%D
-%D Some drivers enable the user to specify the paper type
-%D used and/or page dimensions to be taken into account.
-%D
-%D \starttyping
-%D \dosetupprinter {type} {hoffset} {voffset} {width} {height}
-%D \stoptyping
-%D
-%D The first argument is one of \type{letter}, \type{legal},
-%D \type{A4}, \type{A5} etc. The dimensions are in
-%D basepoints.
-
-\installspecial [\dosetupprinter] [and] [5]
-
-%D \macros
-%D {dosetupopenaction, dosetupclosaction,
-%D dosetupopenpageaction, dosetupclospageaction,
-%D dosetupinteraction,
-%D dosetupscreen,
-%D dosetupviewmode}
-%D
-%D Here come some obscure interactive commands. Probably the
-%D specs will change with the development of the macros that
-%D use them.
-%D
-%D The first ones can be used to set up the interaction.
-%D
-%D \starttyping
-%D \dosetupinteraction
-%D \stoptyping
-%D
-%D Normally this command does nothing but giving a message
-%D that some scheme is supported.
-%D
-%D \starttyping
-%D \dosetupstartaction
-%D \dosetupstopaction
-%D \stoptyping
-%D
-%D These two setup the actions to be executed when the document
-%D is opened and closed.
-%D
-%D The next commands sets up the page and screen. They are
-%D kind of related.
-%D
-%D \starttyping
-%D \dosetuppage {hoffset} {voffset} {width} {height} {options}
-%D \dosetupscreen {hoffset} {voffset} {width} {height} {options}
-%D \stoptyping
-%D
-%D The first four arguments are in points. Option~1 results in a
-%D full screen launch.
-%D
-%D \starttyping
-%D \dosetuppageview {keyword}
-%D \stoptyping
-%D
-%D For the moment we only support \type{fit}.
-
-\installspecial [\dosetupinteraction] [and] [0]
-
-\installspecial [\dosetupopenaction] [and] [0]
-\installspecial [\dosetupscreen] [and] [5]
-\installspecial [\dosetuppageview] [and] [1]
-
-\installspecial [\dosetupcloseaction] [and] [0]
-\installspecial [\dosetupopenpageaction] [and] [0]
-\installspecial [\dosetupclosepageaction] [and] [0]
-\installspecial [\dosetuprenderingopenpageaction] [and] [0]
-\installspecial [\dosetuprenderingclosepageaction] [and] [0]
-
-% new, yet undocumented, replaces \dosetupscreen
-
-\installspecial [\dosetupcropbox] [and] [4]
-\installspecial [\dosetuptrimbox] [and] [4]
-\installspecial [\dosetupartbox] [and] [4]
-\installspecial [\dosetupbleedbox] [and] [4]
-
-%D \macros
-%D {dostarthide,
-%D dostophide}
-%D
-%D Not every part of the screen is suitable for paper. Menus
-%D for instance have no meaning on an non||interactive medium.
-%D These elements are hidden by means of:
-%D
-%D \starttyping
-%D \dostarthide
-%D \dostophide
-%D \stoptyping
-
-\installspecial [\dostarthide] [or] [0]
-\installspecial [\dostophide] [or] [0]
-
-%D \macros
-%D {dostartgotolocation, dostopgotolocation,
-%D dostartgotorealpage, dostopgotorealpage}
-%D
-%D When we want to support hypertext buttons, again we have
-%D to deal with two concepts.
-%D
-%D \startitemize[packed,n]
-%D \item let \TEX\ highlight the text
-%D \item let the driver show us where to click
-%D \stopitemize
-%D
-%D The first approach is the most secure one. It gives us
-%D complete control over the visual appearance of hyper
-%D buttons. The second alternative lets the driver guess what
-%D part of the text needs highlighting. As long as we deal with
-%D not too complicated textual buttons, this is no problem.
-%D It's even a bit more efficient when we take long mid
-%D paragraph active regions into account. When we let \TEX\
-%D handle active sentences {\em for instance marked like this
-%D one}, we have to take care of line- and pagebreaks ourselve.
-%D However, it's no trivial matter to let a driver find out
-%D where things begin and end. Because most hyperlinks can be
-%D found in tables of contents and registers, the saving in
-%D terms of bytes can be neglected and the first approach is a
-%D clear winner.
-%D
-%D The most convenient way of cross||referencing is using named
-%D destinations. A more simple scheme is using page numbers as
-%D destinations. Because the latter alternative can often be
-%D implemented more efficient, and because we cannot be sure
-%D what scheme a driver supports, we always have to supply a
-%D pagenumber, even when we use named destinations.
-%D
-%D To enable a driver to find out what to make active, we have
-%D to provide begin and endpoints, so like with color, we use
-%D pairs of specials. The first scheme can be satisfied with
-%D proper dimensions of the areas to be made active.
-%D
-%D The interactive real work is done by the following four
-%D specials. The reason for providing the first one with both
-%D a label and a number, is a result of the quite poor
-%D implementation of \type{pdfmarks} in version 1.0 of
-%D Acrobat. Because only pagenumbers were supported as
-%D destination, we had to provide both labels (\DVIWINDO) and
-%D pagenumbers (\PDF). Some drivers use start stop pairs.
-%D
-%D \starttyping
-%D \dostartgotolocation {w} {h} {url} {file} {label} {page}
-%D \dostartgotorealpage {w} {h} {url} {file} {page}
-%D \stoptyping
-%D
-%D Their counterparts are:
-%D
-%D \starttyping
-%D \dostopgotolocation
-%D \dostopgotorealpage
-%D \stoptyping
-%D
-%D The internal alternative is used for system||generated
-%D links, the external one for user||generated links. The
-%D Uniform Resource Locator can be used to let the reader
-%D surf the net.
-
-\installspecial [\dostartgotolocation] [and] [6]
-\installspecial [\dostopgotolocation] [and] [0]
-\installspecial [\dostartgotorealpage] [and] [5]
-\installspecial [\dostopgotorealpage] [and] [0]
-
-%D One may wonder why jumps to page and location are not
-%D combined. By splitting them, we enable macro||packages to
-%D force the prefered alternative, while on the other hand
-%D drivers can pick up the alternative desired most.
-
-%D \macros
-%D {dostartgotoJS, doflushJSpreamble}
-%D
-%D Rather special is the option to include and execute
-%D JavaScript code. This is a typical \PDF\ option.
-%D
-%D \starttyping
-%D \dostartgotoJS {w} {h} {script}
-%D \stoptyping
-%D
-%D This not so standard \TEX\ feature should be used with
-%D care. Preamble scripts are flushed by
-%D
-%D \doflushJSpreamble {script}
-
-\installspecial [\dostartgotoJS] [and] [3]
-\installspecial [\dostopgotoJS] [and] [0]
-\installspecial [\doflushJSpreamble][and] [1]
-
-%D \macros
-%D {dostartthisislocation, dostopthisislocation,
-%D dostartthisisrealpage, dostopthisisrealpage}
-%D
-%D Before we can goto some location or page, we have to tell
-%D the system where it can be found. Because some drivers
-%D follow the \SGML\ approach of begin||end tags, we have to
-%D support pairs. A possible extension to this scheme is
-%D supplying coordinates for viewing the text.
-%D
-%D The opposite commands of \type{\dogotosomething} have only
-%D one argument:
-%D
-%D \starttyping
-%D \dostartthisislocation {label}
-%D \dostartthisisrealpage {page}
-%D \stoptyping
-%D
-%D These commands are accompanied by:
-%D
-%D \starttyping
-%D \dostopthisislocation
-%D \dostopthisisrealpage
-%D \stoptyping
-%D
-%D As with all interactive commands's they are installed as
-%D \type{and} category specials.
-
-\installspecial [\dostartthisislocation] [and] [1]
-\installspecial [\dostopthisislocation] [and] [0]
-\installspecial [\dostartthisisrealpage] [and] [1]
-\installspecial [\dostopthisisrealpage] [and] [0]
-
-%D In \CONTEXT\ we don't use the \type{\stopsomething}
-%D macros because we let \TEX\ take care of typographic
-%D issues.
-
-%D \macros
-%D {doresetgotowhereever}
-%D
-%D These and others need:
-
-\installspecial [\doresetgotowhereever] [and] [0]
-
-%D \macros
-%D {dostartexecutecommand, dostopexecutecommand}
-%D
-%D The actual behavior of the next pair of commands depends
-%D much on the viewing engine. Therefore one cannot depend
-%D too much on their support.
-%D
-%D \starttyping
-%D \dostartexecutecommand {w} {h} {command} {options}
-%D \stoptyping
-%D
-%D At least the next commands are supported (more examples
-%D can be found in \type {spec-fdf.tex}:
-%D
-%D \startlinecorrection\setupalign[middle]\leavevmode
-%D \starttable[|l|l|]
-%D \HL
-%D \NC \bf command \NC \bf action \NC\SR
-%D \HL
-%D \NC first \NC go to the first page \NC\FR
-%D \NC previous \NC go to the previous page \NC\MR
-%D \NC next \NC go to the next page \NC\MR
-%D \NC last \NC go to the last page \NC\MR
-%D \NC backward \NC go back to the link list \NC\MR
-%D \NC forward \NC go forward in the link list \NC\MR
-%D \NC print \NC enter print mode \NC\MR
-%D \NC exit \NC exit viewer \NC\MR
-%D \NC close \NC close document \NC\MR
-%D \NC enter \NC enter viewer \NC\MR
-%D \NC help \NC show help on the viewer \NC\LR
-%D \HL
-%D \stoptable
-%D \stoplinecorrection
-%D
-%D Options are to be passed as a comma separated list of
-%D assignments.
-
-\installspecial [\dostartexecutecommand] [and] [4]
-\installspecial [\dostopexecutecommand] [and] [0]
-
-%D \macros
-%D {dostartobject,
-%D dostopobject,
-%D doresetobjects,
-%D doinsertobject}
-%D
-%D Reuse of object can reduce the output filesize
-%D considerably. Reusable objects are implemented with:
-%D
-%D \starttyping
-%D \dostartobject{class}{name}{width}{height}{depth}
-%D some typeset material
-%D \dostopobject
-%D \stoptyping
-%D
-%D \starttyping
-%D \doinsertobject{class}{name}
-%D \stoptyping
-%D
-%D The savings can be huge in interactive texts. The next macro needs
-%D to be called after a graphic is inserted (in order to clean up
-%D global references).
-%D
-%D \starttyping
-%D \doresetobjects
-%D \stoptyping
-
-\installspecial [\dostartobject] [or] [5]
-\installspecial [\dostopobject] [or] [0]
-\installspecial [\doinsertobject] [or] [2]
-\installspecial [\doresetobjects] [or] [0]
-
-%D \macros
-%D {doregisterfigure, doregisterfigurecolor}
-%D
-%D Images can be objects as well and it's up to the driver to
-%D handle this. Alternative images are also up to the driver,
-%D and the next macro tells the driver that the previous image
-%D is somehow followed by another and that both have to be
-%D handled together. This is a rather fuzzy model, but for the
-%D moment it suits its purpose: low res screen versions combined
-%D with high res printable ones.
-
-\installspecial [\doregisterfigure] [or] [2]
-\installspecial [\doregisterfigurecolor][or] [1]
-
-% %D \macros
-% %D {dogetobjectreference}
-% %D
-% %D For very special purposes, one can ask for the internal
-% %D reference to the object. Beware!
-%
-% \installspecial [\dogetobjectreference] [or] [3]
-%
-% %D The first argument is the name, the second a macro that
-% %D gets the associated value.
-
-%D \macros
-%D {dostartrunprogram, dostoprunprogram,
-%D dostartgotoprofile, dostopgotoprofile,
-%D dobeginofprofile,
-%D doendofprofile}
-%D
-%D These specials are still experimental. They are not yet
-%D supported by the programs the way they should be.
-%D
-%D {\em --- still undocumented ---}
-
-\installspecial [\dostartrunprogram] [and] [4]
-\installspecial [\dostoprunprogram] [and] [0]
-\installspecial [\dostartgotoprofile] [and] [3]
-\installspecial [\dostopgotoprofile] [and] [0]
-\installspecial [\dobeginofprofile] [and] [4]
-\installspecial [\doendofprofile] [and] [0]
-
-%D \macros
-%D {doinsertbookmark}
-%D
-%D Bookmarks, that is viewer generated tables of contents, are
-%D a strange phenomena, mainly because \TEX\ can provide
-%D whatever kind of table in much better quality.
-
-\installspecial [\doinsertbookmark] [and] [5]
-
-%D This special is called as:
-%D
-%D \starttyping
-%D \doinstallbookmark {level} {nofsubentries} {text} {page} {open}
-%D \stoptyping
-%D
-%D This definition is very \PDF\ oriented, so for more
-%D information we kindly refer to the \PDF\ manuals.
-
-%D \macros
-%D {dosetpagetransition}
-%D
-%D In presentations, fancy page transitions can, at least for a
-%D short moment, let the audience focus at the screen. Like the
-%D previous one, this special is very \PDF.
-%D
-%D \starttyping
-%D \dosetpagetransition{dissolve}{0}
-%D \stoptyping
-%D
-%D Transitions have symbolic names, like dissolve, box, split,
-%D blinds, wipe and glitter. The second argument determines
-%D the wait time (unless zero).
-
-\installspecial [\dosetpagetransition] [or] [2]
-
-%D \macros
-%D {dopresettextfield,dopresetlinefield,
-%D dopresetchoicefield,dopresetpopupfield,dopresetcombofield,
-%D dopresetbuttonfield,dopresetcheckfield,
-%D dopresetradiofield,dopresetradiorecord}
-%D
-%D The special drivers are programmed independant from their
-%D calling macros are thereby use the standard \TEX\ way of
-%D passing parameters. Unfortunately fields often have more
-%D than nine characteristics, so we pack some arguments in one.
-%D
-%D \starttyping
-%D \dopresettextfield / \dopresetlinefield
-%D {name} {width} {height} {default} {length}
-%D {style,color} {options} {alignment} {actions}
-%D
-%D \dopresetchoicefield / \dopresetpopupfield / \dopresetcombofield
-%D {name} {width} {height} {default}
-%D {style,color} {options} {values} {actions}
-%D
-%D \dopresetpushfield
-%D {name} {width} {height} {default}
-%D {options} {values} {actions}
-%D
-%D \dopresetcheckfield
-%D {name} {width} {height} {default}
-%D {options} {values} {actions}
-%D
-%D \dopresetradiofield
-%D {name} {width} {height} {default}
-%D {options} {parent} {values} {actions}
-%D
-%D \dopresetradiorecord
-%D {name} {top} {options} {kids} {actions}
-%D \stoptyping
-
-\installspecial [\dopresetlinefield] [or] [9]
-\installspecial [\dopresettextfield] [or] [9]
-\installspecial [\dopresetchoicefield] [or] [8]
-\installspecial [\dopresetpopupfield] [or] [8]
-\installspecial [\dopresetcombofield] [or] [8]
-\installspecial [\dopresetpushfield] [or] [7]
-\installspecial [\dopresetcheckfield] [or] [7]
-\installspecial [\dopresetradiofield] [or] [8]
-\installspecial [\dopresetradiorecord] [or] [5]
-
-%D \macros
-%D {dodefinefieldset,dogetfieldset,doiffieldset}
-%D
-%D Field sets, used in resetting and submitting, are handled
-%D by:
-
-\installspecial [\dodefinefieldset] [or] [2]
-\installspecial [\dogetfieldset] [or] [1]
-\installspecial [\doiffieldset] [or] [2]
-
-%D \macros
-%D {dosetfieldstatus}
-%D
-%D For practical reasons we set some field characteristics
-%D using:
-%D
-%D \starttyping
-%D \dosetfieldstatus {mode} {parent} {kids} {root}
-%D \stoptyping
-
-\installspecial [\dosetfieldstatus] [or] [4]
-
-%D with:
-
-\def\fieldlonermode {0} % no \chardef here
-\def\fieldparentmode{1} % no \chardef here
-\def\fieldchildmode {2} % no \chardef here
-\def\fieldcopymode {3} % no \chardef here
-
-%D \macros
-%D {doregistercalculationset}
-%D
-%D We can define a calculation order list with:
-%D
-%D \starttyping
-%D \doregistercalculationset {set identifier}
-%D \stoptyping
-
-\installspecial [\doregistercalculationset] [or] [1]
-
-%D \macros
-%D {doinsertcomment, doflushcomments}
-%D
-%D Not so much out of need, but to be complete, we also
-%D implement text annotations, so called comment:
-%D
-%D \starttyping
-%D \doinsertcomment
-%D {title} {width} {height} {color} {open} {symbol} {collect} {data}
-%D \stoptyping
-%D
-%D When enables, comments can be collected and flushed:
-%D
-%D \starttyping
-%D \doflushcomments
-%D \stoptyping
-
-\installspecial[\doinsertcomment] [and] [8]
-\installspecial[\doflushcomments] [and] [0]
-
-%D \macros
-%D {dosetposition, dosetpositionwhd, dosetpositionplus,
-%D dosetpositionpapersize}
-%D
-%D Not natural to \TEX, but available in \PDFTEX, and by
-%D means of postprocessed \DVI, we can save and call upon
-%D positions.
-%D
-%D \starttyping
-%D \dosetposition {identifier}
-%D \dosetpositionwhd {identifier} {width} {height} {depth}
-%D \dosetpositionplus {identifier} {width} {height} {depth} {list}
-%D \dosetpositionpapersize {width} {height}
-%D \stoptyping
-%D
-%D This is one of the few specials where when using \PDFTEX\
-%D the driver directly deals with the utility file.
-
-%D Support is moved to spec-mis.tex. The whole idea originates
-%D and was implemented first in \PDFTEX. Later \DVIPDFMX\
-%D supported the \CONTEXT\ specific specials and nowadays
-%D \PDFTEX\ supports this feature in \DVI\ mode and \XETEX\
-%D implements it as well. This means that only \ALEPH\ is
-%D still dependent on specials, but that variant of \TEX\ has
-%D become obsolete anyway.
-
-% \installspecial [\dosetposition] [or] [1]
-% \installspecial [\dosetpositionwhd] [or] [4]
-% \installspecial [\dosetpositionplus] [or] [5]
-
-% \installspecial [\dosetpositionpapersize] [or] [2]
-
-%D \macros
-%D {dostarttransparency,dostoptransparency}
-%D
-%D \starttyping
-%D \dostarttransparency{fraction}{type}
-%D \dostoptransparency
-%D \stoptyping
-%D
-%D Although in \CONTEXT\ transparency is closely integrated
-%D in the color drivers, in the end it is an independent
-%D feature.
-
-\installspecial [\dostarttransparency] [or] [2]
-\installspecial [\dostoptransparency] [or] [0]
-
-%D \macros
-%D {doattachfile}
-%D
-%D \starttyping
-%D \doattachfile{title}{width}{height}{depth}{color}{symbol}{filename}{source}
-%D \stoptyping
-
-\installspecial [\doattachfile] [or] [8]
-
-%D Experimental (properties):
-
-\installspecial[\dostartviewerlayer] [or] [1]
-\installspecial[\dostopviewerlayer] [or] [0]
-\installspecial[\dodefineviewerlayer] [or] [5]
-%installspecial[\doflushviewertextlayers] [or] [0]
-%installspecial[\doflushviewerpagelayers] [or] [0]
-\installspecial[\domakeviewerlayerlist] [or] [1]
-
-\installspecial[\doinsertrenderingwindow] [or] [4]
-\installspecial[\doinsertrendering] [or] [4]
-\installspecial[\doinsertrenderingobject] [or] [4]
-\installspecial[\doinsertrenderingobject] [or] [4]
-
-\installspecial[\dostartfonteffect] [or] [3]
-\installspecial[\dostopfonteffect] [or] [0]
-
-%D From now on, mapfile loading is also a special; we assume the
-%D more or less standard dvips syntax.
-
-\installspecial[\doresetmapfilelist] [and] [0]
-\installspecial[\doloadmapfile] [and] [2] % + - = | filename
-\installspecial[\doloadmapline] [and] [2] % + - = | fileline
-
-%D We define a couple of backends:
-
-\defineoutput [dvipsone] [dvi,ps,yy]
-\defineoutput [dviwindo] [dvi,ps,yy,win]
-\defineoutput [dvips] [dvi,ps,tr]
-\defineoutput [dviview] [dvi,ps,tr,dv]
-\defineoutput [pdftex] [tpd]
-\defineoutput [pdf] [tpd]
-\defineoutput [dvipdfm] [dpm]
-\defineoutput [dpm] [dpm]
-\defineoutput [dvipdfmx] [dpx]
-\defineoutput [dpx] [dpx]
-\defineoutput [acrobat] [pdf,ps,tr]
-
-\defineoutput [xetex] [dpx,xet]
-\defineoutput [xtx] [dpx,xet]
-\defineoutput [xdv] [dvi,xtx,xet]
-\defineoutput [xdv2pdf] [dvi,xtx,xet]
-
-%D Please let me know if we need more. From now on we default
-%D to:
-
-\setupoutput [dvips]
-
-%D We don't enable \ACROBAT, because pure \POSTSCRIPT\ is not
-%D that strong on objects and \PDFTEX\ does a better job.
-%D Some reasonable alternatives are:
-%D
-%D \starttyping
-%D \setupoutput [dvipsone,acrobat]
-%D \setupoutput [dviwindo,acrobat]
-%D \stoptyping
-%D
-%D Although, better is:
-%D
-%D \starttyping
-%D \setupoutput [pdftex]
-%D \stoptyping
-
-\loadmarkfile{spec-def}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/spec-dpm.tex b/Master/texmf-dist/tex/context/base/spec-dpm.mkii
index 9cf023fe0a8..9cf023fe0a8 100644
--- a/Master/texmf-dist/tex/context/base/spec-dpm.tex
+++ b/Master/texmf-dist/tex/context/base/spec-dpm.mkii
diff --git a/Master/texmf-dist/tex/context/base/spec-dpx.tex b/Master/texmf-dist/tex/context/base/spec-dpx.mkii
index 3dc82d49e46..ed49ea843c9 100644
--- a/Master/texmf-dist/tex/context/base/spec-dpx.tex
+++ b/Master/texmf-dist/tex/context/base/spec-dpx.mkii
@@ -84,6 +84,8 @@
%D
%D A simple one.
+\let\PDFpagexyzspec\relax \def\PDFpagexyzspec{@xpos @ypos 0} % untested
+
\definespecial\dosetuppaper#1#2#3%
{\bgroup
\scratchdimen#2\edef\width {\the\scratchdimen\space}%
@@ -661,9 +663,6 @@
{\dogetobjectreference{#1}{#2}#3%
\ifx#3\empty\else\edef#3{#3}\fi}
-% \def\doPDFgetobjectpage #1#2#3{..}
-% \def\doPDFgetobjectpagereference#1#2#3{..}
-
\def\doPDFgetpagereference#1#2%
{\edef#2{@page#1}}
@@ -693,48 +692,24 @@
\definespecial\dostopclipping
{\PDFcode{Q n}}
-%D 4. Modified codes from \type{supp-mpe}
+%D 4. Modified codes from \type{supp-pdf}
-\def\stopMPshading
+\def\dosetMPsomePDFshade#1#2%
{\global\advance\currentPDFshade \plusone
- \setxvalue{obj:Sh:\currentMPspecial}%
- {/Sh\the\currentPDFshade\space @obj:Sh:\currentMPspecial\space}%
- \setxvalue{mps:Sh:\currentMPspecial}%
- {\the\currentPDFshade}}
-
-\defineMPspecial{30}
- {\startMPshading{14}% type 2
- \setMPshadingcolors{4}{5}{6}{9}{10}{11}%
- \special{pdf:object @ftn:Sh:\currentMPspecial\space
- <</FunctionType 2
- /Domain [\gMPs1 \gMPs2]
- /C0 [\MPshadeA]
- /C1 [\MPshadeB]
- /N \gMPs3>>}%
- \special{pdf:object @obj:Sh:\currentMPspecial\space
- <</ShadingType 2
- /ColorSpace /\MPshadeC\space
- /Function @ftn:Sh:\currentMPspecial\space
- /Coords [\gMPs7 \gMPs8 \gMPs{12} \gMPs{13}]
- /Extend [true true]>>}%
- \stopMPshading}
-
-\defineMPspecial{31}
- {\startMPshading{16}% type 3
- \setMPshadingcolors{4}{5}{6}{10}{11}{12}%
- \special{pdf:object @ftn:Sh:\currentMPspecial\space
- <</FunctionType 2
- /Domain [\gMPs1 \gMPs2]
- /C0 [\MPshadeA]
- /C1 [\MPshadeB]
- /N \gMPs3>>}%
- \special{pdf:object @obj:Sh:\currentMPspecial\space
- <</ShadingType 3
- /ColorSpace /\MPshadeC\space
- /Function @ftn:Sh:\currentMPspecial\space
- /Coords [\gMPs7 \gMPs8 \gMPs9 \gMPs{13} \gMPs{14} \gMPs{15}]
- /Extend [true true]>>}%
- \stopMPshading}
+ \special{pdf:object @ftn:Sh:\currentPDFshade\space
+ <</FunctionType 2
+ /Domain [\gMPs1 \gMPs2]
+ /C0 [\MPshadeA]
+ /C1 [\MPshadeB]
+ /N \gMPs3>>}%
+ \special{pdf:object @obj:Sh:\currentPDFshade\space
+ <</ShadingType #1
+ /ColorSpace /\MPresolvedspace
+ /Function @ftn:Sh:\currentPDFshade\space
+ /Coords [\MPshadeC]
+ /Extend [true true]>>}%
+ \appendtoPDFdocumentshades{/Sh\the\currentPDFshade\space @obj:Sh:\currentPDFshade}%
+ \setxvalue{\@@MPSK#2}{\noexpand\dohandleMPshade{\the\currentPDFshade}}}
\def\handleMPfigurespecial#1#2#3#4#5#6#7% toto : combine with ext fig
{\doiffileelse{#7}
@@ -760,7 +735,7 @@
{\vbox to \the\ht#2%
{\vss
\hbox to \the\wd#2%
- {\scratchdimen\wd#2\scratchdimen.5\scratchdimen\hskip-\the\scratchdimen
+ {%\scratchdimen\wd#2\scratchdimen.5\scratchdimen\hskip-\the\scratchdimen
\special{pdf:uxobj @MPPDF::\MPPDFobjectcounter}}}}%
\expanded{\doDVIPDFMXstartobject\zerocount{MPPDF}\MPPDFobjectcounter{\the\wd#2}{\the\ht#2}{\the\dp#2}}%
\finalizeobjectbox#2%
diff --git a/Master/texmf-dist/tex/context/base/spec-dvi.tex b/Master/texmf-dist/tex/context/base/spec-dvi.mkii
index 1a8f653f050..1a8f653f050 100644
--- a/Master/texmf-dist/tex/context/base/spec-dvi.tex
+++ b/Master/texmf-dist/tex/context/base/spec-dvi.mkii
diff --git a/Master/texmf-dist/tex/context/base/spec-fdf.mkii b/Master/texmf-dist/tex/context/base/spec-fdf.mkii
index a329dc50aa0..6579a9247f6 100644
--- a/Master/texmf-dist/tex/context/base/spec-fdf.mkii
+++ b/Master/texmf-dist/tex/context/base/spec-fdf.mkii
@@ -11,8 +11,3306 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+%D The name of this module is a bit strange but it started with fields
+%D so we keep the name.
+
+%D When dealing with resources, we share the resource dictionaries
+%D between all xforms. This is inefficent in the sense that when no
+%D resources are used, redundant entries take space, but on the other
+%D hand we save redundant dictionaries so it's a nice compromise. Maybe
+%D that in \LUATEX\ I will reimplement most of the code here anyway.
+
+%D We need to check if we can use \type {\driverreferenced}
+%D object in more places.
+
+%D Initialization of fields is tricky. If a field has no
+%D value, it is kind of not there. If ResetForm is used, the
+%D default is assigned, but pushbuttons are spoiled. Adding a
+%D \type {/MK} dictionary helps, but gives ugly down
+%D appearances (displaced with background). What a mess.
+%D Also, in order to get at least something, the \type {/AS}
+%D key should be provided.
+
+% to do : /IF << /SW /N >> == no scaling / clipping of widget
+
\unprotect
+%D \macros
+%D {PDFobjref}
+%D
+%D Just a shortcut.
+
+% Watch out, \def\PDFobjref#1{\purenumber#1 0 R} also works, but not when
+% #1 == \the\whatever
+
+\def\PDFobjref#1{\purenumber{#1} 0 R}
+
+%D \macros
+%D {PDFswapdir}
+
+\let\PDFswapdir\empty \def\PDFswapdir{\ifcase\inlinedirection\or\or-\fi}
+
+% the pdf spec changed cq. viewers started behaving differently / 5+
+
+\chardef\overcomePDFpage\plusone % page numbers/ beware: optimizers remove this one
+\chardef\overcomePDFpage\plustwo % page:number
+%chardef\overcomePDFpage\plusthree % pdftex page ref feature
+
+\ifx\pdfpageref\undefined \else \chardef\overcomePDFpage\plusthree \fi
+
+%D \macros
+%D {setPDFdestination}
+%D
+%D \PDF\ destinations should obey the specifications laid down
+%D in the \PDF\ reference manual. The next macro strips illegal
+%D characters from the destination name.
+%D
+%D The \ACROBAT\ programs are not bug free. By setting the next
+%D switches, we will at least try to prevent problems.
+
+\newif\ifovercomePDFbugs \overcomePDFbugsfalse % dest sort problem / 3-
+\newif\ifovercomePDFspace \overcomePDFspacetrue % dest sort problem / 3-
+
+\let\setPDFdestination\gobbleoneargument % a MK specific definition
+
+%D \macros
+%D {sanitizePDFstring}
+%D
+%D This macro at least tries to convert a arbitrary string
+%D into a sequence of characters valid for \PDF\ bookmarks and
+%D alike.
+
+\def\sanitizePDFstring#1\to#2{}
+
+%D \macros
+%D {doPDFdestination,
+%D doPDFaction,
+%D doPDFannotation,
+%D doPDFannotationobject,
+%D doPDFdictionaryobject,
+%D doPDFarrayobject,
+%D doPDFaddtocatalog,
+%D doPDFaddtoinfo,
+%D doPDFpageattribute,
+%D doPDFpageresource,
+%D doPDFpagesattribute,
+%D doPDFbookmark,
+%D defaultobjectreference,
+%D doPDFgetobjectreference}
+%D
+%D This module deals with \PDF\ support, including fill||in
+%D forms. Before we present the largely unreadable bunch of
+%D macros, we introduce the here||not||defined low level
+%D interface macros. These must be provided by the special
+%D drivers \type{pdf} (\ACROBAT) and \type{tpd} (\PDFTEX).
+%D
+%D \starttyping
+%D \doPDFdestination #1 name
+%D \doPDFaction #1#2#3 width height action
+%D \doPDFannotation #1#2#3 width height data
+%D \doPDFannotationobject #1#2#3#4#5 class name width height data
+%D \doPDFdictionaryobject #1#2#3 class name data
+%D \doPDFarrayobject #1#2#3 class name data
+%D \doPDFaddtocatalog #1
+%D \doPDFaddtoinfo #1
+%D \doPDFpageattribute #1
+%D \doPDFpageresource #1
+%D \doPDFpagesattribute #1
+%D \doPDFbookmark #1#2#3#4#5 level n text page open
+%D
+%D \defaultobjectreference #1#2 class name
+%D \doPDFgetobjectreference #1#2#3 class name \PDFobjectreference
+%D \doPDFgetobjectpagereference #1#2#3 class name \PDFobjectreference
+%D \stoptyping
+%D
+%D The keywords reflect their use. For the moment we stick to
+%D keywords, because that way at we get an indication of what
+%D we're doing.
+
+\startspecials[fdf]
+
+%D Common:
+
+% \def\doPDFgetobjectreference#1#2#3%
+% {\def#3{..}}
+
+\def\doPDFgetobjectpage#1#2#3%
+ {\dogetobjectreferencepage{#1}{#2}#3%
+ \ifx#3\empty\def#3{\realfolio}\fi}
+
+\def\doPDFgetobjectpagereference#1#2#3%
+ {\dogetobjectreferencepage{#1}{#2}#3%
+ \ifx#3\empty
+ \doPDFgetpagereference\realfolio#3%
+ \else
+ \doPDFgetpagereference#3#3% we assume that #3 gets expanded
+ \fi}
+
+% \def\doPDFgetpagereference#1#2%%%%%%%%%%%%%%%
+% {\def#2{...}}
+
+%D Due to the fact that \PDFTEX\ has a different concept of
+%D page attributes, we need:
+
+\let\doPDFresetpageattributes\relax
+\let\doPDFresetpageresources \relax
+
+\appendtoksonce
+ \doPDFresetpageattributes
+ \doPDFresetpageresources
+\to \everyaftershipout
+
+\ifx\PDFcode\undefined
+ \ifx\pdfliteral\undefined
+ \def\PDFcode#1{\message{[ignored pdfliteral: #1]}}
+ \else
+ \let\PDFcode\pdfliteral
+ \fi
+\fi
+
+%D For special (\METAPOST) effects, we need to build
+%D resource dictionaries. Here is the framework.
+
+\let\docuPDFextgstates\empty
+%let\pagePDFextgstates\empty
+
+\def\checkPDFextgstates
+ {\ifx\docuPDFextgstates\empty \else
+ \ifnum\realpageno=\lastpage\relax
+ %\doPDFreserveddictionaryobject{FDF}{docuextgstates}{\docuPDFextgstates}%
+ \doPDFdictionaryobject{FDF}{docuextgstates}{\docuPDFextgstates}%
+ \fi
+ \doPDFgetobjectreference{FDF}{docuextgstates}\PDFobjectreference
+ \doPDFpageresource{/ExtGState \PDFobjectreference}%
+ \fi}
+
+\appendtoksonce
+ \checkPDFextgstates
+\to \everyshipout
+
+\def\appendtoPDFdocumentextgstates#1%
+ {\xdef\docuPDFextgstates{\docuPDFextgstates\space#1}}
+
+%D Another special mechanism (needed for color separation):
+
+\let\docuPDFcolorspaces\empty
+
+\def\checkPDFcolorspaces
+ {\ifx\docuPDFcolorspaces\empty \else
+ \ifnum\realpageno=\lastpage\relax
+ %\doPDFreserveddictionaryobject{FDF}{colorspaces}{\docuPDFcolorspaces}%
+ \doPDFdictionaryobject{FDF}{colorspaces}{\docuPDFcolorspaces}%
+ \fi
+ \doPDFgetobjectreference{FDF}{colorspaces}\PDFobjectreference
+ \doPDFpageresource{/ColorSpace \PDFobjectreference}%
+ \fi}
+
+\appendtoksonce
+ \checkPDFcolorspaces
+\to \everyshipout
+
+\def\appendtoPDFdocumentcolorspaces#1%
+ {\xdef\docuPDFcolorspaces{\docuPDFcolorspaces\space#1}}
+
+%D And another one (used to be in spec-pdf)
+
+\let\docuPDFshades\empty
+
+\def\checkPDFshades
+ {\ifx\docuPDFshades\empty \else
+ \ifnum\realpageno=\lastpage\relax
+ %\doPDFreserveddictionaryobject{FDF}{docushades}{\docuPDFshades}%
+ \doPDFdictionaryobject{FDF}{docushades}{\docuPDFshades}%
+ \fi
+ \doPDFgetobjectreference{FDF}{docushades}\PDFobjectreference
+ \doPDFpageresource{/Shading \PDFobjectreference}%
+ \fi}
+
+\appendtoksonce
+ \checkPDFshades
+\to \everyshipout
+
+\def\appendtoPDFdocumentshades#1%
+ {\xdef\docuPDFshades{\docuPDFshades\space#1}}
+
+%D \macros
+%D {doPDFsetupscreen,doPDFsetupidentity}
+%D
+%D Opposite to \DVI\ drivers, \PDF\ ones must know which what
+%D page dimensions they are dealing. We also use the
+%D opportunity to launch full screen (1) or show bookmarks (2).
+
+\let\currentPDFpagemode \empty % document catalog
+\let\currentPDFviewerprefs\empty % document catalog
+
+\let\currentPDFcropbox \empty % page attributes
+\let\currentPDFbleedbox \empty % page attributes
+\let\currentPDFartbox \empty % page attributes
+\let\currentPDFtrimbox \empty % page attributes
+
+\def\doPDFsetupscreen#1#2#3#4#5#6% watch the extra argument
+ {\bgroup
+% \!!widtha#4%
+% \advance\!!widtha#2%
+% \!!heighta-#5%
+% \!!heightb#1% extra argument
+% \advance\!!heightb -#3%
+% \advance\!!heighta \!!heightb
+% % sometimes whole values give better results
+% % \PointsToWholeBigPoints{#2}\left
+% % \PointsToWholeBigPoints\!!heighta\bottom
+% % \PointsToWholeBigPoints\!!widtha \width
+% % \PointsToWholeBigPoints\!!heightb\height
+% % but since pdf/x does not round when checking if
+% % the boxes fit inside the media box ...
+% \PointsToBigPoints{#2}\left
+% \PointsToBigPoints\!!heighta\bottom
+% \PointsToBigPoints\!!widtha \width
+% \PointsToBigPoints\!!heightb\height
+% \xdef\currentPDFcropboxspec
+% {[\left\space\bottom\space\width\space\height]}%
+% \global\let\currentPDFtrimboxspec\currentPDFcropboxspec
+%
+% \xdef\currentPDFpagemode
+% {/PageMode \ifcase#6
+% /UseNone\or/FullScreen\or/UseOutlines\else/UseNone\fi}%
+%
+ \xdef\currentPDFpagemode
+ {\ifnum#6=4
+ /PageLayout /TwoColumnRight
+ \else
+ /PageMode \ifcase#6
+ /UseNone\or/FullScreen\or/UseOutlines\else/UseNone\fi
+ \fi}%
+ \xdef\currentPDFviewerprefs % space after #6 needed, else \relax
+ {\ifcase#6 \or\or\else /ViewerPreferences << /FitWindow true >>\fi}%
+ \egroup}
+
+% not that good if we switch drivers
+
+\def\addPDFdocumentinfo
+ {\doPDFaddtocatalog{\currentPDFpagemode\currentPDFviewerprefs}%
+ \doPDFaddtocatalog{/Version /\PDFversion}%
+ \doPDFaddtoinfo{/Trapped /False}%
+ \doPDFaddtoinfo{/ConTeXt.Version (\contextversion)}%
+ \doPDFaddtoinfo{/ConTeXt.Time (\number\normalyear.\twodigits\normalmonth.\twodigits\normalday\space \twodigits\currenthour:\twodigits\currentminute)}%
+ \doPDFaddtoinfo{/ConTeXt.Jobname (\jobname)}%
+ \doPDFaddtoinfo{/ConTeXt.Url (www.pragma-ade.com)}}
+
+\appendtoksonce % hack to prevent duplicates
+ \addPDFdocumentinfo
+\to \everyfirstshipout
+
+\def\PDFversion{1.5}
+
+\appendtoksonce
+ \def\PDFversion{1.5}%
+ \let\addPDFdocumentinfo\relax
+\to \everyresetspecials
+
+\def\doPDFsetupwhateverbox#1#2#3#4#5#6% watch the extra arguments
+ {\bgroup
+ \!!widtha \dimexpr#5+#3\relax
+ \!!heightb\dimexpr#2-#4\relax
+ \!!heighta\dimexpr\!!heightb-#6\relax
+ % sometimes whole values give better results
+ % \PointsToWholeBigPoints{#3}\left
+ % \PointsToWholeBigPoints\!!heighta\bottom
+ % \PointsToWholeBigPoints\!!widtha \width
+ % \PointsToWholeBigPoints\!!heightb\height
+ % but since pdf/x does not round when checking if
+ % the boxes fit inside the media box ...
+ \PointsToBigPoints{#3}\left
+ \PointsToBigPoints\!!heighta\bottom
+ \PointsToBigPoints\!!widtha \width
+ \PointsToBigPoints\!!heightb\height
+ \xdef#1{[\left\space\bottom\space\width\space\height]}%
+ \egroup}
+
+\def\doPDFsetupartbox {\doPDFsetupwhateverbox\currentPDFartbox }
+\def\doPDFsetupcropbox {\doPDFsetupwhateverbox\currentPDFcropbox }
+\def\doPDFsetupbleedbox{\doPDFsetupwhateverbox\currentPDFbleedbox}
+\def\doPDFsetuptrimbox {\doPDFsetupwhateverbox\currentPDFtrimbox }
+
+\gdef\currentPDFtrimbox{\currentPDFcropbox} % default, needed for pdf/x
+
+\def\flushPDFwhateverbox#1#2%
+ {\doifsomething{#1}{\doPDFpageattribute{/#2Box #1}}}
+
+\def\flushPDFpageboxes
+ {\flushPDFwhateverbox\currentPDFartbox {Art}%
+ \flushPDFwhateverbox\currentPDFcropbox {Crop}%
+ \flushPDFwhateverbox\currentPDFbleedbox{Bleed}%
+ \flushPDFwhateverbox\currentPDFtrimbox {Trim}}
+
+\appendtoksonce
+ \flushPDFpageboxes
+\to \everyshipout
+
+\def\doPDFsetupidentity#1#2#3#4#5#6%
+ {\bgroup
+ \enablePDFdocencoding
+ \edef\!!stringa{#5}%
+ \ifx\!!stringa\empty \ifx\pdfdate\undefined\else
+ \edef\!!stringa{D:\pdfdate}%
+ \fi \fi
+ \expanded{\doPDFaddtoinfo
+ {/Title (#1)
+ /Subject (#2)
+ /Author (#3)
+ /Creator (#4)
+ /ModDate (\!!stringa)
+ /ID (\jobname.\!!stringa) % needed for pdf/x
+ /Keywords (#6)}}%
+ \egroup}
+
+%D \macros
+%D {doPDFsetupopenaction,doPDFsetupcloseaction,
+%D doPDFsetupopenpageaction,doPDFsetupclosepageaction}
+%D
+%D Setting the open and close actions is kind of fuzzy
+%D because action chains are derived from the reference
+%D mechanism.
+
+%D Starting with version~5 viewers, when the open actions
+%D started yto give problems, for testing purposes we
+%D decided use indirect actions.
+
+% \definespecial\dosetupopenaction {\doPDFsetupopenaction}
+% \definespecial\dosetupcloseaction {\doPDFsetupcloseaction}
+% \definespecial\dosetupopenpageaction {\doPDFsetupopenpageaction}
+% \definespecial\dosetupclosepageaction{\doPDFsetupclosepageaction}
+
+\let\lastPDFaction\empty
+
+%D We can safe a couple of references by moving this code
+%D to the specific drivers.
+%D
+%D The following code used to work okay, but as with any
+%D update of Acrobat Viewers, upward compatibility was
+%D just a dream.
+
+\definespecial\dosetupopenaction {\doPDFaddtocatalog{/OpenAction <<\lastPDFaction>>}}
+\definespecial\dosetupcloseaction{\doPDFaddtocatalog{/CloseAction <<\lastPDFaction>>}}
+
+% todo: /AA << dictionary in catalog >>
+
+% \globalletempty\PDFdocumentclose
+% \globalletempty\PDFwillsave
+% \globalletempty\PDFdidsave
+% \globalletempty\PDFwillprint
+% \globalletempty\PDFdidprint
+
+% \definespecial\dosetupdocumentcloseaction {\global\let\PDFdocumentclose\lastPDFaction}
+% \definespecial\dosetupwillsaveaction {\global\let\PDFwillsave \lastPDFaction}
+% \definespecial\dosetupdidsaveaction {\global\let\PDFdidsave \lastPDFaction}
+% \definespecial\dosetupwillprintaction {\global\let\PDFwillprint \lastPDFaction}
+% \definespecial\dosetupdidprintaction {\global\let\PDFdidprint \lastPDFaction}
+
+% \def\checkPDFdocumentactions
+% {\iflocation
+% \doPDFpageattribute
+% {/AA <<\ifx\PDFdocumentclose\empty \else /DC <<\PDFdocumentclose>> \fi
+% \ifx\PDFwillsave \empty \else /WS <<\PDFwillsave >> \fi
+% \ifx\PDFdidsave \empty \else /DS <<\PDFdidsave >> \fi
+% \ifx\PDFwillprint \empty \else /WP <<\PDFwillprint >> \fi
+% \ifx\PDFdidprint \empty \else /DP <<\PDFdidprint >> \fi>>}%
+% % \globalletempty\PDFdocumentclose
+% % \globalletempty\PDFwillsave
+% % \globalletempty\PDFdidsave
+% % \globalletempty\PDFwillprint
+% % \globalletempty\PDFdidprint
+% \global\let\checkPDFdocumentactions\relax
+% \fi}
+
+% \appendtoksonce
+% \checkPDFdocumentactions
+% \to \everylastshipout
+
+%\def\doPDFsetupopenaction%
+% {\doPDFdictionaryobject{FDF}{local:openaction}\lastPDFaction
+% \doPDFgetobjectreference{FDF}{local:openaction}\PDFobjectreference
+% \doPDFaddtocatalog{/OpenAction \PDFobjectreference}}
+%
+%\def\doPDFsetupcloseaction%
+% {\doPDFdictionaryobject{FDF}{local:closeaction}\lastPDFaction
+% \doPDFgetobjectreference{FDF}{local:closeaction}\PDFobjectreference
+% \doPDFaddtocatalog{/CloseAction \PDFobjectreference}}
+
+\let\PDFopenpageaction \empty
+\let\PDFclosepageaction\empty
+
+\definespecial\dosetupopenpageaction {\global\let\PDFopenpageaction \lastPDFaction}
+\definespecial\dosetupclosepageaction{\global\let\PDFclosepageaction\lastPDFaction}
+
+\def\checkPDFpageactions
+ {\iflocation % important since direct -)
+ \donefalse
+ \ifx\PDFopenpageaction \empty\!!doneafalse\else\donetrue\!!doneatrue\fi
+ \ifx\PDFclosepageaction\empty\!!donebfalse\else\donetrue\!!donebtrue\fi
+ \ifdone
+ \doPDFpageattribute
+ {/AA <<\if!!donea/O <<\PDFopenpageaction >> \fi
+ \if!!doneb/C <<\PDFclosepageaction>> \fi>>}%
+ \fi
+ \global\let\PDFopenpageaction \empty
+ \global\let\PDFclosepageaction\empty
+ \fi}
+
+\appendtoksonce
+ \checkPDFpageactions
+\to \everyshipout
+
+%D \macros
+%D {doPDFstartthisislocation}
+%D
+%D Next we define the macros that deal with hyperreferencing,
+%D graphic inclusion and general document features. These are
+%D the olderst ones. I won't comment much because one needs
+%D knowledge of \PDF\ itself, and explaning \PDF\ is beyond
+%D this documentation.
+
+\def\doPDFstartthisislocation#1%
+ {\bgroup
+ \setPDFdestination{#1}%
+ \ifx\PDFdestination\empty \else
+ \doPDFdestination{\PDFdestination}%
+ \fi
+ \egroup}
+
+%D \macros
+%D {doPDFstartgotolocation,
+%D doPDFstartgotorealpage,
+%D doPDFstartgotoJS}
+%D
+%D The goto macros use the switch \type{\ifsecondaryreference}
+%D to determine if actions should be linked.
+
+\def\locationfilesuffix{pdf}
+
+% \def\preparePDFlocationfile#1#2%
+% {\setreferencefilename#1\to#2%
+% \expanded{\doifnotinstring{.\locationfilesuffix}{#2}}
+% {\edef#2{#2.\locationfilesuffix}}}
+%
+% \def\preparePDFlocationfile#1\to#2%
+% {\setreferencefilename#1\to#2%
+% \expanded{\doifnotinstring{.pdf}{#2}}{\edef#2{#2.pdf}}}
+
+\def\doPDFstartgotolocation#1#2#3#4#5#6%
+ {\bgroup
+ \doifelsenothing{#3}
+ {\setPDFdestination{#5}%
+ \doifelsenothing\PDFdestination
+ {\let\action\empty}
+ {\doifelsenothing{#4}
+ {\let\PDFfile\empty}
+ {\expanded{\beforesplitstring#4}\at.\to\PDFfile
+ \doifparentfileelse\PDFfile % {#4}
+ {\let\PDFfile\empty}
+ %{\setreferencefilename#4.\locationfilesuffix\to\PDFfile
+ {\@EA\setreferencefilename\PDFfile.\locationfilesuffix\to\PDFfile
+ \edef\PDFfile
+ {R /F (\PDFfile)\ifgotonewwindow\space/NewWindow true \fi}}}%
+ \edef\action%
+ {/S /GoTo\PDFfile\space /D (\PDFdestination)}}}
+ {\doifelsenothing{#4}
+ {\let\PDFfile\empty
+ \let\PDFdestination\empty}
+ {\setreferencefilename/#4\to\PDFfile
+ \setPDFdestination{#5}%
+ \doifsomething\PDFdestination
+ {\edef\PDFdestination{\URLhash\PDFdestination}}}%
+ \edef\action{/S /URI /URI (#3\PDFfile\PDFdestination)}}%
+ \ifx\action\empty\else
+ \ifsecondaryreference
+ \savesecondaryPDFreference\action
+ \else
+ \getsecondaryPDFreferences
+ \doPDFaction{\PDFswapdir#1}{#2}{\action \secondaryPDFreferences}%
+ \fi
+ \fi
+ \egroup}
+
+\def\PDFgotonewwindow{\ifgotonewwindow\space/NewWindow true \fi}
+
+% optimization in tpd driver
+%
+% \edef\PDFdestination{(page:\the\scratchcounter)}%
+%
+% ==>
+%
+% \advance\scratchcounter 1
+% \edef\PDFdestination{[\pdfpageref \PDFobjref\scratchcounter\PDFpageviewwrd]}%
+%
+% \doPDFgetpagedestination#1#2% pagenumber macro % % fuzzy hack
+
+\def\doPDFstartgotorealpage#1#2#3#4#5% watch the R append trick
+ {\bgroup
+ \doifelsenothing{#3}% #1 = url
+ {\scratchcounter0#5\relax
+ \ifnum\scratchcounter>0
+ \doifelsenothing{#4}
+ {\let\PDFfile\empty}
+ {\expanded{\beforesplitstring#4}\at.\to\PDFfile
+ \doifparentfileelse\PDFfile % {#4}
+ {\let\PDFfile\empty}
+ %{\setreferencefilename#4.\locationfilesuffix\to\PDFfile
+ {\@EA\setreferencefilename\PDFfile.\locationfilesuffix\to\PDFfile
+ \edef\PDFfile{R /F (\PDFfile)\PDFgotonewwindow}}}%
+ \ifx\PDFfile\empty
+ \ifcase\overcomePDFpage
+ \or % pdf starts numbering at zero
+ \advance\scratchcounter \minusone
+ \edef\PDFdestination{[\the\scratchcounter\space\PDFpageviewwrd]}%
+ \or % pdf starts numbering at zero
+ \advance\scratchcounter \minusone
+ \edef\PDFdestination{(page:\the\scratchcounter)}%
+ \or % pdftex starts numbering at one
+ \edef\PDFdestination{[\pdfpageref\scratchcounter\space0 R \PDFpageviewwrd]}%
+ \fi
+ \else % across files it's a page number / pdf starts numbering at zero
+ \advance\scratchcounter \minusone
+ \edef\PDFdestination{[\the\scratchcounter\space\PDFpageviewwrd]}%
+ \fi
+ \edef\action{/S /GoTo\PDFfile\space /D \PDFdestination}%
+ \else
+ \let\action\empty
+ \fi}
+ {\doifelsenothing{#4}
+ {\let\PDFfile\empty}
+ {\setreferencefilename/#4\to\PDFfile}%
+ \edef\action{/S /URI /URI (#3\PDFfile)}}%
+ \ifx\action\empty\else
+ \ifsecondaryreference
+ \savesecondaryPDFreference\action
+ \else
+ \getsecondaryPDFreferences
+ \doPDFaction{\PDFswapdir#1}{#2}{\action \secondaryPDFreferences}%
+ \fi
+ \fi
+ \egroup}
+
+\let\lastfakedPDFpage\!!zerocount
+
+\def\fakePDFpagedestination % as in pdf, we start numbering at zero
+ {\iflocation \ifarrangingpages \else \ifnum\overcomePDFpage=\plustwo
+ \ifnum\lastfakedPDFpage<\realpageno
+ \bgroup
+ \xdef\lastfakedPDFpage{\realfolio}%
+ \advance\realpageno \minusone % is \expanded needed ?
+ \expanded{\doPDFdestination{page:\realfolio}}%
+ \egroup
+ \fi
+ \fi \fi \fi}
+
+\appendtoksonce
+ \fakePDFpagedestination
+\to \everyshipout
+
+\def\doPDFstartgotoJS#1#2#3%
+ {\bgroup
+ \doPSsanitizeJScode#3\to\sanitizedJScode
+ \edef\action
+ {/S /JavaScript /JS (\sanitizedJScode)}%
+ \ifsecondaryreference
+ \savesecondaryPDFreference\action
+ \else
+ \getsecondaryPDFreferences
+ \doPDFaction{\PDFswapdir#1}{#2}{\action \secondaryPDFreferences}%
+ \fi
+ \egroup}
+
+%D \macros
+%D {doPDFstartexecutecommand}
+%D
+%D At the cost of much auxiliary placeholders, we can pretty
+%D fast convert the command asked for. This is how the \PDF\
+%D code looks like.
+
+\def\PDFmoviecode#1#2#3%
+ {/Movie
+ /T (\ifcase#1movie \else sound \fi\ifx\argumentA\empty#2\else\argumentA\fi)
+ /Operation /\ifcase#3Play\or Stop\or Pause\or Resume\fi\space}
+
+\def\PDFexecutestartmovie {\PDFmoviecode0\currentmovie0}
+\def\PDFexecutestopmovie {\PDFmoviecode0\currentmovie1}
+\def\PDFexecutepausemovie {\PDFmoviecode0\currentmovie2}
+\def\PDFexecuteresumemovie {\PDFmoviecode0\currentmovie3}
+
+\def\PDFexecutestartsound {\PDFmoviecode1\currentsound0}
+\def\PDFexecutestopsound {\PDFmoviecode1\currentsound1}
+\def\PDFexecutepausesound {\PDFmoviecode1\currentsound2}
+\def\PDFexecuteresumesound {\PDFmoviecode1\currentsound3}
+
+\def\PDFformcode#1%
+ {\doFDFiffieldset{#1}{/Field [\doFDFgetfieldset{#1}]}}
+
+% bit 3 = html
+% bit 6 = xml
+% bit 4 = get
+
+\ifx\PDFsubmitfiller\undefined \let\PDFsubmitfiller\empty \fi
+
+\chardef\PDFformmethod=1 % 0=GET 1=POST
+
+\def\PDFformflag#1#2{\ifcase\PDFformmethod#1\else#2\fi}
+
+\def\PDFexecuteimportform {/Named /N /AcroForm:ImportFDF}
+\def\PDFexecuteexportform {/Named /N /AcroForm:ExportFDF}
+\def\PDFexecuteresetform {/ResetForm \PDFformcode\argumentA}
+\def\PDFexecutesubmitform {/SubmitForm \PDFformcode\argumentB
+ /Flags \ifcase\submitoutputformat\space
+ \PDFformflag{12} {4} % 0=unknown
+ \or \PDFformflag{12} {4} % 1=HTML
+ \or \PDFformflag {8} {0} % 2=FDF
+ \or \PDFformflag{40}{32} % 3=XML
+ \else \PDFformflag{12} {4} % ?=unknown
+ \fi
+ /F (\argumentA)\PDFsubmitfiller}
+
+% urifill permits url substitution
+
+\def\PDFexecutehide {/Hide /T (\argumentA) /H true}
+\def\PDFexecuteshow {/Hide /T (\argumentA) /H false}
+
+\def\PDFexecutefirst {/Named /N /FirstPage}
+\def\PDFexecuteprevious {/Named /N /PrevPage}
+\def\PDFexecutenext {/Named /N /NextPage}
+\def\PDFexecutelast {/Named /N /LastPage}
+\def\PDFexecutebackward {/Named /N /GoBack}
+\def\PDFexecuteforward {/Named /N /GoForward}
+\def\PDFexecuteprint {/Named /N /Print}
+\def\PDFexecuteexit {/Named /N /Quit}
+\def\PDFexecuteclose {/Named /N /Close}
+\def\PDFexecutesave {/Named /N /Save}
+\def\PDFexecutesavenamed {/Named /N /SaveAs}
+\def\PDFexecuteopennamed {/Named /N /Open}
+\def\PDFexecutehelp {/Named /N /HelpUserGuide}
+\def\PDFexecutetoggle {/Named /N /FullScreen}
+\def\PDFexecutesearch {/Named /N /Find}
+\def\PDFexecutesearchagain {/Named /N /FindAgain}
+\def\PDFexecutegotopage {/Named /N /GoToPage}
+\def\PDFexecutequery {/Named /N /AcroSrch:Query}
+\def\PDFexecutequeryagain {/Named /N /AcroSrch:NextHit}
+\def\PDFexecutefitwidth {/Named /N /FitWidth}
+\def\PDFexecutefitheight {/Named /N /FitHeight}
+
+\let\PDFobjectclass\empty
+\let\PDFobjectname \empty
+
+\def\doPDFstartexecutecommand#1#2#3#4%
+ {\doifdefined{PDFexecute#3}
+ {\bgroup
+ \edef\argument{#4}%
+ \ifx\argument\empty
+ \let\argumentA\empty
+ \let\argumentB\empty
+ \else
+ \@EA\dogetcommalistelement\@EA1\@EA\from#4\to\argumentA
+ \@EA\dogetcommalistelement\@EA2\@EA\from#4\to\argumentB
+ \fi
+ \edef\action%
+ {/S \getvalue{PDFexecute#3}}%
+ \ifsecondaryreference
+ \savesecondaryPDFreference\action
+ \else
+ \getsecondaryPDFreferences
+% \ifx\PDFobjectclass\empty
+% \let\next\doPDFaction
+% \else
+% \edef\next{\doPDFactionobject{\PDFobjectclass}{\PDFobjectname}}%
+% \globalletempty\PDFobjectclass
+% \globalletempty\PDFobjectname
+% \fi
+% \next
+ \doPDFaction{\PDFswapdir#1}{#2}{\action \secondaryPDFreferences}%
+ \fi
+ \egroup}}
+
+%D \macros
+%D {doPDFstartrunprogram}
+%D
+%D Running programs is possible, but is non that portable, and
+%D therefore dangerous.
+
+\def\doPDFstartrunprogram#1#2#3#4% new: #3 => #3#4
+ {\bgroup
+ %\edef\string{#3}%
+ %\@EA\beforesplitstring\string\at{ }\to\program
+ %\@EA\aftersplitstring \string\at{ }\to\parameters
+ %\edef\action%
+ % {/S /Launch /F (\program) /P (\parameters) /D (.)}%
+ \edef\action
+ {/S /Launch /F (#3) /P (#4) /D (.)}%
+ \ifsecondaryreference
+ \savesecondaryPDFreference\action
+ \else
+ \getsecondaryPDFreferences
+ \doPDFaction{\PDFswapdir#1}{#2}{\action \secondaryPDFreferences}%
+ \fi
+ \egroup}
+
+%D \macros
+%D {doPDFstartgotoprofile}
+%D
+%D Far from perfect, but nevertheless present, is the profile
+%D handler. We want to misuse article threads for reder
+%D profiles.
+
+\def\doPDFstartgotoprofile#1#2#3% to be done: file
+ {\bgroup
+ \setPDFdestination{#3}%
+ \doifsomething\PDFdestination
+ {\edef\action
+ {/S /Thread /D (\PDFdestination)}%
+ \ifsecondaryreference
+ \savesecondaryPDFreference\action
+ \else
+ \getsecondaryPDFreferences
+ \doPDFaction{\PDFswapdir#1}{#2}{\action \secondaryPDFreferences}%
+ \fi}%
+ \egroup}
+
+%D \macros
+%D {doPDFsetpagetransition}
+%D
+%D This array holds a reasonable selection of transitions
+%D (watch out: \type{replace} is not in this list). Most of
+%D the transitions look awful anyway. By the way, \CONTEXT\ is
+%D able to select transitions randomly.
+
+% some day, when 1.5 is on linux and apple, we will add:
+%
+% \def\pagetransitions
+% {{split,in,vertical},{split,in,horizontal},
+% {split,out,vertical},{split,out,horizontal},
+% {blinds,horizontal},{blinds,vertical},
+% {box,in},{box,out},
+% {wipe,east},{wipe,west},{wipe,north},{wipe,south},
+% dissolve,
+% {glitter,east},{glitter,south},
+% {fly,in,east},{fly,in,west},{fly,in,north},{fly,in,south},
+% {fly,out,east},{fly,out,west},{fly,out,north},{fly,out,south},
+% {push,east},{push,west},{push,north},{push,south},
+% {cover,east},{cover,west},{cover,north},{cover,south},
+% {uncover,east},{uncover,west},{uncover,north},{uncover,south},
+% fade}
+
+\def\pagetransitions
+ {{split,in,vertical},{split,in,horizontal},
+ {split,out,vertical},{split,out,horizontal},
+ {blinds,horizontal},{blinds,vertical},
+ {box,in},{box,out},
+ {wipe,east},{wipe,west},{wipe,north},{wipe,south},
+ dissolve,
+ {glitter,east},{glitter,south}}
+
+%D Again, we use macros as placeholders for \PDF\ key||value
+%D pairs.
+
+\def\PDFpagesplit {/S /Split }
+\def\PDFpageblinds {/S /Blinds }
+\def\PDFpagebox {/S /Box }
+\def\PDFpagewipe {/S /Wipe }
+\def\PDFpagedissolve {/S /Dissolve }
+\def\PDFpageglitter {/S /Glitter }
+\def\PDFpagereplace {/S /R }
+
+\def\PDFpagefly {/S /Fly } % 1.5
+\def\PDFpagepush {/S /Push } % 1.5
+\def\PDFpagecover {/S /Cover } % 1.5
+\def\PDFpageuncover {/S /Uncover } % 1.5
+\def\PDFpagefade {/S /Fade } % 1.5
+
+\def\PDFpagehorizontal {/Dm /H }
+\def\PDFpagevertical {/Dm /V }
+\def\PDFpagein {/M /I }
+\def\PDFpageout {/M /O }
+\def\PDFpageeast {/Di 0 }
+\def\PDFpagenorth {/Di 90 }
+\def\PDFpagewest {/Di 180 }
+\def\PDFpagesouth {/Di 270 }
+
+\def\dodoPDFsetpagetransition#1%
+ {\doifdefined{PDFpage#1}
+ {\edef\PDFpagetransitions{\PDFpagetransitions\getvalue{PDFpage#1}}}}
+
+\def\doPDFsetpagetransition#1#2%
+ {\let\PDFpagetransitions\empty
+ \processcommalist[#1]\dodoPDFsetpagetransition
+ \doPDFpageattribute
+ %{\ifnum#2>0 /Dur #2 \fi
+ {\ifnum0<0#2 /Dur #2 \fi
+ \ifx\PDFpagetransitions\empty\else/Trans <<\PDFpagetransitions>>\fi}}
+% \ifx\PDFpagetransitions\empty\else/Trans <</Type /Trans \PDFpagetransitions>>\fi}}
+
+%D \macros
+%D {doPDFinsertmov}
+%D
+%D Most of the annotations we use here are of type {\em
+%D link}, but here is another one: the {\em movie} annotation.
+%D The driver module must implement \type {setcurrentmovie}.
+
+%D Great: this will become an obsolete pdf feature; why did we have to
+%D keep up with the bugs ... and by the time acrobat gets better in
+%D handling it have to drop it.
+
+\let\currentmovie\s!unknown
+
+\def\doPDFinsertmov
+ {\bgroup
+ \xdef\currentmovie{\@@DriverImageLabel}%
+ \PointsToBigPoints\@@DriverImageWidth \width
+ \PointsToBigPoints\@@DriverImageHeight\height
+ \let\pdf@@options\empty
+ \let\pdf@@actions\empty
+ \donefalse
+ \expanded{\processallactionsinset[\@@DriverImageOptions]}
+ [\v!controls=>\donetrue,
+ \v!repeat=>\edef\pdf@@actions{\pdf@@actions /Mode /Repeat },
+ \v!preview=>\edef\pdf@@options{\pdf@@options /Poster true }]%
+ \edef\pdf@@actions{\pdf@@actions /ShowControls \ifdone true\else false\fi}%
+ \doPDFannotation\@@DriverImageWidth\@@DriverImageHeight
+ {/Subtype /Movie
+ /Border [0 0 0]
+ /T (movie \currentmovie)
+ /Movie << /F (\@@DriverImageFile) /Aspect [\width\space\height] \pdf@@options >>
+ /A << \pdf@@actions >>}%
+ \egroup}
+
+%D \macros
+%D {doPDFinsertsoundtrack}
+%D
+%D In \PDF\ sounds can be embedded like movies.
+
+\ifx\everygoto\undefined \newtoks\everygoto \fi
+
+\let\currentsound\s!unknown
+
+\def\doPDFinsertsoundtrack#1#2#3%
+ {\bgroup
+ \xdef\currentsound{#2}%
+ \let\pdf@@actions\empty
+ \@EA\processallactionsinset\@EA
+ [#3]
+ [\v!repeat=>\edef\pdf@@actions{\pdf@@actions /Mode /Repeat }]%
+ \collectdriverresource
+ %\flushatshipout % since it can be buried in a chained box
+ {\doPDFannotation{0pt}{0pt}
+ {/Subtype /Movie
+ /Border [0 0 0]
+ /T (sound \currentsound)
+ /Movie <</F (#1)>>%
+ \ifx\pdf@@actions\empty\else/A << \pdf@@actions >>\fi}}%
+ \egroup}
+
+%D \macros
+%D {doPDFattachfile}
+
+\def\doPDFfilestreamobject#1#2#3#4%
+ {}
+
+\def\doPDFfilestreamidentifier#1%
+ {0}
+
+\def\doPDFgetfilestreamreference#1#2%
+ {0 0 R}
+
+\def\doPDFattachfile#1#2#3#4#5#6#7#8%
+ {\bgroup % title width height color symbol file
+ \edefconvertedargument\PDFfile{#8}%
+ % beware: the symbol may (indirectly) use the file
+ % reference when typesetting the object number;
+ \presetPDFsymbolappearance{#5}{#6}{#2}{#3}{#4}% sets width/height
+ \startPDFsymbolappearance
+ \doPDFembedfile\PDFfile{#7}{#8}%
+ \doPDFgetembeddedfilereference\PDFfile\PDFobjectreference
+ \setFDFlayer\@@DriverAttachmentLayer
+ \doPDFannotation{\width}{\totalheight}
+ {/Subtype /FileAttachment
+ /FS \PDFobjectreference\space
+ /Contents (#1)
+ \PDFsymbol
+ \FDFlayer
+ \PDFattributes}%
+ \stopPDFsymbolappearance
+ \egroup}
+
+% semi-public
+
+\def\doPDFembedfile#1#2#3% symbolic name | filename | user name
+ {\edefconvertedargument\PDFfile{#1}%
+ \doifnotflagged{a:\PDFfile}%
+ {\doPDFfilestreamobject{PDFEF}{\PDFfile}{#2}{#3}%
+ \doglobal\setflag{a:\PDFfile}}}
+
+\def\doPDFgetembeddedfilereference#1#2%
+ {\edefconvertedargument\PDFfile{#1}%
+ \doPDFgetobjectreference{PDFEF}\PDFfile#2}
+
+\def\doPDFgetembeddedfilestreamreference#1#2%
+ {\edefconvertedargument\PDFfile{#1}%
+ \doPDFgetfilestreamreference\PDFfile#2} % == \doPDFgetobjectreference{PDFFS}\PDFfile#2
+
+\definespecial \doattachfile {\doPDFattachfile}
+
+% requested by Jens-Uwe Morawski: permits usage of pdftosrc
+% in viewers that don't support attachments:
+%
+% \definesymbol
+% [ObjectNumber]
+% % [object number {\PDFattachmentnumber[xx]}] % named
+% [object number \PDFattachmentnumber] % current
+%
+% \useattachment[test][xx][test.tex]
+% \setupattachments[symbol=ObjectNumber]
+% \attachment[test]
+
+\def\PDFattachmentnumber
+ {\dosingleargument\doPDFattachmentnumber}
+
+\def\doPDFattachmentnumber[#1]%
+ {\iffirstargument
+ \doPDFfilestreamidentifier{#1}%
+ \else
+ \doPDFfilestreamidentifier\PDFfile
+ \fi}
+
+%D \macros
+%D {...}
+%D
+%D Rather preliminary. We have to wait till the complete specs
+%D show up. As usual, we cannot really check it (Acrobat 6.0
+%D has a bug that inhibits us to make a test file). Half a day
+%D of testing made clear that trying to control the plugin fails
+%D in most cases (we need plugin specs -). We also miss a feature
+%D to let acrobat wait with proceeding (action processing) till
+%D the media clip is ready.
+
+% aiff audio/aiff
+% au audio/basic
+% avi video/avi
+% mid audio/midi
+% mov video/quicktime
+% mp3 audio/x-mp3 (mpeg)
+% mp4 audio/mp4
+% mp4 video/mp4
+% mpeg video/mpeg
+% smil application/smil
+% swf application/x-shockwave-flash
+
+% beware, this is preliminary code, should be improved
+
+\def\PDFrenderingspecs#1{\executeifdefined{PDFMR:#1}\empty}
+
+\def\PDFexecutestartrendering {/Rendition /OP 0 \PDFrenderingspecs\argumentA}
+\def\PDFexecutestoprendering {/Rendition /OP 1 \PDFrenderingspecs\argumentA}
+\def\PDFexecutepauserendering {/Rendition /OP 2 \PDFrenderingspecs\argumentA}
+\def\PDFexecuteresumerendering {/Rendition /OP 3 \PDFrenderingspecs\argumentA}
+
+% todo : sub files
+%
+% \doPDFembedfile{pier-39.png}{pier-39.png}{pier-39.png}%
+% \doPDFgetembeddedfilestreamreference{pier-39.png}\xPDFobjectreference
+% \edef\xxxx{/RF [(pier-39.png) \xPDFobjectreference]}%
+
+% todo: alternative renderings
+%
+% object_1 -> <</Type /Rendition /S /MR /C << /Type /MediaClip ... >> >>
+% object_2 -> <</Type /Rendition /S /MR /C << /Type /MediaClip ... >> >>
+%
+% rendering -> <</Type /Rendition /S /MS [objref_1 objref_2]>>
+
+% todo: embedded files (too buggy)
+%
+% \let\PDFattribute\empty
+% % /D \PDFobjectreference
+% % test one, no error, but ignored
+% \doifinset\v!file{#4}
+% {\doPDFembedfile{#3}{#3}{#3}%
+% \doPDFgetembeddedfilestreamreference{#3}\PDFobjectreference
+% \edef\PDFattribute{/EF \PDFobjectreference}}%
+% % official, does not work either
+% \doifinset\v!file{#4}
+% {\doPDFembedfile{#3}{#3}{#3}%
+% \doPDFgetembeddedfilereference{#3}\PDFobjectreference}
+% % do we play the game as follows
+
+\definespecial\doinsertrendering#1#2#3#4% tag mime file options
+ {\ifundefined{PDFMR:#1}%
+ \doifinstringelse{://}{#3}\donetrue\donefalse % evt url as keyword
+ \doPDFdictionaryobject{PDFMF}{#1}
+ {/Type /Rendition
+ /S /MR
+ % does not work: /SP << /Type /MediaScreenParam /BE << /B [1 0 0] /O 0.5 >> >>
+ /C << /Type /MediaClip
+ /S /MCD
+ /N (#1)
+ /Alt [() (file not found)] % language id + message
+ /D << /Type /Filespec
+ /F (#3)
+ \ifdone/FS /URL\fi >>
+ /CT (#2) >>}%
+ % common code
+ \doifobjectreferencefoundelse{PDFMS}{#1}
+ {\doPDFgetobjectreference{PDFMS}{#1}\PDFobjectreferenceB}
+ {\doPDFgetobjectreference{PDFMU}{#1}\PDFobjectreferenceB}%
+ \doPDFgetobjectreference{PDFMF}{#1}\PDFobjectreferenceA
+ \setxvalue{PDFMR:#1}% needed /AA actions in /Screen
+ {/R \PDFobjectreferenceA
+ /AN \PDFobjectreferenceB}%
+ \doifobjectreferencefoundelse{PDFMS}{#1}\donothing
+ {\dodoinsertrenderingwindow{PDFMU}{#1}\zeropoint\zeropoint{#4}}%
+ \fi}
+
+\definespecial\doinsertrenderingobject#1#2#3#4% tag class objectname options
+ {\ifundefined{PDFMR:#1}%
+ \doPDFgetobjectreference{#2}{#3}\PDFobjectreference
+ \doPDFdictionaryobject{PDFMF}{#1}
+ {/Type /Rendition
+ /S /MR
+ /C << /Type /MediaClip
+ /S /MCD
+ /N (#1)
+ /D \PDFobjectreference>>}%
+ % common code
+ \doifobjectreferencefoundelse{PDFMS}{#1}
+ {\doPDFgetobjectreference{PDFMS}{#1}\PDFobjectreferenceB}
+ {\doPDFgetobjectreference{PDFMU}{#1}\PDFobjectreferenceB}%
+ \doPDFgetobjectreference{PDFMF}{#1}\PDFobjectreferenceA
+ \setxvalue{PDFMR:#1}% needed /AA actions in /Screen
+ {/R \PDFobjectreferenceA
+ /AN \PDFobjectreferenceB}%
+ \doifobjectreferencefoundelse{PDFMS}{#1}\donothing
+ {\dodoinsertrenderingwindow{PDFMU}{#1}\zeropoint\zeropoint{#4}}%
+ \fi}
+
+\definespecial\doinsertrenderingwindow
+ {\dodoinsertrenderingwindow{PDFMS}}
+
+\def\dodoinsertrenderingwindow#1#2#3#4#5%
+ {\vbox to #4 \bgroup
+ \checkPDFscreenactions{#2}{#5}%
+ \doPDFgetobjectpagereference{PDFMF}{#2}\PDFobjectreferenceA
+ \doPDFgetobjectreference {PDFMF}{#2}\PDFobjectreferenceB
+ \vss
+ \hbox to #3 \bgroup
+ \doPDFannotationobject{#1}{#2}{#3}{#4}
+ {/Subtype /Screen
+ /P \PDFobjectreferenceA
+ /A \PDFobjectreferenceB
+ \PDFattributes
+ /Border [0 0 0]}%
+ \hss
+ \egroup
+ \egroup}
+
+\global\let\PDFrenderingopenpageaction \empty
+\global\let\PDFrenderingclosepageaction\empty
+
+\def\checkPDFscreenactions#1#2%
+ {\let\PDFattributes\empty
+ \iflocation % important since direct -)
+ % the action can either (already) be set by the window handler
+ % or (normally when no window [i.e a zero dimensions one] is present) by keyword
+ \doifinset\v!auto{#2}
+ {% brrr, here instead of in navigation module, must move and become special
+ % now two sided dependency
+ \let\checkrendering\gobbleoneargument
+ \ifx\PDFrenderingopenpageaction \empty
+ \handlereferenceactions{\v!StartRendering{#1}}\dosetuprenderingopenpageaction
+ \fi
+ \ifx\PDFrenderingclosepageaction\empty
+ \handlereferenceactions{\v!StopRendering {#1}}\dosetuprenderingclosepageaction
+ \fi
+ }%
+ \donefalse
+ \ifx\PDFrenderingopenpageaction \empty\!!doneafalse\else\donetrue\!!doneatrue\fi
+ \ifx\PDFrenderingclosepageaction\empty\!!donebfalse\else\donetrue\!!donebtrue\fi
+ \ifdone
+ \edef\PDFattributes
+ {/AA <<\if!!donea/PO <<\PDFrenderingopenpageaction >> \fi
+ \if!!doneb/PC <<\PDFrenderingclosepageaction>> \fi>>}%
+ \fi
+ \global\let\PDFrenderingopenpageaction \empty
+ \global\let\PDFrenderingclosepageaction\empty
+ \fi}
+
+\definespecial\dosetuprenderingopenpageaction {\global\let\PDFrenderingopenpageaction \lastPDFaction}
+\definespecial\dosetuprenderingclosepageaction{\global\let\PDFrenderingclosepageaction\lastPDFaction}
+
+%D \macros
+%D {doPDFinsertbookmark}
+%D
+%D Well, here is the dreadfull bookmark, rather useless because
+%D only standard encoding is possible, no typography is done,
+%D and a maximum of 32~characters is advized.
+
+\def\doPDFinsertbookmark#1#2#3#4#5% level sublevels text page open=1
+ {\bgroup
+ % todo, unicode
+ \sanitizePDFdocencoding#3\to\bookmarktext % uses scratchcounter
+ \stripstring\bookmarktext
+ %\sanitizePDFstring#3\to\bookmarktext
+ \doPDFbookmark{#1}{#2}{\bookmarktext}{#4}{#5}%
+ \egroup}
+
+%D The next section of this module is dedicated to form
+%D support. These macros are complicated by the fact that
+%D cloning is possible.
+
+%D \macros
+%D {FDFflag...,FDFplus...}
+%D
+%D The \type{/FT} key determines the type of field: text,
+%D button or choice. The latter two come in several disguises,
+%D which are set by flipping bits in the \type{/Ff}. Other bits
+%D are used to set states. Personally I hate this bitty way of
+%D doing things. The next six bit determine the field sub type:
+
+\def\FDFflagMultiLine {4096} % 13
+\def\FDFflagNoToggleToOff {16384} % 15
+\def\FDFflagRadio {32768} % 16
+\def\FDFflagPushButton {65536} % 17
+\def\FDFflagPopUp {131072} % 18
+\def\FDFflagEdit {262144} % 19
+
+% bugged anyway, so we need to drop it:
+
+\def\FDFflagRadiosInUnison {33554432} % 26
+
+%D A few more (pdf 1.4) flags, what the spell check one: for
+%D obscure reasons for Adobe downward compatibility means
+%D enabling features that harm old applications like testing.
+
+\def\FDFflagDoNotSpellCheck {4194304} % 23
+\def\FDFflagDoNotScroll {8388608} % 24
+
+%D The next bits (watch how strange the bits are organized)
+%D take care of the states:
+
+\def\FDFflagReadOnly {1} % 1
+\def\FDFflagRequired {2} % 2
+\def\FDFflagNoExport {4} % 3
+\def\FDFflagPassword {8192} % 14
+\def\FDFflagSort {524288} % 20
+\def\FDFflagFileSelect {1048576} % 21
+
+%D There is a second, again bitset oriented, \type{/F} flag:
+
+\def\FDFplusInvisible {1} % 1
+\def\FDFplusHidden {2} % 2
+\def\FDFplusPrintable {4} % 3
+
+%def\FDFplusNoView {32} % 6
+%def\FDFplusToggleNoView {256} % 9
+
+\def\FDFplusAutoView {256} % {288} % 6+9
+
+%D \macros
+%D {setFDFswitches}
+%D
+%D The non||type bits are mapped onto user||interface
+%D swithes, to be used later on:
+
+\def\@@FDFflag{FDFflag}
+\def\@@FDFplus{FDFplus}
+
+\letvalue {\@@FDFflag\v!readonly}=\FDFflagReadOnly
+\letvalue {\@@FDFflag\v!required}=\FDFflagRequired
+\letvalue {\@@FDFflag\v!protected}=\FDFflagPassword
+\letvalue {\@@FDFflag\v!sorted}=\FDFflagSort
+\letvalue {\@@FDFflag\v!unavailable}=\FDFflagNoExport
+\letvalue {\@@FDFflag\v!nocheck}=\FDFflagDoNotSpellCheck
+\letvalue {\@@FDFflag\v!fixed}=\FDFflagDoNotScroll
+\letvalue {\@@FDFflag\v!file}=\FDFflagFileSelect
+
+\letvalue {\@@FDFplus\v!hidden}=\FDFplusHidden
+\letvalue {\@@FDFplus\v!printable}=\FDFplusPrintable
+
+\letvalue {\@@FDFplus\v!auto}=\FDFplusAutoView
+
+%D A set of switches is collected into the flags we mentioned
+%D before by the next macro (we don't handle negations yet,
+%D but do take care of redundancy):
+
+\def\FDFflag{0}
+\def\FDFplus{0}
+
+\def\setFDFswitches[#1]%
+ {\bgroup
+ \!!counta\zerocount
+ \!!countb\zerocount
+ \def\docommand##1%
+ {\doifsomething{##1}
+ {\advance\!!counta 0\getvalue{\@@FDFflag##1}%
+ \setvalue{\@@FDFflag##1}{0}%
+ \advance\!!countb 0\getvalue{\@@FDFplus##1}%
+ \setvalue{\@@FDFplus##1}{0}}}%
+ \processcommacommand[#1]\docommand
+ \xdef\FDFflag{\the\!!counta}%
+ \xdef\FDFplus{\the\!!countb}%
+ \egroup}
+
+%D \macros
+%D {setFDFvalues}
+%D
+%D Menu items are passed as an array of \type{(string)}'s and
+%D the content of this array is build with:
+
+\let\FDFvalues \empty
+\let\FDFfirstvalues \empty
+\let\FDFsecondvalues\empty
+\let\FDFkidlist \empty
+\let\FDFdefaultindex\!!zerocount
+\let\FDFdefaultvalue\empty
+
+% Why do we need to tweak this mechanism each time acrobat updates ...
+% it would make sense to have version specific sections in pdf files
+% since my guess is that it never will be done right since each year
+% new programmers have new ideas about what is supposed to happen with
+% kids. So .. best is not to trust this feature esp not for radio
+% widgets. (new flags, different interpretation of AS etc etc)
+
+\def\setFDFvalues[#1][#2]% #1 = list (item=>value) #2 = default
+ {\let\FDFvalues \empty
+ %when radio opt works ok
+ %\let\FDFfirstvalues \empty
+ %\let\FDFsecondvalues\empty
+ \let\FDFkidlist \empty
+ %\let\FDFdefaultindex\!!zerocount
+ %\let\FDFdefaultvalue\empty
+ %\scratchcounter\zerocount
+ \def\dodocommand##1=>##2=>##3\end
+ {\addtocommalist{##1}\FDFkidlist
+ %\edef\FDFfirstvalues{\FDFfirstvalues(##1)}%
+ %\doif{##1}{#2}{\edef\FDFdefaultindex{\the\scratchcounter}}%
+ %\advance\scratchcounter\plusone
+ \doifelsenothing{##2}
+ {\doif{##1}{#2}{\edef\FDFdefaultvalue{##1}}%
+ %\edef\FDFsecondvalues{\FDFsecondvalues(##1)}%
+ \edef\FDFvalues{\FDFvalues [(##1)(##1)] }}
+ {\doif{##1}{#2}{\edef\FDFdefaultvalue{##2}}%
+ %\edef\FDFsecondvalues{\FDFsecondvalues(##2)}%
+ \edef\FDFvalues{\FDFvalues [(##2)(##1)] }}}% ! ##1 is shown
+ \def\docommand##1%
+ {\dodocommand##1=>=>\end}%
+ \expanded{\processcommalist[#1]}\docommand}
+
+%D This macro accepts comma separated \type{visual=>result}
+%D pairs.
+
+%D \macros
+%D {setFDFalignment}
+%D
+%D Text and line fields can be entered and showed in three
+%D alternative alingments, indicated by a digit:
+
+\def\FDFalign{0}
+
+\def\setFDFalignment[#1]%
+ {\processaction
+ [#1]
+ [ \v!left=>\edef\FDFalign{2}, % raggedleft
+ \v!middle=>\edef\FDFalign{1}, % raggedcenter
+ \v!right=>\edef\FDFalign{0}]} % raggedright
+
+%D \macros
+%D {setFDFattributes}
+%D
+%D The weak part of (at least version 2.1 \PDF) is that only
+%D default fonts are handled well. Another restriction is that
+%D the encoding vector must be the standard \PDF\ document one.
+%D Although the \PDF\ reference explictly states that one could
+%D use the normal text operators, leading is not yet handled.
+%D
+%D For the moment the current \CONTEXT\ font is mapped onto
+%D one best suitable default font. The color attribute is
+%D less problematic and is directly derived from the \CONTEXT\
+%D color.
+
+\def\FDFattributes{/Helv 12 Tf 0 g 14.4 TL}
+
+\def\FDFrm {TiRo} \def\FDFss {Helv} \def\FDFtt {Cour}
+\def\FDFrmtf{TiRo} \def\FDFsstf{Helv} \def\FDFtttf{Cour}
+\def\FDFrmbf{TiBo} \def\FDFssbf{HeBo} \def\FDFttbf{CoBo}
+\def\FDFrmit{TiIt} \def\FDFssit{HeOb} \def\FDFttit{CoOb}
+\def\FDFrmsl{TiIt} \def\FDFsssl{HeOb} \def\FDFttsl{CoOb}
+\def\FDFrmbi{TiBI} \def\FDFssbi{HeBO} \def\FDFttbi{CoBO}
+\def\FDFrmbs{TiBI} \def\FDFssbs{HeBO} \def\FDFttbs{CoBO}
+
+\let\FDFusedfonts=\FDFsstf
+
+\def\setFDFattributes[#1,#2,#3,#4]% style, color, backgroundcolor, framecolor
+ {\bgroup % nog interlinie: n TL
+ \setbox\scratchbox\hbox
+ \bgroup
+ \doconvertfont{#1}{}%
+ \PointsToBigPoints\bodyfontsize\size % x/xx, so better the actual size
+ \doifdefinedelse{FDF\fontstyle\fontalternative}
+ {\xdef\FDFattributes{\getvalue{FDF\fontstyle\fontalternative}}}
+ {\doifdefinedelse{FDF\fontstyle}
+ {\xdef\FDFattributes{\getvalue{FDF\fontstyle}}}
+ {\xdef\FDFattributes{\FDFrm}}}%
+ \doglobal\addtocommalist\FDFattributes\FDFusedfonts
+ \xdef\FDFattributes% move up with "x.y Ts"
+ {/\FDFattributes\space\size\space Tf\space\PDFcolor{#2}}%
+ \doifelsenothing{#3}
+ {\global\let\FDFsurroundings\empty}
+ {\xdef\FDFsurroundings{/BG \FDFcolor{#3}}}%
+ \doifsomething{#4}
+ {\xdef\FDFsurroundings{\FDFsurroundings\space /BC \FDFcolor{#4}}}%
+ \ifx\FDFsurroundings\empty \else
+ \xdef\FDFsurroundings{/MK << \FDFsurroundings\space>>}%
+ \fi
+ \egroup
+ \egroup}
+
+%D \macros
+%D {setFDFactions}
+%D
+%D Depending on the type of the field, one can assign
+%D \JAVASCRIPT\ code to a mouse event or keystroke. The next
+%D preparation macro shows what events are handled.
+
+\let\FDFactions\empty
+
+%\def\setFDFactions[#1,#2,#3,#4,#5,#6,#7,#8]%
+% {\global\let\FDFactions\empty
+% \setFDFaction D#1% mousedown
+% \setFDFaction U#2% mouseup
+% \setFDFaction E#3% enterregion
+% \setFDFaction X#4% exitregion
+% \setFDFaction K#5% afterkeystroke
+% \setFDFaction F#6% formatresult
+% \setFDFaction V#7% validateresult
+% \setFDFaction C#8% calculatewhatever
+% \ifx\FDFactions\empty\else
+% \xdef\FDFactions{/AA << \FDFactions >>}% since 1.3 no longer inherited
+% \fi}
+%% {\setFDFaction A#2}% mouseup % changed for version 5
+
+% \def\setFDFactions[#1,#2,#3,#4,#5,#6,#7,#8,%
+% {\global\let\FDFactions\empty
+% \setFDFaction D#1% mousedown
+% %\setFDFaction U#2% mouseup
+% \setFDFaction E#3% enterregion
+% \setFDFaction X#4% exitregion
+% \setFDFaction K#5% afterkeystroke
+% \setFDFaction F#6% formatresult
+% \setFDFaction V#7% validateresult
+% \setFDFaction C#8% calculatewhatever
+% \setFDFactionsmore#2,}
+
+% \def\setFDFactionsmore#1,#2,#3]%
+% {\setFDFaction{Fo}#2% focusin
+% \setFDFaction{Bl}#3% focusout % was I (now pdf ref manual explicitly talks about lowercase l)
+% \ifx\FDFactions\empty\else
+% \xdef\FDFactions{/AA << \FDFactions >>}% since 1.3 no longer inherited
+% \fi
+% \setFDFaction A#1}% mouseup
+
+\def\setFDFactions[#1,#2,#3,#4,#5,#6,#7,#8,%
+ {\global\let\FDFactions\empty
+ \setFDFaction D#1% mousedown
+ \setFDFaction U#2% mouseup
+ \setFDFaction E#3% enterregion
+ \setFDFaction X#4% exitregion
+ \setFDFaction K#5% afterkeystroke
+ \setFDFaction F#6% formatresult
+ \setFDFaction V#7% validateresult
+ \setFDFaction C#8% calculatewhatever
+ \setFDFactionsmore}
+
+\def\setFDFactionsmore#1,#2]%
+ {\setFDFaction{Fo}#1% focusin
+ \setFDFaction{Bl}#2% focusout % was I (now pdf ref manual explicitly talks about lowercase l)
+ \ifx\FDFactions\empty\else
+ \xdef\FDFactions{/AA << \FDFactions >>}% since 1.3 no longer inherited
+ \fi}
+
+% todo, when new var scheme is implemented
+%
+% \setFDFaction{PO}\@@DriverFieldPageOpen
+% \setFDFaction{PC}\@@DriverFieldPageClose
+% \setFDFaction{PV}\@@DriverFieldPageVisible
+% \setFDFaction{PI}\@@DriverFieldPageInVisible
+
+%D The event handler becomes something:
+%D
+%D \starttyping
+%D /AA << /D << /S ... >> ... /C << /S ... >>
+%D /A << /S /JavaScript /JS (...) >>
+%D \stoptyping
+
+% \def\setFDFaction#1#2%
+% {\bgroup
+% \global\let\sanitizedJScode\empty
+% \def\setFDFaction##1%
+% {\doifreferencefoundelse{##1}
+% {\doifelse{\currentreferencespecial}{JS} % filter non-js
+% {\presetJScode
+% \currentreferenceoperation
+% \currentreferencearguments
+% \doPSsanitizeJScode\JScode\to\JScode
+% \xdef\sanitizedJScode{\sanitizedJScode\space\JScode}}
+% {\illegalreference{##1}}}
+% {\unknownreference{##1}}}%
+% \@EA\processcommalist\@EA[#2]\setFDFaction % one level expansion
+% \ifx\sanitizedJScode\empty \else
+% \xdef\FDFactions%
+% {\FDFactions /#1 << /S /JavaScript /JS (\sanitizedJScode) >> }%
+% \fi
+% \egroup}
+%
+% acrobat 5 supports other that JS actions too
+
+\def\setFDFaction#1#2%
+ {\bgroup
+ \def\docommand{\xdef\FDFactions{\FDFactions /#1 << \lastPDFaction >> }}%
+ \@EA\handlereferenceactions\@EA{#2}\docommand % one level expansion
+ \egroup}
+
+%D \macros
+%D {testFDFactions}
+%D
+%D This rather confusion prone series of script can be tested
+%D with:
+%D
+%D \starttyping
+%D \testFDFactions
+%D \stoptyping
+%D
+%D which simply redefined the previous macro to one that prints
+%D a message to the console.
+
+\def\testFDFactions
+ {\def\setFDFaction##1##2%
+ {\doPSsanitizeJScode console.show();console.println("executing:##1"); \to\sanitizedJScode
+ \edef\FDFactions{\FDFactions /##1 << /S /JavaScript /JS (\sanitizedJScode) >> }}}
+
+%D \macros
+%D {doFDFregistercalculationset}
+%D
+%D There is at most one calculation order list, which defines
+%D the order in which fields are calculated.
+
+\let\PDFcalculationset\empty
+
+\def\doFDFregistercalculationset#1%
+ {\def\PDFcalculationset{#1}}
+
+%D \macros
+%D {registerFDFobject,everylastshipout}
+%D
+%D Officially one needs to embed some general datastructures
+%D that tell the viewer what fields are present in the file, as
+%D well as what resources they use. The next mechanism does that
+%D job automatically when one registers the field.
+
+\def\flushFDFnames
+ {\ifbuildFDFdictionary
+ \ifx\FDFcollection\empty\else
+ \ifbuildFDFencodingvector
+ \doPDFdictionaryobject{FDF}{local:encodingvector}{\FDFencodingvector}%
+ \fi
+ \defineFDFfonts
+ \doPDFarrayobject{FDF}{local:fields}{\FDFcollection}%
+ \doPDFgetobjectreference{FDF}{local:fields}\PDFobjectreference
+ % The /NeedAppearances is pretty important because
+ % otherwise Acrobat 5 blows up on cloned radio widgets
+ \doPDFdictionaryobject{FDF}{local:acroform}
+ {/Fields \PDFobjectreference\space
+ /NeedAppearances true
+ \doFDFiffieldset\PDFcalculationset{/CO [\doFDFgetfieldset\PDFcalculationset]}
+ /DR << /Font << \FDFfonts >> >>
+ /DA (/Helv 10 Tf 0 g)}%
+ \doPDFgetobjectreference{FDF}{local:acroform}\PDFobjectreference
+ \doPDFaddtocatalog
+ {/AcroForm \PDFobjectreference}%
+ \global\let\FDFcollection\empty
+ \global\let\flushFDFnames\relax
+ \fi
+ \fi}
+
+\let\FDFcollection\empty
+
+\def\registerFDFobject#1%
+ {\ifbuildFDFdictionary
+ \ifx\flushFDFnames\relax
+ \writestatus{FDF}{second run needed for field list (#1)}%
+ \fi
+ \doPDFgetobjectreference{FDF}{#1}\PDFobjectreference
+ \xdef\FDFcollection{\FDFcollection\space\PDFobjectreference}%
+ \fi}
+
+\appendtoksonce \flushFDFnames \to \everylastshipout % test \everybye / was \prependtoksonce
+
+%D \macros
+%D {defineFDFfonts,
+%D ifbuildFDFdictionary,
+%D ifbuildFDFencodingvector}
+%D
+%D Another datastruture concerns the fonts used. We only
+%D define the fonts we use.
+
+\newif\ifbuildFDFdictionary \buildFDFdictionarytrue
+\newif\ifbuildFDFencodingvector \buildFDFencodingvectortrue
+
+\def\defineFDFfonts
+ {\let\FDFfonts\empty
+ \processcommacommand[\FDFusedfonts]\defineFDFfont}
+
+\def\defineFDFfont#1%
+ {\ifbuildFDFencodingvector
+ \doPDFgetobjectreference{FDF}{local:encodingvector}\PDFobjectreference
+ \fi
+ \doPDFdictionaryobject{FDF}{local:#1}
+ {/Type /Font
+ /Subtype /Type1
+ /Name /#1
+ \ifbuildFDFencodingvector /Encoding \PDFobjectreference\space\fi
+ /BaseFont /\getvalue{FDFname#1}}%
+ \doPDFgetobjectreference{FDF}{local:#1}\PDFobjectreference
+ \edef\FDFfonts{\FDFfonts \space/#1 \PDFobjectreference}}
+
+%D Another list of constants:
+
+\def\FDFnameTiRo {Times-Roman}
+\def\FDFnameTiBo {Times-Bold}
+\def\FDFnameTiIt {Times-Italic}
+\def\FDFnameTiBI {Times-BoldItalic}
+\def\FDFnameHelv {Helvetica}
+\def\FDFnameHeBo {Helvetica-Bold}
+\def\FDFnameHeOb {Helvetica-Oblique}
+\def\FDFnameHeBO {Helvetica-BoldOblique}
+\def\FDFnameCour {Courier}
+\def\FDFnameCoBo {Courier-Bold}
+\def\FDFnameCoOb {Courier-Oblique}
+\def\FDFnameCoBO {Courier-BoldOblique}
+
+%D And a big one: (should be run time loaded (spec-run or
+%D so)).
+
+\def\FDFencodingvector
+ {/Type /Encoding
+ /Differences
+ [ 24 /breve /caron /circumflex /dotaccent /hungarumlaut /ogonek
+ /ring /tilde
+ 39 /quotesingle
+ 96 /grave
+ 128 /bullet /dagger /daggerdbl /ellipsis /emdash /endash /florin
+ /fraction /guilsinglleft /guilsinglright /minus /perthousand
+ /quotedblbase /quotedblleft /quotedblright /quoteleft
+ /quoteright /quotesinglbase /trademark /fi /fl /Lslash /OE
+ /Scaron /Ydieresis /Zcaron /dotlessi /lslash /oe /scaron
+ /zcaron
+ 164 /currency
+ 166 /brokenbar
+ 168 /dieresis /copyright /ordfeminine
+ 172 /logicalnot /.notdef /registered /macron /degree /plusminus
+ /twosuperior /threesuperior /acute /mu
+ 183 /periodcentered /cedilla /onesuperior /ordmasculine
+ 188 /onequarter /onehalf /threequarters 192 /Agrave /Aacute
+ /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave
+ /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex
+ /Idieresis /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde
+ /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex
+ /Udieresis /Yacute /Thorn /germandbls /agrave /aacute
+ /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave
+ /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex
+ /idieresis /eth /ntilde /ograve /oacute /ocircumflex /otilde
+ /odieresis /divide /oslash /ugrave /uacute /ucircumflex
+ /udieresis /yacute /thorn /ydieresis ]}
+
+%D \macros
+%D {currentFDFmode,currentFDFparent,currentFDFkids,currenrFDFroot}
+%D
+%D There are three more quasi global interfacing variables
+%D that need to be set.
+
+\let\currentFDFmode =\fieldlonermode
+\let\currentFDFkids =\empty
+\let\currentFDFparent=\empty
+\let\currentFDFroot =\empty
+
+%D \macros
+%D {dosetfieldstatus}
+%D
+%D And here comes the special that deals with them.
+
+\definespecial\dosetfieldstatus#1#2#3#4%
+ {\chardef\currentFDFmode #1%
+ \edef\currentFDFparent {#2}%
+ \edef\currentFDFkids {#3}%
+ \edef\currentFDFroot {#4}}
+
+%D \macros
+%D {dosetuppageview}
+%D
+%D Because this command will seldom be called, we can permit
+%D slow action processing. We need three settings, one for
+%D direct \PDF\ inclusion, the other as \PDFTEX\ keyword, an
+%D a last one for form. All determine in what way the
+%D screen is adapted when going to a destination. Watch the
+%D space.
+
+\def\PDFpageviewkey{fit}
+\def\PDFpageviewwrd{/Fit}
+\def\PDFpageview {/View [\PDFpageviewwrd] }
+\let\PDFpagexyzspec\relax % 0 0 0 hack, pdftex does handle this, for dvipdfmx we need height
+
+\def\dosetuppageview#1% watch the v-h swapping here
+ {\processaction
+ [#1]
+ [ \v!fit=>\def\PDFpageviewkey {fit}\def\PDFpageviewwrd{/Fit},
+ \v!width=>\def\PDFpageviewkey {fith}\def\PDFpageviewwrd{/FitH},
+ \v!height=>\def\PDFpageviewkey {fitv}\def\PDFpageviewwrd{/FitV},
+ \v!minwidth=>\def\PDFpageviewkey{fitbh}\def\PDFpageviewwrd{/FitBH},
+ \v!minheight=>\def\PDFpageviewkey{fitbv}\def\PDFpageviewwrd{/FitBV},
+ \v!standard=>\ifx\PDFpagexyzspec\relax
+ % empty does not work too wel with dpx
+ \def\PDFpageviewkey{fit}%
+ \def\PDFpageviewwrd{/Fit}%
+ \else
+ \edef\PDFpageviewkey{xyz \PDFpagexyzspec}%
+ \edef\PDFpageviewwrd{/XYZ \PDFpagexyzspec}%
+ \fi,
+ \s!unknown=>\def\PDFpageviewkey {fit}\def\PDFpageviewwrd{/Fit}]%
+ \edef\PDFpageview{\ifx\PDFpageviewwrd\empty\else/View [\PDFpageviewwrd]\fi}}
+
+%D \macros
+%D {setFDFkids}
+%D
+%D Clones as well as radiofields (which themselves can have
+%D cloned components) need a list of kids. The next macro
+%D builds one.
+
+\def\setFDFkids[#1][#2]% tag commalist
+ {\let\FDFkids\empty
+ \def\docommand##1%
+ {\doPDFgetobjectreference{FDF}{#1##1}\PDFobjectreference
+ \edef\FDFkids{\FDFkids\PDFobjectreference\space}}%
+ \@EA\processcommalist\@EA[#2]\docommand
+ \ifx\FDFkids\empty\else\edef\FDFkids{/Kids [\FDFkids]}\fi
+% \edef\FDFkids{/Kids [\FDFkids]}%
+ }
+
+%D \macros
+%D {doFDFpresetlinefield,doFDFpresettextfield,
+%D doFDFpresetchoicefield,doFDFpresetpopupfield,doFDFpresetcombofield,
+%D doFDFpresetpushfield,doFDFpresetcheckfield,
+%D doFDFpresetfield,doFDFpresetradiorecord}
+%D
+%D I would say: read the \PDF\ reference manual first and see
+%D what happens here next. Lucky us that they have so much in
+%D common.
+
+\def\doFDFpresetlinefield#1#2#3#4#5#6#7#8#9%
+ {\bgroup
+ \setFDFlayer\@@DriverFieldLayer
+ \setFDFswitches[#7]%
+ \setFDFattributes[#6]%
+ \setFDFalignment[#8]%
+ \setFDFactions[#9]%
+ \expanded{\escapePSstring#4}\to\FDFtext
+ \ifcase\currentFDFmode
+ \doPDFannotationobject{FDF}{#1}{#2}{#3}
+ {/Subtype /Widget /T (#1) /FT /Tx
+ /MaxLen \ifcase0#5 1000 \else#5 \fi
+ %/DV (#4) /V (#4) % value added
+ /DV (\FDFtext) /V (\FDFtext) % value added
+ /Ff \FDFflag\space
+ /F \FDFplus\space
+ /DA (\FDFattributes)
+ \FDFlayer\space
+ \FDFsurroundings\space
+ /Q \FDFalign\space
+ \FDFactions}%
+ \registerFDFobject{#1}%
+ \or
+ \setFDFkids[kids:][\currentFDFkids]%
+ \doPDFdictionaryobject{FDF}{#1}
+ {/T (#1) /FT /Tx
+ /MaxLen \ifcase0#5 1000 \else#5 \fi
+ \FDFkids\space
+ %/DV (#4) /V (#4) % value added
+ /DV (\FDFtext) /V (\FDFtext) % value added
+ /Ff \FDFflag\space
+ /F \FDFplus\space
+ /DA (\FDFattributes)
+ \FDFlayer\space
+ \FDFsurroundings\space
+ /Q \FDFalign\space
+ \FDFactions}%
+ \registerFDFobject{#1}%
+ \or
+ \doPDFgetobjectreference{FDF}\currentFDFparent\PDFobjectreference
+ %\global\objectreferencingtrue
+ \doPDFannotationobject{FDF}{kids:#1}{#2}{#3}
+ {/Subtype /Widget
+ /Parent \PDFobjectreference
+ /Ff \FDFflag\space
+ /F \FDFplus\space
+ /DA (\FDFattributes)
+ \FDFlayer\space
+ \FDFsurroundings\space
+ /Q \FDFalign\space
+ \FDFactions}%
+ \or
+ \doPDFgetobjectreference{FDF}\currentFDFparent\PDFobjectreference
+ %\global\objectreferencingtrue
+ \doPDFannotationobject{FDF}{kids:#1}{#2}{#3}
+ {/Subtype /Widget
+ /Parent \PDFobjectreference
+ /F \FDFplus
+ \FDFactions}%
+ \fi
+ \egroup}
+
+\def\doFDFpresettextfield#1#2#3#4#5#6#7#8#9%
+ {\doFDFpresetlinefield{#1}{#2}{#3}{#4}{#5}{#6}{MultiLine,#7}{#8}{#9}}
+
+\def\doFDFpresetchoicefield#1#2#3#4#5#6#7#8%
+ {\bgroup
+ \setFDFlayer\@@DriverFieldLayer
+ \setFDFswitches[#6]%
+ \setFDFattributes[#5]%
+ \setFDFvalues[#7][#4]%
+ \setFDFactions[#8]%
+ \ifcase\currentFDFmode
+ \doPDFannotationobject{FDF}{#1}{#2}{#3}
+ {/Subtype /Widget
+ /T (#1) /FT /Ch
+ /DV (#4) /V (#4)
+ /Ff \FDFflag\space
+ /F \FDFplus\space
+ /DA (\FDFattributes)
+ \FDFlayer\space
+ \FDFsurroundings\space
+ /Opt [\FDFvalues]
+ \FDFactions}%
+ \registerFDFobject{#1}%
+ \or
+ \setFDFkids[kids:][\currentFDFkids]%
+ \doPDFdictionaryobject{FDF}{#1}
+ {/T (#1) /FT /Ch
+ \FDFkids\space
+ /DV (#4) /V (#4)
+ /Ff \FDFflag\space
+ /F \FDFplus\space
+ /DA (\FDFattributes)
+ \FDFlayer\space
+ \FDFsurroundings\space
+ /Opt [\FDFvalues]
+ \FDFactions}%
+ \registerFDFobject{#1}%
+ \or
+ \doPDFgetobjectreference{FDF}\currentFDFparent\PDFobjectreference
+ %\global\objectreferencingtrue
+ \doPDFannotationobject{FDF}{kids:#1}{#2}{#3}
+ {/Subtype /Widget
+ /Parent \PDFobjectreference
+ /Ff \FDFflag\space
+ /F \FDFplus\space
+ /DA (\FDFattributes)
+ \FDFlayer\space
+ \FDFsurroundings\space
+ \FDFactions}%
+ \or
+ \doPDFgetobjectreference{FDF}\currentFDFparent\PDFobjectreference
+ %\global\objectreferencingtrue
+ \doPDFannotationobject{FDF}{kids:#1}{#2}{#3}
+ {/Subtype /Widget
+ /Parent \PDFobjectreference
+ /F \FDFplus
+ \FDFactions}%
+ \fi
+ \egroup}
+
+\def\doFDFpresetpopupfield#1#2#3#4#5#6#7#8%
+ {\doFDFpresetchoicefield{#1}{#2}{#3}{#4}{#5}{PopUp,#6}{#7}{#8}}
+
+\def\doFDFpresetcombofield#1#2#3#4#5#6#7#8%
+ {\doFDFpresetchoicefield{#1}{#2}{#3}{#4}{#5}{PopUp,Edit,#6}{#7}{#8}}
+
+\newif\ifFDFvalues
+
+\def\doFDFpresetpushcheckfield#1#2#3#4#5#6#7#8% in acro<5 (\FDFdefault)
+ {\bgroup % in acro>5 /\FDFdefault
+ \setFDFlayer\@@DriverFieldLayer
+ \ifcase#8\relax\FDFvaluesfalse\else\FDFvaluestrue\fi
+ \setFDFswitches[#5]%
+ \setFDFactions[#7]%
+ \doifelse{#4}{1}
+ {\def\FDFdefault{On}}
+ {\def\FDFdefault{Off}}%
+ \ifcase\currentFDFmode
+ \doFDFappearance{On}{#6}{#8}%
+ \doPDFannotationobject{FDF}{#1}{#2}{#3}
+ {/Subtype /Widget /T (#1) /FT /Btn
+ \ifFDFvalues
+ /DV /\FDFdefault\space
+ /V /\FDFdefault\space
+ /AS /\FDFdefault\space
+ \fi
+ \FDFlayer
+ /Ff \FDFflag\space
+ /F \FDFplus\space
+ \FDFlayer\space
+ \FDFappearance\space
+% /IF << /SW /N >> % strange, only works for stupid buttons
+ \FDFactions}%
+ \registerFDFobject{#1}%
+ \or % no appearance and layer ?
+ \setFDFkids[kids:][\currentFDFkids]%
+ \doPDFdictionaryobject{FDF}{#1}
+ {/T (#1) /FT /Btn
+ \FDFkids\space
+ \ifFDFvalues
+ /DV /\FDFdefault\space
+ /V /\FDFdefault\space
+ /AS /\FDFdefault\space
+ \fi
+ /Ff \FDFflag\space
+ /F \FDFplus\space
+ \FDFactions}%
+ \registerFDFobject{#1}%
+ \or
+ \doFDFappearance{On}{#6}{#8}%
+ \doPDFgetobjectreference{FDF}\currentFDFparent\PDFobjectreference
+ %\global\objectreferencingtrue
+ \doPDFannotationobject{FDF}{kids:#1}{#2}{#3}
+ {/Subtype /Widget
+ /Parent \PDFobjectreference\space
+ \ifFDFvalues
+ /DV /\FDFdefault\space
+ /V /\FDFdefault\space
+ /AS /\FDFdefault\space
+ \fi
+ /Ff \FDFflag\space
+ /F \FDFplus\space
+ \FDFlayer\space
+ \FDFappearance\space
+ \FDFactions}%
+ \or
+ \doFDFappearance{On}{#6}{#8}%
+ \doPDFgetobjectreference{FDF}\currentFDFparent\PDFobjectreference
+ %\global\objectreferencingtrue
+ \doPDFannotationobject{FDF}{kids:#1}{#2}{#3}
+ {/Subtype /Widget
+ /Parent \PDFobjectreference\space
+ /F \FDFplus\space
+ \ifFDFvalues
+ /DV /\FDFdefault\space
+ /V /\FDFdefault\space
+ /AS /\FDFdefault\space
+ \fi
+ \FDFlayer\space
+ \FDFappearance
+ \FDFactions}%
+ \fi
+ \egroup}
+
+\def\doFDFpresetpushfield#1#2#3#4#5#6#7%
+ {\doFDFpresetpushcheckfield{#1}{#2}{#3}{#4}{PushButton,#5}{#6}{#7}{0}}
+
+\def\doFDFpresetcheckfield#1#2#3#4#5#6#7%
+ {\doFDFpresetpushcheckfield{#1}{#2}{#3}{#4}{#5}{#6}{#7}{1}}
+
+\def\doFDFpresetradiofield#1#2#3#4#5#6#7#8%
+ {\bgroup
+ \setFDFlayer\@@DriverFieldLayer
+ \FDFvaluestrue
+ \setFDFswitches[#5]%
+ \setFDFactions[#8]%
+ \doifelsenothing{#4}
+ {\def\FDFdefault{Off}}
+ {\def\FDFdefault{#4}}%
+ \@EA\aftersplitstring\FDFdefault\at=>\to\FDFdefaultvalue
+ \ifx\FDFdefaultvalue\empty\else\let\FDFdefault\FDFdefaultvalue\fi
+ \ifcase\currentFDFmode
+ \doFDFappearance{#1}{#7}{1}%
+ \doPDFgetobjectreference{FDF}{#6}\PDFobjectreference
+ \doPDFannotationobject{FDF}{#1}{#2}{#3}
+ {/Subtype /Widget
+ /Parent \PDFobjectreference\space
+ /F \FDFplus\space
+ /AS /\FDFdefault\space
+ \FDFlayer\space
+ \FDFappearance\space
+ \FDFactions}%
+ \registerFDFobject{#1}%
+ \or
+ \setFDFkids[kids:][\currentFDFkids]%
+ \doPDFgetobjectreference{FDF}{#6}\PDFobjectreference
+ \doPDFdictionaryobject{FDF}{#1}
+ {/Parent \PDFobjectreference\space
+ \FDFkids\space
+ /F \FDFplus\space
+ \FDFactions}%
+ \registerFDFobject{#1}%
+ \or
+ %\doFDFappearance{#1}{#7}{1}%
+ \doFDFappearance{\currentFDFparent}{#7}{1}%
+ \doPDFgetobjectreference{FDF}\currentFDFparent\PDFobjectreference
+ %\global\objectreferencingtrue % nb
+ \doPDFannotationobject{FDF}{kids:#1}{#2}{#3}
+ {/Subtype /Widget
+ /Parent \PDFobjectreference\space
+ /AS /\FDFdefault\space
+ /F \FDFplus\space
+ \FDFlayer\space
+ \FDFappearance\space
+ \FDFactions}%
+ \or
+ %\doFDFappearance{#1}{#7}{1}%
+ \doFDFappearance{\currentFDFparent}{#7}{1}%
+ \doPDFgetobjectreference{FDF}\currentFDFparent\PDFobjectreference
+ %\global\objectreferencingtrue
+ \doPDFannotationobject{FDF}{kids:#1}{#2}{#3}
+ {/Subtype /Widget
+ /Parent \PDFobjectreference\space
+ /AS /\FDFdefault\space
+ /F \FDFplus\space
+ \FDFlayer\space
+ \FDFappearance\space
+ \FDFactions}%
+ \fi
+ \egroup}
+
+%D \macros
+%D {setFDFstrings}
+%D
+%D This one creates a string array.
+
+%\def\setFDFstrings[#1]%
+% {\let\FDFstrings\empty
+% \def\docommand##1{\edef\FDFstrings{\FDFstrings(##1)}}%
+% \processcommacommand[#1]\docommand}
+
+% Beware, RadiosInUnison is really needed in the pre 1.5/6 time this
+% was the default but out of a sudden it's no longer the case. Also
+% the NoToggleToOff interferes with kids of kids and both it will
+% break older documents, i.e. so much for pdf as standard. With
+% features like widgets we can probably best wait till adobe tools
+% themselves support it because that's probably the moment that
+% functionality gets frozen/becomes definitive. Actually, acrobat
+% flattens the kids tree, so that's yet another situation. The
+% interesting thing is that it worked ok in acrobat 2/3 but got bugged
+% in later versions. [The rationale is in html compatibility, which
+% seems to be more important than compatibility of documents, which in
+% turn renders acrobat useless for forms.] Anyway, synchronization is
+% broken or not depending on the combination pdfversion/acrobatversion.
+
+\def\doFDFpresetradiorecord#1#2#3#4#5%
+ {\bgroup
+ % < pdf 1.5 (1.5 was broken)
+ % \setFDFswitches[Radio,NoToggleToOff,RadiosInUnison,#3]%
+ % > pdf 1.5
+ \setFDFswitches[Radio,RadiosInUnison,#3]%
+ % older, else fatal error
+ % \setFDFkids[#4][]%
+ % newer
+ \setFDFvalues[#4][#2]% inits kidlist
+ \expanded{\setFDFkids[][\FDFkidlist]}%
+ %
+ \setFDFactions[#5]%
+ \doPDFdictionaryobject{FDF}{#1}
+ {%/Subtype /Widget
+ /FT /Btn /T (#1) /Rect [0 0 0 0]
+ % used to be this
+ % /V (#2)
+ % then this
+ % /DV (#2)
+ % since this bomded in 5
+ % /V (#2)
+ % and now finally this works
+ /H /N
+ % /opt is buggy in 5.05, only works once, sigh
+ %\ifx\FDFfirstvalues\FDFsecondvalues
+ /V /#2
+ %\else
+ % /V /\FDFdefaultindex\space
+ % /Opt [\FDFsecondvalues]
+ %\fi
+ /Ff \FDFflag\space
+ /F \FDFplus\space
+ \FDFkids\space
+ \FDFactions}%
+ \egroup}
+
+%D At the cost of some more references, we can save bytes,
+%D by sharing appearance dictionaries. This code needs more
+%D documentation. Surprise:
+
+\def\dodoFDFappearance#1#2%
+ {\ifx#2\empty\else
+ \dogetcommacommandelement1\from#2\to\commalistelement
+ \ifx\commalistelement\empty\else
+ \doPDFgetobjectreference{SYM}\commalistelement\PDFobjectreference
+ \edef\N{\ifFDFvalues\N /#1 \fi\PDFobjectreference\space}%
+ \fi
+ \dogetcommacommandelement2\from#2\to\commalistelement
+ \ifx\commalistelement\empty\else
+ \doPDFgetobjectreference{SYM}\commalistelement\PDFobjectreference
+ \edef\R{\ifFDFvalues\R /#1 \fi\PDFobjectreference\space}%
+ \fi
+ \dogetcommacommandelement3\from#2\to\commalistelement
+ \ifx\commalistelement\empty\else
+ \doPDFgetobjectreference{SYM}\commalistelement\PDFobjectreference
+ \edef\D{\ifFDFvalues\D /#1 \fi\PDFobjectreference\space}%
+ \def\FDFappearance{/H /P }%
+ \fi
+ \fi}
+
+\def\redoFDFappearance#1%
+ {\ifx#1\empty\else
+ \dogetcommacommandelement3\from#1\to\commalistelement
+ \ifx\commalistelement\empty\else
+ \def\FDFappearance{/H /P }%
+ \fi
+ \fi}
+
+\def\doFDFappearance#1#2#3%
+ {\ifcase#3\relax % push only field
+ \edef\yes{#2}%
+ \let\no\empty
+ \else % on / off field
+ \dogetcommacommandelement1\from#2,\to\yes
+ \dogetcommacommandelement2\from#2,\to\no
+ \fi
+ \def\FDFappearance{/H /N}%
+ \doifobjectfoundelse{FDF}{ap:#1:\yes:\no}
+ {\redoFDFappearance\yes
+ \redoFDFappearance\no}
+ {\presetobject{FDF}{ap:#1:\yes:\no}% funny hack
+ \let\N\empty\let\R\empty\let\D\empty
+ \dodoFDFappearance{#1}\yes
+ \dodoFDFappearance{Off}\no
+ \doPDFdictionaryobject{FDF}{ap:#1:\yes:\no}
+ {\ifx\N\empty\else/N \ifFDFvalues<<\N>>\else\N\fi\fi
+ \ifx\R\empty\else/R \ifFDFvalues<<\R>>\else\R\fi\fi
+ \ifx\D\empty\else/D \ifFDFvalues<<\D>>\else\D\fi\fi}}%
+ \doPDFgetobjectreference{FDF}{ap:#1:\yes:\no}\PDFobjectreference
+ \edef\FDFappearance{\FDFappearance /AP \PDFobjectreference}}
+
+%\def\doFDFdefault#1#2%
+% {\dogetcommacommandelement1\from#1,\to\commalistelement
+% \dogetcommacommandelement1\from\commalistelement\to\commalistelement
+% \doifelse{\commalistelement}{#2} % kan ook met \ifx
+% {\def\FDFdefault{On}}{\def\FDFdefault{Off}}}
+
+\def\doFDFdefault#1#2%
+ {\doifelse{#2}{1}{\def\FDFdefault{On}}{\def\FDFdefault{Off}}}
+
+%D Layer support:
+
+\def\setFDFlayer#1% todo : \ifx\PDFobjectreference\noPDFobjectreference ipv found
+ {\letempty\FDFlayer
+ \doifsomething{#1}%
+ {\checkproperty[#1]% == \dodocheckproperty\@@DriverFieldLayer
+ \doifobjectreferencefoundelse{PDLN}{#1}
+ {\doPDFgetobjectreference{PDLN}{#1}\!!stringa % we need to avoid a clash with other macros
+ \edef\FDFlayer{/OC \!!stringa}}%
+ \donothing}}
+
+%D The three appearances {\em normal}, \type{roll over} and
+%D \type{push down} are passed as comma separated triplets,
+%D that is, the second argument can look like:
+%D
+%D \starttyping
+%D {yes,ok,fine},{no,rubish,awful}
+%D \stoptyping
+
+%D \macros
+%D {doFDFdefinefieldset,doFDFgetfieldset,doFDFiffieldset}
+%D
+%D Field sets, the ones we use in submitting and resetting
+%D fields, are implemented using the next low level specials:
+%D
+%D \starttyping
+%D \doFDFdefinefieldset{TAG}{name,name,...}
+%D \doFDFgetfieldset{TAG}
+%D \doFDFiffieldset{TAG}{sequence}
+%D \stoptyping
+
+\def\doFDFdefinefieldset#1#2% tag commalist
+ {\let\FDFfieldset\empty
+ \def\docommand##1%
+ {\doPDFgetobjectreference{FDF}{##1}\PDFobjectreference
+ \edef\FDFfieldset{\FDFfieldset\PDFobjectreference\space}}%
+ \processcommacommand[#2]\docommand % nb: command
+ \setevalue{FDF:set:#1}{\FDFfieldset}}
+
+\def\doFDFgetfieldset#1%
+ {\getvalue{FDF:set:#1}}
+
+\def\doFDFiffieldset#1#2%
+ {\ifundefined{FDF:set:#1}\else#2\fi}
+
+%D In the goto specials we took care of secondary references.
+%D Here we define the macros used.
+
+\def\doPDFresetgotowhereever
+ {\global\let\secondaryPDFreferences\empty}
+
+\doPDFresetgotowhereever % just to be sure
+
+% we can (in etex) share more by testing on this
+
+\def\savesecondaryPDFreference#1%
+ {\@EA\xdef\csname PDF-SR:\the\nofsecondaryreferences\endcsname{#1}}
+
+\def\savesecondaryPDFreference % #1 == \action
+ {\global\@EA\let\csname PDF-SR:\the\nofsecondaryreferences\endcsname}
+
+%\def\getsecondaryPDFreferences%
+% {\ifcase\nofsecondaryreferences\else
+% %\doifdefined{PDF-SR:\the\nofsecondaryreferences}
+% \xdef\secondaryPDFreferences%
+% {/Next << \csname PDF-SR:\the\nofsecondaryreferences\endcsname\space
+% \secondaryPDFreferences >>}%
+% \global\advance\nofsecondaryreferences \minusone
+% \expandafter\getsecondaryPDFreferences
+% \fi}
+
+% test should happen in core-ref
+
+\def\getsecondaryPDFreferences
+ {\ifcase\nofsecondaryreferences\else
+ \ifcsname PDF-SR:\the\nofsecondaryreferences\endcsname
+ \xdef\secondaryPDFreferences
+ {/Next << \csname PDF-SR:\the\nofsecondaryreferences\endcsname\space
+ \secondaryPDFreferences >>}%
+ \fi
+ \global\advance\nofsecondaryreferences \minusone
+ \expandafter\getsecondaryPDFreferences
+ \fi}
+
+%D \macros
+%D {loadFDFfields, showFDFfields,
+%D getFDFfield, setFDFfield}
+%D
+%D Once filled in, we can export or submit the field in the
+%D \FDF\ file format. Such a file can be loaded by
+%D
+%D \starttyping
+%D \loadFDFfields{fiel-ini}
+%D \stoptyping
+%D
+%D or inspected by
+%D
+%D \starttyping
+%D \showFDFfields{fiel-ini}
+%D \stoptyping
+%D
+%D After both commands, one can use
+%D
+%D \starttyping
+%D \getFDFfield{name}
+%D \setFDFfield{name}{value}
+%D \stoptyping
+%D
+%D to inspect and overrule the data.
+%D
+%D By default \CONTEXT\ calls the perl script \type{fdf2tex}.
+%D This script reads the \type{fdf} file and produces a file
+%D named \type{filename.fdt}. If one disables the call to this
+%D script, by saying:
+%D
+%D \starttyping
+%D \runFDFconverterfalse
+%D \stoptyping
+%D
+%D or when \CONTEXT\ cannot find the \type{fdt} file, it tries
+%D to interpret the \type{fdf} file directly. Both mechanisms
+%D are rather crude.
+
+\newif\ifrunFDFconverter \runFDFconvertertrue
+
+%D The \PERL\ script produces a file formatted as:
+%D
+%D \starttyping
+%D \beginFDFobject
+%D \beginFDFdata
+%D \beginFDFfields
+%D \FDFfield[name=,value=]
+%D \endFDFfields
+%D \endFDFdata
+%D \endFDFobject
+%D \stoptyping
+%D
+%D One reason for using key value pairs is that we cannot be
+%D sure or the order in which the name and value are given
+%D (actually the reverse).
+
+\def\PERLloadFDFfields#1% will become obsolete soon
+ {\bgroup
+ \global\let\allFDFfields\empty
+ \ifrunFDFconverter
+ \executesystemcommand{fdf2tex #1}%
+ \let\beginFDFobject\relax \let\endFDFobject\relax
+ \let\beginFDFdata \relax \let\endFDFdata \relax
+ \let\beginFDFfields\relax \let\endFDFfields\relax
+ \def\FDFfield[##1]%
+ {\getparameters[FDF][##1]%
+ \doglobal\addtocommalist\FDFname\allFDFfields
+ \global\setFDFfield{\FDFname}{\FDFvalue}}%
+ \ReadFile{#1.fdt}%
+ \fi
+ \egroup}
+
+%D The next macro does the same job, but now in the \TEX\ way
+%D of doing things. Easy eh? Will become obsolete!
+
+\bgroup
+
+\catcode`\/=\@@other
+\global\let\normalslash=/
+\catcode`\/=\@@escape
+
+\gdef\TEXloadFDFfields#1% will become obsolete due to XFDF
+ {\bgroup
+ \setbox0=\hbox
+ {\global\let\allFDFfields\empty
+ \scratchcounter=0
+ \escapechar=-1
+ \catcode`\/=\@@escape
+ \catcode`\(=\@@begingroup
+ \catcode`\)=\@@endgroup
+ \catcode`\%=\@@letter
+ \let/A =\relax \let/AS =\relax \let/Kids=\relax \let/Fields=\relax
+ \let/F =\relax \let/ID =\relax \let/SetF=\relax \let/setFf =\relax
+ \let/Ff=\relax \let/Opt=\relax \let/ClrF=\relax \let/ClrFf =\relax
+ \let/AP=\relax \let/FDF=\relax \let/Root=\relax
+ \def/T##1{\check\Title{##1}}
+ \def/V{\bgroup\catcode`\/=\@@other\futurelet\next/doV}
+ \def/doV{\ifx\next\normalslash\@EA/doVb\else\@EA/doVa\fi}
+ \def/doVa##1{\egroup\check\Value{##1}}
+ \def/doVb##1##2 {\egroup\check\Value{##2}} % watch the space
+ \def\check##1##2%
+ {\def##1{##2}
+ \advance\scratchcounter\plusone\relax
+ \ifodd\scratchcounter \else
+ \defconvertedcommand\asciia\Title
+ \global\setFDFfield{\asciia}{\Value}
+ \doglobal\addtocommalist\Title\allFDFfields
+ \fi}
+ \ReadFile{#1.fdf}}%
+ \egroup}
+
+\egroup
+
+%D Whatever mechanism is used, the next macros can be used to
+%D fetch the values.
+
+\def\getFDFfield #1{\getvalue {FDFfield::#1}}
+\def\setFDFfield#1#2{\setevalue{FDFfield::#1}{#2}}
+
+%D Of course the fields are only present when the file is
+%D loaded.
+
+\def\loadFDFfields#1%
+ {\PERLloadFDFfields{#1}%
+ \ifx\allFDFfields\empty
+ \TEXloadFDFfields{#1}%
+ \fi}
+
+\def\showFDFfields#1%
+ {\bgroup
+ \loadFDFfields{#1}
+ \def\docommand##1{\par##1 = \getFDFfield{##1}\par}%
+ \processcommacommand[\allFDFfields]\docommand
+ \egroup}
+
+%D \macros
+%D {sanitizePDFencoding,sanitizePDFdocencoding}
+%D
+%D We already dealt with the encoding vector. Conversion from
+%D \TEX\ \ASCII\ encoding to the other one, is accomplished by
+%D the next few macros. Wach out: we don't group here.
+
+%D This will be reimplemented using the mapping mechanism.
+
+% \def\enablePDFdocencoding
+% {\reducetocoding[pdfdoc]\simplifycommands}
+
+\def\enablePDFdocencoding
+ {\enablecoding[pdfdoc]%
+ \enablelanguagespecifics[\currentlanguage]% redundant ?
+ \simplifycommands}
+
+\long\def\sanitizePDFdocencoding#1\to#2%
+ {\enablePDFcrlf
+ \enablePDFdocencoding
+ %\honorunexpanded % otherwise problems with "e etc in de
+ \edef#2{#1}}
+
+\bgroup
+\catcode`\^^M=\@@active
+\gdef\enablePDFcrlf%
+ {\def\\{\string\r}%
+ \def\par{\\\\}%
+ \def\endgraf{\\\\}%
+ \catcode`\^^M=\@@active%
+ \let^^M=\\}
+\egroup
+
+\let\sanitizePDFencoding\sanitizePDFdocencoding
+
+%D A bit out of place, but useful:
+
+\ifdefined\everysetfield \else \newtoks\everysetfield \fi
+
+\appendtoksonce
+ \enablePDFdocencoding
+ \enablePDFcrlf
+\to \everysetfield
+
+%D \macros
+%D {doPDFinsertcomment}
+%D
+%D An example its use is the next special, one that deals with
+%D text annotations.
+
+% starting point (keep this)
+%
+% \long\def\doPDFinsertcomment#1#2#3#4#5#6#7#8%
+% {\bgroup % title width height color open symbol collect data
+% \doifelsenothing{#1}
+% {\let\PDFidentifier\empty}
+% {\def\PDFidentifier{/T (#1)}}%
+% \doifelsenothing{#4}
+% {\let\PDFattributes\empty}
+% {\def\PDFattributes{/C \FDFcolor{#4}}}%
+% \doifundefinedelse{PDFsymbol#6}
+% {\let\PDFsymbol\empty}
+% {\def\PDFsymbol{/Name \getvalue{PDFsymbol#6} }}%
+% \sanitizePDFencoding#8\to\PDFdata
+% \setbox\scratchbox\vbox to #3
+% {\vfill
+% \doPDFannotation{#2}{#3}
+% {/Subtype /Text
+% \ifcase#5 \else/Open true\fi
+% /Contents \ifPDFunicode <\PDFdata> \else(\PDFdata) \fi
+% \PDFsymbol
+% \PDFidentifier
+% \PDFattributes}}%
+% \wd\scratchbox\zeropoint
+% \ht\scratchbox\zeropoint
+% \dp\scratchbox\zeropoint
+% \box\scratchbox
+% \egroup}
+
+\newcounter\nofFDFcomments
+
+\newif\ifPDFpopupcomments \PDFpopupcommentstrue
+
+\def\doPDFflushcomments
+ {\box\PDFsymbolbox}
+
+\long\def\doPDFinsertcomment#1#2#3#4#5#6#7#8% % \@@DriverCommentLayer set otherwise
+ {\bgroup % title width height color open symbol collect data
+ \presetPDFsymbolappearance{#4}{#6}{#2}{#3}\!!zeropoint% sets width/height
+% \doifelsenothing{#1}
+% {\let\PDFidentifier\empty}
+% {\def\PDFidentifier{/T (#1)}}%
+ \doifelsenothing{#1}
+ {\let\PDFidentifier\empty}
+ {\sanitizePDFencoding#1\to\PDFcommenttitle
+ \def\PDFidentifier{/T \ifPDFunicode <\PDFcommenttitle>\else (\PDFcommenttitle)\fi}}%
+ \sanitizePDFencoding#8\to\PDFdata
+ \setFDFlayer\@@DriverCommentLayer
+ \startPDFsymbolappearance
+ \ifPDFpopupcomments
+ \doglobal\increment\nofFDFcomments
+ \doifobjectreferencefoundelse{FDF}{c:\nofFDFcomments}
+ {\doPDFgetobjectreference{FDF}{c:\nofFDFcomments}\PDFobjectreference
+ \donetrue}
+ \donefalse
+ \ifdone
+ \setbox\scratchbox\hbox
+ {\doPDFannotationobject{FDF}{c::\nofFDFcomments}{#2}{#3}% text window, size does not work
+ {/Subtype /Popup
+ /Parent \PDFobjectreference}}%
+ \ifcase#7\relax
+ \vbox to \height{\forgetall\vskip#3\box\scratchbox\vss}%
+ \else % incredible trial and error hack
+ % it's quite a mess, the annot width cannot be set, well, it can
+ % but the appearance and text sizes get mixed up
+% \setbox\scratchbox\vbox to \height{\forgetall\vskip#3\box\scratchbox\vss}%
+% \global\setbox\PDFsymbolbox\vbox
+% {\hsize#2%
+% \forgetall
+% \vsmash{\box\PDFsymbolbox}
+% \box\scratchbox}%
+ % this may change when acrobat gets less bugged
+ \setbox\scratchbox\vbox to #3{\forgetall\vss\box\scratchbox}%
+ \wd\scratchbox#2%
+ \global\setbox\PDFsymbolbox\vbox
+ {\startoverlay{\box\PDFsymbolbox}{\box\scratchbox}\stopoverlay}%
+ \fi
+ \fi
+ % generic
+ \doifobjectreferencefoundelse{FDF}{c::\nofFDFcomments}
+ {\doPDFgetobjectreference{FDF}{c::\nofFDFcomments}\PDFobjectreference
+ \donetrue}
+ \donefalse
+ \doPDFannotationobject{FDF}{c:\nofFDFcomments}{\width}{\height}
+ {/Subtype /Text
+ \ifcase#5 \else/Open true\fi
+ % pdftex (efficient)
+ % \ifdone /Popup \PDFobjref\pdflastannot\fi
+ % generic (less efficient)
+ \ifdone /Popup \PDFobjectreference\fi
+ /Contents \ifPDFunicode <\PDFdata> \else(\PDFdata) \fi
+ \PDFidentifier
+ \FDFlayer
+ \PDFsymbol
+ \PDFattributes}%
+ \else
+ \doPDFannotation{#2}{#3}
+ {/Subtype /Text
+ \ifcase#5 \else/Open true\fi
+ /Contents \ifPDFunicode <\PDFdata> \else(\PDFdata) \fi
+ \FDFlayer
+ \PDFsymbol
+ \PDFidentifier
+ \PDFattributes}%
+ \fi
+ \stopPDFsymbolappearance
+ \egroup}
+
+% symbols with a reasonable default of 18/24 pt
+
+\newbox\PDFsymbolbox
+
+\def\PDFsymbolNew {/Insert}
+\def\PDFsymbolBalloon {/Comment}
+\def\PDFsymbolAddition {/NewParagraph}
+\def\PDFsymbolHelp {/Help}
+\def\PDFsymbolParagraph {/Paragraph}
+\def\PDFsymbolKey {/Key }
+
+\def\PDFsymbolGraph {/Graph}
+\def\PDFsymbolPaperclip {/Paperclip}
+\def\PDFsymbolAttachment{/Attachment}
+\def\PDFsymbolTag {/Tag}
+
+\def\startPDFsymbolappearance
+ {\setbox\scratchbox\vbox to \totalheight \bgroup \vfill}
+
+\def\stopPDFsymbolappearance
+ {\egroup
+ \setbox\scratchbox\hbox{\lower\depth\box\scratchbox}%
+ \wd\scratchbox\width
+ \ht\scratchbox\height
+ \dp\scratchbox\depth
+ \box\scratchbox}
+
+\def\presetPDFsymbolappearance#1#2#3#4#5% symbol color width height depth
+ {\doifelsenothing{#1}
+ {\let\PDFattributes\empty}
+ {\def\PDFattributes{/C \FDFcolor{#1}}}%
+ \scratchdimen#3\edef\width {\the\scratchdimen}%
+ \scratchdimen#4\edef\height{\the\scratchdimen}%
+ \scratchdimen#5\edef\depth {\the\scratchdimen}%
+ \advance\scratchdimen\height\edef\totalheight{\the\scratchdimen}%
+ \doifelsenothing{#2}
+ {\let\PDFsymbol\empty}
+ {\ifundefined{PDFsymbol#2}%
+ \getfromcommacommand[#2][1]\let\PDFsymbolnormalsymbol\commalistelement
+ \getfromcommacommand[#2][2]\let\PDFsymboldownsymbol \commalistelement
+ \doifsymboldefinedelse\PDFsymbolnormalsymbol
+ {\doifsymboldefinedelse\PDFsymboldownsymbol
+ {\dopresetPDFsymbolappearance
+ \PDFsymbolnormalsymbol\PDFsymboldownsymbol}
+ {\dopresetPDFsymbolappearance
+ \PDFsymbolnormalsymbol\PDFsymbolnormalsymbol}}
+ {\doifsymboldefinedelse\PDFsymboldownsymbol
+ {\dopresetPDFsymbolappearance
+ \PDFsymboldownsymbol\PDFsymboldownsymbol}
+ {\let\PDFsymbol\empty}}%
+ \else
+ \def\PDFsymbol{/Name \getvalue{PDFsymbol#2} }%
+ \fi}}
+
+\def\dopresetPDFsymbolappearance#1#2%
+ {\dopresetfieldsymbol{#1}%
+ \dopresetfieldsymbol{#2}%
+ \setbox\scratchbox\hbox{\symbol[#1]}%
+ \edef\width {\the\wd\scratchbox}%
+ \edef\height{\the\ht\scratchbox}%
+ \edef\depth {\the\dp\scratchbox}%
+ \scratchdimen\height \advance\scratchdimen\depth
+ \edef\totalheight{\the\scratchdimen}%
+ \doPDFgetobjectreference{SYM}{#1}\FDFsymbolNappearance
+ \doPDFgetobjectreference{SYM}{#2}\FDFsymbolDappearance
+ \edef\PDFsymbol
+ {/AP <</N \FDFsymbolNappearance /D \FDFsymbolDappearance>>}}
+
+%D Hooked into \CONTEXT, this special supports
+%D
+%D \starttyping
+%D \startcomment
+%D hello beautiful\\world
+%D \stopcomment
+%D
+%D \startcomment[hello]
+%D de \'e\'erste keer
+%D the f\'irst time
+%D \stopcommen
+%D
+%D \startcommentaar[hallo][color=green,width=4cm,height=3cm]
+%D first
+%D
+%D second
+%D \stopcommentaar
+%D \stoptyping
+%D
+%D So, special characters, forced linebreaks using \type{\\}
+%D and \type{\par} are handled in the appropriate way.
+
+%D \macros
+%D {doPDFovalbox}
+%D
+%D For drawing ovals we use quite raw \PDF\ code. The next
+%D implementation does not differ that much from the one
+%D implemented in the \POSTSCRIPT\ driver.
+
+\def\doPDFovalcalc#1#2#3%
+ {\dimen2=#1%
+ \advance\dimen2 #2\relax
+ \PointsToBigPoints{\dimen2}#3}
+
+\def\doPDFovalbox#1#2#3#4#5#6#7#8% todo: \scratchdimen/\scatchbox
+ {\forcecolorhack
+ \bgroup
+ \dimen0=#4\divide\dimen0 \plustwo
+ \doPDFovalcalc{0pt}{+\dimen0}\xmin
+ \doPDFovalcalc{#1}{-\dimen0}\xmax
+ \doPDFovalcalc{#2}{-\dimen0}\ymax
+ \doPDFovalcalc{-#3}{+\dimen0}\ymin
+ \advance\dimen0 by #5%
+ \doPDFovalcalc{0pt}{+\dimen0}\xxmin
+ \doPDFovalcalc{#1}{-\dimen0}\xxmax
+ \doPDFovalcalc{#2}{-\dimen0}\yymax
+ \doPDFovalcalc{-#3}{+\dimen0}\yymin
+ \doPDFovalcalc{#4}{\zeropoint}\stroke
+ \doPDFovalcalc{#5}{\zeropoint}\radius
+ \edef\dostroke{#6}%
+ \edef\dofill{#7}%
+ \edef\mode{\number#8 \space}%
+ % no \ifcase, else \relax in pdfcode
+ \setbox\scratchbox\hbox
+ {\ifnum\dostroke\dofill>\zerocount
+ \ifPDFstrokecolor\else\ifnum\dostroke=\plusone
+ \writestatus\m!colors{pdf stroke color will fail}\wait
+ \fi\fi
+ \PDFcode
+ {q
+ \stroke\space w
+ \ifcase\mode
+ \xxmin\space \ymin \space m
+ \xxmax\space \ymin \space l
+ \xmax \space \ymin \space \xmax \space \yymin\space y
+ \xmax \space \yymax\space l
+ \xmax \space \ymax \space \xxmax\space \ymax \space y
+ \xxmin\space \ymax \space l
+ \xmin \space \ymax \space \xmin \space \yymax\space y
+ \xmin \space \yymin\space l
+ \xmin \space \ymin \space \xxmin\space \ymin \space y
+ h
+ \or % 1
+ \xxmin\space \ymin \space m
+ \xxmax\space \ymin \space l
+ \xmax \space \ymin \space \xmax \space \yymin\space y
+ \xmax \space \ymax \space l
+ \xmin \space \ymax \space l
+ \xmin \space \yymin\space l
+ \xmin \space \ymin \space \xxmin\space \ymin \space y
+ h
+ \or % 2
+ \xxmin\space \ymin \space m
+ \xmax \space \ymin \space l
+ \xmax \space \ymax \space l
+ \xxmin\space \ymax \space l
+ \xmin \space \ymax \space \xmin \space \yymax\space y
+ \xmin \space \yymin\space l
+ \xmin \space \ymin \space \xxmin\space \ymin \space y
+ h
+ \or % 3
+ \xmin \space \ymin \space m
+ \xmax \space \ymin \space l
+ \xmax \space \yymax\space l
+ \xmax \space \ymax \space \xxmax\space \ymax \space y
+ \xxmin\space \ymax \space l
+ \xmin \space \ymax \space \xmin \space \yymax\space y
+ \xmin \space \ymin \space l
+ h
+ \or % 4
+ \xmin \space \ymin \space m
+ \xxmax\space \ymin \space l
+ \xmax \space \ymin \space \xmax \space \yymin\space y
+ \xmax \space \yymax\space l
+ \xmax \space \ymax \space \xxmax\space \ymax \space y
+ \xmin \space \ymax \space l
+ \xmin \space \ymin\space l
+ h
+ \or % 5
+ \xmin \space \ymin \space m
+ \xmax \space \ymin \space l
+ \xmax \space \yymax\space l
+ \xmax \space \ymax \space \xxmax\space \ymax \space y
+ \xmin \space \ymax \space l
+ \xmin \space \ymin \space l
+ h
+ \or % 6
+ \xmin \space \ymin \space m
+ \xxmax\space \ymin \space l
+ \xmax \space \ymin \space \xmax \space \yymin\space y
+ \xmax \space \ymax \space l
+ \xmin \space \ymax \space l
+ \xmin \space \ymin \space l
+ h
+ \or
+ \xxmin\space \ymin \space m
+ \xmax \space \ymin \space l
+ \xmax \space \ymax \space l
+ \xmin \space \ymax \space l
+ \xmin \space \yymin\space l
+ \xmin \space \ymin \space \xxmin\space \ymin \space y
+ h
+ \or
+ \xmin \space \ymin \space m
+ \xmax \space \ymin \space l
+ \xmax \space \ymax \space l
+ \xxmin\space \ymax \space l
+ \xmin \space \ymax \space \xmin \space \yymax\space y
+ \xmin \space \ymin \space l
+ h
+ \or % 9 top open
+ \xmin \space \ymax \space m
+ \xmin \space \yymin\space l
+ \xmin \space \ymin \space \xxmin\space \ymin \space y
+ \xxmax\space \ymin \space l
+ \xmax \space \ymin \space \xmax \space \yymin\space y
+ \xmax \space \ymax \space l
+ \or % 10 right open
+ \xmax \space \ymax \space m
+ \xxmin\space \ymax \space l
+ \xmin \space \ymax \space \xmin \space \yymax\space y
+ \xmin \space \yymin\space l
+ \xmin \space \ymin \space \xxmin\space \ymin \space y
+ \xmax\space \ymin \space l
+ \or % 11 bottom open
+ \xmax \space \ymin \space m
+ \xmax \space \yymax\space l
+ \xmax \space \ymax \space \xxmax \space \ymax\space y
+ \xxmin\space \ymax \space l
+ \xmin \space \ymax \space \xmin \space \yymax\space y
+ \xmin \space \ymin \space l
+ \or % 12 left open
+ \xmin \space \ymax \space m
+ \xxmax\space \ymax \space l
+ \xmax \space \ymax \space \xmax \space \yymax\space y
+ \xmax \space \yymin\space l
+ \xmax \space \ymin \space \xxmax\space \ymin \space y
+ \xmin \space \ymin \space l
+ \or % 13
+ \xmin \space \ymax \space m
+ \xxmax\space \ymax \space l
+ \xmax \space \ymax \space \xmax \space \yymax\space y
+ \xmax\space \ymin \space l
+ \or % 14
+ \xmax \space \ymax \space m
+ \xmax \space \yymin\space l
+ \xmax \space \ymin \space \xxmax\space \ymin \space y
+ \xmin \space \ymin \space l
+ \or % 15
+ \xmax \space \ymin \space m
+ \xxmin\space \ymin \space l
+ \xmin \space \ymin \space \xmin \space \yymin\space y
+ \xmin \space \ymax \space l
+ \or % 16
+ \xmin \space \ymin \space m
+ \xmin \space \yymax\space l
+ \xmin \space \ymax \space \xxmin\space \ymax \space y
+ \xmax \space \ymax \space l
+ \or % 17
+ \xxmax\space \ymax \space m
+ \xmax \space \ymax \space \xmax \space \yymax\space y
+ \or % 18
+ \xmax \space \yymin\space m
+ \xmax \space \ymin \space \xxmax\space \ymin \space y
+ \or % 19
+ \xxmin\space \ymin \space m
+ \xmin \space \ymin \space \xmin \space \yymin\space y
+ \or % 20
+ \xmin \space \yymax\space m
+ \xmin \space \ymax \space \xxmin\space \ymax \space y
+ \or % 21
+ \xxmax\space \ymax \space m
+ \xmax \space \ymax \space \xmax \space \yymax\space y
+ \xmin \space \yymax\space m
+ \xmin \space \ymax \space \xxmin\space \ymax \space y
+ \or % 22
+ \xxmax\space \ymax \space m
+ \xmax \space \ymax \space \xmax \space \yymax\space y
+ \xmax \space \yymin\space m
+ \xmax \space \ymin \space \xxmax\space \ymin \space y
+ \or % 23
+ \xmax \space \yymin\space m
+ \xmax \space \ymin \space \xxmax\space \ymin \space y
+ \xxmin\space \ymin \space m
+ \xmin \space \ymin \space \xmin \space \yymin\space y
+ \or % 24
+ \xxmin\space \ymin \space m
+ \xmin \space \ymin \space \xmin \space \yymin\space y
+ \xmin \space \yymax\space m
+ \xmin \space \ymax \space \xxmin\space \ymax \space y
+ \or % 25
+ \xxmax\space \ymax \space m
+ \xmax \space \ymax \space \xmax \space \yymax\space y
+ \xmax \space \yymin\space m
+ \xmax \space \ymin \space \xxmax\space \ymin \space y
+ \xxmin\space \ymin \space m
+ \xmin \space \ymin \space \xmin \space \yymin\space y
+ \xmin \space \yymax\space m
+ \xmin \space \ymax \space \xxmin\space \ymax \space y
+ \or % 26
+ \xmax \space \yymin\space m
+ \xmax \space \ymin \space \xxmax\space \ymin \space y
+ \xmin \space \yymax\space m
+ \xmin \space \ymax \space \xxmin\space \ymax \space y
+ \or % 27
+ \xxmax\space \ymax \space m
+ \xmax \space \ymax \space \xmax \space \yymax\space y
+ \xxmin\space \ymin \space m
+ \xmin \space \ymin \space \xmin \space \yymin\space y
+ \or % 28
+ \fi
+ \ifnum\mode>8
+ S
+ \else
+ \ifnum\dostroke=\plusone S \fi
+ \ifnum\dofill =\plusone f \fi
+ \fi
+ Q}%
+ \fi}%
+ \wd\scratchbox#1\ht\scratchbox#2\dp\scratchbox#3\box\scratchbox
+ \egroup}
+
+%D \macros
+%D {doPDFstartgraymode,doPDFstopgraymode,
+%D doPDFstartrgbcolormode,doPDFstartcmykcolormode,doPDFstartgraycolormode,
+%D doPDFstopcolormode}
+%D
+%D In \PDF\ there are two color states, one for strokes and one
+%D for fills. This means that we have to set the color in a
+%D rather redundant looking way. Unfortunately this makes the
+%D \PDF\ file much larger than needed. We can save few bytes
+%D by not setting the stroke color. Due to zip compression we
+%D only save a few percent.
+
+% \newif\ifPDFstrokecolor \PDFstrokecolortrue
+
+\def\doPDFstartgraymode#1%
+% {\PDFdirectcode{#1 g\ifPDFstrokecolor\space#1 G\fi}}
+ {\PDFcode{#1 g\ifPDFstrokecolor\space#1 G\fi}}
+
+\def\doPDFstopgraymode
+% {\PDFdirectcode{0 g\ifPDFstrokecolor\space0 G\fi}}
+ {\PDFcode{0 g\ifPDFstrokecolor\space0 G\fi}}
+
+\def\doPDFstartrgbcolormode#1#2#3%
+% {\PDFdirectcode{#1 #2 #3 rg\ifPDFstrokecolor\space#1 #2 #3 RG\fi}}
+ {\PDFcode{#1 #2 #3 rg\ifPDFstrokecolor\space#1 #2 #3 RG\fi}}
+
+\def\doPDFstartcmykcolormode#1#2#3#4%
+% {\PDFdirectcode{#1 #2 #3 #4 k\ifPDFstrokecolor\space#1 #2 #3 #4 K\fi}}
+ {\PDFcode{#1 #2 #3 #4 k\ifPDFstrokecolor\space#1 #2 #3 #4 K\fi}}
+
+\def\doPDFstartgraycolormode#1%
+% {\PDFdirectcode{#1 g\ifPDFstrokecolor\space#1 G\fi}}
+ {\PDFcode{#1 g\ifPDFstrokecolor\space#1 G\fi}}
+
+\def\doPDFstartspotcolormode#1#2% redefining spotcolors is not possible anyway
+ {\ifundefined{pdf:scs:#2}%
+ \bgroup
+ \getcommacommandsize[#2]%
+ \ifcase\commalistsize\or
+ \setxvalue{pdf:scs:#2}{#2 SCN #2 scn}% \setxvalue{pdf:scs:#2}{#2 SC #2 sc}%
+ \else
+ \let\PDFspotcolorspecs\empty
+ \def\dospotcolorcommand##1{\edef\PDFspotcolorspecs{\PDFspotcolorspecs##1\space}}%
+ \processcommacommand[#2]\dospotcolorcommand
+ \setxvalue{pdf:scs:#2}{\PDFspotcolorspecs SCN \PDFspotcolorspecs scn}%
+ \fi
+ \egroup
+ \fi
+% \PDFdirectcode{/#1 cs /#1 CS \PDFgetspotcolorspec{#2}}}
+ \PDFcode{/#1 cs /#1 CS \PDFgetspotcolorspec{#2}}}
+
+\def\PDFgetspotcolorspec#1%
+ {\executeifdefined{pdf:scs:#1}\empty} % better no default than one with too less args
+
+\def\doPDFstartnonecolormode
+% {\PDFdirectcode{/None CS 1 SC /None cs 1 sc}}
+ {\PDFcode{/None CS 1 SC /None cs 1 sc}}
+
+\def\doPDFstopcolormode
+% {\PDFdirectcode{0 g\ifPDFstrokecolor\space0 G\fi}}
+ {\PDFcode{0 g\ifPDFstrokecolor\space0 G\fi}}
+
+%D We need to register the spot colors and their fallbacks.
+
+% we cannot use /DeviceN since GS <=7.21 breaks on it
+% and Jaws does not handle it at all {[/DeviceN [/All|/None]
+% /Device#2 \PDFobjref\pdflastobj]} so we use separation
+% colors that work and print ok
+
+\def\doPDFregistersomespotcolor#1#2#3#4% implemented in the driver
+ {\writestatus\m!systems{missing spot color definition}\wait}
+
+\def\doPDFregisternonecolor % internal command
+ {\doPDFregistergrayspotcolor{None}{1}%
+ \globallet\doPDFregisternonecolor\relax}
+
+\def\doPDFregisterspotcolorname#1#2% implemented in the driver
+ {}
+
+\definespecial\doregisterspotcolorname{\doPDFregisterspotcolorname}
+
+\def\dodoPDFregisterrgbspotcolor#1#2#3#4#5#6#7% name noffractions names p's r g b
+ {\doPDFregistersomespotcolor{#1}{#2}{#3}{#4}{RGB}{0.0 1.0 0.0 1.0 0.0 1.0}%
+ {\ifcase#2\or dup #5 mul exch dup #6 mul exch #7 mul\else#5 #6 #7\fi}}
+
+\def\dodoPDFregistercmykspotcolor#1#2#3#4#5#6#7#8% name noffractions names p's c m y k
+ {\doPDFregistersomespotcolor{#1}{#2}{#3}{#4}{CMYK}{0.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0}%
+ {\ifcase#2\or dup #5 mul exch dup #6 mul exch dup #7 mul exch #8 mul\else #5 #6 #7 #8\fi}}
+
+\def\dodoPDFregistergrayspotcolor#1#2#3#4#5% name noffractions names p's s
+ {\doPDFregistersomespotcolor{#1}{#2}{#3}{#4}{Gray}{0.0 1.0}%
+ {\ifcase#2\or #5 mul\else #5\fi}}
+
+% \let\doPDFregisterrgbspotcolor \dodoPDFregisterrgbspotcolor
+% \let\doPDFregistercmykspotcolor\dodoPDFregistercmykspotcolor
+% \let\doPDFregistergrayspotcolor\dodoPDFregistergrayspotcolor
+
+\def\doPDFregisterrgbspotcolor#1#2#3#4#5#6#7% name noffractions names p's r g b
+ {\ifRGBsupported
+ \dodoPDFregisterrgbspotcolor{#1}{#2}{#3}{#4}{#5}{#6}{#7}%
+ \else
+ \edef\@@cl@@r{#5}\edef\@@cl@@g{#6}\edef\@@cl@@b{#7}%
+ \ifCMYKsupported
+ \convertRGBtoCMYK\@@cl@@r\@@cl@@g\@@cl@@b
+ \dodoPDFregistercmykspotcolor{#1}{#2}{#3}{#4}\@@cl@@c\@@cl@@m\@@cl@@y\@@cl@@k
+ \else
+ \convertRGBtoGRAY\@@cl@@r\@@cl@@g\@@cl@@b
+ \dodoPDFregistergrayspotcolor{#1}{#2}{#3}{#4}\@@cl@@s
+ \fi
+ \fi}
+
+\def\doPDFregistercmykspotcolor#1#2#3#4#5#6#7#8% name noffractions names p's c m y k
+ {\ifCMYKsupported
+ \dodoPDFregistercmykspotcolor{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}%
+ \else
+ \edef\@@cl@@c{#5}\edef\@@cl@@m{#6}\edef\@@cl@@y{#7}\edef\@@cl@@k{#8}%
+ \ifRGBsupported
+ \convertCMYKtoRGB\@@cl@@c\@@cl@@m\@@cl@@y\@@cl@@k
+ \dodoPDFregisterrgbspotcolor{#1}{#2}{#3}{#4}\@@cl@@r\@@cl@@g\@@cl@@b
+ \else
+ \convertCMYKtoGRAY\@@cl@@c\@@cl@@m\@@cl@@y\@@cl@@k
+ \dodoPDFregistergrayspotcolor{#1}{#2}{#3}{#4}\@@cl@@s
+ \fi
+ \fi}
+
+\def\doPDFregistergrayspotcolor{\dodoPDFregistergrayspotcolor}
+
+%D New and very experimental.
+
+\def\doPDFregistercmykindexcolor#1#2#3#4#5#6#7#8% name noffractions names p's c m y k
+ {\doPDFregistersomeindexcolor{#1}{#2}{#3}{#4}{CMYK}{0.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0}%
+ {dup #5 mul exch dup #6 mul exch dup #7 mul exch #8 mul}}
+
+\def\doPDFregisterrgbindexcolor#1#2#3#4#5#6#7% name noffractions names p's r g b
+ {\doPDFregistersomeindexcolor{#1}{#2}{#3}{#4}{RGB}{0.0 1.0 0.0 1.0 0.0 1.0}%
+ {dup #5 mul exch dup #6 mul exch #7 mul}}
+
+\def\doPDFregistergrayindexcolor#1#2#3#4#5% name noffractions names p's s
+ {\doPDFregistersomeindexcolor{#1}{#2}{#3}{#4}{Gray}{0.0 1.0}%
+ {pop}}
+
+\let\checkpredefinedcolor\predefineindexcolor % we need an index in order to negate bitmaps
+
+\def\doPDFregisterfigurecolor#1% always an index color
+ {\dogetobjectreference
+ {PDFIX}
+ {\internalspotcolorname{#1}}
+ \PDFimagecolorreference}
+
+%D \macros
+%D {doPDFstartrotation,doPDFstoprotation}
+%D
+%D Rotating some text can be accomplished by setting the first
+%D four elements of the transform matrix. We only support some
+%D fixed angles. The \type{q}'s take care of grouping.
+
+% The original:
+%
+% \def\doPDFstartrotation#1%
+% {\PDFcode{q}%
+% \processaction
+% [#1]
+% [ 90=>\PDFcode{ 0 1 -1 0 0 0 cm},
+% 180=>\PDFcode{-1 0 0 -1 0 0 cm},
+% 270=>\PDFcode{ 0 -1 1 0 0 0 cm},
+% 360=>\PDFcode{ 1 0 0 1 0 0 cm}]}
+%
+% We cannot directly pass an angle, but have to calculate
+% factors (rx and ry). As in the \METAPOST\ to \PDF\
+% converter module we need to compensate the deformation
+% by setting (sx and sy).
+%
+% Optimized but bigger:
+%
+% \def\doPDFstartrotation#1%
+% {\PDFcode{q}%
+% \processaction
+% [#1]
+% [ 0=>\PDFcode{ 1 0 0 1 0 0 cm},
+% 90=>\PDFcode{ 0 1 -1 0 0 0 cm},
+% 180=>\PDFcode{-1 0 0 -1 0 0 cm},
+% 270=>\PDFcode{ 0 -1 1 0 0 0 cm},
+% 360=>\PDFcode{ 1 0 0 1 0 0 cm},
+% #1=>\setcalculatedcos\cos{#1}%
+% \setcalculatedsin\sin{#1}%
+% \PDFcode{\cos \space % cos
+% \sin \space % sin
+% \negated\sin\space % -sin
+% \cos \space % cos
+% 0 0 cm}]}
+%
+% Since the sine and cosine values are preset and rounded we
+% can use the next alternative without running into inaccuracies.
+
+\def\doPDFstartrotation#1% grouped
+ {\setcalculatedcos\cos{#1}%
+ \setcalculatedsin\sin{#1}%
+ \forcecolorhack
+ \PDFcode{q \cos\space\sin\space\negated\sin\space\cos\space0 0 cm}}
+
+\def\doPDFstoprotation
+ {\PDFcode{Q}}
+
+%D \macros
+%D {doPDFstartscaling,doPDFstopscaling}
+%D
+%D Scaling is rather straightforward:
+
+\def\@@PDFzeroscale{.0001}
+
+\def\doPDFstartscaling#1#2% the test is needed because acrobat is bugged!
+ {\forcecolorhack
+ \PDFcode{q \ifdim#1\points=\zeropoint\@@PDFzeroscale\else#1\fi\space 0 0
+ \ifdim#2\points=\zeropoint\@@PDFzeroscale\else#2\fi\space 0 0 cm}}
+
+% \def\doPDFstartscaling#1#2% the test is needed because acrobat is bugged!
+% {\PDFcode{q\ifdim#1\points=\zeropoint\else\ifdim#2\points=\zeropoint\else
+% \space#1\space 0 0 #2\space 0 0 cm\fi\fi}}
+
+\def\doPDFstopscaling
+ {\PDFcode{Q}}
+
+%D \macros
+%D {doPDFstartmirroring,doPDFstopmirroring}
+%D
+%D Mirroring is implemented in a similar way:
+
+\def\doPDFstartmirroring
+ {\PDFcode{-1 0 0 1 0 0 cm}}
+
+\def\doPDFstopmirroring
+ {\PDFcode{-1 0 0 1 0 0 cm}}
+
+%D \macros
+%D {doPDFstartnegative,doPDFstopnegative}
+%D
+%D When producing output for an image setter, sometimes negative
+%D output is needed.
+
+\def\doPDFstartnegative
+ {\ifx\initializePDFnegative\undefined\else
+ \initializePDFnegative
+% \PDFdirectcode{/GSnegative gs}%
+ \PDFcode{/GSnegative gs}%
+ \fi}
+
+\def\doPDFstopnegative
+ {\ifx\initializePDFnegative\undefined\else
+ \initializePDFnegative
+% \PDFdirectcode{/GSpositive gs}%
+ \PDFcode{/GSpositive gs}%
+ \fi}
+
+%D \macros
+%D {doPDFstartoverprint,doPDFstopoverprint}
+%D
+%D Some printers like overprint more than knockout.
+
+\def\doPDFstartoverprint
+ {\ifx\initializePDFoverprint\undefined\else
+ \initializePDFoverprint
+% \PDFdirectcode{/GSoverprint gs}%
+ \PDFcode{/GSoverprint gs}%
+ \fi}
+
+\def\doPDFstopoverprint
+ {\ifx\initializePDFoverprint\undefined\else
+ \initializePDFoverprint
+% \PDFdirectcode{/GSknockout gs}%
+ \PDFcode{/GSknockout gs}% wrong
+ \fi}
+
+%D Transparency support:
+
+\newif\ifPDFtransparencysupported
+
+\def\PDFtransparancydictionary#1#2#3% type fraction extras
+ {<</Type /ExtGState
+ /ca #2 /CA #2
+ /BM /\ifcase#1 Normal\or Normal\or Multiply\or Screen\or
+ Overlay\or SoftLight\or HardLight\or ColorDodge\or
+ ColorBurn\or Darken\or Lighten\or Difference\or
+ Exclusion\else Compatible\fi
+ #3>>}
+
+\def\dodoPDFstarttransparency#1#2%
+ {\presetPDFtransparency{#1}{#2}%
+ \PDFcode{\PDFtransparencyidentifier\space gs }}
+
+\def\dodoPDFstoptransparency
+ {\PDFcode{/Tr0 gs }}
+
+\def\doPDFstarttransparency
+ {\ifPDFtransparencysupported
+ \global\let\doPDFstarttransparency\dodoPDFstarttransparency
+ \global\let\doPDFstoptransparency \dodoPDFstoptransparency
+ \initializetransparency
+ \expandafter\doPDFstarttransparency
+ \else
+ \expandafter\gobbletwoarguments
+ \fi}
+
+% \let\doPDFstoptransparency\relax
+%
+% This is tricky: because a text stream is handled before
+% the page body is built, we can run into stops that will
+% match an outer start; however, the stop is needed in case
+% of a text color: [text color text] [other color text] on a
+% first page combined with color splitting will go wrong if
+% we stick to the relaxing method.
+
+\def\doPDFstoptransparency
+ {\ifPDFtransparencysupported
+ \initializetransparency
+ \dodoPDFstoptransparency
+ \fi}
+
+%D These use:
+
+\let\PDFtransparencyresetreference \empty
+\let\PDFtransparencyresetidentifier\empty
+
+\let\PDFtransparencyreference \empty
+\let\PDFtransparencyidentifier\empty
+
+\let\presetPDFtransparency \gobbletwoarguments
+\let\initializetransparency\relax
+
+%D New trickery:
+
+\definespecial\dostartgraphicgroup{\PDFcode{q}}
+\definespecial\dostopgraphicgroup {\PDFcode{Q}}
+
+%D Even newer trickery:
+
+\definespecial\dostartviewerlayer {\doPDFstartlayer}
+\definespecial\dostopviewerlayer {\doPDFstoplayer}
+\definespecial\dodefineviewerlayer{\doPDFdefinelayer}
+
+\let\PDFtextlayers\empty
+\let\PDFpagelayers\empty
+\let\PDFhidelayers\empty
+\let\PDFvidelayers\empty
+
+% \def\doPDFstartlayer#1{\PDFdirectcode{/OC /#1 BDC}}
+% \def\doPDFstoplayer {\PDFdirectcode {EMC}}
+
+\def\doPDFstartlayer#1{\PDFcode{/OC /#1 BDC}}
+\def\doPDFstoplayer {\PDFcode {EMC}}
+
+% resource -> prop -> mc's -> OCG|OCMD (nested)
+
+% ocg:
+
+% /Intent/Design
+
+% ocmd
+
+% /P /AllOn
+
+% kan zelf ocmd bevatten
+
+\def\doPDFdefinelayer#1#2#3#4#5% tag title visible type printable
+ {\doPDFdictionaryobject{PDLN}{#1}
+ {/Type /OCG
+ \ifcase#4 \or
+ /Intent /Design % disable layer hiding by user
+ \fi
+ \ifnum#5=\zerocount
+ /Usage << /Print << /PrintState /OFF >> >> % printable or not
+ \fi
+ /Name (#2)}%
+ \doPDFgetobjectreference{PDLN}{#1}\PDFobjectreference
+ \xdef\PDFtextlayers{\PDFtextlayers\space\PDFobjectreference}%
+ \doifelse{#3}\v!start
+ {\xdef\PDFvidelayers{\PDFvidelayers\space\PDFobjectreference}}%
+ {\xdef\PDFhidelayers{\PDFhidelayers\space\PDFobjectreference}}%
+ \doPDFdictionaryobject{PDLD}{#1}
+ {/Type /OCMD
+ /OCGs [\PDFobjectreference]}%
+ \doPDFgetobjectreference{PDLD}{#1}\PDFobjectreference
+ \xdef\PDFpagelayers{\PDFpagelayers\space /#1 \PDFobjectreference}}
+
+\def\flushPDFtextlayers
+ {\ifx\PDFtextlayers\empty \else
+ \driverreferenced \doPDFarrayobject{PDF}{textlayers}{\PDFtextlayers}%
+ \doPDFgetobjectreference{PDF}{textlayers}\!!stringa
+ \ifx\PDFvidelayers\empty
+ \def\!!stringb{[null]}%
+ \else
+ \driverreferenced \doPDFarrayobject{PDF}{videlayers}{\PDFvidelayers}%
+ \doPDFgetobjectreference{PDF}{videlayers}\!!stringb
+ \fi
+ \ifx\PDFhidelayers\empty
+ \def\!!stringc{[null]}%
+ \else
+ \driverreferenced \doPDFarrayobject{PDF}{hidelayers}{\PDFhidelayers}%
+ \doPDFgetobjectreference{PDF}{hidelayers}\!!stringc
+ \fi
+ \doPDFaddtocatalog
+ {/OCProperties
+ << % display in menu
+ /D << /Order \!!stringa
+ /ON \!!stringb
+ /OFF \!!stringc >>
+ % used properties
+ /OCGs \!!stringa >>}%
+ \globallet\flushPDFtextlayers\relax
+ \fi}
+
+\def\flushPDFpagelayers
+ {\ifx\PDFpagelayers\empty \else
+ \doPDFpageresource{/Properties <<\PDFpagelayers>>}%
+ \fi}
+
+\prependtoksonce \flushPDFpagelayers \to \everyshipout
+\prependtoksonce \flushPDFtextlayers \to \everylastshipout
+
+\def\PDFlayeractionlist{null}
+
+\def\PDFexecutehidelayer {/SetOCGState /State [/OFF \PDFlayeractionlist]}
+\def\PDFexecutevidelayer {/SetOCGState /State [/ON \PDFlayeractionlist]}
+\def\PDFexecutetogglelayer {/SetOCGState /State [/Toggle \PDFlayeractionlist]}
+
+\def\domakeviewerlayerlist#1%
+ {\bgroup
+ \globallet\PDFlayeractionlist\empty
+ \def\docommand##1%
+ {\doPDFgetobjectreference{PDLN}{##1}\PDFobjectreference
+ \xdef\PDFlayeractionlist{\PDFlayeractionlist\space\PDFobjectreference}}%
+ \processcommalist[#1]\docommand
+ \egroup}
+
+%D Something rather pdf dependent:
+
+% #1 => 1=fill 2=stroke 3=strokedfill 4=invisible
+% #2 => linewidth
+% #3 => spacing (beware, one needs to set the hsize as well)
+
+\def\doPDFstartfonteffect#1#2#3%
+ {\ifdim#2>\zeropoint
+ \PointsToBigPoints{#2}\ascii
+% \PDFdirectcode{\ascii\space w}%
+ \PDFcode{\ascii\space w}%
+ \fi
+ \ifdim#3\points=\onepoint\else
+ \scratchdimen#3\points
+% \PDFdirectcode{\withoutpt{\the\scratchdimen}\space Tc}%
+ \PDFcode{\withoutpt{\the\scratchdimen}\space Tc}%
+ \fi
+% \PDFdirectcode{\purenumber#1 Tr}}
+ \PDFcode{\purenumber#1 Tr}}
+
+\def\doPDFstopfonteffect
+% {\PDFdirectcode{1 w 0 Tc 0 Tr}}
+ {\PDFcode{1 w 0 Tc 0 Tr}}
+
+%D Handy for the \METAPOST\ to \PDF\ converter:
+
+\ifdefined\everyPDFximage \else \newtoks\everyPDFximage \fi
+\ifdefined\everyPDFxform \else \newtoks\everyPDFxform \fi
+
+\appendtoksonce
+ \collectPDFresources
+ \global\let\currentPDFresources\collectedPDFresources
+\to \everyPDFxform
+
+\let\collectedPDFresources\empty
+
+\def\collectPDFresources % suboptimal
+ {\doifobjectreferencefoundelse{FDF}{docushades} % redundant, we have an reserved object now
+ {\doPDFgetobjectreference{FDF}{docushades}\PDFobjectreference
+ \xdef\collectedPDFresources{\collectedPDFresources/Shading \PDFobjectreference}}\donothing
+ \doifobjectreferencefoundelse{FDF}{docuextgstates}
+ {\doPDFgetobjectreference{FDF}{docuextgstates}\PDFobjectreference
+ \xdef\collectedPDFresources{\collectedPDFresources/ExtGState \PDFobjectreference}}\donothing
+ \doifobjectreferencefoundelse{FDF}{colorspaces}
+ {\doPDFgetobjectreference{FDF}{colorspaces}\PDFobjectreference
+ \xdef\collectedPDFresources{\collectedPDFresources/ColorSpace \PDFobjectreference}}\donothing
+ \global\let\collectPDFresources\relax}
+
+%D And that was about all.
+
+\stopspecials
+
+\ifx\fullytransparentcolor\undefined \else
+
+ \def\fullytransparentcolor
+ {\doPDFregisternonecolor
+ \doPDFstartnonecolormode}
+
+ \let\doPDFstarttransparency\gobbletwoarguments
+ \let\doPDFstoptransparency\relax
+
+\fi
+
+%D Temporary hack:
+
+\def\TransparencyHack % png: /CS /DeviceRGB /I true
+ {\appendtoks
+ \doPDFpageattribute{/Group << /S /Transparency /I true /K true>>}%
+ \to \everyPDFxform
+ \appendtoks
+ \doPDFpageattribute{/Group << /S /Transparency /I true /K true>>}%
+ \to \everyshipout}
+
+%D We still need to implement a few helpers:
+
\chardef\safePDFcode=`-
\def\setPDFdestination#1%
@@ -39,12 +3337,8 @@
%D 20K named destinations "x(x) x"). Of course when you use
%D page destinations, the saving is nil.
-% \beginETEX \scantokens
-%
% \doifnotmode{atpragma}{\let\next\setPDFdestination} % experimental
%
-% \bgroup
-%
% \catcode`\/=\@@active \catcode`\#=\@@active
% \catcode`\<=\@@active \catcode`\>=\@@active
% \catcode`\[=\@@active \catcode`\]=\@@active
@@ -75,8 +3369,6 @@
% \egroup}
%
% \doifnotmode{atpragma}{\let\setPDFdestination\next} % experimental
-%
-% \endETEX
%D This is a slow one, that uses \type{\lccode}'s to
%D change the glyph as well as converts sensisitve ones into a
@@ -114,8 +3406,6 @@
\@EA\handletokens\ascii\with\docommand
\egroup}
-% \beginETEX \scantokens
-%
% \doifnotmode{atpragma}{\let\next\sanitizePDFstring} % experimental
%
% \bgroup
@@ -149,8 +3439,6 @@
%
% \doifnotmode{atpragma}{\let\sanitizePDFstring\next} % experimental
%
-% \endETEX
-%
% There is an unicode variant in spec-tst!
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/spec-fdf.mkiv b/Master/texmf-dist/tex/context/base/spec-fdf.mkiv
deleted file mode 100644
index 87a30d0cafa..00000000000
--- a/Master/texmf-dist/tex/context/base/spec-fdf.mkiv
+++ /dev/null
@@ -1,19 +0,0 @@
-%D \module
-%D [ file=spec-fdf,
-%D version=2006.09.18,
-%D title=\CONTEXT\ \PDF\ Macros,
-%D subtitle=Support Macros,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%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
-
-\def\setPDFdestination#1{\xdef\PDFdestination{\ctxlua{pdf.cleandestination("\luaescapestring{#1}")}}}
-\def\sanitizePDFstring#1\to#2{\xdef#2{\ctxlua{pdf.sanitizedstring("\luaescapestring{#1}")}}}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/spec-fdf.tex b/Master/texmf-dist/tex/context/base/spec-fdf.tex
deleted file mode 100644
index 51da45ff7a6..00000000000
--- a/Master/texmf-dist/tex/context/base/spec-fdf.tex
+++ /dev/null
@@ -1,3314 +0,0 @@
-%D \module
-%D [ file=spec-fdf,
-%D version=1998.05.18,
-%D title=\CONTEXT\ \PDF\ Macros,
-%D subtitle=Support Macros,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D The name of this module is a bit strange but it started with fields
-%D so we keep the name.
-
-%D When dealing with resources, we share the resource dictionaries
-%D between all xforms. This is inefficent in the sense that when no
-%D resources are used, redundant entries take space, but on the other
-%D hand we save redundant dictionaries so it's a nice compromise. Maybe
-%D that in \LUATEX\ I will reimplement most of the code here anyway.
-
-%D We need to check if we can use \type {\driverreferenced}
-%D object in more places.
-
-%D Initialization of fields is tricky. If a field has no
-%D value, it is kind of not there. If ResetForm is used, the
-%D default is assigned, but pushbuttons are spoiled. Adding a
-%D \type {/MK} dictionary helps, but gives ugly down
-%D appearances (displaced with background). What a mess.
-%D Also, in order to get at least something, the \type {/AS}
-%D key should be provided.
-
-% to do : /IF << /SW /N >> == no scaling / clipping of widget
-
-\unprotect
-
-%D \macros
-%D {PDFobjref}
-%D
-%D Just a shortcut.
-
-% Watch out, \def\PDFobjref#1{\purenumber#1 0 R} also works, but not when
-% #1 == \the\whatever
-
-\def\PDFobjref#1{\purenumber{#1} 0 R}
-
-%D \macros
-%D {PDFswapdir}
-
-\let\PDFswapdir\empty \def\PDFswapdir{\ifcase\inlinedirection\or\or-\fi}
-
-% the pdf spec changed cq. viewers started behaving differently / 5+
-
-\chardef\overcomePDFpage\plusone % page numbers/ beware: optimizers remove this one
-\chardef\overcomePDFpage\plustwo % page:number
-%chardef\overcomePDFpage\plusthree % pdftex page ref feature
-
-\ifx\pdfpageref\undefined \else \chardef\overcomePDFpage\plusthree \fi
-
-%D \macros
-%D {setPDFdestination}
-%D
-%D \PDF\ destinations should obey the specifications laid down
-%D in the \PDF\ reference manual. The next macro strips illegal
-%D characters from the destination name.
-%D
-%D The \ACROBAT\ programs are not bug free. By setting the next
-%D switches, we will at least try to prevent problems.
-
-\newif\ifovercomePDFbugs \overcomePDFbugsfalse % dest sort problem / 3-
-\newif\ifovercomePDFspace \overcomePDFspacetrue % dest sort problem / 3-
-
-\let\setPDFdestination\gobbleoneargument % a MK specific definition
-
-%D \macros
-%D {sanitizePDFstring}
-%D
-%D This macro at least tries to convert a arbitrary string
-%D into a sequence of characters valid for \PDF\ bookmarks and
-%D alike.
-
-\def\sanitizePDFstring#1\to#2{}
-
-%D \macros
-%D {doPDFdestination,
-%D doPDFaction,
-%D doPDFannotation,
-%D doPDFannotationobject,
-%D doPDFdictionaryobject,
-%D doPDFarrayobject,
-%D doPDFaddtocatalog,
-%D doPDFaddtoinfo,
-%D doPDFpageattribute,
-%D doPDFpageresource,
-%D doPDFpagesattribute,
-%D doPDFbookmark,
-%D defaultobjectreference,
-%D doPDFgetobjectreference}
-%D
-%D This module deals with \PDF\ support, including fill||in
-%D forms. Before we present the largely unreadable bunch of
-%D macros, we introduce the here||not||defined low level
-%D interface macros. These must be provided by the special
-%D drivers \type{pdf} (\ACROBAT) and \type{tpd} (\PDFTEX).
-%D
-%D \starttyping
-%D \doPDFdestination #1 name
-%D \doPDFaction #1#2#3 width height action
-%D \doPDFannotation #1#2#3 width height data
-%D \doPDFannotationobject #1#2#3#4#5 class name width height data
-%D \doPDFdictionaryobject #1#2#3 class name data
-%D \doPDFarrayobject #1#2#3 class name data
-%D \doPDFaddtocatalog #1
-%D \doPDFaddtoinfo #1
-%D \doPDFpageattribute #1
-%D \doPDFpageresource #1
-%D \doPDFpagesattribute #1
-%D \doPDFbookmark #1#2#3#4#5 level n text page open
-%D
-%D \defaultobjectreference #1#2 class name
-%D \doPDFgetobjectreference #1#2#3 class name \PDFobjectreference
-%D \doPDFgetobjectpagereference #1#2#3 class name \PDFobjectreference
-%D \stoptyping
-%D
-%D The keywords reflect their use. For the moment we stick to
-%D keywords, because that way at we get an indication of what
-%D we're doing.
-
-\startspecials[fdf]
-
-%D Common:
-
-% \def\doPDFgetobjectreference#1#2#3%
-% {\def#3{..}}
-
-\def\doPDFgetobjectpage#1#2#3%
- {\dogetobjectreferencepage{#1}{#2}#3%
- \ifx#3\empty\def#3{1}\fi}
-
-\def\doPDFgetobjectpagereference#1#2#3%
- {\dogetobjectreferencepage{#1}{#2}#3%
- \ifx#3\empty
- \doPDFgetpagereference\realfolio#3%
- \else
- \doPDFgetpagereference#3#3% we assume that #3 gets expanded
- \fi}
-
-% \def\doPDFgetpagereference#1#2%%%%%%%%%%%%%%%
-% {\def#2{...}}
-
-%D Due to the fact that \PDFTEX\ has a different concept of
-%D page attributes, we need:
-
-\let\doPDFresetpageattributes\relax
-\let\doPDFresetpageresources \relax
-
-\appendtoksonce
- \doPDFresetpageattributes
- \doPDFresetpageresources
-\to \everyaftershipout
-
-\ifx\PDFcode\undefined
- \ifx\pdfliteral\undefined
- \def\PDFcode#1{\message{[ignored pdfliteral: #1]}}
- \else
- \let\PDFcode\pdfliteral
- \fi
-\fi
-
-%D For special (\METAPOST) effects, we need to build
-%D resource dictionaries. Here is the framework.
-
-\let\docuPDFextgstates\empty
-%let\pagePDFextgstates\empty
-
-\def\checkPDFextgstates
- {\ifx\docuPDFextgstates\empty \else
- \ifnum\realpageno=\lastpage\relax
- %\doPDFreserveddictionaryobject{FDF}{docuextgstates}{\docuPDFextgstates}%
- \doPDFdictionaryobject{FDF}{docuextgstates}{\docuPDFextgstates}%
- \fi
- \doPDFgetobjectreference{FDF}{docuextgstates}\PDFobjectreference
- \doPDFpageresource{/ExtGState \PDFobjectreference}%
- \fi}
-
-\appendtoksonce
- \checkPDFextgstates
-\to \everyshipout
-
-\def\appendtoPDFdocumentextgstates#1%
- {\xdef\docuPDFextgstates{\docuPDFextgstates\space#1}}
-
-%D Another special mechanism (needed for color separation):
-
-\let\docuPDFcolorspaces\empty
-
-\def\checkPDFcolorspaces
- {\ifx\docuPDFcolorspaces\empty \else
- \ifnum\realpageno=\lastpage\relax
- %\doPDFreserveddictionaryobject{FDF}{colorspaces}{\docuPDFcolorspaces}%
- \doPDFdictionaryobject{FDF}{colorspaces}{\docuPDFcolorspaces}%
- \fi
- \doPDFgetobjectreference{FDF}{colorspaces}\PDFobjectreference
- \doPDFpageresource{/ColorSpace \PDFobjectreference}%
- \fi}
-
-\appendtoksonce
- \checkPDFcolorspaces
-\to \everyshipout
-
-\def\appendtoPDFdocumentcolorspaces#1%
- {\xdef\docuPDFcolorspaces{\docuPDFcolorspaces\space#1}}
-
-%D And another one (used to be in spec-pdf)
-
-\let\docuPDFshades\empty
-
-\def\checkPDFshades
- {\ifx\docuPDFshades\empty \else
- \ifnum\realpageno=\lastpage\relax
- %\doPDFreserveddictionaryobject{FDF}{docushades}{\docuPDFshades}%
- \doPDFdictionaryobject{FDF}{docushades}{\docuPDFshades}%
- \fi
- \doPDFgetobjectreference{FDF}{docushades}\PDFobjectreference
- \doPDFpageresource{/Shading \PDFobjectreference}%
- \fi}
-
-\appendtoksonce
- \checkPDFshades
-\to \everyshipout
-
-\def\appendtoPDFdocumentshades#1%
- {\xdef\docuPDFshades{\docuPDFshades\space#1}}
-
-%D \macros
-%D {doPDFsetupscreen,doPDFsetupidentity}
-%D
-%D Opposite to \DVI\ drivers, \PDF\ ones must know which what
-%D page dimensions they are dealing. We also use the
-%D opportunity to launch full screen (1) or show bookmarks (2).
-
-\let\currentPDFpagemode \empty % document catalog
-\let\currentPDFviewerprefs\empty % document catalog
-
-\let\currentPDFcropbox \empty % page attributes
-\let\currentPDFbleedbox \empty % page attributes
-\let\currentPDFartbox \empty % page attributes
-\let\currentPDFtrimbox \empty % page attributes
-
-\def\doPDFsetupscreen#1#2#3#4#5#6% watch the extra argument
- {\bgroup
-% \!!widtha#4%
-% \advance\!!widtha#2%
-% \!!heighta-#5%
-% \!!heightb#1% extra argument
-% \advance\!!heightb -#3%
-% \advance\!!heighta \!!heightb
-% % sometimes whole values give better results
-% % \PointsToWholeBigPoints{#2}\left
-% % \PointsToWholeBigPoints\!!heighta\bottom
-% % \PointsToWholeBigPoints\!!widtha \width
-% % \PointsToWholeBigPoints\!!heightb\height
-% % but since pdf/x does not round when checking if
-% % the boxes fit inside the media box ...
-% \PointsToBigPoints{#2}\left
-% \PointsToBigPoints\!!heighta\bottom
-% \PointsToBigPoints\!!widtha \width
-% \PointsToBigPoints\!!heightb\height
-% \xdef\currentPDFcropboxspec
-% {[\left\space\bottom\space\width\space\height]}%
-% \global\let\currentPDFtrimboxspec\currentPDFcropboxspec
-%
-% \xdef\currentPDFpagemode
-% {/PageMode \ifcase#6
-% /UseNone\or/FullScreen\or/UseOutlines\else/UseNone\fi}%
-%
- \xdef\currentPDFpagemode
- {\ifnum#6=4
- /PageLayout /TwoColumnRight
- \else
- /PageMode \ifcase#6
- /UseNone\or/FullScreen\or/UseOutlines\else/UseNone\fi
- \fi}%
- \xdef\currentPDFviewerprefs % space after #6 needed, else \relax
- {\ifcase#6 \or\or\else /ViewerPreferences << /FitWindow true >>\fi}%
- \egroup}
-
-% not that good if we switch drivers
-
-\def\addPDFdocumentinfo
- {\doPDFaddtocatalog{\currentPDFpagemode\currentPDFviewerprefs}%
- \doPDFaddtocatalog{/Version \ifdim\PDFversion00\points>100\points 1.\fi\PDFversion}%
- \doPDFaddtoinfo{/Trapped /False}%
- \doPDFaddtoinfo{/ConTeXt.Version (\contextversion)}%
- \doPDFaddtoinfo{/ConTeXt.Time (\number\normalyear.\twodigits\normalmonth.\twodigits\normalday\space \twodigits\currenthour:\twodigits\currentminute)}%
- \doPDFaddtoinfo{/ConTeXt.Jobname (\jobname)}%
- \doPDFaddtoinfo{/ConTeXt.Url (www.pragma-ade.com)}}
-
-\appendtoksonce % hack to prevent duplicates
- \addPDFdocumentinfo
-\to \everyfirstshipout
-
-\def\PDFversion{1.5}
-
-\appendtoksonce
- \def\PDFversion{1.5}%
- \let\addPDFdocumentinfo\relax
-\to \everyresetspecials
-
-\def\doPDFsetupwhateverbox#1#2#3#4#5#6% watch the extra arguments
- {\bgroup
- \!!widtha \dimexpr#5+#3\relax
- \!!heightb\dimexpr#2-#4\relax
- \!!heighta\dimexpr\!!heightb-#6\relax
- % sometimes whole values give better results
- % \PointsToWholeBigPoints{#3}\left
- % \PointsToWholeBigPoints\!!heighta\bottom
- % \PointsToWholeBigPoints\!!widtha \width
- % \PointsToWholeBigPoints\!!heightb\height
- % but since pdf/x does not round when checking if
- % the boxes fit inside the media box ...
- \PointsToBigPoints{#3}\left
- \PointsToBigPoints\!!heighta\bottom
- \PointsToBigPoints\!!widtha \width
- \PointsToBigPoints\!!heightb\height
- \xdef#1{[\left\space\bottom\space\width\space\height]}%
- \egroup}
-
-\def\doPDFsetupartbox {\doPDFsetupwhateverbox\currentPDFartbox }
-\def\doPDFsetupcropbox {\doPDFsetupwhateverbox\currentPDFcropbox }
-\def\doPDFsetupbleedbox{\doPDFsetupwhateverbox\currentPDFbleedbox}
-\def\doPDFsetuptrimbox {\doPDFsetupwhateverbox\currentPDFtrimbox }
-
-\gdef\currentPDFtrimbox{\currentPDFcropbox} % default, needed for pdf/x
-
-\def\flushPDFwhateverbox#1#2%
- {\doifsomething{#1}{\doPDFpageattribute{/#2Box #1}}}
-
-\appendtoksonce
- \flushPDFwhateverbox\currentPDFartbox {Art}%
- \flushPDFwhateverbox\currentPDFcropbox {Crop}%
- \flushPDFwhateverbox\currentPDFbleedbox{Bleed}%
- \flushPDFwhateverbox\currentPDFtrimbox {Trim}%
-\to \everyshipout
-
-\def\doPDFsetupidentity#1#2#3#4#5#6%
- {\bgroup
- \enablePDFdocencoding
- \edef\!!stringa{#5}%
- \ifx\!!stringa\empty \ifx\pdfdate\undefined\else
- \edef\!!stringa{D:\pdfdate}%
- \fi \fi
- \expanded{\doPDFaddtoinfo
- {/Title (#1)
- /Subject (#2)
- /Author (#3)
- /Creator (#4)
- /ModDate (\!!stringa)
- /ID (\jobname.\!!stringa) % needed for pdf/x
- /Keywords (#6)}}%
- \egroup}
-
-%D \macros
-%D {doPDFsetupopenaction,doPDFsetupcloseaction,
-%D doPDFsetupopenpageaction,doPDFsetupclosepageaction}
-%D
-%D Setting the open and close actions is kind of fuzzy
-%D because action chains are derived from the reference
-%D mechanism.
-
-%D Starting with version~5 viewers, when the open actions
-%D started yto give problems, for testing purposes we
-%D decided use indirect actions.
-
-% \definespecial\dosetupopenaction {\doPDFsetupopenaction}
-% \definespecial\dosetupcloseaction {\doPDFsetupcloseaction}
-% \definespecial\dosetupopenpageaction {\doPDFsetupopenpageaction}
-% \definespecial\dosetupclosepageaction{\doPDFsetupclosepageaction}
-
-\let\lastPDFaction\empty
-
-%D We can safe a couple of references by moving this code
-%D to the specific drivers.
-%D
-%D The following code used to work okay, but as with any
-%D update of Acrobat Viewers, upward compatibility was
-%D just a dream.
-
-\definespecial\dosetupopenaction {\doPDFaddtocatalog{/OpenAction <<\lastPDFaction>>}}
-\definespecial\dosetupcloseaction{\doPDFaddtocatalog{/CloseAction <<\lastPDFaction>>}}
-
-% todo: /AA << dictionary in catalog >>
-
-% \globalletempty\PDFdocumentclose
-% \globalletempty\PDFwillsave
-% \globalletempty\PDFdidsave
-% \globalletempty\PDFwillprint
-% \globalletempty\PDFdidprint
-
-% \definespecial\dosetupdocumentcloseaction {\global\let\PDFdocumentclose\lastPDFaction}
-% \definespecial\dosetupwillsaveaction {\global\let\PDFwillsave \lastPDFaction}
-% \definespecial\dosetupdidsaveaction {\global\let\PDFdidsave \lastPDFaction}
-% \definespecial\dosetupwillprintaction {\global\let\PDFwillprint \lastPDFaction}
-% \definespecial\dosetupdidprintaction {\global\let\PDFdidprint \lastPDFaction}
-
-% \def\checkPDFdocumentactions
-% {\iflocation
-% \doPDFpageattribute
-% {/AA <<\ifx\PDFdocumentclose\empty \else /DC <<\PDFdocumentclose>> \fi
-% \ifx\PDFwillsave \empty \else /WS <<\PDFwillsave >> \fi
-% \ifx\PDFdidsave \empty \else /DS <<\PDFdidsave >> \fi
-% \ifx\PDFwillprint \empty \else /WP <<\PDFwillprint >> \fi
-% \ifx\PDFdidprint \empty \else /DP <<\PDFdidprint >> \fi>>}%
-% % \globalletempty\PDFdocumentclose
-% % \globalletempty\PDFwillsave
-% % \globalletempty\PDFdidsave
-% % \globalletempty\PDFwillprint
-% % \globalletempty\PDFdidprint
-% \global\let\checkPDFdocumentactions\relax
-% \fi}
-
-% \appendtoksonce
-% \checkPDFdocumentactions
-% \to \everylastshipout
-
-%\def\doPDFsetupopenaction%
-% {\doPDFdictionaryobject{FDF}{local:openaction}\lastPDFaction
-% \doPDFgetobjectreference{FDF}{local:openaction}\PDFobjectreference
-% \doPDFaddtocatalog{/OpenAction \PDFobjectreference}}
-%
-%\def\doPDFsetupcloseaction%
-% {\doPDFdictionaryobject{FDF}{local:closeaction}\lastPDFaction
-% \doPDFgetobjectreference{FDF}{local:closeaction}\PDFobjectreference
-% \doPDFaddtocatalog{/CloseAction \PDFobjectreference}}
-
-\let\PDFopenpageaction \empty
-\let\PDFclosepageaction\empty
-
-\definespecial\dosetupopenpageaction {\global\let\PDFopenpageaction \lastPDFaction}
-\definespecial\dosetupclosepageaction{\global\let\PDFclosepageaction\lastPDFaction}
-
-\def\checkPDFpageactions
- {\iflocation % important since direct -)
- \donefalse
- \ifx\PDFopenpageaction \empty\!!doneafalse\else\donetrue\!!doneatrue\fi
- \ifx\PDFclosepageaction\empty\!!donebfalse\else\donetrue\!!donebtrue\fi
- \ifdone
- \doPDFpageattribute
- {/AA <<\if!!donea/O <<\PDFopenpageaction >> \fi
- \if!!doneb/C <<\PDFclosepageaction>> \fi>>}%
- \fi
- \global\let\PDFopenpageaction \empty
- \global\let\PDFclosepageaction\empty
- \fi}
-
-\appendtoksonce
- \checkPDFpageactions
-\to \everyshipout
-
-%D \macros
-%D {doPDFstartthisislocation}
-%D
-%D Next we define the macros that deal with hyperreferencing,
-%D graphic inclusion and general document features. These are
-%D the olderst ones. I won't comment much because one needs
-%D knowledge of \PDF\ itself, and explaning \PDF\ is beyond
-%D this documentation.
-
-\def\doPDFstartthisislocation#1%
- {\bgroup
- \setPDFdestination{#1}%
- %\doifsomething{\PDFdestination}
- % {\doPDFdestination{\PDFdestination}}%
- \ifx\PDFdestination\empty \else
- \doPDFdestination{\PDFdestination}%
- \fi
- \egroup}
-
-%D \macros
-%D {doPDFstartgotolocation,
-%D doPDFstartgotorealpage,
-%D doPDFstartgotoJS}
-%D
-%D The goto macros use the switch \type{\ifsecondaryreference}
-%D to determine if actions should be linked.
-
-\def\locationfilesuffix{pdf}
-
-% \def\preparePDFlocationfile#1#2%
-% {\setreferencefilename#1\to#2%
-% \expanded{\doifnotinstring{.\locationfilesuffix}{#2}}
-% {\edef#2{#2.\locationfilesuffix}}}
-%
-% \def\preparePDFlocationfile#1\to#2%
-% {\setreferencefilename#1\to#2%
-% \expanded{\doifnotinstring{.pdf}{#2}}{\edef#2{#2.pdf}}}
-
-\def\doPDFstartgotolocation#1#2#3#4#5#6%
- {\bgroup
- \doifelsenothing{#3}
- {\setPDFdestination{#5}%
- \doifelsenothing\PDFdestination
- {\let\action\empty}
- {\doifelsenothing{#4}
- {\let\PDFfile\empty}
- {\expanded{\beforesplitstring#4}\at.\to\PDFfile
- \doifparentfileelse\PDFfile % {#4}
- {\let\PDFfile\empty}
- %{\setreferencefilename#4.\locationfilesuffix\to\PDFfile
- {\@EA\setreferencefilename\PDFfile.\locationfilesuffix\to\PDFfile
- \edef\PDFfile
- {R /F (\PDFfile)\ifgotonewwindow\space/NewWindow true \fi}}}%
- \edef\action%
- {/S /GoTo\PDFfile\space /D (\PDFdestination)}}}
- {\doifelsenothing{#4}
- {\let\PDFfile\empty
- \let\PDFdestination\empty}
- {\setreferencefilename/#4\to\PDFfile
- \setPDFdestination{#5}%
- \doifsomething\PDFdestination
- {\edef\PDFdestination{\URLhash\PDFdestination}}}%
- \edef\action{/S /URI /URI (#3\PDFfile\PDFdestination)}}%
- \ifx\action\empty\else
- \ifsecondaryreference
- \savesecondaryPDFreference\action
- \else
- \getsecondaryPDFreferences
- \doPDFaction{\PDFswapdir#1}{#2}{\action \secondaryPDFreferences}%
- \fi
- \fi
- \egroup}
-
-\def\PDFgotonewwindow{\ifgotonewwindow\space/NewWindow true \fi}
-
-% optimization in tpd driver
-%
-% \edef\PDFdestination{(page:\the\scratchcounter)}%
-%
-% ==>
-%
-% \advance\scratchcounter 1
-% \edef\PDFdestination{[\pdfpageref \PDFobjref\scratchcounter\PDFpageviewwrd]}%
-%
-% \doPDFgetpagedestination#1#2% pagenumber macro % % fuzzy hack
-
-\def\doPDFstartgotorealpage#1#2#3#4#5% watch the R append trick
- {\bgroup
- \doifelsenothing{#3}% #1 = url
- {\scratchcounter0#5\relax
- \ifnum\scratchcounter>0
- \doifelsenothing{#4}
- {\let\PDFfile\empty}
- {\expanded{\beforesplitstring#4}\at.\to\PDFfile
- \doifparentfileelse\PDFfile % {#4}
- {\let\PDFfile\empty}
- %{\setreferencefilename#4.\locationfilesuffix\to\PDFfile
- {\@EA\setreferencefilename\PDFfile.\locationfilesuffix\to\PDFfile
- \edef\PDFfile{R /F (\PDFfile)\PDFgotonewwindow}}}%
- \ifx\PDFfile\empty
- \ifcase\overcomePDFpage
- \or % pdf starts numbering at zero
- \advance\scratchcounter \minusone
- \edef\PDFdestination{[\the\scratchcounter\space\PDFpageviewwrd]}%
- \or % pdf starts numbering at zero
- \advance\scratchcounter \minusone
- \edef\PDFdestination{(page:\the\scratchcounter)}%
- \or % pdftex starts numbering at one
- \edef\PDFdestination{[\pdfpageref\scratchcounter\space0 R \PDFpageviewwrd]}%
- \fi
- \else % across files it's a page number / pdf starts numbering at zero
- \advance\scratchcounter \minusone
- \edef\PDFdestination{[\the\scratchcounter\space\PDFpageviewwrd]}%
- \fi
- \edef\action{/S /GoTo\PDFfile\space /D \PDFdestination}%
- \else
- \let\action\empty
- \fi}
- {\doifelsenothing{#4}
- {\let\PDFfile\empty}
- {\setreferencefilename/#4\to\PDFfile}%
- \edef\action{/S /URI /URI (#3\PDFfile)}}%
- \ifx\action\empty\else
- \ifsecondaryreference
- \savesecondaryPDFreference\action
- \else
- \getsecondaryPDFreferences
- \doPDFaction{\PDFswapdir#1}{#2}{\action \secondaryPDFreferences}%
- \fi
- \fi
- \egroup}
-
-\let\lastfakedPDFpage\!!zerocount
-
-\def\fakePDFpagedestination % as in pdf, we start numbering at zero
- {\iflocation \ifarrangingpages \ifnum\overcomePDFpage=\plustwo \else
- \ifnum\lastfakedPDFpage<\realpageno
- \bgroup
- \xdef\lastfakedPDFpage{\realfolio}%
- \advance\realpageno \minusone % is \expanded needed ?
- \expanded{\doPDFdestination{page:\realfolio}}%
- \egroup
- \fi
- \fi \fi \fi}
-
-\appendtoksonce
- \fakePDFpagedestination
-\to \everyshipout
-
-\def\doPDFstartgotoJS#1#2#3%
- {\bgroup
- \doPSsanitizeJScode#3\to\sanitizedJScode
- \edef\action
- {/S /JavaScript /JS (\sanitizedJScode)}%
- \ifsecondaryreference
- \savesecondaryPDFreference\action
- \else
- \getsecondaryPDFreferences
- \doPDFaction{\PDFswapdir#1}{#2}{\action \secondaryPDFreferences}%
- \fi
- \egroup}
-
-%D \macros
-%D {doPDFstartexecutecommand}
-%D
-%D At the cost of much auxiliary placeholders, we can pretty
-%D fast convert the command asked for. This is how the \PDF\
-%D code looks like.
-
-\def\PDFmoviecode#1#2#3%
- {/Movie
- /T (\ifcase#1movie \else sound \fi\ifx\argumentA\empty#2\else\argumentA\fi)
- /Operation /\ifcase#3Play\or Stop\or Pause\or Resume\fi\space}
-
-\def\PDFexecutestartmovie {\PDFmoviecode0\currentmovie0}
-\def\PDFexecutestopmovie {\PDFmoviecode0\currentmovie1}
-\def\PDFexecutepausemovie {\PDFmoviecode0\currentmovie2}
-\def\PDFexecuteresumemovie {\PDFmoviecode0\currentmovie3}
-
-\def\PDFexecutestartsound {\PDFmoviecode1\currentsound0}
-\def\PDFexecutestopsound {\PDFmoviecode1\currentsound1}
-\def\PDFexecutepausesound {\PDFmoviecode1\currentsound2}
-\def\PDFexecuteresumesound {\PDFmoviecode1\currentsound3}
-
-\def\PDFformcode#1%
- {\doFDFiffieldset{#1}{/Field [\doFDFgetfieldset{#1}]}}
-
-% bit 3 = html
-% bit 6 = xml
-% bit 4 = get
-
-\ifx\PDFsubmitfiller\undefined \let\PDFsubmitfiller\empty \fi
-
-\chardef\PDFformmethod=1 % 0=GET 1=POST
-
-\def\PDFformflag#1#2{\ifcase\PDFformmethod#1\else#2\fi}
-
-\def\PDFexecuteimportform {/Named /N /AcroForm:ImportFDF}
-\def\PDFexecuteexportform {/Named /N /AcroForm:ExportFDF}
-\def\PDFexecuteresetform {/ResetForm \PDFformcode\argumentA}
-\def\PDFexecutesubmitform {/SubmitForm \PDFformcode\argumentB
- /Flags \ifcase\submitoutputformat\space
- \PDFformflag{12} {4} % 0=unknown
- \or \PDFformflag{12} {4} % 1=HTML
- \or \PDFformflag {8} {0} % 2=FDF
- \or \PDFformflag{40}{32} % 3=XML
- \else \PDFformflag{12} {4} % ?=unknown
- \fi
- /F (\argumentA)\PDFsubmitfiller}
-
-% urifill permits url substitution
-
-\def\PDFexecutehide {/Hide /T (\argumentA) /H true}
-\def\PDFexecuteshow {/Hide /T (\argumentA) /H false}
-
-\def\PDFexecutefirst {/Named /N /FirstPage}
-\def\PDFexecuteprevious {/Named /N /PrevPage}
-\def\PDFexecutenext {/Named /N /NextPage}
-\def\PDFexecutelast {/Named /N /LastPage}
-\def\PDFexecutebackward {/Named /N /GoBack}
-\def\PDFexecuteforward {/Named /N /GoForward}
-\def\PDFexecuteprint {/Named /N /Print}
-\def\PDFexecuteexit {/Named /N /Quit}
-\def\PDFexecuteclose {/Named /N /Close}
-\def\PDFexecutesave {/Named /N /Save}
-\def\PDFexecutesavenamed {/Named /N /SaveAs}
-\def\PDFexecuteopennamed {/Named /N /Open}
-\def\PDFexecutehelp {/Named /N /HelpUserGuide}
-\def\PDFexecutetoggle {/Named /N /FullScreen}
-\def\PDFexecutesearch {/Named /N /Find}
-\def\PDFexecutesearchagain {/Named /N /FindAgain}
-\def\PDFexecutegotopage {/Named /N /GoToPage}
-\def\PDFexecutequery {/Named /N /AcroSrch:Query}
-\def\PDFexecutequeryagain {/Named /N /AcroSrch:NextHit}
-\def\PDFexecutefitwidth {/Named /N /FitWidth}
-\def\PDFexecutefitheight {/Named /N /FitHeight}
-
-\let\PDFobjectclass\empty
-\let\PDFobjectname \empty
-
-\def\doPDFstartexecutecommand#1#2#3#4%
- {\doifdefined{PDFexecute#3}
- {\bgroup
- \@EA\dogetcommalistelement\@EA1\@EA\from#4\to\argumentA
- \@EA\dogetcommalistelement\@EA2\@EA\from#4\to\argumentB
- \edef\argument{#4}%
- \edef\action%
- {/S \getvalue{PDFexecute#3}}%
- \ifsecondaryreference
- \savesecondaryPDFreference\action
- \else
- \getsecondaryPDFreferences
-% \ifx\PDFobjectclass\empty
-% \let\next\doPDFaction
-% \else
-% \edef\next{\doPDFactionobject{\PDFobjectclass}{\PDFobjectname}}%
-% \globalletempty\PDFobjectclass
-% \globalletempty\PDFobjectname
-% \fi
-% \next
- \doPDFaction{\PDFswapdir#1}{#2}{\action \secondaryPDFreferences}%
- \fi
- \egroup}}
-
-%D \macros
-%D {doPDFstartrunprogram}
-%D
-%D Running programs is possible, but is non that portable, and
-%D therefore dangerous.
-
-\def\doPDFstartrunprogram#1#2#3#4% new: #3 => #3#4
- {\bgroup
- %\edef\string{#3}%
- %\@EA\beforesplitstring\string\at{ }\to\program
- %\@EA\aftersplitstring \string\at{ }\to\parameters
- %\edef\action%
- % {/S /Launch /F (\program) /P (\parameters) /D (.)}%
- \edef\action
- {/S /Launch /F (#3) /P (#4) /D (.)}%
- \ifsecondaryreference
- \savesecondaryPDFreference\action
- \else
- \getsecondaryPDFreferences
- \doPDFaction{\PDFswapdir#1}{#2}{\action \secondaryPDFreferences}%
- \fi
- \egroup}
-
-%D \macros
-%D {doPDFstartgotoprofile}
-%D
-%D Far from perfect, but nevertheless present, is the profile
-%D handler. We want to misuse article threads for reder
-%D profiles.
-
-\def\doPDFstartgotoprofile#1#2#3% to be done: file
- {\bgroup
- \setPDFdestination{#3}%
- \doifsomething\PDFdestination
- {\edef\action
- {/S /Thread /D (\PDFdestination)}%
- \ifsecondaryreference
- \savesecondaryPDFreference\action
- \else
- \getsecondaryPDFreferences
- \doPDFaction{\PDFswapdir#1}{#2}{\action \secondaryPDFreferences}%
- \fi}%
- \egroup}
-
-%D \macros
-%D {doPDFsetpagetransition}
-%D
-%D This array holds a reasonable selection of transitions
-%D (watch out: \type{replace} is not in this list). Most of
-%D the transitions look awful anyway. By the way, \CONTEXT\ is
-%D able to select transitions randomly.
-
-% some day, when 1.5 is on linux and apple, we will add:
-%
-% \def\pagetransitions
-% {{split,in,vertical},{split,in,horizontal},
-% {split,out,vertical},{split,out,horizontal},
-% {blinds,horizontal},{blinds,vertical},
-% {box,in},{box,out},
-% {wipe,east},{wipe,west},{wipe,north},{wipe,south},
-% dissolve,
-% {glitter,east},{glitter,south},
-% {fly,in,east},{fly,in,west},{fly,in,north},{fly,in,south},
-% {fly,out,east},{fly,out,west},{fly,out,north},{fly,out,south},
-% {push,east},{push,west},{push,north},{push,south},
-% {cover,east},{cover,west},{cover,north},{cover,south},
-% {uncover,east},{uncover,west},{uncover,north},{uncover,south},
-% fade}
-
-\def\pagetransitions
- {{split,in,vertical},{split,in,horizontal},
- {split,out,vertical},{split,out,horizontal},
- {blinds,horizontal},{blinds,vertical},
- {box,in},{box,out},
- {wipe,east},{wipe,west},{wipe,north},{wipe,south},
- dissolve,
- {glitter,east},{glitter,south}}
-
-%D Again, we use macros as placeholders for \PDF\ key||value
-%D pairs.
-
-\def\PDFpagesplit {/S /Split }
-\def\PDFpageblinds {/S /Blinds }
-\def\PDFpagebox {/S /Box }
-\def\PDFpagewipe {/S /Wipe }
-\def\PDFpagedissolve {/S /Dissolve }
-\def\PDFpageglitter {/S /Glitter }
-\def\PDFpagereplace {/S /R }
-
-\def\PDFpagefly {/S /Fly } % 1.5
-\def\PDFpagepush {/S /Push } % 1.5
-\def\PDFpagecover {/S /Cover } % 1.5
-\def\PDFpageuncover {/S /Uncover } % 1.5
-\def\PDFpagefade {/S /Fade } % 1.5
-
-\def\PDFpagehorizontal {/Dm /H }
-\def\PDFpagevertical {/Dm /V }
-\def\PDFpagein {/M /I }
-\def\PDFpageout {/M /O }
-\def\PDFpageeast {/Di 0 }
-\def\PDFpagenorth {/Di 90 }
-\def\PDFpagewest {/Di 180 }
-\def\PDFpagesouth {/Di 270 }
-
-\def\dodoPDFsetpagetransition#1%
- {\doifdefined{PDFpage#1}
- {\edef\PDFpagetransitions{\PDFpagetransitions\getvalue{PDFpage#1}}}}
-
-\def\doPDFsetpagetransition#1#2%
- {\let\PDFpagetransitions\empty
- \processcommalist[#1]\dodoPDFsetpagetransition
- \doPDFpageattribute
- %{\ifnum#2>0 /Dur #2 \fi
- {\ifnum0<0#2 /Dur #2 \fi
- \ifx\PDFpagetransitions\empty\else/Trans <<\PDFpagetransitions>>\fi}}
-% \ifx\PDFpagetransitions\empty\else/Trans <</Type /Trans \PDFpagetransitions>>\fi}}
-
-%D \macros
-%D {doPDFinsertmov}
-%D
-%D Most of the annotations we use here are of type {\em
-%D link}, but here is another one: the {\em movie} annotation.
-%D The driver module must implement \type {setcurrentmovie}.
-
-%D Great: this will become an obsolete pdf feature; why did we have to
-%D keep up with the bugs ... and by the time acrobat gets better in
-%D handling it have to drop it.
-
-\let\currentmovie\s!unknown
-
-\def\doPDFinsertmov
- {\bgroup
- \xdef\currentmovie{\@@DriverImageLabel}%
- \PointsToBigPoints\@@DriverImageWidth \width
- \PointsToBigPoints\@@DriverImageHeight\height
- \let\pdf@@options\empty
- \let\pdf@@actions\empty
- \donefalse
- \expanded{\processallactionsinset[\@@DriverImageOptions]}
- [\v!controls=>\donetrue,
- \v!repeat=>\edef\pdf@@actions{\pdf@@actions /Mode /Repeat },
- \v!preview=>\edef\pdf@@options{\pdf@@options /Poster true }]%
- \edef\pdf@@actions{\pdf@@actions /ShowControls \ifdone true\else false\fi}%
- \doPDFannotation\@@DriverImageWidth\@@DriverImageHeight
- {/Subtype /Movie
- /Border [0 0 0]
- /T (movie \currentmovie)
- /Movie << /F (\@@DriverImageFile) /Aspect [\width\space\height] \pdf@@options >>
- /A << \pdf@@actions >>}%
- \egroup}
-
-%D \macros
-%D {doPDFinsertsoundtrack}
-%D
-%D In \PDF\ sounds can be embedded like movies.
-
-\ifx\everygoto\undefined \newtoks\everygoto \fi
-
-\let\currentsound\s!unknown
-
-\def\doPDFinsertsoundtrack#1#2#3%
- {\bgroup
- \xdef\currentsound{#2}%
- \let\pdf@@actions\empty
- \@EA\processallactionsinset\@EA
- [#3]
- [\v!repeat=>\edef\pdf@@actions{\pdf@@actions /Mode /Repeat }]%
- \collectdriverresource
- %\flushatshipout % since it can be buried in a chained box
- {\doPDFannotation{0pt}{0pt}
- {/Subtype /Movie
- /Border [0 0 0]
- /T (sound \currentsound)
- /Movie <</F (#1)>>%
- \ifx\pdf@@actions\empty\else/A << \pdf@@actions >>\fi}}%
- \egroup}
-
-%D \macros
-%D {doPDFattachfile}
-
-\def\doPDFfilestreamobject#1#2#3#4%
- {}
-
-\def\doPDFfilestreamidentifier#1%
- {0}
-
-\def\doPDFgetfilestreamreference#1#2%
- {0 0 R}
-
-\def\doPDFattachfile#1#2#3#4#5#6#7#8%
- {\bgroup % title width height color symbol file
- \edefconvertedargument\PDFfile{#8}%
- % beware: the symbol may (indirectly) use the file
- % reference when typesetting the object number;
- \presetPDFsymbolappearance{#5}{#6}{#2}{#3}{#4}% sets width/height
- \startPDFsymbolappearance
- \doPDFembedfile\PDFfile{#7}{#8}%
- \doPDFgetembeddedfilereference\PDFfile\PDFobjectreference
- \setFDFlayer\@@DriverAttachmentLayer
- \doPDFannotation{\width}{\totalheight}
- {/Subtype /FileAttachment
- /FS \PDFobjectreference\space
- /Contents (#1)
- \PDFsymbol
- \FDFlayer
- \PDFattributes}%
- \stopPDFsymbolappearance
- \egroup}
-
-% semi-public
-
-\def\doPDFembedfile#1#2#3% symbolic name | filename | user name
- {\edefconvertedargument\PDFfile{#1}%
- \doifnotflagged{a:\PDFfile}%
- {\doPDFfilestreamobject{PDFEF}{\PDFfile}{#2}{#3}%
- \doglobal\setflag{a:\PDFfile}}}
-
-\def\doPDFgetembeddedfilereference#1#2%
- {\edefconvertedargument\PDFfile{#1}%
- \doPDFgetobjectreference{PDFEF}\PDFfile#2}
-
-\def\doPDFgetembeddedfilestreamreference#1#2%
- {\edefconvertedargument\PDFfile{#1}%
- \doPDFgetfilestreamreference\PDFfile#2} % == \doPDFgetobjectreference{PDFFS}\PDFfile#2
-
-\definespecial \doattachfile {\doPDFattachfile}
-
-% requested by Jens-Uwe Morawski: permits usage of pdftosrc
-% in viewers that don't support attachments:
-%
-% \definesymbol
-% [ObjectNumber]
-% % [object number {\PDFattachmentnumber[xx]}] % named
-% [object number \PDFattachmentnumber] % current
-%
-% \useattachment[test][xx][test.tex]
-% \setupattachments[symbol=ObjectNumber]
-% \attachment[test]
-
-\def\PDFattachmentnumber
- {\dosingleargument\doPDFattachmentnumber}
-
-\def\doPDFattachmentnumber[#1]%
- {\iffirstargument
- \doPDFfilestreamidentifier{#1}%
- \else
- \doPDFfilestreamidentifier\PDFfile
- \fi}
-
-%D \macros
-%D {...}
-%D
-%D Rather preliminary. We have to wait till the complete specs
-%D show up. As usual, we cannot really check it (Acrobat 6.0
-%D has a bug that inhibits us to make a test file). Half a day
-%D of testing made clear that trying to control the plugin fails
-%D in most cases (we need plugin specs -). We also miss a feature
-%D to let acrobat wait with proceeding (action processing) till
-%D the media clip is ready.
-
-% aiff audio/aiff
-% au audio/basic
-% avi video/avi
-% mid audio/midi
-% mov video/quicktime
-% mp3 audio/x-mp3 (mpeg)
-% mp4 audio/mp4
-% mp4 video/mp4
-% mpeg video/mpeg
-% smil application/smil
-% swf application/x-shockwave-flash
-
-% beware, this is preliminary code, should be improved
-
-\def\PDFrenderingspecs#1{\executeifdefined{PDFMR:#1}\empty}
-
-\def\PDFexecutestartrendering {/Rendition /OP 0 \PDFrenderingspecs\argumentA}
-\def\PDFexecutestoprendering {/Rendition /OP 1 \PDFrenderingspecs\argumentA}
-\def\PDFexecutepauserendering {/Rendition /OP 2 \PDFrenderingspecs\argumentA}
-\def\PDFexecuteresumerendering {/Rendition /OP 3 \PDFrenderingspecs\argumentA}
-
-% todo : sub files
-%
-% \doPDFembedfile{pier-39.png}{pier-39.png}{pier-39.png}%
-% \doPDFgetembeddedfilestreamreference{pier-39.png}\xPDFobjectreference
-% \edef\xxxx{/RF [(pier-39.png) \xPDFobjectreference]}%
-
-% todo: alternative renderings
-%
-% object_1 -> <</Type /Rendition /S /MR /C << /Type /MediaClip ... >> >>
-% object_2 -> <</Type /Rendition /S /MR /C << /Type /MediaClip ... >> >>
-%
-% rendering -> <</Type /Rendition /S /MS [objref_1 objref_2]>>
-
-% todo: embedded files (too buggy)
-%
-% \let\PDFattribute\empty
-% % /D \PDFobjectreference
-% % test one, no error, but ignored
-% \doifinset\v!file{#4}
-% {\doPDFembedfile{#3}{#3}{#3}%
-% \doPDFgetembeddedfilestreamreference{#3}\PDFobjectreference
-% \edef\PDFattribute{/EF \PDFobjectreference}}%
-% % official, does not work either
-% \doifinset\v!file{#4}
-% {\doPDFembedfile{#3}{#3}{#3}%
-% \doPDFgetembeddedfilereference{#3}\PDFobjectreference}
-% % do we play the game as follows
-
-\definespecial\doinsertrendering#1#2#3#4% tag mime file options
- {\ifundefined{PDFMR:#1}%
- \doifinstringelse{://}{#3}\donetrue\donefalse % evt url as keyword
- \doPDFdictionaryobject{PDFMF}{#1}
- {/Type /Rendition
- /S /MR
- % does not work: /SP << /Type /MediaScreenParam /BE << /B [1 0 0] /O 0.5 >> >>
- /C << /Type /MediaClip
- /S /MCD
- /N (#1)
- /Alt [() (file not found)] % language id + message
- /D << /Type /Filespec
- /F (#3)
- \ifdone/FS /URL\fi >>
- /CT (#2) >>}%
- % common code
- \doifobjectreferencefoundelse{PDFMS}{#1}
- {\doPDFgetobjectreference{PDFMS}{#1}\PDFobjectreferenceB}
- {\doPDFgetobjectreference{PDFMU}{#1}\PDFobjectreferenceB}%
- \doPDFgetobjectreference{PDFMF}{#1}\PDFobjectreferenceA
- \setxvalue{PDFMR:#1}% needed /AA actions in /Screen
- {/R \PDFobjectreferenceA
- /AN \PDFobjectreferenceB}%
- \doifobjectreferencefoundelse{PDFMS}{#1}\donothing
- {\dodoinsertrenderingwindow{PDFMU}{#1}\zeropoint\zeropoint{#4}}%
- \fi}
-
-\definespecial\doinsertrenderingobject#1#2#3#4% tag class objectname options
- {\ifundefined{PDFMR:#1}%
- \doPDFgetobjectreference{#2}{#3}\PDFobjectreference
- \doPDFdictionaryobject{PDFMF}{#1}
- {/Type /Rendition
- /S /MR
- /C << /Type /MediaClip
- /S /MCD
- /N (#1)
- /D \PDFobjectreference>>}%
- % common code
- \doifobjectreferencefoundelse{PDFMS}{#1}
- {\doPDFgetobjectreference{PDFMS}{#1}\PDFobjectreferenceB}
- {\doPDFgetobjectreference{PDFMU}{#1}\PDFobjectreferenceB}%
- \doPDFgetobjectreference{PDFMF}{#1}\PDFobjectreferenceA
- \setxvalue{PDFMR:#1}% needed /AA actions in /Screen
- {/R \PDFobjectreferenceA
- /AN \PDFobjectreferenceB}%
- \doifobjectreferencefoundelse{PDFMS}{#1}\donothing
- {\dodoinsertrenderingwindow{PDFMU}{#1}\zeropoint\zeropoint{#4}}%
- \fi}
-
-\definespecial\doinsertrenderingwindow
- {\dodoinsertrenderingwindow{PDFMS}}
-
-\def\dodoinsertrenderingwindow#1#2#3#4#5%
- {\vbox to #4 \bgroup
- \checkPDFscreenactions{#2}{#5}%
- \doPDFgetobjectpagereference{PDFMF}{#2}\PDFobjectreferenceA
- \doPDFgetobjectreference {PDFMF}{#2}\PDFobjectreferenceB
- \vss
- \hbox to #3 \bgroup
- \doPDFannotationobject{#1}{#2}{#3}{#4}
- {/Subtype /Screen
- /P \PDFobjectreferenceA
- /A \PDFobjectreferenceB
- \PDFattributes
- /Border [0 0 0]}%
- \hss
- \egroup
- \egroup}
-
-\global\let\PDFrenderingopenpageaction \empty
-\global\let\PDFrenderingclosepageaction\empty
-
-\def\checkPDFscreenactions#1#2%
- {\let\PDFattributes\empty
- \iflocation % important since direct -)
- % the action can either (already) be set by the window handler
- % or (normally when no window [i.e a zero dimensions one] is present) by keyword
- \doifinset\v!auto{#2}
- {% brrr, here instead of in navigation module, must move and become special
- % now two sided dependency
- \let\checkrendering\gobbleoneargument
- \ifx\PDFrenderingopenpageaction \empty
- \handlereferenceactions{\v!StartRendering{#1}}\dosetuprenderingopenpageaction
- \fi
- \ifx\PDFrenderingclosepageaction\empty
- \handlereferenceactions{\v!StopRendering {#1}}\dosetuprenderingclosepageaction
- \fi
- }%
- \donefalse
- \ifx\PDFrenderingopenpageaction \empty\!!doneafalse\else\donetrue\!!doneatrue\fi
- \ifx\PDFrenderingclosepageaction\empty\!!donebfalse\else\donetrue\!!donebtrue\fi
- \ifdone
- \edef\PDFattributes
- {/AA <<\if!!donea/PO <<\PDFrenderingopenpageaction >> \fi
- \if!!doneb/PC <<\PDFrenderingclosepageaction>> \fi>>}%
- \fi
- \global\let\PDFrenderingopenpageaction \empty
- \global\let\PDFrenderingclosepageaction\empty
- \fi}
-
-\definespecial\dosetuprenderingopenpageaction {\global\let\PDFrenderingopenpageaction \lastPDFaction}
-\definespecial\dosetuprenderingclosepageaction{\global\let\PDFrenderingclosepageaction\lastPDFaction}
-
-%D \macros
-%D {doPDFinsertbookmark}
-%D
-%D Well, here is the dreadfull bookmark, rather useless because
-%D only standard encoding is possible, no typography is done,
-%D and a maximum of 32~characters is advized.
-
-\def\doPDFinsertbookmark#1#2#3#4#5% level sublevels text page open=1
- {\bgroup
- % todo, unicode
- \sanitizePDFdocencoding#3\to\bookmarktext % uses scratchcounter
- \stripstring\bookmarktext
- %\sanitizePDFstring#3\to\bookmarktext
- \doPDFbookmark{#1}{#2}{\bookmarktext}{#4}{#5}%
- \egroup}
-
-%D The next section of this module is dedicated to form
-%D support. These macros are complicated by the fact that
-%D cloning is possible.
-
-%D \macros
-%D {FDFflag...,FDFplus...}
-%D
-%D The \type{/FT} key determines the type of field: text,
-%D button or choice. The latter two come in several disguises,
-%D which are set by flipping bits in the \type{/Ff}. Other bits
-%D are used to set states. Personally I hate this bitty way of
-%D doing things. The next six bit determine the field sub type:
-
-\def\FDFflagMultiLine {4096} % 13
-\def\FDFflagNoToggleToOff {16384} % 15
-\def\FDFflagRadio {32768} % 16
-\def\FDFflagPushButton {65536} % 17
-\def\FDFflagPopUp {131072} % 18
-\def\FDFflagEdit {262144} % 19
-
-% bugged anyway, so we need to drop it:
-
-\def\FDFflagRadiosInUnison {33554432} % 26
-
-%D A few more (pdf 1.4) flags, what the spell check one: for
-%D obscure reasons for Adobe downward compatibility means
-%D enabling features that harm old applications like testing.
-
-\def\FDFflagDoNotSpellCheck {4194304} % 23
-\def\FDFflagDoNotScroll {8388608} % 24
-
-%D The next bits (watch how strange the bits are organized)
-%D take care of the states:
-
-\def\FDFflagReadOnly {1} % 1
-\def\FDFflagRequired {2} % 2
-\def\FDFflagNoExport {4} % 3
-\def\FDFflagPassword {8192} % 14
-\def\FDFflagSort {524288} % 20
-\def\FDFflagFileSelect {1048576} % 21
-
-%D There is a second, again bitset oriented, \type{/F} flag:
-
-\def\FDFplusInvisible {1} % 1
-\def\FDFplusHidden {2} % 2
-\def\FDFplusPrintable {4} % 3
-
-%def\FDFplusNoView {32} % 6
-%def\FDFplusToggleNoView {256} % 9
-
-\def\FDFplusAutoView {256} % {288} % 6+9
-
-%D \macros
-%D {setFDFswitches}
-%D
-%D The non||type bits are mapped onto user||interface
-%D swithes, to be used later on:
-
-\def\@@FDFflag{FDFflag}
-\def\@@FDFplus{FDFplus}
-
-\letvalue {\@@FDFflag\v!readonly}=\FDFflagReadOnly
-\letvalue {\@@FDFflag\v!required}=\FDFflagRequired
-\letvalue {\@@FDFflag\v!protected}=\FDFflagPassword
-\letvalue {\@@FDFflag\v!sorted}=\FDFflagSort
-\letvalue {\@@FDFflag\v!unavailable}=\FDFflagNoExport
-\letvalue {\@@FDFflag\v!nocheck}=\FDFflagDoNotSpellCheck
-\letvalue {\@@FDFflag\v!fixed}=\FDFflagDoNotScroll
-\letvalue {\@@FDFflag\v!file}=\FDFflagFileSelect
-
-\letvalue {\@@FDFplus\v!hidden}=\FDFplusHidden
-\letvalue {\@@FDFplus\v!printable}=\FDFplusPrintable
-
-\letvalue {\@@FDFplus\v!auto}=\FDFplusAutoView
-
-%D A set of switches is collected into the flags we mentioned
-%D before by the next macro (we don't handle negations yet,
-%D but do take care of redundancy):
-
-\def\FDFflag{0}
-\def\FDFplus{0}
-
-\def\setFDFswitches[#1]%
- {\bgroup
- \!!counta\zerocount
- \!!countb\zerocount
- \def\docommand##1%
- {\doifsomething{##1}
- {\advance\!!counta 0\getvalue{\@@FDFflag##1}%
- \setvalue{\@@FDFflag##1}{0}%
- \advance\!!countb 0\getvalue{\@@FDFplus##1}%
- \setvalue{\@@FDFplus##1}{0}}}%
- \processcommacommand[#1]\docommand
- \xdef\FDFflag{\the\!!counta}%
- \xdef\FDFplus{\the\!!countb}%
- \egroup}
-
-%D \macros
-%D {setFDFvalues}
-%D
-%D Menu items are passed as an array of \type{(string)}'s and
-%D the content of this array is build with:
-
-\let\FDFvalues \empty
-\let\FDFfirstvalues \empty
-\let\FDFsecondvalues\empty
-\let\FDFkidlist \empty
-\let\FDFdefaultindex\!!zerocount
-\let\FDFdefaultvalue\empty
-
-% Why do we need to tweak this mechanism each time acrobat updates ...
-% it would make sense to have version specific sections in pdf files
-% since my guess is that it never will be done right since each year
-% new programmers have new ideas about what is supposed to happen with
-% kids. So .. best is not to trust this feature esp not for radio
-% widgets. (new flags, different interpretation of AS etc etc)
-
-\def\setFDFvalues[#1][#2]% #1 = list (item=>value) #2 = default
- {\let\FDFvalues \empty
- %when radio opt works ok
- %\let\FDFfirstvalues \empty
- %\let\FDFsecondvalues\empty
- \let\FDFkidlist \empty
- %\let\FDFdefaultindex\!!zerocount
- %\let\FDFdefaultvalue\empty
- %\scratchcounter\zerocount
- \def\dodocommand##1=>##2=>##3\end
- {\addtocommalist{##1}\FDFkidlist
- %\edef\FDFfirstvalues{\FDFfirstvalues(##1)}%
- %\doif{##1}{#2}{\edef\FDFdefaultindex{\the\scratchcounter}}%
- %\advance\scratchcounter\plusone
- \doifelsenothing{##2}
- {\doif{##1}{#2}{\edef\FDFdefaultvalue{##1}}%
- %\edef\FDFsecondvalues{\FDFsecondvalues(##1)}%
- \edef\FDFvalues{\FDFvalues [(##1)(##1)] }}
- {\doif{##1}{#2}{\edef\FDFdefaultvalue{##2}}%
- %\edef\FDFsecondvalues{\FDFsecondvalues(##2)}%
- \edef\FDFvalues{\FDFvalues [(##2)(##1)] }}}% ! ##1 is shown
- \def\docommand##1%
- {\dodocommand##1=>=>\end}%
- \expanded{\processcommalist[#1]}\docommand}
-
-%D This macro accepts comma separated \type{visual=>result}
-%D pairs.
-
-%D \macros
-%D {setFDFalignment}
-%D
-%D Text and line fields can be entered and showed in three
-%D alternative alingments, indicated by a digit:
-
-\def\FDFalign{0}
-
-\def\setFDFalignment[#1]%
- {\processaction
- [#1]
- [ \v!left=>\edef\FDFalign{2}, % raggedleft
- \v!middle=>\edef\FDFalign{1}, % raggedcenter
- \v!right=>\edef\FDFalign{0}]} % raggedright
-
-%D \macros
-%D {setFDFattributes}
-%D
-%D The weak part of (at least version 2.1 \PDF) is that only
-%D default fonts are handled well. Another restriction is that
-%D the encoding vector must be the standard \PDF\ document one.
-%D Although the \PDF\ reference explictly states that one could
-%D use the normal text operators, leading is not yet handled.
-%D
-%D For the moment the current \CONTEXT\ font is mapped onto
-%D one best suitable default font. The color attribute is
-%D less problematic and is directly derived from the \CONTEXT\
-%D color.
-
-\def\FDFattributes{/Helv 12 Tf 0 g 14.4 TL}
-
-\def\FDFrm {TiRo} \def\FDFss {Helv} \def\FDFtt {Cour}
-\def\FDFrmtf{TiRo} \def\FDFsstf{Helv} \def\FDFtttf{Cour}
-\def\FDFrmbf{TiBo} \def\FDFssbf{HeBo} \def\FDFttbf{CoBo}
-\def\FDFrmit{TiIt} \def\FDFssit{HeOb} \def\FDFttit{CoOb}
-\def\FDFrmsl{TiIt} \def\FDFsssl{HeOb} \def\FDFttsl{CoOb}
-\def\FDFrmbi{TiBI} \def\FDFssbi{HeBO} \def\FDFttbi{CoBO}
-\def\FDFrmbs{TiBI} \def\FDFssbs{HeBO} \def\FDFttbs{CoBO}
-
-\let\FDFusedfonts=\FDFsstf
-
-\def\setFDFattributes[#1,#2,#3,#4]% style, color, backgroundcolor, framecolor
- {\bgroup % nog interlinie: n TL
- \setbox\scratchbox\hbox
- \bgroup
- \doconvertfont{#1}{}%
- \PointsToBigPoints\bodyfontsize\size % x/xx, so better the actual size
- \doifdefinedelse{FDF\fontstyle\fontalternative}
- {\xdef\FDFattributes{\getvalue{FDF\fontstyle\fontalternative}}}
- {\doifdefinedelse{FDF\fontstyle}
- {\xdef\FDFattributes{\getvalue{FDF\fontstyle}}}
- {\xdef\FDFattributes{\FDFrm}}}%
- \doglobal\addtocommalist\FDFattributes\FDFusedfonts
- \xdef\FDFattributes% move up with "x.y Ts"
- {/\FDFattributes\space\size\space Tf\space\PDFcolor{#2}}%
- \doifelsenothing{#3}
- {\global\let\FDFsurroundings\empty}
- {\xdef\FDFsurroundings{/BG \FDFcolor{#3}}}%
- \doifsomething{#4}
- {\xdef\FDFsurroundings{\FDFsurroundings\space /BC \FDFcolor{#4}}}%
- \ifx\FDFsurroundings\empty \else
- \xdef\FDFsurroundings{/MK << \FDFsurroundings\space>>}%
- \fi
- \egroup
- \egroup}
-
-%D \macros
-%D {setFDFactions}
-%D
-%D Depending on the type of the field, one can assign
-%D \JAVASCRIPT\ code to a mouse event or keystroke. The next
-%D preparation macro shows what events are handled.
-
-\let\FDFactions\empty
-
-%\def\setFDFactions[#1,#2,#3,#4,#5,#6,#7,#8]%
-% {\global\let\FDFactions\empty
-% \setFDFaction D#1% mousedown
-% \setFDFaction U#2% mouseup
-% \setFDFaction E#3% enterregion
-% \setFDFaction X#4% exitregion
-% \setFDFaction K#5% afterkeystroke
-% \setFDFaction F#6% formatresult
-% \setFDFaction V#7% validateresult
-% \setFDFaction C#8% calculatewhatever
-% \ifx\FDFactions\empty\else
-% \xdef\FDFactions{/AA << \FDFactions >>}% since 1.3 no longer inherited
-% \fi}
-%% {\setFDFaction A#2}% mouseup % changed for version 5
-
-% \def\setFDFactions[#1,#2,#3,#4,#5,#6,#7,#8,%
-% {\global\let\FDFactions\empty
-% \setFDFaction D#1% mousedown
-% %\setFDFaction U#2% mouseup
-% \setFDFaction E#3% enterregion
-% \setFDFaction X#4% exitregion
-% \setFDFaction K#5% afterkeystroke
-% \setFDFaction F#6% formatresult
-% \setFDFaction V#7% validateresult
-% \setFDFaction C#8% calculatewhatever
-% \setFDFactionsmore#2,}
-
-% \def\setFDFactionsmore#1,#2,#3]%
-% {\setFDFaction{Fo}#2% focusin
-% \setFDFaction{Bl}#3% focusout % was I (now pdf ref manual explicitly talks about lowercase l)
-% \ifx\FDFactions\empty\else
-% \xdef\FDFactions{/AA << \FDFactions >>}% since 1.3 no longer inherited
-% \fi
-% \setFDFaction A#1}% mouseup
-
-\def\setFDFactions[#1,#2,#3,#4,#5,#6,#7,#8,%
- {\global\let\FDFactions\empty
- \setFDFaction D#1% mousedown
- \setFDFaction U#2% mouseup
- \setFDFaction E#3% enterregion
- \setFDFaction X#4% exitregion
- \setFDFaction K#5% afterkeystroke
- \setFDFaction F#6% formatresult
- \setFDFaction V#7% validateresult
- \setFDFaction C#8% calculatewhatever
- \setFDFactionsmore}
-
-\def\setFDFactionsmore#1,#2]%
- {\setFDFaction{Fo}#1% focusin
- \setFDFaction{Bl}#2% focusout % was I (now pdf ref manual explicitly talks about lowercase l)
- \ifx\FDFactions\empty\else
- \xdef\FDFactions{/AA << \FDFactions >>}% since 1.3 no longer inherited
- \fi}
-
-% todo, when new var scheme is implemented
-%
-% \setFDFaction{PO}\@@DriverFieldPageOpen
-% \setFDFaction{PC}\@@DriverFieldPageClose
-% \setFDFaction{PV}\@@DriverFieldPageVisible
-% \setFDFaction{PI}\@@DriverFieldPageInVisible
-
-%D The event handler becomes something:
-%D
-%D \starttyping
-%D /AA << /D << /S ... >> ... /C << /S ... >>
-%D /A << /S /JavaScript /JS (...) >>
-%D \stoptyping
-
-% \def\setFDFaction#1#2%
-% {\bgroup
-% \global\let\sanitizedJScode\empty
-% \def\setFDFaction##1%
-% {\doifreferencefoundelse{##1}
-% {\doifelse{\currentreferencespecial}{JS} % filter non-js
-% {\presetJScode
-% \currentreferenceoperation
-% \currentreferencearguments
-% \doPSsanitizeJScode\JScode\to\JScode
-% \xdef\sanitizedJScode{\sanitizedJScode\space\JScode}}
-% {\illegalreference{##1}}}
-% {\unknownreference{##1}}}%
-% \@EA\processcommalist\@EA[#2]\setFDFaction % one level expansion
-% \ifx\sanitizedJScode\empty \else
-% \xdef\FDFactions%
-% {\FDFactions /#1 << /S /JavaScript /JS (\sanitizedJScode) >> }%
-% \fi
-% \egroup}
-%
-% acrobat 5 supports other that JS actions too
-
-\def\setFDFaction#1#2%
- {\bgroup
- \def\docommand{\xdef\FDFactions{\FDFactions /#1 << \lastPDFaction >> }}%
- \@EA\handlereferenceactions\@EA{#2}\docommand % one level expansion
- \egroup}
-
-%D \macros
-%D {testFDFactions}
-%D
-%D This rather confusion prone series of script can be tested
-%D with:
-%D
-%D \starttyping
-%D \testFDFactions
-%D \stoptyping
-%D
-%D which simply redefined the previous macro to one that prints
-%D a message to the console.
-
-\def\testFDFactions
- {\def\setFDFaction##1##2%
- {\doPSsanitizeJScode console.show();console.println("executing:##1"); \to\sanitizedJScode
- \edef\FDFactions{\FDFactions /##1 << /S /JavaScript /JS (\sanitizedJScode) >> }}}
-
-%D \macros
-%D {doFDFregistercalculationset}
-%D
-%D There is at most one calculation order list, which defines
-%D the order in which fields are calculated.
-
-\let\PDFcalculationset\empty
-
-\def\doFDFregistercalculationset#1%
- {\def\PDFcalculationset{#1}}
-
-%D \macros
-%D {registerFDFobject,everylastshipout}
-%D
-%D Officially one needs to embed some general datastructures
-%D that tell the viewer what fields are present in the file, as
-%D well as what resources they use. The next mechanism does that
-%D job automatically when one registers the field.
-
-\def\flushFDFnames
- {\ifbuildFDFdictionary
- \ifx\FDFcollection\empty\else
- \ifbuildFDFencodingvector
- \doPDFdictionaryobject{FDF}{local:encodingvector}{\FDFencodingvector}%
- \fi
- \defineFDFfonts
- \doPDFarrayobject{FDF}{local:fields}{\FDFcollection}%
- \doPDFgetobjectreference{FDF}{local:fields}\PDFobjectreference
- % The /NeedAppearances is pretty important because
- % otherwise Acrobat 5 blows up on cloned radio widgets
- \doPDFdictionaryobject{FDF}{local:acroform}
- {/Fields \PDFobjectreference\space
- /NeedAppearances true
- \doFDFiffieldset\PDFcalculationset{/CO [\doFDFgetfieldset\PDFcalculationset]}
- /DR << /Font << \FDFfonts >> >>
- /DA (/Helv 10 Tf 0 g)}%
- \doPDFgetobjectreference{FDF}{local:acroform}\PDFobjectreference
- \doPDFaddtocatalog
- {/AcroForm \PDFobjectreference}%
- \global\let\FDFcollection\empty
- \global\let\flushFDFnames\relax
- \fi
- \fi}
-
-\let\FDFcollection\empty
-
-\def\registerFDFobject#1%
- {\ifbuildFDFdictionary
- \ifx\flushFDFnames\relax
- \writestatus{FDF}{second run needed for field list (#1)}%
- \fi
- \doPDFgetobjectreference{FDF}{#1}\PDFobjectreference
- \xdef\FDFcollection{\FDFcollection\space\PDFobjectreference}%
- \fi}
-
-\appendtoksonce \flushFDFnames \to \everylastshipout % test \everybye / was \prependtoksonce
-
-%D \macros
-%D {defineFDFfonts,
-%D ifbuildFDFdictionary,
-%D ifbuildFDFencodingvector}
-%D
-%D Another datastruture concerns the fonts used. We only
-%D define the fonts we use.
-
-\newif\ifbuildFDFdictionary \buildFDFdictionarytrue
-\newif\ifbuildFDFencodingvector \buildFDFencodingvectortrue
-
-\def\defineFDFfonts
- {\let\FDFfonts\empty
- \processcommacommand[\FDFusedfonts]\defineFDFfont}
-
-\def\defineFDFfont#1%
- {\ifbuildFDFencodingvector
- \doPDFgetobjectreference{FDF}{local:encodingvector}\PDFobjectreference
- \fi
- \doPDFdictionaryobject{FDF}{local:#1}
- {/Type /Font
- /Subtype /Type1
- /Name /#1
- \ifbuildFDFencodingvector /Encoding \PDFobjectreference\space\fi
- /BaseFont /\getvalue{FDFname#1}}%
- \doPDFgetobjectreference{FDF}{local:#1}\PDFobjectreference
- \edef\FDFfonts{\FDFfonts \space/#1 \PDFobjectreference}}
-
-%D Another list of constants:
-
-\def\FDFnameTiRo {Times-Roman}
-\def\FDFnameTiBo {Times-Bold}
-\def\FDFnameTiIt {Times-Italic}
-\def\FDFnameTiBI {Times-BoldItalic}
-\def\FDFnameHelv {Helvetica}
-\def\FDFnameHeBo {Helvetica-Bold}
-\def\FDFnameHeOb {Helvetica-Oblique}
-\def\FDFnameHeBO {Helvetica-BoldOblique}
-\def\FDFnameCour {Courier}
-\def\FDFnameCoBo {Courier-Bold}
-\def\FDFnameCoOb {Courier-Oblique}
-\def\FDFnameCoBO {Courier-BoldOblique}
-
-%D And a big one: (should be run time loaded (spec-run or
-%D so)).
-
-\def\FDFencodingvector
- {/Type /Encoding
- /Differences
- [ 24 /breve /caron /circumflex /dotaccent /hungarumlaut /ogonek
- /ring /tilde
- 39 /quotesingle
- 96 /grave
- 128 /bullet /dagger /daggerdbl /ellipsis /emdash /endash /florin
- /fraction /guilsinglleft /guilsinglright /minus /perthousand
- /quotedblbase /quotedblleft /quotedblright /quoteleft
- /quoteright /quotesinglbase /trademark /fi /fl /Lslash /OE
- /Scaron /Ydieresis /Zcaron /dotlessi /lslash /oe /scaron
- /zcaron
- 164 /currency
- 166 /brokenbar
- 168 /dieresis /copyright /ordfeminine
- 172 /logicalnot /.notdef /registered /macron /degree /plusminus
- /twosuperior /threesuperior /acute /mu
- 183 /periodcentered /cedilla /onesuperior /ordmasculine
- 188 /onequarter /onehalf /threequarters 192 /Agrave /Aacute
- /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave
- /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex
- /Idieresis /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde
- /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex
- /Udieresis /Yacute /Thorn /germandbls /agrave /aacute
- /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave
- /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex
- /idieresis /eth /ntilde /ograve /oacute /ocircumflex /otilde
- /odieresis /divide /oslash /ugrave /uacute /ucircumflex
- /udieresis /yacute /thorn /ydieresis ]}
-
-%D \macros
-%D {currentFDFmode,currentFDFparent,currentFDFkids,currenrFDFroot}
-%D
-%D There are three more quasi global interfacing variables
-%D that need to be set.
-
-\let\currentFDFmode =\fieldlonermode
-\let\currentFDFkids =\empty
-\let\currentFDFparent=\empty
-\let\currentFDFroot =\empty
-
-%D \macros
-%D {dosetfieldstatus}
-%D
-%D And here comes the special that deals with them.
-
-\definespecial\dosetfieldstatus#1#2#3#4%
- {\chardef\currentFDFmode #1%
- \edef\currentFDFparent {#2}%
- \edef\currentFDFkids {#3}%
- \edef\currentFDFroot {#4}}
-
-%D \macros
-%D {dosetuppageview}
-%D
-%D Because this command will seldom be called, we can permit
-%D slow action processing. We need three settings, one for
-%D direct \PDF\ inclusion, the other as \PDFTEX\ keyword, an
-%D a last one for form. All determine in what way the
-%D screen is adapted when going to a destination. Watch the
-%D space.
-
-\def\PDFpageviewkey{fit}
-\def\PDFpageviewwrd{/Fit}
-\def\PDFpageview {/View [\PDFpageviewwrd] }
-\def\PDFpagexyzspec{0 0 0} % hack, pdftex does handle this
-
-\def\dosetuppageview#1% watch the v-h swapping here
- {\processaction
- [#1]
- [ \v!fit=>\def\PDFpageviewkey {fit}\def\PDFpageviewwrd{/Fit},
- \v!width=>\def\PDFpageviewkey {fith}\def\PDFpageviewwrd{/FitH},
- \v!height=>\def\PDFpageviewkey {fitv}\def\PDFpageviewwrd{/FitV},
- \v!minwidth=>\def\PDFpageviewkey{fitbh}\def\PDFpageviewwrd{/FitBH},
- \v!minheight=>\def\PDFpageviewkey{fitbv}\def\PDFpageviewwrd{/FitBV},
- \v!standard=>\def\PDFpageviewkey{xyz \PDFpagexyzspec}\def\PDFpageviewwrd{/XYZ \PDFpagexyzspec},
- \s!unknown=>\def\PDFpageviewkey {fit}\def\PDFpageviewwrd{/Fit}]%
- \edef\PDFpageview{/View [\PDFpageviewwrd]}}
-
-%D \macros
-%D {setFDFkids}
-%D
-%D Clones as well as radiofields (which themselves can have
-%D cloned components) need a list of kids. The next macro
-%D builds one.
-
-\def\setFDFkids[#1][#2]% tag commalist
- {\let\FDFkids\empty
- \def\docommand##1%
- {\doPDFgetobjectreference{FDF}{#1##1}\PDFobjectreference
- \edef\FDFkids{\FDFkids\PDFobjectreference\space}}%
- \@EA\processcommalist\@EA[#2]\docommand
- \ifx\FDFkids\empty\else\edef\FDFkids{/Kids [\FDFkids]}\fi
-% \edef\FDFkids{/Kids [\FDFkids]}%
- }
-
-%D \macros
-%D {doFDFpresetlinefield,doFDFpresettextfield,
-%D doFDFpresetchoicefield,doFDFpresetpopupfield,doFDFpresetcombofield,
-%D doFDFpresetpushfield,doFDFpresetcheckfield,
-%D doFDFpresetfield,doFDFpresetradiorecord}
-%D
-%D I would say: read the \PDF\ reference manual first and see
-%D what happens here next. Lucky us that they have so much in
-%D common.
-
-\def\doFDFpresetlinefield#1#2#3#4#5#6#7#8#9%
- {\bgroup
- \setFDFlayer\@@DriverFieldLayer
- \setFDFswitches[#7]%
- \setFDFattributes[#6]%
- \setFDFalignment[#8]%
- \setFDFactions[#9]%
- \expanded{\escapePSstring#4}\to\FDFtext
- \ifcase\currentFDFmode
- \doPDFannotationobject{FDF}{#1}{#2}{#3}
- {/Subtype /Widget /T (#1) /FT /Tx
- /MaxLen \ifcase0#5 1000 \else#5 \fi
- %/DV (#4) /V (#4) % value added
- /DV (\FDFtext) /V (\FDFtext) % value added
- /Ff \FDFflag\space
- /F \FDFplus\space
- /DA (\FDFattributes)
- \FDFlayer\space
- \FDFsurroundings\space
- /Q \FDFalign\space
- \FDFactions}%
- \registerFDFobject{#1}%
- \or
- \setFDFkids[kids:][\currentFDFkids]%
- \doPDFdictionaryobject{FDF}{#1}
- {/T (#1) /FT /Tx
- /MaxLen \ifcase0#5 1000 \else#5 \fi
- \FDFkids\space
- %/DV (#4) /V (#4) % value added
- /DV (\FDFtext) /V (\FDFtext) % value added
- /Ff \FDFflag\space
- /F \FDFplus\space
- /DA (\FDFattributes)
- \FDFlayer\space
- \FDFsurroundings\space
- /Q \FDFalign\space
- \FDFactions}%
- \registerFDFobject{#1}%
- \or
- \doPDFgetobjectreference{FDF}\currentFDFparent\PDFobjectreference
- %\global\objectreferencingtrue
- \doPDFannotationobject{FDF}{kids:#1}{#2}{#3}
- {/Subtype /Widget
- /Parent \PDFobjectreference
- /Ff \FDFflag\space
- /F \FDFplus\space
- /DA (\FDFattributes)
- \FDFlayer\space
- \FDFsurroundings\space
- /Q \FDFalign\space
- \FDFactions}%
- \or
- \doPDFgetobjectreference{FDF}\currentFDFparent\PDFobjectreference
- %\global\objectreferencingtrue
- \doPDFannotationobject{FDF}{kids:#1}{#2}{#3}
- {/Subtype /Widget
- /Parent \PDFobjectreference
- /F \FDFplus
- \FDFactions}%
- \fi
- \egroup}
-
-\def\doFDFpresettextfield#1#2#3#4#5#6#7#8#9%
- {\doFDFpresetlinefield{#1}{#2}{#3}{#4}{#5}{#6}{MultiLine,#7}{#8}{#9}}
-
-\def\doFDFpresetchoicefield#1#2#3#4#5#6#7#8%
- {\bgroup
- \setFDFlayer\@@DriverFieldLayer
- \setFDFswitches[#6]%
- \setFDFattributes[#5]%
- \setFDFvalues[#7][#4]%
- \setFDFactions[#8]%
- \ifcase\currentFDFmode
- \doPDFannotationobject{FDF}{#1}{#2}{#3}
- {/Subtype /Widget
- /T (#1) /FT /Ch
- /DV (#4) /V (#4)
- /Ff \FDFflag\space
- /F \FDFplus\space
- /DA (\FDFattributes)
- \FDFlayer\space
- \FDFsurroundings\space
- /Opt [\FDFvalues]
- \FDFactions}%
- \registerFDFobject{#1}%
- \or
- \setFDFkids[kids:][\currentFDFkids]%
- \doPDFdictionaryobject{FDF}{#1}
- {/T (#1) /FT /Ch
- \FDFkids\space
- /DV (#4) /V (#4)
- /Ff \FDFflag\space
- /F \FDFplus\space
- /DA (\FDFattributes)
- \FDFlayer\space
- \FDFsurroundings\space
- /Opt [\FDFvalues]
- \FDFactions}%
- \registerFDFobject{#1}%
- \or
- \doPDFgetobjectreference{FDF}\currentFDFparent\PDFobjectreference
- %\global\objectreferencingtrue
- \doPDFannotationobject{FDF}{kids:#1}{#2}{#3}
- {/Subtype /Widget
- /Parent \PDFobjectreference
- /Ff \FDFflag\space
- /F \FDFplus\space
- /DA (\FDFattributes)
- \FDFlayer\space
- \FDFsurroundings\space
- \FDFactions}%
- \or
- \doPDFgetobjectreference{FDF}\currentFDFparent\PDFobjectreference
- %\global\objectreferencingtrue
- \doPDFannotationobject{FDF}{kids:#1}{#2}{#3}
- {/Subtype /Widget
- /Parent \PDFobjectreference
- /F \FDFplus
- \FDFactions}%
- \fi
- \egroup}
-
-\def\doFDFpresetpopupfield#1#2#3#4#5#6#7#8%
- {\doFDFpresetchoicefield{#1}{#2}{#3}{#4}{#5}{PopUp,#6}{#7}{#8}}
-
-\def\doFDFpresetcombofield#1#2#3#4#5#6#7#8%
- {\doFDFpresetchoicefield{#1}{#2}{#3}{#4}{#5}{PopUp,Edit,#6}{#7}{#8}}
-
-\newif\ifFDFvalues
-
-\def\doFDFpresetpushcheckfield#1#2#3#4#5#6#7#8% in acro<5 (\FDFdefault)
- {\bgroup % in acro>5 /\FDFdefault
- \setFDFlayer\@@DriverFieldLayer
- \ifcase#8\relax\FDFvaluesfalse\else\FDFvaluestrue\fi
- \setFDFswitches[#5]%
- \setFDFactions[#7]%
- \doifelse{#4}{1}
- {\def\FDFdefault{On}}
- {\def\FDFdefault{Off}}%
- \ifcase\currentFDFmode
- \doFDFappearance{On}{#6}{#8}%
- \doPDFannotationobject{FDF}{#1}{#2}{#3}
- {/Subtype /Widget /T (#1) /FT /Btn
- \ifFDFvalues
- /DV /\FDFdefault\space
- /V /\FDFdefault\space
- /AS /\FDFdefault\space
- \fi
- \FDFlayer
- /Ff \FDFflag\space
- /F \FDFplus\space
- \FDFlayer\space
- \FDFappearance\space
-% /IF << /SW /N >> % strange, only works for stupid buttons
- \FDFactions}%
- \registerFDFobject{#1}%
- \or % no appearance and layer ?
- \setFDFkids[kids:][\currentFDFkids]%
- \doPDFdictionaryobject{FDF}{#1}
- {/T (#1) /FT /Btn
- \FDFkids\space
- \ifFDFvalues
- /DV /\FDFdefault\space
- /V /\FDFdefault\space
- /AS /\FDFdefault\space
- \fi
- /Ff \FDFflag\space
- /F \FDFplus\space
- \FDFactions}%
- \registerFDFobject{#1}%
- \or
- \doFDFappearance{On}{#6}{#8}%
- \doPDFgetobjectreference{FDF}\currentFDFparent\PDFobjectreference
- %\global\objectreferencingtrue
- \doPDFannotationobject{FDF}{kids:#1}{#2}{#3}
- {/Subtype /Widget
- /Parent \PDFobjectreference\space
- \ifFDFvalues
- /DV /\FDFdefault\space
- /V /\FDFdefault\space
- /AS /\FDFdefault\space
- \fi
- /Ff \FDFflag\space
- /F \FDFplus\space
- \FDFlayer\space
- \FDFappearance\space
- \FDFactions}%
- \or
- \doFDFappearance{On}{#6}{#8}%
- \doPDFgetobjectreference{FDF}\currentFDFparent\PDFobjectreference
- %\global\objectreferencingtrue
- \doPDFannotationobject{FDF}{kids:#1}{#2}{#3}
- {/Subtype /Widget
- /Parent \PDFobjectreference\space
- /F \FDFplus\space
- \ifFDFvalues
- /DV /\FDFdefault\space
- /V /\FDFdefault\space
- /AS /\FDFdefault\space
- \fi
- \FDFlayer\space
- \FDFappearance
- \FDFactions}%
- \fi
- \egroup}
-
-\def\doFDFpresetpushfield#1#2#3#4#5#6#7%
- {\doFDFpresetpushcheckfield{#1}{#2}{#3}{#4}{PushButton,#5}{#6}{#7}{0}}
-
-\def\doFDFpresetcheckfield#1#2#3#4#5#6#7%
- {\doFDFpresetpushcheckfield{#1}{#2}{#3}{#4}{#5}{#6}{#7}{1}}
-
-\def\doFDFpresetradiofield#1#2#3#4#5#6#7#8%
- {\bgroup
- \setFDFlayer\@@DriverFieldLayer
- \FDFvaluestrue
- \setFDFswitches[#5]%
- \setFDFactions[#8]%
- \doifelsenothing{#4}
- {\def\FDFdefault{Off}}
- {\def\FDFdefault{#4}}%
- \@EA\aftersplitstring\FDFdefault\at=>\to\FDFdefaultvalue
- \ifx\FDFdefaultvalue\empty\else\let\FDFdefault\FDFdefaultvalue\fi
- \ifcase\currentFDFmode
- \doFDFappearance{#1}{#7}{1}%
- \doPDFgetobjectreference{FDF}{#6}\PDFobjectreference
- \doPDFannotationobject{FDF}{#1}{#2}{#3}
- {/Subtype /Widget
- /Parent \PDFobjectreference\space
- /F \FDFplus\space
- /AS /\FDFdefault\space
- \FDFlayer\space
- \FDFappearance\space
- \FDFactions}%
- \registerFDFobject{#1}%
- \or
- \setFDFkids[kids:][\currentFDFkids]%
- \doPDFgetobjectreference{FDF}{#6}\PDFobjectreference
- \doPDFdictionaryobject{FDF}{#1}
- {/Parent \PDFobjectreference\space
- \FDFkids\space
- /F \FDFplus\space
- \FDFactions}%
- \registerFDFobject{#1}%
- \or
- %\doFDFappearance{#1}{#7}{1}%
- \doFDFappearance{\currentFDFparent}{#7}{1}%
- \doPDFgetobjectreference{FDF}\currentFDFparent\PDFobjectreference
- %\global\objectreferencingtrue % nb
- \doPDFannotationobject{FDF}{kids:#1}{#2}{#3}
- {/Subtype /Widget
- /Parent \PDFobjectreference\space
- /AS /\FDFdefault\space
- /F \FDFplus\space
- \FDFlayer\space
- \FDFappearance\space
- \FDFactions}%
- \or
- %\doFDFappearance{#1}{#7}{1}%
- \doFDFappearance{\currentFDFparent}{#7}{1}%
- \doPDFgetobjectreference{FDF}\currentFDFparent\PDFobjectreference
- %\global\objectreferencingtrue
- \doPDFannotationobject{FDF}{kids:#1}{#2}{#3}
- {/Subtype /Widget
- /Parent \PDFobjectreference\space
- /AS /\FDFdefault\space
- /F \FDFplus\space
- \FDFlayer\space
- \FDFappearance\space
- \FDFactions}%
- \fi
- \egroup}
-
-%D \macros
-%D {setFDFstrings}
-%D
-%D This one creates a string array.
-
-%\def\setFDFstrings[#1]%
-% {\let\FDFstrings\empty
-% \def\docommand##1{\edef\FDFstrings{\FDFstrings(##1)}}%
-% \processcommacommand[#1]\docommand}
-
-% Beware, RadiosInUnison is really needed in the pre 1.5/6 time this
-% was the default but out of a sudden it's no longer the case. Also
-% the NoToggleToOff interferes with kids of kids and both it will
-% break older documents, i.e. so much for pdf as standard. With
-% features like widgets we can probably best wait till adobe tools
-% themselves support it because that's probably the moment that
-% functionality gets frozen/becomes definitive. Actually, acrobat
-% flattens the kids tree, so that's yet another situation. The
-% interesting thing is that it worked ok in acrobat 2/3 but got bugged
-% in later versions. [The rationale is in html compatibility, which
-% seems to be more important than compatibility of documents, which in
-% turn renders acrobat useless for forms.] Anyway, synchronization is
-% broken or not depending on the combination pdfversion/acrobatversion.
-
-\def\doFDFpresetradiorecord#1#2#3#4#5%
- {\bgroup
- % < pdf 1.5 (1.5 was broken)
- % \setFDFswitches[Radio,NoToggleToOff,RadiosInUnison,#3]%
- % > pdf 1.5
- \setFDFswitches[Radio,RadiosInUnison,#3]%
- % older, else fatal error
- % \setFDFkids[#4][]%
- % newer
- \setFDFvalues[#4][#2]% inits kidlist
- \expanded{\setFDFkids[][\FDFkidlist]}%
- %
- \setFDFactions[#5]%
- \doPDFdictionaryobject{FDF}{#1}
- {%/Subtype /Widget
- /FT /Btn /T (#1) /Rect [0 0 0 0]
- % used to be this
- % /V (#2)
- % then this
- % /DV (#2)
- % since this bomded in 5
- % /V (#2)
- % and now finally this works
- /H /N
- % /opt is buggy in 5.05, only works once, sigh
- %\ifx\FDFfirstvalues\FDFsecondvalues
- /V /#2
- %\else
- % /V /\FDFdefaultindex\space
- % /Opt [\FDFsecondvalues]
- %\fi
- /Ff \FDFflag\space
- /F \FDFplus\space
- \FDFkids\space
- \FDFactions}%
- \egroup}
-
-%D At the cost of some more references, we can save bytes,
-%D by sharing appearance dictionaries. This code needs more
-%D documentation. Surprise:
-
-\def\dodoFDFappearance#1#2%
- {\ifx#2\empty\else
- \dogetcommacommandelement1\from#2\to\commalistelement
- \ifx\commalistelement\empty\else
- \doPDFgetobjectreference{SYM}\commalistelement\PDFobjectreference
- \edef\N{\ifFDFvalues\N /#1 \fi\PDFobjectreference\space}%
- \fi
- \dogetcommacommandelement2\from#2\to\commalistelement
- \ifx\commalistelement\empty\else
- \doPDFgetobjectreference{SYM}\commalistelement\PDFobjectreference
- \edef\R{\ifFDFvalues\R /#1 \fi\PDFobjectreference\space}%
- \fi
- \dogetcommacommandelement3\from#2\to\commalistelement
- \ifx\commalistelement\empty\else
- \doPDFgetobjectreference{SYM}\commalistelement\PDFobjectreference
- \edef\D{\ifFDFvalues\D /#1 \fi\PDFobjectreference\space}%
- \def\FDFappearance{/H /P }%
- \fi
- \fi}
-
-\def\redoFDFappearance#1%
- {\ifx#1\empty\else
- \dogetcommacommandelement3\from#1\to\commalistelement
- \ifx\commalistelement\empty\else
- \def\FDFappearance{/H /P }%
- \fi
- \fi}
-
-\def\doFDFappearance#1#2#3%
- {\ifcase#3\relax % push only field
- \edef\yes{#2}%
- \let\no\empty
- \else % on / off field
- \dogetcommacommandelement1\from#2,\to\yes
- \dogetcommacommandelement2\from#2,\to\no
- \fi
- \def\FDFappearance{/H /N}%
- \doifobjectfoundelse{FDF}{ap:#1:\yes:\no}
- {\redoFDFappearance\yes
- \redoFDFappearance\no}
- {\presetobject{FDF}{ap:#1:\yes:\no}% funny hack
- \let\N\empty\let\R\empty\let\D\empty
- \dodoFDFappearance{#1}\yes
- \dodoFDFappearance{Off}\no
- \doPDFdictionaryobject{FDF}{ap:#1:\yes:\no}
- {\ifx\N\empty\else/N \ifFDFvalues<<\N>>\else\N\fi\fi
- \ifx\R\empty\else/R \ifFDFvalues<<\R>>\else\R\fi\fi
- \ifx\D\empty\else/D \ifFDFvalues<<\D>>\else\D\fi\fi}}%
- \doPDFgetobjectreference{FDF}{ap:#1:\yes:\no}\PDFobjectreference
- \edef\FDFappearance{\FDFappearance /AP \PDFobjectreference}}
-
-%\def\doFDFdefault#1#2%
-% {\dogetcommacommandelement1\from#1,\to\commalistelement
-% \dogetcommacommandelement1\from\commalistelement\to\commalistelement
-% \doifelse{\commalistelement}{#2} % kan ook met \ifx
-% {\def\FDFdefault{On}}{\def\FDFdefault{Off}}}
-
-\def\doFDFdefault#1#2%
- {\doifelse{#2}{1}{\def\FDFdefault{On}}{\def\FDFdefault{Off}}}
-
-%D Layer support:
-
-\def\setFDFlayer#1% todo : \ifx\PDFobjectreference\noPDFobjectreference ipv found
- {\letempty\FDFlayer
- \doifsomething{#1}%
- {\checkproperty[#1]% == \dodocheckproperty\@@DriverFieldLayer
- \doifobjectreferencefoundelse{PDLN}{#1}
- {\doPDFgetobjectreference{PDLN}{#1}\!!stringa % we need to avoid a clash with other macros
- \edef\FDFlayer{/OC \!!stringa}}%
- \donothing}}
-
-%D The three appearances {\em normal}, \type{roll over} and
-%D \type{push down} are passed as comma separated triplets,
-%D that is, the second argument can look like:
-%D
-%D \starttyping
-%D {yes,ok,fine},{no,rubish,awful}
-%D \stoptyping
-
-%D \macros
-%D {doFDFdefinefieldset,doFDFgetfieldset,doFDFiffieldset}
-%D
-%D Field sets, the ones we use in submitting and resetting
-%D fields, are implemented using the next low level specials:
-%D
-%D \starttyping
-%D \doFDFdefinefieldset{TAG}{name,name,...}
-%D \doFDFgetfieldset{TAG}
-%D \doFDFiffieldset{TAG}{sequence}
-%D \stoptyping
-
-\def\doFDFdefinefieldset#1#2% tag commalist
- {\let\FDFfieldset\empty
- \def\docommand##1%
- {\doPDFgetobjectreference{FDF}{##1}\PDFobjectreference
- \edef\FDFfieldset{\FDFfieldset\PDFobjectreference\space}}%
- \processcommacommand[#2]\docommand % nb: command
- \setevalue{FDF:set:#1}{\FDFfieldset}}
-
-\def\doFDFgetfieldset#1%
- {\getvalue{FDF:set:#1}}
-
-\def\doFDFiffieldset#1#2%
- {\ifundefined{FDF:set:#1}\else#2\fi}
-
-%D In the goto specials we took care of secondary references.
-%D Here we define the macros used.
-
-\def\doPDFresetgotowhereever
- {\global\let\secondaryPDFreferences\empty}
-
-\doPDFresetgotowhereever % just to be sure
-
-% we can (in etex) share more by testing on this
-
-\def\savesecondaryPDFreference#1%
- %{\setxvalue{PDF-SR:\the\nofsecondaryreferences}{#1}}
- {\@EA\xdef\csname PDF-SR:\the\nofsecondaryreferences\endcsname{#1}}
-
-\def\savesecondaryPDFreference % #1 == \action
- {\global\@EA\let\csname PDF-SR:\the\nofsecondaryreferences\endcsname}
-
-%\def\getsecondaryPDFreferences%
-% {\ifcase\nofsecondaryreferences\else
-% %\doifdefined{PDF-SR:\the\nofsecondaryreferences}
-% \xdef\secondaryPDFreferences%
-% {/Next << \csname PDF-SR:\the\nofsecondaryreferences\endcsname\space
-% \secondaryPDFreferences >>}%
-% \global\advance\nofsecondaryreferences \minusone
-% \expandafter\getsecondaryPDFreferences
-% \fi}
-
-% test should happen in core-ref
-
-\beginETEX \ifcsname
-
-\def\getsecondaryPDFreferences
- {\ifcase\nofsecondaryreferences\else
- \ifcsname PDF-SR:\the\nofsecondaryreferences\endcsname
- \xdef\secondaryPDFreferences
- {/Next << \csname PDF-SR:\the\nofsecondaryreferences\endcsname\space
- \secondaryPDFreferences >>}%
- \fi
- \global\advance\nofsecondaryreferences \minusone
- \expandafter\getsecondaryPDFreferences
- \fi}
-
-\endETEX
-
-\beginTEX
-
-\def\getsecondaryPDFreferences
- {\ifcase\nofsecondaryreferences\else
- \@EA\ifx\csname PDF-SR:\the\nofsecondaryreferences\endcsname\relax\else
- \xdef\secondaryPDFreferences
- {/Next << \csname PDF-SR:\the\nofsecondaryreferences\endcsname\space
- \secondaryPDFreferences >>}%
- \fi
- \global\advance\nofsecondaryreferences \minusone
- \expandafter\getsecondaryPDFreferences
- \fi}
-
-\endTEX
-
-%D \macros
-%D {loadFDFfields, showFDFfields,
-%D getFDFfield, setFDFfield}
-%D
-%D Once filled in, we can export or submit the field in the
-%D \FDF\ file format. Such a file can be loaded by
-%D
-%D \starttyping
-%D \loadFDFfields{fiel-ini}
-%D \stoptyping
-%D
-%D or inspected by
-%D
-%D \starttyping
-%D \showFDFfields{fiel-ini}
-%D \stoptyping
-%D
-%D After both commands, one can use
-%D
-%D \starttyping
-%D \getFDFfield{name}
-%D \setFDFfield{name}{value}
-%D \stoptyping
-%D
-%D to inspect and overrule the data.
-%D
-%D By default \CONTEXT\ calls the perl script \type{fdf2tex}.
-%D This script reads the \type{fdf} file and produces a file
-%D named \type{filename.fdt}. If one disables the call to this
-%D script, by saying:
-%D
-%D \starttyping
-%D \runFDFconverterfalse
-%D \stoptyping
-%D
-%D or when \CONTEXT\ cannot find the \type{fdt} file, it tries
-%D to interpret the \type{fdf} file directly. Both mechanisms
-%D are rather crude.
-
-\newif\ifrunFDFconverter \runFDFconvertertrue
-
-%D The \PERL\ script produces a file formatted as:
-%D
-%D \starttyping
-%D \beginFDFobject
-%D \beginFDFdata
-%D \beginFDFfields
-%D \FDFfield[name=,value=]
-%D \endFDFfields
-%D \endFDFdata
-%D \endFDFobject
-%D \stoptyping
-%D
-%D One reason for using key value pairs is that we cannot be
-%D sure or the order in which the name and value are given
-%D (actually the reverse).
-
-\def\PERLloadFDFfields#1% will become obsolete soon
- {\bgroup
- \global\let\allFDFfields\empty
- \ifrunFDFconverter
- \executesystemcommand{fdf2tex #1}%
- \let\beginFDFobject\relax \let\endFDFobject\relax
- \let\beginFDFdata \relax \let\endFDFdata \relax
- \let\beginFDFfields\relax \let\endFDFfields\relax
- \def\FDFfield[##1]%
- {\getparameters[FDF][##1]%
- \doglobal\addtocommalist\FDFname\allFDFfields
- \global\setFDFfield{\FDFname}{\FDFvalue}}%
- \ReadFile{#1.fdt}%
- \fi
- \egroup}
-
-%D The next macro does the same job, but now in the \TEX\ way
-%D of doing things. Easy eh? Will become obsolete!
-
-\bgroup
-
-\catcode`\/=\@@other
-\global\let\normalslash=/
-\catcode`\/=\@@escape
-
-\gdef\TEXloadFDFfields#1% will become obsolete due to XFDF
- {\bgroup
- \setbox0=\hbox
- {\global\let\allFDFfields\empty
- \scratchcounter=0
- \escapechar=-1
- \catcode`\/=\@@escape
- \catcode`\(=\@@begingroup
- \catcode`\)=\@@endgroup
- \catcode`\%=\@@letter
- \let/A =\relax \let/AS =\relax \let/Kids=\relax \let/Fields=\relax
- \let/F =\relax \let/ID =\relax \let/SetF=\relax \let/setFf =\relax
- \let/Ff=\relax \let/Opt=\relax \let/ClrF=\relax \let/ClrFf =\relax
- \let/AP=\relax \let/FDF=\relax \let/Root=\relax
- \def/T##1{\check\Title{##1}}
- \def/V{\bgroup\catcode`\/=\@@other\futurelet\next/doV}
- \def/doV{\ifx\next\normalslash\@EA/doVb\else\@EA/doVa\fi}
- \def/doVa##1{\egroup\check\Value{##1}}
- \def/doVb##1##2 {\egroup\check\Value{##2}} % watch the space
- \def\check##1##2%
- {\def##1{##2}
- \advance\scratchcounter\plusone\relax
- \ifodd\scratchcounter \else
- \defconvertedcommand\asciia\Title
- \global\setFDFfield{\asciia}{\Value}
- \doglobal\addtocommalist\Title\allFDFfields
- \fi}
- \ReadFile{#1.fdf}}%
- \egroup}
-
-\egroup
-
-%D Whatever mechanism is used, the next macros can be used to
-%D fetch the values.
-
-\def\getFDFfield #1{\getvalue {FDFfield::#1}}
-\def\setFDFfield#1#2{\setevalue{FDFfield::#1}{#2}}
-
-%D Of course the fields are only present when the file is
-%D loaded.
-
-\def\loadFDFfields#1%
- {\PERLloadFDFfields{#1}%
- \ifx\allFDFfields\empty
- \TEXloadFDFfields{#1}%
- \fi}
-
-\def\showFDFfields#1%
- {\bgroup
- \loadFDFfields{#1}
- \def\docommand##1{\par##1 = \getFDFfield{##1}\par}%
- \processcommacommand[\allFDFfields]\docommand
- \egroup}
-
-%D \macros
-%D {sanitizePDFencoding,sanitizePDFdocencoding}
-%D
-%D We already dealt with the encoding vector. Conversion from
-%D \TEX\ \ASCII\ encoding to the other one, is accomplished by
-%D the next few macros. Wach out: we don't group here.
-
-%D This will be reimplemented using the mapping mechanism.
-
-% \def\enablePDFdocencoding
-% {\reducetocoding[pdfdoc]\simplifycommands}
-
-\def\enablePDFdocencoding
- {\enablecoding[pdfdoc]%
- \enablelanguagespecifics[\currentlanguage]% redundant ?
- \simplifycommands}
-
-\long\def\sanitizePDFdocencoding#1\to#2%
- {\enablePDFcrlf
- \enablePDFdocencoding
- %\honorunexpanded % otherwise problems with "e etc in de
- \edef#2{#1}}
-
-\bgroup
-\catcode`\^^M=\@@active
-\gdef\enablePDFcrlf%
- {\def\\{\string\r}%
- \def\par{\\\\}%
- \def\endgraf{\\\\}%
- \catcode`\^^M=\@@active%
- \let^^M=\\}
-\egroup
-
-\let\sanitizePDFencoding\sanitizePDFdocencoding
-
-%D A bit out of place, but useful:
-
-\newevery\everysetfield\relax
-
-\appendtoksonce
- \enablePDFdocencoding
- \enablePDFcrlf
-\to \everysetfield
-
-%D \macros
-%D {doPDFinsertcomment}
-%D
-%D An example its use is the next special, one that deals with
-%D text annotations.
-
-% starting point (keep this)
-%
-% \long\def\doPDFinsertcomment#1#2#3#4#5#6#7#8%
-% {\bgroup % title width height color open symbol collect data
-% \doifelsenothing{#1}
-% {\let\PDFidentifier\empty}
-% {\def\PDFidentifier{/T (#1)}}%
-% \doifelsenothing{#4}
-% {\let\PDFattributes\empty}
-% {\def\PDFattributes{/C \FDFcolor{#4}}}%
-% \doifundefinedelse{PDFsymbol#6}
-% {\let\PDFsymbol\empty}
-% {\def\PDFsymbol{/Name \getvalue{PDFsymbol#6} }}%
-% \sanitizePDFencoding#8\to\PDFdata
-% \setbox\scratchbox\vbox to #3
-% {\vfill
-% \doPDFannotation{#2}{#3}
-% {/Subtype /Text
-% \ifcase#5 \else/Open true\fi
-% /Contents \ifPDFunicode <\PDFdata> \else(\PDFdata) \fi
-% \PDFsymbol
-% \PDFidentifier
-% \PDFattributes}}%
-% \wd\scratchbox\zeropoint
-% \ht\scratchbox\zeropoint
-% \dp\scratchbox\zeropoint
-% \box\scratchbox
-% \egroup}
-
-\newcounter\nofFDFcomments
-
-\newif\ifPDFpopupcomments \PDFpopupcommentstrue
-
-\def\doPDFflushcomments
- {\box\PDFsymbolbox}
-
-\long\def\doPDFinsertcomment#1#2#3#4#5#6#7#8% % \@@DriverCommentLayer set otherwise
- {\bgroup % title width height color open symbol collect data
- \presetPDFsymbolappearance{#4}{#6}{#2}{#3}\!!zeropoint% sets width/height
-% \doifelsenothing{#1}
-% {\let\PDFidentifier\empty}
-% {\def\PDFidentifier{/T (#1)}}%
- \doifelsenothing{#1}
- {\let\PDFidentifier\empty}
- {\sanitizePDFencoding#1\to\PDFcommenttitle
- \def\PDFidentifier{/T \ifPDFunicode <\PDFcommenttitle>\else (\PDFcommenttitle)\fi}}%
- \sanitizePDFencoding#8\to\PDFdata
- \setFDFlayer\@@DriverCommentLayer
- \startPDFsymbolappearance
- \ifPDFpopupcomments
- \doglobal\increment\nofFDFcomments
- \doifobjectreferencefoundelse{FDF}{c:\nofFDFcomments}
- {\doPDFgetobjectreference{FDF}{c:\nofFDFcomments}\PDFobjectreference
- \donetrue}
- \donefalse
- \ifdone
- \setbox\scratchbox\hbox
- {\doPDFannotationobject{FDF}{c::\nofFDFcomments}{#2}{#3}% text window, size does not work
- {/Subtype /Popup
- /Parent \PDFobjectreference}}%
- \ifcase#7\relax
- \vbox to \height{\forgetall\vskip#3\box\scratchbox\vss}%
- \else % incredible trial and error hack
- % it's quite a mess, the annot width cannot be set, well, it can
- % but the appearance and text sizes get mixed up
-% \setbox\scratchbox\vbox to \height{\forgetall\vskip#3\box\scratchbox\vss}%
-% \global\setbox\PDFsymbolbox\vbox
-% {\hsize#2%
-% \forgetall
-% \vsmash{\box\PDFsymbolbox}
-% \box\scratchbox}%
- % this may change when acrobat gets less bugged
- \setbox\scratchbox\vbox to #3{\forgetall\vss\box\scratchbox}%
- \wd\scratchbox#2%
- \global\setbox\PDFsymbolbox\vbox
- {\startoverlay{\box\PDFsymbolbox}{\box\scratchbox}\stopoverlay}%
- \fi
- \fi
- % generic
- \doifobjectreferencefoundelse{FDF}{c::\nofFDFcomments}
- {\doPDFgetobjectreference{FDF}{c::\nofFDFcomments}\PDFobjectreference
- \donetrue}
- \donefalse
- \doPDFannotationobject{FDF}{c:\nofFDFcomments}{\width}{\height}
- {/Subtype /Text
- \ifcase#5 \else/Open true\fi
- % pdftex (efficient)
- % \ifdone /Popup \PDFobjref\pdflastannot\fi
- % generic (less efficient)
- \ifdone /Popup \PDFobjectreference\fi
- /Contents \ifPDFunicode <\PDFdata> \else(\PDFdata) \fi
- \PDFidentifier
- \FDFlayer
- \PDFsymbol
- \PDFattributes}%
- \else
- \doPDFannotation{#2}{#3}
- {/Subtype /Text
- \ifcase#5 \else/Open true\fi
- /Contents \ifPDFunicode <\PDFdata> \else(\PDFdata) \fi
- \FDFlayer
- \PDFsymbol
- \PDFidentifier
- \PDFattributes}%
- \fi
- \stopPDFsymbolappearance
- \egroup}
-
-% symbols with a reasonable default of 18/24 pt
-
-\newbox\PDFsymbolbox
-
-\def\PDFsymbolNew {/Insert}
-\def\PDFsymbolBalloon {/Comment}
-\def\PDFsymbolAddition {/NewParagraph}
-\def\PDFsymbolHelp {/Help}
-\def\PDFsymbolParagraph {/Paragraph}
-\def\PDFsymbolKey {/Key }
-
-\def\PDFsymbolGraph {/Graph}
-\def\PDFsymbolPaperclip {/Paperclip}
-\def\PDFsymbolAttachment{/Attachment}
-\def\PDFsymbolTag {/Tag}
-
-\def\startPDFsymbolappearance
- {\setbox\scratchbox\vbox to \totalheight \bgroup \vfill}
-
-\def\stopPDFsymbolappearance
- {\egroup
- \setbox\scratchbox\hbox{\lower\depth\box\scratchbox}%
- \wd\scratchbox\width
- \ht\scratchbox\height
- \dp\scratchbox\depth
- \box\scratchbox}
-
-\def\presetPDFsymbolappearance#1#2#3#4#5% symbol color width height depth
- {\doifelsenothing{#1}
- {\let\PDFattributes\empty}
- {\def\PDFattributes{/C \FDFcolor{#1}}}%
- \scratchdimen#3\edef\width {\the\scratchdimen}%
- \scratchdimen#4\edef\height{\the\scratchdimen}%
- \scratchdimen#5\edef\depth {\the\scratchdimen}%
- \advance\scratchdimen\height\edef\totalheight{\the\scratchdimen}%
- \doifelsenothing{#2}
- {\let\PDFsymbol\empty}
- {\ifundefined{PDFsymbol#2}%
- \getfromcommacommand[#2][1]\let\PDFsymbolnormalsymbol\commalistelement
- \getfromcommacommand[#2][2]\let\PDFsymboldownsymbol \commalistelement
- \doifsymboldefinedelse\PDFsymbolnormalsymbol
- {\doifsymboldefinedelse\PDFsymboldownsymbol
- {\dopresetPDFsymbolappearance
- \PDFsymbolnormalsymbol\PDFsymboldownsymbol}
- {\dopresetPDFsymbolappearance
- \PDFsymbolnormalsymbol\PDFsymbolnormalsymbol}}
- {\doifsymboldefinedelse\PDFsymboldownsymbol
- {\dopresetPDFsymbolappearance
- \PDFsymboldownsymbol\PDFsymboldownsymbol}
- {\let\PDFsymbol\empty}}%
- \else
- \def\PDFsymbol{/Name \getvalue{PDFsymbol#2} }%
- \fi}}
-
-\def\dopresetPDFsymbolappearance#1#2%
- {\dopresetfieldsymbol{#1}%
- \dopresetfieldsymbol{#2}%
- \setbox\scratchbox\hbox{\symbol[#1]}%
- \edef\width {\the\wd\scratchbox}%
- \edef\height{\the\ht\scratchbox}%
- \edef\depth {\the\dp\scratchbox}%
- \scratchdimen\height \advance\scratchdimen\depth
- \edef\totalheight{\the\scratchdimen}%
- \doPDFgetobjectreference{SYM}{#1}\FDFsymbolNappearance
- \doPDFgetobjectreference{SYM}{#2}\FDFsymbolDappearance
- \edef\PDFsymbol
- {/AP <</N \FDFsymbolNappearance /D \FDFsymbolDappearance>>}}
-
-%D Hooked into \CONTEXT, this special supports
-%D
-%D \starttyping
-%D \startcomment
-%D hello beautiful\\world
-%D \stopcomment
-%D
-%D \startcomment[hello]
-%D de \'e\'erste keer
-%D the f\'irst time
-%D \stopcommen
-%D
-%D \startcommentaar[hallo][color=green,width=4cm,height=3cm]
-%D first
-%D
-%D second
-%D \stopcommentaar
-%D \stoptyping
-%D
-%D So, special characters, forced linebreaks using \type{\\}
-%D and \type{\par} are handled in the appropriate way.
-
-%D \macros
-%D {doPDFovalbox}
-%D
-%D For drawing ovals we use quite raw \PDF\ code. The next
-%D implementation does not differ that much from the one
-%D implemented in the \POSTSCRIPT\ driver.
-
-\def\doPDFovalcalc#1#2#3%
- {\dimen2=#1%
- \advance\dimen2 #2\relax
- \PointsToBigPoints{\dimen2}#3}
-
-\def\doPDFovalbox#1#2#3#4#5#6#7#8% todo: \scratchdimen/\scatchbox
- {\bgroup
- \dimen0=#4\divide\dimen0 \plustwo
- \doPDFovalcalc{0pt}{+\dimen0}\xmin
- \doPDFovalcalc{#1}{-\dimen0}\xmax
- \doPDFovalcalc{#2}{-\dimen0}\ymax
- \doPDFovalcalc{-#3}{+\dimen0}\ymin
- \advance\dimen0 by #5%
- \doPDFovalcalc{0pt}{+\dimen0}\xxmin
- \doPDFovalcalc{#1}{-\dimen0}\xxmax
- \doPDFovalcalc{#2}{-\dimen0}\yymax
- \doPDFovalcalc{-#3}{+\dimen0}\yymin
- \doPDFovalcalc{#4}{\zeropoint}\stroke
- \doPDFovalcalc{#5}{\zeropoint}\radius
- \edef\dostroke{#6}%
- \edef\dofill{#7}%
- \edef\mode{\number#8 \space}%
- % no \ifcase, else \relax in pdfcode
- \setbox\scratchbox\hbox
- {\ifnum\dostroke\dofill>\zerocount
- \ifPDFstrokecolor\else\ifnum\dostroke=\plusone
- \writestatus\m!colors{pdf stroke color will fail}\wait
- \fi\fi
- \PDFcode
- {q
- \stroke\space w
- \ifcase\mode
- \xxmin\space \ymin \space m
- \xxmax\space \ymin \space l
- \xmax \space \ymin \space \xmax \space \yymin\space y
- \xmax \space \yymax\space l
- \xmax \space \ymax \space \xxmax\space \ymax \space y
- \xxmin\space \ymax \space l
- \xmin \space \ymax \space \xmin \space \yymax\space y
- \xmin \space \yymin\space l
- \xmin \space \ymin \space \xxmin\space \ymin \space y
- h
- \or % 1
- \xxmin\space \ymin \space m
- \xxmax\space \ymin \space l
- \xmax \space \ymin \space \xmax \space \yymin\space y
- \xmax \space \ymax \space l
- \xmin \space \ymax \space l
- \xmin \space \yymin\space l
- \xmin \space \ymin \space \xxmin\space \ymin \space y
- h
- \or % 2
- \xxmin\space \ymin \space m
- \xmax \space \ymin \space l
- \xmax \space \ymax \space l
- \xxmin\space \ymax \space l
- \xmin \space \ymax \space \xmin \space \yymax\space y
- \xmin \space \yymin\space l
- \xmin \space \ymin \space \xxmin\space \ymin \space y
- h
- \or % 3
- \xmin \space \ymin \space m
- \xmax \space \ymin \space l
- \xmax \space \yymax\space l
- \xmax \space \ymax \space \xxmax\space \ymax \space y
- \xxmin\space \ymax \space l
- \xmin \space \ymax \space \xmin \space \yymax\space y
- \xmin \space \ymin \space l
- h
- \or % 4
- \xmin \space \ymin \space m
- \xxmax\space \ymin \space l
- \xmax \space \ymin \space \xmax \space \yymin\space y
- \xmax \space \yymax\space l
- \xmax \space \ymax \space \xxmax\space \ymax \space y
- \xmin \space \ymax \space l
- \xmin \space \ymin\space l
- h
- \or % 5
- \xmin \space \ymin \space m
- \xmax \space \ymin \space l
- \xmax \space \yymax\space l
- \xmax \space \ymax \space \xxmax\space \ymax \space y
- \xmin \space \ymax \space l
- \xmin \space \ymin \space l
- h
- \or % 6
- \xmin \space \ymin \space m
- \xxmax\space \ymin \space l
- \xmax \space \ymin \space \xmax \space \yymin\space y
- \xmax \space \ymax \space l
- \xmin \space \ymax \space l
- \xmin \space \ymin \space l
- h
- \or
- \xxmin\space \ymin \space m
- \xmax \space \ymin \space l
- \xmax \space \ymax \space l
- \xmin \space \ymax \space l
- \xmin \space \yymin\space l
- \xmin \space \ymin \space \xxmin\space \ymin \space y
- h
- \or
- \xmin \space \ymin \space m
- \xmax \space \ymin \space l
- \xmax \space \ymax \space l
- \xxmin\space \ymax \space l
- \xmin \space \ymax \space \xmin \space \yymax\space y
- \xmin \space \ymin \space l
- h
- \or % 9 top open
- \xmin \space \ymax \space m
- \xmin \space \yymin\space l
- \xmin \space \ymin \space \xxmin\space \ymin \space y
- \xxmax\space \ymin \space l
- \xmax \space \ymin \space \xmax \space \yymin\space y
- \xmax \space \ymax \space l
- \or % 10 right open
- \xmax \space \ymax \space m
- \xxmin\space \ymax \space l
- \xmin \space \ymax \space \xmin \space \yymax\space y
- \xmin \space \yymin\space l
- \xmin \space \ymin \space \xxmin\space \ymin \space y
- \xmax\space \ymin \space l
- \or % 11 bottom open
- \xmax \space \ymin \space m
- \xmax \space \yymax\space l
- \xmax \space \ymax \space \xxmax \space \ymax\space y
- \xxmin\space \ymax \space l
- \xmin \space \ymax \space \xmin \space \yymax\space y
- \xmin \space \ymin \space l
- \or % 12 left open
- \xmin \space \ymax \space m
- \xxmax\space \ymax \space l
- \xmax \space \ymax \space \xmax \space \yymax\space y
- \xmax \space \yymin\space l
- \xmax \space \ymin \space \xxmax\space \ymin \space y
- \xmin \space \ymin \space l
- \or % 13
- \xmin \space \ymax \space m
- \xxmax\space \ymax \space l
- \xmax \space \ymax \space \xmax \space \yymax\space y
- \xmax\space \ymin \space l
- \or % 14
- \xmax \space \ymax \space m
- \xmax \space \yymin\space l
- \xmax \space \ymin \space \xxmax\space \ymin \space y
- \xmin \space \ymin \space l
- \or % 15
- \xmax \space \ymin \space m
- \xxmin\space \ymin \space l
- \xmin \space \ymin \space \xmin \space \yymin\space y
- \xmin \space \ymax \space l
- \or % 16
- \xmin \space \ymin \space m
- \xmin \space \yymax\space l
- \xmin \space \ymax \space \xxmin\space \ymax \space y
- \xmax \space \ymax \space l
- \or % 17
- \xxmax\space \ymax \space m
- \xmax \space \ymax \space \xmax \space \yymax\space y
- \or % 18
- \xmax \space \yymin\space m
- \xmax \space \ymin \space \xxmax\space \ymin \space y
- \or % 19
- \xxmin\space \ymin \space m
- \xmin \space \ymin \space \xmin \space \yymin\space y
- \or % 20
- \xmin \space \yymax\space m
- \xmin \space \ymax \space \xxmin\space \ymax \space y
- \or % 21
- \xxmax\space \ymax \space m
- \xmax \space \ymax \space \xmax \space \yymax\space y
- \xmin \space \yymax\space m
- \xmin \space \ymax \space \xxmin\space \ymax \space y
- \or % 22
- \xxmax\space \ymax \space m
- \xmax \space \ymax \space \xmax \space \yymax\space y
- \xmax \space \yymin\space m
- \xmax \space \ymin \space \xxmax\space \ymin \space y
- \or % 23
- \xmax \space \yymin\space m
- \xmax \space \ymin \space \xxmax\space \ymin \space y
- \xxmin\space \ymin \space m
- \xmin \space \ymin \space \xmin \space \yymin\space y
- \or % 24
- \xxmin\space \ymin \space m
- \xmin \space \ymin \space \xmin \space \yymin\space y
- \xmin \space \yymax\space m
- \xmin \space \ymax \space \xxmin\space \ymax \space y
- \or % 25
- \xxmax\space \ymax \space m
- \xmax \space \ymax \space \xmax \space \yymax\space y
- \xmax \space \yymin\space m
- \xmax \space \ymin \space \xxmax\space \ymin \space y
- \xxmin\space \ymin \space m
- \xmin \space \ymin \space \xmin \space \yymin\space y
- \xmin \space \yymax\space m
- \xmin \space \ymax \space \xxmin\space \ymax \space y
- \or % 26
- \xmax \space \yymin\space m
- \xmax \space \ymin \space \xxmax\space \ymin \space y
- \xmin \space \yymax\space m
- \xmin \space \ymax \space \xxmin\space \ymax \space y
- \or % 27
- \xxmax\space \ymax \space m
- \xmax \space \ymax \space \xmax \space \yymax\space y
- \xxmin\space \ymin \space m
- \xmin \space \ymin \space \xmin \space \yymin\space y
- \or % 28
- \fi
- \ifnum\mode>8
- S
- \else
- \ifnum\dostroke=\plusone S \fi
- \ifnum\dofill =\plusone f \fi
- \fi
- Q}%
- \fi}%
- \wd\scratchbox#1\ht\scratchbox#2\dp\scratchbox#3\box\scratchbox
- \egroup}
-
-%D \macros
-%D {doPDFstartgraymode,doPDFstopgraymode,
-%D doPDFstartrgbcolormode,doPDFstartcmykcolormode,doPDFstartgraycolormode,
-%D doPDFstopcolormode}
-%D
-%D In \PDF\ there are two color states, one for strokes and one
-%D for fills. This means that we have to set the color in a
-%D rather redundant looking way. Unfortunately this makes the
-%D \PDF\ file much larger than needed. We can save few bytes
-%D by not setting the stroke color. Due to zip compression we
-%D only save a few percent.
-
-% \newif\ifPDFstrokecolor \PDFstrokecolortrue
-
-\def\doPDFstartgraymode#1%
-% {\PDFdirectcode{#1 g\ifPDFstrokecolor\space#1 G\fi}}
- {\PDFcode{#1 g\ifPDFstrokecolor\space#1 G\fi}}
-
-\def\doPDFstopgraymode
-% {\PDFdirectcode{0 g\ifPDFstrokecolor\space0 G\fi}}
- {\PDFcode{0 g\ifPDFstrokecolor\space0 G\fi}}
-
-\def\doPDFstartrgbcolormode#1#2#3%
-% {\PDFdirectcode{#1 #2 #3 rg\ifPDFstrokecolor\space#1 #2 #3 RG\fi}}
- {\PDFcode{#1 #2 #3 rg\ifPDFstrokecolor\space#1 #2 #3 RG\fi}}
-
-\def\doPDFstartcmykcolormode#1#2#3#4%
-% {\PDFdirectcode{#1 #2 #3 #4 k\ifPDFstrokecolor\space#1 #2 #3 #4 K\fi}}
- {\PDFcode{#1 #2 #3 #4 k\ifPDFstrokecolor\space#1 #2 #3 #4 K\fi}}
-
-\def\doPDFstartgraycolormode#1%
-% {\PDFdirectcode{#1 g\ifPDFstrokecolor\space#1 G\fi}}
- {\PDFcode{#1 g\ifPDFstrokecolor\space#1 G\fi}}
-
-\def\doPDFstartspotcolormode#1#2% redefining spotcolors is not possible anyway
- {\ifundefined{pdf:scs:#2}%
- \bgroup
- \getcommacommandsize[#2]%
- \ifcase\commalistsize\or
- \setxvalue{pdf:scs:#2}{#2 SCN #2 scn}% \setxvalue{pdf:scs:#2}{#2 SC #2 sc}%
- \else
- \let\PDFspotcolorspecs\empty
- \def\dospotcolorcommand##1{\edef\PDFspotcolorspecs{\PDFspotcolorspecs##1\space}}%
- \processcommacommand[#2]\dospotcolorcommand
- \setxvalue{pdf:scs:#2}{\PDFspotcolorspecs SCN \PDFspotcolorspecs scn}%
- \fi
- \egroup
- \fi
-% \PDFdirectcode{/#1 cs /#1 CS \PDFgetspotcolorspec{#2}}}
- \PDFcode{/#1 cs /#1 CS \PDFgetspotcolorspec{#2}}}
-
-\def\PDFgetspotcolorspec#1%
- {\executeifdefined{pdf:scs:#1}\empty} % better no default than one with too less args
-
-\def\doPDFstartnonecolormode
-% {\PDFdirectcode{/None CS 1 SC /None cs 1 sc}}
- {\PDFcode{/None CS 1 SC /None cs 1 sc}}
-
-\def\doPDFstopcolormode
-% {\PDFdirectcode{0 g\ifPDFstrokecolor\space0 G\fi}}
- {\PDFcode{0 g\ifPDFstrokecolor\space0 G\fi}}
-
-%D We need to register the spot colors and their fallbacks.
-
-% we cannot use /DeviceN since GS <=7.21 breaks on it
-% and Jaws does not handle it at all {[/DeviceN [/All|/None]
-% /Device#2 \PDFobjref\pdflastobj]} so we use separation
-% colors that work and print ok
-
-\def\doPDFregistersomespotcolor#1#2#3#4% implemented in the driver
- {\writestatus\m!systems{missing spot color definition}\wait}
-
-\def\doPDFregisternonecolor % internal command
- {\doPDFregistergrayspotcolor{None}{1}%
- \globallet\doPDFregisternonecolor\relax}
-
-\def\doPDFregisterspotcolorname#1#2% implemented in the driver
- {}
-
-\definespecial\doregisterspotcolorname{\doPDFregisterspotcolorname}
-
-\def\dodoPDFregisterrgbspotcolor#1#2#3#4#5#6#7% name noffractions names p's r g b
- {\doPDFregistersomespotcolor{#1}{#2}{#3}{#4}{RGB}{0.0 1.0 0.0 1.0 0.0 1.0}%
- {\ifcase#2\or dup #5 mul exch dup #6 mul exch #7 mul\else#5 #6 #7\fi}}
-
-\def\dodoPDFregistercmykspotcolor#1#2#3#4#5#6#7#8% name noffractions names p's c m y k
- {\doPDFregistersomespotcolor{#1}{#2}{#3}{#4}{CMYK}{0.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0}%
- {\ifcase#2\or dup #5 mul exch dup #6 mul exch dup #7 mul exch #8 mul\else #5 #6 #7 #8\fi}}
-
-\def\dodoPDFregistergrayspotcolor#1#2#3#4#5% name noffractions names p's s
- {\doPDFregistersomespotcolor{#1}{#2}{#3}{#4}{Gray}{0.0 1.0}%
- {\ifcase#2\or #5 mul\else #5\fi}}
-
-% \let\doPDFregisterrgbspotcolor \dodoPDFregisterrgbspotcolor
-% \let\doPDFregistercmykspotcolor\dodoPDFregistercmykspotcolor
-% \let\doPDFregistergrayspotcolor\dodoPDFregistergrayspotcolor
-
-\def\doPDFregisterrgbspotcolor#1#2#3#4#5#6#7% name noffractions names p's r g b
- {\ifRGBsupported
- \dodoPDFregisterrgbspotcolor{#1}{#2}{#3}{#4}{#5}{#6}{#7}%
- \else
- \edef\@@cl@@r{#5}\edef\@@cl@@g{#6}\edef\@@cl@@b{#7}%
- \ifCMYKsupported
- \convertRGBtoCMYK\@@cl@@r\@@cl@@g\@@cl@@b
- \dodoPDFregistercmykspotcolor{#1}{#2}{#3}{#4}\@@cl@@c\@@cl@@m\@@cl@@y\@@cl@@k
- \else
- \convertRGBtoGRAY\@@cl@@r\@@cl@@g\@@cl@@b
- \dodoPDFregistergrayspotcolor{#1}{#2}{#3}{#4}\@@cl@@s
- \fi
- \fi}
-
-\def\doPDFregistercmykspotcolor#1#2#3#4#5#6#7#8% name noffractions names p's c m y k
- {\ifCMYKsupported
- \dodoPDFregistercmykspotcolor{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}%
- \else
- \edef\@@cl@@c{#5}\edef\@@cl@@m{#6}\edef\@@cl@@y{#7}\edef\@@cl@@k{#8}%
- \ifRGBsupported
- \convertCMYKtoRGB\@@cl@@c\@@cl@@m\@@cl@@y\@@cl@@k
- \dodoPDFregisterrgbspotcolor{#1}{#2}{#3}{#4}\@@cl@@r\@@cl@@g\@@cl@@b
- \else
- \convertCMYKtoGRAY\@@cl@@c\@@cl@@m\@@cl@@y\@@cl@@k
- \dodoPDFregistergrayspotcolor{#1}{#2}{#3}{#4}\@@cl@@s
- \fi
- \fi}
-
-\def\doPDFregistergrayspotcolor{\dodoPDFregistergrayspotcolor}
-
-%D New and very experimental.
-
-\def\doPDFregistercmykindexcolor#1#2#3#4#5#6#7#8% name noffractions names p's c m y k
- {\doPDFregistersomeindexcolor{#1}{#2}{#3}{#4}{CMYK}{0.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0}%
- {dup #5 mul exch dup #6 mul exch dup #7 mul exch #8 mul}}
-
-\def\doPDFregisterrgbindexcolor#1#2#3#4#5#6#7% name noffractions names p's r g b
- {\doPDFregistersomeindexcolor{#1}{#2}{#3}{#4}{RGB}{0.0 1.0 0.0 1.0 0.0 1.0}%
- {dup #5 mul exch dup #6 mul exch #7 mul}}
-
-\def\doPDFregistergrayindexcolor#1#2#3#4#5% name noffractions names p's s
- {\doPDFregistersomeindexcolor{#1}{#2}{#3}{#4}{Gray}{0.0 1.0}%
- {pop}}
-
-\let\checkpredefinedcolor\predefineindexcolor % we need an index in order to negate bitmaps
-
-\def\doPDFregisterfigurecolor#1% always an index color
- {\dogetobjectreference
- {PDFIX}
- {\internalspotcolorname{#1}}
- \PDFimagecolorreference}
-
-%D \macros
-%D {doPDFstartrotation,doPDFstoprotation}
-%D
-%D Rotating some text can be accomplished by setting the first
-%D four elements of the transform matrix. We only support some
-%D fixed angles. The \type{q}'s take care of grouping.
-
-% The original:
-%
-% \def\doPDFstartrotation#1%
-% {\PDFcode{q}%
-% \processaction
-% [#1]
-% [ 90=>\PDFcode{ 0 1 -1 0 0 0 cm},
-% 180=>\PDFcode{-1 0 0 -1 0 0 cm},
-% 270=>\PDFcode{ 0 -1 1 0 0 0 cm},
-% 360=>\PDFcode{ 1 0 0 1 0 0 cm}]}
-%
-% We cannot directly pass an angle, but have to calculate
-% factors (rx and ry). As in the \METAPOST\ to \PDF\
-% converter module we need to compensate the deformation
-% by setting (sx and sy).
-%
-% Optimized but bigger:
-%
-% \def\doPDFstartrotation#1%
-% {\PDFcode{q}%
-% \processaction
-% [#1]
-% [ 0=>\PDFcode{ 1 0 0 1 0 0 cm},
-% 90=>\PDFcode{ 0 1 -1 0 0 0 cm},
-% 180=>\PDFcode{-1 0 0 -1 0 0 cm},
-% 270=>\PDFcode{ 0 -1 1 0 0 0 cm},
-% 360=>\PDFcode{ 1 0 0 1 0 0 cm},
-% #1=>%\calculatecos{#1}% already calculated in core macro
-% %\calculatesin{#1}% already calculated in core macro
-% \edef\cos{\calculatedcos{#1}}%
-% \edef\sin{\calculatedsin{#1}}%
-% \PDFcode{\cos \space % cos
-% \sin \space % sin
-% \negated\sin\space % -sin
-% \cos \space % cos
-% 0 0 cm}]}
-%
-% Since the sine and cosine values are preset and rounded we
-% can use the next alternative without running into inaccuracies.
-
-\def\doPDFstartrotation#1% grouped
- {\calculatecos{#1}% already calculated in core macro
- \calculatesin{#1}% already calculated in core macro
- \edef\cos{\calculatedcos{#1}}%
- \edef\sin{\calculatedsin{#1}}%
- \PDFcode{q \cos\space\sin\space\negated\sin\space\cos\space0 0 cm}}
-
-\def\doPDFstoprotation
- {\PDFcode{Q}}
-
-%D \macros
-%D {doPDFstartscaling,doPDFstopscaling}
-%D
-%D Scaling is rather straightforward:
-
-\def\@@PDFzeroscale{.0001}
-
-\def\doPDFstartscaling#1#2% the test is needed because acrobat is bugged!
- {\PDFcode{q \ifdim#1\points=\zeropoint\@@PDFzeroscale\else#1\fi\space 0 0
- \ifdim#2\points=\zeropoint\@@PDFzeroscale\else#2\fi\space 0 0 cm}}
-
-% \def\doPDFstartscaling#1#2% the test is needed because acrobat is bugged!
-% {\PDFcode{q\ifdim#1\points=\zeropoint\else\ifdim#2\points=\zeropoint\else
-% \space#1\space 0 0 #2\space 0 0 cm\fi\fi}}
-
-\def\doPDFstopscaling
- {\PDFcode{Q}}
-
-%D \macros
-%D {doPDFstartmirroring,doPDFstopmirroring}
-%D
-%D Mirroring is implemented in a similar way:
-
-\def\doPDFstartmirroring
- {\PDFcode{-1 0 0 1 0 0 cm}}
-
-\def\doPDFstopmirroring
- {\PDFcode{-1 0 0 1 0 0 cm}}
-
-%D \macros
-%D {doPDFstartnegative,doPDFstopnegative}
-%D
-%D When producing output for an image setter, sometimes negative
-%D output is needed.
-
-\def\doPDFstartnegative
- {\ifx\initializePDFnegative\undefined\else
- \initializePDFnegative
-% \PDFdirectcode{/GSnegative gs}%
- \PDFcode{/GSnegative gs}%
- \fi}
-
-\def\doPDFstopnegative
- {\ifx\initializePDFnegative\undefined\else
- \initializePDFnegative
-% \PDFdirectcode{/GSpositive gs}%
- \PDFcode{/GSpositive gs}%
- \fi}
-
-%D \macros
-%D {doPDFstartoverprint,doPDFstopoverprint}
-%D
-%D Some printers like overprint more than knockout.
-
-\def\doPDFstartoverprint
- {\ifx\initializePDFoverprint\undefined\else
- \initializePDFoverprint
-% \PDFdirectcode{/GSoverprint gs}%
- \PDFcode{/GSoverprint gs}%
- \fi}
-
-\def\doPDFstopoverprint
- {\ifx\initializePDFoverprint\undefined\else
- \initializePDFoverprint
-% \PDFdirectcode{/GSknockout gs}%
- \PDFcode{/GSknockout gs}% wrong
- \fi}
-
-%D Transparency support:
-
-\newif\ifPDFtransparencysupported
-
-\def\PDFtransparancydictionary#1#2#3% type fraction extras
- {<</Type /ExtGState
- /ca #2 /CA #2
- /BM /\ifcase#1 Normal\or Normal\or Multiply\or Screen\or
- Overlay\or SoftLight\or HardLight\or ColorDodge\or
- ColorBurn\or Darken\or Lighten\or Difference\or
- Exclusion\else Compatible\fi
- #3>>}
-
-\def\dodoPDFstarttransparency#1#2%
- {\presetPDFtransparency{#1}{#2}%
- \PDFcode{\PDFtransparencyidentifier\space gs }}
-
-\def\dodoPDFstoptransparency
- {\PDFcode{/Tr0 gs }}
-
-\def\doPDFstarttransparency
- {\ifPDFtransparencysupported
- \global\let\doPDFstarttransparency\dodoPDFstarttransparency
- \global\let\doPDFstoptransparency \dodoPDFstoptransparency
- \initializetransparency
- \expandafter\doPDFstarttransparency
- \else
- \expandafter\gobbletwoarguments
- \fi}
-
-% \let\doPDFstoptransparency\relax
-%
-% This is tricky: because a text stream is handled before
-% the page body is built, we can run into stops that will
-% match an outer start; however, the stop is needed in case
-% of a text color: [text color text] [other color text] on a
-% first page combined with color splitting will go wrong if
-% we stick to the relaxing method.
-
-\def\doPDFstoptransparency
- {\ifPDFtransparencysupported
- \initializetransparency
- \dodoPDFstoptransparency
- \fi}
-
-%D These use:
-
-\let\PDFtransparencyresetreference \empty
-\let\PDFtransparencyresetidentifier\empty
-
-\let\PDFtransparencyreference \empty
-\let\PDFtransparencyidentifier\empty
-
-\let\presetPDFtransparency \gobbletwoarguments
-\let\initializetransparency\relax
-
-%D New trickery:
-
-\definespecial\dostartgraphicgroup{\PDFcode{q}}
-\definespecial\dostopgraphicgroup {\PDFcode{Q}}
-
-%D Even newer trickery:
-
-\definespecial\dostartviewerlayer {\doPDFstartlayer}
-\definespecial\dostopviewerlayer {\doPDFstoplayer}
-\definespecial\dodefineviewerlayer{\doPDFdefinelayer}
-
-\let\PDFtextlayers\empty
-\let\PDFpagelayers\empty
-\let\PDFhidelayers\empty
-\let\PDFvidelayers\empty
-
-% \def\doPDFstartlayer#1{\PDFdirectcode{/OC /#1 BDC}}
-% \def\doPDFstoplayer {\PDFdirectcode {EMC}}
-
-\def\doPDFstartlayer#1{\PDFcode{/OC /#1 BDC}}
-\def\doPDFstoplayer {\PDFcode {EMC}}
-
-% resource -> prop -> mc's -> OCG|OCMD (nested)
-
-% ocg:
-
-% /Intent/Design
-
-% ocmd
-
-% /P /AllOn
-
-% kan zelf ocmd bevatten
-
-\def\doPDFdefinelayer#1#2#3#4#5% tag title visible type printable
-% {\driverreferenced \doPDFdictionaryobject{PDLN}{#1}
- {\doPDFdictionaryobject{PDLN}{#1}
- {/Type /OCG
- \ifcase#4 \or
- /Intent /Design % disable layer hiding by user
- \fi
- \ifnum#5=\zerocount
- /Usage << /Print << /PrintState /OFF >> >> % printable or not
- \fi
- /Name (#2)}%
- \doPDFgetobjectreference{PDLN}{#1}\PDFobjectreference
- \xdef\PDFtextlayers{\PDFtextlayers\space\PDFobjectreference}%
- \doifelse{#3}\v!start
- {\xdef\PDFvidelayers{\PDFvidelayers\space\PDFobjectreference}}%
- {\xdef\PDFhidelayers{\PDFhidelayers\space\PDFobjectreference}}%
- %\driverreferenced \doPDFdictionaryobject{PDLD}{#1}
- \doPDFdictionaryobject{PDLD}{#1}
- {/Type /OCMD
- /OCGs [\PDFobjectreference]}%
- \doPDFgetobjectreference{PDLD}{#1}\PDFobjectreference
- \xdef\PDFpagelayers{\PDFpagelayers\space /#1 \PDFobjectreference}}
-
-\def\flushPDFtextlayers
- {\ifx\PDFtextlayers\empty \else
- \driverreferenced \doPDFarrayobject{PDF}{textlayers}{\PDFtextlayers}%
- \doPDFgetobjectreference{PDF}{textlayers}\!!stringa
- \ifx\PDFvidelayers\empty
- \def\!!stringb{[null]}%
- \else
- \driverreferenced \doPDFarrayobject{PDF}{videlayers}{\PDFvidelayers}%
- \doPDFgetobjectreference{PDF}{videlayers}\!!stringb
- \fi
- \ifx\PDFhidelayers\empty
- \def\!!stringc{[null]}%
- \else
- \driverreferenced \doPDFarrayobject{PDF}{hidelayers}{\PDFhidelayers}%
- \doPDFgetobjectreference{PDF}{hidelayers}\!!stringc
- \fi
- \doPDFaddtocatalog
- {/OCProperties
- << % display in menu
- /D << /Order \!!stringa
- /ON \!!stringb
- /OFF \!!stringc >>
- % used properties
- /OCGs \!!stringa >>}%
- \globallet\flushPDFtextlayers\relax
- \fi}
-
-\def\flushPDFpagelayers
- {\ifx\PDFpagelayers\empty \else
- \doPDFpageresource{/Properties <<\PDFpagelayers>>}%
- \fi}
-
-\prependtoksonce \flushPDFpagelayers \to \everyshipout
-\prependtoksonce \flushPDFtextlayers \to \everylastshipout
-
-\def\PDFlayeractionlist{null}
-
-\def\PDFexecutehidelayer {/SetOCGState /State [/OFF \PDFlayeractionlist]}
-\def\PDFexecutevidelayer {/SetOCGState /State [/ON \PDFlayeractionlist]}
-\def\PDFexecutetogglelayer {/SetOCGState /State [/Toggle \PDFlayeractionlist]}
-
-\def\domakeviewerlayerlist#1%
- {\bgroup
- \globallet\PDFlayeractionlist\empty
- \def\docommand##1%
- {\doPDFgetobjectreference{PDLN}{##1}\PDFobjectreference
- \xdef\PDFlayeractionlist{\PDFlayeractionlist\space\PDFobjectreference}}%
- \processcommalist[#1]\docommand
- \egroup}
-
-%D Something rather pdf dependent:
-
-% #1 => 1=fill 2=stroke 3=strokedfill 4=invisible
-% #2 => linewidth
-% #3 => spacing (beware, one needs to set the hsize as well)
-
-\def\doPDFstartfonteffect#1#2#3%
- {\ifdim#2>\zeropoint
- \PointsToBigPoints{#2}\ascii
-% \PDFdirectcode{\ascii\space w}%
- \PDFcode{\ascii\space w}%
- \fi
- \ifdim#3\points=\onepoint\else
- \scratchdimen#3\points
-% \PDFdirectcode{\withoutpt{\the\scratchdimen}\space Tc}%
- \PDFcode{\withoutpt{\the\scratchdimen}\space Tc}%
- \fi
-% \PDFdirectcode{\purenumber#1 Tr}}
- \PDFcode{\purenumber#1 Tr}}
-
-\def\doPDFstopfonteffect
-% {\PDFdirectcode{1 w 0 Tc 0 Tr}}
- {\PDFcode{1 w 0 Tc 0 Tr}}
-
-%D Handy for the \METAPOST\ to \PDF\ converter:
-
-\newevery \everyPDFximage \relax
-\newevery \everyPDFxform \relax
-
-\appendtoksonce
- \collectPDFresources
- \global\let\currentPDFresources\collectedPDFresources
-\to \everyPDFxform
-
-\let\collectedPDFresources\empty
-
-\def\collectPDFresources % suboptimal
- {\doifobjectreferencefoundelse{FDF}{docushades} % redundant, we have an reserved object now
- {\doPDFgetobjectreference{FDF}{docushades}\PDFobjectreference
- \xdef\collectedPDFresources{\collectedPDFresources/Shading \PDFobjectreference}}\donothing
- \doifobjectreferencefoundelse{FDF}{docuextgstates}
- {\doPDFgetobjectreference{FDF}{docuextgstates}\PDFobjectreference
- \xdef\collectedPDFresources{\collectedPDFresources/ExtGState \PDFobjectreference}}\donothing
- \doifobjectreferencefoundelse{FDF}{colorspaces}
- {\doPDFgetobjectreference{FDF}{colorspaces}\PDFobjectreference
- \xdef\collectedPDFresources{\collectedPDFresources/ColorSpace \PDFobjectreference}}\donothing
- \global\let\collectPDFresources\relax}
-
-%D And that was all.
-
-\stopspecials
-
-\ifx\fullytransparentcolor\undefined \else
-
- \def\fullytransparentcolor
- {\doPDFregisternonecolor
- \doPDFstartnonecolormode}
-
- \let\doPDFstarttransparency\gobbletwoarguments
- \let\doPDFstoptransparency\relax
-
-\fi
-
-\loadmarkfile{spec-fdf}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/spec-ini.tex b/Master/texmf-dist/tex/context/base/spec-ini.mkii
index a344219ac62..0229a0e3ddf 100644
--- a/Master/texmf-dist/tex/context/base/spec-ini.tex
+++ b/Master/texmf-dist/tex/context/base/spec-ini.mkii
@@ -31,130 +31,10 @@
%D tried to overcome this problem by implementing specials as
%D a sort of drivers themselves.
-\writestatus{loading}{Context Special Macros / Initialization}
+\writestatus{loading}{ConTeXt Special Macros / Initialization}
\unprotect
-\startmessages dutch library: specials
- title: specials
- 1: -- geladen
- 2: verdere nesting is niet toegestaan --
- 3: -- gereset
- 4: commando -- bestaat niet
- 5: definitiefile -- wordt geladen
- 6: nesting is niet toegestaan
- 7: onbekende driver --
-\stopmessages
-
-\startmessages english library: specials
- title: specials
- 1: -- loaded
- 2: no deeper nesting is permitted --
- 3: -- is reset
- 4: command -- does not exist
- 5: loading definition file --
- 6: nesting is not permitted
- 7: unknown driver --
-\stopmessages
-
-\startmessages german library: specials
- title: spezielles
- 1: -- geladen
- 2: keine tiefere Verschachtelung erlaubt --
- 3: -- ist zurueckgesetzt
- 4: Befehl -- existiert nicht
- 5: lade Definitionsdatei --
- 6: Verschachtelung nicht erlaubt
- 7: unbekante Driver --
-\stopmessages
-
-\startmessages czech library: specials
- title: speciality
- 1: -- nacteno
- 2: neni dovoleno hlubsi zanoreni --
- 3: -- je resetovano
- 4: prikaz -- neexistuje
- 5: nacita se definicni soubor --
- 6: zanoreni neni dovoleno
- 7: neznamy ovladac (driver) --
-\stopmessages
-
-\startmessages italian library: specials
- title: specialitø
- 1: -- caricato
- 2: non ø permesso un annidamento maggiore --
- 3: -- reimpostato
- 4: il comando -- non esiste
- 5: caricamento del file di definizione --
- 6: annidamento non permesso
- 7: driver sconosciuto --
-\stopmessages
-
-\startmessages norwegian library: specials
- title: specials
- 1: -- er lest inn
- 2: dypere 'nesting' er ikke tillatt --
- 3: -- er tilbakestilt
- 4: kommando -- eksisterer ikke
- 5: leser inn definisjonsfil for --
- 6: 'nesting' er ikke tillatt
- 7: ukjent driver --
-\stopmessages
-
-\startmessages romanian library: specials
- title: specials
- 1: -- incarcat
- 2: nu este permis un nivel de imbricare mai mare --
- 3: -- s-a resetat
- 4: comanda -- nu exista
- 5: se incarca fisierul de definitii --
- 6: imbricarea nu este permisa
- 7: driver necunoscut --
-\stopmessages
-
-\startmessages french library: specials
- title: specials
- 1: -- chargé
- 2: pas d'imbracations plus profondes ne sont permises --
- 3: -- est remis à zéro
- 4: la commande -- n'existe pas
- 5: chargement du fichier de définition --
- 6: l'imbrication n'est pas permise
- 7: pilote -- inconnu
-\stopmessages
-
-\startmessages dutch library: interactions
- 21: -- code tussengevoegd
-\stopmessages
-
-\startmessages english library: interactions
- 21: -- code inserted
-\stopmessages
-
-\startmessages german library: interactions
- 21: -- Code eingefuegt
-\stopmessages
-
-\startmessages czech library: interactions
- 21: -- kod vlozen
-\stopmessages
-
-\startmessages italian library: interactions
- 21: codice -- inserito
-\stopmessages
-
-\startmessages norwegian library: interactions
- 21: -- kode satt inn / tilføyd
-\stopmessages
-
-\startmessages romanian library: interactions
- 21: -- cod inserat
-\stopmessages
-
-\startmessages french library: interactions
- 21: -- code inseré
-\stopmessages
-
%D \TEX\ produces files in the \DVI\ format. This format is
%D well defined and stable. In this format one||byte commands
%D are used which can optionally be followed by length
@@ -201,7 +81,7 @@
%D
%D Now what will this one do? We'll see in a few lines.
-\newevery \everyresetspecials \relax
+\newtoks \everyresetspecials
\appendtoksonce
\ifx\setjobsuffix\undefined\else\setjobsuffix{dvi}\fi
@@ -301,17 +181,6 @@
\let\currentspecial \empty
\let\currentspecialfile\empty
-\let\preloadedspecials \empty
-
-%D \macros
-%D {preloadspecials}
-%D
-%D The following command can be used to show the loaded list
-%D of specials.
-
-\def\preloadspecials
- {\doifsomething\preloadedspecials
- {\showmessage\m!specials1\preloadedspecials}}
%D \macros
%D {startspecials}
@@ -330,8 +199,7 @@
\doifelsenothing{#1}
{\let\currentspecial\s!unknown}
{\def\currentspecial{#1}}%
- \unprotect
- \addtocommalist\currentspecial\preloadedspecials}
+ \unprotect}
\def\startspecials
{\localpushmacro\currentspecial
@@ -376,11 +244,7 @@
{\the\everyresetspecials
\def\docommand##1%
{\letvalue{\@@speclst@@##1}\empty}%
- \processcommacommand[\@@allspecials]\docommand
- \ifx\preloadedspecials\empty \else
- \showmessage\m!specials3\preloadedspecials
- \let\preloadedspecials\empty
- \fi}
+ \processcommacommand[\@@allspecials]\docommand}
%D \macros
%D {definespecial}
@@ -425,9 +289,8 @@
{\edef\currentspecialfile{#1}}%
\makeshortfilename[\truefilename{\f!specialprefix\currentspecialfile}]%
\startreadingfile
- \readsysfile\shortfilename{\showmessage\m!specials5\currentspecialfile}\donothing
- \stopreadingfile
- \showmessage\m!specials1\preloadedspecials}}
+ \readsysfile{\shortfilename.mkii}{\showmessage\m!specials5\currentspecialfile}\donothing
+ \stopreadingfile}}
\def\usespecials[#1]%
{\ifnum\realpageno<2
@@ -613,8 +476,7 @@
\let#1\gobbletenarguments \fi}
\def\resetspecials
- {\the\everyresetspecials
- \let\preloadedspecials\empty}
+ {\the\everyresetspecials}
\def\definespecial#1%
{\@EA\chardef\csname\@@speclst@@\string#1\endcsname=1
@@ -673,9 +535,25 @@
{\dousespecials{#1}}
{\showmessage\m!specials7{#1}}}}
+% Beware, from now on changing the (default) driver files demands
+% remaking the format (no big deal, since only i adapt the driver
+% and need delayed loading).
+
+\let\currentoutput\empty
+
\def\setupoutput[#1]%
- {\ifnum\realpageno<\plustwo % new
- \resetspecials\processcommacommand[#1]\dosetupoutput
- \fi}
+ {\doifnot{#1}{\currentoutput}
+ {\ifnum\realpageno<\plustwo % new
+ \resetspecials\processcommacommand[#1]\dosetupoutput
+ \edef\currentoutput{#1}%
+ \fi}}
+
+\def\preloadspecials % it's nicer to report this
+ {\doifsomething\currentoutput
+ {\showmessage\m!specials1\currentoutput}}
+
+\appendtoks
+ \savecurrentvalue\usedoutputdriver\currentoutput
+\to \everyfirstshipout
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/spec-mis.tex b/Master/texmf-dist/tex/context/base/spec-mis.mkii
index bfd25320524..3d263eaceae 100644
--- a/Master/texmf-dist/tex/context/base/spec-mis.tex
+++ b/Master/texmf-dist/tex/context/base/spec-mis.mkii
@@ -16,7 +16,7 @@
%D Acrobat Distiller. This module implements some common
%D features.
-\writestatus{loading}{Context Special Macros / Miscellaneous Macros}
+\writestatus{loading}{ConTeXt Special Macros / Miscellaneous Macros}
\unprotect
@@ -93,8 +93,6 @@
\def\dofileinsertion#1#2{\executeifdefined{do#1insert#2}\donothing}
\def\dofilechecker #1#2{\executeifdefined{do#1check#2} \donothing}
-\newevery \everyresetspecials \relax
-
\appendtoks \let\supportedfileinsertions\empty \to \everyresetspecials
\appendtoks \let\supportedfilecheckers \empty \to \everyresetspecials
@@ -234,13 +232,17 @@
\noexpand\installprogram{dvipos -o \jobname.tuo \jobname.dvi }%
\global\noexpand\let\noexpand\flushDVIpositionpapersize\relax}}
- \beginXETEX
- \def\dosetpositionpapersize#1#2%
- {\xdef\flushDVIpositionpapersize
- {\special{pos:papersize \number#1 \number#2}%
- \noexpand\installprogram{dvipos -o \jobname.tuo \jobname.xdv }%
- \global\noexpand\let\noexpand\flushDVIpositionpapersize\relax}}
- \endXETEX
+ % kind of obsolete since nowadays xetex supports \pdfsavepos as well
+
+ \ifnum\texengine=\xetexengine
+
+ \def\dosetpositionpapersize#1#2%
+ {\xdef\flushDVIpositionpapersize
+ {\special{pos:papersize \number#1 \number#2}%
+ \noexpand\installprogram{dvipos -o \jobname.tuo \jobname.xdv }%
+ \global\noexpand\let\noexpand\flushDVIpositionpapersize\relax}}
+
+ \fi
\prependtoksonce \flushDVIpositionpapersize \to \everyshipout
@@ -278,7 +280,7 @@
%D Handy to have this available asap:
-\newevery \everyPDFxform \relax
-\newevery \everyPDFximage \relax
+\ifdefined\everyPDFxform \newtoks\everyPDFxform \fi
+\ifdefined\everyPDFximage \newtoks\everyPDFximage \fi
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/spec-pdf.lua b/Master/texmf-dist/tex/context/base/spec-pdf.lua
deleted file mode 100644
index 04886b7247b..00000000000
--- a/Master/texmf-dist/tex/context/base/spec-pdf.lua
+++ /dev/null
@@ -1,28 +0,0 @@
-if not modules then modules = { } end modules ['spec-pdf'] = {
- version = 1.001,
- comment = "companion to spec-fdf.tex",
- author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
- copyright = "PRAGMA ADE / ConTeXt Development Team",
- license = "see context related readme files"
-}
-
---[[ldx--
-<p>This module implements a couple of cleanup methods. We need these
-in order to meet the <l n='pdf'/> specification. Watch the double
-parenthesis; they are needed because otherwise we would pass more
-than one argument to <l n='tex'/>.</p>
---ldx]]--
-
-pdf = pdf or { }
-
-function pdf.cleandestination(str)
- tex.sprint((str:gsub("[%/%#%<%>%[%]%(%)%-%s]+","-")))
-end
-
-function pdf.cleandestination(str)
- tex.sprint((str:gsub("[%/%#%<%>%[%]%(%)%-%s]+","-")))
-end
-
-function pdf.santizedstring(str)
- tex.sprint((str:gsub("([\\/#<>%[%]%(%)])","\\%1")))
-end
diff --git a/Master/texmf-dist/tex/context/base/spec-pdf.tex b/Master/texmf-dist/tex/context/base/spec-pdf.mkii
index 2191eaeae3a..2191eaeae3a 100644
--- a/Master/texmf-dist/tex/context/base/spec-pdf.tex
+++ b/Master/texmf-dist/tex/context/base/spec-pdf.mkii
diff --git a/Master/texmf-dist/tex/context/base/spec-ps.tex b/Master/texmf-dist/tex/context/base/spec-ps.mkii
index 803defe02ba..803defe02ba 100644
--- a/Master/texmf-dist/tex/context/base/spec-ps.tex
+++ b/Master/texmf-dist/tex/context/base/spec-ps.mkii
diff --git a/Master/texmf-dist/tex/context/base/spec-tpd.tex b/Master/texmf-dist/tex/context/base/spec-tpd.mkii
index b6d2bddf0c8..597993e0a72 100644
--- a/Master/texmf-dist/tex/context/base/spec-tpd.tex
+++ b/Master/texmf-dist/tex/context/base/spec-tpd.mkii
@@ -75,17 +75,17 @@
\unprotect
\ifx\pdftexversion\undefined
- \writestatus{\m!systems}{you should use pdfTeX binaries}\wait
+ \writestatus\m!systems{you should use pdfTeX binaries}\wait
\protect\expandafter\endinput
\fi
\ifnum\pdftexversion<13
- \writestatus{\m!systems}{your pdfTeX version is much too old}\wait
+ \writestatus\m!systems{your pdfTeX version is much too old}\wait
\protect\expandafter\endinput
\fi
\ifnum\pdftexversion<14
- \writestatus{\m!systems}{please update your pdfTeX binaries}
+ \writestatus\m!systems{please update your pdfTeX binaries}
\fi
\ifnum\pdftexversion>19
@@ -186,8 +186,7 @@
\pdfoutput\zerocount
\to \everyresetspecials
-\pdfoutput =1 % we reset that one with \everyresetspecials
-\pdfcompresslevel=9 % apart from debugging, no reason for value 0
+\pdfoutput=1 % we reset that one with \everyresetspecials
%D Just in case we mimmick specials, we have to make sure no
%D default specials end up in the process.
@@ -207,8 +206,8 @@
%D
%D This token register is flushed before an ximage is loaded.
-\newevery \everyPDFximage \relax
-\newevery \everyPDFxform \relax
+\ifdefined\everyPDFximage \else \newtoks\everyPDFximage \fi
+\ifdefined\everyPDFxform \else \newtoks\everyPDFxform \fi
%D \macros
%D {dosetuppaper}
@@ -741,7 +740,7 @@
\definespecial\dostartgotorealpage{\doPDFstartgotorealpage}
\definespecial\dostartgotoJS {\doPDFstartgotoJS}
-\let\PDFpagexyzspec\empty % hack, pdftex does not accept spec
+\let\PDFpagexyzspec\empty % pdftex does not accept spec
%D \macros
%D {doflushJSpreamble}
@@ -1049,32 +1048,6 @@
\ifnum\pdftexversion>13
\def\doPDFaction#1#2#3%
- {\ifcollectreferenceactions
- \xdef\lastPDFaction{#3}%
- \else
- \ifsharePDFactions
- \ifcase\similarreference\relax
- \xdef\lastPDFaction{<<#3>>}%
- \or
- \immediate\pdfobj{<<#3>>}%
- \xdef\lastPDFaction{\PDFobjref\pdflastobj}%
- \else
- % leave \lastPDFaction untouched
- \fi
- \else
- \xdef\lastPDFaction{<<#3>>}%
- \fi
- \pdfannot
- width #1 height #2 depth \zeropoint
- {/Subtype /Link
- /Border [0 0 0]
- \ifhighlighthyperlinks \else /H /N \fi
- /A \lastPDFaction}%
- \fi}
-
- % less #2 passing
-
- \def\doPDFaction#1#2#3%
{\xdef\lastPDFcontent{#3}%
\ifcollectreferenceactions
\global\let\lastPDFaction\lastPDFcontent
@@ -1097,7 +1070,7 @@
/Border [0 0 0]
\ifhighlighthyperlinks \else /H /N \fi
/A \lastPDFaction}%
- \fi}
+ \fi}
\else
@@ -1198,20 +1171,6 @@
%D Well, isn't the next one ugly? Thanks to the \PDF\
%D standard.
-% obsolete cq. buggy in pdfTeX
-%
-% \def\doPDFbookmark#1#2#3#4#5%
-% {\pdfoutline
-% goto page #4\space
-% \ifcase#2 \else count \ifcase#5-\fi#2 \fi
-% {#3}}
-
-% \def\doPDFbookmark#1#2#3#4#5%
-% {\pdfoutline
-% user {<</S /GoTo /D [#4\space\PDFpageviewwrd]>>}%
-% \ifcase#2 \else count \ifcase#5-\fi#2 \fi
-% {#3}}
-
\def\doPDFbookmark#1#2#3#4#5%
{\doPDFgetpagereference{#4}\PDFobjectreference
\pdfoutline
diff --git a/Master/texmf-dist/tex/context/base/spec-tr.tex b/Master/texmf-dist/tex/context/base/spec-tr.mkii
index c1f997bca19..c1f997bca19 100644
--- a/Master/texmf-dist/tex/context/base/spec-tr.tex
+++ b/Master/texmf-dist/tex/context/base/spec-tr.mkii
diff --git a/Master/texmf-dist/tex/context/base/spec-tst.tex b/Master/texmf-dist/tex/context/base/spec-tst.mkii
index e699475bc2e..bdd8a29b221 100644
--- a/Master/texmf-dist/tex/context/base/spec-tst.tex
+++ b/Master/texmf-dist/tex/context/base/spec-tst.mkii
@@ -15,7 +15,7 @@
\unprotect
-%D The conversions comes down to (for the sake fo speed the
+%D The conversions comes down to (for the sake of speed the
%D implementation combines steps):
%D
%D \startitemize
diff --git a/Master/texmf-dist/tex/context/base/spec-var.tex b/Master/texmf-dist/tex/context/base/spec-var.mkii
index ba04565a259..8d561dc6f99 100644
--- a/Master/texmf-dist/tex/context/base/spec-var.tex
+++ b/Master/texmf-dist/tex/context/base/spec-var.mkii
@@ -14,7 +14,7 @@
%D This module used to be integrated in \type {spec-ini},
%D but testing optimization is more convenient this way.
-\writestatus{loading}{Context Special Macros / Variables}
+\writestatus{loading}{ConTeXt Special Macros / Variables}
% new approach, 'global' variables, since we run out of
% arguments
diff --git a/Master/texmf-dist/tex/context/base/spec-win.tex b/Master/texmf-dist/tex/context/base/spec-win.mkii
index 73db8830e9c..73db8830e9c 100644
--- a/Master/texmf-dist/tex/context/base/spec-win.tex
+++ b/Master/texmf-dist/tex/context/base/spec-win.mkii
diff --git a/Master/texmf-dist/tex/context/base/spec-xet.tex b/Master/texmf-dist/tex/context/base/spec-xet.mkii
index 0cbd55ba7fd..0cbd55ba7fd 100644
--- a/Master/texmf-dist/tex/context/base/spec-xet.tex
+++ b/Master/texmf-dist/tex/context/base/spec-xet.mkii
diff --git a/Master/texmf-dist/tex/context/base/spec-xtx.tex b/Master/texmf-dist/tex/context/base/spec-xtx.mkii
index 799c6ca8d31..799c6ca8d31 100644
--- a/Master/texmf-dist/tex/context/base/spec-xtx.tex
+++ b/Master/texmf-dist/tex/context/base/spec-xtx.mkii
diff --git a/Master/texmf-dist/tex/context/base/spec-yy.tex b/Master/texmf-dist/tex/context/base/spec-yy.mkii
index beec95493e2..beec95493e2 100644
--- a/Master/texmf-dist/tex/context/base/spec-yy.tex
+++ b/Master/texmf-dist/tex/context/base/spec-yy.mkii
diff --git a/Master/texmf-dist/tex/context/base/strc-bkm.lua b/Master/texmf-dist/tex/context/base/strc-bkm.lua
new file mode 100644
index 00000000000..8f8a3ca246a
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/strc-bkm.lua
@@ -0,0 +1,87 @@
+if not modules then modules = { } end modules ['strc-bkm'] = {
+ version = 0.200,
+ comment = "companion to strc-bkm.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- Future version will support adding arbitrary bookmarks with
+-- associated complex actions (rather trivial to implement).
+
+local format, concat, gsub = string.format, table.concat, string.gsub
+local texsprint, utfvalues = tex.sprint, string.utfvalues
+
+local ctxcatcodes = tex.ctxcatcodes
+
+local lists = structure.lists
+local levelmap = structure.sections.levelmap
+
+structure.bookmarks = structure.bookmarks or { }
+
+local bookmarks = structure.bookmarks
+
+bookmarks.method = "internal" -- or "page"
+
+local names, opened = "", ""
+
+function bookmarks.register(n,o)
+ if names == "" then names = n else names = names .. "," .. n end
+ if opened == "" then opened = o else opened = opened .. "," .. o end
+end
+
+function bookmarks.overload(name,text)
+ local l, ls = lists.tobesaved, nil
+ if #l == 0 then
+ -- no entries
+ elseif name == "" then
+ ls = l[#l]
+ else
+ for i=#l,0,-1 do
+ local li = l[i]
+ local metadata = li.metadata
+ if metadata and not metadata.nolist and metadata.name == name then
+ ls = li
+ break
+ end
+ end
+ end
+ if ls then
+ ls.titledata.bookmark = text
+ end
+end
+
+local function stripped(str) -- kind of generic
+ str = gsub(str,"\\([A-Z]+)","%1") -- \LOGO
+ str = gsub(str,"\\ "," ") -- \
+ str = gsub(str,"\\([A-Za-z]+) *{(.-)}","%1") -- \bla{...}
+ str = gsub(str," +"," ") -- spaces
+ return str
+end
+
+function bookmarks.place()
+ if names ~= "" then
+ local list = lists.filter(names,"all",nil,lists.collected)
+ if #list > 0 then
+ local opened, levels = aux.settings_to_set(opened), { }
+ for i=1,#list do
+ local li = list[i]
+ local metadata = li.metadata
+ local name = metadata.name
+ if not metadata.nolist and levelmap[name] then
+ local titledata = li.titledata
+ if titledata then
+ levels[#levels+1] = {
+ levelmap[name],
+ stripped(titledata.bookmark or titledata.title or "?"),
+ li.references, -- has internal and realpage
+ allopen or opened[name]
+ }
+ end
+ end
+ end
+ backends.codeinjections.addbookmarks(levels,bookmarks.method)
+ end
+ function bookmarks.place() end -- prevent second run
+ end
+end
diff --git a/Master/texmf-dist/tex/context/base/strc-bkm.mkiv b/Master/texmf-dist/tex/context/base/strc-bkm.mkiv
new file mode 100644
index 00000000000..9298a9d8ef6
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/strc-bkm.mkiv
@@ -0,0 +1,92 @@
+%D \module
+%D [ file=strc-bkm,
+%D version=2009.04.01,
+%D title=\CONTEXT\ Structure Macros,
+%D subtitle=Bookmarks,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=\PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D This might become scrn-bkm.mkiv.
+
+\writestatus{loading}{ConTeXt Structure Macros / Bookmarks}
+
+\registerctxluafile{strc-bkm}{1.001}
+
+\unprotect
+
+%D Due to requests I finally decided to support bookmarks, a
+%D driver dependant way of showing tables of content. The most
+%D simple way of support is hooking bookmark generation into
+%D the existing list mechanisms. That way users can generate
+%D bookmarks automatically, although its entirely valid to add
+%D bookmarks by defining alternative ones. These will be added
+%D at the appropriate place in the list.
+
+% \hoofdstuk{het eerste hoofdstuk}
+%
+% \bookmark {de eerste bookmark} % optional overruled hoofdstuk
+%
+% .... text ....
+%
+% \placebookmarks [hoofdstuk,paragraaf,subparagraaf,subsubparagraaf,mylist]
+% [open list]
+%
+% \bookmark[mylist]{whatever}
+
+%D This will go away.
+
+\let\flushpostponedbookmark\relax
+
+%D We have better ways now.
+
+\unexpanded\def\bookmark
+ {\dosingleempty\dobookmark}
+
+\def\dobookmark[#1]#2%
+ {\begingroup
+ \simplifycommands
+ \ctxlua{structure.bookmarks.overload("#1",\!!bs\detokenize\expandafter{\normalexpanded{#2}}\!!es)}%
+ \endgroup}
+
+%D Placement \unknown\ look how simple compared to \MKII:
+
+\def\placebookmarks
+ {\dodoubleempty\doplacebookmarks}
+
+\def\doplacebookmarks[#1][#2]%
+ {\iflocation
+ \iffirstargument
+ \ctxlua{structure.bookmarks.register("#1","#2")}%
+ \else
+ \normalexpanded{\noexpand\placebookmarks[\getvalue{\??ih\v!content\c!list}]}%
+ \fi
+ \fi}
+
+\appendtoks\ctxlua{structure.bookmarks.place()}\to\everystoptext
+
+\protect \endinput
+
+% \starttext
+% \setupinteraction[state=start]\setupinteractionscreen[option=bookmark]
+% \placebookmarks[chapter,section,subsection][chapter]
+% \chapter{First}
+% \bookmark{The First Indeed}
+% \section{alpha}
+% \bookmark[chapter]{The First Indeed Again}
+% \section{beta}
+% \chapter{Second}
+% \bookmark{The Second Indeed}
+% \section{gamma \tex{radiation}}
+% \subsection{a}
+% \subsection{b}
+% \section{delta}
+% \section{epsilon}
+% \chapter{Third \relax}
+% \chapter{我〈能吞下玻璃而不傷身〉體。} % whatever that means
+% \chapter{Idris Samawi Hamid ادريس سماوي حامد}
+% \stoptext
diff --git a/Master/texmf-dist/tex/context/base/strc-blk.lua b/Master/texmf-dist/tex/context/base/strc-blk.lua
new file mode 100644
index 00000000000..33dbb0b7ce8
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/strc-blk.lua
@@ -0,0 +1,145 @@
+if not modules then modules = { } end modules ['strc--blk'] = {
+ version = 1.001,
+ comment = "companion to strc--blk.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- this one runs on top of buffers and structure
+
+local texprint, format, gmatch = tex.print, string.format, string.gmatch
+
+local ctxcatcodes = tex.ctxcatcodes
+
+structure = structure or { }
+structure.blocks = structure.blocks or { }
+
+local blocks = structure.blocks
+
+blocks.collected = blocks.collected or { }
+blocks.tobesaved = blocks.tobesaved or { }
+blocks.states = blocks.states or { }
+
+local tobesaved, collected, states = blocks.tobesaved, blocks.collected, blocks.states
+
+local function initializer()
+ collected, tobesaved = blocks.collected, blocks.tobesaved
+end
+
+job.register('structure.blocks.collected', structure.blocks.tobesaved, initializer)
+
+local printer = (lpeg.linebyline/texprint)^0
+
+function blocks.print(name,data,hide)
+ if hide then
+ texprint(ctxcatcodes,format("\\dostarthiddenblock{%s}",name))
+ else
+ texprint(ctxcatcodes,format("\\dostartnormalblock{%s}",name))
+ end
+ if type(data) == "table" then
+ for i=1,#data do
+ texprint(data[i])
+ end
+ else
+ printer:match(data)
+ end
+ if hide then
+ texprint(ctxcatcodes,"\\dostophiddenblock")
+ else
+ texprint(ctxcatcodes,"\\dostopnormalblock")
+ end
+end
+
+function blocks.define(name)
+ states[name] = { all = "hide" }
+end
+
+function blocks.setstate(state,name,tag)
+ local all = tag == ""
+ local tags = not all and aux.settings_to_array(tag)
+ for n in gmatch(name,"%s*([^,]+)") do
+ local sn = states[n]
+ if not sn then
+ -- error
+ elseif all then
+ sn.all = state
+ else
+ for _, tag in pairs(tags) do
+ sn[tag] = state
+ end
+ end
+ end
+end
+
+--~ filter_collected(names, criterium, number, collected)
+
+function blocks.select(state,name,tag,criterium)
+ criterium = criterium or "text"
+ if tag:find("=") then tag = "" end
+ local names = aux.settings_to_set(name)
+ local all = tag == ""
+ local tags = not all and aux.settings_to_set(tag)
+ local hide = state == "process"
+ local n = structure.sections.number_at_depth(criterium)
+ local result = structure.lists.filter_collected("all", criterium, n, collected)
+ for i=1,#result do
+ local ri = result[i]
+ local metadata = ri.metadata
+ if names[metadata.name] then
+ if all then
+ blocks.print(name,ri.data,hide)
+ else
+ local mtags = metadata.tags
+ for tag, sta in pairs(tags) do
+ if mtags[tag] then
+ blocks.print(name,ri.data,hide)
+ break
+ end
+ end
+ end
+ end
+ end
+end
+
+function blocks.save(name,tag,buffer) -- wrong, not yet adapted
+ local data = buffers.data[buffer]
+ local tags = aux.settings_to_set(tag)
+ local plus, minus = false, false
+ if tags['+'] then plus = true tags['+'] = nil end
+ if tags['-'] then minus = true tags['-'] = nil end
+ tobesaved[#tobesaved+1] = {
+ metadata = {
+ name = name,
+ tags = tags,
+ plus = plus,
+ minus = minus,
+ },
+ references = {
+ section = structure.sections.currentid(),
+ },
+ data = data or "error",
+ }
+ local allstate = states[name].all
+ if not next(tags) then
+ if allstate ~= "hide" then
+ blocks.print(name,data)
+ elseif plus then
+ blocks.print(name,data,true)
+ end
+ else
+ local sn = states[name]
+ for tag, _ in pairs(tags) do
+ if sn[tag] == nil then
+ if allstate ~= "hide" then
+ blocks.print(name,data)
+ break
+ end
+ elseif sn[tag] ~= "hide" then
+ blocks.print(name,data)
+ break
+ end
+ end
+ end
+ buffers.data[buffer] = nil
+end
diff --git a/Master/texmf-dist/tex/context/base/strc-blk.mkii b/Master/texmf-dist/tex/context/base/strc-blk.mkii
new file mode 100644
index 00000000000..c4e38a607b5
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/strc-blk.mkii
@@ -0,0 +1,548 @@
+%D \module
+%D [ file=strc-blk, % split off core-buf.tex
+%D version=2000.01.05,
+%D title=\CONTEXT\ Structure Macros,
+%D subtitle=Blockmoves,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+% investigate etex's \readline and \scantokens
+
+\writestatus{loading}{ConTeXt Structure Macros / Blockmoves}
+
+\unprotect
+
+\def\blockversion {1996.03.10}
+
+\def\@@blockerrormessage
+ {\showmessage\m!textblocks1\empty
+ \global\let\@@blockerrormessage\relax}
+
+\def\thisisblockversion#1%
+ {\doifnot\blockversion{#1}{\@@blockerrormessage\endinput}}
+
+\def\stopcopyingblocks
+ {\ifcopyingblocks
+ \immediate\closeout\outblocks
+ \copyblockfile
+ \global\copyingblocksfalse
+ \fi}
+
+\def\dodosetblockcounters[#1]#2%
+ {\expanded{\setvalue{\??se\s!old#2}{\@@filterheadpart[#1]}}%
+ \doifnot{#2}\lastsection
+ {\expanded{\dodosetblockcounters[\@@filtertailpart[#1]]}%
+ {\getvalue{\??se#2\c!after}}}} % ????
+
+\def\dosetblockcounters[#1]%
+ {\ifblockpermitted
+ \expanded{\dodosetblockcounters[\@@filtersecondpart[#1]]}\firstsection
+ \expanded{\setsectiontype[\@@filterfirstpart[#1]]}%
+ \def\@@sectionvalue##1{\getvalue{\??se\s!old##1}}%
+ \let\@@sectionconversion\secondoftwoarguments
+ \fi}
+
+\let\blockstatus\empty
+
+\def\setblockcounters
+ {\ifx\blockstatus\empty \else
+ \@EA\dosetblockcounters\@EA[\blockstatus]%
+ \fi}
+
+\def\getblockstatus#1%
+ {\dosetfilterlevel{\@@bscriterium}\empty
+ \expanded{\doifblklevelelse[#1\sectionseparator\sectionseparator0]}
+ {\global\blockpermittedtrue}
+ {\global\blockpermittedfalse}%
+ \def\blockstatus{#1}}
+
+\def\setupblockparameters
+ {\dodoubleargument\dosetupblockparameters}
+
+\def\dosetupblockparameters[#1][#2]%
+ {\getparameters[\??tb#1][#2]}
+
+\def\blockparameter#1#2%
+ {\@EA\csname\ifcsname\??tb#1#2\endcsname\??tb#1#2\else\s!empty\fi\endcsname}
+
+\ifx\outblocks\undefined \newwrite\outblocks \fi
+\ifx\inpblocks\undefined \newread \inpblocks \fi
+\ifx\tmpblocks\undefined \newwrite\tmpblocks \fi
+\ifx\blockbox \undefined \newbox \blockbox \fi
+
+\newif\ifcopyingblocks
+\newif\ifblockpermitted
+\newif\iftmpblockstarted
+\newif\ifoldinbijlagen
+\newif\ifdoingblocks
+
+\newcount\blocklevel
+
+\def\setblocklevel#1% sign
+ {\global\advance\blocklevel #11
+ \ifcase\blocklevel\doingblocksfalse\else\doingblockstrue\fi}
+
+\def\opentmpblock
+ {\immediate\openout\tmpblocks\TEXbufferfile{\f!utilityfilename\the\blocklevel}}
+
+\def\closetmpblock
+ {\immediate\write\tmpblocks{}% een lege regel is handig voor \par commando's
+ \immediate\closeout\tmpblocks}
+
+\def\writetmpblock#1%
+ {\iftmpblockstarted
+ \immediate\write\tmpblocks{#1}%
+ \else
+ \doifsomething{#1}
+ {\tmpblockstartedtrue
+ \immediate\write\tmpblocks{\string#1}}%
+ \fi}
+
+\def\startcopyingblocks
+ {\global\copyingblocksfalse}
+
+\def\checkcopyingblocks
+ {\ifcopyingblocks
+ \else
+ \immediate\openout\outblocks\f!utilityfilename.\f!blockextension%
+ \immediate\write\outblocks{\string\thisisblockversion{\blockversion}}%
+ \immediate\write\outblocks{\string\thisissectionseparator{\sectionseparator}}%
+ \global\copyingblockstrue
+ \fi}
+
+\def\stopcopyingblocks
+ {\ifcopyingblocks
+ \immediate\closeout\outblocks
+ \copyblockfile
+ \global\copyingblocksfalse
+ \fi}
+
+\def\nomoreblocks
+ {\stopcopyingblocks}
+
+\def\copyblockfile
+ {\ifcopyingblocks
+ \begingroup
+ \showmessage\m!textblocks2{\jobname.\f!blockextension}%
+ \openlocin\inpblocks{\f!utilityfilename.\f!blockextension}%
+ \immediate\openout\outblocks\jobname.\f!blockextension
+ \setupcopyblock
+ \catcode`\^^M=\@@ignore\relax
+ \def\copynextline
+ {\read\inpblocks to \!!stringa
+ \immediate\write\outblocks{\!!stringa}%
+ \ifeof\inpblocks\else\expandafter\copynextline\fi}%
+ \copynextline
+ \immediate\closein\inpblocks
+ \immediate\closeout\outblocks
+ \immediate\openout\tmpblocks\f!utilityfilename.\f!blockextension
+ \immediate\closeout\tmpblocks
+ \endgroup
+ \fi}
+
+\def\loadallblocks#1%
+ {\beginrestorecatcodes
+ \catcode`\^^M=\@@endofline\relax
+ \readjobfile{#1.\f!blockextension}
+ {\showmessage\m!textblocks3{#1.\f!blockextension}}
+ {\showmessage\m!textblocks4\empty}%
+ \endrestorecatcodes}
+
+\def\setupcopyblock
+ {\setcatcodetable\vrbcatcodes
+ \obeylines}
+
+\def\writeoutblocks
+ {\immediate\write\outblocks}
+
+\long\def\processnextblocklineAB#1% #2#3%
+ {\defconvertedargument\next{#1 }%
+ \doifinstringelse\endofblockA\next
+ \firstoftwoarguments
+ {\doifinstringelse\endofblockB\next
+ \firstoftwoarguments\secondoftwoarguments}}
+
+\bgroup
+\obeylines
+\long\gdef\copyblocklineAB#1
+ {\processnextblocklineAB{#1}\closeblock{\writeoutblocks{#1}\writetmpblock{#1}\copyblocklineAB}}
+\long\gdef\skipblocklineAB#1
+ {\processnextblocklineAB{#1}\closeblock\skipblocklineAB}
+\egroup
+
+\long\def\processnextblockline#1% #2#3%
+ {\defconvertedargument\next{#1 }%
+ \ifx\next\emptybufferline
+ \expandafter\secondoftwoarguments% #3%
+ \else
+ \emptybufferlinefalse
+ \doifinstringelse\endofblock\next
+ {\expandafter\firstoftwoarguments }% #2}
+ {\expandafter\secondoftwoarguments}% #3}%
+ \fi}
+
+\bgroup
+\obeylines
+\long\gdef\copyblockline#1
+ {\processnextblockline{#1}\closeblock{\writeoutblocks{#1}\writetmpblock{#1}\copyblockline}}
+\long\gdef\skipblockline#1
+ {\processnextblockline{#1}\closeblock\skipblockline}
+\egroup
+
+\def\skipblock#1%
+ {\checkcopyingblocks
+ \defconvertedcommand\endofblock{\string\thiswasblock{#1}}% command expands once !
+ \let\openblock\begingroup
+ \let\closeblock\endgroup
+ \openblock
+ \setupcopyblock
+ \skipblockline}
+
+\let\doafterblock \gobbletwoarguments
+\let\dobeforeblock\gobbletwoarguments
+
+\def\thisisblock#1%
+ {\executeifdefined{\s!thisisblock#1}{\skipblock{#1}}}
+
+\def\thiswasblock#1%
+ {\getvalue{\s!thiswasblock#1}}
+
+\def\saveblock#1#2%
+ {\checkcopyingblocks
+ \obeylines
+ \@EA\defconvertedcommand\@EA\endofblockA\@EA{\@EA\string\csname\e!end#1\endcsname}%
+ \defconvertedcommand\endofblockB{\string\endblock[#1]}% % MULTI LINGUAL MAKEN
+ \def\openblock
+ {\dobeforeblock{#1}{#2}%
+ \opentmpblock
+ \begingroup
+ \makesectionformat
+ \immediate\write\outblocks{}%
+ \immediate\write\outblocks{\string\thisisblock{#1}{\sectionformat}[#2]}}%
+ \def\closeblock
+ {\immediate\write\outblocks{}% handig voor \par commando's
+ \immediate\write\outblocks{\string\thiswasblock{#1}}%
+ \endgroup
+ \closetmpblock
+ \doafterblock{#1}{#2}%
+ \egroup}%
+ \openblock
+ \setupcopyblock
+ \copyblocklineAB}
+
+\def\copyblock
+ {\let\opentmpblock\empty
+ \let\closetmpblock\empty
+ \let\writetmpblock\gobbleoneargument
+ \saveblock}
+
+\def\loadoneblock
+ {\edef\blockfilename{\TEXbufferfile{\f!utilityfilename\the\blocklevel}}%
+ \setblocklevel+%
+ \readjobfile\blockfilename\donothing\donothing
+ \setblocklevel-}%
+
+\def\dodefineblock[#1]%
+ {\bypassblock[#1]%
+ \keepblocks[#1]%
+ \setupblock
+ [#1]
+ [\c!before=\blank,
+ \c!after=\blank,
+ \c!inner=,
+ \c!style=,
+ \c!file=\jobname]}
+
+% \def\defineblock
+% {\dosingleargumentwithset\dodefineblock}
+
+\def\defineblock
+ {\dosingleargument\dodefineblock}
+
+\def\dosetupblock[#1][#2]%
+ {\getparameters[\??tb#1][#2]}
+
+\def\setupblock
+ {\dodoubleargumentwithset\dosetupblock}
+
+\def\bypassblock[#1]%
+ {\setvalue{\s!thisisblock#1}##1[##2]{\skipblock{#1}}}
+
+\def\dohideblock[#1][#2][#3]%
+ {\doifassignmentelse{#3}
+ {\dodohideblock[#1][#2][][#3]}
+ {\dodohideblock[#1][#2][#3][]}}
+
+\def\dodohideblock[#1][#2][#3][#4]%
+ {\doifelsenothing{#2}
+ {\global\blockpermittedfalse
+ \edef\blocktitle{#1}}
+ {\doifelsenothing{#3}
+ {\global\blockpermittedtrue
+ \edef\blocktitle{#1}}
+ {\doifcommonelse{#2}{#3}
+ {\global\blockpermittedfalse
+ \edef\blocktitle{#1:#2}}
+ {\global\blockpermittedtrue
+ \edef\blocktitle{#1:#3}}}}%
+ \ifblockpermitted
+ \showwarning\m!textblocks5\blocktitle
+ \def\next
+ {\def\dobeforeblock####1####2%
+ {\begingroup}%
+ \def\doafterblock####1####2%
+ {\endgroup
+ \doexecuteloadedblock{#1}{#4}}%
+ \saveblock{#1}{#3#4}}%
+ \else
+ \doifinsetelse{+}{#3}
+ {\showwarning\m!textblocks6\blocktitle
+ \def\next
+ {\def\dobeforeblock####1####2%
+ {\begingroup
+ \visiblefalse}%
+ \def\doafterblock####1####2%
+ {{\setbox0\vbox
+ {\catcode`\^^M=\@@endofline\relax
+ \loadoneblock
+ \par}}%
+ \endgroup}%
+ \saveblock{#1}{#3#4}}}%
+ {\showwarning\m!textblocks7\blocktitle
+ \def\next
+ {\def\dobeforeblock####1####2%
+ {\begingroup
+ \globaldefs\minusone}%
+ \def\doafterblock####1####2%
+ {\endgroup}%
+ \copyblock{#1}{#3#4}}}%
+ \fi
+ \next}
+
+\def\dohideblocks[#1][#2]%
+ {\def\docommand##1%
+ {\setvalue{\e!begin##1}%
+ {\bgroup\obeylines\dotripleempty\dohideblock[##1][#2]}}%
+ \processcommalist[#1]\docommand}
+
+\def\hideblocks
+ {\dodoubleempty\dohideblocks}
+
+\def\doexecuteloadedblock#1#2%
+ {\blockpermittedtrue % ?
+ \bgroup % before \c!before (think of: \c!before=\startitemize)
+ \dosetupblockparameters[#1][#2]% voor 'voor'?
+ \getvalue{\??tb#1\c!before}%
+ \dostartattributes{\??tb#1}\c!style\c!color\empty
+ \visibletrue
+ \catcode`\^^M=\@@endofline\relax
+ \getvalue{\??tb#1\c!inner}%
+ \ignorespaces
+ \loadoneblock
+ % \par moved
+ \dostopattributes
+ \getvalue{\??tb#1\c!after}%
+ \par
+ \egroup}
+
+\def\dokeepblock[#1][#2][#3]%
+ {\doifassignmentelse{#3}
+ {\dodokeepblock[#1][#2][][#3]}
+ {\dodokeepblock[#1][#2][#3][]}}
+
+\def\dodokeepblock[#1][#2][#3][#4]%
+ {\doifelsenothing{#2}
+ {\global\blockpermittedtrue
+ \edef\blocktitle{#1}}
+ {\doifcommonelse{#2}{#3}
+ {\global\blockpermittedtrue
+ \edef\blocktitle{#1:#2}}
+ {\doifinsetelse\v!all{#2}
+ {\doifelsenothing{#3}
+ {\global\blockpermittedtrue
+ \edef\blocktitle{#1}}
+ {\global\blockpermittedfalse
+ \edef\blocktitle{#1:#3}}}
+ {\global\blockpermittedfalse
+ \doifelsenothing{#3}
+ {\edef\blocktitle{#1}}
+ {\edef\blocktitle{#1:#3}}}}}%
+ \ifblockpermitted
+ \showwarning\m!textblocks8\blocktitle
+ \def\dobeforeblock##1##2%
+ {\begingroup}%
+ \def\doafterblock##1##2%
+ {\endgroup
+ \doexecuteloadedblock{#1}{#4}}%
+ \else
+ \showwarning\m!textblocks9\blocktitle
+ \fi
+ \saveblock{#1}{#3#4}}
+
+\def\dokeepblocks[#1][#2]%
+ {\def\docommand##1%
+ {\setvalue{\e!begin##1}%
+ {\bgroup\obeylines\dotripleempty\dokeepblock[##1][#2]}}%
+ \processcommalist[#1]\docommand}
+
+\def\keepblocks
+ {\dodoubleempty\dokeepblocks}
+
+\newconditional\processblockstatus
+\newconditional\dummyblockstatus
+\newconditional\blockassignmentstatus
+
+\def\dodouseblock#1#2#3#4%
+ {\getblockstatus{#2}%
+ \ifblockpermitted
+ \setfalse\dummyblockstatus
+ \doifassignmentelse{#3}
+ {\settrue \blockassignmentstatus}
+ {\setfalse\blockassignmentstatus}%
+ \doifelsenothing{#4}
+ {\edef\blocktitle{#1}}
+ {\ifconditional\blockassignmentstatus
+ \edef\blocktitle{#1}%
+ \else
+ \doifnotcommon{#3}{#4}
+ {\ifconditional\processblockstatus
+ \settrue\dummyblockstatus
+ \else
+ \global\blockpermittedfalse
+ \fi}%
+ \edef\blocktitle{#1:#3}%
+ \fi}%
+ \else
+ \edef\blocktitle{#1}%
+ \fi
+ \ifblockpermitted
+ \setblocklevel+%
+ \ifconditional\blockassignmentstatus \else
+ \doifinset{-}{#3}{\settrue\dummyblockstatus}%
+ \fi
+ \ifconditional\dummyblockstatus
+ \showwarning\m!textblocks{10}\blocktitle
+ \setvalue{\s!thiswasblock#1}%
+ {\removeunwantedspaces
+ \par
+ \egroup
+ \setblocklevel-}%
+ \def\next
+ {\setbox0\vbox\bgroup
+ \ifconditional\blockassignmentstatus
+ \dosetupblockparameters[#1][#3]%
+ \fi}%
+ \else
+ \showwarning\m!textblocks{11}\blocktitle
+ \setvalue{\s!thiswasblock#1}%
+ {\removeunwantedspaces
+ % \par moved
+ \dostopattributes
+ \getvalue{\??tb#1\c!after}%
+ \par
+ \egroup
+ \setblocklevel-}%
+ \def\next
+ {\bgroup
+ \ifconditional\blockassignmentstatus
+ \dosetupblockparameters[#1][#3]%
+ \fi
+ \getvalue{\??tb#1\c!before}%
+ \dostartattributes{\??tb#1}\c!style\c!color\empty
+ \visibletrue
+ \getvalue{\??tb#1\c!inner}%
+ \ignorespaces}%
+ \fi
+ \else
+ \def\next
+ {\showwarning\m!textblocks{12}\blocktitle
+ \skipblock{#1}}%
+ \fi
+ \next}
+
+\def\douseblock[#1][#2]%
+ {\setvalue{\s!thisisblock#1}##1[##2]{\dodouseblock{#1}{##1}{##2}{#2}}}
+
+\def\dodouseblocks[#1][#2]%
+ {\def\docommand##1%
+ {\douseblock[##1][#2]}%
+ \processcommalist[#1]\docommand
+ \dogetcommalistelement1\from#1\to\commalistelement
+ \doifdefined{\??tb\commalistelement\c!file}
+ {\loadallblocks{\getvalue{\??tb\commalistelement\c!file}}}%
+ \endgroup}
+
+\def\douseblocks
+ {\begingroup
+ \doassign[\??bs][\c!criterium=\v!all]%
+ \dodoubleempty\dodouseblocks}
+
+\def\useblocks
+ {\setfalse\processblockstatus\douseblocks}
+
+\def\processblocks
+ {\settrue \processblockstatus\douseblocks}
+
+\def\doselectblocks[#1][#2][#3]%
+ {\begingroup
+ \doifelsenothing{#3}
+ {\getparameters[\??bs][\c!criterium=\v!all,#2]%
+ \dodouseblocks[#1][]}
+ {\getparameters[\??bs][\c!criterium=\v!all,#3]%
+ \dodouseblocks[#1][#2]}}%
+
+\def\selectblocks
+ {\dotripleempty\doselectblocks}
+
+\def\beginblock[#1]% % we also check \endblock[..]
+ {\getvalue{\e!begin#1}}
+
+\def\forceblocks[#1]%
+ {\def\docommand##1%
+ {\setvalue{\e!begin##1}%
+ {\setblocklevel+\bgroup
+ \dodoubleempty\doforceblock[##1]}%
+ \setvalue{\e!end##1}%
+ {\dostopattributes
+ \getvalue{\??tb##1\c!after}%
+ \egroup\setblocklevel-}}%
+ \processcommalist[#1]\docommand}
+
+\def\doforceblock[#1][#2]%
+ {\doifassignmentelse{#2}
+ {\settrue \blockassignmentstatus}
+ {\setfalse\blockassignmentstatus}%
+ \ifconditional\blockassignmentstatus
+ \dosetupblockparameters[#1][#2]%
+ \fi
+ \getvalue{\??tb#1\c!before}%
+ \dostartattributes{\??tb#1}\c!style\c!color\empty
+ \getvalue{\??tb#1\c!inner}%
+ \ignorespaces}
+
+\def\bypassblocks[#1]%
+ {\def\docommand##1%
+ {\setvalue{\e!begin##1}%
+ {\setblocklevel+\bgroup
+ \obeylines % here, since we look ahead
+ \dodoubleempty\dobypassblock[##1]}%}%
+ \setvalue{\e!end##1}%
+ {}}%
+ \processcommalist[#1]\docommand}
+
+\def\dobypassblock[#1][#2]%
+ {\def\closeblock
+ {\egroup\setblocklevel-}%
+ \checkcopyingblocks
+ \obeylines
+ \@EA\defconvertedcommand\@EA\endofblockA\@EA{\@EA\string\csname\e!end#1\endcsname}%
+ \defconvertedcommand\endofblockB{\string\endblock[#1]} % MULTI LINGUAL MAKEN
+ \setupcopyblock
+ \skipblocklineAB}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/strc-blk.mkiv b/Master/texmf-dist/tex/context/base/strc-blk.mkiv
new file mode 100644
index 00000000000..90d2ff9ab05
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/strc-blk.mkiv
@@ -0,0 +1,110 @@
+%D \module
+%D [ file=strc-blk,
+%D version=2008.10.20,
+%D title=\CONTEXT\ Structure Macros,
+%D subtitle=Blockmoves,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA-ADE / Hans Hagen]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Structure Macros / Blockmoves}
+
+\registerctxluafile{strc-blk}{1.001}
+
+\unprotect
+
+% we run on top of buffers and sections
+%
+% todo: prefix numbers (needs further integration elsewhere)
+% check functionality
+% alternative files (needs further integration elsewhere)
+
+\def\blockparameter#1#2{\ifcsname\??tb#1#2\endcsname\csname\??tb#1#2\endcsname\fi}
+
+\def\setupblockparameters{\dodoubleargument \dosetupblock} % fast one (for compatibility)
+\def\setupblock {\dodoubleargumentwithset\dosetupblock} % handles set
+
+\def\dosetupblock[#1]{\getparameters[\??tb#1]} % [#1][#2]}
+
+\def\defineblock
+ {\dosingleargument\dodefineblock}
+
+\def\dodefineblock[#1]%
+ {\getparameters
+ [\??tb#1]
+ [\c!before=\blank,
+ \c!after=\blank,
+ \c!inner=,
+ \c!style=,
+ \c!file=]% todo
+ \ctxlua{structure.blocks.define("#1")}%
+ \setvalue{\e!begin#1}{\dodoubleempty\dobeginofblock[#1]}%
+ \letvalue{\e!end#1}\relax}
+
+\long\def\dobeginofblock[#1][#2]%
+ {\normalexpanded{\noexpand\dodowithbuffer{@block@}{\e!begin#1}{\e!end#1}}
+ {}{\ctxlua{structure.blocks.save("#1","#2","@block@")}}}% before after
+
+\def\dostarthiddenblock
+ {\startnointerference
+ \dostartnormalblock}
+
+\def\dostophiddenblock
+ {\dostopnormalblock
+ \stopnointerference}
+
+% order matters: \c!before (think of: \c!before=\startitemize)
+
+\let\doblocksetups\gobbleoneargument
+
+\def\dostartnormalblock#1% name
+ {\bgroup
+\visibletrue
+ \edef\currentblock{#1}%
+ \doblocksetups\currentblock
+ \let\doblocksetups\gobbleoneargument
+ \blockparameter\currentblock\c!before
+ \dosetfontattribute{\??tb\currentblock}\c!style
+ \dosetcolorattribute{\??tb\currentblock}\c!color
+ \blockparameter\currentblock\c!inner
+ \ignorespaces}
+
+\def\dostopnormalblock
+ {\removeunwantedspaces
+ \blockparameter\currentblock\c!after
+ \par % todo: alternative = text, paragraph
+ \egroup}
+
+\def\dosetblockstate[#1][#2][#3]% state name tag
+ {\ctxlua{structure.blocks.setstate("#1","#2","#3")}}
+
+\def\doselectblocks[#1][#2][#3][#4]% state name tag setups
+ {\begingroup
+ \doifassignmentelse{#3}
+ {\getparameters[\??tb\??tb][\c!criterium=\v!text,#3]%
+ \def\doblocksetups##1{\getparameters[\??tb##1][#3]}%
+ \ctxlua{structure.blocks.select("#1","#2","","\@@tb@@tbcriterium")}}
+ {\getparameters[\??tb\??tb][\c!criterium=\v!text,#4]%
+ \def\doblocksetups##1{\getparameters[\??tb##1][#4]}%
+ \ctxlua{structure.blocks.select("#1","#2","#3","\@@tb@@tbcriterium")}}%
+ \endgroup}
+
+% hide: save, if [+] also hidden execute
+% keep: save and normal execute
+
+\def\hideblocks{\dotripleempty\dosetblockstate[hide]}
+\def\keepblocks{\dotripleempty\dosetblockstate[keep]}
+
+% use : normal execute unless [-]
+% process: hidden execute unless [-]
+% select : idem use
+
+\def\useblocks {\doquadrupleempty\doselectblocks[use]}
+\def\processblocks{\doquadrupleempty\doselectblocks[process]}
+\def\selectblocks {\doquadrupleempty\doselectblocks[use]}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/strc-def.mkiv b/Master/texmf-dist/tex/context/base/strc-def.mkiv
new file mode 100644
index 00000000000..2395ddf6c67
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/strc-def.mkiv
@@ -0,0 +1,306 @@
+%D [ file=strc-def,
+%D version=2008.10.20,
+%D title=\CONTEXT\ Structure Macros,
+%D subtitle=Definitions,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA-ADE / Hans Hagen]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Structure Macros / Definitions}
+
+% \registerctxluafile{strc-def}{1.001}
+
+\unprotect
+
+% \def\installparameterhandler#1#2#3#4#5#6#7#8#9{%
+% \def#3##1{\csname#5{#1#2}##1\endcsname}%
+% \def#4##1{#6{#1#2}##1}%
+% %
+% \def#5##1##2{\ifcsname##1##2\endcsname##1##2\else\expandafter#7\csname##1\s!parent\endcsname##2\fi}%
+% \def#6##1##2{\ifcsname##1##2\endcsname ##1\else\expandafter#8\csname##1\s!parent\endcsname##2\fi}%
+% %
+% \def#7##1##2{\ifx##1\relax\s!empty\else#5##1##2\fi}%
+% \def#8##1##2{\ifx##1\relax \else#6##1##2\fi}%
+% %
+% \def#9##1##2% style color
+% {\edef\fontattributehash {#4##1}%
+% \edef\colorattributehash{#4##2}%
+% \ifx\fontattributehash \empty\else\dosetfontattribute \fontattributehash ##1\fi
+% \ifx\colorattributehash\empty\else\dosetcolorattribute\colorattributehash##2\fi}%
+% %
+% }
+
+% \installparameterhandler
+% \empty
+% \@@framed
+% \framedparameter
+% \framedparameterhash
+% \doframedparameter
+% \doframedparameterhash
+% \doframedparentparameter
+% \doframedparentparameterhash
+% \dosetframedattributes
+
+
+% \setupheads
+
+\setupstructureheads[%
+ %\c!after=,
+ %\c!align=,
+ %\c!aligntitle=,
+ \c!alternative=\v!normal,
+ %\c!before=,
+ %\c!color=,
+ \c!command=\normalplacehead,
+ \c!continue=\v!yes,
+ %\c!coupling=,
+ %\c!deepnumbercommand=,
+ %\c!deeptextcommand=,
+ %\c!default=,
+ \c!distance=\!!zeropoint,
+ \c!expansion=\v!no,
+ %\c!file=,
+ %\c!footer=,
+ %\c!grid=,
+ \c!hang=\v!none,
+ %\c!header=,
+ \c!incrementnumber=\v!yes,
+ \c!indentnext=\v!no,
+ %\c!label=,
+ \c!limittext=\v!yes,
+ \c!margin=\zeropoint,
+ %\c!margintext=,
+ \c!number=\v!yes,
+ \c!numbercolor=\structureheadparameter\c!color,
+ %\c!numbercommand=,
+ \c!numberstyle=\structureheadparameter\c!style,
+ \c!ownnumber=\v!no,
+ %\c!page=,
+ \c!placehead=\v!yes,
+ \c!sectionconversionset=\s!default,
+ \c!sectionnumber=\v!yes,
+ %\c!sectionsegments=,
+ \c!sectionseparatorset=\s!default,
+ \c!sectionset=\v!all,
+ %\c!sectionstopper=,
+ %\c!strut=,
+ %\c!style=,
+ %\c!text=,
+ \c!textcolor=\structureheadparameter\c!color,
+ %\c!textcommand=,
+ \c!textstyle=\structureheadparameter\c!style,
+ %\c!tolerance=
+ ]
+
+% \setupstructureblock[appendix][sectionconversionset=appendix]
+% \setupstructurehead[chapter][sectionconversionset=\structureblockparameter\c!sectionconversionset] % \structureblockparameter]
+
+% \definestructureresetset[default][0,1,1,0][1] % this will not reset parts and subsections
+% \setuphead[part][sectionresetset=default]
+% \starttext
+% \placelist[chapter,section,subsection][criterium=all,width=3cm]
+% \part{first} \chapter{alpha} \section{a} \section{b} \subsection{x} \subsection{y} \chapter{beta}
+% \part{second} \chapter{gamma} \section{a} \section{b} \subsection{x} \subsection{y} \chapter{delta}
+% \stoptext
+
+\definestructureseparatorset [\s!default] [] [.]
+\definestructureconversionset [\s!default] [] [numbers]
+\definestructureresetset [\s!default] [] [1]
+\definestructureprefixset [\s!default] [section-1,section-2,section-3] []
+
+\definestructureprefixset [\v!all] [section-1,section-2,section-3,section-4,section-5,section-6,section-7,section-8] []
+
+\definestructureprefixset [\v!part] [section-1] []
+\definestructureprefixset [\v!chapter] [section-2] []
+
+\definestructureseparatorset [\v!appendix:\s!default] [] [.]
+\definestructureconversionset [\v!appendix:\s!default] [Romannumerals,Characters] [numbers]
+\definestructureresetset [\v!appendix:\s!default] [] [0]
+
+% \definesectionblock
+
+\definestructureblock [\v!frontpart] [\v!frontmatter] [\c!number=\v!no]
+\definestructureblock [\v!bodypart] [\v!bodymatter] [\c!number=\v!yes]
+\definestructureblock [\v!appendix] [\v!appendices] [\c!number=\v!yes]
+\definestructureblock [\v!backpart] [\v!backmatter] [\c!number=\v!no]
+
+\setstructureblock [\v!bodypart] % default
+
+\appendtoks
+ \setstructureblock [\v!bodypart]% default
+\to \everyjob
+
+% \definesection
+
+\definestructuresection[\s!section-1] % part
+\definestructuresection[\s!section-2] % chapter
+\definestructuresection[\s!section-3] % section
+\definestructuresection[\s!section-4] % subsection
+\definestructuresection[\s!section-5] % subsubsection
+\definestructuresection[\s!section-6] % subsubsubsection
+\definestructuresection[\s!section-7] % subsubsubsubsection
+
+% \definehead
+
+\definestructurehead
+ [\v!part]
+ [\c!section=\s!section-1]
+
+\definestructurehead
+ [\v!chapter]
+ [\c!section=\s!section-2]
+
+\definestructurehead
+ [\v!section]
+ [\c!section=\s!section-3]
+
+\definestructurehead
+ [\v!subsection]
+ [\c!section=\s!section-4,
+ \c!default=\v!section]
+
+\definestructurehead
+ [\v!subsubsection]
+ [\c!section=\s!section-5,
+ \c!default=\v!subsection]
+
+\definestructurehead
+ [\v!subsubsubsection]
+ [\c!section=\s!section-6,
+ \c!default=\v!subsubsection]
+
+\definestructurehead
+ [\v!subsubsubsubsection]
+ [\c!section=\s!section-7,
+ \c!default=\v!subsubsubsection]
+
+\definestructurehead
+ [\v!title]
+ [\c!coupling=\v!chapter,
+ \c!default=\v!chapter,
+ \c!incrementnumber=\v!no]
+
+\definestructurehead
+ [\v!subject]
+ [\c!coupling=\v!section,
+ \c!default=\v!section,
+ \c!incrementnumber=\v!no]
+
+\definestructurehead
+ [\v!subsubject]
+ [\c!coupling=\v!subsection,
+ \c!default=\v!subsection,
+ \c!incrementnumber=\v!no]
+
+\definestructurehead
+ [\v!subsubsubject]
+ [\c!coupling=\v!subsubsection,
+ \c!default=\v!subsubsection,
+ \c!incrementnumber=\v!no]
+
+\definestructurehead
+ [\v!subsubsubsubject]
+ [\c!coupling=\v!subsubsubsection,
+ \c!default=\v!subsubsubsection,
+ \c!incrementnumber=\v!no]
+
+\definestructurehead
+ [\v!subsubsubsubsubject]
+ [\c!coupling=\v!subsubsubsubsection,
+ \c!default=\v!subsubsubsubsection,
+ \c!incrementnumber=\v!no]
+
+\setupstructurehead
+ [\v!part]
+ [\c!placehead=\v!no]
+
+\setupstructurehead
+ [\v!chapter]
+ [\v!appendix\c!label=\v!appendix,
+ \v!bodypart\c!label=\v!chapter] % bijlageconversie=\Character
+
+\setupstructurehead
+ [\v!section]
+ [\v!appendix\c!label=\v!section,
+ \v!bodypart\c!label=\v!section] % bijlageconversie=\Character
+
+\setupstructurehead
+ [\v!subsection]
+ [\v!appendix\c!label=\v!subsection,
+ \v!bodypart\c!label=\v!subsection] % bijlageconversie=\Character
+
+\setupstructurehead
+ [\v!subsubsection]
+ [\v!appendix\c!label=\v!subsubsection,
+ \v!bodypart\c!label=\v!subsubsection] % bijlageconversie=\Character
+
+% \setuphead
+
+\setupstructurehead
+ [\v!part,\v!chapter]
+ [%\c!align=,
+ %\c!indentnext=\v!no,
+ \c!continue=\v!no,
+ \c!page=\v!right,
+ \c!header=,
+ \c!style=\tfc,
+ \c!distance=.75em,
+ \c!before={\blank[2*\v!big]},
+ \c!after={\blank[2*\v!big]}]
+
+\setupstructurehead
+ [\v!section]
+ [%\c!align=,
+ %\c!indentnext=\v!no,
+ \c!style=\tfa,
+ \c!distance=.75em,
+ \c!before={\blank[2*\v!big]},
+ \c!after=\blank]
+
+\setupstructurehead % nieuw
+ [\v!subsection]
+ [\c!page=]
+
+% brrr
+
+% \definestructurecounter[\v!page][\c!start=1] % todo: setup
+
+% lists
+
+\definecombinedlist
+ [\v!content]
+ [\v!part,
+ \v!chapter,
+ \v!section,
+ \v!subsection,
+ \v!subsubsection,
+ \v!subsubsubsection,
+ \v!subsubsubsubsection]
+ [\c!level=\v!subsubsubsubsection,
+ \c!criterium=\v!local]
+
+\setuplist
+ [\v!part]
+ [\c!before={\blank\page[\v!preference]},
+ \c!after=\blank,
+ \c!label=\v!yes,
+ \c!distance=1em]
+
+\setuplist
+ [\v!chapter]
+ [\c!before={\blank\page[\v!preference]},
+ \c!after=]
+
+\setuplist [\v!part] [\c!width=0em]
+\setuplist [\v!chapter] [\c!width=2em]
+\setuplist [\v!section] [\c!width=3em]
+\setuplist [\v!subsection] [\c!width=4em]
+\setuplist [\v!subsubsection] [\c!width=5em]
+\setuplist [\v!subsubsubsection] [\c!width=6em]
+\setuplist [\v!subsubsubsubsection] [\c!width=7em]
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/strc-des.lua b/Master/texmf-dist/tex/context/base/strc-des.lua
new file mode 100644
index 00000000000..0d548e61f44
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/strc-des.lua
@@ -0,0 +1,9 @@
+if not modules then modules = { } end modules ['strc-des'] = {
+ version = 1.001,
+ comment = "companion to strc-des.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- empty
diff --git a/Master/texmf-dist/tex/context/base/core-des.tex b/Master/texmf-dist/tex/context/base/strc-des.mkii
index f11721c9626..0c34e9ef9e0 100644
--- a/Master/texmf-dist/tex/context/base/core-des.tex
+++ b/Master/texmf-dist/tex/context/base/strc-des.mkii
@@ -1,7 +1,7 @@
%D \module
-%D [ file=core-des,
+%D [ file=strc-des,
%D version=1997.03.31,
-%D title=\CONTEXT\ Core Macros,
+%D title=\CONTEXT\ Structure Macros,
%D subtitle=Descriptions,
%D author=Hans Hagen,
%D date=\currentdate,
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Core Macros / Descriptions}
+\writestatus{loading}{ConTeXt Structure Macros / Descriptions}
%D In order to be more flexible with theorems Aditya Mahajan added
%D support for titles and endsymbols. At the same time we some more
@@ -89,7 +89,9 @@
{\dowritetolist
{\descriptionparameter\c!type:\descriptionparameter\c!list}
{}{#2}{\currentdescription}}%
- \rawreference\s!def{#1}{#2}} % brrr moet in #4
+ % beware: with footnotes #2 can be something messy but then #1 is
+ % empty anyway, so we have an extra safeguard
+ \doifsomething{#1}{\rawreference\s!def{#1}{#2}}} % brrr moet in #4
\setvalue{@@description\v!left}%
{\@@descriptionhang\@@descriptionleftpure\@@descriptionlefthang}
@@ -392,7 +394,7 @@
% which calls:
\def\@@makedescription#1%
- {\postponefootnotes % new, assumes grouping
+ {\postponenotes % new, assumes grouping
\def\currentdescription{#1}%
\executeifdefined
{@@description\descriptionparameter\c!location}
@@ -440,8 +442,8 @@
\def\definedescription
{\dodoubleemptywithset\dodefinedescription}
-\def\currentdescriptionnumber
- {\csname\??dd\currentdescription\??dd\c!number\endcsname}
+\def\currentdescriptionnumber {\csname\??dd\currentdescription\??dd\c!number\endcsname}
+\def\directcurrentdescriptionnumber#1{\csname\??dd #1\??dd\c!number\endcsname}
\ifx\preparednumber\undefined \let\preparednumber\empty \fi
@@ -570,7 +572,7 @@
\descriptionparameter\c!right}
\setvalue{\??dd\s!set\v!sub\s!sub\s!sub\c!number}#1%
- {\edef\@@descriptionnumber{\currentdescriptionnumber}%
+ {\edef\@@descriptionnumber{\directcurrentdescriptionnumber{#1}}%
\setnumber[\v!sub\v!sub\v!sub\@@descriptionnumber]}
\setvalue{\??dd\s!set\v!sub\s!sub\c!number}#1%
@@ -586,7 +588,7 @@
\setnumber[\@@descriptionnumber]}
\setvalue{\??dd\s!reset\v!sub\v!sub\v!sub\c!number}#1%
- {\edef\@@descriptionnumber{\currentdescriptionnumber}%
+ {\edef\@@descriptionnumber{\directcurrentdescriptionnumber{#1}}%
\resetnumber[\v!sub\v!sub\v!sub\@@descriptionnumber]}
\setvalue{\??dd\s!reset\v!sub\v!sub\c!number}#1%
@@ -601,25 +603,25 @@
{\getvalue{\??dd\s!reset\v!sub\c!number}{#1}%
\resetnumber[\@@descriptionnumber]}
-\setvalue{\??dd\e!next\v!sub\v!sub\v!sub\c!number}[#1]%
- {\edef\@@descriptionnumber{\currentdescriptionnumber}%
+\setvalue{\??dd\e!next\v!sub\v!sub\v!sub\c!number}#1#2%
+ {\edef\@@descriptionnumber{\directcurrentdescriptionnumber{#1}}%
\incrementnumber[\v!sub\v!sub\v!sub\@@descriptionnumber]%
- \rawreference\s!num{#1}{\getvalue{showdn\v!sub\v!sub\v!sub\c!number}}}%
+ \rawreference\s!num{#2}{\getvalue{showdn\v!sub\v!sub\v!sub\c!number}}}%
-\setvalue{\??dd\e!next\v!sub\v!sub\c!number}[#1]%
+\setvalue{\??dd\e!next\v!sub\v!sub\c!number}#1#2%
{\getvalue{\??dd\s!reset\v!sub\v!sub\v!sub\c!number}{#1}%
\incrementnumber[\v!sub\v!sub\@@descriptionnumber]%
- \rawreference\s!num{#1}{\getvalue{showdn\v!sub\v!sub\c!number}}}%
+ \rawreference\s!num{#2}{\getvalue{showdn\v!sub\v!sub\c!number}}}%
-\setvalue{\??dd\e!next\v!sub\c!number}[#1]%
+\setvalue{\??dd\e!next\v!sub\c!number}#1#2%
{\getvalue{\??dd\s!reset\v!sub\v!sub\c!number}{#1}%
\incrementnumber[\v!sub\@@descriptionnumber]%
- \rawreference\s!num{#1}{\getvalue{showdn\v!sub\c!number}}}%
+ \rawreference\s!num{#2}{\getvalue{showdn\v!sub\c!number}}}%
-\setvalue{\??dd\e!next\c!number}[#1]%
+\setvalue{\??dd\e!next\c!number}#1#2%
{\getvalue{\??dd\s!reset\v!sub\c!number}{#1}%
\incrementnumber[\@@descriptionnumber]%
- \rawreference\s!num{#1}{\getvalue{showdn\c!number}}}%
+ \rawreference\s!num{#2}{\getvalue{showdn\c!number}}}%
\def\dodosetupenumerations[#1][#2]%
{\getparameters[\??dd#1][#2]%
@@ -710,15 +712,15 @@
\def\defineenumeration
{\dotripleemptywithset\dodefineenumeration}
-\def\doresetenumerationnumber[#1][#2]%
+\def\doresetenumerationnumber[#1][#2]% name level
{\getvalue{\??dd\s!reset#2\c!number}{#1}}%
-\def\dosetenumerationnumber[#1][#2]%
+\def\dosetenumerationnumber[#1][#2]% name level
{\getvalue{\??dd\s!set#2\c!number}{#1}}%
-\def\donextenumerationnumber[#1][#2][#3]%
+\def\donextenumerationnumber[#1][#2][#3]% name level reference
{\pluscounter{\??dd\c!coupling#1}% new: global crosslinking
- \getvalue{\??dd\e!next#2\c!number}[#3]}%
+ \getvalue{\??dd\e!next#2\c!number}{#1}{#3}}%
\def\@@resetdescriptionclosesymbol
{\global\@EA\settrue\csname\??dd\currentdescription:mrk\endcsname
@@ -827,12 +829,19 @@
\def\do@@label[#1][#2]%
{\numberparameter{#1}\c!before
- \numberparameter{#1}\c!command
- {\doattributes{\@@thenumber{#1}}\c!headstyle\c!headcolor{\getvalue{\e!next#1}[#2]}}%
+ \numberparameter{#1}\c!command{\doattributes{\@@thenumber{#1}}\c!headstyle\c!headcolor{\getvalue{\e!next#1}[#2]}}%
\numberparameter{#1}\c!after}%
\def\do@@nextlabel[#1][#2]%
{\nextnumber[#1][\s!lab][#2]}
+
+\def\currentnumber[#1]% kan tekst hier weg ?
+ {\dotextprefix{\numberparameter{#1}\c!text}\sectionnumberonly[#1]}
+
+\def\nextnumber[#1][#2][#3]%
+ {\incrementnumber[#1]%
+ \currentnumber[#1]%
+ \rawreference{#2}{#3}{\composedsectionnumber}}
\setupdescriptions
[\c!location=\v!left,
diff --git a/Master/texmf-dist/tex/context/base/strc-des.mkiv b/Master/texmf-dist/tex/context/base/strc-des.mkiv
new file mode 100644
index 00000000000..2c3a0d6416c
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/strc-des.mkiv
@@ -0,0 +1,995 @@
+%D \module
+%D [ file=strc-blk,
+%D version=2008.10.20,
+%D title=\CONTEXT\ Structure Macros,
+%D subtitle=Descriptions,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA-ADE / Hans Hagen]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Structure Macros / Descriptions}
+
+\registerctxluafile{strc-des}{1.001}
+
+%D In order to be more flexible with theorems Aditya Mahajan added
+%D support for titles and endsymbols. At the same time we added more
+%D flexible support for inheriting numbers.
+%D
+%D \startbuffer
+%D \defineenumeration[one]
+%D \defineenumeration[two] [one]
+%D \defineenumeration[three] [number=one,style=slanted]
+%D \defineenumeration[four] [three]
+%D \defineenumeration[five] [three] [number=five]
+%D
+%D \startone test test 1 \stopone
+%D \starttwo test test 2 \stoptwo
+%D \startthree test test 3 \stopthree
+%D \startfour test test 4 \stopfour
+%D \startfive test test 1 \stopfive
+%D \stopbuffer
+%D
+%D \typebuffer \start \getbuffer \stop
+
+% list and titles are experimental
+%
+% \definedescription[test] [location=left,hang=4,headalign={right},distance=1em,list=test]
+% \defineenumeration[lemma][title=yes,right=:,textdistance=1em, location=top, titlestyle=\bs,list=lemma]
+% \defineenumeration[ammel][title=yes,right=:,textdistance=.5em,location=left,titlestyle=\it,width=9em]
+%
+% \placelist[enumeration:lemma]
+% \placelist[description:test][width=0pt]
+%
+% \starttest {something something something} \input zapf \stoptest
+% \startlemma {with a title of a certain length} \input tufte \stoplemma
+% \startammel {with a title} \input zapf \stopammel
+%
+% \defineenumeration[lemma][...]
+% \defineenumeration[titledlemma][lemma][title=yes,right=:,text=lemma,list=lemma]
+
+\unprotect
+
+% description parameters
+
+\def\descriptionparameter #1{\csname\dodescriptionparameter{\??dd\currentdescription }#1\endcsname}
+\def\descriptionmainparameter #1{\csname\dodescriptionparameter{\??dd\currentdescriptionmain }#1\endcsname}
+\def\descriptionnumberparameter#1{\csname\dodescriptionparameter{\??dd\currentdescriptionnumber}#1\endcsname}
+
+\def\detokenizeddescriptionparameter#1{\detokenize\expandafter\expandafter\expandafter{\csname\??dd\currentdescription#1\endcsname}}
+
+\def\dodescriptionparameter#1#2%
+ {\ifcsname#1#2\endcsname#1#2\else\expandafter\dodescriptionparentparameter\csname#1\s!parent\endcsname#2\fi}
+
+\def\dodescriptionparentparameter#1#2%
+ {\ifx#1\relax\s!empty\else\dodescriptionparameter#1#2\fi}
+
+% description hashes (needed for style/color)
+
+\def\descriptionparameterhash #1{\dodescriptionparameterhash{\??dd\currentdescription }#1}
+\def\descriptionmainparameterhash#1{\dodescriptionparameterhash{\??dd\currentdescriptionmain}#1}
+
+\def\dodescriptionparameterhash#1#2%
+ {\ifcsname#1#2\endcsname#1\else\expandafter\dodescriptionparentparameterhash\csname#1\s!parent\endcsname#2\fi}
+
+\def\dodescriptionparentparameterhash#1#2%
+ {\ifx#1\relax\else\dodescriptionparameterhash#1#2\fi}
+
+\def\dosetdescriptionattributes#1#2% style color
+ {\edef\fontattributehash {\descriptionparameterhash#1}%
+ \edef\colorattributehash{\descriptionparameterhash#2}%
+ \ifx\fontattributehash \empty\else\dosetfontattribute \fontattributehash #1\fi
+ \ifx\colorattributehash\empty\else\dosetcolorattribute\colorattributehash#2\fi}
+
+% typesetting code
+
+\newbox \descriptionheadbox
+\newskip \leftdescriptionskip
+\newskip \rightdescriptionskip
+\newdimen \descriptionsheadwidth % replaces \!!widtha
+\newdimen \descriptionsheaddistance % replaces \!!widthb
+
+\setvalue{@@description\v!left }{\@@descriptionhang\@@descriptionleftpure \@@descriptionlefthang \@@descriptionleftmargin }
+\setvalue{@@description\v!right}{\@@descriptionhang\@@descriptionrightpure\@@descriptionrighthang\@@descriptionrightmargin}
+
+\def\@@descriptionhang#1#2#3% \next still needed?
+ {\processaction
+ [\descriptionparameter\c!hang]
+ [ \v!none=>\let\next#1,%
+ 0=>\let\next#1,%
+ \v!margin=>\let\next#3,%
+ \s!unknown=>\let\next#2,%
+ \s!default=>\let\next#1]%
+ \next}
+
+\def\@@descriptionleftpure
+ {\def\\{\crlf}%
+ \noindent
+ \leftskip\dimexpr\leftdescriptionskip+\descriptionsheadwidth\relax
+ \rightskip\rightdescriptionskip
+ \@@makedescriptionpurebox\raggedright
+ \advance\leftskip\descriptionsheaddistance
+ \llap
+ {\hbox to \leftskip
+ {\hskip\leftdescriptionskip
+ \copy\descriptionheadbox\hss}}%
+ \@@dodescription}
+
+\def\@@descriptionrightpure
+ {\def\\{\crlf}%
+ \noindent
+ \leftskip\leftdescriptionskip
+ \rightskip\dimexpr\rightdescriptionskip+\descriptionsheadwidth\relax
+ \@@makedescriptionpurebox\raggedleft
+ \rlap
+ {\hskip\dimexpr\hsize-\leftskip-\rightskip\relax
+ \copy\descriptionheadbox
+ \hskip\rightdescriptionskip}%
+ \advance\rightskip \descriptionsheaddistance
+ \@@dodescription}
+
+\def\@@descriptionleftmargin
+ {\def\\{\crlf}%
+ \noindent
+ \llap
+ {\@@makedescriptionpurebox\raggedright
+ \hbox to \descriptionparameter\c!width{\copy\descriptionheadbox\hss}%
+ \hskip\descriptionparameter\c!distance}%
+ \@@dodescription}
+
+\def\@@descriptionrightmargin % whatever this means
+ {\def\\{\crlf}%
+ \noindent
+ \rlap
+ {\hskip\descriptionparameter\c!distance
+ \@@makedescriptionpurebox\raggedright
+ \hbox to \descriptionparameter\c!width{\copy\descriptionheadbox\hss}}%
+ \@@dodescription}
+
+\def\@@makedescriptionpurebox#1%
+ {\setbox\descriptionheadbox\vtop
+ {\dontcomplain
+ \hsize\descriptionsheadwidth
+ \leftskip\zeropoint
+ \rightskip\zeropoint
+ #1\setupalign[\descriptionparameter\c!align]%
+ \ifhbox\descriptionheadbox\unhcopy\else\copy\fi\descriptionheadbox}%
+ \ht\descriptionheadbox\strutht
+ \dp\descriptionheadbox\strutdp}
+
+\def\@@descriptionlefthang
+ {\def\\{\crlf}%
+ \dontcomplain
+ \advance\descriptionsheadwidth \descriptionsheaddistance
+ \hangindent\descriptionsheadwidth
+ \@@makedescriptionhangbox\raggedright{\advance\rightskip \descriptionsheaddistance}%
+ \noindent
+ \llap
+ {\dontshowcomposition
+ \vtop to \zeropoint{\box\descriptionheadbox}}%
+ \@@dodescription}
+
+\def\@@descriptionrighthang
+ {\def\\{\crlf}%
+ \dontcomplain
+ \advance\descriptionsheadwidth \descriptionsheaddistance
+ \hangindent-\descriptionsheadwidth
+ \@@makedescriptionhangbox\raggedleft{\advance\leftskip \descriptionsheaddistance}%
+ \noindent
+ \rlap
+ {\dontcomplain
+ \dontshowcomposition
+ \hbox to \dimexpr\hsize-\leftskip-\rightskip\relax % can be a macro
+ {\hss\vtop to \zeropoint{\box\descriptionheadbox}}}%
+ \@@dodescription}
+
+\def\@@makedescriptionhangbox#1#2%
+ {\setbox\descriptionheadbox\vtop % \vbox gaat fout in hang
+ {\forgetall
+ \dontcomplain
+ \hsize\descriptionsheadwidth
+ #1\setupalign[\descriptionparameter\c!align]#2%
+ \ifhbox\descriptionheadbox\unhcopy\else\copy\fi\descriptionheadbox}%
+ \ht\descriptionheadbox\strutht
+ \dp\descriptionheadbox\strutdp
+ \doifsomething{\descriptionparameter\c!hang}
+ {\doifinsetelse{\descriptionparameter\c!hang}{\v!fit,\v!broad}
+ {\scratchdimen\htdp\descriptionheadbox
+ \doif{\descriptionparameter\c!hang}\v!broad
+ {\advance\scratchdimen .5\strutht}%
+ \getnoflines\scratchdimen
+ \hangafter-\noflines}
+ {\hangafter-\descriptionparameter\c!hang}}}
+
+\setvalue{@@description\v!top}%
+ {%\page[\v!preference]% % Weg ermee!
+ %\dosomebreak{\goodbreak}% % Dit is beter en nodig!
+ \dohandlepagebreakX\plusone % En dit moet het maar worden.
+ \let\\=\space
+ \noindent
+ \copy\descriptionheadbox\par
+ \nobreak
+ %\descriptionparameter\c!inbetween % .. brrrr ... :
+ \doifelsenothing{\descriptionparameter\c!inbetween}{\blank}{\descriptionparameter\c!inbetween}%
+ \nobreak
+ \@@dodescription}
+
+\def\do@@description#1%
+ {\def\\{\crlf}%
+ \noindent
+ #1{\ifhbox\descriptionheadbox\unhcopy\else\copy\fi\descriptionheadbox}%
+ \@@dodescription}
+
+\setvalue{@@description\v!inmargin }{\do@@description\inmargin}
+\setvalue{@@description\v!inleft }{\do@@description\inleft }
+\setvalue{@@description\v!inright }{\do@@description\inright }
+\setvalue{@@description\v!margin }{\do@@description\inmargin}
+\setvalue{@@description\v!leftmargin }{\do@@description\inleft }
+\setvalue{@@description\v!rightmargin }{\do@@description\inright }
+\setvalue{@@description\v!innermargin }{\do@@description\ininner }
+\setvalue{@@description\v!outermargin }{\do@@description\inouter }
+
+\setvalue{@@description\v!serried\v!fit}%
+ {\def\\{\crlf}%
+ \noindent
+ \ifhbox\descriptionheadbox\unhcopy\else\copy\fi\descriptionheadbox
+ \hskip\descriptionsheaddistance % toegevoegd
+ \@@dodescription}
+
+\setvalue{@@description\v!serried\v!broad}%
+ {\def\\{\crlf}%
+ \noindent
+ \ifhbox\descriptionheadbox\unhcopy\else\copy\fi\descriptionheadbox
+ \hskip\descriptionsheaddistance \!!plus .5\descriptionsheaddistance \!!minus .25\descriptionsheaddistance
+ \@@dodescription}
+
+\setvalue{@@description\v!serried\v!wide}%
+ {\def\\{\crlf}%
+ \noindent
+ \hbox to \descriptionsheadwidth
+ {\ifhbox\descriptionheadbox\unhcopy\else\copy\fi\descriptionheadbox\hss}%
+ \hskip\descriptionsheaddistance
+ \@@dodescription}
+
+\setvalue{@@description\v!serried}%
+ {\processaction
+ [\descriptionparameter\c!width]
+ [ \v!fit=>\let\next\v!fit,
+ \v!broad=>\let\next\v!broad,
+ \s!unknown=>\let\next\v!wide,
+ \s!default=>\let\next\v!broad]%
+ \getvalue{@@description\v!serried\next}}
+
+\setvalue{@@description\v!hanging}%
+ {\def\\{\crlf}%
+ \noindent
+ \advance\leftskip -\leftskipadaption \relax
+ \ifdim\leftskipadaption=\zeropoint
+ \leftskipadaption1.5em\relax % just some default
+ \ifnum\nesteddescriptionstate=\plusone
+ \ifdim\leftskip>\zeropoint \relax
+ \leftskipadaption\leftskip
+ \fi
+ \fi
+ \fi
+ \ifnum\nesteddescriptionstate>\zerocount % was \ifnum\nesteddescriptionstate=\plusone
+ \advance\leftskip \leftskipadaption % but we're already further on
+ \fi
+ \hskip-\leftskipadaption
+ \ifhbox\descriptionheadbox\unhcopy\else\copy\fi\descriptionheadbox
+ \kern\ifdim\descriptionsheaddistance=\zeropoint .75em\else\descriptionsheaddistance\fi
+ \@@dodescription}
+
+%D A bonus definition
+%D
+%D \starttyping
+%D \setupfootnotedefinition[location=command,headcommand=\llap]
+%D \stoptyping
+
+% \setvalue{@@description\v!command}%
+% {\do@@description{\executeifdefined{\descriptionparameterhash\c!headcommand}\framed}}
+
+\setvalue{@@description\v!command}%
+ {\noindent
+ \descriptionparameter\c!headcommand{\ifhbox\descriptionheadbox\unhcopy\else\copy\fi\descriptionheadbox}%
+ \@@dodescription}
+
+%D A new key 'headalign' in definitions.
+
+\def\resetdescriptions % to be used in e.g. footnotes
+ {\chardef\nesteddescriptionstate\zerocount}
+
+\resetdescriptions
+
+\def\@@dostartdescription
+ {\descriptionparameter\c!before
+ \begingroup
+ \doadaptleftskip{\descriptionparameter\c!margin}%
+ \showcomposition
+ \descriptionsheaddistance\descriptionparameter\c!distance\relax
+ \ifdim\descriptionsheaddistance=\zeropoint\relax
+ \doif{\descriptionparameter\c!width}\v!broad{\descriptionsheaddistance=1em}%
+ \fi
+ \setbox\descriptionheadbox\hbox
+ {\forgetall\dontcomplain
+ \trialtypesettingtrue
+ \doifelsenothing{\descriptionparameter\c!sample}
+ {\dodescriptionhandler
+ {\begstrut\descriptionparameter\c!text\ignorespaces\currentdescriptiontext\endstrut}}%
+ {\dodescriptionhandler
+ {\begstrut\descriptionparameter\c!text\descriptionparameter\c!sample\endstrut}}}%
+ \assignwidth
+ \descriptionsheadwidth
+ {\descriptionparameter\c!width}
+ {\unhcopy\descriptionheadbox}
+ \descriptionsheaddistance
+ \setbox\descriptionheadbox\hbox
+ {\forgetall\dontcomplain
+ \doifelse{\descriptionparameter\c!location}\v!serried % brrr, hack
+ {\dodescriptionhandler
+ {\begstrut\descriptionparameter\c!text\currentdescriptiontext\endstrut}}
+ {\dodescriptionhandler
+ {\vtop
+ {\hsize\dimexpr\descriptionsheadwidth-\descriptionsheaddistance\relax
+ \begstrut\descriptionparameter\c!text\ignorespaces\currentdescriptiontext\endstrut}}}}%
+ \doifelse{\descriptionparameter\c!aligntitle}\v!no
+ {\leftdescriptionskip\leftskip\rightdescriptionskip\rightskip}
+ {\ifcase\nesteddescriptionstate\leftdescriptionskip\leftskip\rightdescriptionskip\rightskip\fi}%
+ \normalexpanded{\noexpand\indenting[\descriptionparameter\c!indenting]}%
+ % better a system mode
+ \ifcase\nesteddescriptionstate
+ \chardef\nesteddescriptionstate\plusone
+ \or
+ \chardef\nesteddescriptionstate\plustwo
+ \fi % now happens elsewhere : \noindent\ignorespaces
+ \@@resetdescriptionclosesymbol}
+
+\def\@@stopdescription
+ {\@@placedescriptionclosesymbol
+ \par % else we loose
+ \endgroup
+ \descriptionparameter\c!after % which currentdescription is taken here?
+ \egroup % temporary hack
+ \checknextindentation[\descriptionparameter\c!indentnext]
+ \dorechecknextindentation}
+
+\def\@@dodescription
+ {\dosetdescriptionattributes\c!style\c!color
+ \ignorespaces}
+
+% starters:
+
+\def\@@startdescription[#1]%
+ {\doifelse{\descriptionparameter\c!title}\v!yes
+ {\permitspacesbetweengroups
+ \dodoublegroupempty{\dohandledescriptionstart[#1]}}
+ {\dohandledescriptionstart[#1]{}}}
+
+\def\@@description[#1]%
+ {\doifelse{\descriptionparameter\c!title}\v!yes
+ {\permitspacesbetweengroups
+ \dodoublegroupempty{\dohandledescriptiondo[#1]}}
+ {\dohandledescriptiondo[#1]{}}}
+
+% these call:
+
+\long\def\@@somedescription[#1]#2%
+ {\dowithpar
+ {\bgroup % temporary hack
+ \@@makedescription[#1]{#2}}%
+ {\@@stopdescription}}
+
+\long\def\@@startsomedescription[#1]#2%
+ {\bgroup % temporary hack
+ \BeforePar{\@@makedescription[#1]{#2}}%
+ \GotoPar}
+
+\def\@@dostartdescriptionindeed
+ {\edef\currentdescriptionlocation{\descriptionparameter\c!location}%
+ \ifx\currentdescriptionlocation\empty
+ \let\currentdescriptionlocation\v!left
+ \fi
+ \ifcsname @@description\currentdescriptionlocation\endcsname \else
+ \let\currentdescriptionlocation\v!left
+ \fi
+ \@@dostartdescription
+ \csname @@description\currentdescriptionlocation\endcsname} % args not needed
+
+\def\@@makedescription[#1]#2%
+ {\postponenotes % new, assumes grouping
+ \doenumerationcheckconditions
+ \dodescriptioncomponent[\c!reference=#1,\c!label={\descriptionparameter\c!text},\c!title={#2},\c!bookmark=,][]%
+ \@@dostartdescriptionindeed}
+
+\def\dostartstoreddescription
+ {\@@dostartdescriptionindeed}
+
+\def\dostopstoreddescription
+ {\@@stopdescription}
+
+% % % % % % % % % % % %
+
+% helpers
+
+% todo: \dosetfontattributewithhash \descriptionparameterhash\c!headstyle
+
+% setup descriptions
+
+\def\setupdescriptions
+ {\dodoubleempty\dosetupdescriptions}
+
+\def\dosetupdescriptions[#1][#2]% % beter: \iffirstargument
+ {\ifsecondargument
+ \dodoubleargumentwithset\dodosetupdescriptions[#1][#2]%
+ \else
+ \dodosetupdescriptions[][#1]%
+ \fi}
+
+\def\dodosetupdescriptions[#1]% [#2]%
+ {\getparameters[\??dd#1]} % [#2]}
+
+% define descriptions
+
+\def\definedescription
+ {\dotripleemptywithset\dodefinedescription}
+
+\def\dodefinedescription[#1][#2][#3]% to be simplified cf enumeration
+ {\dodescriptioninit{#1}%
+ \getparameters[\??dd#1][\c!text=,\s!handler=\v!description,\c!title=\v!yes]%
+ \ifsecondargument\doifassignmentelse{#2}\donetrue\donefalse\else\donetrue\fi
+ \ifdone
+ \getparameters[\??dd#1][\s!parent=\??dd,\c!text=,\s!handler=\v!description,#2]%
+ \dodefinedescriptioncommands{#1}{\??dd}%
+ \else % clone
+ \getparameters[\??dd#1][\s!parent=\??dd#2,\c!text=,\s!handler=\v!description,#3]% clone
+ \dodefinedescriptioncommands{#1}{\??dd#2}%
+ \fi}
+
+\def\dodefinedescriptioncommands#1#2%
+ {\unexpanded\setevalue {#1}{\noexpand\dodescriptioncommand{#1}}%
+ \unexpanded\setevalue{\e!start#1}{\noexpand\dodescriptionstart {#1}}%
+ \unexpanded\setevalue{\e!stop #1}{\noexpand\dodescriptionstop {#1}}}
+
+% handle descriptions
+
+\def\dodescriptioninit#1%
+ {\let\currentdescriptionmain \empty
+ \let\currentdescriptionlevel \empty
+ \edef\currentdescriptionname {#1}%
+ \edef\currentdescription {#1}}
+
+\def\dodescriptioncommand#1{\dodescriptioninit{#1}\dosingleempty\@@description}
+\def\dodescriptionstart #1{\dodescriptioninit{#1}\dosingleempty\@@startdescription}
+\def\dodescriptionstop #1{\dodescriptioninit{#1}\@@stopdescription}
+
+\def\dodescriptionhandler {\csname\??dd:\descriptionparameter\s!handler:\s!handler \endcsname}
+\def\dohandledescriptiondo {\csname\??dd:\descriptionparameter\s!handler:\s!handler:\s!do \endcsname}
+\def\dohandledescriptionstart{\csname\??dd:\descriptionparameter\s!handler:\s!handler:\s!start\endcsname}
+
+% implementation
+
+% beware: with footnotes #2 can be something messy but then #1 is
+% empty anyway, so we have an extra safeguard
+
+\newtoks \everydescription
+
+\setvalue{\??dd:\v!description:\s!handler }{\@@dodescriptionhandler}
+\setvalue{\??dd:\v!description:\s!handler:\s!do }{\@@somedescription}
+\setvalue{\??dd:\v!description:\s!handler:\s!start}{\@@startsomedescription}
+
+\def\@@dodescriptionhandler#1%
+ {\strut
+ \dodescriptionheadtext{#1}%
+ \iftrialtypesetting \else
+ \currentdescriptionsynchronize
+ \dosetattribute{destination}\currentdescriptionattribute % todo
+ \fi}
+
+\def\dodescriptionheadtext#1% title
+ {\begingroup
+ \dosetdescriptionattributes\c!headstyle\c!headcolor
+ \the\everydescription
+ \descriptionparameter\c!command{\strut#1}% probably incomplete
+ \endgroup}
+
+% setup enumerations
+
+\def\setupenumerations
+ {\dodoubleempty\dosetupenumerations}
+
+\def\dodosetupenumerations[#1][#2]%
+ {\doenumerationinit{#1}{1}\empty
+ \getparameters[\??dd#1][#2]%
+ \dosetupenumerationcounter{#1}}
+
+\def\dosetupenumerations[#1][#2]%
+ {\ifsecondargument
+ \dodoubleargumentwithset\dodosetupenumerations[#1][#2]%
+ \else
+ \getparameters[\??dn][#1]%
+ \fi}
+
+% define enumerations
+
+\def\defineenumeration
+ {\dotripleemptywithset\dodefineenumeration}
+
+\def\dodefineenumeration[#1][#2][#3]% #2 or #3 assignment
+ {\doenumerationinit{#1}{1}\empty
+ \getparameters[\??dd#1][\c!text=#1,\c!state=\v!start,\s!handler=\v!enumeration,\c!levels=4]%
+ \ifsecondargument\doifassignmentelse{#2}\donetrue\donefalse\else\donetrue\fi
+ \ifdone % independent
+ \getparameters[\??dd#1][\s!counter=#1,#2]%
+ \dodefineenumerationcommands{#1}{1}{}{\??dn}%
+ \let\@@subslevel\empty
+ \dostepwiserecurse{2}{\descriptionparameter\c!levels}{1}
+ {\normalexpanded{\noexpand\dodefineenumerationcommands{#1}{\recurselevel}{\@@subslevel\v!sub}{\??dd\@@subslevel#1}}%
+ \edef\@@subslevel{\@@subslevel\v!sub}}%
+ \else % clone
+ \getparameters[\??dd#1][\s!counter=#2,#3]%
+ \let\@@subslevel\empty
+ \dorecurse{\descriptionparameter\c!levels}
+ {\normalexpanded{\noexpand\dodefineenumerationcommands{#1}{\recurselevel}{\@@subslevel}{\??dd\@@subslevel#2}}%
+ \edef\@@subslevel{\@@subslevel\v!sub}}%
+ \fi
+ \edef\currentdescriptioncounter{\descriptionparameter\c!number}%
+ \ifx\currentdescriptioncounter\empty
+ \ifdone\dodefineenumerationcounter{#1}\fi
+ \else\ifx\currentdescriptioncounter\v!yes
+ \ifdone\dodefineenumerationcounter{#1}\fi
+ \else\ifx\currentdescriptioncounter\v!no
+ \ifdone\dodefineenumerationcounter{#1}\fi
+ \else
+ \letvalue{\??dd#1\s!counter}\currentdescriptioncounter % ?
+ \doifstructurecounterelse{\currentdescriptioncounter}{}{\dodefineenumerationcounter\currentdescriptioncounter}%
+ \fi\fi\fi}
+
+\newtoks\everysetupenumerationcounter
+\let\currentenumerationcountername\empty
+
+\def\dosetupenumerationcounter#1%
+ {\edef\currentenumerationcountername{#1}% only used in the token list
+ \edef\currentdiscription{#1}%
+ \the\everysetupenumerationcounter}
+
+\appendtoks
+ \dostructurecountersetup\currentenumerationcountername\descriptionparameter
+\to \everysetupenumerationcounter
+
+\def\dodefineenumerationcounter#1% todo: fast inheritance (was mainparameter
+ {\definestructurecounter[#1]%
+ \dosetupenumerationcounter{#1}}
+
+\def\dodefineenumerationcommands#1#2#3#4% since we use \currentdescription, we need an edef
+ {\setevalue{\??dd#3#1\s!parent}{#4}%
+ \unexpanded\setevalue {#3#1}{\noexpand\doenumerationcommand{#1}{#2}{#3}}%
+ \unexpanded\setevalue{\e!start#3#1}{\noexpand\doenumerationstart {#1}{#2}{#3}}%
+ \unexpanded\setevalue{\e!stop #3#1}{\noexpand\doenumerationstop {#1}{#2}{#3}}}
+
+% handle enumeration
+
+\def\currentdescriptionnumber {\csname\??dd\currentdescriptionmain\s!counter\endcsname}% no edef (yet)
+\def\specificdescriptionnumber#1{\csname\??dd#1\s!counter\endcsname}% no edef (yet)
+
+\def\doenumerationinit#1#2#3%
+ {\edef\currentdescriptionmain {#1}%
+ \edef\currentdescriptionlevel{#2}%
+ \edef\currentdescriptionname {#1}%
+ \edef\currentdescription {#3#1}}
+
+\def\doenumerationcommand#1#2#3{\doenumerationinit{#1}{#2}{#3}\dosingleempty\@@description}
+\def\doenumerationstart #1#2#3{\doenumerationinit{#1}{#2}{#3}\dosingleempty\@@startdescription}
+\def\doenumerationstop #1#2#3{\doenumerationinit{#1}{#2}{#3}\@@stopdescription}
+
+\def\doresetenumerationnumber#1#2#3{\doresetsubstructurecounter [\specificdescriptionnumber{#1}][#2]}
+\def\dosetenumerationnumber#1#2#3#4{\dosetsubstructurecounter [\specificdescriptionnumber{#1}][#2]{#4}}
+\def\donextenumerationnumber #1#2#3{\doincrementsubstructurecounter[\specificdescriptionnumber{#1}][#2]}
+
+% implementation
+
+\newtoks \everyenumeration
+\newconditional\enumerationnumberenabled
+\chardef \enumerationcouplingmode \zerocount
+\def \enumerationdisablenumbersignal {-}
+
+\appendtoks \disablepseudocaps \to \everyenumeration % sorry, uppercase causes troubles
+
+\letvalue{\??dd:\c!couplingway:\v!local }\plusone
+\letvalue{\??dd:\c!couplingway:\v!global}\plustwo
+
+\setvalue{\??dd:\v!enumeration:\s!handler }{\@@doenumerationhandler}
+\setvalue{\??dd:\v!enumeration:\s!handler:\s!do }{\@@somedescription}
+\setvalue{\??dd:\v!enumeration:\s!handler:\s!start}{\@@startsomedescription}
+
+\def\@@doenumerationhandler#1%
+ {\strut
+ \ifconditional\enumerationnumberenabled
+ \iftrialtypesetting
+ \doenumerationfullnumber\showdntext{#1}%
+ \doenumerationcouplingsymbol
+ \else
+ \doenumerationregistercoupling
+ \doenumerationfullnumber\showdntext{#1}%
+ \doenumerationcouplingsymbol
+ \fi
+ \else
+ \doenumerationfullnumber\showdnpuretext{#1}%
+ \fi
+ \iftrialtypesetting \else
+ \currentdescriptionsynchronize
+ \dosetattribute{destination}\currentdescriptionattribute % todo
+ \fi}
+
+\def\doenumerationsavecounter {\savestructurecounter[\currentdescriptionnumber]}
+\def\doenumerationrestorecounter {\restorestructurecounter[\currentdescriptionnumber]}
+\def\doenumerationincrementcounter{\doincrementsubstructurecounter[\currentdescriptionnumber][\currentdescriptionlevel]}
+
+\def\doenumerationcheckconditions
+ {\doifelse{\descriptionparameter\c!number}\v!yes
+ {\ifx\currentdescriptionreference\enumerationdisablenumbersignal
+ \setfalse\enumerationnumberenabled \else \settrue\enumerationnumberenabled
+ \fi}%
+ {\setfalse\enumerationnumberenabled}%
+ \chardef\enumerationcouplingmode \iflocation
+ \executeifdefined{\??dd:\c!couplingway:\descriptionparameter\c!coupling}\zerocount
+ \else
+ \zerocount
+ \fi}
+
+\def\doenumerationregistercoupling
+ {\iflocation
+ \ifcase\enumerationcouplingmode
+ \or
+ % todo
+ \or
+ % todo
+ \fi
+ \fi}
+
+\def\doenumerationcouplingsymbol
+ {\iflocation\ifcase\enumerationcouplingmode \else
+ % todo
+ \fi\fi}
+
+\def\currentdescriptiontext
+ {\ctxlua{structure.lists.savedtitle("\currentdescriptionmain",\currentdescriptionnumberentry)}}
+
+\def\currentenumerationfullnumber
+ {\ctxlua{structure.lists.savednumber("\currentdescriptionmain",\currentdescriptionnumberentry)}}
+
+\def\doenumerationfullnumber#1#2% text, title
+ {\begingroup
+ \dosetdescriptionattributes\c!headstyle\c!headcolor
+ \the\everyenumeration
+ \descriptionparameter\c!command
+ {\strut
+ #1%
+ \descriptionparameter\c!left
+ \currentenumerationfullnumber
+ % save cq. treat expansion etc
+ \doiftext{#2} % always true anyway
+ {\doif{\descriptionparameter\c!title}\v!yes
+ {\begingroup
+ \dosetdescriptionattributes\c!titlestyle\c!titlecolor
+ \hskip\descriptionparameter\c!titledistance
+ \descriptionparameter\c!titlecommand
+ {\descriptionparameter\c!titleleft
+ \begstrut#2\endstrut
+ \descriptionparameter\c!titleright}%
+ \endgroup}}%
+ %
+ \descriptionparameter\c!stopper
+ \descriptionparameter\c!right}%
+ \endgroup}
+
+\def\showdnpuretext{\strut\descriptionparameter\c!text} % geen spatie
+\def\showdnlisttext{\descriptionparameter\c!listtext} % space in default
+\def\showdntext {\doifsomething{\descriptionparameter\c!text}{\descriptionparameter\c!text\removeunwantedspaces\fixedspace}}
+
+\unexpanded\def\structurecounterreference#1%
+ {[enumref: #1]}
+
+% you can use \placeclosesymbol or \qed to place a symbol at the end of a
+% description
+
+\def\@@resetdescriptionclosesymbol
+ {\global\@EA\settrue\csname\??dd\currentdescription:mrk\endcsname
+ \let\placeclosesymbol\@@placedescriptionclosesymbol
+ \let\qed \@@placedescriptionclosesymbol}
+
+\def\@@placedescriptionclosesymbol
+ {\ifconditional\csname\??dd\currentdescription:mrk\endcsname
+ \global\@EA\setfalse\csname\??dd\currentdescription:mrk\endcsname
+ \doifsomething{\descriptionparameter\c!closesymbol}{\descriptionparameter\c!closecommand{\descriptionparameter\c!closesymbol}}%
+ \fi}
+
+\newif\ifnodescriptioncaption
+
+\def\doifelsedescriptioncomponent
+ {\ctxlua{structure.lists.doifstoredelse(currentdescriptionnumberentry)}}
+
+\def\dodescriptioncomponent
+ {\doifelsedescriptioncomponent\nododescriptioncomponent\dododescriptioncomponent}
+
+\def\nododescriptioncomponent[#1][#2]% #1=interfaced-settings, #2=optional user data
+ {}
+
+\def\dododescriptioncomponent[#1][#2]% #1=interfaced-settings, #2=optional user data
+ {\begingroup % similar to structure so we might generalize this
+ \getparameters[\??dd\currentdescription][#1]%
+ \edef\currentdescriptionexpansion{\descriptionparameter\c!expansion}%
+ \ifx\currentdescriptionexpansion\s!xml
+ \xdef\currentdescriptiontitle {\detokenizeddescriptionparameter\c!title}%
+ \xdef\currentdescriptionbookmark{\detokenizeddescriptionparameter\c!bookmark}%
+ \xmlstartraw
+ \xdef\currentdescriptionlisttitle {\descriptionparameter\c!title}%
+ \xmlstopraw
+ \globallet\currentdescriptioncoding\s!xml
+ \else
+ \ifx\currentdescriptionexpansion\v!yes
+ \xdef\currentdescriptiontitle {\descriptionparameter\c!title}%
+ \xdef\currentdescriptionbookmark{\descriptionparameter\c!bookmark}%
+ \else
+ \xdef\currentdescriptiontitle {\detokenizeddescriptionparameter\c!title}%
+ \xdef\currentdescriptionbookmark{\detokenizeddescriptionparameter\c!bookmark}%
+ \fi
+ \globallet\currentdescriptionlisttitle \currentdescriptiontitle
+ \globallet\currentdescriptioncoding\s!tex
+ \fi
+ \xdef\currentdescriptionlabel {\descriptionparameter\c!label}%
+ \xdef\currentdescriptionreference{\descriptionparameter\c!reference}%
+ %
+ \doif{\descriptionparameter\c!title}\v!none{\global\nodescriptioncaptiontrue\global\nodescriptionnumbertrue}% will become obsolete
+ %
+ \ifconditional\enumerationnumberenabled
+ \doifelsedescriptioncomponent\donothing\doenumerationincrementcounter
+ \fi
+ %
+ \ifnodescriptioncaption
+ \glet\currentdescriptionlistnumber \relax
+ \glet\currentdescriptionsynchronize\relax
+ \glet\currentdescriptionattribute \relax
+ \else
+ \setnextinternalreference
+ \xdef\currentdescriptionnumberentry{\ctxlua{structure.lists.push{
+ metadata = {
+ kind = "description",
+ name = "\currentdescriptionname",
+ level = structure.sections.currentlevel(),
+ catcodes = \the\catcodetable,
+ },
+ references = {
+ internal = \nextinternalreference,
+ reference = "\currentdescriptionreference",
+ referenceprefix = "\referenceprefix",
+ block = "\currentstructureblock",
+ section = structure.sections.currentid(),
+ },
+ titledata = {
+ label = \!!bs\detokenize\expandafter{\currentdescriptionlabel }\!!es,
+ title = \!!bs\detokenize\expandafter{\currentdescriptiontitle }\!!es,
+ \ifx\currentdescriptionbookmark\currentdescriptiontitle \else
+ bookmark = \!!bs\detokenize\expandafter{\currentdescriptionbookmark}\!!es,
+ \fi
+ \ifx\currentdescriptionlisttitle\currentdescriptiontitle \else % \ifx\currentdescriptionsaveinlist\v!no
+ list = \!!bs\detokenize\expandafter{\currentdescriptionlisttitle }\!!es,
+ \fi % \fi
+ },
+ \ifconditional\enumerationnumberenabled
+ prefixdata = {
+ prefix = "\descriptionparameter\c!prefix",
+ separatorset = "\descriptionparameter\c!prefixseparatorset",
+ conversion = \!!bs\descriptionparameter\c!prefixconversion\!!es,
+ conversionset = "\descriptionparameter\c!prefixconversionset",
+ set = "\descriptionparameter\c!prefixset",
+ segments = "\descriptionparameter\c!prefixsegments",
+ connector = \!!bs\descriptionparameter\c!prefixconnector\!!es,
+ },
+ numberdata = {
+ numbers = structure.counters.compact("\currentdescriptionname",nil,true),
+ separatorset = "\descriptionparameter\c!numberseparatorset",
+ conversion = "\descriptionparameter\c!numberconversion",
+ conversionset = "\descriptionparameter\c!numberconversionset",
+ stopper = \!!bs\descriptionparameter\c!numberstopper\!!es,
+ segments = "\descriptionparameter\c!numbersegments",
+ },
+ \fi
+ userdata = structure.helpers.touserdata(\!!bs\detokenize{#2}\!!es)
+ }
+ }}%
+ \xdef\currentdescriptionattribute {\ctxlua {tex.write(jobreferences.setinternalreference("\referenceprefix","\currentdescriptionreference",\nextinternalreference,"\@@iafocus"))}}%
+ \xdef\currentdescriptionsynchronize{\ctxlatelua{structure.lists.enhance(\currentdescriptionnumberentry)}}%
+ \fi
+ \endgroup}
+
+\installstructurelistprocessor{description}{\usestructurelistprocessor{number+title}}
+
+% labels, we could share with enumerations and forget about the text; anyhow, figure
+% labels etc can use enumerations; we keep labels for compatibility reasons; we need
+% the slightly different namespace; we can still define structure counters directly
+% (multiple levels) and use an enumeration without following text
+
+% unfinished
+
+\def\setuplabels
+ {\getparameters[\??db]}
+
+\def\definelabel
+ {\dotripleargumentwithset\dodefinelabel}
+
+\def\dodefinelabel[#1][#2][#3]% #2 or #3 assignment
+ {\doenumerationinit{#1}{1}\empty
+ \getparameters[\??dd#1][\c!command=,\c!state=\v!start,\c!location=,\c!text=#1]%
+ \ifsecondargument\doifassignmentelse{#2}\donetrue\donefalse\else\donetrue\fi
+ \ifdone
+ % an independent one
+ \getparameters[\??dd#1][\s!counter=#1,\s!parent=\??db,#2]%
+ \dodefinelabelcommands{#1}{\??db}%
+ \dodefineenumerationcounter{#1}%
+ \else
+ \getparameters[\??dd#1][\s!counter=#1,\s!parent=\??dd#2,#3]%
+ \dodefinelabelcommands{#1}{\??dd#2}%
+ \fi}
+
+\def\dodefinelabelcommands#1#2%
+ {\unexpanded\setevalue {#1}{\noexpand\dolabelnumbercommand {#1}}%
+ \unexpanded\setevalue{\c!reset #1}{\noexpand\doresetlabelnumber {#1}}%
+ %\unexpanded\setevalue{\c!set #1}{\noexpand\dosetlabelnumber {#1}}% [#2] or {#2} ?
+ \unexpanded\setevalue{\e!next #1}{\noexpand\donextlabelnumber {#1}}%
+ \unexpanded\setevalue{\e!increment#1}{\noexpand\doincrementlabelnumber{#1}}%
+ \unexpanded\setevalue{\c!current #1}{\noexpand\docurrentlabelnumber {#1}}}
+
+% this is just for downward compatibility, we might drop it
+
+\setvalue{\??db:\c!location:\v!inmargin}{\inmargin}
+\setvalue{\??db:\c!location:\v!inleft }{\inleft}
+\setvalue{\??db:\c!location:\v!inright }{\inright}
+\setvalue{\??db:\c!location:\v!margin }{\inmargin}
+
+\def\dolabelinit#1%
+ {\def\currentdescriptionmain{#1}%
+ \def\currentdescription {#1}%
+ \def\currentdescriptionlevel{1}}
+
+\def\docurrentlabelnumber #1{\dolabelinit{#1}\dosingleempty\dodocurrentlabelnumber}
+\def\donextlabelnumber #1{\dolabelinit{#1}\dosingleempty\dodonextlabelnumber}
+\def\dolabelnumbercommand #1{\dolabelinit{#1}\dosingleempty\dodolabelnumbercommand}
+
+\def\doresetlabelnumber #1{\dolabelinit{#1}\doresetsubstructurecounter [\currentdescriptionnumber][\currentdescriptionlevel]}
+\def\dosetlabelnumber #1#2{\dolabelinit{#1}\dosetsubstructurecounter [\currentdescriptionnumber][\currentdescriptionlevel]{#2}}
+\def\doincrementlabelnumber #1{\dolabelinit{#1}\doincrementsubstructurecounter[\currentdescriptionnumber][\currentdescriptionlevel]}
+
+\def\dodocurrentlabelnumber[#1]%
+ {\dontleavehmode
+ \writestatus{!!!}{todo: reference of label}%
+ \dotextprefix{\descriptionparameter\c!text}%
+ \convertedsubstructurecounter[\currentdescriptionnumber][\currentdescriptionlevel]}
+
+\def\dodonextlabelnumber[#1]% todo: ref
+ {\doincrementsubstructurecounter[\currentdescriptionnumber][\currentdescriptionlevel]%
+ \dodocurrentlabelnumber[\currentdescriptionnumber]}
+
+\def\dodolabelnumbercommand[#1]% todo: ref
+ {\dontleavehmode
+ \descriptionparameter\c!before
+ \begingroup
+ \doincrementsubstructurecounter[\currentdescriptionnumber][\currentdescriptionlevel]%
+ \dosetdescriptionattributes\c!headstyle\c!headcolor
+ \executeifdefined{\??db:\c!location:\descriptionparameter\c!location}{\descriptionparameter\c!command}{\dodocurrentlabelnumber[#1]}%
+ \endgroup
+ \descriptionparameter\c!after}
+
+% to be reimplmented
+
+\def\setupindentations
+ {\dodoubleempty\dosetupindentations}
+
+\def\dosetupindentations[#1][#2]%
+ {\ifsecondargument
+ \dodoubleargumentwithset\dodosetupindentations[#1][#2]%
+ \else
+ \dodosetupindentations[][#1]%
+ \fi}
+
+\def\dodosetupindentations[#1][#2]%
+ {\getparameters[\??ds#1][#2]}
+
+\def\defineindenting
+ {\dodoubleargumentwithset\dodefineindenting}
+
+\def\dodefineindenting[#1][#2]%
+ {\copyparameters[\??ds#1][\??ds]
+ [\c!text,\c!separator,\c!width,\c!style,\c!color,
+ \c!headstyle,\c!sample,\c!before,\c!after,\c!distance]%
+ \getparameters[\??ds#1][#2]%
+ \unexpanded\setvalue {#1}{\dododefineindenting{#1}{0}{1}}%
+ \unexpanded\setvalue {\v!sub#1}{\dododefineindenting{#1}{1}{2}}%
+ \unexpanded\setvalue{\v!sub\v!sub#1}{\dododefineindenting{#1}{2}{3}}}
+
+\def\dododefineindenting#1#2#3%
+ {\par
+ \getvalue{\??ds#1\c!before}%
+ \begingroup
+ \doifvaluenothing{\??ds#1\c!sample}
+ {\setvalue{\??ds#1\c!sample}{\getvalue{\??ds#1\c!text}}}%
+ \assignwidth
+ {\descriptionsheadwidth}
+ {\getvalue{\??ds#1\c!width}}
+ {\doattributes
+ {\??ds#1}\c!headstyle\c!headcolor
+ {\getvalue{\??ds#1\c!sample}%
+ \spr{\getvalue{\??ds#1\c!separator}}}}
+ {\getvalue{\??ds#1\c!distance}}%
+ \advance\descriptionsheadwidth \getvalue{\??ds#1\c!distance}%
+ \setbox\scratchbox\hbox to \descriptionsheadwidth
+ {\doattributes
+ {\??ds#1}\c!headstyle\c!headcolor
+ {\strut
+ \getvalue{\??ds#1\c!text}%
+ \hss
+ \spr{\getvalue{\??ds#1\c!separator}}%
+ \hskip\getvalue{\??ds#1\c!distance}}}%
+ \parindent\zeropoint
+ \hskip#2\descriptionsheadwidth\indent\box\scratchbox
+ \hangindent#3\descriptionsheadwidth
+ \doattributes{\??ds#1}\c!style\c!color\empty
+ \AfterPar{\endgroup\getvalue{\??ds#1\c!after}}% must be redone
+ \GetPar}
+
+\setupdescriptions
+ [\c!location=\v!left,
+ \c!headstyle=\v!bold,
+ \c!titlestyle=\v!bold,
+ \c!style=\v!normal,
+ \c!color=,
+ \c!headcolor=,
+ \c!titlecolor=,
+ \c!width=8em,
+ \c!distance=0pt,
+ \c!titledistance=0.5em,
+ \c!hang=,
+ \c!sample=,
+ \c!align=,
+ \c!margin=\v!no,
+ \c!before=\blank,
+ \c!inbetween=\blank,
+ \c!after=\blank,
+ \c!indentnext=\v!yes,
+ \c!indenting=\v!never,
+ \c!titleleft=(,
+ \c!titleright=),
+ \c!closesymbol=,
+ \c!closecommand=\wordright,
+ \c!command=,
+ \c!titlecommand=]
+
+\setupenumerations
+ [\c!location=\v!top,
+ \c!text=,
+ \c!way=\v!by\v!text,
+ \c!prefixconnector=.,
+ \c!stopper=,
+ \c!number=\v!yes, % else description
+ \c!start=0,
+ \s!parent=\??dd]
+
+\setuplabels
+ [\s!parent=\??dn]
+
+\setupindentations
+ [\c!style=\v!normal,
+ \c!headstyle=\v!normal,
+ \c!color=,
+ \c!headcolor=,
+ \c!width=\v!fit,
+ \c!text=\unknown,
+ \c!sample=,
+ \c!before=\blank,
+ \c!after=\blank,
+ \c!distance=1em,
+ \c!separator={ :}]
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/strc-doc.lua b/Master/texmf-dist/tex/context/base/strc-doc.lua
new file mode 100644
index 00000000000..cb279e32065
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/strc-doc.lua
@@ -0,0 +1,603 @@
+if not modules then modules = { } end modules ['strc-doc'] = {
+ version = 1.001,
+ comment = "companion to strc-doc.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local next, type = next, type
+local format, gsub, find, concat = string.format, string.gsub, string.find, table.concat
+local texsprint, texwrite = tex.sprint, tex.write
+
+local ctxcatcodes = tex.ctxcatcodes
+local variables = interfaces.variables
+
+if not trackers then trackers = { register = function() end } end
+
+local trace_sectioning = false trackers.register("structure.sectioning", function(v) trace_sectioning = v end)
+
+local function report(...)
+--~ print(...)
+ logs.report("sectioning:",...)
+end
+
+structure = structure or { }
+structure.helpers = structure.helpers or { }
+structure.documents = structure.documents or { }
+structure.sections = structure.sections or { }
+structure.sets = structure.sets or { }
+structure.processors = structure.processors or { }
+
+local helpers = structure.helpers
+local documents = structure.documents
+local sections = structure.sections
+local sets = structure.sets
+local processors = structure.processors
+
+-- -- -- document -- -- --
+
+local data
+
+function documents.initialize()
+ data = {
+ numbers = { },
+ forced = { },
+ ownnumbers = { },
+ status = { },
+ checkers = { },
+ depth = 0,
+ blocks = { },
+ block = "",
+ }
+ documents.data = data
+end
+
+function documents.reset()
+ data.numbers = { }
+ data.forced = { }
+ data.ownnumbers = { }
+ data.status = { }
+ data.checkers = { }
+ data.depth = 0
+end
+
+documents.initialize()
+
+-- -- -- sections -- -- --
+
+jobsections = jobsections or { }
+jobsections.collected = jobsections.collected or { }
+jobsections.tobesaved = jobsections.tobesaved or { }
+
+local collected, tobesaved = jobsections.collected, jobsections.tobesaved
+
+--~ local function initializer()
+--~ collected, tobesaved = jobsections.collected, jobsections.tobesaved
+--~ end
+
+--~ job.register('jobsections.collected', jobsections.tobesaved, initializer)
+
+function sections.currentid()
+ return #tobesaved
+end
+
+function sections.save(sectiondata)
+-- local sectionnumber = helpers.simplify(section.sectiondata) -- maybe done earlier
+ local numberdata = sectiondata.numberdata
+ if not numberdata or sectiondata.metadata.nolist then
+ return #tobesaved
+ else
+ local n = #tobesaved + 1
+ tobesaved[n] = numberdata
+ if not collected[n] then
+ collected[n] = numberdata
+ end
+ return n
+ end
+end
+
+function sections.load()
+ setmetatable(collected,nil)
+ local l = structure.lists.collected
+ for i=1,#l do
+ local li = l[i]
+ local lm = li.metadata
+ if lm and lm.kind == "section" and not lm.nolist then
+ local ln = li.numberdata
+ if ln then
+ collected[#collected+1] = ln
+ end
+ end
+ end
+ sections.load = nil
+end
+
+setmetatable(collected, {
+ __index = function(t,i)
+ sections.load()
+ return t[i] or { }
+ end
+})
+
+--
+
+structure.sections.levelmap = structure.sections.levelmap or { }
+
+local levelmap = structure.sections.levelmap
+
+storage.register("structure/sections/levelmap", structure.sections.levelmap, "structure.sections.levelmap")
+
+sections.verbose = true
+
+function sections.setlevel(name,level) -- level can be number or parent (=string)
+ local l = tonumber(level)
+ if not l then
+ l = levelmap[level]
+ end
+ if l and l > 0 then
+ levelmap[name] = l
+ else
+ -- error
+ end
+end
+
+function sections.getlevel(name)
+ return levelmap[name] or 0
+end
+
+function sections.way(way,by)
+ texsprint(ctxcatcodes,(gsub(way,"^"..by,"")))
+end
+
+function sections.setblock(name)
+ local block = name or data.block or "unknown" -- can be used to set the default
+ data.block = block
+ texwrite(block)
+end
+
+function sections.pushblock(name)
+ local block = name or data.block
+ data.blocks[#data.blocks+1] = block
+ data.block = block
+ documents.reset()
+ texwrite(block)
+end
+
+function sections.popblock()
+ data.blocks[#data.blocks] = nil
+ local block = data.blocks[#data.blocks] or data.block
+ data.block = block
+ documents.reset()
+ texwrite(block)
+end
+
+function sections.currentblock()
+ return data.block or data.blocks[#data.blocks] or "unknown"
+end
+
+function sections.currentlevel()
+ return data.depth
+end
+
+function sections.getcurrentlevel()
+ texwrite(data.depth)
+end
+
+function sections.somelevel(given)
+ -- old number
+ local numbers, ownnumbers, forced, status, olddepth = data.numbers, data.ownnumbers, data.forced, data.status, data.depth
+--~ print("old",olddepth,given.metadata.name,levelmap[given.metadata.name])
+ local newdepth = tonumber(levelmap[given.metadata.name] or (olddepth > 0 and olddepth) or 1) -- hm, levelmap only works for section-*
+--~ print("new",newdepth)
+ local directives = given.directives
+ local resetset = (directives and directives.resetset) or ""
+ local resetter = sets.getall("structure:resets",data.block,resetset)
+ -- a trick to permits userdata to overload title, ownnumber and reference
+ -- normally these are passed as argument but nowadays we provide several
+ -- interfaces (we need this because we want to be compatible)
+ local u = given.userdata
+ if u then
+ -- kind of obsolete as we can pass them directly anyway
+ if u.reference and u.reference ~= "" then given.metadata.reference = u.reference ; u.reference = nil end
+ if u.ownnumber and u.ownnumber ~= "" then given.numberdata.ownnumber = u.ownnumber ; u.ownnumber = nil end
+ if u.title and u.title ~= "" then given.titledata.title = u.title ; u.title = nil end
+ if u.bookmark and u.bookmark ~= "" then given.titledata.bookmark = u.bookmark ; u.bookmark = nil end
+ if u.label and u.label ~= "" then given.titledata.label = u.label ; u.label = nil end
+ end
+ -- so far for the trick
+ if newdepth > olddepth then
+ for i=olddepth+1,newdepth do
+ local s = tonumber(sets.get("structure:resets",data.block,resetset,i))
+--~ logs.report("structure >","old: %s, new:%s, reset: %s (%s: %s)",olddepth,newdepth,s,resetset,table.concat(resetter,","))
+ if not s or s == 0 then
+ numbers[i] = numbers[i] or 0
+ ownnumbers[i] = ownnumbers[i] or ""
+ else
+ numbers[i] = s - 1
+ ownnumbers[i] = ""
+ end
+ status[i] = { }
+ end
+ elseif newdepth < olddepth then
+ for i=olddepth,newdepth+1,-1 do
+ local s = tonumber(sets.get("structure:resets",data.block,resetset,i))
+--~ logs.report("structure <","old: %s, new:%s, reset: %s (%s: %s)",olddepth,newdepth,s,resetset,table.concat(resetter,","))
+ if not s or s == 0 then
+ numbers[i] = numbers[i] or 0
+ ownnumbers[i] = ownnumbers[i] or ""
+ else
+ numbers[i] = s - 1
+ ownnumbers[i] = ""
+ end
+ status[i] = nil
+ end
+ end
+ ownnumbers[newdepth] = given.numberdata.ownnumber or ""
+ given.numberdata.ownnumber = nil
+ data.depth = newdepth
+ -- new number
+ olddepth = newdepth
+ if given.metadata.increment then
+ local oldn, newn = numbers[newdepth], 0
+ local fd = forced[newdepth]
+ if fd then
+ if fd[1] == "add" then
+ newn = oldn + fd[2] + 1
+ else
+ newn = fd[2] + 1
+ end
+ if newn < 0 then
+ newn = 1 -- maybe zero is nicer
+ end
+ forced[newdepth] = nil
+ elseif newn then
+ newn = oldn + 1
+ else
+ local s = tonumber(sets.get("structure:resets",data.block,resetset,newdepth))
+--~ logs.report("structure =","old: %s, new:%s, reset: %s (%s: %s)",olddepth,newdepth,s,resetset,table.concat(resetter,","))
+ if not s or s == 0 then
+ newn = oldn or 0
+ else
+ newn = s - 1
+ end
+ end
+ numbers[newdepth] = newn
+ end
+ status[newdepth] = given or { }
+ for k, v in pairs(data.checkers) do
+ if v[1] == newdepth and v[2] then
+ v[2](k)
+ end
+ end
+ local numberdata= given.numberdata
+ if not numberdata then
+ -- probably simplified to nothing
+ numberdata = { }
+ given.numberdata = numberdata
+ end
+ local n = { }
+ for i=1,newdepth do
+ n[i] = numbers[i]
+ end
+ numberdata.numbers = n
+ if #ownnumbers > 0 then
+ numberdata.ownnumbers = table.fastcopy(ownnumbers)
+ end
+ given.references.section = sections.save(given)
+ -- given.numberdata = nil
+end
+
+function sections.writestatus()
+ if sections.verbose then
+ local numbers, ownnumbers, status, depth = data.numbers, data.ownnumbers, data.status, data.depth
+ local d = status[depth]
+ local o = concat(ownnumbers,".",1,depth)
+ local n = (numbers and concat(numbers,".",1,depth)) or 0
+ local l = d.titledata.title or ""
+ local t = (l ~= "" and l) or d.titledata.title or "[no title]"
+ local m = d.metadata.name
+ if o and not find(o,"^%.*$") then
+ commands.writestatus("structure","%s @ level %i : (%s) %s -> %s",m,depth,n,o,t)
+ elseif d.directives and d.directives.hidenumber then
+ commands.writestatus("structure","%s @ level %i : (%s) -> %s",m,depth,n,t)
+ else
+ commands.writestatus("structure","%s @ level %i : %s -> %s",m,depth,n,t)
+ end
+ end
+end
+
+function sections.setnumber(depth,n)
+ local forced, depth, new = data.forced, depth or data.depth, tonumber(n)
+ if type(n) == "string" then
+ if n:find("^[%+%-]") then
+ forced[depth] = { "add", new }
+ else
+ forced[depth] = { "set", new }
+ end
+ else
+ forced[depth] = { "set", new }
+ end
+end
+
+function sections.number_at_depth(depth)
+ return data.numbers[tonumber(depth) or sections.getlevel(depth) or 0] or 0
+end
+
+function sections.getnumber(depth)
+ return texwrite(data.numbers[depth] or 0)
+end
+
+function sections.set(key,value)
+ data.status[data.depth][key] = value -- may be nil for a reset
+end
+
+function sections.cct()
+ local metadata = data.status[data.depth].metadata
+ texsprint((metadata and metadata.catcodes) or ctxcatcodes)
+end
+
+function sections.structuredata(depth,key,default,honorcatcodetable) -- todo: spec table and then also depth
+ if not depth or depth == 0 then depth = data.depth end
+ local data = data.status[depth]
+ local d = data
+ for k in key:gmatch("([^.]+)") do
+ if type(d) == "table" then
+ d = d[k]
+ if not d then
+ -- unknown key
+ break
+ end
+ end
+ if type(d) == "string" then
+ if honorcatcodetable == true or honorcatcodetable == variables.auto then
+ local metadata = data.metadata
+ texsprint((metadata and metadata.catcodes) or ctxcatcodes,d)
+ elseif not honorcatcodetable then
+ texsprint(ctxcatcodes,d)
+ elseif type(honorcatcodetable) == "number" then
+ texsprint(honorcatcodetable,d)
+ elseif type(honorcatcodetable) == "string" and honorcatcodetable ~= "" then
+ honorcatcodetable = tex[honorcatcodetable] or ctxcatcodes-- we should move ctxcatcodes to another table, ctx or so
+ texsprint(honorcatcodetable,d)
+ else
+ texsprint(ctxcatcodes,d)
+ end
+ return
+ end
+ end
+ if default then
+ texsprint(ctxcatcodes,default)
+ end
+end
+
+function sections.userdata(depth,key,default)
+ if not depth or depth == 0 then depth = data.depth end
+ if depth > 0 then
+ local userdata = data.status[depth]
+ userdata = userdata and userdata.userdata
+ userdata = (userdata and userdata[key]) or default
+ if userdata then
+ texsprint(ctxcatcodes,userdata)
+ end
+ end
+end
+
+function sections.setchecker(name,level,command)
+ data.checkers[name] = (name and command and level > 0 and { level, command }) or nil
+end
+
+function sections.current()
+ return data.status[data.depth]
+end
+
+function sections.depthnumber(n)
+ local depth = data.depth
+ if not n or n == 0 then
+ n = depth
+ elseif n < 0 then
+ n = depth + n
+ end
+ return texwrite(data.numbers[n] or 0)
+end
+
+function sections.autodepth(numbers)
+ for i=#numbers,1,-1 do
+ if numbers[i] ~= 0 then
+ return i
+ end
+ end
+ return 0
+end
+
+--
+
+function structure.currentsectionnumber() -- brr, namespace wrong
+ local sc = sections.current()
+ return sc and sc.numberdata
+end
+
+-- \dorecurse{3} {
+-- \chapter{Blabla} \subsection{bla 1 1} \subsection{bla 1 2}
+-- \section{bla 2} \subsection{bla 2 1} \subsection{bla 2 2}
+-- }
+
+-- sign=all => also zero and negative
+-- sign=positive => also zero
+-- sign=hang => llap sign
+
+function sections.typesetnumber(entry,kind,...) -- kind='section','number','prefix'
+ if entry and entry.hidenumber ~= true then -- can be nil
+ local separatorset = ""
+ local conversionset = ""
+ local conversion = ""
+ local stopper = ""
+ local connector = ""
+ local set = ""
+ local segments = ""
+ local criterium = ""
+ for _, data in ipairs { ... } do -- can be multiple parametersets
+ if data then
+ if separatorset == "" then separatorset = data.separatorset or "" end
+ if conversionset == "" then conversionset = data.conversionset or "" end
+ if conversion == "" then conversion = data.conversion or "" end
+ if stopper == "" then stopper = data.stopper or "" end
+ if connector == "" then connector = data.connector or "" end
+ if set == "" then set = data.set or "" end
+ if segments == "" then segments = data.segments or "" end
+ if criterium == "" then criterium = data.criterium or "" end
+ end
+ end
+ if separatorset == "" then separatorset = "default" end
+ if conversionset == "" then conversionset = "default" end
+ if conversion == "" then conversion = nil end
+ if stopper == "" then stopper = nil end
+ if connector == "" then connector = nil end
+ if set == "" then set = "default" end
+ if segments == "" then segments = nil end
+ --
+ if criterium == variables.strict then
+ criterium = 0
+ elseif criterium == variables.positive then
+ criterium = -1
+ elseif criterium == variables.all then
+ criterium = -1000000
+ else
+ criterium = 0
+ end
+ --
+ local firstprefix, lastprefix = 0, 100
+ if segments then
+ local f, l = (tostring(segments)):match("^(.-):(.+)$")
+ if f and l then
+ -- 0:100, chapter:subsubsection
+ firstprefix = tonumber(f) or sections.getlevel(f) or 0
+ lastprefix = tonumber(l) or sections.getlevel(l) or 100
+ else
+ -- 3, section
+ local fl = tonumber(segments) or sections.getlevel(segments) -- generalize
+ if fl then
+ firstprefix, lastprefix = fl, fl
+ end
+ end
+ end
+ --
+ local numbers, ownnumbers = entry.numbers, entry.ownnumbers
+ if numbers then
+ local done, preceding = false, false
+ local function process(index) -- move to outer
+ local number = numbers and (numbers[index] or 0)
+ local ownnumber = ownnumbers and ownnumbers[index] or ""
+ if number > criterium or (ownnumber ~= "") then
+ local block = entry.block
+ if preceding then
+ local separator = sets.get("structure:separators",b,s,preceding,".")
+ if separator then
+ processors.sprint(ctxcatcodes,separator)
+ end
+ preceding = false
+ end
+ if ownnumber ~= "" then
+ processors.sprint(ctxcatcodes,ownnumber)
+ -- elseif conversion and conversion ~= "" then
+ -- texsprint(ctxcatcodes,format("\\convertnumber{%s}{%s}",conversion,number))
+ elseif conversion and conversion ~= "" then
+ -- traditional (e.g. used in itemgroups)
+ texsprint(ctxcatcodes,format("\\convertnumber{%s}{%s}",conversion,number))
+ else
+ local theconversion = sets.get("structure:conversions",block,conversion,index,"numbers")
+ processors.sprint(ctxcatcodes,theconversion,function(str)
+ return format("\\convertnumber{%s}{%s}",str or "numbers",number)
+ end)
+ end
+ preceding, done = index, true
+ else
+ preceding = preceding or false
+ end
+ end
+ --
+ local prefixlist = set and sets.getall("structure:prefixes","",set) -- "" == block
+ if prefixlist and (kind == 'section' or kind == 'prefix') then
+ -- find valid set (problem: for sectionnumber we should pass the level)
+ -- if kind == "section" then
+ -- no holes
+ local b, e, bb, ee = 1, #prefixlist, 0, 0
+ -- find last valid number
+ for k=e,b,-1 do
+ local prefix = prefixlist[k]
+ local index = sections.getlevel(prefix) or k
+ if index >= firstprefix and index <= lastprefix then
+ local number = numbers and numbers[index]
+ if number then
+ local ownnumber = ownnumbers and ownnumbers[index] or ""
+ if number > 0 or (ownnumber ~= "") then
+ break
+ else
+ e = k -1
+ end
+ end
+ end
+ end
+ -- find valid range
+ for k=b,e do
+ local prefix = prefixlist[k]
+ local index = sections.getlevel(prefix) or k
+ if index >= firstprefix and index <= lastprefix then
+ local number = numbers and numbers[index]
+ if number then
+ local ownnumber = ownnumbers and ownnumbers[index] or ""
+ if number > 0 or (ownnumber ~= "") then
+ if bb == 0 then bb = k end
+ ee = k
+ else
+ bb, ee = 0, 0
+ end
+ else
+ break
+ end
+ end
+ end
+ -- print valid range
+ for k=bb,ee do
+ local prefix = prefixlist[k]
+ local index = sections.getlevel(prefix) or k
+ if index >= firstprefix and index <= lastprefix then
+ process(index)
+ end
+ end
+ -- else
+ -- for k=1,#prefixlist do
+ -- local prefix = prefixlist[k]
+ -- local index = sections.getlevel(prefix) or k
+ -- if index >= firstprefix and index <= lastprefix then
+ -- process(index)
+ -- end
+ -- end
+ -- end
+ else
+ -- also holes check
+ for prefix=firstprefix,lastprefix do
+ process(prefix)
+ end
+ end
+ --
+ if done and connector and kind == 'prefix' then
+ processors.sprint(ctxcatcodes,connector)
+ elseif done and stopper then
+ processors.sprint(ctxcatcodes,stopper)
+ end
+ else
+ report("error: no numbers")
+ end
+ end
+end
+
+function sections.fullnumber(depth)
+ local data = data.status[depth or data.depth]
+ if data then
+ local sectiondata = jobsections.collected[data.references.section]
+ if sectiondata and sectiondata.hidenumber ~= true then -- can be nil
+ sections.typesetnumber(sectiondata,'section',sectiondata)
+ end
+ end
+end
diff --git a/Master/texmf-dist/tex/context/base/strc-doc.mkiv b/Master/texmf-dist/tex/context/base/strc-doc.mkiv
new file mode 100644
index 00000000000..4ff87b742be
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/strc-doc.mkiv
@@ -0,0 +1,210 @@
+%D \module
+%D [ file=strc-doc,
+%D version=2008.10.20,
+%D title=\CONTEXT\ Structure Macros,
+%D subtitle=Document Structure,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA-ADE / Hans Hagen]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Structure Macros / Document Structure}
+
+\registerctxluafile{strc-doc}{1.001}
+
+\unprotect
+
+% We operate in a \type {@@ns} namespace. All data is passed through
+% variables. Of course we can built another interface on top of this
+% that accepts multiple arguments. We might change this approach and
+% remove this layer.
+
+\def\currentstructurecounter{0}
+
+\definesystemvariable {ns}
+
+\def\structureparameter#1{\csname\??ns#1\endcsname}
+
+\def\detokenizedstructureparameter#1{\detokenize\expandafter\expandafter\expandafter{\csname\??ns#1\endcsname}}
+
+\def\structurecomponent{\dodoubleempty\dostructurecomponent}
+
+\getparameters % initialization, used not grouped anyway
+ [\??ns]
+ [\c!number=,\c!level=,\c!name=,\c!title=,\c!bookmark=,\c!marking=,\c!list=,\c!label=,\c!coupling=,\c!ownnumber=,
+ \c!sectionseparatorset=\s!default,\c!sectionconversionset=\s!default,
+ \c!sectionstopper=,\c!sectionsegments=,
+ \c!sectionresetset=,\c!reference=,
+ \c!expansion=\v!no,
+ \s!catcodes=,
+ \c!saveinlist=\v!yes,
+ \c!command=\showstructuredata]
+
+% maybe flags for list, bm, mark
+%
+% hm messed up
+
+\def\dostructurecomponent[#1][#2]% #1=interfaced-settings, #2=optional user data (not yet supported)
+ {\begingroup
+ \getparameters[\??ns][#1]%
+ \xdef\currentstructurename {\structureparameter\c!name}%
+ \xdef\currentstructurecoupling {\structureparameter\c!coupling}%
+ \xdef\currentstructureownnumber{\structureparameter\c!ownnumber}% optional own number
+ \xdef\currentstructurelevel {\structureparameter\c!level}%
+\ifnum\catcodetable=\xmlcatcodes
+ \let\currentstructureexpansion\s!xml
+\else
+ \edef\currentstructureexpansion{\structureparameter\c!expansion}
+\fi
+ \ifx\currentstructureexpansion\s!xml
+ % maybe just title xml and inherit xml then in which case we have to test
+ % when typesetting marks, lists, refs etc (+specific env)
+ \xdef\currentstructuretitle {\detokenizedstructureparameter\c!title}% maybe xml
+ \xdef\currentstructurebookmark{\detokenizedstructureparameter\c!bookmark}% no xml
+ \xdef\currentstructuremarking {\detokenizedstructureparameter\c!marking}% no xml
+ \xdef\currentstructurelist {\detokenizedstructureparameter\c!list}% no xml
+ \ifx\currentstructurelist\empty
+ \xmlstartraw
+ \xdef\currentstructurelist{\structureparameter\c!title}%
+ \xmlstopraw
+ \fi
+ %
+ \globallet\currentstructurecoding\s!xml
+ \else
+ \ifx\currentstructureexpansion\v!yes
+ \xdef\currentstructuretitle {\structureparameter\c!title}%
+ \xdef\currentstructurebookmark{\structureparameter\c!bookmark}%
+ \xdef\currentstructuremarking {\structureparameter\c!marking}%
+ \xdef\currentstructurelist {\structureparameter\c!list}%
+ \else
+ \xdef\currentstructuretitle {\detokenizedstructureparameter\c!title}%
+ \xdef\currentstructurebookmark{\detokenizedstructureparameter\c!bookmark}%
+ \xdef\currentstructuremarking {\detokenizedstructureparameter\c!marking}%
+ \xdef\currentstructurelist {\detokenizedstructureparameter\c!list}%
+ \iflocation \ifx\currentstructurebookmark\empty
+ \begingroup
+ \simplifycommands
+ \xdef\currentstructurebookmark{\detokenize\expandafter{\normalexpanded{\structureparameter\c!title}}}%
+ \endgroup
+ \fi \fi
+ \fi
+ \ifx\currentstructurelist\empty
+ \globallet\currentstructurelist\currentstructuretitle
+ \fi
+ \globallet\currentstructurecoding\s!tex
+ \fi
+ \xdef\currentstructurelabel {\structureparameter\c!label}%
+ \xdef\currentstructurereference {\structureparameter\c!reference}%
+ \xdef\currentstructurereferenceprefix{\structureparameter\c!referenceprefix}%
+ \xdef\currentstructureshownumber {\structureparameter\c!number}%
+ \xdef\currentstructuresaveinlist {\structureparameter\c!saveinlist}%
+ \xdef\currentstructureincrementnumber{\structureparameter\c!incrementnumber}%
+ \setnextinternalreference
+ \xdef\currentstructurenumber{\ctxlua{ % todo: combine with next call, adapt marks accordingly
+ structure.sections.somelevel {
+ references = {
+ internal = \nextinternalreference,
+ block = "\currentstructureblock",
+ reference = "\currentstructurereference",
+ referenceprefix = "\currentstructurereferenceprefix",
+ },
+ directives = {
+ resetset = "\structureparameter\c!sectionresetset",
+ },
+ metadata = {
+ kind = "section",
+ name = "\currentstructurename",
+ catcodes = \the\catcodetable,
+ coding = "\currentstructurecoding",
+ xmlroot = \ifx\currentstructurecoding\s!xml "\xmldocument" \else nil \fi,
+ \ifx\currentstructuresaveinlist\v!no
+ nolist = true,
+ \fi
+ \ifx\currentstructureincrementnumber\v!yes
+ increment = "\currentstructureincrementnumber",
+ \fi
+ },
+ titledata = { % we can add mark and reference
+ label = \!!bs\detokenize\expandafter{\currentstructurelabel }\!!es,
+ title = \!!bs\detokenize\expandafter{\currentstructuretitle }\!!es,
+ \ifx\currentstructurebookmark\currentstructuretitle \else
+ bookmark = \!!bs\detokenize\expandafter{\currentstructurebookmark }\!!es,
+ \fi
+ \ifx\currentstructuremarking\currentstructuretitle \else
+ marking = \!!bs\detokenize\expandafter{\currentstructuremarking }\!!es,
+ \fi
+ \ifx\currentstructuresaveinlist\v!no \else
+ \ifx\currentstructurelist\currentstructuretitle \else
+ list = \!!bs\detokenize\expandafter{\currentstructurelist}\!!es,
+ \fi
+ \fi
+ },
+ numberdata = {
+block = "\currentstructureblock",
+hidenumber = \ifx\currentstructureshownumber\v!no true\else nil\fi, % titles
+ separatorset = "\structureparameter\c!sectionseparatorset",
+ conversion = "\structureparameter\c!sectionconversion", % for good old times sake
+ conversionset = "\structureparameter\c!sectionconversionset",
+ stopper = \!!bs\structureparameter\c!sectionstopper\!!es,
+ set = "\structureparameter\c!sectionset",
+ segments = "\structureparameter\c!sectionsegments",
+ ownnumber = "\currentstructureownnumber",
+ },
+ userdata = structure.helpers.touserdata(\!!bs\detokenize{#2}\!!es)
+ }
+ }}%
+ \xdef\currentstructurelistnumber{\ctxlua{structure.lists.push(structure.sections.current())}}%
+ % \currentstructuresynchronize has to be called someplace, since it introduces a node
+ \setstructuresynchronization\currentstructurelistnumber
+ \structureparameter\c!command
+ \endgroup}
+
+\let\currentstructurenumber \!!zerocount
+\let\currentstructurecounter \!!zerocount
+\let\previousstructurecounter\!!zerocount
+
+\def\setstructuresynchronization#1%
+ {\xdef\currentstructureattribute {\ctxlua {tex.write(jobreferences.setinternalreference("\currentstructurereferenceprefix","\currentstructurereference",\nextinternalreference,"\@@iafocus"))}}%
+ \xdef\currentstructuresynchronize{\ctxlatelua{structure.lists.enhance(#1)}}}
+
+\def\reportcurrentstructure{\ctxlua{structure.sections.writestatus()}}
+
+% Beware: we need to flush the data to the list explicitly. This is because
+% node in inserted and we may want control over when that happens.
+
+\def\showstructuredata
+ {\par
+ \dontleavehmode\begingroup
+ \currentstructuresynchronize
+ \currentstructureattribute
+ [\currentstructurename: \showstructurelevel: \currentstructuretitle]
+ \endgroup\par}
+
+% We can access the (stored) data with the following macros.
+%
+% \def\MyHeadCommand #1#2{\framed{#1}\framed{#2 / \structureuservariable{subtitle}}}
+% \def\MyListCommand#1#2#3{\externalfigure[\structurelistuservariable{figure}][height=5mm]#2}
+%
+% \setuphead[chapter][command=\MyHeadCommand]
+% \setuplist[chapter][alternative=command,command=\MyListCommand]
+%
+% \starttext
+% \setupheadertexts[chapter]
+% \setupinteraction[state=start]
+% \placebookmarks[chapter]
+% \placelist[chapter]
+% \startchapter[ownnumber=10,title=Ton,list=Hans,marking=Kees,bookmark=Bram][figure=cow.pdf,subtitle=oeps]
+% \stopchapter
+% \stoptext
+
+\def\structurevariable #1{\ctxlua{structure.sections.structuredata(nil,"#1")}}
+\def\structureuservariable #1{\ctxlua{structure.sections.userdata(nil,"#1")}}
+\def\structurenumber {\ctxlua{structure.sections.fullnumber()}}
+\def\structurecatcodedget #1{\ctxlua{structure.sections.structuredata(nil,"#1",nil,true)}} % bad name
+\def\structuregivencatcodedget#1#2{\ctxlua{structure.sections.structuredata(nil,"#1",nil,\number#2)}} % bad name
+\def\structureautocatcodedget #1#2{\ctxlua{structure.sections.structuredata(nil,"#1",nil,"#2")}}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/strc-flt.lua b/Master/texmf-dist/tex/context/base/strc-flt.lua
new file mode 100644
index 00000000000..f6f3e19ccc7
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/strc-flt.lua
@@ -0,0 +1,9 @@
+if not modules then modules = { } end modules ['strc-flt'] = {
+ version = 1.001,
+ comment = "companion to strc-flt.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- nothing
diff --git a/Master/texmf-dist/tex/context/base/page-flt.tex b/Master/texmf-dist/tex/context/base/strc-flt.mkii
index 0e61a6baa6f..e64a439ec39 100644
--- a/Master/texmf-dist/tex/context/base/page-flt.tex
+++ b/Master/texmf-dist/tex/context/base/strc-flt.mkii
@@ -1,7 +1,7 @@
%D \module
-%D [ file=page-flt,
+%D [ file=strc-flt,
%D version=2000.10.20,
-%D title=\CONTEXT\ OTR Macros,
+%D title=\CONTEXT\ Structure Macros,
%D subtitle=Floating Bodies,
%D author=Hans Hagen,
%D date=\currentdate,
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context OTR Macros / Floating Bodies}
+\writestatus{loading}{ConTeXt Structure Macros / Float Numbering}
%D Some of the sidefloat settings should move to page-sid; now it's quite
%D fuzzy the way the variables are set/reset.
@@ -19,170 +19,9 @@
\unprotect
\ifx\addlocalbackgroundtobox\undefined \def\addlocalbackgroundtobox{\resetglobal\gobbleoneargument} \fi
-
-% naar supp-box.tex
-
-\def\voidbox{\box\voidb@x}
-
-\def\spreadhbox#1% rebuilds \hbox{<box><hss><box><hss><box>}
- {\bgroup
- \ifhbox#1\relax
- \setbox2\voidbox
- \unhbox#1%
- \doloop
- {\unpenalty\unskip\unpenalty\unskip\unpenalty\unskip
- \setbox0\lastbox
- \ifvoid0
- \exitloop
- \else
- \setbox2\hbox
- {\ifhbox0 \spreadhbox0\else\box0\fi
- \ifvoid2 \else\hss\unhbox2\fi}%
- \fi}%
- \ifvoid2\else\unhbox2\fi
- \else
- \box#1%
- \fi
- \egroup}
\def\placefloats{\doflushfloats} % keep this one
-\startmessages dutch library: floatblocks
- title: plaatsblokken
- 1: -- hernummerd / -- => --
- 2: -- bewaard
- 3: -- verplaatst
- 4: -- geplaatst
- 5: volgorde aangepast
- 6: maximaal -- boven
- 7: maximaal -- onder
- 8: minder dan -- regels
- 9: volgorde verstoord
- 10: -- begrensd
- 11: geen blok opgegeven
- 12: niet gedefinieerd
- 13: er is niets te splitsen
-\stopmessages
-
-\startmessages english library: floatblocks
- title: floatblocks
- 1: -- renumbered / -- => --
- 2: -- saved
- 3: -- moved
- 4: -- placed
- 5: order adapted
- 6: n of top floats limited to --
- 7: n of bottom floats limited to --
- 8: less than -- lines
- 9: order disturbed
- 10: -- limited
- 11: no block given
- 12: undefined
- 13: there is nothing to split
-\stopmessages
-
-\startmessages german library: floatblocks
- title: Gleitobjektbloecke
- 1: -- neu nummeriert / -- => --
- 2: -- gespeichert
- 3: -- verschoben
- 4: -- plaziert
- 5: Reihenfolge angepasst
- 6: Anz. der oberen Gleitobjekte beschraengt auf --
- 7: Anz. der unteren Gleitobjekte beschraengt auf --
- 8: weniger als -- zeilen
- 9: Reigenfolge gestoert
- 10: -- begrenzt
- 11: kein Block gegeben
- 12: undefiniert
- 13: there is nothing to split
-\stopmessages
-
-\startmessages czech library: floatblocks
- title: plovouciobjekty
- 1: -- precislovano / -- => --
- 2: -- ulozeno
- 3: -- presunuto
- 4: -- umisteno
- 5: poradi prizpusobeno
- 6: pocet hornich plovoucich objektu je omezen na --
- 7: pocet spodnich plovoucich objektu je omezen na --
- 8: radku je mene nez --
- 9: poradi naruseno
- 10: -- omezeno
- 11: nedan zadny blok
- 12: nedefinovano
- 13: there is nothing to split
-\stopmessages
-
-\startmessages italian library: floatblocks
- title: oggetti mobili
- 1: -- rinumerato / -- => --
- 2: -- salvato
- 3: -- mosso
- 4: -- sistemato
- 5: ordine aggiustato
- 6: n di top floats limitato a --
- 7: n di bottom floats limitato a --
- 8: meno di -- righe
- 9: ordine disturbato
- 10: -- limitato
- 11: nessun oggetto specificato
- 12: non definito
- 13: there is nothing to split
-\stopmessages
-
-\startmessages norwegian library: floatblocks
- title: flytblokker
- 1: -- renummerert / -- => --
- 2: -- lagret
- 3: -- flyttet
- 4: -- plassert
- 5: rekkefølge tilpasset
- 6: maksimalt -- flytblokker øverst
- 7: maksimalt -- flytblokker nederst
- 8: mindre enn -- linjer
- 9: rekkefølge endret
- 10: -- begrenset
- 11: ingen blokk oppgitt
- 12: udefinert
- 13: there is nothing to split
-\stopmessages
-
-\startmessages romanian library: floatblocks
- title: Blocuri
- 1: -- renumerotat / -- => --
- 2: -- salvat
- 3: -- mutat
- 4: -- plasat
- 5: ordinea adaptata
- 6: nr. cadrelor de sus limitat la --
- 7: nr. blocurilor de jos limitat la --
- 8: mai putin de -- linii
- 9: ordinea deranjata
- 10: -- limitat
- 11: nu este dat nici un bloc
- 12: nedefinit
- 13: there is nothing to split
-\stopmessages
-
-\startmessages french library: floatblocks
- title: blocs de flottants
- 1: -- renuméroté / -- => --
- 2: -- sauvegardé
- 3: -- déplacé
- 4: -- placé
- 5: ordre adapté
- 6: n flottants de haut de page limité à --
- 7: n flottants de bas de page limité à --
- 8: moins de -- lignes
- 9: ordre perturbé
- 10: -- limité
- 11: pas de bloc donné
- 12: indéfini
- 13: there is nothing to split
-\stopmessages
-
\def\floatparameter #1{\csname\??fl\currentfloat#1\endcsname}
\def\floatcaptionparameter#1{\csname\??kj\currentfloat#1\endcsname}
@@ -244,7 +83,7 @@
{\expanded{\dodocomplexsplitfloat[\currentfloat][\floatlocation]}}
{\expanded{\dodocomplexplacefloat[\currentfloat][\floatlocation]}}}
-\def\dodocomplexsplitfloat[#1][#2][#3]#4%
+\long\def\dodocomplexsplitfloat[#1][#2][#3]#4%
{\splitfloat{\dodocomplexplacefloat[#1][#2][#3]{#4}}}
\def\flushfloatslist
@@ -255,7 +94,7 @@
\v!innermargin,\v!outermargin,\v!inneredge,\v!outeredge,%
\v!text,\v!opposite}% \v!page
-\def\dodocomplexplacefloat[#1][#2][#3]#4%
+\long\def\dodocomplexplacefloat[#1][#2][#3]#4%
{\flushnotes
\flushsidefloats % here !
\ifsomefloatwaiting
@@ -304,7 +143,7 @@
\let\floatrotation\!!zerocount
-\def\presetfloatvariables#1#2#3#4%
+\long\def\presetfloatvariables#1#2#3#4%
{\doifcommonelse
{#2}
{\v!left,\v!right,\v!inner,\v!outer,%
@@ -395,8 +234,6 @@
\hsize\localhsize
\fi}
-\newevery \everyinsidefloat \relax
-
\appendtoks
\everyinsidefloat\emptytoks % in case it's called earlier
\dogetfloatdata
@@ -481,7 +318,7 @@
\def\hangsidefloat[#1]%
{\global\sidefloatsidelines#1\relax}
-\def\xdocompletefloat#1#2#3#4#5#6%
+\long\def\xdocompletefloat#1#2#3#4#5#6%
{\ifextrafloatactions
\doifinsetelse\v!text{#4}
{% fuzzy, text overloads left, since then it's a directive
@@ -559,7 +396,7 @@
\flushsidefloats % hoort eigenlijk niet hier
\docomplexplacefloat[#1][\v!text,#2,\v!left][#3]}
-\def\docomplexreserveblock[#1][#2][#3][#4]#5%
+\long\def\docomplexreserveblock[#1][#2][#3][#4]#5%
{\getvalue{\e!place#1}[#3][#4]{#5}{\localframed[\??fl#1][#2]{#1}}}
\def\docomplexstartreservetextblock[#1][#2][#3][#4]%
@@ -618,6 +455,7 @@
\c!leftframe=\@@bkleftframe,
\c!rightframe=\@@bkrightframe,
\c!frameoffset=\@@bkframeoffset,
+ \c!framecolor=\@@bkframecolor,
%\c!local=\@@bklocal,
\c!textmethod=\@@bktextmethod,
\c!sidemethod=\@@bksidemethod,
@@ -687,32 +525,6 @@
% \setupfloat[...][leftmargindistance=1cm,default={left,none}]
-% \def\redodefinefloat[#1][#2][#3]% same label/number
-% {\presetlocalframed[\??fl#1]%
-% \copylocalframed[\??fl#1][\??fl#3]%
-% \copyparameters[\??fl#1][\??fl#3]
-% [\c!width,\c!height,%\c!local,
-% \c!maxwidth,\c!maxheight,\c!minwidth,
-% \c!margin,\c!sidespacebefore,\c!sidespaceafter,\c!sidealign,
-% \c!leftmargindistance,\c!rightmargindistance,\c!criterium,
-% \c!leftmargin,\c!rightmargin,\c!innermargin,\c!outermargin,
-% \c!frame,\c!radius,\c!corner,\c!location,\c!background,\c!framecolor,
-% \c!backgroundscreen,\c!backgroundcolor,\c!backgroundoffset,
-% \c!topframe,\c!bottomframe,\c!leftframe,\c!rightframe,
-% \c!frameoffset,\c!pageboundaries,\c!default,
-% \c!textmethod,\c!sidemethod,\c!method]%
-% \copyparameters[\??kj#1][\??kj#3]
-% [\c!location,\c!before,\c!inbetween,\c!after,
-% \c!spacebefore,\c!spaceinbetween,\c!spaceafter,
-% \c!width,\c!headstyle,\c!headcolor,\c!style,\c!color,
-% \c!textstyle,\c!textcolor,\c!minwidth,
-% \c!align,\c!number,\c!way,\c!blockway,\c!setups,
-% \c!leftmargin,\c!rightmargin,\c!innermargin,\c!outermargin,
-% \c!sectionnumber,\c!separator,\c!stopper,\c!suffix,\c!distance,\c!conversion]%
-% \definenumber[#1][#3]%
-% \presetlabeltext[#1=\labeltext{#3}]%
-% \dodefinefloatcommands[#1][#2]}
-
\def\redodefinefloat[#1][#2][#3]% same label/number
{\presetlocalframed[\??fl#1]%
\copylocalframed[\??fl#1][\??fl#3]%
@@ -906,7 +718,7 @@
\fi
\else
\global\savednoffloats\zerocount
- \global\setbox\floatbox\box\voidb@x
+ \global\setbox\floatbox\emptybox
\fi}
\def\uncenteredfloatbox
@@ -1281,7 +1093,7 @@
\def\placefloatcaption
{\dodoubleempty\doplacefloatcaption}
-\def\doplacefloatcaption[#1][#2]#3%
+\long\def\doplacefloatcaption[#1][#2]#3%
{\setfloatcaption[#1][#2]{#3}%
\placefloatcaptiontext[#1]%
\placefloatcaptionreference[#1]}
@@ -1289,7 +1101,7 @@
\def\setfloatcaption % \dosetfloatcaption already in use
{\dodoubleempty\dodosetfloatcaption} % beware, name clash
-\def\dodosetfloatcaption[#1][#2]#3% to do namespace for number/ascii
+\long\def\dodosetfloatcaption[#1][#2]#3% to do namespace for number/ascii
{\ifnofloatnumber % also handle trialtypesetting
\letgvalue{@fl@r@#1}\relax
\letgvalue{@fl@t@#1}\relax
@@ -1329,7 +1141,7 @@
\newbox\captionbox
-\def\putcompletecaption#1#2%
+\long\def\putcompletecaption#1#2%
{\doifsomething{\floatcaptionparameter\c!spacebefore}{\blank[\floatcaptionparameter\c!spacebefore]}%
% \floatcaptionparameter\c!before % test for side effects first
\noindent
@@ -1405,7 +1217,7 @@
\def\dofakecaptionthings
{\hbox{\dosetcaptionthings\hskip\leftskip\hskip\rightskip}}
-\def\docheckcaptioncontent#1#2%
+\long\def\docheckcaptioncontent#1#2%
{\ifnofloatcaption \else
\setbox\tempcaptionbox\hbox
{\trialtypesettingtrue
@@ -1442,7 +1254,7 @@
{\floatcaptionparameter\c!innermargin}{\floatcaptionparameter\c!outermargin}%
\alignedline{\floatparameter\c!location}\v!middle}
-\def\dosetpagfloat#1#2#3% \copy wegwerken
+\long\def\dosetpagfloat#1#2#3% \copy wegwerken
{\bgroup
\setlocalfloathsize
\ifnum\floatrotation>0
@@ -1977,7 +1789,7 @@
\box\floatbox
\ifdone\hskip\effectiverightskip\fi\hss}}
-\def\dosetparfloat#1#2#3%
+\long\def\dosetparfloat#1#2#3%
{\bgroup
\forgetall
\postponenotes
@@ -2076,7 +1888,7 @@
\xdef\naturalfloatwidth {\the\wd#1}%
\xdef\naturalfloatdepth {\the\dp#1}}
-\def\doifelsemainfloatbody#1#2%
+\long\def\doifelsemainfloatbody#1#2%
{\ifinsidesplitfloat\ifconditional\splitfloatfirstdone#2\else#1\fi\else#1\fi}
@@ -2126,257 +1938,8 @@
\fi
\global\insidefloatfalse}
-\newif\ifmargeblokken
-
-\def\dosetupmarginblocks[#1]%
- {\getparameters[\??mb][#1]%
- \doifelse\@@mbstate\v!start
- {\showmessage\m!layouts4\empty
- \margeblokkentrue
- \let\somenextfloat\dosomenextfloat
- \let\startmarginblock\dostartmarginblock
- \let\stopmarginblock\dostopmarginblock}%
- {\showmessage\m!layouts5\empty
- \margeblokkenfalse
- \def\somenextfloat[##1]%
- {\someelsefloat[##1,\v!here]}%
- \let\startmarginblock\dontstartmargeblok
- \let\stopmarginblock\dontstopmargeblok}}
-
-\def\setupmarginblocks
- {\dosingleargument\dosetupmarginblocks}
-
-\newbox\marginbox
-
-\def\dosomenextfloat[#1]%
- {\global\setbox\marginbox\vbox
- {\hsize\@@mbwidth
- \unvcopy\marginbox
- \ifvoid\marginbox\else\expandafter\@@mbinbetween\fi
- \box\floatbox\filbreak}%
- \ifdim\ht\marginbox>\textheight
- \dosavefloatinfo
- \else
- \doinsertfloatinfo
- \fi}
-
-\newbox\preparedmarginbox
-
-\def\reshapemargin
- {\ifdim\ht\preparedmarginbox>\zeropoint
- \beginofshapebox
- \unvbox\preparedmarginbox
- \endofshapebox
- \reshapebox
- {\box\shapebox}%
- \setbox\preparedmarginbox\vbox to \textheight
- {\@@mbtop
- \flushshapebox
- \@@mbbottom}%
- \fi}
-
-\def\plaatsrechtermargeblok
- {\hskip\rightmarginwidth}
-
-\def\plaatslinkermargeblok
- {\hskip\leftmarginwidth}
-
-\def\checkmargeblokken
- {\ifvoid\marginbox\else\docheckmargeblokken\fi}
-
-\def\docheckmargeblokken % erg inefficient
- {\setbox\preparedmarginbox\vbox
- {\forgetall
- \splittopskip\topskip
- \ifvoid\marginbox\else
- \ifdim\ht\marginbox>\textheight
- \vsplit\marginbox to \textheight
- \else
- \unvbox\marginbox
- \fi
- \fi}%
- \reshapemargin
- \setbox\preparedmarginbox\vbox
- {\@@mbbefore\box\preparedmarginbox\@@mbafter}%
- \def\rightmarginbox
- {\def\plaatsrechtermargeblok
- {\setbox\preparedmarginbox\hbox to \rightmarginwidth
- {\@@mbleft\box\preparedmarginbox\@@mbright}%
- \vsmashbox\preparedmarginbox
- \box\preparedmarginbox}}%
- \def\leftmarginbox
- {\def\plaatslinkermargeblok
- {\setbox\preparedmarginbox\hbox to \leftmarginwidth
- {\@@mbright\box\preparedmarginbox\@@mbleft}%
- \vsmashbox\preparedmarginbox
- \box\preparedmarginbox}}%
- \processaction % traag
- [\@@mblocation]
- [ \v!inmargin=>\doifbothsidesoverruled\rightmarginbox\rightmarginbox\leftmarginbox,
- \v!middle=>\doifbothsidesoverruled\rightmarginbox\leftmarginbox\rightmarginbox,
- \v!left=>\leftmarginbox,
- \v!right=>\rightmarginbox,
- \s!unknown=>\setbox\preparedmarginbox\hbox{}]}
-
-\def\dostartmarginblock % 2 maal \vbox ivm \unvbox elders
- {\global\setbox\marginbox\vtop\bgroup\vbox\bgroup
- \hsize\@@mbwidth
- \ifvoid\marginbox\else
- \unvbox\marginbox
- \@@mbinbetween
- \fi
- \setupalign[\@@mbalign]%
- \dostartattributes\??mb\c!style\c!color{}%
- \begstrut\ignorespaces}
-
-\def\dostopmarginblock
- {\unskip\endstrut
- \dostopattributes
- \egroup
- \egroup}
-
-\def\dontstartmargeblok
- {\@@mbbefore
- \bgroup
- \dostartattributes\??mb\c!style\c!color\empty}
-
-\def\dontstopmargeblok
- {\dostopattributes
- \egroup
- \@@mbafter}
-
-\newcounter\nofpostponedblocks
-
-\newif\ifinpostponing
-
-\newevery\everytopofpage\relax
-
-\appendtoks \the\everytopofpage \to\everystarttext
-\appendtoks\global\everytopofpage\emptytoks\to\everystoptext
-
-% \startpostponing [pagenumber] [+pageoffset]
-%
-% \startpostponing[2]
-% PAGE 2 \blank
-% \stoppostponing
-%
-% \startpostponing[+1]
-% PAGE +1 \blank
-% \stoppostponing
-%
-% \startpostponing[+2]
-% PAGE +2 \blank
-% \stoppostponing
-%
-% \starttext \dorecurse{4}{\input tufte \page} \stoptext
-
-\newtoks \postponedpageblocks
-\newcounter\nofpostponedpageblocks
-
-% \ifinpostponing: handhaven, want gebruikt in stijlen ! ! ! ! !
-
-\def\flushpagefloats
- {\doifoddpageelse
- {\ifvoid\collectedleftpagefloats
- \ifvoid\collectedrightpagefloats\else
- \unvbox\collectedrightpagefloats
- \page
- %\the\everytopofpage
- \fi
- \fi}
- {\ifvoid\collectedleftpagefloats\else
- \unvbox\collectedleftpagefloats
- \page
- %\the\everytopofpage
- \fi
- \ifvoid\collectedrightpagefloats\else
- \unvbox\collectedrightpagefloats
- \page
- %\the\everytopofpage
- \fi}%
- \ifvoid\collectedpagefloats\else
- % message
- \unvbox\collectedpagefloats
- \fi}
-
-% \def\flushrestfloats
-% {\doif\@@bkcache\v!no\doflushfloats}
-
-% \let\flushrestfloats\relax
-
-\def\dopostponeblock
- {\bgroup % new may 2004
- \setsystemmode\v!postponing % new may 2004
- \the\everytopofpage
-% \flushrestfloats
- \flushpagefloats
- \donefalse
- \ifinpostponing \else
- \ifcase\nofpostponedblocks \else \donetrue \fi
- \ifcase\nofpostponedpageblocks \else \donetrue \fi
- \fi
- \ifdone
- \bgroup % we need the color/font switch, else problems inside split verbatim
- \setnormalcatcodes % postponing in verbatim
- \pushpostponedpagecolor
- \restoreglobalbodyfont % The \nof-test is
- \global\pagetotal\zeropoint % recently added and
- \global\inpostponingtrue % definitely needed else
- \the\postponedpageblocks % we can loose or disorder
- \dorecurse\nofpostponedblocks % floats; anyhow, this
- {\getbuffer[pbuf-\recurselevel]}% % mechanism is still
- \doflushfloats % new but potential dangerous % suboptimal and needs a
- \doglobal\newcounter\nofpostponedblocks % proper analysis
- \global\inpostponingfalse
- \poppostponedpagecolor
- \egroup
- \fi
- \egroup} % new may 2004
-
-\def\getpostponedblock#1#2%
- {\doif{#1}\realfolio{\getbuffer[rbuf-#2]}} % no \ifnum, avoid \fi
-
-% beware, \dosingleempty conflicts with buffers (feeds back the \par)
-
-\setvalue{\e!start\v!postponing}%
- {\bgroup
- \obeylines
- \doifnextcharelse[%
- {\egroup\nodostartpostponing}{\egroup\dodostartpostponing}}
-
-\def\nodostartpostponing[#1]%
- {\doglobal\increment\nofpostponedpageblocks
- \bgroup % a little bit of misusing grouping
- \doifinstring{+}{#1}\advance \realpageno#1\relax % ugly but efficient
- \doglobal\appendetoks\noexpand\getpostponedblock
- {\realfolio}{\nofpostponedpageblocks}\to\postponedpageblocks
- \egroup
- \showmessage\m!layouts3\nofpostponedpageblocks
- \dostartbuffer[rbuf-\nofpostponedpageblocks]%
- [\e!start\v!postponing][\e!stop\v!postponing]}
-
-\def\dodostartpostponing
- {\doglobal\increment\nofpostponedblocks
- \showmessage\m!layouts3\nofpostponedblocks
- \expanded{\dostartbuffer[pbuf-\nofpostponedblocks][\e!start\v!postponing][\e!stop\v!postponing]}}
-
\def\dooutput{\sidefloatoutput} % redefinition of \dooutput
-\setupmarginblocks
- [\c!state=\v!start,
- \c!location=\v!inmargin,
- \c!width=\rightmarginwidth,
- \c!style=,
- \c!color=,
- \c!align=,
- \c!left=,
- \c!right=,
- \c!top=,
- \c!inbetween=\blank,
- \c!bottom=\vfill,
- \c!before=,
- \c!after=]
-
\definefloat
[\v!figure]
[\v!figures]
@@ -2447,6 +2010,7 @@
\c!bottomframe=,
\c!leftframe=,
\c!rightframe=,
+ \c!framecolor=,
\c!frameoffset=\!!zeropoint,
\c!before=,
\c!after=,
diff --git a/Master/texmf-dist/tex/context/base/strc-flt.mkiv b/Master/texmf-dist/tex/context/base/strc-flt.mkiv
new file mode 100644
index 00000000000..bb19146a1fd
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/strc-flt.mkiv
@@ -0,0 +1,2129 @@
+%D \module
+%D [ file=strc-flt,
+%D version=2008.10.20,
+%D title=\CONTEXT\ Structure Macros,
+%D subtitle=Float Numbering,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA-ADE / Hans Hagen]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Structure Macros / Float Numbering}
+
+\registerctxluafile{strc-flt}{1.001}
+
+\unprotect
+
+%D This module needs a cleanup and will be split in
+%D strc-flt.tex and page-flt.mkiv cq. page-flt.mkii.
+
+\ifx\addlocalbackgroundtobox\undefined \def\addlocalbackgroundtobox{\resetglobal\gobbleoneargument} \fi
+
+\def\placefloats{\doflushfloats} % keep this one
+
+\let\currentfloat\empty
+
+\def\letfloatparameter #1{\expandafter\csname\??fl\currentfloat#1\endcsname}
+
+\def\floatparameter #1{\csname\dofloatparameter{\??fl\currentfloat}#1\endcsname}
+\def\floatsharedparameter#1{\csname \??fl #1\endcsname}
+\def\floatparameterhash #1{\dofloatparameterhash {\??fl\currentfloat}#1}
+
+\def\dofloatparameter #1#2{\ifcsname#1#2\endcsname#1#2\else\expandafter\dofloatparentparameter \csname#1\s!parent\endcsname#2\fi}
+\def\dofloatparameterhash#1#2{\ifcsname#1#2\endcsname #1\else\expandafter\dofloatparentparameterhash\csname#1\s!parent\endcsname#2\fi}
+
+\def\dofloatparentparameter #1#2{\ifx#1\relax\s!empty\else\dofloatparameter #1#2\fi}
+\def\dofloatparentparameterhash#1#2{\ifx#1\relax \else\dofloatparameterhash#1#2\fi}
+
+\def\detokenizedfloatparameter#1{\detokenize\expandafter\expandafter\expandafter{\csname\??fl\currentfloat#1\endcsname}}
+
+\def\dosetfloatattributes#1#2% style color
+ {\edef\fontattributehash {\floatparameterhash#1}%
+ \edef\colorattributehash{\floatparameterhash#2}%
+ \ifx\fontattributehash \empty\else\dosetfontattribute \fontattributehash #1\fi
+ \ifx\colorattributehash\empty\else\dosetcolorattribute\colorattributehash#2\fi}
+
+\def\floatcaptionparameter #1{\csname\dofloatcaptionparameter{\??kj\currentfloat}#1\endcsname}
+\def\floatcaptionparameterhash#1{\dofloatcaptionparameterhash {\??kj\currentfloat}#1}
+
+\def\dofloatcaptionparameter #1#2{\ifcsname#1#2\endcsname#1#2\else\expandafter\dofloatcaptionparentparameter \csname#1\s!parent\endcsname#2\fi}
+\def\dofloatcaptionparameterhash#1#2{\ifcsname#1#2\endcsname #1\else\expandafter\dofloatcaptionparentparameterhash\csname#1\s!parent\endcsname#2\fi}
+
+\def\dofloatcaptionparentparameter #1#2{\ifx#1\relax\s!empty\else\dofloatcaptionparameter #1#2\fi}
+\def\dofloatcaptionparentparameterhash#1#2{\ifx#1\relax \else\dofloatcaptionparameterhash#1#2\fi}
+
+\def\detokenizedcaptionparameter#1{\detokenize\expandafter\expandafter\expandafter{\csname\??kj\currentfloat#1\endcsname}}
+
+\def\dosetfloatcaptionattributes#1#2% style color
+ {\edef\fontattributehash {\floatcaptionparameterhash#1}%
+ \edef\colorattributehash{\floatcaptionparameterhash#2}%
+ \ifx\fontattributehash \empty\else\dosetfontattribute \fontattributehash #1\fi
+ \ifx\colorattributehash\empty\else\dosetcolorattribute\colorattributehash#2\fi}
+
+\def\dohandlenextfloatindent
+ {\checknextindentation[\floatparameter\c!indentnext]%
+ \dorechecknextindentation}
+
+%D The two shared (parent) definitions:
+
+% todo: everysetupfloat everysetupcaption for all floats
+
+\def\setupfloats {\dosingleargument\dosetupfloats} % was \??bk
+\def\setupcaptions{\dosingleargument\dosetupcaptions}
+
+\let\alldefinedfloats\empty
+
+\def\doprocessallfloats#1%
+ {\def\doprocesssomefloat##1{\def\currentfloat{##1}#1}%
+ \processcommacommand[\alldefinedfloats]\doprocesssomefloat}
+
+\def\dosetupfloats [#1]{\getparameters[\??fl][#1]\doprocessallfloats{\the\everysetupfloat}}
+\def\dosetupcaptions[#1]{\getparameters[\??kj][#1]\doprocessallfloats{\the\everysetupcaption}}
+
+% \def\dosetupfloats [#1]{\getparameters[\??fl][#1]}
+% \def\dosetupcaptions[#1]{\getparameters[\??kj][#1]}
+
+\setupcaptions
+ [\c!location=\v!bottom,
+ \c!grid=,
+ \c!before=, % not used (yet)
+ \c!inbetween={\blank[\v!medium]},
+ \c!after=, % not used (yet)
+ \c!spacebefore=,
+ \c!spaceinbetween=, % replaces fuzzy inbetween dual usage
+ \c!spaceafter=,
+ \c!width=\v!fit,
+ \c!minwidth=\v!fit, % id est: the width of the floatbox in some cases
+ \c!headstyle=\v!bold,
+ \c!headcolor=,
+ \c!leftmargin=\zeropoint,
+ \c!rightmargin=\zeropoint,
+ \c!outermargin=\zeropoint,
+ \c!innermargin=\zeropoint,
+ \c!setups=,
+ \c!style=\v!normal,
+ \c!color=,
+ \c!textstyle=,
+ \c!textcolor=,
+ \c!align=,
+ \c!number=\v!yes,
+\c!prefix=\v!no,
+\c!prefixconnector=.,
+\c!way=bychapter,
+\c!prefixsegments=2:2,
+% \c!way=\@@nrway,
+% \c!blockway=\@@nrblockway,
+% \c!sectionnumber=\@@nrsectionnumber,
+% \c!separator=\@@koseparator,
+% \c!stopper=\@@kostopper,
+% \c!suffix=\floatcaptionsuffix, % hook
+ \c!distance=1em,
+ \c!conversion=\v!numbers,
+ \c!command=]
+
+% we can comment some of these
+
+\setupfloats
+ [\c!location=\v!middle,
+ \c!width=8\lineheight,
+ \c!height=6\lineheight,
+ \c!offset=\v!overlay,
+ \c!frame=\v!off,
+ \c!strut=\v!no,
+ \c!radius=.5\bodyfontsize,
+ \c!corner=\v!rectangular,
+ \c!background=,
+ \c!backgroundcolor=,
+ \c!backgroundoffset=\!!zeropoint,
+ \c!topframe=,
+ \c!bottomframe=,
+ \c!leftframe=,
+ \c!rightframe=,
+ \c!frameoffset=\!!zeropoint,
+ \c!before=,
+ \c!after=,
+ \c!spacebefore=\v!big,
+ \c!spaceafter=\v!big,
+ \c!sidespacebefore=\floatsharedparameter\c!spacebefore,
+ \c!sidespaceafter=\floatsharedparameter\c!spaceafter,
+ \c!sidealign=\v!normal,
+ \c!textmethod=\ifgridsnapping2\else0\fi, % 0=raw 1=safe (.99pg) 2=tight (-1pt)
+ \c!sidemethod=\ifgridsnapping2\else1\fi, % 0=raw 1=safe (.99pg) 2=tight (-1pt)
+ \c!indentnext=\v!no,
+ \c!margin=1em,
+ \c!method=1,
+ \c!cache=\v!yes, % when no, then intermediate flush
+ \c!leftmargin=\zeropoint, % displacement in 'normal floats'
+ \c!rightmargin=\zeropoint, % idem
+ \c!innermargin=\zeropoint, % idem
+ \c!outermargin=\zeropoint, % idem
+ \c!leftmargindistance=\zeropoint,
+ \c!rightmargindistance=\floatparameter\c!leftmargindistance,
+ \c!ntop=2,
+ \c!nbottom=0,
+ \c!nlines=4,
+ \c!local=,
+ \c!bottombefore=, % e.g. \vfill
+ \c!bottomafter=,
+ \c!default=\v!figure,
+ \c!numbering=\v!yes]
+
+\def\@@bknumbering {\floatsharedparameter\c!numbering } % global one
+\def\@@bkspaceafter {\floatsharedparameter\c!spaceafter } % global one
+\def\@@bkspacebefore{\floatsharedparameter\c!spacebefore} % global one
+\def\@@bknbottom {\floatsharedparameter\c!nbottom } % global one
+\def\@@bkntop {\floatsharedparameter\c!ntop } % global one
+\def\@@bknlines {\floatsharedparameter\c!nlines } % global one
+\def\@@bkmargin {\floatsharedparameter\c!margin } % global one
+\def\@@bkcache {\floatsharedparameter\c!cache } % global one
+
+% float
+%
+% [%\c!width=8\lineheight, % 15\bodyfontsize,
+% %\c!height=6\lineheight, % 10\bodyfontsize,
+% \c!offset=\v!overlay,
+% \c!width=\v!fit,
+% \c!height=\v!fit,
+% \c!minwidth=,
+% \c!maxwidth=,
+% \c!maxheight=,
+% \c!criterium=,
+% % inherited
+% \c!pageboundaries=,
+% \c!default=]%
+
+% number
+%
+% [\c!text=#1,
+% \c!location=\v!intext,
+% \c!way=\floatcaptionparameter\c!way,
+% \c!blockway=\floatcaptionparameter\c!blockway,
+% \c!sectionnumber=\floatcaptionparameter\c!sectionnumber,
+% \c!conversion=\floatcaptionparameter\c!conversion]%
+
+
+%D Individial settings:
+
+\def\setupfloat {\dodoubleargument\dosetupfloat}
+\def\setupcaption{\dodoubleargument\dosetupcaption}
+
+\newtoks\everysetupfloat
+\newtoks\everysetupcaption
+
+\def\dosetupfloat[#1][#2]%
+ {\def\docommand##1{\getparameters[\??fl##1][#2]\def\currentfloat{##1}\the\everysetupfloat}%
+ \processcommalist[#1]\docommand}
+
+\def\dosetupcaption[#1][#2]%
+ {\def\docommand##1{\getparameters[\??kj##1][#2]\def\currentfloat{##1}\the\everysetupcaption}%
+ \processcommalist[#1]\docommand}
+
+\appendtoks
+ \dostructurecountersetup\currentfloat\floatcaptionparameter
+\to \everysetupcaption
+
+%D Definitions:
+
+\def\definefloat
+ {\dotripleempty\dodefinefloat}
+
+\def\dodefinefloat[#1][#2][#3]% #1=naam #2=meervoud #3=parent
+ {\ifthirdargument
+ \redodefinefloat[#1][#2][#3]%
+ \else\ifsecondargument
+ \dododefinefloat[#1][#2]%
+ \else
+ \dododefinefloat[#1][#1]%
+ \fi\fi}
+
+\presetlocalframed[\??fl]
+
+\def\dododefinefloat[#1][#2]%
+ {\copylocalframed[\??fl#1][\??fl]%
+ \definestructurecounter[#1]%
+ \addtocommalist{#1}\alldefinedfloats
+ \setupfloat[#1][\s!parent=\??fl]%
+ \setupcaption[#1][\s!parent=\??kj]%
+ \definelist[#1]%
+ \presetlabeltext[#1=\Word{#1}~]%
+ \presetheadtext[#2=\Word{#2}]%
+ \dodefinefloatcommands[#1][#2]%
+ }% \newnodelocation{\v!float\@@thenumber{#1}}}
+
+\def\redodefinefloat[#1][#2][#3]%
+ {\copylocalframed[\??fl#1][\??fl#3]%
+ \setupfloat[#1][\s!parent=\??fl#3]%
+ \setupcaption[#1][\s!parent=\??kj#3]%
+ \definestructurecounter[#1][#3]%
+ \definelist[#1][#3]%
+ \presetlabeltext[#1=\Word{#3}~]%
+ \presetheadtext[#2=\Word{#2}]%
+ \dodefinefloatcommands[#1][#2]}
+
+\def\dodefinefloatcommands[#1][#2]%
+ {\setvalue {\e!place\e!listof#2}{\dodoubleempty\doplacelist[#1]}%
+ \setvalue {\e!complete\e!listof#2}{\dotripleempty\dodocompletelist[#1][#2]}%
+ \setvalue {\e!place#1}{\dotripleempty\docomplexplacefloat[#1]}%
+ \setvalue {\e!reserve#1}{\doquadrupleempty\docomplexreserveblock[#1]}%
+ \setvalue {\e!start#1\e!text}{\dotripleempty\docomplexstarttextblock[#1]}%
+ \setvalue {\e!stop#1\e!text}{\dostoptextfloat}%
+ \setvalue{\e!start\e!reserve#1\e!text}{\doquadrupleempty\docomplexstartreservetextblock[#1]}%
+ \setvalue {\e!stop\e!reserve#1\e!text}{\dostoptextfloat}%
+ \setvalue {\e!emptyone#1}{\doemptyfloatblock{#1}}%
+ \setvalue {\e!emptytwo#1}{\doemptyfloatblock{#1}}}
+
+%D Fallback float body:
+
+\def\doemptyfloatblock#1%
+ {\framed
+ [\c!frame=\v!on,
+ \c!width=\floatsharedparameter\c!width,
+ \c!height=\floatsharedparameter\c!height,
+ \c!location=\v!normal,
+ \c!offset=\floatsharedparameter\c!offset]%
+ {\getmessage\m!floatblocks{12}\empty}}
+
+%D Data. We can generalize this to lists.
+
+\newif\ifnofloatcaption
+\newif\ifnofloatnumber
+\newif\ifemptyfloatcaption
+
+\def\getfloatparameters {\getparameters[\??fl\currentfloat]}
+\def\getcaptionparameters{\getparameters[\??kj\currentfloat]}
+
+\installstructurelistprocessor{float}{\usestructurelistprocessor{number+title}}
+
+\def\thecurrentfloatnumber
+ {\ifnofloatcaption \else \ifnofloatnumber \else
+ % \labeltexts\currentfloat{\convertedstructurecounter[\currentfloat]}% ! ! todo: use a lua call instead
+ \ifx\currentfloatnumber\relax\else
+ \labeltexts\currentfloat{\ctxlua{structure.lists.savednumber("\currentfloat",\currentfloatnumber)}}%
+ \fi
+ \fi \fi}
+
+\def\thecurrentfloatcaption
+ {\ifnofloatcaption \else
+ \ifx\currentfloatnumber\relax\else
+ \ctxlua{structure.lists.savedtitle("\currentfloat",\currentfloatnumber)}%
+ \fi
+ \fi}
+
+%D Captions.
+
+\let\floatcaptionsuffix\empty % an optional suffix
+\let\floatcaptionnumber\empty % a logical counter
+
+% the split is needed when for instance the float goes into
+% a multi page field and the list of figs becomes larger than
+% one page: cycle between 'only flush when object ref ok'
+% and 'one/many page fig list'; see "uguide finometer"
+%
+% potential sync bug with sectionblocks, see uguide.tex
+
+% NOT YET REDONE ! ! ! ! !
+
+ \def\placefloatcaption
+ {\dodoubleempty\doplacefloatcaption}
+
+ \long\def\doplacefloatcaption[#1][#2]#3%
+ {\setfloatcaption[#1][#2]{#3}%
+ \placefloatcaptiontext[#1]%
+ \placefloatcaptionreference[#1]}
+
+ \def\setfloatcaption % \dosetfloatcaption already in use
+ {\dodoubleempty\dodosetfloatcaption} % beware, name clash
+
+ \long\def\dodosetfloatcaption[#1][#2]#3% to do namespace for number/ascii
+ {\ifnofloatnumber % also handle trialtypesetting
+ \letgvalue{@fl@r@#1}\relax
+ \letgvalue{@fl@t@#1}\relax
+ \else
+ \preparefloatnumber{#1}%
+ \letgvalue{@fl@n@#1}\composedsectionnumber
+ % indirect macro can be more efficient
+ \setgvalue{@fl@r@#1}%
+ {\tracefloatnumber{#1}%
+ \ifconditional\retainfloatnumber\else
+ % todo
+ \fi
+ \letgvalue{@fl@r@#1}\relax}% nils
+ \setgvalue{@fl@t@#1}%
+ {\preparefullnumber{\??kj#1}{\getvalue{@fl@n@#1}}\preparednumber
+ \begingroup
+ \dosetfloatcaptionattributes\c!style\c!color
+ \begingroup
+ \dosetfloatcaptionattributes\c!headstyle\c!headcolor
+ \labeltexts{#1}{\preparednumber}%
+ \endgroup
+ \begingroup
+ \dosetfloatcaptionattributes\c!textstyle\c!textcolor
+ \dotfskip{\floatcaptionparameter\c!distance}#3%
+ \endgroup
+ \endgroup}%
+ \fi}
+
+ \long\def\dodosetfloatcaption[#1][#2]#3% to do namespace for number/ascii
+ {\letgvalue{@fl@r@#1}\relax
+ \letgvalue{@fl@t@#1}\relax}
+
+ \def\placefloatcaptiontext [#1]{\getvalue{@fl@t@#1}}
+ \def\placefloatcaptionnumber [#1]{\getvalue{@fl@n@#1}}
+ \def\placefloatcaptionreference[#1]{\getvalue{@fl@r@#1}}
+
+ % still needed for uguide
+
+ \let\placefloatlabel \placefloatcaption
+ \let\placefloatlabeltext \placefloatcaptiontext
+ \let\placefloatlabelreference \placefloatcaptionreference
+
+% TILL HERE
+
+\newbox\captionbox
+
+\long\def\putcompletecaption#1#2%
+ {\doifsomething{\floatcaptionparameter\c!spacebefore}{\blank[\floatcaptionparameter\c!spacebefore]}%
+ %\floatcaptionparameter\c!before % test for side effects first
+ \noindent
+ \gdef\lastcaptiontag{\strut#1}% was xdef
+ \begingroup
+ \dosetfloatcaptionattributes\c!style\c!color
+ \ifnofloatnumber
+ \else
+ \hbox{\dosetfloatcaptionattributes\c!headstyle\c!headcolor\strut#1}%
+ \ifnofloatcaption \else \ifemptyfloatcaption \else
+ \doifelsenothing{\floatcaptionparameter\c!spaceinbetween}
+ {\scratchskip\floatcaptionparameter\c!distance\relax
+ \dotfskip\scratchskip\emergencystretch.5\scratchskip}
+ {\blank[\floatcaptionparameter\c!spaceinbetween]}%
+ \fi \fi
+ \fi
+ \ifnofloatcaption
+ \globallet\lastcaptionht\!!zeropoint
+ \globallet\lastcaptiondp\!!zeropoint
+ \else
+ \dosetfloatcaptionattributes\c!textstyle\c!textcolor
+ \xdef\lastcaptionht{\strutheight}%
+ \xdef\lastcaptiondp{\strutdepth}%
+ \begstrut#2\endstrut\endgraf
+ \fi
+ \endgroup
+ %\floatcaptionparameter\c!after % test for side effects first
+ \doifsomething{\floatcaptionparameter\c!spaceafter}{\blank[\floatcaptionparameter\c!spaceafter]}}
+
+\let\lastcaptionht\!!zeropoint
+\let\lastcaptiondp\!!zeropoint
+
+\newbox\tempcaptionbox
+
+\newif\iftracecaptions
+
+\def\settracedcaptionbox
+ {\iftracecaptions\setbox\tempcaptionbox\ruledhbox{\box\tempcaptionbox}\fi}
+
+% \definefloat [figure-1] [figure]
+% \definefloat [figure-2] [figure]
+% \setupfloat [figure-1] [location=left,leftmargin=10mm]
+% \setupfloat [figure-2] [location=left,leftmargin=-5mm]
+% \setupcaption [figure-1] [align=flushleft]
+% \setupcaption [figure-2] [align=flushleft,leftmargin=15mm]
+%
+% \startsetups somefigure
+% \ifdim\wd\nextbox>\textwidth
+% \placefloat[figure-2][][]{}{\box\nextbox}
+% \else
+% \placefloat[figure-1][][]{}{\box\nextbox}
+% \fi
+% \stopsetups
+%
+% \def\setupswithbox[#1]{\dowithnextbox{\setups[#1]}\vbox}
+%
+% test \setupswithbox[somefigure]{\framed[width=3cm] {}} test
+% test \setupswithbox[somefigure]{\framed[width=\dimexpr\textwidth+3cm\relax]{}} test
+
+\def\dosetcaptionthings
+ {\setups[\floatcaptionparameter\c!setups]% expanded ?
+ %\advance\leftskip \floatcaptionparameter\c!leftmargin
+ %\advance\rightskip\floatcaptionparameter\c!rightmargin
+ \relax}
+
+\def\dofakecaptionthings
+ {\hbox{\dosetcaptionthings\hskip\leftskip\hskip\rightskip}}
+
+\long\def\docheckcaptioncontent#1#2%
+ {\ifnofloatcaption \else
+ \setbox\tempcaptionbox\hbox
+ {\trialtypesettingtrue
+ \notesenabledfalse
+ \putcompletecaption{#1}{#2}}%
+ % new, \placefigure{\XMLflush{somecaption}}{} passes earlier empty check
+ % so here we misuse the scratch box; actually this means that the previous
+ % test can go away (some day, when i redo this module)
+ \ifdim\wd\tempcaptionbox=\zeropoint
+ \global\emptyfloatcaptiontrue
+ \ifnofloatnumber
+ \global\nofloatcaptiontrue
+ \fi
+ \else
+ \setbox\tempcaptionbox\hbox{\dosetcaptionthings\hskip\leftskip\box\tempcaptionbox}% yet incomplete
+ \fi
+ \fi}
+
+% the tricky part of getting float related two pass data is
+% that we should fetch is early but can only save it with
+% the composed float box; this determines the order: get it
+% before saving it
+
+\definetwopasslist{\s!float\s!data} \newcounter\noffloatdata
+
+\let\twopassfloatdata\realpageno % used for odd/even determination, can be combined with nodelocation
+
+\def\dosavefloatdata % \expanded ... will change in mkiv
+ {\doglobal\increment\noffloatdata
+ \lazysavetaggedtwopassdata{\s!float\s!data}{\noffloatdata}{\noffloatpages}{\noexpand\realfolio}}% later {}{}{}{} and \getfirst...
+
+\def\dogetfloatdata % precedes save !
+ {\doglobal\increment\noffloatpages
+ \findtwopassdata{\s!float\s!data}{\noffloatpages}%
+ \iftwopassdatafound
+ \globallet\twopassfloatdata\twopassdata
+ \else
+ \globallet\twopassfloatdata\realpageno % \realfolio
+ \fi}
+
+\def\tracefloatnumber#1%
+ {\doifnot{\floatsharedparameter\c!numbering}\v!nocheck{\tagnodelocation{\v!float\@@thenumber{#1}}}}
+
+\newconditional\retainfloatnumber
+
+\def\preparefloatnumber#1%
+ {\xdef\floatcaptionnumber{#1}%
+ \doifelsenodelocation{\v!float\@@thenumber{#1}}
+ \donothing {\chardef\nodelocationmode\zerocount}%
+ \doifelse{\floatsharedparameter\c!numbering}\v!nocheck
+ {\incrementnumber[#1]%
+ \makesectionnumber[#1]%
+ \ifconditional\retainfloatnumber\decrementnumber[#1]\fi}
+ {\ifinsidecolumns
+ \chardef\nodelocationmode\zerocount
+ % to be perfected:
+ % \chardef\nodelocationmode\plustwo
+ \fi
+% FOR THE MOMENT NOT AVAILABLE
+\chardef\nodelocationmode\zerocount
+% BUT NOT THAT HARD TO DO
+ \ifcase\nodelocationmode
+ \incrementnumber[#1]%
+ \makesectionnumber[#1]%
+ \ifconditional\retainfloatnumber\decrementnumber[#1]\fi
+ \else
+ % force check, so that we get a proper way-sync and
+ % can use the accumulated number
+ % \checknumber[#1]% \incrementnumber does this
+ \incrementnumber[#1]%
+ \savenumber[#1]%
+ % the real work is done here
+ \nextnodelocation{\v!float\@@thenumber{#1}}% better \nextfloatnumber
+ \analyzenodelocation{\v!float\@@thenumber{#1}}%
+ \scratchcounter\getnodelocationo{\v!float\@@thenumber{#1}}%
+ \advance\scratchcounter\minusone
+ % here we correct for 'per whatever handling'
+ \advance\scratchcounter-\accumulatednumber[#1]%
+ \setnumber[#1]\scratchcounter
+ \incrementnumber[#1]%
+ \makesectionnumber[#1]%
+ \restorenumber[#1]%
+ % now we're back to normal numbering
+ \fi}}
+
+%D test case:
+%D
+%D \starttyping
+%D \setupfloat[figure][criterium=\marginwidth,fallback=bottom]
+%D \dorecurse{3}{
+%D \chapter{test}
+%D \placefigure[bottom]{1}{\framed{bottom}}
+%D test
+%D \placetable[bottom]{1}{\framed{table}}
+%D test
+%D \placetable{2}{\framed{table}}
+%D test
+%D \placefigure[left]{2}{\framed{left but way too wide}}
+%D \input tufte
+%D \placefigure[left]{3}{\framed{left but ok}}
+%D \input tufte }
+%D \stoptyping
+
+% A complication is that we may have to handle a pagebreak
+% first, which in turn may issue a (postponed) float.
+% Therefore we may not trust on variable assignments before
+% we're realy dealing with the float. Some day I'll root out
+% the global settings.
+
+\def\docomplexplacefloat[#1][#2]% [#3]#4%
+ {\edef\currentfloat{#1}%
+ \doifnothing\currentfloat{\let\currentfloat\v!figure}%
+ \doifelsenothing{#2}
+ {\edef\floatlocation{\floatparameter\c!default}}
+ {\edef\floatlocation{#2}}%
+ \doifinsetelse\v!split{#2}
+ {\normalexpanded{\noexpand\dodocomplexsplitfloat[\currentfloat][\floatlocation]}}
+ {\normalexpanded{\noexpand\dodocomplexplacefloat[\currentfloat][\floatlocation]}}}
+
+\long\def\dodocomplexsplitfloat[#1][#2][#3]#4%
+ {\splitfloat{\dodocomplexplacefloat[#1][#2][#3]{#4}}}
+
+\def\flushfloatslist
+ {\v!left,\v!right,\v!inner,\v!outer,%
+ \v!backspace,\v!cutspace,%
+ \v!inleft,\v!inright,\v!inmargin,%
+ \v!leftmargin,\v!rightmargin,\v!leftedge,\v!rightedge,%
+ \v!innermargin,\v!outermargin,\v!inneredge,\v!outeredge,%
+ \v!text,\v!opposite}% \v!page
+
+\long\def\dodocomplexplacefloat[#1][#2][#3]#4%
+ {\flushnotes
+ \flushsidefloats % here !
+ \ifsomefloatwaiting
+ % this was \checkwaitingfloats spread all over
+ \doifinsetelse\v!always{#2}
+ {\showmessage\m!floatblocks5\empty}
+ {\normalexpanded{\noexpand\doifcommonelse{#2}{\flushfloatslist}}\doflushfloats\donothing}%
+ % but which should be done before using box \floatbox
+ \fi
+ \ifmargeblokken
+ \doifinset\v!margin{#2}\endgraf
+ \fi
+ \global\insidefloattrue
+ \begingroup % **
+ \ifmargeblokken
+ \doifinset\v!margin{#2}{\hsize\@@mbwidth}%
+ \fi
+ \the\everyinsidefloat
+ \let\@@extrafloat\empty
+ \presetmorefloatvariables{#2}%
+ \dowithnextboxcontent % better a \the\everyfloattoks
+ {\setlocalfloathsize
+ \floatparameter\c!inner
+ \fuzzysnappingfalse
+ \postponenotes} % new
+ {\doifsomething{\floatparameter\c!criterium}
+ {\ifdim\wd\nextbox>\floatparameter\c!criterium\relax
+ \edef\forcedfloatmethod{\floatvariable\c!fallback}%
+ \ifx\forcedfloatmethod\empty\let\forcedfloatmethod\v!here\fi
+ \fi}%
+ \xdocompletefloat{#1}{#3}{#2}{#4}% ** not yet done
+ % we need to carry over the par because of side floats
+ \doifnotinset\v!text{#2}{\carryoverpar\endgroup}%
+ \global\sidefloatdownshift \zeropoint
+ \global\sidefloatextrashift\zeropoint
+ \ifparfloat
+ \doifinset\v!reset{#2}\forgetsidefloats
+ \doinhibitblank
+ \fi}% better move this to side floats
+ \vbox}
+
+\def\xxdocompletefloat#1#2%
+ {\rightorleftpageaction{\let\@@extrafloat#1}{\let\@@extrafloat#2}}
+
+\chardef\textfloatmethod=0 % 0=raw 1=safe (.99) 2=tight (-1pt)
+\chardef\sidefloatmethod=1 % 0=raw 1=safe (.99) 2=tight (-1pt)
+
+\let\floatrotation\!!zerocount
+
+\long\def\presetfloatvariables#1#2#3#4%
+ {\doifcommonelse
+ {#2}
+ {\v!left,\v!right,\v!inner,\v!outer,%
+ \v!inleft,\v!inright,\v!inmargin,%
+ \v!backspace,\v!cutspace,%
+ \v!innermargin,\v!outermargin,\v!inneredge,\v!outeredge,%
+ \v!leftmargin,\v!leftedge,\v!rightmargin,\v!rightedge}
+ {\global\parfloattrue}
+ {\global\parfloatfalse}%
+ \ifinsidecolumns
+ \global\parfloatfalse
+ \fi
+ \global\sidefloatshift\zeropoint
+ \global\sidefloatmaximum\zeropoint
+ \global\chardef\sidefloatmethod\floatparameter\c!sidemethod
+ \global\chardef\textfloatmethod\floatparameter\c!textmethod
+ \global\chardef\sidefloatalign\zerocount
+ \globallet\floatrotation\!!zerocount
+ \calculatefloatskips
+ \ifparfloat
+ \processaction
+ [\floatparameter\c!sidealign]
+ [\v!height=>\global\chardef\sidefloatalign\plusone,%
+ \v!line=>\global\chardef\sidefloatalign\plustwo,% (***)
+ \v!depth=>\global\chardef\sidefloatalign\plusthree,%
+ \v!grid=>\global\chardef\sidefloatalign\plusfour,%
+ \v!halfline=>\global\chardef\sidefloatalign\plusfive]%
+ % todo (test first): \doifinset\v!lokaal{#2}{\chardef\sidefloatalign\zerocount}%
+ \ifcase\sidefloatalign\relax % todo: optie v!lokaal => \else
+ \doifinset\v!height {#2}{\global\chardef\sidefloatalign\plusone}%
+ \doifinset\v!line {#2}{\global\chardef\sidefloatalign\plustwo}%
+ \doifinset\v!depth {#2}{\global\chardef\sidefloatalign\plusthree}%
+ \doifinset\v!grid {#2}{\global\chardef\sidefloatalign\plusfour}%
+ \doifinset\v!halfline{#2}{\global\chardef\sidefloatalign\plusfive}% meant for 'none'
+ \fi
+ \doifinset\v!high{#2}{\global\sidefloattopskip \zeropoint}%
+ \doifinset\v!low {#2}{\global\sidefloatbottomskip\zeropoint}%
+ \doifinset\v!fit {#2}
+ {\global\sidefloattopskip \zeropoint
+ \global\sidefloatbottomskip\zeropoint
+ \global\floatsideskip \zeropoint}%
+ \else
+ \processallactionsinset
+ [#2]
+ [ 90=>\globallet\floatrotation\commalistelement,%
+ 180=>\globallet\floatrotation\commalistelement,%
+ 270=>\globallet\floatrotation\commalistelement]%
+ \fi
+ \doifinsetelse\v!nonumber{#2}
+ {\global\nofloatnumbertrue}
+ {\doifelse{\floatcaptionparameter\c!number}\v!yes
+ {\global\nofloatnumberfalse}
+ {\global\nofloatnumbertrue}}%
+ % this has to change
+ \ConvertToConstant\doifelse{#4}{}
+ {\global\emptyfloatcaptiontrue}
+ {\global\emptyfloatcaptionfalse}%
+ \doifinsetelse\v!none{#2}
+ {\global\nofloatcaptiontrue}
+ {\ConvertToConstant\doifelse{#4}\v!none
+ {\global\nofloatcaptiontrue}
+ {\global\nofloatcaptionfalse}}%
+ \doif{\floatcaptionparameter\c!number}\v!none % new
+ {\global\nofloatcaptiontrue}%
+ \ifemptyfloatcaption \ifnofloatnumber
+ \global\nofloatcaptiontrue
+ \fi \fi}
+
+% documenteren in details
+
+\def\presetmorefloatvariables#1%
+ {\doifelse{\floatparameter\c!local}\v!yes % fout keyword
+ \globalcenterfloatboxtrue
+ \globalcenterfloatboxfalse
+ \ifglobalcenterfloatbox
+ \localcenterfloatboxtrue
+ \else
+ \doifinsetelse\v!local{#1}
+ \localcenterfloatboxtrue
+ \localcenterfloatboxfalse
+ \fi
+ \doifnotcommon{\v!always,\v!here,\v!force}{#1} % ! ! ! ! ! !
+ {\globalcenterfloatboxfalse
+ \localcenterfloatboxfalse}}
+
+\let\naturalfloatheight\!!zeropoint
+\let\naturalfloatwidth \!!zeropoint
+\let\naturalfloatdepth \!!zeropoint
+
+\def\setnaturalfloatdimensions#1%
+ {\xdef\naturalfloatheight{\the\ht#1}%
+ \xdef\naturalfloatwidth {\the\wd#1}%
+ \xdef\naturalfloatdepth {\the\dp#1}}
+
+\long\def\doifelsemainfloatbody#1#2%
+ {\ifinsidesplitfloat\ifconditional\splitfloatfirstdone#2\else#1\fi\else#1\fi}
+
+% todo: optional user pars
+
+\def\floatcaptionattribute
+ {\iflocation \ifnofloatnumber \else \ifnofloatcaption \else
+ attr \destinationattribute \currentfloatattribute
+ \fi \fi \fi}
+
+\long\def\docompletefloat#1#2#3#4#5% #1:floatclass #2:reference #3:optionlist #4:caption #5:box number
+ {\presetfloatvariables{#1}{#3}{#2}{#5}% check this one
+ \bgroup
+ % prepare structure data
+ %
+ % \dofloatcomponent[\c!name=#1,\c!reference=#2,\c!bookmark=,\c!title={#4}][]% ifnofloatnumber ifnofloatcaption \tracefloatnumber{#1}%
+ %
+ \dostructurecountercomponent
+ {float}%
+ \getcaptionparameters
+ \floatcaptionparameter
+ \detokenizedcaptionparameter
+ \relax
+ \relax
+ \relax
+ [\c!name=\currentfloat,\s!counter=\@@thestructurecounter\currentfloat,%
+ \s!hascaption=\ifnofloatcaption \v!no\else\v!yes\fi,%
+ \s!hasnumber=\ifnofloatnumber \v!no\else\v!yes\fi,%
+ \s!hastitle=\ifemptyfloatcaption\v!no\else\v!yes\fi,%
+ \c!reference=#2,\c!title={#4},\c!bookmark=]%
+ []%
+ \globallet\currentfloatnumber \laststructurecounternumber
+ \globallet\currentfloatattribute \laststructurecounterattribute
+ \globallet\currentfloatsynchronize\laststructurecountersynchronize
+ %
+ % check float box
+ \setnaturalfloatdimensions#5%
+ \global\setbox\floatbox\vbox{\floatparameter\c!command{\box#5}}%
+ \setnaturalfloatdimensions\floatbox
+ \ifdim\htdp\floatbox=\zeropoint
+ \showmessage\m!floatblocks{11}\empty
+ \global\setbox\floatbox\vbox{\doemptyfloatblock{#1}}%
+ \fi
+ % deal with lack of caption
+ \global\setbox\floatbox\vbox \floatcaptionattribute
+ {\doifelsemainfloatbody\currentfloatsynchronize\donothing
+ \unvbox\floatbox
+ \ifnofloatcaption
+ \vss
+ \fi}% gets rid of the depth (unless tabulate)
+ \egroup
+ % place the float
+ \dofloat{#3}{\thecurrentfloatnumber}{\thecurrentfloatcaption}%
+ \global\insidefloatfalse}
+
+\def\setlocalfloathsize
+ {\iflocalcenterfloatbox
+ \seteffectivehsize
+ \hsize\localhsize
+ \fi}
+
+\newevery \everyinsidefloat \relax
+
+\appendtoks
+ \everyinsidefloat\emptytoks % in case it's called earlier
+ \dogetfloatdata
+\to \everyinsidefloat
+
+%\appendtoks
+% \fuzzysnappingfalse
+%\to \everyinsidefloat
+
+\def\doifrightpagefloatelse
+ {\ifdoublesided
+ \ifsinglesided
+ \@EAEAEA\firstoftwoarguments
+ \else
+ \@EAEAEA\doifoddfloatpageelse
+ \fi
+ \else
+ \@EA\firstoftwoarguments
+ \fi}
+
+\def\doifoddfloatpageelse
+ {\ifodd\purenumber\twopassfloatdata\space
+ \@EA\firstoftwoarguments
+ \else
+ \@EA\secondoftwoarguments
+ \fi}
+
+\appendtoks
+ \let\rightorleftpageaction\doifrightpagefloatelse
+\to \everyinsidefloat
+
+\newif\ifextrafloatactions \extrafloatactionstrue
+
+% \let\movesidefloat\gobbleoneargument
+
+% new : \place...[leftmargin,-2*line]; we need to catch fxtb:2*3
+% watch out: line alone aligns on the line ! ! !
+
+\def\movesidefloat[#1]% (-)n*line|x=,y=
+ {\global\sidefloatdownshift \zeropoint
+ \global\sidefloatextrashift\zeropoint
+ \doifassignmentelse{#1}%
+ {\bgroup
+ \getparameters[\??fl][\c!x=\zeropoint,\c!y=\zeropoint,#1]%
+ \ifgridsnapping
+ \getnoflines\@@fly
+ \global\sidefloatdownshift\noflines\lineheight
+ \else
+ \global\sidefloatdownshift\@@fly
+ \fi
+ \global\sidefloatextrashift\@@flx
+ \egroup}
+ {\movedownsidefloat[#1]}}
+
+\def\movedownsidefloat[#1]% already in core
+ {\bgroup
+ \cleanupfeatures
+ \doifinstringelse{:}{#1}
+ \donothing
+ {\def\docommand##1%
+ {\processaction
+ [##1]%
+ [ \v!line=>\dodocommand+,%
+ +\v!line=>\dodocommand+,%
+ -\v!line=>\dodocommand-]}%
+ \def\dodocommand##1%
+ {\ifdone\else\global\sidefloatdownshift\zeropoint\donetrue\fi
+ \global\advance\sidefloatdownshift##1\lineheight}%
+ \donefalse\normalexpanded{\noexpand\dorepeatwithcommand[#1]}\docommand
+ \def\docommand##1%
+ {\processaction
+ [##1]%
+ [ \v!hang=>\dodocommand+,%
+ +\v!hang=>\dodocommand+,%
+ -\v!hang=>\dodocommand-]}%
+ \def\dodocommand##1% inefficient but who cares
+ {\ifdone\else\global\sidefloatsidelines\zeropoint\donetrue\fi
+ \global\advance\sidefloatsidelines\plusone\relax}%
+ \donefalse\normalexpanded{\noexpand\dorepeatwithcommand[#1]}\docommand}%
+ \egroup}
+
+\def\hangsidefloat[#1]%
+ {\global\sidefloatsidelines#1\relax}
+
+\long\def\xdocompletefloat#1#2#3#4%
+ {\ifextrafloatactions
+ \doifinsetelse\v!text{#3}
+ {% fuzzy, text overloads left, since then it's a directive
+ \docompletefloat{#1}{#2}{#3}{#4}\nextbox}
+ {\let\@@extrafloat\empty
+ % \sidefloatdownshift will be reset afterwards, and can
+ % already be set at this point
+ \processallactionsinset
+ [#3] % ininner/inouter : for old times sake
+ [ \v!inner=>\xxdocompletefloat\v!left \v!right,
+ \v!outer=>\xxdocompletefloat\v!right \v!left,
+ \v!innermargin=>\xxdocompletefloat\v!leftmargin \v!rightmargin,
+ \v!outermargin=>\xxdocompletefloat\v!rightmargin\v!leftmargin,
+ \v!inneredge=>\xxdocompletefloat\v!leftedge \v!rightedge,
+ \v!outeredge=>\xxdocompletefloat\v!rightedge \v!leftedge,
+ \v!backspace=>\xxdocompletefloat\v!backspace \v!cutspace,
+ \v!cutspace=>\xxdocompletefloat\v!cutspace \v!backspace,
+% \v!margin=>\xxdocompletefloat\v!cutspace \v!backspace,
+ \v!left=>\xxdocompletefloat\v!left \v!left,
+ \v!right=>\xxdocompletefloat\v!right \v!right,
+ \v!line=>, % only -n*line is handled (see ***)
+ \s!unknown=>{\movedownsidefloat[\commalistelement]}]%
+ \ifx\@@extrafloat\empty
+ \docompletefloat{#1}{#2}{#3}{#4}\nextbox
+ \else
+ \docompletefloat{#1}{#2}{\@@extrafloat,#3}{#4}\nextbox
+ \fi}%
+ \else % downward compatible
+ \docompletefloat{#1}{#2}{#3}{#4}\nextbox
+ \fi}
+
+% pas op, maxbreedte niet instellen als plaats=links/rechts
+
+\def\setlocalfloatdimensions#1%
+ {\global\sidefloatshift \zeropoint % duplicate
+ \global\sidefloatmaximum\zeropoint\relax % duplicate
+ \ifextrafloatactions
+ \ifdim\sidefloatdownshift=\zeropoint\else
+ \global\setbox\floatbox\vbox
+ {\vskip\sidefloatdownshift\nointerlineskip\box\floatbox}%
+ \fi
+ \doifsomething{\floatparameter\c!minwidth}
+ {\scratchdimen\floatparameter\c!minwidth\relax
+ \ifdim\wd\floatbox<\scratchdimen
+ \global\setbox\floatbox\hbox to \scratchdimen
+ {\doifnot{\floatparameter\c!location}\v!left \hss
+ \box\floatbox%
+ \doifnot{\floatparameter\c!location}\v!right\hss}%
+ \fi}%
+ % todo: rand / rug
+ \doifinset\v!hanging{#1}
+ {\doifcommonelse{\v!inleft,\v!leftmargin}{#1}
+ {\letfloatparameter\c!maxwidth\leftmarginwidth}%
+ {\doifcommon{\v!inright,\v!rightmargin}{#1}
+ {\letfloatparameter\c!maxwidth\rightmarginwidth}}}%
+ \doifsomething{\floatparameter\c!maxwidth}
+ {\scratchdimen\floatparameter\c!maxwidth\relax
+ \ifdim\wd\floatbox>\scratchdimen
+ \doifcommonelse{\v!inright,\v!rightmargin,\v!rightedge
+ \v!inleft,\v!leftmargin,\v!leftedge}{#1}
+ {\global\sidefloatmaximum\scratchdimen}
+ {\global\setbox\floatbox\hbox to \scratchdimen
+ {\doifcommonelse{\v!right,\v!left}{#1}
+ {\doifnotinset\v!right{#1}\hss
+ \box\floatbox
+ \doifnotinset\v!left{#1}\hss}%
+ {\doifnot{\floatparameter\c!location}\v!left\hss
+ \box\floatbox
+ \doifnot{\floatparameter\c!location}\v!right\hss}}}%
+ \fi}%
+ \fi}
+
+\def\docomplexstarttextblock[#1][#2][#3]%
+ {\flushnotes
+ \flushsidefloats % hoort eigenlijk niet hier
+ \docomplexplacefloat[#1][\v!text,#2,\v!left][#3]}
+
+\long\def\docomplexreserveblock[#1][#2][#3][#4]#5%
+ {\getvalue{\e!place#1}[#3][#4]{#5}{\localframed[\??fl#1][#2]{#1}}}
+
+\def\docomplexstartreservetextblock[#1][#2][#3][#4]%
+ {\flushsidefloats % hoort eigenlijk niet hier
+ \docomplexreserveblock[#1][#2][\v!text,#3,\v!left][#4]}
+
+\def\placefloat
+ {\dotripleempty\docomplexplacefloat}
+
+\installinsertion\topins
+\installinsertion\botins
+
+\newdimen\botinserted
+\newdimen\topinserted
+
+%D Extra float registers.
+
+\newif\ifsomefloatwaiting \somefloatwaitingfalse
+\newif\ifroomforfloat \roomforfloattrue
+\newif\ifnofloatpermitted \nofloatpermittedfalse
+
+\newcount\totalnoffloats \totalnoffloats =0
+\newcount\savednoffloats \savednoffloats =0
+\newcount\noffloatinserts \noffloatinserts=0
+
+\newbox\floatlist
+\newbox\savedfloatlist
+
+\newif\ifflushingfloats \flushingfloatsfalse
+
+\newbox\floattext
+
+\newdimen\floattextwidth
+\newdimen\floattextheight
+
+\newbox\floatbox
+\newbox\savedfloatbox
+
+\newdimen\floatwidth
+\newdimen\floatheight
+
+\def\dosavefloatinfo {\showmessage\m!floatblocks2{\the\totalnoffloats}}
+\def\doinsertfloatinfo {\showmessage\m!floatblocks4{\the\totalnoffloats}}
+\def\dofloatflushedinfo{\showmessage\m!floatblocks3{\the\numexpr\totalnoffloats-\savednoffloats\relax}}
+
+\def\dogetfloat
+ {\ifsomefloatwaiting
+ \global\setbox\floatlist\vbox
+ {\unvbox\floatlist
+ \global\setbox\globalscratchbox\lastbox}%
+ \ifcenterfloatbox
+ \ifdim\wd\globalscratchbox<\hsize
+ \setbox\floatbox\hbox to \hsize{\hss\box\globalscratchbox\hss}%
+ \else
+ \setbox\floatbox\box\globalscratchbox % local !
+ % retain special alignments
+ \ifinsidecolumns
+ \ifdim\wd\floatbox>\makeupwidth
+ \wd\floatbox\makeupwidth
+ \fi
+ \fi
+ \fi
+ \else
+ \setbox\floatbox\box\globalscratchbox % local !
+ \fi
+ \global\advance\savednoffloats \minusone
+ \ifcase\savednoffloats
+ \global\somefloatwaitingfalse
+ \fi
+ \else
+ \global\savednoffloats\zerocount
+ \global\setbox\floatbox\emptybox
+ \fi}
+
+\def\uncenteredfloatbox
+ {\ifcenterfloatbox
+ \ifhbox\floatbox\relax % remove centering
+ \ifdim\wd\floatbox=\hsize
+ \ifhbox\floatbox
+ \setbox\scratchbox\hbox
+ {\unhbox\floatbox
+ \unskip\unskip
+ \global\setbox\globalscratchbox\lastbox}%
+ \box\globalscratchbox
+ \else
+ \box\floatbox
+ \fi
+ \else
+ \box\floatbox
+ \fi
+ \else
+ \box\floatbox
+ \fi
+ \else
+ \box\floatbox
+ \fi}
+
+\def\dosavefloat
+ {\global\setbox\floatlist\vbox
+ {\nointerlineskip
+ \uncenteredfloatbox
+ \unvbox\floatlist}%
+ \global\advance\savednoffloats \plusone
+ \global\somefloatwaitingtrue
+ \dosavefloatinfo
+ \nonoindentation}
+
+\def\doresavefloat
+ {\global\setbox\floatlist\vbox
+ {\nointerlineskip
+ \unvbox\floatlist
+ \uncenteredfloatbox}%
+ \global\advance\savednoffloats \plusone
+ \global\somefloatwaitingtrue}
+
+\def\doreversesavefloat
+ {\global\setbox\floatlist\vbox
+ {\nointerlineskip
+ \unvbox\floatlist
+ \uncenteredfloatbox}%
+ \global\advance\savednoffloats \plusone
+ \global\somefloatwaitingtrue
+ \dosavefloatinfo}
+
+% better (todo): \savednofsavedfloats
+
+\def\dosavefloatstatus
+ {\global\setbox\savedfloatlist\copy\floatlist
+ \global\setbox\savedfloatbox \copy\floatbox
+ \xdef\dorestorefloatstatus
+ {\global\setbox\floatlist\box\savedfloatlist
+ \global\setbox\floatbox \box\savedfloatbox
+ \global\savednoffloats\the\savednoffloats}}
+
+\let\dorestorefloatstatus\relax
+
+\ifx\doflushfloats\undefined \let\doflushfloats\relax \fi
+\ifx\flushfloatbox\undefined \let\flushfloatbox\relax \fi
+
+% needed in the splitter:
+
+\newcount\savedsavednoffloats
+
+\let\dopopsavedfloats\relax
+
+\def\dopushsavedfloats
+ {\global\setbox\savedfloatlist\box\floatlist
+ \global\savedsavednoffloats\savednoffloats
+ \global\savednoffloats\savednoffloats
+ \global\somefloatwaitingfalse
+ \gdef\dopopsavedfloats
+ {\global\advance\savednoffloats\savedsavednoffloats
+ \global\setbox\floatlist\vbox\bgroup
+ \ifvoid\floatlist \else\unvbox\floatlist \fi
+ \ifvoid\savedfloatlist\else\unvbox\savedfloatlist\fi
+ \egroup
+ \global\ifcase\savednoffloats
+ \somefloatwaitingfalse\else\somefloatwaitingtrue\fi
+ \globallet\dopopsavedfloats\relax}}
+
+\def\doflushsavedfloats % simplified \OTRONEdodoflushfloats
+ {\doloop
+ {\ifsomefloatwaiting
+ \dogetfloat
+ \dofloatflushedinfo
+ \docheckiffloatfits
+ \ifroomforfloat
+ \doplacefloatbox
+ \else
+ \doreversesavefloat
+ \exitloop
+ \fi
+ \else
+ \exitloop
+ \fi}}
+
+% top and bottom
+
+\newif\iftopofinsert
+\newif\iftestfloatbox
+\newif\ifcenterfloatbox \centerfloatboxtrue
+\newif\iflocalcenterfloatbox \localcenterfloatboxfalse
+\newif\ifglobalcenterfloatbox \globalcenterfloatboxfalse
+
+% beter de laatste skip buiten de \insert uitvoeren,
+% bovendien bij volle flush onder baseline.
+
+\def\betweenfloatblanko% assumes that spaceafter is present
+ {\bgroup
+ \setbox0\vbox{\strut\blank[\floatsharedparameter\c!spacebefore]\strut}%
+ \setbox2\vbox{\strut\blank[\floatsharedparameter\c!spaceafter]\strut}%
+ \ifdim\ht0>\ht2
+ \blank[-\floatsharedparameter\c!spaceafter,\floatsharedparameter\c!spacebefore]%
+ \fi
+ \egroup}
+
+\def\doplacefloatbox
+ {%\forgetall % NO
+ \whitespace
+ \blank[\floatsharedparameter\c!spacebefore]
+ \flushfloatbox
+ \blank[\floatsharedparameter\c!spaceafter]}
+
+\ifx\someherefloat\undefined \let\someherefloat\doplacefloatbox \fi
+\ifx\somefixdfloat\undefined \let\somefixdfloat\doplacefloatbox \fi
+\ifx\somepagefloat\undefined \let\somepagefloat\doplacefloatbox \fi
+\ifx\sometopsfloat\undefined \let\sometopsfloat\doplacefloatbox \fi
+\ifx\somebotsfloat\undefined \let\somebotsfloat\doplacefloatbox \fi
+
+\ifx\somesidefloat\undefined \let\somesidefloat\doplacefloatbox \fi
+\ifx\somefacefloat\undefined \let\somefacefloat\doplacefloatbox \fi
+\ifx\sometextfloat\undefined \let\sometextfloat\doplacefloatbox \fi
+
+% test case:
+%
+% \placefigure[page,none]{}{\blackrule[width=\textwidth,height=0.9\textheight,color=green]}
+% \placefigure[page,none]{}{\blackrule[width=\textwidth,height=1.0\textheight,color=green]}
+% \placefigure[page,none]{}{\blackrule[width=\textwidth,height=1.1\textheight,color=green]}
+
+\def\sometextfloat[#1]% lang, links, rechts, hoog, midden, laag, offset
+ {%\checkwaitingfloats{#1}%
+ \gdef\dostoptextfloat{\dodostoptextfloat[#1]}% brr global
+ \global\floattextwidth\hsize
+ \global\floatwidth\wd\floatbox
+ \global\floatheight\ht\floatbox % forget about the depth
+ \global\advance\floattextwidth -\floatwidth
+ \global\advance\floattextwidth -\floatsharedparameter\c!margin\relax % was \tfskipsize
+ \doifinsetelse\v!tall{#1}
+ {\floattextheight\pagegoal
+ \advance\floattextheight -\pagetotal
+ \advance\floattextheight -\bigskipamount % lelijk
+ \ifdim\floattextheight>\textheight
+ \floattextheight\textheight
+ \fi
+ \boxmaxdepth\zeropoint \relax % toegevoegd
+ \ifdim\floattextheight<\floatheight
+ \floattextheight\floatheight
+ \fi
+ \setbox\floattext\vbox to \floattextheight}
+ {\setbox\floattext\vbox}%
+ \bgroup
+ \forgetall \setupblank \setupwhitespace % new, also needed for footnotes
+ \blank[\v!disable]
+ \hsize\floattextwidth
+ \ignorespaces}
+
+\def\dodostoptextfloat[#1]% % de tekst kan beter in een soort
+ {\egroup % kadertekst zonder kader, is flexibeler
+ \doifnotinset\v!tall{#1}% en beter
+ {\ifdim\ht\floattext<\floatheight
+ \floattextheight\floatheight
+ \else
+ \floattextheight\ht\floattext
+ \fi}%
+ \setbox\floatbox\vbox to \floattextheight
+ {\hsize\floatwidth
+ \doifinsetelse\v!both{#1}%
+ {\doifinsetelse\v!low{#1}
+ {\vfill\box\floatbox}
+ {\doifinsetelse\v!middle{#1}
+ {\vfill\box\floatbox\vfill}
+ {\box\floatbox\vfill}}}
+ {\box\floatbox\vfill}}%
+ \setbox\floattext\vbox to \floattextheight
+ {\hsize\floattextwidth
+ \doifinsetelse\v!low{#1}
+ {\vfill
+ \box\floattext
+ \doifinset\c!offset{#1}{\whitespace\blank}}
+ {\doifinsetelse\v!middle{#1}
+ {\vfill
+ \box\floattext
+ \vfill}
+ {\doifinset\v!offset{#1}{\whitespace\blank}%
+ \box\floattext
+ \vfill}}}%
+ \doifinsetelse\v!right{#1}% \floatmethod
+ {\setbox\floatbox\hbox to \hsize
+ {\box\floattext
+ \hfill
+ \box\floatbox}}
+ {\setbox\floatbox\hbox to \hsize
+ {\box\floatbox
+ \hfill
+ \box\floattext}}%
+ \baselinecorrection
+ \whitespace
+ \blank[\floatsharedparameter\c!spacebefore]%
+ \doifnotinset\v!tall{#1}%
+ {\dp\floatbox\openstrutdepth}% dp\strutbox}% % toegevoegd
+ \box\floatbox
+ \blank[\floatsharedparameter\c!spaceafter]%
+ \endgroup % **
+ \doinsertfloatinfo}
+
+\def\somefacefloat[#1]% links, rechts, midden, hoog, midden, laag
+ {%\checkwaitingfloats{#1}%
+ \startopposite\box\floatbox\stopopposite
+ \doinsertfloatinfo}
+
+\def\someelsefloat[#1]%
+ {\doifinsetelse\v!here{#1}
+ {\doifinsetelse\v!always{#1}
+ {\page[\v!preference]%
+ \docheckiffloatfits
+ \ifroomforfloat
+ \placesomeherefloat[#1]%
+ \else
+ \showmessage\m!floatblocks9\empty
+ \doreversesavefloat
+ \fi}
+ {\ifsomefloatwaiting
+ \dosavefloat
+ \else
+ \page[\v!preference]%
+ \docheckiffloatfits
+ \ifroomforfloat
+ \placesomeherefloat[#1]%
+ \else
+ \dosavefloat
+ \fi
+ \fi}}
+ {\doifinsetelse\v!always{#1}
+ {\docheckiffloatfits
+ \ifroomforfloat
+ \sometopbottomfloat[#1]
+ \else
+ \showmessage\m!floatblocks9\empty
+ \doreversesavefloat
+ \fi}
+ {\docheckiffloatfits
+ \ifroomforfloat
+ \sometopbottomfloat[#1]
+ \else
+ \dosavefloat
+ \fi}}}
+
+\def\floatautofactor{.5}
+
+\def\sometopbottomfloat[#1]%
+ {\doifelse\floatmethod\v!auto
+ {\ifdim\pagetotal<\floatautofactor\pagegoal % when empty page, maxdimen
+ \placesometopsfloat[#1]%
+ \else
+ \placesomebotsfloat[#1]%
+ \fi}
+ {\doifelse\floatmethod\v!top
+ {\placesometopsfloat[#1]}
+ {\doifelse\floatmethod\v!bottom
+ {\placesomebotsfloat[#1]}
+ {\placesomeherefloat[#1]}}}}
+
+% De onderstaande macro wordt gebruikt bij de macros
+% voor het plaatsen van tabellen en figuren (klopt niet
+% meer).
+%
+% \dofloat {plaats} {label1} {label2}
+% \docompletefloat {nummer} {referentie} {plaats} {label} {inhoud}
+% \box\floatbox inhoud+referentie
+% \do???float#1 #1 = boxnummer
+
+\newdimen\floatsideskip \floatsideskip =12pt
+\newdimen\floattopskip \floattopskip =\floattopskip
+\newdimen\floatbottomskip \floatbottomskip=\floattopskip
+
+\newdimen\sidefloattopskip \sidefloattopskip =\floattopskip
+\newdimen\sidefloatbottomskip \sidefloatbottomskip=\floatbottomskip
+
+\newskip\sidefloatdownshift
+\newskip\sidefloatleftshift
+\newskip\sidefloatrightshift
+
+\def\sidefloattopoffset {\openstrutdepth} % {\strutdp}
+
+\newcount\noftopfloats \noftopfloats=2
+\newcount\nofbotfloats \nofbotfloats=0
+
+\def\docalculatefloatskip#1#2%
+ {\doifelsenothing{#2}
+ {\global#1\zeropoint}
+ {\doifelse{#2}\v!none
+ {\global#1\zeropoint}
+ {\setbox\scratchbox\vbox{\whitespace\normalexpanded{\noexpand\blank[#2]}}%
+ \global#1\ht\scratchbox}}}
+
+\def\calculatefloatskips
+ {{\docalculatefloatskip\floattopskip{\floatsharedparameter\c!spacebefore}%
+ \docalculatefloatskip\floatbottomskip{\floatsharedparameter\c!spaceafter}%
+ \docalculatefloatskip\sidefloattopskip{\floatsharedparameter\c!sidespacebefore}%
+ \docalculatefloatskip\sidefloatbottomskip{\floatsharedparameter\c!sidespaceafter}%
+ \gdef\sidefloattopoffset{\openstrutdepth}% was \def
+ \global\floatsideskip\floatsharedparameter\c!margin
+ \global\sidefloatleftshift\floatparameter\c!leftmargindistance
+ \global\sidefloatrightshift\floatparameter\c!rightmargindistance
+ \global\noftopfloats\floatsharedparameter\c!ntop\relax
+ \global\nofbotfloats\floatsharedparameter\c!nbottom\relax}}
+
+\def\borderedfloatbox
+ {\localframed
+ [\??fl\currentfloat]
+ [\c!location=\v!normal,\c!width=\wd\floatbox,\c!height=\htdp\floatbox]
+ {\box\floatbox}}
+
+\newbox\tempfloatbox
+
+% minwidth=fit,width=max : no overshoot, as wide as graphic
+
+\ifx\moveboxontogrid\undefined \let\movecaptionontogrid\gobblethreearguments \fi
+
+\def\locatefloatbox
+ {\chardef\alignstrutmode\zerocount
+ \shiftalignedline
+ {\floatparameter\c!leftmargin }{\floatparameter\c!rightmargin}%
+ {\floatparameter\c!innermargin}{\floatparameter\c!outermargin}%
+ \alignedline{\floatparameter\c!location}\v!middle}
+
+\def\locatecaptionbox
+ {\chardef\alignstrutmode\zerocount
+ \shiftalignedline
+ {\floatcaptionparameter\c!leftmargin }{\floatcaptionparameter\c!rightmargin}%
+ {\floatcaptionparameter\c!innermargin}{\floatcaptionparameter\c!outermargin}%
+ \alignedline{\floatparameter\c!location}\v!middle}
+
+\long\def\dosetpagfloat#1#2#3% \copy wegwerken
+ {\bgroup
+ \setlocalfloathsize
+ \ifnum\floatrotation>0
+ \swapdimens\hsize\vsize
+ \fi
+ \forgetall
+ \postponenotes
+ \dontcomplain
+ \setbox\tempfloatbox\vbox{\borderedfloatbox}%
+ \let\locatefloat \locatefloatbox
+ \let\locatecaption\locatecaptionbox
+ \docheckcaptioncontent{#2}{#3}%
+ \ifcase\floatparameter\c!method
+ \or % automatic
+ \ifnofloatcaption
+ \dopreparenocaption{#1}{#2}{#3}%
+ \edef\width{\the\wd\floatbox}%
+ \doglobal\addlocalbackgroundtobox\floatbox
+ \else
+ % todo: installable maken, variant/method=auto vs macro
+ \dopreparedocaption{#1}{#2}{#3}%
+ \settracedcaptionbox
+ \edef\width{\the\wd\tempfloatbox}%
+ \addlocalbackgroundtobox\tempfloatbox
+ \setbox\tempcaptionbox\hbox
+ {\dosetcaptionthings
+ \floatcaptionparameter\c!command{\box\tempcaptionbox}}%
+ \moveboxontogrid\tempcaptionbox{\floatcaptionparameter\c!grid}\lastcaptionht
+ \addlocalbackgroundtobox\tempcaptionbox
+ \buildfloatbox
+ \fi
+ \or % semi automatic
+ \or % manual
+ \fi
+ \ifnum\floatrotation>0
+ \global\setbox\floatbox\vbox
+ {\rotate[\c!rotation=\floatrotation]{\box\floatbox}}%
+ \edef\width{\the\wd\tempfloatbox}%
+ \else
+ \postcenterfloatbox\width
+ \fi
+ \egroup}
+
+\def\captionminwidth {15\bodyfontsize}
+\def\captionovershoot {2em}
+
+\def\dopreparenocaption#1#2#3%
+ {\global\setbox\floatbox\vbox % pas op als wd groter dan hsize
+ {\ifinsidecolumns\ifdim\wd\tempfloatbox>\hsize
+ \let\locatefloat\relax
+ \fi\fi
+ \locatefloat{\copy\tempfloatbox}}}
+
+\def\dopreparedocaption#1#2#3%
+ {\doifinsetelse{\floatcaptionparameter\c!location}{\v!top,\v!bottom}
+ {\doifinsetelse{\floatcaptionparameter\c!width}{\v!fit,\v!max}
+ {\doifelse{\floatcaptionparameter\c!minwidth}\v!fit
+ {\doifelse{\floatcaptionparameter\c!width}\v!max
+ {\dopreparestackcaptionmax{#1}{#2}{#3}}
+ {\ifdim\wd\tempcaptionbox>\wd\tempfloatbox % wider caption
+ \doifelse{\floatcaptionparameter\c!width}\v!fit
+ {\dopreparestackcaptionaut{#1}{#2}{#3}}
+ {\dopreparestackcaptionwid{#1}{#2}{#3}}%
+ \else
+ \dopreparestackcaptionmin{#1}{#2}{#3}%
+ \fi}}
+ {\dopreparestackcaptionfix{#1}{#2}{#3}}}%
+ {\dopreparesidewidthcaption{#1}{#2}{#3}}}% new, special effects (see icare)
+ {\doifinsetelse{\floatcaptionparameter\c!width}{\v!fit,\v!max}
+ {\dopreparesideautocaption{#1}{#2}{#3}}
+ {\dopreparesidewidthcaption{#1}{#2}{#3}}}}
+
+% \def\dosettempcaptionbox
+% {\dosetraggedvbox{\floatcaptionparameter\c!align}%
+% \setbox\tempcaptionbox\raggedbox}
+
+\def\dosettempcaptionbox
+ {\setbox\tempcaptionbox\vbox\bgroup
+ %expanded{\setupalign[\v!new,\v!reset,\floatcaptionparameter\c!align,\v!old]}% wrong! see icare
+ \normalexpanded{\noexpand\setupalign[\v!reset,\floatcaptionparameter\c!align]}% i need to check what reset does
+ \dosetcaptionthings
+ \let\next}
+
+\def\dopreparesideautocaption#1#2#3%
+ {\scratchdimen\dimexpr\hsize-\wd\tempfloatbox-\floatparameter\c!margin\relax % was \tfskipsize\relax
+ \ifdim\wd\tempcaptionbox>\scratchdimen
+ \ifdim\wd\tempcaptionbox<1.3\scratchdimen
+ \scratchdimen0.8\scratchdimen
+ \fi
+ \fi
+ \dosettempcaptionbox
+ {\hsize\scratchdimen
+ \putcompletecaption{#2}{#3}}}
+
+\def\dopreparesidewidthcaption#1#2#3%
+ {\dosettempcaptionbox
+ {\hsize\floatcaptionparameter\c!width
+ \putcompletecaption{#2}{#3}}}
+
+\def\dopreparestackcaptionfix#1#2#3%
+ {\dosettempcaptionbox
+ {\hsize\floatcaptionparameter\c!minwidth % special effects
+ \putcompletecaption{#2}{#3}}}
+
+\def\dopreparestackcaptionmax#1#2#3%
+ {\dosettempcaptionbox
+ {\hsize\wd\tempfloatbox
+ \putcompletecaption{#2}{#3}}}
+
+\def\dopreparestackcaptionwid#1#2#3%
+ {\dosettempcaptionbox
+ {\hsize\floatcaptionparameter\c!width
+ \putcompletecaption{#2}{#3}}}
+
+\def\dopreparestackcaptionmin#1#2#3%
+ {\dosettempcaptionbox
+ {\hsize\wd\tempfloatbox
+ \doifnothing{\floatcaptionparameter\c!align}\raggedcenter % on purpose overloads align !
+ \putcompletecaption{#2}{#3}}}
+
+\def\dopreparestackcaptionaut#1#2#3%
+ {\doifsomething{\floatcaptionparameter\c!align}
+ {\doifnotinset{\v!middle}{\floatcaptionparameter\c!align}%
+ {\let\captionovershoot\!!zeropoint}}%
+ \edef\captionhsize{\the\wd\tempfloatbox}%
+ \ifdim\captionhsize>\hsize
+ % float is wider than \hsize
+ \dosettempcaptionbox
+ {\trialtypesettingtrue
+ \hsize\captionhsize
+ \notesenabledfalse
+ \putcompletecaption{#2}{#3}}%
+ \ifdim\ht\scratchbox>\lineheight % more lines
+ \dosettempcaptionbox
+ {\hsize\captionhsize
+ \advance\hsize -\captionovershoot\relax
+ \ifdim\hsize<\captionminwidth\relax
+ \hsize\captionhsize
+ \fi
+ \putcompletecaption{#2}{#3}}%
+ \else
+ \dosettempcaptionbox
+ {\hsize\captionhsize
+ \putcompletecaption{#2}{#3}}%
+ \fi
+ \else
+ % float is smaller of equal to \hsize
+ \ifdim\captionhsize<\captionminwidth\relax
+ \scratchdimen\captionminwidth % float smaller than min width
+ \edef\captionhsize{\the\scratchdimen}%
+ \fi
+ \setbox\scratchbox\vbox % test with overshoot
+ {\trialtypesettingtrue
+ \scratchdimen\captionhsize
+ \advance\scratchdimen \captionovershoot
+ \advance\scratchdimen 3em % an average word length
+ \ifdim\scratchdimen<\hsize \hsize\scratchdimen \fi
+ \notesenabledfalse
+ \putcompletecaption{#2}{#3}}%
+ \ifdim\ht\scratchbox>\lineheight
+ % at least an average word longer than a line
+ \dosettempcaptionbox
+ {\scratchdimen\captionhsize
+ \advance\scratchdimen \captionovershoot
+ \ifdim\scratchdimen<\hsize \hsize\scratchdimen \fi
+ \putcompletecaption{#2}{#3}}%
+ \else
+ % just over a line, don't use an overshoot % % % todo: outer/inner and such
+ \doifcommonelse{\floatcaptionparameter\c!align}{\v!left,\v!right,\v!flushleft,\v!flushright}
+ {\dosettempcaptionbox
+ {\hsize\captionhsize
+ % strange : \raggedcenter
+ \putcompletecaption{#2}{#3}}}
+ {% nicer
+ \dosettempcaptionbox
+ {\hsize\captionhsize
+ \doifnothing{\floatcaptionparameter\c!align}\raggedcenter% overloads
+ \putcompletecaption{#2}{#3}}}%
+ \fi
+ \fi}
+
+\def\dopreparesidecaption#1#2#3%
+ {\scratchdimen\dimexpr\hsize-\wd\tempfloatbox-\floatparameter\c!margin\relax % was \tfskipsize\relax
+ \ifdim\wd\tempcaptionbox>\scratchdimen
+ \ifdim\wd\tempcaptionbox<1.3\scratchdimen
+ \scratchdimen0.8\scratchdimen
+ \fi
+ \fi
+ \dosettempcaptionbox % \setbox\tempcaptionbox\vbox
+ {\hsize\scratchdimen
+ \doifnothing{\floatcaptionparameter\c!align}\raggedright % on purpose overloads align !
+ \putcompletecaption{#2}{#3}}}
+
+\newdimen\tempfloatheight
+\newdimen\tempfloatwidth
+
+\def\dofloatboxbetweenstack
+ {\endgraf\nointerlineskip\floatcaptionparameter\c!inbetween\endgraf}
+
+\def\dofloatboxdefaultbuilder % done
+ {\locatefloat{\box\tempfloatbox}}
+
+\def\dofloatboxnextrightbuilder#1%
+ {\ifparfloat \hbox \else \expandafter \locatefloat \fi
+ {\tempfloatheight\ht\tempfloatbox
+ \box\tempfloatbox
+ \normalexpanded{\noexpand\doifnotinset{\v!hang}{\floatcaptionparameter\c!location}}{\dotfskip{\floatcaptionparameter\c!distance}}%
+ \vbox to\tempfloatheight{#1}}}
+
+\def\dofloatboxnextleftbuilder#1%
+ {\ifparfloat \hbox \else \expandafter \locatefloat \fi
+ {\tempfloatheight\ht\tempfloatbox
+ \vbox to\tempfloatheight{#1}%
+ \normalexpanded{\noexpand\doifnotinset{\v!hang}{\floatcaptionparameter\c!location}}{\dotfskip{\floatcaptionparameter\c!distance}}%
+ \box\tempfloatbox}}
+
+\def\dofloatboxnextouterbuilder
+ {\doifrightpagefloatelse\dofloatboxnextrightbuilder\dofloatboxnextleftbuilder}
+\def\dofloatboxnextinnerbuilder
+ {\doifrightpagefloatelse\dofloatboxnextleftbuilder\dofloatboxnextrightbuilder}
+
+\def\dofloatboxnextrighthangbuilder#1%
+ {\ifparfloat \hbox \else \expandafter \locatefloat \fi
+ {\tempfloatheight\ht\tempfloatbox
+ \box\tempfloatbox
+ \vbox to\tempfloatheight{#1}}}
+
+\def\dofloatboxnextlefthangbuilder#1%
+ {\ifparfloat \hbox \else \expandafter \locatefloat \fi
+ {\tempfloatheight\ht\tempfloatbox
+ \vbox to\tempfloatheight{#1}%
+ \box\tempfloatbox}}
+
+\def\dodofloatboxnextrightmarginbuilder#1#2%
+ {\ifparfloat
+ \hbox\bgroup
+ \tempfloatheight\ht\tempfloatbox
+ \box\tempfloatbox
+ \hsmash{\hskip#1\vbox to\tempfloatheight{#2}}%
+ \egroup
+ \else
+ \begingroup
+ \tempfloatheight\ht\tempfloatbox
+ \everyrightofalignedline{\hsmash{\hskip#1\vbox to\tempfloatheight{#2}}}%
+ \locatefloat{\box\tempfloatbox}%
+ \endgroup
+ \fi}
+
+\def\dodofloatboxnextleftmarginbuilder#1#2%
+ {\ifparfloat
+ \hbox\bgroup
+ \tempfloatheight\ht\tempfloatbox
+ \hsmash{\hskip-\dimexpr#1+\wd\tempcaptionbox\relax\vbox to\tempfloatheight{#2}}%
+ \box\tempfloatbox
+ \egroup
+ \else
+ \begingroup
+ \tempfloatheight\ht\tempfloatbox
+ \everyleftofalignedline{\hsmash{\hskip-\dimexpr#1+\wd\tempcaptionbox\relax\vbox to\tempfloatheight{#2}}}%
+ \locatefloat{\box\tempfloatbox}%
+ \endgroup
+ \fi}
+
+\def\dofloatboxnextrightmarginbuilder{\dodofloatboxnextrightmarginbuilder\rightmargindistance}
+\def\dofloatboxnextleftmarginbuilder {\dodofloatboxnextleftmarginbuilder \leftmargindistance }
+
+\def\dofloatboxnextoutermarginbuilder
+ {\doifrightpagefloatelse
+ {\dodofloatboxnextrightmarginbuilder\rightmargindistance}
+ {\dodofloatboxnextleftmarginbuilder \rightmargindistance}}
+
+\def\dofloatboxnextinnermarginbuilder
+ {\doifrightpagefloatelse
+ {\dodofloatboxnextleftmarginbuilder \leftmargindistance}
+ {\dodofloatboxnextrightmarginbuilder\leftmargindistance}}
+
+\def\dofloatboxnextbuilder % beware, we first check on left/rightmargin because there can be left/right also
+ {\let\next\dofloatboxnextleftbuilder
+ \normalexpanded{\noexpand\processallactionsinset[\floatcaptionparameter\c!location]}
+ [ \v!outermargin=>\let\next\dofloatboxnextoutermarginbuilder,
+ \v!innermargin=>\let\next\dofloatboxnextinnermarginbuilder,
+ \v!leftmargin=>\let\next\dofloatboxnextleftmarginbuilder,
+ \v!rightmargin=>\let\next\dofloatboxnextrightmarginbuilder,
+ \v!lefthanging=>\let\next\dofloatboxnextlefthangbuilder,
+ \v!righthanging=>\let\next\dofloatboxnextrighthangbuilder,
+ \v!outer=>\let\next\dofloatboxnextouterbuilder,
+ \v!inner=>\let\next\dofloatboxnextinnerbuilder,
+ \v!left=>\let\next\dofloatboxnextleftbuilder,
+ \v!right=>\let\next\dofloatboxnextrightbuilder]%
+ \next}
+
+\def\dofloatboxsidebuilder
+ {\ifparfloat
+ \let\next\dofloatboxhighbuilder
+ \else
+ \let\next\dofloatboxmiddlebuilder
+ \expanded{\processallactionsinset[\floatcaptionparameter\c!location]}
+ [ \v!low=>\let\next\dofloatboxlowbuilder,
+ \v!middle=>\let\next\dofloatboxmiddlebuilder,
+ \v!high=>\let\next\dofloatboxhighbuilder]%
+ \fi
+ \next}
+
+\def\doflushfloatleftcaptionhang
+ {\hsmash{\llap{\box\tempcaptionbox\dotfskip{\floatcaptionparameter\c!distance}}}}
+\def\doflushfloatrightcaptionhang
+ {\hsmash{\rlap{\dotfskip{\floatcaptionparameter\c!distance}\box\tempcaptionbox}}}
+
+\def\doflushfloatcaptionhang
+ {\expanded{\doifinsetelse{\v!righthanging}{\floatcaptionparameter\c!location}}
+ {\doflushfloatrightcaptionhang}
+ {\expanded{\doifinsetelse{\v!lefthanging}{\floatcaptionparameter\c!location}}
+ {\doflushfloatleftcaptionhang}
+ {\expanded{\doifinsetelse{\v!hang}{\floatcaptionparameter\c!location}}
+ {\expanded{\doifinsetelse{\v!outer}{\floatcaptionparameter\c!location}}
+ {\doifrightpagefloatelse{\doflushfloatrightcaptionhang}{\doflushfloatleftcaptionhang}}
+ {\expanded{\doifinsetelse{\v!right}{\floatcaptiondirectives}}
+ {\doflushfloatrightcaptionhang}
+ {\doflushfloatleftcaptionhang}}}
+ {\box\tempcaptionbox}}}}
+
+\def\dofloatboxhighbuilder
+ {\dofloatboxnextbuilder{\dofloatboxbetweenstack\doflushfloatcaptionhang\vfill}}
+
+\def\dofloatboxlowbuilder
+ {\dofloatboxnextbuilder{\vfill\doflushfloatcaptionhang\dofloatboxbetweenstack}}
+
+\def\dofloatboxmiddlebuilder
+ {\dofloatboxnextbuilder{\vfill\box\tempcaptionbox\vfill}}
+
+% \definefloat
+% [lefty][lefties][figure]
+% \setupfloat
+% [lefty]
+% [default=left,
+% rightmargindistance=-2cm,
+% leftmargindistance=-2cm]
+% \setupcaption
+% [lefty]
+% [location={bottom,overlay}]
+%
+% \starttext
+% \placelefty{}{} \input tufte \input tufte
+% \placelefty{}{} \input tufte \input tufte
+% \stoptext
+
+\def\bothangfloat#1{\ruledvbox to \ht\tempfloatbox{#1\vss}}
+\def\tophangfloat#1{\ruledvbox to \ht\tempfloatbox{\vss#1}}
+
+\def\dofloatboxnormaltopstackbuilder
+ {\expanded{\doifinset{\v!overlay}{\floatcaptionparameter\c!location}}\tophangfloat
+ {\tempfloatwidth\wd\tempfloatbox
+ \ifparfloat
+ \hbox{\locatesidefloat{\box\tempcaptionbox}}%
+ \dofloatboxbetweenstack
+ \hbox{\hbox {\box\tempfloatbox }}%
+ \else
+ \hbox{\locatetextfloat{\box\tempcaptionbox}}
+ \dofloatboxbetweenstack
+ \hbox{\locatefloat {\box\tempfloatbox }}%
+ \fi}}
+
+\def\dofloatboxnormalbotstackbuilder
+ {\expanded{\doifinset{\v!overlay}{\floatcaptionparameter\c!location}}\bothangfloat
+ {\tempfloatwidth\wd\tempfloatbox
+ \ifparfloat
+ \hbox{\hbox {\box\tempfloatbox }}%
+ \dofloatboxbetweenstack
+ \hbox{\locatesidefloat{\box\tempcaptionbox}}%
+ \else
+ \hbox{\locatefloat {\box\tempfloatbox }}%
+ \dofloatboxbetweenstack
+ \hbox{\locatetextfloat{\box\tempcaptionbox}}%
+ \fi}}
+
+\def\dofloatboxgridtopstackbuilder
+ {\dp\tempcaptionbox\strutdepth
+ \setbox\scratchbox\vbox
+ {\tempfloatwidth\wd\tempfloatbox
+ \ifparfloat
+ \locatesidefloat{\box\tempcaptionbox}%
+ \vss\dofloatboxbetweenstack
+ \hbox {\box\tempfloatbox }%
+ \else
+ \locatetextfloat{\box\tempcaptionbox}%
+ \vss\dofloatboxbetweenstack
+ \locatefloat {\box\tempfloatbox }%
+ \fi}%
+ \getnoflines{\dimexpr\htdp\scratchbox-10\scaledpoint\relax}% get rid of inaccuracy
+ \vbox to \noflines\lineheight{\unvbox\scratchbox}}
+
+\def\dofloatboxgridbotstackbuilder
+ {\dp\tempcaptionbox\strutdepth
+ \setbox\scratchbox\vbox
+ {\tempfloatwidth\wd\tempfloatbox
+ \ifparfloat
+ \hbox {\box\tempfloatbox }%
+ \vss\dofloatboxbetweenstack
+ \locatesidefloat{\box\tempcaptionbox}%
+ \else
+ \locatefloat {\box\tempfloatbox }%
+ \vss\dofloatboxbetweenstack
+ \locatetextfloat{\box\tempcaptionbox}%
+ \fi}%
+ \getnoflines{\dimexpr\htdp\scratchbox-10\scaledpoint\relax}% get rid of inaccuracy
+ \vbox to \noflines\lineheight{\unvbox\scratchbox}}
+
+\def\dofloatboxstretchtopstackbuilder
+ {\dp\tempcaptionbox\strutdepth
+ \setbox\scratchbox\vbox
+ {\locatecaption{\copy\tempcaptionbox}%
+ \locatefloat {\copy\tempfloatbox }}%
+ \getnoflines{\dimexpr\htdp\scratchbox-10\scaledpoint\relax}% get rid of inaccuracy
+ \vbox to \noflines\lineheight
+ {\tempfloatwidth\wd\tempfloatbox
+ \ifparfloat
+ \locatesidefloat{\box\tempcaptionbox}%
+ \vss\dofloatboxbetweenstack\vss
+ \hbox {\box\tempfloatbox }%
+ \else
+ \locatetextfloat{\box\tempcaptionbox}%
+ \vss\dofloatboxbetweenstack\vss
+ \locatefloat {\box\tempfloatbox }%
+ \fi}}
+
+\def\dofloatboxstretchbotstackbuilder
+ {\dp\tempcaptionbox\strutdepth
+ \setbox\scratchbox\vbox
+ {\locatefloat {\copy\tempfloatbox }%
+ \locatecaption{\copy\tempcaptionbox}}%
+ \getnoflines{\dimexpr\htdp\scratchbox-10\scaledpoint\relax}% get rid of inaccuracy
+ \vbox to \noflines\lineheight
+ {\tempfloatwidth\wd\tempfloatbox
+ \ifparfloat
+ \hbox {\box\tempfloatbox }%
+ \vss\dofloatboxbetweenstack\vss
+ \locatesidefloat{\box\tempcaptionbox}
+ \else
+ \locatefloat {\box\tempfloatbox }%
+ \vss\dofloatboxbetweenstack\vss
+ \locatetextfloat{\box\tempcaptionbox}%
+ \fi}}
+
+\def\dofloatboxtopbuilder
+ {\let\next\dofloatboxnormaltopstackbuilder
+ \expanded{\processfirstactioninset[\floatcaptionparameter\c!location]}
+ [ \v!grid=>\let\next\dofloatboxgridstackbuilder,
+ \v!stretch=>\let\next\dofloatboxstretchstackbuilder]%
+ \next}
+
+\def\dofloatboxbottombuilder
+ {\let\next\dofloatboxnormalbotstackbuilder
+ \expanded{\processfirstactioninset[\floatcaptionparameter\c!location]}
+ [ \v!grid=>\let\next\dofloatboxgridstackbuilder,
+ \v!stretch=>\let\next\dofloatboxstretchstackbuilder]%
+ \next}
+
+\def\relocatecaptionright#1{\locatecaption{\hbox to \tempfloatwidth{\hss#1}}}
+\def\relocatecaptionleft #1{\locatecaption{\hbox to \tempfloatwidth{#1\hss}}}
+
+\long\def\installfloatboxbuilder#1#2{\setvalue{\??kj:#1}{#2}}
+
+\def\buildfloatbox
+ {\global\setbox\floatbox\vbox
+ {\setlocalfloathsize
+ \forgetall
+ \let\floatcaptionarrangement\s!default
+ \def\docommand##1%
+ {\doifdefined{\??kj:##1}{\def\floatcaptionarrangement{##1}\quitcommalist}}%
+ \processcommacommand[\floatcaptionparameter\c!location]\docommand
+ \executeifdefined{\??kj:\floatcaptionarrangement}{\getvalue{\??kj:\s!default}}}}
+
+\def\locatetextfloat
+ {\let\next\locatecaption
+ \expanded{\processallactionsinset[\floatcaptionparameter\c!location]}
+ [ \v!left=>\let\next\relocatecaptionleft,
+ \v!right=>\let\next\relocatecaptionright,
+ \v!inner=>\doifrightpagefloatelse{\let\next\relocatecaptionleft }{\let\next\relocatecaptionright},
+ \v!outer=>\doifrightpagefloatelse{\let\next\relocatecaptionright}{\let\next\relocatecaptionleft }]%
+ \next}
+
+\installfloatboxbuilder \v!none \dofloatboxdefaultbuilder
+\installfloatboxbuilder \s!default \dofloatboxdefaultbuilder
+\installfloatboxbuilder \v!high \dofloatboxhighbuilder
+\installfloatboxbuilder \v!low \dofloatboxlowbuilder
+\installfloatboxbuilder \v!middle \dofloatboxmiddlebuilder
+
+\installfloatboxbuilder \v!left \dofloatboxsidebuilder
+\installfloatboxbuilder \v!right \dofloatboxsidebuilder
+
+\installfloatboxbuilder \v!top \dofloatboxtopbuilder
+\installfloatboxbuilder \v!bottom \dofloatboxbottombuilder
+
+% \setuplayout[grid=yes] \showgrid \setupcaptions[style=smallbodyfont,location=grid,inbetween=]
+%
+% \starttext
+% test \placefigure{} {\externalfigure[cow.pdf][frame=on,grid=yes]} test \page
+% test \placefigure{\input zapf\relax}{\externalfigure[cow.pdf][frame=on,grid=yes]} test \page
+% test \placefigure{} {\externalfigure[cow.pdf][frame=on,grid=depth]} test \page
+% test \placefigure{\input zapf\relax}{\externalfigure[cow.pdf][frame=on,grid=depth]} test \page
+% \stoptext
+
+\newif\ifpostponecolumnfloats \postponecolumnfloatsfalse % don't change
+
+\chardef\postcenterfloatmethod\plusone
+
+\def\postcenterfloatbox#1%
+ {\scratchdimen
+ \ifcase\postcenterfloatmethod
+ #1% \wd\floatbox
+ \or\ifinsidecolumns
+ \ifpostponecolumnfloats\makeupwidth\else#1\fi
+ \else\ifdim#1>\hsize
+ \hsize
+ \else
+ \wd\floatbox
+ \fi\fi\fi
+ \global\setbox\floatbox\hbox to \scratchdimen
+ % {\hfill\box\floatbox\hfill}} % geen \hss, gaat mis in kolommen !
+ % {\hss \box\floatbox\hss }} % wel \hss, anders mis in colset
+ {\ifglobalcenterfloatbox
+ \donetrue
+ \else\iflocalcenterfloatbox
+ \donetrue
+ \else
+ \donefalse
+ \fi\fi
+ \ifdim\scratchdimen>\effectivehsize
+ \donefalse
+ \fi
+ \hss\ifdone\hskip\effectiveleftskip\fi
+ \box\floatbox
+ \ifdone\hskip\effectiverightskip\fi\hss}}
+
+\long\def\dosetparfloat#1#2#3%
+ {\bgroup
+ \forgetall
+ \postponenotes
+ \dontcomplain
+ %\showcomposition
+ \setbox\tempfloatbox\vbox{\borderedfloatbox}%
+ \addlocalbackgroundtobox\tempfloatbox % no \doglobal
+ \docheckcaptioncontent{#2}{#3}%
+ \ifnofloatcaption
+ \global\setbox\floatbox\vbox{\box\tempfloatbox}%
+ \else
+ \dopreparedosidecaption{#1}{#2}{#3}%
+ \settracedcaptionbox
+ \setbox\tempcaptionbox\hbox{\floatcaptionparameter\c!command{\box\tempcaptionbox}}%
+ \moveboxontogrid\tempcaptionbox{\floatcaptionparameter\c!grid}\lastcaptionht
+ \addlocalbackgroundtobox\tempcaptionbox % no \doglobal
+ \buildsidefloatbox
+ \fi
+ \egroup}
+
+\def\dopreparedosidecaption#1#2#3% will be enhanced
+ {\doifelse{\floatcaptionparameter\c!width}\v!max
+ {\dosettempcaptionbox
+ {\hsize\wd\tempfloatbox
+ \putcompletecaption{#2}{#3}}}%
+ {\doifelse{\floatcaptionparameter\c!width}\v!fit
+ {\ifdim\wd\tempcaptionbox>\wd\tempfloatbox\relax
+ \setbox\tempcaptionbox\vbox
+ {\forgetall % needed?
+ \hsize\wd\tempfloatbox
+ \dosetcaptionthings
+ \putcompletecaption{#2}{#3}}%
+ \else
+ \setbox\tempcaptionbox\hbox to \wd\tempfloatbox
+ {\hss\box\tempcaptionbox\hss}%
+ \fi}
+ {\dosettempcaptionbox
+ {\hsize\floatcaptionparameter\c!width % \wd\tempfloatbox
+ \putcompletecaption{#2}{#3}}}}}
+
+\def\buildsidefloatbox
+ {\let\locatefloat \relax
+ \let\locatecaption\relax
+ \def\locatesidefloat##1%
+ {\begingroup
+ \chardef\alignstrutmode\zerocount
+ \hsize\tempfloatwidth \forgetall
+ \alignedline{\floatparameter\c!location}\v!middle{##1}%
+ \endgroup}%
+ \buildfloatbox}
+
+\newif\ifparfloat
+
+\long\def\dosetfloatbox#1#2#3% todo : \global\setbox
+ {\ifvisible
+ \par
+ \edef\floatcaptiondirectives{\floatparameter\c!location,\floatcaptionparameter\c!location}%
+ \ifparfloat\@EA\dosetparfloat\else\@EA\dosetpagfloat\fi{#1}{#2}{#3}%
+ \setlocalfloatdimensions{#1}%
+ \setbox\floatbox\hbox{\dosavefloatdata\box\floatbox}% still needed? we will do renumbering differently
+ \global\floatheight\ht\floatbox
+ \global\advance\floatheight \dp\floatbox
+ \global\floatwidth\wd\floatbox
+ \global\advance\totalnoffloats \plusone
+ \doifnotinset\v!margin{#1} % gaat namelijk nog fout
+ {\setbox\floatbox\vbox
+ {\parindent\zeropoint
+ \doifconcepttracing{\inleftmargin{\framed{\infofont\the\totalnoffloats}}}%
+ \box\floatbox}}%
+ \wd\floatbox\floatwidth
+ \dimen0=\floatheight
+ \advance\dimen0 \lineheight
+ \ifdim\dimen0<\textheight
+ \else
+ \global\floatheight\textheight
+ \global\advance\floatheight -\lineheight
+ \ht\floatbox\floatheight
+ \dp\floatbox\zeropoint
+ \showmessage\m!floatblocks{10}{\the\totalnoffloats}%
+ \fi
+ \fi}
+
+\newcounter\noxfloatlocations
+
+\long\def\dofloat#1#2#3% #1 is optionlist
+ {\dosetfloatbox{#1}{#2}{#3}%
+ \dogetfloatbox{#1}\empty}
+
+\def\dooutput{\sidefloatoutput} % redefinition of \dooutput
+
+\definefloat
+ [\v!figure]
+ [\v!figures]
+
+\definefloat
+ [\v!table]
+ [\v!tables]
+
+\setupfloat
+ [\v!table]
+ [\c!frame=\v!off]
+
+\definefloat
+ [\v!intermezzo]
+ [\v!intermezzi]
+
+\definefloat
+ [\v!graphic]
+ [\v!graphics]
+
+% float strategy, replaces some of the above macros
+
+\let\floatmethod \empty
+\let\floatcolumn \empty
+\let\floatrow \empty
+\let\forcedfloatmethod\empty
+
+\def\dogetfloatbox#1#2%
+ {\ifvisible
+ \doifelsenothing{#2}
+ {\getfromcommalist[#1][1]%
+ \@EA\beforesplitstring\commalistelement\at:\to\floatmethod
+ \@EA\aftersplitstring \commalistelement\at:\to\floatcolumn
+ \@EA\aftersplitstring \floatcolumn\at*\to\floatrow
+ \@EA\beforesplitstring\floatcolumn\at*\to\floatcolumn
+ % todo: nog algemeen otr
+ \ifx\OTRSETsetpreferedcolumnslot\undefined\else
+ \OTRSETsetpreferedcolumnslot\floatcolumn\floatrow
+ \fi}
+ {\let\floatcolumn\empty
+ \let\floatrow\empty
+ \edef\floatmethod{#2}}%
+ \doifundefined{\string\floatmethod\floatmethod}
+ {\let\floatmethod\v!here}%
+ \doifsomething\forcedfloatmethod
+ {\edef\floatmethod{\forcedfloatmethod}}%
+ %\getvalue{\string\floatmethod\floatmethod}[#1]%
+ \getvalue{\string\floatmethod\floatmethod}[\floatmethod,#1]%
+ \fi}
+
+\def\installfloathandler#1#2% #1=keyword #2=handler
+ {\setvalue{\string\floatmethod#1}{#2}}
+
+\installfloathandler \v!here \someherefloat
+\installfloathandler \v!force \somefixdfloat
+\installfloathandler \v!left \someleftsidefloat
+\installfloathandler \v!right \somerightsidefloat
+\installfloathandler \v!text \sometextfloat
+\installfloathandler \v!top \sometopfloat
+\installfloathandler \v!bottom \somebottomfloat
+\installfloathandler \v!auto \someautofloat
+\installfloathandler \v!margin \somemarginfloat
+\installfloathandler \v!opposite \somefacefloat
+\installfloathandler \v!page \somepagefloat
+\installfloathandler \v!leftpage \someleftpagefloat
+\installfloathandler \v!rightpage \somerightpagefloat
+\installfloathandler \v!inmargin \someinmarginfloat
+\installfloathandler \v!inleft \someinleftmarginfloat
+\installfloathandler \v!inright \someinrightmarginfloat
+\installfloathandler \v!leftmargin \someinleftmarginfloat
+\installfloathandler \v!rightmargin \someinrightmarginfloat
+\installfloathandler \v!leftedge \someinleftedgefloat
+\installfloathandler \v!rightedge \someinrightedgefloat
+
+\installfloathandler \v!backspace \somebackspacefloat
+\installfloathandler \v!cutspace \somecutspacefloat
+
+\installfloathandler {tblr} \someslotfloat
+\installfloathandler {lrtb} \someslotfloat
+\installfloathandler {tbrl} \someslotfloat
+\installfloathandler {rltb} \someslotfloat
+\installfloathandler {btlr} \someslotfloat
+\installfloathandler {lrbt} \someslotfloat
+\installfloathandler {btrl} \someslotfloat
+\installfloathandler {rlbt} \someslotfloat
+\installfloathandler {fxtb} \someslotfloat
+\installfloathandler {fxbt} \someslotfloat
+
+\registerotrcommand\placesomeslotfloat % \def\placesomeslotfloat {\OTRcommand\someslotfloat}
+\registerotrcommand\placesomeherefloat % \def\placesomeherefloat {\OTRcommand\someherefloat}
+\registerotrcommand\placesomefixdfloat % \def\placesomefixdfloat {\OTRcommand\somefixdfloat}
+\registerotrcommand\placesomepagefloat % \def\placesomepagefloat {\OTRcommand\somepagefloat}
+\registerotrcommand\placesomeleftpagefloat % \def\placesomeleftpagefloat {\OTRcommand\someleftpagefloat}
+\registerotrcommand\placesomerightpagefloat % \def\placesomerightpagefloat{\OTRcommand\somerightpagefloat}
+\registerotrcommand\placesometopsfloat % \def\placesometopsfloat {\OTRcommand\sometopsfloat}
+\registerotrcommand\placesomebotsfloat % \def\placesomebotsfloat {\OTRcommand\somebotsfloat}
+\registerotrcommand\placesomesidefloat % \def\placesomesidefloat {\OTRcommand\somesidefloat}
+\registerotrcommand\placesomefacefloat % \def\placesomefacefloat {\OTRcommand\somefacefloat}
+
+\def\someleftsidefloat [#1]{\somesidefloat[#1]\presetindentation}
+\def\somerightsidefloat [#1]{\somesidefloat[#1]}
+\def\sometopfloat [#1]{\someelsefloat[#1]\nonoindentation}
+\def\somebottomfloat [#1]{\someelsefloat[#1]}
+\def\someautofloat [#1]{\someelsefloat[#1]}
+\def\somemarginfloat [#1]{\somenextfloat[#1]\nonoindentation}
+\def\someinleftmarginfloat [#1]{\somesidefloat[#1]}
+\def\someinrightmarginfloat[#1]{\somesidefloat[#1]}
+\def\someinleftedgefloat [#1]{\somesidefloat[#1]}
+\def\someinrightedgefloat [#1]{\somesidefloat[#1]}
+\def\someinmarginfloat [#1]{\somesidefloat[#1]}
+\def\someherefloat [#1]{\someelsefloat[\v!here,#1]}
+
+\def\somebackspacefloat [#1]{\somesidefloat[#1]}
+\def\somecutspacefloat [#1]{\somesidefloat[#1]}
+
+\def\somefixdfloat {\placesomefixdfloat}
+\def\somepagefloat {\placesomepagefloat}
+\def\someleftpagefloat {\placesomeleftpagefloat}
+\def\somerightpagefloat{\placesomerightpagefloat}
+\def\somefacefloat {\placesomefacefloat}
+\def\someslotfloat {\placesomeslotfloat}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/strc-ini.lua b/Master/texmf-dist/tex/context/base/strc-ini.lua
new file mode 100644
index 00000000000..06f5ff82f82
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/strc-ini.lua
@@ -0,0 +1,282 @@
+if not modules then modules = { } end modules ['strc-ini'] = {
+ version = 1.001,
+ comment = "companion to strc-ini.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+--[[
+
+The restructuring is the (intermediate) result of quite some experiments. I started
+with the basic structure, followed by lists, numbers, enumerations, itemgroups
+and floats. All these have something in common, like pagenumbers and section
+prefixes. I played with some generic datastructure (in order to save space) but
+the code at both the lua and tex end then quickly becomes messy due to the fact
+that access to variables is too different. So, eventually I ended up with
+dedicated structures combined with sharing data. In lua this is quite efficient
+because tables are referenced. However, some precautions are to be taken in
+order to keep the utility file small. Utility data and process data share much
+but it does not make sense to store all processdata.
+
+]]--
+
+local format, concat, match = string.format, table.concat, string.match
+local count, texwrite, texprint, texsprint = tex.count, tex.write, tex.print, tex.sprint
+local type, next, tonumber, tostring = type, next, tonumber, tostring
+
+local ctxcatcodes = tex.ctxcatcodes
+
+-- move this
+
+commands = commands or { }
+
+function commands.first_in_list(str)
+ local first = match(str,"^([^,]+),")
+ texsprint(ctxcatcodes,first or str)
+end
+
+-- -- -- namespace -- -- --
+
+structure = structure or { }
+
+-- -- -- cache -- -- --
+
+structure.shares = structure.shares or { }
+structure.shares.cache = structure.shares.cache or { }
+
+local shares = structure.shares
+local cache = shares.cache
+
+function shares.put(data)
+ cache[#cache+1] = data
+ return #cache
+end
+
+function shares.get(n) -- n can be string
+ n = tonumber(n) or -1
+ return cache[n]
+end
+
+-- -- -- specials -- -- --
+
+-- we can store information and get back a reference; this permits
+-- us to store rather raw data in references
+
+local specials = { } structure.specials = specials
+
+specials.collected = specials.collected or { }
+specials.tobesaved = specials.collected or { }
+
+local collected, tobesaved = specials.collected, specials.tobesaved
+
+local function initializer()
+ collected, tobesaved = specials.collected, specials.tobesaved
+end
+
+if job then
+ job.register('structure.specials.collected', structure.specials.tobesaved, initializer)
+end
+
+function specials.store(class,data)
+ if class and data then
+ local s = tobesaved[class]
+ if not s then
+ s = { }
+ tobesaved[class] = s
+ end
+ s[#s+1] = data
+ texwrite(#s)
+ else
+ texwrite(0)
+ end
+end
+
+function specials.retrieve(class,n)
+ if class and n then
+ local c = collected[class]
+ return c and c[n]
+ end
+end
+
+-- -- -- helpers -- -- --
+
+structure.helpers = structure.helpers or { }
+
+local helpers = structure.helpers
+
+function helpers.touserdata(str)
+ local hash = str and str ~= "" and aux.settings_to_hash(str)
+ if hash and next(hash) then
+ return hash
+ end
+end
+
+local function simplify(d,nodefault)
+ if d then
+ local t = { }
+ for k, v in next, d do
+ local tv = type(v)
+ if tv == "table" then
+ if next(v) then t[k] = simplify(v) end
+ elseif tv == "string" then
+ if v ~= "" and v ~= "default" then t[k] = v end
+ elseif tv == "boolean" then
+ if v then t[k] = v end
+ else
+ t[k] = v
+ end
+ end
+--~ print(table.serialize(d,"before"))
+--~ print(table.serialize(t,"after"))
+ return next(t) and t
+ elseif nodefault then
+ return nil
+ else
+ return { }
+ end
+end
+
+helpers.simplify = simplify
+
+function helpers.merged(...)
+ local h, t = { ... }, { }
+ for k=1, #h do
+ local v = h[k]
+ if v and v ~= "" and not t[k] then
+ t[k] = v
+ end
+ end
+ return t
+end
+
+local tag = "ctx:tocentry"
+
+function helpers.title(title,metadata)
+ if title and title ~= "" then
+ if metadata then
+ if metadata.coding == "xml" then
+ buffers.set(tag,format("<?xml version='1.0'?><%s>%s</%s>",tag,title,tag))
+ texsprint(ctxcatcodes,format("\\xmlprocessbuffer{%s}{%s}{}",metadata.xmlroot or "main",tag))
+ else
+ texsprint(metadata.catcodes,title)
+ end
+ else
+ texsprint(title) -- no catcode switch
+ end
+ end
+end
+
+-- -- -- processors -- -- -- syntax: processor->data
+
+local processors = { } structure.processors = processors
+
+local registered = { }
+
+function processors.register(p)
+ registered[p] = true
+end
+
+function processors.reset(p)
+ registered[p] = nil
+end
+
+local splitter = lpeg.splitat("->",true)
+
+function processors.split(str)
+ local p, s = splitter:match(str)
+ if registered[p] then
+ return p, s
+ else
+ return false, str
+ end
+end
+
+function processors.sprint(catcodes,str,fnc,...)
+ local p, s = splitter:match(str)
+ if registered[p] then
+ texsprint(catcodes,format("\\applyprocessor{%s}{%s}",p,(fnc and fnc(s,...)) or s))
+ else
+ texsprint(catcodes,(fnc and fnc(str,...)) or str)
+ end
+end
+
+function processors.apply(str)
+ local p, s = splitter:match(str)
+ if registered[p] then
+ return format("\\applyprocessor{%s}{%s}",p,s)
+ else
+ return str
+ end
+end
+
+-- -- -- sets -- -- --
+
+structure.sets = structure.sets or { }
+structure.sets.setlist = structure.sets.setlist or { }
+
+storage.register("structure/sets/setlist", structure.sets.setlist, "structure.sets.setlist")
+
+local sets = structure.sets
+local setlist = sets.setlist
+
+function sets.define(namespace,name,values,default,numbers)
+ local dn = setlist[namespace]
+ if not dn then
+ dn = { }
+ setlist[namespace] = dn
+ end
+ if values == "" then
+ dn[name] = { { }, default }
+ else
+ local split = aux.settings_to_array(values)
+ if numbers then
+ -- convert to numbers (e.g. for reset)
+ for i=1,#split do
+ split[i] = tonumber(split[i]) or 0
+ end
+ end
+ dn[name] = { split, default }
+ end
+end
+
+function sets.getall(namespace,block,name)
+ local ds = setlist[namespace]
+ if not ds then
+ return { }
+ else
+ local dn
+ if block and block ~= "" then
+ dn = ds[block..":"..name] or ds[name] or ds[block] or ds.default
+ else
+ dn = ds[name] or ds.default
+ end
+ return (dn and dn[1]) or { }
+ end
+end
+
+function sets.get(namespace,block,name,level,default) -- check if name is passed
+ local ds = setlist[namespace]
+ if not ds then
+ return default
+ end
+ local dn
+ if name and name ~= "" then
+ if block and block ~= "" then
+ dn = ds[block..":"..name] or ds[name] or ds[block] or ds.default
+ else
+ dn = ds[name] or ds.default
+ end
+ else
+ if block and block ~= "" then
+ dn = ds[block] or ds[block..":default"] or ds.default
+ else
+ dn = ds.default
+ end
+ end
+ if not dn then
+ return default
+ end
+ local dl = dn[1][level]
+ return dl or dn[2] or default
+end
diff --git a/Master/texmf-dist/tex/context/base/strc-ini.mkiv b/Master/texmf-dist/tex/context/base/strc-ini.mkiv
new file mode 100644
index 00000000000..61944299803
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/strc-ini.mkiv
@@ -0,0 +1,88 @@
+%D \module
+%D [ file=strc-flt,
+%D version=2008.10.20,
+%D title=\CONTEXT\ Structure Macros,
+%D subtitle=Initialization \& Helpers,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA-ADE / Hans Hagen]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Structure Macros / Initialization & Helpers}
+
+\registerctxluafile{strc-ini}{1.001}
+
+\unprotect
+
+% \def\zerosection{0}
+% \def\resetsectionmarks{}
+% \setuppagenumbering
+
+% maybe use structurecomponent more consistently as name below
+
+% segments: 0:100 2:3 chapter:subsection 3 (=self+2) (alternative: sectionset)
+
+% section : [sectionnumber(s)]
+% sectionseparatorset (default) sectionconversionset (default) sectionstopper () sectionset sectionsegments
+
+% lists : [sectionnumber(s)] [text] [prefix(es)[separator]][pagenumber(s)]
+% sectionseparatorset (default) sectionconversionset (default) sectionstopper sectionset sectionsegments
+% prefixseparatorset (default) prefixconversionset (default) prefixstopper (.) prefixset prefixsegments
+% pageseparatorset (default) pageconversionset (default) pagestopper () pagesegments
+% prefix (no)
+
+% counter : [prefix(es)[separator]][number(s)]
+% prefixseparatorset (default) prefixconversionset (default) prefixstopper (.) prefixset prefixsegments
+% numberseparatorset (default) numberconversionset (default) numberstopper () numbersegments
+% prefix (no)
+
+% pagenumber: [prefix(es)[separator]][pagenumber(s)]
+% prefixseparatorset (default) prefixconversionset (default) prefixstopper (.) prefixset prefixsegments
+% pageseparatorset (default) pageconversionset (default) pagestopper ()
+% prefix (no)
+
+% text mark reference list
+% section P P P P
+% float P.N P.N P.N
+% itemize P.N P.N
+% enumerate P.N P.N P.N
+% formula P.N P.N
+% footnote P.N P.N P.N
+% number P.N P.N
+
+% number prefix section page
+
+% [text|marking|reference|list]:[number|prefix|pagenumber|pageprefix]:[separatorset|conversionset|conversion|stopper|set|segments|resetset|order]
+
+% figure caption : text:number:* text:prefix:* -> \setupcaption[figure][...]; stores defaults
+% figure list : list:number:* list:prefix:* list:pagenumber:* list:pageprefix:* -> \setuplist[figure][...]; takes stored defaults for number and pagenumber]
+% figure reference: reference:number:* reference:prefix:* reference:pagenumber:* reference:pageprefix:* -> \setupreference[figure]]...]; takes stored defaults
+
+% This module deals with structure: section headers, list and
+% numbering and eventually cross referencing. These components are
+% rather interwoven and therefore an inbetween layer is used.
+% Eventually this will replace the corresponding code in core-sec,
+% core-lst, core-num and core-ref.
+
+% We collect operations that deal with things like formatting on each
+% level of a number in sets. This is all handles at the \LUA\ end.
+% References to such sets travel with the multipass information.
+
+\def\definestructureresetset {\dotripleempty\dodefinestructureresetset}
+\def\definestructureseparatorset {\dotripleempty\dodefinestructureseparatorset}
+\def\definestructureconversionset{\dotripleempty\dodefinestructureconversionset}
+\def\definestructureprefixset {\dotripleempty\dodefinestructureprefixset}
+
+\def\dodefinestructureresetset [#1][#2][#3]{\ctxlua{structure.sets.define("structure:resets", "#1","\luaescapestring{\detokenize{#2}}","\luaescapestring{\detokenize{#3}}",true)}}
+\def\dodefinestructureseparatorset [#1][#2][#3]{\ctxlua{structure.sets.define("structure:separators", "#1","\luaescapestring{\detokenize{#2}}","\luaescapestring{\detokenize{#3}}")}}
+\def\dodefinestructureconversionset[#1][#2][#3]{\ctxlua{structure.sets.define("structure:conversions","#1","\luaescapestring{\detokenize{#2}}","\luaescapestring{\detokenize{#3}}")}}
+\def\dodefinestructureprefixset [#1][#2][#3]{\ctxlua{structure.sets.define("structure:prefixes", "#1","\luaescapestring{\detokenize{#2}}","\luaescapestring{\detokenize{#3}}")}}
+
+% \definestructureseparatorset [weird][!,?,*][:] % tex content
+% \definestructureconversionset[weird][numbers,characters,romannumerals][numbers] % symbolic names
+% \definestructureresetset [weird][0,0,1][0] % numbers
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/strc-itm.lua b/Master/texmf-dist/tex/context/base/strc-itm.lua
new file mode 100644
index 00000000000..fc609b44812
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/strc-itm.lua
@@ -0,0 +1,24 @@
+if not modules then modules = { } end modules ['strc-itm'] = {
+ version = 1.001,
+ comment = "companion to strc-itm.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+structure = structure or { }
+structure.itemgroups = structure.itemgroups or { }
+
+local itemgroups = structure.itemgroups
+
+function itemgroups.register(name,nofitems,maxwidth)
+ jobpasses.savedata("itemgroup", { nofitems, maxwidth })
+end
+
+function itemgroups.nofitems(name,index)
+ jobpasses.getfield("itemgroup", index, 1, 0)
+end
+
+function itemgroups.maxwidth(name,index)
+ jobpasses.getfield("itemgroup", index, 2, 0)
+end
diff --git a/Master/texmf-dist/tex/context/base/core-itm.tex b/Master/texmf-dist/tex/context/base/strc-itm.mkii
index 605e3ef1d49..d0afd13c842 100644
--- a/Master/texmf-dist/tex/context/base/core-itm.tex
+++ b/Master/texmf-dist/tex/context/base/strc-itm.mkii
@@ -1,7 +1,7 @@
%D \module
-%D [ file=core-itm, % updated
+%D [ file=strc-itm, % updated
%D version=1997.03.31,
-%D title=\CONTEXT\ Core Macros,
+%D title=\CONTEXT\ Structure Macros,
%D subtitle=itemgroups,
%D author=Hans Hagen,
%D date=\currentdate,
@@ -14,39 +14,7 @@
% new: text + lefttext=(,righttext=)
% start=
-\writestatus{loading}{Context Core Macros / Itemgroups}
-
-\startmessages dutch library: layouts
- 9: momenteel maximaal -- niveaus in opsommingen
-\stopmessages
-
-\startmessages english library: layouts
- 9: currently no more than -- levels in itemizations
-\stopmessages
-
-\startmessages german library: layouts
- 9: z.Z. nicht mehr als -- Ebenen in Aufzaehlungen
-\stopmessages
-
-\startmessages czech library: layouts
- 9: aktualne ne vice nez -- urovne/urovni vyctu
-\stopmessages
-
-\startmessages italian library: layouts
- 9: attualmente non più di -- livelli di elencazione
-\stopmessages
-
-\startmessages norwegian library: layouts
- 9: for øyeblikket maksimalt -- nivåer i opplisting
-\stopmessages
-
-\startmessages romanian library: layouts
- 9: acum nu se supota mai mult de -- nivele de adancime la iteratii
-\stopmessages
-
-\startmessages french library: layouts
- 9: pas plus de -- niveaux pour l'instant dans les élémentarisations
-\stopmessages
+\writestatus{loading}{ConTeXt Structure Macros / Itemgroups}
\unprotect
@@ -149,7 +117,11 @@
\edef\currentminnofitems{\the\scratchcounter}%
% [[\currentnofitems,\currentminnofitems,\currentmaxnofitems]]
\fi
- \fi}
+ \else % new, when no tuo yet
+ \let\currentnofitems \!!zerocount
+ \let\currentminnofitems\!!plusone
+ \let\currentmaxnofitems\!!zerocount
+ \fi} % [[\currentnofitems,\currentminnofitems,\currentmaxnofitems]]
% \startitemize[n,packed]
% \item test \item test \item test
@@ -179,6 +151,14 @@
\def\setitemparameter #1#2{\@EA\def\csname\??op\currentitemgroup#1#2\endcsname} % #3 -> {#3}
\def\letitemparameter #1#2{\@EA\let\csname\??op\currentitemgroup#1#2\endcsname}
+% works ok but not needed (also possible compatibility problem)
+%
+% \def\getitemparameter#1#2%
+% {\executeifdefined{\??op\currentitemgroup#1#2}%
+% {\executeifdefined{\??op\currentitemgroup #2}%
+% {\executeifdefined{\??oo #2}%
+% {}}}}
+
% test this: saves hash entries and is also faster
%
% \let\doinitializeitemgrouplevel\gobbleoneargument % todo ! ! !
@@ -218,14 +198,14 @@
\def\doinitializeitemgrouplevel#1%
{\copyparameters
[\??op\currentitemgroup#1][\??oo]
- [\c!width,\c!factor,\c!distance,\c!align,\c!symalign,\c!option,
- \c!style,\c!marstyle,\c!symstyle,\c!headstyle,
- \c!color,\c!marcolor,\c!symcolor,\c!headcolor,
- \c!beforehead,\c!afterhead,\c!before,\c!inbetween,\c!after,
- \c!stopper,\c!placestopper,\c!indenting,
- \c!n,\c!inner,\c!symbol,\c!margin,\c!items,
- \c!leftmargin,\c!rightmargin,\c!indentnext,
- \c!command,
+ [\c!width,\c!factor,\c!distance,\c!align,\c!symalign,\c!option,%
+ \c!style,\c!marstyle,\c!symstyle,\c!headstyle,%
+ \c!color,\c!marcolor,\c!symcolor,\c!headcolor,%
+ \c!beforehead,\c!afterhead,\c!before,\c!inbetween,\c!after,%
+ \c!stopper,\c!placestopper,\c!indenting,%
+ \c!n,\c!inner,\c!symbol,\c!margin,\c!items,%
+ \c!leftmargin,\c!rightmargin,\c!indentnext,%
+ \c!command,%
\c!start,\c!lefttext,\c!righttext]}
\def\setupitemgroups
@@ -805,6 +785,9 @@
\def\itemgroupitem
{\doitemgroupitem}
+\def\itemgroupnoitem
+ {\doitemgroupnoitem}
+
\def\itemgroupbutton[#1]%
{\gdef\doitemdestination{#1}%
\itemgroupitem}
@@ -846,7 +829,8 @@
\itemgroupitem}
\appendtoks \let\item \itemgroupitem \to \itemgroupcommands
-%appendtoks \letvalue\v!item \itemgroupitem \to \itemgroupcommands
+\appendtoks \let\noitem \itemgroupnoitem \to \itemgroupcommands
+\appendtoks \letvalue\v!item \itemgroupitem \to \itemgroupcommands
\appendtoks \let\itm \itemgroupitem \to \itemgroupcommands
\appendtoks \let\but \itemgroupbutton \to \itemgroupcommands
\appendtoks \let\nop \itemgroupdummy \to \itemgroupcommands
@@ -936,7 +920,7 @@
\ifdim\scratchdimen>\dimen0
\advance\scratchdimen -\dimen0
\else
- \scratchdimen\z@
+ \scratchdimen\zeropoint
\fi
\llap{\hbox to \dimen0{\ifconditional\sublistitem\llap{+}\fi\box8\hss}}% was: \hfill
\hskip\scratchdimen}
@@ -1043,6 +1027,23 @@
\EveryPar{\ignorespaces}% needed ?
\ignorespaces}
+% For Wolfgang Schuster
+
+% \startitemize[n,repeat]
+% \noitem \startitemize[a] \item Item 1.a. \item Item 1.b. \stopitemize
+% \noitem \startitemize[a] \item Item 2.a. \item Item 2.b. \stopitemize
+% \stopitemize
+
+\def\donolistitem % reduced \dolistitem
+ {\increment\noflistelements
+ \setbox8\hbox
+ {\doitemattributes\currentitemlevel\c!style\c!color{\listitem}}%
+ \checkforrepeatedlistitem
+ \ignorespaces}
+
+\def\doitemgroupnoitem
+ {\doadvanceitem\donolistitem}
+
% For Frank Grieshaber and Mojca Miklavec:
\newconditional\repeatlistitem
@@ -1102,7 +1103,8 @@
\fi % new, concat
\doadvanceitem
\ifcase\itemcolumndepth \ifnum\noflistelements>0\relax
- \doitembreak\nobreak
+ % wrong, but why was this here in the first place, probably some
+ % mistaken change when cleaning up: \doitembreak\nobreak
\fi\fi
\ifconditional\firstlistitem
\setfalse\firstlistitem
diff --git a/Master/texmf-dist/tex/context/base/strc-itm.mkiv b/Master/texmf-dist/tex/context/base/strc-itm.mkiv
new file mode 100644
index 00000000000..6799a02a67d
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/strc-itm.mkiv
@@ -0,0 +1,1200 @@
+%D \module
+%D [ file=strc-itm,
+%D version=2008.10.20,
+%D title=\CONTEXT\ Structure Macros,
+%D subtitle=Itemgroups,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA-ADE / Hans Hagen]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Structure Macros / Itemgroups}
+
+\registerctxluafile{strc-itm}{1.001}
+
+\unprotect
+
+\newconditional\sublistitem \setfalse\sublistitem
+\newconditional\symbollistitem \setfalse\symbollistitem
+\newconditional\headlistitem \setfalse\headlistitem
+\newconditional\introlistitem \setfalse\introlistitem
+\newconditional\randomizeitems \setfalse\randomizeitems
+\newconditional\autointrolistitem \setfalse\autointrolistitem
+\newconditional\optimizelistitem \settrue \optimizelistitem
+\newconditional\packlistitem \setfalse\packlistitem
+\newconditional\paragraphlistitem \setfalse\paragraphlistitem
+\newconditional\textlistitem \setfalse\textlistitem
+\newconditional\firstlistitem \setfalse\firstlistitem
+\newconditional\beforelistitem \setfalse\beforelistitem
+\newconditional\afterlistitem \setfalse\afterlistitem
+\newconditional\nowhitelistitem \setfalse\nowhitelistitem
+\newconditional\joinedlistitem \setfalse\joinedwhitelistitem
+\newconditional\reverselistitem \setfalse\reverselistitem
+\newconditional\continuelistitems \setfalse\continuelistitems
+\newconditional\fittinglistitems \setfalse\fittinglistitems
+
+\newcount\noflists
+\newcount\currentnoflists
+\newcount\noflistelements
+\newcount\itemcolumndepth
+\newcount\itemdepth
+\newcount\maxitemdepth \maxitemdepth=6
+
+\newdimen\itemgrouplistwidth
+\newdimen\itemgroupaskedwidth
+\newbox \itemgroupitembox
+
+\def\currentitemgroupcounter{itemgroup:\currentitemgroup}
+
+\let\currentitemlevel \!!zerocount
+\let\currentitemgroup \empty
+\let\currentnofitems \!!zerocount
+\def\currentitemnumber {\dorawsubstructurecounter[\currentitemgroupcounter][\currentitemlevel]}
+\let\currentrepeatstart \empty
+
+\def\dolistreference
+ {\iftrialtypesetting \else % no need for different treatment of \continuelistitems
+ \ctxlua{structure.itemgroups.register("\currentitemgroup",\number\noflistelements,"\getitemparameter\currentitemlevel\c!maxwidth")}%
+ \fi}
+
+\def\checkcurrentnofitems % we could do this at the lua end and save a call
+ {\edef\currentnofitems {\ctxlua{structure.itemgroups.nofitems("\currentitemgroup",\number\currentnoflists)}}%
+ \edef\currentitemmaxwidth{\ctxlua{structure.itemgroups.maxwidth("\currentitemgroup",\number\currentnoflists)}\scaledpoint}}
+
+\def\dohandleitemreference % we will make a decent number helper
+ {\ifx\currentitemreference \empty \else
+ \setnextinternalreference
+ \ctxlua { jobreferences.setandgetattribute("\s!full", "\referenceprefix","\currentitemreference",
+ {
+ metadata = {
+ kind = "list",
+ catcodes = \the\catcodetable,
+ xmlroot = \ifx\currentreferencecoding\s!xml "\xmldocument" \else nil \fi, % only useful when text
+ },
+ references = {
+ internal = \nextinternalreference,
+ section = structure.sections.currentid(),
+ },
+ numberdata = structure.helpers.simplify {
+ numbers = structure.counters.compact("\currentitemgroupcounter",nil,true),
+ separatorset = "\structurecounterparameter\currentitemgroupcounter\c!numberseparatorset",
+ conversion = "\structurecounterparameter\currentitemgroupcounter\c!numberconversion",
+ conversionset = "\structurecounterparameter\currentitemgroupcounter\c!numberconversionset",
+ % for the moment no stopper, we need to make references configurable first
+ % stopper = \!!bs\structurecounterparameter\currentitemgroupcounter\c!numberstopper\!!es,
+ segments = "\structurecounterparameter\currentitemgroupcounter\c!numbersegments",
+ },
+ })
+ }%
+ \xdef\currentitemattribute{\number\lastdestinationattribute}%
+ \begingroup\dosetattribute{destination}\currentitemattribute\kern\zeropoint\endgroup % todo
+ \fi}
+
+% \startitemize[n,packed]
+% \item test \item test \item test
+% \stopitemize
+%
+% \startitemize[n,packed,reverse]
+% \item test \item test \item test
+% \stopitemize
+%
+% \startitemize[n,packed,reverse] \item test \item test \stopitemize
+% \startitemize[continue]
+% \item test \startitemize[n,packed] \item test \item test \stopitemize
+% \item test
+% \item test
+% \stopitemize
+% \startitemize[continue] \item test \stopitemize
+%
+% \startitemize[n,packed] \item test \item test \stopitemize
+% \startitemize[continue] \item test \stopitemize
+% \startitemize[continue] \item test \stopitemize
+
+\def\itemparameter #1#2{\csname\doitemparameter{\??op\currentitemgroup#1}#2\endcsname}
+\def\itemparameterhash#1#2{\doitemparameterhash {\??op\currentitemgroup#1}#2}
+
+
+\def\doitemparameter #1#2{\ifcsname#1#2\endcsname#1#2\else\expandafter\doitemparentparameter \csname#1\s!parent\endcsname#2\fi}
+\def\doitemparameterhash#1#2{\ifcsname#1#2\endcsname #1\else\expandafter\doitemparentparameterhash\csname#1\s!parent\endcsname#2\fi}
+
+\def\doitemparentparameter #1#2{\ifx#1\relax\s!empty\else\doitemparameter #1#2\fi}
+\def\doitemparentparameterhash#1#2{\ifx#1\relax \else\doitemparameterhash#1#2\fi}
+
+\def\dosetitemattributes#1#2#3% style color
+ {\edef\fontattributehash {\itemparameterhash#1#2}%
+ \edef\colorattributehash{\itemparameterhash#1#3}%
+ \ifx\fontattributehash \empty\else\dosetfontattribute \fontattributehash #2\fi
+ \ifx\colorattributehash\empty\else\dosetcolorattribute\colorattributehash#3\fi}
+
+\def\setitemparameter #1#2{\@EA \def\csname\??op\currentitemgroup#1#2\endcsname} % #3 -> {#3}
+\def\esetitemparameter#1#2{\@EA\edef\csname\??op\currentitemgroup#1#2\endcsname} % #3 -> {#3}
+\def\xsetitemparameter#1#2{\@EA\xdef\csname\??op\currentitemgroup#1#2\endcsname} % #3 -> {#3}
+\def\letitemparameter #1#2{\@EA \let\csname\??op\currentitemgroup#1#2\endcsname}
+\let\getitemparameter \itemparameter
+
+\def\@@globalitemsymbol #1{\??op\currentitemgroup\c!symbol\s!global#1}
+\def\@@localitemsymbol #1{\??op\currentitemgroup\c!symbol\s!local #1}
+\def\@@currentitemsymbol#1{\??op\currentitemgroup\c!symbol #1}
+
+\def\@@itemcounter{\s!itemcount\currentitemgroup}
+
+\def\doitembreak#1{\ifconditional\optimizelistitem\ifconditional\textlistitem\else\dosomebreak#1\fi\fi}
+
+\def\allowitembreak {\doitembreak\allowbreak}
+\def\noitembreak {\doitembreak\nobreak}
+\def\itembreakspecial {\doitembreak\itembreak}
+\def\noitembreakspecial{\doitembreak\itemnobreak}
+
+\def\itembreak {\flushnotes\penalty-5\relax} % -10
+\def\itemnobreak{\flushnotes\penalty+5\ifinsidecolumns\else00\fi\relax} % +5
+
+\def\initializeitemgrouplevel#1%
+ {\ifcsname\??op\currentitemgroup#1\s!parent\endcsname
+ % ok
+ \else\ifnum#1>\plusone
+ \setevalue{\??op\currentitemgroup#1\s!parent}{\??op\currentitemgroup\the\numexpr#1-1\relax}%
+ \else
+ \setevalue{\??op\currentitemgroup#1\s!parent}{\??op\currentitemgroup}%
+ \fi\fi}
+
+\def\defineitemgroup
+ {\dotripleempty\dodefineitemgroup}
+
+\def\dodefineitemgroup[#1][#2][#3]% todo: clone
+ {\doifsomething{#1}
+ {\pushmacro\currentitemgroup
+ \def\currentitemgroup{#1}%
+ \setvalue{\e!start#1}{\startitemgroup[#1]}%
+ \setvalue{\e!stop#1}{\stopitemgroup}%
+ \setvalue{\e!setup#1\e!endsetup}{\setupitemgroup[#1]}% for old times sake
+ \doifelsenothing{#2}
+ {\getparameters[\??op#1][\s!parent=\??oo,#3]}%
+ {\doifassignmentelse{#2}
+ {\getparameters[\??op#1][\s!parent=\??oo,#2]}%
+ {\getparameters[\??op#1][\s!parent=\??op#2,#3]}}%
+ \dorecurse\maxitemdepth{\initializeitemgrouplevel\recurselevel}%
+ \definestructurecounter[itemgroup:#1]%
+ \popmacro\currentitemgroup}}
+
+\newtoks\everysetupitemgroup
+
+\def\setupitemgroups % [#1]
+ {\dodoubleargument\getparameters[\??oo]} % [#1]
+
+\def\packitems
+ {\ifcase\currentitemlevel \else \settrue\packlistitem \fi}
+
+\def\dosetupitemgroupvariable[#1]% [#2]% niveau instellingen
+ {\doifelsenothing{#1}
+ {\getparameters[\??op\currentitemgroup\currentitemlevel]}%
+ {\getparameters[\??op\currentitemgroup#1]}}
+
+\def\dosetupitemgroupconstant#1%
+ {\global\setitemparameter\currentitemlevel\c!maxwidth{0}%
+ \processcommacommand[#1]\dodosetupitemgroupconstant} % expansion of #2 is handy for xml
+
+\def\dodosetupitemgroupconstant#1%
+ {\edef\itemgroupconstantvalue{#1}%
+ \ifx\itemgroupconstantvalue\empty\else
+ \splitstring\itemgroupconstantvalue\at*\to\itemgroupfirst\and\itemgroupsecond
+ \ifcsname\??op:::\itemgroupfirst\endcsname\csname\??op:::\itemgroupfirst\endcsname\fi
+ \fi}
+
+\newconditional\inlinelistitem \setfalse\inlinelistitem
+
+\setvalue{\??op:::\v!packed }{\packitems}
+\setvalue{\??op:::\v!intro }{\settrue\introlistitem} % here? not set to false
+\setvalue{\??op:::\v!autointro}{\settrue\autointrolistitem}
+\setvalue{\??op:::\v!broad }{\ifx\itemgroupsecond\empty\def\itemgroupsecond{1}\fi
+ \letitemparameter\currentitemlevel\c!factor\itemgroupsecond}
+\setvalue{\??op:::\v!text }{\settrue\textlistitem
+ \settrue\inlinelistitem
+ \settrue\joinedlistitem
+ \packitems}
+\setvalue{\??op:::\v!columns }{\packitems}
+\setvalue{\??op:::\v!before }{\settrue\beforelistitem}
+\setvalue{\??op:::\v!after }{\settrue\afterlistitem}
+\setvalue{\??op:::\v!nowhite }{\settrue\nowhitelistitem}
+\setvalue{\??op:::\v!margin }{\setitemparameter\currentitemlevel\c!width{-2em}} % signal
+\setvalue{\??op:::\v!inmargin }{\setitemparameter\currentitemlevel\c!width{-2em}} % signal
+\setvalue{\??op:::\v!atmargin }{\doifnot\currentitemlevel{1}{\setitemparameter\currentitemlevel\c!width{0em}}} % signal
+\setvalue{\??op:::\v!intext }{\settrue\inlinelistitem}
+\setvalue{\??op:::\v!loose }{\setfalse\optimizelistitem}
+\setvalue{\??op:::\v!fit }{\settrue\fittinglistitems}
+\setvalue{\??op:::\v!nofit }{\setfalse\fittinglistitems}
+\setvalue{\??op:v:\v!paragraph}{\settrue\paragraphlistitem
+ \packitems}
+\setvalue{\??op:::\v!joinedup }{\settrue\joinedlistitem
+ \packitems}
+\setvalue{\??op:::\v!serried }{\edef\itemgroupsecond{-\ifx\itemgroupsecond\empty1\else\itemgroupsecond\fi}%
+ \letitemparameter\currentitemlevel\c!factor\itemgroupsecond}
+\setvalue{\??op:::\v!stopper }{\letitemparameter\currentitemlevel\c!placestopper\v!yes} % keep {}
+\setvalue{\??op:::\v!unpacked }{\setfalse\packlistitem}
+\setvalue{\??op:::\v!repeat }{\settrue\repeatlistitem}
+\setvalue{\??op:::\v!reverse }{\settrue\reverselistitem}
+\setvalue{\??op:::\v!standard }{\dosetupstandarditemgroup\currentitemlevel}
+
+\def\dosetupstandarditemgroup#1%
+ {\getparameters
+ [\??op\currentitemgroup#1]
+ [\c!width=1.5em,\c!factor=0,\c!distance=.5em,\c!inner=,
+ \c!beforehead=,\c!afterhead=\blank,\c!before=\blank,\c!inbetween=\blank,\c!after=\blank]}
+
+% \def\packeditemspacing{\empty}
+
+% \setupwhitespace[big]
+% \starttext
+% test \startitemize[joinedup] \item test \item test \stopitemize test \par
+% test \startitemize[joinedup,nowhite] \item test \item test \stopitemize test \par
+% test \startitemize[joinedup,nowhite,before] \item test \item test \stopitemize test \par
+% test \startitemize[joinedup,nowhite,after] \item test \item test \stopitemize test \par
+% \stoptext
+
+\def\itembeforecommand
+ {\ifconditional\nowhitelistitem
+ \ifconditional\beforelistitem
+ \ifcase\currentitemlevel\or\getitemparameter\currentitemlevel\c!before\fi
+ \else
+ \nowhitespace
+ \fi
+ \else\ifconditional\joinedlistitem
+ % \empty
+ \else
+ \getitemparameter\currentitemlevel\c!before
+ \fi\fi}
+
+\def\itemaftercommand
+ {\ifconditional\nowhitelistitem
+ \ifconditional\afterlistitem
+ \ifcase\currentitemlevel\or\getitemparameter\currentitemlevel\c!after\fi
+ \else
+ \nowhitespace
+ \fi
+ \else\ifconditional\joinedlistitem
+ % \empty
+ \else
+ \getitemparameter\currentitemlevel\c!after
+ \fi\fi}
+
+\def\iteminbetweencommand
+ {\ifconditional\nowhitelistitem
+ \nowhitespace
+ \else\ifconditional\joinedlistitem
+ % \empty
+ \else
+ \getitemparameter\currentitemlevel\c!inbetween
+ \fi\fi}
+
+\def\itembeforeheadcommand
+ {\ifconditional\nowhitelistitem
+ \nowhitespace
+ \else\ifconditional\joinedlistitem
+ % \empty
+ \else
+ \getitemparameter\currentitemlevel\c!beforehead
+ \fi\fi}
+
+\def\itemafterheadcommand
+ {\ifconditional\nowhitelistitem
+ \nowhitespace
+ \else\ifconditional\joinedlistitem
+ % \empty
+ \else
+ \getitemparameter\currentitemlevel\c!afterhead
+ \fi\fi}
+
+\def\dododododosetupitemgroup[#1][#2]%
+ {\doifassignmentelse{#2}%
+ {\dosetupitemgroupvariable[#1][#2]}%
+ {\setitemparameter{#1}\c!option{#2}}}%
+
+\def\dodododosetupitemgroup[#1][#2]%
+ {\doifsomething{#2}
+ {\doifelse{#1}\v!each
+ {\dorecurse\maxitemdepth{\normalexpanded{\noexpand\dododododosetupitemgroup[\recurselevel]}[#2]}}
+ {\normalexpanded{\noexpand\dododododosetupitemgroup[#1]}[#2]}}}
+
+% \def\dododosetupitemgroup[#1][#2]%
+% {\doifelsenothing{#2}
+% {\doifelsenothing{#1}
+% {\dodododosetupitemgroup[\currentitemlevel][#2]}
+% {\dodododosetupitemgroup[#1][#2]}}
+% {\ifcase\currentitemlevel\relax
+% \dodododosetupitemgroup[\v!each][#1]%
+% \else
+% \dodododosetupitemgroup[\currentitemlevel][#1]%
+% \fi}}
+
+\def\dododosetupitemgroup[#1][#2]%
+ {\doifelsenothing{#2}
+ {\doifsomething{#1}
+ {\ifcase\currentitemlevel\relax
+ \dodododosetupitemgroup[\v!each][#1]%
+ \else
+ \dodododosetupitemgroup[\currentitemlevel][#1]%
+ \fi}}%
+ {\doifelsenothing{#1}
+ {\ifcase\currentitemlevel\relax
+ \dodododosetupitemgroup[\v!each][#2]%
+ \else
+ \dodododosetupitemgroup[\currentitemlevel][#2]%
+ \fi}
+ {\dodododosetupitemgroup[#1][#2]}}}
+
+\def\dodosetupitemgroup[#1][#2][#3][#4]%
+ {\pushmacro\currentitemgroup
+ \def\currentitemgroup{#1}%
+ \dododosetupitemgroup[#2][#3]%
+ \doifsomething{#4}{\dododosetupitemgroup[#2][#4]}%
+ \the\everysetupitemgroup
+ \popmacro\currentitemgroup}
+
+\def\dosetupitemgroup[#1][#2][#3][#4]%
+ {\def\docommand##1{\dodosetupitemgroup[##1][#2][#3][#4]}%
+ \processcommalist[#1]\docommand}
+
+\def\setupitemgroup
+ {\doquadrupleempty\dosetupitemgroup}
+
+\def\doadvanceitem
+ {\ifconditional\sublistitem\else\ifconditional\symbollistitem\else
+ \doincrementsubstructurecounter[\currentitemgroupcounter][\currentitemlevel]%
+ \fi\fi}
+
+\def\setitemlevel#1%
+ {\ifnum\currentitemlevel>\zerocount
+ \settrue\firstlistitem
+ \ifconditional\continuelistitems\else
+ \dorestartsubstructurecounter[\currentitemgroupcounter][\currentitemlevel]{\the\numexpr\getitemparameter\currentitemlevel\c!start-1\relax}%
+ \fi
+ \fi}
+
+\unexpanded\def\actualitemnumber
+ {\ifconditional\repeatlistitem
+ \ifcase\currentitemlevel\or\else
+ \doactualitemnumber
+ \fi
+ \else
+ \doactualitemnumber
+ \fi}
+
+\def\doactualitemnumber
+ {\begingroup
+ \setupstructurecounter
+ [\currentitemgroupcounter]
+ [\c!prefix=\v!no,
+ \c!criterium=\getitemparameter\currentitemlevel\c!criterium,
+ \c!numberorder=\ifconditional\reverselistitem\v!reverse\else\v!normal\fi,
+ \c!numberstopper=\expdoif{\getitemparameter\currentitemlevel\c!placestopper}\v!yes{\getitemparameter\currentitemlevel\c!stopper},
+ %\c!numberseparatorset=,
+ %\c!numberconversionset=,
+ \c!numberconversion=\currentitemsymbol,
+ \c!numbersegments=\ifx\currentrepeatstart\empty\else\currentrepeatstart:\fi\number\currentitemlevel]%
+ \ifconditional\reverselistitem
+ \convertedstructurecounter[\currentitemgroupcounter]% [\number\currentitemlevel]%
+ \else
+ \convertedstructurecounter[\currentitemgroupcounter]% [\number\currentitemlevel]%
+ \fi
+ \dohandleitemreference
+ \endgroup}
+
+\def\unknownitemsymbol{?}
+
+\def\setitemmark#1% % en pas op: resets \docommand ; todo: conversionset
+ {\doifsymboldefinedelse{#1}
+ {\edef\currentitemsymbol{#1}%
+ \setxvalue{\@@globalitemsymbol\currentitemlevel}{\currentitemsymbol}%
+ \setgvalue{\@@localitemsymbol \currentitemlevel}{\unknownitemsymbol}%
+ \def\listitem{\symbol[\currentitemsymbol]}%
+ \let\@@opsymbol\empty}%
+ {\doifconversiondefinedelse{#1}
+ {\edef\currentitemsymbol{#1}%
+ \setxvalue{\@@globalitemsymbol\currentitemlevel}{\currentitemsymbol}%
+ \setgvalue{\@@localitemsymbol\currentitemlevel }{\actualitemnumber }%
+ \def\listitem
+ {\ifconditional\textlistitem
+ % maybe block stopper here, but one can as well clone an
+ % itemgroup then
+ \getitemparameter\currentitemlevel\c!lefttext
+ \getvalue{\@@localitemsymbol\currentitemlevel}%
+ \getitemparameter\currentitemlevel\c!righttext
+ \else
+ \getitemparameter\currentitemlevel\c!left
+ \getvalue{\@@localitemsymbol\currentitemlevel}%
+ \getitemparameter\currentitemlevel\c!right
+ \fi}%
+ \let\@@opsymbol\empty}%
+ {}}}
+
+\def\calculatelistwidth#1% distance deals with 'broad'
+ {\itemgrouplistwidth\getitemparameter#1\c!distance\relax
+ \ifnum\getitemparameter#1\c!factor>\zerocount
+ \ifdim\itemgrouplistwidth=\zeropoint \itemgrouplistwidth=.5em\fi
+ \fi
+ \multiply\itemgrouplistwidth \getitemparameter#1\c!factor
+ \advance \itemgrouplistwidth \getitemparameter#1\c!width\relax}
+
+% The next conditionals deal with \item \startitemgroup. It
+% looks like a hack to skip back, but that way we preserve
+% the indentation and bullet placement. It's a rather
+% untested feature.
+
+\newconditional\concatnextitem \setfalse\concatnextitem
+\newconditional\autoconcatnextitem \settrue \autoconcatnextitem
+\newsignal \itemsignal
+
+\def\startitemgroup
+ {\dotripleempty\dostartitemgroup}
+
+\def\dostartitemgroup[#1][#2][#3]%
+ {\bgroup
+ \ifnum\currentitemlevel=\zerocount
+ \def\currentitemgroup{#1}% no nested mixing of itemgroups
+ \fi
+ \ifthirdargument
+ \dodostartitemgroup[#2][#3]%
+ \else
+ \doifassignmentelse{#2}
+ {\dodostartitemgroup[][#2]}
+ {\dodostartitemgroup[#2][]}%
+ \fi}
+
+\def\dodostartitemgroup[#1]% [#2]%
+ {\relax % prevents lookahead
+ \ifnum\currentitemlevel=\maxitemdepth\relax
+ \showmessage\m!layouts9{\number\maxitemdepth}%
+ \let\itemincrement\zerocount
+ \else
+ \let\itemincrement\plusone
+ \fi
+ \global\advance\itemdepth\itemincrement
+ \xdef\currentitemlevel{\number\itemdepth}%
+ \edef\itemgroupoptions{\getitemparameter\currentitemlevel\c!option}%
+ \ifx\itemgroupoptions\empty
+ \edef\itemgroupoptions{#1}%
+ \else
+ \doifsomething{#1}{\edef\itemgroupoptions{\itemgroupoptions,#1}}%
+ \fi
+ \normalexpanded{\noexpand\redostartitemgroup[\itemgroupoptions]}}% [#2]
+
+\let\startcollectitems\relax
+\let\stopcollectitems \relax
+
+%D A nice example of a plugin:
+%D
+%D \startbuffer
+%D \startitemize[a,random,packed]
+%D \startitem first \stopitem \startitem second \stopitem
+%D \startitem third \stopitem \startitem fourth \stopitem
+%D \stopitemize
+%D
+%D \startitemize[a,random,packed]
+%D \startitem first \stopitem \startitem second \stopitem
+%D \startitem third \stopitem \startitem fourth \stopitem
+%D \stopitemize
+%D
+%D \startitemize[a,packed]
+%D \startitem first \stopitem \startitem second \stopitem
+%D \startitem third \stopitem \startitem fourth \stopitem
+%D \stopitemize
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+
+% better collectitems als conditional and a real plugin mechanism (some day)
+
+\@EA\long\@EA\def\@EA\collectitemgroupitem\@EA#\@EA1\csname\e!stop\v!item\endcsname
+ {\increment\itemcollectcounter
+ \long\setvalue{\v!item*\itemcollectcounter}{\item#1\par}}
+
+\def\flushcollecteditems
+ {\ifconditional\randomizeitems
+ \getrandomnumber\itemcollectcounternow\plusone\itemcollectcounter
+ \else
+ \increment\itemcollectcounternow
+ \fi
+ \doifdefined{\v!item*\itemcollectcounternow}
+ {\getvalue{\v!item*\itemcollectcounternow}%
+ \letbeundefined{\v!item*\itemcollectcounternow}%
+ \increment\itemcollectcounterdone}%
+ \ifnum\itemcollectcounterdone<\itemcollectcounter\relax
+ \expandafter\flushcollecteditems
+ \fi}
+
+\def\stopcollectitems
+ {\ifconditional\randomizeitems
+ \newcounter\itemcollectcounterdone
+ \ifnum\itemcollectcounter>\zerocount
+ \@EAEAEA\flushcollecteditems
+ \fi
+ \fi}
+
+\def\startcollectitems
+ {\ifconditional\randomizeitems
+ \newcounter\itemcollectcounter
+ \letvalue{\e!start\v!item}\collectitemgroupitem
+ \fi}
+
+%D End of plugin.
+
+\ifx\startcolumns\undefined \def\startcolumns[#1]{} \fi
+\ifx\stopcolumns \undefined \let\stopcolumns\relax \fi
+
+\def\dosetsymalign#1% hm, we should use one of the core-spa macros or make a helper
+ {\processaction
+ [#1]
+ [ \v!flushleft=>\let\symalignleft\relax,
+ \v!right=>\let\symalignleft\relax,
+ \v!flushright=>\let\symalignleft\hfill,
+ \v!left=>\let\symalignleft\hfill,
+ \v!middle=>\let\symalignleft\hfil,
+ \v!center=>\let\symalignleft\hfil]}
+
+\def\redostartitemgroup[#1][#2]%
+ {\setfalse\inlinelistitem % new, no indent (leftskip)
+ \setfalse\concatnextitem % new, concat
+ \setfalse\txtlistitem
+ \ifhmode
+ \ifconditional\autoconcatnextitem % new, concat
+ \ifdim\lastskip=\itemsignal % new, concat
+ \settrue\concatnextitem % new, concat
+ \fi % new, concat
+ \fi % new, concat
+ \ifconditional\textlistitem\else\doifnotinset\v!text{#1}\par\fi % suboptimal
+ \fi
+ \begingroup
+ % new where, ok or not / we should integrate random, intro, continue here
+ % beware, the following no longer inherit from the previous level, is this ok?
+ \setfalse\reverselistitem
+ \setfalse\introlistitem
+ \setfalse\autointrolistitem
+ \setfalse\beforelistitem
+ \setfalse\afterlistitem
+ \setfalse\nowhitelistitem
+ \setfalse\randomizeitems
+ %
+ \doifinsetelse\v!intro {#1}{\settrue\introlistitem }{\setfalse\introlistitem }%
+ \doifinsetelse\v!random {#1}{\settrue\randomizeitems }{\setfalse\randomizeitems }%
+ \doifinsetelse\v!continue{#1}{\settrue\continuelistitems}{\setfalse\continuelistitems}%
+ % == \doifinsetelse\v!intro{#1}\settrue\setfalse\introlistitem
+ \global\advance\noflists\plusone
+ \currentnoflists\noflists
+ \noflistelements\zerocount
+ \setfalse\headlistitem
+ \setfalse\sublistitem
+ \setfalse\symbollistitem
+ \let\marsymbol\relax
+ \globallet\doitemdestination\empty
+ \let\symsymbol\empty
+ \let\symalignleft\relax
+ \the\itemgroupcommands
+ \checkcurrentnofitems
+ % \getitemparameter\currentitemlevel\empty
+ \let\listitem\empty % ** start value
+ \doifelsenothing{#1} % iffirstargument
+ {\edef\@@opsymbol{\noexpand\getitemparameter\currentitemlevel\noexpand\c!symbol}%
+ \letgvalueempty{\@@globalitemsymbol\currentitemlevel}%
+ \global\letitemparameter\currentitemlevel\v!continue\empty
+ \dosetupitemgroupvariable[\currentitemlevel][#2]}
+ {\dosetupitemgroupconstant{#1}%
+ \dosetupitemgroupvariable[\currentitemlevel][#2]%
+ \ifconditional\continuelistitems
+ \edef\@@opsymbol{\executeifdefined{\@@globalitemsymbol\currentitemlevel}{\currentitemlevel}}%
+ \getitemparameter\currentitemlevel\v!continue
+ \else
+ \edef\@@opsymbol{\noexpand\getitemparameter\currentitemlevel\noexpand\c!symbol}%
+ \global\setitemparameter\currentitemlevel\v!continue
+ {\dosetupitemgroupconstant{#1}%
+ \dosetupitemgroupvariable[\currentitemlevel][#2]}%
+ \fi
+ \def\docommand##1% \setitemmark resets \docommand
+ {\doifnot{##1}{0}{\setitemmark{##1}}}%
+ % \processcommalist[#1,\@@opsymbol]\docommand
+ \processcommalist[#1]\docommand}% ** preset sequence or provided sequence
+ % moved to here, after settings
+ \ifnum\currentitemlevel=\plusone % NIEUW
+ \doadaptleftskip {\getitemparameter\currentitemlevel\c!margin}%
+ \doadaptleftskip {\getitemparameter\currentitemlevel\c!leftmargin}%
+ \doadaptrightskip{\getitemparameter\currentitemlevel\c!rightmargin}%
+ \fi
+ \dosetraggedcommand{\getitemparameter\currentitemlevel\c!align}\raggedcommand
+ \dosetsymalign{\getitemparameter\currentitemlevel\c!symalign}%
+ \doifsomething{\getitemparameter\currentitemlevel\c!indenting}
+ {\normalexpanded{\noexpand\setupindenting[\getitemparameter\currentitemlevel\c!indenting]}}%
+ %
+ \setitemlevel{#1}% moved to here
+ \ifx\listitem\empty
+ \setitemmark\@@opsymbol % ** default value
+ \ifx\listitem\empty
+ \edef\currentitemsymbol{\currentitemlevel}% ** fall back
+ \fi
+ \fi
+ \ifconditional\autointrolistitem\ifnum\prevgraf<3
+ \settrue\introlistitem
+ \fi\fi
+ \ifconditional\paragraphlistitem
+ \ifnum\currentitemlevel>\plusone
+ \letitemparameter\currentitemlevel\c!inbetween\empty
+ \fi
+ \fi
+ \ifconditional\packlistitem
+ \letitemparameter\currentitemlevel\c!inbetween\empty
+ \fi
+ \doifinset\v!columns{#1}%
+ {\ifinsidecolumns\else\ifcase\itemcolumndepth
+ \global\itemcolumndepth\currentitemlevel\relax
+ \itembeforecommand
+ \processfirstactioninset
+ [#1]
+ [ \v!one=>\setitemparameter\currentitemlevel\c!n{1},
+ \v!two=>\setitemparameter\currentitemlevel\c!n{2},
+ \v!three=>\setitemparameter\currentitemlevel\c!n{3},
+ \v!four=>\setitemparameter\currentitemlevel\c!n{4},
+ \v!five=>\setitemparameter\currentitemlevel\c!n{5},
+ \s!unknown=>\@EA\!!counta\getitemparameter\currentitemlevel\c!n]%
+ \startcolumns
+ [\c!n=\getitemparameter\currentitemlevel\c!n,
+ \c!height=,
+ \c!rule=\v!off,
+ \c!balance=\v!yes,
+ \c!align=\v!no]%
+ \fi\fi}%
+ \ifconditional\fittinglistitems
+ \ifdim\currentitemmaxwidth>\zeropoint
+ \esetitemparameter\currentitemlevel\c!width{\currentitemmaxwidth}%
+ \fi
+ \fi
+ \calculatelistwidth\currentitemlevel
+ \ifdim\itemgrouplistwidth>\zeropoint\relax
+ \ifconditional\inlinelistitem\else
+ \advance\leftskip\itemgrouplistwidth\relax
+ \fi
+ \fi
+ \startcollectitems}
+
+% test / example
+%
+% \startnarrower[left] \startcolumns[n=3] \startitemize
+% \item \input ward \item \input ward \item \input ward
+% \stopitemize \stopcolumns\stopnarrower \blank
+%
+% \startnarrower[left] \startitemize[columns,three]
+% \item \input ward \item \input ward \item \input ward
+% \stopitemize \stopnarrower \blank
+%
+% \setupitemize[leftmargin=1.5em] \startitemize[columns,three]
+% \item \input ward \item \input ward \item \input ward
+% \stopitemize \blank
+
+\def\stopitemgroup
+ {\stopcollectitems
+ \ifconditional\textlistitem
+ \removeunwantedspaces\space\ignorespaces
+ \else
+ \par
+ \fi
+ \dolistreference
+ \ifconditional\firstlistitem \else \endgroup \fi % toegevoegd, eerste \som opent groep
+ \ifnum\itemcolumndepth=\currentitemlevel\relax
+ \stopcolumns
+ \global\itemcolumndepth\zerocount
+ \itemaftercommand
+ \dontrechecknextindentation
+ \else
+ \ifnum\currentitemlevel=\plusone
+ \allowitembreak
+ \itemaftercommand
+ \checknextindentation[\getitemparameter\currentitemlevel\c!indentnext]%
+ \else
+ % nieuw, not yet nobreak handling
+ \ifcase\autoitemgroupspacing
+ \itemaftercommand
+ \or
+ \itemaftercommand
+ \fi
+ \dontrechecknextindentation
+ \fi
+ \fi
+ % new test, needed in sidefloats (surfaced in volker's proceedings)
+ \ifconditional\textlistitem % else forgotten
+ \endgroup
+ \global\advance\itemdepth-\itemincrement
+ \xdef\currentitemlevel{\number\itemdepth}%
+ \egroup
+ \else
+ \endgroup
+ \global\advance\itemdepth-\itemincrement
+ \xdef\currentitemlevel{\number\itemdepth}%
+ \egroup
+ \par
+ \fi
+ \dorechecknextindentation}
+
+\newtoks\itemgroupcommands
+
+\def\itemgroupitem
+ {\doitemgroupitem}
+
+\def\itemgroupnoitem
+ {\doitemgroupnoitem}
+
+\def\itemgroupbutton[#1]%
+ {\gdef\doitemdestination{#1}%
+ \itemgroupitem}
+
+\def\itemgroupdummy
+ {\itemgroupsymbol{\strut}\strut}
+
+\def\itemgroupsubitem
+ {\settrue\sublistitem
+ \itemgroupitem}
+
+\def\itemgroupsymbol#1%
+ {\def\symsymbol{#1}%
+ \settrue\symbollistitem
+ \itemgroupitem}
+
+\def\itemgroupedge#1%
+ {\itemgroupsymbol
+ {\calculatelistwidth\currentitemlevel
+ \hbox to \itemgrouplistwidth
+ {#1\hskip\getitemparameter\currentitemlevel\c!distance}}}
+
+\def\itemgrouphead
+ {\settrue\headlistitem\doitemgrouphead}
+
+\def\itemgroupitems
+ {\dosingleempty\doitemgroupitems}
+
+\def\doitemgroupitems[#1]%
+ {\itemgroupedge
+ {\dorecurse{0\getitemparameter\currentitemlevel\c!items}{\listitem\hss}%
+ \unskip}}
+
+\def\itemgroupmargin#1%
+ {\def\marsymbol
+ {\llap
+ {\dosetitemattributes\currentitemlevel\c!marstyle\c!marcolor{#1}%
+ \hskip\leftskip\hskip\leftmargindistance}}%
+ \itemgroupitem}
+
+\appendtoks \let\item \itemgroupitem \to \itemgroupcommands
+\appendtoks \let\noitem \itemgroupnoitem \to \itemgroupcommands
+\appendtoks \letvalue\v!item \itemgroupitem \to \itemgroupcommands
+\appendtoks \let\itm \itemgroupitem \to \itemgroupcommands
+\appendtoks \let\but \itemgroupbutton \to \itemgroupcommands
+\appendtoks \let\nop \itemgroupdummy \to \itemgroupcommands
+\appendtoks \letvalue\v!sub \itemgroupsubitem \to \itemgroupcommands
+\appendtoks \letvalue\v!sym \itemgroupsymbol \to \itemgroupcommands
+\appendtoks \letvalue\v!ran \itemgroupedge \to \itemgroupcommands
+\appendtoks \letvalue\v!head \itemgrouphead \to \itemgroupcommands
+\appendtoks \letvalue\v!its \itemgroupitems \to \itemgroupcommands
+\appendtoks \letvalue\v!mar \itemgroupmargin \to \itemgroupcommands
+
+% todo : \startitem .. \stopitem
+
+\appendtoks
+ \letvalue{\e!start\v!item}\itemgroupitem
+ \letvalue{\e!stop \v!item}\endgraf
+\to \itemgroupcommands
+
+\appendtoks
+ \setvalue{\e!start\v!head}#1{\itemgrouphead#1\par}%
+ \letvalue{\e!stop \v!head}\endgraf
+\to \itemgroupcommands
+
+% \startitemize
+% \starthead {xx} test \stophead
+% \startitem test \stopitem
+% \startitem test \stopitem
+% \stopitemize
+
+% Sometimes the user demands get pretty weird:
+%
+% \startitemize
+% \item test
+% \item test
+% \headsym{xx} test \par test
+% \stopitemize
+
+% aligned items
+%
+% \startitemize[n,fit,broad][itemalign=flushright]
+% \dorecurse{100}{\item The first item.}
+% \stopitemize
+%
+% \setupitemgroup[itemize][each][fit]
+% \setupitemgroup[itemize][each][distance=.5em,factor=1,itemalign=flushright]
+%
+% \startitemize[n]
+% \dorecurse{100}{\item The first item.}
+% \stopitemize
+
+\appendtoks \let\headsym \itemgroupheadsym \to \itemgroupcommands
+
+\def\itemgroupheadsym#1%
+ {\def\symsymbol{#1}%
+ \settrue\symbollistitem
+ \settrue\headlistitem
+ \doitemgrouphead}
+
+% \defineitemgroup[gbitemize]
+% \setupitemgroup[gbitemize][each][headstyle=bold]
+
+% \startgbitemize
+% \txt{italian} some italians like this kind of cross||breed between
+% an itemize and a description
+% \txt{sicilians} i wonder how many sicilian mathematicians do a thesis
+% on the math involved in predicting the next big bang of the vulcano
+% \stopgbitemize
+
+\appendtoks \letvalue\v!txt\itemgrouptext \to \itemgroupcommands
+
+\newconditional\txtlistitem \setfalse\txtlistitem
+
+\def\itemgrouptext#1%
+ {\def\symsymbol{#1}%
+ \settrue\symbollistitem
+ \settrue\txtlistitem
+ \itemgroupitem}
+
+\def\dodotxtitem
+ {\scratchdimen\wd\itemgroupitembox
+ \advance \scratchdimen \getitemparameter\currentitemlevel\c!distance\relax
+ \ifdim\scratchdimen>\itemgrouplistwidth
+ \advance\scratchdimen -\itemgrouplistwidth
+ \else
+ \scratchdimen\zeropoint
+ \fi
+ \llap{\hbox to \itemgrouplistwidth{\ifconditional\sublistitem\llap{+}\fi\box\itemgroupitembox\hss}}% was: \hfill
+ \hskip\scratchdimen}
+
+\def\optimizelistitemsbreak
+ {\ifcase\itemcolumndepth \ifconditional\optimizelistitem
+ \ifcase \currentnofitems \else
+ \ifnum\currentnofitems=\plusthree
+ \ifnum\noflistelements>\plusone
+ \noitembreakspecial
+ \fi
+ \else\ifnum\currentnofitems>\plusthree
+ \ifnum\noflistelements=\plustwo
+ \ifconditional\introlistitem
+ \noitembreak
+ \else
+ \noitembreakspecial
+ \fi
+ \else\ifnum\currentnofitems=\noflistelements\relax
+ \noitembreakspecial
+ \else\ifnum\noflistelements>\plustwo
+ \itembreakspecial
+ \else
+ \ifconditional\introlistitem\else\itembreakspecial\fi
+ \fi\fi\fi
+ \fi\fi
+ \fi
+ \fi\fi}
+
+\def\dolistitem % evt aantal items opslaan per niveau, scheelt zoeken
+ {\ifconditional\textlistitem
+ % begin of item
+ \else
+ \par
+ \fi
+ \advance\noflistelements\plusone
+ \optimizelistitemsbreak
+ \noindent
+ \setbox\itemgroupitembox\hbox
+ {\ifconditional\headlistitem
+ \ifconditional\symbollistitem
+ \dosetitemattributes\currentitemlevel\c!symstyle\c!symcolor{\symsymbol}%
+ \else
+ \dosetitemattributes\currentitemlevel\c!headstyle\c!headcolor{\listitem}%
+ \fi
+ \else
+ \ifconditional\symbollistitem
+ \dosetitemattributes\currentitemlevel\c!symstyle\c!symcolor{\symsymbol}%
+ \else
+ \dosetitemattributes\currentitemlevel\c!style\c!color{\listitem}%
+ \fi
+ \fi}%
+ \ifconditional\fittinglistitems
+ \ifdim\wd\itemgroupitembox>\getitemparameter\currentitemlevel\c!maxwidth sp\relax
+ \xsetitemparameter\currentitemlevel\c!maxwidth{\number\wd\itemgroupitembox}%
+ \fi
+ \ifdim\currentitemmaxwidth>\zeropoint
+ \setbox\itemgroupitembox\simplealignedbox{\getitemparameter\currentitemlevel\c!itemalign}{\currentitemmaxwidth}{\box\itemgroupitembox}%
+ \fi
+ \fi
+ \doifsomething\doitemdestination
+ {\setbox\itemgroupitembox\hbox{\directgotobox{\box\itemgroupitembox}[\doitemdestination]}}%
+ \globallet\doitemdestination\empty
+ \itemgroupaskedwidth\getitemparameter\currentitemlevel\c!width\relax
+ % new, prevents loops when symbol is (not yet found) graphic
+ \ht\itemgroupitembox\strutheight
+ \dp\itemgroupitembox\strutdepth
+ % so that content differs per run (esp mp graphics afterwards)
+ \checkforrepeatedlistitem
+ \ifdim\itemgroupaskedwidth<\zeropoint\relax
+ \llap{\ifconditional\sublistitem\llap{+}\fi\box\itemgroupitembox\hskip\leftmargindistance}%
+ \else
+ \ifdim\itemgroupaskedwidth=\zeropoint\relax
+ \calculatelistwidth1%
+ \else
+ \calculatelistwidth\currentitemlevel
+ \fi
+ \ifconditional\textlistitem
+ \hbox{\ifconditional\sublistitem+\fi\box\itemgroupitembox\hskip\interwordspace}\nobreak
+ \else\ifconditional\inlinelistitem
+ \hbox to \itemgrouplistwidth{\ifconditional\sublistitem\llap{+}\fi\box\itemgroupitembox\hss}% was: \hfill
+ \else\ifconditional\txtlistitem
+ \dodotxtitem
+ \else
+ % todo: align+marge binnen de hbox
+ \llap{\hbox to \itemgrouplistwidth{\ifconditional\sublistitem\llap{+}\fi
+ \symalignleft
+ \box\itemgroupitembox\hfil
+ \hskip\getitemparameter\currentitemlevel\c!distance% T h
+ }}%
+ \fi\fi\fi
+ \fi
+ \forceunexpanded % needed for m conversion (\os) / i need to look into this
+ \setevalue{\@@currentitemsymbol\currentitemlevel}%
+ {\getvalue{\@@localitemsymbol\currentitemlevel}}% still problems with \uchar ?
+ %{\noexpand\getvalue{\@@localitemsymbol\currentitemlevel}}% no, spoils subrefs
+ \resetunexpanded
+ \setfalse\headlistitem
+ \setfalse\sublistitem
+ \setfalse\symbollistitem
+ \EveryPar{\ignorespaces}% needed ?
+ \ignorespaces}
+
+% For Wolfgang Schuster
+
+% \startitemize[n,repeat]
+% \noitem \startitemize[a] \item Item 1.a. \item Item 1.b. \stopitemize
+% \noitem \startitemize[a] \item Item 2.a. \item Item 2.b. \stopitemize
+% \stopitemize
+
+\def\donolistitem % reduced \dolistitem
+ {\advance\noflistelements\plusone
+ \setbox\itemgroupitembox\hbox
+ {\dosetitemattributes\currentitemlevel\c!style\c!color{\listitem}}%
+ \checkforrepeatedlistitem
+ \ignorespaces}
+
+\def\doitemgroupnoitem
+ {\doadvanceitem\donolistitem}
+
+% For Frank Grieshaber and Mojca Miklavec:
+
+\newconditional\repeatlistitem
+
+\def\checkforrepeatedlistitem
+ {\ifconditional\repeatlistitem
+ \ifx\currentrepeatstart\empty
+ \edef\currentrepeatstart{\the\numexpr\currentitemlevel-1}%
+ \fi
+ \setbox\itemgroupitembox\hbox to \wd\itemgroupitembox{\hskip-\itemgroupaskedwidth\box\itemgroupitembox}% what a hack !
+ \fi}
+
+% \startbuffer
+% \item
+% \startitemize[n]
+% \item item 1.1
+% \item item 1.2
+% \startitemize[n] \item item 1.2.1 \item item 1.2.2 \stopitemize
+% \item item 1.3
+% \stopitemize
+% \item
+% \startitemize[n] \item item 2.1 \item item 2.2 \stopitemize
+% \item item 3
+% \startitemize[n] \item item 3.1 \item item 3.2 \stopitemize
+% \item
+% \startitemize[n] \item item 4.1 \item item 4.2 \stopitemize
+% \stopbuffer
+%
+% \startitemize[n,repeat,6*broad,packed] \getbuffer \stopitemize \blank[3*big]
+% \startitemize[n,repeat,packed] \getbuffer \stopitemize \blank[3*big]
+% \setupitemize[each][atmargin][width=3em]
+% \startitemize[n,repeat,packed] \getbuffer \stopitemize
+
+\chardef\autoitemgroupspacing=2 % 0 = voor/na, 1=tussen als geen voor 2=(prev)tussen=old/normal
+
+\def\complexdoitemgroupitem[#1]%
+ {\def\currentitemreference{#1}%
+ \ifconditional\textlistitem
+ % begin of item
+ \else
+ \par
+ \fi
+ \ifconditional\concatnextitem % new, concat
+ \noitembreak % new, concat
+ \fi % new, concat
+ \doadvanceitem
+ \ifconditional\firstlistitem
+ \setfalse\firstlistitem
+ \begingroup
+ \ifcase\currentitemlevel
+ \or % 1
+ \ifcase\itemcolumndepth
+ \ifconditional\introlistitem\noitembreak\fi
+ \itembeforecommand
+ \ifconditional\introlistitem\noitembreak\fi
+ \fi
+ \else % 2 en hoger
+ \ifconditional\paragraphlistitem \else
+ \edef\previtemlevel{\the\numexpr\currentitemlevel-1}%
+ \ifcase\autoitemgroupspacing\relax % nieuw
+ \itembeforecommand
+ \or
+ \doifelsenothing\itembeforecommand\itembeforecommand{\getitemparameter\previtemlevel\c!inbetween}%
+ \else
+ \getitemparameter\previtemlevel\c!inbetween
+ \fi
+ \fi
+ \fi
+ \else
+ \ifconditional\textlistitem % was bugged: \inlinelistitem
+ \removeunwantedspaces\hskip\emwidth\!!plus\interwordstretch\!!minus\interwordshrink\relax % new per 2006/10/20
+ \else
+ \iteminbetweencommand
+ \fi
+ \fi
+ \ifconditional\concatnextitem
+ \vskip-\dimexpr\lastskip+\lineheight\relax
+ \nobreak
+ \fi
+ \dolistitem
+ \relax
+ \ifconditional\packlistitem
+ \setupwhitespace[\v!none]%
+ \fi
+ \getitemparameter\currentitemlevel\c!inner
+ \marsymbol
+ \let\marsymbol\relax
+ \strut % added 11-08-99
+% \dohandleitemreference
+ \setfalse\concatnextitem % new, concat
+ \nobreak % else problems with intext items
+ \hskip\itemsignal % new, concat
+ \getitemparameter\currentitemlevel\c!command} % \defaultitemcommand
+
+\def\defaultitemcommand
+ {\EveryPar{\ignorespaces}% needed ?
+ \ignorespaces}
+
+% For Giuseppe "Oblomov" Bilotta, inspired on a suggestion by Taco
+% Hoekwater.
+%
+% \def\MyItemCommand#1{{\bf#1}\quad}
+% \setupitemgroup[itemize][command=\MyItemCommand]
+%
+% \startitemize
+% \item {test} is this okay?
+% \item {test} is this okay?
+% \item {test} is this okay?
+% \stopitemize
+
+\def\complexitem[#1]#2\par % todo: no two pass data
+ {\startitemgroup[#1]%
+ \complexdoitemgroupitem[]\begstrut#2\endstrut\par
+ \stopitemgroup}
+
+\definecomplexorsimpleempty\item
+\definecomplexorsimpleempty\doitemgroupitem
+
+\def\complexhead[#1]#2\par#3\par
+ {\startitemgroup[#1]%
+ \complexdoitemgrouphead[]\begstrut#2\endstrut\par\begstrut#3\endstrut\par
+ \stopitemgroup}
+
+% the next solution accepts \head test \type{x{x}x} test ...
+
+\def\complexdoitemgrouphead[#1]% beter in \complexdosom hangen met een if
+ {\ifconditional\firstlistitem\else\allowitembreak\fi
+ \ifconditional\packlistitem\else\itembeforeheadcommand\fi
+ \ifconditional\firstlistitem\ifconditional\introlistitem\else\ifcase\currentitemlevel % incr in \complexdosom
+ \allowitembreak
+ \fi\fi\fi
+ \complexdoitemgroupitem[#1]%
+ \bgroup
+ \dosetitemattributes\currentitemlevel\c!headstyle\c!headcolor\empty
+ \ignorespaces
+ \let\par\enditemhead} % brrrr but simple anyway
+
+\def\enditemhead
+ {\removeunwantedspaces
+ \egroup
+ \ifconditional\textlistitem
+ \space\ignorespaces
+ \else
+ \par
+ \fi
+ \noitembreak
+ \ifconditional\packlistitem\else\itemafterheadcommand\fi
+ \noitembreak
+ \noindentation}
+
+\definecomplexorsimpleempty\head
+\definecomplexorsimpleempty\doitemgrouphead
+
+\def\sym#1%
+ {\noindent
+ \begingroup
+ \setbox\scratchbox\hbox{\trialtypesettingtrue#1}%
+ \setbox\scratchbox\hbox
+ \ifdim\wd\scratchbox<1em to 1.5\else spread 1\fi em{#1\hfil}%
+ \normalexpanded{\box\scratchbox\endgroup\hangindent\the\wd\scratchbox}%
+ \ignorespaces}
+
+\setupitemgroups
+ [\c!margin=\zeropoint,
+ \c!leftmargin=\zeropoint,
+ \c!rightmargin=\zeropoint,
+ \c!indentnext=\v!yes,
+ \c!width=1.5em,
+ \c!factor=0,
+ \c!distance=.5em,
+ %\c!align=\v!normal, % definitely not \v!normal, see mails and
+ %\c!align=, % debug reports of David A & Patrick G on context list
+ %\c!symalign=,
+ %\c!color=,
+ %\c!indenting=, % untouched if empty
+ %\c!style=,
+ \c!marstyle=\c!type, % \c! ???
+ %\c!symstyle=,
+ %\c!headstyle=,
+ %\c!marcolor=,
+ %\c!symcolor=,
+ %\c!headcolor=,
+ %\c!beforehead=,
+ \c!afterhead=\blank,
+ \c!before=\blank,
+ \c!inbetween=\blank,
+ \c!after=\blank,
+ %\c!stopper=.,
+ \c!placestopper=\v!yes,
+ \c!stopper=.,
+ %\c!inner=,
+ \c!n=2,
+ \c!items=4,
+ \c!lefttext=(,
+ \c!righttext=),
+ \c!start=1,
+ \c!criterium=\v!all, % permits 0 and negative numbers
+ %\c!option=,
+ \c!command=\defaultitemcommand,
+ \c!symbol=\currentitemlevel]
+
+\setupitemgroups
+ [\c!numberseparatorset=,
+ \c!numberconversionset=,
+ \c!numberstopper=.,
+ \c!numbersegments=1]
+
+\defineitemgroup [\v!itemize]
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-lnt.tex b/Master/texmf-dist/tex/context/base/strc-lnt.mkii
index 0d960decd72..ef09842cd7a 100644
--- a/Master/texmf-dist/tex/context/base/core-lnt.tex
+++ b/Master/texmf-dist/tex/context/base/strc-lnt.mkii
@@ -1,7 +1,7 @@
%D \module
-%D [ file=core-lnt,
+%D [ file=strc-lnt,
%D version=2002.05.10,
-%D title=\CONTEXT\ Core Macros,
+%D title=\CONTEXT\ Structure Macros,
%D subtitle=Line Notes,
%D author=Hans Hagen,
%D date=\currentdate,
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Core Macros / Line Notes}
+\writestatus{loading}{ConTeXt Structure Macros / Line Notes}
%D This module loads on top of the footnote and line numbering macros.
diff --git a/Master/texmf-dist/tex/context/base/strc-lnt.mkiv b/Master/texmf-dist/tex/context/base/strc-lnt.mkiv
new file mode 100644
index 00000000000..d0816cfc747
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/strc-lnt.mkiv
@@ -0,0 +1,193 @@
+%D \module
+%D [ file=strc-lnt,
+%D version=2002.05.10,
+%D title=\CONTEXT\ Structure Macros,
+%D subtitle=Line Notes,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Structure Macros / Line Notes}
+
+%D This module loads on top of the footnote and line numbering macros.
+
+\unprotect
+
+\newcounter\linenotecounter
+\newtoks \collectedlinenotes
+\newif \iftracelinenotes
+
+\appendtoks
+ \the\collectedlinenotes
+\to \everylinenumber
+
+\appendtoks
+ \global\collectedlinenotes\emptytoks
+\to \beforeeverylinenumbering
+
+\def\dohandlelinenote#1#2#3%
+ {\bgroup
+ \expanded{\beforesplitstring#2}\at--\to\linenotelinenumber
+ \ifnum\linenotelinenumber=\linenumber\relax
+ \def\linenotelinenumber##1{#2}%
+ \setupnote[#1][\c!numbercommand=\linenotelinenumber,\c!textcommand=\gobbleoneargument]%
+ \setnote[#1]{#3}%
+ \fi
+ \egroup}
+
+\def\dotracedlinenote#1%
+ {\iftracelinenotes
+ \hbox to \zeropoint
+ {\forgetall
+ \hsize\zeropoint
+ \hss
+ \vbox to \strutheight{\llap{\red\infofont\setstrut\linenotecounter}\vss}%
+ {\color[blue]{\vl}}%
+ \vbox to \strutheight{\rlap{\red\infofont\setstrut#1}\vss}%
+ \hss}%
+ \prewordbreak
+ \fi}
+
+\def\dolinenote#1#2%
+ {\doglobal\increment\linenotecounter
+ \doifreferencefoundelse{\??rr:\linenotecounter}%
+ {\expanded{\doglobal\noexpand\appendtoks\noexpand\dohandlelinenote
+ {#1}{\currenttextreference}}{#2}\to\collectedlinenotes}
+ \donothing
+ \dotracedlinenote\empty
+ \expanded{\someline[\??rr:\linenotecounter]}}
+
+\def\dostartlinenote#1[#2]#3%
+ {\doifreferencefoundelse{\??rr:#2}%
+ {\expanded{\doglobal\noexpand\appendtoks\noexpand\dohandlelinenote
+ {#1}{\currenttextreference}}{#3}\to\collectedlinenotes}%
+ {\unknownreference{#2}}%
+ \dotracedlinenote{#2}%
+ \startline[\??rr:#2]}
+
+\def\dostoplinenote#1[#2]%
+ {\stopline[\??rr:#2]}
+
+% defining them
+
+\def\definelinenote
+ {\dodoubleempty\dodefinelinenote}
+
+\def\dodefinelinenote[#1][#2]%
+ {\definenote[#1][#2]%
+ \setvalue {#1}{\dolinenote {#1}}%
+ \setvalue{\e!start#1}{\dostartlinenote{#1}}%
+ \setvalue{\e!stop #1}{\dostoplinenote {#1}}}
+
+\def\setuplinenote % convenient
+ {\setupnote}
+
+% We predefine one, namely \type {\linenote} cum suis.
+
+\definelinenote[\v!linenote]
+
+% \startbuffer[test]
+% \startlinenumbering[100]
+% test \linenote {oeps} test test test test test test
+% test \startlinenote [well] {oeps} test test test test test test
+% test \linenote {oeps} test test test test test test
+% test \linenote {oeps} test test test test test test
+% test \linenote {oeps} test test test test test test
+% test \linenote {oeps} test test test test test test
+% test \stoplinenote [well] test test test test test test
+% \stoplinenumbering
+% \stopbuffer
+%
+% \setupnotedefinition[linenote] [location=serried,distance=.5em]
+%
+% {\typebuffer[test] \getbuffer[test]} \page
+%
+% \startbuffer[setup]
+% \setuplinenumbering
+% [align=left]
+% \stopbuffer
+%
+% {\typebuffer[setup] \getbuffer[setup,test]} \page
+%
+% \startbuffer[setup]
+% \setuplinenumbering
+% [width=1em,
+% align=left]
+% \stopbuffer
+%
+% {\typebuffer[setup] \getbuffer[setup,test]} \page
+%
+% \startbuffer[setup]
+% \setuplinenumbering
+% [width=2em,
+% distance=.5em,
+% align=left]
+% \stopbuffer
+%
+% {\typebuffer[setup] \getbuffer[setup,test]} \page
+%
+% \startbuffer[setup]
+% \setuplinenumbering
+% [width=2em,
+% align=middle]
+% \stopbuffer
+%
+% {\typebuffer[setup] \getbuffer[setup,test]} \page
+%
+% \startbuffer[setup]
+% \setuplinenumbering
+% [conversion=romannumerals,
+% start=1,
+% step=1,
+% location=text,
+% style=slanted,
+% color=blue,
+% width=1.5em]
+% \stopbuffer
+%
+% {\typebuffer[setup] \startnarrower\getbuffer[setup,test]\stopnarrower} \page
+%
+% \startbuffer[setup]
+% \setuplinenumbering
+% [width=4em,
+% left=--,
+% right=--,
+% align=middle]
+% \stopbuffer
+%
+% {\typebuffer[setup] \getbuffer[setup,test]} \page
+%
+% \startbuffer[setup-1]
+% \setuplinenumbering
+% [style=\bfxx,
+% command=\WatchThis]
+% \stopbuffer
+%
+% \startbuffer[setup-2]
+% \def\WatchThis#1%
+% {\ifodd\linenumber
+% \definecolor[linecolor][red]%
+% \else
+% \definecolor[linecolor][green]%
+% \fi
+% \inframed
+% [offset=1pt,frame=off,background=color,backgroundcolor=linecolor]
+% {#1}}
+% \stopbuffer
+%
+% {\typebuffer[setup-1,setup-2] \getbuffer[setup-1,setup-2,test]} \page
+%
+% \startbuffer[setup-1]
+% \setuplinenumbering
+% [location=inright,
+% style=\bfxx,
+% command=\WatchThis]
+% \stopbuffer
+%
+% {\typebuffer[setup-1] \getbuffer[setup-1,setup-2,test]} \page
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/strc-lst.lua b/Master/texmf-dist/tex/context/base/strc-lst.lua
new file mode 100644
index 00000000000..dd45e7f689d
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/strc-lst.lua
@@ -0,0 +1,413 @@
+if not modules then modules = { } end modules ['strc-lst'] = {
+ version = 1.001,
+ comment = "companion to strc-lst.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- when all datastructures are stable a packer will be added which will
+-- bring down memory consumption a bit; we can use for instance a pagenumber,
+-- section, metadata cache (internal then has to move up one level) or a
+-- shared cache [we can use a fast and stupid serializer]
+
+local format, tonumber = string.format, tonumber
+local texsprint, texprint, texwrite, texcount = tex.sprint, tex.print, tex.write, tex.count
+local insert, remove = table.insert, table.remove
+
+local ctxcatcodes = tex.ctxcatcodes
+
+structure.lists = structure.lists or { }
+structure.sections = structure.sections or { }
+structure.helpers = structure.helpers or { }
+structure.documents = structure.documents or { }
+structure.pages = structure.pages or { }
+
+local lists = structure.lists
+local sections = structure.sections
+local helpers = structure.helpers
+local documents = structure.documents
+local pages = structure.pages
+
+lists.collected = lists.collected or { }
+lists.tobesaved = lists.tobesaved or { }
+lists.enhancers = lists.enhancers or { }
+lists.internals = lists.internals or { }
+lists.ordered = lists.ordered or { }
+
+local variables = interfaces.variables
+
+local function initializer()
+ -- create a cross reference between internal references
+ -- and list entries
+ local collected = lists.collected
+ local internals = jobreferences.internals
+ local ordered = lists.ordered
+ for i=1,#collected do
+ local c = collected[i]
+ local m = c.metadata
+ local r = c.references
+ if m then
+ -- access by internal reference
+ local internal = r and r.internal
+ if internal then
+ internals[internal] = c
+ end
+ -- access by order in list
+ local kind, name = m.kind, m.name
+ if kind and name then
+ local ok = ordered[kind]
+ if ok then
+ local on = ok[name]
+ if on then
+ on[#on+1] = c
+ else
+ ok[name] = { c }
+ end
+ else
+ ordered[kind] = { [name] = { c } }
+ end
+ end
+ end
+ end
+end
+
+if job then
+ job.register('structure.lists.collected', structure.lists.tobesaved, initializer)
+end
+
+local cached = { }
+local pushed = { }
+
+function lists.push(t)
+ local r = t.references
+ local i = (r and r.internal) or 0 -- brrr
+ local p = pushed[i]
+ if not p then
+ p = #cached + 1
+ cached[p] = helpers.simplify(t)
+ pushed[i] = p
+ end
+ texwrite(p)
+end
+
+function lists.doifstoredelse(n)
+ commands.doifelse(cached[tonumber(n)])
+end
+
+-- this is the main pagenumber enhancer
+
+function lists.enhance(n)
+ -- todo: symbolic names for counters
+ local l = cached[n]
+ if l then
+ --
+ l.directives = nil -- might change
+ -- save in the right order (happen sat shipout)
+ lists.tobesaved[#lists.tobesaved+1] = l
+ -- default enhancer (cross referencing)
+ l.references.realpage = texcount.realpageno
+ -- specific enhancer (kind of obsolete)
+ local kind = l.metadata.kind
+ local enhancer = kind and lists.enhancers[kind]
+ if enhancer then
+ enhancer(l)
+ end
+ end
+end
+
+-- we can use level instead but we can also decide to remove level from the metadata
+
+local nesting = { }
+
+function lists.pushnesting(i)
+ local r = lists.result[i]
+ local name = r.metadata.name
+ local numberdata = r and r.numberdata
+ local n = (numberdata and numberdata.numbers[sections.getlevel(name)]) or 0
+ insert(nesting, { number = n, name = name, result = lists.result })
+end
+
+function lists.popnesting()
+ local old = remove(nesting)
+ lists.result = old.result
+end
+
+local function filter_collected(names, criterium, number, collected)
+ local numbers, depth = documents.data.numbers, documents.data.depth
+ local hash, result, all = { }, { }, not names or names == "" or names == variables.all
+ if not all then
+ for s in names:gmatch("[^, ]+") do
+ hash[s] = true
+ end
+ end
+ if criterium == variables.all or criterium == variables.text then
+ for i=1,#collected do
+ local v = collected[i]
+ local r = v.references
+ if r then
+ local sectionnumber = (r.section == 0) or jobsections.collected[r.section]
+ if sectionnumber then -- and not sectionnumber.hidenumber then
+ local metadata = v.metadata
+ if metadata and not metadata.nolist and (all or hash[metadata.name or false]) then
+ result[#result+1] = v
+ end
+ end
+ end
+ end
+ elseif criterium == variables.current then
+ for i=1,#collected do
+ local v = collected[i]
+ local r = v.references
+ if r then
+ local sectionnumber = jobsections.collected[r.section]
+ if sectionnumber then -- and not sectionnumber.hidenumber then
+ local cnumbers = sectionnumber.numbers
+ local metadata = v.metadata
+ if cnumbers then
+ if metadata and not metadata.nolist and (all or hash[metadata.name or false]) and #cnumbers > depth then
+ local ok = true
+ for d=1,depth do
+ local cnd = cnumbers[d]
+ if not (cnd == 0 or cnd == numbers[d]) then
+ ok = false
+ break
+ end
+ end
+ if ok then
+ result[#result+1] = v
+ end
+ end
+ end
+ end
+ end
+ end
+ elseif criterium == variables.here then
+ for i=1,#collected do
+ local v = collected[i]
+ local r = v.references
+ if r then
+ local sectionnumber = jobsections.collected[r.section]
+ if sectionnumber then -- and not sectionnumber.hidenumber then
+ local cnumbers = sectionnumber.numbers
+ local metadata = v.metadata
+ if cnumbers then
+ if metadata and not metadata.nolist and (all or hash[metadata.name or false]) and #cnumbers >= depth then
+ local ok = true
+ for d=1,depth do
+ local cnd = cnumbers[d]
+ if not (cnd == 0 or cnd == numbers[d]) then
+ ok = false
+ break
+ end
+ end
+ if ok then
+ result[#result+1] = v
+ end
+ end
+ end
+ end
+ end
+ end
+ elseif criterium == variables.previous then
+ for i=1,#collected do
+ local v = collected[i]
+ local r = v.references
+ if r then
+ local sectionnumber = jobsections.collected[r.section]
+ if sectionnumber then -- and not sectionnumber.hidenumber then
+ local cnumbers = sectionnumber.numbers
+ local metadata = v.metadata
+ if cnumbers then
+ if metadata and not metadata.nolist and (all or hash[metadata.name or false]) and #cnumbers >= depth then
+ local ok = true
+ for d=1,depth-1 do
+ local cnd = cnumbers[d]
+ if not (cnd == 0 or cnd == numbers[d]) then
+ ok = false
+ break
+ end
+ end
+ if ok then
+ result[#result+1] = v
+ end
+ end
+ end
+ end
+ end
+ end
+ elseif criterium == variables["local"] then -- not yet ok
+ local nested = nesting[#nesting]
+ if nested then
+ return filter_collected(names,nested.name,nested.number,collected)
+ elseif sections.autodepth(documents.data.numbers) == 0 then
+ return filter_collected(names,variables.all,number,collected)
+ else
+ return filter_collected(names,variables.current,number,collected)
+ end
+ else -- sectionname, number
+ local depth = sections.getlevel(criterium)
+ local number = tonumber(number) or 0
+ for i=1,#collected do
+ local v = collected[i]
+ local r = v.references
+ if r then
+ local sectionnumber = jobsections.collected[r.section]
+ if sectionnumber then -- and not sectionnumber.hidenumber then
+ local cnumbers = sectionnumber.numbers
+ local metadata = v.metadata
+ if cnumbers then
+-- if metadata and not metadata.nolist and (all or hash[metadata.name or false]) and #cnumbers >= depth and cnumbers[depth] == number then
+ if metadata and not metadata.nolist and (all or hash[metadata.name or false]) and #cnumbers >= depth and (number == 0 or cnumbers[depth] == number) then
+ result[#result+1] = v
+ end
+ end
+ end
+ end
+ end
+ end
+ return result
+end
+
+lists.filter_collected = filter_collected
+
+function lists.filter(names, criterium, number)
+ return filter_collected(names, criterium, number, lists.collected)
+end
+
+lists.result = { }
+
+function lists.process(...)
+ lists.result = lists.filter(...)
+ for i=1,#lists.result do
+ local r = lists.result[i]
+ local m = r.metadata
+ texsprint(ctxcatcodes,format("\\processlistofstructure{%s}{%s}{%i}",m.name,m.kind,i))
+ end
+end
+
+function lists.analyze(...)
+ lists.result = lists.filter(...)
+end
+
+function lists.userdata(name,r,tag) -- to tex
+ local str = lists.result[r]
+ str = str and str.userdata
+ str = str and str[tag]
+ if str then
+ texsprint(ctxcatcodes,str)
+ end
+end
+
+function lists.uservalue(name,r,tag,default) -- to lua
+ local str = lists.result[r]
+ str = str and str.userdata
+ str = str and str[tag]
+ return str or default
+end
+
+function lists.size()
+ texprint(#lists.result)
+end
+
+function lists.location(name,n)
+ local l = lists.result[n]
+ texsprint(l.references.internal or n)
+end
+
+function lists.sectionnumber(name,n,spec)
+ local data = lists.result[n]
+ local sectiondata = jobsections.collected[data.references.section]
+ -- hm, prefixnumber?
+ sections.typesetnumber(sectiondata,"prefix",spec,sectiondata) -- data happens to contain the spec too
+end
+
+-- some basics (todo: helpers for pages)
+
+function lists.title(name,n,tag) -- tag becomes obsolete
+ local data = lists.result[n]
+ if data then
+ local titledata = data.titledata
+ if titledata then
+ helpers.title(titledata[tag] or titledata.list or titledata.title or "",data.metadata)
+--~ texsprint(ctxcatcodes,titledata[tag] or titledata.list or titledata.title or "")
+ end
+ end
+end
+
+function lists.savedtitle(name,n,tag)
+ local data = cached[tonumber(n)]
+ if data then
+ local titledata = data.titledata
+ if titledata then
+ helpers.title(titledata[tag] or titledata.title or "",data.metadata)
+--~ texsprint(ctxcatcodes,titledata[tag] or titledata.title or "")
+ end
+ end
+end
+
+function lists.savednumber(name,n)
+ local data = cached[tonumber(n)]
+ if data then
+ local numberdata = data.numberdata
+ if numberdata then
+ sections.typesetnumber(numberdata,"number",numberdata or false)
+ end
+ end
+end
+
+function lists.savedprefixednumber(name,n)
+ local data = cached[tonumber(n)]
+ if data then
+ helpers.prefix(data,data.prefixdata)
+ local numberdata = data.numberdata
+ if numberdata then
+ sections.typesetnumber(numberdata,"number",numberdata or false)
+ end
+ end
+end
+
+function lists.prefix(name,n,spec)
+ helpers.prefix(lists.result[n],spec)
+end
+
+function lists.page(name,n,pagespec)
+ helpers.page(lists.result[n],pagespec)
+end
+
+function lists.prefixedpage(name,n,prefixspec,pagespec)
+ helpers.prefixpage(lists.result[n],prefixspec,pagespec)
+end
+
+function lists.realpage(name,n)
+ local data = lists.result[n]
+ if data then
+ local references = data.references
+ texsprint(references and references.realpage or 0)
+ else
+ texsprint(0)
+ end
+end
+
+-- numbers stored in entry.numberdata + entry.numberprefix
+
+function lists.number(name,n,spec)
+ local data = lists.result[n]
+ if data then
+ local numberdata = data.numberdata
+ if numberdata then
+ sections.typesetnumber(numberdata,"number",spec or false,numberdata or false)
+ end
+ end
+end
+
+function lists.prefixednumber(name,n,prefixspec,numberspec)
+ local data = lists.result[n]
+ if data then
+ helpers.prefix(data,prefixspec)
+ local numberdata = data.numberdata
+ if numberdata then
+ sections.typesetnumber(numberdata,"number",spec or false,numberdata or false)
+ end
+ end
+end
diff --git a/Master/texmf-dist/tex/context/base/core-lst.tex b/Master/texmf-dist/tex/context/base/strc-lst.mkii
index d9fdca3753a..527966354ba 100644
--- a/Master/texmf-dist/tex/context/base/core-lst.tex
+++ b/Master/texmf-dist/tex/context/base/strc-lst.mkii
@@ -1,7 +1,7 @@
%D \module
-%D [ file=core-lst,
+%D [ file=strc-lst,
%D version=1997.03.31,
-%D title=\CONTEXT\ Core Macros,
+%D title=\CONTEXT\ Structure Macros,
%D subtitle=Lists,
%D author=Hans Hagen,
%D date=\currentdate,
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Core Macros / Lists}
+\writestatus{loading}{ConTeXt Structure Macros / Lists}
\unprotect
@@ -39,7 +39,7 @@
{\doifelsevalue{\??li#1\c!state}\v!start
\dodowritetolist\gobblefourarguments{#1}}
-\def\dodowritetolist#1#2#3#4%
+\long\def\dodowritetolist#1#2#3#4%
{\begingroup
\expanded{\everylistentry\emptytoks\the\everylistentry}% \emptytoks, else loop
\def\currentlist{#1}% evt naar dowritetolist
@@ -221,10 +221,15 @@
\setvalue{#1\c!inbetween}{\dobetweenlist{#1}}%
\setvalue{#1\c!list }{\dolistelement{#1}}}
+% \def\dodoresetlist#1%
+% {\let\nolist\empty
+% \setvalue{#1\c!inbetween}{\gobblefourarguments{#1}}%
+% \setvalue{#1\c!list }{\gobblesixarguments {#1}}}
+
\def\dodoresetlist#1%
{\let\nolist\empty
- \setvalue{#1\c!inbetween}{\gobblefourarguments{#1}}%
- \setvalue{#1\c!list }{\gobblesixarguments {#1}}}
+ \letvalue{#1\c!inbetween}\gobblethreearguments
+ \letvalue{#1\c!list }\gobblefivearguments}
\let\nolist\empty
@@ -236,6 +241,7 @@
\c!depth=\v!broad,
\c!offset=0.25em,
\c!maxwidth=,
+ \c!align=,
\c!state=\v!start,
\c!coupling=\v!off,
\c!criterium=\v!local,
@@ -253,7 +259,7 @@
\c!textcommand=\listtextcommand,
\c!pagecommand=\listpagecommand,
\c!pagenumber=\v!yes,
-\c!headnumber=\v!yes,
+ \c!headnumber=\v!yes,
\c!pageboundaries=,
\c!margin=\!!zeropoint,
\c!aligntitle=,
@@ -263,6 +269,7 @@
\c!symbol=,
\c!interaction=\v!sectionnumber,
\v!part\v!number=\v!yes, % nodig ? % v
+ %\c!prefix=\v!no, % we need to initialize it
\c!label=\v!no,
\c!distance=\!!zeropoint,
\c!separator=\@@koseparator,
@@ -319,7 +326,7 @@
\dosettoclevel\??li\firstlistelement
\honorlocalfilterlevel
\doutilities{listentries,#1}\jobname{#1}\relax\par
- \stoplistreferences{#1}%
+ \stoplistreferences
\dosetlistmode
\endgroup}
@@ -442,7 +449,7 @@
{\edef\splitlistsymbol{\@EA\removefirstprefix\@EA{\currentlistnumber}}}% one level expansion
{\doifelse{\listparameter\c!prefix}\v!none
{\edef\splitlistsymbol{\@EA\removeallprefixes\@EA{\currentlistnumber}}}%
- {\let\splitlistsymbol\currentlistnumber}}% geen \edef ivm enz
+ {\let\splitlistsymbol\currentlistnumber}}% geen \edef ivm 8 bit enz
\doif{\listparameter\c!label}\v!yes{\leftlabeltext\currentlist}%
\strut
\def\numberseparator{\listparameter\c!separator}% overloaded, todo
@@ -802,26 +809,6 @@
\midaligned
{}}
-% \def\dodofixdlistelementEFG#1#2#3#4#5#6#7#8% keep this one here as reference
-% {\noindent
-% \hbox
-% {#1% in case E nils the strut
-% \let\\=\newlineinlist
-% \setbox0\hbox
-% {#2{\showcontrastlocation\??ia{#8}%
-% {\dostartlistattributes\c!style\c!color\empty
-% \ignorespaces\dontconvertfont\setstrut
-% \begstrut
-% %\doifelsenothing{\listparameter\c!maxwidth}
-% % {\listparameter\c!textcommand{#6}}
-% % {\listparameter\c!textcommand{\limitatetext{#6}{\listparameter\c!maxwidth}{\unknown}}}%
-% \limitatedlistentry{#6}%
-% \endstrut % struts new
-% \dostoplistattributes}}}%
-% \linklisttoelement{#4}{#7}{#8}{\box0}}%{\copy0}}%
-% \par % should be an option
-% \listparameter\c!inbetween}
-
\def\dodofixdlistelementEFG#1#2#3#4#5#6#7#8%
{\noindent
\bgroup
@@ -1070,7 +1057,7 @@
\doifvalue{\??ih#1\c!coupling}\v!on
{\startlistreferences{#1}}%
\ExpandFirstAfter\dodoplacecombinedlist[\combinedlist][#2]%
- \stoplistreferences{#1}%
+ \stoplistreferences
\endgroup
\dosetlistmode}
diff --git a/Master/texmf-dist/tex/context/base/strc-lst.mkiv b/Master/texmf-dist/tex/context/base/strc-lst.mkiv
new file mode 100644
index 00000000000..440047a423a
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/strc-lst.mkiv
@@ -0,0 +1,938 @@
+%D \module
+%D [ file=strc-lst,
+%D version=2008.10.20,
+%D title=\CONTEXT\ Structure Macros,
+%D subtitle=Lists,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA-ADE / Hans Hagen]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Structure Macros / Lists}
+
+\registerctxluafile{strc-lst}{1.001}
+
+\unprotect
+
+\def\currentstructurelistnumber{0}
+
+% nmstate -> no pagenumber if not start
+% autocrossdocument -> todo
+% expansion -> todo
+% auto refs to lists (chain) -> todo (\dododowritetolist)
+% todo: \normalexpanded{\noexpand\everylistentry\emptytoks\the\everylistentry}% \emptytoks, else loop
+
+% interface to lua
+
+% we have to deal with compatible processing, i.e. list elements that have two
+% elements plus a pagenumber
+
+\let\listentry\gobblesixarguments
+
+\def\currentlist {\s!unknown}
+\def\currentlistmethod{entry}
+\def\currentlistindex {0}
+
+\def\setlistparameter#1#2#3{\@EA\def\csname\??li#1#2\endcsname{#3}} % often
+%def\listparameter #1{\ifcsname\??li\currentlist#1\endcsname\csname\??li\currentlist#1\endcsname\fi}
+
+% interface
+
+\def\listparameter #1{\csname\dolistparameter{\??li\currentlist}#1\endcsname}
+\def\namedlistparameter#1#2{\csname\dolistparameter{\??li #1}#2\endcsname}
+\def\listparameterhash #1{\dolistparameterhash {\??li\currentlist}#1}
+
+\def\dolistparameter #1#2{\ifcsname#1#2\endcsname#1#2\else\expandafter\dolistparentparameter \csname#1\s!parent\endcsname#2\fi}
+\def\dolistparameterhash#1#2{\ifcsname#1#2\endcsname #1\else\expandafter\dolistparentparameterhash\csname#1\s!parent\endcsname#2\fi}
+
+\def\dolistparentparameter #1#2{\ifx#1\relax\s!empty\else\dolistparameter #1#2\fi}
+\def\dolistparentparameterhash#1#2{\ifx#1\relax \else\dolistparameterhash#1#2\fi}
+
+\def\dosetlistattributes#1#2% style color
+ {\edef\fontattributehash {\listparameterhash#1}%
+ \edef\colorattributehash{\listparameterhash#2}%
+ \ifx\fontattributehash \empty\else\dosetfontattribute \fontattributehash #1\fi
+ \ifx\colorattributehash\empty\else\dosetcolorattribute\colorattributehash#2\fi}
+
+\def\donestedlistattributes#1#2%
+ {\dosetlistattributes#1#2%
+ \ifx\colorattributehash\empty \else
+ \resetinteractionparameter\c!color
+ \resetinteractionparameter\c!contrastcolor
+ \fi}
+
+% handling
+
+% The next code injects data into the list at the current level.
+
+\def\structurelistinject{\dotripleempty\dostructurelistinject}
+
+\def\dostructurelistinject[#1][#2][#3]%
+ {\begingroup
+ \edef\currentlistname{#1}%
+ \setnextinternalreference
+ \edef\currentlistnumber{\ctxlua{structure.lists.push{
+ references = {
+ internal = \nextinternalreference,
+ section = structure.sections.currentid(),
+ },
+ metadata = {
+ kind = "#2",
+ name = "\currentlistname",
+ level = structure.sections.currentlevel(),
+ catcodes = \the\catcodetable,
+ },
+ userdata = structure.helpers.touserdata(\!!bs\detokenize{#3}\!!es)
+ }}}%
+ \expanded{\ctxlatelua{structure.lists.enhance(\currentlistnumber)}}%
+ \endgroup}
+
+\def\structurelistlocation
+ {\ctxlua{structure.lists.location("\currentlist",\currentlistindex)}}
+
+\def\structurelistpagenumber
+ {\ctxlua{structure.lists.prefixedpage(
+ "\currentlist",
+ \currentlistindex,
+ {
+ separatorset = "\listparameter\c!pageprefixseparatorset",
+ conversionset = "\listparameter\c!pageprefixconversionset",
+ set = "\listparameter\c!pageprefixset",
+ segments = "\listparameter\c!pageprefixsegments",
+ connector = \!!bs\listparameter\c!pageprefixconnector\!!es,
+ },
+ {
+ prefix = "\listparameter\c!pageprefix",
+ conversionset = "\listparameter\c!pageconversionset",
+ stopper = \!!bs\listparameter\c!pagestopper\!!es,
+ }
+ )}}
+
+\def\structurelistrealpagenumber
+ {\ctxlua{structure.lists.realpage("\currentlist",\currentlistindex)}}
+
+\def\structurelistfirst
+ {\ctxlua{structure.lists.userdata("\currentlist",\currentlistindex,"first")}}
+
+\def\structurelistsecond
+ {\ctxlua{structure.lists.userdata("\currentlist",\currentlistindex,"second")}}
+
+\def\structurelistuservariable#1%
+ {\ctxlua{structure.lists.userdata("\currentlist",\currentlistindex,"#1")}}
+
+% \appendtoks
+% \to \everystructurelist
+
+\def\placestructurelist#1#2#3%
+ {\ctxlua{structure.lists.process("#1","#2","#3")}}
+
+\def\analysestructurelist#1#2#3%
+ {\ctxlua{structure.lists.analyze("#1","#2","#3")}}
+
+\def\firststructureelementinlist#1%
+ {\ctxlua{commands.first_in_list("#1")}}
+
+\def\structurelistsize
+ {\ctxlua{structure.lists.size()}}
+
+\def\@@structurelistprocess{structurelist:process:}
+
+\def\installstructurelistprocessor#1#2%
+ {\expandafter\def\csname\@@structurelistprocess#1\endcsname{#2}}
+
+\def\usestructurelistprocessor#1%
+ {\csname\@@structurelistprocess#1\endcsname}
+
+\installstructurelistprocessor\s!default
+ {no list method}
+
+% push pop test:
+%
+% \starttext
+% \placelist[chapter] [after={\placelist[section][criterium=local]}]
+% \chapter{One} \section{Alpha} \section{Beta}
+% \chapter{Two} \section{First} \section{Second}
+% \stoptext
+
+\def\processlistofstructure#1#2#3% name, method, n
+ {\ctxlua{structure.lists.pushnesting(#3)}%
+ \edef\currentlist {#1}%
+ \edef\currentlistmethod{#2}%
+ \edef\currentlistindex {#3}%
+ \csname\@@structurelistprocess
+ \ifcsname\@@structurelistprocess\currentlist:\currentlistmethod\endcsname\currentlist:\currentlistmethod\else
+ \ifcsname\@@structurelistprocess\currentlistmethod \endcsname\currentlistmethod \else
+ \ifcsname\@@structurelistprocess\currentlist \endcsname\currentlist \else
+ \s!default \fi\fi\fi
+ \endcsname
+ \ctxlua{structure.lists.popnesting()}}
+
+% \installstructcurelistprocessor{pubs:userdata}
+% {\ctxlua{structure.lists.userdata("\currentlist",\currentlistindex,"bibref")}}
+
+\installstructurelistprocessor{command}
+ {\ctxlua{structure.lists.userdata("\currentlist",\currentlistindex,"command")}}
+
+\installstructurelistprocessor{section}
+ {\dodolistelement
+ \currentlist
+ \structurelistlocation
+ \structurelistgenericnumber
+ \structurelistgenerictitle
+ \structurelistpagenumber
+ \structurelistrealpagenumber}
+
+% so far (todo: also recursive)
+
+\def\listalternativeparameter#1%
+ {\csname\??li\??li\listparameter\c!alternative#1\endcsname}
+
+\def\setuplistalternative[#1]%
+ {\dodoubleargument\getparameters[\??li\??li#1]}
+
+\def\listfill {\listalternativeparameter\c!command }
+\def\listskip {\listalternativeparameter\c!distance}
+\def\listwidth {\listalternativeparameter\c!width }
+\def\liststretch{\listalternativeparameter\c!stretch }
+
+% a : nr - tit - pag
+% b : nr - tit - fill - pag
+% c : nr - tit - dots - pag
+
+\setuplistalternative[a][\c!distance=0pt,\c!width=2em,\c!stretch=10em,\c!command=\hskip.25em\relax]
+\setuplistalternative[b][\c!distance=5em,\c!width=2em,\c!stretch=10em,\c!command=\hfill]
+\setuplistalternative[c][\c!distance=5em,\c!width=0pt,\c!stretch=10em,\c!command=\hskip.5em\listdots\hskip.5em\relax]
+
+\def\listdots{\leaders\hbox to .5em{\hss.\hss}\hfill}
+
+\setvalue{\??li\c!alternative}{\getvalue{\??li\c!alternative b}}
+\getvalue{\??li\c!alternative}
+
+\def\dosetuplist[#1][#2]% slow -)
+ {\def\docommand##1{\getparameters[\??li##1][#2]}%
+ \processcommalist[#1]\docommand}
+
+\def\setuplist
+ {\dodoubleargument\dosetuplist}
+
+\def\dodefinelist[#1][#2][#3]%
+ {\presetlocalframed[\??li#1]% still inefficient (will change when we redu core-rul)
+ \doifassignmentelse{#2}
+ {\getparameters[\??li#1][\s!parent=\??li,#2]}
+ {\doifelsenothing{#2}
+ {\getparameters[\??li#1][\s!parent=\??li]}
+ {\getparameters[\??li#1][\s!parent=\??li#2,#3]}}}
+
+\def\setuplists % new, but not for users (hardly handy)
+ {\dodoubleargument\getparameters[\??li]}
+
+\setuplists
+ [\c!height=\v!broad,
+ \c!depth=\v!broad,
+ \c!offset=0.25em,
+ \c!maxwidth=,
+ \c!state=\v!start,
+ \c!coupling=\v!off,
+ \c!criterium=\v!local,
+ \c!number=0,
+ \c!width=3em,
+ \c!alternative=\c!b,
+ \c!style=\v!normal,
+ \c!textstyle=\listparameter\c!style,
+ \c!numberstyle=\listparameter\c!style,
+ \c!pagestyle=\listparameter\c!style,
+ %\c!color=,
+ \c!textcolor=\listparameter\c!color,
+ \c!numbercolor=\listparameter\c!color,
+ \c!pagecolor=\listparameter\c!color,
+ \c!numbercommand=\listnumbercommand,
+ \c!textcommand=\listtextcommand,
+ \c!pagecommand=\listpagecommand,
+ \c!pagenumber=\v!yes,
+ \c!headnumber=\v!yes,
+ \c!pageboundaries=,
+ \c!margin=\!!zeropoint,
+ \c!aligntitle=,
+ \c!before=,
+ \c!after=,
+ \c!inbetween=,
+ \c!symbol=,
+ \c!interaction=\v!sectionnumber,
+ \c!label=\v!no,
+ \c!distance=\!!zeropoint,
+ \c!limittext=\@@kolimittext,
+ %\c!sectionseparatorset=,
+ %\c!sectionconversionset=,
+ %\c!sectionstopper=,
+ %\c!sectionset=,
+ %\c!sectionsegments=,
+ %\c!prefix=\v!no,
+ %\c!prefixseparatorset=,
+ %\c!prefixconversionset=,
+ %\c!prefixstopper=.,
+ %\c!prefixset=,
+ %\c!prefixsegments=,
+ %\c!pageseparatorset=,
+ %\c!pageconversionset=,
+ %\c!pagestopper=,
+ %\c!expansion=,
+ % \c!prefixconnector=., % maybe inherit from setupheads
+ % \c!pageprefix=\v!no, % is unset, inherits
+ % \c!pageprefixconnector=\listparameter\c!prefixconnector,
+ ]%\c!pagesegments=2:2]
+
+\def\definelist
+ {\dotripleempty\dodefinelist}
+
+\def\placelist
+ {\dodoubleempty\doplacelist}
+
+\def\placerawlist
+ {\dodoubleempty\doplacerawlist}
+
+\def\dobeginoflist
+ {\begingroup
+ \startpacked[\v!blank]}
+
+\def\doendoflist
+ {\stoppacked
+ \endgroup}
+
+\def\doplacelist[#1][#2]%
+ {\dobeginoflist
+ \doplacerawlist[#1][#2]%
+ \doendoflist}
+
+\newtoks\everystructurelist
+
+% writing to lists
+
+\def\writetolist[#1]{\gobbletwoarguments}
+\let\dowritetolist \gobblefourarguments
+\let\dodowritetolist\gobblefourarguments
+
+\def\writebetweenlist[#1]#2%
+ {\doif{\namedlistparameter{#1}\c!state}\v!start{\structurelistinject[#1][command][command={#2}]}}
+
+\def\writedatatolist
+ {\dodoubleargument\dowritedatatolist}
+
+\def\dowritedatatolist[#1][#2]%
+ {\doif{\namedlistparameter{#1}\c!state}\v!start{\structurelistinject[#1][userdata][#2]}}
+
+\def\writetolist[#1]#2#3%
+ {\doif{\namedlistparameter{#1}\c!state}\v!start{\structurelistinject[#1][simple][first={#2},second={#3}]}}
+
+\installstructurelistprocessor{simple}
+ {\dodolistelement
+ \currentlist
+ \structurelistlocation
+ \structurelistfirst
+ \structurelistsecond
+ \structurelistpagenumber
+ \structurelistrealpagenumber}
+
+% % %
+
+\def\doplacerawlist[#1][#2]% listreferences will be redone
+ {\begingroup
+ \dosetuplist[#1][#2]%
+ \edef\currentlist{\firststructureelementinlist{#1}}%
+ \the\everystructurelist
+ \doif{\listparameter\c!coupling}\v!on{\startlistreferences{#1}}%
+ \placestructurelist{#1}{\listparameter\c!criterium}{\number\listparameter\c!number}%
+ \stoplistreferences
+ \endgroup
+ \dosetlistmode}
+
+\def\dosetlistmode % utilitydone will disappear
+ {\ifcase\structurelistsize\relax
+ \utilitydonefalse \resetsystemmode\v!list
+ \else
+ \utilitydonetrue \setsystemmode \v!list
+ \fi}
+
+\def\systemsuppliedchapter {\getvalue{\v!chapter}} % brrr
+\def\systemsuppliedtitle {\getvalue{\v!title}} % brrr
+
+\def\dodocompletelist[#1][#2][#3]% enkelvoud, meervoud, instellingen
+ {\normalexpanded{\noexpand\systemsuppliedtitle[#2]{\noexpand\headtext{#2}}}% expansion needed for v! vs french !
+ \doplacelist[#1][#3]}
+
+\def\docompletelist[#1][#2]%
+ {\dodocompletelist[#1][#1][#2]}
+
+\def\completelist
+ {\dodoubleempty\docompletelist}
+
+\def\listelements {} % list of page breaks
+\def\listnumbercommand #1{#1} % no strut due to interactive version
+\def\listtextcommand #1{\begstrut#1\endstrut}
+\def\listpagecommand #1{\strut#1}
+
+\def\doassigndimen#1#2#3%
+ {\doifinsetelse{#2}{\v!fit,\v!broad}{#1=#3}{#1=#2}\relax}
+
+\def\listsymbol[#1]#2%
+ {\begingroup
+ \edef\currentlist{#1}%
+ \edef\currentlistnumber{#2}%
+ \currentlistsymbol
+ \endgroup}
+
+% Beware, the list symbol macro gets an argument passed, i.e. when this
+% argument is not picked up, the symbol becomes a kind of prefix.
+
+% for historical reasons we're stuck to symbols, so in order to generalize,
+% we have to hook it into the symbol handler; we need a beter clean up later
+%
+% < 2005
+%
+% \def\dosetlistsymbol % #1
+% {\executeifdefined{listsymbol@\listparameter\c!symbol}\listsymbol@default} % {#1}
+%
+% >= 2005
+%
+% at this symbol level, we have access to the raw 'number' in
+% \currentlistnumber
+
+\definesymbol[\v!list][\v!none ][\listsymbol@none ]
+\definesymbol[\v!list][\v!one ][\listsymbol@one ]
+\definesymbol[\v!list][\v!two ][\listsymbol@two ]
+\definesymbol[\v!list][\v!three ][\listsymbol@three ]
+\definesymbol[\v!list][\s!default][\listsymbol@default]
+\definesymbol[\v!list][\s!unknown][\listsymbol@unknown]
+
+\def\currentlistsymbol
+ {\doifinsymbolsetelse\v!list{\listparameter\c!symbol}
+ {\directsymbol\v!list{\listparameter\c!symbol}}
+ {\directsymbol\v!list\s!default}}
+
+\def\listsymbol@none
+ {\doassigndimen\scratchdimen{\listparameter\c!width}{1.5em}%
+ \hbox to \scratchdimen{}}
+
+\def\listsymbol@one
+ {\strut$\bullet$}
+
+\def\listsymbol@two
+ {\vrule\!!width1em\!!height1ex\!!depth\zeropoint}
+
+\def\listsymbol@three
+ {\begingroup
+ \doassigndimen{\dimen0}{\listparameter\c!width }{1.5em}%
+ \doassigndimen{\dimen2}{\listparameter\c!height}{1ex}%
+ \doassigndimen{\dimen4}{\listparameter\c!depth }\zeropoint
+ \vrule\!!width\dimen0\!!height\dimen2\!!depth\dimen4%
+ \endgroup}
+
+\def\listsymbol@default
+ {% prefix = no, none, yes
+ \strut
+ \doif{\listparameter\c!label}\v!yes{\leftlabeltext\currentlist}% we can use the new command that does left and right
+ \currentlistnumber
+ \listparameter\c!stopper
+ \doif{\listparameter\c!label}\v!yes{\rightlabeltext\currentlist}}
+
+\def\listsymbol@default
+ {% todo:
+ % prefix=no (first gone)|none (all gone)|yes
+ % number=no|yes
+ \strut
+ \doifelse{\listparameter\c!label}\v!yes
+ {\leftlabeltext\currentlist
+ \currentlistnumber
+ \listparameter\c!stopper
+ \rightlabeltext\currentlist}
+ {\currentlistnumber
+ \listparameter\c!stopper}}
+
+\def\listsymbol@unknown
+ {\listparameter\c!symbol}
+
+% so far for list symbols
+
+\def\@@dodolistelement{dodolistelement}
+
+\def\dosomelistelement#1#2#3{#1 #2 #3}
+
+\setvalue{\@@dodolistelement a}{\let\dosomelistelement\dodofixdlistelementABC}
+\setvalue{\@@dodolistelement b}{\let\dosomelistelement\dodofixdlistelementABC}
+\setvalue{\@@dodolistelement c}{\let\dosomelistelement\dodofixdlistelementABC}
+\setvalue{\@@dodolistelement d}{\let\dosomelistelement\dodofixdlistelementD}
+\setvalue{\@@dodolistelement e}{\let\dosomelistelement\dodofixdlistelementE}
+\setvalue{\@@dodolistelement f}{\let\dosomelistelement\dodofixdlistelementF}
+\setvalue{\@@dodolistelement g}{\let\dosomelistelement\dodofixdlistelementG}
+
+\setvalue{\@@dodolistelement\v!none }{\def\dosomelistelement{\dodofreevlistelement}}
+\setvalue{\@@dodolistelement\v!vertical }{\def\dosomelistelement{\dodofreevlistelement}}
+\setvalue{\@@dodolistelement\v!horizontal}{\def\dosomelistelement{\dodofreehlistelement}}
+\setvalue{\@@dodolistelement\v!command }{\let\dosomelistelement\dodocommandlistelement}
+
+% \setuplist
+% [section]
+% [alternative=MyListItem,
+% after=\blank,
+% before=\blank]
+%
+% \definelistplacement[MyListItem][none]#1#2#3%
+% {(#1) (#2) (#3)}
+
+\def\definelistplacement
+ {\dodoubleempty\dodefinelistplacement}
+
+\def\dodefinelistplacement[#1][#2]%
+ {\setvalue{\@@dodolistelement#1}%
+ {\doifelsenothing{#2}
+ {\getvalue{\@@dodolistelement\v!command}}%
+ {\executeifdefined{\@@dodolistelement#2}{\getvalue{\@@dodolistelement\v!command}}}%
+ \setvalue{\??li\currentlist\c!command}{\getvalue{\@@dodolistelement::#1}}}%
+ \setvalue{\@@dodolistelement::#1}}
+
+% don't mess arround with endgraf/grouping else we loose leftskip
+
+% \strippedcsname\dodolistelement
+
+\def\newlineinlist{\space}
+
+\let\currentlist\s!unknown
+
+\def\docurrentlistalternative
+ {\edef\currentlistalternative{\listparameter\c!alternative}%
+ \ifx\currentlistalternative\empty
+ [unknown list alternative]%
+ \else
+ \executeifdefined{\@@dodolistelement\currentlistalternative}{[unknown list alternative: \currentlistalternative]}%
+ \fi}
+
+\def\dodolistelement#1#2#3#4#5#6%
+ {\edef\currentlist{#1}%
+ \edef\currentlistnumber{#3}%
+ \docurrentlistalternative
+ %\showcomposition
+ \let\@@iawidth\!!zeropoint % moet boolean worden
+ \begingroup
+ \edef\listelements{\listparameter\c!pageboundaries}%
+ \normalexpanded{\noexpand\doifinset{#3}{\listelements}}
+ {\showmessage\m!systems{14}{#3}%
+ \page}%
+ \endgroup
+ \dontcomplain
+ %\setfullsectionnumber{\??li\currentlist}% todo
+ \dosomelistelement{#1}{#2}{#3}{#4}{#5}{#6}%
+ \global\utilitydonetrue} % ?
+
+\def\dodocommandlistelement#1#2#3#4#5#6%
+ {\doifdefinedelse{\??li#1\c!command}
+ {\listparameter\c!command{#3}{#4}{#5}}
+ {[\currentlist: #3 -- #4 -- #5]}}
+
+\def\domakelistelement#1#2#3#4% ref internal command data
+ {\dontleavehmode
+ \doifnot{\listparameter\c!interaction}{#1}\locationfalse
+ \iflocation
+ \directgotobox{\setlocationcolor\??ia#4}[internal(#2)]%
+ \else
+ #3{#4}%
+ \fi}
+
+\def\dodofreelistelement#1#2#3#4#5#6#7#8%
+ {\listparameter\c!before% can be \hskip
+ \doifdefinedelse{\??li#1\c!command}
+ {\domakelistelement{\listparameter\c!interaction}{#2}\hbox
+ {\listparameter\c!command
+ {#3}% geen conversies etc
+ {#4}% geen conversies etc
+ {#5}}}% geen command
+ {#7%
+ \vbox
+ {\forgetall
+ \domakelistelement\v!all{#2}\hbox
+ {\doif{\listparameter\c!headnumber}\v!yes
+ {\domakelistelement\v!sectionnumber{#2}\hbox
+ {\donestedlistattributes\c!numberstyle\c!numbercolor
+ {\listparameter\c!numbercommand{\currentlistsymbol}}}}%
+ \domakelistelement\v!text{#2}\hbox
+ {\donestedlistattributes\c!textstyle\c!textcolor
+ {\let\\=\newlineinlist
+ \dontconvertfont
+ \listparameter\c!textcommand{#4}}}%
+ \doif{\listparameter\c!pagenumber}\v!yes
+ {\doifsomething{#5}
+ {\domakelistelement\v!pagenumber{#2}\hbox
+ {\donestedlistattributes\c!pagestyle\c!pagecolor
+ {\listparameter\c!pagecommand{#5}}}}}}}%
+ #8}%
+ \listparameter\c!after}
+
+\def\dodofreehlistelement#1#2#3#4#5#6%
+ {\dodofreelistelement{#1}{#2}{#3}{#4}{#5}{#6}
+ {\noindent}{}}
+
+\def\dodofreevlistelement#1#2#3#4#5#6% % \nointerlineskip needed,
+ {\dodofreelistelement{#1}{#2}{#3}{#4}{#5}{#6} % otherwise wrong spacing
+ {\ifvmode\nointerlineskip\fi} % at multi-line lists
+ {\ifvmode\nointerlineskip\fi\endgraf\allowbreak}} % test is saveguard
+
+% to be documented: align, hang
+
+\def\limitatedlistentry#1%
+ {\doifelsenothing{\listparameter\c!maxwidth}
+ {\listparameter\c!textcommand{#1}}
+ {\listparameter\c!textcommand
+ {\limitatetext
+ {#1}%
+ {\listparameter\c!maxwidth}%
+ {\splitsymbol{\listparameter\c!limittext}}}}}
+
+\def\dodofixdlistelementABC#1#2#3#4#5#6% weeden
+ {\endgraf
+ \leftskip\listparameter\c!margin% na de \endgraf !
+ \listparameter\c!before
+ \!!widthc\listparameter\c!distance
+ \doifelse{\listparameter\c!width}\v!fit
+ {\!!widtha\zeropoint}
+ {\doifelsenothing{#3}
+ {\doifelse{\listparameter\c!aligntitle}\v!yes
+ {\!!widtha\zeropoint
+ \!!widthc\zeropoint}
+ {\!!widtha\listparameter\c!width}}
+ {\!!widtha\listparameter\c!width}}%
+ \getvalue{\??li\c!alternative\listparameter\c!alternative}%
+ \endgraf
+ \doif{\listparameter\c!interaction}\v!text % not supported ! ! ! ! ! ! text == all
+ {\setlistparameter\currentlist\c!interaction\v!all}%
+ % \dontleavehmode % new, else no margin, but wrong, better (else \indent as well):
+ \noindent
+ \domakelistelement\v!all{#2}\hbox
+ {\setlocalhsize
+ \hsize\localhsize
+ \hbox to \hsize
+ {\forgetall
+ \dosetlistattributes\c!style\c!color
+ \!!widthb\hsize
+ \doifelse{\listparameter\c!headnumber}\v!yes
+ {\setbox2\hbox \ifdim\!!widtha>\zeropoint to \!!widtha \fi
+ {\domakelistelement\v!sectionnumber{#2}\hbox
+ {\donestedlistattributes\c!numberstyle\c!numbercolor
+ {\listparameter\c!numbercommand{\currentlistsymbol}}%
+ \hfill}}}
+ {\!!widtha\zeropoint
+ \!!widthc\zeropoint
+ \setbox2\hbox{}}%
+ \setbox4\hbox
+ {\doif{\listparameter\c!pagenumber}\v!yes
+ {\doifsomething{#5} % \listwidth is new ; temp hack
+ {\hbox \ifdim\listwidth>\zeropoint to \listwidth\fi
+ {\hfill
+ \domakelistelement\v!pagenumber{#2}\hbox
+ {\donestedlistattributes\c!pagestyle\c!pagecolor
+ {\listparameter\c!pagecommand{#5}}}}}}}%
+ \vbox
+ {\hsize\!!widthb
+ \setupalign[\listparameter\c!align]%
+ \ifdim\!!widtha<\hsize
+ \hangindent\wd2
+ \dimen2=\!!widthc % \listparameter\c!distance
+ \advance\hangindent \dimen2
+ \hangafter\plusone
+ \doif{\listparameter\c!hang}\v!no{\hangafter\zerocount}%
+ \ifdim\wd4=\zeropoint % \ifvoid4
+ % we kunnen gewoon afbreken aan het eind
+ \else
+ \ifdim\listskip>\zeropoint\relax
+ \rightskip\listskip\!!plus\liststretch\relax
+ \parfillskip-\rightskip
+ \fi
+ \fi
+ \else
+ \dimen2\zeropoint
+ \fi
+ \parindent\zeropoint\relax
+ \leavevmode
+ \box2\relax
+ \hskip\dimen2
+ \bgroup
+ \donestedlistattributes\c!textstyle\c!textcolor
+ {\let\\=\newlineinlist
+ \dontconvertfont
+ %\listparameter\c!textcommand{#4}}%
+ \limitatedlistentry{#4}}%
+ %\carryoverpar % new otherwise wrong linespacing
+ \egroup
+ \ifdim\wd4=\zeropoint\relax % \ifvoid4
+ % \ifdim\!!widtha<\hsize \hfill\strut \fi % spoils align
+ \else
+ \nobreak\listfill
+ \box4\relax
+ \relax
+ \fi}%
+ \hss}}% new
+ \endgraf % new, else problems with nointerlinespace and prevdepth
+ \nointerlineskip % anders verkeerde spatiering bij multi-line
+ \endgraf
+ \allowbreak
+ \listparameter\c!after}
+
+% % example from the context list
+%
+% \setuphead [part] [page=right,placehead=yes]
+% \setuplist [chapter] [alternative=d,before=\blank,after=\blank]
+% \setuplist [part] [before=\blank,after=\blank]
+%
+% \starttext
+% \startnarrower[2*right] \placecontent \stopnarrower
+% \blank[4*big]
+% \startsetups chapter
+% \blank \startnarrower[3*middle] \placecontent[criterium=local] \stopnarrower
+% \stopsetups
+% \placelist[part][criterium=text,after=\setups{chapter}]
+%
+% \part{First part} \chapter{Chapter one} \chapter{Chapter two}
+% \chapter{Chapter three} \chapter{Chapter four} \chapter{Chapter five}
+% \part{Second part} \chapter{Chapter one} \chapter{Chapter two}
+% \chapter{Chapter three} \chapter{Chapter four} \chapter{Chapter five}
+% \part{Third part} \chapter{Chapter one} \chapter{Chapter two}
+% \chapter{Chapter three} \chapter{Chapter four} \chapter{Chapter five}
+% \stoptext
+
+% overrulen interactie kan sneller, bv door hulpconstanten
+% te gebruiken en die te letten
+
+\def\dodofixdlistelementD#1#2#3#4#5#6%
+ {%\leftskip=\listparameter\c!margin
+ \ifvmode
+ \advance\leftskip\listparameter\c!margin% AANGEPAST
+ \fi
+ \bgroup
+ \ifvmode
+ \noindent\leavevmode % leavevmode ? ? ?
+ \fi
+ \doif{\listparameter\c!interaction}\v!text % not supported
+ {\setlistparameter\currentlist\c!interaction\v!sectionnumber}%
+ \doif{\listparameter\c!interaction}\v!all % not supported
+ {\setlistparameter\currentlist\c!interaction\v!sectionnumber}%
+ \setbox4\hbox
+ {\doif{\listparameter\c!pagenumber}\v!yes
+ {\doifsomething{#5}
+ {\domakelistelement\v!pagenumber{#2}\hbox
+ {\donestedlistattributes\c!pagestyle\c!pagecolor
+ {\listparameter\c!pagecommand{#5}}}}}}%
+ \doif{\listparameter\c!headnumber}\v!yes
+ {\donetrue
+ \doifnothing{#3}{\doifnothing{\listparameter\c!symbol}\donefalse}%
+ % == \doifnothing{#3\listparameter\c!symbol}\donefalse
+ \ifdone
+ \hbox
+ {\listparameter\c!left
+ \domakelistelement\v!sectionnumber{#2}\hbox
+ {\donestedlistattributes\c!numberstyle\c!numbercolor
+ {\listparameter\c!numbercommand{\currentlistsymbol}}}%
+ \listparameter\c!right
+ \hskip.5em}%
+ \nobreak
+ \fi}%
+ \tolerance3500 % niet zomaar veranderen
+ \donestedlistattributes\c!textstyle\c!textcolor
+ {\let\\=\newlineinlist
+ \dontconvertfont
+ %\listparameter\c!textcommand{#4}}%
+ \limitatedlistentry{#4}}%
+ \ifvoid4\else
+ \nobreak
+ \hskip.75em\relax
+ \nobreak
+ \box4
+ \fi
+ \dimen0=\listparameter\c!distance\relax
+ \ifdim\dimen0<1em\relax
+ \hskip1em\!!plus1em\!!minus.25em\relax
+ \else
+ \hskip\dimen0\!!plus.5\dimen0\!!minus.25\dimen0\relax
+ \fi
+ \egroup}
+
+\def\dodofixdlistelementE#1%
+ {\dodofixdlistelementEFG
+ {\setupinteraction[\c!strut=\v!no]}
+ {\localframed[\??li\currentlist][\c!depth=\!!zeropoint,\c!color=]}
+ {}}
+
+\def\dodofixdlistelementF#1%
+ {\dodofixdlistelementEFG
+ {}
+ {\dosetraggedhbox{\listparameter\c!align}\raggedbox}
+ {}}
+
+\def\dodofixdlistelementG#1%
+ {\dodofixdlistelementEFG
+ {}
+ \midaligned
+ {}}
+
+\def\dodofixdlistelementEFG#1#2#3#4#5#6#7#8%
+ {\noindent
+ \bgroup
+ \domakelistelement\v!no{#4}{#2}%
+ {\let\\=\newlineinlist
+ #1% in case E nils the strut (still needed?)
+ \dosetlistattributes\c!style\c!color
+ \ignorespaces\dontconvertfont\setstrut
+ \begstrut
+ \limitatedlistentry{#6}%
+ \endstrut}%
+ \egroup
+ \par
+ \listparameter\c!inbetween}
+
+\def\listlength{\utilitylistlength}
+\def\listwidth {\utilitylistwidth}
+\def\listheight{\utilitylistheight}
+
+\def\utilitylistlength {0}
+\def\utilitylistwidth {0pt} % no longer supported
+\def\utilitylistheight {0pt} % no longer supported
+
+\def\dodeterminelistcharacteristics[#1][#2]%
+ {\begingroup
+ \dosetuplist[#1][#2]%
+ \edef\currentlist{\firststructureelementinlist{#1}}%
+ \the\everystructurelist
+ \analysestructurelist{#1}{\listparameter\c!criterium}{\number\listparameter\c!number}%
+ \xdef\utilitylistlength{\structurelistsize}%
+ \endgroup
+ \dosetlistmode}
+
+\def\determinelistcharacteristics
+ {\dodoubleempty\dodeterminelistcharacteristics}
+
+\def\combinedlistparameter#1{\csname\??ih\currentcombinedlist#1\endcsname}
+
+\def\setupcombinedlist
+ {\dodoubleargument\dosetupcombinedlist}
+
+\def\dosetupcombinedlist[#1][#2]%
+ {\getparameters[\??ih#1][#2]%
+ \edef\currentcombinedlist{#1}%
+ \normalexpanded{\noexpand\setuplist[\combinedlistparameter\c!list]}[#2]}
+
+\def\definecombinedlist
+ {\dotripleempty\dodefinecombinedlist}
+
+\def\dodefinecombinedlist[#1][#2][#3]%
+ {\getparameters
+ [\??ih#1]
+ [\c!criterium=\v!local,\c!number=0,\c!list={#2},#3]%
+ \setvalue{\e!setup#1\e!endsetup}{\dodoubleempty\dosetupcombinedlist[#1]}%
+ \setvalue{\e!place#1}{\dodoubleempty\doplacecombinedlist[#1]}%
+ \setvalue{\e!complete#1}{\dodoubleempty\docompletecombinedlist[#1]}}
+
+\def\placecombinedlist
+ {\dodoubleempty\doplacecombinedlist}
+
+\def\doplacecombinedlist[#1][#2]% we can move much of the analysis to lua
+ {\begingroup
+ % level is no longer supported
+ \def\currentcombinedlist{#1}%
+ \getparameters[\??ih#1][#2]%
+ \edef\combinedlist{\combinedlistparameter\c!list}%
+ \the\everystructurelist
+ \doif{\combinedlistparameter\c!coupling}\v!on{\startlistreferences{#1}}%
+ \dobeginoflist
+ \normalexpanded{\noexpand\dosetuplist[\combinedlist][#2]}%
+ \placestructurelist{\combinedlist}{\combinedlistparameter\c!criterium}{\combinedlistparameter\c!number}%
+ \doendoflist
+ \stoplistreferences
+ \endgroup
+ \dosetlistmode}
+
+\def\docompletecombinedlist[#1][#2]%
+ {\normalexpanded{\noexpand\systemsuppliedtitle[#1]{\noexpand\headtext{#1}}}% expansion due to v! vs french !
+ \doplacecombinedlist[#1][#2]}
+
+% lists that have a number/title are kind of generic and can share code
+
+\installstructurelistprocessor{number+title}
+ {\dodolistelement
+ \currentlist
+ \structurelistlocation
+ \structurelistgenericnumber
+ \structurelistgenerictitle
+ \structurelistpagenumber
+ \structurelistrealpagenumber}
+
+\def\structurelistgenerictitle
+ {\ctxlua{structure.lists.title("\currentlist",\currentlistindex)}}
+
+\def\structurelistgenericnumber{\ctxlua{
+ structure.lists.prefixednumber("\currentlist",\currentlistindex, {
+ prefix = "\listparameter\c!prefix",
+ separatorset = "\listparameter\c!prefixseparatorset",
+ conversionset = "\listparameter\c!prefixconversionset",
+ stopper = \!!bs\listparameter\c!prefixstopper\!!es,
+ set = "\listparameter\c!prefixset",
+ segments = "\listparameter\c!prefixsegments",
+ connector = \!!bs\listparameter\c!prefixconnector\!!es,
+ },
+ {
+ separatorset = "\listparameter\c!numberseparatorset",
+ conversionset = "\listparameter\c!numberconversionset",
+ stopper = \!!bs\listparameter\c!numberstopper\!!es,
+ segments = "\listparameter\c!numbersegments",
+ } )}}
+
+% new and yet undocumented (used in cocoa qa), temporarily disabled in mkiv
+%
+% \setupremaininglistlength
+% [left=\hss nog~,right=~ingangen]
+%
+% \resetremaininglistlength
+% [section][settings]
+%
+% \placelist
+% [section]
+% [before=\showremaininglistlength]
+%
+% \dorecurse{100}{\section{hans}}
+%
+% \definesystemvariable {ll} % ListLength
+%
+% \def\setupremaininglistlength[#1]%
+% {\getparameters[\??ll][#1]%
+% \globallet\listlengthcounter\!!zerocount}
+%
+% \setupremaininglistlength
+% [\c!left=\hss,\c!right=,\c!number=\v!yes,
+% \c!before=\blank,\c!after=\page,
+% \c!style=\v!smallnormal,\c!color=]
+%
+% \def\resetremaininglistlength
+% {\dodoubleempty\doresetremaininglistlength}
+%
+% \def\doresetremaininglistlength[#1][#2]%
+% {\determinelistcharacteristics[#1][#2]%
+% \xdef\listlengthcounter{\number\utilitylistlength}}
+%
+% \def\showremaininglistlength
+% {\bgroup
+% \ifnum\listlengthcounter>\plusone
+% \setbox\scratchbox\vbox
+% {\@@llbefore\par\horizontalstrut\par\horizontalstrut\par\@@llafter}%
+% \scratchdimen\pagetotal
+% \advance\scratchdimen \ht\scratchbox
+% \advance\scratchdimen \dp\scratchbox
+% \ifdim\scratchdimen>\pagegoal
+% \@@llbefore
+% \nobreak\hbox to \hsize
+% {\doifnot\@@llnumber\v!yes{\let\listlengthcounter\empty}%
+% \doattributes\??ll\c!style\c!color{\@@llleft\listlengthcounter\@@llright}}
+% \@@llafter
+% \fi
+% \fi
+% \doglobal\decrement\listlengthcounter\relax
+% \egroup}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/strc-mar.lua b/Master/texmf-dist/tex/context/base/strc-mar.lua
new file mode 100644
index 00000000000..f0d6df314a1
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/strc-mar.lua
@@ -0,0 +1,18 @@
+if not modules then modules = { } end modules ['strc-mar'] = {
+ version = 1.001,
+ comment = "companion to strc-mar.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+structure.marks = structure.marks or { }
+
+function structure.marks.title(tag,n)
+ structure.lists.savedtitle(tag,n,"marking")
+end
+
+function structure.marks.number(tag,n) -- no spec
+ -- no prefix (as it is the prefix)
+ structure.lists.savednumber(tag,n)
+end
diff --git a/Master/texmf-dist/tex/context/base/core-mar.tex b/Master/texmf-dist/tex/context/base/strc-mar.mkii
index 2051102f2cd..62e6f4ded55 100644
--- a/Master/texmf-dist/tex/context/base/core-mar.tex
+++ b/Master/texmf-dist/tex/context/base/strc-mar.mkii
@@ -1,7 +1,7 @@
%D \module
-%D [ file=core-mar,
+%D [ file=strc-mar,
%D version=1997.03.31,
-%D title=\CONTEXT\ Core Macros,
+%D title=\CONTEXT\ Structure Macros,
%D subtitle=Markings,
%D author=Hans Hagen,
%D date=\currentdate,
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Core Macros / Markings}
+\writestatus{loading}{ConTeXt Structure Macros / Markings}
\unprotect
@@ -22,33 +22,6 @@
%
% \fetchmark[naam][plaats]
-% nog expansie in mainmarking
-
-% ook nog reset koppelen aan sectie
-
-%\def\mainmarking#1%
-% {\csname\??mk#1\c!koppeling\endcsname}
-%
-%\def\fastresetmarker#1%
-% {\doifdefined{\??mk\maimarking{#1}}
-% {\expandafter\resetmark\csname\??mk\mainmarking{#1}\endcsname}}
-
-\beginTEX
-
-\def\mainmarking#1%
- {\@EA\ifx\csname\??mk#1\c!coupling\endcsname\relax\else
- \csname\??mk#1\c!coupling\endcsname
- \fi}
-
-\def\fastresetmarker#1%
- {\@EA\ifx\csname\??mk#1\c!coupling\endcsname\relax\else
- \@EA\resetmark\csname\??mk\csname\??mk#1\c!coupling\endcsname\endcsname
- \fi}
-
-\endTEX
-
-\beginETEX \ifcsname
-
\def\mainmarking#1%
{\ifcsname\??mk#1\c!coupling\endcsname
\csname\??mk#1\c!coupling\endcsname
@@ -59,8 +32,6 @@
\@EA\resetmark\csname\??mk\csname\??mk#1\c!coupling\endcsname\endcsname
\fi}
-\endETEX
-
\def\fastresetmarkerlist[#1]%
{\expanded{\rawprocesscommalist[#1]}\fastresetmarker}
@@ -137,85 +108,6 @@
\let\nomarking\empty
-\def\doifmarkingelse#1%
- {\doifdefinedelse{\??mk#1}}
-
-% \def\fetchmark[#1][#2]% never \unexpanded
-% {\@EA\csname\??mk\??mk#2\@EA\endcsname\csname\??mk\mainmarking{#1}\endcsname}
-
-% \beginTEX
-%
-% \def\fetchmark[#1][#2]% never \unexpanded
-% {\@EA\ifx\csname\??mk#1\c!coupling\endcsname\relax\else
-% \csname\??mk\??mk#2\@EA\endcsname
-% \csname\??mk\csname\??mk#1\c!coupling\endcsname\endcsname
-% \fi}
-%
-% \endTEX
-%
-% \beginETEX \ifcsname
-%
-% \def\fetchmark[#1][#2]% never \unexpanded
-% {\ifcsname\??mk#1\c!coupling\endcsname
-% \csname\??mk\??mk#2\@EA\endcsname
-% \csname\??mk\csname\??mk#1\c!coupling\endcsname\endcsname
-% \fi}
-%
-% \endETEX
-%
-% \def\fetchtwomarks[#1]%
-% {\doifsomething{\fetchmark[#1][\v!first]}
-% {\fetchmark[#1][\v!first]%
-% \doifsomething{\fetchmark[#1][\v!last]}
-% {\doifnot{\fetchmark[#1][\v!first]}{\fetchmark[#1][\v!last]}
-% {\getvalue{\??mk#1\c!separator}\fetchmark[#1][\v!last]}}}}
-%
-% \def\fetchallmarks[#1]%
-% {\doifsomething{\fetchmark[#1][\v!first]}
-% {\doifsomething{\fetchmark[#1][\v!previous]}
-% {\doifnot{\fetchmark[#1][\v!previous]}{\fetchmark[#1][\v!first]}
-% {\fetchmark[#1][\v!previous]\getvalue{\??mk#1\c!separator}}}}%
-% \fetchtwomarks[#1]}
-%
-% \def\dogetmarking[#1][#2]%
-% {\doifvalue{\??mk#1\c!state}\v!start
-% {\bgroup
-% %\def\nomarking##1{\unknown\ }%
-% \def\nomarking{\splitsequence{\getvalue{\??mk#1\c!limittext}}}%
-% \setfullsectionnumber{\??mk#1}%
-% \processaction % slow
-% [#2]
-% [ \v!both=>{\fetchtwomarks[#1]},
-% \v!all=>{\fetchallmarks[#1]},
-% \s!default=>{\fetchmark [#1][\v!first]},
-% \s!unknown=>{\fetchmark [#1][#2]}]%
-% \egroup}}
-%
-% \def\nogetmarking[#1][#2]%
-% {}
-%
-% \unexpanded\def\getmarking
-% {\dodoubleargument\dogetmarking}
-
-\beginTEX
-
-\def\fetchmark[#1][#2]% % expandable / never use \unexpanded
- {\@EA\ifx\csname\??mk::#1\endcsname\relax
- \@EA\ifx\csname\??mk#1\c!coupling\endcsname\relax
- % nothing
- \else
- \csname\??mk\??mk#2\@EA\endcsname
- \csname\??mk\csname\??mk#1\c!coupling\endcsname\endcsname
- \fi
- \else
- \csname\??mk::\??mk::#2\@EA\@EA\@EA\endcsname
- \csname\??mk::#1\endcsname
- \fi}
-
-\endTEX
-
-\beginETEX \ifcsname
-
\def\fetchmark[#1][#2]% % expandable / never use \unexpanded
{\ifcsname\??mk::#1\endcsname % saved mark
\csname\??mk::\??mk::#2\@EA\@EA\@EA\endcsname
@@ -225,17 +117,6 @@
\csname\??mk\csname\??mk#1\c!coupling\endcsname\endcsname
\fi\fi}
-\endETEX
-
-% \def\fetchmark[#1][#2]% % expandable / never use \unexpanded
-% {\ifcsname\??mk::#1\endcsname % saved mark
-% \csname\??mk::\??mk::#2\@EA\@EA\@EA\endcsname
-% \csname\??mk::#1\endcsname
-% \else\ifcsname\??mk#1\c!coupling\endcsname % real mark
-% \csname\??mk\??mk#2\@EA\endcsname
-% \csname\??mk\csname\??mk#1\c!coupling\endcsname\endcsname
-% \fi\fi}
-
\letvalue{\??mk::\??mk::\v!previous}\firstoffourarguments
\letvalue{\??mk::\??mk::\v!first }\secondoffourarguments
\letvalue{\??mk::\??mk::\v!last }\thirdoffourarguments
@@ -366,21 +247,6 @@
\let\setsomemark\setmark
-\beginTEX
-
-\def\domarking[#1]#2%
- {\@EA\ifx\csname\??mk#1\c!coupling\endcsname\relax\else
- \bgroup
- \doifelsevalue{\??mk#1\c!expansion}\v!yes
- \expandmarkstrue\expandmarksfalse
- \@EA\setsomemark\csname\??mk\csname\??mk#1\c!coupling\endcsname\endcsname{#2}%
- \egroup
- \fi}
-
-\endTEX
-
-\beginETEX \ifcsname
-
\def\domarking[#1]#2%
{\ifcsname\??mk#1\c!coupling\endcsname
\bgroup
@@ -390,8 +256,6 @@
\egroup
\fi}
-\endETEX
-
\def\marking
{\dosingleargument\domarking}
diff --git a/Master/texmf-dist/tex/context/base/strc-mar.mkiv b/Master/texmf-dist/tex/context/base/strc-mar.mkiv
new file mode 100644
index 00000000000..8dbbb232caf
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/strc-mar.mkiv
@@ -0,0 +1,493 @@
+%D \module
+%D [ file=strc-mar,
+%D version=2008.10.20,
+%D title=\CONTEXT\ Structure Macros,
+%D subtitle=Markings,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA-ADE / Hans Hagen]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Structure Macros / Markings}
+
+\registerctxluafile{strc-mar}{1.001}
+
+\unprotect
+
+%D Old stuff.
+
+\newtoks \listofmarks
+
+\let \getmarks \gobbleoneargument
+\let \getallmarks \relax
+\let \getsplitmarks \gobbleoneargument
+\let \getallsplitmarks \relax
+
+%D \macros
+%D {expandmarks}
+%D
+%D We can force expansion of marks with the following switch.
+
+% Synchronizing marks is a rather tricky and messy business. When
+% setting a mark, a node is added to the list in order for to \TEX\
+% be able to figure out the 3 current marks when a page is made
+% (last mark on previous page, first on current page, last on
+% current page; in \LUATEX\ we might at one point have the first on
+% the next page as well).
+
+% Resetting a mark is not easy. An empty one will not erase the last
+% one on the previous page for instance. In \LUATEX\ we can clear a
+% marks state register with \type {\clearmarks} but since this is an
+% immediate operation it might have unwanted side effects when \TEX\
+% has collected several pages of text and finishing off these pages
+% uses marks.
+
+% In \MKIV\ we provide a model that permits some control over the
+% way marks are used. It is not entirely compatible with \MKII\ but
+% in practice this is not a real problem. Quality has a price.
+
+% In fact we define multiple marks per visible mark and define
+% additional ones on the fly. This has some price in terms of used
+% mark registers but given the way that we fill marks in \MKIV\
+% their accumulated content is not really the issue. Also,
+% periodically we cleanup any leftovers.
+
+\newif\ifexpandmarks \expandmarkstrue
+
+\def\marksomecs #1#2{\csname\string#1:m:\number#2\endcsname}
+\def\markautocs #1{\csname\string#1:m:\number\csname\string#1:s\endcsname\endcsname}
+\def\markmaincs #1{\csname\string#1:m\endcsname}
+\def\markresetcs #1{\csname\string#1:r\endcsname}
+\def\markstatecs #1{\csname\string#1:s\endcsname}
+\def\markcurrentcs#1{\csname\string#1:c\endcsname}
+\def\marktokscs #1{\csname\string#1:t\endcsname}
+
+\def\renewmarks#1%
+ {\ifx#1\relax
+ % \writestatus\m!systems{defining low level mark: \string#1}%
+ \newmarks#1%
+ \else
+ \clearmarks#1%
+ \fi}
+
+\def\definenewmark#1%
+ {\ifcsname\string#1:m\endcsname\else
+ \@EA\@EA\@EA\newcount \markstatecs #1\global\markstatecs#1\plusone
+ \@EA\@EA\@EA\renewmarks\markautocs #1%
+ \@EA\@EA\@EA\renewmarks\markmaincs #1%
+ \@EA\@EA\@EA\renewmarks\markresetcs #1%
+ \@EA\@EA\@EA\newtoks \marktokscs #1%
+ \@EA\@EA\@EA\let \markcurrentcs#1\empty
+ \listofmarks\expandafter{\the\listofmarks\checkmark#1}%
+ \fi}
+
+\long\def\setmark#1#2% marks expand
+ {\@EA\@EA\@EA\xdef \markcurrentcs#1{\ifexpandmarks#2\else\normalunexpanded{#2}\fi}%
+ \marks\markautocs #1{\ifexpandmarks#2\else\normalunexpanded{#2}\fi}% we could expand current one level
+ \marks\markmaincs #1{\ifexpandmarks#2\else\normalunexpanded{#2}\fi}% we could expand current one level
+ \marks\markresetcs #1{\number\markstatecs#1}}
+
+\def\resetmark#1%
+ {\global\advance\markstatecs#1\plusone
+ \@EA\@EA\@EA\glet\markcurrentcs#1\empty
+ \@EA\@EA\@EA\renewmarks\markautocs#1%
+ \the\marktokscs#1\relax}
+
+\def\addmarkreset#1#2%
+ {\global\marktokscs#2\@EA{\the\marktokscs#2\resetmark#1}}
+
+% already there: \prependtoks \getallmarks \to \everybeforepagebody
+%
+% \def\getallmarks{\the\listofmarks}
+
+\let\checkmark\gobbleoneargument
+
+\prependtoks \clearmarkswhenemptypage \to \everybeforepagebody
+
+\def\clearmarkswhenemptypage
+ {\iffalse % check if page is empty
+ \clearallmarks
+ \fi}
+
+\def\clearallmarks
+ {\let\checkmark\clearmarkchain
+ \the\listofmarks
+ \let\checkmark\gobbleoneargument}
+
+\def\clearmarkchain#1%
+ {\@EA\@EA\@EA\clearmarks\markmaincs#1%
+ \@EA\@EA\@EA\clearmarks\markresetcs#1%
+ \@EA\doclearmarkchain\@EA{\number\csname\string#1:s\endcsname}#1%
+ \@EA\@EA\@EA\glet\markcurrentcs#1\empty
+ \global\markstatecs#1\plusone}
+
+\def\doclearmarkchain#1#2%
+ {\@EA\@EA\@EA\clearmarks\marksomecs#1{#2}%
+ \@EA\doclearmarkchain\@EA#1\@EA{\number\numexpr#2+\minusone}}
+
+% Fetching (expandable versions, so no intermediate counter):
+
+\def\currenttopmarknumber #1{\number0\topmarks \markresetcs#1}
+\def\currentfirstmarknumber#1{\number0\firstmarks\markresetcs#1}
+\def\currentbotmarknumber #1{\number0\botmarks \markresetcs#1}
+
+\def\checkedcurrentmarkrange#1{[\currenttopmarknumber#1,\currentfirstmarknumber#1,\currentbotmarknumber#1]}
+
+\def\checkedcurrentmarks{\markcurrentcs} % #1 shared current mark
+
+\let\currentsplittopmarknumber\currenttopmarknumber
+\let\normalsplittopmarks \normaltopmarks
+
+\def\uncheckedautotopmark {\normaltopmarks \markautocs} % #1
+\def\uncheckedautofirstmark {\normalfirstmarks \markautocs} % #1
+\def\uncheckedautobotmark {\normalbotmarks \markautocs} % #1
+\def\uncheckedautosplittopmark {\normalsplittopmarks \markautocs} % #1
+\def\uncheckedautosplitfirstmark {\normalsplitfirstmarks\markautocs} % #1
+\def\uncheckedautosplitbotmark {\normalsplitbotmarks \markautocs} % #1
+
+\def\uncheckedmaintopmark {\normaltopmarks \markmaincs} % #1
+\def\uncheckedmainfirstmark {\normalfirstmarks \markmaincs} % #1
+\def\uncheckedmainbotmark {\normalbotmarks \markmaincs} % #1
+\def\uncheckedmainsplittopmark {\normalsplittopmarks \markmaincs} % #1
+\def\uncheckedmainsplitfirstmark {\normalsplitfirstmarks\markmaincs} % #1
+\def\uncheckedmainsplitbotmark {\normalsplitbotmarks \markmaincs} % #1
+
+\def\checkedpagetopmarks #1{\ifcase\currentbotmarknumber #1\else\normaltopmarks \marksomecs#1{\currentbotmarknumber #1}\fi}
+\def\checkedpagefirstmarks #1{\ifcase\currentbotmarknumber #1\else\normalfirstmarks \marksomecs#1{\currentbotmarknumber #1}\fi}
+\def\checkedpagebotmarks #1{\ifcase\currentbotmarknumber #1\else\normalbotmarks \marksomecs#1{\currentbotmarknumber #1}\fi}
+\def\checkedpagesplittopmarks #1{\ifcase\currentsplitbotmarknumber #1\else\normalsplittopmarks \marksomecs#1{\currentsplitbotmarknumber #1}\fi}
+\def\checkedpagesplitfirstmarks#1{\ifcase\currentsplitbotmarknumber #1\else\normalsplitfirstmarks\marksomecs#1{\currentsplitbotmarknumber #1}\fi}
+\def\checkedpagesplitbotmarks #1{\ifcase\currentsplitbotmarknumber #1\else\normalsplitbotmarks \marksomecs#1{\currentsplitbotmarknumber #1}\fi}
+
+\def\checkedfulltopmarks #1{\ifcase\currenttopmarknumber #1\else\normaltopmarks \marksomecs#1{\currenttopmarknumber #1}\fi}
+\def\checkedfullfirstmarks #1{\ifcase\currentfirstmarknumber #1\else\normalfirstmarks \marksomecs#1{\currentfirstmarknumber #1}\fi}
+\def\checkedfullbotmarks #1{\ifcase\currentbotmarknumber #1\else\normalbotmarks \marksomecs#1{\currentbotmarknumber #1}\fi}
+\def\checkedfullsplittopmarks #1{\ifcase\currentsplittopmarknumber #1\else\normalsplittopmarks \marksomecs#1{\currentsplittopmarknumber #1}\fi}
+\def\checkedfullsplitfirstmarks#1{\ifcase\currentsplitfirstmarknumber#1\else\normalsplitfirstmarks\marksomecs#1{\currentsplitfirstmarknumber#1}\fi}
+\def\checkedfullsplitbotmarks #1{\ifcase\currentsplitbotmarknumber #1\else\normalsplitbotmarks \marksomecs#1{\currentsplitbotmarknumber #1}\fi}
+
+% Interface macros:
+
+\def\getcurrentmark {\checkedcurrentmarks }
+\def\gettopmark {\checkedfulltopmarks }
+\def\getfirstmark {\checkedfullfirstmarks }
+\def\getbotmark {\checkedfullbotmarks }
+\def\getsplittopmark {\checkedfullsplittopmarks }
+\def\getsplitfirstmark {\checkedfullsplitfirstmarks}
+\def\getsplitbotmark {\checkedfullsplitbotmarks }
+
+\def\getbottommark {\getbotmark}
+\def\getsplitbottommark{\getsplitbotmark}
+
+%D Some of these will go away (in the process of rewriting).
+
+\let \newmark \definenewmark
+\let \newpersistentmark \newmarks
+\let \normalsetmark \setmark
+\let \rawnewmark \newmarks
+\let \rawdefinemark \newmarks
+\let \rawsetmark \normalmarks
+\let \rawgettopmark \normaltopmarks
+\let \rawgetfirstmark \normalfirstmarks
+\let \rawgetbotmark \normalbotmarks
+\let \rawgetsplitbotmark \normalsplitbotmarks
+\let \rawgetsplitfirstmark \normalsplitfirstmarks
+\let \rawgetsplittopmark \normalsplitfirstmarks
+
+\let \noninterferingmarks \relax % old color interference related hack
+
+%D Next comes the layer around the previous mechanism.
+%D
+%D Parameters
+
+\def\markingparameter #1#2{\csname\domarkingparameter{\??mk#1}#2\endcsname}
+\def\domarkingparameter #1#2{\ifcsname#1#2\endcsname#1#2\else\@EA\domarkingparentparameter\csname#1\s!parent\endcsname#2\fi}
+\def\domarkingparentparameter#1#2{\ifx#1\relax\s!empty\else\domarkingparameter#1#2\fi}
+\def\markingcoupling #1{\ifcsname\??mk#1\c!coupling\endcsname\@EA\markingcoupling\csname\??mk#1\c!coupling\endcsname\else#1\fi}
+
+\let\mainmarking\markingcoupling % compatibility
+
+\def\doifelsemarking#1%
+ {\ifcsname\??mk#1\c!coupling\endcsname
+ \expandafter\firstoftwoarguments
+ \else
+ \expandafter\secondoftwoarguments
+ \fi}
+
+\def\dowithmarkcommandone#1#2% \command {mark}
+ {\expandafter#1\csname\??mk:\markingcoupling{#2}\endcsname}
+
+\def\dowithmarkcommandtwo#1#2#3% \command {mark} {mark}
+ {\expandafter#1\csname\??mk:\markingcoupling{#2}\expandafter\endcsname\csname\??mk:\markingcoupling{#3}\endcsname}
+
+\def\setupmarking
+ {\dodoubleargument\dosetupmarking}
+
+\def\dosetupmarking[#1][#2]%
+ {\def\docommand##1{\getparameters[\??mk##1][#2]}%
+ \processcommalist[#1]\docommand}
+
+%D The filtercommand key is used to hook in a filtering command. Users are
+%D adviced not to misuse this key.
+
+\getparameters
+ [\??mk]
+ [\c!expansion=\v!no, % saves a macro
+ \c!separator={\space\emdash\space},
+ \c!limittext=\@@kolimittext,
+ \c!filtercommand=\firstofoneargument,
+ \c!state=\v!start]
+
+\let\alldefinedmarks\empty
+
+\def\definemarking
+ {\dodoubleempty\dodefinemarking}
+
+\def\dodefinemarking[#1][#2]%
+ {\doifelsenothing{#2}\donormaldefinemarking\docloneddefinemarking[#1][#2]}
+
+\def\donormaldefinemarking[#1][#2]% #2 empty
+ {\ifcsname\??mk#1\s!parent\endcsname
+ % already defined
+ \else
+ \letgvalue{\??mk#1\s!parent}\??mk
+ \dowithmarkcommandone\newmark{#1}%
+ \doglobal\addtocommalist{#2}\alldefinedmarks
+ \ifproductionrun\showmessage\m!systems{13}{#1,[#1]}\fi
+ \fi}
+
+\def\docloneddefinemarking[#1][#2]%
+ {\ifcsname\??mk#1\s!parent\endcsname \else \ifcsname\??mk#2\s!parent\endcsname
+ \doifnot{#1}{#2}%
+ {\setxvalue{\??mk#1\s!parent}{\??mk#2}%
+ \setxvalue{\??mk#1\c!coupling}{#2}%
+ \ifproductionrun\showmessage\m!systems{13}{#1,[#2]}\fi}%
+ \fi \fi}
+
+\def\decouplemarking[#1]%
+ {\letbeundefined{\??mk#1\c!coupling}}
+
+\def\couplemarking[#1]#2[#3]% couple 1 to 2 (this macro is not really needed)
+ {\setvalue{\??mk#1\c!coupling}{#3}}
+
+\def\relatemarking[#1]#2[#3]% define 1 as child of 2
+ {\dowithmarkcommandtwo\addmarkreset{#1}{#3}}
+
+\def\definerawmarking[#1]%
+ {\dododefinemarking[#1][#1]%
+ \getgparameters[\??mk#1][\c!limittext=]} % global !
+
+% \decouplemarking[#1]% % no coupling with sections
+
+\def\fastresetmarker#1%
+ {\ifcsname\??mk#1\s!parent\endcsname
+ \dowithmarkcommandone\resetmark{#1}%
+ \fi}
+
+\def\fastresetmarkerlist[#1]%
+ {\normalexpanded{\noexpand\rawprocesscommalist[#1]}\fastresetmarker}
+
+\def\resetmarking
+ {\dosingleargument\doresetmarking}
+
+\def\doresetmarking[#1]%
+ {\processcommalist[#1]\fastresetmarker}
+
+%D Used elsewhere:
+
+\let\nomarking\empty
+
+%D Basic fetching:
+
+\letvalue{\??mk::\??mk::\v!previous}\firstoffourarguments
+\letvalue{\??mk::\??mk::\v!first }\secondoffourarguments
+\letvalue{\??mk::\??mk::\v!last }\thirdoffourarguments
+\letvalue{\??mk::\??mk::\v!current }\fourthoffourarguments
+
+\letvalue{\??mk\??mk\v!previous}\gettopmark
+\letvalue{\??mk\??mk\v!first }\getfirstmark
+\letvalue{\??mk\??mk\v!last }\getbotmark
+\letvalue{\??mk\??mk\v!current }\getcurrentmark
+
+\letvalue{\??mk\??mk\v!column:\v!first}\getsplitfirstmark
+\letvalue{\??mk\??mk\v!column:\v!last }\getsplitbottommark
+
+\def\fetchmark[#1]#2[#3]% % expandable / never use \unexpanded
+ {\ifcsname\??mk::#1\endcsname % saved mark
+ \markingparameter{#1}\c!filtercommand{\csname\??mk::\??mk::#3\@EA\@EA\@EA\endcsname\csname\??mk::#1\endcsname}%
+ \else\ifcsname\??mk#1\s!parent\endcsname % real mark
+ \markingparameter{#1}\c!filtercommand{\expandafter\dowithmarkcommandone\csname\??mk\??mk#3\endcsname{#1}}%
+ \fi\fi}
+
+\def\fetchtwomarks[#1]%
+ {\dofetchtwomarks[#1][#1]}
+
+\def\fetchallmarks[#1]%
+ {\dofetchallmarks[#1][#1]}
+
+\def\dofetchtwomarks[#1][#2]% class class:tag
+ {\doifsomething{\fetchmark[#2][\v!first]}
+ {\fetchmark[#2][\v!first]%
+ \doifsomething{\fetchmark[#2][\v!last]}
+ {\doifnot{\fetchmark[#2][\v!first]}{\fetchmark[#2][\v!last]}
+ {\markingparameter{#1}\c!separator\fetchmark[#2][\v!last]}}}}
+
+\def\dofetchallmarks[#1][#2]%
+ {\doifsomething{\fetchmark[#2][\v!first]}
+ {\doifsomething{\fetchmark[#2][\v!previous]}
+ {\doifnot{\fetchmark[#2][\v!previous]}{\fetchmark[#2][\v!first]}
+ {\fetchmark[#2][\v!previous]\markingparameter{#1}\c!separator}}}%
+ \fetchtwomarks[#1][#2]}
+
+% \newtoks \everymarking
+
+% \def\Interesting{\doifmodeelse{*\v!marking}{Interesting}{Boring}}
+% \setupheadertexts[chapter]
+% \starttext
+% \chapter{This Is \Interesting}
+% \stoptext
+
+\def\markingnomarking#1{\splitsequence{\markingparameter{#1}\c!limittext}} % #2
+
+\def\dogetmarking[#1][#2][#3]%
+ {\doif{\markingparameter{#1}\c!state}\v!start
+ {\bgroup
+ \setsystemmode\v!marking
+ \the\everymarking
+ \def\nomarking{\markingnomarking{#1}}% just for good old times, might disappear
+ \ifthirdargument
+ \dodogetmarking{#3}{#1}{#1:#2}{#3}%
+ \else
+ \dodogetmarking{#2}{#1}{#1}{#2}%
+ \fi
+ \egroup}}
+
+\def\dodogetmarking#1#2#3#4% to be made faster
+ {\processaction % slow
+ [#1]
+ [ \v!both=>{\dofetchtwomarks[#2][#3]},
+ \v!all=>{\dofetchallmarks[#2][#3]},
+ \s!default=>{\fetchmark[#3][\v!first]},
+ \s!unknown=>{\fetchmark[#3][#4]}]}
+
+\def\nogetmarking[#1][#2][#3]%
+ {}
+
+\unexpanded\def\getmarking
+ {\dotripleargument\dogetmarking}
+
+\let\setsomemark\setmark
+
+\def\setmarking
+ {\dosingleargument\dosetmarking}
+
+\def\dosetmarking[#1]#2%
+ {\ifcsname\??mk#1\s!parent\endcsname
+ \begingroup
+ \doifelse{\markingparameter{#1}\c!expansion}\v!yes\expandmarkstrue\expandmarksfalse
+ \dowithmarkcommandone\setsomemark{#1}{#2}%
+ \endgroup
+ \fi}
+
+\let\marking\setmarking
+
+% to be adapted for mkiv:
+%
+% this version can be used when a page is built up in steps without
+% feedback of the otr'd list to the mvl (i.e.\ a page made of pages,
+% as in column sets where content is buffered)
+
+% reset at begin
+% preset before page
+% bubble in column
+% refresh at end
+
+% marks is a kind of toks, so maybe we need a low level \the\marks
+%
+% use \normalunexpanded here
+
+\def\refreshsavedmark[#1][#2]% mark tag (packing saves many hash entries)
+ {\setxvalue{\??mk::#1:#2}%
+ {{\@EA\ifx\csname\??mk::#1:pp\endcsname\relax
+ % empty
+ \else
+ \csname\??mk::#1:pp\endcsname
+ \fi}%
+ {\@EA\ifx\csname\??mk::#1:ff\endcsname\relax
+ \fetchmark[#1][\v!first]%
+ \else
+ \csname\??mk::#1:ff\endcsname
+ \fi}%
+ {\fetchmark[#1][\v!last]}%
+ {\fetchmark[#1][\v!current]}}%
+ \setxvalue{\??mk::#1:pp}{\fetchmark[#1][\v!first]}%
+ \letgvalue{\??mk::#1:ff}\relax
+ }
+
+\def\bubblesavedmark[#1][#2]% no packing (not now, maybe make a six-pack later)
+ {\@EA\ifx\csname\??mk::#1:ff\endcsname\relax
+ \setxvalue{\??mk::#1:ff}{\fetchmark[#1][\v!first]}%
+ \fi}
+
+\def\resetsavedmark[#1][#2]% mark tag
+ {\doifelsenothing{\fetchmark[#1][\v!previous]}
+ {\letgvalue{\??mk::#1:pp}\relax}
+ {\setxvalue{\??mk::#1:pp}{\fetchmark[#1][\v!previous]}}%
+ \doifelsenothing{\fetchmark[#1][\v!first]}
+ {\letgvalue{\??mk::#1:ff}\relax}
+ {\setxvalue{\??mk::#1:ff}{\fetchmark[#1][\v!first]}}%
+ \letgvalue{\??mk::#1:#2}\emptysavedmark}
+
+\def\presetsavedmark[#1][#2]% mark tag
+ {\letgvalue{\??mk::#1:#2}\emptysavedmark}
+
+\def\emptysavedmark{{}{}{}{}}
+
+% new (can be used in column sets)
+%
+% \getsavedmarking[M][previous]
+% \getsavedmarking[M][first]
+% \getsavedmarking[M][last]
+
+\def\getsavedmarking
+ {\dodoubleargument\dogetsavedmarking}
+
+\def\dogetsavedmarking[#1][#2]%
+ {\doifelse{#2}\v!previous
+ {\getmarking[#1][1][\v!previous]}
+ {\doifelse{#2}\v!first
+ {\getmarking[#1][1][\v!first]}
+ {\getmarking[#1][\v!last]}}}
+
+%D And then \unknown\ we had a chaptertitle packaged in a
+%D makeup environment. And we don't want to loose marks there!
+
+\newbox\collectedmarks
+
+\def\flushmarks % use with care to avoid empty pages
+ {\ifvoid\collectedmarks\else\unhbox\collectedmarks\fi}
+
+\def\postponemarks
+ {\let\setsomemark\postponemark}
+
+\def\postponemark#1#2%
+ {\global\setbox\collectedmarks\hbox{\unhbox\collectedmarks\setmark{#1}{#2}}}
+
+\protect \endinput
+
+% todo: make it work in balancing
+%
+% \definemarking[vers][]
+% \setupheadertexts
+% [\doiftext{\getmarking[vers][first]}
+% {\doiftextelse{\getmarking[vers][column:last]}
+% {\getmarking[vers][first] -- \getmarking[vers][column:last]}
+% {\getmarking[vers][first]}}]
+% \starttext
+% \startcolumns[n=2,balance=no]
+% \dorecurse{10}{\normalexpanded{\noexpand\marking[vers]{\recurselevel}} \recurselevel:\dorecurse{4}{\input ward } \endgraf}
+% \stopcolumns
+% \stoptext
diff --git a/Master/texmf-dist/tex/context/base/strc-mat.lua b/Master/texmf-dist/tex/context/base/strc-mat.lua
new file mode 100644
index 00000000000..ba64bf9db4c
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/strc-mat.lua
@@ -0,0 +1,51 @@
+if not modules then modules = { } end modules ['strc-mat'] = {
+ version = 1.001,
+ comment = "companion to strc-mat.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+structure = structure or { }
+structure.helpers = structure.helpers or { }
+structure.lists = structure.lists or { }
+structure.lists.enhancers = structure.lists.enhancers or { }
+structure.sections = structure.sections or { }
+structure.helpers = structure.helpers or { }
+structure.formulas = structure.formulas or { }
+
+local lists = structure.lists
+local sections = structure.sections
+local floats = structure.floats
+local helpers = structure.helpers
+local formulas = structure.formulas
+
+-- maybe we want to do clever things with formulas, the store might go away
+
+local formuladata = { }
+
+function formulas.store(data)
+ formuladata[#formuladata+1] = data
+ tex.write(#formuladata)
+end
+
+function formulas.current()
+ return formuladata[#formuladata]
+end
+
+function helpers.formulanumber(data,spec)
+ if data then
+ local formulanumber = data.formulanumber
+ if formulanumber then
+ sections.number(data,spec,"formulanumber","formulanumber",'number')
+ end
+ end
+end
+
+function formulas.simplify(entry)
+ return helpers.simplify(table.copy(entry or formuladata[#formuladata]))
+end
+
+function lists.formulanumber(name,n,spec)
+ helpers.formulanumber(lists.result[n])
+end
diff --git a/Master/texmf-dist/tex/context/base/core-mat.tex b/Master/texmf-dist/tex/context/base/strc-mat.mkii
index a74d5f90eda..0d32cb29864 100644
--- a/Master/texmf-dist/tex/context/base/core-mat.tex
+++ b/Master/texmf-dist/tex/context/base/strc-mat.mkii
@@ -1,7 +1,7 @@
%D \module
-%D [ file=core-mat,
+%D [ file=strc-mat,
%D version=2006.03.27, % 1998.12.07
-%D title=\CONTEXT\ Core Macros,
+%D title=\CONTEXT\ Structure Macros,
%D subtitle=Math Fundamentals,
%D author={Hans Hagen, Taco Hoekwater \& Aditya Mahajan},
%D date=\currentdate,
@@ -13,7 +13,7 @@
% engels maken
-\writestatus{loading}{Context Core Macros / Math Fundamentals}
+\writestatus{loading}{ConTeXt Structure Macros / Math Fundamentals}
\unprotect
@@ -31,16 +31,10 @@
% \definemessageconstant{math}
-% \startmessages all library: math
-% title: math
-% 1: don't use -- here (line \the\inputlineno)
-% \stopmessages
+% % messages moved
% \def\invalidmathcommand#1{\showmessage\m!math1{#1}}
-% \let\normaleqno \eqno
-% \let\normalleqno\leqno
-
% \appendtoks
% \def\eqno {\invalidmathcommand{\string\eqno }}%
% \def\leqno{\invalidmathcommand{\string\leqno}}%
@@ -55,7 +49,7 @@
% H(K|M,C) = H(K|C) - H(M|C)\eqno{\hbox{(\in{}[eq:keyapp])}}
% \stopformula
-\def\mathortext
+\unexpanded\def\mathortext
{\ifmmode
\expandafter\firstoftwoarguments
\else
@@ -342,11 +336,11 @@
\switchtoformulabodyfont[#2]%
\parskip\formulaparskip
\def\currentformula{#1}%
-% may look better in itemizations
-\doif{\formulaparameter\c!option}\v!middle
- {\def\leftdisplayskip{\zeropoint}%
- \def\rightdisplayskip{\zeropoint}}%
-% this was an experiment
+ % may look better in itemizations
+ \doif{\formulaparameter\c!option}\v!middle
+ {\def\leftdisplayskip{\zeropoint}%
+ \def\rightdisplayskip{\zeropoint}}%
+ % this was an experiment
\doifsomething{\formulaparameter\c!margin}% so we test first
{\dosetleftskipadaption{\formulaparameter\c!margin}%
\edef\leftdisplaymargin{\the\leftskipadaption}}% overloaded
@@ -415,9 +409,13 @@
\beforedisplayspace
\par
\ifvmode
- \verticalstrut
- \vskip-\struttotal
- \vskip-\baselineskip
+ \ifindentfirstparagraph % tricky, probably needs more testing
+ \prevdepth-\maxdimen % texbook pagina 79-80
+ % otherwise problems at the top of a page, don't remove:
+ \verticalstrut
+ \vskip-\struttotal
+ \vskip-\baselineskip
+ \fi
\fi
\fi
$$\setdisplaydimensions
@@ -515,8 +513,6 @@
[\c!indentnext=\v!yes,
\c!alternative=multi]
-% in m-math
-%
% \defineformulaalternative[multi][\begindmath][\enddmath]
%
% \fakewords{20}{40}\epar
@@ -622,8 +618,8 @@
\setupsubformulas
[\c!conversion=\v!character,
-% \c!separator=\@@fmseparator,
- \c!separator=,%AM: for compatibility with \placesubformula
+ %\c!separator=\@@fmseparator,
+ \c!separator=,% AM: for compatibility with \placesubformula
\c!indentnext=\@@fmindentnext]
%D Experimental goodie:
@@ -666,8 +662,7 @@
\ifx\next\bgroup
\egroup \@EA\moreplaceformula % [ref]{}
\else
-% \def\nextnext{$}%
- \let\nextnext$%
+ \let\nextnext$% no def
\ifx\next\nextnext
\egroup \@EAEAEA\dispplaceformula % [ref]$$
\else
@@ -679,8 +674,7 @@
\long\def\moreplaceformula[#1]#2#3#4% #2 dummy #4 gobbles spaces
{\def\redoplaceformula
{\bgroup
-% \def\nextnext{$}%
- \let\nextnext$%
+ \let\nextnext$% no def
\ifx\next\nextnext
\egroup \@EA\dispplaceformula % [ref]$$
\else
@@ -720,9 +714,6 @@
\def\dispplaceformula[#1]#2$$#3$$%
{\dodoplaceformula[#1]{#2}\dostartformula{}#3\dostopformula}
-\let\normalreqno\eqno
-\let\normalleqno\leqno
-
\let\donestedformulanumber\gobbletwoarguments
\def\dodoplaceformula[#1]#2% messy, needs a clean up
@@ -770,6 +761,8 @@
%D The next code is derived from plain \TEX.
+\newcount\interdisplaylinepenalty \interdisplaylinepenalty=100
+
\newif\ifdt@p
\def\displ@y
@@ -779,7 +772,7 @@
{\noalign
{\ifdt@p
\global\dt@pfalse
- \ifdim\prevdepth>-1000\p@
+ \ifdim\prevdepth>-\thousandpoint
\vskip-\lineskiplimit
\vskip\normallineskiplimit
\fi
@@ -791,7 +784,7 @@
\def\displ@y{\resetdisplaymatheq\normaldispl@y}
-\def\m@th{\mathsurround\z@}
+\def\m@th{\mathsurround\zeropoint} % obsolete
%D Here we implement a basic math alignment mechanism. Numbers
%D are also handled. The macros \type {\startinnermath} and
@@ -1033,7 +1026,7 @@
%D some \PLAIN\ macros.
\def\@@dobig#1#2%
- {{\hbox{$\left#2\vbox\!!to#1\bodyfontsize{}\right.\n@space$}}}
+ {{\hbox{$\left#2\vbox\!!to#1\bodyfontsize{}\right.\nulldelimiterspace\zeropoint\relax\mathsurround\zeropoint$}}}
\def\big {\@@dobig{0.85}}
\def\Big {\@@dobig{1.15}}
@@ -2556,8 +2549,8 @@
\def\startsubstack
{\begingroup
\vcenter\bgroup
- \baselineskip\dimexpr\fontdimen10 \scriptfont\plustwo + \fontdimen12 \scriptfont\plustwo\relax
- \lineskip\plusthree\fontdimen8 \scriptfont\plusthree
+ \baselineskip\mathstacktotal
+ \lineskip\mathstackvgap
\lineskiplimit\lineskip
\let\stopmathmode\relax
\def\NC{\domatrixNC}%
@@ -2648,8 +2641,32 @@
\def\dofrac#1#2#3{\relax\mathematics{{{#1{#2}}\over{#1{#3}}}}}
+% \unexpanded\def\frac
+% {\dofrac\mathstyle}
+%
+% \chardef\mathfracmode=0 $\frac{1}{2}$
+% \chardef\mathfracmode=1 $\frac{1}{2}$
+% \chardef\mathfracmode=2 $\frac{1}{2}$
+% \chardef\mathfracmode=3 $\frac{1}{2}$
+% \chardef\mathfracmode=4 $\frac{1}{2}$
+% \chardef\mathfracmode=5 $\frac{1}{2}$
+
+\chardef\mathfracmode=0 % 0=mathstyle, 1=displaystyle, 2=textstyle, 3=scriptstyle, 4=scriptscriptstyle
+
\unexpanded\def\frac
- {\dofrac\mathstyle}
+ {\ifcase\mathfracmode
+ \expandafter\dofrac\expandafter\mathstyle
+ \or
+ \expandafter\dofrac\expandafter\displaystyle
+ \or
+ \expandafter\dofrac\expandafter\textstyle
+ \or
+ \expandafter\dofrac\expandafter\scriptstyle
+ \or
+ \expandafter\dofrac\expandafter\scriptscriptstyle
+ \else
+ \expandafter\dofrac\expandafter\mathstyle
+ \fi}
\unexpanded\def\xfrac#1#2%
{\begingroup
@@ -2841,10 +2858,10 @@
\def\mathboldsymbol#1%
{\preparebinrel{#1}%
\currentbinrel{\mathchoice
- {\hbox{\switchtoformulabodyfont [boldmath]$\m@th#1$}}
- {\hbox{\switchtoformulabodyfont [boldmath]$\m@th#1$}}
- {\hbox{\switchtoformulabodyfont [boldmath,script]$\m@th#1$}}
- {\hbox{\switchtoformulabodyfont[boldmath,scriptscript]$\m@th#1$}}}}
+ {\hbox{\switchtoformulabodyfont [boldmath]$\mathsurround\zeropoint#1$}}
+ {\hbox{\switchtoformulabodyfont [boldmath]$\mathsurround\zeropoint#1$}}
+ {\hbox{\switchtoformulabodyfont [boldmath,script]$\mathsurround\zeropoint#1$}}
+ {\hbox{\switchtoformulabodyfont[boldmath,scriptscript]$\mathsurround\zeropoint#1$}}}}
\def\boldsymbol
{\mathortext\mathboldsymbol\bold}
@@ -2880,6 +2897,7 @@
\def\dealwithmathtextencoding
{\expanded{\everyhbox{\the\everyhbox\noexpand\fastenableencoding{\currentencoding}}}%
+ \expanded{\everyvbox{\the\everyvbox\noexpand\fastenableencoding{\currentencoding}}}%
\def\dealwithmathtextencoding{\let\characterencoding\nocharacterencoding}%
\dealwithmathtextencoding}
diff --git a/Master/texmf-dist/tex/context/base/strc-mat.mkiv b/Master/texmf-dist/tex/context/base/strc-mat.mkiv
new file mode 100644
index 00000000000..097b1d71059
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/strc-mat.mkiv
@@ -0,0 +1,935 @@
+%D \module
+%D [ file=strc-mat,
+%D version=2008.10.20,
+%D title=\CONTEXT\ Structure Macros,
+%D subtitle=Math Numbering,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA-ADE / Hans Hagen]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Structure Macros / Math Numbering}
+
+\registerctxluafile{strc-mat}{1.001}
+
+\unprotect
+
+\definestructureconversionset[\v!formula][number,characters]
+
+\setupformulas
+ [%\c!way=\@@nrway,
+ %\c!blockway=,
+ %\c!sectionnumber=\@@nrsectionnumber,
+ %\c!conversion=\v!numbers,
+ \c!location=\v!right,
+ \c!left=(,
+ \c!right=),
+ %\c!numberstyle=,
+ %\c!numbercolor=,
+ %\c!numbercommand=,
+ \c!spacebefore=\v!big,
+ \c!spaceafter=\formulaparameter\c!spacebefore,
+ \c!leftmargin=\!!zeropoint,
+ \c!rightmargin=\!!zeropoint,
+ %\c!margin=,
+ \c!indentnext=\v!no,
+ \c!alternative=\s!default,
+ %\c!align=,
+ \c!strut=\v!no,
+ %\c!separator=\@@koseparator,
+ %\c!grid=,
+ \c!distance=1em]
+
+\definestructurecounter
+ [\v!formula]
+
+\setupstructurecounter
+ [\v!formula]
+ [\c!numberconversionset=\v!formula]
+
+\def\storecurrentformulanumber#1#2#3#4% ref, todo:str, \sync % todo: title etc (like float)
+ {\dostructurecountercomponent
+ {formula}%
+ \getfloatparameters
+ \formulaparameter
+ \detokenizedformulaparameter
+ \relax
+ \relax
+ \relax
+ [\c!name=\currentformula,\s!counter=\currentformula,%
+ \s!hascaption=\v!yes,\s!hasnumber=\v!yes,\s!hastitle=\v!yes,%
+ \c!reference=#1,\c!title=,\c!bookmark=]%
+ [#2]%
+ \globallet\currentformulanumber\laststructurecounternumber
+ \globallet#3\laststructurecountersynchronize
+ \globallet#4\laststructurecounterattribute}
+
+\def\thecurrentformulanumber
+ {%\ifnoformulacaption \else \ifnoformulanumber \else
+ \labeltexts\currentformula{\convertedstructurecounter[formula]}% ! ! todo: use a lua call instead
+ }%\fi \fi}
+
+\def\placecurrentformulanumber
+ {\currentformulassynchronize \currentformulasattribute % todo
+ \currentformulasynchronize \currentformulasattribute % todo
+ \currentsubformulasynchronize \currentsubformulaattribute % todo
+ \thecurrentformulanumber}
+
+\def\doformulanumber
+ {\dotripleempty\dodoformulanumber}
+
+\def\dodoformulanumber[#1][#2][#3]%
+ {\doquadruplegroupempty\dododoformulanumber{#1}{#2}{#3}}
+
+\let\subformulasreference\empty % temp hack
+
+\let\currentformulasynchronize \relax \let\currentformulaattribute \relax
+\let\currentsubformulasynchronize\relax \let\currentsubformulaattribute\relax
+\let\currentformulassynchronize \relax \let\currentformulasattribute \relax
+
+\def\dododoformulanumber#1#2#3#4% (#1,#2)=outer(ref,sub) (#3,#4)=inner(ref,sub)
+ {\hbox\bgroup
+ \ifconditional\handleformulanumber
+ \ifconditional\incrementformulanumber
+ \ifconditional\insidesubformulas
+ \incrementsubstructurecounter[\v!formula][2]%
+ \else
+ \incrementstructurecounter[\v!formula]%
+ \fi
+ \fi
+ %
+ % main counter
+ \setbox0\hbox{\ignorespaces#2\unskip}%
+ \ifdim\wd0>\zeropoint
+ \setsubstructurecounterown[\v!formula][2]{#2}% \detokenize?
+ \fi
+ \edef\currentformulareference{#1}%
+ \ifx\currentformulareference\empty
+ \glet\currentformulasynchronize\relax
+ \glet\currentformulaattribute \relax
+ \else
+ \storecurrentformulanumber\currentformulareference\empty\currentformulasynchronize\currentformulaattribute
+ \fi
+ % subcounter
+ \setbox0\hbox{\ignorespaces#4\unskip}%
+ \ifdim\wd0>\zeropoint
+ \setsubstructurecounterown[\v!formula][2]{#4}% \detokenize?
+ \fi
+ \edef\currentsubformulareference{#3}%
+ \ifx\currentsubformulareference\empty
+ \glet\currentsubformulasynchronize\relax
+ \glet\currentsubformulaattribute \relax
+ \else
+ \storecurrentformulanumber\currentsubformulareference\empty\currentsubformulasynchronize\currentsubformulaattribute
+ \fi
+ %
+ \rm % nodig ?
+ \doif{\formulaparameter\c!location}\v!right{\hskip\formulaparameter\c!distance}%
+ \formulaparameter\c!numbercommand
+ {\dosetformulaattributes\c!numberstyle\c!numbercolor
+ \strut
+ \formulaparameter\c!left
+ \labeltexts\v!formula{\ignorespaces\placecurrentformulanumber\unskip}%
+ \formulaparameter\c!right}%
+ \doif{\formulaparameter\c!location}\v!left{\hskip\formulaparameter\c!distance}%
+ \fi
+ \egroup}
+
+\let\donestedformulanumber\gobbletwoarguments
+
+\definelist[\v!formula]
+
+\global\let\doflushformulalistentry\gobbleoneargument
+
+\def\setformulalistentry#1%
+ {\gdef\doflushformulalistentry##1%
+ {\normalexpanded{\noexpand\writetolist[\v!formula]{##1}}{#1}%
+ \global\let\doflushformulalistentry\gobbleoneargument}}
+
+\newconditional\handleformulanumber
+\newconditional\incrementformulanumber
+\newconditional\insidesubformulas
+
+\newif\ifinformula
+
+\let\doplaceformulanumber\empty
+
+%D We need a hook into the plain math alignment macros
+%D
+%D \starttyping
+%D \displaylines
+%D \eqalignno
+%D \eqalignno
+%D \stoptyping
+%D
+%D Otherwise we get a missing \type {$$} error reported.
+
+\def\resetdisplaymatheq
+ {\let\normalleqno\relax \let\leqno\relax
+ \let\normalreqno\relax \let\eqno \relax
+ \let\doplaceformulanumber\empty}
+
+%D
+
+\def\defineformula
+ {\dodoubleempty\dodefineformula}
+
+\def\dodefineformula[#1][#2]%
+ {\doifsomething{#1}
+ {\getparameters[\??fm#1][\s!parent=\??fm,#2]%
+ \definelist[#1]%
+ \setvalue{\e!start#1\v!formula}{\dostartformula{#1}}%
+ \setvalue{\e!stop #1\v!formula}{\dostopformula}}}
+
+\def\defineformulaalternative
+ {\dotripleargument\dodefineformulaalternative}
+
+\def\dodefineformulaalternative[#1][#2][#3]%
+ {\setvalue{\e!start#1\v!formula}{#2}%
+ \setvalue{\e!stop #1\v!formula}{#3}}
+
+% sp = single line paragraph sd = single line display
+% mp = multi line paragraph md = multy line display
+
+\defineformulaalternative[\s!default][\startdisplaymath][\stopdisplaymath]
+\defineformulaalternative[\s!single] [\startdisplaymath][\stopdisplaymath]
+\defineformulaalternative[\s!multi] [\startdisplaymath][\stopdisplaymath]
+
+\defineformula
+ [sp]
+ [\c!spacebefore=\v!none,
+ \c!spaceafter=\v!none,
+ \c!indentnext=\v!no,
+ \c!alternative=\s!single]
+
+\defineformula
+ [sd]
+ [\c!spacebefore=\v!none,
+ \c!spaceafter=\v!none,
+ \c!indentnext=\v!yes,
+ \c!alternative=\s!single]
+
+\defineformula
+ [mp]
+ [\c!indentnext=\v!no,
+ \c!alternative=\s!multi]
+
+\defineformula
+ [md]
+ [\c!indentnext=\v!yes,
+ \c!alternative=\s!multi]
+
+%D \macros
+%D {setupsubformulas, startsubformulas}
+
+\def\subformulaparameter#1{\ifcname\??fn#1\endcsname\cname\??fn#1\endcsname\fi}
+
+\def\setupsubformulas
+ {\dodoubleargument\getparameters[\??fn]}
+
+\setupsubformulas
+ [\c!indentnext=\formulaparameter\c!indentnext]
+
+% \setupsubformulas[conversion=romannumerals]
+%
+% \placeformula
+% \startsubformulas[Maxwell]
+% \startformulas
+% \startformula \startalign
+% \NC \nabla\cdot\bf E \NC = \frac{\rho}{\varepsilon_0} \NR[Maxwell 1]
+% \NC \nabla\times\bf E \NC = - \frac{\partial\bf B}{\partial t} \NR[Maxwell II]
+% \stopalign \stopformula
+% \startformula \startalign
+% \NC \nabla\cdot \bf B \NC = 0 \NR[Maxwell III]
+% \NC \nabla\times\bf B \NC = \mu_0{\bf j}+\varepsilon_0\mu_0\frac{\partial\bf E}{\partial t} \NR[Maxwell IV]
+% \stopalign \stopformula
+% \stopformulas
+% \stopsubformulas
+%
+% Maxwell : \in [Maxwell] and II : \in [Maxwell II]
+
+%D Tricky stuff:
+
+\newdimen\lastlinewidth
+
+% test \par \dorecurse{10}{test } \moveformula \startformula test \stopformula test \endgraf
+% test \par \dorecurse{10}{test } \startformula test \stopformula test \endgraf
+% \dorecurse{30}{\bpar \dorecurse\recurselevel{test } \epar \startformula formula \stopformula}
+
+\def\setlastlinewidth
+ {\resetlastlinewidth
+ \ifoptimizedisplayspacing\ifmmode\else\ifhmode
+ \bgroup
+ \forgetdisplayskips
+ \displaywidowpenalty\widowpenalty % brrr, else widowpenalty does not work
+ \everymath \emptytoks
+ \everydisplay\emptytoks
+ $$\strut\global\lastlinewidth\predisplaysize$$
+ \vskip-\lineheight
+ \vskip\zeropoint
+ \egroup
+ \fi\fi\fi}
+
+\def\resetlastlinewidth
+ {\global\lastlinewidth\zeropoint\relax}
+
+\abovedisplayskip \zeropoint
+\abovedisplayshortskip \zeropoint % evt. 0pt minus 3pt
+\belowdisplayskip \zeropoint
+\belowdisplayshortskip \zeropoint % evt. 0pt minus 3pt
+
+\predisplaypenalty \zerocount
+\postdisplaypenalty \zerocount % -5000 gaat mis, zie penalty bij \paragraaf
+
+% we don't use the skip's
+
+\def\displayskipsize#1#2% obsolete
+ {\ifdim\ctxparskip>\zeropoint
+ #1\ctxparskip\!!plus#2\ctxparskip\!!minus#2\ctxparskip\relax
+ \else
+ #1\lineheight\!!plus#2\lineheight\!!minus#2\lineheight\relax
+ \fi}
+
+\def\forgetdisplayskips % to do
+ {\abovedisplayskip \zeropoint
+ \belowdisplayskip \zeropoint
+ \abovedisplayshortskip\zeropoint
+ \belowdisplayshortskip\zeropoint}
+
+\setvalue{\e!start\v!formula}{\dostartformula{}}
+\setvalue{\e!stop \v!formula}{\dostopformula}
+
+\def\predisplaysizethreshhold{2em} % was 3em
+
+\def\leftdisplayskip {\leftskip}
+\def\rightdisplayskip {\rightskip}
+\def\leftdisplaymargin {\formulaparameter\c!leftmargin}
+\def\rightdisplaymargin {\formulaparameter\c!rightmargin}
+\def\displaygridsnapping{\formulaparameter\c!grid}
+
+\def\beforedisplayspace
+ {\doifnot{\formulaparameter\c!spacebefore}\v!none{\blank[\formulaparameter\c!spacebefore]}}
+
+\def\afterdisplayspace
+ {\doifnot{\formulaparameter\c!spaceafter }\v!none{\blank[\formulaparameter\c!spaceafter ]}}
+
+\def\setpredisplaysize#1%
+ {\predisplaysize#1\relax
+ \ifdim\predisplaysize<\maxdimen
+ \ifdim\predisplaysize>\zeropoint
+ \advance\predisplaysize \predisplaysizethreshhold
+ \fi
+ \advance\predisplaysize \displayindent % needed ?
+ \ifdim\predisplaysize>\hsize
+ \predisplaysize\hsize
+ \fi
+ \else
+ \predisplaysize\zeropoint
+ \fi}
+
+\def\setdisplaydimensions
+ {\displayindent\leftdisplayskip
+ \advance\displayindent\leftdisplaymargin
+ \displaywidth\hsize
+% \setlocalhsize
+% \displaywidth\localhsize
+ \ifdim\hangindent>\zeropoint
+ \advance\displayindent\hangindent
+ \else
+ \advance\displaywidth\hangindent
+ \fi
+ \advance\displaywidth\dimexpr-\displayindent-\rightdisplayskip-\rightdisplaymargin\relax
+ \hsize\displaywidth} % new, else overfull in itemize
+
+\newif\ifoptimizedisplayspacing
+
+\def\dostartformula#1%
+ {\dodoubleempty\dodostartformula[#1]}
+
+\newskip\formulaparskip
+\newskip\formulastrutht
+\newskip\formulastrutdp
+
+% hm, invoke otr in hmode in order to move skips to mvl, could be an option
+
+%D \startbuffer
+%D \startformula[9pt] x = 1 \stopformula
+%D \startformula[7pt] x = 1 \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+
+\def\dodostartformula[#1][#2]% setting leftskip adaption is slow !
+ {% todo: test first
+ %
+ % \ifdim\lastskip>\zeropoint
+ % \resetlastlinewidth % else problems with in between stuff without \epar
+ % \fi
+ \bgroup % HERE
+ \def\currentformula{#1}%
+ \the\everybeforedisplayformula
+ \formulaparskip\parskip
+ \formulastrutdp\strutdepth
+ \formulastrutht\strutheight
+ \doifsomething{#2}{\switchtoformulabodyfont[#2]}%
+ \parskip\formulaparskip
+ % may look better in itemizations
+ \doif{\formulaparameter\c!option}\v!middle
+ {\def\leftdisplayskip{\zeropoint}%
+ \def\rightdisplayskip{\zeropoint}}%
+ % this was an experiment
+ \doifsomething{\formulaparameter\c!margin}% so we test first
+ {\dosetleftskipadaption{\formulaparameter\c!margin}%
+ \edef\leftdisplaymargin{\the\leftskipadaption}}% overloaded
+ \long\def\dostartformula##1{\bgroup\let\dostopformula\egroup}%
+ \freezedimenmacro\leftdisplayskip
+ \freezedimenmacro\rightdisplayskip
+ \freezedimenmacro\leftdisplaymargin
+ \freezedimenmacro\rightdisplaymargin
+ \freezedimenmacro\predisplaysizethreshhold
+ \forgetdisplayskips
+ \ifoptimizedisplayspacing
+ \ifdim\lastlinewidth>\zeropoint
+ \abovedisplayshortskip-\strutht\relax
+ \fi
+ \else
+ \resetlastlinewidth
+ \fi
+ \getvalue{\e!start\formulaparameter\c!alternative\v!formula}}
+
+\def\switchtoformulabodyfont{\switchtobodyfont}
+
+\setvalue{\v!formula}{\dosingleempty\doformula}
+
+\def\doformula[#1]#2%
+ {\begingroup
+ \doifsomething{#1}{\switchtoformulabodyfont[#1]}%
+ % not : \def\doformula[##1]##2{\mathematics{##2}}%
+ \mathematics{#2}%
+ \endgroup}
+
+\def\dostopformula
+ {\doplaceformulanumber
+ \getvalue{\e!stop\formulaparameter\c!alternative\v!formula}%
+ \resetlastlinewidth
+ \nonoindentation
+ \checknextindentation[\formulaparameter\c!indentnext]%
+ \egroup
+ \hangafter\minusone % added for side floats
+ \hangindent\zeropoint % added for side floats
+ \setfalse\handleformulanumber
+ \dorechecknextindentation} % here ?
+
+\def\startdisplaymath
+ {\ifgridsnapping
+ \beforedisplayspace
+ \snapmathtogrid\vbox
+ \bgroup
+ \informulatrue
+ %\forgetall % breaks side floats
+ \else
+ \bgroup
+ \parskip\formulaparskip % ! !
+ \informulatrue
+ %\forgetall % otherwise backgrounds fail
+ \ifdim\lastskip<\zeropoint\else
+ \par
+ \ifvmode \ifdim\parskip>\zeropoint\relax
+ \whitespace \vskip-\parskip % kind of forces and cancels again
+ \fi \fi
+ \fi
+ \doif\displaygridcorrection{-\v!top}{\kern-\strutht}% new, currently only option/default
+ \beforedisplayspace
+ \par
+ \ifvmode
+ \prevdepth-\maxdimen % texbook pagina 79-80
+ % otherwise problems at the top of a page
+ \verticalstrut
+ \vskip-\struttotal
+ \vskip-\baselineskip
+ \fi
+ \fi
+ $$\setdisplaydimensions
+ \setpredisplaysize\lastlinewidth
+ \startinnermath}
+
+\def\stopdisplaymath
+ {\stopinnermath
+ $$%
+ \ifgridsnapping
+ \egroup
+ \afterdisplayspace
+ \else
+ \par\ifvmode\ifdim\parskip>\zeropoint\whitespace\vskip-\parskip\fi\fi
+ \afterdisplayspace
+ \egroup
+ \fi
+ \globallet\displaylinecorrection\empty
+ \gdef\displaygridcorrection{\displaygridsnapping}}
+
+\newif\ifclipdisplaymath \clipdisplaymathtrue
+\def\displaymathclipfactor{1.1}
+
+\def\snapmathtogrid % to do \dp
+ {\dowithnextbox
+ {\bgroup
+ \donefalse
+ \ifclipdisplaymath
+ \ifdim\nextboxht<\displaymathclipfactor\lineheight
+ \donetrue
+ \fi
+ \fi
+ \ifdone
+ \nextboxht\lineheight
+ \else
+ \getnoflines\nextboxht
+ \setbox\nextbox\vbox to \noflines\lineheight{\vfill\flushnextbox\vfill}%
+ \setbox\nextbox\hbox{\lower\strutdepth\flushnextbox}%
+ \fi
+ \snaptogrid[\displaygridcorrection]\hbox{\flushnextbox}%
+ \egroup}}
+
+\def\displaygridcorrection{\displaygridsnapping}
+\let\displaygridcorrection\empty
+
+\def\moveformula
+ {\dosingleempty\domoveformula}
+
+\def\domoveformula[#1]% brr gaat mogelijk fout
+ {\iffirstargument
+ \xdef\displaygridcorrection{#1}%
+ \else
+ \gdef\displaygridcorrection{-\v!top}% handy with short preline
+ \fi
+ \globallet\displaylinecorrection\displaygridcorrection}
+
+\let\startinnermath\empty
+\let\stopinnermath \empty
+
+% \defineformulaalternative[multi][\begindmath][\enddmath]
+%
+% \fakewords{20}{40}\epar
+% \placeformula {a} $$ \fakespacingformula $$
+% \fakewords{20}{40}\epar
+% \placeformula {b} \startformule \fakespacingformula \stopformule
+% \placeformula {b} \startformule \fakespacingformula \stopformule
+% \fakewords{20}{40}\epar
+% \placeformula {c} \startmdformule \fakespacingformula \stopmdformule
+% \placeformula {c} \startmdformule \fakespacingformula \stopmdformule
+% \fakewords{20}{40}\epar
+% \placeformula {d} \startmpformule \fakespacingformula \stopmpformule
+% \placeformula {d} \startmpformule \fakespacingformula \stopmpformule
+% \fakewords{20}{40}\epar
+% \placeformula {e} \startsdformule \fakespacingformula \stopsdformule
+% \placeformula {e} \startsdformule \fakespacingformula \stopsdformule
+% \fakewords{20}{40}\epar
+% \placeformula {f} \startspformule \fakespacingformula \stopspformule
+% \placeformula {f} \startspformule \fakespacingformula \stopspformule
+% \fakewords{20}{40}
+
+\def\placeformula
+ {\settrue\incrementformulanumber
+ \dodoubleempty\doplaceformula}
+
+\def\placesubformula
+ {\setfalse\incrementformulanumber
+ \dodoubleempty\doplaceformula}
+
+\def\startsubformulas
+ {\dosingleempty\dostartsubformulas}
+
+\def\dostartsubformulas[#1]%
+ {\ifconditional\incrementformulanumber
+ \incrementstructurecounter[\v!formula]%
+ \edef\subformulasreference{#1}% messy
+ \ifx\subformulasreference\empty
+ \glet\currentformulassynchronize\relax
+ \glet\currentformulasattribute \relax
+ \else
+ \storecurrentformulanumber\subformulasreference\empty\currentformulassynchronize\currentformulasattribute
+ \fi
+ \fi
+ \settrue\insidesubformulas}
+
+\def\stopsubformulas
+ {\setfalse\insidesubformulas
+ \resetlastlinewidth
+ \nonoindentation
+ \checknextindentation[\formulaparameter\c!indentnext]%
+ \dorechecknextindentation} % here ?
+
+%D Named subformulas
+
+\def\startnamedsubformulas
+ {\dosingleempty\dostartnamedsubformulas}
+
+\def\dostartnamedsubformulas[#1]#2%
+ {\setformulalistentry{#2}%
+ \startsubformulas[#1]}
+
+\def\stopnamedsubformulas
+ {\stopsubformulas}
+
+%D Experimental goodie:
+%D
+%D \startbuffer
+%D \placelist[formula][criterium=text] \blank[2*big]
+%D \placenamedformula[one]{first} \startformula a = 1 \stopformula \endgraf
+%D \placeformula \startformula a = 2 \stopformula \endgraf
+%D \placenamedformula {second} \startformula a = 3 \stopformula \endgraf
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+
+\def\placenamedformula
+ {\dosingleempty\doplacenamedformula}
+
+\def\doplacenamedformula[#1]#2%
+ {\iffirstargument
+ \def\next{\placeformula[#1]}%
+ \else
+ \let\next\placeformula
+ \fi
+ \setformulalistentry{#2}%
+ \next}
+
+%D The implementation of placement is a bit ugly:
+
+\def\doplaceformula[#1][#2]% #2 = dummy, gobbles spaces
+ {\def\redoplaceformula
+ {\bgroup
+ \ifx\next\bgroup
+ \egroup \@EA\moreplaceformula % [ref]{}
+ \else
+ \let\nextnext$% no def
+ \ifx\next\nextnext
+ \egroup \@EAEAEA\dispplaceformula % [ref]$$
+ \else
+ \egroup \@EAEAEA\dodoplaceformula % [ref]\start
+ \fi
+ \fi[#1]{}}%
+ \futurelet\next\redoplaceformula}
+
+\long\def\moreplaceformula[#1]#2#3#4% #2 dummy #4 gobbles spaces
+ {\def\redoplaceformula
+ {\bgroup
+ \let\nextnext$% no def
+ \ifx\next\nextnext
+ \egroup \@EA\dispplaceformula % [ref]$$
+ \else
+ \egroup \@EA\dodoplaceformula % [ref]\start
+ \fi
+ [#1]{#3}}%
+ \futurelet\next\redoplaceformula#4}
+
+\let\startplaceformula\placeformula
+\let\stopplaceformula \relax
+
+\def\startformulas#1\stopformulas % new / to be internationalized
+ {\bgroup
+ \let\currentformula\empty
+ \forgetdisplayskips
+ \startdisplaymath
+ \setlocalhsize
+ \long\def\startformula##1\stopformula
+ {\advance\scratchcounter\plusone}%
+ \scratchcounter\zerocount
+ #1% preroll
+ \ifcase\scratchcounter\else
+ \divide \hsize \scratchcounter
+ \fi
+ \hbox to \localhsize \bgroup
+ \hss
+ \def\normalstartformula{\vskip-\strutdepth$$}% i hate this
+ \def\normalstopformula {$$}%
+ \def\startformula {$\vcenter\bgroup\normalstartformula}%
+ \def\stopformula {\normalstopformula\egroup$\hss}%
+ #1%
+ \egroup
+ \stopdisplaymath
+ \egroup
+ \hangafter\minusone % added for side floats
+ \hangindent\zeropoint} % added for side floats
+
+\def\dispplaceformula[#1]#2$$#3$$%
+ {\dodoplaceformula[#1]{#2}\dostartformula{}#3\dostopformula}
+
+\def\dodoplaceformula[#1]#2% messy, needs a clean up
+ {\doifelse{#1}{-}
+ {\setfalse\handleformulanumber}
+ {\doifelse{#2}{-}
+ {\setfalse\handleformulanumber}
+ {\settrue\handleformulanumber}}%
+ \ifconditional\handleformulanumber
+ \def\formulanumber
+ {%\global\let\subformulanumber\doformulanumber % no, bug
+ \doformulanumber[#1][#2]}%
+ \def\donestedformulanumber##1##2%
+ {\doifsomething{##1}
+ {\doifelse{##1}{+}{\doformulanumber[#1]}{\doformulanumber[##1]}[##2][]{}}}%
+ \def\subformulanumber
+ {\setfalse\incrementformulanumber
+ \formulanumber}%
+ \gdef\doplaceformulanumber
+ {\global\let\doplaceformulanumber\empty
+ \doifelse{\formulaparameter\c!location}\v!left
+ {\normalleqno{\doformulanumber[#1][#2][]{}}}
+ {\normalreqno{\doformulanumber[#1][#2][]{}}}}%
+ \else
+ \def\formulanumber{\doformulanumber[#1][#2]}%
+ \let\donestedformulanumber\gobbletwoarguments
+ \let\subformulanumber\doformulanumber % was \global
+ \global\let\doplaceformulanumber\empty
+ \fi}
+
+%D Here we implement a basic math alignment mechanism. Numbers
+%D are also handled. The macros \type {\startinnermath} and
+%D \type {\stopinnermath} can be overloaded in specialized
+%D modules.
+
+\def\startinnermath
+ {\getvalue{\e!start\??fm\formulaparameter\c!align}}
+
+\def\stopinnermath
+ {\getvalue{\e!stop \??fm\formulaparameter\c!align}}
+
+\def\mathinnerstrut
+ {\doif{\formulaparameter\c!strut}\v!yes\strut}
+
+\long\def\defineinnermathhandler#1#2#3%
+ {\setvalue{\e!start\??fm#1}{#2}%
+ \setvalue{\e!stop \??fm#1}{#3}}
+
+\newif\iftracemath
+
+\def\mathhbox
+ {\iftracemath\ruledhbox\else\hbox\fi}
+
+\chardef\mathraggedstatus=0 % normal left center right
+\chardef\mathnumberstatus=0 % nothing normal shift_right
+\let\mathnumbercorrection\!!zeropoint
+
+\def\startmathbox#1%
+ {\hsize\displaywidth
+ \global\chardef\mathnumberstatus\plusone
+ \chardef\mathraggedstatus#1\relax
+ \let\mathnumbercorrection\!!zeropoint
+ \global\let\@eqno \empty \def\eqno {\gdef\@eqno }%
+ \global\let\@leqno\empty \def\leqno{\gdef\@leqno}%
+ % added
+ \let\normalreqno\eqno
+ \let\normalleqno\leqno
+ % added
+ \doplaceformulanumber
+ \setbox\scratchbox\mathhbox to \displaywidth\bgroup
+ \mathinnerstrut
+ $%
+ \displaystyle
+ \ifcase\mathraggedstatus\or\hfill\or\hfill\fi}
+
+\def\llappedmathno
+ {\ifcase\mathraggedstatus\or
+ \@eqno
+ \or
+ \llap{\@eqno}%
+ \or
+ \llap{\@eqno}%
+ \fi}
+
+\def\rlappedmathno
+ {\ifcase\mathraggedstatus\or
+ \rlap{\@leqno}%
+ \or
+ \rlap{\@leqno}%
+ \or
+ \@leqno
+ \fi}
+
+\def\stopmathbox
+ {$%
+ \ifcase\mathraggedstatus\or\or\hfill\or\hfill\fi
+ \egroup
+ \setbox0\hbox{\unhcopy\scratchbox}%
+ \scratchdimen\wd0
+ \ifdim\scratchdimen>\displaywidth
+ \donetrue
+ \else
+ \donefalse
+ \fi
+ \hbox to \displaywidth\bgroup
+ \ifcase\mathnumberstatus
+ \box\scratchbox
+ \or
+ \ifx\@leqno\empty
+ \ifx\@eqno\empty
+ \box\scratchbox
+ \else
+ \ifdone
+ \vbox{\box\scratchbox\hbox to \displaywidth{\hss\llappedmathno}}%
+ \else
+ \hss\box\scratchbox\llappedmathno % hss makes room for number
+ \fi
+ \fi
+ \else
+ \ifdone
+ \vbox{\hbox to \displaywidth{\rlappedmathno\hss}\box\scratchbox}%
+ \else
+ \rlappedmathno\box\scratchbox\hss % hss makes room for number
+ \fi
+ \fi
+ \or
+ \hskip\mathnumbercorrection
+ \box\scratchbox
+ \hss
+ \else
+ \box\scratchbox
+ \fi
+ \egroup}
+
+\defineinnermathhandler\v!left {\startmathbox\plusone }{\stopmathbox}
+\defineinnermathhandler\v!middle {\startmathbox\plustwo }{\stopmathbox}
+\defineinnermathhandler\v!right {\startmathbox\plusthree}{\stopmathbox}
+\defineinnermathhandler\v!flushleft {\startmathbox\plusthree}{\stopmathbox}
+\defineinnermathhandler\v!center {\startmathbox\plustwo }{\stopmathbox}
+\defineinnermathhandler\v!flushright{\startmathbox\plusone }{\stopmathbox}
+
+%D [The examples below are in english and don't process in the
+%D documentation style, which will be english some day.]
+%D
+%D Normally a formula is centered, but in case you want to
+%D align it left or right, you can set up formulas to behave
+%D that way. Normally a formula will adapt is left indentation
+%D to the environment:
+%D
+%D \startbuffer
+%D \fakewords{20}{40}\epar
+%D \startitemize
+%D \item \fakewords{20}{40}\epar
+%D \placeformula \startformula \fakeformula \stopformula
+%D \item \fakewords{20}{40}\epar
+%D \stopitemize
+%D \fakewords{20}{40}\epar
+%D \stopbuffer
+%D
+%D % \getbuffer
+%D
+%D In the next examples we explicitly align formulas to the
+%D left (\type {\raggedleft}), center and right (\type
+%D {\raggedright}):
+%D
+%D \startbuffer
+%D \setupformulas[align=left]
+%D \startformula\fakeformula\stopformula
+%D \setupformulas[align=middle]
+%D \startformula\fakeformula\stopformula
+%D \setupformulas[align=right]
+%D \startformula\fakeformula\stopformula
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D Or in print:
+%D
+%D % {\getbuffer}
+%D
+%D With formula numbers these formulas look as follows:
+%D
+%D \startbuffer
+%D \setupformulas[align=left]
+%D \placeformula \startformula\fakeformula\stopformula
+%D \setupformulas[align=middle]
+%D \placeformula \startformula\fakeformula\stopformula
+%D \setupformulas[align=right]
+%D \placeformula \startformula\fakeformula\stopformula
+%D \stopbuffer
+%D
+%D % {\getbuffer}
+%D
+%D This was keyed in as:
+%D
+%D \typebuffer
+%D
+%D When tracing is turned on (\type {\tracemathtrue}) you can
+%D visualize the bounding box of the formula,
+%D
+%D % {\tracemathtrue\getbuffer}
+%D
+%D As you can see, the dimensions are the natural ones, but if
+%D needed you can force a normalized line:
+%D
+%D \startbuffer
+%D \setupformulas[strut=yes]
+%D \placeformula \startformula \fakeformula \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D This time we get a more spacy result.
+%D
+%D % {\tracemathtrue\getbuffer}
+%D
+%D We will now show a couple of more settings and combinations
+%D of settings. In centered formulas, the number takes no space
+%D
+%D \startbuffer
+%D \setupformulas[align=middle]
+%D \startformula \fakeformula \stopformula
+%D \placeformula \startformula \fakeformula \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer % {\tracemathtrue\getbuffer}
+%D
+%D You can influence the placement of the whole box with the
+%D parameters \type {leftmargin} and \type {rightmargin}.
+%D
+%D \startbuffer
+%D \setupformulas[align=right,leftmargin=3em]
+%D \startformula \fakeformula \stopformula
+%D \placeformula \startformula \fakeformula \stopformula
+%D
+%D \setupformulas[align=left,rightmargin=1em]
+%D \startformula \fakeformula \stopformula
+%D \placeformula \startformula \fakeformula \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer % {\tracemathtrue\getbuffer}
+%D
+%D You can also inherit the margin from the environment.
+%D
+%D \startbuffer
+%D \setupformulas[align=right,margin=standard]
+%D \startformula \fakeformula \stopformula
+%D \placeformula \startformula \fakeformula \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer % {\tracemathtrue\getbuffer}
+%D
+%D The distance between the formula and the number is only
+%D applied when the formula is left or right aligned.
+%D
+%D \startbuffer
+%D \setupformulas[align=left,distance=2em]
+%D \startformula \fakeformula \stopformula
+%D \placeformula \startformula \fakeformula \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer % {\tracemathtrue\getbuffer}
+
+\protect \endinput
+
+% \abovedisplayshortskip0pt \belowdisplayshortskip0pt \abovedisplayskip0pt \belowdisplayskip0pt \forgetall
+%
+% test \par $$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx$$ \par test \par
+% test \par $$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx$$ \par test \par
+% test plus \par \prevdepth \maxdimen $$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx$$ \par test \par
+% test minus \par \prevdepth-\maxdimen $$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx$$ \par test \par
+%
+% \parskip\baselineskip
+%
+% test \par $$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx$$ \par test \par
+% test \par $$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx$$ \par test \par
+% test plus \par \prevdepth \maxdimen $$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx$$ \par test \par
+% test minus \par \prevdepth-\maxdimen $$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx$$ \par test \par
diff --git a/Master/texmf-dist/tex/context/base/strc-not.lua b/Master/texmf-dist/tex/context/base/strc-not.lua
new file mode 100644
index 00000000000..32a836ba86c
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/strc-not.lua
@@ -0,0 +1,299 @@
+if not modules then modules = { } end modules ['strc-not'] = {
+ version = 1.001,
+ comment = "companion to strc-not.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local format = string.format
+local next = next
+local texsprint, texwrite, texcount = tex.sprint, tex.write, tex.count
+
+local ctxcatcodes = tex.ctxcatcodes
+
+local trace_notes = false trackers.register("structure.notes", function(v) trace_notes = v end)
+
+structure = structure or { }
+structure.helpers = structure.helpers or { }
+structure.lists = structure.lists or { }
+structure.sections = structure.sections or { }
+structure.counters = structure.counters or { }
+structure.notes = structure.notes or { }
+
+structure.notes.states = structure.notes.states or { }
+structure.lists.enhancers = structure.lists.enhancers or { }
+
+storage.register("structure/notes/states", structure.notes.states, "structure.notes.states")
+
+local helpers = structure.helpers
+local lists = structure.lists
+local sections = structure.sections
+local counters = structure.counters
+local notes = structure.notes
+
+local notestates = structure.notes.states
+local notedata = { }
+
+-- state: store, insert, postpone
+
+function notes.store(tag,n)
+ local nd = notedata[tag]
+ if not nd then
+ nd = { }
+ notedata[tag] = nd
+ end
+ local nnd = #nd+1
+ nd[nnd] = n
+ local state = notestates[tag]
+ if state.kind ~= "insert" then
+ if trace_notes then
+ logs.report("notes","storing %s with state %s as %s",tag,state.kind,nnd)
+ end
+ state.start = state.start or nnd
+ end
+ tex.write(#nd)
+end
+
+function notes.get(tag,n)
+ local nd = notedata[tag]
+ if nd then
+ n = n or #notedata
+ nd = nd[n or n]
+ if nd then
+ if trace_notes then
+ logs.report("notes","getting %s of %s",n,tag)
+ end
+ return structure.lists.collected[nd]
+ end
+ end
+end
+
+function notes.define(tag,kind,number)
+ local state = notes.setstate(tag,kind)
+ state.number = number
+end
+
+function notes.save(tag,newkind)
+ local state = notestates[tag]
+ if state and not state.saved then
+ state.saved = notedata[tag]
+ state.savedkind = state.kind
+ state.kind = newkind or state.kind
+ notedata[tag] = { }
+ end
+end
+
+function notes.restore(tag)
+ local state = notestates[tag]
+ if state and state.saved then
+ state.saved = nil
+ state.kind = state.savedkind
+ notedata[tag] = state.saved
+ end
+end
+
+function notes.setstate(tag,newkind)
+ local state = notestates[tag]
+ if trace_notes then
+ logs.report("notes","setting state of %s from %s to %s",tag,(state and state.kind) or "unset",newkind)
+ end
+ if not state then
+ state = {
+ kind = newkind
+ }
+ notestates[tag] = state
+ elseif newkind == "insert" then
+ if not state.start then
+ state.kind = newkind
+ end
+ else
+ state.kind = newkind
+ end
+ -- state.start can already be set and will be set when an entry is added or flushed
+ return state
+end
+
+function notes.getstate(tag)
+ local state = notestates[tag]
+ texsprint(ctxcatcodes,(state and state.kind ) or "unknown")
+end
+
+function notes.doifcontent(tag)
+ local ok = notestates[tag]
+ if ok then
+ if ok.kind == "insert" then
+ ok = tex.box[ok.number]
+ if ok then
+ ok = tbs.list
+ ok = lst and lst.next
+ end
+ else
+ ok = ok.start
+ end
+ end
+ commands.doif(ok)
+end
+
+local function internal(tag,n)
+ local nd = notes.get(tag,n)
+ if nd then
+ local r = nd.references
+ if r then
+ local i = r.internal
+--~ return i and lists.internals[i]
+ return i and jobreferences.internals[i]
+ end
+ end
+ return nil
+end
+
+local function ordered(kind,name,n)
+ local o = lists.ordered[kind]
+ o = o and o[name]
+ return o and o[n]
+end
+
+function notes.checkpagechange(tag) -- called before increment !
+ local nd = notedata[tag] -- can be unset at first entry
+ if nd then
+ local current = ordered("note",tag,#nd)
+ local nextone = ordered("note",tag,#nd+1)
+ if nextone then
+ -- we can use data from the previous pass
+ if nextone.pagenumber.number > current.pagenumber.number then
+ counters.reset(tag)
+ end
+ elseif current then
+ -- we need to locate the next one, best guess
+ if texcount.realpageno > current.pagenumber.number then
+ counters.reset(tag)
+ end
+ end
+ end
+end
+
+function notes.deltapage(tag,n)
+ -- 0:unknown 1:textbefore, 2:textafter, 3:samepage
+ local what = 0
+ local li = internal(tag,n)
+ if li then
+ local metadata, pagenumber = li.metadata, li.pagenumber
+ if metadata and pagenumber then
+ local symbolpage = metadata.symbolpage or 0
+ local notepage = pagenumber.number or 0
+ if notepage > 0 and symbolpage > 0 then
+ if notepage < symbolpage then
+ what = 1
+ elseif notepage > symbolpage then
+ what = 2
+ else
+ what = 3
+ end
+ end
+ else
+ -- might be a note that is not flushed due to to deep
+ -- nesting in a vbox
+ what = 3
+ end
+ end
+ tex.write(what)
+end
+
+function notes.postpone()
+ if trace_notes then
+ logs.report("notes","postponing all insert notes")
+ end
+ for tag, state in next, notestates do
+ if state.kind ~= "store" then
+ notes.setstate(tag,"postpone")
+ end
+ end
+end
+
+function notes.setsymbolpage(tag,n)
+ local nd = notes.get(tag,n)
+ if nd then
+ nd.metadata.symbolpage = texcount.realpageno
+ end
+end
+
+function notes.getsymbolpage(tag,n)
+ local nd = notes.get(tag,n)
+ nd = nd and nd.metadata.symbolpage
+ texwrite(nd or 0)
+end
+
+function notes.getnumberpage(tag,n)
+ local li = internal(tag,n)
+ li = li and li.pagenumber
+ li = li and li.numbers
+ li = li and li[1]
+ texwrite(li or 0)
+end
+
+function notes.flush(tag,whatkind) -- store and postpone
+ local state = notestates[tag]
+ local kind = state.kind
+ if kind == whatkind then
+ if kind == "postpone" then
+ local nd = notedata[tag]
+ local ns = state.start -- first index
+ if nd and ns then
+ if trace_notes then
+ logs.report("notes","flushing state %s of %s from %s to %s",whatkind,tag,ns,#nd)
+ end
+ for i=ns,#nd do
+ texsprint(ctxcatcodes,format("\\handlenoteinsert{%s}{%s}",tag,i))
+ end
+ end
+ state.start = nil
+ state.kind = "insert"
+ elseif kind == "store" then
+ local nd = notedata[tag]
+ local ns = state.start -- first index
+ if trace_notes then
+ logs.report("notes","flushing state %s of %s from %s to %s",whatkind,tag,ns,#nd)
+ end
+ if nd and ns then
+ for i=ns,#nd do
+ texsprint(ctxcatcodes,format("\\handlenoteitself{%s}{%s}",tag,i))
+ end
+ end
+ state.start = nil
+ elseif trace_notes then
+ logs.report("notes","not flushing state %s of %s",whatkind,tag)
+ end
+ elseif trace_notes then
+ logs.report("notes","not flushing state %s of %s",whatkind,tag)
+ end
+end
+
+function notes.flushpostponed()
+ if trace_notes then
+ logs.report("notes","flushing all postponed notes")
+ end
+ for tag, _ in next, notestates do
+ notes.flush(tag,"postpone")
+ end
+end
+
+function notes.resetpostponed()
+ if trace_notes then
+ logs.report("notes","resetting all postponed notes")
+ end
+ for tag, state in next, notestates do
+ if state.kind == "postpone" then
+ state.start = nil
+ state.kind = "insert"
+ end
+ end
+end
+
+function notes.title(tag,n)
+ structure.lists.savedtitle(tag,notedata[tag][n])
+end
+
+function notes.number(tag,n,spec)
+ structure.lists.savedprefixednumber(tag,notedata[tag][n])
+end
diff --git a/Master/texmf-dist/tex/context/base/core-not.tex b/Master/texmf-dist/tex/context/base/strc-not.mkii
index b74ba9403c6..40e06c9a49a 100644
--- a/Master/texmf-dist/tex/context/base/core-not.tex
+++ b/Master/texmf-dist/tex/context/base/strc-not.mkii
@@ -1,7 +1,7 @@
%D \module
-%D [ file=core-not,
+%D [ file=strc-not,
%D version=2002.05.10, % 1997.09.15
-%D title=\CONTEXT\ Core Macros,
+%D title=\CONTEXT\ Structure Macros,
%D subtitle=Note Handling, % Footnote Handling
%D author=Hans Hagen,
%D date=\currentdate,
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Core Macros / Note Handling}
+\writestatus{loading}{ConTeXt Structure Macros / Note Handling}
%D Unfortunately we cannot force an even number of lines in
%D a two column footnote placement.
@@ -36,8 +36,8 @@
%D \stopitemize
%D
%D Because footnotes are declared at the location of their
-%D reference. Footnotes can be seen as a special kind of
-%D floating bodies. There placement is postponed but has to be
+%D reference they can be seen as a special kind of
+%D floating bodies. Their placement is postponed but has to be
%D taken into account in the pagebreak calculations. This kind
%D of calculations are forced by using \type{\insert}.
@@ -218,6 +218,7 @@
\c!interaction=\v!yes,
\c!factor=,
\c!scope=, % \v!text \v!page
+ \c!next=\autoinsertnextspace, % new, experimental with startnotes
\c!n=1]%
\definenumber
[\currentnote]
@@ -225,10 +226,15 @@
\c!sectionnumber=\noteparameter\c!way,
\c!conversion=\noteparameter\c!conversion]%
\letvalue{\??vn\c!rule:\currentnote}\normalnoterule
- \unexpanded\setvalue{\currentnote}{\setnote[#1]}%
- \unexpanded\setvalue{\currentnote\v!text}{\setnotetext[#1]}%
+ \unexpanded\setvalue{\currentnote }{\setnote[#1]}%
+ \unexpanded\setvalue{\currentnote\v!text }{\setnotetext[#1]}%
+ \unexpanded\setvalue{\e!start\currentnote}{\dodoubleempty\dostartcurrentnote[#1]}%
+ \unexpanded\setvalue{\e!stop\currentnote }{\dostopcurrentnote}%
\setupnote[\currentnote][#2]}
+\def\dostartcurrentnote[#1][#2]{\setnote[#1][#2]\bgroup\ignorespaces}
+\def\dostopcurrentnote {\removeunwantedspaces\egroup\noteparameter\c!next}
+
\def\setupnotedefinition[#1]%
{\setupdescriptions[\??vn\??vn#1]}
@@ -238,15 +244,15 @@
\def\dosetupnote[#1][#2]%
{\edef\currentnote{#1}%
\ifsecondargument
-\ifcase\localnodemode\or
- \edef\localnode@n{\noteparameter\c!n}%
- \edef\localnode@l{\noteparameter\c!location}%
-\fi
+ \ifcase\localnodemode\or
+ \edef\localnode@n{\noteparameter\c!n}%
+ \edef\localnode@l{\noteparameter\c!location}%
+ \fi
\getparameters[\??vn\currentnote][#2]%
-\ifcase\localnodemode\or
- \letvalue{\??vn\currentnote\c!n }\localnode@n
- \letvalue{\??vn\currentnote\c!location}\localnode@l
-\fi
+ \ifcase\localnodemode\or
+ \letvalue{\??vn\currentnote\c!n }\localnode@n
+ \letvalue{\??vn\currentnote\c!location}\localnode@l
+ \fi
\processaction
[\noteparameter\c!rule]
[ \v!on=>\letvalue{\??vn\c!rule:\currentnote}\normalnoterule,
@@ -277,6 +283,10 @@
% so that it matches:
+% todo: make sure less calls, is quite some code
+
+% BEWARE, OVERLOADED IN cont-new.mkiv
+
\def\dochecknote % only to be called locally, some bools will become class-ones
{% for the moment no mixed text/endnotes modes, so we use
% \footnoteparameter and not \noteparameter (**)
@@ -373,7 +383,7 @@
\placenoterule
\noteparameter\c!after}%
\global\skip\currentnoteins\ht\scratchbox
- \setbox\scratchbox\box\voidb@x} % scratchbox can be in use
+ \setbox\scratchbox\emptybox} % scratchbox can be in use
\ifx\setnotehsize\undefined
@@ -939,9 +949,7 @@
\dochecknote
\ifendnotes \else
% not that accurate when multiple notes
- \scratchdimen\pagegoal
- \advance\scratchdimen -\pagetotal
- \ifdim\scratchdimen<\ht\localpostponednotes
+ \ifdim\dimexpr\pagegoal-\pagetotal\relax<\ht\localpostponednotes
\message{[moved note \currentnote]}%
\fi
\insert\currentnoteins\bgroup\unvbox\localpostponednotes\egroup
diff --git a/Master/texmf-dist/tex/context/base/strc-not.mkiv b/Master/texmf-dist/tex/context/base/strc-not.mkiv
new file mode 100644
index 00000000000..4b033cbf9e7
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/strc-not.mkiv
@@ -0,0 +1,1139 @@
+%D \module
+%D [ file=strc-not,
+%D version=2008.10.20,
+%D title=\CONTEXT\ Structure Macros,
+%D subtitle=Note Handling,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA-ADE / Hans Hagen]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Structure Macros / Note Handling}
+
+\registerctxluafile{strc-not}{1.001}
+
+\unprotect
+
+% obsolete
+
+\let\autopostponenotes\relax
+
+% removed:
+%
+% \pushsomestates
+%
+% core-ins -> obsolete
+%
+% saveinsertiondata
+% restoreinsertiondata
+% saveinsertionbox
+% eraseinsertionbackup
+% restoreinsertionbackup
+%
+% \def\doprocessnotescs#1#2% #1 == \cs that takes arg
+% {\def\currentnote{#2}\@EA#1\csname\??vn:\currentnote\endcsname}
+% \def\processnotescs#1{\processcommacommand[\noteinsertions]{\doprocessnotescs#1}}
+% \def\noteinsertion #1{\csname\??vn:#1\endcsname}
+
+\def\savenotedata {\writestatus{todo}{save note data}}
+\def\restorenotedata {\writestatus{todo}{restore note data}}
+\def\savenotecontent {\writestatus{todo}{save note content}}
+\def\restorenotecontent{\writestatus{todo}{restore note content}}
+\def\erasenotebackup {\writestatus{todo}{erase note backup}}
+
+% page-set:
+
+\def\enablenotes {\writestatus{todo}{enable notes}}
+\def\disablenotes {\writestatus{todo}{disable notes}}
+\def\savenotes {\writestatus{todo}{save notes}}
+\def\flushsavednotes{\writestatus{todo}{flush notes}}
+
+% experiment: (compare scope=text and scope=page)
+%
+% \definenote[mynote][way=bytext,location=text,width=\leftmarginwidth,scope=page,rule=,before=,after=,factor=0]
+% \setuptexttexts[margin][\vbox to \textheight{\placenotes[mynote]\vfill}][]
+
+%D Footnotes are can be characterized by three components:
+%D
+%D \startitemize[packed]
+%D \item a small number \footnote {a footnote number} or
+%D symbol {\setupfootnotes [conversion=set 2]\footnote
+%D {a footnote}}
+%D \item and a similar mark at the bottom of the page
+%D \item followed by some additional text
+%D \stopitemize
+%D
+%D Because footnotes are declared at the location of their
+%D reference they can be seen as a special kind of
+%D floating bodies. Their placement is postponed but has to be
+%D taken into account in the pagebreak calculations. This kind
+%D of calculations are forced by using \type{\insert}s and dealing
+%D with all cases is not trivial.
+
+%D \macros
+%D {notesenabled}
+%D
+%D We need a couple of states because at some moments we don't want
+%D to mess around with inserts at all. Take for instance a table
+%D of contents. And so we can temporary disable footnotes by saying
+%D
+%D \starttyping
+%D \notesenabledfalse
+%D \stoptyping
+
+\newif\ifnotesenabled \notesenabledtrue
+
+% better mark a note .. once flushed no more flushing
+
+%appendtoks \notesenabledfalse \to \everymarking
+\appendtoks \notesenabledfalse \to \everypagebody
+\appendtoks \notesenabledfalse \to \everystructurelist % quick hack
+
+%D Often we need to process the whole set of notes and to make that
+%D fast, we use a token register:
+
+\newtoks\tobeprocessednotes
+
+\def\processnotes#1% #1: \macro that uses \currentnote
+ {\def\doprocesssomenote##1{\edef\currentnote{##1}\let\currentdescription\currentnote#1}%
+ \the\tobeprocessednotes}
+
+%D Notes have their own paremater handlers. The complication here
+%D is that we use descriptions to typeset the note, so we have several
+%D resolvers.
+
+\let\currentnote\v!footnote
+
+\def\noteparameter #1{\csname\donoteparameter{\??vn\currentnote}#1\endcsname}
+\def\noteparameterhash#1{\donoteparameterhash {\??vn\currentnote}#1}
+
+\def\namednoteparameter#1#2{\csname\donoteparameter{\??vn#1}#2\endcsname}
+
+\def\donoteparameter #1#2{\ifcsname#1#2\endcsname#1#2\else\expandafter\donoteparentparameter \csname#1\s!parent\endcsname#2\fi}
+\def\donoteparameterhash#1#2{\ifcsname#1#2\endcsname #1\else\expandafter\donoteparentparameterhash\csname#1\s!parent\endcsname#2\fi}
+
+\def\donoteparentparameter #1#2{\ifx#1\relax\s!empty\else\donoteparameter #1#2\fi}
+\def\donoteparentparameterhash#1#2{\ifx#1\relax \else\donoteparameterhash#1#2\fi}
+
+\def\detokenizednoteparameter#1{\detokenize\expandafter\expandafter\expandafter{\csname\??vn#1\endcsname}}
+
+\def\dosetnoteattributes#1#2% style color
+ {\edef\fontattributehash {\noteparameterhash#1}%
+ \edef\colorattributehash{\noteparameterhash#2}%
+ \ifx\fontattributehash \empty\else\dosetfontattribute \fontattributehash #1\fi
+ \ifx\colorattributehash\empty\else\dosetcolorattribute\colorattributehash#2\fi}
+
+%D \macros
+%D {setupnote,setupnotedefinition}
+%D
+%D We can influence footnote typesetting with the setup
+%D command:
+%D
+%D \showsetup{setupnotes}
+%D \showsetup{setupnote}
+%D
+%D The definition command indicate that we can frame the footnote
+%D area. The footnotes themselves are treated as descriptions.
+%D
+%D \showsetup{definenote}
+%D
+%D It's sort of a custom to precede footnotes by a horizontal
+%D rule and although fancy rules like
+%D
+%D \starttyping
+%D \hbox to 10em{\hskip-3em\dotfill}
+%D \stoptyping
+%D
+%D Are quite ligitimate, we default to a simple one 20\% of the
+%D text width.
+
+\def\setupnotes
+ {\dodoubleargument\getparameters[\??vn]}
+
+\setupnotes
+ [\c!location=\v!page,
+ \c!way=\v!by\v!part,
+ \c!sectionnumber=\v!no,
+ %\c!conversion=,
+ \c!rule=\v!on,
+ \c!before=\blank,
+ \c!bodyfont=\v!small,
+ %\c!style=,
+ %\c!color=,
+ %\c!after=,
+ %\c!rulecolor=,
+ \c!rulethickness=\linewidth,
+ \c!frame=\v!off,
+ \c!margindistance=.5em,
+ \c!columndistance=1em,
+ \c!distance=.125em,
+ \c!align=\v!normal,
+ \c!tolerance=\v!tolerant,
+ \c!split=\v!tolerant,
+ %\c!width=\makeupwidth,
+ %\c!width=\ifdim\hsize<\makeupwidth\hsize\else\makeupwidth\fi,
+ \c!width=\defaultnotewidth,
+ \c!height=\textheight,
+ \c!numbercommand=\high,
+ \c!command=\noteparameter\c!numbercommand, % downward compatible
+ \c!separator=,% \@@koseparator,
+ \c!textcommand=\high,
+ \c!textstyle=\tx,
+ %\c!textcolor=,
+ \c!interaction=\v!yes,
+ %\c!factor=,
+ %\c!scope=, % \v!text \v!page
+\c!prefixconnector=.,
+\c!prefix=\v!no,
+ \c!next=\autoinsertnextspace, % new, experimental with startnotes
+ \c!n=1]
+
+\def\@@defaultnotedefloc{\v!inleft}
+\def\@@defaultnotedefdis{\!!zeropoint}
+
+% also s!root
+%
+% \definedescription
+% [\??vn\??vn]
+% [\c!location=\@@defaultnotedefloc,
+% \c!distance=\@@defaultnotedefdis,
+% \c!width=\v!fit,
+% \c!headstyle=\noteparameter\c!style,
+% \c!headcolor=\noteparameter\c!color,
+% \c!before=,
+% \c!after=]
+
+\def\startnotedef{\resetdescriptions\csname\e!start\??vn\??vn\currentnote\endcsname}
+\def\stopnotedef {\csname\e!stop \??vn\??vn\currentnote\endcsname}
+
+\def\currentnoteins{\csname\??vn:\currentnote\endcsname}
+
+\newtoks \everysetupnote
+
+\def\definenote
+ {\dodoubleempty\dodefinenote}
+
+\def\dodefinenote[#1][#2]%
+ {\edef\currentnote{#1}%
+ \ifcsname\??vn:\currentnote\endcsname\else
+ \@EA\installinsertion\csname\??vn:\currentnote\endcsname\relax
+ \appendtoks\doprocesssomenote{#1}\to\tobeprocessednotes
+ \fi
+ \defineenumeration % description
+ [\currentnote]
+ [\c!location=\@@defaultnotedefloc,
+ \c!distance=\@@defaultnotedefdis,
+ \c!width=\v!fit,
+ \c!headstyle=\noteparameter\c!style,
+ \c!headcolor=\noteparameter\c!color,
+\s!handler=\v!note,
+ \c!text=,
+ \c!before=,
+ \c!after=]%
+ \setupenumerations
+ [\currentnote]
+ [\s!parent=\??vn\currentnote,
+ \c!number=\v!yes] % no inheritance from decriptions which is okay
+ \presetlocalframed
+ [\??vn\currentnote]%
+ \getparameters
+ [\??vn\currentnote]
+ [\s!parent=\??vn,#2]%
+ \definestructurecounter
+ [\currentnote]%
+ \ctxlua{structure.notes.define("\currentnote","insert",\number\csname\??vn:\currentnote\endcsname)}%
+ \the\everysetupnote
+ \dochecknote}
+
+\let\setupnotedefinition\setupenumerations
+
+\appendtoks
+ \setupenumerations[\currentnote][]%
+\to \everysetupnote
+
+% \appendtoks
+% \dochecknote
+% \to \everysetupnote
+
+
+\def\setupnote
+ {\dodoubleempty\dosetupnote}
+
+\def\dosetupnote[#1][#2]%
+ {\edef\currentnote{#1}%
+ \ifsecondargument
+ \getparameters[\??vn\currentnote][#2]%
+ \the\everysetupnote
+ \fi
+ \dochecknote}
+
+\appendtoks
+ \letvalue{\??vn\c!rule:\currentnote}\normalnoterule % hm
+\to \everysetupnote
+
+\appendtoks
+ \processaction
+ [\noteparameter\c!rule]
+ [ \v!on=>\letvalue{\??vn\c!rule:\currentnote}\normalnoterule,
+ \v!off=>\letvalue{\??vn\c!rule:\currentnote}\relax,
+ \s!default=>\letvalue{\??vn\c!rule:\currentnote}\relax,
+ \s!unknown=>\setvalue{\??vn\c!rule:\currentnote}{\noteparameter\c!rule}]%
+\to \everysetupnote
+
+\appendtoks
+ \processaction % todo
+ [\noteparameter\c!split]
+ [ \v!tolerant=>\notepenalty\zeropoint,
+ \v!strict=>\notepenalty9999,
+ \v!verystrict=>\notepenalty\maxdimen,
+ \s!default=>\notepenalty\zeropoint,
+ \s!unknown=>\notepenalty\commalistelement]%
+\to \everysetupnote
+
+%D The following switch can be used to disable limiting the
+%D height of the footnote area, something that is needed in
+%D multi column balancing. Use this switch with care.
+
+\newif\ifnotelimit \notelimittrue % shared
+
+% bottomnotes endnotes
+% clevernotes
+
+\appendtoks
+ \doifsomething{\noteparameter\c!factor}
+ {\ifnum\noteparameter\c!factor<\zerocount\else
+ \count\currentnoteins\noteparameter\c!factor
+ \fi}%
+\to \everysetupnote
+
+% compatibility (will go away)
+
+\newif\ifendnotes
+\newif\ifbottomnotes
+
+% locations:
+
+\def\s!noteloc{nodeloc} % 1=page 2=columns 3=lastcolumn 4=firstcolumn 5=none
+\def\s!notepos{nodepos} % 0=nothing 1=high 2=bottom
+\def\s!notefmt{nodefmt} % 1 text
+\def\s!notecol{nodecol}
+
+\def\clevernotes % compatibility hack, will be redone
+ {\numexpr\ifcase\namednoteparameter\v!footnote\s!noteloc\or0\or2\or2\or1\else0\fi\relax}
+
+\def\setnotelocation #1{\expandafter\chardef\csname\??vn\currentnote\s!noteloc\endcsname#1\relax}
+\def\setnoteposition #1{\expandafter\chardef\csname\??vn\currentnote\s!notepos\endcsname#1\relax}
+\def\setnoteformatting#1{\expandafter\chardef\csname\??vn\currentnote\s!notefmt\endcsname#1\relax}
+\def\setnotecolumns #1{\expandafter\chardef\csname\??vn\currentnote\s!notecol\endcsname#1\relax}
+
+\def\currentnofcolumns{\@@kln}
+
+\setvalue{\??vn @\v!page }{\setnotelocation\plusone}
+\setvalue{\??vn @\v!columns }{\setnotelocation\plustwo}
+\setvalue{\??vn @\v!firstcolumn}{\setnotelocation\plusthree}
+\setvalue{\??vn @\v!lastcolumn }{\setnotelocation\plusfour}
+\setvalue{\??vn @\v!none }{\setnotelocation\plusfive}
+\setvalue{\??vn @\v!text }{\setnotelocation\plusfive \setnoteformatting\plusone} % test
+\setvalue{\??vn @\v!high }{\setnoteposition\plusone}
+\setvalue{\??vn @\v!bottom }{\setnoteposition\plustwo}
+
+\def\dosetcheckednote#1{\csname\??vn @#1\endcsname}
+
+\def\dochecknote
+ {% node states
+ \setnotelocation\plusone
+ \setnoteposition\plustwo
+ \normalexpanded{\noexpand\rawprocesscommalist[\noteparameter\c!location]}\dosetcheckednote
+ % compatibility hack
+ \ifnum\noteparameter\s!noteloc=\plusfive \endnotestrue \else \endnotesfalse \fi
+ \ifnum\noteparameter\s!notepos=\plustwo \bottomnotestrue \else \bottomnotesfalse \fi
+ % set column multiplier
+ \edef\currentnotenofcolumns{\noteparameter\c!n}%
+ \ifx\currentnotenofcolumns\empty
+ \let\currentnotenofcolumns\!!plusone
+ \fi
+ \ifcase\noteparameter\s!noteloc\or
+ % page
+ \scratchcounter \currentnotenofcolumns
+ \or
+ % columns
+ \scratchcounter\ifnum\currentnofcolumns=\zerocount \plusone \else \currentnotenofcolumns \fi \relax
+ \or
+ % firstcolumn
+ \scratchcounter\plusone
+ \or
+ % lastcolumn
+ \scratchcounter\plusone
+ \or
+ % text
+ \scratchcounter\currentnotenofcolumns
+ \fi
+ % column factor
+ \global\count\currentnoteins\plusthousand
+ \global\count\currentnoteins\numexpr\plusthousand/\scratchcounter\relax
+ % maximize height
+ \ifnotelimit
+ \global\dimen\currentnoteins\dimexpr\noteparameter\c!height*\scratchcounter\relax
+ \fi
+ % distance
+ \begingroup
+ \setbox\scratchbox\vbox
+ {\forgetall
+ \noteparameter\c!before
+ \placenoterule
+ \noteparameter\c!after}%
+ \global\skip\currentnoteins\ht\scratchbox
+ \endgroup
+ % play safe
+ \ifnum\noteparameter\s!noteloc=\plusfive
+ \ctxlua{structure.notes.setstate("\currentnote","store")}%
+ % text notes (e.g. end notes) but we don't use inserts anyway
+ \global\dimen\currentnoteins\maxdimen
+ \global\count\currentnoteins\zerocount
+ \global\skip \currentnoteins\zeropoint
+ \fi}
+
+% \def\checknotes
+% {\processnotes\dochecknote}
+
+\let\checknotes\relax % experiment, avoiding this saves a lot of time
+
+% D When \type{n} exceeds~1, footnotes are typeset in
+% D multi||columns, using the algoritm presented on page~397
+% D of \TEX book. Footnotes can be places on a per page basis
+% D or whereever suitable. When we set~\type{n} to~0, we get a
+% D rearanged paragraph, typeset by the algoritms on pages 398
+% D and~389 (at least in \MKII). We definitely did not reinvent
+% D that wheel.
+
+% Example of using factor:
+%
+% \definenote[mynote][way=bypage,location=text,width=\marginwidth,rule=,before=,factor=0]
+% \setuplayout[backspace=5cm,margin=3cm,margindistance=.5cm,width=middle]
+% \setuptexttexts[margin][\vbox to \textheight{\placenotes[mynote]\vfill}][]
+% \starttext
+% \dorecurse{10}{test \mynote{one one one one one one} \input zapf \mynote{one one one one one one} }
+% \stoptext
+
+%D The noterule can be a graphic and therefore calling this
+%D setup macro at every skipswitch is tricky (many many MP
+%D runs). Let's just reserve a few points, that probably match
+%D those of the stretch component.
+
+\def\placenoterule
+ {\getvalue{\??vn\c!rule:\currentnote}}
+
+\def\normalnoterule
+ {\ifvmode
+ \color
+ [\noteparameter\c!rulecolor]
+ {\hrule\!!width .2\hsize\!!height\noteparameter\c!rulethickness\!!depth \zeropoint}%
+ \kern\strutdepth
+ \fi}
+
+\ifx\setnotehsize\undefined
+
+ \def\setnotehsize{\hsize\noteparameter\c!width\relax} % can be overloaded
+
+\fi
+
+%D The formatting depends on the width of the table, so we
+%D have to set \type {n} to zero.
+%D
+%D \starttyping
+%D \startbuffer
+%D \bTABLE
+%D \bTR \bTD one \footnote{\dorecurse{10}{abcd }} \eTD \bTD two \eTD \eTR
+%D \bTR \bTD three fout five six seven eight nine \eTD \bTD ten \eTD \eTR
+%D \eTABLE
+%D \stopbuffer
+%D
+%D \startlocalfootnotes[n=0,location={text,none}]
+%D \placelegend[n=2]{\getbuffer}{\placelocalfootnotes}
+%D \stoplocalfootnotes
+%D \stoptyping
+
+%D \macros
+%D {footnote}
+%D
+%D A footnote can have a reference as optional argument and
+%D therefore its formal specification looks like:
+%D
+%D \showsetup{footnote}
+%D
+%D This command has one optional command: the reference. By
+%D saying \type{[-]} the number is omitted. The footnote
+%D command is not that sensitive to spacing, so it's quite
+%D legal to say:
+%D
+%D \startbuffer
+%D Users of \CONTEXT\ must keep both feet \footnote{Given they
+%D have two.} on the ground and not get confused \footnote{Or
+%D even crazy.} by all those obscure \footnote{But fortunately
+%D readable.} parameters.
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D When setting the \type{conversion} to \type{set 2} we get
+%D something like:
+%D
+%D \bgroup
+%D \startnarrower
+%D \setupfootnotes[conversion=set 1]
+%D \getbuffer
+%D \stopnarrower
+%D \egroup
+%D
+%D Typesetting footnotes is, at least for the moment, disabled
+%D when reshaping boxes.
+%D
+%D The additional macro \type {\footnotetext} and the
+%D associated \type {\note} macro were implemented at
+%D request of users on the mailing list and a suggestion by
+%D taco to split of the symbol placement. I decided to
+%D merge this functionality with the existing \type {\note}
+%D functionality.
+
+%D The next implementation runs on top of enumerations (only in \MKIV).
+
+% TODO: \ifnotesenabled
+
+\newif\ifnotesymbol \notesymboltrue
+
+\def\setnote [#1]{\getvalue{#1}}
+\def\setnotetext[#1]{\global\settrue\skipnoteplacement\getvalue{#1}}
+
+\def\domovednote#1#2#3#4%
+ {\ifcase\ctxlua{structure.notes.deltapage("#1",#2)}\or\symbol[#3]\or\symbol[#4]\fi}
+
+\setvalue{\??dd:\v!note:\s!handler }{\@@doenumerationhandler}
+\setvalue{\??dd:\v!note:\s!handler:\s!do }{\@@somenotedescription}
+\setvalue{\??dd:\v!note:\s!handler:\s!start}{\@@startsomenotedescription}
+
+\def\@@somenotedescription {\@@notemakedescription}
+\def\@@startsomenotedescription{\@@notemakedescription}
+
+\newconditional\skipnoteplacement
+
+\def\@@notemakedescription[#1]#2#3% todo ... proper [key=value] etc
+ {\ifnotesenabled
+ \begingroup
+ \doenumerationcheckconditions
+ \let\currentnote\currentdescriptionmain
+ \dodescriptioncomponent[\c!reference=#1,\c!label={\descriptionparameter\c!text},\c!title={#3},\c!bookmark=,][]%
+ \xdef\currentnotenumber{\ctxlua{structure.notes.store("\currentnote",\currentdescriptionnumberentry)}}%
+ \settrue\processingnote
+ \ifconditional\skipnoteplacement
+ \globallet\lastnotesymbol\dolastnotesymbol
+ \else
+ \iftypesettinglines % otherwise problems with \type <crlf> {xxx}
+ \ignorelines % makes footnotes work in \startlines ... \stoplines
+ \fi
+ \ifnotesymbol
+ \dolastnotesymbol
+ \else
+ \unskip\unskip
+ \globallet\lastnotesymbol\dolastnotesymbol
+ \fi
+ \fi
+ \ifconditional\postponingnotes
+ \global\settrue\postponednote
+ \else
+ \handlenoteinsert\currentnote\currentnotenumber
+ \fi
+ \ifconditional\skipnoteplacement \else
+ \kern\notesignal\relax % \relax is needed to honor spaces
+ \iftrialtypesetting \else \global\setfalse\skipnoteplacement \fi
+ \fi
+ \endgroup
+ \fi}
+
+\def\dolastnotesymbol{\typesetsomenotesymbol\currentnote\currentnotenumber}
+
+\def\dotypesetsomenotesymbol#1#2%
+ {\dodonotesymbol
+ {\synchronizesomenotesymbol{#1}{#2}%
+ \ctxlua{structure.notes.number("\currentnote",\currentnotenumber)}% \currentdescriptionnumberentry
+ \domovednote{#1}{#2}\v!previouspage\v!nextpage}}
+
+\def\typesetsomenotesymbol#1#2%
+ {\removeunwantedspaces
+ \doifitalicelse\/\donothing % Charles IV \footnote{the fourth}
+ \ifdim\lastkern=\notesignal
+ \dodonotesymbol{\kern\noteparameter\c!distance}% gets the font right, hack !
+ \fi
+ \nobreak
+ \doifelse{\noteparameter\c!interaction}\v!no
+ {\dotypesetsomenotesymbol{#1}{#2}}
+ {\directgotobox{\dotypesetsomenotesymbol{#1}{#2}}[page(\ctxlua{structure.notes.getnumberpage("#1",\number#2)})]}% f:
+ \globallet\lastnotesymbol\relax}
+
+\def\currentnotedescriptiontext % todo: can be other number
+ {\ctxlua{structure.notes.title("\currentnote",\currentdescriptionnumberentry)}}
+
+\def\currentnoteenumerationfullnumber
+ {\doifelse{\noteparameter\c!interaction}\v!no
+ {\docurrentnoteenumerationfullnumber}%
+ {\directgotobox
+ {\docurrentnoteenumerationfullnumber}%
+ [page(\ctxlua{structure.notes.getsymbolpage("\currentnote",\currentdescriptionnumberentry)})]}}
+
+\def\docurrentnoteenumerationfullnumber
+ {\noteparameter\c!numbercommand
+ {\ctxlua{structure.notes.number("\currentnote",\currentdescriptionnumberentry)}%
+ \domovednote\currentdescription\currentdescriptionnumberentry\v!nextpage\v!previouspage}}
+
+\def\synchronizesomenotesymbol#1#2% called more often than needed
+ {\expanded{\noexpand\ctxlatelua{structure.notes.setsymbolpage("#1",#2)}}}
+
+\def\handlenoteinsert#1#2%
+ {\begingroup
+ \edef\currentnote{#1}%
+ \the\everybeforenoteinsert
+ \insert\currentnoteins\bgroup
+ \the\everyinsidenoteinsert
+ \handlenoteitself{#1}{#2}%
+ \egroup
+ \the\everyafternoteinsert
+ \endgroup}
+
+\def\handlenoteitself#1#2% tg, id
+ {\edef\currentdescription{#1}%
+ \edef\currentnote{#1}%
+ \edef\currentdescriptionnumberentry{#2}%
+ \let\currentdescriptiontext\currentnotedescriptiontext
+ \let\currentenumerationfullnumber\currentnoteenumerationfullnumber
+ \dostartstoreddescription\begstrut\currentnotedescriptiontext\endstrut\dostopstoreddescription}
+
+\def\dostartstoreddescription
+ {\bgroup\@@dostartdescriptionindeed}
+
+\def\dostopstoreddescription
+ {\@@stopdescription}
+
+%D The main typesetting routine is more or less the same as the
+%D \PLAIN\ \TEX\ one, except that we only handle one type while
+%D \PLAIN\ also has something \type{\v...}. In most cases
+%D footnotes can be handled by a straight insert, but we do so
+%D by using an indirect call to the \type{\insert} primitive.
+
+%D Making footnote numbers active is not always that logical,
+%D Making footnote numbers active is not always that logical,
+%D especially when we keep the reference and text at one page.
+%D On the other hand we need interactivity when we refer to
+%D previous notes or use end notes. Therefore we support
+%D interactive footnote numbers in two ways \footnote{This
+%D feature was implemented years after we were able to do so,
+%D mainly because endnotes had to be supported.} that is,
+%D automatically (vise versa) and by user supplied reference.
+
+\newcount\internalnotereference
+
+\let\startpushnote=\relax
+\let\stoppushnote =\relax
+
+\newsignal\notesignal
+\newcount \notepenalty
+
+\notepenalty=0 % needed in order to split in otrset
+
+\newconditional\processingnote
+\newconditional\postponednote
+
+\newtoks\everybeforenoteinsert
+\newtoks\everyinsidenoteinsert
+\newtoks\everyafternoteinsert
+
+\appendtoks
+ \let\flushnotes\relax
+ \let\postponenotes\relax
+ \forgetall
+\to \everybeforenoteinsert
+
+\appendtoks
+ \doif{\noteparameter\c!scope}\v!page{\floatingpenalty\maxdimen}% experiment
+ \penalty\notepenalty
+ \forgetall
+ \setnotebodyfont
+ \redoconvertfont % to undo \undo calls in in headings etc
+ \splittopskip\strutht % not actually needed here
+ \splitmaxdepth\strutdp % not actually needed here
+ \leftmargindistance\noteparameter\c!margindistance
+ \rightmargindistance\leftmargindistance
+ \ifnum\noteparameter\c!n=\zerocount % no ifcase new 31-07-99 ; always ?
+ \doifnotinset{\noteparameter\c!width}{\v!fit,\v!broad}\setnotehsize % ?
+ \fi
+\to \everyinsidenoteinsert
+
+\let\lastnotesymbol\relax
+
+%D \macros
+%D {note}
+%D
+%D Refering to a note is accomplished by the rather short
+%D command:
+%D
+%D \showsetup{note}
+%D
+%D This command is implemented rather straightforward as:
+
+\def\notesymbol
+ {\dodoubleempty\donotesymbol}
+
+\def\donotesymbol[#1][#2]%
+ {\bgroup
+ \ifnotesenabled
+ \edef\currentnote{#1}%
+ \ifsecondargument
+ \unskip
+ \dodonotesymbol{\in[#2]}%
+ \else
+ \dodonotesymbol\lastnotesymbol
+ \fi
+ \fi
+ \egroup}
+
+\def\dodonotesymbol#1%
+ {\noteparameter\c!textcommand{\dosetnoteattributes\c!textstyle\c!textcolor#1}}
+
+%D Normally footnotes are saved as inserts that are called upon
+%D as soon as the pagebody is constructed. The footnote
+%D insertion routine looks just like the \PLAIN\ \TEX\ one,
+%D except that we check for the end note state.
+
+% testcase for split bottom alignment see (a) below
+%
+% \dorecurse{6}{\input tufte\footnote{\input ward \input tufte \relax}}
+
+\def\placenoteinserts
+ {\processnotes\doplacenoteinserts}
+
+\def\unvboxed {\ifvmode\unvbox \else\box \fi}
+\def\unvcopied{\ifvmode\unvcopy\else\copy\fi}
+
+\def\doplacenoteinserts
+ {\relax\ifdim\ht\currentnoteins>\zeropoint\relax
+ \ifnum\noteparameter\s!noteloc=\plusfive
+ \else
+ \endgraf
+ \ifvmode
+ \whitespace
+ \noteparameter\c!before
+ \fi
+ \placenoterule % alleen in ..mode
+ \bgroup
+ \setnotebodyfont
+ \setbox\scratchbox\hbox
+ {% this should be checked, smells like a mix-up
+ % does not split: \ifcase\noteparameter\c!n\unvbox\else\box\fi\currentnoteins
+ \ifcase\noteparameter\c!n\relax
+ \iftrialtypesetting\unvcopied\else\unvboxed\fi\currentnoteins
+ \or
+ \iftrialtypesetting\copy\else\box\fi\currentnoteins
+ \obeydepth % (a) added , since split footnotes will not align properly
+ \else
+ \iftrialtypesetting\unvcopied\else\unvboxed\fi\currentnoteins
+ \fi}%
+ \setbox\scratchbox\hbox
+ {\localframed
+ [\??vn\currentnote]
+ [\c!width=\v!fit,
+ \c!height=\v!fit,
+ \c!strut=\v!no,
+ \c!offset=\v!overlay]
+ {\ifdim\dp\scratchbox=\zeropoint % this hack is needed because \vadjust
+ \hbox{\lower\strutdp\box\scratchbox}% % in margin number placement
+ \else % hides the (always) present depth
+ \box\scratchbox
+ \fi}}%
+ \setbox\scratchbox\hbox{\lower\strutdepth\box\scratchbox}%
+ \dp\scratchbox\strutdepth % so we know that it has the note bodyfont depth
+ \box\scratchbox
+ \egroup
+ \endgraf
+ \ifvmode
+ \noteparameter\c!after
+ \fi
+ \fi
+ \fi}
+
+%D Supporting end notes is surprisingly easy. Even better, we
+%D can combine this feature with solving the common \TEX\
+%D problem of disappearing inserts when they're called for in
+%D deeply nested boxes. The general case looks like:
+%D
+%D \starttyping
+%D \postponenotes
+%D \.box{whatever we want with footnotes}
+%D \flushnotes
+%D \stoptyping
+%D
+%D This alternative can be used in headings, captions, tables
+%D etc. The latter one sometimes calls for notes local to
+%D the table, which can be realized by saying
+%D
+%D \starttyping
+%D \setlocalfootnotes
+%D some kind of table with local footnotes
+%D \placelocalfootnotes
+%D \stoptyping
+%D
+%D Postponing is accomplished by simply redefining the (local)
+%D insert operation. A not too robust method uses the
+%D \type{\insert} primitive when possible. This method fails in
+%D situations where it's not entirely clear in what mode \TEX\
+%D is. Therefore the auto method can is to be overruled when
+%D needed.
+
+\newconditional\postponingnotes
+
+% we need a proper state: normal, postponing, flushing
+
+\def\postponenotes
+ {\ifconditional\postponingnotes\else
+ \global\settrue\postponingnotes
+ \global\let\flushnotes\doflushnotes
+ \ctxlua{structure.notes.postpone()}%
+ \fi}
+
+\let\flushnotes\relax
+
+\def\doflushnotes
+ {\ifconditional\postponingnotes
+ \begingroup
+ \let\flushnotes \relax
+ \let\postponenotes\relax
+ \ctxlua{structure.notes.flushpostponed()}% this also resets the states !
+ \global\setfalse\postponednote
+ \global\setfalse\postponingnotes
+ \global\let\flushnotes\relax
+ \endgroup
+ \fi}
+
+%D \macros
+%D {startlocalfootnotes,placelocalfootnotes}
+%D
+%D The next two macros can be used in for instance tables, as
+%D we'll demonstrate later on.
+%D
+%D \showsetup{startlocalfootnotes}
+%D \showsetup{placelocalfootnotes}
+
+% todo: compatibility mode: when first arg is assignment or missing, then all
+
+\newtoks\everyplacelocalnotes
+
+\appendtoks
+ \let\flushnotes \relax
+ \let\postponenotes\relax
+\to \everyplacelocalnotes
+
+\def\defaultnotewidth{\makeupwidth} % {\ifdim\hsize<\makeupwidth\hsize\else\makeupwidth\fi}
+
+\def\startlocalnotes
+ {\dosingleempty\dostartlocalnotes}
+
+\def\dostartlocalnotes[#1]%
+ {\def\localnoteslist{#1}%
+ \processcommacommand[\localnoteslist]\dodostartlocalnotes}
+
+\def\stoplocalnotes
+ {\processcommacommand[\localnoteslist]\dodostoplocalnotes}
+
+\def\dodostartlocalnotes#1%
+ {\savestructurecounter[#1]%
+ \resetstructurecounter[#1]%
+ \ctxlua{structure.notes.save("#1","store")}}
+
+\def\dodostoplocalnotes#1%
+ {\restorestructurecounter[#1]%
+ \ctxlua{structure.notes.restore("#1")}}
+
+\def\placelocalnotes
+ {\dodoubleempty\doplacelocalnotes}
+
+\def\doplacelocalnotes[#1][#2]%
+ {\doif{\ctxlua{structure.notes.getstate("#1")}}{store}{\dodoplacelocalnotes{#2}{#1}}}
+
+\def\dodoplacelocalnotes#1#2% settings note
+ {\begingroup
+ \the\everyplacelocalnotes
+ % beware, we cannot trust setting \currentnote here
+ \getparameters[\??vn#2][\c!width=\v!fit,\c!height=\v!fit,\c!strut=\v!no,\c!offset=\v!overlay,#1]% we only need a selective one
+ \donotealternative{#2}%
+ \endgroup
+ \dochecknote} % we need to restore the old state
+
+%D These commands can be used like:
+%D
+%D \startbuffer
+%D \startlocalnotes[width=.3\hsize,n=0]
+%D \placetable
+%D {Some Table}
+%D \placeontopofeachother
+%D {\starttable[|l|r|]
+%D \HL
+%D \VL Nota\footnote{Bene} \VL Bene\footnote{Nota} \VL\SR
+%D \VL Bene\footnote{Nota} \VL Nota\footnote{Bene} \VL\SR
+%D \HL
+%D \stoptable}
+%D {\placelocalnotes}
+%D \stoplocalnotes
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D Because this table placement macro expect box content, and
+%D thanks to the grouping of the local footnotes, we don't need
+%D additional braces.
+%D
+%D \getbuffer
+
+%D \macros
+%D {placefootnotes}
+%D
+%D We still have no decent command for placing footnotes
+%D somewhere else than at the bottom of the page (for which no
+%D user action is needed). Footnotes (endnotes) can be
+%D placed by using
+%D
+%D \showsetup{placefootnotes}
+
+\def\placebottomnotes
+ {\processnotes\placenoteinserts}
+
+\def\placenotes
+ {\dodoubleempty\doplacenotes}
+
+\def\doplacenotes[#1][#2]%
+ {\processcommalist[#1]{\dodoplacenotes{#2}}}
+
+\def\dodoplacenotes#1#2% settings note
+ {\edef\currentnote{#2}%
+ \doifelse{\ctxlua{structure.notes.getstate("#2")}}{store}
+ \dodoplacelocalnotes
+ \dodoplaceglobalnotes
+ {#1}{#2}}
+
+\def\dodoplaceglobalnotes#1#2%
+ {\begingroup
+ \setupnote[#2][#1]%
+ \doplacenoteinserts
+ \endgroup
+ \the\everysetupnote} % to be checkes
+
+%D Placement
+
+\long\def\installnotealternative#1#2%
+ {\setvalue{\??vn:\c!alternative:#1}{#2}}
+
+\def\doifnotescollected#1%
+ {\ctxlua{structure.notes.doifcontent("#1")}}
+
+\def\donotealternative#1%
+ {\edef\currentnote{#1}%
+ \doifnotescollected\currentnote
+ {\endgraf
+ \ifvmode
+ \whitespace
+ \noteparameter\c!before
+ \fi
+ \begingroup
+ \setnotebodyfont
+ \getvalue{\??vn:\c!alternative:\noteparameter\c!alternative}%
+ \endgroup
+ \ifvmode
+ \noteparameter\c!after
+ \fi}}
+
+\setvalue{\??vn:\c!alternative:}{\getvalue{\??vn:\c!alternative:\v!none}}
+
+%D A stupid alternative is also provided:
+%D
+%D \starttyping
+%D \setupfootnotes[location=text,alternative=none]
+%D \stoptyping
+
+\def\flushlocalnotes#1{\ctxlua{structure.notes.flush("#1","store")}}
+
+\installnotealternative \v!none
+ {\flushlocalnotes\currentnote}
+
+\installnotealternative \v!grid % test if n > 0
+ {\snaptogrid\hbox
+ {\localframed
+ [\??vn\currentnote]
+ {\flushlocalnotes\currentnote}}}
+
+\installnotealternative \v!fixed % test if n > 0
+ {\localframed
+ [\??vn\currentnote]
+ {\flushlocalnotes\currentnote}}
+
+\installnotealternative \v!columns % redundant
+ {\localframed
+ [\??vn\currentnote]
+ {\edef\currentnotewidth{\noteparameter\c!width}%
+ \doifdimensionelse\currentnotewidth\donothing
+ {\edef\currentnotewidth{\the\hsize}}%
+% \setupinmargin[\c!align=\v!left]%
+ \startsimplecolumns[\c!distance=\noteparameter\c!columndistance,\c!n=\noteparameter\c!n,\c!width=\currentnotewidth]%
+ \flushlocalnotes\currentnote
+ \stopsimplecolumns}}
+
+%D \macros
+%D {fakenotes}
+
+ % is this ok? endnotes and such
+
+ \def\fakenotes
+ {\ifhmode\endgraf\fi\ifvmode
+ \calculatetotalclevernoteheight
+ \ifdim\totalnoteheight>\zeropoint \kern\totalnoteheight \fi
+ \fi}
+
+ \def\fakepagenotes
+ {\ifhmode\endgraf\fi\ifvmode
+ \calculatetotalpagenoteheight
+ \ifdim\totalnoteheight>\zeropoint \kern\totalnoteheight \fi
+ \fi}
+
+ \newdimen\totalnoteheight
+
+ \def\doaddtototalnoteheight#1%
+ {\ifdim\ht#1>\zeropoint
+ \advance\totalnoteheight\ht #1%
+ \advance\totalnoteheight\skip#1%
+ \fi}
+
+ \def\docalculatetotalnoteheight
+ {\ifcase\clevernotes % tricky here ! ! ! to be sorted out ! ! !
+ \doaddtototalnoteheight\currentnoteins
+ \else
+ \doaddtototalnoteheight\currentbackupnoteins
+ \fi}
+
+ \def\docalculatetotalclevernoteheight
+ {\ifcase\clevernotes \else % tricky here ! ! ! to be sorted out ! ! !
+ \doaddtototalnoteheight\currentnoteins
+ \fi}
+
+ \def\docalculatetotalpagenoteheight
+ {\doaddtototalnoteheight\currentnoteins}
+
+ \def\calculatetotalnoteheight {\totalnoteheight\zeropoint\processnotes\docalculatetotalnoteheight}
+ \def\calculatetotalclevernoteheight{\totalnoteheight\zeropoint\processnotes\docalculatetotalclevernoteheight}
+ \def\calculatetotalpagenoteheight {\totalnoteheight\zeropoint\processnotes\docalculatetotalpagenoteheight}
+
+ \newif\ifnotespresent
+
+ \def\dochecknotepresence
+ {\ifdim\ht\currentnoteins>\zeropoint
+ \notespresenttrue
+ \fi}
+
+ \def\checknotepresence
+ {\notespresentfalse
+ \processnotes\dochecknotepresence}
+
+%D Now how can this mechanism be hooked into \CONTEXT\ without
+%D explictly postponing footnotes? The solution turned out to
+%D be rather simple:
+%D
+%D \starttyping
+%D \everypar {...\flushnotes...}
+%D \neverypar {...\postponenotes}
+%D \stoptyping
+%D
+%D and
+%D
+%D \starttyping
+%D \def\ejectinsert%
+%D {...
+%D \flushnotes
+%D ...}
+%D \stoptyping
+%D
+%D We can use \type{\neverypar} because in most commands
+%D sensitive to footnote gobbling we disable \type{\everypar}
+%D in favor for \type{\neverypar}. In fact, this footnote
+%D implementation is the first to use this scheme.
+
+%D This is a nasty and new secondary footnote flusher. It
+%D can be hooked into \type {\everypar} like:
+%D
+%D \starttyping
+%D \appendtoks \synchronizenotes \to \everypar
+%D \stoptyping
+
+ % \def\dosynchronizenotes
+ % {\ifvoid\currentnoteins\else\insert\currentnoteins{\unvbox\currentnoteins}\fi}
+ %
+ % \def\synchronizenotes
+ % {\processnotes\dosynchronizenotes}
+
+\let\synchronizenotes\relax
+
+%D When typesetting footnotes, we have to return to the
+%D footnote specific bodyfont size, which is in most cases derived
+%D from the global document bodyfont size. In the previous macros
+%D we already used a footnote specific font setting macro.
+
+\def\setnotebodyfont
+ {\let\setnotebodyfont\relax
+ \restoreglobalbodyfont
+ \switchtobodyfont[\noteparameter\c!bodyfont]%
+ \setuptolerance[\noteparameter\c!tolerance]%
+ \setupalign[\noteparameter\c!align]}
+
+%D The footnote mechanism defaults to a traditional one
+%D column way of showing them. By default we precede them by
+%D a small line.
+
+\ifx\v!endnote\undefined \def\v!endnote{endnote} \fi
+
+\definenote [\v!footnote]
+\definenote [\v!endnote ] [\c!location=\v!none] % else no break
+
+%D Compatibility macros:
+
+ \def\setupfootnotedefinition{\setupnotedefinition [\v!footnote]}
+ \def\setupfootnotes {\setupnote [\v!footnote]}
+%unexpanded \def\footnote {\setnote [\v!footnote]}
+\unexpanded \def\footnotetext {\setnotetext [\v!footnote]}
+ %def\note {\dodoubleempty\notesymbol [\v!footnote]} % alleen footnote
+ \def\placefootnotes {\dodoubleempty\doplacefootnotes [\v!footnote]}
+ \def\placelocalfootnotes {\dodoubleempty\doplacelocalfootnotes[\v!footnote]}
+ \def\startlocalfootnotes {\startlocalnotes [\v!footnote]} % alleen footnote
+ \def\stoplocalfootnotes {\stoplocalnotes }
+
+\def\doplacefootnotes [#1][#2]{\ifsecondargument\placenotes [#1][#2,\c!height=\textheight]\else\placenotes [#1]\fi}
+\def\doplacelocalfootnotes[#1][#2]{\ifsecondargument\placelocalnotes[#1][#2,\c!height=\textheight]\else\placelocalnotes[#1]\fi}
+
+\def\note{\dodoubleempty\donote}
+
+\def\donote[#1][#2]{\ifsecondargument\donotesymbol[#1][#2]\else\secondargumenttrue\donotesymbol[\v!footnote][#1]\fi}
+
+%D New trickery:
+
+\def\ownnotesymbol#1% #1 gets number passed
+ {\executeifdefined{\??vn::\currentnote}\empty}
+
+\def\setnotesymbol[#1]#2#3%
+ {\prewordbreak % prevent lookback
+ \setgvalue{\??vn::#1}{#3}
+ \dolastnotesymbol}
+
+\def\ownnote[#1]#2#3#4%
+ {\setnotesymbol[#1]{#2}{#3}%
+ \setnotetext [#1]{#4}}
+
+\defineconversion
+ [ownnote]
+ [\ownnotesymbol]
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/strc-num.lua b/Master/texmf-dist/tex/context/base/strc-num.lua
new file mode 100644
index 00000000000..431200b3993
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/strc-num.lua
@@ -0,0 +1,477 @@
+if not modules then modules = { } end modules ['strc-num'] = {
+ version = 1.001,
+ comment = "companion to strc-num.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local format = string.format
+local next, type = next, type
+local min, max = math.min, math.max
+local texsprint, texcount = tex.sprint, tex.count
+
+structure = structure or { }
+structure.helpers = structure.helpers or { }
+structure.sections = structure.sections or { }
+structure.counters = structure.counters or { }
+structure.documents = structure.documents or { }
+
+structure.counters = structure.counters or { }
+structure.counters.data = structure.counters.data or { }
+
+local helpers = structure.helpers
+local sections = structure.sections
+local counters = structure.counters
+local documents = structure.documents
+
+local variables = interfaces.variables
+
+-- state: start stop none reset
+
+local counterdata = counters.data
+local counterranges, tbs = { }, 0
+
+counters.collected = counters.collected or { }
+counters.tobesaved = counters.tobesaved or { }
+
+storage.register("structure/counters/data", structure.counters.data, "structure.counters.data")
+storage.register("structure/counters/tobesaved", structure.counters.tobesaved, "structure.counters.tobesaved")
+
+local collected, tobesaved = counters.collected, counters.tobesaved
+
+local function finalizer()
+ local ct = counters.tobesaved
+ for name, cd in next, counterdata do
+ local cs = tobesaved[name]
+ local data = cd.data
+ for i=1,#data do
+ local d = data[i]
+ local r = d.range
+ cs[i][r] = d.number
+ d.range = r + 1
+ end
+ end
+end
+
+local function initializer()
+ collected, tobesaved = counters.collected, counters.tobesaved
+end
+
+if job then
+ job.register('structure.counters.collected', structure.counters.tobesaved, initializer, finalizer)
+end
+
+local function constructor(t,s,name,i)
+ if s == "last" then
+ local cc = collected[name]
+ t.stop = (cc and cc[i] and cc[i][t.range]) or 0 -- stop is available for diagnostics purposes only
+ if t.offset then
+ return t.stop - t.step
+ else
+ return t.stop
+ end
+ elseif s == "first" then
+ if t.start > 0 then
+ return t.start -- brrr
+ elseif t.offset then
+ return t.start + t.step + 1
+ else
+ return t.start + 1
+ end
+ elseif s == "prev" or s == "previous" then
+ return max(t.first,t.number-1) -- todo: step
+ elseif s == "next" then
+ return min(t.last,t.number+1) -- todo: step
+ elseif s == "backward" then
+ if t.number - 1 < t.first then
+ return t.last
+ else
+ return t.previous
+ end
+ elseif s == "forward" then
+ if t.number + 1 > t.last then
+ return t.first
+ else
+ return t.next
+ end
+ elseif s == "subs" then
+ local cc = collected[name]
+ t.subs = (cc and cc[i+1] and cc[i+1][t.range]) or 0
+ return t.subs
+ else
+ return nil -- was 0, but that is fuzzy in testing for e.g. own
+ end
+end
+
+local enhance = function()
+ for name, cd in next, counterdata do
+ local data = cd.data
+ for i=1,#data do
+ local ci = data[i]
+ setmetatable(ci, { __index = function(t,s) return constructor(t,s,name,i) end })
+ end
+ end
+ enhance = nil
+end
+
+local function allocate(name,i)
+ local cd = counterdata[name]
+ if not cd then
+ cd = {
+ level = 1,
+ numbers = nil,
+ state = variables.start, -- true
+ data = { }
+ }
+ tobesaved[name] = { }
+ counterdata[name] = cd
+ end
+ cd = cd.data
+ local ci = cd[i]
+ if not ci then
+ ci = {
+ number = 0,
+ start = 0,
+ saved = 0,
+ step = 1,
+ range = 1,
+ offset = false,
+ -- via metatable: last, first, and for tracing:
+ stop = 0,
+ }
+ setmetatable(ci, { __index = function(t,s) return constructor(t,s,name,i) end })
+ cd[i] = ci
+ tobesaved[name][i] = { }
+ else
+ if enhance then enhance() end -- not stored in bytecode
+ end
+ return ci
+end
+
+function counters.record(name,i)
+ return allocate(name,i or 1)
+end
+
+local function savevalue(name,i)
+ local cd = counterdata[name].data[i]
+ local cs = tobesaved[name][i]
+ local cc = collected[name]
+ local cr = cd.range
+ local old = (cc and cc[i] and cc[i][cr]) or 0
+ cs[cr] = cd.number
+ cd.range = cr + 1
+ return old
+end
+
+function counters.define(name, start, counter) -- todo: step
+ local d = allocate(name,1)
+ d.start = start
+ if counter ~= "" then
+ d.counter = counter -- only for special purposes, cannot be false
+ end
+end
+
+function counters.trace(name)
+ local cd = counterdata[name]
+ if cd then
+ texsprint(format("[%s:",name))
+ local data = cd.data
+ for i=1,#data do
+ local d = data[i]
+ texsprint(format(" (%s: %s,%s,%s s:%s r:%s)",i,(d.start or 0),d.number or 0,d.last,d.step or 0,d.range or 0))
+ end
+ texsprint("]")
+ end
+end
+
+function counters.raw(name)
+ return counterdata[name]
+end
+
+function counters.compact(name,level,onlynumbers)
+ local cd = counterdata[name]
+--~ print(name,cd)
+ if cd then
+ local data = cd.data
+ local compact = { }
+ for i=1,level or #data do
+ local d = data[i]
+ if d.number ~= 0 then
+ compact[i] = (onlynumbers and d.number) or d
+ end
+ end
+ return compact
+ end
+end
+
+-- depends on when incremented, before or after (driven by d.offset)
+
+function counters.doifelse(name)
+ commands.doifelse(counterdata[name])
+end
+
+function counters.previous(name,n)
+ texsprint(allocate(name,n).previous)
+end
+
+function counters.next(name,n)
+ texsprint(allocate(name,n).next)
+end
+
+counters.prev = counters.previous
+
+function counters.current(name,n)
+ texsprint(allocate(name,n).number)
+end
+
+function counters.first(name,n)
+ texsprint(allocate(name,n).first)
+end
+
+function counters.last(name,n)
+ texsprint(allocate(name,n).last)
+end
+
+function counters.subs(name,n)
+ texsprint(counterdata[name].data[n].subs or 0)
+end
+
+function counters.setvalue(name,tag,value)
+ local cd = counterdata[name]
+ if cd then
+ cd[tag] = value
+ end
+end
+
+function counters.setstate(name,value) -- true/false
+ value = variables[value]
+ if value then
+ counters.setvalue(name,"state",value)
+ end
+end
+
+function counters.setlevel(name,value)
+ counters.setvalue(name,"level",value)
+end
+
+function counters.setoffset(name,value)
+ counters.setvalue(name,"offset",value)
+end
+
+function counters.reset(name,n)
+ local cd = counterdata[name]
+ if cd then
+ for i=n or 1,#cd.data do
+ local d = cd.data[i]
+ savevalue(name,i)
+ d.number = d.start or 0
+ d.own = nil
+ if d.counter then texcount[d.counter] = d.number end
+ end
+ cd.numbers = nil
+ end
+end
+
+function counters.set(name,n,value)
+ local cd = counterdata[name]
+ if cd then
+ local d = allocate(name,n)
+ d.number = value or 0
+ d.own = nil
+ if d.counter then texcount[d.counter] = d.number end
+ end
+end
+
+local function check(name,data,start,stop)
+ for i=start or 1,stop or #data do
+ local d = data[i]
+ savevalue(name,i)
+ d.number = d.start or 0
+ d.own = nil
+ if d.counter then texcount[d.counter] = d.number end
+ end
+end
+
+function counters.setown(name,n,value)
+ local cd = counterdata[name]
+ if cd then
+ local d = allocate(name,n)
+ d.own = value
+ d.number = (d.number or d.start or 0) + (d.step or 0)
+ if cd.level and cd.level > 0 then -- 0 is signal that we reset manually
+ check(name,data,n+1) -- where is check defined
+ end
+ if d.counter then texcount[d.counter] = d.number end
+ end
+end
+
+function counters.restart(name,n,newstart)
+ local cd = counterdata[name]
+ if cd then
+ newstart = tonumber(newstart)
+ if newstart then
+ local d = allocate(name,n)
+ d.start = newstart
+ counters.reset(name,n)
+ end
+ end
+end
+
+function counters.save(name) -- or just number
+ local cd = counterdata[name]
+ if cd then
+ cd.saved = table.copy(cd.data)
+ end
+end
+
+function counters.restore(name)
+ local cd = counterdata[name]
+ if cd and cd.saved then
+ cd.data = cd.saved
+ cd.saved = nil
+ end
+end
+
+function counters.add(name,n,delta)
+ local cd = counterdata[name]
+ if cd and cd.state == variables.start then
+ local data = cd.data
+ local d = allocate(name,n)
+ d.number = (d.number or d.start or 0) + delta*(d.step or 0)
+ if cd.level and cd.level > 0 then -- 0 is signal that we reset manually
+ check(name,data,n+1)
+ end
+ if d.counter then texcount[d.counter] = d.number end
+ return d.number
+ end
+ return 0
+end
+
+function counters.check(level)
+ for _, v in next, counterdata do
+ if v.level == level then -- is level for whole counter!
+ local data = v.data
+ check(name,data)
+ end
+ end
+end
+
+function counters.get(name,n,key)
+ local d = allocate(name,n)
+ d = d and d[key]
+ if not d then
+ return 0
+ elseif type(d) == "function" then
+ return d()
+ else
+ return d
+ end
+end
+
+function counters.value(name,n) -- what to do with own
+ tex.write(counters.get(name,n or 1,'number') or 0)
+end
+
+function counters.converted(name,spec) -- name can be number and reference to storage
+ local cd
+ if type(name) == "number" then
+ cd = specials.retrieve("counter",name)
+ cd = cd and cd.counter
+ else
+ cd = counterdata[name]
+ end
+ if cd then
+ local spec = spec or { }
+ local numbers, ownnumbers = { }, { }
+ local reverse = spec.order == variables["reverse"]
+ local kind = spec.type or "number"
+ local v_first, v_next, v_previous, v_last = variables.first, variables.next, variables.previous, variables.last
+ local data = cd.data
+ for k=1,#data do
+ local v = data[k]
+ -- somewhat messy, what if subnr? only last must honour kind?
+ local vn
+ if v.own then
+ numbers[k], ownnumbers[k] = v.number, v.own
+ else
+ if kind == v_first then
+ vn = v.first
+ elseif kind == v_next then
+ vn = v.next
+ elseif kind == v_previous then
+ vn = v.prev
+ elseif kind == v_last then
+ vn = v.last
+ else
+ vn = v.number
+ if reverse then
+ local vf = v.first
+ local vl = v.last
+ if vl > 0 then
+ vn = vl - vn + 1 + vf
+ end
+ end
+ end
+ numbers[k], ownnumbers[k] = vn or v.number, nil
+ end
+ end
+ cd.numbers = numbers
+ cd.ownnumbers = ownnumbers
+ sections.typesetnumber(cd,'number',spec)
+ cd.numbers = nil
+ cd.ownnumbers = nil
+ end
+end
+
+-- move to strc-pag.lua
+
+function counters.analyse(name,counterspecification)
+ local cd = counterdata[name]
+ -- safeguard
+ if not cd then
+ return false, false, "no counter data"
+ end
+ -- section data
+ local sectiondata = sections.current()
+ if not sectiondata then
+ return cd, false, "not in section"
+ end
+ local references = sectiondata.references
+ if not references then
+ return cd, false, "no references"
+ end
+ local section = references.section
+ if not section then
+ return cd, false, "no section"
+ end
+ sectiondata = jobsections.collected[references.section]
+ if not sectiondata then
+ return cd, false, "no section data"
+ end
+ -- local preferences
+ local no = variables.no
+ if counterspecification and counterspecification.prefix == no then
+ return cd, false, "current spec blocks prefix"
+ end
+ -- stored preferences (not used)
+ if cd.prefix == no then
+ return cd, false, "entry blocks prefix"
+ end
+ -- sectioning
+ -- if sectiondata.prefix == no then
+ -- return false, false, "sectiondata blocks prefix"
+ -- end
+ -- final verdict
+ return cd, sectiondata, "okay"
+end
+
+function counters.prefixedconverted(name,prefixspec,numberspec)
+ local cd, prefixdata, result = counters.analyse(name,prefixspec)
+ if cd then
+ if prefixdata then
+ sections.typesetnumber(prefixdata,"prefix",prefixspec or false,cd or false)
+ end
+ counters.converted(name,numberspec)
+ end
+end
diff --git a/Master/texmf-dist/tex/context/base/core-num.tex b/Master/texmf-dist/tex/context/base/strc-num.mkii
index 3f75b93d079..28f69b441a1 100644
--- a/Master/texmf-dist/tex/context/base/core-num.tex
+++ b/Master/texmf-dist/tex/context/base/strc-num.mkii
@@ -1,7 +1,7 @@
%D \module
-%D [ file=core-num,
+%D [ file=strc-num,
%D version=1997.03.31,
-%D title=\CONTEXT\ Core Macros,
+%D title=\CONTEXT\ Structure Macros,
%D subtitle=Numbering,
%D author=Hans Hagen,
%D date=\currentdate,
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Core Macros / Numbering}
+\writestatus{loading}{ConTeXt Structure Macros / Numbering}
\unprotect
@@ -29,7 +29,7 @@
% \convertednumber[name]
% \rawnumber[name]
-% private (defined in core-sec.tex)
+% private (defined in core-des.tex)
%
% \nextnumber[name][tag][reference]
% \currentnumber[name]
@@ -102,23 +102,6 @@
\def\reset
{\dosingleargument\doreset}
-% nieuw, maar kan dit (i.v.m. (sub)page?)
-
-% \def\incrementnumber[#1]%
-% {\checknumber[#1]%
-% \doifelse\@@nrstatus\v!start
-% {\pluscounter{\@@thenumber{#1}}}
-% {\setcounter{\@@thenumber{#1}}{0\csname\@@thenumber{#1}\c!start\endcsname}}}
-
-% \def\incrementnumber[#1]% bypage tricky: needs a
-% {\doifelse{\numberparameter{#1}\c!way}{\v!by\v!page}
-% {\checkpagechange{#1}%
-% \ifpagechanged\resetcounter{\@@thenumber{#1}}\fi}
-% {\checknumber[#1]}%
-% \doifelse\@@nrstate\v!start % only here
-% {\pluscounter{\@@thenumber{#1}}}
-% {\setcounter{\@@thenumber{#1}}{0\numberparameter{#1}\c!start}}}
-
\def\incrementnumber[#1]% bypage tricky: needs a
{\doifelse{\numberparameter{#1}\c!way}{\v!by\v!page}
{\checkpagechange{#1}%
diff --git a/Master/texmf-dist/tex/context/base/strc-num.mkiv b/Master/texmf-dist/tex/context/base/strc-num.mkiv
new file mode 100644
index 00000000000..9f6733a6cbd
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/strc-num.mkiv
@@ -0,0 +1,471 @@
+%D \module
+%D [ file=strc-num,
+%D version=2008.10.20,
+%D title=\CONTEXT\ Structure Macros,
+%D subtitle=Basic Numbering,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA-ADE / Hans Hagen]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Structure Macros / Basic Numbering}
+
+\registerctxluafile{strc-num}{1.001}
+
+\unprotect
+
+% we need to rework this, i.e. clone like itm, des etc with \s!parent
+
+% numbering
+
+% \definestructurecounter[name]
+% \setupstructurecounter[name][wijze=,blok=,tekst=,plaats=,conversie=,start=]
+% \setstructurecounter[name]{value}
+% \resetstructurecounter[name]
+% \incrementstructurecounter[name]
+% \decrementstructurecounter[name]
+% \savestructurecounter[name]
+% \restorestructurecounter[name]
+% \convertedstructurecounter[name] % depricated: \getstructurecounter[name]
+% \rawstructurecounter[name]
+
+% private (defined in core-sec.tex)
+%
+% \nextstructurecounter[name][tag][reference]
+% \currentstructurecounter[name]
+
+% todo: better inheritane system
+
+\definesystemvariable {nn}
+
+\def\setupstructurecountering{\dodoubleempty\getparameters[\??nn]}
+
+\setupstructurecountering
+ [\c!way=\v!by\v!chapter,
+% \c!blockway=,
+% \c!prefixstopper=,
+\c!prefixconnector=.,
+\c!prefixsegments=\thenamedstructurecounterlevel\currentstructurecounter,
+\c!start=0,
+\c!state=\v!start,
+ \c!prefix=\v!yes,
+ \c!state=\v!start]
+
+% \letvalue{\??nn\s!empty}\empty
+
+\def\structurecounterparameter#1#2%
+ {\csname
+ \ifcsname\??nn#1#2\endcsname
+ \??nn#1#2%
+ \else\ifcsname\??nn\@@thestructurecounter{#1}#2\endcsname
+ \??nn\@@thestructurecounter{#1}#2%
+ \else\ifcsname\??nn#2\endcsname
+ \??nn#2%
+ \else
+ \s!empty
+ \fi\fi\fi
+ \endcsname}
+
+\def\@@thestructurecounter#1%
+ {\ifcsname\??nn#1\c!number\endcsname
+ \expandafter\@@thestructurecounter\csname\??nn#1\c!number\endcsname
+ \else
+ #1%
+ \fi}
+
+% \def\structurecounterparameter #1#2{\csname\dostructurecounterparameter{\??nn#1}#2\endcsname}
+% \def\dostructurecounterparameter #1#2{\ifcsname#1#2\endcsname#1#2\else\expandafter\dostructurecounterparentparameter\csname#1\s!number\endcsname#2\fi}
+% \def\dostructurecounterparentparameter#1#2{\ifx#1\relax\s!empty\else\dostructurecounterparameter#1#2\fi}
+
+%
+
+\def\definestructurecounter
+ {\dodoubleempty\dodefinestructurecounter}
+
+\def\dodefinestructurecounter[#1][#2]%
+ {\doifassignmentelse{#2}
+ {\dododefinestructurecounter[#1][#2]}
+ {\doifelsenothing{#2}
+ {\dododefinestructurecounter[#1][]}
+ {\donodefinestructurecounter[#1][#2]}}}
+
+\def\dododefinestructurecounter[#1][#2]%
+ {\getparameters[\??nn#1][\s!counter=,#2]% counter is for internal purposes
+ \ctxlua{structure.counters.define("#1",tonumber("\structurecounterparameter{#1}\c!start") or 0,"\structurecounterparameter{#1}\s!counter")}%
+ \docheckstructurecountersetup{#1}}
+
+\def\donodefinestructurecounter[#1][#2]% inherit
+ {\getparameters[\??nn#1][\c!number=#2]%
+ \docheckstructurecountersetup{#1}}
+
+\def\setupstructurecounter
+ {\dodoubleargument\dosetupstructurecounter}
+
+\def\dosetupstructurecounter[#1][#2]%
+ {\getparameters[\??nn#1][\c!start=,#2]%
+ \docheckstructurecountersetup{#1}}
+
+\def\structurecounterway#1% slow, we need to store it at the tex end
+ {\ctxlua{structure.sections.way("\structurecounterparameter{#1}\c!way","\v!by")}}
+
+\def\thenamedstructurecounterlevel#1%
+ {\thenamedstructureheadlevel{\structurecounterway{#1}}}
+
+\def\docheckstructurecountersetup#1%
+ {% this can be done at the lua end / a bit messy here ... todo ...
+ \ifcsname\??nn#1\c!number\endcsname
+ \doifelsevalue {\??nn#1\c!number}{#1} {\letbeundefined{\??nn#1\c!number}}%
+ {\doifvaluenothing{\??nn#1\c!number} {\letbeundefined{\??nn#1\c!number}}}%
+ \fi
+ \ifcsname\??nn#1\c!number\endcsname
+ % it's a clone
+ \else
+ \edef\currentstructurecounterlevel{\thenamedstructurecounterlevel{#1}}%
+ \ctxlua{
+ structure.counters.restart("#1",1,"\structurecounterparameter{#1}\c!start")
+ structure.counters.setstate("#1","\structurecounterparameter{#1}\c!state")
+ structure.counters.setlevel("#1",\currentstructurecounterlevel)
+ structure.sections.setchecker("#1",\currentstructurecounterlevel,structure.counters.reset)
+ }%
+ \fi}
+
+\def\doifstructurecounterelse#1{\ctxlua{structure.counters.doifelse("\@@thestructurecounter{#1}")}}
+\def\doifstructurecounter #1{\ctxlua{structure.counters.doif ("\@@thestructurecounter{#1}")}}
+\def\doifnotstructurecounter #1{\ctxlua{structure.counters.doifnot ("\@@thestructurecounter{#1}")}}
+
+\def\setstructurecounter [#1]#2{\ctxlua{structure.counters.set ("\@@thestructurecounter{#1}",1,\number#2)}}
+\def\setstructurecounterown [#1]#2{\ctxlua{structure.counters.setown ("\@@thestructurecounter{#1}",1,"#2")}}
+\def\resetstructurecounter [#1]{\ctxlua{structure.counters.reset ("\@@thestructurecounter{#1}",1)}}
+\def\restartstructurecounter [#1]#2{\ctxlua{structure.counters.restart("\@@thestructurecounter{#1}",1,#2)}}
+\def\savestructurecounter [#1]{\ctxlua{structure.counters.save ("\@@thestructurecounter{#1}")}}
+\def\restorestructurecounter [#1]{\ctxlua{structure.counters.restore("\@@thestructurecounter{#1}")}}
+\def\incrementstructurecounter [#1]{\ctxlua{structure.counters.add ("\@@thestructurecounter{#1}",1,1)}}
+\def\decrementstructurecounter [#1]{\ctxlua{structure.counters.add ("\@@thestructurecounter{#1}",1,-1)}}
+\def\rawstructurecounter [#1]{\ctxlua{structure.counters.value ("\@@thestructurecounter{#1}",1)}}
+\def\laststructurecounter [#1]{\ctxlua{structure.counters.last ("\@@thestructurecounter{#1}",1)}}
+\def\firststructurecounter [#1]{\ctxlua{structure.counters.first ("\@@thestructurecounter{#1}",1)}}
+\def\nextstructurecounter [#1]{\ctxlua{structure.counters.next ("\@@thestructurecounter{#1}",1)}}
+\def\prevstructurecounter [#1]{\ctxlua{structure.counters.prev ("\@@thestructurecounter{#1}",1)}}
+\def\structurecountersubs [#1]{\ctxlua{structure.counters.subs ("\@@thestructurecounter{#1}",1)}}
+
+\def\tracestructurecounter [#1]{\ctxlua{structure.counters.trace ("\@@thestructurecounter{#1}")}}
+
+\def\incrementedstructurecounter[#1]{\ctxlua{tex.write(structure.counters.add("\@@thestructurecounter{#1}",1,1))}}
+\def\decrementedstructurecounter[#1]{\ctxlua{tex.write(structure.counters.add("\@@thestructurecounter{#1}",1,-1))}}
+
+\def\setsubstructurecounter {\dodoubleargument\dosetsubstructurecounter}
+\def\setsubstructurecounterown {\dodoubleargument\dosetsubstructurecounterown}
+\def\resetsubstructurecounter {\dodoubleargument\doresetsubstructurecounter}
+\def\restartsubstructurecounter {\dodoubleargument\dorestartsubstructurecounter}
+\def\incrementsubstructurecounter {\dodoubleargument\doincrementsubstructurecounter}
+\def\decrementsubstructurecounter {\dodoubleargument\dodecrementsubstructurecounter}
+\def\rawsubstructurecounter {\dodoubleargument\dorawsubstructurecounter}
+
+\def\dosetsubstructurecounter [#1][#2]#3{\ctxlua{structure.counters.set ("\@@thestructurecounter{#1}",#2,\number#3)}}
+\def\dosetsubstructurecounterown [#1][#2]#3{\ctxlua{structure.counters.setown ("\@@thestructurecounter{#1}",#2,"#3")}}
+\def\doresetsubstructurecounter [#1][#2]{\ctxlua{structure.counters.reset ("\@@thestructurecounter{#1}",#2)}}
+\def\dorestartsubstructurecounter [#1][#2]#3{\ctxlua{structure.counters.restart("\@@thestructurecounter{#1}",#2,#3)}}
+\def\doincrementsubstructurecounter [#1][#2]{\ctxlua{structure.counters.add ("\@@thestructurecounter{#1}",#2,1)}}
+\def\dodecrementsubstructurecounter [#1][#2]{\ctxlua{structure.counters.add ("\@@thestructurecounter{#1}",#2,-1)}}
+\def\dorawsubstructurecounter [#1][#2]{\ctxlua{structure.counters.value ("\@@thestructurecounter{#1}",#2)}}
+\def\dolastsubstructurecounter [#1][#2]{\ctxlua{structure.counters.last ("\@@thestructurecounter{#1}",#2)}}
+\def\dofirstsubstructurecounter [#1][#2]{\ctxlua{structure.counters.first ("\@@thestructurecounter{#1}",#2)}}
+\def\dosubstructurecountersubs [#1][#2]{\ctxlua{structure.counters.subs ("\@@thestructurecounter{#1}",#2)}}
+
+% The bypage check needs a multipass reference and therefore
+% we only check for it when we increment and know that some
+% content will be placed. We could also check for spreads.
+
+% to be checked !
+
+\def\docheckstructurecounterbypage#1% since we call lua to get the way we can as well do all in lua
+ {\doif{\structurecounterway{#1}}\v!page{\checkpagechange{#1}\ifpagechanged\resetstructurecounter[#1]\fi}}
+
+\def\incrementstructurecounter[#1]%
+ {\docheckstructurecounterbypage{#1}%
+ \ctxlua{structure.counters.add("\@@thestructurecounter{#1}",1,1)}}
+
+\def\doincrementsubstructurecounter[#1][#2]%
+ {\docheckstructurecounterbypage{#1}
+ \ctxlua{structure.counters.add("\@@thestructurecounter{#1}",#2,1)}}
+
+\def\convertedstructurecounter
+ {\dodoubleempty\doconvertedstructurecounter}
+
+\def\doconvertedstructurecounter[#1][#2]%
+ {\begingroup
+ \ifsecondargument\getparameters[\??nn#1][#2]\fi
+ \ctxlua{structure.counters.prefixedconverted(
+ "\@@thestructurecounter{#1}",
+ {
+ prefix = "\structurecounterparameter{#1}\c!prefix",
+ separatorset = "\structurecounterparameter{#1}\c!prefixseparatorset",
+ conversion = "\structurecounterparameter{#1}\c!prefixconversion",
+ conversionset = "\structurecounterparameter{#1}\c!prefixconversionset",
+ stopper = \!!bs\structurecounterparameter{#1}\c!prefixstopper\!!es,
+ set = "\structurecounterparameter{#1}\c!prefixset",
+ segments = "\structurecounterparameter{#1}\c!prefixsegments",
+ connector = \!!bs\structurecounterparameter{#1}\c!prefixconnector\!!es,
+ },
+ {
+ order = "\structurecounterparameter{#1}\c!numberorder",
+ separatorset = "\structurecounterparameter{#1}\c!numberseparatorset",
+ conversion = \!!bs\structurecounterparameter{#1}\c!numberconversion\!!es,
+ conversionset = "\structurecounterparameter{#1}\c!numberconversionset",
+ stopper = \!!bs\structurecounterparameter{#1}\c!numberstopper\!!es,
+ segments = "\structurecounterparameter{#1}\c!numbersegments",
+ type = "\structurecounterparameter{#1}\c!type",
+ criterium = "\structurecounterparameter{#1}\c!criterium", % might change if we also want this with sectioning
+ }
+ )}%
+ \endgroup}
+
+\def\directconvertedstructurecounter#1#2% name, type
+ {\begingroup
+ \ctxlua{structure.counters.prefixedconverted(
+ "\@@thestructurecounter{#1}",
+ {
+ prefix = "\structurecounterparameter{#1}\c!prefix",
+ separatorset = "\structurecounterparameter{#1}\c!prefixseparatorset",
+ conversion = "\structurecounterparameter{#1}\c!prefixconversion",
+ conversionset = "\structurecounterparameter{#1}\c!prefixconversionset",
+ stopper = \!!bs\structurecounterparameter{#1}\c!prefixstopper\!!es,
+ set = "\structurecounterparameter{#1}\c!prefixset",
+ segments = "\structurecounterparameter{#1}\c!prefixsegments",
+ connector = \!!bs\structurecounterparameter{#1}\c!prefixconnector\!!es,
+ },
+ {
+ order = "\structurecounterparameter{#1}\c!numberorder",
+ separatorset = "\structurecounterparameter{#1}\c!numberseparatorset",
+ conversion = \!!bs\structurecounterparameter{#1}\c!numberconversion\!!es,
+ conversionset = "\structurecounterparameter{#1}\c!numberconversionset",
+ stopper = \!!bs\structurecounterparameter{#1}\c!numberstopper\!!es,
+ segments = "\structurecounterparameter{#1}\c!numbersegments",
+ type = "#2",
+ }
+ )}%
+ \endgroup}
+
+\def\convertedsubstructurecounter
+ {\dotripleempty\doconvertedsubstructurecounter}
+
+\def\doconvertedsubstructurecounter[#1][#2][#3]% #2 can be n or n:m
+ {\ifsecondargument
+ \doconvertedstructurecounter[#1][\c!numbersegments=#2,#3]%
+ \else
+ \secondargumentfalse\doconvertedstructurecounter[#1][]%
+ \fi}
+
+\let\getstructurecounter\convertedstructurecounter
+
+\def\doifdefinedstructurecounter #1{\doifdefined {\csname\s!structurecounter#1\c!number\endcsname}}
+\def\doifundefinedstructurecounter #1{\doifundefined {\csname\s!number#1\c!number\endcsname}}
+\def\doifdefinedstructurecounterelse#1{\doifdefinedelse{\csname\s!number#1\c!number\endcsname}}
+
+\ifx\checkstructurecounter\undefined \def\checkstructurecounter[#1]{} \fi
+
+\def\checkstructurecounter[#1]{}
+
+%D What follows is a compatibility layer. This will be phased out (at
+%D least from core usage).
+
+\def\reset
+ {\dosingleargument\doreset}
+
+\def\doreset[#1]%
+ {\processcommalist[#1]\dodoreset}
+
+\def\dodoreset#1%
+ {\csname\s!reset#1\endcsname}%
+
+\let \numberparameter \structurecounterparameter % {name}\c!key
+
+\let \definenumber \definestructurecounter % [name]
+\let \setupnumber \setupstructurecounter % [name][setups]
+
+\let \setnumber \setstructurecounter % [name]{value}
+\let \resetnumber \resetstructurecounter % [name]
+\let \savenumber \savestructurecounter % [name]
+\let \restorenumber \restorestructurecounter % [name]
+\let \incrementnumber \incrementstructurecounter % [name]
+\let \decrementnumber \decrementstructurecounter % [name]
+\let \rawnumber \rawstructurecounter % [name]
+\let \getnumber \getstructurecounter % [name]
+\let \convertednumber \getstructurecounter % [name]
+
+\let \doifdefinednumber \doifstructurecounter % {number}{true}
+\let \doifundefinednumber \doifnotstructurecounter % {number}{true}
+\let \doifdefinednumberelse \doifstructurecounterelse % {number}{true}{false}
+
+% weird one
+
+\def\accumulatednumber[#1]{}
+
+% funny, here, todo: these are the defaults
+
+\def\setupnumbering
+ {\dodoubleempty\getparameters[\??nr]}
+
+\setupnumbering
+ [\c!way=\v!by\v!chapter,
+ \c!blockway=,
+ \c!state=\v!start]
+
+\def\numberingparameter#1{\csname\??nr#1\endcsname}
+
+% \c!prefixconnector=.,
+% \c!stopper=,
+
+% \c!prefix=\v!no,
+% \c!prefixconnector=.,
+% \c!way=bychapter,
+% \c!prefixsegments=2:2,
+
+
+%D Helpers:
+
+% call:
+%
+% \dostructurecountercomponent
+% \currentfloat
+% \getfloatparameters \floatparameter \detokenizedfloatparameter
+% \hascaption \hastitle \hasnumber
+% [settings][userdata]
+%
+% sets:
+%
+% \laststructurecounternumber
+% \laststructurecountersynchronize
+
+\newconditional\hasstructurecountercaption
+\newconditional\hasstructurecountertitle
+\newconditional\hasstructurecounternumber
+
+\def\dostructurecountercomponent#1#2#3#4#5#6#7[#8][#9]%
+ {\begingroup
+ %
+ #2[#8]%
+ \edef\hasstructurecountercaption{#3\s!hascaption}%
+ \edef\hasstructurecountertitle{#3\s!hastitle}%
+ \edef\hasstructurecounternumber{#3\s!hasnumber}%
+ %
+ \edef\currentname{#3\c!name}%
+ \ifx\currentname\empty
+ \edef\currentname{#1}%
+ \fi
+ \edef\currentcounter{#3\s!counter}%
+ \ifx\currentcounter\empty
+ \let\currentcounter\currentname
+ \fi
+ %
+ \doif{#3\c!title}\v!none{\setfalse\hasstructurecountercaption\setfalse\hasstructurecounternumber}% will become obsolete
+ %
+ \ifx\hasstructurecounternumber\v!yes
+ \incrementstructurecounter[\currentcounter]%
+ \fi
+ %
+ \ifx\hasstructurecountercaption\v!yes
+ \edef\currentexpansion{#3\c!expansion}%
+ \ifx\currentexpansion\s!xml
+ \edef\currenttitle{#4\c!title}%
+ \edef\currentbookmark{#4\c!bookmark}%
+ \xmlstartraw
+ \edef\currentlisttitle{#3\c!title}%
+ \xmlstopraw
+ \let\currentcoding\s!xml
+ \else
+ \ifx\currentexpansion\v!yes
+ \edef\currenttitle{#3\c!title}%
+ \edef\currentbookmark{#3\c!bookmark}%
+ \else
+ \edef\currenttitle{#4\c!title}%
+ \edef\currentbookmark{#4\c!bookmark}%
+ \fi
+ \let\currentlisttitle\currenttitle
+ \let\currentcoding\s!tex
+ \fi
+ \edef\currentlabel{#3\c!label}%
+ \edef\currentreference{#3\c!reference}%
+ \setnextinternalreference
+ \xdef\laststructurecounternumber{\ctxlua{structure.lists.push{
+ metadata = {
+ kind = "#1",
+ name = "\currentname",
+ level = structure.sections.currentlevel(),
+ catcodes = \the\catcodetable,
+ },
+ references = {
+ internal = \nextinternalreference,
+ reference = "\currentreference",
+ referenceprefix = "\referenceprefix",
+ block = "\currentstructureblock",
+ section = structure.sections.currentid(),
+ },
+ titledata = {
+ label = \!!bs\detokenize\expandafter{\currentlabel }\!!es,
+ title = \!!bs\detokenize\expandafter{\currenttitle }\!!es,
+ \ifx\currentbookmark\currenttitle \else
+ bookmark = \!!bs\detokenize\expandafter{\currentbookmark }\!!es,
+ \fi
+ \ifx\currentlisttitle\currenttitle \else
+ list = \!!bs\detokenize\expandafter{\currentlisttitle}\!!es,
+ \fi
+ },
+ \ifx\hasstructurecountercaption\v!yes
+ prefixdata = {
+ prefix = "#3\c!prefix",
+ separatorset = "#3\c!prefixseparatorset",
+ conversion = \!!bs#3\c!prefixconversion\!!es,
+ conversionset = "#3\c!prefixconversionset",
+ set = "#3\c!prefixset",
+ segments = "#3\c!prefixsegments",
+ connector = \!!bs#3\c!prefixconnector\!!es,
+ },
+ numberdata = {
+ numbers = structure.counters.compact("\currentcounter",nil,true),
+ separatorset = "#3\c!numberseparatorset",
+ conversion = \!!bs#3\c!numberconversion\!!es,
+ conversionset = "#3\c!numberconversionset",
+ stopper = \!!bs#3\c!numberstopper\!!es,
+ segments = "#3\c!numbersegments",
+ },
+ \fi
+ userdata = structure.helpers.touserdata(\!!bs\detokenize{#9}\!!es)
+ }
+ }}%
+ \xdef\laststructurecounterattribute {\ctxlua {tex.write(jobreferences.setinternalreference(nil,nil,\nextinternalreference))}}%
+ \xdef\laststructurecountersynchronize{\ctxlatelua{structure.lists.enhance(\laststructurecounternumber)}}%
+ \else
+ \glet\laststructurecounternumber \relax
+ \glet\laststructurecounterattribute \relax
+ \glet\laststructurecountersynchronize\relax
+ \fi
+ \endgroup}
+
+\def\dostructurecountersetup#1#2% name \someparameter
+ {\setupstructurecounter
+ [#1]
+ [ \c!start=#2\c!start,
+ \c!state=#2\c!state,
+ \c!way=#2\c!way,
+ %
+ \c!prefix=#2\c!prefix,
+ \c!prefixseparatorset=#2\c!prefixseparatorset,
+ \c!prefixconversion=#2\c!prefixconversion,
+ \c!prefixconversionset=#2\c!prefixconversionset,
+ \c!prefixstopper=#2\c!prefixstopper,
+ \c!prefixset=#2\c!prefixset,
+ \c!prefixsegments=#2\c!prefixsegments,
+ \c!prefixset=#2\c!prefixset,
+ \c!prefixconnector=#2\c!prefixconnector,
+ %
+ \c!numberseparatorset=#2\c!numberseparatorset,
+ \c!numberconversion=#2\c!numberconversion,
+ \c!numberconversionset=#2\c!numberconversionset,
+ \c!numberstopper=#2\c!numberstopper,
+ \c!numbersegments=#2\c!numbersegments]}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/strc-pag.lua b/Master/texmf-dist/tex/context/base/strc-pag.lua
new file mode 100644
index 00000000000..b95f0842ac6
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/strc-pag.lua
@@ -0,0 +1,207 @@
+if not modules then modules = { } end modules ['strc-pag'] = {
+ version = 1.001,
+ comment = "companion to strc-pag.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local texcount, format = tex.count, string.format
+
+local ctxcatcodes = tex.ctxcatcodes
+local texsprint, texwrite = tex.sprint, tex.write
+
+structure.pages = structure.pages or { }
+
+local helpers = structure.helpers or { }
+local sections = structure.sections or { }
+local pages = structure.pages or { }
+local processors = structure.processors or { }
+local sets = structure.sets or { }
+
+local variables = interfaces.variables
+
+-- storage
+
+jobpages = jobpages or { }
+jobpages.collected = jobpages.collected or { }
+jobpages.tobesaved = jobpages.tobesaved or { }
+
+local collected, tobesaved = jobpages.collected, jobpages.tobesaved
+
+local function initializer()
+ collected, tobesaved = jobpages.collected, jobpages.tobesaved
+end
+
+job.register('jobpages.collected', jobpages.tobesaved, initializer)
+
+local specification = { }
+
+function pages.save(userspec)
+ local realpage, userpage = texcount.realpageno, texcount.userpageno
+ local data = {
+ number = userpage,
+ specification = helpers.simplify(userspec or specification),
+ block = sections.currentblock(),
+ }
+ tobesaved[realpage] = data
+ if not collected[realpage] then
+ collected[realpage] = data
+ end
+end
+
+function pages.pagenumber(localspec)
+ local deltaspec
+ if localspec then
+ for k,v in next, localspec do
+ if v ~= "" and v ~= specification[k] then
+ if not deltaspec then deltaspec = { } end
+ deltaspec[k] = v
+ end
+ end
+ end
+ if deltaspec then
+ return { realpage = texcount.realpageno, specification = deltaspec }
+ else
+ return { realpage = texcount.realpageno }
+ end
+end
+
+--
+
+local function convertnumber(str,n)
+ return format("\\convertnumber{%s}{%s}",str or "numbers",n)
+end
+
+function pages.number(realdata,pagespecification)
+ local userpage, block = realdata.number, realdata.block or ""
+ local conversionset = (pagespecification and pagespecification.conversionset) or realdata.conversionset or ""
+ local conversion = (pagespecification and pagespecification.conversion ) or realdata.conversion or ""
+ local stopper = (pagespecification and pagespecification.stopper ) or realdata.stopper or ""
+ if conversion ~= "" then
+ texsprint(ctxcatcodes,format("\\convertnumber{%s}{%s}",conversion,number))
+ else
+ if conversionset == "" then conversionset = "default" end
+ local theconversion = sets.get("structure:conversions",block,conversionset,index,"numbers")
+ processors.sprint(ctxcatcodes,theconversion,convertnumber,userpage)
+ end
+ if stopper ~= "" then
+ processors.sprint(ctxcatcodes,stopper)
+ end
+end
+
+-- (pagespec.prefix == yes|unset) and (pages.prefix == yes) => prefix
+
+function pages.analyse(entry,pagespecification)
+ -- safeguard
+ if not entry then
+ return false, false, "no entry"
+ end
+ local references = entry.references
+ if not references then
+ return false, false, "no references"
+ end
+ local realpage = references.realpage
+ if not realpage then
+ return false, false, "no realpage"
+ end
+ local pagedata = collected[realpage]
+ if not pagedata then
+ return false, false, "no pagedata"
+ end
+ local section = references.section
+ if not section then
+ return pagedata, false, "no section"
+ end
+ local no = variables.no
+ -- local preferences
+ if pagespecification and pagespecification.prefix == no then
+ return pagedata, false, "current spec blocks prefix"
+ end
+ -- stored preferences
+ if entry.prefix == no then
+ return pagedata, false, "entry blocks prefix"
+ end
+ -- stored page state
+ pagespecification = pagedata.specification
+ if pagespecification and pagespecification.prefix == no then
+ return pagedata, false, "pagedata blocks prefix"
+ end
+ -- final verdict
+ return pagedata, jobsections.collected[references.section], "okay"
+end
+
+function helpers.page(data,pagespec)
+ if data then
+ local pagedata = pages.analyse(data,pagespec)
+ if pagedata then
+ pages.number(pagedata,pagespec)
+ end
+ end
+end
+
+function helpers.prefixpage(data,prefixspec,pagespec)
+ if data then
+ local pagedata, prefixdata, e = pages.analyse(data,pagespec)
+--~ tex.write(e)
+ if pagedata then
+ if prefixdata then
+ sections.typesetnumber(prefixdata,"prefix",prefixspec or false,prefixdata or false,pagedata.specification or false)
+ end
+ pages.number(pagedata,pagespec)
+ end
+ end
+end
+
+function helpers.prefixlastpage(data,prefixspec,pagespec)
+ if data then
+ local r = data.references
+ local ls, lr = r.section, r.realpage
+ r.section, r.realpage = r.lastsection or r.section, r.lastrealpage or r.realpage
+ helpers.prefixpage(data,prefixspec,pagespec)
+ r.section, r.realpage = ls, lr
+ end
+end
+
+--
+
+function helpers.analyse(entry,specification)
+ -- safeguard
+ if not entry then
+ return false, false, "no entry"
+ end
+ local no = variables.no
+ -- section data
+ local references = entry.references
+ if not references then
+ return entry, false, "no references"
+ end
+ local section = references.section
+ if not section then
+ return entry, false, "no section"
+ end
+ sectiondata = jobsections.collected[references.section]
+ if not sectiondata then
+ return entry, false, "no section data"
+ end
+ -- local preferences
+ if specification and specification.prefix == no then
+ return entry, false, "current spec blocks prefix"
+ end
+ -- stored preferences (not used)
+ local prefixdata = entry.prefixdata
+ if prefixdata and prefixdata.prefix == no then
+ return entry, false, "entry blocks prefix"
+ end
+ -- final verdict
+ return entry, sectiondata, "okay"
+end
+
+function helpers.prefix(data,prefixspec)
+ if data then
+ local _, prefixdata = helpers.analyse(data,prefixspec)
+ if prefixdata then
+ sections.typesetnumber(prefixdata,"prefix",prefixspec or false,data.prefixdata or false,prefixdata or false)
+ end
+ end
+end
diff --git a/Master/texmf-dist/tex/context/base/page-num.tex b/Master/texmf-dist/tex/context/base/strc-pag.mkii
index 404974f82b5..5a86a99e87f 100644
--- a/Master/texmf-dist/tex/context/base/page-num.tex
+++ b/Master/texmf-dist/tex/context/base/strc-pag.mkii
@@ -1,7 +1,7 @@
%D \module
-%D [ file=page-num, % moved here from main-001
+%D [ file=strc-num, % moved here from main-001
%D version=1997.03.31,
-%D title=\CONTEXT\ Core Macros,
+%D title=\CONTEXT\ Structure Macros,
%D subtitle=Numbering,
%D author=Hans Hagen,
%D date=\currentdate,
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Core Macros / Numbering}
+\writestatus{loading}{ConTeXt Structure Macros / Numbering}
% todo: {}{}{} ipv ...--...-...-...--... in pag ref
@@ -171,6 +171,8 @@
\countdef\subpageno = 2 \subpageno = 0 % !!
\countdef\arrangeno = 3 \arrangeno = 0 % !!
+\let\pageno\userpageno
+
% we don't want conflicts when \pageno is used by other
% packages, like CWEB, so we redefine \pageno
@@ -279,7 +281,10 @@
% \@@pnstatus global, but \@@nmstatus local and only start/stop
-\global\let\@@pnstate\@@pnstate
+\global\let\@@pnstate\@@pnstate % brrr
+
+\def\pushpagestate{\globalpushmacro\@@pnstate}
+\def\poppagestate {\globalpopmacro \@@pnstate}
\def\dosetuppagenumber[#1]%
{\getparameters[\??pn][\c!number=,#1]%
@@ -307,15 +312,14 @@
\def\decrementpagenumber{\getvalue{\??pn-\@@pnstate}}
\def\incrementpagenumber{\getvalue{\??pn+\@@pnstate}}
-\letvalue{\??pn-\v!start }\dodecrementpagenumber
-\letvalue{\??pn-\v!none }\dodecrementpagenumber
-\letvalue{\??pn-\v!empty }\dodecrementpagenumber
+\letvalue{\??pn-\v!start}\dodecrementpagenumber
+\letvalue{\??pn-\v!none }\dodecrementpagenumber
+\letvalue{\??pn-\v!empty}\dodecrementpagenumber
-\letvalue{\??pn+\v!start }\doincrementpagenumber
-\letvalue{\??pn+\v!none }\doincrementpagenumber
-\setvalue{\??pn+\v!empty }{\doincrementpagenumber
- \dosynchronizepagenumber}
-\letvalue{\??pn+\v!keep}\dosynchronizepagenumber
+\letvalue{\??pn+\v!start}\doincrementpagenumber
+\letvalue{\??pn+\v!none }\doincrementpagenumber
+\setvalue{\??pn+\v!empty}{\doincrementpagenumber\dosynchronizepagenumber}
+\letvalue{\??pn+\v!keep }\dosynchronizepagenumber
% so far
@@ -412,34 +416,32 @@
\let\stelnummeringin\setuppagenumbering
-% listig: hangt af van \@@kolijst
-
-% erg fout
+% wrong
%
% \def\preparepageprefix#1%
% {\def\dopreparepageprefix##1%
-% {\doifvalue{#1##1\c!nummer}{\v!ja}
-% {\setvalue{#1\getvalue{\??by##1}\c!nummer}{\v!ja}}}%
+% {\doifvalue{#1##1\c!number}{\v!yes}
+% {\setvalue{#1\getvalue{\??by##1}\c!nummer}{\v!yes}}}%
% \processcommacommand[\@@kolijst]\dopreparepageprefix}
%
-% nog fouter
+% more wrong
%
% \def\preparepageprefix#1%
% {\def\dopreparepageprefix##1%
-% {\doifelsevalue{#1##1\v!nummer}{\v!ja} % v
-% {\setvalue{#1\getvalue{\??by##1}\v!nummer}{\v!ja}} % v
-% {\setvalue{#1\getvalue{\??by##1}\v!nummer}{\v!nee}}}% % v
+% {\doifelsevalue{#1##1\v!number}{\v!yes} % v
+% {\setvalue{#1\getvalue{\??by##1}\v!nummer}{\v!yes}} % v
+% {\setvalue{#1\getvalue{\??by##1}\v!nummer}{\v!no}}}% % v
% \processcommacommand[\@@kolijst]\dopreparepageprefix}
%
% best, beware, chapter (yes) can be followed by title (no)
\def\preparepageprefix#1%
{\def\dopreparepageprefix##1%
- {\letvalue{#1\getvalue{\??by##1}\v!number}\v!no}% %v
+ {\ifcsname\??by##1\endcsname\letvalue{#1\csname\??by##1\endcsname\v!number}\v!no\fi}% %v
\rawprocesscommalist[\@@kolist]\dopreparepageprefix
\def\dopreparepageprefix##1%
{\doifvalue{#1##1\v!number}\v!yes %v
- {\letvalue{#1\getvalue{\??by##1}\v!number}\v!yes}}%
+ {\ifcsname\??by##1\endcsname\letvalue{#1\csname\??by##1\endcsname\v!number}\v!yes\fi}}%
\rawprocesscommalist[\@@kolist]\dopreparepageprefix}
\def\dodopageprefix#1% uti seperator --
@@ -484,9 +486,6 @@
{{\doif\@@nmstrut\v!yes\strut
\@@nmcommand{\doattributes\??nm\c!style\c!color{\completepagenumber}}}}}
-\def\@@plaatspaginascheider% still used ?
- {\doif{\@@nmstate\@@pnstate}{\v!start\v!start}\@@nmtextseparator}
-
\def\userfolio {\convertednumber[\s!page]} % naast realfolio
\def\pagenumber{\userfolio}
diff --git a/Master/texmf-dist/tex/context/base/strc-pag.mkiv b/Master/texmf-dist/tex/context/base/strc-pag.mkiv
new file mode 100644
index 00000000000..276cf8b78b6
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/strc-pag.mkiv
@@ -0,0 +1,463 @@
+%D \module
+%D [ file=strc-pag,
+%D version=2008.10.20,
+%D title=\CONTEXT\ Structure Macros,
+%D subtitle=Pagenumbering,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA-ADE / Hans Hagen]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Structure Macros / Pagenumbering}
+
+\registerctxluafile{strc-pag}{1.001}
+
+\unprotect
+
+% Hacks:
+
+\let\preparepageprefix\gobbleoneargument
+
+% Allocation:
+
+\countdef\realpageno = 0 \realpageno = 1
+\countdef\userpageno = 1 \userpageno = 1
+\countdef\subpageno = 2 \subpageno = 0 % !!
+\countdef\arrangeno = 3 \arrangeno = 0 % !!
+
+\let\pageno\userpageno
+
+\def\realfolio{\the\realpageno}
+\def\userfolio{\the\userpageno}
+\def\subfolio {\the\subpageno }
+
+\newtoks\everyinitializepagecounters
+
+\def\initializepagecounters{\the\everyinitializepagecounters}
+
+\appendtoks
+ \initializepagecounters
+\to \everyjob
+
+% Page numbers are kind of independent of each other and therefore they
+% all get their own counter. After all, it's easier to combine them in
+% a pseudo counterset than to deal with a complex set itself.
+
+% \definestructureprefixset [mine][section-1,section-2]
+% \definestructureseparatorset[mine][:]
+%
+% \setupuserpagenumber
+% [way=bypart,
+% prefix=yes,
+% prefixset=mine,
+% prefixseparatorset=mine]
+
+\definestructurecounter[\s!realpage][\c!prefix=\v!no,\c!start=1,\c!prefixsegments=] % \c!counter=realpage
+\definestructurecounter[\s!userpage][\c!prefix=\v!no,\c!start=1,\c!prefixsegments=] % \c!counter=userpage
+\definestructurecounter[\s!subpage] [\c!prefix=\v!no,\c!start=1,\c!prefixsegments=] % \c!counter=subpage
+
+\newtoks\everysetuprealpagenumber % todo: set state: none, start, stop, reset
+\newtoks\everysetupuserpagenumber % todo: set state: none, start, stop, reset
+\newtoks\everysetupsubpagenumber % todo: set state: none, start, stop, reset
+
+\def\setuprealpagenumber{\dosingleargument\dosetuprealpagenumber}
+\def\setupuserpagenumber{\dosingleargument\dosetupuserpagenumber}
+\def\setupsubpagenumber {\dosingleargument\dosetupsubpagenumber}
+
+\def\dosavepagenumberstate#1{\edef\oldpagenumberstate{\structurecounterparameter#1\c!state}}
+
+\def\dosetuprealpagenumber[#1]{\dosavepagenumberstate\s!realpage\dosetupstructurecounter[\s!realpage][#1]\the\everysetuprealpagenumber}
+\def\dosetupuserpagenumber[#1]{\dosavepagenumberstate\s!userpage\dosetupstructurecounter[\s!userpage][#1]\the\everysetupuserpagenumber}
+\def\dosetupsubpagenumber [#1]{\dosavepagenumberstate\s!subpage \dosetupstructurecounter[\s!subpage ][#1]\the\everysetupsubpagenumber }
+
+\def\resetrealpagenumber {} % not permitted
+\def\resetuserpagenumber {\resetstructurecounter[\s!userpage]}
+\def\resetsubpagenumber {\resetstructurecounter[\s!subpage]}
+
+\appendtoks
+ \setstructurecounter[\s!realpage]\realpageno
+ \setstructurecounter[\s!userpage]\userpageno
+ \setstructurecounter[\s!subpage] \subpageno
+\to \everyinitializepagecounters
+
+\let\setuppagenumber\setupuserpagenumber
+\let\resetpagenumber\resetuserpagenumber
+
+\def\savecurrentpagestate
+ {\ctxlua{structure.pages.save {
+ prefix = "\structurecounterparameter\s!userpage\c!prefix",
+ separatorset = "\structurecounterparameter\s!userpage\c!prefixseparatorset",
+ conversion = "\structurecounterparameter\s!userpage\c!prefixconversion",
+ conversionset = "\structurecounterparameter\s!userpage\c!prefixconversionset",
+ set = "\structurecounterparameter\s!userpage\c!prefixset",
+ stopper = \!!bs\structurecounterparameter\s!userpage\c!prefixstopper\!!es,
+ segments = "\structurecounterparameter\s!userpage\c!prefixsegments",
+ connector = \!!bs\structurecounterparameter\s!userpage\c!prefixconnector\!!es,
+ }}}
+
+\prependtoks
+ \savecurrentpagestate
+\to \everyshipout
+
+\def\pushpagestate{\setxvalue{\??nm:\s!userpage:\c!state}{\structurecounterparameter\s!userpage\c!state}}
+\def\poppagestate {\normalexpanded{\noexpand\setuppagenumber[\c!state=\getvalue{\??nm:\s!userpage:\c!state}]}}
+
+\setuppagenumber
+ [\c!way=\v!by\v!text,
+ \c!prefix=\v!no,
+ \c!prefixset=\v!part,
+ \c!prefixconnector=\endash,
+ \c!state=\v!start]
+
+\setupsubpagenumber
+ [\c!way=\v!by\v!part,
+ \c!state=\v!stop]
+
+% Counters
+
+% \def\firstpage {1} \def\prevpage {1} \def\nextpage {1} \def\lastpage {1}
+% \def\firstuserpage{1} \def\prevuserpage{1} \def\nextuserpage{1} \def\lastuserpage{1}
+% \def\firstsubpage {1} \def\prevsubpage {1} \def\nextsubpage {1} \def\lastsubpage {1}
+
+% \def\firstrealpage{\firststructurecounter[\s!realpage]}
+% \def\prevrealpage {\prevstructurecounter [\s!realpage]}
+% \def\nextrealpage {\nextstructurecounter [\s!realpage]}
+% \def\lastrealpage {\laststructurecounter [\s!realpage]}
+
+% \let\firstpage\firstrealpage
+% \let\prevpage \prevrealpage
+% \let\nextpage \nextrealpage
+% \let\lastpage \lastrealpage
+
+\def\firstrealpagenumber{\convertedstructurecounter[\s!realpage][\c!type=\v!first]}
+\def\firstuserpagenumber{\convertedstructurecounter[\s!userpage][\c!type=\v!first]}
+\def\firstsubpagenumber {\convertedstructurecounter[\s!subpage ][\c!type=\v!first]}
+
+\def\lastrealpagenumber {\convertedstructurecounter[\s!realpage][\c!type=\v!last]}
+\def\lastuserpagenumber {\convertedstructurecounter[\s!userpage][\c!type=\v!last]}
+\def\lastsubpagenumber {\convertedstructurecounter[\s!subpage ][\c!type=\v!last]}
+
+\def\prevrealpagenumber {\convertedstructurecounter[\s!realpage][\c!type=\v!previous]}
+\def\prevuserpagenumber {\convertedstructurecounter[\s!userpage][\c!type=\v!previous]}
+\def\prevsubpagenumber {\convertedstructurecounter[\s!subpage ][\c!type=\v!previous]}
+
+\def\nextrealpagenumber {\convertedstructurecounter[\s!realpage][\c!type=\v!next]}
+\def\nextuserpagenumber {\convertedstructurecounter[\s!userpage][\c!type=\v!next]}
+\def\nextsubpagenumber {\convertedstructurecounter[\s!subpage ][\c!type=\v!next]}
+
+\def\firstrealpage{\firststructurecounter[\s!realpage]}
+\def\firstuserpage{\firststructurecounter[\s!userpage]}
+\def\firstsubpage {\firststructurecounter[\s!subpage ]}
+
+\def\prevrealpage {\prevstructurecounter [\s!realpage]}
+\def\prevuserpage {\prevstructurecounter [\s!userpage]}
+\def\prevsubpage {\prevstructurecounter [\s!subpage ]}
+
+\def\nextrealpage {\nextstructurecounter [\s!realpage]}
+\def\nextuserpage {\nextstructurecounter [\s!userpage]}
+\def\nextsubpage {\nextstructurecounter [\s!subpage ]}
+
+\def\lastrealpage {\laststructurecounter [\s!realpage]}
+\def\lastuserpage {\laststructurecounter [\s!userpage]}
+\def\lastsubpage {\laststructurecounter [\s!subpage ]}
+
+\let\firstpage\firstrealpage
+\let\prevpage \prevrealpage
+\let\nextpage \nextrealpage
+\let\lastpage \lastrealpage
+
+% Compatibility counters:
+
+\def\nofrealpages {\lastrealpage} \def\totalnumberofpages{\lastrealpage}
+\def\nofuserpages {\lastuserpage} \def\lastpagenumber {\lastuserpage}
+\def\nofsubpages {\lastsubpage }
+
+% Renderers:
+
+\def\pagenumber {\rawstructurecounter[\s!userpage]}
+\def\prefixedpagenumber {\directconvertedstructurecounter\s!userpage\empty} % \userpagenumber
+
+\def\realpagenumber {\directconvertedstructurecounter\s!realpage\empty}
+\def\userpagenumber {\directconvertedstructurecounter\s!userpage\empty}
+\def\subpagenumber {\directconvertedstructurecounter\s!subpage \empty}
+
+\def\firstrealpagenumber{\directconvertedstructurecounter\s!realpage\v!first}
+\def\firstuserpagenumber{\directconvertedstructurecounter\s!userpage\v!first}
+\def\firstsubpagenumber {\directconvertedstructurecounter\s!subpage \v!first}
+
+\def\lastrealpagenumber {\directconvertedstructurecounter\s!realpage\v!last}
+\def\lastuserpagenumber {\directconvertedstructurecounter\s!userpage\v!last}
+\def\lastsubpagenumber {\directconvertedstructurecounter\s!subpage \v!last}
+
+\def\prevrealpagenumber {\directconvertedstructurecounter\s!realpage\v!previous}
+\def\prevuserpagenumber {\directconvertedstructurecounter\s!userpage\v!previous}
+\def\prevsubpagenumber {\directconvertedstructurecounter\s!subpage \v!previous}
+
+\def\nextrealpagenumber {\directconvertedstructurecounter\s!realpage\v!next}
+\def\nextuserpagenumber {\directconvertedstructurecounter\s!userpage\v!next}
+\def\nextsubpagenumber {\directconvertedstructurecounter\s!subpage \v!next}
+
+\appendtoks
+ \decrementstructurecounter[\s!realpage]%
+ \decrementstructurecounter[\s!userpage]%
+ \decrementstructurecounter[\s!subpage]%
+\to\everygoodbye
+
+% Equivalents (compatibility):
+%
+% todo: maybe leave lastpage etc lua calls
+
+\def\realpage{\the\realpageno}
+\def\userpage{\the\userpageno}
+\def\subpage {\the\subpageno}
+
+% Hooks:
+
+\appendtoks
+ \xdef\currentpage{\the\realpageno}%
+ \ifnum\realpageno>\lastpage \globallet\lastpage\lastrealpage \fi
+\to \everyinitializepagecounters
+
+% States:
+
+\newif\ifrightpage \rightpagetrue
+\newif\ifdoublesided
+\newif\ifsinglesided
+
+% Realpage and subpage numbers:
+
+\def\setnextrealpageno{\global\realpageno\incrementedstructurecounter[\s!realpage]\relax}
+\def\setnextsubpageno {\global\subpageno \incrementedstructurecounter[\s!subpage ]\relax}
+
+% Page numbers:
+
+\def\dodecrementpagenumber{\global\userpageno\decrementedstructurecounter[\s!userpage]\relax}
+\def\doincrementpagenumber{\global\userpageno\incrementedstructurecounter[\s!userpage]\relax}
+
+\def\dosynchronizepagenumber{\global\let\@@pnstate\v!start}
+
+\def\decrementpagenumber{\csname\??pn-\structurecounterparameter\s!userpage\c!state\endcsname}
+\def\incrementpagenumber{\csname\??pn+\structurecounterparameter\s!userpage\c!state\endcsname}
+
+\letvalue{\??pn-\v!start}\dodecrementpagenumber
+\letvalue{\??pn-\v!none }\dodecrementpagenumber
+\letvalue{\??pn-\v!empty}\dodecrementpagenumber
+
+\letvalue{\??pn+\v!start}\doincrementpagenumber
+\letvalue{\??pn+\v!none }\doincrementpagenumber
+\setvalue{\??pn+\v!empty}{\doincrementpagenumber\dosynchronizepagenumber}
+\letvalue{\??pn+\v!keep }\dosynchronizepagenumber
+
+% todo: check if number set, and reset it after testing; also take care of \global\shiftedrealpagenotrue
+
+% Control:
+
+\def\getpagestatus % hierboven gebruiken
+ {\ifdoublesided
+ \global\rightpagetrue
+ % todo: \global\rightpagetrue or \global\rightpagefalse
+ \else
+ \global\rightpagetrue
+ \fi}
+
+% Setup general page numbering
+
+\newtoks\everysetuppagenumbering
+
+\def\setuppagenumbering
+ {\dosingleempty\dosetuppagenumbering}
+
+\def\dosetuppagenumbering[#1]%
+ {\getparameters[\??nm][#1]\the\everysetuppagenumbering}
+
+\appendtoks
+ \singlesidedfalse
+ \doublesidedfalse
+ \normalexpanded{\noexpand\processallactionsinset[\@@nmalternative]}
+ [ \v!singlesided=>\singlesidedtrue,
+ \v!doublesided=>\doublesidedtrue]%
+ \ifx\trackingmarginnotestrue\undefined\else
+ \ifdoublesided
+ \trackingmarginnotestrue
+ \else
+ \trackingmarginnotesfalse
+ \fi
+ \fi
+ \dosetpagenumberlocation
+\to \everysetuppagenumbering
+
+\appendtoks
+ \ifdefined \recalculatebackgrounds \recalculatebackgrounds \fi
+\to \everysetuppagenumbering
+
+% The numbered location handler is there because we need to be downward
+% compatible. So, in fact there can be multiple handlers active at the
+% same time, but only the current one does something.
+%
+% thsi code might move to page-txt
+
+\newcount\currentpagenumberlocation
+
+\def\dosetpagenumberlocation
+ {\advance\currentpagenumberlocation\plusone
+ \ifx\@@nmlocation\empty \else
+ \let\@@pagenumbervlocation\v!footer
+ \let\@@pagenumberhlocation\v!text
+ \let\@@pagenumberxlocation\c!middletext
+ \normalexpanded{\noexpand\processallactionsinset[\@@nmlocation]}
+ [ \v!header=>\let\@@pagenumbervlocation\v!header,
+ \v!footer=>\let\@@pagenumbervlocation\v!footer,
+ \v!middle=>\let\@@pagenumberhlocation\v!text \let\@@pagenumberxlocation\c!middletext,
+ \v!left=>\let\@@pagenumberhlocation\v!text \let\@@pagenumberxlocation\c!lefttext,
+ \v!right=>\let\@@pagenumberhlocation\v!text \let\@@pagenumberxlocation\c!righttext,
+ \v!inleft=>\let\@@pagenumberhlocation\v!margin\let\@@pagenumberxlocation\c!lefttext,
+ \v!inright=>\let\@@pagenumberhlocation\v!margin\let\@@pagenumberxlocation\c!righttext,
+ \v!inmargin=>\let\@@pagenumberhlocation\v!margin\def\@@pagenumberxlocation{\ifdoublesided\c!margintext\else\c!righttext\fi},
+ \v!margin=>\let\@@pagenumberhlocation\v!margin\def\@@pagenumberxlocation{\ifdoublesided\c!margintext\else\c!righttext\fi},
+ \v!atmargin=>\let\@@pagenumberhlocation\v!text \let\@@pagenumberxlocation\c!marginedgetext,
+ \v!marginedge=>\let\@@pagenumberhlocation\v!text \let\@@pagenumberxlocation\c!marginedgetext]%
+ \normalexpanded{\noexpand\setspecificlayouttext
+ {\@@pagenumbervlocation}{\@@pagenumberhlocation}{\@@pagenumberxlocation}%
+ {\noexpand\doplacepagenumberatlocation{\number\currentpagenumberlocation}}}%
+ \fi}
+
+\def\setspecificlayouttext#1#2#3#4{\setvalue{\??tk#1#2#3}{#4}} % weird place
+
+\appendtoks
+ \dosetpagenumberlocation
+\to \everyinitializepagecounters
+
+\def\doplacepagenumberatlocation#1%
+ {\ifnum#1=\currentpagenumberlocation\relax\expandafter\placelocationpagenumber\fi}
+
+% Rendering:
+
+\unexpanded\def\placelocationpagenumber
+ {\ifnum\userpagenumberstate=\plustwo
+ \ifnum\overallpagenumberstate=\plusone
+ \doif\@@nmstrut\v!yes\strut
+ \@@nmcommand{\doattributes\??nm\c!style\c!color{\@@nmleft\labeltexts\v!pagenumber{\prefixedpagenumber}\@@nmright}}%
+ \fi
+ \fi}
+
+\unexpanded\def\completepagenumber
+ {\ifnum\userpagenumberstate=\plustwo
+ \ifnum\overallpagenumberstate=\plusone
+ \@@nmleft\labeltexts\v!pagenumber\prefixedpagenumber\@@nmright
+ \fi
+ \fi}
+
+\unexpanded\def\placepagenumber
+ {\ifnum\userpagenumberstate=\plustwo
+ \ifnum\overallpagenumberstate=\plusone
+ \labeltexts\v!pagenumber\pagenumber
+ \fi
+ \fi}
+
+\unexpanded\def\referencepagenumber[#1]%
+ {\doifelsenothing{#1}{?}{}}
+
+% The numbered location handler is there because we need to be downward
+% compatible. So, in fact there can be multiple handlers active at the
+% same time, but only the current one does something.
+
+\chardef\realpagenumberstate =2 % counter state : 0=stop, 1=start, 2=start and visible
+\chardef\userpagenumberstate =2 % counter state : 0=stop, 1=start, 2=start and visible
+\chardef\subpagenumberstate =2 % counter state : 0=stop, 1=start, 2=start and visible
+\chardef\overallpagenumberstate=1 % general number: 0=invisible, 1=visible
+
+\def\checkpagenumberstatechange#1#2%
+ {\edef\newpagenumberstate{\structurecounterparameter#1\c!state}%
+ \ifx\newpagenumberstate\oldpagenumberstate \else
+ \doifelse\newpagenumberstate\v!start
+ {\chardef#2\plustwo}%
+ {\chardef#2\zerocount}%
+ \fi}
+
+\appendtoks % todo: set state: none, start, stop, reset
+ \checkpagenumberstatechange\s!realpage\realpagenumberstate
+\to \everysetuprealpagenumber
+
+\appendtoks % todo: set state: none, start, stop, reset
+ \checkpagenumberstatechange\s!userpage\userpagenumberstate
+\to \everysetupuserpagenumber
+
+\appendtoks % todo: set state: none, start, stop, reset
+ \checkpagenumberstatechange\s!subpage\subpagenumberstate
+\to \everysetupsubpagenumber
+
+\appendtoks % todo: set state: none, start, stop, reset
+ \doifelse\@@nmstate\v!start
+ {\chardef\overallpagenumberstate\plusone}%
+ {\chardef\overallpagenumberstate\zerocount}%
+\to \everysetuppagenumbering
+
+% \appendtoks % todo: set state: none, start, stop, reset
+% % this makes starting at an even page possible
+% \ifnum\realpageno=1 \ifodd\pageno \else
+% \global\shiftedrealpagenotrue
+% \fi \fi
+% \to \everysetupuserpagenumber
+
+% Done
+
+% \c!way=\v!by\v!part
+% \c!text=
+% \v!chapter\v!number=\v!no
+% \v!part\v!number=\v!yes
+% \c!numberseparator=--
+% \c!conversion=\v!numbers
+
+\setuppagenumbering
+ [\c!alternative=\v!singlesided,
+ \c!location={\v!header,\v!middle},
+ \c!width=, % in geval van \v!marginedge
+ \c!left=,
+ \c!right=,
+ \c!textseparator=\tfskip,
+ \c!state=\v!start,
+ \c!command=,
+ \c!strut=\v!yes,
+ \c!style=, % empty, otherwise conflict
+ \c!color=]
+
+% just for downward compatbility
+
+\appendtoks
+ \edef\askeduserpagenumber{\structurecounterparameter\s!userpage\c!number}%
+ \ifx\askeduserpagenumber\empty \else
+ \normalexpanded{\noexpand\setuppagenumber[\c!start=\structurecounterparameter\s!userpage\c!number,\c!number=]}%
+ \userpageno\rawstructurecounter[\s!userpage]%
+ \fi
+\to \everysetupuserpagenumber % todo: set state: none, start, stop, reset
+
+% \setuplayout[width=300pt,backspace=4cm]
+% \setuppagenumbering [alternative=doublesided]
+% \setupuserpagenumber[start=2]
+% \starttext \dorecurse{20}{\input knuth \par} \stoptext
+
+\def\checkpagenumbershift
+ {\userpageno\rawstructurecounter[\s!userpage]\relax
+ \ifnum\realpageno=\plusone
+ \ifodd\userpageno
+ \else
+ \global\shiftedrealpagenotrue
+ \fi
+ \fi}
+
+\appendtoks % todo: set state: none, start, stop, reset
+ % this makes starting at an even page possible
+ \checkpagenumbershift
+\to \everysetupuserpagenumber
+
+\appendtoks % todo: set state: none, start, stop, reset
+ % this makes starting at an even page possible
+ \checkpagenumbershift
+\to \everysetuppagenumbering
+
+\initializepagecounters
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/strc-prc.lua b/Master/texmf-dist/tex/context/base/strc-prc.lua
new file mode 100644
index 00000000000..35e7000db1f
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/strc-prc.lua
@@ -0,0 +1,9 @@
+if not modules then modules = { } end modules ['strc-prc'] = {
+ version = 1.001,
+ comment = "companion to strc-prc.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- code will move from strc-ini to here
diff --git a/Master/texmf-dist/tex/context/base/strc-prc.mkiv b/Master/texmf-dist/tex/context/base/strc-prc.mkiv
new file mode 100644
index 00000000000..a81cfddd15e
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/strc-prc.mkiv
@@ -0,0 +1,84 @@
+%D \module
+%D [ file=strc-prc,
+%D version=2008.10.20,
+%D title=\CONTEXT\ Structure Macros,
+%D subtitle=Processors,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA-ADE / Hans Hagen]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Structure Macros / Processors}
+
+\registerctxluafile{strc-prc}{1.001}
+
+\unprotect
+
+%D Processors are used when we cannot easily associate typesetting directives
+%D with (for instance) structural elements. Instead of ending up with numerous
+%D additional definitions we can group treatments in so called processors.
+%D
+%D An example of where processors can be used is in separator sets (these are
+%D related to typesetting numbers using structure).
+%D
+%D \starttyping
+%D \defineprocessor[demo][style=\bfb,color=red]
+%D \stoptyping
+%D
+%D This defines a processor named \type {demo}. Such a name ends up as prefix in
+%D for instance:
+%D
+%D \starttyping
+%D \definestructureseparatorset [demosep] [demo->!,demo->?,demo->!,demo->?] [demo->@]
+%D \stoptyping
+%D
+%D Here the \type {!} and \type {?} are just the seperator characters that end
+%D up between part, chapter, section, etc.\ numbers. The third argument defines the
+%D default. When a separator is inserted, the \type{demo} processor will be applied.
+%D Here the number will be separated by red slightly bigger than normal bold
+%D exclamation marks and questionmarks
+%D
+%D Valid keys for defining a processor are \type {style}, \type {color}, \type {left},
+%D \type {right}, and \type {command} (the given command takes one argument).
+
+\def\defineprocessor
+ {\dodoubleargument\dodefineprocessor}
+
+\def\dodefineprocessor[#1][#2]%
+ {\ifsecondargument
+ \letbeundefined{\??po#1\c!command}%
+ \ctxlua{structure.processors.register("#1")}%
+ \getparameters[\??po#1][\c!style=,\c!color=,\c!left=,\c!right=,#2]%
+ \else
+ \letbeundefined{\??po#1\c!style}%
+ \ctxlua{structure.processors.reset("#1")}%
+ \fi}
+
+%D The following command can be used by users but normally it will be
+%D invoked behind the screens. After all, processor prefixes need to
+%D be split off first.
+
+\unexpanded\def\applyprocessor#1%
+ {\ifcsname\??po#1\c!style\endcsname
+ \expandafter\dodoapplyprocessor
+ \else
+ \expandafter\secondoftwoarguments
+ \fi{#1}}
+
+\def\dodoapplyprocessor#1#2%
+ {\begingroup
+ \dostartattributes{\??po#1}\c!style\c!color
+ \csname\??po#1\c!left\endcsname
+ \ifcsname\??po#1\c!command\endcsname
+ \csname\??po#1\c!command\endcsname{#2}%
+ \else
+ #2%
+ \fi
+ \csname\??po#1\c!right\endcsname
+ \dostopattributes
+ \endgroup}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/strc-ref.lua b/Master/texmf-dist/tex/context/base/strc-ref.lua
new file mode 100644
index 00000000000..eb4f74ce86f
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/strc-ref.lua
@@ -0,0 +1,874 @@
+if not modules then modules = { } end modules ['strc-ref'] = {
+ version = 1.001,
+ comment = "companion to strc-ref.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local format, find, gmatch, match = string.format, string.find, string.gmatch, string.match
+local texsprint, texwrite, texcount = tex.sprint, tex.write, tex.count
+
+local trace_referencing = false trackers.register("structure.referencing", function(v) trace_referencing = v end)
+
+local ctxcatcodes = tex.ctxcatcodes
+local variables = interfaces.variables
+local constants = interfaces.constants
+
+-- beware, this is a first step in the rewrite (just getting rid of
+-- the tuo file); later all access and parsing will also move to lua
+
+jobreferences = jobreferences or { }
+jobreferences.tobesaved = jobreferences.tobesaved or { }
+jobreferences.collected = jobreferences.collected or { }
+jobreferences.documents = jobreferences.documents or { }
+jobreferences.defined = jobreferences.defined or { } -- indirect ones
+jobreferences.derived = jobreferences.derived or { } -- taken from lists
+jobreferences.specials = jobreferences.specials or { } -- system references
+jobreferences.runners = jobreferences.runners or { }
+jobreferences.internals = jobreferences.internals or { }
+
+storage.register("jobreferences/defined", jobreferences.defined, "jobreferences.defined")
+
+local tobesaved, collected = jobreferences.tobesaved, jobreferences.collected
+local defined, derived, specials, runners = jobreferences.defined, jobreferences.derived, jobreferences.specials, jobreferences.runners
+
+local currentreference = nil
+
+jobreferences.initializers = jobreferences.initializers or { }
+
+function jobreferences.registerinitializer(func) -- we could use a token register instead
+ jobreferences.initializers[#jobreferences.initializers+1] = func
+end
+
+local function initializer()
+ tobesaved, collected = jobreferences.tobesaved, jobreferences.collected
+ for k,v in ipairs(jobreferences.initializers) do
+ v(tobesaved,collected)
+ end
+end
+
+if job then
+ job.register('jobreferences.collected', jobreferences.tobesaved, initializer)
+end
+
+-- todo: delay split till later as in destinations we split anyway
+
+function jobreferences.set(kind,prefix,tag,data)
+ for ref in gmatch(tag,"[^,]+") do
+ local p, r = match(ref,"^(%-):(.-)$")
+ if p and r then
+ prefix, ref = p, r
+ else
+ prefix = ""
+ end
+ if ref ~= "" then
+ local pd = tobesaved[prefix]
+ if not pd then
+ pd = { }
+ tobesaved[prefix] = pd
+ end
+ pd[ref] = data
+ texsprint(ctxcatcodes,format("\\dofinish%sreference{%s}{%s}",kind,prefix,ref))
+ end
+ end
+end
+
+function jobreferences.setandgetattribute(kind,prefix,tag,data) -- maybe do internal automatically here
+ jobreferences.set(kind,prefix,tag,data)
+ texcount.lastdestinationattribute = jobreferences.setinternalreference(prefix,tag) or -0x7FFFFFFF
+end
+
+function jobreferences.enhance(prefix,tag,spec)
+ local l = tobesaved[prefix][tag]
+ if l then
+ l.references.realpage = texcount.realpageno
+ end
+end
+
+-- this reference parser is just an lpeg version of the tex based one
+
+local result = { }
+
+local lparent, rparent, lbrace, rbrace, dcolon, backslash = lpeg.P("("), lpeg.P(")"), lpeg.P("{"), lpeg.P("}"), lpeg.P("::"), lpeg.P("\\")
+
+local reset = lpeg.P("") / function() result = { } end
+local b_token = backslash / function(s) result.has_tex = true return s end
+
+local o_token = 1 - rparent - rbrace - lparent - lbrace
+local a_token = 1 - rbrace
+local s_token = 1 - lparent - lbrace - lparent - lbrace
+local i_token = 1 - lparent - lbrace
+local f_token = 1 - lparent - lbrace - dcolon
+
+local outer = (f_token )^1 / function (s) result.outer = s end
+local operation = lpeg.Cs((b_token + o_token)^1) / function (s) result.operation = s end
+local arguments = lpeg.Cs((b_token + a_token)^0) / function (s) result.arguments = s end
+local special = (s_token )^1 / function (s) result.special = s end
+local inner = (i_token )^1 / function (s) result.inner = s end
+
+local outer_reference = (outer * dcolon)^0
+
+operation = outer_reference * operation -- special case: page(file::1) and file::page(1)
+
+local optional_arguments = (lbrace * arguments * rbrace)^0
+local inner_reference = inner * optional_arguments
+local special_reference = special * lparent * (operation * optional_arguments + operation^0) * rparent
+
+local scanner = (reset * outer_reference * (special_reference + inner_reference)^-1 * -1) / function() return result end
+
+function jobreferences.analyse(str)
+ return scanner:match(str)
+end
+
+function jobreferences.split(str)
+ return scanner:match(str or "")
+end
+
+--~ print(table.serialize(jobreferences.analyse("")))
+--~ print(table.serialize(jobreferences.analyse("inner")))
+--~ print(table.serialize(jobreferences.analyse("special(operation{argument,argument})")))
+--~ print(table.serialize(jobreferences.analyse("special(operation)")))
+--~ print(table.serialize(jobreferences.analyse("special()")))
+--~ print(table.serialize(jobreferences.analyse("inner{argument}")))
+--~ print(table.serialize(jobreferences.analyse("outer::")))
+--~ print(table.serialize(jobreferences.analyse("outer::inner")))
+--~ print(table.serialize(jobreferences.analyse("outer::special(operation{argument,argument})")))
+--~ print(table.serialize(jobreferences.analyse("outer::special(operation)")))
+--~ print(table.serialize(jobreferences.analyse("outer::special()")))
+--~ print(table.serialize(jobreferences.analyse("outer::inner{argument}")))
+--~ print(table.serialize(jobreferences.analyse("special(outer::operation)")))
+
+-- -- -- related to strc-ini.lua -- -- --
+
+jobreferences.resolvers = jobreferences.resolvers or { }
+
+function jobreferences.resolvers.section(var)
+ local vi = structure.lists.collected[var.i[2]]
+ if vi then
+ var.i = vi
+ var.r = (vi.references and vi.references.realpage) or 1
+ else
+ var.i = nil
+ var.r = 1
+ end
+end
+
+jobreferences.resolvers.float = jobreferences.resolvers.section
+jobreferences.resolvers.description = jobreferences.resolvers.section
+jobreferences.resolvers.formula = jobreferences.resolvers.section
+jobreferences.resolvers.note = jobreferences.resolvers.section
+
+function jobreferences.resolvers.reference(var)
+ local vi = var.i[2]
+ if vi then
+ var.i = vi
+ var.r = (vi.references and vi.references.realpage) or 1
+ else
+ var.i = nil
+ var.r = 1
+ end
+end
+
+local function register_from_lists(collected,derived)
+ for i=1,#collected do
+ local entry = collected[i]
+ local m, r = entry.metadata, entry.references
+ if m and r then
+ local prefix, reference = r.referenceprefix or "", r.reference or ""
+ if reference ~= "" then
+ local kind, realpage = m.kind, r.realpage
+ if kind and realpage then
+ local d = derived[prefix] if not d then d = { } derived[prefix] = d end
+--~ d[reference] = { kind, i }
+for s in gmatch(reference,"[^,]+") do
+ d[s] = { kind, i }
+end
+ end
+ end
+ end
+ end
+end
+
+jobreferences.registerinitializer(function() register_from_lists(structure.lists.collected,derived) end)
+
+-- urls
+
+jobreferences.urls = jobreferences.urls or { }
+jobreferences.urls.data = jobreferences.urls.data or { }
+
+local urls = jobreferences.urls.data
+
+function jobreferences.urls.define(name,url,file,description)
+ if name and name ~= "" then
+ urls[name] = { url or "", file or "", description or url or file or ""}
+ end
+end
+
+function jobreferences.urls.get(name,method,space) -- method: none, before, after, both, space: yes/no
+ local u = urls[name]
+ if u then
+ local url, file = u[1], u[2]
+ if file and file ~= "" then
+ texsprint(ctxcatcodes,url,"/",file)
+ else
+ texsprint(ctxcatcodes,url)
+ end
+ end
+end
+
+-- files
+
+jobreferences.files = jobreferences.files or { }
+jobreferences.files.data = jobreferences.files.data or { }
+
+local files = jobreferences.files.data
+
+function jobreferences.files.define(name,file,description)
+ if name and name ~= "" then
+ files[name] = { file or "", description or file or ""}
+ end
+end
+
+function jobreferences.files.get(name,method,space) -- method: none, before, after, both, space: yes/no
+ local f = files[name]
+ if f then
+ texsprint(ctxcatcodes,f[1])
+ end
+end
+
+-- programs
+
+jobreferences.programs = jobreferences.programs or { }
+jobreferences.programs.data = jobreferences.programs.data or { }
+
+local programs = jobreferences.programs.data
+
+function jobreferences.programs.define(name,file,description)
+ if name and name ~= "" then
+ programs[name] = { file or "", description or file or ""}
+ end
+end
+
+function jobreferences.programs.get(name)
+ local f = programs[name]
+ if f then
+ texsprint(ctxcatcodes,f[1])
+ end
+end
+
+-- shared by urls and files
+
+function jobreferences.whatfrom(name)
+ texsprint(ctxcatcodes,(urls[name] and variables.url) or (files[name] and variables.file) or variables.unknown)
+end
+
+function jobreferences.from(name,method,space)
+ local u = urls[name]
+ if u then
+ local url, file, description = u[1], u[2], u[3]
+ if description ~= "" then
+ -- ok
+ elseif file and file ~= "" then
+ description = url .. "/" .. file
+ else
+ description = url
+ end
+ texsprint(ctxcatcodes,description)
+ else
+ local f = files[name]
+ if f then
+ local description, file = f[1], f[2]
+ if description ~= "" then
+ --
+ else
+ description = file
+ end
+ texsprint(ctxcatcodes,description)
+ end
+ end
+end
+
+function jobreferences.load(name)
+ if name then
+ local jdn = jobreferences.documents[name]
+ if not jdn then
+ jdn = { }
+ local fn = files[name]
+ if fn then
+ jdn.filename = fn[1]
+ local data = io.loaddata(file.replacesuffix(fn[1],"tuc")) or ""
+ if data ~= "" then
+ -- quick and dirty, assume sane { } usage inside strings
+ local lists = data:match("structure%.lists%.collected=({.-[\n\r]+})[\n\r]")
+ if lists and lists ~= "" then
+ lists = loadstring("return" .. lists)
+ if lists then
+ jdn.lists = lists()
+ jdn.derived = { }
+ register_from_lists(jdn.lists,jdn.derived)
+ else
+ commands.writestatus("error","invalid structure data in %s",filename)
+ end
+ end
+ local references = data:match("jobreferences%.collected=({.-[\n\r]+})[\n\r]")
+ if references and references ~= "" then
+ references = loadstring("return" .. references)
+ if references then
+ jdn.references = references()
+ else
+ commands.writestatus("error","invalid reference data in %s",filename)
+ end
+ end
+ end
+ end
+ jobreferences.documents[name] = jdn
+ end
+ return jdn
+ else
+ return nil
+ end
+end
+
+function jobreferences.define(prefix,reference,list)
+ local d = defined[prefix] if not d then d = { } defined[prefix] = d end
+ d[reference] = { "defined", list }
+end
+
+--~ function jobreferences.registerspecial(name,action,...)
+--~ specials[name] = { action, ... }
+--~ end
+
+function jobreferences.reset(prefix,reference)
+ local d = defined[prefix]
+ if d then
+ d[reference] = nil
+ end
+end
+
+-- \primaryreferencefoundaction
+-- \secondaryreferencefoundaction
+-- \referenceunknownaction
+
+-- t.special t.operation t.arguments t.outer t.inner
+
+local settings_to_array = aux.settings_to_array
+
+local function resolve(prefix,reference,args,set) -- we start with prefix,reference
+ texcount.referencehastexstate = 0
+ if reference and reference ~= "" then
+ set = set or { }
+ local r = settings_to_array(reference)
+ for i=1,#r do
+ local ri = r[i]
+ local dp = defined[prefix] or defined[""]
+ local d = dp[ri]
+ if d then
+ resolve(prefix,d[2],nil,set)
+ else
+ local var = scanner:match(ri)
+ if var then
+ var.reference = ri
+ if not var.outer and var.inner then
+ local d = defined[prefix][var.inner] or defined[""][var.inner]
+ if d then
+ resolve(prefix,d[2],var.arguments,set) -- args can be nil
+ else
+ if args then var.arguments = args end
+ set[#set+1] = var
+ end
+ else
+ if args then var.arguments = args end
+ set[#set+1] = var
+ end
+ if var.has_tex then
+ set.has_tex = true
+ end
+ else
+ -- logs.report("references","funny pattern: %s",ri or "?")
+ end
+ end
+ end
+ if set.has_tex then
+ texcount.referencehastexstate = 1
+ end
+ return set
+ else
+ return { }
+ end
+end
+
+-- prefix == "" is valid prefix which saves multistep lookup
+
+jobreferences.currentset = nil
+
+local b, e = "\\ctxlua{local jc = jobreferences.currentset;", "}"
+local o, a = 'jc[%s].operation=[[%s]];', 'jc[%s].arguments=[[%s]];'
+
+function jobreferences.expandcurrent() -- todo: two booleans: o_has_tex& a_has_tex
+ local currentset = jobreferences.currentset
+ if currentset and currentset.has_tex then
+ local done = false
+ for i=1,#currentset do
+ local ci = currentset[i]
+ local operation = ci.operation
+ if operation then
+ if find(operation,"\\") then -- if o_has_tex then
+ if not done then
+ texsprint(ctxcatcodes,b)
+ done = true
+ end
+ texsprint(ctxcatcodes,format(o,i,operation))
+ end
+ end
+ local arguments = ci.arguments
+ if arguments then
+ if find(arguments,"\\") then -- if a_has_tex then
+ if not done then
+ texsprint(ctxcatcodes,b)
+ done = true
+ end
+ texsprint(ctxcatcodes,format(a,i,arguments))
+ end
+ end
+ end
+ if done then
+ texsprint(ctxcatcodes,e)
+ end
+ end
+end
+
+local function identify(prefix,reference)
+ local set = resolve(prefix,reference)
+ local bug = false
+ for i=1,#set do
+ local var = set[i]
+ local special, inner, outer, arguments, operation = var.special, var.inner, var.outer, var.arguments, var.operation
+ if special then
+ local s = specials[special]
+ if s then
+ if outer then
+ if operation then
+ -- special(outer::operation)
+ var.kind = "special outer with operation"
+ else
+ -- special()
+ var.kind = "special outer"
+ end
+ elseif operation then
+ if arguments then
+ -- special(operation{argument,argument})
+ var.kind = "special operation with arguments"
+ else
+ -- special(operation)
+ var.kind = "special operation"
+ end
+ else
+ -- special()
+ var.kind = "special"
+ end
+ else
+ var.error = "unknown special"
+ end
+ elseif outer then
+ local e = jobreferences.load(outer)
+ if e then
+ local f = e.filename
+ if f then
+ if inner then
+ local r = e.references
+ if r then
+ r = r[prefix]
+ if r then
+ r = r[inner]
+ if r then
+ if arguments then
+ -- outer::inner{argument}
+ var.kind = "outer with inner with arguments"
+ else
+ -- outer::inner
+ var.kind = "outer with inner"
+ end
+ var.i = { "reference", r }
+ jobreferences.resolvers.reference(var)
+ var.f = f
+ end
+ end
+ end
+ if not r then
+ r = e.derived
+ if r then
+ r = r[prefix]
+ if r then
+ r = r[inner]
+ if r then
+ -- outer::inner
+ if arguments then
+ -- outer::inner{argument}
+ var.kind = "outer with inner with arguments"
+ else
+ -- outer::inner
+ var.kind = "outer with inner"
+ end
+ var.i = r
+ jobreferences.resolvers[r[1]](var)
+ var.f = f
+ end
+ end
+ end
+ end
+ if not r then
+ var.error = "unknown outer"
+ end
+ elseif special then
+ local s = specials[special]
+ if s then
+ if operation then
+ if arguments then
+ -- outer::special(operation{argument,argument})
+ var.kind = "outer with special and operation and arguments"
+ else
+ -- outer::special(operation)
+ var.kind = "outer with special and operation"
+ end
+ else
+ -- outer::special()
+ var.kind = "outer with special"
+ end
+ var.f = f
+ else
+ var.error = "unknown outer with special"
+ end
+ else
+ -- outer::
+ var.kind = "outer"
+ var.f = f
+ end
+ else
+ var.error = "unknown outer"
+ end
+ else
+ var.error = "unknown outer"
+ end
+ else
+ if arguments then
+ local s = specials[inner]
+ if s then
+ -- inner{argument}
+ var.kind = "special with arguments"
+ else
+ var.error = "unknown inner or special"
+ end
+ else
+ -- inner
+--~ local i = tobesaved[prefix]
+ local i = collected[prefix]
+ i = i and i[inner]
+ if i then
+ var.i = { "reference", i }
+ jobreferences.resolvers.reference(var)
+ var.kind = "inner"
+ var.p = prefix
+ else
+ i = derived[prefix]
+ i = i and i[inner]
+ if i then
+ var.kind = "inner"
+ var.i = i
+ jobreferences.resolvers[i[1]](var)
+ var.p = prefix
+ else
+ i = collected[prefix]
+ i = i and i[inner]
+ if i then
+ var.kind = "inner"
+ var.i = { "reference", i }
+ jobreferences.resolvers.reference(var)
+ var.p = prefix
+ else
+ local s = specials[inner]
+ if s then
+ var.kind = "special"
+ else
+ i = (collected[""] and collected[""][inner]) or
+ (derived [""] and derived [""][inner]) or
+ (tobesaved[""] and tobesaved[""][inner])
+ if i then
+ var.kind = "inner"
+ var.i = { "reference", i }
+ jobreferences.resolvers.reference(var)
+ var.p = ""
+ else
+ var.error = "unknown inner or special"
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ bug = bug or var.error
+ set[i] = var
+ end
+ jobreferences.currentset = set
+ return set, bug
+end
+
+jobreferences.identify = identify
+
+function jobreferences.doifelse(prefix,reference,highlight,newwindow,layer)
+ local set, bug = identify(prefix,reference)
+ local unknown = bug or #set == 0
+ if unknown then
+ currentreference = nil -- will go away
+ else
+ set.highlight, set.newwindow,set.layer = highlight, newwindow, layer
+ currentreference = set[1]
+ end
+ -- we can do the expansion here which saves a call
+ commands.doifelse(not unknown)
+end
+
+function jobreferences.setinternalreference(prefix,tag,internal,view)
+ local t = { }
+ if tag then
+ if prefix and prefix ~= "" then
+ prefix = prefix .. ":"
+ for ref in gmatch(tag,"[^,]+") do
+ t[#t+1] = prefix .. ref
+ end
+ else
+ for ref in gmatch(tag,"[^,]+") do
+ t[#t+1] = ref
+ end
+ end
+ end
+ if internal then
+ t[#t+1] = "aut:" .. internal
+ end
+ local destination = jobreferences.mark(t,nil,nil,view) -- returns an attribute
+ texcount.lastdestinationattribute = destination
+ return destination
+end
+
+--
+
+jobreferences.filters = jobreferences.filters or { }
+
+local filters = jobreferences.filters
+local helpers = structure.helpers
+local sections = structure.sections
+
+function jobreferences.filter(name) -- number page title ...
+ local data = currentreference and currentreference.i
+ if data then
+ local kind = data.metadata and data.metadata.kind
+ if kind then
+ local filter = filters[kind] or filters.generic
+ filter = filter and (filter[name] or filters.generic[name])
+ if filter then
+ filter(data)
+ elseif trace_referencing then
+ logs.report("referencing","no (generic) filter.name for '%s'",name)
+ end
+ elseif trace_referencing then
+ logs.report("referencing","no metadata.kind for '%s'",name)
+ end
+ elseif trace_referencing then
+ logs.report("referencing","no current reference for '%s'",name)
+ end
+end
+
+filters.generic = { }
+
+function filters.generic.title(data)
+ if data then
+ local titledata = data.titledata
+ if titledata then
+ helpers.title(titledata.title or "?",data.metadata)
+ end
+ end
+end
+
+function filters.generic.text(data)
+ if data then
+ local entries = data.entries
+ if entries then
+ helpers.title(entries.text or "?",data.metadata)
+ end
+ end
+end
+
+function filters.generic.number(data) -- todo: spec and then no stopper
+ if data then
+ helpers.prefix(data)
+ local numberdata = data.numberdata
+ if numberdata then
+ sections.typesetnumber(numberdata,"number",numberdata or false)
+ end
+ end
+end
+
+function filters.generic.page(data,prefixspec,pagespec)
+ helpers.prefixpage(data,prefixspec,pagespec)
+end
+
+filters.text = { }
+
+function filters.text.title(data)
+-- texsprint(ctxcatcodes,"[text title]")
+ helpers.title(data.entries.text or "?",data.metadata)
+end
+
+function filters.text.number(data)
+-- texsprint(ctxcatcodes,"[text number]")
+ helpers.title(data.entries.text or "?",data.metadata)
+end
+
+function filters.text.page(data,prefixspec,pagespec)
+ helpers.prefixpage(data,prefixspec,pagespec)
+end
+
+filters.section = { }
+
+filters.section.title = filters.generic.title
+filters.section.page = filters.generic.page
+
+function filters.section.number(data) -- todo: spec and then no stopper
+ if data then
+ local numberdata = data.numberdata
+ if numberdata then
+ sections.typesetnumber(numberdata,"number",numberdata or false)
+ end
+ end
+end
+
+--~ filters.float = { }
+
+--~ filters.float.title = filters.generic.title
+--~ filters.float.number = filters.generic.number
+--~ filters.float.page = filters.generic.page
+
+structure.references = structure.references or { }
+structure.helpers = structure.helpers or { }
+
+local references = structure.references
+local helpers = structure.helpers
+
+function references.sectiontitle(n)
+ helpers.sectiontitle(lists.collected[tonumber(n) or 0])
+end
+
+function references.sectionnumber(n)
+ helpers.sectionnumber(lists.collected[tonumber(n) or 0])
+end
+
+function references.sectionpage(n,prefixspec,pagespec)
+ helpers.prefixedpage(lists.collected[tonumber(n) or 0],prefixspec,pagespec)
+end
+
+-- analyse
+
+jobreferences.testrunners = jobreferences.testrunners or { }
+jobreferences.testspecials = jobreferences.testspecials or { }
+
+local runners = jobreferences.testrunners
+local specials = jobreferences.testspecials
+
+function jobreferences.analyse(actions)
+ actions = actions or jobreferences.currentset
+ if not actions then
+ actions = { realpage = 0 }
+ elseif actions.realpage then
+ -- already analysed
+ else
+ -- we store some analysis data alongside the indexed array
+ -- at this moment only the real reference page is analysed
+ -- normally such an analysis happens in the backend code
+ texcount.referencepagestate = 0
+ local nofactions = #actions
+ if nofactions > 0 then
+ for i=1,nofactions do
+ local a = actions[i]
+ local what = runners[a.kind]
+ if what then
+ what = what(a,actions)
+ end
+ end
+ local realpage, p = texcount.realpageno, tonumber(actions.realpage)
+ if not p then
+ -- sorry
+ elseif p > realpage then
+ texcount.referencepagestate = 3
+ elseif p < realpage then
+ texcount.referencepagestate = 2
+ else
+ texcount.referencepagestate = 1
+ end
+ end
+ end
+ return actions
+end
+
+
+function jobreferences.realpage() -- special case, we always want result
+ local cs = jobreferences.analyse()
+ texwrite(cs.realpage or 0)
+end
+
+--
+
+jobreferences.pages = {
+ [variables.firstpage] = function() return structure.counters.record("realpage")["first"] end,
+ [variables.previouspage] = function() return structure.counters.record("realpage")["previous"] end,
+ [variables.nextpage] = function() return structure.counters.record("realpage")["next"] end,
+ [variables.lastpage] = function() return structure.counters.record("realpage")["last"] end,
+
+ [variables.firstsubpage] = function() return structure.counters.record("subpage" )["first"] end,
+ [variables.previoussubpage] = function() return structure.counters.record("subpage" )["previous"] end,
+ [variables.nextsubpage] = function() return structure.counters.record("subpage" )["next"] end,
+ [variables.lastsubpage] = function() return structure.counters.record("subpage" )["last"] end,
+
+ [variables.forward] = function() return structure.counters.record("realpage")["forward"] end,
+ [variables.backward] = function() return structure.counters.record("realpage")["backward"] end,
+}
+
+-- maybe some day i will merge this in the backend code with a testmode (so each
+-- runner then implements a branch)
+
+runners["inner"] = function(var,actions)
+ local r = var.r
+ if r then
+ actions.realpage = r
+ end
+end
+
+runners["special"] = function(var,actions)
+ local handler = specials[var.special]
+ return handler and handler(var,actions)
+end
+
+runners["special operation"] = runners["special"]
+runners["special operation with arguments"] = runners["special"]
+
+local pages = jobreferences.pages
+
+function specials.internal(var,actions)
+ local v = jobreferences.internals[tonumber(var.operation)]
+ local r = v and v.references.realpage
+ if r then
+ actions.realpage = r
+ end
+end
+
+specials.i = specials.internal
+
+function specials.page(var,actions)
+ local p = pages[var.operation]
+ if type(p) == "function" then
+ p = p()
+ end
+ if p then
+ actions.realpage = p
+ end
+end
diff --git a/Master/texmf-dist/tex/context/base/core-ref.tex b/Master/texmf-dist/tex/context/base/strc-ref.mkii
index 3b56cc86a0b..d06319d0744 100644
--- a/Master/texmf-dist/tex/context/base/core-ref.tex
+++ b/Master/texmf-dist/tex/context/base/strc-ref.mkii
@@ -1,7 +1,7 @@
%D \module
-%D [ file=core-ref,
+%D [ file=strc-ref,
%D version=1998.01.15,
-%D title=\CONTEXT\ Core Macros,
+%D title=\CONTEXT\ Structure Macros,
%D subtitle=Cross Referencing,
%D author=Hans Hagen,
%D date=\currentdate,
@@ -11,7 +11,9 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Core Macros / Cross Referencing}
+% we will merge mkii code back in here
+
+\writestatus{loading}{ConTeXt Structure Macros / Cross Referencing}
% todo : unknown/illegal reference no arg
% todo : +n pages check on 'samepage' (contrastcolor)
@@ -42,93 +44,21 @@
\unprotect
-\startmessages dutch library: references
- title: verwijzingen
- 1: onbekende verwijzing --
- 2: dubbele verwijzing -- op pagina --
- 3: type verwijzing -- onbekend
- 4: verboden verwijzing --
- 21: document -- geladen
- 22: document -- is niet interactief
- 23: onduidelijke verwijzing -- (prefix=--)
-\stopmessages
-
-\startmessages english library: references
- title: references
- 1: unknown reference --
- 2: duplicate reference -- on page --
- 3: unknown reference type --
- 4: illegal reference --
- 21: document -- loaded
- 22: document -- is not interactive
- 23: obscure reference -- (prefix=--)
-\stopmessages
-
-\startmessages german library: references
- title: referenzen
- 1: unbekannte Referenz --
- 2: doppelte Referenz -- auf Seite --
- 3: unbekannte Referenz Typ --
- 4: illegale Referenz --
- 21: Dokument -- geladen
- 22: Dokument -- ist nicht aktiv
- 23: Obskure Referenz -- (Prefix=--)
-\stopmessages
-
-\startmessages czech library: references
- title: reference
- 1: neznama reference --
- 2: duplicitni reference -- na strane --
- 3: neznamy typ reference --
- 4: nedovolena reference --
- 21: dokument -- nacten
- 22: dokument -- neni interaktivni
- 23: obskurni (nejasna) reference -- (prefix=--)
-\stopmessages
-
-\startmessages italian library: references
- title: riferimenti
- 1: riferimento sconosciuto --
- 2: riferimento duplicato -- a pagina --
- 3: riferimento di tipo sconosciuto --
- 4: riferimento illecito --
- 21: documento -- caricato
- 22: il documento -- non ø interattivo
- 23: riferimento ambiguo -- (prefisso=--)
-\stopmessages
-
-\startmessages norwegian library: references
- title: referanser
- 1: ukjent referanse --
- 2: duplikat referanse -- pø side --
- 3: ukjent referansetype --
- 4: ulovlig referanse --
- 21: dokument -- er lest inn
- 22: dokument -- er ikke interaktivt
- 23: obskur referanse -- (Prefix=--)
-\stopmessages
-
-\startmessages romanian library: references
- title: referinte
- 1: referinta necunoscuta --
- 2: referinta duplicat -- la pagina --
- 3: tip necunoscut de referinta --
- 4: referinta eronata --
- 21: documentul -- este incarcat
- 22: documentul -- nu este interactiv
- 23: referinta obscura -- (prefix=--)
-\stopmessages
-
-\startmessages french library: references
- title: réferences
- 1: réference -- inconnue
- 2: réference -- dupliquée à la page --
- 3: type -- de réference inconnu
- 4: réference -- inconnue
- 21: document -- chargé
- 22: le document -- n'est pas interactif
- 23: reference -- indéterminé (préfixe=--)
-\stopmessages
+% messages moved
+
+% messages moved
+
+% messages moved
+
+% messages moved
+
+% messages moved
+
+% messages moved
+
+% messages moved
+
+% messages moved
%D This module deals with referencing. In \CONTEXT\ referencing
%D is one of the core features, although at a first glance
@@ -222,7 +152,52 @@
{#3}%
\egroup}
-%D As we can see, these macros depend on three other ones,
+%D The last reference is saved in a macro named \type
+%D {\lastreference} (indeed). To keep track of the order of
+%D references, later we will see for what purpose, we maintain
+%D a counter.
+
+\newcount\crossreferencenumber \crossreferencenumber\plusone
+
+\let\lastreference\empty
+
+\def\writereference#1#2#3#4%
+ {\ifreferencing
+ \edef\!!stringa{#1}%
+ \ifx\!!stringa\empty \else
+ \def\dowritereference##1%
+ {\xdef\lastreference{##1}%
+ \@EA\dodowritereference\lastreference\empty\empty\end{#2}{#3}{#4}}%
+ \rawprocesscommalist[\!!stringa]\dowritereference
+ \fi
+ \fi}
+
+%D Beware: \type {#2} gobbles space in references so that
+%D \typ {a nice ref} becomes \typ {anice ref}.
+
+\def\dodowritereference#1#2#3\end#4#5#6%
+ {\bgroup
+ \global\advance\crossreferencenumber \plusone\relax
+ \if#1-\if#2:%
+ \let\referenceprefix\empty
+ \xdef\lastreference{#3}%
+ \else
+ % \xdef\lastreference{#1#2#3}% here we loose the space
+ \fi\else
+ % \xdef\lastreference{#1#2#3}% here we loose the space
+ \fi
+ \ifx\lastreference\empty \else
+ \doiffirstreferenceoccurance\lastreference
+ {\thisisdestination{\referenceprefix\lastreference}}%
+ \referenceinfo>\lastreference
+ \expanded{\writeutilitycommand{\noexpand\mainreference{\referenceprefix}{\lastreference}{#4}{#5}{#6}}}%
+ \fi
+ \egroup}
+
+%D We will implement \type {\doiffirstreferenceoccurance}
+%D later on.
+
+%D These macros depend on three other ones,
%D \type {\makesectionformat}, that generated \type
%D {\sectionformat}, \type {\pagenumber}. The not yet used
%D argument \type{#1} is a tag that specifies the type of
@@ -240,8 +215,6 @@
%D different alphabet and needs accented entries in registers.
\appendtoks
- %\def\dohandleaccent #1#2{\string#1\string#2}%
- %\def\dohandlecommand #1{\string#1}%
\cleanupfeatures
\to \everyreference
@@ -256,7 +229,7 @@
%D
%D Therefore, during a pass, \CONTEXT\ writes the references to
%D a the utility file. The next macro does the job and
-%D generates entries like:
+%D generates entries like: (for mkii)
%D
%D \starttyping
%D \mainreference{prefix}{reference}{page}{realpage}{text}
@@ -277,49 +250,6 @@
\let\referenceprefix=\empty
\let\lastreference =\empty
-%D The last reference is saved in a macro named \type
-%D {\lastreference} (indeed). To keep track of the order of
-%D references, later we will see for what purpose, we maintain
-%D a counter.
-
-\newcount\crossreferencenumber \crossreferencenumber=1
-
-\def\writereference#1#2#3#4%
- {\ifreferencing
- \edef\!!stringa{#1}%
- \ifx\!!stringa\empty \else
- \def\dowritereference##1%
- {\xdef\lastreference{##1}%
- \@EA\dodowritereference\lastreference\empty\empty\end{#2}{#3}{#4}}%
- \rawprocesscommalist[\!!stringa]\dowritereference
- \fi
- \fi}
-
-%D Beware: \type {#2} gobbles space in references so that
-%D \typ {a nice ref} becomes \typ {anice ref}.
-
-\def\dodowritereference#1#2#3\end#4#5#6%
- {\bgroup
- \global\advance\crossreferencenumber \plusone\relax
- \if#1-\if#2:%
- \let\referenceprefix\empty
- \xdef\lastreference{#3}%
- \else
- % \xdef\lastreference{#1#2#3}% here we loose the space
- \fi\else
- % \xdef\lastreference{#1#2#3}% here we loose the space
- \fi
- \ifx\lastreference\empty \else
- \doiffirstreferenceoccurance\lastreference
- {\thisisdestination{\referenceprefix\lastreference}}%
- \referenceinfo>\lastreference
- \expanded{\writeutilitycommand{\noexpand\mainreference{\referenceprefix}{\lastreference}{#4}{#5}{#6}}}%
- \fi
- \egroup}
-
-%D We will implement \type {\doiffirstreferenceoccurance}
-%D later on.
-
%D When (during a second pass over the document) references are
%D loaded, they are saved in a macro, one for each reference.
%D In practice this comes to giving \type {\mainreference} a
@@ -567,39 +497,6 @@
\def\currentfolioreference{0}
-% \def\dogetreferenceelements#1#2#3#4#5%
-% {\chardef\currentreferencetype=\ifx#1\relax0\else#1\fi\relax
-% \ifnum\currentreferencetype<2
-% \edef\currentpagereference{#2}%
-% \ifx\currentpagereference \empty
-% \let\currentfolioreference\folio
-% \else
-% \def \currentpagereference {\referencepagenumber[#2]}%
-% \edef\currentfolioreference{\dosplitofffoliopart[#2]}%
-% \fi
-% \edef\currentrealreference{#3}%
-% \settextreferences#4\end
-% \ifnum0#5<\crossreferencenumber
-% \forwardreferencetrue
-% \else
-% \forwardreferencefalse
-% \fi
-% \else
-% \edef\currentrealreference {#3}%
-% \def \currentdatareference {#2}%
-% \let \currentfolioreference\folio
-% \settextreferences#4\end
-% \forwardreferencefalse
-% \fi
-% \ifodd\currentreferencetype
-% \realreferencepagefalse
-% \else
-% \docheckrealreferencepage\currentrealreference
-% \ifrealreferencepage \else
-% \docheckrealreferencepage\currentdatareference
-% \fi
-% \fi}
-
\let\currentlocationreference\empty
\def\dogetreferenceelements#1#2#3#4#5%
@@ -772,12 +669,19 @@
\newif\ifreferencefound
-\let\currentfullreference =\empty
-\let\currentreferencespecial =\empty
-\let\currentreferenceoperation=\empty
-\let\currentreferencearguments=\empty
-\let\currentouterreference =\empty
-\let\currentinnerreference =\empty
+\let\currentfullreference \empty
+\let\currentreferencespecial \empty
+\let\currentreferenceoperation\empty
+\let\currentreferencearguments\empty
+\let\currentouterreference \empty
+\let\currentinnerreference \empty
+
+\def\setreferencevariables#1#2#3#4#5%
+ {\def\currentreferencespecial {#1}%
+ \def\currentreferenceoperation{#2}%
+ \def\currentreferencearguments{#3}%
+ \def\currentouterreference {#4}%
+ \def\currentinnerreference {#5}}
\def\splitofffullreference#1%
{\edef\currentfullreference{#1}%
@@ -945,176 +849,6 @@
\def\resetreference[#1]%
{\global\letbeundefined{\specialREFidentifier#1}}
-\beginTEX
-
-% \def\dodoifreferencefoundelse#1#2#3%
-% {\checkreferences
-% \bgroup
-% \let\unharmedreferenceprefix=\referenceprefix
-% \bgroup
-% \splitofffullreference{#1}%
-% \ifx\currentreferencespecial\specialREFidentifier
-% \@EA\ifx\csname\specialREFidentifier\currentreferenceoperation\endcsname\relax
-% \global\referencefoundfalse
-% \else
-% \global\referencefoundtrue
-% \@EA\@EA\@EA\splitofffullreference\@EA\@EA\@EA % 1 level
-% {\csname\specialREFidentifier\currentreferenceoperation\endcsname}%
-% \fi
-% \else
-% \global\referencefoundtrue
-% \fi
-% \ifreferencefound
-% \ifx\currentreferencespecial\empty
-% \ifx\currentouterreference\empty
-% \docheckinnerreference
-% \ifreferencefound \else
-% \checkglobalfilereferences
-% \fi
-% \else
-% \docheckouterreference
-% \fi
-% \ifreferencefound
-% \ifx\currentreferencearguments\empty
-% \getreferenceelements\currentfullreference
-% \else
-% \getreferenceelements\currentinnerreference
-% \fi
-% \fi
-% \else
-% \docheckspecialreference
-% \fi
-% \fi
-% \ifreferencefound \else
-% \let\referenceprefix\empty
-% \@EA\ifx\csname\specialREFidentifier#1\endcsname\relax\else
-% \@EA\@EA\@EA\splitofffullreference\@EA\@EA\@EA % 1 level
-% {\csname\specialREFidentifier#1\endcsname}%
-% \ifx\currentreferencespecial\empty
-% \ifx\currentouterreference\empty
-% \docheckinnerreference
-% \ifreferencefound \else
-% \checkglobalfilereferences
-% \fi
-% \else
-% \docheckouterreference
-% \fi
-% \ifreferencefound
-% % \getreferenceelements\currentfullreference
-% \ifx\currentreferencearguments\empty
-% \getreferenceelements\currentfullreference
-% \else
-% \getreferenceelements\currentinnerreference
-% \fi
-% \fi
-% \else
-% \docheckspecialreference
-% \fi
-% \fi
-% \fi
-% \iftracereferences
-% \doshowcurrentreference\space
-% \writestatus{\m!references}{\currentreferenceshow}%
-% \fi
-% \ifreferencefound#2\else#3\fi
-% \egroup
-% \egroup}
-
-\newcount\nofexpandedreferences
-
-\def\dodoexpandreferences#1REF(#2#3)#4\relax
- {\ifx#2\relax
- \@EA\ifx\csname\specialREFidentifier#1\endcsname\relax
- \global\advance\nofexpandedreferences \plusone
- \@EA\xdef\csname REF::\number\nofexpandedreferences\endcsname{#1}%
- \else
- \edef\expandedreference{\csname\specialREFidentifier#1\endcsname,}%
- \fi
- \else
- \@EA\ifx\csname\specialREFidentifier#2#3\endcsname\relax
- % not set
- \else
- \edef\expandedreference{\csname\specialREFidentifier#2#3\endcsname,}%
- \fi
- \fi}
-
-\endTEX
-
-\beginETEX \ifcsname
-
-% \def\dodoifreferencefoundelse#1#2#3%
-% {\checkreferences
-% \bgroup
-% \let\unharmedreferenceprefix=\referenceprefix
-% \bgroup
-% \splitofffullreference{#1}%
-% \ifx\currentreferencespecial\specialREFidentifier
-% \ifcsname\specialREFidentifier\currentreferenceoperation\endcsname
-% \global\referencefoundtrue
-% \@EA\@EA\@EA\splitofffullreference\@EA\@EA\@EA % 1 level
-% {\csname\specialREFidentifier\currentreferenceoperation\endcsname}%
-% \else
-% \global\referencefoundfalse
-% \fi
-% \else
-% \global\referencefoundtrue
-% \fi
-% \ifreferencefound
-% \ifx\currentreferencespecial\empty
-% \ifx\currentouterreference\empty
-% \docheckinnerreference
-% \ifreferencefound \else
-% \checkglobalfilereferences
-% \fi
-% \else
-% \docheckouterreference
-% \fi
-% \ifreferencefound
-% \ifx\currentreferencearguments\empty
-% \getreferenceelements\currentfullreference
-% \else
-% \getreferenceelements\currentinnerreference
-% \fi
-% \fi
-% \else
-% \docheckspecialreference
-% \fi
-% \fi
-% \ifreferencefound \else
-% \let\referenceprefix=\empty
-% \ifcsname\specialREFidentifier#1\endcsname
-% \@EA\@EA\@EA\splitofffullreference\@EA\@EA\@EA % 1 level
-% {\csname\specialREFidentifier#1\endcsname}%
-% \ifx\currentreferencespecial\empty
-% \ifx\currentouterreference\empty
-% \docheckinnerreference
-% \ifreferencefound \else
-% \checkglobalfilereferences
-% \fi
-% \else
-% \docheckouterreference
-% \fi
-% \ifreferencefound
-% % \getreferenceelements\currentfullreference
-% \ifx\currentreferencearguments\empty
-% \getreferenceelements\currentfullreference
-% \else
-% \getreferenceelements\currentinnerreference
-% \fi
-% \fi
-% \else
-% \docheckspecialreference
-% \fi
-% \fi
-% \fi
-% \iftracereferences
-% \doshowcurrentreference\space
-% \writestatus{\m!references}{\currentreferenceshow}%
-% \fi
-% \ifreferencefound#2\else#3\fi
-% \egroup
-% \egroup}
-
\newcount\nofexpandedreferences
\def\dodoexpandreferences#1REF(#2#3)#4\relax
@@ -1133,8 +867,6 @@
\fi
\fi}
-\endETEX
-
\def\doexpandreferences#1,%
{\if]#1\else
\let\expandedreference\empty
@@ -1303,10 +1035,6 @@
%D to let speed prevail over beauty in resolving chained
%D references with symbolic (defined) references.
-% \def\localdoifreferencefoundelse#1#2#3% beware, this feeds back the (...) ref
-% {\dodoifreferencefoundelse{#1}%
-% \ifreferencefound#2\else#3\fi}
-
\def\localdoifreferencefoundelse#1%
{\dodoifreferencefoundelse{#1}%
\ifreferencefound\@EA\firstoftwoarguments\else\@EA\secondoftwoarguments\fi}
@@ -1691,13 +1419,6 @@
\def\nextinternalreference
{\the\locationcount}
-% \def\thisisnextinternal#1%
-% {\global\advance\locationcount \plusone
-% \thisisdestination{\s!aut\iftraceinternalreferences:#1\fi:\nextinternalreference}}
-%
-% \def\gotonextinternal#1#2% #3#4
-% {\gotodestination{}{}{\s!aut\iftraceinternalreferences:#1\fi:#2}}
-
\def\thisisnextinternal#1%
{\global\advance\locationcount \plusone
\ifinternalnamedreferences
@@ -1863,26 +1584,12 @@
\def\setexecutecommandcheck#1#2% #2 permits \first \second
{\setvalue{\s!do:\s!do:#1}{#2}}
-\beginETEX
-
\def\checkexecutecommand#1#2% evt geen #1 en #2
{\ifx#2\empty \else \ifcsname\s!do:\s!do:#1\endcsname
\@EA\let\@EA\docheckexecutecommand\csname\s!do:\s!do:#1\endcsname
\rawprocesscommalist[#2]\docheckexecutecommand
\fi \fi }
-\endETEX
-
-\beginTEX
-
-\def\checkexecutecommand#1#2% evt geen #1 en #2
- {\ifx#2\empty \else \@EA\ifx\csname\s!do:\s!do:#1\endcsname\relax \else
- \@EA\let\@EA\docheckexecutecommand\csname\s!do:\s!do:#1\endcsname
- \rawprocesscommalist[#2]\docheckexecutecommand
- \fi \fi }
-
-\endTEX
-
%D Command references (in dutch, english, german of
%D whatever interface language) are translated into a bit
%D shorter reference (\type{close}) and passed to the
@@ -2125,12 +1832,15 @@
% \let\normalover \over
-\definecommand in {\doinatreference\currenttextreference}
-\definecommand at {\doinatreference\currentpagereference}
+\definecommand in {\dospecialin}
+\definecommand at {\dospecialat}
\definecommand about {\dospecialabout}
\definecommand from {\dospecialfrom}
\definecommand over {\dospecialabout} % needed here, else math problems
+\unexpanded\def\dospecialin{\doinatreference\currenttextreference}
+\unexpanded\def\dospecialat{\doinatreference\currentpagereference}
+
\unexpanded\def\dospecialabout[#1]%
{\dontleavehmode
\bgroup
@@ -2186,9 +1896,7 @@
%D in a different color and typeface).
\def\doinatreference#1%
- {\doifnextcharelse[% {[}
- {\dodoinatreference{#1}{}}
- {\dodoinatreference{#1}}}
+ {\doifnextoptionalelse{\dodoinatreference{#1}{}}{\dodoinatreference{#1}}}
\def\dodoinatreference#1%
{\def\dododoinatreference{\dodododoinatreference{#1}}%
@@ -2265,24 +1973,6 @@
\def\dounknownreference#1#2[#3]%
{\unknownreference{#3}\dotextprefix{#2}\dummyreference}%
-% \def\docompletereference#1#2[#3]%
-% {\doifsomespaceelse{#2}
-% {\doifsomething{#2}{\dogotospace{#2}[#3]~}\dogotofixed{#1}[#3]}
-% {\dogotofixed{\dotextprefix{#2}#1}[#3]}}
-%
-% better:
-
-% \def\docompletereference#1#2[#3]%
-% {\iflocationsplit
-% \doifsomespaceelse{#2}
-% {\dogotospace{\dotextprefix{#2}#1}[#3]}
-% {\dogotofixed{\dotextprefix{#2}#1}[#3]}%
-% \else
-% \dogotofixed{\dotextprefix{#2}#1}[#3]%
-% \fi}
-%
-% more efficient
-
\def\docompletereference#1#2[#3]%
{\iflocationsplit
\doifsomespaceelse{#2}\dogotospace\dogotofixed{\dotextprefix{#2}#1}[#3]%
@@ -2372,46 +2062,11 @@
{\leftofreference#1\rightofreference}{#2#3}[#4]%
\fi}
-% \def\dododododoinatreference#1#2[#3]%
-% {\bgroup
-% \forgetall
-% \postponefootnotes
-% \leaveoutervmode
-% \doifreferencefoundelse{#3}
-% {\bgroup
-% \let\ignorespaces \empty % rather dirty trick, but ok
-% \let\leftofreference \empty % the same, again ok
-% \let\rightofreference\empty % and once more
-% \def\textofreference {#2}% % temporary value
-% \ifx\textofreference\empty % simple expansion
-% %\doifelsenothing{#1}
-% % {\egroup\dosymbolreference{#1}{\textofreference}[#3]}
-% % {\egroup\dowantedreference{#1}{\textofreference}[#3]}%
-% \doifelsenothing{#1}%
-% {\egroup\dosymbolreference}%
-% {\egroup\dowantedreference}%
-% {#1}{\textofreference}[#3]%
-% \else
-% %\doifelsenothing{#1}
-% % {\egroup\dosymbolreference{#1}{#2}[#3]}
-% % {\egroup\dowantedreference{#1}{#2}[#3]}%
-% \doifelsenothing{#1}%
-% {\egroup\dosymbolreference}%
-% {\egroup\dowantedreference}%
-% {#1}{#2}[#3]%
-% \fi}
-% {\dounknownreference{#1}{#2}[#3]}%
-% \referenceinfo<{#3}%
-% \global\let\leftofreference \empty
-% \global\let\rightofreference\empty
-% \global\let\textofreference \empty
-% \egroup}
-
\def\dododododoinatreference#1#2[#3]%
{\dontleavehmode % replaces \leaveoutervmode
\bgroup
\forgetall
- \postponefootnotes
+ \postponenotes
%\leaveoutervmode % replaced by \dontleavehmode
\doifreferencefoundelse{#3}
{\bgroup
@@ -2459,27 +2114,17 @@
%D split at spaces. This means that, although hyphenation is
%D prevented, long references can cross line endings.
-%\unexpanded\def\naar#1[#2]%
-% {\dontleavehmode
-% %\leaveoutervmode
-% \doifreferencefoundelse{#2}
-% {\doifelsenothing{#1}
-% {\dosymbolreference{}{}[#2]}
-% {\dogotospace{#1}[#2]}}
-% {\unknownreference{#2}#1}%
-% \referenceinfo{<}{#2}}
\def\dogoto#1[#2]%
{\dontleavehmode
- %\leaveoutervmode
-\bgroup
-\postponefootnotes
+ \bgroup
+ \postponenotes
\doifreferencefoundelse{#2}
{\doifelsenothing{#1}
{\dosymbolreference{}{}[#2]}
{\dogotospace{#1}[#2]}}
{\unknownreference{#2}#1\relax}% \relax catches lookahead
-\egroup
+ \egroup
\referenceinfo{<}{#2}}
\unexpanded\def\goto#1#2%
@@ -2637,13 +2282,6 @@
\let\useurl\useURL
-% \def\dodouseURL[#1][#2][#3][#4]%
-% {\iffirstargument
-% \iffourthargument\setgvalue{\v!file:::#1}{\doexternaldocument{#2}{#3}{#4}}\else
-% \ifthirdargument \setgvalue{\v!file:::#1}{\doexternaldocument{#2}{#3}{\url[#1]}}\else
-% \ifsecondargument\setgvalue{\v!file:::#1}{\doexternaldocument{#2}{}{\url[#1]}}\fi\fi\fi
-% \fi}
-
\def\dodouseURL[#1][#2][#3][#4]% to be redone: not too tricky redefs ad reuse
{\iffirstargument
\iffourthargument\setgvalue{\v!file:::#1}{\doexternaldocument{#2}{#3}{#4}}\else
@@ -2769,15 +2407,6 @@
%D As can be expected, this macro used \type{\goto} to
%D perform its task.
-% normal version:
-%
-% \def\from[#1]%
-% {\dontleavehmode % added, but probably not needed
-% \bgroup
-% \doifinstringelse{::}{#1}{\docomplexuit[#1]}{\docomplexuit[#1::]}}
-%
-% since we need to serve active :'s we need the less readable:
-
\def\dospecialfrom % retest this one !
{\dosingleempty\dodospecialfrom}
@@ -2995,31 +2624,15 @@
\let\currentinnerreference\currentreferenceoperation
\fi
\ifx\currentouterreference\empty
-% numexpr
- \doifinstringelse+\currentinnerreference
- {\scratchcounter\realpageno
- \advance\scratchcounter \currentinnerreference
- \edef\currentinnerreference{\the\scratchcounter}}
- {\doifinstringelse-\currentinnerreference
- {\scratchcounter\realpageno
- \advance\scratchcounter \currentinnerreference
- \edef\currentinnerreference{\the\scratchcounter}}
- \donothing}%
- \doifnonzeropositiveelse\currentinnerreference
- \donothing
- {\edef\currentinnerreference{1}}%
+ \doifinstringelse+\currentinnerreference{\edef\currentinnerreference{\the\numexpr\realpageno\currentinnerreference}}
+ {\doifinstring -\currentinnerreference{\edef\currentinnerreference{\the\numexpr\realpageno\currentinnerreference}}}%
+ \doifnonzeropositiveelse\currentinnerreference\donothing{\edef\currentinnerreference{1}}%
\docheckrealreferencepage\currentinnerreference % new
\let\currentrealreference\currentinnerreference % handy to have this available
\gotorealpage\empty\empty\currentinnerreference{#2}%
\else
\setouterlocation\currentouterreference
- \doifnonzeropositiveelse\currentinnerreference
- \donothing
- {\ifcsname\v!page:::\currentinnerreference\endcsname
- \edef\currentinnerreference{\getvalue{\v!page:::\currentinnerreference}}%
- \else
- \edef\currentinnerreference{1}%
- \fi}%
+ \doifnonzeropositiveelse\currentinnerreference\donothing{\edef\currentinnerreference{\executeifdefined{\v!page:::\currentinnerreference}1}}%
\gotorealpage\otherURL\otherfile\currentinnerreference{#2}%
\fi
\else
@@ -3123,7 +2736,7 @@
\endgroup
\fi}
-\def\coupledocument%
+\def\coupledocument
{\doquadrupleempty\docoupledocument}
%D --- STRANGE HERE, BETTER IN CORE-NAV ---
@@ -3343,6 +2956,8 @@
\fi
\egroup}
+%D Plugin code:
+
%D In the next settings we see some variables that were not
%D used here and that concern the way the pagenumbers refered
%D to are typeset.
diff --git a/Master/texmf-dist/tex/context/base/strc-ref.mkiv b/Master/texmf-dist/tex/context/base/strc-ref.mkiv
new file mode 100644
index 00000000000..5db3d0013f9
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/strc-ref.mkiv
@@ -0,0 +1,1701 @@
+%D \module
+%D [ file=strc-ref,
+%D version=2008.10.20,
+%D title=\CONTEXT\ Structure Macros,
+%D subtitle=Cross Referencing,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA-ADE / Hans Hagen]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+% todo: (1) configure references, (2) rendering => with presets
+%
+% \starttext
+% \definestructureconversionset[default][Character,number,Romannumerals,Character][number]
+% \definestructureseparatorset [default][.,.,--][.]
+% \setupstructurehead[subsection][sectionstopper=),sectionsegments=4:4]
+
+% \setupreferencing[sectionsegments=3:4]
+% \section {One} \subsection[sec:test]{Two} See \in[sec:test]
+% \stoptext
+
+\writestatus{loading}{ConTeXt Structure Macros / Cross Referencing}
+
+\registerctxluafile{strc-ref}{1.001}
+\registerctxluafile{node-ref}{1.001}
+
+\unprotect
+
+%D This module is a (partial) rewrite of core-ref.tex for \MKIV. As
+%D such it will be a moving target for a while.
+
+%D Later we will do a further cleanup and move much of the code to
+%D \LUA\ (i.e.\ better backend integration).
+
+\let\mainreference\gobblefivearguments
+
+% this will go when we got rid of the tuo file
+
+\let\currentfolioreference \!!zerocount % only used in xml-fo
+\let\resetreferences \relax
+\let\setreferences \relax
+\let\showcurrentreference \relax
+\let\setexecutecommandcheck\gobbletwoarguments
+
+\def\s!full{full}
+\def\s!text{text}
+\def\s!page{page}
+
+% todo : unknown/illegal reference no arg
+% todo : +n pages check on 'samepage' (contrastcolor)
+% todo : multiple text in reference
+
+% Makes more sense to build action data first, especially now
+% openaction etc are supported.
+%
+% \definespecial\doexecuteactionchain w h
+% \definespecial\dosetgotolocation
+% \definespecial\dosetexecuteJScode
+% ...
+
+%D This module deals with referencing. In \CONTEXT\ referencing
+%D is one of the core features, although at a first glance
+%D probably nobody will notice. This is good, because
+%D referencing should be as hidden as possible.
+%D
+%D In paper documents, referencing comes down to cross
+%D referencing, but in their interactive counterparts, is also
+%D involves navigation. Many features implemented here are
+%D therefore closely related to navigation.
+%D
+%D Many \CONTEXT\ commands can optionally be fed with a
+%D reference. Such a reference, when called upon, returns the
+%D number of a figure, table, chapter etc, a piece of text, or
+%D a pagenumber.
+%D
+%D There are three ways of defining a reference:
+%D
+%D \starttyping
+%D \pagereference[here]
+%D \textreference[here]{some text}
+%D \stoptyping
+%D
+%D the third alternative combines them in:
+%D
+%D \starttyping
+%D \reference[here]{some text}
+%D \stoptyping
+
+\def\textreference {\dosingleargument\dotextreference}
+\def\pagereference {\dosingleargument\dopagereference}
+\def\reference {\dosingleargument\doreference }
+
+%D These are implemented in a low level form as:
+
+\def\dotextreference[#1]{\dosetreference\s!text{#1}}
+\def\dopagereference[#1]{\dosetreference\s!page{#1}{}}
+\def\doreference [#1]{\dosetreference\s!full{#1}}
+
+%D Actually there is not much difference between a text and a
+%D full reference, but it's the concept that counts. The low
+%D level implementation is:
+
+\newcount\lastreferenceattribute
+\newcount\lastdestinationattribute
+
+\def\dofinishfullreference#1#2{\normalexpanded{\ctxlatelua{jobreferences.enhance("#1","#2")}}}
+\def\dofinishtextreference#1#2{\normalexpanded{\ctxlatelua{jobreferences.enhance("#1","#2",{})}}}
+
+\let\dofinishpagereference\dofinishfullreference
+
+\def\dosetreference#1#2#3% kind labels text -> todo: userdata
+ {\ifreferencing
+ \edef\currentreferencekind{#1}%
+ \edef\currentreferencelabels{#2}%
+ \edef\currentreferenceexpansion{\@@rfexpansion}% {\referenceparameter\c!expansion}
+ \ifx\currentreferencelabels\empty \else
+ \ifx\currentreferenceexpansion\s!xml
+ \xmlstartraw
+ \xdef\currentreferencetext{#3}%
+ \xmlstopraw
+ \globallet\currentreferencecoding\s!xml
+ \else
+ \ifx\currentreferenceexpansion\v!yes
+ \xdef\currentreferencetext{#3}%
+ \else
+ \xdef\currentreferencetext{\detokenize{#3}}%
+ \fi
+ \globallet\currentreferencecoding\s!tex
+ \fi
+ % beware, the jobreferences.set writes a
+ % \setnextinternalreference
+ \ctxlua{jobreferences.setandgetattribute("\currentreferencekind", "\referenceprefix","\currentreferencelabels",
+ {
+ references = {
+ % internal = \nextinternalreference, % no need for an internal as we have an explicit
+ block = "\currentstructureblock",
+ section = structure.sections.currentid(),
+ },
+ metadata = {
+ kind = "#1",
+ catcodes = \the\catcodetable,
+ xmlroot = \ifx\currentreferencecoding\s!xml "\xmldocument" \else nil \fi, % only useful when text
+ },
+ entries = {
+ text = \!!bs\currentreferencetext\!!es
+ }
+ })
+ }%
+ \xdef\currentdestinationattribute{\number\lastdestinationattribute}%
+ \begingroup\dosetattribute{destination}\currentdestinationattribute\hbox{}\endgroup % todo
+ \fi
+ \fi}
+
+\def\defaultreferencepage#1{[[[#1]]]}
+\def\defaultreferencetext#1{[[[#1]]]}
+
+%D These macros depend on three other ones,
+%D \type {\makesectionformat}, that generated \type
+%D {\sectionformat}, \type {\pagenumber}. The not yet used
+%D argument \type{#1} is a tag that specifies the type of
+%D reference.
+
+%D \macros
+%D {everyreference}
+%D
+%D For rather tricky purposes, one can assign sanitizing
+%D macros to \type{\everyreference} (no longer that relevant).
+
+\newevery \everyreference \relax
+
+%D This is really needed, since for instance Polish has a
+%D different alphabet and needs accented entries in registers.
+
+\appendtoks
+ \cleanupfeatures
+\to \everyreference
+
+%D We did not yet discuss prefixing. Especially in interactive
+%D documents, it's not always easy to keep track of duplicate
+%D references. The prefix mechanism, which we will describe
+%D later on, solves this problem. By (automatically) adding a
+%D prefix one keeps references local, but the global ones in
+%D view. To enable this feature, we explictly split the prefix
+%D from the reference.
+
+\let\referenceprefix\empty
+
+%D For a long time the only way to access an external file was
+%D to use the file prefix (\type {somefile::}. However, when
+%D you split up a document, redefining the references may be
+%D such a pain, that another approach is feasible. By setting
+%D the \type {autofile} variable to \type {yes} or \type
+%D {page}, you can access the reference directly.
+%D
+%D \starttabulate[||||]
+%D \NC filename::tag \NC page(filename::pnum) \NC tag \NC\NR
+%D \NC $\star$ \NC \NC \NC\NR
+%D \NC $\star$ \NC $\star$ \NC $\star$ \NC\NR
+%D \NC \NC $\star$ \NC \NC\NR
+%D \stoptabulate
+
+\def\usereferences[#1]% not yet
+ {\writestatus\m!systems{references from other files are handled automatically}}
+
+%D As mentioned we will also use the cross reference mechanism
+%D for navigational purposes. The main reason for this is that
+%D we want to treat both categories alike:
+%D
+%D \starttyping
+%D \goto{go back}[PreviousJump]
+%D \goto{colofon}[colofon page]
+%D \stoptyping
+%D
+%D Here \type{PreviousJump} is handled by the viewer, while the
+%D \type{colofon page} reference is, apart from hyperlinking, a
+%D rather normal reference.
+%D
+%D We already saw that cross refences are written to and read
+%D from a file. The pure navigational ones don't need to be
+%D written to file, but both for fast processing and
+%D transparant integration, they are saved internally as a sort
+%D of reference. We can easily distinguish such system
+%D references from real cross reference ones by their tag.
+%D
+%D We also use the odd/even characteristic to determine the
+%D page state.
+
+\let\currentrealreference \empty
+\let\currentpagereference \empty
+\let\currenttextreference \empty
+\let\currentreferenceorder \empty
+\let\currentsubtextreference \empty
+\let\currentsubsubtextreference\empty
+
+\newcount\referencepagestate % set in backend
+\newcount\referencehastexstate % set in backend
+
+% referencepagestate:
+%
+% 0 = no page ref, 1=same page, 2=before, 3=after
+
+%D Text references can contain more than one entry and
+%D therefore we check for
+%D
+%D \starttyping
+%D {entry}
+%D \stoptyping
+%D
+%D or
+%D
+%D \starttyping
+%D {{entry}{entry}{entry}}
+%D \stoptyping
+%D
+%D and split accordingly.
+
+%D Cross references appear as numbers (figure~1.1, chapter~2)
+%D or pagenumbers (page~2, page 3--2), and are called with
+%D \type{\in} and \type{\at}. In interactive documents we also
+%D have \type{\goto}, \type{\button} and alike. These are more
+%D versatile and look like:
+%D
+%D \starttyping
+%D \goto[reference]
+%D \goto[outer reference::]
+%D \goto[outer reference::inner reference]
+%D \goto[operation(argument)]
+%D \goto[operation(action{argument,argument})]
+%D \goto[action]
+%D \goto[action{argument}]
+%D \stoptyping
+%D
+%D The first one is a normal reference, the second and third
+%D are references to a file or \URL. The brace delimited
+%D references for instance refer to a \JAVASCRIPT. The last
+%D example shows that we can pass arguments to the actions.
+%D
+%D When we split off the components of such a reference, the
+%D results are available in:
+%D
+%D \starttyping
+%D \currentreferencespecial
+%D \currentreferenceoperation
+%D \currentreferencearguments
+%D \currentinnerreference
+%D \currentouterreference
+%D \currentfullreference
+%D \stoptyping
+
+\newif\ifreferencefound
+
+% \let\currentfullreference \empty
+% \let\currentreferencespecial \empty
+% \let\currentreferenceoperation\empty
+% \let\currentreferencearguments\empty
+% \let\currentouterreference \empty
+% \let\currentinnerreference \empty
+
+%D Now we've come to the testing step. As we can see below,
+%D this macro does bit more than testing: it also resolves
+%D the reference. This means that whenever we test for the
+%D existance of a reference at an outer level, we have all the
+%D relevant properties of that reference avaliable inside the
+%D true branche~(\type{#2}).
+%D
+%D The prefix has to do with localizing references. When a
+%D prefix is set, looking for a reference comes to looking for
+%D the prefixed one, and when not found, looking for the non
+%D prefixed one. Consider for instance the prefix set to
+%D \type{sidetrack}.
+%D
+%D \starttyping
+%D \pagereference[important]
+%D \pagereference[unimportant]
+%D \setupreferencing[prefix=sidetrack]
+%D \pagereference[important]
+%D \stoptyping
+%D
+%D results in saving (writing) the references
+%D
+%D \starttyping
+%D ...{}{important}
+%D ...{}{unimportant}
+%D ...{sidetrack}{important}...
+%D \stoptyping
+%D
+%D Now when we call for \type{unimportant}, we will indeed get
+%D the pagenumber associated to this reference. But when we
+%D call for \type{important}, while the prefix is still set, we
+%D will get the pagenumber bound to the prefixed one.
+%D
+%D {\em Some day, when processing time and memory are no longer
+%D performance factors, we will introduce multi||level
+%D prefixes.}
+%D
+%D Before we start analyzing, I introduce a general
+%D definition macro. Consider:
+%D
+%D \starttyping
+%D \goto{do}[JS(My_Script{"test",123}),titlepage]
+%D \stoptyping
+%D
+%D This can also be achieved by:
+%D
+%D \starttyping
+%D \definereference[startup][JS(My_Script{"test",123}),titlepage]
+%D \goto{do}[startup]
+%D \stoptyping
+%D
+%D Now is this is a handy feature or not?
+%D
+%D \showsetup{definereference}
+%D
+%D We can trace references by setting the next switch to
+%D true.
+
+\def\definereference
+ {\dodoubleempty\dodefinereference}
+
+\def\dodefinereference[#1][#2]%
+ {\ctxlua{jobreferences.define("\referenceprefix","#1",\!!bs\detokenize{#2}\!!es)}}
+
+\def\resetreference[#1]%
+ {\ctxlua{jobreferences.reset("\referenceprefix","#1")}}
+
+\def\setpagereference#1#2% name, specification
+ {\ctxlua{jobreferences.define("","#1",\!!bs\v!page(\luaescapestring{#2})\!!es)}}
+
+%D Chained references are defined as:
+%D
+%D \starttyping
+%D \goto{somewhere}[JS(somescript),nextpage,JS(anotherscript)]
+%D \stoptyping
+%D
+%D Actually supporting chains is up to the special driver. Here
+%D we only provide the hooks.
+
+%D \macros
+%D {highlighthyperlinks}
+%D
+%D The next switch can be used to make user hyperlinks are
+%D not highlighted when clicked on.
+
+\newconditional\highlighthyperlinks \settrue\highlighthyperlinks
+
+%D \macros
+%D {gotonewwindow}
+%D
+%D To make the {\em goto previous jump} feature more
+%D convenient when using more than one file, it makes sense
+%D to force the viewer to open a new window for each file
+%D opened.
+
+\newconditional\gotonewwindow \setfalse\gotonewwindow
+
+\def\expandtexincurrentreference % will happen in lua some time
+ {\ifcase\referencehastexstate\else\ctxlua{jobreferences.expandcurrent()}\fi}
+
+\def\doifreferencefoundelse#1#2#3%
+ {\ctxlua{jobreferences.doifelse("\referenceprefix","#1",\luaconditional\highlighthyperlinks,\luaconditional\gotonewwindow)}%
+ {\expandtexincurrentreference#2}%
+ {#3}}
+
+%D The tester only splits the reference in components but does
+%D not look into them. The following macro does a preroll and
+%D determines for instance the current real reference pagenumber.
+%D The \type {\currentrealreference} macro does the same so unless
+%D one wants to use the pagestate the next macro seldom needs to
+%D be called.
+
+\def\analyzecurrentreference
+ {\ctxlua{jobreferences.analyse()}}
+
+%D The inner case is simple. Only two cases have to be taken
+%D care of:
+%D
+%D \starttyping
+%D \goto{some text}[reference]
+%D \goto{some text}[prefix:reference]
+%D \stoptyping
+%D
+%D References to other files however are treated strict or
+%D tolerant, depending on their loading and availability:
+%D
+%D \starttyping
+%D \useexternaldocument[somefile][filename][a nice description]
+%D
+%D \goto{checked reference}[somefile::reference]
+%D \goto{unchecked reference}[somefile::]
+%D \goto{unchecked reference}[anotherfile::reference]
+%D \stoptyping
+%D
+%D An unknown reference is reported on the screen, in the log
+%D file and, when enabled, in the left margin of the text.
+
+\def\reportreferenceerror#1#2% only once (keep track in lua)
+ {\ifinpagebody \else
+ \doifconcepttracing{\doifsomething{#2}{\inleft{\infofont\doboundtext{#2}{\dimexpr\leftmarginwidth-2em\relax}{..}->}}}%
+ \fi
+ \showmessage\m!references{#1}{[\referenceprefix][#2]}}
+
+\def\unknownreference{\reportreferenceerror1}
+\def\illegalreference{\reportreferenceerror4}
+
+%D When a reference is not found, we typeset a placeholder
+%D (two glyphs are often enough to represent the reference
+%D text).
+
+\def\dummyreference{{\tttf ??}}
+
+%D To prevent repetitive messages concerning a reference
+%D being defined, we set such an unknown reference to an empty
+%D one after the first encounter.
+
+%D Apart from cross references supplied by the user, \CONTEXT\
+%D generates cross references itself. Most of them are not
+%D saved as a reference, but stored with their source, for
+%D instance a list or an index entry. Such automatically
+%D generated, for the user invisible, references are called
+%D {\em internal references}. The user supplied ones are
+%D labeled as {\em external references}.
+%D
+%D A second important characteristic is that when we want to
+%D support different backends (viewers), we need to support
+%D named destinations as well as page numbers. I invite readers
+%D to take a glance at the special driver modules to understand
+%D the fine points of this. As a result we will deal with {\em
+%D locations} as well as {\em real page numbers}. We explictly
+%D call this pagenumber a real one, because it is independant
+%D of the page numbering scheme used in the document.
+%D
+%D One of the reasons for \CONTEXT\ being the first \TEX\ base
+%D macropackage to support sophisticated interactive \PDF\
+%D files, lays in the mere fact that real page numbers are
+%D available in most two pass data, like references, list data
+%D and index entries.
+%D
+%D We will speak of \type{thisis...} when we are marking a
+%D location, and \type{goto...} when we point to such a
+%D location. The latter one can be seen as a hyperlink to the
+%D former one. In the next macros one we use constructs like:
+%D
+%D \starttyping
+%D \dostart...
+%D \dostop...
+%D \stoptyping
+%D
+%D Such macros are used to invoke the relevant specials from
+%D the special driver modules (see \type{spec-ini}). The flag
+%D \type{\iflocation} signals if we're in interactive mode.
+
+\ifx\buttonheight\undefined \newdimen\buttonheight \fi
+\ifx\buttonwidth \undefined \newdimen\buttonwidth \fi
+
+%D Internal references can best be set using the next few
+%D macros. Setting such references to unique values is
+%D completely up to the macros that call them.
+%D
+%D \starttyping
+%D \thisissomeinternal{tag}{identifier}
+%D \gotosomeinternal {tag}{identifier}{pagenumber}{text}
+%D \stoptyping
+
+\newif \iflocation
+\newcount\locationcount
+\newbox \locationbox
+
+\def\nextinternalreference
+ {\the\locationcount}
+
+\def\setnextinternalreference
+ {\global\advance\locationcount\plusone}
+
+\def\thisissomeinternal#1#2% tag reference (only for old time sake)
+ {\begingroup\dosetattribute{destination}{\ctxlua{jobreferences.mark("#1:#2")}}\hbox{}\endgroup}
+
+\def\gotosomeinternal#1#2#3#4%
+ {\ifinternalnamedreferences
+ \directgoto{#4}[#1:#2]%
+ \else
+ \directgoto{#4}[page(#3)]%
+ \fi}
+
+\def\gotonextinternal#1#2%
+ {\directgoto{#1}[internal(#2)]}
+
+%D In this module we define three system references: one for
+%D handling navigational, viewer specific, commands, another
+%D for jumping to special pages, like the first or last one,
+%D and a third reference for linking tree like lists, like
+%D tables of contents. The latter two adapt themselves to the
+%D current state.
+%D
+%D An example of an action is:
+%D
+%D \starttyping
+%D \goto{some action}[PreviousJump]
+%D \stoptyping
+%D
+%D as well as:
+%D
+%D \starttyping
+%D \goto{some text}[\v!action(PreviousJump]
+%D \stoptyping
+
+% compatibility hack
+
+\def\setglobalsystemreference#1#2#3{\definereference[#2][\v!action(#3)]}
+
+\newif\ifreferencing \referencingtrue
+
+%D One can also activate an automatic prefix mechanism. By
+%D setting the \type{\prefix} variable to \type{+}, the prefix
+%D is incremented, when set to \type{-} or empty, the prefix is
+%D reset. Other values become the prefix.
+
+\newcount\prefixcounter
+
+%D These settings are accomplished by:
+%D
+%D \showsetup{setupreferencing}
+%D
+%D In interactive documents verbose references don't always
+%D make sense (what is a page number in an unnumbered
+%D document). By setting the \type{interaction} variable, one
+%D can influences the way interactive references are set.
+
+\chardef\autocrossfilereferences=0
+
+\def\setupreferencing
+ {\dosingleargument\dosetupreferencing}
+
+\def\dosetupreferencing[#1]%
+ {\getparameters
+ [\??rf]
+ [\c!prefix=\s!unknown,#1]%
+ \processaction
+ [\@@rfstate]
+ [ \v!stop=>\referencingfalse,
+ \v!start=>\referencingtrue]%
+ \processaction
+ [\@@rfinteraction]
+ [ \v!all=>\let\dowantedreference\docompletereference,
+ \v!label=>\let\dowantedreference\dolabelonlyreference,
+ \v!text=>\let\dowantedreference\dotextonlyreference,
+ \v!symbol=>\let\dowantedreference\dosymbolreference]%
+ \chardef\autocrossfilereferences\zerocount
+ \processaction
+ [\@@rfautofile]
+ [ \v!yes=>\chardef\autocrossfilereferences\plusone,
+ \v!page=>\chardef\autocrossfilereferences\plustwo]%
+ \chardef\referencefilecase\zerocount
+ \processaction[\@@rfconvertfile]
+ [ \v!yes=>\chardef\referencefilecase\plusone,
+ \v!big=>\chardef\referencefilecase\plusone,
+ \v!small=>\chardef\referencefilecase\plustwo]%
+ \setupreferenceprefix[\@@rfprefix]%
+ \doifelse\@@rfglobal\v!yes
+ {\settrue \autoglobalfilereferences}
+ {\setfalse\autoglobalfilereferences}}
+
+\def\incrementreferenceprefix{+}
+\def\decrementreferenceprefix{-}
+
+\def\setupreferenceprefix[#1]%
+ {\edef\@@rfprefix{#1}%
+ \ifx\@@rfprefix\empty
+ \let\referenceprefix\empty
+ \else\ifx\@@rfprefix\incrementreferenceprefix
+ \advance\prefixcounter \plusone % should be global
+ \edef\referenceprefix{\the\prefixcounter:}%
+ \let\@@rfprefix\s!unknown
+ \else\ifx\@@rfprefix\decrementreferenceprefix
+ \let\referenceprefix\empty
+ \let\@@rfprefix\s!unknown
+ \else\ifx\@@rfprefix\s!unknown
+ % forget about it
+ \else
+ \edef\referenceprefix{\@@rfprefix:}%
+ \fi\fi\fi\fi}
+
+%D The most straightforward way of retrieving references is
+%D using \type{\ref}. Consider the reference:
+%D
+%D \startbuffer
+%D \reference[my ref]{{Look}{Here}{I am}}
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D \getbuffer
+%D
+%D We can ask for upto five reference components:
+%D
+%D \startbuffer
+%D user page reference: \ref[p][my ref]
+%D text reference: \ref[t][my ref]
+%D real page reference: \ref[r][my ref]
+%D sub text reference: \ref[s][my ref]
+%D extra text reference: \ref[e][my ref]
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D And get back:
+%D
+%D \startlines
+%D \getbuffer
+%D \stoplines
+%D
+%D This is a cheap compatibility hack. Don't use this command
+%D as there will be more advanced access to user data.
+
+\def\ref{\dodoubleargument\doref}
+
+\def\reftypep{\currentreferencepage}
+\def\reftypet{\currentreferencetext}
+\def\reftyper{\currentreferencepage}
+\def\reftypes{\currentreferencetext}
+\def\reftypee{\currentreferencetext}
+
+\def\doref[#1][#2]%
+ {\ifsecondargument
+ \doifreferencefoundelse{#2}
+ {\executeifdefined{reftype#1}\reftypep}
+ {\unknownreference{#2}\dummyreference}%
+ \else
+ \dummyreference
+ \fi}
+
+%D We can typeset a reference using \type{\in}, \type{\at} and
+%D \type{\about} and goto specific locations using
+%D \type{\goto}. The last one does not make that much sense in
+%D a paper document. To complicate things, \PLAIN\ \TEX\ also
+%D implements an \type {\in} but fortunately that one only
+%D makes sense in math mode.
+%D
+%D Typesetting the reference is a bit more complicated than one
+%D would at first sight expect. This is due to the fact that we
+%D distinguish three (five) alternative calls:
+%D
+%D \placefigure
+%D [here][three calls]
+%D {Three alternatives reference calls.}
+%D {\startcombination[1*3]
+%D {\framed{\type{ \in }}} {a}
+%D {\framed{\type{ \at }}} {b}
+%D {\framed{\type{\goto}}} {c}
+%D \stopcombination}
+%D
+%D \startbuffer
+%D \in figure[fig:three calls]
+%D \in{figure}[fig:three calls]
+%D \in figure a[fig:three calls]
+%D \in{figure}{a}[fig:three calls]
+%D figure~\in[fig:three calls]
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D This turns up as:
+%D
+%D \startlines
+%D \getbuffer
+%D \stoplines
+%D
+%D The dual \type{{}} results in a split reference. In a
+%D document meant for paper, one is tempted to use the last
+%D (most straightforward) alternative. When a document is also
+%D meant voor electronic distribution, the former alternatives
+%D have preference, because everything between the \type{\in}
+%D and~\type{[} becomes active (and when asked for, typeset
+%D in a different color and typeface).
+
+% \unexpanded\def\in {\mathortext\donormalmathin \dospecialin}
+% \unexpanded\def\at {\mathortext\donormalmathat \dospecialat}
+% \unexpanded\def\about{\mathortext\donormalmathabout\dospecialabout}
+% \unexpanded\def\from {\mathortext\donormalmathfrom \dospecialfrom}
+% \unexpanded\def\over {\mathortext\donormalmathover \dospecialabout}
+
+% \definecommand in {\dospecialin}
+% \definecommand at {\dospecialat}
+% \definecommand about {\dospecialabout}
+% \definecommand from {\dospecialfrom}
+% \definecommand over {\dospecialabout} % needed here, else math problems
+
+\def\currentreferencenumber {\ctxlua{jobreferences.filter("number")}}
+\def\currentreferencepage {\ctxlua{jobreferences.filter("page")}}
+\def\currentreferencetitle {\ctxlua{jobreferences.filter("title")}}
+\def\currentreferencetext {\ctxlua{jobreferences.filter("text")}}
+\def\currentreferencerealpage{\ctxlua{jobreferences.realpage()}}
+
+\unexpanded\def\dospecialabout[#1]%
+ {\dontleavehmode
+ \begingroup
+ \let\crlf\space
+ \let\\\space
+ \postponenotes
+ \@@rfleft
+ \doifreferencefoundelse{#1}
+ {\goto{\limitatetext\currentreferencetitle\@@rfwidth\unknown}[#1]}% not so efficient (dup lookup)
+ {}% todo
+ \@@rfright
+ \endgroup}
+
+%D The previously discussed setup macro lets us specify the
+%D representation of references. A symbol reference does not
+%D show the specific data, like the number of a figure, but
+%D shows one of: \hbox {$^\goforwardcharacter$
+%D $^\gobackwardcharacter$ $^\gonowherecharacter$}, depending
+%D on the direction to go.
+
+% 1 = whatever
+% 2 = forward, following page
+% 3 = backward, preceding page
+% 4 = forward, same page
+% 5 = backward, same page
+
+% Yet untested:
+
+\unexpanded\def\somewhere#1#2#3[#4]% #3 gobbles space around #2 % todo
+ {\goto{\ifcase\referencepagestate#1/#2\or#2\or#1\or#2\fi}[#4]}
+
+\unexpanded\def\atpage[#1]% todo
+ {\goto{\ifcase\referencepagestate
+ \labeltexts\v!page\dummyreference
+ \or
+ \labeltexts\v!atpage\currentreferencepage
+ \or
+ \labeltexts\v!atpage\currentreferencepage
+ \or
+ \labeltexts\v!atpage\currentreferencepage
+ \or
+ \labeltext\v!hereafter
+ \or
+ \labeltext\v!hencefore
+ \fi}[#1]}
+
+\def\dosymbolreference#1#2[#3]%
+ {\removeunwantedspaces
+ \goto{\setupsymbolset[\@@iasymbolset]\high{\symbol
+ [\ifcase\referencepagestate
+ \v!somewhere
+ \or % same
+ \v!nowhere
+ \or % before
+ \v!previous
+ \or % after
+ \v!next%
+ \fi]}}[#3]}
+
+%D The other alternatives just conform their names: only the
+%D label, only the text, or the label and the text.
+
+\def\dounknownreference#1#2[#3]%
+ {\unknownreference{#3}\dotextprefix{#2}\dummyreference}%
+
+\def\docompletereference#1#2[#3]%
+ {\goto{\dotextprefix{#2}#1}[#3]}
+
+% \def\dolabelonlyreference#1#2[#3]%
+% {\doifsomespaceelse{#2}% space?
+% {\doifsomething{#2}{\goto{#2}[#3]}}
+% {\goto{\dotextprefix{#2}}[#3]}}
+
+\def\dolabelonlyreference#1#2[#3]%
+ {\goto{\dotextprefix{#2}}[#3]}
+
+\def\dotextonlyreference#1#2[#3]%
+ {\dotextprefix{#2}\goto{#1}[#3]}
+
+\let\dowantedreference\docompletereference
+
+%D \macros
+%D {definereferenceformat}
+%D
+%D The next few macros were made for for David Arnold and Taco
+%D Hoekwater. They can be used for predefining reference
+%D texts, and thereby stimulate efficiency.
+%D
+%D [more documentation will be added]
+%D
+%D \starttyping
+%D \definereferenceformat[informula] [left=(,right=),text=formula]
+%D \definereferenceformat[informulas] [left=(,right=),text=formulas]
+%D \definereferenceformat[andformula] [left=(,right=),text=and]
+%D \definereferenceformat[andformulas][left=(,right=),text=and]
+%D
+%D \informula [b] and \informula [for:c]
+%D the \informula {formulas}[b] \informula {and} [for:c]
+%D the \informulas {formulas}[b] \informula {and} [for:c]
+%D the \informulas [b] \informula {en} [for:c]
+%D the \informulas [b] \andformula [for:c]
+%D \stoptyping
+%D
+%D Instead of a text, one can specify a label, which should
+%D be defined with \type {\setuplabeltext}.
+
+% todo: inherit; probably not yet mkiv okay
+
+\def\definereferenceformat
+ {\dodoubleargument\dodefinereferenceformat}
+
+\def\dodefinereferenceformat[#1][#2]%
+ {\iffirstargument
+ \getparameters[\??rf#1]
+ [\c!left=, % of the number
+ \c!right=, % of the number
+ \c!text=, % before the number
+ \c!label=, % can be {left}{right}
+ \c!command=\in,
+ #2]%
+ \unexpanded\setvalue{#1}%
+ {\dontleavehmode\doexecutereferenceformat{#1}}%
+ \fi}
+
+\def\noexecutelabelreferenceformat#1%
+ {\doifvaluesomething{\??rf#1\c!text}{\gdef\textofreference{\csname\??rf#1\c!text\endcsname}}%
+ \csname\??rf#1\c!command\endcsname}
+
+\def\doexecutelabelreferenceformat#1%
+ {\csname\??rf#1\c!command\endcsname
+ {\leftlabeltext {\csname\??rf#1\c!label\endcsname}}%
+ {\rightlabeltext{\csname\??rf#1\c!label\endcsname}}}
+
+\def\doexecutereferenceformat#1%
+ {\gdef\leftofreference {\csname\??rf#1\c!left \endcsname}%
+ \gdef\rightofreference{\csname\??rf#1\c!right\endcsname}%
+ \global\let\textofreference\empty % otherwise ~ added
+ \doifelsevaluenothing{\??rf#1\c!label}\noexecutelabelreferenceformat\doexecutelabelreferenceformat{#1}}
+
+\let\leftofreference \relax
+\let\rightofreference\relax
+\let\textofreference \relax
+
+% fails on metafun {\leftofreference#1\ignorespaces#3\removeunwantedspaces\rightofreference}{#2}[#4]%
+%
+% \def\dodododoinatreference#1#2#3[#4]% no \removeunwantedspaces (fails on metafun)
+% {\ifx\next\bgroup
+% \dododododoinatreference{\leftofreference#1\ignorespaces#3\rightofreference}{#2}[#4]%
+% \else
+% \dododododoinatreference{\leftofreference#1\rightofreference}{#2#3}[#4]%
+% \fi}
+%
+% \def\dododododoinatreference#1#2[#3]%
+% {\dontleavehmode % replaces \leaveoutervmode
+% \begingroup
+% \postponenotes
+% \doifreferencefoundelse{#3}
+% {\doifelsenothing{#1}\dosymbolreference\dowantedreference{#1}{#2}[#3]}%
+% {\dounknownreference{#1}{#2}[#3]}%
+% \endgroup}
+
+% \starttext
+% \definereferenceformat[inxx] [left=(,right=),text=txt]
+% \setupinteraction[state=start]
+% \chapter[one]{xx}
+% [\goto{state}[file(mk-last-state)]]
+% [\goto{state} [file(mk-last-state)]]
+% [\at{page} [one]]
+% [\at{page}[one]]
+% [\at{page}{okay}[one]]
+% [\inxx{a}{b}[one]]
+% \stoptext
+
+\unexpanded\def\dospecialin{\let\currentreferencecontent\currentreferencenumber\doinatreference}
+\unexpanded\def\dospecialat{\let\currentreferencecontent\currentreferencepage \doinatreference}
+
+\newtoks\leftreferencetoks
+\newtoks\rightreferencetoks
+
+\def\doinatreference
+ {\futurelet\next\doinatreferenceone}
+
+\def\doinatreferenceone
+ {\ifx\next\bgroup
+ \afterassignment\doinatreferenceonetwo
+ \expandafter\leftreferencetoks
+ \else
+ \leftreferencetoks\emptytoks
+ \expandafter\dodoinatreferencenone
+ \fi}
+
+\def\doinatreferenceonetwo
+ {\futurelet\next\doinatreferencetwo}
+
+\def\doinatreferencetwo
+ {\ifx\next\bgroup
+ \afterassignment\dodoinatreferenceboth
+ \expandafter\rightreferencetoks
+ \else
+ \rightreferencetoks\emptytoks
+ \expandafter\dodoinatreferenceleft
+ \fi}
+
+\def\dodoinatreferencenone
+ {\dodoinatreferenceindeed
+ {\leftofreference\currentreferencecontent\rightofreference}
+ {}}
+
+\def\dodoinatreferenceleft
+ {\dodoinatreferenceindeed
+ {\leftofreference\currentreferencecontent\rightofreference}
+ {\the\leftreferencetoks}}
+
+\def\dodoinatreferenceboth
+ {\dodoinatreferenceindeed
+ {\leftofreference\currentreferencecontent\the\rightreferencetoks\rightofreference}
+ {\the\leftreferencetoks}}
+
+\def\dodoinatreferenceindeed#1#2#3[#4]% #3 gobbles space
+ {\dontleavehmode % replaces \leaveoutervmode
+ \begingroup
+ \postponenotes
+ \doifreferencefoundelse{#4}
+ {\doifelsenothing{#1}\dosymbolreference\dowantedreference{#1}{#2}[#4]}%
+ {\dounknownreference{#1}{#2}[#4]}%
+ \endgroup}
+
+\let\dosymbolreference\dowantedreference
+
+%D In interactive documents going to a specific location is not
+%D bound to cross references. The \type{\goto} commands can be
+%D used to let users access another part of the document. In
+%D this respect, interactive tables of contents and registers
+%D can be considered goto's. Because in fact a \type{\goto} is
+%D just a reference without reference specific data, the
+%D previous macros are implemented using the goto
+%D functionality.
+%D
+%D \showsetup{goto}
+%D
+%D One important characteristic is that the first argument of
+%D \type{\goto} (and therefore \type{\at} and \type{\in} is
+%D split at spaces. This means that, although hyphenation is
+%D prevented, long references can cross line endings.
+
+% \starttext
+% \setupinteraction[state=start]
+% [\goto{state}[file(mk-last-state)]]
+% [\goto{state} [file(mk-last-state)]]
+% \stoptext
+
+\newconditional\uselocationstrut \settrue\uselocationstrut
+
+\def\extrareferencearguments{\luaconditional\highlighthyperlinks,\luaconditional\gotonewwindow,"\currentviewerlayer"}
+
+\unexpanded\def\directgoto {\ifconditional\uselocationstrut\expandafter\dodirectgoto\else\expandafter\directgotohtdp\fi}
+\unexpanded\def\goto {\ifconditional\uselocationstrut\expandafter\dogoto \else\expandafter\gotohtdp \fi}
+
+% The unbox trick is needed in order to permit \par inside a reference. Otherwise
+% the reference attribute migrates to the outer boxes.
+
+\newbox\referencebox
+
+\def\dodirectgoto#1[#2]% no test for valid references
+ {\dontleavehmode
+ \begingroup
+ \attribute\referenceattribute\attributeunsetvalue
+ \iflocation
+ \ctxlua{jobreferences.inject("\referenceprefix","#2",\number\ht\strutbox,\number\dp\strutbox,\extrareferencearguments)}%
+ \setlocationattributes\??ia
+ \setstrut % can be option
+ \attribute\referenceattribute\lastreferenceattribute
+ \fi
+ #1%
+ \endgroup}
+
+\def\dodirectgotohtdp#1[#2]% no test for valid references
+ {\dontleavehmode
+ \begingroup
+ \attribute\referenceattribute\attributeunsetvalue
+ \iflocation
+ \ctxlua{jobreferences.inject("\referenceprefix","#2",\number\dimexpr\@@iaheight\relax,\number\dimexpr\@@iadepth\relax,\extrareferencearguments)}%
+ \setlocationattributes\??ia
+ \attribute\referenceattribute\lastreferenceattribute
+ \fi
+ #1%
+ \endgroup}
+
+\def\dogoto#1#2[#3]% #2 gobbles spaces after #1 so that \goto{xx} [yy] works ok
+ {\dontleavehmode
+ \begingroup
+ %\setbox\referencebox\hbox\bgroup % experiment, might change again to non \par support
+ \attribute\referenceattribute\attributeunsetvalue
+ \iflocation
+ \ctxlua{jobreferences.doifelse("\referenceprefix","#3",\extrareferencearguments)}%
+ {\expandtexincurrentreference
+ \ctxlua{jobreferences.injectcurrentset(\number\ht\strutbox,\number\dp\strutbox)}%
+ \setlocationattributes\??ia
+ \setstrut % can be option
+ \attribute\referenceattribute\lastreferenceattribute}%
+ {\unknownreference{#3}}%
+ \fi
+ #1%
+ %\egroup\unhbox\referencebox}
+ \endgroup}
+
+\def\dogotohtdp#1#2[#3]% #2 gobbles spaces after #1 so that \goto{xx} [yy] works ok
+ {\dontleavehmode
+ \begingroup
+ \attribute\referenceattribute\attributeunsetvalue
+ \iflocation
+ \ctxlua{jobreferences.doifelse("\referenceprefix","#3",\extrareferencearguments)}%
+ {\expandtexincurrentreference
+ \ctxlua{jobreferences.injectcurrentset(\number\dimexpr\@@iaheight\relax,\number\dimexpr\@@iadepth\relax)}%
+ \setlocationattributes\??ia
+ \attribute\referenceattribute\lastreferenceattribute}%
+ {\unknownreference{#3}}%
+ \fi
+ #1%
+ \endgroup}
+
+\unexpanded\def\directgotobox#1[#2]% no test for valid references
+ {\dontleavehmode
+ \begingroup
+ \attribute\referenceattribute\attributeunsetvalue
+ \iflocation
+ \ctxlua{jobreferences.inject("\referenceprefix","#2",nil,nil,\extrareferencearguments)}%
+ \setlocationattributes\??ia
+ \hbox attr \referenceattribute \lastreferenceattribute {#1}%
+ \else
+ #1%
+ \fi
+ \endgroup}
+
+\unexpanded\def\directgotospecbox#1#2[#3]% no test for valid references
+ {\dontleavehmode
+ \begingroup
+ \attribute\referenceattribute\attributeunsetvalue
+ \iflocation
+ \ctxlua{jobreferences.inject("\referenceprefix","#3",nil,nil,\extrareferencearguments)}%
+ \setlocationcolorspec{#1}% no consequence for strut
+ \hbox attr \referenceattribute \lastreferenceattribute {#2}%
+ \else
+ #2%
+ \fi
+ \endgroup}
+
+\unexpanded\def\directgotodumbbox#1[#2]% no test for valid references
+ {\dontleavehmode
+ \begingroup
+ \attribute\referenceattribute\attributeunsetvalue
+ \iflocation
+ \ctxlua{jobreferences.inject("\referenceprefix","#2",nil,nil,\extrareferencearguments)}%
+ \hbox attr \referenceattribute \lastreferenceattribute {#1}%
+ \else
+ #1%
+ \fi
+ \endgroup}
+
+\unexpanded\def\gotobox#1[#2]% no test for valid references
+ {\dontleavehmode
+ \begingroup
+ \attribute\referenceattribute\attributeunsetvalue
+ \iflocation
+ \ctxlua{jobreferences.doifelse("\referenceprefix","#2",\extrareferencearguments)}%
+ {\expandtexincurrentreference
+ \ctxlua{jobreferences.injectcurrentset(nil,nil)}%
+ \setlocationattributes\??ia
+ \hbox attr \referenceattribute \lastreferenceattribute {#1}}%
+ {\unknownreference{#2}}%
+ \else
+ #1%
+ \fi
+ \endgroup}
+
+%D An reference to another document can be specified as a file
+%D or as an \URL. Both are handled by the same mechanism and
+%D can be issued by saying something like:
+%D
+%D \starttyping
+%D \goto[dictionary::the letter a]
+%D \stoptyping
+%D
+%D One can imagine that many references to such a dictionary
+%D are made, so in most cases such a document reference in an
+%D indirect one.
+%D
+%D \showsetup{useexternaldocument}
+%D
+%D For example:
+%D
+%D \starttyping
+%D \useexternaldocument
+%D [dictionary][engldict]
+%D [The Famous English Dictionary]
+%D \stoptyping
+%D
+%D The next macro implements these relations, and also take
+%D care of loading the document specific references.
+%D
+%D The \URL\ alternative takes four arguments:
+%D
+%D \showsetup{useURL}
+%D
+%D like:
+%D
+%D \starttyping
+%D \useURL
+%D [dictionary][http://www.publisher.com/public][engldict]
+%D [The Famous English Dictionary]
+%D \stoptyping
+%D
+%D Several specifications are possible:
+%D
+%D \starttyping
+%D \useURL [id] [url] [file] [description]
+%D \useURL [id] [url] [file]
+%D \useURL [id] [url]
+%D \stoptyping
+%D
+%D This time we don't load the references when no file is
+%D specified. This is logical when one keeps in mind that a
+%D valid \URL\ can also be a mail address.
+
+\unexpanded\def\usefile{\dotripleargument\dousefile} % so that they can be used in expanded arguments
+\unexpanded\def\useurl {\doquadrupleempty\douseurl } % so that they can be used in expanded arguments
+
+\let\useURL \useurl
+\let\useexternaldocument\usefile
+
+\def\douseurl[#1][#2][#3][#4]%
+ {\ctxlua{jobreferences.urls.define("#1",\!!bs\detokenize{#2}\!!es,\!!bs\detokenize{#3}\!!es,\!!bs\detokenize{#4}\!!es)}}
+
+\def\dousefile[#1][#2][#3]%
+ {\ctxlua{jobreferences.files.define("#1",\!!bs\detokenize{#2}\!!es,\!!bs\detokenize{#3}\!!es)}}
+
+%D \macros
+%D {url,setupurl}
+%D
+%D We also have: \type{\url} for directly calling the
+%D description. So we can say:
+%D
+%D \starttyping
+%D \useURL [one] [http://www.test.nl]
+%D \useURL [two] [http://www.test.nl] [] [Some Site]
+%D
+%D \url[one] or \from[two] or \goto{Whatever Site}[URL(two)]
+%D \stoptyping
+%D
+%D An \URL\ can be set up with
+%D
+%D \showsetup{setupurl}
+
+\def\setupurl
+ {\dodoubleargument\getparameters[\??ur]}
+
+\unexpanded\def\url[#1]%
+ {\dontleavehmode
+ \begingroup
+ \dosetfontattribute\??ur\c!style
+ \dosetcolorattribute\??ur\c!color
+ \ctxlua{jobreferences.urls.get("#1","\@@uralternative","\@@urspace")}%
+ \endgroup}
+
+%D This macro is hooked into a support macro, and thereby
+%D \URL's break ok, according to the setting of a switch,
+%D
+%D \startbuffer
+%D \useURL
+%D [test]
+%D [sentence_sentence%sentence#sentence~sentence/sentence//sentence:sentence.sentence]
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D Such an \URL\ is, depending on the settings, hyphenated as:
+%D
+%D \getbuffer
+%D
+%D \startlinecorrection
+%D \hbox to \hsize
+%D {\hss\en
+%D \setupreferencing[urlalternative=both]%
+%D \vbox{\hsize.25cm\hbox{\bf both}\prewordbreak\url[test]}%
+%D \hss
+%D \setupreferencing[urlalternative=before]%
+%D \vbox{\hsize.25cm\hbox{\bf before}\prewordbreak\url[test]}%
+%D \hss
+%D \setupreferencing[urlalternative=after]%
+%D \vbox{\hsize.25cm\hbox{\bf after}\prewordbreak\url[test]}%
+%D \hss}
+%D \stoplinecorrection
+%D
+%D By setting \type{urlspace=yes} one can get slightly better
+%D spacing when using very long \URL's.
+%D
+%D When defining the external source of information, one can
+%D also specify a suitable name (the last argument). This name
+%D can be called upon with:
+%D
+%D \showsetup{from}
+
+\def\dospecialfrom
+ {\dosingleempty\dodospecialfrom}
+
+\def\dodospecialfrom[#1]%
+ {\dontleavehmode\goto{\ctxlua{jobreferences.from("#1")}}[url(#1)]}
+
+%D We also support:
+%D
+%D \starttyping
+%D \goto{some text}[file(identifier{location}]
+%D \stoptyping
+%D
+%D which is completely equivalent with
+%D
+%D \starttyping
+%D \goto{some text}[identifier::location]
+%D \stoptyping
+
+%D A special case of references are those to programs. These,
+%D very system dependant references are implemented by abusing
+%D some of the previous macros.
+%D
+%D \showsetup{setupprograms}
+%D \showsetup{defineprogram}
+%D \showsetup{program} % changed functionality !
+%D
+%D The latter gives access to the description of the program,
+%D being the last argument to the definition command.
+
+% also lua, like urls and files
+
+\def\setupprograms
+ {\dodoubleargument\getparameters[\??pr]}
+
+\def\defineprogram
+ {\dotripleargument\dodefineprogram}
+
+\def\dodefineprogram[#1][#2][#3]%
+ {\ctxlua{jobreferences.programs.define("#1","#2","#3")}}
+
+\def\program[#1]% incompatible, more consistent, hardy used anyway
+ {\dontleavehmode
+ \begingroup
+ \dosetfontattribute\??pr\c!style
+ \dosetcolorattribute\??pr\c!color
+ \ctxlua{jobreferences.programs.get("#1","\@@pralternative","\@@prspace")}%
+ \endgroup}
+
+%D As we can see, we directly use the special reference
+%D mechanism, which means that
+%D
+%D \starttyping
+%D \goto{some text}[program(name{args})]
+%D \stoptyping
+%D
+%D is valid.
+
+%D The next macro provides access to the actual pagenumbers.
+%D When documenting and sanitizing the original reference
+%D macros, I decided to keep the present meaning as well as to
+%D make this meaning available as a special reference method.
+%D So now one can use:
+%D
+%D \starttyping
+%D \gotopage{some text}[location]
+%D \gotopage{some text}[number]
+%D \gotopage{some text}[file::number]
+%D \stoptyping
+%D
+%D as well as:
+%D
+%D \starttyping
+%D \goto{some text}[page(location)]
+%D \goto{some text}[page(number)]
+%D \goto{some text}[file::page(number)]
+%D \stoptyping
+%D
+%D Here location is a keyword like \type{nextpage}.
+%D
+%D \showsetup{gotopage}
+
+\def\definepage
+ {\dodoubleargument\dodefinepage}
+
+\def\dodefinepage[#1][#2]%
+ {\definereference[#1][page(#1)]}
+
+\def\gotopage#1[#2]%
+ {\goto{#1}[\v!page(#2)]}
+
+%D The previous definitions are somewhat obsolete so we don't
+%D use it here.
+
+%D A still very rudimentary|/|experimental forward|/|backward
+%D reference mechanism is provided by the macro \type{\atpage}:
+%D
+%D \starttyping
+%D ... \somewhere{backward text}{forward text}[someref] ...
+%D ... \atpage[someref] ...
+%D \stoptyping
+%D
+%D In future versions there will be more sophisticated
+
+% 0 = no page reference
+% 1 = same page
+% 2 = preceding page
+% 3 = following page
+% 4 = backward, same page (todo)
+% 5 = forward, same page (todo)
+
+%D We can cross link documents by using:
+%D
+%D \showsetup{coupledocument}
+%D
+%D like:
+%D
+%D \starttyping
+%D \coupledocument[print][somefile][chapter,section]
+%D \stoptyping
+%D
+%D After which when applicable, we have available the
+%D references:
+%D
+%D \starttyping
+%D \goto{print version}[print::chapter]
+%D \stoptyping
+%D
+%D and alike. The title placement definition macros have a
+%D key \type{file}, which is interpreted as the file to jump
+%D to, that is, when one clicks on the title.
+
+\newif\ifautocrossdocument
+
+\def\coupledocument
+ {\doquadrupleempty\docoupledocument}
+
+\def\docoupledocument[#1][#2][#3][#4]% [name] [file] [sections] [description]
+ {\ifthirdargument
+ % this will be done differently (when it's needed)
+ \fi}
+
+%D Buttons are just what their names says: things that can be
+%D clicked (pushed) on. They are similar to \type{\goto},
+%D except that the text argument is not interpreted.
+%D Furthermore one can apply anything to them that can be done
+%D with \type{\framed}.
+%D
+%D \startbuffer
+%D \button[width=3cm,height=1.5cm]{Exit}[ExitViewer]
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D gives
+%D
+%D \getbuffer
+%D
+%D This command is formally specified as:
+%D
+%D \showsetup{button}
+%D
+%D The characteristics can be set with:
+%D
+%D \showsetup{setupbuttons}
+
+\def\setupbuttons
+ {\dodoubleargument\getparameters[\??bt]}
+
+\definecomplexorsimpleempty\button
+
+\def\complexbutton
+ {\docomplexbutton\??bt}
+
+\presetlocalframed[\??bt]
+
+\long\def\docomplexbutton#1[#2]#3#4% get rid of possible space before [#4]
+ {\dodocomplexbutton#1[#2]{#3}#4} % #4 == [
+
+\def\buttonframed{\dodoubleempty\localframed[\??bt]} % goodie
+
+\long\def\dodocomplexbutton#1[#2]#3[#4]% #3 can contain [] -> {#3} later
+ {\begingroup
+ \doifvalue{#1\c!state}\v!stop\locationfalse
+ \iflocation
+ \ConvertConstantAfter\doifelse{#3}\v!none\hphantom\hbox
+ {\doifelsenothing{#4}
+ {\setlocationboxnop#1[#2]{#3}[#4]}
+ {\doifreferencefoundelse{#4} % INEFFICIENT
+ {\setlocationboxyes#1[#2]{#3}[#4]}
+ {\unknownreference{#4}%
+ \setlocationboxnop#1[#2]{#3}[#4]}}}%
+ \fi
+ \endgroup}
+
+\setupbuttons
+ [\c!state=\v!start]
+
+%D Interaction buttons, in fact a row of tiny buttons, are
+%D typically only used for navigational purposed. The next
+%D macro builds such a row based on a specification list.
+%D
+%D \startbuffer
+%D \interactionbuttons
+%D [width=\hsize][page,PreviousJump,ExitViewer]
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D gives
+%D
+%D \getbuffer
+%D
+%D Apart from individual entries, one can use \type{page} and
+%D \type {subpage} as shortcuts to their four associated buttons.
+%D The symbols are derived from the symbols linked to the
+%D entries.
+
+% does not work well with for instance SomeRef{whatever}
+
+\def\interactionbuttons
+ {\dodoubleempty\dointeractionbuttons}
+
+\def\dointeractionbuttons[#1][#2]% er is een verdeel macro \horizontalfractions
+ {\iflocation
+ % BUG: fails when frame=off; best is to rewrite this macro
+ \bgroup
+ \doif\@@ibstate\v!stop\locationfalse
+ \iflocation
+ \ifsecondargument
+ \setupinteractionbar[#1]%
+ \checkinteractionbar{1.5em}\v!broad\!!zeropoint % brrrrr
+ \setbox2\hbox{\localframed[\??ib][\c!background=]{\symbol[\@@iasymbolset][\v!previouspage]}}%
+ \!!heighta\ht2 % needed because we default to nothing
+ \setupinteractionbar[\c!strut=\v!no]%
+ \setinteractionparameter\c!width\!!zeropoint
+ \!!counta\zerocount % new, was 1
+ \processallactionsinset
+ [#2]
+ [ \v!page=>\advance\!!counta 4,
+ \v!subpage=>\advance\!!counta 4,
+ \s!unknown=>\advance\!!counta 1]%
+ \ifdim\@@ibwidth=\zeropoint
+ \!!widtha2em
+ \advance\!!widtha \@@ibdistance % new
+ \!!widthb\!!counta\!!widtha
+ \advance\!!widthb -\@@ibdistance % new
+ \else
+ \!!widtha\@@ibwidth
+ \!!widthb\@@ibdistance % new
+ \multiply\!!widthb \!!counta % new
+ \advance\!!widthb -\@@ibdistance % new
+ \advance\!!widtha -\!!widthb % new
+ \divide\!!widtha \!!counta
+ \!!widthb\@@ibwidth
+ \fi
+ \def\xgoto##1% clash ?
+ {\setnostrut
+ \edef\localreference{##1}%
+ \normalexpanded{\noexpand\dodocomplexbutton\??ib[\c!height=\the\!!heighta,\c!width=\the\!!widtha]}%
+ {\dontleavehmode\symbol[\@@iasymbolset][\localreference]}%
+ [\localreference]%
+ \hss}%
+ \hbox to \!!widthb
+ {\processallactionsinset
+ [#2]
+ [ \v!page=>\xgoto\v!firstpage
+ \xgoto\v!nextpage
+ \xgoto\v!previouspage
+ \xgoto\v!lastpage,
+ \v!subpage=>\xgoto\v!firstsubpage
+ \xgoto\v!nextsubpage
+ \xgoto\v!previoussubpage
+ \xgoto\v!lastsubpage,
+ \s!unknown=>\xgoto\commalistelement]%
+ \unskip}%
+ \else
+ \interactionbuttons[][#1]%
+ \fi
+ \fi
+ \egroup
+ \fi}
+
+%D \macros
+%D {overlaybutton}
+%D
+%D For converience we provide:
+%D
+%D \starttyping
+%D \overlaybutton[reference]
+%D \stoptyping
+%D
+%D This command can be used to define overlays an/or can be
+%D used in the whatevertext areas, like:
+%D
+%D \starttyping
+%D \defineoverlay[PrevPage][\overlaybutton{PrevPage}]
+%D \setupbackgrounds[page][background=PrevPage]
+%D \setuptexttexts[\overlaybutton{NextPage}]
+%D \stoptyping
+%D
+%D For practical reasons, this macro accepts square brackets
+%D as well as braces.
+
+\definecomplexorsimple\overlaybutton
+
+\def\simpleoverlaybutton#1%
+ {\complexoverlaybutton[#1]}
+
+\def\complexoverlaybutton[#1]%
+ {\iflocation
+ \gotobox{\overlayfakebox}[#1]%
+ \fi}
+
+\def\overlayfakebox
+ {\hbox
+ {\setbox\scratchbox\null
+ \wd\scratchbox\overlaywidth
+ \ht\scratchbox\overlayheight
+ \box\scratchbox}}
+
+%D \macros
+%D {dotextprefix}
+%D
+%D In previous macros we used \type {\dotextprefix} to
+%D generate a space between a label and a number.
+%D
+%D \starttyping
+%D \dotextprefix{text}
+%D \stoptyping
+%D
+%D Only when \type {text} is not empty, a space is inserted.
+
+\def\dotextprefix#1%
+ {\begingroup
+ \setbox\scratchbox\hbox{#1}% to be solved some day
+ \ifdim\wd\scratchbox>\zeropoint
+ \unhbox\scratchbox
+ \@@rfseparator
+ \else
+ \unhbox\scratchbox
+ \fi
+ \endgroup}
+
+%D In the next settings we see some variables that were not
+%D used here and that concern the way the pagenumbers refered
+%D to are typeset.
+
+\setupreferencing
+ [\c!state=\v!start,
+ \c!autofile=\v!no,
+ \v!part\c!number=\v!yes,
+ \v!chapter\c!number=\v!no,
+ \c!interaction=\v!all,
+ \c!convertfile=\v!no,
+ %\c!strut=\v!no, % some day an option
+ \c!prefix=,
+ \c!width=.75\makeupwidth,
+ \c!left=\quotation\bgroup,
+ \c!right=\egroup,
+ \c!global=\v!no,
+ \c!expansion=\v!no,
+ \c!separator=\nonbreakablespace]
+
+\setupurl
+ [\c!alternative=\v!both,
+ \c!space=\v!no,
+ \c!style=\v!type,
+ \c!color=]
+
+\setupprograms
+ [\c!directory=,
+ \c!alternative=\v!both,
+ \c!space=\v!no,
+ \c!style=\v!type,
+ \c!color=]
+
+\definereference [\v!CloseDocument ] [action(close)]
+\definereference [\v!ExitViewer ] [action(exit)]
+\definereference [\v!FirstPage ] [action(first)]
+\definereference [\v!LastPage ] [action(last)]
+\definereference [\v!NextJump ] [action(forward)]
+\definereference [\v!NextPage ] [action(next)]
+\definereference [\v!PauseMovie ] [action(pausemovie)]
+\definereference [\v!PauseSound ] [action(pausesound)]
+\definereference [\v!PauseRendering ] [action(pauserendering)]
+\definereference [\v!PreviousJump ] [action(backward)]
+\definereference [\v!PreviousPage ] [action(previous)]
+\definereference [\v!PrintDocument ] [action(print)]
+\definereference [\v!SaveForm ] [action(exportform)]
+\definereference [\v!LoadForm ] [action(importform)]
+\definereference [\v!ResetForm ] [action(resetform)]
+\definereference [\v!ResumeMovie ] [action(resumemovie)]
+\definereference [\v!ResumeSound ] [action(resumesound)]
+\definereference [\v!ResumeRendering ] [action(resumerendering)]
+\definereference [\v!SaveDocument ] [action(save)]
+\definereference [\v!SaveNamedDocument] [action(savenamed)]
+\definereference [\v!OpenNamedDocument] [action(opennamed)]
+\definereference [\v!SearchDocument ] [action(search)]
+\definereference [\v!SearchAgain ] [action(searchagain)]
+\definereference [\v!StartMovie ] [action(startmovie)]
+\definereference [\v!StartSound ] [action(startsound)]
+\definereference [\v!StartRendering ] [action(startrendering)]
+\definereference [\v!StopMovie ] [action(stopmovie)]
+\definereference [\v!StopSound ] [action(stopsound)]
+\definereference [\v!StopRendering ] [action(stoprendering)]
+\definereference [\v!SubmitForm ] [action(submitform)]
+\definereference [\v!ToggleViewer ] [action(toggle)]
+\definereference [\v!ViewerHelp ] [action(help)]
+\definereference [\v!HideField ] [action(hide)]
+\definereference [\v!ShowField ] [action(show)]
+\definereference [\v!GotoPage ] [action(gotopage)]
+\definereference [\v!GotoPage ] [action(gotopage)]
+\definereference [\v!Query ] [action(query)]
+\definereference [\v!QueryAgain ] [action(queryagain)]
+\definereference [\v!FitWidth ] [action(fitwidth)]
+\definereference [\v!FitHeight ] [action(fitheight)]
+\definereference [\v!ShowThumbs ] [action(thumbnails)]
+\definereference [\v!ShowBookmarks ] [action(bookmarks)]
+
+\definereference [\v!firstpage] [page(firstpage)]
+\definereference [\v!previouspage] [page(previouspage)]
+\definereference [\v!nextpage] [page(nextpage)]
+\definereference [\v!lastpage] [page(lastpage)]
+\definereference [\v!forward] [page(forward)]
+\definereference [\v!backward] [page(backward)]
+\definereference [\v!firstsubpage] [page(firstsubpage)]
+\definereference [\v!previoussubpage] [page(previoussubpage)]
+\definereference [\v!nextsubpage] [page(nextsubpage)]
+\definereference [\v!lastsubpage] [page(lastsubpage)]
+
+% we can do this but only when later in resolve (else problems with \chapter[first]{...}
+%
+% \definereference [\v!first] [page(firstpage)]
+% \definereference [\v!previous] [page(prevpage)]
+% \definereference [\v!next] [page(nextpage)]
+% \definereference [\v!last] [page(lastpage)]
+% \definereference [\v!first\v!sub] [page(firstsubpage)]
+% \definereference [\v!previous\v!sub] [page(prevsubpage)]
+% \definereference [\v!next\v!sub] [page(nextsubpage)]
+% \definereference [\v!last\v!sub] [page(lastsubpage)]
+
+%D We cannot set up buttons (not yet, this one calls a menu macro):
+
+\protect \endinput
+
+% tricky:
+%
+% \enabletrackers[nodes.references]
+% \setupinteraction[state=start]
+% \def\KnuthTest{\input knuth }
+% \def\KnuthTest{\input tufte }
+% \def\TufteTest{\input tufte }
+% \defineoverlay[xxx][\overlaybutton{page(3)}]
+% \setupbackgrounds[text][background=xxx]
+% \starttext
+% test {\red \KnuthTest} test \par
+% \button{test}[page(1)] \par
+% \goto{page 2 \TeX}[page(2)] \goto{page 2 \TeX}[page(2)] \goto{\TufteTest}[page(2)] test \page
+% test \goto{page 3}[page(3)] \goto{\TufteTest\space\par\TufteTest}[page(4)] test \page
+% \goto{page 1}[page(1)] \goto{\TufteTest\space test}[page(1)] \page
+% \goto{page 1}[page(1)] \goto{\KnuthTest\space test}[page(1)] \page
+% test \goto{page 1}[page(1)] {\goto{\KnuthTest\space test}[page(1)]} test
+% \goto{page 1}[page(1)] \goto{\TufteTest}[page(1)] test \page
+% \stoptext
diff --git a/Master/texmf-dist/tex/context/base/strc-reg.lua b/Master/texmf-dist/tex/context/base/strc-reg.lua
new file mode 100644
index 00000000000..b406ea1b057
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/strc-reg.lua
@@ -0,0 +1,632 @@
+if not modules then modules = { } end modules ['strc-reg'] = {
+ version = 1.001,
+ comment = "companion to strc-reg.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local next, type = next, type
+local texwrite, texsprint, texcount = tex.write, tex.sprint, tex.count
+local format, gmatch = string.format, string.gmatch
+local utfchar = utf.char
+
+local ctxcatcodes = tex.ctxcatcodes
+
+local variables = interfaces.variables
+
+local helpers = structure.helpers
+local sections = structure.sections
+local documents = structure.documents
+local pages = structure.pages
+
+-- to be shared, but tested first
+
+local function filter_collected(names,criterium,number,collected,prevmode)
+ if not criterium or criterium == "" then criterium = variables.all end
+ local data = documents.data
+ local numbers, depth = data.numbers, data.depth
+ local hash, result, all = { }, { }, not names or names == "" or names == variables.all
+ if not all then
+ for s in gmatch(names,"[^, ]+") do
+ hash[s] = true
+ end
+ end
+ if criterium == variables.all or criterium == variables.text then
+ for i=1,#collected do
+ local v = collected[i]
+ if all then
+ result[#result+1] = v
+ else
+ local vmn = v.metadata and v.metadata.name
+ if hash[vmn] then
+ result[#result+1] = v
+ end
+ end
+ end
+ elseif criterium == variables.current then
+ for i=1,#collected do
+ local v = collected[i]
+ local sectionnumber = jobsections.collected[v.references.section]
+ if sectionnumber then
+ local cnumbers = sectionnumber.numbers
+ if prevmode then
+ if (all or hash[v.metadata.name]) and #cnumbers >= depth then -- is the = ok for lists as well?
+ local ok = true
+ for d=1,depth do
+ if not (cnumbers[d] == numbers[d]) then -- no zero test
+ ok = false
+ break
+ end
+ end
+ if ok then
+ result[#result+1] = v
+ end
+ end
+ else
+ if (all or hash[v.metadata.name]) and #cnumbers > depth then
+ local ok = true
+ for d=1,depth do
+ local cnd = cnumbers[d]
+ if not (cnd == 0 or cnd == numbers[d]) then
+ ok = false
+ break
+ end
+ end
+ if ok then
+ result[#result+1] = v
+ end
+ end
+ end
+ end
+ end
+ elseif criterium == variables.previous then
+ for i=1,#collected do
+ local v = collected[i]
+ local sectionnumber = jobsections.collected[v.references.section]
+ if sectionnumber then
+ local cnumbers = sectionnumber.numbers
+ if (all or hash[v.metadata.name]) and #cnumbers >= depth then
+ local ok = true
+ if prevmode then
+ for d=1,depth do
+ if not (cnumbers[d] == numbers[d]) then
+ ok = false
+ break
+ end
+ end
+ else
+ for d=1,depth do
+ local cnd = cnumbers[d]
+ if not (cnd == 0 or cnd == numbers[d]) then
+ ok = false
+ break
+ end
+ end
+ end
+ if ok then
+ result[#result+1] = v
+ end
+ end
+ end
+ end
+ elseif criterium == variables["local"] then
+ if sections.autodepth(data.numbers) == 0 then
+ return filter_collected(names,variables.all,number,collected,prevmode)
+ else
+ return filter_collected(names,variables.current,number,collected,prevmode)
+ end
+ else -- sectionname, number
+ local depth = sections.getlevel(criterium)
+ local number = tonumber(number) or 0
+ for i=1,#collected do
+ local v = collected[i]
+ local r = v.references
+ if r then
+ local sectionnumber = jobsections.collected[r.section]
+ if sectionnumber then
+ local metadata = v.metadata
+ local cnumbers = sectionnumber.numbers
+ if cnumbers then
+ if (all or hash[metadata.name or false]) and #cnumbers >= depth and (number == 0 or cnumbers[depth] == number) then
+ result[#result+1] = v
+ end
+ end
+ end
+ end
+ end
+ end
+ return result
+end
+
+structure.filter_collected = filter_collected
+
+-- we follow a different strategy than by lists, where we have a global
+-- result table; we might do that here as well but since sorting code is
+-- older we delay that decision
+
+jobregisters = jobregisters or { }
+jobregisters.collected = jobregisters.collected or { }
+jobregisters.tobesaved = jobregisters.tobesaved or { }
+
+local tobesaved, collected = jobregisters.tobesaved, jobregisters.collected
+
+local function initializer()
+ tobesaved, collected = jobregisters.tobesaved, jobregisters.collected
+ local internals = jobreferences.internals
+ for name, list in next, collected do
+ local entries = list.entries
+ for e=1,#entries do
+ local entry = entries[e]
+ local r = entry.references
+ if r then
+ local internal = r and r.internal
+ if internal then
+ internals[internal] = entry
+ end
+ end
+ end
+ end
+end
+
+job.register('jobregisters.collected', jobregisters.tobesaved, initializer)
+
+local function allocate(class)
+ local d = tobesaved[class]
+ if not d then
+ d = {
+ metadata = {
+ language = 'en',
+ sorted = false,
+ class = class
+ },
+ entries = { },
+ }
+ tobesaved[class] = d
+ end
+ return d
+end
+
+jobregisters.define = allocate
+
+local entrysplitter = lpeg.Ct(lpeg.splitat('+'))
+
+local tagged = { }
+
+local function preprocessentries(rawdata)
+ local entries = rawdata.entries
+ if entries then
+ local et = entrysplitter:match(entries[1]) -- alse &
+ local kt = entrysplitter:match(entries[2]) -- alse &
+ entries = { }
+ for k=1,#et do
+ entries[k] = { et[k] or "", kt[k] or "" }
+ end
+ rawdata.list = entries
+ rawdata.entries = nil
+ else
+ rawdata.list = { "", "" } -- br
+ end
+end
+
+function jobregisters.store(rawdata) -- metadata, references, entries
+ local data = allocate(rawdata.metadata.name).entries
+ local references = rawdata.references
+ references.realpage = references.realpage or 0 -- just to be sure as it can be refered to
+ preprocessentries(rawdata)
+ data[#data+1] = rawdata
+ local label = references.label
+ if label and label ~= "" then tagged[label] = #data end
+ texwrite(#data)
+end
+
+function jobregisters.enhance(name,n)
+ local r = tobesaved[name].entries[n]
+ if r then
+ r.references.realpage = texcount.realpageno
+ end
+end
+
+function jobregisters.extend(name,tag,rawdata) -- maybe do lastsection internally
+ if type(tag) == "string" then
+ tag = tagged[tag]
+ end
+ if tag then
+ local r = tobesaved[name].entries[tag]
+ if r then
+ local rr = r.references
+ rr.lastrealpage = texcount.realpageno
+ rr.lastsection = structure.sections.currentid()
+ if rawdata then
+ preprocessentries(rawdata)
+ for k,v in pairs(rawdata) do
+ if not r[k] then
+ r[k] = v
+ else
+ local rk = r[k]
+ for kk,vv in pairs(v) do
+ if vv ~= "" then
+ rk[kk] = vv
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+end
+
+-- sorting and rendering
+
+function jobregisters.compare(a,b)
+ local result = 0
+ local compare = sorters.comparers.basic
+ local ea, eb = a.split, b.split
+ local na, nb = #ea, #eb
+ local max = na
+ if nb < max then max = nb end
+ for i=1,max do
+ if result == 0 then
+ result = compare(ea[i],eb[i])
+ else
+ return result
+ end
+ end
+ if result ~= 0 then
+ return result
+ elseif na > nb then
+ return 1
+ elseif nb > na then
+ return -1
+ elseif a.metadata.kind == 'entry' then -- e/f/t
+ local page_a, page_b = a.references.realpage, b.references.realpage
+ if not page_a or not page_b then
+--~ print(table.serialize(a),table.serialize(b))
+ return 0
+ elseif page_a < page_b then
+ return -1
+ elseif page_a > page_b then
+ return 1
+ end
+ else
+ return 0
+ end
+end
+
+function jobregisters.filter(data,options)
+ data.result = structure.filter_collected(nil,options.criterium,options.number,data.entries,true)
+end
+
+function jobregisters.prepare(data)
+ -- data has 'list' table
+ local strip = sorters.strip
+ local splitter = sorters.splitters.utf
+ local result = data.result
+ if result then
+ for i=1, #result do
+ local entry, split = result[i], { }
+ local list = entry.list
+ if list then
+ for l=1,#list do
+ local ll = list[l]
+ local word, key = ll[1], ll[2]
+ if not key or key == "" then
+ key = word
+ end
+ split[l] = splitter(strip(key))
+ end
+ end
+ entry.split = split
+ end
+ end
+end
+
+function jobregisters.sort(data,options)
+ sorters.sort(data.result,jobregisters.compare)
+end
+
+function jobregisters.unique(data,options)
+ local result, prev, equal = { }, nil, table.are_equal
+ for _,v in ipairs(data.result) do
+ if not prev then
+ result[#result+1], prev = v, v
+ else
+ local pr, vr = prev.references, v.references
+ if not equal(prev.list,v.list) then
+ result[#result+1], prev = v, v
+ elseif pr.realpage ~= vr.realpage then
+ result[#result+1], prev = v, v
+ else
+ local pl, vl = pr.lastrealpage, vr.lastrealpage
+ if pl or vl then
+ if not vl then
+ result[#result+1], prev = v, v
+ elseif not pl then
+ result[#result+1], prev = v, v
+ elseif pl ~= vl then
+ result[#result+1], prev = v, v
+ end
+ end
+ end
+ end
+ end
+ data.result = result
+end
+
+function jobregisters.finalize(data,options)
+ local result = data.result
+ data.metadata.nofsorted = #result
+ local split = { }
+ -- maps character to index (order)
+ for k=1,#result do
+ local v = result[k]
+ local entry, tag = sorters.firstofsplit(v.split)
+ local s = split[tag] -- keeps track of change
+ if not s then
+ s = { tag = tag, data = { } }
+ split[tag] = s
+ end
+ s.data[#s.data+1] = v
+ end
+ data.result = split
+end
+
+function jobregisters.analysed(class,options)
+ local data = collected[class]
+ if data and data.entries then
+ sorters.language = options.language or sorters.defaultlanguage
+ jobregisters.filter(data,options) -- filter entries into results (criteria)
+ jobregisters.prepare(data,options) -- adds split table parallel to list table
+ jobregisters.sort(data,options) -- sorts results
+ jobregisters.unique(data,options) -- get rid of duplicates
+ jobregisters.finalize(data,options) -- split result in ranges
+ data.metadata.sorted = true
+ return data.metadata.nofsorted or 0
+ else
+ return 0
+ end
+end
+
+-- todo take conversion from index
+
+function jobregisters.flush(data,options,prefixspec,pagespec)
+ local equal = table.are_equal
+ texsprint(ctxcatcodes,"\\startregisteroutput")
+ local collapse_singles = options.compress == interfaces.variables.yes
+ local collapse_ranges = options.compress == interfaces.variables.all
+ local result = data.result
+ -- todo ownnumber
+ local function pagenumber(entry)
+ local er = entry.references
+ texsprint(ctxcatcodes,format("\\registeronepage{%s}{%s}{",er.internal or 0,er.realpage or 0)) -- internal realpage content
+ helpers.prefixpage(entry,prefixspec,pagespec)
+ texsprint(ctxcatcodes,"}")
+ end
+ local function pagerange(f_entry,t_entry,is_last)
+ local er = f_entry.references
+ texsprint(ctxcatcodes,format("\\registerpagerange{%s}{%s}{",er.internal or 0,er.realpage or 0))
+ helpers.prefixpage(f_entry,prefixspec,pagespec)
+ local er = t_entry.references
+ texsprint(ctxcatcodes,format("}{%s}{%s}{",er.internal or 0,er.realpage or 0))
+ if is_last then
+ helpers.prefixlastpage(t_entry,prefixspec,pagespec) -- swaps page and realpage keys
+ else
+ helpers.prefixpage(t_entry,prefixspec,pagespec)
+ end
+ texsprint(ctxcatcodes,"}")
+ end
+ -- ranges need checking !
+ for k, letter in ipairs(table.sortedkeys(result)) do
+ local sublist = result[letter]
+ local done = { false, false, false, false }
+ local data = sublist.data
+ local d, n = 0, 0
+ texsprint(ctxcatcodes,format("\\startregistersection{%s}",sublist.tag))
+ while d < #data do
+ d = d + 1
+ local entry = data[d]
+ local e = { false, false, false, false }
+ for i=1,4 do -- max 4
+ if entry.list[i] then
+ e[i] = entry.list[i][1]
+ end
+ if e[i] ~= done[i] then
+ if e[i] and e[i] ~= "" then
+ done[i] = e[i]
+ if n == i then
+ texsprint(ctxcatcodes,format("\\stopregisterentries\\startregisterentries{%s}",n))
+ else
+ while n > i do
+ n = n - 1
+ texsprint(ctxcatcodes,"\\stopregisterentries")
+ end
+ while n < i do
+ n = n + 1
+ texsprint(ctxcatcodes,format("\\startregisterentries{%s}",n))
+ end
+ end
+ texsprint(ctxcatcodes,format("\\registerentry{%s}",e[i]))
+ else
+ done[i] = false
+ end
+ end
+ end
+ local kind = entry.metadata.kind
+ if kind == 'entry' then
+ texsprint(ctxcatcodes,"\\startregisterpages")
+ if collapse_singles or collapse_ranges then
+ -- we collapse ranges and keep existing ranges as they are
+ -- so we get prebuilt as well as built ranges
+ local first, last, prev = entry, nil, entry
+ local pages = { }
+ local dd = d
+ while dd < #data do
+ dd = dd + 1
+ local next = data[dd]
+ local el, nl = entry.list, next.list
+ if not equal(el,nl) then
+ dd = dd - 1
+ --~ first = nil
+ break
+ elseif next.references.lastrealpage then
+ if first then
+ pages[#pages+1] = { first, last or first }
+ else
+ pages[#pages+1] = { entry, entry }
+ end
+ pages[#pages+1] = { next, next }
+ first, last, prev = nil, nil, nil
+ elseif not first then
+ first, prev = next, next
+ elseif next.references.realpage - prev.references.realpage == 1 then -- 1 ?
+ last, prev = next, next
+ else
+ pages[#pages+1] = { first, last or first }
+ first, last, prev = next, nil, next
+ end
+ end
+ if first then
+ pages[#pages+1] = { first, last or first }
+ end
+ if collapse_ranges and #pages > 1 then
+ -- ok, not that efficient
+ local function doit()
+ local function bubble(i)
+ for j=i,#pages-1 do
+ pages[j] = pages[j+1]
+ end
+ pages[#pages] = nil
+ end
+ for i=2,#pages do
+ local first, second = pages[i-1], pages[i]
+ local first_first, first_last, second_first, second_last = first[1], first[2], second[1], second[2]
+ local first_last_pn = first_last .references.realpage
+ local second_first_pn = second_first.references.realpage
+ local second_last_pn = second_last .references.realpage
+ local first_last_last = first_last .references.lastrealpage
+ local second_first_last = second_first.references.lastrealpage
+ if first_last_last then
+ first_last_pn = first_last_last
+ if second_first == second_last and second_first_pn <= first_last_pn then
+ -- 2=8, 5 -> 12=8
+ bubble(i)
+ return true
+ elseif second_first == second_last and second_first_pn > first_last_pn then
+ -- 2=8, 9 -> 2-9
+ pages[i-1] = { first_first, second_last }
+ bubble(i)
+ return true
+ elseif second_last_pn < first_last_pn then
+ -- 2=8, 3-4 -> 2=8
+ bubble(i)
+ return true
+ elseif first_last_pn < second_last_pn then
+ -- 2=8, 3-9 -> 2-9
+ pages[i-1] = { first_first, second_last }
+ bubble(i)
+ return true
+ elseif first_last_pn + 1 == second_first_pn and second_last_pn > first_last_pn then
+ -- 2=8, 9-11 -> 2-11
+ pages[i-1] = { first_first, second_last }
+ bubble(i)
+ return true
+ elseif second_first.references.lastrealpage then
+ -- 2=8, 9=11 -> 2-11
+ pages[i-1] = { first_first, second_last }
+ bubble(i)
+ return true
+ end
+ elseif second_first_last then
+ second_first_pn = second_first_last
+ if first_last_pn == second_first_pn then
+ -- 2-4, 5=9 -> 2-9
+ pages[i-1] = { first_first, second_last }
+ bubble(i)
+ return true
+ end
+ elseif first_last_pn == second_first_pn then
+ -- 2-3, 3-4 -> 2-4
+ pages[i-1] = { first_last, second_last }
+ bubble(i)
+ return true
+ end
+ end
+ return false
+ end
+ while doit() do end
+ end
+ --
+ if #pages > 0 then -- or 0
+ d = dd
+ for p=1,#pages do
+ local first, last = pages[p][1], pages[p][2]
+ if first == last then
+ if first.references.lastrealpage then
+ pagerange(first,first,true)
+ else
+ pagenumber(first)
+ end
+ elseif last.references.lastrealpage then
+ pagerange(first,last,true)
+ else
+ pagerange(first,last,false)
+ end
+ end
+ else
+ if entry.references.lastrealpage then
+ pagerange(entry,entry,true)
+ else
+ pagenumber(entry)
+ end
+ end
+ else
+ while true do
+ if entry.references.lastrealpage then
+ pagerange(entry,entry,true)
+ else
+ pagenumber(entry)
+ end
+ if d == #data then
+ break
+ else
+ d = d + 1
+ local next = data[d]
+ if not equal(entry.list,next.list) then
+ d = d - 1
+ break
+ else
+ entry = next
+ end
+ end
+ end
+ end
+ texsprint(ctxcatcodes,"\\stopregisterpages")
+ elseif kind == 'see' then
+ -- maybe some day more words
+ texsprint(ctxcatcodes,"\\startregisterseewords")
+ texsprint(ctxcatcodes,format("\\registeroneword{0}{0}{%s}",entry.seeword.text)) -- todo: internal
+ texsprint(ctxcatcodes,"\\stopregisterseewords")
+ end
+ end
+ while n > 0 do
+ texsprint(ctxcatcodes,"\\stopregisterentries")
+ n = n - 1
+ end
+ texsprint(ctxcatcodes,"\\stopregistersection")
+ end
+ texsprint(ctxcatcodes,"\\stopregisteroutput")
+ -- for now, maybe at some point we will do a multipass or so
+ data.result = nil
+ data.metadata.sorted = false
+end
+
+function jobregisters.analyse(class,options)
+ texwrite(jobregisters.analysed(class,options))
+end
+
+function jobregisters.process(class,...)
+ if jobregisters.analysed(class,...) > 0 then
+ jobregisters.flush(collected[class],...)
+ end
+end
+
diff --git a/Master/texmf-dist/tex/context/base/core-reg.tex b/Master/texmf-dist/tex/context/base/strc-reg.mkii
index 18ce09830ad..8d824bd9dcd 100644
--- a/Master/texmf-dist/tex/context/base/core-reg.tex
+++ b/Master/texmf-dist/tex/context/base/strc-reg.mkii
@@ -1,7 +1,7 @@
%D \module
-%D [ file=core-reg,
+%D [ file=strc-reg,
%D version=1999.12.27,
-%D title=\CONTEXT\ Core Macros,
+%D title=\CONTEXT\ Structure Macros,
%D subtitle=Register Management,
%D author=Hans Hagen,
%D date=\currentdate,
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Core Macros / Register Management}
+\writestatus{loading}{ConTeXt Structure Macros / Register Management}
\newif \ifautoregisterhack % for the moment a private hack
@@ -81,13 +81,7 @@
\newif\ifwritetoregister \writetoregistertrue
-\ifx\undefined\mkdefineregister
- \let\mkdefineregister \gobbleoneargument
- \let\mksaveregistervariable\gobblethreearguments
- \let\mksaveregisterentry \gobblesevenarguments
- \let\mksaveregistersee \gobblesevenarguments
- \let\mkloadregister \gobbleoneargument
-\fi
+\chardef\registerpagestatus\zerocount
\def\doprocesspageregister[#1]#2#3% key altnum entry
{\ifwritetoregister
@@ -103,15 +97,13 @@
\makesectionformat
\doifelse{\registerparameter\c!ownnumber}\v!yes
\donetrue\donefalse
- \mksaveregisterentry
- {\currentregister}
- {\ifcase\registerpagestatus\space\or e\or f\or t\fi}
- {\nextinternalreference}
- {\asciiregisterentryA}
- {\asciiregisterentryB}
- {\sectionformat\sectionseparator\sectionseparator
- \ifdone#2\else\noexpand\pagenumber\fi}
- {\noexpand\realfolio}%
+ \expanded{\writeutility{r % spaces are essential
+ {\ifcase\registerpagestatus\space\or e\or f\or t\fi} {\currentregister} %
+ {\nextinternalreference} %
+ {\asciiregisterentryA} %
+ {\asciiregisterentryB} %
+ {\sectionformat\sectionseparator\sectionseparator\ifdone#2\else\noexpand\pagenumber\fi} %
+ {\noexpand\realfolio}}}%
\getfirstcharacter\currentregister
\registerinfo{> \firstcharacter}{#3}%
\endgroup
@@ -195,14 +187,13 @@
\defconvertexpanded\asciiregisterentryA{\registerparameter\c!keyexpansion}{#2}%
\fi}%
\makesectionformat
- \mksaveregistersee
- {\currentregister}
- {s}
- {\nextinternalreference}
- {\asciiregisterentryA}
- {\asciiregisterentryB}
- {\asciiregisterentryC}
- {\sectionformat}%
+ \expanded{\writeutility{r s %
+ {\currentregister} %
+ {\nextinternalreference} %
+ {\asciiregisterentryA} %
+ {\asciiregisterentryB} %
+ {\asciiregisterentryC} %
+ {\sectionformat}}}%
\endgroup
\registerinfo{> see}{#2}%
\fi}
@@ -568,7 +559,7 @@
\def\dohandleregisterentry##1% dubbelop | \strut nieuw
{\doregistertexthowto{#1}{\strut\limitedregisterentry{#1}{##1}}}%
\getvalue
- {#1\ifcase\currententrylevel\s!entrya\or\s!entryb\else\s!entryc\else\s!entryd\fi}%
+ {#1\ifcase\currententrylevel\s!entrya\or\s!entryb\or\s!entryc\else\s!entryd\fi}%
{\doregisterpagehowto{#1}{\labeltexts\v!see{#3}}}%
\c!entryletter\c!entrya\c!entryb\c!entryc\c!entryd
\global\let\c!entrya\relax
@@ -888,7 +879,7 @@
\let\dosetregister\doloadregisterlinks
\def\currentregister{#1}%
\setupregister[#1][#2]%
- \mkloadregister\currentregister\dobeforeplaceregister\doafterplaceregister
+ \doutilities\currentregister{\registerparameter\c!file}\currentregister\dobeforeplaceregister\doafterplaceregister
\endgroup
\ifautoregisterhack
\doinitializeautoregister{#1}%
@@ -1107,7 +1098,7 @@
tolerance=stretch]%
\dontcomplain
\startpacked[\v!blank]%
- \mkloadregister\currentregister\dobeforeplaceregister\doafterplaceregister
+ \doutilities\currentregister{\registerparameter\c!file}\currentregister\dobeforeplaceregister\doafterplaceregister
\stoppacked
\stopcolumns
\endgroup
@@ -1136,7 +1127,7 @@
\def\doregisterregisterlanguage#1%
{\savesortlanguage{\getvalue{\??id#1\s!language}}%
- \mksaveregistervariable{#1}{l}{\getvalue{\??id#1\s!language}}}
+ \expanded{\immediatewriteutility{r l {#1} {\getvalue{\??id#1\s!language}}}}}
\def\dodefineregister[#1][#2]%
{\setupregister[#1]%
@@ -1172,7 +1163,7 @@
\doregisterregisterlanguage{#1}%
\to \everysavesortkeys
\presetheadtext[#1=\Word{#1}]%
- \mkdefineregister{#1}%
+ \addutilityreset{#1}%
\setvalue{#1}{\doregister{#1}}%
\setvalue{\e!coupled#1}{\dolinkedregister{#1}}%
\setvalue{\s!set#1}{\dosetregister{#1}}%
@@ -1202,7 +1193,7 @@
\global\utilitydonetrue}
{}}%
\doglobal\newcounter\utilityregisterlength
- \setbox0\vbox{\mkloadregister\currentregister\dobeforeplaceregister\doafterplaceregister}%
+ \setbox0\vbox{\doutilities\currentregister{\registerparameter\c!file}\currentregister\dobeforeplaceregister\doafterplaceregister}%
\endgroup
\ifregistergeplaatst
\setsystemmode \v!register
@@ -1213,10 +1204,6 @@
\def\determineregistercharacteristics
{\dodoubleempty\dodetermineregistercharacteristics}
-%D Plugins.
-
-\loadmarkfile{core-reg}
-
%D Default index:
\defineregister
diff --git a/Master/texmf-dist/tex/context/base/strc-reg.mkiv b/Master/texmf-dist/tex/context/base/strc-reg.mkiv
new file mode 100644
index 00000000000..2ec448d97fe
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/strc-reg.mkiv
@@ -0,0 +1,975 @@
+%D \module
+%D [ file=strc-reg,
+%D version=2008.10.20,
+%D title=\CONTEXT\ Structure Macros,
+%D subtitle=Registers,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA-ADE / Hans Hagen]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Structure Macros / Registers}
+
+\registerctxluafile{strc-reg}{1.001}
+
+\unprotect
+
+\def\c!keys {keys}
+\def\c!entries{entries}
+
+% todo: tag:: becomes rendering
+% todo: language, character, linked, location
+
+%D Helper:
+
+% \def\doflushatpar{\ifvmode\expandafter\dogotopar\else\expandafter\firstofoneargument\fi}
+
+\def\doflushatpar{\ifvmode\expandafter\flushatnextpar\else\expandafter\firstofoneargument\fi}
+
+% \starttext
+% \placeregister[index]
+% \chapter{a} \index{93} \index{456} \index{***} \index{*} \index{@}
+% test \index{aa} test \startregister[index][x]{bb} test \page test \page test \page test \stopregister[index][x]
+% test \index{aa} test \setregisterentry[index][label=x,entries=bb] test \page test \page test \page test \finishregisterentry[index][label=x]
+% test \index{aa} test \setregisterentry[index][label=y] test \page test \page test \page test \finishregisterentry[index][label=y,entries=yy]
+% \stoptext
+
+% In plaats van + kan een & worden gebruikt. Ook kan als
+% eerste karakter worden opgegeven wat de scheider is.
+%
+% \index {entry}
+% \index[key] {entry}
+% \index[pageclass::] {entry}
+% \index[pageclass::key]{entry}
+% \index {textclass::entry}
+% \index[key] {textclass::entry}
+% \index[pageclass::] {textclass::entry}
+% \index[pageclass::key]{textclass::entry}
+
+%D Parameters:
+
+\let\currentregister\empty
+
+% \def\registerparameter#1{\csname\??id\currentregister#1\endcsname}
+
+\def\detokenizedregisterparameter#1{\detokenize\expandafter\expandafter\expandafter{\csname\??id#1\endcsname}} % always root
+
+\def\registerparameter #1{\csname\doregisterparameter{\??id\currentregister}#1\endcsname}
+\def\registerparameterhash#1{\doregisterparameterhash {\??id\currentregister}#1}
+
+\def\doregisterparameter #1#2{\ifcsname#1#2\endcsname#1#2\else\expandafter\doregisterparentparameter \csname#1\s!parent\endcsname#2\fi}
+\def\doregisterparameterhash#1#2{\ifcsname#1#2\endcsname #1\else\expandafter\doregisterparentparameterhash\csname#1\s!parent\endcsname#2\fi}
+
+\def\doregisterparentparameter #1#2{\ifx#1\relax\s!empty\else\doregisterparameter #1#2\fi}
+\def\doregisterparentparameterhash#1#2{\ifx#1\relax \else\doregisterparameterhash#1#2\fi}
+
+\def\dosetregisterattributes#1#2% style color
+ {\edef\fontattributehash {\registerparameterhash#1}%
+ \edef\colorattributehash{\registerparameterhash#2}%
+ \ifx\fontattributehash \empty\else\dosetfontattribute \fontattributehash #1\fi
+ \ifx\colorattributehash\empty\else\dosetcolorattribute\colorattributehash#2\fi}
+
+%D Setup:
+
+\newtoks\everysetupregister
+
+\def\setupregisters
+ {\dotripleempty\dosetupregisters}
+
+\def\dosetupregisters[#1][#2][#3]%
+ {\ifthirdargument
+ \def\dodosetupregister##1{\getparameters[\??id##1#2][#3]}%
+ \processcommalist[#1]\dodosetupregister
+ \else\ifsecondargument
+ \def\dodosetupregister##1{\edef\currentregister{##1}\getparameters[\??id##1][#2]\the\everysetupregister}%
+ \processcommalist[#1]\dodosetupregister
+ \else
+ \getparameters[\??id][#1]%
+ \fi\fi}
+
+\let\setupregister\setupregisters
+
+\setupregisters
+ [\c!n=2,
+ \c!balance=\v!yes, % \v!no komt niet zo vaak voor
+ \c!align=\v!flushleft,
+ \c!tolerance=\v!stretch,
+ \c!before=\blank,
+ %\c!after=,
+ %\c!symbol=,
+ \c!compress=\v!no,
+ \c!interaction=\v!pagenumber,
+ \c!alternative=\v!a,
+ \c!distance=1em,
+ \c!style=\v!bold,
+ \c!pagestyle=\v!slanted,
+ \c!indicator=\v!yes,
+ \c!criterium=\v!all,
+ %\c!command=,
+ \c!referencing=\v!on,
+ \c!location=\v!middle,
+ %\c!maxwidth=,
+ \c!number=\v!no,
+ \c!unknownreference=\v!empty,
+ \c!prefix=\v!both,
+ %\c!expansion=,
+ \c!pageprefixconnector=\endash,
+ \c!pagesegments=2:2,
+ \c!file=\jobname,
+ %\c!deeptextcommand=, % undefined by default !
+ \s!language=\currentmainlanguage]%
+
+%D Definition:
+
+\def\defineregister
+ {\dodoubleargument\dodefineregister}
+
+\def\dodefineregister[#1][#2]% #2?
+ {\setupregister[#1][\s!parent=\??id]%
+ \ctxlua{jobregisters.define('#1')}%
+ \presetheadtext[#1=\Word{#1}]%
+ \unexpanded\setvalue{#1}{\dodoubleempty\doregister[#1]}%
+ \unexpanded\setvalue{\e!see#1}{\dodoubleempty\doseeregister[#1]}%
+% \unexpanded\setvalue{\e!coupled#1}{\dolinkedregister{#1}}%
+ \setvalue{\e!place#1}{\placeregister[#1]}%
+ \setvalue{\e!complete#1}{\completeregister[#1]}%
+ \setvalue{\e!setup#1\e!endsetup}[##1]{\getparameters[\??id#1][##1]}}
+
+%D Registering:
+
+\newif\ifwritetoregister \writetoregistertrue
+
+% tzt variant met n entries, parameters en userdata (altnum)
+
+\def\doregisterstructurepageregister#1#2#3% register data userdata
+ {\begingroup
+ \edef\currentregister{#1}%
+ \getparameters[\??id][\c!entries=,\c!label=,\c!keys=,\c!alternative=,#2]%
+ \edef\currentregisterlabel {\registerparameter\c!label}%
+ \edef\currentregisterexpansion{\registerparameter\c!expansion}%
+ \edef\currentregisterownnumber{\registerparameter\c!ownnumber}%
+ \xdef\currentregisterkeys {\registerparameter\c!keys}%
+ \ifx\currentregisterexpansion\s!xml
+ \xmlstartraw
+ \xdef\currentregisterentries{\registerparameter\c!entries}%
+ \xmlstopraw
+ \globallet\currentregistercoding\s!xml
+ \else
+ \ifx\currentregisterexpansion\v!yes
+ \xdef\currentregisterentries{\registerparameter\c!entries}%
+ \else
+ \xdef\currentregisterentries{\detokenizedregisterparameter\c!entries}%
+ \fi
+ \globallet\currentregistercoding\s!tex
+ \fi
+ \setnextinternalreference
+ % we could consider storing register entries in a list which we
+ % could then sort
+ \xdef\currentregisternumber{\ctxlua{
+ jobregisters.store {
+ metadata = {
+ kind = "entry",
+ name = "\currentregister",
+ level = structure.sections.currentlevel(),
+ coding = "\currentregistercoding",
+ catcodes = \the\catcodetable,
+ \ifx\currentregisterownnumber\v!yes
+ own = "\registerparameter\c!alternative", % can be used instead of pagenumber
+ \fi
+ },
+ references = {
+ internal = \nextinternalreference,
+ section = structure.sections.currentid(), % hm, why then not also lastsection the same way
+ label = "\currentregisterlabel",
+ },
+ \ifx\currentregisterentries\empty \else
+ entries = {
+ % we need a special one for xml, this is just a single one
+ \!!bs\currentregisterentries\!!es, \!!bs\currentregisterkeys\!!es
+ },
+ \fi
+ userdata = structure.helpers.touserdata(\!!bs\detokenize{#3}\!!es)
+ }
+ } }%
+ \ctxlua{jobreferences.setinternalreference(nil,nil,\nextinternalreference)}%
+ \ifx\currentregisterownnumber\v!yes
+ \glet\currentregistersynchronize\relax
+ \else
+ \xdef\currentregistersynchronize{\ctxlatelua{jobregisters.enhance("\currentregister",\currentregisternumber)}}%
+ \fi
+ \currentregistersynchronize % here?
+ \attribute\destinationattribute\lastdestinationattribute \strut % todo
+ \endgroup}
+
+\def\doregister[#1][#2]%
+ {\def\currentregister{#1}%
+ \doifelse{\registerparameter\c!ownnumber}\v!yes\dodoregister\donoregister{#1}{#2}}
+
+\def\donoregister #1#2#3{\doflushatpar{\doregisterstructurepageregister{#1}{\c!keys={#2},\c!entries={#3}}{}}}
+\def\dodoregister#1#2#3#4{\doflushatpar{\doregisterstructurepageregister{#1}{\c!keys={#2},\c!alternative=#3,\c!entries={#4}}{}}}
+
+\def\startregister{\doquadrupleempty\dostartregister}
+\def\stopregister {\dodoubleargument\dostopregister}
+
+% a synonym, so that we can nest with overlap without syntax check problems
+
+\let\openregisterrange \startregister
+\let\closeregisterrange\stopregister
+
+\def\dostartregister[#1][#2][#3][#4]#5%
+ {\iffourthargument
+ % #1=register #2=tag #3=own #4=sortkey #5=entry
+ \doflushatpar{\doregisterstructurepageregister{#1}{\c!label=#2,\c!alternative=#3,\c!keys={#4},\c!entries={#5}}{}}%
+ \else
+ % #1=register #2=tag #3=sortkey #5=entry
+ \doflushatpar{\doregisterstructurepageregister{#1}{\c!label=#2,\c!keys={#3},\c!entries={#5}}{}}%
+ \fi}
+
+\def\dostopregister[#1][#2]%
+ {\normalexpanded{\ctxlatelua{jobregisters.extend("#1","#2")}}}
+
+\def\setregisterentry {\dotripleempty\dosetregisterentry}
+\def\finishregisterentry{\dotripleempty\dofinishregisterentry}
+
+\def\dosetregisterentry [#1][#2][#3]{\doflushatpar{\doregisterstructurepageregister{#1}{#2}{#3}}}
+\def\dofinishregisterentry[#1][#2][#3]{\dofinishregisterstructurepageregister{#1}{#2}{#3}}
+
+\def\dofinishregisterstructurepageregister#1#2#3% register data userdata
+ {\begingroup
+ \edef\currentregister{#1}%
+ \getparameters[\??id][\c!entries=,\c!label=,\c!keys=,\c!alternative=,#2]%
+ \edef\currentregisterlabel {\registerparameter\c!label}%
+ \edef\currentregisterexpansion{\registerparameter\c!expansion}%
+ \edef\currentregisterownnumber{\registerparameter\c!ownnumber}%
+ \xdef\currentregisterkeys {\registerparameter\c!keys}%
+ \ifx\currentregisterexpansion\s!xml
+ \xmlstartraw
+ \xdef\currentregisterentries{\registerparameter\c!entries}%
+ \xmlstopraw
+ \globallet\currentregistercoding\s!xml
+ \else
+ \ifx\currentregisterexpansion\v!yes
+ \xdef\currentregisterentries{\registerparameter\c!entries}%
+ \else
+ \xdef\currentregisterentries{\detokenizedregisterparameter\c!entries}%
+ \fi
+ \globallet\currentregistercoding\s!tex
+ \fi
+ \ifx\currentregisterentries\empty
+ \normalexpanded{\ctxlua{jobregisters.extend("\currentregister","\currentregisterlabel", {
+ metadata = {
+ \ifx\currentregisterownnumber\v!yes
+ own = "\registerparameter\c!alternative", % can be used instead of pagenumber
+ \fi
+ },
+ userdata = structure.helpers.touserdata(\!!bs\detokenize{#3}\!!es)
+ })%
+ }}%
+ \else
+ \normalexpanded{\ctxlua{jobregisters.extend("\currentregister","\currentregisterlabel", {
+ metadata = {
+ catcodes = \the\catcodetable,
+ coding = "\currentregistercoding",
+ \ifx\currentregisterownnumber\v!yes
+ own = "\registerparameter\c!alternative", % can be used instead of pagenumber
+ \fi
+ },
+ entries = {
+ % we need a special one for xml, this is just a single one
+ \!!bs\currentregisterentries\!!es, \!!bs\currentregisterkeys\!!es
+ },
+ userdata = structure.helpers.touserdata(\!!bs\detokenize{#3}\!!es)
+ })
+ }}%
+ \fi
+ \endgroup}
+
+\def\doseeregister[#1][#2]#3#4%
+ {\doflushatpar{\doprocessseeregister{#1}{#2}{#3}{#4}}}
+
+\def\doprocessseeregister#1#2#3#4% register key entry seeword
+ {\begingroup
+ \edef\currentregister{#1}%
+ \edef\currentregisterexpansion{\registerparameter\c!expansion}%
+ \ifx\currentregisterexpansion\s!xml
+ \xmlstartraw
+ \xdef\currentregisterentries{\detokenize{#3}}% not ok yet
+ \xdef\currentregisterseeword{\detokenize{#4}}% not ok yet
+ \xmlstopraw
+ \globallet\currentregistercoding\s!xml
+ \else
+ \ifx\currentregisterexpansion\v!yes
+ \xdef\currentregisterentries{#3}% not ok yet
+ \xdef\currentregisterseeword{#4}% not ok yet
+ \else
+ \xdef\currentregisterentries{\detokenize{#3}}% not ok yet
+ \xdef\currentregisterseeword{\detokenize{#4}}% not ok yet
+ \fi
+ \globallet\currentregistercoding\s!tex
+ \fi
+ \setnextinternalreference
+ % we could consider storing register entries in list
+ \ctxlua{ jobregisters.store {
+ metadata = {
+ kind = "see",
+ name = "\currentregister",
+ level = structure.sections.currentlevel(),
+ catcodes = \the\catcodetable,
+ },
+ references = {
+ internal = \nextinternalreference,
+ section = structure.sections.currentid(),
+ },
+ entries = {
+ % we need a special one for xml, this is just a single one
+ "\currentregisterentries", "#2"
+ },
+ seeword = {
+ text = "\currentregisterseeword"
+ },
+ }
+ }%
+ \endgroup}
+
+%D Rendering:
+
+\let\utilityregisterlength\!!zerocount
+
+\def\determineregistercharacteristics
+ {\dodoubleempty\dodetermineregistercharacteristics}
+
+\def\dodetermineregistercharacteristics[#1][#2]%
+ {\edef\utilityregisterlength{\ctxlua{jobregisters.analyse('\currentregister')}}%
+ \ifcase\utilityregisterlength\relax
+ \resetsystemmode\v!register
+ \else
+ \setsystemmode \v!register
+ \fi}
+
+\newtoks\everyplaceregister
+
+\appendtoks
+ \dontcomplain
+\to \everyplaceregister
+
+\def\placeregister
+ {\dodoubleempty\doplaceregister}
+
+\def\doplaceregister[#1][#2]%
+ {\iffirstargument
+ \begingroup
+% \forgetall
+ \edef\currentregister{#1}%
+ \setupregister[\currentregister][#2]%
+ \the\everyplaceregister
+ \startcolumns
+ [\c!n=\registerparameter\c!n,
+ \c!balance=\registerparameter\c!balance,
+ \c!align=\registerparameter\c!align,
+ \c!tolerance=\registerparameter\c!tolerance]%
+ \startpacked[\v!blank]%
+ \ctxlua{jobregisters.process('\currentregister',{
+ language = "\registerparameter\s!language",
+ compress = "\registerparameter\c!compress",
+ criterium = "\registerparameter\c!criterium",
+ },
+ {
+% prefix = "\registerparameter\c!pageprefix",
+ separatorset = "\registerparameter\c!pageprefixseparatorset",
+ conversionset = "\registerparameter\c!pageprefixconversionset",
+ stopper = \!!bs\registerparameter\c!pageprefixstopper\!!es,
+ set = "\registerparameter\c!pageprefixset",
+ segments = "\registerparameter\c!pageprefixsegments",
+ connector = \!!bs\registerparameter\c!pageprefixconnector\!!es,
+ },
+ {
+ prefix = "\registerparameter\c!pageprefix",
+ separatorset = "\registerparameter\c!pageseparatorset",
+ conversionset = "\registerparameter\c!pageconversionset",
+ stopper = \!!bs\registerparameter\c!pagestopper\!!es,
+ segments = "\registerparameter\c!pagesegments",
+ }
+ )}%
+ \stoppacked
+ \stopcolumns
+ \endgroup
+ \fi}
+
+\def\dolimitedregisterentry#1{\limitatetext{#1}\currentregistermaxwidth\unknown}%
+
+\appendtoks
+ \edef\currentregistermaxwidth{\registerparameter\c!maxwidth}%
+ \ifx\currentregistermaxwidth\empty
+ \let\limitedregisterentry\firstofoneargument
+ \else
+ \let\limitedregisterentry\dolimitedregisterentry
+ \fi
+\to \everyplaceregister
+
+\def\completeregister
+ {\dodoubleempty\docompleteregister}
+
+\def\docompleteregister[#1][#2]%
+ {\iffirstargument
+ \begingroup
+ \edef\currentregister{#1}%
+ % the expansion is needed because we don't want \v!'s in the tuo file (french)
+ \normalexpanded{\noexpand\systemsuppliedchapter[\currentregister]{\noexpand\headtext{\currentregister}}}%
+ \placeregister[\currentregister][#2]%
+ \page[\v!yes]%
+ \endgroup
+ \fi}
+
+% test case for collapsing (experimental, for Steffen Wolfrum)
+%
+% \starttext
+% \placeregister[index][collapse=no] \blank[2*big]
+% \placeregister[index][collapse=yes] \blank[2*big]
+% \placeregister[index][collapse=akk] \page
+% \dorecurse{10}{test 1:!\index{test} test \page}
+% \dorecurse{5} {test 2:\recurselevel \page}
+% \dorecurse{10}{test 3:!\index{test} test \page}
+% \dorecurse{5} {test 4:\recurselevel \page}
+% \dorecurse{1} {test 5:!\index{test} test \page}
+% \dorecurse{5} {test 6:\recurselevel \page}
+% \dorecurse{10}{test 7:!\index{test} test \page}
+% \dorecurse{5} {test 8:\recurselevel \page}
+% oeps \index{oeps}
+% xxxx \index{xxxx}
+% todo \index{todo}
+% \stoptext
+
+%D Character rendering (sections):
+
+\def\defaultregistercharacter#1%
+ {\doifsomething{#1}
+ {\doifnot{#1}\s!unknown
+ {\doifelse{\registerparameter\c!indicator}\v!yes
+ {\expandcheckedcsname{\??id:\c!indicator:}{\registerparameter\c!alternative}{a}{#1}}
+ {\noregistercharacter{#1}}}}}
+
+\def\noregistercharacter#1%
+ {\registerparameter\c!before
+ \goodbreak}
+
+% a = <before> <goodbreak> <character> <par> <after> <nobreak>
+
+\setvalue{\??id:\c!indicator:a}#1%
+ {\registerparameter\c!before
+ \vskip\lineheight\goodbreak\vskip-\lineheight
+ \begingroup\dosetregisterattributes\c!style\c!color
+ \registerparameter\c!command{\strut#1}%
+ \endgroup
+ \registerparameter\c!after
+ \par\nobreak}
+
+% b = <goodbreak> <before> <character> <after> <nobreak>
+
+\setvalue{\??id:\c!indicator:b}#1%
+ {\registerparameter\c!before
+ \begingroup\dosetregisterattributes\c!style\c!color
+ \registerparameter\c!command{\strut#1}%
+ \endgroup
+ \registerparameter\c!after
+ \nobreak}
+
+\setvalue{\??id:\c!indicator:A}#1{\getvalue{\??id:\c!indicator:a}{\WORD{#1}}}
+\setvalue{\??id:\c!indicator:B}#1{\getvalue{\??id:\c!indicator:b}{\WORD{#1}}}
+
+%D The following macros are the interface to the rendering. These are
+%D generated by \LUA. This might change.
+
+\def\startregisteroutput
+ {\endgraf
+ \begingroup
+ \forgetparindent
+ \forgetparskip}
+
+\def\stopregisteroutput
+ {\endgraf
+ \endgroup}
+
+\def\startregisterentries#1% depth
+ {\endgraf
+ \begingroup
+ \dosetregisterattributes\c!textstyle\c!textcolor
+ \advance\leftskip\numexpr#1-1\relax\dimexpr\registerparameter\c!distance\relax
+ \hangindent\registerparameter\c!distance\hangafter\plusone}
+
+\def\stopregisterentries
+ {\endgraf
+ \endgroup}
+
+\def\startregistersection#1% title
+ {\registercharacter{#1}\endgraf}
+
+\def\stopregistersection
+ {\endgraf}
+
+\newconditional\registerpagedone
+
+\def\startregisterpages
+ {\begingroup
+ \setfalse\registerpagedone
+ \dosetregisterattributes\c!pagestyle\c!pagecolor}
+
+\def\stopregisterpages
+ {\endgroup}
+
+\def\startregisterseewords
+ {\begingroup
+ \setfalse\registerpagedone
+ \dosetregisterattributes\c!pagestyle\c!pagecolor}
+
+\def\stopregisterseewords
+ {\endgroup}
+
+\def\registerpageseparator% todo: , configurable
+ {\ifconditional\registerpagedone
+ \registerpageseparatorsymbol
+ \else
+ \hskip\registerparameter\c!distance\relax
+ \settrue\registerpagedone
+ \fi}
+
+\def\registeronepage#1#2#3% content
+ {\registerpageseparator\registerparameter\c!pagecommand{\goto{#3}[internal(#1)]}}
+
+\def\registerpagerange#1#2#3#4#5#6% content, content todo: -- configurable
+ {\registerpageseparator\registerparameter\c!pagecommand{\goto{#3}[internal(#1)]}|--|\registerparameter\c!pagecommand{\goto{#6}[internal(#4)]}}
+
+\def\registeroneword#1#2#3% content
+ {\registerpageseparator\registerseeword{#3}}
+
+\def\defaultregisterentry #1{\registerparameter\c!textcommand{\limitedregisterentry{\registerparameter\c!deeptextcommand{#1}}}}
+\def\defaultregisterseeword#1{\labeltexts\v!see{#1}}
+
+\let\registerseeword \defaultregisterseeword
+\let\registerentry \defaultregisterentry
+\let\registercharacter\defaultregistercharacter
+
+%D A few specific rendering variants:
+
+% \def\doregisterpagelocation#1#2%
+% {\nextregisterpage
+% \hbox to 1em{\hss\doregisterpagehowto{#1}{#2}\hss}}
+
+% todo: \installregisterpagehandler
+
+\def\registerpagebuttonsymbol{\vrule\!!width1em\!!height1ex\!!depth\zeropoint\relax}
+
+\setvalue{\??id:\c!symbol :\c!n}{\def\registerpageseparatorsymbol{, }\let\registerpagenumberhandler\firstofoneargument}
+\setvalue{\??id:\c!symbol :\c!a}{\def\registerpageseparatorsymbol{, }\let\registerpagenumberhandler\firstofoneargument} % now done via conversion
+\setvalue{\??id:\c!symbol:\v!none}{\let\registerpageseparatorsymbol\empty\let\registerpagenumberhandler\gobbleoneargument}
+\setvalue{\??id:\c!symbol :1}{\let\registerpageseparatorsymbol\space\def\registerpagenumberhandler{\symbol[1]\gobbleoneargument}}
+\setvalue{\??id:\c!symbol :2}{\let\registerpageseparatorsymbol\space\def\registerpagenumberhandler{\registerpagebuttonsymbol\gobbleoneargument}}
+
+\def\setregisterpagerendering
+ {\edef\currentregisterpagesymbol{\registerparameter\c!symbol}%
+ \ifx\currentregisterpagesymbol\empty
+ \csname\??id:\c!symbol:\c!n\endcsname
+ \else\ifcsname\??id:\c!symbol:\currentregisterpagesymbol\endcsname
+ \csname\??id:\c!symbol:\currentregisterpagesymbol\endcsname
+ \else
+ \let\registerpageseparatorsymbol\space
+ \def\registerpagenumberhandle{\registerparameter\c!symbol\gobbleoneargument}%
+ \fi\fi}
+
+\appendtoks
+ \setregisterpagerendering
+\to \everyplaceregister
+
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+
+%D The following code will be reimplemented (not that hard) when it's needed
+%D again and/or when I'm bored.
+
+% \def\getalllistreferences#1#2%
+% {\gdefconvertexpanded\currentregisterentry{\getvalue{\??id#1\c!expansion}}{#2}%
+% \doifdefinedelse{\??id#1\??id\currentregisterentry}
+% {\edef\alllistreferences%
+% {\getvalue{\??id#1\??id\currentregisterentry}}%
+% \beforesplitstring\alllistreferences\at::\to\internallistreference
+% \aftersplitstring \alllistreferences\at::\to\alllistreferences}
+% {\let\alllistreferences\empty
+% \def\internallistreference{0}}}
+
+% \def\dosetlinkregister#1% is die page reference echt nodig?
+% {\setregisterpage{#1}%
+% \global\let\currentregisterentry\empty
+% \global\firstsubentrytrue % not needed
+% \global\firstsubsubentrytrue % not needed too
+% \setvalue{#1\s!entrya}##1{\dosetlinkregisterentrya{#1}{##1}}%
+% \setvalue{#1\s!entry }##1{\dosetpageregisterletter{#1}{##1}}}
+
+% \def\dosetlinkregisterentrya#1#2%
+% {\global\utilitydonetrue
+% \c!entryletter
+% \iflocation
+% \getalllistreferences{#1}{#2}%
+% % no \endgraf
+% \hangindent1em\noindent\c!entryreference
+% %
+% %\thisissomeinternal{\s!lin}{\internallistreference}%
+% %
+% \pagereference[-:\s!lin:\internallistreference]% -: added
+% %
+% \getcommacommandsize[\alllistreferences]%
+% \getfromcommacommand[\alllistreferences][1]%
+% \ifnum\commalistsize=1
+% \let\firstlistreference\empty
+% \let\midlistreference\commalistelement
+% \let\lastlistreference\empty
+% \else
+% \let\firstlistreference\commalistelement
+% \getfromcommacommand[\alllistreferences][\commalistsize]%
+% \let\lastlistreference\commalistelement
+% \ifnum\commalistsize=2
+% \let\midlistreference\empty
+% \else
+% \!!counta\commalistsize
+% \divide\!!counta 2
+% \getfromcommacommand[\alllistreferences][\!!counta]%
+% \let\midlistreference\commalistelement
+% \fi
+% \fi
+% % aangepast
+% \def\dodocommand[##1-##2]%
+% {\gotonextinternal{\s!ind}{##1}{##2}{\box0}}%
+% \doifelsevalue{\??id#1\c!interaction}\v!pagenumber
+% {\limitedregisterentry{#1}{#2}} % paginanummer
+% {{\setbox0\hbox{\limitedregisterentry{#1}{\begstrut#2}}%
+% \ifx\firstlistreference\empty % tekst,alles
+% \ifx\midlistreference\empty
+% \box0
+% \else
+% \expandafter\dodocommand\expandafter[\midlistreference]%
+% \fi
+% \else
+% \expandafter\dodocommand\expandafter[\firstlistreference]%
+% \fi}}%
+% \doifvalue{\??id#1\c!number}\v!yes
+% {\hskip\getvalue{\??id#1\c!distance}(\commalistsize)}%
+% \doifnotvalue{\??id#1\c!interaction}\v!text % paginanummer,alles
+% {\def\docommand##1##2%
+% {{\setbox0\hbox{\showlocation{\hbox to 1em{\hss\symbol[##2]\hss}}}%
+% \ifx##1\empty
+% % \hskip\wd0 % (optioneel maken)
+% \else
+% \expandafter\dodocommand\expandafter[##1]%
+% \fi}}%
+% \hskip\getvalue{\??id#1\c!distance}%
+% \docommand\firstlistreference\v!previous
+% \docommand\midlistreference\v!somewhere
+% \docommand\lastlistreference\v!next}%
+% % tot hier
+% \else
+% % no \endgraf
+% \noindent\c!entryreference
+% \limitedregisterentry{#1}{#2}%
+% \fi
+% \endgraf}
+
+% \def\dosetregister#1%
+% {\doifelsevalue{\??id#1\c!coupling}\v!yes
+% {\ifautoregisterhack
+% \dosetautoregister{#1}%
+% \else
+% \dosetlinkregister{#1}%
+% \fi}
+% {\dosetpageregister{#1}}}
+
+\def\dosetregister#1%
+ {\dosetpageregister{#1}}
+
+% \newcounter\internallistreference
+
+% \def\doloadregisterlinks#1%
+% {\setregisterpage{#1}%
+% \global\let\currentregisterentry\empty
+% \global\firstregisterpagetrue
+% \setvalue{#1\s!entrya}##1%
+% {\global\firstregisterpagetrue
+% \gdefconvertedargument\currentregisterentry{##1}% global nodig?
+% \doglobal\increment\internallistreference}%
+% \setvalue{#1\s!from}%
+% {\getvalue{#1\s!page}}%
+% \ifautoregisterhack
+% \setvalue{#1\s!page}##1##2##3##4%
+% {\doifreglevelelse[##3]
+% {\global\utilitydonetrue
+% \iffirstregisterpage
+% \@EA\xdef\csname\??id#1\??id\currentregisterentry\endcsname
+% {\internallistreference::##4}%
+% \else % catches errors in index
+% \ifcsname\??id#1\??id\currentregisterentry\endcsname
+% \@EA\xdef\csname\??id#1\??id\currentregisterentry\endcsname
+% {\csname\??id#1\??id\currentregisterentry\endcsname,##4}%
+% \fi
+% \fi}
+% {}}%
+% \else
+% \setvalue{#1\s!page}##1##2##3##4%
+% {\doifreglevelelse[##3]
+% {\global\utilitydonetrue
+% \iffirstregisterpage
+% \global\firstregisterpagefalse
+% \@EA\xdef\csname\??id#1\??id\currentregisterentry\endcsname
+% {\internallistreference::##2-##4}%
+% \else % catches errors in index
+% \ifcsname\??id#1\??id\currentregisterentry\endcsname
+% \@EA\xdef\csname\??id#1\??id\currentregisterentry\endcsname
+% {\csname\??id#1\??id\currentregisterentry\endcsname,##2-##4}%
+% \fi
+% \fi}
+% {}}%
+% \fi}
+
+% \def\docoupleregister[#1][#2]%
+% {\iflocation
+% \ifcase0\countervalue{autolink:#1}\relax % only once
+% \begingroup
+% \let\dosetregister\doloadregisterlinks
+% \def\currentregister{#1}%
+% \setupregister[#1][#2]%
+% \mkloadregister\currentregister\dobeforeplaceregister\doafterplaceregister
+% \endgroup
+% \ifautoregisterhack
+% \doinitializeautoregister{#1}%
+% \else
+% \doinitializelinkregister{#1}%
+% \fi
+% \fi
+% \fi}
+
+% \def\coupleregister
+% {\dodoubleempty\docoupleregister}
+
+% \def\dodocommandprolinrefAA[#1-#2]%
+% {\def\lastlistreference{#1-#2}}
+
+% \def\dodocommandprolinrefA[#1-#2]%
+% {\def\lastlistreference{#1-#2}%
+% \ifx\firstlistreference\empty
+% \let\firstlistreference\lastlistreference
+% \fi
+% \ifnum#1<\nextinternalreference\relax
+% \let\prevlistreference\lastlistreference
+% \else\ifnum#1>\nextinternalreference\relax
+% \let\nextlistreference\lastlistreference
+% \let\dodocommandprolinrefA\dodocommandprolinrefAA
+% \else
+% \let\selflistreference\lastlistreference
+% \fi\fi}
+
+% \def\docommandprolinrefA#1%
+% {\dodocommandprolinrefA[#1]}
+
+% \def\dodocommandprolinrefB[#1-#2]%
+% {\gotonextinternal{\s!ind}{#1}{#2}{\box0}}
+
+% \def\docommandprolinrefB#1#2#3%
+% {\bgroup
+% \ifx#2\empty
+% \doifvalue{\??id#1\c!unknownreference}\v!empty{\hskip1em}%
+% \else
+% \setbox0\hbox to 1em{\hss\showlocation{\symbol[#3]}\hss}%
+% \expandafter\dodocommandprolinrefB\expandafter[#2]%
+% \fi
+% \egroup}
+
+% \def\doprocesslinkregister[#1][#2]#3%
+% {\hbox
+% {\doprocesspageregister{}{#2}{}{#3}%
+% \let\firstlistreference\empty
+% \let\lastlistreference\empty
+% \let\selflistreference\empty
+% \let\prevlistreference\empty
+% \let\nextlistreference\empty
+% \getalllistreferences{#1}{#3}%
+% \ifx\alllistreferences\empty \else
+% \normalexpanded{\noexpand\rawprocesscommalist[\alllistreferences]}\docommandprolinrefA
+% \fi
+% \ifx\prevlistreference\empty
+% \let\prevlistreference\lastlistreference
+% \fi
+% \ifx\nextlistreference\empty
+% \let\nextlistreference\firstlistreference
+% \fi
+% \ifx\prevlistreference\selflistreference
+% \let\prevlistreference\empty
+% \let\nextlistreference\empty
+% \fi
+% \setalignmentswitch{\getvalue{\??id#1\c!location}}%
+% \ifcase\alignmentswitch
+% % links
+% \docommandprolinrefB{#1}\prevlistreference\v!previous
+% \docommandprolinrefB{#1}\nextlistreference\v!next
+% \or
+% % midden
+% \docommandprolinrefB{#1}\prevlistreference\v!previous
+% \or
+% % rechts
+% \fi
+% \doifreferencefoundelse{\s!lin:\internallistreference}
+% {\gotosomeinternal
+% \s!lin \internallistreference \currentrealreference
+% {\showlocation{\limitedregisterentry{#1}{#3}}}}
+% {\hbox{\limitedregisterentry{#1}{#3}}}%
+% \ifcase\alignmentswitch
+% % links
+% \or
+% % midden
+% \docommandprolinrefB{#1}\nextlistreference\v!next
+% \or
+% % rechts
+% \docommandprolinrefB{#1}\prevlistreference\v!previous
+% \docommandprolinrefB{#1}\nextlistreference\v!next
+% \fi}}
+
+% \def\doprocesslinkedregister[#1][#2]#3% page auto link
+% {\bgroup
+% \chardef\registerpagestatus\plusone
+% \def\currentregister{#1}%
+% \iflocation % \next is not needed
+% \ifautoregisterhack
+% \def\next{\doprocessautoregister[#1][#2]}%
+% \else
+% \def\next{\doprocesslinkregister[#1][#2]}%
+% \fi
+% \else
+% \def\next{\doprocesspageregister{}{#2}{}}%
+% \fi
+% \next{#3}%
+% \egroup}
+
+% \def\dodolinkedregister[#1][#2]#3% page auto link
+% {\doflushatpar{\doprocesslinkedregister[#1][#2]{#3}}}
+
+% \def\dolinkedregister#1%
+% {\dodoubleempty\dodolinkedregister[#1]}
+
+% \def\dosetautoregister#1%
+% {\makecounter{autolink:#1}%
+% \setregisterpage{#1}%
+% \global\let\currentregisterentry\empty
+% \global\firstsubentrytrue % not needed
+% \global\firstsubsubentrytrue % not needed too
+% \setvalue{#1\s!entrya}##1{\dosetautoregisterentrya{#1}{##1}}%
+% \setvalue{#1\s!entry }##1{\dosetpageregisterletter{#1}{##1}}}
+
+% \def\dosetautoregisterentrya#1#2%
+% {\global\utilitydonetrue
+% \c!entryletter
+% \iflocation
+% \getalllistreferences{#1}{#2}%
+% \endgraf\hangindent1em\noindent\c!entryreference
+% \pagereference[-:\s!lin:\internallistreference]%
+% \pluscounter{autolink:#1}%
+% \bgroup
+% %\setupinteraction[\c!color=,\c!contrastcolor=,\c!style=]% kan sneller
+% \resetinteractionparameter\c!color
+% \resetinteractionparameter\c!contrastcolor
+% \resetinteractionparameter\c!style
+% \gotobox
+% {\limitedregisterentry{#1}{\begstrut#2}}%
+% [JS(SetRegisterEntry{\v!register,\countervalue{autolink:#1},#2,{\alllistreferences}})]%
+% \egroup
+% \else
+% \endgraf\noindent\c!entryreference
+% \limitedregisterentry{#1}{#2}%
+% \fi}
+
+% \def\doprocessautoregister[#1][#2]#3%
+% {\hbox
+% {\doprocesspageregister{}{#2}{}{#3}%
+% \doifreferencefoundelse{\s!lin:\internallistreference}
+% {\gotosomeinternal \s!lin
+% {\internallistreference}{\currentrealreference}
+% {\showlocation{\limitedregisterentry{#1}{#3}}}}
+% {\hbox{\limitedregisterentry{#1}{#3}}}}}
+
+% \appendmacro aan openpaginaactie (in shipout)
+
+%D The first implementation used one main field with clones.
+%D In a 2500 page document this resulted in a rather (anoying)
+%D long start||up time. This \quote {every page its own field}
+%D solution, combined with a \quote {page open action}, works
+%D much faster, but is conceptually pretty weak.
+
+% \def\complexregisterfield[#1]%
+% {\definefield[#1:\realfolio][line][\v!register]%
+% \field[#1:\realfolio]}
+
+% \def\simpleregisterfield
+% {\complexregisterfield[\v!register]}
+
+% \definecomplexorsimple\registerfield
+
+% \appendtoks
+% % for now
+% \setupfield
+% [\v!register]
+% [\c!width=10em,
+% \c!height=3ex,
+% \c!align=\v!middle,
+% \c!option=\v!readonly,
+% \c!location=\v!low]
+% \to \everydump
+
+% \def\doinitializeautoregister#1%
+% {\useJSscripts[reg]%
+% \useJSpreamblenow{LinkedRegisters}%
+% \setupinteraction[\c!openpageaction=JS(UpdateRegisterField{\v!register})]%
+% \definereference[\v!reset\v!register][JS(ResetRegisterEntry{\v!register})]%
+% \definereference[\v!first\v!register][JS(GotoFirstRegisterEntry{\v!register})]%
+% \definereference[\v!previous\v!register][JS(GotoPreviousRegisterEntry{\v!register})]%
+% \definereference[\v!next\v!register][JS(GotoNextRegisterEntry{\v!register})]%
+% \definereference[\v!last\v!register][JS(GotoLastRegisterEntry{\v!register})]}
+
+% \def\doinitializelinkregister#1%
+% {}
+
+% todo ruwe register
+
+%D Default index:
+
+\defineregister
+ [\v!index]
+ [\v!indices]
+
+% \setupregister[index][koppeling=ja]
+%
+% \stelveldenin
+% [register][achtergrond=raster,kader=uit]
+%
+% \stelvoettekstenin
+% [{\field[index]}]
+%
+% \stelhoofdtekstenin
+% [{\naar {first}[eersteindex]\quad
+% \naar{previous}[vorigeindex]\quad
+% \naar {next}[volgendeindex]\quad
+% \naar {last}[laatsteindex]\quad\quad
+% \naar {index}[index]}]
+%
+% \starttekst
+%
+% oeps~~~\gekoppeldeindex{oeps} \blanko
+% flop~~~\gekoppeldeindex{flop} \blanko
+% test~~~\gekoppeldeindex{test} \pagina
+% flop~~~\gekoppeldeindex{flop} \blanko
+% test~~~\gekoppeldeindex{test} \pagina
+% oeps~~~\gekoppeldeindex{oeps} \blanko
+% test~~~\gekoppeldeindex{test} \pagina
+% flop~~~\gekoppeldeindex{flop} \blanko
+% oeps~~~\gekoppeldeindex{oeps} \pagina
+%
+% \volledigeindex
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/strc-ren.mkiv b/Master/texmf-dist/tex/context/base/strc-ren.mkiv
new file mode 100644
index 00000000000..8890ec8e6c7
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/strc-ren.mkiv
@@ -0,0 +1,443 @@
+%D \module
+%D [ file=strc-ren,
+%D version=2008.10.20,
+%D title=\CONTEXT\ Structure Macros,
+%D subtitle=Section Rendering,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA-ADE / Hans Hagen]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Structure Macros / Section Rendering}
+
+\unprotect
+
+\chardef\headtimingmode=0
+
+% \chardef\headtimingmode=1 % 0 also works ok now too
+%
+% Martin Kolarik's problem:
+%
+% \setuphead[section][command=\doTitle]
+% \def\doTitle#1#2{\ruledvbox{\forgetall \hsize=4cm \ruledhbox{\ruledvtop{#1}\ruledvtop{#2}}}}
+% \section{test test test test test test test test test test test test test test test test test}
+
+\newevery \everyheadstart \relax
+
+\def\placeheadmargintexts
+ {\the\everyheadstart
+ \doif{\structureheadparameter\c!margintext}\v!yes\placemargincontent}
+
+\def\doplaceheadtextcomponent#1#2%
+ {\begingroup
+ \dosetstructureheadattributes\c!style\c!color
+ \dosetstructureheadattributes\c!textstyle\c!textcolor
+ \dontconvertfont
+ \ifconditional\structureheadisdisplay % \ifdisplaysectionhead
+ \setupinterlinespace
+ \else
+ \setupspacing
+ \fi
+ % \ifcase\headtimingmode#1\fi % can introduce cr
+ \structureheadparameter\c!commandbefore
+ \placeheadmargintexts
+ \ifconditional\structureheadisdisplay % \ifdisplaysectionhead
+ \structureheadparameter\c!textcommand% struts can be nilled with \setnostrut
+ {\setstrut
+ \begstrut
+ \ifcase\headtimingmode\hbox{#1}\fi
+ \executeifdefined{\??nh\currentstructurehead\c!deeptextcommand}\firstofoneargument{#2}%
+ \endstrut}% \hbox prevents break
+ \xdef\localheadheight {\the\strutht}%
+ \xdef\localheaddepth {\the\strutdp}%
+ \xdef\localheadlineheight{\the\lineheight}%
+ % == \globallet\localheaddepth\strutdepth
+ \else
+ \ifcase\headtimingmode#1\fi
+ \structureheadparameter\c!textcommand
+ {\executeifdefined{\??nh\currentstructurehead\c!deeptextcommand}\firstofoneargument{#2}}%
+ \fi
+ \structureheadparameter\c!commandafter
+ \ifconditional\structureheadisdisplay % \ifdisplaysectionhead
+ \endgraf
+ \fi
+ \endgroup}
+
+\def\doplaceheadnumbercomponent#1#2%
+ {\begingroup
+ \dosetstructureheadattributes\c!style\c!color
+ \dosetstructureheadattributes\c!numberstyle\c!numbercolor
+ % \getvalue{\??ko\currentstructurehead\c!commandbefore}% strange, why here? moved 21/11/2005
+ \placeheadmargintexts
+ \ifconditional\structureheadisdisplay % \ifdisplaysectionhead
+ % can be nilled with \setnostrut
+ \structureheadparameter\c!numbercommand
+ {\setstrut
+ \begstrut
+ \executeifdefined{\??nh\currentstructurehead\c!deepnumbercommand}\firstofoneargument{#2}%
+ \endstrut}%
+ \else
+ \structureheadparameter\c!numbercommand
+ {\executeifdefined{\??nh\currentstructurehead\c!deepnumbercommand}\firstofoneargument{#2}}%
+ \fi
+ \endgroup}
+
+% \newif\ifheadnumbercontent
+% \newif\ifemptyhead
+% \newif\ifdisplaysectionhead
+
+\def\structureheadattribute{\iflocation attr \destinationattribute \currentstructureattribute\fi}
+
+\def\doplacestructureheadtext#1#2#3% nodes, text, endstuff
+ {\beginheadplacement
+% \postponenotes
+ \doresettructureheadnumbercontent
+ \ifconditional\structureheadleaveempty
+ \setbox\sectionheadbox\ifvertical\vbox\else\hbox\fi \structureheadattribute to \zeropoint {#1}%
+ \makestrutofbox\sectionheadbox
+ \else
+ \setbox\sectionheadbox\ifvertical\vbox\else\hbox\fi \structureheadattribute
+ {\doresettructureheadnumbercontent
+ \ifcase\headtimingmode\or#1\fi % outerside font determines distance
+ \dosetfontattribute{\??nh\currentstructurehead}\c!style % but we don't want color to influence user command, todo: get the if-else out of it
+ \structureheadparameter\c!command{}{\doplaceheadtextcomponent{#1}{#2}}}%
+ \fi
+ \endheadplacement{#3}}
+
+\def\doplacestructureheadnumbertext#1#2#3#4% nodes number text nodes
+ {\beginheadplacement
+% \postponenotes
+ \doiftextelse{#2}\dosettructureheadnumbercontent\doresettructureheadnumbercontent
+ \ifconditional\structureheadleaveempty
+ \setbox\sectionheadbox\ifvertical\vbox\else\hbox\fi \structureheadattribute to \zeropoint{#1}%
+ \makestrutofbox\sectionheadbox
+ \else % = needed
+ \setbox\sectionheadbox\ifvertical\vbox\else\hbox\fi \structureheadattribute
+ {\ifcase\headtimingmode\or#1\fi
+ \dosetfontattribute{\??nh\currentstructurehead}\c!style
+ \structureheadparameter\c!command{\doplaceheadnumbercomponent{#1}{#2}}{\doplaceheadtextcomponent{#1}{#3}}}%
+ \fi
+ \endheadplacement{#4}}
+
+\def\placestructureheadnumbertext
+ {\doplacestructureheadnumbertext\empty\getstructureheadnumber\getstructureheadtitle\getstructureheadsyncs}
+
+\def\placestructureheadtext
+ {\doplacestructureheadtext\empty\getstructureheadtitle\getstructureheadsyncs}
+
+\def\placestructureheadnothing
+ {\hbox \structureheadattribute {\getstructureheadsyncs}}
+
+%D \starttyping
+%D \def\StretchedBox#1%
+%D {\framed
+%D [frame=off,offset=.5em,align=middle,width=broad]
+%D {\sc\def\stretchedspaceamount{.3em}\stretchednormalcase{#1}}}
+%D
+%D \definehead[MySubject][subject]
+%D \setuphead [MySubject][deeptextcommand=\StretchedBox]
+%D
+%D \MySubject{feeling stretched feeling stretched feeling stretched feeling stretched}
+%D \stoptyping
+
+\let\headlastlinewidth\!!zeropoint
+
+\def\localheadheight {\strutht}
+\def\localheaddepth {\strutdp}
+\def\localheadlineheight{\lineheight}
+
+\def\dolocalheadsetup % koppeling met standaard kopcommando / engels
+ {\forgetall % traag dus ...
+ \doifsomething{\structureheadparameter\c!align } {\normalexpanded{\noexpand\setupalign [\structureheadparameter\c!align ]}}%
+ \doifsomething{\structureheadparameter\c!tolerance} {\normalexpanded{\noexpand\setuptolerance[\structureheadparameter\c!tolerance]}}%
+ \doif {\structureheadparameter\c!strut }\v!no{\setnostrut}% new
+ \def\\{\crlf\strut\ignorespaces}}
+
+\def\beginheadplacement
+ {\bgroup
+ \setsystemmode\currentstructurehead
+ \ifgridsnapping\iftracegridsnapping\showstruts\fi\fi
+ \xdef\localheadheight {\the\strutht}%
+ \xdef\localheaddepth {\the\strutdp}%
+ \xdef\localheadlineheight{\the\lineheight}%
+ % == \globallet\localheaddepth\strutdp
+ \everypar\emptytoks % needed indeed
+ \noindent % ipv \whitespace elders, na \forgetall !
+ \bgroup
+ \doifinsetelse{\structureheadparameter\c!aligntitle}{\v!yes,\v!float}% new
+ {\skip0 1\leftskip
+ \skip2 1\rightskip
+ \xdef\localheadskip{\the\skip0}%
+ \forgetall
+ \leftskip\skip0
+ \rightskip\skip2
+ \setlocalhsize\hsize\localhsize
+ \forgetbothskips}
+ {\globallet\localheadskip\!!zeropoint
+ \forgetall}%
+ \dontcomplain
+ \postponenotes
+ \iflocation
+ \ifconditional\structureheadisdisplay % \ifdisplaysectionhead
+ \else
+ \noninterferingmarks
+ \fi
+ \fi
+ \resetinteractionparameter\c!style
+ \resetinteractionparameter\c!color
+ \resetinteractionparameter\c!contrastcolor
+ %\strictouterreferencestrue % tzt instelling
+ \let\localheadsetup\dolocalheadsetup}
+
+% \setuphead[chapter] [style=\bfd,after=,hang=line] % fit broad 2
+% \setuphead[section] [style=\bfc,after=,hang=line]
+% \setuphead[subsection] [style=\bfb,after=,hang=line]
+% \setuphead[subsubsection] [style=\bfa,after=,hang=line]
+% \setuphead[subsubsubsection][style=\bf ,after=,hang=line]
+%
+% \chapter {Test} \input tufte \page
+% \section {Test} \input tufte \page
+% \subsection {Test} \input tufte \page
+% \subsubsection {Test} \input tufte \page
+% \subsubsubsection{Test} \input tufte \page
+%
+% \chapter {Test\\Test} \input tufte \page
+% \section {Test\\Test} \input tufte \page
+% \subsection {Test\\Test} \input tufte \page
+% \subsubsection {Test\\Test} \input tufte \page
+% \subsubsubsection{Test\\Test} \input tufte \page
+
+\def\hangheadplacement
+ {\scratchdimen\localheadlineheight
+ \bgroup
+ \openlineheight\scratchdimen
+ \scratchdimen\htdp0%
+ \getnoflines\scratchdimen
+ \advance\noflines\minusone
+ \normalexpanded{\egroup\noflines\the\noflines}% brrr
+ \setbox0\hbox{\lower\noflines\scratchdimen\box0}%
+ \scratchdimen\dimexpr\htdp0-\localheadheight+\strutdp\relax
+ \ht0 \strutht
+ \dp0 \strutdp
+ \edef\localheaddepth{\the\strutdp}}
+
+\newconditional\continuoussectionhead % oeps, \newif\ifcontinuoushead got lost
+\newbox\sectionheadbox
+
+\def\endheadplacement#1%
+ {\noflines\zerocount
+ \ifconditional\structureheadisdisplay % \ifdisplaysectionhead
+ % new (todo tight == one following line up)
+ \processaction
+ [\structureheadparameter\c!hang]
+ [ \v!line=>\hangheadplacement\noflines\zerocount,
+ \v!broad=>\hangheadplacement\getnoflines\scratchdimen,
+ \v!fit=>\hangheadplacement\getrawnoflines\scratchdimen,
+ \v!none=>\noflines\zerocount,
+ \v!default=>\noflines\zerocount,
+ \v!unknown=>\hangheadplacement\noflines\numexpr0\commalistelement-1\relax]%
+ % so far
+ \let\headlastlinewidth\!!zeropoint
+ \snaptogrid[\structureheadparameter\c!grid]\hbox
+ {\hskip\localheadskip
+ \hskip\structureheadparameter\c!margin\relax
+ \box\sectionheadbox}%
+ \flushnotes % new, not really needed
+ \endgraf
+ \ifvmode
+ \ifnum\noflines>\zerocount
+ \dorecurse\noflines{\nointerlineskip\dosomebreak\nobreak\strut\endgraf}% to be checked
+ \fi
+ \nointerlineskip
+ \dosomebreak\nobreak
+ \fi
+ #1%
+ \else
+ \strut
+ \flushnotes % new, here since we're in par mode
+ \unhbox\sectionheadbox
+ \globallet\headlastlinewidth\!!zeropoint
+ #1%
+ \hskip\numberheaddistance\!!plus\numberheaddistance\!!minus.25\dimexpr\numberheaddistance\relax
+ \hskip\continuousstructureheadsignal\ignorespaces
+ \fi
+ \ifconditional\structureheadisdisplay % \ifdisplaysectionhead
+ \ifvmode
+ \ifgridsnapping % important, font related depth, see comment
+ \prevdepth\strutdp
+ \else
+ \prevdepth\localheaddepth
+ \fi
+ \fi
+ \fi
+ \egroup
+ \egroup
+ \ifconditional\structureheadisdisplay % \ifdisplaysectionhead
+ \checknextindentation[\structureheadparameter\c!indentnext]%
+ \else
+ \nonoindentation % recently added, was a bug
+ \fi}
+
+% nice testcase
+%
+% \setupheads[aligntitle=yes]
+%
+% \startnarrower
+% \subject{\dorecurse{100}{x }}
+% \section{\dorecurse{100}{x }}
+% \input tufte \par
+% \setupheads[alternative=inmargin]
+% \subject{\dorecurse{100}{x }}
+% \section{\dorecurse{100}{x }}
+% \input tufte \par
+% \stopnarrower
+
+\let\numberheadalternative\v!normal
+
+\def\defineheadplacement
+ {\dodoubleargument\dodefineheadplacement}
+
+\def\dodefineheadplacement[#1][#2]% #3#4
+ {\setvalue{\??ns:#1}{#2}%
+ \setvalue{\??ns::#1}}
+
+% \def\normalplacehead
+% {\executeifdefined
+% {\??ns::\numberheadalternative}
+% {\getvalue{\??ns::\v!normal}}}
+
+\def\normalplacehead
+ {\csname\??ns::\ifcsname\??ns::\numberheadalternative\endcsname\numberheadalternative\else\v!normal\fi\endcsname}
+
+\defineheadplacement[\v!paragraph][\v!vertical]#1#2%
+ {\vbox
+ {\localheadsetup
+ \begstrut
+ \ifconditional\structureheadshownumber % \ifheadnumbercontent
+ #1\hskip\numberheaddistance
+ \fi
+ #2}}
+
+% \defineheadplacement[\v!normal][\v!vertical]#1#2%
+% {\ifconditional\structureheadshownumber % \ifheadnumbercontent
+% \setbox0\hbox{{#1}\hskip\numberheaddistance}%
+% \vbox
+% {\localheadsetup
+% \hangindent 1\wd0
+% \hangafter 1
+% \noindent
+% \unhbox0 % don't use \strut's here!
+% #2}%
+% \else
+% \vbox
+% {\localheadsetup\noindent#2}%
+% \fi}
+%
+% enhanced version:
+
+% \setuphead
+% [chapter]
+% [numberwidth=2cm,hang=line,after={\blank[3*line]}]
+%
+% \chapter{Oeps oeps oeps} \input tufte \section{Oeps}
+% \chapter{Oeps oeps oeps} \section{Oeps} \input tufte
+
+\defineheadplacement[\v!normal][\v!vertical]#1#2%
+ {\vbox
+ {\localheadsetup
+ \edef\headwidth {\structureheadparameter\c!width }%
+ \edef\headnumberwidth{\structureheadparameter\c!numberwidth}%
+ \edef\headtextwidth {\structureheadparameter\c!textwidth }%
+ \ifconditional\structureheadshownumber % \ifheadnumbercontent
+ \ifx\headwidth\empty
+ \else
+ \ifx\headnumberwidth\empty
+ \ifx\headtextwidth\empty\else
+ \edef\headnumberwidth{\the\dimexpr\headwidth-\headtextwidth\relax}%
+ \fi
+ \else
+ \ifx\headtextwidth\empty
+ \edef\headtextwidth{\the\dimexpr\headwidth-\headnumberwidth\relax}%
+ \fi
+ \fi
+ \hsize\headwidth
+ \fi
+ \ifx\headnumberwidth\empty\else
+ \let\numberheaddistance\!!zeropoint
+ \fi
+ \setbox\scratchbox\hbox \ifx\headnumberwidth\empty\else to \headnumberwidth\fi{{#1}}%
+ \scratchdimen\dimexpr\wd\scratchbox+\numberheaddistance\relax
+ \ifx\headtextwidth\empty\else
+ \hsize\dimexpr\scratchdimen+\headparameter\c!textwidth\relax
+ \fi
+ \hangindent\scratchdimen
+ \hangafter \plusone
+ \noindent
+ \box\scratchbox\hskip\numberheaddistance
+ \else
+ \ifx\headtextwidth\empty
+ \ifx\headwidth\empty
+ \else
+ \hsize\headwidth
+ \fi
+ \else
+ \hsize\headtextwidth
+ \fi
+ \noindent
+ \fi
+ #2}}
+
+\def\placeheadmargin#1#2%
+ {\vbox
+ {\localheadsetup
+ \begstrut % use one \strut here!
+ \dontleavehmode % in case there is no strut, else side effects with llap
+ \ifconditional\structureheadshownumber % \ifheadnumbercontent
+ \llap{\hbox to 5em{\hfill{#1}\hskip\localheadskip\hskip\leftmargindistance}}% introduces whitespace
+ % maybe better:
+ % \inleftmargin{\hbox{\hss{#1}\hskip\localheadskip}}%
+ \fi
+ {#2}}}
+
+\defineheadplacement[\v!inmargin][\v!vertical]#1#2{\placeheadmargin{#1}{#2}}
+\defineheadplacement[\v!margin] [\v!vertical]#1#2{\placeheadmargin{#1}{#2}}
+
+\defineheadplacement[\v!middle][\v!vertical]#1#2%
+ {\vbox
+ {\localheadsetup
+ \veryraggedcenter
+ \let\\\endgraf
+ \let\crlf\endgraf
+ \ifconditional\structureheadshownumber % \ifheadnumbercontent
+ \strut#1\par
+ \fi
+ \begstrut#2}}
+
+\defineheadplacement[\v!text][\v!horizontal]#1#2%
+ {\bgroup
+ \localheadsetup % no stretch in distance
+ \ifconditional\structureheadshownumber % \ifheadnumbercontent
+ {#1}\kern\numberheaddistance
+ \fi
+ {\begstrut#2}%
+ \egroup}
+
+\def\placeheadlohi#1#2#3%
+ {\ifconditional\structureheadshownumber % \ifheadnumbercontent
+ \setbox0\hbox{#2}
+ \setbox2=#1{\localheadsetup\advance\hsize-\wd0\relax#3}%
+ \hbox{\box0\hskip\numberheaddistance\box2}%
+ \else
+ #1{\localheadsetup\noindent#3}%
+ \fi}
+
+% onder/boven lijnt het nummer op de onderste/bovenste regel
+% uit van een meerregelige kop
+
+\defineheadplacement[\v!bottom][\v!vertical]#1#2{\placeheadlohi\vbox{#1}{#2}}
+\defineheadplacement[\v!top] [\v!vertical]#1#2{\placeheadlohi\vtop{#1}{#2}}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/strc-sbe.mkiv b/Master/texmf-dist/tex/context/base/strc-sbe.mkiv
new file mode 100644
index 00000000000..7db3cedb0dd
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/strc-sbe.mkiv
@@ -0,0 +1,140 @@
+%D \module
+%D [ file=strc-sbe,
+%D version=2008.10.20,
+%D title=\CONTEXT\ Structure Macros,
+%D subtitle=Section Block Environments,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA-ADE / Hans Hagen]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Structure Macros / Section Block Environments}
+
+\unprotect
+
+% \def\ChapterEntry#1#2#3%
+% {chapter : \hbox to \hsize{\strut\bf#2\hss#3}\endgraf\placelist[section]}
+%
+% \startfrontmatter % optional
+% \placelist[chapter][alternative=command,command=\ChapterEntry,criterium=text] \page
+% \stopfrontmatter % optional
+%
+% \startbodymatter % optional
+% \chapter{first} \section{one} test \section{two} test \page
+% \chapter{second} \section{alpha} test \section{beta} test \page
+% \stopbodymatter % optional
+
+\definesystemvariable {nb}
+
+\def\v!structureblockenvironment{structureblockenvironment}
+
+\def\definestructureblock{\dotripleargument\dodefinestructureblock}
+\def\setupstructureblock {\dodoubleargument\dosetupstructureblock}
+\def\setstructureblock {\dosingleargument\dosetstructureblock}
+
+% \def\structureblockparameter#1{\executeifdefined{\??nb\currentstructureblock#1}\empty}
+
+\def\structureblockparameter#1%
+ {\csname
+ \ifcsname\??nb\currentstructureblock#1\endcsname\??nb\currentstructureblock#1\else\s!empty\fi
+ \endcsname}
+
+\newtoks \everybeforestructureblock
+\newtoks \everyafterstructureblock
+
+\def\dodefinestructureblock[#1][#2][#3]% singular plural settings
+ {\getparameters
+ [\??nb#1]
+ [\c!number=\v!yes,
+ \c!page=\v!right, % anders worden marks te vroeg gereset !
+ #3]%
+ \expandafter\newif\csname if#2\endcsname % better a mode
+ \setstructureblockenvironment{#1}\empty
+ \setvalue {\e!start#2}{\startstructureblock[#1]}%
+ \setvalue {\e!stop #2}{\stopstructureblock}}
+
+\appendtoks
+ \doifsomething{\structureblockparameter\c!page}{\page[\structureblockparameter\c!page]}%
+% TODO \resetsectionmarks\zerosection
+ \getstructureblockenvironment\currentstructureblock
+ \structureblockparameter\c!before % don't move
+\to \everybeforestructureblock
+
+\appendtoks
+ \structureblockparameter\c!after % don't move
+ \doifsomething{\structureblockparameter\c!page}{\page[\structureblockparameter\c!page]}%
+% TODO \resetsectionmarks\zerosection
+\to \everyafterstructureblock
+
+\def\dosetupstructureblock[#1]%
+ {\getparameters[\??nb#1]}% [#2]
+
+\def\dosetstructureblock[#1]% used to set the default
+ {\edef\currentstructureblock{\ctxlua{structure.sections.setblock("#1")}}}
+
+\let\currentstructureblock\s!unknown
+
+\def\startstructureblock[#1]%
+ {\begingroup
+ \edef\currentstructureblock{\ctxlua{structure.sections.pushblock("#1")}}%
+ \csname #1true\endcsname % for old times sake
+ \setsystemmode\currentstructureblock
+ \the\everybeforestructureblock\relax
+ \showmessage\m!structures1\currentstructureblock}
+
+\def\stopstructureblock
+ {\showmessage\m!structures2\currentstructureblock
+ \the\everyafterstructureblock\relax
+ \edef\currentstructureblock{\ctxlua{structure.sections.popblock()}}%
+ \endgroup}
+
+\long\def\setstructureblockenvironment#1#2%
+ {\long\setvalue{\??nb\s!do#1}{\do{#2}}}
+
+\def\getstructureblockenvironment#1%
+ {\let\do\firstofoneargument
+ %\structureblockparameter{\s!do#1}}
+ \csname\??nb\s!do#1\endcsname}
+
+%D \starttyping
+%D \startsectionblockenvironment[frontpart]
+%D \setuppagenumbering[conversion=romannumerals]
+%D \stopsectionblockenvironment
+%D
+%D \startsectionblockenvironment[bodypart]
+%D \setuppagenumber[number=1]
+%D \stopsectionblockenvironment
+%D
+%D \startsectionblockenvironment[frontpart]
+%D \setuppagenumbering[conversion=character]
+%D \stopsectionblockenvironment
+%D
+%D \starttext
+%D \startfrontmatter \chapter{test} \stopfrontmatter
+%D \startbodymatter \chapter{test} \stopbodymatter
+%D \startappendices \chapter{test} \stopappendices
+%D \stoptext
+%D \stoptyping
+
+\setvalue{\e!start\v!structureblockenvironment}%
+ {\dosingleargument\dostartstructureblockenvironment}
+
+\def\dostartstructureblockenvironment[#1]% evt \pushendofline \popendofline
+ {\long\def\do##1##2{\setstructureblockenvironment{#1}{##1##2}}%
+ %\grabuntil{\e!stop\v!structureblockenvironment}{\structureblockparameter{\s!do#1}}}
+ \grabuntil{\e!stop\v!structureblockenvironment}{\csname\??nb\s!do#1\endcsname}}
+
+% this will become: (we ran in parallel for a while during transition)
+
+\setvalue{\e!start\v!sectionblockenvironment}%
+ {\dosingleargument\dostartsectionblockenvironment}
+
+\def\dostartsectionblockenvironment[#1]% evt \pushendofline \popendofline
+ {\long\def\do##1##2{\setstructureblockenvironment{#1}{##1##2}}%
+ %\grabuntil{\e!stop\v!sectionblockenvironment}{\structureblockparameter{\s!do#1}}}
+ \grabuntil{\e!stop\v!sectionblockenvironment}{\csname\??nb\s!do#1\endcsname}}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-sec.tex b/Master/texmf-dist/tex/context/base/strc-sec.mkii
index e76dfd5e649..0698ef93c06 100644
--- a/Master/texmf-dist/tex/context/base/core-sec.tex
+++ b/Master/texmf-dist/tex/context/base/strc-sec.mkii
@@ -1,7 +1,7 @@
%D \module
-%D [ file=core-sec,
+%D [ file=strc-sec,
%D version=1997.03.31,
-%D title=\CONTEXT\ Core Macros,
+%D title=\CONTEXT\ Structure Macros,
%D subtitle=Sectioning,
%D author=Hans Hagen,
%D date=\currentdate,
@@ -23,55 +23,7 @@
% in manual (zie prikkels) : tussen=\blanko is enige hook om
% met kop-in-hoofd een spatiering af te dwingen
-\writestatus{loading}{Context Core Macros / Sectioning}
-
-\startmessages dutch library: structures
- title: structuur
- 1: begin van sectieblok --
- 2: eind van sectieblok --
-\stopmessages
-
-\startmessages english library: structures
- title: structure
- 1: begin of sectionblock --
- 2: end of sectionblock --
-\stopmessages
-
-\startmessages german library: structures
- title: struktur
- 1: Begin des Abschnittsblocks --
- 2: Ende des Abschnittsblocks --
-\stopmessages
-
-\startmessages czech library: structures
- title: struktury
- 1: zacatek oddilu (sekce) --
- 2: konec oddilu (sekce) --
-\stopmessages
-
-\startmessages italian library: structures
- title: struttura
- 1: inizio del blocco (sezione) --
- 2: fine del blocco (sezione) --
-\stopmessages
-
-\startmessages norwegian library: structures
- title: struktur
- 1: starten av blokk -- (seksjon)
- 2: slutten av blokk -- (seksjon)
-\stopmessages
-
-\startmessages romanian library: structures
- title: structuri
- 1: inceput de bloc sectiune --
- 2: sfarsit de bloc sectiune --
-\stopmessages
-
-\startmessages french library: structures
- title: structure
- 1: début de blocsection --
- 2: fin de blocsection --
-\stopmessages
+\writestatus{loading}{ConTeXt Structure Macros / Sectioning}
\unprotect
@@ -312,14 +264,6 @@
\def\sectionnumberonly[#1]%
{\makesectionnumber[#1]%
\composedsectionnumber}
-
-\def\currentnumber[#1]% kan tekst hier weg ?
- {\dotextprefix{\getvalue{\@@thenumber{#1}\c!text}}\sectionnumberonly[#1]}
-
-\def\nextnumber[#1][#2][#3]%
- {\incrementnumber[#1]%
- \currentnumber[#1]%
- \rawreference{#2}{#3}{\composedsectionnumber}}
% sectioning
@@ -395,7 +339,7 @@
{\def\firstsection{#1}%
\setevalue{\??se#1\c!before}{\v!text}%
\setevalue{\??se\v!text\c!after}{#1}}
- {\setevalue{\??se\commalistelement\c!after}{#1}%
+ {\setevalue{\??se\commalistelement\c!after}{#1}% commalistelement ?
\setevalue{\??se#1\c!before}{\lastsection}%
\setevalue{\??se\lastsection\c!after}{#1}}%
\advance\nofsections \plusone
@@ -1109,7 +1053,7 @@
\def\dohandlepagebreakAA#1%
{\ifnum\lastpenalty>0
- \global\paginageblokkeerdtrue
+ \global\pagebreakdisabledtrue
\fi}
% \setuphead[section][aligntitle=float] % permits title next to sidefloat
@@ -1121,8 +1065,8 @@
% \getvalue{\??ko#1\c!before}%
% % \whitespace vervangen door \noindent elders
% \relax
-% \ifpaginageblokkeerd
-% \global\paginageblokkeerdfalse
+% \ifpagebreakdisabled
+% \global\pagebreakdisabledfalse
% \else
% \!!countb\getvalue{\??se\@@sectie\c!level}\relax
% \ifnum\!!countb>\@@kolevel\relax
@@ -1144,8 +1088,8 @@
\getvalue{\??ko#1\c!before}%
% \whitespace vervangen door \noindent elders
\relax
- \ifpaginageblokkeerd
- \global\paginageblokkeerdfalse
+ \ifpagebreakdisabled
+ \global\pagebreakdisabledfalse
\else
\ifcase\somebreakmethod
% 0 = nothing
@@ -1249,7 +1193,6 @@
\newif\ifemptyhead
\newif\ifwritetolist
\newif\ifheadnumber
-\newif\ifzushead
\newif\ifheadnumbercontent % niet meer wijzigen / wordt mode
\newif\ifheadprefix
\newif\ifsomeheadconversion
@@ -1356,16 +1299,13 @@
\fi
\fi}}
- \def \writtenfullsectionnumber {\string\fullsectionnumber}
- \def \ignoredfullsectionnumber#1#2#3{#3}
- \let \storedfullsectionnumber \relax
-% \def\expandablefullsectionnumber#1#2#3{#3}
-%\unexpanded\def \naturalfullsectionnumber#1#2#3{\sectionblocklabel{#1}{\getvalue{\??cv#2}{#3}}}
-%\unexpanded\def \limitedfullsectionnumber#1#2#3{\getvalue{\??cv#2}{#3}}
+\def\writtenfullsectionnumber
+ {\string\fullsectionnumber}
-% under test:
-%
-% \def\expandablefullsectionnumber#1#2#3{\getvalue{\??cv#2}{#3}}
+\def\ignoredfullsectionnumber#1#2#3%
+ {#3}
+
+\let\storedfullsectionnumber\relax
\def\expandablefullsectionnumber#1#2#3%
{\convertnumber{#2}{#3}}
@@ -1385,6 +1325,25 @@
\let\fullsectionnumber\limitedfullsectionnumber
+% from cont-new:
+
+\def\expandifnonempty#1%
+ {\@EA\ifx\csname#1\endcsname\empty
+ \expandafter\secondoftwoarguments
+ \else
+ \expandafter\firstoftwoarguments
+ \fi
+ {\csname#1\endcsname}}
+
+\def\@@sectiekoppeling#1%
+ {\expandifnonempty{\??ko#1\c!coupling}{#1}}
+
+\def\@@sectiesectie#1%
+ {\expandifnonempty{\??ko#1\c!section}{\@@sectiekoppeling{#1}}}
+
+\def\sectioncountervalue#1%
+ {\@@sectionvalue{\@@sectiesectie{#1}}}
+
% \dodododoconstructhead IS NON GROUPED, SO WE NEED TO RESTORE !!!!
%
% dit kan dus beter \everyaroundhead zijn
@@ -1696,7 +1655,7 @@
{\e!previous#1}{}{\realfolio}{}}
{\setglobalsystemreference\rt!list
{\e!previous#1}{\getvalue{\e!previouslocal#1}}}%
- \def\stoplistreferences{\dostoplistreferences}}
+ \def\stoplistreferences{\dostoplistreferences{#1}}}
\def\dostoplistreferences#1%
{\ifutilitydone
@@ -1711,8 +1670,7 @@
\globallet\updatedlistreferences\empty}%
\fi}
-\def\stoplistreferences
- {\gobbleoneargument}
+\let\stoplistreferences\relax
\appendtoks
\updatelistreferences
@@ -1933,7 +1891,7 @@
{\globallet\localheadskip\!!zeropoint
\forgetall}%
\dontcomplain
- \postponefootnotes
+ \postponenotes
\iflocation\ifdisplaysectionhead\else\noninterferingmarks\fi\fi
\resetinteractionparameter\c!style
\resetinteractionparameter\c!color
@@ -2449,35 +2407,42 @@
\definehead
[\v!part]
- [\c!section=\s!section-1]
+ [\c!section=\s!section-1,
+ \c!ownnumber=\v!no]
\definehead
[\v!chapter]
- [\c!section=\s!section-2]
+ [\c!section=\s!section-2,
+ \c!ownnumber=\v!no]
\definehead
[\v!section]
- [\c!section=\s!section-3]
+ [\c!section=\s!section-3,
+ \c!ownnumber=\v!no]
\definehead
[\v!subsection]
[\c!section=\s!section-4,
- \c!default=\v!section]
+ \c!default=\v!section,
+ \c!ownnumber=\v!no]
\definehead
[\v!subsubsection]
[\c!section=\s!section-5,
- \c!default=\v!subsection]
+ \c!default=\v!subsection,
+ \c!ownnumber=\v!no]
\definehead
[\v!subsubsubsection]
[\c!section=\s!section-6,
- \c!default=\v!subsubsection]
+ \c!default=\v!subsubsection,
+ \c!ownnumber=\v!no]
\definehead
[\v!subsubsubsubsection]
[\c!section=\s!section-7,
- \c!default=\v!subsubsubsection]
+ \c!default=\v!subsubsubsection,
+ \c!ownnumber=\v!no]
\definehead
[\v!title]
diff --git a/Master/texmf-dist/tex/context/base/strc-sec.mkiv b/Master/texmf-dist/tex/context/base/strc-sec.mkiv
new file mode 100644
index 00000000000..ddc601eb831
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/strc-sec.mkiv
@@ -0,0 +1,702 @@
+%D \module
+%D [ file=strc-sec,
+%D version=2008.10.20,
+%D title=\CONTEXT\ Structure Macros,
+%D subtitle=Sectioning,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA-ADE / Hans Hagen]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Structure Macros / Sectioning}
+
+\unprotect
+
+% compatibility issue:
+%
+% \def\setfullsectionnumber #1{}
+% \def\preparefullnumber #1{}
+% \def\fullsectionnumber {1--1--1}
+% \def\makesectionnumber [#1]{}
+% \def\makesectionformat {}
+% \def\sectionformat {1--1-1-1-1-1-1}
+% \def\composedsectionnumber{}
+% \def\@@kolist{}
+
+% \setuphead[section] [separator=\separatorlist{?,!,*}]
+% \setuphead[subsection][separator=\separatorlist{??,!!,**}]
+%
+% \let\spr\separatorlist % this will enable this feature
+%
+% \setuphead[section] [separator={?,!,*}]
+% \setuphead[subsection][separator={??,!!,**}]
+%
+% \setupheads[separator={A,B,C,D,E,F}]
+% \chapter{test}
+% \section{test} \subsection{test} \subsection{test}
+% \section{test} \subsection{test} \subsection{test}
+
+% lua interface / names and interface might change
+
+\def\setstructurelevel #1#2{\ctxlua{structure.sections.setlevel("#1","#2")}} % name, level|parent
+\def\getstructurelevel #1{\ctxlua{structure.sections.getcurrentlevel("#1")}}% name
+\def\setstructurenumber #1#2{\ctxlua{structure.sections.setnumber(#1,"#2")}} % level, number (+/-)
+\def\getstructurenumber #1{\ctxlua{structure.sections.getnumber(#1)}} % level
+\def\getfullstructurenumber #1{\ctxlua{structure.sections.fullnumber(#1)}} % level
+\def\getspecificstructuretitle#1{\ctxlua{structure.sections.structuredata(#1,"titledata.title",nil,"\structureheadparameter\s!catcodes")}}%
+
+% interface
+
+\def\structureheadparameter #1{\csname\dostructureheadparameter{\??nh\currentstructurehead}#1\endcsname}
+\def\structureheadparameterhash#1{\dostructureheadparameterhash {\??nh\currentstructurehead}#1}
+
+\def\dostructureheadparameter #1#2{\ifcsname#1#2\endcsname#1#2\else\expandafter\dostructureheadparentparameter \csname#1\s!parent\endcsname#2\fi}
+\def\dostructureheadparameterhash#1#2{\ifcsname#1#2\endcsname #1\else\expandafter\dostructureheadparentparameterhash\csname#1\s!parent\endcsname#2\fi}
+
+\def\dostructureheadparentparameter #1#2{\ifx#1\relax\s!empty\else\dostructureheadparameter #1#2\fi}
+\def\dostructureheadparentparameterhash#1#2{\ifx#1\relax \else\dostructureheadparameterhash#1#2\fi}
+
+\def\dosetstructureheadattributes#1#2% style color
+ {\edef\fontattributehash {\structureheadparameterhash#1}%
+ \edef\colorattributehash{\structureheadparameterhash#2}%
+ \ifx\fontattributehash \empty\else\dosetfontattribute \fontattributehash #1\fi
+ \ifx\colorattributehash\empty\else\dosetcolorattribute\colorattributehash#2\fi}
+
+% so far
+
+\newcount\maxstructuredepth
+
+\let\laststructuresectionname\empty
+
+\def\definestructuresection[#1]%
+ {\doifundefined{\??nh#1}
+ {\global\advance\maxstructuredepth\plusone
+ \setevalue{\??nh#1\c!level}{\the\maxstructuredepth}%
+ \setstructurelevel{#1}{\the\maxstructuredepth}%
+% \letvalue{\??nh#1\c!marking}\empty % ?
+ %\writestatus{structure}{#1\ifx\laststructuresectionname\empty\else\space->\space\laststructuresectionname\fi}%
+ \normalexpanded{\noexpand\getparameters[\??nh#1][\s!parent=\??nh\laststructuresectionname]}%
+ \definemarking[#1]%
+ \ifnum\maxstructuredepth>\plusone
+% \normalexpanded{\noexpand\couplemarking[#1][\laststructuresectionname]}% so, the child inherits settings from the parent
+ \normalexpanded{\noexpand\relatemarking[#1][\laststructuresectionname]}% so, the parent will reset the child
+ \fi
+ \xdef\laststructuresectionname{#1}}}
+
+\def\setupstructuresection
+ {\dotripleempty\dosetupstructuresection}
+
+\def\dosetupstructuresection[#1]%
+ {\doifdefinedelse{\??nh#1}
+ {\dodosetupstructuresection[#1]}
+ {\dodosetupstructuresection[\structuresectionheadsection{#1}]}}
+
+\def\dodosetupstructuresection[#1][#2][#3]%
+ {\ifthirdargument
+ \getparameters[\??nh#1#2][#3]% ? probably sectionblock
+ \else
+ \getparameters[\??nh#1][#2]%
+ \fi}
+
+\def\structuresectionlevel#1%
+ {\executeifdefined{\??nh#1\c!level}0}
+
+% head -> structurehead
+
+\let\currentstructurehead\empty
+\newtoks\everystructureheadsetup
+
+\def\setupstructureheads{\dosingleargument\dosetupstructureheads}
+\def\setupstructurehead {\dodoubleempty\dosetupstructurehead}
+\def\definestructurehead{\dodoubleempty\dodefinestructurehead}
+
+\newif\ifsectionnumber % maybe conditional
+
+\def\dosetupstructureheads[#1]%
+ {\getparameters[\??nh][#1]%
+ \doifelse{\structureheadparameter\c!sectionnumber}\v!yes\sectionnumbertrue\sectionnumberfalse}
+
+\def\dosetupstructurehead[#1][#2]% we move the test for command being nothing elsewhere (needed, else hard to trace)
+ {\processcommalist[#1]{\dodosetupstructurehead{#2}}}
+
+\def\dodosetupstructurehead#1#2%
+ {\edef\currentstructurehead{#2}%
+ \getparameters[\??nh#2][#1]%
+ \the\everystructureheadsetup}
+
+\def\dodefinestructurehead[#1][#2]%
+ {\processcommalist[#1]{\dododefinestructurehead{#2}}}
+
+\def\dododefinestructurehead#1#2% #1: parameters|parent, #2: self
+ {\doifsomethingelse{#2}
+ {\doifassignmentelse{#1}
+ \dodefineuniquestructurehead
+ {\doifdefinedelse{\??nh#1\s!parent} % just a check
+ \dodefineclonedstructurehead
+ \dodefineerrorstructurehead}}
+ \dodefineerrorstructurehead
+ {#2}{#1}}
+
+\def\dodefineerrorstructurehead#1#2%
+ {\setvalue{#1}{\par error: #1 is undefined\par}}
+
+% deeptextcommand and deepnumbercommand are left undefined !
+
+\def\dodefineuniquestructurehead#1#2% class, parent
+ {\def\currentstructurehead{#1}%
+ \presetlabeltext[#1=]%
+ \getparameters[\??nh#1][\c!label=#1,#2]%
+ \edef\currentstructureheaddefault{\structureheadparameter\c!default}%
+ \edef\currentstructureheadsection{\structureheadparameter\c!section}%
+ \edef\currentstructureheadparent
+ {\??nh
+ \ifx\currentstructurehead\currentstructureheaddefault
+ \currentstructureheadsection
+ \else\ifx\currentstructureheaddefault\empty
+ \currentstructureheadsection
+ \else
+ \currentstructureheaddefault
+ \fi\fi}%
+ \normalexpanded{\noexpand\getparameters[\??nh#1][\s!parent=\currentstructureheadparent]}% \setevalue{\??nh#1\s!parent}{\currentstructureheadparent}%
+ \ifx\currentstructureheadsection\empty
+ %\writestatus{structure}{#1->\currentstructureheadparent}%
+ \else
+ %\writestatus{structure}{#1->\currentstructureheadparent\space(\currentstructureheadsection)}%
+ % todo: filtercommand
+ \definemarking[#1][\currentstructureheadsection]%
+ \definemarking[#1\v!number][#1]%
+ \setupmarking[#1][\c!filtercommand=\sectionheadmarkingtitle{#1}]%
+ \setupmarking[#1\c!number][\c!filtercommand=\sectionheadmarkingnumber{#1}]%
+ \fi
+ \doifundefined{\??li#1}{\definelist[#1][\c!prefix=\v!no]}% definestructurelist ?
+ \the\everystructureheadsetup}
+
+\def\sectionheadmarkingtitle #1#2{\ctxlua{structure.marks.title("#1","#2")}}
+\def\sectionheadmarkingnumber#1#2{\ctxlua{structure.marks.number("#1","#2")}}
+
+\def\dodefineclonedstructurehead#1#2% class parent
+ {\def\currentstructurehead{#1}%
+ \presetlabeltext[#1=]%
+ \doifelse{#1}{#2}
+ {\getparameters[\??nh#1][\c!label=#1]%
+ \doifundefined{\??li#1}{\definelist[#1][\c!prefix=\v!no]}}% definestructurelist ?
+ {\getparameters[\??nh#1][\s!parent=\??nh#2,\c!label=#1,\c!coupling=#2]%
+ \definemarking[#1][#2]%
+ \definemarking[#1\v!number][#2\c!number]%
+ \doifundefined{\??li#1}{\definelist[#1][#2][\c!prefix=\v!no]}}% definestructurelist ?
+ \the\everystructureheadsetup}
+
+\appendtoks
+% \setstructurelevel\currentstructurehead{\structuresectionheadsection{\structuresectionheadcoupling\currentstructurehead}}%
+ \setstructurelevel\currentstructurehead{\thenamedstructureheadlevel\currentstructurehead}%
+ \doifelse{\structureheadparameter\c!ownnumber}\v!yes
+ {\setevalue\currentstructurehead{\noexpand\dohandlestructureheadown[\currentstructurehead]}}
+ {\setevalue\currentstructurehead{\noexpand\dohandlestructureheadnop[\currentstructurehead]}}%
+ \setevalue{\e!next \currentstructurehead}{\noexpand\donextstructurehead [\currentstructurehead]}%
+ \setevalue{\e!start\currentstructurehead}{\noexpand\dostartstructurehead[\currentstructurehead]}%
+ \setevalue{\e!stop \currentstructurehead}{\noexpand\dostopstructurehead [\currentstructurehead]}%
+\to \everystructureheadsetup
+
+% todo, check if section is defined
+
+\def\structuresectionheadcoupling#1%
+ {\ifcsname\??nh#1\c!coupling\endcsname
+ \expandafter\structuresectionheadcoupling\csname\??nh#1\c!coupling\endcsname\else#1%
+ \fi}
+
+\def\structuresectionheadsection#1%
+ {\ifcsname\??nh#1\c!section\endcsname
+ \expandafter\structuresectionheadcoupling\csname\??nh#1\c!section\endcsname\else#1%
+ \fi}
+
+% head construction
+
+\def\dohandlestructureheadown{\dodoubleempty\dodohandlestructureheadown} % [ref] {nr} {title}
+\def\dohandlestructureheadnop{\dodoubleempty\dodohandlestructureheadnop} % [ref] {title}
+\def\dostartstructurehead {\dotripleempty\dodostartstructurehead} % [settings] [userdata]
+
+\newconditional\currentstructureown
+
+\def\dodohandlestructureheadown[#1][#2]#3#4%
+ {\settrue\currentstructureown
+ \dohandlestructurehead{#1}{\c!reference={#2},\c!ownnumber={#3},\c!title={#4}}{}} % name ref nr title --
+
+\def\dodohandlestructureheadnop[#1][#2]#3%
+ {\setfalse\currentstructureown
+ \dohandlestructurehead{#1}{\c!reference={#2},\c!title={#3}}{}} % name ref nr title --
+
+\newtoks\everybeforestructurehead % hook, todo: before/after keys
+\newtoks\everyafterstructurehead % hook, todo: before/after keys
+
+\def\dodostartstructurehead[#1][#2][#3]% for the moment no grouping, too annoying with page breaks
+ {\setfalse\currentstructureown
+ %\globalpushmacro\currentstructurehead
+ \xdef\currentstructurehead{#1}%
+ \the\everybeforestructurehead
+ \dohandlestructurehead{#1}{#2}{#3}} % name -- -- -- userdata
+
+\def\dostopstructurehead[#1]%
+ {%\globalpopmacro\currentstructurehead
+ \xdef\currentstructurehead{#1}% recover
+ \the\everyafterstructurehead}
+
+\def\donextstructurehead[#1][#2][#3]%
+ {\setfalse\currentstructureown
+ \xdef\currentstructurehead{#1}%
+ \dohandlestructurehead{#1}{#2}{#3}} % name -- -- -- userdata
+
+% \newconditional\structurereversesectionnumbers % todo: key/val
+
+\newconditional\structureheadtolist
+\newconditional\structureheaddoincrement
+\newconditional\structureheaddoplace
+\newconditional\structureheadleaveempty
+\newconditional\structureheadshownumber
+\newconditional\structureheadisdisplay
+
+\let\structureheadprefix\empty \def\structureheadprefixplus{+}
+
+% When do we reset the referenceprefix? This needs to be checked. Does it work
+% at all?
+
+\def\setstructureheadreference#1% reference
+ {\edef\structureheadreference{#1}%
+ \edef\structureheadreferenceprefix{\structureheadparameter\c!prefix}%
+ \ifx\structureheadreferenceprefix\empty
+ \setupreferenceprefix[]% yes or no?
+ \else\ifx\structureheadreferenceprefix\structureheadreferenceprefixplus
+ \ifx\structureheadreference\empty
+ \setupreferenceprefix[\structureheadreferenceprefixplus]
+ \else
+ \setupreferenceprefix[#1]% we assume just one reference
+ \fi
+ \else
+ \setupreferenceprefix[\structureheadreferenceprefix]%
+ \fi\fi}
+
+\setvalue{\??nh:\c!incrementnumber:\v!yes }{\settrue \structureheaddoincrement\settrue \structureheadtolist}
+\setvalue{\??nh:\c!incrementnumber:\v!no }{\setfalse\structureheaddoincrement\setfalse\structureheadtolist}
+\setvalue{\??nh:\c!incrementnumber:\v!list }{\setfalse\structureheaddoincrement\settrue \structureheadtolist}
+\setvalue{\??nh:\c!incrementnumber:\s!empty}{\settrue \structureheaddoincrement\settrue \structureheadtolist}
+
+\def\setstructureheadincrement
+ {\edef\currentstructureheadincrement{\structureheadparameter\c!incrementnumber}%
+ \ifcsname\??nh:\c!incrementnumber:\currentstructureheadincrement\endcsname
+ \csname\??nh:\c!incrementnumber:\currentstructureheadincrement\endcsname
+ \else
+ \settrue \structureheaddoincrement\settrue \structureheadtolist
+ % \filterstructureheadnumber
+ \fi}
+
+\def\filterstructureheadnumber
+ {\settrue\structureheaddoincrement
+ \settrue\structureheadtolist
+ \ifx\currentproduct\empty
+ % todo : filter from other toc (number, file, title)
+ % use : \currentstructureheadincrement as spec
+ \fi}
+
+\def\setstructureheadplacement
+ {\settrue\structureheaddoplace
+ \setfalse\structureheadleaveempty
+ \processaction
+ [\structureheadparameter\c!placehead]
+ [ \v!yes=>,
+ \v!empty=>\settrue\structureheadleaveempty,
+ \v!no=>\settrue\structureheadleaveempty\setfalse\structureheaddoplace]}
+
+\def\setstructureheaddisplay
+ {\doifelsevalue{\??nh:\structureheadparameter\c!alternative}\v!horizontal
+ {\setfalse\structureheadisdisplay}
+ {\settrue \structureheadisdisplay}}
+
+\def\dosettructureheadnumbercontent
+ {\setsystemmode \v!sectionnumber
+ \settrue\structureheadshownumber}
+
+\def\doresettructureheadnumbercontent
+ {\resetsystemmode\v!sectionnumber
+ \setfalse\structureheadshownumber}
+
+\def\setstructureheadnumber
+ {\ifsectionnumber
+ \doifelse{\structureblockparameter\c!number}\v!yes % todo
+ {\doifelse{\structureheadparameter\c!number}\v!yes
+ {\settrue\structureheadshownumber}
+ {\setfalse\structureheadshownumber}}
+ {\setfalse\structureheadshownumber}%
+ \else
+ \setfalse\structureheadshownumber
+ \fi}
+
+\def\thestructureheadsynchonization
+ {\pagetype[\currentstructureheadcoupling]% hm also number
+ \normalexpanded{\noexpand\setmarking[\currentstructureheadcoupling]{\currentstructurelistnumber}}%
+ \currentstructuresynchronize}
+
+\def\fullstructureheadnumber{\labeltexts{\structureheadparameter\c!label}{\structurenumber}} % todo
+\def\fullstructureheadtitle {\structurevariable{titledata.title}} % no catcode!
+
+\unexpanded\def\fullstructureheadtitle
+ {\structureautocatcodedget{titledata.title}{\structureheadparameter\s!catcodes}}
+
+\let\currentstructurehead \empty
+\let\currentstructureheadcoupling\empty
+\let\currentstructureheadsection \empty
+\let\currentstructureheadlevel \!!zerocount
+\let\currentstructureheadcounter \!!zerocount
+
+\def\doregisterstructurehead#1#2#3% name data userdata
+ {\structurecomponent
+ [\c!label={\structureheadparameter\c!label},
+ \c!incrementnumber=\ifconditional\structureheaddoincrement\v!yes\else\v!no\fi, % not that needed
+ \c!saveinlist=\ifconditional\structureheadtolist\v!yes\else\v!no\fi,
+ \c!level=\currentstructureheadlevel,
+ \c!name=#1,
+ \c!number=\ifconditional\structureheadshownumber\v!yes\else\v!no\fi,
+ \c!bookmark=,
+ \c!marking=,
+ \c!list=,
+ \c!expansion=\structureheadparameter\c!expansion,
+ \c!sectionresetset=\structureheadparameter\c!sectionresetset,
+ \c!sectionseparatorset=\structureheadparameter\c!sectionseparatorset,
+ \c!sectionconversionset=\structureheadparameter\c!sectionconversionset,
+ \c!sectionconversion=\structureheadparameter\c!conversion, % just for compatibility
+ \c!sectionstopper=\structureheadparameter\c!sectionstopper,
+ \c!sectionset=\structureheadparameter\c!sectionset,
+ \c!sectionsegments=\structureheadparameter\c!sectionsegments,
+ \c!reference=\structureheadreference,
+ \c!referenceprefix=\structureheadreferenceprefix,
+ \c!command=,
+ #2]%
+ [#3]%
+ \reportcurrentstructure}
+
+\unexpanded\def\placeheadtext {\dosingleempty\doplaceheadtext } % use with care
+\unexpanded\def\placeheadnumber{\dosingleempty\doplaceheadnumber} % use with care
+
+\def\doplaceheadtext[#1]%
+ {\dontleavehmode
+ \begingroup
+ \edef\currentstructurehead{#1}%
+ \dosetstructureheadattributes\c!style\c!color
+ \dosetstructureheadattributes\c!textstyle\c!textcolor
+ \dontconvertfont
+ \setupinterlinespace
+ \relax
+ \getspecificstructuretitle{\thenamedstructureheadlevel{#1}}%
+ \endgraf
+ \endgroup}
+
+\def\doplaceheadnumber[#1]%
+ {\dontleavehmode
+ \begingroup
+ \edef\currentstructurehead{#1}%
+ \dosetstructureheadattributes\c!style\c!color
+ \dosetstructureheadattributes\c!numberstyle\c!numbercolor
+ \dontconvertfont
+ \setupinterlinespace
+ \relax
+ \getfullstructurenumber{\thenamedstructureheadlevel{#1}}%
+ \endgraf
+ \endgroup}
+
+\def\dohandlestructurehead#1#2#3% name data userdata
+ {\xdef\currentstructurehead {#1}%
+ \xdef\currentstructureheadcoupling{\structuresectionheadcoupling\currentstructurehead}%
+ \xdef\currentstructureheadsection {\structuresectionheadsection \currentstructureheadcoupling}%
+ \xdef\currentstructureheadlevel {\structuresectionlevel \currentstructureheadsection}%
+ %writestatus\m!systems{setup: \currentstructurehead,\currentstructureheadcoupling,\currentstructureheadsection,\currentstructureheadlevel}%
+ %
+ \setstructureheadreference{#3}% will change
+ \setstructureheadincrement
+ \setstructureheadplacement
+ \setstructureheaddisplay
+ \setstructureheadnumber
+ %
+ \unexpanded\def\\{\space}%
+ \flushingcolumnfloatsfalse
+ %
+ % todo: also mark (for header)
+ %
+ % we might remove the lower level
+ %
+ % not here, after optional \page: \doregisterstructurehead{#1}{#2}{#3}%
+ %
+% \xdef\currentstructureheadcounter{\currentstructurecounter}% lua call
+ %
+ % \currentstructuresynchronize % will move
+ %
+ \edef\numberheaddistance {\structureheadparameter\c!distance }% compatibility
+ \edef\numberheadalternative{\structureheadparameter\c!alternative}% compatibility
+ %
+ \let\getstructureheadnumber\empty
+ \let\getstructureheadtitle \empty
+ \let\getstructureheadsyncs \empty
+ \ifconditional\structureheaddoincrement
+ \ifconditional\structureheaddoplace
+ \dostructureheadspacingbeforeyes
+ \doregisterstructurehead{#1}{#2}{#3}% after optional \page
+ \let\getstructureheadsyncs\thestructureheadsynchonization
+ \let\getstructureheadtitle\fullstructureheadtitle
+ \ifconditional\structureheadshownumber
+ \let\getstructureheadnumber\fullstructureheadnumber
+ \placestructureheadnumbertext
+ \else
+ \placestructureheadtext
+ \fi
+ \dostructureheadspacingafteryes
+ \else
+ \dostructureheadspacingbeforenop % toegevoegd ivm subpaginanr / tug sheets
+ \doregisterstructurehead{#1}{#2}{#3}% after optional \page
+ \let\getstructureheadsyncs\thestructureheadsynchonization
+ \placestructureheadnothing % just flush 'm
+ \dostructureheadspacingafternop
+ \fi
+ \else
+ \ifconditional\structureheaddoplace
+ \dostructureheadspacingbeforeyes
+ \doregisterstructurehead{#1}{#2}{#3}% after optional \page
+ \let\getstructureheadsyncs\thestructureheadsynchonization
+ \let\getstructureheadtitle\fullstructureheadtitle
+ \placestructureheadtext
+ \dostructureheadspacingafteryes
+ \else
+ % do nothing / should be vbox to 0pt
+ \dostructureheadspacingbeforenop
+ \doregisterstructurehead{#1}{#2}{#3}% after optional \page
+ \let\getstructureheadsyncs\thestructureheadsynchonization
+ \placestructureheadnothing % just flush 'm
+ \dostructureheadspacingafternop
+ \fi
+ \fi
+ \flushingcolumnfloatstrue
+ \setfalse\ignorehandlepagebreak
+ % ignorespaces prevents spaces creeping in when after=\dontleavehmode
+ \ifconditional\structureheadisdisplay % \ifdisplaysectionhead
+ \ignorespaces
+ \else
+ \expandafter\GotoPar
+ \fi}
+
+% typesetting
+
+\def\placestructureheadnumbertext % dummy, will be overloaded
+ {\getstructureheadnumber/\getstructureheadtitle
+ \getstructureheadsyncs}
+
+\def\placestructureheadtext % dummy, will be overloaded
+ {\getstructureheadtitle
+ \getstructureheadsyncs}
+
+\def\placestructureheadnothing % dummy, will be overloaded
+ {\getstructureheadsyncs}
+
+% pagebreaks
+
+\newcount\precedingstructurelevel \precedingstructurelevel\plusone
+\newconditional\ignorehandlepagebreak
+
+\def\dostructureheadspacingbeforeyes
+ {\docheckstructureheadbefore\dohandlestructureheadpagebreak
+ \structureheadparameter\c!inbetween}
+
+\def\dostructureheadspacingbeforenop
+ {\docheckstructureheadbefore\docheckstructureheadlayout
+ \structureheadparameter\c!inbetween}
+
+% \def\emptystructureheadcorrection
+% {\ifconditional\structureheadleaveempty % inlined \emptyheadcorrection (with after=\blank)
+% \vskip-\lineheight
+% \dosomebreak\nobreak % \penalty10000 in vspacing
+% \kern\zeropoint
+% \prevdepth\strutdepth
+% \fi}
+
+\def\emptystructureheadcorrection
+ {\ifconditional\structureheadleaveempty % inlined \emptyheadcorrection (with after=\blank)
+ \penalty10000 % first ... we need to adapt this all to vspacing
+ \vskip-\lineheight
+ \kern\zeropoint
+ \prevdepth\strutdepth
+ \fi}
+
+\def\dostructureheadspacingafteryes
+ {\ifconditional\structureheadisdisplay
+ \dosomebreak\nobreak % needs to be adapted to vspacing
+ \emptystructureheadcorrection
+ \structureheadparameter\c!after
+ \fi}
+
+\def\dostructureheadspacingafternop
+ {}
+
+\newsignal\continuousstructureheadsignal
+
+\def\docheckstructureheadbefore#1%
+ {\ifhmode
+ \scratchcounter\lastpenalty\unpenalty % no beauty in this
+ \ifdim\lastskip=\continuousstructureheadsignal
+ % no page break
+ \ifconditional\ignorehandlepagebreak
+ \setfalse\ignorehandlepagebreak
+ \else
+ \global\precedingstructurelevel\currentstructureheadlevel
+ \nobreak
+ \fi
+ \global\settrue\continuoussectionhead
+ \else
+ \penalty\scratchcounter
+ \global\setfalse\continuoussectionhead
+ #1%
+ \fi
+ \else
+ \global\setfalse\continuoussectionhead
+ #1%
+ \fi}
+
+\def\dodocheckstructureheadlayout#1#2%
+ {\doifelselayouttextline{#1}
+ {\doifsomething{\structureheadparameter#2}{\expanded{\setuplayouttext[#1][\c!state=\structureheadparameter#2]}}}
+ \donothing}
+
+\def\docheckstructureheadlayout
+ {\doifsomething{\structureheadparameter\c!page}
+ {\page[\structureheadparameter\c!page]%
+ \dodocheckstructureheadlayout\v!header\c!header
+ \dodocheckstructureheadlayout\v!text \c!text
+ \dodocheckstructureheadlayout\v!footer\c!footer}}
+
+\def\currentstructurecounter {\ctxlua{structure.sections.depthnumber(\thenamedstructureheadlevel\currentstructurehead)}}
+\def\previousstructurecounter{\ctxlua{structure.sections.depthnumber(\thenamedstructureheadlevel\currentstructurehead-1)}}
+
+\def\dohandlestructureheadpagebreak
+ {%[[\currentstructurehead @\thenamedstructureheadlevel\currentstructurehead/prev:\previousstructurecounter/curr:\currentstructurecounter]]
+ \ifconditional\ignorehandlepagebreak
+ \setfalse\ignorehandlepagebreak
+ \else
+ \ifnum\lastpenalty>\zerocount
+ \global\pagebreakdisabledtrue
+ \fi
+ % beware, these numbers are not yet know here
+ \doifelse{\structureheadparameter\c!continue}\v!yes
+ {\ifnum\previousstructurecounter=\zerocount
+ \docheckstructureheadlayout
+ \else\ifnum\currentstructurecounter>\zerocount
+ \docheckstructureheadlayout
+ \fi\fi}%
+ {\docheckstructureheadlayout}%
+ \doifnot{\structureheadparameter\c!aligntitle}\v!float\flushsidefloats
+ \structureheadparameter\c!before
+ \relax
+ \ifpagebreakdisabled
+ \global\pagebreakdisabledfalse
+ \else
+ \dopreventbreakafterstructureheadauto
+ \fi
+ \doif{\structureheadparameter\c!aligntitle}\v!float\indent
+ \global\precedingstructurelevel\currentstructureheadlevel
+ \fi}
+
+% the next one was: \somebreakmethod
+
+\chardef\somestructureheadbreakmethod\plusone % 0=nothing, 1=weighted, 2=strict, 3=vspacing
+
+\def\dopreventbreakafterstructureheadauto % used after \c!before
+ {\ifcase\somestructureheadbreakmethod
+ % 0 = nothing
+ \or
+ % 1 = old weighted version
+ \ifnum\currentstructureheadlevel>\precedingstructurelevel
+ \dosomebreak{\penalty\numexpr20000+500*\currentstructureheadlevel\relax}%
+ \else
+ \dosomebreak\allowbreak % brr
+ \fi
+ \or
+ % 2 = strict version
+ \dosomebreak{\penalty\maxdimen}%
+ \or
+ % 3 = vspacing
+ \vspacing[\v!samepage]% if preceded by ! then a loop
+ \else
+ % nothing
+ \fi}
+
+\def\dopreventbreakafterstructureheadspec#1% see enumerations etc
+ {\ifcase\somestructureheadbreakmethod
+ % 0 = nothing
+ \or
+ % 1 = old weighted version
+ \dosomebreak{\penalty\numexpr20000+500*(\currentstructureheadlevel+#1)\relax}%
+ \or
+ % 2 = strict version
+ \dosomebreak{\penalty\maxdimen}%
+ \or
+ % 3 = vspacing
+ \vspacing[\v!samepage]%
+ \else
+ % nothing
+ \fi}
+
+\def\dohandlepagebreakX{\dopreventbreakafterstructureheadspec} % no \let so we can redefind
+
+% we do support negative numbers but it can have side effects that we won't
+% catch
+%
+% \chapter{some} \setupheadnumber[chapter][3] \chapter{more}
+% \setupheadnumber[section][8] \section{b} \section{c} \setupheadnumber[section][-1] \section{d}
+
+\def\thecurrentstructureheadlevel#1%
+ {\getcurrentstructurelevel{#1}}
+
+\def\thenamedstructureheadlevel#1%
+ {\structuresectionlevel{\structuresectionheadsection{\structuresectionheadcoupling{#1}}}}
+
+\def\setupheadnumber
+ {\dodoubleargument\dosetupheadnumber}
+
+\def\dosetupheadnumber[#1][#2]% todo: reset if at other level
+ {\setstructurenumber{\thenamedstructureheadlevel{#1}}{#2}}
+
+\def\currentstructureheadnumber{0} % ==> \currentheadnumber
+
+\def\determineheadnumber[#1]%
+ {\xdef\currentstructureheadnumber{\getstructurenumber{\thenamedstructureheadlevel{#1}}}}
+
+% The previous macro is been replaced by the expandable:
+
+\def\namedheadnumber#1{\getstructurenumber{\thenamedstructureheadlevel{#1}}}
+
+\def\structureheadnumber
+ {\dosingleempty\dostructureheadnumber}
+
+\def\dostructureheadnumber[#1]% simple case is just a number
+ {\getfullstructurenumber{\iffirstargument\thecurrentstructureheadlevel{#1}\fi}}
+
+% compatibility code (after all, we might offer different structure handlers as well
+% but we might as well remove the 'structure' substring at some point (we needed it
+% in order to test the old and new methods alongside)
+
+\let\definesectionblock \definestructureblock
+\let\definesection \definestructuresection
+\let\setupsection \setupstructuresection
+\let\setupheads \setupstructureheads
+\let\definehead \definestructurehead
+\let\setuphead \setupstructurehead
+\let\headnumber \structureheadnumber
+\let\setupsectionblock \setupstructureblock
+
+\let\sectioncountervalue\structurevalue
+
+\def\currentheadnumber {\currentstructureheadnumber}
+\def\currentheadtext {obsolete, use marks}
+
+% list references, will be redone in lua when we need it
+
+\let\startlistreferences\relax
+\let\stoplistreferences \relax
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-swd.tex b/Master/texmf-dist/tex/context/base/strc-swd.mkii
index 62a98976b67..4a71b8781b8 100644
--- a/Master/texmf-dist/tex/context/base/core-swd.tex
+++ b/Master/texmf-dist/tex/context/base/strc-swd.mkii
@@ -1,7 +1,7 @@
%D \module
-%D [ file=core-swd,
+%D [ file=strc-swd,
%D version=2007.08.14,
-%D title=\CONTEXT\ Core Macros,
+%D title=\CONTEXT\ Structure Macros,
%D subtitle=Section Worlds,
%D author=Hans Hagen,
%D date=\currentdate,
@@ -19,6 +19,8 @@
% \startsectionworld[chapter][text={Test}]
% \stopsectionworld
+\writestatus{loading}{ConTeXt Structure Macros / Sectionworlds}
+
\unprotect
\ifx\pushvalue\undefined
@@ -102,10 +104,6 @@
{\settrue\ignorehandlepagebreak}%
\doifsomething{\sectionworldparameter\c!setups}
{\setups[\sectionworldparameter\c!setups]}%
- %\dodododoconstructhead \currentsectionworldname
- % [\sectionworldparameter\c!label]
- % {\sectionworldparameter\c!number}
- % {\sectionworldparameter\c!text}%
\csnameexpandedthreearguments \doconstructheadwithvars
{\sectionworldparameter\c!label }%
{\sectionworldparameter\c!number}%
diff --git a/Master/texmf-dist/tex/context/base/strc-syn.lua b/Master/texmf-dist/tex/context/base/strc-syn.lua
new file mode 100644
index 00000000000..d9b7b9a572e
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/strc-syn.lua
@@ -0,0 +1,175 @@
+if not modules then modules = { } end modules ['str-syn'] = {
+ version = 1.001,
+ comment = "companion to str-syn.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local next, type = next, type
+local texwrite, texsprint, format = tex.write, tex.sprint, string.format
+
+local ctxcatcodes = tex.ctxcatcodes
+
+-- interface to tex end
+
+joblists = joblists or { }
+joblists.collected = joblists.collected or { }
+joblists.tobesaved = joblists.tobesaved or { }
+
+local collected, tobesaved = joblists.collected, joblists.tobesaved
+
+local function initializer()
+ collected, tobesaved = joblists.collected, joblists.tobesaved
+end
+
+local function finalizer()
+ tobesaved.hash = nil
+end
+
+job.register('joblists.collected', joblists.tobesaved, initializer, finalizer)
+
+local function allocate(class)
+ local d = tobesaved[class]
+ if not d then
+ d = {
+ metadata = {
+ language = 'en',
+ sorted = false,
+ class = class
+ },
+ entries = {
+ },
+ hash = {
+ }
+ }
+ tobesaved[class] = d
+ end
+ return d
+end
+
+function joblists.define(class,kind)
+ local data = allocate(class)
+ data.metadata.kind = kind
+end
+
+function joblists.register(class,kind,spec)
+ local data = allocate(class)
+ data.metadata.kind = kind -- runtime, not saved in format (yet)
+ data.entries[#data.entries+1] = spec
+ data.hash[spec.definition.tag or ""] = spec
+end
+
+function joblists.synonym(class,tag)
+ local data = allocate(class).hash
+ local d = data[tag]
+ if d then
+ local de = d.definition
+ de.used = true
+ texsprint(ctxcatcodes,de.synonym)
+ end
+end
+
+function joblists.meaning(class,tag)
+ local data = allocate(class).hash
+ local d = data[tag]
+ if d then
+ local de = d.definition
+ de.used = true
+ texsprint(ctxcatcodes,de.meaning)
+ end
+end
+
+function joblists.compare(a,b)
+ return sorters.comparers.basic(a.split,b.split)
+end
+
+function joblists.filter(data,options)
+ local result = { }
+ local entries = data.entries
+ local all = options and options.criterium == interfaces.variables.all
+ for i=1,#entries do
+ local entry = entries[i]
+ if all or entry.definition.used then
+ result[#result+1] = entry
+ end
+ end
+ data.result = result
+end
+
+function joblists.prepare(data)
+ local strip = sorters.strip
+ local splitter = sorters.splitters.utf
+ local result = data.result
+ if result then
+ for i=1, #result do
+ local r = result[i]
+ local rd = r.definition
+ if rd then
+ local rt = rd.tag
+ local sortkey = (rt and rt ~= "" and rt) or rd.synonym
+ r.split = splitter(strip(sortkey))
+ end
+ end
+ end
+end
+
+function joblists.sort(data,options)
+ sorters.sort(data.result,joblists.compare)
+end
+
+function joblists.finalize(data,options)
+ local result = data.result
+ data.metadata.nofsorted = #result
+ local split = { }
+ for k=1,#result do
+ local v = result[k]
+ local entry, tag = sorters.firstofsplit(v.split)
+ local s = split[entry] -- keeps track of change
+ if not s then
+ s = { tag = tag, data = { } }
+ split[entry] = s
+ end
+ s.data[#s.data+1] = v
+ end
+ data.result = split
+end
+
+function joblists.flush(data,options) -- maybe pass the settings differently
+ local kind = data.metadata.kind -- hack, will be done better
+ texsprint(ctxcatcodes,format("\\start%soutput",kind))
+ local result = data.result
+ for k, letter in ipairs(table.sortedkeys(result)) do
+ local sublist = result[letter]
+ local data = sublist.data
+ texsprint(ctxcatcodes,format("\\start%ssection{%s}",kind,sublist.tag))
+ for d=1,#data do
+ local entry = data[d].definition
+ texsprint(ctxcatcodes,format("\\%sentry{%s}{%s}{%s}",kind,d,entry.synonym,entry.meaning))
+ end
+ texsprint(ctxcatcodes,format("\\stop%ssection",kind))
+ end
+ texsprint(ctxcatcodes,format("\\stop%soutput",kind))
+ -- for now, maybe at some point we will do a multipass or so
+ data.result = nil
+ data.metadata.sorted = false
+end
+
+function joblists.analysed(class,options)
+ local data = joblists.collected[class]
+ if data and data.entries then
+ joblists.filter(data,options) -- filters entries to result
+ joblists.prepare(data,options) -- adds split table parallel to list table
+ joblists.sort(data,options) -- sorts entries in result
+ joblists.finalize(data,options) -- do things with data.entries
+ data.metadata.sorted = true
+ end
+ return data and data.metadata.sorted and data.result and next(data.result)
+end
+
+function joblists.process(class,options)
+ if joblists.analysed(class,options) then
+ joblists.flush(joblists.collected[class],options)
+ end
+end
+
diff --git a/Master/texmf-dist/tex/context/base/core-syn.tex b/Master/texmf-dist/tex/context/base/strc-syn.mkii
index 8d2817438db..39acb7d91d8 100644
--- a/Master/texmf-dist/tex/context/base/core-syn.tex
+++ b/Master/texmf-dist/tex/context/base/strc-syn.mkii
@@ -1,7 +1,7 @@
%D \module
-%D [ file=core-syn,
+%D [ file=strc-syn,
%D version=1997.03.31,
-%D title=\CONTEXT\ Core Macros,
+%D title=\CONTEXT\ Structure Macros,
%D subtitle=Synonyms and Sorts,
%D author=Hans Hagen,
%D date=\currentdate,
@@ -11,17 +11,10 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Core Macros / Synonyms and Sorts}
+\writestatus{loading}{ConTeXt Structure Macros / Synonyms and Sorts}
\unprotect
-\ifx\mkdefinesortedlist\undefined
- \let\mkdefinesortedlist \gobbleoneargument
- \let\mksavesortedlistentry \gobblefourarguments
- \let\mksavesortedlistvariable\gobblethreearguments
- \let\mkloadsortedlist \gobbleoneargument
-\fi
-
% \checkdefined kan hierheen
% Formaat tex-utility-input-file <jobname.tui>:
@@ -80,11 +73,13 @@
\c!inbetween=\synonymparameter\c!inbetween,
\c!after=\synonymparameter\c!after,
\c!indentnext=\synonymparameter\c!indentnext,
- \c!headstyle=,
- \c!style=]%
+ \c!headstyle=\synonymparameter\c!headstyle,
+ \c!headcolor=\synonymparameter\c!headcolor,
+ \c!style=,
+ \c!color=]%
\setupwhitespace[\v!none]%
%doutilities{#1}\jobname{#2}\relax\par % no longer \par
- \mkloadsortedlist{#1}%
+ \doutilities{#1}\jobname{#1}\relax\relax
\endgroup
\ifutilitydone\else\nowhitespace\fi}
@@ -99,7 +94,7 @@
\synonymmeaningfalse
\doattributes{\??sm#1}\c!synonymstyle\c!synonymcolor{#3}%
\else
- \explicithmode
+ \dontleavehmode
\doattributes{\??sm#1}\c!textstyle\c!textcolor{#2}%
\fi
\endgroup}
@@ -117,7 +112,7 @@
{\begingroup % anders in mathmode lege \hbox
\defconvertexpanded\asciisynonym{\getvalue{\??sm#1\c!expansion}}{#3}%
\defconvertexpanded\asciimeaning{\getvalue{\??sm#1\c!expansion}}{#4}%
- \mksavesortedlistentry{#1}{#2}{\asciisynonym}{\asciimeaning}%
+ \immediatewriteutility{s e {#1} {#2} {\asciisynonym} {\asciimeaning}}%
\endgroup}
\def\reprocesssynonym#1#2#3%
@@ -153,7 +148,7 @@
{\bgroup
\let\dosetsynonym\doloadsynonym
\showmessage\m!systems{19}{#2}%
- \mkloadsortedlist{#1}%
+ \doutilities{#1}\jobname{#1}\relax\relax
\egroup
\setvalue{\s!check#1}##1{}}
@@ -178,7 +173,7 @@
\def\doregistersynonymlanguage#1%
{\savesortlanguage{\getvalue{\??sm#1\s!language}}%
- \mksavesortedlistvariable{#1}{l}{\getvalue{\??sm#1\s!language}}}
+ \immediatewriteutility{s l {#1} {\getvalue{\??sm#1\s!language}}}}
\def\dodefinesynonyms[#1][#2][#3][#4]%
{\iffourthargument
@@ -196,6 +191,7 @@
\dosetupsynonyms
[#1]%
[\c!synonymstyle=,\c!textstyle=,
+ \c!headstyle=,\c!headcolor=,
\c!state=\v!start,\c!criterium=,
\c!location=\v!left,\c!width=5em,\c!distance=0pt,
\c!sample=,\c!hang=,\c!align=,
@@ -207,7 +203,7 @@
\doregistersynonymlanguage{#1}%
\to \everysavesortkeys
\presetheadtext[#2=\Word{#2}]% changes the \if...argument
- \mkdefinesortedlist{#1}%
+ \addutilityreset{#1}%
\setvalue{\e!setup #2\e!endsetup}{\dodoubleargument\getparameters[\??sm#1]}% to be obsolete
\setvalue{\s!set #1}{\dosetsynonym{#1}}%
\setvalue{\s!reset #1}{\doresetsynonym{#1}}%
@@ -253,8 +249,7 @@
{\whitespace % ZONDER WITRUIMTE ETC ETC
\begingroup
\setupwhitespace[\v!none]%
- %doutilities{#1}\jobname{#1}\relax\par % brr \par
- \mkloadsortedlist{#1}%
+ \doutilities{#1}\jobname{#1}\relax\relax
\endgroup
\ifutilitydone\else\nowhitespace\fi}
@@ -263,7 +258,7 @@
% \def\doplacelistofsorts#1% NOG EEN RUWE VERSIE MAKEN
% {\startpacked
% %doutilities{#1}\jobname{#1}\relax\par
-% \mkloadsortedlist{#1}%
+% \doutilities{#1}\jobname{#1}\relax\relax
% \stoppacked}
\def\docompletelistofsorts#1#2%
@@ -277,7 +272,7 @@
% {\doplacelistofsorts{#1}}
\def\processsort#1#2#3%
- {\explicithmode
+ {\dontleavehmode
\begingroup % was \bgroup
\doattributes{\??so#1}\c!style\c!color{#2}%
\endgroup} % was \egroup
@@ -285,7 +280,7 @@
\def\dowritesort#1#2#3%
{\bgroup
\defconvertexpanded\asciisynonym{\getvalue{\??so#1\c!expansion}}{#3}%
- \mksavesortedlistentry{#1}{#2}{\asciisynonym}{}%
+ \immediatewriteutility{s e {#1} {#2} {\asciisynonym} {}}%
\egroup}
\def\synonymentry#1%
@@ -318,7 +313,7 @@
{\bgroup
\let\dosetsort\doloadsort
\showmessage\m!systems{20}{#2}%
- \mkloadsortedlist{#1}%
+ \doutilities{#1}\jobname{#1}\relax\relax
\egroup
\setvalue{\s!check#1}##1{}}
@@ -343,7 +338,7 @@
\def\doregistersortinglanguage#1%
{\savesortlanguage{\getvalue{\??so#1\s!language}}%
- \mksavesortedlistvariable{#1}{l}{\getvalue{\??so#1\s!language}}}
+ \immediatewriteutility{s l {#1} {\getvalue{\??so#1\s!language}}}}
\def\dodefinesorting[#1][#2][#3]%
{\getparameters[\??so#1]
@@ -367,7 +362,7 @@
\else
\setvalue{#1}{\dotripleempty\docomplexsort[][#1]}%
\fi
- \mkdefinesortedlist{#1}%
+ \addutilityreset{#1}%
\presetheadtext[#2=\Word{#2}]% after \ifthirdargument -)
\setvalue{\e!setup#2\e!endsetup}[##1]{\getparameters[\??so#1][##1]}% to be obsolete
\setvalue{\s!set#1}{\dosetsort{#1}}%
@@ -385,7 +380,7 @@
%D written by Taco.
\def\processlistofsorts[#1]%
- {\mkloadsortedlist{#1}}
+ {\doutilities{#1}\jobname{#1}\relax\relax}
\newcounter\nofsortedalphalists
@@ -407,10 +402,6 @@
% \def\whatever{ax,bx,qx,dx,rx,fx} \sortalphacommacommand\whatever \whatever \endgraf
% \stoptext
-%D Plugins.
-
-\loadmarkfile{core-syn}
-
%D Presets.
\definesynonyms
@@ -421,9 +412,11 @@
\setupsynonyms
[\v!abbreviation]
[\c!textstyle=\v!capital,
- \c!synonymstyle=,
\c!textcolor=,
+ \c!synonymstyle=,
\c!synonymcolor=,
+ \c!headstyle=,
+ \c!headcolor=,
\c!location=\v!left,
\c!width=5em,
\c!state=\v!start]
diff --git a/Master/texmf-dist/tex/context/base/strc-syn.mkiv b/Master/texmf-dist/tex/context/base/strc-syn.mkiv
new file mode 100644
index 00000000000..9865305c75e
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/strc-syn.mkiv
@@ -0,0 +1,400 @@
+%D \module
+%D [ file=strc-syn,
+%D version=2008.10.20,
+%D title=\CONTEXT\ Structure Macros,
+%D subtitle=Synonyms and Sorting,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA-ADE / Hans Hagen]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Structure Macros / Synonyms and Sorting}
+
+\registerctxluafile{strc-syn}{1.001}
+
+\unprotect
+
+% general help, can be shared
+
+% simplifiedcommands -> flag in lua
+%
+% expansion
+% criterium -> when start, then flag in list
+% command-> wanneer?
+% state -> flagging enabled
+% conversion ?
+% todo: register xml mode etc
+
+% split but common in lua
+
+\def\preprocessexpansion#1#2#3#4%
+ {\ifx#1\s!xml
+ \xmlstartraw
+ \xdef#2{#4}%
+ \xmlstopraw
+ \globallet#3\s!xml
+ \else
+ \ifx#1\v!yes
+ \xdef#2{#4}%
+ \else
+ \xdef#2{\detokenize{#4}}%
+ \fi
+ \globallet#3\s!tex
+ \fi}
+
+\let\currentsynonym\empty
+
+\def\synonymparameter #1{\csname\dosynonymparameter{\??sm\currentsynonym}#1\endcsname}
+\def\synonymparameterhash#1{\dosynonymparameterhash {\??sm\currentsynonym}#1}
+
+\def\dosynonymparameter #1#2{\ifcsname#1#2\endcsname#1#2\else\expandafter\dosynonymparentparameter \csname#1\s!parent\endcsname#2\fi}
+\def\dosynonymparameterhash#1#2{\ifcsname#1#2\endcsname #1\else\expandafter\dosynonymparentparameterhash\csname#1\s!parent\endcsname#2\fi}
+
+\def\dosynonymparentparameter #1#2{\ifx#1\relax\s!empty\else\dosynonymparameter #1#2\fi}
+\def\dosynonymparentparameterhash#1#2{\ifx#1\relax \else\dosynonymparameterhash#1#2\fi}
+
+\unexpanded\def\dosetsynonymattributes#1#2% style color
+ {\edef\fontattributehash {\synonymparameterhash#1}%
+ \edef\colorattributehash{\synonymparameterhash#2}%
+ \ifx\fontattributehash \empty\else\dosetfontattribute \fontattributehash #1\fi
+ \ifx\colorattributehash\empty\else\dosetcolorattribute\colorattributehash#2\fi}
+
+\newtoks\everysetupsynonyms
+
+\def\setupsynonyms
+ {\dodoubleargument\dosetupsynonyms}
+
+\def\dosetupsynonyms[#1][#2]%
+ {\ifsecondargument
+ \getparameters[\??sm#1][#2]%
+ \else
+ \getparameters[\??sm][#1]%
+ \fi
+ \the\everysetupsynonyms}
+
+\setupsynonyms
+ [\c!state=\v!start,
+ %\c!synonymstyle=,
+ %\c!textstyle=,
+ %\c!headstyle=,
+ %\c!headcolor=,
+ %\c!criterium=,
+ \c!location=\v!left,
+ \c!width=5em,
+ \c!distance=0pt,
+ %\c!sample=,
+ %\c!hang=,
+ %\c!align=,
+ %\c!before=,
+ %\c!inbetween=,
+ %\c!after=,
+ \c!indentnext=\v!no,
+ %\c!expansion=,
+ \s!language=\currentmainlanguage]
+
+\def\definesynonyms
+ {\doquadrupleempty\dodefinesynonyms}
+
+\def\dodefinesynonyms[#1][#2][#3][#4]% name plural \meaning \use
+ {\iffourthargument
+ \unexpanded\def#4##1{\doinsertsynonym{#1}{##1}}% name tag
+ \ifthirdargument
+ \unexpanded\def#3##1{\doinsertsynonymmeaning{#1}{##1}}% \meaning
+ \fi
+ \unexpanded\setvalue{#1}{\definesynonym[\v!no][#1]}% \name
+ \else
+ \ifthirdargument
+ \unexpanded\def#3##1{\doinsertsynonymmeaning{#1}{##1}}% \meaning
+ \fi
+ \unexpanded\setvalue{#1}{\definesynonym[\v!yes][#1]}% \name
+ \fi
+ \getparameters[\??sm#1][\s!parent=\??sm]%
+ \presetheadtext[#2=\Word{#2}]% changes the \if...argument
+ %\ctxlua{joblists.define('#1')}%
+ \setvalue{\e!setup #2\e!endsetup}{\dodoubleargument\getparameters[\??sm#1]}% to be obsolete
+ \setvalue{\e!place \e!listof#2}{\doplacelistofsynonyms{#1}{#2}}%
+ \setvalue{\e!complete\e!listof#2}{\docompletelistofsynonyms{#1}{#2}}}
+
+\def\definesynonym
+ {\dotripleempty\dodefinesynonym}
+
+\def\dodefinesynonym[#1][#2][#3]#4#5%
+ {\begingroup
+ \edef\currentsynonym{#2}%
+ \edef\currentsynonymtag{#3}%
+ \ifx\currentsynonymtag\empty
+ \edef\currentsynonymtag{#4}%
+ \fi
+ \ifx\currentsynonymtag\empty
+ % todo: error message
+ \else
+ \edef\currentsynonymexpansion{\synonymparameter\c!expansion}%
+ \preprocessexpansion\currentsynonymexpansion\currentsynonymtext \currentsynonymcoding{#4}%
+ \preprocessexpansion\currentsynonymexpansion\currentsynonymmeaning\currentsynonymcoding{#5}%
+ \ctxlua{joblists.register("\currentsynonym", "synonym", {
+ metadata = {
+ catcodes = \the\catcodetable,
+ coding = "\currentsynonymcoding",
+ xmlroot = \ifx\currentsynonymcoding\s!xml "\xmldocument" \else nil \fi,
+ },
+ definition = {
+ tag = "\currentsynonymtag",
+ synonym = \!!bs\currentsynonymtext\!!es,
+ meaning = \!!bs\currentsynonymmeaning\!!es,
+ used = false,
+ }
+ })}%
+ \doif{#1}\v!yes{\unexpanded\setxvalue\currentsynonymtag{\noexpand\doinsertsynonym{\currentsynonym}{\currentsynonymtag}}}%
+ \fi
+ \endgroup}
+
+\unexpanded\def\doinsertsynonymmeaning#1#2% name tag
+ {\begingroup
+ \def\currentsynonym{#1}%
+ \dosetsynonymattributes\c!textstyle\c!textcolor
+ \synonymparameter\c!textcommand{\ctxlua{joblists.meaning("#1","#2")}}%
+ \endgroup}
+
+\unexpanded\def\doinsertsynonym#1#2% name tag
+ {\begingroup
+ \def\currentsynonym{#1}%
+ \dosetsynonymattributes\c!synonymstyle\c!synonymcolor
+ \synonymparameter\c!synonymcommand{\ctxlua{joblists.synonym("#1","#2")}}%
+ \endgroup}
+
+\def\doplacelistofsynonyms#1#2%
+ {\begingroup
+ \def\currentsynonym{#1}%
+ \definedescription % todo, per class
+ [syndef]
+ [\c!location=\synonymparameter\c!location,
+ \c!width=\synonymparameter\c!width,
+ \c!distance=\synonymparameter\c!distance,
+ \c!sample=\synonymparameter\c!sample,
+ \c!hang=\synonymparameter\c!hang,
+ \c!align=\synonymparameter\c!align,
+ \c!before=\synonymparameter\c!before,
+ \c!inbetween=\synonymparameter\c!inbetween,
+ \c!after=\synonymparameter\c!after,
+ \c!indentnext=\synonymparameter\c!indentnext,
+% \c!headstyle=\synonymparameter\c!headstyle,
+% \c!headcolor=\synonymparameter\c!headcolor,
+ \c!headstyle=\synonymparameter\c!textstyle,
+ \c!headcolor=\synonymparameter\c!textcolor,
+ \c!style=,
+ \c!color=]%
+ \startpacked
+ \ctxlua{joblists.process('#1',{ criterium = "\synonymparameter\c!criterium" })}%
+ \stoppacked
+ \endgroup}
+
+\def\docompletelistofsynonyms#1#2% expansion needed to avoid v! (due to french active !)
+ {\normalexpanded{\noexpand\systemsuppliedchapter[#1]{\noexpand\headtext{#2}}}%
+ \doplacelistofsynonyms{#1}{#2}%
+ \page[\v!yes]}
+
+\let\startsynonymoutput \relax
+\let\stopsynonymoutput \relax
+\let\startsynonymsection\gobbleoneargument
+\let\stopsynonymsection \relax
+
+\unexpanded\def\synonymentry#1#2#3%
+% {\syndef{\dosetsynonymattributes\c!textstyle\c!textcolor#2}#3\par}
+% {\startsyndef{#2}#3\stopsyndef}
+ {\syndef{#2}#3\par}
+
+\let\currentsorting\empty
+
+% we can share if we also have synonymprefix = so
+
+\def\sortingparameter #1{\csname\dosortingparameter{\??so\currentsorting}#1\endcsname}
+\def\sortingparameterhash#1{\dosortingparameterhash {\??so\currentsorting}#1}
+
+\def\dosortingparameter #1#2{\ifcsname#1#2\endcsname#1#2\else\expandafter\dosortingparentparameter \csname#1\s!parent\endcsname#2\fi}
+\def\dosortingparameterhash#1#2{\ifcsname#1#2\endcsname #1\else\expandafter\dosortingparentparameterhash\csname#1\s!parent\endcsname#2\fi}
+
+\def\dosortingparentparameter #1#2{\ifx#1\relax\s!empty\else\dosortingparameter #1#2\fi}
+\def\dosortingparentparameterhash#1#2{\ifx#1\relax \else\dosortingparameterhash#1#2\fi}
+
+\def\dosetsortingattributes#1#2% style color
+ {\edef\fontattributehash {\sortingparameterhash#1}%
+ \edef\colorattributehash{\sortingparameterhash#2}%
+ \ifx\fontattributehash \empty\else\dosetfontattribute \fontattributehash #1\fi
+ \ifx\colorattributehash\empty\else\dosetcolorattribute\colorattributehash#2\fi}
+
+\newtoks\everysetupsorting
+
+\def\setupsorting
+ {\dodoubleargument\dosetupsorting}
+
+\def\dosetupsorting[#1][#2]%
+ {\ifsecondargument
+ \getparameters[\??so#1][#2]%
+ \else
+ \getparameters[\??so][#1]%
+ \fi
+ \the\everysetupsorting}
+
+\setupsorting
+ [\c!state=\v!start,
+ %\c!command=, % we test for defined !
+ %\c!criterium=,
+ %\c!style=,
+ %\c!before=,
+ \c!after=\endgraf,
+ %\c!expansion=,
+ \s!language=\currentmainlanguage]
+
+\def\definesorting
+ {\dotripleempty\dodefinesorting}
+
+% if #3=\relax or \v!none, then no command but still protected
+
+\def\dodefinesorting[#1][#2][#3]%
+ {\ifthirdargument
+ \doifnot{#3}\v!none
+ {\ifx#3\relax \else
+ \unexpanded\def#3##1{\doinsertsort{#1}{##1}}%
+ \fi}%
+ \unexpanded\setvalue{#1}{\definesort[\v!no][#1]}%
+ \else
+ \unexpanded\setvalue{#1}{\definesort[\v!yes][#1]}%
+ \fi
+ \getparameters[\??so#1][\s!parent=\??so]%
+ \presetheadtext[#2=\Word{#2}]% after \ifthirdargument -)
+ %\ctxlua{joblists.define('#1')}%
+ \setvalue{\e!setup #2\e!endsetup}{\dodoubleargument\getparameters[\??so#1]}% to be obsolete
+ \setvalue{\e!place \e!listof#2}{\doplacelistofsortings{#1}{#2}}%
+ \setvalue{\e!complete\e!listof#2}{\docompletelistofsortings{#1}{#2}}}
+
+
+\def\definesort
+ {\dotripleempty\dodefinesort}
+
+\def\dodefinesort[#1][#2][#3]#4%
+ {\begingroup
+ \edef\currentsorting{#2}%
+ \edef\currentsortingtag{#3}%
+ \ifx\currentsortingtag\empty
+ \edef\currentsortingtag{#4}%
+ \fi
+ \ifx\currentsortingtag\empty
+ % todo: error message
+ \else
+ \edef\currentsortingexpansion{\sortingparameter\c!expansion}%
+ \preprocessexpansion\currentsortingexpansion\currentsortingtext\currentsortingcoding{#4}%
+ \ctxlua{joblists.register("\currentsorting", "sorting", {
+ metadata = {
+ catcodes = \the\catcodetable,
+ coding = "\currentsortingcoding",
+ xmlroot = \ifx\currentsortingcoding\s!xml "\xmldocument" \else nil \fi,
+ },
+ definition = {
+ tag = "\currentsortingtag",
+ synonym = \!!bs\currentsortingtext\!!es,
+ % used = false,
+ }
+ })}%
+ \doif{#1}\v!yes{\unexpanded\setxvalue\currentsortingtag{\noexpand\doinsertsort{\currentsorting}{\currentsortingtag}}}%
+ \fi
+ \endgroup}
+
+\def\doinsertsort#1#2% name tag
+ {\begingroup
+ % no kap currently, of .. we need to map cap onto WORD
+ \dosetsynonymattributes\c!style\c!color
+ \ctxlua{joblists.synonym("#1","#2")}%
+ \endgroup}
+
+% before after
+%
+% maybe just 'commandset' and then combine
+
+\def\doplacelistofsorts#1% NOG EEN RUWE VERSIE MAKEN ZONDER WITRUIMTE ETC ETC
+ {\begingroup
+ \def\currentsorting{#1}%
+ \startpacked
+ \ctxlua{joblists.process('#1',{})}%
+ \stoppacked
+ \endgroup}
+
+\def\docompletelistofsorts#1#2%
+ {\normalexpanded{\noexpand\systemsuppliedchapter[#1]{\noexpand\headtext{#2}}}%
+ \doplacelistofsorts{#1}%
+ \page[\v!yes]}
+
+\let\startsortingoutput \relax
+\let\stopsortingoutput \relax
+\let\startsortingsection\gobbleoneargument
+\let\stopsortingsection \relax
+
+\def\sortingentry#1#2#3%
+ {\begingroup\dosetsortingattributes\c!style\c!color#2\endgroup\par} % todo
+
+%D Here we define a support macro that can sort simple comma
+%D separated lists. It's a multi-list variant of a prototype
+%D written by Taco.
+
+% \def\mkloadsortedlist#1% class
+% {\bgroup
+% \getvalue{\s!set#1}%
+% \ctxlua{joblists.process('#1')}%
+% \getvalue{\s!reset#1}%
+% \egroup}
+
+% \def\processlistofsorts[#1]%
+% {\mkloadsortedlist{#1}}
+
+% \newcounter\nofsortedalphalists
+
+% \def\sortalphacommacommand#1%
+% {\begingroup
+% \doglobal\increment\nofsortedalphalists
+% \edef\currentsortedalphalist{alpha:\nofsortedalphalists}%
+% \definesorting[\currentsortedalphalist][\currentsortedalphalist]%
+% \processcommacommand[#1]{\getvalue\currentsortedalphalist}%
+% \global\let\sortedcommalist\empty
+% \def\makesortedlist##1{\doglobal\appendtocommalist{##1}\sortedcommalist}%
+% \setupsorting[\currentsortedalphalist][\c!criterium=\v!all,\c!command=\makesortedlist]%
+% \processlistofsorts[\currentsortedalphalist]%
+% \endgroup
+% \dodoglobal\let#1\sortedcommalist}
+
+% \starttext
+% \def\whatever{a,b,q,d,r,f} \sortalphacommacommand\whatever \whatever \endgraf
+% \def\whatever{ax,bx,qx,dx,rx,fx} \sortalphacommacommand\whatever \whatever \endgraf
+% \stoptext
+
+%D Presets.
+
+\definesynonyms
+ [\v!abbreviation]
+ [\v!abbreviations]
+ [\infull]
+
+\setupsynonyms
+ [\v!abbreviation]
+ [\c!textstyle=\v!capital]
+
+\definesorting
+ [\v!logo]
+ [\v!logos]
+ % no [\logogram]
+
+\definesynonyms
+ [\v!unit]
+ [\v!units]
+ [\unitmeaning]
+
+% \setupsynonyms
+% [\v!unit]
+% [\c!textstyle=\dimension]
+
+\setupsynonyms
+ [\v!unit]
+ [\c!synonymcommand=\dimension]
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/strc-xml.mkiv b/Master/texmf-dist/tex/context/base/strc-xml.mkiv
new file mode 100644
index 00000000000..3f11c0ac9f8
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/strc-xml.mkiv
@@ -0,0 +1,134 @@
+%D \module
+%D [ file=strc-xml,
+%D version=2008.10.20,
+%D title=\CONTEXT\ Structure Macros,
+%D subtitle=XML Processing,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA-ADE / Hans Hagen]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Structure Macros / XML Processing}
+
+\unprotect
+
+\startxmlsetups xml:ctx:tocentry
+ \xmlsetsetup{\xmldocument}{ctx:tocentry}{xml:ctx:tocentry}
+\stopxmlsetups
+
+\xmlregistersetup{xml:ctx:tocentry}
+
+\startxmlsetups xml:ctx:tocentry
+ \xmlflush{#1}
+\stopxmlsetups
+
+\protect \endinput
+
+% test.xml
+
+<?xml version='1.0' standalone='yes?>
+
+<document>
+ <section>
+ <title>Some <b>bold</b> title <b>bold <i>bold</i> oeps</b> and more</title>
+ <content>
+ <p>a paragraph of text</p>
+ <p>another paragraph of text</p>
+ </content>
+ </section>
+ <section>
+ <title>Another <b>bold</b> title <b>bold <i>bold</i> oeps</b> and more</title>
+ <content>
+ <p>a paragraph of text</p>
+ <p>another paragraph of text</p>
+ </content>
+ </section>
+</document>
+
+% test.tex
+
+\setupstructurehead[chapter][expansion=xml]
+
+\startxmlsetups xml:demo:define:base
+ \xmlsetsetup{demo}{document|section|p|b|i}{xml:demo:*}
+\stopxmlsetups
+
+\xmlregisterdocumentsetup{demo}{xml:demo:define:base}
+
+\startxmlsetups xml:demo:document
+ \title{Contents}
+ \placelist[chapter]
+ \page
+ \xmlflush{#1}
+\stopxmlsetups
+
+\startxmlsetups xml:demo:section
+ \chapter{\xmltext{#1}{/title}}
+ \xmlfirst{#1}{/content}
+\stopxmlsetups
+
+\startxmlsetups xml:demo:p
+ \xmlflush{#1}\endgraf
+\stopxmlsetups
+
+\startxmlsetups xml:demo:b
+ \bgroup\bf\xmlflush{#1}\egroup
+\stopxmlsetups
+
+\startxmlsetups xml:demo:i
+ \bgroup\it\xmlflush{#1}\egroup
+\stopxmlsetups
+
+\starttext
+ \xmlprocessfile{demo}{oeps.xml}{}
+\stoptext
+
+% example by thomas:
+
+\startbuffer[test]
+<auth>
+ <section>
+ <title><emph>MyTitle</emph></title>
+ <content>
+ Hello world
+ </content>
+ </section>
+</auth>
+\stopbuffer
+
+\startxmlsetups xml:mysetups
+ \xmlsetsetup{\xmldocument}{auth|section|title|content|emph}{xml:*}
+\stopxmlsetups
+
+\xmlregistersetup{xml:mysetups}
+
+\startxmlsetups xml:auth
+ \xmlflush{#1}
+\stopxmlsetups
+
+\startxmlsetups xml:section
+ \xmlflush{#1}\par \midaligned{\hl[5]}
+\stopxmlsetups
+
+\startxmlsetups xml:title
+ \section{\xmlflush{#1}}
+\stopxmlsetups
+
+\startxmlsetups xml:content
+ \xmlflush{#1}\par
+\stopxmlsetups
+
+\startxmlsetups xml:emph
+ {\bgroup\em \xmlflush{#1}\egroup}
+\stopxmlsetups
+
+\setuphead
+ [section]
+ [style=normal,number=no,expansion=yes,page=yes]
+
+\starttext
+ \xmlprocessbuffer{main}{test}{}
+\stoptext
diff --git a/Master/texmf-dist/tex/context/base/supp-box.tex b/Master/texmf-dist/tex/context/base/supp-box.tex
index 69035d45fcb..e314305d7dc 100644
--- a/Master/texmf-dist/tex/context/base/supp-box.tex
+++ b/Master/texmf-dist/tex/context/base/supp-box.tex
@@ -15,27 +15,12 @@
%D are quite simple, some are more advanced and when understood
%D well, all can be of use.
-\writestatus{loading}{Context Support Macros / Boxes}
+%D No longer generic, why bother.
-\unprotect
-
-% watch this: \setbox4\emptybox \wd4\onepoint \the\wd4, no dimensions for void
-
-%D First a couple of hacks to make this module loadable
-%D in plain \TEX.
-
-\ifx\myalloc@\undefined % seems like we're not in context
- \def\newbox{\alloc@4\box\chardef\insc@unt}
-\fi
+\writestatus{loading}{ConTeXt Support Macros / Boxes}
-\ifx \scratchbox\undefined \newbox \scratchbox \fi
-\ifx\globalscratchbox\undefined \newbox\globalscratchbox \fi
+\unprotect
-\ifx\normalhbox \undefined \let\normalhbox \hbox \fi
-\ifx\normalvbox \undefined \let\normalvbox \vbox \fi
-\ifx\normalvtop \undefined \let\normalvtop \vtop \fi
-\ifx\normalvcenter\undefined \let\normalvcenter\vcenter \fi
-
%D \macros
%D {strutdp,strutht,strutwd}
%D
@@ -55,8 +40,12 @@
%D Let's start with an easy one. The next macro hides the
%D ugly \type {@} in \type {\voidb@x}.
-\def\emptybox {\box\voidb@x}
-\def\resetbox#1{\setbox#1\box\voidb@x}
+\ifx\voidbox\undefined \newbox\voidbox \fi
+\ifx\voidb@x\undefined \let\voidb@x\voidbox \fi
+
+\def\emptybox {\box \voidbox}
+\def\unvoidbox {\unhbox\voidbox}
+\def\resetbox#1{\setbox#1\box\voidbox}
%D \macros
%D {nextdepth}
@@ -211,7 +200,7 @@
\next}
\def\mathsm@sh#1#2% redefined plain macro
- {\finsm@sh{$\m@th#1{#2}$}}
+ {\finsm@sh{$\mathsurround\zeropoint#1{#2}$}}
\def\makesm@sh#1% redefined plain macro (handles t b h d w)
{\if#1w\nextboxwd\zeropoint\else
@@ -221,8 +210,7 @@
\if#1b\nextboxdp\zeropoint\fi\fi\fi\fi\fi}
\def\finsm@sh % redefined plain macro
- {\dowithnextbox
- {\@EA\handletokens\@@smash\with\makesm@sh\flushnextbox}\normalhbox}
+ {\dowithnextbox{\@EA\handletokens\@@smash\with\makesm@sh\flushnextbox}\normalhbox}
%D \starttabulate[|l|l|]
%D \NC w \NC \ruledhbox{\smash [w]{This is some great smashing, isn't it?}} \NC \NR
@@ -238,9 +226,9 @@
%D The next implementation of \type {\phantom} cum suis does
%D not grab an argument in the non||math case, which is better.
-\def\phantom {\ph@nt\nextbox\nextbox\nextbox}
-\def\vphantom{\ph@nt\nextbox\nextbox\voidb@x}
-\def\hphantom{\ph@nt\voidb@x\voidb@x\nextbox}
+\unexpanded\def\phantom {\ph@nt\nextbox\nextbox\nextbox}
+\unexpanded\def\vphantom{\ph@nt\nextbox\nextbox\voidbox}
+\unexpanded\def\hphantom{\ph@nt\voidbox\voidbox\nextbox}
%D Due to a complicated call to \type {\mathpallete} and
%D thereby \type {\mathchoice}, the next macro looks ugly.
@@ -249,7 +237,7 @@
\def\ph@nt#1#2#3%
{\def\doph@nt
{\ifmmode
- \def\mathph@nt####1####2{\makeph@nt#1#2#3{$\m@th####1{####2}$}}%
+ \def\mathph@nt####1####2{\makeph@nt#1#2#3{$\mathsurround\zeropoint####1{####2}$}}%
\def\nextph@nt{\mathpalette\mathph@nt}%
\else\ifx\nextph@nt\bgroup
\def\nextph@nt{\makeph@nt#1#2#3}%
@@ -260,7 +248,7 @@
\futurelet\nextph@nt\doph@nt}
\def\makeph@nt#1#2#3%
- {\begingroup % why no \bgroup
+ {\begingroup
\dowithnextbox
{\setbox\scratchbox\null
\ht\scratchbox\ht#1%
@@ -274,7 +262,7 @@
%D We also define plain's \type {\mathstrut}.
-\def\mathstrut{\vphantom{(}}
+\unexpanded\def\mathstrut{\vphantom{(}}
%D \macros
%D {getboxheight}
@@ -311,7 +299,7 @@
%D number.
\def\getboxheight#1\of#2\box#3%
- {\def\next{#1\ht\registercount\advance#1\dp\registercount}%
+ {\def\next{#1\dimexpr\ht\registercount+\dp\registercount\relax}%
\afterassignment\next\registercount=#3}
%D For a long time the following three macros were part of
@@ -362,46 +350,92 @@
\newcount\noflines
\newdimen\noflinesheight
-\def\getnoflines {\xdogetnoflines\plusone } % compensated
-\def\getroundednoflines{\xdogetnoflines\plustwo } % rounded
-\def\getrawnoflines {\xdogetnoflines\plusthree} % truncated
+% \def\getnoflines {\xdogetnoflines\plusone } % compensated
+% \def\getroundednoflines{\xdogetnoflines\plustwo } % rounded
+% \def\getrawnoflines {\xdogetnoflines\plusthree} % truncated
+%
+% \def\xdogetnoflines#1#2%
+% {\noflinesheight#2\relax
+% \ifzeropt\noflinesheight
+% \noflines\zerocount
+% \else\ifdim\noflinesheight>\zeropoint
+% \ifcase#1\or
+% \advance\noflinesheight-\roundingeps
+% \divide\noflinesheight\openlineheight
+% \noflines\noflinesheight
+% \advance\noflines\plusone
+% \or
+% \advance\noflinesheight\roundingeps
+% \divide\noflinesheight\openlineheight
+% \noflines\noflinesheight
+% \or
+% \advance\noflinesheight\roundingeps
+% \advance\noflinesheight.5\openlineheight
+% \divide\noflinesheight\openlineheight
+% \noflines\noflinesheight
+% \fi
+% \else
+% \ifcase#1\or
+% \advance\noflinesheight\roundingeps
+% \divide\noflinesheight\openlineheight
+% \noflines\noflinesheight
+% \advance\noflines\minusone
+% \or
+% \advance\noflinesheight-\roundingeps
+% \divide\noflinesheight\openlineheight
+% \noflines\noflinesheight
+% \or
+% \advance\noflinesheight-\roundingeps
+% \advance\noflinesheight-.5\openlineheight
+% \divide\noflinesheight\openlineheight
+% \noflines\noflinesheight
+% \fi
+% \fi\fi}
-\def\xdogetnoflines#1#2%
- {\noflinesheight#2\relax
+\def\getnoflines#1%
+ {\noflinesheight#1\relax
\ifzeropt\noflinesheight
\noflines\zerocount
- \else\ifdim#2>\zeropoint
- \ifcase#1\or
- \advance\noflinesheight-\roundingeps
- \divide\noflinesheight\openlineheight
- \noflines\noflinesheight
- \advance\noflines\plusone
- \or
- \advance\noflinesheight\roundingeps
- \divide\noflinesheight\openlineheight
- \noflines\noflinesheight
- \or
- \advance\noflinesheight\roundingeps
- \advance\noflinesheight.5\openlineheight
- \divide\noflinesheight\openlineheight
- \noflines\noflinesheight
- \fi
+ \else\ifdim\noflinesheight>\zeropoint
+ \advance\noflinesheight-\roundingeps
+ \divide\noflinesheight\openlineheight
+ \noflines\noflinesheight
+ \advance\noflines\plusone
\else
- \ifcase#1\or
- \advance\noflinesheight\roundingeps
- \divide\noflinesheight\openlineheight
- \noflines\noflinesheight
- \advance\noflines\minusone
- \or
- \advance\noflinesheight-\roundingeps
- \divide\noflinesheight\openlineheight
- \noflines\noflinesheight
- \or
- \advance\noflinesheight-\roundingeps
- \advance\noflinesheight-.5\openlineheight
- \divide\noflinesheight\openlineheight
- \noflines\noflinesheight
- \fi
+ \advance\noflinesheight\roundingeps
+ \divide\noflinesheight\openlineheight
+ \noflines\noflinesheight
+ \advance\noflines\minusone
+ \fi\fi}
+
+\def\getroundednoflines#1%
+ {\noflinesheight#1\relax
+ \ifzeropt\noflinesheight
+ \noflines\zerocount
+ \else\ifdim\noflinesheight>\zeropoint
+ \advance\noflinesheight\roundingeps
+ \divide\noflinesheight\openlineheight
+ \noflines\noflinesheight
+ \else
+ \advance\noflinesheight-\roundingeps
+ \divide\noflinesheight\openlineheight
+ \noflines\noflinesheight
+ \fi\fi}
+
+\def\getrawnoflines#1%
+ {\noflinesheight#1\relax
+ \ifzeropt\noflinesheight
+ \noflines\zerocount
+ \else\ifdim\noflinesheight>\zeropoint
+ \advance\noflinesheight\roundingeps
+ \advance\noflinesheight.5\openlineheight
+ \divide\noflinesheight\openlineheight
+ \noflines\noflinesheight
+ \else
+ \advance\noflinesheight-\roundingeps
+ \advance\noflinesheight-.5\openlineheight
+ \divide\noflinesheight\openlineheight
+ \noflines\noflinesheight
\fi\fi}
%D Let's proof that it works:
@@ -441,7 +475,7 @@
%D \determinenoflines{\definedfont[Sans at 40pt]test\\test}
%D \stoptyping
-\def\determinenoflines
+\def\determinenoflines % can be mkiv'd
{\bgroup
\forgetall
\let\crlf\endgraf
@@ -470,9 +504,11 @@
%D \doiftext {data} {then branch}
%D \stoptyping
+\newif\iftrialtypesetting
+
\def\doiftextelse#1%
{\bgroup
- \setbox\scratchbox\normalhbox{\ignorespaces#1\removeunwantedspaces}%
+ \setbox\scratchbox\normalhbox{\trialtypesettingtrue\ignorespaces#1\removeunwantedspaces}%
\ifzeropt\wd\scratchbox
\egroup\@EA\secondoftwoarguments
\else
@@ -530,6 +566,14 @@
\def\dododowithnextbox
{\aftergroup\dodowithnextbox}
+\long\def\dowithnextboxcs#1%
+ {\let\dodowithnextbox#1%
+ \afterassignment\dododowithnextbox
+ \setbox\nextbox}
+
+\def\dododowithnextbox
+ {\aftergroup\dodowithnextbox}
+
%D So in fact we get:
%D
%D \starttyping
@@ -628,28 +672,27 @@
%D Some well known friends, but we implement them our own
%D way. We want the macros to work in both math and text mode.
-\def\dorlap{\begingroup\dowithnextbox{\normalhbox to \zeropoint
- {\flushnextbox\normalhss}\endgroup}\normalhbox}
+\def\dodorlap{\normalhbox to \zeropoint{\flushnextbox\normalhss}\endgroup}
+\def\dodollap{\normalhbox to \zeropoint{\normalhss\flushnextbox}\endgroup}
+\def\dodoclap{\normalhbox to \zeropoint{\normalhss\flushnextbox\normalhss}\endgroup}
-\def\dollap{\begingroup\dowithnextbox{\normalhbox to \zeropoint
- {\normalhss\flushnextbox}\endgroup}\normalhbox}
+\def\dorlap{\begingroup\dowithnextboxcs\dodorlap\normalhbox}
+\def\dollap{\begingroup\dowithnextboxcs\dodollap\normalhbox}
+\def\doclap{\begingroup\dowithnextboxcs\dodoclap\normalhbox}
-\def\doclap{\begingroup\dowithnextbox{\normalhbox to \zeropoint
- {\normalhss\flushnextbox\normalhss}\endgroup}\normalhbox}
-
-\def\domathclap{\mathpalette\dodomathclap} \def\dodomathclap#1#2{\doclap{$\m@th#1#2$}}
-\def\domathllap{\mathpalette\dodomathllap} \def\dodomathllap#1#2{\dollap{$\m@th#1#2$}}
-\def\domathrlap{\mathpalette\dodomathrlap} \def\dodomathrlap#1#2{\dorlap{$\m@th#1#2$}}
+\def\domathclap{\mathpalette\dodomathclap} \def\dodomathclap#1#2{\doclap{$\mathsurround\zeropoint#1#2$}}
+\def\domathllap{\mathpalette\dodomathllap} \def\dodomathllap#1#2{\dollap{$\mathsurround\zeropoint#1#2$}}
+\def\domathrlap{\mathpalette\dodomathrlap} \def\dodomathrlap#1#2{\dorlap{$\mathsurround\zeropoint#1#2$}}
\unexpanded\def\rlap{\mathortext\domathrlap\dorlap}
\unexpanded\def\llap{\mathortext\domathllap\dollap}
\unexpanded\def\clap{\mathortext\domathclap\doclap}
-\def\tlap{\begingroup\dowithnextbox{\normalvbox to \zeropoint
- {\normalvss\flushnextbox}\endgroup}\normalvbox}
+\def\dodotlap{\normalvbox to \zeropoint{\normalvss\flushnextbox}\endgroup}
+\def\dodoblap{\normalvbox to \zeropoint{\flushnextbox\normalvss}\endgroup}
-\def\blap{\begingroup\dowithnextbox{\normalvbox to \zeropoint
- {\flushnextbox\normalvss}\endgroup}\normalvbox}
+\def\tlap{\begingroup\dowithnextboxcs\dodotlap\normalvbox}
+\def\blap{\begingroup\dowithnextboxcs\dodoblap\normalvbox}
%D \macros
%D {beginofshapebox,
@@ -817,73 +860,65 @@
\ifx\originalshapebox\undefined \let\originalshapebox\oldshapebox \fi
-\beginTEX
-
-\def\insertshapesignal
- {\normalhbox to \shapesignal{\strut\hss}% plus \strut
- \prevdepth\strutdp} % never \nointerlineskip
-
-% \def\restoreshapebox
-% {\global\setbox\tmpshapebox\copy\originalshapebox} % \oldshapebox
-
-\def\restoreshapebox % compensates for the signal
- {\global\setbox\tmpshapebox\vbox{\vskip-\lineheight\unvcopy\oldshapebox}}
-
-\def\shapeboxstrut % put this in front if needed !
- {\vrule\!!width\zeropoint\!!height\ht\shapebox\!!depth\dp\shapebox}
-
-\def\dodoreshapebox#1#2#3#4% \shapebox, \shapepenalty, \shapekern, \shapeskip
- {\ifzeropt\lastskip % \ifdim\lastskip=\zeropoint\relax
- \ifzeropt\lastkern % \ifdim\lastkern=\zeropoint\relax
- \ifcase\lastpenalty % \ifnum\lastpenalty=\zerocount
- \setbox\shapebox\lastbox
- \ifvoid\shapebox
- \unskip\unpenalty\unkern
- \else
- \ifdim\wd\shapebox=\shapesignal\relax
- \exitloop
- \else
- \shapecounter\zerocount
- \global\setbox\tmpshapebox\normalvbox{#1\unvbox\tmpshapebox}%
- \fi
- \fi
- \else
- \shapepenalty\lastpenalty
- \global\setbox\tmpshapebox\normalvbox{#2\unvbox\tmpshapebox}%
- \unpenalty
- \fi
- \else
- \shapekern\lastkern
- \global\setbox\tmpshapebox\normalvbox{#3\unvbox\tmpshapebox}%
- \unkern
- \fi
- \else
- \shapeskip\lastskip
- \global\setbox\tmpshapebox\normalvbox{#4\unvbox\tmpshapebox}%
- \unskip
- \fi
- \ifnum\shapecounter>100 % can be less
- \global\reshapingfailedtrue
- \message{!!forced exit from shapebox!!}%
- \restoreshapebox
- \exitloop
- \else
- \advance\shapecounter \plusone
- \fi}
-
-\endTEX
-
-% Now that the lastnode bugfixes are wide spread we can use:
-
-\beginETEX \lastnodetype
+% %D The old traditional tex variant:
+%
+% \def\insertshapesignal
+% {\normalhbox to \shapesignal{\strut\hss}% plus \strut
+% \prevdepth\strutdp} % never \nointerlineskip
+%
+% \def\restoreshapebox % compensates for the signal
+% {\global\setbox\tmpshapebox\vbox{\vskip-\lineheight\unvcopy\oldshapebox}}
+%
+% \def\shapeboxstrut % put this in front if needed !
+% {\vrule\!!width\zeropoint\!!height\ht\shapebox\!!depth\dp\shapebox}
+%
+% \def\dodoreshapebox#1#2#3#4% \shapebox, \shapepenalty, \shapekern, \shapeskip
+% {\ifzeropt\lastskip % \ifdim\lastskip=\zeropoint\relax
+% \ifzeropt\lastkern % \ifdim\lastkern=\zeropoint\relax
+% \ifcase\lastpenalty % \ifnum\lastpenalty=\zerocount
+% \setbox\shapebox\lastbox
+% \ifvoid\shapebox
+% \unskip\unpenalty\unkern
+% \else
+% \ifdim\wd\shapebox=\shapesignal\relax
+% \exitloop
+% \else
+% \shapecounter\zerocount
+% \global\setbox\tmpshapebox\normalvbox{#1\unvbox\tmpshapebox}%
+% \fi
+% \fi
+% \else
+% \shapepenalty\lastpenalty
+% \global\setbox\tmpshapebox\normalvbox{#2\unvbox\tmpshapebox}%
+% \unpenalty
+% \fi
+% \else
+% \shapekern\lastkern
+% \global\setbox\tmpshapebox\normalvbox{#3\unvbox\tmpshapebox}%
+% \unkern
+% \fi
+% \else
+% \shapeskip\lastskip
+% \global\setbox\tmpshapebox\normalvbox{#4\unvbox\tmpshapebox}%
+% \unskip
+% \fi
+% \ifnum\shapecounter>100 % can be less
+% \global\reshapingfailedtrue
+% \message{!!forced exit from shapebox!!}%
+% \restoreshapebox
+% \exitloop
+% \else
+% \advance\shapecounter \plusone
+% \fi}
+%
+% But now that the lastnode bugfixes are wide spread we can use:
+%
+% We will turn this into a \MKIV\ variant.
\def\insertshapesignal
{\normalhbox to \shapesignal{\strut\hss}% plus \strut
\prevdepth\strutdp} % never \nointerlineskip
-% \def\restoreshapebox
-% {\global\setbox\tmpshapebox\copy\originalshapebox} % \oldshapebox
-
\def\restoreshapebox % compensates for the signal
{\global\setbox\tmpshapebox\vbox{\vskip-\lineheight\unvcopy\oldshapebox}}
@@ -921,8 +956,6 @@
\advance\shapecounter \plusone
\fi}
-\endETEX
-
\def\beginofshapebox
{\setbox\oldshapebox\normalvbox
\bgroup
@@ -1038,8 +1071,22 @@
%D preparing a long list of words we decided to show the
%D hyphens, but had to find out that the \PLAIN\ alternative
%D can hardly be used and|/|or adapted to typesetting. The next
-%D two macros do the job and a little more.
-%D
+%D two macros do the job and a little more. First we define the
+%D (slightly adapted) plain variant:
+
+\def\showhyphens#1%
+ {\begingroup
+ \setbox\scratchbox\vbox
+ {\parfillskip\zerocount
+ \hsize\maxdimen
+ %\tenrm
+ \pretolerance\minusone
+ \tolerance\minusone
+ \hbadness\zerocount
+ \showboxdepth\zerocount
+ \ #1}%
+ \endgroup}
+
%D The simple command \type{\hyphenatedword} accepts one
%D argument and gives the hyphenated word. This macro calls for
%D
@@ -1332,7 +1379,7 @@
%\def\limitatetext##1##2##3{##1}% \def !
\let\limitatetext\firstofthreearguments
\fakecompoundhyphen % dangerous ! ! ! ! ! ! ! ! !
- \dowithnextbox\dolimitatetext\normalhbox}
+ \dowithnextboxcs\dolimitatetext\normalhbox}
\def\dolimitatetext#1#2%
{\doifelsenothing{#1}
@@ -2262,11 +2309,13 @@
\hskip-\scratchdimen
\normalhbox to \scratchdimen{\hss\flushnextbox\hss}}}
-\def\startoverlay
+\unexpanded\def\startoverlay
{\bgroup
\let\stopoverlay\egroup
\processboxes\dooverlaybox}
+\let\stopoverlay\relax
+
% %D \macros
% %D {starthspread}
% %D
@@ -2392,13 +2441,17 @@
%D
%D A few more boxes.
-\def\lhbox{\dowithnextbox{\normalhbox to \hsize{\flushnextbox\hss }}\normalhbox}
-\def\mhbox{\dowithnextbox{\normalhbox to \hsize{\hss\flushnextbox\hss}}\normalhbox}
-\def\rhbox{\dowithnextbox{\normalhbox to \hsize{\hss\flushnextbox }}\normalhbox}
+\def\dodolhbox{\normalhbox to \hsize{\flushnextbox\hss }}
+\def\dodomhbox{\normalhbox to \hsize{\hss\flushnextbox\hss}}
+\def\dodorhbox{\normalhbox to \hsize{\hss\flushnextbox }}
-\let\lefthbox =\lhbox
-\let\midhbox =\mhbox
-\let\righthbox=\rhbox
+\def\lhbox{\dowithnextboxcs\dodolhbox\normalhbox}
+\def\mhbox{\dowithnextboxcs\dodomhbox\normalhbox}
+\def\rhbox{\dowithnextboxcs\dodorhbox\normalhbox}
+
+\let\lefthbox \lhbox
+\let\midhbox \mhbox
+\let\righthbox\rhbox
%D \macros
%D {boxofsize}
@@ -2700,31 +2753,35 @@
%D \normalhbox{y:\foundbox{two}{a}} \par
%D \stoptyping
-% a first version
+% we keep it around as a demonstration of good old tex code:
%
% \def\@@stackbox{boxstack:b:}
% \def\@@stackmax{boxstack:m:}
% \def\@@stacktag{boxstack:t:}
+% \def\@@stacklst{boxstack:l:}
%
% \def\initializeboxstack#1%
% {\ifundefined{\@@stackbox#1}%
% \@EA\newbox\csname\@@stackbox#1\endcsname
% \else
% \global\setbox\csname\@@stackbox#1\endcsname\normalvbox{}%
+% \def\docommand##1{\global\letbeundefined{\@@stacktag#1:##1}}%
+% \processcommacommand[\getvalue{\@@stacklst#1}]\docommand
% \fi
-% % actually we should erase the old values
-% \setgvalue{\@@stackmax#1}{0}}
+% \global\letvalue{\@@stacklst#1}\empty
+% \global\letvalue{\@@stackmax#1}\!!zeropoint}
%
% \def\savebox#1#2% stack name
% {\dowithnextbox
% {\doifdefined{\@@stackbox#1}
% {\@EA\doglobal\@EA\increment\csname\@@stackmax#1\endcsname
-% \setxvalue{\@@stacktag#2}{\csname\@@stackmax#1\endcsname}%
-% \global\setbox\csname\@@stackbox#1\endcsname=\normalvbox
+% \setxvalue{\@@stacktag#1:#2}{\csname\@@stackmax#1\endcsname}%
+% \setxvalue{\@@stacklst#1}{\getvalue{\@@stacklst#1},#2}%
+% \global\setbox\csname\@@stackbox#1\endcsname\normalvbox
% {\forgetall
-% \setbox\scratchbox=\normalvbox{\flushnextbox}
-% \ht\scratchbox=\onepoint
-% \dp\scratchbox=\zeropoint
+% \setbox\scratchbox\normalvbox{\flushnextbox}
+% \ht\scratchbox\onepoint
+% \dp\scratchbox\zeropoint
% \unvbox\csname\@@stackbox#1\endcsname
% \offinterlineskip
% \allowbreak
@@ -2734,76 +2791,21 @@
% \def\foundbox#1#2%
% {\normalvbox
% {\doifdefined{\@@stackbox#1}
-% {\doifdefined{\@@stacktag#2}
-% {\setbox\scratchbox=\normalvbox
+% {\doifdefined{\@@stacktag#1:#2}
+% {\setbox\scratchbox\normalvbox
% {\splittopskip\zeropoint
-% \setbox0=\copy\csname\@@stackbox#1\endcsname
-% \dimen0=\getvalue{\@@stacktag#2}pt
-% \advance\dimen0 by -\onepoint
-% \setbox2=\vsplit0 to \dimen0
+% \setbox0\copy\csname\@@stackbox#1\endcsname
+% \dimen0=\getvalue{\@@stacktag#1:#2}\points
+% \advance\dimen0 -\onepoint
+% \setbox2\vsplit0 to \dimen0
% \ifdim\ht0>\onepoint
-% \setbox0=\vsplit0 to \onepoint
+% \setbox0\vsplit0 to \onepoint
% \fi
-% \unvbox0\setbox0=\lastbox\unvbox0}%
+% \unvbox0\setbox0\lastbox\unvbox0}%
% \unvbox\scratchbox}}}}
-
-\beginTEX \newbox
-
-\def\@@stackbox{boxstack:b:}
-\def\@@stackmax{boxstack:m:}
-\def\@@stacktag{boxstack:t:}
-\def\@@stacklst{boxstack:l:}
-
-\def\initializeboxstack#1%
- {\ifundefined{\@@stackbox#1}%
- \@EA\newbox\csname\@@stackbox#1\endcsname
- \else
- \global\setbox\csname\@@stackbox#1\endcsname\normalvbox{}%
- \def\docommand##1{\global\letbeundefined{\@@stacktag#1:##1}}%
- \processcommacommand[\getvalue{\@@stacklst#1}]\docommand
- \fi
- \global\letvalue{\@@stacklst#1}\empty
- \global\letvalue{\@@stackmax#1}\!!zeropoint}
-
-\def\savebox#1#2% stack name
- {\dowithnextbox
- {\doifdefined{\@@stackbox#1}
- {\@EA\doglobal\@EA\increment\csname\@@stackmax#1\endcsname
- \setxvalue{\@@stacktag#1:#2}{\csname\@@stackmax#1\endcsname}%
- \setxvalue{\@@stacklst#1}{\getvalue{\@@stacklst#1},#2}%
- \global\setbox\csname\@@stackbox#1\endcsname\normalvbox
- {\forgetall
- \setbox\scratchbox\normalvbox{\flushnextbox}
- \ht\scratchbox\onepoint
- \dp\scratchbox\zeropoint
- \unvbox\csname\@@stackbox#1\endcsname
- \offinterlineskip
- \allowbreak
- \box\scratchbox}}}%
- \normalvbox}
-
-\def\foundbox#1#2%
- {\normalvbox
- {\doifdefined{\@@stackbox#1}
- {\doifdefined{\@@stacktag#1:#2}
- {\setbox\scratchbox\normalvbox
- {\splittopskip\zeropoint
- \setbox0\copy\csname\@@stackbox#1\endcsname
- \dimen0=\getvalue{\@@stacktag#1:#2}\points
- \advance\dimen0 -\onepoint
- \setbox2\vsplit0 to \dimen0
- \ifdim\ht0>\onepoint
- \setbox0\vsplit0 to \onepoint
- \fi
- \unvbox0\setbox0\lastbox\unvbox0}%
- \unvbox\scratchbox}}}}
-
-\def\doifboxelse#1#2%
- {\doifdefinedelse{\@@stacktag#1:#2}}
-
-\endTEX
-
-\beginETEX \newbox
+%
+% \def\doifboxelse#1#2%
+% {\doifdefinedelse{\@@stacktag#1:#2}}
\def\@@stackbox{@box@}
\def\@@stacklst{@xob@}
@@ -2992,13 +2994,6 @@
\def\setdimentoatleast#1#2%
{\ifdim#1>\zeropoint\else#1=#2\fi}
-%D We need'm raw.
-
-\ifx \normalhbox \undefined \let \normalhbox = \hbox \fi
-\ifx \normalvbox \undefined \let \normalvbox = \vbox \fi
-\ifx \normalvtop \undefined \let \normalvtop = \vtop \fi
-\ifx \normalvcenter \undefined \let \normalvcenter = \vcenter \fi
-
%D And even rawer:
\let\naturalhbox \normalhbox
@@ -3006,13 +3001,13 @@
\let\naturalvtop \normalvtop
\let\naturalvcenter \normalvtop
-\beginOMEGA dir
+\ifdefined\textdir
-\def\naturalhbox{\normalhbox dir TLT}
-\def\naturalvbox{\normalvbox dir TLT}
-%def\naturalvtop{\normalvtop dir TLT}
+ \def\naturalhbox{\normalhbox dir TLT}
+ \def\naturalvbox{\normalvbox dir TLT}
+ %def\naturalvtop{\normalvtop dir TLT}
-\endOMEGA
+\fi
%D \macros
%D {vcenter}
@@ -3044,27 +3039,17 @@
%D
%D A prelude to an extended \TEX:
-% it's about time to drop tex in favour of etex / TEX VERSION TO BE TESTED
-
-\beginTEX
-
- \def\setboxllx #1#2{\bgroup\scratchdimen#2\expanded{\egroup\noexpand\setevalue{b@@x\number#1}{\the\scratchdimen}}}
- \def\setboxlly #1#2{\bgroup\scratchdimen#2\expanded{\egroup\noexpand\setevalue{b@@y\number#1}{\the\scratchdimen}}}
-
- \def\gsetboxllx#1#2{\bgroup\scratchdimen#2\setxvalue{b@@x\number#1}{\the\scratchdimen}\egroup}
- \def\gsetboxlly#1#2{\bgroup\scratchdimen#2\setxvalue{b@@y\number#1}{\the\scratchdimen}\egroup}
-
-\endTEX
-
-\beginETEX
-
- \def\setboxllx#1#2{\setevalue{b@@x\number#1}{\the\dimexpr(#2)}}
- \def\setboxlly#1#2{\setevalue{b@@y\number#1}{\the\dimexpr(#2)}}
+% \def\setboxllx #1#2{\bgroup\scratchdimen#2\expanded{\egroup\noexpand\setevalue{b@@x\number#1}{\the\scratchdimen}}}
+% \def\setboxlly #1#2{\bgroup\scratchdimen#2\expanded{\egroup\noexpand\setevalue{b@@y\number#1}{\the\scratchdimen}}}
+%
+% \def\gsetboxllx#1#2{\bgroup\scratchdimen#2\setxvalue{b@@x\number#1}{\the\scratchdimen}\egroup}
+% \def\gsetboxlly#1#2{\bgroup\scratchdimen#2\setxvalue{b@@y\number#1}{\the\scratchdimen}\egroup}
- \def\gsetboxllx{\global\setboxllx}
- \def\gsetboxlly{\global\setboxlly}
+\def\setboxllx#1#2{\setevalue{b@@x\number#1}{\the\dimexpr#2\relax}}
+\def\setboxlly#1#2{\setevalue{b@@y\number#1}{\the\dimexpr#2\relax}}
-\endETEX
+\def\gsetboxllx{\global\setboxllx}
+\def\gsetboxlly{\global\setboxlly}
\def\getboxllx#1{\executeifdefined{b@@x\number#1}\zeropoint}
\def\getboxlly#1{\executeifdefined{b@@y\number#1}\zeropoint}
@@ -3094,6 +3079,32 @@
\interactionmode\scratchcounter
\egroup}}
+\def\spreadhbox#1% rebuilds \hbox{<box><hss><box><hss><box>}
+ {\bgroup
+ \ifhbox#1\relax
+ \setbox2\emptybox
+ \unhbox#1%
+ \doloop
+ {\unpenalty\unskip\unpenalty\unskip\unpenalty\unskip
+ \setbox0\lastbox
+ \ifvoid0
+ \exitloop
+ \else
+ \setbox2\hbox
+ {\ifhbox0 \spreadhbox0\else\box0\fi
+ \ifvoid2 \else\hss\unhbox2\fi}%
+ \fi}%
+ \ifvoid2\else\unhbox2\fi
+ \else
+ \box#1%
+ \fi
+ \egroup}
+
+% makes sense but too much log for overfull boxes:
+%
+% \showboxbreadth\maxdimen
+% \showboxdepth \maxdimen
+
\protect \endinput
% a bit of test code:
diff --git a/Master/texmf-dist/tex/context/base/supp-dir.mkii b/Master/texmf-dist/tex/context/base/supp-dir.mkii
new file mode 100644
index 00000000000..41cd1b56fae
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/supp-dir.mkii
@@ -0,0 +1,41 @@
+%D \module
+%D [ file=supp-dir,
+%D version=2004.11.11,
+%D title=\CONTEXT\ Support Macros,
+%D subtitle=Directional Things,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D Inspired by and needed for Adam Lindsay's \XETEX\ efforts:
+%D
+%D \starttyping
+%D \starttext
+%D \input tufte \par
+%D \pardir TRT \input tufte \par \input tufte \par
+%D \pardir TLT \input tufte \par
+%D \stoptext
+%D \stoptyping
+
+\unprotect
+
+\chardef\inlinedirection\zerocount % 0==notset 1==LR 2==RL
+
+\def\pardir#1#2#3% messages end up in a higher level command
+ {\global\TeXXeTstate\plusone
+ \if#2L\chardef\inlinedirection\plusone\else
+ \if#2R\chardef\inlinedirection\plustwo\fi\fi
+ \checkinlinedirection} % needed / added
+
+\def\checkinlinedirection
+ {\ifcase\inlinedirection\or\beginL\or\beginR\fi}
+
+% see core-ini.tex
+%
+% \appendtoks \checkinlinedirection \to \everypar
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/supp-ini.tex b/Master/texmf-dist/tex/context/base/supp-dir.mkiv
index afa8b12d928..2d7f6bd6640 100644
--- a/Master/texmf-dist/tex/context/base/supp-ini.tex
+++ b/Master/texmf-dist/tex/context/base/supp-dir.mkiv
@@ -1,8 +1,8 @@
%D \module
-%D [ file=supp-ini,
-%D version=1995.10.10,
-%D title=\CONTEXT\ Support ystem Macros,
-%D subtitle=Initializations,
+%D [ file=supp-dir,
+%D version=2004.11.11,
+%D title=\CONTEXT\ Support Macros,
+%D subtitle=Directional Things,
%D author=Hans Hagen,
%D date=\currentdate,
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Support Macros / Initializations}
+%D We no longer have the \ETEX\ direction primitives.
\unprotect
diff --git a/Master/texmf-dist/tex/context/base/supp-dir.tex b/Master/texmf-dist/tex/context/base/supp-dir.tex
deleted file mode 100644
index ad14eab1d10..00000000000
--- a/Master/texmf-dist/tex/context/base/supp-dir.tex
+++ /dev/null
@@ -1,70 +0,0 @@
-%D \module
-%D [ file=supp-dir,
-%D version=2004.11.11,
-%D title=\CONTEXT\ Support Macros,
-%D subtitle=Directional Things,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D Inspired by and needed for Adam Lindsay's \XETEX\ efforts:
-%D
-%D \starttyping
-%D \starttext
-%D \input tufte \par
-%D \pardir TRT \input tufte \par \input tufte \par
-%D \pardir TLT \input tufte \par
-%D \stoptext
-%D \stoptyping
-
-\unprotect
-
-\chardef \inlinedirection \zerocount % 0==notset 1==LR 2==RL
-\let \checkinlinedirection \donothing
-
-\beginETEX \beginL
-
- \ifx\pardir \undefined
-
- \def\pardir#1#2#3% messages end up in a higher level command
- {\global\TeXXeTstate\plusone
- \if#2L\chardef\inlinedirection\plusone\else
- \if#2R\chardef\inlinedirection\plustwo\fi\fi
- \checkinlinedirection} % needed / added
-
- \let\normalpardir\pardir
-
- \def\checkinlinedirection
- {\ifcase\inlinedirection\or\beginL\or\beginR\fi}
-
- \else
-
-% \let\normalpardir\pardir
-
-% \def\pardir#1#2#3%
-% {\if#2L\chardef\inlinedirection\plusone\else
-% \if#2R\chardef\inlinedirection\plustwo\fi\fi
-% \normalpardir#1#2#3}
-
-% \def\beginL
-% {} % todo: \normalpardir...
-
-% \def\beginR
-% {} % todo: \normalpardir...
-
-% \def\checkinlinedirection
-% {\ifcase\inlinedirection\or\beginL\or\beginR\fi}
-
- \fi
-
-\endETEX
-
-% see core-ini.tex
-%
-% \appendtoks \checkinlinedirection \to \everypar
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/supp-emp.tex b/Master/texmf-dist/tex/context/base/supp-emp.mkii
index 15489bca783..15489bca783 100644
--- a/Master/texmf-dist/tex/context/base/supp-emp.tex
+++ b/Master/texmf-dist/tex/context/base/supp-emp.mkii
diff --git a/Master/texmf-dist/tex/context/base/supp-eps.tex b/Master/texmf-dist/tex/context/base/supp-eps.mkii
index 0a3cfa2b6dd..5684b25dd5c 100644
--- a/Master/texmf-dist/tex/context/base/supp-eps.tex
+++ b/Master/texmf-dist/tex/context/base/supp-eps.mkii
@@ -19,7 +19,7 @@
%D were put in \type{supp-pdf}, I considered it more suitable
%D to give the \EPS\ macros their own module.
-\writestatus{loading}{Context Support Macros / EPS}
+\writestatus{loading}{ConTeXt Support Macros / EPS}
%D \macros
%D {dogetEPSboundingbox}
diff --git a/Master/texmf-dist/tex/context/base/supp-fil.lua b/Master/texmf-dist/tex/context/base/supp-fil.lua
index a1c176dcd91..a93b0bce92f 100644
--- a/Master/texmf-dist/tex/context/base/supp-fil.lua
+++ b/Master/texmf-dist/tex/context/base/supp-fil.lua
@@ -12,26 +12,30 @@ if not modules then modules = { } end modules ['supp-fil'] = {
at the <l n='tex'/> side.</p>
--ldx]]--
+local find, gsub, match = string.find, string.gsub, string.match
+
+local ctxcatcodes = tex.ctxcatcodes
+
support = support or { }
environment = environment or { }
environment.outputfilename = environment.outputfilename or environment.jobname
function support.checkfilename(str) -- "/whatever..." "c:..." "http://..."
- cs.chardef("kindoffile",boolean.tonumber(str:find("^/") or str:find("[%a]:")))
+ commands.chardef("kindoffile",boolean.tonumber(find(str,"^/") or find(str,"[%a]:")))
end
function support.thesanitizedfilename(str)
- tex.write((str:gsub("\\","/")))
+ tex.write((gsub(str,"\\","/")))
end
function support.splitfilename(fullname)
local path, name, base, suffix, kind = '', fullname, fullname, '', 0
- local p, n = fullname:match("^(.+)/(.-)$")
+ local p, n = match(fullname,"^(.+)/(.-)$")
if p and n then
path, name, base = p, n, n
end
- local b, s = base:match("^(.+)%.(.-)$")
+ local b, s = match(base,"^(.+)%.(.-)$")
if b and s then
name, suffix = b, s
end
@@ -42,38 +46,43 @@ function support.splitfilename(fullname)
else
kind = 2
end
---~ print(fullname,path,base,name,suffix)
- cs.def("splitofffull", fullname)
- cs.def("splitoffpath", path)
- cs.def("splitoffbase", base)
- cs.def("splitoffname", name)
- cs.def("splitofftype", suffix)
- cs.chardef("splitoffkind", kind)
+ commands.def("splitofffull", fullname)
+ commands.def("splitoffpath", path)
+ commands.def("splitoffbase", base)
+ commands.def("splitoffname", name)
+ commands.def("splitofftype", suffix)
+ commands.chardef("splitoffkind", kind)
end
function support.splitfiletype(fullname)
local name, suffix = fullname, ''
- local n, s = fullname:match("^(.+)%.(.-)$")
+ local n, s = match(fullname,"^(.+)%.(.-)$")
if n and s then
name, suffix = n, s
end
- cs.def("splitofffull", fullname)
- cs.def("splitoffpath", "")
- cs.def("splitoffname", name)
- cs.def("splitofftype", suffix)
+ commands.def("splitofffull", fullname)
+ commands.def("splitoffpath", "")
+ commands.def("splitoffname", name)
+ commands.def("splitofftype", suffix)
end
function support.doifparentfileelse(n)
- cs.testcase(n==environment.jobname or n==environment.jobname..'.tex' or n==environment.outputfilename)
+ commands.testcase(n==environment.jobname or n==environment.jobname..'.tex' or n==environment.outputfilename)
end
-- saves some .15 sec on 12 sec format generation
+local lastexistingfile = ""
+
function support.doiffileexistelse(name)
if not name or name == "" then
- return cs.testcase(false)
+ lastexistingfile = ""
else
- local n = input.findtexfile(texmf.instance,name)
- return cs.testcase(n and n ~= "")
+ lastexistingfile = resolvers.findtexfile(name) or ""
end
+ return commands.testcase(lastexistingfile ~= "")
+end
+
+function support.lastexistingfile()
+ tex.sprint(ctxcatcodes,lastexistingfile)
end
diff --git a/Master/texmf-dist/tex/context/base/supp-fil.mkii b/Master/texmf-dist/tex/context/base/supp-fil.mkii
index ff4a2ab01ca..1e86498e424 100644
--- a/Master/texmf-dist/tex/context/base/supp-fil.mkii
+++ b/Master/texmf-dist/tex/context/base/supp-fil.mkii
@@ -9,12 +9,185 @@
%C
%C This module is part of the \CONTEXT\ macro||package and is
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details
+%C details.
+
+%D \TEX\ operates on files, so one wouldn't wonder that there
+%D is a separate module for file support. In \CONTEXT\ files
+%D are used for several purposes:
+%D
+%D \startitemize[packed]
+%D \item general textual input
+%D \item logging status information
+%D \item saving registers, lists and references
+%D \item buffering defered textual input
+%D \stopitemize
+%D
+%D When dealing with files we can load them as a whole, using
+%D the \type{\input} primitive or load them on a line||by||line
+%D basis, using \type{\read}. Writing is always done line by
+%D line, using \type{\write}.
+
+\writestatus{loading}{ConTeXt Support Macros / Files}
\unprotect
+\ifx\undefined\f!pathseparator
+ \def\f!pathseparator{/}
+ \def\f!currentpath {.}
+ \def\f!parentpath {..}
+\fi
+
\def\openinputfile #1#2{\immediate\openin #1="#2"\relax} \def\closeinputfile #1{\immediate\closein #1}
\def\openoutputfile#1#2{\immediate\openout#1="#2"\relax} \def\closeoutputfile#1{\immediate\closeout#1}
+
+%D \macros
+%D {pushendofline,popendofline}
+%D
+%D When we are loading files in the middle of the typesetting
+%D process, for instance when we load references, we have to be
+%D sure that the reading process does not generate so called
+%D 'spurious spaces'. This can be prevented by assigning the
+%D line ending character the \CATCODE\ comment. This is
+%D accomplished by
+%D
+%D \starttyping
+%D \pushendofline
+%D ... reading ...
+%D \popendofline
+%D \stoptyping
+%D
+%D Just to be sure, we save the current meaning of \type{^^M}
+%D in \type{\poppedendofline}.
+
+% \chardef\poppedendofline\catcode`\^^M
+%
+% \def\pushendofline
+% {\chardef\poppedendofline\catcode`\^^M\relax
+% \catcode`\^^M\@@comment\relax}
+%
+% \def\popendofline
+% {\catcode`\^^M\poppedendofline}
+%
+% support for nested usage:
+
+\newcount \endoflinelevel
+
+\ifx\newlinecode\undefined \chardef\newlinecode=`\^^M \fi
+
+\def\pushendofline
+ {\advance\endoflinelevel\plusone
+ \expandafter\chardef\csname :eol:\number\endoflinelevel\endcsname\catcode\newlinecode
+ \catcode\newlinecode\@@comment\relax}
+
+\def\popendofline
+ {\catcode\newlinecode\csname :eol:\number\endoflinelevel\endcsname
+ \advance\endoflinelevel\minusone}
+
+\def\restoreendofline
+ {\catcode\newlinecode\@@endofline}
+
+%D \macros
+%D {scratchread, scratchwrite}
+%D
+%D We define a scratch file for reading. Keep in mind that
+%D the number of files is limited to~16, so use this one when
+%D possible. We also define a scratch output file.
+
+\ifx\undefined\scratchread \newread \scratchread \fi
+\ifx\undefined\scratchwrite \newwrite\scratchwrite \fi
+
+%D \macros
+%D {unlinkfile}
+%D
+%D Sometimes we want to make sure a file is deleted, so here
+%D is a macro that does the job. It's named after the \PERL\
+%D one.
+
+\def\unlinkfile#1%
+ {\openoutputfile \scratchwrite{#1}%
+ \closeoutputfile\scratchwrite}
+
+%D \macros
+%D {writeln}
+%D
+%D This saves a few tokens:
+
+\def\writeln#1{\write#1{}}
+
+\def\doiffileexistselse#1%
+ {\doifelsenothing{#1}
+ {\secondoftwoarguments}
+ {\openinputfile\scratchread{#1}%
+ \ifeof\scratchread
+ \closeinputfile\scratchread
+ \expandafter\secondoftwoarguments
+ \else
+ \closeinputfile\scratchread
+ \expandafter\firstoftwoarguments
+ \fi}}
+
+%D \macros
+%D {doprocessfile,fileline,fileprocessedtrue,dofinishfile}
+%D
+%D The next macro offers a framework for processing files on a
+%D line by line basis.
+%D
+%D \starttyping
+%D \doprocessfile \identifier {name} \action
+%D \stoptyping
+%D
+%D The first argument can for instance be \type{\scratchread}.
+%D The action must do something with \type{\fileline}, which
+%D holds the current line. One can halfway step out using
+%D \type{\dofinishfile} and ise \type{\iffileprocessed} to
+%D see if indeed some content was found.
+
+\newif\iffileprocessed
+
+\let\fileline\empty
+
+\def\doprocessfile#1#2#3%
+ {\openinputfile{#1}{#2}%
+ \ifeof#1%
+ \fileprocessedfalse
+ \closeinputfile#1%
+ \else
+ \fileprocessedtrue
+ \gdef\dofinishfile
+ {\closeinputfile#1%
+ \global\let\doprocessline\relax}%
+ \gdef\doprocessline
+ {\ifeof#1%
+ \expandafter\dofinishfile
+ \else
+ \global\read#1 to \fileline
+ #3\relax
+ \expandafter\doprocessline
+ \fi}%
+ \expandafter\doprocessline
+ \fi}
+
+%D \macros
+%D {pathplusfile,assignfullfilename,sanitizefilename}
+%D
+%D Use \type{\pathplusfile} to compose a full file name, like
+%D in:
+%D
+%D \starttyping
+%D \pathplusfile{path}{file}
+%D \stoptyping
+%D
+%D By default, this expands into {\tt \pathplusfile{path}{file}}.
+
+\def\pathplusfile#1#2{#1\f!pathseparator#2}
+
+%D This one constructs a filename from a (possible empty)
+%D path and filename.
+
+\def\assignfullfilename#1#2\to#3%
+ {\doifelsenothing{#1}
+ {\edef#3{#2}}
+ {\edef#3{#1\f!pathseparator#2}}}
%D For the moment, we limit sanitizing to taking care of
%D active \type {/}.
@@ -40,6 +213,10 @@
\egroup
+%D NEW:
+
+\chardef\kindoffile=0 % 0=normal 1=full path spec (or http)
+
\def\checkfilename#1%
{\doifinstringelse{@@/}{@@#1}% unix: /full/path
{\chardef\kindoffile\plusone}
@@ -47,6 +224,443 @@
{\chardef\kindoffile\plusone}
{\chardef\kindoffile\zerocount}}}
+%D \macros
+%D {input, normalinput}
+%D
+%D Sometimes we run into troubles when \type {\input} wants to get
+%D expanded, e.g. in a \type {\write} (which happens in the metafun
+%D manual when we permit long MP lines). So, instead of fixing that,
+%D we go for a redefinition of \type {\input}. Of course it's better
+%D to use \type {\readfile} or \type {\processfile}.
+
+\unexpanded\def\input{\normalinput}
+
+\def\inputgivenfile#1{\normalinput"#1"\relax}
+
+%D \macros
+%D {readfile,ReadFile,maxreadlevel}
+%D
+%D One cannot be sure if a file exists. When no file can be
+%D found, the \type{\input} primitive gives an error message
+%D and switches to interactive mode. The macro \type{\readfile}
+%D takes care of non||existing files. This macro has two faces.
+%D
+%D \starttyping
+%D \ReadFile {filename}
+%D \readfile {filename} {before loading} {not found}
+%D \stoptyping
+%D
+%D Many \TEX\ implementations have laid out some strategy for
+%D locating files. This can lead to unexpected results,
+%D especially when one loads files that are not found in the
+%D current directory. Let's give an example of this. In
+%D \CONTEXT\ illustrations can be defined in an external file.
+%D The resizing macro first looks if an illustration is defined
+%D in the local definitions file. When no such file is found,
+%D it searches for a global file and when this file is not
+%D found either, the illustration itself is scanned for
+%D dimensions. One can imagine what happens if an adapted,
+%D localy stored illustration, is scaled according to
+%D dimensions stored somewhere else.
+%D
+%D When some \TEX\ implementation starts looking for a file, it
+%D normally first looks in the current directory. When no file
+%D is found, \TEX\ starts searching on the path where format
+%D and|/|or style files are stored. Depending on the implementation
+%D this can considerably slow down processing speed.
+%D
+%D In \CONTEXT, we support a project||wise ordening of files.
+%D In such an approach it seems feasible to store common files
+%D in a lower directory. When for instance searching for a
+%D general layout file, we therefore have to backtrack.
+%D
+%D These three considerations have lead to a more advanced
+%D approach for loading files.
+%D
+%D We first present an earlier implementation of
+%D \type{\readfile}. This command backtracks parent
+%D directories, upto a predefined level. Users can change this
+%D level, but we default to~3.
+%D
+%D \starttyping
+%D \def\maxreadlevel {3}
+%D \stoptyping
+%D
+%D This is a pseudo \COUNTER.
+%D
+%D We use \type{\normalinput} instead of \type{\input}
+%D because we want to be able to redefine the original
+%D \type{\input} when needed, for instance when loading third
+%D party libraries.
+
+\newevery \everybeforereadfile \EveryBeforeReadFile
+\newevery \everyafterreadfile \EveryAfterReadFile
+
+\let \everyreadfile \everybeforereadfile
+
+\newif\iftracefiles
+
+\newcount\readlevel
+
+\def\maxreadlevel{3}
+
+\newconditional\trackfilenames
+\let\trackedfilename\empty
+
+% We need to postpone loading, else we got frozen type-* files and so when
+% a format is generated on a source path.
+
+\def\doreadfile#1#2#3#4%
+ {\sanitizefilename#2\to\readfilename
+ \ifx\readfilename\empty
+ % silently ignore
+ \else
+ \let\trackedfilename\readfilename
+ \ifconditional\trackfilenames
+ \doifundefinedelse{fn..\trackedfilename}\donetrue\donefalse
+ \else
+ \donetrue
+ \fi
+ \ifdone
+ \checkfilename\readfilename
+ \ifcase\kindoffile
+ \iftracefiles\writestatus\m!systems{searching for \readfilename\space on #1}\fi
+ % not a full path or url, check for existence
+ \doifelsenothing{#1}
+ {\def\next{\redoreadfile\readfilename{#3}{#4}}}%
+ {\def\next{\redoreadfile{\pathplusfile{#1}{\readfilename}}{#3}{#4}}}%
+ \else
+ % a full path or url, no further checking done
+ \doiffileexistselse\readfilename
+ {\iftracefiles\writestatus\m!systems{located \readfilename}\fi
+ \def\next{#3\dodoreadfile}}%
+ {\iftracefiles\writestatus\m!systems{not found \readfilename}\fi
+ \def\next{#4}}%
+ \fi
+ \else
+ \edef\readfilename{\getvalue{fn..\readfilename}}%
+ \iftracefiles\writestatus\m!systems{already located \readfilename}\fi
+ \def\next{#3\dodoreadfile}%
+ \fi
+ \expandafter\next
+ \fi}
+
+\def\redoreadfile#1#2#3%
+ {\doiffileexistselse{#1}%
+ {\edef\readfilename{#1}%
+ \iftracefiles\writestatus\m!systems{#1 located}\fi
+ \def\next{#2\dodoreadfile}}%
+ {\iftracefiles\writestatus\m!systems{cannot locate #1}\fi
+ \advance\readlevel\minusone
+ \ifnum\readlevel>\zerocount
+ \edef\readfilename{\pathplusfile{\f!parentpath}{\readfilename}}%
+ \def\next{\redoreadfile\readfilename{#2}{#3}}%
+ \else
+ \def\next{#3}%
+ \fi}%
+ \next}
+
+\def\dodoreadfile % we provide hooks, for instance for \enableXML
+ {\ifconditional\trackfilenames
+ \setxvalue{fn..\trackedfilename}{\readfilename}%
+ \fi
+ \the\everybeforereadfile
+% \normalinput\readfilename\relax
+ \relax\inputgivenfile\readfilename\relax
+ \the\everyafterreadfile}
+
+% too less:
+%
+% \unexpanded\def\readfile% #1%
+% {\readlevel\maxreadlevel
+% \doreadfile\empty} % {#1}
+%
+% too much:
+%
+% \unexpanded\def\readfile#1#2#3%
+% {\readlocfile{#1}{#2}
+% {\readjobfile{#1}{#2}
+% {\readsysfile{#1}{#2}{#3}}}}
+%
+% just ok:
+
+\unexpanded\def\readfile#1#2#3%
+ {\readlocfile{#1}{#2}{\readsysfile{#1}{#2}{#3}}}
+
+\def\readtexfile#1#2#3%
+ {\pushcatcodetable \catcodetable \ctxcatcodes
+ \readfile{#1}{#2}{#3}%
+ \popcatcodetable}
+
+\def\readxmlfile#1#2#3%
+ {\pushcatcodetable \catcodetable \xmlcatcodes
+ \readfile{#1}{#2}{#3}%
+ \popcatcodetable}
+
+\unexpanded\def\ReadFile#1%
+ {\readfile{#1}\donothing\donothing}
+
+%D \macros
+%D {readjobfile,readlocfile,readsysfile,
+%D readfixfile,readsetfile}
+%D
+%D This implementation honnors the third situation, but we
+%D still can get unwanted files loaded and/or can get involved
+%D in extensive searching.
+%D
+%D Due to different needs, we decided to offer four alternative
+%D loading commands. With \type{\readjobfile} we load a local
+%D file and do no backtracking, while \type{\readlocfile}
+%D backtracks~\number\readlevel\ directories, including the current
+%D one.
+
+\unexpanded\def\readjobfile % #1% current path, no backtracking
+ {\readlevel\zerocount
+ \doreadfile\f!currentpath} % {#1}}
+
+\unexpanded\def\readlocfile % #1% current path, backtracking
+ {\readlevel\maxreadlevel
+ \doreadfile\f!currentpath} % {#1}}
+
+%D System files can be anywhere and therefore
+%D \type{\readsysfile} is not bound to the current directory
+%D and obeys the \TEX\ implementation.
+
+\unexpanded\def\readsysfile % #1% current path, obeys tex search
+ {\readlevel\zerocount
+ \doreadfile\empty} % {#1}}
+
+%D Of the last two, \type{\readfixfile} searches on the
+%D directory specified and backtracks too, while
+%D \type{\readsetfile} does only search on the specified path.
+
+\unexpanded\def\readfixfile % #1#2% specified path, backtracking
+ {\readlevel\maxreadlevel
+ \doreadfile} % {#1}{#2}}
+
+\unexpanded\def\readsetfile % #1#2% specified path, no backtracking
+ {\readlevel\zerocount
+ \doreadfile} % {#1}{#2}}
+
+%D After having defined this commands, we reconsidered the
+%D previously defined \type{\readfile}. This time we more or
+%D less impose the search order.
+
+\unexpanded\def\readfile#1#2#3%
+ {\readlocfile{#1}{#2}
+ {\readjobfile{#1}{#2}
+ {\readsysfile{#1}{#2}{#3}}}}
+
+%D So now we've got ourselves five file loading commands:
+%D
+%D \starttyping
+%D \readfile {filename} {before loading} {not found}
+%D
+%D \readjobfile {filename} {before loading} {not found}
+%D \readlocfile {filename} {before loading} {not found}
+%D \readfixfile {filename} {before loading} {not found}
+%D \readsysfile {directory} {filename} {before loading} {not found}
+%D \stoptyping
+
+%D \macros
+%D {readjobfile,readlocfile,readsysfile,readfixfile}
+%D
+%D The next four alternatives can be used for opening files
+%D for reading on a line||by||line basis. These commands get
+%D an extra argument, the filetag. Explicit closing is done
+%D in the normal way by \type{\closein}.
+
+\def\doopenin#1#2%
+ {\sanitizefilename#2\to\readfilename
+ \checkfilename\readfilename
+ \ifcase\kindoffile
+ \advance\readlevel\plusone
+ \openinputfile{#1}\readfilename
+ \ifeof#1% \relax
+ \ifnum\readlevel>\maxreadlevel % \relax
+ \else
+ \closeinputfile#1% \relax
+ \doopenin{#1}{\pathplusfile\f!parentpath{#2}}%
+ \fi
+ \fi
+ \fi}
+
+\def\openjobin#1#2%
+ {\readlevel\zerocount
+ \doopenin{#1}{\pathplusfile\f!currentpath{#2}}}
+
+\def\opensysin % #1#2%
+ {\readlevel\maxreadlevel
+ \doopenin} % {#1}{#2}}
+
+\def\openlocin#1#2%
+ {\readlevel\maxreadlevel
+ \doopenin{#1}{\pathplusfile\f!currentpath{#2}}}
+
+\def\openfixin#1#2#3%
+ {\readlevel\maxreadlevel
+ \doopenin{#1}{\pathplusfile{#2}{#3}}}
+
+%D \macros
+%D {doiffileelse,doiflocfileelse}
+%D
+%D The next alternative only looks if a file is present. No
+%D loading is done. This one obeys the standard \TEX\
+%D implementation method.
+%D
+%D \starttyping
+%D \doiffileelse {filename} {found} {not found}
+%D \stoptyping
+%D
+%D \starttyping
+%D \doiflocfileelse {filename} {before loading} {not found}
+%D \stoptyping
+
+\def\doiffileelse {\doiffileexistselse}
+\def\doiffile #1{\doiffileexistselse{#1}\firstofoneargument\gobbleoneargument}
+\def\doifnotfile #1{\doiffileexistselse{#1}\gobbleoneargument\firstofoneargument}
+
+\def\doiflocfileelse#1%
+ {\makelocreadfilename{#1}%
+ \doiffileelse\readfilename}
+
+\def\makelocreadfilename#1%
+ {\sanitizefilename#1\to\readfilename
+ \checkfilename\readfilename
+ \ifcase\kindoffile
+ \edef\readfilename{\pathplusfile\f!currentpath{#1}}%
+ \fi}
+
+%D \macros
+%D {doonlyonce, doinputonce, doendinputonce}
+%D
+%D Especially macropackages need only be loaded once.
+%D Repetitive loading not only costs time, relocating registers
+%D often leads to abortion of the processing because \TEX's
+%D capacity is limited. One can prevent multiple execution and
+%D loading by using one of both:
+%D
+%D \starttyping
+%D \doonlyonce{actions}
+%D \doinputonce{filename}
+%D \doendinputonce{filename}
+%D \stoptyping
+%D
+%D This command obeys the standard method for locating files.
+
+\long\def\doonlyonce#1%
+ {\doifundefinedelse{@@@#1@@@}
+ {\letgvalue{@@@#1@@@}\empty
+ \firstofoneargument}
+ {\gobbleoneargument}}
+
+\def\doinputonce#1%
+% {\doonlyonce{#1}{\doiffileelse{#1}{\normalinput#1\relax}\donothing}}
+ {\doonlyonce{#1}{\doiffileelse{#1}{\inputgivenfile{#1}}\donothing}}
+
+\def\doendinputonce#1%
+ {\doifdefined{@@@#1@@@}\endinput}
+
+\def\forgetdoingonce#1%
+ {\global\letbeundefined{@@@#1@@@}}
+
+%D \macros
+%D {doifparentfileelse}
+%D
+%D The test \type{\doifelse{\jobname}{filename}} does not give
+%D the desired result, simply because \type{\jobname} expands
+%D to characters with \CATCODE~12, while the characters in
+%D \type{filename} have \CATCODE~11. So we can better use:
+%D
+%D \starttyping
+%D \doifparentfileelse{filename}{yes}{no}
+%D \stoptyping
+%D
+%D Since \TEXEXEC\ (and thereby \CONTEXT) supports renaming of
+%D the outputfile, we also need to check on that alternative
+%D name.
+
+\ifx\outputfilename\undefined \def\outputfilename{\jobname} \fi
+
+\def\doifparentfileelse#1%
+ {\doifsamestringelse{#1}{\jobname }\firstoftwoarguments
+ {\doifsamestringelse{#1}{\jobname.\c!tex}\firstoftwoarguments
+ {\doifsamestringelse{#1}{\outputfilename}\firstoftwoarguments\secondoftwoarguments}}}
+
+\def\normalless {<} % geen \let !
+\def\normalmore {>} % geen \let !
+\def\normalequal {=} % geen \let !
+\def\normaldblquote{"} % geen \let !
+
+\newcount\readingfilelevel
+
+\def\popfilecharacter#1#2%
+ {\ifnum\catcode`#1=\@@other \ifnum#2=\@@other \else
+ %\message{[popping catcode #1 to #2]}%
+ \catcode`#1=#2\relax
+ \fi \fi}
+
+\ifx\\\undefined \let\\\relax \fi
+
+%D This changing catcodes is a direct result from the fact
+%D that we support some long standing conventions with
+%D regards to active characters (german ", polish /,
+%D french : and ;).
+
+%D We need to redo this: catcode sets and such
+
+\newtoks \everystartreadingfile
+\newtoks \everystopreadingfile
+
+\def\startreadingfile% beter een every en \setnormalcatcodes
+ {\global\advance\readingfilelevel\plusone
+ \the\everystartreadingfile
+ \beginrestorecatcodes
+ \setcatcodetable\prtcatcodes}
+
+\def\stopreadingfile
+ {\endrestorecatcodes
+ \the\everystopreadingfile
+ \global\advance\readingfilelevel\minusone}
+
+\let\normalstartreadingfile\startreadingfile
+\let\normalstopreadingfile \stopreadingfile
+
+%D \macros
+%D {splitfilename}
+%D
+%D I should have made this one sooner. This macro was first needed when
+%D ran into graphic with a period in the pathpart.
+%D
+%D \startbuffer
+%D \def\showfilesplit
+%D {\bgroup \tttf
+%D \hbox{(full: \splitofffull)}\space
+%D \hbox{(path: \splitoffpath)}\space
+%D \hbox{(base: \splitoffbase)}\space
+%D \hbox{(name: \splitoffname)}\space
+%D \hbox{(type: \splitofftype)}\space
+%D \egroup}
+%D
+%D \splitfilename{c:/aa/bb/cc/dd.ee.ff} \showfilesplit \endgraf
+%D \splitfilename{c:/aa/bb/cc/dd.ee} \showfilesplit \endgraf
+%D \splitfilename{c:/aa/bb/cc/dd} \showfilesplit \endgraf
+%D
+%D \splitfilename{dd.ee.ff} \showfilesplit \endgraf
+%D \splitfilename{dd.ee} \showfilesplit \endgraf
+%D \splitfilename{dd} \showfilesplit \endgraf
+%D \stopbuffer
+%D
+%D \start \typebuffer \getbuffer \stop
+
+\def\splitoffroot{.} \chardef\splitoffkind\zerocount
+
+\let\splitofffull\empty
+\let\splitoffpath\empty
+\let\splitoffbase\empty
+\let\splitoffname\empty
+\let\splitofftype\empty
+
% \def\splitfilename#1%
% {\edef\splitofffull{#1}% normally outside this call: \sanitizefilename#1\to\sanitizedfilename
% \greedysplitstring\splitofffull\at/\to\splitoffpath\and\splitoffbase
@@ -91,9 +705,4 @@
\let\splitoffpath\empty
\greedysplitstring\splitofffull\at.\to\splitoffname\and\splitofftype}
-\def\doifparentfileelse#1%
- {\doifsamestringelse{#1}{\jobname }\firstoftwoarguments
- {\doifsamestringelse{#1}{\jobname.\c!tex}\firstoftwoarguments
- {\doifsamestringelse{#1}{\outputfilename}\firstoftwoarguments\secondoftwoarguments}}}
-
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/supp-fil.mkiv b/Master/texmf-dist/tex/context/base/supp-fil.mkiv
index 586004259fa..00263a85fbd 100644
--- a/Master/texmf-dist/tex/context/base/supp-fil.mkiv
+++ b/Master/texmf-dist/tex/context/base/supp-fil.mkiv
@@ -1,6 +1,6 @@
%D \module
%D [ file=supp-fil,
-%D version=2006.09.18,
+%D version=1995.10.10,
%D title=\CONTEXT\ Support Macros,
%D subtitle=Files,
%D author=Hans Hagen,
@@ -9,24 +9,589 @@
%C
%C This module is part of the \CONTEXT\ macro||package and is
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details
+%C details.
-% \input supp-fil.mkii \endinput
+%D \TEX\ operates on files, so one wouldn't wonder that there
+%D is a separate module for file support. In \CONTEXT\ files
+%D are used for several purposes:
+%D
+%D \startitemize[packed]
+%D \item general textual input
+%D \item logging status information
+%D \item saving registers, lists and references
+%D \item buffering defered textual input
+%D \stopitemize
+%D
+%D When dealing with files we can load them as a whole, using
+%D the \type{\input} primitive or load them on a line||by||line
+%D basis, using \type{\read}. Writing is always done line by
+%D line, using \type{\write}.
+
+\writestatus{loading}{ConTeXt Support Macros / Files}
\registerctxluafile{supp-fil}{1.001}
-% \def\sanitizefilename#1\to#2%
-% {\edef#2{\ctxlua{support.thesanitizedfilename("\luaescapestring{#1}")}}}
-% \def\checkfilename #1{\ctxlua{support.checkfilename("\luaescapestring{#1}")}}
-% \def\splitfilename #1{\ctxlua{support.splitfilename("\luaescapestring{#1}")}}
-% \def\splitfiletype #1{\ctxlua{support.splitfiletype("\luaescapestring{#1}")}}
-% \def\doifparentfileelse#1{\ctxlua{support.doifparentfileelse("\luaescapestring{#1}")}}
+\unprotect
+
+\ifx\undefined\f!pathseparator
+ \def\f!pathseparator{/}
+ \def\f!currentpath {.}
+ \def\f!parentpath {..}
+\fi
+
+% \def\openinputfile #1#2{\immediate\openin #1="#2"\relax} \def\closeinputfile #1{\immediate\closein #1}
+% \def\openoutputfile#1#2{\immediate\openout#1="#2"\relax} \def\closeoutputfile#1{\immediate\closeout#1}
+
+\def\openinputfile #1#2{\immediate\openin #1=#2\relax} \def\closeinputfile #1{\immediate\closein #1}
+\def\openoutputfile#1#2{\immediate\openout#1=#2\relax} \def\closeoutputfile#1{\immediate\closeout#1}
+
+%D \macros
+%D {pushendofline,popendofline}
+%D
+%D When we are loading files in the middle of the typesetting
+%D process, for instance when we load references, we have to be
+%D sure that the reading process does not generate so called
+%D 'spurious spaces'. This can be prevented by assigning the
+%D line ending character the \CATCODE\ comment. This is
+%D accomplished by
+%D
+%D \starttyping
+%D \pushendofline
+%D ... reading ...
+%D \popendofline
+%D \stoptyping
+%D
+%D Just to be sure, we save the current meaning of \type{^^M}
+%D in \type{\poppedendofline}.
+
+\newcount \endoflinelevel
+
+\ifx\newlinecode\undefined \chardef\newlinecode=`\^^M \fi
+
+\def\pushendofline
+ {\advance\endoflinelevel\plusone
+ \expandafter\chardef\csname :eol:\number\endoflinelevel\endcsname\catcode\newlinecode
+ \catcode\newlinecode\@@comment\relax}
+
+\def\popendofline
+ {\catcode\newlinecode\csname :eol:\number\endoflinelevel\endcsname
+ \advance\endoflinelevel\minusone}
+
+\def\restoreendofline
+ {\catcode\newlinecode\@@endofline}
+
+%D \macros
+%D {scratchread, scratchwrite}
+%D
+%D We define a scratch file for reading. Keep in mind that
+%D the number of files is limited to~16, so use this one when
+%D possible. We also define a scratch output file.
+
+\ifx\undefined\scratchread \newread \scratchread \fi
+\ifx\undefined\scratchwrite \newwrite\scratchwrite \fi
+
+%D \macros
+%D {unlinkfile}
+%D
+%D Sometimes we want to make sure a file is deleted, so here
+%D is a macro that does the job. It's named after the \PERL\
+%D one.
+
+\def\unlinkfile#1{\ctxlua{os.remove([[#1]])}}
+
+%D \macros
+%D {writeln}
+%D
+%D This saves a few tokens:
+
+\def\writeln#1{\write#1{}}
+
+\def\doiffileexistselse #1{\ctxlua{support.doiffileexistelse([[#1]])}}
+\def\lastfoundexistingfile {\ctxlua{support.lastexistingfile()}}
+
+%D \macros
+%D {doprocessfile,fileline,fileprocessedtrue,dofinishfile}
+%D
+%D The next macro offers a framework for processing files on a
+%D line by line basis.
+%D
+%D \starttyping
+%D \doprocessfile \identifier {name} \action
+%D \stoptyping
+%D
+%D The first argument can for instance be \type{\scratchread}.
+%D The action must do something with \type{\fileline}, which
+%D holds the current line. One can halfway step out using
+%D \type{\dofinishfile} and ise \type{\iffileprocessed} to
+%D see if indeed some content was found.
+
+\newif\iffileprocessed
+
+\let\fileline\empty
+
+\def\doprocessfile#1#2#3%
+ {\openinputfile{#1}{#2}%
+ \ifeof#1%
+ \fileprocessedfalse
+ \closeinputfile#1%
+ \else
+ \fileprocessedtrue
+ \gdef\dofinishfile
+ {\closeinputfile#1%
+ \global\let\doprocessline\relax}%
+ \gdef\doprocessline
+ {\ifeof#1%
+ \expandafter\dofinishfile
+ \else
+ \global\read#1 to \fileline
+ #3\relax
+ \expandafter\doprocessline
+ \fi}%
+ \expandafter\doprocessline
+ \fi}
+
+%D \macros
+%D {pathplusfile,assignfullfilename,sanitizefilename}
+%D
+%D Use \type{\pathplusfile} to compose a full file name, like
+%D in:
+%D
+%D \starttyping
+%D \pathplusfile{path}{file}
+%D \stoptyping
+%D
+%D By default, this expands into {\tt \pathplusfile{path}{file}}.
+
+\def\pathplusfile#1#2{#1\f!pathseparator#2}
+
+%D This one constructs a filename from a (possible empty)
+%D path and filename.
+
+\def\assignfullfilename#1#2\to#3%
+ {\doifelsenothing{#1}
+ {\edef#3{#2}}
+ {\edef#3{#1\f!pathseparator#2}}}
\def\sanitizefilename#1\to#2{\edef#2{\ctxlua{support.thesanitizedfilename([[#1]])}}}
-\def\checkfilename #1{\ctxlua{support.checkfilename([[#1]])}}
-\def\splitfilename #1{\ctxlua{support.splitfilename([[#1]])}}
-\def\splitfiletype #1{\ctxlua{support.splitfiletype([[#1]])}}
-\def\doifparentfileelse #1{\ctxlua{support.doifparentfileelse([[#1]])}}
-\def\doiffileexistselse #1{\ctxlua{support.doiffileexistelse([[#1]])}}
-\endinput
+%D NEW:
+
+\chardef\kindoffile=0 % 0=normal 1=full path spec (or http) / set at the lua end
+
+\def\checkfilename#1{\ctxlua{support.checkfilename([[#1]])}}
+
+%D \macros
+%D {input, normalinput}
+%D
+%D Sometimes we run into troubles when \type {\input} wants to get
+%D expanded, e.g. in a \type {\write} (which happens in the metafun
+%D manual when we permit long MP lines). So, instead of fixing that,
+%D we go for a redefinition of \type {\input}. Of course it's better
+%D to use \type {\readfile} or \type {\processfile}.
+
+\unexpanded\def\input{\normalinput}
+
+\def\inputgivenfile#1{\normalinput"#1"\relax}
+
+%D \macros
+%D {readfile,ReadFile,maxreadlevel}
+%D
+%D One cannot be sure if a file exists. When no file can be
+%D found, the \type{\input} primitive gives an error message
+%D and switches to interactive mode. The macro \type{\readfile}
+%D takes care of non||existing files. This macro has two faces.
+%D
+%D \starttyping
+%D \ReadFile {filename}
+%D \readfile {filename} {before loading} {not found}
+%D \stoptyping
+%D
+%D Many \TEX\ implementations have laid out some strategy for
+%D locating files. This can lead to unexpected results,
+%D especially when one loads files that are not found in the
+%D current directory. Let's give an example of this. In
+%D \CONTEXT\ illustrations can be defined in an external file.
+%D The resizing macro first looks if an illustration is defined
+%D in the local definitions file. When no such file is found,
+%D it searches for a global file and when this file is not
+%D found either, the illustration itself is scanned for
+%D dimensions. One can imagine what happens if an adapted,
+%D localy stored illustration, is scaled according to
+%D dimensions stored somewhere else.
+%D
+%D When some \TEX\ implementation starts looking for a file, it
+%D normally first looks in the current directory. When no file
+%D is found, \TEX\ starts searching on the path where format
+%D and|/|or style files are stored. Depending on the implementation
+%D this can considerably slow down processing speed.
+%D
+%D In \CONTEXT, we support a project||wise ordening of files.
+%D In such an approach it seems feasible to store common files
+%D in a lower directory. When for instance searching for a
+%D general layout file, we therefore have to backtrack.
+%D
+%D These three considerations have lead to a more advanced
+%D approach for loading files.
+%D
+%D We first present an earlier implementation of
+%D \type{\readfile}. This command backtracks parent
+%D directories, upto a predefined level. Users can change this
+%D level, but we default to~3.
+%D
+%D \starttyping
+%D \def\maxreadlevel {3}
+%D \stoptyping
+%D
+%D This is a pseudo \COUNTER.
+%D
+%D We use \type{\normalinput} instead of \type{\input}
+%D because we want to be able to redefine the original
+%D \type{\input} when needed, for instance when loading third
+%D party libraries.
+
+\newevery \everybeforereadfile \EveryBeforeReadFile
+\newevery \everyafterreadfile \EveryAfterReadFile
+
+\let \everyreadfile \everybeforereadfile
+
+\newif\iftracefiles
+
+\newcount\readlevel
+
+\def\maxreadlevel{3}
+
+\newconditional\trackfilenames
+\let\trackedfilename\empty
+
+% We need to postpone loading, else we got frozen type-* files and so when
+% a format is generated on a source path.
+
+\def\doreadfile#1#2#3#4%
+ {\sanitizefilename#2\to\readfilename
+ \ifx\readfilename\empty
+ % silently ignore
+ \else
+ \let\trackedfilename\readfilename
+ \ifconditional\trackfilenames
+ \doifundefinedelse{fn..\trackedfilename}\donetrue\donefalse
+ \else
+ \donetrue
+ \fi
+ \ifdone
+ \checkfilename\readfilename
+ \ifcase\kindoffile
+ \iftracefiles\writestatus\m!systems{searching for \readfilename\space on #1}\fi
+ % not a full path or url, check for existence
+ \doifelsenothing{#1}
+ {\def\next{\redoreadfile\readfilename{#3}{#4}}}%
+ {\def\next{\redoreadfile{\pathplusfile{#1}{\readfilename}}{#3}{#4}}}%
+ \else
+ % a full path or url, no further checking done
+ \doiffileexistselse\readfilename
+ {\iftracefiles\writestatus\m!systems{located \readfilename}\fi
+ \def\next{#3\dodoreadfile}}%
+ {\iftracefiles\writestatus\m!systems{not found \readfilename}\fi
+ \def\next{#4}}%
+ \fi
+ \else
+ \edef\readfilename{\getvalue{fn..\readfilename}}%
+ \iftracefiles\writestatus\m!systems{already located \readfilename}\fi
+ \def\next{#3\dodoreadfile}%
+ \fi
+ \expandafter\next
+ \fi}
+
+\def\redoreadfile#1#2#3%
+ {\doiffileexistselse{#1}%
+ {\edef\readfilename{#1}%
+ \iftracefiles\writestatus\m!systems{#1 located}\fi
+ \def\next{#2\dodoreadfile}}%
+ {\iftracefiles\writestatus\m!systems{cannot locate #1}\fi
+ \advance\readlevel\minusone
+ \ifnum\readlevel>\zerocount
+ \edef\readfilename{\pathplusfile{\f!parentpath}{\readfilename}}%
+ \def\next{\redoreadfile\readfilename{#2}{#3}}%
+ \else
+ \def\next{#3}%
+ \fi}%
+ \next}
+
+\def\dodoreadfile % we provide hooks, for instance for \enableXML
+ {\ifconditional\trackfilenames
+ \setxvalue{fn..\trackedfilename}{\readfilename}%
+ \fi
+ \the\everybeforereadfile
+ \relax\inputgivenfile\readfilename\relax
+ \the\everyafterreadfile}
+
+% too less:
+%
+% \unexpanded\def\readfile% #1%
+% {\readlevel\maxreadlevel
+% \doreadfile\empty} % {#1}
+%
+% too much:
+%
+% \unexpanded\def\readfile#1#2#3%
+% {\readlocfile{#1}{#2}
+% {\readjobfile{#1}{#2}
+% {\readsysfile{#1}{#2}{#3}}}}
+%
+% just ok:
+
+\unexpanded\def\readfile#1#2#3%
+ {\readlocfile{#1}{#2}{\readsysfile{#1}{#2}{#3}}}
+
+\def\readtexfile#1#2#3%
+ {\pushcatcodetable \catcodetable \ctxcatcodes
+ \readfile{#1}{#2}{#3}%
+ \popcatcodetable}
+
+\def\readxmlfile#1#2#3%
+ {\pushcatcodetable \catcodetable \xmlcatcodes
+ \readfile{#1}{#2}{#3}%
+ \popcatcodetable}
+
+\unexpanded\def\ReadFile#1%
+ {\readfile{#1}\donothing\donothing}
+
+%D \macros
+%D {readjobfile,readlocfile,readsysfile,
+%D readfixfile,readsetfile}
+%D
+%D This implementation honnors the third situation, but we
+%D still can get unwanted files loaded and/or can get involved
+%D in extensive searching.
+%D
+%D Due to different needs, we decided to offer four alternative
+%D loading commands. With \type{\readjobfile} we load a local
+%D file and do no backtracking, while \type{\readlocfile}
+%D backtracks~\number\readlevel\ directories, including the current
+%D one.
+
+\unexpanded\def\readjobfile % #1% current path, no backtracking
+ {\readlevel\zerocount
+ \doreadfile\f!currentpath} % {#1}}
+
+\unexpanded\def\readlocfile % #1% current path, backtracking
+ {\readlevel\maxreadlevel
+ \doreadfile\f!currentpath} % {#1}}
+
+%D System files can be anywhere and therefore
+%D \type{\readsysfile} is not bound to the current directory
+%D and obeys the \TEX\ implementation.
+
+\unexpanded\def\readsysfile % #1% current path, obeys tex search
+ {\readlevel\zerocount
+ \doreadfile\empty} % {#1}}
+
+%D Of the last two, \type{\readfixfile} searches on the
+%D directory specified and backtracks too, while
+%D \type{\readsetfile} does only search on the specified path.
+
+\unexpanded\def\readfixfile % #1#2% specified path, backtracking
+ {\readlevel\maxreadlevel
+ \doreadfile} % {#1}{#2}}
+
+\unexpanded\def\readsetfile % #1#2% specified path, no backtracking
+ {\readlevel\zerocount
+ \doreadfile} % {#1}{#2}}
+
+%D After having defined this commands, we reconsidered the
+%D previously defined \type{\readfile}. This time we more or
+%D less impose the search order.
+
+\unexpanded\def\readfile#1#2#3%
+ {\readlocfile{#1}{#2}
+ {\readjobfile{#1}{#2}
+ {\readsysfile{#1}{#2}{#3}}}}
+
+%D So now we've got ourselves five file loading commands:
+%D
+%D \starttyping
+%D \readfile {filename} {before loading} {not found}
+%D
+%D \readjobfile {filename} {before loading} {not found}
+%D \readlocfile {filename} {before loading} {not found}
+%D \readfixfile {filename} {before loading} {not found}
+%D \readsysfile {directory} {filename} {before loading} {not found}
+%D \stoptyping
+
+%D \macros
+%D {readjobfile,readlocfile,readsysfile,readfixfile}
+%D
+%D The next four alternatives can be used for opening files
+%D for reading on a line||by||line basis. These commands get
+%D an extra argument, the filetag. Explicit closing is done
+%D in the normal way by \type{\closein}.
+
+\def\doopenin#1#2%
+ {\sanitizefilename#2\to\readfilename
+ \checkfilename\readfilename
+ \ifcase\kindoffile
+ \advance\readlevel\plusone
+ \openinputfile{#1}\readfilename
+ \ifeof#1% \relax
+ \ifnum\readlevel>\maxreadlevel % \relax
+ \else
+ \closeinputfile#1% \relax
+ \doopenin{#1}{\pathplusfile\f!parentpath{#2}}%
+ \fi
+ \fi
+ \fi}
+
+\def\openjobin#1#2%
+ {\readlevel\zerocount
+ \doopenin{#1}{\pathplusfile\f!currentpath{#2}}}
+
+\def\opensysin % #1#2%
+ {\readlevel\maxreadlevel
+ \doopenin} % {#1}{#2}}
+
+\def\openlocin#1#2%
+ {\readlevel\maxreadlevel
+ \doopenin{#1}{\pathplusfile\f!currentpath{#2}}}
+
+\def\openfixin#1#2#3%
+ {\readlevel\maxreadlevel
+ \doopenin{#1}{\pathplusfile{#2}{#3}}}
+
+%D \macros
+%D {doiffileelse,doiflocfileelse}
+%D
+%D The next alternative only looks if a file is present. No
+%D loading is done. This one obeys the standard \TEX\
+%D implementation method.
+%D
+%D \starttyping
+%D \doiffileelse {filename} {found} {not found}
+%D \stoptyping
+%D
+%D \starttyping
+%D \doiflocfileelse {filename} {before loading} {not found}
+%D \stoptyping
+
+\def\doiffileelse {\doiffileexistselse}
+\def\doiffile #1{\doiffileexistselse{#1}\firstofoneargument\gobbleoneargument}
+\def\doifnotfile #1{\doiffileexistselse{#1}\gobbleoneargument\firstofoneargument}
+
+\def\doiflocfileelse#1%
+ {\makelocreadfilename{#1}%
+ \doiffileelse\readfilename}
+
+\def\makelocreadfilename#1%
+ {\sanitizefilename#1\to\readfilename
+ \checkfilename\readfilename
+ \ifcase\kindoffile
+ \edef\readfilename{\pathplusfile\f!currentpath{#1}}%
+ \fi}
+
+%D \macros
+%D {doonlyonce, doinputonce, doendinputonce}
+%D
+%D Especially macropackages need only be loaded once.
+%D Repetitive loading not only costs time, relocating registers
+%D often leads to abortion of the processing because \TEX's
+%D capacity is limited. One can prevent multiple execution and
+%D loading by using one of both:
+%D
+%D \starttyping
+%D \doonlyonce{actions}
+%D \doinputonce{filename}
+%D \doendinputonce{filename}
+%D \stoptyping
+%D
+%D This command obeys the standard method for locating files.
+
+\long\def\doonlyonce#1%
+ {\doifundefinedelse{@@@#1@@@}
+ {\letgvalue{@@@#1@@@}\empty
+ \firstofoneargument}
+ {\gobbleoneargument}}
+
+\def\doinputonce#1%
+ {\doonlyonce{#1}{\doiffileelse{#1}{\inputgivenfile{#1}}\donothing}}
+
+\def\doendinputonce#1%
+ {\doifdefined{@@@#1@@@}\endinput}
+
+\def\forgetdoingonce#1%
+ {\global\letbeundefined{@@@#1@@@}}
+
+%D \macros
+%D {doifparentfileelse}
+%D
+%D The test \type{\doifelse{\jobname}{filename}} does not give
+%D the desired result, simply because \type{\jobname} expands
+%D to characters with \CATCODE~12, while the characters in
+%D \type{filename} have \CATCODE~11. So we can better use:
+%D
+%D \starttyping
+%D \doifparentfileelse{filename}{yes}{no}
+%D \stoptyping
+%D
+%D Since \TEXEXEC\ (and thereby \CONTEXT) supports renaming of
+%D the outputfile, we also need to check on that alternative
+%D name.
+
+\ifx\outputfilename\undefined \def\outputfilename{\jobname} \fi
+
+\def\doifparentfileelse#1{\ctxlua{support.doifparentfileelse([[#1]])}}
+
+\newcount\readingfilelevel
+
+%D We need to redo this: catcode sets and such
+
+\newtoks \everystartreadingfile
+\newtoks \everystopreadingfile
+
+\def\startreadingfile% beter een every en \setnormalcatcodes
+ {\global\advance\readingfilelevel\plusone
+ \the\everystartreadingfile
+ \beginrestorecatcodes
+ \setcatcodetable\prtcatcodes}
+
+\def\stopreadingfile
+ {\endrestorecatcodes
+ \the\everystopreadingfile
+ \global\advance\readingfilelevel\minusone}
+
+%D \macros
+%D {splitfilename}
+%D
+%D I should have made this one sooner. This macro was first needed when
+%D ran into graphic with a period in the pathpart.
+%D
+%D \startbuffer
+%D \def\showfilesplit
+%D {\bgroup \tttf
+%D \hbox{(full: \splitofffull)}\space
+%D \hbox{(path: \splitoffpath)}\space
+%D \hbox{(base: \splitoffbase)}\space
+%D \hbox{(name: \splitoffname)}\space
+%D \hbox{(type: \splitofftype)}\space
+%D \egroup}
+%D
+%D \splitfilename{c:/aa/bb/cc/dd.ee.ff} \showfilesplit \endgraf
+%D \splitfilename{c:/aa/bb/cc/dd.ee} \showfilesplit \endgraf
+%D \splitfilename{c:/aa/bb/cc/dd} \showfilesplit \endgraf
+%D
+%D \splitfilename{dd.ee.ff} \showfilesplit \endgraf
+%D \splitfilename{dd.ee} \showfilesplit \endgraf
+%D \splitfilename{dd} \showfilesplit \endgraf
+%D \stopbuffer
+%D
+%D \start \typebuffer \getbuffer \stop
+
+\def\splitoffroot{.} \chardef\splitoffkind\zerocount
+
+\let\splitofffull\empty
+\let\splitoffpath\empty
+\let\splitoffbase\empty
+\let\splitoffname\empty
+\let\splitofftype\empty
+
+\def\splitfilename#1{\ctxlua{support.splitfilename([[#1]])}}
+\def\splitfiletype#1{\ctxlua{support.splitfiletype([[#1]])}}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/supp-fil.tex b/Master/texmf-dist/tex/context/base/supp-fil.tex
deleted file mode 100644
index 4d31bfd280e..00000000000
--- a/Master/texmf-dist/tex/context/base/supp-fil.tex
+++ /dev/null
@@ -1,655 +0,0 @@
-%D \module
-%D [ file=supp-fil,
-%D version=1995.10.10,
-%D title=\CONTEXT\ Support Macros,
-%D subtitle=Files,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D \TEX\ operates on files, so one wouldn't wonder that there
-%D is a separate module for file support. In \CONTEXT\ files
-%D are used for several purposes:
-%D
-%D \startitemize[packed]
-%D \item general textual input
-%D \item logging status information
-%D \item saving registers, lists and references
-%D \item buffering defered textual input
-%D \stopitemize
-%D
-%D When dealing with files we can load them as a whole, using
-%D the \type{\input} primitive or load them on a line||by||line
-%D basis, using \type{\read}. Writing is always done line by
-%D line, using \type{\write}.
-
-\writestatus{loading}{Context Support Macros / Files}
-
-\unprotect
-
-\ifx\undefined\f!pathseparator
- \def\f!pathseparator{/}
- \def\f!currentpath {.}
- \def\f!parentpath {..}
-\fi
-
-%D \macros
-%D {normalwrite, normalimmediate}
-%D
-%D We save a few primitives first.
-
-\let\normalwrite \write
-\let\normalimmediate\immediate
-
-% \def\openinputfile #1#2{\immediate\openin #1="#2"\relax} \def\closeinputfile #1{\immediate\closein #1}
-% \def\openoutputfile#1#2{\immediate\openout#1="#2"\relax} \def\closeoutputfile#1{\immediate\closeout#1}
-
-\def\openinputfile #1#2{\immediate\openin #1=#2\relax} \def\closeinputfile #1{\immediate\closein #1}
-\def\openoutputfile#1#2{\immediate\openout#1=#2\relax} \def\closeoutputfile#1{\immediate\closeout#1}
-
-%D \macros
-%D {pushendofline,popendofline}
-%D
-%D When we are loading files in the middle of the typesetting
-%D process, for instance when we load references, we have to be
-%D sure that the reading process does not generate so called
-%D 'spurious spaces'. This can be prevented by assigning the
-%D line ending character the \CATCODE\ comment. This is
-%D accomplished by
-%D
-%D \starttyping
-%D \pushendofline
-%D ... reading ...
-%D \popendofline
-%D \stoptyping
-%D
-%D Just to be sure, we save the current meaning of \type{^^M}
-%D in \type{\poppedendofline}.
-
-% \chardef\poppedendofline\catcode`\^^M
-%
-% \def\pushendofline
-% {\chardef\poppedendofline\catcode`\^^M\relax
-% \catcode`\^^M\@@comment\relax}
-%
-% \def\popendofline
-% {\catcode`\^^M\poppedendofline}
-%
-% support for nested usage:
-
-\newcount \endoflinelevel
-
-\ifx\newlinecode\undefined \chardef\newlinecode=`\^^M \fi
-
-\def\pushendofline
- {\advance\endoflinelevel\plusone
- \expandafter\chardef\csname :eol:\number\endoflinelevel\endcsname\catcode\newlinecode
- \catcode\newlinecode\@@comment\relax}
-
-\def\popendofline
- {\catcode\newlinecode\csname :eol:\number\endoflinelevel\endcsname
- \advance\endoflinelevel\minusone}
-
-\def\restoreendofline
- {\catcode\newlinecode\@@endofline}
-
-%D \macros
-%D {scratchread, scratchwrite}
-%D
-%D We define a scratch file for reading. Keep in mind that
-%D the number of files is limited to~16, so use this one when
-%D possible. We also define a scratch output file.
-
-\ifx\undefined\scratchread \newread \scratchread \fi
-\ifx\undefined\scratchwrite \newwrite\scratchwrite \fi
-
-%D \macros
-%D {unlinkfile}
-%D
-%D Sometimes we want to make sure a file is deleted, so here
-%D is a macro that does the job. It's named after the \PERL\
-%D one.
-
-\def\unlinkfile#1%
- {\openoutputfile \scratchwrite{#1}%
- \closeoutputfile\scratchwrite}
-
-%D \macros
-%D {writeln}
-%D
-%D This saves a few tokens:
-
-\def\writeln#1{\write#1{}}
-
-\def\doiffileexistselse#1%
- {\doifelsenothing{#1}
- {\secondoftwoarguments}
- {\openinputfile\scratchread{#1}%
- \ifeof\scratchread
- \closeinputfile\scratchread
- \expandafter\secondoftwoarguments
- \else
- \closeinputfile\scratchread
- \expandafter\firstoftwoarguments
- \fi}}
-
-%D \macros
-%D {doprocessfile,fileline,fileprocessedtrue,dofinishfile}
-%D
-%D The next macro offers a framework for processing files on a
-%D line by line basis.
-%D
-%D \starttyping
-%D \doprocessfile \identifier {name} \action
-%D \stoptyping
-%D
-%D The first argument can for instance be \type{\scratchread}.
-%D The action must do something with \type{\fileline}, which
-%D holds the current line. One can halfway step out using
-%D \type{\dofinishfile} and ise \type{\iffileprocessed} to
-%D see if indeed some content was found.
-
-\newif\iffileprocessed
-
-\let\fileline\empty
-
-\def\doprocessfile#1#2#3%
- {\openinputfile{#1}{#2}%
- \ifeof#1%
- \fileprocessedfalse
- \closeinputfile#1%
- \else
- \fileprocessedtrue
- \gdef\dofinishfile
- {\closeinputfile#1%
- \global\let\doprocessline\relax}%
- \gdef\doprocessline
- {\ifeof#1%
- \expandafter\dofinishfile
- \else
- \global\read#1 to \fileline
- #3\relax
- \expandafter\doprocessline
- \fi}%
- \expandafter\doprocessline
- \fi}
-
-%D \macros
-%D {pathplusfile,assignfullfilename,sanitizefilename}
-%D
-%D Use \type{\pathplusfile} to compose a full file name, like
-%D in:
-%D
-%D \starttyping
-%D \pathplusfile{path}{file}
-%D \stoptyping
-%D
-%D By default, this expands into {\tt \pathplusfile{path}{file}}.
-
-\def\pathplusfile#1#2{#1\f!pathseparator#2}
-
-%D This one constructs a filename from a (possible empty)
-%D path and filename.
-
-\def\assignfullfilename#1#2\to#3%
- {\doifelsenothing{#1}
- {\edef#3{#2}}
- {\edef#3{#1\f!pathseparator#2}}}
-
-\def\sanitizefilename#1\to#2{\def#2{#1}} % overloaded in mk
-
-%D NEW:
-
-\chardef\kindoffile=0 % 0=normal 1=full path spec (or http)
-
-\def\checkfilename{\chardef\kindoffile\zerocount} % overloaded in mk
-
-%D \macros
-%D {input, normalinput}
-%D
-%D Sometimes we run into troubles when \type {\input} wants to get
-%D expanded, e.g. in a \type {\write} (which happens in the metafun
-%D manual when we permit long MP lines). So, instead of fixing that,
-%D we go for a redefinition of \type {\input}. Of course it's better
-%D to use \type {\readfile} or \type {\processfile}.
-
-\ifx\normalinput\undefined \let\normalinput\input \fi
-
-\unexpanded\def\input{\normalinput}
-
-\def\inputgivenfile#1{\normalinput"#1"\relax}
-
-%D \macros
-%D {readfile,ReadFile,maxreadlevel}
-%D
-%D One cannot be sure if a file exists. When no file can be
-%D found, the \type{\input} primitive gives an error message
-%D and switches to interactive mode. The macro \type{\readfile}
-%D takes care of non||existing files. This macro has two faces.
-%D
-%D \starttyping
-%D \ReadFile {filename}
-%D \readfile {filename} {before loading} {not found}
-%D \stoptyping
-%D
-%D Many \TEX\ implementations have laid out some strategy for
-%D locating files. This can lead to unexpected results,
-%D especially when one loads files that are not found in the
-%D current directory. Let's give an example of this. In
-%D \CONTEXT\ illustrations can be defined in an external file.
-%D The resizing macro first looks if an illustration is defined
-%D in the local definitions file. When no such file is found,
-%D it searches for a global file and when this file is not
-%D found either, the illustration itself is scanned for
-%D dimensions. One can imagine what happens if an adapted,
-%D localy stored illustration, is scaled according to
-%D dimensions stored somewhere else.
-%D
-%D When some \TEX\ implementation starts looking for a file, it
-%D normally first looks in the current directory. When no file
-%D is found, \TEX\ starts searching on the path where format
-%D and|/|or style files are stored. Depending on the implementation
-%D this can considerably slow down processing speed.
-%D
-%D In \CONTEXT, we support a project||wise ordening of files.
-%D In such an approach it seems feasible to store common files
-%D in a lower directory. When for instance searching for a
-%D general layout file, we therefore have to backtrack.
-%D
-%D These three considerations have lead to a more advanced
-%D approach for loading files.
-%D
-%D We first present an earlier implementation of
-%D \type{\readfile}. This command backtracks parent
-%D directories, upto a predefined level. Users can change this
-%D level, but we default to~3.
-%D
-%D \starttyping
-%D \def\maxreadlevel {3}
-%D \stoptyping
-%D
-%D This is a pseudo \COUNTER.
-%D
-%D We use \type{\normalinput} instead of \type{\input}
-%D because we want to be able to redefine the original
-%D \type{\input} when needed, for instance when loading third
-%D party libraries.
-
-\newevery \everybeforereadfile \EveryBeforeReadFile
-\newevery \everyafterreadfile \EveryAfterReadFile
-
-\let \everyreadfile \everybeforereadfile
-
-\newif\iftracefiles
-
-\newcount\readlevel
-
-\def\maxreadlevel{3}
-
-\newconditional\trackfilenames
-
-% We need to postpone loading, else we got frozen type-* files and so when
-% a format is generated on a source path.
-
-\appendtoks \settrue\trackfilenames \to \everyjob
-
-\let\trackedfilename\empty
-
-\def\doreadfile#1#2#3#4%
- {\sanitizefilename#2\to\readfilename
- \ifx\readfilename\empty
- % silently ignore
- \else
- \let\trackedfilename\readfilename
- \ifconditional\trackfilenames
- \doifundefinedelse{fn..\trackedfilename}\donetrue\donefalse
- \else
- \donetrue
- \fi
- \ifdone
- \checkfilename\readfilename
- \ifcase\kindoffile
- \iftracefiles\writestatus\m!systems{searching for \readfilename\space on #1}\fi
- % not a full path or url, check for existence
- \doifelsenothing{#1}
- {\def\next{\redoreadfile\readfilename{#3}{#4}}}%
- {\def\next{\redoreadfile{\pathplusfile{#1}{\readfilename}}{#3}{#4}}}%
- \else
- % a full path or url, no further checking done
- \doiffileexistselse\readfilename
- {\iftracefiles\writestatus\m!systems{located \readfilename}\fi
- \def\next{#3\dodoreadfile}}%
- {\iftracefiles\writestatus\m!systems{not found \readfilename}\fi
- \def\next{#4}}%
- \fi
- \else
- \edef\readfilename{\getvalue{fn..\readfilename}}%
- \iftracefiles\writestatus\m!systems{already located \readfilename}\fi
- \def\next{#3\dodoreadfile}%
- \fi
- \expandafter\next
- \fi}
-
-\def\redoreadfile#1#2#3%
- {\doiffileexistselse{#1}%
- {\edef\readfilename{#1}%
- \iftracefiles\writestatus\m!systems{#1 located}\fi
- \def\next{#2\dodoreadfile}}%
- {\iftracefiles\writestatus\m!systems{cannot locate #1}\fi
- \advance\readlevel\minusone
- \ifnum\readlevel>\zerocount
- \edef\readfilename{\pathplusfile{\f!parentpath}{\readfilename}}%
- \def\next{\redoreadfile\readfilename{#2}{#3}}%
- \else
- \def\next{#3}%
- \fi}%
- \next}
-
-\def\dodoreadfile % we provide hooks, for instance for \enableXML
- {\ifconditional\trackfilenames
- \setxvalue{fn..\trackedfilename}{\readfilename}%
- \fi
- \the\everybeforereadfile
-% \normalinput\readfilename\relax
- \relax\inputgivenfile\readfilename\relax
- \the\everyafterreadfile}
-
-% too less:
-%
-% \unexpanded\def\readfile% #1%
-% {\readlevel\maxreadlevel
-% \doreadfile\empty} % {#1}
-%
-% too much:
-%
-% \unexpanded\def\readfile#1#2#3%
-% {\readlocfile{#1}{#2}
-% {\readjobfile{#1}{#2}
-% {\readsysfile{#1}{#2}{#3}}}}
-%
-% just ok:
-
-\unexpanded\def\readfile#1#2#3%
- {\readlocfile{#1}{#2}{\readsysfile{#1}{#2}{#3}}}
-
-\def\readtexfile#1#2#3%
- {\pushcatcodetable \catcodetable \ctxcatcodes
- \readfile{#1}{#2}{#3}%
- \popcatcodetable}
-
-\def\readxmlfile#1#2#3%
- {\pushcatcodetable \catcodetable \xmlcatcodes
- \readfile{#1}{#2}{#3}%
- \popcatcodetable}
-
-\unexpanded\def\ReadFile#1%
- {\readfile{#1}\donothing\donothing}
-
-%D \macros
-%D {readjobfile,readlocfile,readsysfile,
-%D readfixfile,readsetfile}
-%D
-%D This implementation honnors the third situation, but we
-%D still can get unwanted files loaded and/or can get involved
-%D in extensive searching.
-%D
-%D Due to different needs, we decided to offer four alternative
-%D loading commands. With \type{\readjobfile} we load a local
-%D file and do no backtracking, while \type{\readlocfile}
-%D backtracks~\number\readlevel\ directories, including the current
-%D one.
-
-\unexpanded\def\readjobfile % #1% current path, no backtracking
- {\readlevel\zerocount
- \doreadfile\f!currentpath} % {#1}}
-
-\unexpanded\def\readlocfile % #1% current path, backtracking
- {\readlevel\maxreadlevel
- \doreadfile\f!currentpath} % {#1}}
-
-%D System files can be anywhere and therefore
-%D \type{\readsysfile} is not bound to the current directory
-%D and obeys the \TEX\ implementation.
-
-\unexpanded\def\readsysfile % #1% current path, obeys tex search
- {\readlevel\zerocount
- \doreadfile\empty} % {#1}}
-
-%D Of the last two, \type{\readfixfile} searches on the
-%D directory specified and backtracks too, while
-%D \type{\readsetfile} does only search on the specified path.
-
-\unexpanded\def\readfixfile % #1#2% specified path, backtracking
- {\readlevel\maxreadlevel
- \doreadfile} % {#1}{#2}}
-
-\unexpanded\def\readsetfile % #1#2% specified path, no backtracking
- {\readlevel\zerocount
- \doreadfile} % {#1}{#2}}
-
-%D After having defined this commands, we reconsidered the
-%D previously defined \type{\readfile}. This time we more or
-%D less impose the search order.
-
-\unexpanded\def\readfile#1#2#3%
- {\readlocfile{#1}{#2}
- {\readjobfile{#1}{#2}
- {\readsysfile{#1}{#2}{#3}}}}
-
-%D So now we've got ourselves five file loading commands:
-%D
-%D \starttyping
-%D \readfile {filename} {before loading} {not found}
-%D
-%D \readjobfile {filename} {before loading} {not found}
-%D \readlocfile {filename} {before loading} {not found}
-%D \readfixfile {filename} {before loading} {not found}
-%D \readsysfile {directory} {filename} {before loading} {not found}
-%D \stoptyping
-
-%D \macros
-%D {readjobfile,readlocfile,readsysfile,readfixfile}
-%D
-%D The next four alternatives can be used for opening files
-%D for reading on a line||by||line basis. These commands get
-%D an extra argument, the filetag. Explicit closing is done
-%D in the normal way by \type{\closein}.
-
-\def\doopenin#1#2%
- {\sanitizefilename#2\to\readfilename
- \checkfilename\readfilename
- \ifcase\kindoffile
- \advance\readlevel\plusone
- \openinputfile{#1}\readfilename
- \ifeof#1% \relax
- \ifnum\readlevel>\maxreadlevel % \relax
- \else
- \closeinputfile#1% \relax
- \doopenin{#1}{\pathplusfile\f!parentpath{#2}}%
- \fi
- \fi
- \fi}
-
-\def\openjobin#1#2%
- {\readlevel\zerocount
- \doopenin{#1}{\pathplusfile\f!currentpath{#2}}}
-
-\def\opensysin % #1#2%
- {\readlevel\maxreadlevel
- \doopenin} % {#1}{#2}}
-
-\def\openlocin#1#2%
- {\readlevel\maxreadlevel
- \doopenin{#1}{\pathplusfile\f!currentpath{#2}}}
-
-\def\openfixin#1#2#3%
- {\readlevel\maxreadlevel
- \doopenin{#1}{\pathplusfile{#2}{#3}}}
-
-%D \macros
-%D {doiffileelse,doiflocfileelse}
-%D
-%D The next alternative only looks if a file is present. No
-%D loading is done. This one obeys the standard \TEX\
-%D implementation method.
-%D
-%D \starttyping
-%D \doiffileelse {filename} {found} {not found}
-%D \stoptyping
-%D
-%D \starttyping
-%D \doiflocfileelse {filename} {before loading} {not found}
-%D \stoptyping
-
-\def\doiffileelse {\doiffileexistselse}
-\def\doiffile #1{\doiffileexistselse{#1}\firstofoneargument\gobbleoneargument}
-\def\doifnotfile #1{\doiffileexistselse{#1}\gobbleoneargument\firstofoneargument}
-
-\def\doiflocfileelse#1%
- {\makelocreadfilename{#1}%
- \doiffileelse\readfilename}
-
-\def\makelocreadfilename#1%
- {\sanitizefilename#1\to\readfilename
- \checkfilename\readfilename
- \ifcase\kindoffile
- \edef\readfilename{\pathplusfile\f!currentpath{#1}}%
- \fi}
-
-%D \macros
-%D {doonlyonce, doinputonce, doendinputonce}
-%D
-%D Especially macropackages need only be loaded once.
-%D Repetitive loading not only costs time, relocating registers
-%D often leads to abortion of the processing because \TEX's
-%D capacity is limited. One can prevent multiple execution and
-%D loading by using one of both:
-%D
-%D \starttyping
-%D \doonlyonce{actions}
-%D \doinputonce{filename}
-%D \doendinputonce{filename}
-%D \stoptyping
-%D
-%D This command obeys the standard method for locating files.
-
-\long\def\doonlyonce#1%
- {\doifundefinedelse{@@@#1@@@}
- {\letgvalue{@@@#1@@@}\empty
- \firstofoneargument}
- {\gobbleoneargument}}
-
-\def\doinputonce#1%
-% {\doonlyonce{#1}{\doiffileelse{#1}{\normalinput#1\relax}\donothing}}
- {\doonlyonce{#1}{\doiffileelse{#1}{\inputgivenfile{#1}}\donothing}}
-
-\def\doendinputonce#1%
- {\doifdefined{@@@#1@@@}\endinput}
-
-\def\forgetdoingonce#1%
- {\global\letbeundefined{@@@#1@@@}}
-
-%D \macros
-%D {doifparentfileelse}
-%D
-%D The test \type{\doifelse{\jobname}{filename}} does not give
-%D the desired result, simply because \type{\jobname} expands
-%D to characters with \CATCODE~12, while the characters in
-%D \type{filename} have \CATCODE~11. So we can better use:
-%D
-%D \starttyping
-%D \doifparentfileelse{filename}{yes}{no}
-%D \stoptyping
-%D
-%D Since \TEXEXEC\ (and thereby \CONTEXT) supports renaming of
-%D the outputfile, we also need to check on that alternative
-%D name.
-
-\ifx\outputfilename\undefined \def\outputfilename{\jobname} \fi
-
-\let\doifparentfileelse\gobblethreearguments % defined in mk
-
-\def\normalless {<} % geen \let !
-\def\normalmore {>} % geen \let !
-\def\normalequal {=} % geen \let !
-\def\normaldblquote{"} % geen \let !
-
-\newcount\readingfilelevel
-
-\def\popfilecharacter#1#2%
- {\ifnum\catcode`#1=\@@other \ifnum#2=\@@other \else
- %\message{[popping catcode #1 to #2]}%
- \catcode`#1=#2\relax
- \fi \fi}
-
-\ifx\\\undefined \let\\\relax \fi
-
-%D This changing catcodes is a direct result from the fact
-%D that we support some long standing conventions with
-%D regards to active characters (german ", polish /,
-%D french : and ;).
-
-%D We need to redo this: catcode sets and such
-
-\newtoks \everystartreadingfile
-\newtoks \everystopreadingfile
-
-\def\startreadingfile% beter een every en \setnormalcatcodes
- {\global\advance\readingfilelevel\plusone
- \the\everystartreadingfile
- \beginrestorecatcodes
- \setcatcodetable\prtcatcodes}
-
-\def\stopreadingfile
- {\endrestorecatcodes
- \the\everystopreadingfile
- \global\advance\readingfilelevel\minusone}
-
-\let\normalstartreadingfile\startreadingfile
-\let\normalstopreadingfile \stopreadingfile
-
-%D \macros
-%D {splitfilename}
-%D
-%D I should have made this one sooner. This macro was first needed when
-%D ran into graphic with a period in the pathpart.
-%D
-%D \startbuffer
-%D \def\showfilesplit
-%D {\bgroup \tttf
-%D \hbox{(full: \splitofffull)}\space
-%D \hbox{(path: \splitoffpath)}\space
-%D \hbox{(base: \splitoffbase)}\space
-%D \hbox{(name: \splitoffname)}\space
-%D \hbox{(type: \splitofftype)}\space
-%D \egroup}
-%D
-%D \splitfilename{c:/aa/bb/cc/dd.ee.ff} \showfilesplit \endgraf
-%D \splitfilename{c:/aa/bb/cc/dd.ee} \showfilesplit \endgraf
-%D \splitfilename{c:/aa/bb/cc/dd} \showfilesplit \endgraf
-%D
-%D \splitfilename{dd.ee.ff} \showfilesplit \endgraf
-%D \splitfilename{dd.ee} \showfilesplit \endgraf
-%D \splitfilename{dd} \showfilesplit \endgraf
-%D \stopbuffer
-%D
-%D \start \typebuffer \getbuffer \stop
-
-\def\splitoffroot{.} \chardef\splitoffkind\zerocount
-
-\let\splitofffull\empty
-\let\splitoffpath\empty
-\let\splitoffbase\empty
-\let\splitoffname\empty
-\let\splitofftype\empty
-
-\let\splitfilename\gobbleoneargument % defined in mk
-\let\splitfiletype\gobbleoneargument % defined in mk
-
-\loadmarkfile{supp-fil}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/supp-fun.tex b/Master/texmf-dist/tex/context/base/supp-fun.tex
index b3b27032826..6b26437038e 100644
--- a/Master/texmf-dist/tex/context/base/supp-fun.tex
+++ b/Master/texmf-dist/tex/context/base/supp-fun.tex
@@ -22,7 +22,7 @@
\ifx \undefined \writestatus \input supp-mis.tex \relax \fi
-\writestatus{loading}{Context Support Macros / Fun Stuff}
+\writestatus{loading}{ConTeXt Support Macros / Fun Stuff}
\ifx\definefont\undefined
\def\definedfont[#1]{\font\temp#1\relax\temp}
@@ -346,8 +346,8 @@
\forgetall
\bgroup
#1%
- \setbox0\box\voidb@x
- \setbox2\box\voidb@x
+ \setbox0\emptybox
+ \setbox2\emptybox
\def\grabfirstline##1 %
{\setbox2\hbox
{\ifvoid0
@@ -356,8 +356,8 @@
\unhcopy0\ {#4{##1}}%
\fi}%
\ifdim\wd2=\zeropoint
- \setbox0\box\voidb@x
- \setbox2\box\voidb@x
+ \setbox0\emptybox
+ \setbox2\emptybox
\@EA\grabfirstline
\else\ifdim\wd2>\hsize
\hbox to \hsize{\strut\unhbox0}#2\egroup
@@ -377,7 +377,7 @@
%D \definecolor[FunnyColor][r=\FunnyR,g=\FunnyG,b=\FunnyB]%
%D \color[FunnyColor]}
%D
-%D \TreatFirstLine {\bf} {} {\FunnyCommand} {\FunnyCommand}
+%D %\TreatFirstLine {\bf} {} {\FunnyCommand} {\FunnyCommand}
%D The third and fourth argument can be used to gain special
%D effects on the individual words. Of course one needs ...
%D \stopbuffer
@@ -560,7 +560,7 @@
\def\NormalizeFontSize#1#2#3#4#5%
{\bgroup
- \dimen0=#4% #4 can be \ht0 or so
+ \dimen0=#4% #4 can be \ht0 or so
\setbox0\hbox{\definedfont[#5 at 5pt]#3}% 10pt
\ifdim\wd0>\zeropoint
\dimen2=#10 % #1 is \wd or \ht
@@ -573,10 +573,13 @@
\else
\dimen0\bodyfontsize
\fi
- \definedfont[#5 at \the\dimen0]%
- \expandafter
- \egroup
- \expandafter\font\expandafter#2\fontname\font\relax}
+ % mkii
+ % \definedfont[#5 at \the\dimen0]%
+ % \expandafter
+ % \egroup
+ % \expandafter\font\expandafter#2\fontname\font\relax}
+ % mkiv safe (file: prefix etc)
+ \expanded{\egroup\def\noexpand#2{\definedfont[#5 at \the\dimen0]}}}
%D Afterwards, we have access to the calculated size by:
diff --git a/Master/texmf-dist/tex/context/base/supp-lan.tex b/Master/texmf-dist/tex/context/base/supp-lan.tex
deleted file mode 100644
index ec9176b50dc..00000000000
--- a/Master/texmf-dist/tex/context/base/supp-lan.tex
+++ /dev/null
@@ -1,1444 +0,0 @@
-%D \module
-%D [ file=supp-lan,
-%D version=1997.03.20,
-%D title=\CONTEXT\ Support Macros,
-%D subtitle=Language Options,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D \gdef\starttest
-%D {\blank
-%D \noindent
-%D \halign\bgroup\tt##\hskip2em&##\hskip2em&##\cr}
-%D
-%D \gdef\stoptest
-%D {\egroup
-%D \blank}
-%D
-%D \gdef\test#1%
-%D {\defconvertedargument\ascii{#1}\ascii&\hyphenatedword{#1}&#1\cr}
-
-%D One of \TEX's strong points in building paragraphs is the way
-%D hyphenations are handled. Although for real good hyphenation
-%D of non||english languages some extensions to the program are
-%D needed, fairly good results can be reached with the standard
-%D mechanisms and an additional macro, at least in Dutch.
-
-\unprotect
-
-\writestatus{loading}{Context Support Macros / Language Options}
-
-%D \CONTEXT\ originates in the wish to typeset educational
-%D materials, especially in a technical environment. In
-%D production oriented environments, a lot of compound words
-%D are used. Because the Dutch language poses no limits on
-%D combining words, we often favor putting dashes between those
-%D words, because it facilitates reading, at least for those
-%D who are not that accustomed to it.
-%D
-%D In \TEX\ compound words, separated by a hyphen, are not
-%D hyphenated at all. In spite of the multiple pass paragraph
-%D typesetting this can lead to parts of words sticking into
-%D the margin. The solution lays in saying \type
-%D {spoelwater||terugwinunit} instead of \type
-%D {spoelwater-terugwinunit}. By using a one character command
-%D like \type {|}, delimited by the same character \type {|},
-%D we get ourselves both a decent visualization (in \TEXEDIT\
-%D and colored verbatim we color these commands yellow) and an
-%D efficient way of combining words.
-%D
-%D The sequence \type{||} simply leads to two words connected by
-%D a hyphen. Because we want to distinguish such a hyphen from
-%D the one inserted when \TEX\ hyphenates a word, we use a bit
-%D longer one.
-%D
-%D \hyphenation {spoel-wa-ter te-rug-win-unit}
-%D
-%D \starttest
-%D \test {spoelwater||terugwinunit}
-%D \stoptest
-%D
-%D As we already said, the \type{|} is a command. This commands
-%D accepts an optional argument before it's delimiter, which is
-%D also a \type{|}.
-%D
-%D \hyphenation {po-ly-meer che-mie}
-%D
-%D \starttest
-%D \test {polymeer|*|chemie}
-%D \stoptest
-%D
-%D Arguments like \type{*} are not interpreted and inserted
-%D directly, in contrary to arguments like:
-%D
-%D \starttest
-%D \test {polymeer|~|chemie}
-%D \test {|(|polymeer|)|chemie}
-%D \test {polymeer|(|chemie|)| }
-%D \stoptest
-%D
-%D Although such situations seldom occur |<|we typeset thousands
-%D of pages before we encountered one that forced us to enhance
-%D this mechanism|>| we also have to take care of comma's.
-%D
-%D \hyphenation {uit-stel-len}
-%D
-%D \starttest
-%D \test {op||, in|| en uitstellen}
-%D \stoptest
-%D
-%D The next special case (concerning quotes) was brought to my
-%D attention by Piet Tutelaers, one of the driving forces
-%D behind rebuilding hyphenation patterns for the dutch
-%D language.\footnote{In 1996 the spelling of the dutch
-%D language has been slightly reformed which made this topic
-%D actual again.} We'll also take care of this case.
-%D
-%D \starttest
-%D \test {AOW|'|er}
-%D \test {cd|'|tje}
-%D \test {ex|-|PTT|'|er}
-%D \test {rock|-|'n|-|roller}
-%D \stoptest
-%D
-%D Tobias Burnus pointed out that I should also support
-%D something like
-%D
-%D \starttest
-%D \test {well|_|known}
-%D \stoptest
-%D
-%D to stress the compoundness of hyphenated words.
-%D
-%D Of course we also have to take care of the special case:
-%D
-%D \starttest
-%D \test {text||color and ||font}
-%D \stoptest
-
-%D \macros
-%D {installdiscretionaries}
-%D
-%D The mechanism described here is one of the older inner parts
-%D of \CONTEXT. The most recent extensions concerns some
-%D special cases as well as the possibility to install other
-%D characters as delimiters. The prefered way of specifying
-%D compound words is using \type{||}, which is installed by:
-%D
-%D \starttyping
-%D \installdiscretionaries || -
-%D \stoptyping
-%D
-%D Some alternative definitions are:
-%D
-%D \startbuffer
-%D \installdiscretionaries ** -
-%D \installdiscretionaries ++ -
-%D \installdiscretionaries // -
-%D \installdiscretionaries ~~ -
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D after which we can say:
-%D
-%D \bgroup
-%D \getbuffer
-%D \starttest
-%D \test {test**test**test}
-%D \test {test++test++test}
-%D \test {test//test//test}
-%D \test {test~~test~~test}
-%D \stoptest
-%D \egroup
-
-%D \macros
-%D {compoundhyphen,
-%D beginofsubsentence,endofsubsentence}
-%D
-%D Now let's go to the macros. First we define some variables.
-%D In the main \CONTEXT\ modules these can be tuned by a setup
-%D command. Watch the (maybe) better looking compound hyphen.
-
-% I've added \hbox's so that in mathmode we get proper chars
-
-\def\compoundhyphen {\hbox{-\kern-.25ex-}}
-\def\beginofsubsentence {\hbox{---}}
-\def\endofsubsentence {\hbox{---}}
-
-%D The last two variables are needed for subsentences
-%D |<|like this one|>| which we did not yet mention.
-%D
-%D We want to enable breaking but at the same time don't want
-%D compound characters like |-| or || to be separated from the
-%D words. \TEX\ hackers will recognise the next two macro's:
-
-\def\prewordbreak {\penalty\plustenthousand\hskip\zeropoint\relax}
-\def\postwordbreak {\penalty\zerocount\prewordbreak}
-
-%D We first show the original implementation, which only
-%D supports \type{|} as command and delimiter. Before
-%D activating \type{|} we save it's value:
-%D
-%D \starttyping
-%D \edef\domathmodediscretionary{\string|}
-%D \stoptyping
-%D
-%D after which we're ready to define it's meaning to:
-%D
-%D \starttyping
-%D \catcode`\|=\@@active
-%D
-%D \unexpanded\def|%
-%D {\ifmmode
-%D \expandafter\domathmodediscretionary
-%D \else
-%D \expandafter\dotextmodediscretionary
-%D \fi}
-%D \stoptyping
-%D
-%D We need a two stage \type{\futurelet} because we want to
-%D look ahead for both the compound character definition and
-%D the (optional) comma that follows it, and because we want to
-%D prevent that \TEX\ puts this comma on the next line. We use
-%D \type{\next} for easy and fast checking of the argument, we
-%D save this argument (which can consist of more tokens) and
-%D also save the character following the \type{|#1|} in
-%D \type{\nextnext}.
-%D
-%D \starttyping
-%D \def\dotextmodediscretionary%
-%D {\bgroup
-%D \futurelet\next\dodotextmodediscretionary}
-%D
-%D \def\dodotextmodediscretionary#1|%
-%D {\def\betweendiscretionaries{#1}%
-%D \futurelet\nextnext\dododotextmodediscretionary}
-%D \stoptyping
-%D
-%D The main macro consists of quite some \type{\ifx} tests
-%D while \type{\checkafterdiscretionary} handles the commas.
-%D We show the simplified version here:
-%D
-%D \starttyping
-%D \def\dododotextmodediscretionary%
-%D {\let\nextnextnext=\egroup
-%D \ifx |\next
-%D \checkafterdiscretionary
-%D \prewordbreak\hbox{\compoundhyphen\nextnext}\allowbreak\postwordbreak
-%D \else\ifx=\next
-%D \prewordbreak\compoundhyphen
-%D \else\ifx~\next
-%D \discretionary{-}{}{\thinspace}\postwordbreak
-%D \else\ifx(\next
-%D \prewordbreak\discretionary{}{(-}{(}\prewordbreak
-%D \else\ifx)\next
-%D \prewordbreak\discretionary{-)}{}{)}\prewordbreak
-%D \else\ifx'\next
-%D \prewordbreak\discretionary{-}{}{'}\postwordbreak
-%D \else
-%D \checkafterdiscretionary
-%D \prewordbreak\hbox{\betweendiscretionaries\nextnext}\allowbreak\postwordbreak
-%D \fi\fi\fi\fi\fi\fi
-%D \nextnextnext}
-%D
-%D \def\checkafterdiscretionary%
-%D {\ifx,\nextnext
-%D \def\nextnextnext{\afterassignment\egroup\let\next=}%
-%D \else
-%D \let\nextnext=\relax
-%D \fi}
-%D \stoptyping
-%D
-%D Handling \type{(} and \type{)} is a a bit special, because
-%D \TEX\ sees them as decent hyphenation points, according to
-%D their \type{\lccode} being non||zero. For the same reason,
-%D later on in this module we cannot manipulate the
-%D \type{\lccode} but take the \type{\uccode}.
-
-%D The most recent implementation is more advanced. As
-%D demonstrated we can install delimiters, like:
-%D
-%D \starttyping
-%D \installdiscretionaries || \compoundhyphen
-%D \stoptyping
-%D
-%D This time we have to use a bit more clever way of saving the
-%D math mode specification of the character we're going to
-%D make active. We also save the user supplied compound hyphen.
-%D We show the a bit more traditional implementation first.
-%D
-%D \starttyping
-%D \def\installdiscretionaries#1%
-%D {\catcode`#1\@@other
-%D \expandafter\doinstalldiscretionaries\string#1}
-%D
-%D \def\doinstalldiscretionaries#1%
-%D {\setvalue{mathmodediscretionary#1}{#1}%
-%D \catcode`#1\@@active
-%D \dodoinstalldiscretionaries}
-%D
-%D \def\dodoinstalldiscretionaries#1#2%
-%D {\setvalue{textmodediscretionary\string#1}{#2}%
-%D \unexpanded\def#1{\discretionarycommand#1}}
-%D \stoptyping
-%D
-%D A bit more \CATCODE\ and character trickery enables us to
-%D discard the two intermediate steps. This trick originates
-%D on page~394 of the \TEX book, in the appendix full of
-%D dirty tricks. The second argument has now become redundant,
-%D but I decided to reserve it for future use. At least it
-%D remembers us of the symmetry.
-
-\beginTEX
-
-\def\installdiscretionaries#1#2#3%
- {\defconvertedargument\ascii{#1}%
- \setevalue{\strippedcsname\mathmodediscretionary\string#1}{\ascii}%
- \setvalue {\strippedcsname\textmodediscretionary\string#1}{#3}%
- \catcode`#1=\@@active
- \scratchcounter=\the\uccode`~
- \uccode`~=`#1
- \uppercase{\unexpanded\def~{\discretionarycommand~}}%
- \uccode`~=\scratchcounter}
-
-\endTEX
-
-\beginETEX \detokenize
-
-\def\installdiscretionaries#1#2#3%
- {\setevalue{\strippedcsname\mathmodediscretionary\string#1}{\detokenize{#1}}%
- \setvalue {\strippedcsname\textmodediscretionary\string#1}{#3}%
- \catcode`#1=\@@active
- \scratchcounter=\the\uccode`~
- \uccode`~=`#1
- \uppercase{\unexpanded\def~{\discretionarycommand~}}%
- \uccode`~=\scratchcounter}
-
-\endETEX
-
-\def\domathmodediscretionary#1%
- {\getvalue{\strippedcsname\mathmodediscretionary\string#1}}
-
-\def\discretionarycommand
- {\relax\ifmmode
- \expandafter\domathmodediscretionary
- \else
- \expandafter\dotextmodediscretionary
- \fi}
-
-%D The next piece of code is a torture test for this previous
-%D macro. The \type {\relax} before the \type {\ifmmode} is
-%D needed because of the alignment scanner (in \ETEX\ this
-%D problem is not present because there a protected macro is
-%D not expanded. Thanks to Tobias Burnus for providing this
-%D example.
-%D
-%D \startformula
-%D \left|f(x_n)-{1\over2}\right| =
-%D {\cases{|{1\over2}-x_n| &for $0\le x_n < {1\over2}$\cr
-%D |x_n-{1\over2}| &for ${1\over2}<x_n\le1$ \cr}}
-%D \stopformula
-
-%D \macros
-%D {defineactivecharacter}
-%D
-%D In \type {lang-ger.tex} we define some language specific
-%D commands for german input, like:
-%D
-%D \starttyping
-%D \startlanguagespecifics[de]
-%D \installcompoundcharacter "a {{\moveaccent{-.1ex}\"a\midworddiscretionary}}
-%D \stoplanguagespecifics
-%D \stoptyping
-%D
-%D Occasionally we have to redefine such an active character,
-%D like in:
-%D
-%D \starttyping
-%D \startencoding[pdfdoc]
-%D \startlanguagespecifics[de]
-%D \defineactivecharacter " {\"}
-%D \stoplanguagespecifics
-%D \stopencoding
-%D \stoptyping
-%D
-%D Here is the command we used:
-
-% \def\next{#2}% \unexpanded\def\next is wrong in non||etex
-% \uppercase{\let~\next}%
-
-\def\defineactivecharacter #1 #2%
- {\catcode`#1=\@@active
- \scratchcounter=\the\uccode`~
- \uccode`~=`#1\relax
- \uppercase{\def\next{~}}%
- %\expandafter\unexpanded\expandafter\def\next{#2}%
- \expandafter\def\next{#2}% unexpanded goes wrong in pdfdoc
- \uccode`~=\scratchcounter}
-
-%D The next alternative also supports character numbers:
-
-\def\defineactivecharacter #1 #2%
- {\scratchcounter\the\uccode`~
- \expandafter\doifnumberelse\expandafter{\string#1}
- {\catcode #1=\@@active \uccode`~= #1\relax}
- {\catcode`#1=\@@active \uccode`~=`#1\relax}%
- \uppercase{\def\next{~}}%
- %\expandafter\unexpanded\expandafter\def\next{#2}%
- \expandafter\def\next{#2}% unexpanded goes wrong in pdfdoc
- \uccode`~\scratchcounter}
-
-%D One reason for abusing the \type{~} is that it is already
-%D an active character, so it is unlikely to appear as argument.
-
-%D The next implementation is about 20\% faster; 1M
-%D definitions on a 1Gig machine takes about 19 seconds
-%D (against 24 for the previous alternative).
-
-\chardef\activehackcode=`~
-
-% \def\defineactivecharacter #1 %
-% {\scratchcounter\the\uccode\activehackcode
-% \uccode\activehackcode\expandafter\doifnumberelse
-% \expandafter{\string#1}\empty`#1%
-% \catcode\uccode\activehackcode\@@active
-% \uppercase{\def\next{~}}%
-% \uccode\activehackcode\scratchcounter
-% \expandafter\def\next}% unexpanded goes wrong in pdfdoc
-
-%D But ...
-
-\def\defineactivecharacter #1 #2%
- {\scratchcounter\uccode\activehackcode
- \uccode\activehackcode\expandafter\doifnumberelse
- \expandafter{\string#1}\empty`#1%
- \catcode\uccode\activehackcode\@@active
- \uppercase{\def\next{~}}%
- \uccode\activehackcode\scratchcounter
- % unexpanded goes wrong in pdfdoc
- \@EA\@EA\@EA\def\@EA\next\@EA{\@EA\dohandleactivecharacter\next{#2}}}
-
-\let\dohandleactivecharacter\secondoftwoarguments
-
-\def\donthandleactivecharacter#1#2{\noexpand#1}
-
-%D A goody:
-
-\def\makecharacteractive #1 %
- {\catcode`#1\active}
-
-%D Although adapting character codes and making characters
-%D active can interfere with other features of macropackages,
-%D normally there should be no problems with things like:
-%D
-%D \starttyping
-%D \installdiscretionaries || +
-%D \installdiscretionaries ++ =
-%D \stoptyping
-%D
-%D The real work is done by the next set of macros. We have
-%D to use a double \type{\futurelet} because we have to take
-%D following characters into account.
-
-\def\dotextmodediscretionary#1%
- {\bgroup
- \def\dodotextmodediscretionary##1#1%
- {\def\betweendiscretionary{##1}%
- \futurelet\nextnext\dododotextmodediscretionary}%
- \let\discretionarycommand=#1%
- \def\textmodediscretionary%
- {\getvalue{\strippedcsname\textmodediscretionary\string#1}}%
- \futurelet\next\dodotextmodediscretionary}
-
-\def\dododotextmodediscretionary
- {\let\nextnextnext\egroup
- \ifx\discretionarycommand\next
- \checkafterdiscretionary
- \bgroup
- \checkbeforediscretionary
- \prewordbreak\hbox{\textmodediscretionary\nextnext}\allowbreak\postwordbreak
- \egroup
- \else\ifx=\next
- \prewordbreak\textmodediscretionary
- \else\ifx~\next
- \prewordbreak\discretionary{-}{}{\thinspace}\postwordbreak
- \else\ifx_\next
- \prewordbreak\discretionary{\textmodediscretionary}
- {\textmodediscretionary}{\textmodediscretionary}\prewordbreak
- \else\ifx(\next
- \ifdim\lastskip>\zeropoint\relax
- (\prewordbreak
- \else
- \prewordbreak\discretionary{}{(-}{(}\prewordbreak
- \fi
- \else\ifx)\next
- \ifx\nextnext\blankspace
- \prewordbreak)\relax
- \else
- \prewordbreak\discretionary{-)}{}{)}\prewordbreak
- \fi
- \else\ifx'\next
- \prewordbreak\discretionary{-}{}{'}\postwordbreak
- \else\ifx<\next
- \beginofsubsentence\prewordbreak\beginofsubsentencespacing
- \else\ifnum\uccode`>=\nextuccode
- \endofsubsentencespacing\prewordbreak\endofsubsentence
- \else
- \checkafterdiscretionary
- \bgroup
- \checkbeforediscretionary
- \prewordbreak
- \discretionary{\hbox{\betweendiscretionary}}{}{\hbox{\betweendiscretionary}}%
- \allowbreak\postwordbreak
- \egroup
- \fi\fi\fi\fi\fi\fi\fi\fi\fi
- \nextnextnext}
-
-\def\checkbeforediscretionary
- {\ifvmode\dontleavehmode\fi
- \ifhmode
- \begingroup
- \setbox\scratchbox\lastbox
- \ifdim\wd\scratchbox=\zeropoint
- \let\postwordbreak\prewordbreak
- \fi
- \box\scratchbox\relax
- \endgroup
- \fi}
-
-\def\checkafterdiscretionary
- {\ifx,\nextnext
- \def\nextnextnext{\afterassignment\egroup\let\next=}%
- \else
- \let\nextnext\relax
- \fi}
-
-%D The macro \type{\checkbeforediscretionary} takes care of
-%D loners like \type{||word}, while it counterpart
-%D \type{\checkafterdiscretionary} is responsible for handling
-%D the comma.
-
-%D \macros
-%D {beginofsubsentencespacing,endofsubsentencespacing}
-%D
-%D In the previous macros we provided two hooks which can be
-%D used to support nested sub||sentences. In \CONTEXT\ these
-%D hooks are used to insert a small space when needed.
-
-\let\beginofsubsentencespacing=\relax
-\let\endofsubsentencespacing =\relax
-
-%D Before we show some more tricky alternative, we first install
-%D the mechanism:
-
-\installdiscretionaries || \compoundhyphen
-
-%D \macros
-%D {fakecompoundhyphen}
-%D
-%D In headers and footers as well as in active pieces of text
-%D we need a dirty hack. Try to imagine what is needed to
-%D savely break the next text across a line and at the same
-%D time make the words interactive.
-%D
-%D \starttyping
-%D \goto{Some||Long||Word}
-%D \stoptyping
-
-\def\currentspaceskip
- {\interwordspace\!!plus\interwordstretch\!!minus\interwordshrink\relax}
-
-% \def\fakecompoundhyphen% wrong
-% {\def|##1|{\compoundhyphen\nobreak\hskip-\currentspaceskip\allowbreak}}
-
-\ifx\newsignal\undefined
-
- \let\fakecompoundhyphen\relax
-
-\else
-
- \newsignal\compoundbreakpoint
-
- % \def\fakecompoundhyphen%
- % {\def|##1|%
- % {\doifelsenothing{##1}{\compoundhyphen}{##1}%
- % \kern\compoundbreakpoint\allowbreak}}
-
- \def\fakecompoundhyphen
- {\def\|{\mathortext\vert\dofakecompoundhyphen}}
-
- \def\dofakecompoundhyphen
- {\def##1|%
- {\doifelsenothing{##1}\compoundhyphen{##1}%
- \kern\compoundbreakpoint\allowbreak}}
-
-\fi
-
-%D One of the drawbacks of this mechanism is that characters can
-%D be made active afterwards. The next alternative can be used
-%D in such situations. This time we don't compare the arguments
-%D directly but use the \type{\uccode}'s instead. \TEX\
-%D initializes these codes of the alphabetics glyphs to their
-%D uppercase counterparts. Normally the other characters remain
-%D zero. If so, we can use the \type{\uccode} as a signal.
-
-%D \macros
-%D {enableactivediscretionaries}
-%D
-%D The more advanced mechanism is activated by calling:
-%D
-%D \starttyping
-%D \enableactivediscretionaries
-%D \stoptyping
-%D
-%D which is defined as:
-
-\def\enableactivediscretionaries
- {\uccode`'=`'\relax \uccode`~=`~\relax \uccode`_=`_\relax
- \uccode`(=`(\relax \uccode`)=`)\relax \uccode`==`=\relax
- \uccode`<=`<\relax \uccode`>=`>\relax
- \let\dotextmodediscretionary \activedotextmodediscretionary
- \let\dododotextmodediscretionary\activedododotextmodediscretionary}
-
-%D We only have to redefine two macros. While saving the
-%D \type{\uccode} in a macro we have to take care of empty
-%D arguments, like in \type{||}.
-
-\def\activedotextmodediscretionary#1%
- {\bgroup
- \def\dodotextmodediscretionary##1#1%
- {\def\betweendiscretionary{##1}%
- \def\nextuccode####1####2\relax%
- {\ifcat\noexpand####1\noexpand\relax
- \edef\nextuccode{0}%
- \else
- \edef\nextuccode{\the\uccode`####1}%
- \fi}%
- \nextuccode##1@\relax
- \futurelet\nextnext\dododotextmodediscretionary}%
- \let\discretionarycommand=#1%
- \def\textmodediscretionary%
- {\getvalue{\strippedcsname\textmodediscretionary\string#1}}%
- \futurelet\next\dodotextmodediscretionary}
-
-%D This time we use \type{\ifnum}:
-
-\def\activedododotextmodediscretionary
- {\let\nextnextnext\egroup
- \ifx\discretionarycommand\next
- \checkafterdiscretionary
- \bgroup
- \checkbeforediscretionary
- \prewordbreak\hbox{\textmodediscretionary\nextnext}\allowbreak\postwordbreak
- \egroup
- \else\ifnum\uccode`==\nextuccode
- \prewordbreak\textmodediscretionary
- \else\ifnum\uccode`~=\nextuccode
- \prewordbreak\discretionary{-}{}{\thinspace}\postwordbreak
- \else\ifnum\uccode`_=\nextuccode
- \prewordbreak\discretionary{\textmodediscretionary}
- {\textmodediscretionary}{\textmodediscretionary}\prewordbreak
- \else\ifnum\uccode`(=\nextuccode
- \ifdim\lastskip>\zeropoint\relax
- (\prewordbreak
- \else
- \prewordbreak\discretionary{}{(-}{(}\prewordbreak
- \fi
- \else\ifnum\uccode`)=\nextuccode
- \ifx\nextnext\blankspace
- \prewordbreak)\relax
- \else
- \prewordbreak\discretionary{-)}{}{)}\prewordbreak
- \fi
- \else\ifnum\uccode`'=\nextuccode
- \prewordbreak\discretionary{-}{}{'}\postwordbreak
- \else\ifnum\uccode`<=\nextuccode
- \beginofsubsentence\prewordbreak\beginofsubsentencespacing
- \else\ifnum\uccode`>=\nextuccode
- \endofsubsentencespacing\prewordbreak\endofsubsentence
- \else
- \checkafterdiscretionary
- \bgroup
- \checkbeforediscretionary
- %\prewordbreak\hbox{\betweendiscretionary\nextnext}\allowbreak
- \prewordbreak
- \discretionary{\hbox{\betweendiscretionary}}{}{\hbox{\betweendiscretionary}}%
- \allowbreak\postwordbreak
- \egroup
- \fi\fi\fi\fi\fi\fi\fi\fi\fi
- \nextnextnext} % no lookahead in commands
-
-%D Now we can safely do things like: \enableactivediscretionaries
-%D
-%D \starttyping
-%D \catcode`<=\@@active \def<{hello there}
-%D \catcode`>=\@@active \def>{hello there}
-%D \catcode`(=\@@active \def({hello there}
-%D \catcode`)=\@@active \def){hello there}
-%D \stoptyping
-%D
-%D In normal day||to||day production of texts this kind of
-%D activation is seldom used.\footnote{In the \CONTEXT\ manual
-%D the \type{<} and \type{>} are made active and used for some
-%D cross||reference trickery.} If so, we have to take care of
-%D the math mode explicitly, just like we did when making
-%D \type{|} active. It can be confusing too, especially when we
-%D load macropackages afterwards that make use of \type{<} in
-%D \type{\ifnum} or \type{\ifdim} statements.
-
-%D And then came the Polish users, and who can deny them? Like
-%D the German \TEX\ users demand an active \type {"}, some
-%D Polish users like using the \type {/}. The next alternative
-%D is a bit slower but far the most robust alternative. As a
-%D bonus it also offers \type {|^|} and even \type {|||} which
-%D both result in a breakable|^|bar.
-%D
-%D The trick we use here is to convert the argument to a
-%D string and compare this string to string'd tokens.
-
-\def\activedotextmodediscretionary#1%
- {\bgroup
- \let\nextnextnext\egroup
-% \def\handlecompoundcharacter##1% new, needed for polish
-% {\getvalue{\@nc@\string##1}}% where / is active
- \def\next##1#1%
- {\def\next{\activedododotextmodediscretionary#1{##1}}%
- \futurelet\nextnext\next}%
- \next}
-
-\def\activedododotextmodediscretionary#1#2%
- {\defconvertedargument\discretionarytoken{#2}%
- \def\textmodediscretionary
- {\getvalue{\strippedcsname\textmodediscretionary\string#1}}%
- \ifx#1\nextnext % takes care of ||| and +++ and ......
- \prewordbreak\discretionary{\hbox{$#1$}}{}{\hbox{$#1$}}%
- \allowbreak\postwordbreak
- \def\nextnextnext{\afterassignment\egroup\let\next=}%
- \else\ifx\discretionarytoken\empty
- \checkafterdiscretionary
- \bgroup
- \checkbeforediscretionary
- % this was:
- % \prewordbreak\hbox{\textmodediscretionary\nextnext}\allowbreak\postwordbreak
- % but an hbox blocks a possible \discretionary
- \prewordbreak\textmodediscretionary\nextnext\allowbreak\postwordbreak
- \egroup
- \else\defconvertedargument\next=\ifx\next\discretionarytoken
- \prewordbreak\textmodediscretionary
- \else\defconvertedargument\next~\ifx\next\discretionarytoken
- \prewordbreak\discretionary{-}{}{\thinspace}\postwordbreak
- \else\defconvertedargument\next_\ifx\next\discretionarytoken
- \prewordbreak\discretionary{\textmodediscretionary}
- {\textmodediscretionary}{\textmodediscretionary}\prewordbreak
- \else\defconvertedargument\next(\ifx\next\discretionarytoken
- \ifdim\lastskip>\zeropoint\relax
- (\prewordbreak
- \else
- \prewordbreak\discretionary{}{(-}{(}\prewordbreak
- \fi
- \else\defconvertedargument\next)\ifx\next\discretionarytoken
- \ifx\nextnext\blankspace
- \prewordbreak)\relax
- \else\ifx\nextnext\space
- \prewordbreak)\relax
- \else
- \prewordbreak\discretionary{-)}{}{)}\prewordbreak
- \fi\fi
- \else\defconvertedargument\next'\ifx\next\discretionarytoken
- \prewordbreak\discretionary{-}{}{'}\postwordbreak
- \else\defconvertedargument\next<\ifx\next\discretionarytoken
- \beginofsubsentence\prewordbreak\beginofsubsentencespacing
- \else\defconvertedargument\next>\ifx\next\discretionarytoken
- \endofsubsentencespacing\prewordbreak\endofsubsentence
- \else\defconvertedargument\next^\ifx\next\discretionarytoken
- \prewordbreak\discretionary{\hbox{$|$}}{}{\hbox{$|$}}%
- \allowbreak\postwordbreak
- \else
- \checkafterdiscretionary
- \bgroup
- \checkbeforediscretionary
- \prewordbreak
- \discretionary{\hbox{#2}}{}{\hbox{#2}}%
- \allowbreak\postwordbreak
- \egroup
- \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
- \nextnextnext} % no lookahead in commands
-
-%D Since most things in \CONTEXT\ are configurable, we
-%D slightly change the previous definition so that we can
-%D install new functionality outside this module. We also
-%D support lookahead (over the egroup).
-
-\def\@tmd@{@@tmd@@}
-
-\def\activedododotextmodediscretionary#1#2%
- {\defconvertedargument\discretionarytoken{#2}%
- \def\textmodediscretionary%
- {\getvalue{\strippedcsname\textmodediscretionary\string#1}}%
- \ifx\discretionarytoken\empty
- \ifx#1\nextnext % takes care of ||| and +++ and ......
- \prewordbreak\discretionary{\hbox{$#1$}}{}{\hbox{$#1$}}%
- \allowbreak\postwordbreak
- \def\nextnextnext{\afterassignment\egroup\let\next=}%
- \else
- \checkafterdiscretionary
- \bgroup
- \checkbeforediscretionary
- % the next line has been changed (20050203)
- % \prewordbreak\hbox{\textmodediscretionary\nextnext}\allowbreak\postwordbreak
- % but an hbox blocks a possible \discretionary
- \prewordbreak\textmodediscretionary\nextnext\allowbreak\postwordbreak
- \egroup
- \fi
- \else\expandafter\ifx\csname\@tmd@\discretionarytoken\endcsname\relax
- \checkafterdiscretionary
- \bgroup
- \checkbeforediscretionary
- \prewordbreak
- \discretionary{\hbox{#2}}{}{\hbox{#2}}%
- \allowbreak\postwordbreak
- \egroup
- \else\ifx\nextnextnext\egroup % so we can properly do things afterward
- \@EA\egroup
- \@EA\let\@EA\nextnextnext\@EA\empty
- \csname\@tmd@\discretionarytoken\endcsname
- \else
- \csname\@tmd@\discretionarytoken\endcsname
- \fi\fi\fi
- \nextnextnext} % lookahead in commands
-
-\def\definetextmodediscretionary #1
- {\defconvertedargument\ascii{#1}%
- \setvalue{\@tmd@\ascii}}
-
-\definetextmodediscretionary {} % empty case, also handled in parser
- {\prewordbreak\compoundhyphen\allowbreak\postwordbreak}
-
-\definetextmodediscretionary ~
- {\prewordbreak\discretionary{-}{}{\thinspace}\postwordbreak}
-
-\definetextmodediscretionary _
- {\prewordbreak
- \discretionary{\compoundhyphen}{\compoundhyphen}{\compoundhyphen}%
- \prewordbreak}
-
-\definetextmodediscretionary (
- {\ifdim\lastskip>\zeropoint
- (\prewordbreak
- \else
- \prewordbreak\discretionary{}{(-}{(}\prewordbreak
- \fi}
-
-\definetextmodediscretionary )
- {\ifx\nextnext\blankspace
- \prewordbreak)\relax
- \else\ifx\nextnext\space
- \prewordbreak)\relax
- \else
- \prewordbreak\discretionary{-)}{}{)}\prewordbreak
- \fi\fi}
-
-\definetextmodediscretionary '
- {\prewordbreak\discretionary{-}{}{'}\postwordbreak}
-
-\definetextmodediscretionary <
- {\beginofsubsentence\prewordbreak\beginofsubsentencespacing}
-
-\definetextmodediscretionary >
- {\endofsubsentencespacing\prewordbreak\endofsubsentence}
-
-% \definetextmodediscretionary . % not yet definitive
-% {\prewordbreak\midsentence\prewordbreak}
-
-\definetextmodediscretionary =
- {\prewordbreak\midsentence\prewordbreak} % {\prewordbreak\compoundhyphen}
-
-\definetextmodediscretionary ^
- {\prewordbreak\discretionary{\hbox{$|$}}{}{\hbox{$|$}}%
- \allowbreak\postwordbreak}
-
-% french
-
-\definetextmodediscretionary :
- {\removeunwantedspaces\prewordbreak\kern\hspaceamount\empty{:}:}
-
-\definetextmodediscretionary ;
- {\removeunwantedspaces\prewordbreak\kern\hspaceamount\empty{;};}
-
-\definetextmodediscretionary ?
- {\removeunwantedspaces\prewordbreak\kern\hspaceamount\empty{?}?}
-
-\definetextmodediscretionary !
- {\removeunwantedspaces\prewordbreak\kern\hspaceamount\empty{!}!}
-
-\definetextmodediscretionary *
- {\prewordbreak\discretionary{-}{}{\kern.05em}\prewordbreak}
-
-% spanish
-
-\definetextmodediscretionary ??
- {\prewordbreak\questiondown}
-
-\definetextmodediscretionary !!
- {\prewordbreak\exclamdown}
-
-\ifx\hspaceamount\undefined
-
- \def\hspaceamount#1#2{\kern.16667em}
-
-\fi
-
-%D Since we don't have to bother about active characters any
-%D longer, we end up with a pretty simple activating macro:
-
-\def\enableactivediscretionaries
- {\let\dotextmodediscretionary=\activedotextmodediscretionary}
-
-%D Done somewhere else: \type {\enableactivediscretionaries}.
-
-%D \macros
-%D {directdiscretionary}
-%D
-%D In those situations where the nature of characters is
-%D less predictable, we can use the more direct approach:
-
-%D Beware: an \type {\ignorespaces} in a definition works
-%D okay here, but not in the main mechanism because there
-%D we have \type {\nextnextnext}.
-
-\unexpanded\def\directdiscretionary#1%
- {\defconvertedargument\discretionarytoken{#1}%
- \let\textmodediscretionary\compoundhyphen
- \expandafter\ifx\csname\@tmd@\string#1\endcsname\relax
- \prewordbreak
- \discretionary{\hbox{#1}}{}{\hbox{#1}}%
- \allowbreak\postwordbreak
- \else
- \csname\@tmd@\string#1\endcsname
- \fi}
-
-%D \macros
-%D {installcompoundcharacter}
-%D
-%D When Tobias Burnus started translating the dutch manual of
-%D \PPCHTEX\ into german, he suggested to let \CONTEXT\ support
-%D the \type{german.sty} method of handling compound
-%D characters, especially the umlaut. This package is meant for
-%D use with \PLAIN\ \TEX\ as well as \LATEX.
-%D
-%D I decided to implement compound character support as
-%D versatile as possible. As a result one can define his own
-%D compound character support, like:
-%D
-%D \starttyping
-%D \installcompoundcharacter "a {\"a}
-%D \installcompoundcharacter "e {\"e}
-%D \installcompoundcharacter "i {\"i}
-%D \installcompoundcharacter "u {\"u}
-%D \installcompoundcharacter "o {\"o}
-%D \installcompoundcharacter "s {\SS}
-%D \stoptyping
-%D
-%D or even
-%D
-%D \starttyping
-%D \installcompoundcharacter "ck {\discretionary {k-}{k}{ck}}
-%D \installcompoundcharacter "ff {\discretionary{ff-}{f}{ff}}
-%D \stoptyping
-%D
-%D The support is not limited to alphabetic characters, so the
-%D next definition is also valid.
-%D
-%D \starttyping
-%D \installcompoundcharacter ". {.\doifnextcharelse{\spacetoken}{}{\kern.125em}}
-%D \stoptyping
-%D
-%D The implementation looks familiar and uses the same tricks as
-%D mentioned earlier in this module. We take care of two
-%D arguments, which complicates things a bit.
-
-\def\@nc@{@nc@} % normal character
-\def\@nn@{@nn@} % normal catcode
-\def\@cc@{@cc@} % compound character
-\def\@cs@{@cs@} % compound characters
-
-% \def\installcompoundcharacter #1#2#3 #4% {#4} no grouping
-% {\setvalue{\@nc@\string#1}{\char`#1}%
-% \ifnum\catcode`#1=\@@active \else
-% \setevalue{\@nn@\string#1}{\number\catcode`#1}% new
-% \fi
-% \def\!!stringa{#3}%
-% \ifx\!!stringa\empty
-% \setvalue{\@cc@\string#1\string#2}{#4}%
-% \else
-% \setvalue{\@cs@\string#1\string#2\string#3}{#4}%
-% \fi
-% \catcode`#1=\@@active
-% \scratchcounter=\the\uccode`~
-% \uccode`~=`#1
-% \uppercase{\unexpanded\def~{\handlecompoundcharacter~}}%
-% \uccode`~=\scratchcounter}
-
-\def\installcompoundcharacter #1#2#3 #4% {#4} no grouping
- {\chardef\thecompoundcharacter`#1%
- %\@EA\def\csname\@nc@\string#1\endcsname{\char`#1}%
- \@EA\chardef\csname\@nc@\string#1\endcsname\thecompoundcharacter
- \ifnum\catcode\thecompoundcharacter=\@@active \else
- \@EA\edef\csname\@nn@\string#1\endcsname
- {\number\catcode\thecompoundcharacter}%
- \fi
- \def\!!stringa{#3}%
- \@EA\def\csname\ifx\!!stringa\empty
- \@cc@\string#1\string#2%
- \else
- \@cs@\string#1\string#2\string#3%
- \fi\endcsname{#4}%
- \catcode\thecompoundcharacter\@@active
- \scratchcounter\uccode\activehackcode
- \uccode\activehackcode\thecompoundcharacter
- \uppercase{\unexpanded\def~{\handlecompoundcharacter~}}%
- \uccode\activehackcode\scratchcounter}
-
-%D A compound character can be reset with the following
-%D command.
-%D
-%D \starttyping
-%D \restorecompoundcharacter /
-%D \stoptyping
-
-\def\restorecompoundcharacter#1% new
- {\catcode`#1=\csname\@nn@\string#1\endcsname\relax}
-
-%D We can also ignore definitions (needed in for instance \XML). Beware,
-%D this macro is supposed to be used grouped!
-
-\def\ignorecompoundcharacter
- {\def\installcompoundcharacter##1 ##2{}}
-
-%D In handling the compound characters we have to take care of
-%D \type{\bgroup} and \type{\egroup} tokens, so we end up with
-%D a multi||step interpretation macro. We look ahead for a
-%D \type{\bgroup}, \type{\egroup} or \type{\blankspace}. Being
-%D no user of this mechanism, the credits for testing them goes
-%D to Tobias Burnus, the first german user of \CONTEXT.
-%D
-%D We define these macros as \type{\long} because we can
-%D expect \type{\par} tokens. We need to look into the future
-%D with \type{\futurelet} to prevent spaces from
-%D disappearing.
-
-% \def\handlecompoundcharacter#1%
-% {\def\dohandlecompoundcharacter%
-% {\ifx\next\bgroup
-% %\def\next{\dodohandlecompoundcharacter#1}% % handle "{ee} -> \"ee
-% %\let\next\relax % forget "{ee} -> ee
-% \def\next{\handlecompoundcharacterone#1}% % ignore "{ee} -> "ee
-% \else\ifx\next\egroup
-% \def\next{\getvalue{\@nc@\string#1}}%
-% \else\ifx\next\blankspace
-% \def\next{\getvalue{\@nc@\string#1}}%
-% \else
-% \def\next{\dodohandlecompoundcharacter#1}%
-% \fi\fi\fi
-% \next}%
-% \futurelet\next\dohandlecompoundcharacter}
-%
-% \def\dodohandlecompoundcharacter#1#2%
-% {\def\dododohandlecompoundcharacter% Keep it here and
-% {\ifx\next\bgroup % preserve spaces!
-% \def\next{\handlecompoundcharacterone#1#2}%
-% \else\ifx\next\egroup
-% \def\next{\handlecompoundcharacterone#1#2}%
-% \else\ifx\next\blankspace
-% \def\next{\handlecompoundcharacterone#1#2}%
-% \else
-% \def\next{\handlecompoundcharactertwo#1#2}%
-% \fi\fi\fi
-% \next}%
-% \futurelet\next\dododohandlecompoundcharacter}
-
-\def\handlecompoundcharacter#1%
- {\def\xhandlecompoundcharacter{\dohandlecompoundcharacter{#1}}%
- \futurelet\next\xhandlecompoundcharacter}
-
-\def\dohandlecompoundcharacter
- {\ifx\next\bgroup
- %\@EA\dodohandlecompoundcharacter % handle "{ee} -> \"ee
- %\@EA\gobbleoneargument % forget "{ee} -> ee
- \@EA\handlecompoundcharacterone % ignore "{ee} -> "ee
- \else\ifx\next\egroup
- \@EAEAEA\donohandlecompoundcharacter
- \else\ifx\next\blankspace
- \@EA\@EAEAEA\@EA\donohandlecompoundcharacter
- \else
- \@EA\@EAEAEA\@EA\dodohandlecompoundcharacter
- \fi\fi\fi}
-
-\def\donohandlecompoundcharacter#1{\csname\@nc@\string#1\endcsname}
-
-\def\dododohandlecompoundcharacter
- {\ifx\next\bgroup
- \@EA\handlecompoundcharacterone
- \else\ifx\next\egroup
- \@EAEAEA\handlecompoundcharacterone
- \else\ifx\next\blankspace
- \@EA\@EAEAEA\@EA\handlecompoundcharacterone
- \else
- \@EA\@EAEAEA\@EA\handlecompoundcharactertwo
- \fi\fi\fi}
-
-\def\dodohandlecompoundcharacter#1#2% preserve space
- {\def\xdodohandlecompoundcharacter{\dododohandlecompoundcharacter#1#2}%
- \futurelet\next\xdodohandlecompoundcharacter}
-
-%D Besides taken care of the grouping and space tokens, we have
-%D to deal with three situations. First we look if the next
-%D character equals the first one, if so, then we just insert
-%D the original. Next we look if indeed a compound character is
-%D defined. We either execute the compound character or just
-%D insert the first. So we have
-%D
-%D \starttyping
-%D <key><key> <key><known> <key><unknown>
-%D \stoptyping
-%D
-%D In later modules we will see how these commands are used.
-
-\beginTEX
-
-\long\def\handlecompoundcharacterone#1#2%
- {\if\string#1\string#2% was: \ifx#1#2%
- %\def\next{\getvalue{\@nc@\string#1}\getvalue{\@nc@\string#2}}%
- \def\next{\getvalue{\@nc@\string#1}}%
- \else\expandafter\ifx\csname\@cc@\string#1\string#2\endcsname\relax
- \def\next{\getvalue{\@nc@\string#1}#2}%
- \else
- \def\next{\getvalue{\@cc@\string#1\string#2}}%
- \fi\fi
- \next}
-
-\long\def\handlecompoundcharactertwo#1#2#3%
- {\if\string#1\string#2% was: \ifx#1#2%
- %\def\next{\getvalue{\@nc@\string#1}\getvalue{\@nc@\string#2}#3}%
- \def\next{\getvalue{\@nc@\string#1}#3}%
- \else\@EA\ifx\csname\@cs@\string#1\string#2\string#3\endcsname\relax
- \expandafter\ifx\csname\@cc@\string#1\string#2\endcsname\relax
- \def\next{\getvalue{\@nc@\string#1}#2#3}%
- \else
- \def\next{\getvalue{\@cc@\string#1\string#2}#3}%
- \fi
- \else
- \def\next{\getvalue{\@cs@\string#1\string#2\string#3}}%
- \fi\fi
- \next}
-
-\endTEX
-
-\beginETEX \ifcsname
-
-\long\def\handlecompoundcharacterone#1#2%
- {\if\string#1\string#2% was: \ifx#1#2%
- %\def\next{\getvalue{\@nc@\string#1}\getvalue{\@nc@\string#2}}%
- \def\next{\getvalue{\@nc@\string#1}}%
- \else\ifcsname\@cc@\string#1\string#2\endcsname
- \def\next{\getvalue{\@cc@\string#1\string#2}}%
- \else
- \def\next{\getvalue{\@nc@\string#1}#2}%
- \fi\fi
- \next}
-
-\long\def\handlecompoundcharactertwo#1#2#3%
- {\if\string#1\string#2% was: \ifx#1#2%
- %\def\next{\getvalue{\@nc@\string#1}\getvalue{\@nc@\string#2}#3}%
- \def\next{\getvalue{\@nc@\string#1}#3}%
- \else\ifcsname\@cs@\string#1\string#2\string#3\endcsname
- \def\next{\getvalue{\@cs@\string#1\string#2\string#3}}%
- \else\ifcsname\@cc@\string#1\string#2\endcsname
- \def\next{\getvalue{\@cc@\string#1\string#2}#3}%
- \else
- \def\next{\getvalue{\@nc@\string#1}#2#3}%
- \fi\fi\fi
- \next}
-
-\endETEX
-
-%D For very obscure applications (see for an application \type
-%D {lang-sla.tex}) we provide:
-
-\def\dosimplifiedcompoundcharacter#1%
- {#1}
-
-\beginTEX
-
-\def\simplifiedcompoundcharacter#1#2%
- {\@EA\ifx\csname\@cc@\string#1\string#2\endcsname\relax
- #2%
- \else
- \@EA\@EA\@EA\dosimplifiedcompoundcharacter\csname\@cc@\string#1\string#2\endcsname
- \fi}
-
-\endTEX
-
-\beginETEX \ifcsname
-
-\def\simplifiedcompoundcharacter#1#2%
- {\ifcsname\@cc@\string#1\string#2\endcsname
- \@EA\@EA\@EA\dosimplifiedcompoundcharacter\csname\@cc@\string#1\string#2\endcsname
- \else
- #2%
- \fi}
-
-\endETEX
-
-%D \macros
-%D {midworddiscretionary}
-%D
-%D If needed, one can add a discretionary hyphen using \type
-%D {\midworddiscretionary}. This macro does the same as
-%D \PLAIN\ \TEX's \type {\-}, but, like the ones implemented
-%D earlier, this one also looks ahead for spaces and grouping
-%D tokens.
-
-\def\domidworddiscretionary
- {\ifx\next\blankspace\else
- \ifx\next\bgroup \else
- \ifx\next\egroup \else
- \discretionary{-}{}{}%
- \fi\fi\fi}
-
-\def\midworddiscretionary%
- {\futurelet\next\domidworddiscretionary}
-
-%D \macros
-%D {hyphenatedurl}
-%D
-%D For those who want to put full \URL's in a text, we offer
-%D
-%D \startbuffer
-%D \hyphenatedurl{http://optimist.optimist/optimist/optimist.optimist#optimist}
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D which breaks at the appropriate places. Watch the \type{#}
-%D hack.
-%D
-%D When passed as argument, like in \type {\goto}, one needs
-%D to substitute a \type {\\} for each \type{#}.
-%D
-%D \startbuffer
-%D \hyphenatedurl{http://this.is.a.rather/strange/reference#indeed}
-%D \stopbuffer
-%D
-%D \typebuffer
-
-\ifx\\\undefined \let\\\crlf \fi
-
-\chardef\urlsplitmode=1
-
-% 0 => don't split
-% 1 => . : na, rest voor
-% 2 => alles na
-% 3 => alles voor
-
-% \bgroup \catcode`\~=\active \catcode`\/=\active
-
-% Why not convert to ascii first? I will redo this one!
-
-\bgroup \catcode`\~=\active \catcode`\/=\active
-
-\unexpanded\gdef\hyphenatedurl#1% {}{} handles accents
- {\bgroup
- \ifnum\hyphenpenalty<10000 \else
- \def\discretionary##1##2##3{##1\allowbreak##2}%
- \fi
- \obeyhyphens
- \def\splitbefore##1%
- {\setbox\scratchbox=\hbox{##1{}{}}%
- \ifcase\urlsplitmode
- \box\scratchbox
- \or
- \postwordbreak\box\scratchbox\prewordbreak
- \or
- \prewordbreak\discretionary{\box\scratchbox}{}{\box\scratchbox}\prewordbreak
- \else
- \postwordbreak\box\scratchbox\prewordbreak
- \fi}%
- \def\splitafter##1%
- {\ifcase\urlsplitmode
- ##1{}{}%
- \or
- \prewordbreak\discretionary{##1{}{}}{}{##1{}{}}\prewordbreak
- \or
- \prewordbreak\discretionary{##1{}{}}{}{##1{}{}}\prewordbreak
- \else
- \prewordbreak\discretionary{}{##1{}{}}{##1{}{}}\prewordbreak
- \fi}%
- \def\splitanyway##1%
- {\prewordbreak##1\prewordbreak}%
- \def\flushurl%
- {\savedurl\let\savedurl\empty}%
- \def\\%
- {\spliturl\#}%
- \let\~=\lettertilde\let~=\~%
- \let\/=\letterslash\let/=\/%
- \let\savedurl\empty
- \scratchcounter\zerocount % used for hyphenmethod
- \handletokens#1\with\scanurl\savedurl
- \egroup}
-
-\egroup
-
-%D This would be better, but it spoils \type {\~} and so:
-%D
-%D \starttyping
-%D \defconvertedargument\ascii{#1}
-%D \expandafter\handletokens\ascii\with\scanurl
-%D \stoptyping
-
-\chardef\urlhyphenmethod=0
-
-\def\scanurl#1%
- {\advance\scratchcounter\plusone
- \ifx#1\blankspace
- \flushurl\splitanyway\normalspace
- \else\ifx#1\ %
- \flushurl\splitanyway\normalspace
- \else\ifx#1\space
- \flushurl\splitanyway\normalspace
- \else\ifx#1\~%
- \flushurl\splitbefore\~%
- \else\ifx#1\#%
- \flushurl\splitbefore\#%
- \else\ifx#1\&%
- \flushurl\splitbefore\&%
- \else\ifx#1\%%
- \flushurl\splitbefore\%%
- \else\ifx#1\_%
- \flushurl\splitbefore\_%
- \else\if\noexpand#1\relax
- #1%
- \else\ifnum\catcode`#1=8
- \flushurl\splitbefore\_%
- \else\ifnum\catcode`#1=6
- \flushurl\splitbefore\#%
- \else\ifnum\catcode`#1=4
- \flushurl\splitbefore\&%
- \else\expandafter\if\string#1\lettertilde
- \flushurl\splitbefore\~%
- \else\expandafter\if\string#1\letterpercent
- \flushurl\splitbefore\%%
- \else\expandafter\if\string#1\letterunderscore
- \flushurl\splitbefore\_%
- \else\expandafter\if\string#1\letterquestionmark
- \flushurl\splitafter\letterquestionmark
- \else\expandafter\if\string#1\letterat
- \flushurl\splitafter\letterat
- \else\expandafter\if\string#1\letterslash
- \edef\savedurl{\savedurl\letterslash}%
- \else\expandafter\if\string#1+%
- \flushurl\splitafter+%
- \else\expandafter\if\string#1:%
- \flushurl\splitafter:%
- \else\expandafter\if\string#1.%
- \flushurl\splitafter.%
- \else\expandafter\if\string#1(%
- \flushurl\splitbefore(%
- \else\expandafter\if\string#1)%
- \flushurl\splitafter)%
- \else
- \ifx\savedurl\empty\else
- \splitbefore\savedurl
- \let\savedurl\empty
- \fi
- \ifcase\urlhyphenmethod
- \string#1%
- \else
- \ifnum\scratchcounter>\plusthree % so, \http: will not break
- \edef\savedurl{\string#1}%
- \else
- \string#1%
- \fi
- \fi
- \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
-
-% \setupinteraction[state=start]
-% \def\gotoURL#1{\useURL[foo][#1]\goto{\url[foo]}[url(foo)]}
-% \starttext
-% \endgraf \chardef\urlhyphenmethod=0
-% \hsize1pt\gotoURL{http://www.physik.fu-berlin.de/SomeVeryVeryVeryLongDirectory/And/AQuiteLongFileName.html}
-% \endgraf \chardef\urlhyphenmethod=1
-% \hsize1pt\gotoURL{http://www.physik.fu-berlin.de/SomeVeryVeryVeryLongDirectory/And/AQuiteLongFileName.html}
-% \stoptext
-
-% \useencoding[ffr]
-% \mainlanguage[fr]
-% \starttext
-% \hyphenatedurl{http://somewhere.to/go}
-% \stoptext
-
-%D When Joop Susan asked (on the \CONTEXT\ mailing list) how
-%D to handle url's passed as argument, the following solutions
-%D came to my mind:
-%D
-%D \starttyping
-%D \def\whateverurl#1%
-%D {{\def~{\string~}\useURL[dummy][#1]\goto{\url[dummy]}[URL(dummy)]}}
-%D
-%D \def\whateverurl#1%
-%D {{\let~\lettertilde\useURL[dummy][#1]\goto{\url[dummy]}[URL(dummy)]}}
-%D
-%D \def\whateverurl#1%
-%D {\defconvertedargument\ascii{#1}%
-%D \expanded{\useURL[dummy][\ascii]}\goto{\url[dummy]}[URL(dummy)]}
-%D \stoptyping
-
-%D \macros
-%D {hyphenatedfile}
-%D
-%D For the moment we treat filenames in a similar way,
-%D
-%D \starttyping
-%D \hyphenatedfile{here/there/filename.suffix}
-%D \stoptyping
-
-\let\hyphenatedfile\hyphenatedurl
-
-% to be finished
-%
-% \def\hyphenatedstring#1%
-% {\bgroup
-% \nohyphens
-% \def\next##1{##1\doif{##1}{-}{\allowbreak}}%
-% \handletokens#1\with\next
-% \egroup}
-%
-% {\hsize1cm\hyphenatedstring{ABXXXXXXXXXXC-12345-12345}}
-
-%D \macros
-%D {disablediscretionaries,disablecompoundcharacter}
-%D
-%D Occasionally we need to disable this mechanism. For the
-%D moment we assume that \type {|} is used.
-
-\def\disablediscretionaries
- {\def|##1|{\string##1}%
- \def\directdiscretionary##1{\string##1}}
-
-\def\disablecompoundcharacters
- {\let\handlecompoundcharacter\string}
-
-%D \macros
-%D {normalcompound}
-%D
-%D Handy in for instance XML:
-
-\ifx\normalcompound\undefined \let\normalcompound=| \fi
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/supp-mat.tex b/Master/texmf-dist/tex/context/base/supp-mat.tex
index 3c66566d329..1a51164e676 100644
--- a/Master/texmf-dist/tex/context/base/supp-mat.tex
+++ b/Master/texmf-dist/tex/context/base/supp-mat.tex
@@ -15,7 +15,7 @@
%D a support module. There is nothing spectacular here. It may move
%D back to math-ini.
-\writestatus{loading}{Context Support Macros / Math}
+\writestatus{loading}{ConTeXt Support Macros / Math}
\unprotect
@@ -193,8 +193,15 @@
%D {cramped}
%D
%D \TEX provides no primitive to force in cramped math mode. Here is
-%D a macro that does so. It is based on a solution by Don Knuth (\userul
+%D a macro that does so. It is based on a solution by Don Knuth (\useurl
%D {http://www.ctan.org/tex-archive/digests/tex-implementors/042}).
+%D
+%D \startbuffer
+%D \ruledhbox{$\left\{{x^2\over y^2}\right\}$}
+%D \ruledhbox{$\cramped{\left\{ {x^2\over y^2}\right\}}$}
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
\def\cramped
{\mathpalette\docramped}
@@ -209,7 +216,7 @@
% \def\docramped#1#2%
% {\setbox\scratchbox\hbox
% {\nulldelimiterspace\zeropoint
-% $\m@th#1\radical\zerocount{#2}$}%
+% $\mathsurround\zeropoint#1\radical\zerocount{#2}$}%
% \ifx#1\displaystyle
% \scratchdimen\fontdimen8\textfont3
% \advance\scratchdimen .25\fontdimen5\textfont2
@@ -229,7 +236,7 @@
{\begingroup % added HH, made even more cramped
\setbox\scratchbox\hbox
{\nulldelimiterspace\zeropoint
- $\m@th#1\radical\zerocount{#2}$}%
+ $\mathsurround\zeropoint#1\radical\zerocount{#2}$}%
\ht\scratchbox-\dimexpr
\ifx#1\displaystyle
\fontdimen8\textfont3
diff --git a/Master/texmf-dist/tex/context/base/supp-mis.tex b/Master/texmf-dist/tex/context/base/supp-mis.mkii
index 57661e591ca..5b45d8b9da0 100644
--- a/Master/texmf-dist/tex/context/base/supp-mis.tex
+++ b/Master/texmf-dist/tex/context/base/supp-mis.mkii
@@ -80,7 +80,6 @@
%D Outside \CONTEXT\ we will not be \ETEX||aware.
\long\def\beginETEX #1\endETEX {}
-\long\def\beginOMEGA#1\endOMEGA{}
\let\beginTEX\relax \let\endTEX\relax
@@ -99,7 +98,7 @@
%D Let's see if it works.
-\writestatus{loading}{Context Support Macros / Miscellaneous (2004.10.26)}
+\writestatus{loading}{ConTeXt Support Macros / Miscellaneous (2004.10.26)}
%D \macros
%D {protect,unprotect}
diff --git a/Master/texmf-dist/tex/context/base/supp-mpe.tex b/Master/texmf-dist/tex/context/base/supp-mpe.mkii
index 35a940edc6e..67b27919c06 100644
--- a/Master/texmf-dist/tex/context/base/supp-mpe.tex
+++ b/Master/texmf-dist/tex/context/base/supp-mpe.mkii
@@ -41,7 +41,7 @@
\ifx\writestatus\undefined
\immediate\write16{[Loading MPS to PDF extensions.]}
\else
- \writestatus{loading}{Context Support Macros / MPS extensions}
+ \writestatus{loading}{ConTeXt Support Macros / MPS extensions}
\fi
%D We implement extensions by using the \METAPOST\ special
diff --git a/Master/texmf-dist/tex/context/base/supp-mps.tex b/Master/texmf-dist/tex/context/base/supp-mps.mkii
index 6b3cea88c73..3629ccf0b4a 100644
--- a/Master/texmf-dist/tex/context/base/supp-mps.tex
+++ b/Master/texmf-dist/tex/context/base/supp-mps.mkii
@@ -11,6 +11,10 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+%D Forget about generic modules \unknown\ ...
+
+\ifx \undefined \contextversion \endinput \fi
+
%D \METAPOST\ is John Hobbys alternative for \METAFONT\ and
%D produces superior \POSTSCRIPT\ code. In this module we
%D integrate \METAPOST\ support int \CONTEXT. We offer two
@@ -36,11 +40,7 @@
%D
%D Ok then, let's start:
-\ifx \undefined \writestatus \input supp-mis.tex \relax \fi
-\ifx \undefined \letterhash \else \input supp-ini.tex \relax \fi
-\ifx \undefined \startMPgraphic \else \expandafter \endinput \fi
-
-\writestatus{loading}{Context Support Macros / MetaPost Inclusion}
+\writestatus{loading}{ConTeXt Support Macros / MetaPost Inclusion}
\unprotect
@@ -514,7 +514,7 @@
\newtoks\MPTEXgraphicchecks
\long\def\writecheckedMPgraphic#1%
- {\ifgrTEXgraphic
+ {\ifforceMPTEXgraphic
\global\MPTEXgraphictrue
\else
\global\MPTEXgraphicfalse
@@ -731,14 +731,6 @@
\def\writeMPgraph
{\immediate\write\MPwrite{mpgraph:=\the\currentMPgraphic;}}
-\beginTEX
-
-\ifx \honorunexpanded \undefined \else % not really needed
- \prependtoks \honorunexpanded \to \everyMPgraphic
-\fi
-
-\endTEX
-
\def\startwritingMPgraphic
{\blabelgroup
\global\advance\nofMPgraphics \plusone
@@ -861,15 +853,17 @@
%D \setupbodyfont[plr]
%D \stopMPenvironment
%D
-%D \TeX:
+%D \TeX: ± ¶
%D
%D \startMPcode
-%D draw btex MetaPost: etex scaled 5 ;
+%D draw btex MetaPost: ± ¶ etex scaled 5 ;
%D \stopMPcode
%D \stoptyping
\def\translateMPinput#1%
- {\xdef\MPinputtranslation{\letterpercent -translate-file=#1\space}}
+% {\xdef\MPinputtranslation{\letterpercent -translate-file=#1\space}} % at some point
+% {\xdef\MPinputtranslation{\letterpercent --8bit}} % some time later
+ {\globallet\MPinputtranslation\empty} % the new mpost is 8 bit clean
%D \macros
%D {setMPrandomseed}
@@ -1128,7 +1122,7 @@
%D \stoptyping
\def\includeMPgraphic#1%
- {\executeifdefined{\@@MPG#1}}
+ {\executeifdefined{\@@MPG#1};} % ; if not found
\def\enableincludeMPgraphics
{\let\handleuseMPgraphic \secondoftwoarguments
@@ -1180,8 +1174,8 @@
\ifx\undefined\interactionmode \chardef\interactionmode=255 \fi
- \def\MPOSTbatchswitch {-int=batchmode}
- \def\MPOSTnonstopswitch {-int=nonstopmode}
+ \def\MPOSTbatchswitch {-interaction=batchmode} % was -int, but newer mpost does not support partial flags
+ \def\MPOSTnonstopswitch {-interaction=nonstopmode} % was -int, but newer mpost does not support partial flags
\def\MPOSTformatswitch {-progname=metafun -mem=}
\def\MPOSTdriver {dvips}
@@ -1846,6 +1840,8 @@
\def\dodoMPdivtenE #1#2{#1.#2}
\def\dodoMPdivtenF #1{.#1}
+% if we assume etex ... \def\MPdivten[#1]{\withoutpt\the\dimexpr#1pt/10\relax}
+
%D \macros
%D {startMPclip,grabMPclippath}
%D
@@ -2129,9 +2125,9 @@
%D away once the version supporting \type {--8bit} is
%D widespread.
-\beginXETEX
- \let\obeyMPlines\relax
- \longMPlinesfalse % alas
-\endXETEX
+\ifnum\texengine=\xetexengine
+ \let\obeyMPlines\relax
+ \longMPlinesfalse % alas
+\fi
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/supp-mrk.tex b/Master/texmf-dist/tex/context/base/supp-mrk.mkii
index eb03b5251f0..eb186547149 100644
--- a/Master/texmf-dist/tex/context/base/supp-mrk.tex
+++ b/Master/texmf-dist/tex/context/base/supp-mrk.mkii
@@ -31,25 +31,7 @@
%D direct calls. The \TEX\ based multiple marks needs to store
%D the mark data but \ETEX\ uses a different approach.
-\writestatus{loading}{Context Support Macros / Marks}
-
-\let\normalmark = \mark
-\let\normaltopmark = \topmark
-\let\normalbotmark = \botmark
-\let\normalfirstmark = \firstmark
-\let\normalsplitbotmark = \splitbotmark
-\let\normalsplitfirstmark = \splitfirstmark
-
-\beginETEX \marks cum suis
-
-\let\normalmarks = \marks
-\let\normaltopmarks = \topmarks
-\let\normalbotmarks = \botmarks
-\let\normalfirstmarks = \firstmarks
-\let\normalsplitbotmarks = \splitbotmarks
-\let\normalsplitfirstmarks = \splitfirstmarks
-
-\endETEX
+\writestatus{loading}{ConTeXt Support Macros / Marks}
\unprotect
@@ -290,13 +272,6 @@
%D found, this macro is reassigned and from then on serves
%D in building the new list.
-% Although the next couple of macros are already defined
-% in syst-gen.tex, we repeat them here.
-
-\let\normalfi \fi % replaces \@fi
-\let\normalelse \else % replaces \@else
-\let\normalor \or % replaces \@or
-
% Hm, resetting \!!toksa got lost and took me a half a day to
% trace down ([] showed up in the pagebody); I really have
% to clean up this messy module (write it from scratch).
diff --git a/Master/texmf-dist/tex/context/base/supp-num.tex b/Master/texmf-dist/tex/context/base/supp-num.tex
index 73b28e3de20..130fd393844 100644
--- a/Master/texmf-dist/tex/context/base/supp-num.tex
+++ b/Master/texmf-dist/tex/context/base/supp-num.tex
@@ -2,7 +2,7 @@
%D [ file=supp-num,
%D version=1998.05.15,
%D title=\CONTEXT\ Support Macros,
-%D subtitle=Number (Digit) Handling,
+%D subtitle=Numbers,
%D author=Hans Hagen,
%D date=\currentdate,
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Support Macros / Number (Digit) Handling}
+\writestatus{loading}{ConTeXt Support Macros / Numbers}
\unprotect
@@ -96,14 +96,12 @@
\ifx\mbox\undefined \let\mbox\normalhbox \fi
% \unexpanded\def\digits
-% {\bgroup\let~@\doifnextcharelse\bgroup\dodigits\grabdigit}
+% {\bgroup\let~@\doifnextbgroupelse\dodigits\grabdigit}
\unexpanded\def\digits
{\bgroup
\let~@%
- \doifnextcharelse\bgroup
- \dodigits
- {\doifnextcharelse\normalmathshift\domathdigits\grabdigit}}
+ \doifnextbgroupelse\dodigits{\doifnextcharelse\normalmathshift\domathdigits\grabdigit}}
\def\dodigits#1%
{\grabdigit#1\relax}
@@ -197,10 +195,23 @@
%D Although we could do with one pass, a second pass for
%D handling the stored sequence is more readable.
-\def\dohandledigits
- {\mathcode`\,="013B \mathcode`\.="013A % pretty hard coded
- \expandafter\handletokens\collecteddigits\with\scandigits
- \ifcase\powerdigits\else\digitpowerseparator^{\savedpowerdigits}\fi}
+\startmode[mkiv]
+
+ \def\dohandledigits
+ {\mathcode`\,="003B \mathcode`\.="003A % pretty hard coded
+ \expandafter\handletokens\collecteddigits\with\scandigits
+ \ifcase\powerdigits\else\digitpowerseparator^{\savedpowerdigits}\fi}
+
+\stopmode
+
+\startnotmode[mkiv]
+
+ \def\dohandledigits
+ {\mathcode`\,="013B \mathcode`\.="013A % pretty hard coded
+ \expandafter\handletokens\collecteddigits\with\scandigits
+ \ifcase\powerdigits\else\digitpowerseparator^{\savedpowerdigits}\fi}
+
+\stopnotmode
\def\doscandigit#1%
{\ifcase\skipdigit\@EA\hbox\else\@EA\hphantom\fi\bgroup
@@ -403,8 +414,11 @@
%D
%D The separator is defined as:
-\def\digitpowerseparator%
- {\cdot10} % {\times10}
+% \def\digitpowerseparator%
+% {\cdot10} % {\times10}
+
+\def\digitpowerseparator
+ {\ifx\collecteddigits\empty\else\cdot\fi10}
%D \macros
%D {digittemplate}
diff --git a/Master/texmf-dist/tex/context/base/supp-pat.tex b/Master/texmf-dist/tex/context/base/supp-pat.mkii
index 6c11c1d9217..d910830766b 100644
--- a/Master/texmf-dist/tex/context/base/supp-pat.tex
+++ b/Master/texmf-dist/tex/context/base/supp-pat.mkii
@@ -1,8 +1,8 @@
%D \module
%D [ file=supp-pat,
%D version=2005.02.12,
-%D title=\CONTEXT\ Language Macros,
-%D subtitle=Loading (Generic) Patterns,
+%D title=\CONTEXT\ Support Macros,
+%D subtitle=Patterns,
%D author=Hans Hagen,
%D date=\currentdate,
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
@@ -32,7 +32,7 @@
\ifx\writestatus\undefined \else
- \writestatus{loading}{Context Language Macros / Loading Generic Patterns}
+ \writestatus{loading}{ConTeXt Support Macros / Patterns}
\fi
diff --git a/Master/texmf-dist/tex/context/base/supp-pdf.tex b/Master/texmf-dist/tex/context/base/supp-pdf.mkii
index 248b2ce924f..c54b0c6bc25 100644
--- a/Master/texmf-dist/tex/context/base/supp-pdf.tex
+++ b/Master/texmf-dist/tex/context/base/supp-pdf.mkii
@@ -14,7 +14,7 @@
\ifx\writestatus\undefined
\immediate\write16{[Loading MPS to PDF converter (version 2006.09.02).]}
\else
- \writestatus{loading}{Context Support Macros / PDF}
+ \writestatus{loading}{ConTeXt Support Macros / PDF}
\fi
%D This module is not optimized because it is used outside
@@ -1511,97 +1511,6 @@
% \edef#2{\withoutpt\the\dimen18}% % p_x^\prime
% \edef#4{\withoutpt\the\dimen12}} % p_y^\prime
-%D We cannot use \type {\beginETEX} here since in plain we
-%D get \type {\outer} problems, sigh.
-
-%OLD \beginTEX
-%OLD
-%OLD \def\MPcriteriumA {512pt} % scale
-%OLD \def\MPcriteriumB {2pt} % scale
-%OLD
-%OLD \endTEX
-%OLD
-%OLD \ifx\MPcriteriumA\undefined
-%OLD
-%OLD \newdimen\MPcriteriumA \MPcriteriumA=512pt
-%OLD \newdimen\MPcriteriumB \MPcriteriumB= 2pt
-%OLD
-%OLD \fi
-
-%OLD \def\doMPconcat#1#2#3#4%
-%OLD {\dimen12=#1pt % p_x
-%OLD \dimen14=#3pt % p_y
-%OLD %
-%OLD \chardef\MPfactor0
-%OLD \ifdim\dimen4<\MPcriteriumB\ifdim\dimen4>-\MPcriteriumB
-%OLD \ifdim\dimen6<\MPcriteriumB\ifdim\dimen6>-\MPcriteriumB
-%OLD \ifdim\dimen8<\MPcriteriumB\ifdim\dimen8>-\MPcriteriumB
-%OLD \ifdim\dimen10<\MPcriteriumB\ifdim\dimen10>-\MPcriteriumB
-%OLD \chardef\MPfactor1
-%OLD \fi\fi
-%OLD \fi\fi
-%OLD \fi\fi
-%OLD \fi\fi
-%OLD \ifcase\MPfactor % spurious 0 removed
-%OLD \chardef\MPfactor1
-%OLD \ifdim\dimen12<\MPcriteriumA\ifdim\dimen12>-\MPcriteriumA
-%OLD \ifdim\dimen14<\MPcriteriumA\ifdim\dimen14>-\MPcriteriumA
-%OLD \chardef\MPfactor16
-%OLD \fi\fi
-%OLD \fi\fi
-%OLD \fi
-%OLD %
-%OLD \multiply\dimen12 \MPfactor
-%OLD \multiply\dimen14 \MPfactor
-%OLD %
-%OLD \doMPreducedimen12
-%OLD \doMPreducedimen14
-%OLD %
-%OLD \dimen16 \dimen 0
-%OLD \multiply \dimen16 \dimen 6
-%OLD \dimen20 \dimen 2
-%OLD \multiply \dimen20 \dimen 4
-%OLD \advance \dimen16 -\dimen20
-%OLD %
-%OLD \dimen18 \dimen12
-%OLD \multiply \dimen18 \dimen 6
-%OLD \dimen20 \dimen14
-%OLD \multiply \dimen20 \dimen 4
-%OLD \advance \dimen18 -\dimen20
-%OLD \dimen20 \dimen 4
-%OLD \multiply \dimen20 \dimen10
-%OLD \advance \dimen18 \dimen20
-%OLD \dimen20 \dimen 6
-%OLD \multiply \dimen20 \dimen 8
-%OLD \advance \dimen18 -\dimen20
-%OLD %
-%OLD \multiply \dimen12 -\dimen 2
-%OLD \multiply \dimen14 \dimen 0
-%OLD \advance \dimen12 \dimen14
-%OLD \dimen20 \dimen 2
-%OLD \multiply \dimen20 \dimen 8
-%OLD \advance \dimen12 \dimen20
-%OLD \dimen20 \dimen 0
-%OLD \multiply \dimen20 \dimen10
-%OLD \advance \dimen12 -\dimen20
-%OLD %
-%OLD \ifdim\dimen16=1pt \else
-%OLD \ifdim\dimen16>\MPconcatfactor 1pt \relax
-%OLD \doMPreducedimen16
-%OLD \divide \dimen18 \dimen16 \doMPexpanddimen18
-%OLD \divide \dimen12 \dimen16 \doMPexpanddimen12
-%OLD \else
-%OLD \divide \dimen18 \dimen16 \doMPexpanddimen18 \doMPexpanddimen18
-%OLD \divide \dimen12 \dimen16 \doMPexpanddimen12 \doMPexpanddimen12
-%OLD \fi
-%OLD \fi
-%OLD %
-%OLD \divide\dimen18 \MPfactor
-%OLD \divide\dimen12 \MPfactor
-%OLD %
-%OLD \edef#2{\withoutpt\the\dimen18}% % p_x^\prime
-%OLD \edef#4{\withoutpt\the\dimen12}} % p_y^\prime
-
%D DHL: Ideally, $r_x$, $r_y$, $s_x$, $s_y$ should be in macros, not
%D dimensions (they are scalar quantities after all, not lengths). I
%D suppose the authors decided to do calculations with integer
diff --git a/Master/texmf-dist/tex/context/base/supp-ran.lua b/Master/texmf-dist/tex/context/base/supp-ran.lua
new file mode 100644
index 00000000000..9e4330f57ca
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/supp-ran.lua
@@ -0,0 +1,46 @@
+if not modules then modules = { } end modules ['supp-ran'] = {
+ version = 1.001,
+ comment = "companion to supp-ran.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- We cannot ask for the current seed, so we need some messy hack
+-- here.
+
+commands = commands or { }
+
+local texwrite, random, seed, last = tex.write, math.random, false, 1
+
+function commands.getrandomcounta(min,max)
+ last = random(min,max)
+ texwrite(last)
+end
+
+function commands.getrandomcountb(min,max)
+ last = random(min,max)/65536
+ texwrite(last)
+end
+
+function commands.setrandomseed(n)
+ last = n
+ math.randomseed(n)
+end
+
+function commands.getrandomseed(n)
+ texwrite(last)
+end
+
+function commands.freezerandomseed()
+ if seed == false then
+ seed = last
+ end
+end
+
+function commands.defrostrandomseed()
+ if seed ~= false then
+ math.randomseed(last)
+ seed = false
+ end
+end
diff --git a/Master/texmf-dist/tex/context/base/supp-ran.tex b/Master/texmf-dist/tex/context/base/supp-ran.mkii
index 8c76ab443f6..0c07099ed1e 100644
--- a/Master/texmf-dist/tex/context/base/supp-ran.tex
+++ b/Master/texmf-dist/tex/context/base/supp-ran.mkii
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Third Party Macros / Random Number Generation}
+\writestatus{loading}{ConTeXt Support Macros / Random Number Generation}
%D \macros
%D {getrandomcount, getrandomdimen,
@@ -46,72 +46,36 @@
%D \getrandomseed\randomseed
%D \stoptyping
-\ifx\nextrandom\undefined
+\input thrd-ran.mkii
- \readfile{random.tex}
- {\writestatus{loading}{Donald Arseneau's 'random.tex' (found)}}
- {\writestatus{loading}{Donald Arseneau's 'random.tex' (not found)}}
+\ifx\uniformdeviate\undefined
-\fi
-
-\ifx\nextrandom\undefined
-
- \writestatus{loading}{using fake randomizer}
-
- \newcount\randomi
-
- \def\setrandim#1#2#3{\scratchdimen #2\relax#1\scratchdimen }
- \def\setrannum#1#2#3{\scratchcounter#2\relax#1\scratchcounter}
-
- \let\nextrandom\relax
-
-\fi
+ \let\verynormalnextrandom\nextrandom
-\ifx\nextrandom\undefined \endinput \fi
-
-\ifx\normaluniformdeviate\undefined
-
- \let\verynormalnextrandom\nextrandom
-
- \def\normalnextrandom
- {\bgroup
- \let\time \normaltime
- \let\day \normalday
- \let\month\normalmonth
- \let\year \normalyear
- \verynormalnextrandom
- \egroup}
+ \def\normalnextrandom
+ {\bgroup
+ \let\time \normaltime
+ \let\day \normalday
+ \let\month\normalmonth
+ \let\year \normalyear
+ \verynormalnextrandom
+ \egroup}
\else
- % Yet untested.
-
- \writestatus{loading}{using tex's built in randomizer (overloading macro)}
+ \writestatus{loading}{using TeX's built in randomizer (overloading macro)}
- % For the meaning of the magic number, see \type {thrd-ran.tex}.
-
- % \def\normalnextrandom
- % {\setrandomseed\randomi
- % \global\randomi\normaluniformdeviate2147483647\relax}
-
- % Taco suggested to use the following alternative because \type
- % {\normaluniformdeviate} can return a zero (as expected) while
- % Donalds's alternative has a minimum of~1.
-
- \beginTEX
- \def\nextrandom
- {\normalsetrandomseed\randomi
- \global\randomi\normaluniformdeviate2147483646%
- \global\advance\randomi\plusone}
- \endTEX
+ % For the meaning of the magic number, see \type {thrd-ran.tex}.
+ %
+ % Taco suggested to use the following alternative because \type
+ % {\uniformdeviate} can return a zero (as expected) while
+ % Donalds Arseneau's alternative has a minimum of~1.
- \beginETEX \numexpr
\def\nextrandom
- {\normalsetrandomseed\randomi
+ {\normalsetrandomseed\randomi\relax
\global\randomi\numexpr\normaluniformdeviate2147483646+1\relax}
- \endETEX
- \let\normalnextrandom\nextrandom
+ \let\normalnextrandom\nextrandom
\fi
diff --git a/Master/texmf-dist/tex/context/base/supp-ran.mkiv b/Master/texmf-dist/tex/context/base/supp-ran.mkiv
new file mode 100644
index 00000000000..9d429598f15
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/supp-ran.mkiv
@@ -0,0 +1,30 @@
+%D \module
+%D [ file=supp-ran,
+%D version=2008-10-31,
+%D title=\CONTEXT\ Support Macros,
+%D subtitle=Random Number Generation,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Support Macros / Random Number Generation}
+
+%D This module is downward compatible in the sense that we've kept
+%D the user interface (which uses intermediate variables).
+
+\registerctxluafile{supp-ran}{1.001}
+
+\def\getrandomcount #1#2#3{#1=\ctxlua{commands.getrandomcounta(\number#2,\number#3)}}
+\def\getrandomdimen #1#2#3{#1=\ctxlua{commands.getrandomcounta(\number\dimexpr#2,\number\dimexpr#3)}\scaledpoint}
+\def\getrandomnumber#1#2#3{\edef#1{\ctxlua{commands.getrandomcounta(\number#2,\number#3)}}}
+\def\getrandomfloat #1#2#3{\edef#1{\ctxlua{commands.getrandomcountb(\number\dimexpr#2\points,\number\dimexpr#3\points)}}}
+\def\setrandomseed #1{\ctxlua{commands.setrandomseed(\number#1)}}
+\def\getrandomseed {\ctxlua{commands.getrandomseed()}}
+\def\freezerandomseed {\ctxlua{commands.freezerandomseed()}}
+\def\defrostrandomseed {\ctxlua{commands.defrostrandomseed()}}
+
+\endinput
diff --git a/Master/texmf-dist/tex/context/base/supp-spe.tex b/Master/texmf-dist/tex/context/base/supp-spe.mkii
index d84859b595d..8cb8e2ac177 100644
--- a/Master/texmf-dist/tex/context/base/supp-spe.tex
+++ b/Master/texmf-dist/tex/context/base/supp-spe.mkii
@@ -8,60 +8,60 @@
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
%C
%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
-%D This module implements some \type{\special} manipulation
-%D macros. I needed these when I implemented the code that
-%D handles the conversion of \TPIC\ specials to \PDF\ code.
+%D This module implements some \type{\special} manipulation
+%D macros. I needed these when I implemented the code that
+%D handles the conversion of \TPIC\ specials to \PDF\ code.
\ifx \undefined \writestatus \input supp-mis.tex \relax \fi
\ifx \undefined \redefinespecial \else \expandafter \endinput \fi
-\writestatus{loading}{Context Support Macros / Specials}
+\writestatus{loading}{ConTeXt Support Macros / Specials}
\unprotect
%D When interpreting specials we need to do some basic scanning.
-%D For the moment we distinguish between three cases. We need
-%D
+%D For the moment we distinguish between three cases. We need
+%D
%D \starttyping
%D \special{tag: arguments}
%D \special{tag arguments}
%D \special{tag}
%D \stoptyping
-%D
-%D We cannot be sure that the first case isn't
-%D
+%D
+%D We cannot be sure that the first case isn't
+%D
%D \starttyping
%D \special{tag:arguments}
%D \stoptyping
-%D
-%D So we have to take care of that one too.
+%D
+%D So we have to take care of that one too.
%D \macros
%D {redefinespecial}
-%D
-%D Specials that are to be interpreted are defined with
+%D
+%D Specials that are to be interpreted are defined with
%D commands like:
-%D
+%D
%D \startbuffer[tmp-1]
%D \redefinespecial a: \using#1\endspecial%
%D {let's execute special 'a:' using '#1'}
-%D
+%D
%D \redefinespecial a \using#1\endspecial%
%D {let's execute special 'a' using '#1'}
-%D
+%D
%D \redefinespecial a \using#1\endspecial%
%D {let's execute special 'a' using nothing}
%D \stopbuffer
%D
%D \typebuffer[tmp-1]
-%D
-%D The first two always take an argument, the last one not.
-%D The definition of this redefinition macro is not that
-%D complex. The names are internally tagged with \type{\@rds@}
-%D which saves both time and space.
+%D
+%D The first two always take an argument, the last one not.
+%D The definition of this redefinition macro is not that
+%D complex. The names are internally tagged with \type{\@rds@}
+%D which saves both time and space.
\def\@rds@{@rds@}
@@ -70,14 +70,14 @@
%D \macros
%D {mimmickspecials}
%D
-%D Mimmicking specials is activated by saying:
+%D Mimmicking specials is activated by saying:
%D
%D \starttyping
%D \mimmickspecials
%D \stoptyping
%D
-%D This commands redefines the \PLAIN\ \TEX\ primitive
-%D \type{\special}.
+%D This commands redefines the \PLAIN\ \TEX\ primitive
+%D \type{\special}.
\def\mimmickspecials
{\let\special\domimmickspecial}
@@ -85,7 +85,7 @@
%D The special mimmicking macro first looks if it can find an
%D colon terminated tag, next it searches for a tag that end
%D with a space. If both cannot find, the tag itself is treated
-%D without argument.
+%D without argument.
\def\domimmickspecial#1%
{\domimmickcolonspecial#1:\relax/:\relax/\end}
@@ -107,25 +107,25 @@
\def\dodomimmickspecial#1\using#2\endspecial
{\expandafter\ifx\csname\@rds@#1\endcsname\relax % \doifdefinedelse
\defaultspecial{#1 #2}%
- \else
- %\message{[mimmick special #1 with #2]}%
+ \else
+ %\message{[mimmick special #1 with #2]}%
\getvalue{\@rds@#1}\using#2\endspecial
\fi}
-%D Now let's show that things work the way we want, using the
+%D Now let's show that things work the way we want, using the
%D previous definitions of tag~a.
-%D
+%D
%D \startbuffer[tmp-2]
%D \mimmickspecials
%D \special{a: 1 2 3 4 5}
%D \special{a: 1 2 3 4 5}
%D \special{a}
%D \stopbuffer
-%D
+%D
%D \typebuffer[tmp-2]
-%D
+%D
%D Which results in:
-%D
+%D
%D \startlines
%D \getbuffer[tmp-1]
%D \getbuffer[tmp-2]
@@ -133,11 +133,11 @@
%D \macros
%D {mimmickspecial}
-%D
-%D When needed, one can call a mimmicked special directly by
-%D saying for instance:
-%D
-%D \starttyping
+%D
+%D When needed, one can call a mimmicked special directly by
+%D saying for instance:
+%D
+%D \starttyping
%D \mimmickspecial a: \using...\endspecial
%D \stoptyping
%D
@@ -147,18 +147,18 @@
%D \macros
%D {normalspecial,defaultspecial}
-%D
-%D Unknown specials are passed to the default special handler.
+%D
+%D Unknown specials are passed to the default special handler.
%D One can for instance ignore all further specials by saying
%D \type{\normalspecial}:
-%D
+%D
%D \starttyping
%D \def\defaultspecial#1{}
%D \stoptyping
-%D
-%D But here we default to idle.
+%D
+%D But here we default to idle.
-\let\normalspecial =\special
-\let\defaultspecial=\special
+\let\normalspecial \special
+\let\defaultspecial\special
-\protect \endinput
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/supp-tpi.tex b/Master/texmf-dist/tex/context/base/supp-tpi.mkii
index dc9d2e0e5ff..9b2ac93283b 100644
--- a/Master/texmf-dist/tex/context/base/supp-tpi.tex
+++ b/Master/texmf-dist/tex/context/base/supp-tpi.mkii
@@ -19,14 +19,16 @@
%D \type{supp-spe} as well as the \METAPOST\ run||time support
%D implemented in \type{supp-mps}.
-\beginLUATEX \endinput \endLUATEX % to be sure, we don't want to load the following
+\ifnum\texengine=\luatexengine
+ \endinput
+\fi
-\ifx\undefined\writestatus \input supp-mis \relax \fi
-\ifx\undefined\mimmickspecials \input supp-spe \relax \fi
-\ifx\undefined\MPgraphicbox \input supp-mps \relax \fi
-\ifx\undefined\dogetEPSboundingbox \input supp-eps \relax \fi
+\ifx\undefined\writestatus \input supp-mis.mkii \relax \fi
+\ifx\undefined\mimmickspecials \input supp-spe.mkii \relax \fi
+\ifx\undefined\MPgraphicbox \input supp-mps.mkii \relax \fi
+\ifx\undefined\dogetEPSboundingbox \input supp-eps.mkii \relax \fi
-\writestatus{loading}{Context Support Macros / TPIC Conversion}
+\writestatus{loading}{ConTeXt Support Macros / TPIC Conversion}
%D Beware: we haven't activated both mechanism yet. This is
%D to be done in the calling module.
@@ -322,7 +324,7 @@
\global\let\TPIClinetype\empty
\global\let\TPICgrayscale\empty}
-%D I have to admit that by using the \METAPOST\ Bzier cubics
+%D I have to admit that by using the \METAPOST\ B‚zier cubics
%D routines these implementation does produce better curves
%D then most \DVI\ drivers do using the \TPIC\ prescribed
%D b-splines. Take for instance the sequence:
@@ -343,7 +345,7 @@
%D the path specials will be used for arbitraty curves. And for
%D b-splines to produce nice curves, one will often use many
%D points to get the desired results. Therefore, using the
-%D \METAPOST\ Bzier curves will certainly produce similar and
+%D \METAPOST\ B‚zier curves will certainly produce similar and
%D even better graphics, except in those rare cases where one
%D uses delinberately the not that accurate features of
%D b-splines. Hereby the user is warned.
diff --git a/Master/texmf-dist/tex/context/base/supp-vis.tex b/Master/texmf-dist/tex/context/base/supp-vis.tex
index 1c3daf1e1da..82ada920229 100644
--- a/Master/texmf-dist/tex/context/base/supp-vis.tex
+++ b/Master/texmf-dist/tex/context/base/supp-vis.tex
@@ -11,18 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\ifx\contextversion\undefined
-
- \let \normalunexpanded \unexpanded
- \let \unexpanded \protected
-
-\fi
-
-\ifx\unexpanded\undefined
-
- \let\unexpanded\relax
-
-\fi
+% no longer generic, who cares ...
%D \gdef\ShowBufferedExample% private typeseting macro
%D {\startlinecorrection
@@ -91,7 +80,7 @@
%D That's why we've implemented a mechanism that shows some of
%D the inner secrets of \TEX.
-\writestatus{loading}{Context Support Macros / Visualization}
+\writestatus{loading}{ConTeXt Support Macros / Visualization}
%D In this module we are going to redefine some \TEX\
%D primitives and \PLAIN\ macro's. Their original meaning is
@@ -159,10 +148,7 @@
%D baseline behavior. Especially \type{\vtop}'s need our
%D special attention.
-\ifx \normalhbox \undefined \let \normalhbox = \hbox \fi
-\ifx \normalvbox \undefined \let \normalvbox = \vbox \fi
-\ifx \normalvtop \undefined \let \normalvtop = \vtop \fi
-\ifx \normalvcenter \undefined \let \normalvcenter = \vcenter \fi
+% already saved
%D \macros
%D {normalhskip,
@@ -171,8 +157,7 @@
%D Next come the flexible skips, which come in two flavors
%D too. Like boxes these are handled with \TEX\ primitives.
-\let\normalhskip = \hskip
-\let\normalvskip = \vskip
+% already saved
%D \macros
%D {normalpenalty,
@@ -182,8 +167,7 @@
%D primitives. This means that when making them visible, we
%D have to take the current mode into account.
-\let\normalpenalty = \penalty
-\let\normalkern = \kern
+% already saved
%D \macros
%D {normalhglue,
@@ -193,8 +177,8 @@
%D As we will see, their definitions make the implementation of
%D their visible counterparts a bit more \TeX{}nical.
-\let\normalhglue = \hglue
-\let\normalvglue = \vglue
+\let\normalhglue = \hglue
+\let\normalvglue = \vglue
%D \macros
%D {normalmkern,
@@ -206,8 +190,7 @@
%D with other dimensions. As a result, the visual appearance
%D of these primitives is kept primitive too.
-\let\normalmkern = \mkern
-\let\normalmskip = \mskip
+% already saved
%D \macros
%D {hfilneg,
@@ -231,12 +214,7 @@
%D The positive stretch primitives are used independant and in
%D combination with \type{\leaders}.
-\let\normalhss = \hss
-\let\normalhfil = \hfil
-\let\normalhfill = \hfill
-\let\normalvss = \vss
-\let\normalvfil = \vfil
-\let\normalvfill = \vfill
+% already saved
%D \macros
%D {normalhfilneg,normalhfillneg,
@@ -247,9 +225,7 @@
%D in standard \TEX\ documentation. They can nevertheless be
%D used at will.
-\let\normalhfilneg = \hfilneg
\let\normalhfillneg = \hfillneg
-\let\normalvfilneg = \vfilneg
\let\normalvfillneg = \vfillneg
%D Visualization is not always wanted. Instead of turning this
@@ -1927,10 +1903,4 @@
%D lines in this two column index don't allign, then this is
%D due to some still unknown interference.
-\ifx\contextversion\undefined
-
- \let \unexpanded \normalunexpanded
-
-\fi
-
\endinput
diff --git a/Master/texmf-dist/tex/context/base/symb-ini.tex b/Master/texmf-dist/tex/context/base/symb-ini.mkii
index 3cf50e411e3..f7bffd240f8 100644
--- a/Master/texmf-dist/tex/context/base/symb-ini.tex
+++ b/Master/texmf-dist/tex/context/base/symb-ini.mkii
@@ -15,50 +15,10 @@
%D {core-con} module. I decided to move them here when
%D symbolsets saw the light. Let their light shine.
-\writestatus{loading}{Context Symbol Libraries / Initialization}
+\writestatus{loading}{ConTeXt Symbol Libraries / Initialization}
\unprotect
-\startmessages dutch library: symbols
- title: symbolen
- 1: symboolset -- wordt geladen
-\stopmessages
-
-\startmessages english library: symbols
- title: symbols
- 1: loading symbolset --
-\stopmessages
-
-\startmessages german library: symbols
- title: Symbole
- 1: Lade Symboldatei --
-\stopmessages
-
-\startmessages czech library: symbols
- title: symboly
- 1: nacita se soubor symbolu --
-\stopmessages
-
-\startmessages italian library: symbols
- title: simboli
- 1: caricamento gruppo di simboli --
-\stopmessages
-
-\startmessages norwegian library: symbols
- title: symboler
- 1: leser inn symbolsett --
-\stopmessages
-
-\startmessages romanian library: symbols
- title: simboluri
- 1: se incarca setul de simboluri --
-\stopmessages
-
-\startmessages french library: symbols
- title: symboles
- 1: chargement du jeu de symbole --
-\stopmessages
-
%D \macros
%D {definesymbol, symbol}
%D
@@ -127,19 +87,6 @@
\def\directsymbol#1#2% no \relax, there can be an argument, see lists
{\executeifdefined{\??ss:#1:#2}\firstofoneargument}
-% \def\dosymbol[#1][#2]%
-% {\nosymboltrue
-% \ifsecondargument
-% \doifinsymbolset{#1}{#2}{\dodosymbol{#1}{#2}}%
-% \fi
-% \ifnosymbol
-% \edef\currentsymbol{#1}%
-% \the\symbolsetups
-% \ifnosymbol
-% \redosymbol\currentsymbol
-% \fi
-% \fi}
-
% We support both:
%
% Test test \symbol[whatever]\ test \symbol[whatever].
@@ -308,7 +255,7 @@
%D
%D \showsetup{showsymbolset}
-\fetchruntimecommand \showsymbolset {\f!symbolprefix\s!run}
+\fetchruntimecommand \showsymbolset {\f!symbolprefix\s!run.mkii}
%D \macros
%D {usesymbols}
diff --git a/Master/texmf-dist/tex/context/base/symb-ini.mkiv b/Master/texmf-dist/tex/context/base/symb-ini.mkiv
new file mode 100644
index 00000000000..253a7c41ce9
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/symb-ini.mkiv
@@ -0,0 +1,281 @@
+%D \module
+%D [ file=symb-ini,
+%D version=1998.07.20,
+%D title=\CONTEXT\ Symbol Libraries,
+%D subtitle=Basic Symbols Commands,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D The macros described here used to be part of the \type
+%D {core-con} module. I decided to move them here when
+%D symbolsets saw the light. Let their light shine.
+
+\writestatus{loading}{ConTeXt Symbol Libraries / Initialization}
+
+\unprotect
+
+%D \macros
+%D {definesymbol, symbol}
+%D
+%D Converting numbers or levels into a character, romannumeral,
+%D symbol or something else, is supported by many \CONTEXT\
+%D commands. Therefore we need a mechanism for linking such
+%D numbers to their counterparts.
+%D
+%D First we take care of symbols. These are for instance used
+%D in enumerations and itemizations. We have:
+%D
+%D \showsetup{definesymbol}
+%D \showsetup{symbol}
+%D
+%D Symbols are simply linked to a tag. Such tags can be numbers
+%D or strings.
+%D
+%D \starttyping
+%D \definesymbol [1] [$\bullet$]
+%D \definesymbol [level 5] [$\star$]
+%D \stoptyping
+
+% ss:tag -> symbol
+% ss:set:tag -> symbol out of set
+% sstag -> list of symbols in set
+
+\def\definesymbol
+ {\dotripleempty\dodefinesymbol}
+
+% \def\dodefinesymbol[#1][#2][#3]% class name meaning
+% {\ifthirdargument
+% \setvalue{\??ss:#1:#2}{#3}%
+% \doifsomething{#1}{\addvalue{\??ss*#1}{#2}}%
+% \else
+% \setvalue{\??ss:\currentsymboldef:#1}{#2}%
+% \fi}
+
+\def\dodefinesymbol[#1][#2][#3]% class name meaning
+ {\ifthirdargument
+ \setvalue{\??ss:#1:#2}{#3}%
+ \doifsomething{#1}{\addvalue{\??ss*#1}{#2}}%
+ \else
+ \setvalue{\??ss:\currentsymboldef:#1}{#2}%
+ \addvalue{\??ss*\currentsymboldef}{#1}%
+ \fi}
+
+\def\doifinsymbolsetelse#1#2{\doifdefinedelse{\??ss:#1:#2}}
+\def\doifinsymbolset #1#2{\doifdefined {\??ss:#1:#2}}
+\def\doifsymbolsetelse #1{\doifdefinedelse{\??ss*#1}}
+
+\def\symbolset#1{\executeifdefined{\??ss*#1}\empty} % no [#1], to be used in commalists etc
+
+%D Since symbols are used frequently in interactive
+%D documents, we speed up this one. Well, that was history,
+%D since now we simplified things a bit, because the low
+%D level macros have been sped up now and then.
+
+\unexpanded\def\symbol % This one always gobbles spaces,
+ {\dodoubleempty\dosymbol} % so never change it again!
+
+\newif\ifnosymbol \newtoks\everysymbol
+
+\def\dodosymbol#1#2% \relax's prevent lookahead problems
+ {\nosymbolfalse{\the\everysymbol\csname\??ss:#1:#2\endcsname\relax}\relax}
+
+\def\directsymbol#1#2% no \relax, there can be an argument, see lists
+ {\executeifdefined{\??ss:#1:#2}\firstofoneargument}
+
+% We support both:
+%
+% Test test \symbol[whatever]\ test \symbol[whatever].
+% Test test \symbol{whatever} test \symbol{whatever}.
+
+\def\dosymbol % so we also handle \symbol{name}
+ {\iffirstargument % which is nicer with following spaces
+ \expandafter\donormalsymbol
+ \else
+ \expandafter\dospecialsymbol
+ \fi}
+
+\def\dospecialsymbol[#1][#2]#3%
+ {\firstargumenttrue
+ \secondargumentfalse
+ \donormalsymbol[#3][]}
+
+\def\donormalsymbol[#1][#2]%
+ {\nosymboltrue
+ \ifsecondargument
+ \edef\currentsymbol{#2}%
+ \doifinsymbolset{#1}{#2}{\dodosymbol{#1}{#2}}%
+ \else
+ \edef\currentsymbol{#1}%
+ \fi
+ \ifnosymbol
+ \the\symbolsetups
+ \ifnosymbol
+ \redosymbol\currentsymbol
+ \fi
+ \fi}
+
+\def\fetchsymbol#1%
+ {\ifnosymbol
+ \doifinsymbolset{#1}\currentsymbol{\dodosymbol{#1}\currentsymbol}%
+ \fi}
+
+\def\redosymbol#1%
+% {\doifinsymbolsetelse\empty{#1}{\dodosymbol\empty{#1}}{#1}} % more efficient:
+ {\doifinsymbolsetelse\empty{#1}{\dodosymbol\empty}\firstofoneargument{#1}}
+
+% % % % %
+% this should go in symb-fig, to be loaded after core-fig
+
+%D \macros
+%D {definefiguresymbol}
+%D
+%D To simplify defining figure symbols, we offer:
+%D
+%D \showsetup{definefiguresymbol}
+%D
+%D By default, such symbols scale along the current bodyfont
+%D size or running font size (which is better).
+
+\def\defaultsymbolfactor{10}
+\def\defaultsymbolheight{1.25ex}
+
+\def\figuresymbol
+ {\dodoubleempty\dofiguresymbol}
+
+\ifx\externalfigure \undefined \def\externalfigure[#1][#2]{#1} \fi
+\ifx\resetexternalfigures\undefined \let\resetexternalfigures\relax \fi
+
+\def\dofiguresymbol[#1][% #2]%
+ {\externalfigure[#1][\c!reset=\v!yes,\c!symbol=\v!yes,\c!height=\defaultsymbolheight,}% #2]}
+
+\appendtoks \resetexternalfigures \to \everysymbol
+
+\def\definefiguresymbol
+ {\dotripleempty\dodefinefiguresymbol}
+
+\def\dodefinefiguresymbol[#1][#2][#3]%
+ {\ifsecondargument
+ \definesymbol[#1][{\dofiguresymbol[#2][#3]}]%
+ \fi}
+
+% but for the moment we keep it here
+% % % % % %
+
+%\def\objectsymbol[#1]%
+% {\dopresetfieldsymbol{#1}\dogetfieldsymbol{#1}}
+
+%D \macros
+%D {doifsymboldefinedelse}
+%D
+%D A handy private one:
+
+% a bit messy
+
+\def\xfetchsymbol#1%
+ {\ifnosymbol
+ \doifinsymbolset{#1}\currentsymbol\nosymbolfalse
+ \fi}
+
+\def\xredosymbol#1%
+ {\doifinsymbolset\empty\currentsymbol\nosymbolfalse}
+
+\def\doifsymboldefinedelse#1%
+ {\bgroup
+ \edef\currentsymbol{#1}%
+ \let\fetchsymbol\xfetchsymbol
+ \nosymboltrue
+ \the\symbolsetups
+ \ifnosymbol
+ \xredosymbol\currentsymbol
+ \ifnosymbol
+ \egroup\@EAEAEA\secondoftwoarguments
+ \else
+ \egroup\@EAEAEA\firstoftwoarguments
+ \fi
+ \else
+ \egroup\@EA\firstoftwoarguments
+ \fi}
+
+%D \macros
+%D {setupsymbolset,startsymbolset}
+%D
+%D From these macro definitions one can deduce that symbols can
+%D be grouped in symbol sets:
+%D
+%D \starttyping
+%D \startsymbolset [navigation 1]
+%D \definefiguresymbol [Next] [mp-symb.1]
+%D \definefiguresymbol [Prev] [mp-symb.2]
+%D \stopsymbolset
+%D \stoptyping
+%D
+%D Such a symbol can be typeset with:
+%D
+%D \starttyping
+%D \setupsymbolset[navigation 1]\symbol[Next]
+%D \stoptyping
+%D
+%D or simply:
+%D
+%D \starttyping
+%D \symbol[navigation 1][Next]
+%D \stoptyping
+%D
+%D Formally:
+%D
+%D \showsetup{setupsymbolset}
+%D \showsetup{startsymbolset}
+
+\let\currentsymboldef\empty
+
+\def\startsymbolset[#1]
+ {\def\currentsymboldef{#1}}
+
+\def\stopsymbolset
+ {\let\currentsymboldef\empty}
+
+\newtoks\symbolsetups
+
+\def\setupsymbolset[#1]%
+ {\prependtoksonce\fetchsymbol{#1}\to\symbolsetups}
+
+\def\resetsymbolset
+ {\symbolsetups\emptytoks}
+
+\def\forcesymbolset[#1]%
+ {\symbolsetups{\fetchsymbol{#1}}}
+
+%D \macros
+%D {showsymbolset}
+%D
+%D \showsetup{showsymbolset}
+
+\fetchruntimecommand \showsymbolset {\f!symbolprefix\s!run.mkiv}
+
+%D \macros
+%D {usesymbols}
+%D
+%D \showsetup{usesymbols}
+
+\def\dousesymbols#1%
+ {\makeshortfilename[\truefilename{\f!symbolprefix#1}]%
+ \startreadingfile
+ \readsysfile\shortfilename
+ {\showmessage\m!symbols1{#1}}
+ \donothing
+ \stopreadingfile}
+
+\def\usesymbols[#1]%
+ {\processcommalist[#1]\dousesymbols}
+
+%D As longs as symbols are linked to levels or numbers, we can
+%D also use the conversion mechanism, but in for instance the
+%D itemization macros, we prefer symbols because they can more
+%D easier be (partially) redefined.
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/symb-jmn.tex b/Master/texmf-dist/tex/context/base/symb-jmn.tex
index 21a0d1562fa..1ed65d16e60 100644
--- a/Master/texmf-dist/tex/context/base/symb-jmn.tex
+++ b/Master/texmf-dist/tex/context/base/symb-jmn.tex
@@ -40,8 +40,13 @@
\loadmapfile[original-base.map] % \loadmapfile [original-context-symbol.map]
-\definefontsynonym[NavigationNormal] [hans]
-\definefontsynonym[NavigationShadowed] [hans-sh]
+\ifnum\texengine=\luatexengine
+ \definefontsynonym[NavigationNormal] [hans.tfm]
+ \definefontsynonym[NavigationShadowed] [hans-sh.tfm]
+\else
+ \definefontsynonym[NavigationNormal] [hans]
+ \definefontsynonym[NavigationShadowed] [hans-sh]
+\fi
\definefontsynonym[NavigationFont] [NavigationNormal]
%definefontsynonym[NavigationFont] [NavigationShadowed]
@@ -146,7 +151,6 @@
\stopsymbolset
-
% 1 left : 065 067 073 075
% 2 left : 128 132 144 148
% 3 left : 129 133 145 149
diff --git a/Master/texmf-dist/tex/context/base/symb-mis.tex b/Master/texmf-dist/tex/context/base/symb-mis.tex
index c63053abbef..d108b89028e 100644
--- a/Master/texmf-dist/tex/context/base/symb-mis.tex
+++ b/Master/texmf-dist/tex/context/base/symb-mis.tex
@@ -16,7 +16,7 @@
%D We predefine some common symbols and conversions that will
%D be understood by many commands.
-% \mathematics no longer needed
+% \mathematics no longer needed, although only math fonts might have these
\definesymbol [\v!none] []
\definesymbol [bullet] [\mathematics{\bullet}]
@@ -24,7 +24,6 @@
\definesymbol [star] [\mathematics{\star}]
\definesymbol [triangle] [\mathematics{\triangleright}]
\definesymbol [circle] [\mathematics{\circ}]
-%definesymbol [medcircle] [\hbox{\setsmallbodyfont\raise\onepoint\hbox{\mathematics{\bigcirc}}}]
\definesymbol [square] [\mathematics{\square}]
\definesymbol [diamond] [\mathematics{\diamond}]
@@ -32,7 +31,6 @@
\definesymbol [medcircle] [\hbox{\raise.1ex\hbox{\mathematics{\scriptstyle \bigcirc}}}]
\definesymbol [bigcircle] [\mathematics{\bigcirc}]
-
\definesymbol [1] [{\symbol[bullet]}]
\definesymbol [2] [{\symbol[dash]}]
\definesymbol [3] [{\symbol[star]}]
@@ -113,9 +111,6 @@
\def\gonowherecharacter
{\mathematics{\bullet}}
-%\def\gotosomewherecharacter% {} permits ^\...
-% {{\hbox{\hsmash{\gobackwardcharacter}\goforwardcharacter}}}
-
\def\gotosomewherecharacter
{{\hbox{\hsmash{\symbol[\v!previous]}\symbol[\v!next]}}}
diff --git a/Master/texmf-dist/tex/context/base/symb-nav.tex b/Master/texmf-dist/tex/context/base/symb-nav.tex
index 1dd45153874..90a798e01bf 100644
--- a/Master/texmf-dist/tex/context/base/symb-nav.tex
+++ b/Master/texmf-dist/tex/context/base/symb-nav.tex
@@ -15,11 +15,13 @@
\loadmapfile[original-base.map] % \loadmapfile [original-context-symbol.map]
-\definefontsynonym [ContextNavigation] [contnav]
+\ifnum\texengine=\luatexengine
+ \definefontsynonym [ContextNavigation] [contnav.tfm]
+\else
+ \definefontsynonym [ContextNavigation] [contnav]
+\fi
-% \def\ContextNavigationGlyph#1{\getglyph{ContextNavigation}{\char#1}}
-
-\def\ContextNavigationGlyph#1{\getrawglyph{contnav}{\char#1}}
+\def\ContextNavigationGlyph#1{\getglyph{ContextNavigation}{\char#1}}
\startsymbolset [navigation 1]
diff --git a/Master/texmf-dist/tex/context/base/symb-run.tex b/Master/texmf-dist/tex/context/base/symb-run.mkii
index 4e714832c52..4e714832c52 100644
--- a/Master/texmf-dist/tex/context/base/symb-run.tex
+++ b/Master/texmf-dist/tex/context/base/symb-run.mkii
diff --git a/Master/texmf-dist/tex/context/base/symb-run.mkiv b/Master/texmf-dist/tex/context/base/symb-run.mkiv
new file mode 100644
index 00000000000..4e714832c52
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/symb-run.mkiv
@@ -0,0 +1,54 @@
+%D \module
+%D [ file=symb-run, % code moved from symb-ini
+%D version=1998.07.20,
+%D title=\CONTEXT\ Symbol Libraries,
+%D subtitle=Runtime Macros,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%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
+
+\gdef\doshowsymbolset[#1][#2]% todo: make nicer, use legend or so
+ {\vbox\bgroup
+ \blank
+ \getparameters[\??ss][\c!n=5,#2]%
+ \forcesymbolset[#1]%
+ \doifsymbolsetelse{#1}
+ {\global\let\allfigures\empty
+ \doglobal\newcounter\figurecounter
+ \setupcolors[\c!state=\v!start]% to prevent mps color conversion
+ \dontcomplain
+ \def\doshowsymbols% global needed due to grouping in alignment
+ {\expanded{\globalprocesscommalist[\symbolset{#1}]}\docommand}%
+ \def\docommand##1%
+ {\vbox
+ {\forgetall
+ \tttf
+ \halign
+ {\hss\quad####\strut\quad\hss\cr
+ \symbol[##1]\quad{\red\ruledhbox{\black\symbol[##1]}}\cr
+ \tfx##1\cr}}%
+ \doglobal\increment\figurecounter
+ \ifnum\figurecounter=\@@ssn
+ \doglobal\newcounter\figurecounter
+ \def\next{\crcr\noalign{\vskip1ex}}%
+ \else
+ \def\next{&}%
+ \fi
+ \next}%
+ \tabskip\zeropoint \!!plus 1fill
+ \halign to \hsize
+ {&\hss##\hss\cr\doshowsymbols\crcr}}%
+ {}%
+ \blank
+ \egroup}
+
+\gdef\showsymbolset
+ {\dodoubleempty\doshowsymbolset}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/syst-aux.mkiv b/Master/texmf-dist/tex/context/base/syst-aux.mkiv
new file mode 100644
index 00000000000..995a0cb6e02
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/syst-aux.mkiv
@@ -0,0 +1,6914 @@
+%D \module
+%D [ file=syst-gen,
+%D version=1996.03.20,
+%D title=\CONTEXT\ System Macros,
+%D subtitle=General,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D Some of the macros will move to syst-obs as they might become
+%D obsolete once we've redone the bibliography module. Of course
+%D the handy helpers will stay.
+
+%D This is a stripped down combination of:
+%D
+%D \startitemize
+%D \item \type {syst-gen.tex}
+%D \item \type {syst-ext.tex}
+%D \item \type {syst-new.tex}
+%D \stopitemize
+%D
+%D We keep them around (for \MKII) so you can find comments,
+%D experiences, intermediate versions and cleaner variants
+%D there (and also non-\ETEX\ variants).
+%D
+%D Contrary to the older files, we now assume that this one
+%D is used in \CONTEXT\ and therefore we might also assume that
+%D some basic functionality is available.
+%D
+%D Some of the macros here are used in the bibliography module. They
+%D will be moved to a separate syst module some once the bib module
+%D is made \MKIV.
+
+\unprotect
+
+\let\reportprotectionstate\relax
+
+%D \macros
+%D {doifolderversionelse}
+%D
+%D We start with a macro specially for Aditya who wants to be able
+%D to use development versions of \MKIV\ for real documents.
+%D
+%D \starttyping
+%D \doifolderversionelse\contextversion{2001.02.03}{yes}{no}
+%D \doifolderversionelse\contextversion{3001.02.03}{yes}{no}
+%D \stoptyping
+%D
+%D The \type {yyyy.mm.dd} syntax is rather strict.
+
+\def\@@versiontonumber#1.#2.#3#4#5\relax
+ {\numexpr#1*\plustenthousand+#2*\plushundred+#3#4\relax}
+
+\def\doifolderversionelse#1#2%
+ {\normalexpanded{\noexpand\ifnum\noexpand\@@versiontonumber#1\relax<\noexpand\@@versiontonumber#2\relax}\relax
+ \expandafter\firstoftwoarguments
+ \else
+ \expandafter\secondoftwoarguments
+ \fi}
+
+%D \macros
+%D {normalspace}
+%D
+%D There is already \type{\space} but just to be sure we also
+%D provide:
+
+\def\normalspace{ }
+
+%D \macros
+%D {!!count, !!toks, !!dimen, !!box,
+%D !!width, !!height, !!depth, !!string, !!done}
+%D
+%D We define some more \COUNTERS\ and \DIMENSIONS. We also
+%D define some shortcuts to the local scatchregisters~0, 2, 4,
+%D 6 and~8.
+
+\newcount\!!counta \newtoks\!!toksa \newdimen\!!dimena \newbox\!!boxa
+\newcount\!!countb \newtoks\!!toksb \newdimen\!!dimenb \newbox\!!boxb
+\newcount\!!countc \newtoks\!!toksc \newdimen\!!dimenc \newbox\!!boxc
+\newcount\!!countd \newtoks\!!toksd \newdimen\!!dimend \newbox\!!boxd
+\newcount\!!counte \newtoks\!!tokse \newdimen\!!dimene \newbox\!!boxe
+\newcount\!!countf \newtoks\!!toksf \newdimen\!!dimenf \newbox\!!boxf
+ \newdimen\!!dimeng
+ \newdimen\!!dimenh
+ \newdimen\!!dimeni
+ \newdimen\!!dimenj
+ \newdimen\!!dimenk
+
+\let\!!stringa\empty \let\!!stringb\empty \let\!!stringc\empty
+\let\!!stringd\empty \let\!!stringe\empty \let\!!stringf\empty
+
+\newdimen\!!widtha \newdimen\!!heighta \newdimen\!!deptha
+\newdimen\!!widthb \newdimen\!!heightb \newdimen\!!depthb
+\newdimen\!!widthc \newdimen\!!heightc \newdimen\!!depthc
+\newdimen\!!widthd \newdimen\!!heightd \newdimen\!!depthd
+
+\newif\if!!donea \newif\if!!doneb \newif\if!!donec
+\newif\if!!doned \newif\if!!donee \newif\if!!donef
+
+\def\!!zerocount {0} % alongside \zerocount
+\def\!!minusone {-1} % alongside \minusone
+\def\!!plusone {1} % alongside \plusone
+\def\!!plustwo {2} % alongside \plustwo
+\def\!!plusthree {3} % alongside \plusthree
+
+\ifdefined\data \else \let\data \relax \fi % dep checker
+
+%D \macros
+%D {s!,c!,e!,p!,v!,@@,??}
+%D
+%D To save memory, we use constants (sometimes called
+%D variables). Redefining these constants can have disastrous
+%D results.
+
+\def\v!prefix! {v!} \def\c!prefix! {c!}
+\def\s!prefix! {s!} \def\p!prefix! {p!}
+
+\def\s!next {next} \def\s!default {default}
+\def\s!dummy {dummy} \def\s!unknown {unknown}
+
+\def\s!do {do} \def\s!dodo {dodo}
+
+\def\s!complex {complex} \def\s!start {start}
+\def\s!simple {simple} \def\s!stop {stop}
+
+\def\s!empty {empty}
+
+%D \macros
+%D {@EA,@EAEA,@EAEAEA,@EAEAEAEAEAEA,expanded,startexpanded}
+%D
+%D When in unprotected mode, to be entered with
+%D \type{\unprotect}, one can use \type{\@EA} as equivalent
+%D of \type{\expandafter}.
+
+\let\@NX\noexpand
+\let\@EA\expandafter
+
+\def\@EAEA {\expandafter\expandafter}
+\def\@EAEAEA{\expandafter\expandafter\expandafter}
+
+\def\@EAEAEAEAEAEA{\expandafter\@EAEAEA\expandafter}
+
+%D Sometimes we pass macros as arguments to commands that
+%D don't expand them before interpretation. Such commands can
+%D be enclosed with \type{\expanded}, like:
+%D
+%D \starttyping
+%D \expanded{\setupsomething[\alfa]}
+%D \stoptyping
+%D
+%D Such situations occur for instance when \type{\alfa} is a
+%D commalist or when data stored in macros is fed to index of
+%D list commands. If needed, one should use \type{\noexpand}
+%D inside the argument. Later on we will meet some more clever
+%D alternatives to this command.
+
+\long\def\@@expanded{} % always long; global (less restores)
+
+\long\def\expanded#1%
+ {\long\xdef\@@expanded{\noexpand#1}\@@expanded}
+
+%D Beware, the next one has no \type {\noexpand} before its
+%D argument.
+
+\long\def\startexpanded#1\stopexpanded % see x-fo for example
+ {\long\xdef\@@expanded{#1}\@@expanded}
+
+%D Recent \TEX's have a primitive \expanded
+
+% \long\def\expanded
+% {\normalexpanded\bgroup\noexpand\gobblenexttoken}
+
+%D \macros
+%D {safeexpanded,everysafeexpanded}
+%D
+%D In addition we provide:
+
+\newtoks\everysafeexpanded
+
+\long\def\safeexpanded#1% why the \noexpand
+ {\begingroup
+ \the\everysafeexpanded\long\xdef\@@expanded{\noexpand#1}%
+ \endgroup
+ \@@expanded}
+
+\def\safeedef#1#2%
+ {\begingroup
+ \the\everysafeexpanded\long\xdef\@@expanded{\noexpand#2}%
+ \endgroup
+ \let#1\@@expanded}
+
+\def\safexdef#1#2%
+ {\begingroup
+ \the\everysafeexpanded\long\xdef\@@expanded{\noexpand#2}%
+ \endgroup
+ \global\let#1\@@expanded}
+
+%D You can append protective measures to the token register if
+%D needed, as we will do later.
+
+%D \macros
+%D {expandoneargafter,expandtwoargsafter}
+%D
+%D These two commands make macros more readable by hiding a
+%D lot of \type {\expandafter}'s. They expand the arguments
+%D after the first command.
+%D
+%D \starttyping
+%D \expandoneargafter \command{\abc}
+%D \expandtwoargsafter\command{\abc}{\def}
+%D \stoptyping
+%D
+%D These commands expect the arguments to be macros.
+
+\def\expandoneargafter #1{\@EA#1\@EA}
+\def\expandtwoargsafter#1#2{\@EA\@EA\@EA#1\@EA\@EA\@EA{\@EA#2\@EA}\@EA}
+
+%D These two do a full expansion:
+
+\def\fullexpandoneargafter #1#2{\long\xdef\@@expanded{\noexpand#1{#2}}\@@expanded}
+\def\fullexpandtwoargsafter#1#2#3{\long\xdef\@@expanded{\noexpand#1{#2}{#3}}\@@expanded}
+
+%D \macros
+%D {gobbleoneargument,gobble...arguments}
+%D
+%D The next set of macros just do nothing, except that they
+%D get rid of a number of arguments.
+
+\long\def\gobbleoneargument #1{}
+\long\def\gobbletwoarguments #1#2{}
+\long\def\gobblethreearguments #1#2#3{}
+\long\def\gobblefourarguments #1#2#3#4{}
+\long\def\gobblefivearguments #1#2#3#4#5{}
+\long\def\gobblesixarguments #1#2#3#4#5#6{}
+\long\def\gobblesevenarguments #1#2#3#4#5#6#7{}
+\long\def\gobbleeightarguments #1#2#3#4#5#6#7#8{}
+\long\def\gobbleninearguments #1#2#3#4#5#6#7#8#9{}
+\long\def\gobbletenarguments #1{\gobbleninearguments}
+
+%D \macros
+%D {doifnextcharelse}
+%D
+%D When we started using \TEX\ in the late eighties, our
+%D first experiences with programming concerned a simple shell
+%D around \LATEX. The commands probably use most at \PRAGMA,
+%D are the itemizing ones. One of those few shell commands took
+%D care of an optional argument, that enabled us to specify
+%D what kind of item symbol we wanted. Without understanding
+%D anything we were able to locate a \LATEX\ macro that could
+%D be used to inspect the next character.
+%D
+%D It's this macro that the ancester of the next one presented
+%D here. It executes one of two actions, dependant of the next
+%D character. Disturbing spaces and line endings, which are
+%D normally interpreted as spaces too, are skipped.
+%D
+%D \starttyping
+%D \doifnextcharelse {karakter} {then ...} {else ...}
+%D \stoptyping
+%D
+%D This macro differs from the original in the use of \type
+%D {\localnext} because we don't want clashes with \type
+%D {\next}.
+
+\long\def\doifnextcharelse#1#2#3% #1 should not be {} !
+ {\let\charactertoken=#1% = needed here
+ \def\!!stringa{#2}%
+ \def\!!stringb{#3}%
+ \futurelet\nexttoken\inspectnextcharacter}
+
+\def\inspectnextcharacter
+ {\ifx\nexttoken\blankspace
+ \@EA\reinspectnextcharacter
+ \else
+ \@EA\inspectnextcharacterindeed
+ \fi}
+\def\inspectnextcharacterindeed
+ {\ifx\nexttoken\charactertoken
+ \@EA\!!stringa
+ \else
+ \@EA\!!stringb
+ \fi}
+
+%D Because we will mostly use this macro for testing if the next
+%D character is \type {[}, we also make a slightly faster variant
+%D as it is not uncommon to have tens of thousands of calls to this
+%D test in a run. Of course it also is more convenient to read a
+%D trace then.
+
+\let\nextoptionalcharactertoken=[
+
+\long\def\doifnextoptionalelse#1#2%
+ {\def\nextoptionalcommandyes{#1}%
+ \def\nextoptionalcommandnop{#2}%
+ \futurelet\nexttoken\inspectnextoptionalcharacter}
+\def\inspectnextoptionalcharacter
+ {\ifx\nexttoken\blankspace
+ \@EA\reinspectnextoptionalcharacter
+ \else
+ \@EA\inspectnextoptionalcharacterindeed
+ \fi}
+\def\inspectnextoptionalcharacterindeed
+ {\ifx\nexttoken\nextoptionalcharactertoken
+ \@EA\nextoptionalcommandyes
+ \else
+ \@EA\nextoptionalcommandnop
+ \fi}
+
+\let\nextbgroupcharactertoken\bgroup
+
+\long\def\doifnextbgroupelse#1#2%
+ {\def\nextbgroupcommandyes{#1}%
+ \def\nextbgroupcommandnop{#2}%
+ \futurelet\nexttoken\inspectnextbgroupcharacter}
+\def\inspectnextbgroupcharacter
+ {\ifx\nexttoken\blankspace
+ \@EA\reinspectnextbgroupcharacter
+ \else
+ \@EA\inspectnextbgroupcharacterindeed
+ \fi}
+\def\inspectnextbgroupcharacterindeed
+ {\ifx\nexttoken\nextbgroupcharactertoken
+ \@EA\nextbgroupcommandyes
+ \else
+ \@EA\nextbgroupcommandnop
+ \fi}
+
+\let\nextparenthesischaractertoken(
+
+\long\def\doifnextparenthesiselse#1#2%
+ {\def\nextparenthesiscommandyes{#1}%
+ \def\nextparenthesiscommandnop{#2}%
+ \futurelet\nexttoken\inspectnextparenthesischaracter}
+\def\inspectnextparenthesischaracter
+ {\ifx\nexttoken\blankspace
+ \@EA\reinspectnextparenthesischaracter
+ \else
+ \@EA\inspectnextparenthesischaracterindeed
+ \fi}
+\def\inspectnextparenthesischaracterindeed
+ {\ifx\nexttoken\nextparenthesischaractertoken
+ \@EA\nextparenthesiscommandyes
+ \else
+ \@EA\nextparenthesiscommandnop
+ \fi}
+
+%D The next one is handy in predictable situations:
+
+\long\def\doiffastoptionalcheckelse#1#2%
+ {\def\nextoptionalcommandyes{#1}%
+ \def\nextoptionalcommandnop{#2}%
+ \futurelet\nexttoken\dodoiffastoptionalcheckelse}
+
+\def\dodoiffastoptionalcheckelse
+ {\ifx\nexttoken\nextoptionalcharactertoken
+ \expandafter\nextoptionalcommandyes
+ \else
+ \expandafter\nextoptionalcommandnop
+ \fi}
+
+%D This macro uses some auxiliary macros. Although we were able
+%D to program quite complicated things, I only understood these
+%D after rereading the \TEX book. The trick is in using a
+%D command with a one character name. Such commands differ from
+%D the longer ones in the fact that trailing spaces are {\em
+%D not} skipped. This enables us to indirectly define a long
+%D named macro that gobbles a space.
+%D
+%D In the first line we define \type{\blankspace}. Next we
+%D make \type{\:} equivalent to \type{\reinspect...}. This
+%D one||character command is expanded before the next
+%D \type{\def} comes into action. This way the space after
+%D \type{\:} becomes a delimiter of the longer named
+%D \type{\reinspectnextcharacter}.
+
+\let\next\:
+
+\def\:{\let\blankspace= } \:
+
+\def\:{\reinspectnextcharacter}
+\expandafter\def\: {\futurelet\nexttoken\inspectnextcharacter}
+
+\def\:{\reinspectnextoptionalcharacter}
+\expandafter\def\: {\futurelet\nexttoken\inspectnextoptionalcharacter}
+
+\def\:{\reinspectnextbgroupcharacter}
+\expandafter\def\: {\futurelet\nexttoken\inspectnextbgroupcharacter}
+
+\let\:\next
+
+%D \macros
+%D {setvalue,setgvalue,setevalue,setxvalue,
+%D letvalue,letgvalue,getvalue,resetvalue,
+%D undefinevalue,ignorevalue}
+%D
+%D \TEX's primitive \type{\csname} can be used to construct
+%D all kind of commands that cannot be defined with
+%D \type{\def} and \type{\let}. Every macro programmer sooner
+%D or later wants macros like these.
+%D
+%D \starttyping
+%D \setvalue {name}{...} = \def\name{...}
+%D \setgvalue {name}{...} = \gdef\name{...}
+%D \setevalue {name}{...} = \edef\name{...}
+%D \setxvalue {name}{...} = \xdef\name{...}
+%D \letvalue {name}=\... = \let\name=\...
+%D \letgvalue {name}=\... = \global\let\name=\...
+%D \getvalue {name} = \name
+%D \resetvalue {name} = \def\name{}
+%D \stoptyping
+%D
+%D As we will see, \CONTEXT\ uses these commands many times,
+%D which is mainly due to its object oriented and parameter
+%D driven character.
+
+\def\setvalue #1{\expandafter \def\csname#1\endcsname}
+\def\setgvalue #1{\expandafter\gdef\csname#1\endcsname}
+\def\setevalue #1{\expandafter\edef\csname#1\endcsname}
+\def\setxvalue #1{\expandafter\xdef\csname#1\endcsname}
+\def\getvalue #1{\csname#1\endcsname}
+\def\letvalue #1{\expandafter\let\csname#1\endcsname}
+\def\letgvalue #1{\global\expandafter\let\csname#1\endcsname}
+\def\resetvalue #1{\expandafter\let\csname#1\endcsname\empty}
+\def\undefinevalue#1{\expandafter\let\csname#1\endcsname\undefined}
+\def\ignorevalue#1#2{\expandafter\let\csname#1\endcsname\empty}
+
+%D \macros
+%D {globallet,glet}
+%D
+%D In \CONTEXT\ of May 2000 using \type {\globallet}
+%D instead of the two tokens will save us some
+%D $300\times4=1200$ bytes of format file on a 32~bit
+%D system. So:
+
+\def\globallet{\global\let} \let\glet\globallet
+
+%D \macros
+%D {donottest,unexpanded}
+%D
+%D When expansion of a macro gives problems, we can precede it
+%D by \type{\donottest}. It seems that protection is one of the
+%D burdens of developers of packages, so maybe that's why in
+%D \ETEX\ protection is solved in a more robust way.
+%D
+%D Because we use thi smodule onl in \MKIV, we have removed the
+%D old protection code.
+%D
+%D \starttyping
+%D \unexpanded\def\somecommand{... ... ...}
+%D \stoptyping
+
+\let \donottest \firstofoneargument % we need to weed
+\let \honorunexpanded \empty % we need to weed
+\let \forceunexpanded \empty % we need to weed
+\let \resetunexpanded \empty % we need to weed
+
+\let \unexpanded \normalprotected
+
+%D \macros
+%D {doifundefined,doifdefined,
+%D doifundefinedelse,doifdefinedelse,
+%D doifalldefinedelse}
+%D
+%D The standard way of testing if a macro is defined is
+%D comparing its meaning with another undefined one, usually
+%D \type{\undefined}. To garantee correct working of the next
+%D set of macros, \type{\undefined} may never be defined!
+%D
+%D \starttyping
+%D \doifundefined {string} {...}
+%D \doifdefined {string} {...}
+%D \doifundefinedelse {string} {then ...} {else ...}
+%D \doifdefinedelse {string} {then ...} {else ...}
+%D \doifalldefinedelse {commalist} {then ...} {else ...}
+%D \stoptyping
+%D
+%D Every macroname that \TEX\ builds gets an entry in the hash
+%D table, which is of limited size. It is expected that e-\TeX\
+%D will offer a less memory||consuming alternative.
+
+%D Although it will probably never be a big problem, it is good
+%D to be aware of the difference between testing on a macro
+%D name to be build by using \type{\csname} and
+%D \type{\endcsname} and testing the \type{\name} directly.
+%D
+%D \starttyping
+%D \expandafter\ifx\csname NameA\endcsname\relax ... \else ... \fi
+%D
+%D \ifundefined\NameB ... \else ... \fi
+%D \stoptyping
+
+\def\ifundefined#1% ongelukkige naam .. obsolete
+ {\unless\ifcsname#1\endcsname}
+
+% \def\p!doifundefined#1%
+% {\edef\p!defined{#1}%
+% \unless\ifcsname\detokenize\@EA{\p!defined}\endcsname}
+
+% \def\doifundefinedelse#1%
+% {\edef\p!defined{#1}%
+% \ifcsname\detokenize\@EA{\p!defined}\endcsname
+% \expandafter\secondoftwoarguments
+% \else
+% \expandafter\firstoftwoarguments
+% \fi}
+
+% \def\doifdefinedelse#1%
+% {\edef\p!defined{#1}%
+% \ifcsname\detokenize\@EA{\p!defined}\endcsname
+% \expandafter\firstoftwoarguments
+% \else
+% \expandafter\secondoftwoarguments
+% \fi}
+
+% \def\doifundefined#1%
+% {\edef\p!defined{#1}%
+% \ifcsname\detokenize\@EA{\p!defined}\endcsname
+% \expandafter\gobbleoneargument
+% \else
+% \expandafter\firstofoneargument
+% \fi}
+
+% \def\doifdefined#1%
+% {\edef\p!defined{#1}%
+% \ifcsname\detokenize\@EA{\p!defined}\endcsname
+% \expandafter\firstofoneargument
+% \else
+% \expandafter\gobbleoneargument
+% \fi}
+
+\ifdefined\suppressifcsnameerror
+
+ \suppressifcsnameerror\plusone
+
+ \def\doifundefinedelse#1%
+ {\ifcsname#1\endcsname
+ \@EA\secondoftwoarguments\else\@EA\firstoftwoarguments
+ \fi}
+
+ \def\doifdefinedelse#1%
+ {\ifcsname#1\endcsname
+ \@EA\firstoftwoarguments\else\@EA\secondoftwoarguments
+ \fi}
+
+ \def\doifundefined#1%
+ {\ifcsname#1\endcsname
+ \@EA\gobbleoneargument\else\@EA\firstofoneargument
+ \fi}
+
+ \def\doifdefined#1%
+ {\ifcsname#1\endcsname
+ \@EA\firstofoneargument\else\@EA\gobbleoneargument
+ \fi}
+
+\else
+
+ \def\doifundefinedelse#1%
+ {\ifcsname\detokenize\@EA{\normalexpanded{#1}}\endcsname
+ \@EA\secondoftwoarguments\else\@EA\firstoftwoarguments
+ \fi}
+
+ \def\doifdefinedelse#1%
+ {\ifcsname\detokenize\@EA{\normalexpanded{#1}}\endcsname
+ \@EA\firstoftwoarguments\else\@EA\secondoftwoarguments
+ \fi}
+
+ \def\doifundefined#1%
+ {\ifcsname\detokenize\@EA{\normalexpanded{#1}}\endcsname
+ \@EA\gobbleoneargument\else\@EA\firstofoneargument
+ \fi}
+
+ \def\doifdefined#1%
+ {\ifcsname\detokenize\@EA{\normalexpanded{#1}}\endcsname
+ \@EA\firstofoneargument\else\@EA\gobbleoneargument
+ \fi}
+
+\fi
+
+%D \macros
+%D {letbeundefined}
+%D
+%D Testing for being undefined comes down to testing on \type
+%D {\relax} when we use \type {\csname}, but when using \type
+%D {\ifx}, we test on being \type {\undefined}! In \ETEX\ we
+%D have \type {\ifcsname} and that way of testing on existance
+%D is not the same as the one described here. Therefore we
+%D introduce:
+
+\def\letbeundefined#1% potential stack buildup when used \global
+ {\expandafter\let\csname#1\endcsname\undefined}
+
+\def\localundefine#1% conditional
+ {\ifcsname#1\endcsname\expandafter\let\csname#1\endcsname\undefined\fi}
+
+\def\globalundefine#1% conditional
+ {\ifcsname#1\endcsname\expandafter\global\let\csname#1\endcsname\undefined\fi}
+
+%D Beware, being \type {\undefined} in \ETEX\ means that the macro
+%D {\em is} defined!
+
+%D When we were developing the scientific units module, we
+%D encountered different behavior in text and math mode, which
+%D was due to this grouping subtilities. We therefore decided
+%D to use \type{\begingroup} instead of \type{\bgroup}.
+
+\def\docheckonedefined#1%
+ {\ifcsname#1\endcsname\else
+ \donefalse
+ \expandafter\quitcommalist % added
+ \fi}
+
+\def\doifalldefinedelse#1%
+ {\begingroup
+ \donetrue \processcommalist[#1]\docheckonedefined
+ \ifdone
+ \endgroup\expandafter\firstoftwoarguments
+ \else
+ \endgroup\expandafter\secondoftwoarguments
+ \fi}
+
+%D \macros
+%D {doif,doifelse,doifnot,
+%D donottest}
+%D
+%D Programming in \TEX\ differs from programming in procedural
+%D languages like \MODULA. This means that one --- well, let me
+%D speek for myself --- tries to do the things in the well
+%D known way. Therefore the next set of \type{\ifthenelse}
+%D commands were between the first ones we needed. A few years
+%D later, the opposite became true: when programming in
+%D \MODULA, I sometimes miss handy things like grouping,
+%D runtime redefinition, expansion etc. While \MODULA\ taught
+%D me to structure, \TEX\ taught me to think recursive.
+%D
+%D \starttyping
+%D \doif {string1} {string2} {...}
+%D \doifnot {string1} {string2} {...}
+%D \doifelse {string1} {string2} {then ...}{else ...}
+%D \stoptyping
+%D
+%D When expansion gives problems, we can precede the
+%D troublemaker with \type{\donottest}.
+
+\long\def\doif#1#2%
+ {\edef\!!stringa{#1}\edef\!!stringb{#2}%
+ \ifx\!!stringa\!!stringb
+ \expandafter\firstofoneargument
+ \else
+ \expandafter\gobbleoneargument
+ \fi}
+
+\long\def\doifnot#1#2%
+ {\edef\!!stringa{#1}\edef\!!stringb{#2}%
+ \ifx\!!stringa\!!stringb
+ \expandafter\gobbleoneargument
+ \else
+ \expandafter\firstofoneargument
+ \fi}
+
+\long\def\doifelse#1#2%
+ {\edef\!!stringa{#1}\edef\!!stringb{#2}%
+ \ifx\!!stringa\!!stringb
+ \expandafter\firstoftwoarguments
+ \else
+ \expandafter\secondoftwoarguments
+ \fi}
+
+%D \macros
+%D {doifempty,doifemptyelse,doifnotempty}
+%D
+%D We complete our set of conditionals with:
+%D
+%D \starttyping
+%D \doifempty {string} {...}
+%D \doifnotempty {string} {...}
+%D \doifemptyelse {string} {then ...} {else ...}
+%D \stoptyping
+%D
+%D This time, the string is not expanded.
+
+\long\def\doifemptyelse#1%
+ {\def\!!stringa{#1}%
+ \ifx\!!stringa\empty
+ \expandafter\firstoftwoarguments
+ \else
+ \expandafter\secondoftwoarguments
+ \fi}
+
+\long\def\doifempty#1%
+ {\def\!!stringa{#1}%
+ \ifx\!!stringa\empty
+ \expandafter\firstofoneargument
+ \else
+ \expandafter\gobbleoneargument
+ \fi}
+
+\long\def\doifnotempty#1%
+ {\def\!!stringa{#1}%
+ \ifx\!!stringa\empty
+ \expandafter\gobbleoneargument
+ \else
+ \expandafter\firstofoneargument
+ \fi}
+
+%D \macros
+%D {doifinset,doifnotinset,doifinsetelse}
+%D
+%D We can check if a string is present in a comma separated
+%D set of strings. Depending on the result, some action is
+%D taken.
+%D
+%D \starttyping
+%D \doifinset {string} {string,...} {...}
+%D \doifnotinset {string} {string,...} {...}
+%D \doifinsetelse {string} {string,...} {then ...} {else ...}
+%D \stoptyping
+
+% !0nop=\doifinsetelse{ccc}{,}{yes}{nop}
+% !0nop=\doifinsetelse{ccc}{,,}{yes}{nop}
+% !0nop=\doifinsetelse{ccc}{,,,}{yes}{nop}
+
+% !1nop=\doifinsetelse{}{}{yes}{nop}
+% !2yes=\doifinsetelse{aaa}{bbb,ccc,ddd,aaa,eee}{yes}{nop}
+% !3nop=\doifinsetelse{aaa}{bbb}{yes}{nop}
+% !4yes=\doifinsetelse{aaa}{aaa}{yes}{nop}
+% !5nop=\doifinsetelse{aaaa}{bbb,ccc,ddd,aaa,eee}{yes}{nop}
+% !6nop=\doifinsetelse{}{}{yes}{nop}
+% !7nop=\doifinsetelse{}{aaa}{yes}{nop}
+% !8nop=\doifinsetelse{aaa}{}{yes}{nop}
+
+% !1=\doifinset{}{}{yes}
+% !2yes=\doifinset{aaa}{bbb,ccc,ddd,aaa,eee}{yes}
+% !3=\doifinset{aaa}{bbb}{yes}
+% !4yes=\doifinset{aaa}{aaa}{yes}
+% !5=\doifinset{}{}{yes}
+% !6=\doifinset{aaa}{}{yes}
+
+% !1yes=\doifnotinset{}{}{yes}
+% !2=\doifnotinset{aaa}{bbb,ccc,ddd,aaa,eee}{yes}
+% !3yes=\doifnotinset{aaa}{bbb}{yes}
+% !4=\doifnotinset{aaa}{aaa}{yes}
+% !5yes=\doifnotinset{}{}{yes}
+% !6yes=\doifnotinset{aaa}{}{yes}
+
+\def\rightoptionalbracket{]}
+
+\long\def\doquitifiteminsetelse#1],\relax{\firstoftwoarguments}
+\long\def\doquitifiteminset #1],\relax{\firstofoneargument}
+\long\def\doquitifitemnotinset #1],\relax{\gobbleoneargument}
+
+\long\def\redoifinsetelse{\expandafter\docheckifiteminsetelse\!!stringb,],\relax}
+\long\def\redoifinset {\expandafter\docheckifiteminset \!!stringb,],\relax}
+\long\def\redoifnotinset {\expandafter\docheckifitemnotinset \!!stringb,],\relax}
+
+\long\def\doifinsetelse#1% make this two step too
+ {\edef\!!stringa{#1}%
+ \ifx\!!stringa\empty
+ \expandafter\thirdofthreearguments
+ \else
+ \expandafter\dodoifinsetelse
+ \fi}
+\long\def\dodoifinsetelse#1%
+ {\edef\!!stringb{#1}%
+ \ifx\!!stringb\empty
+ \expandafter\secondoftwoarguments
+ \else
+ \expandafter\redoifinsetelse
+ \fi}
+
+\long\def\doifinset#1%
+ {\edef\!!stringa{#1}%
+ \ifx\!!stringa\empty
+ \expandafter\gobbletwoarguments
+ \else
+ \expandafter\dodoifinset
+ \fi}
+\long\def\dodoifinset#1%
+ {\edef\!!stringb{#1}%
+ \ifx\!!stringb\empty
+ \expandafter\gobbleoneargument
+ \else
+ \expandafter\redoifinset
+ \fi}
+
+\long\def\doifnotinset#1%
+ {\edef\!!stringa{#1}%
+ \ifx\!!stringa\empty
+ \expandafter\secondoftwoarguments
+ \else
+ \expandafter\dodoifnotinset
+ \fi}
+\long\def\dodoifnotinset#1%
+ {\edef\!!stringb{#1}%
+ \ifx\!!stringb\empty
+ \expandafter\firstofoneargument
+ \else
+ \expandafter\redoifnotinset % ...]{true}
+ \fi}
+
+\def\docheckifiteminsetelse#1,#2% #2 eats up preceding space
+ {\edef\!!stringb{#1}%
+ \ifx\!!stringb\empty
+ \expandafter\docheckifiteminsetelse
+ \else
+ \expandafter\dodocheckifiteminsetelse
+ \fi#2}
+\def\dodocheckifiteminsetelse
+ {\ifx\!!stringb\rightoptionalbracket
+ \expandafter\thirdofthreearguments
+ \else
+ \expandafter\dododocheckifiteminsetelse
+ \fi}
+\def\dododocheckifiteminsetelse
+ {\ifx\!!stringa\!!stringb
+ \expandafter\doquitifiteminsetelse
+ \else
+ \expandafter\docheckifiteminsetelse
+ \fi}
+
+\def\docheckifiteminset#1,#2% #2 eats up preceding space
+ {\edef\!!stringb{#1}%
+ \ifx\!!stringb\empty
+ \expandafter\docheckifiteminset
+ \else
+ \expandafter\dodocheckifiteminset
+ \fi#2}
+\def\dodocheckifiteminset
+ {\ifx\!!stringb\rightoptionalbracket
+ \expandafter\gobbletwoarguments
+ \else
+ \expandafter\dododocheckifiteminset
+ \fi}
+\def\dododocheckifiteminset
+ {\ifx\!!stringa\!!stringb
+ \expandafter\doquitifiteminset
+ \else
+ \expandafter\docheckifiteminset
+ \fi}
+
+\def\docheckifitemnotinset#1,#2% #2 eats up preceding space
+ {\edef\!!stringb{#1}%
+ \ifx\!!stringb\empty
+ \expandafter\docheckifitemnotinset
+ \else
+ \expandafter\dodocheckifitemnotinset
+ \fi#2}
+\def\dodocheckifitemnotinset
+ {\ifx\!!stringb\rightoptionalbracket
+ \expandafter\secondoftwoarguments
+ \else
+ \expandafter\dododocheckifitemnotinset
+ \fi}
+\def\dododocheckifitemnotinset
+ {\ifx\!!stringa\!!stringb
+ \expandafter\doquitifitemnotinset
+ \else
+ \expandafter\docheckifitemnotinset
+ \fi}
+
+%D \macros
+%D {doifcommon,doifnotcommon,doifcommonelse}
+%D
+%D Probably the most time consuming tests are those that test
+%D for overlap in sets of strings.
+%D
+%D \starttyping
+%D \doifcommon {string,...} {string,...} {...}
+%D \doifnotcommon {string,...} {string,...} {...}
+%D \doifcommonelse {string,...} {string,...} {then ...} {else ...}
+%D \stoptyping
+
+% !1yes=\doifcommonelse{aaa,bbb,ccc}{aaa,bbb,ccc}{yes}{nop}
+% !2nop=\doifcommonelse{aaa,bbb,ccc}{ddd,eee,fff}{yes}{nop}
+% !3nop=\doifcommonelse{aaa}{ddd,eee,fff}{yes}{nop}
+% !4yes=\doifcommonelse{aaa}{aaa}{yes}{nop}
+% !5nop=\doifcommonelse{bbb}{aaa}{yes}{nop}
+% !6nop=\doifcommonelse{}{aaa,bbb,ccc}{yes}{nop}
+% !7nop=\doifcommonelse{aaa,bbb,ccc}{}{yes}{nop}
+% !8nop=\doifcommonelse{}{}{yes}{nop}
+
+% !9nop=\doifcommonelse{,,}{,,}{yes}{nop}
+% !9yes=\doifcommonelse{,a,}{,a,}{yes}{nop}
+% !9yes=\doifcommonelse{,,a,}{,a,}{yes}{nop}
+% !9yes=\doifcommonelse{,a,}{,,a,}{yes}{nop}
+% !9yes=\doifcommonelse{,a,}{,,,a,}{yes}{nop}
+% !9yes=\doifcommonelse{,,a,}{,,,a,}{yes}{nop}
+
+% \def\p!doifcommonelse#1#2#3#4%
+% {\donefalse
+% \def\p!docommoncheck##1{\doifinset{##1}{#4}\donetrue\ifdone\quitcommalist\fi}%
+% \processcommalist[#3]\p!docommoncheck
+% \ifdone\expandafter#1\else\expandafter#2\fi}
+%
+% \def\doifcommonelse
+% {\p!doifcommonelse\firstoftwoarguments\secondoftwoarguments}
+%
+% \def\doifcommon
+% {\p!doifcommonelse\firstofoneargument \gobbleoneargument}
+%
+% \def\doifnotcommon
+% {\p!doifcommonelse\gobbleoneargument \firstofoneargument}
+
+\long\def\doquitifcommonelse#1],\relax#2],\relax{\firstoftwoarguments}
+
+\long\def\doquitifcommonelsenop{\secondoftwoarguments}
+
+\def\docheckifcommonelseone#1,#2%
+ {\edef\!!stringc{#1}%
+ \ifx\!!stringc\rightoptionalbracket
+ \expandafter\thirdofthreearguments
+ \else
+ \expandafter\p!docommoncheck
+ \fi#2}
+
+\def\docheckifcommonelsetwo#1,#2% we can do an empty #1 check too
+ {\edef\commalistelement{#1}%
+ \ifx\commalistelement\rightoptionalbracket
+ \expandafter\redocheckifcommonelseone
+ \else
+ \expandafter\dodocheckifcommonelsetwo
+ \fi#2}
+
+\def\dodocheckifcommonelsetwo
+ {\ifx\commalistelement\empty
+ \expandafter\docheckifcommonelsetwo
+ \else
+ \expandafter\dododocheckifcommonelsetwo
+ \fi}
+
+\def\dododocheckifcommonelsetwo
+ {\ifx\!!stringc\commalistelement
+ \expandafter\doquitifcommonelse
+ \else
+ \expandafter\docheckifcommonelsetwo
+ \fi}
+
+\def\redocheckifcommonelseone#1{\docheckifcommonelseone}
+
+\def\p!doifcommonelse#1#2#3#4%
+ {\edef\!!stringa{#3}%
+ \edef\!!stringb{#4}%
+ \ifx\!!stringa\empty
+ \expandafter\secondoftwoarguments
+ \else\ifx\!!stringb\empty
+ \expandafter\expandafter\expandafter\secondoftwoarguments
+ \else
+ \expandafter\expandafter\expandafter\pp!doifcommonelse
+ \fi\fi
+ #1#2}
+
+% \def\p!doifcommonelse#1#2#3%
+% {\edef\!!stringa{#3}%
+% \ifx\!!stringa\empty
+% \expandafter\secondofthreearguments
+% \else
+% \expandafter\p!dodoifcommonelse
+% \fi
+% #1#2} % #4
+
+% \def\p!dodoifcommonelse#1#2#3%
+% {\edef\!!stringb{#3}%
+% \ifx\!!stringb\empty
+% \expandafter\secondoftwoarguments
+% \else
+% \expandafter\pp!doifcommonelse
+% \fi#1#2}
+
+\def\pp!doifcommonelse
+ {\def\p!docommoncheck{\expandafter\docheckifcommonelsetwo\!!stringb,],\relax}%
+ \expandafter\docheckifcommonelseone\!!stringa,],\relax}
+
+\def\doifcommonelse{\p!doifcommonelse\firstoftwoarguments\secondoftwoarguments}
+\def\doifcommon {\p!doifcommonelse\firstofoneargument \gobbleoneargument }
+\def\doifnotcommon {\p!doifcommonelse\gobbleoneargument \firstofoneargument }
+
+%D \macros
+%D {processcommalist,processcommacommand,quitcommalist,
+%D processcommalistwithparameters}
+%D
+%D We've already seen some macros that take care of comma
+%D separated lists. Such list can be processed with
+%D
+%D \starttyping
+%D \processcommalist[string,string,...]\commando
+%D \stoptyping
+%D
+%D The user supplied command \type{\commando} receives one
+%D argument: the string. This command permits nesting and
+%D spaces after commas are skipped. Empty sets are no problem.
+%D
+%D \startbuffer
+%D \def\dosomething#1{(#1)}
+%D
+%D 1: \processcommalist [\hbox{$a,b,c,d,e,f$}] \dosomething \par
+%D 2: \processcommalist [{a,b,c,d,e,f}] \dosomething \par
+%D 3: \processcommalist [{a,b,c},d,e,f] \dosomething \par
+%D 4: \processcommalist [a,b,{c,d,e},f] \dosomething \par
+%D 5: \processcommalist [a{b,c},d,e,f] \dosomething \par
+%D 6: \processcommalist [{a,b}c,d,e,f] \dosomething \par
+%D 7: \processcommalist [] \dosomething \par
+%D 8: \processcommalist [{[}] \dosomething \par
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D Before we show the result, we present the macro's:
+
+\newcount\commalevel
+
+\def\dododoprocesscommaitem
+ {\csname\s!next\the\commalevel\endcsname}
+
+% \def\dodoprocesscommaitem
+% {\ifx\nexttoken\blankspace
+% \@EA\redoprocesscommaitem
+% \else\ifx\nexttoken]%
+% \@EAEAEA\gobbleoneargument
+% \else
+% \@EAEAEA\dododoprocesscommaitem
+% \fi\fi}
+
+\def\dodoprocesscommaitem
+ {\ifx\nexttoken\blankspace
+ \@EA\redoprocesscommaitem
+ \else
+ \@EA\dodoprocesscommaitemindeed
+ \fi}
+\def\dodoprocesscommaitemindeed
+ {\ifx\nexttoken]%
+ \@EA\gobbleoneargument
+ \else
+ \@EA\dododoprocesscommaitem
+ \fi}
+
+\def\doprocesscommaitem
+ {\futurelet\nexttoken\dodoprocesscommaitem}
+
+%D Empty arguments are not processed. Empty items (\type{,,})
+%D however are treated. We have to check for the special case
+%D \type{[{a,b,c}]}.
+
+\def\processcommalist[%
+ {\futurelet\nexttoken\docheckcommaitem}
+
+\def\docheckcommaitem
+ {\ifx\nexttoken]%
+ \expandafter\gobblethreearguments
+ \else
+ \expandafter\doprocesscommalist
+ \fi
+ \relax} % this one preserved the next {}
+
+\def\doprocesscommalist#1]#2%
+ {\global\advance\commalevel \plusone
+ \long\expandafter\def\csname\s!next\the\commalevel\endcsname##1,%
+ {#2{##1}\doprocesscommaitem}%
+ \@EA\dodoprocesscommaitem\gobbleoneargument#1,]\relax
+ \global\advance\commalevel \minusone }
+
+%D One way of quitting a commalist halfway is:
+
+\def\quitcommalist
+ {\begingroup\let\doprocesscommaitem\doquitcommalist}
+
+\def\doquitcommalist#1]%
+ {\endgroup}
+
+\def\quitprevcommalist
+ {\begingroup\let\doprocesscommaitem\doquitprevcommalist}
+
+\def\doquitprevcommalist#1]%
+ {\let\doprocesscommaitem\doquitcommalist}
+
+%D The hack we used for checking the next character
+%D \type {\doifnextcharelse} is also used here.
+
+\def\:{\redoprocesscommaitem}
+
+\expandafter\def\: {\futurelet\nexttoken\dodoprocesscommaitem}
+
+%D The previous examples lead to:
+%D
+%D \getbuffer
+
+%D When a list is saved in a macro, we can use a construction
+%D like:
+%D
+%D \starttyping
+%D \expandafter\processcommalist\expandafter[\list]\command
+%D \stoptyping
+%D
+%D Such solutions suit most situations, but we wanted a bit
+%D more.
+%D
+%D \starttyping
+%D \processcommacommand[string,\stringset,string]\commando
+%D \stoptyping
+%D
+%D where \type{\stringset} is a predefined set, like:
+%D
+%D \starttyping
+%D \def\first{aap,noot,mies}
+%D \def\second{laatste}
+%D
+%D \processcommacommand[\first]\message
+%D \processcommacommand[\first,second,third]\message
+%D \processcommacommand[\first,between,\second]\message
+%D \stoptyping
+%D
+%D Commands that are part of the list are expanded, so the
+%D use of this macro has its limits.
+
+% \def\processcommacommand[#1]%
+% {\expanded{\processcommalist[#1]}}
+
+\def\processcommacommand[#1]%
+ {\expandafter\processcommalist\expandafter[\normalexpanded{#1}]}
+
+%D The argument to \type{\command} is not delimited. Because
+%D we often use \type{[]} as delimiters, we also have:
+%D
+%D \starttyping
+%D \processcommalistwithparameters[string,string,...]\command
+%D \stoptyping
+%D
+%D where \type{\command} looks like:
+%D
+%D \starttyping
+%D \def\command[#1]{... #1 ...}
+%D \stoptyping
+
+\def\processcommalistwithparameters[#1]#2%
+ {\def\docommand##1{#2[##1]}%
+ \processcommalist[#1]\docommand}
+
+%D \macros
+%D {startprocesscommalist,startprocesscommacommand}
+%D
+%D Two more:
+
+\long\def\startprocesscommalist[#1]#2\stopprocesscommalist
+ {\long\def\currentcommalistcommand##1{\def\currentcommalistitem{##1}#2}%
+ \processcommalist[#1]\currentcommalistcommand}
+
+\long\def\startprocesscommacommand[#1]#2\stopprocesscommacommand
+ {\long\def\currentcommalistcommand##1{\def\currentcommalistitem{##1}#2}%
+ \normalexpanded{\noexpand\processcommacommand[#1]}\currentcommalistcommand}
+
+%D \macros
+%D {processaction,
+%D processfirstactioninset,
+%D processallactionsinset}
+%D
+%D \CONTEXT\ makes extensive use of a sort of case or switch
+%D command. Depending of the presence of one or more provided
+%D items, some actions is taken. These macros can be nested
+%D without problems.
+%D
+%D \starttyping
+%D \processaction [x] [a=>\a,b=>\b,c=>\c]
+%D \processfirstactioninset [x,y,z] [a=>\a,b=>\b,c=>\c]
+%D \processallactionsinset [x,y,z] [a=>\a,b=>\b,c=>\c]
+%D \stoptyping
+%D
+%D We can supply both a \type{default} action and an action
+%D to be undertaken when an \type{unknown} value is met:
+%D
+%D \starttyping
+%D \processallactionsinset
+%D [x,y,z]
+%D [ a=>\a,
+%D b=>\b,
+%D c=>\c,
+%D default=>\default,
+%D unknown=>\unknown{... \commalistelement ...}]
+%D \stoptyping
+%D
+%D When \type{#1} is empty, this macro scans list \type{#2} for
+%D the keyword \type{default} and executed the related action
+%D if present. When \type{#1} is non empty and not in the list,
+%D the action related to \type{unknown} is executed. Both
+%D keywords must be at the end of list \type{#2}. Afterwards,
+%D the actually found keyword is available in
+%D \type{\commalistelement}. An advanced example of the use of
+%D this macro can be found in \PPCHTEX, where we completely
+%D rely on \TEX\ for interpreting user supplied keywords like
+%D \type{SB}, \type{SB1..6}, \type{SB125} etc.
+
+\newcount\processlevel
+
+\def\p!compareprocessactionA[#1=>#2][#3]%
+ {\edef\!!stringb{#1}%
+ \ifx\!!stringb\s!default
+ \let\commalistelement\empty
+ #2%
+ \fi}
+
+% met \quitcommalist tot meer dan 25\% sneller
+
+\def\p!compareprocessactionB[#1=>#2][#3]%
+ {\expandedaction\!!stringb{#1}%
+ \ifx\!!stringa\!!stringb
+ \def\commalistelement{#3}%
+ #2%
+ \expandafter\quitcommalist
+ \else
+ \edef\!!stringb{#1}%
+ \ifx\!!stringb\s!unknown
+ \def\commalistelement{#3}% beware of loops
+ #2%
+ \fi
+ \fi}
+
+\def\processaction[#1]#2[%
+ {\expandedaction\!!stringa{#1}%
+ \ifx\!!stringa\empty
+ \let\p!compareprocessaction\p!compareprocessactionA
+ \else
+ \let\p!compareprocessaction\p!compareprocessactionB
+ \fi
+ \def\p!doprocessaction##1%
+ {\p!compareprocessaction[##1][#1]}%
+ \processnextcommalist\relax\expandactions\p!doprocessaction[}
+
+\def\p!compareprocessactionC[#1=>#2][#3]%
+ {\expandedaction\!!stringa{#1}%
+ \expandedaction\!!stringb{#3}%
+ \ifx\!!stringa\!!stringb
+ \def\commalistelement{#3}%
+ #2%
+ \expandafter\quitprevcommalist
+ \else
+ \edef\!!stringa{#1}%
+ \ifx\!!stringa\s!unknown
+ \def\commalistelement{#3}%
+ #2%
+ \fi
+ \fi}
+
+\def\processfirstactioninset[#1]%
+ {\expandedaction\!!stringa{#1}%
+ \ifx\!!stringa\empty
+ \expandafter\processaction
+ \else
+ \expandafter\processfirstactionsinsetindeed
+ \fi
+ [#1]}
+
+\def\processfirstactionsinsetindeed[#1]#2[#3]%
+ {\def\p!doprocessaction##1%
+ {\def\p!dodoprocessaction####1%
+ {\p!compareprocessactionC[####1][##1]}%
+ \processcommalist[#3]\p!dodoprocessaction}%
+ \processcommalist[#1]\p!doprocessaction
+ \expandactions}
+
+\def\p!compareprocessactionD[#1=>#2][#3]%
+ {\expandedaction\!!stringa{#1}%
+ \expandedaction\!!stringb{#3}%
+ \ifx\!!stringa\!!stringb
+ \def\commalistelement{#3}%
+ #2%
+ \expandafter\quitcommalist
+ \else
+ \edef\!!stringa{#1}%
+ \ifx\!!stringa\s!unknown
+ \def\commalistelement{#3}%
+ #2%
+ \fi
+ \fi}
+
+\def\doprocessallactionsinset
+ {\csname\s!do\the\processlevel\endcsname}
+
+\def\processallactionsinset[#1]%
+ {\expandedaction\!!stringa{#1}%
+ \ifx\!!stringa\empty
+ \expandafter\processaction
+ \else
+ \expandafter\processallactionsinsetindeed
+ \fi
+ [#1]}
+
+\def\processallactionsinsetindeed[#1]#2[#3]%
+ {\advance\processlevel \plusone
+ \expandafter\def\csname\s!do\the\processlevel\endcsname##1%
+ {\def\p!dodoprocessaction####1%
+ {\p!compareprocessactionD[####1][##1]}%
+ \processcommalist[#3]\p!dodoprocessaction}%
+ \processcommalist[#1]\doprocessallactionsinset
+ \advance\processlevel \minusone
+ \expandactions}
+
+%D These macros use:
+
+\def\processnextcommalist#1#2#3[#4#5]%
+ {#1%
+ \let\nexttoken#4%
+ \global\advance\commalevel \plusone
+ \long\expandafter\def\csname\s!next\the\commalevel\endcsname##1,%
+ {#3{##1}\doprocesscommaitem}%
+ \dodoprocesscommaitem#4#5,]\relax
+ \global\advance\commalevel \minusone
+ #2}
+
+%D \macros
+%D {unexpandedprocessaction,
+%D unexpandedprocessfirstactioninset,
+%D unexpandedprocessallactionsinset}
+%D
+%D Now what are those expansion commands doing there. Well,
+%D sometimes we want to compare actions that may consist off
+%D commands (i.e. are no constants). In such occasions we can
+%D use the a bit slower alternatives:
+
+\def\unexpandedprocessfirstactioninset{\dontexpandactions\processfirstactioninset}
+\def\unexpandedprocessaction {\dontexpandactions\processaction}
+\def\unexpandedprocessallactionsinset {\dontexpandactions\processallactionsinset}
+
+%D By default we expand actions:
+
+\def\expandactions{\let\expandedaction\edef} \expandactions
+
+%D But when needed we convert the strings to meaningful
+%D sequences of characters.
+
+\def\unexpandedaction#1>{}
+
+\def\noexpandedaction#1#2%
+ {\def\@@convertedargument{#2}%
+ \@EA\edef\@EA#1\@EA{\@EA\unexpandedaction\meaning\@@convertedargument}}
+
+\def\dontexpandactions
+ {\let\expandedaction\noexpandedaction}
+
+%D \macros
+%D {getfirstcharacter, firstcharacter, remainingcharacters, doiffirstcharacter}
+%D
+%D Sometimes the action to be undertaken depends on the
+%D next character. This macro get this character and puts it in
+%D \type{\firstcharacter}.
+%D
+%D \starttyping
+%D \getfirstcharacter {string}
+%D \stoptyping
+%D
+%D A two step expansion is used to prevent problems with
+%D complicated arguments, for instance arguments that
+%D consist of two or more expandable tokens.
+
+\def\dogetfirstcharacter#1#2\relax
+ {\def\firstcharacter{#1}%
+ \def\remainingcharacters{#2}}
+
+\def\getfirstcharacter#1%
+ {\edef\!!stringa{#1}%
+ \expandafter\dogetfirstcharacter\!!stringa\relax}
+
+\def\doiffirstcharelse#1#2% char string
+% kort (maar onleesbaar)
+% {\expanded{\dogetfirstcharacter#2}\\\doifelse{#1}\firstcharacter}
+% korter (en begrijpelijk))
+ {\getfirstcharacter{#2}\doifelse{#1}\firstcharacter}
+% snel (maar zelden gebruikt, dus niet zo belangrijk)
+% {\getfirstcharacter{#2}%
+% \edef\!!stringa{#1}%
+% \ifx\!!stringa\firstcharacter
+% \expandafter\firstoftwoarguments
+% \else
+% \expandafter\secondoftwoarguments
+% \fi}
+
+%D \macros
+%D {doifinstringelse, doifincsnameelse}
+%D
+%D We can check for the presence of a substring in a given
+%D sequence of characters.
+%D
+%D \starttyping
+%D \doifinsetelse {substring} {string} {then ...} {else ...}
+%D \stoptyping
+
+\long\def\doifinstringelse#1%
+ {\edef\@@@instring{#1}% expand #1 here
+ \ifx\@@@instring\empty
+ \@EA\thirdofthreearguments
+ \else
+ \@EA\dodoifinstringelse
+ \fi}
+
+\long\def\dodoifinstringelse#1%
+ {\p!doifinstringelse\@@@instring{#1}%
+ \@EA\firstoftwoarguments
+ \else
+ \@EA\secondoftwoarguments
+ \fi}
+
+\long\def\doifinstring#1%%
+ {\edef\@@@instring{#1}% expand #1 here
+ \ifx\@@@instring\empty
+ \@EA\gobbletwoarguments
+ \else
+ \@EA\dodoifinstring
+ \fi}
+
+\long\def\dodoifinstring#1%
+ {\p!doifinstringelse\@@@instring{#1}%
+ \@EA\firstofoneargument
+ \else
+ \@EA\gobbleoneargument
+ \fi}
+
+\long\def\doifnotinstring#1%%
+ {\edef\@@@instring{#1}% expand #1 here
+ \ifx\@@@instring\empty
+ \@EA\gobbletwoarguments
+ \else
+ \@EA\dodoifnotinstring
+ \fi}
+
+\long\def\dodoifnotinstring#1%
+ {\p!doifinstringelse\@@@instring{#1}%
+ \@EA\gobbleoneargument
+ \else
+ \@EA\firstofoneargument
+ \fi}
+
+% replaces prev
+
+% \long\def\p!doifinstringelse#1#2% ##2 can be {abc}
+% {\long\@EA\def\@EA\pp!doifinstringelse\@EA##\@EA1#1##2##3\war{\unless\if##2@}% expand #1 here
+% \expanded{\pp!doifinstringelse#2#1}@@\war} % expand #2 here
+
+\long\def\p!doifinstringelse#1#2% ##2 can be {abc}
+ {\long\@EA\def\@EA\pp!doifinstringelse\@EA##\@EA1#1##2##3\war{\unless\if##2@}% expand #1 here
+ \expandafter\pp!doifinstringelse\normalexpanded{#2#1}@@\war} % expand #2 here
+
+% faster but at some costs
+%
+% \def\setp!doifinstringelse#1#2% ##2 can be {abc}
+% {\long\expandafter\gdef\csname @diie:#1\@EA\endcsname\@EA##\@EA1#1##2##3\war{\unless\if##2@}}% expand #1 here
+%
+% \long\def\p!doifinstringelse#1#2% ##2 can be {abc}
+% {\ifcsname @diie:#1\endcsname \else
+% \setp!doifinstringelse{#1}{#2}%
+% \fi
+% \csname @diie:#1\expandafter\endcsname\normalexpanded{#2#1}@@\war} % expand #2 here
+
+%D The next alternative proved to be upto twice as fast on
+%D tasks like checking reserved words in pretty verbatim
+%D typesetting! This is mainly due to the fact that passing
+%D (expanded) strings is much slower that passing a macro.
+%D
+%D \starttyping
+%D \doifincsnameelse {substring} {\string} {then ...} {else ...}
+%D \stoptyping
+%D
+%D Where \type{\doifinstringelse} does as much expansion as
+%D possible, the latter alternative does minimal (one level)
+%D expansion.
+
+\long\def\p!doifincsnameelse#1#2%
+ {\long\def\pp!doifincsnameelse##1#1##2##3\war
+ {\unless\if##2@}%
+ \@EA\pp!doifincsnameelse#2#1@@\war}
+
+\long\def\doifincsnameelse#1#2% % #3#4%
+ {\edef\@@@instring{#1}%
+ \@EA\p!doifincsnameelse\@EA{\@@@instring}{#2}% % #3\else#4\fi}
+ \expandafter\firstoftwoarguments
+ \else
+ \expandafter\secondoftwoarguments
+ \fi}
+
+%D \macros
+%D {doifnumberelse}
+%D
+%D The next macro executes a command depending of the outcome
+%D of a test on numerals. This is probably one of the fastest
+%D test possible, exept from a less robust 10||step
+%D \type{\if}||ladder or some tricky \type{\lcode} checking.
+%D
+%D \starttyping
+%D \doifnumberelse {string} {then ...} {else ...}
+%D \stoptyping
+%D
+%D The macro accepts \type{123}, \type{abc}, \type{{}},
+%D \type{\getal} and \type{\the\count...}. This macro is a
+%D rather dirty one.
+
+\long\def\doifnumberelse#1% does not accept counters
+ {\ifcase0\ifcase1#1\or\or\or\or\or\or\or\or\or\else1\fi\space
+ \expandafter\secondoftwoarguments
+ \else
+ \expandafter\firstoftwoarguments
+ \fi}
+
+%D \macros
+%D {makerawcommalist,
+%D rawdoinsetelse,
+%D rawprocesscommalist,
+%D rawprocessaction}
+%D
+%D Some of the commands mentioned earlier are effective but
+%D slow. When one is desperately in need of faster alternatives
+%D and when the conditions are predictable safe, the \type{\raw}
+%D alternatives come into focus. A major drawback is that
+%D they do not take \type{\c!constants} into account, simply
+%D because no expansion is done. This is no problem with
+%D \type{\rawprocesscommalist}, because this macro does not
+%D compare anything. Expandable macros are permitted as search
+%D string.
+%D
+%D \starttyping
+%D \makerawcommalist[string,string,...]\stringlist
+%D \rawdoifinsetelse{string}{string,...}{...}{...}
+%D \rawprocesscommalist[string,string,...]\commando
+%D \rawprocessaction[x][a=>\a,b=>\b,c=>\c]
+%D \stoptyping
+%D
+%D Spaces embedded in the list, for instance after commas,
+%D spoil the search process. The gain in speed depends on the
+%D length of the argument (the longer the argument, the less
+%D we gain).
+
+\def\makerawcommalist[#1]#2% use \processnext ... here
+ {\def\domakerawcommalist##1% we don't expand ##1
+ {\ifx#2\empty
+ \def#2{##1}%
+ \else
+ \@EA\def\@EA#2\@EA{#2,##1}%
+ \fi}%
+ \let#2\empty
+ \processcommalist[#1]\domakerawcommalist}
+
+\def\rawprocesscommaitem#1,#2% #2 eats up preceding space
+ {\if]#1\else
+ \csname\s!next\the\commalevel\endcsname{#1}%
+ \expandafter\rawprocesscommaitem
+ \fi#2}
+
+\unexpanded\def\rawprocesscommalist[#1]#2% accepteert ook [\cs]
+ {\global\advance\commalevel \plusone
+ \expandafter\let\csname\s!next\the\commalevel\endcsname#2%
+ \expandafter\rawprocesscommaitem#1,],% \relax
+ \global\advance\commalevel \minusone }
+
+\def\rawprocesscommacommand[#1]% not really needed
+ {\normalexpanded{\rawprocesscommalist[#1]}}
+
+% \def\rawdoifinsetelse#1#2{\doifinstringelse{,#1,}{,#2,}}
+% \def\rawdoifinset #1#2{\doifinstring {,#1,}{,#2,}}
+
+\def\@@rawempty{,,}
+
+\long\def\rawdoifinsetelse#1%
+ {\edef\@@@instring{,#1,}% expand #1 here
+ \ifx\@@@instring\@@rawempty
+ \@EA\thirdofthreearguments
+ \else
+ \@EA\rawdodoifinsetelse
+ \fi}
+
+\long\def\rawdodoifinsetelse#1%
+ {\p!doifinstringelse\@@@instring{,#1,}%
+ \@EA\firstoftwoarguments
+ \else
+ \@EA\secondoftwoarguments
+ \fi}
+
+\long\def\rawdoifinset#1%
+ {\edef\@@@instring{,#1,}% expand #1 here
+ \ifx\@@@instring\@@rawempty
+ \@EA\gobbletwoarguments
+ \else
+ \@EA\rawdodoifinset
+ \fi}
+
+\long\def\rawdodoifinset#1%%
+ {\p!doifinstringelse\@@@instring{,#1,}%
+ \@EA\firstofoneargument
+ \else
+ \@EA\gobbleoneargument
+ \fi}
+
+%D Some more raw material:
+
+\def\p!rawprocessaction[#1][#2]%
+ {\def\pp!rawprocessaction##1,#1=>##2,##3\war%
+ {\if##3@\else
+ \def\!!processaction{##2}%
+ \fi}%
+ \pp!rawprocessaction,#2,#1=>,@\war}
+
+\def\rawprocessaction[#1]#2[#3]%
+ {\edef\!!stringa{#1}%
+ \edef\!!stringb{undefined}% better \!!undefined
+ \let\!!processaction\!!stringb
+ \ifx\!!stringa\empty
+ \@EA\p!rawprocessaction\@EA[\s!default][#3]%
+ \else
+ \expandafter\p!rawprocessaction\expandafter[\!!stringa][#3]%
+ \ifx\!!processaction\!!stringb
+ \@EA\p!rawprocessaction\@EA[\s!unknown][#3]%
+ \fi
+ \fi
+ \ifx\!!processaction\!!stringb
+ \else
+ \!!processaction
+ \fi}
+
+%D When we process the list \type{a,b,c,d,e}, the raw routine
+%D takes over 30\% less time, when we feed $20+$ character
+%D strings we gain about 20\%. Alternatives which use
+%D \type{\futurelet} perform worse. Part of the speedup is
+%D due to the \type{\let} and \type{\expandafter} in the test.
+
+%D \macros
+%D {dosetvalue,dosetevalue,dosetgvalue,docopyvalue,doresetvalue,
+%D dogetvalue}
+%D
+%D When we are going to do assignments, we have to take
+%D multi||linguality into account. For the moment we keep
+%D things simple and single||lingual.
+%D
+%D \starttyping
+%D \dosetvalue {label} {variable} {value}
+%D \dosetevalue {label} {variable} {value}
+%D \dosetgvalue {label} {variable} {value}
+%D \docopyvalue {to label} {from label} {variable}
+%D \doresetvalue {label} {variable}
+%D \stoptyping
+%D
+%D These macros are in fact auxiliary ones and are not meant
+%D for use outside the assignment macros.
+
+\def\dosetvalue#1#2% #3
+ {\@EA\def\csname#1#2\endcsname} % {#3}}
+
+\def\dosetevalue#1#2% #3
+ {\@EA\edef\csname#1#2\endcsname} % {#3}}
+
+\def\dosetgvalue#1#2% #3
+ {\@EA\gdef\csname#1#2\endcsname} % {#3}}
+
+\def\doresetvalue#1#2%
+ {\@EA\let\csname#1#2\endcsname\empty}
+
+\def\doignorevalue#1#2#3%
+ {\@EA\let\csname#1#2\endcsname\empty}
+
+\def\docopyvalue#1#2#3%
+ {\@EA\def\csname#1#3\endcsname{\csname#2#3\endcsname}}
+
+%D \macros
+%D {doassign,undoassign,doassignempty}
+%D
+%D Assignments are the backbone of \CONTEXT. Abhorred by the
+%D concept of style file hacking, we took a considerable effort
+%D in building a parameterized system. Unfortunately there is a
+%D price to pay in terms of speed. Compared to other packages
+%D and taking the functionality of \CONTEXT\ into account, the
+%D total size of the format file is still very acceptable. Now
+%D how are these assignments done.
+%D
+%D Assignments can be realized with:
+%D
+%D \starttyping
+%D \doassign[label][variable=value]
+%D \undoassign[label][variable=value]
+%D \stoptyping
+%D
+%D and:
+%D
+%D \starttyping
+%D \doassignempty[label][variable=value]
+%D \stoptyping
+%D
+%D Assignments like \type{\doassign} are compatible with:
+%D
+%D \starttyping
+%D \def\labelvariable{value}
+%D \stoptyping
+%D
+%D We do check for the presence of an \type{=} and loudly
+%D complain of it's missed. We will redefine this macro later
+%D on, when a more advanced message mechanism is implemented.
+
+\newif\iferrorisfatal
+
+\def\waitonfatalerror
+ {\iferrorisfatal\wait\fi}
+
+\def\showassignerror#1#2%
+ {\writestatus{setup}{missing or ungrouped '=' after '#1' in line #2}%
+ \waitonfatalerror}
+
+\def\doassignempty[#1][#2=#3]%
+ {\ifcsname#1#2\endcsname\else\dosetvalue{#1}{#2}{#3}\fi}
+
+%D \macros
+%D {getparameters,geteparameters,getgparameters,
+%D forgetparameters}
+%D
+%D Using the assignment commands directly is not our
+%D ideal of user friendly interfacing, so we take some further
+%D steps.
+%D
+%D \starttyping
+%D \getparameters [label] [...=...,...=...]
+%D \forgetparameters [label] [...=...,...=...]
+%D \stoptyping
+%D
+%D Again, the label identifies the category a variable
+%D belongs to. The second argument can be a comma separated
+%D list of assignments.
+%D
+%D \starttyping
+%D \getparameters
+%D [demo]
+%D [alfa=1,
+%D beta=2]
+%D \stoptyping
+%D
+%D is equivalent to
+%D
+%D \starttyping
+%D \def\demoalfa{1}
+%D \def\demobeta{2}
+%D \stoptyping
+%D
+%D
+%D In the pre||multi||lingual stadium \CONTEXT\ took the next
+%D approach. With
+%D
+%D \starttyping
+%D \def\??demo {@@demo}
+%D \def\!!alfa {alfa}
+%D \def\!!beta {beta}
+%D \stoptyping
+%D
+%D calling
+%D
+%D \starttyping
+%D \getparameters
+%D [\??demo]
+%D [\!!alfa=1,
+%D \!!beta=2]
+%D \stoptyping
+%D
+%D lead to:
+%D
+%D \starttyping
+%D \def\@@demoalfa{1}
+%D \def\@@demobeta{2}
+%D \stoptyping
+%D
+%D Because we want to be able to distinguish the \type{!!}
+%D pre||tagged user supplied variables from internal
+%D counterparts, we will introduce a slightly different tag in
+%D the multi||lingual modules. There we will use \type{c!} or
+%D \type{v!}, depending on the context.
+%D
+%D By calling \type{\p!doassign} directly, we save ourselves
+%D some argument passing and gain some speed. Whatever
+%D optimizations we do, this command will always be one of the
+%D bigger bottlenecks.
+%D
+%D The alternative \type{\geteparameters} --- it's funny to
+%D see that this alternative saw the light so lately --- can be
+%D used to do expanded assigments.
+
+\let\currentvalue\empty
+
+\def\getparameters {\dogetparameters\dosetvalue}
+\def\geteparameters {\dogetparameters\dosetevalue}
+\def\getgparameters {\dogetparameters\dosetgvalue}
+\def\forgetparameters{\dogetparameters\doignorevalue}
+
+\let\getexpandedparameters=\geteparameters
+
+\def\dogetparameters#1[#2]#3[#4%
+ {\if\noexpand#4]%
+ \expandafter\gobbleoneargument
+ \else
+ \let\setsomevalue#1%
+ \def\p!dogetparameter{\p!doassign#2}%
+ \expandafter\xdogetparameters
+ \fi#4}
+
+\def\xdogetparameters#1]%
+ {\xprocesscommaitem#1,],\@relax@}
+
+\long\def\xprocesscommaitem#1,#2% #2 takes space before ,
+ {\if,#1,% dirty trick for testing #1=empty
+ \@EA\xprocesscommaitem
+ \else\if]#1%
+ \@EAEAEA\gobbleoneargument
+ \else
+ \p!dogetparameter\@relax@#1==\empty\@relax@
+ \@EAEAEA\xprocesscommaitem
+ \fi\fi#2}
+
+\def\xshowassignerror#1#2#3%
+ {\showassignerror{#2}{\the\inputlineno\space(#1)}}
+
+\def\p!n!doassign#1\@relax@#2=#3=#4#5\@relax@
+ {\ifx\empty#2\empty
+ \@EA\xshowassignerror
+ \else\ifx#4\empty
+ \@EAEAEA\xshowassignerror
+ \else
+ \@EAEAEA\setsomevalue
+ \fi\fi
+ {#1}{#2}{#3}}
+
+\def\p!e!doassign#1\@relax@#2=#3=#4#5\@relax@
+ {\ifx\empty#2\empty
+ \@EA\xshowassignerror
+ \else\ifx#4\empty
+ \@EAEAEA\xshowassignerror
+ \else
+ \ifcsname#1#2\endcsname
+ \@EA\let\@EA\currentvalue\csname#1#2\endcsname
+ \else
+ \let\currentvalue\empty
+ \fi
+ \@EAEAEA\setsomevalue
+ \fi\fi
+ {#1}{#2}{#3}}
+
+\let\p!doassign\p!n!doassign
+
+% \def\doassign [#1][#2]{\p!doassign\dosetvalue #1\@relax@#2==\empty\@relax@}
+% \def\doeassign [#1][#2]{\p!doassign\dosetevalue #1\@relax@#2==\empty\@relax@}
+% \def\undoassign[#1][#2]{\p!doassign\doresetvalue#1\@relax@#2==\empty\@relax@}
+
+\def\doassign [#1][#2]{\let\setsomevalue\dosetvalue \p!doassign#1\@relax@#2==\empty\@relax@}
+\def\doeassign [#1][#2]{\let\setsomevalue\dosetevalue \p!doassign#1\@relax@#2==\empty\@relax@}
+\def\undoassign[#1][#2]{\let\setsomevalue\doresetvalue\p!doassign#1\@relax@#2==\empty\@relax@}
+
+%D \macros
+%D {processassignmentlist,processassignmentcommand,
+%D startprocessassignmentlist,startprocessassignmentcommand}
+%D
+%D For Wolfgang:
+%D
+%D \starttyping
+%D \def\showpair#1#2{key:#1, value:#2\par}
+%D \processassignmentlist[a=1,b=2]\showpair
+%D \stoptyping
+%D
+%D We can optimize this one if needed but it's not a core macro so hardly
+%D worth the trouble and tokens.
+
+\def\processassignmentlist[#1]#2% #2 == \command{key}{value]
+ {\def\doprocessassignmententry##1{#2}% {##2}{##3} % namespace is ignored
+ \dogetparameters\doprocessassignmententry[][#1]}
+
+\def\processassignmentcommand[#1]%
+ {\normalexpanded{\noexpand\processassignmentlist[#1]}}
+
+\long\def\startprocessassignmentlist[#1]#2\stopprocessassignmentlist
+ {\long\def\currentassignmentlistcommand##1##2{\def\currentassignmentlistkey{##1}\def\currentassignmentlistvalue{##2}#2}%
+ \processassignmentlist[#1]\currentassignmentlistcommand}
+
+\long\def\startprocessassignmentcommand[#1]#2\stopprocessassignmentcommand
+ {\long\def\currentassignmentlistcommand##1##2{\def\currentassignmentlistkey{##1}\def\currentassignmentlistvalue{##2}#2}%
+ \normalexpanded{\noexpand\processassignmentlist[#1]}\currentassignmentlistcommand}
+
+%D \macros{currentvalue}
+%D
+%D Just in case a \type{\getparameter} argument itself ends up
+%D inside a \type{\write} or other expandable location, our
+%D new macro needs a default value.
+%D
+%D \starttyping
+%D \getparameters[xxx][aaa=bbb]\par
+%D \getparameters[xxx][=bbb]\par
+%D \getparameters[xxx][aaa=]\par
+%D \getparameters[xxx][=]\par
+%D \getparameters[xxx][aaa]\par
+%D \stoptyping
+
+%D \macros {expandparameters}
+%D
+%D Example usage:
+%D
+%D \startbuffer
+%D \getparameters[taco][name=taco]
+%D \convertcommand\taconame\to\ascii \ascii
+%D \expandparameters \getparameters[taco][name=\currentvalue\space hoekwater]
+%D \convertcommand\taconame\to\ascii \ascii
+%D \getparameters[taco][name=\currentvalue\space hoekwater]
+%D \convertcommand\taconame\to\ascii \ascii
+%D \stopbuffer
+%D
+%D \typebuffer
+%D \startlines
+%D \getbuffer
+%D \stoplines
+
+%D Here we hook in the code (beware, this is the optimized get **):
+
+\def\xdoget@n@parameters#1]%
+ {\xprocesscommaitem#1,],\@relax@}
+
+\def\xdoget@e@parameters#1]%
+ {\let\dosetnvalue\dosetvalue
+ \let\dosetvalue\dosetevalue
+ \let\p!doassign\p!e!doassign
+ \xprocesscommaitem#1,],\@relax@
+ \let\p!doassign\p!n!doassign
+ \let\dosetvalue\dosetnvalue
+ \let\xdogetparameters\xdoget@n@parameters
+ \let\currentvalue\empty}
+
+\let\xdogetparameters\xdoget@n@parameters % **
+
+\def\expandparameters{\let\xdogetparameters\xdoget@e@parameters}
+
+%D \macros
+%D {getemptyparameters}
+%D
+%D Sometimes we explicitly want variables to default to an
+%D empty string, so we welcome:
+%D
+%D \starttyping
+%D \getemptyparameters [label] [...=...,...=...]
+%D \stoptyping
+
+\def\getemptyparameters[#1]#2[#3]%
+ {\def\p!dogetemptyparameter##1{\doassignempty[#1][##1]}%
+ \processcommalist[#3]\p!dogetemptyparameter}
+
+%D \macros
+%D {copyparameters}
+%D
+%D Some \CONTEXT\ commands take their default setups from
+%D others. All commands that are able to provide backgounds
+%D or rules around some content, for instance default to the
+%D standard command for ruled boxes. Is situations like this
+%D we can use:
+%D
+%D \starttyping
+%D \copyparameters [to-label] [from-label] [name1,name2,...]
+%D \stoptyping
+%D
+%D For instance
+%D
+%D \starttyping
+%D \copyparameters
+%D [internal][external]
+%D [alfa,beta]
+%D \stoptyping
+%D
+%D Leads to:
+%D
+%D \starttyping
+%D \def\internalalfa {\externalalfa}
+%D \def\internalbeta {\externalbeta}
+%D \stoptyping
+%D
+%D By using \type{\docopyvalue} we've prepared this command
+%D for use in a multi||lingual environment.
+
+\def\copyparameters[#1]#2[#3]#4[#5]%
+ {\doifnot{#1}{#3}
+ {\def\docopyparameter{\docopyvalue{#1}{#3}}% ##1
+ \processcommalist[#5]\docopyparameter}}
+
+%D \macros
+%D {ifparameters,checkparameters}
+%D
+%D A slightly different one is \type{\checkparameters}, which
+%D also checks on the presence of a~\type{=}.
+%D
+%D The boolean \type{\ifparameters} can be used afterwards.
+%D Combining both in one \type{\if}||macro would lead to
+%D problems with nested \type{\if}'s.
+%D
+%D \starttyping
+%D \checkparameters[argument]
+%D \stoptyping
+
+\newif\ifparameters
+
+\def\p!checkparameters#1=#2#3\war%
+ {\if#2@\parametersfalse\else\parameterstrue\fi}
+
+\def\checkparameters[#1]%
+ {\p!checkparameters#1=@@\war}
+
+%D \macros
+%D {getfromcommalist,getfromcommacommand,
+%D commalistelement,
+%D getcommalistsize,getcommacommandsize}
+%D
+%D It's possible to get an element from a commalist or a
+%D command representing a commalist.
+%D
+%D \starttyping
+%D \getfromcommalist [string] [n]
+%D \getfromcommacommand [string,\strings,string,...] [n]
+%D \stoptyping
+%D
+%D The difference betwee the two of them is the same as the
+%D difference between \type{\processcomma...}. The found string
+%D is stored in \type{\commalistelement}.
+%D
+%D We can calculate the size of a comma separated list by
+%D using:
+%D
+%D \starttyping
+%D \getcommalistsize [string,string,...]
+%D \getcommacommandsize [string,\strings,string,...]
+%D \stoptyping
+%D
+%D Afterwards, the length is available in the macro
+%D \type{\commalistsize} (not a \COUNTER).
+
+\newcount\commalistcounter
+
+\def\commalistsize{0}
+
+\def\p!dogetcommalistsize#1%
+ {\advance\commalistcounter\plusone}
+
+\def\getcommalistsize#1]% don't loose [{#1}]
+ {\commalistcounter\zerocount
+ \processcommalist#1]\p!dogetcommalistsize % was [{#1}]
+ \edef\commalistsize{\the\commalistcounter}}
+
+\def\getcommacommandsize[#1]%
+ {\edef\commacommand{#1}%
+ \scratchtoks\expandafter{\expandafter[\commacommand]}%
+ \expandafter\getcommalistsize\the\scratchtoks }
+
+% to be tested first
+%
+% \def\getcommacommandsize[#1]%
+% {\expanded{\getcommalistsize[#1]}}
+
+% \def\p!dogetfromcommalist#1%
+% {\advance\commalistcounter \minusone
+% \ifcase\commalistcounter
+% \def\commalistelement{#1}%
+% \begingroup\def\doprocesscommaitem##1]{\endgroup}%
+% \fi}
+
+\def\p!dogetfromcommalist#1%
+ {\advance\commalistcounter \minusone
+ \ifcase\commalistcounter
+ \def\commalistelement{#1}%
+ \expandafter\quitcommalist
+ \fi}
+
+\unexpanded\def\getfromcommalist[#1]#2[#3]%
+ {\let\commalistelement\empty
+ \commalistcounter#3\relax
+ \processcommalist[#1]\p!dogetfromcommalist}
+
+\unexpanded\def\getfromcommacommand[#1]%
+ {\normalexpanded{\getfromcommalist[#1]}}
+
+%D Watertight (and efficient) solutions are hard to find, due
+%D to the handling of braces during parameters passing and
+%D scanning. Nevertheless:
+%D
+%D \startbuffer
+%D \def\dosomething#1{(#1=\commalistsize) }
+%D
+%D \getcommalistsize [\hbox{$a,b,c,d,e,f$}] \dosomething 1
+%D \getcommalistsize [{a,b,c,d,e,f}] \dosomething 1
+%D \getcommalistsize [{a,b,c},d,e,f] \dosomething 4
+%D \getcommalistsize [a,b,{c,d,e},f] \dosomething 4
+%D \getcommalistsize [a{b,c},d,e,f] \dosomething 4
+%D \getcommalistsize [{a,b}c,d,e,f] \dosomething 4
+%D \getcommalistsize [] \dosomething 0
+%D \getcommalistsize [{[}] \dosomething 1
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D reports:
+%D
+%D \getbuffer
+
+%D \macros
+%D {dogetcommalistelement,dogetcommacommandelement}
+%D
+%D For low level (fast) purposes, we can also use the next
+%D alternative, which can handle 8~elements at most.
+%D
+%D \starttyping
+%D \dogetcommalistelement1\from a,b,c\to\commalistelement
+%D \stoptyping
+
+\def\dodogetcommalistelement#1\from#2,#3,#4,#5,#6,#7,#8\to#9%
+ {\edef#9{\ifcase#1\relax\or#2\or#3\or#4\or#5\or#6\or#7\or#8\fi}}
+
+\def\dogetcommalistelement#1\from#2\to%
+ {\dodogetcommalistelement#1\from#2,,,,,,\to}
+
+% check sources
+
+\def\dogetcommacommandelement#1\from#2\to%
+ {\@EA\dodogetcommalistelement\@EA#1\@EA\from#2,,,,,,\to}
+
+%D \macros
+%D {dosingleargument,dodoubleargument,dotripleargument,
+%D doquadrupleargument,doquintupleargument,dosixtupleargument,
+%D doseventupleargument}
+%D
+%D When working with delimited arguments, spaces and
+%D lineendings can interfere. The next set of macros uses
+%D \TEX' internal scanner for grabbing everything between
+%D arguments. Forgive me the funny names.
+%D
+%D \starttyping
+%D \dosingleargument\commando = \commando[#1]
+%D \dodoubleargument\commando = \commando[#1][#2]
+%D \dotripleargument\commando = \commando[#1][#2][#3]
+%D \doquadrupleargument\commando = \commando[#1][#2][#3][#4]
+%D \doquintupleargument\commando = \commando[#1][#2][#3][#4][#5]
+%D \dosixtupleargument\commando = \commando[#1][#2][#3][#4][#5][#6]
+%D \doseventupleargument\command = \commando[#1][#2][#3][#4][#5][#6][#7]
+%D \stoptyping
+%D
+%D These macros are used in the following way:
+%D
+%D \starttyping
+%D \def\dosetupsomething[#1][#2]%
+%D {... #1 ... #2 ...}
+%D
+%D \def\setupsomething
+%D {\dodoubleargument\dosetupsomething}
+%D \stoptyping
+%D
+%D The implementation can be surprisingly simple and needs no
+%D further explanation, like:
+%D
+%D \starttyping
+%D \def\dosingleargument#1[#2]%
+%D {#1[#2]}
+%D \def\dotripleargument#1[#2]#3[#4]#5[#6]%
+%D {#1[#2][#4][#6]}
+%D \def\doquintupleargument#1%
+%D {\def\dodoquintupleargument[##1]##2[##3]##4[##5]##6[##7]##8[##9]%
+%D {#1[##1][##3][##5][##7][##9]}%
+%D \dodoquintupleargument}
+%D \stoptyping
+%D
+%D Because \TEX\ accepts 9~arguments at most, we have to use
+%D two||step solution when getting five or more arguments.
+%D
+%D When developing more and more of the real \CONTEXT, we
+%D started using some alternatives that provided empty
+%D arguments (in fact optional ones) whenever the user failed
+%D to supply them. Because this more complicated macros enable
+%D us to do some checking, we reimplemented the non||empty
+%D ones.
+
+\def\dosingleargument {\let\expectedarguments\plusone \dosingleempty }
+\def\dodoubleargument {\let\expectedarguments\plustwo \dodoubleempty }
+\def\dotripleargument {\let\expectedarguments\plusthree \dotripleempty }
+\def\doquadrupleargument {\let\expectedarguments\plusfour \doquadrupleempty }
+\def\doquintupleargument {\let\expectedarguments\plusfive \doquintupleempty }
+\def\dosixtupleargument {\let\expectedarguments\plussix \dosixtupleempty }
+\def\doseventupleargument{\let\expectedarguments\plusseven \doseventupleempty}
+
+%D \macros
+%D {iffirstagument,ifsecondargument,ifthirdargument,
+%D iffourthargument,iffifthargument,ifsixthargument,
+%D ifseventhargument}
+%D
+%D We use some signals for telling the calling macros if all
+%D wanted arguments are indeed supplied by the user.
+
+\newif\iffirstargument
+\newif\ifsecondargument
+\newif\ifthirdargument
+\newif\iffourthargument
+\newif\iffifthargument
+\newif\ifsixthargument
+\newif\ifseventhargument
+
+%D \macros
+%D {dosingleempty,dodoubleempty,dotripleempty,
+%D doquadrupleempty,doquintupleempty,dosixtupeempty,
+%D doseventupleempty}
+%D
+%D The empty argument supplying macros mentioned before, look
+%D like:
+%D
+%D \starttyping
+%D \dosingleempty \command
+%D \dodoubleempty \command
+%D \dotripleempty \command
+%D \doquadrupleempty \command
+%D \doquintupleempty \command
+%D \dosixtupleempty \command
+%D \doseventupleempty\command
+%D \stoptyping
+%D
+%D So \type{\dodoubleempty} leades to:
+%D
+%D \starttyping
+%D \command[#1][#2]
+%D \command[#1][]
+%D \command[][]
+%D \stoptyping
+%D
+%D Depending of the generousity of the user. Afterwards one can
+%D use the \type{\if...argument} boolean. For novice: watch
+%D the stepwise doubling of \type{#}'s
+
+% idea: \ignorespaces afterwards
+
+\chardef\noexpectedarguments=0
+\chardef\expectedarguments =0
+
+\def\showargumenterror#1#2%
+ {\writestatus{systems}{\number#1 argument(s) expected in line #2}}
+
+\def\doshowargumenterror
+ {\ifnum\expectedarguments>\noexpectedarguments
+ \showargumenterror{\number\expectedarguments}{\number\inputlineno}%
+ \fi
+ \noshowargumenterror}
+
+\def\noshowargumenterror
+ {\let\expectedarguments\noexpectedarguments}
+
+\long\def\dogetargument#1#2#3#4%
+ {\let\charactertoken=#1%
+ \def\!!stringa{\noshowargumenterror#3\dodogetargument}%
+ \def\!!stringb{\doshowargumenterror#4\dodogetargument#1#2}%
+ \futurelet\nexttoken\inspectnextcharacter}
+
+\def\getsingleempty#1#2#3%
+ {\def\dodogetargument%
+ {#3}%
+ \dogetargument#1#2\firstargumenttrue\firstargumentfalse}
+
+\def\getdoubleempty#1#2#3%
+ {\def\dodogetargument#1##1#2%
+ {\def\dodogetargument%
+ {#3#1{##1}#2}%
+ \dogetargument#1#2\secondargumenttrue\secondargumentfalse}%
+ \dogetargument#1#2\firstargumenttrue\firstargumentfalse}
+
+\def\gettripleempty#1#2#3%
+ {\def\dodogetargument#1##1#2%
+ {\def\dodogetargument#1####1#2%
+ {\def\dodogetargument%
+ {#3#1{##1}#2%
+ #1{####1}#2}%
+ \dogetargument#1#2\thirdargumenttrue\thirdargumentfalse}%
+ \dogetargument#1#2\secondargumenttrue\secondargumentfalse}%
+ \dogetargument#1#2\firstargumenttrue\firstargumentfalse}
+
+\def\getquadrupleempty#1#2#3%
+ {\def\dodogetargument#1##1#2%
+ {\def\dodogetargument#1####1#2%
+ {\def\dodogetargument#1########1#2%
+ {\def\dodogetargument%
+ {#3#1{##1}#2%
+ #1{####1}#2%
+ #1{########1}#2}%
+ \dogetargument#1#2\fourthargumenttrue\fourthargumentfalse}%
+ \dogetargument#1#2\thirdargumenttrue\thirdargumentfalse}%
+ \dogetargument#1#2\secondargumenttrue\secondargumentfalse}%
+ \dogetargument#1#2\firstargumenttrue\firstargumentfalse}
+
+\def\getquintupleempty#1#2#3%
+ {\def\dodogetargument#1##1#2%
+ {\def\dodogetargument#1####1#2%
+ {\def\dodogetargument#1########1#2%
+ {\def\dodogetargument#1################1#2%
+ {\def\dodogetargument%
+ {#3#1{##1}#2%
+ #1{####1}#2%
+ #1{########1}#2%
+ #1{################1}#2}%
+ \dogetargument#1#2\fifthargumenttrue\fifthargumentfalse}%
+ \dogetargument#1#2\fourthargumenttrue\fourthargumentfalse}%
+ \dogetargument#1#2\thirdargumenttrue\thirdargumentfalse}%
+ \dogetargument#1#2\secondargumenttrue\secondargumentfalse}%
+ \dogetargument#1#2\firstargumenttrue\firstargumentfalse}
+
+\def\getsixtupleempty#1#2#3%
+ {\def\dodogetargument#1##1#2%
+ {\def\dodogetargument#1####1#2%
+ {\def\dodogetargument#1########1#2%
+ {\def\dodogetargument#1################1#2%
+ {\def\dodogetargument#1################################1#2%
+ {\def\dodogetargument%
+ {#3#1{##1}#2%
+ #1{####1}#2%
+ #1{########1}#2%
+ #1{################1}#2%
+ #1{################################1}#2}%
+ \dogetargument#1#2\sixthargumenttrue\sixthargumentfalse}%
+ \dogetargument#1#2\fifthargumenttrue\fifthargumentfalse}%
+ \dogetargument#1#2\fourthargumenttrue\fourthargumentfalse}%
+ \dogetargument#1#2\thirdargumenttrue\thirdargumentfalse}%
+ \dogetargument#1#2\secondargumenttrue\secondargumentfalse}%
+ \dogetargument#1#2\firstargumenttrue\firstargumentfalse}
+
+\def\getseventupleempty#1#2#3%
+ {\def\dodogetargument#1##1#2%
+ {\def\dodogetargument#1####1#2%
+ {\def\dodogetargument#1########1#2%
+ {\def\dodogetargument#1################1#2%
+ {\def\dodogetargument#1################################1#2%
+ {\def\dodogetargument#1################################%
+ ################################1#2%
+ {\def\dodogetargument%
+ {#3#1{##1}#2%
+ #1{####1}#2%
+ #1{########1}#2%
+ #1{################1}#2%
+ #1{################################1}#2%
+ #1{################################%
+ ################################1}#2}%
+ \dogetargument#1#2\seventhargumenttrue\seventhargumentfalse}%
+ \dogetargument#1#2\sixthargumenttrue\sixthargumentfalse}%
+ \dogetargument#1#2\fifthargumenttrue\fifthargumentfalse}%
+ \dogetargument#1#2\fourthargumenttrue\fourthargumentfalse}%
+ \dogetargument#1#2\thirdargumenttrue\thirdargumentfalse}%
+ \dogetargument#1#2\secondargumenttrue\secondargumentfalse}%
+ \dogetargument#1#2\firstargumenttrue\firstargumentfalse}
+
+\def\dosingleempty {\getsingleempty []}
+\def\dodoubleempty {\getdoubleempty []}
+\def\dotripleempty {\gettripleempty []}
+\def\doquadrupleempty {\getquadrupleempty []}
+\def\doquintupleempty {\getquintupleempty []}
+\def\dosixtupleempty {\getsixtupleempty []}
+\def\doseventupleempty{\getseventupleempty[]}
+
+%D Because some of these are called quite often, we will now
+%D replace the more general version by alternatives tuned for
+%D speed.
+
+\def\dosingleempty#1% we can make dedicated doifnextoptional's
+ {\noshowargumenterror % \relax % prevents lookahead, brr
+ \doifnextoptionalelse
+ {\firstargumenttrue#1}%
+ {\dosinglefakeempty#1}}
+
+\def\dodoubleempty#1%
+ {\noshowargumenterror % \relax % prevents lookahead, brr
+ \doifnextoptionalelse
+ {\dodoubletestempty#1}%
+ {\dodoublefakeempty#1}}
+
+\def\dotripleempty#1%
+ {\noshowargumenterror % \relax % prevents lookahead, brr
+ \doifnextoptionalelse
+ {\dotripletestempty#1}%
+ {\dotriplefakeempty#1}}
+
+\def\dosinglefakeempty#1%
+ {\firstargumentfalse#1[]}
+
+\def\dodoublefakeempty#1%
+ {\firstargumentfalse\secondargumentfalse#1[][]}
+
+\def\dotriplefakeempty#1%
+ {\firstargumentfalse\secondargumentfalse\thirdargumentfalse#1[][][]}
+
+\long\def\dodoubletestempty#1[#2]%
+ {\firstargumenttrue
+ \doifnextoptionalelse
+ {\secondargumenttrue #1[{#2}]}%
+ {\secondargumentfalse#1[{#2}][]}}
+
+\long\def\dotripletestempty#1[#2]%
+ {\firstargumenttrue
+ \doifnextoptionalelse
+ {\dotripletestemptyx #1[{#2}]}%
+ {\secondargumentfalse
+ \thirdargumentfalse #1[{#2}][][]}}
+
+\long\def\dotripletestemptyx#1[#2][#3]%
+ {\secondargumenttrue
+ \doifnextoptionalelse
+ {\thirdargumenttrue #1[{#2}][{#3}]}%
+ {\thirdargumentfalse#1[{#2}][{#3}][]}}
+
+%D \macros
+%D {strippedcsname}
+%D
+%D The next macro can be very useful when using \type{\csname}
+%D like in:
+%D
+%D \starttyping
+%D \csname if\strippedcsname\something\endcsname
+%D \stoptyping
+%D
+%D This expands to \type{\ifsomething}.
+
+\def\strippedcsname
+ {\expandafter\gobbleoneargument\string}
+
+%D \macros
+%D {complexorsimple,complexorsimpleempty}
+%D
+%D Setups can be optional. A command expecting a setup is
+%D prefixed by \type{\complex}, a command without one gets the
+%D prefix \type{\simple}. Commands like this can be defined by:
+%D
+%D \starttyping
+%D \complexorsimple\command
+%D \stoptyping
+%D
+%D When \type{\command} is followed by a \type{[setup]}, then
+%D
+%D \starttyping
+%D \complexcommand [setup]
+%D \stoptyping
+%D
+%D executes, else we get
+%D
+%D \starttyping
+%D \simplecommand
+%D \stoptyping
+%D
+%D An alternative for \type{\complexorsimple} is:
+%D
+%D \starttyping
+%D \complexorsimpleempty {command}
+%D \stoptyping
+%D
+%D Depending on the presence of \type{[setup]}, this one
+%D leads to one of:
+%D
+%D \starttyping
+%D \complexcommando [setup]
+%D \complexcommando []
+%D \stoptyping
+%D
+%D Many \CONTEXT\ commands started as complex or simple ones,
+%D but changed into more versatile (more object oriented) ones
+%D using the \type{\get..argument} commands.
+
+\def\complexorsimple#1%
+ {% \relax % prevents lookahead, brrr
+ \doifnextoptionalelse
+ {\firstargumenttrue \csname\s!complex\strippedcsname#1\endcsname}
+ {\firstargumentfalse\csname\s!simple \strippedcsname#1\endcsname}}
+
+\def\complexorsimpleempty#1%
+ {% \relax % prevents lookahead, brrr
+ \doifnextoptionalelse
+ {\firstargumenttrue \csname\s!complex\strippedcsname#1\endcsname}
+ {\firstargumentfalse\csname\s!complex\strippedcsname#1\endcsname[]}}
+
+%D \macros
+%D {definecomplexorsimple,definecomplexorsimpleempty}
+%D
+%D The previous commands are used that often that we found it
+%D worthwile to offer two more alternatives. Watch the build
+%D in protection.
+
+\def\docomplexorsimple#1#2%
+ {\doifnextoptionalelse{\firstargumenttrue#1}{\firstargumentfalse#2}}
+
+\def\docomplexorsimpleempty#1%
+ {\doifnextoptionalelse{\firstargumenttrue#1}{\firstargumentfalse#1[]}}
+
+\def\definecomplexorsimple#1%
+ {\unexpanded\edef#1%
+ {\noexpand\docomplexorsimple
+ \@EA\noexpand\csname\s!complex\strippedcsname#1\endcsname
+ \@EA\noexpand\csname\s!simple \strippedcsname#1\endcsname}}
+
+\def\definecomplexorsimpleempty#1%
+ {\unexpanded\edef#1%
+ {\noexpand\docomplexorsimpleempty
+ \@EA\noexpand\csname\s!complex\strippedcsname#1\endcsname}}
+
+%D These commands are called as:
+%D
+%D \starttyping
+%D \definecomplexorsimple\command
+%D \stoptyping
+%D
+%D Of course, we must have available
+%D
+%D \starttyping
+%D \def\complexcommand[#1]{...}
+%D \def\simplecommand {...}
+%D \stoptyping
+%D
+%D Using this construction saves a few string now and then.
+
+%D \macros
+%D {dosinglegroupempty,dodoublegroupempty,dotriplegroupempty,
+%D doquadruplegroupempty, doquintuplegroupempty}
+%D
+%D We've already seen some commands that take care of
+%D optional arguments between \type{[]}. The next two commands
+%D handle the ones with \type{{}}. They are called as:
+%D
+%D \starttyping
+%D \dosinglegroupempty \ineedONEargument
+%D \dodoublegroupempty \ineedTWOarguments
+%D \dotriplegroupempty \ineedTHREEarguments
+%D \doquadruplegroupempty \ineedFOURarguments
+%D \doquintuplegroupempty \ineedFIVEarguments
+%D \stoptyping
+
+%D We can add additional definitions later when we have defined
+%D \type {\appendtoks}.
+
+\def \permitspacesbetweengroups{\let\@@permitspacesbetweengroups\zerocount}
+\def\dontpermitspacesbetweengroups{\let\@@permitspacesbetweengroups\plusone}
+
+\dontpermitspacesbetweengroups
+
+%D We can avoid the nasty if handling in \type {syst-gen} by splitting
+%D the lot in pieces so that we have no nested \type {\nextarguments}
+%D potentially being an \type {conditional} token. Okay, these macros
+%D are not called that often but it saves crap when tracing.
+
+% \def\dogetgroupargument#1#2%
+% {\let\dogroupargumentyes#1%
+% \let\dogroupargumentnop#2%
+% \futurelet\nextargument\dodogetgroupargument}
+
+\def\dodogetgroupargument
+ {\ifx\nextargument\bgroup
+ \expandafter\dodogetgroupargumentA
+ \else
+ \expandafter\dodogetgroupargumentB
+ \fi}
+
+\def\dodogetgroupargumentA
+ {\noshowargumenterror
+ \dogroupargumentyes\dodogetargument}
+
+% \def\dodogetgroupargumentB
+% {\ifcase\@@permitspacesbetweengroups
+% \expandafter\dodogetgroupargumentC
+% \else
+% \expandafter\dodogetgroupargumentD
+% \fi}
+
+% \def\dodogetgroupargumentC
+% {\ifx\nextargument\lineending
+% \expandafter\dodogetgroupargumentE
+% \else
+% \expandafter\dodogetgroupargumentF
+% \fi}
+
+\def\dodogetgroupargumentB
+ {\ifcase\@@permitspacesbetweengroups
+ \expandafter\dodogetgroupargumentF
+ \else
+ \expandafter\dodogetgroupargumentD
+ \fi}
+
+\def\dodogetgroupargumentD
+ {\doshowargumenterror
+ \dogroupargumentnop\dodogetargument{}}
+
+% \def\dodogetgroupargumentE
+% {\begingroup\def\\ {\endgroup\dogetgroupargument\dogroupargumentyes\dogroupargumentnop}\\}
+
+\begingroup
+ \def\\ {\dogetgroupargument\dogroupargumentyes\dogroupargumentnop}
+ \global\let\dodogetgroupargumentE\\
+\endgroup
+
+\def\dodogetgroupargumentF
+ {\ifx\nextargument\blankspace
+ \expandafter\dodogetgroupargumentE % G
+ \else
+ \expandafter\dodogetgroupargumentD % H
+ \fi}
+
+\def\dogetgroupargument#1#2%
+ {\let\dogroupargumentyes#1%
+ \let\dogroupargumentnop#2%
+ \futurelet\nextargument\dodogetgroupargument}
+
+\def\dosinglegroupempty#1%
+ {\def\dodogetargument%
+ {\dontpermitspacesbetweengroups
+ #1}%
+ \dogetgroupargument\firstargumenttrue\firstargumentfalse}
+
+\def\dodoublegroupempty#1%
+ {\def\dodogetargument##1%
+ {\def\dodogetargument%
+ {\dontpermitspacesbetweengroups
+ #1{##1}}%
+ \dogetgroupargument\secondargumenttrue\secondargumentfalse}%
+ \dogetgroupargument\firstargumenttrue\firstargumentfalse}
+
+\def\dotriplegroupempty#1%
+ {\def\dodogetargument##1%
+ {\def\dodogetargument####1%
+ {\def\dodogetargument%
+ {\dontpermitspacesbetweengroups
+ #1{##1}{####1}}%
+ \dogetgroupargument\thirdargumenttrue\thirdargumentfalse}%
+ \dogetgroupargument\secondargumenttrue\secondargumentfalse}%
+ \dogetgroupargument\firstargumenttrue\firstargumentfalse}
+
+\def\doquadruplegroupempty#1%
+ {\def\dodogetargument##1%
+ {\def\dodogetargument####1%
+ {\def\dodogetargument########1%
+ {\def\dodogetargument%
+ {\dontpermitspacesbetweengroups
+ #1{##1}{####1}{########1}}%
+ \dogetgroupargument\fourthargumenttrue\fourthargumentfalse}%
+ \dogetgroupargument\thirdargumenttrue\thirdargumentfalse}%
+ \dogetgroupargument\secondargumenttrue\secondargumentfalse}%
+ \dogetgroupargument\firstargumenttrue\firstargumentfalse}
+
+\def\doquintuplegroupempty#1%
+ {\def\dodogetargument##1%
+ {\def\dodogetargument####1%
+ {\def\dodogetargument########1%
+ {\def\dodogetargument################1%
+ {\def\dodogetargument%
+ {\dontpermitspacesbetweengroups
+ #1{##1}{####1}{########1}{################1}}%
+ \dogetgroupargument\fifthargumenttrue\fifthargumentfalse}%
+ \dogetgroupargument\fourthargumenttrue\fourthargumentfalse}%
+ \dogetgroupargument\thirdargumenttrue\thirdargumentfalse}%
+ \dogetgroupargument\secondargumenttrue\secondargumentfalse}%
+ \dogetgroupargument\firstargumenttrue\firstargumentfalse}
+
+%D These macros can explictly take care of spaces, which means
+%D that the next definition and calls are valid:
+%D
+%D \starttyping
+%D \def\test#1#2#3{[#1#2#3]}
+%D
+%D \dotriplegroupempty\test {a}{b}{c}
+%D \dotriplegroupempty\test {a}{b}
+%D \dotriplegroupempty\test {a}
+%D \dotriplegroupempty\test
+%D \dotriplegroupempty\test {a} {b} {c}
+%D \dotriplegroupempty\test {a} {b}
+%D \dotriplegroupempty\test
+%D {a}
+%D {b}
+%D \stoptyping
+%D
+%D And alike.
+
+%D \macros
+%D {firstofoneargument, firstoftwoarguments, firstofthreearguments
+%D secondoftwoarguments, secondofthreearguments,
+%D thirdofthreearguments}
+%D
+%D The next six macros (dedicated to Taco) can conveniently
+%D used to select arguments. Their names explain their
+%D functionality.
+
+\long\def\firstofoneargument #1{#1}
+
+\long\def\firstoftwoarguments #1#2{#1}
+\long\def\secondoftwoarguments #1#2{#2}
+
+\long\def\firstofthreearguments #1#2#3{#1}
+\long\def\secondofthreearguments #1#2#3{#2}
+\long\def\thirdofthreearguments #1#2#3{#3}
+
+\long\def\firstoffourarguments #1#2#3#4{#1}
+\long\def\secondoffourarguments #1#2#3#4{#2}
+\long\def\thirdoffourarguments #1#2#3#4{#3}
+\long\def\fourthoffourarguments #1#2#3#4{#4}
+
+\long\def\firstoffivearguments #1#2#3#4#5{#1}
+\long\def\secondoffivearguments #1#2#3#4#5{#2}
+\long\def\thirdoffivearguments #1#2#3#4#5{#3}
+\long\def\fourthoffivearguments #1#2#3#4#5{#4}
+\long\def\fifthoffivearguments #1#2#3#4#5{#5}
+
+\long\def\firstofsixarguments #1#2#3#4#5#6{#1}
+\long\def\secondofsixarguments#1#2#3#4#5#6{#2}
+\long\def\thirdofsixarguments #1#2#3#4#5#6{#3}
+\long\def\fourthofsixarguments#1#2#3#4#5#6{#4}
+\long\def\fifthofsixarguments #1#2#3#4#5#6{#5}
+\long\def\sixthofsixarguments #1#2#3#4#5#6{#6}
+
+%D \macros
+%D {globalletempty,letempty,letvalueempty,letgvalueempty}
+%D
+%D Trivial:
+
+\def\letempty #1{\let#1\empty}
+\def\globalletempty#1{\global\let#1\empty}
+
+\def\letvalueempty #1{\expandafter\let\csname#1\endcsname\empty}
+\def\letgvalueempty#1{\global\expandafter\let\csname#1\endcsname\empty}
+
+%D \macros
+%D {wait}
+%D
+%D The next macro hardly needs explanation. Because no
+%D nesting is to be expected, we can reuse \type{\wait} within
+%D \type{\wait} itself.
+
+\def\wait
+ {\begingroup
+ \read16 to \wait
+ \endgroup}
+
+%D \macros
+%D {writestring,writeline,writebanner,
+%D writestatus,statuswidth,normalwritestatus}
+%D
+%D Maybe one didn't notice, but we've already introduced a
+%D macro for showing messages. In the multi||lingual modules,
+%D we will also introduce a mechanism for message passing. For
+%D the moment we stick to the core macros:
+%D
+%D \starttyping
+%D \writestring {string}
+%D \writeline
+%D \writestatus {category} {message}
+%D \stoptyping
+%D
+%D Messages are formatted. One can provide the maximum with
+%D of the identification string with the macro \type
+%D {\statuswidth}.
+
+\chardef\statuswidth=15
+\chardef\statuswrite=16
+
+\ifdefined\writestring \else
+
+ \newtoks\everywritestring
+
+ \def\writedirect {\immediate\write\statuswrite}
+ \def\writeline {\writedirect{}}
+ \def\writestring#1{\begingroup\the\everywritestring\writedirect{#1}\endgroup}
+
+\fi
+
+\def\normalwritestatus#1#2%
+ {\writestring{\expandafter\dosplitstatus\expandafter\statuswidth#1%
+ \space\space\space\space\space\space\space
+ \space\space\space\space\space\space\space
+ \space\space\space\space\space\space\end
+ \space:\space#2}}
+
+\def\dosplitstatus#1#2%
+ {\ifcase#1 \expandafter\nosplitstatus\fi#2%
+ \expandafter\dosplitstatus\expandafter{\the\numexpr#1+\minusone\relax}}
+
+\def\nosplitstatus#1\end
+ {}
+
+%D \macros
+%D {debuggerinfo}
+%D
+%D For debugging purposes we can enhance macros with the
+%D next alternative. Here \type{debuggerinfo} stands for both
+%D a macro accepting two arguments and a boolean (in fact a
+%D few macro's too).
+
+\newif\ifdebuggerinfo
+
+\def\debuggerinfo#1#2%
+ {\ifdebuggerinfo
+ \writestatus{debugger}{#1:: #2}%
+ \fi}
+
+\ifdefined\writestatus \else \let\writestatus\normalwritestatus \fi
+\ifdefined\writebanner \else \def\writebanner{\writestring} \fi
+
+% % % % % % % % % % % % % % % % % % % % % % % %
+
+%D \macros
+%D {rawgetparameters}
+%D
+%D A raw and dirty alternative for \type {\getparameters}; no
+%D checking is done!
+
+\def\rawsetparameter#1=#2,%
+ {\if]#1\else
+ \expandafter\def\csname\rawparameterprefix#1\endcsname{#2}%
+ \expandafter\rawsetparameter
+ \fi}
+
+\def\rawgetparameters[#1][#2% some 5-10% faster
+ {\ifx#2]% test is needed, else bomb on [#1][]
+ \expandafter\gobbleoneargument
+ \else
+ \def\rawparameterprefix{#1}%
+ \expandafter\dorawgetparameters
+ \fi#2}
+
+\def\dorawgetparameters#1]%
+ {\expandafter\rawsetparameter#1,]=,}
+
+%D \macros
+%D {doglobal,
+%D redoglobal,dodoglobal,resetglobal}
+%D
+%D The two macros \type {\redoglobal} and \type{\dodoglobal} are
+%D used in this and some other modules to enforce a user
+%D specified \type {\doglobal} action. The last and often only
+%D global assignment in a macro is done with
+%D \type {\dodoglobal}, but all preceding ones with
+%D \type {\redoglobal}. When using only alternatives, one can
+%D reset this mechanism with \type {\resetglobal}.
+
+\def\resetglobal
+ {\let\redoglobal\relax
+ \let\dodoglobal\relax}
+
+\resetglobal
+
+\def\doglobal
+ {\ifx\redoglobal\relax
+ \let\redoglobal\global
+ \let\dodoglobal\@@dodoglobal
+ \fi}
+
+\def\@@dodoglobal
+ {\resetglobal\global}
+
+\def\saveglobal
+ {\let\@@dodoglobal\dodoglobal
+ \let\@@redoglobal\redoglobal}
+
+\def\restoreglobal
+ {\let\redoglobal\@@redoglobal
+ \let\dodoglobal\@@dodoglobal}
+
+%D A very useful application of this macro is \type {\newif},
+%D \TEX's fake boolean type. Not being a primitive,
+%D \type {\global} hopelessly fails here. But a slight
+%D adaption of Knuth's original macro permits:
+%D
+%D \starttyping
+%D \doglobal\newif\iftest
+%D \stoptyping
+%D
+%D Of course one can still say:
+%D
+%D \starttyping
+%D \global\testtrue
+%D \global\testfalse
+%D \stoptyping
+%D
+%D Apart from the prefixes, a few more \type{\expandafters}
+%D are needed:
+
+\def\newif#1%
+ {\scratchcounter\escapechar
+ \escapechar\minusone
+ \expandafter\expandafter\expandafter
+ \redoglobal\expandafter\expandafter\expandafter
+ \edef\@if#1{true}{\let\noexpand#1\noexpand\iftrue}%
+ \expandafter\expandafter\expandafter
+ \redoglobal\expandafter\expandafter\expandafter
+ \edef\@if#1{false}{\let\noexpand#1\noexpand\iffalse}%
+ \dodoglobal\@if#1{false}%
+ \escapechar\scratchcounter}
+
+%D Also new:
+
+\def\define#1%
+ {\ifdefined#1%
+ \message{[\noexpand#1is already defined]}%
+ \expandafter\def\expandafter\gobbleddefinition
+ \else
+ \expandafter\def
+ \fi#1}
+
+\def\redefine#1%
+ {\ifdefined#1%
+ \message{[\noexpand#1is redefined]}%
+ \fi
+ \def#1}
+
+% \define\hans{hans}
+% \redefine\hans{hans}
+% \define\hans#1[]#2#3{hans}
+
+%D The next variant fits nicely in the setups syntax:
+%D
+%D \starttyping
+%D \starttexdefinition bagger [#1] #2
+%D oeps
+%D #1
+%D oeps
+%D \stoptexdefinition
+%D
+%D \bagger [a] {b}
+%D \stoptyping
+
+% \starttexdefinition test
+% oeps
+% \stoptexdefinition
+%
+% [\test]
+
+\bgroup \obeylines
+
+\gdef\starttexdefinition%
+ {\bgroup%
+ \obeylines%
+ \dostarttexdefinition}
+
+\gdef\dostarttexdefinition #1
+ {\catcode13=\@@ignore%
+ \doifinstringelse\letterhash{\detokenize{#1}}\dodostarttexdefinition\nonostarttexdefinition#1
+ }
+
+\long\gdef\dodostarttexdefinition#1 #2
+ {\dododostarttexdefinition{#1}{#2}}
+
+\long\gdef\dododostarttexdefinition#1#2#3\stoptexdefinition%
+ {\egroup%
+ \long\setvalue{#1}#2{#3}}
+
+\long\gdef\nonostarttexdefinition#1
+ {\nononostarttexdefinition{#1}{}}
+
+\long\gdef\nononostarttexdefinition#1#2#3\stoptexdefinition%
+ {\egroup%
+ \long\setvalue{#1}{#3}}
+
+\egroup
+
+%D \macros
+%D {newcounter,
+%D increment,decrement}
+%D
+%D Unfortunately the number of \COUNTERS\ in \TEX\ is limited,
+%D but fortunately we can store numbers in a macro. We can
+%D increment such pseudo \COUNTERS\ with \type{\increment}.
+%D
+%D \starttyping
+%D \increment(\counter,20)
+%D \increment(\counter,-4)
+%D \increment(\counter)
+%D \increment\counter
+%D \stoptyping
+%D
+%D After this sequence of commands, the value of
+%D \type{\counter} is 20, 16, 17 and~18. Of course there is
+%D also the complementary command \type{\decrement}.
+%D
+%D Global assignments are possible too, using \type{\doglobal}:
+%D
+%D \starttyping
+%D \doglobal\increment\counter
+%D \stoptyping
+%D
+%D When \type{\counter} is undefined, it's value is initialized
+%D at~0. It is nevertheless better to define a \COUNTER\
+%D explicitly. One reason could be that the \COUNTER\ can be
+%D part of a test with \type{\ifnum} and this conditional does
+%D not accept undefined macro's. The \COUNTER\ in our example
+%D can for instance be defined with:
+%D
+%D \starttyping
+%D \newcounter\counter
+%D \stoptyping
+%D
+%D The command \type{\newcounter} must not be confused with
+%D \type{\newcount}! Of course this mechanism is much slower
+%D than using \TEX's \COUNTERS\ directly. In practice
+%D \COUNTERS\ (and therefore our pseudo counters too) are
+%D seldom the bottleneck in the processing of a text. Apart
+%D from some other incompatilities we want to mention a pitfal
+%D when using \type{\ifnum}.
+%D
+%D \starttyping
+%D \ifnum\normalcounter=\pseudocounter \doif \else \doelse \fi
+%D \ifnum\pseudocounter=\normalcounter \doif \else \doelse \fi
+%D \stoptyping
+%D
+%D In the first test, \TEX\ continues it's search for the
+%D second number after reading \type{\pseudocounter}, while
+%D in the second test, it stops reading after having
+%D encountered a real one. Tests like the first one therefore
+%D can give unexpected results, for instance execution
+%D of \type{\doif} even if both numbers are unequal.
+
+\def\zerocountervalue{0}
+
+\def\newcounter#1%
+ {\dodoglobal\let#1\zerocountervalue}
+
+%D Nowadays we don't mind a few more tokens if we can gain a
+%D bit of speed.
+
+\def\doincrement#1%
+ {\dodoglobal\edef#1{\the\numexpr\ifdefined#1\ifx#1\relax\else#1\fi\fi+\plusone \relax}}
+\def\dodecrement#1%
+ {\dodoglobal\edef#1{\the\numexpr\ifdefined#1\ifx#1\relax\else#1\fi\fi+\minusone\relax}}
+
+\def\dododoincrement#1,#2)%
+ {\dodoglobal\edef#1{\the\numexpr\ifdefined#1\ifx#1\relax\else#1\fi\fi+#2\relax}}
+\def\dodododecrement#1,#2)%
+ {\dodoglobal\edef#1{\the\numexpr\ifdefined#1\ifx#1\relax\else#1\fi\fi-#2\relax}}
+
+\def\dodoincrement(#1%
+ {\doifnextcharelse,{\dododoincrement#1}{\dododoincrement#1,\plusone}}
+\def\dododecrement(#1%
+ {\doifnextcharelse,{\dodododecrement#1}{\dodododecrement#1,\plusone}}
+
+\def\fastincrement#1{\dodoglobal\edef#1{\the\numexpr#1+\plusone \relax}}
+\def\fastdecrement#1{\dodoglobal\edef#1{\the\numexpr#1+\minusone\relax}}
+
+\def\increment{\doifnextcharelse(\dodoincrement\doincrement}
+\def\decrement{\doifnextcharelse(\dododecrement\dodecrement}
+
+\def\incrementvalue#1{\expandafter\increment\csname#1\endcsname}
+\def\decrementvalue#1{\expandafter\decrement\csname#1\endcsname}
+
+%D \macros
+%D {newsignal}
+%D
+%D When writing advanced macros, we cannot do without
+%D signaling. A signal is a small (invisible) kern or penalty
+%D that signals the next macro that something just happened.
+%D This macro can take any action depending on the previous
+%D signal. Signals must be unique and the next macro takes care
+%D of that.
+%D
+%D \starttyping
+%D \newsignal\somesignal
+%D \stoptyping
+%D
+%D Signals old dimensions and can be used in skips, kerns and
+%D tests like \type{\ifdim}.
+
+\newdimen\maximumsignal % step is about 0.00025pt
+
+\def\newsignal#1%
+ {\ifdefined#1\else
+ \advance\maximumsignal 2sp % to be save in rounding
+ \edef#1{\the\maximumsignal}%
+ \fi}
+
+\let\newskimen\newdimen % it's all etex or later now
+
+%D \macros
+%D {strippedcsname}
+%D
+%D The next macro can be very useful when using \type{\csname}
+%D like in:
+%D
+%D \starttyping
+%D \csname if\strippedcsname\something\endcsname
+%D \stoptyping
+
+\ifdefined\letterbackslash \else
+ {\catcode`.=0 .catcode`.\ 12 .xdef.letterbackslash{.string\}} % hack
+\fi
+
+\def\checkedstrippedcsname#1% this permits \strippedcsname{\xxx} and \strippedcsname{xxx}
+ {\expandafter\docheckedstrippedcsname\string#1}
+
+\def\docheckedstrippedcsname#1%
+ {\if\noexpand#1\letterbackslash\else#1\fi}
+
+%D \macros
+%D {savenormalmeaning}
+%D
+%D We will use this one in:
+
+\def\savenormalmeaning#1%
+ {\ifcsname normal\strippedcsname#1\endcsname \else
+ \letvalue{normal\strippedcsname#1}#1%
+ \fi}
+
+%D \macros
+%D {newconditional,
+%D settrue, setfalse,
+%D ifconditional,then}
+%D
+%D \TEX's lacks boolean variables, although the \PLAIN\ format
+%D implements \type{\newif}. The main disadvantage of this
+%D scheme is that it takes three hash table entries. A more
+%D memory saving alternative is presented here. A conditional
+%D is defined by:
+%D
+%D \starttyping
+%D \newconditional\doublesided
+%D \setfalse
+%D \stoptyping
+%D Setting a conditional is done by \type{\settrue} and
+%D \type{\setfalse}:
+%D
+%D \starttyping
+%D \settrue\doublesided
+%D \setfalse
+%D \stoptyping
+%D while testing is accomplished by:
+%D
+%D \starttyping
+%D \ifconditional\doublesided ... \else ... \fi
+%D \setfalse
+%D \stoptyping
+%D We cannot use the simple scheme:
+%D
+%D \starttyping
+%D \def\settrue#1{\let#1=\iftrue}
+%D \def\settrue#1{\let#1=\iffalse}
+%D \stoptyping
+%D
+%D Such an implementation gives problems with nested
+%D conditionals. The next implementation is abaou as fast
+%D and just as straightforward:
+
+% \def\settrue #1{\chardef#1\zerocount}
+% \def\setfalse#1{\chardef#1\plusone}
+
+\def\settrue #1{\let#1\zerocount}
+\def\setfalse#1{\let#1\plusone}
+
+\let\newconditional\setfalse
+\let\ifconditional \ifcase
+
+\let\then\relax % so that we can say: \ifnum1>2\then -)
+
+%D \macros
+%D {ifzeropt}
+%D
+%D The next macro is both cosmetic and byte saving. It is
+%D pretty \type{\if}||safe too. It can be used in cases
+%D like:
+%D
+%D \starttyping
+%D \ifzeropt \somedimen ... \else ... \fi
+%D \stoptyping
+
+\let\ifzeropt\ifcase
+
+%D \macros
+%D {dorecurse,recurselevel,recursedepth,
+%D dostepwiserecurse,
+%D for}
+%D
+%D \TEX\ does not offer us powerfull for||loop mechanisms. On
+%D the other hand its recursion engine is quite unique. We
+%D therefore identify the for||looping macros by this method.
+%D The most simple alternative is the one that only needs a
+%D number.
+%D
+%D \starttyping
+%D \dorecurse {n} {whatever we want}
+%D \stoptyping
+%D
+%D This macro can be nested without problems and therefore be
+%D used in situations where \PLAIN\ \TEX's \type{\loop} macro
+%D ungracefully fails. The current value of the counter is
+%D available in \type{\recurselevel}, before as well as after
+%D the \typ{whatever we wat} stuff.
+%D
+%D \starttyping
+%D \dorecurse % inner loop
+%D {10}
+%D {\recurselevel: % outer value
+%D \dorecurse % inner loop
+%D {\recurselevel} % outer value
+%D {\recurselevel} % inner value
+%D \dorecurse % inner loop
+%D {\recurselevel} % outer value
+%D {\recurselevel} % inner value
+%D \endgraf}
+%D \stoptyping
+%D
+%D In this example the first, second and fourth
+%D \type{\recurselevel} concern the outer loop, while the third
+%D and fifth one concern the inner loop. The depth of the
+%D nesting is available for inspection in \type{\recursedepth}.
+%D
+%D Both \type{\recurselevel} and \type{\recursedepth} are
+%D macros. The real \COUNTERS\ are hidden from the user because
+%D we don't want any interference.
+
+\newcount\outerrecurse
+\newcount\innerrecurse
+
+\def\recursedepth{\the\outerrecurse}
+\def\recurselevel{0}
+
+\let\nextrecurse\relax
+
+\def\@@irecurse{@@ir@@} % ecurse} % stepper
+\def\@@arecurse{@@ar@@} % ecurse} % action
+
+\long\def\dostepwiserecurse#1#2#3#4% can be made faster by postponing #4
+ {\global\advance\outerrecurse \plusone
+ \long\global\@EA\def\csname\@@arecurse\recursedepth\endcsname{#4}%
+ \global\@EA\let\csname\@@irecurse\recursedepth\endcsname\recurselevel
+ \ifnum#3>0\relax
+ \ifnum#2<#1\relax
+ \let\nextrecurse\exitstepwiserecurse
+ \else
+ \let\nextrecurse\dodostepwiserecurse
+ \fi
+ \else
+ \ifnum#3<0\relax
+ \ifnum#1<#2\relax
+ \let\nextrecurse\exitstepwiserecurse
+ \else
+ \let\nextrecurse\dodostepwisereverse
+ \fi
+ \else
+ \let\nextrecurse\exitstepwiserecurse
+ \fi
+ \fi\normalexpanded{\noexpand\nextrecurse{\number#1}{\number#2}{\number#3}}}
+
+\long\def\dodostepwiserecurse#1#2#3% from to step
+ {\ifnum#1>#2\relax
+ \@EA\nodostepwiserecurse
+ \else
+ \def\recurselevel{#1}%
+ \@EAEAEA\redostepwiserecurse\@EA
+ \fi\@EA{\the\numexpr\recurselevel+#3\relax}{#2}{#3}}
+
+\def\expandrecursecontent
+ {\csname\@@arecurse\recursedepth\endcsname}
+
+\def\redostepwiserecurse
+ {\expandrecursecontent\dodostepwiserecurse}
+
+\long\def\dodostepwisereverse#1#2#3% from to step
+ {\ifnum#1<#2\relax
+ \@EA\nodostepwiserecurse
+ \else
+ \def\recurselevel{#1}%
+ \@EAEAEA\redostepwisereverse\@EA
+ \fi\@EA{\the\numexpr\recurselevel#3\relax}{#2}{#3}}
+
+\long\def\dodostepwisereverse#1#2#3% from to step
+ {\ifnum#1<#2\relax
+ \@EA\nodostepwiserecurse
+ \else
+ \def\recurselevel{#1}%
+ \innerrecurse#1\relax
+ \advance\innerrecurse#3\relax
+ \@EAEAEA\redostepwisereverse\@EA
+ \fi\@EA{\the\innerrecurse}{#2}{#3}}
+
+\def\redostepwisereverse
+ {\expandrecursecontent\dodostepwisereverse}
+
+\def\exitstepwiserecurse
+ {\nodostepwiserecurse\relax}
+
+\def\nodostepwiserecurse#1#2#3#4%
+ {\@EA\let\@EA\recurselevel\csname\@@irecurse\recursedepth\endcsname
+ \global\advance\outerrecurse \minusone}
+
+\def\nonostepwiserecurse#1#2#3%
+ {\@EA\let\@EA\recurselevel\csname\@@irecurse\recursedepth\endcsname
+ \global\advance\outerrecurse \minusone}
+
+\def\dorecurse#1%
+ {\dostepwiserecurse1{#1}1}
+
+%D As we can see here, the simple command \type{\dorecurse} is
+%D a special case of the more general:
+%D
+%D \starttyping
+%D \dostepwiserecurse {from} {to} {step} {action}
+%D \stoptyping
+%D
+%D This commands accepts positive and negative steps. Illegal
+%D values are handles as good as possible and the macro accepts
+%D numbers and \COUNTERS.
+%D
+%D \starttyping
+%D \dostepwiserecurse {1} {10} {2} {...}
+%D \dostepwiserecurse {10} {1} {-2} {...}
+%D \stoptyping
+%D
+%D Because the simple case is used often, we implement it
+%D more efficiently:
+
+\long\def\dorecurse#1%
+ {\ifcase#1\relax
+ \expandafter\gobbletwoarguments
+ \or
+ \expandafter\ydorecurse
+ \else
+ \expandafter\xdorecurse
+ \fi{#1}}
+
+\long\def\xdorecurse#1#2%
+ {\global\advance\outerrecurse \plusone
+ \long\global\@EA\def\csname\@@arecurse\recursedepth\endcsname{#2}%
+ \global\@EA\let\csname\@@irecurse\recursedepth\endcsname\recurselevel
+ \@EA\dodorecurse\@EA1\@EA{\number#1}}
+
+\long\def\ydorecurse#1#2%
+ {\global\advance\outerrecurse \plusone
+ \global\@EA\let\csname\@@irecurse\recursedepth\endcsname\recurselevel
+ \let\recurselevel\!!plusone
+ #2%
+ \@EA\let\@EA\recurselevel\csname\@@irecurse\recursedepth\endcsname
+ \global\advance\outerrecurse \minusone}
+
+\long\def\dodorecurse#1#2% from to
+ {\ifnum#1>#2\relax
+ \@EA\nodorecurse
+ \else
+ \def\recurselevel{#1}%
+ \@EAEAEA\redorecurse
+ \fi\@EA{\the\numexpr\recurselevel+\plusone\relax}{#2}}
+
+\long\def\dodorecurse#1#2% from to
+ {\ifnum#1>#2\relax
+ \@EA\nodorecurse
+ \else
+ \def\recurselevel{#1}%
+ \innerrecurse#1\advance\innerrecurse\plusone
+ \@EAEAEA\redorecurse
+ \fi\@EA{\the\innerrecurse}{#2}}
+
+\def\redorecurse
+ {\expandrecursecontent\dodorecurse}
+
+\def\nodorecurse#1#2#3%
+ {\@EA\let\@EA\recurselevel\csname\@@irecurse\recursedepth\endcsname
+ \global\advance\outerrecurse \minusone }
+
+%D \macros
+%D {doloop,exitloop}
+%D
+%D Sometimes loops are not determined by counters, but by
+%D (a combinations of) conditions. We therefore implement a
+%D straightforward loop, which can only be left when we
+%D explictly exit it. Nesting is supported. First we present
+%D a more extensive alternative.
+%D
+%D \starttyping
+%D \doloop
+%D {Some kind of typesetting punishment \par
+%D \ifnum\pageno>100 \exitloop \fi}
+%D \stoptyping
+%D
+%D When needed, one can call for \type{\looplevel} and
+%D \type{\loopdepth}.
+
+\let\endofloop\donothing
+
+\long\def\doloop#1%
+ {\global\advance\outerrecurse \plusone
+ \long\global\@EA\def\csname\@@arecurse\recursedepth\endcsname{#1}%
+ \global\@EA\let\csname\@@irecurse\recursedepth\endcsname\recurselevel
+ \let\endofloop\dodoloop
+ \dodoloop1} % no \plusone else \recurselevel wrong
+
+\long\def\dodoloop#1%
+ {\def\recurselevel{#1}%
+ \@EA\redoloop\@EA{\the\numexpr\recurselevel+\plusone\relax}}
+
+\def\redoloop
+ {\expandrecursecontent\endofloop}
+
+\def\nodoloop#1%
+ {\let\endofloop\dodoloop % new, permits nested \doloop's
+ \@EA\let\@EA\recurselevel\csname\@@irecurse\recursedepth\endcsname
+ \global\advance\outerrecurse\minusone}
+
+\def\exitloop % \exitloop quits at end
+ {\let\endofloop\nodoloop}
+
+\long\def\exitloopnow#1\endofloop % \exitloopnow quits directly
+ {\nodoloop}
+
+%D The loop is executed at least once, so beware of situations
+%D like:
+%D
+%D \starttyping
+%D \doloop {\exitloop some commands}
+%D \stoptyping
+%D
+%D It's just a matter of putting the text into the \type{\if}
+%D statement that should be there anyway, like in:
+%D
+%D \starttyping
+%D \doloop {\ifwhatever \exitloop \else some commands\fi}
+%D \stoptyping
+%D
+%D You can also quit a loop immediately, by using \type
+%D {\exitloopnow} instead. Beware, this is more sensitive
+%D for conditional errors.
+
+%D Krzysztof Leszczynski suggested to provide access to the level by
+%D means of a \type {#1}. I decided to pass the more frquently used
+%D level as \type {#1} and the less favoured depth as \type {#2}. The
+%D intended usage is:
+%D
+%D \starttyping
+%D \dorecurse{3}{\definesymbol[test-#1][xx-#1]}
+%D
+%D \def\test{\dorecurse{3}{\definesymbol[test-##1][xx-##1]}} \test
+%D
+%D \symbol[test-1]\quad\symbol[test-2]\quad\symbol[test-3]
+%D \stoptyping
+%D
+%D Since the hashed arguments are expanded, we don't need tricky
+%D expansion here.
+%D
+%D \starttyping
+%D \dorecurse{3}{\expanded{\definesymbol[test-\recurselevel][xx-\recurselevel]}}
+%D \stoptyping
+
+\def\expandrecursecontent
+ {\csname\@@arecurse\recursedepth\@EA\@EA\@EA\endcsname\@EA\@EA\@EA{\@EA\recurselevel\@EA}\@EA{\recursedepth}}
+
+\long\def\xdorecurse#1#2%
+ {\global\advance\outerrecurse \plusone
+ \long\global\@EA\def\csname\@@arecurse\recursedepth\endcsname##1##2{#2}%
+ \global\@EA\let\csname\@@irecurse\recursedepth\endcsname\recurselevel
+ \@EA\dodorecurse\@EA1\@EA{\number#1}}
+
+\long\def\dostepwiserecurse#1#2#3#4% can be made faster by postponing #4
+ {\global\advance\outerrecurse \plusone
+ \long\global\@EA\def\csname\@@arecurse\recursedepth\endcsname##1##2{#4}%
+ \global\@EA\let\csname\@@irecurse\recursedepth\endcsname\recurselevel
+ \ifnum#3>0\relax
+ \ifnum#2<#1\relax
+ \let\nextrecurse\exitstepwiserecurse
+ \else
+ \let\nextrecurse\dodostepwiserecurse
+ \fi
+ \else
+ \ifnum#3<0\relax
+ \ifnum#1<#2\relax
+ \let\nextrecurse\exitstepwiserecurse
+ \else
+ \let\nextrecurse\dodostepwisereverse
+ \fi
+ \else
+ \let\nextrecurse\exitstepwiserecurse
+ \fi
+ \fi\normalexpanded{\noexpand\nextrecurse{\number#1}{\number#2}{\number#3}}}
+
+\long\def\doloop#1%
+ {\global\advance\outerrecurse \plusone
+ \long\global\@EA\def\csname\@@arecurse\recursedepth\endcsname##1##2{#1}%
+ \global\@EA\let\csname\@@irecurse\recursedepth\endcsname\recurselevel
+ \let\endofloop\dodoloop
+ \dodoloop1} % no \plusone else \recurselevel wrong
+
+% EXPERIMENT
+
+% faster
+
+\long\def\dostepwiserecurse#1#2#3#4% can be made faster by postponing #4
+ {\global\advance\outerrecurse \plusone
+ \long\global\@EA\def\csname\@@arecurse\recursedepth\endcsname##1##2{#4}%
+ \global\@EA\let\csname\@@irecurse\recursedepth\endcsname\recurselevel
+ \ifnum#3>\zerocount
+ \ifnum#2<#1\relax
+ \let\nextrecurse\exitstepwiserecurse
+ \else
+ \let\nextrecurse\dodostepwiserecurse
+ \fi
+ \else
+ \ifnum#3<\zerocount
+ \ifnum#1<#2\relax
+ \let\nextrecurse\exitstepwiserecurse
+ \else
+ \let\nextrecurse\dodostepwisereverse
+ \fi
+ \else
+ \let\nextrecurse\exitstepwiserecurse
+ \fi
+ \fi
+ \expandafter\nextrecurse\normalexpanded{{\number#1}{\number#2}{\number#3}}}
+
+% slightly faster
+
+\long\def\dostepwiserecurse#1#2#3#4% can be made faster by postponing #4
+ {\global\advance\outerrecurse \plusone
+ \long\global\@EA\def\csname\@@arecurse\recursedepth\endcsname##1##2{#4}%
+ \global\@EA\let\csname\@@irecurse\recursedepth\endcsname\recurselevel
+ \csname @swr%
+ \ifnum#3>\zerocount
+ \ifnum#2<#1\else d\fi
+ \else\ifnum#3<\zerocount
+ \ifnum#1<#2\else r\fi
+ \fi\fi
+ \expandafter\endcsname\normalexpanded{{\number#1}{\number#2}{\number#3}}}
+
+\let\@swr \exitstepwiserecurse
+\let\@swrd\dodostepwiserecurse
+\let\@swrr\dodostepwisereverse
+
+%D For special purposes:
+
+\newcount\fastrecursecounter
+\newcount\lastrecursecounter
+\newcount\steprecursecounter
+
+\def\dofastrecurse#1#2#3#4%
+ {\def\fastrecursebody{#4}%
+ \fastrecursecounter#1\relax
+ \lastrecursecounter#2\relax
+ \steprecursecounter#3\relax
+ \def\recurselevel{\number\fastrecursecounter}%
+ \dodofastrecurse}
+
+\def\dodofastrecurse
+ {\ifnum\fastrecursecounter>\lastrecursecounter\else
+ \fastrecursebody
+ \advance\fastrecursecounter\steprecursecounter
+ \expandafter\dodofastrecurse
+ \fi}
+
+%D This alternative looks a bit different and uses a
+%D pseudo counter. When this macro is nested, we have to use
+%D different counters. This time we use keywords.
+%D
+%D \starttyping
+%D \def\alfa{2} \def\beta{100} \def\gamma{3}
+%D
+%D \for \n=55 \to 100 \step 1 \do {... \n ...}
+%D \for \n=\alfa \to \beta \step \gamma \do {... \n ...}
+%D \for \n=\n \to 120 \step 1 \do {... \n ...}
+%D \for \n=120 \to 100 \step -3 \do {... \n ...}
+%D \for \n=55 \to 100 \step 2 \do {... \n ...}
+%D \stoptyping
+%D
+%D Only in the third example we need to predefine \type{\n}.
+%D The use of \type{\od} as a dilimiter would have made nested
+%D use more problematic.
+
+%D Don't use this one, it's kind of obsolete.
+
+\def\for#1=#2\to#3\step#4\do#5%
+ {\dostepwiserecurse{#2}{#3}{#4}
+ {\let#1\recurselevel#5\let#1\recurselevel}}
+
+%D \macros
+%D {newevery,everyline,EveryLine,EveryPar}
+%D
+%D Lets skip to something quite different. It's common use
+%D to use \type {\everypar} for special purposes. In \CONTEXT\
+%D we use this primitive for locating sidefloats. This means
+%D that when user assignments to \type {\everypar} can interfere
+%D with those of the package. We therefore introduce
+%D \type {\EveryPar}.
+%D
+%D The same goes for \type {\EveryLine}. Because \TEX\ offers
+%D no \type {\everyline} primitive, we have to call for
+%D \type {\everyline} when we are working on a line by line
+%D basis. Just by calling \type {\EveryPar{}} and
+%D \type {\EveryLine{}} we restore the old situation.
+
+% \dorecurse{2}{
+% \expanded{\everypar{before \recurselevel\space}}
+% \EveryPar{x } [before \recurselevel\space x] \par
+% \EveryPar{y } [before \recurselevel\space y] \par
+% \EveryPar{} [before \recurselevel] \par
+% \EveryPar{x } \EveryPar{y } \EveryPar{} [before \recurselevel] \par
+% \EveryPar{y } \everypar{before } [before] \par
+% }
+
+% retrofit this into mkii
+
+\def\dowithevery#1%
+ {\expandafter\removetoks\expandafter\the\csname t\strippedcsname#1\endcsname\from#1%
+ \expandafter\appendtoks\expandafter\the\csname t\strippedcsname#1\endcsname\to #1%
+ \csname t\strippedcsname#1\endcsname}
+
+\def\newevery#1#2%
+ {\newtoks#1% we test for redefinition elsewhere
+ \ifx#2\relax\else\ifdefined#2\else
+ \expandafter\newtoks\csname t\strippedcsname#1\endcsname
+ \def#2{\dowithevery#1}%
+ \fi\fi}
+
+%D This one permits definitions like:
+
+\newevery \everypar \EveryPar % we get a warning which is ok
+\newevery \everyline \EveryLine
+
+%D and how about:
+
+\newevery \neverypar \NeveryPar
+
+%D Which we're going to use indeed! When the second argument
+%D equals \type {\relax}, the first token list is created
+%D unless it is already defined.
+
+%D Technically spoken we could have used the method we are
+%D going to present in the visual debugger. First we save
+%D the primitive \type{\everypar}:
+%D
+%D \starttyping
+%D \let\normaleverypar=\everypar
+%D \stoptyping
+%D
+%D Next we allocate a \TOKENLIST\ named \type{\everypar},
+%D which means that \type{\everypar} is no longer a primitive
+%D but something like \type{\toks44}.
+%D
+%D \starttyping
+%D \newtoks\everypar
+%D \stoptyping
+%D
+%D Because \TEX\ now executes \type{\normaleverypar} instead
+%D of \type{\everypar}, we are ready to assign some tokens to
+%D this internally known and used \TOKENLIST.
+%D
+%D \starttyping
+%D \normaleverypar={all the things the system wants to do \the\everypar}
+%D \stoptyping
+%D
+%D Where the user can provide his own tokens to be expanded
+%D every time he expects them to expand.
+%D
+%D \starttyping
+%D \everypar={something the user wants to do}
+%D \stoptyping
+%D
+%D We don't use this method because it undoubtly leads to
+%D confusing situations, especially when other packages are
+%D used, but it's this kind of tricks that make \TEX\ so
+%D powerful.
+
+%D \macros
+%D {convertargument,convertcommand,convertvalue}
+%D
+%D Some persistent experimenting led us to the next macro. This
+%D macro converts a parameter or an expanded macro to it's
+%D textual meaning.
+%D
+%D \starttyping
+%D \convertargument ... \to \command
+%D \stoptyping
+%D
+%D For example,
+%D
+%D \starttyping
+%D \convertargument{one \two \three{four}}\to\ascii
+%D \stoptyping
+%D
+%D The resulting macro \type{\ascii} can be written to a file
+%D or the terminal without problems. In \CONTEXT\ we use this
+%D macro for generating registers and tables of contents.
+%D
+%D The second conversion alternative accepts a command:
+%D
+%D \starttyping
+%D \convertcommand\command\to\ascii
+%D \stoptyping
+%D
+%D Both commands accept the prefix \type{\doglobal} for global
+%D assignments.
+
+\def\convertvalue#1\to
+ {\expandafter\convertcommand\csname#1\endcsname\to}
+
+\def\defconvertedvalue#1#2% less sensitive for \to
+ {\@EA\defconvertedcommand\@EA#1\csname#2\endcsname}
+
+%D \macros
+%D {doifassignmentelse}
+%D
+%D A lot of \CONTEXT\ commands take optional arguments, for
+%D instance:
+%D
+%D \starttyping
+%D \dothisorthat[alfa,beta]
+%D \dothisorthat[first=foo,second=bar]
+%D \dothisorthat[alfa,beta][first=foo,second=bar]
+%D \stoptyping
+%D
+%D Although a combined solution is possible, we prefer a
+%D seperation. The next command takes care of propper
+%D handling of such multi||faced commands.
+%D
+%D \starttyping
+%D \doifassignmentelse {...} {then ...} {else ...}
+%D \stoptyping
+
+\long\def\docheckifassignmentelse#1=#2#3\@end@{\if#2@}%
+
+\long\def\doifassignmentelse#1%
+ {\expandafter\docheckifassignmentelse\detokenize{#1}=@@\@end@
+ \expandafter\secondoftwoarguments
+ \else
+ \expandafter\firstoftwoarguments
+ \fi}
+
+% D \macros
+% D {convertasciiafter}
+% D
+% D Sometimes we need to convert an argument to a string (letters
+% D only), for instance when we compare it with another string:
+% D
+% D \starttyping
+% D \convertasciiafter\doifinstringelse{em}{\ascii}{...}
+% D \stoptyping
+%
+% \def\convertasciiafter#1#2%
+% {\@EA#1\@EA{\detokenize{#2}}}
+
+%D In \ETEX\ we can use \type {\detokenize} and gain some
+%D speed, but in general far less that 1\% for \type
+%D {\convertargument} and nil for \type {\convertcommand}.
+%D This macro is more robust than the pure \TEX\ one,
+%D something I found out when primitives like \type
+%D {\jobname} were fed (or something undefined).
+
+\long\def\convertargument#1\to#2{\dodoglobal\edef#2{\detokenize{#1}}}
+\long\def\convertcommand #1\to#2{\dodoglobal\edef#2{\@EA\detokenize\@EA{#1}}} % hm, only second is also ok
+
+\long\def\defconvertedargument #1#2{\edef#1{\detokenize {#2}}}
+\long\def\defconvertedcommand #1#2{\edef#1{\detokenize\@EA{#2}}}
+\long\def\edefconvertedargument#1#2{\edef#1{#2}%
+ \edef#1{\detokenize\@EA{#1}}}
+\long\def\gdefconvertedargument#1#2{\xdef#1{\detokenize {#2}}}
+\long\def\gdefconvertedcommand #1#2{\xdef#1{\detokenize\@EA{#2}}}
+\long\def\xdefconvertedargument#1#2{\xdef#1{#2}%
+ \xdef#1{\detokenize\@EA{#1}}}
+
+%D When you try to convert a primitive command, you'll find
+%D out that the \ETEX\ method fails on for instance \type
+%D {\jobname} in the sense that it returns the filename
+%D instead of just \type {\jobname}. So far this does not
+%D give real problems.
+
+%D This is typically a macro that one comes to after reading
+%D the \TEX book carefully. Even then, the definite solution
+%D was found after rereading the \TEX book. The first
+%D implementation was:
+%D
+%D \starttyping
+%D \def\doconvertargument#1->#2\\\\{#2}
+%D \stoptyping
+%D
+%D The \type{-}, the delimiter \type{\\\\} and the the second
+%D argument are completely redundant.
+
+%D \macros
+%D {showvalue,showargument}
+%D
+%D Two handy macros for testing purposes only:
+
+\def\showvalue#1%
+ {\expandafter\show\csname#1\endcsname}
+
+\def\showvalue#1%
+ {\ifcsname#1\endcsname
+ \expandafter\show\csname#1\endcsname
+ \else
+ \show\undefined
+ \fi}
+
+%D \macros
+%D {doifmeaningelse}
+%D
+%D We can use both commands in testing, but alas, not all
+%D meanings expand to something \type {->}. This is no problem
+%D in the \ETEX\ implementation, but since we want
+%D compatibility, we need:
+%D
+%D \starttyping
+%D \doifmeaningelse {\next} {\something} {true} {false}
+%D \stoptyping
+%D
+%D Watch the one level expansion of the second argument.
+
+\def\doifmeaningelse#1#2%
+ {\edef\!!stringa{\meaning#1}%
+ \def \!!stringb{#2}%
+ \edef\!!stringb{\meaning\!!stringb}%
+ \ifx\!!stringa\!!stringb
+ \expandafter\firstoftwoarguments
+ \else
+ \expandafter\secondoftwoarguments
+ \fi}
+
+%D \macros
+%D {doifsamestringselse,doifsamestring,doifnotsamestring}
+%D
+%D The next comparison macro converts the arguments into
+%D expanded strings. This command can be used to compare for
+%D instance \type {\jobname} with a name stored in a macro.
+%D
+%D \starttyping
+%D \doifelse {\jobname}{oeps}{YES}{NO}
+%D \doifsamestringelse{\jobname}{oeps}{YES}{NO}
+%D \stoptyping
+
+% \def\@@doifsamestringelse#1#2#3#4%
+% {\edef\!!stringa{#3}\convertcommand\!!stringa\to\!!stringa
+% \edef\!!stringb{#4}\convertcommand\!!stringb\to\!!stringb
+% \ifx\!!stringa\!!stringb\expandafter#1\else\expandafter#2\fi}
+
+\def\@@doifsamestringelse#1#2#3#4%
+ {\edef\!!stringa{\detokenize\expandafter{\normalexpanded{#3}}}%
+ \edef\!!stringb{\detokenize\expandafter{\normalexpanded{#4}}}%
+ \ifx\!!stringa\!!stringb\expandafter#1\else\expandafter#2\fi}
+
+\def\doifsamestringelse{\@@doifsamestringelse\firstoftwoarguments\secondoftwoarguments}
+\def\doifsamestring {\@@doifsamestringelse\firstofoneargument\gobbleoneargument}
+\def\doifnotsamestring {\@@doifsamestringelse\gobbleoneargument\firstofoneargument}
+
+%D \macros
+%D {ExpandFirstAfter,ExpandSecondAfter,ExpandBothAfter}
+%D
+%D These three commands support expansion of arguments before
+%D executing the commands that uses them. We can best
+%D illustrate this with an example.
+%D
+%D \starttyping
+%D \def\first {alfa,beta,gamma}
+%D \def\second {alfa,epsilon,zeta}
+%D
+%D \ExpandFirstAfter \doifcommon {\first} {alfa} {\message{OK}}
+%D \ExpandSecondAfter \doifcommon {alfa} {\second} {\message{OK}}
+%D \ExpandBothAfter \doifcommon {\first} {\second} {\message{OK}}
+%D
+%D \ExpandFirstAfter\processcommalist[\first]\message
+%D
+%D \ExpandAfter \doifcommon {\first} {alfa} {\message{OK}}
+%D \stoptyping
+%D
+%D The first three calls result in the threefold message
+%D \type{OK}, the fourth one shows the three elements of
+%D \type{\first}. The command \type{\ExpandFirstAfter} takes
+%D care of (first) arguments that are delimited by \type{[ ]},
+%D but the faster \type{\ExpandAfter} does not.
+
+\def\simpleExpandFirstAfter#1%
+ {\long\xdef\@@expanded{\noexpand\ExpandCommand{#1}}\@@expanded}
+
+\def\complexExpandFirstAfter[#1]%
+ {\long\xdef\@@expanded{\noexpand\ExpandCommand[#1]}\@@expanded}
+
+\def\ExpandFirstAfter#1%
+ {\let\ExpandCommand#1%
+ \doifnextoptionalelse\complexExpandFirstAfter\simpleExpandFirstAfter}
+
+\def\ExpandSecondAfter#1#2#3%
+ {\scratchtoks{#2}%
+ \long\xdef\@@expanded{\noexpand#1{\the\scratchtoks}{#3}}\@@expanded}
+
+\def\ExpandBothAfter#1#2#3%
+ {\long\xdef\@@expanded{\noexpand#1{#2}{#3}}\@@expanded}
+
+\def\ExpandAfter#1#2%
+ {\long\xdef\@@expanded{\noexpand#1{#2}}\@@expanded}
+
+%D Now we can for instance define \type{\ifinstringelse} as:
+
+\def\ifinstringelse
+ {\ExpandBothAfter\p!doifinstringelse}
+
+%D \macros
+%D {ConvertToConstant,ConvertConstantAfter}
+%D
+%D When comparing arguments with a constant, we can get into
+%D trouble when this argument consists of tricky expandable
+%D commands. One solution for this is converting the
+%D argument to a string of unexpandable characters. To make
+%D comparison possible, we have to convert the constant too
+%D
+%D \starttyping
+%D \ConvertToConstant\doifelse {...} {...} {then ...} {else ...}
+%D \stoptyping
+%D
+%D This construction is only needed when the first argument
+%D can give troubles. Misuse can slow down processing.
+%D
+%D \starttyping
+%D \ConvertToConstant\doifelse{\c!alfa} {\c!alfa}{...}{...}
+%D \ConvertToConstant\doifelse{alfa} {\c!alfa}{...}{...}
+%D \ConvertToConstant\doifelse{alfa} {alfa} {...}{...}
+%D \ConvertToConstant\doifelse{alfa \alfa test}{\c!alfa}{...}{...}
+%D \stoptyping
+%D
+%D In examples~2 and~3 both arguments equal, in~1 and~4
+%D they differ.
+
+\long\def\ConvertToConstant#1#2#3%
+ {\edef\!!stringa{\expandafter\detokenize\expandafter{#2}}%
+ \edef\!!stringb{\expandafter\detokenize\expandafter{#3}}%
+ #1{\!!stringa}{\!!stringb}}
+
+%D When the argument \type{#1} consists of commands, we had
+%D better use
+%D
+%D \starttyping
+%D \ConvertConstantAfter\processaction[#1][...]
+%D \ConvertConstantAfter\doifelse{#1}{\v!something}{}{}
+%D \stoptyping
+%D
+%D This commands accepts things like:
+%D
+%D \starttyping
+%D \v!constant
+%D constant
+%D \hbox to \hsize{\rubish}
+%D \stoptyping
+%D
+%D As we will see in the core modules, this macro permits
+%D constructions like:
+%D
+%D \starttyping
+%D \setupfootertexts[...][...]
+%D \setupfootertexts[margin][...][...]
+%D \setupfootertexts[\v!margin][...][...]
+%D \stoptyping
+%D
+%D where \type{...} can be anything legally \TEX.
+
+\def\CheckConstantAfter#1#2%
+ {\@EA\convertargument\v!prefix!\to\ascii
+ \convertargument#1\to#2\relax
+ \doifinstringelse\ascii{#2}
+ {\expandafter\convertargument#1\to#2}
+ {}}
+
+\def\ConvertConstantAfter#1#2#3%
+ {\CheckConstantAfter{#2}\asciia
+ \CheckConstantAfter{#3}\asciib
+ #1{\asciia}{\asciib}}
+
+%D \macros
+%D {assignifempty}
+%D
+%D We can assign a default value to an empty macro using:
+%D
+%D \starttyping
+%D \assignifempty \macros {default value}
+%D \stoptyping
+%D
+%D We don't explicitly test if the macro is defined.
+
+\def\assignifempty#1#2% can be sped up
+ {\doifsomething{#1}{\def#1{#2}}} % {\doifnot{#1}{}{\def#1{#2}}}
+
+%D \macros
+%D {gobbleuntil,grabuntil,gobbleuntilrelax,
+%D processbetween,processuntil}
+%D
+%D In \TEX\ gobbling usually stand for skipping arguments, so
+%D here are our gobbling macros.
+%D
+%D In \CONTEXT\ we use a lot of \type{\start}||\type{\stop}
+%D like constructions. Sometimes, the \type{\stop} is used as a
+%D hard coded delimiter like in:
+%D
+%D \starttyping
+%D \def\startcommand#1\stopcommand%
+%D {... #1 ...}
+%D \stoptyping
+%D
+%D In many cases the \type{\start}||\type{\stop} pair is
+%D defined at format generation time or during a job. This
+%D means that we cannot hardcode the \type{\stop} criterium.
+%D Only after completely understanding \type{\csname} and
+%D \type{\expandafter} I was able to to implement a solution,
+%D starting with:
+%D
+%D \starttyping
+%D \grabuntil{stop}\command
+%D \stoptyping
+%D
+%D This commands executes, after having encountered
+%D \type {\stop} the command \type {\command}. This command
+%D receives as argument the text preceding the \type {\stop}.
+%D This means that:
+%D
+%D \starttyping
+%D \def\starthello%
+%D {\grabuntil{stophello}\message}
+%D
+%D \starthello Hello world!\stophello
+%D \stoptyping
+%D
+%D results in: \type{\message{Hello world!}}.
+
+\def\dograbuntil#1#2%
+ {\long\def\next##1#1{#2{##1}}\next}
+
+\def\grabuntil#1%
+ {\expandafter\dograbuntil\expandafter{\csname#1\endcsname}}
+
+%D The next command build on this mechanism:
+%D
+%D \starttyping
+%D \processbetween{string}\command
+%D \stoptyping
+%D
+%D Here:
+%D
+%D \starttyping
+%D \processbetween{hello}\message
+%D \starthello Hello again!\stophello
+%D \stoptyping
+%D
+%D leads to: \type{\message{Hello again!}}. The command
+%D
+%D \starttyping
+%D \gobbleuntil{sequence}
+%D \stoptyping
+%D
+%D is related to these commands. This one simply throws away
+%D everything preceding \type{\command}.
+
+\long\def\processbetween#1#2%
+ {\setvalue{\s!start#1}{\grabuntil{\s!stop#1}{#2}}}
+
+\def\gobbleuntil#1%
+ {\long\def\next##1#1{}\next}
+
+\def\gobbleuntilrelax#1\relax
+ {}
+
+%D The next one simply expands the pickup up tokens.
+%D
+%D \starttyping
+%D \processuntil{sequence}
+%D \stoptyping
+
+\def\processuntil#1%
+ {\long\def\next##1#1{##1}\next}
+
+%D \macros
+%D {groupedcommand}
+%D
+%D Commands often manipulate argument as in:
+%D
+%D \starttyping
+%D \def\doezomaarwat#1{....#1....}
+%D \stoptyping
+%D
+%D A disadvantage of this approach is that the tokens that
+%D form \type{#1} are fixed the the moment the argument is read
+%D in. Normally this is no problem, but for instance verbatim
+%D environments adapt the \CATCODES\ of characters and therefore
+%D are not always happy with already fixed tokens.
+%D
+%D Another problem arises when the argument is grouped not by
+%D \type{{}} but by \type{\bgroup} and \type{\egroup}. Such an
+%D argument fails, because the \type{\bgroup} is een as the
+%D argument (which is quite normal).
+%D
+%D The next macro offers a solution for both unwanted
+%D situations:
+%D
+%D \starttyping
+%D \groupedcommand {before} {after}
+%D \stoptyping
+%D
+%D Which can be used like:
+%D
+%D \starttyping
+%D \def\cite%
+%D {\groupedcommand{\rightquote\rightquote}{\leftquote\leftquote}}
+%D \stoptyping
+%D
+%D This command is equivalent to, but more 'robust' than:
+%D
+%D \starttyping
+%D \def\cite#1%
+%D {\rightquote\rightquote#1\leftquote\leftquote}
+%D \stoptyping
+%D
+%D \starttyping
+%D \def\rightword%
+%D {\groupedcommand{\hfill\hbox}{\parfillskip\!!zeropoint}}
+%D
+%D .......... \rightword{the right way}
+%D \stoptyping
+%D
+%D Here \TEX\ typesets \type{\bf the right way} unbreakable
+%D at the end of the line. The solution mentioned before does
+%D not work here. We also handle
+%D
+%D \starttyping
+%D to be \bold{bold} or not, that's the question
+%D \stoptyping
+%D
+%D and
+%D
+%D \starttyping
+%D to be {\bold bold} or not, that's the question
+%D \stoptyping
+%D
+%D This alternative checks for a \type{\bgroup} token first.
+%D The internal alternative does not accept the box handling
+%D mentioned before, but further nesting works all right. The
+%D extra \type{\bgroup}||\type{\egroup} is needed to keep
+%D \type{\AfterGroup} both into sight and local.
+
+\long\def\HandleGroup#1#2%
+ {\bgroup
+ \long\def\BeforeGroup{\bgroup#1\bgroup\aftergroup\AfterGroup}%
+ \long\def\AfterGroup {#2\egroup\egroup}%
+ \afterassignment\BeforeGroup
+ \let\next=}
+
+\long\def\HandleSimpleGroup#1#2% no inner group (so no kerning interference)
+ {\bgroup
+ %long\def\BeforeGroup{\bgroup#1\aftergroup\AfterGroup}% interferes
+ \long\def\BeforeGroup{\bgroup\aftergroup\AfterGroup#1}%
+ \long\def\AfterGroup {#2\egroup}%
+ \afterassignment\BeforeGroup
+ \let\next=}
+
+\long\def\HandleNoGroup#1#2%
+ {\long\def\AfterGroup{#2\egroup}%
+ \bgroup\aftergroup\AfterGroup#1}
+
+%D I considered it a nuisance that
+%D
+%D \starttyping
+%D \color[green]
+%D {as grass}
+%D \stoptyping
+%D
+%D was not interpreted as one would expect. This is due to the
+%D fact that \type{\futurelet} obeys blank spaces, and a
+%D line||ending token is treated as a blank space. So the final
+%D implementation became:
+
+\long\unexpanded\def\groupedcommand#1#2%
+ {\doifnextbgroupelse{\HandleGroup{#1}{#2}}{\HandleNoGroup{#1}{#2}}}
+
+\long\unexpanded\def\simplegroupedcommand#1#2%
+ {\doifnextbgroupelse{\HandleSimpleGroup{#1}{#2}}{\HandleNoGroup{#1}{#2}}}
+
+%D Users should be aware of the fact that grouping can
+%D interfere with ones paragraph settings that are executed
+%D after the paragraph is closed. One should therefore
+%D explictly close the paragraph with \type{\par}, else the
+%D settings will be forgotten and not applied. So it's:
+%D
+%D \starttyping
+%D \def\BoldRaggedCenter%
+%D {\groupedcommand{\raggedcenter\bf}{\par}}
+%D \stoptyping
+
+%D \macros
+%D {checkdefined}
+%D
+%D The bigger the system, the greater the change that
+%D user defined commands collide with those that are part of
+%D the system. The next macro gives a warning when a command is
+%D already defined. We considered blocking the definition, but
+%D this is not always what we want.
+%D
+%D \starttyping
+%D \checkdefined {category} {class} {command}
+%D \stoptyping
+%D
+%D The user is warned with the suggestion to use
+%D \type{CAPITALS}. This suggestion is feasible, because
+%D \CONTEXT only defines lowcased macros.
+
+\def\showdefinederror#1#2%
+ {\writestatus\m!systems{#1 #2 replaces a macro, use CAPITALS!}}
+
+\def\checkdefined#1#2#3%
+ {\doifdefined{#3}{\showdefinederror{#2}{#3}}}
+
+%D \macros
+%D {GotoPar,GetPar}
+%D
+%D Typesetting a paragraph in a special way can be done by
+%D first grabbing the contents of the paragraph and processing
+%D this contents grouped. The next macro for instance typesets
+%D a paragraph in boldface.
+%D
+%D \starttyping
+%D \def\remark#1\par%
+%D {\bgroup\bf#1\egroup}
+%D \stoptyping
+%D
+%D This macro has to be called like
+%D
+%D \starttyping
+%D \remark some text ... ending with \par
+%D \stoptyping
+%D
+%D Instead of \type{\par} we can of course use an empty line.
+%D When we started typesetting with \TEX, we already had
+%D produced lots of text in plain \ASCII. In producing such
+%D simple formatted texts, we adopted an open layout, and when
+%D switching to \TEX, we continued this open habit. Although
+%D \TEX\ permits a cramped and badly formatted source, it adds
+%D to confusion and sometimes introduces errors. So we prefer:
+%D
+%D \starttyping
+%D \remark
+%D
+%D some text ... ending with an empty line
+%D \stoptyping
+%D
+%D We are going to implement a mechanism that allows such open
+%D specifications. The definition of the macro handling
+%D \type{\remark} becomes:
+%D
+%D \starttyping
+%D \def\remark%
+%D {\BeforePar{\bgroup\bf}%
+%D \AfterPar{\egroup}%
+%D \GetPar}
+%D \stoptyping
+%D
+%D A macro like \type{\GetPar} can be defined in several
+%D ways. The recent version, the fourth one in a row,
+%D originally was far more complicated, but some functionality
+%D has been moved to other macros.
+%D
+%D We start with the more simple but in some cases more
+%D appropriate alternative is \type{\GotoPar}. This one leaves
+%D \type{\par} unchanged and is therefore more robust. On the
+%D other hand, \type{\AfterPar} is not supported.
+
+\newtoks\BeforePar
+\newtoks\AfterPar
+
+\let\endoflinetoken=^^M
+
+\def\redowithpar\par
+ {\doifnextcharelse\par\redowithpar\dodowithpar}%
+
+\def\dowithpar#1#2%
+ {\def\dodowithpar##1\par{#1##1#2}%
+ \redowithpar\par}
+
+\def\redogotopar\par
+ {\doifnextcharelse\par\redogotopar\dodogotopar}%
+
+\def\dogotopar#1%
+ {\def\dodogotopar{#1}%
+ \redogotopar\par}
+
+\def\GetPar
+ {\expanded
+ {\dowithpar
+ {\the\BeforePar
+ \BeforePar\emptytoks}
+ {\the\AfterPar
+ \BeforePar\emptytoks
+ \AfterPar\emptytoks}}}
+
+\def\GotoPar
+ {\expanded
+ {\dogotopar
+ {\the\BeforePar
+ \BeforePar\emptytoks}}}
+
+%D \macros
+%D {dowithpargument,dowithwargument}
+%D
+%D The next macros are a variation on \type{\GetPar}. When
+%D macros expect an argument, it interprets a grouped sequence
+%D of characters a one token. While this adds to robustness and
+%D less ambiguous situations, we sometimes want to be a bit
+%D more flexible, or at least want to be a bit more tolerant
+%D to user input.
+%D
+%D We start with a commands that acts on paragraphs. This
+%D command is called as:
+%D
+%D \starttyping
+%D \dowithpargument\command
+%D \dowithpargument{\command ... }
+%D \stoptyping
+%D
+%D In \CONTEXT\ we use this one to read in the titles of
+%D chapters, sections etc. The commands responsible for these
+%D activities accept several alternative ways of argument
+%D passing. In these examples, the \type{\par} can be omitted
+%D when an empty line is present.
+%D
+%D \starttyping
+%D \command{...}
+%D \command ... \par
+%D \command
+%D {...}
+%D \command
+%D ... \par
+%D \stoptyping
+
+\def\dowithpargument#1%
+ {\def\nextpar##1 \par{#1{##1}}%
+ \def\nextarg##1{#1{##1}}%
+ \doifnextbgroupelse\nextarg{\doifnextcharelse\par{#1{}}\nextpar}}
+
+%D The \type{p} in the previous command stands for paragraph.
+%D When we want to act upon words we can use the \type{w}
+%D alternative.
+%D
+%D \starttyping
+%D \dowithwargument\command
+%D \dowithwargument{... \command ...}
+%D \stoptyping
+%D
+%D The main difference bwteen two alternatives is in the
+%D handling of \type{\par}'s. This time the space token acts
+%D as a delimiter.
+%D
+%D \starttyping
+%D \command{...}
+%D \command ...
+%D \command
+%D {...}
+%D \command
+%D ...
+%D \stoptyping
+
+\def\dowithwargument#1%
+ {\def\nextwar##1 {#1{##1}}%
+ \def\nextarg##1{#1{##1}}%
+ \doifnextbgroupelse\nextarg\nextwar}
+
+%D \macros
+%D {dorepeat,dorepeatwithcommand}
+%D
+%D When doing repetitive tasks, we stromgly advice to use
+%D \type{\dorecurse}. The next alternative however, suits
+%D better some of the \CONTEXT\ interface commands.
+%D
+%D \starttyping
+%D \dorepeat[n*\command]
+%D \stoptyping
+%D
+%D The value of the used \COUNTER\ can be called within
+%D \type{\command} by \type{\repeater}.
+%D
+%D A slightly different alternative is:
+%D
+%D \starttyping
+%D \dorepeatwithcommand[n*{...}]\command
+%D \stoptyping
+%D
+%D When we call for something like:
+%D
+%D \starttyping
+%D \dorepeatwithcommand[3*{Hello}]\message
+%D \stoptyping
+%D
+%D we get ourselves three \type{\message{Hello}} messages in
+%D a row. In both commands, the \type{n*} is optional. When this
+%D specification is missing, the command executes once.
+
+% this one is obsolete:
+
+\def\dorepeat[#1]%
+ {\dodorepeat#1*\empty*\relax}
+
+\long\def\dodorepeat#1*#2#3*#4\relax
+ {\ifx#2\empty#1\else\dorecurse{#1}{#2#3}\fi}
+
+\def\repeater
+ {\recurselevel}
+
+% this one will be kept
+
+\def\dorepeatwithcommand[#1]%
+ {\dodorepeatwithcommand#1*\empty*\relax}
+
+\long\def\dodorepeatwithcommand#1*#2#3*#4\relax#5%
+ {\ifx#2\empty\redorepeatwithcommand[#1]#5\else\dododorepeatwithcommand{#1}{#2}{#3}#5\fi}
+
+\long\def\dododorepeatwithcommand#1#2#3#4%
+ {\ifx#2\empty % redundant but gives cleaner extensions
+ #4{#1}%
+ \else\ifnum#1<\zerocount
+ \bgroup\scratchcounter#1%
+ \normalexpanded{\egroup\noexpand\dorecurse{\number-\scratchcounter}}{#4{-#2#3}}%
+ \else\ifx#2+%
+ \dorecurse{#1}{#4{#3}}%
+ \else
+ \dorecurse{#1}{#4{#2#3}}%
+ \fi\fi\fi}
+
+\def\redorepeatwithcommand[#1]#2%
+ {#2{#1}}
+
+%D The extension hook permits something like:
+%D
+%D \starttyping
+%D \bgroup
+%D
+%D \catcode`\*=\@@superscript
+%D
+%D \gdef\redorepeatwithcommand[#1]%
+%D {\redodorepeatwithcommand#1*\empty*\relax}
+%D
+%D \long\gdef\redodorepeatwithcommand#1*#2#3*#4\relax#5%
+%D {\dododorepeatwithcommand{#1}{#2}{#3}#5}
+%D
+%D \egroup
+%D \stoptyping
+%D
+%D although one may wonder if changing the catcode of \type {*} is wise.
+
+%D \macros
+%D {normalbgroup,normalgroup}
+%D
+%D No comment.
+
+\let\normalbgroup\bgroup
+\let\normalegroup\egroup
+
+%D \macros
+%D {doifstringinstringelse}
+%D
+%D The next macro is meant for situations where both strings
+%D are macros. This save some unneeded expansion.
+%D
+%D \starttyping
+%D \long\def\doifstringinstringelse#1#2%
+%D {\p!doifinstringelse#1#2%
+%D \@EA\firstoftwoarguments
+%D \else
+%D \@EA\secondoftwoarguments
+%D \fi}
+%D \stoptyping
+%D
+%D A bit faster is:
+
+\def\pp!doifstringinstringelse#1%
+ {\if#1@%
+ \@EA\secondoftwoarguments
+ \else
+ \@EA\firstoftwoarguments
+ \fi}
+
+\long\def\doifstringinstringelse#1#2%
+ {\long\@EA\def\@EA\p!doifstringinstringelse\@EA##\@EA1#1##2##3\war
+ {\pp!doifstringinstringelse##2}%
+ \@EA\@EA\@EA\p!doifstringinstringelse\@EA#2#1@@\war}
+
+%D \macros
+%D {appendtoks,prependtoks,appendtoksonce,prependtoksonce,
+%D doifintokselse,flushtoks,dotoks}
+%D
+%D We use \TOKENLISTS\ sparsely within \CONTEXT, because the
+%D comma separated lists are more suitable for the user
+%D interface. Nevertheless we have:
+%D
+%D \starttyping
+%D (\doglobal) \appendtoks ... \to\tokenlist
+%D (\doglobal) \prependtoks ... \to\tokenlist
+%D (\doglobal) \flushtoks\tokenlist
+%D \dotoks\tokenlist
+%D \stoptyping
+%D
+%D Er worden eerst enkele klad||registers gedefinieerd. These
+%D macros are clones of the ones implemented in page~378 of
+%D Knuth's \TeX book.
+
+\newtoks\@@scratchtoks
+
+\def\appendtoks {\doappendtoks \relax}
+\def\prependtoks {\doprependtoks \relax}
+\def\appendtoksonce {\doappendtoksonce \relax}
+\def\prependtoksonce{\doprependtoksonce\relax}
+
+\def\dodoappendtoks
+ {\dodoglobal\@@toks\@EAEAEA{\@EA\the\@EA\@@toks\the\@@scratchtoks}}
+
+\def\dodoprependtoks
+ {\dodoglobal\@@toks\@EAEAEA{\@EA\the\@EA\@@scratchtoks\the\@@toks}}
+
+\long\def\doappendtoks#1\to#2%
+ {\def\@@toks{#2}%
+ \@@scratchtoks\@EA{\gobbleoneargument#1}\dodoappendtoks}
+
+\long\def\doprependtoks#1\to#2%
+ {\def\@@toks{#2}%
+ \@@scratchtoks\@EA{\gobbleoneargument#1}\dodoprependtoks}
+
+\long\def\doappendtoksonce#1\to#2%
+ {\def\@@toks{#2}%
+ \@@scratchtoks\@EA{\gobbleoneargument#1}%
+ \doifintokselse\@@scratchtoks\@@toks\donothing\dodoappendtoks}
+
+\long\def\doprependtoksonce#1\to#2%
+ {\def\@@toks{#2}%
+ \@@scratchtoks\@EA{\gobbleoneargument#1}%
+ \doifintokselse\@@scratchtoks\@@toks\donothing\dodoprependtoks}
+
+%D The test macro:
+
+\def\doifintokselse#1#2% #1 en #2 zijn toks
+ {\edef\asciia{\detokenize\expandafter{\the#1}}%
+ \edef\asciib{\detokenize\expandafter{\the#2}}%
+ \doifstringinstringelse\asciia\asciib}
+
+%D A nice one too:
+
+% {\scratchtoks{abc} \removetoks b\from\scratchtoks [\the\scratchtoks]}
+% {\scratchtoks{abc} \removetoks x\from\scratchtoks [\the\scratchtoks]}
+% {\scratchtoks{} \removetoks x\from\scratchtoks [\the\scratchtoks]}
+% {\scratchtoks{xaa} \removetoks x\from\scratchtoks [\the\scratchtoks]}
+% {\scratchtoks{a\relax b} \removetoks \relax\from\scratchtoks [\showthe\scratchtoks]}
+
+\def\removetoks#1\from#2%
+ {\def\doremovetoks##1#1##2\empty\empty\empty##3\\%
+ {\def\!!stringa{##3}%
+ \ifx\!!stringa\empty#2{##1}\else#2{##1##2}\fi}%
+ \expandafter\doremovetoks\the#2\empty\empty\empty#1\empty\empty\empty\\}
+
+%D Also:
+
+\def\appendetoks #1\to{\normalexpanded{\noexpand\appendtoks #1}\to}
+\def\prependetoks#1\to{\normalexpanded{\noexpand\prependtoks#1}\to}
+
+%D Hm.
+
+\def\flushtoks#1% nb: can reassing to #1 again, hence the indirectness
+ {\@@scratchtoks#1\relax
+ \dodoglobal#1\emptytoks
+ \the\@@scratchtoks\relax}
+
+% better: \def\flushtoks#1{\normalexpanded{\noexpand\dodoglobal#1\emptytoks\the#\relax}}
+
+\let\dotoks\the
+
+%D \macros
+%D {makecounter,pluscounter,minuscounter,
+%D resetcounter,setcounter,countervalue}
+%D
+%D Declaring, setting and resetting \COUNTERS\ can be done
+%D with the next set of commands.
+%D
+%D \starttyping
+%D \makecounter {name}
+%D \pluscounter {name}
+%D \minuscounter {name}
+%D \resetcounter {name}
+%D \setcounter {name} {value}
+%D \countervalue {name}
+%D \stoptyping
+
+\def\makecounter#1%
+ {\global\@EA\let\csname#1\endcsname\zerocountervalue} % see earlier
+
+\def\countervalue#1%
+ {\ifcsname#1\endcsname\csname#1\endcsname\fi}
+
+\def\pluscounter#1%
+ {\@EA\xdef\csname#1\endcsname{\the\numexpr\csname#1\endcsname+\plusone\relax}}
+
+\def\minuscounter#1%
+ {\@EA\xdef\csname#1\endcsname{\the\numexpr\csname#1\endcsname-\plusone\relax}}
+
+\def\resetcounter#1%
+ {\global\@EA\let\csname#1\endcsname\zerocountervalue}
+
+\def\setcounter#1#2%
+ {\@EA\xdef\csname#1\endcsname{\the\numexpr#2\relax}}
+
+\def\savecounter#1%
+ {\@EA\xdef\csname ! #1 !\endcsname{\the\numexpr\csname#1\endcsname\relax}}
+
+\def\restorecounter#1%
+ {\@EA\xdef\csname#1\endcsname{\the\numexpr\csname ! #1 !\endcsname\relax}}
+
+%D \macros
+%D {beforesplitstring,aftersplitstring}
+%D
+%D These both commands split a string at a given point in two
+%D parts, so \type{x.y} becomes \type{x} or \type{y}.
+%D
+%D \starttyping
+%D \beforesplitstring test.tex\at.\to\filename
+%D \aftersplitstring test.tex\at.\to\extension
+%D \stoptyping
+%D
+%D The first routine looks (and is indeed) a bit simpler than
+%D the second one. The alternative looking more or less like
+%D the first one did not always give the results we needed.
+%D Both implementations show some insight in the manipulation
+%D of arguments.
+
+\def\beforesplitstring#1\at#2\to#3%
+ {\def\dosplitstring##1#2##2#2##3\\%
+ {\def#3{##1}}%
+ \@EA\dosplitstring#1#2#2\\}
+
+\def\aftersplitstring#1\at#2\to#3%
+ {\def\dosplitstring##1#2##2@@@##3\\%
+ {\def#3{##2}}%
+ \@EA\dosplitstring#1@@@#2@@@\\}
+
+%D \macros
+%D {splitstring,greedysplitstring}
+%D
+%D A bonus macro.
+
+\def\splitstring#1\at#2\to#3\and#4%
+ {\def\dosplitstring##1#2##2\empty\empty\empty##3\\%
+ {\def#3{##1}%
+ \def\dosplitstring{##3}%
+ \ifx\dosplitstring\empty
+ \let#4\empty
+ \else
+ \def#4{##2}%
+ \fi}%
+ \@EA\dosplitstring#1\empty\empty\empty#2\empty\empty\empty\\}
+
+\def\greedysplitstring#1\at#2\to#3\and#4%
+ {\edef\asciib{#1}%
+ \let\asciic\asciib
+ \let#3\empty
+ \let#4\empty
+ \doloop
+ {\expandafter\splitstring\asciib\at#2\to\asciia\and\asciib
+ \ifx\asciib\empty
+ \exitloop
+ \else
+ % not \edef#3{\ifx#3\empty\else#3#2\fi\asciia} else
+ % /root/path fails because then #3==empty
+ \edef#3{\ifcase\recurselevel\or\else#3#2\fi\asciia}%
+ \let#4\asciib
+ \fi}%
+ \ifx#3\empty\let#3\asciic\fi}
+
+%D \macros
+%D {beforetestandsplitstring,
+%D aftertestandsplitstring,
+%D testandsplitstring}
+
+\def\beforetestandsplitstring#1\at#2\to#3%
+ {\def\dosplitstring##1#2##2#2##3##4\\%
+ {\ifx##3\empty\let#3\empty\else\def#3{##1}\fi}%
+ \@EA\dosplitstring#1#2#2\empty\\}
+
+\def\aftertestandsplitstring#1\at#2\to#3%
+ {\def\dosplitstring ##1#2##2@@@##3##4\\%
+ {\ifx##3\empty\let#3\empty\else\def#3{##2}\fi}%
+ \@EA\dosplitstring #1@@@#2@@@\empty\\}
+
+\def\testandsplitstring#1\at#2\to#3\and#4%
+ {\def\dosplitstring##1#2##2#2##3##4\\%
+ {\ifx##3\empty\let#3\empty\let#4\empty\else\def#3{##1}\def#4{##2}\fi}%
+ \@EA\dosplitstring#1#2#2\empty\\}
+
+%D \macros
+%D {removesubstring}
+%D
+%D A first application of the two routines defined above is:
+%D
+%D \starttyping
+%D \removesubstring-\from first-last\to\nothyphenated
+%D \stoptyping
+%D
+%D Which in terms of \TEX\ looks like:
+
+\def\removesubstring#1\from#2\to#3%
+ {\splitstring#2\to\!!stringa\and\!!stringb
+ \dodoglobal#3{\!!stringa\!!stringb}}
+
+%D \macros
+%D {appendtocommalist,prependtocommalist,
+%D addtocommalist,removefromcommalist}
+%D
+%D When working with comma separated lists, one sooner or
+%D later want the tools to append or remove items from such a
+%D list. When we add an item, we first check if it's already
+%D there. This means that every item in the list is unique.
+%D
+%D \starttyping
+%D \addtocommalist {alfa} \name
+%D \addtocommalist {beta} \name
+%D \addtocommalist {gamma} \name
+%D \removefromcommalist {beta} \name
+%D \stoptyping
+%D
+%D These commands can be prefixed with \type{\doglobal}. The
+%D implementation of the second command is more complecated,
+%D because we have to take leading spaces into account. Keep in
+%D mind that users may provide lists with spaces after the
+%D commas. When one item is left, we also have to get rid of
+%D trailing spaces.
+%D
+%D \starttyping
+%D \def\words{alfa, beta, gamma, delta}
+%D \def\words{alfa,beta,gamma,delta}
+%D \stoptyping
+%D
+%D Removing an item takes more time than adding one.
+%D
+%D A fast appending alternative, without any testing, is
+%D also provided:
+%D
+%D \starttyping
+%D \appendtocommalist {something} \name
+%D \prependtocommalist {something} \name
+%D \stoptyping
+%D
+%D This can be implemented as follows:
+%D
+%D \starttyping
+%D \def\appendtocommalist#1#2%
+%D {\ifx#2\empty
+%D \dodoglobal\edef#2{#1}%
+%D \else % no test on empty
+%D \dodoglobal\edef#2{#2,#1}%
+%D \fi}
+%D
+%D \def\prependtocommalist#1#2%
+%D {\ifx#2\empty
+%D \dodoglobal\edef#2{#1}%
+%D \else % no test on empty
+%D \dodoglobal\edef#2{#1,#2}%
+%D \fi}
+%D \stoptyping
+%D
+%D The faster alternatives are:
+
+\def\appendtocommalist#1#2%
+ {\dodoglobal\edef#2{\ifx#2\empty\else#2,\fi#1}}
+
+\def\prependtocommalist#1#2%
+ {\dodoglobal\edef#2{#1\ifx#2\empty\else,#2\fi}}
+
+\def\addtocommalist#1#2% {item} \cs
+ {\rawdoifinsetelse{#1}#2\resetglobal
+ {\dodoglobal\edef#2{\ifx#2\empty\else#2,\fi#1}}}
+
+\def\pretocommalist#1#2% {item} \cs
+ {\rawdoifinsetelse{#1}#2\resetglobal
+ {\dodoglobal\edef#2{#1\ifx#2\empty\else,#2\fi}}}
+
+\def\robustdoifinsetelse#1#2%
+ {\edef\!!stringa{\detokenize\expandafter{\normalexpanded{#1}}}%
+ \edef\!!stringb{\detokenize\expandafter{\normalexpanded{#2}}}%
+ \rawdoifinsetelse\!!stringa\!!stringb}
+
+\def\robustaddtocommalist#1#2% {item} \cs
+ {\robustdoifinsetelse{#1}#2\resetglobal
+ {\dodoglobal\edef#2{\ifx#2\empty\else#2,\fi#1}}}
+
+\def\robustpretocommalist#1#2% {item} \cs
+ {\robustdoifinsetelse{#1}#2\resetglobal
+ {\dodoglobal\edef#2{#1\ifx#2\empty\else,#2\fi}}}
+
+\def\xsplitstring#1#2% \cs {str}
+ {\def\dosplitstring##1,#2,##2,#2,##3\\%
+ {\edef\!!stringa{\bcleanedupcommalist##1\empty\empty\relax}%
+ \edef\!!stringb{\acleanedupcommalist##2,,\relax}}%
+ \@EA\dosplitstring\@EA,#1,,#2,,#2,\\}
+
+\def\bcleanedupcommalist#1#2#3\relax{\if#1,\else#1\fi\if#2,\else#2\fi#3}
+\def\bcleanedupcommalist#1#2\relax{\if#1,\else#1\fi#2}
+\def\acleanedupcommalist#1,,#2\relax{#1}
+
+\def\removefromcommalist#1#2% to be sped up
+ {\rawdoifinsetelse{#1}#2%
+ {\normalexpanded{\noexpand\xsplitstring\noexpand#2{#1}}%
+ \dodoglobal\edef#2%
+ {\ifx\!!stringa\empty
+ \!!stringb
+ \else
+ \!!stringa\ifx\!!stringb\empty\else,\!!stringb\fi
+ \fi}}
+ \resetglobal}
+
+%D \macros
+%D {substituteincommalist}
+%D
+%D Slow but seldom used, so for the moment we stick to this
+%D implementation.
+%D
+%D \starttyping
+%D \substituteincommalist{old}{new}{list}
+%D \stoptyping
+
+\def\substituteincommalist#1#2#3% old, new, list (slooow)
+ {\edef\!!stringb{#1}%
+ \edef\!!stringd{#2}%
+ \let\!!stringa#3%
+ \let#3\empty
+ \def\dosubstituteincommalist##1%
+ {\edef\!!stringc{##1}%
+ \ifx\!!stringb\!!stringc
+ \ifx\!!stringd\empty\else
+ \edef#3{#3\ifx#3\empty\else,\fi\!!stringd}%
+ \fi
+ \def\docommand####1{\edef#3{#3,####1}}%
+ \else
+ \edef#3{#3\ifx#3\empty\else,\fi##1}%
+ \fi}%
+ \@EA\rawprocesscommacommand\@EA[\!!stringa]\dosubstituteincommalist}
+
+%D A not so useful macro:
+
+\def\dodofrontstrip[#1#2]#3%
+ {\ifx#1\space
+ \def#3{#2}%
+ \else
+ \def#3{#1#2}%
+ \fi}
+
+\def\dofrontstrip#1%
+ {\edef\!!stringa{#1}%
+ \ifx\!!stringa\empty \else
+ \@EA\dodofrontstrip\@EA[#1]#1%
+ \fi}
+
+%D \macros
+%D {replaceincommalist}
+%D
+%D The next macro can be used to replace an indexed element
+%D in a commalist:
+%D
+%D \starttyping
+%D \replaceincommalist\MyList{2}
+%D \stoptyping
+%D
+%D Element~2 will be replaced by the current meaning of the macro
+%D \type {\newcommalistelement}. The old meaning is saved in
+%D \type {\commalistelement}. The replacement honors grouped items,
+%D like in:
+%D
+%D \starttyping
+%D \def\MyList{a,b,c,d,e,f} \replaceincommalist\MyList{3}
+%D \def\MyList{a,b,c,d,e,f} \replaceincommalist\MyList{3}
+%D \def\MyList{a,{b,c},d,e,f} \replaceincommalist\MyList{3}
+%D \def\MyList{a,b,c,{d,e,f}} \replaceincommalist\MyList{3}
+%D \stoptyping
+
+\let\newcommalistelement\empty
+
+\def\replaceincommalist#1#2% #1 = commalistelement #2 = position starts at 1
+ {\def\doreplaceincommalist##1%
+ {\ifnum\commalistcounter=#2\relax
+ \ifx\newcommalistelement\empty\else
+ \ifx\newcommalist\empty
+ \let\newcommalist\newcommalistelement
+ \else
+ \@EA\@EA\@EA\def\@EA\@EA\@EA\newcommalist\@EA\@EA\@EA
+ {\@EA\newcommalist\@EA,\newcommalistelement}%
+ \fi
+ \fi
+ \def\commalistelement{##1}%
+ \else
+ \ifx\newcommalist\empty
+ \ifx\nexttoken\bgroup % is known -)
+ \def\newcommalist{{##1}}%
+ \else
+ \def\newcommalist{##1}%
+ \fi
+ \else
+ \ifx\nexttoken\bgroup % is known -)
+ \@EA\def\@EA\newcommalist\@EA{\newcommalist,{##1}}%
+ \else
+ \@EA\def\@EA\newcommalist\@EA{\newcommalist,##1}%
+ \fi
+ \fi
+ \fi
+ \advance\commalistcounter\plusone}%
+ \let\commalistelement\empty
+ \let\newcommalist\empty
+ \commalistcounter\plusone
+ \@EA\processcommalist\@EA[#1]\doreplaceincommalist
+ \dodoglobal\let#1\newcommalist}
+
+%D \macros
+%D {globalprocesscommalist}
+%D
+%D The commalist processing commands are characterized by the
+%D fact that the way they handle expansion as well as the fact
+%D that they can be nested. This makes them kind of useless for
+%D handling comma lists in alignments. In these situations the
+%D next macro can be of use.
+
+\def\globalprocesscommaitem#1,%
+ {\if]#1\else
+ \globalcommacommand{#1}%
+ \expandafter\globalprocesscommaitem
+ \fi}
+
+\def\globalprocesscommalist[#1]#2%
+ {\global\let\globalcommacommand#2%
+ \expandafter\globalprocesscommaitem#1,],}
+
+%D \macros
+%D {withoutpt,PtToCm,
+%D numberofpoints,dimensiontocount}
+%D
+%D We can convert point into centimeters with:
+%D
+%D \starttyping
+%D \PtToCm{dimension}
+%D \stoptyping
+
+{\catcode`\.=\@@other
+ \catcode`\p=\@@other
+ \catcode`\t=\@@other
+ \gdef\WITHOUTPT#1pt{#1}}
+
+\def\withoutpt#1%
+ {\expandafter\WITHOUTPT#1}
+
+%D The capitals are needed because \type{p} and \type{t} have
+%D \CATCODE~12, while macronames only permit tokens with the
+%D \CATCODE~11. As a result we cannot use the \type{.group}
+%D primitives. Those who want to know more about this kind of
+%D manipulations, we advice to study the \TEX book in detail.
+%D Because this macro does not do any assignment, we can use it
+%D in the following way too.
+
+\def\PtToCm#1%
+ {\withoutpt\the\dimexpr0.0351459804\dimexpr#1\relax\relax cm}
+
+%D We also support:
+%D
+%D \starttyping
+%D \numberofpoints {dimension}
+%D \dimensiontocount {dimension} {\count}
+%D \stoptyping
+%D
+%D Both macros return a rounded number.
+
+% \dimensiontocount{10.49pt}\scratchcounter \the\scratchcounter / \numberofpoints{10.49pt}
+% \dimensiontocount{10.51pt}\scratchcounter \the\scratchcounter / \numberofpoints{10.51pt}
+
+\def\dimensiontocount#1#2{#2\numexpr\dimexpr#1\relax/\maxcard\relax}
+\def\numberofpoints #1{\the\numexpr\dimexpr#1\relax/\maxcard\relax}
+
+%D \macros
+%D {swapdimens,swapmacros}
+%D
+%D Simple but effective are the next two macros. There name
+%D exactly states their purpose. The \type{\scratchdimen} and
+%D \type{\!!stringa} can only be swapped when being the first
+%D argument.
+
+\def\swapdimens#1#2%
+ {\scratchdimen #1\redoglobal #1#2\dodoglobal #2\scratchdimen}
+
+\def\swapmacros#1#2%
+ {\let\!!stringa#1\redoglobal\let#1#2\dodoglobal\let#2\!!stringa}
+
+%D \macros
+%D {pushmacro,popmacro}
+%D
+%D Premature and a bit of beta, we offer:
+%D
+%D \starttyping
+%D \pushmacro\macro
+%D \popmacro\macro
+%D \stoptyping
+%D
+%D Beware: global!
+
+\def\@sl@{@sl@}
+\def\@sg@{@sg@}
+
+\let\@@pushedmacro\empty
+
+\def\globalpushmacro#1%
+ {\xdef\@@pushedmacro{\string#1}%
+ \ifcsname\@sg@\@@pushedmacro\endcsname \else
+ \@EA\newcount\csname\@sg@\@@pushedmacro\endcsname
+ \fi
+ \global\advance\csname\@sg@\@@pushedmacro\endcsname \plusone
+ \global\@EA\let\csname\the\csname\@sg@\@@pushedmacro\endcsname\@@pushedmacro\endcsname#1}
+
+\def\globalpopmacro#1%
+ {\xdef\@@pushedmacro{\string#1}%
+ \global\@EA\let\@EA#1\csname\the\csname\@sg@\@@pushedmacro\endcsname\@@pushedmacro\endcsname
+ \global\advance\csname\@sg@\@@pushedmacro\endcsname \minusone}
+
+\def\localpushmacro#1% this one can be used to push a value over an \egroup
+ {\xdef\@@pushedmacro{\string#1}%
+ \ifcsname\@sl@\@@pushedmacro\endcsname \else
+ \@EA\newcount\csname\@sl@\@@pushedmacro\endcsname
+ \fi
+ \global\advance\csname\@sl@\@@pushedmacro\endcsname \plusone
+ \global\@EA\let\csname\the\csname\@sl@\@@pushedmacro\endcsname\@@pushedmacro\endcsname#1}
+
+\def\localpopmacro#1%
+ {\xdef\@@pushedmacro{\string#1}%
+ \@EA\let\@EA#1\csname\the\csname\@sl@\@@pushedmacro\endcsname\@@pushedmacro\endcsname
+ \global\advance\csname\@sl@\@@pushedmacro\endcsname \minusone }
+
+\let\pushmacro\localpushmacro
+\let\popmacro \localpopmacro
+
+%D \macros
+%D {setlocalhsize}
+%D
+%D Sometimes we need to work with the \type{\hsize} that is
+%D corrected for indentation and left and right skips. The
+%D corrected value is available in \type{\localhsize}, which
+%D needs to be calculated with \type{\setlocalhsize} first.
+%D
+%D \starttyping
+%D \setlocalhsize \hbox to \localhsize{...}
+%D \setlocalhsize[-1em] \hbox to \localhsize{...}
+%D \setlocalhsize[.5ex] \hbox to \localhsize{...}
+%D \stoptyping
+%D
+%D These examples show us that an optional can be used. The
+%D value provided is added to \type{\localhsize}.
+
+\newdimen\localhsize
+
+\def\complexsetlocalhsize[#1]% don't change !
+ {\localhsize\hsize
+ \ifnum\hangafter<\zerocount
+ \advance\localhsize\ifdim\hangindent>\zeropoint-\fi\hangindent
+ \fi
+ \advance\localhsize -\leftskip
+ \advance\localhsize -\rightskip
+ \advance\localhsize #1\relax}
+
+\def\simplesetlocalhsize
+ {\complexsetlocalhsize[\zeropoint]}
+
+\definecomplexorsimple\setlocalhsize
+
+%D \macros
+%D {doifvalue,doifnotvalue,doifelsevalue,
+%D doifnothing,doifsomething,doifelsenothing,
+%D doifvaluenothing,doifvaluesomething,doifelsevaluenothing}
+%D
+%D These long named \type{\if} commands can be used to access
+%D macros (or variables) that are normally accessed by using
+%D \type{\getvalue}. Using these alternatives safes us three
+%D tokens per call. Anyone familiar with the not||values
+%D ones, can derive their meaning from the definitions.
+
+ \def\doifvalue#1{\doif {\csname#1\endcsname}}
+ \def\doifnotvalue#1{\doifnot {\csname#1\endcsname}}
+ \def\doifelsevalue#1{\doifelse{\csname#1\endcsname}}
+
+ \def\doifnothing#1{\doif {#1}{}}
+ \def\doifsomething#1{\doifnot {#1}{}}
+ \def\doifelsenothing#1{\doifelse{#1}{}}
+
+ \def\doifvaluenothing#1{\doif {\csname#1\endcsname}{}}
+ \def\doifvaluesomething#1{\doifnot {\csname#1\endcsname}{}}
+\def\doifelsevaluenothing#1{\doifelse{\csname#1\endcsname}{}}
+
+%D Faster but spoiling inheritance (copying parameters):
+%D
+%D \starttyping
+%D \def\doifelsevaluesomething#1#2#3%
+%D {\expandafter\ifx\csname#1\endcsname\empty#3\else#2\fi}
+%D
+%D \def\doifvaluesomething#1#2%
+%D {\expandafter\ifx\csname#1\endcsname\empty\else#2\fi}
+%D
+%D \def\doifvaluenothing#1#2%
+%D {\expandafter\ifx\csname#1\endcsname\empty#2\fi}
+%D \stoptyping
+%D
+%D Slightly more efficient:
+
+ \def\doifnothing{\doif \empty}
+ \def\doifsomething{\doifnot \empty}
+\def\doifelsenothing{\doifelse\empty}
+
+%D The somewhat faster alternatives are:
+
+\long\def\doifvalue#1#2%
+ {\edef\!!stringa{\csname#1\endcsname}\edef\!!stringb{#2}%
+ \ifx\!!stringa\!!stringb
+ \expandafter\firstofoneargument
+ \else
+ \expandafter\gobbleoneargument
+ \fi}
+
+\long\def\doifnotvalue#1#2%
+ {\edef\!!stringa{\csname#1\endcsname}\edef\!!stringb{#2}%
+ \ifx\!!stringa\!!stringb
+ \expandafter\gobbleoneargument
+ \else
+ \expandafter\firstofoneargument
+ \fi}
+
+\long\def\doifelsevalue#1#2%
+ {\edef\!!stringa{\csname#1\endcsname}\edef\!!stringb{#2}%
+ \ifx\!!stringa\!!stringb
+ \expandafter\firstoftwoarguments
+ \else
+ \expandafter\secondoftwoarguments
+ \fi}
+
+\long\def\doifnothing#1%
+ {\edef\!!stringa{#1}%
+ \ifx\!!stringa\empty
+ \expandafter\firstofoneargument
+ \else
+ \expandafter\gobbleoneargument
+ \fi}
+
+\long\def\doifsomething#1%
+ {\edef\!!stringa{#1}%
+ \ifx\!!stringa\empty
+ \expandafter\gobbleoneargument
+ \else
+ \expandafter\firstofoneargument
+ \fi}
+
+\long\def\doifelsenothing#1%
+ {\edef\!!stringa{#1}%
+ \ifx\!!stringa\empty
+ \expandafter\firstoftwoarguments
+ \else
+ \expandafter\secondoftwoarguments
+ \fi}
+
+\long\def\doifsomethingelse#1%
+ {\edef\!!stringa{#1}%
+ \ifx\!!stringa\empty
+ \expandafter\secondoftwoarguments
+ \else
+ \expandafter\firstoftwoarguments
+ \fi}
+
+\long\def\doifvaluenothing#1%
+ {\edef\!!stringa{\csname#1\endcsname}%
+ \ifx\!!stringa\empty
+ \expandafter\firstofoneargument
+ \else
+ \expandafter\gobbleoneargument
+ \fi}
+
+\long\def\doifvaluesomething#1%
+ {\edef\!!stringa{\csname#1\endcsname}%
+ \ifx\!!stringa\empty
+ \expandafter\gobbleoneargument
+ \else
+ \expandafter\firstofoneargument
+ \fi}
+
+\long\def\doifelsevaluenothing#1%
+ {\edef\!!stringa{\csname#1\endcsname}%
+ \ifx\!!stringa\empty
+ \expandafter\firstoftwoarguments
+ \else
+ \expandafter\secondoftwoarguments
+ \fi}
+
+%D \macros
+%D {doifemptyelsevalue, doifemptyvalue, doifnotemptyvalue}
+%D
+%D Also handy:
+
+\def\doifemptyelsevalue#1%
+ {\@EA\ifx\csname#1\endcsname\empty
+ \expandafter\firstoftwoarguments
+ \else
+ \expandafter\secondoftwoarguments
+ \fi}
+
+\def\doifemptyvalue#1%
+ {\@EA\ifx\csname#1\endcsname\empty
+ \expandafter\firstofoneargument
+ \else
+ \expandafter\gobbleoneargument
+ \fi}
+
+\def\doifnotemptyvalue#1%
+ {\@EA\ifx\csname#1\endcsname\empty
+ \expandafter\gobbleoneargument
+ \else
+ \expandafter\firstofoneargument
+ \fi}
+
+%D \macros
+%D {doifallcommonelse}
+%D
+%D A complete match of two sets can be tested with
+%D \type {\doifallcommonelse}, where the first two
+%D arguments are sets.
+
+\def\@@doifallcommonelse#1#2#3#4% slow
+ {\def\p!docommoncheck##1%
+ {\doifnotinset{##1}{#4}\donefalse
+ \ifdone\else\expandafter\quitcommalist\fi}%
+ \donetrue
+ \processcommalist[#3]\p!docommoncheck
+ \ifdone\expandafter#1\else\expandafter#2\fi}
+
+\def\doifallcommonelse
+ {\@@doifallcommonelse\firstoftwoarguments\secondoftwoarguments}
+
+\def\doifallcommon
+ {\@@doifallcommonelse\firstofonearguments\gobbleoneargument}
+
+\def\doifnotallcommon
+ {\@@doifallcommonelse\gobbleoneargument\firstofonearguments}
+
+%D \macros
+%D {DOIF,DOIFELSE,DOIFNOT}
+%D
+%D \TEX\ is case sensitive. When comparing arguments, this
+%D feature sometimes is less desirable, for instance when we
+%D compare filenames. The next three alternatives upcase their
+%D arguments before comparing them.
+%D
+%D \starttyping
+%D \DOIF {string1} {string2} {...}
+%D \DOIFNOT {string1} {string2} {...}
+%D \DOIFELSE {string1} {string2} {then ...}{else ...}
+%D \stoptyping
+%D
+%D We have to use a two||step implementation, because the
+%D expansion has to take place outside \type{\uppercase}.
+
+\def\p!DOIF#1#2%
+ {\uppercase{\ifinstringelse{$#1$}{$#2$}}%
+ \expandafter\firstofoneargument
+ \else
+ \expandafter\gobbleoneargument
+ \fi}
+
+\def\p!DOIFNOT#1#2%
+ {\uppercase{\ifinstringelse{$#1$}{$#2$}}%
+ \expandafter\gobbleoneargument
+ \else
+ \expandafter\firstofoneargument
+ \fi}
+
+\def\p!DOIFELSE#1#2%
+ {\uppercase{\ifinstringelse{$#1$}{$#2$}}%
+ \expandafter\firstoftwoarguments
+ \else
+ \expandafter\secondoftwoarguments
+ \fi}
+
+\def\p!DOIFINSTRINGELSE#1#2%
+ {\uppercase{\ifinstringelse{#1}{#2}}%
+ \expandafter\firstoftwoarguments
+ \else
+ \expandafter\secondoftwoarguments
+ \fi}
+
+\def\DOIF {\ExpandBothAfter\p!DOIF}
+\def\DOIFNOT {\ExpandBothAfter\p!DOIFNOT}
+\def\DOIFELSE {\ExpandBothAfter\p!DOIFELSE}
+\def\DOIFINSTRINGELSE {\ExpandBothAfter\p!DOIFINSTRINGELSE}
+
+%D \macros
+%D {dosingleargumentwithset,
+%D dodoubleargumentwithset,dodoubleemptywithset,
+%D dotripleargumentwithset,dotripleemptywithset}
+%D
+%D These maybe too mysterious macros enable us to handle more
+%D than one setup at once.
+%D
+%D \starttyping
+%D \dosingleargumentwithset \command[#1]
+%D \dodoubleargumentwithset \command[#1][#2]
+%D \dotripleargumentwithset \command[#1][#2][#3]
+%D \dodoubleemptywithset \command[#1][#2]
+%D \dotripleemptywithset \command[#1][#2][#3]
+%D \stoptyping
+%D
+%D The first macro calls \type{\command[##1]} for each string
+%D in the set~\type{#1}. The second one calls for
+%D \type{\commando[##1][#2]} and the third, well one may guess.
+%D These commands support constructions like:
+%D
+%D \starttyping
+%D \def\dodefinesomething[#1][#2]%
+%D {\getparameters[\??xx#1][#2]}
+%D
+%D \def\definesomething%
+%D {\dodoubleargumentwithset\dodefinesomething}
+%D \stoptyping
+%D
+%D Which accepts calls like:
+%D
+%D \starttyping
+%D \definesomething[alfa,beta,...][variable=...,...]
+%D \stoptyping
+%D
+%D Now a whole bunch of variables like \type{\@@xxalfavariable}
+%D and \type{\@@xxbetavariable} is defined.
+
+\def\dodoublewithset[#1][#2]%
+ {\doifsomething{#1}
+ {\def\@@dodowithsetcommand##1{\@@dowithsetcommand[##1][#2]}%
+ \processcommalist[#1]\@@dodowithsetcommand}}
+
+\def\dotriplewithset[#1][#2][#3]%
+ {\doifsomething{#1}
+ {\def\@@dodowithsetcommand##1{\@@dowithsetcommand[##1][#2][#3]}%
+ \processcommalist[#1]\@@dodowithsetcommand}}
+
+\def\dodoubleemptywithset #1{\let\@@dowithsetcommand#1\dodoubleempty \dodoublewithset} % \command
+\def\dodoubleargumentwithset#1{\let\@@dowithsetcommand#1\dodoubleargument\dodoublewithset} % \command
+
+\def\dotripleemptywithset #1{\let\@@dowithsetcommand#1\dotripleempty \dotriplewithset} % \command
+\def\dotripleargumentwithset#1{\let\@@dowithsetcommand#1\dotripleargument\dotriplewithset} % \command
+
+%D \macros
+%D {stripcharacters,stripspaces}
+%D
+%D The next command was needed first when we implemented
+%D the \CONTEXT\ interactivity macros. When we use labeled
+%D destinations, we often cannot use all the characters we
+%D want. We therefore strip some of the troublemakers, like
+%D spaces, from the labels before we write them to the
+%D \DVI||file, which passes them to for instance a PostScript
+%D file.
+%D
+%D \starttyping
+%D \stripspaces\from\one\to\two
+%D \stoptyping
+%D
+%D Both the old string \type{\one} and the new one \type{\two}
+%D are expanded. This command is a special case of:
+%D
+%D \starttyping
+%D \stripcharacter\char\from\one\to\two
+%D \stoptyping
+%D
+%D As we can see below, spaces following a control sequence are
+%D to enclosed in \type{{}}.
+
+\def\stripcharacter#1\from#2\to#3%
+ {\def\dostripcharacter##1#1##2\end
+ {\edef\!!strippedstring{\!!strippedstring##1}%
+ \doifnotempty{##2}{\dostripcharacter##2\end}}%
+ \let\!!strippedstring\empty
+ \edef\!!stringa{#2}%
+ \@EA\dostripcharacter\!!stringa#1\end
+ \dodoglobal\let#3\!!strippedstring}
+
+\def\stripspaces\from#1\to#2% will become \unspacestring#1\from#2
+ {\stripcharacter{ }\from#1\to#2}
+
+%D \macros
+%D {unspacestring}
+%D
+%D The next macro does the same but is more compatible with other macros,
+%D like \type {\convert...}.
+
+\def\unspacestring#1\to#2%
+ {\stripcharacter{ }\from#1\to#2}
+
+%D \macros
+%D {executeifdefined}
+%D
+%D \CONTEXT\ uses one auxiliary file for all data concerning
+%D tables of contents, references, two||pass optimizations,
+%D sorted lists etc. This file is loaded as many times as
+%D needed. During such a pass we skip the commands thate are of
+%D no use at that moment. Because we don't want to come into
+%D trouble with undefined auxiliary commands, we call the
+%D macros in a way similar to \type{\getvalue}. The next macro
+%D take care of such executions and when not defined, gobbles
+%D the unwanted arguments.
+%D
+%D \starttyping
+%D \executeifdefined{name}\gobbleoneargument
+%D \stoptyping
+%D
+%D We can of course gobble more arguments using the
+%D appropriate gobbling command.
+
+\newif\ifexecuted % general purpose
+
+\def\executeifdefined#1% #2 / never change this one again
+ {\ifcsname#1\endcsname
+ \csname#1\expandafter\expandafter\expandafter\endcsname\expandafter\gobbleoneargument
+ \else
+ \expandafter\firstofoneargument
+ \fi}
+
+%D This one also has the advantage that it is fully
+%D expandable and that it can be used after an assignment.
+
+%D \macros
+%D {doifsomespaceelse}
+%D
+%D The next command checks a string on the presence of a space
+%D and executed a command accordingly.
+%D
+%D \starttyping
+%D \doifsomespaceelse {tekst} {then ...} {else ...}
+%D \stoptyping
+%D
+%D We use this command in \CONTEXT\ for determing if an
+%D argument must be broken into words when made interactive.
+%D Watch the use of \type{\noexpand}.
+
+%D Is this one still needed?
+
+\def\p!doifsomespaceelse#1 #2#3\war{\if\noexpand#2@}
+
+\long\def\doifsomespaceelse#1% % #2#3%
+ {\p!doifsomespaceelse#1 @ @\war % #3\else#2\fi}
+ \expandafter\secondoftwoarguments
+ \else
+ \expandafter\firstoftwoarguments
+ \fi}
+
+%D \macros
+%D {adaptdimension,balancedimensions}
+%D
+%D Again we introduce some macros that are closely related to
+%D an interface aspect of \CONTEXT. The first command can be
+%D used to adapt a \DIMENSION.
+%D
+%D \starttyping
+%D \adaptdimension {dimension} {value}
+%D \stoptyping
+%D
+%D When the value is preceed by a \type{+} or minus, the
+%D dimension is advanced accordingly, otherwise it gets the
+%D value.
+
+\def\doadaptdimension#1#2\\#3\\%
+ {\if#1+%
+ \dodoglobal\advance
+ \else\if#1-%
+ \dodoglobal\advance
+ \else
+ \dodoglobal
+ \fi\fi
+ #3 #1#2\relax}
+
+\def\adaptdimension#1#2%
+ {\expandafter\doadaptdimension#2\\#1\\}
+
+%D A second command takes two \DIMENSIONS. Both are adapted,
+%D depending on the sign of the given value.
+%D maat. This time we take the value as it is, and don't look
+%D explicitly at the preceding sign.
+%D
+%D \starttyping
+%D \balancedimensions {dimension 1} {dimension 2} {value}
+%D \stoptyping
+%D
+%D When a positive value is given, the first dimension is
+%D incremented, the second ond is decremented. A negative value
+%D has the opposite result.
+
+\def\balancedimensions#1#2#3%
+ {\scratchdimen#3\relax
+ \redoglobal\advance#1 \scratchdimen
+ \dodoglobal\advance#2 -\scratchdimen}
+
+%D Both commands can be preceded by \type{\doglobal}. Here we
+%D use \type{\redo} first, because \type{\dodo} resets the
+%D global character.
+
+%D \macros
+%D {processseparatedlist}
+%D
+%D Maybe a bit late, but here is a more general version of the
+%D \type{\processcommalist} command. This time we don't handle
+%D nesting but accept arbitrary seperators.
+%D
+%D \starttyping
+%D \processseparatedlist[list][separator]\command
+%D \stoptyping
+%D
+%D One can think of things like:
+%D
+%D \starttyping
+%D \processseparatedlist[alfa+beta+gamma][+]\message
+%D \stoptyping
+%D
+%D We want to handle all situations, like:
+%D
+%D \startbuffer
+%D \processseparatedlist[{aap noot}] [ ]{\def\xxx} \convertcommand\xxx\to\ascii {\tttf\ascii}
+%D \processseparatedlist[{aap} {noot}][ ]{\def\xxx} \convertcommand\xxx\to\ascii {\tttf\ascii}
+%D \processseparatedlist[aap {noot}] [ ]{\def\xxx} \convertcommand\xxx\to\ascii {\tttf\ascii}
+%D \processseparatedlist[aap noot] [ ]{\def\xxx} \convertcommand\xxx\to\ascii {\tttf\ascii}
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+%D
+%D Therefore we smuggle a \type {\relax} in front of the
+%D argument, which we remove afterwards.
+
+\def\doprocessseparatedlist#1]#2[#3]#4%
+ {\def\dodoprocessseparatedlist##1##2#3%
+ {\def\!!stringa{##2}% suggested by VZ
+ \if]##1%
+ \let\dodoprocessseparatedlist\relax
+ \else\ifx\blankspace\!!stringa
+ #4{##1}%
+ \else\if]##2%
+ \let\dodoprocessseparatedlist\relax
+ \else
+ #4{##1##2}%
+ \fi\fi\fi
+ \dodoprocessseparatedlist}%
+ \@EA\dodoprocessseparatedlist\gobbleoneargument#1#3]#3}
+
+\def\processseparatedlist[%
+ {\doprocessseparatedlist\relax}
+
+%D \macros
+%D {processlist}
+%D
+%D An even more general list processing macro is the
+%D following one:
+%D
+%D \starttyping
+%D \processlist{beginsym}{endsym}{separator}\docommand list
+%D \stoptyping
+%D
+%D This one supports arbitrary open and close symbols as well
+%D as user defined separators.
+%D
+%D \starttyping
+%D \processlist(){=>}\docommand(a=>b=>c=>d)
+%D \stoptyping
+
+\long\def\processlist#1#2#3#4% no blank skipping !
+ {\def\doprocesslist##1#2%
+ {\def\dodoprocesslist####1####2#3%
+ {\ifx#2####1%
+ \let\dodoprocesslist\relax
+ \else\ifx#2####2%
+ \let\dodoprocesslist\relax
+ \else
+ #4{####1####2}%
+ \fi\fi
+ \dodoprocesslist}%
+ \expandafter\dodoprocesslist\gobbleoneargument##1#3#2#3}%
+ \def\dodoprocesslist#1%
+ {\doprocesslist\relax}%
+ \dodoprocesslist}
+
+%D \macros
+%D {processassignlist}
+%D
+%D Is possible to combine an assignment list with one
+%D containing keywords. Assignments are treated accordingly,
+%D keywords are treated by \type{\command}.
+%D
+%D \starttyping
+%D \processassignlist[...=...,...=...,...]\commando
+%D \stoptyping
+%D
+%D This command can be integrated in \type{\getparameters}, but
+%D we decided best not to do so.
+
+\def\processassignlist#1[#2]#3%
+ {\def\p!dodogetparameter[##1=##2=##3]%
+ {\doifnot{##3}\relax{#3{##1}}}%
+ \def\p!dogetparameter##1%
+ {\p!dodogetparameter[##1==\relax]}%
+ \processcommalist[#2]\p!dogetparameter}
+
+%D \macros
+%D {untextargument
+%D untexcommand}
+%D
+%D When manipulating data(bases) and for instance generating
+%D index entries, the next three macros can be of help:
+%D
+%D \starttyping
+%D \untextargument{...}\to\name
+%D \untexcommand {...}\to\name
+%D \stoptyping
+%D
+%D They remove braces and backslashes and give us something to
+%D sort.
+
+\def\untexsomething
+ {\begingroup
+ \catcode`\{=\@@ignore
+ \catcode`\}=\@@ignore
+ \escapechar\minusone
+ \dountexsomething}
+
+\long\def\dountexsomething#1#2\to#3%
+ {\doglobal#1#2\to\untexedargument
+ \endgroup
+ \let#3\untexedargument}
+
+\def\untexargument{\untexsomething\convertargument}
+\def\untexcommand {\untexsomething\convertcommand}
+
+%D \macros
+%D {ScaledPointsToBigPoints,ScaledPointsToWholeBigPoints}
+%D
+%D One characteristic of \POSTSCRIPT\ and \PDF\ is that both
+%D used big points (\TEX's bp). The next macros convert points
+%D and scaled points into big points.
+%D
+%D \starttyping
+%D \ScaledPointsToBigPoints {number} \target
+%D \ScaledPointsToWholeBigPoints {number} \target
+%D \stoptyping
+%D
+%D The magic factor $72/72.27$ can be found in most \TEX\
+%D related books.
+
+% \PointsToBigPoints{10.53940pt}\test \test
+% \PointsToBigPoints{10.53941pt}\test \test
+% \PointsToBigPoints{10.53942pt}\test \test
+
+% \PointsToWholeBigPoints{10.53940pt}\test \test
+% \PointsToWholeBigPoints{10.53941pt}\test \test
+% \PointsToWholeBigPoints{10.53942pt}\test \test
+
+\def\PointsToBigPoints#1#2%
+ {\edef#2{\withoutpt\the\dimexpr.996264\dimexpr#1\relax\relax}}
+
+\def\PointsToWholeBigPoints#1#2%
+ {\edef#2{\the\numexpr\dimexpr.996264\dimexpr#1\relax\relax/\maxcard\relax}}
+
+\def\ScaledPointsToBigPoints #1{\PointsToBigPoints {\number#1\scaledpoint}}
+\def\ScaledPointsToWholeBigPoints#1{\PointsToWholeBigPoints{\number#1\scaledpoint}}
+
+%D \macros
+%D {PointsToReal}
+%D
+%D Points can be stripped from their suffix by using
+%D \type{\withoutpt}. The next macro enveloppes this macro.
+%D
+%D \starttyping
+%D \PointsToReal {dimension} \target
+%D \stoptyping
+
+\def\PointsToReal#1#2%
+ {\scratchdimen#1%
+ \edef#2{\withoutpt\the\scratchdimen}}
+
+%D \macros
+%D {dontleavehmode}
+%D
+%D Sometimes when we enter a paragraph with some command, the
+%D first token gets the whole first line. We can prevent this
+%D by saying:
+%D
+%D \starttyping
+%D \dontleavehmode
+%D \stoptyping
+%D
+%D This command is used in for instance the language module
+%D \type{lang-ini}. The first version was:
+%D
+%D \starttyping
+%D \def\dontleavehmode{\ifhmode\else\ifmmode\else$ $\fi\fi}
+%D \stoptyping
+%D
+%D Next, Taco came with a better alternative (using mathsurround):
+%D
+%D \starttyping
+%D \def\dontleavehmode
+%D {\ifhmode\else \ifmmode\else
+%D {\mathsurround\zeropoint\everymath\emptytoks$ $}%
+%D \fi \fi}
+%D \stoptyping
+%D
+%D And finaly we got the following alternative, one that avoids
+%D interfering grouping at the cost of a box.
+
+\newbox\@@dlhbox
+
+\unexpanded \def\dontleavehmode
+ {\ifhmode\else \ifmmode\else
+ \setbox\@@dlhbox\hbox{\mathsurround\zeropoint\everymath\emptytoks$ $}\unhbox\@@dlhbox
+ \fi \fi}
+
+%D But, if you run a recent version of \TEX, we can use the new
+%D primitive:
+
+\ifdefined\normalquitvmode \let\dontleavehmode\normalquitvmode \fi
+
+%D \macros
+%D {uppercasestring,lowercasestring}
+%D
+%D The names tell what they do:
+%D
+%D \starttyping
+%D \uppercasestring somestring\to\somestring
+%D \lowercasestring somestring\to\somestring
+%D \stoptyping
+%D
+%D the first argument may be a \type{\macro}.
+
+\def\uppercasestring#1\to#2% first @EA redundant
+ {\uppercase\@EA{\@EA\dodoglobal\@EA\edef\@EA#2\@EA{\normalexpanded{#1}}}}
+
+\def\lowercasestring#1\to#2% first @EA redundant
+ {\lowercase\@EA{\@EA\dodoglobal\@EA\edef\@EA#2\@EA{\normalexpanded{#1}}}}
+
+%D \macros
+%D {handletokens}
+%D
+%D With the next macro we enter a critical area of macro
+%D expansion. What we want is a macro that looks like:
+%D
+%D \starttyping
+%D \handletokens some tokens\with \somemacro
+%D \stoptyping
+%D
+%D A bonus example:
+%D
+%D \starttyping
+%D \hbox{\handletokens tekst en meer tekst\with\ruledhbox}
+%D
+%D \def\weetikveel#1{\if#1\blankspace\space\else\ruledhbox{#1}\fi}
+%D
+%D \hbox{\handletokens tekst en meer tekst\with\weetikveel}
+%D \stoptyping
+
+%D \macros
+%D {counttoken,counttokens}
+%D
+%D For the few occasions that we want to know the number of
+%D specific tokens in a string, we can use:
+%D
+%D \starttyping
+%D \counttoken token\in string\to \somecount
+%D \counttokens string\to \somecount
+%D \stoptyping
+%D
+%D This macro, that for instance is used in \type{cont-tab},
+%D takes a real counter. The macro can be preceded by \type
+%D {\doglobal}.
+
+\def\counttoken#1\in#2\to#3%
+ {\scratchcounter\zerocount
+ \def\!!stringa{#1}%
+ \def\!!stringb{\end}%
+ \def\docounttoken##1% obeys {}
+ {\def\!!stringc{##1}%
+ \ifx\!!stringb\!!stringc \else
+ \ifx\!!stringa\!!stringc
+ \advance\scratchcounter\plusone
+ \fi
+ \expandafter\docounttoken
+ \fi}%
+ \docounttoken#2\end
+ \dodoglobal#3\scratchcounter}
+
+\def\counttokens#1\to#2%
+ {\scratchcounter\zerocount
+ \def\docounttoken##1{\advance\scratchcounter\plusone}%
+ \handletokens#1\with\docounttoken
+ \dodoglobal#2\scratchcounter}
+
+%D \macros
+%D {splitofftokens}
+%D
+%D Running this one not always gives the expected results.
+%D Consider for instance the macro for which I originally
+%D wrote this token handler.
+
+\long\def\splitofftokens#1\from#2\to#3% slow but hardly used
+ {\ifnum#1>\zerocount
+ \scratchcounter#1\relax
+ \def\dosplitofftokens##1%
+ {\ifnum\scratchcounter>\zerocount
+ \advance\scratchcounter \minusone
+ \edef#3{#3##1}%
+ \fi}%
+ % \let#3\empty % #3 can be #2, so:
+ \@EA\let\@EA#3\@EA\empty
+ \@EA\handletokens#2\with\dosplitofftokens
+ \else
+ \edef#3{#2}%
+ \fi}
+
+%D This macro can be called like:
+%D
+%D \startbuffer[example]
+%D \splitofftokens10\from01234567 890123456789\to\test [\test]
+%D \stopbuffer
+%D
+%D However, the characters that we expect to find in
+%D \type{\test} just don't show up there. The reason for this
+%D is not that logical but follows from \TEX's sometimes
+%D mysterious way of expanding. Look at this:
+%D
+%D \startbuffer[next]
+%D \def\next{a} \edef\test{\next} [\test]
+%D \let\next=b \edef\test{\test\next} [\test]
+%D \let\next=c \edef\test{\next} [\test]
+%D \let\next=d \edef\test{\test\next} [\test]
+%D \let\next=e \@EA\edef\@EA\test\@EA{\test\next} [\test]
+%D \stopbuffer
+%D
+%D \typebuffer[next]
+%D
+%D Careful reading shows that inside an \type{\edef} macro's
+%D that are \type{\let} are not expanded!
+%D
+%D \unprotect\getbuffer[next]\protect
+%D
+%D That's why we finally end up with a macro that looks
+%D ahead by using an assignment, this time by using \type
+%D {\futurelet}, and grabbing an argument as well. That
+%D way we can handle the sentinal, a blank space and grouped
+%D tokens.
+
+\def\dohandletokens % \nexthandledtoken is part of interface
+ {\futurelet\nexthandledtoken\dodohandletokens}
+
+\long\def\handletokens#1\with#2%
+ {\gdef\dododohandletokens{#2}% permits more complex #2's
+ \dohandletokens#1\end}
+
+\def\dodohandletokens
+ {\ifx\nexthandledtoken\blankspace
+ \expandafter\dodohandletokensone
+ \else\ifx\nexthandledtoken\end
+ \expandafter\expandafter\expandafter\gobbletwoarguments % also gobble the \end
+ \else
+ \expandafter\expandafter\expandafter\dodohandletokenstwo
+ \fi\fi *}
+
+\def\dodohandletokensone * %
+ {\dododohandletokens{ }\dohandletokens}
+
+\long\def\dodohandletokenstwo *#1%
+ {\dododohandletokens{#1}\dohandletokens}
+
+%D This macro is tested on:
+%D
+%D \def\xxx#1{[#1]}
+%D
+%D \startlines
+%D \handletokens abc\with\xxx
+%D \handletokens a b c\with\xxx
+%D \handletokens a b c\with\xxx
+%D \handletokens a{bc}d\with\xxx
+%D \handletokens a\space bc \with\xxx
+%D \stoplines
+%D
+%D And our previous example shows up as:
+%D
+%D \getbuffer[example]
+
+%D \macros
+%D {iftrialtypesetting, ifvisible}
+%D
+%D The next boolean is at first sight a strange one. Sometimes
+%D one does a trial typesetting run, for instance to determine
+%D dimensions. Some mechanisms, like object inclusion, can fail
+%D on such trials. Temporary setting the next boolean to true,
+%D helps a lot. The second boolena can be used to inhibit
+%D processing completely.
+
+\newif\iftrialtypesetting \trialtypesettingfalse
+\newif\ifvisible \visibletrue
+
+%D \macros
+%D {startlocal, startglobal}
+%D
+%D The next four macros are rather self explaining:
+%D
+%D \starttyping
+%D \startlocal
+%D whatever assignments
+%D \stoplocal
+%D
+%D \startglobal
+%D whatever assignments
+%D \stopglobal
+%D \stoptyping
+%D
+%D These macros are meant for those who know the difference
+%D between local and global assignments and are aware of the
+%D possible unwanted side effect
+
+\def\dostartglobaldefs#1#2%
+ {\scratchcounter\globaldefs
+ \ifnum\globaldefs#1\zerocount
+ \globaldefs-\globaldefs
+ \fi
+ \advance\globaldefs#2\plusone
+ \expandafter\chardef\csname@gd@\the\globaldefs\endcsname\scratchcounter}
+
+\def\dostopglobaldefs
+ {\globaldefs\ifcsname @gd@\the\globaldefs\endcsname\zerocount}
+
+\def\startlocal {\dostartglobaldefs>-}
+\def\stoplocal {\dostopglobaldefs}
+\def\startglobal {\dostartglobaldefs<+}
+\def\stopglobal {\dostopglobaldefs}
+
+%D \macros
+%D {twodigitrounding}
+%D
+%D When using \type {\special}s or \type {\pdfliteral}s, it
+%D sometimes makes sense to limit the precission. The next
+%D macro rounds a real number to two digits. It takes one
+%D argument and only works in \ETEX.
+
+\def\dointegerrounding #1.#2\relax {#1}
+\def\doonedigitrounding #1.#2#3\relax {\ifx#2*#1\else#1.#2\fi}
+\def\dotwodigitrounding #1.#2#3#4\relax {\ifx#2*#1\else#1.#2#3\fi}
+\def\dothreedigitrounding#1.#2#3#4#5\relax{\ifx#2*#1\else#1.#2#3#4\fi}
+
+\def\integerrounding#1%
+ {\@EA\@EA\@EA\dointegerrounding \@EA\WITHOUTPT\the\dimexpr#1\points+.5\points \relax .\relax}
+\def\onedigitrounding#1%
+ {\@EA\@EA\@EA\doonedigitrounding \@EA\WITHOUTPT\the\dimexpr#1\points+.05\points \relax 00.*0\relax}
+\def\twodigitrounding#1%
+ {\@EA\@EA\@EA\dotwodigitrounding \@EA\WITHOUTPT\the\dimexpr#1\points+.005\points \relax 000.*00\relax}
+\def\threedigitrounding#1%
+ {\@EA\@EA\@EA\dothreedigitrounding\@EA\WITHOUTPT\the\dimexpr#1\points+.0005\points\relax0000.*00\relax}
+
+%D \macros
+%D {processcontent}
+%D
+%D This is the first occasion where \TEX\ and \ETEX\ are no
+%D longer compatible, although in many cases things go ok.
+%D Beware of verbatim, i.e. catcode changes.
+%D
+%D \starttyping
+%D \def\starthans%
+%D {\processcontent{stophans}\test{\message{\test}\wait}}
+%D \stoptyping
+%D
+%D This macro is first used in the tabulation macros.
+
+\def\processcontent#1%
+ {\begingroup\@EA\doprocesscontent\csname#1\endcsname}
+
+\def\doprocesscontent#1#2#3%
+ {\long\def\doprocesscontent##1#1%
+ {\endgroup\long\def#2{##1}#3}%
+ \doprocesscontent}
+
+%D \macros
+%D {dogobblesingleempty, dogobbledoubleempty}
+%D
+%D These two macros savely grab and dispose two arguments.
+
+\def\dogobblesingleempty{\dosingleempty\dodogobblesingleempty}
+\def\dogobbledoubleempty{\dodoubleempty\dodogobbledoubleempty}
+
+\def\dodogobblesingleempty [#1]{}
+\def\dodogobbledoubleempty[#1][#2]{}
+
+\let\gobblesingleempty\dogobblesingleempty % also used
+\let\gobbledoubleempty\dogobbledoubleempty % also used
+
+%D \macros
+%D {sortcommalist,sortcommacommand,
+%D donumericcompare,comparedresult}
+%D
+%D Sometimes we need to sort a commalist, so here is Taco's
+%D solution. This will in many cases be a list that is stored
+%D in a \type{\csname}, so both commalist and commacommands are
+%D supported. The sorting algorithm is very simple, so the list
+%D should not be too long or sorting will be very slow.
+%D
+%D \starttyping
+%D \sortcommalist[10,2,4,5,6,1,2,3,4,10,20]\donumericcompare
+%D
+%D \def\test{10,2,4,5,6,1,2,3,4,10,20}
+%D
+%D \sortcommacommand[\test]\donumericcompare
+%D \stoptyping
+%D
+%D In both cases, the result is available in the macro \type
+%D {\sortedcommalist}.
+%D
+%D Parameter \type{#2} is a macro that should accept two
+%D parameters, and it has to decide which one is larger, by
+%D setting the counter \type{\comparedresult} to~0 (for equal),
+%D 1~(if it's first argument is larger), or~2 (if it's second
+%D argument is larger).
+%D
+%D As said, these macro are largely written by Taco, and are
+%D (maybe therefore) also the first application of \type
+%D {\replaceincommalist}.
+
+\newcount\comparedresult
+
+\def\sortcommacommand[#1]%
+ {\@EA\sortcommalist\@EA[#1]}
+
+\def\sortcommalist[#1]#2%
+ {\getcommalistsize[#1]%
+ \ifnum\commalistsize>1
+ \let\sortedcommalist\empty
+ \let\comparecommand#2%
+ \processcommalist[#1]\dosortcommacommand
+ \else
+ \def\sortedcommalist{#1}%
+ \fi}
+
+\def\dosortcommacommand#1%
+ {\ifx\sortedcommalist\empty
+ \def\sortedcommalist{#1}%
+ \else
+ \def\!!tempa{#1}%
+ \ifx\!!tempa\empty\else
+ \scratchcounter\plusone
+ \@EA\getcommalistsize\@EA[\sortedcommalist]%
+ \@EA\processcommalist\@EA[\sortedcommalist]\docompareitems
+ \fi
+ \fi}
+
+%D All those \type{\expandafter}'s are there because I do not
+%D want to use \type{\edef}.
+
+\def\docompareitems#1%
+ {\doifnotempty{#1}
+ {\@EA\comparecommand\@EA{\!!tempa}{#1}\relax
+ %\ifcase\compareresult % equal
+ \ifnum\comparedresult<2
+ \ifnum\scratchcounter=\commalistsize
+ \@EA\@EA\@EA\def\@EA\@EA\@EA\sortedcommalist
+ \@EA\@EA\@EA{\@EA\sortedcommalist\@EA,\!!tempa}%
+ \fi
+ %\or % new element larger
+ % \ifnum\scratchcounter=\commalistsize
+ % \@EA\@EA\@EA\def\@EA\@EA\@EA\sortedcommalist
+ % \@EA\@EA\@EA{\@EA\sortedcommalist\@EA,\!!tempa}%
+ % \fi
+ \else % old element larger
+ \@EA\def\@EA\newcommalistelement\@EA{\!!tempa,#1}%
+ \replaceincommalist\sortedcommalist\scratchcounter
+ \expandafter\quitcommalist
+ \fi}%
+ \advance\scratchcounter \plusone} % bug, was \minusone
+
+%D The macro \type{\donumericcompare} considers everything
+%D that is not a number to be larger than any number.
+
+% 0: both are equal, 1: #1 is larger, 2: #2 is larger
+
+\def\thenumericcompare#1#2% no \relax es inside hee
+ {\doifnumberelse{#1}
+ {\doifnumberelse{#2}{\ifnum#1>#2 \plusone\else\ifnum#1<#2 \plustwo\else\zerocount\fi\fi}\plustwo}
+ \plusone}
+
+\def\donumericcompare
+ {\comparedresult\thenumericcompare}
+
+%D \macros
+%D {@True, @False, @Not, @And}
+%D
+%D Some predicate logic functions, used in for instance the
+%D math module.
+
+\def\@True {00}
+\def\@False {01}
+\def\@Not #1{0\ifcase#11 \or\@EA 1\else \@EA 0\fi}
+\def\@And #1#2{0\ifcase#1#2 \@EA 0\else \@EA 1\fi}
+
+%D \macros
+%D {setdimensionwithunit, freezedimensionwithunit}
+%D
+%D The next assignments are all valid:
+%D
+%D \starttyping
+%D \setdimensionwithunit\scratchdimen{10} {cm}
+%D \setdimensionwithunit\scratchdimen{10cm}{cm}
+%D \setdimensionwithunit\scratchdimen{10cm}{}
+%D \freezedimensionwithunit\SomeWidth{\textwidth}
+%D \freezedimensionwithunit\SomeDepth{\dp\strutbox}
+%D \stoptyping
+%D
+%D As an alternative for the next macro we can use a global
+%D assignment inside a box. The \type{\empty}'s permits
+%D gobbling while preventing spurious \type{\relax}'s.
+
+\def\setdimensionwithunit#1#2#3% number unit dimension / nice trick
+ {\afterassignment\gobblefourarguments#1=#2#3pt\relax\empty\empty\empty\empty}
+
+\def\freezedimensionwithunit#1#2%
+ {\setdimensionwithunit\scratchdimen#1{#2}\edef#1{\the\scratchdimen}}
+
+%D \macros
+%D {doifsometokselse}
+%D
+%D Not that fast I guess, but here's a way to test for token
+%D registers being empty.
+
+\def\doifsometokselse#1% % #2#3%
+ {\edef\!!stringa{\the#1}%
+ \ifx\!!stringa\empty % #3\else#2\fi}
+ \expandafter\secondoftwoarguments
+ \else
+ \expandafter\firstoftwoarguments
+ \fi}
+
+%D \macros
+%D {startstrictinspectnextcharacter}
+%D
+%D This one if for Taco's bibliography module:
+
+\let\normalinspectnextcharacter\inspectnextcharacter
+
+\def\strictinspectnextcharacter% no user macro !
+ {\ifx\nexttoken\charactertoken
+ \expandafter\!!stringa
+ \else
+ \expandafter\!!stringb
+ \fi}
+
+% better: push/pop
+
+\def\startstrictinspectnextcharacter
+ {\let\inspectnextcharacter\strictinspectnextcharacter}
+
+\def\stopstrictinspectnextcharacter
+ {\let\inspectnextcharacter\normalinspectnextcharacter}
+
+%D \macros
+%D {gobblespacetokens}
+%D
+%D This macro needs a speed-up!
+
+%\def\gobblespacetokens
+% {\doifnextcharelse\empty\donothing\donothing} % no {}\do\do !
+
+\def\gobblespacetokens
+ {\afterassignment\nexttoken\let\nexttoken=}
+
+%D \macros
+%D {verbatimargument}
+%D
+%D As the name says, this macro converts its argument to a
+%D (rather safe) string.
+
+\let\verbatimstring\detokenize
+
+%D These are needed in ordinal number conversions:
+
+\def\lastdigit#1%
+ {\@EA\thelastdigit\number#1\relax}
+
+\def\thelastdigit#1#2%
+ {\ifx#2\relax#1\else\@EA\thelastdigit\@EA#2\fi}
+
+\def\lasttwodigits#1%
+ {\@EA\thelasttwodigits\@EA0\number#1\relax}
+
+\def\thelasttwodigits#1#2#3% 0 dig ... \relax
+ {\ifx#3\relax#1#2\else\@EA\thelasttwodigits\@EA#2\@EA#3\fi}
+
+%D \macros
+%D {serializecommalist}
+%D
+%D Concatenate commalists:
+
+\def\serializecommalist[#1]%
+ {\let\serializedcommalist\empty
+ \def\docommand##1{\edef\serializedcommalist{\serializedcommalist##1}}%
+ \processcommacommand[#1]\docommand}
+
+%D \macros
+%D {purenumber}
+%D
+%D Sometimes we need control over when \TEX\ stops reading a
+%D number, especially in full expandable macros where using
+%D \type {\relax} would lead to disasters.
+%D
+%D \starttyping
+%D \ifodd\purenumber{...}\space ... \else ... \fi
+%D \stoptyping
+%D
+%D Here we use a space as number delimiter in combination
+%D with a space- and relax-less \type {\purenumber}. This
+%D macro works ok with \type {\the}, \type {\number} as well
+%D as \ETEX's \type {\numexpr}.
+
+\def\purenumber#1{\@EA\firstofoneargument\@EA{\number#1}}
+
+%D \macros
+%D {filterfromvalue}
+%D
+%D \starttyping
+%D \setvalue{xx}{{A}{B}{C}}
+%D
+%D \filterfromvalue{xx}{3}{3}
+%D \filterfromvalue{xx}{3}{2}
+%D \filterfromvalue{xx}{3}{1}
+%D \stoptyping
+%D
+%D An alternative is to store 'max' in the list, say:
+%D
+%D \starttyping
+%D \setvalue{xx}{3{A}{B}{C}}
+%D
+%D \filterfromvalues{3}{xx}{3}
+%D \filterfromvalues{3}{xx}{2}
+%D \filterfromvalues{3}{xx}{1}
+%D \stoptyping
+%D
+%D I'll implement this when I'm in \quotation {writing dirty
+%D macros mood}.
+
+\def\dofilterfromstr#1#2% max n % no need to be fast
+ {\expandafter \expandafter \expandafter \strippedcsname
+ \ifcase#1\or \ifcase#2\or
+ \firstofoneargument \else
+ \gobbleoneargument \fi
+ \or \ifcase#2\or
+ \firstoftwoarguments \or
+ \secondoftwoarguments \else
+ \gobbletwoarguments \fi
+ \or \ifcase#2\or
+ \firstofthreearguments \or
+ \secondofthreearguments \or
+ \thirdofthreearguments \else
+ \gobblethreearguments \fi
+ \or \ifcase#2\or
+ \firstoffourarguments \or
+ \secondoffourarguments \or
+ \thirdoffourarguments \or
+ \fourthoffourarguments \else
+ \gobblefourarguments \fi
+ \or \ifcase#2\or
+ \firstoffivearguments \or
+ \secondoffivearguments \or
+ \thirdoffivearguments \or
+ \fourthoffivearguments \or
+ \fifthoffivearguments \else
+ \gobblefivearguments \fi
+ \fi}
+
+\def\filterfromvalue#1#2#3% value max n
+ {\@EA\@EAEAEA\csname % we use the fact that an
+ \@EA\ifx\csname#1\endcsname\relax % undefined cs has become \relax
+ \strippedcsname\gobbleoneargument % which we then gobble here
+ \else
+ \dofilterfromstr{#2}{#3}%
+ \fi
+ \endcsname\csname#1\endcsname}
+
+\def\filterfromnext#1#2% max n {..}{..}{..}{..}
+ {\csname\dofilterfromstr{#1}{#2}\endcsname}
+
+%D \macros
+%D {definemeasure}
+%D
+%D \starttyping
+%D \definemeasure[mywidth][\dimexpr(\textwidth-1cm)]
+%D
+%D ... \measure{mywidth} ...
+%D \stoptyping
+
+\def\??dm{@@dm} % brrr
+
+\def\definemeasure
+ {\dodoubleargument\dodefinemeasure}
+
+\def\dodefinemeasure[#1][#2]%
+ {\expandafter\def\csname\??dm#1\endcsname{#2}}
+
+% #2 could be omitted, but we want to support spaces
+%
+% \setmeasure {x} {1cm}
+% \setmeasure {xx} {1cm}
+% \setmeasure {xxx}{1cm}
+
+\def\setmeasure #1#2{\expandafter\def \csname\??dm#1\endcsname{#2}} % quick way
+\def\setemeasure#1#2{\expandafter\edef\csname\??dm#1\endcsname{#2}} % quick way
+\def\setgmeasure#1#2{\expandafter\gdef\csname\??dm#1\endcsname{#2}} % quick way
+\def\setxmeasure#1#2{\expandafter\xdef\csname\??dm#1\endcsname{#2}} % quick way
+
+\def\measure#1%
+ {\ifcsname\??dm#1\endcsname\csname\??dm#1\endcsname\else\zeropoint\fi}
+
+%D \macros
+%D {doifdimensionelse}
+%D
+%D This is a dirty one: we simply append a unit and discard it when needed.
+
+\def\doifdimensionelse#1%
+ {\afterassignment\dodoifdimensionelse\scratchdimen#1pt\relax}
+
+\def\dodoifdimensionelse#1%
+ {\ifx#1\relax
+ \expandafter\secondoftwoarguments
+ \else % #1=p ... t\relax
+ \expandafter\thirdoffourarguments
+ \fi}
+
+%D \macros
+%D {comparedimension,comparedimensioneps}
+%D
+%D This is a dirty one: we simply append a unit and discard it when needed.
+
+\newdimen\roundingeps \roundingeps=10sp
+
+\def\comparedimension#1#2%
+ {\chardef\compresult
+ \ifdim#1<#2%
+ \zerocount
+ \else\ifdim#1<#2%
+ \plusone
+ \else
+ \plustwo
+ \fi\fi}
+
+\def\comparedimensioneps#1#2% todo: use eps feature
+ {\chardef\compresult
+ \ifdim\dimexpr#1-#2\relax<\roudingeps
+ \zerocount
+ \else\ifdim\dimexpr#2-#1\relax<\roudingeps
+ \zerocount
+ \else\ifdim#1<#2%
+ \plusone
+ \else
+ \plustwo
+ \fi\fi\fi}
+
+% % % % % % % % % % % % % % % % % % % % % %
+
+% pretty ugly but fast
+
+% \copycsname xxx\endcsname\csname ..\endcsname
+
+\def\copycsname{\@EA\@EA\@EA\let\@EA\@EA\csname}
+
+% \letcscsname \crap \csname ..\endcsname
+% \letcsnamecs \csname ..\endcsname\crap
+% \letcsnamecsname\csname ..\endcsname\csname ..\endcsname
+
+\def\letcscsname {\@EA\let\@EA}
+\def\letcsnamecs {\@EA\let}
+\def\letcsnamecsname{\@EA\@EA\@EA\let\@EA\@EA}
+
+% another one, add an item to a commalist
+
+\def\addvalue#1#2% cs item
+ {\ifcsname#1\endcsname\else\expandafter\let\csname#1\endcsname\empty\fi
+ \normalexpanded{\noexpand\addtocommalist{#2}\@EA\noexpand\csname#1\endcsname}}
+
+\def\unspaced#1%
+ {\dounspaced#1\end}
+
+\def\dounspaced#1%
+ {\ifx#1\end
+ \@EA\gobbleoneargument
+ \else
+ \ifx#1\blankspace\else#1\fi
+ \fi
+ \dounspaced}
+
+\def\unspaceargument#1\to#2%
+ {\scratchcounter\catcode32\relax
+ \catcode32\@@ignore\scantextokens{\edef#2{#1}}%
+ \catcode32\scratchcounter}
+
+\def\unspaceafter#1#2%
+ {\unspaceargument#2\to\ascii
+ \expandafter#1\expandafter{\ascii}}
+
+% sometimes handy:
+
+\def\doifhasspaceelse#1%
+ {\edef\!!stringa{#1}%
+ \normalexpanded{\noexpand\dodoifhasspaceelse#1\space}\empty\relax}
+
+\def\dodoifhasspaceelse#1 #2#3\relax % \space\empty\relax
+ {\ifx\!!stringa\space
+ \@EA\firstoftwoarguments
+ \else\ifx#2\empty
+ \@EAEAEA\secondoftwoarguments
+ \else
+ \@EAEAEA\firstoftwoarguments
+ \fi\fi}
+
+% this will replace loadfile once and alike !!! todo
+
+\def\@flg@{@flg@}
+
+\def\setflag #1{\@EA\dodoglobal\@EA\let\csname\@flg@#1\endcsname\zerocount}
+\def\resetflag#1{\@EA\dodoglobal\@EA\let\csname\@flg@#1\endcsname\plusone}
+
+\let\ifflagged\ifcase
+
+\def\flag#1{\csname\@flg@#1\endcsname}
+
+\def\doifelseflagged#1%
+ {\@EA\ifx\csname\@flg@#1\endcsname\relax
+ \@EA\secondoftwoarguments
+ \else\ifcase\csname\@flg@#1\endcsname
+ \@EAEAEA\firstoftwoarguments
+ \else
+ \@EAEAEA\secondoftwoarguments
+ \fi\fi}
+
+\def\doifnotflagged#1%
+ {\@EA\ifx\csname\@flg@#1\endcsname\relax
+ \@EA\firstofoneargument
+ \else\ifcase\csname\@flg@#1\endcsname
+ \@EAEAEA\gobbleoneargument
+ \else
+ \@EAEAEA\firstofoneargument
+ \fi\fi}
+
+\def\inheritparameter[#1]#2[#3]#4[#5]% tag tokey fromkey % [bypasses k!prefix]
+ {\@EA\def\csname#1#3\@EA\endcsname\@EA{\csname#1#5\endcsname}}
+
+% \buildarray[test][aa,bb,cc,dd,ee,ff]
+% \setarrayelement{test}{1}{qq}
+% \arrayelement{test}{1}
+% \arraylength{test}
+%
+% \def\buildarray[#1][#2]%
+% {\scratchcounter=0
+% \def\docommand##1%
+% {\advance\scratchcounter by 1
+% \setvalue{@@aa#1\the\scratchcounter}{##1}}%
+% \processcommalist[#2]\docommand
+% \setevalue{@@aa#1}{\the\scratchcounter}}%
+%
+% \def\setarrayelement#1#2{\setvalue{@@aa#1#2}}
+% \def\arrayelement #1#2{\getvalue{@@aa#1#2}}
+% \def\arraylength #1{\getvalue{@@aa#1}}
+
+% \newsignal\junksignal
+%
+% \def\setjunksignal%
+% {\ifhmode
+% \hskip\junksignal
+% \let\removejunkspaces\doremovejunkspaces
+% \else
+% \let\removejunkspaces\relax
+% \fi}
+%
+% \def\doremovejunkspaces%
+% {\doloop{\ifdim\lastskip=\junksignal\unskip\else\exitloop\fi}}
+
+\def\dodoifnonzeropositiveelse#1#2\end % #3#4%
+ {\ifx#1\relax
+ \ifcase\scratchcounter
+ \endgroup
+ \@EAEAEA\secondoftwoarguments
+ \else
+ \endgroup
+ \@EAEAEA\firstoftwoarguments
+ \fi
+ \else
+ \endgroup
+ \@EA\secondoftwoarguments
+ \fi}
+
+\def\doifnonzeropositiveelse#1%
+ {\begingroup\afterassignment\dodoifnonzeropositiveelse\scratchcounter=0#1\relax\empty\end}
+
+% here ?
+
+\def\dosetrawvalue #1#2#3{\@EA \def\csname#1#2\endcsname{#3}}
+\def\dosetrawevalue#1#2#3{\@EA\edef\csname#1#2\endcsname{#3}}
+\def\dosetrawgvalue#1#2#3{\@EA\gdef\csname#1#2\endcsname{#3}}
+\def\dosetrawxvalue#1#2#3{\@EA\xdef\csname#1#2\endcsname{#3}}
+
+\def\getrawparameters {\dogetparameters\dosetrawvalue }
+\def\getraweparameters {\dogetparameters\dosetrawevalue}
+\def\getrawgparameters {\dogetparameters\dosetrawgvalue}
+\def\getrawxparameters {\dogetparameters\dosetrawxvalue}
+
+\def\globalgetrawparameters{\dogetparameters\dosetrawgvalue} % obsolete
+
+\def\splitskip#1%
+ {\scratchskip#1\relax
+ \dimen0\scratchskip
+ \dimen2\gluestretch\scratchskip
+ \dimen4\glueshrink\scratchskip}
+
+\newcount\modcounter
+
+\def\dosetmodulo#1#2#3%
+ {\modcounter#1\divide\modcounter#2\multiply\modcounter#2%
+ #3#1\advance#3-\modcounter}
+
+\def\dosetdivision#1#2#3%
+ {#3#1\divide#3 #2\relax}
+
+\def\DoMod#1by#2to#3{\dosetmodulo {#1}{#2}{#3}}
+\def\DoDiv#1by#2to#3{\dosetdivision{#1}{#2}{#3}}
+
+\def\dounprotected#1\par
+ {#1\protect}
+
+\def\unprotected
+ {\unprotect\dounprotected}
+
+% awaiting the definitive implementation
+
+\ifdefined\resettimer \else
+ \let\resettimer \relax
+ \newcount\elapsedtime
+\fi
+
+\newcount\featuretest
+
+\def\testfeature#1#2%
+ {\def\dotestfeature
+ {\advance\featuretest \plusone
+ \ifnum\featuretest>#1\else#2\expandafter\dotestfeature\fi}%
+ \retestfeature}
+
+\def\retestfeature % timer support is new per 10/5/2005
+ {\bgroup
+ \ifcase\interactionmode\let\wait\relax\fi
+ \writestatus\m!systems{starting feature test}\wait
+ \resettimer
+ \featuretest\zerocount \dotestfeature
+ \writestatus\m!systems{feature test done (\elapsedseconds s)}%
+ \wait
+ \egroup}
+
+\def\elapsedseconds{\expandafter\withoutpt\the\dimexpr\elapsedtime sp\relax}
+
+\def\showtimer#1%
+ {\writestatus{runtime}{\elapsedseconds\space s / #1}}
+
+\def\testfeatureonce#1#2%
+ {\let\wait\relax\testfeature{#1}{#2}\end}
+
+%D \macros
+%D {freezedimenmacro}
+%D
+%D This macro is use as:
+%D
+%D \starttyping
+%D \freezedimenmacro\leftmargindistance
+%D \stoptyping
+
+\def\freezedimenmacro#1%
+ {\edef#1{\the\dimexpr#1}}
+
+%D The next macro negates a macro (dimension or number, or actually, whatever.
+%D It's a typical example of \type {\if} usage:
+%D
+%D \starttyping
+%D \if-\whatever \else-\whatever\fi => else => -whatever
+%D \if--\whatever\else-\whatever\fi => then => whatever
+%D \stoptyping
+
+\def\negated#1{\if-#1\else-#1\fi} % does only work in macros or text
+
+% This permits things like ^\index{hans}^, where hans is
+% duplicated in the text.
+
+\newif\ifduplicate
+
+\bgroup
+
+\gdef\checkduplication % in line with Knuth
+ {\ifmmode\expandafter^\else\expandafter\startduplication\fi}
+
+\gdef\insideduplication
+ {\ifmmode\expandafter^\else\expandafter\egroup\fi}
+
+\catcode`\^=\@@active
+
+\gdef\enableduplication
+ {\catcode`\^=\@@active \let^\checkduplication}
+
+\gdef\disableduplication
+ {\catcode`\^=\@@superscript}
+
+\gdef\startduplication
+ {\bgroup \duplicatetrue \let^\insideduplication}
+
+\egroup
+
+\def\gobbleassigndimen#1\\{}
+
+\def\assigndimen#1#2%
+ {\afterassignment\gobbleassigndimen#1=#2\!!zeropoint\\}
+
+\def\setusage#1%
+ {\@EA\let\csname#1\endcsname\iftrue}
+
+\def\resetusage#1%
+ {\@EA\let\csname#1\endcsname\iffalse}
+
+\def\ifusage#1%
+ {\ifcsname#1\endcsname\else
+ \resetusage{#1}%
+ \fi
+ \csname#1\endcsname}
+
+%D Very handy, more efficient than \type{{}}, and more readable
+%D than \type {\empty}.
+
+\let\donothing\empty
+
+% The following macros are used in XML handling.
+
+\long\setvalue{@u@s@"}#1#2"{#2} \long\setvalue{@g@s@"}#1#2"{\scratchtoks{#2}}
+\long\setvalue{@u@s@'}#1#2'{#2} \long\setvalue{@g@s@'}#1#2'{\scratchtoks{#2}}
+\long\setvalue{@u@s@ }#1#2 {#2} \long\setvalue{@g@s@ }#1#2 {\scratchtoks{#2}}
+
+\long\def\unstringed#1{\csname\ifcsname @u@s@#1\endcsname @u@s@#1\else\s!empty\fi\endcsname#1}
+\long\def\grabstring#1{\csname\ifcsname @g@s@#1\endcsname @g@s@#1\else\s!empty\fi\endcsname#1}
+
+\def\dowithgrabbedstring#1%
+ {\def\@@dowithgrabbedstring{#1}%
+ \afterassignment\@@dowithgrabbedstring\grabstring}
+
+\def\expifequalelse#1#2%
+ {\@@ifequal#1\relax\relax\@@and#2\relax\relax\@@then}
+
+\def\@@ifequal#1#2\@@and#3%
+ {\ifx#1\relax
+ \ifx#3\relax
+ \@EAEAEA\@@if@@equal@@true
+ \else
+ \@EAEAEA\@@if@@equal@@false
+ \fi
+ \else
+ \ifx#3\relax
+ \@EAEAEAEAEAEA\@@if@@equal@@false
+ \else\ifx#1#3%
+ % go on
+ \else
+ \@EAEAEAEAEAEA\@@if@@equal@@false
+ \fi\fi
+ \fi
+ \@@ifequal#2\@@and}
+
+\long\def\@@if@@equal@@true #1\@@then#2#3{#2}
+\long\def\@@if@@equal@@false#1\@@then#2#3{#3}
+
+%D new stuff :
+
+\def\partialexpanded#1%
+ {\let\@@notexpanded\noexpand
+ \long\xdef\@@expanded{\noexpand#1}%
+ \let\@@notexpanded\empty
+ \@@expanded}
+
+\def\appended#1#2#3{\@EA#1\@EA#2\@EA{#2#3}}
+\def\appendvalue #1{\@EA\appended\@EA \def\csname#1\endcsname}
+\def\appendgvalue#1{\@EA\appended\@EA\gdef\csname#1\endcsname}
+
+\def\prepended#1#2#3{\scratchtoks{#3}\@EA\@EA\@EA#1\@EA\@EA\@EA#2\@EA\@EA\@EA{\@EA\the\@EA\scratchtoks#2}}
+\def\prependvalue #1{\@EA\prepended\@EA \def\csname#1\endcsname}
+\def\prependgvalue#1{\@EA\prepended\@EA\gdef\csname#1\endcsname}
+
+%D \macros
+%D {compresscommacommandnrs,compresscommalistnrs,compressedcommalistnrs,
+%D compresscommacommand,compresscommalist,compressedcommalist,
+%D reversecommacommand,reversecommalist,reversedcommalist}
+%D
+%D The following two list processing macros are needed by Taco's
+%D bibliography module. The numbers compressor converts the
+%D list in a list of ranges. The normal compressor remove duplicate
+%D and empty entries.
+
+\def\compresscommalistnrs[#1]%
+ {\let\compressedlist\empty
+ \!!counta\maxdimen
+ \!!countb\maxdimen
+ \processcommalist[#1]\docompresslistnrs
+ \ifnum\!!counta=\maxdimen\else\dodocompresslistnrs\fi}
+
+\def\compresscommacommandnrs[#1]%
+ {\normalexpanded{\noexpand\compresscommalistnrs[#1]}}
+
+\def\docompresslistnrs#1%
+ {\edef\commalistelement{#1}%
+ \ifx\commalistelement\empty\else
+ \ifnum\!!counta=\maxdimen
+ \!!counta\commalistelement\relax
+ \!!countb\!!counta
+ \else
+ \advance\!!countb\plusone
+ \ifnum\commalistelement>\!!countb
+ \advance\!!countb\minusone
+ \dodocompresslistnrs
+ \!!counta\commalistelement\relax
+ \!!countb\!!counta
+ \fi
+ \fi
+ \fi}
+
+\def\dodocompresslistnrs
+ {\edef\compressedlist
+ {\ifx\compressedlist\empty\else\compressedlist,\fi
+ {\the\!!counta}{\ifnum\!!countb>\!!counta\the\!!countb\fi}}}
+
+%D \def\test#1{{\tttf#1->\compresscommalistnrs[#1]\defconvertedcommand\ascii\compressedlist\ascii}}
+%D \startlines
+%D \test{}
+%D \test{1}
+%D \test{1,3}
+%D \test{1,3,4}
+%D \test{1,3,3,4,5}
+%D \test{1,3,3,4,5,8}
+%D \test{1,3,3,4,5,5,8,10}
+%D \test{1,3,4,5,8,10,11}
+%D \test{1,,3,,4,,5,,8,,10,,11,}
+%D \stoplines
+
+\def\compresscommalist[#1]%
+ {\let\compressedlist\empty
+ \let\!!stringa\empty
+ \processcommalist[#1]\docompresslist}
+
+\def\compresscommacommand[#1]%
+ {\normalexpanded{\noexpand\compresscommalist[#1]}}
+
+\def\docompresslist#1%
+ {\edef\commalistelement{#1}%
+ \ifx\commalistelement\empty \else
+ \ifx\!!stringa\commalistelement \else
+ \ifx\compressedlist\empty
+ \def\compressedlist{#1}%
+ \else
+ \appended\def\compressedlist{,#1}%
+ \fi
+ \let\!!stringa\commalistelement
+ \fi
+ \fi}
+
+%D \def\test#1{{\tttf#1->\compresscommalist[#1]\defconvertedcommand\ascii\compressedlist\ascii}}
+%D \startlines
+%D \test{}
+%D \test{1}
+%D \test{1,3}
+%D \test{1,3,4}
+%D \test{1,3,3,4,5}
+%D \test{1,3,3,4,5,8}
+%D \test{1,3,3,4,5,5,8,10}
+%D \test{1,3,4,5,8,10,11}
+%D \test{1,,3,,4,,5,,8,,10,,11,}
+%D \stoplines
+
+\def\reversecommalist[#1]%
+ {\let\reversedlist\empty
+ \processcommalist[#1]\doreverselist}
+
+\def\doreverselist#1%
+ {\ifx\reversedlist\empty
+ \def\reversedlist{#1}%
+ \else
+ \prepended\def\reversedlist{#1,}%
+ \fi}
+
+\def\reversecommacommand[#1]%
+ {\normalexpanded{\noexpand\reversecommalist[#1]}}
+
+%D \def\test#1{{\tttf#1->\reversecommalist[#1]\defconvertedcommand\ascii\reversedlist\ascii}}
+%D \startlines
+%D \test{}
+%D \test{1}
+%D \test{1,3}
+%D \test{1,3,4}
+%D \test{1,3,3,4,5}
+%D \test{1,3,3,4,5,8}
+%D \test{1,3,3,4,5,5,8,10}
+%D \test{1,3,4,5,8,10,11}
+%D \test{1,,3,,4,,5,,8,,10,,11,}
+%D \stoplines
+
+%D \macros
+%D {stripstring}
+%D
+%D Needed in bookmarks:
+%D
+%D \starttyping
+%D {\sanitizePDFdocencoding test \CONTEXT\ test \to\oeps\stripstring\oeps\tttf[\oeps]}
+%D \stoptyping
+
+\def\stripstring#1% #1 is \cs
+ {\edef\cs{\ctxlua
+ {tex.sprint(tex.vrbcatcodes,string.strip(\!!bs\detokenize\expandafter{#1}\!!es))}}}
+
+%D \macros
+%D {dowithrange}
+%D
+%D This one is for Mojca Miklavec, who made me aware of the fact that
+%D \type {page-imp.tex} was not the best place to hide it.
+
+\def\dowithrange#1#2% #2 takes number
+ {\splitstring#1\at:\to\fromrange\and\torange
+ \ifx\torange\empty\let\torange\fromrange\fi
+ \dostepwiserecurse\fromrange\torange1{#2{\recurselevel}}}
+
+%D \macros {uncompresslist}
+%D
+%D When given a list like \type{1,4-7,9} as argument, this macro
+%D will store the expanded commalist in \type{\uncompressedlist}.
+%D
+%D \startbuffer
+%D \def\MojcaHasToDoTheTasks[#1]#2%
+%D {{\uncompresslist[#1]%
+%D \def\processitem##1{I have to do ##1 #2\par}%
+%D \processcommacommand[\uncompressedlist]\processitem}}
+%D
+%D \MojcaHasToDoTheTasks [1-4,7,9-11] {until tomorrow}
+%D \stopbuffer
+%D
+%D Here is an example of how to use \type {\uncompresslist}:
+%D \typebuffer
+%D
+%D The output of this is:
+%D
+%D \getbuffer
+
+\def\uncompresslist[#1]% by TH
+ {\let\uncompressedlist\empty
+ \def\docompressedlistitem##1-##2-%
+ {\@EA\dorecurse\@EA
+ {\the\numexpr1+##2-##1\relax}%
+ {\@EA\appendtocommalist\@EA{\the\numexpr##1-1+####1\relax}\uncompressedlist}}%
+ \def\douncompresslist##1%
+ {\doifinstringelse{-}{##1}
+ {\docompressedlistitem##1-}
+ {\appendtocommalist{##1}\uncompressedlist}}%
+ \processcommalist[#1]\douncompresslist}
+
+%D \macros
+%D {ignoreimplicitspaces}
+%D
+%D \startbuffer
+%D \def\whatever[#1]{\expanded{\definedfont[#1 at 12pt]}\ignorespaces}
+%D {a\whatever[Serif]b a\whatever[Serif] b a\whatever[Serif]\space b}
+%D \def\whatever[#1]{\expanded{\definedfont[#1 at 12pt]}\ignoreimplicitspaces}
+%D {a\whatever[Serif]b a\whatever[Serif] b a\whatever[Serif]\space b}
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+
+\def\ignoreimplicitspaces
+ {\doifnextcharelse\relax\relax\relax}
+
+%D \macros
+%D {processwords}
+%D
+%D Not that sophisticated but sometimes users (like in metafun).
+
+\def\doprocesswords#1 #2\od
+ {\doifsomething{#1}{\processword{#1} \doprocesswords#2 \od}}
+
+\def\processwords#1%
+ {\doprocesswords#1 \od}% no \unskip
+
+\let\processword\relax
+
+% new
+%
+% \startnointerference
+% all kind of code
+% \stopnointerference
+
+\newbox\nointerferencebox
+
+\def\startnointerference % not even grouped !
+ {\setbox\nointerferencebox\vbox
+ \bgroup}
+
+\def\stopnointerference
+ {\egroup
+ \setbox\nointerferencebox\emptybox}
+
+% \def\appendtovaluelist#1#2%
+% {\ifcsname#1\endcsname
+% \expandafter\ifx\csname#1\endcsname\empty
+% \expandafter\def\csname#1\endcsname{#2}%
+% \else
+% \expandafter\def\csname#1\expandafter\expandafter\expandafter\endcsname
+% \expandafter\expandafter\expandafter{\csname#1\endcsname,#2}%
+% \fi
+% \else
+% \expandafter\def\csname#1\endcsname{#2}%
+% \fi}
+%
+% or
+%
+% \def\appendtovaluelist#1%
+% {\ifcsname#1\endcsname
+% \expandafter\ifx\csname#1\endcsname\empty
+% \expandafter\noappendtovaluelist\csname#1\expandafter\expandafter\expandafter\endcsname
+% \else
+% \expandafter\doappendtovaluelist\csname#1\expandafter\expandafter\expandafter\endcsname
+% \fi
+% \else
+% \expandafter\noappendtovaluelist\csname#1\expandafter\endcsname
+% \fi}
+
+% \def\doappendtovaluelist#1#2{\expandafter\def\expandafter#1\expandafter{#1,#2}}
+% \def\noappendtovaluelist#1#2{\def#1{#2}}
+
+% \appendtovaluelist{mylist}{aap}
+% \appendtovaluelist{mylist}{noot}
+% \appendtovaluelist{mylist}{mies}
+
+% \showvalue{mylist}
+
+%D A variant for \type {\executeifdefined}:
+
+\def\expandcheckedcsname#1#2#3%
+ {\csname#1\ifcsname#1#2\endcsname#2\else#3\fi\endcsname}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/syst-cat.mkii b/Master/texmf-dist/tex/context/base/syst-cat.mkii
deleted file mode 100644
index 6146102586e..00000000000
--- a/Master/texmf-dist/tex/context/base/syst-cat.mkii
+++ /dev/null
@@ -1,61 +0,0 @@
-%D \module
-%D [ file=syst-cat,
-%D version=2006.09.18,
-%D title=\CONTEXT\ System Macros,
-%D subtitle=Catcode Handling,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%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
-
-\def\newcatcodetable#1%
- {\global\advance\cctdefcounter\plusone
- \global\mathchardef#1\cctdefcounter
- \expandafter\xdef\csname @@ccn:\number\cctdefcounter\endcsname{\string#1}% logging
- \expandafter\newtoks\csname @@cct:\number\cctdefcounter\endcsname}
-
-\mathchardef\currentcatcodetable\zerocount
-
-\newtoks \setdefaultlowercatcodes
-\newtoks \setdefaultuppercatcodes
-
-\def\next#1% we don't have a proper loop defined yet
- {\edef\nextnext{#1{\the#1\catcode\the\cctcountera\space\ifnum\catcode\cctcountera=11 11\else12\fi}}%
- \nextnext\ifnum\cctcountera<\cctcounterb \advance\cctcountera\plusone \expandafter\next\expandafter#1\fi}
-
-\cctcountera 0 \cctcounterb 127 \next\setdefaultlowercatcodes
-\cctcountera 128 \cctcounterb 255 \next\setdefaultuppercatcodes
-
-% \chardef\activehackcode=`~
-
-% \def\next#1% we don't have a proper loop defined yet
-% {\catcode\cctcountera 13
-% \cctcounterc\uccode\activehackcode
-% \uccode\activehackcode\cctcountera
-% \catcode\uccode\activehackcode 13
-% \uppercase{\edef~{\detokenize{~}}}%
-% \uccode\activehackcode\cctcounterc
-% \ifnum\cctcountera<\cctcounterb \advance\cctcountera\plusone \expandafter\next\expandafter#1\fi}
-
-% \cctcountera 128 \cctcounterb 255 \next\setdefaultuppercatcodes
-
-\recatcodeuppercharactersfalse
-
-\def\catcodetable#1%
- {\mathchardef\currentcatcodetable#1%
- \the\setdefaultlowercatcodes
- \ifrecatcodeuppercharacters\the\setdefaultuppercatcodes\fi
- \the\csname @@cct:\number#1\endcsname}
-
-\long\def\startcatcodetable#1#2\stopcatcodetable
- {\global\csname @@cct:\number#1\endcsname{#2}}
-
-\long\def\startextendcatcodetable#1#2\stopextendcatcodetable
- {\global\csname @@cct:\number#1\endcsname\expandafter{\the\csname @@cct:\number#1\endcsname#2}}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/syst-cat.mkiv b/Master/texmf-dist/tex/context/base/syst-cat.mkiv
deleted file mode 100644
index 46ee0f394db..00000000000
--- a/Master/texmf-dist/tex/context/base/syst-cat.mkiv
+++ /dev/null
@@ -1,120 +0,0 @@
-%D \module
-%D [ file=syst-cat,
-%D version=2006.09.18,
-%D title=\CONTEXT\ System Macros,
-%D subtitle=Catcode Handling,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%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
-
-\def\newcatcodetable#1%
- {\global\advance\cctdefcounter\plusone
- \expandafter\xdef\csname @@ccn:\number\cctdefcounter\endcsname{\string#1}% logging
- \global\mathchardef#1\cctdefcounter}
-
-\newcatcodetable \scratchcatcodetable \initcatcodetable\scratchcatcodetable
-
-\ifx\nilcatcodes \undefined \newcatcodetable \nilcatcodes \fi
-\ifx\texcatcodes \undefined \newcatcodetable \texcatcodes \fi
-\ifx\ctxcatcodes \undefined \newcatcodetable \ctxcatcodes \fi
-\ifx\notcatcodes \undefined \newcatcodetable \notcatcodes \fi
-\ifx\mthcatcodes \undefined \newcatcodetable \mthcatcodes \fi % brrr
-\ifx\vrbcatcodes \undefined \newcatcodetable \vrbcatcodes \fi
-\ifx\prtcatcodes \undefined \newcatcodetable \prtcatcodes \fi
-\ifx\xmlcatcodesn\undefined \newcatcodetable \xmlcatcodesn \fi % normal
-\ifx\xmlcatcodese\undefined \newcatcodetable \xmlcatcodese \fi % entitle
-\ifx\xmlcatcodesr\undefined \newcatcodetable \xmlcatcodesr \fi % reduce
-
-\newtoks \setdefaultcatcodes
-
-\setdefaultcatcodes
- {\catcode`\\ 12
- \catcode`\^^M 12
- \catcode`\ 12
- \catcode`\% 12
- \catcode127 12 }
-
-\long\def\startcatcodetable#1#2\stopcatcodetable
- {\bgroup
- \catcodetable\scratchcatcodetable
- \the\setdefaultcatcodes
- #2%
- \savecatcodetable#1\relax
- \egroup}
-
-\newcatcodetable\dummycatcodes
-
-% \long\def\startextendcatcodetable#1#2\stopextendcatcodetable
-% {\bgroup
-% \catcodetable#1\relax
-% #2%
-% \savecatcodetable\dummycatcodes
-% \catcodetable\dummycatcodes
-% \savecatcodetable#1\relax
-% \egroup}
-
-\long\def\startextendcatcodetable#1#2\stopextendcatcodetable
- {\bgroup
- \catcodetable#1\relax
- \globaldefs\plusone
- #2%
- \globaldefs\zerocount
- \egroup}
-
-% ==
-%
-% \long\def\startextendcatcodetable#1#2\stopextendcatcodetable
-% {\bgroup
-% \scratchcounter\the\catcodetable
-% \catcodetable #1 #2
-% \catcodetable\scratchcounter
-% \egroup}
-
-\def\letcatcodecommand
- {\afterassignment\letcatcodecommanda\cctcountera}
-
-\def\letcatcodecommanda
- {\afterassignment\letcatcodecommandb\cctcounterb}
-
-% construct the definition in lua
-%
-% \def\letcatcodecommandb
-% {\scratchcounter\catcode\cctcounterb \catcode\cctcounterb=13
-% \directlua\CTXlua{tex.print(tex.texcatcodes,"\\xdef " .. string.char(\number\cctcounterb)
-% .. "{\\noexpand\\catcodecommand{\number\cctcounterb}}")}%
-% \catcode\cctcounterb\scratchcounter
-% \expandafter\let\csname cc:\number\cctcountera:\number\cctcounterb\endcsname}
-%
-% or less messy:
-%
-% \def\letcatcodecommandb
-% {\chardef\savedcctcode\catcode\cctcounterb
-% \catcode\cctcounterb=13
-% \expandafter\edef\directlua\CTXlua{tex.sprint(tex.texcatcodes,string.char(\number\cctcounterb))}%
-% {\noexpand\catcodecommand{\number\cctcounterb}}%
-% \catcode\cctcounterb\savedcctcode
-% \expandafter\let\csname cc:\number\cctcountera:\number\cctcounterb\endcsname}
-
-\let\currentcatcodetable\catcodetable
-
-\startruntimectxluacode
- tex.nilcatcodes = \number\nilcatcodes ;
- tex.texcatcodes = \number\texcatcodes ;
- tex.ctxcatcodes = \number\ctxcatcodes ;
- tex.notcatcodes = \number\notcatcodes ;
- tex.mthcatcodes = \number\mthcatcodes ;
- tex.vrbcatcodes = \number\vrbcatcodes ;
- tex.prtcatcodes = \number\prtcatcodes ;
- tex.xmlcatcodes = \number\xmlcatcodesn ;
- tex.xmlcatcodesn = \number\xmlcatcodesn ; % normal
- tex.xmlcatcodese = \number\xmlcatcodese ; % entitle
- tex.xmlcatcodesr = \number\xmlcatcodesr ; % reduce
-\stopruntimectxluacode
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/syst-cat.tex b/Master/texmf-dist/tex/context/base/syst-cat.tex
deleted file mode 100644
index 8994f207b24..00000000000
--- a/Master/texmf-dist/tex/context/base/syst-cat.tex
+++ /dev/null
@@ -1,494 +0,0 @@
-%D \module
-%D [ file=syst-cat,
-%D version=2006.09.18,
-%D title=\CONTEXT\ System Macros,
-%D subtitle=Catcode Handling,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D A long standing wish has been the availability of catcode
-%D arrays. Because traditional \TEX\ does ot provide this we
-%D implement a fake method in the Mark II file.
-
-\ifx\zerocount\undefined \chardef \zerocount= 0 \fi
-\ifx\plusone \undefined \chardef \plusone = 1 \fi
-\ifx\minusone \undefined \newcount\minusone \minusone =-1 \fi
-
-\newif \ifrecatcodeuppercharacters % only used in good old tex
-
-\newcount\cctdefcounter \cctdefcounter\plusone % 0 = signal
-
-\newcount\cctcountera
-\newcount\cctcounterb
-\newcount\cctcounterc
-
-\loadmarkfile{syst-cat}
-
-%D The next command can be defined in a cleaner way in the
-%D Mk IV file but we want to have a fast one with a minimal
-%D chance for interference.
-
-\chardef\activehackcode=`\~
-
-%D Once a catcode is assigned, the next assignments will happen faster.
-
-% (expandable) let
-
-\def\letcatcodecommand {\afterassignment\letcatcodecommanda\cctcountera}
-\def\letcatcodecommanda{\afterassignment\letcatcodecommandb\cctcounterb}
-
-\def\letcatcodecommandb % each time
- {\ifcsname CCL:\number\cctcountera:\number\cctcounterb\endcsname
- \csname CCL:\number\cctcountera:\number\cctcounterb\expandafter\endcsname
- \else
- \expandafter\letcatcodecommandc
- \fi}
-
-\def\letcatcodecommandc % only first time
- {\expandafter\gdef\csname CCL:\number\cctcountera:\number\cctcounterb\expandafter\endcsname\expandafter
- {\expandafter\let\csname CCC:\number\cctcountera:\number\cctcounterb\endcsname}%
- \reinstatecatcodecommanda
- \csname CCL:\number\cctcountera:\number\cctcounterb\endcsname}
-
-% expandable def
-
-\def\defcatcodecommand {\afterassignment\defcatcodecommanda\cctcountera}
-\def\defcatcodecommanda{\afterassignment\defcatcodecommandb\cctcounterb}
-
-\def\defcatcodecommandb % each time
- {\ifcsname CCD:\number\cctcountera:\number\cctcounterb\endcsname
- \csname CCD:\number\cctcountera:\number\cctcounterb\expandafter\endcsname
- \else
- \expandafter\defcatcodecommandc
- \fi}
-
-\def\defcatcodecommandc % only first time
- {\expandafter\gdef\csname CCD:\number\cctcountera:\number\cctcounterb\expandafter\endcsname
- \expandafter##\expandafter1\expandafter
- {\expandafter\def\csname CCC:\number\cctcountera:\number\cctcounterb\endcsname{##1}}%
- \reinstatecatcodecommanda
- \csname CCD:\number\cctcountera:\number\cctcounterb\endcsname}
-
-% un expandable def (e.g. used for discretionaries)
-
-\def\uedcatcodecommand {\afterassignment\uedcatcodecommanda\cctcountera}
-\def\uedcatcodecommanda{\afterassignment\uedcatcodecommandb\cctcounterb}
-
-\def\uedcatcodecommandb % each time
- {\ifcsname CCU:\number\cctcountera:\number\cctcounterb\endcsname
- \csname CCU:\number\cctcountera:\number\cctcounterb\expandafter\endcsname
- \else
- \expandafter\uedcatcodecommandc
- \fi}
-
-\def\uedcatcodecommandc % only first time
- {\expandafter\gdef\csname CCU:\number\cctcountera:\number\cctcounterb\expandafter\endcsname
- \expandafter##\expandafter1\expandafter
- {\expandafter\unexpanded\expandafter\def\csname CCC:\number\cctcountera:\number\cctcounterb\endcsname{##1}}%
- \reinstatecatcodecommanda
- \csname CCU:\number\cctcountera:\number\cctcounterb\endcsname}
-
-\def\reinstatecatcodecommand{\afterassignment\reinstatecatcodecommanda\cctcounterb}
-
-\def\reinstatecatcodecommanda % can be used when a direct definition has been done
- {\bgroup % and the selector has been lost
- \uccode\activehackcode\cctcounterb
- \catcode\uccode\activehackcode13
- \uppercase{\xdef~{\noexpand\catcodecommand{\number\cctcounterb}}}%
- \egroup}
-
-\chardef\defaultcatcodetable\zerocount
-
-\def\catcodecommand#1%
- {\csname CCC:\number
- \ifcsname CCC:\number\currentcatcodetable:\number#1\endcsname
- \currentcatcodetable \else \defaultcatcodetable
- \fi
- :\number#1\endcsname}
-
-%D Here we define some catcode regimes:
-
-\ifx\nilcatcodes \undefined \newcatcodetable \nilcatcodes \fi
-\ifx\texcatcodes \undefined \newcatcodetable \texcatcodes \fi
-\ifx\ctxcatcodes \undefined \newcatcodetable \ctxcatcodes \fi
-\ifx\notcatcodes \undefined \newcatcodetable \notcatcodes \fi
-\ifx\vrbcatcodes \undefined \newcatcodetable \vrbcatcodes \fi
-\ifx\prtcatcodes \undefined \newcatcodetable \prtcatcodes \fi
-\ifx\mthcatcodes \undefined \newcatcodetable \mthcatcodes \fi % math, not used, too tricky
-\ifx\xmlcatcodesn\undefined \newcatcodetable \xmlcatcodesn \fi % normal
-\ifx\xmlcatcodese\undefined \newcatcodetable \xmlcatcodese \fi % entitle
-\ifx\xmlcatcodesr\undefined \newcatcodetable \xmlcatcodesr \fi % reduce
-
-% was redefined in core-job anyway: \catcode`\^^L = 13 % ascii form-feed
-
-\startcatcodetable \nilcatcodes
- \catcode`\^^I = 10 % ascii tab is a blank space
- \catcode`\^^M = 5 % ascii return is end-line
- \catcode`\^^L = 5 % ascii form-feed
- \catcode`\ = 10 % ascii space is blank space
- \catcode`\^^Z = 9 % ascii eof is ignored
-\stopcatcodetable
-
-\startcatcodetable \vrbcatcodes % probably less needed
- \catcode`\^^I = 12
- \catcode`\^^M = 12
- \catcode`\^^L = 12
- \catcode`\ = 12
- \catcode`\^^Z = 12
-\stopcatcodetable
-
-\startcatcodetable \texcatcodes
- \catcode`\^^I = 10
- \catcode`\^^M = 5
- \catcode`\^^L = 5
- \catcode`\ = 10
- \catcode`\^^Z = 9
- \catcode`\\ = 0
- \catcode`\{ = 1
- \catcode`\} = 2
- \catcode`\$ = 3
- \catcode`\& = 4
- \catcode`\# = 6
- \catcode`\^ = 7
- \catcode`\_ = 8
- \catcode`\% = 14
-\stopcatcodetable
-
-\startcatcodetable \ctxcatcodes
- \catcode`\^^I = 10
- \catcode`\^^M = 5
-% \catcode`\^^J = 10 % new
- \catcode`\^^L = 5
- \catcode`\ = 10
- \catcode`\^^Z = 9
- \catcode`\\ = 0
- \catcode`\{ = 1
- \catcode`\} = 2
- \catcode`\$ = 3
- \catcode`\& = 4
- \catcode`\# = 6
- \catcode`\^ = 7
- \catcode`\_ = 8
- \catcode`\% = 14
- \catcode`\~ = 13
- \catcode`\| = 13
-\stopcatcodetable
-
-\startcatcodetable \notcatcodes
- \catcode`\^^I = 10 % ascii tab is a blank space
- \catcode`\^^M = 5 % ascii return is end-line
- \catcode`\^^L = 5 % ascii form-feed
- \catcode`\ = 10 % ascii space is blank space
- \catcode`\^^Z = 9 % ascii eof is ignored
- \catcode`\~ = 12
- \catcode`\# = 12 % probably too much, in principle
- \catcode`\$ = 12 % nilcatcodes would be ok too
- \catcode`\% = 12
- \catcode`\^ = 12
- \catcode`\& = 12
- \catcode`\_ = 12
- \catcode`\< = 12
- \catcode`\> = 12
- \catcode`\{ = 12
- \catcode`\} = 12
- \catcode`\" = 12
- \catcode`\' = 12
- \catcode`\/ = 12
- \catcode`\\ = 12
- \catcode`\| = 12
-\stopcatcodetable
-
-\startcatcodetable \mthcatcodes
- \catcode`\^^I = 10
- \catcode`\^^M = 5
- %\catcode`\^^J = 10 % new
- \catcode`\^^L = 5
- \catcode`\ = 10
- \catcode`\^^Z = 9
- \catcode`\\ = 0
- \catcode`\{ = 1
- \catcode`\} = 2
- \catcode`\$ = 3
- \catcode`\& = 4
- \catcode`\# = 6
- \catcode`\^ = 7
- \catcode`\_ = 8
- \catcode`\% = 14
- %\catcode`\~ = 13
- %\catcode`\| = 13
-\stopcatcodetable
-
-\startcatcodetable \prtcatcodes
- \catcode`\^^I = 10
- \catcode`\^^M = 5
- \catcode`\^^L = 5
- \catcode`\ = 10
- \catcode`\^^Z = 9
- \catcode`\\ = 0
- \catcode`\{ = 1
- \catcode`\} = 2
- \catcode`\$ = 3
- \catcode`\& = 4
- \catcode`\# = 6
- \catcode`\^ = 7
- \catcode`\_ = 8
- \catcode`\% = 14
- \catcode`\@ = 11
- \catcode`\! = 11
- \catcode`\? = 11
- \catcode`\~ = 13
- \catcode`\| = 13
-\stopcatcodetable
-
-\startcatcodetable \xmlcatcodesn
- \catcode`\^^I = 10 % ascii tab is a blank space
- \catcode`\^^M = 5 % ascii return is end-line
- \catcode`\^^L = 5 % ascii form-feed
- \catcode`\ = 10 % ascii space is blank space
- \catcode`\^^Z = 9 % ascii eof is ignored
- \catcode`\& = 13 % entity
- \catcode`\< = 13 % element
- \catcode`\> = 12
- \catcode`\" = 12 % probably not needed any more
- \catcode`\/ = 12 % probably not needed any more
- \catcode`\' = 12 % probably not needed any more
- \catcode`\~ = 12 % probably not needed any more
- \catcode`\# = 12 % probably not needed any more
- \catcode`\\ = 12 % probably not needed any more
-\stopcatcodetable
-
-\startcatcodetable \xmlcatcodese
- \catcode`\^^I = 10 % ascii tab is a blank space
- \catcode`\^^M = 5 % ascii return is end-line
- \catcode`\^^L = 5 % ascii form-feed
- \catcode`\ = 10 % ascii space is blank space
- \catcode`\^^Z = 9 % ascii eof is ignored
- \catcode`\& = 13 % entity
- \catcode`\< = 13 % element
- \catcode`\> = 12
- \catcode`\# = 13
- \catcode`\$ = 13
- \catcode`\% = 13
- \catcode`\\ = 13
- \catcode`\^ = 13
- \catcode`\_ = 13
- \catcode`\{ = 13
- \catcode`\} = 13
- \catcode`\| = 13
- \catcode`\~ = 13
-\stopcatcodetable
-
-\startcatcodetable \xmlcatcodesr
- \catcode`\^^I = 10 % ascii tab is a blank space
- \catcode`\^^M = 5 % ascii return is end-line
- \catcode`\^^L = 5 % ascii form-feed
- \catcode`\ = 10 % ascii space is blank space
- \catcode`\^^Z = 9 % ascii eof is ignored
- \catcode`\& = 13 % entity
- \catcode`\< = 13 % element
- \catcode`\> = 12
- \catcode`\# = 13
- \catcode`\$ = 13
- \catcode`\% = 13
- \catcode`\\ = 13
- \catcode`\^ = 13
- \catcode`\_ = 13
- \catcode`\{ = 13
- \catcode`\} = 13
- \catcode`\| = 13
- \catcode`\~ = 13
-\stopcatcodetable
-
-\letcatcodecommand \ctxcatcodes `\| \relax
-\letcatcodecommand \ctxcatcodes `\~ \relax
-
-%letcatcodecommand \prtcatcodes `\| \relax % falls back on ctx
-%letcatcodecommand \prtcatcodes `\~ \relax % falls back on ctx
-
-\letcatcodecommand \xmlcatcodesn `\& \relax
-\letcatcodecommand \xmlcatcodesn `\< \relax
-
-\letcatcodecommand \xmlcatcodese `\& \relax
-\letcatcodecommand \xmlcatcodese `\< \relax
-
-\letcatcodecommand \xmlcatcodesr `\& \relax
-\letcatcodecommand \xmlcatcodesr `\< \relax
-
-\letcatcodecommand \xmlcatcodese `\# \relax
-\letcatcodecommand \xmlcatcodese `\$ \relax
-\letcatcodecommand \xmlcatcodese `\% \relax
-\letcatcodecommand \xmlcatcodese `\\ \relax
-\letcatcodecommand \xmlcatcodese `\^ \relax
-\letcatcodecommand \xmlcatcodese `\_ \relax
-\letcatcodecommand \xmlcatcodese `\{ \relax
-\letcatcodecommand \xmlcatcodese `\} \relax
-\letcatcodecommand \xmlcatcodese `\| \relax
-\letcatcodecommand \xmlcatcodese `\~ \relax
-
-\letcatcodecommand \xmlcatcodesr `\# \relax
-\letcatcodecommand \xmlcatcodesr `\$ \relax
-\letcatcodecommand \xmlcatcodesr `\% \relax
-\letcatcodecommand \xmlcatcodesr `\\ \relax
-\letcatcodecommand \xmlcatcodesr `\^ \relax
-\letcatcodecommand \xmlcatcodesr `\_ \relax
-\letcatcodecommand \xmlcatcodesr `\{ \relax
-\letcatcodecommand \xmlcatcodesr `\} \relax
-\letcatcodecommand \xmlcatcodesr `\| \relax
-\letcatcodecommand \xmlcatcodesr `\~ \relax
-
- \catcodetable \ctxcatcodes
-\let\defaultcatcodetable\ctxcatcodes
-\let\xmlcatcodes \xmlcatcodesn
-
-%D \macros
-%D {restorecatcodes,
-%D beginrestorecatcodes,endrestorecatcodes}
-%D
-%D We're not finished dealing \CATCODES\ yet. In \CONTEXT\ we
-%D use only one auxiliary file, which deals with tables of
-%D contents, registers, two pass tracking, references etc. This
-%D file, as well as files concerning graphics, is processed when
-%D needed, which can be in the mid of typesetting verbatim.
-%D However, when reading in data in verbatim mode, we should
-%D temporary restore the normal \CATCODES, and that's exactly
-%D what the next macros do. Saving the catcodes can be
-%D disabled by saying \type{\localcatcodestrue}.
-
-\let\savedcatcodetable\relax
-
-\newcount\catcoderestorelevel
-
-\def\pushcatcodetable
- {\advance\catcoderestorelevel\plusone
- \tracepushcatcodetable
- \expandafter\mathchardef\csname scct:\number\catcoderestorelevel\endcsname\currentcatcodetable}
-
-% \def\popcatcodetable
-% {\expandafter\catcodetable\csname scct:\number\catcoderestorelevel\endcsname
-% \tracepopcatcodetable
-% \advance\catcoderestorelevel\minusone}
-
-\def\popcatcodetable
- {\ifcase\catcoderestorelevel
- \immediate\write16{}%
- \immediate\write16{Fatal error: catcode push/pop mismatch. Fix this!}\wait\end
- \immediate\write16{}%
- \else
- \expandafter\catcodetable\csname scct:\number\catcoderestorelevel\endcsname
- \tracepopcatcodetable
- \advance\catcoderestorelevel\minusone
- \fi}
-
-\def\restorecatcodes % takes previous level
- {\ifnum\catcoderestorelevel>\plusone
- \expandafter\catcodetable\csname scct:\number\numexpr\catcoderestorelevel-1\relax\endcsname
- \fi}
-
-\newtoks\everycatcodetable
-
-\def\setcatcodetable#1%
- {\catcodetable#1%
- \the\everycatcodetable
- \tracesetcatcodetable}
-
-\def\dotracecatcodetable#1{\immediate\write16{[#1]}}
-
-\def\tracecatcodetables
- {\def\tracesetcatcodetable {\dotracecatcodetable{set \catcodetablename\space at \number\catcoderestorelevel}}%
- \def\tracepushcatcodetable{\dotracecatcodetable{push \catcodetablename\space from \catcodetableprev\space at \number\catcoderestorelevel}}%
- \def\tracepopcatcodetable {\dotracecatcodetable{pop \catcodetablename\space to \catcodetableprev\space at \number\catcoderestorelevel}}}
-
-\def\catcodetableprev
- {\ifnum\numexpr\catcoderestorelevel-1\relax>\zerocount
- \csname @@ccn:\number\csname scct:\number\numexpr\catcoderestorelevel-1\relax\endcsname\endcsname
- \else
- -%
- \fi}
-
-\def\catcodetablename
- {\ifnum\currentcatcodetable>\zerocount
- \csname @@ccn:\number\currentcatcodetable\endcsname
- \else
- -%
- \fi}
-
-\ifx\empty\undefined \def\empty{} \fi
-
-\let\tracesetcatcodetable \empty
-\let\tracepushcatcodetable\empty
-\let\tracepopcatcodetable \empty
-
-% \def\beginrestorecatcodes{\pushcatcodetable\catcodetable\ctxcatcodes}
-% \def\endrestorecatcodes {\popcatcodetable}
-
-\def\beginrestorecatcodes{\pushcatcodetable}
-\def\endrestorecatcodes {\popcatcodetable}
-
-\def\unprotect {\pushcatcodetable\setcatcodetable\prtcatcodes}
-\def\protect {\popcatcodetable}
-
-%D \macros
-%D {installactivecharacter}
-
-\def\installactivecharacter#1 %
- {\edef\temp{\detokenize{#1}}%
- \cctcounterc\expandafter`\temp\relax % relax needed
- \expandafter\startextendcatcodetable
- \expandafter\ctxcatcodes\expandafter\catcode\the\cctcounterc=13
- \stopextendcatcodetable
- \letcatcodecommand \ctxcatcodes \cctcounterc \temp \relax
- \ifnum\currentcatcodetable=\ctxcatcodes \setcatcodetable\ctxcatcodes \fi}
-
-%D \macros
-%D {defineactivecharacter}
-%D
-%D Use this one with care, esp in combination with catcode
-%D vectors. There are better ways now.
-
-\chardef\activehackcode=`~
-
-% \def\defineactivecharacter #1 #2%
-% {\cctcounterc\uccode\activehackcode
-% \uccode\activehackcode\expandafter\doifnumberelse\expandafter{\string#1}\empty`#1%
-% \catcode\uccode\activehackcode13
-% \uppercase{\def\next{~}}%
-% \uccode\activehackcode\cctcounterc
-% \expandafter\expandafter\expandafter\def\expandafter\next\expandafter
-% {\expandafter\dohandleactivecharacter\next{#2}}}
-%
-% \defineactivecharacter "0EFFF {oeps} \utfchar{0xEFFF}
-
-\def\defineactivecharacter #1#2 #3%
- {\cctcounterc\uccode\activehackcode
- \if#1"\uccode\activehackcode\expandafter\doifnumberelse\expandafter{\string#1#2}\empty #1#2\else
- \uccode\activehackcode\expandafter\doifnumberelse\expandafter{\string#1#2}\empty`#1#2\fi
- \catcode\uccode\activehackcode13
- \uppercase{\def\next{~}}%
- \uccode\activehackcode\cctcounterc
- \expandafter\expandafter\expandafter\def\expandafter\next\expandafter
- {\expandafter\dohandleactivecharacter\next{#3}}}
-
-\chardef\activecharactermode\plusone % overloading still backward compatible
-
-\def\dodohandleactivecharacter#1#2{#2}
-\def\donthandleactivecharacter#1#2{\noexpand#1}
-
-\def\dohandleactivecharacter
- {\ifcase\activecharactermode
- \expandafter\donthandleactivecharacter
- \else
- \expandafter\dodohandleactivecharacter
- \fi}
-
-\def\makecharacteractive #1 {\catcode`#1\active}
-
-%D Handy for debugging:
-
-% \tracecatcodetables
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/syst-chr.tex b/Master/texmf-dist/tex/context/base/syst-chr.tex
deleted file mode 100644
index 085d7429f0d..00000000000
--- a/Master/texmf-dist/tex/context/base/syst-chr.tex
+++ /dev/null
@@ -1,131 +0,0 @@
-%D \module
-%D [ file=syst-chr,
-%D version=1997.01.03, % moved code
-%D title=\CONTEXT\ System Macros,
-%D subtitle=Character Related Things,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%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 We want to have access to the raw alternatives of the
-%D special characters. We use a \type {\xdef} instead of
-%D \type {\let} because we need an expandable token in a
-%D \type {\write}.
-
-\bgroup
-
-\catcode`B=\@@begingroup
-\catcode`E=\@@endgroup
-\catcode`.=\@@escape
-
-.catcode `.{ 12 .xdef .letteropenbrace B.string{E
-.catcode `.} 12 .xdef .letterclosebrace B.string}E
-.catcode `.& 12 .xdef .letterampersand B.string&E
-.catcode `.< 12 .xdef .letterless B.string<E
-.catcode `.> 12 .xdef .lettermore B.string>E
-.catcode `.# 12 .xdef .letterhash B.string#E
-.catcode `." 12 .xdef .letterdoublequote B.string"E
-.catcode `.' 12 .xdef .lettersinglequote B.string'E
-.catcode `.$ 12 .xdef .letterdollar B.string$E
-.catcode `.% 12 .xdef .letterpercent B.string%E
-.catcode `.^ 12 .xdef .letterhat B.string^E
-.catcode `._ 12 .xdef .letterunderscore B.string_E
-.catcode `.| 12 .xdef .letterbar B.string|E
-.catcode `.~ 12 .xdef .lettertilde B.string~E
-.catcode `.\ 12 .xdef .letterbackslash B.string\E
-.catcode `./ 12 .xdef .letterslash B.string/E
-.catcode `.? 12 .xdef .letterquestionmark B.string?E
-.catcode `.! 12 .xdef .letterexclamationmark B.string!E
-.catcode `.@ 12 .xdef .letterat B.string@E
-.catcode `.: 12 .xdef .lettercolon B.string:E
-
- .global .let .letterescape .letterbackslash
- .global .let .letterbgroup .letteropenbrace
- .global .let .letteregroup .letterclosebrace
- .global .let .letterleftbrace .letteropenbrace
- .global .let .letterrightbrace .letterclosebrace
-
-.egroup
-
-%D \macros % check this one
-%D {setcatcodes,uncatcodespecials,
-%D uncatcodecharacters,uncatcodespacetokens,
-%D setnaturalcatcodes,
-%D setverbosecscharacters}
-%D
-%D As its name says, \type{\uncatcodecharacters} resets the
-%D \CATCODE\ of characters. When we use an upper bound of
-%D 127 or 255, depending in \type{\ifeightbitcharacters}. By
-%D counting down, we only have to use one counter. The
-%D macro \type{\setcatcodes} can be uses to set alternative
-%D values. The macro \type{\resetspecialcharacters} resets
-%D characters with special meanings. This macro is not used
-%D in the verbatim macros, but is best defined in this module.
-
-\newtoks\everycommoncatcodes % gone
-\newtoks\everynaturalcatcodes % gone
-\newtoks\everynormalcatcodes % gone
-
-\def\uncatcodespacetokens
- {\catcode`\ =\@@space
- \catcode`\^^L=\@@ignore
- \catcode`\^^M=\@@endofline
- \catcode`\^^?=\@@ignore}
-
-\def\uncatcodespecials {\setcatcodetable\nilcatcodes \uncatcodespacetokens}
-\def\setnaturalcatcodes {\setcatcodetable\nilcatcodes}
-\def\setnormalcatcodes {\setcatcodetable\ctxcatcodes} % maybe \texcatcodes
-\def\uncatcodecharacters {\setcatcodetable\nilcatcodes} % was fast version, gone now
-\def\uncatcodeallcharacters{\setcatcodetable\nilcatcodes} % was slow one, with restore
-
-%D Next follows a definition that lets some shortcuts expand to
-%D themselves.
-
-\def\setverbosecscharacter#1%
- {\edef#1{\string#1}}
-
-\bgroup \catcode`\|=13 \catcode`\~=13
-
-\gdef\setverbosecscharacters % temporary hack
- {\setverbosecscharacter |\setverbosecscharacter ~% context specific
- \setverbosecscharacter\|\setverbosecscharacter\~%
- \setverbosecscharacter\:\setverbosecscharacter\;%
- \setverbosecscharacter\+\setverbosecscharacter\-%
- \setverbosecscharacter\[\setverbosecscharacter\]%
- \setverbosecscharacter\.\setverbosecscharacter\\%
- \setverbosecscharacter\)\setverbosecscharacter\(%
- \setverbosecscharacter\0\setverbosecscharacter\1%
- \setverbosecscharacter\2\setverbosecscharacter\3%
- \setverbosecscharacter\4\setverbosecscharacter\5%
- \setverbosecscharacter\6\setverbosecscharacter\7%
- \setverbosecscharacter\8\setverbosecscharacter\9%
- \setverbosecscharacter\n\setverbosecscharacter\s%
- \setverbosecscharacter\/}
-
-\egroup
-
-%D \macros
-%D {frenchspacing,nonfrenchspacing}
-%D
-%D This code should move.
-
-\def\setfrenchspacing#1%
- {\sfcode`\.#1 \sfcode`\,#1\relax
- \sfcode`\?#1 \sfcode`\!#1\relax
- \sfcode`\:#1 \sfcode`\;#1\relax}
-
-\def\frenchspacing
- {\setfrenchspacing{1000}}
-
-\def\resetfrenchspacing
- {\sfcode`\.3000 \sfcode`\,1250
- \sfcode`\?3000 \sfcode`\!3000
- \sfcode`\:2000 \sfcode`\;1500 }
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/syst-con.lua b/Master/texmf-dist/tex/context/base/syst-con.lua
index 519808e175d..b2f6c42afc8 100644
--- a/Master/texmf-dist/tex/context/base/syst-con.lua
+++ b/Master/texmf-dist/tex/context/base/syst-con.lua
@@ -13,23 +13,13 @@ converters = converters or { }
the top of <l n='luatex'/>'s char range but outside the unicode range.</p>
--ldx]]--
-do
- local char, flush, format = unicode.utf8.char, tex.sprint, string.format
+local char, texsprint, format = unicode.utf8.char, tex.sprint, string.format
- function converters.hexstringtonumber(n) flush(tonumber(n,16)) end
- function converters.octstringtonumber(n) flush(tonumber(n, 8)) end
- function converters.rawcharacter (n) flush(char(0x110000+n)) end
-
- function converters.lchexnumber (n) flush(format("%x" ,n)) end
- function converters.uchexnumber (n) flush(format("%X" ,n)) end
- function converters.lchexnumbers (n) flush(format("%02x",n)) end
- function converters.uchexnumbers (n) flush(format("%02X",n)) end
- function converters.octnumber (n) flush(format("%03o",n)) end
-
- function converters.lchexnumber (n) flush(("%x" ):format(n)) end
- function converters.uchexnumber (n) flush(("%X" ):format(n)) end
- function converters.lchexnumbers (n) flush(("%02x"):format(n)) end
- function converters.uchexnumbers (n) flush(("%02X"):format(n)) end
- function converters.octnumber (n) flush(("%03o"):format(n)) end
-
-end
+function converters.hexstringtonumber(n) texsprint(tonumber(n,16)) end
+function converters.octstringtonumber(n) texsprint(tonumber(n, 8)) end
+function converters.rawcharacter (n) texsprint(char(0x110000+n)) end
+function converters.lchexnumber (n) texsprint(format("%x" ,n)) end
+function converters.uchexnumber (n) texsprint(format("%X" ,n)) end
+function converters.lchexnumbers (n) texsprint(format("%02x",n)) end
+function converters.uchexnumbers (n) texsprint(format("%02X",n)) end
+function converters.octnumber (n) texsprint(format("%03o",n)) end
diff --git a/Master/texmf-dist/tex/context/base/syst-con.mkii b/Master/texmf-dist/tex/context/base/syst-con.mkii
index d5d044f31b3..877aad32a77 100644
--- a/Master/texmf-dist/tex/context/base/syst-con.mkii
+++ b/Master/texmf-dist/tex/context/base/syst-con.mkii
@@ -11,8 +11,43 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+\writestatus{loading}{ConTeXt System Macros / Conversions}
+
\unprotect
+%D When the number of conversions grew, it did no longer make
+%D sense to spread them over multiple files. So, instead of
+%D defining these in \type {font-ini}, we now have a dedicated
+%D module.
+
+\catcode127=12 % other, just to be sure
+
+%D \macros
+%D {lchexnumber,uchexnumber,lchexnumbers,uchexnumbers}
+%D
+%D In addition to the uppercase hex conversion, as needed in
+%D math families, we occasionally need a lowercase one, for
+%D instance when we want to compose gbsong fontnames.
+%D
+%D The ugly indirectness is needed to get rid of \TEX\
+%D induced spaces and \type {\relax}'s.
+%D
+%D \starttyping
+%D [\uchexnumber{0}]
+%D [\uchexnumber\scratchcounter]
+%D [\uchexnumber\zerocount]
+%D [\uchexnumber{\number0}]
+%D [\uchexnumber{\number\scratchcounter}]
+%D [\uchexnumber{\number\zerocount}]
+%D [\uchexnumber{\the\scratchcounter}]
+%D [\uchexnumber{\the\zerocount}]
+%D [\expandafter\uchexnumber\expandafter{\number0}]
+%D [\expandafter\uchexnumber\expandafter{\number\scratchcounter}]
+%D [\expandafter\uchexnumber\expandafter{\number\zerocount}]
+%D [\expandafter\uchexnumber\expandafter{\the\scratchcounter}]
+%D [\expandafter\uchexnumber\expandafter{\the\zerocount}]
+%D \stoptyping
+%D
%D These macros may look slow but are actually rather fast due to
%D the fact that \TEX\ handles conditional pretty fast. We need
%D a two step approach in order to stay relax clean in fully
@@ -64,6 +99,18 @@
E0\or E1\or E2\or E3\or E4\or E5\or E6\or E7\or E8\or E9\or EA\or EB\or EC\or ED\or EE\or EF\or
F0\or F1\or F2\or F3\or F4\or F5\or F6\or F7\or F8\or F9\or FA\or FB\or FC\or FD\or FE\or FF\fi}
+\def\lchexnumber #1{\@EA\dolchexnumber \number#1\relax}
+\def\uchexnumber #1{\@EA\douchexnumber \number#1\relax}
+\def\lchexnumbers#1{\@EA\dolchexnumbers\number#1\relax}
+\def\uchexnumbers#1{\@EA\douchexnumbers\number#1\relax}
+
+\let\hexnumber\uchexnumber
+
+%D \macros
+%D {octnumber}
+%D
+%D For unicode remapping purposes, we need octal numbers.
+
\def\dooctnumber#1\relax
{\ifcase#1
000\or 001\or 002\or 003\or 004\or 005\or 006\or 007\or
@@ -99,13 +146,55 @@
360\or 361\or 362\or 363\or 364\or 365\or 366\or 367\or
370\or 371\or 372\or 373\or 374\or 375\or 376\or 377\fi}
-\def\lchexnumber #1{\@EA\dolchexnumber \number#1\relax}
-\def\uchexnumber #1{\@EA\douchexnumber \number#1\relax}
-\def\lchexnumbers#1{\@EA\dolchexnumbers\number#1\relax}
-\def\uchexnumbers#1{\@EA\douchexnumbers\number#1\relax}
-\def\octnumber #1{\@EA\dooctnumber \number#1\relax}
-
-%D No beauty but ok:
+\def\octnumber#1{\@EA\dooctnumber\number#1\relax}
+
+%D \macros
+%D {twodigits, threedigits}
+%D
+%D These macros provides two or three digits always:
+
+\def\twodigits #1{\ifnum #1<10 0\fi\number#1}
+\def\threedigits#1{\ifnum#1<100 \ifnum#1<10 0\fi0\fi\number#1}
+
+%D \macros{modulonumber}
+%D
+%D In the conversion macros described in \type {core-con} we
+%D need a wrap||around method. The following solution is
+%D provided by Taco.
+%D
+%D The \type {modulonumber} macro expands to the mathematical
+%D modulo of a positive integer. It is crucial for it's
+%D application that this macro is fully exandable.
+%D
+%D The expression inside the \type {\numexpr} itself is
+%D somewhat bizarre because \ETEX\ uses a rounding
+%D division instead of truncation. If \ETEX's division
+%D would have behaved like \TEX's normal\type{\divide}, then
+%D the expression could have been somewhat simpler, like
+%D \type {#2-(#2/#1)*#1}. This works just as well, but a bit
+%D more complex.
+
+\def\modulonumber#1#2%
+ {\the\numexpr#2-((((#2+(#1/2))/#1)-1)*#1)\relax}
+
+%D \macros{modulatednumber}
+%D
+%D Modulo numbers run from zero to one less than the limit,
+%D but for conversion sets, we need a value between 1 and the
+%D limit. The \type{\modulatednumber} arranges that. This
+%D macro also needs to be fully expandable, resulting in
+%D two \type{\numexpr}s.
+
+\def\modulatednumber#1#2%
+ {\ifnum\the\numexpr\modulonumber{#1}{#2}\relax=0 #1%
+ \else \the\numexpr\modulonumber{#1}{#2}\relax \fi}
+
+%D \macros
+%D {hexstringtonumber}
+%D
+%D This macro converts a two character hexadecimal number into
+%D a decimal number, thereby taking care of lowercase characters
+%D as well.
\dostepwiserecurse{0}{9}{1}{\setevalue{@@uc@@\recurselevel}{\recurselevel}}
@@ -122,10 +211,16 @@
\def\dohexstringtonumber#1#2% FF
{"\csname @@uc@@#1\endcsname\csname @@uc@@#2\endcsname}
+%D \macros
+%D {rawcharacter}
+%D
%D The next conversion macro produces raw characters. We have to
%D construct the macro in a special way to avoid problems with
%D characters with special meanings. So, we revert to the
%D lowercase conversion trick to bypass \TEX's input parser.
+%D
+%D This macro can be used to produce proper 8 bit characters
+%D that we sometimes need in backends and round||trips.
\bgroup
diff --git a/Master/texmf-dist/tex/context/base/syst-con.mkiv b/Master/texmf-dist/tex/context/base/syst-con.mkiv
index 2f84395f045..f7d4150a6e2 100644
--- a/Master/texmf-dist/tex/context/base/syst-con.mkiv
+++ b/Master/texmf-dist/tex/context/base/syst-con.mkiv
@@ -1,6 +1,6 @@
%D \module
%D [ file=syst-con,
-%D version=2006.09.16,
+%D version=2006.09.16, % real old stuff ... 2000.12.10
%D title=\CONTEXT\ System Macros,
%D subtitle=Conversions,
%D author=Hans Hagen,
@@ -15,13 +15,131 @@
\unprotect
-\def\lchexnumber #1{\ctxlua{converters.lchexnumber(\number#1)}}
-\def\uchexnumber #1{\ctxlua{converters.uchexnumber(\number#1)}}
-\def\lchexnumbers #1{\ctxlua{converters.lchexnumbers(\number#1)}}
-\def\uchexnumbers #1{\ctxlua{converters.uchexnumbers(\number#1)}}
-\def\octnumber #1{\ctxlua{converters.octnumber(\number#1)}}
+%D When the number of conversions grew, it did no longer make
+%D sense to spread them over multiple files. So, instead of
+%D defining these in \type {font-ini}, we now have a dedicated
+%D module.
+
+%D \macros
+%D {lchexnumber,uchexnumber,lchexnumbers,uchexnumbers}
+%D
+%D In addition to the uppercase hex conversion, as needed in
+%D math families, we occasionally need a lowercase one, for
+%D instance when we want to compose gbsong fontnames.
+%D
+%D The ugly indirectness is needed to get rid of \TEX\
+%D induced spaces and \type {\relax}'s.
+%D
+%D \starttyping
+%D [\uchexnumber{0}]
+%D [\uchexnumber\scratchcounter]
+%D [\uchexnumber\zerocount]
+%D [\uchexnumber{\number0}]
+%D [\uchexnumber{\number\scratchcounter}]
+%D [\uchexnumber{\number\zerocount}]
+%D [\uchexnumber{\the\scratchcounter}]
+%D [\uchexnumber{\the\zerocount}]
+%D [\expandafter\uchexnumber\expandafter{\number0}]
+%D [\expandafter\uchexnumber\expandafter{\number\scratchcounter}]
+%D [\expandafter\uchexnumber\expandafter{\number\zerocount}]
+%D [\expandafter\uchexnumber\expandafter{\the\scratchcounter}]
+%D [\expandafter\uchexnumber\expandafter{\the\zerocount}]
+%D \stoptyping
+
+\def\lchexnumber #1{\ctxlua{converters.lchexnumber(\number#1)}}
+\def\uchexnumber #1{\ctxlua{converters.uchexnumber(\number#1)}}
+\def\lchexnumbers#1{\ctxlua{converters.lchexnumbers(\number#1)}}
+\def\uchexnumbers#1{\ctxlua{converters.uchexnumbers(\number#1)}}
+
+\let\hexnumber\uchexnumber
+
+%D \macros
+%D {octnumber}
+%D
+%D For unicode remapping purposes, we need octal numbers.
+
+\def\octnumber#1{\ctxlua{converters.octnumber(\number#1)}}
+
+%D \macros
+%D {hexstringtonumber,octstringtonumber}
+%D
+%D This macro converts a two character hexadecimal number into
+%D a decimal number, thereby taking care of lowercase characters
+%D as well.
+
\def\hexstringtonumber#1{\ctxlua{converters.hexstringtonumber("#1")}}
\def\octstringtonumber#1{\ctxlua{converters.octstringtonumber("#1")}}
-\def\rawcharacter #1{\ctxlua{converters.rawcharacter(\number#1)}}
+
+%D \macros
+%D {rawcharacter}
+%D
+%D This macro can be used to produce proper 8 bit characters
+%D that we sometimes need in backends and round||trips.
+
+\def\rawcharacter#1{\ctxlua{converters.rawcharacter(\number#1)}}
+
+%D \macros
+%D {twodigits, threedigits}
+%D
+%D These macros provides two or three digits always:
+
+\def\twodigits #1{\ifnum #1<10 0\fi\number#1}
+\def\threedigits#1{\ifnum#1<100 \ifnum#1<10 0\fi0\fi\number#1}
+
+%D \macros{modulonumber}
+%D
+%D In the conversion macros described in \type {core-con} we
+%D need a wrap||around method. The following solution is
+%D provided by Taco.
+%D
+%D The \type {modulonumber} macro expands to the mathematical
+%D modulo of a positive integer. It is crucial for it's
+%D application that this macro is fully exandable.
+%D
+%D The expression inside the \type {\numexpr} itself is
+%D somewhat bizarre because \ETEX\ uses a rounding
+%D division instead of truncation. If \ETEX's division
+%D would have behaved like \TEX's normal\type{\divide}, then
+%D the expression could have been somewhat simpler, like
+%D \type {#2-(#2/#1)*#1}. This works just as well, but a bit
+%D more complex.
+
+\def\modulonumber#1#2%
+ {\the\numexpr#2-((((#2+(#1/2))/#1)-1)*#1)\relax}
+
+%D \macros{modulatednumber}
+%D
+%D Modulo numbers run from zero to one less than the limit,
+%D but for conversion sets, we need a value between 1 and the
+%D limit. The \type{\modulatednumber} arranges that. This
+%D macro also needs to be fully expandable, resulting in
+%D two \type{\numexpr}s.
+
+\def\modulatednumber#1#2%
+ {\ifnum\the\numexpr\modulonumber{#1}{#2}\relax=0 #1%
+ \else \the\numexpr\modulonumber{#1}{#2}\relax \fi}
+
+%D \macros
+%D {realnumber} % used?
+
+\def\realnumber#1{\withoutpt\the\dimexpr#1\s!pt\relax} % brrr
+
+%D \macros
+%D {setcalculatedsin,setcalculatedcos,setcalculatedtan}
+%D
+%D This saves some 2K in the format. At some point we will redo the
+%D code that calls this. Beware: in \MKII\ this is a separate module.
+
+% \let\calculatesin\gobbleoneargument
+% \let\calculatecos\gobbleoneargument
+% \let\calculatetan\gobbleoneargument
+
+% \def\calculatedsin#1{\ctxlua{tex.sprint(tex.ctxcatcodes,math.sin(#1))}}
+% \def\calculatedcos#1{\ctxlua{tex.sprint(tex.ctxcatcodes,math.cos(#1))}}
+% \def\calculatedtan#1{\ctxlua{tex.sprint(tex.ctxcatcodes,math.tan(#1))}}
+
+\def\setcalculatedsin#1#2{\edef#1{\ctxlua{tex.sprint(tex.ctxcatcodes,math.sind(#2))}}}
+\def\setcalculatedcos#1#2{\edef#1{\ctxlua{tex.sprint(tex.ctxcatcodes,math.cosd(#2))}}}
+\def\setcalculatedtan#1#2{\edef#1{\ctxlua{tex.sprint(tex.ctxcatcodes,math.tand(#2))}}}
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/syst-con.tex b/Master/texmf-dist/tex/context/base/syst-con.tex
deleted file mode 100644
index 653d689284c..00000000000
--- a/Master/texmf-dist/tex/context/base/syst-con.tex
+++ /dev/null
@@ -1,144 +0,0 @@
-%D \module
-%D [ file=syst-con,
-%D version=2000.12.10, % actually very old -)
-%D title=\CONTEXT\ System Macros,
-%D subtitle=Conversions,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{Context System Macro's / Conversions}
-
-\unprotect
-
-%D When the number of conversions grew, it did no longer make
-%D sense to spread them over multiple files. So, instead of
-%D defining these in \type {font-ini}, we now have a dedicated
-%D module.
-
-\catcode127=12 % other, just to be sure
-
-%D \macros
-%D {lchexnumber,uchexnumber,lchexnumbers,uchexnumbers}
-%D
-%D In addition to the uppercase hex conversion, as needed in
-%D math families, we occasionally need a lowercase one, for
-%D instance when we want to compose gbsong fontnames.
-%D
-%D The ugly indirectness is needed to get rid of \TEX\
-%D induced spaces and \type {\relax}'s.
-%D
-%D \starttyping
-%D [\uchexnumber{0}]
-%D [\uchexnumber\scratchcounter]
-%D [\uchexnumber\zerocount]
-%D [\uchexnumber{\number0}]
-%D [\uchexnumber{\number\scratchcounter}]
-%D [\uchexnumber{\number\zerocount}]
-%D [\uchexnumber{\the\scratchcounter}]
-%D [\uchexnumber{\the\zerocount}]
-%D [\expandafter\uchexnumber\expandafter{\number0}]
-%D [\expandafter\uchexnumber\expandafter{\number\scratchcounter}]
-%D [\expandafter\uchexnumber\expandafter{\number\zerocount}]
-%D [\expandafter\uchexnumber\expandafter{\the\scratchcounter}]
-%D [\expandafter\uchexnumber\expandafter{\the\zerocount}]
-%D \stoptyping
-
-\let\lchexnumber \gobbleoneargument
-\let\uchexnumber \gobbleoneargument
-\let\lchexnumbers\gobbleoneargument
-\let\uchexnumbers\gobbleoneargument
-
-%D \macros
-%D {octnumber}
-%D
-%D For unicode remapping purposes, we need octal numbers.
-
-\let\octnumber\gobbleoneargument
-
-%D \macros
-%D {hexstringtonumber}
-%D
-%D This macro converts a two character hexadecimal number into
-%D a decimal number, thereby taking care of lowercase characters
-%D as well.
-
-\let\hexstringtonumber\gobbleoneargument
-
-%D \macros
-%D {rawcharacter}
-%D
-%D This macro can be used to produce proper 8 bit characters
-%D that we sometimes need in backends and round||trips.
-
-\let\rawcharacter\gobbleoneargument
-
-%D \macros
-%D {twodigits, threedigits}
-%D
-%D These macros provides two or three digits always:
-
-\def\twodigits #1{\ifnum #1<10 0\fi\number#1}
-\def\threedigits#1{\ifnum#1<100 \ifnum#1<10 0\fi0\fi\number#1}
-
-%D \macros{modulonumber}
-%D
-%D In the conversion macros described in \type {core-con} we
-%D need a wrap||around method. The following solution is
-%D provided by Taco.
-%D
-%D The \type {modulonumber} macro expands to the mathematical
-%D modulo of a positive integer. It is crucial for it's
-%D application that this macro is fully exandable.
-%D
-%D The expression inside the \type {\numexpr} itself is
-%D somewhat bizarre because \ETEX\ uses a rounding
-%D division instead of truncation. If \ETEX's division
-%D would have behaved like \TEX's normal\type{\divide}, then
-%D the expression could have been somewhat simpler, like
-%D \type {#2-(#2/#1)*#1}. This works just as well, but a bit
-%D more complex.
-
-\beginETEX
-
-\def\modulonumber#1#2%
- {\the\numexpr#2-((((#2+(#1/2))/#1)-1)*#1)\relax}
-
-\endETEX
-
-%D \macros{modulatednumber}
-%D
-%D Modulo numbers run from zero to one less than the limit,
-%D but for conversion sets, we need a value between 1 and the
-%D limit. The \type{\modulatednumber} arranges that. This
-%D macro also needs to be fully expandable, resulting in
-%D two \type{\numexpr}s.
-
-\beginETEX
-
-\def\modulatednumber#1#2%
- {\ifnum\the\numexpr\modulonumber{#1}{#2}\relax=0 #1%
- \else \the\numexpr\modulonumber{#1}{#2}\relax \fi}
-
-\endETEX
-
-%D When not running \ETEX\ you're left with the maximum:
-
-\beginTEX
-
-\def\modulatednumber#1#2%
- {\ifnum#2>#1 #1\else#2\fi}
-
-\endTEX
-
-%D Plugins
-
-\loadmarkfile{syst-con}
-
-\let\hexnumber\uchexnumber
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/syst-etx.tex b/Master/texmf-dist/tex/context/base/syst-etx.tex
deleted file mode 100644
index 13163a68178..00000000000
--- a/Master/texmf-dist/tex/context/base/syst-etx.tex
+++ /dev/null
@@ -1,297 +0,0 @@
-%D \module
-%D [ file=syst-etx,
-%D version=1999.03.17, % some time ...
-%D title=\CONTEXT\ System Macros,
-%D subtitle=Efficient \PLAIN\ \TEX\ loading,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This module prepares \CONTEXT\ for \ETEX. We don't use
-%D the definition files that come with this useful \TEX\
-%D extension, but implement our own alternatives.
-
-%D \CONTEXT\ was one of the first systems that had support for \ETEX\
-%D built in. In the process we found out that the extensions were not
-%D as bug free as the rest of \TEX. Especially the bugs in \type
-%D {lastnode}, flushing of token lists with an index in the extension
-%D range, and spurious box behaviour of boxes adressed in the extended
-%D box space made us a bit careful. It's hard to to track down such
-%D bugs, especially if one has a mind set of \TEX\ being bug free. If
-%D you encounter unexpected behaviour let me know. Currently the
-%D scantokens mechanism can handle only one||liners, but Taco will
-%D provide an alternative some day.
-%D
-%D \starttyping
-%D \bgroup
-%D \lccode`a=12\lowercase{\xdef\whatever{a}}\egroup
-%D \def\whatever{test \whatever test}
-%D \scantokens\expandafter{\whatever}
-%D \egroup
-%D \stoptyping
-
-\unprotect
-
-%D \ETEX\ has a not so handy way of telling you the version number,
-%D i.e. the revision number has a period in it:
-
-\long\def\gobbleoneargument#1{}
-
-\beginETEX
- \mathchardef\etexversion=\numexpr\eTeXversion*100+\expandafter\gobbleoneargument\eTeXrevision\relax
-\endETEX
-
-\beginTEX
- \mathchardef\etexversion=0
-\endTEX
-
-%D Constants to be used with \type {\grouptype}.
-
-\chardef\@@bottomlevelgroup = 0
-\chardef\@@simplegroup = 1
-\chardef\@@hboxgroup = 2
-\chardef\@@adjustedhboxgroup = 3
-\chardef\@@vboxgroup = 4
-\chardef\@@vtopgroup = 5
-\chardef\@@aligngroup = 6
-\chardef\@@noaligngroup = 7
-\chardef\@@outputgroup = 8
-\chardef\@@mathgroup = 9
-\chardef\@@discretionarygroup = 10
-\chardef\@@insertgroup = 11
-\chardef\@@vcentergroup = 12
-\chardef\@@mathchoicegroup = 13
-\chardef\@@semisimplegroup = 14
-\chardef\@@mathshiftgroup = 15
-\chardef\@@mathleftgroup = 16
-
-\chardef\@@vadjustgroup = \@@insertgroup
-
-%D Constants to be used with \type {\interactionmode}.
-
-\chardef\@@batchmode = 0
-\chardef\@@nonstopmode = 1
-\chardef\@@scrollmode = 2
-\chardef\@@errorstopmode = 3
-
-%D Constants to be used with \type {\lastnodetype}.
-
-\chardef\@@charnode = 0
-\chardef\@@hlistnode = 1
-\chardef\@@vlistnode = 2
-\chardef\@@rulenode = 3
-\chardef\@@insertnode = 4
-\chardef\@@marknode = 5
-\chardef\@@adjustnode = 6
-\chardef\@@ligaturenode = 7
-\chardef\@@discretionarynode = 8
-\chardef\@@whatsitnode = 9
-\chardef\@@mathnode = 10
-\chardef\@@gluenode = 11
-\chardef\@@kernnode = 12
-\chardef\@@penaltynode = 13
-\chardef\@@unsetnode = 14
-\chardef\@@mathsnode = 15
-
-%D Constants to be used with \type {\iftype}.
-
-\chardef\@@charif = 1
-\chardef\@@catif = 2
-\chardef\@@numif = 3
-\chardef\@@dimif = 4
-\chardef\@@oddif = 5
-\chardef\@@vmodeif = 6
-\chardef\@@hmodeif = 7
-\chardef\@@mmodeif = 8
-\chardef\@@innerif = 9
-\chardef\@@voidif = 10
-\chardef\@@hboxif = 11
-\chardef\@@vboxif = 12
-\chardef\@@xif = 13
-\chardef\@@eofif = 14
-\chardef\@@trueif = 15
-\chardef\@@falseif = 16
-\chardef\@@caseif = 17
-\chardef\@@definedif = 18
-\chardef\@@csnameif = 19
-\chardef\@@fontcharif = 20
-
-%D Just in case we are not using \ETEX, we define some out of
-%D range constants.
-
-\beginTEX
-
-\chardef\grouptype = 255
-\chardef\interactionmode = 255
-\chardef\nodetype = 255
-\chardef\iftype = 255
-
-\endTEX
-
-%D Of course we want even bigger log files, so we copied this
-%D from the \ETEX\ source files.
-
-\beginETEX \tracing...
-
-\def\tracingall
- {\tracingonline \@ne
- \tracingcommands \thr@@
- \tracingstats \tw@
- \tracingpages \@ne
- \tracingoutput \@ne
- \tracinglostchars \tw@
- \tracingmacros \tw@
- \tracingparagraphs\@ne
- \tracingrestores \@ne
- \showboxbreadth \maxdimen
- \showboxdepth \maxdimen
- \tracinggroups \@ne
- \tracingifs \@ne
- \tracingscantokens\@ne
- \tracingnesting \@ne
- \tracingassigns \tw@
- \errorstopmode}
-
-\def\loggingall
- {\tracingall
- \tracingonline \z@}
-
-\def\tracingnone
- {\tracingassigns \z@
- \tracingnesting \z@
- \tracingscantokens\z@
- \tracingifs \z@
- \tracinggroups \z@
- \showboxdepth \thr@@
- \showboxbreadth 5
- \tracingrestores \z@
- \tracingparagraphs\z@
- \tracingmacros \z@
- \tracinglostchars \@ne
- \tracingoutput \z@
- \tracingpages \z@
- \tracingstats \z@
- \tracingcommands \z@
- \tracingonline \z@ }
-
-\endETEX
-
-%D Just to be sure:
-
-\ifx\eTeX\undefined
-
- \def\eTeX{$\varepsilon$-\TeX}
-
-\fi
-
-%D In \ETEX\ we have lots of registers, so we redefine a few
-%D low level macros. We reserve some extra space for inserts
-%D and as soon as we near the end of the first register
-%D memory bank (often some 10 less than 255), we switch to the
-%D slower range \type {\@@medallocation}||\type {\@@maxallocation}.
-
-\beginETEX \new...
-
-%D First we redefine the plain \TEX\ register allocation macros.
-
-\def\newcount {\myalloc@0\count \countdef \@@maxallocation}
-\def\newdimen {\myalloc@1\dimen \dimendef \@@maxallocation}
-\def\newskip {\myalloc@2\skip \skipdef \@@maxallocation}
-\def\newmuskip {\myalloc@3\muskip \muskipdef \@@maxallocation}
-\def\newbox {\myalloc@4\box \mathchardef\@@maxallocation}
-\def\newtoks {\myalloc@5\toks \toksdef \@@maxallocation}
-\def\newread {\myalloc@6\read \chardef \@@minallocation}
-\def\newwrite {\myalloc@7\write \chardef \@@minallocation}
-\def\newmarks {\myalloc@8\marks \mathchardef\@@maxallocation}
-\def\newlanguage{\myalloc@9\language\chardef \@@minallocation}
-
-\def\topofboxstack{\number\count24 }
-
-%D Since in \CONTEXT\ we only have one math family left we
-%D redefine \type {\newfam}.
-
-\def\newfam#1{\chardef#1=15 }
-
-%D Therefore we should reset the related counter.
-
-\count18=1
-
-%D We use some constants in the tests.
-
-\mathchardef\@@minallocation = 16
-\mathchardef\@@medallocation = 256
-\mathchardef\@@maxallocation = 32767
-
-%D I cannot imagine that more than~8 extra insert classes
-%D are needed, but, for critical editions, we may need many
-%D more, so:
-
-\chardef\@@insallocation = 32
-
-%D However, there's a bug in \ETEX\ versions smaller than 2.2,
-%D so we need to play safe:
-
-\ifnum\etexversion<202 \chardef\@@insallocation=8 \fi
-
-%D My low level allocation macro now comes down to:
-
-\def\myalloc@#1#2#3#4#5%
- {\global\advance\count1#1by\@ne
- \ifnum\count1#1>\@@medallocation \else
- \ifnum\count1#1<\numexpr\@@medallocation-\@@insallocation\relax\else
- \global\count1#1=\numexpr\@@medallocation+\@ne\relax % \wait
- \fi
- \fi
- \ifnum\count1#1>#4%
- \global\count1#1=#4%
- \errmessage{No room for (\string#2) \string#5}%
- \fi
- \allocationnumber=\count1#1%
- \global#3#5=\allocationnumber
- \wlog{\string#5=\string#2\the\allocationnumber}}
-
-\def\newinsert#1%
- {\ifnum\insc@unt>\numexpr\@@medallocation-\@@insallocation\relax
- \global\advance\insc@unt by\m@ne
- \allocationnumber=\insc@unt
- \global\chardef#1=\allocationnumber
- \wlog{\string#1=\string\insert\the\allocationnumber}%
- \else
- \errmessage{No room for a new insert \string#1 (\number\insc@unt)}%
- \fi}
-
-\endETEX
-
-%D These macros can be checked by tests like:
-%D
-%D \starttyping
-%D \let\wlog\message \dorecurse{1000}{\newcount\dummy}
-%D \stoptyping
-
-%D A few bonus bindings.
-
-\let\normalprotected = \protected
-\let\normalunexpanded = \unexpanded
-
-%D \macros
-%D {begcsname}
-%D
-%D Handy for \ETEX-only usage:
-
-\beginETEX \ifcsname
-
- \def\begcsname#1\endcsname{\ifcsname#1\endcsname\csname#1\endcsname\fi}
-
-\endETEX
-
-\beginTEX
-
- \def\begcsname#1\endcsname{\csname#1\endcsname}
-
-\endTEX
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/syst-ext.tex b/Master/texmf-dist/tex/context/base/syst-ext.mkii
index 7723d9deb6f..898ee8000a5 100644
--- a/Master/texmf-dist/tex/context/base/syst-ext.tex
+++ b/Master/texmf-dist/tex/context/base/syst-ext.mkii
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context System Macro's / Extras}
+\writestatus{loading}{ConTeXt System Macros / Extras}
%D In this second system module, we continue the definition of
%D some handy commands.
@@ -110,8 +110,8 @@
%D are needed:
\def\newif#1%
- {\count@\escapechar
- \escapechar\m@ne
+ {\scratchcounter\escapechar
+ \escapechar\minusone
\expandafter\expandafter\expandafter
\redoglobal\expandafter\expandafter\expandafter
\edef\@if#1{true}{\let\noexpand#1\noexpand\iftrue}%
@@ -119,7 +119,7 @@
\redoglobal\expandafter\expandafter\expandafter
\edef\@if#1{false}{\let\noexpand#1\noexpand\iffalse}%
\dodoglobal\@if#1{false}%
- \escapechar\count@}
+ \escapechar\scratchcounter}
%D Also new:
@@ -160,14 +160,25 @@
\obeylines%
\dostarttexdefinition}
-\gdef\dostarttexdefinition #1 #2
+\gdef\dostarttexdefinition #1
{\catcode13=\@@ignore%
- \dodostarttexdefinition{#1}{#2}}%
+ \doifinstringelse\letterhash{\detokenize{#1}}\dodostarttexdefinition\nonostarttexdefinition#1
+ }
+
+\long\gdef\dodostarttexdefinition#1 #2
+ {\dododostarttexdefinition{#1}{#2}}
-\long\gdef\dodostarttexdefinition#1#2#3\stoptexdefinition%
+\long\gdef\dododostarttexdefinition#1#2#3\stoptexdefinition%
{\egroup%
\long\setvalue{#1}#2{#3}}
+\long\gdef\nonostarttexdefinition#1
+ {\nononostarttexdefinition{#1}{}}
+
+\long\gdef\nononostarttexdefinition#1#2#3\stoptexdefinition%
+ {\egroup%
+ \long\setvalue{#1}{#3}}
+
\egroup
%D \macros
@@ -437,7 +448,7 @@
%D Slower but better:
\ifx\letterbackslash\undefined
- {\catcode`.=0 .catcode`.\ 12 .xdef.letterbackslash{.string\}} % hack
+ {\catcode`.=0 .catcode`.\ 12 .xdef.letterbackslash{.string\}} % hack
\fi
\def\strippedcsname#1% this permits \strippedcsname{\xxx} and \strippedcsname{xxx}
@@ -459,7 +470,7 @@
%D \macros
%D {newconditional,
%D settrue, setfalse,
-%D ifconditional}
+%D ifconditional,then}
%D
%D \TEX's lacks boolean variables, although the \PLAIN\ format
%D implements \type{\newif}. The main disadvantage of this
@@ -470,20 +481,20 @@
%D \starttyping
%D \newconditional\doublesided
%D \setfalse
-%D
+%D \stoptyping
%D Setting a conditional is done by \type{\settrue} and
%D \type{\setfalse}:
%D
%D \starttyping
%D \settrue\doublesided
%D \setfalse
-%D
+%D \stoptyping
%D while testing is accomplished by:
%D
%D \starttyping
%D \ifconditional\doublesided ... \else ... \fi
%D \setfalse
-%D
+%D \stoptyping
%D We cannot use the simple scheme:
%D
%D \starttyping
@@ -501,6 +512,8 @@
\let\newconditional = \setfalse
\let\ifconditional = \ifcase
+\let\then\relax % so that we can say \ifnum1>2\then -)
+
%D \macros
%D {ifzeropt}
%D
@@ -1013,6 +1026,27 @@
\let\endofloop\dodoloop
\dodoloop1} % no \plusone else \recurselevel wrong
+%D For special purposes:
+
+\newcount\fastrecursecounter
+\newcount\lastrecursecounter
+\newcount\steprecursecounter
+
+\def\dofastrecurse#1#2#3#4%
+ {\def\fastrecursebody{#4}%
+ \fastrecursecounter#1\relax
+ \lastrecursecounter#2\relax
+ \steprecursecounter#3\relax
+ \def\recurselevel{\number\fastrecursecounter}%
+ \dodofastrecurse}
+
+\def\dodofastrecurse
+ {\ifnum\fastrecursecounter>\lastrecursecounter\else
+ \fastrecursebody
+ \advance\fastrecursecounter\steprecursecounter
+ \expandafter\dodofastrecurse
+ \fi}
+
%D This alternative looks a bit different and uses a
%D pseudo counter. When this macro is nested, we have to use
%D different counters. This time we use keywords.
@@ -1072,6 +1106,7 @@
%D
%D \def\EveryLine%
%D {\afterassignment\doEveryLine\scratchtoks}
+%D \stoptyping
%D
%D The real implementation is a bit more complicated but we
%D prefer something more versatile.
@@ -1471,7 +1506,7 @@
\def\ExpandFirstAfter#1%
{\let\ExpandCommand#1%
- \doifnextcharelse[\complexExpandFirstAfter\simpleExpandFirstAfter}
+ \doifnextoptionalelse\complexExpandFirstAfter\simpleExpandFirstAfter}
\def\ExpandSecondAfter#1#2#3%
{\scratchtoks{#2}%
@@ -1516,7 +1551,7 @@
\beginTEX
-\def\ConvertToConstant#1#2#3%
+\long\def\ConvertToConstant#1#2#3%
{\expandafter\defconvertedargument\expandafter\!!stringa\expandafter{#2}%
\expandafter\defconvertedargument\expandafter\!!stringb\expandafter{#3}%
#1{\!!stringa}{\!!stringb}}
@@ -1525,7 +1560,7 @@
\beginETEX \detokenize
-\def\ConvertToConstant#1#2#3%
+\long\def\ConvertToConstant#1#2#3%
{\edef\!!stringa{\expandafter\detokenize\expandafter{#2}}%
\edef\!!stringb{\expandafter\detokenize\expandafter{#3}}%
#1{\!!stringa}{\!!stringb}}
@@ -1778,7 +1813,7 @@
\long\def\HandleSimpleGroup#1#2% no inner group (so no kerning interference)
{\bgroup
- \long\def\BeforeGroup{\bgroup#1\aftergroup\AfterGroup}% interferes
+ %long\def\BeforeGroup{\bgroup#1\aftergroup\AfterGroup}% interferes
\long\def\BeforeGroup{\bgroup\aftergroup\AfterGroup#1}%
\long\def\AfterGroup {#2\egroup}%
\afterassignment\BeforeGroup
@@ -1832,12 +1867,10 @@
% compatible ?
\long\unexpanded\def\groupedcommand#1#2%
- {\doifnextcharelse\bgroup
- {\HandleGroup{#1}{#2}}{\HandleNoGroup{#1}{#2}}}
+ {\doifnextbgroupelse{\HandleGroup{#1}{#2}}{\HandleNoGroup{#1}{#2}}}
\long\unexpanded\def\simplegroupedcommand#1#2%
- {\doifnextcharelse\bgroup
- {\HandleSimpleGroup{#1}{#2}}{\HandleNoGroup{#1}{#2}}}
+ {\doifnextbgroupelse{\HandleSimpleGroup{#1}{#2}}{\HandleNoGroup{#1}{#2}}}
%D Users should be aware of the fact that grouping can
%D interfere with ones paragraph settings that are executed
@@ -2069,7 +2102,7 @@
%D \def\dowithpargument#1%
%D {\def\nextpar##1 \par{#1{##1}}%
%D \def\nextarg##1{#1{##1}}%
-%D \doifnextcharelse{\bgroup}
+%D \doifnextcharelse\bgroup
%D {\nextarg}
%D {\nextpar}}
%D \stoptyping
@@ -2081,7 +2114,7 @@
%\def\dowithpargument#1%
% {\def\nextpar##1 \par{#1{##1}}%
% \def\nextarg##1{#1{##1}}%
-% \doifnextcharelse{\bgroup}
+% \doifnextcharelse\bgroup
% {\nextarg}
% {\doifnextcharelse{\par}
% {#1{}}
@@ -2090,7 +2123,7 @@
\def\dowithpargument#1%
{\def\nextpar##1 \par{#1{##1}}%
\def\nextarg##1{#1{##1}}%
- \doifnextcharelse\bgroup\nextarg{\doifnextcharelse\par{#1{}}\nextpar}}
+ \doifnextbgroupelse\nextarg{\doifnextcharelse\par{#1{}}\nextpar}}
%D The \type{p} in the previous command stands for paragraph.
%D When we want to act upon words we can use the \type{w}
@@ -2133,14 +2166,14 @@
%\def\dowithwargument#1%
% {\def\nextwar##1 {#1{##1}}%
% \def\nextarg##1{#1{##1}}%
-% \doifnextcharelse{\bgroup}
+% \doifnextcharelse\bgroup
% {\nextarg}
% {\nextwar}}
\def\dowithwargument#1%
{\def\nextwar##1 {#1{##1}}%
\def\nextarg##1{#1{##1}}%
- \doifnextcharelse\bgroup\nextarg\nextwar}
+ \doifnextbgroupelse\nextarg\nextwar}
%D \macros
%D {dorepeat,dorepeatwithcommand}
@@ -2368,6 +2401,8 @@
% A slightly (but in the case of large arguments
% significantly) faster alternative is given below:
+\newtoks\@@toks
+
\def\dodoappendtoks
{\dodoglobal\@@toks\@EAEAEA{\@EA\the\@EA\@@toks\the\@@scratchtoks}}
@@ -3016,8 +3051,20 @@
\expandafter\globalprocesscommaitem#1,],}
%D \macros
-%D {withoutunit,withoutpt,
-%D PtToCm,
+%D {startprocesscommalist,startprocesscommacommand}
+%D
+%D Two more:
+
+\long\def\startprocesscommalist[#1]#2\stopprocesscommalist
+ {\long\def\currentcommalistcommand##1{\def\currentcommalistitem{##1}#2}%
+ \processcommalist[#1]\currentcommalistcommand}
+
+\long\def\startprocesscommacommand[#1]#2\stopprocesscommacommand
+ {\long\def\currentcommalistcommand##1{\def\currentcommalistitem{##1}#2}%
+ \processcommacommand[#1]\currentcommalistcommand}
+
+%D \macros
+%D {withoutpt,PtToCm,
%D numberofpoints,dimensiontocount}
%D
%D We can convert point into centimeters with:
@@ -3025,24 +3072,6 @@
%D \starttyping
%D \PtToCm{dimension}
%D \stoptyping
-%D
-%D Splitting the value and the unit is done by:
-
-\def\withoutunit#1#2%
- {\begingroup
- \scratchdimen#1\relax
- \@EA\convertargument\the\scratchdimen\to\asciia
- \@EA\convertargument#2\to\asciib
- %\@EA\@EA\@EA\beforesplitstring\@EA\asciia\@EA\at\asciib\to\!!stringa
- \@EA\beforesplitstring\@EA\asciia\@EA\at\asciib\to\!!stringa
- \!!stringa
- \endgroup}
-
-\def\withoutpt#1{\withoutunit{#1}{pt}}
-\def\withoutcm#1{\withoutunit{#1}{cm}}
-
-%D A bit faster and more robust alternative is one that
-%D manipulates the \CATCODES.
{\catcode`\.=\@@other
\catcode`\p=\@@other
@@ -3076,18 +3105,11 @@
%D
%D Both macros return a rounded number.
-% todo: etex version
+% \dimensiontocount{10.49pt}\scratchcounter \the\scratchcounter / \numberofpoints{10.49pt}
+% \dimensiontocount{10.51pt}\scratchcounter \the\scratchcounter / \numberofpoints{10.51pt}
-\def\numberofpoints#1%
- {\scratchdimen#1%
- \advance\scratchdimen .5pt
- \withoutpt\the\scratchdimen}
-
-\def\dimensiontocount#1#2%
- {\scratchdimen#1%
- \advance\scratchdimen .5pt
- #2\scratchdimen
- \divide#2 \maxcard}
+\def\dimensiontocount#1#2{#2\numexpr\dimexpr#1\relax/\maxcard\relax}
+\def\numberofpoints #1{\the\numexpr\dimexpr#1\relax/\maxcard\relax}
%D \macros
%D {swapdimens,swapmacros}
@@ -3355,6 +3377,14 @@
\expandafter\secondoftwoarguments
\fi}
+\long\def\doifsomethingelse#1%
+ {\edef\!!stringa{#1}%
+ \ifx\!!stringa\empty
+ \expandafter\secondoftwoarguments
+ \else
+ \expandafter\firstoftwoarguments
+ \fi}
+
\long\def\doifvaluenothing#1%
{\edef\!!stringa{\csname#1\endcsname}%
\ifx\!!stringa\empty
@@ -3938,7 +3968,7 @@
% %D handle the special case.
%
% \def\dohonorgroupedargument#1[%
-% {\doifnextcharelse\bgroup{\dodohonorgroupedargument#1}{#1[}}
+% {\doifnextbgroupelse{\dodohonorgroupedargument#1}{#1[}}
%
% \def\dodohonorgroupedargument#1#2%
% {#1[{{#2}}}
@@ -4462,24 +4492,43 @@
\beginTEX
- \let\integerrounding \firstofoneargument
- \let\onedigitrounding\firstofoneargument
- \let\twodigitrounding\firstofoneargument
+ \let\integerrounding \firstofoneargument
+ \let\onedigitrounding \firstofoneargument
+ \let\twodigitrounding \firstofoneargument
+ \let\threedigitrounding\firstofoneargument
\endTEX
\beginETEX \dimexpr
- \def\dointegerrounding #1.#2\relax {#1}
- \def\doonedigitrounding#1.#2#3\relax {\ifx#2*#1\else#1.#2\fi}
- \def\dotwodigitrounding#1.#2#3#4\relax{\ifx#2*#1\else#1.#2#3\fi}
+ \def\dointegerrounding #1.#2\relax {#1}
+ \def\doonedigitrounding #1.#2#3\relax {\ifx#2*#1\else#1.#2\fi}
+ \def\dotwodigitrounding #1.#2#3#4\relax {\ifx#2*#1\else#1.#2#3\fi}
+ \def\dothreedigitrounding#1.#2#3#4#5\relax{\ifx#2*#1\else#1.#2#3#4\fi}
\def\integerrounding#1%
- {\@EA\@EA\@EA\dointegerrounding \@EA\WITHOUTPT\the\dimexpr#1\points+.5\points\relax.\relax}
+ {\@EA\@EA\@EA\dointegerrounding \@EA\WITHOUTPT\the\dimexpr#1\points+.5\points \relax .\relax}
\def\onedigitrounding#1%
- {\@EA\@EA\@EA\doonedigitrounding\@EA\WITHOUTPT\the\dimexpr#1\points+.05\points\relax00.*0\relax}
+ {\@EA\@EA\@EA\doonedigitrounding \@EA\WITHOUTPT\the\dimexpr#1\points+.05\points \relax 00.*0\relax}
\def\twodigitrounding#1%
- {\@EA\@EA\@EA\dotwodigitrounding\@EA\WITHOUTPT\the\dimexpr#1\points+.005\points\relax000.*00\relax}
+ {\@EA\@EA\@EA\dotwodigitrounding \@EA\WITHOUTPT\the\dimexpr#1\points+.005\points \relax 000.*00\relax}
+ \def\threedigitrounding#1%
+ {\@EA\@EA\@EA\dothreedigitrounding\@EA\WITHOUTPT\the\dimexpr#1\points+.0005\points\relax0000.*00\relax}
+
+% \def\dointegerrounding #1.#2\relax {#1}
+% \def\doonedigitrounding #1.#2#3\relax {#1.#2}
+% \def\dotwodigitrounding #1.#2#3#4\relax {#1.#2#3}
+% \def\dothreedigitrounding#1.#2#3#4#5\relax{#1.#2#3#4}
+
+% \def\integerrounding #1{\@EA\@EA\@EA\dointegerrounding \@EA\WITHOUTPT\the\dimexpr #1\points+.5\points\relax \relax}
+% \def\onedigitrounding #1{\@EA\@EA\@EA\doonedigitrounding \@EA\WITHOUTPT\the\dimexpr #1\points+.05\points\relax 0\relax}
+% \def\twodigitrounding #1{\@EA\@EA\@EA\dotwodigitrounding \@EA\WITHOUTPT\the\dimexpr #1\points+.005\points\relax 00\relax}
+% \def\threedigitrounding#1{\@EA\@EA\@EA\dothreedigitrounding\@EA\WITHOUTPT\the\dimexpr#1\points+.0005\points\relax000\relax}
+
+% \def\integerroundeddimen #1{\@EA\@EA\@EA\dointegerrounding \@EA\WITHOUTPT\the\dimexpr #1+.5\points\relax \relax}
+% \def\onedigitroundeddimen #1{\@EA\@EA\@EA\doonedigitrounding \@EA\WITHOUTPT\the\dimexpr #1+.05\points\relax 0\relax}
+% \def\twodigitroundeddimen #1{\@EA\@EA\@EA\dotwodigitrounding \@EA\WITHOUTPT\the\dimexpr #1+.005\points\relax 00\relax}
+% \def\threedigitroundeddimen#1{\@EA\@EA\@EA\dothreedigitrounding\@EA\WITHOUTPT\the\dimexpr#1+.0005\points\relax000\relax}
\endETEX
@@ -4634,44 +4683,6 @@
{\comparedresult\plusone}}
%D \macros
-%D {@saveprimitive}
-%D
-%D The next definition originates in the \type {amsgen} package. In
-%D case some preceding package redefined a primitive that we also
-%D want to redefine, we had better do some checking to make sure
-%D that we are able to save the primitive meaning for internal use.
-%D Primitive control sequences can be distinguished by the fact that
-%D \type {\string} and \type {\meaning} return the same information.
-
-\def\@saveprimitive#1#2%
- {\begingroup
- \edef\@tempa{\string#1}%
- \edef\@tempb{\meaning#1}%
- \ifx\@tempa\@tempb
- \global\let#2#1%
- %\debuggerinfo{prim}{Saving \string#1 as \string#2}%
- \else
- \edef\@tempb{\meaning#2}%
- %\ifx\@tempa\@tempb
- % \debuggerinfo{prim}{Saving \string#1 as \string#2}%
- %\else
- % \debuggerinfo{prim}{Can't define \string#2 properly;
- % primitive \noexpand#1 is no longer primitive}%
- %\fi
- \fi
- \endgroup}
-
-\def\saveprimitive#1%
- {\begingroup
- \@EA\edef\@EA\@tempa\@EA{\@EA\gobbleoneargument\string#1}%
- \@EA\let\csname normal\@tempa\endcsname\relax
- \@EA\@saveprimitive\@EA#1\csname normal\@tempa\endcsname
- \endgroup }
-
-%D In this macro, the message only shows up when the debugging
-%D is turned on.
-
-%D \macros
%D {@True, @False, @Not, @And}
%D
%D Some predicate logic functions, used in for instance the
diff --git a/Master/texmf-dist/tex/context/base/syst-fnt.mkii b/Master/texmf-dist/tex/context/base/syst-fnt.mkii
new file mode 100644
index 00000000000..66439c19454
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/syst-fnt.mkii
@@ -0,0 +1,46 @@
+%D \module
+%D [ file=syst-fnt,
+%D version=2006.08.11,
+%D title=\CONTEXT\ System Macros,
+%D subtitle=Font Things,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+% formal names cf the tb \& tbt
+
+\unprotect
+
+\def\fontslantperpoint {\fontdimen\plusone }
+\def\fontinterwordspace {\fontdimen\plustwo }
+\def\fontinterwordstretch{\fontdimen\plusthree}
+\def\fontinterwordshrink {\fontdimen\plusfour }
+\def\fontexheight {\fontdimen\plusfive }
+\def\fontemwidth {\fontdimen\plussix }
+\def\fontextraspace {\fontdimen\plusseven}
+
+\def\slantperpoint {\fontdimen\plusone \font}
+\def\interwordspace {\fontdimen\plustwo \font}
+\def\interwordstretch {\fontdimen\plusthree\font}
+\def\interwordshrink {\fontdimen\plusfour \font}
+\def\exheight {\fontdimen\plusfive \font}
+\def\emwidth {\fontdimen\plussix \font}
+\def\extraspace {\fontdimen\plusseven\font}
+
+\def\mathsupdisplay {\fontdimen13 }
+\def\mathsupnormal {\fontdimen14 }
+\def\mathsupcramped {\fontdimen15 }
+\def\mathsubnormal {\fontdimen16 }
+\def\mathsubcombined {\fontdimen17 }
+\def\mathaxisheight {\fontdimen22 }
+
+\def\currentspaceskip {\interwordspace\!!plus\interwordstretch\!!minus\interwordshrink\relax}
+
+\def\mathstacktotal {\dimexpr\fontdimen10\scriptfont\plustwo+\fontdimen12\scriptfont\plustwo\relax}
+\def\mathstackvgap {\plusthree\fontdimen8\scriptfont\plusthree}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/syst-fnt.mkiv b/Master/texmf-dist/tex/context/base/syst-fnt.mkiv
new file mode 100644
index 00000000000..8ba0dd2a3b5
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/syst-fnt.mkiv
@@ -0,0 +1,46 @@
+%D \module
+%D [ file=syst-fnt,
+%D version=2006.08.11,
+%D title=\CONTEXT\ System Macros,
+%D subtitle=Font Things,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+% formal names cf the tb \& tbt
+
+\unprotect
+
+\def\fontslantperpoint {\fontdimen\plusone }
+\def\fontinterwordspace {\fontdimen\plustwo }
+\def\fontinterwordstretch{\fontdimen\plusthree}
+\def\fontinterwordshrink {\fontdimen\plusfour }
+\def\fontexheight {\fontdimen\plusfive }
+\def\fontemwidth {\fontdimen\plussix }
+\def\fontextraspace {\fontdimen\plusseven}
+
+\def\slantperpoint {\fontdimen\plusone \font}
+\def\interwordspace {\fontdimen\plustwo \font}
+\def\interwordstretch {\fontdimen\plusthree\font}
+\def\interwordshrink {\fontdimen\plusfour \font}
+\def\exheight {\fontdimen\plusfive \font}
+\def\emwidth {\fontdimen\plussix \font}
+\def\extraspace {\fontdimen\plusseven\font}
+
+\def\mathsupdisplay {\fontdimen13 } % to be remapped
+\def\mathsupnormal {\fontdimen14 } % to be remapped
+\def\mathsupcramped {\fontdimen15 } % to be remapped
+\def\mathsubnormal {\fontdimen16 } % to be remapped
+\def\mathsubcombined {\fontdimen17 } % to be remapped
+\def\mathaxisheight {\fontdimen22 } % to be remapped
+
+\def\currentspaceskip {\interwordspace\!!plus\interwordstretch\!!minus\interwordshrink\relax}
+
+\def\mathstacktotal {\dimexpr\Umathstacknumup\scriptstyle+\Umathstackdenomdown\scriptstyle\relax}
+\def\mathstackvgap {\Umathstackvgap\scriptstyle}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/syst-fnt.tex b/Master/texmf-dist/tex/context/base/syst-fnt.tex
deleted file mode 100644
index 40733c4f8ee..00000000000
--- a/Master/texmf-dist/tex/context/base/syst-fnt.tex
+++ /dev/null
@@ -1,43 +0,0 @@
-%D \module
-%D [ file=syst-fnt,
-%D version=2006.08.11,
-%D title=\CONTEXT\ System Macros,
-%D subtitle=Font Things,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% formal names cf the tb \& tbt
-
-\unprotect
-
-\def\fontslantperpoint {\fontdimen1}
-\def\fontinterwordspace {\fontdimen2}
-\def\fontinterwordstretch{\fontdimen3}
-\def\fontinterwordshrink {\fontdimen4}
-\def\fontexheight {\fontdimen5}
-\def\fontemwidth {\fontdimen6}
-\def\fontextraspace {\fontdimen7}
-
-\def\slantperpoint {\fontdimen1\font}
-\def\interwordspace {\fontdimen2\font}
-\def\interwordstretch {\fontdimen3\font}
-\def\interwordshrink {\fontdimen4\font}
-\def\exheight {\fontdimen5\font}
-\def\emwidth {\fontdimen6\font}
-\def\extraspace {\fontdimen7\font}
-
-\def\mathsupdisplay {\fontdimen13}
-\def\mathsupnormal {\fontdimen14}
-\def\mathsupcramped {\fontdimen15}
-\def\mathsubnormal {\fontdimen16}
-\def\mathsubcombined {\fontdimen17}
-\def\mathaxisheight {\fontdimen22}
-
-\def\currentspaceskip {\interwordspace\!!plus\interwordstretch\!!minus\interwordshrink\relax}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/syst-gen.tex b/Master/texmf-dist/tex/context/base/syst-gen.mkii
index 626c1445bba..65a501360f3 100644
--- a/Master/texmf-dist/tex/context/base/syst-gen.tex
+++ b/Master/texmf-dist/tex/context/base/syst-gen.mkii
@@ -123,7 +123,7 @@
%D defined.
%D
%D \starttyping
-%D \writestatus{laden}{Context Systeem Macro's (a)}
+%D \writestatus{laden}{Context Systeem Macros (a)}
%D \stoptyping
%D The next few macros are needed in case this module is
@@ -132,10 +132,6 @@
\ifx\beginTEX\undefined
\let\beginTEX\relax\let\endTEX\relax
\long\def\beginETEX #1\endETEX {}
- \long\def\beginOMEGA #1\endOMEGA{}
-% \long\def\onlyTEX #1{#1}
-% \long\def\onlyETEX #1{}
-% \long\def\onlyOMEGA#1{}
\fi
%D \macros
@@ -311,6 +307,9 @@
\newabove \newtoks \scratchtoks \newabove \newtoks \globalscratchtoks
\newbox \scratchbox \newbox \globalscratchbox
+\newdimen\scratchdimenone \newbox\scratchboxone \newcount\scratchcounterone
+\newdimen\scratchdimentwo \newbox\scratchboxtwo \newcount\scratchcountertwo
+
%D \macros
%D {ifdone}
@@ -361,23 +360,21 @@
%D Beware: we don't reuse plain counters, too dangerous
%D when <= 20 (e.g. in supp-pdf this messed up things).
-\newdimen \zeropoint
-\newcount \zerocount
-\newcount \minusone
- \minusone = -1
-\newcount \minustwo
- \minustwo = -2
-
-\chardef \plusone = 1
-\chardef \plustwo = 2
-\chardef \plusthree = 3
-\chardef \plusfour = 4
-\chardef \plusfive = 5
-
-\mathchardef \plusten = 10
-\mathchardef \plushundred = 100
-\mathchardef \plusthousand = 1000
-\mathchardef \plustenthousand = 10000
+\ifx\undefined\zeroskip \newskip \zeroskip \fi
+\ifx\undefined\zeropoint \newdimen \zeropoint \fi
+\ifx\undefined\zerocount \newcount \zerocount \fi
+\ifx\undefined\minusone \newcount \minusone \fi \minusone = -1
+\ifx\undefined\minustwo \newcount \minustwo \fi \minustwo = -2
+\ifx\undefined\plusone \chardef \plusone = 1 \fi
+\ifx\undefined\plustwo \chardef \plustwo = 2 \fi
+\ifx\undefined\plusthree \chardef \plusthree = 3 \fi
+\ifx\undefined\plusfour \chardef \plusfour = 4 \fi
+\ifx\undefined\plusfive \chardef \plusfive = 5 \fi
+\ifx\undefined\plusten \mathchardef \plusten = 10 \fi
+\ifx\undefined\plushundred \mathchardef \plushundred = 100 \fi
+\ifx\undefined\plusthousand \mathchardef \plusthousand = 1000 \fi
+\ifx\undefined\plustenthousand \mathchardef \plustenthousand = 10000 \fi
+\ifx\undefined\plustwentythousand \mathchardef \plustwentythousand = 20000 \fi
%D \macros
%D {s!,c!,e!,p!,v!,@@,??}
@@ -397,6 +394,8 @@
\def\s!complex {complex} \def\s!start {start}
\def\s!simple {simple} \def\s!stop {stop}
+\def\s!empty {empty}
+
%D \macros
%D {@EA,@EAEA,@EAEAEA,@EAEAEAEAEAEA,expanded,startexpanded}
%D
@@ -544,10 +543,43 @@
\@EAEAEA\!!stringb
\fi\fi}
-%\let\endoflinetoken=^^M
-%
-%\long\def\reinspectaftercharacter#1%
-% {\futurelet\nexttoken\inspectnextcharacter}
+%D Because we will mostly use this macro for testing if the next
+%D character is \type {[}, we also make a slightly faster variant
+%D as it is not uncommon to have tens of thousands of calls to this
+%D test in a run. Of course it also is more convenient to read a
+%D trace then.
+
+\let\nextoptionalcharactertoken=[
+
+\long\def\doifnextoptionalelse#1#2%
+ {\def\nextoptionalcommandyes{#1}%
+ \def\nextoptionalcommandnop{#2}%
+ \futurelet\nexttoken\inspectnextoptionalcharacter}
+
+\def\inspectnextoptionalcharacter
+ {\ifx\nexttoken\blankspace
+ \@EA\reinspectnextoptionalcharacter
+ \else\ifx\nexttoken\nextoptionalcharactertoken
+ \@EAEAEA\nextoptionalcommandyes
+ \else
+ \@EAEAEA\nextoptionalcommandnop
+ \fi\fi}
+
+\let\nextbgroupcharactertoken\bgroup
+
+\long\def\doifnextbgroupelse#1#2%
+ {\def\nextbgroupcommandyes{#1}%
+ \def\nextbgroupcommandnop{#2}%
+ \futurelet\nexttoken\inspectnextbgroupcharacter}
+
+\def\inspectnextbgroupcharacter
+ {\ifx\nexttoken\blankspace
+ \@EA\reinspectnextbgroupcharacter
+ \else\ifx\nexttoken\nextbgroupcharactertoken
+ \@EAEAEA\nextbgroupcommandyes
+ \else
+ \@EAEAEA\nextbgroupcommandnop
+ \fi\fi}
%D This macro uses some auxiliary macros. Although we were able
%D to program quite complicated things, I only understood these
@@ -579,9 +611,14 @@
\def\:{\let\blankspace= } \:
\def\:{\reinspectnextcharacter}
-
\expandafter\def\: {\futurelet\nexttoken\inspectnextcharacter}
+\def\:{\reinspectnextoptionalcharacter}
+\expandafter\def\: {\futurelet\nexttoken\inspectnextoptionalcharacter}
+
+\def\:{\reinspectnextbgroupcharacter}
+\expandafter\def\: {\futurelet\nexttoken\inspectnextbgroupcharacter}
+
\let\:\next
%D \macros
@@ -963,6 +1000,11 @@
\def\letbeundefined#1% potential stack buildup when used \global
{\expandafter\let\csname#1\endcsname\undefined}
+\def\localundefine#1% conditional
+ {\ifcsname#1\endcsname\expandafter\let\csname#1\endcsname\undefined\fi}
+\def\globalundefine#1% conditional
+ {\ifcsname#1\endcsname\expandafter\global\let\csname#1\endcsname\undefined\fi}
+
\endETEX
%D Beware, being \type {\undefined} in \ETEX\ means that the macro
@@ -1604,6 +1646,8 @@
% \expandafter\firstofoneargument
% \fi}
+% todo: use dedicated done
+
\def\p!dodocommoncheck#1%
{\edef\!!stringb{#1}%
\ifx\!!stringa\!!stringb
@@ -2331,6 +2375,14 @@
%D run time, simply because the less tokens we pass, the faster
%D \TEX\ runs. So finally the definition became:
+% \long\def\rawdoifinstringelse#1#2% ##2 can be {abc}
+% {\long\def\pp!doifinstringelse##1#1##2##3\war{\if##2@}%
+% \pp!doifinstringelse#2#1@@\war
+% \expandafter\secondoftwoarguments
+% \else
+% \expandafter\firstoftwoarguments
+% \fi}
+
\long\def\doifinstringelse#1%
{\edef\@@@instring{#1}% expand #1 here
\ifx\@@@instring\empty
@@ -2525,7 +2577,7 @@
%D \else
%D #3%
%D \fi}
-%D \starttyping
+%D \stoptyping
%D
%D And before we had \type{\p!doifinstringelse} available, we
%D used:
@@ -2859,6 +2911,32 @@
{\ifundefined{#1#2}\dosetvalue{#1}{#2}{#3}\fi}
%D \macros
+%D {processassignmentlist,processassignmentcommand,
+%D startprocessassignmentlist,startprocessassignmentcommand}
+%D
+%D For Wolfgang:
+%D
+%D \starttyping
+%D \def\showpair#1#2{key:#1, value:#2\par}
+%D \processassignmentlist[a=1,b=2]\showpair
+%D \stoptyping
+
+\def\processassignmentlist[#1]#2% #2 == \command{key}{value]
+ {\def\doprocessassignmententry##1{#2}% {##2}{##3} % namespace is ignored
+ \dogetparameters\doprocessassignmententry[][#1]}
+
+\def\processassignmentcommand[#1]%
+ {\normalexpanded{\noexpand\processassignmentlist[#1]}}
+
+\long\def\startprocessassignmentlist[#1]#2\stopprocessassignmentlist
+ {\long\def\currentassignmentlistcommand##1##2{\def\currentassignmentlistkey{##1}\def\currentassignmentlistvalue{##2}#2}%
+ \processassignmentlist[#1]\currentassignmentlistcommand}
+
+\long\def\startprocessassignmentcommand[#1]#2\stopprocessassignmentcommand
+ {\long\def\currentassignmentlistcommand##1##2{\def\currentassignmentlistkey{##1}\def\currentassignmentlistvalue{##2}#2}%
+ \normalexpanded{\noexpand\processassignmentlist[#1]}\currentassignmentlistcommand}
+
+%D \macros
%D {getparameters,geteparameters,getgparameters,
%D forgetparameters}
%D
@@ -3033,30 +3111,55 @@
\let\currentvalue\empty
-\def\p!n!doassign#1#2\@relax@#3=#4=#5#6\@relax@% normal
- {\ifx#5\empty
+% \def\p!n!doassign#1#2\@relax@#3=#4=#5#6\@relax@% normal
+% {\ifx#5\empty
+% \@EA\xshowassignerror
+% \else\ifx#5=%
+% \@EAEAEA#1%
+% \else
+% \@EAEAEA\xshowassignerror
+% \fi\fi
+% {#2}{#3}{#4}}
+
+\def\p!n!doassign#1#2\@relax@#3=#4=#5#6\@relax@
+ {\ifx\empty#3\empty
\@EA\xshowassignerror
- \else\ifx#5=%
- \@EAEAEA#1%
- \else
+ \else\ifx#5\empty
\@EAEAEA\xshowassignerror
+ \else
+ \@EAEAEA#1%
\fi\fi
{#2}{#3}{#4}}
\beginTEX
+% \def\p!e!doassign#1#2\@relax@#3=#4=#5#6\@relax@
+% {\ifx#5\empty
+% \@EA\xshowassignerror
+% \else\ifx#5=%
+% \@EA\ifx\csname#2#3\endcsname\relax
+% \let\currentvalue\empty
+% \else
+% \@EA\let\@EA\currentvalue\csname#2#3\endcsname
+% \fi
+% \@EAEAEA#1%
+% \else
+% \@EAEAEA\xshowassignerror
+% \fi\fi
+% {#2}{#3}{#4}}
+
\def\p!e!doassign#1#2\@relax@#3=#4=#5#6\@relax@
- {\ifx#5\empty
+ {\ifx\empty#3\empty
\@EA\xshowassignerror
- \else\ifx#5=%
+ \else\ifx#5\empty
+ \@EAEAEA\xshowassignerror
+ \else
\@EA\ifx\csname#2#3\endcsname\relax
\let\currentvalue\empty
\else
\@EA\let\@EA\currentvalue\csname#2#3\endcsname
\fi
\@EAEAEA#1%
- \else
- \@EAEAEA\xshowassignerror
\fi\fi
{#2}{#3}{#4}}
@@ -3064,18 +3167,33 @@
\beginETEX
+% \def\p!e!doassign#1#2\@relax@#3=#4=#5#6\@relax@
+% {\ifx#5\empty
+% \@EA\xshowassignerror
+% \else\ifx#5=%
+% \ifcsname#2#3\endcsname
+% \@EA\let\@EA\currentvalue\csname#2#3\endcsname
+% \else
+% \let\currentvalue\empty
+% \fi
+% \@EAEAEA#1%
+% \else
+% \@EAEAEA\xshowassignerror
+% \fi\fi
+% {#2}{#3}{#4}}
+
\def\p!e!doassign#1#2\@relax@#3=#4=#5#6\@relax@
- {\ifx#5\empty
+ {\ifx\empty#3\empty
\@EA\xshowassignerror
- \else\ifx#5=%
+ \else\ifx#5\empty
+ \@EAEAEA\xshowassignerror
+ \else
\ifcsname#2#3\endcsname
\@EA\let\@EA\currentvalue\csname#2#3\endcsname
\else
\let\currentvalue\empty
\fi
\@EAEAEA#1%
- \else
- \@EAEAEA\xshowassignerror
\fi\fi
{#2}{#3}{#4}}
@@ -3464,7 +3582,7 @@
\chardef\expectedarguments =0
\def\showargumenterror#1#2%
- {\writestatus{system}{#1 argument(s) expected in line #2}}
+ {\writestatus{systems}{#1 argument(s) expected in line #2}}
% \long\def\dogetargument#1#2#3#4% redefined in mult-ini
% {\doifnextcharelse{#1}
@@ -3500,100 +3618,6 @@
\def\!!stringb{\doshowargumenterror#4\dodogetargument#1#2}%
\futurelet\nexttoken\inspectnextcharacter}
-%\def\getsingleempty#1#2#3%
-% {\def\dodogetargument%
-% {#3}%
-% \dogetargument#1#2\firstargumenttrue\firstargumentfalse}
-%
-%\def\getdoubleempty#1#2#3%
-% {\def\dodogetargument#1##1#2%
-% {\def\dodogetargument%
-% {#3#1##1#2}%
-% \dogetargument#1#2\secondargumenttrue\secondargumentfalse}%
-% \dogetargument#1#2\firstargumenttrue\firstargumentfalse}
-%
-%\def\gettripleempty#1#2#3%
-% {\def\dodogetargument#1##1#2%
-% {\def\dodogetargument#1####1#2%
-% {\def\dodogetargument%
-% {#3#1##1#2%
-% #1####1#2}%
-% \dogetargument#1#2\thirdargumenttrue\thirdargumentfalse}%
-% \dogetargument#1#2\secondargumenttrue\secondargumentfalse}%
-% \dogetargument#1#2\firstargumenttrue\firstargumentfalse}
-%
-%\def\getquadrupleempty#1#2#3%
-% {\def\dodogetargument#1##1#2%
-% {\def\dodogetargument#1####1#2%
-% {\def\dodogetargument#1########1#2%
-% {\def\dodogetargument%
-% {#3#1##1#2%
-% #1####1#2%
-% #1########1#2}%
-% \dogetargument#1#2\fourthargumenttrue\fourthargumentfalse}%
-% \dogetargument#1#2\thirdargumenttrue\thirdargumentfalse}%
-% \dogetargument#1#2\secondargumenttrue\secondargumentfalse}%
-% \dogetargument#1#2\firstargumenttrue\firstargumentfalse}
-%
-%\def\getquintupleempty#1#2#3%
-% {\def\dodogetargument#1##1#2%
-% {\def\dodogetargument#1####1#2%
-% {\def\dodogetargument#1########1#2%
-% {\def\dodogetargument#1################1#2%
-% {\def\dodogetargument%
-% {#3#1##1#2%
-% #1####1#2%
-% #1########1#2%
-% #1################1#2}%
-% \dogetargument#1#2\fifthargumenttrue\fifthargumentfalse}%
-% \dogetargument#1#2\fourthargumenttrue\fourthargumentfalse}%
-% \dogetargument#1#2\thirdargumenttrue\thirdargumentfalse}%
-% \dogetargument#1#2\secondargumenttrue\secondargumentfalse}%
-% \dogetargument#1#2\firstargumenttrue\firstargumentfalse}
-%
-%\def\getsixtupleempty#1#2#3%
-% {\def\dodogetargument#1##1#2%
-% {\def\dodogetargument#1####1#2%
-% {\def\dodogetargument#1########1#2%
-% {\def\dodogetargument#1################1#2%
-% {\def\dodogetargument#1################################1#2%
-% {\def\dodogetargument%
-% {#3#1##1#2%
-% #1####1#2%
-% #1########1#2%
-% #1################1#2%
-% #1################################1#2}%
-% \dogetargument#1#2\sixthargumenttrue\sixthargumentfalse}%
-% \dogetargument#1#2\fifthargumenttrue\fifthargumentfalse}%
-% \dogetargument#1#2\fourthargumenttrue\fourthargumentfalse}%
-% \dogetargument#1#2\thirdargumenttrue\thirdargumentfalse}%
-% \dogetargument#1#2\secondargumenttrue\secondargumentfalse}%
-% \dogetargument#1#2\firstargumenttrue\firstargumentfalse}
-%
-%\def\getseventupleempty#1#2#3%
-% {\def\dodogetargument#1##1#2%
-% {\def\dodogetargument#1####1#2%
-% {\def\dodogetargument#1########1#2%
-% {\def\dodogetargument#1################1#2%
-% {\def\dodogetargument#1################################1#2%
-% {\def\dodogetargument#1###############################%
-% ################################1#2%
-% {\def\dodogetargument%
-% {#3#1##1#2%
-% #1####1#2%
-% #1########1#2%
-% #1################1#2%
-% #1################################1#2%
-% #1###############################%
-% ################################1#2}%
-% \dogetargument#1#2\seventhargumenttrue\seventhargumentfalse}%
-% \dogetargument#1#2\sixthargumenttrue\sixthargumentfalse}%
-% \dogetargument#1#2\fifthargumenttrue\fifthargumentfalse}%
-% \dogetargument#1#2\fourthargumenttrue\fourthargumentfalse}%
-% \dogetargument#1#2\thirdargumenttrue\thirdargumentfalse}%
-% \dogetargument#1#2\secondargumenttrue\secondargumentfalse}%
-% \dogetargument#1#2\firstargumenttrue\firstargumentfalse}
-
\def\getsingleempty#1#2#3%
{\def\dodogetargument%
{#3}%
@@ -3702,19 +3726,19 @@
\def\dosingleempty#1%
{\noshowargumenterror % \relax % prevents lookahead, brr
- \doifnextcharelse[%
+ \doifnextoptionalelse
{\firstargumenttrue#1}
{\dosinglefakeempty#1}}
\def\dodoubleempty#1%
{\noshowargumenterror % \relax % prevents lookahead, brr
- \doifnextcharelse[%
+ \doifnextoptionalelse
{\dodoubletestempty#1}
{\dodoublefakeempty#1}}
\def\dotripleempty#1%
{\noshowargumenterror % \relax % prevents lookahead, brr
- \doifnextcharelse[%
+ \doifnextoptionalelse
{\dotripletestempty#1}
{\dotriplefakeempty#1}}
@@ -3729,20 +3753,20 @@
\long\def\dodoubletestempty#1[#2]%
{\firstargumenttrue
- \doifnextcharelse[%
+ \doifnextoptionalelse
{\secondargumenttrue #1[{#2}]}
{\secondargumentfalse#1[{#2}][]}}
\long\def\dotripletestempty#1[#2]%
{\firstargumenttrue
- \doifnextcharelse[%
+ \doifnextoptionalelse
{\dotripletestemptyx #1[{#2}]}
{\secondargumentfalse
\thirdargumentfalse #1[{#2}][][]}}
\long\def\dotripletestemptyx#1[#2][#3]%
{\secondargumenttrue
- \doifnextcharelse[%
+ \doifnextoptionalelse
{\thirdargumenttrue #1[{#2}][{#3}]}
{\thirdargumentfalse#1[{#2}][{#3}][]}}
@@ -3830,13 +3854,13 @@
\def\complexorsimple#1%
{% \relax % prevents lookahead, brrr
- \doifnextcharelse[%
+ \doifnextoptionalelse
{\firstargumenttrue \csname\s!complex\strippedcsname#1\endcsname}
{\firstargumentfalse\csname\s!simple \strippedcsname#1\endcsname}}
\def\complexorsimpleempty#1%
{% \relax % prevents lookahead, brrr
- \doifnextcharelse[%
+ \doifnextoptionalelse
{\firstargumenttrue \csname\s!complex\strippedcsname#1\endcsname}
{\firstargumentfalse\csname\s!complex\strippedcsname#1\endcsname[]}}
@@ -3887,10 +3911,10 @@
% faster, since no \strippedcsname needed in call, but more spacy
\def\docomplexorsimple#1#2%
- {\doifnextcharelse[{\firstargumenttrue#1}{\firstargumentfalse#2}}
+ {\doifnextoptionalelse{\firstargumenttrue#1}{\firstargumentfalse#2}}
\def\docomplexorsimpleempty#1%
- {\doifnextcharelse[{\firstargumenttrue#1}{\firstargumentfalse#1[]}}
+ {\doifnextoptionalelse{\firstargumenttrue#1}{\firstargumentfalse#1[]}}
\def\definecomplexorsimple#1%
{\unexpanded\edef#1%
@@ -4020,35 +4044,6 @@
%D \type {\if} and friends, in practice we will use a
%D slightly more complicated macro.
-\let\normalif \if
-\let\normalifcat \ifcat
-\let\normalifnum \ifnum
-\let\normalifdim \ifdim
-\let\normalifodd \ifodd
-\let\normalifvmode \ifvmode
-\let\normalifhmode \ifhmode
-\let\normalifmmode \ifmmode
-\let\normalifinner \ifinner
-\let\normalifvoid \ifvoid
-\let\normalifhbox \ifhbox
-\let\normalifvbox \ifvbox
-\let\normalifx \ifx
-\let\normalifeof \ifeof
-\let\normaliftrue \iftrue
-\let\normaliffalse \iffalse
-\let\normalifcase \ifcase
-\let\normalifdefined \ifdefined
-\let\normalifcsname \ifcsname
-\let\normaliffontchar \iffontchar
-\let\normalifincsname \ifincsname
-\let\normalifprimitive\ifprimitive
-\let\normalifabsnum \ifabsnum
-\let\normalifabsdim \ifabsdim
-
-\let\normalelse \else
-\let\normalor \or
-\let\normalfi \fi
-
\newtoks \everyrobusttest
\everyrobusttest
@@ -4094,34 +4089,65 @@
\dontpermitspacesbetweengroups
+% \def\dogetgroupargument#1#2%
+% {\def\nextnextargument%
+% {\normalifx\nextargument\bgroup
+% \endrobusttest
+% \noshowargumenterror
+% \def\nextargument{#1\dodogetargument}%
+% \normalelse
+% \normalifcase\@@permitspacesbetweengroups
+% \normalifx\nextargument\lineending
+% \endrobusttest
+% \def\nextargument{\begingroup\def\\ {\endgroup\dogetgroupargument#1#2}\\}%
+% \normalelse\normalifx\nextargument\blankspace
+% \endrobusttest
+% \def\nextargument{\begingroup\def\\ {\endgroup\dogetgroupargument#1#2}\\}%
+% \normalelse
+% \endrobusttest
+% \doshowargumenterror
+% \def\nextargument{#2\dodogetargument{}}%
+% \normalfi\normalfi
+% \normalelse
+% \endrobusttest
+% \doshowargumenterror
+% \def\nextargument{#2\dodogetargument{}}%
+% \normalfi
+% \normalfi
+% \nextargument}%
+% \beginrobusttest
+% \futurelet\nextargument\nextnextargument}
+
+\def\dodogetgroupargument
+ {\normalifx\nextargument\bgroup
+ \endrobusttest
+ \noshowargumenterror
+ \def\nextargument{\dogroupargumentyes\dodogetargument}%
+ \normalelse
+ \normalifcase\@@permitspacesbetweengroups
+ \normalifx\nextargument\lineending
+ \endrobusttest
+ \def\nextargument{\begingroup\def\\ {\endgroup\dogetgroupargument\dogroupargumentyes\dogroupargumentnop}\\}%
+ \normalelse\normalifx\nextargument\blankspace
+ \endrobusttest
+ \def\nextargument{\begingroup\def\\ {\endgroup\dogetgroupargument\dogroupargumentyes\dogroupargumentnop}\\}%
+ \normalelse
+ \endrobusttest
+ \doshowargumenterror
+ \def\nextargument{\dogroupargumentnop\dodogetargument{}}%
+ \normalfi\normalfi
+ \normalelse
+ \endrobusttest
+ \doshowargumenterror
+ \def\nextargument{\dogroupargumentnop\dodogetargument{}}%
+ \normalfi
+ \normalfi
+ \nextargument}%
+
\def\dogetgroupargument#1#2%
- {\def\nextnextargument%
- {\normalifx\nextargument\bgroup
- \endrobusttest
- \noshowargumenterror
- \def\nextargument{#1\dodogetargument}%
- \normalelse
- \normalifcase\@@permitspacesbetweengroups
- \normalifx\nextargument\lineending
- \endrobusttest
- \def\nextargument{\begingroup\def\\ {\endgroup\dogetgroupargument#1#2}\\}%
- \normalelse\normalifx\nextargument\blankspace
- \endrobusttest
- \def\nextargument{\begingroup\def\\ {\endgroup\dogetgroupargument#1#2}\\}%
- \normalelse
- \endrobusttest
- \doshowargumenterror
- \def\nextargument{#2\dodogetargument{}}%
- \normalfi\normalfi
- \normalelse
- \endrobusttest
- \doshowargumenterror
- \def\nextargument{#2\dodogetargument{}}%
- \normalfi
- \normalfi
- \nextargument}%
- \beginrobusttest
- \futurelet\nextargument\nextnextargument}
+ {\let\dogroupargumentyes#1%
+ \let\dogroupargumentnop#2%
+ \beginrobusttest\futurelet\nextargument\dodogetgroupargument}
\def\dosinglegroupempty#1%
{\def\dodogetargument%
@@ -4201,21 +4227,32 @@
%D used to select arguments. Their names explain their
%D functionality.
-\long\def\firstofoneargument #1{#1}
-\long\def\firstoftwoarguments #1#2{#1}
-\long\def\firstofthreearguments #1#2#3{#1}
-\long\def\firstoffourarguments #1#2#3#4{#1}
-\long\def\firstoffivearguments #1#2#3#4#5{#1}
-\long\def\secondoftwoarguments #1#2{#2}
-\long\def\secondofthreearguments #1#2#3{#2}
-\long\def\secondoffourarguments #1#2#3#4{#2}
-\long\def\secondoffivearguments #1#2#3#4#5{#2}
-\long\def\thirdofthreearguments #1#2#3{#3}
-\long\def\thirdoffourarguments #1#2#3#4{#3}
-\long\def\thirdoffivearguments #1#2#3#4#5{#3}
-\long\def\fourthoffourarguments #1#2#3#4{#4}
-\long\def\fourthoffivearguments #1#2#3#4#5{#4}
-\long\def\fifthoffivearguments #1#2#3#4#5{#5}
+\long\def\firstofoneargument#1{#1}
+
+\long\def\firstoftwoarguments #1#2{#1}
+\long\def\secondoftwoarguments#1#2{#2}
+
+\long\def\firstofthreearguments #1#2#3{#1}
+\long\def\secondofthreearguments#1#2#3{#2}
+\long\def\thirdofthreearguments #1#2#3{#3}
+
+\long\def\firstoffourarguments #1#2#3#4{#1}
+\long\def\secondoffourarguments#1#2#3#4{#2}
+\long\def\thirdoffourarguments #1#2#3#4{#3}
+\long\def\fourthoffourarguments#1#2#3#4{#4}
+
+\long\def\firstoffivearguments #1#2#3#4#5{#1}
+\long\def\secondoffivearguments#1#2#3#4#5{#2}
+\long\def\thirdoffivearguments #1#2#3#4#5{#3}
+\long\def\fourthoffivearguments#1#2#3#4#5{#4}
+\long\def\fifthoffivearguments #1#2#3#4#5{#5}
+
+\long\def\firstofsixarguments #1#2#3#4#5#6{#1}
+\long\def\secondofsixarguments#1#2#3#4#5#6{#2}
+\long\def\thirdofsixarguments #1#2#3#4#5#6{#3}
+\long\def\fourthofsixarguments#1#2#3#4#5#6{#4}
+\long\def\fifthofsixarguments #1#2#3#4#5#6{#5}
+\long\def\sixthofsixarguments #1#2#3#4#5#6{#6}
%D \macros
%D {globalletempty,letempty,letvalueempty,letgvalueempty}
@@ -4395,10 +4432,13 @@
%D Finally we do what from now on will be done at the top of
%D the files: we tell the user what we are loading.
-\ifx\writestatus\undefined \let\writestatus\normalwritestatus \fi
-\ifx\writebanner\undefined \def\writebanner{\writestring} \fi
+% \ifx\writestatus\undefined \let\writestatus\normalwritestatus \fi
+% \ifx\writebanner\undefined \def\writebanner{\writestring} \fi
+
+\let\writestatus\normalwritestatus
+\def\writebanner{\writestring}
-\writestatus{loading}{Context System Macros / General}
+\writestatus{loading}{ConTeXt System Macros / General}
%D Well, the real final command is the one that resets the
%D unprotected characters \type{@}, \type{?} and \type{!}.
diff --git a/Master/texmf-dist/tex/context/base/syst-ini.tex b/Master/texmf-dist/tex/context/base/syst-ini.tex
new file mode 100644
index 00000000000..2a04f111271
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/syst-ini.tex
@@ -0,0 +1,887 @@
+%D \module
+%D [ file=syst-ini,
+%D version=2008.11.04, % 2001.11.16, % 1999.03.17, % an oldie: 1995.10.10
+%D title=\CONTEXT\ System Macros,
+%D subtitle=Bootstrapping \TEX,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D We used to load plain \TEX\ in a special way, but redefining
+%D a couple of primitives so that for instance font loading was
+%D ignored. For those interested, this loader is found in
+%D \type {syst-tex.tex}. Some of the comment's are Don Knuth's
+%D and more of it can be found in the plain \TEX\ format.
+
+%D Characters can have special states, that can be triggered
+%D by setting their category coded. Some are preset, others
+%D are to be set as soon as possible, otherwise we cannot
+%D define any useful macros.
+
+%catcode`\^^@ = 9 % ascii null is ignored
+%catcode`\\ = 0 % backslash is TeX escape character
+
+\catcode`\{ = 1 % left brace is begin-group character
+\catcode`\} = 2 % right brace is end-group character
+\catcode`\$ = 3 % dollar sign is math shift
+\catcode`\& = 4 % ampersand is alignment tab
+\catcode`\# = 6 % hash mark is macro parameter character
+\catcode`\^ = 7 % circumflex and uparrow are for superscripts
+\catcode`\_ = 8 % underline and downarrow are for subscripts
+\catcode`\^^I = 10 % ascii tab is a blank space
+
+%catcode`\^^M = 5 % ascii return is end-line
+%catcode`\% = 14 % percent sign is comment character
+%catcode`\ = 10 % ascii space is blank space
+%catcode`\^^? = 15 % ascii delete is invalid
+
+\catcode`\~ = 13 % tilde is active
+\catcode`\^^L = 13 % ascii form-feed
+
+%catcode`\A = 11
+%.......
+%catcode`\Z = 11
+
+%catcode`\a = 11
+%.......
+%catcode`\z = 11
+
+\chardef\active = 13
+
+\def ^^L{\par}
+\def\^^M{\ } % control <return> = control <space>
+\def\^^I{\ } % same for <tab>
+
+%D In \CONTEXT, we simply ignore end||of||file tokens:
+
+\catcode`\^^Z=9
+
+%D It makes sense to know what engine we're running so let's
+%D try to deduce it.
+
+\chardef\unknownengine = 0
+\chardef\pdftexengine = 1
+\chardef\xetexengine = 2
+\chardef\luatexengine = 3
+
+\ifx\directlua\undefined
+ \ifx\XeTeXversion\undefined
+ \ifx\pdftexversion\undefined
+ \let\texengine\unknownengine
+ \else
+ \let\texengine\pdftexengine
+ \fi
+ \else
+ \let\texengine\xetexengine
+ \fi
+\else
+ \let\texengine\luatexengine
+\fi
+
+\ifnum\texengine=\unknownengine
+ \immediate\write16{>>>}
+ \immediate\write16{>>> only pdftex, xetex and luatex are supported}
+ \immediate\write16{>>>}
+ \let\dump\relax
+ \expandafter\end
+\fi
+
+% todo: pdfsave pdfrestore pdfcolor... don't initialize them
+
+\ifnum\texengine=\luatexengine
+ \directlua 0 { % this info is stored in the format
+ if lua.name then
+ lua.name[0] = "main ctx instance"
+ end
+ if tex.extraprimitives then
+ local core = tex.extraprimitives('core')
+ local btex = tex.extraprimitives('tex')
+ local etex = tex.extraprimitives('etex')
+ local pdftex = tex.extraprimitives('pdftex')
+ local luatex = tex.extraprimitives('luatex')
+ local omega = {
+ "textdir", "pagedir", "mathdir", "pardir", "bodydir",
+ "leftghost", "rightghost", "localleftbox", "localrightbox",
+ "localinterlinepenalty", "localbrokenpenalty",
+ }
+ local aleph = {
+ "boxdir", "pagebottomoffset", "pagerightoffset",
+ }
+ for _, subset in pairs { etex, pdftex, luatex, omega, aleph } do
+ tex.enableprimitives('',subset)
+ end
+ for _, subset in pairs { core, btex, etex, pdftex, luatex, omega, aleph } do
+ tex.enableprimitives('normal',subset)
+ end
+ end
+ }
+\fi
+
+%D \ETEX\ has a not so handy way of telling you the version number,
+%D i.e. the revision number has a period in it:
+
+\long\def\gobbleoneargument#1{} % will be defined later on anyway
+
+\mathchardef\etexversion =
+ \numexpr\eTeXversion*100+\expandafter\gobbleoneargument\eTeXrevision\relax
+
+%D First we define a simplified version of the \CONTEXT\
+%D protection mechanism.
+
+\def\unprotect{\catcode`@=11 }
+\def\protect {\catcode`@=12 }
+
+\unprotect
+
+%D Some pretty important definitions:
+
+\let\bgroup={
+\let\egroup=}
+
+%D Allocation of registers is done slightly different than in plain
+%D \TEX. First of all we use different reserved counters. We also
+%D don't implement a family handler because users are not supposed
+%D to implement their own math. We reserve the lowest 31 registers
+%D for scratch purposes. Keep in mind that in the core engine
+%D some registers are reserved: counters 0 upto 9, and counter 255.
+%D
+%D As with plain \TEX\ we recommend that macro designers always use
+%D \type {\global} assignments with respect to registers numbered 1,
+%D 3, 5 \unknown\ 31, and always non||\type {\global} assignments
+%D with respect to registers 0, 2, 4, \unknown\ 30. This will prevent
+%D \quote {save stack buildup} that might otherwise occur.
+%D
+%D We reserve some registers for special (management) purposes:
+
+\countdef \minallocatedregister = 52 \minallocatedregister = 256
+\countdef \maxallocatedregister = 53 \maxallocatedregister = 32767
+\countdef \minallocatediochannel = 54 \minallocatediochannel = -1
+\countdef \maxallocatediochannel = 55 \maxallocatediochannel = 16
+\countdef \minallocatedlanguage = 56 \minallocatedlanguage = 0
+\countdef \maxallocatedlanguage = 57 \maxallocatedlanguage = 255
+\countdef \maxallocatedinsert = 58 \maxallocatedinsert = 254
+\countdef \minallocatedinsert = 59 \minallocatedinsert = 128
+\countdef \minallocatedfamily = 60 \minallocatedfamily = 128
+\countdef \maxallocatedfamily = 61 \maxallocatedfamily = 255
+
+\countdef \lastallocatedcount = 32 \lastallocatedcount = \minallocatedregister
+\countdef \lastallocateddimen = 33 \lastallocateddimen = \minallocatedregister
+\countdef \lastallocatedskip = 34 \lastallocatedskip = \minallocatedregister
+\countdef \lastallocatedmuskip = 35 \lastallocatedmuskip = \minallocatedregister
+\countdef \lastallocatedbox = 36 \lastallocatedbox = \minallocatedregister
+\countdef \lastallocatedtoks = 37 \lastallocatedtoks = \minallocatedregister
+\countdef \lastallocatedread = 38 \lastallocatedread = \minallocatediochannel
+\countdef \lastallocatedwrite = 39 \lastallocatedwrite = \minallocatediochannel
+\countdef \lastallocatedmarks = 40 \lastallocatedmarks = \minallocatedregister
+\countdef \lastallocatedlanguage = 41 \lastallocatedlanguage = \minallocatedlanguage
+\countdef \lastallocatedinsertion = 42 \lastallocatedinsertion = \minallocatedinsert
+\countdef \lastallocatedfamily = 43 \lastallocatedfamily = \minallocatedfamily
+\countdef \lastallocatedattribute = 44 \lastallocatedattribute = \minallocatedregister
+
+\countdef \mincountervalue = 125 \mincountervalue = -"7FFFFFFF % beware, we use index 125 at the lua end
+\countdef \maxcountervalue = 126 \maxcountervalue = "7FFFFFFF % beware, we use index 126 at the lua end
+\countdef \minusone = 127 \minusone = -1
+\chardef \zerocount = 0
+\chardef \plusone = 1
+
+\chardef \normalpagebox = 255 % hardcoded in the engine
+
+% A few traditional allocations:
+
+\countdef \count@ = 255 % hm, used in \newif
+\dimendef \dimen@ = 0
+\dimendef \dimen@i = 1 % global only
+\dimendef \dimen@ii = 2
+
+%D So, effectively we start allocating from 256 and upwards. The
+%D inserts sit in the range 128 upto 254. Page numbers use the
+%D counters 0 upto 9 and the pagebox is 255. Users can use the
+%D scratch registers upto 31 without problem but all others are
+%D reserved.
+
+\def\wlog#1{} % \def\wlog{\immediate\write\minusone} % write on log file (only)
+
+%D The allocators share a common helper macro.
+
+\def\newcount {\allocateregister\lastallocatedcount \count \countdef \maxallocatedregister}
+\def\newdimen {\allocateregister\lastallocateddimen \dimen \dimendef \maxallocatedregister}
+\def\newskip {\allocateregister\lastallocatedskip \skip \skipdef \maxallocatedregister}
+\def\newmuskip {\allocateregister\lastallocatedmuskip \muskip \muskipdef \maxallocatedregister}
+\def\newbox {\allocateregister\lastallocatedbox \box \mathchardef\maxallocatedregister}
+\def\newtoks {\allocateregister\lastallocatedtoks \toks \toksdef \maxallocatedregister}
+\def\newread {\allocateregister\lastallocatedread \read \chardef \maxallocatediochannel}
+\def\newwrite {\allocateregister\lastallocatedwrite \write \chardef \maxallocatediochannel}
+\def\newmarks {\allocateregister\lastallocatedmarks \marks \mathchardef\maxallocatedregister}
+\def\newlanguage{\allocateregister\lastallocatedlanguage \language\chardef \maxallocatedlanguage}
+\def\newinsert {\allocateregister\lastallocatedinsertion\insert \chardef \maxallocatedinsert}
+\def\newfamily {\allocateregister\lastallocatedfamily \fam \chardef \maxallocatedfamily}
+
+\let\newfam\newfamily
+
+% %D The next definitions are really needed (in \CONTEXT):
+
+%newlinechar=10 \def\outputnewlinechar{\rawcharacter{10}}
+\newlinechar=10 \edef\outputnewlinechar{^^J}
+
+%D One reason to start high with allocation is that it permits us to
+%D allocate consecutive ranges more easily, for instance in \MPLIB\
+%D we want to allocate a continuous range of boxes. It also permits us
+%D to do a proper upward allocation for inserts. The current code
+%D evolved from code that dealt with older engines but as all engines
+%D now provide many registers we removed all traces.
+
+\def\writestatus#1#2{\immediate\write16{#1: #2}} \def\space { }
+
+\def\allocateregisteryes#1#2#3#4#5% last class method max name
+ {\ifnum#1<#4\relax
+ \global\advance#1\plusone
+ \global#3#5=#1\relax
+ \else
+ \writestatus{warning}{no room for \string#2\space \string#5\space (max: \number#4)}%
+ \fi}
+
+\def\allocateregisternop#1#2#3#4#5% last class method max name
+ {\writestatus{warning}{\string#2 \string#5 is already defined (\string\relax\space it first)}}
+
+\def\allocateregister#1#2#3#4#5% last class method max name
+ {\ifx#5\undefined
+ \expandafter\allocateregisteryes
+ \else\ifx#5\relax
+ \expandafter\expandafter\expandafter\allocateregisteryes
+ \else
+ \expandafter\expandafter\expandafter\allocateregisternop
+ \fi\fi
+ #1#2#3#4#5}
+
+%D Since the number of chars exceed 256 now, we can use \type
+%D {\chardef} instead of the more limited \type {\mathchardef}.
+
+\ifnum\texengine>\pdftexengine
+ \def\newbox {\allocateregister\lastallocatedbox \box \chardef\maxallocatedregister}
+ \def\newmarks{\allocateregister\lastallocatedmarks\marks\chardef\maxallocatedregister}
+\fi
+
+%D Attributes are something very \LUATEX. In \CONTEXT\ you are not
+%D supposed to use the attributes directly but always allocate then
+%D first. For instance attribute~0 is reserved for special purposes
+%D (this might change).
+
+\ifnum\texengine=\luatexengine
+ \let\attributeunsetvalue\mincountervalue % used to be \minusone
+ \def\newattribute{\allocateregister\lastallocatedattribute\attribute\attributedef\maxallocatedregister}
+\fi
+
+%D Not used by \CONTEXT\ but for instance \PICTEX\ needs it. It's a
+%D trick to force strings instead of tokens that take more memory.
+%D It's a trick to trick to force strings.
+
+\def\newhelp#1#2{\newtoks#1#1\expandafter{\csname#2\endcsname}}
+
+%D \macros
+%D {scratchcounter,
+%D scratchdimen,scratchskip,scratchmuskip,
+%D scratchbox,
+%D scratchtoks}
+%D
+%D We now define a few scratch registers, so that successive
+%D loads at least have some available.
+
+\newcount \scratchcounter \newcount \globalscratchcounter
+\newdimen \scratchdimen \newdimen \globalscratchdimen
+\newskip \scratchskip \newskip \globalscratchskip
+\newmuskip \scratchmuskip \newmuskip \globalscratchmuskip
+\newtoks \scratchtoks \newtoks \globalscratchtoks
+\newbox \scratchbox \newbox \globalscratchbox
+
+\newcount\scratchcounterone \newcount\scratchcountertwo \newcount\scratchcounterthree
+\newdimen \scratchdimenone \newdimen \scratchdimentwo \newdimen \scratchdimenthree
+\newdimen \scratchskipone \newdimen \scratchskiptwo \newdimen \scratchskipthree
+\newbox \scratchmuskipone \newbox \scratchmuskiptwo \newbox \scratchmuskipthree
+\newtoks \scratchtoksone \newtoks \scratchtokstwo \newtoks \scratchtoksthree
+\newbox \scratchboxone \newbox \scratchboxtwo \newbox \scratchboxthree
+
+%D More allocations:
+
+\newskip \zeroskip \zeroskip = 0pt plus 0pt minus 0pt
+\newdimen\zeropoint \zeropoint = 0pt
+\newdimen\onepoint \onepoint = 1pt
+\newdimen\maxdimen \maxdimen = 16383.99999pt
+\newdimen\onebasepoint \onebasepoint = 1bp
+\chardef \scaledpoint = 1
+\newdimen\thousandpoint\thousandpoint= 1000pt
+
+\let\points\onepoint
+
+\newtoks \emptytoks
+
+%D And even more:
+
+%newcount \minusone \minusone = -1
+\newcount \minustwo \minustwo = -2
+%chardef \zerocount = 0
+%chardef \plusone = 1
+\chardef \plustwo = 2
+\chardef \plusthree = 3
+\chardef \plusfour = 4
+\chardef \plusfive = 5
+\chardef \plussix = 6
+\chardef \plusseven = 7
+\chardef \pluseight = 8
+\chardef \plusnine = 9
+\chardef \plusten = 10
+\chardef \plussixteen = 16
+\chardef \plushundred = 100
+\chardef \pluscxxvii = 127
+\chardef \pluscxxviii = 128
+\chardef \pluscclv = 255
+
+\ifnum\texengine=\luatexengine
+ \chardef \pluscclvi = 256
+ \chardef \plusthousand = 1000
+ \chardef \plustenthousand = 10000
+ \chardef \plustwentythousand = 20000
+ \chardef \medcard = 32768
+ \chardef \maxcard = 65536 % pdftex has less mathchars
+\else
+ \mathchardef\pluscclvi = 256
+ \mathchardef\plusthousand = 1000
+ \mathchardef\plustenthousand = 10000
+ \mathchardef\plustwentythousand = 20000
+ \newcount \medcard \medcard = 32768 % pdftex has less mathchars
+ \newcount \maxcard \maxcard = 65536 % pdftex has less mathchars
+\fi
+
+%D We prefer the more readable variant than in plain
+%D \TEX. User should only use \type {\emptybox}:
+
+\newbox\voidbox
+
+\def\emptybox {\box \voidbox}
+\def\unvoidbox{\unhbox\voidbox}
+
+\let\leavevmode\unvoidbox % we prefer to use \dontleavehmode
+
+%D Some expected plain variants follow. We don't reuse registers
+%D because we don't want clashes.
+
+\newdimen\p@ \p@ \onepoint
+\newcount\m@ne \m@ne \minusone
+\newdimen\z@ \z@ \zeropoint
+\let \@ne \plusone
+\let \tw@ \plustwo
+\let \thr@@ \plusthree
+\let \sixt@@n \sixteen
+\let \@cclv \pluscclv
+\let \@cclvi \pluscclvi
+\newbox \voidb@x
+\newtoks \toks@
+
+%D We define \type {\newif} a la plain \TEX, but will
+%D redefine it later. As Knuth says:
+%D
+%D \startnarrower
+%D And here's a different sort of allocation: for example,
+%D
+%D \starttyping
+%D \newif\iffoo
+%D \stoptyping
+%D
+%D creates \type {\footrue}, \type {\foofalse} to go
+%D with \type {\iffoo}.
+%D \stopnarrower
+
+\def\newif#1%
+ {\count@\escapechar
+ \escapechar\minusone
+ \expandafter\expandafter\expandafter\def\@if #1{true}{\let#1\iftrue }%
+ \expandafter\expandafter\expandafter\def\@if#1{false}{\let#1\iffalse}%
+ \@if#1{false}% the condition starts out false
+ \escapechar\count@}
+
+\def\@if#1#2%
+ {\csname\expandafter\if@\string#1#2\endcsname}
+
+\bgroup % `if' is required
+
+ \uccode`1=`i \uccode`2=`f \uppercase{\gdef\if@12{}}
+
+\egroup
+
+%D Let's test this one:
+
+\newif\ifdone
+
+%D \macros
+%D {@@escape,@@begingroup,@@endgroup,@@mathshift,@@alignment,
+%D @@endofline,@@parameter,@@superscript,@@subscript,
+%D @@ignore,@@space,@@letter,@@other,@@active,@@comment}
+%D
+%D In \CONTEXT\ we sometimes manipulate the \CATCODES\ of certain
+%D characters. Because we are not that good at remembering numbers,
+%D we introduce some symbolic names.
+
+%D As we now have catc-* files, we also have more readable names
+
+\chardef\@@escape = 0
+\chardef\@@begingroup = 1
+\chardef\@@endgroup = 2
+\chardef\@@mathshift = 3
+\chardef\@@alignment = 4
+\chardef\@@endofline = 5
+\chardef\@@parameter = 6
+\chardef\@@superscript = 7
+\chardef\@@subscript = 8
+\chardef\@@ignore = 9
+\chardef\@@space = 10
+\chardef\@@letter = 11
+\chardef\@@other = 12 \chardef\other = 12
+\chardef\@@active = 13 \chardef\active = 13
+\chardef\@@comment = 14
+
+%D Constants to be used with \type {\grouptype}.
+
+\chardef\@@bottomlevelgroup = 0
+\chardef\@@simplegroup = 1
+\chardef\@@hboxgroup = 2
+\chardef\@@adjustedhboxgroup = 3
+\chardef\@@vboxgroup = 4
+\chardef\@@vtopgroup = 5
+\chardef\@@aligngroup = 6
+\chardef\@@noaligngroup = 7
+\chardef\@@outputgroup = 8
+\chardef\@@mathgroup = 9
+\chardef\@@discretionarygroup = 10
+\chardef\@@insertgroup = 11
+\chardef\@@vcentergroup = 12
+\chardef\@@mathchoicegroup = 13
+\chardef\@@semisimplegroup = 14
+\chardef\@@mathshiftgroup = 15
+\chardef\@@mathleftgroup = 16
+
+\chardef\@@vadjustgroup = \@@insertgroup
+
+%D Constants to be used with \type {\interactionmode}.
+
+\chardef\@@batchmode = 0
+\chardef\@@nonstopmode = 1
+\chardef\@@scrollmode = 2
+\chardef\@@errorstopmode = 3
+
+%D Constants to be used with \type {\lastnodetype}. The \type
+%D {\lastnodetype} primitive is \ETEX\ compliant. The valid range is
+%D still -1 .. 15 and glyph nodes have number 0 (used to be char
+%D node) and ligature nodes are mapped to 7. That way macro packages
+%D can use the same symbolic names as in traditional \ETEX. Keep in
+%D mind that the internal node numbers are different and that there
+%D are more node types that 15.
+
+\chardef\@@charnode = 0
+\chardef\@@hlistnode = 1
+\chardef\@@vlistnode = 2
+\chardef\@@rulenode = 3
+\chardef\@@insertnode = 4
+\chardef\@@marknode = 5
+\chardef\@@adjustnode = 6
+\chardef\@@ligaturenode = 7
+\chardef\@@discretionarynode = 8
+\chardef\@@whatsitnode = 9
+\chardef\@@mathnode = 10
+\chardef\@@gluenode = 11
+\chardef\@@kernnode = 12
+\chardef\@@penaltynode = 13
+\chardef\@@unsetnode = 14
+\chardef\@@mathsnode = 15
+
+%D Constants to be used with \type {\currentiftype}.
+
+\chardef\@@charif = 1
+\chardef\@@catif = 2
+\chardef\@@numif = 3
+\chardef\@@dimif = 4
+\chardef\@@oddif = 5
+\chardef\@@vmodeif = 6
+\chardef\@@hmodeif = 7
+\chardef\@@mmodeif = 8
+\chardef\@@innerif = 9
+\chardef\@@voidif = 10
+\chardef\@@hboxif = 11
+\chardef\@@vboxif = 12
+\chardef\@@xif = 13
+\chardef\@@eofif = 14
+\chardef\@@trueif = 15
+\chardef\@@falseif = 16
+\chardef\@@caseif = 17
+\chardef\@@definedif = 18
+\chardef\@@csnameif = 19
+\chardef\@@fontcharif = 20
+
+%D Of course we want even bigger log files, so we copied this
+%D from the \ETEX\ source files.
+%D
+%D When watching such logs, beware of nasty side effects of
+%D \type {\scantokens}, as in:
+%D
+%D \starttyping
+%D \bgroup
+%D \lccode`a=12\lowercase{\xdef\whatever{a}}\egroup
+%D \def\whatever{test \whatever test}
+%D \scantokens\expandafter{\whatever}
+%D \egroup
+%D \stoptyping
+%D
+%D In \LUATEX\ we have ways around this.
+
+\def\tracingall
+ {\tracingonline \plusone
+ \tracingcommands \plusthree
+ \tracingstats \plustwo
+ \tracingpages \plusone
+ \tracingoutput \plusone
+ \tracinglostchars \plustwo
+ \tracingmacros \plustwo
+ \tracingparagraphs\plusone
+ \tracingrestores \plusone
+ \showboxbreadth \maxdimen
+ \showboxdepth \maxdimen
+ \tracinggroups \plusone
+ \tracingifs \plusone
+ \tracingscantokens\plusone
+ \tracingnesting \plusone
+ \tracingassigns \plustwo
+ \errorstopmode}
+
+\def\loggingall
+ {\tracingall
+ \tracingonline \zerocount}
+
+\def\tracingnone
+ {\tracingassigns \zerocount
+ \tracingnesting \zerocount
+ \tracingscantokens\zerocount
+ \tracingifs \zerocount
+ \tracinggroups \zerocount
+ \showboxdepth \plusthree
+ \showboxbreadth \plusfive
+ \tracingrestores \zerocount
+ \tracingparagraphs\zerocount
+ \tracingmacros \zerocount
+ \tracinglostchars \plusone
+ \tracingoutput \zerocount
+ \tracingpages \zerocount
+ \tracingstats \zerocount
+ \tracingcommands \zerocount
+ \tracingonline \zerocount}
+
+%D Just for tracing purposes we set:
+
+\tracingstats\plusone
+
+%D Here we also save \input, more will be saved later.
+
+\ifdefined\normalinput \else \let\normalinput\input \fi
+
+%D We don't like outer commands, and we always want access
+%D to the original \type {\input} primitive.
+
+\let\normalouter\outer \def\outer{} % no longer \relax
+
+%D To circumvent dependencies, we can postpone certain
+%D initializations to dumping time, by appending them to the
+%D \type {\everydump} token register.
+
+\ifdefined\normaldump \else \let\normaldump\dump \fi
+
+\newtoks\everydump
+
+\def\dump{\the\everydump\normaldump}
+
+%D The same applies for the startup actions.
+
+\ifdefined\normaleveryjob \else \let\normaleveryjob\everyjob \fi
+
+\let\everyjob\relax \newtoks\everyjob
+
+\normaleveryjob{\the\everyjob}
+
+\def\appendtotoks #1{\def\temp{#1}\afterassignment\doappendtotoks \scratchtoks=}
+\def\prependtotoks#1{\def\temp{#1}\afterassignment\doprependtotoks\scratchtoks=}
+
+\def\doappendtotoks {\expandafter\expandafter\expandafter{\expandafter\the\expandafter\temp\the\scratchtoks}}
+\def\doprependtotoks{\expandafter\expandafter\expandafter{\expandafter\the\expandafter\scratchtoks\the\temp}}
+
+%D \macros
+%D {begcsname}
+%D
+%D Handy for \ETEX-only usage (avoids making \type {\relax}'s:
+
+\def\begcsname#1\endcsname{\ifcsname#1\endcsname\csname#1\endcsname\fi}
+
+%D Now come a few macros that might be needed in successive loading:
+
+\let\endgraf\par
+\let\endline\cr
+
+\def\space{ }
+\def\empty{}
+\def\null {\hbox{}}
+
+%D The following two might be overloaded later on but some modules need
+%D then earlier. These functionality is reflected in the name and will not
+%D change.
+
+\bgroup
+ \catcode`\^^M=\active%
+ \gdef\obeylines{\catcode`\^^M\active \let^^M\par}%
+ \global\let^^M\par%
+\egroup
+
+\bgroup
+ \gdef\obeyspaces{\catcode`\ \active}%
+ \obeyspaces\global\let =\space%
+\egroup
+
+%D Also needed might be a simple loop structure and we borrow
+%D plain \TEX's one as it is often expected to be present and
+%D it is about the fastest you can get. Beware: this macro
+%D does not support nested loops. We use a namespace prefix
+%D \type {@@pln}.
+
+\long\def\loop#1\repeat{\long\def\@@plnbody{#1}\@@plniterate}
+
+%D The following makes \type {\loop} \unknown\ \type {\if}
+%D \unknown\ \type {\repeat} skippable (clever trick):
+
+\let\repeat\fi % so both \loop and \repeat are reserved words!
+
+%D The original (no \type {@@pln} there):
+%D
+%D \starttyping
+%D \def\@@plniterate{\@@plnbody\let\next\@@plniterate\else\let\next\relax\fi\next}
+%D \stoptyping
+%D
+%D A more efficient alternative:
+%D
+%D \starttyping
+%D \def\@@plniterate{\@@plnbody\expandafter\@@plniterate\else\expandafter\relax\fi}
+%D \stoptyping
+%D
+%D An even more efficient one:
+
+\def\@@plniterate{\@@plnbody\expandafter\@@plniterate\else\fi}
+
+%D We don't define a real output routine yet but at least get rid
+%D of pages:
+
+\output{\shipout\box\normalpagebox}
+
+%D Although we don't add pagenumbers yet we alias the default
+%D register used for counting pages:
+
+\countdef\pageno=0 \pageno=1 % first page is number 1
+
+%D Beside the raw counter \type {\pageno} the \type {\folio}
+%D macro provides the value.
+
+\def\folio{\the\pageno} % kind of expected and therefore reserved
+
+%D The following registers are kind of standard and (for the moment)
+%D we define them here. This might change.
+
+\newskip \bigskipamount \bigskipamount = 12pt plus 4pt minus 4pt
+\newskip \medskipamount \medskipamount = 6pt plus 2pt minus 2pt
+\newskip \smallskipamount \smallskipamount = 3pt plus 1pt minus 1pt
+
+\baselineskip = 12pt
+\lineskip = 1pt
+\lineskiplimit = 0pt
+
+%D Again a few kind-of-extensions the core:
+
+\newskip \hideskip \hideskip = -1000pt plus 1fill
+\newskip \centering \centering = 0pt plus 1000pt minus 1000pt
+
+\def\hidewidth % for alignment entries that can stick out
+ {\hskip\hideskip}
+
+\def\ialign % initialized \halign
+ {\everycr{}%
+ \tabskip\zeroskip
+ \halign}
+
+\newcount \mscount
+
+\def\spanomit{\span\omit} % bypass error message
+
+\def\multispan#1%
+ {\omit
+ \mscount#1\relax
+ \loop
+ \ifnum\mscount>\plusone
+ \spanomit \advance\mscount\minusone
+ \repeat}
+
+%D The next section deals with selective definitions in
+%D later modules. One can of course use the \type {\texengine}
+%D number that we defined earlier instead.
+
+\bgroup \obeylines
+ \gdef\pickupSOMETEX#1%
+ {\expandafter\gdef\csname begin#1\endcsname{\bgroup\obeylines\dopickupSOMETEX{#1}}}
+ \gdef\dopickupSOMETEX#1#2
+ % {\egroup\immediate\write16{special code for #1 -> [line \the\inputlineno] \detokenize{#2}}}
+ {\egroup}
+\egroup
+
+\let\endTEX \relax \long\def\beginTEX #1\endTEX {}
+\let\endETEX \relax \long\def\beginETEX #1\endETEX {}
+\let\endXETEX \relax \long\def\beginXETEX #1\endXETEX {}
+\let\endLUATEX\relax \long\def\beginLUATEX#1\endLUATEX{}
+\let\endOLDTEX\relax \long\def\beginOLDTEX#1\endOLDTEX{}
+\let\endNEWTEX\relax \long\def\beginNEWTEX#1\endNEWTEX{}
+
+\pickupSOMETEX{ETEX}
+
+\ifnum\texengine=\xetexengine
+ \pickupSOMETEX{XETEX}
+\fi
+\ifnum\texengine=\luatexengine
+ \pickupSOMETEX{LUATEX}
+\fi
+\ifnum\texengine<\xetexengine
+ \pickupSOMETEX{OLDTEX}
+\else
+ \pickupSOMETEX{NEWTEX}
+\fi
+
+%D \macros
+%D {bindprimitive}
+%D
+%D We can remap primitives (which is needed because of changes in
+%D for instance \PDFTEX).
+
+\def\bindprimitive#1 #2 % new old
+ {\ifcsname#1\endcsname \else \ifcsname#2\endcsname
+ \expandafter\let\csname#1\expandafter\endcsname\csname#2\endcsname
+ \fi \fi}
+
+%D Because \XETEX\ also implements some \PDFTEX\ functionality, we take
+%D care of this here instead of a dedicated module. Later modules need
+%D to handle the undefined cases.
+
+%D These messy checks will disappear.
+
+% new after 1.10, watch the change in prefix
+
+\bindprimitive quitvmode ptexquitvmode
+\bindprimitive noligatures ptexnoligatures
+\bindprimitive setrandomseed ptexsetrandomseed
+\bindprimitive uniformdeviate ptexuniformdeviate
+
+\bindprimitive quitvmode pdfquitvmode
+\bindprimitive noligatures pdfnoligatures
+\bindprimitive setrandomseed pdfsetrandomseed
+\bindprimitive uniformdeviate pdfuniformdeviate
+
+\bindprimitive resettimer pdfresettimer
+\bindprimitive elapsedtime pdfelapsedtime
+
+% new per 1.40
+
+\bindprimitive ifprimitive ifpdfprimitive
+\bindprimitive primitive pdfprimitive
+\bindprimitive ifabsdim ifpdfabsdim
+\bindprimitive ifabsnum ifpdfabsnum
+
+\ifnum\texengine=\xetexengine \else % this test might disappear some day
+
+ \pdfminorversion \plusfive
+
+ \ifdefined\pdfcompresslevel \else \newcount\pdfcompresslevel \fi
+ \ifdefined\pdfobjcompresslevel \else \newcount\pdfobjcompresslevel \fi
+ \ifdefined\pdfgentounicode \else \newcount\pdfgentounicode \fi \pdfgentounicode\plusone
+
+ \def\nopdfcompression {\pdfobjcompresslevel\zerocount \pdfcompresslevel\zerocount}
+ \def\maximumpdfcompression{\pdfobjcompresslevel\plusone \pdfcompresslevel\plusnine }
+ \def\normalpdfcompression {\pdfobjcompresslevel\plusone \pdfcompresslevel\plusthree}
+
+ \normalpdfcompression
+
+ \let\normalsetrandomseed \setrandomseed
+ \let\normaluniformdeviate\uniformdeviate
+
+\fi
+
+%D Handy.
+
+\ifnum\texengine=\luatexengine
+ \ifdefined\suppresslongerror % for the moment test
+ \suppresslongerror\plusone
+ \fi
+\fi
+
+%D Basic status stuff.
+
+\newif\ifproductionrun
+
+%D We need to make sure that we start up in \DVI\ mode, so,
+%D after testing for running \PDFTEX, we default to \DVI.
+
+\ifx\pdftexversion\undefined \newcount\pdfoutput \fi \pdfoutput=0
+
+%D For those who expect this \unknown
+
+\ifx\fmtname \undefined \def\fmtname {ConTeXt Minimized Plain TeX} \fi
+\ifx\fmtversion\undefined \def\fmtversion{3.1415926} \fi
+
+\let\normalfmtversion\fmtversion
+
+%D A few bonus macros:
+
+\def\modulonumber#1#2{\the\numexpr#2-((((#2+(#1/2))/#1)-1)*#1)\relax}
+\def\dividonumber#1#2{\the\numexpr(#2-(#1/2))/#1\relax}
+
+\ifnum\texengine=\xetexengine
+ \edef\xetexversion {\numexpr\XeTeXversion*100+(\expandafter\gobbleoneargument\XeTeXrevision-5)/10\relax}
+ \edef\xetexrevision {\the\numexpr(\expandafter\gobbleoneargument\XeTeXrevision-50)/100\relax}
+\fi
+
+\ifcase\texengine
+ \def\texenginename {impossible}
+ \edef\texengineversion{0}
+\or
+ \def\texenginename {pdfTeX}
+ \edef\texengineversion{\dividonumber{100}\pdftexversion.\modulonumber{100}\pdftexversion.\pdftexrevision}
+\or
+ \def\texenginename {XeTeX}
+ \edef\texengineversion{\dividonumber{100}\xetexversion .\modulonumber{100}\xetexversion .\xetexrevision}
+\or
+ \def\texenginename {LuaTeX}
+ \edef\texengineversion{\dividonumber{100}\luatexversion.\modulonumber{100}\luatexversion.\luatexrevision}
+\else
+ \def\texenginename {impossible}
+ \edef\texengineversion{0}
+\fi
+
+%D While cleaning this code up a bit I was listening to Heather
+%D Nova's \CD\ Redbird. The first song on that \CD\ ends with
+%D a few lines suitable for ending this initialization module:
+%D
+%D \startlines
+%D And there's so much I can do for you
+%D Given time I know that I can prove
+%D Now my world is opened up to you
+%D Come inside
+%D
+%D Welcome to my life
+%D Welcome to my world
+%D Come inside
+%D \stoplines
+%D
+%D So let's see what \TEX\ can do now that we've opened up
+%D the basic machinery.
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/syst-lua.lua b/Master/texmf-dist/tex/context/base/syst-lua.lua
new file mode 100644
index 00000000000..6df1b7b4480
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/syst-lua.lua
@@ -0,0 +1,89 @@
+if not modules then modules = { } end modules ['syst-lua'] = {
+ version = 1.001,
+ comment = "companion to syst-lua.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local texsprint, texprint, texwrite, texiowrite_nl = tex.sprint, tex.print, tex.write, texio.write_nl
+local format = string.format
+
+local ctxcatcodes = tex.ctxcatcodes
+
+commands = commands or { } cs = commands -- shorter
+
+function commands.writestatus(a,b,c,...)
+ if c then
+ texiowrite_nl(format("%-16s: %s\n",a,format(b,c,...)))
+ else
+ texiowrite_nl(format("%-16s: %s\n",a,b)) -- b can have %'s
+ end
+end
+
+function commands.doifelse(b)
+ if b then -- faster with if than with expression
+ texsprint(ctxcatcodes,"\\firstoftwoarguments")
+ else
+ texsprint(ctxcatcodes,"\\secondoftwoarguments")
+ end
+end
+function commands.doif(b)
+ if b then
+ texsprint(ctxcatcodes,"\\firstofoneargument")
+ else
+ texsprint(ctxcatcodes,"\\gobbleoneargument")
+ end
+end
+function commands.doifnot(b)
+ if b then
+ texsprint(ctxcatcodes,"\\gobbleoneargument")
+ else
+ texsprint(ctxcatcodes,"\\firstofoneargument")
+ end
+end
+
+commands.testcase = commands.doifelse
+
+function commands.boolcase(b)
+ if b then texwrite(1) else texwrite(0) end
+end
+
+function commands.doifelsespaces(str)
+ return commands.doifelse(str:find("^ +$"))
+end
+
+local s = lpeg.Ct(lpeg.splitat(","))
+local h = { }
+
+function commands.doifcommonelse(a,b)
+ local ha = h[a]
+ local hb = h[b]
+ if not ha then ha = s:match(a) h[a] = ha end
+ if not hb then hb = s:match(b) h[b] = hb end
+ for i=1,#ha do
+ for j=1,#hb do
+ if ha[i] == hb[j] then
+ return commands.testcase(true)
+ end
+ end
+ end
+ return commands.testcase(false)
+end
+
+function commands.doifinsetelse(a,b)
+ local hb = h[b]
+ if not hb then hb = s:match(b) h[b] = hb end
+ for i=1,#hb do
+ if a == hb[i] then
+ return commands.testcase(true)
+ end
+ end
+ return commands.testcase(false)
+end
+
+function commands. def (cs,value) texsprint(ctxcatcodes,format( "\\def\\%s{%s}",cs,value)) end
+function commands.edef (cs,value) texsprint(ctxcatcodes,format("\\edef\\%s{%s}",cs,value)) end
+function commands.gdef (cs,value) texsprint(ctxcatcodes,format("\\gdef\\%s{%s}",cs,value)) end
+function commands.xdef (cs,value) texsprint(ctxcatcodes,format("\\xdef\\%s{%s}",cs,value)) end
+function commands.chardef(cs,value) texsprint(ctxcatcodes,format("\\chardef\\%s=%s\\relax",cs,value)) end
diff --git a/Master/texmf-dist/tex/context/base/syst-lua.mkiv b/Master/texmf-dist/tex/context/base/syst-lua.mkiv
new file mode 100644
index 00000000000..40cd9f75685
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/syst-lua.mkiv
@@ -0,0 +1,37 @@
+%D \module
+%D [ file=syst-lua,
+%D version=2008.01.25,
+%D title=\CONTEXT\ System Macros,
+%D subtitle=Helper macros based on \LUA,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\registerctxluafile{syst-lua}{1.001}
+
+\unprotect
+
+\def\expdoifelse#1#2{\ctxlua{commands.doifelse(\!!bs#1\!!es==\!!bs#2\!!es)}}
+\def\expdoif #1#2{\ctxlua{commands.doif (\!!bs#1\!!es==\!!bs#2\!!es)}}
+\def\expdoifnot #1#2{\ctxlua{commands.doifnot (\!!bs#1\!!es==\!!bs#2\!!es)}}
+
+% \testfeatureonce{100000}{\doifelse{hello world}{here i am}{}} % 0.3
+% \testfeatureonce{100000}{\expandabledoifelse{hello world}{here i am}{}} % 1.5
+
+\def\expdoifcommonelse#1#2{\ctxlua{commands.doifcommonelse("#1","#2")}}
+\def\expdoifinsetelse #1#2{\ctxlua{commands.doifinsetelse("#1","#2")}}
+
+% we define these here, just in case ...
+
+\def\luastringsep{===} % this permits \typefile{self} otherwise nested b/e sep problems
+
+\edef\!!bs{[\luastringsep[}
+\edef\!!es{]\luastringsep]}
+
+\def\writestatus#1#2{\ctxlua{commands.writestatus(\!!bs#1\!!es,\!!bs#2\!!es)}}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/syst-mtx.tex b/Master/texmf-dist/tex/context/base/syst-mtx.tex
deleted file mode 100644
index e2a978671a0..00000000000
--- a/Master/texmf-dist/tex/context/base/syst-mtx.tex
+++ /dev/null
@@ -1,80 +0,0 @@
-%D \module
-%D [ file=syst-mtx,
-%D version=2006.08.11,
-%D title=\CONTEXT\ System Macros,
-%D subtitle=\METATEX\ specifics,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\ifx\directlua\undefined \endinput \fi
-
-\unprotect
-
-\ifnum\contextmarkmode=2
-
- \input enco-utf.tex
-
- % patch needed for turkish
-
- \setcclcuc 201C 201C 201C
- \setcclcuc 201D 201D 201D
-
-\fi
-
-
-%D Since the number of chars exceed 256 now, we can use \type
-%D {\chardef} instead of the more limited \type {\mathchardef}.
-
-\def\newcount {\myalloc@0\count \countdef \@@maxallocation}
-\def\newdimen {\myalloc@1\dimen \dimendef \@@maxallocation}
-\def\newskip {\myalloc@2\skip \skipdef \@@maxallocation}
-\def\newmuskip {\myalloc@3\muskip \muskipdef \@@maxallocation}
-\def\newbox {\myalloc@4\box \chardef \@@maxallocation}
-\def\newtoks {\myalloc@5\toks \toksdef \@@maxallocation}
-\def\newread {\myalloc@6\read \chardef \@@minallocation}
-\def\newwrite {\myalloc@7\write \chardef \@@minallocation}
-\def\newmarks {\myalloc@8\marks \chardef \@@maxallocation}
-\def\newlanguage{\myalloc@9\language\chardef \@@minallocation}
-
-\def\newfam#1{\chardef#1=15 }
-
-\def\topofboxstack{\number\count24 }
-
-\count18=1
-
-\mathchardef\@@minallocation = 16
-\mathchardef\@@medallocation = 256
-\mathchardef\@@maxallocation = 32767
-\chardef \@@insallocation = 128 % was 32, but if we want continuous ranges (mplib) we need to pass 256 soon 32
-
-\def\myalloc@#1#2#3#4#5%
- {\global\advance\count1#1by\@ne
- \ifnum\count1#1>\@@medallocation \else
- \ifnum\count1#1<\numexpr\@@medallocation-\@@insallocation\relax\else
- \global\count1#1=\numexpr\@@medallocation+\@ne\relax % \wait
- \fi
- \fi
- \ifnum\count1#1>#4%
- \global\count1#1=#4%
- \errmessage{No room for (\string#2) \string#5}%
- \fi
- \allocationnumber=\count1#1%
- \global#3#5=\allocationnumber
- \wlog{\string#5=\string#2\the\allocationnumber}}
-
-\def\newinsert#1%
- {\ifnum\insc@unt>\numexpr\@@medallocation-\@@insallocation\relax
- \global\advance\insc@unt by\m@ne
- \allocationnumber=\insc@unt
- \global\chardef#1=\allocationnumber
- \wlog{\string#1=\string\insert\the\allocationnumber}%
- \else
- \errmessage{No room for a new insert \string#1 (\number\insc@unt)}%
- \fi}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/syst-new.tex b/Master/texmf-dist/tex/context/base/syst-new.mkii
index 5d98977ec9b..53ba18ffdf9 100644
--- a/Master/texmf-dist/tex/context/base/syst-new.tex
+++ b/Master/texmf-dist/tex/context/base/syst-new.mkii
@@ -361,26 +361,26 @@
%D \adddimenmacro 10pt 5pt \paperwidth \to \bagger
%D \stoptyping
-\newdimen\dimentoaddto
-
-\def\adddimenregister#1\to#2% will be obsolete once full etex
- {\begingroup
- #2=\zeropoint
- \dimentoaddto\zeropoint
- \def\docommand%
- {\advance#2 \dimentoaddto
- \futurelet\next\dodocommand}%
- \def\dodocommand%
- {\ifx\next\relax
- \expanded{\endgroup#2=\the#2}%
- \else
- \@EA\afterassignment\@EA\docommand\@EA\dimentoaddto
- \fi}%
- \docommand#1\relax}
-
-\def\adddimenmacro#1\to#2%
- {\adddimenregister#1\to\scratchdimen
- \edef#2{\the\scratchdimen}}
+% \newdimen\dimentoaddto
+
+% \def\adddimenregister#1\to#2% will be obsolete once full etex
+% {\begingroup
+% #2=\zeropoint
+% \dimentoaddto\zeropoint
+% \def\docommand%
+% {\advance#2 \dimentoaddto
+% \futurelet\next\dodocommand}%
+% \def\dodocommand%
+% {\ifx\next\relax
+% \expanded{\endgroup#2=\the#2}%
+% \else
+% \@EA\afterassignment\@EA\docommand\@EA\dimentoaddto
+% \fi}%
+% \docommand#1\relax}
+
+% \def\adddimenmacro#1\to#2%
+% {\adddimenregister#1\to\scratchdimen
+% \edef#2{\the\scratchdimen}}
%D \macros
%D {freezedimenmacro}
@@ -391,8 +391,11 @@
%D \freezedimenmacro\leftmargindistance
%D \stoptyping
+% \def\freezedimenmacro#1%
+% {\scratchdimen#1\edef#1{\the\scratchdimen}}
+
\def\freezedimenmacro#1%
- {\scratchdimen#1\edef#1{\the\scratchdimen}}
+ {\edef#1{\the\dimexpr#1}}
%D The next one is slower:
%D
@@ -558,26 +561,26 @@
% for Simon ; watch how we make them fully expandable (i.e.
% no \type {\relax}es) popping up
-\def\@@dothenumber#1\relax#2\end{#1}
+\def\@do@the@number@#1\relax#2\end{#1}
-\def\@@thenumber#1{\@EA\@@dothenumber\number#1\relax\end}
+\def\@the@number@#1{\@EA\@do@the@number@\number#1\relax\end}
\def\doifnum#1#2%
- {\ifnum#1=\@@thenumber{#2} % space needed
+ {\ifnum#1=\@the@number@{#2} % space needed
\expandafter\firstofoneargument
\else
\expandafter\gobbleoneargument
\fi}
\def\doifnotnum#1#2%
- {\ifnum#1=\@@thenumber{#2} % space needed
+ {\ifnum#1=\@the@number@{#2} % space needed
\expandafter\gobbleoneargument
\else
\expandafter\firstofoneargument
\fi}
\def\doifelsenum#1#2%
- {\ifnum#1=\@@thenumber{#2} % space needed
+ {\ifnum#1=\@the@number@{#2} % space needed
\expandafter\firstoftwoarguments
\else
\expandafter\secondoftwoarguments
@@ -811,25 +814,6 @@
\def\ignoreimplicitspaces
{\doifnextcharelse\relax\relax\relax}
-%D \macros
-%D {newconstant}
-
-\beginETEX
-
-\def\newconstant#1%
- {\def\donewconstant{\xdef#1{\numexpr\the\scratchcounter\relax}}%
- \afterassignment\donewconstant\scratchcounter}
-
-\endETEX
-
-\beginTEX
-
-\def\newconstant#1%
- {\def\donewconstant{\xdef#1{\the\scratchcounter\space}}
- \afterassignment\donewconstant\scratchcounter}
-
-\endTEX
-
% new
%
% \startnointerference
@@ -844,7 +828,7 @@
\def\stopnointerference
{\egroup
- \setbox\nointerferencebox\box\voidb@x}
+ \setbox\nointerferencebox\emptybox}
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/syst-omg.tex b/Master/texmf-dist/tex/context/base/syst-omg.tex
deleted file mode 100644
index 01f140dac9f..00000000000
--- a/Master/texmf-dist/tex/context/base/syst-omg.tex
+++ /dev/null
@@ -1,79 +0,0 @@
-%D \module
-%D [ file=syst-omg,
-%D version=2000.09.09,
-%D title=\CONTEXT\ System Macros,
-%D subtitle=A couple of Omega goodies,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This module will become obsolete as soon as Omega
-%D supports \ETEX\ functionality.
-
-\ifx\OmegaVersion\undefined \endinput \fi
-
-\unprotect
-
-\def\newcount {\myalloc@0\count \countdef \@@maxallocation}
-\def\newdimen {\myalloc@1\dimen \dimendef \@@maxallocation}
-\def\newskip {\myalloc@2\skip \skipdef \@@maxallocation}
-\def\newmuskip {\myalloc@3\muskip \muskipdef \@@maxallocation}
-\def\newbox {\myalloc@4\box \mathchardef\@@maxallocation}
-\def\newtoks {\myalloc@5\toks \toksdef \@@maxallocation}
-\def\newread {\myalloc@6\read \chardef \@@minallocation}
-\def\newwrite {\myalloc@7\write \chardef \@@minallocation}
-\def\newmarks {\myalloc@8\marks \mathchardef\@@maxallocation}
-\def\newlanguage{\myalloc@9\language\chardef \@@minallocation}
-
-\def\newfam#1{\chardef#1=15 }
-
-\def\topofboxstack{\number\count24 }
-
-\count18=1
-
-\mathchardef\@@minallocation = 16
-\mathchardef\@@medallocation = 256
-\mathchardef\@@maxallocation = 32767
-\chardef \@@insallocation = 32
-
-\def\myalloc@#1#2#3#4#5%
- {\global\advance\count1#1by\@ne
- \ifnum\count1#1>\@@medallocation \else
- \ifnum\count1#1<\numexpr\@@medallocation-\@@insallocation\relax\else
- \global\count1#1=\numexpr\@@medallocation+\@ne\relax % \wait
- \fi
- \fi
- \ifnum\count1#1>#4%
- \global\count1#1=#4%
- \errmessage{No room for (\string#2) \string#5}%
- \fi
- \allocationnumber=\count1#1%
- \global#3#5=\allocationnumber
- \wlog{\string#5=\string#2\the\allocationnumber}}
-
-\def\newinsert#1%
- {\ifnum\insc@unt>\numexpr\@@medallocation-\@@insallocation\relax
- \global\advance\insc@unt by\m@ne
- \allocationnumber=\insc@unt
- \global\chardef#1=\allocationnumber
- \wlog{\string#1=\string\insert\the\allocationnumber}%
- \else
- \errmessage{No room for a new insert \string#1 (\number\insc@unt)}%
- \fi}
-
-%D We need to catch a (rather crappy) automatic OMEGA
-%D mechanism. Unfortunately loading of the SGML vectors
-%D happens automatically without control over the regime
-%D under which it takes place.
-
-\ifx\SGMLFontEntity\undefined \else
-
- \errmessage{This version of Omega is way to buggy (+ \string\SGMLFontEntity\space mess)!}
-
-\fi
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/syst-pdt.tex b/Master/texmf-dist/tex/context/base/syst-pdt.tex
deleted file mode 100644
index c8f2555f34e..00000000000
--- a/Master/texmf-dist/tex/context/base/syst-pdt.tex
+++ /dev/null
@@ -1,50 +0,0 @@
-%D \module
-%D [ file=syst-pdt,
-%D version=2006.08.11,
-%D title=\CONTEXT\ System Macros,
-%D subtitle=\PDFTEX\ specifics,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\ifx\pdftexversion\undefined \endinput \fi
-
-\unprotect
-
-% new after 1.10, watch the change in prefix
-
-\bindprimitive quitvmode ptexquitvmode
-\bindprimitive noligatures ptexnoligatures
-\bindprimitive setrandomseed ptexsetrandomseed
-\bindprimitive uniformdeviate ptexuniformdeviate
-
-\bindprimitive quitvmode pdfquitvmode
-\bindprimitive noligatures pdfnoligatures
-\bindprimitive setrandomseed pdfsetrandomseed
-\bindprimitive uniformdeviate pdfuniformdeviate
-
-\bindprimitive resettimer pdfresettimer
-\bindprimitive elapsedtime pdfelapsedtime
-
-% new per 1.40
-
-\bindprimitive ifprimitive ifpdfprimitive
-\bindprimitive primitive pdfprimitive
-\bindprimitive ifabsdim ifpdfabsdim
-\bindprimitive ifabsnum ifpdfabsnum
-
-\ifx\pdfobjcompresslevel\undefined \newcount\pdfobjcompresslevel \else \pdfobjcompresslevel=3 \fi
-\ifx\pdfgentounicode \undefined \newcount\pdfgentounicode \else \pdfgentounicode =1 \fi
-
-\def\nopdfcompression % for myself
- {\pdfcompresslevel \zerocount
- \pdfobjcompresslevel\zerocount}
-
-\let\normalquitvmode \quitvmode
-\let\normalnoligatures\noligatures
-
-\protect
diff --git a/Master/texmf-dist/tex/context/base/syst-pln.tex b/Master/texmf-dist/tex/context/base/syst-pln.tex
index 9582c650890..f2b6129ff99 100644
--- a/Master/texmf-dist/tex/context/base/syst-pln.tex
+++ b/Master/texmf-dist/tex/context/base/syst-pln.tex
@@ -11,259 +11,10 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-%D We used to load plain \TEX\ in a special way, but redefining
-%D a couple of primitives so that for instance font loading was
-%D ignored. For those interested, this loader is found in
-%D \type {syst-tex.tex}.
-
-%D This is a stripped down version of plain \TEX. We need this
-%D module to get started. Whole sections are missing here,
-%D like font loading and math. Thise are taken care of in
-%D dedicated modules. A few definitions are added (and
-%D marked as such).
-
-%D Characters can have special states, that can be triggered
-%D by setting their category coded. Some are preset, others
-%D are to be set as soon as possible, otherwise we cannot
-%D define any useful macros.
-
-%catcode`\^^@ = 9 % ascii null is ignored
-%catcode`\\ = 0 % backslash is TeX escape character
-
-\catcode`\{ = 1 % left brace is begin-group character
-\catcode`\} = 2 % right brace is end-group character
-\catcode`\$ = 3 % dollar sign is math shift
-\catcode`\& = 4 % ampersand is alignment tab
-\catcode`\# = 6 % hash mark is macro parameter character
-\catcode`\^ = 7 % circumflex and uparrow are for superscripts
-\catcode`\_ = 8 % underline and downarrow are for subscripts
-\catcode`\^^I = 10 % ascii tab is a blank space
-
-%catcode`\^^M = 5 % ascii return is end-line
-%catcode`\% = 14 % percent sign is comment character
-%catcode`\ = 10 % ascii space is blank space
-%catcode`\^^? = 15 % ascii delete is invalid
-
-\catcode`\~ = 13 % tilde is active
-\catcode`\^^L = 13 % ascii form-feed
-
-%catcode`\A = 11
-%.......
-%catcode`\Z = 11
-
-%catcode`\a = 11
-%.......
-%catcode`\z = 11
-
-\chardef\active = 13
-
-\def ^^L{\par}
-\def\^^M{\ } % control <return> = control <space>
-\def\^^I{\ } % same for <tab>
-
-%D In \CONTEXT, we simply ignore end||of||file tokens:
-
-\catcode`\^^Z=9
-
-%D First we define a simplified version of the \CONTEXT\
-%D protection mechanism.
-
-\def\unprotect{\catcode`@=11 }
-\def\protect {\catcode`@=12 }
-
\unprotect
-%D We do not set up mathcodes here, but postpone that to the
-%D math modules.
-
-\mathcode`\ = "8000 % \space
-\mathcode`\' = "8000 % ^\prime
-\mathcode`\_ = "8000 % \_
-\mathcode`\^^? = "1273 % \smallint
-
-\sfcode`\)=0
-\sfcode`\'=0
-\sfcode`\]=0
-
-\chardef\@ne = 1
-\chardef\tw@ = 2
-\chardef\thr@@ = 3
-\chardef\sixt@@n = 16
-\chardef\@cclv = 255
-
-\mathchardef\@cclvi = 256
-\mathchardef\@m = 1000
-\mathchardef\@M = 10000
-\mathchardef\@MM = 20000
-
-%D Pretty important definitions:
-
-\let\bgroup={
-\let\egroup=}
-
-%D In plain \TEX\ the following explanation about the register
-%D allocation mechanism is given:
-%D
-%D \startnarrower
-%D The following counters are reserved:
-%D
-%D \starttabulate
-%D \NC 0--9 \NC page numbering \NC \NR
-%D \NC 10 \NC count allocation \NC \NR
-%D \NC 11 \NC dimen allocation \NC \NR
-%D \NC 12 \NC skip allocation \NC \NR
-%D \NC 13 \NC muskip allocation \NC \NR
-%D \NC 14 \NC box allocation \NC \NR
-%D \NC 15 \NC toks allocation \NC \NR
-%D \NC 16 \NC read file allocation \NC \NR
-%D \NC 17 \NC write file allocation \NC \NR
-%D \NC 18 \NC math family allocation \NC \NR
-%D \NC 19 \NC language allocation \NC \NR
-%D \NC 20 \NC insert allocation \NC \NR
-%D \NC 21 \NC the most recently allocated number \NC \NR
-%D \NC 22 \NC constant $-1$ \NC \NR
-%D \stoptabulate
-%D
-%D New counters are allocated starting with 23, 24, etc. Other
-%D registers are allocated starting with 10. This leaves 0
-%D through 9 for the user to play with safely, except that
-%D counts 0 to 9 are considered to be the page and subpage
-%D numbers (since they are displayed during output). In this
-%D scheme, \type {\count10} always contains the number of the
-%D highest||numbered counter that has been allocated, \type
-%D {\count14} the highest||numbered box, etc. Inserts are given
-%D numbers 254, 253, etc., since they require a \type
-%D {\count}, \type {\dimen}, \type {\skip}, and \type {\box}
-%D all with the same number; \type {\count20} contains the
-%D lowest-numbered insert that has been allocated. Of course,
-%D \type {\box255} is reserved for \type {\output}; \type
-%D {\count255}, \type {\dimen255}, and \type {\skip255} can be
-%D used freely.
-%D
-%D It is recommended that macro designers always use \type
-%D {\globa}l assignments with respect to registers numbered 1,
-%D 3, 5, 7, 9, and always non||\type {\global} assignments
-%D with respect to registers 0, 2, 4, 6, 8, 255. This will
-%D prevent \quote {save stack buildup} that might otherwise
-%D occur.
-%D \stopnarrower
-%D
-%D We will overload some macros in \ETEX\ mode.
-
-\count10 = 22 % allocates \count registers 23, 24, ...
-\count11 = 9 % allocates \dimen registers 10, 11, ...
-\count12 = 9 % allocates \skip registers 10, 11, ...
-\count13 = 9 % allocates \muskip registers 10, 11, ...
-\count14 = 9 % allocates \box registers 10, 11, ...
-\count15 = 9 % allocates \toks registers 10, 11, ...
-\count16 = -1 % allocates input streams 0, 1, ...
-\count17 = -1 % allocates output streams 0, 1, ...
-\count18 = 3 % allocates math families 4, 5, ...
-\count19 = 0 % allocates \language codes 1, 2, ...
-\count20 =255 % allocates insertion classes 254, 253, ...
-
-\countdef\insc@unt = 20 % the insertion counter
-\countdef\allocationnumber= 21 % the most recent allocation
-\countdef\m@ne = 22 % a handy constant
- \m@ne = -1
-
-\def\wlog{\immediate\write\m@ne} % write on log file (only)
-
-%D \startnarrower
-%D Here are abbreviations for the names of scratch registers
-%D that don't need to be allocated.
-%D \stopnarrower
-
-\countdef \count@ = 255
-\dimendef \dimen@ = 0
-\dimendef \dimen@i = 1 % global only
-\dimendef \dimen@ii = 2
-\skipdef \skip@ = 0
-\toksdef \toks@ = 0
-
-%D \startnarrower
-%D Now, we define \type {\newcount}, \type {\newbox}, etc. so
-%D that you can say \newcount\foo and \type {\foo} will be
-%D defined (with \type {\countdef}) to be the next counter. To
-%D find out which counter \type {\foo} is, you can look at
-%D \type {\allocationnumber}. Since there's no \type {\boxdef}
-%D command, \type {\chardef} is used to define a \type
-%D {\newbox}, \type {\newinsert}, \type {\newfam}, and so on.
-%D \stopnarrower
-
-\def\newcount {\alloc@0\count \countdef \insc@unt}
-\def\newdimen {\alloc@1\dimen \dimendef \insc@unt}
-\def\newskip {\alloc@2\skip \skipdef \insc@unt}
-\def\newmuskip {\alloc@3\muskip \muskipdef\@cclvi }
-\def\newbox {\alloc@4\box \chardef \insc@unt}
-\def\newtoks {\alloc@5\toks \toksdef \@cclvi }
-\def\newread {\alloc@6\read \chardef \sixt@@n }
-\def\newwrite {\alloc@7\write \chardef \sixt@@n }
-\def\newfam {\alloc@8\fam \chardef \sixt@@n }
-\def\newlanguage{\alloc@9\language\chardef \@cclvi }
-
-\def\newhelp#1#2{\newtoks#1#1\expandafter{\csname#2\endcsname}}
-
-\def\alloc@#1#2#3#4#5%
- {\global\advance\count1#1by\@ne
- \ch@ck#1#4#2% make sure there's still room
- \allocationnumber=\count1#1%
- \global#3#5=\allocationnumber
- \wlog{\string#5=\string#2\the\allocationnumber}}
-
-\def\newinsert#1%
- {\global\advance\insc@unt by\m@ne
- \ch@ck0\insc@unt\count
- \ch@ck1\insc@unt\dimen
- \ch@ck2\insc@unt\skip
- \ch@ck4\insc@unt\box
- \allocationnumber=\insc@unt
- \global\chardef#1=\allocationnumber
- \wlog{\string#1=\string\insert\the\allocationnumber}}
-
-\def\ch@ck#1#2#3%
- {\ifnum\count1#1<#2\else
- \errmessage{No room for a new #3}
- \fi}
-
-\newdimen\maxdimen \maxdimen = 16383.99999pt
-\newskip \hideskip \hideskip = -1000pt plus 1fill
-\newskip \centering \centering = 0pt plus 1000pt minus 1000pt
-\newdimen\p@ \p@ = 1pt
-\newdimen\z@ \z@ = 0pt
-\newskip \z@skip \z@skip = 0pt plus 0pt minus 0pt
-\newbox \voidb@x % permanently void box register
-
-%D We define \type {\newif} a la plain \TEX, but will
-%D redefine it later. As Knuth says:
-%D
-%D \startnarrower
-%D And here's a different sort of allocation: for example,
-%D
-%D \starttyping
-%D \newif\iffoo
-%D \stoptyping
-%D
-%D creates \type {\footrue}, \type {\foofalse} to go
-%D with \type {\iffoo}.
-%D \stopnarrower
-
-\def\newif#1%
- {\count@\escapechar
- \escapechar\m@ne
- \expandafter\expandafter\expandafter\def\@if #1{true}{\let#1\iftrue }%
- \expandafter\expandafter\expandafter\def\@if#1{false}{\let#1\iffalse}%
- \@if#1{false}% the condition starts out false
- \escapechar\count@}
-
-\def\@if#1#2%
- {\csname\expandafter\if@\string#1#2\endcsname}
-
-\bgroup % `if' is required
-
- \uccode`1=`i \uccode`2=`f \uppercase{\gdef\if@12{}}
-
-\egroup
+%D This module set a couple of variables to the plain \TEX\
+%D values. Later they might be overloaded.
%D Build||in numeric variables.
@@ -297,7 +48,7 @@
%mag = 1000
%maxdeadcycles = 25
%month = 0
-\newlinechar = -1
+%newlinechar = -1 % commented i.e. no plain value
%outputpenalty = 0
%pausing = 0
%postdisplaypenalty = 0
@@ -323,14 +74,6 @@
\widowpenalty = 150
%year = 0
-%D Extra numeric variables.
-
-\newcount \interdisplaylinepenalty
-\newcount \interfootnotelinepenalty
-
-\interdisplaylinepenalty = 100
-\interfootnotelinepenalty = 100
-
%D Build in dimension variables.
\abovedisplayshortskip = 0pt plus 3pt
@@ -372,251 +115,4 @@
\vsize = 8.9in
%xspaceskip = 0pt
-%D Extra dimension parameters.
-
-\newskip \bigskipamount \bigskipamount = 12pt plus 4pt minus 4pt
-\newskip \medskipamount \medskipamount = 6pt plus 2pt minus 2pt
-\newskip \smallskipamount \smallskipamount = 3pt plus 1pt minus 1pt
-
-\newskip \normalbaselineskip \normalbaselineskip = 12pt
-\newskip \normallineskip \normallineskip = 1pt
-\newdimen \normallineskiplimit \normallineskiplimit = 0pt
-
-\newdimen \jot \jot = 3pt
-
-%D The following shortcuts are rather standard:
-
-\def\lq{`}
-\def\rq{'}
-
-\def\lbrack{[}
-\def\rbrack{]}
-
-\let\endgraf\par
-\let\endline\cr
-
-\def\space{ }
-\def\empty{}
-\def\null {\hbox{}}
-
-%D The next loop construct is about the fastest you can get.
-%D Beware: this macro does not support nested loops. We use
-%D a namespace prefix \type {@@pln}.
-
-\long\def\loop#1\repeat{\long\def\@@plnbody{#1}\@@plniterate}
-
-%D The following makes \type {\loop} \unknown\ \type {\if}
-%D \unknown\ \type {\repeat} skippable (clever trick):
-
-\let\repeat=\fi
-
-%D The original (no \type {@@pln} there):
-%D
-%D \starttyping
-%D \def\@@plniterate{\@@plnbody\let\next\@@plniterate\else\let\next\relax\fi\next}
-%D \stoptyping
-%D
-%D A more efficient alternative:
-%D
-%D \starttyping
-%D \def\@@plniterate{\@@plnbody\expandafter\@@plniterate\else\expandafter\relax\fi}
-%D \stoptyping
-%D
-%D An even more efficient one:
-
-\def\@@plniterate{\@@plnbody\expandafter\@@plniterate\else\fi}
-
-%D Counter 0 is normally used as page counter:
-
-\countdef\pageno=0 \pageno=1 % first page is number 1
-
-%D Beside the raw counter \type {\pageno} the \type {\folio}
-%D macro provides the value.
-
-\def\folio{\the\pageno}
-
-%D Indeed, we don't define a real output routine yet:
-
-\output{\box255}
-
-%D We don't support \type {\magnification} and just consume
-%D the value.
-
-\let\magnification\count@
-
-%D The following macro will be overloaded in \ETEX.
-
-\def\tracingall
- {\tracingonline \@ne
- \tracingcommands \tw@
- \tracingstats \tw@
- \tracingpages \@ne
- \tracingoutput \@ne
- \tracinglostchars \@ne
- \tracingmacros \tw@
- \tracingparagraphs\@ne
- \tracingrestores \@ne
- \showboxbreadth \maxdimen
- \showboxdepth \maxdimen
- \errorstopmode}
-
-%D Some users expect this macro to be present. This one
-%D sends the hyphenated word to the terminal.
-
-\def\showhyphens#1%
- {\setbox0\vbox
- {\parfillskip\z@skip
- \hsize\maxdimen\tenrm
- \pretolerance\m@ne
- \tolerance\m@ne
- \hbadness0
- \showboxdepth0
- \ #1}}
-
-%D The following bunch of macros deals with basic alignment.
-%D We just include them here so that they can be used if
-%D needed. Normally, \CONTEXT\ users will fall back on one of
-%D the three table environments.
-
-\newcount \mscount
-\newif \ifus@
-\newif \if@cr
-\newbox \tabs
-\newbox \tabsyet
-\newbox \tabsdone
-
-\def\hidewidth % for alignment entries that can stick out
- {\hskip\hideskip}
-
-\def\ialign % initialized \halign
- {\everycr{}
- \tabskip\z@skip
- \halign}
-
-\def\multispan#1%
- {\omit
- \mscount#1\relax
- \loop
- \ifnum\mscount>\@ne \sp@n
- \repeat}
-
-\def\sp@n
- {\span
- \omit
- \advance\mscount\m@ne}
-
-% begin of tab code
-
-\def\cleartabs
- {\global\setbox\tabsyet\null
- \setbox\tabs\null}
-
-\def\settabs
- {\setbox\tabs\null
- \futurelet\next\sett@b}
-
-\def\sett@b
- {\ifx\next\+%
- \def\nxt{\afterassignment\s@tt@b\let\nxt}%
- \else
- \let\nxt\s@tcols
- \fi
- \let\next\relax
- \nxt}
-
-\def\s@tt@b
- {\let\nxt\relax
- \us@false\m@ketabbox}
-
-\def\tabalign
- {\us@true\m@ketabbox}
-
-\let\+\tabalign % no outer here
-
-\def\s@tcols#1\columns
- {\count@#1%
- \dimen@\hsize
- \loop
- \ifnum\count@>\z@ \@nother
- \repeat}
-
-\def\@nother
- {\dimen@ii\dimen@
- \divide\dimen@ii\count@
- \setbox\tabs\hbox{\hbox to\dimen@ii{}\unhbox\tabs}%
- \advance\dimen@-\dimen@ii
- \advance\count@\m@ne}
-
-\def\m@ketabbox
- {\begingroup
- \global\setbox\tabsyet\copy\tabs
- \global\setbox\tabsdone\null
- \def\cr
- {\@crtrue\crcr\egroup\egroup
- \ifus@\unvbox\z@\lastbox\fi\endgroup
- \setbox\tabs\hbox{\unhbox\tabsyet\unhbox\tabsdone}}%
- \setbox\z@\vbox\bgroup\@crfalse
- \ialign\bgroup&\t@bbox##\t@bb@x\crcr}
-
-\def\t@bbox
- {\setbox\z@\hbox\bgroup}
-
-\def\t@bb@x
- {\if@cr
- \egroup % now \box\z@ holds the column
- \else
- \hss\egroup
- \global\setbox\tabsyet\hbox
- {\unhbox\tabsyet\global\setbox\@ne\lastbox}% now \box\@ne holds its size
- \ifvoid\@ne
- \global\setbox\@ne\hbox to\wd\z@{}%
- \else
- \setbox\z@\hbox to\wd\@ne{\unhbox\z@}%
- \fi
- \global\setbox\tabsdone\hbox{\box\@ne\unhbox\tabsdone}%
- \fi
- \box\z@}
-
-% end to tab code
-
-%D Useful, used too, but sometimes dangerous:
-
-\def\leavevmode{\unhbox\voidb@x}
-
-%D We will overload these, but may need them beforehand:
-
-\bgroup
- \catcode`\^^M=\active%
- \gdef\obeylines{\catcode`\^^M\active \let^^M\par}%
- \global\let^^M\par%
-\egroup
-
-\def\obeyspaces{\catcode`\ \active}
-
-{\obeyspaces\global\let =\space}
-
-%D Useful and expected:
-
-\def~{\penalty\@M \ } % tie
-
-\chardef\%=`\%
-\chardef\&=`\&
-\chardef\#=`\#
-\chardef\$=`\$
-
-%def\_{\leavevmode \kern.06em \vbox{\hrule width.3em}}
-\def\_{\dontleavehmode \kern.06em \vbox{\hrule width.3em}}
-
-%D Replaced later on:
-
-\def\line {\hbox to\hsize}
-\def\leftline #1{\line{#1\hss}}
-\def\rightline #1{\line{\hss#1}}
-\def\centerline#1{\line{\hss#1\hss}}
-
-%D Let's end in the plain way:
-
-\ifx\fmtname \undefined \def\fmtname {ConTeXt Minimized Plain TeX} \fi
-\ifx\fmtversion\undefined \def\fmtversion{3.1415926} \fi
-
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/syst-prm.tex b/Master/texmf-dist/tex/context/base/syst-prm.tex
deleted file mode 100644
index dc259dff700..00000000000
--- a/Master/texmf-dist/tex/context/base/syst-prm.tex
+++ /dev/null
@@ -1,227 +0,0 @@
-%D \module
-%D [ file=syst-prm,
-%D version=1999.03.17,
-%D title=\CONTEXT\ System Macros,
-%D subtitle=Primitive Behavior,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%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 Saved primitives are preceded by \type {\normal}, as in:
-
-\let\normalfmtversion\fmtversion
-
-%D When applicable, we also load the \ETEX\ source and
-%D definition files.
-
-\bgroup \obeylines
-
-\ifx\eTeXversion\undefined
-
- \long\gdef\beginETEX#1\endETEX%
- {}
-
- \gdef\beginTEX%
- {\bgroup\obeylines\dobeginTEX}
-
- \gdef\dobeginTEX#1
- {\egroup}
-
- \global\let\endTEX\relax
-
-\else
-
- \long\gdef\beginTEX#1\endTEX%
- {}
-
- \gdef\beginETEX%
- {\bgroup\obeylines\dobeginETEX}
-
-% \gdef\dobeginETEX#1
-% {\egroup\immediate\write16%
-% {system (E-TEX) : [line \the\inputlineno] \detokenize{#1}}}
-
- \gdef\dobeginETEX#1
- {\egroup}
-
- \global\let\endETEX\relax
-
-\fi
-
-\ifx\OmegaVersion\undefined
-
- \long\gdef\beginOMEGA#1\endOMEGA%
- {}
-
-\else
-
- \gdef\beginOMEGA%
- {\bgroup\obeylines\dobeginOMEGA}
-
- \ifx\detokenize\undefined
-
- \gdef\dobeginOMEGA#1
- {\egroup\immediate\write16%
- {system (OMEGA) : [line \the\inputlineno] \string#1 }} % we assume an argument
-
- \else
-
- \gdef\dobeginOMEGA#1
- {\egroup\immediate\write16%
- {system (OMEGA) : [line \the\inputlineno] \detokenize{#1}}} % we assume aleph
-
- \fi
-
- \global\let\endOMEGA\relax
-
-\fi
-
-\ifx\XeTeXversion\undefined
-
- \long\gdef\beginXETEX#1\endXETEX%
- {}
-
-\else
-
- \gdef\beginXETEX%
- {\bgroup\obeylines\dobeginXETEX}
-
- \gdef\dobeginXETEX#1
- {\egroup\immediate\write16%
- {system (XETEX) : [line \the\inputlineno] \detokenize{#1}}}
-
- \global\let\endXETEX\relax
-
-\fi
-
-\ifx\directlua\undefined
-
- \long\gdef\beginLUATEX#1\endLUATEX%
- {}
-
-\else
-
- \gdef\beginLUATEX%
- {\bgroup\obeylines\dobeginLUATEX}
-
- \gdef\dobeginLUATEX#1
- {\egroup\immediate\write16%
- {system (LUATEX) : [line \the\inputlineno] \detokenize{#1}}}
-
- \global\let\endLUATEX\relax
-
-\fi
-
-% traditional tex's vs de utf tex's
-
-\ifx\XeTeXversion\undefined \ifx\directlua\undefined
-
- \gdef\beginOLDTEX%
- {\bgroup\obeylines\dobeginOLDTEX}
-
- \gdef\dobeginOLDTEX#1
- {\egroup\immediate\write16%
- {system (OLDTEX) : [line \the\inputlineno] \detokenize{#1}}}
-
- \global\let\endOLDTEX\relax
-
- \long\gdef\beginNEWTEX#1\endNEWTEX%
- {}
-
-\fi \fi \ifx\beginOLDTEX\undefined
-
- \long\gdef\beginOLDTEX#1\endOLDTEX%
- {}
-
- \gdef\beginNEWTEX%
- {\bgroup\obeylines\dobeginNEWTEX}
-
- \gdef\dobeginNEWTEX#1
- {\egroup\immediate\write16%
- {system (NEWTEX) : [line \the\inputlineno] \detokenize{#1}}}
-
- \global\let\endNEWTEX\relax
-
-\fi
-
-\egroup
-
-%D Let's get rid of this one:
-
-\def\wlog#1{}
-
-%D Just for tracing purposes we set:
-
-\tracingstats=1
-
-%D We don't like outer commands, and we always want access
-%D to the original \type {\input} primitive.
-
-\let\normalouter = \outer \let\outer\relax
-\let\normalinput = \input
-
-%D We need to make sure that we start up in \DVI\ mode, so,
-%D after testing for running \PDFTEX, we default to \DVI.
-
-\ifx\pdftexversion\undefined \newcount\pdfoutput \fi \pdfoutput=0
-
-%D To circumvent dependencies, we can postpone certain
-%D initializations to dumping time, by appending them to the
-%D \type {\everydump} token register.
-
-\newtoks \everydump
-
-\let\normaldump \dump
-
-\def\dump{\the\everydump\normaldump}
-
-%D \macros
-%D {bindprimitive}
-
-\beginTEX
-
-\def\bindprimitive#1 #2 % new old
- {\expandafter\ifx\csname#1\endcsname\relax \expandafter\ifx\csname#2\endcsname\relax \else
- \expandafter\let\csname#1\expandafter\endcsname\csname#2\endcsname
- \fi\fi}
-
-\endTEX
-
-\beginETEX
-
-\def\bindprimitive#1 #2 % new old
- {\ifcsname#1\endcsname \else\ifcsname#2\endcsname
- \expandafter\let\csname#1\expandafter\endcsname\csname#2\endcsname
- \fi\fi}
-
-\endETEX
-
-% %D Ligature prevention (for instance, ec encoding has ligatures
-% %D in mono spaced fonts). Alas, we need to do some testing in order
-% %D to get to the ptex'd one.
-
-% \def\checkpdftexprimitive #1
-% {\expandafter\ifx\csname #1\endcsname\relax
-% \expandafter\ifx\csname pdf#1\endcsname\relax
-% \expandafter\ifx\csname ptex#1\endcsname\relax
-% \expandafter\let\csname normal#1\endcsname \undefined \else
-% \expandafter\let\csname normal#1\expandafter\endcsname\csname ptex#1\endcsname \fi \else
-% \expandafter\let\csname normal#1\expandafter\endcsname\csname pdf#1\endcsname \fi \else
-% \expandafter\let\csname normal#1\expandafter\endcsname\csname #1\endcsname \fi}
-
-% \checkpdftexprimitive quitvmode
-% \checkpdftexprimitive noligatures
-% \checkpdftexprimitive setrandomseed
-% \checkpdftexprimitive uniformdeviate
-
-%D We preserve \TEX's ending:
-
-\ifx\normalend\undefined \let\normalend\end \fi
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/syst-rtp.tex b/Master/texmf-dist/tex/context/base/syst-rtp.tex
deleted file mode 100644
index 958265f13ff..00000000000
--- a/Master/texmf-dist/tex/context/base/syst-rtp.tex
+++ /dev/null
@@ -1,22 +0,0 @@
-%D \module
-%D [ file=syst-rtp, % copied from core-job
-%D version=1997.03.31,
-%D title=\CONTEXT\ Core Macros,
-%D subtitle=Run Time Processes,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{Context Core Macros / Run Time Processes}
-
-\unprotect
-
-\let\executesystemcommand\gobbleoneargument
-
-\loadmarkfile{syst-rtp}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/syst-str.mkii b/Master/texmf-dist/tex/context/base/syst-str.mkii
index e50df0103bb..3e6d043e393 100644
--- a/Master/texmf-dist/tex/context/base/syst-str.mkii
+++ b/Master/texmf-dist/tex/context/base/syst-str.mkii
@@ -64,7 +64,12 @@
\the\withuppercharacters
\relax}
-%D The string macros:
+%D I got tired of making dedicated clean up macros using the
+%D same mechanism again and again, so now we have:
+%D
+%D \starttyping
+%D \def\xxxx{abc.d} \replacecharacters\xxxx{a.}{-} \xxxx
+%D \stoptyping
\def\replacecharacters#1#2#3% macro characters replacement
{\bgroup
diff --git a/Master/texmf-dist/tex/context/base/syst-str.mkiv b/Master/texmf-dist/tex/context/base/syst-str.mkiv
index 6d0f0565e9b..57d76dc0375 100644
--- a/Master/texmf-dist/tex/context/base/syst-str.mkiv
+++ b/Master/texmf-dist/tex/context/base/syst-str.mkiv
@@ -13,15 +13,24 @@
\unprotect
+% nb: these macros might go away !
+%
% todo: escape special chars in expr (\luaescapeexpression)
+%D I got tired of making dedicated clean up macros using the
+%D same mechanism again and again, so now we have:
+%D
+%D \starttyping
+%D \def\xxxx{abc.d} \replacecharacters\xxxx{a.}{-} \xxxx
+%D \stoptyping
+
\def\replacecharacters#1#2#3% macro characters replacement
- {\dodoglobal\edef#1{\ctxlua{tex.sprint((string.gsub("#1",string.esc(#2),"#3")))}}}
+ {\dodoglobal\edef#1{\ctxlua{tex.sprint((string.gsub(\!!bs#1\!!es,\!!bs#2\!!es,"#3")))}}}
\def\separatestring#1\to#2%
- {\dodoglobal\def#2{\ctxlua{tex.sprint(string.gsub(("#1","\letterpercent s+",","))})}}
+ {\dodoglobal\def#2{\ctxlua{tex.sprint((string.gsub(\!!bs#1\!!es,"\letterpercent s+",",")))}}}
\def\unspacefilename#1\to#2%
- {\dodoglobal\def#2{\ctxlua{tex.sprint(string.gsub(("#1","\letterpercent s+","-")))}}}
+ {\dodoglobal\def#2{\ctxlua{tex.sprint((string.gsub(\!!bs#1\!!es,"\letterpercent s+","-")))}}}
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/syst-str.tex b/Master/texmf-dist/tex/context/base/syst-str.tex
deleted file mode 100644
index 15db004a3ab..00000000000
--- a/Master/texmf-dist/tex/context/base/syst-str.tex
+++ /dev/null
@@ -1,40 +0,0 @@
-%D \module
-%D [ file=syst-str,
-%D version=2006.09.18,
-%D title=\CONTEXT\ System Macros,
-%D subtitle=String Processing,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{Context System Macro's / Strings}
-
-%D These macros were defined elsewhere but for practical reasons
-%D we moved them here. This way we can more easily provide Mk IV
-%D support.
-
-\unprotect
-
-%D I got tired of making dedicated clean up macros using the
-%D same mechanism again and again, so now we have:
-%D
-%D \starttyping
-%D \def\xxxx{abc.d} \replacecharacters\xxxx{a.}{-} \xxxx
-%D \stoptyping
-
-\let\replacecharacters\gobblethreearguments % macro characters replacement
-
-%D Hm?
-
-\def\separatestring #1\to#2{}
-\def\unspacefilename#1\to#2{}
-
-%D Plugins:
-
-\loadmarkfile{syst-str}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/syst-tex.tex b/Master/texmf-dist/tex/context/base/syst-tex.mkii
index 44549dab48a..a8aea268383 100644
--- a/Master/texmf-dist/tex/context/base/syst-tex.tex
+++ b/Master/texmf-dist/tex/context/base/syst-tex.mkii
@@ -213,8 +213,9 @@
%
% \endETEX
%
-% \let\normalprotected = \protected
-% \let\normalunexpanded = \unexpanded
+% \ifx\normalprotected \undefined \let\normalprotected \protected \fi
+% \ifx\normalunexpanded\undefined \let\normalunexpanded\unexpanded \fi
+% \ifx\normalexpanded \undefined \let\normalexpanded \expanded \fi
\beginETEX \savinghyphcodes
diff --git a/Master/texmf-dist/tex/context/base/syst-var.tex b/Master/texmf-dist/tex/context/base/syst-var.tex
deleted file mode 100644
index 8753017b53b..00000000000
--- a/Master/texmf-dist/tex/context/base/syst-var.tex
+++ /dev/null
@@ -1,18 +0,0 @@
-%D \module
-%D [ file=syst-var,
-%D version=2005.07.04, % moved code
-%D title=\CONTEXT\ System Macros,
-%D subtitle=Variables,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{Context System Macro's / Variables}
-
-% will be used some day
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/syst-xtx.tex b/Master/texmf-dist/tex/context/base/syst-xtx.tex
deleted file mode 100644
index a10173117e4..00000000000
--- a/Master/texmf-dist/tex/context/base/syst-xtx.tex
+++ /dev/null
@@ -1,36 +0,0 @@
-%D \module
-%D [ file=syst-xtx,
-%D version=2004.09.11,
-%D title=\CONTEXT\ System Macros,
-%D subtitle=\XETEX\ specifics,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\ifx\XeTeXversion\undefined \endinput \fi
-
-\unprotect
-
-%D For the moment, the only thing needed is to load are the
-%D mappings from lower to uppercase characters.
-
-\input enco-utf.tex
-
-% patch needed for turkish
-
-\setcclcucx 201C 201C 201C
-\setcclcucx 201D 201D 201D
-
-% patch needed for greek
-
-% \setcclcucx 1FFD 1FFD 1FFD
-
-\ifx\XeTeXuseglyphmetrics\undefined \else
- \XeTeXuseglyphmetrics=1
-\fi
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-ltb.tex b/Master/texmf-dist/tex/context/base/tabl-ltb.mkii
index 9153073831b..0ff64047e62 100644
--- a/Master/texmf-dist/tex/context/base/core-ltb.tex
+++ b/Master/texmf-dist/tex/context/base/tabl-ltb.mkii
@@ -1,7 +1,7 @@
%D \module
%D [ file=core-ltb,
%D version=2002.10.31,
-%D title=\CONTEXT\ Core Macros,
+%D title=\CONTEXT\ Table Macros,
%D subtitle=Line Tables,
%D author=Hans Hagen,
%D date=\currentdate,
@@ -16,10 +16,6 @@
% todo: als nx>1, dan in geval van rek tussenruimte berekenen en optellen
% bij breedte, dus: nx nog niet gebruiken in combinatie met rek ! ! ! ! !
-\beginTEX
- \expandafter \endinput
-\endTEX
-
% This module is experimental, undocumented, and currently only set up
% eTeX. It provides a mechanism for typesetting very large tables,
% spanning many pages horizontally and vertically, with repeated
@@ -59,7 +55,7 @@
% - clip on prev run
% - flush real widths
-\writestatus{loading}{Context Core Macros / Line Tables}
+\writestatus{loading}{ConTeXt Table Macros / Line Tables}
\unprotect
@@ -819,6 +815,16 @@
\startlinetablerun \readfile{#1}\donothing\donothing\stoplinetablerun
\egroup}
+% will go away:
+
+\def\processlinetableXMLfile#1%
+ {\bgroup
+ \let\startlinetable\donothing
+ \let\stoplinetable \donothing
+ \startlinetableanalysis\processXMLfile{#1}\stoplinetableanalysis
+ \startlinetablerun \processXMLfile{#1}\stoplinetablerun
+ \egroup}
+
\protect \endinput
\doifnotmode{demo}{\endinput}
diff --git a/Master/texmf-dist/tex/context/base/tabl-ltb.mkiv b/Master/texmf-dist/tex/context/base/tabl-ltb.mkiv
new file mode 100644
index 00000000000..0ff64047e62
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/tabl-ltb.mkiv
@@ -0,0 +1,866 @@
+%D \module
+%D [ file=core-ltb,
+%D version=2002.10.31,
+%D title=\CONTEXT\ Table Macros,
+%D subtitle=Line Tables,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+% testfile: tfmetrics.tex
+
+% todo: als nx>1, dan in geval van rek tussenruimte berekenen en optellen
+% bij breedte, dus: nx nog niet gebruiken in combinatie met rek ! ! ! ! !
+
+% This module is experimental, undocumented, and currently only set up
+% eTeX. It provides a mechanism for typesetting very large tables,
+% spanning many pages horizontally and vertically, with repeated
+% header lines and (entry) columns, tab tracking, color, etc. In does
+% two passes over a table, which is why the table goes into a
+% buffer or file. As said, tables can be real huge.
+
+% \BH \BC .. \EC \BC .. \EC \EH % append
+% \BR \BC .. \EC \BC .. \EC \ER
+%
+% or
+%
+% \NC .. \NC .. \NC \NR (todo: optional last \NC)
+
+% alternative:
+%
+% (1) direct run, save content in macro, but only if needed
+%
+% todo
+%
+% (2) buffered table content
+%
+% \startbuffer
+% \startlinetablehead
+% \stoplinetablehead
+% \startlinetablebody
+% \stoplinetablebody
+% \stopbuffer
+%
+% \processlinetablebuffer[buffer]
+%
+% in buffer : head and body
+%
+% (3) unbuffered run, multipass
+%
+% - run with starting width zero / prev run
+% - clip on prev run
+% - flush real widths
+
+\writestatus{loading}{ConTeXt Table Macros / Line Tables}
+
+\unprotect
+
+\chardef\linetablesplitstate\zerocount
+\chardef\linetableheadstate \zerocount
+
+\edef\??ler{\??le:r:}
+\edef\??lec{\??le:c:}
+\edef\??lew{\??le:w:}
+\edef\??leh{\??le:h:}
+\edef\??led{\??le:d:}
+
+\newif\iflinetablepreroll
+\newif\ifinlinetable
+
+\newcount\linetablecolumn
+\newcount\linetablesubcol
+\newdimen\linetablewidth
+\newdimen\linetableheight
+\newbox \linetablecell
+
+\let\noflinetablecolumns\!!zerocount
+\let\noflinetablerows \!!zerocount
+\let\noflinetablelines \!!zerocount
+\let\noflinetableparts \!!zerocount
+\let\linetablepart \!!plusone
+\let\linetablestep \!!plusone
+\let\linetableline \!!zerocount
+\let\linetablerow \!!zerocount
+\let\linetablerows \!!zerocount
+
+\initializetablebox \zerocount % holds repeater
+
+\chardef\linetablehmode \zerocount
+\chardef\linetablepage \zerocount
+\chardef\linetablerepeat\zerocount
+
+\def\setuplinetable
+ {\dotripleempty\dosetuplinetable}
+
+\def\dosetuplinetable[#1][#2][#3]%
+ {\ifthirdargument
+ \getparameters[\??le:#1:#2][#3]%
+ \else\ifsecondargument
+ \getparameters[\??lec#1][#2]%
+ \else
+ \getparameters[\??le][#1]%
+ \fi\fi}
+
+\setuplinetable
+ [\c!n=\!!maxcard,
+ \c!lines=\!!maxcard,
+ \c!nx=\plusone,
+ \c!nleft=0,
+ \c!repeat=\v!yes, % when \c!nleft>0, repeat on both pages
+ \c!before=,
+ \c!after=,
+ \c!inbetween=\page,
+ \c!distance=\zeropoint,
+ \c!stretch=\v!no,
+ \c!align=\c!right,
+ \c!leftoffset=.25ex,
+ \c!rightoffset=\linetableparameter\c!leftoffset,
+ \c!maxwidth=\zeropoint,
+ \c!width=5em,
+ \c!height=\v!fit, % \v!line = faster
+ \c!background=,
+ \c!backgroundcolor=]
+
+\def\linetableparameter#1%
+ {\csname\??le#1\endcsname}
+
+\def\doifelselinetablecparameter#1%
+ {\ifcsname\??lec\number\linetablecolumn#1\endcsname
+ \expandafter\firstoftwoarguments
+ \else
+ \expandafter\secondoftwoarguments
+ \fi}
+
+\def\linetablecparameter#1%
+ {\csname
+ \ifcsname\??lec\number\linetablecolumn#1\endcsname
+ \??lec\number\linetablecolumn
+ \else
+ \??le
+ \fi
+ #1\endcsname}
+
+\def\linetablerparameter#1% faster, leaner and meaner
+ {\csname
+ \ifnum\linetablerow=\zerocount % geen ifcase
+ \ifcsname\??ler\v!header#1\endcsname
+ \??ler\v!header#1%
+ \else\ifcsname\??ler0#1\endcsname
+ \??ler0#1%
+ \else
+ \s!empty
+ \fi\fi
+ \else
+ \ifcsname\??ler\number\linetablerow#1\endcsname
+ \??ler\number\linetablerow#1%
+ \else\ifcsname\??ler\v!oddeven\linetablerow#1\endcsname
+ \??ler\v!oddeven\linetablerow#1%
+ \else
+ \s!empty
+ \fi\fi
+ \fi
+ \endcsname}
+
+\def\setnoftableslines
+ {\doifelse{\linetableparameter\c!lines}\v!fit
+ {% whitespace already added by vertical strut
+ \ifdim\pagegoal<\maxdimen
+ \scratchdimen\pagegoal
+ \advance\scratchdimen -\pagetotal
+ \else
+ \scratchdimen\textheight
+ \fi
+ \getrawnoflines\scratchdimen
+ \xdef\noflinetablelines{\the\noflines}
+\iflinetablepreroll \else \ifnum\noflinetablelines<\plustwo
+ \page \setnoftableslines
+\fi \fi
+}
+ {\xdef\noflinetablelines{\linetableparameter\c!lines}}}
+
+\def\startlinetablecell
+ {\dosingleempty\dostartlinetablecell}
+
+\def\dostartlinetablecell[#1]%
+ {\global\setbox\linetablecell\hbox\bgroup
+ \iffirstargument
+ \getparameters[\??lec\number\linetablecolumn][#1]%
+ \fi
+ \xdef\linetablestep{\linetablecparameter\c!nx}%
+ \ifcase\linetablestep\or
+ \scratchdimen\linetablecparameter\c!width
+ \scratchskip \linetablecparameter\c!distance
+ \else
+ \scratchdimen \zeropoint
+ \scratchskip \zeropoint
+ \scratchcounter\linetablecolumn
+ \dorecurse\linetablestep
+ {\advance\scratchdimen\linetablecparameter\c!width
+ %\advance\scratchskip \linetablecparameter\c!distance
+ \global\advance \linetablecolumn\plusone
+ \advance\scratchskip \linetablecparameter\c!distance
+ }%
+ \global\linetablecolumn\scratchcounter
+ \fi
+ \chardef\linetablemode
+ \iflinetablepreroll
+ \ifdim\scratchdimen>\zeropoint \zerocount \else \plustwo \fi
+ \else
+ \zerocount
+ \fi
+ \ifcase\linetablemode
+ \ifcase\linetablehmode
+ % nothing
+ \or
+ % fit, keep it simple
+ \or
+ \chardef\linetablemode\plusone % line
+ \else
+ % some already calculated height
+ \fi
+ \fi
+ \setbox\scratchbox\hbox
+ \bgroup
+ \dontcomplain
+ \hskip\linetablecparameter\c!leftoffset\relax
+ % 0 = width, unknown height
+ % 1 = width, fixed height
+ % 2 = no width, auto hsize
+ \ifnum\linetablemode<\plustwo
+ \advance\scratchdimen-\linetablecparameter\c!leftoffset
+ \advance\scratchdimen-\linetablecparameter\c!rightoffset
+ \fi
+ \ifcase\linetablemode
+ \dosetraggedcommand{\linetablecparameter\c!align}%
+ \vtop \ifdim\linetableheight>\zeropoint to\linetableheight \fi \bgroup
+ \hsize\scratchdimen
+ \raggedcommand
+ \else
+ \setalignmentswitch{\linetablecparameter\c!align}%
+ \hbox \ifcase\linetablemode \or to\scratchdimen \fi \bgroup
+ \ifcase\alignmentswitch\hss\or\hss\fi
+ \fi
+ \dostartattributes{\??lec\number\linetablecolumn}\c!style\c!color\empty
+ \begstrut \ignorespaces}
+
+% \def\stoplinetablecell
+% {\unskip \endstrut
+% \dostopattributes
+% \ifcase\linetablemode
+% \endgraf
+% \else
+% \ifcase\alignmentswitch\else\hss\fi
+% \fi
+% \egroup
+% \hskip\linetablecparameter\c!rightoffset
+% \egroup
+% \iflinetablepreroll
+% \box\scratchbox
+% \else
+% \doif{\linetablecparameter\c!background}\v!color
+% {\backgroundline[\linetablecparameter\c!backgroundcolor]}%
+% {\box\scratchbox}%
+% \fi
+% \egroup}
+
+\newconditional\linetableautoheight \settrue\linetableautoheight
+
+\def\stoplinetablecell
+ {\unskip \endstrut
+ \dostopattributes
+ \ifcase\linetablemode
+ \endgraf
+ \else
+ \ifcase\alignmentswitch\else\hss\fi
+ \fi
+ \egroup
+ \hskip\linetablecparameter\c!rightoffset
+ \egroup
+ \iflinetablepreroll
+ \box\scratchbox
+ \else
+ \doifelse{\linetablecparameter\c!background}\v!color
+ {\ifconditional\linetableautoheight
+ \hbox{\blackrule
+ [ \c!color=\linetablecparameter\c!backgroundcolor,
+ \c!height=\linetablerparameter{x\c!height},
+ \c!depth=\linetablerparameter{x\c!depth},
+ \c!width=\wd\scratchbox]%
+ \hskip-\wd\scratchbox\box\scratchbox}%
+ \else
+ \backgroundline[\linetablecparameter\c!backgroundcolor]{\box\scratchbox}%
+ \fi}%
+ {\box\scratchbox}%
+ \fi
+ \egroup}
+
+% \def\stoplinetablecell
+% {\unskip \endstrut
+% \dostopattributes
+% \ifcase\linetablemode
+% \endgraf
+% \else
+% \ifcase\alignmentswitch\else\hss\fi
+% \fi
+% \egroup
+% \hskip\linetablecparameter\c!rightoffset
+% \egroup
+% \iflinetablepreroll
+% \box\scratchbox
+% \else
+% \doifelse{\linetablecparameter\c!background}\v!color
+% {\ifconditional\linetableautoheight
+% % \hbox{\blackrule
+% % [ \c!color=\linetablecparameter\c!backgroundcolor,
+% % \c!height=\linetablerparameter{x\c!height},
+% % \c!depth=\linetablerparameter{x\c!depth},
+% % \c!width=\wd\scratchbox]%
+% % \hskip-\wd\scratchbox\box\scratchbox}%
+% \dp\scratchbox\linetablerparameter{x\c!depth}%
+% \ht\scratchbox\linetablerparameter{x\c!height}%
+% \framed
+% [\c!offset=\v!overlay,
+% \c!frameoffset=.5\linewidth,
+% \c!leftframe=\v!off,\c!rightframe=\v!off,
+% \c!background=\v!color,
+% \c!backgroundcolor=\linetablecparameter\c!backgroundcolor%
+% ]{\box\scratchbox}%
+% \else
+% \backgroundline[\linetablecparameter\c!backgroundcolor]{\box\scratchbox}%
+% \fi}%
+% {\box\scratchbox}%
+% \fi
+% \egroup}
+
+\def\savelinetablepart
+ {\global\setbox\tablebox\linetablepart
+ \ifnum\linetablepart=\zerocount
+ \box\scratchbox % just storing
+ \else
+ \vbox
+ {\ifvoid\tablebox\linetablepart\else\unvbox\tablebox\linetablepart\fi
+ \doif{\linetablerparameter\c!background}\v!color
+ {\backgroundline[\linetablerparameter\c!backgroundcolor]}%
+ {\box\scratchbox}% is also arg to \backgroundline
+ \endgraf
+ \linetablerparameter\c!after}%
+ \fi}
+
+\def\flushlinetableparts
+ {\doglobal\increment\linetableline
+ \ifnum\linetableline<\noflinetablelines
+ % keep collecting
+ \else
+ \iflinetablepreroll
+ % forget about them
+ \else
+ \dorecurse\noflinetableparts
+ {\let\linetablepart\recurselevel
+ \dp\tablebox\linetablepart\strutdepth
+ % noindent en endgraf needed else whitespace mess-up!
+ \whitespace % here not after verticalstrut
+ \ifdim\topskipgap=\zeropoint\else
+ \verticalstrut\nobreak\kern-\struttotal\kern-\parskip\nobreak\nointerlineskip % fix topskip
+ \fi
+ \noindent\strut\hbox to \hsize{\box\tablebox\linetablepart\hss}\endgraf
+ \ifnum\linetablepart<\noflinetableparts\relax
+ \linetableparameter\c!inbetween
+ \fi}%
+ \ifnum\linetablerows<\noflinetablerows\relax
+ \linetableparameter\c!inbetween
+ \else
+ % after, later
+ \fi
+ \chardef\linetableheadstate\plusthree
+ \global\setbox\tablebox\zerocount\emptybox % here
+ \fi
+ % reset \linetablerow will be an option, currently
+ % starts at zero after split
+ \globallet\linetablerow\!!zerocount
+ \globallet\linetableline\!!zerocount
+ \global\chardef\linetablepage\zerocount
+ \global\linetablewidth\zeropoint
+ \setnoftableslines
+ \fi}
+
+\def\startlinetablepart
+ {\global\linetablesubcol\zerocount
+ \setbox\scratchbox\hbox\bgroup
+ \doconvertfont{\linetablerparameter\c!style}%
+ \startcolor[\linetablerparameter\c!color]%
+ \ignorespaces}
+
+\def\stoplinetablepart
+ {\ifnum\linetablepart>\zerocount
+ \unskip \unskip % remove last intercolumn skip (distance+fill)
+ \fi
+ \stopcolor
+ \egroup
+ \iflinetablepreroll \else
+ \ifcase\linetablepart
+ % we're collecting the repeater
+ \else
+ \scratchdimen\hsize \advance\scratchdimen-\wd\scratchbox\relax
+ \ifdim\scratchdimen>\linetableparameter\c!stretch\else
+ \setbox\scratchbox\hbox to \hsize{\unhbox\scratchbox}%
+ \fi
+ \fi
+ \fi}
+
+\def\checklinetablepart
+ {\global\advance\linetablewidth\wd\linetablecell
+ \global\advance\linetablecolumn\linetablestep
+ \global\advance\linetablesubcol\linetablestep
+ \relax
+ %\message{\the\linetablecolumn,\the\linetablesubcol}\wait
+ % from now on the column counter is already incremented
+ \ifcase\linetablesplitstate
+ \iflinetablepreroll \else
+ \box\linetablecell
+ % the columncounter is one ahead !
+% \hskip\linetablecparameter\c!afstand
+ \hskip\scratchskip
+ \fi
+ %%%
+ \donefalse
+ \ifcase\linetablerepeat\else
+ % van te voren berekenen
+ \scratchcounter\linetablecolumn\advance\scratchcounter-\plustwo
+ \ifnum\linetablerepeat=\scratchcounter
+ \donetrue % collecting repeater
+ \fi
+ \fi
+ %%%%
+ \ifdone
+ % collecting repeater
+ \else
+ \ifnum\linetablecolumn>\getvalue{\??le::\linetablepart}\relax
+ \donetrue
+ \fi
+ \fi
+ \ifdone
+ \stoplinetablepart
+ \iflinetablepreroll \else
+ \savelinetablepart
+ \fi
+ \ifcase\linetablepage \or
+ \global\chardef\linetablepage \plustwo
+ \else
+ \global\chardef\linetablepage \plusone
+ \fi
+ \doglobal\increment\linetablepart
+ \global\linetablewidth\wd\tablebox\zerocount
+ \startlinetablepart
+ \fi
+ \else
+ \donefalse
+ \!!doneafalse
+ \ifcase\linetablerepeat\else
+ % van te voren berekenen
+ \scratchcounter\linetablecolumn \advance\scratchcounter-\plustwo
+ \ifnum\linetablerepeat=\scratchcounter
+ \donetrue % collecting repeater
+ \fi
+ \fi
+ \ifdone
+ \!!doneatrue
+ % collecting repeater
+ \else\ifdim\linetablewidth>\hsize
+ \donetrue
+ \else
+% \global\advance\linetablewidth\linetablecparameter\c!afstand\relax
+ \global\advance\linetablewidth\scratchskip
+ \ifdim\linetablewidth>\hsize % ?
+ \donetrue
+ \fi
+ \fi\fi
+ \ifdone
+ \stoplinetablepart
+ \savelinetablepart
+ \ifcase\linetablepage \or
+ \global\chardef\linetablepage \plustwo
+ \else
+ \global\chardef\linetablepage \plusone
+ \fi
+ \doglobal\increment\linetablepart
+ \ifnum\linetablepart>\noflinetableparts
+ \globallet\noflinetableparts\linetablepart
+ \initializetablebox\linetablepart
+ \fi
+ \global\linetablewidth\wd\linetablecell
+ \startlinetablepart
+ \if!!doneb \else \ifcase\linetablerepeat \else
+ % check for left/right page
+ \ifcase\linetablepage\donetrue\or\donetrue\or\donefalse\fi\ifdone
+ % insert repeater
+ \global\advance\linetablewidth\wd\tablebox\zerocount
+ \iflinetablepreroll\kern\wd\else\unhcopy\fi\tablebox\zerocount
+ \fi
+ \fi \fi
+ \fi
+ \iflinetablepreroll \else
+ \box\linetablecell
+ % the columncounter is one ahead !
+% \hskip\linetablecparameter\c!afstand
+% \hskip\scratchskip
+\dorecurse\linetablestep{\strut\hfil}%
+ \hskip\scratchskip
+ \fi
+ \fi}
+
+% \linetableparameter\c!var -> \@@levar (when no classes)
+
+\def\startlinetablerun % to do: quit when nested
+ {\bgroup
+ \inlinetabletrue
+ % autowidth
+ \doif{\linetableparameter\c!maxwidth}\v!fit
+ {\setuplinetable[\c!maxwidth=\zeropoint]}%
+ \processaction
+ [\linetableparameter\c!stretch]
+ [ \v!no=>{\setuplinetable[\c!stretch=\maxdimen]},% no stretch
+ \v!yes=>{\setuplinetable[\c!stretch=\zeropoint]}]% max stretch
+ \chardef\linetablerepeat\linetableparameter\c!nleft
+ \chardef\linetablesplitstate % =
+ \ifdim\linetableparameter\c!maxwidth>\zeropoint
+ \zerocount \else \plusone
+ \fi
+ % optional prevdepth correction
+ \iflinetablepreroll
+ \globallet\noflinetablerows\!!zerocount
+ \else
+ \linetableparameter\c!before
+ \fi
+ \globallet\linetablerows\!!zerocount
+ \globallet\noflinetablecolumns\!!zerocount
+ \globallet\noflinetableparts\!!zerocount
+ \!!counta\zerocount
+ \def\docommand##1%
+ {\doglobal\increment\noflinetableparts
+ \advance\!!counta##1%
+ \setxvalue{\??le::\noflinetableparts}{\the\!!counta}}%
+ \processcommacommand[\linetableparameter\c!n]\docommand
+ \initializetableboxes\noflinetableparts
+ \ifcase\linetablerepeat
+ \globallet\linetablepart\!!plusone
+ \else
+ \globallet\linetablepart\!!zerocount % repeater
+ \fi
+ \globallet\linetablestep\!!plusone
+ \globallet\linetableline\!!zerocount
+ \globallet\linetablerow \!!zerocount
+ \global\linetablecolumn \zerocount
+ \global\linetablesubcol \zerocount
+ \global\linetablewidth \zeropoint
+\iflinetablepreroll \else \ifdim\pagetotal>\zeropoint
+ \verticalstrut\kern-\struttotal
+\fi \fi
+ \setnoftableslines
+ \checklinetablepage
+ \let\BR\linetableBR
+ \let\ER\linetableER
+ \let\BH\linetableBR
+ \let\EH\linetableER
+ \let\BC\linetableBC
+ \let\EC\linetableEC
+ \let\NC\linetableNC
+ \let\NR\linetableNR
+ \flushlinetablehead}
+
+\def\stoplinetablerun
+ {\globallet\linetableline\!!maxcard
+ \chardef\linetableheadstate\zerocount % blocked
+ \flushlinetableparts
+ \iflinetablepreroll \else
+ \linetableparameter\c!after
+ \fi
+ \globallet\linetablepart \!!zerocount
+ \globallet\noflinetableparts\!!zerocount
+ \egroup}
+
+% \def\checklinecolumnwidth
+% {\ifundefined{\??lew\number\linetablecolumn}%
+% \donetrue
+% \else\ifdim\getvalue{\??lew\number\linetablecolumn}<\wd\linetablecell
+% \donetrue
+% \else
+% \donefalse
+% \fi\fi
+% \ifdone
+% \setxvalue{\??lew\number\linetablecolumn}{\the\wd\linetablecell}%
+% \fi}
+%
+% \def\checklinecolumnwidth
+% {\ifcsname\??lew\number\linetablecolumn\endcsname
+% \ifdim\csname\??lew\number\linetablecolumn\endcsname<\wd\linetablecell
+% \donetrue
+% \else
+% \donefalse
+% \fi
+% \else
+% \donetrue
+% \fi
+% \ifdone
+% \setxvalue{\??lew\number\linetablecolumn}{\the\wd\linetablecell}%
+% \fi}
+
+% \def\checklinecolumnwidth
+% {\expandafter\xdef\csname\??lew\number\linetablecolumn\endcsname
+% {\expandafter\ifx\csname\??lew\number\linetablecolumn\endcsname\relax
+% \the\wd\linetablecell
+% \else\ifdim\csname\??lew\number\linetablecolumn\endcsname<\wd\linetablecell
+% \the\wd\linetablecell
+% \else
+% \csname\??lew\number\linetablecolumn\endcsname
+% \fi\fi}}
+
+\def\checklinecolumndimension#1#2#3%
+ {\expandafter\xdef\csname#1\number#3\endcsname
+ {\expandafter\ifx\csname#1\number#3\endcsname\relax
+ \the#2\linetablecell
+ \else\ifdim\csname#1\number#3\endcsname<#2\linetablecell
+ \the#2\linetablecell
+ \else
+ \csname#1\number#3\endcsname
+ \fi\fi}}
+
+\def\checklinecolumnwidth {\checklinecolumndimension\??lew\wd\linetablecolumn}
+\def\checklinecolumnheight{\checklinecolumndimension\??leh\ht\linetablerow}
+\def\checklinecolumndepth {\checklinecolumndimension\??led\dp\linetablerow}
+
+\def\linetableBR
+ {\dosingleempty\dolinetableBR}
+
+\def\dolinetableBR[#1]% #1 not yet implemented
+ {\ifnum\linetableheadstate=1\else
+ \doglobal\increment\linetablerow
+ \doglobal\increment\linetablerows
+ \fi
+ \global\linetablecolumn\plusone
+ \global\linetablesubcol\plusone
+% \linetableheight\linetablerparameter\c!height
+%
+% \ifx\linetableheight\empty
+% % nothing
+% \else\ifx\linetableheight\v!fit
+% % keep it simple
+% \else\ifx\linetableheight\v!line
+% \chardef\linetablemode\plusone
+% \else
+% \!!heighta\linetableheight
+% \advance\!!heighta-\strutdepth
+% \fi\fi\fi
+%
+ \linetableheight\zeropoint
+ \edef\!!stringa{\linetablerparameter\c!height}%
+ \ifx\!!stringa\empty
+ \chardef\linetablehmode\zerocount
+ \else\ifx\!!stringa\v!fit
+ \chardef\linetablehmode\plusone
+ \else\ifx\!!stringa\v!line
+ \chardef\linetablehmode\plustwo
+ \else
+ \linetableheight\!!stringa
+ \advance\linetableheight-\strutdepth
+ \fi\fi\fi
+%
+ \startlinetablepart}
+
+\def\linetableBC
+ {\startlinetablecell}
+
+\def\linetableEC
+ {\stoplinetablecell
+ \iflinetablepreroll
+ \checklinecolumnwidth
+ \checklinecolumnheight
+ \checklinecolumndepth
+ \fi
+ \checklinetablepart}
+
+\def\linetableER
+ {% \stoplinetablecell
+ % no \box\linetablecell, i.e. dummy columnn, last \NC \NR
+ \stoplinetablepart
+ \savelinetablepart
+ \advance\linetablecolumn \minusone
+ \ifnum\linetablecolumn>\noflinetablecolumns
+ \xdef\noflinetablecolumns{\number\linetablecolumn}%
+ \fi
+ \flushlinetableparts
+ \global\linetablecolumn\zerocount
+ \global\linetablewidth \zeropoint
+ \ifcase\linetablerepeat
+ \globallet\linetablepart\!!plusone
+ \else
+ \globallet\linetablepart\!!zerocount % repeater
+ \fi
+ \checklinetablepage
+ \flushlinetablehead}
+
+\def\checklinetablepage
+ {\global\chardef\linetablepage\zerocount
+ \ifcase\linetablerepeat \else \ifcase\linetablepage
+ \doif{\linetableparameter\c!repeat}\v!no
+ {\global\chardef\linetablepage\doifoddpageelse\plusone\plustwo}%
+ \fi \fi}
+
+\def\flushlinetablehead
+ {\ifcase\linetableheadstate
+ % 0 blocked
+ \or
+ % 1 doing head
+ \or
+ % 2 head done
+ \or
+ % 3 trigger flush
+ \chardef\linetableheadstate\plusone
+ \the\@@linetablehead\relax
+ \chardef\linetableheadstate\plustwo
+ \fi}
+
+\def\linetableNC % first time special treatment
+ {\relax
+ \ifcase\linetablecolumn
+ \linetableBR
+ \else
+ \linetableEC
+ \fi
+ \linetableBC} % beware, this will result in BR BC EC BC NR
+
+\def\linetableNR
+ {\stoplinetablecell % dummy
+ \linetableER}
+
+\def\startlinetable
+ {\startlinetablerun}
+
+\def\stoplinetable
+ {\stoplinetablerun}
+
+\def\startlinetableanalysis
+ {\bgroup
+ \linetableprerolltrue
+ \trialtypesettingtrue
+ \startlinetablerun}
+
+\def\stoplinetableanalysis
+ {\stoplinetablerun
+ \egroup
+ \globallet\noflinetablerows\linetablerows
+ \dorecurse\noflinetablerows % global, from last run {\linetableparameter\c!n}
+ {%\writestatus{linetable}{\recurselevel->\getvalue{\??lew\recurselevel}}%
+ \setevalue{\??ler\recurselevel x\c!height}{\getvalue{\??leh\recurselevel}}%
+ \setevalue{\??ler\recurselevel x\c!depth }{\getvalue{\??led\recurselevel}}%
+ \letgvalue{\??leh\recurselevel}\!!zeropoint
+ \letgvalue{\??led\recurselevel}\!!zeropoint}
+ \dorecurse\noflinetablecolumns % global, from last run {\linetableparameter\c!n}
+ {%\writestatus{linetable}{\recurselevel->\getvalue{\??lew\recurselevel}}%
+ \setevalue{\??lec\recurselevel\c!width}{\getvalue{\??lew\recurselevel}}%
+ \letgvalue{\??lew\recurselevel}\!!zeropoint}} % init next table
+
+% todo: store in box instead of macro
+
+\newtoks \@@linetablehead
+
+\long\def\startlinetablehead#1\stoplinetablehead
+ {\ifinlinetable
+ \@@linetablehead\emptytoks
+ \fi
+ \chardef\linetableheadstate3 % full
+ \@@linetablehead{#1}%
+ \ifinlinetable
+ \flushlinetablehead
+ \fi}
+
+\def\linetableBH
+ {\ifx\EC\relax
+ % signal, grabbing lines
+ \else
+ \@@linetablehead\emptytoks
+ \fi
+ \pushmacro\BC
+ \pushmacro\EC
+ \def\BC##1\EC{\appendtoks##1\to\@@linetablehead}%
+ \let\EC\relax} % signal
+
+\def\linetableEH
+ {\popmacro\EC
+ \popmacro\BC
+ \@EA\startlinetablehead\the\@@linetablehead\stoplinetablehead}
+
+\let\startlinetablebody\donothing
+\let\stoplinetablebody \donothing
+
+\def\processlinetablebuffer
+ {\dosingleempty\doprocesslinetablebuffer}
+
+\def\doprocesslinetablebuffer[#1]%
+ {\bgroup
+ \let\startlinetable\donothing
+ \let\stoplinetable \donothing
+ \startlinetableanalysis\getbuffer[#1]\stoplinetableanalysis
+ \startlinetablerun \getbuffer[#1]\stoplinetablerun
+ \egroup}
+
+\def\processlinetablefile#1%
+ {\bgroup
+ \let\startlinetable\donothing
+ \let\stoplinetable \donothing
+ \startlinetableanalysis\readfile{#1}\donothing\donothing\stoplinetableanalysis
+ \startlinetablerun \readfile{#1}\donothing\donothing\stoplinetablerun
+ \egroup}
+
+% will go away:
+
+\def\processlinetableXMLfile#1%
+ {\bgroup
+ \let\startlinetable\donothing
+ \let\stoplinetable \donothing
+ \startlinetableanalysis\processXMLfile{#1}\stoplinetableanalysis
+ \startlinetablerun \processXMLfile{#1}\stoplinetablerun
+ \egroup}
+
+\protect \endinput
+
+\doifnotmode{demo}{\endinput}
+
+\setuplinetable[n=6,m={2,2,2},lines=25] % m ?
+
+\setuplinetable[c][1] [width=2cm,background=color,backgroundcolor=red]
+\setuplinetable[c][4] [width=3cm,background=color,backgroundcolor=yellow]
+\setuplinetable[c][6] [width=3cm,background=color,backgroundcolor=magenta]
+\setuplinetable[r][odd] [background=color,backgroundcolor=gray]
+\setuplinetable[r][even][background=color,backgroundcolor=green]
+
+\starttext
+
+\showframe \showstruts
+
+\setupcolors[state=start]
+
+\setuppagenumbering[alternative=doublesided]\page[left]
+
+\startlinetable
+\NC aaa\crlf aaa \NC bb \NC c \NC ddddd \NC eeee \NC ff \NC \NR
+\dorecurse{100}{\NC aaa \NC bb \NC c \NC ddddd \NC eeee \NC ff \NC \NR}
+\stoplinetable
+
+\startlinetable
+\NC[style=slanted,color=green,background=color,backgroundcolor=darkred,nx=2,uitlijnen=middle] xxx
+ \NC yy \NC ddddd \NC eeee \NC ff \NC \NR
+\dorecurse{100}{\NC aaa \NC bb \NC c \NC ddddd \NC eeee \NC ff \NC \NR}
+\stoplinetable
+
+% \startbuffer[lt]
+% \NC aaa\crlf aaa \NC bb \NC c \NC ddddd \NC ee \NC ff \NC \NR
+% \NC aaa\crlf aaa \NC b \NC cc \NC ddd \NC eeee \NC f \NC \NR
+% \stopbuffer
+%
+% \processlinetablebuffer[lt]
+
+\stoptext
diff --git a/Master/texmf-dist/tex/context/base/core-ntb.tex b/Master/texmf-dist/tex/context/base/tabl-ntb.mkii
index 63e4bea1066..1f9a9d5747d 100644
--- a/Master/texmf-dist/tex/context/base/core-ntb.tex
+++ b/Master/texmf-dist/tex/context/base/tabl-ntb.mkii
@@ -1,7 +1,7 @@
%D \module
%D [ file=core-ntb,
%D version=2000.04.18,
-%D title=\CONTEXT\ Core Macros,
+%D title=\CONTEXT\ Table Macros,
%D subtitle=Natural Tables,
%D author=Hans Hagen,
%D date=\currentdate,
@@ -23,13 +23,23 @@
% optie=rek beschrijven
-\writestatus{loading}{Context Core Macros / Natural Tables}
+\writestatus{loading}{ConTeXt Table Macros / Natural Tables}
%D As always, this is the nth version. Much time went in
%D trying to speed up the many cell calculations, some
%D optimizations were rejected in order not to complicate this
%D module too much (and in order to prevail extensibility).
+% shapebox fails here in mkii
+%
+% \setupcolors[state=start]
+% \bTABLE
+% \bTR [align=middle]\bTH Range\eTH{}\bTH Value\eTH{}\eTR
+% \bTR \bTD \type{<} 12\eTD{}\bTD 3\eTD{}\eTR
+% \bTR \bTD 12--16\eTD{}\bTD 2\eTD{}\eTR
+% \bTR \bTD \type{>}16\eTD{}\bTD 1\eTD{}\eTR
+% \eTABLE
+
% \starttext
% \placefigure[left]{}{}
% \startlinecorrection \dontleavehmode \bTABLE
@@ -451,7 +461,6 @@
\def\parseTR[#1][#2]% [#2] is dummy that kills spaces / no #3 argument
{\currentcol\zerocount
\advance\maximumrow\plusone
- \let\eTR\relax % handy in \expanded
\iffirstargument\setTABLEparameters[\c!y\number\maximumrow][#1]\fi}
\def\settblref#1#2{\expandafter\xdef\csname\@@tblprefix\number#1:\number#2:x\endcsname}
@@ -627,16 +636,17 @@
% to be done: head <raw> foot, dus state var
-\long\def\bTABLEhead{\dosingleempty\doTABLEhead}
-\long\def\bTABLEnext{\dosingleempty\doTABLEnext}
-\long\def\bTABLEbody{\dosingleempty\doTABLEbody}
-\long\def\bTABLEfoot{\dosingleempty\doTABLEfoot}
+\unexpanded\def\bTABLEhead{\dosingleempty\doTABLEhead} \let\eTABLEhead\relax
+\unexpanded\def\bTABLEnext{\dosingleempty\doTABLEnext} \let\eTABLEnext\relax
+\unexpanded\def\bTABLEbody{\dosingleempty\doTABLEbody} \let\eTABLEbody\relax
+\unexpanded\def\bTABLEfoot{\dosingleempty\doTABLEfoot} \let\eTABLEfoot\relax
\long\def\doTABLEhead[#1]#2\eTABLEhead{\appendtoks\doTABLEsection[#1]{#2}\to\TBLhead}
\long\def\doTABLEnext[#1]#2\eTABLEnext{\appendtoks\doTABLEsection[#1]{#2}\to\TBLnext}
\long\def\doTABLEbody[#1]#2\eTABLEbody{\appendtoks\doTABLEsection[#1]{#2}\to\TBLbody}
\long\def\doTABLEfoot[#1]#2\eTABLEfoot{\appendtoks\doTABLEsection[#1]{#2}\to\TBLfoot}
+
\long\def\doTABLEsection[#1]#2%
{\def\setupTBLsection{\getparameters[\@@tbl\@@tbl][#1]}%
#2%
@@ -688,17 +698,22 @@
\maximumrowspan\plusone
\maximumcol\zerocount
\maximumrow\zerocount
- \def\bTR{\dodoubleempty\parseTR}%
- \def\bTD{\dodoubleempty\parseTD}%
- \def\bTH{\dodoubleempty\parseTH}%
- \def\bTN{\dodoubleempty\parseTN}}
+ \let\bTR\dobTR
+ \let\bTD\dobTD
+ \let\bTH\dobTH
+ \let\bTN\dobTN}
+
+\unexpanded\def\dobTR{\dodoubleempty\parseTR}
+\unexpanded\def\dobTD{\dodoubleempty\parseTD}
+\unexpanded\def\dobTH{\dodoubleempty\parseTH}
+\unexpanded\def\dobTN{\dodoubleempty\parseTN}
% permits \expanded{\bTD ... \eTD}
-\unexpanded\def\eTR{}
-\unexpanded\def\eTD{}
-\unexpanded\def\eTH{}
-\unexpanded\def\eTN{}
+\unexpanded\def\eTR{\ignorespaces}
+\unexpanded\def\eTD{\ignorespaces}
+\unexpanded\def\eTH{\ignorespaces}
+\unexpanded\def\eTN{\ignorespaces}
\def\eTABLE % beware, we need to get rid of spurious spaces when in hmode
{% tricky and dirty order -)
@@ -1041,7 +1056,7 @@
\@EAEAEA\notsplittblbox
\fi\fi{\flushtbltoks}}
-\def\stretchtblwidths
+\def\stretchtblwidths % more variants, e.g. a max to \dimend
{\ifcase\maximumcol\else % else division by zero
\!!dimend\zeropoint
\!!dimene\hsize
@@ -1468,15 +1483,21 @@
\presetlocalframed % breedte hoogte diepte offset
[\@@tbl\@@tbl]% % achtergrond, achtergrondraster, achtergrondkleur
% not ok yet
- \setupTABLE
- [\c!frameoffset=.5\linewidth,
+ \setupTABLE [%
+ \c!frameoffset=.5\linewidth,
\c!backgroundoffset=\v!frame,
\c!framecolor=\s!black,
+ \c!width=fit,
+ \c!height=fit,
+\c!autowidth=\v!yes,
+% \c!rulethickness=\linewidth,
+% \c!strut=\v!no,
+\c!strut=\v!yes, % needed for mathml, but ... maybe we need another resetTABLEmode
+\c!autostrut=\v!no,
\c!color=,
\c!style=,
\c!headstyle=,
\c!headcolor=,
- \c!strut=\v!no,
\c!aligncharacter=\v!no,
\c!alignmentcharacter={,},
\c!maxwidth=8em]%
diff --git a/Master/texmf-dist/tex/context/base/tabl-ntb.mkiv b/Master/texmf-dist/tex/context/base/tabl-ntb.mkiv
new file mode 100644
index 00000000000..e7df3b28171
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/tabl-ntb.mkiv
@@ -0,0 +1,1570 @@
+%D \module
+%D [ file=core-ntb,
+%D version=2000.04.18,
+%D title=\CONTEXT\ Table Macros,
+%D subtitle=Natural Tables,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D This is an unfinished, preliminary module. At least two
+%D runs are needed to get the table fixed. Ugly code.
+
+% todo: special parsetb for argless variant
+% todo: protect \tbl...
+% todo: tblnx also count
+% todo: get rid of recurse
+% todo: fast if
+% todo: avoid halign (just do it manual) and thereby globals
+
+% optie=rek beschrijven
+
+\writestatus{loading}{ConTeXt Table Macros / Natural Tables}
+
+%D As always, this is the nth version. Much time went in
+%D trying to speed up the many cell calculations, some
+%D optimizations were rejected in order not to complicate this
+%D module too much (and in order to prevail extensibility).
+
+% shapebox fails here in mkii
+%
+% \setupcolors[state=start]
+% \bTABLE
+% \bTR [align=middle]\bTH Range\eTH{}\bTH Value\eTH{}\eTR
+% \bTR \bTD \type{<} 12\eTD{}\bTD 3\eTD{}\eTR
+% \bTR \bTD 12--16\eTD{}\bTD 2\eTD{}\eTR
+% \bTR \bTD \type{>}16\eTD{}\bTD 1\eTD{}\eTR
+% \eTABLE
+
+% \starttext
+% \placefigure[left]{}{}
+% \startlinecorrection \dontleavehmode \bTABLE
+% \bTR \bTD oeps \eTD \eTR
+% \eTABLE
+% \stoplinecorrection
+% \placefigure[right]{}{}
+% \startlinecorrection \dontleavehmode \bTABLE
+% \bTR \bTD oeps \eTD \eTR
+% \eTABLE
+% \stoplinecorrection
+% \stoptext
+
+%D To Do:
+%D
+%D \starttyping
+%D splitsen = ja | herhaal => als nofTH>1 then ja als herhaal
+%D \stoptyping
+
+%D To Do:
+%D
+%D \starttyping
+%D break over pagina
+%D kop herhalen
+%D reset settings
+%D
+%D \setupTABLE [c|column|x] [nx|odd|even|first|last][a=b]
+%D \setupTABLE [r|row |y] [nx|odd|even|first|last][a=b]
+%D \setupTABLE [nx|odd|even|first|last][ny|odd|even|first|last][a=b]
+%D \setupTABLE [nx|odd|even|first|last] [a=b]
+%D \setupTABLE [a=b]
+%D
+%D \bTH \eTH
+%D \stoptyping
+
+% the section setup does not work yet, data needs to be stored,
+% i.e.each row should know if it's a head/body/foot, and there
+% should be \setupTABLE[head]... and alike
+
+\unprotect
+
+%D A simple way to force equal line spacing is to say:
+%D
+%D \starttyping
+%D \def\bTBLCELL{\begstrut}
+%D \def\eTBLCELL{\endstrut}
+%D \stoptyping
+%D
+%D The next alternative also takes care of preceding and following
+%D white space.
+%D
+%D \startbuffer
+%D \bTABLE[left={(},right={)},top=\startnarrower,bottom=\stopnarrower]
+%D \bTR \bTD something \eTD \eTR
+%D \eTABLE
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+
+\def\bTBLCELL % why not \doinhibitblank
+ {\inhibitblank
+ \doconvertfont\tbltblstyle\empty
+ \everypar{\tbltblleft\delayedbegstrut}}
+
+\def\eTBLCELL
+ {\ifhmode
+ \delayedendstrut
+ \tbltblright
+ \par % added 13/4/2006
+ \else
+ % not sure yet:\tbltblright
+ \par
+ \ifdim\prevdepth<\zeropoint % =-1000pt ?
+ \vskip-\strutdp
+ \else
+ \removebottomthings
+ \fi
+ \fi}
+
+\newcount\currenttbl
+
+\def\@@tbl{tbl} \def\tblcell{1} \def\tblnone{2}
+
+\def\@@tblprefix{tbl:} \let\@@rawtblprefix\@@tblprefix
+
+%D This should be done more efficient: soon
+
+% \let as well as \expandafter\edef's
+
+\newcounter\TBLlevel
+
+\def\@@tblprefix{\@@tbl:\ifnum\TBLlevel>1 :\TBLlevel:\fi}
+
+% \def\tblsetprefix % not yet used, figure out when .. may interfere with setup
+% {\edef\@@tblprefix{\@@tbl:\ifnum\TBLlevel>1 :\TBLlevel:\fi}}
+
+\def\settblnob#1{\expandafter\let\csname\@@tblprefix\number#1:b\endcsname\plusone}
+\def\gettblnob#1{\ifcsname\@@tblprefix\number#1:b\endcsname\plusone\else\zerocount\fi}
+
+\def\settbltag#1#2{\expandafter\edef\csname\@@tblprefix\number#1:\number#2:s\endcsname}
+\def\settblcol#1#2{\expandafter\edef\csname\@@tblprefix\number#1:\number#2:c\endcsname}
+\def\settblrow#1#2{\expandafter\edef\csname\@@tblprefix\number#1:\number#2:r\endcsname}
+
+\def\lettbltag#1#2{\expandafter\let\csname\@@tblprefix\number#1:\number#2:s\endcsname}
+\def\lettblcol#1#2{\expandafter\let\csname\@@tblprefix\number#1:\number#2:c\endcsname}
+\def\lettblrow#1#2{\expandafter\let\csname\@@tblprefix\number#1:\number#2:r\endcsname}
+
+\def\settblwd#1#2{\expandafter\xdef\csname\@@tblprefix\number#1:\number#2:wd\endcsname} % global !
+\def\settblht#1#2{\expandafter\xdef\csname\@@tblprefix\number#1:\number#2:ht\endcsname} % global !
+\def\lettblwd#1#2{\global\expandafter\let\csname\@@tblprefix\number#1:\number#2:wd\endcsname} % global !
+\def\lettblht#1#2{\global\expandafter\let\csname\@@tblprefix\number#1:\number#2:ht\endcsname} % global !
+
+\def\gettbltag#1#2{\csname\@@tblprefix\number#1:\number#2:s\endcsname}
+\def\gettblcol#1#2{\csname\@@tblprefix\number#1:\number#2:c\endcsname}
+\def\gettblrow#1#2{\csname\@@tblprefix\number#1:\number#2:r\endcsname}
+
+\def\gettblwd #1#2{\csname\@@tblprefix\number#1:\number#2:wd\endcsname}
+\def\gettblht #1#2{\csname\@@tblprefix\number#1:\number#2:ht\endcsname}
+
+\def\settblwid#1{\expandafter\xdef\csname\@@tblprefix\number#1:w\endcsname} % {#2} global !
+\def\settblhei#1{\expandafter\xdef\csname\@@tblprefix\number#1:h\endcsname} % {#2} global !
+\def\settbldis#1{\expandafter\xdef\csname\@@tblprefix\number#1:d\endcsname} % {#2} global !
+\def\settblaut#1{\expandafter\xdef\csname\@@tblprefix\number#1:a\endcsname} % {#2} global !
+
+\def\lettblwid#1{\global\expandafter\let\csname\@@tblprefix\number#1:w\endcsname} % {#2} global !
+\def\lettblhei#1{\global\expandafter\let\csname\@@tblprefix\number#1:h\endcsname} % {#2} global !
+\def\lettbldis#1{\global\expandafter\let\csname\@@tblprefix\number#1:d\endcsname} % {#2} global !
+\def\lettblaut#1{\global\expandafter\let\csname\@@tblprefix\number#1:a\endcsname} % {#2} global !
+
+\def\gettblwid#1{\ifcsname\@@tblprefix\number#1:w\endcsname\csname\@@tblprefix\number#1:w\endcsname\else\zeropoint\fi}
+\def\gettblhei#1{\ifcsname\@@tblprefix\number#1:h\endcsname\csname\@@tblprefix\number#1:h\endcsname\else\zeropoint\fi}
+\def\gettbldis#1{\ifcsname\@@tblprefix\number#1:d\endcsname\csname\@@tblprefix\number#1:d\endcsname\else\zeropoint\fi}
+\def\gettblaut#1{\csname \@@tblprefix\number#1:a\endcsname}
+
+\def\doiftbltag #1#2{\ifcsname\@@tblprefix\number#1:\number#2:s\endcsname\@EA\firstofoneargument \else\@EA\gobbleoneargument \fi}
+\def\doifnottbltag #1#2{\ifcsname\@@tblprefix\number#1:\number#2:s\endcsname\@EA\gobbleoneargument \else\@EA\firstofoneargument \fi}
+\def\doifelsetbltag#1#2{\ifcsname\@@tblprefix\number#1:\number#2:s\endcsname\@EA\firstoftwoarguments\else\@EA\secondoftwoarguments\fi}
+\def\doiftblrow #1#2{\ifcsname\@@tblprefix\number#1:\number#2:r\endcsname\@EA\firstofoneargument \else\@EA\gobbleoneargument \fi}
+\def\doiftblcol #1#2{\ifcsname\@@tblprefix\number#1:\number#2:c\endcsname\@EA\firstofoneargument \else\@EA\gobbleoneargument \fi}
+\def\doifnottblcol #1#2{\ifcsname\@@tblprefix\number#1:\number#2:c\endcsname\@EA\gobbleoneargument \else\@EA\firstofoneargument \fi}
+
+\def\tbltagstate#1#2{\ifcsname\@@tblprefix\number#1:\number#2:s\endcsname\zerocount\else\plusone\fi}
+\def\tblrowstate#1#2{\ifcsname\@@tblprefix\number#1:\number#2:r\endcsname\zerocount\else\plusone\fi}
+\def\tblcolstate#1#2{\ifcsname\@@tblprefix\number#1:\number#2:c\endcsname\zerocount\else\plusone\fi}
+
+\def\settblspn #1{\expandafter\let\csname\@@tblprefix\number#1:s\endcsname \!!plusone}
+\def\doifelsetblspn#1{\doifelse {\csname\@@tblprefix\number#1:s\endcsname}\!!plusone}
+% \def\doifelsetblspn#1{\@EA\ifx\csname\@@tblprefix\number#1:s\endcsname\plusone\@EA\firstoftwoarguments\else\@EA\secondoftwoarguments\fi}
+
+\def\settblspn #1{\setvalue {\@@tblprefix\number#1:s}{1}}
+\def\doifelsetblspn#1{\doifelsevalue{\@@tblprefix\number#1:s}{1}}
+
+\long\def\settbltxt#1#2#3%
+ {\long\@EA\def\csname\@@tblprefix\number#1:\number#2:t\@EA\endcsname\@EA{\@EA\def\@EA\TBLlevel\@EA{\TBLlevel}#3}}
+
+\def\gettbltxt#1#2%
+ {\csname\@@tblprefix\number#1:\number#2:t\endcsname}
+
+\newtoks\tbltoks
+\newtoks\tblrowtoks
+
+\let\pushTBLparameters\relax
+\let\popTBLparameters \relax
+
+\newif\ifsqueezeTBLspan \squeezeTBLspantrue % spans one column cell over multi column par cells
+\newif\ifautosqueezeTBLspan \autosqueezeTBLspantrue % unless explicit widths are given
+\newif\ifautoTBLspread \autoTBLspreadfalse
+\newif\ifautoTBLhsize \autoTBLhsizetrue
+\newif\ifautoTBLrowspan \autoTBLrowspantrue
+\newif\ifautoTBLemptycell \autoTBLemptycelltrue
+\newif\ifautoTBLcheckwidth \autoTBLcheckwidthtrue
+\newif\ifappendTBLsetups \appendTBLsetupstrue
+\newif\ifenableTBLbreak \enableTBLbreakfalse
+\newif\ifmultipleTBLheads \multipleTBLheadsfalse
+
+\newif\iftraceTABLE \traceTABLEfalse
+
+\def\noftblheadlines{0}
+\def\noftblnextlines{0}
+\def\noftblhdnxlines{0}
+
+\long\def\handleTBLcell#1#2[#3]{}
+
+\long\def\bTC#1\eTC{\bTD#1\eTD}
+\long\def\bTX#1\eTX{\bTD#1\eTD}
+\long\def\bTY#1\eTY{\bTR#1\eTR}
+
+\let\getTABLEparameters\getparameters
+
+\unexpanded\def\setupTABLE
+ {\dotripleempty\dosetupTABLE}
+
+\def\dosetupTABLE[#1][#2][#3]%
+ {\ifthirdargument
+ \processaction
+ [#1]
+ [ \v!row=>{\dosetupTABLExy[\c!y][#2][#3]},%
+ \v!column=>{\dosetupTABLExy[\c!x][#2][#3]},%
+ r=>{\dosetupTABLExy[\c!y][#2][#3]},%
+ c=>{\dosetupTABLExy[\c!x][#2][#3]},%
+ y=>{\dosetupTABLExy[\c!y][#2][#3]},%
+ x=>{\dosetupTABLExy[\c!x][#2][#3]},%
+ \v!start=>{\dosetupTABLExy[#1][#2][#3]},%
+ \v!header=>{\dosetupTABLExy[#1][#2][#3]},%
+ \s!unknown=>{\dosetupTABLEzz[#1][#2][#3]}]%
+ \else\ifsecondargument
+ \processaction
+ [#1]
+ [ \v!row=>{\dosetupTABLExy[\c!y][\v!each][#2]},%
+ \v!column=>{\dosetupTABLExy[\c!x][\v!each][#2]},%
+ r=>{\dosetupTABLExy[\c!y][\v!each][#2]},%
+ c=>{\dosetupTABLExy[\c!x][\v!each][#2]},%
+ y=>{\dosetupTABLExy[\c!y][\v!each][#2]},%
+ x=>{\dosetupTABLExy[\c!x][\v!each][#2]},%
+ \v!start=>{\dosetupTABLExy[#1][\v!each][#2]},%
+ \v!header=>{\dosetupTABLExy[#1][\v!each][#2]},%
+ \s!unknown=>{\dosetupTABLEzz[\c!x][#1][#2]}]%
+ \else
+ \getparameters[\@@tbl\@@tbl][#1]%
+ \fi\fi}
+
+\def\dosetupTABLExy[#1][#2][#3]%
+ {\def\dodosetupTABLE##1{\setTABLEparameters[#1##1][#3]}%
+ \processcommalist[#2]\dodosetupTABLE}
+
+\def\dosetupTABLEzz[#1][#2][#3]%
+ {\def\dodosetupTABLE##1%
+ {\def\dododosetupTABLE####1{\setTABLEparameters[\c!x##1\c!y####1][#3]}%
+ \processcommalist[#2]\dododosetupTABLE}%
+ \processcommalist[#1]\dodosetupTABLE}
+
+\def\nopTABLEparameters[#1][#2]%
+ {\letvalue{\@@tblprefix#1}\empty}
+
+\def\setTABLEparameters[#1][#2]%
+ {\pushTBLparameters
+ \ifappendTBLsetups
+ \doifdefinedelse{\@@tblprefix#1}
+ {\def\getTABLEparameters[##1][##2]%
+ {\setvalue{\@@tblprefix#1}{\getTABLEparameters[\@@tbl\@@tbl][##2,#2]}}%
+ \getvalue{\@@tblprefix#1}%
+ \let\getTABLEparameters\getparameters}
+ {\setvalue{\@@tblprefix#1}{\getTABLEparameters[\@@tbl\@@tbl][#2]}}%
+ \else
+ \setvalue{\@@tblprefix#1}{\getTABLEparameters[\@@tbl\@@tbl][#2]}%
+ \fi
+ \popTBLparameters}
+
+\let\setupTBLsection\relax
+
+% % \setupTABLE [y] [first][background=color,backgroundcolor=blue,frame=off,bottomframe=on,topframe=on,framecolor=white]
+% \setupTABLE [first][first][backgroundcorner=2,corner=10,frame=on]
+% \setupTABLE [last] [first][backgroundcorner=4,corner=12,frame=on]
+%
+% \setupTABLE [row] [each] [background=color,backgroundcolor=blue,frame=on,framecolor=white]
+% \setupTABLE [first][2] [corner=8]
+% \setupTABLE [last] [2] [corner=5]
+% \setupTABLE [first][last] [corner=7]
+% \setupTABLE [last] [last] [corner=6]
+%
+% \startTEXpage
+% \bTABLE[frame=off,align=middle]
+% \bTR \bTD one \eTD \bTD two \eTD \bTD three \eTD \eTR
+% \bTR \bTD first \eTD \bTD second \eTD \bTD third \eTD \eTR
+% \bTR \bTD alpha \eTD \bTD beta \eTD \bTD gamma \eTD \eTR
+% \eTABLE
+% \stopTEXpage
+%
+% \setupTABLE [first] [two][corner=2] % special case
+% \setupTABLE [last] [two][corner=4] % special case
+%
+% % % \setupTABLE [one] [first] ... special case of span
+%
+% \startTEXpage
+% \bTABLE[frame=off,align=middle]
+% \bTR \bTD one \eTD \bTD two \eTD \bTD three \eTD \eTR
+% \bTR \bTD first \eTD \bTD second \eTD \bTD third \eTD \eTR
+% \eTABLE
+% \stopTEXpage
+
+\def\setupTBLcell#1#2% cell over col over row
+ {\setupTBLsection % already forgotten
+ \edef\positiverow{\number#1}%
+ \edef\positivecol{\number#2}%
+ \edef\negativerow{\the\numexpr-\maximumrow+#1+\minusone\relax}%
+ \edef\negativecol{\the\numexpr-\maximumcol+#2+\minusone\relax}%
+ % each each
+ \csname\@@tblprefix\c!x\v!each\c!y\v!each\endcsname
+ \csname\@@tblprefix\c!y\v!each\endcsname
+ \csname\@@tblprefix\c!x\v!each\endcsname
+ % odd even
+ \csname\@@tblprefix\c!y\v!oddeven\positiverow\endcsname
+ \csname\@@tblprefix\c!x\v!oddeven\positivecol\endcsname
+ \csname\@@tblprefix\c!x\v!oddeven\positivecol\c!y\v!oddeven\positiverow\endcsname
+ % row/col number combinations
+ \ifcsname\@@tblprefix\c!y\positiverow\endcsname\csname\@@tblprefix\c!y\positiverow\endcsname\fi
+ \ifcsname\@@tblprefix\c!y\negativerow\endcsname\csname\@@tblprefix\c!y\negativerow\endcsname\fi
+ \csname\@@tbl\@@tbl\c!extras\endcsname
+ \@EA\let\csname\@@tbl\@@tbl\c!extras\endcsname\relax % new, see x-fo
+ \ifcsname\@@tblprefix\c!x\positivecol\endcsname\csname\@@tblprefix\c!x\positivecol\endcsname\fi
+ \ifcsname\@@tblprefix\c!x\negativecol\endcsname\csname\@@tblprefix\c!x\negativecol\endcsname\fi
+ \csname\@@tbl\@@tbl\c!extras\endcsname
+ \@EA\let\csname\@@tbl\@@tbl\c!extras\endcsname\relax % new, see x-fo
+ % first/last combinations
+ \ifnum\positiverow=\plusone
+ \csname\@@tblprefix\c!y\v!first\endcsname
+ \ifcsname\@@tblprefix\c!x\positivecol\c!y\v!first\endcsname\csname\@@tblprefix\c!x\positivecol\c!y\v!first\endcsname\fi
+ \fi
+ \ifnum\positivecol=\plusone
+ \csname\@@tblprefix\c!x\v!first\endcsname
+ \ifcsname\@@tblprefix\c!x\v!first\c!y\positiverow\endcsname\csname\@@tblprefix\c!x\v!first\c!y\positiverow\endcsname\fi
+ \fi
+ \ifnum\positiverow=\maximumrow\relax
+ \csname\@@tblprefix\c!y\v!last\endcsname
+ \ifcsname\@@tblprefix\c!x\positivecol\c!y\v!last\endcsname\csname\@@tblprefix\c!x\positivecol\c!y\v!last\endcsname\fi
+ \fi
+ \ifnum\positivecol=\maximumcol\relax
+ \csname\@@tblprefix\c!x\v!last\endcsname
+ \ifcsname\@@tblprefix\c!x\v!last\c!y\positiverow\endcsname\csname\@@tblprefix\c!x\v!last\c!y\positiverow\endcsname\fi
+ \fi
+ \ifnum\positiverow=\maximumrow\relax \ifnum\positivecol=\maximumcol\relax
+ \csname\@@tblprefix\c!x\v!last\c!y\v!last\endcsname
+ \fi\fi
+ \ifnum\positiverow=\plusone \ifnum\positivecol=\plusone
+ \csname\@@tblprefix\c!x\v!first\c!y\v!first\endcsname
+ \fi\fi
+ \ifnum\positiverow=\plusone \ifnum\positivecol=\maximumcol\relax
+ \csname\@@tblprefix\c!x\v!last\c!y\v!first\endcsname
+ \fi\fi
+ \ifnum\positiverow=\maximumrow\relax \ifnum\positivecol=\plusone
+ \csname\@@tblprefix\c!x\v!first\c!y\v!last\endcsname
+ \fi\fi
+ % special case: two rows and last row : two&first and two&last (round corners)
+ \ifnum\maximumrow=\plustwo\relax
+ \ifnum\positiverow=\maximumrow\relax \ifnum\positivecol=\plusone
+ \csname\@@tblprefix\c!x\v!first\c!y\v!two\endcsname
+ \fi\fi
+ \ifnum\positiverow=\maximumrow\relax \ifnum\positivecol=\maximumcol\relax
+ \csname\@@tblprefix\c!x\v!last\c!y\v!two\endcsname
+ \fi\fi
+ \fi
+ \ifnum\gettblcol\positiverow\positivecol=\maximumcol\relax % top span over whole width
+ \ifnum\positiverow=\plusone
+ \csname\@@tblprefix\c!x\v!one\c!y\v!first\endcsname
+ \fi
+ \ifnum\positiverow=\maximumrow\relax
+ \csname\@@tblprefix\c!x\v!one\c!y\v!last\endcsname
+ \fi
+ \fi
+ % header things
+ \ifnum#1>\noftblhdnxlines\else
+ \ifcsname\@@tblprefix\v!header\v!each \endcsname\csname\@@tblprefix\v!header\v!each \endcsname\fi
+ \ifcsname\@@tblprefix\v!header\positivecol\endcsname\csname\@@tblprefix\v!header\positivecol\endcsname\fi
+ \fi
+ % explicit cells
+ \ifcsname\@@tblprefix\c!x\positivecol\c!y\positiverow\endcsname\csname\@@tblprefix\c!x\positivecol\c!y\positiverow\endcsname\fi
+ \ifcsname\@@tblprefix\c!x\negativecol\c!y\negativerow\endcsname\csname\@@tblprefix\c!x\negativecol\c!y\negativerow\endcsname\fi
+ % local
+ \ifcsname\@@tblprefix\c!y++\positiverow\endcsname\csname\@@tblprefix\c!y++\positiverow\endcsname\fi
+ % done
+ \global\letcscsname\@@tblsplitafter\csname\@@tbl\@@tbl\c!after\endcsname
+ \relax}
+
+% we cannot use +n (checking on number/last/first would slow down too much)
+%
+% \setupTABLE[r] [2][color=red]
+% \setupTABLE[r] [-2][color=red]
+% \setupTABLE[c] [2][color=green]
+% \setupTABLE[c] [-2][color=green]
+% \setupTABLE[4] [4][color=blue]
+% \setupTABLE[-4][-4][color=blue]
+%
+% \bTABLE
+% \dorecurse{10}{\bTR \dorecurse{6}{\bTD xxx \eTD} \eTR}
+% \eTABLE
+
+\globallet\@@tblsplitafter\relax
+
+% split + page:
+%
+% \bTABLE[split=yes]
+% \bTR \bTD left \eTD\bTD right \eTD\eTR
+% \bTR[after=\page] \bTD left \eTD\bTD right \eTD\eTR
+% \bTR \bTD left \eTD\bTD right \eTD\eTR
+% \eTABLE
+
+% todo: protect counters
+
+\newcount\row \newcount\col
+\newcount\xrow \newcount\xcol
+\newcount\xxrow \newcount\xxcol
+\newcount\maximumrow \newcount\maximumcol \newcount\maximumrowspan
+ \newcount\currentcol
+\newcount\tblspn
+
+\def\parseTR[#1][#2]% [#2] is dummy that kills spaces / no #3 argument
+ {\currentcol\zerocount
+ \advance\maximumrow\plusone
+ \iffirstargument
+ \setvalue{\@@tblprefix\c!y++\number\maximumrow}{\getparameters[\@@tbl\@@tbl][#1]}% maybe also in mkii
+ \fi}
+
+\def\settblref#1#2{\expandafter\xdef\csname\@@tblprefix\number#1:\number#2:x\endcsname}
+\def\gettblref#1#2{\ifcsname\@@tblprefix\number#1:\number#2:x\endcsname\csname\@@tblprefix\number#1:\number#2:x\endcsname\fi}
+
+\long\def\parseTD[#1][#2]#3\eTD % [#2] is dummy that kills spaces
+ {\def\tblny{\tblnr}%
+ \def\tblnx{\tblnc}%
+ \let\tblnc\plusone
+ \let\tblnr\plusone
+ \let\tbln\currentcol
+ \let\tblm\empty
+ \iffirstargument
+ \getparameters[\@@tbl][#1]%
+ \fi
+ % goto first cell % NEW, n/m=cellnumber
+ \edef\@@tblnindeed{\csname\@@tbl\c!n\endcsname}%
+ \ifx\@@tblnindeed\empty
+ \global\advance\tblspn\tblnx\relax
+ \else\ifnum\@@tblnindeed=\currentcol\else
+ \scratchcounter\numexpr\@@tblnindeed-\currentcol+\minusone-\tblspn\relax
+ \ifnum\scratchcounter>\zerocount
+ \normalexpanded{\noexpand\parseTD[\c!nx=\the\scratchcounter,\c!n=,\c!m=,*sq=\v!no][]}\eTD
+ \fi
+ % can also be made faster
+ \getparameters[\@@tbl][\c!ny=\tblnr,\c!nx=\tblnc,nc=1,nr=1,#1,\c!n=,\c!m=]%
+ \fi\fi
+ \edef\@@tblmindeed{\csname\@@tbl\c!m\endcsname}%
+ \ifx\@@tblmindeed\empty \else
+ \ifnum\@@tblmindeed=\currentcol \else
+ \scratchcounter\numexpr\@@tblmindeed-\currentcol+\minusone-\tblspn\relax
+ \dorecurse\scratchcounter{\normalexpanded{\noexpand\parseTD[\c!n=,\c!m=][]}\eTD}%
+ % can be sped up
+ \getparameters[\@@tbl][\c!ny=\tblnr,\c!nx=\tblnc,nc=1,nr=1,#1,\c!n=,\c!m=]% kind of double, see prev
+ \fi
+ \fi
+ \doloop % skip over columns that result from earlier span
+ {\advance\currentcol\plusone
+ \doifnottbltag\maximumrow\currentcol\exitloop}%
+ % == \def\next{\advance\currentcol\plusone\doiftbltag\maximumrow\currentcol\next}\next
+ % fill r*c cells and set span
+ \ifnum\tblnx=\plusone
+ \ifnum\tblny=\plusone
+ \ifnum\currentcol>\maximumcol\relax
+ \maximumcol\currentcol
+ \fi
+ \else
+ \presetTBLcell
+ \fi
+ \else
+ \presetTBLcell
+ \fi
+ % set values
+ \lettbltag\maximumrow\currentcol\tblcell
+ \settblcol\maximumrow\currentcol{\number\tblnx}%
+ \settblrow\maximumrow\currentcol{\number\tblny}%
+ \settblref\maximumrow\currentcol{\ifcsname\@@tbl\c!action\endcsname\csname\@@tbl\c!action\endcsname\fi}%
+ % save text
+ \edef\celltag{{\number\maximumrow}{\number\currentcol}}%
+ \@EA\settbltxt\@EA\maximumrow\@EA\currentcol\@EA{\@EA\handleTBLcell\celltag[#1]{#3}}}
+
+\def\presetTBLcell
+ {\row\maximumrow
+ \col\currentcol
+ \dorecurse\tblny
+ {\col\currentcol
+ \settblcol\row\col{\number\tblnx}%
+ \ifnum\tblnx>\maximumrowspan\relax
+ \maximumrowspan\tblnx
+ \fi
+ \dorecurse\tblnx
+ {\lettbltag\row\col\tblnone
+ \advance\col\plusone}%
+ \advance\row\plusone}%
+ % check max column
+ \advance\col\minusone
+ \ifnum\col>\maximumcol\relax
+ \maximumcol\col
+ \fi}
+
+%D The usage of n and m:
+%D
+%D \startbuffer
+%D \bTABLE[width=3em]
+%D \bTR\bTD d1 \eTD\bTD[n=2] d2 \eTD\bTD[n=5] d5 \eTD\bTD[n=7] d7 \eTD\eTR
+%D \bTR\bTD f1 \eTD\bTD[n=4] f4 \eTD\bTD[n=5] f5 \eTD\bTD[n=7] f7 \eTD\eTR
+%D \eTABLE
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+%D
+%D \startbuffer
+%D \bTABLE[width=3em]
+%D \bTR\bTD d1 \eTD\bTD[m=2] d2 \eTD\bTD[m=5] d5 \eTD\bTD[m=7] d7 \eTD\eTR
+%D \bTR\bTD f1 \eTD\bTD[m=4] f4 \eTD\bTD[m=5] f5 \eTD\bTD[m=7] f7 \eTD\eTR
+%D \eTABLE
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+%D
+%D \startbuffer
+%D \bTABLE[frame=on]
+%D \bTR \bTH[nc=3] One \eTH \bTH[m=4] Four \eTH\eTR
+%D \bTR \bTD a \eTD\bTD b \eTD\bTD c \eTD\bTD d \eTD\eTR
+%D \eTABLE
+%D
+%D \bTABLE[frame=on]
+%D \bTR \bTH[nr=2] One \eTH \bTH[m=3] Three \eTH\eTR
+%D \bTR \bTD[m=3] a \eTD\bTD b \eTD\bTD c \eTD\bTD d \eTD\eTR
+%D \bTR \bTD[m=3] a \eTD\bTD b \eTD\bTD c \eTD\bTD d \eTD\eTR
+%D \eTABLE
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+
+\long\def\parseTH[#1]#2\eTH
+ {\parseTD[#1,\c!color=\tbltblheadcolor,\c!style=\tbltblheadstyle,\c!aligncharacter=\v!no]#2\eTD}
+
+%D new
+
+\long\def\parseTN[#1]#2\eTN
+ {\parseTD[#1]\digits#2\relax\eTD}
+
+%D Vit Zyka needed the option to create a distance between columns, so I
+%D added support for individual column distances.
+%D
+%D \startbuffer
+%D % \setupTABLE[c][each][distance=2em]
+%D \setupTABLE[c][1][distance=2em]
+%D \setupTABLE[c][2][distance=3em]
+%D
+%D \bTABLE
+%D \bTR \bTD test \eTD \bTD test \eTD \bTD test \eTD \eTR
+%D \bTR \bTD[nx=2] test \eTD \bTD test \eTD \eTR
+%D \bTR \bTD test \eTD \bTD[nx=2] test \eTD \eTR
+%D \eTABLE
+%D
+%D \bTABLE[option=stretch]
+%D \bTR \bTD test \eTD \bTD test \eTD \bTD test \eTD \eTR
+%D \bTR \bTD[nx=2] test \eTD \bTD test \eTD \eTR
+%D \bTR \bTD test \eTD \bTD[nx=2] test \eTD \eTR
+%D \eTABLE
+%D \stopbuffer
+%D
+%D \typebuffer \startlinecorrection \getbuffer \stoplinecorrection
+%D
+%D and he provided patches for the global left and right margin distances
+%D as well as the columndistance (although i changed the names -). Here
+%D is his testcase:
+%D
+%D \startbuffer
+%D \framed[offset=overlay]\bgroup
+%D \setupTABLE[column][2][align=left]%
+%D \setupTABLE[column][3][align=right]%
+%D \bTABLE[columndistance=2cm,leftmargindistance=.3cm,rightmargindistance=.5cm]
+%D \bTR \bTH[nc=3] Table head\eTH \eTR
+%D \bTR \bTD[nc=2] AB\eTD \bTD C\eTD \eTR
+%D \bTR \bTD[nc=2,align=left] AB\eTD \bTD C\eTD \eTR
+%D \bTR \bTD[nc=2,align=middle] AB\eTD \bTD C\eTD \eTR
+%D \bTR \bTD A\eTD \bTD B\eTD \bTD C\eTD \eTR
+%D \bTR \bTD Aa\eTD \bTD Bb\eTD \bTD Cccc\eTD \eTR
+%D \bTR \bTD[nc=3,align=middle] ABC\eTD \eTR
+%D \eTABLE
+%D \egroup
+%D \stopbuffer
+%D
+%D \typebuffer \startlinecorrection \getbuffer \stoplinecorrection
+
+\newtoks\TBLhead
+\newtoks\TBLnext
+\newtoks\TBLbody
+\newtoks\TBLfoot
+
+% to be done: head <raw> foot, dus state var
+
+\unexpanded\def\bTABLEhead{\dosingleempty\doTABLEhead} \let\eTABLEhead\relax
+\unexpanded\def\bTABLEnext{\dosingleempty\doTABLEnext} \let\eTABLEnext\relax
+\unexpanded\def\bTABLEbody{\dosingleempty\doTABLEbody} \let\eTABLEbody\relax
+\unexpanded\def\bTABLEfoot{\dosingleempty\doTABLEfoot} \let\eTABLEfoot\relax
+
+\long\def\doTABLEhead[#1]#2\eTABLEhead{\appendtoks\doTABLEsection[#1]{#2}\to\TBLhead}
+\long\def\doTABLEnext[#1]#2\eTABLEnext{\appendtoks\doTABLEsection[#1]{#2}\to\TBLnext}
+\long\def\doTABLEbody[#1]#2\eTABLEbody{\appendtoks\doTABLEsection[#1]{#2}\to\TBLbody}
+\long\def\doTABLEfoot[#1]#2\eTABLEfoot{\appendtoks\doTABLEsection[#1]{#2}\to\TBLfoot}
+
+\long\def\doTABLEsection[#1]#2%
+ {\def\setupTBLsection{\getparameters[\@@tbl\@@tbl][#1]}%
+ #2%
+ \let\setupTBLsection\relax}
+
+\let\pushTBL\relax
+\let\popTBL \relax
+
+\chardef\tblpass=0
+
+\def\presetallTABLEparameters% each odd|even level / can be sped up but only once per table
+ {\executeifdefined{\@@rawtblprefix\v!start\v!each}\relax
+ \executeifdefined{\@@rawtblprefix\v!start\v!oddeven\TBLlevel}\relax
+ \executeifdefined{\@@rawtblprefix\v!start\number\TBLlevel}\relax}
+
+\def\bTABLE
+ {\dosingleempty\dobTABLE}
+
+\def\dobTABLE[#1]%
+ {\pushTBL
+ % box not here
+ \bgroup
+ \TBLhead\emptytoks
+ \TBLnext\emptytoks
+ \TBLbody\emptytoks
+ \TBLfoot\emptytoks
+ \ifhmode\kern\zeropoint\fi % blocks \removeunwantedspaces: check this on icare handelingsschema
+ \resetcharacteralign % new
+ \getparameters
+ [\@@tbl\@@tbl]
+ [\c!align={\v!right,\v!broad,\v!high},#1]%
+ \hsize\tbltbltextwidth
+ \processaction
+ [\tbltblsplit]
+ [ \v!yes=>\enableTBLbreaktrue,
+ \v!repeat=>\enableTBLbreaktrue\multipleTBLheadstrue,
+ \v!auto=>\ifinsidesplitfloat\enableTBLbreaktrue\fi]
+ \processaction
+ [\tbltblheader]
+ [\v!repeat=>\multipleTBLheadstrue]%
+ \presetallTABLEparameters
+ \ExpandFirstAfter\processallactionsinset
+ [\tbltbloption]
+ [\v!stretch=>\autoTBLspreadtrue]%
+ \linewidth\tbltblrulethickness % needs to be frozen
+ \dontcomplain
+ \currentcol\zerocount
+ \maximumrowspan\plusone
+ \maximumcol\zerocount
+ \maximumrow\zerocount
+ \let\bTR\dobTR
+ \let\bTD\dobTD
+ \let\bTH\dobTH
+ \let\bTN\dobTN}
+
+\unexpanded\def\dobTR{\dodoubleempty\parseTR}
+\unexpanded\def\dobTD{\dodoubleempty\parseTD}
+\unexpanded\def\dobTH{\dodoubleempty\parseTH}
+\unexpanded\def\dobTN{\dodoubleempty\parseTN}
+
+% permits \expanded{\bTD ... \eTD}
+
+\unexpanded\def\eTR{\ignorespaces} % handy in case we use a macro to generate rows
+\unexpanded\def\eTD{\ignorespaces}
+\unexpanded\def\eTH{\ignorespaces}
+\unexpanded\def\eTN{\ignorespaces}
+
+\def\eTABLE % beware, we need to get rid of spurious spaces when in hmode
+ {% tricky and dirty order -)
+ \doifsometokselse\TBLhead % slow, better a flag
+ {\the\TBLhead
+ \edef\noftblheadlines{\number\maximumrow}%
+ \doifsometokselse\TBLnext
+ {\the\TBLnext
+ \edef\noftblnextlines{\number\numexpr\maximumrow-\noftblheadlines\relax}}%
+ {\let\noftblnextlines\zerocount}% was 1
+ \edef\noftblhdnxlines{\number\maximumrow}}
+ {\let\noftblheadlines\zerocount % was 1
+ \let\noftblnextlines\zerocount
+ \let\noftblhdnxlines\zerocount}%
+ \the\TBLbody
+ \the\TBLfoot
+ \removeunwantedspaces % only if hmode
+ % finish cells
+ \dorecurse\maximumrow
+ {\row\recurselevel\relax
+ \dorecurse\maximumcol
+ {\col\recurselevel\relax
+ \doifnottbltag\row\col
+ {\xxcol\col
+ \xxrow\row
+ \xrow\row
+ \doloop
+ {\xcol\col
+ \doloop
+ {\doifelsetbltag\xrow\xcol \exitloop
+ {\advance\xcol\plusone
+ \ifnum\xcol>\maximumcol\relax \exitloop \fi}}%
+ \doifelsetbltag\xrow\xcol \exitloop
+ {\xxrow\xrow \xxcol\xcol \advance\xrow\plusone
+ \ifnum\xrow>\maximumrow \exitloop \fi}}%
+ \ifnum\xxrow>\maximumrow\xxrow\maximumrow\fi
+ \ifnum\xxcol>\maximumcol\xxcol\maximumcol\fi
+ \xxrow\numexpr\xxrow-\row+\plusone\relax
+ \xxcol\numexpr\xxcol-\col+\plusone\relax
+ \xrow\row
+ \dorecurse\xxrow
+ {\xcol\col \settblcol\xrow\xcol{\number\xxcol}%
+ \dorecurse\xxcol
+ {\lettbltag\xrow\xcol\tblnone \advance\xcol\plusone}%
+ \advance\xrow\plusone}%
+ \lettbltag\row\col\tblcell
+ \settblcol\row\col{\the\xxcol}%
+ \settblrow\row\col{\the\xxrow}%
+ \ifautoTBLemptycell
+ \edef\celltag{{\number\row}{\number\col}}%
+ \@EA\settbltxt\@EA\row\@EA\col\@EA{\@EA\handleTBLcell\celltag[]{\strut}}%
+ \fi}}}%
+ % to be sure
+ \dorecurse\maximumrow
+ {\row\recurselevel\relax
+ \dorecurse\maximumcol
+ {\col\recurselevel\relax
+ \doiftblrow\row\col
+ {\scratchcounter\numexpr\maximumrow-\row+\plusone\relax
+ \ifnum\gettblrow\row\col>\scratchcounter
+ \settblrow\row\col{\the\scratchcounter}%
+ \fi}%
+ \lettblht\row\col\zeropoint
+ \lettblwd\row\col\zeropoint
+ \doifnottblcol\row\col{\lettblcol\row\col\zerocount}%
+ \doifnottbltag\row\col{\lettbltag\row\col\tblnone}}}%
+ % check and do
+ \ifcase\maximumcol\else
+ \startTBLprocessing
+ \begTBL
+ \dorecurse\maximumrow
+ {\bTBL
+ \row\recurselevel\relax
+ \dorecurse\maximumcol
+ {\col\recurselevel\relax
+ \normalexpanded{\noexpand\doTBL{\number\row}{\number\col}}}%
+ \eTBL}%
+ \removeunwantedspaces % only if hmode
+ \endTBL
+ \stopTBLprocessing
+ % wrong ! ! ! better to have an auto-offset-overlay
+ % \ifnum\TBLlevel>1
+ % \vskip-\strutdp
+ % \fi
+ \fi
+ \egroup
+ \popTBL}
+
+\let\startTBLprocessing\relax
+\let\stopTBLprocessing \relax
+
+\newcount\prelocatedTBLrows % \prelocateTBLrows{1000} may speed up large tables
+
+\def\bTBL{\tblrowtoks\emptytoks}
+\def\eTBL{\tbltoks\@EA\@EA\@EA{\@EA\the\@EA\tbltoks\@EA\begintblrow\the\tblrowtoks\endtblrow}}%
+
+\def\prelocateTBLerror
+ {\writestatus\m!systems{fatal error: use \string\prelocateTBLrows\space to increase table memory (now: \number\prelocatedTBLrows)}}
+
+\def\prelocateTBLrows#1% we start at zero so we have one to much, better play safe anyway
+ {\dostepwiserecurse\prelocatedTBLrows{#1}\plusone{\expandafter\newtoks\csname tbl:\recurselevel\endcsname}%
+ \def\bTBL
+ {\ifnum\tblrow<\prelocatedTBLrows\relax
+ \@EA\let\@EA\tblrowtoks\csname tbl:\the\tblrow\endcsname\tblrowtoks\emptytoks
+ \else
+ \prelocateTBLerror
+ \fi}%
+ \def\eTBL
+ {\tbltoks\@EA\@EA\@EA{\@EA\the\@EA\tbltoks\@EA\begintblrow\@EA\the\csname tbl:\the\tblrow\endcsname\endtblrow}}%
+ \global\prelocatedTBLrows#1\relax}
+
+% \prelocateTBLrows{1000} % may speed up large tables
+
+% We use aligments to handle the empty (skipped) columns, so
+% that we don't have to (re|)|calculate these.
+
+\def\skiptblcol
+ {\global\advance\tblcol\plusone}
+
+\def\nexttblcol
+ {\global\advance\tblcol\plusone
+ \kern\tbltblcolumndistance
+ &}
+
+\def\spantblcol
+ {\span}
+
+\newcount\tblrow
+\newcount\tblcol
+
+\let\savedtblrow\!!zerocount
+\let\savedtblcol\!!zerocount
+
+\def\begintblrow
+ {\noalign
+ {\global\advance\tblrow\plusone
+ \global\tblcol\zerocount
+ \global\tblspn\zerocount}%
+ \nexttblcol
+ \kern\dimexpr\tbltblleftmargindistance-\tbltblcolumndistance\relax}
+
+\def\endtblrow
+ {\kern\dimexpr\tbltblrightmargindistance-\tbltblcolumndistance\relax
+ \crcr
+ \noalign
+ {\nointerlineskip
+ \ifnum\gettblnob\tblrow=\zerocount
+ \allowbreak
+ \fi
+ \bgroup % protect local vars
+ \@@tblsplitafter
+ \egroup
+ \bgroup % protect local vars
+ \scratchcounter\numexpr\tblrow+\plusone\relax
+ \ifnum\scratchcounter>\noftblhdnxlines\relax
+ \ifnum\scratchcounter<\maximumrow\relax
+ \doifsomething\tbltblspaceinbetween{\blank[\tbltblspaceinbetween]}%
+ \fi
+ \fi
+ \egroup}}
+
+\def\begintbl
+ {\global\tblspn\zerocount
+ \global\tblcol\zerocount
+ \global\tblrow\zerocount
+ \global\advance\tblrow\minusone
+ \tabskip\zeropoint
+ \halign\bgroup
+ \registerparoptions % new
+ \ignorespaces##\unskip&&\ignorespaces##\unskip\cr}
+
+\def\endtbl
+ {\egroup}
+
+\setvalue{\tblnone TBL}#1#2%
+ {\spanTBL{#1}{#2}}
+
+\setvalue{\tblcell TBL}#1#2%
+ {\tblrowtoks\expandafter{\the\tblrowtoks\makeTBL #1 #2 }% space delimited -> less tokens
+ \spanTBL{#1}{#2}}
+
+\def\spanTBL#1#2%
+ {\scratchcounter\gettblcol{#1}{#2}\relax
+ \ifnum\scratchcounter>\zerocount
+ \advance\scratchcounter \minusone
+ \dorecurse\scratchcounter{\tblrowtoks\expandafter{\the\tblrowtoks\spantblcol}}%
+ \dorecurse\scratchcounter{\tblrowtoks\expandafter{\the\tblrowtoks\skiptblcol}}%
+ \tblrowtoks\expandafter{\the\tblrowtoks\nexttblcol}%
+ \fi}
+
+\def\doTBL#1#2%
+ {\csname\gettbltag{#1}{#2}TBL\endcsname{#1}{#2}}
+
+\def\begTBL
+ {\global\tblspn\zerocount
+ \global\tblrow\zerocount
+ \global\tblcol\zerocount
+ \chardef\tblpass\zerocount
+ \tbltoks\emptytoks}
+
+\def\flushtbltoks{\begintbl\the\tbltoks\endtbl}
+
+\def\domakeTBLone#1 #2 %
+ {\gettbltxt{#1}{#2}}%
+
+\def\domakeTBLtwo#1 #2 % meer in cellD
+ {\scratchdimen\zeropoint
+ \scratchcounter\tblcol
+ \!!counta\gettblcol{#1}{#2}\relax
+ \dorecurse\!!counta
+ {\advance\scratchdimen\dimexpr\gettblwid\scratchcounter+\tbltblcolumndistance\relax
+ \ifnum\recurselevel<\!!counta \advance\scratchdimen \gettbldis\scratchcounter\fi
+ \advance\scratchcounter\plusone}%
+ \edef\widthTBL{\the\dimexpr\scratchdimen-\tbltblcolumndistance\relax}%
+ \setbox\scratchbox\hbox{\gettbltxt{#1}{#2}}%
+ \settblht{#1}{#2}{\the\ht\scratchbox}%
+ \settblwd{#1}{#2}{\the\wd\scratchbox}%
+ \ifdim\ht\scratchbox>\gettblhei{#1}\relax
+ \settblhei{#1}{\the\ht\scratchbox}%
+ \fi}%
+
+\def\domakeTBLthree#1 #2 %
+ {% height
+ \!!counta \gettblcol{#1}{#2}\relax
+ \!!countb \gettblrow{#1}{#2}\relax
+ \!!heighta\gettblht {#1}{#2}\relax
+ \scratchdimen\zeropoint
+ \ifnum\!!counta=\maximumcol\relax
+ % case: nc=maxcolumns
+ \else
+ \scratchcounter#1\relax
+ \dorecurse\!!countb
+ {\advance\scratchdimen
+ \gettblhei\scratchcounter
+ \advance\scratchcounter\plusone}%
+ \ifdim\scratchdimen<\!!heighta\relax
+ \scratchdimen\!!heighta
+ \fi
+ \fi
+ \edef\heightTBL{\the\scratchdimen}%
+ % width
+ \scratchdimen\zeropoint
+ \scratchcounter\tblcol
+ \dorecurse\!!counta
+ {\advance\scratchdimen\dimexpr\gettblwid\scratchcounter+\tbltblcolumndistance\relax
+ \ifnum\recurselevel<\!!counta \advance\scratchdimen \gettbldis\scratchcounter\fi
+ \advance\scratchcounter\plusone}%
+ \edef\widthTBL{\the\dimexpr\scratchdimen-\tbltblcolumndistance\relax}%
+ % cell
+ \setbox\scratchbox\hbox{\gettbltxt{#1}{#2}}%
+ \ifnum\!!counta=\maximumcol\relax
+ % case: nc=maxcolumns
+ \else
+ \scratchdimen\gettblhei{#1}%
+ \setbox\scratchbox\hbox
+ {\lower\ht\scratchbox\hbox{\raise\scratchdimen\box\scratchbox}}%
+ \ht\scratchbox\scratchdimen
+ \fi
+ \dp\scratchbox\zeropoint
+ \edef\!!stringa{\gettblref{#1}{#2}}%
+ \ifx\!!stringa\empty
+ \box\scratchbox
+ \else
+ \normalexpanded{\noexpand\directgotobox{\box\scratchbox}[\!!stringa]}% to be checked
+ \fi
+ \box\scratchbox}
+
+\def\inTBLcell#1#2% hm, do we need #1 #2 ? we use tblcol anyway
+ {\ExpandBothAfter\doifinsetelse\localwidth{\v!fit,\v!broad} % user set
+ {}
+ {\scratchdimen\gettblaut\tblcol\relax
+ \ifdim\localwidth>\scratchdimen
+ \settblaut\tblcol{\the\dimexpr\localwidth\relax}%
+ \fi}}%
+
+\def\endTBL
+ {\setbox\scratchbox\hbox
+ {\localframed
+ [\@@tbl\@@tbl]
+ [\c!frame=\v!off,\c!background=,\c!align=\v!no]
+ {\strut}}%
+ \edef\minimalcellheight{\the\ht\scratchbox}%
+ \dorecurse\maximumcol
+ {\lettblaut\recurselevel\zeropoint
+ % new
+ \xcol\recurselevel\relax
+ \dorecurse\maximumrow
+ {\lettblwd\recurselevel\xcol\zeropoint
+ \lettblht\recurselevel\xcol\zeropoint}%
+ % till here
+ \lettblwid\recurselevel\zeropoint
+ \lettbldis\recurselevel\zeropoint}%
+ \dorecurse\maximumrow
+ {\lettblhei\recurselevel\maxdimen}%
+ \chardef\tblpass\plusone
+ \let\makeTBL\domakeTBLone
+ \let\handleTBLcell\dohandleTBLcellA
+ \setbox0\vbox{\trialtypesettingtrue \flushtbltoks}%
+% \setbox\scratchbox\vbox{\trialtypesettingtrue \flushtbltoks}%
+ \lettbldis\maximumcol\zeropoint
+ \ifautoTBLspread
+ % experimental, stretch non fixed cells to \hsize
+ \checktblwidthsone % trial run
+ \checktblwidthstwo % real run
+ \stretchtblwidths
+ \let\handleTBLcell\dohandleTBLcellB
+ \setbox\scratchbox\vbox{\trialtypesettingtrue \flushtbltoks}%
+ \else\ifdim\wd0>\hsize
+ \ifautoTBLhsize
+ \checktblwidthsone % trial run
+ \checktblwidthstwo % real run
+ \let\handleTBLcell\dohandleTBLcellB
+ \setbox\scratchbox\vbox{\trialtypesettingtrue \flushtbltoks}%
+ \fi
+ \else\ifautoTBLrowspan\ifnum\maximumrowspan>1 % max ?
+ % added jan 2002 because nx=* did no longer work
+ \edef\savedhsize{\the\hsize}%
+ \hsize\wd0\relax % new per 17/04/2006
+ \checktblwidthsone % trial run
+ \checktblwidthstwo % real run
+ \hsize\savedhsize
+ %
+ \let\handleTBLcell\dohandleTBLcellC
+ \setbox\scratchbox\vbox{\trialtypesettingtrue \flushtbltoks}%
+ \fi\fi\fi\fi
+ \let\handleTBLcell\dohandleTBLcellD
+ \chardef\tblpass\plustwo
+ \let\makeTBL\domakeTBLtwo
+ \setbox\scratchbox\vbox{\trialtypesettingtrue \flushtbltoks}%
+ \checktblheightsone
+ \checktblheightstwo
+ \let\handleTBLcell\dohandleTBLcellE
+ \chardef\tblpass\plusthree
+ \let\makeTBL\domakeTBLthree
+ \ifnum\TBLlevel>\plusone
+ \@EA\notsplittblbox
+ \else\ifenableTBLbreak
+ \@EAEAEA\splittblbox
+ \else
+ \@EAEAEA\notsplittblbox
+ \fi\fi{\flushtbltoks}}
+
+\def\stretchtblwidths % more variants, e.g. a max to \dimend
+ {\ifcase\maximumcol\else % else division by zero
+ \!!dimend\zeropoint
+ \!!dimene\hsize
+ \dorecurse\maximumcol
+ {\advance\!!dimend\dimexpr\gettblwid\recurselevel+\tbltblcolumndistance\relax
+ \advance\!!dimene-\gettbldis\recurselevel}%
+ \advance\!!dimend\dimexpr-\tbltblcolumndistance+\tbltblleftmargindistance+\tbltblrightmargindistance\relax
+ % distribute width (stretch)
+ \ifdim\!!dimend<\!!dimene
+ \advance\!!dimend-\!!dimene
+ \!!dimend-\!!dimend
+ \divide\!!dimend\maximumcol
+ \dorecurse\maximumcol
+ {\settblwid\recurselevel{\the\dimexpr\gettblwid\recurselevel+\!!dimend\relax}}%
+ \fi
+ \fi}
+
+\newbox\finaltblbox
+
+\def\notsplittblbox#1%
+ {\setbox\finaltblbox\vbox{#1}%
+ \postprocessTABLEbox\finaltblbox
+ \beforeTABLEbox
+ \box\finaltblbox
+ \afterTABLEbox}
+
+\def\splittblbox#1%
+ {\ifinsidesplitfloat
+ \donetrue
+ \else\ifinsidefloat
+ \donefalse
+ \else
+ \donetrue
+ \fi\fi
+ \ifdone
+ \executeifdefined{dosplittblbox\tbltblsplitmethod}\dosplittblbox{#1}%
+ \else
+ \notsplittblbox{#1}%
+ \fi}
+
+\newbox\TABLEsplitbox % public, don't change
+
+\let\extratblsplitheight\zeropoint % additional space taken by before/afterTABLEsplitbox
+
+\def\dosplittblbox#1%
+ {\resettsplit
+ \def\tsplitminimumfreelines{2}%
+ \def\tsplitminimumfreespace{\dimexpr\extratblsplitheight+\tbltblsplitoffset\relax}%
+ \def\tsplitbeforeresult {\beforeTABLEsplitbox}%
+ \def\tsplitafterresult {\afterTABLEsplitbox}%
+ \def\tsplitafter {\@@tblsplitafter}%
+ \setbox\tsplitcontent\vbox{#1}%
+ \ifmultipleTBLheads
+ \dorecurse\noftblheadlines
+ {\setbox\scratchbox\vsplit\tsplitcontent to \lineheight
+ \setbox\tsplithead\vbox{\unvcopy\tsplithead\unvcopy\scratchbox}}%
+ \dorecurse\noftblnextlines
+ {\setbox\scratchbox\vsplit\tsplitcontent to \lineheight
+ \setbox\tsplitnext\vbox{\unvcopy\tsplitnext\unvcopy\scratchbox}}%
+ \fi
+ \doifsomething\tbltblspaceinbetween
+ {\def\tsplitinbetween{\blank[\tbltblspaceinbetween]}}%
+ \def\postprocesstsplit{\postprocessTABLEsplitbox{\box\tsplitresult}}%
+ \handletsplit}
+
+% ! ! ! ! TODO: naast \postprocessTABLEsplitbox ook evt \postprocessTABLEbox voor niet split
+
+\let\postprocessTABLEsplitbox\gobbleoneargument
+\let\postprocessTABLEbox \gobbleoneargument
+
+\let\beforeTABLEsplitbox\relax
+\let\afterTABLEsplitbox \relax
+\let\beforeTABLEbox \relax
+\let\afterTABLEbox \relax
+
+\def\checktblwidthsone{\dochecktblwidths0} % 0 = trial run
+\def\checktblwidthstwo{\dochecktblwidths1} % 1 = real run
+
+\def\dochecktblwidths#1%
+ {\iftraceTABLE\showtblwids{B#1}\fi
+ \!!counta\zerocount
+ \!!dimena\dimexpr\hsize-\tbltblleftmargindistance-\tbltblrightmargindistance-\tbltblcolumndistance\relax
+ \dorecurse\maximumcol
+ {\scratchdimen\gettblaut\recurselevel\relax
+ \advance\!!dimena-\gettbldis\recurselevel\relax
+ \ifdim\scratchdimen>\zeropoint\relax
+ \advance\!!dimena -\scratchdimen
+ \else
+ \scratchdimen\gettblwid\recurselevel\relax
+ \ifdim\scratchdimen>\tbltblmaxwidth\relax
+ \ifcase#1\else\lettblwid\recurselevel\zeropoint\fi
+ \advance\!!counta \plusone
+ \else
+ \ifdim\scratchdimen>\zeropoint\relax
+ \advance\!!dimena -\scratchdimen
+ \else
+ % eigenlijk moet dit alleen als de kolom wordt overspannen door een
+ % vorige, maw extra dubbele loop en status var
+ \advance\!!counta \plusone
+ \fi
+ \fi
+ \fi}%
+ \ifcase\!!counta \else \divide\!!dimena \!!counta \fi
+ \dorecurse\maximumcol
+ {\scratchdimen\gettblwid\recurselevel\relax
+ \ifcase#1\relax
+ \ifdim\scratchdimen<\!!dimena % take natural width
+ \settblaut\recurselevel{\the\scratchdimen}%
+ \fi
+ \else
+ \ifdim\scratchdimen=\zeropoint % auto set width
+ \settblwid\recurselevel{\the\!!dimena}%
+ \fi
+ \fi}%
+ \iftraceTABLE\showtblwids{E#1}\fi}
+
+\newcount\xrowTBL
+\newcount\xcolTBL
+\newcount\xxrowTBL
+
+% dikke arg naar recurse wegwerken
+
+\def\dochecktblheightsone
+ {\!!countb\gettblrow\xrowTBL\xcolTBL\relax
+ % check row span
+ \ifnum\!!countb>\plusone
+ % current height in row
+ \dimen0=\gettblht\xrowTBL\xcolTBL
+ % find nearest height in row
+ \dimen2=\zeropoint
+ \dorecurse\maximumcol
+ {\ifnum\recurselevel=\xcolTBL\else
+ \doiftblrow\xrowTBL\recurselevel
+ {\!!countc=\gettblrow\xrowTBL\recurselevel\relax
+ \ifnum\!!countc=\plusone
+ \dimen4=\gettblht\xrowTBL\recurselevel\relax
+ \ifdim\dimen2<\dimen4
+ \dimen2=\dimen4
+ \fi
+ \fi}%
+ \fi}%
+ \xxrowTBL\xrowTBL
+ % calculate cummulative height
+ \dimen4=\dimen2
+ \!!countc\xrowTBL
+ \advance\!!countc\minusone
+ \dorecurse\!!countb
+ {\ifnum\xxrowTBL=\xrowTBL\else
+ \advance\dimen4 \gettblhei\xxrowTBL
+ \fi
+ \ifnum\recurselevel=\!!countb\else
+ \settblnob\!!countc
+ \advance\!!countc\plusone
+ \fi
+ \advance\xxrowTBL\plusone}%
+ % distribute overshoot equally
+ \ifdim\dimen4<\dimen0
+ \advance\dimen0 -\dimen4
+ \divide\dimen0 \!!countb
+ \xxrowTBL\xrowTBL
+ \settblhei\xrowTBL{\the\dimen2}%
+ \dorecurse\!!countb
+ {\dorecurse\maximumcol
+ {\ifnum\recurselevel=\xcolTBL\else
+ \scratchdimen\dimexpr\gettblht\xxrowTBL\recurselevel+\dimen0\relax
+ \settblht\xxrowTBL\recurselevel{\the\scratchdimen}%
+ \ifdim\gettblhei\xxrowTBL<\scratchdimen
+ \settblhei\xxrowTBL{\the\scratchdimen}%
+ \fi
+ \fi}%
+ \advance\xxrowTBL\plusone}%
+ \else\ifdim\dimen4>\dimen0
+ \settblhei\xrowTBL{\the\dimen2}%
+ \fi\fi
+ \fi}
+
+\def\checktblheightsone
+ {\dorecurse\maximumrow
+ {\xrowTBL\recurselevel\relax
+ \dorecurse\maximumcol
+ {\xcolTBL\recurselevel\relax
+ \doiftblrow\xrowTBL\xcolTBL\dochecktblheightsone}}}
+
+\def\checktblheightstwo
+ {}
+
+\def\showtblwids#1%
+ {\vbox
+ {\forgetall\tttf[#1]\dorecurse\maximumcol
+ {\scratchdimen\gettblwid\recurselevel\relax
+ [\recurselevel:\the\scratchdimen]}}}
+
+\def\TBLcharalign
+ {\doifelse\tbltblaligncharacter\v!yes
+ \doTBLcharalign\gobbleoneargument}
+
+\long\def\doTBLcharalign#1#2% column data
+ {\edef\alignmentclass{#1}%
+ \edef\alignmentcharacter{\tbltblalignmentcharacter}%
+ \ifcase\tblpass\or
+ \setfirstpasscharacteralign\checkalignment{#2}% {\strut#2\unskip}%
+ \fi % force hsize, so always a second
+ \setsecondpasscharacteralign \checkalignment{#2}% {\strut#2\unskip}%
+ \ignorespaces}
+
+% new, needed for icare first col of 'doeltabel', experimental
+
+\long\def\dohandleTBLcellA#1#2[#3]#4% grouping added ! ! !
+ {\bgroup
+ \setupTBLcell{#1}{#2}%
+ \setbox\scratchbox\hbox
+ {\scratchdimen\tbltbldistance\relax
+ \ifdim\scratchdimen>\gettbldis{#2}\relax
+ \settbldis{#2}{\the\scratchdimen}%
+ \fi
+ \localframed
+ [\@@tbl\@@tbl]
+ [#3,\c!background=,\c!frame=\v!off]% 25% faster
+ {\bTBLCELL\TBLcharalign{#2}{#4}\eTBLCELL\inTBLcell{#1}{#2}}}%
+ \scratchdimen\gettblwid\tblcol\relax
+ \ifdim\wd\scratchbox>\scratchdimen
+ \ifsqueezeTBLspan
+ \ifautosqueezeTBLspan
+ \doifinsetelse\tbltblwidth{\v!fit,\v!fixed,\v!broad,\v!local}
+ \donetrue \donefalse
+ \else
+ \donetrue
+ \fi
+ \ifdone % brr, 0
+ \ifnum\number\gettblcol{#1}{#2}>\plusone \settblspn\tblcol\fi
+ \fi
+ \fi
+ \doifelsetblspn\tblcol
+ \donothing
+ {\ifdim\gettblwid\tblcol<\wd\scratchbox
+ \settblwid\tblcol{\the\wd\scratchbox}%
+ \fi}% auto set
+ \fi
+ \scratchcounter\numexpr\tblrow+\plusone\relax
+ \scratchdimen\gettblhei\scratchcounter\relax
+ \ifdim\ht\scratchbox<\scratchdimen
+ \settblhei\scratchcounter{\the\ht\scratchbox}% auto set
+ \fi
+ \settblht{#1}{#2}{\the\ht\scratchbox}%
+ \settblwd{#1}{#2}{\the\wd\scratchbox}%
+ \ifautoTBLcheckwidth
+ \ifdim\wd\scratchbox<.75\hsize
+ \ifdim\ht\scratchbox>2\openlineheight % honor width since this
+ \scratchdimen\gettblaut\tblcol\relax % can be a figure or so
+ \ifdim\scratchdimen=\zeropoint
+ % side effect: when width is set to 0pt,
+ % we can force a span that fits the sum of spans widths
+ \settblaut\tblcol{\the\scratchdimen}%
+ \else\ifdim\wd\scratchbox>\scratchdimen
+ % unless span
+ \settblaut\tblcol{\the\wd\scratchbox}%
+ % to be translated
+ \writestatus\m!TABLE
+ {no auto width in (\number#1,\number#2)\space\the\wd\scratchbox/\the\hsize}%
+ \fi\fi
+ \fi
+ \fi
+ \fi
+ \setbox2\null
+ \wd2\wd\scratchbox \ht2\ht\scratchbox \dp2\dp\scratchbox
+ \box2
+ \egroup}
+
+\long\def\dohandleTBLcellBC#1#2#3[#4]#5%
+ {\setbox\scratchbox\hbox
+ {\setupTBLcell{#2}{#3}%
+ \localframed
+ [\@@tbl\@@tbl]
+ [#4,#1,\c!frame=\v!off,\c!background=]
+ {\bTBLCELL#5\eTBLCELL}}%
+ \setbox2\null
+ \wd2\wd\scratchbox \ht2\ht\scratchbox \dp2\dp\scratchbox
+ \ifautoTBLrowspan
+ \scratchcounter\numexpr\tblrow+\plusone\relax
+ \doiftblrow\scratchcounter\tblcol
+ {\scratchdimen\gettblhei\scratchcounter\relax % moved inside test
+ \ifnum\gettblrow\scratchcounter\tblcol>\plusone \ifdim\ht\scratchbox>\scratchdimen
+ \scratchdimen-\scratchdimen \advance\scratchdimen -\ht\scratchbox
+ \ht2\scratchdimen
+ \fi \fi}%
+ \fi
+ \box2 }
+
+\long\def\dohandleTBLcellB#1#2[#3]#4%
+ {\scratchdimen\gettblaut\tblcol\relax
+ \ifdim\scratchdimen>\zeropoint\relax
+ \let\tblwidthkey\c!width
+ \edef\tblwidth{\the\scratchdimen}%
+ \else
+ \scratchdimen\gettblwid\tblcol\relax
+ \ifdim\scratchdimen>\zeropoint\relax
+ \ifnum\gettblcol{#1}{#2}=\maximumcol\relax
+ \scratchdimen\hsize
+ \fi
+ \let\tblwidthkey\c!width
+ \edef\tblwidth{\the\scratchdimen}%
+ \else
+ \let\tblwidthkey\s!unknown
+ \let\tblwidth\zeropoint
+ \fi
+ \fi
+ \dohandleTBLcellBC{\tblwidthkey=\tblwidth}{#1}{#2}[#3]{\TBLcharalign{#2}{#4}}}
+
+\long\def\dohandleTBLcellC
+ {\dohandleTBLcellBC{}}
+
+\long\def\dohandleTBLcellD#1#2[#3]#4%
+ {\setupTBLcell{#1}{#2}%
+ \bgroup
+ \localframed
+ [\@@tbl\@@tbl]
+ [#3,\c!width=\widthTBL,\c!background=,\c!frame=\v!off]% 25% faster
+ {\bTBLCELL\TBLcharalign{#2}{#4}\eTBLCELL}%
+ \egroup}
+
+\long\def\dohandleTBLcellE#1#2[#3]#4%
+ {\setupTBLcell{#1}{#2}%
+ \getparameters[\@@tbl\@@tbl][#3]% to get the color right, the way we
+ \color % handle color here prevents interference due to whatsit nodes
+ [\tbltblcolor] % as well as permits local colors to take precedence
+ {\ifdim\heightTBL=\zeropoint\relax % case: nc=maxcolumns
+ \localframed
+ [\@@tbl\@@tbl]
+ [\c!color=,\c!width=\widthTBL]
+ {\bTBLCELL\TBLcharalign{#2}{#4}\eTBLCELL}%
+ \else
+ \localframed
+ [\@@tbl\@@tbl]
+ [\c!color=,\c!width=\widthTBL,\c!height=\heightTBL]
+ {\bTBLCELL\TBLcharalign{#2}{#4}\eTBLCELL}%
+ \fi}%
+ \hskip\gettbldis{#2}}
+
+\presetlocalframed
+ [\@@tbl\@@tbl]
+
+\setupTABLE [%
+ \c!frameoffset=.5\linewidth,
+ \c!backgroundoffset=\v!frame,
+ \c!framecolor=\s!black,
+ \c!width=\v!fit,
+ \c!height=\v!fit,
+ \c!autowidth=\v!yes,
+ \c!rulethickness=\linewidth,
+ \c!strut=\v!yes,
+ \c!autostrut=\v!no,
+ %
+ \c!color=,
+ \c!style=,
+ \c!headstyle=\v!bold,
+ \c!headcolor=,
+ \c!aligncharacter=\v!no,
+ \c!alignmentcharacter={,},
+ \c!option=, % \v!stretch
+ \c!header=,
+ \c!spaceinbetween=,
+ \c!maxwidth=8em,
+ \c!textwidth=\hsize,
+ \c!split=\v!auto,
+ \c!splitoffset=0pt,
+ \c!distance=\zeropoint, % individual column
+ \c!columndistance=\zeropoint, % each column (whole table)
+ \c!leftmargindistance=\zeropoint, % whole table
+ \c!rightmargindistance=\zeropoint,% whole table
+ \c!left=,
+ \c!right=,
+ \c!splitmethod=a%
+]
+
+%D We have already prepared the previous macros for nesting,
+%D so we only have to pop in the right ones:
+
+%D New:
+
+\def\pushTBLparameters
+ {\globalpushmacro\TBLlevel
+ \ifcase\tblpass
+ % we're just after \bTABLE
+ \else\ifnum\TBLlevel>\zerocount
+ \doglobal\increment\TBLlevel\relax
+ \fi\fi}
+
+\def\popTBLparameters
+ {\globalpopmacro\TBLlevel}
+
+\def\pushTBL
+ {\ifnum\TBLlevel=\zerocount
+ \global\advance\currenttbl\plusone
+ \fi
+ \doglobal\increment\TBLlevel\relax
+ \ifnum\TBLlevel>\plusone
+ \resetallTABLEparameters
+ % we need a proper count push/pop
+ \xdef\savedtblrow{\the\tblrow}\globalpushmacro\savedtblrow
+ \xdef\savedtblcol{\the\tblcol}\globalpushmacro\savedtblcol
+ \else
+ \global\intabletrue
+ \fi}
+
+\def\popTBL
+ {\ifnum\TBLlevel>\plusone
+ \globalpopmacro\savedtblrow\global\tblrow\savedtblrow
+ \globalpopmacro\savedtblcol\global\tblcol\savedtblcol
+ \else
+ \global\intablefalse
+ \fi
+ \doglobal\decrement\TBLlevel\relax}
+
+% \bgroup
+% \setupTABLE[column][1][aligncharacter=yes, alignmentcharacter={,}]
+% \bTABLE
+% \bTR \bTD 1,2 \eTD \bTD 2 \eTD \eTR
+% \bTR \bTD 11,2 \eTD \bTD
+% {\setupTABLE[column][1][aligncharacter=yes, alignmentcharacter={,}]
+% \bTABLE
+% \bTR \bTD 1,2 \eTD \bTD 2 \eTD \eTR
+% \bTR \bTD 11,22 \eTD \bTD 2 \eTD \eTR
+% \bTR \bTD 11,2 \eTD \bTD 2 \eTD \eTR \eTABLE} \eTD \eTR
+% \bTR \bTD 11,22 \eTD \bTD 2 \eTD \eTR
+% \eTABLE
+% \egroup
+
+\newconditional\resetTABLEmode \settrue\resetTABLEmode
+
+\def\resetallTABLEparameters% moet genest wel werken
+ {\ifnum\TBLlevel>\plusone % in ieder geval
+ \ifconditional\resetTABLEmode
+% \presetlocalframed % breedte hoogte diepte offset
+% [\@@tbl\@@tbl]% % achtergrond, achtergrondraster, achtergrondkleur
+ % not ok yet
+ \setupTABLE [%
+ \c!frameoffset=.5\linewidth,
+ \c!backgroundoffset=\v!frame,
+ \c!framecolor=\s!black,
+ \c!width=fit,
+ \c!height=fit,
+\c!autowidth=\v!yes,
+% \c!rulethickness=\linewidth,
+ \c!strut=\v!no,
+\c!strut=\v!yes, % needed for mathml, but ... maybe we need another resetTABLEmode
+\c!autostrut=\v!no,
+ \c!color=,
+ \c!style=,
+ \c!headstyle=,
+ \c!headcolor=,
+ \c!aligncharacter=\v!no,
+ \c!alignmentcharacter={,},
+ \c!maxwidth=8em]%
+ \else
+ \setupTABLE
+ [\c!width=\v!fit,
+ \c!height=\v!fit]%
+ \fi
+ \fi}
+
+%D Spacing:
+%
+% \starttabulate
+% \NC text \NC text \NC \NR
+% \TB[small]
+% \NC text \NC text \NC \NR
+% \TB[4*big]
+% \NC text \NC text \NC \NR
+% \stoptabulate
+%
+% \starttable[|||]
+% \VL text \VL text \VL \AR
+% \TB[small]
+% \VL text \VL text \VL \AR
+% \TB[4*big]
+% \VL text \VL text \VL \AR
+% \stoptable
+
+\def\complexTableTB[#1]{\TABLEnoalign{\blank[#1]}}
+\def\simpleTableTB {\TABLEnoalign{\blank}}
+
+\def\TabulateTB
+ {\complexorsimpleTable{TB}}
+
+\def\doTableinterline% #1
+ {\ifnum\currentTABLEcolumn>\maxTABLEcolumn
+ \chuckTABLEautorow
+ \else\ifnum\currentTABLEcolumn=\zerocount
+ \TABLEnoalign
+ {\globalletempty\checkTABLEautorow
+ \globalletempty\chuckTABLEautorow}%
+ \else
+ \setTABLEerror\TABLEmissingcolumn
+ \handleTABLEerror
+ \fi\fi
+ \complexorsimpleTable} % {#1}
+
+\def\TableHL{\doTableinterline{HL}}
+\def\TableTB{\doTableinterline{TB}}
+
+\appendtoks\let\TB\TableTB \to\everytable
+\appendtoks\let\TB\TabulateTB\to\everytabulate % strange place
+
+\appendtoks \chardef\recodeverbatimmode\plustwo \to \everytable
+
+% new (for Olivier Turlier)
+%
+% \defineTABLEsetup [xx] [foregroundcolor=red]
+%
+% \bTABLE
+% \bTR \bTD oeps \eTD \bTD oeps \eTD \eTR
+% \bTR \bTDs[xx] oeps \eTDs \bTD oeps \eTD \eTR
+% \bTRs[xx] \bTD oeps \eTD \bTD oeps \eTD \eTRs
+% \eTABLE
+
+\def\defineTABLEsetup
+ {\dodoubleargument\dodefineTABLEsetup}
+
+\def\dodefineTABLEsetup[#1][#2]%
+ {\setvalue{\@@tbl:set:#1}{#2}}
+
+\long\def\bTDs[#1]#2\eTDs
+ {\doifdefinedelse{\@@tbl:set:#1}
+ {\@EA\@EA\@EA\bTD\@EA\@EA\@EA[\csname\@@tbl:set:#1\endcsname]#2\eTD}
+ {\bTD[]#2\eTD}}
+
+\long\def\bTRs[#1]#2\eTRs
+ {\doifdefinedelse{\@@tbl:set:#1}
+ {\@EA\@EA\@EA\bTR\@EA\@EA\@EA[\csname\@@tbl:set:#1\endcsname]#2\eTR}
+ {\bTR[]#2\eTR}}
+
+\protect \endinput
+
+% todo: mode: first|next (of niets)
diff --git a/Master/texmf-dist/tex/context/base/tabl-nte.mkii b/Master/texmf-dist/tex/context/base/tabl-nte.mkii
new file mode 100644
index 00000000000..cde64a033d5
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/tabl-nte.mkii
@@ -0,0 +1,107 @@
+%D \module
+%D [ file=core-nte,
+%D version=2009.03.08,
+%D title=\CONTEXT\ Table Macros,
+%D subtitle=Natural Tables Extensions,
+%D author=Hans Hagen \& Wolfgang Schuster,
+%D date=\currentdate,
+%D copyright=PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Table Module / Natural Tables Extensions}
+
+\unprotect
+
+%D This module is suggested by Wolfgang Schuster who also prototyped
+%D it and came up with the rationale:
+%D
+%D This module provides an easy way to use natural in a similiar
+%D way as the older table module (based on the \TABLE\ macros) and
+%D the newer tabulate module.
+%D
+%D You can see the advantage in the following table, once created
+%D with the new macros and once with the normal macros provided
+%D with the natural table module.
+%D
+%D Let us start with the original macros:
+%D
+%D \starttyping
+%D \bTABLE
+%D \bTR
+%D \bTD Text 1 \eTD
+%D \bTD Text 2 \eTD
+%D \eTR
+%D \bTR
+%D \bTD Text 3 \eTD
+%D \bTD Text 4 \eTD
+%D \eTR
+%D \eTABLE
+%D \stoptyping
+%D
+%D Watch how the new macros use less code:
+%D
+%D \starttyping
+%D \startTABLE
+%D \NC Text 1 \NC Text 2 \NC\NR
+%D \NC Text 3 \NC Text 4 \NC\NR
+%D \stopTABLE
+%D \stoptyping
+%D
+%D The actual code differs from the prototype that it does not need
+%D to collect whole rows and parse them but looks ahead instead.
+
+\def\startTABLE
+ {\dosingleempty\dostartTABLE}
+
+\def\dostartTABLE[#1]%
+ {\bgroup
+ \bTABLE[#1]%
+ \let\NC\doTABLENC
+ \let\NR\doTABLENR
+ \let\bTR\relax
+ \let\bTD\relax
+ \let\bTH\relax
+ \let\bTN\relax}
+
+\def\stopTABLE
+ {\eTABLE
+ \egroup}
+
+\newconditional\inTABLEnc
+
+\unexpanded\def\doTABLENR
+ {\eTR
+ \setfalse\inTABLEnc}
+
+\unexpanded\def\doTABLENC
+ {\futurelet\next\dodoTABLENC}
+
+\def\dodoTABLENC
+ {\ifx\next\doTABLENR \else
+ \expandafter\dododoTABLENC
+ \fi}
+
+% \long\def\dododoTABLENC#1\NC
+% {\ifconditional\inTABLEnc\else\settrue\inTABLEnc\parseTR[][]\fi
+% \parseTD[][]#1\eTD\NC}
+
+\long\def\dododoTABLENC#1\NC
+ {\ifconditional\inTABLEnc\else\settrue\inTABLEnc\parseTR[][]\fi
+ \dodoubleempty\parseTD#1\eTD\NC}
+
+%D The related structure commands are also available:
+
+\unexpanded\def\startTABLEhead{\dosingleempty\dostartTABLEhead} \let\stopTABLEhead\relax
+\unexpanded\def\startTABLEnext{\dosingleempty\dostartTABLEnext} \let\stopTABLEnext\relax
+\unexpanded\def\startTABLEbody{\dosingleempty\dostartTABLEbody} \let\stopTABLEbody\relax
+\unexpanded\def\startTABLEfoot{\dosingleempty\dostartTABLEfoot} \let\stopTABLEfoot\relax
+
+\long\def\dostartTABLEhead[#1]#2\stopTABLEhead{\appendtoks\doTABLEsection[#1]{#2}\to\TBLhead}
+\long\def\dostartTABLEnext[#1]#2\stopTABLEnext{\appendtoks\doTABLEsection[#1]{#2}\to\TBLnext}
+\long\def\dostartTABLEbody[#1]#2\stopTABLEbody{\appendtoks\doTABLEsection[#1]{#2}\to\TBLbody}
+\long\def\dostartTABLEfoot[#1]#2\stopTABLEfoot{\appendtoks\doTABLEsection[#1]{#2}\to\TBLfoot}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/tabl-nte.mkiv b/Master/texmf-dist/tex/context/base/tabl-nte.mkiv
new file mode 100644
index 00000000000..cde64a033d5
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/tabl-nte.mkiv
@@ -0,0 +1,107 @@
+%D \module
+%D [ file=core-nte,
+%D version=2009.03.08,
+%D title=\CONTEXT\ Table Macros,
+%D subtitle=Natural Tables Extensions,
+%D author=Hans Hagen \& Wolfgang Schuster,
+%D date=\currentdate,
+%D copyright=PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Table Module / Natural Tables Extensions}
+
+\unprotect
+
+%D This module is suggested by Wolfgang Schuster who also prototyped
+%D it and came up with the rationale:
+%D
+%D This module provides an easy way to use natural in a similiar
+%D way as the older table module (based on the \TABLE\ macros) and
+%D the newer tabulate module.
+%D
+%D You can see the advantage in the following table, once created
+%D with the new macros and once with the normal macros provided
+%D with the natural table module.
+%D
+%D Let us start with the original macros:
+%D
+%D \starttyping
+%D \bTABLE
+%D \bTR
+%D \bTD Text 1 \eTD
+%D \bTD Text 2 \eTD
+%D \eTR
+%D \bTR
+%D \bTD Text 3 \eTD
+%D \bTD Text 4 \eTD
+%D \eTR
+%D \eTABLE
+%D \stoptyping
+%D
+%D Watch how the new macros use less code:
+%D
+%D \starttyping
+%D \startTABLE
+%D \NC Text 1 \NC Text 2 \NC\NR
+%D \NC Text 3 \NC Text 4 \NC\NR
+%D \stopTABLE
+%D \stoptyping
+%D
+%D The actual code differs from the prototype that it does not need
+%D to collect whole rows and parse them but looks ahead instead.
+
+\def\startTABLE
+ {\dosingleempty\dostartTABLE}
+
+\def\dostartTABLE[#1]%
+ {\bgroup
+ \bTABLE[#1]%
+ \let\NC\doTABLENC
+ \let\NR\doTABLENR
+ \let\bTR\relax
+ \let\bTD\relax
+ \let\bTH\relax
+ \let\bTN\relax}
+
+\def\stopTABLE
+ {\eTABLE
+ \egroup}
+
+\newconditional\inTABLEnc
+
+\unexpanded\def\doTABLENR
+ {\eTR
+ \setfalse\inTABLEnc}
+
+\unexpanded\def\doTABLENC
+ {\futurelet\next\dodoTABLENC}
+
+\def\dodoTABLENC
+ {\ifx\next\doTABLENR \else
+ \expandafter\dododoTABLENC
+ \fi}
+
+% \long\def\dododoTABLENC#1\NC
+% {\ifconditional\inTABLEnc\else\settrue\inTABLEnc\parseTR[][]\fi
+% \parseTD[][]#1\eTD\NC}
+
+\long\def\dododoTABLENC#1\NC
+ {\ifconditional\inTABLEnc\else\settrue\inTABLEnc\parseTR[][]\fi
+ \dodoubleempty\parseTD#1\eTD\NC}
+
+%D The related structure commands are also available:
+
+\unexpanded\def\startTABLEhead{\dosingleempty\dostartTABLEhead} \let\stopTABLEhead\relax
+\unexpanded\def\startTABLEnext{\dosingleempty\dostartTABLEnext} \let\stopTABLEnext\relax
+\unexpanded\def\startTABLEbody{\dosingleempty\dostartTABLEbody} \let\stopTABLEbody\relax
+\unexpanded\def\startTABLEfoot{\dosingleempty\dostartTABLEfoot} \let\stopTABLEfoot\relax
+
+\long\def\dostartTABLEhead[#1]#2\stopTABLEhead{\appendtoks\doTABLEsection[#1]{#2}\to\TBLhead}
+\long\def\dostartTABLEnext[#1]#2\stopTABLEnext{\appendtoks\doTABLEsection[#1]{#2}\to\TBLnext}
+\long\def\dostartTABLEbody[#1]#2\stopTABLEbody{\appendtoks\doTABLEsection[#1]{#2}\to\TBLbody}
+\long\def\dostartTABLEfoot[#1]#2\stopTABLEfoot{\appendtoks\doTABLEsection[#1]{#2}\to\TBLfoot}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/tabl-pln.mkii b/Master/texmf-dist/tex/context/base/tabl-pln.mkii
new file mode 100644
index 00000000000..39bb50f2329
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/tabl-pln.mkii
@@ -0,0 +1,91 @@
+%D The following bunch of macros come from plain \TEX\ by
+%D Don Knuth and deal with basic alignment. We just include
+%D them here so that they can be used if needed. Normally,
+%D \CONTEXT\ users will fall back on one of the three table
+%D environments.
+%D
+%D The hidden names are somewhat adapted and we use other
+%D local variables.
+
+\writestatus{loading}{ConTeXt Table Macros / Plain Tabular}
+
+\unprotect
+
+\newif \if@@plnusetab
+\newif \if@@plncr
+\newbox \@@plntabs
+\newbox \@@plntabsyet
+\newbox \@@plntabsdone
+\newdimen \@@plntabdimen
+
+\def\cleartabs % visible
+ {\global\setbox\@@plntabsyet\null
+ \setbox\@@plntabs\null}
+
+\def\settabs % visible
+ {\setbox\@@plntabs\null
+ \futurelet\next\@@plnsettabs}
+
+\def\tabalign % visible
+ {\@@plnusetabtrue\@@plnmaketabbox}
+
+\let\+\tabalign % no outer here (can be overloaded)
+
+\def\@@plnsettabs
+ {\ifx\next\+%
+ \def\nxt{\afterassignment\@@plnsettab\let\nxt}%
+ \else
+ \let\nxt\@@plnsetcols
+ \fi
+ \let\next\relax
+ \nxt}
+
+\def\@@plnsettab
+ {\let\nxt\relax
+ \@@plnusetabfalse\@@plnmaketabbox}
+
+\def\@@plnsetcols#1\columns
+ {\scratchcounter#1%
+ \@@plntabdimen\hsize
+ \loop
+ \ifnum\scratchcounter>\zerocount \@nother
+ \repeat}
+
+\def\@nother
+ {\scratchdimen\@@plntabdimen
+ \divide\scratchdimen\scratchcounter
+ \setbox\@@plntabs\hbox{\hbox to\scratchdimen{}\unhbox\@@plntabs}%
+ \advance\@@plntabdimen-\scratchdimen
+ \advance\scratchcounter\minusone}
+
+\def\@@plnmaketabbox
+ {\begingroup
+ \global\setbox\@@plntabsyet\copy\@@plntabs
+ \global\setbox\@@plntabsdone\null
+ \def\cr
+ {\@@plncrtrue\crcr\egroup\egroup
+ \if@@plnusetab\unvbox\zerocount\lastbox\fi\endgroup
+ \setbox\@@plntabs\hbox{\unhbox\@@plntabsyet\unhbox\@@plntabsdone}}%
+ \setbox\zerocount\vbox\bgroup\@@plncrfalse
+ \ialign\bgroup&\@@plnbegintabbox##\@@plnendtabbox\crcr}
+
+\def\@@plnbegintabbox
+ {\setbox\zerocount\hbox\bgroup}
+
+\def\@@plnendtabbox
+ {\if@@plncr
+ \egroup % now \box\zerocount holds the column
+ \else
+ \hss\egroup
+ \global\setbox\@@plntabsyet\hbox
+ {\unhbox\@@plntabsyet\global\setbox\plusone\lastbox}% now \box\plusone holds its size
+ \ifvoid\plusone
+ \global\setbox\plusone\hbox to\wd\zerocount{}%
+ \else
+ \setbox\zerocount\hbox to\wd\plusone{\unhbox\zerocount}%
+ \fi
+ \global\setbox\@@plntabsdone\hbox{\box\plusone\unhbox\@@plntabsdone}%
+ \fi
+ \box\zerocount}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/tabl-pln.mkiv b/Master/texmf-dist/tex/context/base/tabl-pln.mkiv
new file mode 100644
index 00000000000..39bb50f2329
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/tabl-pln.mkiv
@@ -0,0 +1,91 @@
+%D The following bunch of macros come from plain \TEX\ by
+%D Don Knuth and deal with basic alignment. We just include
+%D them here so that they can be used if needed. Normally,
+%D \CONTEXT\ users will fall back on one of the three table
+%D environments.
+%D
+%D The hidden names are somewhat adapted and we use other
+%D local variables.
+
+\writestatus{loading}{ConTeXt Table Macros / Plain Tabular}
+
+\unprotect
+
+\newif \if@@plnusetab
+\newif \if@@plncr
+\newbox \@@plntabs
+\newbox \@@plntabsyet
+\newbox \@@plntabsdone
+\newdimen \@@plntabdimen
+
+\def\cleartabs % visible
+ {\global\setbox\@@plntabsyet\null
+ \setbox\@@plntabs\null}
+
+\def\settabs % visible
+ {\setbox\@@plntabs\null
+ \futurelet\next\@@plnsettabs}
+
+\def\tabalign % visible
+ {\@@plnusetabtrue\@@plnmaketabbox}
+
+\let\+\tabalign % no outer here (can be overloaded)
+
+\def\@@plnsettabs
+ {\ifx\next\+%
+ \def\nxt{\afterassignment\@@plnsettab\let\nxt}%
+ \else
+ \let\nxt\@@plnsetcols
+ \fi
+ \let\next\relax
+ \nxt}
+
+\def\@@plnsettab
+ {\let\nxt\relax
+ \@@plnusetabfalse\@@plnmaketabbox}
+
+\def\@@plnsetcols#1\columns
+ {\scratchcounter#1%
+ \@@plntabdimen\hsize
+ \loop
+ \ifnum\scratchcounter>\zerocount \@nother
+ \repeat}
+
+\def\@nother
+ {\scratchdimen\@@plntabdimen
+ \divide\scratchdimen\scratchcounter
+ \setbox\@@plntabs\hbox{\hbox to\scratchdimen{}\unhbox\@@plntabs}%
+ \advance\@@plntabdimen-\scratchdimen
+ \advance\scratchcounter\minusone}
+
+\def\@@plnmaketabbox
+ {\begingroup
+ \global\setbox\@@plntabsyet\copy\@@plntabs
+ \global\setbox\@@plntabsdone\null
+ \def\cr
+ {\@@plncrtrue\crcr\egroup\egroup
+ \if@@plnusetab\unvbox\zerocount\lastbox\fi\endgroup
+ \setbox\@@plntabs\hbox{\unhbox\@@plntabsyet\unhbox\@@plntabsdone}}%
+ \setbox\zerocount\vbox\bgroup\@@plncrfalse
+ \ialign\bgroup&\@@plnbegintabbox##\@@plnendtabbox\crcr}
+
+\def\@@plnbegintabbox
+ {\setbox\zerocount\hbox\bgroup}
+
+\def\@@plnendtabbox
+ {\if@@plncr
+ \egroup % now \box\zerocount holds the column
+ \else
+ \hss\egroup
+ \global\setbox\@@plntabsyet\hbox
+ {\unhbox\@@plntabsyet\global\setbox\plusone\lastbox}% now \box\plusone holds its size
+ \ifvoid\plusone
+ \global\setbox\plusone\hbox to\wd\zerocount{}%
+ \else
+ \setbox\zerocount\hbox to\wd\plusone{\unhbox\zerocount}%
+ \fi
+ \global\setbox\@@plntabsdone\hbox{\box\plusone\unhbox\@@plntabsdone}%
+ \fi
+ \box\zerocount}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-tab.tex b/Master/texmf-dist/tex/context/base/tabl-tab.mkii
index 2e843eae817..e3bfca9c3ad 100644
--- a/Master/texmf-dist/tex/context/base/core-tab.tex
+++ b/Master/texmf-dist/tex/context/base/tabl-tab.mkii
@@ -1,7 +1,7 @@
%D \module
%D [ file=core-tab,
%D version=1997.10.10,
-%D title=\CONTEXT\ Core Macros,
+%D title=\CONTEXT\ Table Macros,
%D subtitle=\TABLE\ Embedding,
%D author=Hans Hagen,
%D date=\currentdate,
@@ -11,11 +11,19 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Core Macros / TaBlE Embedding}
+\writestatus{loading}{ConTeXt Table Macros / TaBlE Embedding}
% By now it makes more sense to merge the patches into the original
% and clean that one up too.
+% \starttable[|||]
+% \HL
+% \VL test \VS test \VL \FR
+% \VL test \VD test \VL \MR
+% \VL test \VT test \VL \LR
+% \HL
+% \stoptable
+
% Don't change the splitter:
%
% ... \NR
@@ -462,6 +470,8 @@
\def\BeginTableParBox#1%
{\setbox\scratchbox\vtop\bgroup % \setbox added
\hsize#1\relax
+ \dontcomplain
+ \restoretablelineskips
\normalbaselines
\let~\!ttTie
\let\-\!ttDH
@@ -469,18 +479,18 @@
\the\EveryTableParBox}
\def\EndTableParBox
- {\removelastskip % itemize or so
+ {\removelastskip % itemize or so
\endgraf
- \ifnum\prevgraf>\zerocount % we want at least
- \verticalstrut \nowhitespace \vskip-\struttotal% one line of text
+ \ifnum\prevgraf>\zerocount % we want at least
+ \verticalstrut \nowhitespace \vskip-\struttotal % one line of text
\egroup
- \ifdim\dp\scratchbox>\lineheight % see (*) for an
- \getnoflines{\dp\scratchbox}% % example of where
- \dp\scratchbox\zeropoint % saving can go
- \setbox\scratchbox % terrible wrong
+ \ifdim\dp\scratchbox>\lineheight % see (*) for an
+ \getnoflines{\dp\scratchbox}% % example of where
+ \dp\scratchbox\zeropoint % saving can go
+ \setbox\scratchbox % terrible wrong
\vtop to \noflines\lineheight{\box\scratchbox}%
- \fi % esp between rows
- \else % of paragraphs
+ \fi % esp between rows
+ \else % of paragraphs
\egroup
\fi
% \getboxheight\scratchdimen\of\box\scratchbox\relax% compensate for
@@ -698,10 +708,10 @@
\ifx\!ttemp\empty
\!taDimenC\zeropoint
\else
- \setbox0\hbox{\m@th #1,#3#1}%
+ \setbox0\hbox{\mathsurround\zeropoint #1,#3#1}%
\!taDimenC\wd0
\fi
- \setbox0\hbox{\m@th #1#2#1}%
+ \setbox0\hbox{\mathsurround\zeropoint #1#2#1}%
\!thToksEdef\!taDataColumnTemplate
={\noexpand\!tqSetQuantityItem{\the\wd0 }{\the\!taDimenC}{#1}%
\the\!taDataColumnTemplate}%
@@ -714,8 +724,8 @@
\def\!tqSetQuantityItemA #1#2#3#4,#5,#6!%
{\def\!ttemp{#6}%
- \hbox to #1{\hss\m@th#3#4#3}%
- \hbox to #2{\ifx\!ttemp\empty\else\m@th#3,#5#3\fi\hss}}
+ \hbox to #1{\hss\mathsurround\zeropoint#3#4#3}%
+ \hbox to #2{\ifx\!ttemp\empty\else\mathsurround\zeropoint#3,#5#3\fi\hss}}
%D Here ends the Q||extension. Did you watch the clever use
%D of aftergroup in \type{\!tqConvertCode}.
@@ -916,7 +926,7 @@
\advance\mscount \mscount
\!thLoop
\ifnum\mscount>\plusone
- \sp@n % from Plain (\span\omit \advance\mscount\m@ne)
+ \spanomit \advance\mscount\minusone
\repeat
\span}%
\fi % added
@@ -980,7 +990,7 @@
{\doifelsenothing\@@tiframe
{\ifinsidefloat\else\startbaselinecorrection\fi}
{\startframedcontent[\@@tiframe]}%
- \postponefootnotes
+ \postponenotes
\firststagestartTABLE}}
\def\stoptable
@@ -1223,6 +1233,7 @@
\ifconditional\tablerepeattail\else\insertTABLEtail\fi
\finishTABLE
\egroup
+\dontcomplain
\dosplittablebox\tablecontentbox
\flushnotes
\egroup}
@@ -1661,7 +1672,12 @@
\egroup
\def\!ttDoHalign
- {\baselineskip \zeropoint
+ {\edef\restoretablelineskips
+ {\baselineskip \the\baselineskip
+ \lineskiplimit\the\lineskiplimit
+ \lineskip \the\lineskip
+ \tabskip \the\tabskip}%
+ \baselineskip \zeropoint
\lineskiplimit\zeropoint
\lineskip \zeropoint
\tabskip \zeropoint
diff --git a/Master/texmf-dist/tex/context/base/tabl-tab.mkiv b/Master/texmf-dist/tex/context/base/tabl-tab.mkiv
new file mode 100644
index 00000000000..429f41add44
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/tabl-tab.mkiv
@@ -0,0 +1,2515 @@
+%D \module
+%D [ file=core-tab,
+%D version=1997.10.10,
+%D title=\CONTEXT\ Table Macros,
+%D subtitle=\TABLE\ Embedding,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Table Macros / TaBlE Embedding}
+
+% By now it makes more sense to merge the patches into the original
+% and clean that one up too.
+
+% \starttable[|||]
+% \HL
+% \VL test \VS test \VL \FR
+% \VL test \VD test \VL \MR
+% \VL test \VT test \VL \LR
+% \HL
+% \stoptable
+
+% Don't change the splitter:
+%
+% ... \NR
+% \TABLEnoalign{\page}\TABLEhead
+% \NC ...
+
+% e-tex: reverse rows or vadjust or ... in tables
+% \ifalign
+% \xhrule : calls for 'special' with width
+% BUG:
+%
+% \starttable[|l|l|]
+% \HL
+% \RL\FR \VL Head 1 \VL Head 2 \VL\FR
+% \RL\LR \VL Head A \VL Head B \VL\LR % niet grijs ??
+% \HL
+% \VL 1 \VL 2 \VL\FR
+% \VL a \VL b \VL\LR
+% \HL
+% \stoptable
+
+% melden als in kleur conflict, uitgestelde test op \SR\SR
+
+% verengelsen
+% interface
+
+% footnotes flushen
+% \......TABLE........ namen
+% kolommen testen
+% unbreakable kop definieren
+% voetnoten
+% meldingen
+% als direct \use{max} dan fout
+% \BREAKPOINT
+% breedte lijn telt
+% errors: ook gray in handle
+
+% \AR -> als in DL dan \DR
+
+% nieuw:
+%
+% \NL / \NL[blanko] is skip, nog default?
+% geen \HL in a row
+% \HL[n]
+% \VL[n] + remembers
+% c{colorspec} key
+% \HC[color][width]
+% \VC[color]
+% meldingen row, column, use, advise
+% \AR: UITSTELLEN / EXPERIMENTEEL
+
+% WAARDELOZE ERROR HANDLER
+% THIS RENEWED MODULE WORKS OK BUT STILL LOOKS BAD
+
+%D We felt no need to write our own table building macros,
+%D simply because Michael Wichura made a terrific one. This
+%D package is quite complete and well documented. In \CONTEXT\
+%D we provide a shell for consistent spacing as well as color
+%D support. Implementing these features without adapting the
+%D original macros is not trivial. One easilly gets conflicts
+%D with \type{\omit}, \type{\span} and \type{\noalign}, which
+%D means that we end up postponing and overloading macros,
+%D mostly global. Now, let's start with loading the main
+%D macros:
+
+\doifundefined{BeginTable}{\doinputonce{table.tex}}
+
+\unprotect
+
+%D \macros
+%D {inintable, ifsplittables}
+%D
+%D First we declare some variables. These show a bit what we
+%D are dealing with. First we introdoce some booleans that
+%D enable us, inside as well as outside this module, to
+%D determine in what mode we are.
+
+\newif\ifintable
+\newif\ifsplittables
+
+%D \macros
+%D {tracetablestrue}
+%D
+%D When I documented this module, I felt the need for tracing
+%D options. After implementing this feature, I also added
+%D warnings, error recovery and automatic spacing.
+
+\newif\iftracetables
+
+%D We show this feature in an eample that also shows some of
+%D the basic table typesetting commands.
+%D
+%D \startbuffer
+%D \starttable[|||]
+%D \HL
+%D \VL first \VL second \VL\AR
+%D \HL
+%D \VL alfa \VL 1 \VL\AR
+%D \VL beta \VL 2 \VL\AR
+%D \VL gamma \VL 3 \VL\AR
+%D \HL
+%D \stoptable
+%D \stopbuffer
+%D
+%D \startcombination
+%D {\tracetablesfalse\getbuffer} {\type{\tracetablesfalse}}
+%D {\tracetablestrue\getbuffer} {\type{\tracetablestrue}}
+%D \stopcombination
+%D
+%D This table is specified as:
+%D
+%D \typebuffer
+%D
+%D This examples shows about the minimum of commands needed to
+%D typeset such a table. In this table, the \type {\AR} is
+%D automatically translated into the more primitive (but more
+%D verbose) commands \type {\SR}, \type {\FR}, \type {\MR} and
+%D \type {\LR} commands.
+%D
+%D \startbuffer
+%D \starttables[|||]
+%D \HL
+%D \VL first \VL second \VL\AR
+%D \HL
+%D \VL alfa \VL 1 \VL\AR
+%D \VL beta \VL 2 \VL\AR
+%D \VL gamma \VL 3 \VL\AR
+%D \HL
+%D \stoptable
+%D \stopbuffer
+%D
+%D When we use the split table feature, we get a bit more
+%D information.
+%D
+%D {\tracetablesfalse\getbuffer}
+%D
+%D Sometimes in tables information shows up that is not typed
+%D in by the user. These messages give a cue in what aspect a
+%D table definition is wrong.
+%D
+%D \startbuffer
+%D \starttable[||||]
+%D \HL
+%D \VL first second \VL third \VL\AR
+%D \HL
+%D \VL alfa \VL 1 \VL a \VL\AR
+%D \VL beta \VL 2 \VL b \VL
+%D \VL gamma \VL \THREE{3} c \VL\AR
+%D \HL
+%D \stoptable
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D Those terrible table has three errors, which all show up in
+%D typeset messages. Errors cannot always recovered 100\% and
+%D therefore can result in two or more succesive messages, like
+%D in the last row.
+%D
+%D \getbuffer
+
+%D Bringing color into tables is complicated by the mere fact
+%D that color is not part of \TEX. The main complication is
+%D that we don't know in advance how wide a column will be. I
+%D implemented color support in tables in the early 90's
+%D because I needed it for some articles on color. I have to
+%D admit that I seldom use the mechanism.
+%D
+%D Most color support in \CONTEXT\ makes use of colored rules.
+%D At first sight, one is tempted to implement colors in tables
+%D in a similar way, but as said, we don't know the dimensions
+%D in advance. It turns out however that we don't have to,
+%D simply because alignments take care of stretching rules to
+%D the appropritate dimensions. This means that we can provide
+%D backgrounds by coloring rules with the height of a row,
+%D skipping upwards and finally drawing the content, like in:
+%D
+%D \gdef\ShowExample
+%D {\startfiguretext
+%D {none}
+%D {\getbuffer}
+%D \typebuffer
+%D \stopfiguretext}
+%D
+%D \startbuffer
+%D \starttable[|c|c|]
+%D \HL
+%D \BL[2] \SR
+%D \VL test \VL test \VL\SR
+%D \HL
+%D \VL test \VL test \VL\FR
+%D \VL test \VL test \VL\MR
+%D \VL test \VL test \VL\LR
+%D \HL
+%D \stoptable
+%D \stopbuffer
+%D
+%D \ShowExample
+%D
+%D Just to be complete we show how the other columns can be
+%D given a background. Later we will provide more details over
+%D the commands used.
+%D
+%D \startbuffer
+%D \starttable[|c|c|c|]
+%D \HL
+%D \BL[3] \SR
+%D \VL test \VL test \VL test \VL\SR
+%D \HL
+%D \stoptable
+%D \stopbuffer
+%D
+%D \ShowExample
+%D
+%D \startbuffer
+%D \starttable[|c|c|c|]
+%D \HL
+%D \BC \BL[2] \SR
+%D \VL test \VL test \VL test \VL\SR
+%D \HL
+%D \stoptable
+%D \stopbuffer
+%D
+%D \ShowExample
+%D
+%D \startbuffer
+%D \starttable[|c|c|c|]
+%D \HL
+%D \BC \BC \BL \SR
+%D \VL test \VL test \VL test \VL\SR
+%D \HL
+%D \stoptable
+%D \stopbuffer
+%D
+%D \ShowExample
+%D
+%D \startbuffer
+%D \starttable[|c|c|c|]
+%D \HL
+%D \BC \BL \SR
+%D \VL test \VL test \VL test \VL\SR
+%D \HL
+%D \stoptable
+%D \stopbuffer
+%D
+%D \ShowExample
+%D
+%D \startbuffer
+%D \starttable[|c|c|c|]
+%D \BL \BL \SR
+%D \HL
+%D \VL test \VL test \VL test \VL\SR
+%D \HL
+%D \stoptable
+%D \stopbuffer
+%D
+%D \ShowExample
+
+%D In these examples we can clearly see that for being a real
+%D background, the color or gray specification has to precede
+%D the content. Just to keep things simple, we can recall this
+%D specification later on:
+%D
+%D \startbuffer
+%D \starttable[|c|c|c|]
+%D \BC \BL \SR
+%D \HL
+%D \VL test \VL test \VL test \VL\SR
+%D \HL
+%D \BR\FR
+%D \VL test \VL test \VL test \VL\FR
+%D \BR\MR
+%D \VL test \VL test \VL test \VL\MR
+%D \BR\LR
+%D \VL test \VL test \VL test \VL\LR
+%D \HL
+%D \stoptable
+%D \stopbuffer
+%D
+%D \ShowExample
+%D
+%D Close study learns that we can put the specification
+%D before or after the \type{\HL}, whatever suits best. Keeping
+%D track of these specifications is taken care of by the next
+%D variables:
+
+\newif \ifTABLEgrayline % executing gray line
+\newif \ifTABLEgraydone % gray line executed
+\newtoks \TABLEgraytoks % gray line specification
+
+\newif\ifTABLEinbreak
+
+%D Nog vervangen:
+
+\def\c!Table{Table}
+\def\m!TABLE{TABLE}
+
+%D We already saw that the table macros report errors and
+%D provide automatic spacing. These features can only be
+%D implemented by keeping track of the state, often the last
+%D command on a row.
+
+\chardef\TABLEunknown = 0
+
+\chardef\TABLEseparaterow = 1
+\chardef\TABLEfirstrow = 2
+\chardef\TABLEmidrow = 3
+\chardef\TABLElastrow = 4
+\chardef\TABLErule = 5
+\chardef\TABLEskip = 6
+\chardef\TABLEautorow = 7
+
+\chardef\TABLEforcefirstrow = 1
+\chardef\TABLEforcelastrow = 2
+
+\chardef\TABLEmissingrow = 1
+\chardef\TABLEmissingcolumn = 2
+\chardef\TABLEspanoverflow = 3
+\chardef\TABLEdivisionoverflow = 4
+
+%D We store these states using efficient \type {\chardef}'s.
+%D Like most variables, these are global ones. When needed,
+%D especially when we flush the backgrounds, we can temporary
+%D disable the assignment.
+
+\newif\ifsetTABLEaction
+
+\def\setTABLEaction#1%
+ {\ifsetTABLEaction\global\chardef\TABLEaction#1\fi}
+
+\def\setTABLEforce#1%
+ {\ifsetTABLEaction\global\chardef\TABLEforce#1\fi}
+
+\def\setTABLEerror#1%
+ {\global\chardef\TABLEerror#1}
+
+%D Before we come to using these variables, we redefine and/or
+%D adapt some \TABLE\ macros. Within \TABLE's the \type{|} and
+%D \type{"} have special meanings in templates and are active
+%D during. Their meaning can therefore conflict with those
+%D elsewhere defined. To be compatible with traditional \TABLE\
+%D as well as \CONTEXT's \type{||} and the active \type{"}
+%D extensions for my german friends, we do some catcode magic.
+
+\newif\ifForgetTableBarAndQuote \ForgetTableBarAndQuotetrue
+
+% \bgroup
+
+% \catcode`\|=\@@active
+% \catcode`\"=\@@active
+%
+% \gdef\pushouterbarandquote
+% {\ifForgetTableBarAndQuote
+% \ifnum\catcode`\|=\@@active \let\outertablebar |\else\let\outertablebar \relax\fi
+% \ifnum\catcode`\"=\@@active \let\outertablequote"\else\let\outertablequote\relax\fi
+% \let|\letterbar
+% \let"\letterdoublequote
+% \fi}
+%
+% \gdef\popouterbarandquote
+% {\ifForgetTableBarAndQuote
+% \ifx\outertablebar \relax\else\let|\outertablebar \fi
+% \ifx\outertablequote\relax\else\let"\outertablequote\fi
+% \else
+% \redefinetablebarandquote
+% \fi}
+%
+% \egroup
+%
+% \def\ObeyTableBarAndQuote
+% {\ForgetTableBarAndQuotefalse
+% \ifintable
+% \redefinetablebarandquote
+% \fi}
+
+\let\ActivateBarAndQuote \relax
+\let\ObeyTableBarAndQuote\relax
+\let\pushouterbarandquote\relax
+\let\popouterbarandquote \relax
+
+%D \macros
+%D {ObeyTableBarAndQuote}
+%D
+%D As said, the \type{|} and \type{"} active characters are
+%D often used for other purposes. By default, the outside
+%D meanings are therefore preserved and available inside
+%D tables. If for some reason one wants to use the \TABLE\
+%D primitives, one can say:
+%D
+%D \starttyping
+%D \ObeyTableBarAndQuote
+%D \stoptyping
+%D
+%D To keep things verbose, as well as to show what \TABLE\
+%D commands we affect, we show some meanings.
+
+\def\normalTABLEshortrule {\!ttShortHrule} % \-
+\def\normalTABLElongrule {\!ttLongHrule} % \=
+\def\normalTABLEfullrule {\!ttFullHrule} % \_
+\def\normalTABLEendofrow {\!ttEndOfRow} % \\
+\def\normalTABLEsimplebar {\unskip\!ttRightGlue&&} % |
+\def\normalTABLEcomplexbar {\unskip\!ttRightGlue&\omit\!ttAlternateVrule} % \|
+\def\normalTABLEquote {\unskip\!ttRightGlue&\omit&} % "
+\def\normalTABLElineformat {\normalTABLEendofrow+}
+\def\normalTABLElineending {\normalTABLEendofrow0 }
+\def\normalTABLEsinglerule {&\normalTABLElongrule&}
+\def\normalTABLEmultirule#1{&\use{#1}\normalTABLElongrule&}
+
+%D The next hack is dedicated to Tobias, who found out that
+%D paragraph entries don't break well.
+
+\def\TABLEhack{\hskip\zeropoint}
+
+%D The first attemp to solve this problem was:
+%D
+%D \starttyping
+%D \def\normalTABLEquote%
+%D {\unskip\TABLEhack\!ttRightGlue&\omit&\TABLEhack}
+%D \stoptyping
+%D
+%D But, as usual, this interfered with \type {\omit}.
+%D
+%D The next attempt is redefining some core \TABLE\ macro:.
+%D This works ok, but breaks for instance the~\type{b}
+%D key handling.
+%D
+%D \starttyping
+%D \def\!tfAdjoinPriorColumn%
+%D {\ifnum\!taColumnNumber=0
+%D \!taPreamble=\!taRuleColumnTemplate
+%D ...
+%D \if!taOnceOnlyTabskip
+%D \!thToksEdef\!taDataColumnTemplate=
+%D {\TABLEhack####\TABLEhack\tabskip\the\!taLastRegularTabskip}
+%D \else
+%D \!taDataColumnTemplate{\TABLEhack##\TABLEhack}%
+%D \fi
+%D ...
+%D \ReadFormatKeys}
+%D \stoptyping
+
+% \newdimen\TABLEparheight
+
+\def\BeginTableParBox#1%
+ {\setbox\scratchbox\vtop\bgroup % \setbox added
+ \hsize#1\relax
+ \dontcomplain
+ \restoretablelineskips
+ \normalbaselines
+ \let~\!ttTie
+ \let\-\!ttDH
+ \blank[\v!disable]% % added
+ \the\EveryTableParBox}
+
+\def\EndTableParBox
+ {\removelastskip % itemize or so
+ \endgraf
+ \ifnum\prevgraf>\zerocount % we want at least
+ \verticalstrut \nowhitespace \vskip-\struttotal % one line of text
+ \egroup
+ \ifdim\dp\scratchbox>\lineheight % see (*) for an
+ \getnoflines{\dp\scratchbox}% % example of where
+ \dp\scratchbox\zeropoint % saving can go
+ \setbox\scratchbox % terrible wrong
+ \vtop to \noflines\lineheight{\box\scratchbox}%
+ \fi % esp between rows
+ \else % of paragraphs
+ \egroup
+ \fi
+% \getboxheight\scratchdimen\of\box\scratchbox\relax% compensate for
+% \ifdim\scratchdimen>\TABLEparheight % funny depth of
+% \global\TABLEparheight\scratchdimen % multi-line box
+% \fi % i.e. vtop
+ \box\scratchbox}
+
+% We also need to patch away the interfering math switch:
+
+% \mathpunctuationtrue
+
+% test, test
+% \starttable[|c|]
+% \NC1,,10\NC\AR
+% \stoptable
+% test, test
+
+\def\!ttBeginTableA[#1]{%
+ \if #1u% % "unboxed" table
+ \ifmmode
+ \def\!ttEndTable{% % user had better be in display math mode
+ \relax}% % and have only one table at the outer level
+ \else % user had better be in vertical mode
+ \bgroup
+ \def\!ttEndTable{%
+ \egroup}%
+ \fi
+ \else
+ %\hbox\bgroup $
+ %\def\!ttEndTable{%
+ % \egroup % for the \vtop, \vbox, or \vcenter, yet to come
+ % $% for math mode
+ % \egroup}% for the \hbox
+ %\if #1t%
+ % \vtop
+ %\else
+ % \if #1b%
+ % \vbox
+ % \else
+ % \vcenter % math mode was essential for this
+ % \fi
+ %\fi
+ %
+ \hbox\bgroup
+ \def\!ttEndTable{\egroup\egroup}%
+ \if#1t%
+ \vtop
+ \else\if#1b%
+ \vbox
+ \else
+ \def\!ttEndTable{\egroup$\egroup}%
+ %$\vcenter
+ \scratchtoks\everymath\everymath\emptytoks$\everymath\scratchtoks\vcenter
+ \fi\fi
+ %
+ \bgroup % for the \vtop, \vbox, or \vcenter
+ \fi
+ \advance\!taRecursionLevel 1 % RecursionLevel governs initialization
+ \let\!ttRightGlue=\relax % This may be changed by \JustCenter, etc
+ \everycr\emptytoks % ={}
+ \ifnum \!taRecursionLevel=1
+ \!ttInitializeTable
+ \fi}
+
+%D The next redefinition is more robust than the original:
+
+\def\SetTableToWidth#1%
+ {\doifelsenothing{#1}{\!taTableSpread\emptytoks}{\!taTableSpread{to #1}}}
+
+% (*) Try this one with \type {direction} and {girection};
+% the \PPCHTEX\ manual is a nice testcase.
+%
+% \startoverlay
+% {\starttable[ | l w(2cm) | w(8cm) | ]
+% \HL
+% \VL direction \VL \showbaselines \dorecurse{3}{direction }\VL \FR
+% \VL direction \VL \showbaselines \dorecurse{3}{direction }\VL \MR
+% \VL direction \VL \showbaselines \dorecurse{3}{direction }\VL \LR
+% \HL
+% \stoptable}
+% {\starttable[ | l w(2cm) | p(8cm) | ]
+% \HL
+% \VL direction \VL \showbaselines \dorecurse{3}{direction }\VL \FR
+% \VL direction \VL \showbaselines \dorecurse{3}{direction }\VL \MR
+% \VL direction \VL \showbaselines \dorecurse{3}{direction }\VL \LR
+% \HL
+% \stoptable}
+% \stopoverlay
+% \vskip2cm
+% \starttable[ | l w(2cm) | p(8cm) | ]
+% \HL
+% \VL direction \VL \showbaselines \dorecurse{3}{direction }\VL \FR
+% \VL direction \VL \showbaselines \dorecurse{8}{direction }\VL \LR
+% \HL
+% \stoptable
+% \vskip2cm
+% \starttable[ | l w(2cm) | p(8cm) | ]
+% \HL
+% \VL direction \VL \showbaselines \dorecurse{8}{direction }\VL \FR
+% \VL direction \VL \showbaselines \dorecurse{8}{direction }\VL \LR
+% \HL
+% \stoptable
+
+%D To give an impression of what the (well documented) source
+%D of \TABLE\ looks like, we first implement an alternative for
+%D the numeric keys. The quantity keys (\type{q} and \type{Q})
+%D support the more european way of writing numbers:
+%D
+%D \startnarrower
+%D 100.000.000,00 instead of 100,000,000.00
+%D \stopnarrower
+%D
+%D The next table shows how to use these keys. We use braces
+%D instead of brackets because we need brackets to specify the
+%D format.
+%D
+%D \startbuffer
+%D \starttable{|q[00,000]|Q[00,00]|}
+%D \HL
+%D \VL -1,2 \VL 12,35 \VL\FR
+%D \VL 11,203 \VL 2,4 \VL\LR
+%D \HL
+%D \stoptable
+%D \stopbuffer
+%D
+%D \ShowExample
+%D
+%D Although a more efficient implementation is possible |<|we
+%D can for instance share common macros|>| we just adapt a copy
+%D of the numeric ones. To permit double loading of this
+%D module, we check for the existence of one of the macros.
+
+\letvalue{!tk<\string q>}=\undefined
+\letvalue{!tk<\string Q>}=\undefined
+
+%D We just copy the original {\em comments}.
+%D
+%D \em Key \type{q}: quantity item, non||math mode.
+
+\NewFormatKey q%
+ {\letempty\!tqStyle
+ \futurelet\!tnext\!tqTestForBracket}
+
+%D \em Key \type{Q}: quantity item, math mode.
+
+\NewFormatKey Q%
+ {\def\!tqStyle{$}%
+ \futurelet\!tnext\!tqTestForBracket}
+
+%D \em Note: the space between a quantity entry and the
+%D following \type{|}, \type{"}, or \type{\|} is mandatory.
+%D empty quantity entries are not allowed: use \type{{}} or
+%D \type{\omit} instead.
+%D
+%D \em Test for bracket: invoked by the keys \type{q} and
+%D \type{Q}.
+
+\def\!tqTestForBracket
+ {\ifx[\!tnext
+ \!thx\!tqGetArgument
+ \else
+ \!thx\!tqGetCode
+ \fi}
+
+%D \em Get code: e.g. \type{4}, or \type{4,0}, \type{0,4}, or
+%D \type{10,2}.
+
+\def\!tqGetCode#1 % note the blank
+ {\!tqConvertCode #1,,!}
+
+%D \em Convert code: e.g. converts above to \type{[0000]},
+%D \type{[0000,]}, \type{[,0000]}, \type{[0000000000,00]}.
+
+\def\!tqConvertCode #1,#2,#3!%
+ {\begingroup
+ \aftergroup\edef
+ \aftergroup\!ttemp
+ \aftergroup{%
+ \aftergroup[%
+ \!taCountA #1
+ \!thLoop
+ \ifnum \!taCountA>\zerocount
+ \advance\!taCountA \minusone
+ \aftergroup0
+ \repeat
+ \def\!ttemp{#3}%
+ \ifx\!ttemp\empty
+ \else
+ \aftergroup,
+ \!taCountA #2
+ \!thLoop
+ \ifnum\!taCountA>\zerocount
+ \advance\!taCountA \minusone
+ \aftergroup0
+ \repeat
+ \fi
+ \aftergroup]\aftergroup}%
+ \endgroup\relax
+ \!thx\!tqGetArgument\!ttemp}
+
+%D \em Get argument:
+%D
+%D \starttyping
+%D <sample left field> <optional, sample right field>
+%D \stoptyping
+
+\def\!tqGetArgument[#1]%
+ {\!tqMakeQuantityTemplate\!tqStyle#1,,!}
+
+%D \em Make quantity template.
+
+\def\!tqMakeQuantityTemplate#1#2,#3,#4!% #1=<empty> or $
+ {\def\!ttemp{#4}%
+ \ifx\!ttemp\empty
+ \!taDimenC\zeropoint
+ \else
+ \setbox0\hbox{\mathsurround\zeropoint #1,#3#1}%
+ \!taDimenC\wd0
+ \fi
+ \setbox0\hbox{\mathsurround\zeropoint #1#2#1}%
+ \!thToksEdef\!taDataColumnTemplate
+ ={\noexpand\!tqSetQuantityItem{\the\wd0 }{\the\!taDimenC}{#1}%
+ \the\!taDataColumnTemplate}%
+ \ReadFormatKeys}
+
+%D \em Set numeric item.
+
+\def\!tqSetQuantityItem #1#2#3#4 %
+ {\!tqSetQuantityItemA{#1}{#2}{#3}#4,,!}
+
+\def\!tqSetQuantityItemA #1#2#3#4,#5,#6!%
+ {\def\!ttemp{#6}%
+ \hbox to #1{\hss\mathsurround\zeropoint#3#4#3}%
+ \hbox to #2{\ifx\!ttemp\empty\else\mathsurround\zeropoint#3,#5#3\fi\hss}}
+
+%D Here ends the Q||extension. Did you watch the clever use
+%D of aftergroup in \type{\!tqConvertCode}.
+
+% %D We also (have to) define a key for \type{\cap}:
+%
+% \letvalue{!tk<\string K>}=\undefined
+%
+% \NewFormatKey K%
+% {\ReadFormatKeys b\smallcapped}
+
+%D A few pages back we saw backgrounds, further on we will see
+%D colored rules, and here we provide a means to color the
+%D entries in a column. (We can of course always use the normal
+%D color commands for individual entries.) We could not use the
+%D lowercase~\type{c}, because that one is used to force {\em
+%D centering}.
+%D
+%D \startbuffer
+%D \starttable[|C{red}|C{green}|C{blue}|]
+%D \VL R(ed) \VL G(reen) \VL B(lue) \VL\SR
+%D \stoptable
+%D \stopbuffer
+%D
+%D \ShowExample
+
+\letvalue{!tk<\string C>}=\undefined
+
+\NewFormatKey C#1%
+ {\ReadFormatKeys b{\startcolor[#1]} a{\stopcolor}}
+
+%D So now we have three new keys:
+%D
+%D \starttable[|||]
+%D \HL
+%D \NC \bf key \NC \bf meaning \NC\AR
+%D \HL
+%D \NC Q[x,y] \NC math mode formatted numbers \NC\AR
+%D \NC q[x,y] \NC text mode formatted numbers \NC\AR
+%D \NC C{identifier} \NC column entry color \NC\AR
+%D \HL
+%D \stoptable
+
+%D To be compatible with the tabulate environment, we also
+%D support the \type {l}, \type {c} and \type {r} keys for
+%D paragraph entries.
+
+\letvalue{!tk<\string l>}=\undefined
+\letvalue{!tk<\string c>}=\undefined
+\letvalue{!tk<\string r>}=\undefined
+\letvalue{!tk<\string x>}=\undefined % not that needed
+
+\NewFormatKey c%
+ {\prependtoks\raggedcenter\to\!taDataColumnTemplate
+ \ReadFormatKeys \LeftGlue\hfil \RightGlue\hfil}
+
+\NewFormatKey l%
+ {\prependtoks\raggedright\to\!taDataColumnTemplate
+ \ReadFormatKeys \LeftGlue\empty \RightGlue\hfil}
+
+\NewFormatKey r%
+ {\prependtoks\raggedleft\to\!taDataColumnTemplate
+ \ReadFormatKeys \LeftGlue\hfil \RightGlue\empty}
+
+\NewFormatKey x%
+ {\prependtoks\notragged\to\!taDataColumnTemplate
+ \ReadFormatKeys \LeftGlue\hfil \RightGlue\empty}
+
+\appendtoks \TABLEparalignment \to \EveryTableParBox
+
+\def\!tfReFormat#1%
+ {\the \!taLeftGlue
+ \vbox{\forgetall\ialign{\span\the\!taDataColumnTemplate\cr#1\cr}}%
+ \the \!taRightGlue
+ \kern\zeropoint} % prevents \unskip / really needed
+
+%D Later on, we're going to implement multiple page table
+%D support, therefore the next \TABLE\ macro needs to be
+%D slightly adapted, i.c. the penalty is removed. We also
+%D add basic color support.
+
+\def\!ttFullHruleA
+ {\!ttGetHalfRuleThickness
+ \startglobalTABLEcolor % added
+ \hrule\!thHeight\dimen0\!thDepth\dimen0
+ \stopglobalTABLEcolor % added
+ %\penalty0 % removed
+ \egroup}
+
+%D We'll see that when we want to give a vertical rule a color,
+%D we have to set and reset states. After heavy testing it
+%D proved most useful to extend a \TABLE\ primitive with some
+%D hooks. One thing to keep in mind is that \type{&} keeps
+%D assignments local. Again, we add basic color support.
+
+\let\TABLEbeforebar\empty
+\let\TABLEafterbar \empty
+
+\def\@VLn{1}
+\def\@VLd{.125em}
+
+\def\do!ttInsertVrule % will be merged in 2005
+ {\vrule \!thWidth
+ \ifnum\!tgCode=\plusone
+ \ifx\!tgValue\empty
+ \LineThicknessFactor
+ \else
+ \!tgValue
+ \fi
+ \LineThicknessUnit
+ \else
+ \!tgValue
+ \fi
+ \hskip\@VLd}
+
+\def\!ttInsertVrule
+ {\hfil
+ \TABLEbeforebar % added
+ \startglobalTABLEcolor % added
+ % we could do without this speedup, some day merge 'm
+ \ifcase\@VLn\or
+ \do!ttInsertVrule
+ \unskip
+ \else
+ \dorecurse\@VLn\do!ttInsertVrule
+ \gdef\@VLn{1}%
+ \unskip
+ \fi
+ \stopglobalTABLEcolor % added
+ \TABLEafterbar % added
+ \hfil
+ &}
+
+%D The next two macros are only adapted to basis rule
+%D color support.
+
+\def\!tfSetVrule
+ {\!thToksEdef\!taRuleColumnTemplate=
+ {\noexpand\hfil
+ \noexpand\startglobalTABLEcolor % added
+ \noexpand\vrule
+ \noexpand\!thWidth
+ \ifnum\!tgCode=\plusone
+ \ifx\!tgValue\empty
+ \the\LineThicknessFactor
+ \else
+ \!tgValue
+ \fi
+ \!taLTU
+ \else
+ \!tgValue
+ \fi
+ ####%
+ \noexpand\hfil
+ \noexpand\stopglobalTABLEcolor % added
+ \the\!taRuleColumnTemplate}%
+ \!tfAdjoinPriorColumn}
+
+\def\!ttShortHruleA
+ {\!ttGetHalfRuleThickness
+ \startglobalTABLEcolor % added
+ \leaders\hrule\!thHeight\dimen0\!thDepth\dimen0\hfill
+ \stopglobalTABLEcolor % added
+ \null
+ \ignorespaces}
+
+%D We already showed the next one, but here we slightly adapt
+%D the macro by adding an \type{\expandafter}. The space after
+%D \type{#1} is crucial!
+
+\def\normalTABLEcomplexbar#1%
+ {\unskip\!ttRightGlue&\omit\expandafter\!ttAlternateVrule#1 }
+
+%D To get rid of interfering \type{\omit}'s when we are
+%D checking the number of columns and reporting problems. The
+%D extensions concern the second level check, the first
+%D subbranch and advancing the column.
+
+\ifx\mscount\undefined \newcount\mscount \fi
+
+\def\!ttuse#1%
+ {\ifnum#1>\plusone
+ \omit
+ \global\TABLEdivisionfalse
+ \scratchcounter\currentTABLEcolumn % added
+ \advance\scratchcounter #1% % added
+ \advance\scratchcounter \minusone % added
+ \ifnum\scratchcounter>\maxTABLEcolumn % added
+ \def\next % added
+ {\setTABLEerror\TABLEspanoverflow % added
+ \handleTABLEerror}% % added
+ \else % added
+ \def\next % added
+ {\global\advance\currentTABLEcolumn #1% % added
+ \global\advance\currentTABLEcolumn \minusone % added
+ \mscount#1% \mscount is in Plain
+ \advance\mscount \minusone
+ \advance\mscount \mscount
+ \!thLoop
+ \ifnum\mscount>\plusone
+ \spanomit \advance\mscount\minusone
+ \repeat
+ \span}%
+ \fi % added
+ \else % added
+ \def\next % conflicts with possible next \omit % added
+ {\global\advance\currentTABLEcolumn \plusone}% % added
+ \fi
+ \next} % added
+
+% \starttable[|c|c|c|c|]
+% \HL
+% \VL {test} \VL \TWO{} \VL test \VL\FR
+% \DL \DC \DL\DR
+% \VL {test} \VL \TWO{} \VL test \VL\LR
+% \HL
+% \stoptable
+
+%D All commands that are executed between rows are to be put in
+%D \type {\noalign}. We can however not verify if we (that is
+%D \TABLE) does or did not enter this mode. A moderate dirty
+%D but useful trick is using our own alternative:\footnote{Once
+%D one has entered the stage of redefining \TEX\ primitives,
+%D such hacks become a second nature. However, redefining \type
+%D {\omit} and \type{\span} is not that easy.}
+
+\def\TABLEnoalign
+ {\noalign\bgroup\let\noalign\relax\let\next=}
+
+%D \macros
+%D {starttable}
+%D
+%D The rest of this module is not easy to comprehend, mainly
+%D because we have to take care of:
+%D
+%D \startitemize[packed]
+%D \item \type{\startitemize[template]}
+%D \item \type{\startitemize{template}}
+%D \item \type{\startitemize[predefined]}
+%D \stopitemize
+%D
+%D as well as:
+%D
+%D \startitemize[continue]
+%D \item restart after table break
+%D \stopitemize
+%D
+%D The official specification of the start command is:
+%D
+%D \showsetup{starttable}
+
+\newconditional\tablerepeathead
+\newconditional\tablerepeattail
+
+\def\starttable
+ {\bgroup
+ \doif\@@tisplit\v!auto
+ {\ifinsidesplitfloat\let\@@tisplit\v!yes\fi}%
+ \doifinsetelse\@@tisplit{\v!yes,\v!repeat}
+ {\def\stoptable{\stoptables\egroup}%
+ \starttables}
+ {\doifelsenothing\@@tiframe
+ {\ifinsidefloat\else\startbaselinecorrection\fi}
+ {\startframedcontent[\@@tiframe]}%
+ \postponenotes
+ \firststagestartTABLE}}
+
+\def\stoptable
+ {\chuckTABLEautorow % before the tail, else noalign problem
+ \insertTABLEtail
+ \TABLEnoalign{\globalletempty\@@TABLEhead}%
+ \TABLEnoalign{\globalletempty\@@TABLEtail}%
+ \finishTABLE
+ \doifelsenothing\@@tiframe
+ {\ifinsidefloat\else
+ \stopbaselinecorrection
+ \goodbreak % compensates all the nobreaks
+ \fi}
+ \stopframedcontent
+ \egroup}
+
+%D Before we can grab the argument, we have to make sure that
+%D the \CATCODES\ are set. The first stage takes care of that.
+
+\def\firststagestartTABLE
+ {\bgroup % kan-ie weg?
+ \global\intabletrue
+ \pushouterbarandquote
+ %catcode`\|=\@@other
+ \complexorsimple\secondstagestartTABLE}
+
+\def\simplesecondstagestartTABLE#1%
+ {\complexsecondstagestartTABLE[{#1}]}
+
+%D \macros
+%D {definetabletemplate}
+%D
+%D The complex (and main) start macro first takes care of the
+%D predefined case. Such a predefined setup looks like:
+%D
+%D \starttyping
+%D \definetabletemplate[test][|||]
+%D
+%D \starttable[test]
+%D \VL test \VL test \VL\AR
+%D \VL test \VL test \VL\AR
+%D \VL test \VL test \VL\AR
+%D \stoptable
+%D \stoptyping
+%D
+%D The implementation of the definition macro is not that
+%D complicated:
+
+\def\definetabletemplate % to be redone
+ {\bgroup
+ \catcode`\|=\@@other
+ \doquadrupleempty\dodefinetabletemplate}
+
+\def\dodefinetabletemplate[#1][#2][#3][#4]%
+ {\ifsecondargument
+ \setgvalue{\c!Table#1}{\douseTABLEtemplate{#2}{#3}{#4}}%
+ \fi
+ \egroup}
+
+\def\douseTABLEtemplate#1#2#3%
+ {\gdef\TABLEhead{\getvalue{@@TABLEhead#2}}%
+ \gdef\TABLEtail{\getvalue{@@TABLEtail#3}}%
+ \complexsecondstagestartTABLE[#1]}
+
+%D The optional third and fourth arguments define which table
+%D head and tail to use.
+%D
+%D \starttyping
+%D \definetabletemplate[test][|||][before][after]
+%D \stoptyping
+%D
+%D This also means that one can define table heads and tails
+%D by name!
+%D
+%D \starttyping
+%D \starttablehead[before]
+%D \HL \VL first \VL second \VL \SR \HL
+%D \stoptablehead
+%D \stoptyping
+%D
+%D Templates defined this way get protected names, that cannot
+%D conflict with existing commands.
+%D
+%D \showsetup{definetabletemplate}
+%D
+%D The second half of the next macro prepares table
+%D splitting.
+
+\def\insertTABLEhead
+ {\TABLEnoalign{\global\settrue \preventTABLEbreak \global\setfalse\someTABLEhead}%
+ \TABLEhead
+ \TABLEnoalign{\global\setfalse\preventTABLEbreak}}
+
+\def\insertTABLEtail
+ {\TABLEnoalign{\global\settrue \preventTABLEbreak \global\setfalse\someTABLEtail}%
+ \TABLEtail
+ \TABLEnoalign{\global\setfalse\preventTABLEbreak}}
+
+% \def\dorestartTABLE#1%
+% {\gdef\restartTABLE{#1}%
+% \restartTABLE
+% \insertTABLEhead
+% \ifsplittables \ifconditional \tablerepeattail
+% \TABLEnoalign{\goodbreak}%
+% \insertTABLEtail
+% \TABLEnoalign{\goodbreak}%
+% \fi \fi}
+
+\def\verysimpleTableHL
+ {\TABLEnoalign{\expandafter\normalTABLEfullrule\@@tiHLheight}}
+
+\def\dorestartTABLE#1%
+ {\gdef\restartTABLE{#1}%
+ \restartTABLE
+ \TABLEnoalign{\globalpushmacro\simpleTableHL\global\let\simpleTableHL\verysimpleTableHL}%
+ \insertTABLEhead
+ \ifsplittables \ifconditional \tablerepeattail
+ \TABLEnoalign{\goodbreak}%
+ \insertTABLEtail
+ \TABLEnoalign{\goodbreak}%
+ \fi \fi
+ \TABLEnoalign{\globalpopmacro\simpleTableHL}}
+
+\bgroup \catcode`|=\@@other \catcode`"=\@@other
+
+\gdef\complexsecondstagestartTABLE#1[#2]% brr nested mess
+ {\bgroup
+ \@@useotherbar
+ \@@useotherquote
+ \global\setfalse\someTABLEhead
+ \global\setfalse\someTABLEtail
+ \expanded{\doifinstringelse{|}{#2}}
+ {\xdef\restartTABLE{\noexpand\dorestartTABLE{\noexpand\thirdstagestartTABLE{#2}}}}
+ {\doifdefinedelse{\c!Table#2}
+ {\gdef\restartTABLE{\getvalue{\c!Table#2}}}
+ {\gdef\restartTABLE{\dorestartTABLE{\getvalue{#2}}}}}%
+ \egroup
+ \restartTABLE}
+
+\egroup
+
+%D The third stage involves a lot of (re)sets, which we will
+%D explain later.
+
+%D The next definition is convenient and more in tune with
+%D \CONTEXT.
+
+\let \everytable \EveryTable
+
+%D We immediately use this register:
+
+\appendtoks
+ \fixedspaces
+ \let\_\normalunderscore
+\to \everytable
+
+%D Now we can start the table.
+
+\def\thirdstagestartTABLE#1%
+ {\global\setTABLEactiontrue
+ \setTABLEaction\TABLEunknown
+ \setTABLEforce\TABLEunknown
+ \setTABLEerror\TABLEunknown
+ \global\TABLEgraylinefalse
+ \global\TABLEgraydonefalse
+ \globalletempty\TABLEgrayline
+ \globalletempty\nextTABLEgrayline
+ \globalletempty\TABLEgraylineerror
+ \globalletempty\TABLEgraylinestatus
+ \resetVLvalues
+ \appendtoks\popouterbarandquote\to\EveryTable
+ \appendtoks\localTABLEsetup\to\EveryTable
+ \BeginTable[\ifsplittables u\else b\fi]%
+ \defineTABLEunits
+ \defineTABLEsteps
+ \defineTABLErules
+ \defineTABLEdivisions
+ \defineTABLEshorthands
+ \defineTABLEbackgrounds
+ \defineTABLEendings
+ \forgetall % added
+ \doifsomething{#1}
+ {\def\TABLEformat{#1}%
+ \getTABLEnofcolumns\TABLEformat
+ % more modern is to use catcode tables
+ \expandafter\BeginFormat\TABLEformat\EndFormat}}
+
+\def\finishTABLE
+ {\chuckTABLEautorow
+ \unskip\crcr
+ \EndTable
+ \global\intablefalse
+ \egroup}
+
+%D \macros
+%D {starttables}
+%D
+%D Split tables are specified using the plural form of the
+%D start and stop commands.
+%D
+%D \showsetup{starttables}
+%D
+%D For example:
+%D
+%D \starttyping
+%D \starttables[|||]
+%D \HL
+%D \VL element \VL atom weight \VL\AR
+%D \HL
+%D \VL ....... \VL ........... \VL\AR
+%D \VL ....... \VL ........... \VL\AR
+%D \HL
+%D \stoptables
+%D \stoptyping
+
+\newbox\tablecontentbox
+
+\def\starttables
+ {\bgroup
+ \splittablestrue
+ \doifelse\@@tisplit\v!repeat
+ {\settrue \tablerepeathead\settrue \tablerepeattail}
+ {\setfalse\tablerepeathead\setfalse\tablerepeattail}%
+ \flushnotes
+ \setbox\tablecontentbox\vbox\bgroup
+ \forgetall
+ \global\TABLEinbreakfalse
+ \firststagestartTABLE}
+
+% \def\stoptables
+% {\ifconditional\tablerepeattail\else\insertTABLEtail\fi
+% \finishTABLE
+% \egroup
+% \dosplittablebox\tablecontentbox
+% \flushnotes
+% \egroup}
+
+\def\stoptables
+ {\chuckTABLEautorow % AM: before the tail, else noalign problem
+ \ifconditional\tablerepeattail\else\insertTABLEtail\fi
+ \finishTABLE
+ \egroup
+\dontcomplain
+ \dosplittablebox\tablecontentbox
+ \flushnotes
+ \egroup}
+
+\newdimen\TABLEcaptionheight % obsolete
+
+\def\dosplittablebox#1%
+ {\resettsplit
+ \def\tsplitminimumfreelines{2}%
+ \def\tsplitminimumfreespace{\TABLEcaptionheight}%
+ \setbox\tsplitcontent\box#1%
+ \ifconditional\tablerepeathead \ifconditional\someTABLEhead
+ \setbox\tsplithead\vsplit\tsplitcontent to \lineheight
+ \setbox\tsplithead\vbox{\unvbox\tsplithead}%
+ \fi \fi
+ \ifconditional\tablerepeattail \ifconditional\someTABLEtail
+ \setbox\tsplittail\vsplit\tsplitcontent to \lineheight
+ \setbox\tsplittail\vbox{\unvbox\tsplittail}%
+ \fi \fi
+ \ifinsidefloat\else
+ \def\tsplitbeforeresult{\startbaselinecorrection}%
+ \def\tsplitafterresult {\stopbaselinecorrection}%
+ \fi
+ \handletsplit}
+
+%D When the table in the previous example is split across
+%D pages, only the first gets a head. We could have said
+%D something like:
+%D
+%D \starttyping
+%D \starttablekop
+%D \HL
+%D \VL element \VL atom weight \VL\AR
+%D \HL
+%D \stoptablekop
+%D
+%D \starttablestaart
+%D \HL
+%D \stoptablestaart
+%D
+%D \starttables[|||]
+%D \VL ....... \VL ........... \VL\AR
+%D \VL ....... \VL ........... \VL\AR
+%D \stoptables
+%D \stoptyping
+%D
+%D This time each split table gets a head line and ends with
+%D a rule. Keep in mind that such heads also apply to the
+%D unbroken ones and should be defined local (grouped) if
+%D needed. The rather complicated definition below is due to
+%D the fact that the stopcondition is interface language
+%D dependant.
+
+\let\@@TABLEhead\empty \def\TABLEhead{\@@TABLEhead}
+\let\@@TABLEtail\empty \def\TABLEtail{\@@TABLEtail}
+
+\letvalue{\e!start\v!tablehead}=\undefined
+\letvalue{\e!stop \v!tablehead}=\undefined
+\letvalue{\e!start\v!tabletail}=\undefined
+\letvalue{\e!stop \v!tabletail}=\undefined
+
+\expanded
+ {\def\csname\e!start\v!tablehead\endcsname##1\csname\e!stop\v!tablehead\endcsname%
+ {\noexpand\setTABLEhead##1\noexpand\end}}
+
+\expanded
+ {\def\csname\e!start\v!tabletail\endcsname##1\csname\e!stop\v!tabletail\endcsname%
+ {\noexpand\setTABLEtail##1\noexpand\end}}
+
+%D The second argument is a dummy one, by scanning for it, we
+%D get rid of interfering spaces.
+
+\def\setTABLEhead{\dodoubleempty\dosetTABLEhead}
+\def\setTABLEtail{\dodoubleempty\dosetTABLEtail}
+
+\newconditional\preventTABLEbreak
+\newconditional\someTABLEhead
+
+\def\dosetTABLEhead[#1][#2]#3\end{\setvalue{@@TABLEhead#1}{\TABLEnoalign{\global\settrue\someTABLEhead}#3}}
+\def\dosetTABLEtail[#1][#2]#3\end{\setvalue{@@TABLEtail#1}{\TABLEnoalign{\global\settrue\someTABLEtail}#3}}
+
+%D Redudant \type{\HL}'s are removed automatically, so
+%D mid||lines can be used without problems.
+
+%D We need an alternative for the normal complex or simple
+%D commands, because assignments in these system commands
+%D conflict with \type{\noalign}. This alternative is about
+%D as efficient as possible.
+
+\def\complexorsimpleTable#1#2%
+ {\csname\if[\noexpand#2\s!complex\else\s!simple\fi\c!Table#1\endcsname#2}
+
+%D The next one is used in \type{\VL} cum suis and honours
+%D the next grouping.
+
+\def\docomplexorsimpleTable#1#2%
+ {\ifx\next\bgroup\@EA#2\else\@EA\dodocomplexorsimpleTable\@EA#1\@EA#2\fi}
+
+\def\dodocomplexorsimpleTable#1#2#3%
+ {\if[\noexpand#3\@EA#1\else\@EA#2\fi#3}
+
+%D The order of the next macros is more or less random. First
+%D we implement error recovery. Errors are reported to the
+%D screen and log file as well as visualized in the table in
+%D teletype.
+
+\def\handleTABLEerror
+ {\ifTABLEgrayline \else
+ \ifnum\TABLEerror=\TABLEunknown \else
+ \setTABLEaction\TABLEunknown
+ \globalletempty\checkTABLEautorow
+ \globalletempty\chuckTABLEautorow
+ \fi
+ \ifcase\TABLEerror
+ % no error
+ \or
+ % \TABLEmissingrow
+ \tttf [missing row]%
+ \writestatus\m!TABLE{missing row}%
+ \SR
+ \or
+ % \TABLEmissingcolumn
+ \fillTABLEcolumns
+ \tttf [missing column]%
+ \writestatus\m!TABLE{missing column}%
+ \SR
+ \or
+ % \TABLEspanoverflow
+ \fillTABLEcolumns
+ \tttf [columnspan too large]%
+ \writestatus\m!TABLE{columnspan too large}%
+ \SR
+ \or
+ % \TABLEdivisionoverflow
+ \fillTABLEcolumns
+ \tttf [division line too long]%
+ \writestatus\m!TABLE{division line too long}%
+ \SR
+ \fi
+ \fi
+ \ifnum\TABLEerror=\TABLEunknown \else
+ \finishTABLErow
+ \fi}
+
+\def\finishTABLErow
+ {\crcr
+ \TABLEnoalign
+ {\nobreak
+ \setTABLEaction\TABLEunknown
+ \setTABLEerror\TABLEunknown
+ \globalletempty\checkTABLEautorow
+ \globalletempty\chuckTABLEautorow
+ \global\currentTABLEcolumn\zerocount}}
+
+\def\fillTABLEcolumns
+ {\ifnum\currentTABLEcolumn>\maxTABLEcolumn \else
+ \global\advance\currentTABLEcolumn \plusone
+ \normalTABLEquote
+ \expandafter\fillTABLEcolumns
+ \fi}
+
+%D Next we enter the more complicated area of column and row
+%D switching. I won't go into much detail from now on, but just
+%D mention the general principles.
+%D
+%D \startitemize[3*ruim]
+%D \sym{\type{\SR}} end a separate row (between rules)
+%D \sym{\type{\FR}} end a first row (after a rule)
+%D \sym{\type{\MR}} end a mid row (between text lines)
+%D \sym{\type{\LR}} end a last row (before a rule)
+%D \stopitemize
+%D
+%D and best of all:
+%D
+%D \startitemize[continue]
+%D \sym{\type{\AR}} end a row with automatic spacing
+%D \stopitemize
+%D
+%D As far as possible, we report confusing situations. In
+%D most cases one can use \type{\AR}, which transfigurates
+%D itself into one of the other types.
+%D
+%D \starttyping
+%D \starttable[||]
+%D \HL
+%D \VL a separate row \VL\SR
+%D \HL
+%D \VL a first row \VL\FR
+%D \VL a mid row \VL\MR
+%D \VL a last row \VL\LR
+%D \HL
+%D \stoptable
+%D \stoptyping
+%D
+%D In this example we could have used \type{\AR} without
+%D problems.
+%D
+%D Color or gray scale backgrounds precede the content. They
+%D are passed over horizontal (division) lines when needed.
+%D Errors in the color template are traced elsewhere. Here we
+%D only check for inconsistent spacing. Due to the way \TEX\
+%D handles alignments, we cannot automate spacing for colored
+%D rows and columns.
+
+\chardef\TABLErowzero=0
+
+\def\checkTABLErow#1% pure for message purposes
+ {\unskip % added
+ \ifTABLEgraydone
+ \defconvertedargument\asciia{#1}%
+ \defconvertedcommand \asciib\TABLEendBCL
+ \ifx\asciia\asciib \else
+ \writestatus\m!TABLE{confusing \asciia\space and \asciib}%
+ \gdef\TABLEgraylineerror%
+ {\globalletempty\TABLEgraylineerror
+ [\asciia\unskip<->\asciib\unskip]}%
+ \fi
+ \global\TABLEgraydonefalse
+ \fi}
+
+\def\defineTABLEendings
+ {\let\SR\TableSR
+ \let\FR\TableFR
+ \let\MR\TableMR
+ \let\LR\TableLR
+ \let\AR\TableAR}
+
+\def\TableSR
+ {\ifTABLEgrayline \else
+ \ifnum\TABLEaction=\TABLEfirstrow
+ \writestatus\m!TABLE{change \string\SR\space into \string\MR/\string\LR}%
+ \else\ifnum\TABLEaction=\TABLEmidrow
+ \writestatus\m!TABLE{change \string\SR\space into \string\MR/\string\LR}%
+ \else\ifnum\TABLEaction=\TABLEmidrow
+ \writestatus\m!TABLE{change \string\SR\space into \string\MR/\string\LR}%
+ \fi\fi\fi
+ \fi
+ \checkTABLErow\SR
+ \endTABLErow\TABLEseparaterow\TABLErowfactor\TABLErowfactor}
+
+\def\TableFR
+ {\ifTABLEgrayline \else
+ \ifnum\TABLEaction=\TABLEmidrow
+ \writestatus\m!TABLE{change \string\FR\space into \string\MR/\string\LR}%
+ \else\ifnum\TABLEaction=\TABLElastrow
+ \writestatus\m!TABLE{change \string\FR\space into \string\MR/\string\LR}%
+ \fi\fi
+ \fi
+ \checkTABLErow\FR
+ \endTABLErow\TABLEfirstrow\TABLErowfactor\TABLErowzero}
+
+\def\TableMR
+ {\ifTABLEgrayline \else
+ \ifnum\TABLEaction=\TABLErule
+ \writestatus\m!TABLE{change \string\MR\space into \string\FR/\string\SR}%
+ \else\ifnum\TABLEaction=\TABLElastrow
+ \writestatus\m!TABLE{change \string\MR\space into \string\FR}%
+ \fi\fi
+ \fi
+ \checkTABLErow\MR
+ \endTABLErow\TABLEmidrow00}
+
+\def\TableLR
+ {\ifTABLEgrayline \else
+ \ifnum\TABLEaction=\TABLErule
+ \writestatus\m!TABLE{change \string\LR\space into \string\FR/\string\SR}%
+ \fi
+ \fi
+ \checkTABLErow\LR
+ \endTABLErow\TABLElastrow\TABLErowzero\TABLErowfactor}
+
+%D \macros
+%D {ifcheckTABLEcolums}
+%D
+%D
+%D The next macros handle the actual row ending. This macro
+%D also take care of space corrections due to table splitting
+%D when \type{\MR} and collegues are used. When tracing is
+%D enabled, the corrections as well as the values used to
+%D determine the available space are shown (in color). By default
+%D checking is off.
+
+\newif\ifcheckTABLEcolumns
+
+\let\beforeTABLEline\empty
+\let\afterTABLEline \empty
+
+\def\doendTABLErow#1#2#3%
+ {\handleTABLEbreak#2#3%
+ \beforeTABLEline
+ \ifcase#1\relax
+ % unknown
+ \or
+ \endofTABLEline[blue][\SR->\SR]\TABLErowfactor\TABLErowfactor
+ \or
+ \endofTABLEline[red][\FR->\FR]\TABLErowfactor\TABLErowzero
+ \or
+ \ifnum\TABLEforce=\TABLEforcelastrow
+ \endofTABLEline[red][\MR->\LR]\TABLErowzero\TABLErowfactor
+ \else\ifnum\TABLEforce=\TABLEforcefirstrow
+ \endofTABLEline[red][\MR->\FR]\TABLErowfactor\TABLErowzero
+ \else
+ \endofTABLEline[green][\MR->\MR]\TABLErowzero\TABLErowzero
+ \fi\fi
+ \or
+ \endofTABLEline[red][\LR->\LR]\TABLErowzero\TABLErowfactor
+ \fi
+ \TABLEnoalign
+ {\setTABLEforce\TABLEunknown
+ \global\currentTABLEcolumn\zerocount}%
+ \afterTABLEline}
+
+\def\endTABLErow#1#2#3%
+ {\setTABLEaction#1%
+ \ifTABLEgrayline
+ \finishTABLErow
+ \else
+ \ifnum\currentTABLEcolumn>\maxTABLEcolumn
+ \doendTABLErow{#1}{#2}{#3}%
+ \else\ifcheckTABLEcolumns
+ \setTABLEerror\TABLEmissingcolumn
+ \handleTABLEerror
+ \else
+ \doendTABLErow{#1}{#2}{#3}%
+ \fi\fi
+ \fi}
+
+%D Handling \type{\AR} is postponed till the next row. The
+%D check takes care of the first and mid rows, the chuck macro
+%D |<|how about that name|>| handles the last row.
+
+\def\TableAR
+ {\ifTABLEgraydone
+ \globalletempty\checkTABLEautorow
+ \globalletempty\chuckTABLEautorow
+ \global\TABLEgraydonefalse
+ \TABLEendBCL
+ \else
+ \globallet\checkTABLEautorow\docheckTABLEautorow
+ \globallet\chuckTABLEautorow\dochuckTABLEautorow
+ \fi}
+
+\let\checkTABLEautorow\empty
+\let\chuckTABLEautorow\empty
+
+\def\docheckTABLEautorow
+ {\globallet\checkTABLEautorow\empty
+ \ifnum\TABLEaction=\TABLErule \FR
+ \else\ifnum\TABLEaction=\TABLEunknown \FR
+ \else \MR
+ \fi\fi}
+
+\def\dochuckTABLEautorow
+ {\globalletempty\checkTABLEautorow
+ \globalletempty\chuckTABLEautorow
+ \ifnum\TABLEaction=\TABLErule \SR
+ \else\ifnum\TABLEaction=\TABLEunknown \SR
+ \else \LR
+ \fi\fi}
+
+%D When a table is split, we also add a tail and when present
+%D we repeat the table head.
+
+\def\handleTABLEbreak#1#2%
+ {\globalletempty\beforeTABLEline
+ \gdef\afterTABLEline{\TABLEnoalign{\ifconditional\preventTABLEbreak\nobreak\else\goodbreak\fi}}}
+
+%D When tables are split, the spacing before and after a
+%D horizontal rule is corrected according to what we expect.
+
+\def\endofTABLEline[#1][#2->#3]#4#5%
+ {\ifx#2#3\else
+ \writestatus\m!TABLE{\string#2\space changed into \string#3}%
+ \fi
+ \iftracetables
+ \bgroup
+ \tttf\space
+ \ifnum\TABLEerror=\TABLEunknown
+ \ifx#2#3\else\string#2->\fi
+ \else
+ ->%
+ \fi
+ \color[#1]{\string#3}%
+ \ifx\TABLEgraylineerror\empty
+ \space\TABLEgraylinestatus
+ \else
+ \space\TABLEgraylineerror
+ \fi
+ \egroup
+ \else\ifx\TABLEgraylineerror\empty \else
+ % \bgroup
+ % \tttf\space\TABLEgraylineerror
+ % \egroup
+ \fi\fi
+ \globalletempty\TABLEgraylinestatus
+ \globalletempty\TABLEgraylineerror
+ \expandafter\normalTABLElineformat#4#5\crcr % \crcr nodig ?
+ \TABLEnoalign{\nobreak\global\setTABLEactiontrue}}
+
+%D In order to prevent (as good as possible) alignment overflow
+%D and therefore \TEX\ error messages, we check the maximum
+%D number of columns. We keep track of the current column and
+%D maximum column by means of two \COUNTERS. Keep in mind that
+%D the number of \type{|}'s and \type{\VL}'s or alike is always
+%D one more than the number of columns.
+
+\newcount\currentTABLEcolumn
+\newcount\maxTABLEcolumn
+
+%D While defining this macro we change the \CATCODE\ of
+%D \type{|}. When counting the bars, we use a non active
+%D representation of the bar, simply because we cannot be sure
+%D if the bar is active or not.\footnote{Normally it is, but
+%D \TABLE\ changes the catcode when needed.}
+
+\bgroup
+ \catcode`\|=\@@other \gdef\@@otherbar {|}
+ \catcode`\"=\@@other \gdef\@@otherquote {"}
+ \catcode`\|=\@@active \gdef\@@useotherbar {\let|\@@otherbar}
+ \catcode`\"=\@@active \gdef\@@useotherquote{\let"\@@otherquote}
+\egroup
+
+\bgroup \catcode`\|=\@@other
+
+\gdef\getTABLEnofcolumns#1%
+ {\bgroup
+ \cleanupfeatures % needed !
+ \@@useotherbar
+ \@@useotherquote
+ \expanded{\defconvertedargument\noexpand\ascii{#1}}%
+ \@EA\doglobal\@EA\counttoken\@EA|\@EA\in\ascii\to\maxTABLEcolumn
+ \global\advance\maxTABLEcolumn \minusone
+ % in case of & counting, divide by 2
+ \egroup}
+
+\egroup
+
+\def\!ttDoHalign
+ {\edef\restoretablelineskips
+ {\baselineskip \the\baselineskip
+ \lineskiplimit\the\lineskiplimit
+ \lineskip \the\lineskip
+ \tabskip \the\tabskip}%
+ \baselineskip \zeropoint
+ \lineskiplimit\zeropoint
+ \lineskip \zeropoint
+ \tabskip \zeropoint
+ % does not work in normal tex
+ % \expanded{\getTABLEnofcolumns{\the\!taPreamble}}% added
+ \halign \the\!taTableSpread \bgroup
+ \span\the\!taPreamble
+ \ifx \!tfRowOfWidths \empty \else \!tfRowOfWidths \cr \fi}
+
+%D \startitemize[3*ruim]
+%D \sym{\type{\VL}} a vertical line
+%D \sym{\type{\VC}} a vertical colored line
+%D \sym{\type{\HL}} a horizontal line
+%D \sym{\type{\HC}} a horizontal colored line
+%D \stopitemize
+
+% \def\defineTABLErules
+% {\let\VL\TableVL
+% \let\VC\TableVC
+% \let\HL\TableHL
+% \let\HC\TableHC}
+
+\def\defineTABLErules
+ {\let\VL\TableVL
+ \let\VC\TableVC
+ \let\HL\TableHL
+ \let\HC\TableHC
+ \let\VS\TableVS
+ \let\VD\TableVD
+ \let\VT\TableVT
+ \let\VN\TableVN}
+
+\def\TableVL
+ {\checkTABLEautorow
+ \nextTABLEgrayline
+ \ifnum\currentTABLEcolumn>\maxTABLEcolumn
+ \setTABLEerror\TABLEmissingrow
+ \handleTABLEerror
+ \else
+ \global\advance\currentTABLEcolumn \plusone
+ \expandafter\doTableVL
+ \fi}
+
+\def\doTableVL
+ {\futurelet\next\dodoTableVL}
+
+\def\dodoTableVL
+ {\docomplexorsimpleTable\complexTableVL\simpleTableVL}
+
+\def\complexTableVL[#1]%
+ {\scratchcounter=0#1%
+ \multiply\scratchcounter \@@tiVLwidth
+ \setxvalue{wVL\the\currentTABLEcolumn}{\the\scratchcounter}%
+ \simpleTableVL}
+
+\def\simpleTableVL
+ {\doifundefined{wVL\the\currentTABLEcolumn}%
+ {\setgvalue{wVL\the\currentTABLEcolumn}{\@@tiVLwidth}}%
+ \gdef\TABLEbeforebar
+ {\getvalue{bVL\the\currentTABLEcolumn}%
+ \letgvalueempty{bVL\the\currentTABLEcolumn}}%
+ \gdef\TABLEafterbar
+ {\getvalue{eVL\the\currentTABLEcolumn}%
+ \letgvalueempty{eVL\the\currentTABLEcolumn}}%
+ \edef\@@tiVLwidth{\getvalue{wVL\the\currentTABLEcolumn}}%
+ \expanded{\normalTABLEcomplexbar\@@tiVLwidth\space}}% \relax breaks \use
+
+% \starttable[|||]
+% \HL
+% \VL test \VS test \VL \FR
+% \VL test \VD test \VL \MR
+% \VL test \VT test \VL \LR
+% \HL
+% \stoptable
+
+\def\TableVS {\VN1}
+\def\TableVD {\VN2}
+\def\TableVT {\VN3}
+\def\TableVN#1{\gdef\@VLn{#1}\VL}
+
+\def\resetVLvalues
+ {\dostepwiserecurse\zerocount\maxTABLEcolumn\plusone
+ {\setgvalue{wVL\recurselevel}{\@@tiVLwidth}%
+ \letgvalueempty{bVL\recurselevel}%
+ \letgvalueempty{eVL\recurselevel}}%
+ \global\currentTABLEcolumn\zerocount}
+
+\def\TableVC
+ {\checkTABLEautorow
+ \nextTABLEgrayline
+ \ifnum\currentTABLEcolumn>\maxTABLEcolumn
+ \setTABLEerror\TABLEmissingrow
+ \handleTABLEerror
+ \else
+ \global\advance\currentTABLEcolumn \plusone
+ \expandafter\doTableVC
+ \fi}
+
+\def\doTableVC
+ {\futurelet\next\dodoTableVC}
+
+\def\dodoTableVC
+ {\docomplexorsimpleTable\complexTableVC\simpleTableVC}
+
+\def\complexTableVC[#1]%
+ {\global\setvalue{bVC\the\currentTABLEcolumn}{\startcolor[#1]}%
+ \global\setvalue{eVC\the\currentTABLEcolumn}{\stopcolor}%
+ \simpleTableVC}
+
+\def\simpleTableVC
+ {\global\setvalue{bVL\the\currentTABLEcolumn}%
+ {\getvalue{bVC\the\currentTABLEcolumn}}%
+ \global\setvalue{eVL\the\currentTABLEcolumn}%
+ {\getvalue{eVC\the\currentTABLEcolumn}}%
+ \doTableVL}
+
+\def\TableHL
+ {\ifnum\currentTABLEcolumn>\maxTABLEcolumn
+ \chuckTABLEautorow
+ \else\ifnum\currentTABLEcolumn=\zerocount
+ %\chuckTABLEautorow
+ \TABLEnoalign
+ {\globalletempty\checkTABLEautorow
+ \globalletempty\chuckTABLEautorow}%
+ \else
+ \setTABLEerror\TABLEmissingcolumn
+ \handleTABLEerror
+ \fi\fi
+ \complexorsimpleTable{HL}}
+
+\def\complexTableHL[#1]%
+ {\TABLEnoalign
+ {\scratchcounter0#1%
+ \multiply\scratchcounter \@@tiHLheight
+ \edef\@@tiHLheight{\the\scratchcounter}%
+ \simpleTableHL}}
+
+\def\simpleTableHL
+ {\TABLEnoalign
+ {\nobreak
+ \ifnum\TABLEaction=\TABLErule
+ \writestatus\m!TABLE{skipping \string\HL}% \statusmessage
+ \else
+ \ifnum\TABLEaction=\TABLEmidrow
+ \writestatus\m!TABLE{change \string\MR\space into \string\LR/\string\SR}%
+ \else\ifnum\TABLEaction=\TABLEfirstrow
+ \writestatus\m!TABLE{change \string\MR\space into \string\SR}%
+ \fi\fi
+ \startHLcommand
+ \expandafter\normalTABLEfullrule\@@tiHLheight
+ \stopHLcommand
+ \globalletempty\startHLcommand
+ \globalletempty\stopHLcommand
+ \accountTABLElinewidth
+ \fi
+ \setTABLEaction\TABLErule
+ \nobreak}}
+
+\let\startHLcommand\empty
+\let\stopHLcommand \empty
+
+\def\TableHC
+ {\complexorsimpleTable{HC}}
+
+\def\complexTableHC[#1]%
+ {\TABLEnoalign
+ {\gdef\startHCcommand{\startcolor[#1]}%
+ \gdef\stopHCcommand {\stopcolor}}%
+ \simpleTableHC}
+
+\def\simpleTableHC
+ {\TABLEnoalign
+ {\globallet\startHLcommand\startHCcommand
+ \globallet\stopHLcommand \stopHCcommand}%
+ \HL}
+
+%D \startitemize[3*ruim]
+%D \sym{\type{\NL}} a vertical skip
+%D \sym{\type{\NR}} goto the next row
+%D \sym{\type{\NC}} goto the next column
+%D \sym{\type{\FC}} a first column
+%D \sym{\type{\MC}} a mid column
+%D \sym{\type{\LC}} a last column
+%D \stopitemize
+
+% n+1 uitleggen
+
+\def\defineTABLEsteps
+ {\let\NL\TableNL
+ \let\NR\TableNR
+ \let\NC\TableNC
+ \let\FC\TableNC
+ \let\MC\TableNC
+ \let\LC\TableNC}
+
+\def\TableNL
+ {\complexorsimpleTable{NL}}
+
+\def\complexTableNL[#1]%
+ {\TABLEnoalign
+ {\edef\@@tiNL{#1}%
+ \simpleTableNL}}%
+
+\def\simpleTableNL
+ {\TABLEnoalign
+ {\nobreak
+ \setbox0\vbox{\blank[\@@tiNL]}%
+ \vskip\ht0
+ \nobreak}}
+
+\def\TableNR
+ {\ifnum\currentTABLEcolumn>\maxTABLEcolumn
+ \global\currentTABLEcolumn\zerocount
+ \normalTABLElineending
+ \else
+ \setTABLEerror\TABLEmissingcolumn
+ \handleTABLEerror
+ \fi
+ \TABLEnoalign
+ {\nobreak
+ \setTABLEaction\TABLEunknown}}
+
+\def\TableNC
+ {\checkTABLEautorow
+ \nextTABLEgrayline
+ \ifnum\currentTABLEcolumn>\maxTABLEcolumn
+ \setTABLEerror\TABLEmissingrow
+ \handleTABLEerror
+ \else
+ \global\advance\currentTABLEcolumn \plusone
+ \normalTABLEquote
+ \fi}
+
+% \bgroup
+% \catcode`\|=\@@active
+% \catcode`\"=\@@active
+% \gdef\redefinetablebarandquote
+% {\def|{\VL}% % \normalTABLEsimplebar
+% \def\|##1{\VL[##1]}% % \normalTABLEcomplexbar
+% \def"{\NC}} % \normalTABLEquote
+% \egroup
+
+\let\redefinetablebarandquote\relax
+
+%D \startitemize[3*ruim]
+%D \sym{\type{\DL}}
+%D \sym{\type{\DV}} (\type{\VD})
+%D \sym{\type{\DC}}
+%D \sym{\type{\DR}}
+%D \stopitemize
+
+\newif\ifTABLEdivision
+
+% \def\defineTABLEdivisions
+% {\global\TABLEdivisionfalse % in start
+% \let\DL\TableDL
+% \let\DC\TableDC
+% \let\DV\TableDV
+% \let\VD\TableDV
+% \let\DR\TableDR}
+
+\def\defineTABLEdivisions
+ {\global\TABLEdivisionfalse % in start
+ \let\DL\TableDL
+ \let\DC\TableDC
+ \let\DV\TableDV
+ \let\DR\TableDR}
+
+\def\checkTABLEdivision
+ {\ifTABLEdivision \else
+ \chuckTABLEautorow
+ \global\currentTABLEcolumn\zerocount
+ \global\TABLEdivisiontrue
+ \fi}
+
+\def\TableDL
+ {\checkTABLEdivision
+ \complexorsimpleTable{DL}}
+
+\def\simpleTableDL
+ {\complexTableDL[1]}
+
+\def\complexTableDL[#1]%
+ {\ifnum\TABLEaction=\TABLErule
+ \writestatus\m!TABLE{skipping \string\DL}%
+ \else
+ \ifnum\TABLEaction=\TABLEmidrow
+ \writestatus\m!TABLE{change \string\MR\space into \string\LR/\string\SR}%
+ \else\ifnum\TABLEaction=\TABLEfirstrow
+ \writestatus\m!TABLE{change \string\MR\space into \string\SR}%
+ \fi\fi
+ \setTABLEaction=\TABLEunknown
+ \ifnum\currentTABLEcolumn>\maxTABLEcolumn
+ \setTABLEerror\TABLEmissingrow
+ \handleTABLEerror
+ \fi
+ %\startHLcommand
+ \ifnum#1=\plusone
+ \global\advance\currentTABLEcolumn \plustwo
+ \let\next\normalTABLEsinglerule
+ \else
+ \ifnum#1<\maxTABLEcolumn
+ \global\advance\currentTABLEcolumn \plusone
+ \def\next{\normalTABLEmultirule{#1}}%
+ \else
+ \setTABLEerror\TABLEdivisionoverflow
+ \let\next\handleTABLEerror
+ \fi
+ \fi
+ \next
+ %\stopHLcommand
+ %\globalletempty\startHLcommand
+ %\globalletempty\stopHLcommand
+ \fi}
+
+\def\TableDV
+ {\TableDCV\normalTABLEsimplebar}
+
+\def\TableDC
+ {\TableDCV\normalTABLEquote}
+
+\def\TableDCV#1%
+ {\checkTABLEdivision
+ \checkTABLEautorow
+ \ifnum\currentTABLEcolumn>\maxTABLEcolumn
+ \setTABLEerror\TABLEmissingrow
+ \handleTABLEerror
+ \else
+ \global\advance\currentTABLEcolumn \plusone
+ #1%
+ \fi}
+
+\def\TableDR
+ {\ifnum\currentTABLEcolumn<\maxTABLEcolumn % silent recovery
+ %\setTABLEerror\TABLEmissingcolumn % some day warning
+ %\handleTABLEerror
+ \finishTABLErow
+ \else
+ \global\currentTABLEcolumn\zerocount % nog check
+ \normalTABLElineending
+ \fi
+ \TABLEnoalign
+ {\nobreak
+ \global\TABLEdivisionfalse
+ \accountTABLElinewidth % temporary solution
+ \setTABLEaction\TABLErule}}
+
+\def\accountTABLElinewidth
+ {\scratchdimen\LineThicknessUnit}
+
+%D \startitemize[3*ruim]
+%D \sym{\type{\BC}}
+%D \sym{\type{\BR}}
+%D \sym{\type{\BACKGROUND}}
+%D \sym{\type{\CL}}
+%D \sym{\type{\RL}}
+%D \sym{\type{\BL}}
+%D \sym{\type{\RASTER}}
+%D \sym{\type{\COLOR}}
+%D \stopitemize
+
+% definieer: \BC \BL
+% herhaal: \BR
+% definieer: \CL \RL (eerste \CL[green] = hele row! / \CL[1,green])
+% dus: \CL en \RL mix tussen \HL en \BL
+
+\def\defineTABLEbackgrounds
+ {\let\BC \TableBC
+ \let\BL \TableBL
+ \let\BR \TableBR
+ \let\BACKGROUND\TableBR
+ \let\CL \TableCL
+ \let\RL \TableRL
+ \let\COLOR \TableCOLOR
+ \let\RASTER \TableRASTER
+ \globallet\lastTABLEc\@@tibackgroundcolor
+ \globallet\lastTABLEr\@@tibackgroundscreen
+ \doifinsetelse\@@tibackground{c,color} % \v!color
+ {\global\chardef\TABLEcr\plusone}
+ {\global\chardef\TABLEcr\plustwo}}
+
+\def\TableBC
+ {\ifTABLEgrayline
+ \normalTABLEquote
+ \else
+ \TABLEnoalign\bgroup
+ \globallet\nextTABLEgrayline\executeTABLEgrayline
+ \globalletempty\TABLEgrayline % new
+ \let\BL\doTableBL
+ \let\BC\doTableBC
+ \expandafter\doTableBC
+ \fi}
+
+\def\doTableBC
+ {\addtoTABLEgrayline{\BC}%
+ \gobbleTableBCL}
+
+\def\TableBL
+ {\TABLEnoalign\bgroup
+ \globallet\nextTABLEgrayline\executeTABLEgrayline
+ \globalletempty\TABLEgrayline % new
+ \let\BL\doTableBL
+ \let\CL\doTableCL
+ \let\RL\doTableRL
+ \let\BC\doTableBC
+ \doTableBL}
+
+\def\doTableBL
+ {\complexorsimpleTable{BL}}
+
+\def\simpleTableBL
+ {\complexTableBL[,]}
+
+\def\complexTableBL[#1]%
+ {\analyzeTABLEcr[#1]%
+ \handleTABLEcr}
+
+\def\TableBR#1%
+ {\TABLEnoalign
+ {\globallet\nextTABLEgrayline\executeTABLEgrayline
+ \checkTABLEgrayline#1\BR
+ \global\TABLEgraylinetrue}}
+
+\def\analyzeTABLEcr[#1]%
+ {\doanalyzeTABLEcr[#1,,]}
+
+\def\doanalyzeTABLEcr[#1,#2,#3]%
+ {\doifnumberelse{#1x} % Is the x still needed here?
+ {\dodoanalyzeTABLEcr[#1,#2,#3]}
+ {\dodoanalyzeTABLEcr[1,#1,#2]}}
+
+\def\dodoanalyzeTABLEcr[#1,#2,#3]%
+ {\global\chardef\TABLEn#1\relax
+ \processaction
+ [#2]
+ [ c=>\global\chardef\TABLEcr1,%
+ color=>\global\chardef\TABLEcr1,%
+ r=>\global\chardef\TABLEcr2,%
+ raster=>\global\chardef\TABLEcr2]%
+ \ifcase\TABLEcr \or
+ \doifsomething{#3}{\xdef\lastTABLEc{#3}}%
+ \or
+ \doifsomething{#3}{\xdef\lastTABLEr{#3}}%
+ \fi}
+
+\def\handleTABLEcr
+ {\relax % else funny side effect
+ \ifcase\TABLEcr
+ % Can't happen!
+ \or
+ \addtoTABLEgrayline{\complexTableCOLOR[\the\TABLEn,\lastTABLEc]}%
+ \else
+ \addtoTABLEgrayline{\complexTableRASTER[\the\TABLEn,\lastTABLEr]}%
+ \fi
+ \gobbleTableBCL}
+
+\def\analyzeTABLEcrl#1[#2]%
+ {\doanalyzeTABLEcrl#1[#2,,]}
+
+\def\doanalyzeTABLEcrl#1[#2,#3,#4]%
+ {\doifnumberelse{#2x} % x ????????????????????
+ {\dodoanalyzeTABLEcr[#2,#1,#3]}
+ {\dodoanalyzeTABLEcr[\ifTABLEgrayline1\else\maxTABLEcolumn\fi,#1,#2]}}
+
+\def\TableCL
+ {\TABLEnoalign\bgroup
+ \globallet\nextTABLEgrayline\executeTABLEgrayline
+ \globalletempty\TABLEgrayline % new
+ \let\BL\doTableBL
+ \let\CL\doTableCL
+ \let\RL\doTableRL
+ \let\BC\doTableBC
+ \doTableCL}
+
+\def\doTableCL
+ {\complexorsimpleTable{CL}}
+
+\def\simpleTableCL% nog eens \'e\'en lijn van maken
+ {\BL[\the\maxTABLEcolumn,c,\lastTABLEc]}
+
+\def\complexTableCL[#1]%
+ {\analyzeTABLEcrl{c}[#1]%
+ \handleTABLEcr}
+
+\def\TableRL
+ {\TABLEnoalign\bgroup
+ \globallet\nextTABLEgrayline\executeTABLEgrayline
+ \globalletempty\TABLEgrayline % new
+ \let\BL\doTableBL
+ \let\CL\doTableCL
+ \let\RL\doTableRL
+ \let\BC\doTableBC
+ \doTableRL}
+
+\def\doTableRL
+ {\complexorsimpleTable{RL}}
+
+\def\simpleTableRL
+ {\BL[\the\maxTABLEcolumn,r,\lastTABLEr]}
+
+\def\complexTableRL[#1]%
+ {\analyzeTABLEcrl{r}[#1]%
+ \handleTABLEcr}
+
+\def\checkTABLEgrayline#1#2%
+ {\!!doneatrue
+ \ifx#1\AR
+ \!!doneafalse
+ \else\ifx#1\SR\else\ifx#1\FR\else\ifx#1\MR\else\ifx#1\LR\else
+ \!!doneafalse
+ \fi\fi\fi\fi\fi
+ \if!!donea
+ \gdef\TABLEgraylinestatus
+ {[\string#1]}%
+ \gdef\TABLEendBCL
+ {#1}%
+ \else
+ \gdef\TABLEgraylineerror
+ {[\string#2\string#1->\string#2\string\SR]}%
+ \gdef\TABLEendBCL
+ {\SR}%
+ \fi}
+
+\def\endTABLErowGL#1#2#3%
+ {\ifcase#1\relax
+ % unknown
+ \or
+ \doPreTableGL\TABLErowfactor\TABLErowfactor
+ \or
+ \doPreTableGL\TABLErowfactor\TABLErowzero
+ \or
+ \ifnum\TABLEforce=\TABLEforcelastrow
+ \doPreTableGL\TABLErowzero\TABLErowfactor
+ \else\ifnum\TABLEforce=\TABLEforcefirstrow
+ \doPreTableGL\TABLErowfactor\TABLErowzero
+ \else
+ \doPreTableGL\TABLErowzero\TABLErowzero
+ \fi\fi
+ \or
+ \doPreTableGL\TABLErowzero\TABLErowfactor
+ \fi}
+
+\def\doPreTableGL#1#2% betere namen
+ {\xdef\OldLineThicknessFactor{\the\LineThicknessFactor}%
+ \xdef\OldLineThicknessUnit{\the\LineThicknessUnit}%
+ \global\LineThicknessFactor\plusone
+ \setbox0\hbox{\AugmentedTableStrut{#1}{#2}}%
+ \getboxheight\dimen0\of\box0\relax
+ \xdef\TABLEgraylineHeight{\the\dimen0}%
+ \global\LineThicknessUnit\TABLEgraylineHeight}
+
+\def\doPostTableGL
+ {\global\LineThicknessFactor\OldLineThicknessFactor
+ \global\LineThicknessUnit \OldLineThicknessUnit}
+
+% kan simpeler
+
+\def\docomplexTableCOLOR[#1]%
+ {\dodocomplexTableGL\startcolor \stopcolor [#1,\lastTABLEc,,]}
+
+\gdef\docomplexTableRASTER[#1]%
+ {\dodocomplexTableGL\startraster\stopraster[#1,\lastTABLEr,,]}
+
+\def\dodocomplexTableGL#1#2[#3,#4,#5,#6]%
+ {\doifelsenothing{#4}{#1[#5]}{#1[#4]}%
+ \doPreTableGL\TABLEendofrowheight\TABLEendofrowdepth
+ \ifnum#3=\plusone % else conflict with \omit in \=
+ \let\next\normalTABLEsinglerule
+ \else
+ \def\next{\normalTABLEmultirule{#3}}%
+ \fi
+ \next
+ \doPostTableGL
+ #2}
+
+\def\TableBACKGROUND
+ {\TableBR}
+
+\def\simpleTableRASTER #1{\docomplexTableRASTER[1]#1}
+\def\complexTableRASTER[#1]{\docomplexTableRASTER[#1]}
+\def\simpleTableCOLOR {\docomplexTableCOLOR [1]}
+\def\complexTableCOLOR [#1]{\docomplexTableCOLOR [#1]}
+
+\def\TableRASTER{\complexorsimpleTable{RASTER}}
+\def\TableCOLOR {\complexorsimpleTable{COLOR}}
+
+\def\addtoTABLEgrayline#1%
+ {\TABLEgraytoks\expandafter{\TABLEgrayline}%
+ \xdef\TABLEgrayline{\the\TABLEgraytoks\noexpand#1}}
+
+\def\setTableBCL#1#2%
+ {\ifx#1#2%
+ \gdef\TABLEgraylinestatus{[\string#1]}%
+ \gdef\TABLEendBCL{#1}%
+ \addtoTABLEgrayline{#1}%
+ \else
+ \gdef\TABLEgraylineerror{[\string#1->\string#2]}%
+ \gdef\TABLEendBCL{#2}%
+ \addtoTABLEgrayline{#2}%
+ \fi}
+
+\def\gobbleTableBCL#1%
+ {\ifx#1\BC \let\next\doTableBC \else
+ \ifx#1\BL \let\next\doTableBL \else
+ \ifx#1\SR \setTableBCL\SR\SR \let\next\egroup \else
+ \ifx#1\FR \setTableBCL\FR\FR \let\next\egroup \else
+ \ifx#1\MR \setTableBCL\MR\MR \let\next\egroup \else
+ \ifx#1\LR \setTableBCL\LR\LR \let\next\egroup \else
+ \setTableBCL #1\SR \let\next\egroup
+ \fi\fi\fi\fi\fi\fi
+ \next}
+
+\def\executeTABLEgrayline
+ {\TABLEnoalign
+ {\def\BC
+ {\advance\currentTABLEcolumn \plusone}%
+ \def\dodocomplexTableGL##1##2[##3,##4,##5,##6]%
+ {\BC\advance\currentTABLEcolumn ##3 }%
+ \let\endTABLErow\endTABLEgrayrow
+ \currentTABLEcolumn\zerocount
+ \TABLEgrayline\TABLEendBCL % determine n of columns and height
+ \advance\currentTABLEcolumn \minusone
+ \ifnum\currentTABLEcolumn>\maxTABLEcolumn
+ % error message too long line
+ \globalletempty\TABLEgrayline
+ \else
+ % \message{n of color columns: \the\currentTABLEcolumn}\wait
+ \global\TABLEgraylinetrue % vanaf hier nog checken
+ \fi
+ \global\currentTABLEcolumn\zerocount}%
+ \unskip\TABLEgrayline\TABLEendBCL
+ \TABLEnoalign
+ {\nobreak
+ \vskip-\TABLEgraylineHeight
+ \nobreak
+ \global\setTABLEactiontrue
+ \global\currentTABLEcolumn\zerocount
+ \globalletempty\nextTABLEgrayline
+ \global\TABLEgraydonetrue
+ \global\TABLEgraylinefalse}}
+
+\def\endTABLEgrayrow#1#2#3%
+ {\ifcase#1\relax
+ \global\chardef\TABLEendofrowheight\TABLErowfactor
+ \global\chardef\TABLEendofrowdepth \TABLErowfactor
+ \or
+ \global\chardef\TABLEendofrowheight\TABLErowfactor
+ \global\chardef\TABLEendofrowdepth \TABLErowfactor
+ \or
+ \global\chardef\TABLEendofrowheight\TABLErowfactor
+ \global\chardef\TABLEendofrowdepth \TABLErowzero
+ \or
+ \ifnum\TABLEforce=\TABLEforcelastrow
+ \global\chardef\TABLEendofrowheight\TABLErowzero
+ \global\chardef\TABLEendofrowdepth \TABLErowfactor
+ \else\ifnum\TABLEforce=\TABLEforcefirstrow
+ \global\chardef\TABLEendofrowheight\TABLErowfactor
+ \global\chardef\TABLEendofrowdepth \TABLErowzero
+ \else
+ \global\chardef\TABLEendofrowheight\TABLErowzero
+ \global\chardef\TABLEendofrowdepth \TABLErowzero
+ \fi\fi
+ \or
+ \global\chardef\TABLEendofrowheight\TABLErowzero
+ \global\chardef\TABLEendofrowdepth \TABLErowfactor
+ \fi}
+
+\def\defineTABLEshorthands%
+ {\def\SPAN##1{\use{##1}}%
+ \def\TWO {\use2}%
+ \def\THREE {\use3}%
+ \def\FOUR {\use4}%
+ \def\FIVE {\use5}%
+ \def\SIX {\use6}%
+ \def\REF {\ReFormat}}
+
+\def\defineTABLEunits
+ {\processaction
+ [\@@tidistance]
+ [ \v!none=>\OpenUp00\def\LOW{\Lower6 },
+ \v!small=>\OpenUp00\def\LOW{\Lower6 }, % == baseline
+ \v!medium=>\OpenUp11\def\LOW{\Lower7 },
+ \v!big=>\OpenUp22\def\LOW{\Lower8 }]%
+ \doifelse\@@tidistance\v!none
+ {\chardef\TABLErowfactor\zerocount}
+ {\chardef\TABLErowfactor\plustwo }}
+
+\def\dohandlebar % here ?
+ {\ifmmode
+ \@EA\domathmodebar
+ \else\ifintable
+ \@EAEAEA\domathmodebar
+ \else
+ \@EAEAEA\dotextmodebar
+ \fi\fi}
+
+% De macro's t.b.v. instellingen.
+
+\def\setuptables
+ {\dosingleargument\dosetuptables}
+
+\def\dosetuptables[#1]%
+ {\getparameters[\??ti][#1]%
+ \processaction
+ [\@@tialign]
+ [ \v!right=>\def\TABLEparalignment{\raggedright},
+ \v!left=>\def\TABLEparalignment{\raggedleft},
+ \v!middle=>\def\TABLEparalignment{\raggedcenter},
+ \s!default=>\def\TABLEparalignment{\notragged},
+ \s!unknown=>\def\TABLEparalignment{\notragged}]%
+ \assignalfadimension\@@tiVL\@@tiVLwidth 246%
+ \assignalfadimension\@@tiHL\@@tiHLheight246}
+
+\def\localTABLEsetup
+ {\@@ticommands\relax
+ \expanded{\switchtobodyfont[\@@tibodyfont]}%
+ \StrutHeightFactor 8
+ \StrutDepthFactor 4
+ \LineThicknessFactor4
+ \NormalTLTU {.1pt}%
+ \NormalTSU {\normalbaselineskip\divide\StrutUnit 12 }%
+ \NormalTableUnits}
+
+%D And then I wrote the tabulate environment. That
+%D alternative supports setting the rule thickness and color,
+%D so here is the table alternative.
+
+\let\startglobalTABLEcolor\empty
+\let\stopglobalTABLEcolor \empty
+
+\def\localTABLEsetup
+ {\@@ticommands\relax
+ % bodyfont
+ \expanded{\switchtobodyfont[\@@tibodyfont]}%
+ % linecolor
+ \doifsomething\@@tirulecolor
+ {\def\startglobalTABLEcolor{\startcolor[\@@tirulecolor]}%
+ \def\stopglobalTABLEcolor {\stopcolor}}%
+ % linethickness
+ \LineThicknessFactor4
+ \scratchdimen\@@tirulethickness
+ \divide\scratchdimen \LineThicknessFactor
+ \expanded{\NormalTLTU{\the\scratchdimen}}%
+ % spacing, was depth=4 height=8 (counters, sigh, now macros)
+ \doifelse\@@tiheight\v!strut
+ {\let\StrutHeightFactor\@@itheight}
+ {\let\StrutHeightFactor\@@tiheight}%
+ \doifelse\@@tidepth\v!strut
+ {\let\StrutDepthFactor\@@itdepth}
+ {\let\StrutDepthFactor\@@tidepth}%
+ \scratchdimen\StrutHeightFactor\points \multiply\scratchdimen 10%
+ \edef\StrutHeightFactor{\withoutpt\the\scratchdimen}%
+ \scratchdimen\StrutDepthFactor \points \multiply\scratchdimen 10%
+ \edef\StrutDepthFactor{\withoutpt\the\scratchdimen}%
+ % units
+ \NormalTSU{\normalbaselineskip\divide\StrutUnit 12 }%
+ \NormalTableUnits}
+
+\def\OpenUp#1#2%
+ {\scratchdimen\StrutHeightFactor \points \advance\scratchdimen #1\points
+ \edef\StrutHeightFactor{\withoutpt\the\scratchdimen}%
+ \scratchdimen\StrutDepthFactor \points \advance\scratchdimen #2\points
+ \edef\StrutDepthFactor{\withoutpt\the\scratchdimen}}
+
+%D As one can see, we didn't only add color, but also more
+%D control over spacing.
+%D
+%D \startbuffer[a]
+%D \starttable[|c|]
+%D \HL
+%D \VL \strut test \VL \FR
+%D \VL \strut test \VL \MR
+%D \VL \strut test \VL \MR
+%D \VL \strut test \VL \LR
+%D \HL
+%D \stoptable
+%D \stopbuffer
+%D
+%D \startbuffer[b]
+%D \starttabulate[|c|]
+%D \HL
+%D \NC test \NC \NR
+%D \NC test \NC \NR
+%D \NC test \NC \NR
+%D \NC test \NC \NR
+%D \HL
+%D \stoptabulate
+%D \stopbuffer
+%D
+%D In the next example, the first table is defined as:
+%D
+%D \typebuffer[a]
+%D
+%D and the second one as:
+%D
+%D \typebuffer[b]
+%D
+%D The first table is typeset using the default height and
+%D depth factors .8 and .4. The second table has both factors
+%D set to \type {strut}, and the third table shows what
+%D happens when we set the values to zero. The rightmost table
+%D is typeset using the tabulate environment.
+%D
+%D \startcombination[4*1]
+%D {$\vcenter{\getbuffer[a]}$}
+%D {\hbox{h=.8 d=.4}}
+%D {\setuptables[height=strut,depth=strut]$\vcenter{\getbuffer[a]}$}
+%D {\hbox{h=d=\type{strut}}}
+%D {\setuptables[height=0,depth=0]$\vcenter{\getbuffer[a]}$}
+%D {\hbox{h=d=0}}
+%D {$\vcenter{\getbuffer[b]}$}
+%D {\hbox{tabulate}}
+%D \stopcombination
+
+\setuptables
+ [HL=\v!medium,
+ VL=\v!medium,
+ NL=\v!small,
+ \c!frame=,
+ \c!align=\v!right,
+ \c!depth=.40, % \v!strut
+ \c!height=.80, % \v!strut
+ \c!rulethickness=\linewidth,
+ \c!rulecolor=,
+ \c!distance=\v!medium,
+ \c!bodyfont=\the\bodyfontsize,
+ \c!commands=,
+ \c!background=\v!screen,
+ \c!backgroundscreen=\@@rsscreen,
+ \c!backgroundcolor=,
+ \c!split=\v!auto]
+
+\def\ifintabel{\ifintable} % upward compatible
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-tbl.tex b/Master/texmf-dist/tex/context/base/tabl-tbl.mkii
index 843e9266211..15e827e68b7 100644
--- a/Master/texmf-dist/tex/context/base/core-tbl.tex
+++ b/Master/texmf-dist/tex/context/base/tabl-tbl.mkii
@@ -1,7 +1,7 @@
%D \module
%D [ file=core-tbl,
%D version=1998.11.03,
-%D title=\CONTEXT\ Core Macros,
+%D title=\CONTEXT\ Table Macros,
%D subtitle=Text Flow Tabulation,
%D author=Hans Hagen,
%D date=\currentdate,
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Core Macros / Tabulation}
+\writestatus{loading}{ConTeXt Table Macros / Tabulation}
% \processbetween gebruiken in head/tail macros
@@ -198,20 +198,31 @@
\def\tablebox#1%
{\csname\@@tabbox@@\number#1\endcsname}
-\def\checktablebox#1%
- {\ifundefinedelse{\@@tabbox@@\number#1}%
- \expandafter\newbox\csname\@@tabbox@@\number#1\endcsname
- \fi}
+% \def\checktablebox#1%
+% {\ifundefinedelse{\@@tabbox@@\number#1}%
+% \expandafter\newbox\csname\@@tabbox@@\number#1\endcsname
+% \fi}
-\def\initializetablebox#1%
- {\ifundefined{\@@tabbox@@\number#1}%
- \expandafter\newbox\csname\@@tabbox@@\number#1\endcsname
+\def\initializetablebox#1% also used elsewhere
+ {\ifcsname\@@tabbox@@\number#1\endcsname
+ \global\setbox\csname\@@tabbox@@\number#1\endcsname\emptybox
\else
- \global\setbox\csname\@@tabbox@@\number#1\endcsname\box\voidb@x
+ \expandafter\newbox\csname\@@tabbox@@\number#1\endcsname
\fi}
+% \def\initializetableboxes#1% hm, not that efficient, best make a simple dedicated tail recurser
+% {\dorecurse#1{\initializetablebox\recurselevel}}
+
\def\initializetableboxes#1%
- {\dorecurse#1{\initializetablebox\recurselevel}}
+ {\scratchcounter#1\relax
+ \doinitializetableboxes}
+
+\def\doinitializetableboxes
+ {\ifnum\scratchcounter>\zerocount
+ \initializetablebox\scratchcounter
+ \advance\scratchcounter\minusone
+ \expandafter\doinitializetableboxes
+ \fi}
\initializetableboxes\noftabcolumns
@@ -270,7 +281,6 @@
% some entries can be left out if we test for them being set
\@EA\appendtoks \@EA&\@EA\hskip\pretabskip\pretabrule##&\to\!!toksa
\appendtoks \ignorespaces\to\!!toksa
-% \@EA\appendtoks\@EA\xdef\@EA\tabulatecolumn\@EA{\the\tabulatecolumns}\to\!!toksa
\@EA\appendtoks\@EA\global\@EA\tabulatecolumn\the\tabulatecolumns\relax\to\!!toksa
\appendtoks \checktabulatesetups\to\!!toksa
\appendtoks \checktabulatehook\to\!!toksa
@@ -307,15 +317,41 @@
\let\gettabulateexit\dogettabulateexit
\tabulatewidth\zeropoint}
+% todo: we can speed up this module a bit
+%
+% \expanded{\!!toksa{\the\!!toksa
+% &\hskip\pretabskip\noexpand\pretabrule####&
+% \ignorespaces
+% \global\tabulatecolumn\the\tabulatecolumns
+% \noexpand\checktabulatesetups
+% \noexpand\checktabulatehook
+% \preamblebox
+% \bgroup\noexpand\bbskip\bgroup\normalunexpanded{#1}%
+% \noexpand\ifnum\tabulatetype=\plusone \noexpand\else
+% \the\tabulatebmath
+% \the\tabulatefont
+% \the\tabulatesettings
+% \the\tabulatebefore
+% \noexpand\fi
+% \bgroup\ignorespaces
+% \noexpand\tabulatehook####%
+% \unskip\unskip\noexpand\ifmmode\noexpand\else\endgraf\noexpand\fi\egroup
+% \noexpand\ifnum\noexpand\tabulatetype=1 \noexpand\else
+% \the\tabulateafter
+% \the\tabulateemath
+% \noexpand\fi
+% \normalunexpanded{#2}\egroup\egroup
+% &\noexpand\posttabrule\hskip\noexpand\postabskip####}}%
+
\def\dosettabulatepreamble
{\ifx\next\relax
\let\nextnext\relax % == \expandafter\gobbleoneargument
\else
\let\nextnext\settabulatepreamble
- \ifx x\next \chardef\tabulatealign\zerocount % internal
- \else\ifx l\next \chardef\tabulatealign\plusone
- \else\ifx r\next \chardef\tabulatealign\plustwo
- \else\ifx c\next \chardef\tabulatealign\plusthree
+ \ifx x\next \let\tabulatealign\zerocount % internal
+ \else\ifx l\next \let\tabulatealign\plusone
+ \else\ifx r\next \let\tabulatealign\plustwo
+ \else\ifx c\next \let\tabulatealign\plusthree
\else\ifx p\next \let\nextnext\gettabulateparagraph
\else\ifx s\next \let\nextnext\gettabulatesetups
\else\ifx w\next \let\nextnext\gettabulatewidth
@@ -400,17 +436,17 @@
\settabulatepreamble}
\def\gettabulatewidth
- {\chardef\tabulatemodus\zerocount
- \chardef\tabulatedimen\zerocount
+ {\let\tabulatemodus\zerocount
+ \let\tabulatedimen\zerocount
\doifnextcharelse(\dogettabulatewidth\settabulatepreamble}
\def\gettabulateparagraph
{\doifnextcharelse{(}
- {\chardef\tabulatemodus\plusone
- \chardef\tabulatedimen\plusone
+ {\let\tabulatemodus\plusone
+ \let\tabulatedimen\plusone
\dogettabulatewidth}
- {\chardef\tabulatemodus\plustwo
- \chardef\tabulatedimen\zerocount
+ {\let\tabulatemodus\plustwo
+ \let\tabulatedimen\zerocount
\settabulatepreamble}}
% \def\dogettabulatewidth(#1)%
@@ -422,7 +458,7 @@
% \def\dogettabulatewidth(#1)%
% {\doifelse{#1}\v!passend
-% {\chardef\tabulatemodus\plusthree}
+% {\let\tabulatemodus\plusthree}
% {\tabulatewidth#1\relax}%
% \ifnum\tabulatedimen=\plusone
% \global\advance\tabulatepwidth\tabulatewidth
@@ -442,8 +478,8 @@
\def\dogettabulatewidth(#1)%
{\processallactionsinset
[#1]%
- [ \v!fit=>\chardef\tabulatemodus\plusthree,
- \v!fixed=>\chardef\tabulatemodus\plusthree
+ [ \v!fit=>\let\tabulatemodus\plusthree,
+ \v!fixed=>\let\tabulatemodus\plusthree
\tabulatenopbreaktrue,
\s!unknown=>\tabulatewidth#1\relax]%
\ifnum\tabulatedimen=\plusone
@@ -458,14 +494,14 @@
\def\tabulateraggedcenter{\ifnum\tabulatetype=\plusone \else\raggedcenter\fi}
\def\tabulateraggedleft {\ifnum\tabulatetype=\plusone \else\raggedleft \fi}
\def\tabulatenotragged {\ifnum\tabulatetype=\plusone \else\notragged \fi}
-\def\tabulatehss {\ifnum\tabulatetype=\plusone \else\hss \fi}
+\def\tabulatehss {\ifnum\tabulatetype=\plusone \else\hss \fi} % never change this to a fill
\bgroup \catcode`\|=\@@other
\gdef\nexttabulate#1|%
- {\chardef\tabulatealign\@@tabulatealign
- \chardef\tabulatemodus\zerocount
- \chardef\tabulatedimen\zerocount
+ {\let\tabulatealign\@@tabulatealign
+ \let\tabulatemodus\zerocount
+ \let\tabulatedimen\zerocount
\tabulatebefore \emptytoks
\tabulateafter \emptytoks
\tabulatebmath \emptytoks
@@ -506,7 +542,7 @@
\expandafter\nexttabulate
\fi}
-\def\splitofftabulatebox
+\def\splitofftabulatebox % overloaded in anch-pgr
{\dontcomplain
\global\setbox\tabulatebox % % % global ? % % %
\vsplit\tablebox\tabulatecolumn to \lineheight
@@ -694,8 +730,8 @@
% An example of its usage:
-\appendtoks \optimizeverbatimfalse \to \everytabulate
-\appendtoks \chardef\recodeverbatimmode\plustwo \to \everytabulate
+\appendtoks \optimizeverbatimfalse \to \everytabulate
+\appendtoks \let\recodeverbatimmode\plustwo \to \everytabulate
% A status variable:
@@ -718,17 +754,17 @@
\resetcharacteralign
% todo: spacing around tabulate when bodyfont is set
% expansion en test needed ?
- \splittabulatefalse
+ \splittabulatetrue
\processaction
[\tabulateparameter\c!split]
- [ \v!yes=>\splittabulatetrue,
+ [% \v!yes=>\splittabulatetrue,
% \v!repeat=>\splittabulatetrue, % todo, default yes
- \v!auto=>\ifinsidesplitfloat\splittabulatetrue\fi]%
+ \v!no=>\splittabulatefalse,
+ \v!auto=>\ifinsidefloat\ifinsidesplitfloat\else\splittabulatefalse\fi\fi]%
\doifvaluesomething{\??tt\currenttabulate\c!bodyfont}
- {\expanded{\switchtobodyfont
- [\tabulateparameter\c!bodyfont]}}%
- \postponefootnotes % new, to be tested / will be configurable
- \chardef\tabulatepass\plusone
+ {\expanded{\switchtobodyfont[\tabulateparameter\c!bodyfont]}}%
+ \postponenotes % new, to be tested / will be configurable
+ \let\tabulatepass\plusone
\widowpenalty\zerocount % otherwise lines are not broken
\clubpenalty \zerocount % but overlap in funny ways
\the\everytabulate
@@ -809,7 +845,7 @@
%\def\dotabulateruleseperator
% {\vskip\strutdp}
-\def\dotabulateruleseperator
+\def\dotabulateruleseperator % can be sped up
{\bgroup
\let\factor\!!plusone
\scratchskip\strutdp
@@ -908,21 +944,32 @@
\newcount\totalnoftabulatelines
\newcount\minusnoftabulatelines
+\setvalue{\??tt:\c!align:\v!normal}{0}
+\setvalue{\??tt:\c!align:\v!right }{1}
+\setvalue{\??tt:\c!align:\v!left }{2}
+\setvalue{\??tt:\c!align:\v!middle}{3}
+
+\setvalue{\??tt:\c!header:\v!repeat}{\plusone}
+\setvalue{\??tt:\c!header:\v!text }{\plustwo}
+
\bgroup \catcode`\|=\@@other
+\newtoks\everyaftertabulaterow
+
\gdef\processtabulate[|#1|]% in the process of optimizing
{\tabulateunit\tabulateparameter\c!unit
\checkfulltabulatecontent
\globallet\tabulateruledepth \!!zeropoint
\globallet\tabulateruleheight\!!zeropoint
- \ExpandFirstAfter\processaction % use \setalignmentswitch instead
- [\tabulateparameter\c!align]
- [ \v!normal=>\def\@@tabulatealign{0},% = default value
- \v!right=>\def\@@tabulatealign{1},% chardefs gebruiken
- \v!left=>\def\@@tabulatealign{2},%
- \v!middle=>\def\@@tabulatealign{3},%
- \s!default=>\def\@@tabulatealign{0},%
- \s!unknown=>\def\@@tabulatealign{0}]%
+ \edef\@@tabulatealign{\executeifdefined{\??tt:\c!align:\tabulateparameter\c!align}0}%
+% \ExpandFirstAfter\processaction % use \setalignmentswitch instead
+% [\tabulateparameter\c!align]
+% [ \v!normal=>\def\@@tabulatealign{0},% = default value
+% \v!right=>\def\@@tabulatealign{1},% chardefs gebruiken
+% \v!left=>\def\@@tabulatealign{2},%
+% \v!middle=>\def\@@tabulatealign{3},%
+% \s!default=>\def\@@tabulatealign{0},%
+% \s!unknown=>\def\@@tabulatealign{0}]%
\let\pretabskip\!!zeropoint
\def\postabskip{.5\tabulateunit}%
\global\tabulatecolumns\zerocount
@@ -941,10 +988,11 @@
\donetrue
\fi\fi
\ifdone
- \processaction
- [\tabulateparameter\c!header]
- [\v!repeat=>\chardef\tabulaterepeathead\plusone,
- \v!text=>\chardef\tabulaterepeathead\plustwo]%
+ \chardef\tabulaterepeathead\executeifdefined{\??tt:\c!header:\tabulateparameter\c!header}\zerocount
+% \processaction
+% [\tabulateparameter\c!header]
+% [\v!repeat=>\let\tabulaterepeathead\plusone,
+% \v!text=>\let\tabulaterepeathead\plustwo]%
\fi
\unexpanded \def\NC{\tabulatenormalcolumn0}%
\unexpanded \def\RC{\tabulatenormalcolumn1}%
@@ -968,6 +1016,8 @@
\global\tabulatecolumn\zerocount
\resettabulatepheight
\unskip\unskip\crcr\flushtabulated
+\TABLEnoalign
+ {\the\everyaftertabulaterow}%
\TABLEnoalign
{\iftolerantTABLEbreak\else
\ifconditional\tabulatesomeamble \ifcase\tabulaterepeathead \else
@@ -1015,7 +1065,7 @@
% \dorecurse\tabulatecolumns % can be made faster
% {\doifundefinedelse{\@@tabbox@@\recurselevel}
% {\expandafter\newbox\csname\@@tabbox@@\recurselevel\endcsname}%
- % {\global\setbox\csname\@@tabbox@@\recurselevel\endcsname\box\voidb@x}}%
+ % {\global\setbox\csname\@@tabbox@@\recurselevel\endcsname\emptybox}}%
\initializetableboxes\tabulatecolumns
\appendtoks&##\to\!!toksa
\appendtoks\global\advance\tabulatecolumn\plusone\to\!!toksa
@@ -1115,45 +1165,6 @@
\totalnoftabulatelines\noftabulatelines
\minusnoftabulatelines\numexpr\noftabulatelines+\minusone\relax
\global\noftabulatelines\zerocount
-% not satisfying
-% \def\doHL##1%
-% {\TABLEnoalign
-% {\ifnum\noftabulatelines=\zerocount
-% \ifcase##1%
-% \@EAEAEA\ML
-% \or
-% \@EAEAEA\FL
-% \fi
-% \else\ifnum\noftabulatelines=\totalnoftabulatelines
-% \ifcase##1%
-% \@EA\@EAEAEA\@EA\ML
-% \or
-% \@EA\@EAEAEA\@EA\LL
-% \fi
-% \else
-% \@EAEAEA\ML
-% \fi\fi}}%
-% not good either
-% \def\doHL##1%
-% {\TABLEnoalign
-% {\csname\ifnum\noftabulatelines=\zerocount
-% \ifcase##1M\or F\fi
-% \else\ifnum\noftabulatelines=\totalnoftabulatelines
-% \ifcase##1M\or L\fi
-% \else
-% M%
-% \fi\fi L\endcsname}}%
-% ok
-% \def\doHL##1% ##1 ignored
-% {\TABLEnoalign
-% {\ifnum\noftabulatelines=\zerocount
-% \@EA\FL
-% \else\ifnum\noftabulatelines=\totalnoftabulatelines
-% \@EAEAEA\LL
-% \else
-% \@EAEAEA\ML
-% \fi\fi}}%
-% more fun
\def\doHL##1% ##1 ignored
{\TABLEnoalign
{\csname
@@ -1227,7 +1238,7 @@
\verticalstrut
\vskip-\struttotal}%
\fi}}%
- \chardef\tabulatepass\plustwo
+ \let\tabulatepass\plustwo
%
\ifcase\tabulaterepeathead
\ifinsidesplitfloat
diff --git a/Master/texmf-dist/tex/context/base/tabl-tbl.mkiv b/Master/texmf-dist/tex/context/base/tabl-tbl.mkiv
new file mode 100644
index 00000000000..bfff978ab70
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/tabl-tbl.mkiv
@@ -0,0 +1,1480 @@
+%D \module
+%D [ file=core-tbl,
+%D version=1998.11.03,
+%D title=\CONTEXT\ Table Macros,
+%D subtitle=Text Flow Tabulation,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Table Macros / Tabulation}
+
+% \processbetween gebruiken in head/tail macros
+
+\unprotect
+
+%D I can probably reimplement this using a \LUA||\TEX\ combination
+%D but it does not pay of in development time. If I need something
+%D else I will write it from scratch anyway.
+
+% watch out: don't change this model else trialtypesetting
+% compatibility problems
+
+% watch out, cells expand pretty late on a per row basis
+
+% |p2|p3| 2:3
+% spanning
+
+% Be careful with changing the hsize calculation in p mode;
+% the following code works quite well:
+%
+% \setupfield [line][location=low,height=1.2\lineheight,width=\hsize]
+% \definefield [test] [line] [line] []
+%
+% \starttabulate[|l|p|]
+% \NC test \NC \field [test] \NC \NR
+% \stoptabulate
+
+% In-text tabbing environment
+%
+% \starttabulate[| separated template] % eg [|l|p|] or [|l|p|p|]
+% \NC ... \NC ... \NC\NR
+% \stoptabulate
+%
+% with: two pass auto width calculation when no p-width
+% specified, even with multiple p's, see examples.
+
+% TaBlE compatible specifications:
+%
+% l align column/paragraph left
+% r align column/paragraph right
+% c align column/paragraph center
+% p p(dimen) of automatisch als alleen p
+% w column width
+% f font#1
+% B bold
+% I italic
+% S slanted
+% T type
+% R roman
+% m math
+% M display math
+% h hook (inner level or par lines)
+% b before (may be command#1)
+% a after
+% i i<n> skip left of column
+% j i<n> skip right of column
+% k i<n> skip around column
+
+% s setups
+
+% g g{char} align at char
+% . align at .
+% , align at ,
+
+% Still to be done
+
+% N math numbers (best hook into existing digits mechanism)
+% n numbers (best hook into existing digits mechanism)
+% Q math numbers (best hook into existing digits mechanism)
+% q numbers (best hook into existing digits mechanism)
+% ~ \hskip.5em
+% | check
+
+% nesting
+
+% 10 evt auto stack; dan wel andere signal dan void nodig
+
+% present but not yet 100% ok
+%
+% \FL top hrule
+% \ML mid hrule (with auto split)
+% \LL bottom hrule
+% \HL
+
+% \VL as soon as needed
+% color as soon as needed
+
+% \EQ \RQ \HQ equal (raw, hook)
+% \NC \RC \HC normal (raw, hook)
+%
+% \NR
+
+% \HR : rule with lineheight
+
+% \autotabulaterule : with lineheight, not first/last
+% \autotabulateline : spaced, not first/last
+% \tabulaterule : with lineheight
+% \tabulateline : spaced
+
+% tricky: align scans ahead, over # and expands ones before
+% while doing
+
+% new:
+%
+% \starttabulate[|cg{.}|cg{,}|cg{,}|]
+% \NC period \NC comma \NC comma \NC\NR
+% \NG 100.000,00 \NG 100.000,00 \NG 100,00 \NC\NR
+% \NG 10.000,00 \NG 10.000,00 \NG 1000,00 \NC\NR
+% \NG 100,00 \NG 100,00 \NG 10,00 \NC\NR
+% \NG 10 \NG 10 \NG 0,00 \NC\NR
+% \stoptabulate
+%
+% \starttabulate[|c.|c,|c,|]
+% \NC period \NC comma \NC comma \NC\NR
+% \NG 100.000,00 \NG 100.000,00 \NG 100,00 \NC\NR
+% \NG 10.000,00 \NG 10.000,00 \NG 1000,00 \NC\NR
+% \NG 100,00 \NG 100,00 \NG 10,00 \NC\NR
+% \NG 10 \NG 10 \NG 0,00 \NC\NR
+% \stoptabulate
+
+% nice demo (for BG)
+%
+% \starttabulate[|r|b{$\star$}|ra{\percent}|b{=}|r|]
+% \NC 500 \NC \NC 60 \NC \NC 300 \NC \NR
+% \NC 500 \NC \NC 55 \NC \NC 275 \NC \NR
+% \NC 500 \NC \NC 50 \NC \NC 250 \NC \NR
+% \NC 500 \NC \NC 45 \NC \NC 225 \NC \NR
+% \NC 500 \NC \NC 40 \NC \NC 200 \NC \NR
+% \NC 500 \NC \NC 35 \NC \NC 175 \NC \NR
+% \NC 500 \NC \NC 30 \NC \NC 150 \NC \NR
+% \NC 500 \NC \NC 25 \NC \NC 125 \NC \NR
+% \NC 500 \NC \NC 20 \NC \NC 100 \NC \NR
+% \stoptabulate
+
+\newtoks \tabulatepreamble
+\newtoks \tabulatebefore
+\newtoks \tabulateafter
+\newtoks \tabulatebmath
+\newtoks \tabulateemath
+\newtoks \tabulatefont
+\newtoks \tabulatesettings
+\newtoks \tabulatedummy
+
+\newcount \nofautotabulate
+\newcount \tabulatecolumns
+\newcount \tabulatecolumn
+
+\newcount \tabulateminplines
+\newcount \tabulatemaxplines
+
+\newif \ifautotabulate
+\newif \ifsplittabulate \splittabulatetrue
+
+\newif \ifhandletabulatepbreak \handletabulatepbreaktrue
+\newif \iftabulatenopbreak \tabulatenopbreakfalse
+
+\newif \iftabulateequal
+\newif \iftracetabulate
+\newif \ifframedtabulate
+
+\newdimen \tabulatepwidth
+\newdimen \tabulatewidth
+\newdimen \tabulateunit
+\newdimen \tabulatemaxpheight
+
+\newbox \tabulatebox
+
+% [|lg{.}|] => \NG 12.34 \NC
+
+\gdef\handletabulatecharalign#1 % space delimited !
+ {\edef\alignmentclass{\the\tabulatecolumn}%
+ \edef\alignmentcharacter{\csname\??tt:a:\the\tabulatecolumn\endcsname}%
+ \ifcase\tabulatepass\or
+ \setfirstpasscharacteralign\checkalignment{#1}%
+ \fi % force hsize
+ \setsecondpasscharacteralign\checkalignment{#1}}
+
+\def\noftabcolumns{16}
+
+\def\tablebox#1%
+ {\csname\??tt:b:\number#1\endcsname}
+
+\def\initializetablebox#1% also used elsewhere
+ {\ifcsname\??tt:b:\number#1\endcsname
+ \global\setbox\csname\??tt:b:\number#1\endcsname\emptybox
+ \else
+ \expandafter\newbox\csname\??tt:b:\number#1\endcsname
+ \fi}
+
+\def\initializetableboxes#1%
+ {\scratchcounter#1\relax
+ \doinitializetableboxes}
+
+\def\doinitializetableboxes
+ {\ifnum\scratchcounter>\zerocount
+ \initializetablebox\scratchcounter
+ \advance\scratchcounter\minusone
+ \expandafter\doinitializetableboxes
+ \fi}
+
+\initializetableboxes\noftabcolumns
+
+\def\dodotabulatenobreak
+ {\nobreak
+ \iftracetabulate
+ \red\hrule\!!height.5\linewidth\!!depth.5\linewidth
+ \par
+ \kern-\linewidth
+ \nobreak
+ \fi}
+
+\def\dotabulatenobreak
+ {\noalign{\dodotabulatenobreak}}
+
+\unexpanded\def\notabulatehook
+ {}
+
+\unexpanded\def\checktabulatehook
+ {\ifnum\tabulatetype<\plustwo
+ \glet\tabulatehook\notabulatehook
+ \else
+ \glet\tabulatehook\dotabulatehook
+ \fi}
+
+\unexpanded\def\checktabulatesetups
+ {\csname\??tt:s:\the\tabulatecolumn\endcsname}
+
+\let\pretabrule \donothing
+\let\posttabrule\donothing
+
+% 0 = NC column next EQ equal column
+% 1 = RC column raw RQ equal column raw
+% 2 = HC column hook HQ equal column hook
+% some entries can be left out if we test for them being set
+
+% \def\dodosettabulatepreamble#1#2%
+% {\ifzeropt\tabulatewidth
+% \ifcase\tabulatemodus\relax
+% \let\preamblebox\empty
+% \else
+% \def\preamblebox{\autotabulatetrue}%
+% \fi
+% \else
+% \ifcase\tabulatemodus\relax
+% \edef\preamblebox{\hbox to \the\tabulatewidth}%
+% \else
+% \edef\preamblebox{\hsize\the\tabulatewidth}%
+% \fi
+% \fi
+% %
+% % less bytes
+% %
+% %\edef\preamblebox%
+% % {\ifcase\tabulatewidth
+% % \ifcase\tabulatemodus\relax\else\noexpand\autotabulatetrue\fi
+% % \els
+% % \ifcase\tabulatemodus\relax\hbox to\else\hsize\fi\the\tabulatewidth
+% % \fi}%
+% %
+% \@EA\appendtoks \@EA&\@EA\hskip\pretabskip\pretabrule##&\to\!!toksa
+% \appendtoks \ignorespaces\to\!!toksa
+% \@EA\appendtoks\@EA\global\@EA\tabulatecolumn\the\tabulatecolumns\relax\to\!!toksa
+% \appendtoks \checktabulatesetups\to\!!toksa
+% \appendtoks \checktabulatehook\to\!!toksa
+% \@EA\appendtoks \preamblebox\to\!!toksa
+% \appendtoks \bgroup\bbskip\bgroup#1\to\!!toksa
+% \appendtoks\ifnum\tabulatetype=\plusone \else \to\!!toksa
+% \@EA\appendtoks \the\tabulatebmath\to\!!toksa
+% \@EA\appendtoks \the\tabulatefont\to\!!toksa
+% \@EA\appendtoks \the\tabulatesettings\to\!!toksa
+% \@EA\appendtoks \the\tabulatebefore\to\!!toksa
+% \appendtoks\fi \to\!!toksa
+% \appendtoks \bgroup\ignorespaces\to\!!toksa
+% %
+% \appendtoks \tabulatehook##\to\!!toksa
+% %
+% %%\doifdefinedelse{\??tt:a:\tabulatecolumns}
+% %\doifdefinedelse{\??tt:a:\the\tabulatecolumns}
+% % {\appendtoks\handletabulatecharalign## \to\!!toksa}
+% % {\appendtoks\tabulatehook ##\to \!!toksa}%
+% % waarom kan ik hier geen \xx{##} geven, om een of
+% % andere reden passeert dan tex de hele regel (incl \NC's)
+% % als argument; elke delimiter <> space gaat trouwens fout
+% \appendtoks \unskip\unskip\ifmmode\else\endgraf\fi\egroup\to\!!toksa
+% \appendtoks\ifnum\tabulatetype=1 \else \to\!!toksa
+% \@EA\appendtoks \the\tabulateafter\to\!!toksa
+% \@EA\appendtoks \the\tabulateemath\to\!!toksa
+% \appendtoks\fi \to\!!toksa
+% \appendtoks #2\egroup\egroup\to\!!toksa
+% \@EA\appendtoks \@EA&\@EA\posttabrule\@EA\hskip\postabskip##\to\!!toksa
+% \appendtoks\NC\to\tabulatedummy
+% \let\bbskip\empty
+% \def\pretabskip{.5\tabulateunit}%
+% \let\postabskip\pretabskip
+% \let\gettabulateexit\dogettabulateexit
+% \tabulatewidth\zeropoint}
+%
+% speedup:
+
+% is grouping really needed here?
+
+\unexpanded\def\beforetabulateentry{\ignorespaces\tabulatehook}
+\unexpanded\def\aftertabulateentry {\unskip\unskip\ifmmode\else\endgraf\fi}
+
+\def\dodosettabulatepreamble#1#2% only makes sense for many tabulates
+ {\normalexpanded{\!!toksa{\the\!!toksa
+ &\hskip\pretabskip\noexpand\pretabrule##&%
+ % \ignorespaces
+ \global\tabulatecolumn\the\tabulatecolumns\relax
+ \checktabulatesetups % unexpandable
+ \checktabulatehook % unexpandable
+ \ifzeropt\tabulatewidth
+ \ifcase\tabulatemodus\else
+ \noexpand\autotabulatetrue
+ \fi
+ \else
+ \ifnum\tabulatemodus=\zeropoint
+ \hbox to
+ \else
+ \hsize
+ \fi
+ \the\tabulatewidth
+ \fi
+ \bgroup
+ \noexpand\bbskip
+ \bgroup % we cannot combine the if because a cell may have only one ##
+ \noexpand#1%
+ \noexpand\ifnum\noexpand\tabulatetype=\plusone\noexpand\else
+ \the\tabulatebmath
+ \the\tabulatefont
+ \the\tabulatesettings
+ \the\tabulatebefore
+ \noexpand\fi
+ % grouping needs to be outside macros (or expandable), nice test
+ % example \NC \string & \NC which will fail otherwise (mk)
+ \bgroup
+ \beforetabulateentry
+ ##%
+ \aftertabulateentry
+ \egroup
+ \noexpand\ifnum\noexpand\tabulatetype=\plusone\noexpand\else
+ \the\tabulateafter
+ \the\tabulateemath
+ \noexpand\fi
+ \noexpand#2%
+ \egroup
+ \egroup
+ &\noexpand\posttabrule\hskip\postabskip##%
+ }}%
+ \appendtoks\NC\to\tabulatedummy
+ \let\bbskip\empty % ?
+ \def\pretabskip{.5\tabulateunit}%
+ \let\postabskip\pretabskip
+ \let\gettabulateexit\dogettabulateexit
+ \tabulatewidth\zeropoint}
+
+\setvalue{\??tt>\meaning x}{\let\tabulatealign\zerocount\settabulatepreamble} % internal
+\setvalue{\??tt>\meaning l}{\let\tabulatealign\plusone\settabulatepreamble}
+\setvalue{\??tt>\meaning r}{\let\tabulatealign\plustwo\settabulatepreamble}
+\setvalue{\??tt>\meaning c}{\let\tabulatealign\plusthree\settabulatepreamble}
+\setvalue{\??tt>\meaning p}{\gettabulateparagraph}
+\setvalue{\??tt>\meaning s}{\gettabulatesetups}
+\setvalue{\??tt>\meaning w}{\gettabulatewidth}
+\setvalue{\??tt>\meaning f}{\gettabulatefont}
+\setvalue{\??tt>\meaning B}{\tabulatefont{\bf}\settabulatepreamble}
+\setvalue{\??tt>\meaning I}{\tabulatefont{\it}\settabulatepreamble}
+\setvalue{\??tt>\meaning S}{\tabulatefont{\sl}\settabulatepreamble}
+\setvalue{\??tt>\meaning T}{\tabulatefont{\tt}\settabulatepreamble}
+\setvalue{\??tt>\meaning R}{\tabulatefont{\rm}\settabulatepreamble}
+\setvalue{\??tt>\meaning m}{\tabulatebmath{$}\tabulateemath{$}\settabulatepreamble}
+\setvalue{\??tt>\meaning M}{\tabulatebmath{$\displaystyle}\tabulateemath{$}\settabulatepreamble}
+\setvalue{\??tt>\meaning h}{\gettabulatehook}
+\setvalue{\??tt>\meaning b}{\gettabulatebefore}
+\setvalue{\??tt>\meaning a}{\gettabulateafter}
+\setvalue{\??tt>\meaning i}{\gettabulatepreskip}
+\setvalue{\??tt>\meaning j}{\gettabulateposskip}
+\setvalue{\??tt>\meaning k}{\gettabulatepreposskip}
+\setvalue{\??tt>\meaning X}{\gettabulateexit} % internal
+\setvalue{\??tt>\meaning e}{\appendtoks\global\tabulateequaltrue\to\tabulatesettings\settabulatepreamble}
+\setvalue{\??tt>\meaning ~}{\appendtoks\fixedspaces\to\tabulatesettings\settabulatepreamble}
+\setvalue{\??tt>\meaning g}{\gettabulatealign}
+\setvalue{\??tt>\meaning .}{\gettabulatealign.}
+\setvalue{\??tt>\meaning ,}{\gettabulatealign,}
+
+\setvalue{\??tt>\s!unknown}{\message{unknown preamble key [\meaning\next]}\settabulatepreamble}
+\letvalue{\??tt>\meaning\relax}\donothing
+
+\def\dosettabulatepreamble
+ {\csname\??tt>\ifcsname\??tt>\meaning\next\endcsname\meaning\next\else\s!unknown\fi\endcsname}
+
+\def\dogettabulateexit
+ {\let\postabskip\!!zeropoint
+ \settabulatepreamble}
+
+\let\gettabulateexit\dogettabulateexit
+
+\def\gettabulatepreskip#1%
+ {\doifnumberelse{#1}
+ {\edef\pretabskip{\the\dimenexpr#1\tabulateunit}\let\next\empty}
+ {\edef\pretabskip{\the\dimenexpr.5\tabulateunit}\def\next{#1}}%
+ \@EA\settabulatepreamble\next}
+
+\def\gettabulateposskip#1%
+ {\doifnumberelse{#1}
+ {\edef\postabskip{\the\dimexpr#1\tabulateunit}\let\next\empty}
+ {\edef\postabskip{\the\dimexpr.5\tabulateunit}\def\next{#1}}%
+ \let\gettabulateexit\settabulatepreamble
+ \@EA\settabulatepreamble\next}
+
+\def\gettabulatepreposskip#1%
+ {\doifnumberelse{#1}
+ {\edef\pretabskip{\the\dimenexpr#1\tabulateunit}\let\next\empty}
+ {\edef\pretabskip{\the\dimenexpr.5\tabulateunit}\def\next{#1}}%
+ \let\postabskip\pretabskip
+ \let\gettabulateexit\settabulatepreamble
+ \@EA\settabulatepreamble\next}
+
+\def\gettabulatesetups#1%
+ {\setvalue{\??tt:s:\the\tabulatecolumns}{\setups[#1]}%
+ \settabulatepreamble}
+
+\def\gettabulatehook#1%
+ {\setvalue{\??tt:h:\the\tabulatecolumns}{#1}%
+ \settabulatepreamble}
+
+\def\gettabulatealign#1%
+ {\setvalue{\??tt:a:\the\tabulatecolumns}{#1}%
+ \settabulatepreamble}
+
+\def\gettabulatebefore#1%
+ {\tabulatebefore{#1}%
+ \settabulatepreamble}
+
+\def\gettabulateafter#1%
+ {\tabulateafter{#1}%
+ \settabulatepreamble}
+
+\def\gettabulatefont#1%
+ {\tabulatefont{#1}%
+ \settabulatepreamble}
+
+\def\gettabulatewidth
+ {\let\tabulatemodus\zerocount
+ \let\tabulatedimen\zerocount
+ \doifnextparenthesiselse\dogettabulatewidth\settabulatepreamble}
+
+\def\gettabulateparagraph
+ {\doifnextparenthesiselse
+ {\let\tabulatemodus\plusone
+ \let\tabulatedimen\plusone
+ \dogettabulatewidth}
+ {\let\tabulatemodus\plustwo
+ \let\tabulatedimen\zerocount
+ \settabulatepreamble}}
+
+% \startbuffer
+% \toplinebox{\framed[width=3cm,height=2cm]{tufte}}
+% \stopbuffer
+% \starttabulate[|p(fixed)|p|]
+% \dorecurse{100}{\NC \getbuffer \NC test \par test \par \NC \NR}
+% \stoptabulate
+% \starttabulate[|p(fit)|p|]
+% \dorecurse{100}{\NC \getbuffer \NC test \par test \par \NC \NR}
+% \stoptabulate
+
+\def\dogettabulatewidth(#1)%
+ {\processallactionsinset % can be made faster
+ [#1]%
+ [ \v!fit=>\let\tabulatemodus\plusthree,
+ \v!fixed=>\let\tabulatemodus\plusthree
+ \tabulatenopbreaktrue,
+ \s!unknown=>\tabulatewidth#1\relax]%
+ \ifnum\tabulatedimen=\plusone
+ \global\advance\tabulatepwidth\tabulatewidth
+ \fi
+ \settabulatepreamble}
+
+\def\settabulatepreamble
+ {\afterassignment\dosettabulatepreamble\let\next=}
+
+\def\tabulateraggedright {\ifnum\tabulatetype=\plusone \else\raggedright \fi}
+\def\tabulateraggedcenter{\ifnum\tabulatetype=\plusone \else\raggedcenter\fi}
+\def\tabulateraggedleft {\ifnum\tabulatetype=\plusone \else\raggedleft \fi}
+\def\tabulatenotragged {\ifnum\tabulatetype=\plusone \else\notragged \fi}
+\def\tabulatehss {\ifnum\tabulatetype=\plusone \else\hss \fi} % never change this to a fill
+
+\def\tabulatebskipraggedright {\bskip\tabulateraggedright }
+\def\tabulatebskipraggedleft {\bskip\tabulateraggedleft }
+\def\tabulatebskipraggedcenter{\bskip\tabulateraggedcenter}
+
+\def\tabulatesetpreamblewidthnormal
+ {\ifcase\tabulatealign\relax
+ \dodosettabulatepreamble\empty \tabulatehss \or
+ \dodosettabulatepreamble\empty \tabulatehss \or
+ \dodosettabulatepreamble\tabulatehss\empty \or
+ \dodosettabulatepreamble\tabulatehss\tabulatehss \fi}
+
+\def\tabulatesetpreamblewidthfixed
+ {\ifcase\tabulatealign\relax
+ \dodosettabulatepreamble\bskip \eskip \or
+ \dodosettabulatepreamble\tabulatebskipraggedright \eskip \or
+ \dodosettabulatepreamble\tabulatebskipraggedleft \eskip \or
+ \dodosettabulatepreamble\tabulatebskipraggedcenter\eskip \fi}
+
+\def\tabulatesetpreamblewidthauto
+ {\global\advance\nofautotabulate\plusone
+ \ifcase\tabulatealign\relax
+ \dodosettabulatepreamble\bskip \eskip \or
+ \dodosettabulatepreamble\tabulatebskipraggedright \eskip \or
+ \dodosettabulatepreamble\tabulatebskipraggedleft \eskip \or
+ \dodosettabulatepreamble\tabulatebskipraggedcenter\eskip \fi}
+
+\def\tabulatesetpreamblewidthsimple
+ {\dodosettabulatepreamble\xbskip\xeskip}
+
+\bgroup \catcode`\|=\@@other
+
+\gdef\nexttabulate#1|%
+ {\let\tabulatealign\@@tabulatealign
+ \let\tabulatemodus\zerocount
+ \let\tabulatedimen\zerocount
+ \tabulatebefore \emptytoks
+ \tabulateafter \emptytoks
+ \tabulatebmath \emptytoks
+ \tabulateemath \emptytoks
+ \tabulatefont \emptytoks
+ \tabulatesettings\emptytoks
+ \global\advance\tabulatecolumns\plusone
+ \expandafter\let\csname\??tt:s:\the\tabulatecolumns\endcsname\donothing
+ \settabulatepreamble#1\relax\relax % permits i without n
+ \ifcase\tabulatemodus\relax
+ \tabulatesetpreamblewidthnormal
+ \or % fixed width
+ \tabulatesetpreamblewidthfixed
+ \or % auto width
+ \tabulatesetpreamblewidthauto
+ \or % simple
+ \tabulatesetpreamblewidthsimple
+ \fi
+ \futurelet\next\donexttabulate}
+
+\egroup
+
+\def\donexttabulate
+ {\ifx\next\relax\else
+ \expandafter\nexttabulate
+ \fi}
+
+\def\splitofftabulatebox % overloaded in anch-pgr
+ {\dontcomplain
+ \global\setbox\tabulatebox % % % global ? % % %
+ \vsplit\tablebox\tabulatecolumn to \lineheight
+ \setbox\tabulatebox\normalvbox
+ {\unvbox\tabulatebox}%
+ \setbox\tabulatebox\hbox to \wd\tabulatebox
+ {\hss\dotabulatehook{\box\tabulatebox}\hss}%
+ \ht\tabulatebox\strutht
+ \dp\tabulatebox\strutdp
+ \box\tabulatebox}
+
+\def\dotabulatehook {\csname\??tt:h:\the\tabulatecolumn\endcsname}
+\def\dotabulatealign{\csname\??tt:a:\the\tabulatecolumn\endcsname}
+
+\def\resettabulatepheight
+ {\global\tabulateminplines\plusone
+ \ifdim\tabulatemaxpheight>\zeropoint
+ \getnoflines\tabulatemaxpheight
+ \global\tabulatemaxplines\noflines
+ \else
+ \global\tabulatemaxplines\zerocount
+ \fi
+ \global\tabulatemaxpheight\zeropoint}
+
+\def\settabulatepheight
+ {\scratchdimen\ht\tablebox\tabulatecolumn\relax
+ \ifdim\scratchdimen>\tabulatemaxpheight
+ \global\tabulatemaxpheight\scratchdimen
+ \fi}
+
+% \def\handletabulatepbreak
+% {\TABLEnoalign
+% {\ifhandletabulatepbreak
+% \iftabulatenopbreak
+% \dotabulatenobreak
+% \else\ifnum\tabulatemaxplines>\plusone
+% \ifnum\tabulateminplines=\plusone
+% \dotabulatenobreak
+% \fi
+% \global\advance\tabulateminplines\plusone
+% \ifnum\tabulateminplines=\tabulatemaxplines\relax
+% \dotabulatenobreak
+% \fi
+% \fi \fi
+% \fi}}
+
+\def\dohandletabulatepbreak
+ {\ifhandletabulatepbreak
+ \iftabulatenopbreak
+ \dotabulatenobreak
+ \else\ifnum\tabulatemaxplines>\plusone
+ \ifnum\tabulateminplines=\plusone
+ \dotabulatenobreak
+ \fi
+ \global\advance\tabulateminplines\plusone
+ \ifnum\tabulateminplines=\tabulatemaxplines\relax
+ \dotabulatenobreak
+ \fi
+ \fi \fi
+ \fi}
+
+\def\handletabulatepbreak
+ {\TABLEnoalign{\dohandletabulatepbreak}}
+
+%D \startbuffer
+%D \starttabulate[|c|p|p|]
+%D \NC \bf Alpha \NC \bf Beta \NC \bf Gamma \NC\NR
+%D \NC 1 \NC right indeed \NC definitely wrong \NC\NR
+%D \NC 2 \NC \thinrules[n=3] \NC \thinrules[n=3] \NC\NR
+%D \NC 3 \NC oh yes \NC simply no \NC\NR
+%D \NC 4 \NC very true \NC as false as can be \NC\NR
+%D \NC 5 \NC \thinrules[n=5] \NC \thinrules[n=5] \NC\NR
+%D \NC 6 \NC \thinrules[n=3] \NC \thinrules[n=4] \NC\NR
+%D \stoptabulate
+%D \stopbuffer
+%D
+%D \typebuffer {\tracetabulatetrue\getbuffer}
+%D
+%D \startbuffer
+%D \starttabulate[|c|p|p|]
+%D \NC \bf Alpha \NC \bf Beta \NC \bf Gamma \NC\NR
+%D \NC 1 \NC right indeed \NC definitely wrong \NC\NR
+%D \NC 2 \NC oh yes \NC simply no \NC\NR
+%D \NC 3 \NC very true \NC as false as can be \NC\NR
+%D \NC 4 \NC the whole truth \NC but the truth \NC\NR
+%D \stoptabulate
+%D \stopbuffer
+%D
+%D \typebuffer {\tracetabulatetrue\getbuffer}
+
+% \definetabulate
+% \redefinetabulate
+% \starttabulate[preamble]
+% \starttabulate -> \starttabulate[|l|p|]
+
+\bgroup \catcode`\|=\@@other
+
+\gdef\definetabulate
+ {\dotripleempty\dodefinetabulate}
+
+\gdef\dodefinetabulate[#1][#2][#3]%
+ {\ifthirdargument
+ \ifcsname\??tt#1::\c!unit\endcsname \else
+ \copyparameters
+ [\??tt#1::][\??tt\v!tabulate::]%
+ [\c!frame,\c!distance,\c!unit,\c!before,\c!bodyfont,\c!after,
+ \c!inner,\c!indenting,\c!margin,\c!align,\c!header,\c!title,
+ \c!rulecolor,\c!rulethickness,\c!split,EQ]%
+ \fi
+ \copyparameters
+ [\??tt#1::#2][\??tt#1::]%
+ [\c!unit,\c!distance,\c!before,\c!bodyfont,\c!after,
+ \c!inner,\c!indenting,\c!frame,\c!split,\c!header,\c!title,
+ \c!margin,\c!align,\c!rulecolor,\c!rulethickness,EQ]%
+ \setvalue{\e!start#1::#2}{\dofinalstarttabulate[#1][#2][#3]}%
+ \setvalue{\e!start#1}{\bgroup\dosubstarttabulate[#1]}%
+ \letvalue{\??tt#1-\v!header}\empty
+ \letvalue{\??tt#1-\v!footer }\empty
+ \else\ifsecondargument
+ \definetabulate[#1][][#2]%
+ \else
+ \definetabulate[#1][][|l|p|]%
+ \fi\fi}
+
+\egroup
+
+\let\tabulateheadcontent\empty
+\let\tabulatetailcontent\empty
+
+\newconditional\tabulatesomeamble
+
+\def\processtabulateheadcontent
+ {\TABLEnoalign{\global\settrue\tabulatesomeamble}%
+ \csname\??tt\currenttabulate-\v!header\endcsname
+ \TABLEnoalign{\global\setfalse\tabulatesomeamble}}%
+
+\def\processtabulatetailcontent
+ {\TABLEnoalign{\global\settrue\tabulatesomeamble}%
+ \csname\??tt\currenttabulate-\v!footer\endcsname
+ \TABLEnoalign{\global\setfalse\tabulatesomeamble}}%
+
+\def\checkfulltabulatecontent % - needed, else confusion with \c!header
+ {\ifcsname\??tt\currenttabulate-\v!header\endcsname
+ \let\tabulateheadcontent\processtabulateheadcontent
+ \else
+ \let\tabulateheadcontent\empty
+ \fi
+ \ifcsname\??tt\currenttabulate-\v!footer\endcsname
+ \let\tabulatetailcontent\processtabulatetailcontent
+ \else
+ \let\tabulatetailcontent\empty
+ \fi}
+
+% \def\fulltabulatecontent
+% {\tabulateheadcontent
+% \tabulatecontent
+% \tabulatetailcontent}
+
+\def\fulltabulatecontent
+ {\tabulateheadcontent
+ \tabulatecontent
+ \tabulatetailcontent
+ \removefunnytabulateline}
+
+\def\removefunnytabulateline
+ {\ifhmode
+ \strut\crcr
+ \TABLEnoalign{\kern-\lineheight}%
+ \fi}
+
+\setvalue{\e!start\v!tabulatehead}%
+ {\dosingleempty\dostartstarttabulatehead}
+
+\def\dostartstarttabulatehead[#1]%
+ {\processcontent{\e!stop\v!tabulatehead}\next
+ {\letvalue{\??tt\iffirstargument#1\else\v!tabulate\fi::-\v!header}\next}}
+
+\setvalue{\e!start\v!tabulatetail}%
+ {\dosingleempty\dostartstarttabulatetail}
+
+\def\dostartstarttabulatetail[#1]%
+ {\processcontent{\e!stop\v!tabulatetail}\next
+ {\letvalue{\??tt\iffirstargument#1\else\v!tabulate\fi::-\v!footer}\next}}
+
+\def\dosubstarttabulate
+ {\dodoubleempty\dodosubstarttabulate}
+
+\def\dodosubstarttabulate[#1][#2]%
+ {\csname\e!start#1::\ifcsname\e!start#1::#2\endcsname#2\fi\endcsname}
+
+\setvalue{\e!start\v!tabulate}%
+ {\bgroup\dodoubleempty\donormalstarttabulate}
+
+\bgroup
+
+\gdef\donormalstarttabulate[#1][#2]%
+ {\ifsecondargument
+ \getparameters[\??tt\v!tabulate::][#2]%
+ \fi
+ \iffirstargument
+ \def\next{\dofinalstarttabulate[\v!tabulate][][#1]}%
+ \else
+ \def\next{\dofinalstarttabulate[\v!tabulate][][|l|p|]}%
+ \fi
+ \next}
+
+\egroup
+
+% The much neede hook:
+
+\newtoks\everytabulate
+
+% An example of its usage:
+
+\appendtoks \optimizeverbatimfalse \to \everytabulate
+\appendtoks \let\recodeverbatimmode\plustwo \to \everytabulate
+
+% A status variable:
+
+\chardef\tabulatepass=0
+
+\def\tabulateparameter#1{\csname\??tt\currenttabulate#1\endcsname}
+
+\bgroup
+ \catcode`\|=\@@other \gdef\@@otherbar{|}
+ \catcode`\|=\@@active \gdef\@@useotherbar{\let|\@@otherbar}
+\egroup
+
+\def\doparsetabulate
+ {\futurelet\next\dodoparsetabulate}
+
+% \def\dodoparsetabulate % \@EAEAEA gebruiken
+% {\ifx\next\relax
+% % exit
+% \else\ifx*\next
+% \let\next\dorepeatparsetabulate
+% \else\ifx\bgroup\next
+% \let\next\dododoparsetabulate
+% \else
+% \let\next\dodododoparsetabulate
+% \fi\fi\fi
+% \next}%
+
+\def\dorepeatparsetabulate*#1#2%
+ {\dorecurse{#1}{\!!toksb\expandafter{\the\!!toksb#2}}% \dorecurse{#1}{\appendtoks#2\to\!!toksb}%
+ \doparsetabulate}
+
+\def\dododoparsetabulate#1%
+ {\!!toksb\expandafter{\the\!!toksb{#1}}% \appendtoks{#1}\to\!!toksb
+ \doparsetabulate}
+
+\def\dodododoparsetabulate#1%
+ {\!!toksb\expandafter{\the\!!toksb#1}% \appendtoks#1\to\!!toksb
+ \doparsetabulate}
+
+\letvalue{\??tt<\meaning *}\dorepeatparsetabulate
+\letvalue{\??tt<\meaning \bgroup}\dododoparsetabulate
+\letvalue{\??tt<\meaning \relax}\donothing
+\letvalue{\??tt<\s!unknown }\dodododoparsetabulate
+
+\def\dodoparsetabulate
+ {\csname\??tt<\ifcsname\??tt<\meaning\next\endcsname\meaning\next\else\s!unknown\fi\endcsname}
+
+\setvalue{\??tt:\c!split:\v!yes }{\splittabulatetrue}
+\setvalue{\??tt:\c!split:\v!repeat}{\splittabulatetrue}
+\setvalue{\??tt:\c!split:\v!no }{\splittabulatefalse}
+\setvalue{\??tt:\c!split:\v!auto }{\ifinsidefloat\ifinsidesplitfloat\else\splittabulatefalse\fi\fi}
+
+\def\dofinalstarttabulate[#1][#2][#3]% identifier sub preamble
+ {\edef\currenttabulate{#1::#2}%
+ \ifinsidefloat \else
+ \whitespace
+ \tabulateparameter\c!before
+ \fi
+ \bgroup
+ \resetcharacteralign
+ % todo: spacing around tabulate when bodyfont is set
+ % expansion en test needed ?
+ \splittabulatetrue
+ \csname\??tt:\c!split:\tabulateparameter\c!split\endcsname
+ \doifvaluesomething{\??tt\currenttabulate\c!bodyfont}
+ {\expanded{\switchtobodyfont[\tabulateparameter\c!bodyfont]}}%
+ \postponenotes % new, to be tested / will be configurable
+ \let\tabulatepass\plusone
+ \widowpenalty\zerocount % otherwise lines are not broken
+ \clubpenalty \zerocount % but overlap in funny ways
+ \the\everytabulate
+ \tabulateparameter\c!inner
+ \doifelsevalue{\??tt\currenttabulate\c!indenting}\v!yes
+ {\edef\tabulateindent{\the\dimexpr\leftskip+\hangindent+\parindent}}% \ctxparindent
+ {\edef\tabulateindent{\the\dimexpr\leftskip+\hangindent }}%
+ \global\tabulatecolumn\zerocount
+ \!!toksb\emptytoks
+ \bgroup
+ \@@useotherbar
+ \normalexpanded{\egroup\noexpand\doparsetabulate#3\relax}%
+ \processcontent
+ {\e!stop#1}% \currenttabulate}
+ \tabulatecontent
+ {\@EA\processtabulate\@EA[\the\!!toksb]}}
+
+\chardef\tabulatetype=0
+
+% 0 = NC column next EQ equal column
+% 1 = RC column raw RQ equal column raw
+% 2 = HC column hook HQ equal column hook
+
+\newif\iftabulatefirstflushed
+
+\def\tabulateEQ
+ {\iftabulatefirstflushed\else\tabulateparameter{EQ}\fi
+ \global\tabulateequalfalse}
+
+% \def\tabulatenormalcolumn#1%
+% {&\iftabulateequal\tabulateEQ\fi&\global\chardef\tabulatetype#1&}
+%
+% \def\tabulateequalcolumn#1%
+% {&\tabulateEQ&\global\chardef\tabulatetype#1&}
+%
+% however, \unskip en \ignorespaces permit usage in complex XML/\starttabulate
+
+\def\tabulatenormalcolumn#1%
+ {\unskip&\iftabulateequal\tabulateEQ\fi&\global\chardef\tabulatetype#1&%
+ \ignorespaces}
+
+\def\tabulateequalcolumn#1%
+ {\unskip&\tabulateEQ&\global\chardef\tabulatetype#1&%
+ \ignorespaces}
+
+\def\tabulateautocolumn
+ {\tabulatenormalcolumn\zerocount
+ \ifnum\tabulatecolumn>\tabulatecolumns\relax
+ \expandafter\NR
+ \else
+ \expandafter\ignorespaces % interferes with the more tricky hooks
+ \fi}
+
+\def\setquicktabulate#1% see \startlegend \startgiven
+ {\let#1\tabulateautocolumn
+ \let\\\tabulateautocolumn}
+
+\def\dotabulateruleseperator % can be sped up (will do when used frequently)
+ {\bgroup
+ \let\factor\!!plusone
+ \scratchskip\strutdp
+ \ExpandFirstAfter\processallactionsinset
+ [\tabulateparameter\c!distance]
+ [ \v!blank=>\scratchskip\bigskipamount,
+ \v!depth=>\scratchskip\strutdp,
+ \v!small=>\def\factor{.25},
+ \v!medium=>\def\factor{.5},
+ \v!big=>,
+ \v!none=>\scratchskip\zeropoint\def\factor{0},
+ \v!grid=>\scratchskip\zeropoint\def\factor{0},
+ \s!unknown=>\scratchskip\commalistelement]%
+ \scratchdimen\factor\scratchskip
+ \ifconditional\tabulatesomeamble\kern\else\vskip\fi\scratchdimen % new
+ \egroup}
+
+\def\dodotabulaterule#1%
+ {\color
+ [\tabulateparameter\c!rulecolor]
+ {\scratchdimen\tabulateparameter\c!rulethickness#1}}
+
+\def\dotabulaterule
+ {\dodotabulaterule
+ {\hrule\!!height.5\scratchdimen\!!depth.5\scratchdimen\relax
+ \doifvalue{\??tt\currenttabulate\c!distance}\v!grid
+ {\kern-\scratchdimen}}} % experimental tm-prikkels
+
+\def\dotabulatelinerule
+ {\multispan\totaltabulatecolumns % \multispan is a plain macro
+ % for the moment this one
+ \strut\hskip\tabulateparameter\c!margin
+ % neg values are ok !
+ \hskip\tabulateindent % new august 2003
+ \dodotabulaterule
+ {\!!heighta.5\lineheight
+ \advance\!!heighta-\strutdepth
+ \!!deptha-\!!heighta
+ \advance\!!deptha\scratchdimen
+ \leaders\hrule\!!height\!!heighta\!!depth\!!deptha\hfill}%
+ \cr}
+
+%D When set to true, no (less) break optimization is done.
+
+\newif\iftolerantTABLEbreak
+
+%D The main processing macro is large but splitting it up
+%D would make things less clear.
+
+\def\doregistertabulateparoptions
+ {\iftrialtypesetting \else
+ \registerparoptions
+ \ifinsidefloat
+ % that is, an unbreakable one
+ \glet\registertabulateparoptions\empty
+ \else
+ % unsafe in crossing pages, at each b...
+ % \glet\registertabulateparoptions\empty
+ \fi
+ \fi}
+
+\appendtoks
+ \glet\registertabulateparoptions\doregistertabulateparoptions
+\to \everytabulate
+
+\newtoks\everytabulaterow
+
+\appendtoks
+ \registertabulateparoptions
+\to \everytabulaterow
+
+\def\flushtabulateindent
+ {\ifnum\tabulatecolumn=\zerocount
+ \hbox to \tabulateindent
+ {% we now have a local hsize, and since we want to
+ % register positional info (i.e. real hsizes) we
+ % need to reconstitute the original hsize
+ \advance\hsize\tabulateindent
+ % this is indeed rather messy and took a few hours
+ % to dis/uncover
+ \the\everytabulaterow
+ \hss}%
+ \fi}
+
+\def\totaltabulatecolumns{0}
+
+\def\handletabulatedigits{\digits}
+
+%D Beware, we cannot use \type {\unexpanded} on \type {\HL}
+%D cum suis, since \TEX's hard coded noalign lookahead fails
+%D on it! I mistakenly added this for a while.
+
+\chardef\tabulaterepeathead\zerocount
+
+\newcount\noftabulatelines
+\newcount\totalnoftabulatelines
+\newcount\minusnoftabulatelines
+
+\setvalue{\??tt:\c!align:\v!normal}{0}
+\setvalue{\??tt:\c!align:\v!right }{1}
+\setvalue{\??tt:\c!align:\v!left }{2}
+\setvalue{\??tt:\c!align:\v!middle}{3}
+
+\setvalue{\??tt:\c!header:\v!repeat}{\plusone}
+\setvalue{\??tt:\c!header:\v!text }{\plustwo}
+
+\newtoks\everyaftertabulaterow
+
+\def\tabulatebskipone {\setbox\tabulatebox\vbox\bgroup\glet\tabulatehook\notabulatehook}
+\def\tabulateeskipone {\par\egroup\glet\tabulatehook\dotabulatehook}
+\def\tabulatexbskipone{\hbox\bgroup\vbox\bgroup\glet\tabulatehook\notabulatehook}
+\def\tabulatexeskipone{\par\egroup\egroup\glet\tabulatehook\dotabulatehook}
+
+\def\tabulatebaselinecorrection
+ {\def\dobaselinecorrection
+ {\vskip-\prevdepth
+ \vskip\strutdp
+ \vskip\strutdp}%
+ \baselinecorrection}
+
+\unexpanded\def\tabulateNCone{\tabulatenormalcolumn0}
+\unexpanded\def\tabulateRCone{\tabulatenormalcolumn1}
+\unexpanded\def\tabulateHCone{\tabulatenormalcolumn2}
+\unexpanded\def\tabulateEQone{\tabulateequalcolumn 0}
+\unexpanded\def\tabulateRQone{\tabulateequalcolumn 1}
+\unexpanded\def\tabulateHQone{\tabulateequalcolumn 2}
+\unexpanded\def\tabulateNGone{\NC\handletabulatecharalign}
+\unexpanded\def\tabulateNNone{\NC\handletabulatedigits} % new, undocumented, test first
+\unexpanded\def\tabulateNDone{\NC\handletabulatedigits} % same, for old times sake
+\unexpanded\def\tabulateHRone{\doHR\zerocount}
+\unexpanded\def\tabulateHLone{\doHL\zerocount}
+
+\unexpanded\def\tabulateNRone % next row
+ {\global\advance\noftabulatelines\plusone
+ \global\tabulatefirstflushedfalse
+ \global\tabulateequalfalse
+ \global\tabulatecolumn\zerocount
+ \resettabulatepheight
+ \unskip\unskip\crcr\flushtabulated
+ \TABLEnoalign
+ {\the\everyaftertabulaterow}%
+ \TABLEnoalign
+ {\iftolerantTABLEbreak\else
+ \ifconditional\tabulatesomeamble \ifcase\tabulaterepeathead \else
+ \allowbreak
+ \fi \fi
+ \ifnum\noftabulatelines=\plusone
+ \dotabulatenobreak
+ \else\ifnum\noftabulatelines=\minusnoftabulatelines
+ \ifnum\tabulatemaxplines<\plustwo
+ \dotabulatenobreak
+ \else
+ \allowbreak % needed with pbreak prevention
+ \fi
+ \else
+ \allowbreak % needed with pbreak prevention
+ \fi\fi
+ \fi
+ \global\tabulatefirstflushedfalse}}
+
+\def\tabulatebbskiptwo
+ {\ifvoid\tablebox\tabulatecolumn
+ \ifx\flushtabulatedindeed\empty\else
+ \setbox0\hbox
+ \fi
+ \fi}
+
+\def\tabulatebskiptwoeskip
+ {\par\egroup
+ \settabulatepheight
+ \glet\tabulatehook\dotabulatehook
+ \splitofftabulatebox}
+
+\def\tabulatebskiptwo
+ {\ifvoid\tablebox\tabulatecolumn
+ \global\setbox\tablebox\tabulatecolumn\vbox
+ \bgroup
+ \glet\tabulatehook\notabulatehook
+ \ifautotabulate\hsize\tabulatewidth\fi
+ % \begstrut % interferes with pre-\pars
+ % evt: \appendtoks\begstrut\to\everypar
+ \ignorespaces
+ \let\eskip\tabulatebskiptwoeskip
+ \else
+ \let\eskip\empty
+ \dontcomplain
+ \glet\tabulatehook\dotabulatehook
+ \expandafter\splitofftabulatebox
+ \fi}
+
+\def\tabulatexbskiptwo{\bskip}
+\def\tabulatexeskiptwo{\eskip}
+
+% \def\tabulateflushtabulatedtwo
+% {\TABLEnoalign % noalign % no interference !
+% {\glet\flushtabulatedindeed\empty
+% \global\tabulatecolumn\zerocount
+% \handletabulatepbreak
+% \dorecurse\tabulatecolumns % was: \noftabcolumns
+% {\ifvoid\tablebox\recurselevel\else
+% \gdef\flushtabulatedindeed{\the\tabulatedummy}%
+% \fi}%
+% \global\tabulatefirstflushedtrue}%
+% \flushtabulatedindeed}
+
+\def\dotabulateflushtabulatedtwo
+ {\glet\flushtabulatedindeed\empty
+ \global\tabulatecolumn\zerocount
+ \handletabulatepbreak
+ \dorecurse\tabulatecolumns % was: \noftabcolumns
+ {\ifvoid\tablebox\recurselevel\else
+ \gdef\flushtabulatedindeed{\the\tabulatedummy}%
+ \fi}%
+ \global\tabulatefirstflushedtrue}
+
+\def\tabulateflushtabulatedtwo
+ {\TABLEnoalign{\dotabulateflushtabulatedtwo}%
+ \flushtabulatedindeed}
+
+\def\tabulatebskipthree
+ {\vtop\bgroup
+ \ifautotabulate\hsize\tabulatewidth\fi
+ % \begstrut % interferes with pre-\pars
+ % evt: \appendtoks\begstrut\to\everypar
+ \ignorespaces}
+
+\def\tabulateeskipthree % vertical strut added august 2003
+ {\par\verticalstrut\vskip-\struttotal\egroup}
+
+\def\tabulatedoHLfour#1% #1 ignored
+ {\TABLEnoalign
+ {\csname
+ \ifnum\noftabulatelines=\zerocount F\else
+ \ifnum\noftabulatelines=\totalnoftabulatelines L\else
+ M\fi\fi
+ L\endcsname}}%
+
+\def\tabulatedoHRfour#1% horizontal rule line (break untested)
+ {\TABLEnoalign
+ {\globallet\TABLEautoline\dotabulatelinerule
+ \ifcase#1\or
+ \ifnum\noftabulatelines=\zerocount
+ \gdef\TABLEautoline{\TABLEnoalign{}}%
+ \else\ifnum\noftabulatelines=\totalnoftabulatelines
+ \gdef\TABLEautoline{\TABLEnoalign{}}%
+ \fi\fi
+ \fi
+ \dotabulatenobreak}%
+ \TABLEautoline
+ \TABLEnoalign
+ {\nobreak
+ \ifx\TABLEautoline\dotabulatelinerule\kern-\lineheight\fi
+ \ifnum\noftabulatelines=\totalnoftabulatelines
+ \@EA\dotabulatenobreak
+ \else
+ \@EA\allowbreak
+ \fi}%
+ \TABLEautoline
+ \TABLEnoalign
+ {\dotabulatenobreak}}
+
+\def\tabulateFLfive{\TABLEnoalign
+ {\ifinsidefloat\else
+ \doifemptyvalue{\??tt\currenttabulate\c!before} % no expansion
+ {\tabulatebaselinecorrection}%
+ \fi
+ \dotabulaterule
+ \dotabulatenobreak
+ \dotabulateruleseperator
+ \prevdepth\strutdp
+ \dotabulatenobreak}}
+
+\def\tabulateMLfive{\TABLEnoalign
+ {\dotabulateruleseperator
+ \dotabulaterule
+ \ifnum\noftabulatelines>\plusone
+ \ifnum\noftabulatelines<\minusnoftabulatelines
+ \vskip\topskip\allowbreak\vskip-\topskip
+ \vskip-\tabulateparameter\c!rulethickness
+ \dotabulaterule
+ \fi
+ \fi
+ \dotabulateruleseperator}}
+
+\def\tabulateLLfive{\TABLEnoalign
+ {\dotabulatenobreak
+ \dotabulateruleseperator
+ \dotabulatenobreak
+ \dotabulaterule
+ \ifinsidefloat\else
+ \doifemptyvalue{\??tt\currenttabulate\c!after} % no expansion
+ {\vskip\strutdp
+ \verticalstrut
+ \vskip-\struttotal}%
+ \fi}}
+
+\def\tabulateHLfive
+ {\doHL\zerocount}
+
+\def\tabulaterule {\HR}% a rule with lineheight
+\def\tabulateline {\HL}% just a spaced rule
+\def\tabulateautorule{\doHR\plusone}%
+\def\tabulateautoline{\doHL\plusone}%
+
+\bgroup \catcode`\|=\@@other
+
+\gdef\processtabulate[|#1|]% in the process of optimizing
+ {\tabulateunit\tabulateparameter\c!unit
+ \checkfulltabulatecontent
+ \globallet\tabulateruledepth \!!zeropoint
+ \globallet\tabulateruleheight\!!zeropoint
+ \edef\@@tabulatealign{\executeifdefined{\??tt:\c!align:\tabulateparameter\c!align}0}%
+ \let\pretabskip\!!zeropoint
+ \def\postabskip{.5\tabulateunit}%
+ \global\tabulatecolumns\zerocount
+ \global\nofautotabulate\zerocount
+ \global\noftabulatelines\zerocount
+ \totalnoftabulatelines\noftabulatelines
+ \minusnoftabulatelines\noftabulatelines
+ \global\tabulatepwidth\zeropoint
+ \global\tabulateequalfalse
+ \resettabulatepheight
+ \ifinsidesplitfloat
+ \donetrue
+ \else\ifinsidefloat
+ \donefalse
+ \else
+ \donetrue
+ \fi\fi
+ \ifdone
+ \chardef\tabulaterepeathead\executeifdefined{\??tt:\c!header:\tabulateparameter\c!header}\zerocount
+ \fi
+ \let\NC\tabulateNCone
+ \let\RC\tabulateRCone
+ \let\HC\tabulateHCone
+ \let\EQ\tabulateEQone
+ \let\RQ\tabulateRQone
+ \let\HQ\tabulateHQone
+ \let\NG\tabulateNGone
+ \let\NN\tabulateNNone
+ \let\ND\tabulateNDone
+ \let\HR\tabulateHRone
+ \let\HL\tabulateHLone
+ \let\NR\tabulateNRone
+ \let\HL\empty % not needed ? ? ?
+ \let\SR\NR \let\AR\NR
+ \let\FL\empty \let\FR\NR
+ \let\ML\empty \let\MR\NR
+ \let\LL\empty \let\LR\NR
+ \let\doHR\gobbleoneargument
+ \let\doHL\gobbleoneargument
+ \glet\flushtabulated\empty
+ \tabskip\zeropoint
+ \ifdim\tabulateparameter\c!margin>\zeropoint
+ \!!toksa{&\flushtabulateindent\strut##\tabskip\tabulateparameter\c!margin\strut&##\tabskip\zeropoint}%
+ \else
+ \!!toksa{&\flushtabulateindent\strut##&##\tabskip\zeropoint}%
+ \fi
+ \tabulatewidth\zeropoint
+ \nexttabulate #1X|\relax
+ \edef\totaltabulatecolumns{\the\numexpr3*\tabulatecolumns+4}%
+ \tabulatewidth\zeropoint
+ \initializetableboxes\tabulatecolumns
+ \appendtoks&##\global\advance\tabulatecolumn\plusone\to\!!toksa
+ \appendtoks\NC\unskip\unskip\crcr\flushtabulated\to\tabulatedummy % no count
+ \global\tabulatecolumn\zerocount
+ \resettabulatepheight
+ \let\bskip \tabulatebskipone
+ \let\eskip \tabulateeskipone
+ \let\xbskip\tabulatexbskipone
+ \let\xeskip\tabulatexeskipone
+ \glet\tabulatehook\dotabulatehook
+ \doifvalue{\??tt\currenttabulate\c!indenting}\v!no\forgetparindent
+ \ifinsidefloat
+ \let\tabulateindent\!!zeropoint
+ \else
+ \setlocalhsize \hsize\localhsize
+ \fi
+ \dontcomplain
+ \forgetall % hm, interference with \forgetparindent ^^^ probably bug, to be solved
+ \setbox0\vbox % outside \if because of line counting
+ {\notesenabledfalse
+ \let\tabulateindent\!!zeropoint
+ \trialtypesettingtrue % very important
+ \@EA\halign\@EA{\the\!!toksa\crcr\fulltabulatecontent\crcr}}%
+ \ifnum\nofautotabulate>\zerocount
+ % so, even if the natural size is larger, in the final
+ % run, we force the calculated width
+ \tabulatewidth\dimexpr\hsize-\wd0-\tabulatepwidth\relax
+ \ifnum\nofautotabulate>\zerocount
+ \divide\tabulatewidth \nofautotabulate\relax
+ \fi
+ \fi
+ \let\xbskip\tabulatexbskiptwo
+ \let\xeskip\tabulatexeskiptwo
+ \ifsplittabulate
+ \splittopskip\strutht
+ \glet\flushtabulatedindeed\empty
+ \let\bbskip\tabulatebbskiptwo
+ \let\bskip\tabulatebskiptwo
+ \glet\flushtabulated\tabulateflushtabulatedtwo
+ \else
+ % tabhook op alles ?
+ \let\bskip\tabulatebskipthree
+ \let\eskip\tabulateeskipthree
+ \fi
+ \totalnoftabulatelines\noftabulatelines
+ \minusnoftabulatelines\numexpr\noftabulatelines+\minusone\relax
+ \global\noftabulatelines\zerocount
+ \let\doHL\tabulatedoHLfour
+ \let\doHR\tabulatedoHRfour
+ \doifelsevalue{\??tt\currenttabulate\c!rule}\v!line
+ {\let\HL\HR
+ \let\tabulateautoline\tabulateautorule
+ \let\tabulateline\tabulaterule}%
+ {\let\HL\tabulateHLfive}%
+ \let\FL\tabulateFLfive
+ \let\ML\tabulateMLfive
+ \let\LL\tabulateLLfive
+ \let\tabulatepass\plustwo
+ %
+ \ifcase\tabulaterepeathead
+ \ifinsidesplitfloat
+ \setbox\tabulatebox\vbox \bgroup
+ \else
+ \startframedcontent[\tabulateparameter\c!frame]%
+ \fi
+ \else
+ \setbox\tabulatebox\vbox \bgroup
+ \fi
+ %
+ \@EA\halign\@EA{\the\!!toksa\crcr\fulltabulatecontent\crcr}%
+ \prevdepth\strutdp % nog eens beter, temporary hack
+ \doifvalue{\??tt\currenttabulate\c!distance}\v!grid{\vskip-\strutdp}% experimental tm-prikkels
+ %
+ \ifcase\tabulaterepeathead
+ \ifinsidesplitfloat
+ \egroup \splittabulatebox\tabulatebox
+ \else
+ \stopframedcontent
+ \fi
+ \else
+ \egroup \splittabulatebox\tabulatebox
+ \fi
+ %
+ \egroup
+ \ifinsidefloat \else
+ \tabulateparameter\c!after
+ \fi
+ \egroup}
+
+\egroup
+
+% \setuptabulate[split=yes,header=text,title=Vervolg van Tabel]
+%
+% % \starttabulatehead
+% % \NC test \NC hans\NC \NR
+% % \stoptabulatehead
+%
+% \starttabulate
+% \NC test \NC \input tufte \relax \NC \NR
+% \NC test \NC \input knuth \relax \NC \NR
+% \NC test \NC \input knuth \relax \NC \NR
+% \NC test \NC \input tufte \relax \NC \NR
+% \NC test \NC \input tufte \relax \NC \NR
+% \NC test \NC \input tufte \relax \NC \NR
+% \stoptabulate
+
+\def\splittabulatebox#1% #1 <> 0/2 / derived from the one in core-ntb.tex
+ {\ifinsidesplitfloat
+ \dosplittabulatebox#1%
+ \else\ifinsidefloat
+ \unvbox#1%
+ \else
+ \dosplittabulatebox#1%
+ \fi\fi}
+
+\def\dosplittabulatebox#1%
+ {\resettsplit
+ \def\tsplitminimumfreelines{2}%
+ \def\tsplitminimumfreespace{0pt}%
+ \setbox\tsplitcontent\box#1%
+ \ifcase\tabulaterepeathead\or
+ \setbox\tsplithead\vsplit\tsplitcontent to \lineheight
+ \setbox\tsplithead\vbox{\unvbox\tsplithead}%
+ \or
+ \setbox\tsplithead\vbox{\hbox{\strut\tabulateparameter\c!title}}%
+ \fi
+ \handletsplit}
+
+%D \starttyping
+%D \setuptabulate[split=no,rule=line]
+%D
+%D \starttabulate
+%D \NC tufte \NC \input tufte \NC \NR \tabulateautorule
+%D \NC tufte \NC \input tufte \NC \NR \tabulateautorule
+%D \NC tufte \NC \input tufte \NC \NR \tabulateautorule
+%D \NC tufte \NC \input tufte \NC \NR \tabulateautorule
+%D \NC tufte \NC \input tufte \NC \NR \tabulateautorule
+%D \NC tufte \NC \input tufte \NC \NR \tabulateautorule
+%D \stoptabulate
+%D \stoptyping
+
+% \starttabulatie[|mc|]
+% \NC \digits{100.000,00} \NC\NR
+% \NC \digits{@10.000,00} \NC\NR
+% \NC \digits{@@@.100,00} \NC\NR
+% \NC \digits{@@@.@10,@@} \NC\NR
+% \NC \digits{@@@.@@1,@@} \NC\NR
+% \stoptabulatie
+%
+% \starttabulatie[|mc|]
+% \ND 100.000,00 \NC\NR
+% \ND @10.000,00 \NC\NR
+% \ND @@@.100,00 \NC\NR
+% \ND @@@.@10,@@ \NC\NR
+% \ND @@@.@@1,@@ \NC\NR
+% \stoptabulatie
+%
+% \starttabulatie[|c|]
+% \ND $100.000,00$ \NC\NR
+% \ND $@10.000,00$ \NC\NR
+% \ND $@@@.100,00$ \NC\NR
+% \ND $@@@.@10,@@$ \NC\NR
+% \ND $@@@.@@1,@@$ \NC\NR
+% \stoptabulatie
+%
+% \starttabulatie[|c|]
+% \NC $\digits 100.000,00 $ \NC\NR
+% \NC $\digits @10.000,00 $ \NC\NR
+% \NC $\digits @@@.100,00 $ \NC\NR
+% \NC $\digits @@@.@10,@@ $ \NC\NR
+% \NC $\digits @@@.@@1,@@ $ \NC\NR
+% \stoptabulatie
+%
+% \starttabulatie[|c|]
+% \NC \digits $100.000,00$ \NC\NR
+% \NC \digits $@10.000,00$ \NC\NR
+% \NC \digits $@@@.100,00$ \NC\NR
+% \NC \digits $@@@.@10,@@$ \NC\NR
+% \NC \digits $@@@.@@1,@@$ \NC\NR
+% \stoptabulatie
+
+\def\setuptabulate
+ {\dotripleempty\dosetuptabulate}
+
+\def\dosetuptabulate[#1][#2][#3]%
+ {\ifthirdargument
+ \getparameters[\??tt#1::#2][#3]%
+ \else\ifsecondargument
+ \getparameters[\??tt#1::][#2]%
+ \else
+ \getparameters[\??tt\v!tabulate::][#1]%
+ \fi\fi}
+
+\setuptabulate
+ [\c!unit=1em,
+ EQ={:},
+ \c!frame=\v!off,
+ \c!bodyfont=,
+ \c!rule=\v!normal,
+ \c!rulecolor=,
+ \c!rulethickness=\linewidth,
+ \c!inner=,
+ \c!before=\blank,
+ \c!after=\blank,
+ \c!distance={\v!depth,\v!medium},
+ \c!align=\v!normal,
+ \c!margin=\!!zeropoint,
+ \c!split=\v!auto,
+ \c!header=\v!yes,
+ \c!title=,
+ \c!indenting=\v!no]
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/core-tsp.tex b/Master/texmf-dist/tex/context/base/tabl-tsp.mkii
index 3046a1ddad1..49bb7ad90ed 100644
--- a/Master/texmf-dist/tex/context/base/core-tsp.tex
+++ b/Master/texmf-dist/tex/context/base/tabl-tsp.mkii
@@ -1,8 +1,8 @@
%D \module
-%D [ file=core-tsp,
+%D [ file=tabl-tsp,
%D version=2000.10.20,
-%D title=\CONTEXT\ Core Macros,
-%D subtitle=Splitting Tables,
+%D title=\CONTEXT\ Table Macros,
+%D subtitle=Splitting,
%D author=Hans Hagen,
%D date=\currentdate,
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
@@ -11,11 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context OTR Macros / Floating Bodies}
-
-\beginTEX
- \expandafter \endinput
-\endTEX
+\writestatus{loading}{ConTeXt Table Macros / Splitting}
%D The code in this file is move here from other places.
diff --git a/Master/texmf-dist/tex/context/base/tabl-tsp.mkiv b/Master/texmf-dist/tex/context/base/tabl-tsp.mkiv
new file mode 100644
index 00000000000..49bb7ad90ed
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/tabl-tsp.mkiv
@@ -0,0 +1,427 @@
+%D \module
+%D [ file=tabl-tsp,
+%D version=2000.10.20,
+%D title=\CONTEXT\ Table Macros,
+%D subtitle=Splitting,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Table Macros / Splitting}
+
+%D The code in this file is move here from other places.
+
+\unprotect
+
+% only to be used with single tokens (will be prim)
+
+\ifx\htdp\undefined \def\htdp#1{\dimexpr\ht#1+\dp#1\relax} \fi
+
+%D Although the name resembles floats, and therefore this should be
+%D a page module, we decided to make it core functionality because the
+%D table code depends on it. Othrwise there would be too much
+%D overloading afterwards involved. Actually, the float part is rather
+%D generic and not that related to floats.
+
+% \splitfloat [settings] {\placetable[optional args]{test}} {content}
+
+\definenumber
+ [\??si]
+ [\c!way=\v!by\v!text,
+ \c!conversion=\@@siconversion]
+
+\def\setupfloatsplitting
+ {\dodoubleargument\getparameters[\??si]}
+
+\newif\ifinsidesplitfloat % will become chardef
+
+\newtoks \everysplitfloatsetup
+
+\def\splitfloat
+ {\dosingleempty\dosplitfloat}
+
+\ifx\floatcaptionsuffix\undefined \else
+ \let\floatcaptionsuffix\empty % will become \splitfloatcaptionsuffix
+\fi
+
+\def\extrasplitfloatlines{0}
+
+\def\dosplitfloat[#1]#2% nog dubbele refs
+ {\bgroup
+ \global\setfalse\splitfloatdone
+ \aftergroup\checksplitfloat
+ \insidefloattrue
+ \insidesplitfloattrue
+ \getparameters[\??si][#1]%
+ \resetnumber[\??si]%
+ \def\floatcaptionsuffix{\convertednumber[\??si]}%
+ \let\extrasplitfloatlines\@@silines
+ \the\everysplitfloatsetup
+ \def\splitfloatcommand{#2}%
+ \global\settrue \onlyonesplitofffloat
+ \global\setfalse\somenextplitofffloat
+ \dopushsavedfloats
+ \@@sibefore
+ \let\next} % \bgroup
+
+\def\checksplitfloat
+ {\ifconditional\splitfloatdone\else
+ \blank{\tttf \getmessage\m!floatblocks{13}\empty}\blank
+ \showmessage\m!floatblocks{13}\empty
+ \fi}
+
+\settrue \onlyonesplitofffloat
+\setfalse\somenextplitofffloat
+
+%D When \type {inbetween} is made empty instead of the
+%D default \type {\page}, we will get delayed flushing
+%D and text may continue below the graphic.
+%D
+%D \starttyping
+%D \dorecurse{2}{\input tufte }
+%D
+%D \splitfloat[lines=auto,inbetween=]
+%D {\placetable{\dorecurse{5}{test\recurselevel\endgraf}}}
+%D {\bTABLE[split=yes]
+%D \bTR \bTD 11 \eTD \bTD \input tufte \eTD \eTR
+%D \bTR \bTD 12 \eTD \bTD \input zapf \eTD \eTR
+%D \bTR \bTD 13 \eTD \bTD \input bryson \eTD \eTR
+%D \bTR \bTD 14 \eTD \bTD test \eTD \eTR
+%D \bTR \bTD 21 \eTD \bTD \input tufte \eTD \eTR
+%D \bTR \bTD 22 \eTD \bTD \input zapf \eTD \eTR
+%D \bTR \bTD 23 \eTD \bTD \input bryson \eTD \eTR
+%D \bTR \bTD 24 \eTD \bTD test \eTD \eTR
+%D \bTR \bTD 31 \eTD \bTD \input tufte \eTD \eTR
+%D \bTR \bTD 32 \eTD \bTD \input zapf \eTD \eTR
+%D \bTR \bTD 33 \eTD \bTD \input bryson \eTD \eTR
+%D \bTR \bTD 34 \eTD \bTD test \eTD \eTR
+%D \eTABLE}
+%D
+%D \dorecurse{10}{\input tufte }
+%D \stoptyping
+
+\newconditional\splitfloatdone
+
+\def\dodowithsplitofffloat
+ {\dowithnextbox
+ {\forgetall
+ \dontcomplain
+ \global\settrue\splitfloatdone
+ \chardef\nodelocationmode\zerocount % bypass auto-renumbering
+ \incrementnumber[\??si]%
+ \ifcase\rawnumber[\??si]\or \ifconditional\onlyonesplitofffloat
+ \let\floatcaptionsuffix\empty
+ \fi \fi
+ \bgroup
+ \ifconditional\somenextplitofffloat
+ \settrue\retainfloatnumber
+\notesenabledfalse % best here, experimental, brrr; test with note in caption
+ \else
+ \setfalse\retainfloatnumber
+ \fi
+ \splitfloatcommand{\box\nextbox}%
+ \egroup
+ \ifconditional\somenextplitofffloat
+ \doifelsenothing\@@siinbetween
+ {\ifconditional\splitfloatfirstdone\else\page\fi}
+ \@@siinbetween
+ \else
+ \@@siafter
+ \dopopsavedfloats
+ \doflushsavedfloats
+ \fi
+ \global\settrue\splitfloatfirstdone}%
+ \vbox}
+
+\def\nodowithsplitofffloat
+ {\dowithnextbox
+ {\forgetall
+ \dontcomplain
+ \box\nextbox % maybe an option to unvbox
+ \global\settrue\splitfloatfirstdone}%
+ \vbox}
+
+\def\dochecksplitofffloat#1% box
+ {\ifinsidesplitfloat
+ \ifdim\ht#1=\zeropoint
+ \global\setfalse\somenextplitofffloat
+ \else
+ \global\settrue \somenextplitofffloat
+ \global\setfalse\onlyonesplitofffloat
+ \fi
+ \fi}
+
+\def\analyzesplitfloatcaption#1% depends on page-flt
+ {\doif\extrasplitfloatlines\v!auto
+ {\bgroup
+ \settrue\retainfloatnumber
+ \chardef\nodelocationmode\zerocount
+ \forcelocalfloats
+ \setuplocalfloats[\c!before=,\c!after=,\c!inbetween=]%
+ \splitfloatcommand{\hbox to \wd#1{\strut}}% dummy line
+ \setbox\scratchbox\vbox{\flushlocalfloats}%
+ \getnoflines{\ht\scratchbox}%
+ \resetlocalfloats
+ \advance\noflines\minusone % compensate dummy line
+ \expanded{\egroup\noexpand\edef\noexpand\extrasplitfloatlines{\the\noflines}}}}
+
+% \def\analyzesplitfloatcaption#1%
+% {\edef\extrasplitfloatlines{11}}
+
+\def\dowithsplitofffloat % nextbox
+ {\ifinsidesplitfloat
+ \expandafter\dodowithsplitofffloat
+ \else
+ \expandafter\nodowithsplitofffloat
+ \fi}
+
+\def\doifnotinsidesplitfloat
+ {\ifinsidesplitfloat\expandafter\gobbleoneargument\fi}
+
+%D Some defaults:
+
+\setupfloatsplitting
+ [\c!conversion=\v!character, % \v!romannumerals
+ \c!lines=3,
+ \c!before=,
+ \c!inbetween=\page,
+ \c!after=]
+
+%D Table splitter, on top of previous code:
+
+\newbox\tsplitcontent
+\newbox\tsplitresult
+\newbox\tsplithead
+\newbox\tsplitnext
+\newbox\tsplittail
+
+\def\resettsplit{% only \def's starting a a new line are seen by the dep checker
+ \def\tsplitminimumfreelines{0}%
+ \def\tsplitminimumfreespace{0pt}%
+ \setbox\tsplitcontent \vbox{}%
+ \setbox\tsplitresult \vbox{}%
+ \setbox\tsplithead \vbox{}%
+ \setbox\tsplitnext \vbox{}%
+ \setbox\tsplittail \vbox{}%
+ \let\tsplitbeforeresult\donothing
+ \let\tsplitafterresult \donothing
+ \let\tsplitinbetween \donothing
+ \let\tsplitbefore \donothing
+ \let\tsplitafter \donothing
+ \let\postprocesstsplit \donothing
+}
+
+\resettsplit
+
+% todo: keep tail to rest, so we need a lookahead
+
+\newconditional\splitfloatfirstdone
+
+\def\handletsplit
+ {\analyzesplitfloatcaption\tsplitcontent
+ \global\setfalse\splitfloatfirstdone
+ \testpagesync % new, sync, but still tricky
+ [\tsplitminimumfreelines]
+ [\dimexpr\tsplitminimumfreespace+\extrasplitfloatlines\lineheight\relax]%
+ \setbox\scratchbox\vbox{\tsplitinbetween}%
+ \edef\tsplitinbetweenheight{\the\htdp\scratchbox}% etex
+ \!!doneafalse
+ \doloop
+ {\ifinsidecolumns
+ % brrr, assumes empty columns
+ \global\setfalse\splitfloatfirstdone
+ \scratchdimen\textheight
+ \!!donectrue
+ \else
+ \ifconditional\splitfloatfirstdone
+ \scratchdimen\textheight
+ \!!donectrue
+ \else\ifdim\pagegoal<\maxdimen
+ \scratchdimen\dimexpr\pagegoal-\pagetotal\relax
+ \!!donecfalse
+ \else
+ \scratchdimen\textheight
+ \!!donectrue
+ \fi\fi
+ \fi
+ \scratchdimen\dimexpr\scratchdimen-\tsplitinbetweenheight-\tsplitminimumfreespace-\extrasplitfloatlines\lineheight\relax
+ \ifdim\htdp\tsplittail>\zeropoint
+ \advance\scratchdimen-\htdp\tsplittail
+ \fi
+ \setbox\tsplitresult\vbox
+ {\ifdim\ht\tsplithead>\zeropoint
+ \unvcopy\tsplithead
+ \tsplitinbetween
+ \fi}%
+ \if!!donea\else\ifdim\ht\tsplitnext>\zeropoint
+ \setbox\tsplithead\box\tsplitnext
+ \fi\fi
+ \!!doneatrue
+ \ifdim\ht\tsplitresult>\zeropoint
+ \!!donedtrue % table head
+ \else
+ \!!donedfalse % no tablehead
+ \fi
+ \splittopskip\zeropoint
+ \doloop
+ {\setbox\scratchbox\vsplit\tsplitcontent to \onepoint % \lineheight
+ \setbox\scratchbox\vbox{\unvbox\scratchbox}%
+ \ifdim\dimexpr\scratchdimen-\htdp\scratchbox-\htdp\tsplitresult\relax>\zeropoint
+ \setbox\tsplitresult\vbox
+ {\unvbox\tsplitresult
+ \tsplitinbetween
+ \unvbox\scratchbox}%
+ \ifvoid\tsplitcontent \exitloop \fi
+ \else\if!!doned
+ % we only have a tablehead so far
+ \setbox\tsplitresult\vbox{\unvbox\tsplitresult\unvbox\scratchbox}%
+ \exitloop
+ \else\if!!donec
+ % we have text height available, but the (one) cell is too
+ % large to fit, so, in order to avoid loops/deadcycles we do:
+ \setbox\tsplitresult\vbox
+ {\unvbox\tsplitresult
+ \tsplitinbetween
+ \unvbox\scratchbox}%
+ \exitloop
+ \else
+ \setbox\tsplitcontent\vbox
+ {\unvbox\scratchbox
+ \tsplitinbetween
+ \ifvoid\tsplitcontent\else\unvbox\tsplitcontent\fi}%
+ \exitloop
+ \fi\fi\fi
+ \!!donedfalse
+ \!!donecfalse}%
+ \postprocesstsplit
+ \dochecksplitofffloat\tsplitcontent
+ \ifvoid\tsplitcontent
+ \setbox\tsplitresult\vbox
+ {\unvbox\tsplitresult
+ \tsplitinbetween
+ \unvcopy\tsplittail}%
+ \dowithsplitofffloat{\tsplitbeforeresult\box\tsplitresult\tsplitafterresult}%
+ \doifnotinsidesplitfloat\tsplitafter
+ \endgraf
+ \exitloop
+ \else
+ % hack
+ \ifdim\pagegoal<\maxdimen
+ \global\pagegoal\dimexpr\pagegoal+\lineheight\relax % etex
+ \fi
+ % brrr
+ \ifdim\ht\tsplitresult>\zeropoint
+ \setbox\tsplitresult\vbox
+ {\unvbox\tsplitresult
+ \tsplitinbetween
+ \unvcopy\tsplittail}%
+ \dowithsplitofffloat{\tsplitbeforeresult\box\tsplitresult\tsplitafterresult}%
+ \doifnotinsidesplitfloat\tsplitafter
+ \endgraf
+ \fi
+ \ifinsidecolumns
+ \doifnotinsidesplitfloat\goodbreak
+ \else
+ \doifnotinsidesplitfloat\page
+ \fi
+ \fi}%
+ \global\setfalse\splitfloatfirstdone} % we can use this one for tests
+
+\protect \endinput
+
+% test cases
+
+% \setupTABLE[split=repeat]
+%
+% \input tufte \endgraf
+% \splitfloat[lines=11]
+% {\placetable{\dorecurse{10}{test\recurselevel\endgraf}}}
+% {\bTABLE\dorecurse{100}{\bTR \bTD test \eTD \eTR}\eTABLE}
+% \input tufte \page
+%
+% \input tufte \endgraf
+% \splitfloat[lines=0]
+% {}
+% {\bTABLE\dorecurse{100}{\bTR \bTD test \eTD \eTR}\eTABLE}
+% \input tufte \endgraf \page
+%
+% \input tufte \endgraf
+% \bTABLE\dorecurse{100}{\bTR \bTD test \eTD \eTR}\eTABLE
+% \input tufte \page
+
+% \setuptabulate[split=yes]
+%
+% \input tufte \endgraf
+% \splitfloat[lines=11]
+% {\placetable{\dorecurse{10}{test\recurselevel\endgraf}}}
+% {\starttabulate\dorecurse{200}{\NC test \NC test \NC \NR}\stoptabulate}
+% \input tufte \page
+%
+% \input tufte \endgraf
+% \splitfloat[lines=0]
+% {}
+% {\starttabulate\dorecurse{200}{\NC test \NC test \NC \NR}\stoptabulate}
+% \input tufte \page
+%
+% \input tufte \endgraf
+% \starttabulate\dorecurse{200}{\NC test \NC test \NC \NR}\stoptabulate
+% \input tufte \page
+
+% \setuptables[split=yes]
+%
+% \newtoks\TestToks
+%
+% \TestToks\emptytoks
+% \appendtoks\starttablehead\to\TestToks
+% \dorecurse{3}{\appendtoks\VL head \VL head \VL \SR\to\TestToks}
+% \appendtoks\stoptablehead\to\TestToks
+% \appendtoks\starttabletail\to\TestToks
+% \dorecurse{3}{\appendtoks\VL tail \VL tail \VL \SR\to\TestToks}
+% \appendtoks\stoptabletail\to\TestToks
+% \appendtoks\starttables[|c|c|]\to\TestToks
+% \dorecurse{100}{\appendtoks\VL test \VL test \VL \SR\to\TestToks}
+% \appendtoks\stoptables\to\TestToks
+%
+% \input tufte \endgraf
+% \splitfloat[lines=auto] % [lines=11]
+% {\placetable{\dorecurse{10}{test\recurselevel\endgraf}}}
+% {\the\TestToks}
+% \input tufte \page
+%
+% \input tufte \endgraf
+% \splitfloat[lines=0]
+% {}
+% {\the\TestToks}
+% \input tufte \page
+%
+% \input tufte \endgraf
+% \the\TestToks
+% \input tufte \page
+%
+% multiple floats
+%
+% \starttext
+% \dorecurse{3}{\input tufte } \endgraf
+% \dorecurse{5}{\placefigure{}{\framed[height=.5\textheight]{}}}
+% \splitfloat[lines=auto,inbetween=]
+% {\placetable{\dorecurse{5}{test\recurselevel\endgraf}}}
+% {\bTABLE[split=yes]
+% \bTR \bTD 11 \eTD \bTD \input tufte \eTD \eTR
+% \bTR \bTD 12 \eTD \bTD \input zapf \eTD \eTR
+% \bTR \bTD 13 \eTD \bTD \input bryson \eTD \eTR
+% \bTR \bTD 14 \eTD \bTD test \eTD \eTR
+% \bTR \bTD 21 \eTD \bTD \input tufte \eTD \eTR
+% \bTR \bTD 22 \eTD \bTD \input zapf \eTD \eTR
+% \bTR \bTD 23 \eTD \bTD \input bryson \eTD \eTR
+% \bTR \bTD 24 \eTD \bTD test \eTD \eTR
+% \bTR \bTD 31 \eTD \bTD \input tufte \eTD \eTR
+% \bTR \bTD 32 \eTD \bTD \input zapf \eTD \eTR
+% \bTR \bTD 33 \eTD \bTD \input bryson \eTD \eTR
+% \bTR \bTD 34 \eTD \bTD test \eTD \eTR
+% \eTABLE}
+% \dorecurse{10}{\input tufte }
+% \stoptext
diff --git a/Master/texmf-dist/tex/context/base/task-ini.lua b/Master/texmf-dist/tex/context/base/task-ini.lua
new file mode 100644
index 00000000000..7ba20fa204a
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/task-ini.lua
@@ -0,0 +1,51 @@
+if not modules then modules = { } end modules ['task-ini'] = {
+ version = 1.001,
+ comment = "companion to task-ini.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- this is a temporary solution, we need to isolate some modules and then
+-- the load order can determine the trickery to be applied to node lists
+
+tasks.appendaction("processors", "normalizers", "fonts.collections.process")
+tasks.appendaction("processors", "normalizers", "fonts.checkers.missing")
+
+tasks.appendaction("processors", "characters", "chars.handle_mirroring")
+tasks.appendaction("processors", "characters", "chars.handle_casing")
+tasks.appendaction("processors", "characters", "chars.handle_breakpoints")
+tasks.appendaction("processors", "characters", "scripts.preprocess")
+
+tasks.appendaction("processors", "words", "kernel.hyphenation")
+tasks.appendaction("processors", "words", "languages.words.check")
+
+tasks.appendaction("processors", "fonts", "nodes.process_characters")
+tasks.appendaction("processors", "fonts", "nodes.inject_kerns")
+tasks.appendaction("processors", "fonts", "nodes.protect_glyphs", nil, "nohead")
+tasks.appendaction("processors", "fonts", "kernel.ligaturing")
+tasks.appendaction("processors", "fonts", "kernel.kerning")
+
+tasks.appendaction("processors", "lists", "lists.handle_spacing")
+tasks.appendaction("processors", "lists", "lists.handle_kerning")
+
+tasks.appendaction("shipouts", "normalizers", "nodes.cleanup_page")
+tasks.appendaction("shipouts", "normalizers", "nodes.add_references")
+tasks.appendaction("shipouts", "normalizers", "nodes.add_destinations")
+
+tasks.appendaction("shipouts", "finishers", "shipouts.handle_color")
+tasks.appendaction("shipouts", "finishers", "shipouts.handle_transparency")
+tasks.appendaction("shipouts", "finishers", "shipouts.handle_overprint")
+tasks.appendaction("shipouts", "finishers", "shipouts.handle_negative")
+tasks.appendaction("shipouts", "finishers", "shipouts.handle_effect")
+tasks.appendaction("shipouts", "finishers", "shipouts.handle_viewerlayer")
+
+tasks.appendaction("math", "normalizers", "noads.relocate_characters", nil, "nohead")
+tasks.appendaction("math", "normalizers", "noads.resize_characters", nil, "nohead")
+tasks.appendaction("math", "normalizers", "noads.respace_characters", nil, "nohead")
+
+tasks.appendaction("math", "builders", "noads.mlist_to_hlist")
+
+-- quite experimental
+
+tasks.appendaction("finalizers", "lists", "nodes.repackage_graphicvadjust")
diff --git a/Master/texmf-dist/tex/context/base/task-ini.mkiv b/Master/texmf-dist/tex/context/base/task-ini.mkiv
new file mode 100644
index 00000000000..ef32ee87dca
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/task-ini.mkiv
@@ -0,0 +1,22 @@
+%D \module
+%D [ file=task-ini,
+%D version=2007.06.06,
+%D title=\CONTEXT\ Task Handler,
+%D subtitle=Initialization,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA-ADE]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Task Handler / initialization}
+
+\unprotect
+
+%D Maybe we will make things configureable (speed up and such).
+
+\registerctxluafile{task-ini}{1.001}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/thrd-ran.tex b/Master/texmf-dist/tex/context/base/thrd-ran.mkii
index 7a186204b1d..276a4f6249f 100644
--- a/Master/texmf-dist/tex/context/base/thrd-ran.tex
+++ b/Master/texmf-dist/tex/context/base/thrd-ran.mkii
@@ -50,7 +50,7 @@
% \catcode`\@=11
%
% \def\nextrandom{\begingroup
-% \ifnum\randomi<\@ne % then initialize with time
+% \ifnum\randomi<\plusone % then initialize with time
% \global\randomi\time
% \global\multiply\randomi388 \global\advance\randomi\year
% \global\multiply\randomi31 \global\advance\randomi\day
@@ -115,7 +115,7 @@
\newcount\randomi % the random number seed (while executing)
\newcount\ranval
-\ifx\m!systems\undefined \def\m!systems{system} \fi
+\ifx\m!systems\undefined \def\m!systems{systems} \fi
\def\nextrandom
{\begingroup
diff --git a/Master/texmf-dist/tex/context/base/thrd-tab.tex b/Master/texmf-dist/tex/context/base/thrd-tab.tex
index 8ca90665e66..dd3838ce2d4 100644
--- a/Master/texmf-dist/tex/context/base/thrd-tab.tex
+++ b/Master/texmf-dist/tex/context/base/thrd-tab.tex
@@ -442,17 +442,17 @@
% DO VCS
\def\!thDoVCS#1{%
- \setbox\z@\hbox{#1}%
+ \setbox\zerocount\hbox{#1}%
\!thFinishVCS}
% DO MATH VCS
\def\!thDoMathVCS#1#2{%
- \setbox\z@\hbox{$\m@th#1{#2}$}%
+ \setbox\zerocount\hbox{$\mathsurround\zeropoint#1{#2}$}%
\!thFinishVCS}
% FINISH VCS
\def\!thFinishVCS{%
- \vbox to\z@{\vss\box\z@\vss}}
+ \vbox to\zeropoint{\vss\box\zerocount\vss}}
% ***************************************************************
@@ -505,20 +505,20 @@
% DO SIMPLE RAISE
\def\!thDoSimpleRaise#1{%
- \setbox\z@\hbox{\raise \!taDimenA\hbox{#1}}%
+ \setbox\zerocount\hbox{\raise \!taDimenA\hbox{#1}}%
\!thFinishRaise} % From Plain TeX: \ht0=0pt \dp0=0pt \box0
% DO MATH RAISE
\def\!thDoMathRaise#1#2{%
- \setbox\z@\hbox{\raise \!taDimenA\hbox{$\m@th#1{#2}$}}%
+ \setbox\zerocount\hbox{\raise \!taDimenA\hbox{$\mathsurround\zeropoint#1{#2}$}}%
\!thFinishRaise}
% FINISH RAISE. This is the same as Plain's \finsm@sh; some macro
% packages redefine \finsm@sh.
\def\!thFinishRaise{%
- \ht\z@\z@
- \dp\z@\z@
- \box\z@}
+ \ht\zerocount\zeropoint
+ \dp\zerocount\zeropoint
+ \box\zerocount}
% ***************************************************************
@@ -1481,10 +1481,10 @@
\ifx\!ttemp\empty
\!taDimenC=0pt
\else
- \setbox0=\hbox{\m@th #1.#3#1}%
+ \setbox0=\hbox{\mathsurround\zeropoint #1.#3#1}%
\!taDimenC=\wd0
\fi
- \setbox0 =\hbox{\m@th #1#2#1}%
+ \setbox0 =\hbox{\mathsurround\zeropoint #1#2#1}%
\!thToksEdef\!taDataColumnTemplate={%
\noexpand\!tnSetNumericItem
{\the\wd0 }%
@@ -1499,11 +1499,11 @@
\def\!tnSetNumericItemA #1#2#3#4.#5.#6!{%
\def\!ttemp{#6}%
- \hbox to #1{\hss \m@th #3#4#3}%
+ \hbox to #1{\hss \mathsurround\zeropoint #3#4#3}%
\hbox to #2{%
\ifx\!ttemp\empty
\else
- \m@th #3.#5#3%
+ \mathsurround\zeropoint #3.#5#3%
\fi
\hss}}
@@ -1563,25 +1563,25 @@
\def\!TsEnlargeOther#1{%
\ifhmode
- \setbox\z@=\hbox{#1%
+ \setbox\zerocount\hbox{#1%
\xdef\!TsSpaceFactor{\spacefactor=\the\spacefactor}}%
\else
- \setbox\z@=\hbox{#1}%
+ \setbox\zerocount\hbox{#1}%
\fi
\!TsFinishEnlarge}
\def\!TsEnlargeMath#1#2{%
- \setbox\z@=\hbox{$\m@th#1{#2}$}%
+ \setbox\zerocount\hbox{$\mathsurround\zeropoint#1{#2}$}%
\!TsFinishEnlarge}
\def\!TsFinishEnlarge{%
- \dimen@=\ht\z@
+ \dimen@\ht\zerocount
\advance \dimen@ \!taDimenA
- \ht\z@=\dimen@
- \dimen@=\dp\z@
+ \ht\zerocount\dimen@
+ \dimen@\dp\zerocount
\advance \dimen@ \!taDimenB
- \dp\z@=\dimen@
- \box\z@ \!TsSpaceFactor{}}
+ \dp\zerocount\dimen@
+ \box\zerocount \!TsSpaceFactor{}}
% ENLARGE BY MULTIPLES OF StrutUnit
@@ -1883,15 +1883,17 @@
% USE
% \use <number> spans the next <number> data columns.
+
\def\!ttuse#1{%
- \ifnum #1>\@ne
+ \ifnum #1>\plusone
\omit
\mscount=#1 % \mscount is in Plain
- \advance\mscount by \m@ne
+ \advance\mscount by \minusone
\advance\mscount by \mscount
\!thLoop
- \ifnum\mscount>\@ne
- \sp@n % from Plain (\span\omit \advance\mscount\m@ne)
+ \ifnum\mscount>\plusone
+ % \sp@n: from plain
+ \spanomit \advance\mscount\minusone
\repeat
\span
\fi}
diff --git a/Master/texmf-dist/tex/context/base/thrd-trg.tex b/Master/texmf-dist/tex/context/base/thrd-trg.mkii
index dda81a8afde..c0106f5a3f1 100644
--- a/Master/texmf-dist/tex/context/base/thrd-trg.tex
+++ b/Master/texmf-dist/tex/context/base/thrd-trg.mkii
@@ -10,7 +10,7 @@
%
% so we need:
-\def\realnumber#1{\withoutpt\the\dimexpr#1\s!pt\relax} % brrr
+\def\realnumber#1{\withoutpt\the\dimexpr#1\points\relax} % brrr
\chardef \@iv = 4
\chardef \@xc = 90 % was \nin@ty
@@ -95,6 +95,13 @@
\def\calculatedcos#1{\executeifdefined{cos \realnumber{#1}}\!!plusone }
\def\calculatedtan#1{\executeifdefined{tan \realnumber{#1}}\!!zerocount}
+%D The following permits cleaner overloading (\MKIV\ will only have
+%D these):
+
+\def\setcalculatedsin#1#2{\calculatesin{#2}\edef#1{\calculatedsin{#2}}}
+\def\setcalculatedcos#1#2{\calculatecos{#2}\edef#1{\calculatedcos{#2}}}
+\def\setcalculatedtan#1#2{\calculatetan{#2}\edef#1{\calculatedtan{#2}}}
+
%D A few values are predefined, although, on todays systems there
%D is no real reason for that. I've added the 270 ones and changed
%D the -90 tan. Also, I prefer text (\type {\!!..} instead of
diff --git a/Master/texmf-dist/tex/context/base/todo-mkii.tex b/Master/texmf-dist/tex/context/base/todo-mkii.tex
deleted file mode 100644
index 5a0f340bdd3..00000000000
--- a/Master/texmf-dist/tex/context/base/todo-mkii.tex
+++ /dev/null
@@ -1 +0,0 @@
-MKII Todo List
diff --git a/Master/texmf-dist/tex/context/base/todo-mkiv.tex b/Master/texmf-dist/tex/context/base/todo-mkiv.tex
deleted file mode 100644
index 94fd6d478f2..00000000000
--- a/Master/texmf-dist/tex/context/base/todo-mkiv.tex
+++ /dev/null
@@ -1,6 +0,0 @@
-MKIV Todo List
-
--- language dependent case swapping (using char-map.lua)
--- figures (locating and scaling)
--- numbering
--- cross references
diff --git a/Master/texmf-dist/tex/context/base/toks-ini.lua b/Master/texmf-dist/tex/context/base/toks-ini.lua
index d39188215ff..1313b04a238 100644
--- a/Master/texmf-dist/tex/context/base/toks-ini.lua
+++ b/Master/texmf-dist/tex/context/base/toks-ini.lua
@@ -5,13 +5,16 @@ if not modules then modules = { } end modules ['toks-ini'] = {
license = "see context related readme files"
}
-utf = utf or unicode.utf8
+local utf = unicode.utf8
+local format, gsub, texsprint = string.format, string.gsub, tex.sprint
+
+local ctxcatcodes = tex.ctxcatcodes
--[[ldx--
-<p>This code is experimental.</p>
+<p>This code is experimental and needs a cleanup. The visualizers will move to
+a module.</p>
--ldx]]--
-
-- 1 = command, 2 = modifier (char), 3 = controlsequence id
--
-- callback.register('token_filter', token.get_next)
@@ -169,18 +172,18 @@ function collectors.show_token(t)
if t then
local cmd, chr, id, cs, name = t[1], t[2], t[3], nil, token.command_name(t) or ""
if cmd == commands.letter or cmd == commands.other then
- return string.format("%s-> %s -> %s", name, chr, utf.char(chr))
+ return format("%s-> %s -> %s", name, chr, utf.char(chr))
elseif id > 0 then
cs = token.csname_name(t) or nil
if cs then
- return string.format("%s-> %s", name, cs)
+ return format("%s-> %s", name, cs)
elseif tonumber(chr) < 0 then
- return string.format("%s-> %s", name, id)
+ return format("%s-> %s", name, id)
else
- return string.format("%s-> (%s,%s)", name, chr, id)
+ return format("%s-> (%s,%s)", name, chr, id)
end
else
- return string.format("%s", name)
+ return format("%s", name)
end
else
return "no node"
@@ -194,14 +197,13 @@ function collectors.trace()
end
collectors.show_methods.a = function(data) -- no need to store the table, just pass directly
- local flush, ct = tex.sprint, tex.ctxcatcodes
local template = "\\NC %s\\NC %s\\NC %s\\NC %s\\NC %s\\NC\\NR "
- flush(ct, "\\starttabulate[|T|Tr|cT|Tr|T|]")
- flush(ct, template:format("cmd","chr","","id","name"))
- flush(ct, "\\HL")
+ texsprint(ctxcatcodes, "\\starttabulate[|T|Tr|cT|Tr|T|]")
+ texsprint(ctxcatcodes, format(template,"cmd","chr","","id","name"))
+ texsprint(ctxcatcodes, "\\HL")
for _,v in pairs(data) do
local cmd, chr, id, cs, sym = v[1], v[2], v[3], "", ""
- local name = (token.command_name(v) or ""):gsub("_","\\_")
+ local name = gsub(token.command_name(v) or "","_","\\_")
if id > 0 then
cs = token.csname_name(v) or ""
if cs ~= "" then cs = "\\string " .. cs end
@@ -212,27 +214,26 @@ collectors.show_methods.a = function(data) -- no need to store the table, just p
sym = "\\char " .. chr
end
if tonumber(chr) < 0 then
- flush(ct, template:format(name, "", sym, id, cs))
+ texsprint(ctxcatcodes, format(template, name, "", sym, id, cs))
else
- flush(ct, template:format(name, chr, sym, id, cs))
+ texsprint(ctxcatcodes, format(template, name, chr, sym, id, cs))
end
end
- flush(ct, "\\stoptabulate")
+ texsprint(ctxcatcodes, "\\stoptabulate")
end
collectors.show_methods.b_c = function(data,swap) -- no need to store the table, just pass directly
- local flush, ct = tex.sprint, tex.ctxcatcodes
local template = "\\NC %s\\NC %s\\NC %s\\NC\\NR"
if swap then
- flush(ct, "\\starttabulate[|Tl|Tl|Tr|]")
+ texsprint(ctxcatcodes, "\\starttabulate[|Tl|Tl|Tr|]")
else
- flush(ct, "\\starttabulate[|Tl|Tr|Tl|]")
+ texsprint(ctxcatcodes, "\\starttabulate[|Tl|Tr|Tl|]")
end
- flush(ct, template:format("cmd","chr","name"))
- flush(ct, "\\HL")
+ texsprint(ctxcatcodes, format(template,"cmd","chr","name"))
+ texsprint(ctxcatcodes, "\\HL")
for _,v in pairs(data) do
local cmd, chr, id, cs, sym = v[1], v[2], v[3], "", ""
- local name = (token.command_name(v) or ""):gsub("_","\\_")
+ local name = gsub(token.command_name(v) or "","_","\\_")
if id > 0 then
cs = token.csname_name(v) or ""
end
@@ -246,14 +247,14 @@ collectors.show_methods.b_c = function(data,swap) -- no need to store the table,
end
end
if swap then
- flush(ct, template:format(name, sym, chr))
+ texsprint(ctxcatcodes, format(template, name, sym, chr))
elseif tonumber(chr) < 0 then
- flush(ct, template:format(name, "", sym))
+ texsprint(ctxcatcodes, format(template, name, "", sym))
else
- flush(ct, template:format(name, chr, sym))
+ texsprint(ctxcatcodes, format(template, name, chr, sym))
end
end
- flush(ct, "\\stoptabulate")
+ texsprint(ctxcatcodes, "\\stoptabulate")
end
-- Even more experimental ...
diff --git a/Master/texmf-dist/tex/context/base/toks-ini.tex b/Master/texmf-dist/tex/context/base/toks-ini.mkiv
index 90311eb13ba..932c05f32e3 100644
--- a/Master/texmf-dist/tex/context/base/toks-ini.tex
+++ b/Master/texmf-dist/tex/context/base/toks-ini.mkiv
@@ -1,8 +1,8 @@
%D \module
%D [ file=toks-ini,
%D version=2007.03.03,
-%D title=\CONTEXT\ Character Macros,
-%D subtitle=Token Support (Initialization),
+%D title=\CONTEXT\ Token Support,
+%D subtitle=Initialization,
%D author=Hans Hagen,
%D date=\currentdate,
%D copyright=PRAGMA]
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Token Support (initialization)}
+\writestatus{loading}{ConTeXt Token Support / Initialization}
\registerctxluafile{toks-ini}{1.001}
diff --git a/Master/texmf-dist/tex/context/base/luat-deb.lua b/Master/texmf-dist/tex/context/base/trac-deb.lua
index a32d923bd93..f476169c395 100644
--- a/Master/texmf-dist/tex/context/base/luat-deb.lua
+++ b/Master/texmf-dist/tex/context/base/trac-deb.lua
@@ -1,10 +1,11 @@
--- filename : luat-deb.lua
--- comment : companion to luat-deb.tex
--- author : Hans Hagen, PRAGMA-ADE, Hasselt NL
--- copyright: PRAGMA ADE / ConTeXt Development Team
--- license : see context related readme files
+if not modules then modules = { } end modules ['trac-deb'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
-if not versions then versions = { } end versions['luat-deb'] = 1.001
if not lmx then lmx = { } end
if not lmx.variables then lmx.variables = { } end
@@ -21,6 +22,9 @@ lmx.variables['color-background-two'] = lmx.variables['color-background-blue'
lmx.variables['title-default'] = 'ConTeXt Status Information'
lmx.variables['title'] = lmx.variables['title-default']
+lmx.htmfile = function(name) return environment.jobname .. "-status.html" end
+lmx.lmxfile = function(name) return resolvers.find_file(name,'tex') end
+
if not tracers then tracers = { } end
if not tracers.list then tracers.list = { } end
if not tracers.strings then tracers.strings = { } end
@@ -133,9 +137,6 @@ function tracers.showerror()
end
function tracers.overloaderror()
---~ callback.register('show_error_hook', function(identifier, filename, linenumber)
---~ tracers.showerror(identifier, filename, linenumber)
---~ end )
callback.register('show_error_hook', tracers.showerror)
end
@@ -152,3 +153,54 @@ tracers.list['context'] = {
'd:lineheight',
'c:realpageno', 'c:pageno', 'c:subpageno'
}
+
+-- dumping the hash
+
+-- \starttext
+-- \ctxlua{tracers.dump_hash()}
+-- \stoptext
+
+local saved = { }
+
+function tracers.save_hash()
+ saved = tex.hashtokens()
+end
+
+function tracers.dump_hash(filename,delta)
+ filename = filename or tex.jobname .. "-hash.log"
+ local list = { }
+ local hash = tex.hashtokens()
+ local command_name = token.command_name
+ for name, token in pairs(hash) do
+ if not delta or not saved[name] then
+ -- token: cmd, chr, csid -- combination cmd,chr determines name
+ local kind = command_name(token)
+ local dk = list[kind]
+ if not dk then
+ -- a bit funny names but this sorts better (easier to study)
+ dk = { names = { }, found = 0, code = token[1] }
+ list[kind] = dk
+ end
+ dk.names[name] = { token[2], token[3] }
+ dk.found = dk.found + 1
+ end
+ end
+ io.savedata(filename,table.serialize(list,true))
+end
+
+function tracers.register_dump_hash(delta)
+ if delta then
+ tracers.save_hash()
+ end
+ main.register_stop_actions(1,function() tracers.dump_hash(nil,true) end) -- at front
+end
+
+-- trackers (maybe group the show by class)
+
+function trackers.show()
+ commands.writestatus("","")
+ for k,v in ipairs(trackers.list()) do
+ commands.writestatus("tracker",v)
+ end
+ commands.writestatus("","")
+end
diff --git a/Master/texmf-dist/tex/context/base/luat-deb.tex b/Master/texmf-dist/tex/context/base/trac-deb.mkiv
index 55686ac1144..870c452adf7 100644
--- a/Master/texmf-dist/tex/context/base/luat-deb.tex
+++ b/Master/texmf-dist/tex/context/base/trac-deb.mkiv
@@ -1,8 +1,8 @@
%D \module
-%D [ file=luat-deb,
+%D [ file=trac-deb,
%D version=2005.11.06,
-%D title=\CONTEXT\ Communication Macros,
-%D subtitle=Initialization,
+%D title=\CONTEXT\ Tracing Macros,
+%D subtitle=Debugger,
%D author=Hans Hagen,
%D date=\currentdate,
%D copyright=PRAGMA]
@@ -11,24 +11,15 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Communication Support (initialization)}
+\writestatus{loading}{ConTeXt Tracing Macros / Debugger}
-\registerctxluafile{luat-deb}{1.001}
-
-\startruntimeluacode
- \ctxlua {
- lmx.htmfile = function(name) return environment.jobname .. "-status.html" end
- lmx.lmxfile = function(name) return environment.texfile(name) end
- }
-\stopruntimeluacode
+\registerctxluafile{trac-deb}{1.001}
\def\showdebuginfo{\ctxlua{tracers.showdebuginfo()}}
\def\overloaderror{\ctxlua{tracers.overloaderror()}}
\def\breakpoint{\showdebuginfo\wait}
-\registerctxluafile{luat-tra}{1.001}
-
\appendtoks
\ctxlua {
if debugger.tracing() then
@@ -46,4 +37,7 @@
}%
\to \everybye
-\endinput
+\def\showtrackers {\ctxlua{trackers.show()}}
+\def\resettrackers {\ctxlua{trackers.reset()}}
+\def\enabletrackers [#1]{\ctxlua{trackers.enable("#1")}}
+\def\disabletrackers[#1]{\ctxlua{trackers.disable("#1")}}
diff --git a/Master/texmf-dist/tex/context/base/trac-inf.lua b/Master/texmf-dist/tex/context/base/trac-inf.lua
new file mode 100644
index 00000000000..3dfaf71192b
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/trac-inf.lua
@@ -0,0 +1,163 @@
+if not modules then modules = { } end modules ['trac-inf'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local format = string.format
+
+local statusinfo, n, registered = { }, 0, { }
+
+statistics = statistics or { }
+
+statistics.enable = true
+statistics.threshold = 0.05
+
+-- timing functions
+
+local clock = os.gettimeofday or os.clock
+
+local notimer
+
+function statistics.hastimer(instance)
+ return instance and instance.starttime
+end
+
+function statistics.starttiming(instance)
+ if not instance then
+ notimer = { }
+ instance = notimer
+ end
+ local it = instance.timing
+ if not it then
+ it = 0
+ end
+ if it == 0 then
+ instance.starttime = clock()
+ if not instance.loadtime then
+ instance.loadtime = 0
+ end
+ end
+ instance.timing = it + 1
+end
+
+function statistics.stoptiming(instance, report)
+ if not instance then
+ instance = notimer
+ end
+ if instance then
+ local it = instance.timing
+ if it > 1 then
+ instance.timing = it - 1
+ else
+ local starttime = instance.starttime
+ if starttime then
+ local stoptime = clock()
+ local loadtime = stoptime - starttime
+ instance.stoptime = stoptime
+ instance.loadtime = instance.loadtime + loadtime
+ if report then
+ statistics.report("load time %0.3f",loadtime)
+ end
+ instance.timing = 0
+ return loadtime
+ end
+ end
+ end
+ return 0
+end
+
+function statistics.elapsedtime(instance)
+ if not instance then
+ instance = notimer
+ end
+ return format("%0.3f",(instance and instance.loadtime) or 0)
+end
+
+function statistics.elapsedindeed(instance)
+ if not instance then
+ instance = notimer
+ end
+ local t = (instance and instance.loadtime) or 0
+ return t > statistics.threshold
+end
+
+-- general function
+
+function statistics.register(tag,fnc)
+ if statistics.enable and type(fnc) == "function" then
+ local rt = registered[tag] or (#statusinfo + 1)
+ statusinfo[rt] = { tag, fnc }
+ registered[tag] = rt
+ if #tag > n then n = #tag end
+ end
+end
+
+function statistics.show(reporter)
+ if statistics.enable then
+ if not reporter then reporter = function(tag,data,n) texio.write_nl(tag .. " " .. data) end end
+ -- this code will move
+ local register = statistics.register
+ register("luatex banner", function()
+ return string.lower(status.banner)
+ end)
+ register("control sequences", function()
+ return format("%s of %s", status.cs_count, status.hash_size+status.hash_extra)
+ end)
+ register("callbacks", function()
+ local total, indirect = status.callbacks or 0, status.indirect_callbacks or 0
+ return format("direct: %s, indirect: %s, total: %s", total-indirect, indirect, total)
+ end)
+ register("current memory usage", statistics.memused)
+ register("runtime",statistics.runtime)
+-- --
+ for i=1,#statusinfo do
+ local s = statusinfo[i]
+ local r = s[2]()
+ if r then
+ reporter(s[1],r,n)
+ end
+ end
+ texio.write_nl("") -- final newline
+ statistics.enable = false
+ end
+end
+
+function statistics.show_job_stat(tag,data,n)
+ texio.write_nl(format("%-15s: %s - %s","mkiv lua stats",tag:rpadd(n," "),data))
+end
+
+function statistics.memused() -- no math.round yet -)
+ local round = math.round or math.floor
+ return format("%s MB (ctx: %s MB)",round(collectgarbage("count")/1000), round(status.luastate_bytes/1000000))
+end
+
+if statistics.runtime then
+ -- already loaded and set
+elseif luatex and luatex.starttime then
+ statistics.starttime = luatex.starttime
+ statistics.loadtime = 0
+ statistics.timing = 0
+else
+ statistics.starttiming(statistics)
+end
+
+function statistics.runtime()
+ statistics.stoptiming(statistics)
+ return statistics.formatruntime(statistics.elapsedtime(statistics))
+end
+
+function statistics.formatruntime(runtime)
+ return format("%s seconds", statistics.elapsedtime(statistics))
+end
+
+function statistics.timed(action,report)
+ local timer = { }
+ report = report or logs.simple
+ statistics.starttiming(timer)
+ action()
+ statistics.stoptiming(timer)
+ report("total runtime: %s",statistics.elapsedtime(timer))
+end
diff --git a/Master/texmf-dist/tex/context/base/luat-lmx.lua b/Master/texmf-dist/tex/context/base/trac-lmx.lua
index 626482e6a95..07f5ae291c0 100644
--- a/Master/texmf-dist/tex/context/base/luat-lmx.lua
+++ b/Master/texmf-dist/tex/context/base/trac-lmx.lua
@@ -1,14 +1,16 @@
--- filename : luat-lmx.lua
--- comment : companion to luat-lmx.tex
--- author : Hans Hagen, PRAGMA-ADE, Hasselt NL
--- copyright: PRAGMA ADE / ConTeXt Development Team
--- license : see context related readme files
+if not modules then modules = { } end modules ['trac-lmx'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
-if not versions then versions = { } end versions['luat-mlx'] = 1.001
+local gsub, format, concat = string.gsub, string.format, table.concat
-- we can now use l-xml, and we can also use lpeg
-lmx = { }
+lmx = lmx or { }
lmx.escapes = {
['&'] = '&amp;',
@@ -27,26 +29,32 @@ lmx.variables['title'] = lmx.variables['title-default']
-- demonstrates: local, *all, gsub using tables, nil or value, loadstring
function lmx.loadedfile(filename)
- return input.texdatablob(texmf.instance, filename)
+ return io.loaddata(resolvers.find_file(filename))
end
lmx.converting = false
+local templates = { }
+
function lmx.convert(template,result) -- todo: use lpeg instead
if not lmx.converting then -- else, if error then again tex error and loop
- local data = input.texdatablob(texmf.instance, template)
- local f = false
- if result then
- f = io.open(result,"w")
- function lmx.print(str) f:write(str) end
- else
- lmx.print = io.write
+ local data = templates[template]
+ if not data then
+ data = lmx.loadedfile(template)
+ templates[template] = data
+ end
+ local text = { }
+ function lmx.print(...)
+ text[#text+1] = concat({...})
end
function lmx.variable(str)
return lmx.variables[str] or ""
end
function lmx.escape(str)
- return string.gsub(str:gsub('&','&amp;'),'[<>"]',lmx.escapes)
+ str = tostring(str)
+ str = gsub(str,'&','&amp;')
+ str = gsub(str,'[<>"]',lmx.escapes)
+ return str
end
function lmx.type(str)
if str then lmx.print("<tt>" .. lmx.escape(str) .. "</tt>") end
@@ -57,56 +65,65 @@ function lmx.convert(template,result) -- todo: use lpeg instead
function lmx.tv(str)
lmx.type(lmx.variable(str))
end
- data = data:gsub("<%?lmx%-include%s+(.-)%s-%?>", function(filename)
+ data = gsub(data,"<%?lmx%-include%s+(.-)%s-%?>", function(filename)
return lmx.loadedfile(filename)
end)
local definitions = { }
- data = data:gsub("<%?lmx%-define%-begin%s+(%S-)%s-%?>(.-)<%?lmx%-define%-end%s-%?>", function(tag,content)
+ data = gsub(data,"<%?lmx%-define%-begin%s+(%S-)%s-%?>(.-)<%?lmx%-define%-end%s-%?>", function(tag,content)
definitions[tag] = content
return ""
end)
- data = data:gsub("<%?lmx%-resolve%s+(%S-)%s-%?>", function(tag)
+ data = gsub(data,"<%?lmx%-resolve%s+(%S-)%s-%?>", function(tag)
return definitions[tag] or ""
end)
- data = data:gsub("%c%s-(<%?lua .-%?>)%s-%c", function(lua)
+ data = gsub(data,"%c%s-(<%?lua .-%?>)%s-%c", function(lua)
return "\n" .. lua .. " "
end)
- data = string.gsub(data .. "<?lua ?>","(.-)<%?lua%s+(.-)%?>", function(txt, lua)
- txt = txt:gsub("%c+", "\\n")
- txt = txt:gsub('"' , '\\"')
- txt = txt:gsub("'" , "\\'")
- -- txt = string.gsub(txt, "([\'\"])", { ["'"] = '\\"', ['"'] = "\\'" } )
+ data = gsub(data .. "<?lua ?>","(.-)<%?lua%s+(.-)%?>", function(txt, lua)
+ txt = gsub(txt,"%c+", "\\n")
+ txt = gsub(txt,'"' , '\\"')
+ txt = gsub(txt,"'" , "\\'")
+ -- txt = gsub(txt,"([\'\"])", { ["'"] = '\\"', ['"'] = "\\'" } )
return "p(\"" .. txt .. "\")\n" .. lua .. "\n"
end)
lmx.converting = true
data = "local p,v,e,t,pv,tv = lmx.print,lmx.variable,lmx.escape,lmx.type,lmx.pv,lmx.tv " .. data
assert(loadstring(data))()
lmx.converting = false
- if f then
- f:close()
+ text = concat(text)
+ if result then
+ io.savedata(result,text)
+ else
+ return text
end
end
end
-- these can be overloaded; we assume that the os handles filename associations
-lmx.lmxfile = function(filename) return filename end
-lmx.htmfile = function(filename) return filename end
+lmx.lmxfile = function(filename) return filename end
+lmx.htmfile = function(filename) return filename end
-if environment.platform == "windows" then
+if os.platform == "windows" then
lmx.popupfile = function(filename) os.execute("start " .. filename) end
else
lmx.popupfile = function(filename) os.execute(filename) end
end
-function lmx.show(name)
+function lmx.make(name)
local lmxfile = lmx.lmxfile(name)
local htmfile = lmx.htmfile(name)
if lmxfile == htmfile then
- htmfile = string.gsub(lmxfile, "%.%a+$", "html")
+ htmfile = gsub(lmxfile, "%.%a+$", "html")
end
lmx.convert(lmxfile, htmfile)
+ return htmfile
+end
+
+function lmx.show(name)
+ local htmfile = lmx.make(name)
lmx.popupfile(htmfile)
+ return htmfile
end
-- kind of private
diff --git a/Master/texmf-dist/tex/context/base/luat-lmx.tex b/Master/texmf-dist/tex/context/base/trac-lmx.mkiv
index cc7fa448f53..a47d2b8bbee 100644
--- a/Master/texmf-dist/tex/context/base/luat-lmx.tex
+++ b/Master/texmf-dist/tex/context/base/trac-lmx.mkiv
@@ -1,8 +1,8 @@
%D \module
-%D [ file=luat-lmx,
+%D [ file=trac-lmx,
%D version=2005.09.02,
-%D title=\CONTEXT\ Lua Macros,
-%D subtitle=LMX Support,
+%D title=\CONTEXT\ Tracing Macros,
+%D subtitle=LMX,
%D author=Hans Hagen,
%D date=\currentdate,
%D copyright=PRAGMA]
@@ -11,6 +11,6 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Lua Support Macros (lmx)}
+\writestatus{loading}{ConTeXt Tracing Macros / LMX}
-\registerctxluafile{luat-lmx}{1.001}
+\registerctxluafile{trac-lmx}{1.001}
diff --git a/Master/texmf-dist/tex/context/base/trac-log.lua b/Master/texmf-dist/tex/context/base/trac-log.lua
new file mode 100644
index 00000000000..d05bc9fec9c
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/trac-log.lua
@@ -0,0 +1,284 @@
+if not modules then modules = { } end modules ['luat-log'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- this is old code that needs an overhaul
+
+local write_nl, write, format = texio.write_nl or print, texio.write or io.write, string.format
+local texcount = tex and tex.count
+
+if texlua then
+ write_nl = print
+ write = io.write
+end
+
+--[[ldx--
+<p>This is a prelude to a more extensive logging module. For the sake
+of parsing log files, in addition to the standard logging we will
+provide an <l n='xml'/> structured file. Actually, any logging that
+is hooked into callbacks will be \XML\ by default.</p>
+--ldx]]--
+
+logs = logs or { }
+logs.xml = logs.xml or { }
+logs.tex = logs.tex or { }
+
+--[[ldx--
+<p>This looks pretty ugly but we need to speed things up a bit.</p>
+--ldx]]--
+
+logs.moreinfo = [[
+more information about ConTeXt and the tools that come with it can be found at:
+
+maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
+webpage : http://www.pragma-ade.nl / http://tex.aanhet.net
+wiki : http://contextgarden.net
+]]
+
+logs.levels = {
+ ['error'] = 1,
+ ['warning'] = 2,
+ ['info'] = 3,
+ ['debug'] = 4,
+}
+
+logs.functions = {
+ 'report', 'start', 'stop', 'push', 'pop', 'line', 'direct',
+ 'start_run', 'stop_run',
+ 'start_page_number', 'stop_page_number',
+ 'report_output_pages', 'report_output_log',
+ 'report_tex_stat', 'report_job_stat',
+ 'show_open', 'show_close', 'show_load',
+}
+
+logs.tracers = {
+}
+
+logs.level = 0
+logs.mode = string.lower((os.getenv("MTX.LOG.MODE") or os.getenv("MTX_LOG_MODE") or "tex"))
+
+function logs.set_level(level)
+ logs.level = logs.levels[level] or level
+end
+
+function logs.set_method(method)
+ for _, v in next, logs.functions do
+ logs[v] = logs[method][v] or function() end
+ end
+end
+
+-- tex logging
+
+function logs.tex.report(category,fmt,...) -- new
+ if fmt then
+ write_nl(category .. " | " .. format(fmt,...))
+ else
+ write_nl(category .. " |")
+ end
+end
+
+function logs.tex.line(fmt,...) -- new
+ if fmt then
+ write_nl(format(fmt,...))
+ else
+ write_nl("")
+ end
+end
+
+function logs.tex.start_page_number()
+ local real, user, sub = texcount.realpageno, texcount.userpageno, texcount.subpageno
+ if real > 0 then
+ if user > 0 then
+ if sub > 0 then
+ write(format("[%s.%s.%s",real,user,sub))
+ else
+ write(format("[%s.%s",real,user))
+ end
+ else
+ write(format("[%s",real))
+ end
+ else
+ write("[-")
+ end
+end
+
+function logs.tex.stop_page_number()
+ write("]")
+end
+
+logs.tex.report_job_stat = statistics.show_job_stat
+
+-- xml logging
+
+function logs.xml.report(category,fmt,...) -- new
+ if fmt then
+ write_nl(format("<r category='%s'>%s</r>",category,format(fmt,...)))
+ else
+ write_nl(format("<r category='%s'/>",category))
+ end
+end
+function logs.xml.line(fmt,...) -- new
+ if fmt then
+ write_nl(format("<r>%s</r>",format(fmt,...)))
+ else
+ write_nl("<r/>")
+ end
+end
+
+function logs.xml.start() if logs.level > 0 then tw("<%s>" ) end end
+function logs.xml.stop () if logs.level > 0 then tw("</%s>") end end
+function logs.xml.push () if logs.level > 0 then tw("<!-- ") end end
+function logs.xml.pop () if logs.level > 0 then tw(" -->" ) end end
+
+function logs.xml.start_run()
+ write_nl("<?xml version='1.0' standalone='yes'?>")
+ write_nl("<job>") -- xmlns='www.pragma-ade.com/luatex/schemas/context-job.rng'
+ write_nl("")
+end
+
+function logs.xml.stop_run()
+ write_nl("</job>")
+end
+
+function logs.xml.start_page_number()
+ write_nl(format("<p real='%s' page='%s' sub='%s'", texcount.realpageno, texcount.userpageno, texcount.subpageno))
+end
+
+function logs.xml.stop_page_number()
+ write("/>")
+ write_nl("")
+end
+
+function logs.xml.report_output_pages(p,b)
+ write_nl(format("<v k='pages' v='%s'/>", p))
+ write_nl(format("<v k='bytes' v='%s'/>", b))
+ write_nl("")
+end
+
+function logs.xml.report_output_log()
+end
+
+function logs.xml.report_tex_stat(k,v)
+ texiowrite_nl("log","<v k='"..k.."'>"..tostring(v).."</v>")
+end
+
+local level = 0
+
+function logs.xml.show_open(name)
+ level = level + 1
+ texiowrite_nl(format("<f l='%s' n='%s'>",level,name))
+end
+
+function logs.xml.show_close(name)
+ texiowrite("</f> ")
+ level = level - 1
+end
+
+function logs.xml.show_load(name)
+ texiowrite_nl(format("<f l='%s' n='%s'/>",level+1,name))
+end
+
+--
+
+local name, banner = 'report', 'context'
+
+local function report(category,fmt,...)
+ if fmt then
+ write_nl(format("%s | %s: %s",name,category,format(fmt,...)))
+ elseif category then
+ write_nl(format("%s | %s",name,category))
+ else
+ write_nl(format("%s |",name))
+ end
+end
+
+local function simple(fmt,...)
+ if fmt then
+ write_nl(format("%s | %s",name,format(fmt,...)))
+ else
+ write_nl(format("%s |",name))
+ end
+end
+
+function logs.setprogram(_name_,_banner_,_verbose_)
+ name, banner = _name_, _banner_
+ if _verbose_ then
+ trackers.enable("resolvers.verbose")
+ end
+ logs.set_method("tex")
+ logs.report = report -- also used in libraries
+ logs.simple = simple -- only used in scripts !
+ if utils then
+ utils.report = simple
+ end
+ logs.verbose = _verbose_
+end
+
+function logs.setverbose(what)
+ if what then
+ trackers.enable("resolvers.verbose")
+ else
+ trackers.disable("resolvers.verbose")
+ end
+ logs.verbose = what or false
+end
+
+function logs.extendbanner(_banner_,_verbose_)
+ banner = banner .. " | ".. _banner_
+ if _verbose_ ~= nil then
+ logs.setverbose(what)
+ end
+end
+
+logs.verbose = false
+logs.report = logs.tex.report
+logs.simple = logs.tex.report
+
+function logs.reportlines(str) -- todo: <lines></lines>
+ for line in str:gmatch("(.-)[\n\r]") do
+ logs.report(line)
+ end
+end
+
+function logs.reportline() -- for scripts too
+ logs.report()
+end
+
+logs.simpleline = logs.reportline
+
+function logs.help(message,option)
+ logs.report(banner)
+ logs.reportline()
+ logs.reportlines(message)
+ local moreinfo = logs.moreinfo or ""
+ if moreinfo ~= "" and option ~= "nomoreinfo" then
+ logs.reportline()
+ logs.reportlines(moreinfo)
+ end
+end
+
+logs.set_level('error')
+logs.set_method('tex')
+
+function logs.system(whereto,process,jobname,category,...)
+ for i=1,10 do
+ local f = io.open(whereto,"a")
+ if f then
+ f:write(format("%s %s => %s => %s => %s\r",os.date("%d/%m/%y %H:%m:%S"),process,jobname,category,format(...)))
+ f:close()
+ break
+ else
+ sleep(0.1)
+ end
+ end
+end
+
+--~ local syslogname = "oeps.xxx"
+--~
+--~ for i=1,10 do
+--~ logs.system(syslogname,"context","test","fonts","font %s recached due to newer version (%s)","blabla","123")
+--~ end
diff --git a/Master/texmf-dist/tex/context/base/trac-tex.mkiv b/Master/texmf-dist/tex/context/base/trac-tex.mkiv
new file mode 100644
index 00000000000..8443541600f
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/trac-tex.mkiv
@@ -0,0 +1,36 @@
+%D \module
+%D [ file=trac-tex,
+%D version=2009.07.20,
+%D title=\CONTEXT\ Tracking Macros,
+%D subtitle=\TEX,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Tracking Macros / TeX}
+
+%D All tracing flags at the \TEX\ end will be redone this way so
+%D that we have a similar mechanism for \TEX\ and \LUA. Also, the
+%D currently used if's might become conditionals.
+
+\unprotect
+
+% \def\enabletextracerwhatever {...}
+% \def\disabletextracerwhatever{...}
+
+\let\alltextracers\empty % so that we can report available tracers
+
+\def\installtextracer#1%
+ {\addtocommalist{#1}\alltextracers}
+
+\def\enabletextracers [#1]{\processcommalist[#1]\doenabletextracer}
+\def\disabletextracers[#1]{\processcommalist[#1]\dodisabletextracer}
+
+\def\doenabletextracer #1{\csname enabletracer#1\endcsname}
+\def\dodisabletextracer#1{\csname disabletracer#1\endcsname}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/trac-tim.lua b/Master/texmf-dist/tex/context/base/trac-tim.lua
new file mode 100644
index 00000000000..82c03f4c7a2
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/trac-tim.lua
@@ -0,0 +1,163 @@
+if not modules then modules = { } end modules ['trac-tim'] = {
+ version = 1.001,
+ comment = "companion to m-timing.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+goodies = goodies or { }
+goodies.progress = goodies.progress or { }
+
+local progress = goodies.progress
+
+progress = progress or { }
+
+progress.defaultfilename = ((tex and tex.jobname) or "whatever") .. "-luatex-progress"
+
+local params = {
+ "cs_count",
+ "dyn_used",
+ "elapsed_time",
+ "luabytecode_bytes",
+ "luastate_bytes",
+ "max_buf_stack",
+ "obj_ptr",
+ "pdf_mem_ptr",
+ "pdf_mem_size",
+ "pdf_os_cntr",
+ "pool_ptr",
+ "str_ptr",
+}
+
+-- storage
+
+local last = os.clock()
+local data = { }
+
+function progress.save()
+ local f = io.open((name or progress.defaultfilename) .. ".lut","w")
+ if f then
+ f:write(table.serialize(data,true))
+ f:close()
+ data = { }
+ end
+end
+
+function progress.store()
+ local c = os.clock()
+ local t = {
+ elapsed_time = c - last,
+ node_memory = nodes.usage(),
+ }
+ for k, v in pairs(params) do
+ if status[v] then t[v] = status[v] end
+ end
+ data[#data+1] = t
+ last = c
+end
+
+-- conversion
+
+local processed = { }
+
+function progress.bot(name,tag)
+ local d = progress.convert(name)
+ return d.bot[tag] or 0
+end
+function progress.top(name,tag)
+ local d = progress.convert(name)
+ return d.top[tag] or 0
+end
+function progress.pages(name,tag)
+ local d = progress.convert(name)
+ return d.pages or 0
+end
+function progress.path(name,tag)
+ local d = progress.convert(name)
+ return d.paths[tag] or "origin"
+end
+function progress.nodes(name)
+ local d = progress.convert(name)
+ return d.names or { }
+end
+function progress.parameters(name)
+ local d = progress.convert(name)
+ return params -- shared
+end
+
+function progress.convert(name)
+ name = ((name ~= "") and name) or progress.defaultfilename
+ if not processed[name] then
+ local names, top, bot, pages, paths, keys = { }, { }, { }, 0, { }, { }
+ local data = io.loaddata(name .. ".lut")
+ if data then data = loadstring(data) end
+ if data then data = data() end
+ if data then
+ pages = #data
+ if pages > 1 then
+ local factor = 100
+ for k,v in ipairs(data) do
+ for k,v in pairs(v.node_memory) do
+ keys[k] = true
+ end
+ end
+ for k,v in ipairs(data) do
+ local m = v.node_memory
+ for k, _ in pairs(keys) do
+ if not m[k] then m[k] = 0 end
+ end
+ end
+ local function path(tag,subtag)
+ local b, t, s = nil, nil, { }
+ for k,v in ipairs(data) do
+ local v = (subtag and v[tag][subtag]) or v[tag]
+ if v then
+ v = tonumber(v)
+ if b then
+ if v > t then t = v end
+ if v < b then b = v end
+ else
+ t = v
+ b = v
+ end
+ s[k] = v
+ else
+ s[k] = 0
+ end
+ end
+ local tagname = subtag or tag
+ top[tagname] = (string.format("%.3f",t)):gsub("%.000$","")
+ bot[tagname] = (string.format("%.3f",b)):gsub("%.000$","")
+ local delta = t-b
+ if delta == 0 then
+ delta = 1
+ else
+ delta = factor/delta
+ end
+ for k, v in ipairs(s) do
+ s[k] = "(" .. k .. "," .. (v-b)*delta .. ")"
+ end
+ paths[tagname] = table.concat(s,"--")
+ end
+ for _, tag in pairs(params) do
+ path(tag)
+ end
+ for tag, _ in pairs(keys) do
+ path("node_memory",tag)
+ names[#names+1] = tag
+ end
+ pages = pages - 1
+ end
+ end
+ table.sort(names)
+ processed[name] = {
+ names = names,
+ top = top,
+ bot = bot,
+ pages = pages,
+ paths = paths,
+ }
+ end
+ return processed[name]
+end
diff --git a/Master/texmf-dist/tex/context/base/trac-tra.lua b/Master/texmf-dist/tex/context/base/trac-tra.lua
new file mode 100644
index 00000000000..aa18c3d98e9
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/trac-tra.lua
@@ -0,0 +1,225 @@
+if not modules then modules = { } end modules ['trac-tra'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- the <anonymous> tag is kind of generic and used for functions that are not
+-- bound to a variable, like node.new, node.copy etc (contrary to for instance
+-- node.has_attribute which is bound to a has_attribute local variable in mkiv)
+
+debugger = debugger or { }
+
+local counters = { }
+local names = { }
+local getinfo = debug.getinfo
+local format, find, lower, gmatch = string.format, string.find, string.lower, string.gmatch
+
+-- one
+
+local function hook()
+ local f = getinfo(2,"f").func
+ local n = getinfo(2,"Sn")
+-- if n.what == "C" and n.name then print (n.namewhat .. ': ' .. n.name) end
+ if f then
+ local cf = counters[f]
+ if cf == nil then
+ counters[f] = 1
+ names[f] = n
+ else
+ counters[f] = cf + 1
+ end
+ end
+end
+local function getname(func)
+ local n = names[func]
+ if n then
+ if n.what == "C" then
+ return n.name or '<anonymous>'
+ else
+ -- source short_src linedefined what name namewhat nups func
+ local name = n.name or n.namewhat or n.what
+ if not name or name == "" then name = "?" end
+ return format("%s : %s : %s", n.short_src or "unknown source", n.linedefined or "--", name)
+ end
+ else
+ return "unknown"
+ end
+end
+function debugger.showstats(printer,threshold)
+ printer = printer or texio.write or print
+ threshold = threshold or 0
+ local total, grandtotal, functions = 0, 0, 0
+ printer("\n") -- ugly but ok
+ -- table.sort(counters)
+ for func, count in pairs(counters) do
+ if count > threshold then
+ local name = getname(func)
+ if not name:find("for generator") then
+ printer(format("%8i %s", count, name))
+ total = total + count
+ end
+ end
+ grandtotal = grandtotal + count
+ functions = functions + 1
+ end
+ printer(format("functions: %s, total: %s, grand total: %s, threshold: %s\n", functions, total, grandtotal, threshold))
+end
+
+-- two
+
+--~ local function hook()
+--~ local n = getinfo(2)
+--~ if n.what=="C" and not n.name then
+--~ local f = tostring(debug.traceback())
+--~ local cf = counters[f]
+--~ if cf == nil then
+--~ counters[f] = 1
+--~ names[f] = n
+--~ else
+--~ counters[f] = cf + 1
+--~ end
+--~ end
+--~ end
+--~ function debugger.showstats(printer,threshold)
+--~ printer = printer or texio.write or print
+--~ threshold = threshold or 0
+--~ local total, grandtotal, functions = 0, 0, 0
+--~ printer("\n") -- ugly but ok
+--~ -- table.sort(counters)
+--~ for func, count in pairs(counters) do
+--~ if count > threshold then
+--~ printer(format("%8i %s", count, func))
+--~ total = total + count
+--~ end
+--~ grandtotal = grandtotal + count
+--~ functions = functions + 1
+--~ end
+--~ printer(format("functions: %s, total: %s, grand total: %s, threshold: %s\n", functions, total, grandtotal, threshold))
+--~ end
+
+-- rest
+
+function debugger.savestats(filename,threshold)
+ local f = io.open(filename,'w')
+ if f then
+ debugger.showstats(function(str) f:write(str) end,threshold)
+ f:close()
+ end
+end
+
+function debugger.enable()
+ debug.sethook(hook,"c")
+end
+
+function debugger.disable()
+ debug.sethook()
+--~ counters[debug.getinfo(2,"f").func] = nil
+end
+
+function debugger.tracing()
+ local n = tonumber(os.env['MTX.TRACE.CALLS']) or tonumber(os.env['MTX_TRACE_CALLS']) or 0
+ if n > 0 then
+ function debugger.tracing() return true end ; return true
+ else
+ function debugger.tracing() return false end ; return false
+ end
+end
+
+--~ debugger.enable()
+
+--~ print(math.sin(1*.5))
+--~ print(math.sin(1*.5))
+--~ print(math.sin(1*.5))
+--~ print(math.sin(1*.5))
+--~ print(math.sin(1*.5))
+
+--~ debugger.disable()
+
+--~ print("")
+--~ debugger.showstats()
+--~ print("")
+--~ debugger.showstats(print,3)
+
+trackers = trackers or { }
+
+local data, done = { }, { }
+
+local function set(what,value)
+ if type(what) == "string" then
+ what = aux.settings_to_array(what)
+ end
+ for i=1,#what do
+ local w = what[i]
+ for d, f in next, data do
+ if done[d] then
+ -- prevent recursion due to wildcards
+ elseif find(d,w) then
+ done[d] = true
+ for i=1,#f do
+ f[i](value)
+ end
+ end
+ end
+ end
+end
+
+local function reset()
+ for d, f in next, data do
+ for i=1,#f do
+ f[i](false)
+ end
+ end
+end
+
+function trackers.register(what,...)
+ what = lower(what)
+ local w = data[what]
+ if not w then
+ w = { }
+ data[what] = w
+ end
+ for _, fnc in next, { ... } do
+ local typ = type(fnc)
+ if typ == "function" then
+ w[#w+1] = fnc
+ elseif typ == "string" then
+ w[#w+1] = function(value) set(fnc,value,nesting) end
+ end
+ end
+end
+
+function trackers.enable(what)
+ done = { }
+ set(what,true)
+end
+
+function trackers.disable(what)
+ done = { }
+ if not what or what == "" then
+ trackers.reset(what)
+ else
+ set(what,false)
+ end
+end
+
+function trackers.reset(what)
+ done = { }
+ reset()
+end
+
+function trackers.list() -- pattern
+ local list = table.sortedkeys(data)
+ local user, system = { }, { }
+ for l=1,#list do
+ local what = list[l]
+ if find(what,"^%*") then
+ system[#system+1] = what
+ else
+ user[#user+1] = what
+ end
+ end
+ return user, system
+end
diff --git a/Master/texmf-dist/tex/context/base/core-vis.tex b/Master/texmf-dist/tex/context/base/trac-vis.mkii
index b20c9b9ce0b..23ded2af9ef 100644
--- a/Master/texmf-dist/tex/context/base/core-vis.tex
+++ b/Master/texmf-dist/tex/context/base/trac-vis.mkii
@@ -1,7 +1,7 @@
%D \module
-%D [ file=core-vis,
+%D [ file=trac-vis, % was core-vis,
%D version=1996.06.01,
-%D title=\CONTEXT\ Core Macros,
+%D title=\CONTEXT\ Tracking Macros,
%D subtitle=Visualization,
%D author=Hans Hagen,
%D date=\currentdate,
@@ -25,14 +25,12 @@
%D %\leftskip only if explicit one
%D %\rightskip only if explicit one
-\writestatus{loading}{Context Support Macros / Visualization}
+\writestatus{loading}{ConTeXt Tracking Macros / Visualization}
\unprotect
%D \macros
-%D {indent, noindent,
-%D leavevmode,
-%D par}
+%D {indent, noindent, par}
%D
%D \TeX\ acts upon paragraphs. In mosts documents paragraphs
%D are separated by empty lines, which internally are handled as
@@ -43,17 +41,11 @@
%D Because the actual typesetting is based on both explicit
%D user and implicit system actions, visualization is only
%D possible for the user supplied \type{\indent},
-%D \type{\noindent}, \type{\leavevmode} and \type{\par}. Other
+%D \type{\noindent}, and \type{\par}. Other
%D 'clever' tricks will quite certainly lead to more failures
%D than successes, so we only support these three explicit
%D primitives and one macro:
-\let\normalnoindent = \noindent
-\let\normalindent = \indent
-\let\normalpar = \par
-
-\let\normalleavevmode = \leavevmode
-
\def\showparagraphcue#1#2#3#4#5%
{\bgroup
\scratchdimen#1\relax
@@ -128,30 +120,15 @@
\fi
\normalhskip\parindent}
-\def\ruledleavevmode
- {\relax
- \normalleavevmode
- \ifdim\parindent>\zeropoint
- \normalhskip-\parindent
- \ruledparagraphcues
- \showparagraphcue\parindent\relax\leftrulefalse\rightrulefalse\!!height
- \normalhskip\parindent
- \else
- \ruledparagraphcues
- \showparagraphcue{40\testrulewidth}\llap\leftrulefalse\rightrulefalse\!!height
- \fi}
-
\def\dontshowimplicits
{\let\noindent \normalnoindent
\let\indent \normalindent
- \let\leavevmode \normalleavevmode
\let\par \normalpar}
\def\showimplicits
{\testrulewidth \defaulttestrulewidth
\let\noindent \rulednoindent
\let\indent \ruledindent
- \let\leavevmode \ruledleavevmode
\let\par \ruledpar}
%D The next few||line examples show the four cues. Keep in
@@ -170,18 +147,15 @@
%D
%D \voorbeeld \indent
%D \voorbeeld \noindent
-%D \voorbeeld \leavevmode
%D
%D \parindent=60pt
%D
%D \voorbeeld \indent
%D \voorbeeld \noindent
-%D \voorbeeld \leavevmode
%D
%D \startnarrower
%D \voorbeeld \indent
%D \voorbeeld \noindent
-%D \voorbeeld \leavevmode
%D \stopnarrower
%D \egroup
%D
diff --git a/Master/texmf-dist/tex/context/base/trac-vis.mkiv b/Master/texmf-dist/tex/context/base/trac-vis.mkiv
new file mode 100644
index 00000000000..6b0fdba9487
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/trac-vis.mkiv
@@ -0,0 +1,709 @@
+%D \module
+%D [ file=trac-vis, % was core-vis,
+%D version=1996.06.01,
+%D title=\CONTEXT\ Tracking Macros,
+%D subtitle=Visualization,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D This module adds some more visualization cues to the ones
+%D supplied in the support module.
+%D
+%D %\everypar dual character, \the\everypar and \everypar=
+%D %\hrule cannot be grabbed in advance, switches mode
+%D %\vrule cannot be grabbed in advance, switches mode
+%D %
+%D %\indent only explicit ones
+%D %\noindent only explicit ones
+%D %\par only explicit ones
+%D
+%D %\leftskip only if explicit one
+%D %\rightskip only if explicit one
+
+\writestatus{loading}{ConTeXt Tracking Macros / Visualization}
+
+\unprotect
+
+%D \macros
+%D {indent, noindent, par}
+%D
+%D \TeX\ acts upon paragraphs. In mosts documents paragraphs
+%D are separated by empty lines, which internally are handled as
+%D \type{\par}. Paragraphs can be indented or not, depending on
+%D the setting of \type{\parindent}, the first token of a
+%D paragraph and/or user suppressed or forced indentation.
+%D
+%D Because the actual typesetting is based on both explicit
+%D user and implicit system actions, visualization is only
+%D possible for the user supplied \type{\indent},
+%D \type{\noindent}, and \type{\par}. Other
+%D 'clever' tricks will quite certainly lead to more failures
+%D than successes, so we only support these three explicit
+%D primitives and one macro:
+
+\def\showparagraphcue#1#2#3#4#5%
+ {\bgroup
+ \scratchdimen#1\relax
+ \dontinterfere
+ \dontcomplain
+ \boxrulewidth5\testrulewidth
+ #3#4\relax
+ \setbox\scratchbox\normalhbox to \scratchdimen
+ {#2{\ruledhbox to \scratchdimen
+ {\vrule #5 20\testrulewidth \!!width \zeropoint
+ \normalhss}}}%
+ \smashbox\scratchbox
+ \normalpenalty\!!tenthousand
+ \box\scratchbox
+ \egroup}
+
+\def\ruledhanging
+ {\ifdim\hangindent>\zeropoint
+ \ifnum\hangafter<\zerocount
+ \normalhbox
+ {\boxrulewidth5\testrulewidth
+ \setbox\scratchbox\ruledhbox to \hangindent
+ {\scratchdimen\strutht
+ \advance\scratchdimen \strutdp
+ \vrule
+ \!!width \zeropoint
+ \!!height \zeropoint
+ \!!depth -\hangafter\scratchdimen}%
+ \normalhskip-\hangindent
+ \smashbox\scratchbox
+ \raise\strutht\box\scratchbox}%
+ \fi
+ \fi}
+
+\def\ruledparagraphcues
+ {\bgroup
+ \dontcomplain
+ \normalhbox to \zeropoint
+ {\ifdim\leftskip>\zeropoint\relax
+ \showparagraphcue\leftskip\llap\relax\relax\!!depth
+ \normalhskip-\leftskip
+ \fi
+ \ruledhanging
+ \normalhskip\hsize
+ \ifdim\rightskip>\zeropoint\relax
+ \normalhskip-\rightskip
+ \showparagraphcue\rightskip\relax\relax\relax\!!depth
+ \fi}%
+ \egroup}
+
+\def\ruledpar
+ {\relax
+ \ifhmode
+ \showparagraphcue{40\testrulewidth}\relax\rightrulefalse\relax\!!height
+ \fi
+ \normalpar}
+
+\def\rulednoindent
+ {\relax
+ \normalnoindent
+ \ruledparagraphcues
+ \showparagraphcue{40\testrulewidth}\llap\leftrulefalse\relax\!!height}
+
+\def\ruledindent
+ {\relax
+ \normalnoindent
+ \ruledparagraphcues
+ \ifdim\parindent>\zeropoint
+ \showparagraphcue\parindent\relax\relax\relax\!!height
+ \else
+ \showparagraphcue{40\testrulewidth}\llap\relax\relax\!!height
+ \fi
+ \normalhskip\parindent}
+
+\def\dontshowimplicits
+ {\let\noindent \normalnoindent
+ \let\indent \normalindent
+ \let\par \normalpar}
+
+\def\showimplicits
+ {\testrulewidth \defaulttestrulewidth
+ \let\noindent \rulednoindent
+ \let\indent \ruledindent
+ \let\par \ruledpar}
+
+%D The next few||line examples show the four cues. Keep in
+%D mind that we only see them when we explicitly open or close
+%D a paragraph.
+%D
+%D \bgroup
+%D \def\voorbeeld#1%
+%D {#1Visualizing some \TeX\ primitives and Plain \TeX\
+%D macros can be very instructive, at least it is to me.
+%D Here we see {\tt\string#1} and {\tt\string\ruledpar} in
+%D action, while {\tt\string\parindent} equals
+%D {\tt\the\parindent}.\ruledpar}
+%D
+%D \showimplicits
+%D
+%D \voorbeeld \indent
+%D \voorbeeld \noindent
+%D
+%D \parindent=60pt
+%D
+%D \voorbeeld \indent
+%D \voorbeeld \noindent
+%D
+%D \startnarrower
+%D \voorbeeld \indent
+%D \voorbeeld \noindent
+%D \stopnarrower
+%D \egroup
+%D
+%D These examples also demonstrate the visualization of
+%D \type {\leftskip} and \type {\rightskip}. The macro
+%D \type {\nofruledbaselines} determines the number of lines
+%D shown.
+
+\newcounter\ruledbaselines
+
+\def\nofruledbaselines{3}
+
+\def\debuggertext#1%
+ {\ifx\ttxx\undefined
+ $\scriptscriptstyle#1$%
+ \else
+ {\ttxx#1}%
+ \fi}
+
+\def\ruledbaseline
+ {\vrule \!!width \zeropoint
+ \bgroup
+ \dontinterfere
+ \doglobal\increment\ruledbaselines
+ \scratchdimen\nofruledbaselines\baselineskip
+ \setbox\scratchbox\normalvbox to 2\scratchdimen
+ {\leaders
+ \normalhbox
+ {\strut
+ \vrule
+ \!!height \testrulewidth
+ \!!depth \testrulewidth
+ \!!width 120\points}
+ \normalvfill}%
+ \smashbox\scratchbox
+ \advance\scratchdimen \strutheightfactor\baselineskip
+ \setbox\scratchbox\normalhbox
+ {\normalhskip -48\points
+ \normalhbox to 24\points
+ {\normalhss\debuggertext\ruledbaselines\normalhskip6\points}%
+ \raise\scratchdimen\box\scratchbox}%
+ \smashbox\scratchbox
+ \box\scratchbox
+ \egroup}
+
+\def\showbaselines
+ {\testrulewidth\defaulttestrulewidth
+ \EveryPar{\ruledbaseline}}
+
+%D \macros
+%D {showpagebuilder}
+%D
+%D The next tracing option probaly is only of use to me and a
+%D few \CONTEXT\ hackers.
+
+\def\showpagebuilder
+ {\EveryPar{\doshowpagebuilder}}
+
+\def\doshowpagebuilder
+ {\strut\llap
+ {\startcolor[blue]\vl
+ \high{\infofont v:\the\vsize }\vl
+ \high{\infofont g:\the\pagegoal }\vl
+ \high{\infofont t:\the\pagetotal}\vl
+ \stopcolor}}
+
+%D \macros
+%D {makecutbox, cuthbox, cutvbox, cutvtop}
+%D
+%D Although mainly used for marking the page, these macros can
+%D also serve local use.
+%D
+%D \startbuffer
+%D \setbox0=\vbox{a real \crlf vertical box} \makecutbox0
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D This marked \type{\vbox} shows up as:
+%D
+%D \startlinecorrection
+%D \getbuffer
+%D \stoplinecorrection
+%D
+%D The alternative macros are used as:
+%D
+%D \startbuffer
+%D \cuthbox{a made cut box}
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D This is typeset as:
+%D
+%D \startlinecorrection
+%D \getbuffer
+%D \stoplinecorrection
+%D
+%D By setting the next macros one can influence the length of
+%D the marks as well as the horizontal and vertical divisions.
+
+\newdimen\tractempwidth
+\newdimen\tractempheight
+\newdimen\tractempdepth
+
+\def\cutmarklength {2\bodyfontsize}
+
+\chardef\horizontalcutmarks = 2
+\chardef\verticalcutmarks = 2
+\chardef\cutmarkoffset = 1
+
+\let\cutmarksymbol = \relax
+\let\cutmarktoptext = \empty
+\let\cutmarkbottomtext = \empty
+
+\def\horizontalcuts
+ {\normalhbox to \tractempwidth
+ {\dorecurse\horizontalcutmarks{\vrule\!!width\boxrulewidth\!!height\cutmarklength\normalhfill}%
+ \unskip}}
+
+\def\verticalcuts
+ {\normalvbox to \dimexpr\tractempheight+\tractempdepth\relax
+ {\hsize\cutmarklength
+ \dorecurse\verticalcutmarks{\vrule\!!height\boxrulewidth\!!width\hsize\normalvfill}%
+ \unskip}}
+
+\def\baselinecuts
+ {\ifdim\tractempdepth>\zeropoint
+ \normalvbox to \dimexpr\tractempheight+\tractempdepth\relax
+ {\hsize\dimexpr\cutmarklength/2\relax
+ \normalvskip\zeropoint\!!plus\tractempheight
+ \vrule\!!height\boxrulewidth\!!width\hsize
+ \normalvskip\zeropoint\!!plus\tractempdepth}%
+ \fi}
+
+\def\cutmarksymbols#1%
+ {\normalhbox to \tractempwidth
+ {\setbox\scratchbox\normalhbox to \cutmarklength
+ {\normalhss\infofont\cutmarksymbol\normalhss}%
+ \normalhss
+ \normalvbox to \cutmarklength
+ {\scratchdimen\dimexpr\cutmarklength/2\relax
+ \normalvss
+ \hbox to \tractempwidth
+ {\llap{\copy\scratchbox\normalhskip\cutmarkoffset\scratchdimen}%
+ \normalhskip\scratchdimen\hss\infofont#1\hss\normalhskip\scratchdimen
+ \rlap{\normalhskip\cutmarkoffset\scratchdimen\copy\scratchbox}}%
+ \normalvss}%
+ \normalhss}}
+
+\def\makecutbox#1% simplier with layers, todo
+ {\tractempheight\ht#1%
+ \tractempdepth \dp#1%
+ \tractempwidth \wd#1%
+ \setbox#1\normalhbox
+ {\dontcomplain
+ \forgetall
+ \boxmaxdepth\maxdimen
+ \offinterlineskip
+ \scratchdimen\dimexpr\cutmarklength/2\relax
+ \hsize\tractempwidth
+ \setbox\scratchbox\normalvbox
+ {\setbox\scratchbox\normalhbox{\horizontalcuts}%
+ \normalvskip\dimexpr-\cutmarkoffset\scratchdimen-2\scratchdimen\relax
+ \copy\scratchbox
+ \normalvskip\cutmarkoffset\scratchdimen
+ \hbox to \tractempwidth
+ {\setbox\scratchbox\normalhbox{\verticalcuts}%
+ \llap{\copy\scratchbox\normalhskip\cutmarkoffset\scratchdimen}%
+ \bgroup
+ \setbox\scratchbox\normalhbox{\baselinecuts}%
+ \llap{\copy\scratchbox\normalhskip\cutmarkoffset\scratchdimen}%
+ \normalhfill
+ \rlap{\normalhskip\cutmarkoffset\scratchdimen\copy\scratchbox}%
+ \egroup
+ \rlap{\normalhskip\cutmarkoffset\scratchdimen\copy\scratchbox}}%
+ \normalvskip\cutmarkoffset\scratchdimen
+ \copy\scratchbox}%
+ \ht\scratchbox\tractempheight
+ \dp\scratchbox\tractempdepth
+ \wd\scratchbox\zeropoint
+ \startcolor[\defaulttextcolor]%
+ \box\scratchbox
+ \ifx\cutmarksymbol\relax \else
+ \setbox\scratchbox\normalvbox
+ {\vskip-\cutmarkoffset\scratchdimen
+ \vskip-\cutmarklength
+ \normalhbox{\cutmarksymbols\cutmarktoptext}%
+ \vskip\cutmarkoffset\scratchdimen
+ \vskip\tractempheight
+ \vskip\tractempdepth
+ \vskip\cutmarkoffset\scratchdimen
+ \normalhbox{\cutmarksymbols\cutmarkbottomtext}}%
+ \ht\scratchbox\tractempheight
+ \dp\scratchbox\tractempdepth
+ \wd\scratchbox\zeropoint
+ \box\scratchbox
+ \fi
+ \stopcolor
+ \box#1}%
+ \wd#1\tractempwidth
+ \ht#1\tractempheight
+ \dp#1\tractempdepth}
+
+\def\cuthbox{\normalhbox\bgroup\dowithnextbox{\makecutbox\nextbox\flushnextbox\egroup}\normalhbox}
+\def\cutvbox{\normalvbox\bgroup\dowithnextbox{\makecutbox\nextbox\flushnextbox\egroup}\normalvbox}
+\def\cutvtop{\normalvtop\bgroup\dowithnextbox{\makecutbox\nextbox\flushnextbox\egroup}\normalvtop}
+
+%D \macros
+%D {colormarkbox,rastermarkbox}
+%D
+%D This macro is used in the pagebody routine. No other use
+%D is advocated here.
+%D
+%D \starttyping
+%D \colormarkbox0
+%D \stoptyping
+
+\def\colormarkoffset{\cutmarkoffset}
+\def\colormarklength{\cutmarklength}
+
+\def\dodocolorrangeA#1%
+ {\fastcolored[#1]{\hrule\!!width3em\!!height\scratchdimen\!!depth\zeropoint}}
+
+\def\docolorrangeA#1 #2 %
+ {\vbox
+ {\hsize3em % \scratchdimen
+ \ifcase#1\or
+ \dodocolorrangeA{c=#2}\or
+ \dodocolorrangeA{m=#2}\or
+ \dodocolorrangeA{y=#2}\or
+ \dodocolorrangeA{m=#2,y=#2}\or
+ \dodocolorrangeA{c=#2,y=#2}\or
+ \dodocolorrangeA{c=#2,m=#2}\fi
+ \ifdim\scratchdimen>1ex
+ \vskip-\scratchdimen
+ \vbox to \scratchdimen
+ {\vss\hbox to 3em{\hss#2\hss}\vss}%
+ \fi}}
+
+\def\colorrangeA#1%
+ {\vbox
+ {\startcolor[\s!white]%
+ \scratchdimen\dimexpr(-\colormarklength*4+\tractempheight+\tractempdepth)/21\relax
+ \offinterlineskip
+ \docolorrangeA #1 1.00 \docolorrangeA #1 0.95
+ \docolorrangeA #1 0.75
+ \docolorrangeA #1 0.50
+ \docolorrangeA #1 0.25 \docolorrangeA #1 0.05
+ \docolorrangeA #1 0.00
+ \stopcolor}}
+
+\def\docolorrangeB #1 #2 #3 #4 #5 %
+ {\fastcolored
+ [\c!c=#2,\c!m=#3,\c!y=#4,\c!k=#5]
+ {\vrule\!!width\scratchdimen\!!height\colormarklength\!!depth\zeropoint}%
+ \ifdim\scratchdimen>2em
+ \hskip-\scratchdimen
+ \vbox to \colormarklength
+ {\vss\hbox to \scratchdimen{\hss#1\hss}\vss}%
+ \fi}
+
+\def\colorrangeB
+ {\hbox
+ {\startcolor[\s!white]%
+ \scratchdimen\dimexpr(-\colormarklength*\plustwo+\tractempwidth)/11\relax
+ \docolorrangeB .5~C .5 0 0 0
+ \docolorrangeB .5~M 0 .5 0 0
+ \docolorrangeB .5~Y 0 0 .5 0
+ \docolorrangeB .5~K 0 0 0 .5
+ \docolorrangeB C 1 0 0 0
+ \docolorrangeB G 1 0 1 0
+ \docolorrangeB Y 0 0 1 0
+ \docolorrangeB R 0 1 1 0
+ \docolorrangeB M 0 1 0 0
+ \docolorrangeB B 1 1 0 0
+ \docolorrangeB K 0 0 0 1
+ \stopcolor}}
+
+\def\docolorrangeC#1 %
+ {\fastcolored
+ [\c!s=#1]%
+ {\vrule\!!width\scratchdimen\!!height\colormarklength\!!depth\zeropoint}%
+ \ifdim\scratchdimen>2em
+ \hskip-\scratchdimen
+ \vbox to \colormarklength
+ {\vss\hbox to \scratchdimen{\hss#1\hss}\vss}%
+ \fi}
+
+\def\colorrangeC
+ {\hbox
+ {\startcolor[\s!white]%
+ \scratchdimen\dimexpr(-\colormarklength*2+\tractempwidth)/14\relax
+ \docolorrangeC 1 \docolorrangeC .95
+ \docolorrangeC .9 \docolorrangeC .85
+ \docolorrangeC .8 \docolorrangeC .75
+ \docolorrangeC .7
+ \docolorrangeC .6
+ \docolorrangeC .5
+ \docolorrangeC .4
+ \docolorrangeC .3
+ \docolorrangeC .2
+ \docolorrangeC .1
+ \docolorrangeC 0
+ \stopcolor}}
+
+\def\docolormarkbox#1#2%
+ {\tractempheight\ht#2%
+ \tractempdepth \dp#2%
+ \tractempwidth \wd#2%
+ \setbox#2\hbox
+ {\scratchdimen\dimexpr\colormarklength/2\relax
+ \forgetall
+ \ssxx
+ \setbox\scratchbox\vbox
+ {\offinterlineskip
+ \vskip\dimexpr-\colormarkoffset\scratchdimen-2\scratchdimen\relax
+ \ifcase#1\relax
+ \vskip\dimexpr\colormarklength+\scratchdimen+\tractempheight\relax
+ \else
+ \hbox to \tractempwidth{\hss\hbox{\colorrangeB}\hss}%
+ \vskip\colormarkoffset\scratchdimen
+ \vbox to \tractempheight
+ {\vss
+ \hbox to \tractempwidth
+ {\llap{\colorrangeA1\hskip\colormarkoffset\scratchdimen}\hfill
+ \rlap{\hskip\colormarkoffset\scratchdimen\colorrangeA4}}%
+ \vss
+ \hbox to \tractempwidth
+ {\llap{\colorrangeA2\hskip\colormarkoffset\scratchdimen}\hfill
+ \rlap{\hskip\colormarkoffset\scratchdimen\colorrangeA5}}%
+ \vss
+ \hbox to \tractempwidth
+ {\llap{\colorrangeA3\hskip\colormarkoffset\scratchdimen}\hfill
+ \rlap{\hskip\colormarkoffset\scratchdimen\colorrangeA6}}%
+ \vss}%
+ \fi
+ \vskip\colormarkoffset\scratchdimen
+ \hbox to \tractempwidth
+ {\hss\lower\tractempdepth\hbox{\colorrangeC}\hss}}%
+ \ht\scratchbox\tractempheight
+ \dp\scratchbox\tractempdepth
+ \wd\scratchbox\zeropoint
+ \box\scratchbox
+ \box#2}%
+ \wd#2\tractempwidth
+ \ht#2\tractempheight
+ \dp#2\tractempdepth}
+
+\def\colormarkbox {\ifincolor\@EA\docolormarkbox\else\@EA\gobbletwoarguments\fi\plusone } % #1
+\def\rastermarkbox{\ifincolor\@EA\docolormarkbox\else\@EA\gobbletwoarguments\fi\zerocount} % #1
+
+%D \macros
+%D {showwhatsits, dontshowwhatsits}
+%D
+%D \TEX\ has three so called whatsits: \type {\mark}, \type
+%D {\write} and \type {\special}. The first one keeps track of
+%D the current state at page boundaries, the last two are used
+%D to communicate to the outside world. Due to fact that
+%D especially \type {\write} is often used in conjunction with
+%D \type {\edef}, we can only savely support that one in \ETEX.
+%D
+%D \bgroup \showwhatsits \setupcolors[state=start]
+%D
+%D Whatsits show up \color[blue]{in color} and are
+%D characterized bij their first character.\footnote [some note]
+%D {So we may encounter \type {w}, \type {m} and \type{s}.}
+%D They are \writestatus{dummy}{demo}\color[yellow]{stacked}.
+%D
+%D \egroup
+
+\newif\ifimmediatewrite
+
+\ifx\eTeXversion\undefined
+
+ \let\showwhatsits \relax
+ \let\dontshowwhatsits\relax
+
+\else
+
+ \let\supernormalmark \normalmark % mark may already been superseded
+ \let\supernormalmarks \normalmarks % mark may already been superseded
+
+ \def\showwhatsits
+ {\protected\def\normalmark {\visualwhatsit100+m\supernormalmark }%
+ \protected\def\normalmarks{\visualwhatsit100+m\supernormalmarks}%
+ \protected\def\special {\visualwhatsit0100s\normalspecial }%
+ \protected\def\write {\visualwhatsit001-w\normalwrite }%
+ \let\immediate\immediatewhatsit
+ \appendtoks\dontshowwhatsits\to\everystoptext}
+
+ \def\immediatewhatsit
+ {\bgroup\futurelet\next\doimmediatewhatsit}
+
+ \def\doimmediatewhatsit
+ {\ifx\next\write
+ \egroup\immediatewritetrue
+ \else
+ \egroup\expandafter\normalimmediate
+ \fi}
+
+ \def\dontshowwhatsits
+ {\let\immediate \normalimmediate
+ \let\normalmark\supernormalmark
+ \let\special \normalspecial
+ \let\write \normalwrite}
+
+ \def\visualwhatsit#1#2#3#4#5%
+ {\bgroup
+ \pushwhatsit
+ \dontinterfere
+ \dontcomplain
+ \dontshowcomposition
+ \dontshowwhatsits
+ \ttx
+ \ifvmode\donetrue\else\donefalse\fi
+ \setbox\scratchbox\hbox
+ {\ifdone
+ \colored[r=#1,g=#2,b=#3]{#5}% temp hack
+ \else
+ \colored[s=0]{#5}% temp hack
+ \fi}%
+ \setbox\scratchbox\hbox
+ {\ifdone
+ \colored[r=#1,g=#2,b=#3]{\vrule\!!width\wd\scratchbox}% temp hack
+ \else
+ \colored[s=0]{\vrule\!!width\wd\scratchbox}% temp hack
+ \fi
+ \hskip-\wd\scratchbox\box\scratchbox}%
+ \scratchdimen1ex
+ \setbox\scratchbox\hbox
+ {\ifdone\hskip\else\raise#4\fi\scratchdimen\box\scratchbox}%
+ \smashbox\scratchbox
+ \ifdone\nointerlineskip\fi
+ \box\scratchbox
+ \ifvmode\nointerlineskip\fi
+ \popwhatsit
+ \egroup
+ \ifimmediatewrite
+ \immediatewritefalse
+ \expandafter\normalimmediate
+ \fi}
+
+ \def\pushwhatsit
+ {\ifzeropt\lastskip
+ \ifcase\lastpenalty
+ \ifzeropt\lastkern
+ \ifhmode
+ \let\popwhatsit\relax
+ \else
+ \edef\popwhatsit{\prevdepth\the\prevdepth}%
+ \fi
+ \else
+ \ifhmode
+ \edef\popwhatsit{\kern\the\lastkern}\unkern
+ \else
+ \edef\popwhatsit{\kern\the\lastkern\prevdepth\the\prevdepth}%
+ \kern-\lastkern
+ \fi
+ \fi
+ \else
+ \ifhmode
+ \edef\popwhatsit{\the\lastpenalty}%
+ \unpenalty
+ \else
+ \edef\popwhatsit{\penalty\the\lastpenalty\prevdepth\the\prevdepth}%
+ %\nobreak
+ \fi
+ \fi
+ \else
+ \ifhmode
+ \edef\popwhatsit{\hskip\the\lastskip}\unskip
+ \else
+ \edef\popwhatsit{\vskip\the\lastskip\prevdepth\the\prevdepth}%
+ \vskip-\lastskip
+ \fi
+ \fi}
+
+\fi
+
+%D The next macro can be used to keep track of classes of
+%D boxes (handy for development cq.\ tracing).
+
+\def\dodotagbox#1#2#3% can be reimplemented
+ {\def\next##1##2##3##4%
+ {\vbox to \ht#2{##3\hbox to \wd#2{##1#3##2}##4}}%
+ \processaction
+ [#1]
+ [ l=>\next\relax\hfill\vfill\vfill,
+ r=>\next\hfill\relax\vfill\vfill,
+ t=>\next\hfill\hfill\relax\vfill,
+ b=>\next\hfill\hfill\vfill\relax,
+ lt=>\next\relax\hfill\relax\vfill,
+ lb=>\next\relax\hfill\vfill\relax,
+ rt=>\next\hfill\relax\relax\vfill,
+ rb=>\next\hfill\relax\vfill\relax,
+ tl=>\next\relax\hfill\relax\vfill,
+ bl=>\next\relax\hfill\vfill\relax,
+ tr=>\next\hfill\relax\relax\vfill,
+ br=>\next\hfill\relax\vfill\relax,
+ \s!default=>\next\hfill\hfill\vfill\vfill,
+ \s!unknown=>\next\hfill\hfill\vfill\vfill]}
+
+\def\dotagbox[#1]#2%
+ {\bgroup
+ \dowithnextbox
+ {\setbox\scratchbox\flushnextbox
+ \setbox\nextbox\ifhbox\nextbox\hbox\else\vbox\fi
+ \bgroup
+ \startoverlay
+ {\copy\scratchbox}
+ {\dodotagbox{#1}\scratchbox{\framed
+ [\c!background=\v!screen,\c!backgroundscreen=1]{#2}}}
+ \stopoverlay
+ \egroup
+ \nextboxwd\the\wd\scratchbox
+ \nextboxht\the\ht\scratchbox
+ \nextboxdp\the\dp\scratchbox
+ \flushnextbox
+ \egroup}}
+
+\def\tagbox
+ {\dosingleempty\dotagbox}
+
+%D \macros
+%D {coloredhbox,coloredvbox,coloredvtop,
+%D coloredstrut}
+%D
+%D The following visualizations are used in some of the manuals:
+
+\definecolor[boxcolor:ht][r=.5,g=.75,b=.5]
+\definecolor[boxcolor:dp][r=.5,g=.5,b=.75]
+\definecolor[boxcolor:wd][r=.75,g=.5,b=.5]
+\definecolor[strutcolor] [r=.5,g=.25,b=.25]
+
+\def\coloredbox#1%
+ {\dowithnextbox{#1{\hbox
+ {\blackrule[\c!width=\nextboxwd,\c!height=\nextboxht,\c!depth=\zeropoint,\c!color=boxcolor:ht]%
+ \hskip-\nextboxwd
+ \blackrule[\c!width=\nextboxwd,\c!height=\zeropoint,\c!depth=\nextboxdp,\c!color=boxcolor:dp]%
+ \hskip-\nextboxwd
+ \box\nextbox}}}#1}
+
+\def\coloredhbox{\coloredbox\hbox}
+\def\coloredvbox{\coloredbox\vbox}
+\def\coloredvtop{\coloredbox\vtop}
+
+\def\coloredstrut
+ {\color[strutcolor]{\def\strutwidth{2\points}\setstrut\strut}}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/type-akb.tex b/Master/texmf-dist/tex/context/base/type-akb.tex
deleted file mode 100644
index 7c02144d5b2..00000000000
--- a/Master/texmf-dist/tex/context/base/type-akb.tex
+++ /dev/null
@@ -1,253 +0,0 @@
-%D \module
-%D [ file=type-akb,
-%D version=2001.07.08,
-%D title=\CONTEXT\ Typescript Macros,
-%D subtitle=Adobe's Famous Gang of Fonts,
-%D author=Patrick Gundlach,
-%D date=\currentdate,
-%D copyright={Patrick Gundlach / PRAGMA}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D Last Change: Tue Mar 18 16:01:03 2003
-
-%D This module is written by Patrick Gundlach (patrick@gundla.ch)
-%D and maps to the standard postscript fonts conforming the
-%D psnfss system as used by \LaTeX.
-%D
-%D \starttyping
-%D \setupencoding[default=texnansi]
-%D \usetypescript[adobekb][\defaultencoding]
-%D \stoptyping
-%D
-%D The following is not needed since the file is already
-%D registered:
-%D
-%D \starttyping
-%D \usetypescriptfile[akb]
-%D \stoptyping
-
-\starttypescriptcollection[adobe kb mappings]
-
-\starttypescript [adobekb] [8r]
-
-\loadmapfile[8r-base.map]
-
-\definefontsynonym [8r-utmr8a] [ptmr8r] [encoding=8r]
-\definefontsynonym [8r-utmri8a] [ptmri8r] [encoding=8r]
-\definefontsynonym [8r-utmb8a] [ptmb8r] [encoding=8r]
-\definefontsynonym [8r-utmbi8a] [ptmbi8r] [encoding=8r]
-
-\definefontsynonym [8r-utmr8a-slanted-167] [ptmro8r] [encoding=8r]
-\definefontsynonym [8r-utmb8a-slanted-167] [ptmbo8r] [encoding=8r]
-
-\definefontsynonym [8r-uhvr8a] [phvr8r] [encoding=8r]
-\definefontsynonym [8r-uhvro8a] [phvro8r] [encoding=8r]
-\definefontsynonym [8r-uhvb8a] [phvb8r] [encoding=8r]
-\definefontsynonym [8r-uhvbo8a] [phvbo8r] [encoding=8r]
-
-\definefontsynonym [8r-ucrr8a] [pcrr8r] [encoding=8r]
-\definefontsynonym [8r-ucrb8a] [pcrb8r] [encoding=8r]
-\definefontsynonym [8r-ucrro8a] [pcrro8r] [encoding=8r]
-\definefontsynonym [8r-ucrbo8a] [pcrbo8r] [encoding=8r]
-
-\definefontsynonym [8r-uplr8a] [pplr8r] [encoding=8r]
-\definefontsynonym [8r-uplri8a] [pplri8r] [encoding=8r]
-\definefontsynonym [8r-uplb8a] [pplb8r] [encoding=8r]
-\definefontsynonym [8r-uplbi8a] [pplbi8r] [encoding=8r]
-\definefontsynonym [8r-uplr8a-slanted-167] [pplro8r] [encoding=8r]
-\definefontsynonym [8r-uplb8a-slanted-167] [pplbo8r] [encoding=8r]
-\definefontsynonym [8r-uplr8a-capitalized-800] [pplr8r] [encoding=8r]
-
-\definefontsynonym [8r-ubkl8a] [pbkl8r] [encoding=8r]
-\definefontsynonym [8r-ubkli8a] [pbkli8r] [encoding=8r]
-\definefontsynonym [8r-ubkd8a] [pbkd8r] [encoding=8r]
-\definefontsynonym [8r-ubkdi8a] [pbkdi8r] [encoding=8r]
-\definefontsynonym [8r-ubkl8a-slanted-167] [pbklo8r] [encoding=8r]
-\definefontsynonym [8r-ubkd8a-slanted-167] [pbkdo8r] [encoding=8r]
-\definefontsynonym [8r-ubkl8a-capitalized-800] [pbkl8r] [encoding=8r]
-
-\definefontsynonym [8r-uzcmi8a] [pzcmi8r] [encoding=8r]
-
-\definefontsynonym [8r-putr8a] [putr8r] [encoding=8r]
-\definefontsynonym [8r-putri8a] [putri8r] [encoding=8r]
-\definefontsynonym [8r-putb8a] [putr8r] [encoding=8r]
-\definefontsynonym [8r-putbi8a] [putbi8r] [encoding=8r]
-\definefontsynonym [8r-putr8a-slanted-167] [putro8r] [encoding=8r]
-\definefontsynonym [8r-putb8a-slanted-167] [putbo8r] [encoding=8r]
-\definefontsynonym [8r-putr8a-capitalized-800] [putr8r] [encoding=8r]
-
-\definefontsynonym [8r-bchr8a] [bchr8r] [encoding=8r]
-\definefontsynonym [8r-bchri8a] [bchri8r] [encoding=8r]
-\definefontsynonym [8r-bchb8a] [bchb8r] [encoding=8r]
-\definefontsynonym [8r-bchbi8a] [bchbi8r] [encoding=8r]
-\definefontsynonym [8r-bchr8a-slanted-167] [bchro8r] [encoding=8r]
-\definefontsynonym [8r-bchb8a-slanted-167] [bchbo8r] [encoding=8r]
-\definefontsynonym [8r-bchr8a-capitalized-800] [bchr8r] [encoding=8r]
-
-\stoptypescript
-
-\starttypescript [adobekb,berry] [ec]
-
-\loadmapfile[8r-base.map]
-\loadmapfile[ec-base.map]
-
-\definefontsynonym [ec-utmr8a] [ptmr8t] [encoding=ec]
-\definefontsynonym [ec-utmri8a] [ptmri8t] [encoding=ec]
-\definefontsynonym [ec-utmb8a] [ptmb8t] [encoding=ec]
-\definefontsynonym [ec-utmbi8a] [ptmbi8t] [encoding=ec]
-
-\definefontsynonym [ec-utmr8a-slanted-167] [ptmro8t] [encoding=ec]
-\definefontsynonym [ec-utmb8a-slanted-167] [ptmbo8t] [encoding=ec]
-
-\definefontsynonym [ec-uhvr8a] [phvr8t] [encoding=ec]
-\definefontsynonym [ec-uhvro8a] [phvro8t] [encoding=ec]
-\definefontsynonym [ec-uhvb8a] [phvb8t] [encoding=ec]
-\definefontsynonym [ec-uhvbo8a] [phvbo8t] [encoding=ec]
-
-\definefontsynonym [ec-ucrr8a] [pcrr8t] [encoding=ec]
-\definefontsynonym [ec-ucrb8a] [pcrb8t] [encoding=ec]
-\definefontsynonym [ec-ucrro8a] [pcrro8t] [encoding=ec]
-\definefontsynonym [ec-ucrbo8a] [pcrbo8t] [encoding=ec]
-
-\definefontsynonym [ec-uplr8a] [pplr8t] [encoding=ec]
-\definefontsynonym [ec-uplri8a] [pplri8t] [encoding=ec]
-\definefontsynonym [ec-uplb8a] [pplb8t] [encoding=ec]
-\definefontsynonym [ec-uplbi8a] [pplbi8t] [encoding=ec]
-\definefontsynonym [ec-uplr8a-slanted-167] [pplro8t] [encoding=ec]
-\definefontsynonym [ec-uplb8a-slanted-167] [pplbo8t] [encoding=ec]
-\definefontsynonym [ec-uplr8a-capitalized-800] [pplr8t] [encoding=ec]
-
-\definefontsynonym [ec-ubkl8a] [pbkl8t] [encoding=ec]
-\definefontsynonym [ec-ubkli8a] [pbkli8t] [encoding=ec]
-\definefontsynonym [ec-ubkd8a] [pbkd8t] [encoding=ec]
-\definefontsynonym [ec-ubkdi8a] [pbkdi8t] [encoding=ec]
-\definefontsynonym [ec-ubkl8a-slanted-167] [pbklo8t] [encoding=ec]
-\definefontsynonym [ec-ubkd8a-slanted-167] [pbkdo8t] [encoding=ec]
-\definefontsynonym [ec-ubkl8a-capitalized-800] [pbkl8t] [encoding=ec]
-
-\definefontsynonym [ec-uzcmi8a] [pzcmi8t] [encoding=ec]
-
-\definefontsynonym [ec-putr8a] [putr8t] [encoding=ec]
-\definefontsynonym [ec-putri8a] [putri8t] [encoding=ec]
-\definefontsynonym [ec-putb8a] [putr8t] [encoding=ec]
-\definefontsynonym [ec-putbi8a] [putbi8t] [encoding=ec]
-\definefontsynonym [ec-putr8a-slanted-167] [putro8t] [encoding=ec]
-\definefontsynonym [ec-putb8a-slanted-167] [putbo8t] [encoding=ec]
-\definefontsynonym [ec-putr8a-capitalized-800] [putr8t] [encoding=ec]
-
-\definefontsynonym [ec-bchr8a] [bchr8t] [encoding=ec]
-\definefontsynonym [ec-bchri8a] [bchri8t] [encoding=ec]
-\definefontsynonym [ec-bchb8a] [bchb8t] [encoding=ec]
-\definefontsynonym [ec-bchbi8a] [bchbi8t] [encoding=ec]
-\definefontsynonym [ec-bchr8a-slanted-167] [bchro8t] [encoding=ec]
-\definefontsynonym [ec-bchb8a-slanted-167] [bchbo8t] [encoding=ec]
-\definefontsynonym [ec-bchr8a-capitalized-800] [bchr8t] [encoding=ec]
-
-\stoptypescript
-
-% the following fonts are normally not present on tex live
-
-\starttypescript [adobekb,berry] [texnansi]
-
-\loadmapfile[texnansi-base.map]
-
-\definefontsynonym [texnansi-utmr8a] [ptmr8y] [encoding=texnansi]
-\definefontsynonym [texnansi-utmri8a] [ptmri8y] [encoding=texnansi]
-\definefontsynonym [texnansi-utmb8a] [ptmb8y] [encoding=texnansi]
-\definefontsynonym [texnansi-utmbi8a] [ptmbi8y] [encoding=texnansi]
-
-\definefontsynonym [texnansi-utmr8a-slanted-167] [ptmro8y] [encoding=texnansi]
-\definefontsynonym [texnansi-utmb8a-slanted-167] [ptmbo8y] [encoding=texnansi]
-
-\definefontsynonym [texnansi-uhvr8a] [phvr8y] [encoding=texnansi]
-\definefontsynonym [texnansi-uhvro8a] [phvro8y] [encoding=texnansi]
-\definefontsynonym [texnansi-uhvb8a] [phvb8y] [encoding=texnansi]
-\definefontsynonym [texnansi-uhvbo8a] [phvbo8y] [encoding=texnansi]
-
-\definefontsynonym [texnansi-ucrr8a] [pcrr8y] [encoding=texnansi]
-\definefontsynonym [texnansi-ucrb8a] [pcrb8y] [encoding=texnansi]
-\definefontsynonym [texnansi-ucrro8a] [pcrro8y] [encoding=texnansi]
-\definefontsynonym [texnansi-ucrbo8a] [pcrbo8y] [encoding=texnansi]
-
-\definefontsynonym [texnansi-uplr8a] [pplr8y] [encoding=texnansi]
-\definefontsynonym [texnansi-uplri8a] [pplri8y] [encoding=texnansi]
-\definefontsynonym [texnansi-uplb8a] [pplb8y] [encoding=texnansi]
-\definefontsynonym [texnansi-uplbi8a] [pplbi8y] [encoding=texnansi]
-\definefontsynonym [texnansi-uplr8a-slanted-167] [pplro8y] [encoding=texnansi]
-\definefontsynonym [texnansi-uplb8a-slanted-167] [pplbo8y] [encoding=texnansi]
-\definefontsynonym [texnansi-uplr8a-capitalized-800] [pplr8y] [encoding=texnansi]
-
-\definefontsynonym [texnansi-ubkl8a] [pbkl8y] [encoding=texnansi]
-\definefontsynonym [texnansi-ubkli8a] [pbkli8y] [encoding=texnansi]
-\definefontsynonym [texnansi-ubkd8a] [pbkd8y] [encoding=texnansi]
-\definefontsynonym [texnansi-ubkdi8a] [pbkdi8y] [encoding=texnansi]
-\definefontsynonym [texnansi-ubkl8a-slanted-167] [pbklo8y] [encoding=texnansi]
-\definefontsynonym [texnansi-ubkd8a-slanted-167] [pbkdo8y] [encoding=texnansi]
-\definefontsynonym [texnansi-ubkl8a-capitalized-800] [pbkl8y] [encoding=texnansi]
-
-\definefontsynonym [texnansi-uzcmi8a] [pzcmi8y] [encoding=texnansi]
-
-\definefontsynonym [texnansi-putr8a] [putr8y] [encoding=texnansi]
-\definefontsynonym [texnansi-putri8a] [putri8y] [encoding=texnansi]
-\definefontsynonym [texnansi-putb8a] [putr8y] [encoding=texnansi]
-\definefontsynonym [texnansi-putbi8a] [putbi8y] [encoding=texnansi]
-\definefontsynonym [texnansi-putr8a-slanted-167] [putro8y] [encoding=texnansi]
-\definefontsynonym [texnansi-putb8a-slanted-167] [putbo8y] [encoding=texnansi]
-\definefontsynonym [texnansi-putr8a-capitalized-800] [putr8y] [encoding=texnansi]
-
-\definefontsynonym [texnansi-bchr8a] [bchr8y] [encoding=texnansi]
-\definefontsynonym [texnansi-bchri8a] [bchri8y] [encoding=texnansi]
-\definefontsynonym [texnansi-bchb8a] [bchb8y] [encoding=texnansi]
-\definefontsynonym [texnansi-bchbi8a] [bchbi8y] [encoding=texnansi]
-\definefontsynonym [texnansi-bchr8a-slanted-167] [bchro8y] [encoding=texnansi]
-\definefontsynonym [texnansi-bchb8a-slanted-167] [bchbo8y] [encoding=texnansi]
-\definefontsynonym [texnansi-bchr8a-capitalized-800] [bchr8y] [encoding=texnansi]
-
-\stoptypescript
-
-\starttypescript [adobekb,berry] [t5] % there are no adobe metrics
-
-\loadmapfile[t5-base.map]
-
-\definefontsynonym [t5-utmr8a] [utmr8v] [encoding=t5]
-\definefontsynonym [t5-utmri8a] [utmri8v] [encoding=t5]
-\definefontsynonym [t5-utmb8a] [utmb8v] [encoding=t5]
-\definefontsynonym [t5-utmbi8a] [utmbi8v] [encoding=t5]
-
-\definefontsynonym [t5-utmr8a-slanted-167] [utmro8v] [encoding=t5]
-\definefontsynonym [t5-utmb8a-slanted-167] [utmbo8v] [encoding=t5]
-
-\definefontsynonym [t5-uhvr8a] [uhvr8v] [encoding=t5]
-\definefontsynonym [t5-uhvro8a] [uhvro8v] [encoding=t5]
-\definefontsynonym [t5-uhvb8a] [uhvb8v] [encoding=t5]
-\definefontsynonym [t5-uhvbo8a] [uhvbo8v] [encoding=t5]
-
-\definefontsynonym [t5-ucrr8a] [ucrr8v] [encoding=t5]
-\definefontsynonym [t5-ucrb8a] [ucrb8v] [encoding=t5]
-\definefontsynonym [t5-ucrro8a] [ucrro8v] [encoding=t5]
-\definefontsynonym [t5-ucrbo8a] [ucrbo8v] [encoding=t5]
-
-\definefontsynonym [t5-uplr8a] [uplr8v] [encoding=t5]
-\definefontsynonym [t5-uplri8a] [uplri8v] [encoding=t5]
-\definefontsynonym [t5-uplb8a] [uplb8v] [encoding=t5]
-\definefontsynonym [t5-uplbi8a] [uplbi8v] [encoding=t5]
-\definefontsynonym [t5-uplr8a-slanted-167] [uplro8v] [encoding=t5]
-\definefontsynonym [t5-uplb8a-slanted-167] [uplbo8v] [encoding=t5]
-\definefontsynonym [t5-uplr8a-capitalized-800] [uplr8v] [encoding=t5]
-
-\definefontsynonym [t5-ubkl8a] [ubkl8v] [encoding=t5]
-\definefontsynonym [t5-ubkli8a] [ubkli8v] [encoding=t5]
-\definefontsynonym [t5-ubkd8a] [ubkd8v] [encoding=t5]
-\definefontsynonym [t5-ubkdi8a] [ubkdi8v] [encoding=t5]
-\definefontsynonym [t5-ubkl8a-slanted-167] [ubklo8v] [encoding=t5]
-\definefontsynonym [t5-ubkd8a-slanted-167] [ubkdo8v] [encoding=t5]
-\definefontsynonym [t5-ubkl8a-capitalized-800] [ubkl8v] [encoding=t5]
-
-\stoptypescript
-
-\stoptypescriptcollection
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/type-buy.tex b/Master/texmf-dist/tex/context/base/type-buy.tex
index 4e6eb30647e..a973fb7b1c9 100644
--- a/Master/texmf-dist/tex/context/base/type-buy.tex
+++ b/Master/texmf-dist/tex/context/base/type-buy.tex
@@ -196,29 +196,45 @@
\loadmapfile [\typescriptthree-bh-lucida.map]
\stoptypescript
-\starttypescript [lucida,lucidabfm] [texnansi,ec,8r,uc]
- \definetypeface [\typescriptone] [rm] [serif] [lucida] [default] [encoding=\typescripttwo]
- \definetypeface [\typescriptone] [ss] [sans] [lucida] [default] [encoding=\typescripttwo]
- \definetypeface [\typescriptone] [tt] [mono] [lucida] [default] [encoding=\typescripttwo]
- \definetypeface [\typescriptone] [hw] [handwriting] [lucida] [default] [encoding=\typescripttwo]
- \definetypeface [\typescriptone] [cg] [calligraphy] [lucida] [default] [encoding=\typescripttwo]
+\starttypescript [lucida,lucidabfm,lucidaboldmath] [texnansi,ec,8r,uc]
+ \definetypeface [lucida] [rm] [serif] [lucida] [default] [encoding=\typescripttwo]
+ \definetypeface [lucida] [ss] [sans] [lucida] [default] [encoding=\typescripttwo]
+ \definetypeface [lucida] [tt] [mono] [lucida] [default] [encoding=\typescripttwo]
+ \definetypeface [lucida] [hw] [handwriting] [lucida] [default] [encoding=\typescripttwo]
+ \definetypeface [lucida] [cg] [calligraphy] [lucida] [default] [encoding=\typescripttwo]
\loadmapfile [\typescripttwo-bh-lucida.map]
\stoptypescript
\starttypescript [lucida] [texnansi,ec,8r]
- \definetypeface [lucida] [mm] [math] [lucida] [default] [encoding=\typescripttwo]
+ \definetypeface [lucida] [mm] [math] [lucida] [default] [encoding=\typescripttwo]
+\stoptypescript
+
+\starttypescript [lucidabfm] [texnansi,ec,8r]
+ \definetypeface [lucida] [mm] [bfmath] [lucida] [default] [encoding=\typescripttwo]
\stoptypescript
\starttypescript [lucidaboldmath] [texnansi,ec,8r]
- \definetypeface [lucidaboldmath] [rm] [serif] [lucida] [default] [encoding=\typescripttwo] % needed ?
- \definetypeface [lucidaboldmath] [ss] [sans] [lucida] [default] [encoding=\typescripttwo] % needed ?
- \definetypeface [lucidaboldmath] [tt] [mono] [lucida] [default] [encoding=\typescripttwo] % needed ?
- \definetypeface [lucidaboldmath] [mm] [boldmath] [lucida] [default] [encoding=\typescripttwo]
+ \definetypeface [lucida] [mm] [boldmath] [lucida] [default] [encoding=\typescripttwo]
\stoptypescript
-\starttypescript [lucidabfm,lucidaboldmath] [texnansi,ec,8r]
- \definetypeface [lucida] [mm] [bfmath] [lucida] [default] [encoding=\typescripttwo]
- \definetypeface [lucidaboldmath] [mm] [bfmath] [lucida] [default] [encoding=\typescripttwo]
+\starttypescript [lucidabfm] [texnansi,ec,8r,uc]
+ \definetypeface [lucidabfm] [rm] [serif] [lucida] [default] [encoding=\typescripttwo]
+ \definetypeface [lucidabfm] [ss] [sans] [lucida] [default] [encoding=\typescripttwo]
+ \definetypeface [lucidabfm] [tt] [mono] [lucida] [default] [encoding=\typescripttwo]
+ \definetypeface [lucidabfm] [hw] [handwriting] [lucida] [default] [encoding=\typescripttwo]
+ \definetypeface [lucidabfm] [cg] [calligraphy] [lucida] [default] [encoding=\typescripttwo]
+ \definetypeface [lucidabfm] [mm] [bfmath] [lucida] [default] [encoding=\typescripttwo]
+ \loadmapfile [\typescripttwo-bh-lucida.map]
+\stoptypescript
+
+\starttypescript [lucidaboldmath] [texnansi,ec,8r,uc]
+ \definetypeface [lucidaboldmath] [rm] [serif] [lucida] [default] [encoding=\typescripttwo]
+ \definetypeface [lucidaboldmath] [ss] [sans] [lucida] [default] [encoding=\typescripttwo]
+ \definetypeface [lucidaboldmath] [tt] [mono] [lucida] [default] [encoding=\typescripttwo]
+ \definetypeface [lucidaboldmath] [hw] [handwriting] [lucida] [default] [encoding=\typescripttwo]
+ \definetypeface [lucidaboldmath] [cg] [calligraphy] [lucida] [default] [encoding=\typescripttwo]
+ \definetypeface [lucidaboldmath] [mm] [boldmath] [lucida] [default] [encoding=\typescripttwo]
+ \loadmapfile [\typescripttwo-bh-lucida.map]
\stoptypescript
\starttypescript [lucida,lucidabfm,lucidaboldmath] [texnansi,ec,8r]
diff --git a/Master/texmf-dist/tex/context/base/type-cow.tex b/Master/texmf-dist/tex/context/base/type-cow.tex
index bda8489a500..507386443d7 100644
--- a/Master/texmf-dist/tex/context/base/type-cow.tex
+++ b/Master/texmf-dist/tex/context/base/type-cow.tex
@@ -70,14 +70,14 @@
\definetypeface [cow] [rm][serif][cow] [default][encoding=default]
\definetypeface [cow] [ss][serif][cow] [default][encoding=default]
\definetypeface [cow] [mm][math] [cow] [default][encoding=default]
- \definetypeface [cow] [tt][mono] [modern][default][encoding=default,rscale=.85]
+ \definetypeface [cow] [tt][mono] [modern][default][encoding=default,rscale=0.85]
\stoptypescript
\starttypescript [sheep] [default]
\definetypeface [sheep][rm][serif][sheep] [default][encoding=default]
\definetypeface [sheep][ss][serif][sheep] [default][encoding=default]
\definetypeface [sheep][mm][math] [sheep] [default][encoding=default]
- \definetypeface [sheep][tt][mono] [modern][default][encoding=default,rscale=.85]
+ \definetypeface [sheep][tt][mono] [modern][default][encoding=default,rscale=0.85]
\stoptypescript
\stoptypescriptcollection
diff --git a/Master/texmf-dist/tex/context/base/type-dis.tex b/Master/texmf-dist/tex/context/base/type-dis.tex
deleted file mode 100644
index 55bee181b12..00000000000
--- a/Master/texmf-dist/tex/context/base/type-dis.tex
+++ /dev/null
@@ -1,241 +0,0 @@
-%D \module
-%D [ file=type-dis,
-%D version=2005.01.26, % moved from type-enc.tex 2001.04.12,
-%D title=\CONTEXT\ Typescript Macros,
-%D subtitle=Distribution scripts,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D The next section is obsolete. Although we prefer the original metrics
-%D it seems that distributions no longer ship the u-variants, which means
-%D that users (if they want) need to fall back to the p-variants. The usual
-%D font mess.
-
-\endinput
-
-\starttypescriptcollection[distributed fonts]
-
-\starttypescript [berry] [8r]
-
-% \setupencoding[default=8r]
-
-\definefontsynonym [8r-utmr8a] [utmr8r] [encoding=8r]
-\definefontsynonym [8r-utmri8a] [utmri8r] [encoding=8r]
-\definefontsynonym [8r-utmb8a] [utmb8r] [encoding=8r]
-\definefontsynonym [8r-utmbi8a] [utmbi8r] [encoding=8r]
-
-\definefontsynonym [8r-utmr8a-slanted-167] [utmro8r] [encoding=8r]
-\definefontsynonym [8r-utmb8a-slanted-167] [utmbo8r] [encoding=8r]
-
-\definefontsynonym [8r-uhvr8a] [uhvr8r] [encoding=8r]
-\definefontsynonym [8r-uhvro8a] [uhvro8r] [encoding=8r]
-\definefontsynonym [8r-uhvb8a] [uhvb8r] [encoding=8r]
-\definefontsynonym [8r-uhvbo8a] [uhvbo8r] [encoding=8r]
-
-\definefontsynonym [8r-ucrr8a] [ucrr8r] [encoding=8r]
-\definefontsynonym [8r-ucrb8a] [ucrb8r] [encoding=8r]
-\definefontsynonym [8r-ucrro8a] [ucrro8r] [encoding=8r]
-\definefontsynonym [8r-ucrbo8a] [ucrbo8r] [encoding=8r]
-
-\definefontsynonym [8r-uplr8a] [uplr8r] [encoding=8r]
-\definefontsynonym [8r-uplri8a] [uplri8r] [encoding=8r]
-\definefontsynonym [8r-uplb8a] [uplb8r] [encoding=8r]
-\definefontsynonym [8r-uplbi8a] [uplbi8r] [encoding=8r]
-\definefontsynonym [8r-uplr8a-slanted-167] [uplro8r] [encoding=8r]
-\definefontsynonym [8r-uplb8a-slanted-167] [uplbo8r] [encoding=8r]
-\definefontsynonym [8r-uplr8a-capitalized-800] [uplr8r] [encoding=8r]
-
-\definefontsynonym [8r-ubkl8a] [ubkl8r] [encoding=8r]
-\definefontsynonym [8r-ubkli8a] [ubkli8r] [encoding=8r]
-\definefontsynonym [8r-ubkd8a] [ubkd8r] [encoding=8r]
-\definefontsynonym [8r-ubkdi8a] [ubkdi8r] [encoding=8r]
-\definefontsynonym [8r-ubkl8a-slanted-167] [ubklo8r] [encoding=8r]
-\definefontsynonym [8r-ubkd8a-slanted-167] [ubkdo8r] [encoding=8r]
-\definefontsynonym [8r-ubkl8a-capitalized-800] [ubkl8r] [encoding=8r]
-
-\definefontsynonym [8r-uzcmi8a] [uzcmi8r] [encoding=8r]
-
-\definefontsynonym [8r-putr8a] [putr8r] [encoding=8r]
-\definefontsynonym [8r-putri8a] [putri8r] [encoding=8r]
-\definefontsynonym [8r-putb8a] [putr8r] [encoding=8r]
-\definefontsynonym [8r-putbi8a] [putbi8r] [encoding=8r]
-\definefontsynonym [8r-putr8a-slanted-167] [putro8r] [encoding=8r]
-\definefontsynonym [8r-putb8a-slanted-167] [putbo8r] [encoding=8r]
-\definefontsynonym [8r-putr8a-capitalized-800] [putr8r] [encoding=8r]
-
-\definefontsynonym [8r-bchr8a] [bchr8r] [encoding=8r]
-\definefontsynonym [8r-bchri8a] [bchri8r] [encoding=8r]
-\definefontsynonym [8r-bchb8a] [bchb8r] [encoding=8r]
-\definefontsynonym [8r-bchbi8a] [bchbi8r] [encoding=8r]
-\definefontsynonym [8r-bchr8a-slanted-167] [bchro8r] [encoding=8r]
-\definefontsynonym [8r-bchb8a-slanted-167] [bchbo8r] [encoding=8r]
-\definefontsynonym [8r-bchr8a-capitalized-800] [bchr8r] [encoding=8r]
-
-\stoptypescript
-
-\starttypescript [berry] [ec]
-
-% \setupencoding[default=ec]
-
-\definefontsynonym [ec-utmr8a] [utmr8t] [encoding=ec]
-\definefontsynonym [ec-utmri8a] [utmri8t] [encoding=ec]
-\definefontsynonym [ec-utmb8a] [utmb8t] [encoding=ec]
-\definefontsynonym [ec-utmbi8a] [utmbi8t] [encoding=ec]
-
-\definefontsynonym [ec-utmr8a-slanted-167] [utmro8t] [encoding=ec]
-\definefontsynonym [ec-utmb8a-slanted-167] [utmbo8t] [encoding=ec]
-
-\definefontsynonym [ec-uhvr8a] [uhvr8t] [encoding=ec]
-\definefontsynonym [ec-uhvro8a] [uhvro8t] [encoding=ec]
-\definefontsynonym [ec-uhvb8a] [uhvb8t] [encoding=ec]
-\definefontsynonym [ec-uhvbo8a] [uhvbo8t] [encoding=ec]
-
-\definefontsynonym [ec-ucrr8a] [ucrr8t] [encoding=ec]
-\definefontsynonym [ec-ucrb8a] [ucrb8t] [encoding=ec]
-\definefontsynonym [ec-ucrro8a] [ucrro8t] [encoding=ec]
-\definefontsynonym [ec-ucrbo8a] [ucrbo8t] [encoding=ec]
-
-\definefontsynonym [ec-uplr8a] [uplr8t] [encoding=ec]
-\definefontsynonym [ec-uplri8a] [uplri8t] [encoding=ec]
-\definefontsynonym [ec-uplb8a] [uplb8t] [encoding=ec]
-\definefontsynonym [ec-uplbi8a] [uplbi8t] [encoding=ec]
-\definefontsynonym [ec-uplr8a-slanted-167] [uplro8t] [encoding=ec]
-\definefontsynonym [ec-uplb8a-slanted-167] [uplbo8t] [encoding=ec]
-\definefontsynonym [ec-uplr8a-capitalized-800] [uplr8t] [encoding=ec]
-
-\definefontsynonym [ec-ubkl8a] [ubkl8t] [encoding=ec]
-\definefontsynonym [ec-ubkli8a] [ubkli8t] [encoding=ec]
-\definefontsynonym [ec-ubkd8a] [ubkd8t] [encoding=ec]
-\definefontsynonym [ec-ubkdi8a] [ubkdi8t] [encoding=ec]
-\definefontsynonym [ec-ubkl8a-slanted-167] [ubklo8t] [encoding=ec]
-\definefontsynonym [ec-ubkd8a-slanted-167] [ubkdo8t] [encoding=ec]
-\definefontsynonym [ec-ubkl8a-capitalized-800] [ubkl8t] [encoding=ec]
-
-\definefontsynonym [ec-uzcmi8a] [uzcmi8t] [encoding=ec]
-
-\definefontsynonym [ec-putr8a] [putr8t] [encoding=ec]
-\definefontsynonym [ec-putri8a] [putri8t] [encoding=ec]
-\definefontsynonym [ec-putb8a] [putr8t] [encoding=ec]
-\definefontsynonym [ec-putbi8a] [putbi8t] [encoding=ec]
-\definefontsynonym [ec-putr8a-slanted-167] [putro8t] [encoding=ec]
-\definefontsynonym [ec-putb8a-slanted-167] [putbo8t] [encoding=ec]
-\definefontsynonym [ec-putr8a-capitalized-800] [putr8t] [encoding=ec]
-
-\definefontsynonym [ec-bchr8a] [bchr8t] [encoding=ec]
-\definefontsynonym [ec-bchri8a] [bchri8t] [encoding=ec]
-\definefontsynonym [ec-bchb8a] [bchb8t] [encoding=ec]
-\definefontsynonym [ec-bchbi8a] [bchbi8t] [encoding=ec]
-\definefontsynonym [ec-bchr8a-slanted-167] [bchro8t] [encoding=ec]
-\definefontsynonym [ec-bchb8a-slanted-167] [bchbo8t] [encoding=ec]
-\definefontsynonym [ec-bchr8a-capitalized-800] [bchr8t] [encoding=ec]
-
-\stoptypescript
-
-% the following fonts are normally not present on tex live
-
-\starttypescript [berry] [texnansi]
-
-% \setupencoding[default=texnansi]
-
-\definefontsynonym [texnansi-utmr8a] [utmr8y] [encoding=texnansi]
-\definefontsynonym [texnansi-utmri8a] [utmri8y] [encoding=texnansi]
-\definefontsynonym [texnansi-utmb8a] [utmb8y] [encoding=texnansi]
-\definefontsynonym [texnansi-utmbi8a] [utmbi8y] [encoding=texnansi]
-
-\definefontsynonym [texnansi-utmr8a-slanted-167] [ptmro8y] [encoding=texnansi]
-\definefontsynonym [texnansi-utmb8a-slanted-167] [ptmbo8y] [encoding=texnansi]
-
-\definefontsynonym [texnansi-uhvr8a] [uhvr8y] [encoding=texnansi]
-\definefontsynonym [texnansi-uhvro8a] [uhvro8y] [encoding=texnansi]
-\definefontsynonym [texnansi-uhvb8a] [uhvb8y] [encoding=texnansi]
-\definefontsynonym [texnansi-uhvbo8a] [uhvbo8y] [encoding=texnansi]
-
-\definefontsynonym [texnansi-ucrr8a] [pcrr8y] [encoding=texnansi]
-\definefontsynonym [texnansi-ucrb8a] [pcrb8y] [encoding=texnansi]
-\definefontsynonym [texnansi-ucrro8a] [pcrro8y] [encoding=texnansi]
-\definefontsynonym [texnansi-ucrbo8a] [pcrbo8y] [encoding=texnansi]
-
-\definefontsynonym [texnansi-uplr8a] [uplr8y] [encoding=texnansi]
-\definefontsynonym [texnansi-uplri8a] [uplri8y] [encoding=texnansi]
-\definefontsynonym [texnansi-uplb8a] [uplb8y] [encoding=texnansi]
-\definefontsynonym [texnansi-uplbi8a] [uplbi8y] [encoding=texnansi]
-\definefontsynonym [texnansi-uplr8a-slanted-167] [uplro8y] [encoding=texnansi]
-\definefontsynonym [texnansi-uplb8a-slanted-167] [uplbo8y] [encoding=texnansi]
-\definefontsynonym [texnansi-uplr8a-capitalized-800] [uplr8y] [encoding=texnansi]
-
-\definefontsynonym [texnansi-ubkl8a] [ubkl8y] [encoding=texnansi]
-\definefontsynonym [texnansi-ubkli8a] [ubkli8y] [encoding=texnansi]
-\definefontsynonym [texnansi-ubkd8a] [ubkd8y] [encoding=texnansi]
-\definefontsynonym [texnansi-ubkdi8a] [ubkdi8y] [encoding=texnansi]
-\definefontsynonym [texnansi-ubkl8a-slanted-167] [ubklo8y] [encoding=texnansi]
-\definefontsynonym [texnansi-ubkd8a-slanted-167] [ubkdo8y] [encoding=texnansi]
-\definefontsynonym [texnansi-ubkl8a-capitalized-800] [ubkl8y] [encoding=texnansi]
-
-\definefontsynonym [texnansi-uzcmi8a] [uzcmi8y] [encoding=texnansi]
-
-\definefontsynonym [texnansi-putr8a] [putr8y] [encoding=texnansi]
-\definefontsynonym [texnansi-putri8a] [putri8y] [encoding=texnansi]
-\definefontsynonym [texnansi-putb8a] [putr8y] [encoding=texnansi]
-\definefontsynonym [texnansi-putbi8a] [putbi8y] [encoding=texnansi]
-\definefontsynonym [texnansi-putr8a-slanted-167] [putro8y] [encoding=texnansi]
-\definefontsynonym [texnansi-putb8a-slanted-167] [putbo8y] [encoding=texnansi]
-\definefontsynonym [texnansi-putr8a-capitalized-800] [putr8y] [encoding=texnansi]
-
-\definefontsynonym [texnansi-bchr8a] [bchr8y] [encoding=texnansi]
-\definefontsynonym [texnansi-bchri8a] [bchri8y] [encoding=texnansi]
-\definefontsynonym [texnansi-bchb8a] [bchb8y] [encoding=texnansi]
-\definefontsynonym [texnansi-bchbi8a] [bchbi8y] [encoding=texnansi]
-\definefontsynonym [texnansi-bchr8a-slanted-167] [bchro8y] [encoding=texnansi]
-\definefontsynonym [texnansi-bchb8a-slanted-167] [bchbo8y] [encoding=texnansi]
-\definefontsynonym [texnansi-bchr8a-capitalized-800] [bchr8y] [encoding=texnansi]
-
-\stoptypescript
-
-\starttypescript [berry] [t5]
-
-% \setupencoding[default=t5]
-
-\definefontsynonym [t5-utmr8a] [utmr8v] [encoding=t5]
-\definefontsynonym [t5-utmri8a] [utmri8v] [encoding=t5]
-\definefontsynonym [t5-utmb8a] [utmb8v] [encoding=t5]
-\definefontsynonym [t5-utmbi8a] [utmbi8v] [encoding=t5]
-
-\definefontsynonym [t5-utmr8a-slanted-167] [utmro8v] [encoding=t5]
-\definefontsynonym [t5-utmb8a-slanted-167] [utmbo8v] [encoding=t5]
-
-\definefontsynonym [t5-uhvr8a] [uhvr8v] [encoding=t5]
-\definefontsynonym [t5-uhvro8a] [uhvro8v] [encoding=t5]
-\definefontsynonym [t5-uhvb8a] [uhvb8v] [encoding=t5]
-\definefontsynonym [t5-uhvbo8a] [uhvbo8v] [encoding=t5]
-
-\definefontsynonym [t5-ucrr8a] [ucrr8v] [encoding=t5]
-\definefontsynonym [t5-ucrb8a] [ucrb8v] [encoding=t5]
-\definefontsynonym [t5-ucrro8a] [ucrro8v] [encoding=t5]
-\definefontsynonym [t5-ucrbo8a] [ucrbo8v] [encoding=t5]
-
-\definefontsynonym [t5-uplr8a] [uplr8v] [encoding=t5]
-\definefontsynonym [t5-uplri8a] [uplri8v] [encoding=t5]
-\definefontsynonym [t5-uplb8a] [uplb8v] [encoding=t5]
-\definefontsynonym [t5-uplbi8a] [uplbi8v] [encoding=t5]
-\definefontsynonym [t5-uplr8a-slanted-167] [uplro8v] [encoding=t5]
-\definefontsynonym [t5-uplb8a-slanted-167] [uplbo8v] [encoding=t5]
-\definefontsynonym [t5-uplr8a-capitalized-800] [uplr8v] [encoding=t5]
-
-\definefontsynonym [t5-ubkl8a] [ubkl8v] [encoding=t5]
-\definefontsynonym [t5-ubkli8a] [ubkli8v] [encoding=t5]
-\definefontsynonym [t5-ubkd8a] [ubkd8v] [encoding=t5]
-\definefontsynonym [t5-ubkdi8a] [ubkdi8v] [encoding=t5]
-\definefontsynonym [t5-ubkl8a-slanted-167] [ubklo8v] [encoding=t5]
-\definefontsynonym [t5-ubkd8a-slanted-167] [ubkdo8v] [encoding=t5]
-\definefontsynonym [t5-ubkl8a-capitalized-800] [ubkl8v] [encoding=t5]
-
-\stoptypescript
-
-\stoptypescriptcollection
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/type-enc.tex b/Master/texmf-dist/tex/context/base/type-enc.tex
deleted file mode 100644
index d43f84326c3..00000000000
--- a/Master/texmf-dist/tex/context/base/type-enc.tex
+++ /dev/null
@@ -1,1182 +0,0 @@
-%D \module
-%D [ file=type-enc,
-%D version=2001.04.12,
-%D title=\CONTEXT\ Typescript Macros,
-%D subtitle=Encoding scripts,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% texfont --ven=public --col=antt --enc=ec --sou=auto
-% texfont --ven=public --col=antp --enc=ec --sou=auto
-% texfont --ven=urw --col=palatino --enc=ec --sou=auto
-% texfont --ven-lucas --col=sun --enc=ec --sou=.
-
-% \usetypescript [all] [modern] [texnansi]
-% \setupbodyfont[reset] \setupbodyfont[cmr]
-% \starttext \showfont[Serif] \stoptext
-
-% done: in type-dis.tex we remap the missing encoding-lm* files onto old metrics
-% todo: we should consider handling qx in the same maner, remap qx-* in type-dis.tex
-% todo: cyr fonts should be handled in the same way: t2b-lmr10 -> lbrm1000
-
-\starttypescriptcollection[encodings]
-
-\starttypescript[all][modern,latin-modern][all]
-
- % fallbacks, no math in latin modern
-
- \definefontsynonym[lmff10] [cmff10]
- \definefontsynonym[lmfi10] [cmfi10]
- \definefontsynonym[lmfib8] [cmfib8]
- \definefontsynonym[lmtex10] [cmtex10]
- \definefontsynonym[lmtex8] [cmtex8]
- \definefontsynonym[lmtex9] [cmtex9]
-
-\stoptypescript
-
-\starttypescript [serif] [modern,latin-modern] [texnansi,ec,qx,t5]
-
- \definefontsynonym [LMRoman10-DemiOblique] [\typescriptthree-lmbo10] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman10-Bold] [\typescriptthree-lmbx10] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman12-Bold] [\typescriptthree-lmbx12] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman5-Bold] [\typescriptthree-lmbx5] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman6-Bold] [\typescriptthree-lmbx6] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman7-Bold] [\typescriptthree-lmbx7] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman8-Bold] [\typescriptthree-lmbx8] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman9-Bold] [\typescriptthree-lmbx9] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman10-BoldItalic] [\typescriptthree-lmbxi10] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman10-BoldOblique] [\typescriptthree-lmbxo10] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman10-CapsRegular] [\typescriptthree-lmcsc10] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman10-CapsOblique] [\typescriptthree-lmcsco10] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman10-Regular] [\typescriptthree-lmr10] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman12-Regular] [\typescriptthree-lmr12] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman17-Regular] [\typescriptthree-lmr17] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman5-Regular] [\typescriptthree-lmr5] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman6-Regular] [\typescriptthree-lmr6] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman7-Regular] [\typescriptthree-lmr7] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman8-Regular] [\typescriptthree-lmr8] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman9-Regular] [\typescriptthree-lmr9] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman10-Italic] [\typescriptthree-lmri10] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman12-Italic] [\typescriptthree-lmri12] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman7-Italic] [\typescriptthree-lmri7] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman8-Italic] [\typescriptthree-lmri8] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman9-Italic] [\typescriptthree-lmri9] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman10-Oblique] [\typescriptthree-lmro10] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman12-Oblique] [\typescriptthree-lmro12] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman17-Oblique] [\typescriptthree-lmro17] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman8-Oblique] [\typescriptthree-lmro8] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman9-Oblique] [\typescriptthree-lmro9] [encoding=\typescriptthree]
-
- \definefontsynonym [LMRoman-DemiOblique] [LMRoman10-DemiOblique] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman-Bold] [LMRoman10-Bold] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman-BoldItalic] [LMRoman10-BoldItalic] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman-BoldOblique] [LMRoman10-BoldOblique] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman-CapsRegular] [LMRoman10-CapsRegular] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman-CapsOblique] [LMRoman10-CapsOblique] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman-Regular] [LMRoman10-Regular] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman-Italic] [LMRoman10-Italic] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman-Oblique] [LMRoman10-Oblique] [encoding=\typescriptthree]
-
-\stoptypescript
-
-\starttypescript [sans] [modern,latin-modern] [texnansi,ec,qx,t5]
-
- \definefontsynonym [LMSans10-Regular] [\typescriptthree-lmss10] [encoding=\typescriptthree]
- \definefontsynonym [LMSans12-Regular] [\typescriptthree-lmss12] [encoding=\typescriptthree]
- \definefontsynonym [LMSans17-Regular] [\typescriptthree-lmss17] [encoding=\typescriptthree]
- \definefontsynonym [LMSans8-Regular] [\typescriptthree-lmss8] [encoding=\typescriptthree]
- \definefontsynonym [LMSans9-Regular] [\typescriptthree-lmss9] [encoding=\typescriptthree]
- \definefontsynonym [LMSans10-BoldOblique] [\typescriptthree-lmssbo10] [encoding=\typescriptthree]
- \definefontsynonym [LMSans10-Bold] [\typescriptthree-lmssbx10] [encoding=\typescriptthree]
- \definefontsynonym [LMSans10-DemiCondensed] [\typescriptthree-lmssdc10] [encoding=\typescriptthree]
- \definefontsynonym [LMSans10-DemiCondensedOblique] [\typescriptthree-lmssdo10] [encoding=\typescriptthree]
- \definefontsynonym [LMSans10-Oblique] [\typescriptthree-lmsso10] [encoding=\typescriptthree]
- \definefontsynonym [LMSans12-Oblique] [\typescriptthree-lmsso12] [encoding=\typescriptthree]
- \definefontsynonym [LMSans17-Oblique] [\typescriptthree-lmsso17] [encoding=\typescriptthree]
- \definefontsynonym [LMSans8-Oblique] [\typescriptthree-lmsso8] [encoding=\typescriptthree]
- \definefontsynonym [LMSans9-Oblique] [\typescriptthree-lmsso9] [encoding=\typescriptthree]
- \definefontsynonym [LMSansQuotation8-Regular] [\typescriptthree-lmssq8] [encoding=\typescriptthree]
- \definefontsynonym [LMSansQuotation8-BoldOblique] [\typescriptthree-lmssqbo8] [encoding=\typescriptthree]
- \definefontsynonym [LMSansQuotation8-Bold] [\typescriptthree-lmssqbx8] [encoding=\typescriptthree]
- \definefontsynonym [LMSansQuotation8-Oblique] [\typescriptthree-lmssqo8] [encoding=\typescriptthree]
-
- \definefontsynonym [LMSans-Regular] [LMSans10-Regular] [encoding=\typescriptthree]
- \definefontsynonym [LMSans-BoldOblique] [LMSans10-BoldOblique] [encoding=\typescriptthree]
- \definefontsynonym [LMSans-Bold] [LMSans10-Bold] [encoding=\typescriptthree]
- \definefontsynonym [LMSans-DemiCondensed] [LMSans10-DemiCondensed] [encoding=\typescriptthree]
- \definefontsynonym [LMSans-DemiCondensedOblique] [LMSans10-DemiCondensedOblique] [encoding=\typescriptthree]
- \definefontsynonym [LMSans-Oblique] [LMSans10-Oblique] [encoding=\typescriptthree]
-
-\stoptypescript
-
-\starttypescript [mono] [modern,latin-modern,modern-vari,latin-modern-vari,modern-cond,latin-modern-cond] [texnansi,ec,qx,t5]
-
- \definefontsynonym [LMTypewriter10-CapsRegular] [\typescriptthree-lmtcsc10] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriter10-CapsOblique] [\typescriptthree-lmtcso10] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriter10-Light] [\typescriptthree-lmtl10] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriter10-LightOblique] [\typescriptthree-lmtlo10] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriter10-LightCondensed] [\typescriptthree-lmtlc10] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriter10-LightCondensedOblique] [\typescriptthree-lmtlco10] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriter10-Dark] [\typescriptthree-lmtk10] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriter10-DarkOblique] [\typescriptthree-lmtko10] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriter10-Regular] [\typescriptthree-lmtt10] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriter12-Regular] [\typescriptthree-lmtt12] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriter8-Regular] [\typescriptthree-lmtt8] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriter9-Regular] [\typescriptthree-lmtt9] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriter10-Italic] [\typescriptthree-lmtti10] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriter10-Oblique] [\typescriptthree-lmtto10] [encoding=\typescriptthree]
-
- \definefontsynonym [LMTypewriterVarWd10-Regular] [\typescriptthree-lmvtt10] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriterVarWd10-Oblique] [\typescriptthree-lmvtto10] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriterVarWd10-Light] [\typescriptthree-lmvtl10] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriterVarWd10-LightOblique] [\typescriptthree-lmvtlo10] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriterVarWd10-Dark] [\typescriptthree-lmvtk10] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriterVarWd10-DarkOblique] [\typescriptthree-lmvtko10] [encoding=\typescriptthree]
-
- \definefontsynonym [LMTypewriter-CapsRegular] [LMTypewriter10-CapsRegular] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriter-CapsOblique] [LMTypewriter10-CapsOblique] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriter-Light] [LMTypewriter10-Light] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriter-LightOblique] [LMTypewriter10-LightOblique] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriter-LightCondensed] [LMTypewriter10-LightCondensed] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriter-LightCondensedOblique] [LMTypewriter10-LightCondensedOblique][encoding=\typescriptthree]
- \definefontsynonym [LMTypewriter-Dark] [LMTypewriter10-Dark] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriter-DarkOblique] [LMTypewriter10-DarkOblique] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriter-Regular] [LMTypewriter10-Regular] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriter-Italic] [LMTypewriter10-Italic] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriter-Oblique] [LMTypewriter10-Oblique] [encoding=\typescriptthree]
-
- \definefontsynonym [LMTypewriterVarWd-Regular] [LMTypewriterVarWd10-Regular] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriterVarWd-Oblique] [LMTypewriterVarWd10-Oblique] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriterVarWd-Light] [LMTypewriterVarWd10-Light] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriterVarWd-LightOblique] [LMTypewriterVarWd10-LightOblique] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriterVarWd-Dark] [LMTypewriterVarWd10-Dark] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriterVarWd-DarkOblique] [LMTypewriterVarWd10-DarkOblique] [encoding=\typescriptthree]
-
-\stoptypescript
-
-\starttypescript [math] [modern,latin-modern]
-
- \definefontsynonym [LMMathSymbols5-BoldItalic] [lmbsy5]
- \definefontsynonym [LMMathSymbols7-BoldItalic] [lmbsy7]
- \definefontsynonym [LMMathSymbols10-BoldItalic][lmbsy10]
- \definefontsynonym [LMMathSymbols5-Italic] [lmsy5]
- \definefontsynonym [LMMathSymbols6-Italic] [lmsy6]
- \definefontsynonym [LMMathSymbols7-Italic] [lmsy7]
- \definefontsynonym [LMMathSymbols8-Italic] [lmsy8]
- \definefontsynonym [LMMathSymbols9-Italic] [lmsy9]
- \definefontsynonym [LMMathSymbols10-Italic] [lmsy10]
- \definefontsynonym [LMMathExtension10-Regular] [lmex10]
- \definefontsynonym [LMMathItalic5-Italic] [lmmi5]
- \definefontsynonym [LMMathItalic6-Italic] [lmmi6]
- \definefontsynonym [LMMathItalic7-Italic] [lmmi7]
- \definefontsynonym [LMMathItalic8-Italic] [lmmi8]
- \definefontsynonym [LMMathItalic9-Italic] [lmmi9]
- \definefontsynonym [LMMathItalic10-Italic] [lmmi10]
- \definefontsynonym [LMMathItalic12-Italic] [lmmi12]
- \definefontsynonym [LMMathItalic5-BoldItalic] [lmmib5]
- \definefontsynonym [LMMathItalic7-BoldItalic] [lmmib7]
- \definefontsynonym [LMMathItalic10-BoldItalic] [lmmib10]
-
- \definefontsynonym [LMMathSymbols-BoldItalic] [LMMathSymbols10-BoldItalic]
- \definefontsynonym [LMMathSymbols-Italic] [LMMathSymbols10-Italic]
- \definefontsynonym [LMMathExtension-Regular] [LMMathExtension10-Regular]
- \definefontsynonym [LMMathItalic-Italic] [LMMathItalic10-Italic]
- \definefontsynonym [LMMathItalic-BoldItalic] [LMMathItalic10-BoldItalic]
-
-\stoptypescript
-
-% todo: map these onto verbose names
-
-\starttypescript [serif] [modern,latin-modern,computer-modern] [texnansi,ec,qx,t5]
-
- \definefontsynonym [cmr5] [\typescriptthree-lmr5] [encoding=\typescriptthree]
- \definefontsynonym [cmr6] [\typescriptthree-lmr6] [encoding=\typescriptthree]
- \definefontsynonym [cmr7] [\typescriptthree-lmr7] [encoding=\typescriptthree]
- \definefontsynonym [cmr8] [\typescriptthree-lmr8] [encoding=\typescriptthree]
- \definefontsynonym [cmr9] [\typescriptthree-lmr9] [encoding=\typescriptthree]
- \definefontsynonym [cmr10] [\typescriptthree-lmr10] [encoding=\typescriptthree]
- \definefontsynonym [cmr12] [\typescriptthree-lmr12] [encoding=\typescriptthree]
- \definefontsynonym [cmr17] [\typescriptthree-lmr17] [encoding=\typescriptthree]
-
- \definefontsynonym [cmbx5] [\typescriptthree-lmbx5] [encoding=\typescriptthree]
- \definefontsynonym [cmbx6] [\typescriptthree-lmbx6] [encoding=\typescriptthree]
- \definefontsynonym [cmbx7] [\typescriptthree-lmbx7] [encoding=\typescriptthree]
- \definefontsynonym [cmbx8] [\typescriptthree-lmbx8] [encoding=\typescriptthree]
- \definefontsynonym [cmbx9] [\typescriptthree-lmbx9] [encoding=\typescriptthree]
- \definefontsynonym [cmbx10] [\typescriptthree-lmbx10] [encoding=\typescriptthree]
- \definefontsynonym [cmbx12] [\typescriptthree-lmbx12] [encoding=\typescriptthree]
-
- \definefontsynonym [cmsl10] [\typescriptthree-lmro10] [encoding=\typescriptthree]
- \definefontsynonym [cmsl12] [\typescriptthree-lmro12] [encoding=\typescriptthree]
- \definefontsynonym [cmsl8] [\typescriptthree-lmro8] [encoding=\typescriptthree]
- \definefontsynonym [cmsl9] [\typescriptthree-lmro9] [encoding=\typescriptthree]
-
- \definefontsynonym [cmti7] [\typescriptthree-lmri7] [encoding=\typescriptthree]
- \definefontsynonym [cmti8] [\typescriptthree-lmri8] [encoding=\typescriptthree]
- \definefontsynonym [cmti9] [\typescriptthree-lmri9] [encoding=\typescriptthree]
- \definefontsynonym [cmti10] [\typescriptthree-lmri10] [encoding=\typescriptthree]
- \definefontsynonym [cmti12] [\typescriptthree-lmri12] [encoding=\typescriptthree]
-
- \definefontsynonym [cmb10] [\typescriptthree-lmb10] [encoding=\typescriptthree]
- \definefontsynonym [cmbsl10] [\typescriptthree-lmbo10] [encoding=\typescriptthree]
- \definefontsynonym [cmbxsl10] [\typescriptthree-lmbxo10] [encoding=\typescriptthree]
- \definefontsynonym [cmbxti10] [\typescriptthree-lmbxi10] [encoding=\typescriptthree]
-
- \definefontsynonym [cmcsc10] [\typescriptthree-lmcsc10] [encoding=\typescriptthree]
- \definefontsynonym [cmcscsl10][\typescriptthree-lmcsco10] [encoding=\typescriptthree]
-
- \definefontsynonym [cmr12 ][rm-lmr12] % hack needed to fool math roman
- \definefontsynonym [cmr10 ][rm-lmr10] % into not messing around with
- \definefontsynonym [cmr9 ] [rm-lmr9] % encodings, probably no longer
- \definefontsynonym [cmr8 ] [rm-lmr8] % needed now
- \definefontsynonym [cmr7 ] [rm-lmr7] %
- \definefontsynonym [cmr6 ] [rm-lmr6] % no space appended here, needs
- \definefontsynonym [cmr5 ] [rm-lmr5] % some testing
-
-\stoptypescript
-
-\starttypescript [sans] [modern,latin-modern,computer-modern] [texnansi,ec,qx,t5]
-
- \definefontsynonym [cmss8] [\typescriptthree-lmss8] [encoding=\typescriptthree]
- \definefontsynonym [cmss9] [\typescriptthree-lmss9] [encoding=\typescriptthree]
- \definefontsynonym [cmss10] [\typescriptthree-lmss10] [encoding=\typescriptthree]
- \definefontsynonym [cmss12] [\typescriptthree-lmss12] [encoding=\typescriptthree]
- \definefontsynonym [cmss17] [\typescriptthree-lmss17] [encoding=\typescriptthree]
-
- \definefontsynonym [cmssi10] [\typescriptthree-lmsso10] [encoding=\typescriptthree]
- \definefontsynonym [cmssi12] [\typescriptthree-lmsso12] [encoding=\typescriptthree]
- \definefontsynonym [cmssi17] [\typescriptthree-lmsso17] [encoding=\typescriptthree]
- \definefontsynonym [cmssi8] [\typescriptthree-lmsso8] [encoding=\typescriptthree]
- \definefontsynonym [cmssi9] [\typescriptthree-lmsso9] [encoding=\typescriptthree]
-
- \definefontsynonym [cmssq8] [\typescriptthree-lmssq8] [encoding=\typescriptthree]
- \definefontsynonym [cmssqb8] [\typescriptthree-lmssqbx8] [encoding=\typescriptthree]
- \definefontsynonym [cmssqbi8] [\typescriptthree-lmssqbo8] [encoding=\typescriptthree]
- \definefontsynonym [cmssqi8] [\typescriptthree-lmssqo8] [encoding=\typescriptthree]
-
- \definefontsynonym [cmssbx10] [\typescriptthree-lmssbx10] [encoding=\typescriptthree]
- \definefontsynonym [cmssdc10] [\typescriptthree-lmssdc10] [encoding=\typescriptthree]
- \definefontsynonym [cmssbi10] [\typescriptthree-lmssbo10] [encoding=\typescriptthree]
- \definefontsynonym [cmssdi10] [\typescriptthree-lmssdo10] [encoding=\typescriptthree]
-
-\stoptypescript
-
-\starttypescript [mono] [modern,latin-modern,computer-modern] [texnansi,ec,qx,t5]
-
- \definefontsynonym [cmtt8] [\typescriptthree-lmtt8] [encoding=\typescriptthree]
- \definefontsynonym [cmtt9] [\typescriptthree-lmtt9] [encoding=\typescriptthree]
- \definefontsynonym [cmtt10] [\typescriptthree-lmtt10] [encoding=\typescriptthree]
- \definefontsynonym [cmtt12] [\typescriptthree-lmtt12] [encoding=\typescriptthree]
-
- \definefontsynonym [cmitt10] [\typescriptthree-lmtti10] [encoding=\typescriptthree]
- \definefontsynonym [cmsltt10] [\typescriptthree-lmtto10] [encoding=\typescriptthree]
-
- \definefontsynonym [cmvtt10] [\typescriptthree-lmvtt10] [encoding=\typescriptthree]
- \definefontsynonym [cmvtti10] [\typescriptthree-lmvtto] [encoding=\typescriptthree]
-
- \definefontsynonym [cmtcsc10] [\typescriptthree-lmtcsc10] [encoding=\typescriptthree]
-
-\stoptypescript
-
-\starttypescript [math] [modern,latin-modern,computer-modern]
-
- \definefontsynonym [cmbsy5] [lmbsy5]
- \definefontsynonym [cmbsy7] [lmbsy7]
- \definefontsynonym [cmbsy10] [lmbsy10]
- \definefontsynonym [cmsy5] [lmsy5]
- \definefontsynonym [cmsy6] [lmsy6]
- \definefontsynonym [cmsy7] [lmsy7]
- \definefontsynonym [cmsy8] [lmsy8]
- \definefontsynonym [cmsy9] [lmsy9]
- \definefontsynonym [cmsy10] [lmsy10]
- \definefontsynonym [cmex10] [lmex10]
- \definefontsynonym [cmmi5] [lmmi5]
- \definefontsynonym [cmmi6] [lmmi6]
- \definefontsynonym [cmmi7] [lmmi7]
- \definefontsynonym [cmmi8] [lmmi8]
- \definefontsynonym [cmmi9] [lmmi9]
- \definefontsynonym [cmmi10] [lmmi10]
- \definefontsynonym [cmmi12] [lmmi12]
- \definefontsynonym [cmmib5] [lmmib5]
- \definefontsynonym [cmmib7] [lmmib7]
- \definefontsynonym [cmmib10] [lmmib10]
-
-\stoptypescript
-
-%D {\em Comments by Victor Figurnov:} the wcmb10, wcmbx10,
-%D \unknown\ fonts below are taken from the Paradissa
-%D collection by Basil Malyshev. These fonts don't conform t2a
-%D encoding but are in MS Windows Cyrillic codepage 1251
-%D encoding. These fonts contain only 33 russian letters in
-%D upper and lower case, the number sign, and guillemots. But
-%D even among these characters only the basic 32 russian
-%D letters (in upper and lower case) will be typeset correctly
-%D with this definition. The letters cyrillicYO and
-%D cyrillicyo, as well as number sign (textnumero) and
-%D guillemots won't be typeset properly, because these symbols
-%D have different positions in t2a and MS CP1251 encodings.
-%D
-%D I think that the russian lh fonts and|/|or cm-super provide
-%D better alternatives (type1). Therefore, the names below
-%D match those of cm-super (\type {0NNN} instead of \type
-%D {NNN}, i.e.\ four digit numbers).
-
-\starttypescript [serif] [computer-modern] [cyr]
- \definefontsynonym [cmb10] [wcmb10] [encoding=t2a]
- \definefontsynonym [cmbsy10] [wcmbsy10] [encoding=t2a]
- \definefontsynonym [cmbx10] [wcmbx10] [encoding=t2a]
- \definefontsynonym [cmbx12] [wcmbx12] [encoding=t2a]
- \definefontsynonym [cmbx5] [wcmbx5] [encoding=t2a]
- \definefontsynonym [cmbx6] [wcmbx6] [encoding=t2a]
- \definefontsynonym [cmbx7] [wcmbx7] [encoding=t2a]
- \definefontsynonym [cmbx8] [wcmbx8] [encoding=t2a]
- \definefontsynonym [cmbx9] [wcmbx9] [encoding=t2a]
- \definefontsynonym [cmbxsl10] [wcmbxsl10] [encoding=t2a]
- \definefontsynonym [cmbxti10] [wcmbxti10] [encoding=t2a]
- \definefontsynonym [cmcsc10] [wcmcsc10] [encoding=t2a]
- %definefontsynonym [cmdunh10] [wcmdunh10] [encoding=t2a]
- \definefontsynonym [cminch] [wcminch] [encoding=t2a]
- \definefontsynonym [cmr10] [wcmr10] [encoding=t2a]
- \definefontsynonym [cmr12] [wcmr12] [encoding=t2a]
- \definefontsynonym [cmr17] [wcmr17] [encoding=t2a]
- \definefontsynonym [cmr5] [wcmr5] [encoding=t2a]
- \definefontsynonym [cmr6] [wcmr6] [encoding=t2a]
- \definefontsynonym [cmr7] [wcmr7] [encoding=t2a]
- \definefontsynonym [cmr8] [wcmr8] [encoding=t2a]
- \definefontsynonym [cmr9] [wcmr9] [encoding=t2a]
- \definefontsynonym [cmsl10] [wcmsl10] [encoding=t2a]
- \definefontsynonym [cmsl12] [wcmsl12] [encoding=t2a]
- \definefontsynonym [cmsl8] [wcmsl8] [encoding=t2a]
- \definefontsynonym [cmsl9] [wcmsl9] [encoding=t2a]
- \definefontsynonym [cmti10] [wcmti10] [encoding=t2a]
- \definefontsynonym [cmti12] [wcmti12] [encoding=t2a]
- \definefontsynonym [cmti7] [wcmti7] [encoding=t2a]
- \definefontsynonym [cmti8] [wcmti8] [encoding=t2a]
- \definefontsynonym [cmti9] [wcmti9] [encoding=t2a]
- \definefontsynonym [cmu10] [wcmu10] [encoding=t2a]
-\stoptypescript
-
-\starttypescript [sans] [computer-modern] [cyr]
- \definefontsynonym [cmss10] [wcmss10] [encoding=t2a]
- \definefontsynonym [cmss12] [wcmss12] [encoding=t2a]
- \definefontsynonym [cmss17] [wcmss17] [encoding=t2a]
- \definefontsynonym [cmss8] [wcmss8] [encoding=t2a]
- \definefontsynonym [cmss9] [wcmss9] [encoding=t2a]
- %definefontsynonym [cmssbi10] [wcmssbi10] [encoding=t2a]
- \definefontsynonym [cmssbx10] [wcmssbx10] [encoding=t2a]
- \definefontsynonym [cmssdc10] [wcmssdc10] [encoding=t2a]
- \definefontsynonym [cmssi10] [wcmssi10] [encoding=t2a]
- \definefontsynonym [cmssi12] [wcmssi12] [encoding=t2a]
- \definefontsynonym [cmssi17] [wcmssi17] [encoding=t2a]
- \definefontsynonym [cmssi8] [wcmssi8] [encoding=t2a]
- \definefontsynonym [cmssi9] [wcmssi9] [encoding=t2a]
- \definefontsynonym [cmssq8] [wcmssq8] [encoding=t2a]
- \definefontsynonym [cmssqi8] [wcmssqi8] [encoding=t2a]
-\stoptypescript
-
-\starttypescript [mono] [computer-modern] [cyr]
- \definefontsynonym [cmitt10] [wcmitt10] [encoding=t2a]
- \definefontsynonym [cmsltt10] [wcmsltt10] [encoding=t2a]
- \definefontsynonym [cmtt10] [wcmtt10] [encoding=t2a]
- \definefontsynonym [cmtt12] [wcmtt12] [encoding=t2a]
- \definefontsynonym [cmtt8] [wcmtt8] [encoding=t2a]
- \definefontsynonym [cmtt9] [wcmtt9] [encoding=t2a]
- %definefontsynonym [cmvtt10] [wcmvtt10] [encoding=t2a]
-\stoptypescript
-
-\definetypescriptprefix [c:t2a] [la]
-\definetypescriptprefix [c:t2b] [lb]
-\definetypescriptprefix [c:t2c] [lc]
-\definetypescriptprefix [c:x2] [rx]
-
-\starttypescript [serif] [computer-modern] [t2a,t2b,t2c,x2]
- \definefontsynonym [cmb10] [\typescriptprefix{c:\typescriptthree}rb1000] [encoding=\typescriptthree]
- \definefontsynonym [cmbx10] [\typescriptprefix{c:\typescriptthree}bx1000] [encoding=\typescriptthree]
- \definefontsynonym [cmbx12] [\typescriptprefix{c:\typescriptthree}bx1200] [encoding=\typescriptthree]
- \definefontsynonym [cmbx5] [\typescriptprefix{c:\typescriptthree}bx0500] [encoding=\typescriptthree]
- \definefontsynonym [cmbx6] [\typescriptprefix{c:\typescriptthree}bx0600] [encoding=\typescriptthree]
- \definefontsynonym [cmbx7] [\typescriptprefix{c:\typescriptthree}bx0700] [encoding=\typescriptthree]
- \definefontsynonym [cmbx8] [\typescriptprefix{c:\typescriptthree}bx0800] [encoding=\typescriptthree]
- \definefontsynonym [cmbx9] [\typescriptprefix{c:\typescriptthree}bx0900] [encoding=\typescriptthree]
- \definefontsynonym [cmbxsl10] [\typescriptprefix{c:\typescriptthree}bl1000] [encoding=\typescriptthree]
- \definefontsynonym [cmbxti10] [\typescriptprefix{c:\typescriptthree}bi1000] [encoding=\typescriptthree]
- \definefontsynonym [cmcsc10] [\typescriptprefix{c:\typescriptthree}cc1000] [encoding=\typescriptthree]
- \definefontsynonym [cmdunh10] [\typescriptprefix{c:\typescriptthree}dh1000] [encoding=\typescriptthree]
- \definefontsynonym [cmff10] [\typescriptprefix{c:\typescriptthree}ff1000] [encoding=\typescriptthree]
- \definefontsynonym [cmfi10] [\typescriptprefix{c:\typescriptthree}fi1000] [encoding=\typescriptthree]
- \definefontsynonym [cmfib8] [\typescriptprefix{c:\typescriptthree}fb0800] [encoding=\typescriptthree]
- %\definefontsynonym [cminch] [\typescriptprefix{c:\typescriptthree}inch00] [encoding=\typescriptthree]
- \definefontsynonym [cmr10] [\typescriptprefix{c:\typescriptthree}rm1000] [encoding=\typescriptthree]
- \definefontsynonym [cmr12] [\typescriptprefix{c:\typescriptthree}rm1200] [encoding=\typescriptthree]
- \definefontsynonym [cmr17] [\typescriptprefix{c:\typescriptthree}rm1700] [encoding=\typescriptthree]
- \definefontsynonym [cmr5] [\typescriptprefix{c:\typescriptthree}rm0500] [encoding=\typescriptthree]
- \definefontsynonym [cmr6] [\typescriptprefix{c:\typescriptthree}rm0600] [encoding=\typescriptthree]
- \definefontsynonym [cmr7] [\typescriptprefix{c:\typescriptthree}rm0700] [encoding=\typescriptthree]
- \definefontsynonym [cmr8] [\typescriptprefix{c:\typescriptthree}rm0800] [encoding=\typescriptthree]
- \definefontsynonym [cmr9] [\typescriptprefix{c:\typescriptthree}rm0900] [encoding=\typescriptthree]
- \definefontsynonym [cmsl10] [\typescriptprefix{c:\typescriptthree}sl1000] [encoding=\typescriptthree]
- \definefontsynonym [cmsl12] [\typescriptprefix{c:\typescriptthree}sl1200] [encoding=\typescriptthree]
- \definefontsynonym [cmsl8] [\typescriptprefix{c:\typescriptthree}sl0800] [encoding=\typescriptthree]
- \definefontsynonym [cmsl9] [\typescriptprefix{c:\typescriptthree}sl0900] [encoding=\typescriptthree]
- \definefontsynonym [cmtcsc10] [\typescriptprefix{c:\typescriptthree}tc1000] [encoding=\typescriptthree]
- \definefontsynonym [cmti10] [\typescriptprefix{c:\typescriptthree}ti1000] [encoding=\typescriptthree]
- \definefontsynonym [cmti12] [\typescriptprefix{c:\typescriptthree}ti1200] [encoding=\typescriptthree]
- \definefontsynonym [cmti7] [\typescriptprefix{c:\typescriptthree}ti0700] [encoding=\typescriptthree]
- \definefontsynonym [cmti8] [\typescriptprefix{c:\typescriptthree}ti0800] [encoding=\typescriptthree]
- \definefontsynonym [cmti9] [\typescriptprefix{c:\typescriptthree}ti0900] [encoding=\typescriptthree]
- \definefontsynonym [cmu10] [\typescriptprefix{c:\typescriptthree}ui1000] [encoding=\typescriptthree]
-\stoptypescript
-
-\starttypescript [sans] [computer-modern] [t2a,t2b,t2c,x2]
- \definefontsynonym [cmss10] [\typescriptprefix{c:\typescriptthree}ss1000] [encoding=\typescriptthree]
- \definefontsynonym [cmss12] [\typescriptprefix{c:\typescriptthree}ss1200] [encoding=\typescriptthree]
- \definefontsynonym [cmss17] [\typescriptprefix{c:\typescriptthree}ss1700] [encoding=\typescriptthree]
- \definefontsynonym [cmss8] [\typescriptprefix{c:\typescriptthree}ss0800] [encoding=\typescriptthree]
- \definefontsynonym [cmss9] [\typescriptprefix{c:\typescriptthree}ss0900] [encoding=\typescriptthree]
- \definefontsynonym [cmssbx10] [\typescriptprefix{c:\typescriptthree}sx1000] [encoding=\typescriptthree]
- %\definefontsynonym [cmssdc10] [\typescriptprefix{c:\typescriptthree}ssdc1000] [encoding=\typescriptthree]
- \definefontsynonym [cmssi10] [\typescriptprefix{c:\typescriptthree}si1000] [encoding=\typescriptthree]
- \definefontsynonym [cmssi12] [\typescriptprefix{c:\typescriptthree}si1200] [encoding=\typescriptthree]
- \definefontsynonym [cmssi17] [\typescriptprefix{c:\typescriptthree}si1700] [encoding=\typescriptthree]
- \definefontsynonym [cmssi8] [\typescriptprefix{c:\typescriptthree}si0800] [encoding=\typescriptthree]
- \definefontsynonym [cmssi9] [\typescriptprefix{c:\typescriptthree}si0900] [encoding=\typescriptthree]
- \definefontsynonym [cmssq8] [\typescriptprefix{c:\typescriptthree}ss0800] [encoding=\typescriptthree]
- \definefontsynonym [cmssqi8] [\typescriptprefix{c:\typescriptthree}si0800] [encoding=\typescriptthree]
-\stoptypescript
-
-\starttypescript [mono] [computer-modern] [t2a,t2b,t2c,x2]
- \definefontsynonym [cmitt10] [\typescriptprefix{c:\typescriptthree}it1000] [encoding=\typescriptthree]
- \definefontsynonym [cmsltt10] [\typescriptprefix{c:\typescriptthree}st1000] [encoding=\typescriptthree]
- \definefontsynonym [cmtt10] [\typescriptprefix{c:\typescriptthree}tt1000] [encoding=\typescriptthree]
- \definefontsynonym [cmtt12] [\typescriptprefix{c:\typescriptthree}tt1200] [encoding=\typescriptthree]
- \definefontsynonym [cmtt8] [\typescriptprefix{c:\typescriptthree}tt0800] [encoding=\typescriptthree]
- \definefontsynonym [cmtt9] [\typescriptprefix{c:\typescriptthree}tt0900] [encoding=\typescriptthree]
- \definefontsynonym [cmvtt10] [\typescriptprefix{c:\typescriptthree}vt1000] [encoding=\typescriptthree]
-\stoptypescript
-
-\starttypescript [serif] [computer-modern] [lcy]
- \definefontsynonym [cmb10] [lhb10] [encoding=lcy]
- \definefontsynonym [cmbx10] [lhbx10] [encoding=lcy]
- \definefontsynonym [cmbx12] [lhbx12] [encoding=lcy]
- \definefontsynonym [cmbx5] [lhbx5] [encoding=lcy]
- \definefontsynonym [cmbx6] [lhbx6] [encoding=lcy]
- \definefontsynonym [cmbx7] [lhbx7] [encoding=lcy]
- \definefontsynonym [cmbx8] [lhbx8] [encoding=lcy]
- \definefontsynonym [cmbx9] [lhbx9] [encoding=lcy]
- \definefontsynonym [cmbxsl10] [lhbxsl10] [encoding=lcy]
- \definefontsynonym [cmbxti10] [lhbxti10] [encoding=lcy]
- \definefontsynonym [cmcsc10] [lhcsc10] [encoding=lcy]
- \definefontsynonym [cmdunh10] [lhdunh10] [encoding=lcy]
- \definefontsynonym [cmff10] [lhff10] [encoding=lcy]
- \definefontsynonym [cmfi10] [lhfi10] [encoding=lcy]
- \definefontsynonym [cmfib8] [lhfib8] [encoding=lcy]
- \definefontsynonym [cminch] [lhinch] [encoding=lcy]
- \definefontsynonym [cmr10] [lhr10] [encoding=lcy]
- \definefontsynonym [cmr12] [lhr12] [encoding=lcy]
- \definefontsynonym [cmr17] [lhr17] [encoding=lcy]
- \definefontsynonym [cmr5] [lhr5] [encoding=lcy]
- \definefontsynonym [cmr6] [lhr6] [encoding=lcy]
- \definefontsynonym [cmr7] [lhr7] [encoding=lcy]
- \definefontsynonym [cmr8] [lhr8] [encoding=lcy]
- \definefontsynonym [cmr9] [lhr9] [encoding=lcy]
- \definefontsynonym [cmsl10] [lhsl10] [encoding=lcy]
- \definefontsynonym [cmsl12] [lhsl12] [encoding=lcy]
- \definefontsynonym [cmsl8] [lhsl8] [encoding=lcy]
- \definefontsynonym [cmsl9] [lhsl9] [encoding=lcy]
- \definefontsynonym [cmtcsc10] [lhtcsc10] [encoding=lcy]
- \definefontsynonym [cmtex10] [lhtex10] [encoding=lcy]
- \definefontsynonym [cmtex8] [lhtex8] [encoding=lcy]
- \definefontsynonym [cmtex9] [lhtex9] [encoding=lcy]
- \definefontsynonym [cmti10] [lhti10] [encoding=lcy]
- \definefontsynonym [cmti12] [lhti12] [encoding=lcy]
- \definefontsynonym [cmti7] [lhti7] [encoding=lcy]
- \definefontsynonym [cmti8] [lhti8] [encoding=lcy]
- \definefontsynonym [cmti9] [lhti9] [encoding=lcy]
- \definefontsynonym [cmu10] [lhu10] [encoding=lcy]
-\stoptypescript
-
-\starttypescript [sans] [computer-modern] [lcy]
- \definefontsynonym [cmss10] [lhss10] [encoding=lcy]
- \definefontsynonym [cmss12] [lhss12] [encoding=lcy]
- \definefontsynonym [cmss17] [lhss17] [encoding=lcy]
- \definefontsynonym [cmss8] [lhss8] [encoding=lcy]
- \definefontsynonym [cmss9] [lhss9] [encoding=lcy]
- \definefontsynonym [cmssbi10] [lhssbi10] [encoding=lcy]
- \definefontsynonym [cmssbx10] [lhssbx10] [encoding=lcy]
- \definefontsynonym [cmssdc10] [lhssdc10] [encoding=lcy]
- \definefontsynonym [cmssi10] [lhssi10] [encoding=lcy]
- \definefontsynonym [cmssi12] [lhssi12] [encoding=lcy]
- \definefontsynonym [cmssi17] [lhssi17] [encoding=lcy]
- \definefontsynonym [cmssi8] [lhssi8] [encoding=lcy]
- \definefontsynonym [cmssi9] [lhssi9] [encoding=lcy]
- \definefontsynonym [cmssq8] [lhssq8] [encoding=lcy]
- \definefontsynonym [cmssqi8] [lhssqi8] [encoding=lcy]
-\stoptypescript
-
-\starttypescript [mono] [computer-modern] [lcy]
- \definefontsynonym [cmitt10] [lhitt10] [encoding=lcy]
- \definefontsynonym [cmsltt10] [lhsltt10] [encoding=lcy]
- \definefontsynonym [cmtt10] [lhtt10] [encoding=lcy]
- \definefontsynonym [cmtt12] [lhtt12] [encoding=lcy]
- \definefontsynonym [cmtt8] [lhtt8] [encoding=lcy]
- \definefontsynonym [cmtt9] [lhtt9] [encoding=lcy]
- \definefontsynonym [cmvtt10] [lhvtt10] [encoding=lcy]
-\stoptypescript
-
-\starttypescript [serif] [modern,computer-modern,latin-modern] [default]
- \definefontsynonym [ComputerModern] [LMRoman-Regular]
- \definefontsynonym [ComputerModern-Italic] [LMRoman-Italic]
- \definefontsynonym [ComputerModern-Slanted] [LMRoman-Oblique]
- \definefontsynonym [ComputerModern-Bold] [LMRoman-Bold]
- \definefontsynonym [ComputerModern-BoldItalic] [LMRoman-BoldItalic]
- \definefontsynonym [ComputerModern-BoldSlanted] [LMRoman-BoldOblique]
- \definefontsynonym [ComputerModern-Caps] [LMRoman-CapsRegular]
- \definefontsynonym [ComputerModern-CapsSlanted] [LMRoman-CapsOblique]
-\stoptypescript
-
-\starttypescript [sans] [modern,computer-modern,latin-modern] % [default]
- \definefontsynonym [ComputerModernSans] [LMSans-Regular]
- \definefontsynonym [ComputerModernSans-Italic] [LMSans-Oblique]
- \definefontsynonym [ComputerModernSans-Slanted] [LMSans-Oblique]
- \definefontsynonym [ComputerModernSans-Bold] [LMSans-Bold]
- \definefontsynonym [ComputerModernSans-BoldItalic] [LMSans-BoldOblique]
- \definefontsynonym [ComputerModernSans-BoldSlanted] [LMSans-BoldOblique]
- \definefontsynonym [ComputerModernSans-Caps] [LMSans-Regular] % [LMSans-CapsRegular]
- \definefontsynonym [ComputerModernSans-CapsSlanted] [LMSans-Oblique] % [LMSans-CapsOblique]
-\stoptypescript
-
-\starttypescript [mono] [modern,computer-modern,latin-modern] % [default]
- \definefontsynonym [ComputerModernMono] [LMTypewriter-Regular]
- \definefontsynonym [ComputerModernMono-Italic] [LMTypewriter-Italic]
- \definefontsynonym [ComputerModernMono-Slanted] [LMTypewriter-Oblique]
- \definefontsynonym [ComputerModernMono-Bold] [LMTypewriter-Dark]
- \definefontsynonym [ComputerModernMono-BoldItalic] [LMTypewriter-DarkOblique] % !
- \definefontsynonym [ComputerModernMono-BoldSlanted] [LMTypewriter-DarkOblique]
- \definefontsynonym [ComputerModernMono-Caps] [LMTypewriter-CapsRegular]
- \definefontsynonym [ComputerModernMono-CapsSlanted] [LMTypewriter-CapsOblique]
- \definefontsynonym [ComputerModernMono-Variable] [LMTypewriterVarWd-Regular]
-\stoptypescript
-
-\starttypescript [serif] [modern-vari,computer-modern-vari,latin-modern-vari] % [default]
- \definefontsynonym [ComputerModernVariable] [LMTypewriterVarWd-Regular]
- \definefontsynonym [ComputerModernVariable-Italic] [LMTypewriterVarWd-Oblique]
- \definefontsynonym [ComputerModernVariable-Slanted] [LMTypewriterVarWd-Oblique]
- \definefontsynonym [ComputerModernVariable-Bold] [LMTypewriterVarWd-Dark]
- \definefontsynonym [ComputerModernVariable-BoldItalic] [LMTypewriterVarWd-DarkOblique]
- \definefontsynonym [ComputerModernVariable-BoldSlanted] [LMTypewriterVarWd-DarkOblique]
- \definefontsynonym [ComputerModernVariable-Caps] [LMTypewriterVarWd-Regular]
- \definefontsynonym [ComputerModernVariable-CapsSlanted] [LMTypewriterVarWd-Oblique]
-\stoptypescript
-
-\starttypescript [math] [modern,computer-modern,latin-modern] % [default]
- % watch the space, it prevents remapping
- \definefontsynonym [ComputerModernMath-Roman] [lmr10 ]
- \definefontsynonym [ComputerModernMath-Extension] [lmex10]
- \definefontsynonym [ComputerModernMath-Italic] [lmmi10]
- \definefontsynonym [ComputerModernMath-Symbol] [lmsy10]
-\stoptypescript
-
-\starttypescript [boldmath,bfmath] [modern,computer-modern,latin-modern] % [default]
- % watch the space, it prevents remapping
- \definefontsynonym [ComputerModernMath-Roman-Bold] [lmb10 ]
- \definefontsynonym [ComputerModernMath-Extension] [lmex10]
- \definefontsynonym [ComputerModernMath-Italic-Bold] [lmmib10]
- \definefontsynonym [ComputerModernMath-Symbol-Bold] [lmbsy10]
-\stoptypescript
-
-% Till we have cyrilic in lm:
-
-% \usetypescript[modern-base][t2a]
-% \setupbodyfont[modern,10pt]
-
-\starttypescript [serif] [computer-modern] [t2a,t2b,t2c,x2]
- \definefontsynonym [ComputerModern] [\typescriptprefix{c:\typescriptthree}rm1000] [encoding=\typescriptthree]
- \definefontsynonym [ComputerModern-Italic] [\typescriptprefix{c:\typescriptthree}ti1000] [encoding=\typescriptthree]
- \definefontsynonym [ComputerModern-Slanted] [\typescriptprefix{c:\typescriptthree}sl1000] [encoding=\typescriptthree]
- \definefontsynonym [ComputerModern-Bold] [\typescriptprefix{c:\typescriptthree}bx1000] [encoding=\typescriptthree]
- \definefontsynonym [ComputerModern-BoldItalic] [\typescriptprefix{c:\typescriptthree}bi1000] [encoding=\typescriptthree]
- \definefontsynonym [ComputerModern-BoldSlanted] [\typescriptprefix{c:\typescriptthree}bl1000] [encoding=\typescriptthree]
- \definefontsynonym [ComputerModern-Caps] [\typescriptprefix{c:\typescriptthree}cc1000] [encoding=\typescriptthree]
- \definefontsynonym [ComputerModern-CapsSlanted] [\typescriptprefix{c:\typescriptthree}sc1000] [encoding=\typescriptthree]
-\stoptypescript
-
-\starttypescript [sans] [computer-modern] [t2a,t2b,t2c,x2]
- \definefontsynonym [ComputerModernSans] [\typescriptprefix{c:\typescriptthree}ss1000] [encoding=\typescriptthree]
- %definefontsynonym [ComputerModernSans-Italic] [\typescriptprefix{c:\typescriptthree}1000] [encoding=\typescriptthree]
- \definefontsynonym [ComputerModernSans-Slanted] [\typescriptprefix{c:\typescriptthree}si1000] [encoding=\typescriptthree]
- \definefontsynonym [ComputerModernSans-Bold] [\typescriptprefix{c:\typescriptthree}sx1000] [encoding=\typescriptthree]
- %definefontsynonym [ComputerModernSans-BoldItalic] [\typescriptprefix{c:\typescriptthree}1000] [encoding=\typescriptthree]
- \definefontsynonym [ComputerModernSans-BoldSlanted] [\typescriptprefix{c:\typescriptthree}so1000] [encoding=\typescriptthree]
- %definefontsynonym [ComputerModernSans-Caps] [\typescriptprefix{c:\typescriptthree}1000] [encoding=\typescriptthree]
- %definefontsynonym [ComputerModernSans-CapsSlanted] [\typescriptprefix{c:\typescriptthree}1000] [encoding=\typescriptthree]
-\stoptypescript
-
-\starttypescript [mono] [computer-modern] [t2a,t2b,t2c,x2]
- \definefontsynonym [ComputerModernMono] [\typescriptprefix{c:\typescriptthree}tt1000] [encoding=\typescriptthree]
- \definefontsynonym [ComputerModernMono-Italic] [\typescriptprefix{c:\typescriptthree}it1000] [encoding=\typescriptthree]
- \definefontsynonym [ComputerModernMono-Slanted] [\typescriptprefix{c:\typescriptthree}st1000] [encoding=\typescriptthree]
- %definefontsynonym [ComputerModernMono-Bold] [\typescriptprefix{c:\typescriptthree}1000] [encoding=\typescriptthree]
- %definefontsynonym [ComputerModernMono-BoldItalic] [\typescriptprefix{c:\typescriptthree}1000] [encoding=\typescriptthree]
- %definefontsynonym [ComputerModernMono-BoldSlanted] [\typescriptprefix{c:\typescriptthree}1000] [encoding=\typescriptthree]
- \definefontsynonym [ComputerModernMono-Caps] [\typescriptprefix{c:\typescriptthree}tc1000] [encoding=\typescriptthree]
- %definefontsynonym [ComputerModernMono-CapsSlanted] [\typescriptprefix{c:\typescriptthree}1000] [encoding=\typescriptthree]
-\stoptypescript
-
-% Computer Concrete (AMS)
-
-\starttypescript [serif] [concrete] [default]
- \definefontsynonym [ComputerConcrete] [ccr10]
- \definefontsynonym [ComputerConcrete-Italic] [ccti10]
- \definefontsynonym [ComputerConcrete-Slanted] [ccsl10]
- \definefontsynonym [ComputerConcrete-Bold] [ComputerConcrete]
- \definefontsynonym [ComputerConcrete-BoldItalic] [ComputerConcrete-Italic]
- \definefontsynonym [ComputerConcrete-BoldSlanted] [ComputerConcrete-Slanted]
- \definefontsynonym [ComputerConcrete-Caps] [cccsc10]
-\stoptypescript
-
-% Euler (AMS)
-
-\starttypescript [math] [euler] [default]
- \definefontsynonym [Euler-Roman] [zeurm10]
- \definefontsynonym [Euler-Extension] [zeuex10]
- \definefontsynonym [Euler-Symbol] [zeusm10]
- \definefontsynonym [Euler-Fraktur] [eufm10]
-\stoptypescript
-
-\starttypescript [boldmath,bfmath] [euler] [default]
- \definefontsynonym [Euler-Roman-Bold] [zeurb10]
- \definefontsynonym [Euler-Extension] [zeuex10]
- \definefontsynonym [Euler-Symbol-Bold] [zeusb10]
- \definefontsynonym [Euler-Fraktur-Bold] [eufb10]
-\stoptypescript
-
-% AMS (AMS)
-
-\starttypescript [math] [modern,computer-modern,latin-modern,ams] [default]
- \definefontsynonym [AMS-SymbolA] [msam10]
- \definefontsynonym [AMS-SymbolB] [msbm10]
-\stoptypescript
-
-% Fourier (Utopia)
-
-\starttypescript [math] [fourier] [default,ec]
- \definefontsynonym [Fourier-Math-Letters] [futr8t] [encoding=ec]
- %\definefontsynonym [Fourier-Math-Letters] [futmi]
- \definefontsynonym [Fourier-Math-Letters-Italic] [futmii]
- \definefontsynonym [Fourier-Math-Symbols] [futsy]
- \definefontsynonym [Fourier-Math-Extension] [fourier-mex]
-\stoptypescript
-
-\starttypescript [serif] [fourier] [ec]
- \definefontsynonym [Fourier-Regular] [futr8t] [encoding=ec]
- \definefontsynonym [Fourier-Slanted] [futro8t] [encoding=ec]
- \definefontsynonym [Fourier-Italic] [futri8t] [encoding=ec]
- \definefontsynonym [Fourier-RegularCaps] [futrc8t] [encoding=ec]
- \definefontsynonym [Fourier-Bold] [futb8t] [encoding=ec]
- \definefontsynonym [Fourier-BoldSlanted] [futbo8t] [encoding=ec]
- \definefontsynonym [Fourier-BoldItalic] [futbi8t] [encoding=ec]
- \definefontsynonym [Fourier-BoldCaps] [futbc8t] [encoding=ec]
-
- \definefontsynonym [Fourier-Regular-Expert] [futr9e] [encoding=ec]
- \definefontsynonym [Fourier-Slanted-Expert] [futro9e] [encoding=ec]
- \definefontsynonym [Fourier-Italic-Expert] [futri9e] [encoding=ec]
- \definefontsynonym [Fourier-RegularCaps-Expert] [futrc9e] [encoding=ec]
- \definefontsynonym [Fourier-Semi-Expert] [futs9e] [encoding=ec]
- \definefontsynonym [Fourier-SemiSlanted-Expert] [futso9e] [encoding=ec]
- \definefontsynonym [Fourier-SemiItalic-Expert] [futsi9e] [encoding=ec]
- \definefontsynonym [Fourier-SemiCaps-Expert] [futsc9e] [encoding=ec]
- \definefontsynonym [Fourier-Bold-Expert] [futb9e] [encoding=ec]
- \definefontsynonym [Fourier-BoldSlanted-Expert] [futbo9e] [encoding=ec]
- \definefontsynonym [Fourier-BoldItalic-Expert] [futbi9e] [encoding=ec]
- \definefontsynonym [Fourier-Black-Expert] [futc9e] [encoding=ec]
-
- \definefontsynonym [Fourier-Regular-OldStyle] [futr9d] [encoding=ec]
- \definefontsynonym [Fourier-Slanted-OldStyle] [futro9d] [encoding=ec]
- \definefontsynonym [Fourier-Italic-OldStyle] [futri9d] [encoding=ec]
- \definefontsynonym [Fourier-RegularCaps-OldStyle] [futrc9d] [encoding=ec]
- \definefontsynonym [Fourier-Semi-OldStyle] [futs9d] [encoding=ec]
- \definefontsynonym [Fourier-SemiSlanted-OldStyle] [futso9d] [encoding=ec]
- \definefontsynonym [Fourier-SemiItalic-OldStyle] [futsi9d] [encoding=ec]
- \definefontsynonym [Fourier-SemiCaps-OldStyle] [futsc9d] [encoding=ec]
- \definefontsynonym [Fourier-Bold-OldStyle] [futb9d] [encoding=ec]
- \definefontsynonym [Fourier-BoldSlanted-OldStyle] [futbo9d] [encoding=ec]
- \definefontsynonym [Fourier-BoldItalic-OldStyle] [futbi9d] [encoding=ec]
- \definefontsynonym [Fourier-Black-OldStyle] [futc9d] [encoding=ec]
-\stoptypescript
-
-% Courier (URW)
-
-\starttypescript [mono] [courier] [texnansi,ec,8r,t5]
- \definefontsynonym [Courier] [\typescriptthree-ucrr8a] [encoding=\typescriptthree]
- \definefontsynonym [Courier-Bold] [\typescriptthree-ucrb8a] [encoding=\typescriptthree]
- \definefontsynonym [Courier-Oblique] [\typescriptthree-ucrro8a] [encoding=\typescriptthree]
- \definefontsynonym [Courier-BoldOblique] [\typescriptthree-ucrbo8a] [encoding=\typescriptthree]
-\stoptypescript
-
-% alternative 1
-%
-% \definefontsynonym[qx-ucrr8a] [qcrr]
-% \definefontsynonym[qx-ucrb8a] [qcrb]
-% \definefontsynonym[qx-ucrr08a] [qcrri]
-% \definefontsynonym[qx-ucrbo8a] [qcrbi]
-%
-% alternative 2
-
-\starttypescript [mono] [courier] [qx]
- \definefontsynonym [Courier] [qcrr] [encoding=qx]
- \definefontsynonym [Courier-Bold] [qcrb] [encoding=qx]
- \definefontsynonym [Courier-Oblique] [qcrri] [encoding=qx]
- \definefontsynonym [Courier-BoldOblique] [qcrbi] [encoding=qx]
-\stoptypescript
-
-% Helvetica (URW)
-
-\starttypescript [sans] [helvetica] [texnansi,ec,8r,t5]
- \definefontsynonym [Helvetica] [\typescriptthree-uhvr8a] [encoding=\typescriptthree]
- \definefontsynonym [Helvetica-Italic] [\typescriptthree-uhvri8a] [encoding=\typescriptthree]
- \definefontsynonym [Helvetica-Oblique] [\typescriptthree-uhvro8a] [encoding=\typescriptthree]
- \definefontsynonym [Helvetica-Bold] [\typescriptthree-uhvb8a] [encoding=\typescriptthree]
- \definefontsynonym [Helvetica-BoldItalic] [\typescriptthree-uhvbi8a] [encoding=\typescriptthree]
- \definefontsynonym [Helvetica-BoldOblique] [\typescriptthree-uhvbo8a] [encoding=\typescriptthree]
-\stoptypescript
-
-\starttypescript [sans] [helvetica] [qx] % narrow
- \definefontsynonym [Helvetica] [qhvr] [encoding=qx] % qhvcr
- \definefontsynonym [Helvetica-Italic] [qhvri] [encoding=qx] % qhvcri
- \definefontsynonym [Helvetica-Oblique] [qhvri] [encoding=qx] % qhvcri
- \definefontsynonym [Helvetica-Bold] [qhvb] [encoding=qx] % qhvcb
- \definefontsynonym [Helvetica-BoldItalic] [qhvbi] [encoding=qx] % qhvcbi
- \definefontsynonym [Helvetica-BoldOblique] [qhvbi] [encoding=qx] % qhvcbi
-\stoptypescript
-
-% Times Roman (URW)
-
-\starttypescript [serif] [times] [texnansi,ec,8r,t5]
- \definefontsynonym [Times-Roman] [\typescriptthree-utmr8a] [encoding=\typescriptthree]
- \definefontsynonym [Times-Italic] [\typescriptthree-utmri8a] [encoding=\typescriptthree]
- \definefontsynonym [Times-Bold] [\typescriptthree-utmb8a] [encoding=\typescriptthree]
- \definefontsynonym [Times-BoldItalic] [\typescriptthree-utmbi8a] [encoding=\typescriptthree]
-
- \definefontsynonym [Times-Slanted] [\typescriptthree-utmr8a-slanted-167] [encoding=\typescriptthree]
- \definefontsynonym [Times-BoldSlanted] [\typescriptthree-utmb8a-slanted-167] [encoding=\typescriptthree]
-
- \definefontsynonym [Times] [Times-Roman]
-\stoptypescript
-
-\starttypescript [serif] [times] [qx]
- \definefontsynonym [Times-Roman] [qtmr] [encoding=qx]
- \definefontsynonym [Times-Italic] [qtmri] [encoding=qx]
- \definefontsynonym [Times-Bold] [qtmb] [encoding=qx]
- \definefontsynonym [Times-BoldItalic] [qtmbi] [encoding=qx]
-
- \definefontsynonym [Times-Slanted] [Times-Italic]
- \definefontsynonym [Times-BoldSlanted] [Times-BoldItalic]
-
- \definefontsynonym [Times] [Times-Roman]
-\stoptypescript
-
-% Math Times (tx)
-
-\starttypescript [math] [times] [all]
- \definefontsynonym [Times-Roman-Upright] [txr]
- \definefontsynonym [Times-Roman-Italic] [txi]
- \definefontsynonym [Times-Roman-Slanted] [txsl]
- \definefontsynonym [Times-Roman-Caps] [txsc]
- \definefontsynonym [Times-Companion-Upright] [tcxr]
- \definefontsynonym [Times-Companion-Italic] [tcxi]
- \definefontsynonym [Times-Companion-Slanted] [tcxsl]
- \definefontsynonym [Times-Math-Italic] [txmi]
- \definefontsynonym [Times-Math-Symbols] [txsy]
- \definefontsynonym [Times-Math-Extension] [txex]
- \definefontsynonym [Times-Math-SymbolsA] [txsya]
- \definefontsynonym [Times-Math-SymbolsB] [txsyb]
- \definefontsynonym [Times-Math-SymbolsC] [txsyc]
- \definefontsynonym [Times-Math-Italic-A] [txmia]
- \definefontsynonym [Times-Math-Extension-A] [txexa]
-\stoptypescript
-
-% Antykwa Torunska (GUST)
-
-% \starttypescript [serif] [antykwa-torunska] [texnansi,ec,8r]
-% \definefontsynonym [AntykwaTorunska-Regular] [\typescriptthree-anttr] [encoding=\typescriptthree]
-% \definefontsynonym [AntykwaTorunska-Bold] [\typescriptthree-anttb] [encoding=\typescriptthree]
-% \definefontsynonym [AntykwaTorunska-Italic] [\typescriptthree-anttri] [encoding=\typescriptthree]
-% \stoptypescript
-
-\starttypescript [serif] [antykwa-torunska,antykwa-torunska-light,antykwa-torunska-cond,antykwa-torunska-lightcond] [texnansi,qx,t5,ec,t2a,t2b,t2c,greek]
- \definefontsynonym [AntykwaTorunska-Bold] [\typescriptthree-anttb] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-BoldItalic] [\typescriptthree-anttbi] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-Light] [\typescriptthree-anttl] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-LightItalic] [\typescriptthree-anttli] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-Medium] [\typescriptthree-anttm] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-MedItalic] [\typescriptthree-anttmi] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-Regular] [\typescriptthree-anttr] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-Italic] [\typescriptthree-anttri] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondBold] [\typescriptthree-anttcb] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondBoldItalic] [\typescriptthree-anttcbi] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondLight] [\typescriptthree-anttcl] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondLightItalic][\typescriptthree-anttcli] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondMedium] [\typescriptthree-anttcm] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondMedItalic] [\typescriptthree-anttcmi] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondRegular] [\typescriptthree-anttcr] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondItalic] [\typescriptthree-anttcri] [encoding=\typescriptthree]
-\stoptypescript
-
-\starttypescript [serif] [antykwa-torunska,antykwa-torunska-light,antykwa-torunska-cond,antykwa-torunska-lightcond] [texnansi,qx,t5,ec]
- \definefontsynonym [AntykwaTorunska-BoldCap] [\typescriptthree-anttbcap] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-BoldItalicCap] [\typescriptthree-anttbicap] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-LightCap] [\typescriptthree-anttlcap] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-LightItalicCap] [\typescriptthree-anttlicap] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-MediumCap] [\typescriptthree-anttmcap] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-MedItalicCap] [\typescriptthree-anttmicap] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-Cap] [\typescriptthree-anttrcap] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-ItalicCap] [\typescriptthree-anttricap] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondBoldCap] [\typescriptthree-anttcbcap] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondBoldItalicCap] [\typescriptthree-anttcbicap] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondLightCap] [\typescriptthree-anttclcap] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondLightItalicCap][\typescriptthree-anttclicap] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondMediumCap] [\typescriptthree-anttcmcap] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondMedItalicCap] [\typescriptthree-anttcmicap] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondCap] [\typescriptthree-anttcrcap] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondItalicCap] [\typescriptthree-anttcricap] [encoding=\typescriptthree]
-\stoptypescript
-
-% duplicates ? ?
-% atl: no: fallbacks for the named variants
-
-\starttypescript [serif] [antykwa-torunska,antykwa-torunska-light,antykwa-torunska-cond,antykwa-torunska-lightcond] [t2a,t2b,t2c,greek]
- \definefontsynonym [AntykwaTorunska-BoldCap] [\typescriptthree-anttb] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-BoldItalicCap] [\typescriptthree-anttbi] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-LightCap] [\typescriptthree-anttl] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-LightItalicCap] [\typescriptthree-anttli] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-MediumCap] [\typescriptthree-anttm] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-MedItalicCap] [\typescriptthree-anttmi] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-Cap] [\typescriptthree-anttr] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-ItalicCap] [\typescriptthree-anttri] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondBoldCap] [\typescriptthree-anttcb] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondBoldItalicCap] [\typescriptthree-anttcbi] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondLightCap] [\typescriptthree-anttcl] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondLightItalicCap][\typescriptthree-anttcli] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondMediumCap] [\typescriptthree-anttcm] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondMedItalicCap] [\typescriptthree-anttcmi] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondCap] [\typescriptthree-anttcr] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondItalicCap] [\typescriptthree-anttcri] [encoding=\typescriptthree]
-\stoptypescript
-
-\starttypescript [serif] [antykwa-torunska,antykwa-torunska-light,antykwa-torunska-cond,antykwa-torunska-lightcond] [t2a,t2b,t2c]
- \definefontsynonym [AntykwaTorunska-BoldCap] [\typescriptthree-anttb] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-BoldItalicCap] [\typescriptthree-anttbi] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-LightCap] [\typescriptthree-anttl] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-LightItalicCap] [\typescriptthree-anttli] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-MediumCap] [\typescriptthree-anttm] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-MedItalicCap] [\typescriptthree-anttmi] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-Cap] [\typescriptthree-anttr] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-ItalicCap] [\typescriptthree-anttri] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondBoldCap] [\typescriptthree-anttcb] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondBoldItalicCap] [\typescriptthree-anttcbi] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondLightCap] [\typescriptthree-anttcl] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondLightItalicCap][\typescriptthree-anttcli] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondMediumCap] [\typescriptthree-anttcm] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondMedItalicCap] [\typescriptthree-anttcmi] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondCap] [\typescriptthree-anttcr] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondItalicCap] [\typescriptthree-anttcri] [encoding=\typescriptthree]
-\stoptypescript
-
-% mabye no -Regular etc
-% dunny reverse of condlight lightcond
-
-\starttypescript [math] [antykwa-torunska] [default]
- \definefontsynonym [AntykwaTorunska-Math-Letters-Regular] [rm-anttr]
- \definefontsynonym [AntykwaTorunska-Math-Letters-RegularItalic] [mi-anttri]
- \definefontsynonym [AntykwaTorunska-Math-Symbols-Regular] [sy-anttrz]
- \definefontsynonym [AntykwaTorunska-Math-Extension-Regular] [ex-anttr]
-\stoptypescript
-
-\starttypescript [math] [antykwa-torunska-light] [default]
- \definefontsynonym [AntykwaTorunska-Math-Letters-Light] [rm-anttl]
- \definefontsynonym [AntykwaTorunska-Math-Letters-LightItalic] [mi-anttli]
- \definefontsynonym [AntykwaTorunska-Math-Symbols-Light] [sy-anttlz]
- \definefontsynonym [AntykwaTorunska-Math-Extension-Light] [ex-anttl]
-\stoptypescript
-
-\starttypescript [math] [antykwa-torunska-cond] [default]
- \definefontsynonym [AntykwaTorunska-Math-Letters-CondRegular] [rm-anttcr]
- \definefontsynonym [AntykwaTorunska-Math-Letters-CondRegularItalic] [mi-anttcri]
- \definefontsynonym [AntykwaTorunska-Math-Symbols-CondRegular] [sy-anttcrz]
- \definefontsynonym [AntykwaTorunska-Math-Extension-CondRegular] [ex-anttcr]
-\stoptypescript
-
-\starttypescript [math] [antykwa-torunska-lightcond] [default]
- \definefontsynonym [AntykwaTorunska-Math-Letters-CondLight] [rm-anttcl]
- \definefontsynonym [AntykwaTorunska-Math-Letters-CondLightItalic] [mi-anttcli]
- \definefontsynonym [AntykwaTorunska-Math-Symbols-CondLight] [sy-anttclz]
- \definefontsynonym [AntykwaTorunska-Math-Extension-CondLight] [ex-anttcl]
-\stoptypescript
-
-% Antykwa Poltawskiego (GUST)
-
-\starttypescript [serif] [antykwa-poltawskiego] [texnansi,ec,8r]
- \definefontsynonym [AntykwaPoltawskiego-Regular] [\typescriptthree-antpr] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-Bold] [\typescriptthree-antpb] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-Italic] [\typescriptthree-antpri] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-BoldItalic] [\typescriptthree-antpbi] [encoding=\typescriptthree]
-\stoptypescript
-
-% Iwona (JMN)
-
-% maybe this will change in Iwona-Math-Letters and Iwona-Math-Letters-Italic
-
-\starttypescript [sans] [iwona-light,iwona,iwona-medium,iwona-heavy,iwona-light-cond,iwona-cond,iwona-medium-cond,iwona-heavy-cond] [texnansi,ec,el,qx,t5]
- \definefontsynonym[Iwona-Light] [\typescriptthree-iwonal] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-Regular] [\typescriptthree-iwonar] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-Medium] [\typescriptthree-iwonam] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-Bold] [\typescriptthree-iwonab] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-Heavy] [\typescriptthree-iwonah] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-LightItalic] [\typescriptthree-iwonali] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-RegularItalic] [\typescriptthree-iwonari] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-MediumItalic] [\typescriptthree-iwonami] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-BoldItalic] [\typescriptthree-iwonabi] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-HeavyItalic] [\typescriptthree-iwonahi] [encoding=\typescriptthree]
-
- \definefontsynonym[Iwona-CapsLight] [\typescriptthree-iwonalcap] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CapsRegular] [\typescriptthree-iwonarcap] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CapsMedium] [\typescriptthree-iwonamcap] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CapsBold] [\typescriptthree-iwonabcap] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CapsHeavy] [\typescriptthree-iwonahcap] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CapsLightItalic] [\typescriptthree-iwonalicap] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CapsRegularItalic] [\typescriptthree-iwonaricap] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CapsMediumItalic] [\typescriptthree-iwonamicap] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CapsBoldItalic] [\typescriptthree-iwonabicap] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CapsHeavyItalic] [\typescriptthree-iwonahicap] [encoding=\typescriptthree]
-
- \definefontsynonym[Iwona-CondLight] [\typescriptthree-iwonacl] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CondRegular] [\typescriptthree-iwonacr] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CondMedium] [\typescriptthree-iwonacm] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CondBold] [\typescriptthree-iwonacb] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CondHeavy] [\typescriptthree-iwonach] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CondLightItalic] [\typescriptthree-iwonacli] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CondRegularItalic] [\typescriptthree-iwonacri] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CondMediumItalic] [\typescriptthree-iwonacmi] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CondBoldItalic] [\typescriptthree-iwonacbi] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CondHeavyItalic] [\typescriptthree-iwonachi] [encoding=\typescriptthree]
-
- \definefontsynonym[Iwona-CondCapsLight] [\typescriptthree-iwonaclcap] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CondCapsRegular] [\typescriptthree-iwonacrcap] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CondCapsMedium] [\typescriptthree-iwonacmcap] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CondCapsBold] [\typescriptthree-iwonacbcap] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CondCapsHeavy] [\typescriptthree-iwonachcap] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CondCapsLightItalic] [\typescriptthree-iwonaclicap] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CondCapsRegularItalic] [\typescriptthree-iwonacricap] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CondCapsMediumItalic] [\typescriptthree-iwonacmicap] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CondCapsBoldItalic] [\typescriptthree-iwonacbicap] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CondCapsHeavyItalic] [\typescriptthree-iwonachicap] [encoding=\typescriptthree]
-\stoptypescript
-
-\starttypescript [math] [iwona] [default]
- \definefontsynonym [Iwona-Math-Letters-Regular] [rm-iwonar]
- \definefontsynonym [Iwona-Math-Letters-RegularItalic] [mi-iwonari]
- \definefontsynonym [Iwona-Math-Symbols-Regular] [sy-iwonarz]
- \definefontsynonym [Iwona-Math-Extension-Regular] [ex-iwonar]
-\stoptypescript
-
-\starttypescript [math] [iwona-light] [default]
- \definefontsynonym [Iwona-Math-Letters-Light] [rm-iwonal]
- \definefontsynonym [Iwona-Math-Letters-LightItalic] [mi-iwonali]
- \definefontsynonym [Iwona-Math-Symbols-Light] [sy-iwonalz]
- \definefontsynonym [Iwona-Math-Extension-Light] [ex-iwonal]
-\stoptypescript
-
-\starttypescript [math] [iwona-medium] [default]
- \definefontsynonym [Iwona-Math-Letters-Medium] [rm-iwonam]
- \definefontsynonym [Iwona-Math-Letters-MediumItalic] [mi-iwonami]
- \definefontsynonym [Iwona-Math-Symbols-Medium] [sy-iwonamz]
- \definefontsynonym [Iwona-Math-Extension-Medium] [ex-iwonam]
-\stoptypescript
-
-\starttypescript [math] [iwona-heavy] [default]
- \definefontsynonym [Iwona-Math-Letters-Heavy] [rm-iwonah]
- \definefontsynonym [Iwona-Math-Letters-HeavyItalic] [mi-iwonahi]
- \definefontsynonym [Iwona-Math-Symbols-Heavy] [sy-iwonahz]
- \definefontsynonym [Iwona-Math-Extension-Heavy] [ex-iwonah]
-\stoptypescript
-
-% Kurier (JMN)
-
-\starttypescript [sans] [kurier-light,kurier,kurier-medium] [texnansi,ec,qx,t5]
- \definefontsynonym[Kurier-Light] [\typescriptthree-kurierl] [encoding=\typescriptthree]
- \definefontsynonym[Kurier-Regular] [\typescriptthree-kurierr] [encoding=\typescriptthree]
- \definefontsynonym[Kurier-Medium] [\typescriptthree-kurierm] [encoding=\typescriptthree]
- \definefontsynonym[Kurier-Bold] [\typescriptthree-kurierb] [encoding=\typescriptthree]
- \definefontsynonym[Kurier-Heavy] [\typescriptthree-kurierh] [encoding=\typescriptthree]
- \definefontsynonym[Kurier-LightItalic] [\typescriptthree-kurierli] [encoding=\typescriptthree]
- \definefontsynonym[Kurier-RegularItalic] [\typescriptthree-kurierri] [encoding=\typescriptthree]
- \definefontsynonym[Kurier-MediumItalic] [\typescriptthree-kuriermi] [encoding=\typescriptthree]
- \definefontsynonym[Kurier-BoldItalic] [\typescriptthree-kurierbi] [encoding=\typescriptthree]
- \definefontsynonym[Kurier-HeavyItalic] [\typescriptthree-kurierhi] [encoding=\typescriptthree]
-\stoptypescript
-
-\starttypescript [math] [kurier] [default]
- \definefontsynonym [Kurier-Math-Letters-Regular] [rm-kurierr]
- \definefontsynonym [Kurier-Math-Letters-RegularItalic] [mi-kurierri]
- \definefontsynonym [Kurier-Math-Symbols-Regular] [sy-kurierrz]
- \definefontsynonym [Kurier-Math-Extension-Regular] [ex-kurierr]
-\stoptypescript
-
-\starttypescript [math] [kurier-light] [default]
- \definefontsynonym [Kurier-Math-Letters-Light] [rm-kurierl]
- \definefontsynonym [Kurier-Math-Letters-LightItalic] [mi-kurierli]
- \definefontsynonym [Kurier-Math-Symbols-Light] [sy-kurierlz]
- \definefontsynonym [Kurier-Math-Extension-Light] [ex-kurierl]
-\stoptypescript
-
-\starttypescript [math] [kurier-medium] [default]
- \definefontsynonym [Kurier-Math-Letters-Medium] [rm-kurierm]
- \definefontsynonym [Kurier-Math-Letters-MediumItalic] [mi-kuriermi]
- \definefontsynonym [Kurier-Math-Symbols-Medium] [sy-kuriermz]
- \definefontsynonym [Kurier-Math-Extension-medium] [ex-kurierm]
-\stoptypescript
-
-% Palatino (URW)
-
-\starttypescript [serif] [palatino] [texnansi,ec,8r,t5]
- \definefontsynonym [Palatino] [\typescriptthree-uplr8a] [encoding=\typescriptthree]
- \definefontsynonym [Palatino-Italic] [\typescriptthree-uplri8a] [encoding=\typescriptthree]
- \definefontsynonym [Palatino-Bold] [\typescriptthree-uplb8a] [encoding=\typescriptthree]
- \definefontsynonym [Palatino-BoldItalic] [\typescriptthree-uplbi8a] [encoding=\typescriptthree]
-
- \definefontsynonym [Palatino-Slanted] [\typescriptthree-uplr8a-slanted-167] [encoding=\typescriptthree]
- \definefontsynonym [Palatino-BoldSlanted] [\typescriptthree-uplb8a-slanted-167] [encoding=\typescriptthree]
- \definefontsynonym [Palatino-Caps] [\typescriptthree-uplr8a-capitalized-800] [encoding=\typescriptthree]
-\stoptypescript
-
-\starttypescript [serif] [palatino] [qx]
- \definefontsynonym [Palatino] [qplr] [encoding=qx]
- \definefontsynonym [Palatino-Italic] [qplri] [encoding=qx]
- \definefontsynonym [Palatino-Bold] [qplb] [encoding=qx]
- \definefontsynonym [Palatino-BoldItalic] [qplbi] [encoding=qx]
-
- \definefontsynonym [Palatino-Slanted] [Palatino-Italic]
- \definefontsynonym [Palatino-BoldSlanted] [Palatino-BoldItalic]
- \definefontsynonym [Palatino-Caps] [Palatino]
-\stoptypescript
-
-% bonus definitions
-
-% when these fonts are in tex live ...
-%
-% \definefontsynonym [Palatino-Caps] [TeXPalladioL-SC] [encoding=\typescriptthree]
-
-\starttypescript [serif] [palatino] [ec,texnansi,8r]
-
- \definefontsynonym[TeXPalladioL-BoldItalicOsF][\typescriptthree-fplbij8a][encoding=\typescriptthree]
- \definefontsynonym[TeXPalladioL-BoldOsF] [\typescriptthree-fplbj8a] [encoding=\typescriptthree]
- \definefontsynonym[TeXPalladioL-SC] [\typescriptthree-fplrc8a] [encoding=\typescriptthree]
- \definefontsynonym[TeXPalladioL-ItalicOsF] [\typescriptthree-fplrij8a][encoding=\typescriptthree]
-
-\stoptypescript
-
-% Palatino Math (PX)
-
-\starttypescript [math] [palatino] [all]
- \definefontsynonym [Palatino-Roman-Upright] [pxr]
- \definefontsynonym [Palatino-Roman-Italic] [pxi]
- \definefontsynonym [Palatino-Roman-Slanted] [pxsl]
- \definefontsynonym [Palatino-Roman-Caps] [pxsc]
- \definefontsynonym [Palatino-Companion-Upright] [pcxr]
- \definefontsynonym [Palatino-Companion-Italic] [pcxi]
- \definefontsynonym [Palatino-Companion-Slanted] [pcxsl]
- \definefontsynonym [Palatino-Math-Italic] [pxmi]
- \definefontsynonym [Palatino-Math-Symbols] [pxsy]
- \definefontsynonym [Palatino-Math-Extension] [pxex]
- \definefontsynonym [Palatino-Math-SymbolsA] [pxsya]
- \definefontsynonym [Palatino-Math-SymbolsB] [pxsyb]
- \definefontsynonym [Palatino-Math-SymbolsC] [pxsyc]
- \definefontsynonym [Palatino-Math-Italic-A] [pxmia]
- \definefontsynonym [Palatino-Math-Extension-A] [pxexa]
-\stoptypescript
-
-% Bookman (URW)
-
-\starttypescript [serif] [bookman] [ec,texnansi,8r,t5]
- \definefontsynonym [Bookman-Light] [\typescriptthree-ubkl8a] [encoding=\typescriptthree]
- \definefontsynonym [Bookman-LightItalic] [\typescriptthree-ubkli8a] [encoding=\typescriptthree]
- \definefontsynonym [Bookman-DemiBold] [\typescriptthree-ubkd8a] [encoding=\typescriptthree]
- \definefontsynonym [Bookman-DemiBoldItalic] [\typescriptthree-ubkdi8a] [encoding=\typescriptthree]
- \definefontsynonym [Bookman-LightSlanted] [\typescriptthree-ubkl8a-slanted-167] [encoding=\typescriptthree]
- \definefontsynonym [Bookman-DemiBoldSlanted] [\typescriptthree-ubkd8a-slanted-167] [encoding=\typescriptthree]
- \definefontsynonym [Bookman-Light-Caps] [\typescriptthree-ubkl8a-capitalized-800] [encoding=\typescriptthree]
-\stoptypescript
-
-\starttypescript [serif] [bookman] [qx]
- \definefontsynonym [Bookman-Light] [qbkr] [encoding=qx]
- \definefontsynonym [Bookman-LightItalic] [qbkri] [encoding=qx]
- \definefontsynonym [Bookman-DemiBold] [qbkb] [encoding=qx]
- \definefontsynonym [Bookman-DemiBoldItalic] [qbkbi] [encoding=qx]
-
- \definefontsynonym [Bookman-LightSlanted] [Bookman-LightItalic]
- \definefontsynonym [Bookman-DemiBoldSlanted] [Bookman-DemiBoldItalic]
- \definefontsynonym [Bookman-Light-Caps] [Bookman-Light]
-\stoptypescript
-
-% Chancery (URW)
-
-\starttypescript [calligraphy] [chancery] [ec,texnansi,8r]
- \definefontsynonym [Chancery] [\typescriptthree-uzcmi8a] [encoding=\typescriptthree]
-\stoptypescript
-
-\starttypescript [calligraphy] [chancery] [qx]
- \definefontsynonym [Chancery] [qzcmi] [encoding=qx]
-\stoptypescript
-
-% New Century Schoolbook (URW)
-
-\starttypescript [serif] [schoolbook] [ec,texnansi,8r,t5]
- \definefontsynonym [Schoolbook-Roman] [\typescriptthree-uncr8a] [encoding=\typescriptthree]
- \definefontsynonym [Schoolbook-Italic] [\typescriptthree-uncri8a] [encoding=\typescriptthree]
- \definefontsynonym [Schoolbook-Bold] [\typescriptthree-uncb8a] [encoding=\typescriptthree]
- \definefontsynonym [Schoolbook-BoldItalic] [\typescriptthree-uncbi8a] [encoding=\typescriptthree]
- \definefontsynonym [Schoolbook-RomanSlanted] [\typescriptthree-uncr8a-slanted-167] [encoding=\typescriptthree]
- \definefontsynonym [Schoolbook-BoldSlanted] [\typescriptthree-uncb8a-slanted-167] [encoding=\typescriptthree]
- \definefontsynonym [Schoolbook-Roman-Caps] [\typescriptthree-uncr8a-capitalized-800] [encoding=\typescriptthree]
-\stoptypescript
-
-% Utopia (Adobe)
-
-\starttypescript [serif] [utopia] [ec,texnansi]
- \definefontsynonym [Utopia-Regular] [\typescriptthree-putr8a] [encoding=\typescriptthree]
- \definefontsynonym [Utopia-Italic] [\typescriptthree-putri8a] [encoding=\typescriptthree]
- \definefontsynonym [Utopia-Bold] [\typescriptthree-putb8a] [encoding=\typescriptthree]
- \definefontsynonym [Utopia-BoldItalic] [\typescriptthree-putbi8a] [encoding=\typescriptthree]
- \definefontsynonym [Utopia-Slanted] [\typescriptthree-putr8a-slanted-167] [encoding=\typescriptthree]
- \definefontsynonym [Utopia-BoldSlanted] [\typescriptthree-putb8a-slanted-167] [encoding=\typescriptthree]
- \definefontsynonym [Utopia-Regular-Caps][\typescriptthree-putr8a-capitalized-800] [encoding=\typescriptthree]
-\stoptypescript
-
-% Charter (Bitstream)
-
-\starttypescript [serif] [charter] [ec,texnansi,8r]
- \definefontsynonym [Charter-Roman] [\typescriptthree-bchr8a] [encoding=\typescriptthree]
- \definefontsynonym [Charter-Italic] [\typescriptthree-bchri8a] [encoding=\typescriptthree]
- \definefontsynonym [Charter-Bold] [\typescriptthree-bchb8a] [encoding=\typescriptthree]
- \definefontsynonym [Charter-BoldItalic] [\typescriptthree-bchbi8a] [encoding=\typescriptthree]
- \definefontsynonym [Charter-Slanted] [\typescriptthree-bchr8a-slanted-167] [encoding=\typescriptthree]
- \definefontsynonym [Charter-BoldSlanted][\typescriptthree-bchb8a-slanted-167] [encoding=\typescriptthree]
- \definefontsynonym [Charter-Roman-Caps] [\typescriptthree-bchr8a-capitalized-800] [encoding=\typescriptthree]
-\stoptypescript
-
-% Whatever else we need:
-
-\starttypescript
- \definefontsynonym [ZapfDingbats] [uzdr]
- \definefontsynonym [RalfSmithFormalScript] [rsfs10]
- \definefontsynonym [MartinVogel] [fmvr8x]
-\stoptypescript
-
-\stoptypescriptcollection
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/type-exa.tex b/Master/texmf-dist/tex/context/base/type-exa.tex
deleted file mode 100644
index 29f882f0272..00000000000
--- a/Master/texmf-dist/tex/context/base/type-exa.tex
+++ /dev/null
@@ -1,27 +0,0 @@
-%D \module
-%D [ file=type-exa,
-%D version=2001.04.12,
-%D title=\CONTEXT\ Typescript Macros,
-%D subtitle=Example scripts,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D The examples are moved to \type {type-one}, \type {type-otf} and
-%D \type {type-buy}.
-
-\starttypescript [fallback,modern,modern-base] [il2]
- \usetypescript[\typescriptone][ec]
- \enableregime[il2]
-\stoptypescript
-
-\starttypescript [fallback,modern,modern-base] [pl0]
- \usetypescript[\typescriptone][qx]
- \enableregime[pl0]
-\stoptypescript
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/type-exp.tex b/Master/texmf-dist/tex/context/base/type-exp.tex
index 432685a034c..dae770e98c0 100644
--- a/Master/texmf-dist/tex/context/base/type-exp.tex
+++ b/Master/texmf-dist/tex/context/base/type-exp.tex
@@ -72,7 +72,7 @@
\definetypeface[palatino-normal][ss][sans] [palatino-sans-normal] [default][encoding=\typescripttwo]
\definetypeface[palatino-normal][rm][serif][palatino-nova] [default][encoding=\typescripttwo]
\definetypeface[palatino-normal][tt][mono] [latin-modern] [default][encoding=\typescripttwo,rscale=1.1]
- \definetypeface[palatino-normal][mm][mono] [latin-modern] [default][encoding=\typescripttwo,rscale=1.1]
+ \definetypeface[palatino-normal][mm][math] [latin-modern] [default][encoding=\typescripttwo,rscale=1.1]
\quittypescriptscanning
\stoptypescript
@@ -80,7 +80,7 @@
\definetypeface[palatino-medium][ss][sans] [palatino-sans-medium] [default][encoding=\typescripttwo]
\definetypeface[palatino-medium][rm][serif][palatino-nova] [default][encoding=\typescripttwo]
\definetypeface[palatino-medium][tt][mono] [latin-modern] [default][encoding=\typescripttwo,rscale=1.1]
- \definetypeface[palatino-medium][mm][mono] [latin-modern] [default][encoding=\typescripttwo,rscale=1.1]
+ \definetypeface[palatino-medium][mm][math] [latin-modern] [default][encoding=\typescripttwo,rscale=1.1]
\quittypescriptscanning
\stoptypescript
@@ -88,7 +88,7 @@
\definetypeface[palatino-light][ss][sans] [palatino-sans-light] [default][encoding=\typescripttwo]
\definetypeface[palatino-light][rm][serif][palatino-nova] [default][encoding=\typescripttwo]
\definetypeface[palatino-light][tt][mono] [latin-modern] [default][encoding=\typescripttwo,rscale=1.1]
- \definetypeface[palatino-light][mm][mono] [latin-modern] [default][encoding=\typescripttwo,rscale=1.1]
+ \definetypeface[palatino-light][mm][math] [latin-modern] [default][encoding=\typescripttwo,rscale=1.1]
\quittypescriptscanning
\stoptypescript
diff --git a/Master/texmf-dist/tex/context/base/type-ghz.tex b/Master/texmf-dist/tex/context/base/type-ghz.tex
index 52de82043f3..7e31096ee4a 100644
--- a/Master/texmf-dist/tex/context/base/type-ghz.tex
+++ b/Master/texmf-dist/tex/context/base/type-ghz.tex
@@ -207,7 +207,7 @@
\definetypeface[optima][ss][sans][optima-nova] [default][encoding=\typescripttwo]
\definetypeface[optima][rm][sans][optima-nova] [default][encoding=\typescripttwo]
\definetypeface[optima][tt][mono][latin-modern][default][encoding=\typescripttwo,rscale=1.1]
- \definetypeface[optima][mm][mono][latin-modern][default][encoding=\typescripttwo,rscale=1.1]
+ \definetypeface[optima][mm][math][latin-modern][default][encoding=\typescripttwo,rscale=1.1]
\quittypescriptscanning
\stoptypescript
@@ -215,7 +215,7 @@
\definetypeface[optima-os][ss][sans][optima-nova-os] [default][encoding=\typescripttwo]
\definetypeface[optima-os][rm][sans][optima-nova-os] [default][encoding=\typescripttwo]
\definetypeface[optima-os][tt][mono][latin-modern] [default][encoding=\typescripttwo,rscale=1.1]
- \definetypeface[optima-os][mm][mono][latin-modern] [default][encoding=\typescripttwo,rscale=1.1]
+ \definetypeface[optima-os][mm][math][latin-modern] [default][encoding=\typescripttwo,rscale=1.1]
\quittypescriptscanning
\stoptypescript
diff --git a/Master/texmf-dist/tex/context/base/type-gyr.tex b/Master/texmf-dist/tex/context/base/type-gyr.tex
deleted file mode 100644
index 80b391f771e..00000000000
--- a/Master/texmf-dist/tex/context/base/type-gyr.tex
+++ /dev/null
@@ -1,250 +0,0 @@
-%D \module
-%D [ file=type-gyr,
-%D version=2006.06.28,
-%D title=\CONTEXT\ Typescript Macros,
-%D subtitle=TeXGyre Collection,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright=PRAGMA]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% \beginNEWTEX already-otf-gyre
-% \endinput
-% \endNEWTEX
-
-%D These definitions will eventually replace the ones in \type {type-one}!
-
-% \usetypescriptfile[type-gyr]
-% \definetypeface[pagella][rm][serif][pagella][default][encoding=t5]
-% \setupbodyfont[pagella]
-% \starttext
-% \startlines
-% hello world 123
-% {hello \Var[sc] world 123}
-% {\it hello \Var[sc]world \Var[reset] 123}
-% {\bf hello \Var[osf] {\Var[reset] world} 123}
-% {\bi hello world \Var[osf]123}
-% {\sc hello \Var[sc] world \Var[reset] 123}
-% \stoplines
-% \showfont[SerifItalicCaps]
-% \stoptext
-
-% Beware, because tetex demanded a different map file naming scheme, we ship
-% alternatively named files as well, just to make sure that older installations
-% still work (where users may load their own instances). In due time we will
-% follow that scheme (well, in due time we will drop map files anyway).
-
-\starttypescriptcollection[gyre]
-
-%D First we define the new ones. Watch how we use the systematic name composition.
-
-\definetypescriptprefix [n:pagella] [TeXGyrePagella]
-\definetypescriptprefix [n:termes] [TeXGyreTermes]
-\definetypescriptprefix [n:heros] [TeXGyreHeros]
-\definetypescriptprefix [n:bonum] [TeXGyreBonum]
-\definetypescriptprefix [n:schola] [TeXGyreSchola]
-\definetypescriptprefix [n:adventor][TeXGyreAdventor]
-
-\definetypescriptprefix [f:pagella] [pl]
-\definetypescriptprefix [f:termes] [tm]
-\definetypescriptprefix [f:heros] [hv]
-\definetypescriptprefix [f:bonum] [bk]
-\definetypescriptprefix [f:schola] [cs]
-\definetypescriptprefix [f:adventor][ag]
-
-\starttypescript [serif] [pagella,termes,heros,bonum,schola,adventor] [ec,texnansi,cs,el,qx,rm,t5,t2a,t2b,t2c,l7x]
- \definefontsynonym [\typescriptprefix{n:\typescripttwo}-Regular] [\typescriptthree-q\typescriptprefix{f:\typescripttwo}r] [encoding=\typescriptthree]
- \definefontsynonym [\typescriptprefix{n:\typescripttwo}-Italic] [\typescriptthree-q\typescriptprefix{f:\typescripttwo}ri] [encoding=\typescriptthree]
- \definefontsynonym [\typescriptprefix{n:\typescripttwo}-Bold] [\typescriptthree-q\typescriptprefix{f:\typescripttwo}b] [encoding=\typescriptthree]
- \definefontsynonym [\typescriptprefix{n:\typescripttwo}-BoldItalic] [\typescriptthree-q\typescriptprefix{f:\typescripttwo}bi] [encoding=\typescriptthree]
-
- \definefontsynonym [\typescriptprefix{n:\typescripttwo}-Caps] [\typescriptthree-q\typescriptprefix{f:\typescripttwo}r-sc] [encoding=\typescriptthree]
- \definefontsynonym [\typescriptprefix{n:\typescripttwo}-ItalicCaps] [\typescriptthree-q\typescriptprefix{f:\typescripttwo}ri-sc] [encoding=\typescriptthree]
- \definefontsynonym [\typescriptprefix{n:\typescripttwo}-BoldCaps] [\typescriptthree-q\typescriptprefix{f:\typescripttwo}b-sc] [encoding=\typescriptthree]
- \definefontsynonym [\typescriptprefix{n:\typescripttwo}-BoldItalicCaps] [\typescriptthree-q\typescriptprefix{f:\typescripttwo}bi-sc] [encoding=\typescriptthree]
-
- \definefontsynonym [\typescriptprefix{n:\typescripttwo}-Slanted] [\typescriptprefix{n:\typescripttwo}-Italic]
- \definefontsynonym [\typescriptprefix{n:\typescripttwo}-BoldSlanted] [\typescriptprefix{n:\typescripttwo}-BoldItalic]
-
- \loadmapfile[q\typescriptprefix{f:\typescripttwo}-\typescriptthree.map]
-\stoptypescript
-
-\starttypescript [serif] [pagella,termes,bonum,schola] [name]
- \definefontsynonym [Serif] [\typescriptprefix{n:\typescripttwo}-Regular]
- \definefontsynonym [SerifItalic] [\typescriptprefix{n:\typescripttwo}-Italic]
- \definefontsynonym [SerifBold] [\typescriptprefix{n:\typescripttwo}-Bold]
- \definefontsynonym [SerifBoldItalic] [\typescriptprefix{n:\typescripttwo}-BoldItalic]
- \definefontsynonym [SerifCaps] [\typescriptprefix{n:\typescripttwo}-Caps]
- \definefontsynonym [SerifSlanted] [\typescriptprefix{n:\typescripttwo}-Slanted]
- \definefontsynonym [SerifBoldSlanted] [\typescriptprefix{n:\typescripttwo}-BoldSlanted]
-
- \definefontvariant [Serif][osf][Caps]
- \definefontvariant [Serif][sc] [Caps]
-
- \definefontsynonym [SerifRegular] [\typescriptprefix{n:\typescripttwo}-Regular]
- \definefontsynonym [SerifRegularCaps] [\typescriptprefix{n:\typescripttwo}-Caps]
- \definefontsynonym [SerifItalicCaps] [\typescriptprefix{n:\typescripttwo}-ItalicCaps]
- \definefontsynonym [SerifBoldCaps] [\typescriptprefix{n:\typescripttwo}-BoldCaps]
- \definefontsynonym [SerifBoldItalicCaps] [\typescriptprefix{n:\typescripttwo}-BoldItalicCaps]
- \definefontsynonym [SerifCapsCaps] [\typescriptprefix{n:\typescripttwo}-Caps]
- \definefontsynonym [SerifSlantedCaps] [\typescriptprefix{n:\typescripttwo}-ItalicCaps]
- \definefontsynonym [SerifBoldSlantedCaps] [\typescriptprefix{n:\typescripttwo}-BoldItalicCaps]
-\stoptypescript
-
-\starttypescript [sans] [heros,adventor] [name]
- \definefontsynonym [Sans] [\typescriptprefix{n:\typescripttwo}-Regular]
- \definefontsynonym [SansItalic] [\typescriptprefix{n:\typescripttwo}-Italic]
- \definefontsynonym [SansBold] [\typescriptprefix{n:\typescripttwo}-Bold]
- \definefontsynonym [SansBoldItalic] [\typescriptprefix{n:\typescripttwo}-BoldItalic]
- \definefontsynonym [SansCaps] [\typescriptprefix{n:\typescripttwo}-Caps]
- \definefontsynonym [SansSlanted] [\typescriptprefix{n:\typescripttwo}-Slanted]
- \definefontsynonym [SansBoldSlanted] [\typescriptprefix{n:\typescripttwo}-BoldSlanted]
-
- \definefontvariant [Sans][osf][Caps]
- \definefontvariant [Sans][sc] [Caps]
-
- \definefontsynonym [SansRegular] [\typescriptprefix{n:\typescripttwo}-Regular]
- \definefontsynonym [SansRegularCaps] [\typescriptprefix{n:\typescripttwo}-Caps]
- \definefontsynonym [SansItalicCaps] [\typescriptprefix{n:\typescripttwo}-ItalicCaps]
- \definefontsynonym [SansBoldCaps] [\typescriptprefix{n:\typescripttwo}-BoldCaps]
- \definefontsynonym [SansBoldItalicCaps] [\typescriptprefix{n:\typescripttwo}-BoldItalicCaps]
- \definefontsynonym [SansCapsCaps] [\typescriptprefix{n:\typescripttwo}-Caps]
- \definefontsynonym [SansSlantedCaps] [\typescriptprefix{n:\typescripttwo}-ItalicCaps]
- \definefontsynonym [SansBoldSlantedCaps] [\typescriptprefix{n:\typescripttwo}-BoldItalicCaps]
-\stoptypescript
-
-%D Here we overload the older (URW) fonts.
-
-% TeXGyrePagella
-%
-% qplr TeXGyrePagella-Regular
-% qplri TeXGyrePagella-Italic
-% qplb TeXGyrePagella-Bold
-% qplbi TeXGyrePagella-BoldItalic
-
-\starttypescript [serif] [palatino] [ec,texnansi,cs,el,qx,rm,t5,t2a,t2b,t2c,l7x]
- \definefontsynonym [Palatino] [\typescriptthree-qplr] [encoding=\typescriptthree]
- \definefontsynonym [Palatino-Italic] [\typescriptthree-qplri] [encoding=\typescriptthree]
- \definefontsynonym [Palatino-Bold] [\typescriptthree-qplb] [encoding=\typescriptthree]
- \definefontsynonym [Palatino-BoldItalic] [\typescriptthree-qplbi] [encoding=\typescriptthree]
- \definefontsynonym [Palatino-Caps] [\typescriptthree-qplr-sc] [encoding=\typescriptthree]
-
- \definefontsynonym [Palatino-Slanted] [Palatino-Italic]
- \definefontsynonym [Palatino-BoldSlanted] [Palatino-BoldItalic]
-
- \loadmapfile[qpl-\typescriptthree.map]
- \unloadmapfile[\typescriptthree-urw-palatino.map]
-\stoptypescript
-
-% TeXGyreTermes
-%
-% qtmr TeXGyreTermes-Regular
-% qtmri TeXGyreTermes-Italic
-% qtmb TeXGyreTermes-Bold
-% qtmbi TeXGyreTermes-BoldItalic
-
-\starttypescript [serif] [times] [ec,texnansi,cs,el,qx,rm,t5,t2a,t2b,t2c,l7x]
- \definefontsynonym [Times-Roman] [\typescriptthree-qtmr] [encoding=\typescriptthree]
- \definefontsynonym [Times-Italic] [\typescriptthree-qtmri] [encoding=\typescriptthree]
- \definefontsynonym [Times-Bold] [\typescriptthree-qtmb] [encoding=\typescriptthree]
- \definefontsynonym [Times-BoldItalic] [\typescriptthree-qtmbi] [encoding=\typescriptthree]
- \definefontsynonym [Times-Caps] [\typescriptthree-qtmr-sc] [encoding=\typescriptthree]
-
- \definefontsynonym [Times-Slanted] [Times-Italic]
- \definefontsynonym [Times-BoldSlanted] [Times-BoldItalic]
-
- \loadmapfile[qtm-\typescriptthree.map]
- \unloadmapfile[\typescriptthree-urw-times.map]
-\stoptypescript
-
-% TeXGyreHeros
-%
-% qtmr TeXGyreHeros-Regular
-% qtmri TeXGyreHeros-Italic
-% qtmb TeXGyreHeros-Bold
-% qtmbi TeXGyreHeros-BoldItalic
-
-\starttypescript [sans] [heros,helvetica] [ec,texnansi,cs,el,qx,rm,t5,t2a,t2b,t2c,l7x]
- \definefontsynonym [Helvetica] [\typescriptthree-qhvr] [encoding=\typescriptthree]
- \definefontsynonym [Helvetica-Oblique] [\typescriptthree-qhvri] [encoding=\typescriptthree]
- \definefontsynonym [Helvetica-Bold] [\typescriptthree-qhvb] [encoding=\typescriptthree]
- \definefontsynonym [Helvetica-BoldOblique] [\typescriptthree-qhvbi] [encoding=\typescriptthree]
- \definefontsynonym [Helvetica-Caps] [\typescriptthree-qhvr-sc] [encoding=\typescriptthree]
-
- \loadmapfile[qhv-\typescriptthree.map]
- \unloadmapfile[\typescriptthree-urw-helvetica.map]
-\stoptypescript
-
-% TeXGyreCursor
-%
-% qcrr TeXGyreCursor-Regular
-% qcrri TeXGyreCursor-Italic
-% qcrb TeXGyreCursor-Bold
-% qcrbi TeXGyreCursor-BoldItalic
-
-\starttypescript [mono] [cursor,courier] [ec,texnansi,cs,el,qx,rm,t5,t2a,t2b,t2c,l7x]
- \definefontsynonym [Courier] [\typescriptthree-qcrr] [encoding=\typescriptthree]
- \definefontsynonym [Courier-Bold] [\typescriptthree-qcrri] [encoding=\typescriptthree]
- \definefontsynonym [Courier-Oblique] [\typescriptthree-qcrb] [encoding=\typescriptthree]
- \definefontsynonym [Courier-BoldOblique] [\typescriptthree-qcrbi] [encoding=\typescriptthree]
- \fakecontrolspace
-
- \loadmapfile[qcr-\typescriptthree.map]
- \unloadmapfile[\typescriptthree-urw-courier.map]
-\stoptypescript
-
-% TeXGyreBonum
-%
-% qtmr TeXGyreBonum-Regular
-% qtmri TeXGyreBonum-Italic
-% qtmb TeXGyreBonum-Bold
-% qtmbi TeXGyreBonum-BoldItalic
-
-\starttypescript [serif] [bookman] [ec,texnansi,cs,el,qx,rm,t5,t2a,t2b,t2c,l7x]
- \definefontsynonym [Bookman-Light] [\typescriptthree-qbkr] [encoding=\typescriptthree]
- \definefontsynonym [Bookman-LightItalic] [\typescriptthree-qbkri] [encoding=\typescriptthree]
- \definefontsynonym [Bookman-DemiBold] [\typescriptthree-qbkb] [encoding=\typescriptthree]
- \definefontsynonym [Bookman-DemiBoldItalic] [\typescriptthree-qbkbi] [encoding=\typescriptthree]
- \definefontsynonym [Bookman-Light-Caps] [\typescriptthree-qbkr-sc] [encoding=\typescriptthree]
-
- \definefontsynonym [Bookman-LightSlanted] [Bookman-LightItalic]
- \definefontsynonym [Bookman-DemiBoldSlanted] [Bookman-DemiBoldItalic]
-
- \loadmapfile[qbk-\typescriptthree.map]
- \unloadmapfile[\typescriptthree-urw-bookman.map]
-\stoptypescript
-
-% TeXGyreScola
-%
-% qcsr TeXGyreSchola-Regular
-% qcsri TeXGyreSchola-Italic
-% qcsb TeXGyreSchola-Bold
-% qcsbi TeXGyreSchola-BoldItalic
-
-\starttypescript [serif] [schoolbook] [ec,texnansi,cs,el,qx,rm,t5,t2a,t2b,t2c,l7x]
- \definefontsynonym [Schoolbook-Roman] [\typescriptthree-qcsr] [encoding=\typescriptthree]
- \definefontsynonym [Schoolbook-Italic] [\typescriptthree-qcsri] [encoding=\typescriptthree]
- \definefontsynonym [Schoolbook-Bold] [\typescriptthree-qcsb] [encoding=\typescriptthree]
- \definefontsynonym [Schoolbook-BoldItalic] [\typescriptthree-qcsbi] [encoding=\typescriptthree]
- \definefontsynonym [Schoolbook-Roman-Caps] [\typescriptthree-qcsr-sc] [encoding=\typescriptthree]
-
- \definefontsynonym [Schoolbook-Slanted] [Schoolbook-Italic]
- \definefontsynonym [Schoolbook-BoldSlanted] [Schoolbook-BoldItalic]
-
- \loadmapfile[qcs-\typescriptthree.map]
- \unloadmapfile[\typescriptthree-urw-ncntrsbk.map]
-\stoptypescript
-
-% TeXGyreAdventor
-%
-% qagr TeXGyreAdventor-Regular
-% qagri TeXGyreAdventor-Italic
-% qagb TeXGyreAdventor-Bold
-% qagbi TeXGyreAdventor-BoldItalic
-
-% not previously defined
-
-\stoptypescriptcollection
diff --git a/Master/texmf-dist/tex/context/base/type-hgz.tex b/Master/texmf-dist/tex/context/base/type-hgz.tex
new file mode 100644
index 00000000000..59b5eefd803
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/type-hgz.tex
@@ -0,0 +1,322 @@
+%D \module
+%D [ file=type-hgz, % variant of ghz
+%D version=2005.06.07,
+%D title=\CONTEXT\ Typescript Macros,
+%D subtitle=Hermann Zapf's Fonts,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D At some point I will switch to opentype Optima fonts (don't have them).
+
+% \usetypescriptfile[type-ghz]
+%
+% \definetypeface[optima] [ss][sans] [optima-nova] [default]
+% \definetypeface[palatino][rm][serif][palatino-nova][default]
+% \definetypeface[aldus] [rm][serif][aldus-nova] [default]
+%
+% \starttext
+% \setupbodyfont[optima] \input zapf \blank
+% \setupbodyfont[palatino] \input zapf \blank
+% \setupbodyfont[aldus] \input zapf \blank
+% \stoptext
+
+\starttypescriptcollection[zapf collection]
+
+% zapfino
+
+\starttypescript [serif,handwriting] [zapfino]
+
+ \definefontsynonym[zapfino] [file:zapfinoextraltpro]
+ \definefontsynonym[zapfinoextra] [file:zapfinoextraltpro]
+ \definefontsynonym[zapfinoforte] [file:zapfinoextraltpro]
+
+\stoptypescript
+
+% optima nova
+
+\starttypescript [sans] [optima-nova,optima-nova-light,optima-nova-medium,optima-nova-os]
+
+ \definefontsynonym[OptimaNova-Light] [file:lt55476]
+ \definefontsynonym[OptimaNova-LightSC] [file:lt55477]
+ \definefontsynonym[OptimaNova-LightOsF] [file:lt55478]
+ \definefontsynonym[OptimaNova-LightItalic] [file:lt55479]
+ \definefontsynonym[OptimaNova-LightItalicSC] [file:lt55480]
+ \definefontsynonym[OptimaNova-LightItalicOsF] [file:lt55481]
+ \definefontsynonym[OptimaNova-LightCond] [file:lt55482]
+ \definefontsynonym[OptimaNova-Regular] [file:lt55483]
+ \definefontsynonym[OptimaNova-RegularSC] [file:lt55484]
+ \definefontsynonym[OptimaNova-RegularOsF] [file:lt55485]
+ \definefontsynonym[OptimaNova-Italic] [file:lt55486]
+ \definefontsynonym[OptimaNova-ItalicSC] [file:lt55487]
+ \definefontsynonym[OptimaNova-ItalicOsF] [file:lt55488]
+ \definefontsynonym[OptimaNova-Condensed] [file:lt55489]
+ \definefontsynonym[OptimaNova-Medium] [file:lt55490]
+ \definefontsynonym[OptimaNova-MediumSC] [file:lt55491]
+ \definefontsynonym[OptimaNova-MediumOsF] [file:lt55492]
+ \definefontsynonym[OptimaNova-MediumItalic] [file:lt55493]
+ \definefontsynonym[OptimaNova-MediumItalicSC] [file:lt55494]
+ \definefontsynonym[OptimaNova-MediumItalicOsF][file:lt55495]
+ \definefontsynonym[OptimaNova-MediumCond] [file:lt55496]
+ \definefontsynonym[OptimaNova-TitlingInitials][file:lt55497]
+ \definefontsynonym[OptimaNova-Demi] [file:lt55498]
+ \definefontsynonym[OptimaNova-DemiSC] [file:lt55499]
+ \definefontsynonym[OptimaNova-DemiOsF] [file:lt55500]
+ \definefontsynonym[OptimaNova-DemiItalic] [file:lt55501]
+ \definefontsynonym[OptimaNova-DemiItalicSC] [file:lt55502]
+ \definefontsynonym[OptimaNova-DemiItalicOsF] [file:lt55503]
+ \definefontsynonym[OptimaNova-DemiCond] [file:lt55504]
+ \definefontsynonym[OptimaNova-Bold] [file:lt55505]
+ \definefontsynonym[OptimaNova-BoldSC] [file:lt55506]
+ \definefontsynonym[OptimaNova-BoldOsF] [file:lt55507]
+ \definefontsynonym[OptimaNova-BoldItalic] [file:lt55508]
+ \definefontsynonym[OptimaNova-BoldItalicSC] [file:lt55509]
+ \definefontsynonym[OptimaNova-BoldItalicOsF] [file:lt55510]
+ \definefontsynonym[OptimaNova-BoldCond] [file:lt55511]
+ \definefontsynonym[OptimaNova-Heavy] [file:lt55512]
+ \definefontsynonym[OptimaNova-HeavyItalic] [file:lt55513]
+ \definefontsynonym[OptimaNova-Black] [file:lt55514]
+ \definefontsynonym[OptimaNova-BlackItalic] [file:lt55515]
+
+\stoptypescript
+
+\starttypescript [sans] [optima-nova] [name]
+
+ \definefontsynonym [Sans] [OptimaNova-Regular]
+ \definefontsynonym [SansItalic] [OptimaNova-Italic]
+ \definefontsynonym [SansBold] [OptimaNova-Bold]
+ \definefontsynonym [SansBoldItalic] [OptimaNova-BoldItalic]
+ \definefontsynonym [SansSlanted] [OptimaNova-Italic]
+ \definefontsynonym [SansBoldSlanted] [OptimaNova-BoldItalic]
+ \definefontsynonym [SansCaps] [OptimaNova-RegularSC]
+
+ \definefontsynonym [SansOsF] [OptimaNova-RegularOsF]
+ \definefontsynonym [SansItalicOsF] [OptimaNova-ItalicOsF]
+ \definefontsynonym [SansBoldOsF] [OptimaNova-BoldOsF]
+ \definefontsynonym [SansBoldItalicOsF] [OptimaNova-BoldItalicOsF]
+ \definefontsynonym [SansSlantedOsF] [OptimaNova-ItalicOsF]
+ \definefontsynonym [SansBoldSlantedOsF] [OptimaNova-BoldItalicOsF]
+ \definefontsynonym [SansCapsOsF] [OptimaNova-RegularSC]
+
+ \definefontsynonym [SansCaps] [OptimaNova-RegularSC]
+ \definefontsynonym [SansItalicCaps] [OptimaNova-ItalicSC ]
+ \definefontsynonym [SansBoldCaps] [OptimaNova-BoldSC]
+ \definefontsynonym [SansBoldItalicCaps] [OptimaNova-BoldItalicSC]
+ \definefontsynonym [SansSlantedCaps] [OptimaNova-ItalicSC]
+ \definefontsynonym [SansBoldSlantedCaps] [OptimaNova-BoldItalicSC]
+ \definefontsynonym [SansCapsCaps] [OptimaNova-RegularSC]
+
+\stoptypescript
+
+\starttypescript [sans] [optima-nova-os] [name]
+
+ \definefontsynonym [Sans] [OptimaNova-RegularOsF]
+ \definefontsynonym [SansItalic] [OptimaNova-ItalicOsF]
+ \definefontsynonym [SansBold] [OptimaNova-BoldOsF]
+ \definefontsynonym [SansBoldItalic] [OptimaNova-BoldItalicOsF]
+ \definefontsynonym [SansSlanted] [OptimaNova-ItalicOsF]
+ \definefontsynonym [SansBoldSlanted] [OptimaNova-BoldItalicOsF]
+ \definefontsynonym [SansCaps] [OptimaNova-RegularSC]
+
+\stoptypescript
+
+\starttypescript [sans] [optima-nova-light] [name] % may change
+
+ \definefontsynonym [Sans] [OptimaNova-Light]
+ \definefontsynonym [SansItalic] [OptimaNova-LightItalic]
+ \definefontsynonym [SansBold] [OptimaNova-Medium]
+ \definefontsynonym [SansBoldItalic] [OptimaNova-MediumItalic]
+ \definefontsynonym [SansSlanted] [OptimaNova-LightItalic]
+ \definefontsynonym [SansBoldSlanted] [OptimaNova-MediumItalic]
+ \definefontsynonym [SansCaps] [OptimaNova-LightSC]
+
+\stoptypescript
+
+\starttypescript [sans] [optima-nova-medium] [name] % may change
+
+ \definefontsynonym [Sans] [OptimaNova-Medium]
+ \definefontsynonym [SansItalic] [OptimaNova-MediumItalic]
+ \definefontsynonym [SansBold] [OptimaNova-Heavy]
+ \definefontsynonym [SansBoldItalic] [OptimaNova-HeavyItalic]
+ \definefontsynonym [SansSlanted] [OptimaNova-MediumItalic]
+ \definefontsynonym [SansBoldSlanted] [OptimaNova-HeavyItalic]
+ \definefontsynonym [SansCaps] [OptimaNova-MediumSC]
+
+\stoptypescript
+
+\starttypescript[optima-nova]
+ \definetypeface[optima][ss][sans][optima-nova] [default][features=default]
+ \definetypeface[optima][rm][sans][optima-nova] [default][features=default]
+ \definetypeface[optima][tt][mono][latin-modern][default][features=default,rscale=1.1]
+ \definetypeface[optima][mm][math][latin-modern][default][features=default,rscale=1.1]
+ \quittypescriptscanning
+\stoptypescript
+
+\starttypescript[optima-nova-os]
+ \definetypeface[optima-os][ss][sans][optima-nova-os] [default][features=default]
+ \definetypeface[optima-os][rm][sans][optima-nova-os] [default][features=default]
+ \definetypeface[optima-os][tt][mono][latin-modern] [default][features=default,rscale=1.1]
+ \definetypeface[optima-os][mm][math][latin-modern] [default][features=default,rscale=1.1]
+ \quittypescriptscanning
+\stoptypescript
+
+% palatino nova
+
+\starttypescript [serif] [palatino-nova,palatino-nova-light,palatino-nova-medium]
+
+ \definefontsynonym[PalatinoNova-Light] [file:palatinonova-light]
+ \definefontsynonym[PalatinoNova-LightItalic] [file:palatinonova-lightitalic]
+ \definefontsynonym[PalatinoNova-Regular] [file:palatinonova-regular]
+ \definefontsynonym[PalatinoNova-Italic] [file:palatinonova-italic]
+ \definefontsynonym[PalatinoNova-Medium] [file:palatinonova-medium]
+ \definefontsynonym[PalatinoNova-MediumItalic][file:palatinonova-mediumitalic]
+ \definefontsynonym[PalatinoNova-Bold] [file:palatinonova-bold]
+ \definefontsynonym[PalatinoNova-BoldItalic] [file:palatinonova-bolditalic]
+ \definefontsynonym[PalatinoNova-Imperial] [file:palatinonova-imperial]
+ \definefontsynonym[PalatinoNova-Titling] [file:palatinonova-titling]
+
+\stoptypescript
+
+\starttypescript [serif] [palatino-nova] [name]
+
+ \definefontsynonym [Serif] [PalatinoNova-Regular]
+ \definefontsynonym [SerifItalic] [PalatinoNova-Italic]
+ \definefontsynonym [SerifBold] [PalatinoNova-Bold]
+ \definefontsynonym [SerifBoldItalic] [PalatinoNova-BoldItalic]
+ \definefontsynonym [SerifSlanted] [SerifItalic]
+ \definefontsynonym [SerifBoldSlanted] [SerifBoldItalic]
+
+\stoptypescript
+
+\starttypescript [serif] [palatino-nova-light] [name] % may change
+
+ \definefontsynonym [Serif] [PalatinoNova-Light]
+ \definefontsynonym [SerifItalic] [PalatinoNova-LightItalic]
+ \definefontsynonym [SerifBold] [PalatinoNova-Regular]
+ \definefontsynonym [SerifBoldItalic] [PalatinoNova-Italic]
+ \definefontsynonym [SerifSlanted] [SerifItalic]
+ \definefontsynonym [SerifBoldSlanted] [SerifBoldItalic]
+
+\stoptypescript
+
+\starttypescript [serif] [palatino-nova-medium] [name] % may change
+
+ \definefontsynonym [Serif] [PalatinoNova-Medium]
+ \definefontsynonym [SerifItalic] [PalatinoNova-MediumItalic]
+ \definefontsynonym [SerifBold] [PalatinoNova-Bold]
+ \definefontsynonym [SerifBoldItalic] [PalatinoNova-BoldItalic]
+ \definefontsynonym [SerifSlanted] [SerifItalic]
+ \definefontsynonym [SerifBoldSlanted] [SerifBoldItalic]
+
+\stoptypescript
+
+% palatino sans
+
+\starttypescript [sans] [palatino-sans,palatino-informal]
+
+ % palatino sans com ultra light arrows / Palatino Sans Com Ultra Light Arrows / palatinosanscom-ultltarrows]
+
+ \definefontsynonym[PalatinoSans-UltraLight] [file:palatinosanscom-ultlight]
+ \definefontsynonym[PalatinoSans-UltraLightItalic] [file:palatinosanscom-ultlightita]
+ \definefontsynonym[PalatinoSans-Light] [file:palatinosanscom-light]
+ \definefontsynonym[PalatinoSans-LightItalic] [file:palatinosanscom-lightita]
+ \definefontsynonym[PalatinoSans-Regular] [file:palatinosanscom-regular]
+ \definefontsynonym[PalatinoSans-Italic] [file:palatinosanscom-italic]
+ \definefontsynonym[PalatinoSans-Medium] [file:palatinosanscom-medium]
+ \definefontsynonym[PalatinoSans-MediumItalic] [file:palatinosanscom-mediumita]
+ \definefontsynonym[PalatinoSans-Bold] [file:palatinosanscom-bold]
+ \definefontsynonym[PalatinoSans-BoldItalic] [file:palatinosanscom-boldita]
+
+ \definefontsynonym[PalatinoInformal-UltraLight] [file:palatinosansinflcom-ultlt]
+ \definefontsynonym[PalatinoInformal-UltraLightItalic] [file:palatinosansinflcom-ultltit]
+ \definefontsynonym[PalatinoInformal-Light] [file:palatinosansinflcom-light]
+ \definefontsynonym[PalatinoInformal-LightItalic] [file:palatinosansinflcom-lightit]
+ \definefontsynonym[PalatinoInformal-Regular] [file:palatinosansinflcom-regular]
+ \definefontsynonym[PalatinoInformal-Italic] [file:palatinosansinflcom-italic]
+ \definefontsynonym[PalatinoInformal-Medium] [file:palatinosansinflcom-med]
+ \definefontsynonym[PalatinoInformal-MediumItalic] [file:palatinosansinflcom-medit]
+ \definefontsynonym[PalatinoInformal-Bold] [file:palatinosansinflcom-bold]
+ \definefontsynonym[PalatinoInformal-BoldItalic] [file:palatinosansinflcom-boldit]
+
+\stoptypescript
+
+\starttypescript [sans] [palatino-sans] [name]
+
+ \definefontsynonym [Sans] [PalatinoSans-Medium]
+ \definefontsynonym [SansItalic] [PalatinoSans-MediumItalic]
+ \definefontsynonym [SansBold] [PalatinoSans-Bold]
+ \definefontsynonym [SansBoldItalic] [PalatinoSans-BoldItalic]
+ \definefontsynonym [SansSlanted] [SansItalic]
+ \definefontsynonym [SansBoldSlanted] [SansBoldItalic]
+
+\stoptypescript
+
+\starttypescript [sans] [palatino-informal] [name]
+
+ \definefontsynonym [Sans] [PalatinoInformal-Medium]
+ \definefontsynonym [SansItalic] [PalatinoInformal-MediumItalic]
+ \definefontsynonym [SansBold] [PalatinoInformal-Bold]
+ \definefontsynonym [SansBoldItalic] [PalatinoInformal-BoldItalic]
+ \definefontsynonym [SansSlanted] [SansItalic]
+ \definefontsynonym [SansBoldSlanted] [SansBoldItalic]
+
+\stoptypescript
+
+\starttypescript[palatino,palatino-nova]
+ \definetypeface[palatino][rm][serif][palatino-nova][default][features=default]
+ \definetypeface[palatino][ss][sans] [palatino-sans][default][features=default]
+ \definetypeface[palatino][tt][mono] [latin-modern] [default][features=default,rscale=1.1]
+ \definetypeface[palatino][mm][math] [latin-modern] [default][features=default,rscale=1.1]
+ \quittypescriptscanning
+\stoptypescript
+
+\starttypescript[palatino-sans]
+ \definetypeface[palatino][ss][sans] [palatino-sans][default][features=default]
+ \definetypeface[palatino][rm][serif][palatino-nova][default][features=default]
+ \definetypeface[palatino][tt][mono] [latin-modern] [default][features=default,rscale=1.1]
+ \definetypeface[palatino][mm][math] [latin-modern] [default][features=default,rscale=1.1]
+ \quittypescriptscanning
+\stoptypescript
+
+\starttypescript[palatino-informal]
+ \definetypeface[palatino-informal][ss][sans] [palatino-informal][default][features=default]
+ \definetypeface[palatino-informal][rm][serif][palatino-nova] [default][features=default]
+ \definetypeface[palatino-informal][tt][mono] [latin-modern] [default][features=default,rscale=1.1]
+ \definetypeface[palatino-informal][mm][math] [latin-modern] [default][features=default,rscale=1.1]
+ \quittypescriptscanning
+\stoptypescript
+
+% melior
+
+\starttypescript [serif] [melior] [name]
+
+ \definefontsynonym [MeliorLT-Roman] [MeliorLT]
+
+ \definefontsynonym [Serif] [MeliorLT-Roman]
+ \definefontsynonym [SerifItalic] [MeliorLT-Italic]
+ \definefontsynonym [SerifBold] [MeliorLT-Bold]
+ \definefontsynonym [SerifBoldItalic] [MeliorLT-BoldItalic]
+
+ \definefontsynonym [SerifSlanted] [SerifItalic]
+ \definefontsynonym [SerifBoldSlanted] [SerifBoldItalic]
+
+ \definefontsynonym [SerifCaps] [Serif]
+
+\stoptypescript
+
+\starttypescript [serif] [melior]
+
+ \definefontsynonym [MeliorLT] [file:lte50062]
+ \definefontsynonym [MeliorLT-Italic] [file:lte50063]
+ \definefontsynonym [MeliorLT-Bold] [file:lte50064]
+ \definefontsynonym [MeliorLT-BoldItalic] [file:lte50065]
+
+\stoptypescript
+
+\stoptypescriptcollection
+
+\endinput
diff --git a/Master/texmf-dist/tex/context/base/type-ini.tex b/Master/texmf-dist/tex/context/base/type-ini.mkii
index d01b9c73bfb..9372f8dc395 100644
--- a/Master/texmf-dist/tex/context/base/type-ini.tex
+++ b/Master/texmf-dist/tex/context/base/type-ini.mkii
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Typescript Macros (ini)}
+\writestatus{loading}{ConTeXt Typescript Macros / Initialization}
%D The default fontclass is empty. We could demand always using fontclasses,
%D and then make the calling macros simplier (always assume fontclass) but
@@ -76,35 +76,16 @@
{\splitfiletype{#1}%
\addtocommalist\splitoffname\typescriptfiles}}
-% \usetypescriptfile[\f!typeprefix exa] % some examples
-% \usetypescriptfile[\f!typeprefix syn] % font file synonyms
-% \usetypescriptfile[\f!typeprefix enc] % files and encodings
-% %usetypescriptfile[\f!typeprefix dis] % funny name remappings, obsolete
-% \usetypescriptfile[\f!typeprefix siz] % specific font sizes
-% \usetypescriptfile[\f!typeprefix map] % pdftex mapping
-% \usetypescriptfile[\f!typeprefix spe] % special macros
-% \usetypescriptfile[\f!typeprefix akb] % adobe karl berry names
-%
-% \beginXETEX \font
-% \usetypescriptfile[\f!typeprefix xtx] % xetex definitions
-% \endXETEX
-
\usetypescriptfile[\f!typeprefix tmf]
\usetypescriptfile[\f!typeprefix siz]
-\beginOLDTEX \font
+\ifnum\texengine=\xetexengine
+ \usetypescriptfile[\f!typeprefix otf]
+ \usetypescriptfile[\f!typeprefix xtx]
+\else
\usetypescriptfile[\f!typeprefix one]
- %usetypescriptfile[\f!typeprefix gyr] % to be merged into one
- \usetypescriptfile[\f!typeprefix akb] % will go away when gyre is merged
-\endOLDTEX
-
-\beginNEWTEX \font
- \usetypescriptfile[\f!typeprefix otf]
-\endNEWTEX
-
-\beginXETEX \font
- \usetypescriptfile[\f!typeprefix xtx]
-\endXETEX
+ %usetypescriptfile[\f!typeprefix akb] % we have gyre now
+\fi
\usetypescriptfile[\f!typeprefix loc]
@@ -184,11 +165,9 @@
\@EAEAEA\newtoks\loadedtypescripts
\bgroup
\long\def\starttypescript##1\stoptypescript
- {\global\loadedtypescripts\@EA{\the\loadedtypescripts
- \starttypescript##1\stoptypescript}}%
+ {\global\loadedtypescripts\@EA{\the\loadedtypescripts\starttypescript##1\stoptypescript}}%
\long\def\starttypescriptcollection##1\stoptypescriptcollection
- {\global\loadedtypescripts\@EA{\the\loadedtypescripts
- \starttypescriptcollection##1\stoptypescriptcollection}}%
+ {\global\loadedtypescripts\@EA{\the\loadedtypescripts\starttypescriptcollection##1\stoptypescriptcollection}}%
\startreadingfile
\pushendofline
\unprotect
@@ -217,6 +196,75 @@
\setfalse\quittingtypescript
\fi}
+% % not faster, unless maybe toks
+%
+% \newcount\nofloadedtypescripts
+%
+% \def\startloadedtypescript
+% {\dotripleempty\dostartloadedtypescript}
+%
+% \let\stoploadedtypescript\relax
+%
+% \long\def\dostartloadedtypescript[#1][#2][#3]#4\stoptypescript
+% {\global\advance\nofloadedtypescripts\plusone
+% \long\setgvalue{\??ts=>\the\nofloadedtypescripts}{#4}%
+% \edef\temp%
+% {\iffirstargument [#1]\fi
+% \ifsecondargument[#2]\fi
+% \ifthirdargument [#3]\fi
+% \noexpand\csname\??ts=>\the\nofloadedtypescripts\noexpand\endcsname}%
+% \global\loadedtypescripts\@EA\@EA\@EA{\@EA\the\@EA\loadedtypescripts\@EA\starttypescript\temp\stoptypescript}}
+%
+% \def\startloadedtypescriptcollection
+% {\dosingleempty\dostartloadedtypescriptcollection}
+%
+% \def\dostartloadedtypescriptcollection[#1]{}
+% \def\stoploadedtypescriptcollection {}
+%
+% \def\dododousetypescript#1%
+% {\setfalse\quittingtypescript
+% \pushmacro\currenttypefile
+% \def\currenttypefile{#1}%
+% \ifconditional\preloadingtypescripts
+% % load files once, and use saved data
+% \def\loadedtypescripts{\csname\??ts:\c!file:#1\endcsname}%
+% \@EAEAEA\ifx\loadedtypescripts\relax
+% \@EAEAEA\newtoks\loadedtypescripts
+% \bgroup
+% %
+% \let\starttypescript \startloadedtypescript
+% \let\stoptypescript \stoploadedtypescript
+% \let\starttypescriptcollection\startloadedtypescriptcollection
+% \let\stoptypescriptcollection \stoploadedtypescriptcollection
+% %
+% \startreadingfile
+% \pushendofline
+% \unprotect
+% \readfile\currenttypefile\donothing\donothing
+% \protect
+% \popendofline
+% \stopreadingfile
+% \egroup
+% \fi
+% %\message{[\space\currenttypefile}%
+% \the\loadedtypescripts
+% %\message{\ifconditional\quittingtypescript quit\space\fi]}%
+% \else
+% % process files each time
+% \startreadingfile
+% \pushendofline
+% \unprotect
+% \readfile\currenttypefile\donothing\donothing
+% \protect
+% \popendofline
+% \stopreadingfile
+% \fi
+% \popmacro\currenttypefile
+% \ifconditional\quittingtypescript
+% \quitcommalist
+% \setfalse\quittingtypescript
+% \fi}
+
\def\usetypescriptonce
{\dotripleempty\dousetypescriptonce}
@@ -234,24 +282,11 @@
\def\dodefinetypescriptsynonym[#1][#2]%
{\ifsecondargument\setevalue{\??tm#1}{#2}\fi}
-\beginTEX
-
-\def\truetypescript#1%
- {\expandafter\ifx\csname\??tm#1\endcsname\relax
- #1\else\@EA\truetypescript\csname\??tm#1\endcsname
- \fi}
-
-\endTEX
-
-\beginETEX \ifcsname
-
\def\truetypescript#1%
{\ifcsname\??tm#1\endcsname
\@EA\truetypescript\csname\??tm#1\endcsname\else#1%
\fi}
-\endETEX
-
% script [serif] [default] [size]
% script [serif] [computer-modern] [size]
% script [serif] [computer-modern] [ec]
@@ -291,7 +326,7 @@
\let\typescripttwo \@@typescripttwo
\let\typescriptthree\@@typescriptthree
\let\typescriptmatch\empty
- \doifnextcharelse[\dostarttypescriptone\dostarttypescriptall}
+ \doifnextoptionalelse\dostarttypescriptone\dostarttypescriptall}
\long\def\dostarttypescriptall
{\iffirsttypescriptpass
@@ -322,10 +357,10 @@
{\dochecktypescript\@@typescriptthree\typescriptthree\redostarttypescriptthree}
\long\def\redostarttypescriptone
- {\doifnextcharelse[\dostarttypescripttwo\dostarttypescriptyes}
+ {\doifnextoptionalelse\dostarttypescripttwo\dostarttypescriptyes}
\long\def\redostarttypescripttwo
- {\doifnextcharelse[\dostarttypescriptthree\dostarttypescriptyes}
+ {\doifnextoptionalelse\dostarttypescriptthree\dostarttypescriptyes}
\long\def\redostarttypescriptthree
{\dostarttypescriptyes}
@@ -421,10 +456,13 @@
\let\usedmapfile\gobbletwoarguments
\let\usedmapline\gobbletwoarguments
+\def\doregisterloadedmapfile#1%
+ {\immediatewriteutilitycommand{\usedmapfile{=}{#1}}}
+
\def\doloadfontmapfile#1%
{\ifundefined{#1\c!state}%
\writestatus\m!fonts{using map file: #1}%
- \immediatewriteutilitycommand{\usedmapfile{=}{#1}}%
+ \doregisterloadedmapfile{#1}%
\doloadmapfile{=}{#1.\f!fontmapextension}% +/add =/replace -/remove
\setxvalue{#1\c!state}{1}%
\fi}
@@ -518,7 +556,7 @@
{\dodoubleargument\dodefinetypescriptprefix}
\def\dodefinetypescriptprefix[#1][#2]%
- {\setvalue{\??ts::#1}{#2}}
+ {\setgvalue{\??ts::#1}{#2}} % made global
% without testing:
%
@@ -552,22 +590,19 @@
% we can use \rawgetparameters or \rawgeteparameters
-\ifx\mkdodefinetypeface\undefined
- \let\mkdodefinetypeface\gobblefivearguments
-\fi
-
\def\dodefinetypeface[#1][#2][#3][#4][#5][#6]%
{\dododefinetypeface[#1][#2]%
\iffifthargument % sixth is optional
% we need to expand since in #6 there can be a \typescripttwo
- \expanded{\getparameters[\??ts][\s!rscale=\plusone,\s!encoding=\defaultencoding,\s!features=,\s!text=,#6]}% \geteparameters
+ \expanded{\getparameters[\??ts][\s!rscale=\plusone,\s!encoding=\defaultencoding,\s!features=,\s!fallbacks=,\s!text=,#6]}% \geteparameters
\pushmacro\relativefontsize
\pushmacro\typefaceencoding
\pushmacro\fontclass
\let\relativefontsize\@@tsrscale
\let\typefaceencoding\@@tsencoding
\setcurrentfontclass{#1}%
- \letvalue{\fontclass\s!features}\@@tsfeatures % new per 16/6/2007
+ \letvalue{\fontclass\s!features }\@@tsfeatures % new per 16/6/2007
+ \letvalue{\fontclass\s!fallbacks}\@@tsfallbacks % new per 12/10/2008
\saverelativefontsize{#2}\relativefontsize % fall back
\savemathtextstyle\@@tstext % math text style (new per 28/4/2006)
\iftracetypescripts\writestatus\m!fonts{define: [#1] [#2] [#3] [#4] / \typefaceencoding}\fi
@@ -584,8 +619,13 @@
\def\dododefinetypeface[#1][#2]% saveguard against redefinition
{\doifsomething{#1}
- {\doifundefined{\??tf#1\s!default}{\setgvalue{\??tf#1\s!default}{#2}}%
- \doifundefined{#1}{\unexpanded\setgvalue{#1}{\switchtotypeface[#1][#2]}}}}
+ {\ifcsname\??tf#1\s!default\endcsname \else
+ \registerfontclass{#1}%
+ \setgvalue{\??tf#1\s!default}{#2}%
+ \fi
+ \ifcsname#1\endcsname \else
+ \unexpanded\setgvalue{#1}{\switchtotypeface[#1][#2]}%
+ \fi}}
\def\setuptypeface% [class] [settings]
{\doquadrupleempty\doswitchtotypeface[\setupbodyfont][\fontclass]}
@@ -672,7 +712,13 @@
% new and obeying fontclasses (but still obsolete)
\def\doreadfontdefinitionfile#1#2% #1 = set/switch state
- {\ifundefined{\??tf#2\c!default}%
+ {\ifcsname\??tf#2\c!default\endcsname
+ \ifcase#1\relax
+ \switchtotypeface[#2]%
+ \else
+ \setuptypeface[#2]%
+ \fi
+ \else
\pushmacro\starttypescript
\scratchtoks\emptytoks
% locate downward compatibility definitions, one argument !
@@ -683,13 +729,9 @@
\stopreadingfile
\popmacro\starttypescript
\the\scratchtoks
- \else\ifcase#1\relax
- \switchtotypeface[#2]%
- \else
- \setuptypeface[#2]%
- \fi\fi}
+ \fi}
-\fetchruntimecommand \typetypescript {\f!typeprefix\s!run}
+\fetchruntimecommand \typetypescript {\f!typeprefix\s!run.mkii}
% \usetypescript [berry] [ec]
diff --git a/Master/texmf-dist/tex/context/base/type-ini.mkiv b/Master/texmf-dist/tex/context/base/type-ini.mkiv
new file mode 100644
index 00000000000..4076cf7b8ae
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/type-ini.mkiv
@@ -0,0 +1,634 @@
+%D \module
+%D [ file=type-ini,
+%D version=2001.03.05,
+%D title=\CONTEXT\ Typescript Macros,
+%D subtitle=Initialization,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Typescript Macros / Initialization}
+
+%D The default fontclass is empty. We could demand always using fontclasses,
+%D and then make the calling macros simplier (always assume fontclass) but
+%D apart from downward compatibility issues, it would make global, class
+%D spanning definitions a pain. Some day we will introduce a default class.
+
+% torture test : proper typefaces (and namespace)
+%
+% \starttext
+% \usetypescript[modern][default] default: \setupbodyfont[modern] \eacute \eogonek \zcaron \acircumflexgrave
+% \usetypescript[modern][texnansi] texnansi: \setupbodyfont[modern] \eacute \eogonek \zcaron \acircumflexgrave
+% \usetypescript[modern][ec] ec: \setupbodyfont[modern] \eacute \eogonek \zcaron \acircumflexgrave
+% \usetypescript[modern][qx] qx: \setupbodyfont[modern] \eacute \eogonek \zcaron \acircumflexgrave
+% \usetypescript[modern][t5] t5: \setupbodyfont[modern] \eacute \eogonek \zcaron \acircumflexgrave
+% \stoptext
+%
+% torture test : no typeface, just definitions
+%
+% \starttext
+% {\setupbodyfont[reset] \setupbodyfont[cmr] cmr: \eacute \eogonek \zcaron \acircumflexgrave \endgraf}
+% {\setupbodyfont[reset] \setupbodyfont[plr] plr: \eacute \eogonek \zcaron \acircumflexgrave \endgraf}
+% {\setupbodyfont[reset] \setupbodyfont[csr] csr: \eacute \eogonek \zcaron \acircumflexgrave \endgraf}
+% {\setupbodyfont[reset] \setupbodyfont[vnr] vnr: \eacute \eogonek \zcaron \acircumflexgrave \endgraf}
+% {\setupbodyfont[reset] \setupbodyfont[aer] aer: \eacute \eogonek \zcaron \acircumflexgrave \endgraf}
+% \stoptext
+
+% \usetypescript [modern] [texnansi]
+%
+% normal : 1450 ms
+% exa quit : 1300 ms (150 ms)
+% preload : 825 ms (635 ms) (40-50%)
+%
+% \usetypescript [modern] [texnansi]
+% \usetypescript [palatino][texnansi]
+% \usetypescript [times] [texnansi]
+%
+% normal : 3200 ms
+% exa quit : 2700 ms ( 500 ms)
+% preload : 1300 ms (1900 ms) (60-70%)
+
+% \usetypescript [modern][\defaultencoding]
+% \usetypescript [map] [latin-modern-os] [\defaultencoding]
+% \setupbodyfont[modern]
+% test 1234 test
+
+\unprotect
+
+\def\starttypescriptcollection
+ {\dosingleempty\dostarttypescriptcollection}
+
+\def\dostarttypescriptcollection[#1]%
+ {}
+
+\def\stoptypescriptcollection
+ {}
+
+\let\typescriptfiles\empty
+
+\unexpanded\def\usetypescriptfile[#1]%
+ {\doifelse{#1}\v!reset
+ {\let\typescriptfiles\empty}
+ {\splitfiletype{#1}%
+ \addtocommalist\splitoffname\typescriptfiles}}
+
+% \usetypescriptfile[\f!typeprefix exa] % some examples
+% \usetypescriptfile[\f!typeprefix syn] % font file synonyms
+% \usetypescriptfile[\f!typeprefix enc] % files and encodings
+% %usetypescriptfile[\f!typeprefix dis] % funny name remappings, obsolete
+% \usetypescriptfile[\f!typeprefix siz] % specific font sizes
+% \usetypescriptfile[\f!typeprefix map] % pdftex mapping
+% \usetypescriptfile[\f!typeprefix spe] % special macros
+% \usetypescriptfile[\f!typeprefix akb] % adobe karl berry names
+
+\usetypescriptfile[\f!typeprefix tmf]
+\usetypescriptfile[\f!typeprefix siz]
+\usetypescriptfile[\f!typeprefix otf]
+\usetypescriptfile[\f!typeprefix loc]
+
+% SO FAR
+
+\let\currenttypescripts\empty
+
+\newif\iftypescriptfound
+
+\let\@@typescriptone \empty \let\typescriptone \empty
+\let\@@typescripttwo \empty \let\typescripttwo \empty
+\let\@@typescriptthree\empty \let\typescriptthree\empty
+
+% method 2 is for Hans van der Meer
+
+\newtoks\documenttypescripts
+
+\chardef\typescriptmethod\plusone % 1: empty==all==true 2: empty==false
+\chardef\typescriptstate \plustwo % 1: process 2: store
+
+\unexpanded\def\usetypescript {\let\typescriptmethod\plusone\dotripleempty\dousetypescript}
+\unexpanded\def\usetypescriptexact{\let\typescriptmethod\plustwo\dotripleempty\dousetypescript}
+
+\def\dousetypescript[#1][#2][#3]%
+ {\normalexpanded{\noexpand\dodousetypescript[#1][#2][#3]}}
+
+\def\dodousetypescript[#1][#2][#3]% also loads type-loc, a user file
+ {\pushmacro\@@typescriptone \edef\@@typescriptone {\truetypescript{#1}}%
+ \pushmacro\@@typescripttwo \edef\@@typescripttwo {\truetypescript{#2}}%
+ \pushmacro\@@typescriptthree\edef\@@typescriptthree{\truetypescript{#3}}%
+ \pushmacro\typescriptone
+ \pushmacro\typescripttwo
+ \pushmacro\typescriptthree
+ \pushmacro\typescriptmethod
+ \pushmacro\typescriptstate \let\typescriptstate\plusone % process
+ \pushmacro\stoptypescript
+ \typescriptfoundfalse
+ \iftracetypescripts\writestatus\m!fonts{request: [\@@typescriptone] [\@@typescripttwo] [\@@typescriptthree]}\fi
+ \processcommacommand[\typescriptfiles]\dododousetypescriptfile
+ \the\documenttypescripts
+ \firsttypescriptpassfalse % testen
+ \popmacro\stoptypescript
+ \popmacro\typescriptstate
+ \popmacro\typescriptmethod
+ \popmacro\typescriptthree
+ \popmacro\typescripttwo
+ \popmacro\typescriptone
+ \popmacro\@@typescriptthree
+ \popmacro\@@typescripttwo
+ \popmacro\@@typescriptone}
+
+\newconditional\preloadingtypescripts
+
+\def\preloadtypescripts{\ifproductionrun\settrue\preloadingtypescripts\fi}
+
+\long\def\xxstarttypescript#1\stoptypescript
+ {\global\loadedtypescripts\@EA{\the\loadedtypescripts\starttypescript#1\stoptypescript}}
+
+\long\def\xxstarttypescriptcollection#1\stoptypescriptcollection
+ {\global\loadedtypescripts\@EA{\the\loadedtypescripts\starttypescriptcollection#1\stoptypescriptcollection}}
+
+\def\dododousetypescriptfile#1%
+ {\setfalse\quittingtypescript
+ \pushmacro\currenttypefile
+ \def\currenttypefile{#1}%
+ \ifconditional\preloadingtypescripts
+ \doprocessandbuffertypescriptfile
+ \else
+ \doprocesstypescriptfile
+ \fi
+ \popmacro\currenttypefile
+ \ifconditional\quittingtypescript
+ \quitcommalist
+ \setfalse\quittingtypescript
+ \fi}
+
+\def\doprocessandbuffertypescriptfile
+ {\expandafter\let\expandafter\loadedtypescripts\csname\??ts:\c!file:\currenttypefile\endcsname
+ \ifx\loadedtypescripts\relax
+ \dobuffertypescriptfile
+ \fi
+ \the\loadedtypescripts}
+
+\def\dobuffertypescriptfile
+ {\newtoks\loadedtypescripts
+ \bgroup
+ \let\starttypescript\xxstarttypescript
+ \let\starttypescriptcollection\xxstarttypescriptcollection
+ \doprocesstypescriptfile
+ \egroup
+ \expandafter\let\csname\??ts:\c!file:\currenttypefile\endcsname\loadedtypescripts}
+
+\def\doprocesstypescriptfile
+ {\startreadingfile
+ \pushendofline
+ \unprotect
+ \readfile\currenttypefile\donothing\donothing
+ \protect
+ \popendofline
+ \stopreadingfile}
+
+\def\usetypescriptonce
+ {\dotripleempty\dousetypescriptonce}
+
+\def\dousetypescriptonce[#1][#2][#3]%
+ {\doifelseflagged{ts:#1:#2:#3}%
+ {\writestatus\m!fonts{once (#1) (#2) (#3)}}
+ {\setflag{ts:#1:#2:#3}%
+ \normalexpanded{\noexpand\dodousetypescript[#1][#2][#3]}}}
+
+% \definetypescriptsynonym[lbr][cmr]
+
+\def\definetypescriptsynonym
+ {\dodoubleempty\dodefinetypescriptsynonym}
+
+\def\dodefinetypescriptsynonym[#1][#2]%
+ {\ifsecondargument\setevalue{\??tm#1}{#2}\fi}
+
+\def\truetypescript#1%
+ {\ifcsname\??tm#1\endcsname
+ \@EA\truetypescript\csname\??tm#1\endcsname\else#1%
+ \fi}
+
+% script [serif] [default] [size]
+% script [serif] [computer-modern] [size]
+% script [serif] [computer-modern] [ec]
+% script [serif] [computer-modern] [name]
+% script [serif] [computer-modern] [special]
+
+% todo, make firsttypescriptpass conditional
+
+\newif\iffirsttypescriptpass \firsttypescriptpasstrue
+
+\prependtoks\firsttypescriptpasstrue\to\everyjob
+
+\def\typescript@@all{all}
+
+\newif\iftracetypescripts
+
+\def\starttypescript
+ {\ifcase\typescriptstate
+ % 0 = skip
+ \@EA\gobbleuntil\@EA\stoptypescript
+ \or
+ % 1 = process
+ \expandafter\dostarttypescript
+ \or
+ % 2 = store
+ \expandafter\nostarttypescript
+ \else
+ % ? = skip
+ \@EA\gobbleuntil\@EA\stoptypescript
+ \fi}
+
+\long\def\nostarttypescript#1\stoptypescript
+ {\appendtoks\starttypescript#1\stoptypescript\to\documenttypescripts}
+
+\def\dostarttypescript
+ {\let\typescriptone \@@typescriptone
+ \let\typescripttwo \@@typescripttwo
+ \let\typescriptthree\@@typescriptthree
+ \let\typescriptmatch\empty
+ \doifnextoptionalelse\dostarttypescriptone\dostarttypescriptall}
+
+\long\def\dostarttypescriptall
+ {\iffirsttypescriptpass
+ \expandafter\doprocesstypescript
+ \else
+ % skip this since it may do unwanted resets, like
+ % setting symbolic font names to unknown, especially
+ % in run time user type scripts
+ \expandafter\noprocesstypescript
+ \fi}
+
+\def\typescriptwritestatus
+ {\writestatus\m!fonts{match:\ifx\currenttypefile\relax\space *\fi \typescriptmatch}}
+
+\long\def\dostarttypescriptyes
+ {\ifdone
+ \typescriptfoundtrue
+ \iftracetypescripts\typescriptwritestatus\fi
+ \expandafter\doprocesstypescript
+ \else
+ \expandafter\noprocesstypescript
+ \fi}
+
+\long\def\dostarttypescriptone
+ {\dochecktypescript\@@typescriptone\typescriptone\redostarttypescriptone}
+
+\long\def\dostarttypescripttwo
+ {\dochecktypescript\@@typescripttwo\typescripttwo\redostarttypescripttwo}
+
+\long\def\dostarttypescriptthree
+ {\dochecktypescript\@@typescriptthree\typescriptthree\redostarttypescriptthree}
+
+\long\def\redostarttypescriptone
+ {\doifnextoptionalelse\dostarttypescripttwo\dostarttypescriptyes}
+
+\long\def\redostarttypescripttwo
+ {\doifnextoptionalelse\dostarttypescriptthree\dostarttypescriptyes}
+
+\long\def\redostarttypescriptthree
+ {\dostarttypescriptyes}
+
+\def\doprocesstypescript
+ {\pushmacro\fontclass}
+
+\def\stoptypescript
+ {\popmacro\fontclass}
+
+\long\def\noprocesstypescript#1\stoptypescript
+ {}
+
+\let\typescriptmatch\empty
+
+\def\dochecktypescript#1#2#3[#4]% script use value next
+ {\donefalse
+ \def\@@typescriptcheck{#4}%
+ \ifx\@@typescriptcheck\empty % no longer needed / met
+ \ifcase\typescriptmethod\or\donetrue\fi
+ \else\ifx#1\typescript@@all
+ \donetrue
+ \else\ifx\@@typescriptcheck\typescript@@all
+ \donetrue
+ \else\ifx#1\@@typescriptcheck % saves 10% trace so probably faster too
+ \donetrue
+ \let#2\@@typescriptcheck
+ \else
+ \normalexpanded{\noexpand\doifcommonelse{\@@typescriptcheck}{#1}}\donetrue\donefalse
+ \ifdone
+ \let#2\commalistelement
+ \fi
+ \fi\fi\fi\fi
+ \ifdone
+ \edef\typescriptmatch{\typescriptmatch\space[#4]}%
+ \expandafter#3%
+ \else
+ \expandafter\noprocesstypescript
+ \fi}
+
+%D Yet another speed up: when issued inside typescript, the call
+%D
+%D \starttyping
+%D \quittypescriptscanning
+%D \stoptyping
+%D
+%D quits further loading. For an example, see type-exa:
+
+\newconditional\quittingtypescript \setfalse\quittingtypescript
+
+\def\quittypescriptscanning{\settrue\quittingtypescript}
+
+% status
+%
+% 1 loaded
+% 2 reported
+% 3 preloaded
+
+% flags ipv \c!state, more flag values
+
+\def\dopreloadmapfile#1%
+ {\splitfiletype{#1}%
+ \writestatus\m!fonts{assuming map file: \splitoffname}%
+ \setxvalue{\splitoffname \c!state}{3}%
+ \doglobal\removefromcommalist\splitoffname\allfontmapsfiles}
+
+\def\preloadmapfile[#1]{\processcommacommand[#1]\dopreloadmapfile}
+\def\loadmapfile [#1]{\processcommacommand[#1]\loadthemapfile}
+\def\unloadmapfile [#1]{\processcommacommand[#1]\unloadthemapfile}
+
+% too soon, no driver known, \ifproductionrun \loadallfontmapfiles \fi
+
+\def\loadthemapfile#1%
+ {\splitfiletype{#1}%
+ \doglobal\addtocommalist\splitoffname\allfontmapsfiles}
+
+\def\unloadthemapfile#1%
+ {\splitfiletype{#1}%
+ \doglobal\removefromcommalist\splitoffname\allfontmapsfiles}
+
+\let\usedmapfile \gobbletwoarguments
+\let\usedmapline \gobbletwoarguments
+\let\doregisterloadedmapfile\gobbleoneargument
+
+\def\doloadfontmapfile#1%
+ {\ifcsname#1\c!state\endcsname\else
+ \writestatus\m!fonts{using map file: #1}%
+ \doregisterloadedmapfile{#1}%
+ \doloadmapfile{=}{#1.\f!fontmapextension}% +/add =/replace -/remove
+ \setxvalue{#1\c!state}{1}%
+ \fi}
+
+\def\doreportfontmapfile#1%
+ {\ifcsname#1\c!state\endcsname\else
+ \writestatus\m!fonts{needs map file: #1}%
+ \setxvalue{#1\c!state}{2}%
+ \fi}
+
+\def\loadallfontmapfiles
+ {%\message{[\allfontmapsfiles]}%
+ \ifconditional\resettingmapfile
+ \writestatus\m!fonts{resetting map file list}%
+ \doresetmapfilelist
+ \global\setfalse\resettingmapfile
+ \fi
+ \ifx\allfontmapsfiles\empty \else
+ \ifautoloadmapfiles
+ \processcommacommand[\allfontmapsfiles]\doloadfontmapfile
+ \else
+ \processcommacommand[\allfontmapsfiles]\doreportfontmapfile
+ \fi
+ \forgetmapfiles
+ \fi}
+
+\def\loadmapline
+ {\dodoubleempty\dodoloadmapline}
+
+\def\dodoloadmapline[#1][#2]%
+ {\loadallfontmapfiles % ! ! !
+ \ifsecondargument
+ \doloadmapline{#1}{#2}% special
+ \else
+ \doloadmapline{=}{#1}% special
+ \fi}
+
+% since this is driver dependent, and since we may set map files
+% before an output format is defined, we need to postpone it; we
+% cannot use starttext as hook because an output switch can be part
+% of a style; an alternative is to no longer permit driver switching
+% after the first \starttext, but that will break compatibility
+% because \startcomponent ... \environment ... is pretty legal.
+
+% the map directives need to end up in the right place in the stream
+
+% hm, the timing of when pdftex needs the map file info keeps changing;
+% it's really time to move to map line support
+
+% \everybeforeshipout \expandafter % will move as it is backend dependent
+% {\expandafter\appendtoks
+% \expandafter\loadallfontmapfiles
+% \expandafter\to
+% \expandafter\pageboundsettings
+% \the\everybeforeshipout}
+
+\appendtoks
+ \loadallfontmapfiles
+\to \pageboundsettings
+
+\newif\ifautoloadmapfiles
+
+\let\allfontmapsfiles\empty
+
+\def\forgetmapfiles
+ {\globallet\allfontmapsfiles\empty}
+
+\newconditional\resettingmapfile
+
+\def\resetmapfiles
+ {\global\settrue\resettingmapfile}
+
+\def\disablemapfiles
+ {\resetmapfiles
+ \forgetmapfiles}
+
+%D A handy shortcut:
+
+% \definetypescriptprefix[serif][Serif]
+% \definetypescriptprefix[sans] [Sans]
+% \definetypescriptprefix[mono] [Mono]
+%
+%\starttypescript [serif,sans,mono] [handling,hanging,hz] [pure,normal,hz,quality]
+% \setupfontsynonym [\typescriptprefix\typescriptone] [handling=\typescriptthree]
+% \stoptypescript
+
+\def\definetypescriptprefix
+ {\dodoubleargument\dodefinetypescriptprefix}
+
+\def\dodefinetypescriptprefix[#1][#2]%
+ {\setgvalue{\??ts::#1}{#2}} % made global
+
+% without testing:
+%
+% \def\typescriptprefix#1%
+% {\csname\??ts::#1\endcsname}
+%
+% with testing:
+
+\def\typescriptprefix#1%
+ {\executeifdefined{\??ts::#1}{#1}}
+
+% defining typefaces:
+%
+% \definetypeface [#1:joke] [#2:rm]
+% \definetypeface [#1:joke] [#2:rm] [#3:...]
+% \definetypeface [#1:joke] [#2:rm] [#3:serif] [#4:lucida] [#5:size] [#6:...]
+
+\def\definetypeface
+ {\dosixtupleargument\dodefinetypeface}
+
+\def\tsvar#1#2% \executeifdefined{\??ts#1}{#2}
+ {\@EA\ifx\csname\??ts#1\endcsname\empty
+ #2%
+ \else
+ \csname\??ts#1\endcsname
+ \fi}
+
+% #1=main #2=rm #3=serif #4=fontname #5=size #6=settings
+
+% we can use \rawgetparameters or \rawgeteparameters
+
+\def\typefaceencoding{\defaultencoding}
+
+\def\dodefinetypeface[#1][#2][#3][#4][#5][#6]%
+ {\dododefinetypeface[#1][#2]%
+ \iffifthargument % sixth is optional
+ % we need to expand since in #6 there can be a \typescripttwo
+ \normalexpanded{\noexpand\getparameters[\??ts][\s!rscale=\plusone,\s!encoding=\defaultencoding,\s!features=,\s!fallbacks=,\s!text=,#6]}% \geteparameters
+ \pushmacro\relativefontsize
+ \pushmacro\typefaceencoding
+ \pushmacro\fontclass
+ \let\relativefontsize\@@tsrscale
+ \let\typefaceencoding\@@tsencoding
+ \setcurrentfontclass{#1}%
+ \letvalue{\fontclass\s!features }\@@tsfeatures % new per 16/6/2007
+ \letvalue{\fontclass\s!fallbacks}\@@tsfallbacks % new per 12/10/2008
+ \saverelativefontsize{#2}\relativefontsize % fall back
+ \savemathtextstyle\@@tstext % math text style (new per 28/4/2006)
+ \iftracetypescripts\writestatus\m!fonts{define: [#1] [#2] [#3] [#4]}\fi
+ % we need to keep typefaceencoding for a while as it can still be used to filter
+ % old scripts as we just strip the texnansi- prefix
+ \ifx\typefaceencoding\t!default
+ \usetypescript[#3][#4][\t!name,\t!default]% will be default some day
+ \else
+ \usetypescript[#3][#4][\t!name,\t!default,\typefaceencoding]%
+ \fi
+ \usetypescript[#3][#5][\t!size]%
+ \popmacro\fontclass
+ \popmacro\typefaceencoding
+ \popmacro\relativefontsize
+ \else\iffourthargument
+ \definetypeface[#1][#2][#3][#4][\s!default]%
+ \else\ifthirdargument
+ \getparameters[\??tf#1#2][#3]%
+ \fi\fi\fi}
+
+% will become (once we've adapted the typescripts):
+%
+% \def\dodefinetypeface[#1][#2][#3][#4][#5][#6]%
+% {\dododefinetypeface[#1][#2]%
+% \iffifthargument % sixth is optional
+% % we need to expand since in #6 there can be a \typescripttwo
+% \normalexpanded{\noexpand\getparameters[\??ts][\s!rscale=\plusone,\s!features=,\s!fallbacks=,\s!text=,#6]}% \geteparameters
+% \pushmacro\relativefontsize
+% \pushmacro\fontclass
+% \let\relativefontsize\@@tsrscale
+% \setcurrentfontclass{#1}%
+% \letvalue{\fontclass\s!features }\@@tsfeatures % new per 16/6/2007
+% \letvalue{\fontclass\s!fallbacks}\@@tsfallbacks % new per 12/10/2008
+% \saverelativefontsize{#2}\relativefontsize % fall back
+% \savemathtextstyle\@@tstext % math text style (new per 28/4/2006)
+% \iftracetypescripts\writestatus\m!fonts{define: [#1] [#2] [#3] [#4]}\fi
+% \usetypescript[#3][#4][\t!name,\t!default,\empty]% brr, this empty, no encoding
+% \usetypescript[#3][#5][\t!size]%
+% \popmacro\fontclass
+% \popmacro\relativefontsize
+% \else\iffourthargument
+% \definetypeface[#1][#2][#3][#4][\s!default]%
+% \else\ifthirdargument
+% \getparameters[\??tf#1#2][#3]%
+% \fi\fi\fi}
+
+\def\dododefinetypeface[#1][#2]% saveguard against redefinition
+ {\doifsomething{#1}
+ {\ifcsname\??tf#1\s!default\endcsname \else
+ \registerfontclass{#1}%
+ \setgvalue{\??tf#1\s!default}{#2}%
+ \fi
+ \ifcsname#1\endcsname \else
+ \unexpanded\setgvalue{#1}{\switchtotypeface[#1][#2]}%
+ \fi}}
+
+\def\setuptypeface% [class] [settings]
+ {\doquadrupleempty\doswitchtotypeface[\setupbodyfont][\fontclass]}
+
+\unexpanded\def\switchtotypeface% [class] [settings]
+ {\doquadrupleempty\doswitchtotypeface[\switchtobodyfont][\globalfontclass]}
+
+\def\doswitchtotypeface[#1][#2][#3][#4]%
+ {%\doifinsetelse{\s!default,\v!reset}{#3}
+ % {\setcurrentfontclass\empty}
+ % {\setcurrentfontclass{#3}}%
+ \setcurrentfontclass{#3}%
+ \let\globalfontclass#2%
+ \iffourthargument
+ #1[#4]%
+ \else\ifx\fontclass\empty
+ #1[\c!rm]%
+ \else\ifcsname\??tf\fontclass\s!default\endcsname
+ #1[\csname\??tf\fontclass\s!default\endcsname]%
+ \else
+ #1[\c!rm]%
+ \fi \fi \fi
+ \ifmmode\mr\else\tf\fi} % needed ?
+
+\def\usetypefile[#1]% recurses on path !
+ {\readfile{\f!typeprefix#1}\donothing\donothing}
+
+%D For Taco:
+%D
+%D \starttyping
+%D \inherittypeface[palatino][rm][postscript]
+%D \inherittypeface[palatino][rm][\fontclass]
+%D \inherittypeface[palatino][rm] % == \fontclass
+%D \inherittypeface[palatino] % == [rm,ss,tt,mm]
+%D \stoptyping
+
+\def\inherittypeface
+ {\dotripleempty\doinherittypeface}
+
+\def\doinherittypeface[#1][#2][#3]%
+ {\doifelsenothing{#2}
+ {\doinherittypeface[#1][\c!rm,\c!ss,\c!tt,\c!mm][\fontclass]}
+ {\doifnot{#1}{#3}
+ {\global\let\checkfontclass\docheckfontclass
+ \def\docommand##1{\setevalue{#1-##1}{#3}}%
+ \processcommalist[#2]\docommand}}}
+
+%D This hooks into the font mechanism with:
+
+% \def\checkfontclass#1% called often
+% {\edef\fontclass{\executeifdefined{\fontclass-#1}{\fontclass}}}
+
+% \def\checkfontclass#1% called often
+% {\edef\fontclass{\ifcsname\fontclass-#1\endcsname\csname\fontclass-#1\endcsname\else\fontclass\fi}}
+
+\def\docheckfontclass#1% called often
+ {\ifcsname\fontclass-#1\endcsname
+ \expandafter\let\expandafter\fontclass\csname\fontclass-#1\endcsname
+ \fi}
+
+\let\checkfontclass\gobbleoneargument
+
+\fetchruntimecommand \typetypescript {\f!typeprefix\s!run.mkiv} % will become module
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/type-mac.mkii b/Master/texmf-dist/tex/context/base/type-mac.mkii
new file mode 100644
index 00000000000..feedcd43d7d
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/type-mac.mkii
@@ -0,0 +1,220 @@
+%D \module
+%D [ file=type-mac,
+%D version=2009.03.10,
+%D title=\CONTEXT\ Typescript Macros,
+%D subtitle=Mac OS X Definitions,
+%D author=Wolfgang Schuster,
+%D date=\currentdate,
+%D copyright=Wolfgang Schuster]
+%C
+%C This module is part of the \CONTEXT\ macro||package. See
+%C mreadme.pdf for details.
+
+\definetypescriptprefix [f:andalemono] [Andale Mono]
+\definetypescriptprefix [f:chalkboard] [Chalkboard]
+\definetypescriptprefix [f:cochin] [Cochin]
+\definetypescriptprefix [f:comicsans] [Comic Sans MS]
+\definetypescriptprefix [f:couriernew] [Courier New]
+\definetypescriptprefix [f:georgia] [Georgia]
+\definetypescriptprefix [f:lucidagrande] [Lucida Grande]
+\definetypescriptprefix [f:monaco] [Monaco]
+\definetypescriptprefix [f:tahoma] [Tahoma]
+\definetypescriptprefix [f:timesnewroman] [Times New Roman]
+\definetypescriptprefix [f:trebuchet] [Trebuchet MS]
+\definetypescriptprefix [f:verdana] [Verdana]
+
+% American Typewriter
+
+\starttypescript [serif] [americantypewriter-light-condensed,americantypewriter-condensed,americantypewriter-light,americantypewriter]
+ \definefontsynonym [AmericanTypewriter-Light] [name:American Typewriter Light] [features=default]
+ \definefontsynonym [AmericanTypewriter-Regular] [name:American Typewriter] [features=default]
+ \definefontsynonym [AmericanTypewriter-Bold] [name:American Typewriter Bold] [features=default]
+ \definefontsynonym [AmericanTypewriter-LightCond] [name:American Typewriter Condensed Light] [features=default]
+ \definefontsynonym [AmericanTypewriter-Condensed] [name:American Typewriter Condensed] [features=default]
+ \definefontsynonym [AmericanTypewriter-BoldCond] [name:American Typewriter Condensed Bold] [features=default]
+\stoptypescript
+
+% Arial / Arial Narrow / Arial Rounded / Arial Unicode
+
+\starttypescript [sans] [arial-narrow,arial-condensed,arial,arial-rounded,arial-unicode]
+ \definefontsynonym [Arial-Condensed] [name:Arial Narrow] [features=default]
+ \definefontsynonym [Arial-ItalicCond] [name:Arial Narrow Italic] [features=default]
+ \definefontsynonym [Arial-BoldCond] [name:Arial Narrow Bold] [features=default]
+ \definefontsynonym [Arial-BoldItalicCond] [name:Arial Narrow Bold Italic] [features=default]
+ \definefontsynonym [Arial-Regular] [name:Arial] [features=default]
+ \definefontsynonym [Arial-Italic] [name:Arial Italic] [features=default]
+ \definefontsynonym [Arial-Bold] [name:Arial Bold] [features=default]
+ \definefontsynonym [Arial-BoldItalic] [name:Arial Bold Italic] [features=default]
+ \definefontsynonym [Arial-Black] [name:Arial Black] [features=default]
+ \definefontsynonym [Arial-Unicode] [name:Arial Unicode MS] [features=default]
+ \definefontsynonym [Arial-Rounded] [name:Arial Rounded MT Bold] [features=default]
+\stoptypescript
+
+% Baskerville
+
+\starttypescript [serif] [baskerville]
+ \definefontsynonym [Baskerville-Regular] [name:Baskerville] [features=default]
+ \definefontsynonym [Baskerville-Italic] [name:Baskerville Italic] [features=default]
+ \definefontsynonym [Baskerville-Medium] [name:Baskerville SemiBold] [features=default]
+ \definefontsynonym [Baskerville-MediumItalic] [name:Baskerville SemiBold Italic] [features=default]
+ \definefontsynonym [Baskerville-Bold] [name:Baskerville Bold] [features=default]
+ \definefontsynonym [Baskerville-BoldItalic] [name:Baskerville Bold Italic] [features=default]
+\stoptypescript
+
+% Big Caslon
+
+\starttypescript [serif] [caslon,bigcaslon]
+ \definefontsynonym [BigCaslon-Medium] [name:Big Caslon Medium] [features=default]
+\stoptypescript
+
+% Copperplate
+
+\starttypescript [sans] [copperplate-light,copperplate]
+ \definefontsynonym [Copperplate-Light] [name:Copperplate Light] [features=default]
+ \definefontsynonym [Copperplate-Regular] [name:Copperplate] [features=default]
+ \definefontsynonym [Copperplate-Bold] [name:Copperplate Bold] [features=default]
+\stoptypescript
+
+% Futura
+
+\starttypescript [sans] [futura-condensed,futura]
+ \definefontsynonym [Futura-MediumCond] [name:Futura Condensed Medium] [features=default]
+ \definefontsynonym [Futura-Medium] [name:Futura Medium] [features=default]
+ \definefontsynonym [Futura-MediumItalic] [name:Futura Medium Italic] [features=default]
+ \definefontsynonym [Futura-BoldCond] [name:Futura Condensed ExtraBold] [features=default]
+\stoptypescript
+
+% Gill Sans
+
+\starttypescript [sans] [gillsans-light,gillsans]
+ \definefontsynonym [GillSans-Light] [name:Gill Sans Light] [features=default]
+ \definefontsynonym [GillSans-LightItalic] [name:Gill Sans Light Italic] [features=default]
+ \definefontsynonym [GillSans-Regular] [name:Gill Sans] [features=default]
+ \definefontsynonym [GillSans-Italic] [name:Gill Sans Italic] [features=default]
+ \definefontsynonym [GillSans-Bold] [name:Gill Sans Bold] [features=default]
+ \definefontsynonym [GillSans-BoldItalic] [name:Gill Sans Bold Italic] [features=default]
+\stoptypescript
+
+% Helvetica Neuse
+
+\starttypescript [sans] [helvetica-neue-ultralight,helvetica-neue-light,helvetica-neue,helvetica-neue-boldcondensed]
+ \definefontsynonym [HelveticaNeue-UltraLight] [name:Helvetica Neue UltraLight] [features=default]
+ \definefontsynonym [HelveticaNeue-UltraLightItalic] [name:Helvetica Neue UltraLight Italic] [features=default]
+ \definefontsynonym [HelveticaNeue-Light] [name:Helvetica Neue Light] [features=default]
+ \definefontsynonym [HelveticaNeue-LightItalic] [name:Helvetica Neue Light Italic] [features=default]
+ \definefontsynonym [HelveticaNeue-Regular] [name:Helvetica Neue] [features=default]
+ \definefontsynonym [HelveticaNeue-Italic] [name:Helvetica Neue Italic] [features=default]
+ \definefontsynonym [HelveticaNeue-Bold] [name:Helvetica Neue Bold] [features=default]
+ \definefontsynonym [HelveticaNeue-BoldItalic] [name:Helvetica Neue Bold Italic] [features=default]
+ \definefontsynonym [HelveticaNeue-BoldCond] [name:Helvetica Neue Condensed Bold] [features=default]
+ \definefontsynonym [HelveticaNeue-BlackCond] [name:Helvetica Neue Condensed Black] [features=default]
+\stoptypescript
+
+% Hiragino Mincho
+
+\starttypescript [serif] [hiragino-mincho]
+ \definefontsynonym [HiraginoMinchoPro-Regular] [name:Hiragino Mincho Pro W3] [features=japanese]
+ \definefontsynonym [HiraginoMinchoPro-Bold] [name:Hiragino Mincho Pro W6] [features=japanese]
+ \definefontsynonym [HiraginoMinchoProN-Regular] [name:Hiragino Mincho ProN W3] [features=japanese]
+ \definefontsynonym [HiraginoMinchoProN-Bold] [name:Hiragino Mincho ProN W6] [features=japanese]
+\stoptypescript
+
+% Hiragino Maru
+
+\starttypescript [sans] [hiragino-maru]
+ \definefontsynonym [HiraginoMaruGothicPro-Regular] [name:Hiragino Maru Gothic Pro W4] [features=japanese]
+ \definefontsynonym [HiraginoMaruGothicProN-Regular] [name:Hiragino Maru Gothic ProN W4] [features=japanese]
+\stoptypescript
+
+% Hiragino Kaku
+
+\starttypescript [sans] [hiragino-kaku]
+ \definefontsynonym [HiraginoKakuGothicPro-Regular] [name:Hiragino Kaku Gothic Pro W3] [features=japanese]
+ \definefontsynonym [HiraginoKakuGothicPro-Bold] [name:Hiragino Kaku Gothic Pro W6] [features=japanese]
+ \definefontsynonym [HiraginoKakuGothicStd-Black] [name:Hiragino Kaku Gothic Std W8] [features=japanese]
+ \definefontsynonym [HiraginoKakuGothicProN-Regular] [name:Hiragino Kaku Gothic Pron W3] [features=japanese]
+ \definefontsynonym [HiraginoKakuGothicProN-Bold] [name:Hiragino Kaku Gothic ProN W6] [features=japanese]
+ \definefontsynonym [HiraginoKakuGothicStdN-Black] [name:Hiragino Kaku Gothic StdN W8] [features=japanese]
+\stoptypescript
+
+% Hoefler Text
+
+\starttypescript [serif] [hoefler]
+ \definefontsynonym [HoeflerText-Regular] [name:Hoefler Text] [features=default]
+ \definefontsynonym [HoeflerText-Italic] [name:Hoefler Text Italic] [features=default]
+ \definefontsynonym [HoeflerText-Black] [name:Hoefler Text Black] [features=default]
+ \definefontsynonym [HoeflerText-BlackItalic] [name:Hoefler Text Black Italic] [features=default]
+ \definefontsynonym [HoeflerText-Ornaments] [name:Hoefler Text Ornaments] [features=default]
+\stoptypescript
+
+% Impact
+
+\starttypescript [sans] [impact]
+ \definefontsynonym [Impact-Regular] [name:Impact] [features=default]
+\stoptypescript
+
+% Andale Mono / Monaco
+
+\starttypescript [mono] [andalemono,monaco]
+ \definefontsynonym [\typescriptprefix{n:\typescripttwo}-Regular] [name:\typescriptprefix{f:\typescripttwo}] [features=default]
+\stoptypescript
+
+% Optima
+
+\starttypescript [sans] [optima,optima-bold]
+ \definefontsynonym [Optima-Regular] [name:Optima Regular] [features=default]
+ \definefontsynonym [Optima-Italic] [name:Optima Italic] [features=default]
+ \definefontsynonym [Optima-Bold] [name:Optima Bold] [features=default]
+ \definefontsynonym [Optima-BoldItalic] [name:Optima Bold Italic] [features=default]
+ \definefontsynonym [Optima-Black] [name:Optima ExtraBlack] [features=default]
+\stoptypescript
+
+% Papyrus
+
+\starttypescript [sans] [papyrus]
+ \definefontsynonym [Papyrus-Regular] [name:Papyrus] [features=default]
+ \definefontsynonym [Papyrus-Condensed] [name:Papyrus Condensed] [features=default]
+\stoptypescript
+
+% STFangsong
+
+\starttypescript [serif] [stfangsong]
+ \definefontsynonym [STFangsong-Regular] [name:STFangsong] [features=chinese]
+\stoptypescript
+
+% STHeiti
+
+\starttypescript [sans] [stheiti]
+ \definefontsynonym [STXihei-Light] [name:STHeiti Light] [features=chinese]
+ \definefontsynonym [STHeiti-Regular] [name:STHeiti Regular] [features=chinese]
+\stoptypescript
+
+% STKaiti
+
+\starttypescript [serif] [stkaiti]
+ \definefontsynonym [STKaiti-Regular] [name:STKaiti] [features=chinese]
+\stoptypescript
+
+% STSong
+
+\starttypescript [serif] [stsong]
+ \definefontsynonym [STSong-Regular] [name:STSong] [features=chinese]
+\stoptypescript
+
+% Chalkboard / Comic Sans / Tahoma
+
+\starttypescript [sans] [chalkboard,comicsans,lucidagrande,tahoma]
+ \definefontsynonym [\typescriptprefix{n:\typescripttwo}-Regular] [name:\typescriptprefix{f:\typescripttwo}] [features=default]
+ \definefontsynonym [\typescriptprefix{n:\typescripttwo}-Bold] [name:\typescriptprefix{f:\typescripttwo} Bold] [features=default]
+\stoptypescript
+
+% Cochin / Courier New / Georgia / Times New Roman / Trebuchet / Verdana
+
+\starttypescript [serif,sans,mono] [cochin,georgia,timesnewroman,trebuchet,verdana,couriernew]
+ \definefontsynonym [\typescriptprefix{n:\typescripttwo}-Regular] [name:\typescriptprefix{f:\typescripttwo}] [features=default]
+ \definefontsynonym [\typescriptprefix{n:\typescripttwo}-Italic] [name:\typescriptprefix{f:\typescripttwo} Italic] [features=default]
+ \definefontsynonym [\typescriptprefix{n:\typescripttwo}-Bold] [name:\typescriptprefix{f:\typescripttwo} Bold] [features=default]
+ \definefontsynonym [\typescriptprefix{n:\typescripttwo}-BoldItalic] [name:\typescriptprefix{f:\typescripttwo} Bold Italic] [features=default]
+\stoptypescript
+
+\endinput
diff --git a/Master/texmf-dist/tex/context/base/type-mac.mkiv b/Master/texmf-dist/tex/context/base/type-mac.mkiv
new file mode 100644
index 00000000000..10a41588390
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/type-mac.mkiv
@@ -0,0 +1,220 @@
+%D \module
+%D [ file=type-mac,
+%D version=2009.03.10,
+%D title=\CONTEXT\ Typescript Macros,
+%D subtitle=Mac OS X Definitions,
+%D author=Wolfgang Schuster,
+%D date=\currentdate,
+%D copyright=Wolfgang Schuster]
+%C
+%C This module is part of the \CONTEXT\ macro||package. See
+%C mreadme.pdf for details.
+
+\definetypescriptprefix [f:andalemono] [andalemono]
+\definetypescriptprefix [f:chalkboard] [chalkboard]
+\definetypescriptprefix [f:cochin] [cochin]
+\definetypescriptprefix [f:comicsans] [comicsansms]
+\definetypescriptprefix [f:couriernew] [couriernew]
+\definetypescriptprefix [f:georgia] [georgia]
+\definetypescriptprefix [f:lucidagrande] [lucidagrande]
+\definetypescriptprefix [f:monaco] [monaco]
+\definetypescriptprefix [f:tahoma] [tahoma]
+\definetypescriptprefix [f:timesnewroman] [timesnewroman]
+\definetypescriptprefix [f:trebuchet] [trebuchetms]
+\definetypescriptprefix [f:verdana] [verdana]
+
+% American Typewriter
+
+\starttypescript [serif] [americantypewriter-light-condensed,americantypewriter-condensed,americantypewriter-light,americantypewriter]
+ \definefontsynonym [AmericanTypewriter-Light] [name:americantypewriterlight] [features=default]
+ \definefontsynonym [AmericanTypewriter-Regular] [name:americantypewriter] [features=default]
+ \definefontsynonym [AmericanTypewriter-Bold] [name:americantypewriterbold] [features=default]
+ \definefontsynonym [AmericanTypewriter-LightCond] [name:americantypewritercondensedlight] [features=default]
+ \definefontsynonym [AmericanTypewriter-Condensed] [name:americantypewritercondensed] [features=default]
+ \definefontsynonym [AmericanTypewriter-BoldCond] [name:americantypewritercondensedbold] [features=default]
+\stoptypescript
+
+% Arial / Arial Narrow / Arial Rounded / Arial Unicode
+
+\starttypescript [sans] [arial-narrow,arial-condensed,arial,arial-rounded,arial-unicode]
+ \definefontsynonym [Arial-Condensed] [name:arialnarrow] [features=default]
+ \definefontsynonym [Arial-ItalicCond] [name:arialnarrowitalic] [features=default]
+ \definefontsynonym [Arial-BoldCond] [name:arialnarrowbold] [features=default]
+ \definefontsynonym [Arial-BoldItalicCond] [name:arialnarrowbolditalic] [features=default]
+ \definefontsynonym [Arial-Regular] [name:arial] [features=default]
+ \definefontsynonym [Arial-Italic] [name:arialitalic] [features=default]
+ \definefontsynonym [Arial-Bold] [name:arialbold] [features=default]
+ \definefontsynonym [Arial-BoldItalic] [name:arialbolditalic] [features=default]
+ \definefontsynonym [Arial-Black] [name:arialblack] [features=default]
+ \definefontsynonym [Arial-Unicode] [name:arialunicodems] [features=default]
+ \definefontsynonym [Arial-Rounded] [name:arialroundedmtbold] [features=default]
+\stoptypescript
+
+% Baskerville
+
+\starttypescript [serif] [baskerville]
+ \definefontsynonym [Baskerville-Regular] [name:baskerville] [features=default]
+ \definefontsynonym [Baskerville-Italic] [name:baskervilleitalic] [features=default]
+ \definefontsynonym [Baskerville-Medium] [name:baskervillesemibold] [features=default]
+ \definefontsynonym [Baskerville-MediumItalic] [name:baskervillesemibolditalic] [features=default]
+ \definefontsynonym [Baskerville-Bold] [name:baskervillebold] [features=default]
+ \definefontsynonym [Baskerville-BoldItalic] [name:baskervillebolditalic] [features=default]
+\stoptypescript
+
+% Big Caslon
+
+\starttypescript [serif] [caslon,bigcaslon]
+ \definefontsynonym [BigCaslon-Medium] [name:bigcaslonmedium] [features=default]
+\stoptypescript
+
+% Copperplate
+
+\starttypescript [sans] [copperplate-light,copperplate]
+ \definefontsynonym [Copperplate-Light] [name:copperplatelight] [features=default]
+ \definefontsynonym [Copperplate-Regular] [name:copperplate] [features=default]
+ \definefontsynonym [Copperplate-Bold] [name:copperplatebold] [features=default]
+\stoptypescript
+
+% Futura
+
+\starttypescript [sans] [futura-condensed,futura]
+ \definefontsynonym [Futura-MediumCond] [name:futuracondensedmedium] [features=default]
+ \definefontsynonym [Futura-Medium] [name:futuramedium] [features=default]
+ \definefontsynonym [Futura-MediumItalic] [name:futuramediumitalic] [features=default]
+ \definefontsynonym [Futura-BoldCond] [name:futuracondensedextrabold] [features=default]
+\stoptypescript
+
+% Gill Sans
+
+\starttypescript [sans] [gillsans-light,gillsans]
+ \definefontsynonym [GillSans-Light] [name:gillsanslight] [features=default]
+ \definefontsynonym [GillSans-LightItalic] [name:gillsanslightitalic] [features=default]
+ \definefontsynonym [GillSans-Regular] [name:gillsans] [features=default]
+ \definefontsynonym [GillSans-Italic] [name:gillsansitalic] [features=default]
+ \definefontsynonym [GillSans-Bold] [name:gillsansbold] [features=default]
+ \definefontsynonym [GillSans-BoldItalic] [name:gillsansbolditalic] [features=default]
+\stoptypescript
+
+% Helvetica Neuse
+
+\starttypescript [sans] [helvetica-neue-ultralight,helvetica-neue-light,helvetica-neue,helvetica-neue-boldcondensed]
+ \definefontsynonym [HelveticaNeue-UltraLight] [name:helveticaneueultralight] [features=default]
+ \definefontsynonym [HelveticaNeue-UltraLightItalic] [name:helveticaneueultralightitalic] [features=default]
+ \definefontsynonym [HelveticaNeue-Light] [name:helveticaneuelight] [features=default]
+ \definefontsynonym [HelveticaNeue-LightItalic] [name:helveticaneuelightitalic] [features=default]
+ \definefontsynonym [HelveticaNeue-Regular] [name:helveticaneue] [features=default]
+ \definefontsynonym [HelveticaNeue-Italic] [name:helveticaneueitalic] [features=default]
+ \definefontsynonym [HelveticaNeue-Bold] [name:helveticaneuebold] [features=default]
+ \definefontsynonym [HelveticaNeue-BoldItalic] [name:helveticaneuebolditalic] [features=default]
+ \definefontsynonym [HelveticaNeue-BoldCond] [name:helveticaneuecondensedbold] [features=default]
+ \definefontsynonym [HelveticaNeue-BlackCond] [name:helveticaneuecondensedblack] [features=default]
+\stoptypescript
+
+% Hiragino Mincho
+
+\starttypescript [serif] [hiragino-mincho]
+ \definefontsynonym [HiraginoMinchoPro-Regular] [name:hiraminprow3] [features=japanese]
+ \definefontsynonym [HiraginoMinchoPro-Bold] [name:hiraminprow6] [features=japanese]
+ \definefontsynonym [HiraginoMinchoProN-Regular] [name:hiraminpronw3] [features=japanese]
+ \definefontsynonym [HiraginoMinchoProN-Bold] [name:hiraminpronw6] [features=japanese]
+\stoptypescript
+
+% Hiragino Maru
+
+\starttypescript [sans] [hiragino-maru]
+ \definefontsynonym [HiraginoMaruGothicPro-Regular] [name:hiramaruprow4] [features=japanese]
+ \definefontsynonym [HiraginoMaruGothicProN-Regular] [name:hiramarupronw4] [features=japanese]
+\stoptypescript
+
+% Hiragino Kaku
+
+\starttypescript [sans] [hiragino-kaku]
+ \definefontsynonym [HiraginoKakuGothicPro-Regular] [name:hirakakuprow3] [features=japanese]
+ \definefontsynonym [HiraginoKakuGothicPro-Bold] [name:hirakakuprow6] [features=japanese]
+ \definefontsynonym [HiraginoKakuGothicStd-Black] [name:hirakakustdw8] [features=japanese]
+ \definefontsynonym [HiraginoKakuGothicProN-Regular] [name:hirakakupronw3] [features=japanese]
+ \definefontsynonym [HiraginoKakuGothicProN-Bold] [name:hirakakupronw6] [features=japanese]
+ \definefontsynonym [HiraginoKakuGothicStdN-Black] [name:hirakakustdnw8] [features=japanese]
+\stoptypescript
+
+% Hoefler Text
+
+\starttypescript [serif] [hoefler]
+ \definefontsynonym [HoeflerText-Regular] [name:hoeflertext] [features=default]
+ \definefontsynonym [HoeflerText-Italic] [name:hoeflertextitalic] [features=default]
+ \definefontsynonym [HoeflerText-Black] [name:hoeflertextblack] [features=default]
+ \definefontsynonym [HoeflerText-BlackItalic] [name:hoeflertextblackitalic] [features=default]
+ \definefontsynonym [HoeflerText-Ornaments] [name:hoeflertextornaments] [features=default]
+\stoptypescript
+
+% Impact
+
+\starttypescript [sans] [impact]
+ \definefontsynonym [Impact-Regular] [name:impact] [features=default]
+\stoptypescript
+
+% Andale Mono / Monaco
+
+\starttypescript [mono] [andalemono,monaco]
+ \definefontsynonym [\typescriptprefix{n:\typescripttwo}-Regular] [name:\typescriptprefix{f:\typescripttwo}] [features=default]
+\stoptypescript
+
+% Optima
+
+\starttypescript [sans] [optima,optima-bold]
+ \definefontsynonym [Optima-Regular] [name:optimaregular] [features=default]
+ \definefontsynonym [Optima-Italic] [name:optimaitalic] [features=default]
+ \definefontsynonym [Optima-Bold] [name:optimabold] [features=default]
+ \definefontsynonym [Optima-BoldItalic] [name:optimabolditalic] [features=default]
+ \definefontsynonym [Optima-Black] [name:optimaextrablack] [features=default]
+\stoptypescript
+
+% Papyrus
+
+\starttypescript [sans] [papyrus]
+ \definefontsynonym [Papyrus-Regular] [name:papyrus] [features=default]
+ \definefontsynonym [Papyrus-Condensed] [name:papyruscondensed] [features=default]
+\stoptypescript
+
+% STFangsong
+
+\starttypescript [serif] [stfangsong]
+ \definefontsynonym [STFangsong-Regular] [name:stfangsong] [features=chinese]
+\stoptypescript
+
+% STHeiti
+
+\starttypescript [sans] [stheiti]
+ \definefontsynonym [STXihei-Light] [name:stxihei] [features=chinese]
+ \definefontsynonym [STHeiti-Regular] [name:stheiti] [features=chinese]
+\stoptypescript
+
+% STKaiti
+
+\starttypescript [serif] [stkaiti]
+ \definefontsynonym [STKaiti-Regular] [name:stkaiti] [features=chinese]
+\stoptypescript
+
+% STSong
+
+\starttypescript [serif] [stsong]
+ \definefontsynonym [STSong-Regular] [name:stsong] [features=chinese]
+\stoptypescript
+
+% Chalkboard / Comic Sans / Tahoma
+
+\starttypescript [sans] [chalkboard,comicsans,tahoma]
+ \definefontsynonym [\typescriptprefix{n:\typescripttwo}-Regular] [name:\typescriptprefix{f:\typescripttwo}] [features=default]
+ \definefontsynonym [\typescriptprefix{n:\typescripttwo}-Bold] [name:\typescriptprefix{f:\typescripttwo}bold] [features=default]
+\stoptypescript
+
+% Cochin / Courier New / Georgia / Times New Roman / Trebuchet / Verdana
+
+\starttypescript [serif,sans,mono] [cochin,georgia,timesnewroman,trebuchet,verdana,couriernew]
+ \definefontsynonym [\typescriptprefix{n:\typescripttwo}-Regular] [name:\typescriptprefix{f:\typescripttwo}] [features=default]
+ \definefontsynonym [\typescriptprefix{n:\typescripttwo}-Italic] [name:\typescriptprefix{f:\typescripttwo}italic] [features=default]
+ \definefontsynonym [\typescriptprefix{n:\typescripttwo}-Bold] [name:\typescriptprefix{f:\typescripttwo}bold] [features=default]
+ \definefontsynonym [\typescriptprefix{n:\typescripttwo}-BoldItalic] [name:\typescriptprefix{f:\typescripttwo}bolditalic] [features=default]
+\stoptypescript
+
+\endinput
diff --git a/Master/texmf-dist/tex/context/base/type-mac.tex b/Master/texmf-dist/tex/context/base/type-mac.tex
new file mode 100644
index 00000000000..04ac6139b2f
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/type-mac.tex
@@ -0,0 +1,434 @@
+%D \module
+%D [ file=type-mac,
+%D version=2009.03.10,
+%D title=\CONTEXT\ Typescript Macros,
+%D subtitle=Mac OS X Definitions,
+%D author=Wolfgang Schuster,
+%D date=\currentdate,
+%D copyright=Wolfgang Schuster]
+%C
+%C This module is part of the \CONTEXT\ macro||package. See
+%C mreadme.pdf for details.
+
+\starttypescriptcollection [macosx]
+
+\definetypescriptprefix [n:andalemono] [AndaleMono]
+\definetypescriptprefix [n:chalkboard] [Chalkboard]
+\definetypescriptprefix [n:cochin] [Cochin]
+\definetypescriptprefix [n:comicsans] [ComicSans]
+\definetypescriptprefix [n:couriernew] [CourierNew]
+\definetypescriptprefix [n:georgia] [Georgia]
+\definetypescriptprefix [n:lucidagrande] [LucidaGrande]
+\definetypescriptprefix [n:monaco] [Monaco]
+\definetypescriptprefix [n:tahoma] [Tahoma]
+\definetypescriptprefix [n:timesnewroman] [TimesNewRoman]
+\definetypescriptprefix [n:trebuchet] [Trebuchet]
+\definetypescriptprefix [n:verdana] [Verdana]
+
+% American Typewriter
+
+\starttypescript [serif] [americantypewriter-light-condensed]
+ \setups[font:fallback:serif]
+ \definefontsynonym [Serif] [AmericanTypewriter-LightCond] [features=default]
+ \definefontsynonym [SerifBold] [AmericanTypewriter-Condensed] [features=default]
+\stoptypescript
+
+\starttypescript [serif] [americantypewriter-condensed]
+ \setups[font:fallback:serif]
+ \definefontsynonym [Serif] [AmericanTypewriter-Condensed] [features=default]
+ \definefontsynonym [SerifBold] [AmericanTypewriter-BoldCond] [features=default]
+\stoptypescript
+
+\starttypescript [serif] [americantypewriter-light]
+ \setups[font:fallback:serif]
+ \definefontsynonym [Serif] [AmericanTypewriter-Light] [features=default]
+ \definefontsynonym [SerifBold] [AmericanTypewriter-Regular] [features=default]
+\stoptypescript
+
+\starttypescript [serif] [americantypewriter]
+ \setups[font:fallback:serif]
+ \definefontsynonym [Serif] [AmericanTypewriter-Regular] [features=default]
+ \definefontsynonym [SerifBold] [AmericanTypewriter-Bold] [features=default]
+\stoptypescript
+
+\starttypescript [americantypewriter-light-condensed,americantypewriter-condensed,americantypewriter-light,americantypewriter]
+ \definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default]
+\stoptypescript
+
+% Arial / Arial Narrow / Arial Rounded / Arial Unicode
+
+\starttypescript [sans] [arial-narrow,arial-condensed]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Arial-Condensed] [features=default]
+ \definefontsynonym [SansItalic] [Arial-ItalicCond] [features=default]
+ \definefontsynonym [SansBold] [Arial-BoldCond] [features=default]
+ \definefontsynonym [SansBoldItalic] [Arial-BoldItalicCond] [features=default]
+\stoptypescript
+
+\starttypescript [sans] [arial]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Arial-Regular] [features=default]
+ \definefontsynonym [SansItalic] [Arial-Italic] [features=default]
+ \definefontsynonym [SansBold] [Arial-Bold] [features=default]
+ \definefontsynonym [SansBoldItalic] [Arial-BoldItalic] [features=default]
+\stoptypescript
+
+\starttypescript [sans] [arial-rounded]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Arial-Rounded] [features=default]
+\stoptypescript
+
+\starttypescript [sans] [arial-unicode]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Arial-Unicode] [features=default]
+\stoptypescript
+
+\starttypescript [arial-narrow,arial-condensed,arial,arial-rounded,arial-unicode]
+ \definetypeface [\typescriptone] [ss] [sans] [\typescriptone] [default]
+\stoptypescript
+
+% Baskerville
+
+\starttypescript [serif] [baskerville]
+ \setups[font:fallback:serif]
+ \definefontsynonym [Serif] [Baskerville-Regular] [features=default]
+ \definefontsynonym [SerifItalic] [Baskerville-Italic] [features=default]
+ \definefontsynonym [SerifBold] [Baskerville-Medium] [features=default]
+ \definefontsynonym [SerifBoldItalic] [Baskerville-MediumItalic] [features=default]
+\stoptypescript
+
+\starttypescript [baskerville]
+ \definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default]
+\stoptypescript
+
+% Big Caslon
+
+\starttypescript [serif] [caslon,bigcaslon]
+ \setups[font:fallback:serif]
+ \definefontsynonym [Serif] [BigCaslon-Medium] [features=default]
+\stoptypescript
+
+\starttypescript [caslon,bigcaslon]
+ \definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default]
+\stoptypescript
+
+% Copperplate
+
+\starttypescript [sans] [copperplate-light]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Copperplate-Light] [features=default]
+ \definefontsynonym [SansBold] [Copperplate-Regular] [features=default]
+\stoptypescript
+
+\starttypescript [sans] [copperplate]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Copperplate-Regular] [features=default]
+ \definefontsynonym [SansBold] [Copperplate-Bold] [features=default]
+\stoptypescript
+
+\starttypescript [copperplate-light,copperplate]
+ \definetypeface [\typescriptone] [ss] [sans] [\typescriptone] [default]
+\stoptypescript
+
+% Courier New
+
+\starttypescript [mono] [couriernew]
+ \setups[font:fallback:mono]
+ \definefontsynonym [Mono] [\typescriptprefix{n:\typescripttwo}-Regular] [features=default]
+ \definefontsynonym [MonoItalic] [\typescriptprefix{n:\typescripttwo}-Italic] [features=default]
+ \definefontsynonym [MonoBold] [\typescriptprefix{n:\typescripttwo}-Bold] [features=default]
+ \definefontsynonym [MonoBoldItalic] [\typescriptprefix{n:\typescripttwo}-BoldItalic] [features=default]
+\stoptypescript
+
+\starttypescript [couriernew]
+ \definetypeface [\typescriptone] [tt] [mono] [\typescriptone] [default]
+\stoptypescript
+
+% Futura
+
+\starttypescript [sans] [futura-condensed]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Futura-MediumCond] [features=default]
+ \definefontsynonym [SansBold] [Futura-BoldCond] [features=default]
+\stoptypescript
+
+\starttypescript [sans] [futura]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Futura-Medium] [features=default]
+ \definefontsynonym [SansItalic] [Futura-MediumItalic] [features=default]
+\stoptypescript
+
+\starttypescript [futura-condensed,futura]
+ \definetypeface [\typescriptone] [ss] [sans] [\typescriptone] [default]
+\stoptypescript
+
+% Gill Sans
+
+\starttypescript [sans] [gillsans-light]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [GillSans-Light] [features=default]
+ \definefontsynonym [SansItalic] [GillSans-LightItalic] [features=default]
+ \definefontsynonym [SansBold] [GillSans-Regular] [features=default]
+ \definefontsynonym [SansBoldItalic] [GillSans-Italic] [features=default]
+\stoptypescript
+
+\starttypescript [sans] [gillsans]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [GillSans-Regular] [features=default]
+ \definefontsynonym [SansItalic] [GillSans-Italic] [features=default]
+ \definefontsynonym [SansBold] [GillSans-Bold] [features=default]
+ \definefontsynonym [SansBoldItalic] [GillSans-BoldItalic] [features=default]
+\stoptypescript
+
+\starttypescript [gillsans-light,gillsans]
+ \definetypeface [\typescriptone] [ss] [sans] [\typescriptone] [default]
+\stoptypescript
+
+% Helvetica Neuse
+
+\starttypescript [sans] [helvetica-neue-ultralight]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [HelveticaNeue-UltraLight] [features=default]
+ \definefontsynonym [SansItalic] [HelveticaNeue-UltraLightItalic] [features=default]
+ \definefontsynonym [SansBold] [HelveticaNeue-Light] [features=default]
+ \definefontsynonym [SansBoldItalic] [HelveticaNeue-LightItalic] [features=default]
+\stoptypescript
+
+\starttypescript [sans] [helvetica-neue-light]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [HelveticaNeue-Light] [features=default]
+ \definefontsynonym [SansItalic] [HelveticaNeue-LightItalic] [features=default]
+ \definefontsynonym [SansBold] [HelveticaNeue-Regular] [features=default]
+ \definefontsynonym [SansBoldItalic] [HelveticaNeue-Italic] [features=default]
+\stoptypescript
+
+\starttypescript [sans] [helvetica-neue]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [HelveticaNeue-Regular] [features=default]
+ \definefontsynonym [SansItalic] [HelveticaNeue-Italic] [features=default]
+ \definefontsynonym [SansBold] [HelveticaNeue-Bold] [features=default]
+ \definefontsynonym [SansBoldItalic] [HelveticaNeue-BoldItalic] [features=default]
+\stoptypescript
+
+\starttypescript [sans] [helvetica-neue-boldcondensed]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [HelveticaNeue-BoldCond] [features=default]
+ \definefontsynonym [SansBold] [HelveticaNeue-BlackCond] [features=default]
+\stoptypescript
+
+\starttypescript [helvetica-neue-ultralight,helvetica-neue-light,helvetica-neue,helvetica-neue-boldcondensed]
+ \definetypeface [\typescriptone] [ss] [sans] [\typescriptone] [default]
+\stoptypescript
+
+% Hiragino Mincho
+
+\starttypescript [serif] [hiragino-mincho]
+ \setups[font:fallback:serif]
+ \definefontsynonym [Serif] [HiraginoMinchoPro-Regular] [features=japanese]
+ \definefontsynonym [SerifBold] [HiraginoMinchoPro-Bold] [features=japanese]
+\stoptypescript
+
+% \starttypescript [serif] [hiragino-mincho]
+% \setups[font:fallback:serif]
+% \definefontsynonym [Serif] [HiraginoMinchoProN-Regular] [features=japanese]
+% \definefontsynonym [SerifBold] [HiraginoMinchoProN-Bold] [features=japanese]
+% \stoptypescript
+
+\starttypescript [hiragino-mincho]
+ \definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default]
+\stoptypescript
+
+% Hiragino Maru
+
+\starttypescript [sans] [hiragino-maru]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [HiraginoMaruGothicPro-Regular] [features=japanese]
+\stoptypescript
+
+% \starttypescript [sans] [hiragino-maru]
+% \setups[font:fallback:sans]
+% \definefontsynonym [Sans] [HiraginoMaruGothicProN-Regular] [features=japanese]
+% \stoptypescript
+
+\starttypescript [hiragino-maru]
+ \definetypeface [\typescriptone] [ss] [sans] [\typescriptone] [default]
+\stoptypescript
+
+% Hiragino Kaku
+
+\starttypescript [sans] [hiragino-kaku]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [HiraginoKakuGothicPro-Regular] [features=japanese]
+ \definefontsynonym [SansBold] [HiraginoKakuGothicPro-Bold] [features=japanese]
+\stoptypescript
+
+% \starttypescript [sans] [hiragino-kaku]
+% \setups[font:fallback:sans]
+% \definefontsynonym [Sans] [HiraginoKakuGothicProN-Regular] [features=japanese]
+% \definefontsynonym [SansBold] [HiraginoKakuGothicProN-Bold] [features=japanese]
+% \stoptypescript
+
+\starttypescript [hiragino-kaku]
+ \definetypeface [\typescriptone] [ss] [sans] [\typescriptone] [default]
+\stoptypescript
+
+% Hoefler Text
+
+\starttypescript [serif] [hoefler]
+ \setups[font:fallback:serif]
+ \definefontsynonym [Serif] [HoeflerText-Regular] [features=default]
+ \definefontsynonym [SerifItalic] [HoeflerText-Italic] [features=default]
+ \definefontsynonym [SerifBold] [HoeflerText-Black] [features=default]
+ \definefontsynonym [SerifBoldItalic] [HoeflerText-BlackItalic] [features=default]
+\stoptypescript
+
+\starttypescript [hoefler]
+ \definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default]
+\stoptypescript
+
+% Impact
+
+\starttypescript [sans] [impact]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Impact-Regular] [features=default]
+\stoptypescript
+
+\starttypescript [impact]
+ \definetypeface [\typescriptone] [ss] [sans] [\typescriptone] [default]
+\stoptypescript
+
+% Andale Mono / Monaco
+
+\starttypescript [mono] [andalemono,monaco]
+ \setups[font:fallback:mono]
+ \definefontsynonym [Mono] [\typescriptprefix{n:\typescripttwo}-Regular] [features=default]
+\stoptypescript
+
+\starttypescript [andalemono,monaco]
+ \definetypeface [\typescriptone] [tt] [mono] [\typescriptone] [default]
+\stoptypescript
+
+% Optima
+
+\starttypescript [sans] [optima]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Optima-Regular] [features=default]
+ \definefontsynonym [SansItalic] [Optima-Italic] [features=default]
+ \definefontsynonym [SansBold] [Optima-Bold] [features=default]
+ \definefontsynonym [SansBoldItalic] [Optima-BoldItalic] [features=default]
+\stoptypescript
+
+\starttypescript [sans] [optima-bold]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Optima-Bold] [features=default]
+ \definefontsynonym [SansItalic] [Optima-BoldItalic] [features=default]
+ \definefontsynonym [SansBold] [Optima-Black] [features=default]
+\stoptypescript
+
+\starttypescript [optima,optima-bold]
+ \definetypeface [\typescriptone] [ss] [sans] [\typescriptone] [default]
+\stoptypescript
+
+% Papyrus
+
+\starttypescript [sans] [papyrus]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Papyrus-Regular] [features=default]
+\stoptypescript
+
+\starttypescript [papyrus]
+ \definetypeface [\typescriptone] [ss] [sans] [\typescriptone] [default]
+\stoptypescript
+
+% STFangsong
+
+\starttypescript [serif] [stfangsong]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Serif] [STFangsong-Regular] [features=chinese]
+\stoptypescript
+
+\starttypescript [stfangsong]
+ \definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default]
+\stoptypescript
+
+% STHeiti
+
+\starttypescript [sans] [stheiti]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [STXihei-Light] [features=chinese]
+ \definefontsynonym [SansBold] [STKaiti-Regular] [features=chinese]
+\stoptypescript
+
+\starttypescript [stheiti]
+ \definetypeface [\typescriptone] [ss] [sans] [\typescriptone] [default]
+\stoptypescript
+
+% STKaiti
+
+\starttypescript [serif] [stkaiti]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Serif] [STKaiti-Regular] [features=chinese]
+\stoptypescript
+
+\starttypescript [stkaiti]
+ \definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default]
+\stoptypescript
+
+% STSong
+
+\starttypescript [serif] [stsong]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Serif] [STSong-Regular] [features=chinese]
+\stoptypescript
+
+\starttypescript [stsong]
+ \definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default]
+\stoptypescript
+
+% Chalkboard / Comic Sans / Tahoma
+
+\starttypescript [sans] [chalkboard,comicsans,lucidagrande,tahoma]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [\typescriptprefix{n:\typescripttwo}-Regular] [features=default]
+ \definefontsynonym [SansBold] [\typescriptprefix{n:\typescripttwo}-Bold] [features=default]
+\stoptypescript
+
+\starttypescript [chalkboard,comicsans,tahoma]
+ \definetypeface [\typescriptone] [ss] [sans] [\typescriptone] [default]
+\stoptypescript
+
+% Cochin / Georgia / Times New Roman
+
+\starttypescript [serif] [cochin,georgia,timesnewroman]
+ \setups[font:fallback:serif]
+ \definefontsynonym [Serif] [\typescriptprefix{n:\typescripttwo}-Regular] [features=default]
+ \definefontsynonym [SerifItalic] [\typescriptprefix{n:\typescripttwo}-Italic] [features=default]
+ \definefontsynonym [SerifBold] [\typescriptprefix{n:\typescripttwo}-Bold] [features=default]
+ \definefontsynonym [SerifBoldItalic] [\typescriptprefix{n:\typescripttwo}-BoldItalic] [features=default]
+\stoptypescript
+
+\starttypescript [cochin,georgia,timesnewroman]
+ \definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default]
+\stoptypescript
+
+% Trebuchet / Verdana
+
+\starttypescript [sans] [trebuchet,verdana]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [\typescriptprefix{n:\typescripttwo}-Regular] [features=default]
+ \definefontsynonym [SansItalic] [\typescriptprefix{n:\typescripttwo}-Italic] [features=default]
+ \definefontsynonym [SansBold] [\typescriptprefix{n:\typescripttwo}-Bold] [features=default]
+ \definefontsynonym [SansBoldItalic] [\typescriptprefix{n:\typescripttwo}-BoldItalic] [features=default]
+\stoptypescript
+
+\starttypescript [trebuchet,verdana]
+ \definetypeface [\typescriptone] [ss] [sans] [\typescriptone] [default]
+\stoptypescript
+
+\stoptypescriptcollection
+
+% XeTeX / LuaTeX font names
+
+\loadmarkfile{type-mac}
+
+\endinput
diff --git a/Master/texmf-dist/tex/context/base/type-map.tex b/Master/texmf-dist/tex/context/base/type-map.tex
deleted file mode 100644
index 37eef0ed599..00000000000
--- a/Master/texmf-dist/tex/context/base/type-map.tex
+++ /dev/null
@@ -1,197 +0,0 @@
-%D \module
-%D [ file=type-map,
-%D version=2001.04.12,
-%D title=\CONTEXT\ Typescript Macros,
-%D subtitle=Mapfile scripts,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\starttypescriptcollection[map files]
-
-%D This one plays safe:
-
-\starttypescript [map] [base] [all]
- \loadmapfile[original-base.map]
- \loadmapfile[ec-base.map]
- \loadmapfile[texnansi-base.map]
- \loadmapfile[8r-base.map]
- \loadmapfile[qx-base.map]
- \loadmapfile[t5-base.map]
-\stoptypescript
-
-\starttypescript [map] [base,euler,ams] [all]
- \loadmapfile[original-ams-base.map]
- %loadmapfile[original-ams-cmr.map]
- \loadmapfile[original-ams-euler.map]
- \loadmapfile[original-public-lm.map]
-\stoptypescript
-
-% This is the base map file, load it to be sure.
-
-\starttypescript [map] [all] [ec,8r,texnansi,qx,t5]
- \loadmapfile[original-base.map]
- \loadmapfile[\typescriptthree-base.map]
-\stoptypescript
-
-% if we were in full control, we could have
-%
-% \starttypescript [berry] [ec]
-% \loadmapfile[ec-base.map]
-% \stoptypescript
-
-% cmr and related
-
-\starttypescript [map] [cmr,lm,lmr]
- \loadmapfile[original-public-lm.map]
- \loadmapfile[original-ams-base.map]
- \loadmapfile[original-ams-euler.map]
-\stoptypescript
-
-% cyrillic
-
-\starttypescript [map] [computer-modern] [t2a,t2b,t2c,x2]
- \loadmapfile[subset-cmsuper-\typescriptthree.map]
- \loadmapfile[cm-super-\typescriptthree.map]
-\stoptypescript
-
-% latin modern (watch the unfortunate \quote {lm-encoding} order
-% in the name; for the moment we ship copies of the map files.
-
-\starttypescript [map] [modern,modern-vari,modern-cond,computer-modern,latin-modern,latin-modern-vari,latin-modern-cond,] [ec,texnansi,qx,t5]
- % this was what we had at the start and what fits best into our naming scheme
- % well, all those changes in lm gave too many user problem reports so i revert to:
- % \loadmapfile[\typescriptthree-public-lm.map]
- % this one also fits into the naming scheme but has been dropped by the distributers
- % \loadmapfile[\typescriptthree-lm.map]
- % this is what the latest distributions provide
- \loadmapfile[lm-\typescriptthree.map] % maybe some day
- \loadmapfile[lm-math.map]
- \loadmapfile[lm-rm.map]
-\stoptypescript
-
-% \usetypescript [map] [latin-modern-os] [ec] % lm is loaded under ec regime
-% \starttext
-% Is onze Frans nu 41, 52, 63, 74, 85 of 96 jaar \quote {old}?
-% \stoptext
-
-\starttypescript [map] [latin-modern-os] [ec,texnansi,qx,t5]
- \loadmapfile[\typescriptthree-os-public-lm.map]
-\stoptypescript
-
-% the next applies to texfont generated metrics
-
-\starttypescript [map] [utopia] [ec,texnansi,t5,8r]
- \loadmapfile[\typescriptthree-adobe-utopia.map]
-\stoptypescript
-
-\starttypescript [map] [charter] [ec,texnansi,t5,8r]
- \loadmapfile[\typescriptthree-bitstrea-charter.map]
-\stoptypescript
-
-% \starttypescript [map] [antykwa-torunska,antykwa-torunska-light,antykwa-torunska-cond,antykwa-torunska-lightcond] [texnansi,ec,qx,t5,t2a,t2b,t2c,default]
-% \loadmapfile[\typescriptthree-antt.map]
-% \loadmapfile[rm-antt.map]
-% \loadmapfile[mi-antt.map]
-% \loadmapfile[sy-antt.map]
-% \loadmapfile[ex-antt.map]
-% \stoptypescript
-
-\starttypescript [map] [antykwa-torunska,antykwa-torunska-light,antykwa-torunska-cond,antykwa-torunska-lightcond] [texnansi,ec,qx,t5,t2a,t2b,t2c,default]
- \loadmapfile[antt-\typescriptthree.map]
- \loadmapfile[antt-rm.map]
- \loadmapfile[antt-mi.map]
- \loadmapfile[antt-sy.map]
- \loadmapfile[antt-ex.map]
-\stoptypescript
-
-\starttypescript [map] [antykwa-poltawskiego] [ec,texnansi,qx,t5]
- \loadmapfile[\typescriptthree-public-antp.map]
-\stoptypescript
-
-% \starttypescript [map] [iwona,iwona-light,iwona-medium,iwona-heavy] [ec,texnansi,qx,t5]
-% \loadmapfile[\typescriptthree-iwona.map]
-% \loadmapfile[rm-iwona.map]
-% \loadmapfile[mi-iwona.map]
-% \loadmapfile[sy-iwona.map]
-% \loadmapfile[ex-iwona.map]
-% \stoptypescript
-
-\starttypescript [map] [iwona,iwona-light,iwona-medium,iwona-heavy] [ec,texnansi,qx,t5]
- \loadmapfile[iwona-\typescriptthree.map]
- \loadmapfile[iwona-rm.map]
- \loadmapfile[iwona-mi.map]
- \loadmapfile[iwona-sy.map]
- \loadmapfile[iwona-ex.map]
-\stoptypescript
-
-% \starttypescript [map] [kurier,kurier-light,kurier-medium,kurier-heavy] [ec,texnansi,qx,t5,default]
-% \loadmapfile[\typescriptthree-kurier.map]
-% \loadmapfile[rm-kurier.map]
-% \loadmapfile[mi-kurier.map]
-% \loadmapfile[sy-kurier.map]
-% \loadmapfile[ex-kurier.map]
-% \stoptypescript
-
-\starttypescript [map] [kurier,kurier-light,kurier-medium,kurier-heavy] [ec,texnansi,qx,t5,default]
- \loadmapfile[kurier-\typescriptthree.map]
- \loadmapfile[kurier-rm.map]
- \loadmapfile[kurier-mi.map]
- \loadmapfile[kurier-sy.map]
- \loadmapfile[kurier-ex.map]
-\stoptypescript
-
-\starttypescript [map] [bookman] [ec,texnansi,t5,8r]
- \loadmapfile[\typescriptthree-urw-bookman.map]
-\stoptypescript
-
-\starttypescript [map] [courier] [ec,texnansi,t5,8r]
- \loadmapfile[\typescriptthree-urw-courier.map]
-\stoptypescript
-
-\starttypescript [map] [helvetica] [ec,texnansi,t5,8r]
- \loadmapfile[\typescriptthree-urw-helvetica.map]
-\stoptypescript
-
-\starttypescript [map] [palatino] [ec,texnansi,t5,8r]
- \loadmapfile[\typescriptthree-urw-palatino.map]
- %loadmapfile[\typescriptthree-public-pfl.map]
-\stoptypescript
-
-\starttypescript [map] [times] [ec,texnansi,t5,8r]
- \loadmapfile[\typescriptthree-urw-times.map]
-\stoptypescript
-
-\starttypescript [map] [chancery] [ec,texnansi,t5,8r]
- \loadmapfile[\typescriptthree-urw-zapfchan.map]
-\stoptypescript
-
-\starttypescript [map] [schoolbook] [ec,texnansi,t5,8r]
- \loadmapfile[\typescriptthree-urw-ncntrsbk.map]
-\stoptypescript
-
-% once i can be sure that the map files are in the tree, i will
-% use those instead of original (too many variants anyway)
-
-\starttypescript [map] [palatino] [default,ec,texnansi,t5,8r]
- \loadmapfile[original-youngryu-px.map]
-\stoptypescript
-
-\starttypescript [map] [times] [default,ec,texnansi,t5,8r]
- \loadmapfile[original-youngryu-tx.map]
-\stoptypescript
-
-% to do: maybe original, maybe not
-
-\starttypescript [map] [fourier] [ec]
- \loadmapfile[fourier.map]
- \loadmapfile[fourier-utopia-expert.map]
-\stoptypescript
-
-\stoptypescriptcollection
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/type-msw.tex b/Master/texmf-dist/tex/context/base/type-msw.tex
index 343e76eab84..4757b5008b0 100644
--- a/Master/texmf-dist/tex/context/base/type-msw.tex
+++ b/Master/texmf-dist/tex/context/base/type-msw.tex
@@ -38,12 +38,12 @@
\definefontsynonym [SansBoldItalic] [Verdana-BoldItalic]
\stoptypescript
-\starttypescript [sans] [verdana] [texnansi]
+\starttypescript [sans] [verdana] [texnansi,ec,qx]
\definefontsynonym [Verdana] [\typescriptthree-verdana] [encoding=\typescriptthree]
\definefontsynonym [Verdana-Bold] [\typescriptthree-verdanab] [encoding=\typescriptthree]
\definefontsynonym [Verdana-Italic] [\typescriptthree-verdanai] [encoding=\typescriptthree]
\definefontsynonym [Verdana-BoldItalic] [\typescriptthree-verdanaz] [encoding=\typescriptthree]
- \loadmapfile[texnansi-microsoft-verdana.map]
+ \loadmapfile[\typescriptthree-microsoft-verdana.map]
\stoptypescript
% arial
@@ -56,12 +56,12 @@
\definefontsynonym [SansBoldItalic] [Arial-BoldItalicMT]
\stoptypescript
-\starttypescript [sans] [arial] [texnansi]
+\starttypescript [sans] [arial] [texnansi,ec,qx]
\definefontsynonym [ArialMT] [\typescriptthree-arial] [encoding=\typescriptthree]
\definefontsynonym [Arial-BoldMT] [\typescriptthree-arialbd] [encoding=\typescriptthree]
\definefontsynonym [Arial-ItalicMT] [\typescriptthree-ariali] [encoding=\typescriptthree]
\definefontsynonym [Arial-BoldItalicMT] [\typescriptthree-arialbi] [encoding=\typescriptthree]
- \loadmapfile[texnansi-microsoft-arial.map]
+ \loadmapfile[\typescriptthree-microsoft-arial.map]
\stoptypescript
\stoptypescriptcollection
diff --git a/Master/texmf-dist/tex/context/base/type-old.tex b/Master/texmf-dist/tex/context/base/type-old.tex
deleted file mode 100644
index 881deeefeb0..00000000000
--- a/Master/texmf-dist/tex/context/base/type-old.tex
+++ /dev/null
@@ -1,320 +0,0 @@
-%D \module
-%D [ file=type-old,
-%D version=2005.09.07, % moved from type-*.tex
-%D title=\CONTEXT\ Typescript Macros,
-%D subtitle=Ghosts from the Past,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\endinput
-
-% \starttypescript[all][modern,latin-modern,computer-modern][pl0]
-%
-% \definefontsynonym[pl0-lmb10] [plb10] [encoding=pl0]
-% \definefontsynonym[pl0-lmbo10] [plbsl10] [encoding=pl0]
-% \definefontsynonym[pl0-lmbx10] [plbx10] [encoding=pl0]
-% \definefontsynonym[pl0-lmbx12] [plbx12] [encoding=pl0]
-% \definefontsynonym[pl0-lmbx5] [plbx5] [encoding=pl0]
-% \definefontsynonym[pl0-lmbx6] [plbx6] [encoding=pl0]
-% \definefontsynonym[pl0-lmbx7] [plbx7] [encoding=pl0]
-% \definefontsynonym[pl0-lmbx8] [plbx8] [encoding=pl0]
-% \definefontsynonym[pl0-lmbx9] [plbx9] [encoding=pl0]
-% \definefontsynonym[pl0-lmbxi10] [plbxti10] [encoding=pl0]
-% \definefontsynonym[pl0-lmbxo10] [plbxsl10] [encoding=pl0]
-% \definefontsynonym[pl0-lmcsc10] [plcsc10] [encoding=pl0]
-% \definefontsynonym[pl0-lmcsco10][plcscsl10][encoding=pl0]
-% \definefontsynonym[pl0-lmr10] [plr10] [encoding=pl0]
-% \definefontsynonym[pl0-lmr12] [plr12] [encoding=pl0]
-% \definefontsynonym[pl0-lmr17] [plr17] [encoding=pl0]
-% \definefontsynonym[pl0-lmr5] [plr5] [encoding=pl0]
-% \definefontsynonym[pl0-lmr6] [plr6] [encoding=pl0]
-% \definefontsynonym[pl0-lmr7] [plr7] [encoding=pl0]
-% \definefontsynonym[pl0-lmr8] [plr8] [encoding=pl0]
-% \definefontsynonym[pl0-lmr9] [plr9] [encoding=pl0]
-% \definefontsynonym[pl0-lmri10] [plti10] [encoding=pl0]
-% \definefontsynonym[pl0-lmri12] [plti12] [encoding=pl0]
-% \definefontsynonym[pl0-lmri7] [plti7] [encoding=pl0]
-% \definefontsynonym[pl0-lmri8] [plti8] [encoding=pl0]
-% \definefontsynonym[pl0-lmri9] [plti9] [encoding=pl0]
-% \definefontsynonym[pl0-lmro10] [plsl10] [encoding=pl0]
-% \definefontsynonym[pl0-lmro12] [plsl12] [encoding=pl0]
-% \definefontsynonym[pl0-lmro8] [plsl8] [encoding=pl0]
-% \definefontsynonym[pl0-lmro9] [plsl9] [encoding=pl0]
-% \definefontsynonym[pl0-lmss10] [plss10] [encoding=pl0]
-% \definefontsynonym[pl0-lmss12] [plss12] [encoding=pl0]
-% \definefontsynonym[pl0-lmss17] [plss17] [encoding=pl0]
-% \definefontsynonym[pl0-lmss8] [plss8] [encoding=pl0]
-% \definefontsynonym[pl0-lmss9] [plss9] [encoding=pl0]
-% \definefontsynonym[pl0-lmssbo10][plssbi10] [encoding=pl0]
-% \definefontsynonym[pl0-lmssbx10][plssbx10] [encoding=pl0]
-% \definefontsynonym[pl0-lmssdc10][plssdc10] [encoding=pl0]
-% \definefontsynonym[pl0-lmssdo10][plssdi10] [encoding=pl0]
-% \definefontsynonym[pl0-lmsso10] [plssi10] [encoding=pl0]
-% \definefontsynonym[pl0-lmsso12] [plssi12] [encoding=pl0]
-% \definefontsynonym[pl0-lmsso17] [plssi17] [encoding=pl0]
-% \definefontsynonym[pl0-lmsso8] [plssi8] [encoding=pl0]
-% \definefontsynonym[pl0-lmsso9] [plssi9] [encoding=pl0]
-% \definefontsynonym[pl0-lmssq8] [plssq8] [encoding=pl0]
-% \definefontsynonym[pl0-lmssqbo8][plssqbi8] [encoding=pl0]
-% \definefontsynonym[pl0-lmssqbx8][plssqb8] [encoding=pl0]
-% \definefontsynonym[pl0-lmssqo8] [plssqi8] [encoding=pl0]
-% \definefontsynonym[pl0-lmtcsc10][pltcsc10] [encoding=pl0]
-% \definefontsynonym[pl0-lmtt10] [pltt10] [encoding=pl0]
-% \definefontsynonym[pl0-lmtt12] [pltt12] [encoding=pl0]
-% \definefontsynonym[pl0-lmtt8] [pltt8] [encoding=pl0]
-% \definefontsynonym[pl0-lmtt9] [pltt9] [encoding=pl0]
-% \definefontsynonym[pl0-lmtti10] [pltti10] [encoding=pl0]
-% \definefontsynonym[pl0-lmtto10] [plsltt10] [encoding=pl0]
-% \definefontsynonym[pl0-lmvtt10] [plvtt10] [encoding=pl0]
-% \definefontsynonym[pl0-lmvtto10][plvtti10] [encoding=pl0]
-%
-% \stoptypescript
-
-% \starttypescript[all][modern,latin-modern,computer-modern][il2]
-%
-% \definefontsynonym[il2-lmb10] [csb10] [encoding=il2]
-% \definefontsynonym[il2-lmbo10] [csbsl10] [encoding=il2]
-% \definefontsynonym[il2-lmbx10] [csbx10] [encoding=il2]
-% \definefontsynonym[il2-lmbx12] [csbx12] [encoding=il2]
-% \definefontsynonym[il2-lmbx5] [csbx5] [encoding=il2]
-% \definefontsynonym[il2-lmbx6] [csbx6] [encoding=il2]
-% \definefontsynonym[il2-lmbx7] [csbx7] [encoding=il2]
-% \definefontsynonym[il2-lmbx8] [csbx8] [encoding=il2]
-% \definefontsynonym[il2-lmbx9] [csbx9] [encoding=il2]
-% \definefontsynonym[il2-lmbxi10] [csbxti10] [encoding=il2]
-% \definefontsynonym[il2-lmbxo10] [csbxsl10] [encoding=il2]
-% \definefontsynonym[il2-lmcsc10] [cscsc10] [encoding=il2]
-% \definefontsynonym[il2-lmcsco10][cscscls10][encoding=il2]
-% \definefontsynonym[il2-lmr10] [csr10] [encoding=il2]
-% \definefontsynonym[il2-lmr12] [csr12] [encoding=il2]
-% \definefontsynonym[il2-lmr17] [csr17] [encoding=il2]
-% \definefontsynonym[il2-lmr5] [csr5] [encoding=il2]
-% \definefontsynonym[il2-lmr6] [csr6] [encoding=il2]
-% \definefontsynonym[il2-lmr7] [csr7] [encoding=il2]
-% \definefontsynonym[il2-lmr8] [csr8] [encoding=il2]
-% \definefontsynonym[il2-lmr9] [csr9] [encoding=il2]
-% \definefontsynonym[il2-lmri10] [csti10] [encoding=il2]
-% \definefontsynonym[il2-lmri12] [csti12] [encoding=il2]
-% \definefontsynonym[il2-lmri7] [csti7] [encoding=il2]
-% \definefontsynonym[il2-lmri8] [csti8] [encoding=il2]
-% \definefontsynonym[il2-lmri9] [csti9] [encoding=il2]
-% \definefontsynonym[il2-lmro10] [cssl10] [encoding=il2]
-% \definefontsynonym[il2-lmro12] [cssl12] [encoding=il2]
-% \definefontsynonym[il2-lmro8] [cssl8] [encoding=il2]
-% \definefontsynonym[il2-lmro9] [cssl9] [encoding=il2]
-% \definefontsynonym[il2-lmss10] [csss10] [encoding=il2]
-% \definefontsynonym[il2-lmss12] [csss12] [encoding=il2]
-% \definefontsynonym[il2-lmss17] [csss17] [encoding=il2]
-% \definefontsynonym[il2-lmss8] [csss8] [encoding=il2]
-% \definefontsynonym[il2-lmss9] [csss9] [encoding=il2]
-% \definefontsynonym[il2-lmssbo10][csssbi10] [encoding=il2]
-% \definefontsynonym[il2-lmssbx10][csssbx10] [encoding=il2]
-% \definefontsynonym[il2-lmssdc10][csssdc10] [encoding=il2]
-% \definefontsynonym[il2-lmssdo10][csssdi10] [encoding=il2]
-% \definefontsynonym[il2-lmsso10] [csssi10] [encoding=il2]
-% \definefontsynonym[il2-lmsso12] [csssi12] [encoding=il2]
-% \definefontsynonym[il2-lmsso17] [csssi17] [encoding=il2]
-% \definefontsynonym[il2-lmsso8] [csssi8] [encoding=il2]
-% \definefontsynonym[il2-lmsso9] [csssi9] [encoding=il2]
-% \definefontsynonym[il2-lmssq8] [csssq8] [encoding=il2]
-% \definefontsynonym[il2-lmssqbo8][csssqbi8] [encoding=il2]
-% \definefontsynonym[il2-lmssqbx8][csssqb8] [encoding=il2]
-% \definefontsynonym[il2-lmssqo8] [csssqi8] [encoding=il2]
-% \definefontsynonym[il2-lmtcsc10][cstcsc10] [encoding=il2]
-% \definefontsynonym[il2-lmtt10] [cstt10] [encoding=il2]
-% \definefontsynonym[il2-lmtt12] [cstt12] [encoding=il2]
-% \definefontsynonym[il2-lmtt8] [cstt8] [encoding=il2]
-% \definefontsynonym[il2-lmtt9] [cstt9] [encoding=il2]
-% \definefontsynonym[il2-lmtti10] [cstti10] [encoding=il2]
-% \definefontsynonym[il2-lmtto10] [cssltt10] [encoding=il2]
-% \definefontsynonym[il2-lmvtt10] [csvtt10] [encoding=il2]
-% \definefontsynonym[il2-lmvtto10][csvtti10] [encoding=il2]
-%
-% \stoptypescript
-
-% \starttypescript[all][modern,latin-modern,computer-modern][t5]
-%
-% \definefontsynonym[t5-lmb10] [vnb10] [encoding=t5]
-% \definefontsynonym[t5-lmbo10] [vnbsl10] [encoding=t5]
-% \definefontsynonym[t5-lmbx10] [vnbx10] [encoding=t5]
-% \definefontsynonym[t5-lmbx12] [vnbx12] [encoding=t5]
-% \definefontsynonym[t5-lmbx5] [vnbx5] [encoding=t5]
-% \definefontsynonym[t5-lmbx6] [vnbx6] [encoding=t5]
-% \definefontsynonym[t5-lmbx7] [vnbx7] [encoding=t5]
-% \definefontsynonym[t5-lmbx8] [vnbx8] [encoding=t5]
-% \definefontsynonym[t5-lmbx9] [vnbx9] [encoding=t5]
-% \definefontsynonym[t5-lmbxi10] [vnbxti10] [encoding=t5]
-% \definefontsynonym[t5-lmbxo10] [vnbxsl10] [encoding=t5]
-% \definefontsynonym[t5-lmcsc10] [vncsc10] [encoding=t5]
-% \definefontsynonym[t5-lmcsco10][vncscsl10][encoding=t5]
-% \definefontsynonym[t5-lmr10] [vnr10] [encoding=t5]
-% \definefontsynonym[t5-lmr12] [vnr12] [encoding=t5]
-% \definefontsynonym[t5-lmr17] [vnr17] [encoding=t5]
-% \definefontsynonym[t5-lmr5] [vnr5] [encoding=t5]
-% \definefontsynonym[t5-lmr6] [vnr6] [encoding=t5]
-% \definefontsynonym[t5-lmr7] [vnr7] [encoding=t5]
-% \definefontsynonym[t5-lmr8] [vnr8] [encoding=t5]
-% \definefontsynonym[t5-lmr9] [vnr9] [encoding=t5]
-% \definefontsynonym[t5-lmri10] [vnti10] [encoding=t5]
-% \definefontsynonym[t5-lmri12] [vnti12] [encoding=t5]
-% \definefontsynonym[t5-lmri7] [vnti7] [encoding=t5]
-% \definefontsynonym[t5-lmri8] [vnti8] [encoding=t5]
-% \definefontsynonym[t5-lmri9] [vnti9] [encoding=t5]
-% \definefontsynonym[t5-lmro10] [vnsl10] [encoding=t5]
-% \definefontsynonym[t5-lmro12] [vnsl12] [encoding=t5]
-% \definefontsynonym[t5-lmro8] [vnsl8] [encoding=t5]
-% \definefontsynonym[t5-lmro9] [vnsl9] [encoding=t5]
-% \definefontsynonym[t5-lmss10] [vnss10] [encoding=t5]
-% \definefontsynonym[t5-lmss12] [vnss12] [encoding=t5]
-% \definefontsynonym[t5-lmss17] [vnss17] [encoding=t5]
-% \definefontsynonym[t5-lmss8] [vnss8] [encoding=t5]
-% \definefontsynonym[t5-lmss9] [vnss9] [encoding=t5]
-% \definefontsynonym[t5-lmssbo10][vnssbi10] [encoding=t5]
-% \definefontsynonym[t5-lmssbx10][vnssbx10] [encoding=t5]
-% \definefontsynonym[t5-lmssdc10][vnssdc10] [encoding=t5]
-% \definefontsynonym[t5-lmssdo10][vnssdi10] [encoding=t5]
-% \definefontsynonym[t5-lmsso10] [vnssi10] [encoding=t5]
-% \definefontsynonym[t5-lmsso12] [vnssi12] [encoding=t5]
-% \definefontsynonym[t5-lmsso17] [vnssi17] [encoding=t5]
-% \definefontsynonym[t5-lmsso8] [vnssi8] [encoding=t5]
-% \definefontsynonym[t5-lmsso9] [vnssi9] [encoding=t5]
-% \definefontsynonym[t5-lmssq8] [vnssq8] [encoding=t5]
-% \definefontsynonym[t5-lmssqbo8][vnssqbi8] [encoding=t5]
-% \definefontsynonym[t5-lmssqbx8][vnssqb8] [encoding=t5]
-% \definefontsynonym[t5-lmssqo8] [vnssqi8] [encoding=t5]
-% \definefontsynonym[t5-lmtcsc10][vntcsc10] [encoding=t5]
-% \definefontsynonym[t5-lmtt10] [vntt10] [encoding=t5]
-% \definefontsynonym[t5-lmtt12] [vntt12] [encoding=t5]
-% \definefontsynonym[t5-lmtt8] [vntt8] [encoding=t5]
-% \definefontsynonym[t5-lmtt9] [vntt9] [encoding=t5]
-% \definefontsynonym[t5-lmtti10] [vntti10] [encoding=t5]
-% \definefontsynonym[t5-lmtto10] [vnsltt10] [encoding=t5]
-% \definefontsynonym[t5-lmvtt10] [vnvtt10] [encoding=t5]
-% \definefontsynonym[t5-lmvtto10][vnvtti10] [encoding=t5]
-%
-% \stoptypescript
-
-% \starttypescript [cmr]
-% \usetypescript [serif,sans,mono,math] [computer-modern,latin-modern] [default,name,size]
-% \usemathcollection[default]
-% \stoptypescript
-
-% \starttypescript [aer]
-% \usetypescript [serif,sans,mono,math] [computer-modern,latin-modern] [default,name,size,ec]
-% \usemathcollection[default]
-% \stoptypescript
-
-% \starttypescript [csr]
-% \usetypescript [serif,sans,mono,math] [computer-modern,latin-modern] [default,name,size,il2]
-% \usemathcollection[default]
-% \stoptypescript
-
-% \starttypescript [plr]
-% \usetypescript [serif,sans,mono,math] [computer-modern,latin-modern] [default,name,size,pl0]
-% \usemathcollection[default]
-% \stoptypescript
-
-% \starttypescript [vnr]
-% \usetypescript [serif,sans,mono,math] [computer-modern,latin-modern] [default,name,size,t5]
-% \usemathcollection[default]
-% \stoptypescript
-
-% \starttypescript [map] [il2,csr]
-% \loadmapfile[original-public-csr.map]
-% \stoptypescript
-
-% \starttypescript [map] [pl0,plr]
-% \loadmapfile[original-public-plr.map]
-% \stoptypescript
-
-% \starttypescript [map] [vnr]
-% \loadmapfile[original-public-vnr.map]
-% \stoptypescript
-
-% \starttypescript [map] [il2,csr]
-% \loadmapfile[il2-public-lm.map]
-% \stoptypescript
-
-% \starttypescript [map] [pl0,plr]
-% \loadmapfile[pl0-public-lm.map]
-% \stoptypescript
-
-% \starttypescript [map] [t5,vnr]
-% \loadmapfile[t5-public-lm.map]
-% \stoptypescript
-
-% support for alternative shapes has been removed from latin modern
-%
-% \starttypescript [map] [latin-modern-var] [ec,texnansi,qx,t5,pl0,il2]
-% \loadmapfile[\typescriptthree-var-exclusive-public-lm.map]
-% \stoptypescript
-
-% \starttypescript [map] [cmr]
-% \loadmapfile[original-ams-cmr.map]
-% \loadmapfile[original-ams-euler.map]
-% \stoptypescript
-% \starttypescript [map] [lm,lmr]
-% \loadmapfile[original-public-lm.map]
-% \stoptypescript
-
-% per 20050201 we moved to latin modern for plr/csr/vnr
-%
-% \starttypescript [map] [base] [all]
-% \loadmapfile[original-public-plr.map]
-% \loadmapfile[original-public-csr.map]
-% \loadmapfile[original-public-vnr.map]
-% \stoptypescript
-
-% \starttypescript [cmr]
-% \usetypescript [serif,sans,mono,math] [computer-modern,latin-modern] [default,name,size]
-% \usemathcollection[default]
-% \stoptypescript
-
-% \starttypescript [plr]
-% \usetypescript [serif,sans,mono,math] [computer-modern,latin-modern] [default,name,size,pl0]
-% \usemathcollection[default]
-% \stoptypescript
-
-% \starttypescript [csr]
-% \usetypescript [serif,sans,mono,math] [computer-modern,latin-modern] [default,name,size,il2]
-% \usemathcollection[default]
-% \stoptypescript
-
-% \starttypescript [aer]
-% \usetypescript [serif,sans,mono,math] [computer-modern,latin-modern] [default,name,size,ec]
-% \usemathcollection[default]
-% \stoptypescript
-
-% \starttypescript [vnr]
-% \usetypescript [serif,sans,mono,math] [computer-modern,latin-modern] [default,name,size,t5]
-% \usemathcollection[default]
-% \stoptypescript
-
-% \starttypescript [ant]
-% \usetypescript [serif] [antykwa-torunska] [name,\defaultencoding]
-% \usetypescript [serif] [default] [size]
-% \usetypescript [all] [antykwa-torunska] [\defaultencoding]
-% \stoptypescript
-
-% \starttypescript [ppl]
-% \usetypescript [serif] [palatino] [name,\defaultencoding]
-% \usetypescript [serif] [default] [size]
-% \usetypescript [all] [palatino] [\defaultencoding]
-% \stoptypescript
-
-% %D With thanks to Berthold Horn from YandY for providing me
-% %D evaluation copies of the MathTimePlus fonts.
-%
-% \starttypescript [tim]
-% \usetypescript [math] [times] [all]
-% \usetypescript [math] [default] [size]
-% \usemathcollection[tim]
-% \usetypescript [all] [times] [\defaultencoding]
-% \stoptypescript
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/type-omg.tex b/Master/texmf-dist/tex/context/base/type-omg.tex
deleted file mode 100644
index 606b8449b65..00000000000
--- a/Master/texmf-dist/tex/context/base/type-omg.tex
+++ /dev/null
@@ -1,204 +0,0 @@
-%D \module
-%D [ file=type-omg,
-%D version=2002.05.15,
-%D title=\CONTEXT\ Typescript Macros,
-%D subtitle=Basic \OMEGA\ Gamma Definitions,
-%D author={Idris Samawi Hamid, Hans Hagen},
-%D date=\currentdate,
-%D copyright={PRAGMA-ADE, Idris Samawi Hamid}]
-%
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D I need to document this module a bit. See \type {m-gamma}
-%D for more information.
-
-\definestyle [normalvariant] [\nv] [] % so we can get ucvtt (Unicode Variable Typewriter)
-
-%D omarab:
-
-\starttypescriptcollection[omega]
-
-\starttypescript [naskh] [omega] [name]
-
- \definefontsynonym [OmegaArabic] [omarab]
- \definefontsynonym [OmegaArabic-Bold] [omarabb]
-
- \definefontsynonym [Naskh] [OmegaArabic]
- \definefontsynonym [NaskhBold] [OmegaArabic-Bold]
-
-\stoptypescript
-
-\starttypescript [naskh] [omega] [size]
-
- \definebodyfont
- [20.7pt,17.3pt,14.4pt,12pt,11pt,10pt,9pt,8pt,7pt,6pt]
- [rm]
- [tf=Naskh sa 1,
- bf=NaskhBold sa 1,
- it=Naskh sa 1,
- sl=Naskh sa 1,
- bi=NaskhBold sa 1,
- bs=NaskhBold sa 1,
- sc=Naskh sa 1]
-
-\usetypescript [math] [computer-modern] [size]
-
-\stoptypescript
-
-\starttypescript [OmegaArab]
-
- \definebodyfontenvironment
- [omarb]
- [default]
- [interlinespace=3ex]
-
- \definetypeface [omarb] [rm] [naskh] [omega] [omega]
-
-\stoptypescript
-
-%D omlgc:
-
-\starttypescript [serif] [omega] [name]
-
- \definefontsynonym [OmegaSerif] [omlgc]
- \definefontsynonym [OmegaSerif-Bold] [omlgcb]
- \definefontsynonym [OmegaSerif-Italic] [omlgci]
- \definefontsynonym [OmegaSerif-Slanted] [omlgci]
- \definefontsynonym [OmegaSerif-BoldItalic] [omlgcbi]
- \definefontsynonym [OmegaSerif-BoldSlanted][omlgcbi]
- \definefontsynonym [OmegaSerif-Caps] [omlgc]
-
- \definefontsynonym [Serif] [OmegaSerif]
- \definefontsynonym [SerifBold] [OmegaSerif-Bold]
- \definefontsynonym [SerifItalic] [OmegaSerif-Italic]
- \definefontsynonym [SerifSlanted] [OmegaSerif-Slanted]
- \definefontsynonym [SerifBoldItalic] [OmegaSerif-BoldItalic]
- \definefontsynonym [SerifBoldSlanted] [OmegaSerif-BoldSlanted]
- \definefontsynonym [SerifCaps] [OmegaSerif-Caps]
-
-\stoptypescript
-
-\starttypescript [mono] [omega] [name]
-
- \definefontsynonym [OmegaMono] [uctt10]
- \definefontsynonym [OmegaMono-Italic] [ucitt10]
- \definefontsynonym [OmegaMono-Slanted] [ucsltt10]
- \definefontsynonym [OmegaMono-Bold] [uctt10]
- \definefontsynonym [OmegaMono-BoldItalic] [ucitt10]
- \definefontsynonym [OmegaMono-BoldSlanted] [ucsltt10]
- \definefontsynonym [OmegaMono-Caps] [uctt10]
- \definefontsynonym [OmegaMono-Variable] [ucvtt10]
-
- \definefontsynonym [Mono] [OmegaMono]
- \definefontsynonym [MonoBold] [OmegaMono-Bold]
- \definefontsynonym [MonoItalic] [OmegaMono-Italic]
- \definefontsynonym [MonoSlanted] [OmegaMono-Slanted]
- \definefontsynonym [MonoBoldItalic] [OmegaMono-BoldItalic]
- \definefontsynonym [MonoBoldSlanted] [OmegaMono-BoldSlanted]
- \definefontsynonym [MonoCaps] [OmegaMono-Caps]
- \definefontsynonym [MonoVariable] [OmegaMono-Variable]
-
-\stoptypescript
-
-\starttypescript [serif] [omega] [size]
-
- \definebodyfont
- [20.7pt,17.3pt,14.4pt,12pt,11pt,10pt,9pt,8pt,7pt,6pt,5pt,4pt]
- [rm]
- [tf=Serif sa 1,
- bf=SerifBold sa 1,
- it=SerifItalic sa 1,
- sl=SerifSlanted sa 1,
- bi=SerifBoldItalic sa 1,
- bs=SerifBoldSlanted sa 1,
- sc=SerifCaps sa 1]
-
-\usetypescript [math,sans] [computer-modern] [size]
-
-\stoptypescript
-
-%D In order to get default Unicode Variable Typewriter,
-%D uncomment the first \type {\definebodyfont} and then
-%D comment the rest of this typescript.
-
-\starttypescript [mono] [omega] [size]
-
-% \definebodyfont
-% [20.7pt,17.3pt,14.4pt,12pt,11pt,10pt,9pt,8pt,7pt,6pt,5pt,4pt]
-% [rm]
-% [tf=MonoVariable sa 1,
-% bf=MonoBold sa 1
-% it=MonoItalic sa 1,
-% sl=MonoSlanted sa 1,
-% bi=MonoBoldItali sa 1,
-% bs=MonoBoldSlanted sa 1,
-% sc=MonoCaps sa 1]
-
- \definebodyfont
- [20.7pt,17.3pt,14.4pt,12pt,11pt]
- [tt]
- [tf=uctt12 sa 1,
- bf=uctt12 sa 1,
- it=ucitt10 sa 1,
- sl=ucsltt10 sa 1,
- bi=ucitt10 sa 1,
- bs=ucsltt10 sa 1,
- sc=uctt10 sa 1,
- nv=ucvtt10 sa 1]
-
- \definebodyfont
- [10pt]
- [tt]
- [tf=uctt10 at 10pt,
- bf=uctt10 at 10pt,
- it=ucitt10 at 10pt,
- sl=ucsltt10 at 10pt,
- bi=ucitt10 at 10pt,
- bs=ucsltt10 at 10pt,
- sc=uctt10 at 10pt,
- nv=ucvtt10 at 10pt]
-
- \definebodyfont
- [9pt]
- [tt]
- [tf=uctt9 at 9pt,
- bf=uctt9 at 9pt,
- it=ucitt10 at 9pt,
- sl=ucsltt10 at 9pt,
- bi=ucitt10 at 9pt,
- bs=ucsltt10 at 9pt,
- sc=uctt10 at 9pt,
- nv=ucvtt10 at 9pt]
-
- \definebodyfont
- [8pt,7pt,6pt,5pt,4pt]
- [tt]
- [tf=uctt8 sa 1,
- bf=uctt8 sa 1,
- it=ucitt10 sa 1,
- sl=ucsltt10 sa 1,
- bi=ucitt10 sa 1,
- bs=ucsltt10 sa 1,
- sc=uctt10 sa 1,
- nv=ucvtt10 sa 1]
-
-\stoptypescript
-
-\starttypescript [OmegaLGC]
-
- \definebodyfontenvironment
- [omlgc]
- [default]
- [interlinespace=2.8ex]
-
- \definetypeface [omlgc] [rm] [serif] [omega] [omega]
- \definetypeface [omlgc] [tt] [mono] [omega] [omega]
-
-\stoptypescript
-
-\stoptypescriptcollection
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/type-one.mkii b/Master/texmf-dist/tex/context/base/type-one.mkii
new file mode 100644
index 00000000000..b456d7e6438
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/type-one.mkii
@@ -0,0 +1,1185 @@
+%D \module
+%D [ file=type-one,
+%D version=2007.07.30,
+%D title=\CONTEXT\ Typescript Macros,
+%D subtitle=Type One Definitions,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D This file merges the traditional enc, syn and map files into one. If
+%D you think that it looks messy you're right. It shows some history of
+%D \TEX\ fonts and the development towards latin modern.
+
+% texfont --ven=public --col=antt --enc=ec --sou=auto
+% texfont --ven=public --col=antp --enc=ec --sou=auto
+% texfont --ven=urw --col=palatino --enc=ec --sou=auto
+% texfont --ven-lucas --col=sun --enc=ec --sou=.
+
+% \usetypescript [all] [modern] [texnansi]
+% \setupbodyfont[reset] \setupbodyfont[cmr]
+% \starttext \showfont[Serif] \stoptext
+
+\starttypescriptcollection[examples]
+
+\starttypescript [fallback] [texnansi,ec,qx,t5,default]
+ \definetypeface [] [rm] [serif] [modern] [computer-modern] [encoding=\typescripttwo]
+ \definetypeface [] [ss] [sans] [modern] [computer-modern] [encoding=\typescripttwo]
+ \definetypeface [] [tt] [mono] [modern] [computer-modern] [encoding=\typescripttwo]
+ \definetypeface [] [mm] [math] [modern] [computer-modern] [encoding=\typescripttwo]
+ \quittypescriptscanning
+\stoptypescript
+
+\starttypescript [modern] [texnansi,ec,qx,t5,default]
+ \definetypeface [modern] [rm] [serif] [modern] [computer-modern] [encoding=\typescripttwo]
+ \definetypeface [modern] [ss] [sans] [modern] [computer-modern] [encoding=\typescripttwo]
+ \definetypeface [modern] [tt] [mono] [modern] [computer-modern] [encoding=\typescripttwo]
+ \definetypeface [modern] [mm] [math] [modern] [computer-modern] [encoding=\typescripttwo]
+ \quittypescriptscanning
+\stoptypescript
+
+\starttypescript [modern-base] [texnansi,ec,qx,t5,default]
+ \definetypeface [modern] [rm] [serif] [modern] [default] [encoding=\typescripttwo]
+ \definetypeface [modern] [ss] [sans] [modern] [default] [encoding=\typescripttwo]
+ \definetypeface [modern] [tt] [mono] [modern] [default] [encoding=\typescripttwo]
+ \definetypeface [modern] [mm] [math] [modern] [default] [encoding=\typescripttwo]
+ \quittypescriptscanning
+\stoptypescript
+
+\starttypescript [modern-base] [t2a,t2b,t2c,x2]
+ \definetypeface [modern] [rm] [serif] [computer-modern] [default] [encoding=\typescripttwo]
+ \definetypeface [modern] [ss] [sans] [computer-modern] [default] [encoding=\typescripttwo]
+ \definetypeface [modern] [tt] [mono] [computer-modern] [default] [encoding=\typescripttwo]
+ \definetypeface [modern] [mm] [math] [computer-modern] [default] [encoding=\typescripttwo]
+ \quittypescriptscanning
+\stoptypescript
+
+\starttypescript [postscript] [ec,texnansi,cs,qx,rm,t5,t2a,t2b,t2c,l7x]
+ \definetypeface [postscript] [rm] [serif] [times] [default] [encoding=\typescripttwo]
+ \definetypeface [postscript] [ss] [sans] [helvetica] [default] [encoding=\typescripttwo,rscale=0.9]
+ \definetypeface [postscript] [tt] [mono] [courier] [default] [encoding=\typescripttwo,rscale=1.1]
+ \definetypeface [postscript] [mm] [math] [times] [default] [encoding=\typescripttwo]
+ \quittypescriptscanning
+\stoptypescript
+
+\starttypescript [times,termes] [ec,texnansi,cs,qx,rm,t5,t2a,t2b,t2c,l7x]
+ \definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default] [encoding=\typescripttwo]
+ \definetypeface [\typescriptone] [ss] [sans] [helvetica] [default] [encoding=\typescripttwo,rscale=0.9]
+ \definetypeface [\typescriptone] [tt] [mono] [modern] [default] [encoding=\typescripttwo,rscale=1.05]
+ \definetypeface [\typescriptone] [mm] [math] [times] [default] [encoding=\typescripttwo]
+ \quittypescriptscanning
+\stoptypescript
+
+\starttypescript [palatino,pagella] [ec,texnansi,cs,qx,rm,t5,t2a,t2b,t2c,l7x]
+ \definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default] [encoding=\typescripttwo]
+ \definetypeface [\typescriptone] [ss] [sans] [modern] [default] [encoding=\typescripttwo,rscale=1.075]
+ \definetypeface [\typescriptone] [tt] [mono] [modern] [default] [encoding=\typescripttwo,rscale=1.075]
+ \definetypeface [\typescriptone] [mm] [math] [palatino] [default] [encoding=default]
+ \quittypescriptscanning
+\stoptypescript
+
+\starttypescript [fourier] [ec]
+ \definetypeface [fourier] [rm] [serif] [fourier] [default] [encoding=ec]
+ \definetypeface [fourier] [ss] [sans] [modern] [default] [encoding=ec,rscale=1.07]
+ \definetypeface [fourier] [tt] [mono] [modern] [default] [encoding=ec,rscale=1.07]
+ \definetypeface [fourier] [mm] [math] [fourier] [default] [encoding=default]
+ \quittypescriptscanning
+\stoptypescript
+
+% handy
+
+\starttypescript [serif] [simple] [name] % bad, will be changed but in sycn with manuals that use it
+ \definefontsynonym [Simple] [cmvtt10]
+ \setupfontsynonym [Simple] [handling=pure]
+\stoptypescript
+
+\starttypescript [modernvariable] [texnansi,ec,qx,8r,t5]
+ \definetypeface [modernvariable] [rm] [serif] [simple] [default] [encoding=\typescripttwo]
+ \definetypeface [modernvariable] [ss] [sans] [modern] [default] [encoding=\typescripttwo]
+ \definetypeface [modernvariable] [tt] [mono] [modern] [default] [encoding=\typescripttwo]
+ \definetypeface [modernvariable] [mm] [math] [modern] [default]
+ \quittypescriptscanning
+\stoptypescript
+
+\starttypescript [optima] [texnansi,ec,qx]
+ \definetypeface[optima][ss][sans] [optima-nova][default][encoding=\typescripttwo]
+ \definetypeface[optima][rm][serif][palatino] [default][encoding=\typescripttwo]
+ \definetypeface[optima][tt][mono] [modern] [default][encoding=\typescripttwo,rscale=1.1]
+ \definetypeface[optima][mm][math] [palatino] [default][encoding=\typescripttwo]
+ \quittypescriptscanning
+\stoptypescript
+
+\starttypescript [antykwa-torunska] [texnansi,ec,8r,uc,t5,t2a]
+ \definetypeface[antykwa][rm][serif][antykwa-torunska] [default][encoding=\typescripttwo]
+ \definetypeface[antykwa][ss][sans] [modern] [default][encoding=\typescripttwo,rscale=1.05]
+ \definetypeface[antykwa][tt][mono] [modern] [default][encoding=\typescripttwo,rscale=1.1]
+ \definetypeface[antykwa][mm][math] [antykwa-torunska] [default][encoding=\typescripttwo]
+ \quittypescriptscanning
+\stoptypescript
+
+\starttypescript [schoolbook,schola] [ec,texnansi,cs,qx,rm,t5,t2a,t2b,t2c,l7x]
+ \definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default] [encoding=\typescripttwo]
+ \definetypeface [\typescriptone] [ss] [sans] [modern] [default] [encoding=\typescripttwo]
+ \definetypeface [\typescriptone] [tt] [mono] [modern] [default] [encoding=\typescripttwo]
+ \definetypeface [\typescriptone] [mm] [math] [modern] [default] [encoding=default]
+ \quittypescriptscanning
+\stoptypescript
+
+\starttypescript [bookman,bonum] [ec,texnansi,cs,qx,rm,t5,t2a,t2b,t2c,l7x]
+ \definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default] [encoding=\typescripttwo]
+ \definetypeface [\typescriptone] [ss] [sans] [modern] [default] [encoding=\typescripttwo]
+ \definetypeface [\typescriptone] [tt] [mono] [modern] [default] [encoding=\typescripttwo]
+ \definetypeface [\typescriptone] [mm] [math] [modern] [default] [encoding=default]
+ \quittypescriptscanning
+\stoptypescript
+
+\starttypescript [chancery,chorus] [ec,texnansi,cs,qx,rm,t5,t2a,t2b,t2c,l7x]
+ \definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default] [encoding=\typescripttwo]
+ \definetypeface [\typescriptone] [ss] [sans] [modern] [default] [encoding=\typescripttwo]
+ \definetypeface [\typescriptone] [tt] [mono] [modern] [default] [encoding=\typescripttwo]
+ \definetypeface [\typescriptone] [mm] [math] [modern] [default] [encoding=default]
+ \quittypescriptscanning
+\stoptypescript
+
+\starttypescript [iwona,iwona-light,iwona-heavy,iwona-medium] [texnansi,ec,8r,uc,t2a]
+ \definetypeface[\typescriptone][ss][sans] [\typescriptone] [default][encoding=\typescripttwo]
+ \definetypeface[\typescriptone][rm][serif][modern] [default][encoding=\typescripttwo]
+ \definetypeface[\typescriptone][tt][mono] [modern] [default][encoding=\typescripttwo]
+ \definetypeface[\typescriptone][mm][math] [\typescriptone] [default][encoding=\typescripttwo,text=ss]
+ \quittypescriptscanning
+\stoptypescript
+
+\starttypescript [helvetica,heros] [ec,texnansi,cs,qx,rm,t5,t2a,t2b,t2c,l7x]
+ \definetypeface [\typescriptone] [ss] [sans] [\typescriptone] [default] [encoding=\typescripttwo]
+ \definetypeface [\typescriptone] [rm] [serif] [modern] [default] [encoding=\typescripttwo,rscale=1.15]
+ \definetypeface [\typescriptone] [tt] [mono] [modern] [default] [encoding=\typescripttwo,rscale=1.15]
+ \definetypeface [\typescriptone] [mm] [math] [modern] [default] [encoding=default,rscale=1.15]
+ \quittypescriptscanning
+\stoptypescript
+
+\starttypescript [avantgarde,adventor] [ec,texnansi,cs,qx,rm,t5,t2a,t2b,t2c,l7x]
+ \definetypeface [\typescriptone] [ss] [sans] [adventor] [default] [encoding=\typescripttwo]
+ \definetypeface [\typescriptone] [rm] [serif] [modern] [default] [encoding=\typescripttwo,rscale=1.15]
+ \definetypeface [\typescriptone] [tt] [mono] [modern] [default] [encoding=\typescripttwo,rscale=1.15]
+ \definetypeface [\typescriptone] [mm] [math] [modern] [default] [encoding=default]
+ \quittypescriptscanning
+\stoptypescript
+
+\starttypescript [courier,cursor] [ec,texnansi,cs,qx,rm,t5,t2a,t2b,t2c,l7x]
+ \definetypeface [\typescriptone] [tt] [mono] [\typescriptone] [default] [encoding=\typescripttwo]
+ \definetypeface [\typescriptone] [rm] [serif] [modern] [default] [encoding=\typescripttwo]
+ \definetypeface [\typescriptone] [ss] [sans] [modern] [default] [encoding=\typescripttwo]
+ \definetypeface [\typescriptone] [mm] [math] [modern] [default] [encoding=default]
+ \quittypescriptscanning
+\stoptypescript
+
+\stoptypescriptcollection
+
+\starttypescriptcollection[typeone]
+
+\starttypescript [map] [all]
+ \loadmapfile[original-base.map]
+ \loadmapfile[original-ams-base.map]
+\stoptypescript
+
+\starttypescript[all][modern,latin-modern][all]
+ % fallbacks, no math in latin modern
+ \definefontsynonym[lmdunh10][cmdunh10]
+ \definefontsynonym[lmff10] [cmff10]
+ \definefontsynonym[lmfi10] [cmfi10]
+ \definefontsynonym[lmfib8] [cmfib8]
+ \definefontsynonym[lmtex10] [cmtex10]
+ \definefontsynonym[lmtex8] [cmtex8]
+ \definefontsynonym[lmtex9] [cmtex9]
+ \loadmapfile[original-public-lm.map]
+\stoptypescript
+
+\starttypescript [serif] [modern,latin-modern] [texnansi,ec,qx,t5]
+ \definefontsynonym [LMRoman5-Regular] [\typescriptthree-lmr5] [encoding=\typescriptthree]
+ \definefontsynonym [LMRoman6-Regular] [\typescriptthree-lmr6] [encoding=\typescriptthree]
+ \definefontsynonym [LMRoman7-Regular] [\typescriptthree-lmr7] [encoding=\typescriptthree]
+ \definefontsynonym [LMRoman8-Regular] [\typescriptthree-lmr8] [encoding=\typescriptthree]
+ \definefontsynonym [LMRoman9-Regular] [\typescriptthree-lmr9] [encoding=\typescriptthree]
+ \definefontsynonym [LMRoman10-Regular] [\typescriptthree-lmr10] [encoding=\typescriptthree]
+ \definefontsynonym [LMRoman12-Regular] [\typescriptthree-lmr12] [encoding=\typescriptthree]
+ \definefontsynonym [LMRoman17-Regular] [\typescriptthree-lmr17] [encoding=\typescriptthree]
+ \definefontsynonym [LMRoman5-Bold] [\typescriptthree-lmbx5] [encoding=\typescriptthree]
+ \definefontsynonym [LMRoman6-Bold] [\typescriptthree-lmbx6] [encoding=\typescriptthree]
+ \definefontsynonym [LMRoman7-Bold] [\typescriptthree-lmbx7] [encoding=\typescriptthree]
+ \definefontsynonym [LMRoman8-Bold] [\typescriptthree-lmbx8] [encoding=\typescriptthree]
+ \definefontsynonym [LMRoman9-Bold] [\typescriptthree-lmbx9] [encoding=\typescriptthree]
+ \definefontsynonym [LMRoman10-Bold] [\typescriptthree-lmbx10] [encoding=\typescriptthree]
+ \definefontsynonym [LMRoman12-Bold] [\typescriptthree-lmbx12] [encoding=\typescriptthree]
+ \definefontsynonym [LMRoman7-Italic] [\typescriptthree-lmri7] [encoding=\typescriptthree]
+ \definefontsynonym [LMRoman8-Italic] [\typescriptthree-lmri8] [encoding=\typescriptthree]
+ \definefontsynonym [LMRoman9-Italic] [\typescriptthree-lmri9] [encoding=\typescriptthree]
+ \definefontsynonym [LMRoman10-Italic] [\typescriptthree-lmri10] [encoding=\typescriptthree]
+ \definefontsynonym [LMRoman12-Italic] [\typescriptthree-lmri12] [encoding=\typescriptthree]
+ \definefontsynonym [LMRoman10-BoldItalic] [\typescriptthree-lmbxi10] [encoding=\typescriptthree]
+ \definefontsynonym [LMRoman8-Oblique] [\typescriptthree-lmro8] [encoding=\typescriptthree]
+ \definefontsynonym [LMRoman9-Oblique] [\typescriptthree-lmro9] [encoding=\typescriptthree]
+ \definefontsynonym [LMRoman10-Oblique] [\typescriptthree-lmro10] [encoding=\typescriptthree]
+ \definefontsynonym [LMRoman12-Oblique] [\typescriptthree-lmro12] [encoding=\typescriptthree]
+ \definefontsynonym [LMRoman17-Oblique] [\typescriptthree-lmro17] [encoding=\typescriptthree]
+ \definefontsynonym [LMRoman10-BoldOblique] [\typescriptthree-lmbxo10] [encoding=\typescriptthree]
+ \definefontsynonym [LMRoman10-Demi] [\typescriptthree-lmb10] [encoding=\typescriptthree]
+ \definefontsynonym [LMRoman10-DemiOblique] [\typescriptthree-lmbo10] [encoding=\typescriptthree]
+ \definefontsynonym [LMRoman10-CapsRegular] [\typescriptthree-lmcsc10] [encoding=\typescriptthree]
+ \definefontsynonym [LMRoman10-CapsOblique] [\typescriptthree-lmcsco10] [encoding=\typescriptthree]
+
+ \definefontsynonym [LMRoman10-Dunhill] [\typescriptthree-lmdunh10] [encoding=\typescriptthree]
+ \definefontsynonym [LMRoman10-DunhillOblique] [\typescriptthree-lmduno10] [encoding=\typescriptthree]
+ \loadmapfile[lm-\typescriptthree.map]
+\stoptypescript
+
+\starttypescript [sans] [modern,latin-modern] [texnansi,ec,qx,t5]
+ \definefontsynonym [LMSans8-Regular] [\typescriptthree-lmss8] [encoding=\typescriptthree]
+ \definefontsynonym [LMSans9-Regular] [\typescriptthree-lmss9] [encoding=\typescriptthree]
+ \definefontsynonym [LMSans10-Regular] [\typescriptthree-lmss10] [encoding=\typescriptthree]
+ \definefontsynonym [LMSans12-Regular] [\typescriptthree-lmss12] [encoding=\typescriptthree]
+ \definefontsynonym [LMSans17-Regular] [\typescriptthree-lmss17] [encoding=\typescriptthree]
+ \definefontsynonym [LMSans10-Bold] [\typescriptthree-lmssbx10] [encoding=\typescriptthree]
+ \definefontsynonym [LMSans8-Oblique] [\typescriptthree-lmsso8] [encoding=\typescriptthree]
+ \definefontsynonym [LMSans9-Oblique] [\typescriptthree-lmsso9] [encoding=\typescriptthree]
+ \definefontsynonym [LMSans10-Oblique] [\typescriptthree-lmsso10] [encoding=\typescriptthree]
+ \definefontsynonym [LMSans12-Oblique] [\typescriptthree-lmsso12] [encoding=\typescriptthree]
+ \definefontsynonym [LMSans17-Oblique] [\typescriptthree-lmsso17] [encoding=\typescriptthree]
+ \definefontsynonym [LMSans10-BoldOblique] [\typescriptthree-lmssbo10] [encoding=\typescriptthree]
+ \definefontsynonym [LMSans10-DemiCondensed] [\typescriptthree-lmssdc10] [encoding=\typescriptthree]
+ \definefontsynonym [LMSans10-DemiCondensedOblique] [\typescriptthree-lmssdo10] [encoding=\typescriptthree]
+ \definefontsynonym [LMSansQuotation8-Regular] [\typescriptthree-lmssq8] [encoding=\typescriptthree]
+ \definefontsynonym [LMSansQuotation8-Bold] [\typescriptthree-lmssqbx8] [encoding=\typescriptthree]
+ \definefontsynonym [LMSansQuotation8-Oblique] [\typescriptthree-lmssqo8] [encoding=\typescriptthree]
+ \definefontsynonym [LMSansQuotation8-BoldOblique] [\typescriptthree-lmssqbo8] [encoding=\typescriptthree]
+ \loadmapfile[lm-\typescriptthree.map]
+\stoptypescript
+
+\starttypescript [mono] [modern,latin-modern,modern-vari,latin-modern-vari,modern-cond,latin-modern-cond] [texnansi,ec,qx,t5]
+ \definefontsynonym [LMTypewriter8-Regular] [\typescriptthree-lmtt8] [encoding=\typescriptthree]
+ \definefontsynonym [LMTypewriter9-Regular] [\typescriptthree-lmtt9] [encoding=\typescriptthree]
+ \definefontsynonym [LMTypewriter10-Regular] [\typescriptthree-lmtt10] [encoding=\typescriptthree]
+ \definefontsynonym [LMTypewriter12-Regular] [\typescriptthree-lmtt12] [encoding=\typescriptthree]
+ \definefontsynonym [LMTypewriter10-Italic] [\typescriptthree-lmtti10] [encoding=\typescriptthree]
+ \definefontsynonym [LMTypewriter10-Oblique] [\typescriptthree-lmtto10] [encoding=\typescriptthree]
+ \definefontsynonym [LMTypewriter10-CapsRegular] [\typescriptthree-lmtcsc10] [encoding=\typescriptthree]
+ \definefontsynonym [LMTypewriter10-CapsOblique] [\typescriptthree-lmtcso10] [encoding=\typescriptthree]
+ \definefontsynonym [LMTypewriter10-Light] [\typescriptthree-lmtl10] [encoding=\typescriptthree]
+ \definefontsynonym [LMTypewriter10-LightOblique] [\typescriptthree-lmtlo10] [encoding=\typescriptthree]
+ \definefontsynonym [LMTypewriter10-LightCondensed] [\typescriptthree-lmtlc10] [encoding=\typescriptthree]
+ \definefontsynonym [LMTypewriter10-LightCondensedOblique] [\typescriptthree-lmtlco10] [encoding=\typescriptthree]
+ \definefontsynonym [LMTypewriter10-Dark] [\typescriptthree-lmtk10] [encoding=\typescriptthree]
+ \definefontsynonym [LMTypewriter10-DarkOblique] [\typescriptthree-lmtko10] [encoding=\typescriptthree]
+ \definefontsynonym [LMTypewriter10-Unslanted] [\typescriptthree-lmu10] [encoding=\typescriptthree]
+ \definefontsynonym [LMTypewriterVarWd10-Regular] [\typescriptthree-lmvtt10] [encoding=\typescriptthree]
+ \definefontsynonym [LMTypewriterVarWd10-Oblique] [\typescriptthree-lmvtto10] [encoding=\typescriptthree]
+ \definefontsynonym [LMTypewriterVarWd10-Light] [\typescriptthree-lmvtl10] [encoding=\typescriptthree]
+ \definefontsynonym [LMTypewriterVarWd10-LightOblique] [\typescriptthree-lmvtlo10] [encoding=\typescriptthree]
+ \definefontsynonym [LMTypewriterVarWd10-Dark] [\typescriptthree-lmvtk10] [encoding=\typescriptthree]
+ \definefontsynonym [LMTypewriterVarWd10-DarkOblique] [\typescriptthree-lmvtko10] [encoding=\typescriptthree]
+ \loadmapfile[lm-\typescriptthree.map]
+\stoptypescript
+
+\starttypescript [math] [modern,latin-modern]
+ \definefontsynonym [LMMathRoman5-Regular] [rm-lmr5]
+ \definefontsynonym [LMMathRoman6-Regular] [rm-lmr6]
+ \definefontsynonym [LMMathRoman7-Regular] [rm-lmr7]
+ \definefontsynonym [LMMathRoman8-Regular] [rm-lmr8]
+ \definefontsynonym [LMMathRoman9-Regular] [rm-lmr9]
+ \definefontsynonym [LMMathRoman10-Regular] [rm-lmr10]
+ \definefontsynonym [LMMathRoman12-Regular] [rm-lmr12]
+ \definefontsynonym [LMMathRoman17-Regular] [rm-lmr17]
+ \definefontsynonym [LMMathRoman5-Bold] [rm-lmbx5]
+ \definefontsynonym [LMMathRoman6-Bold] [rm-lmbx6]
+ \definefontsynonym [LMMathRoman7-Bold] [rm-lmbx7]
+ \definefontsynonym [LMMathRoman8-Bold] [rm-lmbx8]
+ \definefontsynonym [LMMathRoman9-Bold] [rm-lmbx9]
+ \definefontsynonym [LMMathRoman10-Bold] [rm-lmbx10]
+ \definefontsynonym [LMMathRoman12-Bold] [rm-lmbx12]
+ \definefontsynonym [LMMathSymbols5-BoldItalic] [lmbsy5]
+ \definefontsynonym [LMMathSymbols7-BoldItalic] [lmbsy7]
+ \definefontsynonym [LMMathSymbols10-BoldItalic][lmbsy10]
+ \definefontsynonym [LMMathSymbols5-Italic] [lmsy5]
+ \definefontsynonym [LMMathSymbols6-Italic] [lmsy6]
+ \definefontsynonym [LMMathSymbols7-Italic] [lmsy7]
+ \definefontsynonym [LMMathSymbols8-Italic] [lmsy8]
+ \definefontsynonym [LMMathSymbols9-Italic] [lmsy9]
+ \definefontsynonym [LMMathSymbols10-Italic] [lmsy10]
+ \definefontsynonym [LMMathExtension10-Regular] [lmex10]
+ \definefontsynonym [LMMathItalic5-Italic] [lmmi5]
+ \definefontsynonym [LMMathItalic6-Italic] [lmmi6]
+ \definefontsynonym [LMMathItalic7-Italic] [lmmi7]
+ \definefontsynonym [LMMathItalic8-Italic] [lmmi8]
+ \definefontsynonym [LMMathItalic9-Italic] [lmmi9]
+ \definefontsynonym [LMMathItalic10-Italic] [lmmi10]
+ \definefontsynonym [LMMathItalic12-Italic] [lmmi12]
+ \definefontsynonym [LMMathItalic5-BoldItalic] [lmmib5]
+ \definefontsynonym [LMMathItalic7-BoldItalic] [lmmib7]
+ \definefontsynonym [LMMathItalic10-BoldItalic] [lmmib10]
+ \usemathcollection[default]
+ \loadmapfile[lm-math.map]
+ \loadmapfile[lm-rm.map]
+\stoptypescript
+
+%D {\em Comments by Victor Figurnov:} the wcmb10, wcmbx10,
+%D \unknown\ fonts below are taken from the Paradissa
+%D collection by Basil Malyshev. These fonts don't conform t2a
+%D encoding but are in MS Windows Cyrillic codepage 1251
+%D encoding. These fonts contain only 33 russian letters in
+%D upper and lower case, the number sign, and guillemots. But
+%D even among these characters only the basic 32 russian
+%D letters (in upper and lower case) will be typeset correctly
+%D with this definition. The letters cyrillicYO and
+%D cyrillicyo, as well as number sign (textnumero) and
+%D guillemots won't be typeset properly, because these symbols
+%D have different positions in t2a and MS CP1251 encodings.
+%D
+%D I think that the russian lh fonts and|/|or cm-super provide
+%D better alternatives (type1). Therefore, the names below
+%D match those of cm-super (\type {0NNN} instead of \type
+%D {NNN}, i.e.\ four digit numbers).
+
+\starttypescript [serif] [computer-modern] [cyr]
+ \definefontsynonym [cmb10] [wcmb10] [encoding=t2a]
+ \definefontsynonym [cmbsy10] [wcmbsy10] [encoding=t2a]
+ \definefontsynonym [cmbx10] [wcmbx10] [encoding=t2a]
+ \definefontsynonym [cmbx12] [wcmbx12] [encoding=t2a]
+ \definefontsynonym [cmbx5] [wcmbx5] [encoding=t2a]
+ \definefontsynonym [cmbx6] [wcmbx6] [encoding=t2a]
+ \definefontsynonym [cmbx7] [wcmbx7] [encoding=t2a]
+ \definefontsynonym [cmbx8] [wcmbx8] [encoding=t2a]
+ \definefontsynonym [cmbx9] [wcmbx9] [encoding=t2a]
+ \definefontsynonym [cmbxsl10] [wcmbxsl10] [encoding=t2a]
+ \definefontsynonym [cmbxti10] [wcmbxti10] [encoding=t2a]
+ \definefontsynonym [cmcsc10] [wcmcsc10] [encoding=t2a]
+ %definefontsynonym [cmdunh10] [wcmdunh10] [encoding=t2a]
+ \definefontsynonym [cminch] [wcminch] [encoding=t2a]
+ \definefontsynonym [cmr10] [wcmr10] [encoding=t2a]
+ \definefontsynonym [cmr12] [wcmr12] [encoding=t2a]
+ \definefontsynonym [cmr17] [wcmr17] [encoding=t2a]
+ \definefontsynonym [cmr5] [wcmr5] [encoding=t2a]
+ \definefontsynonym [cmr6] [wcmr6] [encoding=t2a]
+ \definefontsynonym [cmr7] [wcmr7] [encoding=t2a]
+ \definefontsynonym [cmr8] [wcmr8] [encoding=t2a]
+ \definefontsynonym [cmr9] [wcmr9] [encoding=t2a]
+ \definefontsynonym [cmsl10] [wcmsl10] [encoding=t2a]
+ \definefontsynonym [cmsl12] [wcmsl12] [encoding=t2a]
+ \definefontsynonym [cmsl8] [wcmsl8] [encoding=t2a]
+ \definefontsynonym [cmsl9] [wcmsl9] [encoding=t2a]
+ \definefontsynonym [cmti10] [wcmti10] [encoding=t2a]
+ \definefontsynonym [cmti12] [wcmti12] [encoding=t2a]
+ \definefontsynonym [cmti7] [wcmti7] [encoding=t2a]
+ \definefontsynonym [cmti8] [wcmti8] [encoding=t2a]
+ \definefontsynonym [cmti9] [wcmti9] [encoding=t2a]
+ \definefontsynonym [cmu10] [wcmu10] [encoding=t2a]
+\stoptypescript
+
+\starttypescript [sans] [computer-modern] [cyr]
+ \definefontsynonym [cmss10] [wcmss10] [encoding=t2a]
+ \definefontsynonym [cmss12] [wcmss12] [encoding=t2a]
+ \definefontsynonym [cmss17] [wcmss17] [encoding=t2a]
+ \definefontsynonym [cmss8] [wcmss8] [encoding=t2a]
+ \definefontsynonym [cmss9] [wcmss9] [encoding=t2a]
+ %definefontsynonym [cmssbi10] [wcmssbi10] [encoding=t2a]
+ \definefontsynonym [cmssbx10] [wcmssbx10] [encoding=t2a]
+ \definefontsynonym [cmssdc10] [wcmssdc10] [encoding=t2a]
+ \definefontsynonym [cmssi10] [wcmssi10] [encoding=t2a]
+ \definefontsynonym [cmssi12] [wcmssi12] [encoding=t2a]
+ \definefontsynonym [cmssi17] [wcmssi17] [encoding=t2a]
+ \definefontsynonym [cmssi8] [wcmssi8] [encoding=t2a]
+ \definefontsynonym [cmssi9] [wcmssi9] [encoding=t2a]
+ \definefontsynonym [cmssq8] [wcmssq8] [encoding=t2a]
+ \definefontsynonym [cmssqi8] [wcmssqi8] [encoding=t2a]
+\stoptypescript
+
+\starttypescript [mono] [computer-modern] [cyr]
+ \definefontsynonym [cmitt10] [wcmitt10] [encoding=t2a]
+ \definefontsynonym [cmsltt10] [wcmsltt10] [encoding=t2a]
+ \definefontsynonym [cmtt10] [wcmtt10] [encoding=t2a]
+ \definefontsynonym [cmtt12] [wcmtt12] [encoding=t2a]
+ \definefontsynonym [cmtt8] [wcmtt8] [encoding=t2a]
+ \definefontsynonym [cmtt9] [wcmtt9] [encoding=t2a]
+ %definefontsynonym [cmvtt10] [wcmvtt10] [encoding=t2a]
+\stoptypescript
+
+\definetypescriptprefix [c:t2a] [la]
+\definetypescriptprefix [c:t2b] [lb]
+\definetypescriptprefix [c:t2c] [lc]
+\definetypescriptprefix [c:x2] [rx]
+
+\starttypescript [all] [computer-modern] [t2a,t2b,t2c,x2]
+ \loadmapfile[subset-cmsuper-\typescriptthree.map]
+ \loadmapfile[subset-cmsuper-\typescriptthree.map]
+ \loadmapfile[cm-super-\typescriptthree.map]
+\stoptypescript
+
+\starttypescript [serif] [computer-modern] [t2a,t2b,t2c,x2]
+ \definefontsynonym [cmb10] [\typescriptprefix{c:\typescriptthree}rb1000] [encoding=\typescriptthree]
+ \definefontsynonym [cmbx10] [\typescriptprefix{c:\typescriptthree}bx1000] [encoding=\typescriptthree]
+ \definefontsynonym [cmbx12] [\typescriptprefix{c:\typescriptthree}bx1200] [encoding=\typescriptthree]
+ \definefontsynonym [cmbx5] [\typescriptprefix{c:\typescriptthree}bx0500] [encoding=\typescriptthree]
+ \definefontsynonym [cmbx6] [\typescriptprefix{c:\typescriptthree}bx0600] [encoding=\typescriptthree]
+ \definefontsynonym [cmbx7] [\typescriptprefix{c:\typescriptthree}bx0700] [encoding=\typescriptthree]
+ \definefontsynonym [cmbx8] [\typescriptprefix{c:\typescriptthree}bx0800] [encoding=\typescriptthree]
+ \definefontsynonym [cmbx9] [\typescriptprefix{c:\typescriptthree}bx0900] [encoding=\typescriptthree]
+ \definefontsynonym [cmbxsl10] [\typescriptprefix{c:\typescriptthree}bl1000] [encoding=\typescriptthree]
+ \definefontsynonym [cmbxti10] [\typescriptprefix{c:\typescriptthree}bi1000] [encoding=\typescriptthree]
+ \definefontsynonym [cmcsc10] [\typescriptprefix{c:\typescriptthree}cc1000] [encoding=\typescriptthree]
+ \definefontsynonym [cmdunh10] [\typescriptprefix{c:\typescriptthree}dh1000] [encoding=\typescriptthree]
+ \definefontsynonym [cmff10] [\typescriptprefix{c:\typescriptthree}ff1000] [encoding=\typescriptthree]
+ \definefontsynonym [cmfi10] [\typescriptprefix{c:\typescriptthree}fi1000] [encoding=\typescriptthree]
+ \definefontsynonym [cmfib8] [\typescriptprefix{c:\typescriptthree}fb0800] [encoding=\typescriptthree]
+ %\definefontsynonym [cminch] [\typescriptprefix{c:\typescriptthree}inch00] [encoding=\typescriptthree]
+ \definefontsynonym [cmr10] [\typescriptprefix{c:\typescriptthree}rm1000] [encoding=\typescriptthree]
+ \definefontsynonym [cmr12] [\typescriptprefix{c:\typescriptthree}rm1200] [encoding=\typescriptthree]
+ \definefontsynonym [cmr17] [\typescriptprefix{c:\typescriptthree}rm1700] [encoding=\typescriptthree]
+ \definefontsynonym [cmr5] [\typescriptprefix{c:\typescriptthree}rm0500] [encoding=\typescriptthree]
+ \definefontsynonym [cmr6] [\typescriptprefix{c:\typescriptthree}rm0600] [encoding=\typescriptthree]
+ \definefontsynonym [cmr7] [\typescriptprefix{c:\typescriptthree}rm0700] [encoding=\typescriptthree]
+ \definefontsynonym [cmr8] [\typescriptprefix{c:\typescriptthree}rm0800] [encoding=\typescriptthree]
+ \definefontsynonym [cmr9] [\typescriptprefix{c:\typescriptthree}rm0900] [encoding=\typescriptthree]
+ \definefontsynonym [cmsl10] [\typescriptprefix{c:\typescriptthree}sl1000] [encoding=\typescriptthree]
+ \definefontsynonym [cmsl12] [\typescriptprefix{c:\typescriptthree}sl1200] [encoding=\typescriptthree]
+ \definefontsynonym [cmsl8] [\typescriptprefix{c:\typescriptthree}sl0800] [encoding=\typescriptthree]
+ \definefontsynonym [cmsl9] [\typescriptprefix{c:\typescriptthree}sl0900] [encoding=\typescriptthree]
+ \definefontsynonym [cmtcsc10] [\typescriptprefix{c:\typescriptthree}tc1000] [encoding=\typescriptthree]
+ \definefontsynonym [cmti10] [\typescriptprefix{c:\typescriptthree}ti1000] [encoding=\typescriptthree]
+ \definefontsynonym [cmti12] [\typescriptprefix{c:\typescriptthree}ti1200] [encoding=\typescriptthree]
+ \definefontsynonym [cmti7] [\typescriptprefix{c:\typescriptthree}ti0700] [encoding=\typescriptthree]
+ \definefontsynonym [cmti8] [\typescriptprefix{c:\typescriptthree}ti0800] [encoding=\typescriptthree]
+ \definefontsynonym [cmti9] [\typescriptprefix{c:\typescriptthree}ti0900] [encoding=\typescriptthree]
+ \definefontsynonym [cmu10] [\typescriptprefix{c:\typescriptthree}ui1000] [encoding=\typescriptthree]
+\stoptypescript
+
+\starttypescript [sans] [computer-modern] [t2a,t2b,t2c,x2]
+ \definefontsynonym [cmss10] [\typescriptprefix{c:\typescriptthree}ss1000] [encoding=\typescriptthree]
+ \definefontsynonym [cmss12] [\typescriptprefix{c:\typescriptthree}ss1200] [encoding=\typescriptthree]
+ \definefontsynonym [cmss17] [\typescriptprefix{c:\typescriptthree}ss1700] [encoding=\typescriptthree]
+ \definefontsynonym [cmss8] [\typescriptprefix{c:\typescriptthree}ss0800] [encoding=\typescriptthree]
+ \definefontsynonym [cmss9] [\typescriptprefix{c:\typescriptthree}ss0900] [encoding=\typescriptthree]
+ \definefontsynonym [cmssbx10] [\typescriptprefix{c:\typescriptthree}sx1000] [encoding=\typescriptthree]
+ %\definefontsynonym [cmssdc10] [\typescriptprefix{c:\typescriptthree}ssdc1000] [encoding=\typescriptthree]
+ \definefontsynonym [cmssi10] [\typescriptprefix{c:\typescriptthree}si1000] [encoding=\typescriptthree]
+ \definefontsynonym [cmssi12] [\typescriptprefix{c:\typescriptthree}si1200] [encoding=\typescriptthree]
+ \definefontsynonym [cmssi17] [\typescriptprefix{c:\typescriptthree}si1700] [encoding=\typescriptthree]
+ \definefontsynonym [cmssi8] [\typescriptprefix{c:\typescriptthree}si0800] [encoding=\typescriptthree]
+ \definefontsynonym [cmssi9] [\typescriptprefix{c:\typescriptthree}si0900] [encoding=\typescriptthree]
+ \definefontsynonym [cmssq8] [\typescriptprefix{c:\typescriptthree}ss0800] [encoding=\typescriptthree]
+ \definefontsynonym [cmssqi8] [\typescriptprefix{c:\typescriptthree}si0800] [encoding=\typescriptthree]
+\stoptypescript
+
+\starttypescript [mono] [computer-modern] [t2a,t2b,t2c,x2]
+ \definefontsynonym [cmitt10] [\typescriptprefix{c:\typescriptthree}it1000] [encoding=\typescriptthree]
+ \definefontsynonym [cmsltt10] [\typescriptprefix{c:\typescriptthree}st1000] [encoding=\typescriptthree]
+ \definefontsynonym [cmtt10] [\typescriptprefix{c:\typescriptthree}tt1000] [encoding=\typescriptthree]
+ \definefontsynonym [cmtt12] [\typescriptprefix{c:\typescriptthree}tt1200] [encoding=\typescriptthree]
+ \definefontsynonym [cmtt8] [\typescriptprefix{c:\typescriptthree}tt0800] [encoding=\typescriptthree]
+ \definefontsynonym [cmtt9] [\typescriptprefix{c:\typescriptthree}tt0900] [encoding=\typescriptthree]
+ \definefontsynonym [cmvtt10] [\typescriptprefix{c:\typescriptthree}vt1000] [encoding=\typescriptthree]
+\stoptypescript
+
+\starttypescript [serif] [computer-modern] [lcy]
+ \definefontsynonym [cmb10] [lhb10] [encoding=lcy]
+ \definefontsynonym [cmbx10] [lhbx10] [encoding=lcy]
+ \definefontsynonym [cmbx12] [lhbx12] [encoding=lcy]
+ \definefontsynonym [cmbx5] [lhbx5] [encoding=lcy]
+ \definefontsynonym [cmbx6] [lhbx6] [encoding=lcy]
+ \definefontsynonym [cmbx7] [lhbx7] [encoding=lcy]
+ \definefontsynonym [cmbx8] [lhbx8] [encoding=lcy]
+ \definefontsynonym [cmbx9] [lhbx9] [encoding=lcy]
+ \definefontsynonym [cmbxsl10] [lhbxsl10] [encoding=lcy]
+ \definefontsynonym [cmbxti10] [lhbxti10] [encoding=lcy]
+ \definefontsynonym [cmcsc10] [lhcsc10] [encoding=lcy]
+ \definefontsynonym [cmdunh10] [lhdunh10] [encoding=lcy]
+ \definefontsynonym [cmff10] [lhff10] [encoding=lcy]
+ \definefontsynonym [cmfi10] [lhfi10] [encoding=lcy]
+ \definefontsynonym [cmfib8] [lhfib8] [encoding=lcy]
+ \definefontsynonym [cminch] [lhinch] [encoding=lcy]
+ \definefontsynonym [cmr10] [lhr10] [encoding=lcy]
+ \definefontsynonym [cmr12] [lhr12] [encoding=lcy]
+ \definefontsynonym [cmr17] [lhr17] [encoding=lcy]
+ \definefontsynonym [cmr5] [lhr5] [encoding=lcy]
+ \definefontsynonym [cmr6] [lhr6] [encoding=lcy]
+ \definefontsynonym [cmr7] [lhr7] [encoding=lcy]
+ \definefontsynonym [cmr8] [lhr8] [encoding=lcy]
+ \definefontsynonym [cmr9] [lhr9] [encoding=lcy]
+ \definefontsynonym [cmsl10] [lhsl10] [encoding=lcy]
+ \definefontsynonym [cmsl12] [lhsl12] [encoding=lcy]
+ \definefontsynonym [cmsl8] [lhsl8] [encoding=lcy]
+ \definefontsynonym [cmsl9] [lhsl9] [encoding=lcy]
+ \definefontsynonym [cmtcsc10] [lhtcsc10] [encoding=lcy]
+ \definefontsynonym [cmtex10] [lhtex10] [encoding=lcy]
+ \definefontsynonym [cmtex8] [lhtex8] [encoding=lcy]
+ \definefontsynonym [cmtex9] [lhtex9] [encoding=lcy]
+ \definefontsynonym [cmti10] [lhti10] [encoding=lcy]
+ \definefontsynonym [cmti12] [lhti12] [encoding=lcy]
+ \definefontsynonym [cmti7] [lhti7] [encoding=lcy]
+ \definefontsynonym [cmti8] [lhti8] [encoding=lcy]
+ \definefontsynonym [cmti9] [lhti9] [encoding=lcy]
+ \definefontsynonym [cmu10] [lhu10] [encoding=lcy]
+\stoptypescript
+
+\starttypescript [sans] [computer-modern] [lcy]
+ \definefontsynonym [cmss10] [lhss10] [encoding=lcy]
+ \definefontsynonym [cmss12] [lhss12] [encoding=lcy]
+ \definefontsynonym [cmss17] [lhss17] [encoding=lcy]
+ \definefontsynonym [cmss8] [lhss8] [encoding=lcy]
+ \definefontsynonym [cmss9] [lhss9] [encoding=lcy]
+ \definefontsynonym [cmssbi10] [lhssbi10] [encoding=lcy]
+ \definefontsynonym [cmssbx10] [lhssbx10] [encoding=lcy]
+ \definefontsynonym [cmssdc10] [lhssdc10] [encoding=lcy]
+ \definefontsynonym [cmssi10] [lhssi10] [encoding=lcy]
+ \definefontsynonym [cmssi12] [lhssi12] [encoding=lcy]
+ \definefontsynonym [cmssi17] [lhssi17] [encoding=lcy]
+ \definefontsynonym [cmssi8] [lhssi8] [encoding=lcy]
+ \definefontsynonym [cmssi9] [lhssi9] [encoding=lcy]
+ \definefontsynonym [cmssq8] [lhssq8] [encoding=lcy]
+ \definefontsynonym [cmssqi8] [lhssqi8] [encoding=lcy]
+\stoptypescript
+
+\starttypescript [mono] [computer-modern] [lcy]
+ \definefontsynonym [cmitt10] [lhitt10] [encoding=lcy]
+ \definefontsynonym [cmsltt10] [lhsltt10] [encoding=lcy]
+ \definefontsynonym [cmtt10] [lhtt10] [encoding=lcy]
+ \definefontsynonym [cmtt12] [lhtt12] [encoding=lcy]
+ \definefontsynonym [cmtt8] [lhtt8] [encoding=lcy]
+ \definefontsynonym [cmtt9] [lhtt9] [encoding=lcy]
+ \definefontsynonym [cmvtt10] [lhvtt10] [encoding=lcy]
+\stoptypescript
+
+%
+
+\starttypescript [math] [modern,computer-modern,latin-modern] % [default]
+ % watch the space, it prevents remapping
+ \definefontsynonym [ComputerModernMath-Roman] [rm-lmr10]% [lmr10 ]
+ \definefontsynonym [ComputerModernMath-Extension] [lmex10]
+ \definefontsynonym [ComputerModernMath-Italic] [lmmi10]
+ \definefontsynonym [ComputerModernMath-Symbol] [lmsy10]
+\stoptypescript
+
+\starttypescript [boldmath,bfmath] [modern,computer-modern,latin-modern] % [default]
+ % watch the space, it prevents remapping
+ \definefontsynonym [ComputerModernMath-Roman-Bold] [rm-lmb10] % [lmb10 ]
+ \definefontsynonym [ComputerModernMath-Extension] [lmex10]
+ \definefontsynonym [ComputerModernMath-Italic-Bold] [lmmib10]
+ \definefontsynonym [ComputerModernMath-Symbol-Bold] [lmbsy10]
+\stoptypescript
+
+% Till we have cyrilic in lm:
+
+% \usetypescript[modern-base][t2a]
+% \setupbodyfont[modern,10pt]
+
+\starttypescript [serif] [computer-modern] [t2a,t2b,t2c,x2]
+ \definefontsynonym [Serif] [\typescriptprefix{c:\typescriptthree}rm1000] [encoding=\typescriptthree]
+ \definefontsynonym [SerifItalic] [\typescriptprefix{c:\typescriptthree}ti1000] [encoding=\typescriptthree]
+ \definefontsynonym [SerifSlanted] [\typescriptprefix{c:\typescriptthree}sl1000] [encoding=\typescriptthree]
+ \definefontsynonym [SerifBold] [\typescriptprefix{c:\typescriptthree}bx1000] [encoding=\typescriptthree]
+ \definefontsynonym [SerifBoldItalic] [\typescriptprefix{c:\typescriptthree}bi1000] [encoding=\typescriptthree]
+ \definefontsynonym [SerifBoldSlanted] [\typescriptprefix{c:\typescriptthree}bl1000] [encoding=\typescriptthree]
+ \definefontsynonym [SerifCaps] [\typescriptprefix{c:\typescriptthree}cc1000] [encoding=\typescriptthree]
+ \definefontsynonym [SerifCapsSlanted] [\typescriptprefix{c:\typescriptthree}sc1000] [encoding=\typescriptthree]
+\stoptypescript
+
+\starttypescript [sans] [computer-modern] [t2a,t2b,t2c,x2]
+ \definefontsynonym [Sans] [\typescriptprefix{c:\typescriptthree}ss1000] [encoding=\typescriptthree]
+ \definefontsynonym [SansItalic] [\typescriptprefix{c:\typescriptthree}si1000] [encoding=\typescriptthree]
+ \definefontsynonym [SansSlanted] [\typescriptprefix{c:\typescriptthree}si1000] [encoding=\typescriptthree]
+ \definefontsynonym [SansBold] [\typescriptprefix{c:\typescriptthree}sx1000] [encoding=\typescriptthree]
+ \definefontsynonym [SansBoldItalic] [\typescriptprefix{c:\typescriptthree}so1000] [encoding=\typescriptthree]
+ \definefontsynonym [SansBoldSlanted] [\typescriptprefix{c:\typescriptthree}so1000] [encoding=\typescriptthree]
+ \definefontsynonym [SansCaps] [\typescriptprefix{c:\typescriptthree}ss1000] [encoding=\typescriptthree]
+ \definefontsynonym [SansCapsSlanted] [\typescriptprefix{c:\typescriptthree}si1000] [encoding=\typescriptthree]
+\stoptypescript
+
+\starttypescript [mono] [computer-modern] [t2a,t2b,t2c,x2]
+ \definefontsynonym [Mono] [\typescriptprefix{c:\typescriptthree}tt1000] [encoding=\typescriptthree]
+ \definefontsynonym [MonoItalic] [\typescriptprefix{c:\typescriptthree}it1000] [encoding=\typescriptthree]
+ \definefontsynonym [MonoSlanted] [\typescriptprefix{c:\typescriptthree}st1000] [encoding=\typescriptthree]
+ \definefontsynonym [MonoBold] [\typescriptprefix{c:\typescriptthree}tt1000] [encoding=\typescriptthree]
+ \definefontsynonym [MonoBoldItalic] [\typescriptprefix{c:\typescriptthree}it1000] [encoding=\typescriptthree]
+ \definefontsynonym [MonoBoldSlanted] [\typescriptprefix{c:\typescriptthree}st1000] [encoding=\typescriptthree]
+ \definefontsynonym [MonoCaps] [\typescriptprefix{c:\typescriptthree}tc1000] [encoding=\typescriptthree]
+ \definefontsynonym [MonoCapsSlanted] [\typescriptprefix{c:\typescriptthree}tc1000] [encoding=\typescriptthree]
+\stoptypescript
+
+% Computer Concrete (AMS)
+
+\starttypescript [serif] [concrete] [default]
+ \definefontsynonym [ComputerConcrete] [ccr10]
+ \definefontsynonym [ComputerConcrete-Italic] [ccti10]
+ \definefontsynonym [ComputerConcrete-Slanted] [ccsl10]
+ \definefontsynonym [ComputerConcrete-Bold] [ComputerConcrete]
+ \definefontsynonym [ComputerConcrete-BoldItalic] [ComputerConcrete-Italic]
+ \definefontsynonym [ComputerConcrete-BoldSlanted] [ComputerConcrete-Slanted]
+ \definefontsynonym [ComputerConcrete-Caps] [cccsc10]
+\stoptypescript
+
+% Euler (AMS)
+
+\starttypescript [math] [euler] [default]
+ \definefontsynonym [Euler-Roman] [zeurm10]
+ \definefontsynonym [Euler-Extension] [zeuex10]
+ \definefontsynonym [Euler-Symbol] [zeusm10]
+ \definefontsynonym [Euler-Fraktur] [eufm10]
+ \usemathcollection[eul]
+ \loadmapfile[original-ams-euler.map]
+\stoptypescript
+
+\starttypescript [boldmath,bfmath] [euler] [default]
+ \definefontsynonym [Euler-Roman-Bold] [zeurb10]
+ \definefontsynonym [Euler-Extension] [zeuex10]
+ \definefontsynonym [Euler-Symbol-Bold] [zeusb10]
+ \definefontsynonym [Euler-Fraktur-Bold] [eufb10]
+ \usemathcollection[eul]
+ \loadmapfile[original-ams-euler.map]
+\stoptypescript
+
+% AMS (AMS)
+
+\starttypescript [math] [modern,computer-modern,latin-modern,ams] [default]
+ \definefontsynonym [AMS-SymbolA] [msam10]
+ \definefontsynonym [AMS-SymbolB] [msbm10]
+ \usemathcollection[default]
+\stoptypescript
+
+% Fourier (Utopia)
+
+\starttypescript [math] [fourier] [default,ec]
+ \definefontsynonym [Fourier-Math-Letters] [futr8t] [encoding=ec]
+ %definefontsynonym [Fourier-Math-Letters] [futmi]
+ \definefontsynonym [Fourier-Math-Letters-Italic] [futmii]
+ \definefontsynonym [Fourier-Math-Symbols] [futsy]
+ \definefontsynonym [Fourier-Math-Extension] [fourier-mex]
+ \usemathcollection[fou]
+ \loadmapfile[fourier.map]
+\stoptypescript
+
+\starttypescript [serif] [fourier] [ec]
+ \definefontsynonym [Fourier-Regular] [futr8t] [encoding=ec]
+ \definefontsynonym [Fourier-Slanted] [futro8t] [encoding=ec]
+ \definefontsynonym [Fourier-Italic] [futri8t] [encoding=ec]
+ \definefontsynonym [Fourier-RegularCaps] [futrc8t] [encoding=ec]
+ \definefontsynonym [Fourier-Bold] [futb8t] [encoding=ec]
+ \definefontsynonym [Fourier-BoldSlanted] [futbo8t] [encoding=ec]
+ \definefontsynonym [Fourier-BoldItalic] [futbi8t] [encoding=ec]
+ \definefontsynonym [Fourier-BoldCaps] [futbc8t] [encoding=ec]
+ \definefontsynonym [Fourier-Regular-Expert] [futr9e] [encoding=ec]
+ \definefontsynonym [Fourier-Slanted-Expert] [futro9e] [encoding=ec]
+ \definefontsynonym [Fourier-Italic-Expert] [futri9e] [encoding=ec]
+ \definefontsynonym [Fourier-RegularCaps-Expert] [futrc9e] [encoding=ec]
+ \definefontsynonym [Fourier-Semi-Expert] [futs9e] [encoding=ec]
+ \definefontsynonym [Fourier-SemiSlanted-Expert] [futso9e] [encoding=ec]
+ \definefontsynonym [Fourier-SemiItalic-Expert] [futsi9e] [encoding=ec]
+ \definefontsynonym [Fourier-SemiCaps-Expert] [futsc9e] [encoding=ec]
+ \definefontsynonym [Fourier-Bold-Expert] [futb9e] [encoding=ec]
+ \definefontsynonym [Fourier-BoldSlanted-Expert] [futbo9e] [encoding=ec]
+ \definefontsynonym [Fourier-BoldItalic-Expert] [futbi9e] [encoding=ec]
+ \definefontsynonym [Fourier-Black-Expert] [futc9e] [encoding=ec]
+ \definefontsynonym [Fourier-Regular-OldStyle] [futr9d] [encoding=ec]
+ \definefontsynonym [Fourier-Slanted-OldStyle] [futro9d] [encoding=ec]
+ \definefontsynonym [Fourier-Italic-OldStyle] [futri9d] [encoding=ec]
+ \definefontsynonym [Fourier-RegularCaps-OldStyle] [futrc9d] [encoding=ec]
+ \definefontsynonym [Fourier-Semi-OldStyle] [futs9d] [encoding=ec]
+ \definefontsynonym [Fourier-SemiSlanted-OldStyle] [futso9d] [encoding=ec]
+ \definefontsynonym [Fourier-SemiItalic-OldStyle] [futsi9d] [encoding=ec]
+ \definefontsynonym [Fourier-SemiCaps-OldStyle] [futsc9d] [encoding=ec]
+ \definefontsynonym [Fourier-Bold-OldStyle] [futb9d] [encoding=ec]
+ \definefontsynonym [Fourier-BoldSlanted-OldStyle] [futbo9d] [encoding=ec]
+ \definefontsynonym [Fourier-BoldItalic-OldStyle] [futbi9d] [encoding=ec]
+ \definefontsynonym [Fourier-Black-OldStyle] [futc9d] [encoding=ec]
+ \loadmapfile[fourier.map]
+ \loadmapfile[fourier-utopia-expert.map]
+\stoptypescript
+
+% Antykwa Torunska (GUST)
+
+% \starttypescript [serif] [antykwa-torunska] [texnansi,ec,8r]
+% \definefontsynonym [AntykwaTorunska-Regular] [\typescriptthree-anttr] [encoding=\typescriptthree]
+% \definefontsynonym [AntykwaTorunska-Bold] [\typescriptthree-anttb] [encoding=\typescriptthree]
+% \definefontsynonym [AntykwaTorunska-Italic] [\typescriptthree-anttri] [encoding=\typescriptthree]
+% \stoptypescript
+
+\starttypescript [serif] [antykwa-torunska,antykwa-torunska-light,antykwa-torunska-cond,antykwa-torunska-lightcond] [texnansi,qx,t5,ec,t2a,t2b,t2c,greek]
+ \definefontsynonym [AntykwaTorunska-Regular] [\typescriptthree-anttr] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-Italic] [\typescriptthree-anttri] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-Bold] [\typescriptthree-anttb] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-BoldItalic] [\typescriptthree-anttbi] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-Light] [\typescriptthree-anttl] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-LightItalic] [\typescriptthree-anttli] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-Medium] [\typescriptthree-anttm] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-MedItalic] [\typescriptthree-anttmi] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-CondRegular] [\typescriptthree-anttcr] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-CondItalic] [\typescriptthree-anttcri] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-CondBold] [\typescriptthree-anttcb] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-CondBoldItalic] [\typescriptthree-anttcbi] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-CondLight] [\typescriptthree-anttcl] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-CondLightItalic][\typescriptthree-anttcli] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-CondMedium] [\typescriptthree-anttcm] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-CondMedItalic] [\typescriptthree-anttcmi] [encoding=\typescriptthree]
+ \loadmapfile[antt-\typescriptthree.map]
+\stoptypescript
+
+\starttypescript [serif] [antykwa-torunska,antykwa-torunska-light,antykwa-torunska-cond,antykwa-torunska-lightcond] [texnansi,qx,t5,ec]
+ \definefontsynonym [AntykwaTorunska-Cap] [\typescriptthree-anttrcap] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-ItalicCap] [\typescriptthree-anttricap] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-BoldCap] [\typescriptthree-anttbcap] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-BoldItalicCap] [\typescriptthree-anttbicap] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-LightCap] [\typescriptthree-anttlcap] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-LightItalicCap] [\typescriptthree-anttlicap] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-MediumCap] [\typescriptthree-anttmcap] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-MedItalicCap] [\typescriptthree-anttmicap] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-CondCap] [\typescriptthree-anttcrcap] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-CondItalicCap] [\typescriptthree-anttcricap] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-CondBoldCap] [\typescriptthree-anttcbcap] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-CondBoldItalicCap] [\typescriptthree-anttcbicap] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-CondLightCap] [\typescriptthree-anttclcap] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-CondLightItalicCap][\typescriptthree-anttclicap] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-CondMediumCap] [\typescriptthree-anttcmcap] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-CondMedItalicCap] [\typescriptthree-anttcmicap] [encoding=\typescriptthree]
+ \loadmapfile[antt-\typescriptthree.map]
+\stoptypescript
+
+% duplicates ? ?
+% atl: no: fallbacks for the named variants
+
+\starttypescript [serif] [antykwa-torunska,antykwa-torunska-light,antykwa-torunska-cond,antykwa-torunska-lightcond] [t2a,t2b,t2c,greek]
+ \definefontsynonym [AntykwaTorunska-BoldCap] [\typescriptthree-anttb] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-BoldItalicCap] [\typescriptthree-anttbi] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-LightCap] [\typescriptthree-anttl] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-LightItalicCap] [\typescriptthree-anttli] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-MediumCap] [\typescriptthree-anttm] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-MedItalicCap] [\typescriptthree-anttmi] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-Cap] [\typescriptthree-anttr] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-ItalicCap] [\typescriptthree-anttri] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-CondBoldCap] [\typescriptthree-anttcb] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-CondBoldItalicCap] [\typescriptthree-anttcbi] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-CondLightCap] [\typescriptthree-anttcl] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-CondLightItalicCap][\typescriptthree-anttcli] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-CondMediumCap] [\typescriptthree-anttcm] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-CondMedItalicCap] [\typescriptthree-anttcmi] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-CondCap] [\typescriptthree-anttcr] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-CondItalicCap] [\typescriptthree-anttcri] [encoding=\typescriptthree]
+ \loadmapfile[antt-\typescriptthree.map]
+\stoptypescript
+
+\starttypescript [serif] [antykwa-torunska,antykwa-torunska-light,antykwa-torunska-cond,antykwa-torunska-lightcond] [t2a,t2b,t2c]
+ \definefontsynonym [AntykwaTorunska-BoldCap] [\typescriptthree-anttb] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-BoldItalicCap] [\typescriptthree-anttbi] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-LightCap] [\typescriptthree-anttl] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-LightItalicCap] [\typescriptthree-anttli] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-MediumCap] [\typescriptthree-anttm] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-MedItalicCap] [\typescriptthree-anttmi] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-Cap] [\typescriptthree-anttr] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-ItalicCap] [\typescriptthree-anttri] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-CondBoldCap] [\typescriptthree-anttcb] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-CondBoldItalicCap] [\typescriptthree-anttcbi] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-CondLightCap] [\typescriptthree-anttcl] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-CondLightItalicCap][\typescriptthree-anttcli] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-CondMediumCap] [\typescriptthree-anttcm] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-CondMedItalicCap] [\typescriptthree-anttcmi] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-CondCap] [\typescriptthree-anttcr] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaTorunska-CondItalicCap] [\typescriptthree-anttcri] [encoding=\typescriptthree]
+ \loadmapfile[antt-\typescriptthree.map]
+\stoptypescript
+
+% mabye no -Regular etc
+% dunny reverse of condlight lightcond
+
+\starttypescript [math] [antykwa-torunska] [default]
+ \definefontsynonym [AntykwaTorunska-Math-Letters-Regular] [rm-anttr]
+ \definefontsynonym [AntykwaTorunska-Math-Letters-Italic] [mi-anttri]
+ \definefontsynonym [AntykwaTorunska-Math-Symbols-Regular] [sy-anttrz]
+ \definefontsynonym [AntykwaTorunska-Math-Extension-Regular] [ex-anttr]
+\stoptypescript
+
+\starttypescript [math] [antykwa-torunska-light] [default]
+ \definefontsynonym [AntykwaTorunska-Math-Letters-Light] [rm-anttl]
+ \definefontsynonym [AntykwaTorunska-Math-Letters-LightItalic] [mi-anttli]
+ \definefontsynonym [AntykwaTorunska-Math-Symbols-Light] [sy-anttlz]
+ \definefontsynonym [AntykwaTorunska-Math-Extension-Light] [ex-anttl]
+\stoptypescript
+
+\starttypescript [math] [antykwa-torunska-cond] [default]
+ \definefontsynonym [AntykwaTorunska-Math-Letters-CondRegular] [rm-anttcr]
+ \definefontsynonym [AntykwaTorunska-Math-Letters-CondItalic] [mi-anttcri]
+ \definefontsynonym [AntykwaTorunska-Math-Symbols-CondRegular] [sy-anttcrz]
+ \definefontsynonym [AntykwaTorunska-Math-Extension-CondRegular] [ex-anttcr]
+\stoptypescript
+
+\starttypescript [math] [antykwa-torunska-lightcond] [default]
+ \definefontsynonym [AntykwaTorunska-Math-Letters-CondLight] [rm-anttcl]
+ \definefontsynonym [AntykwaTorunska-Math-Letters-CondLightItalic] [mi-anttcli]
+ \definefontsynonym [AntykwaTorunska-Math-Symbols-CondLight] [sy-anttclz]
+ \definefontsynonym [AntykwaTorunska-Math-Extension-CondLight] [ex-anttcl]
+\stoptypescript
+
+\starttypescript [math] [antykwa-torunska,antykwa-torunska-light,antykwa-torunska-cond,antykwa-torunska-lightcond] [default]
+ \usemathcollection[default]
+ \loadmapfile[antt-rm.map]
+ \loadmapfile[antt-mi.map]
+ \loadmapfile[antt-sy.map]
+ \loadmapfile[antt-ex.map]
+\stoptypescript
+
+% Antykwa Poltawskiego (GUST)
+
+\starttypescript [serif] [antykwa-poltawskiego] [texnansi,ec,8r]
+ \definefontsynonym [AntykwaPoltawskiego-Regular] [\typescriptthree-antpr] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-Bold] [\typescriptthree-antpb] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-Italic] [\typescriptthree-antpri] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-BoldItalic] [\typescriptthree-antpbi] [encoding=\typescriptthree]
+ \loadmapfile[\typescriptthree-public-antp.map]
+\stoptypescript
+
+% Iwona (JMN)
+
+% maybe this will change in Iwona-Math-Letters and Iwona-Math-Letters-Italic
+
+\starttypescript [sans] [iwona-light,iwona,iwona-medium,iwona-heavy,iwona-light-cond,iwona-cond,iwona-medium-cond,iwona-heavy-cond] [texnansi,ec,el,qx,t5]
+ \definefontsynonym[Iwona-Regular] [\typescriptthree-iwonar] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-Italic] [\typescriptthree-iwonari] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-Bold] [\typescriptthree-iwonab] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-BoldItalic] [\typescriptthree-iwonabi] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-Light-Regular] [\typescriptthree-iwonal] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-Light-Italic] [\typescriptthree-iwonali] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-Medium-Regular] [\typescriptthree-iwonam] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-Medium-Italic] [\typescriptthree-iwonami] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-Heavy-Regular] [\typescriptthree-iwonah] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-Heavy-Italic] [\typescriptthree-iwonahi] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-CapsRegular] [\typescriptthree-iwonarcap] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-CapsItalic] [\typescriptthree-iwonaricap] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-CapsBold] [\typescriptthree-iwonabcap] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-CapsBoldItalic] [\typescriptthree-iwonabicap] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-CapsLight-Regular] [\typescriptthree-iwonalcap] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-CapsLight-Italic] [\typescriptthree-iwonalicap] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-CapsMedium-Regular] [\typescriptthree-iwonamcap] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-CapsMedium-Italic] [\typescriptthree-iwonamicap] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-CapsHeavy-Regular] [\typescriptthree-iwonahcap] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-CapsHeavy-Italic] [\typescriptthree-iwonahicap] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-CondRegular] [\typescriptthree-iwonacr] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-CondItalic] [\typescriptthree-iwonacri] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-CondBold] [\typescriptthree-iwonacb] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-CondBoldItalic] [\typescriptthree-iwonacbi] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-CondLight-Regular] [\typescriptthree-iwonacl] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-CondLight-Italic] [\typescriptthree-iwonacli] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-CondMedium-Regular] [\typescriptthree-iwonacm] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-CondMedium-Italic] [\typescriptthree-iwonacmi] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-CondHeavy-Regular] [\typescriptthree-iwonach] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-CondHeavy-Italic] [\typescriptthree-iwonachi] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-CapsCondRegular] [\typescriptthree-iwonacrcap] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-CapsCondItalic] [\typescriptthree-iwonacricap] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-CapsCondBold] [\typescriptthree-iwonacbcap] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-CapsCondBoldItalic] [\typescriptthree-iwonacbicap] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-CapsCondLight-Regular] [\typescriptthree-iwonaclcap] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-CapsCondLight-Italic] [\typescriptthree-iwonaclicap] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-CapsCondMedium-Regular][\typescriptthree-iwonacmcap] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-CapsCondMedium-Italic] [\typescriptthree-iwonacmicap] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-CapsCondHeavy-Regular] [\typescriptthree-iwonachcap] [encoding=\typescriptthree]
+ \definefontsynonym[Iwona-CapsCondHeavy-Italic] [\typescriptthree-iwonachicap] [encoding=\typescriptthree]
+ \loadmapfile[iwona-\typescriptthree.map]
+\stoptypescript
+
+\starttypescript [math] [iwona] [default]
+ \definefontsynonym [Iwona-Math-Letters-Regular] [rm-iwonar]
+ \definefontsynonym [Iwona-Math-Letters-Italic] [mi-iwonari]
+ \definefontsynonym [Iwona-Math-Symbols-Regular] [sy-iwonarz]
+ \definefontsynonym [Iwona-Math-Extension-Regular] [ex-iwonar]
+\stoptypescript
+
+\starttypescript [math] [iwona-light] [default]
+ \definefontsynonym [Iwona-Math-Letters-Light-Regular] [rm-iwonal]
+ \definefontsynonym [Iwona-Math-Letters-Light-Italic] [mi-iwonali]
+ \definefontsynonym [Iwona-Math-Symbols-Light] [sy-iwonalz]
+ \definefontsynonym [Iwona-Math-Extension-Light] [ex-iwonal]
+\stoptypescript
+
+\starttypescript [math] [iwona-medium] [default]
+ \definefontsynonym [Iwona-Math-Letters-Medium-Regular][rm-iwonam]
+ \definefontsynonym [Iwona-Math-Letters-Medium-Italic] [mi-iwonami]
+ \definefontsynonym [Iwona-Math-Symbols-Medium] [sy-iwonamz]
+ \definefontsynonym [Iwona-Math-Extension-Medium] [ex-iwonam]
+\stoptypescript
+
+\starttypescript [math] [iwona-heavy] [default]
+ \definefontsynonym [Iwona-Math-Letters-Heavy-Regular] [rm-iwonah]
+ \definefontsynonym [Iwona-Math-Letters-Heavy-Italic] [mi-iwonahi]
+ \definefontsynonym [Iwona-Math-Symbols-Heavy] [sy-iwonahz]
+ \definefontsynonym [Iwona-Math-Extension-Heavy] [ex-iwonah]
+\stoptypescript
+
+\starttypescript [math] [iwona,iwona-light,iwona-medium,iwona-heavy] [default]
+ \usemathcollection[default]
+ \loadmapfile[iwona-rm.map]
+ \loadmapfile[iwona-mi.map]
+ \loadmapfile[iwona-sy.map]
+ \loadmapfile[iwona-ex.map]
+\stoptypescript
+
+% Kurier (JMN)
+
+\starttypescript [sans] [kurier-light,kurier,kurier-medium] [texnansi,ec,qx,t5]
+ \definefontsynonym[Kurier-Regular] [\typescriptthree-kurierr] [encoding=\typescriptthree]
+ \definefontsynonym[Kurier-Italic] [\typescriptthree-kurierri] [encoding=\typescriptthree]
+ \definefontsynonym[Kurier-RegularItalic] [Kurier-Italic]
+ \definefontsynonym[Kurier-Bold] [\typescriptthree-kurierb] [encoding=\typescriptthree]
+ \definefontsynonym[Kurier-BoldItalic] [\typescriptthree-kurierbi] [encoding=\typescriptthree]
+ \definefontsynonym[Kurier-Light] [\typescriptthree-kurierl] [encoding=\typescriptthree]
+ \definefontsynonym[Kurier-LightItalic] [\typescriptthree-kurierli] [encoding=\typescriptthree]
+ \definefontsynonym[Kurier-Medium] [\typescriptthree-kurierm] [encoding=\typescriptthree]
+ \definefontsynonym[Kurier-MediumItalic] [\typescriptthree-kuriermi] [encoding=\typescriptthree]
+ \definefontsynonym[Kurier-Heavy] [\typescriptthree-kurierh] [encoding=\typescriptthree]
+ \definefontsynonym[Kurier-HeavyItalic] [\typescriptthree-kurierhi] [encoding=\typescriptthree]
+ \loadmapfile[kurier-\typescriptthree.map]
+\stoptypescript
+
+\starttypescript [math] [kurier] [default]
+ \definefontsynonym [Kurier-Math-Letters-Regular] [rm-kurierr]
+ \definefontsynonym [Kurier-Math-Letters-Italic] [mi-kurierri]
+ \definefontsynonym [Kurier-Math-Symbols-Regular] [sy-kurierrz]
+ \definefontsynonym [Kurier-Math-Extension-Regular] [ex-kurierr]
+\stoptypescript
+
+\starttypescript [math] [kurier-light] [default]
+ \definefontsynonym [Kurier-Math-Letters-Light-Regular] [rm-kurierl]
+ \definefontsynonym [Kurier-Math-Letters-Light-Italic] [mi-kurierli]
+ \definefontsynonym [Kurier-Math-Symbols-Light] [sy-kurierlz]
+ \definefontsynonym [Kurier-Math-Extension-Light] [ex-kurierl]
+\stoptypescript
+
+\starttypescript [math] [kurier-medium] [default]
+ \definefontsynonym [Kurier-Math-Letters-Medium-Regular][rm-kurierm]
+ \definefontsynonym [Kurier-Math-Letters-Medium-Italic] [mi-kuriermi]
+ \definefontsynonym [Kurier-Math-Symbols-Medium] [sy-kuriermz]
+ \definefontsynonym [Kurier-Math-Extension-medium] [ex-kurierm]
+\stoptypescript
+
+\starttypescript [math] [kurier,kurier-light,kurier-medium] [default]
+ \usemathcollection[default]
+ \loadmapfile[kurier-rm.map]
+ \loadmapfile[kurier-mi.map]
+ \loadmapfile[kurier-sy.map]
+ \loadmapfile[kurier-ex.map]
+\stoptypescript
+
+\starttypescript [kurier-light,kurier,kurier-medium] [texnansi,ec,qx,t5]
+ \definetypeface[\typescriptone][ss][sans] [\typescriptone] [default][encoding=\typescripttwo]
+ \definetypeface[\typescriptone][rm][serif][modern] [default][encoding=\typescripttwo]
+ \definetypeface[\typescriptone][tt][mono] [modern] [default][encoding=\typescripttwo,rscale=1.05]
+ \definetypeface[\typescriptone][mm][math] [\typescriptone] [default][encoding=\typescripttwo,text=ss]
+ \quittypescriptscanning
+\stoptypescript
+
+% Utopia (Adobe)
+
+\starttypescript [serif] [utopia] [ec,texnansi]
+ \definefontsynonym [Utopia-Regular] [\typescriptthree-putr8a] [encoding=\typescriptthree]
+ \definefontsynonym [Utopia-Italic] [\typescriptthree-putri8a] [encoding=\typescriptthree]
+ \definefontsynonym [Utopia-Bold] [\typescriptthree-putb8a] [encoding=\typescriptthree]
+ \definefontsynonym [Utopia-BoldItalic] [\typescriptthree-putbi8a] [encoding=\typescriptthree]
+ \definefontsynonym [Utopia-Slanted] [\typescriptthree-putr8a-slanted-167] [encoding=\typescriptthree]
+ \definefontsynonym [Utopia-BoldSlanted] [\typescriptthree-putb8a-slanted-167] [encoding=\typescriptthree]
+ \definefontsynonym [Utopia-Regular-Caps][\typescriptthree-putr8a-capitalized-800] [encoding=\typescriptthree]
+ \loadmapfile[\typescriptthree-adobe-utopia.map]
+\stoptypescript
+
+% Charter (Bitstream)
+
+\starttypescript [serif] [charter] [ec,texnansi,8r]
+ \definefontsynonym [Charter-Roman] [\typescriptthree-bchr8a] [encoding=\typescriptthree]
+ \definefontsynonym [Charter-Italic] [\typescriptthree-bchri8a] [encoding=\typescriptthree]
+ \definefontsynonym [Charter-Bold] [\typescriptthree-bchb8a] [encoding=\typescriptthree]
+ \definefontsynonym [Charter-BoldItalic] [\typescriptthree-bchbi8a] [encoding=\typescriptthree]
+ \definefontsynonym [Charter-Slanted] [\typescriptthree-bchr8a-slanted-167] [encoding=\typescriptthree]
+ \definefontsynonym [Charter-BoldSlanted][\typescriptthree-bchb8a-slanted-167] [encoding=\typescriptthree]
+ \definefontsynonym [Charter-Roman-Caps] [\typescriptthree-bchr8a-capitalized-800] [encoding=\typescriptthree]
+ \loadmapfile[\typescriptthree-bitstrea-charter.map]
+\stoptypescript
+
+% Whatever else we need:
+
+\starttypescript
+ \definefontsynonym [ZapfDingbats] [uzdr]
+ \definefontsynonym [RalfSmithFormalScript] [rsfs10]
+ \definefontsynonym [MartinVogel] [fmvr8x]
+\stoptypescript
+
+%
+% TeXGyre
+%
+% We now use tex-gyre fonts by default ...
+
+\definetypescriptprefix [f:pagella] [pl] \definetypescriptprefix [f:palatino] [pl]
+\definetypescriptprefix [f:termes] [tm] \definetypescriptprefix [f:times] [tm]
+\definetypescriptprefix [f:heros] [hv] \definetypescriptprefix [f:helvetica] [hv]
+\definetypescriptprefix [f:bonum] [bk] \definetypescriptprefix [f:bookman] [bk]
+\definetypescriptprefix [f:schola] [cs] \definetypescriptprefix [f:schoolbook] [cs]
+\definetypescriptprefix [f:adventor][ag] %definetypescriptprefix [f:adventor] [ag]
+\definetypescriptprefix [f:cursor] [cr] \definetypescriptprefix [f:courier] [cr]
+\definetypescriptprefix [f:chorus] [zc] \definetypescriptprefix [f:chancery] [zc] % not the full set
+
+\starttypescript [serif,sans,mono] [pagella,palatino,termes,times,adventor,bonum,bookman,cursor,courier,heros,helvetica,schola,schoolbook] [ec,texnansi,cs,qx,rm,t5,t2a,t2b,t2c,l7x]
+ \definefontsynonym [\typescriptprefix{n:\typescripttwo}-Regular] [\typescriptthree-q\typescriptprefix{f:\typescripttwo}r] [encoding=\typescriptthree]
+ \definefontsynonym [\typescriptprefix{n:\typescripttwo}-Italic] [\typescriptthree-q\typescriptprefix{f:\typescripttwo}ri] [encoding=\typescriptthree]
+ \definefontsynonym [\typescriptprefix{n:\typescripttwo}-Bold] [\typescriptthree-q\typescriptprefix{f:\typescripttwo}b] [encoding=\typescriptthree]
+ \definefontsynonym [\typescriptprefix{n:\typescripttwo}-BoldItalic] [\typescriptthree-q\typescriptprefix{f:\typescripttwo}bi] [encoding=\typescriptthree]
+ \loadmapfile[q\typescriptprefix{f:\typescripttwo}-\typescriptthree.map]
+\stoptypescript
+
+\starttypescript [serif,sans,mono] [pagella,palatino,termes,times,adventor,bonum,bookman,cursor,courier,heros,helvetica,schola,schoolbook] [ec,texnansi,cs,qx,rm,t5,l7x]
+ \definefontsynonym [\typescriptprefix{n:\typescripttwo}-Caps] [\typescriptthree-q\typescriptprefix{f:\typescripttwo}r-sc] [encoding=\typescriptthree]
+ \definefontsynonym [\typescriptprefix{n:\typescripttwo}-ItalicCaps] [\typescriptthree-q\typescriptprefix{f:\typescripttwo}ri-sc] [encoding=\typescriptthree]
+ \definefontsynonym [\typescriptprefix{n:\typescripttwo}-BoldCaps] [\typescriptthree-q\typescriptprefix{f:\typescripttwo}b-sc] [encoding=\typescriptthree]
+ \definefontsynonym [\typescriptprefix{n:\typescripttwo}-BoldItalicCaps] [\typescriptthree-q\typescriptprefix{f:\typescripttwo}bi-sc] [encoding=\typescriptthree]
+ \loadmapfile[q\typescriptprefix{f:\typescripttwo}-\typescriptthree.map]
+\stoptypescript
+
+\starttypescript [serif] [chorus,chancery] [ec,texnansi,cs,qx,rm,t5,t2a,t2b,t2c,l7x]
+ \definefontsynonym [TeXGyreChorus-MediumItalic] [\typescriptthree-qzcmi] [encoding=\typescriptthree]
+ \loadmapfile[qzc-\typescriptthree.map]
+\stoptypescript
+
+% bonus definitions
+
+% when these fonts are in tex live ...
+%
+% \definefontsynonym [Palatino-Caps] [TeXPalladioL-SC] [encoding=\typescriptthree]
+%
+% \starttypescript [serif] [palatino] [ec,texnansi]
+% \definefontsynonym[TeXPalladioL-BoldItalicOsF][\typescriptthree-fplbij8a][encoding=\typescriptthree]
+% \definefontsynonym[TeXPalladioL-BoldOsF] [\typescriptthree-fplbj8a] [encoding=\typescriptthree]
+% \definefontsynonym[TeXPalladioL-SC] [\typescriptthree-fplrc8a] [encoding=\typescriptthree]
+% \definefontsynonym[TeXPalladioL-ItalicOsF] [\typescriptthree-fplrij8a][encoding=\typescriptthree]
+% \loadmapfile[\typescriptthree-urw-palatino.map]
+% \stoptypescript
+
+% Palatino Math (px)
+
+\starttypescript [math] [palatino] [all]
+ \definefontsynonym [Palatino-Roman-Upright] [pxr]
+ \definefontsynonym [Palatino-Roman-Italic] [pxi]
+ \definefontsynonym [Palatino-Roman-Slanted] [pxsl]
+ \definefontsynonym [Palatino-Roman-Caps] [pxsc]
+ \definefontsynonym [Palatino-Companion-Upright] [pcxr]
+ \definefontsynonym [Palatino-Companion-Italic] [pcxi]
+ \definefontsynonym [Palatino-Companion-Slanted] [pcxsl]
+ \definefontsynonym [Palatino-Math-Italic] [pxmi]
+ \definefontsynonym [Palatino-Math-Symbols] [pxsy]
+ \definefontsynonym [Palatino-Math-Extension] [pxex]
+ \definefontsynonym [Palatino-Math-SymbolsA] [pxsya]
+ \definefontsynonym [Palatino-Math-SymbolsB] [pxsyb]
+ \definefontsynonym [Palatino-Math-SymbolsC] [pxsyc]
+ \definefontsynonym [Palatino-Math-Italic-A] [pxmia]
+ \definefontsynonym [Palatino-Math-Extension-A] [pxexa]
+ \usemathcollection[default]
+ \loadmapfile[original-youngryu-px.map]
+\stoptypescript
+
+% Times Math (tx)
+
+\starttypescript [math] [times] [all]
+ \definefontsynonym [Times-Roman-Upright] [txr]
+ \definefontsynonym [Times-Roman-Italic] [txi]
+ \definefontsynonym [Times-Roman-Slanted] [txsl]
+ \definefontsynonym [Times-Roman-Caps] [txsc]
+ \definefontsynonym [Times-Companion-Upright] [tcxr]
+ \definefontsynonym [Times-Companion-Italic] [tcxi]
+ \definefontsynonym [Times-Companion-Slanted] [tcxsl]
+ \definefontsynonym [Times-Math-Italic] [txmi]
+ \definefontsynonym [Times-Math-Symbols] [txsy]
+ \definefontsynonym [Times-Math-Extension] [txex]
+ \definefontsynonym [Times-Math-SymbolsA] [txsya]
+ \definefontsynonym [Times-Math-SymbolsB] [txsyb]
+ \definefontsynonym [Times-Math-SymbolsC] [txsyc]
+ \definefontsynonym [Times-Math-Italic-A] [txmia]
+ \definefontsynonym [Times-Math-Extension-A] [txexa]
+ \usemathcollection[default]
+ \loadmapfile[original-youngryu-tx.map]
+\stoptypescript
+
+%D These are just fallbacks in case anyone stil uses the old names (might also be removed?).
+
+%
+% TeXGyrePagella
+%
+\starttypescript [serif] [palatino]
+ \definefontsynonym [Palatino] [TeXGyrePagella-Regular]
+ \definefontsynonym [Palatino-Italic] [TeXGyrePagella-Italic]
+ \definefontsynonym [Palatino-Bold] [TeXGyrePagella-Bold]
+ \definefontsynonym [Palatino-BoldItalic] [TeXGyrePagella-BoldItalic]
+ \definefontsynonym [Palatino-Slanted] [TeXGyrePagella-Italic]
+ \definefontsynonym [Palatino-BoldSlanted] [TeXGyrePagella-BoldItalic]
+ \definefontsynonym [Palatino-Caps] [TeXGyrePagella-Caps]
+\stoptypescript
+%
+% TeXGyreTermes
+%
+\starttypescript [serif] [times]
+ \definefontsynonym [Times-Roman] [TeXGyreTermes-Regular]
+ \definefontsynonym [Times-Italic] [TeXGyreTermes-Italic]
+ \definefontsynonym [Times-Bold] [TeXGyreTermes-Bold]
+ \definefontsynonym [Times-BoldItalic] [TeXGyreTermes-BoldItalic]
+ \definefontsynonym [Times-Slanted] [TeXGyreTermes-Italic]
+ \definefontsynonym [Times-BoldSlanted] [TeXGyreTermes-BoldItalic]
+ \definefontsynonym [Times-Caps] [TeXGyreTermes-Caps]
+\stoptypescript
+%
+% TeXGyreHeros
+%
+\starttypescript [sans] [helvetica]
+ \definefontsynonym [Helvetica] [TeXGyreHeros-Regular]
+ \definefontsynonym [Helvetica-Oblique] [TeXGyreHeros-Italic]
+ \definefontsynonym [Helvetica-Bold] [TeXGyreHeros-Bold]
+ \definefontsynonym [Helvetica-BoldOblique] [TeXGyreHeros-BoldItalic]
+ \definefontsynonym [Helvetica-Caps] [TeXGyreHeros-Caps]
+\stoptypescript
+%
+% TeXGyreBonum
+%
+\starttypescript [serif] [bookman]
+ \definefontsynonym [Bookman-Light] [TeXGyreBonum-Regular]
+ \definefontsynonym [Bookman-LightItalic] [TeXGyreBonum-Italic]
+ \definefontsynonym [Bookman-DemiBold] [TeXGyreBonum-Bold]
+ \definefontsynonym [Bookman-DemiBoldItalic] [TeXGyreBonum-BoldItalic]
+ \definefontsynonym [Bookman-LightSlanted] [TeXGyreBonum-Italic]
+ \definefontsynonym [Bookman-DemiBoldSlanted] [TeXGyreBonum-BoldItalic]
+ \definefontsynonym [Bookman-Light-Caps] [TeXGyreBonum-Caps]
+\stoptypescript
+%
+% TeXGyreScola
+%
+\starttypescript [serif] [schoolbook]
+ \definefontsynonym [Schoolbook-Roman] [TeXGyreScola-Regular]
+ \definefontsynonym [Schoolbook-Italic] [TeXGyreScola-Italic]
+ \definefontsynonym [Schoolbook-Bold] [TeXGyreScola-Bold]
+ \definefontsynonym [Schoolbook-BoldItalic] [TeXGyreScola-BoldItalic]
+ \definefontsynonym [Schoolbook-Slanted] [TeXGyreScola-Italic]
+ \definefontsynonym [Schoolbook-BoldSlanted] [TeXGyreScola-BoldItalic]
+ \definefontsynonym [Schoolbook-Roman-Caps] [TeXGyreScola-Caps]
+\stoptypescript
+%
+% TeXGyreAdventor
+%
+%
+% TeXGyreCursor
+%
+\starttypescript [mono] [courier]
+ \definefontsynonym [Courier] [TeXGyreCursor-Regular]
+ \definefontsynonym [Courier-Bold] [TeXGyreCursor-Bold]
+ \definefontsynonym [Courier-Oblique] [TeXGyreCursor-Italic]
+ \definefontsynonym [Courier-BoldOblique] [TeXGyreCursor-BoldItalic]
+ \fakecontrolspace
+\stoptypescript
+%
+% TeXGyreChorus
+%
+\starttypescript [calligraphy] [chancery]
+ \definefontsynonym [Chancery] [TeXGyreChorus-MediumItalic]
+\stoptypescript
+
+\stoptypescriptcollection
+
+\endinput
diff --git a/Master/texmf-dist/tex/context/base/sort-lan.mkiv b/Master/texmf-dist/tex/context/base/type-one.mkiv
index 918f7f9b75b..6f64dff0a4a 100644
--- a/Master/texmf-dist/tex/context/base/sort-lan.mkiv
+++ b/Master/texmf-dist/tex/context/base/type-one.mkiv
@@ -1,8 +1,8 @@
%D \module
-%D [ file=sort-lan,
-%D version=2005.08.08,
-%D title=\CONTEXT\ Sort Macros,
-%D subtitle=Language Definitions,
+%D [ file=type-one,
+%D version=2007.07.30,
+%D title=\CONTEXT\ Typescript Macros,
+%D subtitle=Type One Definitions,
%D author=Hans Hagen,
%D date=\currentdate,
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
@@ -11,6 +11,6 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\registerctxluafile{sort-lan}{1.001}
+% We use open type fonts in \MKIV.
\endinput
diff --git a/Master/texmf-dist/tex/context/base/type-one.tex b/Master/texmf-dist/tex/context/base/type-one.tex
index ae9a9275b50..bd18eb2810f 100644
--- a/Master/texmf-dist/tex/context/base/type-one.tex
+++ b/Master/texmf-dist/tex/context/base/type-one.tex
@@ -11,1165 +11,6 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-%D This file merges the traditional enc, syn and map files into one. If
-%D you think that it looks messy you're right. It shows some history of
-%D \TEX\ fonts and the development towards latin modern.
-
-% texfont --ven=public --col=antt --enc=ec --sou=auto
-% texfont --ven=public --col=antp --enc=ec --sou=auto
-% texfont --ven=urw --col=palatino --enc=ec --sou=auto
-% texfont --ven-lucas --col=sun --enc=ec --sou=.
-
-% \usetypescript [all] [modern] [texnansi]
-% \setupbodyfont[reset] \setupbodyfont[cmr]
-% \starttext \showfont[Serif] \stoptext
-
-\starttypescriptcollection[examples]
-
-\starttypescript [fallback] [texnansi,ec,qx,t5,default]
- \definetypeface [] [rm] [serif] [modern] [computer-modern] [encoding=\typescripttwo]
- \definetypeface [] [ss] [sans] [modern] [computer-modern] [encoding=\typescripttwo]
- \definetypeface [] [tt] [mono] [modern] [computer-modern] [encoding=\typescripttwo]
- \definetypeface [] [mm] [math] [modern] [computer-modern] [encoding=\typescripttwo]
- \quittypescriptscanning
-\stoptypescript
-
-\starttypescript [modern] [texnansi,ec,qx,t5,default]
- \definetypeface [modern] [rm] [serif] [modern] [computer-modern] [encoding=\typescripttwo]
- \definetypeface [modern] [ss] [sans] [modern] [computer-modern] [encoding=\typescripttwo]
- \definetypeface [modern] [tt] [mono] [modern] [computer-modern] [encoding=\typescripttwo]
- \definetypeface [modern] [mm] [math] [modern] [computer-modern] [encoding=\typescripttwo]
- \quittypescriptscanning
-\stoptypescript
-
-\starttypescript [modern-base] [texnansi,ec,qx,t5,default]
- \definetypeface [modern] [rm] [serif] [modern] [default] [encoding=\typescripttwo]
- \definetypeface [modern] [ss] [sans] [modern] [default] [encoding=\typescripttwo]
- \definetypeface [modern] [tt] [mono] [modern] [default] [encoding=\typescripttwo]
- \definetypeface [modern] [mm] [math] [modern] [default] [encoding=\typescripttwo]
- \quittypescriptscanning
-\stoptypescript
-
-\starttypescript [modern-base] [t2a,t2b,t2c,x2]
- \definetypeface [modern] [rm] [serif] [computer-modern] [default] [encoding=\typescripttwo]
- \definetypeface [modern] [ss] [sans] [computer-modern] [default] [encoding=\typescripttwo]
- \definetypeface [modern] [tt] [mono] [computer-modern] [default] [encoding=\typescripttwo]
- \definetypeface [modern] [mm] [math] [computer-modern] [default] [encoding=\typescripttwo]
- \quittypescriptscanning
-\stoptypescript
-
-\starttypescript [postscript] [texnansi,ec,qx,t5,uc,8r]
- \definetypeface [postscript] [rm] [serif] [times] [default] [encoding=\typescripttwo]
- \definetypeface [postscript] [ss] [sans] [helvetica] [default] [rscale=.9,encoding=\typescripttwo]
- \definetypeface [postscript] [tt] [mono] [courier] [default] [rscale=1.1,encoding=\typescripttwo]
- \definetypeface [postscript] [mm] [math] [times] [default]
- \usemathcollection[default]
- \quittypescriptscanning
-\stoptypescript
-
-\starttypescript [times] [texnansi,ec,qx,8r,t5,uc]
- \definetypeface [times] [rm] [serif] [times] [default] [encoding=\typescripttwo]
- \definetypeface [times] [ss] [sans] [helvetica] [default] [encoding=\typescripttwo,rscale=0.9]
- \definetypeface [times] [tt] [mono] [modern] [default] [encoding=\typescripttwo,rscale=1.05]
- \definetypeface [times] [mm] [math] [times] [default] [encoding=\typescripttwo]
- \usemathcollection[default]
- \quittypescriptscanning
-\stoptypescript
-
-\starttypescript [palatino] [texnansi,ec,qx,8r,t5,uc]
- \definetypeface [palatino] [rm] [serif] [palatino] [default] [encoding=\typescripttwo]
- \definetypeface [palatino] [tt] [mono] [modern] [default] [encoding=\typescripttwo,rscale=1.075]
- \definetypeface [palatino] [mm] [math] [palatino] [default] [encoding=default]
- \usemathcollection[default]
- \quittypescriptscanning
-\stoptypescript
-
-\starttypescript [fourier] [ec]
- \definetypeface [fourier] [rm] [serif] [fourier] [default] [encoding=ec]
- \definetypeface [fourier] [mm] [math] [fourier] [default] [encoding=default]
- \definetypeface [fourier] [tt] [mono] [modern] [default] [encoding=ec,rscale=1.07]
- \usemathcollection[fou]
- \quittypescriptscanning
-\stoptypescript
-
-% handy
-
-\starttypescript [serif] [simple] [name] % bad, will be changed but in sycn with manuals that use it
- \definefontsynonym [Simple] [cmvtt10]
- \setupfontsynonym [Simple] [handling=pure]
-\stoptypescript
-
-\starttypescript [modernvariable] [texnansi,ec,qx,8r,t5]
- \definetypeface [modernvariable] [rm] [serif] [simple] [default] [encoding=\typescripttwo]
- \definetypeface [modernvariable] [ss] [sans] [modern] [default] [encoding=\typescripttwo]
- \definetypeface [modernvariable] [tt] [mono] [modern] [default] [encoding=\typescripttwo]
- \definetypeface [modernvariable] [mm] [math] [modern] [default]
- \quittypescriptscanning
-\stoptypescript
-
-\starttypescript [optima] [texnansi,ec,qx]
- \definetypeface[optima][ss][sans] [optima-nova][default][encoding=\typescripttwo]
- \definetypeface[optima][rm][serif][palatino] [default][encoding=\typescripttwo]
- \definetypeface[optima][tt][mono] [modern] [default][encoding=\typescripttwo,rscale=1.1]
- \definetypeface[optima][mm][math] [palatino] [default][encoding=\typescripttwo]
- \quittypescriptscanning
-\stoptypescript
-
-\starttypescript [antykwa-torunska] [texnansi,ec,8r,uc,t2a]
- \definetypeface[antykwa][rm][serif][antykwa-torunska] [default][encoding=\typescripttwo]
- \definetypeface[antykwa][ss][sans] [modern] [default][encoding=\typescripttwo,rscale=1.05]
- \definetypeface[antykwa][tt][mono] [modern] [default][encoding=\typescripttwo,rscale=1.1]
- \definetypeface[antykwa][mm][math] [antykwa-torunska] [default][encoding=\typescripttwo]
- \quittypescriptscanning
-\stoptypescript
-
-\starttypescript [iwona,iwona-light,iwona-heavy,iwona-medium] [texnansi,ec,8r,uc,t2a]
- \definetypeface[\typescriptone][ss][sans] [\typescriptone] [default][encoding=\typescripttwo]
- \definetypeface[\typescriptone][rm][serif][modern] [default][encoding=\typescripttwo]
- \definetypeface[\typescriptone][tt][mono] [modern] [default][encoding=\typescripttwo]
- \definetypeface[\typescriptone][mm][math] [\typescriptone] [default][encoding=\typescripttwo,text=ss]
- \quittypescriptscanning
-\stoptypescript
-
-\stoptypescriptcollection
-
-\starttypescriptcollection[typeone]
-
-\starttypescript [map] [all]
- \loadmapfile[original-base.map]
- \loadmapfile[original-ams-base.map]
-\stoptypescript
-
-\starttypescript[all][modern,latin-modern][all]
-
- % fallbacks, no math in latin modern
-
- \definefontsynonym[lmdunh10][cmdunh10]
- \definefontsynonym[lmff10] [cmff10]
- \definefontsynonym[lmfi10] [cmfi10]
- \definefontsynonym[lmfib8] [cmfib8]
- \definefontsynonym[lmtex10] [cmtex10]
- \definefontsynonym[lmtex8] [cmtex8]
- \definefontsynonym[lmtex9] [cmtex9]
-
- \loadmapfile[original-public-lm.map]
-\stoptypescript
-
-\starttypescript [serif] [modern,latin-modern] [texnansi,ec,qx,t5]
- \definefontsynonym [LMRoman5-Regular] [\typescriptthree-lmr5] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman6-Regular] [\typescriptthree-lmr6] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman7-Regular] [\typescriptthree-lmr7] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman8-Regular] [\typescriptthree-lmr8] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman9-Regular] [\typescriptthree-lmr9] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman10-Regular] [\typescriptthree-lmr10] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman12-Regular] [\typescriptthree-lmr12] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman17-Regular] [\typescriptthree-lmr17] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman5-Bold] [\typescriptthree-lmbx5] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman6-Bold] [\typescriptthree-lmbx6] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman7-Bold] [\typescriptthree-lmbx7] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman8-Bold] [\typescriptthree-lmbx8] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman9-Bold] [\typescriptthree-lmbx9] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman10-Bold] [\typescriptthree-lmbx10] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman12-Bold] [\typescriptthree-lmbx12] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman7-Italic] [\typescriptthree-lmri7] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman8-Italic] [\typescriptthree-lmri8] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman9-Italic] [\typescriptthree-lmri9] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman10-Italic] [\typescriptthree-lmri10] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman12-Italic] [\typescriptthree-lmri12] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman10-BoldItalic] [\typescriptthree-lmbxi10] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman8-Oblique] [\typescriptthree-lmro8] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman9-Oblique] [\typescriptthree-lmro9] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman10-Oblique] [\typescriptthree-lmro10] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman12-Oblique] [\typescriptthree-lmro12] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman17-Oblique] [\typescriptthree-lmro17] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman10-BoldOblique] [\typescriptthree-lmbxo10] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman10-Demi] [\typescriptthree-lmb10] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman10-DemiOblique] [\typescriptthree-lmbo10] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman10-CapsRegular] [\typescriptthree-lmcsc10] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman10-CapsOblique] [\typescriptthree-lmcsco10] [encoding=\typescriptthree]
-
- \definefontsynonym [LMRoman10-Dunhill] [\typescriptthree-lmdunh10] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman10-DunhillOblique] [\typescriptthree-lmduno10] [encoding=\typescriptthree]
-
- \loadmapfile[lm-\typescriptthree.map]
-\stoptypescript
-
-\starttypescript [sans] [modern,latin-modern] [texnansi,ec,qx,t5]
- \definefontsynonym [LMSans8-Regular] [\typescriptthree-lmss8] [encoding=\typescriptthree]
- \definefontsynonym [LMSans9-Regular] [\typescriptthree-lmss9] [encoding=\typescriptthree]
- \definefontsynonym [LMSans10-Regular] [\typescriptthree-lmss10] [encoding=\typescriptthree]
- \definefontsynonym [LMSans12-Regular] [\typescriptthree-lmss12] [encoding=\typescriptthree]
- \definefontsynonym [LMSans17-Regular] [\typescriptthree-lmss17] [encoding=\typescriptthree]
- \definefontsynonym [LMSans10-Bold] [\typescriptthree-lmssbx10] [encoding=\typescriptthree]
- \definefontsynonym [LMSans8-Oblique] [\typescriptthree-lmsso8] [encoding=\typescriptthree]
- \definefontsynonym [LMSans9-Oblique] [\typescriptthree-lmsso9] [encoding=\typescriptthree]
- \definefontsynonym [LMSans10-Oblique] [\typescriptthree-lmsso10] [encoding=\typescriptthree]
- \definefontsynonym [LMSans12-Oblique] [\typescriptthree-lmsso12] [encoding=\typescriptthree]
- \definefontsynonym [LMSans17-Oblique] [\typescriptthree-lmsso17] [encoding=\typescriptthree]
- \definefontsynonym [LMSans10-BoldOblique] [\typescriptthree-lmssbo10] [encoding=\typescriptthree]
- \definefontsynonym [LMSans10-DemiCondensed] [\typescriptthree-lmssdc10] [encoding=\typescriptthree]
- \definefontsynonym [LMSans10-DemiCondensedOblique] [\typescriptthree-lmssdo10] [encoding=\typescriptthree]
- \definefontsynonym [LMSansQuotation8-Regular] [\typescriptthree-lmssq8] [encoding=\typescriptthree]
- \definefontsynonym [LMSansQuotation8-Bold] [\typescriptthree-lmssqbx8] [encoding=\typescriptthree]
- \definefontsynonym [LMSansQuotation8-Oblique] [\typescriptthree-lmssqo8] [encoding=\typescriptthree]
- \definefontsynonym [LMSansQuotation8-BoldOblique] [\typescriptthree-lmssqbo8] [encoding=\typescriptthree]
-
- \loadmapfile[lm-\typescriptthree.map]
-\stoptypescript
-
-\starttypescript [mono] [modern,latin-modern,modern-vari,latin-modern-vari,modern-cond,latin-modern-cond] [texnansi,ec,qx,t5]
- \definefontsynonym [LMTypewriter8-Regular] [\typescriptthree-lmtt8] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriter9-Regular] [\typescriptthree-lmtt9] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriter10-Regular] [\typescriptthree-lmtt10] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriter12-Regular] [\typescriptthree-lmtt12] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriter10-Italic] [\typescriptthree-lmtti10] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriter10-Oblique] [\typescriptthree-lmtto10] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriter10-CapsRegular] [\typescriptthree-lmtcsc10] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriter10-CapsOblique] [\typescriptthree-lmtcso10] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriter10-Light] [\typescriptthree-lmtl10] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriter10-LightOblique] [\typescriptthree-lmtlo10] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriter10-LightCondensed] [\typescriptthree-lmtlc10] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriter10-LightCondensedOblique] [\typescriptthree-lmtlco10] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriter10-Dark] [\typescriptthree-lmtk10] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriter10-DarkOblique] [\typescriptthree-lmtko10] [encoding=\typescriptthree]
-
- \definefontsynonym [LMTypewriter10-Unslanted] [\typescriptthree-lmu10] [encoding=\typescriptthree]
-
- \definefontsynonym [LMTypewriterVarWd10-Regular] [\typescriptthree-lmvtt10] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriterVarWd10-Oblique] [\typescriptthree-lmvtto10] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriterVarWd10-Light] [\typescriptthree-lmvtl10] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriterVarWd10-LightOblique] [\typescriptthree-lmvtlo10] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriterVarWd10-Dark] [\typescriptthree-lmvtk10] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriterVarWd10-DarkOblique] [\typescriptthree-lmvtko10] [encoding=\typescriptthree]
-
- \loadmapfile[lm-\typescriptthree.map]
-\stoptypescript
-
-\starttypescript [math] [modern,latin-modern]
- \definefontsynonym [LMMathRoman5-Regular] [rm-lmr5]
- \definefontsynonym [LMMathRoman6-Regular] [rm-lmr6]
- \definefontsynonym [LMMathRoman7-Regular] [rm-lmr7]
- \definefontsynonym [LMMathRoman8-Regular] [rm-lmr8]
- \definefontsynonym [LMMathRoman9-Regular] [rm-lmr9]
- \definefontsynonym [LMMathRoman10-Regular] [rm-lmr10]
- \definefontsynonym [LMMathRoman12-Regular] [rm-lmr12]
- \definefontsynonym [LMMathRoman17-Regular] [rm-lmr17]
- \definefontsynonym [LMMathRoman5-Bold] [rm-lmbx5]
- \definefontsynonym [LMMathRoman6-Bold] [rm-lmbx6]
- \definefontsynonym [LMMathRoman7-Bold] [rm-lmbx7]
- \definefontsynonym [LMMathRoman8-Bold] [rm-lmbx8]
- \definefontsynonym [LMMathRoman9-Bold] [rm-lmbx9]
- \definefontsynonym [LMMathRoman10-Bold] [rm-lmbx10]
- \definefontsynonym [LMMathRoman12-Bold] [rm-lmbx12]
- \definefontsynonym [LMMathSymbols5-BoldItalic] [lmbsy5]
- \definefontsynonym [LMMathSymbols7-BoldItalic] [lmbsy7]
- \definefontsynonym [LMMathSymbols10-BoldItalic][lmbsy10]
- \definefontsynonym [LMMathSymbols5-Italic] [lmsy5]
- \definefontsynonym [LMMathSymbols6-Italic] [lmsy6]
- \definefontsynonym [LMMathSymbols7-Italic] [lmsy7]
- \definefontsynonym [LMMathSymbols8-Italic] [lmsy8]
- \definefontsynonym [LMMathSymbols9-Italic] [lmsy9]
- \definefontsynonym [LMMathSymbols10-Italic] [lmsy10]
- \definefontsynonym [LMMathExtension10-Regular] [lmex10]
- \definefontsynonym [LMMathItalic5-Italic] [lmmi5]
- \definefontsynonym [LMMathItalic6-Italic] [lmmi6]
- \definefontsynonym [LMMathItalic7-Italic] [lmmi7]
- \definefontsynonym [LMMathItalic8-Italic] [lmmi8]
- \definefontsynonym [LMMathItalic9-Italic] [lmmi9]
- \definefontsynonym [LMMathItalic10-Italic] [lmmi10]
- \definefontsynonym [LMMathItalic12-Italic] [lmmi12]
- \definefontsynonym [LMMathItalic5-BoldItalic] [lmmib5]
- \definefontsynonym [LMMathItalic7-BoldItalic] [lmmib7]
- \definefontsynonym [LMMathItalic10-BoldItalic] [lmmib10]
-
- \loadmapfile[lm-math.map]
- \loadmapfile[lm-rm.map]
-\stoptypescript
-
-%D {\em Comments by Victor Figurnov:} the wcmb10, wcmbx10,
-%D \unknown\ fonts below are taken from the Paradissa
-%D collection by Basil Malyshev. These fonts don't conform t2a
-%D encoding but are in MS Windows Cyrillic codepage 1251
-%D encoding. These fonts contain only 33 russian letters in
-%D upper and lower case, the number sign, and guillemots. But
-%D even among these characters only the basic 32 russian
-%D letters (in upper and lower case) will be typeset correctly
-%D with this definition. The letters cyrillicYO and
-%D cyrillicyo, as well as number sign (textnumero) and
-%D guillemots won't be typeset properly, because these symbols
-%D have different positions in t2a and MS CP1251 encodings.
-%D
-%D I think that the russian lh fonts and|/|or cm-super provide
-%D better alternatives (type1). Therefore, the names below
-%D match those of cm-super (\type {0NNN} instead of \type
-%D {NNN}, i.e.\ four digit numbers).
-
-\starttypescript [serif] [computer-modern] [cyr]
- \definefontsynonym [cmb10] [wcmb10] [encoding=t2a]
- \definefontsynonym [cmbsy10] [wcmbsy10] [encoding=t2a]
- \definefontsynonym [cmbx10] [wcmbx10] [encoding=t2a]
- \definefontsynonym [cmbx12] [wcmbx12] [encoding=t2a]
- \definefontsynonym [cmbx5] [wcmbx5] [encoding=t2a]
- \definefontsynonym [cmbx6] [wcmbx6] [encoding=t2a]
- \definefontsynonym [cmbx7] [wcmbx7] [encoding=t2a]
- \definefontsynonym [cmbx8] [wcmbx8] [encoding=t2a]
- \definefontsynonym [cmbx9] [wcmbx9] [encoding=t2a]
- \definefontsynonym [cmbxsl10] [wcmbxsl10] [encoding=t2a]
- \definefontsynonym [cmbxti10] [wcmbxti10] [encoding=t2a]
- \definefontsynonym [cmcsc10] [wcmcsc10] [encoding=t2a]
- %definefontsynonym [cmdunh10] [wcmdunh10] [encoding=t2a]
- \definefontsynonym [cminch] [wcminch] [encoding=t2a]
- \definefontsynonym [cmr10] [wcmr10] [encoding=t2a]
- \definefontsynonym [cmr12] [wcmr12] [encoding=t2a]
- \definefontsynonym [cmr17] [wcmr17] [encoding=t2a]
- \definefontsynonym [cmr5] [wcmr5] [encoding=t2a]
- \definefontsynonym [cmr6] [wcmr6] [encoding=t2a]
- \definefontsynonym [cmr7] [wcmr7] [encoding=t2a]
- \definefontsynonym [cmr8] [wcmr8] [encoding=t2a]
- \definefontsynonym [cmr9] [wcmr9] [encoding=t2a]
- \definefontsynonym [cmsl10] [wcmsl10] [encoding=t2a]
- \definefontsynonym [cmsl12] [wcmsl12] [encoding=t2a]
- \definefontsynonym [cmsl8] [wcmsl8] [encoding=t2a]
- \definefontsynonym [cmsl9] [wcmsl9] [encoding=t2a]
- \definefontsynonym [cmti10] [wcmti10] [encoding=t2a]
- \definefontsynonym [cmti12] [wcmti12] [encoding=t2a]
- \definefontsynonym [cmti7] [wcmti7] [encoding=t2a]
- \definefontsynonym [cmti8] [wcmti8] [encoding=t2a]
- \definefontsynonym [cmti9] [wcmti9] [encoding=t2a]
- \definefontsynonym [cmu10] [wcmu10] [encoding=t2a]
-\stoptypescript
-
-\starttypescript [sans] [computer-modern] [cyr]
- \definefontsynonym [cmss10] [wcmss10] [encoding=t2a]
- \definefontsynonym [cmss12] [wcmss12] [encoding=t2a]
- \definefontsynonym [cmss17] [wcmss17] [encoding=t2a]
- \definefontsynonym [cmss8] [wcmss8] [encoding=t2a]
- \definefontsynonym [cmss9] [wcmss9] [encoding=t2a]
- %definefontsynonym [cmssbi10] [wcmssbi10] [encoding=t2a]
- \definefontsynonym [cmssbx10] [wcmssbx10] [encoding=t2a]
- \definefontsynonym [cmssdc10] [wcmssdc10] [encoding=t2a]
- \definefontsynonym [cmssi10] [wcmssi10] [encoding=t2a]
- \definefontsynonym [cmssi12] [wcmssi12] [encoding=t2a]
- \definefontsynonym [cmssi17] [wcmssi17] [encoding=t2a]
- \definefontsynonym [cmssi8] [wcmssi8] [encoding=t2a]
- \definefontsynonym [cmssi9] [wcmssi9] [encoding=t2a]
- \definefontsynonym [cmssq8] [wcmssq8] [encoding=t2a]
- \definefontsynonym [cmssqi8] [wcmssqi8] [encoding=t2a]
-\stoptypescript
-
-\starttypescript [mono] [computer-modern] [cyr]
- \definefontsynonym [cmitt10] [wcmitt10] [encoding=t2a]
- \definefontsynonym [cmsltt10] [wcmsltt10] [encoding=t2a]
- \definefontsynonym [cmtt10] [wcmtt10] [encoding=t2a]
- \definefontsynonym [cmtt12] [wcmtt12] [encoding=t2a]
- \definefontsynonym [cmtt8] [wcmtt8] [encoding=t2a]
- \definefontsynonym [cmtt9] [wcmtt9] [encoding=t2a]
- %definefontsynonym [cmvtt10] [wcmvtt10] [encoding=t2a]
-\stoptypescript
-
-\definetypescriptprefix [c:t2a] [la]
-\definetypescriptprefix [c:t2b] [lb]
-\definetypescriptprefix [c:t2c] [lc]
-\definetypescriptprefix [c:x2] [rx]
-
-\starttypescript [all] [computer-modern] [t2a,t2b,t2c,x2]
- \loadmapfile[subset-cmsuper-\typescriptthree.map]
- \loadmapfile[subset-cmsuper-\typescriptthree.map]
- \loadmapfile[cm-super-\typescriptthree.map]
-\stoptypescript
-
-\starttypescript [serif] [computer-modern] [t2a,t2b,t2c,x2]
- \definefontsynonym [cmb10] [\typescriptprefix{c:\typescriptthree}rb1000] [encoding=\typescriptthree]
- \definefontsynonym [cmbx10] [\typescriptprefix{c:\typescriptthree}bx1000] [encoding=\typescriptthree]
- \definefontsynonym [cmbx12] [\typescriptprefix{c:\typescriptthree}bx1200] [encoding=\typescriptthree]
- \definefontsynonym [cmbx5] [\typescriptprefix{c:\typescriptthree}bx0500] [encoding=\typescriptthree]
- \definefontsynonym [cmbx6] [\typescriptprefix{c:\typescriptthree}bx0600] [encoding=\typescriptthree]
- \definefontsynonym [cmbx7] [\typescriptprefix{c:\typescriptthree}bx0700] [encoding=\typescriptthree]
- \definefontsynonym [cmbx8] [\typescriptprefix{c:\typescriptthree}bx0800] [encoding=\typescriptthree]
- \definefontsynonym [cmbx9] [\typescriptprefix{c:\typescriptthree}bx0900] [encoding=\typescriptthree]
- \definefontsynonym [cmbxsl10] [\typescriptprefix{c:\typescriptthree}bl1000] [encoding=\typescriptthree]
- \definefontsynonym [cmbxti10] [\typescriptprefix{c:\typescriptthree}bi1000] [encoding=\typescriptthree]
- \definefontsynonym [cmcsc10] [\typescriptprefix{c:\typescriptthree}cc1000] [encoding=\typescriptthree]
- \definefontsynonym [cmdunh10] [\typescriptprefix{c:\typescriptthree}dh1000] [encoding=\typescriptthree]
- \definefontsynonym [cmff10] [\typescriptprefix{c:\typescriptthree}ff1000] [encoding=\typescriptthree]
- \definefontsynonym [cmfi10] [\typescriptprefix{c:\typescriptthree}fi1000] [encoding=\typescriptthree]
- \definefontsynonym [cmfib8] [\typescriptprefix{c:\typescriptthree}fb0800] [encoding=\typescriptthree]
- %\definefontsynonym [cminch] [\typescriptprefix{c:\typescriptthree}inch00] [encoding=\typescriptthree]
- \definefontsynonym [cmr10] [\typescriptprefix{c:\typescriptthree}rm1000] [encoding=\typescriptthree]
- \definefontsynonym [cmr12] [\typescriptprefix{c:\typescriptthree}rm1200] [encoding=\typescriptthree]
- \definefontsynonym [cmr17] [\typescriptprefix{c:\typescriptthree}rm1700] [encoding=\typescriptthree]
- \definefontsynonym [cmr5] [\typescriptprefix{c:\typescriptthree}rm0500] [encoding=\typescriptthree]
- \definefontsynonym [cmr6] [\typescriptprefix{c:\typescriptthree}rm0600] [encoding=\typescriptthree]
- \definefontsynonym [cmr7] [\typescriptprefix{c:\typescriptthree}rm0700] [encoding=\typescriptthree]
- \definefontsynonym [cmr8] [\typescriptprefix{c:\typescriptthree}rm0800] [encoding=\typescriptthree]
- \definefontsynonym [cmr9] [\typescriptprefix{c:\typescriptthree}rm0900] [encoding=\typescriptthree]
- \definefontsynonym [cmsl10] [\typescriptprefix{c:\typescriptthree}sl1000] [encoding=\typescriptthree]
- \definefontsynonym [cmsl12] [\typescriptprefix{c:\typescriptthree}sl1200] [encoding=\typescriptthree]
- \definefontsynonym [cmsl8] [\typescriptprefix{c:\typescriptthree}sl0800] [encoding=\typescriptthree]
- \definefontsynonym [cmsl9] [\typescriptprefix{c:\typescriptthree}sl0900] [encoding=\typescriptthree]
- \definefontsynonym [cmtcsc10] [\typescriptprefix{c:\typescriptthree}tc1000] [encoding=\typescriptthree]
- \definefontsynonym [cmti10] [\typescriptprefix{c:\typescriptthree}ti1000] [encoding=\typescriptthree]
- \definefontsynonym [cmti12] [\typescriptprefix{c:\typescriptthree}ti1200] [encoding=\typescriptthree]
- \definefontsynonym [cmti7] [\typescriptprefix{c:\typescriptthree}ti0700] [encoding=\typescriptthree]
- \definefontsynonym [cmti8] [\typescriptprefix{c:\typescriptthree}ti0800] [encoding=\typescriptthree]
- \definefontsynonym [cmti9] [\typescriptprefix{c:\typescriptthree}ti0900] [encoding=\typescriptthree]
- \definefontsynonym [cmu10] [\typescriptprefix{c:\typescriptthree}ui1000] [encoding=\typescriptthree]
-\stoptypescript
-
-\starttypescript [sans] [computer-modern] [t2a,t2b,t2c,x2]
- \definefontsynonym [cmss10] [\typescriptprefix{c:\typescriptthree}ss1000] [encoding=\typescriptthree]
- \definefontsynonym [cmss12] [\typescriptprefix{c:\typescriptthree}ss1200] [encoding=\typescriptthree]
- \definefontsynonym [cmss17] [\typescriptprefix{c:\typescriptthree}ss1700] [encoding=\typescriptthree]
- \definefontsynonym [cmss8] [\typescriptprefix{c:\typescriptthree}ss0800] [encoding=\typescriptthree]
- \definefontsynonym [cmss9] [\typescriptprefix{c:\typescriptthree}ss0900] [encoding=\typescriptthree]
- \definefontsynonym [cmssbx10] [\typescriptprefix{c:\typescriptthree}sx1000] [encoding=\typescriptthree]
- %\definefontsynonym [cmssdc10] [\typescriptprefix{c:\typescriptthree}ssdc1000] [encoding=\typescriptthree]
- \definefontsynonym [cmssi10] [\typescriptprefix{c:\typescriptthree}si1000] [encoding=\typescriptthree]
- \definefontsynonym [cmssi12] [\typescriptprefix{c:\typescriptthree}si1200] [encoding=\typescriptthree]
- \definefontsynonym [cmssi17] [\typescriptprefix{c:\typescriptthree}si1700] [encoding=\typescriptthree]
- \definefontsynonym [cmssi8] [\typescriptprefix{c:\typescriptthree}si0800] [encoding=\typescriptthree]
- \definefontsynonym [cmssi9] [\typescriptprefix{c:\typescriptthree}si0900] [encoding=\typescriptthree]
- \definefontsynonym [cmssq8] [\typescriptprefix{c:\typescriptthree}ss0800] [encoding=\typescriptthree]
- \definefontsynonym [cmssqi8] [\typescriptprefix{c:\typescriptthree}si0800] [encoding=\typescriptthree]
-\stoptypescript
-
-\starttypescript [mono] [computer-modern] [t2a,t2b,t2c,x2]
- \definefontsynonym [cmitt10] [\typescriptprefix{c:\typescriptthree}it1000] [encoding=\typescriptthree]
- \definefontsynonym [cmsltt10] [\typescriptprefix{c:\typescriptthree}st1000] [encoding=\typescriptthree]
- \definefontsynonym [cmtt10] [\typescriptprefix{c:\typescriptthree}tt1000] [encoding=\typescriptthree]
- \definefontsynonym [cmtt12] [\typescriptprefix{c:\typescriptthree}tt1200] [encoding=\typescriptthree]
- \definefontsynonym [cmtt8] [\typescriptprefix{c:\typescriptthree}tt0800] [encoding=\typescriptthree]
- \definefontsynonym [cmtt9] [\typescriptprefix{c:\typescriptthree}tt0900] [encoding=\typescriptthree]
- \definefontsynonym [cmvtt10] [\typescriptprefix{c:\typescriptthree}vt1000] [encoding=\typescriptthree]
-\stoptypescript
-
-\starttypescript [serif] [computer-modern] [lcy]
- \definefontsynonym [cmb10] [lhb10] [encoding=lcy]
- \definefontsynonym [cmbx10] [lhbx10] [encoding=lcy]
- \definefontsynonym [cmbx12] [lhbx12] [encoding=lcy]
- \definefontsynonym [cmbx5] [lhbx5] [encoding=lcy]
- \definefontsynonym [cmbx6] [lhbx6] [encoding=lcy]
- \definefontsynonym [cmbx7] [lhbx7] [encoding=lcy]
- \definefontsynonym [cmbx8] [lhbx8] [encoding=lcy]
- \definefontsynonym [cmbx9] [lhbx9] [encoding=lcy]
- \definefontsynonym [cmbxsl10] [lhbxsl10] [encoding=lcy]
- \definefontsynonym [cmbxti10] [lhbxti10] [encoding=lcy]
- \definefontsynonym [cmcsc10] [lhcsc10] [encoding=lcy]
- \definefontsynonym [cmdunh10] [lhdunh10] [encoding=lcy]
- \definefontsynonym [cmff10] [lhff10] [encoding=lcy]
- \definefontsynonym [cmfi10] [lhfi10] [encoding=lcy]
- \definefontsynonym [cmfib8] [lhfib8] [encoding=lcy]
- \definefontsynonym [cminch] [lhinch] [encoding=lcy]
- \definefontsynonym [cmr10] [lhr10] [encoding=lcy]
- \definefontsynonym [cmr12] [lhr12] [encoding=lcy]
- \definefontsynonym [cmr17] [lhr17] [encoding=lcy]
- \definefontsynonym [cmr5] [lhr5] [encoding=lcy]
- \definefontsynonym [cmr6] [lhr6] [encoding=lcy]
- \definefontsynonym [cmr7] [lhr7] [encoding=lcy]
- \definefontsynonym [cmr8] [lhr8] [encoding=lcy]
- \definefontsynonym [cmr9] [lhr9] [encoding=lcy]
- \definefontsynonym [cmsl10] [lhsl10] [encoding=lcy]
- \definefontsynonym [cmsl12] [lhsl12] [encoding=lcy]
- \definefontsynonym [cmsl8] [lhsl8] [encoding=lcy]
- \definefontsynonym [cmsl9] [lhsl9] [encoding=lcy]
- \definefontsynonym [cmtcsc10] [lhtcsc10] [encoding=lcy]
- \definefontsynonym [cmtex10] [lhtex10] [encoding=lcy]
- \definefontsynonym [cmtex8] [lhtex8] [encoding=lcy]
- \definefontsynonym [cmtex9] [lhtex9] [encoding=lcy]
- \definefontsynonym [cmti10] [lhti10] [encoding=lcy]
- \definefontsynonym [cmti12] [lhti12] [encoding=lcy]
- \definefontsynonym [cmti7] [lhti7] [encoding=lcy]
- \definefontsynonym [cmti8] [lhti8] [encoding=lcy]
- \definefontsynonym [cmti9] [lhti9] [encoding=lcy]
- \definefontsynonym [cmu10] [lhu10] [encoding=lcy]
-\stoptypescript
-
-\starttypescript [sans] [computer-modern] [lcy]
- \definefontsynonym [cmss10] [lhss10] [encoding=lcy]
- \definefontsynonym [cmss12] [lhss12] [encoding=lcy]
- \definefontsynonym [cmss17] [lhss17] [encoding=lcy]
- \definefontsynonym [cmss8] [lhss8] [encoding=lcy]
- \definefontsynonym [cmss9] [lhss9] [encoding=lcy]
- \definefontsynonym [cmssbi10] [lhssbi10] [encoding=lcy]
- \definefontsynonym [cmssbx10] [lhssbx10] [encoding=lcy]
- \definefontsynonym [cmssdc10] [lhssdc10] [encoding=lcy]
- \definefontsynonym [cmssi10] [lhssi10] [encoding=lcy]
- \definefontsynonym [cmssi12] [lhssi12] [encoding=lcy]
- \definefontsynonym [cmssi17] [lhssi17] [encoding=lcy]
- \definefontsynonym [cmssi8] [lhssi8] [encoding=lcy]
- \definefontsynonym [cmssi9] [lhssi9] [encoding=lcy]
- \definefontsynonym [cmssq8] [lhssq8] [encoding=lcy]
- \definefontsynonym [cmssqi8] [lhssqi8] [encoding=lcy]
-\stoptypescript
-
-\starttypescript [mono] [computer-modern] [lcy]
- \definefontsynonym [cmitt10] [lhitt10] [encoding=lcy]
- \definefontsynonym [cmsltt10] [lhsltt10] [encoding=lcy]
- \definefontsynonym [cmtt10] [lhtt10] [encoding=lcy]
- \definefontsynonym [cmtt12] [lhtt12] [encoding=lcy]
- \definefontsynonym [cmtt8] [lhtt8] [encoding=lcy]
- \definefontsynonym [cmtt9] [lhtt9] [encoding=lcy]
- \definefontsynonym [cmvtt10] [lhvtt10] [encoding=lcy]
-\stoptypescript
-
-%
-
-\starttypescript [math] [modern,computer-modern,latin-modern] % [default]
- % watch the space, it prevents remapping
- \definefontsynonym [ComputerModernMath-Roman] [rm-lmr10]% [lmr10 ]
- \definefontsynonym [ComputerModernMath-Extension] [lmex10]
- \definefontsynonym [ComputerModernMath-Italic] [lmmi10]
- \definefontsynonym [ComputerModernMath-Symbol] [lmsy10]
-\stoptypescript
-
-\starttypescript [boldmath,bfmath] [modern,computer-modern,latin-modern] % [default]
- % watch the space, it prevents remapping
- \definefontsynonym [ComputerModernMath-Roman-Bold] [rm-lmb10] % [lmb10 ]
- \definefontsynonym [ComputerModernMath-Extension] [lmex10]
- \definefontsynonym [ComputerModernMath-Italic-Bold] [lmmib10]
- \definefontsynonym [ComputerModernMath-Symbol-Bold] [lmbsy10]
-\stoptypescript
-
-% Till we have cyrilic in lm:
-
-% \usetypescript[modern-base][t2a]
-% \setupbodyfont[modern,10pt]
-
-\starttypescript [serif] [computer-modern] [t2a,t2b,t2c,x2]
- \definefontsynonym [ComputerModern] [\typescriptprefix{c:\typescriptthree}rm1000] [encoding=\typescriptthree]
- \definefontsynonym [ComputerModern-Italic] [\typescriptprefix{c:\typescriptthree}ti1000] [encoding=\typescriptthree]
- \definefontsynonym [ComputerModern-Slanted] [\typescriptprefix{c:\typescriptthree}sl1000] [encoding=\typescriptthree]
- \definefontsynonym [ComputerModern-Bold] [\typescriptprefix{c:\typescriptthree}bx1000] [encoding=\typescriptthree]
- \definefontsynonym [ComputerModern-BoldItalic] [\typescriptprefix{c:\typescriptthree}bi1000] [encoding=\typescriptthree]
- \definefontsynonym [ComputerModern-BoldSlanted] [\typescriptprefix{c:\typescriptthree}bl1000] [encoding=\typescriptthree]
- \definefontsynonym [ComputerModern-Caps] [\typescriptprefix{c:\typescriptthree}cc1000] [encoding=\typescriptthree]
- \definefontsynonym [ComputerModern-CapsSlanted] [\typescriptprefix{c:\typescriptthree}sc1000] [encoding=\typescriptthree]
-\stoptypescript
-
-\starttypescript [sans] [computer-modern] [t2a,t2b,t2c,x2]
- \definefontsynonym [ComputerModernSans] [\typescriptprefix{c:\typescriptthree}ss1000] [encoding=\typescriptthree]
- %definefontsynonym [ComputerModernSans-Italic] [\typescriptprefix{c:\typescriptthree}1000] [encoding=\typescriptthree]
- \definefontsynonym [ComputerModernSans-Slanted] [\typescriptprefix{c:\typescriptthree}si1000] [encoding=\typescriptthree]
- \definefontsynonym [ComputerModernSans-Bold] [\typescriptprefix{c:\typescriptthree}sx1000] [encoding=\typescriptthree]
- %definefontsynonym [ComputerModernSans-BoldItalic] [\typescriptprefix{c:\typescriptthree}1000] [encoding=\typescriptthree]
- \definefontsynonym [ComputerModernSans-BoldSlanted] [\typescriptprefix{c:\typescriptthree}so1000] [encoding=\typescriptthree]
- %definefontsynonym [ComputerModernSans-Caps] [\typescriptprefix{c:\typescriptthree}1000] [encoding=\typescriptthree]
- %definefontsynonym [ComputerModernSans-CapsSlanted] [\typescriptprefix{c:\typescriptthree}1000] [encoding=\typescriptthree]
-\stoptypescript
-
-\starttypescript [mono] [computer-modern] [t2a,t2b,t2c,x2]
- \definefontsynonym [ComputerModernMono] [\typescriptprefix{c:\typescriptthree}tt1000] [encoding=\typescriptthree]
- \definefontsynonym [ComputerModernMono-Italic] [\typescriptprefix{c:\typescriptthree}it1000] [encoding=\typescriptthree]
- \definefontsynonym [ComputerModernMono-Slanted] [\typescriptprefix{c:\typescriptthree}st1000] [encoding=\typescriptthree]
- %definefontsynonym [ComputerModernMono-Bold] [\typescriptprefix{c:\typescriptthree}1000] [encoding=\typescriptthree]
- %definefontsynonym [ComputerModernMono-BoldItalic] [\typescriptprefix{c:\typescriptthree}1000] [encoding=\typescriptthree]
- %definefontsynonym [ComputerModernMono-BoldSlanted] [\typescriptprefix{c:\typescriptthree}1000] [encoding=\typescriptthree]
- \definefontsynonym [ComputerModernMono-Caps] [\typescriptprefix{c:\typescriptthree}tc1000] [encoding=\typescriptthree]
- %definefontsynonym [ComputerModernMono-CapsSlanted] [\typescriptprefix{c:\typescriptthree}1000] [encoding=\typescriptthree]
-\stoptypescript
-
-% Computer Concrete (AMS)
-
-\starttypescript [serif] [concrete] [default]
- \definefontsynonym [ComputerConcrete] [ccr10]
- \definefontsynonym [ComputerConcrete-Italic] [ccti10]
- \definefontsynonym [ComputerConcrete-Slanted] [ccsl10]
- \definefontsynonym [ComputerConcrete-Bold] [ComputerConcrete]
- \definefontsynonym [ComputerConcrete-BoldItalic] [ComputerConcrete-Italic]
- \definefontsynonym [ComputerConcrete-BoldSlanted] [ComputerConcrete-Slanted]
- \definefontsynonym [ComputerConcrete-Caps] [cccsc10]
-\stoptypescript
-
-% Euler (AMS)
-
-\starttypescript [math] [euler] [default]
- \definefontsynonym [Euler-Roman] [zeurm10]
- \definefontsynonym [Euler-Extension] [zeuex10]
- \definefontsynonym [Euler-Symbol] [zeusm10]
- \definefontsynonym [Euler-Fraktur] [eufm10]
-
- \loadmapfile[original-ams-euler.map]
-\stoptypescript
-
-\starttypescript [boldmath,bfmath] [euler] [default]
- \definefontsynonym [Euler-Roman-Bold] [zeurb10]
- \definefontsynonym [Euler-Extension] [zeuex10]
- \definefontsynonym [Euler-Symbol-Bold] [zeusb10]
- \definefontsynonym [Euler-Fraktur-Bold] [eufb10]
-
- \loadmapfile[original-ams-euler.map]
-\stoptypescript
-
-% AMS (AMS)
-
-\starttypescript [math] [modern,computer-modern,latin-modern,ams] [default]
- \definefontsynonym [AMS-SymbolA] [msam10]
- \definefontsynonym [AMS-SymbolB] [msbm10]
-\stoptypescript
-
-% Fourier (Utopia)
-
-\starttypescript [math] [fourier] [default,ec]
- \definefontsynonym [Fourier-Math-Letters] [futr8t] [encoding=ec]
- %definefontsynonym [Fourier-Math-Letters] [futmi]
- \definefontsynonym [Fourier-Math-Letters-Italic] [futmii]
- \definefontsynonym [Fourier-Math-Symbols] [futsy]
- \definefontsynonym [Fourier-Math-Extension] [fourier-mex]
-
- \loadmapfile[fourier.map]
-\stoptypescript
-
-\starttypescript [serif] [fourier] [ec]
- \definefontsynonym [Fourier-Regular] [futr8t] [encoding=ec]
- \definefontsynonym [Fourier-Slanted] [futro8t] [encoding=ec]
- \definefontsynonym [Fourier-Italic] [futri8t] [encoding=ec]
- \definefontsynonym [Fourier-RegularCaps] [futrc8t] [encoding=ec]
- \definefontsynonym [Fourier-Bold] [futb8t] [encoding=ec]
- \definefontsynonym [Fourier-BoldSlanted] [futbo8t] [encoding=ec]
- \definefontsynonym [Fourier-BoldItalic] [futbi8t] [encoding=ec]
- \definefontsynonym [Fourier-BoldCaps] [futbc8t] [encoding=ec]
-
- \definefontsynonym [Fourier-Regular-Expert] [futr9e] [encoding=ec]
- \definefontsynonym [Fourier-Slanted-Expert] [futro9e] [encoding=ec]
- \definefontsynonym [Fourier-Italic-Expert] [futri9e] [encoding=ec]
- \definefontsynonym [Fourier-RegularCaps-Expert] [futrc9e] [encoding=ec]
- \definefontsynonym [Fourier-Semi-Expert] [futs9e] [encoding=ec]
- \definefontsynonym [Fourier-SemiSlanted-Expert] [futso9e] [encoding=ec]
- \definefontsynonym [Fourier-SemiItalic-Expert] [futsi9e] [encoding=ec]
- \definefontsynonym [Fourier-SemiCaps-Expert] [futsc9e] [encoding=ec]
- \definefontsynonym [Fourier-Bold-Expert] [futb9e] [encoding=ec]
- \definefontsynonym [Fourier-BoldSlanted-Expert] [futbo9e] [encoding=ec]
- \definefontsynonym [Fourier-BoldItalic-Expert] [futbi9e] [encoding=ec]
- \definefontsynonym [Fourier-Black-Expert] [futc9e] [encoding=ec]
-
- \definefontsynonym [Fourier-Regular-OldStyle] [futr9d] [encoding=ec]
- \definefontsynonym [Fourier-Slanted-OldStyle] [futro9d] [encoding=ec]
- \definefontsynonym [Fourier-Italic-OldStyle] [futri9d] [encoding=ec]
- \definefontsynonym [Fourier-RegularCaps-OldStyle] [futrc9d] [encoding=ec]
- \definefontsynonym [Fourier-Semi-OldStyle] [futs9d] [encoding=ec]
- \definefontsynonym [Fourier-SemiSlanted-OldStyle] [futso9d] [encoding=ec]
- \definefontsynonym [Fourier-SemiItalic-OldStyle] [futsi9d] [encoding=ec]
- \definefontsynonym [Fourier-SemiCaps-OldStyle] [futsc9d] [encoding=ec]
- \definefontsynonym [Fourier-Bold-OldStyle] [futb9d] [encoding=ec]
- \definefontsynonym [Fourier-BoldSlanted-OldStyle] [futbo9d] [encoding=ec]
- \definefontsynonym [Fourier-BoldItalic-OldStyle] [futbi9d] [encoding=ec]
- \definefontsynonym [Fourier-Black-OldStyle] [futc9d] [encoding=ec]
-
- \loadmapfile[fourier.map]
- \loadmapfile[fourier-utopia-expert.map]
-\stoptypescript
-
-% Courier (URW)
-
-\starttypescript [mono] [courier] [qx]
- \definefontsynonym [qx-ucrr8a] [qcrr] [encoding=qx]
- \definefontsynonym [qx-ucrb8a] [qcrb] [encoding=qx]
- \definefontsynonym [qx-ucrro8a] [qcrri] [encoding=qx]
- \definefontsynonym [qx-ucrbo8a] [qcrbi] [encoding=qx]
-\stoptypescript
-
-\starttypescript [mono] [courier] [texnansi,ec,8r,t5]
- \definefontsynonym [Courier] [\typescriptthree-ucrr8a] [encoding=\typescriptthree]
- \definefontsynonym [Courier-Bold] [\typescriptthree-ucrb8a] [encoding=\typescriptthree]
- \definefontsynonym [Courier-Oblique] [\typescriptthree-ucrro8a] [encoding=\typescriptthree]
- \definefontsynonym [Courier-BoldOblique] [\typescriptthree-ucrbo8a] [encoding=\typescriptthree]
-
- \loadmapfile[\typescriptthree-urw-courier.map]
-\stoptypescript
-
-% Helvetica (URW)
-
-\starttypescript [sans] [helvetica] [qx]
- \definefontsynonym [qx-uhvr8a] [qhvr] [encoding=qx]
- \definefontsynonym [qx-uhvri8a] [qhvri] [encoding=qx]
- \definefontsynonym [qx-uhvro8a] [qhvri] [encoding=qx]
- \definefontsynonym [qx-uhvb8a] [qhvb] [encoding=qx]
- \definefontsynonym [qx-uhvbi8a] [qhvbi] [encoding=qx]
- \definefontsynonym [qx-uhvbo8a] [qhvbi] [encoding=qx]
-\stoptypescript
-
-\starttypescript [sans] [helvetica] [texnansi,ec,8r,t5]
- \definefontsynonym [Helvetica] [\typescriptthree-uhvr8a] [encoding=\typescriptthree]
- \definefontsynonym [Helvetica-Italic] [\typescriptthree-uhvri8a] [encoding=\typescriptthree]
- \definefontsynonym [Helvetica-Oblique] [\typescriptthree-uhvro8a] [encoding=\typescriptthree]
- \definefontsynonym [Helvetica-Bold] [\typescriptthree-uhvb8a] [encoding=\typescriptthree]
- \definefontsynonym [Helvetica-BoldItalic] [\typescriptthree-uhvbi8a] [encoding=\typescriptthree]
- \definefontsynonym [Helvetica-BoldOblique] [\typescriptthree-uhvbo8a] [encoding=\typescriptthree]
-
- \loadmapfile[\typescriptthree-urw-helvetica.map]
-\stoptypescript
-
-% Times Roman (URW)
-
-\starttypescript [serif] [times] [qx]
- \definefontsynonym [qx-utmr8a] [qtmr] [encoding=qx]
- \definefontsynonym [qx-utmri8a] [qtmri] [encoding=qx]
- \definefontsynonym [qx-utmb8a] [qtmb] [encoding=qx]
- \definefontsynonym [qx-utmbi8a] [qtmbi] [encoding=qx]
- \definefontsynonym [qx-utmr8a-slanted-167] [qtmri] [encoding=qx]
- \definefontsynonym [qx-utmb8a-slanted-167] [qtmbi] [encoding=qx]
-\stoptypescript
-
-\starttypescript [serif] [times] [texnansi,ec,8r,t5]
- \definefontsynonym [Times-Roman] [\typescriptthree-utmr8a] [encoding=\typescriptthree]
- \definefontsynonym [Times-Italic] [\typescriptthree-utmri8a] [encoding=\typescriptthree]
- \definefontsynonym [Times-Bold] [\typescriptthree-utmb8a] [encoding=\typescriptthree]
- \definefontsynonym [Times-BoldItalic] [\typescriptthree-utmbi8a] [encoding=\typescriptthree]
- \definefontsynonym [Times-Slanted] [\typescriptthree-utmr8a-slanted-167] [encoding=\typescriptthree]
- \definefontsynonym [Times-BoldSlanted] [\typescriptthree-utmb8a-slanted-167] [encoding=\typescriptthree]
- \definefontsynonym [Times-Caps] [Times-Roman]
- \definefontsynonym [Times] [Times-Roman]
-
- \loadmapfile[\typescriptthree-urw-times.map]
-\stoptypescript
-
-% Math Times (tx)
-
-\starttypescript [math] [times] [all]
- \definefontsynonym [Times-Roman-Upright] [txr]
- \definefontsynonym [Times-Roman-Italic] [txi]
- \definefontsynonym [Times-Roman-Slanted] [txsl]
- \definefontsynonym [Times-Roman-Caps] [txsc]
- \definefontsynonym [Times-Companion-Upright] [tcxr]
- \definefontsynonym [Times-Companion-Italic] [tcxi]
- \definefontsynonym [Times-Companion-Slanted] [tcxsl]
- \definefontsynonym [Times-Math-Italic] [txmi]
- \definefontsynonym [Times-Math-Symbols] [txsy]
- \definefontsynonym [Times-Math-Extension] [txex]
- \definefontsynonym [Times-Math-SymbolsA] [txsya]
- \definefontsynonym [Times-Math-SymbolsB] [txsyb]
- \definefontsynonym [Times-Math-SymbolsC] [txsyc]
- \definefontsynonym [Times-Math-Italic-A] [txmia]
- \definefontsynonym [Times-Math-Extension-A] [txexa]
-
- \loadmapfile[original-youngryu-tx.map]
-\stoptypescript
-
-% Antykwa Torunska (GUST)
-
-% \starttypescript [serif] [antykwa-torunska] [texnansi,ec,8r]
-% \definefontsynonym [AntykwaTorunska-Regular] [\typescriptthree-anttr] [encoding=\typescriptthree]
-% \definefontsynonym [AntykwaTorunska-Bold] [\typescriptthree-anttb] [encoding=\typescriptthree]
-% \definefontsynonym [AntykwaTorunska-Italic] [\typescriptthree-anttri] [encoding=\typescriptthree]
-% \stoptypescript
-
-\starttypescript [serif] [antykwa-torunska,antykwa-torunska-light,antykwa-torunska-cond,antykwa-torunska-lightcond] [texnansi,qx,t5,ec,t2a,t2b,t2c,greek]
- \definefontsynonym [AntykwaTorunska-Regular] [\typescriptthree-anttr] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-Italic] [\typescriptthree-anttri] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-Bold] [\typescriptthree-anttb] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-BoldItalic] [\typescriptthree-anttbi] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-Light] [\typescriptthree-anttl] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-LightItalic] [\typescriptthree-anttli] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-Medium] [\typescriptthree-anttm] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-MedItalic] [\typescriptthree-anttmi] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondRegular] [\typescriptthree-anttcr] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondItalic] [\typescriptthree-anttcri] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondBold] [\typescriptthree-anttcb] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondBoldItalic] [\typescriptthree-anttcbi] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondLight] [\typescriptthree-anttcl] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondLightItalic][\typescriptthree-anttcli] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondMedium] [\typescriptthree-anttcm] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondMedItalic] [\typescriptthree-anttcmi] [encoding=\typescriptthree]
-
- \loadmapfile[antt-\typescriptthree.map]
-\stoptypescript
-
-\starttypescript [serif] [antykwa-torunska,antykwa-torunska-light,antykwa-torunska-cond,antykwa-torunska-lightcond] [texnansi,qx,t5,ec]
- \definefontsynonym [AntykwaTorunska-Cap] [\typescriptthree-anttrcap] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-ItalicCap] [\typescriptthree-anttricap] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-BoldCap] [\typescriptthree-anttbcap] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-BoldItalicCap] [\typescriptthree-anttbicap] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-LightCap] [\typescriptthree-anttlcap] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-LightItalicCap] [\typescriptthree-anttlicap] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-MediumCap] [\typescriptthree-anttmcap] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-MedItalicCap] [\typescriptthree-anttmicap] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondCap] [\typescriptthree-anttcrcap] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondItalicCap] [\typescriptthree-anttcricap] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondBoldCap] [\typescriptthree-anttcbcap] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondBoldItalicCap] [\typescriptthree-anttcbicap] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondLightCap] [\typescriptthree-anttclcap] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondLightItalicCap][\typescriptthree-anttclicap] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondMediumCap] [\typescriptthree-anttcmcap] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondMedItalicCap] [\typescriptthree-anttcmicap] [encoding=\typescriptthree]
-
- \loadmapfile[antt-\typescriptthree.map]
-\stoptypescript
-
-% duplicates ? ?
-% atl: no: fallbacks for the named variants
-
-\starttypescript [serif] [antykwa-torunska,antykwa-torunska-light,antykwa-torunska-cond,antykwa-torunska-lightcond] [t2a,t2b,t2c,greek]
- \definefontsynonym [AntykwaTorunska-BoldCap] [\typescriptthree-anttb] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-BoldItalicCap] [\typescriptthree-anttbi] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-LightCap] [\typescriptthree-anttl] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-LightItalicCap] [\typescriptthree-anttli] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-MediumCap] [\typescriptthree-anttm] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-MedItalicCap] [\typescriptthree-anttmi] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-Cap] [\typescriptthree-anttr] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-ItalicCap] [\typescriptthree-anttri] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondBoldCap] [\typescriptthree-anttcb] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondBoldItalicCap] [\typescriptthree-anttcbi] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondLightCap] [\typescriptthree-anttcl] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondLightItalicCap][\typescriptthree-anttcli] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondMediumCap] [\typescriptthree-anttcm] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondMedItalicCap] [\typescriptthree-anttcmi] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondCap] [\typescriptthree-anttcr] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondItalicCap] [\typescriptthree-anttcri] [encoding=\typescriptthree]
-
- \loadmapfile[antt-\typescriptthree.map]
-\stoptypescript
-
-\starttypescript [serif] [antykwa-torunska,antykwa-torunska-light,antykwa-torunska-cond,antykwa-torunska-lightcond] [t2a,t2b,t2c]
- \definefontsynonym [AntykwaTorunska-BoldCap] [\typescriptthree-anttb] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-BoldItalicCap] [\typescriptthree-anttbi] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-LightCap] [\typescriptthree-anttl] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-LightItalicCap] [\typescriptthree-anttli] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-MediumCap] [\typescriptthree-anttm] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-MedItalicCap] [\typescriptthree-anttmi] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-Cap] [\typescriptthree-anttr] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-ItalicCap] [\typescriptthree-anttri] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondBoldCap] [\typescriptthree-anttcb] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondBoldItalicCap] [\typescriptthree-anttcbi] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondLightCap] [\typescriptthree-anttcl] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondLightItalicCap][\typescriptthree-anttcli] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondMediumCap] [\typescriptthree-anttcm] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondMedItalicCap] [\typescriptthree-anttcmi] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondCap] [\typescriptthree-anttcr] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondItalicCap] [\typescriptthree-anttcri] [encoding=\typescriptthree]
-
- \loadmapfile[antt-\typescriptthree.map]
-\stoptypescript
-
-% mabye no -Regular etc
-% dunny reverse of condlight lightcond
-
-\starttypescript [math] [antykwa-torunska] [default]
- \definefontsynonym [AntykwaTorunska-Math-Letters-Regular] [rm-anttr]
- \definefontsynonym [AntykwaTorunska-Math-Letters-Italic] [mi-anttri]
- \definefontsynonym [AntykwaTorunska-Math-Symbols-Regular] [sy-anttrz]
- \definefontsynonym [AntykwaTorunska-Math-Extension-Regular] [ex-anttr]
-\stoptypescript
-
-\starttypescript [math] [antykwa-torunska-light] [default]
- \definefontsynonym [AntykwaTorunska-Math-Letters-Light] [rm-anttl]
- \definefontsynonym [AntykwaTorunska-Math-Letters-LightItalic] [mi-anttli]
- \definefontsynonym [AntykwaTorunska-Math-Symbols-Light] [sy-anttlz]
- \definefontsynonym [AntykwaTorunska-Math-Extension-Light] [ex-anttl]
-\stoptypescript
-
-\starttypescript [math] [antykwa-torunska-cond] [default]
- \definefontsynonym [AntykwaTorunska-Math-Letters-CondRegular] [rm-anttcr]
- \definefontsynonym [AntykwaTorunska-Math-Letters-CondItalic] [mi-anttcri]
- \definefontsynonym [AntykwaTorunska-Math-Symbols-CondRegular] [sy-anttcrz]
- \definefontsynonym [AntykwaTorunska-Math-Extension-CondRegular] [ex-anttcr]
-\stoptypescript
-
-\starttypescript [math] [antykwa-torunska-lightcond] [default]
- \definefontsynonym [AntykwaTorunska-Math-Letters-CondLight] [rm-anttcl]
- \definefontsynonym [AntykwaTorunska-Math-Letters-CondLightItalic] [mi-anttcli]
- \definefontsynonym [AntykwaTorunska-Math-Symbols-CondLight] [sy-anttclz]
- \definefontsynonym [AntykwaTorunska-Math-Extension-CondLight] [ex-anttcl]
-\stoptypescript
-
-\starttypescript [math] [antykwa-torunska,antykwa-torunska-light,antykwa-torunska-cond,antykwa-torunska-lightcond] [default]
- \loadmapfile[antt-rm.map]
- \loadmapfile[antt-mi.map]
- \loadmapfile[antt-sy.map]
- \loadmapfile[antt-ex.map]
-\stoptypescript
-
-% Antykwa Poltawskiego (GUST)
-
-\starttypescript [serif] [antykwa-poltawskiego] [texnansi,ec,8r]
- \definefontsynonym [AntykwaPoltawskiego-Regular] [\typescriptthree-antpr] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-Bold] [\typescriptthree-antpb] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-Italic] [\typescriptthree-antpri] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-BoldItalic] [\typescriptthree-antpbi] [encoding=\typescriptthree]
-
- \loadmapfile[\typescriptthree-public-antp.map]
-\stoptypescript
-
-% Iwona (JMN)
-
-% maybe this will change in Iwona-Math-Letters and Iwona-Math-Letters-Italic
-
-\starttypescript [sans] [iwona-light,iwona,iwona-medium,iwona-heavy,iwona-light-cond,iwona-cond,iwona-medium-cond,iwona-heavy-cond] [texnansi,ec,el,qx,t5]
-
- \definefontsynonym[Iwona-Regular] [\typescriptthree-iwonar] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-Italic] [\typescriptthree-iwonari] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-Bold] [\typescriptthree-iwonab] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-BoldItalic] [\typescriptthree-iwonabi] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-Light-Regular] [\typescriptthree-iwonal] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-Light-Italic] [\typescriptthree-iwonali] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-Medium-Regular] [\typescriptthree-iwonam] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-Medium-Italic] [\typescriptthree-iwonami] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-Heavy-Regular] [\typescriptthree-iwonah] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-Heavy-Italic] [\typescriptthree-iwonahi] [encoding=\typescriptthree]
-
- \definefontsynonym[Iwona-CapsRegular] [\typescriptthree-iwonarcap] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CapsItalic] [\typescriptthree-iwonaricap] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CapsBold] [\typescriptthree-iwonabcap] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CapsBoldItalic] [\typescriptthree-iwonabicap] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CapsLight-Regular] [\typescriptthree-iwonalcap] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CapsLight-Italic] [\typescriptthree-iwonalicap] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CapsMedium-Regular] [\typescriptthree-iwonamcap] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CapsMedium-Italic] [\typescriptthree-iwonamicap] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CapsHeavy-Regular] [\typescriptthree-iwonahcap] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CapsHeavy-Italic] [\typescriptthree-iwonahicap] [encoding=\typescriptthree]
-
- \definefontsynonym[Iwona-CondRegular] [\typescriptthree-iwonacr] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CondItalic] [\typescriptthree-iwonacri] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CondBold] [\typescriptthree-iwonacb] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CondBoldItalic] [\typescriptthree-iwonacbi] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CondLight-Regular] [\typescriptthree-iwonacl] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CondLight-Italic] [\typescriptthree-iwonacli] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CondMedium-Regular] [\typescriptthree-iwonacm] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CondMedium-Italic] [\typescriptthree-iwonacmi] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CondHeavy-Regular] [\typescriptthree-iwonach] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CondHeavy-Italic] [\typescriptthree-iwonachi] [encoding=\typescriptthree]
-
- \definefontsynonym[Iwona-CapsCondRegular] [\typescriptthree-iwonacrcap] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CapsCondItalic] [\typescriptthree-iwonacricap] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CapsCondBold] [\typescriptthree-iwonacbcap] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CapsCondBoldItalic] [\typescriptthree-iwonacbicap] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CapsCondLight-Regular] [\typescriptthree-iwonaclcap] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CapsCondLight-Italic] [\typescriptthree-iwonaclicap] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CapsCondMedium-Regular][\typescriptthree-iwonacmcap] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CapsCondMedium-Italic] [\typescriptthree-iwonacmicap] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CapsCondHeavy-Regular] [\typescriptthree-iwonachcap] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CapsCondHeavy-Italic] [\typescriptthree-iwonachicap] [encoding=\typescriptthree]
-
- \loadmapfile[iwona-\typescriptthree.map]
-\stoptypescript
-
-\starttypescript [math] [iwona] [default]
- \definefontsynonym [Iwona-Math-Letters-Regular] [rm-iwonar]
- \definefontsynonym [Iwona-Math-Letters-Italic] [mi-iwonari]
- \definefontsynonym [Iwona-Math-Symbols-Regular] [sy-iwonarz]
- \definefontsynonym [Iwona-Math-Extension-Regular] [ex-iwonar]
-\stoptypescript
-
-\starttypescript [math] [iwona-light] [default]
- \definefontsynonym [Iwona-Math-Letters-Light-Regular] [rm-iwonal]
- \definefontsynonym [Iwona-Math-Letters-Light-Italic] [mi-iwonali]
- \definefontsynonym [Iwona-Math-Symbols-Light] [sy-iwonalz]
- \definefontsynonym [Iwona-Math-Extension-Light] [ex-iwonal]
-\stoptypescript
-
-\starttypescript [math] [iwona-medium] [default]
- \definefontsynonym [Iwona-Math-Letters-Medium-Regular][rm-iwonam]
- \definefontsynonym [Iwona-Math-Letters-Medium-Italic] [mi-iwonami]
- \definefontsynonym [Iwona-Math-Symbols-Medium] [sy-iwonamz]
- \definefontsynonym [Iwona-Math-Extension-Medium] [ex-iwonam]
-\stoptypescript
-
-\starttypescript [math] [iwona-heavy] [default]
- \definefontsynonym [Iwona-Math-Letters-Heavy-Regular] [rm-iwonah]
- \definefontsynonym [Iwona-Math-Letters-Heavy-Italic] [mi-iwonahi]
- \definefontsynonym [Iwona-Math-Symbols-Heavy] [sy-iwonahz]
- \definefontsynonym [Iwona-Math-Extension-Heavy] [ex-iwonah]
-\stoptypescript
-
-\starttypescript [math] [iwona,iwona-light,iwona-medium,iwona-heavy] [default]
- \loadmapfile[iwona-rm.map]
- \loadmapfile[iwona-mi.map]
- \loadmapfile[iwona-sy.map]
- \loadmapfile[iwona-ex.map]
-\stoptypescript
-
-% Kurier (JMN)
-
-\starttypescript [sans] [kurier-light,kurier,kurier-medium] [texnansi,ec,qx,t5]
- \definefontsynonym[Kurier-Regular] [\typescriptthree-kurierr] [encoding=\typescriptthree]
- \definefontsynonym[Kurier-Italic] [\typescriptthree-kurierri] [encoding=\typescriptthree]
- \definefontsynonym[Kurier-Bold] [\typescriptthree-kurierb] [encoding=\typescriptthree]
- \definefontsynonym[Kurier-BoldItalic] [\typescriptthree-kurierbi] [encoding=\typescriptthree]
- \definefontsynonym[Kurier-Light-Regular] [\typescriptthree-kurierl] [encoding=\typescriptthree]
- \definefontsynonym[Kurier-Light-Italic] [\typescriptthree-kurierli] [encoding=\typescriptthree]
- \definefontsynonym[Kurier-Medium-Regular][\typescriptthree-kurierm] [encoding=\typescriptthree]
- \definefontsynonym[Kurier-Medium-Italic] [\typescriptthree-kuriermi] [encoding=\typescriptthree]
- \definefontsynonym[Kurier-Heavy-Regular] [\typescriptthree-kurierh] [encoding=\typescriptthree]
- \definefontsynonym[Kurier-Heavy-Italic] [\typescriptthree-kurierhi] [encoding=\typescriptthree]
-
- \loadmapfile[kurier-\typescriptthree.map]
-\stoptypescript
-
-\starttypescript [math] [kurier] [default]
- \definefontsynonym [Kurier-Math-Letters-Regular] [rm-kurierr]
- \definefontsynonym [Kurier-Math-Letters-Italic] [mi-kurierri]
- \definefontsynonym [Kurier-Math-Symbols-Regular] [sy-kurierrz]
- \definefontsynonym [Kurier-Math-Extension-Regular] [ex-kurierr]
-\stoptypescript
-
-\starttypescript [math] [kurier-light] [default]
- \definefontsynonym [Kurier-Math-Letters-Light-Regular] [rm-kurierl]
- \definefontsynonym [Kurier-Math-Letters-Light-Italic] [mi-kurierli]
- \definefontsynonym [Kurier-Math-Symbols-Light] [sy-kurierlz]
- \definefontsynonym [Kurier-Math-Extension-Light] [ex-kurierl]
-\stoptypescript
-
-\starttypescript [math] [kurier-medium] [default]
- \definefontsynonym [Kurier-Math-Letters-Medium-Regular][rm-kurierm]
- \definefontsynonym [Kurier-Math-Letters-Medium-Italic] [mi-kuriermi]
- \definefontsynonym [Kurier-Math-Symbols-Medium] [sy-kuriermz]
- \definefontsynonym [Kurier-Math-Extension-medium] [ex-kurierm]
-\stoptypescript
-
-\starttypescript [math] [kurier,kurier-light,kurier-medium] [default]
- \loadmapfile[kurier-rm.map]
- \loadmapfile[kurier-mi.map]
- \loadmapfile[kurier-sy.map]
- \loadmapfile[kurier-ex.map]
-\stoptypescript
-
-% Palatino (URW)
-
-\starttypescript [serif] [palatino] [qx]
- \definefontsynonym [qx-uplr8a] [qplr] [encoding=qx]
- \definefontsynonym [qx-uplri8a] [qplri] [encoding=qx]
- \definefontsynonym [qx-uplb8a] [qplb] [encoding=qx]
- \definefontsynonym [qx-uplbi8a] [qplbi] [encoding=qx]
- \definefontsynonym [qx-uplr8a-slanted-167] [qplri] [encoding=qx]
- \definefontsynonym [qx-uplb8a-slanted-167] [qplbi] [encoding=qx]
- \definefontsynonym [qx-uplr8a-capitalized-800] [qplr] [encoding=qx]
-\stoptypescript
-
-\starttypescript [serif] [palatino] [texnansi,ec,8r,t5]
- \definefontsynonym [Palatino] [\typescriptthree-uplr8a] [encoding=\typescriptthree]
- \definefontsynonym [Palatino-Italic] [\typescriptthree-uplri8a] [encoding=\typescriptthree]
- \definefontsynonym [Palatino-Bold] [\typescriptthree-uplb8a] [encoding=\typescriptthree]
- \definefontsynonym [Palatino-BoldItalic] [\typescriptthree-uplbi8a] [encoding=\typescriptthree]
-
- \definefontsynonym [Palatino-Slanted] [\typescriptthree-uplr8a-slanted-167] [encoding=\typescriptthree]
- \definefontsynonym [Palatino-BoldSlanted] [\typescriptthree-uplb8a-slanted-167] [encoding=\typescriptthree]
- \definefontsynonym [Palatino-Caps] [\typescriptthree-uplr8a-capitalized-800] [encoding=\typescriptthree]
-
- \loadmapfile[\typescriptthree-urw-palatino.map]
-\stoptypescript
-
-% bonus definitions
-
-% when these fonts are in tex live ...
-%
-% \definefontsynonym [Palatino-Caps] [TeXPalladioL-SC] [encoding=\typescriptthree]
-
-\starttypescript [serif] [palatino] [ec,texnansi,8r]
-
- \definefontsynonym[TeXPalladioL-BoldItalicOsF][\typescriptthree-fplbij8a][encoding=\typescriptthree]
- \definefontsynonym[TeXPalladioL-BoldOsF] [\typescriptthree-fplbj8a] [encoding=\typescriptthree]
- \definefontsynonym[TeXPalladioL-SC] [\typescriptthree-fplrc8a] [encoding=\typescriptthree]
- \definefontsynonym[TeXPalladioL-ItalicOsF] [\typescriptthree-fplrij8a][encoding=\typescriptthree]
-
- \loadmapfile[\typescriptthree-urw-palatino.map]
-\stoptypescript
-
-% Palatino Math (PX)
-
-\starttypescript [math] [palatino] [all]
- \definefontsynonym [Palatino-Roman-Upright] [pxr]
- \definefontsynonym [Palatino-Roman-Italic] [pxi]
- \definefontsynonym [Palatino-Roman-Slanted] [pxsl]
- \definefontsynonym [Palatino-Roman-Caps] [pxsc]
- \definefontsynonym [Palatino-Companion-Upright] [pcxr]
- \definefontsynonym [Palatino-Companion-Italic] [pcxi]
- \definefontsynonym [Palatino-Companion-Slanted] [pcxsl]
- \definefontsynonym [Palatino-Math-Italic] [pxmi]
- \definefontsynonym [Palatino-Math-Symbols] [pxsy]
- \definefontsynonym [Palatino-Math-Extension] [pxex]
- \definefontsynonym [Palatino-Math-SymbolsA] [pxsya]
- \definefontsynonym [Palatino-Math-SymbolsB] [pxsyb]
- \definefontsynonym [Palatino-Math-SymbolsC] [pxsyc]
- \definefontsynonym [Palatino-Math-Italic-A] [pxmia]
- \definefontsynonym [Palatino-Math-Extension-A] [pxexa]
-
- \loadmapfile[original-youngryu-px.map]
-\stoptypescript
-
-% Bookman (URW)
-
-\starttypescript [serif] [bookman] [qx]
- \definefontsynonym [qx-ubkl8a] [qbkr] [encoding=qx]
- \definefontsynonym [qx-ubkli8a] [qbkri] [encoding=qx]
- \definefontsynonym [qx-ubkd8a] [qbkb] [encoding=qx]
- \definefontsynonym [qx-ubkdi8a] [qbkbi] [encoding=qx]
- \definefontsynonym [qx-ubkl8a-slanted-167] [qbkri] [encoding=qx]
- \definefontsynonym [qx-ubkd8a-slanted-167] [qbkbi] [encoding=qx]
- \definefontsynonym [qx-ubkl8a-capitalized-800] [qbkr] [encoding=qx]
-\stoptypescript
-
-\starttypescript [serif] [bookman] [ec,texnansi,8r,t5]
- \definefontsynonym [Bookman-Light] [\typescriptthree-ubkl8a] [encoding=\typescriptthree]
- \definefontsynonym [Bookman-LightItalic] [\typescriptthree-ubkli8a] [encoding=\typescriptthree]
- \definefontsynonym [Bookman-DemiBold] [\typescriptthree-ubkd8a] [encoding=\typescriptthree]
- \definefontsynonym [Bookman-DemiBoldItalic] [\typescriptthree-ubkdi8a] [encoding=\typescriptthree]
- \definefontsynonym [Bookman-LightSlanted] [\typescriptthree-ubkl8a-slanted-167] [encoding=\typescriptthree]
- \definefontsynonym [Bookman-DemiBoldSlanted] [\typescriptthree-ubkd8a-slanted-167] [encoding=\typescriptthree]
- \definefontsynonym [Bookman-Light-Caps] [\typescriptthree-ubkl8a-capitalized-800] [encoding=\typescriptthree]
-
- \loadmapfile[\typescriptthree-urw-bookman.map]
-\stoptypescript
-
-% Chancery (URW)
-
-\starttypescript [calligraphy] [chancery] [qx]
- \definefontsynonym [qx-uzcmi8a] [qzcmi] [encoding=qx]
-\stoptypescript
-
-\starttypescript [calligraphy] [chancery] [ec,texnansi,8r]
- \definefontsynonym [Chancery] [\typescriptthree-uzcmi8a] [encoding=\typescriptthree]
- \loadmapfile[\typescriptthree-urw-zapfchan.map]
-\stoptypescript
-
-% New Century Schoolbook (URW)
-
-\starttypescript [serif] [schoolbook] [ec,texnansi,8r,t5]
- \definefontsynonym [Schoolbook-Roman] [\typescriptthree-uncr8a] [encoding=\typescriptthree]
- \definefontsynonym [Schoolbook-Italic] [\typescriptthree-uncri8a] [encoding=\typescriptthree]
- \definefontsynonym [Schoolbook-Bold] [\typescriptthree-uncb8a] [encoding=\typescriptthree]
- \definefontsynonym [Schoolbook-BoldItalic] [\typescriptthree-uncbi8a] [encoding=\typescriptthree]
- \definefontsynonym [Schoolbook-RomanSlanted] [\typescriptthree-uncr8a-slanted-167] [encoding=\typescriptthree]
- \definefontsynonym [Schoolbook-BoldSlanted] [\typescriptthree-uncb8a-slanted-167] [encoding=\typescriptthree]
- \definefontsynonym [Schoolbook-Roman-Caps] [\typescriptthree-uncr8a-capitalized-800] [encoding=\typescriptthree]
-
- \loadmapfile[\typescriptthree-urw-ncntrsbk.map]
-\stoptypescript
-
-% Utopia (Adobe)
-
-\starttypescript [serif] [utopia] [ec,texnansi]
- \definefontsynonym [Utopia-Regular] [\typescriptthree-putr8a] [encoding=\typescriptthree]
- \definefontsynonym [Utopia-Italic] [\typescriptthree-putri8a] [encoding=\typescriptthree]
- \definefontsynonym [Utopia-Bold] [\typescriptthree-putb8a] [encoding=\typescriptthree]
- \definefontsynonym [Utopia-BoldItalic] [\typescriptthree-putbi8a] [encoding=\typescriptthree]
- \definefontsynonym [Utopia-Slanted] [\typescriptthree-putr8a-slanted-167] [encoding=\typescriptthree]
- \definefontsynonym [Utopia-BoldSlanted] [\typescriptthree-putb8a-slanted-167] [encoding=\typescriptthree]
- \definefontsynonym [Utopia-Regular-Caps][\typescriptthree-putr8a-capitalized-800] [encoding=\typescriptthree]
-
- \loadmapfile[\typescriptthree-adobe-utopia.map]
-\stoptypescript
-
-% Charter (Bitstream)
-
-\starttypescript [serif] [charter] [ec,texnansi,8r]
- \definefontsynonym [Charter-Roman] [\typescriptthree-bchr8a] [encoding=\typescriptthree]
- \definefontsynonym [Charter-Italic] [\typescriptthree-bchri8a] [encoding=\typescriptthree]
- \definefontsynonym [Charter-Bold] [\typescriptthree-bchb8a] [encoding=\typescriptthree]
- \definefontsynonym [Charter-BoldItalic] [\typescriptthree-bchbi8a] [encoding=\typescriptthree]
- \definefontsynonym [Charter-Slanted] [\typescriptthree-bchr8a-slanted-167] [encoding=\typescriptthree]
- \definefontsynonym [Charter-BoldSlanted][\typescriptthree-bchb8a-slanted-167] [encoding=\typescriptthree]
- \definefontsynonym [Charter-Roman-Caps] [\typescriptthree-bchr8a-capitalized-800] [encoding=\typescriptthree]
-
- \loadmapfile[\typescriptthree-bitstrea-charter.map]
-\stoptypescript
-
-% Whatever else we need:
-
-\starttypescript
- \definefontsynonym [ZapfDingbats] [uzdr]
- \definefontsynonym [RalfSmithFormalScript] [rsfs10]
- \definefontsynonym [MartinVogel] [fmvr8x]
-\stoptypescript
-
-\stoptypescriptcollection
+\loadmarkfile{type-one}
\endinput
diff --git a/Master/texmf-dist/tex/context/base/type-otf.mkii b/Master/texmf-dist/tex/context/base/type-otf.mkii
new file mode 100644
index 00000000000..869555688b6
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/type-otf.mkii
@@ -0,0 +1,535 @@
+%D \module
+%D [ file=type-otf,
+%D version=2007.07.30,
+%D title=\CONTEXT\ Typescript Macros,
+%D subtitle=Opentype Definitions,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D Actually, \LUATEX\ does not need all these definitions since it can
+%D consult its database. However, here we use the names that we used
+%D in good old \TEX, and these may differ a bit. Here we also see
+%D some oldstyle definitions which normally are done with features.
+
+% if a fontname equals the filename, then use
+%
+% \setupfontsynonym [LMRoman10-DemiOblique] [features=default] % file is lowercase, so fails
+% \definefontsynonym [LMRoman10-DemiOblique] [name:LMRoman10-DemiOblique] [features=default]
+% \definefontsynonym [LMRoman10-DemiOblique] [lmroman10-demioblique] [features=default]
+
+\starttypescriptcollection[opentype]
+
+%D The names have changed (again) ... but I will not change the symbolic names
+%D any more. Filename changes will be catched in luatex (fallbacks) but not in
+%D other tex's.
+
+\starttypescript [serif] [modern,latin-modern]
+ \definefontsynonym [LMRoman5-Regular] [file:lmroman5-regular] [features=default]
+ \definefontsynonym [LMRoman6-Regular] [file:lmroman6-regular] [features=default]
+ \definefontsynonym [LMRoman7-Regular] [file:lmroman7-regular] [features=default]
+ \definefontsynonym [LMRoman8-Regular] [file:lmroman8-regular] [features=default]
+ \definefontsynonym [LMRoman9-Regular] [file:lmroman9-regular] [features=default]
+ \definefontsynonym [LMRoman10-Regular] [file:lmroman10-regular] [features=default]
+ \definefontsynonym [LMRoman12-Regular] [file:lmroman12-regular] [features=default]
+ \definefontsynonym [LMRoman17-Regular] [file:lmroman17-regular] [features=default]
+ \definefontsynonym [LMRoman5-Bold] [file:lmroman5-bold] [features=default]
+ \definefontsynonym [LMRoman6-Bold] [file:lmroman6-bold] [features=default]
+ \definefontsynonym [LMRoman7-Bold] [file:lmroman7-bold] [features=default]
+ \definefontsynonym [LMRoman8-Bold] [file:lmroman8-bold] [features=default]
+ \definefontsynonym [LMRoman9-Bold] [file:lmroman9-bold] [features=default]
+ \definefontsynonym [LMRoman10-Bold] [file:lmroman10-bold] [features=default]
+ \definefontsynonym [LMRoman12-Bold] [file:lmroman12-bold] [features=default]
+ \definefontsynonym [LMRoman7-Italic] [file:lmroman7-italic] [features=default]
+ \definefontsynonym [LMRoman8-Italic] [file:lmroman8-italic] [features=default]
+ \definefontsynonym [LMRoman9-Italic] [file:lmroman9-italic] [features=default]
+ \definefontsynonym [LMRoman10-Italic] [file:lmroman10-italic] [features=default]
+ \definefontsynonym [LMRoman12-Italic] [file:lmroman12-italic] [features=default]
+ \definefontsynonym [LMRoman10-BoldItalic] [file:lmroman10-bolditalic] [features=default]
+ \definefontsynonym [LMRoman8-Oblique] [file:lmromanslant8-regular] [features=default]
+ \definefontsynonym [LMRoman9-Oblique] [file:lmromanslant9-regular] [features=default]
+ \definefontsynonym [LMRoman10-Oblique] [file:lmromanslant10-regular][features=default]
+ \definefontsynonym [LMRoman12-Oblique] [file:lmromanslant12-regular][features=default]
+ \definefontsynonym [LMRoman17-Oblique] [file:lmromanslant17-regular][features=default]
+ \definefontsynonym [LMRoman10-BoldOblique] [file:lmromanslant10-bold] [features=default]
+ \definefontsynonym [LMRoman10-Demi] [file:lmromandemi10-regular] [features=default]
+ \definefontsynonym [LMRoman10-DemiOblique] [file:lmromandemi10-oblique] [features=default]
+ \definefontsynonym [LMRoman10-CapsRegular] [file:lmromancaps10-regular] [features=default] % features=smallcaps?
+ \definefontsynonym [LMRoman10-CapsOblique] [file:lmromancaps10-oblique] [features=default]
+
+ \definefontsynonym [LMRoman10-Dunhill] [file:lmromandunh10-regular] [features=default]
+ \definefontsynonym [LMRoman10-DunhillOblique] [file:lmromandunh10-oblique] [features=default]
+ \definefontsynonym [LMRoman10-Unslanted] [file:lmromanunsl10-regular] [features=default]
+\stoptypescript
+
+\starttypescript [sans] [modern,latin-modern]
+ \definefontsynonym [LMSans8-Regular] [file:lmsans8-regular] [features=default]
+ \definefontsynonym [LMSans9-Regular] [file:lmsans9-regular] [features=default]
+ \definefontsynonym [LMSans10-Regular] [file:lmsans10-regular] [features=default]
+ \definefontsynonym [LMSans12-Regular] [file:lmsans12-regular] [features=default]
+ \definefontsynonym [LMSans17-Regular] [file:lmsans17-regular] [features=default]
+ \definefontsynonym [LMSans10-Bold] [file:lmsans10-bold] [features=default]
+ \definefontsynonym [LMSans8-Oblique] [file:lmsans8-oblique] [features=default]
+ \definefontsynonym [LMSans9-Oblique] [file:lmsans9-oblique] [features=default]
+ \definefontsynonym [LMSans10-Oblique] [file:lmsans10-oblique] [features=default]
+ \definefontsynonym [LMSans12-Oblique] [file:lmsans12-oblique] [features=default]
+ \definefontsynonym [LMSans17-Oblique] [file:lmsans17-oblique] [features=default]
+ \definefontsynonym [LMSans10-BoldOblique] [file:lmsans10-boldoblique] [features=default]
+
+ \definefontsynonym [LMSans10-DemiCondensed] [file:lmsansdemicond10-regular] [features=default]
+ \definefontsynonym [LMSans10-DemiCondensedOblique] [file:lmsansdemicond10-oblique] [features=default]
+
+ \definefontsynonym [LMSansQuotation8-Regular] [file:lmsansquot8-regular] [features=default]
+ \definefontsynonym [LMSansQuotation8-Bold] [file:lmsansquot8-bold] [features=default]
+ \definefontsynonym [LMSansQuotation8-Oblique] [file:lmsansquot8-oblique] [features=default]
+ \definefontsynonym [LMSansQuotation8-BoldOblique] [file:lmsansquot8-boldoblique] [features=default]
+\stoptypescript
+
+\starttypescript [mono] [modern,latin-modern,modern-vari,latin-modern-vari,modern-cond,latin-modern-cond]
+ \definefontsynonym [LMTypewriter8-Regular] [file:lmmono8-regular] [features=none]
+ \definefontsynonym [LMTypewriter9-Regular] [file:lmmono9-regular] [features=none]
+ \definefontsynonym [LMTypewriter10-Regular] [file:lmmono10-regular] [features=none]
+ \definefontsynonym [LMTypewriter12-Regular] [file:lmmono12-regular] [features=none]
+ \definefontsynonym [LMTypewriter10-Italic] [file:lmmono10-italic] [features=none]
+ \definefontsynonym [LMTypewriter10-Oblique] [file:lmmonoslant10-regular] [features=none]
+ \definefontsynonym [LMTypewriter10-CapsRegular] [file:lmmonocaps10-regular] [features=none] % features=smallcaps?
+ \definefontsynonym [LMTypewriter10-CapsOblique] [file:lmmonocaps10-oblique] [features=none]
+
+ \definefontsynonym [LMTypewriter10-Light] [file:lmmonolt10-regular] [features=none]
+ \definefontsynonym [LMTypewriter10-LightOblique] [file:lmmonolt10-oblique] [features=none]
+ \definefontsynonym [LMTypewriter10-LightCondensed] [file:lmmonoltcond10-regular] [features=none]
+ \definefontsynonym [LMTypewriter10-LightCondensedOblique] [file:lmmonoltcond10-oblique] [features=none]
+
+ \definefontsynonym [LMTypewriter10-Dark] [file:lmmonolt10-bold] [features=none]
+ \definefontsynonym [LMTypewriter10-DarkOblique] [file:lmmonolt10-boldoblique] [features=none]
+
+ \definefontsynonym [LMTypewriterVarWd10-Regular] [file:lmmonoproplt10-regular] [features=default]
+ \definefontsynonym [LMTypewriterVarWd10-Oblique] [file:lmmonoproplt10-oblique] [features=default]
+ \definefontsynonym [LMTypewriterVarWd10-Light] [file:lmmonoprop10-regular] [features=default]
+ \definefontsynonym [LMTypewriterVarWd10-LightOblique] [file:lmmonoprop10-oblique] [features=default]
+ \definefontsynonym [LMTypewriterVarWd10-Dark] [file:lmmonoproplt10-bold] [features=default]
+ \definefontsynonym [LMTypewriterVarWd10-DarkOblique] [file:lmmonoproplt10-boldoblique] [features=default]
+\stoptypescript
+
+\starttypescript [math] [modern,latin-modern]
+ \definefontsynonym [LMMathRoman5-Regular] [rm-lmr5]
+ \definefontsynonym [LMMathRoman6-Regular] [rm-lmr6]
+ \definefontsynonym [LMMathRoman7-Regular] [rm-lmr7]
+ \definefontsynonym [LMMathRoman8-Regular] [rm-lmr8]
+ \definefontsynonym [LMMathRoman9-Regular] [rm-lmr9]
+ \definefontsynonym [LMMathRoman10-Regular] [rm-lmr10]
+ \definefontsynonym [LMMathRoman12-Regular] [rm-lmr12]
+ \definefontsynonym [LMMathRoman17-Regular] [rm-lmr17]
+ \definefontsynonym [LMMathRoman5-Bold] [rm-lmbx5]
+ \definefontsynonym [LMMathRoman6-Bold] [rm-lmbx6]
+ \definefontsynonym [LMMathRoman7-Bold] [rm-lmbx7]
+ \definefontsynonym [LMMathRoman8-Bold] [rm-lmbx8]
+ \definefontsynonym [LMMathRoman9-Bold] [rm-lmbx9]
+ \definefontsynonym [LMMathRoman10-Bold] [rm-lmbx10]
+ \definefontsynonym [LMMathRoman12-Bold] [rm-lmbx12]
+ \definefontsynonym [LMMathSymbols5-BoldItalic] [lmbsy5]
+ \definefontsynonym [LMMathSymbols7-BoldItalic] [lmbsy7]
+ \definefontsynonym [LMMathSymbols10-BoldItalic][lmbsy10]
+ \definefontsynonym [LMMathSymbols5-Italic] [lmsy5]
+ \definefontsynonym [LMMathSymbols6-Italic] [lmsy6]
+ \definefontsynonym [LMMathSymbols7-Italic] [lmsy7]
+ \definefontsynonym [LMMathSymbols8-Italic] [lmsy8]
+ \definefontsynonym [LMMathSymbols9-Italic] [lmsy9]
+ \definefontsynonym [LMMathSymbols10-Italic] [lmsy10]
+ \definefontsynonym [LMMathExtension10-Regular] [lmex10]
+ \definefontsynonym [LMMathItalic5-Italic] [lmmi5]
+ \definefontsynonym [LMMathItalic6-Italic] [lmmi6]
+ \definefontsynonym [LMMathItalic7-Italic] [lmmi7]
+ \definefontsynonym [LMMathItalic8-Italic] [lmmi8]
+ \definefontsynonym [LMMathItalic9-Italic] [lmmi9]
+ \definefontsynonym [LMMathItalic10-Italic] [lmmi10]
+ \definefontsynonym [LMMathItalic12-Italic] [lmmi12]
+ \definefontsynonym [LMMathItalic5-BoldItalic] [lmmib5]
+ \definefontsynonym [LMMathItalic7-BoldItalic] [lmmib7]
+ \definefontsynonym [LMMathItalic10-BoldItalic] [lmmib10]
+
+ \loadmapfile[lm-math.map]
+ \loadmapfile[lm-rm.map]
+\stoptypescript
+
+\starttypescript [math] [modern,computer-modern,latin-modern]
+ \definefontsynonym [ComputerModernMath-Roman] [rm-lmr10]
+ \definefontsynonym [ComputerModernMath-Extension] [lmex10]
+ \definefontsynonym [ComputerModernMath-Italic] [lmmi10]
+ \definefontsynonym [ComputerModernMath-Symbol] [lmsy10]
+\stoptypescript
+
+\starttypescript [boldmath,bfmath] [modern,computer-modern,latin-modern]
+ \definefontsynonym [ComputerModernMath-Roman-Bold] [rm-lmb10]
+ \definefontsynonym [ComputerModernMath-Extension] [lmex10]
+ \definefontsynonym [ComputerModernMath-Italic-Bold] [lmmib10]
+ \definefontsynonym [ComputerModernMath-Symbol-Bold] [lmbsy10]
+\stoptypescript
+
+% Computer Concrete (AMS)
+
+\starttypescript [serif] [concrete]
+ \definefontsynonym [ComputerConcrete] [ccr10]
+ \definefontsynonym [ComputerConcrete-Italic] [ccti10]
+ \definefontsynonym [ComputerConcrete-Slanted] [ccsl10]
+ \definefontsynonym [ComputerConcrete-Bold] [ComputerConcrete]
+ \definefontsynonym [ComputerConcrete-BoldItalic] [ComputerConcrete-Italic]
+ \definefontsynonym [ComputerConcrete-BoldSlanted] [ComputerConcrete-Slanted]
+ \definefontsynonym [ComputerConcrete-Caps] [cccsc10]
+\stoptypescript
+
+% Euler (AMS)
+
+\starttypescript [math] [euler]
+ \definefontsynonym [Euler-Roman] [zeurm10]
+ \definefontsynonym [Euler-Extension] [zeuex10]
+ \definefontsynonym [Euler-Symbol] [zeusm10]
+ \definefontsynonym [Euler-Fraktur] [eufm10]
+
+ \loadmapfile[original-ams-euler.map]
+\stoptypescript
+
+\starttypescript [boldmath,bfmath] [euler]
+ \definefontsynonym [Euler-Roman-Bold] [zeurb10]
+ \definefontsynonym [Euler-Extension] [zeuex10]
+ \definefontsynonym [Euler-Symbol-Bold] [zeusb10]
+ \definefontsynonym [Euler-Fraktur-Bold] [eufb10]
+
+ \loadmapfile[original-ams-euler.map]
+\stoptypescript
+
+% AMS (AMS)
+
+\starttypescript [math] [modern,computer-modern,latin-modern,ams]
+ \definefontsynonym [AMS-SymbolA] [msam10]
+ \definefontsynonym [AMS-SymbolB] [msbm10]
+\stoptypescript
+
+% TeXGyre
+
+\definetypescriptprefix [f:pagella] [pagella] \definetypescriptprefix [f:palatino] [pagella]
+\definetypescriptprefix [f:termes] [termes] \definetypescriptprefix [f:times] [termes]
+\definetypescriptprefix [f:heros] [heros] \definetypescriptprefix [f:helvetica] [heros]
+\definetypescriptprefix [f:bonum] [bonum] \definetypescriptprefix [f:bookman] [bonum]
+\definetypescriptprefix [f:schola] [schola] \definetypescriptprefix [f:schoolbook] [schola]
+\definetypescriptprefix [f:adventor][adventor] %definetypescriptprefix [f:adventor] [adventor]
+\definetypescriptprefix [f:cursor] [cursor] \definetypescriptprefix [f:courier] [cursor]
+\definetypescriptprefix [f:chorus] [chorus] \definetypescriptprefix [f:chancery] [chorus] % not the full set
+
+% name definitions & prefixes
+% \starttypescript [serif,sans,mono] [adventor,bonum,cursor,heros,pagella,palatino,schola,termes]
+% \starttypescript [serif] [pagella,palatino,termes,times,bonum,bookman,schola,schoolbook] [name]
+
+\starttypescript [serif,sans,mono] [adventor,bonum,bookman,cursor,courier,heros,helvetica,pagella,palatino,schola,schoolbook,termes,times]
+ \definefontsynonym [\typescriptprefix{n:\typescripttwo}-Regular] [file:texgyre\typescriptprefix{f:\typescripttwo}-regular] [features=default]
+ \definefontsynonym [\typescriptprefix{n:\typescripttwo}-Italic] [file:texgyre\typescriptprefix{f:\typescripttwo}-italic] [features=default]
+ \definefontsynonym [\typescriptprefix{n:\typescripttwo}-Bold] [file:texgyre\typescriptprefix{f:\typescripttwo}-bold] [features=default]
+ \definefontsynonym [\typescriptprefix{n:\typescripttwo}-BoldItalic] [file:texgyre\typescriptprefix{f:\typescripttwo}-bolditalic] [features=default]
+ \definefontsynonym [\typescriptprefix{n:\typescripttwo}-Caps] [file:texgyre\typescriptprefix{f:\typescripttwo}-regular] [features=smallcaps]
+ \definefontsynonym [\typescriptprefix{n:\typescripttwo}-ItalicCaps] [file:texgyre\typescriptprefix{f:\typescripttwo}-italic] [features=smallcaps]
+ \definefontsynonym [\typescriptprefix{n:\typescripttwo}-BoldCaps] [file:texgyre\typescriptprefix{f:\typescripttwo}-bold] [features=smallcaps]
+ \definefontsynonym [\typescriptprefix{n:\typescripttwo}-BoldItalicCaps] [file:texgyre\typescriptprefix{f:\typescripttwo}-bolditalic] [features=smallcaps]
+\stoptypescript
+
+\starttypescript [serif,calligraphy] [chorus,chancery]
+ \definefontsynonym [TeXGyreChorus-MediumItalic] [file:texgyrechorus-mediumitalic] [features=default]
+\stoptypescript
+
+% Times Math (tx)
+
+\starttypescript [math] [times] [all]
+ \definefontsynonym [Times-Roman-Upright] [txr]
+ \definefontsynonym [Times-Roman-Italic] [txi]
+ \definefontsynonym [Times-Roman-Slanted] [txsl]
+ \definefontsynonym [Times-Roman-Caps] [txsc]
+ \definefontsynonym [Times-Companion-Upright] [tcxr]
+ \definefontsynonym [Times-Companion-Italic] [tcxi]
+ \definefontsynonym [Times-Companion-Slanted] [tcxsl]
+ \definefontsynonym [Times-Math-Italic] [txmi]
+ \definefontsynonym [Times-Math-Symbols] [txsy]
+ \definefontsynonym [Times-Math-Extension] [txex]
+ \definefontsynonym [Times-Math-SymbolsA] [txsya]
+ \definefontsynonym [Times-Math-SymbolsB] [txsyb]
+ \definefontsynonym [Times-Math-SymbolsC] [txsyc]
+ \definefontsynonym [Times-Math-Italic-A] [txmia]
+ \definefontsynonym [Times-Math-Extension-A] [txexa]
+
+ \loadmapfile[original-youngryu-tx.map]
+ \usemathcollection[default]
+\stoptypescript
+
+% Palatino Math (px)
+
+\starttypescript [math] [palatino] [all]
+ \definefontsynonym [Palatino-Roman-Upright] [pxr]
+ \definefontsynonym [Palatino-Roman-Italic] [pxi]
+ \definefontsynonym [Palatino-Roman-Slanted] [pxsl]
+ \definefontsynonym [Palatino-Roman-Caps] [pxsc]
+ \definefontsynonym [Palatino-Companion-Upright] [pcxr]
+ \definefontsynonym [Palatino-Companion-Italic] [pcxi]
+ \definefontsynonym [Palatino-Companion-Slanted] [pcxsl]
+ \definefontsynonym [Palatino-Math-Italic] [pxmi]
+ \definefontsynonym [Palatino-Math-Symbols] [pxsy]
+ \definefontsynonym [Palatino-Math-Extension] [pxex]
+ \definefontsynonym [Palatino-Math-SymbolsA] [pxsya]
+ \definefontsynonym [Palatino-Math-SymbolsB] [pxsyb]
+ \definefontsynonym [Palatino-Math-SymbolsC] [pxsyc]
+ \definefontsynonym [Palatino-Math-Italic-A] [pxmia]
+ \definefontsynonym [Palatino-Math-Extension-A] [pxexa]
+
+ \loadmapfile[original-youngryu-px.map]
+ \usemathcollection[default]
+\stoptypescript
+
+% Antykwa Torunska (GUST)
+
+\starttypescript [serif] [antykwa-torunska,antykwa-torunska-light,antykwa-torunska-cond,antykwa-torunska-lightcond]
+ \definefontsynonym [AntykwaTorunska-Regular] [file:AntykwaTorunska-Regular] [features=default]
+ \definefontsynonym [AntykwaTorunska-Italic] [file:AntykwaTorunska-Italic] [features=default]
+ \definefontsynonym [AntykwaTorunska-Bold] [file:AntykwaTorunska-Bold] [features=default]
+ \definefontsynonym [AntykwaTorunska-BoldItalic] [file:AntykwaTorunska-BoldItalic] [features=default]
+ \definefontsynonym [AntykwaTorunska-Light] [file:AntykwaTorunskaLight-Regular] [features=default]
+ \definefontsynonym [AntykwaTorunska-LightItalic] [file:AntykwaTorunskaLight-Italic] [features=default]
+ \definefontsynonym [AntykwaTorunska-Medium] [file:AntykwaTorunskaMed-Regular] [features=default]
+ \definefontsynonym [AntykwaTorunska-MedItalic] [file:AntykwaTorunskaMed-Italic] [features=default]
+ \definefontsynonym [AntykwaTorunska-CondRegular] [file:AntykwaTorunskaCond-Regular] [features=default]
+ \definefontsynonym [AntykwaTorunska-CondItalic] [file:AntykwaTorunskaCond-Italic] [features=default]
+ \definefontsynonym [AntykwaTorunska-CondBold] [file:AntykwaTorunskaCond-Bold] [features=default]
+ \definefontsynonym [AntykwaTorunska-CondBoldItalic] [file:AntykwaTorunskaCond-BoldItalic] [features=default]
+ \definefontsynonym [AntykwaTorunska-CondLight] [file:AntykwaTorunskaCondLight-Regular] [features=default]
+ \definefontsynonym [AntykwaTorunska-CondLightItalic] [file:AntykwaTorunskaCondLight-Italic] [features=default]
+ \definefontsynonym [AntykwaTorunska-CondMedium] [file:AntykwaTorunskaCondMed-Regular] [features=default]
+ \definefontsynonym [AntykwaTorunska-CondMedItalic] [file:AntykwaTorunskaCondMed-Italic] [features=default]
+
+ \definefontsynonym [AntykwaTorunska-Cap] [file:AntykwaTorunska-Regular] [features=smallcaps]
+ \definefontsynonym [AntykwaTorunska-ItalicCap] [file:AntykwaTorunska-Italic] [features=smallcaps]
+ \definefontsynonym [AntykwaTorunska-BoldCap] [file:AntykwaTorunska-Bold] [features=smallcaps]
+ \definefontsynonym [AntykwaTorunska-BoldItalicCap] [file:AntykwaTorunska-BoldItalic] [features=smallcaps]
+ \definefontsynonym [AntykwaTorunska-LightCap] [file:AntykwaTorunskaLight-Regular] [features=smallcaps]
+ \definefontsynonym [AntykwaTorunska-LightItalicCap] [file:AntykwaTorunskaLight-Italic] [features=smallcaps]
+ \definefontsynonym [AntykwaTorunska-MediumCap] [file:AntykwaTorunskaMed-Regular] [features=smallcaps]
+ \definefontsynonym [AntykwaTorunska-MedItalicCap] [file:AntykwaTorunskaMed-Italic] [features=smallcaps]
+ \definefontsynonym [AntykwaTorunska-CondCap] [file:AntykwaTorunskaCond-Regular] [features=smallcaps]
+ \definefontsynonym [AntykwaTorunska-CondItalicCap] [file:AntykwaTorunskaCond-Italic] [features=smallcaps]
+ \definefontsynonym [AntykwaTorunska-CondBoldCap] [file:AntykwaTorunskaCond-Bold] [features=smallcaps]
+ \definefontsynonym [AntykwaTorunska-CondBoldItalicCap] [file:AntykwaTorunskaCond-BoldItalic] [features=smallcaps]
+ \definefontsynonym [AntykwaTorunska-CondLightCap] [file:AntykwaTorunskaCondLight-Regular] [features=smallcaps]
+ \definefontsynonym [AntykwaTorunska-CondLightItalicCap][file:AntykwaTorunskaCondLight-Italic] [features=smallcaps]
+ \definefontsynonym [AntykwaTorunska-CondMediumCap] [file:AntykwaTorunskaCondMed-Regular] [features=smallcaps]
+ \definefontsynonym [AntykwaTorunska-CondMedItalicCap] [file:AntykwaTorunskaCondMed-Italic] [features=smallcaps]
+\stoptypescript
+
+\starttypescript [math] [antykwa-torunska] [default]
+ \definefontsynonym [AntykwaTorunska-Math-Letters-Regular] [rm-anttr]
+ \definefontsynonym [AntykwaTorunska-Math-Letters-Italic] [mi-anttri]
+ \definefontsynonym [AntykwaTorunska-Math-Symbols-Regular] [sy-anttrz]
+ \definefontsynonym [AntykwaTorunska-Math-Extension-Regular] [ex-anttr]
+\stoptypescript
+
+\starttypescript [math] [antykwa-torunska-light] [default]
+ \definefontsynonym [AntykwaTorunska-Math-Letters-Light] [rm-anttl]
+ \definefontsynonym [AntykwaTorunska-Math-Letters-LightItalic] [mi-anttli]
+ \definefontsynonym [AntykwaTorunska-Math-Symbols-Light] [sy-anttlz]
+ \definefontsynonym [AntykwaTorunska-Math-Extension-Light] [ex-anttl]
+\stoptypescript
+
+\starttypescript [math] [antykwa-torunska-cond] [default]
+ \definefontsynonym [AntykwaTorunska-Math-Letters-CondRegular] [rm-anttcr]
+ \definefontsynonym [AntykwaTorunska-Math-Letters-CondItalic] [mi-anttcri]
+ \definefontsynonym [AntykwaTorunska-Math-Symbols-CondRegular] [sy-anttcrz]
+ \definefontsynonym [AntykwaTorunska-Math-Extension-CondRegular] [ex-anttcr]
+\stoptypescript
+
+\starttypescript [math] [antykwa-torunska-lightcond] [default]
+ \definefontsynonym [AntykwaTorunska-Math-Letters-CondLight] [rm-anttcl]
+ \definefontsynonym [AntykwaTorunska-Math-Letters-CondLightItalic] [mi-anttcli]
+ \definefontsynonym [AntykwaTorunska-Math-Symbols-CondLight] [sy-anttclz]
+ \definefontsynonym [AntykwaTorunska-Math-Extension-CondLight] [ex-anttcl]
+\stoptypescript
+
+\starttypescript [math] [antykwa-torunska,antykwa-torunska-light,antykwa-torunska-cond,antykwa-torunska-lightcond]
+ \usemathcollection[default]
+ \loadmapfile[antt-rm.map]
+ \loadmapfile[antt-mi.map]
+ \loadmapfile[antt-sy.map]
+ \loadmapfile[antt-ex.map]
+\stoptypescript
+
+% Antykwa Poltawskiego (GUST)
+
+\starttypescript [serif] [antykwa-poltawskiego]
+ \definefontsynonym [AntykwaPoltawskiego-Regular] [antpr]
+ \definefontsynonym [AntykwaPoltawskiego-Bold] [antpb]
+ \definefontsynonym [AntykwaPoltawskiego-Italic] [antpri]
+ \definefontsynonym [AntykwaPoltawskiego-BoldItalic] [antpbi]
+\stoptypescript
+
+% Iwona (JMN)
+
+% maybe this will change in Iwona-Math-Letters and Iwona-Math-Letters-Italic
+
+% These names are a depressing mess. They have changed over time and are
+% still not consistent. I'd expect Bold-Regular and Bold-Italic.
+
+\starttypescript [sans] [iwona-light,iwona,iwona-medium,iwona-heavy,iwona-light-cond,iwona-cond,iwona-medium-cond,iwona-heavy-cond]
+
+ \definefontsynonym [Iwona-Regular] [file:Iwona-Regular] [features=default]
+ \definefontsynonym [Iwona-Italic] [file:Iwona-Italic] [features=default]
+ \definefontsynonym [Iwona-Bold] [file:Iwona-Bold] [features=default]
+ \definefontsynonym [Iwona-BoldItalic] [file:Iwona-BoldItalic] [features=default]
+ \definefontsynonym [Iwona-Light-Regular] [file:IwonaLight-Regular] [features=default]
+ \definefontsynonym [Iwona-Light-Italic] [file:IwonaLight-Italic] [features=default]
+ \definefontsynonym [Iwona-Medium-Regular] [file:IwonaMedium-Regular] [features=default]
+ \definefontsynonym [Iwona-Medium-Italic] [file:IwonaMedium-Italic] [features=default]
+ \definefontsynonym [Iwona-Heavy-Regular] [file:IwonaHeavy-Regular] [features=default]
+ \definefontsynonym [Iwona-Heavy-Italic] [file:IwonaHeavy-Italic] [features=default]
+
+ \definefontsynonym [Iwona-CapsRegular] [file:Iwona-Regular] [features=smallcaps]
+ \definefontsynonym [Iwona-CapsItalic] [file:Iwona-Italic] [features=smallcaps]
+ \definefontsynonym [Iwona-CapsBold] [file:Iwona-Bold] [features=smallcaps]
+ \definefontsynonym [Iwona-CapsBoldItalic] [file:Iwona-BoldItalic] [features=smallcaps]
+ \definefontsynonym [Iwona-CapsLight] [file:IwonaLight-Regular] [features=smallcaps]
+ \definefontsynonym [Iwona-CapsLight-Italic] [file:IwonaLight-Italic] [features=smallcaps]
+ \definefontsynonym [Iwona-CapsMedium] [file:IwonaMedium-Regular] [features=smallcaps]
+ \definefontsynonym [Iwona-CapsMedium-Italic] [file:IwonaMedium-Italic] [features=smallcaps]
+ \definefontsynonym [Iwona-CapsHeavy] [file:IwonaHeavy-Regular] [features=smallcaps]
+ \definefontsynonym [Iwona-CapsHeavy-Italic] [file:IwonaHeavy-Italic] [features=smallcaps]
+
+ \definefontsynonym [Iwona-CondRegular] [file:IwonaCond-Regular] [features=default]
+ \definefontsynonym [Iwona-CondItalic] [file:IwonaCond-Italic] [features=default]
+ \definefontsynonym [Iwona-CondBold] [file:IwonaCond-Bold] [features=default]
+ \definefontsynonym [Iwona-CondBoldItalic] [file:IwonaCond-BoldItalic] [features=default]
+ \definefontsynonym [Iwona-CondLight-Regular] [file:IwonaCondLight-Regular] [features=default]
+ \definefontsynonym [Iwona-CondLight-Italic] [file:IwonaCondLight-Italic] [features=default]
+ \definefontsynonym [Iwona-CondMedium-Regular] [file:IwonaCondMedium-Regular] [features=default]
+ \definefontsynonym [Iwona-CondMedium-Italic] [file:IwonaCondMedium-Italic] [features=default]
+ \definefontsynonym [Iwona-CondHeavy-Regular] [file:IwonaCondHeavy-Regular] [features=default]
+ \definefontsynonym [Iwona-CondHeavy-Italic] [file:IwonaCondHeavy-Italic] [features=default]
+
+ \definefontsynonym [Iwona-CapsCondRegular] [file:IwonaCond-Regular] [features=smallcaps]
+ \definefontsynonym [Iwona-CapsCondItalic] [file:IwonaCond-Italic] [features=smallcaps]
+ \definefontsynonym [Iwona-CapsCondBold] [file:IwonaCond-Bold] [features=smallcaps]
+ \definefontsynonym [Iwona-CapsCondBoldItalic] [file:IwonaCond-BoldItalic] [features=smallcaps]
+ \definefontsynonym [Iwona-CapsCondLight-Regular] [file:IwonaCondLight-Regular] [features=smallcaps]
+ \definefontsynonym [Iwona-CapsCondLight-Italic] [file:IwonaCondLight-Italic] [features=smallcaps]
+ \definefontsynonym [Iwona-CapsCondMedium-Regular][file:IwonaCondMedium-Regular] [features=smallcaps]
+ \definefontsynonym [Iwona-CapsCondMedium-Italic] [file:IwonaCondMedium-Italic] [features=smallcaps]
+ \definefontsynonym [Iwona-CapsCondHeavy-Regular] [file:IwonaCondHeavy-Regular] [features=smallcaps]
+ \definefontsynonym [Iwona-CapsCondHeavy-Italic] [file:IwonaCondHeavy-Italic] [features=smallcaps]
+
+\stoptypescript
+
+\starttypescript [math] [iwona] [default]
+ \definefontsynonym [Iwona-Math-Letters-Regular] [rm-iwonar]
+ \definefontsynonym [Iwona-Math-Letters-Italic] [mi-iwonari]
+ \definefontsynonym [Iwona-Math-Symbols-Regular] [sy-iwonarz]
+ \definefontsynonym [Iwona-Math-Extension-Regular] [ex-iwonar]
+\stoptypescript
+
+\starttypescript [math] [iwona-light] [default]
+ \definefontsynonym [Iwona-Math-Letters-Light-Regular] [rm-iwonal]
+ \definefontsynonym [Iwona-Math-Letters-Light-Italic] [mi-iwonali]
+ \definefontsynonym [Iwona-Math-Symbols-Light] [sy-iwonalz]
+ \definefontsynonym [Iwona-Math-Extension-Light] [ex-iwonal]
+\stoptypescript
+
+\starttypescript [math] [iwona-medium] [default]
+ \definefontsynonym [Iwona-Math-Letters-Medium-Regular][rm-iwonam]
+ \definefontsynonym [Iwona-Math-Letters-Medium-Italic] [mi-iwonami]
+ \definefontsynonym [Iwona-Math-Symbols-Medium] [sy-iwonamz]
+ \definefontsynonym [Iwona-Math-Extension-Medium] [ex-iwonam]
+\stoptypescript
+
+\starttypescript [math] [iwona-heavy] [default]
+ \definefontsynonym [Iwona-Math-Letters-Heavy-Regular] [rm-iwonah]
+ \definefontsynonym [Iwona-Math-Letters-Heavy-Italic] [mi-iwonahi]
+ \definefontsynonym [Iwona-Math-Symbols-Heavy] [sy-iwonahz]
+ \definefontsynonym [Iwona-Math-Extension-Heavy] [ex-iwonah]
+\stoptypescript
+
+\starttypescript [math] [iwona,iwona-light,iwona-medium,iwona-heavy] [default]
+ \usemathcollection[default]
+ \loadmapfile[iwona-rm.map]
+ \loadmapfile[iwona-mi.map]
+ \loadmapfile[iwona-sy.map]
+ \loadmapfile[iwona-ex.map]
+\stoptypescript
+
+% Kurier (JMN) / no open type fonts
+
+\starttypescript [sans] [kurier-light,kurier,kurier-medium]
+ \definefontsynonym[Kurier-Light] [kurierl]
+ \definefontsynonym[Kurier-Regular] [kurierr]
+ \definefontsynonym[Kurier-Medium] [kurierm]
+ \definefontsynonym[Kurier-Bold] [kurierb]
+ \definefontsynonym[Kurier-Heavy] [kurierh]
+ \definefontsynonym[Kurier-LightItalic] [kurierli]
+ \definefontsynonym[Kurier-Italic] [kurierri]
+ \definefontsynonym[Kurier-MediumItalic] [kuriermi]
+ \definefontsynonym[Kurier-BoldItalic] [kurierbi]
+ \definefontsynonym[Kurier-HeavyItalic] [kurierhi]
+\stoptypescript
+
+\starttypescript [math] [kurier] [default]
+ \definefontsynonym [Kurier-Math-Letters-Regular] [rm-kurierr]
+ \definefontsynonym [Kurier-Math-Letters-Italic] [mi-kurierri]
+ \definefontsynonym [Kurier-Math-Symbols-Regular] [sy-kurierrz]
+ \definefontsynonym [Kurier-Math-Extension-Regular] [ex-kurierr]
+\stoptypescript
+
+\starttypescript [math] [kurier-light] [default]
+ \definefontsynonym [Kurier-Math-Letters-Light-Regular] [rm-kurierl]
+ \definefontsynonym [Kurier-Math-Letters-Light-Italic] [mi-kurierli]
+ \definefontsynonym [Kurier-Math-Symbols-Light] [sy-kurierlz]
+ \definefontsynonym [Kurier-Math-Extension-Light] [ex-kurierl]
+\stoptypescript
+
+\starttypescript [math] [kurier-medium] [default]
+ \definefontsynonym [Kurier-Math-Letters-Medium-Regular] [rm-kurierm]
+ \definefontsynonym [Kurier-Math-Letters-Medium-Italic] [mi-kuriermi]
+ \definefontsynonym [Kurier-Math-Symbols-Medium-Regular] [sy-kuriermz]
+ \definefontsynonym [Kurier-Math-Extension-Medium] [ex-kurierm]
+\stoptypescript
+
+\starttypescript [math] [kurier,kurier-light,kurier-medium] [default]
+ \loadmapfile[kurier-rm.map]
+ \loadmapfile[kurier-mi.map]
+ \loadmapfile[kurier-sy.map]
+ \loadmapfile[kurier-ex.map]
+\stoptypescript
+
+\starttypescript [iwona,iwona-light,iwona-medium,iwona-heavy]
+ \definetypeface[\typescriptone][ss][sans] [\typescriptone] [default]
+ \definetypeface[\typescriptone][rm][serif][modern] [default]
+ \definetypeface[\typescriptone][tt][mono] [modern] [default][rscale=1.05]
+ \definetypeface[\typescriptone][mm][math] [\typescriptone] [default][text=ss]
+ \quittypescriptscanning
+\stoptypescript
+
+% Whatever else we need:
+
+\starttypescript
+ \definefontsynonym [ZapfDingbats] [uzdr]
+ \definefontsynonym [RalfSmithFormalScript] [rsfs10]
+ \definefontsynonym [MartinVogel] [fmvr8x]
+\stoptypescript
+
+% Temp here
+
+\starttypescript [serif] [charter]
+ \definefontsynonym [Charter-Roman] [name:CharterBT-Roman] % or: [bchr8a]
+ \definefontsynonym [Charter-Italic] [name:CharterBT-Italic] % or: [bchri8a]
+ \definefontsynonym [Charter-Bold] [name:CharterBT-Bold] % or: [bchb8a]
+ \definefontsynonym [Charter-BoldItalic] [name:CharterBT-BoldItalic] % or: [bchbi8a]
+ \definefontsynonym [Charter-Slanted] [name:CharterBT-Italic] % or: [bchri8a]
+ \definefontsynonym [Charter-BoldSlanted] [name:CharterBT-BoldItalic] % or: [bchbi8a]
+ \definefontsynonym [Charter-Roman-Caps] [Charter-Roman] % not present
+\stoptypescript
+
+\stoptypescriptcollection
+
+\endinput
diff --git a/Master/texmf-dist/tex/context/base/type-otf.mkiv b/Master/texmf-dist/tex/context/base/type-otf.mkiv
new file mode 100644
index 00000000000..1efd5448870
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/type-otf.mkiv
@@ -0,0 +1,502 @@
+%D \module
+%D [ file=type-otf,
+%D version=2007.07.30,
+%D title=\CONTEXT\ Typescript Macros,
+%D subtitle=Opentype Definitions,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D Actually, \LUATEX\ does not need all these definitions since it can
+%D consult its database. However, here we use the names that we used
+%D in good old \TEX, and these may differ a bit. Here we also see
+%D some oldstyle definitions which normally are done with features.
+
+% if a fontname equals the filename, then use
+%
+% \setupfontsynonym [LMRoman10-DemiOblique] [features=default] % file is lowercase, so fails
+% \definefontsynonym [LMRoman10-DemiOblique] [name:LMRoman10-DemiOblique] [features=default]
+% \definefontsynonym [LMRoman10-DemiOblique] [lmroman10-demioblique] [features=default]
+
+\starttypescriptcollection[opentype]
+
+%D The names have changed (again) ... but I will not change the symbolic names
+%D any more. Filename changes will be catched in luatex (fallbacks) but not in
+%D other tex's.
+
+\starttypescript [serif] [modern,latin-modern]
+ \definefontsynonym [LMRoman5-Regular] [file:lmroman5-regular] [features=default]
+ \definefontsynonym [LMRoman6-Regular] [file:lmroman6-regular] [features=default]
+ \definefontsynonym [LMRoman7-Regular] [file:lmroman7-regular] [features=default]
+ \definefontsynonym [LMRoman8-Regular] [file:lmroman8-regular] [features=default]
+ \definefontsynonym [LMRoman9-Regular] [file:lmroman9-regular] [features=default]
+ \definefontsynonym [LMRoman10-Regular] [file:lmroman10-regular] [features=default]
+ \definefontsynonym [LMRoman12-Regular] [file:lmroman12-regular] [features=default]
+ \definefontsynonym [LMRoman17-Regular] [file:lmroman17-regular] [features=default]
+ \definefontsynonym [LMRoman5-Bold] [file:lmroman5-bold] [features=default]
+ \definefontsynonym [LMRoman6-Bold] [file:lmroman6-bold] [features=default]
+ \definefontsynonym [LMRoman7-Bold] [file:lmroman7-bold] [features=default]
+ \definefontsynonym [LMRoman8-Bold] [file:lmroman8-bold] [features=default]
+ \definefontsynonym [LMRoman9-Bold] [file:lmroman9-bold] [features=default]
+ \definefontsynonym [LMRoman10-Bold] [file:lmroman10-bold] [features=default]
+ \definefontsynonym [LMRoman12-Bold] [file:lmroman12-bold] [features=default]
+ \definefontsynonym [LMRoman7-Italic] [file:lmroman7-italic] [features=default]
+ \definefontsynonym [LMRoman8-Italic] [file:lmroman8-italic] [features=default]
+ \definefontsynonym [LMRoman9-Italic] [file:lmroman9-italic] [features=default]
+ \definefontsynonym [LMRoman10-Italic] [file:lmroman10-italic] [features=default]
+ \definefontsynonym [LMRoman12-Italic] [file:lmroman12-italic] [features=default]
+ \definefontsynonym [LMRoman10-BoldItalic] [file:lmroman10-bolditalic] [features=default]
+ \definefontsynonym [LMRoman8-Oblique] [file:lmromanslant8-regular] [features=default]
+ \definefontsynonym [LMRoman9-Oblique] [file:lmromanslant9-regular] [features=default]
+ \definefontsynonym [LMRoman10-Oblique] [file:lmromanslant10-regular][features=default]
+ \definefontsynonym [LMRoman12-Oblique] [file:lmromanslant12-regular][features=default]
+ \definefontsynonym [LMRoman17-Oblique] [file:lmromanslant17-regular][features=default]
+ \definefontsynonym [LMRoman10-BoldOblique] [file:lmromanslant10-bold] [features=default]
+ \definefontsynonym [LMRoman10-Demi] [file:lmromandemi10-regular] [features=default]
+ \definefontsynonym [LMRoman10-DemiOblique] [file:lmromandemi10-oblique] [features=default]
+ \definefontsynonym [LMRoman10-CapsRegular] [file:lmromancaps10-regular] [features=default] % features=smallcaps?
+ \definefontsynonym [LMRoman10-CapsOblique] [file:lmromancaps10-oblique] [features=default]
+
+ \definefontsynonym [LMRoman10-Dunhill] [file:lmromandunh10-regular] [features=default]
+ \definefontsynonym [LMRoman10-DunhillOblique] [file:lmromandunh10-oblique] [features=default]
+ \definefontsynonym [LMRoman10-Unslanted] [file:lmromanunsl10-regular] [features=default]
+\stoptypescript
+
+\starttypescript [sans] [modern,latin-modern]
+ \definefontsynonym [LMSans8-Regular] [file:lmsans8-regular] [features=default]
+ \definefontsynonym [LMSans9-Regular] [file:lmsans9-regular] [features=default]
+ \definefontsynonym [LMSans10-Regular] [file:lmsans10-regular] [features=default]
+ \definefontsynonym [LMSans12-Regular] [file:lmsans12-regular] [features=default]
+ \definefontsynonym [LMSans17-Regular] [file:lmsans17-regular] [features=default]
+ \definefontsynonym [LMSans10-Bold] [file:lmsans10-bold] [features=default]
+ \definefontsynonym [LMSans8-Oblique] [file:lmsans8-oblique] [features=default]
+ \definefontsynonym [LMSans9-Oblique] [file:lmsans9-oblique] [features=default]
+ \definefontsynonym [LMSans10-Oblique] [file:lmsans10-oblique] [features=default]
+ \definefontsynonym [LMSans12-Oblique] [file:lmsans12-oblique] [features=default]
+ \definefontsynonym [LMSans17-Oblique] [file:lmsans17-oblique] [features=default]
+ \definefontsynonym [LMSans10-BoldOblique] [file:lmsans10-boldoblique] [features=default]
+
+ \definefontsynonym [LMSans10-DemiCondensed] [file:lmsansdemicond10-regular] [features=default]
+ \definefontsynonym [LMSans10-DemiCondensedOblique] [file:lmsansdemicond10-oblique] [features=default]
+
+ \definefontsynonym [LMSansQuotation8-Regular] [file:lmsansquot8-regular] [features=default]
+ \definefontsynonym [LMSansQuotation8-Bold] [file:lmsansquot8-bold] [features=default]
+ \definefontsynonym [LMSansQuotation8-Oblique] [file:lmsansquot8-oblique] [features=default]
+ \definefontsynonym [LMSansQuotation8-BoldOblique] [file:lmsansquot8-boldoblique] [features=default]
+\stoptypescript
+
+\starttypescript [mono] [modern,latin-modern,modern-vari,latin-modern-vari,modern-cond,latin-modern-cond]
+ \definefontsynonym [LMTypewriter8-Regular] [file:lmmono8-regular] [features=none]
+ \definefontsynonym [LMTypewriter9-Regular] [file:lmmono9-regular] [features=none]
+ \definefontsynonym [LMTypewriter10-Regular] [file:lmmono10-regular] [features=none]
+ \definefontsynonym [LMTypewriter12-Regular] [file:lmmono12-regular] [features=none]
+ \definefontsynonym [LMTypewriter10-Italic] [file:lmmono10-italic] [features=none]
+ \definefontsynonym [LMTypewriter10-Oblique] [file:lmmonoslant10-regular] [features=none]
+ \definefontsynonym [LMTypewriter10-CapsRegular] [file:lmmonocaps10-regular] [features=none] % features=smallcaps?
+ \definefontsynonym [LMTypewriter10-CapsOblique] [file:lmmonocaps10-oblique] [features=none]
+
+ \definefontsynonym [LMTypewriter10-Light] [file:lmmonolt10-regular] [features=none]
+ \definefontsynonym [LMTypewriter10-LightOblique] [file:lmmonolt10-oblique] [features=none]
+ \definefontsynonym [LMTypewriter10-LightCondensed] [file:lmmonoltcond10-regular] [features=none]
+ \definefontsynonym [LMTypewriter10-LightCondensedOblique] [file:lmmonoltcond10-oblique] [features=none]
+
+ \definefontsynonym [LMTypewriter10-Dark] [file:lmmonolt10-bold] [features=none]
+ \definefontsynonym [LMTypewriter10-DarkOblique] [file:lmmonolt10-boldoblique] [features=none]
+
+ \definefontsynonym [LMTypewriterVarWd10-Regular] [file:lmmonoproplt10-regular] [features=default]
+ \definefontsynonym [LMTypewriterVarWd10-Oblique] [file:lmmonoproplt10-oblique] [features=default]
+ \definefontsynonym [LMTypewriterVarWd10-Light] [file:lmmonoprop10-regular] [features=default]
+ \definefontsynonym [LMTypewriterVarWd10-LightOblique] [file:lmmonoprop10-oblique] [features=default]
+ \definefontsynonym [LMTypewriterVarWd10-Dark] [file:lmmonoproplt10-bold] [features=default]
+ \definefontsynonym [LMTypewriterVarWd10-DarkOblique] [file:lmmonoproplt10-boldoblique] [features=default]
+\stoptypescript
+
+\starttypescript [math] [modern,latin-modern,computer-modern]
+ \definefontsynonym[LMMathRoman5-Regular] [LMMath5-Regular@lmroman5-math]
+ \definefontsynonym[LMMathRoman6-Regular] [LMMath6-Regular@lmroman6-math]
+ \definefontsynonym[LMMathRoman7-Regular] [LMMath7-Regular@lmroman7-math]
+ \definefontsynonym[LMMathRoman8-Regular] [LMMath8-Regular@lmroman8-math]
+ \definefontsynonym[LMMathRoman9-Regular] [LMMath9-Regular@lmroman9-math]
+ \definefontsynonym[LMMathRoman10-Regular][LMMath10-Regular@lmroman10-math]
+ \definefontsynonym[LMMathRoman12-Regular][LMMath12-Regular@lmroman12-math]
+ \definefontsynonym[LMMathRoman17-Regular][LMMath17-Regular@lmroman17-math]
+
+ \definefontsynonym[LMMathRoman5-Bold] [LMMath10-Bold@lmroman10-boldmath]
+ \definefontsynonym[LMMathRoman6-Bold] [LMMath10-Bold@lmroman10-boldmath]
+ \definefontsynonym[LMMathRoman7-Bold] [LMMath10-Bold@lmroman10-boldmath]
+ \definefontsynonym[LMMathRoman8-Bold] [LMMath10-Bold@lmroman10-boldmath]
+ \definefontsynonym[LMMathRoman9-Bold] [LMMath10-Bold@lmroman10-boldmath]
+ \definefontsynonym[LMMathRoman10-Bold] [LMMath10-Bold@lmroman10-boldmath]
+ \definefontsynonym[LMMathRoman12-Bold] [LMMath10-Bold@lmroman10-boldmath]
+ \definefontsynonym[LMMathRoman17-Bold] [LMMath10-Bold@lmroman10-boldmath]
+
+ % are these needed?
+ %
+ % \definefontsynonym[MathRoman][LMMath10-Regular@lmroman10-math]
+ % \definefontsynonym[MathBold] [LMMath10-Bold@lmroman10-boldmath]
+
+ \loadmapfile[lm-math.map]
+ \loadmapfile[lm-rm.map]
+\stoptypescript
+
+% TeXGyre
+
+\definetypescriptprefix [f:pagella] [pagella] \definetypescriptprefix [f:palatino] [pagella]
+\definetypescriptprefix [f:termes] [termes] \definetypescriptprefix [f:times] [termes]
+\definetypescriptprefix [f:heros] [heros] \definetypescriptprefix [f:helvetica] [heros]
+\definetypescriptprefix [f:bonum] [bonum] \definetypescriptprefix [f:bookman] [bonum]
+\definetypescriptprefix [f:schola] [schola] \definetypescriptprefix [f:schoolbook] [schola]
+\definetypescriptprefix [f:adventor][adventor] %definetypescriptprefix [f:adventor] [adventor]
+\definetypescriptprefix [f:cursor] [cursor] \definetypescriptprefix [f:courier] [cursor]
+\definetypescriptprefix [f:chorus] [chorus] \definetypescriptprefix [f:chancery] [chorus] % not the full set
+
+% name definitions & prefixes
+% \starttypescript [serif,sans,mono] [adventor,bonum,cursor,heros,pagella,palatino,schola,termes]
+% \starttypescript [serif] [pagella,palatino,termes,times,bonum,bookman,schola,schoolbook] [name]
+
+\starttypescript [serif,sans,mono] [adventor,bonum,bookman,cursor,courier,heros,helvetica,pagella,palatino,schola,schoolbook,termes,times]
+ \definefontsynonym [\typescriptprefix{n:\typescripttwo}-Regular] [file:texgyre\typescriptprefix{f:\typescripttwo}-regular] [features=default]
+ \definefontsynonym [\typescriptprefix{n:\typescripttwo}-Italic] [file:texgyre\typescriptprefix{f:\typescripttwo}-italic] [features=default]
+ \definefontsynonym [\typescriptprefix{n:\typescripttwo}-Bold] [file:texgyre\typescriptprefix{f:\typescripttwo}-bold] [features=default]
+ \definefontsynonym [\typescriptprefix{n:\typescripttwo}-BoldItalic] [file:texgyre\typescriptprefix{f:\typescripttwo}-bolditalic] [features=default]
+ \definefontsynonym [\typescriptprefix{n:\typescripttwo}-Caps] [file:texgyre\typescriptprefix{f:\typescripttwo}-regular] [features=smallcaps]
+ \definefontsynonym [\typescriptprefix{n:\typescripttwo}-ItalicCaps] [file:texgyre\typescriptprefix{f:\typescripttwo}-italic] [features=smallcaps]
+ \definefontsynonym [\typescriptprefix{n:\typescripttwo}-BoldCaps] [file:texgyre\typescriptprefix{f:\typescripttwo}-bold] [features=smallcaps]
+ \definefontsynonym [\typescriptprefix{n:\typescripttwo}-BoldItalicCaps] [file:texgyre\typescriptprefix{f:\typescripttwo}-bolditalic] [features=smallcaps]
+\stoptypescript
+
+\starttypescript [serif,calligraphy] [chorus,chancery]
+ \definefontsynonym [TeXGyreChorus-MediumItalic] [file:texgyrechorus-mediumitalic] [features=default]
+\stoptypescript
+
+% Times Math (tx)
+
+\starttypescript [math][times][all]
+ \definefontsynonym[MathRoman][txmath@tx-math]
+ \loadmapfile[original-youngryu-tx.map]
+\stoptypescript
+
+% Palatino Math (px)
+
+\starttypescript [math][palatino][all]
+ \definefontsynonym[MathRoman][pxmath@px-math]
+ \loadmapfile[original-youngryu-px.map]
+\stoptypescript
+
+% Antykwa Torunska (GUST)
+
+\starttypescript [serif] [antykwa-torunska,antykwa-torunska-light,antykwa-torunska-cond,antykwa-torunska-lightcond]
+ \definefontsynonym [AntykwaTorunska-Regular] [file:AntykwaTorunska-Regular] [features=default]
+ \definefontsynonym [AntykwaTorunska-Italic] [file:AntykwaTorunska-Italic] [features=default]
+ \definefontsynonym [AntykwaTorunska-Bold] [file:AntykwaTorunska-Bold] [features=default]
+ \definefontsynonym [AntykwaTorunska-BoldItalic] [file:AntykwaTorunska-BoldItalic] [features=default]
+ \definefontsynonym [AntykwaTorunska-Light] [file:AntykwaTorunskaLight-Regular] [features=default]
+ \definefontsynonym [AntykwaTorunska-LightItalic] [file:AntykwaTorunskaLight-Italic] [features=default]
+ \definefontsynonym [AntykwaTorunska-Medium] [file:AntykwaTorunskaMed-Regular] [features=default]
+ \definefontsynonym [AntykwaTorunska-MedItalic] [file:AntykwaTorunskaMed-Italic] [features=default]
+ \definefontsynonym [AntykwaTorunska-CondRegular] [file:AntykwaTorunskaCond-Regular] [features=default]
+ \definefontsynonym [AntykwaTorunska-CondItalic] [file:AntykwaTorunskaCond-Italic] [features=default]
+ \definefontsynonym [AntykwaTorunska-CondBold] [file:AntykwaTorunskaCond-Bold] [features=default]
+ \definefontsynonym [AntykwaTorunska-CondBoldItalic] [file:AntykwaTorunskaCond-BoldItalic] [features=default]
+ \definefontsynonym [AntykwaTorunska-CondLight] [file:AntykwaTorunskaCondLight-Regular] [features=default]
+ \definefontsynonym [AntykwaTorunska-CondLightItalic] [file:AntykwaTorunskaCondLight-Italic] [features=default]
+ \definefontsynonym [AntykwaTorunska-CondMedium] [file:AntykwaTorunskaCondMed-Regular] [features=default]
+ \definefontsynonym [AntykwaTorunska-CondMedItalic] [file:AntykwaTorunskaCondMed-Italic] [features=default]
+
+ \definefontsynonym [AntykwaTorunska-Cap] [file:AntykwaTorunska-Regular] [features=smallcaps]
+ \definefontsynonym [AntykwaTorunska-ItalicCap] [file:AntykwaTorunska-Italic] [features=smallcaps]
+ \definefontsynonym [AntykwaTorunska-BoldCap] [file:AntykwaTorunska-Bold] [features=smallcaps]
+ \definefontsynonym [AntykwaTorunska-BoldItalicCap] [file:AntykwaTorunska-BoldItalic] [features=smallcaps]
+ \definefontsynonym [AntykwaTorunska-LightCap] [file:AntykwaTorunskaLight-Regular] [features=smallcaps]
+ \definefontsynonym [AntykwaTorunska-LightItalicCap] [file:AntykwaTorunskaLight-Italic] [features=smallcaps]
+ \definefontsynonym [AntykwaTorunska-MediumCap] [file:AntykwaTorunskaMed-Regular] [features=smallcaps]
+ \definefontsynonym [AntykwaTorunska-MedItalicCap] [file:AntykwaTorunskaMed-Italic] [features=smallcaps]
+ \definefontsynonym [AntykwaTorunska-CondCap] [file:AntykwaTorunskaCond-Regular] [features=smallcaps]
+ \definefontsynonym [AntykwaTorunska-CondItalicCap] [file:AntykwaTorunskaCond-Italic] [features=smallcaps]
+ \definefontsynonym [AntykwaTorunska-CondBoldCap] [file:AntykwaTorunskaCond-Bold] [features=smallcaps]
+ \definefontsynonym [AntykwaTorunska-CondBoldItalicCap] [file:AntykwaTorunskaCond-BoldItalic] [features=smallcaps]
+ \definefontsynonym [AntykwaTorunska-CondLightCap] [file:AntykwaTorunskaCondLight-Regular] [features=smallcaps]
+ \definefontsynonym [AntykwaTorunska-CondLightItalicCap][file:AntykwaTorunskaCondLight-Italic] [features=smallcaps]
+ \definefontsynonym [AntykwaTorunska-CondMediumCap] [file:AntykwaTorunskaCondMed-Regular] [features=smallcaps]
+ \definefontsynonym [AntykwaTorunska-CondMedItalicCap] [file:AntykwaTorunskaCondMed-Italic] [features=smallcaps]
+\stoptypescript
+
+% \starttypescript [math] [antykwa-torunska] [default]
+% \definefontsynonym [AntykwaTorunska-Math-Letters-Regular] [rm-anttr]
+% \definefontsynonym [AntykwaTorunska-Math-Letters-Italic] [mi-anttri]
+% \definefontsynonym [AntykwaTorunska-Math-Symbols-Regular] [sy-anttrz]
+% \definefontsynonym [AntykwaTorunska-Math-Extension-Regular] [ex-anttr]
+% \stoptypescript
+%
+% \starttypescript [math] [antykwa-torunska-light] [default]
+% \definefontsynonym [AntykwaTorunska-Math-Letters-Light] [rm-anttl]
+% \definefontsynonym [AntykwaTorunska-Math-Letters-LightItalic] [mi-anttli]
+% \definefontsynonym [AntykwaTorunska-Math-Symbols-Light] [sy-anttlz]
+% \definefontsynonym [AntykwaTorunska-Math-Extension-Light] [ex-anttl]
+% \stoptypescript
+%
+% \starttypescript [math] [antykwa-torunska-cond] [default]
+% \definefontsynonym [AntykwaTorunska-Math-Letters-CondRegular] [rm-anttcr]
+% \definefontsynonym [AntykwaTorunska-Math-Letters-CondItalic] [mi-anttcri]
+% \definefontsynonym [AntykwaTorunska-Math-Symbols-CondRegular] [sy-anttcrz]
+% \definefontsynonym [AntykwaTorunska-Math-Extension-CondRegular] [ex-anttcr]
+% \stoptypescript
+%
+% \starttypescript [math] [antykwa-torunska-lightcond] [default]
+% \definefontsynonym [AntykwaTorunska-Math-Letters-CondLight] [rm-anttcl]
+% \definefontsynonym [AntykwaTorunska-Math-Letters-CondLightItalic] [mi-anttcli]
+% \definefontsynonym [AntykwaTorunska-Math-Symbols-CondLight] [sy-anttclz]
+% \definefontsynonym [AntykwaTorunska-Math-Extension-CondLight] [ex-anttcl]
+% \stoptypescript
+%
+% \starttypescript [math] [antykwa-torunska,antykwa-torunska-light,antykwa-torunska-cond,antykwa-torunska-lightcond]
+% \usemathcollection[default]
+% \loadmapfile[antt-rm.map]
+% \loadmapfile[antt-mi.map]
+% \loadmapfile[antt-sy.map]
+% \loadmapfile[antt-ex.map]
+% \stoptypescript
+
+% Antykwa Poltawskiego (GUST)
+
+\starttypescript [serif] [antykwa-poltawskiego]
+ \definefontsynonym [AntykwaPoltawskiego-Regular] [antpr]
+ \definefontsynonym [AntykwaPoltawskiego-Bold] [antpb]
+ \definefontsynonym [AntykwaPoltawskiego-Italic] [antpri]
+ \definefontsynonym [AntykwaPoltawskiego-BoldItalic] [antpbi]
+\stoptypescript
+
+% Iwona (JMN)
+
+% maybe this will change in Iwona-Math-Letters and Iwona-Math-Letters-Italic
+
+% These names are a depressing mess. They have changed over time and are
+% still not consistent. I'd expect Bold-Regular and Bold-Italic.
+
+\starttypescript [sans] [iwona-light,iwona,iwona-medium,iwona-heavy,iwona-light-cond,iwona-cond,iwona-medium-cond,iwona-heavy-cond]
+
+ \definefontsynonym [Iwona-Regular] [file:Iwona-Regular] [features=default]
+ \definefontsynonym [Iwona-Italic] [file:Iwona-Italic] [features=default]
+ \definefontsynonym [Iwona-Bold] [file:Iwona-Bold] [features=default]
+ \definefontsynonym [Iwona-BoldItalic] [file:Iwona-BoldItalic] [features=default]
+ \definefontsynonym [Iwona-Light-Regular] [file:IwonaLight-Regular] [features=default]
+ \definefontsynonym [Iwona-Light-Italic] [file:IwonaLight-Italic] [features=default]
+ \definefontsynonym [Iwona-Medium-Regular] [file:IwonaMedium-Regular] [features=default]
+ \definefontsynonym [Iwona-Medium-Italic] [file:IwonaMedium-Italic] [features=default]
+ \definefontsynonym [Iwona-Heavy-Regular] [file:IwonaHeavy-Regular] [features=default]
+ \definefontsynonym [Iwona-Heavy-Italic] [file:IwonaHeavy-Italic] [features=default]
+
+ \definefontsynonym [Iwona-CapsRegular] [file:Iwona-Regular] [features=smallcaps]
+ \definefontsynonym [Iwona-CapsItalic] [file:Iwona-Italic] [features=smallcaps]
+ \definefontsynonym [Iwona-CapsBold] [file:Iwona-Bold] [features=smallcaps]
+ \definefontsynonym [Iwona-CapsBoldItalic] [file:Iwona-BoldItalic] [features=smallcaps]
+ \definefontsynonym [Iwona-CapsLight] [file:IwonaLight-Regular] [features=smallcaps]
+ \definefontsynonym [Iwona-CapsLight-Italic] [file:IwonaLight-Italic] [features=smallcaps]
+ \definefontsynonym [Iwona-CapsMedium] [file:IwonaMedium-Regular] [features=smallcaps]
+ \definefontsynonym [Iwona-CapsMedium-Italic] [file:IwonaMedium-Italic] [features=smallcaps]
+ \definefontsynonym [Iwona-CapsHeavy] [file:IwonaHeavy-Regular] [features=smallcaps]
+ \definefontsynonym [Iwona-CapsHeavy-Italic] [file:IwonaHeavy-Italic] [features=smallcaps]
+
+ \definefontsynonym [Iwona-CondRegular] [file:IwonaCond-Regular] [features=default]
+ \definefontsynonym [Iwona-CondItalic] [file:IwonaCond-Italic] [features=default]
+ \definefontsynonym [Iwona-CondBold] [file:IwonaCond-Bold] [features=default]
+ \definefontsynonym [Iwona-CondBoldItalic] [file:IwonaCond-BoldItalic] [features=default]
+ \definefontsynonym [Iwona-CondLight-Regular] [file:IwonaCondLight-Regular] [features=default]
+ \definefontsynonym [Iwona-CondLight-Italic] [file:IwonaCondLight-Italic] [features=default]
+ \definefontsynonym [Iwona-CondMedium-Regular] [file:IwonaCondMedium-Regular] [features=default]
+ \definefontsynonym [Iwona-CondMedium-Italic] [file:IwonaCondMedium-Italic] [features=default]
+ \definefontsynonym [Iwona-CondHeavy-Regular] [file:IwonaCondHeavy-Regular] [features=default]
+ \definefontsynonym [Iwona-CondHeavy-Italic] [file:IwonaCondHeavy-Italic] [features=default]
+
+ \definefontsynonym [Iwona-CapsCondRegular] [file:IwonaCond-Regular] [features=smallcaps]
+ \definefontsynonym [Iwona-CapsCondItalic] [file:IwonaCond-Italic] [features=smallcaps]
+ \definefontsynonym [Iwona-CapsCondBold] [file:IwonaCond-Bold] [features=smallcaps]
+ \definefontsynonym [Iwona-CapsCondBoldItalic] [file:IwonaCond-BoldItalic] [features=smallcaps]
+ \definefontsynonym [Iwona-CapsCondLight-Regular] [file:IwonaCondLight-Regular] [features=smallcaps]
+ \definefontsynonym [Iwona-CapsCondLight-Italic] [file:IwonaCondLight-Italic] [features=smallcaps]
+ \definefontsynonym [Iwona-CapsCondMedium-Regular][file:IwonaCondMedium-Regular] [features=smallcaps]
+ \definefontsynonym [Iwona-CapsCondMedium-Italic] [file:IwonaCondMedium-Italic] [features=smallcaps]
+ \definefontsynonym [Iwona-CapsCondHeavy-Regular] [file:IwonaCondHeavy-Regular] [features=smallcaps]
+ \definefontsynonym [Iwona-CapsCondHeavy-Italic] [file:IwonaCondHeavy-Italic] [features=smallcaps]
+
+\stoptypescript
+
+% [all] is redundant
+
+\starttypescript [math][iwona][all]
+ \definefontsynonym[MathRoman][iwonamath@iwona-math]
+\stoptypescript
+\starttypescript [math][iwona-light][all]
+ \definefontsynonym[MathRoman][iwonalightmath@iwona-light-math]
+\stoptypescript
+\starttypescript [math][iwona-medium][all]
+ \definefontsynonym[MathRoman][iwonamediummath@iwona-medium-math]
+\stoptypescript
+\starttypescript [math][iwona-heavy][all]
+ \definefontsynonym[MathRoman][iwonaheavymath@iwona-heavy-math]
+\stoptypescript
+
+\starttypescript [math] [iwona,iwona-light,iwona-medium,iwona-heavy] [all]
+ \loadmapfile[iwona-rm.map]
+ \loadmapfile[iwona-mi.map]
+ \loadmapfile[iwona-sy.map]
+ \loadmapfile[iwona-ex.map]
+\stoptypescript
+
+% Kurier (JMN) / no open type fonts
+
+\starttypescript [sans] [kurier-light,kurier,kurier-medium]
+ \definefontsynonym[Kurier-Light] [kurierl]
+ \definefontsynonym[Kurier-Regular] [kurierr]
+ \definefontsynonym[Kurier-Medium] [kurierm]
+ \definefontsynonym[Kurier-Bold] [kurierb]
+ \definefontsynonym[Kurier-Heavy] [kurierh]
+ \definefontsynonym[Kurier-LightItalic] [kurierli]
+ \definefontsynonym[Kurier-Italic] [kurierri]
+ \definefontsynonym[Kurier-MediumItalic] [kuriermi]
+ \definefontsynonym[Kurier-BoldItalic] [kurierbi]
+ \definefontsynonym[Kurier-HeavyItalic] [kurierhi]
+\stoptypescript
+
+\starttypescript [math] [kurier] [default]
+ \definefontsynonym [Kurier-Math-Letters-Regular] [rm-kurierr]
+ \definefontsynonym [Kurier-Math-Letters-Italic] [mi-kurierri]
+ \definefontsynonym [Kurier-Math-Symbols-Regular] [sy-kurierrz]
+ \definefontsynonym [Kurier-Math-Extension-Regular] [ex-kurierr]
+\stoptypescript
+
+\starttypescript [math] [kurier-light] [default]
+ \definefontsynonym [Kurier-Math-Letters-Light-Regular] [rm-kurierl]
+ \definefontsynonym [Kurier-Math-Letters-Light-Italic] [mi-kurierli]
+ \definefontsynonym [Kurier-Math-Symbols-Light] [sy-kurierlz]
+ \definefontsynonym [Kurier-Math-Extension-Light] [ex-kurierl]
+\stoptypescript
+
+\starttypescript [math] [kurier-medium] [default]
+ \definefontsynonym [Kurier-Math-Letters-Medium-Regular] [rm-kurierm]
+ \definefontsynonym [Kurier-Math-Letters-Medium-Italic] [mi-kuriermi]
+ \definefontsynonym [Kurier-Math-Symbols-Medium-Regular] [sy-kuriermz]
+ \definefontsynonym [Kurier-Math-Extension-Medium] [ex-kurierm]
+\stoptypescript
+
+\starttypescript [math] [kurier,kurier-light,kurier-medium] [default]
+ \loadmapfile[kurier-rm.map]
+ \loadmapfile[kurier-mi.map]
+ \loadmapfile[kurier-sy.map]
+ \loadmapfile[kurier-ex.map]
+\stoptypescript
+
+\starttypescript [iwona,iwona-light,iwona-medium,iwona-heavy]
+ \definetypeface[\typescriptone][ss][sans] [\typescriptone] [default]
+ \definetypeface[\typescriptone][rm][serif][modern] [default]
+ \definetypeface[\typescriptone][tt][mono] [modern] [default][rscale=1.05]
+ \definetypeface[\typescriptone][mm][math] [\typescriptone] [default][text=ss]
+ \quittypescriptscanning
+\stoptypescript
+
+% Whatever else we need:
+
+\starttypescript
+ \definefontsynonym [ZapfDingbats] [uzdr]
+ \definefontsynonym [RalfSmithFormalScript] [rsfs10]
+ \definefontsynonym [MartinVogel] [fmvr8x]
+\stoptypescript
+
+% Temp here
+
+\starttypescript [serif] [charter]
+ \definefontsynonym [Charter-Roman] [name:CharterBT-Roman] % or: [bchr8a]
+ \definefontsynonym [Charter-Italic] [name:CharterBT-Italic] % or: [bchri8a]
+ \definefontsynonym [Charter-Bold] [name:CharterBT-Bold] % or: [bchb8a]
+ \definefontsynonym [Charter-BoldItalic] [name:CharterBT-BoldItalic] % or: [bchbi8a]
+ \definefontsynonym [Charter-Slanted] [name:CharterBT-Italic] % or: [bchri8a]
+ \definefontsynonym [Charter-BoldSlanted] [name:CharterBT-BoldItalic] % or: [bchbi8a]
+ \definefontsynonym [Charter-Roman-Caps] [Charter-Roman] % not present
+\stoptypescript
+
+% new
+
+% cambria.ttc cambriab.ttf cambriai.ttf cambriaz.ttf
+
+\starttypescript [math] [cambria] [name]
+ \definefontsynonym [MathRoman] [name:cambriamath] [features=math\mathsizesuffix]
+\stoptypescript
+\starttypescript [math] [cambria-x] [name]
+ \definefontsynonym [MathRoman] [name:cambriamath] [features=math]
+\stoptypescript
+\starttypescript [math] [cambria-y] [name]
+ \definefontsynonym [MathRoman] [name:cambriamath] [features=math-nostack\mathsizesuffix]
+\stoptypescript
+
+\starttypescript [serif] [cambria] [name]
+ \usetypescript[fallback:serif]
+ \definefontsynonym [Serif] [name:cambria] [features=default]
+ \definefontsynonym [SerifBold] [name:cambriabold] [features=default]
+ \definefontsynonym [SerifItalic] [name:cambriaitalic] [features=default]
+ \definefontsynonym [SerifBoldItalic] [name:cambriabolditalic] [features=default]
+\stoptypescript
+
+\starttypescript [cambria]
+ \definetypeface [cambria] [rm] [serif] [cambria] [default]
+ \definetypeface [cambria] [tt] [mono] [modern] [default]
+ \definetypeface [cambria] [mm] [math] [cambria] [default]
+\stoptypescript
+
+\starttypescript [cambria-x]
+ \definetypeface [cambria-x] [rm] [serif] [cambria] [default]
+ \definetypeface [cambria-x] [tt] [mono] [modern] [default]
+ \definetypeface [cambria-x] [mm] [math] [cambria-x] [default]
+\stoptypescript
+
+\starttypescript [cambria-y]
+ \definetypeface [cambria-y] [rm] [serif] [cambria] [default]
+ \definetypeface [cambria-y] [tt] [mono] [modern] [default]
+ \definetypeface [cambria-y] [mm] [math] [cambria-y] [default]
+\stoptypescript
+
+% math times
+
+\starttypescript [math] [mathtimes] [all]
+ \definefontsynonym[MathRoman][mathtimes@mathtimes-math]
+ \loadmapfile[mathtime.map]
+\stoptypescript
+
+\starttypescript [mathtimes]
+ \definetypeface [mathtimes] [rm] [serif] [times] [default]
+ \definetypeface [mathtimes] [ss] [sans] [helvetica] [default] [rscale=0.9]
+ \definetypeface [mathtimes] [tt] [mono] [modern] [default] [rscale=1.05]
+ \definetypeface [mathtimes] [mm] [math] [mathtimes] [default]
+ \quittypescriptscanning
+\stoptypescript
+
+% lucida
+
+\starttypescript [math] [lucida,lucidanewmath] [all]
+ \definefontsynonym[MathRoman][lucidamath@lucida-math]
+ \loadmapfile[lucida.map]
+\stoptypescript
+
+% mathdesign
+
+\starttypescript [math] [charter,mathdesignch] [all]
+ \definefontsynonym[MathRoman][chartermath@charter-math]
+ \loadmapfile[mdbch.map]
+\stoptypescript
+
+\starttypescript [math] [garamond,mathdesigngm] [all]
+ \definefontsynonym[MathRoman][garamondmath@garamond-math]
+ \loadmapfile[mdugm.map]
+\stoptypescript
+
+\starttypescript [math] [utopia,mathdesignut] [all]
+ \definefontsynonym[MathRoman][utopiamath@utopia-math]
+ \loadmapfile[mdput.map]
+\stoptypescript
+
+\stoptypescriptcollection
+
+\endinput
diff --git a/Master/texmf-dist/tex/context/base/type-otf.tex b/Master/texmf-dist/tex/context/base/type-otf.tex
index acc21c3c223..720ffbaf93d 100644
--- a/Master/texmf-dist/tex/context/base/type-otf.tex
+++ b/Master/texmf-dist/tex/context/base/type-otf.tex
@@ -26,6 +26,16 @@
\quittypescriptscanning
\stoptypescript
+% faster
+%
+% \starttypescript [fallback]
+% \definetypeface [] [rm] [serif] [modern] [default]
+% \definetypeface [] [ss] [sans] [modern] [default]
+% \definetypeface [] [tt] [mono] [modern] [default]
+% \definetypeface [] [mm] [math] [modern] [default]
+% \quittypescriptscanning
+% \stoptypescript
+
\starttypescript [modern]
\definetypeface [modern] [rm] [serif] [modern] [computer-modern]
\definetypeface [modern] [ss] [sans] [modern] [computer-modern]
@@ -44,24 +54,25 @@
\starttypescript [postscript]
\definetypeface [postscript] [rm] [serif] [times] [default]
- \definetypeface [postscript] [ss] [sans] [helvetica] [default] [rscale=.9]
+ \definetypeface [postscript] [ss] [sans] [helvetica] [default] [rscale=0.9]
\definetypeface [postscript] [tt] [mono] [courier] [default] [rscale=1.1]
\definetypeface [postscript] [mm] [math] [times] [default]
\quittypescriptscanning
\stoptypescript
-\starttypescript [times]
- \definetypeface [times] [rm] [serif] [times] [default]
- \definetypeface [times] [ss] [sans] [helvetica] [default] [rscale=0.9]
- \definetypeface [times] [tt] [mono] [modern] [default] [rscale=1.05]
- \definetypeface [times] [mm] [math] [times] [default]
+\starttypescript [times,termes]
+ \definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default]
+ \definetypeface [\typescriptone] [ss] [sans] [helvetica] [default] [rscale=0.9]
+ \definetypeface [\typescriptone] [tt] [mono] [modern] [default] [rscale=1.05]
+ \definetypeface [\typescriptone] [mm] [math] [times] [default]
\quittypescriptscanning
\stoptypescript
-\starttypescript [palatino]
- \definetypeface [palatino] [rm] [serif] [palatino] [default]
- \definetypeface [palatino] [tt] [mono] [modern] [default] [rscale=1.075]
- \definetypeface [palatino] [mm] [math] [palatino] [default]
+\starttypescript [palatino,pagella]
+ \definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default]
+ \definetypeface [\typescriptone] [ss] [sans] [modern] [default] [rscale=1.075]
+ \definetypeface [\typescriptone] [tt] [mono] [modern] [default] [rscale=1.075]
+ \definetypeface [\typescriptone] [mm] [math] [palatino] [default]
\quittypescriptscanning
\stoptypescript
@@ -81,687 +92,64 @@
\quittypescriptscanning
\stoptypescript
-\starttypescript [iwona,iwona-light,iwona-heavy,iwona-medium]
- \definetypeface[\typescriptone][ss][sans] [\typescriptone] [default]
- \definetypeface[\typescriptone][rm][serif][modern] [default]
- \definetypeface[\typescriptone][tt][mono] [modern] [default]
- \definetypeface[\typescriptone][mm][math] [\typescriptone] [default][text=ss]
+\starttypescript [schoolbook,schola]
+ \definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default]
+ \definetypeface [\typescriptone] [ss] [sans] [modern] [default]
+ \definetypeface [\typescriptone] [tt] [mono] [modern] [default]
+ \definetypeface [\typescriptone] [mm] [math] [modern] [default]
\quittypescriptscanning
\stoptypescript
-\stoptypescriptcollection
-
-% if a fontname equals the filename, then use
-%
-% \setupfontsynonym [LMRoman10-DemiOblique] [features=default] % file is lowercase, so fails
-% \definefontsynonym [LMRoman10-DemiOblique] [name:LMRoman10-DemiOblique] [features=default]
-% \definefontsynonym [LMRoman10-DemiOblique] [lmroman10-demioblique] [features=default]
-
-\starttypescriptcollection[opentype]
-
-%D The names have changed (again) ... but I will not change the symbolic names
-%D any more. Filename changes will be catched in luatex (fallbacks) but not in
-%D other tex's.
-
-\starttypescript [serif] [modern,latin-modern]
- \definefontsynonym [LMRoman5-Regular] [file:lmroman5-regular] [features=default]
- \definefontsynonym [LMRoman6-Regular] [file:lmroman6-regular] [features=default]
- \definefontsynonym [LMRoman7-Regular] [file:lmroman7-regular] [features=default]
- \definefontsynonym [LMRoman8-Regular] [file:lmroman8-regular] [features=default]
- \definefontsynonym [LMRoman9-Regular] [file:lmroman9-regular] [features=default]
- \definefontsynonym [LMRoman10-Regular] [file:lmroman10-regular] [features=default]
- \definefontsynonym [LMRoman12-Regular] [file:lmroman12-regular] [features=default]
- \definefontsynonym [LMRoman17-Regular] [file:lmroman17-regular] [features=default]
- \definefontsynonym [LMRoman5-Bold] [file:lmroman5-bold] [features=default]
- \definefontsynonym [LMRoman6-Bold] [file:lmroman6-bold] [features=default]
- \definefontsynonym [LMRoman7-Bold] [file:lmroman7-bold] [features=default]
- \definefontsynonym [LMRoman8-Bold] [file:lmroman8-bold] [features=default]
- \definefontsynonym [LMRoman9-Bold] [file:lmroman9-bold] [features=default]
- \definefontsynonym [LMRoman10-Bold] [file:lmroman10-bold] [features=default]
- \definefontsynonym [LMRoman12-Bold] [file:lmroman12-bold] [features=default]
- \definefontsynonym [LMRoman7-Italic] [file:lmroman7-italic] [features=default]
- \definefontsynonym [LMRoman8-Italic] [file:lmroman8-italic] [features=default]
- \definefontsynonym [LMRoman9-Italic] [file:lmroman9-italic] [features=default]
- \definefontsynonym [LMRoman10-Italic] [file:lmroman10-italic] [features=default]
- \definefontsynonym [LMRoman12-Italic] [file:lmroman12-italic] [features=default]
- \definefontsynonym [LMRoman10-BoldItalic] [file:lmroman10-bolditalic] [features=default]
- \definefontsynonym [LMRoman8-Oblique] [file:lmromanslant8-regular] [features=default]
- \definefontsynonym [LMRoman9-Oblique] [file:lmromanslant9-regular] [features=default]
- \definefontsynonym [LMRoman10-Oblique] [file:lmromanslant10-regular][features=default]
- \definefontsynonym [LMRoman12-Oblique] [file:lmromanslant12-regular][features=default]
- \definefontsynonym [LMRoman17-Oblique] [file:lmromanslant17-regular][features=default]
- \definefontsynonym [LMRoman10-BoldOblique] [file:lmromanslant10-bold] [features=default]
- \definefontsynonym [LMRoman10-Demi] [file:lmromandemi10-regular] [features=default]
- \definefontsynonym [LMRoman10-DemiOblique] [file:lmromandemi10-oblique] [features=default]
- \definefontsynonym [LMRoman10-CapsRegular] [file:lmromancaps10-regular] [features=default] % features=smallcaps?
- \definefontsynonym [LMRoman10-CapsOblique] [file:lmromancaps10-oblique] [features=default]
-
- \definefontsynonym [LMRoman10-Dunhill] [file:lmromandunh10-regular] [features=default]
- \definefontsynonym [LMRoman10-DunhillOblique] [file:lmromandunh10-oblique] [features=default]
- \definefontsynonym [LMRoman10-Unslanted] [file:lmromanunsl10-regular] [features=default]
-\stoptypescript
-
-\starttypescript [sans] [modern,latin-modern]
- \definefontsynonym [LMSans8-Regular] [file:lmsans8-regular] [features=default]
- \definefontsynonym [LMSans9-Regular] [file:lmsans9-regular] [features=default]
- \definefontsynonym [LMSans10-Regular] [file:lmsans10-regular] [features=default]
- \definefontsynonym [LMSans12-Regular] [file:lmsans12-regular] [features=default]
- \definefontsynonym [LMSans17-Regular] [file:lmsans17-regular] [features=default]
- \definefontsynonym [LMSans10-Bold] [file:lmsans10-bold] [features=default]
- \definefontsynonym [LMSans8-Oblique] [file:lmsans8-oblique] [features=default]
- \definefontsynonym [LMSans9-Oblique] [file:lmsans9-oblique] [features=default]
- \definefontsynonym [LMSans10-Oblique] [file:lmsans10-oblique] [features=default]
- \definefontsynonym [LMSans12-Oblique] [file:lmsans12-oblique] [features=default]
- \definefontsynonym [LMSans17-Oblique] [file:lmsans17-oblique] [features=default]
- \definefontsynonym [LMSans10-BoldOblique] [file:lmsans10-boldoblique] [features=default]
-
- \definefontsynonym [LMSans10-DemiCondensed] [file:lmsansdemicond10-regular] [features=default]
- \definefontsynonym [LMSans10-DemiCondensedOblique] [file:lmsansdemicond10-oblique] [features=default]
-
- \definefontsynonym [LMSansQuotation8-Regular] [file:lmsansquot8-regular] [features=default]
- \definefontsynonym [LMSansQuotation8-Bold] [file:lmsansquot8-bold] [features=default]
- \definefontsynonym [LMSansQuotation8-Oblique] [file:lmsansquot8-oblique] [features=default]
- \definefontsynonym [LMSansQuotation8-BoldOblique] [file:lmsansquot8-boldoblique] [features=default]
-\stoptypescript
-
-\starttypescript [mono] [modern,latin-modern,modern-vari,latin-modern-vari,modern-cond,latin-modern-cond]
- \definefontsynonym [LMTypewriter8-Regular] [file:lmmono8-regular]
- \definefontsynonym [LMTypewriter9-Regular] [file:lmmono9-regular]
- \definefontsynonym [LMTypewriter10-Regular] [file:lmmono10-regular]
- \definefontsynonym [LMTypewriter12-Regular] [file:lmmono12-regular]
- \definefontsynonym [LMTypewriter10-Italic] [file:lmmono10-italic]
- \definefontsynonym [LMTypewriter10-Oblique] [file:lmmonoslant10-regular]
- \definefontsynonym [LMTypewriter10-CapsRegular] [file:lmmonocaps10-regular] % features=smallcaps?
- \definefontsynonym [LMTypewriter10-CapsOblique] [file:lmmonocaps10-oblique]
-
- \definefontsynonym [LMTypewriter10-Light] [file:lmmonolt10-regular]
- \definefontsynonym [LMTypewriter10-LightOblique] [file:lmmonolt10-oblique]
- \definefontsynonym [LMTypewriter10-LightCondensed] [file:lmmonoltcond10-regular]
- \definefontsynonym [LMTypewriter10-LightCondensedOblique] [file:lmmonoltcond10-oblique]
-
- \definefontsynonym [LMTypewriter10-Dark] [file:lmmonolt10-bold]
- \definefontsynonym [LMTypewriter10-DarkOblique] [file:lmmonolt10-boldoblique]
-
- \definefontsynonym [LMTypewriterVarWd10-Regular] [file:lmmonoproplt10-regular] [features=default]
- \definefontsynonym [LMTypewriterVarWd10-Oblique] [file:lmmonoproplt10-oblique] [features=default]
- \definefontsynonym [LMTypewriterVarWd10-Light] [file:lmmonoprop10-regular] [features=default]
- \definefontsynonym [LMTypewriterVarWd10-LightOblique] [file:lmmonoprop10-oblique] [features=default]
- \definefontsynonym [LMTypewriterVarWd10-Dark] [file:lmmonoproplt10-bold] [features=default]
- \definefontsynonym [LMTypewriterVarWd10-DarkOblique] [file:lmmonoproplt10-boldoblique] [features=default]
-\stoptypescript
-
-\starttypescript [math] [modern,latin-modern]
- \definefontsynonym [LMMathRoman5-Regular] [rm-lmr5]
- \definefontsynonym [LMMathRoman6-Regular] [rm-lmr6]
- \definefontsynonym [LMMathRoman7-Regular] [rm-lmr7]
- \definefontsynonym [LMMathRoman8-Regular] [rm-lmr8]
- \definefontsynonym [LMMathRoman9-Regular] [rm-lmr9]
- \definefontsynonym [LMMathRoman10-Regular] [rm-lmr10]
- \definefontsynonym [LMMathRoman12-Regular] [rm-lmr12]
- \definefontsynonym [LMMathRoman17-Regular] [rm-lmr17]
- \definefontsynonym [LMMathRoman5-Bold] [rm-lmbx5]
- \definefontsynonym [LMMathRoman6-Bold] [rm-lmbx6]
- \definefontsynonym [LMMathRoman7-Bold] [rm-lmbx7]
- \definefontsynonym [LMMathRoman8-Bold] [rm-lmbx8]
- \definefontsynonym [LMMathRoman9-Bold] [rm-lmbx9]
- \definefontsynonym [LMMathRoman10-Bold] [rm-lmbx10]
- \definefontsynonym [LMMathRoman12-Bold] [rm-lmbx12]
- \definefontsynonym [LMMathSymbols5-BoldItalic] [lmbsy5]
- \definefontsynonym [LMMathSymbols7-BoldItalic] [lmbsy7]
- \definefontsynonym [LMMathSymbols10-BoldItalic][lmbsy10]
- \definefontsynonym [LMMathSymbols5-Italic] [lmsy5]
- \definefontsynonym [LMMathSymbols6-Italic] [lmsy6]
- \definefontsynonym [LMMathSymbols7-Italic] [lmsy7]
- \definefontsynonym [LMMathSymbols8-Italic] [lmsy8]
- \definefontsynonym [LMMathSymbols9-Italic] [lmsy9]
- \definefontsynonym [LMMathSymbols10-Italic] [lmsy10]
- \definefontsynonym [LMMathExtension10-Regular] [lmex10]
- \definefontsynonym [LMMathItalic5-Italic] [lmmi5]
- \definefontsynonym [LMMathItalic6-Italic] [lmmi6]
- \definefontsynonym [LMMathItalic7-Italic] [lmmi7]
- \definefontsynonym [LMMathItalic8-Italic] [lmmi8]
- \definefontsynonym [LMMathItalic9-Italic] [lmmi9]
- \definefontsynonym [LMMathItalic10-Italic] [lmmi10]
- \definefontsynonym [LMMathItalic12-Italic] [lmmi12]
- \definefontsynonym [LMMathItalic5-BoldItalic] [lmmib5]
- \definefontsynonym [LMMathItalic7-BoldItalic] [lmmib7]
- \definefontsynonym [LMMathItalic10-BoldItalic] [lmmib10]
-
- \loadmapfile[lm-math.map]
- \loadmapfile[lm-rm.map]
-\stoptypescript
-
-\starttypescript [math] [modern,computer-modern,latin-modern]
- % watch the space, it prevents remapping
- \definefontsynonym [ComputerModernMath-Roman] [rm-lmr10]
- \definefontsynonym [ComputerModernMath-Extension] [lmex10]
- \definefontsynonym [ComputerModernMath-Italic] [lmmi10]
- \definefontsynonym [ComputerModernMath-Symbol] [lmsy10]
-\stoptypescript
-
-\starttypescript [boldmath,bfmath] [modern,computer-modern,latin-modern]
- % watch the space, it prevents remapping
- \definefontsynonym [ComputerModernMath-Roman-Bold] [rm-lmb10]
- \definefontsynonym [ComputerModernMath-Extension] [lmex10]
- \definefontsynonym [ComputerModernMath-Italic-Bold] [lmmib10]
- \definefontsynonym [ComputerModernMath-Symbol-Bold] [lmbsy10]
-\stoptypescript
-
-% Computer Concrete (AMS)
-
-\starttypescript [serif] [concrete]
- \definefontsynonym [ComputerConcrete] [ccr10]
- \definefontsynonym [ComputerConcrete-Italic] [ccti10]
- \definefontsynonym [ComputerConcrete-Slanted] [ccsl10]
- \definefontsynonym [ComputerConcrete-Bold] [ComputerConcrete]
- \definefontsynonym [ComputerConcrete-BoldItalic] [ComputerConcrete-Italic]
- \definefontsynonym [ComputerConcrete-BoldSlanted] [ComputerConcrete-Slanted]
- \definefontsynonym [ComputerConcrete-Caps] [cccsc10]
-\stoptypescript
-
-% Euler (AMS)
-
-\starttypescript [math] [euler]
- \definefontsynonym [Euler-Roman] [zeurm10]
- \definefontsynonym [Euler-Extension] [zeuex10]
- \definefontsynonym [Euler-Symbol] [zeusm10]
- \definefontsynonym [Euler-Fraktur] [eufm10]
-
- \loadmapfile[original-ams-euler.map]
-\stoptypescript
-
-\starttypescript [boldmath,bfmath] [euler]
- \definefontsynonym [Euler-Roman-Bold] [zeurb10]
- \definefontsynonym [Euler-Extension] [zeuex10]
- \definefontsynonym [Euler-Symbol-Bold] [zeusb10]
- \definefontsynonym [Euler-Fraktur-Bold] [eufb10]
-
- \loadmapfile[original-ams-euler.map]
-\stoptypescript
-
-% AMS (AMS)
-
-\starttypescript [math] [modern,computer-modern,latin-modern,ams]
- \definefontsynonym [AMS-SymbolA] [msam10]
- \definefontsynonym [AMS-SymbolB] [msbm10]
-\stoptypescript
-
-% TeXGyre
-
-\definetypescriptprefix [n:pagella] [TeXGyrePagella] \definetypescriptprefix [f:pagella] [pagella]
-\definetypescriptprefix [n:termes] [TeXGyreTermes] \definetypescriptprefix [f:termes] [termes]
-\definetypescriptprefix [n:heros] [TeXGyreHeros] \definetypescriptprefix [f:heros] [heros]
-\definetypescriptprefix [n:bonum] [TeXGyreBonum] \definetypescriptprefix [f:bonum] [bonum]
-\definetypescriptprefix [n:schola] [TeXGyreSchola] \definetypescriptprefix [f:schola] [schola]
-\definetypescriptprefix [n:adventor][TeXGyreAdventor] \definetypescriptprefix [f:adventor][adventor]
-\definetypescriptprefix [n:cursor] [TeXGyreCursor] \definetypescriptprefix [f:cursor] [cursor]
-\definetypescriptprefix [n:chorus] [TeXGyreChorus] \definetypescriptprefix [f:chorus] [chorus] % not the full set
-
-\starttypescript [serif] [adventor,bonum,cursor,heros,pagella,schola,termes]
- \definefontsynonym [\typescriptprefix{n:\typescripttwo}-Regular] [file:texgyre\typescriptprefix{f:\typescripttwo}-regular] [features=default]
- \definefontsynonym [\typescriptprefix{n:\typescripttwo}-Italic] [file:texgyre\typescriptprefix{f:\typescripttwo}-italic] [features=default]
- \definefontsynonym [\typescriptprefix{n:\typescripttwo}-Bold] [file:texgyre\typescriptprefix{f:\typescripttwo}-bold] [features=default]
- \definefontsynonym [\typescriptprefix{n:\typescripttwo}-BoldItalic] [file:texgyre\typescriptprefix{f:\typescripttwo}-bolditalic] [features=default]
- \definefontsynonym [\typescriptprefix{n:\typescripttwo}-Caps] [file:texgyre\typescriptprefix{f:\typescripttwo}-regular] [features=oldstyle]
- \definefontsynonym [\typescriptprefix{n:\typescripttwo}-ItalicCaps] [file:texgyre\typescriptprefix{f:\typescripttwo}-italic] [features=oldstyle]
- \definefontsynonym [\typescriptprefix{n:\typescripttwo}-BoldCaps] [file:texgyre\typescriptprefix{f:\typescripttwo}-bold] [features=oldstyle]
- \definefontsynonym [\typescriptprefix{n:\typescripttwo}-BoldItalicCaps] [file:texgyre\typescriptprefix{f:\typescripttwo}-bolditalic] [features=oldstyle]
- \definefontsynonym [\typescriptprefix{n:\typescripttwo}-Slanted] [\typescriptprefix{n:\typescripttwo}-Italic] [features=default]
- \definefontsynonym [\typescriptprefix{n:\typescripttwo}-BoldSlanted] [\typescriptprefix{n:\typescripttwo}-BoldItalic] [features=default]
-\stoptypescript
-
-\starttypescript [serif] [pagella,termes,bonum,schola,chorus] [name]
- \definefontsynonym [Serif] [\typescriptprefix{n:\typescripttwo}-Regular] [features=default]
- \definefontsynonym [SerifItalic] [\typescriptprefix{n:\typescripttwo}-Italic] [features=default]
- \definefontsynonym [SerifBold] [\typescriptprefix{n:\typescripttwo}-Bold] [features=default]
- \definefontsynonym [SerifBoldItalic] [\typescriptprefix{n:\typescripttwo}-BoldItalic] [features=default]
- \definefontsynonym [SerifCaps] [\typescriptprefix{n:\typescripttwo}-Caps] [features=smallcaps]
- \definefontsynonym [SerifSlanted] [\typescriptprefix{n:\typescripttwo}-Slanted] [features=default]
- \definefontsynonym [SerifBoldSlanted] [\typescriptprefix{n:\typescripttwo}-BoldSlanted] [features=default]
-
- \definefontvariant [Serif][osf][Caps]
- \definefontvariant [Serif][sc] [Caps]
-
- \definefontsynonym [SerifRegular] [\typescriptprefix{n:\typescripttwo}-Regular] [features=default]
- \definefontsynonym [SerifRegularCaps] [\typescriptprefix{n:\typescripttwo}-Caps] [features=smallcaps]
- \definefontsynonym [SerifItalicCaps] [\typescriptprefix{n:\typescripttwo}-ItalicCaps] [features=smallcaps]
- \definefontsynonym [SerifBoldCaps] [\typescriptprefix{n:\typescripttwo}-BoldCaps] [features=smallcaps]
- \definefontsynonym [SerifBoldItalicCaps] [\typescriptprefix{n:\typescripttwo}-BoldItalicCaps] [features=smallcaps]
- \definefontsynonym [SerifCapsCaps] [\typescriptprefix{n:\typescripttwo}-Caps] [features=smallcaps]
- \definefontsynonym [SerifSlantedCaps] [\typescriptprefix{n:\typescripttwo}-ItalicCaps] [features=smallcaps]
- \definefontsynonym [SerifBoldSlantedCaps] [\typescriptprefix{n:\typescripttwo}-BoldItalicCaps] [features=smallcaps]
-\stoptypescript
-
-\starttypescript [sans] [heros,adventor] [name]
- \definefontsynonym [Sans] [\typescriptprefix{n:\typescripttwo}-Regular] [features=default]
- \definefontsynonym [SansItalic] [\typescriptprefix{n:\typescripttwo}-Italic] [features=default]
- \definefontsynonym [SansBold] [\typescriptprefix{n:\typescripttwo}-Bold] [features=default]
- \definefontsynonym [SansBoldItalic] [\typescriptprefix{n:\typescripttwo}-BoldItalic] [features=default]
- \definefontsynonym [SansCaps] [\typescriptprefix{n:\typescripttwo}-Caps] [features=smallcaps]
- \definefontsynonym [SansSlanted] [\typescriptprefix{n:\typescripttwo}-Slanted] [features=default]
- \definefontsynonym [SansBoldSlanted] [\typescriptprefix{n:\typescripttwo}-BoldSlanted] [features=default]
-
- \definefontvariant [Sans][osf][Caps]
- \definefontvariant [Sans][sc] [Caps]
-
- \definefontsynonym [SansRegular] [\typescriptprefix{n:\typescripttwo}-Regular] [features=default]
- \definefontsynonym [SansRegularCaps] [\typescriptprefix{n:\typescripttwo}-Caps] [features=smallcaps]
- \definefontsynonym [SansItalicCaps] [\typescriptprefix{n:\typescripttwo}-ItalicCaps] [features=smallcaps]
- \definefontsynonym [SansBoldCaps] [\typescriptprefix{n:\typescripttwo}-BoldCaps] [features=smallcaps]
- \definefontsynonym [SansBoldItalicCaps] [\typescriptprefix{n:\typescripttwo}-BoldItalicCaps] [features=smallcaps]
- \definefontsynonym [SansCapsCaps] [\typescriptprefix{n:\typescripttwo}-Caps] [features=smallcaps]
- \definefontsynonym [SansSlantedCaps] [\typescriptprefix{n:\typescripttwo}-ItalicCaps] [features=smallcaps]
- \definefontsynonym [SansBoldSlantedCaps] [\typescriptprefix{n:\typescripttwo}-BoldItalicCaps] [features=smallcaps]
-\stoptypescript
-
-\starttypescript [sans] [cursor] [name]
- \definefontsynonym [Mono] [\typescriptprefix{n:\typescripttwo}-Regular]
- \definefontsynonym [MonoItalic] [\typescriptprefix{n:\typescripttwo}-Italic]
- \definefontsynonym [MonoBold] [\typescriptprefix{n:\typescripttwo}-Bold]
- \definefontsynonym [MonoBoldItalic] [\typescriptprefix{n:\typescripttwo}-BoldItalic]
- \definefontsynonym [MonoSlanted] [MonoItalic]
- \definefontsynonym [MonoBoldSlanted] [MonoBoldItalic]
-\stoptypescript
-
-%D Here we overload the older (URW) fonts.
-
-% TeXGyrePagella
-%
-% qplr TeXGyrePagella-Regular
-% qplri TeXGyrePagella-Italic
-% qplb TeXGyrePagella-Bold
-% qplbi TeXGyrePagella-BoldItalic
-
-\starttypescript [serif] [palatino,pagella]
- \definefontsynonym [Palatino] [file:texgyrepagella-regular] [features=default]
- \definefontsynonym [Palatino-Italic] [file:texgyrepagella-italic] [features=default]
- \definefontsynonym [Palatino-Bold] [file:texgyrepagella-bold] [features=default]
- \definefontsynonym [Palatino-BoldItalic] [file:texgyrepagella-bolditalic] [features=default]
- \definefontsynonym [Palatino-Caps] [file:texgyrepagella-regular] [features=smallcaps]
- \definefontsynonym [Palatino-Slanted] [Palatino-Italic]
- \definefontsynonym [Palatino-BoldSlanted] [Palatino-BoldItalic]
-\stoptypescript
-
-% TeXGyreTermes
-%
-% qtmr TeXGyreTermes-Regular
-% qtmri TeXGyreTermes-Italic
-% qtmb TeXGyreTermes-Bold
-% qtmbi TeXGyreTermes-BoldItalic
-
-\starttypescript [serif] [times]
- \definefontsynonym [Times-Roman] [file:texgyretermes-regular] [features=default]
- \definefontsynonym [Times-Italic] [file:texgyretermes-italic] [features=default]
- \definefontsynonym [Times-Bold] [file:texgyretermes-bold] [features=default]
- \definefontsynonym [Times-BoldItalic] [file:texgyretermes-bolditalic] [features=default]
- \definefontsynonym [Times-Caps] [file:texgyretermes-regular] [features=smallcaps]
- \definefontsynonym [Times-Slanted] [Times-Italic]
- \definefontsynonym [Times-BoldSlanted] [Times-BoldItalic]
-\stoptypescript
-
-% TeXGyreHeros
-%
-% qtmr TeXGyreHeros-Regular
-% qtmri TeXGyreHeros-Italic
-% qtmb TeXGyreHeros-Bold
-% qtmbi TeXGyreHeros-BoldItalic
-
-\starttypescript [sans] [helvetica]
- \definefontsynonym [Helvetica] [file:texgyreheros-regular] [features=default]
- \definefontsynonym [Helvetica-Oblique] [file:texgyreheros-italic] [features=default]
- \definefontsynonym [Helvetica-Bold] [file:texgyreheros-bold] [features=default]
- \definefontsynonym [Helvetica-BoldOblique] [file:texgyreheros-bolditalic] [features=default]
- \definefontsynonym [Helvetica-Caps] [file:texgyreheros-regular] [features=smallcaps]
-\stoptypescript
-
-% TeXGyreBonum
-%
-% qtmr TeXGyreBonum-Regular
-% qtmri TeXGyreBonum-Italic
-% qtmb TeXGyreBonum-Bold
-% qtmbi TeXGyreBonum-BoldItalic
-
-\starttypescript [serif] [bookman]
- \definefontsynonym [Bookman-Light] [file:texgyrebonum-regular] [features=default]
- \definefontsynonym [Bookman-LightItalic] [file:texgyrebonum-italic] [features=default]
- \definefontsynonym [Bookman-DemiBold] [file:texgyrebonum-bold] [features=default]
- \definefontsynonym [Bookman-DemiBoldItalic] [file:texgyrebonum-bolditalic] [features=default]
- \definefontsynonym [Bookman-Light-Caps] [file:texgyrebonum-regular] [features=smallcaps]
- \definefontsynonym [Bookman-LightSlanted] [Bookman-LightItalic] [features=default]
- \definefontsynonym [Bookman-DemiBoldSlanted] [Bookman-DemiBoldItalic] [features=default]
-\stoptypescript
-
-% TeXGyreScola
-%
-% qcsr TeXGyreSchola-Regular
-% qcsri TeXGyreSchola-Italic
-% qcsb TeXGyreSchola-Bold
-% qcsbi TeXGyreSchola-BoldItalic
-
-\starttypescript [serif] [schoolbook]
- \definefontsynonym [Schoolbook-Roman] [file:texgyreschola-regular] [features=default]
- \definefontsynonym [Schoolbook-Italic] [file:texgyreschola-italic] [features=default]
- \definefontsynonym [Schoolbook-Bold] [file:texgyreschola-bold] [features=default]
- \definefontsynonym [Schoolbook-BoldItalic] [file:texgyreschola-bolditalic] [features=default]
- \definefontsynonym [Schoolbook-Roman-Caps] [file:texgyreschola-regular] [features=smallcaps]
- \definefontsynonym [Schoolbook-Slanted] [Schoolbook-Italic] [features=default]
- \definefontsynonym [Schoolbook-BoldSlanted] [Schoolbook-BoldItalic] [features=default]
-\stoptypescript
-
-% TeXGyreAdventor
-%
-% qagr TeXGyreAdventor-Regular
-% qagri TeXGyreAdventor-Italic
-% qagb TeXGyreAdventor-Bold
-% qagbi TeXGyreAdventor-BoldItalic
-
-% TeXGyreCursor
-%
-% crgr TeXGyreCursor-Regular
-% crgri TeXGyreCursor-Italic
-% crgb TeXGyreCursor-Bold
-% crgbi TeXGyreCursor-BoldItalic
-
-\starttypescript [mono] [courier] [name]
- \definefontsynonym [Courier] [file:texgyrecursor-regular] [features=default]
- \definefontsynonym [Courier-Bold] [file:texgyrecursor-bold] [features=default]
- \definefontsynonym [Courier-Oblique] [file:texgyrecursor-italic] [features=default]
- \definefontsynonym [Courier-BoldOblique] [file:texgyrecursor-bolditalic] [features=default]
- \fakecontrolspace
-\stoptypescript
-
-% TeXGyreChorus
-%
-% qzcr TeXGyreChorus-Regular
-
-\starttypescript [calligraphy] [chancery]
- \definefontsynonym [Chancery] [file:texgyrechorus-mediumitalic] [features=default]
- \definefontsynonym [texgyrechorus-regular] [file:texgyrechorus-mediumitalic]
-\stoptypescript
-
-% Math Times (tx)
-
-\starttypescript [math] [times] [all]
- \definefontsynonym [Times-Roman-Upright] [txr]
- \definefontsynonym [Times-Roman-Italic] [txi]
- \definefontsynonym [Times-Roman-Slanted] [txsl]
- \definefontsynonym [Times-Roman-Caps] [txsc]
- \definefontsynonym [Times-Companion-Upright] [tcxr]
- \definefontsynonym [Times-Companion-Italic] [tcxi]
- \definefontsynonym [Times-Companion-Slanted] [tcxsl]
- \definefontsynonym [Times-Math-Italic] [txmi]
- \definefontsynonym [Times-Math-Symbols] [txsy]
- \definefontsynonym [Times-Math-Extension] [txex]
- \definefontsynonym [Times-Math-SymbolsA] [txsya]
- \definefontsynonym [Times-Math-SymbolsB] [txsyb]
- \definefontsynonym [Times-Math-SymbolsC] [txsyc]
- \definefontsynonym [Times-Math-Italic-A] [txmia]
- \definefontsynonym [Times-Math-Extension-A] [txexa]
-
- \loadmapfile[original-youngryu-tx.map]
- \usemathcollection[default]
-\stoptypescript
-
-% Palatino Math (PX)
-
-\starttypescript [math] [palatino] [all]
- \definefontsynonym [Palatino-Roman-Upright] [pxr]
- \definefontsynonym [Palatino-Roman-Italic] [pxi]
- \definefontsynonym [Palatino-Roman-Slanted] [pxsl]
- \definefontsynonym [Palatino-Roman-Caps] [pxsc]
- \definefontsynonym [Palatino-Companion-Upright] [pcxr]
- \definefontsynonym [Palatino-Companion-Italic] [pcxi]
- \definefontsynonym [Palatino-Companion-Slanted] [pcxsl]
- \definefontsynonym [Palatino-Math-Italic] [pxmi]
- \definefontsynonym [Palatino-Math-Symbols] [pxsy]
- \definefontsynonym [Palatino-Math-Extension] [pxex]
- \definefontsynonym [Palatino-Math-SymbolsA] [pxsya]
- \definefontsynonym [Palatino-Math-SymbolsB] [pxsyb]
- \definefontsynonym [Palatino-Math-SymbolsC] [pxsyc]
- \definefontsynonym [Palatino-Math-Italic-A] [pxmia]
- \definefontsynonym [Palatino-Math-Extension-A] [pxexa]
-
- \loadmapfile[original-youngryu-px.map]
- \usemathcollection[default]
-\stoptypescript
-
-% Antykwa Torunska (GUST)
-
-\starttypescript [serif] [antykwa-torunska,antykwa-torunska-light,antykwa-torunska-cond,antykwa-torunska-lightcond]
- \definefontsynonym [AntykwaTorunska-Regular] [file:AntykwaTorunska-Regular] [features=default]
- \definefontsynonym [AntykwaTorunska-Italic] [file:AntykwaTorunska-Italic] [features=default]
- \definefontsynonym [AntykwaTorunska-Bold] [file:AntykwaTorunska-Bold] [features=default]
- \definefontsynonym [AntykwaTorunska-BoldItalic] [file:AntykwaTorunska-BoldItalic] [features=default]
- \definefontsynonym [AntykwaTorunska-Light] [file:AntykwaTorunskaLight-Regular] [features=default]
- \definefontsynonym [AntykwaTorunska-LightItalic] [file:AntykwaTorunskaLight-Italic] [features=default]
- \definefontsynonym [AntykwaTorunska-Medium] [file:AntykwaTorunskaMed-Regular] [features=default]
- \definefontsynonym [AntykwaTorunska-MedItalic] [file:AntykwaTorunskaMed-Italic] [features=default]
- \definefontsynonym [AntykwaTorunska-CondRegular] [file:AntykwaTorunskaCond-Regular] [features=default]
- \definefontsynonym [AntykwaTorunska-CondItalic] [file:AntykwaTorunskaCond-Italic] [features=default]
- \definefontsynonym [AntykwaTorunska-CondBold] [file:AntykwaTorunskaCond-Bold] [features=default]
- \definefontsynonym [AntykwaTorunska-CondBoldItalic] [file:AntykwaTorunskaCond-BoldItalic] [features=default]
- \definefontsynonym [AntykwaTorunska-CondLight] [file:AntykwaTorunskaCondLight-Regular] [features=default]
- \definefontsynonym [AntykwaTorunska-CondLightItalic] [file:AntykwaTorunskaCondLight-Italic] [features=default]
- \definefontsynonym [AntykwaTorunska-CondMedium] [file:AntykwaTorunskaCondMed-Regular] [features=default]
- \definefontsynonym [AntykwaTorunska-CondMedItalic] [file:AntykwaTorunskaCondMed-Italic] [features=default]
-
- \definefontsynonym [AntykwaTorunska-Cap] [file:AntykwaTorunska-Regular] [features=smallcaps]
- \definefontsynonym [AntykwaTorunska-ItalicCap] [file:AntykwaTorunska-Italic] [features=smallcaps]
- \definefontsynonym [AntykwaTorunska-BoldCap] [file:AntykwaTorunska-Bold] [features=smallcaps]
- \definefontsynonym [AntykwaTorunska-BoldItalicCap] [file:AntykwaTorunska-BoldItalic] [features=smallcaps]
- \definefontsynonym [AntykwaTorunska-LightCap] [file:AntykwaTorunskaLight-Regular] [features=smallcaps]
- \definefontsynonym [AntykwaTorunska-LightItalicCap] [file:AntykwaTorunskaLight-Italic] [features=smallcaps]
- \definefontsynonym [AntykwaTorunska-MediumCap] [file:AntykwaTorunskaMed-Regular] [features=smallcaps]
- \definefontsynonym [AntykwaTorunska-MedItalicCap] [file:AntykwaTorunskaMed-Italic] [features=smallcaps]
- \definefontsynonym [AntykwaTorunska-CondCap] [file:AntykwaTorunskaCond-Regular] [features=smallcaps]
- \definefontsynonym [AntykwaTorunska-CondItalicCap] [file:AntykwaTorunskaCond-Italic] [features=smallcaps]
- \definefontsynonym [AntykwaTorunska-CondBoldCap] [file:AntykwaTorunskaCond-Bold] [features=smallcaps]
- \definefontsynonym [AntykwaTorunska-CondBoldItalicCap] [file:AntykwaTorunskaCond-BoldItalic] [features=smallcaps]
- \definefontsynonym [AntykwaTorunska-CondLightCap] [file:AntykwaTorunskaCondLight-Regular] [features=smallcaps]
- \definefontsynonym [AntykwaTorunska-CondLightItalicCap][file:AntykwaTorunskaCondLight-Italic] [features=smallcaps]
- \definefontsynonym [AntykwaTorunska-CondMediumCap] [file:AntykwaTorunskaCondMed-Regular] [features=smallcaps]
- \definefontsynonym [AntykwaTorunska-CondMedItalicCap] [file:AntykwaTorunskaCondMed-Italic] [features=smallcaps]
-\stoptypescript
-
-\starttypescript [math] [antykwa-torunska] [default]
- \definefontsynonym [AntykwaTorunska-Math-Letters-Regular] [rm-anttr]
- \definefontsynonym [AntykwaTorunska-Math-Letters-Italic] [mi-anttri]
- \definefontsynonym [AntykwaTorunska-Math-Symbols-Regular] [sy-anttrz]
- \definefontsynonym [AntykwaTorunska-Math-Extension-Regular] [ex-anttr]
-\stoptypescript
-
-\starttypescript [math] [antykwa-torunska-light] [default]
- \definefontsynonym [AntykwaTorunska-Math-Letters-Light] [rm-anttl]
- \definefontsynonym [AntykwaTorunska-Math-Letters-LightItalic] [mi-anttli]
- \definefontsynonym [AntykwaTorunska-Math-Symbols-Light] [sy-anttlz]
- \definefontsynonym [AntykwaTorunska-Math-Extension-Light] [ex-anttl]
-\stoptypescript
-
-\starttypescript [math] [antykwa-torunska-cond] [default]
- \definefontsynonym [AntykwaTorunska-Math-Letters-CondRegular] [rm-anttcr]
- \definefontsynonym [AntykwaTorunska-Math-Letters-CondItalic] [mi-anttcri]
- \definefontsynonym [AntykwaTorunska-Math-Symbols-CondRegular] [sy-anttcrz]
- \definefontsynonym [AntykwaTorunska-Math-Extension-CondRegular] [ex-anttcr]
-\stoptypescript
-
-\starttypescript [math] [antykwa-torunska-lightcond] [default]
- \definefontsynonym [AntykwaTorunska-Math-Letters-CondLight] [rm-anttcl]
- \definefontsynonym [AntykwaTorunska-Math-Letters-CondLightItalic] [mi-anttcli]
- \definefontsynonym [AntykwaTorunska-Math-Symbols-CondLight] [sy-anttclz]
- \definefontsynonym [AntykwaTorunska-Math-Extension-CondLight] [ex-anttcl]
-\stoptypescript
-
-\starttypescript [math] [antykwa-torunska,antykwa-torunska-light,antykwa-torunska-cond,antykwa-torunska-lightcond]
- \usemathcollection[default]
- \loadmapfile[antt-rm.map]
- \loadmapfile[antt-mi.map]
- \loadmapfile[antt-sy.map]
- \loadmapfile[antt-ex.map]
-\stoptypescript
-
-% Antykwa Poltawskiego (GUST)
-
-\starttypescript [serif] [antykwa-poltawskiego]
- \definefontsynonym [AntykwaPoltawskiego-Regular] [antpr]
- \definefontsynonym [AntykwaPoltawskiego-Bold] [antpb]
- \definefontsynonym [AntykwaPoltawskiego-Italic] [antpri]
- \definefontsynonym [AntykwaPoltawskiego-BoldItalic] [antpbi]
-\stoptypescript
-
-% Iwona (JMN)
-
-% maybe this will change in Iwona-Math-Letters and Iwona-Math-Letters-Italic
-
-% These names are a depressing mess. They have changed over time and are
-% still not consistent. I'd expect Bold-Regular and Bold-Italic.
-
-\starttypescript [sans] [iwona-light,iwona,iwona-medium,iwona-heavy,iwona-light-cond,iwona-cond,iwona-medium-cond,iwona-heavy-cond]
-
- \definefontsynonym [Iwona-Regular] [file:Iwona-Regular] [features=default]
- \definefontsynonym [Iwona-Italic] [file:Iwona-Italic] [features=default]
- \definefontsynonym [Iwona-Bold] [file:Iwona-Bold] [features=default]
- \definefontsynonym [Iwona-BoldItalic] [file:Iwona-BoldItalic] [features=default]
- \definefontsynonym [Iwona-Light-Regular] [file:IwonaLight-Regular] [features=default]
- \definefontsynonym [Iwona-Light-Italic] [file:IwonaLight-Italic] [features=default]
- \definefontsynonym [Iwona-Medium-Regular] [file:IwonaMedium-Regular] [features=default]
- \definefontsynonym [Iwona-Medium-Italic] [file:IwonaMedium-Italic] [features=default]
- \definefontsynonym [Iwona-Heavy-Regular] [file:IwonaHeavy-Regular] [features=default]
- \definefontsynonym [Iwona-Heavy-Italic] [file:IwonaHeavy-Italic] [features=default]
-
- \definefontsynonym [Iwona-CapsRegular] [file:Iwona-Regular] [features=smallcaps]
- \definefontsynonym [Iwona-CapsItalic] [file:Iwona-Italic] [features=smallcaps]
- \definefontsynonym [Iwona-CapsBold] [file:Iwona-Bold] [features=smallcaps]
- \definefontsynonym [Iwona-CapsBoldItalic] [file:Iwona-BoldItalic] [features=smallcaps]
- \definefontsynonym [Iwona-CapsLight] [file:IwonaLight-Regular] [features=smallcaps]
- \definefontsynonym [Iwona-CapsLight-Italic] [file:IwonaLight-Italic] [features=smallcaps]
- \definefontsynonym [Iwona-CapsMedium] [file:IwonaMedium-Regular] [features=smallcaps]
- \definefontsynonym [Iwona-CapsMedium-Italic] [file:IwonaMedium-Italic] [features=smallcaps]
- \definefontsynonym [Iwona-CapsHeavy] [file:IwonaHeavy-Regular] [features=smallcaps]
- \definefontsynonym [Iwona-CapsHeavy-Italic] [file:IwonaHeavy-Italic] [features=smallcaps]
-
- \definefontsynonym [Iwona-CondRegular] [file:IwonaCond-Regular] [features=default]
- \definefontsynonym [Iwona-CondItalic] [file:IwonaCond-Italic] [features=default]
- \definefontsynonym [Iwona-CondBold] [file:IwonaCond-Bold] [features=default]
- \definefontsynonym [Iwona-CondBoldItalic] [file:IwonaCond-BoldItalic] [features=default]
- \definefontsynonym [Iwona-CondLight-Regular] [file:IwonaCondLight-Regular] [features=default]
- \definefontsynonym [Iwona-CondLight-Italic] [file:IwonaCondLight-Italic] [features=default]
- \definefontsynonym [Iwona-CondMedium-Regular] [file:IwonaCondMedium-Regular] [features=default]
- \definefontsynonym [Iwona-CondMedium-Italic] [file:IwonaCondMedium-Italic] [features=default]
- \definefontsynonym [Iwona-CondHeavy-Regular] [file:IwonaCondHeavy-Regular] [features=default]
- \definefontsynonym [Iwona-CondHeavy-Italic] [file:IwonaCondHeavy-Italic] [features=default]
-
- \definefontsynonym [Iwona-CapsCondRegular] [file:IwonaCond-Regular] [features=smallcaps]
- \definefontsynonym [Iwona-CapsCondItalic] [file:IwonaCond-Italic] [features=smallcaps]
- \definefontsynonym [Iwona-CapsCondBold] [file:IwonaCond-Bold] [features=smallcaps]
- \definefontsynonym [Iwona-CapsCondBoldItalic] [file:IwonaCond-BoldItalic] [features=smallcaps]
- \definefontsynonym [Iwona-CapsCondLight-Regular] [file:IwonaCondLight-Regular] [features=smallcaps]
- \definefontsynonym [Iwona-CapsCondLight-Italic] [file:IwonaCondLight-Italic] [features=smallcaps]
- \definefontsynonym [Iwona-CapsCondMedium-Regular][file:IwonaCondMedium-Regular] [features=smallcaps]
- \definefontsynonym [Iwona-CapsCondMedium-Italic] [file:IwonaCondMedium-Italic] [features=smallcaps]
- \definefontsynonym [Iwona-CapsCondHeavy-Regular] [file:IwonaCondHeavy-Regular] [features=smallcaps]
- \definefontsynonym [Iwona-CapsCondHeavy-Italic] [file:IwonaCondHeavy-Italic] [features=smallcaps]
-
-\stoptypescript
-
-\starttypescript [math] [iwona] [default]
- \definefontsynonym [Iwona-Math-Letters-Regular] [rm-iwonar]
- \definefontsynonym [Iwona-Math-Letters-Italic] [mi-iwonari]
- \definefontsynonym [Iwona-Math-Symbols-Regular] [sy-iwonarz]
- \definefontsynonym [Iwona-Math-Extension-Regular] [ex-iwonar]
-\stoptypescript
-
-\starttypescript [math] [iwona-light] [default]
- \definefontsynonym [Iwona-Math-Letters-Light-Regular] [rm-iwonal]
- \definefontsynonym [Iwona-Math-Letters-Light-Italic] [mi-iwonali]
- \definefontsynonym [Iwona-Math-Symbols-Light] [sy-iwonalz]
- \definefontsynonym [Iwona-Math-Extension-Light] [ex-iwonal]
-\stoptypescript
-
-\starttypescript [math] [iwona-medium] [default]
- \definefontsynonym [Iwona-Math-Letters-Medium-Regular][rm-iwonam]
- \definefontsynonym [Iwona-Math-Letters-Medium-Italic] [mi-iwonami]
- \definefontsynonym [Iwona-Math-Symbols-Medium] [sy-iwonamz]
- \definefontsynonym [Iwona-Math-Extension-Medium] [ex-iwonam]
-\stoptypescript
-
-\starttypescript [math] [iwona-heavy] [default]
- \definefontsynonym [Iwona-Math-Letters-Heavy-Regular] [rm-iwonah]
- \definefontsynonym [Iwona-Math-Letters-Heavy-Italic] [mi-iwonahi]
- \definefontsynonym [Iwona-Math-Symbols-Heavy] [sy-iwonahz]
- \definefontsynonym [Iwona-Math-Extension-Heavy] [ex-iwonah]
-\stoptypescript
-
-\starttypescript [math] [iwona,iwona-light,iwona-medium,iwona-heavy] [default]
- \usemathcollection[default]
- \loadmapfile[iwona-rm.map]
- \loadmapfile[iwona-mi.map]
- \loadmapfile[iwona-sy.map]
- \loadmapfile[iwona-ex.map]
-\stoptypescript
-
-% Kurier (JMN) / no open type fonts
-
-\starttypescript [sans] [kurier-light,kurier,kurier-medium]
- \definefontsynonym[Kurier-Light] [kurierl]
- \definefontsynonym[Kurier-Regular] [kurierr]
- \definefontsynonym[Kurier-Medium] [kurierm]
- \definefontsynonym[Kurier-Bold] [kurierb]
- \definefontsynonym[Kurier-Heavy] [kurierh]
- \definefontsynonym[Kurier-LightItalic] [kurierli]
- \definefontsynonym[Kurier-Italic] [kurierri]
- \definefontsynonym[Kurier-MediumItalic] [kuriermi]
- \definefontsynonym[Kurier-BoldItalic] [kurierbi]
- \definefontsynonym[Kurier-HeavyItalic] [kurierhi]
-\stoptypescript
-
-\starttypescript [math] [kurier] [default]
- \definefontsynonym [Kurier-Math-Letters-Regular] [rm-kurierr]
- \definefontsynonym [Kurier-Math-Letters-Italic] [mi-kurierri]
- \definefontsynonym [Kurier-Math-Symbols-Regular] [sy-kurierrz]
- \definefontsynonym [Kurier-Math-Extension-Regular] [ex-kurierr]
+\starttypescript [bookman,bonum]
+ \definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default]
+ \definetypeface [\typescriptone] [ss] [sans] [modern] [default]
+ \definetypeface [\typescriptone] [tt] [mono] [modern] [default]
+ \definetypeface [\typescriptone] [mm] [math] [modern] [default]
+ \quittypescriptscanning
\stoptypescript
-\starttypescript [math] [kurier-light] [default]
- \definefontsynonym [Kurier-Math-Letters-Light-Regular] [rm-kurierl]
- \definefontsynonym [Kurier-Math-Letters-Light-Italic] [mi-kurierli]
- \definefontsynonym [Kurier-Math-Symbols-Light] [sy-kurierlz]
- \definefontsynonym [Kurier-Math-Extension-Light] [ex-kurierl]
+\starttypescript [chancery,chorus]
+ \definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default]
+ \definetypeface [\typescriptone] [ss] [sans] [modern] [default]
+ \definetypeface [\typescriptone] [tt] [mono] [modern] [default]
+ \definetypeface [\typescriptone] [mm] [math] [modern] [default]
+ \quittypescriptscanning
\stoptypescript
-\starttypescript [math] [kurier-medium] [default]
- \definefontsynonym [Kurier-Math-Letters-Medium-Regular] [rm-kurierm]
- \definefontsynonym [Kurier-Math-Letters-Medium-Italic] [mi-kuriermi]
- \definefontsynonym [Kurier-Math-Symbols-Medium-Regular] [sy-kuriermz]
- \definefontsynonym [Kurier-Math-Extension-Medium] [ex-kurierm]
+\starttypescript [iwona,iwona-light,iwona-heavy,iwona-medium]
+ \definetypeface[\typescriptone][ss][sans] [\typescriptone] [default]
+ \definetypeface[\typescriptone][rm][serif][modern] [default]
+ \definetypeface[\typescriptone][tt][mono] [modern] [default]
+ \definetypeface[\typescriptone][mm][math] [\typescriptone] [default][text=ss]
+ \quittypescriptscanning
\stoptypescript
-\starttypescript [math] [kurier,kurier-light,kurier-medium] [default]
- \loadmapfile[kurier-rm.map]
- \loadmapfile[kurier-mi.map]
- \loadmapfile[kurier-sy.map]
- \loadmapfile[kurier-ex.map]
+\starttypescript [helvetica,heros]
+ \definetypeface [\typescriptone] [ss] [sans] [\typescriptone] [default]
+ \definetypeface [\typescriptone] [rm] [serif] [modern] [default] [rscale=1.15]
+ \definetypeface [\typescriptone] [tt] [mono] [modern] [default] [rscale=1.15]
+ \definetypeface [\typescriptone] [mm] [math] [modern] [default] [rscale=1.15]
+ \quittypescriptscanning
\stoptypescript
-% Whatever else we need:
-
-\starttypescript
- \definefontsynonym [ZapfDingbats] [uzdr]
- \definefontsynonym [RalfSmithFormalScript] [rsfs10]
- \definefontsynonym [MartinVogel] [fmvr8x]
+\starttypescript [avantgarde,adventor]
+ \definetypeface [\typescriptone] [ss] [sans] [adventor] [default]
+ \definetypeface [\typescriptone] [rm] [serif] [modern] [default] [rscale=1.15]
+ \definetypeface [\typescriptone] [tt] [mono] [modern] [default] [rscale=1.15]
+ \definetypeface [\typescriptone] [mm] [math] [modern] [default]
+ \quittypescriptscanning
\stoptypescript
-% Temp here
-
-\starttypescript [serif] [charter]
- \definefontsynonym [Charter-Roman] [name:CharterBT-Roman] % or: [bchr8a]
- \definefontsynonym [Charter-Italic] [name:CharterBT-Italic] % or: [bchri8a]
- \definefontsynonym [Charter-Bold] [name:CharterBT-Bold] % or: [bchb8a]
- \definefontsynonym [Charter-BoldItalic] [name:CharterBT-BoldItalic] % or: [bchbi8a]
- \definefontsynonym [Charter-Slanted] [name:CharterBT-Italic] % or: [bchri8a]
- \definefontsynonym [Charter-BoldSlanted] [name:CharterBT-BoldItalic] % or: [bchbi8a]
- \definefontsynonym [Charter-Roman-Caps] [name:CharterBT-SmallCap] % or: [bchrc8a]
+\starttypescript [courier,cursor]
+ \definetypeface [\typescriptone] [tt] [mono] [\typescriptone] [default]
+ \definetypeface [\typescriptone] [rm] [serif] [modern] [default]
+ \definetypeface [\typescriptone] [ss] [sans] [modern] [default]
+ \definetypeface [\typescriptone] [mm] [math] [modern] [default]
+ \quittypescriptscanning
\stoptypescript
\stoptypescriptcollection
+\loadmarkfile{type-otf}
+
\endinput
diff --git a/Master/texmf-dist/tex/context/base/type-run.tex b/Master/texmf-dist/tex/context/base/type-run.mkii
index 1b64c102ec6..1b64c102ec6 100644
--- a/Master/texmf-dist/tex/context/base/type-run.tex
+++ b/Master/texmf-dist/tex/context/base/type-run.mkii
diff --git a/Master/texmf-dist/tex/context/base/type-run.mkiv b/Master/texmf-dist/tex/context/base/type-run.mkiv
new file mode 100644
index 00000000000..1b64c102ec6
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/type-run.mkiv
@@ -0,0 +1,51 @@
+%D \module
+%D [ file=type-run,
+%D version=2001.04.20,
+%D title=\CONTEXT\ Typescript Macros,
+%D subtitle=Runtime Macros,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%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
+
+\gdef\typetypescript
+ {\dotripleempty\dotypetypescript}
+
+\gdef\dotypetypescript[#1][#2][#3]%
+ {\bgroup
+ \def\dochecktypescript##1##2% script use
+ {\doifelsenothing{##1##2}
+ {\donetrue}
+ {\ExpandBothAfter\doifcommonelse{##1}{##2}\donetrue\donefalse}}
+ \edef\typescriptone {\truetypescript{#1}}%
+ \edef\typescripttwo {\truetypescript{#2}}%
+ \edef\typescriptthree{\truetypescript{#3}}%
+ \def\starttypescript
+ {\bgroup
+ \obeylines % else we loose the first line due to lookahead
+ \dotripleempty\dostarttypescript}
+ \def\dostarttypescript[##1][##2][##3]%
+ {\long\def\next####1\stoptypescript{\egroup}
+ \dochecktypescript{##1}\typescriptone \ifdone
+ \dochecktypescript{##2}\typescripttwo \ifdone
+ \dochecktypescript{##3}\typescriptthree\ifdone
+ \def\next%
+ {\def\stoptypescript{\egroup\type{\stoptypescript}}
+ % what follows now is quite ugly
+ \skipfirstverbatimlinefalse
+ \type{\starttypescript}
+ \doifsomething{##1}{\type{[##1]}}
+ \doifsomething{##2}{\type{[##2]}}
+ \doifsomething{##3}{\type{[##3]}}
+ \processdisplayverbatim{\stoptypescript}}%
+ \fi\fi\fi
+ \next}
+ \processcommacommand[\typescriptfiles]\ReadFile % \dodousetypescript
+ \egroup}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/type-siz.mkii b/Master/texmf-dist/tex/context/base/type-siz.mkii
new file mode 100644
index 00000000000..6bf7f01f45d
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/type-siz.mkii
@@ -0,0 +1,591 @@
+%D \module
+%D [ file=type-siz,
+%D version=2001.04.12,
+%D title=\CONTEXT\ Typescript Macros,
+%D subtitle=Sizing scripts,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\starttypescriptcollection[size-mkii]
+
+% todo: instead of assuming designsize we will set it explicitly (saves these
+% -1000 problems at the lua end)
+
+% cmr
+
+\starttypescript [serif] [computer-modern] [size]
+
+ \definebodyfont [12pt] [rm]
+ [tf=cmr12,
+ bf=cmbx12,
+ it=cmti12,
+ sl=cmsl12,
+ bi=cmbxti10 at 12pt,
+ bs=cmbxsl10 at 12pt,
+ sc=cmcsc10 at 12pt]
+
+ \definebodyfont [11pt] [rm]
+ [tf=cmr10 at 11pt,
+ bf=cmbx10 at 11pt,
+ sl=cmsl10 at 11pt,
+ it=cmti10 at 11pt,
+ bi=cmbxti10 at 11pt,
+ bs=cmbxsl10 at 11pt,
+ sc=cmcsc10 at 11pt]
+
+ \definebodyfont [10pt] [rm]
+ [tf=cmr10,
+ bf=cmbx10,
+ it=cmti10,
+ sl=cmsl10,
+ bi=cmbxti10,
+ bs=cmbxsl10,
+ sc=cmcsc10]
+
+ \definebodyfont [9pt] [rm]
+ [tf=cmr9,
+ bf=cmbx9,
+ it=cmti9,
+ sl=cmsl9,
+ bi=cmbxti10 at 9pt,
+ bs=cmbxsl10 at 9pt,
+ sc=cmcsc10 at 9pt]
+
+ \definebodyfont [8pt] [rm]
+ [tf=cmr8,
+ bf=cmbx8,
+ it=cmti8,
+ sl=cmsl8,
+ bi=cmbxti10 at 8pt,
+ bs=cmbxsl10 at 8pt,
+ sc=cmcsc10 at 8pt]
+
+ \definebodyfont [7pt] [rm]
+ [tf=cmr7,
+ bf=cmbx7,
+ it=cmti10 at 7pt,
+ sl=cmsl10 at 7pt,
+ bi=cmbxti10 at 7pt,
+ bs=cmbxsl10 at 7pt,
+ sc=cmcsc10 at 7pt]
+
+ \definebodyfont [6pt] [rm]
+ [tf=cmr6,
+ bf=cmbx6,
+ it=cmti10 at 6pt,
+ sl=cmsl10 at 6pt,
+ bi=cmbxti10 at 6pt,
+ bs=cmbxsl10 at 6pt,
+ sc=cmcsc10 at 6pt]
+
+ \definebodyfont [5pt] [rm]
+ [tf=cmr5,
+ bf=cmbx5,
+ it=cmti10 at 5pt,
+ sl=cmsl10 at 5pt,
+ bi=cmbxti10 at 5pt,
+ bs=cmbxsl10 at 5pt,
+ sc=cmcsc10 at 5pt]
+
+ \definebodyfont [4pt] [rm]
+ [tf=cmr10 at 4pt,
+ bf=cmbx10 at 4pt,
+ it=cmti10 at 4pt,
+ sl=cmsl10 at 4pt,
+ bi=cmbxti10 at 4pt,
+ bs=cmbxsl10 at 4pt,
+ sc=cmr10 at 4pt]
+
+ \definebodyfont [14.4pt,17.3pt,20.7pt] [rm]
+ [tf=cmr12 sa 1,
+ bf=cmbx12 sa 1,
+ it=cmti12 sa 1,
+ sl=cmsl12 sa 1,
+ bi=cmbxti10 sa 1,
+ bs=cmbxsl10 sa 1,
+ sc=cmcsc10 sa 1]
+
+\stoptypescript
+
+\starttypescript [sans] [computer-modern] [size]
+
+ \definebodyfont [12pt] [ss]
+ [tf=cmss12,
+ bf=cmssbx10 at 12pt,
+ it=cmssi12,
+ sl=cmssi12,
+ bi=cmssbx10 at 12pt,
+ bs=cmssbx10 at 12pt,
+ sc=cmss10 at 12pt]
+
+ \definebodyfont [11pt] [ss]
+ [tf=cmss10 at 11pt,
+ bf=cmssbx10 at 11pt,
+ it=cmssi10 at 11pt,
+ sl=cmssi10 at 11pt,
+ bi=cmssbx10 at 11pt,
+ bs=cmssbx10 at 11pt,
+ sc=cmss10 at 11pt]
+
+ \definebodyfont [10pt] [ss]
+ [tf=cmss10,
+ bf=cmssbx10,
+ it=cmssi10,
+ sl=cmssi10,
+ bi=cmssbx10,
+ bs=cmssbx10,
+ sc=cmss10]
+
+ \definebodyfont [9pt] [ss]
+ [tf=cmss9,
+ bf=cmssbx10 at 9pt,
+ it=cmssi9,
+ sl=cmssi9,
+ bi=cmssbx10 at 9pt,
+ bs=cmssbx10 at 9pt,
+ sc=cmss9]
+
+ \definebodyfont [8pt] [ss]
+ [tf=cmss8,
+ bf=cmssbx10 at 8pt,
+ it=cmssi8,
+ sl=cmssi8,
+ bi=cmssbx10 at 8pt,
+ bs=cmssbx10 at 8pt,
+ sc=cmss8]
+
+ \definebodyfont [7pt] [ss]
+ [tf=cmss10 at 7pt,
+ bf=cmssbx10 at 7pt,
+ it=cmssi10 at 7pt,
+ sl=cmssi10 at 7pt,
+ bs=cmssbx10 at 7pt,
+ bi=cmssbx10 at 7pt,
+ sc=cmss10 at 7pt]
+
+ \definebodyfont [6pt] [ss]
+ [tf=cmss10 at 6pt,
+ bf=cmssbx10 at 6pt,
+ it=cmssi10 at 6pt,
+ sl=cmssi10 at 6pt,
+ bs=cmssbx10 at 6pt,
+ bi=cmssbx10 at 6pt,
+ sc=cmss10 at 6pt]
+
+ \definebodyfont [5pt] [ss]
+ [tf=cmss10 at 5pt,
+ bf=cmssbx10 at 5pt,
+ it=cmssi10 at 5pt,
+ sl=cmssi10 at 5pt,
+ bs=cmssbx10 at 5pt,
+ bi=cmssbx10 at 5pt,
+ sc=cmss10 at 5pt]
+
+ \definebodyfont [4pt] [ss]
+ [tf=cmss10 at 4pt,
+ bf=cmssbx10 at 4pt,
+ it=cmssi10 at 4pt,
+ sl=cmssi10 at 4pt,
+ bs=cmssbx10 at 4pt,
+ bi=cmssbx10 at 4pt,
+ sc=cmss10 at 4pt]
+
+ \definebodyfont [14.4pt,17.3pt,20.7pt] [ss]
+ [tf=cmss12 sa 1,
+ bf=cmssbx10 sa 1,
+ it=cmssi12 sa 1,
+ sl=cmssi12 sa 1,
+ bi=cmssbx10 sa 1,
+ bs=cmssbx10 sa 1,
+ sc=cmss12 sa 1]
+
+\stoptypescript
+
+\starttypescript [mono] [computer-modern] [size]
+
+ \definebodyfont [12pt] [tt]
+ [tf=cmtt12,
+ sl=cmsltt10 at 12pt,
+ it=cmitt10 at 12pt,
+ sc=cmtcsc10 at 12pt]
+
+ \definebodyfont [9pt] [tt]
+ [tf=cmtt9,
+ sl=cmsltt10 at 9pt,
+ it=cmitt10 at 9pt,
+ sc=cmtcsc10 at 9pt]
+
+ \definebodyfont [8pt] [tt]
+ [tf=cmtt8,
+ sl=cmsltt10 at 8pt,
+ it=cmitt10 at 8pt,
+ sc=cmtcsc10 at 8pt]
+
+ \definebodyfont [11pt,10pt,7pt,6pt,5pt,4pt] [tt]
+ [tf=cmtt10 sa 1,
+ sl=cmsltt10 sa 1,
+ it=cmitt10 sa 1,
+ sc=cmtcsc10 sa 1]
+
+ \definebodyfont [14.4pt,17.3pt,20.7pt] [tt]
+ [tf=cmtt12 sa 1,
+ sl=cmsltt10 sa 1,
+ it=cmitt10 sa 1,
+ sc=cmtcsc10 sa 1]
+
+\stoptypescript
+
+\starttypescript [math] [modern,computer-modern,latin-modern] [size]
+
+ % hack to prevent mapping of filenames, watch the space! before
+ % latin modern came aroudn we needed this trick to make sure that
+ % we loaded the raw cmr12 etc instead of the ones mapped onto
+ % an encoding (this trick is no longer needed with lm)
+ %
+ % \definefontsynonym[xcmr12][cmr12 ]
+ % \definefontsynonym[xcmr10][cmr10 ]
+ % \definefontsynonym[xcmr9] [cmr9 ]
+ % \definefontsynonym[xcmr8] [cmr8 ]
+ % \definefontsynonym[xcmr7] [cmr7 ]
+ % \definefontsynonym[xcmr6] [cmr6 ]
+ % \definefontsynonym[xcmr5] [cmr5 ]
+
+ \definefontsynonym[xcmr12][rm-lmr12]
+ \definefontsynonym[xcmr10][rm-lmr10]
+ \definefontsynonym[xcmr9] [rm-lmr9]
+ \definefontsynonym[xcmr8] [rm-lmr8]
+ \definefontsynonym[xcmr7] [rm-lmr7]
+ \definefontsynonym[xcmr6] [rm-lmr6]
+ \definefontsynonym[xcmr5] [rm-lmr5]
+
+ \definebodyfont [12pt] [mm]
+ [mr=xcmr12,
+ ex=cmex10 at 12pt,
+ mi=cmmi12,
+ sy=cmsy10 at 12pt]
+
+ \definebodyfont [11pt] [mm]
+ [mr=xcmr10 at 11pt,
+ ex=cmex10 at 11pt,
+ mi=cmmi10 at 11pt,
+ sy=cmsy10 at 11pt]
+
+ \definebodyfont [10pt] [mm]
+ [mr=xcmr10,
+ ex=cmex10,
+ mi=cmmi10,
+ sy=cmsy10]
+
+ \definebodyfont [9pt] [mm]
+ [mr=xcmr9,
+ ex=cmex10 at 9pt,
+ mi=cmmi9,
+ sy=cmsy9]
+
+ \definebodyfont [8pt] [mm]
+ [mr=xcmr8,
+ ex=cmex10 at 8pt,
+ mi=cmmi8,
+ sy=cmsy8]
+
+ \definebodyfont [7pt] [mm]
+ [mr=xcmr7,
+ ex=cmex10 at 7pt,
+ mi=cmmi7,
+ sy=cmsy7]
+
+ \definebodyfont [6pt] [mm]
+ [mr=xcmr6,
+ ex=cmex10 at 6pt,
+ mi=cmmi6,
+ sy=cmsy6]
+
+ \definebodyfont [5pt] [mm]
+ [mr=xcmr5,
+ ex=cmex10 at 5pt,
+ mi=cmmi5,
+ sy=cmsy5]
+
+ \definebodyfont [4pt] [mm]
+ [mr=xcmr5 at 4pt,
+ ex=cmex10 at 4pt,
+ mi=cmmi5 at 4pt,
+ sy=cmsy5 at 4pt]
+
+ \definebodyfont [14.4pt,17.3pt,20.7pt] [mm]
+ [mr=xcmr12 sa 1,
+ ex=cmex10 sa 1,
+ mi=cmmi12 sa 1,
+ sy=cmsy10 sa 1]
+
+\stoptypescript
+
+\starttypescript [boldmath] [modern,computer-modern,latin-modern] [size]
+
+% hack to prevent mapping of filenames, watch the space!
+
+ \definefontsynonym[xcmb12][cmbx12 ]
+ \definefontsynonym[xcmb10][cmbx10 ]
+ \definefontsynonym[xcmb9] [cmbx9 ]
+ \definefontsynonym[xcmb8] [cmbx8 ]
+ \definefontsynonym[xcmb7] [cmbx7 ]
+ \definefontsynonym[xcmb6] [cmbx6 ]
+ \definefontsynonym[xcmb5] [cmbx5 ]
+
+ \definebodyfont [12pt] [mm]
+ [mr=xcmb12,
+ ex=cmex10 at 12pt,
+ mi=cmmib10 at 12pt,
+ sy=cmbsy10 at 12pt]
+
+ \definebodyfont [11pt] [mm]
+ [mr=xcmb10 at 11pt,
+ ex=cmex10 at 11pt,
+ mi=cmmib10 at 11pt,
+ sy=cmbsy10 at 11pt]
+
+ \definebodyfont [10pt] [mm]
+ [mr=xcmb10,
+ ex=cmex10,
+ mi=cmmib10,
+ sy=cmbsy10]
+
+ \definebodyfont [9pt] [mm]
+ [mr=xcmb9,
+ ex=cmex10 at 9pt,
+ mi=cmmib10 at 9pt,
+ sy=cmbsy10 at 9pt]
+
+ \definebodyfont [8pt] [mm]
+ [mr=xcmb8,
+ ex=cmex10 at 8pt,
+ mi=cmmib7 at 8pt,
+ sy=cmbsy7 at 8pt]
+
+ \definebodyfont [7pt] [mm]
+ [mr=xcmb7,
+ ex=cmex10 at 7pt,
+ mi=cmmib7,
+ sy=cmbsy7]
+
+ \definebodyfont [6pt] [mm]
+ [mr=xcmb6,
+ ex=cmex10 at 6pt,
+ mi=cmmib5 at 6pt,
+ sy=cmbsy5 at 6pt]
+
+ \definebodyfont [5pt] [mm]
+ [mr=xcmb5,
+ ex=cmex10 at 5pt,
+ mi=cmmib5,
+ sy=cmbsy5]
+
+ \definebodyfont [4pt] [mm]
+ [mr=xcmb5 at 4pt,
+ ex=cmex10 at 4pt,
+ mi=cmmib5 at 4pt,
+ sy=cmbsy5 at 4pt]
+
+ \definebodyfont [14.4pt,17.3pt,20.7pt] [mm]
+ [mr=xcmb12 sa 1,
+ ex=cmex10 sa 1,
+ mi=cmmib10 sa 1,
+ sy=cmbsy10 sa 1]
+
+\stoptypescript
+
+\starttypescript [bfmath] [modern,computer-modern,latin-modern] [size]
+
+% hack to prevent mapping of filenames, watch the space!
+
+ \definefontsynonym[xcmb12][cmbx12 ]
+ \definefontsynonym[xcmb10][cmbx10 ]
+ \definefontsynonym[xcmb9] [cmbx9 ]
+ \definefontsynonym[xcmb8] [cmbx8 ]
+ \definefontsynonym[xcmb7] [cmbx7 ]
+ \definefontsynonym[xcmb6] [cmbx6 ]
+ \definefontsynonym[xcmb5] [cmbx5 ]
+
+ \definebodyfont [12pt] [mm]
+ [mrbf=xcmb12,
+ exbf=cmex10 at 12pt,
+ mibf=cmmib10 at 12pt,
+ sybf=cmbsy10 at 12pt]
+
+ \definebodyfont [11pt] [mm]
+ [mrbf=xcmb10 at 11pt,
+ exbf=cmex10 at 11pt,
+ mibf=cmmib10 at 11pt,
+ sybf=cmbsy10 at 11pt]
+
+ \definebodyfont [10pt] [mm]
+ [mrbf=xcmb10,
+ exbf=cmex10,
+ mibf=cmmib10,
+ sybf=cmbsy10]
+
+ \definebodyfont [9pt] [mm]
+ [mrbf=xcmb9,
+ exbf=cmex10 at 9pt,
+ mibf=cmmib10 at 9pt,
+ sybf=cmbsy10 at 9pt]
+
+ \definebodyfont [8pt] [mm]
+ [mrbf=xcmb8,
+ exbf=cmex10 at 8pt,
+ mibf=cmmib7 at 8pt,
+ sybf=cmbsy7 at 8pt]
+
+ \definebodyfont [7pt] [mm]
+ [mrbf=xcmb7,
+ exbf=cmex10 at 7pt,
+ mibf=cmmib7,
+ sybf=cmbsy7]
+
+ \definebodyfont [6pt] [mm]
+ [mrbf=xcmb6,
+ exbf=cmex10 at 6pt,
+ mibf=cmmib5 at 6pt,
+ sybf=cmbsy5 at 6pt]
+
+ \definebodyfont [5pt] [mm]
+ [mrbf=xcmb5,
+ exbf=cmex10 at 5pt,
+ mibf=cmmib5,
+ sybf=cmbsy5]
+
+ \definebodyfont [4pt] [mm]
+ [mrbf=xcmb5 at 4pt,
+ exbf=cmex10 at 4pt,
+ mibf=cmmib5 at 4pt,
+ sybf=cmbsy5 at 4pt]
+
+ \definebodyfont [14.4pt,17.3pt,20.7pt] [mm]
+ [mrbf=xcmb12 sa 1,
+ exbf=cmex10 sa 1,
+ mibf=cmmib10 sa 1,
+ sybf=cmbsy10 sa 1]
+
+\stoptypescript
+
+\starttypescript [serif] [concrete] [size]
+
+ \definebodyfont [10pt,11pt,12pt,14.4pt,17.3pt] [rm]
+ [tf=ccr10 sa 1,
+ it=ccti10 sa 1,
+ sl=ccsl10 sa 1,
+ sc=cccsc10 sa 1]
+
+ \definebodyfont [5pt,6pt,7pt,8pt,9pt] [rm]
+ [it=ccr9 sa 1,
+ sl=ccr9 sa 1,
+ sc=ccr9 sa 1]
+
+ \definebodyfont [9pt] [rm] [tf=ccr9]
+ \definebodyfont [8pt] [rm] [tf=ccr8]
+ \definebodyfont [7pt] [rm] [tf=ccr7]
+ \definebodyfont [6pt] [rm] [tf=ccr6]
+ \definebodyfont [5pt] [rm] [tf=ccr5]
+
+\stoptypescript
+
+\starttypescript [math] [euler] [size]
+
+ \definebodyfont [9pt,10pt,11pt,12pt,14.4pt,17.3pt,20.7pt] [mm]
+ [mr=zeurm10 sa 1,
+ ex=zeuex10 sa 1,
+ sy=zeusm10 sa 1,
+ mi=eufm10 sa 1]
+
+ \definebodyfont [6pt,7pt,8pt] [mm]
+ [mr=zeurm7 sa 1,
+ sy=zeusm7 sa 1,
+ mi=eufm7 sa 1,
+ ex=zeuex10 sa 1]
+
+ \definebodyfont [5pt] [mm]
+ [mr=zeurm5,
+ sy=zeusm5,
+ mi=eufm5,
+ ex=zeuex10 at 5pt]
+
+\stoptypescript
+
+\starttypescript [bfmath] [euler] [size]
+
+ \definebodyfont [9pt,10pt,11pt,12pt,14.4pt,17.3pt,20.7pt] [mm]
+ [mrbf=zeurb10 sa 1,
+ exbf=zeuex10 sa 1,
+ sybf=zeusb10 sa 1,
+ mibf=eufb10 sa 1]
+
+ \definebodyfont [6pt,7pt,8pt] [mm]
+ [mrbf=zeurb7 sa 1,
+ sybf=zeusb7 sa 1,
+ mibf=eufb7 sa 1,
+ exbf=zeuex10 sa 1]
+
+ \definebodyfont [5pt] [mm]
+ [mrbf=zeurb5,
+ sybf=zeusb5,
+ mibf=eufb5,
+ exbf=zeuex10 at 5pt]
+
+\stoptypescript
+
+\starttypescript [boldmath] [euler] [size]
+
+ \definebodyfont [9pt,10pt,11pt,12pt,14.4pt,17.3pt,20.7pt] [mm]
+ [mr=zeurb10 sa 1,
+ ex=zeuex10 sa 1,
+ sy=zeusb10 sa 1,
+ mi=eufb10 sa 1]
+
+ \definebodyfont [6pt,7pt,8pt] [mm]
+ [mr=zeurb7 sa 1,
+ sy=zeusb7 sa 1,
+ mi=eufb7 sa 1,
+ ex=zeuex10 sa 1]
+
+ \definebodyfont [5pt] [mm]
+ [mr=zeurb5,
+ sy=zeusb5,
+ mi=eufb5,
+ ex=zeuex10 at 5pt]
+
+\stoptypescript
+
+\starttypescript [math] [modern,computer-modern,latin-modern,ams] [size]
+ \definebodyfont [17.3pt,14.4pt,12pt,11pt,10pt,9pt] [mm]
+ [ma=msam10 sa 1,
+ mb=msbm10 sa 1]
+ \definebodyfont [8pt,7pt] [mm]
+ [ma=msam7 sa 1,
+ mb=msbm7 sa 1]
+ \definebodyfont [6pt,5pt,4pt] [mm]
+ [ma=msam5 sa 1,
+ mb=msbm5 sa 1]
+\stoptypescript
+
+\starttypescript [math] [times] [size]
+
+ \mapfontsize [5pt] [6.0pt]
+ \mapfontsize [6pt] [6.8pt]
+ \mapfontsize [7pt] [7.6pt]
+ \mapfontsize [8pt] [8.4pt]
+ \mapfontsize [9pt] [9.2pt]
+ \mapfontsize [10pt] [10pt]
+ \mapfontsize [11pt] [10.8pt]
+ \mapfontsize [12pt] [11.6pt]
+ \mapfontsize [14.4pt] [13.2pt]
+
+\stoptypescript
+
+\stoptypescriptcollection
+
+\endinput
diff --git a/Master/texmf-dist/tex/context/base/type-siz.mkiv b/Master/texmf-dist/tex/context/base/type-siz.mkiv
new file mode 100644
index 00000000000..734c262b5ad
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/type-siz.mkiv
@@ -0,0 +1,239 @@
+%D \module
+%D [ file=type-siz,
+%D version=2001.04.12,
+%D title=\CONTEXT\ Typescript Macros,
+%D subtitle=Sizing scripts,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\starttypescriptcollection[size-mkiv]
+
+\starttypescript [serif] [computer-modern] [size]
+
+ \definebodyfont [12pt] [rm]
+ [tf=LMRoman12-Regular,
+ bf=LMRoman12-Bold,
+ it=LMRoman12-Italic,
+ sl=LMRoman12-Oblique,
+ bi=LMRoman10-BoldItalic sa 1,
+ bs=LMRoman10-BoldOblique sa 1,
+ sc=LMRoman10-CapsRegular sa 1]
+
+ \definebodyfont [11pt] [rm]
+ [tf=LMRoman10-Regular sa 1,
+ bf=LMRoman10-Bold sa 1,
+ it=LMRoman10-Italic sa 1,
+ sl=LMRoman10-Oblique sa 1,
+ bi=LMRoman10-BoldItalic sa 1,
+ bs=LMRoman10-BoldOblique sa 1,
+ sc=LMRoman10-CapsRegular sa 1]
+
+ \definebodyfont [10pt] [rm]
+ [tf=LMRoman10-Regular,
+ bf=LMRoman10-Bold,
+ it=LMRoman10-Italic,
+ sl=LMRoman10-Oblique,
+ bi=LMRoman10-BoldItalic sa 1,
+ bs=LMRoman10-BoldOblique sa 1,
+ sc=LMRoman10-CapsRegular sa 1]
+
+ \definebodyfont [9pt] [rm]
+ [tf=LMRoman9-Regular,
+ bf=LMRoman9-Bold,
+ it=LMRoman9-Italic,
+ sl=LMRoman9-Oblique,
+ bi=LMRoman10-BoldItalic sa 1,
+ bs=LMRoman10-BoldOblique sa 1,
+ sc=LMRoman10-CapsRegular sa 1]
+
+ \definebodyfont [8pt] [rm]
+ [tf=LMRoman8-Regular,
+ bf=LMRoman8-Bold,
+ it=LMRoman8-Italic,
+ sl=LMRoman8-Oblique,
+ bi=LMRoman10-BoldItalic sa 1,
+ bs=LMRoman10-BoldOblique sa 1,
+ sc=LMRoman10-CapsRegular sa 1]
+
+ \definebodyfont [7pt] [rm]
+ [tf=LMRoman7-Regular,
+ bf=LMRoman7-Bold,
+ it=LMRoman7-Italic sa 1,
+ sl=LMRoman8-Oblique sa 1,
+ bi=LMRoman10-BoldItalic sa 1,
+ bs=LMRoman10-BoldOblique sa 1,
+ sc=LMRoman10-CapsRegular sa 1]
+
+ \definebodyfont [6pt] [rm]
+ [tf=LMRoman6-Regular,
+ bf=LMRoman6-Bold,
+ it=LMRoman7-Italic sa 1,
+ sl=LMRoman8-Oblique sa 1,
+ bi=LMRoman10-BoldItalic sa 1,
+ bs=LMRoman10-BoldOblique sa 1,
+ sc=LMRoman10-CapsRegular sa 1]
+
+ \definebodyfont [5pt] [rm]
+ [tf=LMRoman5-Regular,
+ bf=LMRoman5-Bold,
+ it=LMRoman7-Italic sa 1,
+ sl=LMRoman8-Oblique sa 1,
+ bi=LMRoman10-BoldItalic sa 1,
+ bs=LMRoman10-BoldOblique sa 1,
+ sc=LMRoman10-CapsRegular sa 1]
+
+ \definebodyfont [4pt] [rm]
+ [tf=LMRoman5-Regular sa 1,
+ bf=LMRoman5-Bold sa 1,
+ it=LMRoman7-Italic sa 1,
+ sl=LMRoman8-Oblique sa 1,
+ bi=LMRoman10-BoldItalic sa 1,
+ bs=LMRoman10-BoldOblique sa 1,
+ sc=LMRoman10-CapsRegular sa 1]
+
+ \definebodyfont [14.4pt,17.3pt,20.7pt] [rm]
+ [tf=LMRoman12-Regular sa 1,
+ bf=LMRoman12-Bold sa 1,
+ it=LMRoman12-Italic sa 1,
+ sl=LMRoman12-Oblique sa 1,
+ bi=LMRoman10-BoldItalic sa 1,
+ bs=LMRoman10-BoldOblique sa 1,
+ sc=LMRoman10-CapsRegular sa 1]
+
+\stoptypescript
+
+\starttypescript [sans] [computer-modern] [size]
+
+ \definebodyfont [12pt] [ss]
+ [tf=LMSans12-Regular,
+ bf=LMSans10-Bold sa 1,
+ it=LMSans12-Oblique,
+ sl=LMSans12-Oblique,
+ bi=LMSans10-BoldOblique sa 1,
+ bs=LMSans10-BoldOblique sa 1,
+ sc=LMSans12-Regular]
+
+ \definebodyfont [11pt] [ss]
+ [tf=LMSans10-Regular sa 1,
+ bf=LMSans10-Bold sa 1,
+ it=LMSans10-Oblique sa 1,
+ sl=LMSans10-Oblique sa 1,
+ bi=LMSans10-BoldOblique sa 1,
+ bs=LMSans10-BoldOblique sa 1,
+ sc=LMSans10-Regular sa 1]
+
+ \definebodyfont [10pt] [ss]
+ [tf=LMSans10-Regular,
+ bf=LMSans10-Bold,
+ it=LMSans10-Oblique,
+ sl=LMSans10-Oblique,
+ bi=LMSans10-BoldOblique,
+ bs=LMSans10-BoldOblique,
+ sc=LMSans10-Regular]
+
+ \definebodyfont [9pt] [ss]
+ [tf=LMSans9-Regular,
+ bf=LMSans10-Bold sa 1,
+ it=LMSans9-Oblique sa 1,
+ sl=LMSans9-Oblique sa 1,
+ bi=LMSans10-BoldOblique sa 1,
+ bs=LMSans10-BoldOblique sa 1,
+ sc=LMSans9-Regular]
+
+ \definebodyfont [8pt] [ss]
+ [tf=LMSans8-Regular,
+ bf=LMSans10-Bold sa 1,
+ it=LMSans8-Oblique,
+ sl=LMSans8-Oblique,
+ bi=LMSans10-BoldOblique sa 1,
+ bs=LMSans10-BoldOblique sa 1,
+ sc=LMSans8-Regular]
+
+ \definebodyfont [7pt,6pt,5pt,4pt] [ss]
+ [tf=LMSans8-Regular sa 1,
+ bf=LMSans10-Bold sa 1,
+ it=LMSans8-Oblique sa 1,
+ sl=LMSans8-Oblique sa 1,
+ bi=LMSans10-BoldOblique sa 1,
+ bs=LMSans10-BoldOblique sa 1,
+ sc=LMSans8-Regular sa 1]
+
+ \definebodyfont [14.4pt,17.3pt,20.7pt] [ss]
+ [tf=LMSans12-Regular sa 1,
+ bf=LMSans10-Bold sa 1,
+ it=LMSans12-Oblique sa 1,
+ sl=LMSans12-Oblique sa 1,
+ bi=LMSans10-BoldOblique sa 1,
+ bs=LMSans10-BoldOblique sa 1,
+ sc=LMSans12-Regular sa 1]
+
+\stoptypescript
+
+\starttypescript [mono] [computer-modern] [size]
+
+ \definebodyfont [12pt] [tt]
+ [tf=LMTypewriter12-Regular,
+ it=LMTypewriter10-Italic sa 1,
+ sl=LMTypewriter10-Oblique sa 1,
+ bf=LMTypewriter10-Dark sa 1,
+ bs=LMTypewriter10-DarkOblique sa 1,
+ sc=LMTypewriter10-CapsRegular sa 1]
+
+ \definebodyfont [9pt] [tt]
+ [tf=LMTypewriter9-Regular,
+ it=LMTypewriter10-Italic sa 1,
+ sl=LMTypewriter10-Oblique sa 1,
+ bf=LMTypewriter10-Dark sa 1,
+ bs=LMTypewriter10-DarkOblique sa 1,
+ sc=LMTypewriter10-CapsRegular sa 1]
+
+ \definebodyfont [8pt] [tt]
+ [tf=LMTypewriter8-Regular,
+ it=LMTypewriter10-Italic sa 1,
+ sl=LMTypewriter10-Oblique sa 1,
+ bf=LMTypewriter10-Dark sa 1,
+ bs=LMTypewriter10-DarkOblique sa 1,
+ sc=LMTypewriter10-CapsRegular sa 1]
+
+ \definebodyfont [11pt,10pt,7pt,6pt,5pt,4pt] [tt]
+ [tf=LMTypewriter10-Regular sa 1,
+ it=LMTypewriter10-Italic sa 1,
+ sl=LMTypewriter10-Oblique sa 1,
+ bf=LMTypewriter10-Dark sa 1,
+ bs=LMTypewriter10-DarkOblique sa 1,
+ sc=LMTypewriter10-CapsRegular sa 1]
+
+ \definebodyfont [14.4pt,17.3pt,20.7pt] [tt]
+ [tf=LMTypewriter12-Regular sa 1,
+ it=LMTypewriter10-Italic sa 1,
+ sl=LMTypewriter10-Oblique sa 1,
+ bf=LMTypewriter10-Dark sa 1,
+ bs=LMTypewriter10-DarkOblique sa 1,
+ sc=LMTypewriter10-CapsRegular sa 1]
+
+\stoptypescript
+
+\starttypescript [math] [modern,computer-modern,latin-modern] [size]
+
+ \definebodyfont [12pt] [mm] [mr=LMMathRoman12-Regular sa 1, mb=LMMathRoman12-Bold sa 1]
+ \definebodyfont [11pt] [mm] [mr=LMMathRoman10-Regular sa 1, mb=LMMathRoman10-Bold sa 1]
+ \definebodyfont [10pt] [mm] [mr=LMMathRoman10-Regular sa 1, mb=LMMathRoman10-Bold sa 1]
+ \definebodyfont [9pt] [mm] [mr=LMMathRoman9-Regular sa 1, mb=LMMathRoman9-Bold sa 1]
+ \definebodyfont [8pt] [mm] [mr=LMMathRoman8-Regular sa 1, mb=LMMathRoman8-Bold sa 1]
+ \definebodyfont [7pt] [mm] [mr=LMMathRoman7-Regular sa 1, mb=LMMathRoman7-Bold sa 1]
+ \definebodyfont [6pt] [mm] [mr=LMMathRoman6-Regular sa 1, mb=LMMathRoman6-Bold sa 1]
+ \definebodyfont [5pt] [mm] [mr=LMMathRoman5-Regular sa 1, mb=LMMathRoman5-Bold sa 1]
+ \definebodyfont [4pt] [mm] [mr=LMMathRoman5-Regular sa 1, mb=LMMathRoman5-Bold sa 1]
+
+ \definebodyfont [14.4pt,17.3pt,20.7pt] [mm] [mr=LMMathRoman12-Regular sa 1, mb=LMMathRoman12-Bold sa 1]
+
+\stoptypescript
+
+\stoptypescriptcollection
+
+\endinput
diff --git a/Master/texmf-dist/tex/context/base/type-siz.tex b/Master/texmf-dist/tex/context/base/type-siz.tex
index 018f979bbad..56b54b3010a 100644
--- a/Master/texmf-dist/tex/context/base/type-siz.tex
+++ b/Master/texmf-dist/tex/context/base/type-siz.tex
@@ -11,6 +11,8 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+% we need to use proper verbose names, which saves us a resolve
+
\unprotect
\starttypescriptcollection[size]
@@ -168,685 +170,10 @@
[mm] [default]
\stoptypescript
-% cmr
-
-\starttypescript [serif] [computer-modern] [size]
-
- \definebodyfont [12pt] [rm]
- [tf=cmr12,
- bf=cmbx12,
- it=cmti12,
- sl=cmsl12,
- bi=cmbxti10 at 12pt,
- bs=cmbxsl10 at 12pt,
- sc=cmcsc10 at 12pt]
-
- \definebodyfont [11pt] [rm]
- [tf=cmr10 at 11pt,
- bf=cmbx10 at 11pt,
- sl=cmsl10 at 11pt,
- it=cmti10 at 11pt,
- bi=cmbxti10 at 11pt,
- bs=cmbxsl10 at 11pt,
- sc=cmcsc10 at 11pt]
-
- \definebodyfont [10pt] [rm]
- [tf=cmr10,
- bf=cmbx10,
- it=cmti10,
- sl=cmsl10,
- bi=cmbxti10,
- bs=cmbxsl10,
- sc=cmcsc10]
-
- \definebodyfont [9pt] [rm]
- [tf=cmr9,
- bf=cmbx9,
- it=cmti9,
- sl=cmsl9,
- bi=cmbxti10 at 9pt,
- bs=cmbxsl10 at 9pt,
- sc=cmcsc10 at 9pt]
-
- \definebodyfont [8pt] [rm]
- [tf=cmr8,
- bf=cmbx8,
- it=cmti8,
- sl=cmsl8,
- bi=cmbxti10 at 8pt,
- bs=cmbxsl10 at 8pt,
- sc=cmcsc10 at 8pt]
-
- \definebodyfont [7pt] [rm]
- [tf=cmr7,
- bf=cmbx7,
- it=cmti10 at 7pt,
- sl=cmsl10 at 7pt,
- bi=cmbxti10 at 7pt,
- bs=cmbxsl10 at 7pt,
- sc=cmcsc10 at 7pt]
-
- \definebodyfont [6pt] [rm]
- [tf=cmr6,
- bf=cmbx6,
- it=cmti10 at 6pt,
- sl=cmsl10 at 6pt,
- bi=cmbxti10 at 6pt,
- bs=cmbxsl10 at 6pt,
- sc=cmcsc10 at 6pt]
-
- \definebodyfont [5pt] [rm]
- [tf=cmr5,
- bf=cmbx5,
- it=cmti10 at 5pt,
- sl=cmsl10 at 5pt,
- bi=cmbxti10 at 5pt,
- bs=cmbxsl10 at 5pt,
- sc=cmcsc10 at 5pt]
-
- \definebodyfont [4pt] [rm]
- [tf=cmr10 at 4pt,
- bf=cmbx10 at 4pt,
- it=cmti10 at 4pt,
- sl=cmsl10 at 4pt,
- bi=cmbxti10 at 4pt,
- bs=cmbxsl10 at 4pt,
- sc=cmr10 at 4pt]
-
- \definebodyfont [14.4pt,17.3pt,20.7pt] [rm]
- [tf=cmr12 sa 1,
- bf=cmbx12 sa 1,
- it=cmti12 sa 1,
- sl=cmsl12 sa 1,
- bi=cmbxti10 sa 1,
- bs=cmbxsl10 sa 1,
- sc=cmcsc10 sa 1]
-
-\stoptypescript
-
-\starttypescript [sans] [computer-modern] [size]
-
- \definebodyfont [12pt] [ss]
- [tf=cmss12,
- bf=cmssbx10 at 12pt,
- it=cmssi12,
- sl=cmssi12,
- bi=cmssbx10 at 12pt,
- bs=cmssbx10 at 12pt,
- sc=cmss10 at 12pt]
-
- \definebodyfont [11pt] [ss]
- [tf=cmss10 at 11pt,
- bf=cmssbx10 at 11pt,
- it=cmssi10 at 11pt,
- sl=cmssi10 at 11pt,
- bi=cmssbx10 at 11pt,
- bs=cmssbx10 at 11pt,
- sc=cmss10 at 11pt]
-
- \definebodyfont [10pt] [ss]
- [tf=cmss10,
- bf=cmssbx10,
- it=cmssi10,
- sl=cmssi10,
- bi=cmssbx10,
- bs=cmssbx10,
- sc=cmss10]
-
- \definebodyfont [9pt] [ss]
- [tf=cmss9,
- bf=cmssbx10 at 9pt,
- it=cmssi9,
- sl=cmssi9,
- bi=cmssbx10 at 9pt,
- bs=cmssbx10 at 9pt,
- sc=cmss9]
-
- \definebodyfont [8pt] [ss]
- [tf=cmss8,
- bf=cmssbx10 at 8pt,
- it=cmssi8,
- sl=cmssi8,
- bi=cmssbx10 at 8pt,
- bs=cmssbx10 at 8pt,
- sc=cmss8]
-
- \definebodyfont [7pt] [ss]
- [tf=cmss10 at 7pt,
- bf=cmssbx10 at 7pt,
- it=cmssi10 at 7pt,
- sl=cmssi10 at 7pt,
- bs=cmssbx10 at 7pt,
- bi=cmssbx10 at 7pt,
- sc=cmss10 at 7pt]
-
- \definebodyfont [6pt] [ss]
- [tf=cmss10 at 6pt,
- bf=cmssbx10 at 6pt,
- it=cmssi10 at 6pt,
- sl=cmssi10 at 6pt,
- bs=cmssbx10 at 6pt,
- bi=cmssbx10 at 6pt,
- sc=cmss10 at 6pt]
-
- \definebodyfont [5pt] [ss]
- [tf=cmss10 at 5pt,
- bf=cmssbx10 at 5pt,
- it=cmssi10 at 5pt,
- sl=cmssi10 at 5pt,
- bs=cmssbx10 at 5pt,
- bi=cmssbx10 at 5pt,
- sc=cmss10 at 5pt]
-
- \definebodyfont [4pt] [ss]
- [tf=cmss10 at 4pt,
- bf=cmssbx10 at 4pt,
- it=cmssi10 at 4pt,
- sl=cmssi10 at 4pt,
- bs=cmssbx10 at 4pt,
- bi=cmssbx10 at 4pt,
- sc=cmss10 at 4pt]
-
- \definebodyfont [14.4pt,17.3pt,20.7pt] [ss]
- [tf=cmss12 sa 1,
- bf=cmssbx10 sa 1,
- it=cmssi12 sa 1,
- sl=cmssi12 sa 1,
- bi=cmssbx10 sa 1,
- bs=cmssbx10 sa 1,
- sc=cmss12 sa 1]
-
-\stoptypescript
-
-\starttypescript [mono] [computer-modern] [size]
-
- \definebodyfont [12pt] [tt]
- [tf=cmtt12,
- sl=cmsltt10 at 12pt,
- it=cmitt10 at 12pt,
- sc=cmtcsc10 at 12pt]
-
- \definebodyfont [9pt] [tt]
- [tf=cmtt9,
- sl=cmsltt10 at 9pt,
- it=cmitt10 at 9pt,
- sc=cmtcsc10 at 9pt]
-
- \definebodyfont [8pt] [tt]
- [tf=cmtt8,
- sl=cmsltt10 at 8pt,
- it=cmitt10 at 8pt,
- sc=cmtcsc10 at 8pt]
-
- \definebodyfont [11pt,10pt,7pt,6pt,5pt,4pt] [tt]
- [tf=cmtt10 sa 1,
- sl=cmsltt10 sa 1,
- it=cmitt10 sa 1,
- sc=cmtcsc10 sa 1]
-
- \definebodyfont [14.4pt,17.3pt,20.7pt] [tt]
- [tf=cmtt12 sa 1,
- sl=cmsltt10 sa 1,
- it=cmitt10 sa 1,
- sc=cmtcsc10 sa 1]
-
-\stoptypescript
-
-\starttypescript [math] [modern,computer-modern,latin-modern] [size]
-
- % hack to prevent mapping of filenames, watch the space! before
- % latin modern came aroudn we needed this trick to make sure that
- % we loaded the raw cmr12 etc instead of the ones mapped onto
- % an encoding
-
- % \definefontsynonym[xcmr12][cmr12 ]
- % \definefontsynonym[xcmr10][cmr10 ]
- % \definefontsynonym[xcmr9] [cmr9 ]
- % \definefontsynonym[xcmr8] [cmr8 ]
- % \definefontsynonym[xcmr7] [cmr7 ]
- % \definefontsynonym[xcmr6] [cmr6 ]
- % \definefontsynonym[xcmr5] [cmr5 ]
-
- \definebodyfont [12pt] [mm]
- [mr=xcmr12,
- ex=cmex10 at 12pt,
- mi=cmmi12,
- sy=cmsy10 at 12pt]
-
- \definebodyfont [11pt] [mm]
- [mr=xcmr10 at 11pt,
- ex=cmex10 at 11pt,
- mi=cmmi10 at 11pt,
- sy=cmsy10 at 11pt]
-
- \definebodyfont [10pt] [mm]
- [mr=xcmr10,
- ex=cmex10,
- mi=cmmi10,
- sy=cmsy10]
-
- \definebodyfont [9pt] [mm]
- [mr=xcmr9,
- ex=cmex10 at 9pt,
- mi=cmmi9,
- sy=cmsy9]
-
- \definebodyfont [8pt] [mm]
- [mr=xcmr8,
- ex=cmex10 at 8pt,
- mi=cmmi8,
- sy=cmsy8]
-
- \definebodyfont [7pt] [mm]
- [mr=xcmr7,
- ex=cmex10 at 7pt,
- mi=cmmi7,
- sy=cmsy7]
-
- \definebodyfont [6pt] [mm]
- [mr=xcmr6,
- ex=cmex10 at 6pt,
- mi=cmmi6,
- sy=cmsy6]
-
- \definebodyfont [5pt] [mm]
- [mr=xcmr5,
- ex=cmex10 at 5pt,
- mi=cmmi5,
- sy=cmsy5]
-
- \definebodyfont [4pt] [mm]
- [mr=xcmr5 at 4pt,
- ex=cmex10 at 4pt,
- mi=cmmi5 at 4pt,
- sy=cmsy5 at 4pt]
-
- \definebodyfont [14.4pt,17.3pt,20.7pt] [mm]
- [mr=xcmr12 sa 1,
- ex=cmex10 sa 1,
- mi=cmmi12 sa 1,
- sy=cmsy10 sa 1]
-
-\stoptypescript
-
-\starttypescript [boldmath] [modern,computer-modern,latin-modern] [size]
-
-% hack to prevent mapping of filenames, watch the space!
-
- \definefontsynonym[xcmb12][cmbx12 ]
- \definefontsynonym[xcmb10][cmbx10 ]
- \definefontsynonym[xcmb9] [cmbx9 ]
- \definefontsynonym[xcmb8] [cmbx8 ]
- \definefontsynonym[xcmb7] [cmbx7 ]
- \definefontsynonym[xcmb6] [cmbx6 ]
- \definefontsynonym[xcmb5] [cmbx5 ]
-
- \definebodyfont [12pt] [mm]
- [mr=xcmb12,
- ex=cmex10 at 12pt,
- mi=cmmib10 at 12pt,
- sy=cmbsy10 at 12pt]
-
- \definebodyfont [11pt] [mm]
- [mr=xcmb10 at 11pt,
- ex=cmex10 at 11pt,
- mi=cmmib10 at 11pt,
- sy=cmbsy10 at 11pt]
-
- \definebodyfont [10pt] [mm]
- [mr=xcmb10,
- ex=cmex10,
- mi=cmmib10,
- sy=cmbsy10]
-
- \definebodyfont [9pt] [mm]
- [mr=xcmb9,
- ex=cmex10 at 9pt,
- mi=cmmib10 at 9pt,
- sy=cmbsy10 at 9pt]
-
- \definebodyfont [8pt] [mm]
- [mr=xcmb8,
- ex=cmex10 at 8pt,
- mi=cmmib7 at 8pt,
- sy=cmbsy7 at 8pt]
-
- \definebodyfont [7pt] [mm]
- [mr=xcmb7,
- ex=cmex10 at 7pt,
- mi=cmmib7,
- sy=cmbsy7]
-
- \definebodyfont [6pt] [mm]
- [mr=xcmb6,
- ex=cmex10 at 6pt,
- mi=cmmib5 at 6pt,
- sy=cmbsy5 at 6pt]
-
- \definebodyfont [5pt] [mm]
- [mr=xcmb5,
- ex=cmex10 at 5pt,
- mi=cmmib5,
- sy=cmbsy5]
-
- \definebodyfont [4pt] [mm]
- [mr=xcmb5 at 4pt,
- ex=cmex10 at 4pt,
- mi=cmmib5 at 4pt,
- sy=cmbsy5 at 4pt]
-
- \definebodyfont [14.4pt,17.3pt,20.7pt] [mm]
- [mr=xcmb12 sa 1,
- ex=cmex10 sa 1,
- mi=cmmib10 sa 1,
- sy=cmbsy10 sa 1]
-
-\stoptypescript
-
-\starttypescript [bfmath] [modern,computer-modern,latin-modern] [size]
-
-% hack to prevent mapping of filenames, watch the space!
-
- \definefontsynonym[xcmb12][cmbx12 ]
- \definefontsynonym[xcmb10][cmbx10 ]
- \definefontsynonym[xcmb9] [cmbx9 ]
- \definefontsynonym[xcmb8] [cmbx8 ]
- \definefontsynonym[xcmb7] [cmbx7 ]
- \definefontsynonym[xcmb6] [cmbx6 ]
- \definefontsynonym[xcmb5] [cmbx5 ]
-
- \definebodyfont [12pt] [mm]
- [mrbf=xcmb12,
- exbf=cmex10 at 12pt,
- mibf=cmmib10 at 12pt,
- sybf=cmbsy10 at 12pt]
-
- \definebodyfont [11pt] [mm]
- [mrbf=xcmb10 at 11pt,
- exbf=cmex10 at 11pt,
- mibf=cmmib10 at 11pt,
- sybf=cmbsy10 at 11pt]
-
- \definebodyfont [10pt] [mm]
- [mrbf=xcmb10,
- exbf=cmex10,
- mibf=cmmib10,
- sybf=cmbsy10]
-
- \definebodyfont [9pt] [mm]
- [mrbf=xcmb9,
- exbf=cmex10 at 9pt,
- mibf=cmmib10 at 9pt,
- sybf=cmbsy10 at 9pt]
-
- \definebodyfont [8pt] [mm]
- [mrbf=xcmb8,
- exbf=cmex10 at 8pt,
- mibf=cmmib7 at 8pt,
- sybf=cmbsy7 at 8pt]
-
- \definebodyfont [7pt] [mm]
- [mrbf=xcmb7,
- exbf=cmex10 at 7pt,
- mibf=cmmib7,
- sybf=cmbsy7]
-
- \definebodyfont [6pt] [mm]
- [mrbf=xcmb6,
- exbf=cmex10 at 6pt,
- mibf=cmmib5 at 6pt,
- sybf=cmbsy5 at 6pt]
-
- \definebodyfont [5pt] [mm]
- [mrbf=xcmb5,
- exbf=cmex10 at 5pt,
- mibf=cmmib5,
- sybf=cmbsy5]
-
- \definebodyfont [4pt] [mm]
- [mrbf=xcmb5 at 4pt,
- exbf=cmex10 at 4pt,
- mibf=cmmib5 at 4pt,
- sybf=cmbsy5 at 4pt]
-
- \definebodyfont [14.4pt,17.3pt,20.7pt] [mm]
- [mrbf=xcmb12 sa 1,
- exbf=cmex10 sa 1,
- mibf=cmmib10 sa 1,
- sybf=cmbsy10 sa 1]
-
-\stoptypescript
-
-\starttypescript [serif] [concrete] [size]
-
- \definebodyfont [10pt,11pt,12pt,14.4pt,17.3pt] [rm]
- [tf=ccr10 sa 1,
- it=ccti10 sa 1,
- sl=ccsl10 sa 1,
- sc=cccsc10 sa 1]
-
- \definebodyfont [5pt,6pt,7pt,8pt,9pt] [rm]
- [it=ccr9 sa 1,
- sl=ccr9 sa 1,
- sc=ccr9 sa 1]
-
- \definebodyfont [9pt] [rm] [tf=ccr9]
- \definebodyfont [8pt] [rm] [tf=ccr8]
- \definebodyfont [7pt] [rm] [tf=ccr7]
- \definebodyfont [6pt] [rm] [tf=ccr6]
- \definebodyfont [5pt] [rm] [tf=ccr5]
-
-\stoptypescript
-
-% \starttypescript [serif] [fourier] [size] % experimental
-
-% \definebodyfont
-% [17.3pt,14.4pt,12pt,11pt,10pt,9pt,8pt,7pt,6pt,5pt,4pt]
-% [rm]
-% [bc=SerifBoldCaps sa 1,
-% bca=SerifBoldCaps sa a,
-% bcb=SerifBoldCaps sa b,
-% bcc=SerifBoldCaps sa c,
-% bcd=SerifBoldCaps sa d,
-% bcx=SerifBoldCaps sa x,
-% bcxx=SerifBoldCaps sa xx]
-
-% \stoptypescript
-
-% \starttypescript [serif] [fourier-expert] [size] % experimental
-
-% \definebodyfont
-% [17.3pt,14.4pt,12pt,11pt,10pt,9pt,8pt,7pt,6pt,5pt,4pt]
-% [rm]
-% [tf=Serif-Expert sa 1,
-% it=SerifItalic-Expert sa 1,
-% sl=SerifSlanted-Expert sa 1,
-% sc=SerifCaps-Expert sa 1,
-% db=SerifSemiBold-Expert sa 1,
-% dba=SerifSemiBold-Expert sa a,
-% dbb=SerifSemiBold-Expert sa b,
-% dbc=SerifSemiBold-Expert sa c,
-% dbd=SerifSemiBold-Expert sa d,
-% dbx=SerifSemiBold-Expert sa x,
-% dbxx=SerifSemiBold-Expert sa xx,
-% di=SerifSemiItalic-Expert sa 1,
-% dia=SerifSemiItalic-Expert sa a,
-% dib=SerifSemiItalic-Expert sa b,
-% dic=SerifSemiItalic-Expert sa c,
-% did=SerifSemiItalic-Expert sa d,
-% dix=SerifSemiItalic-Expert sa x,
-% dixx=SerifSemiItalic-Expert sa xx,
-% ds=SerifSemiSlanted-Expert sa 1,
-% dsa=SerifSemiSlanted-Expert sa a,
-% dsb=SerifSemiSlanted-Expert sa b,
-% dsc=SerifSemiSlanted-Expert sa c,
-% dsd=SerifSemiSlanted-Expert sa d,
-% dsx=SerifSemiSlanted-Expert sa x,
-% dsxx=SerifSemiSlanted-Expert sa xx,
-% dc=SerifSemiCaps-Expert sa 1,
-% dca=SerifSemiCaps-Expert sa a,
-% dcb=SerifSemiCaps-Expert sa b,
-% dcc=SerifSemiCaps-Expert sa c,
-% dcd=SerifSemiCaps-Expert sa d,
-% dcx=SerifSemiCaps-Expert sa x,
-% dcxx=SerifSemiCaps-Expert sa xx,
-% bf=SerifBold-Expert sa 1,
-% bi=SerifBoldItalic-Expert sa 1,
-% bs=SerifBoldSlanted-Expert sa 1,
-% eb=SerifBlack-Expert sa 1,
-% eba=SerifBlack-Expert sa a,
-% ebb=SerifBlack-Expert sa b,
-% ebc=SerifBlack-Expert sa c,
-% ebd=SerifBlack-Expert sa d,
-% ebx=SerifBlack-Expert sa x,
-% ebxx=SerifBlack-Expert sa xx]
-
-% \stoptypescript
-
-% \starttypescript [serif] [fourier-oldstyle] [size] % experimental
-
-% \definebodyfont
-% [17.3pt,14.4pt,12pt,11pt,10pt,9pt,8pt,7pt,6pt,5pt,4pt]
-% [rm]
-% [tf=Serif-OldStyle sa 1,
-% it=SerifItalic-OldStyle sa 1,
-% sl=SerifSlanted-OldStyle sa 1,
-% sc=SerifCaps-OldStyle sa 1,
-% db=SerifSemiBold-OldStyle sa 1,
-% dba=SerifSemiBold-OldStyle sa a,
-% dbb=SerifSemiBold-OldStyle sa b,
-% dbc=SerifSemiBold-OldStyle sa c,
-% dbd=SerifSemiBold-OldStyle sa d,
-% dbx=SerifSemiBold-OldStyle sa x,
-% dbxx=SerifSemiBold-OldStyle sa xx,
-% di=SerifSemiItalic-OldStyle sa 1,
-% dia=SerifSemiItalic-OldStyle sa a,
-% dib=SerifSemiItalic-OldStyle sa b,
-% dic=SerifSemiItalic-OldStyle sa c,
-% did=SerifSemiItalic-OldStyle sa d,
-% dix=SerifSemiItalic-OldStyle sa x,
-% dixx=SerifSemiItalic-OldStyle sa xx,
-% ds=SerifSemiSlanted-OldStyle sa 1,
-% dsa=SerifSemiSlanted-OldStyle sa a,
-% dsb=SerifSemiSlanted-OldStyle sa b,
-% dsc=SerifSemiSlanted-OldStyle sa c,
-% dsd=SerifSemiSlanted-OldStyle sa d,
-% dsx=SerifSemiSlanted-OldStyle sa x,
-% dsxx=SerifSemiSlanted-OldStyle sa xx,
-% dc=SerifSemiCaps-OldStyle sa 1,
-% dca=SerifSemiCaps-OldStyle sa a,
-% dcb=SerifSemiCaps-OldStyle sa b,
-% dcc=SerifSemiCaps-OldStyle sa c,
-% dcd=SerifSemiCaps-OldStyle sa d,
-% dcx=SerifSemiCaps-OldStyle sa x,
-% dcxx=SerifSemiCaps-OldStyle sa xx,
-% eb=SerifBlack-OldStyle sa 1,
-% eba=SerifBlack-OldStyle sa a,
-% ebb=SerifBlack-OldStyle sa b,
-% ebc=SerifBlack-OldStyle sa c,
-% ebd=SerifBlack-OldStyle sa d,
-% ebx=SerifBlack-OldStyle sa x,
-% ebxx=SerifBlack-OldStyle sa xx,
-% bf=SerifBold-OldStyle sa 1,
-% bi=SerifBoldItalic-OldStyle sa 1,
-% bs=SerifBoldSlanted-OldStyle sa 1]
-
-% \stoptypescript
-
-\starttypescript [math] [euler] [size]
-
- \definebodyfont [9pt,10pt,11pt,12pt,14.4pt,17.3pt,20.7pt] [mm]
- [mr=zeurm10 sa 1,
- ex=zeuex10 sa 1,
- sy=zeusm10 sa 1,
- mi=eufm10 sa 1]
-
- \definebodyfont [6pt,7pt,8pt] [mm]
- [mr=zeurm7 sa 1,
- sy=zeusm7 sa 1,
- mi=eufm7 sa 1,
- ex=zeuex10 sa 1]
-
- \definebodyfont [5pt] [mm]
- [mr=zeurm5,
- sy=zeusm5,
- mi=eufm5,
- ex=zeuex10 at 5pt]
-
-\stoptypescript
-
-\starttypescript [bfmath] [euler] [size]
-
- \definebodyfont [9pt,10pt,11pt,12pt,14.4pt,17.3pt,20.7pt] [mm]
- [mrbf=zeurb10 sa 1,
- exbf=zeuex10 sa 1,
- sybf=zeusb10 sa 1,
- mibf=eufb10 sa 1]
-
- \definebodyfont [6pt,7pt,8pt] [mm]
- [mrbf=zeurb7 sa 1,
- sybf=zeusb7 sa 1,
- mibf=eufb7 sa 1,
- exbf=zeuex10 sa 1]
-
- \definebodyfont [5pt] [mm]
- [mrbf=zeurb5,
- sybf=zeusb5,
- mibf=eufb5,
- exbf=zeuex10 at 5pt]
-
-\stoptypescript
-
-\starttypescript [boldmath] [euler] [size]
-
- \definebodyfont [9pt,10pt,11pt,12pt,14.4pt,17.3pt,20.7pt] [mm]
- [mr=zeurb10 sa 1,
- ex=zeuex10 sa 1,
- sy=zeusb10 sa 1,
- mi=eufb10 sa 1]
-
- \definebodyfont [6pt,7pt,8pt] [mm]
- [mr=zeurb7 sa 1,
- sy=zeusb7 sa 1,
- mi=eufb7 sa 1,
- ex=zeuex10 sa 1]
-
- \definebodyfont [5pt] [mm]
- [mr=zeurb5,
- sy=zeusb5,
- mi=eufb5,
- ex=zeuex10 at 5pt]
-
-\stoptypescript
-
-\starttypescript [math] [modern,computer-modern,latin-modern,ams] [size]
- \definebodyfont [17.3pt,14.4pt,12pt,11pt,10pt,9pt] [mm]
- [ma=msam10 sa 1,
- mb=msbm10 sa 1]
- \definebodyfont [8pt,7pt] [mm]
- [ma=msam7 sa 1,
- mb=msbm7 sa 1]
- \definebodyfont [6pt,5pt,4pt] [mm]
- [ma=msam5 sa 1,
- mb=msbm5 sa 1]
-\stoptypescript
-
-% math times
-
-\starttypescript [math] [times] [size]
+\stoptypescriptcollection
- \mapfontsize [5pt] [6.0pt]
- \mapfontsize [6pt] [6.8pt]
- \mapfontsize [7pt] [7.6pt]
- \mapfontsize [8pt] [8.4pt]
- \mapfontsize [9pt] [9.2pt]
- \mapfontsize [10pt] [10pt]
- \mapfontsize [11pt] [10.8pt]
- \mapfontsize [12pt] [11.6pt]
- \mapfontsize [14.4pt] [13.2pt]
+\protect
-\stoptypescript
-
-\stoptypescriptcollection
+\loadmarkfile{type-siz}
-\protect \endinput
+\endinput
diff --git a/Master/texmf-dist/tex/context/base/type-spe.tex b/Master/texmf-dist/tex/context/base/type-spe.tex
deleted file mode 100644
index 0fd2abaddd7..00000000000
--- a/Master/texmf-dist/tex/context/base/type-spe.tex
+++ /dev/null
@@ -1,49 +0,0 @@
-%D \module
-%D [ file=type-spe,
-%D version=2001.04.12,
-%D title=\CONTEXT\ Typescript Macros,
-%D subtitle=Special scripts,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% \controlspace -> enco files
-% no special, always
-
-\starttypescriptcollection[special features]
-
-\starttypescript [mono] [courier,lucida] [special]
- \def\controlspace{\getglyph{ComputerModernMono}{\char32}}
-\stoptypescript
-
-\starttypescript [math] [modern,computer-modern,latin-modern,ams] [special]
- \usemathcollection[default]
-\stoptypescript
-
-\starttypescript [math,boldmath] [lucida] [special]
- \usemathcollection[lbr]
-\stoptypescript
-
-\starttypescript [math] [times] [special]
- \usemathcollection[default]
-\stoptypescript
-
-\starttypescript [math] [palatino] [special]
- \usemathcollection[default]
-\stoptypescript
-
-\starttypescript [math] [fourier] [special]
- \usemathcollection[fou]
-\stoptypescript
-
-\starttypescript [math,boldmath] [euler] [special]
- \usemathcollection[eul]
-\stoptypescript
-
-\stoptypescriptcollection
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/type-syn.tex b/Master/texmf-dist/tex/context/base/type-syn.tex
deleted file mode 100644
index b7e9335df71..00000000000
--- a/Master/texmf-dist/tex/context/base/type-syn.tex
+++ /dev/null
@@ -1,881 +0,0 @@
-%D \module
-%D [ file=type-syn,
-%D version=2001.04.12,
-%D title=\CONTEXT\ Typescript Macros,
-%D subtitle=Filename scripts,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\starttypescriptcollection[synonyms]
-
-
-% Computer Modern Roman : Donald Knuth
-% Latin Modern: LM Font Revision Team
-
-% LM math vs CM math (analysis by Taco):
-%
-% lmex10.tfm % identical
-% lmmi5.tfm % identical
-% lmmi6.tfm % identical
-% lmmi7.tfm % identical
-% lmmi8.tfm % identical
-% lmmi9.tfm % identical
-% lmmi10.tfm % identical
-% lmmi12.tfm % identical
-% lmmib10.tfm % identical
-% lmsy5.tfm % extra chars: 254,255 (octal)
-% lmsy6.tfm % extra chars: 254,255 (octal)
-% lmsy7.tfm % extra chars: 254,255 (octal)
-% lmsy8.tfm % extra chars: 254,255 (octal)
-% lmsy9.tfm % extra chars: 254,255 (octal)
-% lmsy10.tfm % extra chars: 254,255 (octal)
-% lmbsy10.tfm % extra chars: 254,255 (octal)
-%
-% From the 'AMS' set:
-%
-% lmmib5.tfm % identical
-% lmmib7.tfm % identical
-% lmbsy5.tfm % extra chars: 254,255 (octal)
-% lmbsy7.tfm % extra chars: 254,255 (octal)
-%
-% The two extra characters are:
-%
-% /lessorequalslant
-% /greaterorequalslant
-
-\starttypescript [serif] [modern,computer-modern,latin-modern] [name]
- \definefontsynonym [Serif] [LMRoman-Regular]
- \definefontsynonym [SerifBold] [LMRoman-Bold]
- \definefontsynonym [SerifItalic] [LMRoman-Italic]
- \definefontsynonym [SerifSlanted] [LMRoman-Oblique]
- \definefontsynonym [SerifBoldItalic] [LMRoman-BoldItalic]
- \definefontsynonym [SerifBoldSlanted] [LMRoman-BoldOblique]
- \definefontsynonym [SerifCaps] [LMRoman-CapsRegular]
- \definefontsynonym [SerifCapsSlanted] [LMRoman-CapsOblique]
-\stoptypescript
-
-\starttypescript [sans] [modern,computer-modern,latin-modern] [name]
- \definefontsynonym [Sans] [LMSans-Regular]
- \definefontsynonym [SansBold] [LMSans-Bold]
- \definefontsynonym [SansItalic] [LMSans-Oblique]
- \definefontsynonym [SansSlanted] [LMSans-Oblique]
- \definefontsynonym [SansBoldItalic] [LMSans-BoldOblique]
- \definefontsynonym [SansBoldSlanted] [LMSans-BoldOblique]
- \definefontsynonym [SansCaps] [LMSans-Regular]
- \definefontsynonym [SansCapsSlanted] [LMSans-Oblique]
-\stoptypescript
-
-\starttypescript [mono] [modern,computer-modern,latin-modern] [name]
- \definefontsynonym [Mono] [LMTypewriter-Regular]
- \definefontsynonym [MonoBold] [LMTypewriter-Dark]
- \definefontsynonym [MonoItalic] [LMTypewriter-Italic]
- \definefontsynonym [MonoSlanted] [LMTypewriter-Oblique]
- \definefontsynonym [MonoBoldItalic] [LMTypewriter-DarkOblique]
- \definefontsynonym [MonoBoldSlanted] [LMTypewriter-DarkOblique]
- \definefontsynonym [MonoCaps] [LMTypewriter-CapsRegular]
- \definefontsynonym [MonoCapsSlanted] [LMTypewriter-CapsOblique]
- \definefontsynonym [MonoVariable] [LMTypewriterVarWd-Regular]
-\stoptypescript
-
-\starttypescript [math] [modern,computer-modern,latin-modern] [name]
- \definefontsynonym [MathRoman] [LMRoman-Regular]
- \definefontsynonym [MathExtension] [LMMathExtension-Regular]
- \definefontsynonym [MathItalic] [LMMathItalic-Italic]
- \definefontsynonym [MathSymbol] [LMMathSymbols-Italic]
-\stoptypescript
-
-\starttypescript [boldmath] [modern,computer-modern,latin-modern] [name]
- \definefontsynonym [MathRoman] [LMRoman-Bold]
- \definefontsynonym [MathExtension] [LMMathExtension-Regular]
- \definefontsynonym [MathItalic] [LMMathItalic-BoldItalic]
- \definefontsynonym [MathSymbol] [LMMathSymbols-BoldItalic]
-\stoptypescript
-
-\starttypescript [bfmath] [modern,computer-modern,latin-modern] [name]
- \definefontsynonym [MathRomanBold] [LMRoman-Bold]
- \definefontsynonym [MathExtension] [LMMathExtension-Regular]
- \definefontsynonym [MathItalicBold] [LMMathItalic-BoldItalic]
- \definefontsynonym [MathSymbolBold] [LMMathSymbols-BoldItalic]
-\stoptypescript
-
-\starttypescript [serif] [modern-vari,computer-modern-vari,latin-modern-vari] [name]
- \definefontsynonym [Serif] [LMTypewriterVarWd-Regular]
- \definefontsynonym [SerifBold] [LMTypewriterVarWd-Oblique]
- \definefontsynonym [SerifItalic] [LMTypewriterVarWd-Oblique]
- \definefontsynonym [SerifSlanted] [LMTypewriterVarWd-Dark]
- \definefontsynonym [SerifBoldItalic] [LMTypewriterVarWd-DarkOblique]
- \definefontsynonym [SerifBoldSlanted] [LMTypewriterVarWd-DarkOblique]
- \definefontsynonym [SerifCaps] [LMTypewriterVarWd-Regular]
- \definefontsynonym [SerifCapsSlanted] [LMTypewriterVarWd-Oblique]
-\stoptypescript
-
-\starttypescript [mono] [modern-cond,computer-modern-cond,latin-modern-cond,modern-lightcond,computer-modern-lightcond,latin-modern-lightcond] [name]
- \definefontsynonym [Mono] [LMTypewriter-LightCondensed]
- \definefontsynonym [MonoBold] [LMTypewriter-LightCondensed]
- \definefontsynonym [MonoItalic] [LMTypewriter-LightCondensedOblique]
- \definefontsynonym [MonoSlanted] [LMTypewriter-LightCondensedOblique]
- \definefontsynonym [MonoBoldItalic] [LMTypewriter-LightCondensed]
- \definefontsynonym [MonoBoldSlanted] [LMTypewriter-LightCondensed]
- \definefontsynonym [MonoCaps] [LMTypewriter-LightCondensed]
- \definefontsynonym [MonoCapsSlanted] [LMTypewriter-LightCondensed]
-\stoptypescript
-
-\starttypescript [mono] [modern-light,computer-modern-light,latin-modern-light] [name]
- \definefontsynonym [Mono] [LMTypewriter-Light]
- \definefontsynonym [MonoBold] [LMTypewriter-Light]
- \definefontsynonym [MonoItalic] [LMTypewriter-LightOblique]
- \definefontsynonym [MonoSlanted] [LMTypewriter-LightOblique]
- \definefontsynonym [MonoBoldItalic] [LMTypewriter-Light]
- \definefontsynonym [MonoBoldSlanted] [LMTypewriter-Light]
- \definefontsynonym [MonoCaps] [LMTypewriter-Light]
- \definefontsynonym [MonoCapsSlanted] [LMTypewriter-Light]
-\stoptypescript
-
-% This will change some day.
-
-\starttypescript [math] [modern,computer-modern,latin-modern] [name]
- \definefontsynonym [OldStyle] [MathItalic]
- \definefontsynonym [Fraktur] [eufm10]
- \definefontsynonym [Blackboard] [msbm10]
- \definefontsynonym [Gothic] [eufm10]
- \definefontsynonym [Calligraphic] [cmsy10]
-\stoptypescript
-
-% Concrete Modern Roman : Donald Knuth
-
-\starttypescript [serif] [concrete] [name]
- \definefontsynonym [Serif] [ComputerConcrete]
- \definefontsynonym [SerifBold] [ComputerConcrete]
- \definefontsynonym [SerifItalic] [ComputerConcrete-Italic]
- \definefontsynonym [SerifSlanted] [ComputerConcrete-Slanted]
- \definefontsynonym [SerifBoldItalic] [ComputerConcrete-Italic]
- \definefontsynonym [SerifBoldSlanted] [ComputerConcrete-Slanted]
- \definefontsynonym [SerifCaps] [ComputerConcrete-Caps]
-\stoptypescript
-
-% Euler : Hermann Zapf
-
-\starttypescript [math] [euler] [name]
- \definefontsynonym [MathRoman] [Euler-Roman] % mr
- \definefontsynonym [MathItalic] [Euler-Fraktur] % mi
- \definefontsynonym [MathExtension] [Euler-Extension] % ex
- \definefontsynonym [MathSymbol] [Euler-Symbol] % sy
-\stoptypescript
-
-\starttypescript [boldmath] [euler] [name]
- \definefontsynonym [MathRoman] [Euler-Roman-Bold] % mr
- \definefontsynonym [MathItalic] [Euler-Fraktur-Bold] % mi
- \definefontsynonym [MathExtension] [Euler-Extension] % ex
- \definefontsynonym [MathSymbol] [Euler-Symbol-Bold] % sy
-\stoptypescript
-
-\starttypescript [bfmath] [euler] [name]
- \definefontsynonym [MathRomanBold] [Euler-Roman-Bold] % mr
- \definefontsynonym [MathItalicBold] [Euler-Fraktur-Bold] % mi
- \definefontsynonym [MathExtension] [Euler-Extension] % ex
- \definefontsynonym [MathSymbolBold] [Euler-Symbol-Bold] % sy
-\stoptypescript
-
-\starttypescript [math] [euler] [name]
- \definefontsynonym [OldStyle] [MathItalic]
- \definefontsynonym [Fraktur] [MathItalic]
- \definefontsynonym [Gothic] [MathItalic]
- \definefontsynonym [Calligraphic] [MathSymbol]
-\stoptypescript
-
-\starttypescript [boldmath] [euler] [name]
- \definefontsynonym [OldStyle] [MathItalicBold]
- \definefontsynonym [Fraktur] [MathItalicBold]
- \definefontsynonym [Gothic] [MathItalicBold]
- \definefontsynonym [Calligraphic] [MathSymbolBold]
-\stoptypescript
-
-% American Math Society : Michael Spivak
-
-\starttypescript [math] [modern,computer-modern,latin-modern,ams] [name]
- \definefontsynonym [MathAlpha] [AMS-SymbolA]
- \definefontsynonym [MathBeta] [AMS-SymbolB]
-\stoptypescript
-
-% Antykwa Torunska :
-
-\starttypescript [serif] [antykwa-torunska] [name]
- \definefontsynonym [Serif] [AntykwaTorunska-Regular]
- \definefontsynonym [SerifBold] [AntykwaTorunska-Bold]
- \definefontsynonym [SerifItalic] [AntykwaTorunska-Italic]
- \definefontsynonym [SerifSlanted] [AntykwaTorunska-Italic]
- \definefontsynonym [SerifBoldItalic] [AntykwaTorunska-BoldItalic]
- \definefontsynonym [SerifBoldSlanted] [AntykwaTorunska-BoldItalic]
- \definefontsynonym [SerifCaps] [AntykwaTorunska-Cap]
-\stoptypescript
-
-\starttypescript [serif] [antykwa-torunska-light] [name]
- \definefontsynonym [Serif] [AntykwaTorunska-Light]
- \definefontsynonym [SerifBold] [AntykwaTorunska-Medium]
- \definefontsynonym [SerifItalic] [AntykwaTorunska-LightItalic]
- \definefontsynonym [SerifSlanted] [AntykwaTorunska-LightItalic]
- \definefontsynonym [SerifBoldItalic] [AntykwaTorunska-MedItalic]
- \definefontsynonym [SerifBoldSlanted] [AntykwaTorunska-MedItalic]
- \definefontsynonym [SerifCaps] [AntykwaTorunska-LightCap]
-\stoptypescript
-
-\starttypescript [serif] [antykwa-torunska-cond] [name]
- \definefontsynonym [Serif] [AntykwaTorunska-CondRegular]
- \definefontsynonym [SerifBold] [AntykwaTorunska-CondBold]
- \definefontsynonym [SerifItalic] [AntykwaTorunska-CondItalic]
- \definefontsynonym [SerifSlanted] [AntykwaTorunska-CondItalic]
- \definefontsynonym [SerifBoldItalic] [AntykwaTorunska-CondBoldItalic]
- \definefontsynonym [SerifBoldSlanted] [AntykwaTorunska-CondBoldItalic]
- \definefontsynonym [SerifCaps] [AntykwaTorunska-CondCap]
-\stoptypescript
-
-\starttypescript [serif] [antykwa-torunska-lightcond] [name]
- \definefontsynonym [Serif] [AntykwaTorunska-CondLight]
- \definefontsynonym [SerifBold] [AntykwaTorunska-CondMedium]
- \definefontsynonym [SerifItalic] [AntykwaTorunska-CondLightItalic]
- \definefontsynonym [SerifSlanted] [AntykwaTorunska-CondLightItalic]
- \definefontsynonym [SerifBoldItalic] [AntykwaTorunska-CondMedItalic]
- \definefontsynonym [SerifBoldSlanted] [AntykwaTorunska-CondMedItalic]
- \definefontsynonym [SerifCaps] [AntykwaTorunska-CondLightCap]
-\stoptypescript
-
-\starttypescript [serif] [antykwa-torunska] [name]
- \definefontsynonym [SerifRegular] [Serif]
- \definefontsynonym [SerifRegularCaps] [AntykwaTorunska-Cap]
- \definefontsynonym [SerifBoldCaps] [AntykwaTorunska-BoldCap]
- \definefontsynonym [SerifItalicCaps] [AntykwaTorunska-ItalicCap]
- \definefontsynonym [SerifSlantedCaps] [AntykwaTorunska-ItalicCap]
- \definefontsynonym [SerifBoldItalicCaps] [AntykwaTorunska-BoldItalicCap]
- \definefontsynonym [SerifBoldSlantedCaps] [AntykwaTorunska-BoldItalicCap]
- \definefontsynonym [SerifCapsCaps] [AntykwaTorunska-Cap]
-
- \definefontvariant [Serif][osf][Caps]
- \definefontvariant [Serif][sc] [Caps]
-
- \definefontsynonym [SerifRegularLight] [AntykwaTorunska-Light]
- \definefontsynonym [SerifBoldLight] [AntykwaTorunska-Medium]
- \definefontsynonym [SerifItalicLight] [AntykwaTorunska-LightItalic]
- \definefontsynonym [SerifSlantedLight] [AntykwaTorunska-LightItalic]
- \definefontsynonym [SerifBoldItalicLight] [AntykwaTorunska-MedItalic]
- \definefontsynonym [SerifBoldSlantedLight] [AntykwaTorunska-MedItalic]
- \definefontsynonym [SerifCapsLight] [AntykwaTorunska-LightCap]
-
- \definefontvariant [Serif][lt][Light]
-
- \definefontsynonym [SerifRegularCond] [AntykwaTorunska-CondRegular]
- \definefontsynonym [SerifBoldCond] [AntykwaTorunska-CondBold]
- \definefontsynonym [SerifItalicCond] [AntykwaTorunska-CondItalic]
- \definefontsynonym [SerifSlantedCond] [AntykwaTorunska-CondItalic]
- \definefontsynonym [SerifBoldItalicCond] [AntykwaTorunska-CondBoldItalic]
- \definefontsynonym [SerifBoldSlantedCond] [AntykwaTorunska-CondBoldItalic]
- \definefontsynonym [SerifCapsCond] [AntykwaTorunska-CondCap]
-
- \definefontvariant [Serif][cond][Cond]
-
-\stoptypescript
-
-\starttypescript [serif] [antykwa-torunska-light] [name]
- \definefontsynonym [SerifRegular] [Serif]
- \definefontsynonym [SerifRegularCaps] [AntykwaTorunska-LightCap]
- \definefontsynonym [SerifBoldCaps] [AntykwaTorunska-MediumCap]
- \definefontsynonym [SerifItalicCaps] [AntykwaTorunska-LightItalicCap]
- \definefontsynonym [SerifSlantedCaps] [AntykwaTorunska-LightItalicCap]
- \definefontsynonym [SerifBoldItalicCaps] [AntykwaTorunska-MedItalicCap]
- \definefontsynonym [SerifBoldSlantedCaps] [AntykwaTorunska-MedItalicCap]
- \definefontsynonym [SerifCapsCaps] [AntykwaTorunska-LightCap]
-
- \definefontvariant [Serif][osf][Caps]
- \definefontvariant [Serif][sc] [Caps]
-
- \definefontsynonym [SerifRegularDark] [AntykwaTorunska-Regular]
- \definefontsynonym [SerifBoldDark] [AntykwaTorunska-Bold]
- \definefontsynonym [SerifItalicDark] [AntykwaTorunska-Italic]
- \definefontsynonym [SerifSlantedDark] [AntykwaTorunska-Italic]
- \definefontsynonym [SerifBoldItalicDark] [AntykwaTorunska-BoldItalic]
- \definefontsynonym [SerifBoldSlantedDark] [AntykwaTorunska-BoldItalic]
- \definefontsynonym [SerifCapsDark] [AntykwaTorunska-Cap]
-
- \definefontvariant [Serif][dk][Dark]
-
- \definefontsynonym [SerifRegularCond] [AntykwaTorunska-CondLight]
- \definefontsynonym [SerifBoldCond] [AntykwaTorunska-CondMedium]
- \definefontsynonym [SerifItalicCond] [AntykwaTorunska-CondLightItalic]
- \definefontsynonym [SerifSlantedCond] [AntykwaTorunska-CondLightItalic]
- \definefontsynonym [SerifBoldItalicCond] [AntykwaTorunska-CondMedItalic]
- \definefontsynonym [SerifBoldSlantedCond] [AntykwaTorunska-CondMedItalic]
- \definefontsynonym [SerifCapsCond] [AntykwaTorunska-CondLightCap]
-
- \definefontvariant [Serif][cond][Cond]
-
-\stoptypescript
-
-\starttypescript [serif] [antykwa-torunska-cond] [name]
- \definefontsynonym [SerifRegular] [Serif]
- \definefontsynonym [SerifRegularCaps] [AntykwaTorunska-CondCap]
- \definefontsynonym [SerifBoldCaps] [AntykwaTorunska-CondBoldCap]
- \definefontsynonym [SerifItalicCaps] [AntykwaTorunska-CondItalicCap]
- \definefontsynonym [SerifSlantedCaps] [AntykwaTorunska-CondItalicCap]
- \definefontsynonym [SerifBoldItalicCaps] [AntykwaTorunska-CondBoldItalicCap]
- \definefontsynonym [SerifBoldSlantedCaps] [AntykwaTorunska-CondBoldItalicCap]
- \definefontsynonym [SerifCapsCaps] [AntykwaTorunska-CondCap]
-
- \definefontvariant [Serif][osf][Caps]
- \definefontvariant [Serif][sc] [Caps]
-
- \definefontsynonym [SerifRegularLight] [AntykwaTorunska-CondLight]
- \definefontsynonym [SerifBoldLight] [AntykwaTorunska-CondMedium]
- \definefontsynonym [SerifItalicLight] [AntykwaTorunska-CondLightItalic]
- \definefontsynonym [SerifSlantedLight] [AntykwaTorunska-CondLightItalic]
- \definefontsynonym [SerifBoldItalicLight] [AntykwaTorunska-CondMedItalic]
- \definefontsynonym [SerifBoldSlantedLight] [AntykwaTorunska-CondMedItalic]
- \definefontsynonym [SerifCapsLight] [AntykwaTorunska-CondLightCap]
-
- \definefontvariant [Serif][lt][Light]
-
- \definefontsynonym [SerifRegularExp] [AntykwaTorunska-Regular]
- \definefontsynonym [SerifBoldExp] [AntykwaTorunska-Bold]
- \definefontsynonym [SerifItalicExp] [AntykwaTorunska-Italic]
- \definefontsynonym [SerifSlantedExp] [AntykwaTorunska-Italic]
- \definefontsynonym [SerifBoldItalicExp] [AntykwaTorunska-BoldItalic]
- \definefontsynonym [SerifBoldSlantedExp] [AntykwaTorunska-BoldItalic]
- \definefontsynonym [SerifCapsExp] [AntykwaTorunska-Cap]
-
- \definefontvariant [Serif][exp][Exp]
-
-\stoptypescript
-
-\starttypescript [serif] [antykwa-torunska-lightcond] [name]
- \definefontsynonym [SerifRegular] [Serif]
- \definefontsynonym [SerifRegularCaps] [AntykwaTorunska-CondLightCap]
- \definefontsynonym [SerifBoldCaps] [AntykwaTorunska-CondMediumCap]
- \definefontsynonym [SerifItalicCaps] [AntykwaTorunska-CondLightItalicCap]
- \definefontsynonym [SerifSlantedCaps] [AntykwaTorunska-CondLightItalicCap]
- \definefontsynonym [SerifBoldItalicCaps] [AntykwaTorunska-CondMedItalicCap]
- \definefontsynonym [SerifBoldSlantedCaps] [AntykwaTorunska-CondMedItalicCap]
- \definefontsynonym [SerifCapsCaps] [AntykwaTorunska-CondLightCap]
-
- \definefontvariant [Serif][osf][Caps]
- \definefontvariant [Serif][sc] [Caps]
-
- \definefontsynonym [SerifRegularDark] [AntykwaTorunska-CondRegular]
- \definefontsynonym [SerifBoldDark] [AntykwaTorunska-CondBold]
- \definefontsynonym [SerifItalicDark] [AntykwaTorunska-CondItalic]
- \definefontsynonym [SerifSlantedDark] [AntykwaTorunska-CondItalic]
- \definefontsynonym [SerifBoldItalicDark] [AntykwaTorunska-CondBoldItalic]
- \definefontsynonym [SerifBoldSlantedDark] [AntykwaTorunska-CondBoldItalic]
- \definefontsynonym [SerifCapsDark] [AntykwaTorunska-CondCap]
-
- \definefontvariant [Serif][dk][Dark]
-
- \definefontsynonym [SerifRegularExp] [AntykwaTorunska-Light]
- \definefontsynonym [SerifBoldExp] [AntykwaTorunska-Medium]
- \definefontsynonym [SerifItalicExp] [AntykwaTorunska-LightItalic]
- \definefontsynonym [SerifSlantedExp] [AntykwaTorunska-LightItalic]
- \definefontsynonym [SerifBoldItalicExp] [AntykwaTorunska-MedItalic]
- \definefontsynonym [SerifBoldSlantedExp] [AntykwaTorunska-MedItalic]
- \definefontsynonym [SerifCapsExp] [AntykwaTorunska-LightCap]
-
- \definefontvariant [Serif][exp][Exp]
-
-\stoptypescript
-
-% maybe no -Regular etc
-
-\starttypescript [math] [antykwa-torunska-light] [name]
- \definefontsynonym [MathRoman] [AntykwaTorunska-Math-Letters-Light]
- \definefontsynonym [MathItalic] [AntykwaTorunska-Math-Letters-LightItalic]
- \definefontsynonym [MathSymbol] [AntykwaTorunska-Math-Symbols-Light]
- \definefontsynonym [MathExtension] [AntykwaTorunska-Math-Extension-Light]
-\stoptypescript
-
-\starttypescript [math] [antykwa-torunska] [name]
- \definefontsynonym [MathRoman] [AntykwaTorunska-Math-Letters-Regular]
- \definefontsynonym [MathItalic] [AntykwaTorunska-Math-Letters-RegularItalic]
- \definefontsynonym [MathSymbol] [AntykwaTorunska-Math-Symbols-Regular]
- \definefontsynonym [MathExtension] [AntykwaTorunska-Math-Extension-Regular]
-\stoptypescript
-
-\starttypescript [math] [antykwa-torunska-cond] [name]
- \definefontsynonym [MathRoman] [AntykwaTorunska-Math-Letters-CondRegular]
- \definefontsynonym [MathItalic] [AntykwaTorunska-Math-Letters-CondRegularItalic]
- \definefontsynonym [MathSymbol] [AntykwaTorunska-Math-Symbols-CondRegular]
- \definefontsynonym [MathExtension] [AntykwaTorunska-Math-Extension-CondRegular]
-\stoptypescript
-
-\starttypescript [math] [antykwa-torunska-lightcond] [name]
- \definefontsynonym [MathRoman] [AntykwaTorunska-Math-Letters-CondLight]
- \definefontsynonym [MathItalic] [AntykwaTorunska-Math-Letters-CondLightItalic]
- \definefontsynonym [MathSymbol] [AntykwaTorunska-Math-Symbols-CondLight]
- \definefontsynonym [MathExtension] [AntykwaTorunska-Math-Extension-CondLight]
-\stoptypescript
-
-% Antykwa Poltawskiego :
-
-\starttypescript [serif] [antykwa-poltawskiego] [name]
- \definefontsynonym [Serif] [AntykwaPoltawskiego-Regular]
- \definefontsynonym [SerifBold] [AntykwaPoltawskiego-Bold]
- \definefontsynonym [SerifItalic] [AntykwaPoltawskiego-Italic]
- \definefontsynonym [SerifSlanted] [AntykwaPoltawskiego-Italic]
- \definefontsynonym [SerifBoldItalic] [AntykwaPoltawskiego-Bold]
- \definefontsynonym [SerifBoldSlanted] [AntykwaPoltawskiego-Bold]
- \definefontsynonym [SerifCaps] [AntykwaPoltawskiego-Regular]
-\stoptypescript
-
-% Baskerville :
-%
-% \starttypescript [serif] [baskerville] [name]
-% \definefontsynonym [Serif] [Baskerville]
-% \definefontsynonym [SerifBold] [Baskerville-Bold]
-% \definefontsynonym [SerifItalic] [Baskerville-Italic]
-% \definefontsynonym [SerifSlanted] [Baskerville-Italic]
-% \definefontsynonym [SerifBoldItalic] [Baskerville-BoldItalic]
-% \definefontsynonym [SerifBoldSlanted] [Baskerville-BoldItalic]
-% \definefontsynonym [SerifCaps] [Baskerville]
-% \stoptypescript
-%
-% % Garamond :
-%
-% \starttypescript [serif] [garamond] [name]
-% \definefontsynonym [Serif] [Garamond-Normal]
-% \definefontsynonym [SerifBold] [Garamond]
-% \definefontsynonym [SerifItalic] [Garamond-Medium-Italic]
-% \definefontsynonym [SerifSlanted] [Garamond-Medium-Italic]
-% \definefontsynonym [SerifBoldItalic] [Garamond-Medium-Italic]
-% \definefontsynonym [SerifBoldSlanted] [Garamond-Medium-Italic]
-% \definefontsynonym [SerifCaps] [Garamond]
-% \stoptypescript
-
-% Iwona
-
-\starttypescript [sans] [iwona-light] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-Light]
- \definefontsynonym [SansItalic] [Iwona-LightItalic]
- \definefontsynonym [SansBold] [Iwona-Medium]
- \definefontsynonym [SansBoldItalic] [Iwona-MediumItalic]
- \definefontsynonym [SansCaps] [Iwona-CapsLight]
- \definefontsynonym [SansItalicCaps] [Iwona-CapsLightItalic]
- \definefontsynonym [SansBoldCaps] [Iwona-CapsMedium]
- \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsMediumItalic]
-\stoptypescript
-
-\starttypescript [sans] [iwona-light-caps] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-CapsLight]
- \definefontsynonym [SansItalic] [Iwona-CapsLightItalic]
- \definefontsynonym [SansBold] [Iwona-CapsMedium]
- \definefontsynonym [SansBoldItalic] [Iwona-CapsMediumItalic]
-\stoptypescript
-
-\starttypescript [sans] [iwona] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-Regular]
- \definefontsynonym [SansItalic] [Iwona-RegularItalic]
- \definefontsynonym [SansBold] [Iwona-Bold]
- \definefontsynonym [SansBoldItalic] [Iwona-BoldItalic]
- \definefontsynonym [SansCaps] [Iwona-CapsRegular]
- \definefontsynonym [SansItalicCaps] [Iwona-CapsRegularItalic]
- \definefontsynonym [SansBoldCaps] [Iwona-CapsBold]
- \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsBoldItalic]
-\stoptypescript
-
-\starttypescript [sans] [iwona-caps] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-CapsRegular]
- \definefontsynonym [SansItalic] [Iwona-CapsRegularItalic]
- \definefontsynonym [SansBold] [Iwona-CapsBold]
- \definefontsynonym [SansBoldItalic] [Iwona-CapsBoldItalic]
-\stoptypescript
-
-\starttypescript [sans] [iwona-medium] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-Medium]
- \definefontsynonym [SansItalic] [Iwona-MediumItalic]
- \definefontsynonym [SansBold] [Iwona-Heavy]
- \definefontsynonym [SansBoldItalic] [Iwona-HeavyItalic]
- \definefontsynonym [SansCaps] [Iwona-CapsHeavy]
- \definefontsynonym [SansItalicCaps] [Iwona-CapsMediumItalic]
- \definefontsynonym [SansBoldCaps] [Iwona-CapsHeavy]
- \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsHeavyItalic]
-\stoptypescript
-
-\starttypescript [sans] [iwona-medium-caps] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-CapsHeavy]
- \definefontsynonym [SansItalic] [Iwona-CapsMediumItalic]
- \definefontsynonym [SansBold] [Iwona-CapsHeavy]
- \definefontsynonym [SansBoldItalic] [Iwona-CapsHeavyItalic]
-\stoptypescript
-
-\starttypescript [sans] [iwona-heavy] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-Heavy]
- \definefontsynonym [SansItalic] [Iwona-HeavyItalic]
- \definefontsynonym [SansBold] [Iwona-Heavy]
- \definefontsynonym [SansBoldItalic] [Iwona-HeavyItalic]
- \definefontsynonym [SansCaps] [Iwona-CapsHeavy]
- \definefontsynonym [SansItalicCaps] [Iwona-CapsHeavyItalic]
- \definefontsynonym [SansBoldCaps] [Iwona-CapsHeavy]
- \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsHeavyItalic]
-\stoptypescript
-
-\starttypescript [sans] [iwona-heavy-caps] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [SansCaps] [Iwona-CapsHeavy]
- \definefontsynonym [SansItalicCaps] [Iwona-CapsHeavyItalic]
- \definefontsynonym [SansBoldCaps] [Iwona-CapsHeavy]
- \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsHeavyItalic]
-\stoptypescript
-
-\starttypescript [sans] [iwona-light-cond] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-CondLight]
- \definefontsynonym [SansItalic] [Iwona-CondLightItalic]
- \definefontsynonym [SansBold] [Iwona-CondMedium]
- \definefontsynonym [SansBoldItalic] [Iwona-CondMediumItalic]
- \definefontsynonym [SansCaps] [Iwona-CondCapsLight]
- \definefontsynonym [SansItalicCaps] [Iwona-CondCapsLightItalic]
- \definefontsynonym [SansBoldCaps] [Iwona-CondCapsMedium]
- \definefontsynonym [SansBoldItalicCaps] [Iwona-CondCapsMediumItalic]
-\stoptypescript
-
-\starttypescript [sans] [iwona-light-cond-caps] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-CondCapsLight]
- \definefontsynonym [SansItalic] [Iwona-CondCapsLightItalic]
- \definefontsynonym [SansBold] [Iwona-CondCapsMedium]
- \definefontsynonym [SansBoldItalic] [Iwona-CondCapsMediumItalic]
-\stoptypescript
-
-\starttypescript [sans] [iwona-cond] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-CondRegular]
- \definefontsynonym [SansItalic] [Iwona-CondRegularItalic]
- \definefontsynonym [SansBold] [Iwona-CondBold]
- \definefontsynonym [SansBoldItalic] [Iwona-CondBoldItalic]
- \definefontsynonym [SansCaps] [Iwona-CondCapsRegular]
- \definefontsynonym [SansItalicCaps] [Iwona-CondCapsRegularItalic]
- \definefontsynonym [SansBoldCaps] [Iwona-CondCapsBold]
- \definefontsynonym [SansBoldItalicCaps] [Iwona-CondCapsBoldItalic]
-\stoptypescript
-
-\starttypescript [sans] [iwona-cond-caps] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-CondCapsRegular]
- \definefontsynonym [SansItalic] [Iwona-CondCapsRegularItalic]
- \definefontsynonym [SansBold] [Iwona-CondCapsBold]
- \definefontsynonym [SansBoldItalic] [Iwona-CondCapsBoldItalic]
-\stoptypescript
-
-\starttypescript [sans] [iwona-medium-cond] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-CondMedium]
- \definefontsynonym [SansItalic] [Iwona-CondMediumItalic]
- \definefontsynonym [SansBold] [Iwona-CondHeavy]
- \definefontsynonym [SansBoldItalic] [Iwona-CondHeavyItalic]
- \definefontsynonym [SansCaps] [Iwona-CondCapsHeavy]
- \definefontsynonym [SansItalicCaps] [Iwona-CondCapsMediumItalic]
- \definefontsynonym [SansBoldCaps] [Iwona-CondCapsHeavy]
- \definefontsynonym [SansBoldItalicCaps] [Iwona-CondCapsHeavyItalic]
-\stoptypescript
-
-\starttypescript [sans] [iwona-medium-cond-caps] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-CondCapsHeavy]
- \definefontsynonym [SansItalic] [Iwona-CondCapsMediumItalic]
- \definefontsynonym [SansBold] [Iwona-CondCapsHeavy]
- \definefontsynonym [SansBoldItalic] [Iwona-CondCapsHeavyItalic]
-\stoptypescript
-
-\starttypescript [math] [iwona-light] [name]
- \definefontsynonym [MathRoman] [Iwona-Math-Letters-Light]
- \definefontsynonym [MathItalic] [Iwona-Math-Letters-LightItalic]
- \definefontsynonym [MathSymbol] [Iwona-Math-Symbols-Light]
- \definefontsynonym [MathExtension] [Iwona-Math-Extension-Light]
-\stoptypescript
-
-\starttypescript [math] [iwona] [name]
- \definefontsynonym [MathRoman] [Iwona-Math-Letters-Regular]
- \definefontsynonym [MathItalic] [Iwona-Math-Letters-RegularItalic]
- \definefontsynonym [MathSymbol] [Iwona-Math-Symbols-Regular]
- \definefontsynonym [MathExtension] [Iwona-Math-Extension-Regular]
-\stoptypescript
-
-\starttypescript [math] [iwona-medium] [name]
- \definefontsynonym [MathRoman] [Iwona-Math-Letters-Medium]
- \definefontsynonym [MathItalic] [Iwona-Math-Letters-MediumItalic]
- \definefontsynonym [MathSymbol] [Iwona-Math-Symbols-Medium]
- \definefontsynonym [MathExtension] [Iwona-Math-Extension-Medium]
-\stoptypescript
-
-\starttypescript [math] [iwona-heavy] [name]
- \definefontsynonym [MathRoman] [Iwona-Math-Letters-Heavy]
- \definefontsynonym [MathItalic] [Iwona-Math-Letters-HeavyItalic]
- \definefontsynonym [MathSymbol] [Iwona-Math-Symbols-Heavy]
- \definefontsynonym [MathExtension] [Iwona-Math-Extension-Heavy]
-\stoptypescript
-
-% Kurier
-
-\starttypescript [sans] [kurier-light] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Kurier-Light]
- \definefontsynonym [SansItalic] [Kurier-LightItalic]
- \definefontsynonym [SansBold] [Kurier-Medium]
- \definefontsynonym [SansBoldItalic] [Kurier-MediumItalic]
-\stoptypescript
-
-\starttypescript [sans] [kurier] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Kurier-Regular]
- \definefontsynonym [SansItalic] [Kurier-RegularItalic]
- \definefontsynonym [SansBold] [Kurier-Bold]
- \definefontsynonym [SansBoldItalic] [Kurier-BoldItalic]
-\stoptypescript
-
-\starttypescript [sans] [kurier-medium] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Kurier-Medium]
- \definefontsynonym [SansItalic] [Kurier-MediumItalic]
- \definefontsynonym [SansBold] [Kurier-Heavy]
- \definefontsynonym [SansBoldItalic] [Kurier-HeavyItalic]
-\stoptypescript
-
-\starttypescript [math] [kurier-light] [name]
- \definefontsynonym [MathRoman] [Kurier-Math-Letters-Light]
- \definefontsynonym [MathItalic] [Kurier-Math-Letters-LightItalic]
- \definefontsynonym [MathSymbol] [Kurier-Math-Symbols-Light]
- \definefontsynonym [MathExtension] [Kurier-Math-Extension-Light]
-\stoptypescript
-
-\starttypescript [math] [kurier] [name]
- \definefontsynonym [MathRoman] [Kurier-Math-Letters-Regular]
- \definefontsynonym [MathItalic] [Kurier-Math-Letters-RegularItalic]
- \definefontsynonym [MathSymbol] [Kurier-Math-Symbols-Regular]
- \definefontsynonym [MathExtension] [Kurier-Math-Extension-Regular]
-\stoptypescript
-
-\starttypescript [math] [kurier-medium] [name]
- \definefontsynonym [MathRoman] [Kurier-Math-Letters-Medium]
- \definefontsynonym [MathItalic] [Kurier-Math-Letters-MediumItalic]
- \definefontsynonym [MathSymbol] [Kurier-Math-Symbols-Medium]
- \definefontsynonym [MathExtension] [Kurier-Math-Extension-Medium]
-\stoptypescript
-
-% Bookman :
-
-\starttypescript [serif] [bookman] [name]
- \definefontsynonym [Serif] [Bookman-Light]
- \definefontsynonym [SerifItalic] [Bookman-LightItalic]
- \definefontsynonym [SerifBold] [Bookman-DemiBold]
- \definefontsynonym [SerifBoldItalic] [Bookman-DemiBoldItalic]
- \definefontsynonym [SerifSlanted] [Bookman-LightSlanted]
- \definefontsynonym [SerifBoldSlanted] [Bookman-DemiBoldSlanted]
- \definefontsynonym [SerifCaps] [Bookman-Light-Caps]
-\stoptypescript
-
-% Chancery : Zapf
-
-\starttypescript [calligraphy] [chancery] [name]
- \definefontsynonym [Calligraphy] [Chancery]
-\stoptypescript
-
-% Schoolbook :
-
-\starttypescript [serif] [schoolbook] [name]
- \definefontsynonym [Serif] [Schoolbook-Roman]
- \definefontsynonym [SerifItalic] [Schoolbook-Italic]
- \definefontsynonym [SerifBold] [Schoolbook-Bold]
- \definefontsynonym [SerifBoldItalic] [Schoolbook-BoldItalic]
- \definefontsynonym [SerifSlanted] [Schoolbook-RomanSlanted]
- \definefontsynonym [SerifBoldSlanted] [Schoolbook-BoldSlanted]
- \definefontsynonym [SerifCaps] [Schoolbook-Roman-Caps]
-\stoptypescript
-
-% Utopia : Adobe
-
-\starttypescript [serif] [utopia] [name]
- \definefontsynonym [Serif] [Utopia-Regular]
- \definefontsynonym [SerifItalic] [Utopia-Italic]
- \definefontsynonym [SerifBold] [Utopia-Bold]
- \definefontsynonym [SerifBoldItalic] [Utopia-BoldItalic]
- \definefontsynonym [SerifSlanted] [Utopia-Slanted]
- \definefontsynonym [SerifBoldSlanted] [Utopia-BoldSlanted]
- \definefontsynonym [SerifCaps] [Utopia-Regular-Caps]
-\stoptypescript
-
-% Fourier : Michael Bovani
-
-\starttypescript [serif] [fourier] [name]
- \definefontsynonym [Serif] [Fourier-Regular]
- \definefontsynonym [SerifSlanted] [Fourier-Slanted]
- \definefontsynonym [SerifItalic] [Fourier-Italic]
- \definefontsynonym [SerifCaps] [Fourier-RegularCaps]
- \definefontsynonym [SerifBold] [Fourier-Bold]
- \definefontsynonym [SerifBoldSlanted] [Fourier-BoldSlanted]
- \definefontsynonym [SerifBoldItalic] [Fourier-BoldItalic]
- \definefontsynonym [SerifBoldCaps] [Fourier-BoldCaps]
-
- \definefontsynonym [Serif-Expert] [Fourier-Regular-Expert]
- \definefontsynonym [SerifSlanted-Expert] [Fourier-Slanted-Expert]
- \definefontsynonym [SerifItalic-Expert] [Fourier-Italic-Expert]
- \definefontsynonym [SerifCaps-Expert] [Fourier-RegularCaps-Expert]
- \definefontsynonym [SerifSemiBold-Expert] [Fourier-Semi-Expert]
- \definefontsynonym [SerifSemiSlanted-Expert] [Fourier-SemiSlanted-Expert]
- \definefontsynonym [SerifSemiItalic-Expert] [Fourier-SemiItalic-Expert]
- \definefontsynonym [SerifSemiCaps-Expert] [Fourier-SemiCaps-Expert]
- \definefontsynonym [SerifBold-Expert] [Fourier-Bold-Expert]
- \definefontsynonym [SerifBoldSlanted-Expert] [Fourier-BoldSlanted-Expert]
- \definefontsynonym [SerifBoldItalic-Expert] [Fourier-BoldItalic-Expert]
- \definefontsynonym [SerifBlack-Expert] [Fourier-Black-Expert]
-
- \definefontsynonym [Serif-OldStyle] [Fourier-Regular-OldStyle]
- \definefontsynonym [SerifSlanted-OldStyle] [Fourier-Slanted-OldStyle]
- \definefontsynonym [SerifItalic-OldStyle] [Fourier-Italic-OldStyle]
- \definefontsynonym [SerifCaps-OldStyle] [Fourier-RegularCaps-OldStyle]
- \definefontsynonym [SerifSemiBold-OldStyle] [Fourier-Semi-OldStyle]
- \definefontsynonym [SerifSemiSlanted-OldStyle] [Fourier-SemiSlanted-OldStyle]
- \definefontsynonym [SerifSemiItalic-OldStyle] [Fourier-SemiItalic-OldStyle]
- \definefontsynonym [SerifSemiCaps-OldStyle] [Fourier-SemiCaps-OldStyle]
- \definefontsynonym [SerifBold-OldStyle] [Fourier-Bold-OldStyle]
- \definefontsynonym [SerifBoldSlanted-OldStyle] [Fourier-BoldSlanted-OldStyle]
- \definefontsynonym [SerifBoldItalic-OldStyle] [Fourier-BoldItalic-OldStyle]
- \definefontsynonym [SerifBlack-OldStyle] [Fourier-Black-OldStyle]
- \definefontsynonym [SerifBlackSlanted-OldStyle] [Fourier-BlackSlanted-OldStyle]
-\stoptypescript
-
-\starttypescript [math] [fourier] [name]
- \definefontsynonym [MathRoman] [Fourier-Math-Letters]
- \definefontsynonym [MathItalic] [Fourier-Math-Letters-Italic]
- \definefontsynonym [MathSymbol] [Fourier-Math-Symbols]
- \definefontsynonym [MathExtension] [Fourier-Math-Extension]
-\stoptypescript
-
-\starttypescript [math] [fourier] [name] % todo
- \definefontsynonym [OldStyle] [Serif-OldStyle] % strange, no oldstyles
- \definefontsynonym [Fraktur] [eufm10]
- \definefontsynonym [Blackboard] [msbm10]
- \definefontsynonym [Gothic] [eufm10]
- \definefontsynonym [Calligraphic] [eusm10]
-\stoptypescript
-
-% Charter :
-
-\starttypescript [serif] [charter] [name]
- \definefontsynonym [Serif] [Charter-Roman]
- \definefontsynonym [SerifItalic] [Charter-Italic]
- \definefontsynonym [SerifBold] [Charter-Bold]
- \definefontsynonym [SerifBoldItalic] [Charter-BoldItalic]
- \definefontsynonym [SerifSlanted] [Charter-Slanted]
- \definefontsynonym [SerifBoldSlanted] [Charter-BoldSlanted]
- \definefontsynonym [SerifCaps] [Charter-Roman-Caps]
-\stoptypescript
-
-% Times :
-
-\starttypescript [serif] [times] [name]
- \definefontsynonym [Serif] [Times-Roman]
- \definefontsynonym [SerifBold] [Times-Bold]
- \definefontsynonym [SerifItalic] [Times-Italic]
- \definefontsynonym [SerifSlanted] [Times-Italic]
- \definefontsynonym [SerifBoldItalic] [Times-BoldItalic]
- \definefontsynonym [SerifBoldSlanted] [Times-BoldItalic]
- \definefontsynonym [SerifCaps] [Times-Roman]
-\stoptypescript
-
-\starttypescript [math] [times] [name]
- \definefontsynonym [MathRoman] [Times-Roman-Upright]
- \definefontsynonym [MathExtension] [Times-Math-Extension]
- \definefontsynonym [MathItalic] [Times-Math-Italic]
- \definefontsynonym [MathSymbol] [Times-Math-Symbols]
- \definefontsynonym [MathAlpha] [Times-Math-SymbolsA]
- \definefontsynonym [MathBeta] [Times-Math-SymbolsB]
-\stoptypescript
-
-\starttypescript [math] [times] [name]
- \definefontsynonym [OldStyle] [MathItalic]
- \definefontsynonym [Fraktur] [eufm10]
- \definefontsynonym [Blackboard] [MathBeta]
- \definefontsynonym [Gothic] [eufm10]
- \definefontsynonym [Calligraphic] [eusm10]
-\stoptypescript
-
-% Helvetica :
-
-\starttypescript [sans] [helvetica] [name]
- \definefontsynonym [Sans] [Helvetica]
- \definefontsynonym [SansBold] [Helvetica-Bold]
- \definefontsynonym [SansItalic] [Helvetica-Oblique]
- \definefontsynonym [SansSlanted] [Helvetica-Oblique]
- \definefontsynonym [SansBoldItalic] [Helvetica-BoldOblique]
- \definefontsynonym [SansBoldSlanted] [Helvetica-BoldOblique]
- \definefontsynonym [SansCaps] [Helvetica]
-\stoptypescript
-
-\starttypescript [math] [helvetica] [name]
- \definefontsynonym [MathRoman] [Helvetica-MathRoman]
- \definefontsynonym [MathExtension] [Helvetica-MathExtendedSymbols]
- \definefontsynonym [MathItalic] [Helvetica-MathItalics]
- \definefontsynonym [MathSymbol] [Helvetica-MathSymbols]
-\stoptypescript
-
-% Courier :
-
-\starttypescript [mono] [courier] [name]
- \definefontsynonym [Mono] [Courier]
- \definefontsynonym [MonoBold] [Courier-Bold]
- \definefontsynonym [MonoItalic] [Courier-Oblique]
- \definefontsynonym [MonoSlanted] [Courier-Oblique]
- \definefontsynonym [MonoBoldItalic] [Courier-BoldOblique]
- \definefontsynonym [MonoBoldSlanted] [Courier-BoldOblique]
- \definefontsynonym [MonoCaps] [Courier]
-\stoptypescript
-
-% Palatino : Hermann Zapf / URW
-
-\starttypescript [serif] [palatino] [name]
- \definefontsynonym [Serif] [Palatino]
- \definefontsynonym [SerifBold] [Palatino-Bold]
- \definefontsynonym [SerifItalic] [Palatino-Italic]
- \definefontsynonym [SerifSlanted] [Palatino-Slanted]
- \definefontsynonym [SerifBoldItalic] [Palatino-BoldItalic]
- \definefontsynonym [SerifBoldSlanted] [Palatino-BoldSlanted]
- \definefontsynonym [SerifCaps] [Palatino-Caps]
-\stoptypescript
-
-\starttypescript [math] [palatino] [name]
- \definefontsynonym [MathRoman] [Palatino-Roman-Upright]
- \definefontsynonym [MathExtension] [Palatino-Math-Extension]
- \definefontsynonym [MathItalic] [Palatino-Math-Italic]
- \definefontsynonym [MathSymbol] [Palatino-Math-Symbols]
- \definefontsynonym [MathAlpha] [Palatino-Math-SymbolsA]
- \definefontsynonym [MathBeta] [Palatino-Math-SymbolsB]
-\stoptypescript
-
-\starttypescript [math] [palatino] [name]
- \definefontsynonym [OldStyle] [MathItalic]
- \definefontsynonym [Fraktur] [eufm10]
- \definefontsynonym [Blackboard] [MathBeta]
- \definefontsynonym [Gothic] [eufm10]
- \definefontsynonym [Calligraphic] [eusm10]
-\stoptypescript
-
-% bonus definitions
-
-\starttypescript [serif] [palatino] [name]
- \definefontsynonym [SerifRegular] [Serif]
- \definefontsynonym [SerifRegularOsF] [TeXPalladioL-SC]
- \definefontsynonym [SerifItalicOsF] [TeXPalladioL-ItalicOsF]
- \definefontsynonym [SerifBoldOsF] [TeXPalladioL-BoldOsF]
- \definefontsynonym [SerifBoldItalicOsF][TeXPalladioL-BoldItalicOsF]
- \definefontsynonym [SerifCapsOsF] [TeXPalladioL-SC]
-\stoptypescript
-
-\stoptypescriptcollection
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/type-tmf.mkii b/Master/texmf-dist/tex/context/base/type-tmf.mkii
new file mode 100644
index 00000000000..3c17b0308b4
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/type-tmf.mkii
@@ -0,0 +1,1161 @@
+%D \module
+%D [ file=type-tmf,
+%D version=2007.07.30,
+%D title=\CONTEXT\ Typescript Macros,
+%D subtitle=Core \TEX\ Fonts,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\starttypescriptcollection[synonyms]
+
+% Computer Modern Roman : Donald Knuth
+% Latin Modern: LM Font Revision Team
+
+% LM math vs CM math (analysis by Taco):
+%
+% lmex10.tfm % identical
+% lmmi5.tfm % identical
+% lmmi6.tfm % identical
+% lmmi7.tfm % identical
+% lmmi8.tfm % identical
+% lmmi9.tfm % identical
+% lmmi10.tfm % identical
+% lmmi12.tfm % identical
+% lmmib10.tfm % identical
+% lmsy5.tfm % extra chars: 254,255 (octal)
+% lmsy6.tfm % extra chars: 254,255 (octal)
+% lmsy7.tfm % extra chars: 254,255 (octal)
+% lmsy8.tfm % extra chars: 254,255 (octal)
+% lmsy9.tfm % extra chars: 254,255 (octal)
+% lmsy10.tfm % extra chars: 254,255 (octal)
+% lmbsy10.tfm % extra chars: 254,255 (octal)
+%
+% From the 'AMS' set:
+%
+% lmmib5.tfm % identical
+% lmmib7.tfm % identical
+% lmbsy5.tfm % extra chars: 254,255 (octal)
+% lmbsy7.tfm % extra chars: 254,255 (octal)
+%
+% The two extra characters are:
+%
+% /lessorequalslant
+% /greaterorequalslant
+
+\starttypescript [serif] [modern,computer-modern,latin-modern] [name]
+ \definefontsynonym [Serif] [LMRoman-Regular]
+ \definefontsynonym [SerifBold] [LMRoman-Bold]
+ \definefontsynonym [SerifItalic] [LMRoman-Italic]
+ \definefontsynonym [SerifSlanted] [LMRoman-Oblique]
+ \definefontsynonym [SerifBoldItalic] [LMRoman-BoldItalic]
+ \definefontsynonym [SerifBoldSlanted] [LMRoman-BoldOblique]
+ \definefontsynonym [SerifCaps] [LMRoman-CapsRegular]
+ \definefontsynonym [SerifCapsSlanted] [LMRoman-CapsOblique]
+\stoptypescript
+
+\starttypescript [sans] [modern,computer-modern,latin-modern] [name]
+ \definefontsynonym [Sans] [LMSans-Regular]
+ \definefontsynonym [SansBold] [LMSans-Bold]
+ \definefontsynonym [SansItalic] [LMSans-Oblique]
+ \definefontsynonym [SansSlanted] [LMSans-Oblique]
+ \definefontsynonym [SansBoldItalic] [LMSans-BoldOblique]
+ \definefontsynonym [SansBoldSlanted] [LMSans-BoldOblique]
+ \definefontsynonym [SansCaps] [LMSans-Regular]
+ \definefontsynonym [SansCapsSlanted] [LMSans-Oblique]
+\stoptypescript
+
+\starttypescript [mono] [modern,computer-modern,latin-modern] [name]
+ \definefontsynonym [Mono] [LMTypewriter-Regular]
+ \definefontsynonym [MonoBold] [LMTypewriter-Dark]
+ \definefontsynonym [MonoItalic] [LMTypewriter-Italic]
+ \definefontsynonym [MonoSlanted] [LMTypewriter-Oblique]
+ \definefontsynonym [MonoBoldItalic] [LMTypewriter-DarkOblique]
+ \definefontsynonym [MonoBoldSlanted] [LMTypewriter-DarkOblique]
+ \definefontsynonym [MonoCaps] [LMTypewriter-CapsRegular]
+ \definefontsynonym [MonoCapsSlanted] [LMTypewriter-CapsOblique]
+ \definefontsynonym [MonoVariable] [LMTypewriterVarWd-Regular]
+\stoptypescript
+
+\starttypescript [math] [modern,computer-modern,latin-modern] [name]
+ \definefontsynonym [MathRoman] [LMMathRoman-Regular]
+ \definefontsynonym [MathExtension] [LMMathExtension-Regular]
+ \definefontsynonym [MathItalic] [LMMathItalic-Italic]
+ \definefontsynonym [MathSymbol] [LMMathSymbols-Italic]
+\stoptypescript
+
+\starttypescript [boldmath] [modern,computer-modern,latin-modern] [name]
+ \definefontsynonym [MathRoman] [LMMathRoman-Bold]
+ \definefontsynonym [MathExtension] [LMMathExtension-Regular]
+ \definefontsynonym [MathItalic] [LMMathItalic-BoldItalic]
+ \definefontsynonym [MathSymbol] [LMMathSymbols-BoldItalic]
+\stoptypescript
+
+\starttypescript [bfmath] [modern,computer-modern,latin-modern] [name]
+ \definefontsynonym [MathRomanBold] [LMMathRoman-Bold]
+ \definefontsynonym [MathExtension] [LMMathExtension-Regular]
+ \definefontsynonym [MathItalicBold] [LMMathItalic-BoldItalic]
+ \definefontsynonym [MathSymbolBold] [LMMathSymbols-BoldItalic]
+\stoptypescript
+
+\starttypescript [math,boldmath,bfmath] [modern,computer-modern,latin-modern] [name]
+ \usemathcollection[default]
+\stoptypescript
+
+\starttypescript [serif] [modern-vari,computer-modern-vari,latin-modern-vari] [name]
+ \definefontsynonym [Serif] [LMTypewriterVarWd-Regular]
+ \definefontsynonym [SerifBold] [LMTypewriterVarWd-Oblique]
+ \definefontsynonym [SerifItalic] [LMTypewriterVarWd-Oblique]
+ \definefontsynonym [SerifSlanted] [LMTypewriterVarWd-Dark]
+ \definefontsynonym [SerifBoldItalic] [LMTypewriterVarWd-DarkOblique]
+ \definefontsynonym [SerifBoldSlanted] [LMTypewriterVarWd-DarkOblique]
+ \definefontsynonym [SerifCaps] [LMTypewriterVarWd-Regular]
+ \definefontsynonym [SerifCapsSlanted] [LMTypewriterVarWd-Oblique]
+\stoptypescript
+
+\starttypescript [mono] [modern-cond,computer-modern-cond,latin-modern-cond,modern-lightcond,computer-modern-lightcond,latin-modern-lightcond] [name]
+ \definefontsynonym [Mono] [LMTypewriter-LightCondensed]
+ \definefontsynonym [MonoBold] [LMTypewriter-LightCondensed]
+ \definefontsynonym [MonoItalic] [LMTypewriter-LightCondensedOblique]
+ \definefontsynonym [MonoSlanted] [LMTypewriter-LightCondensedOblique]
+ \definefontsynonym [MonoBoldItalic] [LMTypewriter-LightCondensed]
+ \definefontsynonym [MonoBoldSlanted] [LMTypewriter-LightCondensed]
+ \definefontsynonym [MonoCaps] [LMTypewriter-LightCondensed]
+ \definefontsynonym [MonoCapsSlanted] [LMTypewriter-LightCondensed]
+\stoptypescript
+
+\starttypescript [mono] [modern-light,computer-modern-light,latin-modern-light] [name]
+ \definefontsynonym [Mono] [LMTypewriter-Light]
+ \definefontsynonym [MonoBold] [LMTypewriter-Light]
+ \definefontsynonym [MonoItalic] [LMTypewriter-LightOblique]
+ \definefontsynonym [MonoSlanted] [LMTypewriter-LightOblique]
+ \definefontsynonym [MonoBoldItalic] [LMTypewriter-Light]
+ \definefontsynonym [MonoBoldSlanted] [LMTypewriter-Light]
+ \definefontsynonym [MonoCaps] [LMTypewriter-Light]
+ \definefontsynonym [MonoCapsSlanted] [LMTypewriter-Light]
+\stoptypescript
+
+% Later we will map the real fonts, here we just map synonyms.
+
+\starttypescript [serif] [modern,latin-modern]
+ \definefontsynonym [LMRoman-DemiOblique] [LMRoman10-DemiOblique]
+ \definefontsynonym [LMRoman-Bold] [LMRoman10-Bold]
+ \definefontsynonym [LMRoman-BoldItalic] [LMRoman10-BoldItalic]
+ \definefontsynonym [LMRoman-BoldOblique] [LMRoman10-BoldOblique]
+ \definefontsynonym [LMRoman-CapsRegular] [LMRoman10-CapsRegular]
+ \definefontsynonym [LMRoman-CapsOblique] [LMRoman10-CapsOblique]
+ \definefontsynonym [LMRoman-Regular] [LMRoman10-Regular]
+ \definefontsynonym [LMRoman-Italic] [LMRoman10-Italic]
+ \definefontsynonym [LMRoman-Oblique] [LMRoman10-Oblique]
+\stoptypescript
+
+\starttypescript [sans] [modern,latin-modern]
+ \definefontsynonym [LMSans-Regular] [LMSans10-Regular]
+ \definefontsynonym [LMSans-BoldOblique] [LMSans10-BoldOblique]
+ \definefontsynonym [LMSans-Bold] [LMSans10-Bold]
+ \definefontsynonym [LMSans-DemiCondensed] [LMSans10-DemiCondensed]
+ \definefontsynonym [LMSans-DemiCondensedOblique] [LMSans10-DemiCondensedOblique]
+ \definefontsynonym [LMSans-Oblique] [LMSans10-Oblique]
+\stoptypescript
+
+\starttypescript [mono] [modern,latin-modern,modern-vari,latin-modern-vari,modern-cond,latin-modern-cond]
+ \definefontsynonym [LMTypewriter-CapsRegular] [LMTypewriter10-CapsRegular]
+ \definefontsynonym [LMTypewriter-CapsOblique] [LMTypewriter10-CapsOblique]
+ \definefontsynonym [LMTypewriter-Light] [LMTypewriter10-Light]
+ \definefontsynonym [LMTypewriter-LightOblique] [LMTypewriter10-LightOblique]
+ \definefontsynonym [LMTypewriter-LightCondensed] [LMTypewriter10-LightCondensed]
+ \definefontsynonym [LMTypewriter-LightCondensedOblique] [LMTypewriter10-LightCondensedOblique]
+ \definefontsynonym [LMTypewriter-Dark] [LMTypewriter10-Dark]
+ \definefontsynonym [LMTypewriter-DarkOblique] [LMTypewriter10-DarkOblique]
+ \definefontsynonym [LMTypewriter-Regular] [LMTypewriter10-Regular]
+ \definefontsynonym [LMTypewriter-Italic] [LMTypewriter10-Italic]
+ \definefontsynonym [LMTypewriter-Oblique] [LMTypewriter10-Oblique]
+ \definefontsynonym [LMTypewriterVarWd-Regular] [LMTypewriterVarWd10-Regular]
+ \definefontsynonym [LMTypewriterVarWd-Oblique] [LMTypewriterVarWd10-Oblique]
+ \definefontsynonym [LMTypewriterVarWd-Light] [LMTypewriterVarWd10-Light]
+ \definefontsynonym [LMTypewriterVarWd-LightOblique] [LMTypewriterVarWd10-LightOblique]
+ \definefontsynonym [LMTypewriterVarWd-Dark] [LMTypewriterVarWd10-Dark]
+ \definefontsynonym [LMTypewriterVarWd-DarkOblique] [LMTypewriterVarWd10-DarkOblique]
+\stoptypescript
+
+\starttypescript [serif] [modern,computer-modern,latin-modern]
+ \definefontsynonym [ComputerModern] [LMRoman-Regular]
+ \definefontsynonym [ComputerModern-Italic] [LMRoman-Italic]
+ \definefontsynonym [ComputerModern-Slanted] [LMRoman-Oblique]
+ \definefontsynonym [ComputerModern-Bold] [LMRoman-Bold]
+ \definefontsynonym [ComputerModern-BoldItalic] [LMRoman-BoldItalic]
+ \definefontsynonym [ComputerModern-BoldSlanted] [LMRoman-BoldOblique]
+ \definefontsynonym [ComputerModern-Caps] [LMRoman-CapsRegular]
+ \definefontsynonym [ComputerModern-CapsSlanted] [LMRoman-CapsOblique]
+\stoptypescript
+
+\starttypescript [sans] [modern,computer-modern,latin-modern]
+ \definefontsynonym [ComputerModernSans] [LMSans-Regular]
+ \definefontsynonym [ComputerModernSans-Italic] [LMSans-Oblique]
+ \definefontsynonym [ComputerModernSans-Slanted] [LMSans-Oblique]
+ \definefontsynonym [ComputerModernSans-Bold] [LMSans-Bold]
+ \definefontsynonym [ComputerModernSans-BoldItalic] [LMSans-BoldOblique]
+ \definefontsynonym [ComputerModernSans-BoldSlanted] [LMSans-BoldOblique]
+ \definefontsynonym [ComputerModernSans-Caps] [LMSans-Regular] % [LMSans-CapsRegular]
+ \definefontsynonym [ComputerModernSans-CapsSlanted] [LMSans-Oblique] % [LMSans-CapsOblique]
+\stoptypescript
+
+\starttypescript [mono] [modern,computer-modern,latin-modern]
+ \definefontsynonym [ComputerModernMono] [LMTypewriter-Regular]
+ \definefontsynonym [ComputerModernMono-Italic] [LMTypewriter-Italic]
+ \definefontsynonym [ComputerModernMono-Slanted] [LMTypewriter-Oblique]
+ \definefontsynonym [ComputerModernMono-Bold] [LMTypewriter-Dark]
+ \definefontsynonym [ComputerModernMono-BoldItalic] [LMTypewriter-DarkOblique] % !
+ \definefontsynonym [ComputerModernMono-BoldSlanted] [LMTypewriter-DarkOblique]
+ \definefontsynonym [ComputerModernMono-Caps] [LMTypewriter-CapsRegular]
+ \definefontsynonym [ComputerModernMono-CapsSlanted] [LMTypewriter-CapsOblique]
+ \definefontsynonym [ComputerModernMono-Variable] [LMTypewriterVarWd-Regular]
+\stoptypescript
+
+\starttypescript [serif] [modern-vari,computer-modern-vari,latin-modern-vari]
+ \definefontsynonym [ComputerModernVariable] [LMTypewriterVarWd-Regular]
+ \definefontsynonym [ComputerModernVariable-Italic] [LMTypewriterVarWd-Oblique]
+ \definefontsynonym [ComputerModernVariable-Slanted] [LMTypewriterVarWd-Oblique]
+ \definefontsynonym [ComputerModernVariable-Bold] [LMTypewriterVarWd-Dark]
+ \definefontsynonym [ComputerModernVariable-BoldItalic] [LMTypewriterVarWd-DarkOblique]
+ \definefontsynonym [ComputerModernVariable-BoldSlanted] [LMTypewriterVarWd-DarkOblique]
+ \definefontsynonym [ComputerModernVariable-Caps] [LMTypewriterVarWd-Regular]
+ \definefontsynonym [ComputerModernVariable-CapsSlanted] [LMTypewriterVarWd-Oblique]
+\stoptypescript
+
+\starttypescript [math] [modern,latin-modern]
+ \definefontsynonym [LMMathRoman-Regular] [LMMathRoman10-Regular]
+ \definefontsynonym [LMMathRoman-Bold] [LMMathRoman10-Bold]
+ \definefontsynonym [LMMathSymbols-BoldItalic] [LMMathSymbols10-BoldItalic]
+ \definefontsynonym [LMMathSymbols-Italic] [LMMathSymbols10-Italic]
+ \definefontsynonym [LMMathExtension-Regular] [LMMathExtension10-Regular]
+ \definefontsynonym [LMMathItalic-Italic] [LMMathItalic10-Italic]
+ \definefontsynonym [LMMathItalic-BoldItalic] [LMMathItalic10-BoldItalic]
+\stoptypescript
+
+% can boldmath and bfmath be joined?
+\starttypescript [boldmath] [modern,computer-modern,latin-modern] [name]
+ \definefontsynonym [LMMathRoman-Bold] [LMMathRoman10-Bold]
+ \definefontsynonym [LMMathExtension-Regular] [LMMathExtension10-Regular]
+ \definefontsynonym [LMMathItalic-BoldItalic] [LMMathItalic10-BoldItalic]
+ \definefontsynonym [LMMathSymbols-BoldItalic] [LMMathSymbols10-BoldItalic]
+\stoptypescript
+
+\starttypescript [bfmath] [modern,computer-modern,latin-modern] [name]
+ \definefontsynonym [LMMathRoman-Bold] [LMMathRoman10-Bold]
+ \definefontsynonym [LMMathExtension-Regular] [LMMathExtension10-Regular]
+ \definefontsynonym [LMMathItalic-BoldItalic] [LMMathItalic10-BoldItalic]
+ \definefontsynonym [LMMathSymbols-BoldItalic] [LMMathSymbols10-BoldItalic]
+\stoptypescript
+
+\starttypescript [serif] [modern,latin-modern,computer-modern]
+ \definefontsynonym [cmr5] [LMRoman5-Regular]
+ \definefontsynonym [cmr6] [LMRoman6-Regular]
+ \definefontsynonym [cmr7] [LMRoman7-Regular]
+ \definefontsynonym [cmr8] [LMRoman8-Regular]
+ \definefontsynonym [cmr9] [LMRoman9-Regular]
+ \definefontsynonym [cmr10] [LMRoman10-Regular]
+ \definefontsynonym [cmr12] [LMRoman12-Regular]
+ \definefontsynonym [cmr17] [LMRoman17-Regular]
+ \definefontsynonym [cmbx5] [LMRoman5-Bold]
+ \definefontsynonym [cmbx6] [LMRoman6-Bold]
+ \definefontsynonym [cmbx7] [LMRoman7-Bold]
+ \definefontsynonym [cmbx8] [LMRoman8-Bold]
+ \definefontsynonym [cmbx9] [LMRoman9-Bold]
+ \definefontsynonym [cmbx10] [LMRoman10-Bold]
+ \definefontsynonym [cmbx12] [LMRoman12-Bold]
+ \definefontsynonym [cmsl10] [LMRoman10-Oblique]
+ \definefontsynonym [cmsl12] [LMRoman12-Oblique]
+ \definefontsynonym [cmsl17] [LMRoman17-Oblique]
+ \definefontsynonym [cmsl8] [LMRoman8-Oblique]
+ \definefontsynonym [cmsl9] [LMRoman9-Oblique]
+ \definefontsynonym [cmti7] [LMRoman7-Italic]
+ \definefontsynonym [cmti8] [LMRoman8-Italic]
+ \definefontsynonym [cmti9] [LMRoman9-Italic]
+ \definefontsynonym [cmti10] [LMRoman10-Italic]
+ \definefontsynonym [cmti12] [LMRoman12-Italic]
+ \definefontsynonym [cmbsl10] [LMRoman10-DemiOblique]
+ \definefontsynonym [cmbxsl10] [LMRoman10-BoldOblique]
+ \definefontsynonym [cmbxti10] [LMRoman10-BoldItalic]
+ \definefontsynonym [cmcsc10] [LMRoman10-CapsRegular]
+ \definefontsynonym [cmcscsl10][LMRoman10-CapsOblique]
+
+ %definefontsynonym [cmb10]
+\stoptypescript
+
+\starttypescript [sans] [modern,latin-modern,computer-modern]
+ \definefontsynonym [cmss8] [LMSans8-Regular]
+ \definefontsynonym [cmss9] [LMSans9-Regular]
+ \definefontsynonym [cmss10] [LMSans10-Regular]
+ \definefontsynonym [cmss12] [LMSans12-Regular]
+ \definefontsynonym [cmss17] [LMSans17-Regular]
+ \definefontsynonym [cmssi10] [LMSans10-Oblique]
+ \definefontsynonym [cmssi12] [LMSans12-Oblique]
+ \definefontsynonym [cmssi17] [LMSans17-Oblique]
+ \definefontsynonym [cmssi8] [LMSans8-Oblique]
+ \definefontsynonym [cmssi9] [LMSans9-Oblique]
+ \definefontsynonym [cmssq8] [LMSansQuotation8-Regular]
+ \definefontsynonym [cmssqb8] [LMSansQuotation8-Bold]
+ \definefontsynonym [cmssqbi8] [LMSansQuotation8-BoldOblique]
+ \definefontsynonym [cmssqi8] [LMSansQuotation8-Oblique]
+ \definefontsynonym [cmssbx10] [LMSans10-Bold]
+ \definefontsynonym [cmssdc10] [LMSans10-DemiCondensed]
+ \definefontsynonym [cmssbi10] [LMSans10-BoldOblique]
+ \definefontsynonym [cmssdi10] [LMSans10-DemiCondensedOblique]
+\stoptypescript
+
+\starttypescript [mono] [modern,latin-modern,computer-modern]
+ \definefontsynonym [cmtt8] [LMTypewriter8-Regular]
+ \definefontsynonym [cmtt9] [LMTypewriter9-Regular]
+ \definefontsynonym [cmtt10] [LMTypewriter10-Regular]
+ \definefontsynonym [cmtt12] [LMTypewriter12-Regular]
+ \definefontsynonym [cmitt10] [LMTypewriter10-Italic]
+ \definefontsynonym [cmsltt10] [LMTypewriter10-Oblique]
+ \definefontsynonym [cmvtt10] [LMTypewriterVarWd10-Regular]
+ \definefontsynonym [cmvtti10] [LMTypewriterVarWd10-Oblique]
+ \definefontsynonym [cmtcsc10] [LMTypewriter10-CapsRegular]
+\stoptypescript
+
+\starttypescript [math] [modern,latin-modern,computer-modern]
+ \definefontsynonym [cmbsy5] [LMMathSymbols5-BoldItalic]
+ \definefontsynonym [cmbsy7] [LMMathSymbols7-BoldItalic]
+ \definefontsynonym [cmbsy10] [LMMathSymbols10-BoldItalic]
+ \definefontsynonym [cmsy5] [LMMathSymbols5-Italic]
+ \definefontsynonym [cmsy6] [LMMathSymbols6-Italic]
+ \definefontsynonym [cmsy7] [LMMathSymbols7-Italic]
+ \definefontsynonym [cmsy8] [LMMathSymbols8-Italic]
+ \definefontsynonym [cmsy9] [LMMathSymbols9-Italic]
+ \definefontsynonym [cmsy10] [LMMathSymbols10-Italic]
+ \definefontsynonym [cmex10] [LMMathExtension10-Regular]
+ \definefontsynonym [cmmi5] [LMMathItalic5-Italic]
+ \definefontsynonym [cmmi6] [LMMathItalic6-Italic]
+ \definefontsynonym [cmmi7] [LMMathItalic7-Italic]
+ \definefontsynonym [cmmi8] [LMMathItalic8-Italic]
+ \definefontsynonym [cmmi9] [LMMathItalic9-Italic]
+ \definefontsynonym [cmmi10] [LMMathItalic10-Italic]
+ \definefontsynonym [cmmi12] [LMMathItalic12-Italic]
+ \definefontsynonym [cmmib5] [LMMathItalic5-BoldItalic]
+ \definefontsynonym [cmmib7] [LMMathItalic7-BoldItalic]
+ \definefontsynonym [cmmib10] [LMMathItalic10-BoldItalic]
+\stoptypescript
+
+% This will change some day.
+
+\starttypescript [math] [modern,computer-modern,latin-modern] [name]
+ \definefontsynonym [OldStyle] [MathItalic]
+ \definefontsynonym [Fraktur] [eufm10]
+ \definefontsynonym [Blackboard] [msbm10]
+ \definefontsynonym [Gothic] [eufm10]
+ \definefontsynonym [Calligraphic] [cmsy10]
+\stoptypescript
+
+% Concrete Modern Roman : Donald Knuth
+
+\starttypescript [serif] [concrete] [name]
+ \definefontsynonym [Serif] [ComputerConcrete]
+ \definefontsynonym [SerifBold] [ComputerConcrete]
+ \definefontsynonym [SerifItalic] [ComputerConcrete-Italic]
+ \definefontsynonym [SerifSlanted] [ComputerConcrete-Slanted]
+ \definefontsynonym [SerifBoldItalic] [ComputerConcrete-Italic]
+ \definefontsynonym [SerifBoldSlanted] [ComputerConcrete-Slanted]
+ \definefontsynonym [SerifCaps] [ComputerConcrete-Caps]
+\stoptypescript
+
+% Euler : Hermann Zapf
+
+\starttypescript [math] [euler] [name]
+ \definefontsynonym [MathRoman] [Euler-Roman] % mr
+ \definefontsynonym [MathItalic] [Euler-Fraktur] % mi
+ \definefontsynonym [MathExtension] [Euler-Extension] % ex
+ \definefontsynonym [MathSymbol] [Euler-Symbol] % sy
+\stoptypescript
+
+\starttypescript [boldmath] [euler] [name]
+ \definefontsynonym [MathRoman] [Euler-Roman-Bold] % mr
+ \definefontsynonym [MathItalic] [Euler-Fraktur-Bold] % mi
+ \definefontsynonym [MathExtension] [Euler-Extension] % ex
+ \definefontsynonym [MathSymbol] [Euler-Symbol-Bold] % sy
+\stoptypescript
+
+\starttypescript [bfmath] [euler] [name]
+ \definefontsynonym [MathRomanBold] [Euler-Roman-Bold] % mr
+ \definefontsynonym [MathItalicBold] [Euler-Fraktur-Bold] % mi
+ \definefontsynonym [MathExtension] [Euler-Extension] % ex
+ \definefontsynonym [MathSymbolBold] [Euler-Symbol-Bold] % sy
+\stoptypescript
+
+\starttypescript [math] [euler] [name]
+ \definefontsynonym [OldStyle] [MathItalic]
+ \definefontsynonym [Fraktur] [MathItalic]
+ \definefontsynonym [Gothic] [MathItalic]
+ \definefontsynonym [Calligraphic] [MathSymbol]
+\stoptypescript
+
+\starttypescript [boldmath] [euler] [name]
+ \definefontsynonym [OldStyle] [MathItalicBold]
+ \definefontsynonym [Fraktur] [MathItalicBold]
+ \definefontsynonym [Gothic] [MathItalicBold]
+ \definefontsynonym [Calligraphic] [MathSymbolBold]
+\stoptypescript
+
+\starttypescript [math,boldmath,bfmath] [euler] [name]
+ \usemathcollection[eul]
+\stoptypescript
+
+% American Math Society : Michael Spivak
+
+\starttypescript [math] [modern,computer-modern,latin-modern,ams] [name]
+ \definefontsynonym [MathAlpha] [AMS-SymbolA]
+ \definefontsynonym [MathBeta] [AMS-SymbolB]
+\stoptypescript
+
+% Antykwa Torunska :
+
+\starttypescript [serif] [antykwa-torunska] [name]
+ \definefontsynonym [Serif] [AntykwaTorunska-Regular]
+ \definefontsynonym [SerifBold] [AntykwaTorunska-Bold]
+ \definefontsynonym [SerifItalic] [AntykwaTorunska-Italic]
+ \definefontsynonym [SerifSlanted] [AntykwaTorunska-Italic]
+ \definefontsynonym [SerifBoldItalic] [AntykwaTorunska-BoldItalic]
+ \definefontsynonym [SerifBoldSlanted] [AntykwaTorunska-BoldItalic]
+ \definefontsynonym [SerifCaps] [AntykwaTorunska-Cap]
+\stoptypescript
+
+\starttypescript [serif] [antykwa-torunska-light] [name]
+ \definefontsynonym [Serif] [AntykwaTorunska-Light]
+ \definefontsynonym [SerifBold] [AntykwaTorunska-Medium]
+ \definefontsynonym [SerifItalic] [AntykwaTorunska-LightItalic]
+ \definefontsynonym [SerifSlanted] [AntykwaTorunska-LightItalic]
+ \definefontsynonym [SerifBoldItalic] [AntykwaTorunska-MedItalic]
+ \definefontsynonym [SerifBoldSlanted] [AntykwaTorunska-MedItalic]
+ \definefontsynonym [SerifCaps] [AntykwaTorunska-LightCap]
+\stoptypescript
+
+\starttypescript [serif] [antykwa-torunska-cond] [name]
+ \definefontsynonym [Serif] [AntykwaTorunska-CondRegular]
+ \definefontsynonym [SerifBold] [AntykwaTorunska-CondBold]
+ \definefontsynonym [SerifItalic] [AntykwaTorunska-CondItalic]
+ \definefontsynonym [SerifSlanted] [AntykwaTorunska-CondItalic]
+ \definefontsynonym [SerifBoldItalic] [AntykwaTorunska-CondBoldItalic]
+ \definefontsynonym [SerifBoldSlanted] [AntykwaTorunska-CondBoldItalic]
+ \definefontsynonym [SerifCaps] [AntykwaTorunska-CondCap]
+\stoptypescript
+
+\starttypescript [serif] [antykwa-torunska-lightcond] [name]
+ \definefontsynonym [Serif] [AntykwaTorunska-CondLight]
+ \definefontsynonym [SerifBold] [AntykwaTorunska-CondMedium]
+ \definefontsynonym [SerifItalic] [AntykwaTorunska-CondLightItalic]
+ \definefontsynonym [SerifSlanted] [AntykwaTorunska-CondLightItalic]
+ \definefontsynonym [SerifBoldItalic] [AntykwaTorunska-CondMedItalic]
+ \definefontsynonym [SerifBoldSlanted] [AntykwaTorunska-CondMedItalic]
+ \definefontsynonym [SerifCaps] [AntykwaTorunska-CondLightCap]
+\stoptypescript
+
+\starttypescript [serif] [antykwa-torunska] [name]
+ \definefontsynonym [SerifRegular] [Serif]
+ \definefontsynonym [SerifRegularCaps] [AntykwaTorunska-Cap]
+ \definefontsynonym [SerifBoldCaps] [AntykwaTorunska-BoldCap]
+ \definefontsynonym [SerifItalicCaps] [AntykwaTorunska-ItalicCap]
+ \definefontsynonym [SerifSlantedCaps] [AntykwaTorunska-ItalicCap]
+ \definefontsynonym [SerifBoldItalicCaps] [AntykwaTorunska-BoldItalicCap]
+ \definefontsynonym [SerifBoldSlantedCaps] [AntykwaTorunska-BoldItalicCap]
+ \definefontsynonym [SerifCapsCaps] [AntykwaTorunska-Cap]
+
+ \definefontvariant [Serif][osf][Caps]
+ \definefontvariant [Serif][sc] [Caps]
+
+ \definefontsynonym [SerifRegularLight] [AntykwaTorunska-Light]
+ \definefontsynonym [SerifBoldLight] [AntykwaTorunska-Medium]
+ \definefontsynonym [SerifItalicLight] [AntykwaTorunska-LightItalic]
+ \definefontsynonym [SerifSlantedLight] [AntykwaTorunska-LightItalic]
+ \definefontsynonym [SerifBoldItalicLight] [AntykwaTorunska-MedItalic]
+ \definefontsynonym [SerifBoldSlantedLight] [AntykwaTorunska-MedItalic]
+ \definefontsynonym [SerifCapsLight] [AntykwaTorunska-LightCap]
+
+ \definefontvariant [Serif][lt][Light]
+
+ \definefontsynonym [SerifRegularCond] [AntykwaTorunska-CondRegular]
+ \definefontsynonym [SerifBoldCond] [AntykwaTorunska-CondBold]
+ \definefontsynonym [SerifItalicCond] [AntykwaTorunska-CondItalic]
+ \definefontsynonym [SerifSlantedCond] [AntykwaTorunska-CondItalic]
+ \definefontsynonym [SerifBoldItalicCond] [AntykwaTorunska-CondBoldItalic]
+ \definefontsynonym [SerifBoldSlantedCond] [AntykwaTorunska-CondBoldItalic]
+ \definefontsynonym [SerifCapsCond] [AntykwaTorunska-CondCap]
+
+ \definefontvariant [Serif][cond][Cond]
+
+\stoptypescript
+
+\starttypescript [serif] [antykwa-torunska-light] [name]
+ \definefontsynonym [SerifRegular] [Serif]
+ \definefontsynonym [SerifRegularCaps] [AntykwaTorunska-LightCap]
+ \definefontsynonym [SerifBoldCaps] [AntykwaTorunska-MediumCap]
+ \definefontsynonym [SerifItalicCaps] [AntykwaTorunska-LightItalicCap]
+ \definefontsynonym [SerifSlantedCaps] [AntykwaTorunska-LightItalicCap]
+ \definefontsynonym [SerifBoldItalicCaps] [AntykwaTorunska-MedItalicCap]
+ \definefontsynonym [SerifBoldSlantedCaps] [AntykwaTorunska-MedItalicCap]
+ \definefontsynonym [SerifCapsCaps] [AntykwaTorunska-LightCap]
+
+ \definefontvariant [Serif][osf][Caps]
+ \definefontvariant [Serif][sc] [Caps]
+
+ \definefontsynonym [SerifRegularDark] [AntykwaTorunska-Regular]
+ \definefontsynonym [SerifBoldDark] [AntykwaTorunska-Bold]
+ \definefontsynonym [SerifItalicDark] [AntykwaTorunska-Italic]
+ \definefontsynonym [SerifSlantedDark] [AntykwaTorunska-Italic]
+ \definefontsynonym [SerifBoldItalicDark] [AntykwaTorunska-BoldItalic]
+ \definefontsynonym [SerifBoldSlantedDark] [AntykwaTorunska-BoldItalic]
+ \definefontsynonym [SerifCapsDark] [AntykwaTorunska-Cap]
+
+ \definefontvariant [Serif][dk][Dark]
+
+ \definefontsynonym [SerifRegularCond] [AntykwaTorunska-CondLight]
+ \definefontsynonym [SerifBoldCond] [AntykwaTorunska-CondMedium]
+ \definefontsynonym [SerifItalicCond] [AntykwaTorunska-CondLightItalic]
+ \definefontsynonym [SerifSlantedCond] [AntykwaTorunska-CondLightItalic]
+ \definefontsynonym [SerifBoldItalicCond] [AntykwaTorunska-CondMedItalic]
+ \definefontsynonym [SerifBoldSlantedCond] [AntykwaTorunska-CondMedItalic]
+ \definefontsynonym [SerifCapsCond] [AntykwaTorunska-CondLightCap]
+
+ \definefontvariant [Serif][cond][Cond]
+
+\stoptypescript
+
+\starttypescript [serif] [antykwa-torunska-cond] [name]
+ \definefontsynonym [SerifRegular] [Serif]
+ \definefontsynonym [SerifRegularCaps] [AntykwaTorunska-CondCap]
+ \definefontsynonym [SerifBoldCaps] [AntykwaTorunska-CondBoldCap]
+ \definefontsynonym [SerifItalicCaps] [AntykwaTorunska-CondItalicCap]
+ \definefontsynonym [SerifSlantedCaps] [AntykwaTorunska-CondItalicCap]
+ \definefontsynonym [SerifBoldItalicCaps] [AntykwaTorunska-CondBoldItalicCap]
+ \definefontsynonym [SerifBoldSlantedCaps] [AntykwaTorunska-CondBoldItalicCap]
+ \definefontsynonym [SerifCapsCaps] [AntykwaTorunska-CondCap]
+
+ \definefontvariant [Serif][osf][Caps]
+ \definefontvariant [Serif][sc] [Caps]
+
+ \definefontsynonym [SerifRegularLight] [AntykwaTorunska-CondLight]
+ \definefontsynonym [SerifBoldLight] [AntykwaTorunska-CondMedium]
+ \definefontsynonym [SerifItalicLight] [AntykwaTorunska-CondLightItalic]
+ \definefontsynonym [SerifSlantedLight] [AntykwaTorunska-CondLightItalic]
+ \definefontsynonym [SerifBoldItalicLight] [AntykwaTorunska-CondMedItalic]
+ \definefontsynonym [SerifBoldSlantedLight] [AntykwaTorunska-CondMedItalic]
+ \definefontsynonym [SerifCapsLight] [AntykwaTorunska-CondLightCap]
+
+ \definefontvariant [Serif][lt][Light]
+
+ \definefontsynonym [SerifRegularExp] [AntykwaTorunska-Regular]
+ \definefontsynonym [SerifBoldExp] [AntykwaTorunska-Bold]
+ \definefontsynonym [SerifItalicExp] [AntykwaTorunska-Italic]
+ \definefontsynonym [SerifSlantedExp] [AntykwaTorunska-Italic]
+ \definefontsynonym [SerifBoldItalicExp] [AntykwaTorunska-BoldItalic]
+ \definefontsynonym [SerifBoldSlantedExp] [AntykwaTorunska-BoldItalic]
+ \definefontsynonym [SerifCapsExp] [AntykwaTorunska-Cap]
+
+ \definefontvariant [Serif][exp][Exp]
+
+\stoptypescript
+
+\starttypescript [serif] [antykwa-torunska-lightcond] [name]
+ \definefontsynonym [SerifRegular] [Serif]
+ \definefontsynonym [SerifRegularCaps] [AntykwaTorunska-CondLightCap]
+ \definefontsynonym [SerifBoldCaps] [AntykwaTorunska-CondMediumCap]
+ \definefontsynonym [SerifItalicCaps] [AntykwaTorunska-CondLightItalicCap]
+ \definefontsynonym [SerifSlantedCaps] [AntykwaTorunska-CondLightItalicCap]
+ \definefontsynonym [SerifBoldItalicCaps] [AntykwaTorunska-CondMedItalicCap]
+ \definefontsynonym [SerifBoldSlantedCaps] [AntykwaTorunska-CondMedItalicCap]
+ \definefontsynonym [SerifCapsCaps] [AntykwaTorunska-CondLightCap]
+
+ \definefontvariant [Serif][osf][Caps]
+ \definefontvariant [Serif][sc] [Caps]
+
+ \definefontsynonym [SerifRegularDark] [AntykwaTorunska-CondRegular]
+ \definefontsynonym [SerifBoldDark] [AntykwaTorunska-CondBold]
+ \definefontsynonym [SerifItalicDark] [AntykwaTorunska-CondItalic]
+ \definefontsynonym [SerifSlantedDark] [AntykwaTorunska-CondItalic]
+ \definefontsynonym [SerifBoldItalicDark] [AntykwaTorunska-CondBoldItalic]
+ \definefontsynonym [SerifBoldSlantedDark] [AntykwaTorunska-CondBoldItalic]
+ \definefontsynonym [SerifCapsDark] [AntykwaTorunska-CondCap]
+
+ \definefontvariant [Serif][dk][Dark]
+
+ \definefontsynonym [SerifRegularExp] [AntykwaTorunska-Light]
+ \definefontsynonym [SerifBoldExp] [AntykwaTorunska-Medium]
+ \definefontsynonym [SerifItalicExp] [AntykwaTorunska-LightItalic]
+ \definefontsynonym [SerifSlantedExp] [AntykwaTorunska-LightItalic]
+ \definefontsynonym [SerifBoldItalicExp] [AntykwaTorunska-MedItalic]
+ \definefontsynonym [SerifBoldSlantedExp] [AntykwaTorunska-MedItalic]
+ \definefontsynonym [SerifCapsExp] [AntykwaTorunska-LightCap]
+
+ \definefontvariant [Serif][exp][Exp]
+
+\stoptypescript
+
+% maybe no -Regular etc
+
+\starttypescript [math] [antykwa-torunska-light] [name]
+ \definefontsynonym [MathRoman] [AntykwaTorunska-Math-Letters-Light]
+ \definefontsynonym [MathItalic] [AntykwaTorunska-Math-Letters-LightItalic]
+ \definefontsynonym [MathSymbol] [AntykwaTorunska-Math-Symbols-Light]
+ \definefontsynonym [MathExtension] [AntykwaTorunska-Math-Extension-Light]
+\stoptypescript
+
+\starttypescript [math] [antykwa-torunska] [name]
+ \definefontsynonym [MathRoman] [AntykwaTorunska-Math-Letters-Regular]
+ \definefontsynonym [MathItalic] [AntykwaTorunska-Math-Letters-Italic]
+ \definefontsynonym [MathSymbol] [AntykwaTorunska-Math-Symbols-Regular]
+ \definefontsynonym [MathExtension] [AntykwaTorunska-Math-Extension-Regular]
+\stoptypescript
+
+\starttypescript [math] [antykwa-torunska-cond] [name]
+ \definefontsynonym [MathRoman] [AntykwaTorunska-Math-Letters-CondRegular]
+ \definefontsynonym [MathItalic] [AntykwaTorunska-Math-Letters-CondItalic]
+ \definefontsynonym [MathSymbol] [AntykwaTorunska-Math-Symbols-CondRegular]
+ \definefontsynonym [MathExtension] [AntykwaTorunska-Math-Extension-CondRegular]
+\stoptypescript
+
+\starttypescript [math] [antykwa-torunska-lightcond] [name]
+ \definefontsynonym [MathRoman] [AntykwaTorunska-Math-Letters-CondLight]
+ \definefontsynonym [MathItalic] [AntykwaTorunska-Math-Letters-CondLightItalic]
+ \definefontsynonym [MathSymbol] [AntykwaTorunska-Math-Symbols-CondLight]
+ \definefontsynonym [MathExtension] [AntykwaTorunska-Math-Extension-CondLight]
+\stoptypescript
+
+% Antykwa Poltawskiego :
+
+\starttypescript [serif] [antykwa-poltawskiego] [name]
+ \definefontsynonym [Serif] [AntykwaPoltawskiego-Regular]
+ \definefontsynonym [SerifBold] [AntykwaPoltawskiego-Bold]
+ \definefontsynonym [SerifItalic] [AntykwaPoltawskiego-Italic]
+ \definefontsynonym [SerifSlanted] [AntykwaPoltawskiego-Italic]
+ \definefontsynonym [SerifBoldItalic] [AntykwaPoltawskiego-Bold]
+ \definefontsynonym [SerifBoldSlanted] [AntykwaPoltawskiego-Bold]
+ \definefontsynonym [SerifCaps] [AntykwaPoltawskiego-Regular]
+\stoptypescript
+
+% Iwona
+
+\starttypescript [sans] [iwona-light] [name]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Iwona-Light-Regular]
+ \definefontsynonym [SansItalic] [Iwona-Light-Italic]
+ \definefontsynonym [SansBold] [Iwona-Medium-Regular]
+ \definefontsynonym [SansBoldItalic] [Iwona-Medium-Italic]
+ \definefontsynonym [SansCaps] [Iwona-CapsLight]
+ \definefontsynonym [SansItalicCaps] [Iwona-CapsLightItalic]
+ \definefontsynonym [SansBoldCaps] [Iwona-CapsMedium]
+ \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsMediumItalic]
+\stoptypescript
+
+\starttypescript [sans] [iwona-light-caps] [name]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Iwona-CapsLight-Regular]
+ \definefontsynonym [SansItalic] [Iwona-CapsLight-Italic]
+ \definefontsynonym [SansBold] [Iwona-CapsMedium-Regular]
+ \definefontsynonym [SansBoldItalic] [Iwona-CapsMedium-Italic]
+\stoptypescript
+
+\starttypescript [sans] [iwona] [name]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Iwona-Regular]
+ \definefontsynonym [SansItalic] [Iwona-Italic]
+ \definefontsynonym [SansBold] [Iwona-Bold]
+ \definefontsynonym [SansBoldItalic] [Iwona-BoldItalic]
+ \definefontsynonym [SansCaps] [Iwona-CapsRegular]
+ \definefontsynonym [SansItalicCaps] [Iwona-CapsItalic]
+ \definefontsynonym [SansBoldCaps] [Iwona-CapsBold]
+ \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsBoldItalic]
+\stoptypescript
+
+\starttypescript [sans] [iwona-caps] [name]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Iwona-CapsRegular]
+ \definefontsynonym [SansItalic] [Iwona-CapsItalic]
+ \definefontsynonym [SansBold] [Iwona-CapsBold]
+ \definefontsynonym [SansBoldItalic] [Iwona-CapsBoldItalic]
+\stoptypescript
+
+\starttypescript [sans] [iwona-medium] [name]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Iwona-Medium-Regular]
+ \definefontsynonym [SansItalic] [Iwona-Medium-Italic]
+ \definefontsynonym [SansBold] [Iwona-Heavy-Regular]
+ \definefontsynonym [SansBoldItalic] [Iwona-Heavy-Italic]
+ \definefontsynonym [SansCaps] [Iwona-CapsHeavy-Regular]
+ \definefontsynonym [SansItalicCaps] [Iwona-CapsMedium-Italic]
+ \definefontsynonym [SansBoldCaps] [Iwona-CapsHeavy-Regular]
+ \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsHeavy-Italic]
+\stoptypescript
+
+\starttypescript [sans] [iwona-medium-caps] [name]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Iwona-CapsHeavy-Regular]
+ \definefontsynonym [SansItalic] [Iwona-CapsMedium-Italic]
+ \definefontsynonym [SansBold] [Iwona-CapsHeavy-Regular]
+ \definefontsynonym [SansBoldItalic] [Iwona-CapsHeavy-Italic]
+\stoptypescript
+
+\starttypescript [sans] [iwona-heavy] [name]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Iwona-Heavy-Regular]
+ \definefontsynonym [SansItalic] [Iwona-Heavy-Italic]
+ \definefontsynonym [SansBold] [Iwona-Heavy-Regular]
+ \definefontsynonym [SansBoldItalic] [Iwona-Heavy-Italic]
+ \definefontsynonym [SansCaps] [Iwona-CapsHeavy-Regular]
+ \definefontsynonym [SansItalicCaps] [Iwona-CapsHeavy-Italic]
+ \definefontsynonym [SansBoldCaps] [Iwona-CapsHeavy-Regular]
+ \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsHeavy-Italic]
+\stoptypescript
+
+\starttypescript [sans] [iwona-heavy-caps] [name]
+ \setups[font:fallback:sans]
+ \definefontsynonym [SansCaps] [Iwona-CapsHeavy-Regular]
+ \definefontsynonym [SansItalicCaps] [Iwona-CapsHeavy-Italic]
+ \definefontsynonym [SansBoldCaps] [Iwona-CapsHeavy-Regular]
+ \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsHeavy-Italic]
+\stoptypescript
+
+\starttypescript [sans] [iwona-light-cond] [name]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Iwona-CondLight-Regular]
+ \definefontsynonym [SansItalic] [Iwona-CondLight-Italic]
+ \definefontsynonym [SansBold] [Iwona-CondMedium-Regular]
+ \definefontsynonym [SansBoldItalic] [Iwona-CondMedium-Italic]
+ \definefontsynonym [SansCaps] [Iwona-CapsCondLight-Regular]
+ \definefontsynonym [SansItalicCaps] [Iwona-CapsCondLight-Italic]
+ \definefontsynonym [SansBoldCaps] [Iwona-CapsCondMedium-Regular]
+ \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsCondMedium-Italic]
+\stoptypescript
+
+\starttypescript [sans] [iwona-light-cond-caps,iwona-light-caps-cond] [name]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Iwona-CapsCondLight-Regular]
+ \definefontsynonym [SansItalic] [Iwona-CapsCondLight-Italic]
+ \definefontsynonym [SansBold] [Iwona-CapsCondMedium-Regular]
+ \definefontsynonym [SansBoldItalic] [Iwona-CapsCondMedium-Italic]
+\stoptypescript
+
+\starttypescript [sans] [iwona-cond] [name]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Iwona-CondRegular]
+ \definefontsynonym [SansItalic] [Iwona-CondItalic]
+ \definefontsynonym [SansBold] [Iwona-CondBold]
+ \definefontsynonym [SansBoldItalic] [Iwona-CondBoldItalic]
+ \definefontsynonym [SansCaps] [Iwona-CapsCondRegular]
+ \definefontsynonym [SansItalicCaps] [Iwona-CapsCondItalic]
+ \definefontsynonym [SansBoldCaps] [Iwona-CapsCondBold]
+ \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsCondBoldItalic]
+\stoptypescript
+
+\starttypescript [sans] [iwona-cond-caps,iwona-caps-cond] [name]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Iwona-CapsCondRegular]
+ \definefontsynonym [SansItalic] [Iwona-CapsCondItalic]
+ \definefontsynonym [SansBold] [Iwona-CapsCondBold]
+ \definefontsynonym [SansBoldItalic] [Iwona-CapsCondBoldItalic]
+\stoptypescript
+
+\starttypescript [sans] [iwona-medium-cond] [name]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Iwona-CondMedium-Regular]
+ \definefontsynonym [SansItalic] [Iwona-CondMedium-Italic]
+ \definefontsynonym [SansBold] [Iwona-CondHeavy-Regular]
+ \definefontsynonym [SansBoldItalic] [Iwona-CondHeavy-Italic]
+ \definefontsynonym [SansCaps] [Iwona-CapsCondHeavy-Regular]
+ \definefontsynonym [SansItalicCaps] [Iwona-CapsCondMedium-Italic]
+ \definefontsynonym [SansBoldCaps] [Iwona-CapsCondHeavy-Regular]
+ \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsCondHeavy-Italic]
+\stoptypescript
+
+\starttypescript [sans] [iwona-medium-cond-caps,iwona-medium-caps-cond] [name]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Iwona-CapsCondHeavy-Regular]
+ \definefontsynonym [SansItalic] [Iwona-CapsCondMedium-Italic]
+ \definefontsynonym [SansBold] [Iwona-CapsCondHeavy-Regular]
+ \definefontsynonym [SansBoldItalic] [Iwona-CapsCondHeavy-Italic]
+\stoptypescript
+
+\starttypescript [math] [iwona-light] [name]
+ \definefontsynonym [MathRoman] [Iwona-Math-Letters-Light-Regular]
+ \definefontsynonym [MathItalic] [Iwona-Math-Letters-Light-Italic]
+ \definefontsynonym [MathSymbol] [Iwona-Math-Symbols-Light]
+ \definefontsynonym [MathExtension] [Iwona-Math-Extension-Light]
+\stoptypescript
+
+\starttypescript [math] [iwona] [name]
+ \definefontsynonym [MathRoman] [Iwona-Math-Letters-Regular]
+ \definefontsynonym [MathItalic] [Iwona-Math-Letters-Italic]
+ \definefontsynonym [MathSymbol] [Iwona-Math-Symbols-Regular]
+ \definefontsynonym [MathExtension] [Iwona-Math-Extension-Regular]
+\stoptypescript
+
+\starttypescript [math] [iwona-medium] [name]
+ \definefontsynonym [MathRoman] [Iwona-Math-Letters-Medium-Regular]
+ \definefontsynonym [MathItalic] [Iwona-Math-Letters-Medium-Italic]
+ \definefontsynonym [MathSymbol] [Iwona-Math-Symbols-Medium]
+ \definefontsynonym [MathExtension] [Iwona-Math-Extension-Medium]
+\stoptypescript
+
+\starttypescript [math] [iwona-heavy] [name]
+ \definefontsynonym [MathRoman] [Iwona-Math-Letters-Heavy-Regular]
+ \definefontsynonym [MathItalic] [Iwona-Math-Letters-Heavy-Italic]
+ \definefontsynonym [MathSymbol] [Iwona-Math-Symbols-Heavy]
+ \definefontsynonym [MathExtension] [Iwona-Math-Extension-Heavy]
+\stoptypescript
+
+% Kurier
+
+\starttypescript [sans] [kurier-light] [name]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Kurier-Light-Regular]
+ \definefontsynonym [SansItalic] [Kurier-Light-Italic]
+ \definefontsynonym [SansBold] [Kurier-Medium-Regular]
+ \definefontsynonym [SansBoldItalic] [Kurier-Medium-Italic]
+\stoptypescript
+
+\starttypescript [sans] [kurier] [name]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Kurier-Regular]
+ \definefontsynonym [SansItalic] [Kurier-Italic]
+ \definefontsynonym [SansBold] [Kurier-Bold]
+ \definefontsynonym [SansBoldItalic] [Kurier-BoldItalic]
+\stoptypescript
+
+\starttypescript [sans] [kurier-medium] [name]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Kurier-Medium-Regular]
+ \definefontsynonym [SansItalic] [Kurier-Medium-Italic]
+ \definefontsynonym [SansBold] [Kurier-Heavy-Regular]
+ \definefontsynonym [SansBoldItalic] [Kurier-Heavy-Italic]
+\stoptypescript
+
+\starttypescript [math] [kurier-light] [name]
+ \definefontsynonym [MathRoman] [Kurier-Math-Letters-Light-Regular]
+ \definefontsynonym [MathItalic] [Kurier-Math-Letters-Light-Italic]
+ \definefontsynonym [MathSymbol] [Kurier-Math-Symbols-Light]
+ \definefontsynonym [MathExtension] [Kurier-Math-Extension-Light]
+\stoptypescript
+
+\starttypescript [math] [kurier] [name]
+ \definefontsynonym [MathRoman] [Kurier-Math-Letters-Regular]
+ \definefontsynonym [MathItalic] [Kurier-Math-Letters-Italic]
+ \definefontsynonym [MathSymbol] [Kurier-Math-Symbols-Regular]
+ \definefontsynonym [MathExtension] [Kurier-Math-Extension-Regular]
+\stoptypescript
+
+\starttypescript [math] [kurier-medium] [name]
+ \definefontsynonym [MathRoman] [Kurier-Math-Letters-Medium-Regular]
+ \definefontsynonym [MathItalic] [Kurier-Math-Letters-Medium-Italic]
+ \definefontsynonym [MathSymbol] [Kurier-Math-Symbols-Medium]
+ \definefontsynonym [MathExtension] [Kurier-Math-Extension-Medium]
+\stoptypescript
+
+% Bookman :
+
+\starttypescript [serif] [bookman] [name]
+ \definefontsynonym [Serif] [Bookman-Light]
+ \definefontsynonym [SerifItalic] [Bookman-LightItalic]
+ \definefontsynonym [SerifBold] [Bookman-DemiBold]
+ \definefontsynonym [SerifBoldItalic] [Bookman-DemiBoldItalic]
+ \definefontsynonym [SerifSlanted] [Bookman-LightSlanted]
+ \definefontsynonym [SerifBoldSlanted] [Bookman-DemiBoldSlanted]
+ \definefontsynonym [SerifCaps] [Bookman-Light-Caps]
+\stoptypescript
+
+% Chancery : Zapf
+
+\starttypescript [calligraphy] [chancery] [name]
+ \definefontsynonym [Calligraphy] [Chancery]
+\stoptypescript
+
+% Schoolbook :
+
+\starttypescript [serif] [schoolbook] [name]
+ \definefontsynonym [Serif] [Schoolbook-Roman]
+ \definefontsynonym [SerifItalic] [Schoolbook-Italic]
+ \definefontsynonym [SerifBold] [Schoolbook-Bold]
+ \definefontsynonym [SerifBoldItalic] [Schoolbook-BoldItalic]
+ \definefontsynonym [SerifSlanted] [Schoolbook-RomanSlanted]
+ \definefontsynonym [SerifBoldSlanted] [Schoolbook-BoldSlanted]
+ \definefontsynonym [SerifCaps] [Schoolbook-Roman-Caps]
+\stoptypescript
+
+% Utopia : Adobe
+
+\starttypescript [serif] [utopia] [name]
+ \definefontsynonym [Serif] [Utopia-Regular]
+ \definefontsynonym [SerifItalic] [Utopia-Italic]
+ \definefontsynonym [SerifBold] [Utopia-Bold]
+ \definefontsynonym [SerifBoldItalic] [Utopia-BoldItalic]
+ \definefontsynonym [SerifSlanted] [Utopia-Slanted]
+ \definefontsynonym [SerifBoldSlanted] [Utopia-BoldSlanted]
+ \definefontsynonym [SerifCaps] [Utopia-Regular-Caps]
+\stoptypescript
+
+% Fourier : Michael Bovani
+
+\starttypescript [serif] [fourier] [name]
+ \definefontsynonym [Serif] [Fourier-Regular]
+ \definefontsynonym [SerifSlanted] [Fourier-Slanted]
+ \definefontsynonym [SerifItalic] [Fourier-Italic]
+ \definefontsynonym [SerifCaps] [Fourier-RegularCaps]
+ \definefontsynonym [SerifBold] [Fourier-Bold]
+ \definefontsynonym [SerifBoldSlanted] [Fourier-BoldSlanted]
+ \definefontsynonym [SerifBoldItalic] [Fourier-BoldItalic]
+ \definefontsynonym [SerifBoldCaps] [Fourier-BoldCaps]
+
+ \definefontsynonym [Serif-Expert] [Fourier-Regular-Expert]
+ \definefontsynonym [SerifSlanted-Expert] [Fourier-Slanted-Expert]
+ \definefontsynonym [SerifItalic-Expert] [Fourier-Italic-Expert]
+ \definefontsynonym [SerifCaps-Expert] [Fourier-RegularCaps-Expert]
+ \definefontsynonym [SerifSemiBold-Expert] [Fourier-Semi-Expert]
+ \definefontsynonym [SerifSemiSlanted-Expert] [Fourier-SemiSlanted-Expert]
+ \definefontsynonym [SerifSemiItalic-Expert] [Fourier-SemiItalic-Expert]
+ \definefontsynonym [SerifSemiCaps-Expert] [Fourier-SemiCaps-Expert]
+ \definefontsynonym [SerifBold-Expert] [Fourier-Bold-Expert]
+ \definefontsynonym [SerifBoldSlanted-Expert] [Fourier-BoldSlanted-Expert]
+ \definefontsynonym [SerifBoldItalic-Expert] [Fourier-BoldItalic-Expert]
+ \definefontsynonym [SerifBlack-Expert] [Fourier-Black-Expert]
+
+ \definefontsynonym [Serif-OldStyle] [Fourier-Regular-OldStyle]
+ \definefontsynonym [SerifSlanted-OldStyle] [Fourier-Slanted-OldStyle]
+ \definefontsynonym [SerifItalic-OldStyle] [Fourier-Italic-OldStyle]
+ \definefontsynonym [SerifCaps-OldStyle] [Fourier-RegularCaps-OldStyle]
+ \definefontsynonym [SerifSemiBold-OldStyle] [Fourier-Semi-OldStyle]
+ \definefontsynonym [SerifSemiSlanted-OldStyle] [Fourier-SemiSlanted-OldStyle]
+ \definefontsynonym [SerifSemiItalic-OldStyle] [Fourier-SemiItalic-OldStyle]
+ \definefontsynonym [SerifSemiCaps-OldStyle] [Fourier-SemiCaps-OldStyle]
+ \definefontsynonym [SerifBold-OldStyle] [Fourier-Bold-OldStyle]
+ \definefontsynonym [SerifBoldSlanted-OldStyle] [Fourier-BoldSlanted-OldStyle]
+ \definefontsynonym [SerifBoldItalic-OldStyle] [Fourier-BoldItalic-OldStyle]
+ \definefontsynonym [SerifBlack-OldStyle] [Fourier-Black-OldStyle]
+ \definefontsynonym [SerifBlackSlanted-OldStyle] [Fourier-BlackSlanted-OldStyle]
+\stoptypescript
+
+\starttypescript [math] [fourier] [name]
+ \definefontsynonym [MathRoman] [Fourier-Math-Letters]
+ \definefontsynonym [MathItalic] [Fourier-Math-Letters-Italic]
+ \definefontsynonym [MathSymbol] [Fourier-Math-Symbols]
+ \definefontsynonym [MathExtension] [Fourier-Math-Extension]
+\stoptypescript
+
+\starttypescript [math] [fourier] [name] % todo
+ \definefontsynonym [OldStyle] [Serif-OldStyle] % strange, no oldstyles
+ \definefontsynonym [Fraktur] [eufm10]
+ \definefontsynonym [Blackboard] [msbm10]
+ \definefontsynonym [Gothic] [eufm10]
+ \definefontsynonym [Calligraphic] [eusm10]
+\stoptypescript
+
+% Charter :
+
+\starttypescript [serif] [charter] [name]
+ \definefontsynonym [Serif] [Charter-Roman]
+ \definefontsynonym [SerifItalic] [Charter-Italic]
+ \definefontsynonym [SerifBold] [Charter-Bold]
+ \definefontsynonym [SerifBoldItalic] [Charter-BoldItalic]
+ \definefontsynonym [SerifSlanted] [Charter-Slanted]
+ \definefontsynonym [SerifBoldSlanted] [Charter-BoldSlanted]
+ \definefontsynonym [SerifCaps] [Charter-Roman-Caps]
+\stoptypescript
+
+% Times :
+
+\starttypescript [serif] [times] [name]
+ \definefontsynonym [Serif] [Times-Roman]
+ \definefontsynonym [SerifBold] [Times-Bold]
+ \definefontsynonym [SerifItalic] [Times-Italic]
+ \definefontsynonym [SerifSlanted] [Times-Italic]
+ \definefontsynonym [SerifBoldItalic] [Times-BoldItalic]
+ \definefontsynonym [SerifBoldSlanted] [Times-BoldItalic]
+ \definefontsynonym [SerifCaps] [Times-Caps]
+\stoptypescript
+
+\starttypescript [math] [times] [name]
+ \definefontsynonym [MathRoman] [Times-Roman-Upright]
+ \definefontsynonym [MathExtension] [Times-Math-Extension]
+ \definefontsynonym [MathItalic] [Times-Math-Italic]
+ \definefontsynonym [MathSymbol] [Times-Math-Symbols]
+ \definefontsynonym [MathAlpha] [Times-Math-SymbolsA]
+ \definefontsynonym [MathBeta] [Times-Math-SymbolsB]
+\stoptypescript
+
+\starttypescript [math] [times] [name]
+ \definefontsynonym [OldStyle] [MathItalic]
+ \definefontsynonym [Fraktur] [eufm10]
+ \definefontsynonym [Blackboard] [MathBeta]
+ \definefontsynonym [Gothic] [eufm10]
+ \definefontsynonym [Calligraphic] [eusm10]
+\stoptypescript
+
+% Helvetica :
+
+\starttypescript [sans] [helvetica] [name]
+ \definefontsynonym [Sans] [Helvetica]
+ \definefontsynonym [SansBold] [Helvetica-Bold]
+ \definefontsynonym [SansItalic] [Helvetica-Oblique]
+ \definefontsynonym [SansSlanted] [Helvetica-Oblique]
+ \definefontsynonym [SansBoldItalic] [Helvetica-BoldOblique]
+ \definefontsynonym [SansBoldSlanted] [Helvetica-BoldOblique]
+ \definefontsynonym [SansCaps] [Helvetica-Caps]
+\stoptypescript
+
+\starttypescript [math] [helvetica] [name]
+ \definefontsynonym [MathRoman] [Helvetica-MathRoman]
+ \definefontsynonym [MathExtension] [Helvetica-MathExtendedSymbols]
+ \definefontsynonym [MathItalic] [Helvetica-MathItalics]
+ \definefontsynonym [MathSymbol] [Helvetica-MathSymbols]
+\stoptypescript
+
+% Courier :
+
+\starttypescript [mono] [courier] [name]
+ \definefontsynonym [Mono] [Courier]
+ \definefontsynonym [MonoBold] [Courier-Bold]
+ \definefontsynonym [MonoItalic] [Courier-Oblique]
+ \definefontsynonym [MonoSlanted] [Courier-Oblique]
+ \definefontsynonym [MonoBoldItalic] [Courier-BoldOblique]
+ \definefontsynonym [MonoBoldSlanted] [Courier-BoldOblique]
+ \definefontsynonym [MonoCaps] [Courier]
+\stoptypescript
+
+% Palatino : Hermann Zapf / URW
+
+\starttypescript [serif] [palatino] [name]
+ \definefontsynonym [Serif] [Palatino]
+ \definefontsynonym [SerifBold] [Palatino-Bold]
+ \definefontsynonym [SerifItalic] [Palatino-Italic]
+ \definefontsynonym [SerifSlanted] [Palatino-Slanted]
+ \definefontsynonym [SerifBoldItalic] [Palatino-BoldItalic]
+ \definefontsynonym [SerifBoldSlanted] [Palatino-BoldSlanted]
+ \definefontsynonym [SerifCaps] [Palatino-Caps]
+\stoptypescript
+
+\starttypescript [math] [palatino] [name]
+ \definefontsynonym [MathRoman] [Palatino-Roman-Upright]
+ \definefontsynonym [MathExtension] [Palatino-Math-Extension]
+ \definefontsynonym [MathItalic] [Palatino-Math-Italic]
+ \definefontsynonym [MathSymbol] [Palatino-Math-Symbols]
+ \definefontsynonym [MathAlpha] [Palatino-Math-SymbolsA]
+ \definefontsynonym [MathBeta] [Palatino-Math-SymbolsB]
+\stoptypescript
+
+\starttypescript [math] [palatino] [name]
+ \definefontsynonym [OldStyle] [MathItalic]
+ \definefontsynonym [Fraktur] [eufm10]
+ \definefontsynonym [Blackboard] [MathBeta]
+ \definefontsynonym [Gothic] [eufm10]
+ \definefontsynonym [Calligraphic] [eusm10]
+\stoptypescript
+
+% bonus definitions / will disappear
+
+\starttypescript [serif] [palatino] [name]
+ \definefontsynonym [SerifRegular] [Serif]
+ \definefontsynonym [SerifRegularOsF] [TeXPalladioL-SC]
+ \definefontsynonym [SerifItalicOsF] [TeXPalladioL-ItalicOsF]
+ \definefontsynonym [SerifBoldOsF] [TeXPalladioL-BoldOsF]
+ \definefontsynonym [SerifBoldItalicOsF][TeXPalladioL-BoldItalicOsF]
+ \definefontsynonym [SerifCapsOsF] [TeXPalladioL-SC]
+\stoptypescript
+
+% TeXGyre
+
+% name definitions & prefixes
+
+\definetypescriptprefix [n:pagella] [TeXGyrePagella] \definetypescriptprefix [n:palatino] [TeXGyrePagella]
+\definetypescriptprefix [n:termes] [TeXGyreTermes] \definetypescriptprefix [n:times] [TeXGyreTermes]
+\definetypescriptprefix [n:heros] [TeXGyreHeros] \definetypescriptprefix [n:helvetica] [TeXGyreHeros]
+\definetypescriptprefix [n:bonum] [TeXGyreBonum] \definetypescriptprefix [n:bookman] [TeXGyreBonum]
+\definetypescriptprefix [n:schola] [TeXGyreSchola] \definetypescriptprefix [n:schoolbook] [TeXGyreSchola]
+\definetypescriptprefix [n:adventor] [TeXGyreAdventor] %definetypescriptprefix [n:adventor] [TeXGyreAdventor]
+\definetypescriptprefix [n:cursor] [TeXGyreCursor] \definetypescriptprefix [n:courier] [TeXGyreCursor]
+\definetypescriptprefix [n:chorus] [TeXGyreChorus] \definetypescriptprefix [n:chancery] [TeXGyreChorus] % not the full set
+
+\starttypescript [serif] [pagella,palatino,termes,times,bonum,bookman,schola,schoolbook] [name]
+ \definefontsynonym [Serif] [\typescriptprefix{n:\typescripttwo}-Regular]
+ \definefontsynonym [SerifItalic] [\typescriptprefix{n:\typescripttwo}-Italic]
+ \definefontsynonym [SerifBold] [\typescriptprefix{n:\typescripttwo}-Bold]
+ \definefontsynonym [SerifBoldItalic] [\typescriptprefix{n:\typescripttwo}-BoldItalic]
+ \definefontsynonym [SerifSlanted] [SerifItalic]
+ \definefontsynonym [SerifBoldSlanted] [SerifBoldItalic]
+ \definefontsynonym [SerifCaps] [\typescriptprefix{n:\typescripttwo}-Caps]
+
+ \definefontvariant [Serif][osf][Caps]
+ \definefontvariant [Serif][sc] [Caps]
+
+ \definefontsynonym [SerifRegular] [Serif]
+ \definefontsynonym [SerifRegularCaps] [SerifCaps]
+ \definefontsynonym [SerifItalicCaps] [\typescriptprefix{n:\typescripttwo}-ItalicCaps]
+ \definefontsynonym [SerifBoldCaps] [\typescriptprefix{n:\typescripttwo}-BoldCaps]
+ \definefontsynonym [SerifBoldItalicCaps] [\typescriptprefix{n:\typescripttwo}-BoldItalicCaps]
+ \definefontsynonym [SerifSlantedCaps] [SerifItalicCaps]
+ \definefontsynonym [SerifBoldSlantedCaps] [SerifBoldItalicCaps]
+ \definefontsynonym [SerifCapsCaps] [SerifCaps]
+\stoptypescript
+
+\starttypescript [serif] [chorus,chancery] [name]
+ \definefontsynonym [SerifMediumItalic] [TeXGyreChorus-MediumItalic]
+ \definefontsynonym [Serif] [SerifMediumItalic]
+ \definefontsynonym [SerifItalic] [SerifMediumItalic]
+ \definefontsynonym [SerifBold] [SerifMediumItalic]
+ \definefontsynonym [SerifBoldItalic] [SerifMediumItalic]
+ \definefontsynonym [SerifSlanted] [SerifMediumItalic]
+ \definefontsynonym [SerifBoldSlanted] [SerifMediumItalic]
+ \definefontsynonym [SerifCaps] [SerifMediumItalic]
+\stoptypescript
+
+\starttypescript [calligraphy] [chorus,chancery] [name]
+ \definefontsynonym [Calligraphy] [TeXGyreChorus-MediumItalic]
+\stoptypescript
+
+\starttypescript [sans] [heros,helvetica,adventor] [name]
+ \definefontsynonym [Sans] [\typescriptprefix{n:\typescripttwo}-Regular]
+ \definefontsynonym [SansItalic] [\typescriptprefix{n:\typescripttwo}-Italic]
+ \definefontsynonym [SansBold] [\typescriptprefix{n:\typescripttwo}-Bold]
+ \definefontsynonym [SansBoldItalic] [\typescriptprefix{n:\typescripttwo}-BoldItalic]
+ \definefontsynonym [SansSlanted] [SansItalic]
+ \definefontsynonym [SansBoldSlanted] [SansBoldItalic]
+ \definefontsynonym [SansCaps] [\typescriptprefix{n:\typescripttwo}-Caps]
+
+ \definefontvariant [Sans][osf][Caps]
+ \definefontvariant [Sans][sc] [Caps]
+
+ \definefontsynonym [SansRegular] [Sans]
+ \definefontsynonym [SansRegularCaps] [SansCaps]
+ \definefontsynonym [SansItalicCaps] [\typescriptprefix{n:\typescripttwo}-ItalicCaps]
+ \definefontsynonym [SansBoldCaps] [\typescriptprefix{n:\typescripttwo}-BoldCaps]
+ \definefontsynonym [SansBoldItalicCaps] [\typescriptprefix{n:\typescripttwo}-BoldItalicCaps]
+ \definefontsynonym [SansSlantedCaps] [SansItalicCaps]
+ \definefontsynonym [SansBoldSlantedCaps] [SansBoldItalicCaps]
+ \definefontsynonym [SansCapsCaps] [SansCaps]
+\stoptypescript
+
+\starttypescript [mono] [cursor,courier] [name]
+ \definefontsynonym [Mono] [\typescriptprefix{n:\typescripttwo}-Regular]
+ \definefontsynonym [MonoItalic] [\typescriptprefix{n:\typescripttwo}-Italic]
+ \definefontsynonym [MonoBold] [\typescriptprefix{n:\typescripttwo}-Bold]
+ \definefontsynonym [MonoBoldItalic] [\typescriptprefix{n:\typescripttwo}-BoldItalic]
+ \definefontsynonym [MonoSlanted] [MonoItalic]
+ \definefontsynonym [MonoBoldSlanted] [MonoBoldItalic]
+
+ \definefontvariant [Mono][osf][Caps]
+ \definefontvariant [Mono][sc] [Caps]
+
+ \definefontsynonym [MonoRegular] [Mono]
+ \definefontsynonym [MonoRegularCaps] [MonoCaps]
+ \definefontsynonym [MonoItalicCaps] [\typescriptprefix{n:\typescripttwo}-ItalicCaps]
+ \definefontsynonym [MonoBoldCaps] [\typescriptprefix{n:\typescripttwo}-BoldCaps]
+ \definefontsynonym [MonoBoldItalicCaps] [\typescriptprefix{n:\typescripttwo}-BoldItalicCaps]
+ \definefontsynonym [MonoSlantedCaps] [MonoItalicCaps]
+ \definefontsynonym [MonoBoldSlantedCaps] [MonoBoldItalicCaps]
+ \definefontsynonym [MonoCapsCaps] [MonoCaps]
+\stoptypescript
+
+\stoptypescriptcollection
+
+\endinput
diff --git a/Master/texmf-dist/tex/context/base/type-tmf.mkiv b/Master/texmf-dist/tex/context/base/type-tmf.mkiv
new file mode 100644
index 00000000000..df7a180f07e
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/type-tmf.mkiv
@@ -0,0 +1,933 @@
+%D \module
+%D [ file=type-tmf,
+%D version=2007.07.30,
+%D title=\CONTEXT\ Typescript Macros,
+%D subtitle=Core \TEX\ Fonts,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\starttypescriptcollection[synonyms]
+
+\starttypescript [serif] [modern,computer-modern,latin-modern] [name]
+ \definefontsynonym [Serif] [LMRoman-Regular]
+ \definefontsynonym [SerifBold] [LMRoman-Bold]
+ \definefontsynonym [SerifItalic] [LMRoman-Italic]
+ \definefontsynonym [SerifSlanted] [LMRoman-Oblique]
+ \definefontsynonym [SerifBoldItalic] [LMRoman-BoldItalic]
+ \definefontsynonym [SerifBoldSlanted] [LMRoman-BoldOblique]
+ \definefontsynonym [SerifCaps] [LMRoman-CapsRegular]
+ \definefontsynonym [SerifCapsSlanted] [LMRoman-CapsOblique]
+\stoptypescript
+
+\starttypescript [sans] [modern,computer-modern,latin-modern] [name]
+ \definefontsynonym [Sans] [LMSans-Regular]
+ \definefontsynonym [SansBold] [LMSans-Bold]
+ \definefontsynonym [SansItalic] [LMSans-Oblique]
+ \definefontsynonym [SansSlanted] [LMSans-Oblique]
+ \definefontsynonym [SansBoldItalic] [LMSans-BoldOblique]
+ \definefontsynonym [SansBoldSlanted] [LMSans-BoldOblique]
+ \definefontsynonym [SansCaps] [LMSans-Regular]
+ \definefontsynonym [SansCapsSlanted] [LMSans-Oblique]
+\stoptypescript
+
+\starttypescript [mono] [modern,computer-modern,latin-modern] [name]
+ \definefontsynonym [Mono] [LMTypewriter-Regular]
+ \definefontsynonym [MonoBold] [LMTypewriter-Dark]
+ \definefontsynonym [MonoItalic] [LMTypewriter-Italic]
+ \definefontsynonym [MonoSlanted] [LMTypewriter-Oblique]
+ \definefontsynonym [MonoBoldItalic] [LMTypewriter-DarkOblique]
+ \definefontsynonym [MonoBoldSlanted] [LMTypewriter-DarkOblique]
+ \definefontsynonym [MonoCaps] [LMTypewriter-CapsRegular]
+ \definefontsynonym [MonoCapsSlanted] [LMTypewriter-CapsOblique]
+ \definefontsynonym [MonoVariable] [LMTypewriterVarWd-Regular]
+\stoptypescript
+
+\starttypescript [math] [modern,computer-modern,latin-modern] [name]
+ \definefontsynonym [MathRoman] [LMMathRoman-Regular]
+ %definefontsynonym [MathExtension] [LMMathExtension-Regular]
+ %definefontsynonym [MathItalic] [LMMathItalic-Italic]
+ %definefontsynonym [MathSymbol] [LMMathSymbols-Italic]
+\stoptypescript
+
+\starttypescript [serif] [modern-vari,computer-modern-vari,latin-modern-vari] [name]
+ \definefontsynonym [Serif] [LMTypewriterVarWd-Regular]
+ \definefontsynonym [SerifBold] [LMTypewriterVarWd-Oblique]
+ \definefontsynonym [SerifItalic] [LMTypewriterVarWd-Oblique]
+ \definefontsynonym [SerifSlanted] [LMTypewriterVarWd-Dark]
+ \definefontsynonym [SerifBoldItalic] [LMTypewriterVarWd-DarkOblique]
+ \definefontsynonym [SerifBoldSlanted] [LMTypewriterVarWd-DarkOblique]
+ \definefontsynonym [SerifCaps] [LMTypewriterVarWd-Regular]
+ \definefontsynonym [SerifCapsSlanted] [LMTypewriterVarWd-Oblique]
+\stoptypescript
+
+\starttypescript [mono] [modern-cond,computer-modern-cond,latin-modern-cond,modern-lightcond,computer-modern-lightcond,latin-modern-lightcond] [name]
+ \definefontsynonym [Mono] [LMTypewriter-LightCondensed]
+ \definefontsynonym [MonoBold] [LMTypewriter-LightCondensed]
+ \definefontsynonym [MonoItalic] [LMTypewriter-LightCondensedOblique]
+ \definefontsynonym [MonoSlanted] [LMTypewriter-LightCondensedOblique]
+ \definefontsynonym [MonoBoldItalic] [LMTypewriter-LightCondensed]
+ \definefontsynonym [MonoBoldSlanted] [LMTypewriter-LightCondensed]
+ \definefontsynonym [MonoCaps] [LMTypewriter-LightCondensed]
+ \definefontsynonym [MonoCapsSlanted] [LMTypewriter-LightCondensed]
+\stoptypescript
+
+\starttypescript [mono] [modern-light,computer-modern-light,latin-modern-light] [name]
+ \definefontsynonym [Mono] [LMTypewriter-Light]
+ \definefontsynonym [MonoBold] [LMTypewriter-Light]
+ \definefontsynonym [MonoItalic] [LMTypewriter-LightOblique]
+ \definefontsynonym [MonoSlanted] [LMTypewriter-LightOblique]
+ \definefontsynonym [MonoBoldItalic] [LMTypewriter-Light]
+ \definefontsynonym [MonoBoldSlanted] [LMTypewriter-Light]
+ \definefontsynonym [MonoCaps] [LMTypewriter-Light]
+ \definefontsynonym [MonoCapsSlanted] [LMTypewriter-Light]
+\stoptypescript
+
+% Later we will map the real fonts, here we just map synonyms.
+
+\starttypescript [serif] [modern,latin-modern]
+ \definefontsynonym [LMRoman-DemiOblique] [LMRoman10-DemiOblique]
+ \definefontsynonym [LMRoman-Bold] [LMRoman10-Bold]
+ \definefontsynonym [LMRoman-BoldItalic] [LMRoman10-BoldItalic]
+ \definefontsynonym [LMRoman-BoldOblique] [LMRoman10-BoldOblique]
+ \definefontsynonym [LMRoman-CapsRegular] [LMRoman10-CapsRegular]
+ \definefontsynonym [LMRoman-CapsOblique] [LMRoman10-CapsOblique]
+ \definefontsynonym [LMRoman-Regular] [LMRoman10-Regular]
+ \definefontsynonym [LMRoman-Italic] [LMRoman10-Italic]
+ \definefontsynonym [LMRoman-Oblique] [LMRoman10-Oblique]
+\stoptypescript
+
+\starttypescript [sans] [modern,latin-modern]
+ \definefontsynonym [LMSans-Regular] [LMSans10-Regular]
+ \definefontsynonym [LMSans-BoldOblique] [LMSans10-BoldOblique]
+ \definefontsynonym [LMSans-Bold] [LMSans10-Bold]
+ \definefontsynonym [LMSans-DemiCondensed] [LMSans10-DemiCondensed]
+ \definefontsynonym [LMSans-DemiCondensedOblique] [LMSans10-DemiCondensedOblique]
+ \definefontsynonym [LMSans-Oblique] [LMSans10-Oblique]
+\stoptypescript
+
+\starttypescript [mono] [modern,latin-modern,modern-vari,latin-modern-vari,modern-cond,latin-modern-cond]
+ \definefontsynonym [LMTypewriter-CapsRegular] [LMTypewriter10-CapsRegular]
+ \definefontsynonym [LMTypewriter-CapsOblique] [LMTypewriter10-CapsOblique]
+ \definefontsynonym [LMTypewriter-Light] [LMTypewriter10-Light]
+ \definefontsynonym [LMTypewriter-LightOblique] [LMTypewriter10-LightOblique]
+ \definefontsynonym [LMTypewriter-LightCondensed] [LMTypewriter10-LightCondensed]
+ \definefontsynonym [LMTypewriter-LightCondensedOblique] [LMTypewriter10-LightCondensedOblique]
+ \definefontsynonym [LMTypewriter-Dark] [LMTypewriter10-Dark]
+ \definefontsynonym [LMTypewriter-DarkOblique] [LMTypewriter10-DarkOblique]
+ \definefontsynonym [LMTypewriter-Regular] [LMTypewriter10-Regular]
+ \definefontsynonym [LMTypewriter-Italic] [LMTypewriter10-Italic]
+ \definefontsynonym [LMTypewriter-Oblique] [LMTypewriter10-Oblique]
+ \definefontsynonym [LMTypewriterVarWd-Regular] [LMTypewriterVarWd10-Regular]
+ \definefontsynonym [LMTypewriterVarWd-Oblique] [LMTypewriterVarWd10-Oblique]
+ \definefontsynonym [LMTypewriterVarWd-Light] [LMTypewriterVarWd10-Light]
+ \definefontsynonym [LMTypewriterVarWd-LightOblique] [LMTypewriterVarWd10-LightOblique]
+ \definefontsynonym [LMTypewriterVarWd-Dark] [LMTypewriterVarWd10-Dark]
+ \definefontsynonym [LMTypewriterVarWd-DarkOblique] [LMTypewriterVarWd10-DarkOblique]
+\stoptypescript
+
+\starttypescript [serif] [modern,computer-modern,latin-modern]
+ \definefontsynonym [ComputerModern] [LMRoman-Regular]
+ \definefontsynonym [ComputerModern-Italic] [LMRoman-Italic]
+ \definefontsynonym [ComputerModern-Slanted] [LMRoman-Oblique]
+ \definefontsynonym [ComputerModern-Bold] [LMRoman-Bold]
+ \definefontsynonym [ComputerModern-BoldItalic] [LMRoman-BoldItalic]
+ \definefontsynonym [ComputerModern-BoldSlanted] [LMRoman-BoldOblique]
+ \definefontsynonym [ComputerModern-Caps] [LMRoman-CapsRegular]
+ \definefontsynonym [ComputerModern-CapsSlanted] [LMRoman-CapsOblique]
+\stoptypescript
+
+\starttypescript [sans] [modern,computer-modern,latin-modern]
+ \definefontsynonym [ComputerModernSans] [LMSans-Regular]
+ \definefontsynonym [ComputerModernSans-Italic] [LMSans-Oblique]
+ \definefontsynonym [ComputerModernSans-Slanted] [LMSans-Oblique]
+ \definefontsynonym [ComputerModernSans-Bold] [LMSans-Bold]
+ \definefontsynonym [ComputerModernSans-BoldItalic] [LMSans-BoldOblique]
+ \definefontsynonym [ComputerModernSans-BoldSlanted] [LMSans-BoldOblique]
+ \definefontsynonym [ComputerModernSans-Caps] [LMSans-Regular] % [LMSans-CapsRegular]
+ \definefontsynonym [ComputerModernSans-CapsSlanted] [LMSans-Oblique] % [LMSans-CapsOblique]
+\stoptypescript
+
+\starttypescript [mono] [modern,computer-modern,latin-modern]
+ \definefontsynonym [ComputerModernMono] [LMTypewriter-Regular]
+ \definefontsynonym [ComputerModernMono-Italic] [LMTypewriter-Italic]
+ \definefontsynonym [ComputerModernMono-Slanted] [LMTypewriter-Oblique]
+ \definefontsynonym [ComputerModernMono-Bold] [LMTypewriter-Dark]
+ \definefontsynonym [ComputerModernMono-BoldItalic] [LMTypewriter-DarkOblique] % !
+ \definefontsynonym [ComputerModernMono-BoldSlanted] [LMTypewriter-DarkOblique]
+ \definefontsynonym [ComputerModernMono-Caps] [LMTypewriter-CapsRegular]
+ \definefontsynonym [ComputerModernMono-CapsSlanted] [LMTypewriter-CapsOblique]
+ \definefontsynonym [ComputerModernMono-Variable] [LMTypewriterVarWd-Regular]
+\stoptypescript
+
+\starttypescript [serif] [modern-vari,computer-modern-vari,latin-modern-vari]
+ \definefontsynonym [ComputerModernVariable] [LMTypewriterVarWd-Regular]
+ \definefontsynonym [ComputerModernVariable-Italic] [LMTypewriterVarWd-Oblique]
+ \definefontsynonym [ComputerModernVariable-Slanted] [LMTypewriterVarWd-Oblique]
+ \definefontsynonym [ComputerModernVariable-Bold] [LMTypewriterVarWd-Dark]
+ \definefontsynonym [ComputerModernVariable-BoldItalic] [LMTypewriterVarWd-DarkOblique]
+ \definefontsynonym [ComputerModernVariable-BoldSlanted] [LMTypewriterVarWd-DarkOblique]
+ \definefontsynonym [ComputerModernVariable-Caps] [LMTypewriterVarWd-Regular]
+ \definefontsynonym [ComputerModernVariable-CapsSlanted] [LMTypewriterVarWd-Oblique]
+\stoptypescript
+
+\starttypescript [math] [modern,latin-modern]
+ \definefontsynonym [LMMathRoman-Regular] [LMMathRoman10-Regular]
+ \definefontsynonym [LMMathRoman-Bold] [LMMathRoman10-Bold]
+ %definefontsynonym [LMMathSymbols-BoldItalic] [LMMathSymbols10-BoldItalic]
+ %definefontsynonym [LMMathSymbols-Italic] [LMMathSymbols10-Italic]
+ %definefontsynonym [LMMathExtension-Regular] [LMMathExtension10-Regular]
+ %definefontsynonym [LMMathItalic-Italic] [LMMathItalic10-Italic]
+ %definefontsynonym [LMMathItalic-BoldItalic] [LMMathItalic10-BoldItalic]
+\stoptypescript
+
+% Antykwa Torunska :
+
+\starttypescript [serif] [antykwa-torunska] [name]
+ \definefontsynonym [Serif] [AntykwaTorunska-Regular]
+ \definefontsynonym [SerifBold] [AntykwaTorunska-Bold]
+ \definefontsynonym [SerifItalic] [AntykwaTorunska-Italic]
+ \definefontsynonym [SerifSlanted] [AntykwaTorunska-Italic]
+ \definefontsynonym [SerifBoldItalic] [AntykwaTorunska-BoldItalic]
+ \definefontsynonym [SerifBoldSlanted] [AntykwaTorunska-BoldItalic]
+ \definefontsynonym [SerifCaps] [AntykwaTorunska-Cap]
+\stoptypescript
+
+\starttypescript [serif] [antykwa-torunska-light] [name]
+ \definefontsynonym [Serif] [AntykwaTorunska-Light]
+ \definefontsynonym [SerifBold] [AntykwaTorunska-Medium]
+ \definefontsynonym [SerifItalic] [AntykwaTorunska-LightItalic]
+ \definefontsynonym [SerifSlanted] [AntykwaTorunska-LightItalic]
+ \definefontsynonym [SerifBoldItalic] [AntykwaTorunska-MedItalic]
+ \definefontsynonym [SerifBoldSlanted] [AntykwaTorunska-MedItalic]
+ \definefontsynonym [SerifCaps] [AntykwaTorunska-LightCap]
+\stoptypescript
+
+\starttypescript [serif] [antykwa-torunska-cond] [name]
+ \definefontsynonym [Serif] [AntykwaTorunska-CondRegular]
+ \definefontsynonym [SerifBold] [AntykwaTorunska-CondBold]
+ \definefontsynonym [SerifItalic] [AntykwaTorunska-CondItalic]
+ \definefontsynonym [SerifSlanted] [AntykwaTorunska-CondItalic]
+ \definefontsynonym [SerifBoldItalic] [AntykwaTorunska-CondBoldItalic]
+ \definefontsynonym [SerifBoldSlanted] [AntykwaTorunska-CondBoldItalic]
+ \definefontsynonym [SerifCaps] [AntykwaTorunska-CondCap]
+\stoptypescript
+
+\starttypescript [serif] [antykwa-torunska-lightcond] [name]
+ \definefontsynonym [Serif] [AntykwaTorunska-CondLight]
+ \definefontsynonym [SerifBold] [AntykwaTorunska-CondMedium]
+ \definefontsynonym [SerifItalic] [AntykwaTorunska-CondLightItalic]
+ \definefontsynonym [SerifSlanted] [AntykwaTorunska-CondLightItalic]
+ \definefontsynonym [SerifBoldItalic] [AntykwaTorunska-CondMedItalic]
+ \definefontsynonym [SerifBoldSlanted] [AntykwaTorunska-CondMedItalic]
+ \definefontsynonym [SerifCaps] [AntykwaTorunska-CondLightCap]
+\stoptypescript
+
+\starttypescript [serif] [antykwa-torunska] [name]
+ \definefontsynonym [SerifRegular] [Serif]
+ \definefontsynonym [SerifRegularCaps] [AntykwaTorunska-Cap]
+ \definefontsynonym [SerifBoldCaps] [AntykwaTorunska-BoldCap]
+ \definefontsynonym [SerifItalicCaps] [AntykwaTorunska-ItalicCap]
+ \definefontsynonym [SerifSlantedCaps] [AntykwaTorunska-ItalicCap]
+ \definefontsynonym [SerifBoldItalicCaps] [AntykwaTorunska-BoldItalicCap]
+ \definefontsynonym [SerifBoldSlantedCaps] [AntykwaTorunska-BoldItalicCap]
+ \definefontsynonym [SerifCapsCaps] [AntykwaTorunska-Cap]
+
+ \definefontvariant [Serif][osf][Caps]
+ \definefontvariant [Serif][sc] [Caps]
+
+ \definefontsynonym [SerifRegularLight] [AntykwaTorunska-Light]
+ \definefontsynonym [SerifBoldLight] [AntykwaTorunska-Medium]
+ \definefontsynonym [SerifItalicLight] [AntykwaTorunska-LightItalic]
+ \definefontsynonym [SerifSlantedLight] [AntykwaTorunska-LightItalic]
+ \definefontsynonym [SerifBoldItalicLight] [AntykwaTorunska-MedItalic]
+ \definefontsynonym [SerifBoldSlantedLight] [AntykwaTorunska-MedItalic]
+ \definefontsynonym [SerifCapsLight] [AntykwaTorunska-LightCap]
+
+ \definefontvariant [Serif][lt][Light]
+
+ \definefontsynonym [SerifRegularCond] [AntykwaTorunska-CondRegular]
+ \definefontsynonym [SerifBoldCond] [AntykwaTorunska-CondBold]
+ \definefontsynonym [SerifItalicCond] [AntykwaTorunska-CondItalic]
+ \definefontsynonym [SerifSlantedCond] [AntykwaTorunska-CondItalic]
+ \definefontsynonym [SerifBoldItalicCond] [AntykwaTorunska-CondBoldItalic]
+ \definefontsynonym [SerifBoldSlantedCond] [AntykwaTorunska-CondBoldItalic]
+ \definefontsynonym [SerifCapsCond] [AntykwaTorunska-CondCap]
+
+ \definefontvariant [Serif][cond][Cond]
+
+\stoptypescript
+
+\starttypescript [serif] [antykwa-torunska-light] [name]
+ \definefontsynonym [SerifRegular] [Serif]
+ \definefontsynonym [SerifRegularCaps] [AntykwaTorunska-LightCap]
+ \definefontsynonym [SerifBoldCaps] [AntykwaTorunska-MediumCap]
+ \definefontsynonym [SerifItalicCaps] [AntykwaTorunska-LightItalicCap]
+ \definefontsynonym [SerifSlantedCaps] [AntykwaTorunska-LightItalicCap]
+ \definefontsynonym [SerifBoldItalicCaps] [AntykwaTorunska-MedItalicCap]
+ \definefontsynonym [SerifBoldSlantedCaps] [AntykwaTorunska-MedItalicCap]
+ \definefontsynonym [SerifCapsCaps] [AntykwaTorunska-LightCap]
+
+ \definefontvariant [Serif][osf][Caps]
+ \definefontvariant [Serif][sc] [Caps]
+
+ \definefontsynonym [SerifRegularDark] [AntykwaTorunska-Regular]
+ \definefontsynonym [SerifBoldDark] [AntykwaTorunska-Bold]
+ \definefontsynonym [SerifItalicDark] [AntykwaTorunska-Italic]
+ \definefontsynonym [SerifSlantedDark] [AntykwaTorunska-Italic]
+ \definefontsynonym [SerifBoldItalicDark] [AntykwaTorunska-BoldItalic]
+ \definefontsynonym [SerifBoldSlantedDark] [AntykwaTorunska-BoldItalic]
+ \definefontsynonym [SerifCapsDark] [AntykwaTorunska-Cap]
+
+ \definefontvariant [Serif][dk][Dark]
+
+ \definefontsynonym [SerifRegularCond] [AntykwaTorunska-CondLight]
+ \definefontsynonym [SerifBoldCond] [AntykwaTorunska-CondMedium]
+ \definefontsynonym [SerifItalicCond] [AntykwaTorunska-CondLightItalic]
+ \definefontsynonym [SerifSlantedCond] [AntykwaTorunska-CondLightItalic]
+ \definefontsynonym [SerifBoldItalicCond] [AntykwaTorunska-CondMedItalic]
+ \definefontsynonym [SerifBoldSlantedCond] [AntykwaTorunska-CondMedItalic]
+ \definefontsynonym [SerifCapsCond] [AntykwaTorunska-CondLightCap]
+
+ \definefontvariant [Serif][cond][Cond]
+
+\stoptypescript
+
+\starttypescript [serif] [antykwa-torunska-cond] [name]
+ \definefontsynonym [SerifRegular] [Serif]
+ \definefontsynonym [SerifRegularCaps] [AntykwaTorunska-CondCap]
+ \definefontsynonym [SerifBoldCaps] [AntykwaTorunska-CondBoldCap]
+ \definefontsynonym [SerifItalicCaps] [AntykwaTorunska-CondItalicCap]
+ \definefontsynonym [SerifSlantedCaps] [AntykwaTorunska-CondItalicCap]
+ \definefontsynonym [SerifBoldItalicCaps] [AntykwaTorunska-CondBoldItalicCap]
+ \definefontsynonym [SerifBoldSlantedCaps] [AntykwaTorunska-CondBoldItalicCap]
+ \definefontsynonym [SerifCapsCaps] [AntykwaTorunska-CondCap]
+
+ \definefontvariant [Serif][osf][Caps]
+ \definefontvariant [Serif][sc] [Caps]
+
+ \definefontsynonym [SerifRegularLight] [AntykwaTorunska-CondLight]
+ \definefontsynonym [SerifBoldLight] [AntykwaTorunska-CondMedium]
+ \definefontsynonym [SerifItalicLight] [AntykwaTorunska-CondLightItalic]
+ \definefontsynonym [SerifSlantedLight] [AntykwaTorunska-CondLightItalic]
+ \definefontsynonym [SerifBoldItalicLight] [AntykwaTorunska-CondMedItalic]
+ \definefontsynonym [SerifBoldSlantedLight] [AntykwaTorunska-CondMedItalic]
+ \definefontsynonym [SerifCapsLight] [AntykwaTorunska-CondLightCap]
+
+ \definefontvariant [Serif][lt][Light]
+
+ \definefontsynonym [SerifRegularExp] [AntykwaTorunska-Regular]
+ \definefontsynonym [SerifBoldExp] [AntykwaTorunska-Bold]
+ \definefontsynonym [SerifItalicExp] [AntykwaTorunska-Italic]
+ \definefontsynonym [SerifSlantedExp] [AntykwaTorunska-Italic]
+ \definefontsynonym [SerifBoldItalicExp] [AntykwaTorunska-BoldItalic]
+ \definefontsynonym [SerifBoldSlantedExp] [AntykwaTorunska-BoldItalic]
+ \definefontsynonym [SerifCapsExp] [AntykwaTorunska-Cap]
+
+ \definefontvariant [Serif][exp][Exp]
+
+\stoptypescript
+
+\starttypescript [serif] [antykwa-torunska-lightcond] [name]
+ \definefontsynonym [SerifRegular] [Serif]
+ \definefontsynonym [SerifRegularCaps] [AntykwaTorunska-CondLightCap]
+ \definefontsynonym [SerifBoldCaps] [AntykwaTorunska-CondMediumCap]
+ \definefontsynonym [SerifItalicCaps] [AntykwaTorunska-CondLightItalicCap]
+ \definefontsynonym [SerifSlantedCaps] [AntykwaTorunska-CondLightItalicCap]
+ \definefontsynonym [SerifBoldItalicCaps] [AntykwaTorunska-CondMedItalicCap]
+ \definefontsynonym [SerifBoldSlantedCaps] [AntykwaTorunska-CondMedItalicCap]
+ \definefontsynonym [SerifCapsCaps] [AntykwaTorunska-CondLightCap]
+
+ \definefontvariant [Serif][osf][Caps]
+ \definefontvariant [Serif][sc] [Caps]
+
+ \definefontsynonym [SerifRegularDark] [AntykwaTorunska-CondRegular]
+ \definefontsynonym [SerifBoldDark] [AntykwaTorunska-CondBold]
+ \definefontsynonym [SerifItalicDark] [AntykwaTorunska-CondItalic]
+ \definefontsynonym [SerifSlantedDark] [AntykwaTorunska-CondItalic]
+ \definefontsynonym [SerifBoldItalicDark] [AntykwaTorunska-CondBoldItalic]
+ \definefontsynonym [SerifBoldSlantedDark] [AntykwaTorunska-CondBoldItalic]
+ \definefontsynonym [SerifCapsDark] [AntykwaTorunska-CondCap]
+
+ \definefontvariant [Serif][dk][Dark]
+
+ \definefontsynonym [SerifRegularExp] [AntykwaTorunska-Light]
+ \definefontsynonym [SerifBoldExp] [AntykwaTorunska-Medium]
+ \definefontsynonym [SerifItalicExp] [AntykwaTorunska-LightItalic]
+ \definefontsynonym [SerifSlantedExp] [AntykwaTorunska-LightItalic]
+ \definefontsynonym [SerifBoldItalicExp] [AntykwaTorunska-MedItalic]
+ \definefontsynonym [SerifBoldSlantedExp] [AntykwaTorunska-MedItalic]
+ \definefontsynonym [SerifCapsExp] [AntykwaTorunska-LightCap]
+
+ \definefontvariant [Serif][exp][Exp]
+
+\stoptypescript
+
+% maybe no -Regular etc
+
+\starttypescript [math] [antykwa-torunska-light] [name]
+ \definefontsynonym [MathRoman] [AntykwaTorunska-Math-Letters-Light]
+ %definefontsynonym [MathItalic] [AntykwaTorunska-Math-Letters-LightItalic]
+ %definefontsynonym [MathSymbol] [AntykwaTorunska-Math-Symbols-Light]
+ %definefontsynonym [MathExtension] [AntykwaTorunska-Math-Extension-Light]
+\stoptypescript
+
+\starttypescript [math] [antykwa-torunska] [name]
+ \definefontsynonym [MathRoman] [AntykwaTorunska-Math-Letters-Regular]
+ %definefontsynonym [MathItalic] [AntykwaTorunska-Math-Letters-Italic]
+ %definefontsynonym [MathSymbol] [AntykwaTorunska-Math-Symbols-Regular]
+ %definefontsynonym [MathExtension] [AntykwaTorunska-Math-Extension-Regular]
+\stoptypescript
+
+\starttypescript [math] [antykwa-torunska-cond] [name]
+ \definefontsynonym [MathRoman] [AntykwaTorunska-Math-Letters-CondRegular]
+ %definefontsynonym [MathItalic] [AntykwaTorunska-Math-Letters-CondItalic]
+ %definefontsynonym [MathSymbol] [AntykwaTorunska-Math-Symbols-CondRegular]
+ %definefontsynonym [MathExtension] [AntykwaTorunska-Math-Extension-CondRegular]
+\stoptypescript
+
+\starttypescript [math] [antykwa-torunska-lightcond] [name]
+ \definefontsynonym [MathRoman] [AntykwaTorunska-Math-Letters-CondLight]
+ %definefontsynonym [MathItalic] [AntykwaTorunska-Math-Letters-CondLightItalic]
+ %definefontsynonym [MathSymbol] [AntykwaTorunska-Math-Symbols-CondLight]
+ %definefontsynonym [MathExtension] [AntykwaTorunska-Math-Extension-CondLight]
+\stoptypescript
+
+% Antykwa Poltawskiego :
+
+\starttypescript [serif] [antykwa-poltawskiego] [name]
+ \definefontsynonym [Serif] [AntykwaPoltawskiego-Regular]
+ \definefontsynonym [SerifBold] [AntykwaPoltawskiego-Bold]
+ \definefontsynonym [SerifItalic] [AntykwaPoltawskiego-Italic]
+ \definefontsynonym [SerifSlanted] [AntykwaPoltawskiego-Italic]
+ \definefontsynonym [SerifBoldItalic] [AntykwaPoltawskiego-Bold]
+ \definefontsynonym [SerifBoldSlanted] [AntykwaPoltawskiego-Bold]
+ \definefontsynonym [SerifCaps] [AntykwaPoltawskiego-Regular]
+\stoptypescript
+
+% Iwona
+
+\starttypescript [sans] [iwona-light] [name]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Iwona-Light-Regular]
+ \definefontsynonym [SansItalic] [Iwona-Light-Italic]
+ \definefontsynonym [SansBold] [Iwona-Medium-Regular]
+ \definefontsynonym [SansBoldItalic] [Iwona-Medium-Italic]
+ \definefontsynonym [SansCaps] [Iwona-CapsLight]
+ \definefontsynonym [SansItalicCaps] [Iwona-CapsLightItalic]
+ \definefontsynonym [SansBoldCaps] [Iwona-CapsMedium]
+ \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsMediumItalic]
+\stoptypescript
+
+\starttypescript [sans] [iwona-light-caps] [name]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Iwona-CapsLight-Regular]
+ \definefontsynonym [SansItalic] [Iwona-CapsLight-Italic]
+ \definefontsynonym [SansBold] [Iwona-CapsMedium-Regular]
+ \definefontsynonym [SansBoldItalic] [Iwona-CapsMedium-Italic]
+\stoptypescript
+
+\starttypescript [sans] [iwona] [name]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Iwona-Regular]
+ \definefontsynonym [SansItalic] [Iwona-Italic]
+ \definefontsynonym [SansBold] [Iwona-Bold]
+ \definefontsynonym [SansBoldItalic] [Iwona-BoldItalic]
+ \definefontsynonym [SansCaps] [Iwona-CapsRegular]
+ \definefontsynonym [SansItalicCaps] [Iwona-CapsItalic]
+ \definefontsynonym [SansBoldCaps] [Iwona-CapsBold]
+ \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsBoldItalic]
+\stoptypescript
+
+\starttypescript [sans] [iwona-caps] [name]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Iwona-CapsRegular]
+ \definefontsynonym [SansItalic] [Iwona-CapsItalic]
+ \definefontsynonym [SansBold] [Iwona-CapsBold]
+ \definefontsynonym [SansBoldItalic] [Iwona-CapsBoldItalic]
+\stoptypescript
+
+\starttypescript [sans] [iwona-medium] [name]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Iwona-Medium-Regular]
+ \definefontsynonym [SansItalic] [Iwona-Medium-Italic]
+ \definefontsynonym [SansBold] [Iwona-Heavy-Regular]
+ \definefontsynonym [SansBoldItalic] [Iwona-Heavy-Italic]
+ \definefontsynonym [SansCaps] [Iwona-CapsHeavy-Regular]
+ \definefontsynonym [SansItalicCaps] [Iwona-CapsMedium-Italic]
+ \definefontsynonym [SansBoldCaps] [Iwona-CapsHeavy-Regular]
+ \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsHeavy-Italic]
+\stoptypescript
+
+\starttypescript [sans] [iwona-medium-caps] [name]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Iwona-CapsHeavy-Regular]
+ \definefontsynonym [SansItalic] [Iwona-CapsMedium-Italic]
+ \definefontsynonym [SansBold] [Iwona-CapsHeavy-Regular]
+ \definefontsynonym [SansBoldItalic] [Iwona-CapsHeavy-Italic]
+\stoptypescript
+
+\starttypescript [sans] [iwona-heavy] [name]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Iwona-Heavy-Regular]
+ \definefontsynonym [SansItalic] [Iwona-Heavy-Italic]
+ \definefontsynonym [SansBold] [Iwona-Heavy-Regular]
+ \definefontsynonym [SansBoldItalic] [Iwona-Heavy-Italic]
+ \definefontsynonym [SansCaps] [Iwona-CapsHeavy-Regular]
+ \definefontsynonym [SansItalicCaps] [Iwona-CapsHeavy-Italic]
+ \definefontsynonym [SansBoldCaps] [Iwona-CapsHeavy-Regular]
+ \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsHeavy-Italic]
+\stoptypescript
+
+\starttypescript [sans] [iwona-heavy-caps] [name]
+ \setups[font:fallback:sans]
+ \definefontsynonym [SansCaps] [Iwona-CapsHeavy-Regular]
+ \definefontsynonym [SansItalicCaps] [Iwona-CapsHeavy-Italic]
+ \definefontsynonym [SansBoldCaps] [Iwona-CapsHeavy-Regular]
+ \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsHeavy-Italic]
+\stoptypescript
+
+\starttypescript [sans] [iwona-light-cond] [name]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Iwona-CondLight-Regular]
+ \definefontsynonym [SansItalic] [Iwona-CondLight-Italic]
+ \definefontsynonym [SansBold] [Iwona-CondMedium-Regular]
+ \definefontsynonym [SansBoldItalic] [Iwona-CondMedium-Italic]
+ \definefontsynonym [SansCaps] [Iwona-CapsCondLight-Regular]
+ \definefontsynonym [SansItalicCaps] [Iwona-CapsCondLight-Italic]
+ \definefontsynonym [SansBoldCaps] [Iwona-CapsCondMedium-Regular]
+ \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsCondMedium-Italic]
+\stoptypescript
+
+\starttypescript [sans] [iwona-light-cond-caps,iwona-light-caps-cond] [name]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Iwona-CapsCondLight-Regular]
+ \definefontsynonym [SansItalic] [Iwona-CapsCondLight-Italic]
+ \definefontsynonym [SansBold] [Iwona-CapsCondMedium-Regular]
+ \definefontsynonym [SansBoldItalic] [Iwona-CapsCondMedium-Italic]
+\stoptypescript
+
+\starttypescript [sans] [iwona-cond] [name]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Iwona-CondRegular]
+ \definefontsynonym [SansItalic] [Iwona-CondItalic]
+ \definefontsynonym [SansBold] [Iwona-CondBold]
+ \definefontsynonym [SansBoldItalic] [Iwona-CondBoldItalic]
+ \definefontsynonym [SansCaps] [Iwona-CapsCondRegular]
+ \definefontsynonym [SansItalicCaps] [Iwona-CapsCondItalic]
+ \definefontsynonym [SansBoldCaps] [Iwona-CapsCondBold]
+ \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsCondBoldItalic]
+\stoptypescript
+
+\starttypescript [sans] [iwona-cond-caps,iwona-caps-cond] [name]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Iwona-CapsCondRegular]
+ \definefontsynonym [SansItalic] [Iwona-CapsCondItalic]
+ \definefontsynonym [SansBold] [Iwona-CapsCondBold]
+ \definefontsynonym [SansBoldItalic] [Iwona-CapsCondBoldItalic]
+\stoptypescript
+
+\starttypescript [sans] [iwona-medium-cond] [name]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Iwona-CondMedium-Regular]
+ \definefontsynonym [SansItalic] [Iwona-CondMedium-Italic]
+ \definefontsynonym [SansBold] [Iwona-CondHeavy-Regular]
+ \definefontsynonym [SansBoldItalic] [Iwona-CondHeavy-Italic]
+ \definefontsynonym [SansCaps] [Iwona-CapsCondHeavy-Regular]
+ \definefontsynonym [SansItalicCaps] [Iwona-CapsCondMedium-Italic]
+ \definefontsynonym [SansBoldCaps] [Iwona-CapsCondHeavy-Regular]
+ \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsCondHeavy-Italic]
+\stoptypescript
+
+\starttypescript [sans] [iwona-medium-cond-caps,iwona-medium-caps-cond] [name]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Iwona-CapsCondHeavy-Regular]
+ \definefontsynonym [SansItalic] [Iwona-CapsCondMedium-Italic]
+ \definefontsynonym [SansBold] [Iwona-CapsCondHeavy-Regular]
+ \definefontsynonym [SansBoldItalic] [Iwona-CapsCondHeavy-Italic]
+\stoptypescript
+
+\starttypescript [math] [iwona-light] [name]
+ \definefontsynonym [MathRoman] [Iwona-Math-Letters-Light-Regular]
+ %definefontsynonym [MathItalic] [Iwona-Math-Letters-Light-Italic]
+ %definefontsynonym [MathSymbol] [Iwona-Math-Symbols-Light]
+ %definefontsynonym [MathExtension] [Iwona-Math-Extension-Light]
+\stoptypescript
+
+\starttypescript [math] [iwona] [name]
+ \definefontsynonym [MathRoman] [Iwona-Math-Letters-Regular]
+ %definefontsynonym [MathItalic] [Iwona-Math-Letters-Italic]
+ %definefontsynonym [MathSymbol] [Iwona-Math-Symbols-Regular]
+ %definefontsynonym [MathExtension] [Iwona-Math-Extension-Regular]
+\stoptypescript
+
+\starttypescript [math] [iwona-medium] [name]
+ \definefontsynonym [MathRoman] [Iwona-Math-Letters-Medium-Regular]
+ %definefontsynonym [MathItalic] [Iwona-Math-Letters-Medium-Italic]
+ %definefontsynonym [MathSymbol] [Iwona-Math-Symbols-Medium]
+ %definefontsynonym [MathExtension] [Iwona-Math-Extension-Medium]
+\stoptypescript
+
+\starttypescript [math] [iwona-heavy] [name]
+ \definefontsynonym [MathRoman] [Iwona-Math-Letters-Heavy-Regular]
+ %definefontsynonym [MathItalic] [Iwona-Math-Letters-Heavy-Italic]
+ %definefontsynonym [MathSymbol] [Iwona-Math-Symbols-Heavy]
+ %definefontsynonym [MathExtension] [Iwona-Math-Extension-Heavy]
+\stoptypescript
+
+% Kurier
+
+\starttypescript [sans] [kurier-light] [name]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Kurier-Light-Regular]
+ \definefontsynonym [SansItalic] [Kurier-Light-Italic]
+ \definefontsynonym [SansBold] [Kurier-Medium-Regular]
+ \definefontsynonym [SansBoldItalic] [Kurier-Medium-Italic]
+\stoptypescript
+
+\starttypescript [sans] [kurier] [name]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Kurier-Regular]
+ \definefontsynonym [SansItalic] [Kurier-Italic]
+ \definefontsynonym [SansBold] [Kurier-Bold]
+ \definefontsynonym [SansBoldItalic] [Kurier-BoldItalic]
+\stoptypescript
+
+\starttypescript [sans] [kurier-medium] [name]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [Kurier-Medium-Regular]
+ \definefontsynonym [SansItalic] [Kurier-Medium-Italic]
+ \definefontsynonym [SansBold] [Kurier-Heavy-Regular]
+ \definefontsynonym [SansBoldItalic] [Kurier-Heavy-Italic]
+\stoptypescript
+
+\starttypescript [math] [kurier-light] [name]
+ \definefontsynonym [MathRoman] [Kurier-Math-Letters-Light-Regular]
+ %definefontsynonym [MathItalic] [Kurier-Math-Letters-Light-Italic]
+ %definefontsynonym [MathSymbol] [Kurier-Math-Symbols-Light]
+ %definefontsynonym [MathExtension] [Kurier-Math-Extension-Light]
+\stoptypescript
+
+\starttypescript [math] [kurier] [name]
+ \definefontsynonym [MathRoman] [Kurier-Math-Letters-Regular]
+ %definefontsynonym [MathItalic] [Kurier-Math-Letters-Italic]
+ %definefontsynonym [MathSymbol] [Kurier-Math-Symbols-Regular]
+ %definefontsynonym [MathExtension] [Kurier-Math-Extension-Regular]
+\stoptypescript
+
+\starttypescript [math] [kurier-medium] [name]
+ \definefontsynonym [MathRoman] [Kurier-Math-Letters-Medium-Regular]
+ %definefontsynonym [MathItalic] [Kurier-Math-Letters-Medium-Italic]
+ %definefontsynonym [MathSymbol] [Kurier-Math-Symbols-Medium]
+ %definefontsynonym [MathExtension] [Kurier-Math-Extension-Medium]
+\stoptypescript
+
+% Bookman :
+
+\starttypescript [serif] [bookman] [name]
+ \definefontsynonym [Serif] [Bookman-Light]
+ \definefontsynonym [SerifItalic] [Bookman-LightItalic]
+ \definefontsynonym [SerifBold] [Bookman-DemiBold]
+ \definefontsynonym [SerifBoldItalic] [Bookman-DemiBoldItalic]
+ \definefontsynonym [SerifSlanted] [Bookman-LightSlanted]
+ \definefontsynonym [SerifBoldSlanted] [Bookman-DemiBoldSlanted]
+ \definefontsynonym [SerifCaps] [Bookman-Light-Caps]
+\stoptypescript
+
+% Chancery : Zapf
+
+\starttypescript [calligraphy] [chancery] [name]
+ \definefontsynonym [Calligraphy] [Chancery]
+\stoptypescript
+
+% Schoolbook :
+
+\starttypescript [serif] [schoolbook] [name]
+ \definefontsynonym [Serif] [Schoolbook-Roman]
+ \definefontsynonym [SerifItalic] [Schoolbook-Italic]
+ \definefontsynonym [SerifBold] [Schoolbook-Bold]
+ \definefontsynonym [SerifBoldItalic] [Schoolbook-BoldItalic]
+ \definefontsynonym [SerifSlanted] [Schoolbook-RomanSlanted]
+ \definefontsynonym [SerifBoldSlanted] [Schoolbook-BoldSlanted]
+ \definefontsynonym [SerifCaps] [Schoolbook-Roman-Caps]
+\stoptypescript
+
+% Utopia : Adobe
+
+\starttypescript [serif] [utopia] [name]
+ \definefontsynonym [Serif] [Utopia-Regular]
+ \definefontsynonym [SerifItalic] [Utopia-Italic]
+ \definefontsynonym [SerifBold] [Utopia-Bold]
+ \definefontsynonym [SerifBoldItalic] [Utopia-BoldItalic]
+ \definefontsynonym [SerifSlanted] [Utopia-Slanted]
+ \definefontsynonym [SerifBoldSlanted] [Utopia-BoldSlanted]
+ \definefontsynonym [SerifCaps] [Utopia-Regular-Caps]
+\stoptypescript
+
+% Fourier : Michael Bovani
+
+% \starttypescript [serif] [fourier] [name]
+% \definefontsynonym [Serif] [Fourier-Regular]
+% \definefontsynonym [SerifSlanted] [Fourier-Slanted]
+% \definefontsynonym [SerifItalic] [Fourier-Italic]
+% \definefontsynonym [SerifCaps] [Fourier-RegularCaps]
+% \definefontsynonym [SerifBold] [Fourier-Bold]
+% \definefontsynonym [SerifBoldSlanted] [Fourier-BoldSlanted]
+% \definefontsynonym [SerifBoldItalic] [Fourier-BoldItalic]
+% \definefontsynonym [SerifBoldCaps] [Fourier-BoldCaps]
+%
+% \definefontsynonym [Serif-Expert] [Fourier-Regular-Expert]
+% \definefontsynonym [SerifSlanted-Expert] [Fourier-Slanted-Expert]
+% \definefontsynonym [SerifItalic-Expert] [Fourier-Italic-Expert]
+% \definefontsynonym [SerifCaps-Expert] [Fourier-RegularCaps-Expert]
+% \definefontsynonym [SerifSemiBold-Expert] [Fourier-Semi-Expert]
+% \definefontsynonym [SerifSemiSlanted-Expert] [Fourier-SemiSlanted-Expert]
+% \definefontsynonym [SerifSemiItalic-Expert] [Fourier-SemiItalic-Expert]
+% \definefontsynonym [SerifSemiCaps-Expert] [Fourier-SemiCaps-Expert]
+% \definefontsynonym [SerifBold-Expert] [Fourier-Bold-Expert]
+% \definefontsynonym [SerifBoldSlanted-Expert] [Fourier-BoldSlanted-Expert]
+% \definefontsynonym [SerifBoldItalic-Expert] [Fourier-BoldItalic-Expert]
+% \definefontsynonym [SerifBlack-Expert] [Fourier-Black-Expert]
+%
+% \definefontsynonym [Serif-OldStyle] [Fourier-Regular-OldStyle]
+% \definefontsynonym [SerifSlanted-OldStyle] [Fourier-Slanted-OldStyle]
+% \definefontsynonym [SerifItalic-OldStyle] [Fourier-Italic-OldStyle]
+% \definefontsynonym [SerifCaps-OldStyle] [Fourier-RegularCaps-OldStyle]
+% \definefontsynonym [SerifSemiBold-OldStyle] [Fourier-Semi-OldStyle]
+% \definefontsynonym [SerifSemiSlanted-OldStyle] [Fourier-SemiSlanted-OldStyle]
+% \definefontsynonym [SerifSemiItalic-OldStyle] [Fourier-SemiItalic-OldStyle]
+% \definefontsynonym [SerifSemiCaps-OldStyle] [Fourier-SemiCaps-OldStyle]
+% \definefontsynonym [SerifBold-OldStyle] [Fourier-Bold-OldStyle]
+% \definefontsynonym [SerifBoldSlanted-OldStyle] [Fourier-BoldSlanted-OldStyle]
+% \definefontsynonym [SerifBoldItalic-OldStyle] [Fourier-BoldItalic-OldStyle]
+% \definefontsynonym [SerifBlack-OldStyle] [Fourier-Black-OldStyle]
+% \definefontsynonym [SerifBlackSlanted-OldStyle] [Fourier-BlackSlanted-OldStyle]
+% \stoptypescript
+%
+% \starttypescript [math] [fourier] [name]
+% \definefontsynonym [MathRoman] [Fourier-Math-Letters]
+% \definefontsynonym [MathItalic] [Fourier-Math-Letters-Italic]
+% \definefontsynonym [MathSymbol] [Fourier-Math-Symbols]
+% \definefontsynonym [MathExtension] [Fourier-Math-Extension]
+% \stoptypescript
+%
+% \starttypescript [math] [fourier] [name] % todo
+% \definefontsynonym [OldStyle] [Serif-OldStyle] % strange, no oldstyles
+% \definefontsynonym [Fraktur] [eufm10]
+% \definefontsynonym [Blackboard] [msbm10]
+% \definefontsynonym [Gothic] [eufm10]
+% \definefontsynonym [Calligraphic] [eusm10]
+% \stoptypescript
+
+% Charter :
+
+\starttypescript [serif] [charter] [name]
+ \definefontsynonym [Serif] [Charter-Roman]
+ \definefontsynonym [SerifItalic] [Charter-Italic]
+ \definefontsynonym [SerifBold] [Charter-Bold]
+ \definefontsynonym [SerifBoldItalic] [Charter-BoldItalic]
+ \definefontsynonym [SerifSlanted] [Charter-Slanted]
+ \definefontsynonym [SerifBoldSlanted] [Charter-BoldSlanted]
+ \definefontsynonym [SerifCaps] [Charter-Roman-Caps]
+\stoptypescript
+
+% Times :
+
+\starttypescript [serif] [times] [name]
+ \definefontsynonym [Serif] [Times-Roman]
+ \definefontsynonym [SerifBold] [Times-Bold]
+ \definefontsynonym [SerifItalic] [Times-Italic]
+ \definefontsynonym [SerifSlanted] [Times-Italic]
+ \definefontsynonym [SerifBoldItalic] [Times-BoldItalic]
+ \definefontsynonym [SerifBoldSlanted] [Times-BoldItalic]
+ \definefontsynonym [SerifCaps] [Times-Caps]
+\stoptypescript
+
+% \starttypescript [math] [times] [name]
+% \definefontsynonym [MathRoman] [Times-Roman-Upright]
+% \definefontsynonym [MathExtension] [Times-Math-Extension]
+% \definefontsynonym [MathItalic] [Times-Math-Italic]
+% \definefontsynonym [MathSymbol] [Times-Math-Symbols]
+% \definefontsynonym [MathAlpha] [Times-Math-SymbolsA]
+% \definefontsynonym [MathBeta] [Times-Math-SymbolsB]
+% \stoptypescript
+
+% \starttypescript [math] [times] [name]
+% \definefontsynonym [OldStyle] [MathItalic]
+% \definefontsynonym [Fraktur] [eufm10]
+% \definefontsynonym [Blackboard] [MathBeta]
+% \definefontsynonym [Gothic] [eufm10]
+% \definefontsynonym [Calligraphic] [eusm10]
+% \stoptypescript
+
+% Helvetica :
+
+\starttypescript [sans] [helvetica] [name]
+ \definefontsynonym [Sans] [Helvetica]
+ \definefontsynonym [SansBold] [Helvetica-Bold]
+ \definefontsynonym [SansItalic] [Helvetica-Oblique]
+ \definefontsynonym [SansSlanted] [Helvetica-Oblique]
+ \definefontsynonym [SansBoldItalic] [Helvetica-BoldOblique]
+ \definefontsynonym [SansBoldSlanted] [Helvetica-BoldOblique]
+ \definefontsynonym [SansCaps] [Helvetica-Caps]
+\stoptypescript
+
+\starttypescript [math] [helvetica] [name]
+ \definefontsynonym [MathRoman] [Helvetica-MathRoman]
+ \definefontsynonym [MathExtension] [Helvetica-MathExtendedSymbols]
+ \definefontsynonym [MathItalic] [Helvetica-MathItalics]
+ \definefontsynonym [MathSymbol] [Helvetica-MathSymbols]
+\stoptypescript
+
+% Courier :
+
+\starttypescript [mono] [courier] [name]
+ \definefontsynonym [Mono] [Courier]
+ \definefontsynonym [MonoBold] [Courier-Bold]
+ \definefontsynonym [MonoItalic] [Courier-Oblique]
+ \definefontsynonym [MonoSlanted] [Courier-Oblique]
+ \definefontsynonym [MonoBoldItalic] [Courier-BoldOblique]
+ \definefontsynonym [MonoBoldSlanted] [Courier-BoldOblique]
+ \definefontsynonym [MonoCaps] [Courier]
+\stoptypescript
+
+% Palatino : Hermann Zapf / URW
+
+\starttypescript [serif] [palatino] [name]
+ \definefontsynonym [Serif] [Palatino]
+ \definefontsynonym [SerifBold] [Palatino-Bold]
+ \definefontsynonym [SerifItalic] [Palatino-Italic]
+ \definefontsynonym [SerifSlanted] [Palatino-Slanted]
+ \definefontsynonym [SerifBoldItalic] [Palatino-BoldItalic]
+ \definefontsynonym [SerifBoldSlanted] [Palatino-BoldSlanted]
+ \definefontsynonym [SerifCaps] [Palatino-Caps]
+\stoptypescript
+
+% \starttypescript [math] [palatino] [name]
+% \definefontsynonym [MathRoman] [Palatino-Roman-Upright]
+% \definefontsynonym [MathExtension] [Palatino-Math-Extension]
+% \definefontsynonym [MathItalic] [Palatino-Math-Italic]
+% \definefontsynonym [MathSymbol] [Palatino-Math-Symbols]
+% \definefontsynonym [MathAlpha] [Palatino-Math-SymbolsA]
+% \definefontsynonym [MathBeta] [Palatino-Math-SymbolsB]
+% \stoptypescript
+
+% \starttypescript [math] [palatino] [name]
+% \definefontsynonym [OldStyle] [MathItalic]
+% \definefontsynonym [Fraktur] [eufm10]
+% \definefontsynonym [Blackboard] [MathBeta]
+% \definefontsynonym [Gothic] [eufm10]
+% \definefontsynonym [Calligraphic] [eusm10]
+% \stoptypescript
+
+% bonus definitions / will disappear
+
+\starttypescript [serif] [palatino] [name]
+ \definefontsynonym [SerifRegular] [Serif]
+ \definefontsynonym [SerifRegularOsF] [TeXPalladioL-SC]
+ \definefontsynonym [SerifItalicOsF] [TeXPalladioL-ItalicOsF]
+ \definefontsynonym [SerifBoldOsF] [TeXPalladioL-BoldOsF]
+ \definefontsynonym [SerifBoldItalicOsF][TeXPalladioL-BoldItalicOsF]
+ \definefontsynonym [SerifCapsOsF] [TeXPalladioL-SC]
+\stoptypescript
+
+% TeXGyre
+
+% name definitions & prefixes
+
+\definetypescriptprefix [n:pagella] [TeXGyrePagella] \definetypescriptprefix [n:palatino] [TeXGyrePagella]
+\definetypescriptprefix [n:termes] [TeXGyreTermes] \definetypescriptprefix [n:times] [TeXGyreTermes]
+\definetypescriptprefix [n:heros] [TeXGyreHeros] \definetypescriptprefix [n:helvetica] [TeXGyreHeros]
+\definetypescriptprefix [n:bonum] [TeXGyreBonum] \definetypescriptprefix [n:bookman] [TeXGyreBonum]
+\definetypescriptprefix [n:schola] [TeXGyreSchola] \definetypescriptprefix [n:schoolbook] [TeXGyreSchola]
+\definetypescriptprefix [n:adventor] [TeXGyreAdventor] %definetypescriptprefix [n:adventor] [TeXGyreAdventor]
+\definetypescriptprefix [n:cursor] [TeXGyreCursor] \definetypescriptprefix [n:courier] [TeXGyreCursor]
+\definetypescriptprefix [n:chorus] [TeXGyreChorus] \definetypescriptprefix [n:chancery] [TeXGyreChorus] % not the full set
+
+\starttypescript [serif] [pagella,palatino,termes,times,bonum,bookman,schola,schoolbook] [name]
+ \definefontsynonym [Serif] [\typescriptprefix{n:\typescripttwo}-Regular]
+ \definefontsynonym [SerifItalic] [\typescriptprefix{n:\typescripttwo}-Italic]
+ \definefontsynonym [SerifBold] [\typescriptprefix{n:\typescripttwo}-Bold]
+ \definefontsynonym [SerifBoldItalic] [\typescriptprefix{n:\typescripttwo}-BoldItalic]
+ \definefontsynonym [SerifSlanted] [SerifItalic]
+ \definefontsynonym [SerifBoldSlanted] [SerifBoldItalic]
+ \definefontsynonym [SerifCaps] [\typescriptprefix{n:\typescripttwo}-Caps]
+
+ \definefontvariant [Serif][osf][Caps]
+ \definefontvariant [Serif][sc] [Caps]
+
+ \definefontsynonym [SerifRegular] [Serif]
+ \definefontsynonym [SerifRegularCaps] [SerifCaps]
+ \definefontsynonym [SerifItalicCaps] [\typescriptprefix{n:\typescripttwo}-ItalicCaps]
+ \definefontsynonym [SerifBoldCaps] [\typescriptprefix{n:\typescripttwo}-BoldCaps]
+ \definefontsynonym [SerifBoldItalicCaps] [\typescriptprefix{n:\typescripttwo}-BoldItalicCaps]
+ \definefontsynonym [SerifSlantedCaps] [SerifItalicCaps]
+ \definefontsynonym [SerifBoldSlantedCaps] [SerifBoldItalicCaps]
+ \definefontsynonym [SerifCapsCaps] [SerifCaps]
+\stoptypescript
+
+\starttypescript [serif] [chorus,chancery] [name]
+ \definefontsynonym [SerifMediumItalic] [TeXGyreChorus-MediumItalic]
+ \definefontsynonym [Serif] [SerifMediumItalic]
+ \definefontsynonym [SerifItalic] [SerifMediumItalic]
+ \definefontsynonym [SerifBold] [SerifMediumItalic]
+ \definefontsynonym [SerifBoldItalic] [SerifMediumItalic]
+ \definefontsynonym [SerifSlanted] [SerifMediumItalic]
+ \definefontsynonym [SerifBoldSlanted] [SerifMediumItalic]
+ \definefontsynonym [SerifCaps] [SerifMediumItalic]
+\stoptypescript
+
+\starttypescript [calligraphy] [chorus,chancery] [name]
+ \definefontsynonym [Calligraphy] [TeXGyreChorus-MediumItalic]
+\stoptypescript
+
+\starttypescript [sans] [heros,helvetica,adventor] [name]
+ \definefontsynonym [Sans] [\typescriptprefix{n:\typescripttwo}-Regular]
+ \definefontsynonym [SansItalic] [\typescriptprefix{n:\typescripttwo}-Italic]
+ \definefontsynonym [SansBold] [\typescriptprefix{n:\typescripttwo}-Bold]
+ \definefontsynonym [SansBoldItalic] [\typescriptprefix{n:\typescripttwo}-BoldItalic]
+ \definefontsynonym [SansSlanted] [SansItalic]
+ \definefontsynonym [SansBoldSlanted] [SansBoldItalic]
+ \definefontsynonym [SansCaps] [\typescriptprefix{n:\typescripttwo}-Caps]
+
+ \definefontvariant [Sans][osf][Caps]
+ \definefontvariant [Sans][sc] [Caps]
+
+ \definefontsynonym [SansRegular] [Sans]
+ \definefontsynonym [SansRegularCaps] [SansCaps]
+ \definefontsynonym [SansItalicCaps] [\typescriptprefix{n:\typescripttwo}-ItalicCaps]
+ \definefontsynonym [SansBoldCaps] [\typescriptprefix{n:\typescripttwo}-BoldCaps]
+ \definefontsynonym [SansBoldItalicCaps] [\typescriptprefix{n:\typescripttwo}-BoldItalicCaps]
+ \definefontsynonym [SansSlantedCaps] [SansItalicCaps]
+ \definefontsynonym [SansBoldSlantedCaps] [SansBoldItalicCaps]
+ \definefontsynonym [SansCapsCaps] [SansCaps]
+\stoptypescript
+
+\starttypescript [mono] [cursor,courier] [name]
+ \definefontsynonym [Mono] [\typescriptprefix{n:\typescripttwo}-Regular]
+ \definefontsynonym [MonoItalic] [\typescriptprefix{n:\typescripttwo}-Italic]
+ \definefontsynonym [MonoBold] [\typescriptprefix{n:\typescripttwo}-Bold]
+ \definefontsynonym [MonoBoldItalic] [\typescriptprefix{n:\typescripttwo}-BoldItalic]
+ \definefontsynonym [MonoSlanted] [MonoItalic]
+ \definefontsynonym [MonoBoldSlanted] [MonoBoldItalic]
+
+ \definefontvariant [Mono][osf][Caps]
+ \definefontvariant [Mono][sc] [Caps]
+
+ \definefontsynonym [MonoRegular] [Mono]
+ \definefontsynonym [MonoRegularCaps] [MonoCaps]
+ \definefontsynonym [MonoItalicCaps] [\typescriptprefix{n:\typescripttwo}-ItalicCaps]
+ \definefontsynonym [MonoBoldCaps] [\typescriptprefix{n:\typescripttwo}-BoldCaps]
+ \definefontsynonym [MonoBoldItalicCaps] [\typescriptprefix{n:\typescripttwo}-BoldItalicCaps]
+ \definefontsynonym [MonoSlantedCaps] [MonoItalicCaps]
+ \definefontsynonym [MonoBoldSlantedCaps] [MonoBoldItalicCaps]
+ \definefontsynonym [MonoCapsCaps] [MonoCaps]
+\stoptypescript
+
+\stoptypescriptcollection
+
+\endinput
diff --git a/Master/texmf-dist/tex/context/base/type-tmf.tex b/Master/texmf-dist/tex/context/base/type-tmf.tex
index 55a6259568c..78ed89cf9c3 100644
--- a/Master/texmf-dist/tex/context/base/type-tmf.tex
+++ b/Master/texmf-dist/tex/context/base/type-tmf.tex
@@ -11,1080 +11,6 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\starttypescriptcollection[synonyms]
-
-% Computer Modern Roman : Donald Knuth
-% Latin Modern: LM Font Revision Team
-
-% LM math vs CM math (analysis by Taco):
-%
-% lmex10.tfm % identical
-% lmmi5.tfm % identical
-% lmmi6.tfm % identical
-% lmmi7.tfm % identical
-% lmmi8.tfm % identical
-% lmmi9.tfm % identical
-% lmmi10.tfm % identical
-% lmmi12.tfm % identical
-% lmmib10.tfm % identical
-% lmsy5.tfm % extra chars: 254,255 (octal)
-% lmsy6.tfm % extra chars: 254,255 (octal)
-% lmsy7.tfm % extra chars: 254,255 (octal)
-% lmsy8.tfm % extra chars: 254,255 (octal)
-% lmsy9.tfm % extra chars: 254,255 (octal)
-% lmsy10.tfm % extra chars: 254,255 (octal)
-% lmbsy10.tfm % extra chars: 254,255 (octal)
-%
-% From the 'AMS' set:
-%
-% lmmib5.tfm % identical
-% lmmib7.tfm % identical
-% lmbsy5.tfm % extra chars: 254,255 (octal)
-% lmbsy7.tfm % extra chars: 254,255 (octal)
-%
-% The two extra characters are:
-%
-% /lessorequalslant
-% /greaterorequalslant
-
-\starttypescript [serif] [modern,computer-modern,latin-modern] [name]
- \definefontsynonym [Serif] [LMRoman-Regular]
- \definefontsynonym [SerifBold] [LMRoman-Bold]
- \definefontsynonym [SerifItalic] [LMRoman-Italic]
- \definefontsynonym [SerifSlanted] [LMRoman-Oblique]
- \definefontsynonym [SerifBoldItalic] [LMRoman-BoldItalic]
- \definefontsynonym [SerifBoldSlanted] [LMRoman-BoldOblique]
- \definefontsynonym [SerifCaps] [LMRoman-CapsRegular]
- \definefontsynonym [SerifCapsSlanted] [LMRoman-CapsOblique]
-\stoptypescript
-
-\starttypescript [sans] [modern,computer-modern,latin-modern] [name]
- \definefontsynonym [Sans] [LMSans-Regular]
- \definefontsynonym [SansBold] [LMSans-Bold]
- \definefontsynonym [SansItalic] [LMSans-Oblique]
- \definefontsynonym [SansSlanted] [LMSans-Oblique]
- \definefontsynonym [SansBoldItalic] [LMSans-BoldOblique]
- \definefontsynonym [SansBoldSlanted] [LMSans-BoldOblique]
- \definefontsynonym [SansCaps] [LMSans-Regular]
- \definefontsynonym [SansCapsSlanted] [LMSans-Oblique]
-\stoptypescript
-
-\starttypescript [mono] [modern,computer-modern,latin-modern] [name]
- \definefontsynonym [Mono] [LMTypewriter-Regular]
- \definefontsynonym [MonoBold] [LMTypewriter-Dark]
- \definefontsynonym [MonoItalic] [LMTypewriter-Italic]
- \definefontsynonym [MonoSlanted] [LMTypewriter-Oblique]
- \definefontsynonym [MonoBoldItalic] [LMTypewriter-DarkOblique]
- \definefontsynonym [MonoBoldSlanted] [LMTypewriter-DarkOblique]
- \definefontsynonym [MonoCaps] [LMTypewriter-CapsRegular]
- \definefontsynonym [MonoCapsSlanted] [LMTypewriter-CapsOblique]
- \definefontsynonym [MonoVariable] [LMTypewriterVarWd-Regular]
-\stoptypescript
-
-\starttypescript [math] [modern,computer-modern,latin-modern] [name]
- \definefontsynonym [MathRoman] [LMMathRoman-Regular]
- \definefontsynonym [MathExtension] [LMMathExtension-Regular]
- \definefontsynonym [MathItalic] [LMMathItalic-Italic]
- \definefontsynonym [MathSymbol] [LMMathSymbols-Italic]
-\stoptypescript
-
-% maybe we can by now just use: (to be tested first)
-
-% \starttypescript [math] [modern,computer-modern,latin-modern] [name]
-% \definefontsynonym[xcmr12][LMRoman-Regular12]
-% \definefontsynonym[xcmr10][LMRoman-Regular10]
-% \definefontsynonym[xcmr9] [LMRoman-Regular9]
-% \definefontsynonym[xcmr8] [LMRoman-Regular8]
-% \definefontsynonym[xcmr7] [LMRoman-Regular7]
-% \definefontsynonym[xcmr6] [LMRoman-Regular6]
-% \definefontsynonym[xcmr5] [LMRoman-Regular5]
-% \stoptypescript
-
-\starttypescript [math] [modern,computer-modern,latin-modern] [name]
- \definefontsynonym[xcmr12][rm-lmr12]
- \definefontsynonym[xcmr10][rm-lmr10]
- \definefontsynonym[xcmr9] [rm-lmr9]
- \definefontsynonym[xcmr8] [rm-lmr8]
- \definefontsynonym[xcmr7] [rm-lmr7]
- \definefontsynonym[xcmr6] [rm-lmr6]
- \definefontsynonym[xcmr5] [rm-lmr5]
-\stoptypescript
-
-\starttypescript [boldmath] [modern,computer-modern,latin-modern] [name]
- \definefontsynonym [MathRoman] [LMMathRoman-Bold]
- \definefontsynonym [MathExtension] [LMMathExtension-Regular]
- \definefontsynonym [MathItalic] [LMMathItalic-BoldItalic]
- \definefontsynonym [MathSymbol] [LMMathSymbols-BoldItalic]
-\stoptypescript
-
-\starttypescript [bfmath] [modern,computer-modern,latin-modern] [name]
- \definefontsynonym [MathRomanBold] [LMMathRoman-Bold]
- \definefontsynonym [MathExtension] [LMMathExtension-Regular]
- \definefontsynonym [MathItalicBold] [LMMathItalic-BoldItalic]
- \definefontsynonym [MathSymbolBold] [LMMathSymbols-BoldItalic]
-\stoptypescript
-
-\starttypescript [math,boldmath,bfmath] [modern,computer-modern,latin-modern] [name]
- \usemathcollection[default]
-\stoptypescript
-
-\starttypescript [serif] [modern-vari,computer-modern-vari,latin-modern-vari] [name]
- \definefontsynonym [Serif] [LMTypewriterVarWd-Regular]
- \definefontsynonym [SerifBold] [LMTypewriterVarWd-Oblique]
- \definefontsynonym [SerifItalic] [LMTypewriterVarWd-Oblique]
- \definefontsynonym [SerifSlanted] [LMTypewriterVarWd-Dark]
- \definefontsynonym [SerifBoldItalic] [LMTypewriterVarWd-DarkOblique]
- \definefontsynonym [SerifBoldSlanted] [LMTypewriterVarWd-DarkOblique]
- \definefontsynonym [SerifCaps] [LMTypewriterVarWd-Regular]
- \definefontsynonym [SerifCapsSlanted] [LMTypewriterVarWd-Oblique]
-\stoptypescript
-
-\starttypescript [mono] [modern-cond,computer-modern-cond,latin-modern-cond,modern-lightcond,computer-modern-lightcond,latin-modern-lightcond] [name]
- \definefontsynonym [Mono] [LMTypewriter-LightCondensed]
- \definefontsynonym [MonoBold] [LMTypewriter-LightCondensed]
- \definefontsynonym [MonoItalic] [LMTypewriter-LightCondensedOblique]
- \definefontsynonym [MonoSlanted] [LMTypewriter-LightCondensedOblique]
- \definefontsynonym [MonoBoldItalic] [LMTypewriter-LightCondensed]
- \definefontsynonym [MonoBoldSlanted] [LMTypewriter-LightCondensed]
- \definefontsynonym [MonoCaps] [LMTypewriter-LightCondensed]
- \definefontsynonym [MonoCapsSlanted] [LMTypewriter-LightCondensed]
-\stoptypescript
-
-\starttypescript [mono] [modern-light,computer-modern-light,latin-modern-light] [name]
- \definefontsynonym [Mono] [LMTypewriter-Light]
- \definefontsynonym [MonoBold] [LMTypewriter-Light]
- \definefontsynonym [MonoItalic] [LMTypewriter-LightOblique]
- \definefontsynonym [MonoSlanted] [LMTypewriter-LightOblique]
- \definefontsynonym [MonoBoldItalic] [LMTypewriter-Light]
- \definefontsynonym [MonoBoldSlanted] [LMTypewriter-Light]
- \definefontsynonym [MonoCaps] [LMTypewriter-Light]
- \definefontsynonym [MonoCapsSlanted] [LMTypewriter-Light]
-\stoptypescript
-
-% Later we will map the real fonts, here we just map synonyms.
-
-\starttypescript [serif] [modern,latin-modern]
- \definefontsynonym [LMRoman-DemiOblique] [LMRoman10-DemiOblique]
- \definefontsynonym [LMRoman-Bold] [LMRoman10-Bold]
- \definefontsynonym [LMRoman-BoldItalic] [LMRoman10-BoldItalic]
- \definefontsynonym [LMRoman-BoldOblique] [LMRoman10-BoldOblique]
- \definefontsynonym [LMRoman-CapsRegular] [LMRoman10-CapsRegular]
- \definefontsynonym [LMRoman-CapsOblique] [LMRoman10-CapsOblique]
- \definefontsynonym [LMRoman-Regular] [LMRoman10-Regular]
- \definefontsynonym [LMRoman-Italic] [LMRoman10-Italic]
- \definefontsynonym [LMRoman-Oblique] [LMRoman10-Oblique]
-\stoptypescript
-
-\starttypescript [sans] [modern,latin-modern]
- \definefontsynonym [LMSans-Regular] [LMSans10-Regular]
- \definefontsynonym [LMSans-BoldOblique] [LMSans10-BoldOblique]
- \definefontsynonym [LMSans-Bold] [LMSans10-Bold]
- \definefontsynonym [LMSans-DemiCondensed] [LMSans10-DemiCondensed]
- \definefontsynonym [LMSans-DemiCondensedOblique] [LMSans10-DemiCondensedOblique]
- \definefontsynonym [LMSans-Oblique] [LMSans10-Oblique]
-\stoptypescript
-
-\starttypescript [mono] [modern,latin-modern,modern-vari,latin-modern-vari,modern-cond,latin-modern-cond]
- \definefontsynonym [LMTypewriter-CapsRegular] [LMTypewriter10-CapsRegular]
- \definefontsynonym [LMTypewriter-CapsOblique] [LMTypewriter10-CapsOblique]
- \definefontsynonym [LMTypewriter-Light] [LMTypewriter10-Light]
- \definefontsynonym [LMTypewriter-LightOblique] [LMTypewriter10-LightOblique]
- \definefontsynonym [LMTypewriter-LightCondensed] [LMTypewriter10-LightCondensed]
- \definefontsynonym [LMTypewriter-LightCondensedOblique] [LMTypewriter10-LightCondensedOblique]
- \definefontsynonym [LMTypewriter-Dark] [LMTypewriter10-Dark]
- \definefontsynonym [LMTypewriter-DarkOblique] [LMTypewriter10-DarkOblique]
- \definefontsynonym [LMTypewriter-Regular] [LMTypewriter10-Regular]
- \definefontsynonym [LMTypewriter-Italic] [LMTypewriter10-Italic]
- \definefontsynonym [LMTypewriter-Oblique] [LMTypewriter10-Oblique]
- \definefontsynonym [LMTypewriterVarWd-Regular] [LMTypewriterVarWd10-Regular]
- \definefontsynonym [LMTypewriterVarWd-Oblique] [LMTypewriterVarWd10-Oblique]
- \definefontsynonym [LMTypewriterVarWd-Light] [LMTypewriterVarWd10-Light]
- \definefontsynonym [LMTypewriterVarWd-LightOblique] [LMTypewriterVarWd10-LightOblique]
- \definefontsynonym [LMTypewriterVarWd-Dark] [LMTypewriterVarWd10-Dark]
- \definefontsynonym [LMTypewriterVarWd-DarkOblique] [LMTypewriterVarWd10-DarkOblique]
-\stoptypescript
-
-\starttypescript [serif] [modern,computer-modern,latin-modern]
- \definefontsynonym [ComputerModern] [LMRoman-Regular]
- \definefontsynonym [ComputerModern-Italic] [LMRoman-Italic]
- \definefontsynonym [ComputerModern-Slanted] [LMRoman-Oblique]
- \definefontsynonym [ComputerModern-Bold] [LMRoman-Bold]
- \definefontsynonym [ComputerModern-BoldItalic] [LMRoman-BoldItalic]
- \definefontsynonym [ComputerModern-BoldSlanted] [LMRoman-BoldOblique]
- \definefontsynonym [ComputerModern-Caps] [LMRoman-CapsRegular]
- \definefontsynonym [ComputerModern-CapsSlanted] [LMRoman-CapsOblique]
-\stoptypescript
-
-\starttypescript [sans] [modern,computer-modern,latin-modern]
- \definefontsynonym [ComputerModernSans] [LMSans-Regular]
- \definefontsynonym [ComputerModernSans-Italic] [LMSans-Oblique]
- \definefontsynonym [ComputerModernSans-Slanted] [LMSans-Oblique]
- \definefontsynonym [ComputerModernSans-Bold] [LMSans-Bold]
- \definefontsynonym [ComputerModernSans-BoldItalic] [LMSans-BoldOblique]
- \definefontsynonym [ComputerModernSans-BoldSlanted] [LMSans-BoldOblique]
- \definefontsynonym [ComputerModernSans-Caps] [LMSans-Regular] % [LMSans-CapsRegular]
- \definefontsynonym [ComputerModernSans-CapsSlanted] [LMSans-Oblique] % [LMSans-CapsOblique]
-\stoptypescript
-
-\starttypescript [mono] [modern,computer-modern,latin-modern]
- \definefontsynonym [ComputerModernMono] [LMTypewriter-Regular]
- \definefontsynonym [ComputerModernMono-Italic] [LMTypewriter-Italic]
- \definefontsynonym [ComputerModernMono-Slanted] [LMTypewriter-Oblique]
- \definefontsynonym [ComputerModernMono-Bold] [LMTypewriter-Dark]
- \definefontsynonym [ComputerModernMono-BoldItalic] [LMTypewriter-DarkOblique] % !
- \definefontsynonym [ComputerModernMono-BoldSlanted] [LMTypewriter-DarkOblique]
- \definefontsynonym [ComputerModernMono-Caps] [LMTypewriter-CapsRegular]
- \definefontsynonym [ComputerModernMono-CapsSlanted] [LMTypewriter-CapsOblique]
- \definefontsynonym [ComputerModernMono-Variable] [LMTypewriterVarWd-Regular]
-\stoptypescript
-
-\starttypescript [serif] [modern-vari,computer-modern-vari,latin-modern-vari]
- \definefontsynonym [ComputerModernVariable] [LMTypewriterVarWd-Regular]
- \definefontsynonym [ComputerModernVariable-Italic] [LMTypewriterVarWd-Oblique]
- \definefontsynonym [ComputerModernVariable-Slanted] [LMTypewriterVarWd-Oblique]
- \definefontsynonym [ComputerModernVariable-Bold] [LMTypewriterVarWd-Dark]
- \definefontsynonym [ComputerModernVariable-BoldItalic] [LMTypewriterVarWd-DarkOblique]
- \definefontsynonym [ComputerModernVariable-BoldSlanted] [LMTypewriterVarWd-DarkOblique]
- \definefontsynonym [ComputerModernVariable-Caps] [LMTypewriterVarWd-Regular]
- \definefontsynonym [ComputerModernVariable-CapsSlanted] [LMTypewriterVarWd-Oblique]
-\stoptypescript
-
-\starttypescript [math] [modern,latin-modern]
- \definefontsynonym [LMMathRoman-Regular] [LMMathRoman10-Regular]
- \definefontsynonym [LMMathRoman-Bold] [LMMathRoman10-Bold]
- \definefontsynonym [LMMathSymbols-BoldItalic] [LMMathSymbols10-BoldItalic]
- \definefontsynonym [LMMathSymbols-Italic] [LMMathSymbols10-Italic]
- \definefontsynonym [LMMathExtension-Regular] [LMMathExtension10-Regular]
- \definefontsynonym [LMMathItalic-Italic] [LMMathItalic10-Italic]
- \definefontsynonym [LMMathItalic-BoldItalic] [LMMathItalic10-BoldItalic]
-\stoptypescript
-
-% can boldmath and bfmath be joined?
-\starttypescript [boldmath] [modern,computer-modern,latin-modern] [name]
- \definefontsynonym [LMMathRoman-Bold] [LMMathRoman10-Bold]
- \definefontsynonym [LMMathExtension-Regular] [LMMathExtension10-Regular]
- \definefontsynonym [LMMathItalic-BoldItalic] [LMMathItalic10-BoldItalic]
- \definefontsynonym [LMMathSymbols-BoldItalic] [LMMathSymbols10-BoldItalic]
-\stoptypescript
-
-\starttypescript [bfmath] [modern,computer-modern,latin-modern] [name]
- \definefontsynonym [LMMathRoman-Bold] [LMMathRoman10-Bold]
- \definefontsynonym [LMMathExtension-Regular] [LMMathExtension10-Regular]
- \definefontsynonym [LMMathItalic-BoldItalic] [LMMathItalic10-BoldItalic]
- \definefontsynonym [LMMathSymbols-BoldItalic] [LMMathSymbols10-BoldItalic]
-\stoptypescript
-
-\starttypescript [serif] [modern,latin-modern,computer-modern]
- \definefontsynonym [cmr5] [LMRoman5-Regular]
- \definefontsynonym [cmr6] [LMRoman6-Regular]
- \definefontsynonym [cmr7] [LMRoman7-Regular]
- \definefontsynonym [cmr8] [LMRoman8-Regular]
- \definefontsynonym [cmr9] [LMRoman9-Regular]
- \definefontsynonym [cmr10] [LMRoman10-Regular]
- \definefontsynonym [cmr12] [LMRoman12-Regular]
- \definefontsynonym [cmr17] [LMRoman17-Regular]
- \definefontsynonym [cmbx5] [LMRoman5-Bold]
- \definefontsynonym [cmbx6] [LMRoman6-Bold]
- \definefontsynonym [cmbx7] [LMRoman7-Bold]
- \definefontsynonym [cmbx8] [LMRoman8-Bold]
- \definefontsynonym [cmbx9] [LMRoman9-Bold]
- \definefontsynonym [cmbx10] [LMRoman10-Bold]
- \definefontsynonym [cmbx12] [LMRoman12-Bold]
- \definefontsynonym [cmsl10] [LMRoman10-Oblique]
- \definefontsynonym [cmsl12] [LMRoman12-Oblique]
- \definefontsynonym [cmsl17] [LMRoman17-Oblique]
- \definefontsynonym [cmsl8] [LMRoman8-Oblique]
- \definefontsynonym [cmsl9] [LMRoman9-Oblique]
- \definefontsynonym [cmti7] [LMRoman7-Italic]
- \definefontsynonym [cmti8] [LMRoman8-Italic]
- \definefontsynonym [cmti9] [LMRoman9-Italic]
- \definefontsynonym [cmti10] [LMRoman10-Italic]
- \definefontsynonym [cmti12] [LMRoman12-Italic]
- \definefontsynonym [cmbsl10] [LMRoman10-DemiOblique]
- \definefontsynonym [cmbxsl10] [LMRoman10-BoldOblique]
- \definefontsynonym [cmbxti10] [LMRoman10-BoldItalic]
- \definefontsynonym [cmcsc10] [LMRoman10-CapsRegular]
- \definefontsynonym [cmcscsl10][LMRoman10-CapsOblique]
-
- %definefontsynonym [cmb10]
-\stoptypescript
-
-\starttypescript [sans] [modern,latin-modern,computer-modern]
- \definefontsynonym [cmss8] [LMSans8-Regular]
- \definefontsynonym [cmss9] [LMSans9-Regular]
- \definefontsynonym [cmss10] [LMSans10-Regular]
- \definefontsynonym [cmss12] [LMSans12-Regular]
- \definefontsynonym [cmss17] [LMSans17-Regular]
- \definefontsynonym [cmssi10] [LMSans10-Oblique]
- \definefontsynonym [cmssi12] [LMSans12-Oblique]
- \definefontsynonym [cmssi17] [LMSans17-Oblique]
- \definefontsynonym [cmssi8] [LMSans8-Oblique]
- \definefontsynonym [cmssi9] [LMSans9-Oblique]
- \definefontsynonym [cmssq8] [LMSansQuotation8-Regular]
- \definefontsynonym [cmssqb8] [LMSansQuotation8-Bold]
- \definefontsynonym [cmssqbi8] [LMSansQuotation8-BoldOblique]
- \definefontsynonym [cmssqi8] [LMSansQuotation8-Oblique]
- \definefontsynonym [cmssbx10] [LMSans10-Bold]
- \definefontsynonym [cmssdc10] [LMSans10-DemiCondensed]
- \definefontsynonym [cmssbi10] [LMSans10-BoldOblique]
- \definefontsynonym [cmssdi10] [LMSans10-DemiCondensedOblique]
-\stoptypescript
-
-\starttypescript [mono] [modern,latin-modern,computer-modern]
- \definefontsynonym [cmtt8] [LMTypewriter8-Regular]
- \definefontsynonym [cmtt9] [LMTypewriter9-Regular]
- \definefontsynonym [cmtt10] [LMTypewriter10-Regular]
- \definefontsynonym [cmtt12] [LMTypewriter12-Regular]
- \definefontsynonym [cmitt10] [LMTypewriter10-Italic]
- \definefontsynonym [cmsltt10] [LMTypewriter10-Oblique]
- \definefontsynonym [cmvtt10] [LMTypewriterVarWd10-Regular]
- \definefontsynonym [cmvtti10] [LMTypewriterVarWd10-Oblique]
- \definefontsynonym [cmtcsc10] [LMTypewriter10-CapsRegular]
-\stoptypescript
-
-\starttypescript [math] [modern,latin-modern,computer-modern]
- \definefontsynonym [cmbsy5] [LMMathSymbols5-BoldItalic]
- \definefontsynonym [cmbsy7] [LMMathSymbols7-BoldItalic]
- \definefontsynonym [cmbsy10] [LMMathSymbols10-BoldItalic]
- \definefontsynonym [cmsy5] [LMMathSymbols5-Italic]
- \definefontsynonym [cmsy6] [LMMathSymbols6-Italic]
- \definefontsynonym [cmsy7] [LMMathSymbols7-Italic]
- \definefontsynonym [cmsy8] [LMMathSymbols8-Italic]
- \definefontsynonym [cmsy9] [LMMathSymbols9-Italic]
- \definefontsynonym [cmsy10] [LMMathSymbols10-Italic]
- \definefontsynonym [cmex10] [LMMathExtension10-Regular]
- \definefontsynonym [cmmi5] [LMMathItalic5-Italic]
- \definefontsynonym [cmmi6] [LMMathItalic6-Italic]
- \definefontsynonym [cmmi7] [LMMathItalic7-Italic]
- \definefontsynonym [cmmi8] [LMMathItalic8-Italic]
- \definefontsynonym [cmmi9] [LMMathItalic9-Italic]
- \definefontsynonym [cmmi10] [LMMathItalic10-Italic]
- \definefontsynonym [cmmi12] [LMMathItalic12-Italic]
- \definefontsynonym [cmmib5] [LMMathItalic5-BoldItalic]
- \definefontsynonym [cmmib7] [LMMathItalic7-BoldItalic]
- \definefontsynonym [cmmib10] [LMMathItalic10-BoldItalic]
-\stoptypescript
-
-% This will change some day.
-
-\starttypescript [math] [modern,computer-modern,latin-modern] [name]
- \definefontsynonym [OldStyle] [MathItalic]
- \definefontsynonym [Fraktur] [eufm10]
- \definefontsynonym [Blackboard] [msbm10]
- \definefontsynonym [Gothic] [eufm10]
- \definefontsynonym [Calligraphic] [cmsy10]
-\stoptypescript
-
-% Concrete Modern Roman : Donald Knuth
-
-\starttypescript [serif] [concrete] [name]
- \definefontsynonym [Serif] [ComputerConcrete]
- \definefontsynonym [SerifBold] [ComputerConcrete]
- \definefontsynonym [SerifItalic] [ComputerConcrete-Italic]
- \definefontsynonym [SerifSlanted] [ComputerConcrete-Slanted]
- \definefontsynonym [SerifBoldItalic] [ComputerConcrete-Italic]
- \definefontsynonym [SerifBoldSlanted] [ComputerConcrete-Slanted]
- \definefontsynonym [SerifCaps] [ComputerConcrete-Caps]
-\stoptypescript
-
-% Euler : Hermann Zapf
-
-\starttypescript [math] [euler] [name]
- \definefontsynonym [MathRoman] [Euler-Roman] % mr
- \definefontsynonym [MathItalic] [Euler-Fraktur] % mi
- \definefontsynonym [MathExtension] [Euler-Extension] % ex
- \definefontsynonym [MathSymbol] [Euler-Symbol] % sy
-\stoptypescript
-
-\starttypescript [boldmath] [euler] [name]
- \definefontsynonym [MathRoman] [Euler-Roman-Bold] % mr
- \definefontsynonym [MathItalic] [Euler-Fraktur-Bold] % mi
- \definefontsynonym [MathExtension] [Euler-Extension] % ex
- \definefontsynonym [MathSymbol] [Euler-Symbol-Bold] % sy
-\stoptypescript
-
-\starttypescript [bfmath] [euler] [name]
- \definefontsynonym [MathRomanBold] [Euler-Roman-Bold] % mr
- \definefontsynonym [MathItalicBold] [Euler-Fraktur-Bold] % mi
- \definefontsynonym [MathExtension] [Euler-Extension] % ex
- \definefontsynonym [MathSymbolBold] [Euler-Symbol-Bold] % sy
-\stoptypescript
-
-\starttypescript [math] [euler] [name]
- \definefontsynonym [OldStyle] [MathItalic]
- \definefontsynonym [Fraktur] [MathItalic]
- \definefontsynonym [Gothic] [MathItalic]
- \definefontsynonym [Calligraphic] [MathSymbol]
-\stoptypescript
-
-\starttypescript [boldmath] [euler] [name]
- \definefontsynonym [OldStyle] [MathItalicBold]
- \definefontsynonym [Fraktur] [MathItalicBold]
- \definefontsynonym [Gothic] [MathItalicBold]
- \definefontsynonym [Calligraphic] [MathSymbolBold]
-\stoptypescript
-
-\starttypescript [math,boldmath,bfmath] [euler] [name]
- \usemathcollection[eul]
-\stoptypescript
-
-% American Math Society : Michael Spivak
-
-\starttypescript [math] [modern,computer-modern,latin-modern,ams] [name]
- \definefontsynonym [MathAlpha] [AMS-SymbolA]
- \definefontsynonym [MathBeta] [AMS-SymbolB]
-\stoptypescript
-
-% Antykwa Torunska :
-
-\starttypescript [serif] [antykwa-torunska] [name]
- \definefontsynonym [Serif] [AntykwaTorunska-Regular]
- \definefontsynonym [SerifBold] [AntykwaTorunska-Bold]
- \definefontsynonym [SerifItalic] [AntykwaTorunska-Italic]
- \definefontsynonym [SerifSlanted] [AntykwaTorunska-Italic]
- \definefontsynonym [SerifBoldItalic] [AntykwaTorunska-BoldItalic]
- \definefontsynonym [SerifBoldSlanted] [AntykwaTorunska-BoldItalic]
- \definefontsynonym [SerifCaps] [AntykwaTorunska-Cap]
-\stoptypescript
-
-\starttypescript [serif] [antykwa-torunska-light] [name]
- \definefontsynonym [Serif] [AntykwaTorunska-Light]
- \definefontsynonym [SerifBold] [AntykwaTorunska-Medium]
- \definefontsynonym [SerifItalic] [AntykwaTorunska-LightItalic]
- \definefontsynonym [SerifSlanted] [AntykwaTorunska-LightItalic]
- \definefontsynonym [SerifBoldItalic] [AntykwaTorunska-MedItalic]
- \definefontsynonym [SerifBoldSlanted] [AntykwaTorunska-MedItalic]
- \definefontsynonym [SerifCaps] [AntykwaTorunska-LightCap]
-\stoptypescript
-
-\starttypescript [serif] [antykwa-torunska-cond] [name]
- \definefontsynonym [Serif] [AntykwaTorunska-CondRegular]
- \definefontsynonym [SerifBold] [AntykwaTorunska-CondBold]
- \definefontsynonym [SerifItalic] [AntykwaTorunska-CondItalic]
- \definefontsynonym [SerifSlanted] [AntykwaTorunska-CondItalic]
- \definefontsynonym [SerifBoldItalic] [AntykwaTorunska-CondBoldItalic]
- \definefontsynonym [SerifBoldSlanted] [AntykwaTorunska-CondBoldItalic]
- \definefontsynonym [SerifCaps] [AntykwaTorunska-CondCap]
-\stoptypescript
-
-\starttypescript [serif] [antykwa-torunska-lightcond] [name]
- \definefontsynonym [Serif] [AntykwaTorunska-CondLight]
- \definefontsynonym [SerifBold] [AntykwaTorunska-CondMedium]
- \definefontsynonym [SerifItalic] [AntykwaTorunska-CondLightItalic]
- \definefontsynonym [SerifSlanted] [AntykwaTorunska-CondLightItalic]
- \definefontsynonym [SerifBoldItalic] [AntykwaTorunska-CondMedItalic]
- \definefontsynonym [SerifBoldSlanted] [AntykwaTorunska-CondMedItalic]
- \definefontsynonym [SerifCaps] [AntykwaTorunska-CondLightCap]
-\stoptypescript
-
-\starttypescript [serif] [antykwa-torunska] [name]
- \definefontsynonym [SerifRegular] [Serif]
- \definefontsynonym [SerifRegularCaps] [AntykwaTorunska-Cap]
- \definefontsynonym [SerifBoldCaps] [AntykwaTorunska-BoldCap]
- \definefontsynonym [SerifItalicCaps] [AntykwaTorunska-ItalicCap]
- \definefontsynonym [SerifSlantedCaps] [AntykwaTorunska-ItalicCap]
- \definefontsynonym [SerifBoldItalicCaps] [AntykwaTorunska-BoldItalicCap]
- \definefontsynonym [SerifBoldSlantedCaps] [AntykwaTorunska-BoldItalicCap]
- \definefontsynonym [SerifCapsCaps] [AntykwaTorunska-Cap]
-
- \definefontvariant [Serif][osf][Caps]
- \definefontvariant [Serif][sc] [Caps]
-
- \definefontsynonym [SerifRegularLight] [AntykwaTorunska-Light]
- \definefontsynonym [SerifBoldLight] [AntykwaTorunska-Medium]
- \definefontsynonym [SerifItalicLight] [AntykwaTorunska-LightItalic]
- \definefontsynonym [SerifSlantedLight] [AntykwaTorunska-LightItalic]
- \definefontsynonym [SerifBoldItalicLight] [AntykwaTorunska-MedItalic]
- \definefontsynonym [SerifBoldSlantedLight] [AntykwaTorunska-MedItalic]
- \definefontsynonym [SerifCapsLight] [AntykwaTorunska-LightCap]
-
- \definefontvariant [Serif][lt][Light]
-
- \definefontsynonym [SerifRegularCond] [AntykwaTorunska-CondRegular]
- \definefontsynonym [SerifBoldCond] [AntykwaTorunska-CondBold]
- \definefontsynonym [SerifItalicCond] [AntykwaTorunska-CondItalic]
- \definefontsynonym [SerifSlantedCond] [AntykwaTorunska-CondItalic]
- \definefontsynonym [SerifBoldItalicCond] [AntykwaTorunska-CondBoldItalic]
- \definefontsynonym [SerifBoldSlantedCond] [AntykwaTorunska-CondBoldItalic]
- \definefontsynonym [SerifCapsCond] [AntykwaTorunska-CondCap]
-
- \definefontvariant [Serif][cond][Cond]
-
-\stoptypescript
-
-\starttypescript [serif] [antykwa-torunska-light] [name]
- \definefontsynonym [SerifRegular] [Serif]
- \definefontsynonym [SerifRegularCaps] [AntykwaTorunska-LightCap]
- \definefontsynonym [SerifBoldCaps] [AntykwaTorunska-MediumCap]
- \definefontsynonym [SerifItalicCaps] [AntykwaTorunska-LightItalicCap]
- \definefontsynonym [SerifSlantedCaps] [AntykwaTorunska-LightItalicCap]
- \definefontsynonym [SerifBoldItalicCaps] [AntykwaTorunska-MedItalicCap]
- \definefontsynonym [SerifBoldSlantedCaps] [AntykwaTorunska-MedItalicCap]
- \definefontsynonym [SerifCapsCaps] [AntykwaTorunska-LightCap]
-
- \definefontvariant [Serif][osf][Caps]
- \definefontvariant [Serif][sc] [Caps]
-
- \definefontsynonym [SerifRegularDark] [AntykwaTorunska-Regular]
- \definefontsynonym [SerifBoldDark] [AntykwaTorunska-Bold]
- \definefontsynonym [SerifItalicDark] [AntykwaTorunska-Italic]
- \definefontsynonym [SerifSlantedDark] [AntykwaTorunska-Italic]
- \definefontsynonym [SerifBoldItalicDark] [AntykwaTorunska-BoldItalic]
- \definefontsynonym [SerifBoldSlantedDark] [AntykwaTorunska-BoldItalic]
- \definefontsynonym [SerifCapsDark] [AntykwaTorunska-Cap]
-
- \definefontvariant [Serif][dk][Dark]
-
- \definefontsynonym [SerifRegularCond] [AntykwaTorunska-CondLight]
- \definefontsynonym [SerifBoldCond] [AntykwaTorunska-CondMedium]
- \definefontsynonym [SerifItalicCond] [AntykwaTorunska-CondLightItalic]
- \definefontsynonym [SerifSlantedCond] [AntykwaTorunska-CondLightItalic]
- \definefontsynonym [SerifBoldItalicCond] [AntykwaTorunska-CondMedItalic]
- \definefontsynonym [SerifBoldSlantedCond] [AntykwaTorunska-CondMedItalic]
- \definefontsynonym [SerifCapsCond] [AntykwaTorunska-CondLightCap]
-
- \definefontvariant [Serif][cond][Cond]
-
-\stoptypescript
-
-\starttypescript [serif] [antykwa-torunska-cond] [name]
- \definefontsynonym [SerifRegular] [Serif]
- \definefontsynonym [SerifRegularCaps] [AntykwaTorunska-CondCap]
- \definefontsynonym [SerifBoldCaps] [AntykwaTorunska-CondBoldCap]
- \definefontsynonym [SerifItalicCaps] [AntykwaTorunska-CondItalicCap]
- \definefontsynonym [SerifSlantedCaps] [AntykwaTorunska-CondItalicCap]
- \definefontsynonym [SerifBoldItalicCaps] [AntykwaTorunska-CondBoldItalicCap]
- \definefontsynonym [SerifBoldSlantedCaps] [AntykwaTorunska-CondBoldItalicCap]
- \definefontsynonym [SerifCapsCaps] [AntykwaTorunska-CondCap]
-
- \definefontvariant [Serif][osf][Caps]
- \definefontvariant [Serif][sc] [Caps]
-
- \definefontsynonym [SerifRegularLight] [AntykwaTorunska-CondLight]
- \definefontsynonym [SerifBoldLight] [AntykwaTorunska-CondMedium]
- \definefontsynonym [SerifItalicLight] [AntykwaTorunska-CondLightItalic]
- \definefontsynonym [SerifSlantedLight] [AntykwaTorunska-CondLightItalic]
- \definefontsynonym [SerifBoldItalicLight] [AntykwaTorunska-CondMedItalic]
- \definefontsynonym [SerifBoldSlantedLight] [AntykwaTorunska-CondMedItalic]
- \definefontsynonym [SerifCapsLight] [AntykwaTorunska-CondLightCap]
-
- \definefontvariant [Serif][lt][Light]
-
- \definefontsynonym [SerifRegularExp] [AntykwaTorunska-Regular]
- \definefontsynonym [SerifBoldExp] [AntykwaTorunska-Bold]
- \definefontsynonym [SerifItalicExp] [AntykwaTorunska-Italic]
- \definefontsynonym [SerifSlantedExp] [AntykwaTorunska-Italic]
- \definefontsynonym [SerifBoldItalicExp] [AntykwaTorunska-BoldItalic]
- \definefontsynonym [SerifBoldSlantedExp] [AntykwaTorunska-BoldItalic]
- \definefontsynonym [SerifCapsExp] [AntykwaTorunska-Cap]
-
- \definefontvariant [Serif][exp][Exp]
-
-\stoptypescript
-
-\starttypescript [serif] [antykwa-torunska-lightcond] [name]
- \definefontsynonym [SerifRegular] [Serif]
- \definefontsynonym [SerifRegularCaps] [AntykwaTorunska-CondLightCap]
- \definefontsynonym [SerifBoldCaps] [AntykwaTorunska-CondMediumCap]
- \definefontsynonym [SerifItalicCaps] [AntykwaTorunska-CondLightItalicCap]
- \definefontsynonym [SerifSlantedCaps] [AntykwaTorunska-CondLightItalicCap]
- \definefontsynonym [SerifBoldItalicCaps] [AntykwaTorunska-CondMedItalicCap]
- \definefontsynonym [SerifBoldSlantedCaps] [AntykwaTorunska-CondMedItalicCap]
- \definefontsynonym [SerifCapsCaps] [AntykwaTorunska-CondLightCap]
-
- \definefontvariant [Serif][osf][Caps]
- \definefontvariant [Serif][sc] [Caps]
-
- \definefontsynonym [SerifRegularDark] [AntykwaTorunska-CondRegular]
- \definefontsynonym [SerifBoldDark] [AntykwaTorunska-CondBold]
- \definefontsynonym [SerifItalicDark] [AntykwaTorunska-CondItalic]
- \definefontsynonym [SerifSlantedDark] [AntykwaTorunska-CondItalic]
- \definefontsynonym [SerifBoldItalicDark] [AntykwaTorunska-CondBoldItalic]
- \definefontsynonym [SerifBoldSlantedDark] [AntykwaTorunska-CondBoldItalic]
- \definefontsynonym [SerifCapsDark] [AntykwaTorunska-CondCap]
-
- \definefontvariant [Serif][dk][Dark]
-
- \definefontsynonym [SerifRegularExp] [AntykwaTorunska-Light]
- \definefontsynonym [SerifBoldExp] [AntykwaTorunska-Medium]
- \definefontsynonym [SerifItalicExp] [AntykwaTorunska-LightItalic]
- \definefontsynonym [SerifSlantedExp] [AntykwaTorunska-LightItalic]
- \definefontsynonym [SerifBoldItalicExp] [AntykwaTorunska-MedItalic]
- \definefontsynonym [SerifBoldSlantedExp] [AntykwaTorunska-MedItalic]
- \definefontsynonym [SerifCapsExp] [AntykwaTorunska-LightCap]
-
- \definefontvariant [Serif][exp][Exp]
-
-\stoptypescript
-
-% maybe no -Regular etc
-
-\starttypescript [math] [antykwa-torunska-light] [name]
- \definefontsynonym [MathRoman] [AntykwaTorunska-Math-Letters-Light]
- \definefontsynonym [MathItalic] [AntykwaTorunska-Math-Letters-LightItalic]
- \definefontsynonym [MathSymbol] [AntykwaTorunska-Math-Symbols-Light]
- \definefontsynonym [MathExtension] [AntykwaTorunska-Math-Extension-Light]
-\stoptypescript
-
-\starttypescript [math] [antykwa-torunska] [name]
- \definefontsynonym [MathRoman] [AntykwaTorunska-Math-Letters-Regular]
- \definefontsynonym [MathItalic] [AntykwaTorunska-Math-Letters-Italic]
- \definefontsynonym [MathSymbol] [AntykwaTorunska-Math-Symbols-Regular]
- \definefontsynonym [MathExtension] [AntykwaTorunska-Math-Extension-Regular]
-\stoptypescript
-
-\starttypescript [math] [antykwa-torunska-cond] [name]
- \definefontsynonym [MathRoman] [AntykwaTorunska-Math-Letters-CondRegular]
- \definefontsynonym [MathItalic] [AntykwaTorunska-Math-Letters-CondItalic]
- \definefontsynonym [MathSymbol] [AntykwaTorunska-Math-Symbols-CondRegular]
- \definefontsynonym [MathExtension] [AntykwaTorunska-Math-Extension-CondRegular]
-\stoptypescript
-
-\starttypescript [math] [antykwa-torunska-lightcond] [name]
- \definefontsynonym [MathRoman] [AntykwaTorunska-Math-Letters-CondLight]
- \definefontsynonym [MathItalic] [AntykwaTorunska-Math-Letters-CondLightItalic]
- \definefontsynonym [MathSymbol] [AntykwaTorunska-Math-Symbols-CondLight]
- \definefontsynonym [MathExtension] [AntykwaTorunska-Math-Extension-CondLight]
-\stoptypescript
-
-% Antykwa Poltawskiego :
-
-\starttypescript [serif] [antykwa-poltawskiego] [name]
- \definefontsynonym [Serif] [AntykwaPoltawskiego-Regular]
- \definefontsynonym [SerifBold] [AntykwaPoltawskiego-Bold]
- \definefontsynonym [SerifItalic] [AntykwaPoltawskiego-Italic]
- \definefontsynonym [SerifSlanted] [AntykwaPoltawskiego-Italic]
- \definefontsynonym [SerifBoldItalic] [AntykwaPoltawskiego-Bold]
- \definefontsynonym [SerifBoldSlanted] [AntykwaPoltawskiego-Bold]
- \definefontsynonym [SerifCaps] [AntykwaPoltawskiego-Regular]
-\stoptypescript
-
-% Iwona
-
-\starttypescript [sans] [iwona-light] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-Light-Regular]
- \definefontsynonym [SansItalic] [Iwona-Light-Italic]
- \definefontsynonym [SansBold] [Iwona-Medium-Regular]
- \definefontsynonym [SansBoldItalic] [Iwona-Medium-Italic]
- \definefontsynonym [SansCaps] [Iwona-CapsLight]
- \definefontsynonym [SansItalicCaps] [Iwona-CapsLightItalic]
- \definefontsynonym [SansBoldCaps] [Iwona-CapsMedium]
- \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsMediumItalic]
-\stoptypescript
-
-\starttypescript [sans] [iwona-light-caps] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-CapsLight-Regular]
- \definefontsynonym [SansItalic] [Iwona-CapsLight-Italic]
- \definefontsynonym [SansBold] [Iwona-CapsMedium-Regular]
- \definefontsynonym [SansBoldItalic] [Iwona-CapsMedium-Italic]
-\stoptypescript
-
-\starttypescript [sans] [iwona] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-Regular]
- \definefontsynonym [SansItalic] [Iwona-Italic]
- \definefontsynonym [SansBold] [Iwona-Bold]
- \definefontsynonym [SansBoldItalic] [Iwona-BoldItalic]
- \definefontsynonym [SansCaps] [Iwona-CapsRegular]
- \definefontsynonym [SansItalicCaps] [Iwona-CapsItalic]
- \definefontsynonym [SansBoldCaps] [Iwona-CapsBold]
- \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsBoldItalic]
-\stoptypescript
-
-\starttypescript [sans] [iwona-caps] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-CapsRegular]
- \definefontsynonym [SansItalic] [Iwona-CapsItalic]
- \definefontsynonym [SansBold] [Iwona-CapsBold]
- \definefontsynonym [SansBoldItalic] [Iwona-CapsBoldItalic]
-\stoptypescript
-
-\starttypescript [sans] [iwona-medium] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-Medium-Regular]
- \definefontsynonym [SansItalic] [Iwona-Medium-Italic]
- \definefontsynonym [SansBold] [Iwona-Heavy-Regular]
- \definefontsynonym [SansBoldItalic] [Iwona-Heavy-Italic]
- \definefontsynonym [SansCaps] [Iwona-CapsHeavy-Regular]
- \definefontsynonym [SansItalicCaps] [Iwona-CapsMedium-Italic]
- \definefontsynonym [SansBoldCaps] [Iwona-CapsHeavy-Regular]
- \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsHeavy-Italic]
-\stoptypescript
-
-\starttypescript [sans] [iwona-medium-caps] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-CapsHeavy-Regular]
- \definefontsynonym [SansItalic] [Iwona-CapsMedium-Italic]
- \definefontsynonym [SansBold] [Iwona-CapsHeavy-Regular]
- \definefontsynonym [SansBoldItalic] [Iwona-CapsHeavy-Italic]
-\stoptypescript
-
-\starttypescript [sans] [iwona-heavy] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-Heavy-Regular]
- \definefontsynonym [SansItalic] [Iwona-Heavy-Italic]
- \definefontsynonym [SansBold] [Iwona-Heavy-Regular]
- \definefontsynonym [SansBoldItalic] [Iwona-Heavy-Italic]
- \definefontsynonym [SansCaps] [Iwona-CapsHeavy-Regular]
- \definefontsynonym [SansItalicCaps] [Iwona-CapsHeavy-Italic]
- \definefontsynonym [SansBoldCaps] [Iwona-CapsHeavy-Regular]
- \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsHeavy-Italic]
-\stoptypescript
-
-\starttypescript [sans] [iwona-heavy-caps] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [SansCaps] [Iwona-CapsHeavy-Regular]
- \definefontsynonym [SansItalicCaps] [Iwona-CapsHeavy-Italic]
- \definefontsynonym [SansBoldCaps] [Iwona-CapsHeavy-Regular]
- \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsHeavy-Italic]
-\stoptypescript
-
-\starttypescript [sans] [iwona-light-cond] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-CondLight-Regular]
- \definefontsynonym [SansItalic] [Iwona-CondLight-Italic]
- \definefontsynonym [SansBold] [Iwona-CondMedium-Regular]
- \definefontsynonym [SansBoldItalic] [Iwona-CondMedium-Italic]
- \definefontsynonym [SansCaps] [Iwona-CapsCondLight-Regular]
- \definefontsynonym [SansItalicCaps] [Iwona-CapsCondLight-Italic]
- \definefontsynonym [SansBoldCaps] [Iwona-CapsCondMedium-Regular]
- \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsCondMedium-Italic]
-\stoptypescript
-
-\starttypescript [sans] [iwona-light-cond-caps,iwona-light-caps-cond] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-CapsCondLight-Regular]
- \definefontsynonym [SansItalic] [Iwona-CapsCondLight-Italic]
- \definefontsynonym [SansBold] [Iwona-CapsCondMedium-Regular]
- \definefontsynonym [SansBoldItalic] [Iwona-CapsCondMedium-Italic]
-\stoptypescript
-
-\starttypescript [sans] [iwona-cond] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-CondRegular]
- \definefontsynonym [SansItalic] [Iwona-CondItalic]
- \definefontsynonym [SansBold] [Iwona-CondBold]
- \definefontsynonym [SansBoldItalic] [Iwona-CondBoldItalic]
- \definefontsynonym [SansCaps] [Iwona-CapsCondRegular]
- \definefontsynonym [SansItalicCaps] [Iwona-CapsCondItalic]
- \definefontsynonym [SansBoldCaps] [Iwona-CapsCondBold]
- \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsCondBoldItalic]
-\stoptypescript
-
-\starttypescript [sans] [iwona-cond-caps,iwona-caps-cond] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-CapsCondRegular]
- \definefontsynonym [SansItalic] [Iwona-CapsCondItalic]
- \definefontsynonym [SansBold] [Iwona-CapsCondBold]
- \definefontsynonym [SansBoldItalic] [Iwona-CapsCondBoldItalic]
-\stoptypescript
-
-\starttypescript [sans] [iwona-medium-cond] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-CondMedium-Regular]
- \definefontsynonym [SansItalic] [Iwona-CondMedium-Italic]
- \definefontsynonym [SansBold] [Iwona-CondHeavy-Regular]
- \definefontsynonym [SansBoldItalic] [Iwona-CondHeavy-Italic]
- \definefontsynonym [SansCaps] [Iwona-CapsCondHeavy-Regular]
- \definefontsynonym [SansItalicCaps] [Iwona-CapsCondMedium-Italic]
- \definefontsynonym [SansBoldCaps] [Iwona-CapsCondHeavy-Regular]
- \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsCondHeavy-Italic]
-\stoptypescript
-
-\starttypescript [sans] [iwona-medium-cond-caps,iwona-medium-caps-cond] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-CapsCondHeavy-Regular]
- \definefontsynonym [SansItalic] [Iwona-CapsCondMedium-Italic]
- \definefontsynonym [SansBold] [Iwona-CapsCondHeavy-Regular]
- \definefontsynonym [SansBoldItalic] [Iwona-CapsCondHeavy-Italic]
-\stoptypescript
-
-\starttypescript [math] [iwona-light] [name]
- \definefontsynonym [MathRoman] [Iwona-Math-Letters-Light-Regular]
- \definefontsynonym [MathItalic] [Iwona-Math-Letters-Light-Italic]
- \definefontsynonym [MathSymbol] [Iwona-Math-Symbols-Light]
- \definefontsynonym [MathExtension] [Iwona-Math-Extension-Light]
-\stoptypescript
-
-\starttypescript [math] [iwona] [name]
- \definefontsynonym [MathRoman] [Iwona-Math-Letters-Regular]
- \definefontsynonym [MathItalic] [Iwona-Math-Letters-Italic]
- \definefontsynonym [MathSymbol] [Iwona-Math-Symbols-Regular]
- \definefontsynonym [MathExtension] [Iwona-Math-Extension-Regular]
-\stoptypescript
-
-\starttypescript [math] [iwona-medium] [name]
- \definefontsynonym [MathRoman] [Iwona-Math-Letters-Medium-Regular]
- \definefontsynonym [MathItalic] [Iwona-Math-Letters-Medium-Italic]
- \definefontsynonym [MathSymbol] [Iwona-Math-Symbols-Medium]
- \definefontsynonym [MathExtension] [Iwona-Math-Extension-Medium]
-\stoptypescript
-
-\starttypescript [math] [iwona-heavy] [name]
- \definefontsynonym [MathRoman] [Iwona-Math-Letters-Heavy-Regular]
- \definefontsynonym [MathItalic] [Iwona-Math-Letters-Heavy-Italic]
- \definefontsynonym [MathSymbol] [Iwona-Math-Symbols-Heavy]
- \definefontsynonym [MathExtension] [Iwona-Math-Extension-Heavy]
-\stoptypescript
-
-% Kurier
-
-\starttypescript [sans] [kurier-light] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Kurier-Light-Regular]
- \definefontsynonym [SansItalic] [Kurier-Light-Italic]
- \definefontsynonym [SansBold] [Kurier-Medium-Regular]
- \definefontsynonym [SansBoldItalic] [Kurier-Medium-Italic]
-\stoptypescript
-
-\starttypescript [sans] [kurier] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Kurier-Regular]
- \definefontsynonym [SansItalic] [Kurier-Italic]
- \definefontsynonym [SansBold] [Kurier-Bold]
- \definefontsynonym [SansBoldItalic] [Kurier-BoldItalic]
-\stoptypescript
-
-\starttypescript [sans] [kurier-medium] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Kurier-Medium-Regular]
- \definefontsynonym [SansItalic] [Kurier-Medium-Italic]
- \definefontsynonym [SansBold] [Kurier-Heavy-Regular]
- \definefontsynonym [SansBoldItalic] [Kurier-Heavy-Italic]
-\stoptypescript
-
-\starttypescript [math] [kurier-light] [name]
- \definefontsynonym [MathRoman] [Kurier-Math-Letters-Light-Regular]
- \definefontsynonym [MathItalic] [Kurier-Math-Letters-Light-Italic]
- \definefontsynonym [MathSymbol] [Kurier-Math-Symbols-Light]
- \definefontsynonym [MathExtension] [Kurier-Math-Extension-Light]
-\stoptypescript
-
-\starttypescript [math] [kurier] [name]
- \definefontsynonym [MathRoman] [Kurier-Math-Letters-Regular]
- \definefontsynonym [MathItalic] [Kurier-Math-Letters-Italic]
- \definefontsynonym [MathSymbol] [Kurier-Math-Symbols-Regular]
- \definefontsynonym [MathExtension] [Kurier-Math-Extension-Regular]
-\stoptypescript
-
-\starttypescript [math] [kurier-medium] [name]
- \definefontsynonym [MathRoman] [Kurier-Math-Letters-Medium-Regular]
- \definefontsynonym [MathItalic] [Kurier-Math-Letters-Medium-Italic]
- \definefontsynonym [MathSymbol] [Kurier-Math-Symbols-Medium]
- \definefontsynonym [MathExtension] [Kurier-Math-Extension-Medium]
-\stoptypescript
-
-% Bookman :
-
-\starttypescript [serif] [bookman] [name]
- \definefontsynonym [Serif] [Bookman-Light]
- \definefontsynonym [SerifItalic] [Bookman-LightItalic]
- \definefontsynonym [SerifBold] [Bookman-DemiBold]
- \definefontsynonym [SerifBoldItalic] [Bookman-DemiBoldItalic]
- \definefontsynonym [SerifSlanted] [Bookman-LightSlanted]
- \definefontsynonym [SerifBoldSlanted] [Bookman-DemiBoldSlanted]
- \definefontsynonym [SerifCaps] [Bookman-Light-Caps]
-\stoptypescript
-
-% Chancery : Zapf
-
-\starttypescript [calligraphy] [chancery] [name]
- \definefontsynonym [Calligraphy] [Chancery]
-\stoptypescript
-
-% Schoolbook :
-
-\starttypescript [serif] [schoolbook] [name]
- \definefontsynonym [Serif] [Schoolbook-Roman]
- \definefontsynonym [SerifItalic] [Schoolbook-Italic]
- \definefontsynonym [SerifBold] [Schoolbook-Bold]
- \definefontsynonym [SerifBoldItalic] [Schoolbook-BoldItalic]
- \definefontsynonym [SerifSlanted] [Schoolbook-RomanSlanted]
- \definefontsynonym [SerifBoldSlanted] [Schoolbook-BoldSlanted]
- \definefontsynonym [SerifCaps] [Schoolbook-Roman-Caps]
-\stoptypescript
-
-% Utopia : Adobe
-
-\starttypescript [serif] [utopia] [name]
- \definefontsynonym [Serif] [Utopia-Regular]
- \definefontsynonym [SerifItalic] [Utopia-Italic]
- \definefontsynonym [SerifBold] [Utopia-Bold]
- \definefontsynonym [SerifBoldItalic] [Utopia-BoldItalic]
- \definefontsynonym [SerifSlanted] [Utopia-Slanted]
- \definefontsynonym [SerifBoldSlanted] [Utopia-BoldSlanted]
- \definefontsynonym [SerifCaps] [Utopia-Regular-Caps]
-\stoptypescript
-
-% Fourier : Michael Bovani
-
-\starttypescript [serif] [fourier] [name]
- \definefontsynonym [Serif] [Fourier-Regular]
- \definefontsynonym [SerifSlanted] [Fourier-Slanted]
- \definefontsynonym [SerifItalic] [Fourier-Italic]
- \definefontsynonym [SerifCaps] [Fourier-RegularCaps]
- \definefontsynonym [SerifBold] [Fourier-Bold]
- \definefontsynonym [SerifBoldSlanted] [Fourier-BoldSlanted]
- \definefontsynonym [SerifBoldItalic] [Fourier-BoldItalic]
- \definefontsynonym [SerifBoldCaps] [Fourier-BoldCaps]
-
- \definefontsynonym [Serif-Expert] [Fourier-Regular-Expert]
- \definefontsynonym [SerifSlanted-Expert] [Fourier-Slanted-Expert]
- \definefontsynonym [SerifItalic-Expert] [Fourier-Italic-Expert]
- \definefontsynonym [SerifCaps-Expert] [Fourier-RegularCaps-Expert]
- \definefontsynonym [SerifSemiBold-Expert] [Fourier-Semi-Expert]
- \definefontsynonym [SerifSemiSlanted-Expert] [Fourier-SemiSlanted-Expert]
- \definefontsynonym [SerifSemiItalic-Expert] [Fourier-SemiItalic-Expert]
- \definefontsynonym [SerifSemiCaps-Expert] [Fourier-SemiCaps-Expert]
- \definefontsynonym [SerifBold-Expert] [Fourier-Bold-Expert]
- \definefontsynonym [SerifBoldSlanted-Expert] [Fourier-BoldSlanted-Expert]
- \definefontsynonym [SerifBoldItalic-Expert] [Fourier-BoldItalic-Expert]
- \definefontsynonym [SerifBlack-Expert] [Fourier-Black-Expert]
-
- \definefontsynonym [Serif-OldStyle] [Fourier-Regular-OldStyle]
- \definefontsynonym [SerifSlanted-OldStyle] [Fourier-Slanted-OldStyle]
- \definefontsynonym [SerifItalic-OldStyle] [Fourier-Italic-OldStyle]
- \definefontsynonym [SerifCaps-OldStyle] [Fourier-RegularCaps-OldStyle]
- \definefontsynonym [SerifSemiBold-OldStyle] [Fourier-Semi-OldStyle]
- \definefontsynonym [SerifSemiSlanted-OldStyle] [Fourier-SemiSlanted-OldStyle]
- \definefontsynonym [SerifSemiItalic-OldStyle] [Fourier-SemiItalic-OldStyle]
- \definefontsynonym [SerifSemiCaps-OldStyle] [Fourier-SemiCaps-OldStyle]
- \definefontsynonym [SerifBold-OldStyle] [Fourier-Bold-OldStyle]
- \definefontsynonym [SerifBoldSlanted-OldStyle] [Fourier-BoldSlanted-OldStyle]
- \definefontsynonym [SerifBoldItalic-OldStyle] [Fourier-BoldItalic-OldStyle]
- \definefontsynonym [SerifBlack-OldStyle] [Fourier-Black-OldStyle]
- \definefontsynonym [SerifBlackSlanted-OldStyle] [Fourier-BlackSlanted-OldStyle]
-\stoptypescript
-
-\starttypescript [math] [fourier] [name]
- \definefontsynonym [MathRoman] [Fourier-Math-Letters]
- \definefontsynonym [MathItalic] [Fourier-Math-Letters-Italic]
- \definefontsynonym [MathSymbol] [Fourier-Math-Symbols]
- \definefontsynonym [MathExtension] [Fourier-Math-Extension]
-\stoptypescript
-
-\starttypescript [math] [fourier] [name] % todo
- \definefontsynonym [OldStyle] [Serif-OldStyle] % strange, no oldstyles
- \definefontsynonym [Fraktur] [eufm10]
- \definefontsynonym [Blackboard] [msbm10]
- \definefontsynonym [Gothic] [eufm10]
- \definefontsynonym [Calligraphic] [eusm10]
-\stoptypescript
-
-% Charter :
-
-\starttypescript [serif] [charter] [name]
- \definefontsynonym [Serif] [Charter-Roman]
- \definefontsynonym [SerifItalic] [Charter-Italic]
- \definefontsynonym [SerifBold] [Charter-Bold]
- \definefontsynonym [SerifBoldItalic] [Charter-BoldItalic]
- \definefontsynonym [SerifSlanted] [Charter-Slanted]
- \definefontsynonym [SerifBoldSlanted] [Charter-BoldSlanted]
- \definefontsynonym [SerifCaps] [Charter-Roman-Caps]
-\stoptypescript
-
-% Times :
-
-\starttypescript [serif] [times] [name]
- \definefontsynonym [Serif] [Times-Roman]
- \definefontsynonym [SerifBold] [Times-Bold]
- \definefontsynonym [SerifItalic] [Times-Italic]
- \definefontsynonym [SerifSlanted] [Times-Italic]
- \definefontsynonym [SerifBoldItalic] [Times-BoldItalic]
- \definefontsynonym [SerifBoldSlanted] [Times-BoldItalic]
- \definefontsynonym [SerifCaps] [Times-Caps]
-\stoptypescript
-
-\starttypescript [math] [times] [name]
- \definefontsynonym [MathRoman] [Times-Roman-Upright]
- \definefontsynonym [MathExtension] [Times-Math-Extension]
- \definefontsynonym [MathItalic] [Times-Math-Italic]
- \definefontsynonym [MathSymbol] [Times-Math-Symbols]
- \definefontsynonym [MathAlpha] [Times-Math-SymbolsA]
- \definefontsynonym [MathBeta] [Times-Math-SymbolsB]
-\stoptypescript
-
-\starttypescript [math] [times] [name]
- \definefontsynonym [OldStyle] [MathItalic]
- \definefontsynonym [Fraktur] [eufm10]
- \definefontsynonym [Blackboard] [MathBeta]
- \definefontsynonym [Gothic] [eufm10]
- \definefontsynonym [Calligraphic] [eusm10]
-\stoptypescript
-
-% Helvetica :
-
-\starttypescript [sans] [helvetica] [name]
- \definefontsynonym [Sans] [Helvetica]
- \definefontsynonym [SansBold] [Helvetica-Bold]
- \definefontsynonym [SansItalic] [Helvetica-Oblique]
- \definefontsynonym [SansSlanted] [Helvetica-Oblique]
- \definefontsynonym [SansBoldItalic] [Helvetica-BoldOblique]
- \definefontsynonym [SansBoldSlanted] [Helvetica-BoldOblique]
- \definefontsynonym [SansCaps] [Helvetica-Caps]
-\stoptypescript
-
-\starttypescript [math] [helvetica] [name]
- \definefontsynonym [MathRoman] [Helvetica-MathRoman]
- \definefontsynonym [MathExtension] [Helvetica-MathExtendedSymbols]
- \definefontsynonym [MathItalic] [Helvetica-MathItalics]
- \definefontsynonym [MathSymbol] [Helvetica-MathSymbols]
-\stoptypescript
-
-% Courier :
-
-\starttypescript [mono] [courier] [name]
- \definefontsynonym [Mono] [Courier]
- \definefontsynonym [MonoBold] [Courier-Bold]
- \definefontsynonym [MonoItalic] [Courier-Oblique]
- \definefontsynonym [MonoSlanted] [Courier-Oblique]
- \definefontsynonym [MonoBoldItalic] [Courier-BoldOblique]
- \definefontsynonym [MonoBoldSlanted] [Courier-BoldOblique]
- \definefontsynonym [MonoCaps] [Courier-Caps]
-\stoptypescript
-
-% Palatino : Hermann Zapf / URW
-
-\starttypescript [serif] [palatino] [name]
- \definefontsynonym [Serif] [Palatino]
- \definefontsynonym [SerifBold] [Palatino-Bold]
- \definefontsynonym [SerifItalic] [Palatino-Italic]
- \definefontsynonym [SerifSlanted] [Palatino-Slanted]
- \definefontsynonym [SerifBoldItalic] [Palatino-BoldItalic]
- \definefontsynonym [SerifBoldSlanted] [Palatino-BoldSlanted]
- \definefontsynonym [SerifCaps] [Palatino-Caps]
-\stoptypescript
-
-\starttypescript [math] [palatino] [name]
- \definefontsynonym [MathRoman] [Palatino-Roman-Upright]
- \definefontsynonym [MathExtension] [Palatino-Math-Extension]
- \definefontsynonym [MathItalic] [Palatino-Math-Italic]
- \definefontsynonym [MathSymbol] [Palatino-Math-Symbols]
- \definefontsynonym [MathAlpha] [Palatino-Math-SymbolsA]
- \definefontsynonym [MathBeta] [Palatino-Math-SymbolsB]
-\stoptypescript
-
-\starttypescript [math] [palatino] [name]
- \definefontsynonym [OldStyle] [MathItalic]
- \definefontsynonym [Fraktur] [eufm10]
- \definefontsynonym [Blackboard] [MathBeta]
- \definefontsynonym [Gothic] [eufm10]
- \definefontsynonym [Calligraphic] [eusm10]
-\stoptypescript
-
-% bonus definitions / will disappear
-
-\starttypescript [serif] [palatino] [name]
- \definefontsynonym [SerifRegular] [Serif]
- \definefontsynonym [SerifRegularOsF] [TeXPalladioL-SC]
- \definefontsynonym [SerifItalicOsF] [TeXPalladioL-ItalicOsF]
- \definefontsynonym [SerifBoldOsF] [TeXPalladioL-BoldOsF]
- \definefontsynonym [SerifBoldItalicOsF][TeXPalladioL-BoldItalicOsF]
- \definefontsynonym [SerifCapsOsF] [TeXPalladioL-SC]
-\stoptypescript
-
-\stoptypescriptcollection
+\loadmarkfile{type-tmf}
\endinput
diff --git a/Master/texmf-dist/tex/context/base/type-win.tex b/Master/texmf-dist/tex/context/base/type-win.tex
new file mode 100644
index 00000000000..bae89471fc3
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/type-win.tex
@@ -0,0 +1,120 @@
+%D \module
+%D [ file=type-win,
+%D version=2009.03.10,
+%D title=\CONTEXT\ Typescript Macros,
+%D subtitle=MS Windows Definitions,
+%D author=Vyatcheslav Yatskovsky,
+%D date=\currentdate,
+%D copyright=Vyatcheslav Yatskovsky]
+%C
+%C This module is part of the \CONTEXT\ macro||package. See
+%C mreadme.pdf for details.
+
+\starttypescriptcollection[windows]
+
+\starttypescript [serif] [georgia,palatino,times]
+ \setups[font:fallback:serif]
+ \definefontsynonym [Serif] [\typescripttwo-Regular] [features=default]
+ \definefontsynonym [SerifBold] [\typescripttwo-Bold] [features=default]
+ \definefontsynonym [SerifItalic] [\typescripttwo-Italic] [features=default]
+ \definefontsynonym [SerifBoldItalic] [\typescripttwo-BoldItalic] [features=default]
+\stoptypescript
+
+\starttypescript [serif] [sylfaen]
+ \setups[font:fallback:serif]
+ \definefontsynonym [Serif] [\typescripttwo-Regular] [features=default]
+\stoptypescript
+
+\starttypescript [sans] [arial,trebuchet,verdana]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [\typescripttwo-Regular] [features=default]
+ \definefontsynonym [SansBold] [\typescripttwo-Bold] [features=default]
+ \definefontsynonym [SansItalic] [\typescripttwo-Italic] [features=default]
+ \definefontsynonym [SansBoldItalic] [\typescripttwo-BoldItalic] [features=default]
+\stoptypescript
+
+\starttypescript [sans] [arialblack,impact,lucidasans,microsans]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [\typescripttwo-Regular] [features=default]
+\stoptypescript
+
+\starttypescript [sans] [comic,tahoma]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [\typescripttwo-Regular] [features=default]
+ \definefontsynonym [SansBold] [\typescripttwo-Bold] [features=default]
+\stoptypescript
+
+\starttypescript [sans] [franklin]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [\typescripttwo-Regular] [features=default]
+ \definefontsynonym [SansItalic] [\typescripttwo-Italic] [features=default]
+\stoptypescript
+
+\starttypescript [mono] [courier]
+ \setups[font:fallback:mono]
+ \definefontsynonym [Mono] [\typescripttwo-Regular] [features=default]
+ \definefontsynonym [MonoBold] [\typescripttwo-Bold] [features=default]
+ \definefontsynonym [MonoItalic] [\typescripttwo-Italic] [features=default]
+ \definefontsynonym [MonoBoldItalic] [\typescripttwo-BoldItalic] [features=default]
+\stoptypescript
+
+\starttypescript [mono] [lucidaconsole]
+ \setups[font:fallback:mono]
+ \definefontsynonym [Mono] [\typescripttwo-Regular] [features=default]
+\stoptypescript
+
+
+\definetypescriptprefix [f:arial] [Arial]
+\definetypescriptprefix [f:arialblack] [Arial Black]
+\definetypescriptprefix [f:comic] [Comic Sans MS]
+\definetypescriptprefix [f:courier] [Courier New]
+\definetypescriptprefix [f:franklin] [Franklin Gothic Medium]
+\definetypescriptprefix [f:georgia] [Georgia]
+\definetypescriptprefix [f:impact] [Impact]
+\definetypescriptprefix [f:lucidaconsole] [Lucida Console]
+\definetypescriptprefix [f:lucidasans] [Lucida Sans Unicode]
+\definetypescriptprefix [f:microsans] [Microsoft Sans Serif]
+\definetypescriptprefix [f:palatino] [Palatino Linotype]
+\definetypescriptprefix [f:sylfaen] [Sylfaen]
+\definetypescriptprefix [f:tahoma] [Tahoma]
+\definetypescriptprefix [f:times] [Times New Roman]
+\definetypescriptprefix [f:trebuchet] [Trebuchet MS]
+\definetypescriptprefix [f:verdana] [Verdana]
+
+\starttypescript [serif] [georgia,palatino,sylfaen,times]
+ \definefontsynonym [\typescripttwo-Regular] [name:\typescriptprefix{f:\typescripttwo}] [features=default]
+ \definefontsynonym [\typescripttwo-Bold] [name:\typescriptprefix{f:\typescripttwo} Bold] [features=default]
+ \definefontsynonym [\typescripttwo-Italic] [name:\typescriptprefix{f:\typescripttwo} Italic] [features=default]
+ \definefontsynonym [\typescripttwo-BoldItalic] [name:\typescriptprefix{f:\typescripttwo} Bold Italic] [features=default]
+\stoptypescript
+
+\starttypescript [sans] [arial,arialblack,comic,franklin,impact,lucidasans,microsans,tahoma,trebuchet,verdana]
+ \definefontsynonym [\typescripttwo-Regular] [name:\typescriptprefix{f:\typescripttwo}] [features=default]
+ \definefontsynonym [\typescripttwo-Bold] [name:\typescriptprefix{f:\typescripttwo} Bold] [features=default]
+ \definefontsynonym [\typescripttwo-Italic] [name:\typescriptprefix{f:\typescripttwo} Italic] [features=default]
+ \definefontsynonym [\typescripttwo-BoldItalic] [name:\typescriptprefix{f:\typescripttwo} Bold Italic] [features=default]
+\stoptypescript
+
+\starttypescript [mono] [courier,lucidaconsole]
+ \definefontsynonym [\typescripttwo-Regular] [name:\typescriptprefix{f:\typescripttwo}] [features=default]
+ \definefontsynonym [\typescripttwo-Bold] [name:\typescriptprefix{f:\typescripttwo} Bold] [features=default]
+ \definefontsynonym [\typescripttwo-Italic] [name:\typescriptprefix{f:\typescripttwo} Italic] [features=default]
+ \definefontsynonym [\typescripttwo-BoldItalic] [name:\typescriptprefix{f:\typescripttwo} Bold Italic] [features=default]
+\stoptypescript
+
+
+\starttypescript [georgia,palatino,sylfaen,times]
+ \definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default]
+\stoptypescript
+
+\starttypescript [arial,arialblack,comic,franklin,impact,lucidasans,microsans,tahoma,trebuchet,verdana]
+ \definetypeface [\typescriptone] [ss] [sans] [\typescriptone] [default]
+\stoptypescript
+
+\starttypescript [courier,lucidaconsole]
+ \definetypeface [\typescriptone] [tt] [mono] [\typescriptone] [default]
+\stoptypescript
+
+\stoptypescriptcollection
+
+\endinput
diff --git a/Master/texmf-dist/tex/context/base/type-xtx.tex b/Master/texmf-dist/tex/context/base/type-xtx.tex
index 32ff858d183..450beb6f2ec 100644
--- a/Master/texmf-dist/tex/context/base/type-xtx.tex
+++ b/Master/texmf-dist/tex/context/base/type-xtx.tex
@@ -36,7 +36,7 @@
%D
%D \starttyping
%D \definetypeface[basic][rm][Xserif][Baskerville]
-%D \definetypeface[basic][ss][Xsans] [Optima Regular][default][features=default,rscale=.87]
+%D \definetypeface[basic][ss][Xsans] [Optima Regular][default][features=default,rscale=0.87]
%D \definetypeface[basic][tt][Xmono] [Courier] [default]
%D \stoptyping
%D
diff --git a/Master/texmf-dist/tex/context/base/typo-brk.lua b/Master/texmf-dist/tex/context/base/typo-brk.lua
new file mode 100644
index 00000000000..33837ab7ad8
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/typo-brk.lua
@@ -0,0 +1,187 @@
+if not modules then modules = { } end modules ['typo-brk'] = {
+ version = 1.001,
+ comment = "companion to typo-brk.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- this code dates from the beginning and is kind of experimental; it
+-- will be optimized and improved soon
+
+local next, type = next, type
+local format = string.format
+
+local has_attribute = node.has_attribute
+local unset_attribute = node.unset_attribute
+local set_attribute = node.set_attribute
+local copy_node = node.copy
+local insert_node_before = node.insert_before
+local insert_node_after = node.insert_after
+local make_penalty_node = nodes.penalty
+local make_glue_node = nodes.glue
+local make_disc_node = nodes.disc
+
+local glyph = node.id("glyph")
+local kern = node.id("kern")
+
+breakpoints = breakpoints or { }
+breakpoints.mapping = breakpoints.mapping or { }
+breakpoints.methods = breakpoints.methods or { }
+breakpoints.enabled = false
+breakpoints.attribute = attributes.private("breakpoint")
+
+storage.register("breakpoints/mapping", breakpoints.mapping, "breakpoints.mapping")
+
+local mapping = breakpoints.mapping
+
+function breakpoints.setreplacement(id,char,kind,before,after,language)
+ local map = mapping[id]
+ if not map then
+ map = { }
+ mapping[id] = map
+ end
+ local cmap = map[char]
+ if not cmap then
+ cmap = { }
+ map[char] = cmap
+ end
+ cmap[language or ""] = { kind or 1, before or 1, after or 1 }
+end
+
+breakpoints.methods[1] = function(head,start)
+ if start.prev and start.next then
+ insert_node_before(head,start,make_penalty_node(10000))
+ insert_node_before(head,start,make_glue_node(0))
+ insert_node_after(head,start,make_glue_node(0))
+ insert_node_after(head,start,make_penalty_node(0))
+ end
+ return head, start
+end
+breakpoints.methods[2] = function(head,start) -- ( => (-
+ if start.prev and start.next then
+ local tmp = start
+ start = make_disc_node()
+ start.prev, start.next = tmp.prev, tmp.next
+ tmp.prev.next, tmp.next.prev = start, start
+ tmp.prev, tmp.next = nil, nil
+ start.replace = tmp
+ local tmp, hyphen = copy_node(tmp), copy_node(tmp)
+ hyphen.char = languages.prehyphenchar(tmp.lang)
+ tmp.next, hyphen.prev = hyphen, tmp
+ start.post = tmp
+ insert_node_before(head,start,make_penalty_node(10000))
+ insert_node_before(head,start,make_glue_node(0))
+ insert_node_after(head,start,make_glue_node(0))
+ insert_node_after(head,start,make_penalty_node(10000))
+ end
+ return head, start
+end
+breakpoints.methods[3] = function(head,start) -- ) => -)
+ if start.prev and start.next then
+ local tmp = start
+ start = make_disc_node()
+ start.prev, start.next = tmp.prev, tmp.next
+ tmp.prev.next, tmp.next.prev = start, start
+ tmp.prev, tmp.next = nil, nil
+ start.replace = tmp
+ local tmp, hyphen = copy_node(tmp), copy_node(tmp)
+ hyphen.char = languages.prehyphenchar(tmp.lang)
+ tmp.prev, hyphen.next = hyphen, tmp
+ start.pre = hyphen
+ insert_node_before(head,start,make_penalty_node(10000))
+ insert_node_before(head,start,make_glue_node(0))
+ insert_node_after(head,start,make_glue_node(0))
+ insert_node_after(head,start,make_penalty_node(10000))
+ end
+ return head, start
+end
+breakpoints.methods[4] = function(head,start) -- - => - - -
+ if start.prev and start.next then
+ local tmp = start
+ start = make_disc_node()
+ start.prev, start.next = tmp.prev, tmp.next
+ tmp.prev.next, tmp.next.prev = start, start
+ tmp.prev, tmp.next = nil, nil
+ -- maybe prehyphenchar etc
+ start.pre = copy_node(tmp)
+ start.post = copy_node(tmp)
+ start.replace = tmp
+ insert_node_before(head,start,make_penalty_node(10000))
+ insert_node_before(head,start,make_glue_node(0))
+ insert_node_after(head,start,make_glue_node(0))
+ insert_node_after(head,start,make_penalty_node(10000))
+ end
+ return head, start
+end
+
+function breakpoints.process(namespace,attribute,head)
+ local done, numbers = false, languages.numbers
+ local start, n = head, 0
+ while start do
+ local id = start.id
+ if id == glyph then
+ local attr = has_attribute(start,attribute)
+ if attr and attr > 0 then
+ unset_attribute(start,attribute) -- maybe test for subtype > 256 (faster)
+ -- look ahead and back n chars
+ local map = mapping[attr]
+ if map then
+ local cmap = map[start.char]
+ if cmap then
+ local smap = cmap[numbers[start.lang]] or cmap[""]
+ if smap then
+ if n >= smap[2] then
+ local m = smap[3]
+ local next = start.next
+ while next do -- gamble on same attribute
+ local id = next.id
+ if id == glyph then -- gamble on same attribute
+ if map[next.char] then
+ break
+ elseif m == 1 then
+ local method = breakpoints.methods[smap[1]]
+ if method then
+ head, start = method(head,start)
+ done = true
+ end
+ break
+ else
+ m = m - 1
+ next = next.next
+ end
+ elseif id == kern and next.subtype == 0 then
+ next = next.next
+ -- ignore intercharacter kerning, will go way
+ else
+ -- we can do clever and set n and jump ahead but ... not now
+ break
+ end
+ end
+ end
+ n = 0
+ else
+ n = n + 1
+ end
+ else
+ n = n + 1
+ end
+ else
+ n = 0
+ end
+ end
+ elseif id == kern and start.subtype == 0 then
+ -- ignore intercharacter kerning, will go way
+ else
+ n = 0
+ end
+ start = start.next
+ end
+ return head, done
+end
+
+chars.handle_breakpoints = nodes.install_attribute_handler {
+ name = "breakpoint",
+ namespace = breakpoints,
+ processor = breakpoints.process,
+}
diff --git a/Master/texmf-dist/tex/context/base/typo-brk.mkiv b/Master/texmf-dist/tex/context/base/typo-brk.mkiv
new file mode 100644
index 00000000000..90561fc9e09
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/typo-brk.mkiv
@@ -0,0 +1,77 @@
+%D \module
+%D [ file=typo-brk,
+%D version=2009.03.27, % code moved from core-spa.mkiv
+%D title=\CONTEXT\ Typesetting Macros,
+%D subtitle=Breakpoints,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=\PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Typesetting Macros / Breakpoints}
+
+\unprotect
+
+\registerctxluafile{typo-brk}{1.001}
+
+\definesystemattribute[breakpoint]
+
+% compound stuff (under construction)
+
+\newbox\breakpointbox
+
+\definesystemvariable {bp} % BreakPoint
+
+\exhyphenchar=\minusone % we use a different order then base tex, so we really need this
+
+\newcount \maxbreakpointsid
+
+\def\definebreakpoints
+ {\dosingleargument\dodefinebreakpoints}
+
+\def\dodefinebreakpoints[#1]%
+ {\ifcsname\??bp:#1\endcsname \else
+ \global\advance\maxbreakpointsid\plusone
+ \setxvalue{\??bp:#1}{\the\maxbreakpointsid}%
+ \fi}
+
+\def\installbreakpoint
+ {\dotripleempty\doinstallbreakpoint}
+
+% hm, we cannot prebuild lists, font dependent
+
+\def\doinstallbreakpoint[#1][#2][#3]%
+ {\ifcsname\??bp:#1\endcsname
+ \begingroup
+ \getparameters[\??bp][\c!type=1,\c!nleft=3,\c!nright=3,\s!language=,#3]%
+ \ctxlua{breakpoints.setreplacement(\csname\??bp:#1\endcsname,#2,\@@bptype,\@@bpnleft,\@@bpnright,"\@@bplanguage")}%
+ \endgroup
+ \fi}
+
+\def\setbreakpoints
+ {\ctxlua{breakpoints.enabled=true}%
+ \gdef\setbreakpoints[##1]{\dosetattribute{breakpoint}{\csname\??bp:##1\endcsname}}%
+ \setbreakpoints}
+
+\letvalue{\??bp:\s!reset}\attributeunsetvalue
+
+\definebreakpoints[compound]
+
+\installbreakpoint [compound] [\number`+] [\c!left=3,\c!right=3,\c!type=1]
+\installbreakpoint [compound] [\number`-] [\c!left=3,\c!right=3,\c!type=1]
+\installbreakpoint [compound] [\number`/] [\c!left=3,\c!right=3,\c!type=1]
+\installbreakpoint [compound] [\number`(] [\c!left=3,\c!right=3,\c!type=2]
+\installbreakpoint [compound] [\number`)] [\c!left=3,\c!right=3,\c!type=3]
+
+% \mainlanguage[czech]
+% \installbreakpoint [compound] [\number`-] [language=cs,left=3,right=3,type=4]
+% \setbreakpoints[compound]
+% \start \hsize 1mm test-test \par \stop
+
+% \setbreakpoints[compound]
+
+\protect \endinput
+
diff --git a/Master/texmf-dist/tex/context/base/typo-cap.lua b/Master/texmf-dist/tex/context/base/typo-cap.lua
new file mode 100644
index 00000000000..c232ac72851
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/typo-cap.lua
@@ -0,0 +1,204 @@
+if not modules then modules = { } end modules ['typo-cap'] = {
+ version = 1.001,
+ comment = "companion to typo-cap.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local next, type = next, type
+local format, insert = string.format, table.insert
+
+local trace_casing = false trackers.register("nodes.casing", function(v) trace_casing = v end)
+
+local has_attribute = node.has_attribute
+local unset_attribute = node.unset_attribute
+local set_attribute = node.set_attribute
+local traverse_id = node.traverse_id
+
+local glyph = node.id("glyph")
+local kern = node.id("kern")
+
+local fontdata = fonts.ids
+local chardata = characters.data
+
+cases = cases or { }
+cases.enabled = false
+cases.actions = { }
+cases.attribute = attributes.private("case")
+
+local actions = cases.actions
+local lastfont = nil
+
+-- we use char0 as placeholder for the larger font
+
+local function helper(start, code, codes, special, attribute, once)
+ local char = start.char
+ local dc = chardata[char]
+ if dc then
+ local fnt = start.font
+ if special then
+ if start.char == 0 then
+ lastfont = fnt
+ local prev, next = start.prev, start.next
+ prev.next = next
+ if next then
+ next.prev = prev
+ end
+ return prev, true
+ elseif lastfont and start.prev.id ~= glyph then
+ fnt = lastfont
+ start.font = lastfont
+ end
+ end
+ local ifc = fontdata[fnt].characters
+ local ucs = dc[codes]
+ if ucs then
+ local ok = true
+ for i=1,#ucs do
+ ok = ok and ifc[ucs[i]]
+ end
+ if ok then
+ local prev, original = start, start
+ for i=1,#ucs do
+ local chr = ucs[i]
+ prev = start
+ if i == 1 then
+ start.char = chr
+ else
+ local g = copy_node(original)
+ g.char = chr
+ local next = start.next
+ g.prev = start
+ if next then
+ g.next = next
+ start.next = g
+ next.prev = g
+ end
+ start = g
+ end
+ end
+ if once then lastfont = nil end
+ return prev, true
+ end
+ if once then lastfont = nil end
+ return start, false
+ end
+ local uc = dc[code]
+ if uc and ifc[uc] then
+ start.char = uc
+ if once then lastfont = nil end
+ return start, true
+ end
+ end
+ if once then lastfont = nil end
+ return start, false
+end
+
+actions[1] = function(start,attribute)
+ lastfont = nil
+ return helper(start,'uccode','uccodes')
+end
+
+actions[2] = function(start,attribute)
+ lastfont = nil
+ return helper(start,'lccode','lccodes')
+end
+
+actions[3] = function(start,attribute)
+ lastfont = nil
+ local prev = start.prev
+ if prev and prev.id == kern and prev.subtype == 0 then
+ prev = prev.prev
+ end
+ if not prev or prev.id ~= glyph then
+ --- only the first character is treated
+ for n in traverse_id(glyph,start.next) do
+ if has_attribute(n,attribute) then
+ unset_attribute(n,attribute)
+ end
+ end
+ return helper(start,'uccode','uccodes')
+ else
+ return start, false
+ end
+end
+
+actions[4] = function(start,attribute)
+ lastfont = nil
+ local prev = start.prev
+ if prev and prev.id == kern and prev.subtype == 0 then
+ prev = prev.prev
+ end
+ if not prev or prev.id ~= glyph then
+ return helper(start,'uccode','uccodes')
+ else
+ return start, false
+ end
+end
+
+actions[5] = function(start,attribute) -- 3
+ return helper(start,'uccode','uccodes',true,attribute,true)
+end
+
+actions[6] = function(start,attribute) -- 4
+ return helper(start,'uccode','uccodes',true,attribute,false)
+end
+
+actions[8] = function(start)
+ lastfont = nil
+ local ch = start.char
+ local mr = math.random
+ local tfm = fontdata[start.font].characters
+ if chardata[ch].lccode then
+ while true do
+ local d = chardata[mr(1,0xFFFF)]
+ if d then
+ local uc = d.uccode
+ if uc and tfm[uc] then
+ start.char = uc
+ return start, true
+ end
+ end
+ end
+ elseif chardata[ch].uccode then
+ while true do
+ local d = chardata[mr(1,0xFFFF)]
+ if d then
+ local lc = d.lccode
+ if lc and tfm[lc] then
+ start.char = lc
+ return start, true
+ end
+ end
+ end
+ else
+ return start, false
+ end
+end
+
+-- node.traverse_id_attr
+
+function cases.process(namespace,attribute,head) -- not real fast but also not used on much data
+ lastfont = nil
+ local done = false
+ for start in traverse_id(glyph,head) do
+ local attr = has_attribute(start,attribute)
+ if attr and attr > 0 then
+ unset_attribute(start,attribute)
+ local action = actions[attr]
+ if action then
+ local _, ok = action(start,attribute)
+ done = done and ok
+ end
+ end
+ end
+ lastfont = nil
+ return head, done
+end
+
+chars.handle_casing = nodes.install_attribute_handler {
+ name = "case",
+ namespace = cases,
+ processor = cases.process,
+}
diff --git a/Master/texmf-dist/tex/context/base/typo-cap.mkiv b/Master/texmf-dist/tex/context/base/typo-cap.mkiv
new file mode 100644
index 00000000000..45a932200af
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/typo-cap.mkiv
@@ -0,0 +1,204 @@
+%D \module
+%D [ file=typo-cap,
+%D version=2009.03.27, % code moved from core-spa.mkiv
+%D title=\CONTEXT\ Typesetting Macros,
+%D subtitle=Mirroring,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=\PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Typesetting Macros / Caps}
+
+\unprotect
+
+\registerctxluafile{typo-cap}{1.001}
+
+\definesystemattribute[case]
+
+%D \macros
+%D {Word, Words, WORD, WORDS}
+%D
+%D This is probably not the right place to present the next set
+%D of macros.
+%D
+%D \starttyping
+%D \Word {far too many words}
+%D \Words{far too many words}
+%D \WORD {far too many words}
+%D \WORDS{far too many words}
+%D \stoptyping
+%D
+%D \typebuffer
+%D
+%D This calls result in:
+%D
+%D \startvoorbeeld
+%D \startlines
+%D \getbuffer
+%D \stoplines
+%D \stopvoorbeeld
+%D
+%D \showsetup{Word}
+%D \showsetup{Words}
+%D \showsetup{WORD}
+%D \showsetup{WORDS}
+
+% test \WORD{test TEST \TeX} test
+% test \word{test TEST \TeX} test
+% test \Word{test TEST \TeX} test
+
+\def\setcharactercasing
+ {\ctxlua{cases.enabled=true}%
+ \gdef\setcharactercasing[##1]{\dosetattribute{case}{\number##1}}%
+ \setcharactercasing}
+
+\unexpanded\def\WORD {\groupedcommand{\setcharactercasing[\plusone ]}{}}
+\unexpanded\def\word {\groupedcommand{\setcharactercasing[\plustwo ]}{}}
+\unexpanded\def\Word {\groupedcommand{\setcharactercasing[\plusthree]}{}}
+\unexpanded\def\Words{\groupedcommand{\setcharactercasing[\plusfour ]}{}}
+
+\let\WORDS\WORD
+\let\words\word
+
+%D \macros
+%D {kap,KAP,Kap,Kaps,nokap,userealcaps,usepseudocaps}
+%D
+%D We already introduced \type{\cap} as way to capitalize
+%D words. This command comes in several versions:
+%D
+%D \startbuffer
+%D \cap {let's put on a \cap{cap}}
+%D \cap {let's put on a \nocap{cap}}
+%D \CAP {let's put on a \\{cap}}
+%D \Cap {let's put on a \\{cap}}
+%D \Caps{let's put on a cap}
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D Note the use of \type{\nocap}, \type{\\} and the nested
+%D \type{\cap}.
+%D
+%D \startvoorbeeld
+%D \startlines
+%D \getbuffer
+%D \stoplines
+%D \stopvoorbeeld
+%D
+%D These macros show te main reason why we introduced the
+%D smaller \type{\tx} and \type{\txx}.
+%D
+%D \starttyping
+%D \cap\romannumerals{1995}
+%D \stoptyping
+%D
+%D This at first sight unusual capitilization is completely
+%D legal.
+%D
+%D \showsetup{smallcapped}
+%D \showsetup{notsmallcapped}
+%D \showsetup{CAPPED}
+%D \showsetup{SmallCapped}
+%D \showsetup{SmallCaps}
+%D
+%D The difference between pseudo and real caps is demonstrated
+%D below:
+%D
+%D \startbuffer
+%D \usepseudocaps \cap{Hans Hagen}
+%D \userealcaps \cap{Hans Hagen}
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D \getbuffer
+%D
+%D The \type {\bgroup} trickery below is needed because of
+%D \type {\groupedcommand}.
+
+\let\disablepseudocaps\relax % maybe used elsewhere
+
+\newconditional\pseudocapsenabled
+
+\def\usepseudocaps{\settrue \pseudocapsenabled}
+\def\userealcaps {\setfalse\pseudocapsenabled}
+
+\usepseudocaps
+
+% we use char0 as placeholder for the larger font
+
+\unexpanded\def\pseudosmallcapped{\groupedcommand{\setcharactercasing[\plusone ]\char\zerocount\tx}{}} % all upper
+\unexpanded\def\pseudoSmallcapped{\groupedcommand{\setcharactercasing[\plusfive]\char\zerocount\tx}{}} % one upper + font
+\unexpanded\def\pseudoSmallCapped{\groupedcommand{\setcharactercasing[\plussix ]\char\zerocount\tx}{}} % some upper + font
+
+\unexpanded\def\realsmallcapped {\groupedcommand{\sc\setcharactercasing[\plusone ]}{}} % all lower
+\unexpanded\def\realSmallcapped {\groupedcommand{\sc\setcharactercasing[\plusthree]}{}} % one upper + font
+\unexpanded\def\realSmallCapped {\groupedcommand{\sc\setcharactercasing[\plusfour ]}{}} % some upper
+
+\unexpanded\def\dohandlesmallcaps
+ {\ifconditional\pseudocapsenabled
+ \expandafter\firstoftwoarguments
+ \else
+ \expandafter\secondoftwoarguments
+ \fi}
+
+\unexpanded\def\smallcapped{\dohandlesmallcaps\pseudosmallcapped\realsmallcapped}
+\unexpanded\def\Smallcapped{\dohandlesmallcaps\pseudoSmallcapped\realSmallcapped}
+\unexpanded\def\SmallCapped{\dohandlesmallcaps\pseudoSmallCapped\realSmallCapped}
+
+\unexpanded\def\autocap{\ifmmode\expandafter\normalcap\else\expandafter\smallcapped\fi}
+
+\appendtoks
+ \let\normalcap\cap % mathmode cap
+ \let\cap\autocap
+\to \everydump
+
+\let\kap\cap % for old times sake
+\let\Caps\SmallCapped % for old times sake
+
+\let\normalsmallcapped\smallcapped
+\let\normalWORD \WORD
+\let\normalword \word
+
+%D \macros
+%D {setupcapitals}
+%D
+%D By default we use pseudo small caps in titles. This can be
+%D set up with:
+%D
+%D \showsetup{setupcapitals}
+
+\let\normalsmallcapped\smallcapped
+
+\def\setupcapitals
+ {\dosingleempty\dosetupcapitals}
+
+\def\dosetupcapitals[#1]%
+ {\getparameters[\??kk][#1]%
+ \doifelse\@@kktitle\v!yes
+ {\definealternativestyle[\v!capital][\normalsmallcapped][\normalsmallcapped]%
+ \definealternativestyle[\v!smallcaps][\sc][\sc]}
+ {\definealternativestyle[\v!capital][\normalsmallcapped][\normalWORD]%
+ \definealternativestyle[\v!smallcaps][\sc][\normalWORD]}%
+ \doifelse\@@kksc\v!yes\userealcaps\usepseudocaps}
+
+\let\uppercased\normalWORD
+\let\lowercased\normalword
+
+\setupcapitals
+ [\c!title=\v!yes,
+ \c!sc=\v!no]
+
+% \definestartstop is not yet in available at core-spa time
+%
+% \startrandomized \input tufte \stoprandomized
+%
+% \definestartstop[randomized][\c!before=\dosetattribute{case}{8},\c!after=]
+
+\def\randomizetext{\groupedcommand{\dosetattribute{case}{8}}{}}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/typo-ini.tex b/Master/texmf-dist/tex/context/base/typo-ini.mkii
index e249b51e07e..1317021ef29 100644
--- a/Master/texmf-dist/tex/context/base/typo-ini.tex
+++ b/Master/texmf-dist/tex/context/base/typo-ini.mkii
@@ -18,7 +18,7 @@
%D typographic extensions in modules. The first language that
%D demands this is Chinese, and more will follow.
-\writestatus{loading}{Context Typographic Macros (ini)}
+\writestatus{loading}{ConTeXt Typographic Macros / Initialization}
\unprotect
diff --git a/Master/texmf-dist/tex/context/base/typo-ini.mkiv b/Master/texmf-dist/tex/context/base/typo-ini.mkiv
new file mode 100644
index 00000000000..1317021ef29
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/typo-ini.mkiv
@@ -0,0 +1,40 @@
+%D \module
+%D [ file=typo-ini,
+%D version=2000.16.09,
+%D title=\CONTEXT\ Typographic Macros,
+%D subtitle=Initialization,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D Since \CONTEXT\ is dealing with typographics, isn't
+%D September 2000 a bit late to start writing this module? It
+%D may seem so, but since more and more languages are
+%D supported, we think it is time to isolate language specific
+%D typographic extensions in modules. The first language that
+%D demands this is Chinese, and more will follow.
+
+\writestatus{loading}{ConTeXt Typographic Macros / Initialization}
+
+\unprotect
+
+%D \macros
+%D {ifvertical}
+%D
+%D The following switch can be used to signal macros that they
+%D should adapt their behaviour.
+
+\newif\ifvertical % maybe also ifreverse
+
+%D \macros
+%D {vhbox}
+%D
+%D A stupid but useful macro.
+
+\def\vhbox{\ifvertical\vbox\else\hbox\fi}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/typo-krn.lua b/Master/texmf-dist/tex/context/base/typo-krn.lua
new file mode 100644
index 00000000000..d3031633d84
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/typo-krn.lua
@@ -0,0 +1,219 @@
+if not modules then modules = { } end modules ['typo-krn'] = {
+ version = 1.001,
+ comment = "companion to typo-krn.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local utf = unicode.utf8
+
+local next, type = next, type
+local utfchar = utf.char
+
+local has_attribute = node.has_attribute
+local unset_attribute = node.unset_attribute
+local find_node_tail = node.tail or node.slide
+local free_node = node.free
+local copy_node = node.copy
+local insert_node_before = node.insert_before
+local insert_node_after = node.insert_after
+local make_glue_spec = nodes.glue_spec
+local make_kern_node = nodes.kern
+
+local glyph = node.id("glyph")
+local kern = node.id("kern")
+local disc = node.id('disc')
+local glue = node.id('glue')
+local hlist = node.id('hlist')
+local vlist = node.id('vlist')
+
+local fontdata = fonts.ids
+local chardata = characters.data
+
+kerns = kerns or { }
+kerns.mapping = kerns.mapping or { }
+kerns.enabled = false
+kerns.attribute = attributes.private("kern")
+
+storage.register("kerns/mapping", kerns.mapping, "kerns.mapping")
+
+function kerns.setspacing(id,factor)
+ kerns.mapping[id] = factor
+end
+
+-- one must use liga=no and mode=base and kern=yes
+-- use more helpers
+-- make sure it runs after all others
+-- there will be a width adaptor field in nodes so this will change
+-- todo: interchar kerns / disc nodes / can be made faster
+-- todo: cache quad and so
+
+local mapping = kerns.mapping
+
+local function process(namespace,attribute,head,force)
+ local scale = tex.scale
+ local start, done, lastfont = head, false, nil
+ while start do
+ -- faster to test for attr first
+ local attr = force or has_attribute(start,attribute)
+ if attr and attr > 0 then
+ unset_attribute(start,attribute)
+ local krn = mapping[attr]
+ if krn and krn ~= 0 then
+ local id = start.id
+ if id == glyph then
+ lastfont = start.font
+ local c = start.components
+ if c then
+ local s = start
+ local tail = find_node_tail(c)
+ if s.prev then
+ s.prev.next = c
+ c.prev = s.prev
+ else
+ head = c
+ end
+ if s.next then
+ s.next.prev = tail
+ end
+ tail.next = s.next
+ start = c
+ start.attr = s.attr
+ s.attr = nil
+ s.components = nil
+ free_node(s)
+ done = true
+ end
+ local prev = start.prev
+ if prev then
+ local pid = prev.id
+ if not pid then
+ -- nothing
+ elseif pid == kern and prev.subtype == 0 then
+ prev.subtype = 1
+ prev.kern = prev.kern + scale(fontdata[lastfont].parameters.quad,krn)
+ done = true
+ elseif pid == glyph then
+ -- fontdata access can be done more efficient
+ if prev.font == lastfont then
+ local prevchar, lastchar = prev.char, start.char
+ local tfm = fontdata[lastfont].characters[prevchar]
+ local ickern = tfm.kerns
+ if ickern and ickern[lastchar] then
+ krn = scale(ickern[lastchar]+fontdata[lastfont].parameters.quad,krn)
+ else
+ krn = scale(fontdata[lastfont].parameters.quad,krn)
+ end
+ else
+ krn = scale(fontdata[lastfont].parameters.quad,krn)
+ end
+ insert_node_before(head,start,make_kern_node(krn))
+ done = true
+ elseif pid == disc then
+ -- a bit too complicated, we can best not copy and just calculate
+ -- but we could have multiple glyphs involved so ...
+ local disc = prev -- disc
+ local pre, post, replace = disc.pre, disc.post, disc.replace
+ if pre then -- must pair with start.prev
+ -- this one happens in most cases
+ local before = copy_node(disc.prev)
+ pre.prev = before
+ before.next = pre
+ before.prev = nil
+ pre = process(namespace,attribute,before,attr)
+ pre = pre.next
+ pre.prev = nil
+ disc.pre = pre
+ free_node(before)
+ end
+ if post then -- must pair with start
+ local after = copy_node(disc.next)
+ local tail = find_node_tail(post)
+ tail.next = after
+ after.prev = tail
+ after.next = nil
+ post = process(namespace,attribute,post,attr)
+ tail.next = nil
+ disc.post = post
+ free_node(after)
+ end
+ if replace then -- must pair with start and start.prev
+ local before = copy_node(disc.prev)
+ local after = copy_node(disc.next)
+ local tail = find_node_tail(replace)
+ replace.prev = before
+ before.next = replace
+ before.prev = nil
+ tail.next = after
+ after.prev = tail
+ after.next = nil
+ replace = process(namespace,attribute,before,attr)
+ replace = replace.next
+ replace.prev = nil
+ tail.next = nil
+ disc.replace = replace
+ free_node(after)
+ free_node(before)
+ else
+ if disc.prev.font == lastfont then
+ local prevchar, lastchar = disc.prev.char, start.char
+ local tfm = fontdata[lastfont].characters[prevchar]
+ local ickern = tfm.kerns
+ if ickern and ickern[lastchar] then
+ krn = scale(ickern[lastchar]+fontdata[lastfont].parameters.quad,krn)
+ else
+ krn = scale(fontdata[lastfont].parameters.quad,krn)
+ end
+ else
+ krn = scale(fontdata[lastfont].parameters.quad,krn)
+ end
+ disc.replace = make_kern_node(krn)
+ end
+ end
+ end
+ elseif id == glue and start.subtype == 0 then
+ local s = start.spec
+ local w = s.width
+ if w > 0 then
+ local width, stretch, shrink = w+2*scale(w,krn), s.stretch, s.shrink
+ start.spec = make_glue_spec(width,scale(stretch,width/w),scale(shrink,width/w))
+ -- local width, stretch, shrink = w+2*w*krn, s.stretch, s.shrink
+ -- start.spec = make_glue_spec(width,stretch*width/w,shrink*width/w))
+ done = true
+ end
+ elseif false and id == kern and start.subtype == 0 then -- handle with glyphs
+ local sk = start.kern
+ if sk > 0 then
+ -- start.kern = scale(sk,krn)
+ start.kern = sk*krn
+ done = true
+ end
+ elseif lastfont and (id == hlist or id == vlist) then -- todo: lookahead
+ if start.prev then
+ insert_node_before(head,start,make_kern_node(scale(fontdata[lastfont].parameters.quad,krn)))
+ done = true
+ end
+ if start.next then
+ insert_node_after(head,start,make_kern_node(scale(fontdata[lastfont].parameters.quad,krn)))
+ done = true
+ end
+ end
+ end
+ end
+ if start then
+ start = start.next
+ end
+ end
+ return head, done
+end
+
+kerns.process = function(namespace,attribute,head)
+ return process(namespace,attribute,head) -- no direct map, because else fourth argument is tail == true
+end
+
+lists.handle_kerning = nodes.install_attribute_handler {
+ name = "kern",
+ namespace = kerns,
+ processor = kerns.process,
+}
diff --git a/Master/texmf-dist/tex/context/base/typo-krn.mkiv b/Master/texmf-dist/tex/context/base/typo-krn.mkiv
new file mode 100644
index 00000000000..e2f10d8066a
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/typo-krn.mkiv
@@ -0,0 +1,59 @@
+%D \module
+%D [ file=typo-krn,
+%D version=2009.03.27, % code moved from core-spa.mkiv
+%D title=\CONTEXT\ Typesetting Macros,
+%D subtitle=Spacing,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=\PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Typesetting Macros / Kerning}
+
+\unprotect
+
+\registerctxluafile{typo-krn}{1.001}
+
+\definesystemattribute[kern]
+
+% more
+%
+% {\setcharacterkerning[extrakerning]\input davis\relax}
+
+\newcount \maxcharacterkerningid
+
+\def\definecharacterkerning
+ {\dosingleargument\dodefinecharacterkerning}
+
+\def\dodefinecharacterkerning[#1]%
+ {\ifcsname\??ck#1\endcsname \else
+ \global\advance\maxcharacterkerningid\plusone
+ \setxvalue{\??ck:#1}{\the\maxcharacterkerningid}%
+ \fi}
+
+\def\setupcharacterkerning
+ {\dodoubleargument\dosetupcharacterkerning}
+
+\def\dosetupcharacterkerning[#1][#2]%
+ {\ifcsname\??ck:#1\endcsname
+ \begingroup
+ \getparameters[\??ck][\c!factor=0,#2]%
+ \ctxlua{kerns.setspacing(\getvalue{\??ck:#1},\@@ckfactor)}%
+ \endgroup
+ \fi}
+
+\def\setcharacterkerning
+ {\ctxlua{kerns.enabled=true}%
+ \gdef\setcharacterkerning[##1]{\dosetattribute{kern}{\csname\??ck:##1\endcsname}}%
+ \setcharacterkerning}
+
+\letvalue{\??ck:\s!reset}\attributeunsetvalue
+
+\definecharacterkerning[extrakerning]
+
+\setupcharacterkerning[extrakerning][\c!factor=.125]
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/typo-mir.lua b/Master/texmf-dist/tex/context/base/typo-mir.lua
new file mode 100644
index 00000000000..806b8e0a0b8
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/typo-mir.lua
@@ -0,0 +1,410 @@
+if not modules then modules = { } end modules ['typo-mir'] = {
+ version = 1.001,
+ comment = "companion to typo-mir.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local utf = unicode.utf8
+
+local next, type = next, type
+local format, insert = string.format, table.insert
+local utfchar = utf.char
+
+-- vertical space handler
+
+local trace_mirroring = false trackers.register("nodes.mirroring", function(v) trace_mirroring = v end)
+
+local has_attribute = node.has_attribute
+local unset_attribute = node.unset_attribute
+local set_attribute = node.set_attribute
+local traverse_id = node.traverse_id
+local insert_node_before = node.insert_before
+local insert_node_after = node.insert_after
+local remove_node = nodes.remove
+
+local glyph = node.id("glyph")
+local whatsit = node.id("whatsit")
+local mthnode = node.id('math')
+
+local fontdata = fonts.ids
+local chardata = characters.data
+
+--~ Analysis by Idris:
+--~
+--~ 1. Assuming the reading- vs word-order distinction (bidi-char types) is governing;
+--~ 2. Assuming that 'ARAB' represents an actual arabic string in raw input order, not word-order;
+--~ 3. Assuming that 'BARA' represent the correct RL word order;
+--~
+--~ Then we have, with input: LATIN ARAB
+--~
+--~ \textdir TLT LATIN ARAB => LATIN BARA
+--~ \textdir TRT LATIN ARAB => LATIN BARA
+--~ \textdir TRT LRO LATIN ARAB => LATIN ARAB
+--~ \textdir TLT LRO LATIN ARAB => LATIN ARAB
+--~ \textdir TLT RLO LATIN ARAB => NITAL ARAB
+--~ \textdir TRT RLO LATIN ARAB => NITAL ARAB
+
+-- elseif d == "es" then -- European Number Separator
+-- elseif d == "et" then -- European Number Terminator
+-- elseif d == "cs" then -- Common Number Separator
+-- elseif d == "nsm" then -- Non-Spacing Mark
+-- elseif d == "bn" then -- Boundary Neutral
+-- elseif d == "b" then -- Paragraph Separator
+-- elseif d == "s" then -- Segment Separator
+-- elseif d == "ws" then -- Whitespace
+-- elseif d == "on" then -- Other Neutrals
+
+mirror = mirror or { }
+mirror.enabled = false
+mirror.strip = false
+mirror.attribute = attributes.private("mirror")
+
+local state = attributes.private('state')
+local mirrora = attributes.private('mirror')
+
+local directions = characters.directions -- maybe make a special mirror table
+
+-- todo: delayed inserts here
+-- todo: get rid of local functions here
+
+-- beware, math adds whatsits afterwards so that will mess things up
+
+local skipmath = true
+
+local finish, autodir, embedded, override, done = nil, 0, 0, 0, false
+local list, glyphs = nil, false
+local finished, finidir, finipos = nil, nil, 1
+local head, current, inserted = nil, nil, nil
+
+local function finish_auto_before()
+ head, inserted = insert_node_before(head,current,nodes.textdir("-"..finish))
+ finished, finidir = inserted, finish
+ if trace_mirroring then
+ insert(list,#list,format("finish %s",finish))
+ finipos = #list-1
+ end
+ finish, autodir, done = nil, 0, true
+end
+
+local function finish_auto_after()
+ head, current = insert_node_after(head,current,nodes.textdir("-"..finish))
+ finished, finidir = current, finish
+ if trace_mirroring then
+ list[#list+1] = format("finish %s",finish)
+ finipos = #list
+ end
+ finish, autodir, done = nil, 0, true
+end
+
+local function force_auto_left_before()
+ if finish then
+ finish_auto_before()
+ end
+ if embedded >= 0 then
+ finish, autodir, done = "TLT", 1, true
+ else
+ finish, autodir, done = "TRT", -1, true
+ end
+ if finidir == finish then
+ remove_node(head,finished,true)
+ if trace_mirroring then
+ list[finipos] = list[finipos].." (deleted)"
+ insert(list,#list,format("start %s (deleted)",finish))
+ end
+ else
+ head, inserted = insert_node_before(head,current,nodes.textdir("+"..finish))
+ if trace_mirroring then
+ insert(list,#list,format("start %s",finish))
+ end
+ end
+end
+
+local function force_auto_right_before()
+ if finish then
+ finish_auto_before()
+ end
+ if embedded <= 0 then
+ finish, autodir, done = "TRT", -1, true
+ else
+ finish, autodir, done = "TLT", 1, true
+ end
+ if finidir == finish then
+ remove_node(head,finished,true)
+ if trace_mirroring then
+ list[finipos] = list[finipos].." (deleted)"
+ insert(list,#list,format("start %s (deleted)",finish))
+ end
+ else
+ head, inserted = insert_node_before(head,current,nodes.textdir("+"..finish))
+ if trace_mirroring then
+ insert(list,#list,format("start %s",finish))
+ end
+ end
+end
+
+function mirror.process(namespace,attribute,start) -- todo: make faster
+ if not start.next then
+ return start, false
+ end
+ head, current, inserted = start, start, nil
+ finish, autodir, embedded, override, done = nil, 0, 0, 0, false
+ list, glyphs = trace_mirroring and { }, false
+ finished, finidir, finipos = nil, nil, 1
+ local stack, top, obsolete = { }, 0, { }
+ local lro, rlo, prevattr, inmath = false, false, 0, false
+ while current do
+ local id = current.id
+ if skipmath and id == mthnode then
+ local subtype = current.subtype
+ if subtype == 0 then
+ -- begin math
+ inmath = true
+ elseif subtype == 1 then
+ inmath = false
+ else
+ -- todo
+ end
+ current = current.next
+ elseif inmath then
+ current = current.next
+ else
+ local attr = has_attribute(current,attribute)
+ if attr and attr > 0 then
+ unset_attribute(current,attribute) -- slow, needed?
+--~ set_attribute(current,attribute,0) -- might be faster
+ if attr == 1 then
+ -- bidi parsing mode
+ elseif attr ~= prevattr then
+ -- no pop, grouped driven (2=normal,3=lro,4=rlo)
+ if attr == 3 then
+ if trace_mirroring then
+ list[#list+1] = format("override right -> left (lro) (bidi=%s)",attr)
+ end
+ lro, rlo = true, false
+ elseif attr == 4 then
+ if trace_mirroring then
+ list[#list+1] = format("override left -> right (rlo) (bidi=%s)",attr)
+ end
+ lro, rlo = false, true
+ else
+ if trace_mirroring and
+ current ~= head then list[#list+1] = format("override reset (bidi=%s)",attr)
+ end
+ lro, rlo = false, false
+ end
+ prevattr = attr
+ end
+ end
+ if id == glyph then
+ glyphs = true
+ if attr and attr > 0 then
+ local char = current.char
+ local d = directions[char]
+ if rlo or override > 0 then
+ if d == "l" then
+ if trace_mirroring then
+ list[#list+1] = format("char %s (%s / U+%04X) of class %s overidden to r (bidi=%s)",utfchar(char),char,char,d,attr)
+ end
+ d = "r"
+ elseif trace_mirroring then
+ if d == "lro" or d == "rlo" or d == "pdf" then -- else side effects on terminal
+ list[#list+1] = format("override char of class %s (bidi=%s)",d,attr)
+ else -- todo: rle lre
+ list[#list+1] = format("char %s (%s / U+%04X) of class %s (bidi=%s)",utfchar(char),char,char,d,attr)
+ end
+ end
+ elseif lro or override < 0 then
+ if d == "r" or d == "al" then
+ set_attribute(current,state,4) -- maybe better have a special bidi attr value -> override (9) -> todo
+ if trace_mirroring then
+ list[#list+1] = format("char %s (%s / U+%04X) of class %s overidden to l (bidi=%s) (state=isol)",utfchar(char),char,char,d,attr)
+ end
+ d = "l"
+ elseif trace_mirroring then
+ if d == "lro" or d == "rlo" or d == "pdf" then -- else side effects on terminal
+ list[#list+1] = format("override char of class %s (bidi=%s)",d,attr)
+ else -- todo: rle lre
+ list[#list+1] = format("char %s (%s / U+%04X) of class %s (bidi=%s)",utfchar(char),char,char,d,attr)
+ end
+ end
+ elseif trace_mirroring then
+ if d == "lro" or d == "rlo" or d == "pdf" then -- else side effects on terminal
+ list[#list+1] = format("override char of class %s (bidi=%s)",d,attr)
+ else -- todo: rle lre
+ list[#list+1] = format("char %s (%s / U+%04X) of class %s (bidi=%s)",utfchar(char),char,char,d,attr)
+ end
+ end
+ if d == "on" then
+ local mirror = chardata[char].mirror -- maybe make a special mirror table
+ if mirror and fontdata[current.font].characters[mirror] then
+ -- todo: set attribute
+ if autodir < 0 then
+ current.char = mirror
+ done = true
+ --~ elseif left or autodir > 0 then
+ --~ if not is_right(current.prev) then
+ --~ current.char = mirror
+ --~ done = true
+ --~ end
+ end
+ end
+ elseif d == "l" or d == "en" then -- european number
+ if autodir <= 0 then
+ force_auto_left_before()
+ end
+ elseif d == "r" or d == "al" or d == "an" then -- arabic left, arabic number
+ if autodir >= 0 then
+ force_auto_right_before()
+ end
+ elseif d == "lro" then -- Left-to-Right Override -> right becomes left
+ if trace_mirroring then
+ list[#list+1] = "override right -> left"
+ end
+ top = top + 1
+ stack[top] = { override, embedded }
+ override = -1
+ obsolete[#obsolete+1] = current
+ elseif d == "rlo" then -- Right-to-Left Override -> left becomes right
+ if trace_mirroring then
+ list[#list+1] = "override left -> right"
+ end
+ top = top + 1
+ stack[top] = { override, embedded }
+ override = 1
+ obsolete[#obsolete+1] = current
+ elseif d == "lre" then -- Left-to-Right Embedding -> TLT
+ if trace_mirroring then
+ list[#list+1] = "embedding left -> right"
+ end
+ top = top + 1
+ stack[top] = { override, embedded }
+ embedded = 1
+ obsolete[#obsolete+1] = current
+ elseif d == "rle" then -- Right-to-Left Embedding -> TRT
+ if trace_mirroring then
+ list[#list+1] = "embedding right -> left"
+ end
+ top = top + 1
+ stack[top] = { override, embedded }
+ embedded = 1
+ obsolete[#obsolete+1] = current
+ elseif d == "pdf" then -- Pop Directional Format
+ -- override = 0
+ if top > 0 then
+ local s = stack[top]
+ override, embedded = s[1], s[2]
+ top = top - 1
+ if trace_mirroring then
+ list[#list+1] = format("state: override: %s, embedded: %s, autodir: %s",override,embedded,autodir)
+ end
+ else
+ if trace_mirroring then
+ list[#list+1] = "pop (error, too many pops)"
+ end
+ end
+ obsolete[#obsolete+1] = current
+ end
+ else
+ if trace_mirroring then
+ local char = current.char
+ local d = directions[char]
+ list[#list+1] = format("char %s (%s / U+%04X) of class %s (no bidi)",utfchar(char),char,char,d)
+ end
+ end
+ elseif id == whatsit then
+ if finish then
+ finish_auto_before()
+ end
+ local subtype = current.subtype
+ if subtype == 6 then
+ local dir = current.dir
+ local d = dir:sub(2,2) -- -- -- -- -- why is this not used
+ if dir:find(".R.") then -- -- d == "R" or just dir == "TRT"
+ autodir = -1
+ else
+ autodir = 1
+ end
+ embeddded = autodir
+ if trace_mirroring then
+ list[#list+1] = format("pardir %s",dir)
+ end
+ elseif subtype == 7 then
+ local dir = current.dir
+ local sign = dir:sub(1,1)
+ local dire = dir:sub(3,3)
+ if dire == "R" then
+ if sign == "+" then
+ finish, autodir = "TRT", -1
+ else
+ finish, autodir = nil, 0
+ end
+ else
+ if sign == "+" then
+ finish, autodir = "TLT", 1
+ else
+ finish, autodir = nil, 0
+ end
+ end
+ if trace_mirroring then
+ list[#list+1] = format("textdir %s",dir)
+ end
+ end
+ else
+ if trace_mirroring then
+ list[#list+1] = format("node %s (subtype %s)",node.type(id),current.subtype)
+ end
+ if finish then
+ finish_auto_before()
+ end
+ end
+ local cn = current.next
+ if not cn then
+ if finish then
+ finish_auto_after()
+ end
+ end
+ current = cn
+ end
+ end
+ if trace_mirroring and glyphs then
+ logs.report("bidi","start log")
+ for i=1,#list do
+ logs.report("bidi","%02i: %s",i,list[i])
+ end
+ logs.report("bidi","stop log")
+ end
+ if done and mirror.strip then
+ local n = #obsolete
+ if n > 0 then
+ for i=1,n do
+ remove_node(head,obsolete[i],true)
+ end
+ logs.report("bidi","%s character nodes removed",n)
+ end
+ end
+ return head, done
+end
+
+--~ local function is_right(n) -- keep !
+--~ if n then
+--~ local id = n.id
+--~ if id == glyph then
+--~ local attr = has_attribute(n,attribute)
+--~ if attr and attr > 0 then
+--~ local d = directions[n.char]
+--~ if d == "r" or d == "al" then -- override
+--~ return true
+--~ end
+--~ end
+--~ end
+--~ end
+--~ return false
+--~ end
+
+chars.handle_mirroring = nodes.install_attribute_handler {
+ name = "mirror",
+ namespace = mirror,
+ processor = mirror.process,
+}
diff --git a/Master/texmf-dist/tex/context/base/typo-mir.mkiv b/Master/texmf-dist/tex/context/base/typo-mir.mkiv
new file mode 100644
index 00000000000..fe9d793e051
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/typo-mir.mkiv
@@ -0,0 +1,144 @@
+%D \module
+%D [ file=typo-mir,
+%D version=2009.03.27, % code moved from core-spa.mkiv
+%D title=\CONTEXT\ Typesetting Macros,
+%D subtitle=Mirroring,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=\PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Typesetting Macros / Mirroring}
+
+\unprotect
+
+\registerctxluafile{typo-mir}{1.001}
+
+\definesystemattribute[mirror]
+
+% experimental mirroring
+
+\def\setcharactermirroring
+ {\ctxlua{mirror.enabled=true}%
+ \gdef\setcharactermirroring[##1]{\dosetattribute{mirror}{\number##1}}%
+ \setcharactermirroring}
+
+\def\resetcharactermirroring
+ {\doresetattribute{mirror}}
+
+\newtoks\everysetupdirections
+
+\def\setupdirections[#1]% there will be more like setting up directions themselves
+ {\getparameters[\??di][#1]%
+ \the\everysetupdirections}
+
+\chardef\directionsbidimode=0
+
+\letvalue{\??di:bidi:\v!off }\zerocount
+\letvalue{\??di:bidi:\v!global}\plusone
+\letvalue{\??di:bidi:\v!local }\plustwo
+\letvalue{\??di:bidi:\v!on }\plustwo
+
+\appendtoks
+ \chardef\directionsbidimode\executeifdefined{\??di:bidi:\@@dibidi}\zerocount\relax
+ \ifcase\directionsbidimode
+ \resetcharactermirroring
+ \or
+ \setcharactermirroring[1]% global, chars
+ \or
+ \setcharactermirroring[2]% local, attributes
+ \or
+ \setcharactermirroring[1]% default
+ \fi
+\to \everysetupdirections
+
+% bidi: local=obey grouping, global=ignore grouping (unicode has no grouping)
+
+\setupdirections % maybe start/stop
+ [bidi=\v!off]
+
+\unexpanded\def\bidilre{\utfchar{"0x202A}}
+\unexpanded\def\bidirle{\utfchar{"0x202B}}
+\unexpanded\def\bidipop{\utfchar{"0x202C}}
+\unexpanded\def\bidilro{\utfchar{"0x202D}}
+\unexpanded\def\bidirlo{\utfchar{"0x202E}}
+
+\unexpanded\def\dirlre{\ifcase\directionsbidimode\or\bidilre\or\textdir TLT\fi}
+\unexpanded\def\dirrle{\ifcase\directionsbidimode\or\bidirle\or\textdir TRT\fi}
+\unexpanded\def\dirlro{\ifcase\directionsbidimode\or\bidilro\or\setcharactermirroring[3]\fi}
+\unexpanded\def\dirrlo{\ifcase\directionsbidimode\or\bidirlo\or\setcharactermirroring[4]\fi}
+
+% for the moment: \setcharactermirroring[\plusone]
+
+\protect \endinput
+
+% bidi test
+
+\definefontfeature
+ [arab]
+ [mode=node,language=dflt,script=arab,
+ init=yes,medi=yes,fina=yes,isol=yes,
+ liga=yes,dlig=yes,rlig=yes,clig=yes,
+ mark=yes,mkmk=yes,kern=yes,curs=yes]
+
+\font\Arabic=arabtype*arab at 20pt
+
+\def\LATIN{LATIN} {\setcharactermirroring[1]} % enable this
+\def\ARAB {محمد}
+
+\startluacode
+ function document.split_tokens(str)
+ for s in str:bytes() do
+ tex.sprint(tex.ctxcatcodes,string.format("\\hbox{\\char %s}",s))
+ end
+ end
+\stopluacode
+
+\def\biditest#1#2#3% font text raw
+ {\dontleavehmode\hbox
+ {\framed[offset=overlay]{\tttf#2}\quad
+ \ctxlua{mirror.trace = true}%
+ \framed[offset=overlay]{#1#3}\quad
+ \ctxlua{mirror.trace = false}
+ \tttf\ctxlua{document.split_tokens([[\detokenize{#3}]])}}}
+
+\startbuffer[bidi-sample]
+\biditest\Arabic{LATIN BARA}{\textdir TLT\relax \LATIN\ \ARAB}\par
+\biditest\Arabic{BARA LATIN}{\textdir TRT\relax \LATIN\ \ARAB}\par
+\biditest\Arabic{LATIN ARAB}{\textdir TLT{\bidilro \LATIN\ \ARAB}}\par % right -> left
+\biditest\Arabic{LATIN ARAB}{\textdir TRT{\bidilro \LATIN\ \ARAB}}\par % right -> left
+\biditest\Arabic{BARA NITAL}{\textdir TLT{\bidirlo \LATIN\ \ARAB}}\par % left -> right
+\biditest\Arabic{BARA NITAL}{\textdir TRT{\bidirlo \LATIN\ \ARAB}}\par % left -> right
+\stopbuffer
+
+\startbuffer[bidi-sample]
+\biditest\Arabic{LATIN BARA}{\textdir TLT\relax \LATIN\ \ARAB}\par
+\biditest\Arabic{BARA LATIN}{\textdir TRT\relax \LATIN\ \ARAB}\par
+\biditest\Arabic{LATIN ARAB}{\textdir TLT\bidilro \LATIN\ \ARAB}\par % right -> left
+\biditest\Arabic{LATIN ARAB}{\textdir TRT\bidilro \LATIN\ \ARAB}\par % right -> left
+\biditest\Arabic{BARA NITAL}{\textdir TLT\bidirlo \LATIN\ \ARAB}\par % left -> right
+\biditest\Arabic{BARA NITAL}{\textdir TRT\bidirlo \LATIN\ \ARAB}\par % left -> right
+\stopbuffer
+
+\startbuffer[bidi-setup]
+\setupdirections[bidi=off]
+\stopbuffer
+
+{\typebuffer[bidi-setup] \getbuffer[bidi-setup] \getbuffer[bidi-sample]}
+
+\startbuffer[bidi-setup]
+\setupdirections[bidi=global]
+\stopbuffer
+
+{\typebuffer[bidi-setup] \getbuffer[bidi-setup] \getbuffer[bidi-sample]}
+
+\startbuffer[bidi-setup]
+\setupdirections[bidi=local]
+\stopbuffer
+
+{\typebuffer[bidi-setup] \getbuffer[bidi-setup] \getbuffer[bidi-sample]}
+
+\stoptext
diff --git a/Master/texmf-dist/tex/context/base/typo-spa.lua b/Master/texmf-dist/tex/context/base/typo-spa.lua
new file mode 100644
index 00000000000..20861d08b32
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/typo-spa.lua
@@ -0,0 +1,150 @@
+if not modules then modules = { } end modules ['typo-spa'] = {
+ version = 1.001,
+ comment = "companion to typo-spa.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local utf = unicode.utf8
+
+local next, type = next, type
+local utfchar = utf.char
+
+local trace_hspacing = false trackers.register("nodes.hspacing", function(v) trace_hspacing = v end)
+
+local has_attribute = node.has_attribute
+local unset_attribute = node.unset_attribute
+local insert_node_before = node.insert_before
+local insert_node_after = node.insert_after
+local remove_node = nodes.remove
+local make_penalty_node = nodes.penalty
+local make_glue_node = nodes.glue
+local glyph = node.id("glyph")
+local fontdata = fonts.ids
+
+spacings = spacings or { }
+spacings.mapping = spacings.mapping or { }
+spacings.enabled = false
+spacings.attribute = attributes.private("spacing")
+
+storage.register("spacings/mapping", spacings.mapping, "spacings.mapping")
+
+function spacings.setspacing(id,char,left,right,alternative)
+ local mapping = spacings.mapping[id]
+ if not mapping then
+ mapping = { }
+ spacings.mapping[id] = mapping
+ end
+ local map = mapping[char]
+ if not map then
+ map = { }
+ mapping[char] = map
+ end
+ map.left, map.right, map.alternative = left, right, alternative
+end
+
+function spacings.process(namespace,attribute,head)
+ local done, mapping = false, spacings.mapping
+ local start = head
+ -- head is always begin of par (whatsit), so we have at least two prev nodes
+ -- penalty followed by glue
+ while start do
+ if start.id == glyph then
+ local attr = has_attribute(start,attribute)
+ if attr and attr > 0 then
+ local map = mapping[attr]
+ if map then
+ map = map[start.char]
+ unset_attribute(start,attribute)
+ if map then
+ local left, right, alternative = map.left, map.right, map.alternative
+ local quad = fontdata[start.font].parameters.quad
+ local prev = start.prev
+ if left and left ~= 0 and prev then
+ local ok = false
+ if alternative == 1 then
+ local somespace = nodes.somespace(prev,true)
+ if somespace then
+ local prevprev = prev.prev
+ local somepenalty = nodes.somepenalty(prevprev,10000)
+ if somepenalty then
+ if trace_hspacing then
+ logs.report("spacing","removing penalty and space before %s", utfchar(start.char))
+ end
+ head, _ = remove_node(head,prev,true)
+ head, _ = remove_node(head,prevprev,true)
+ else
+ local somespace = nodes.somespace(prev,true)
+ if somespace then
+ if trace_hspacing then
+ logs.report("spacing","removing space before %s", utfchar(start.char))
+ end
+ head, _ = remove_node(head,prev,true)
+ end
+ end
+ end
+ ok = true
+ else
+ ok = not (nodes.somespace(prev,true) and nodes.somepenalty(prev.prev,true)) or nodes.somespace(prev,true)
+ end
+ if ok then
+ if trace_hspacing then
+ logs.report("spacing","inserting penalty and space before %s", utfchar(start.char))
+ end
+ insert_node_before(head,start,make_penalty_node(10000))
+ insert_node_before(head,start,make_glue_node(tex.scale(quad,left)))
+ done = true
+ end
+ end
+ local next = start.next
+ if right and right ~= 0 and next then
+ local ok = false
+ if alternative == 1 then
+ local somepenalty = nodes.somepenalty(next,10000)
+ if somepenalty then
+ local nextnext = next.next
+ local somespace = nodes.somespace(nextnext,true)
+ if somespace then
+ if trace_hspacing then
+ logs.report("spacing","removing penalty and space after %s", utfchar(start.char))
+ end
+ head, _ = remove_node(head,next,true)
+ head, _ = remove_node(head,nextnext,true)
+ end
+ else
+ local somespace = nodes.somespace(next,true)
+ if somespace then
+ if trace_hspacing then
+ logs.report("spacing","removing space after %s", utfchar(start.char))
+ end
+ head, _ = remove_node(head,next,true)
+ end
+ end
+ ok = true
+ else
+ ok = not (nodes.somepenalty(next,10000) and nodes.somespace(next.next,true)) or nodes.somespace(next,true)
+ end
+ if ok then
+ if trace_hspacing then
+ logs.report("spacing","inserting penalty and space after %s", utfchar(start.char))
+ end
+ insert_node_after(head,start,make_glue_node(tex.scale(quad,right)))
+ insert_node_after(head,start,make_penalty_node(10000))
+ done = true
+ end
+ end
+ end
+ end
+ end
+ end
+ start = start.next
+ end
+ return head, done
+end
+
+lists.handle_spacing = nodes.install_attribute_handler {
+ name = "spacing",
+ namespace = spacings,
+ processor = spacings.process,
+}
diff --git a/Master/texmf-dist/tex/context/base/typo-spa.mkiv b/Master/texmf-dist/tex/context/base/typo-spa.mkiv
new file mode 100644
index 00000000000..d1b855edd6b
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/typo-spa.mkiv
@@ -0,0 +1,69 @@
+%D \module
+%D [ file=typo-spa,
+%D version=2009.03.27, % code moved from cors-spa.mkiv
+%D title=\CONTEXT\ Typesetting Macros,
+%D subtitle=Spacing,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=\PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Typesetting Macros / Spacing}
+
+\unprotect
+
+\registerctxluafile{typo-spa}{1.001}
+
+\definesystemattribute[spacing]
+
+% experimental spacing
+%
+% test: oeps {\setcharacterspacing[frenchpunctuation]x: xx \bfd x: xx} oeps: test
+
+\newcount \maxcharacterspacingid
+
+\def\definecharacterspacing[#1]%
+ {\ifcsname\??ch#1\endcsname \else
+ \global\advance\maxcharacterspacingid\plusone
+ \setxvalue{\??ch:#1}{\the\maxcharacterspacingid}%
+ \fi}
+
+\def\setupcharacterspacing
+ {\dotripleargument\dosetupcharacterspacing}
+
+\def\dosetupcharacterspacing[#1][#2][#3]%
+ {\ifcsname\??ch:#1\endcsname
+ \begingroup % for the moment we use modes, in ordere to avoid interface translation
+ \getparameters[\??ch][\c!left=0,\c!right=0,\c!alternative=0,#3]%
+ \ctxlua{spacings.setspacing(\getvalue{\??ch:#1},\number#2,\@@chleft,\@@chright,\@@chalternative)}%
+ \endgroup
+ \fi}
+
+\def\setcharacterspacing
+ {\ctxlua{spacings.enabled=true}%
+ \gdef\setcharacterspacing[##1]{\dosetattribute{spacing}{\csname\??ch:##1\endcsname}}%
+ \setcharacterspacing}
+
+\def\resetcharacterspacing
+ {\doresetattribute{spacing}}
+
+\letvalue{\??ch:\s!reset}\attributeunsetvalue
+
+% \setcharacterspacing[frenchpunctuation]
+% «\type{bla}»\crlf « \type{bla}»\crlf
+% «bla »\crlf « bla»\crlf « bla »\crlf
+% bla: bla\crlf bla : bla
+
+\definecharacterspacing [frenchpunctuation] % name may change / unit is em
+
+\setupcharacterspacing [frenchpunctuation] ["003A] [\c!left =.25,\c!alternative=1] % : % strip preceding space(char)
+\setupcharacterspacing [frenchpunctuation] ["003B] [\c!left =.25,\c!alternative=1] % ; % strip preceding space(char)
+\setupcharacterspacing [frenchpunctuation] ["003F] [\c!left =.25,\c!alternative=1] % ? % strip preceding space(char)
+\setupcharacterspacing [frenchpunctuation] ["0021] [\c!left =.25,\c!alternative=1] % ! % strip preceding space(char)
+\setupcharacterspacing [frenchpunctuation] ["00AB] [\c!right=.25,\c!alternative=1] % guillemotleft/leftguillemot % strip following space(char)
+\setupcharacterspacing [frenchpunctuation] ["00BB] [\c!left =.25,\c!alternative=1] % guillemotright/rightguillemot % strip preceding space(char)
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/unic-000.tex b/Master/texmf-dist/tex/context/base/unic-000.mkii
index cb4c1fe8abd..cb4c1fe8abd 100644
--- a/Master/texmf-dist/tex/context/base/unic-000.tex
+++ b/Master/texmf-dist/tex/context/base/unic-000.mkii
diff --git a/Master/texmf-dist/tex/context/base/unic-001.tex b/Master/texmf-dist/tex/context/base/unic-001.mkii
index e37de91367c..e37de91367c 100644
--- a/Master/texmf-dist/tex/context/base/unic-001.tex
+++ b/Master/texmf-dist/tex/context/base/unic-001.mkii
diff --git a/Master/texmf-dist/tex/context/base/unic-002.tex b/Master/texmf-dist/tex/context/base/unic-002.mkii
index ae7deb12a92..ae7deb12a92 100644
--- a/Master/texmf-dist/tex/context/base/unic-002.tex
+++ b/Master/texmf-dist/tex/context/base/unic-002.mkii
diff --git a/Master/texmf-dist/tex/context/base/unic-003.tex b/Master/texmf-dist/tex/context/base/unic-003.mkii
index d37563d264c..d37563d264c 100644
--- a/Master/texmf-dist/tex/context/base/unic-003.tex
+++ b/Master/texmf-dist/tex/context/base/unic-003.mkii
diff --git a/Master/texmf-dist/tex/context/base/unic-004.tex b/Master/texmf-dist/tex/context/base/unic-004.mkii
index 7404bbedec8..b6e210193a7 100644
--- a/Master/texmf-dist/tex/context/base/unic-004.tex
+++ b/Master/texmf-dist/tex/context/base/unic-004.mkii
@@ -97,7 +97,7 @@
\cyrillicyu \or
\cyrillicya \or % 044F
\cyrillicegrave \or % 0450 not i enco-uc.tex but same as \uchar0{232}
- \cyrillicio \or % 0451 small yo (or io)
+ \cyrillicyo \or % 0451 small yo (or io)
\cyrillicdje \or % 0452 serbian letter
\cyrillicgje \or % 0453 macedonian letter not in enco-uc.tex
\cyrillicie \or % 0454 ukrainian ie
diff --git a/Master/texmf-dist/tex/context/base/unic-005.tex b/Master/texmf-dist/tex/context/base/unic-005.mkii
index d15b74dbe44..d15b74dbe44 100644
--- a/Master/texmf-dist/tex/context/base/unic-005.tex
+++ b/Master/texmf-dist/tex/context/base/unic-005.mkii
diff --git a/Master/texmf-dist/tex/context/base/unic-030.tex b/Master/texmf-dist/tex/context/base/unic-030.mkii
index ef42c807a80..ef42c807a80 100644
--- a/Master/texmf-dist/tex/context/base/unic-030.tex
+++ b/Master/texmf-dist/tex/context/base/unic-030.mkii
diff --git a/Master/texmf-dist/tex/context/base/unic-031.tex b/Master/texmf-dist/tex/context/base/unic-031.mkii
index ae6bc1b8e4b..ae6bc1b8e4b 100644
--- a/Master/texmf-dist/tex/context/base/unic-031.tex
+++ b/Master/texmf-dist/tex/context/base/unic-031.mkii
diff --git a/Master/texmf-dist/tex/context/base/unic-032.tex b/Master/texmf-dist/tex/context/base/unic-032.mkii
index 32c25e4e26e..32c25e4e26e 100644
--- a/Master/texmf-dist/tex/context/base/unic-032.tex
+++ b/Master/texmf-dist/tex/context/base/unic-032.mkii
diff --git a/Master/texmf-dist/tex/context/base/unic-033.tex b/Master/texmf-dist/tex/context/base/unic-033.mkii
index 91311a029d1..91311a029d1 100644
--- a/Master/texmf-dist/tex/context/base/unic-033.tex
+++ b/Master/texmf-dist/tex/context/base/unic-033.mkii
diff --git a/Master/texmf-dist/tex/context/base/unic-034.tex b/Master/texmf-dist/tex/context/base/unic-034.mkii
index fece26bff16..fece26bff16 100644
--- a/Master/texmf-dist/tex/context/base/unic-034.tex
+++ b/Master/texmf-dist/tex/context/base/unic-034.mkii
diff --git a/Master/texmf-dist/tex/context/base/unic-035.mkii b/Master/texmf-dist/tex/context/base/unic-035.mkii
new file mode 100644
index 00000000000..272799512ad
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/unic-035.mkii
@@ -0,0 +1,32 @@
+%D \module
+%D [ file=unic-035,
+%D version=2009.05.25,
+%D title=\CONTEXT\ \UNICODE\ Macros,
+%D subtitle=Vector 35,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+
+\unprotect
+
+\startunicodevector 35
+ \expandafter\strippedcsname
+ \ifcase\numexpr#1\relax
+ \varnothing \or % DIAMETER SIGN
+ \unknownchar \or % ELECTRIC ARROW
+ \unknownchar \or % HOUSE
+ \unknownchar \or % UP ARROWHEAD
+ \unknownchar \or % DOWN ARROWHEAD
+ \unknownchar \or % PROJECTIVE
+ \unknownchar \or % PERSPECTIVE
+ \unknownchar \or % WAVY LINE
+ \lceil \or % LEFT CEILING
+ \rceil \or % RIGHT CEILING
+ \lfloor \or % LEFT FLOOR
+ \rfloor \or % RIGHT FLOOR
+ \unknownchar \else
+ \unknownchar %
+ \fi
+\stopunicodevector
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/unic-037.tex b/Master/texmf-dist/tex/context/base/unic-037.mkii
index 87f655a6810..87f655a6810 100644
--- a/Master/texmf-dist/tex/context/base/unic-037.tex
+++ b/Master/texmf-dist/tex/context/base/unic-037.mkii
diff --git a/Master/texmf-dist/tex/context/base/unic-039.tex b/Master/texmf-dist/tex/context/base/unic-039.mkii
index bcf6490901f..bcf6490901f 100644
--- a/Master/texmf-dist/tex/context/base/unic-039.tex
+++ b/Master/texmf-dist/tex/context/base/unic-039.mkii
diff --git a/Master/texmf-dist/tex/context/base/unic-251.tex b/Master/texmf-dist/tex/context/base/unic-251.mkii
index 150ade4561f..150ade4561f 100644
--- a/Master/texmf-dist/tex/context/base/unic-251.tex
+++ b/Master/texmf-dist/tex/context/base/unic-251.mkii
diff --git a/Master/texmf-dist/tex/context/base/unic-cjk.tex b/Master/texmf-dist/tex/context/base/unic-cjk.mkii
index 786546318c0..786546318c0 100644
--- a/Master/texmf-dist/tex/context/base/unic-cjk.tex
+++ b/Master/texmf-dist/tex/context/base/unic-cjk.mkii
diff --git a/Master/texmf-dist/tex/context/base/unic-exp.tex b/Master/texmf-dist/tex/context/base/unic-exp.mkii
index 7d7f9f0c54b..027aedab857 100644
--- a/Master/texmf-dist/tex/context/base/unic-exp.tex
+++ b/Master/texmf-dist/tex/context/base/unic-exp.mkii
@@ -2,7 +2,7 @@
%D [ file=unic-exp,
%D version=2002.12.05,
%D title=\CONTEXT\ \UNICODE\ Support,
-%D subtitle=\UNICODE\ vector expansion,
+%D subtitle=Expansion,
%D author=Hans Hagen,
%D date=\currentdate,
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context UNICODE Macros (expansion)}
+\writestatus{loading}{ConTeXt Unicode Support / Expansion)}
%D \macros
%D {expandunivector}
diff --git a/Master/texmf-dist/tex/context/base/unic-ini.mkii b/Master/texmf-dist/tex/context/base/unic-ini.mkii
index ac1851fb662..f386494f2cd 100644
--- a/Master/texmf-dist/tex/context/base/unic-ini.mkii
+++ b/Master/texmf-dist/tex/context/base/unic-ini.mkii
@@ -2,7 +2,7 @@
%D [ file=unic-ini,
%D version=2002.12.03,
%D title=\CONTEXT\ \UNICODE\ Support,
-%D subtitle=\UNICODE\ \& UTF-8 support,
+%D subtitle=Initialization,
%D author=Hans Hagen,
%D date=\currentdate,
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
@@ -11,15 +11,10 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context UNICODE Macros (ini)}
+\writestatus{loading}{ConTeXt Unicode Support / Initialization}
%D Sorry, we only support his in \ETEX.
-\beginTEX
- \def\useunicodevector[#1]{}
- \expandafter \endinput
-\endTEX
-
\unprotect
% ÀÁÂÃÄÅàáâãäå
@@ -538,7 +533,7 @@
\def\douseunicodevector#1%
{\ifundefined{\@@univector#1}%
% \readsysfile{\f!unicprefix\threedigits{#1}}
- \readsysfile{\f!unicprefix\doifnumberelse{#1}{\threedigits{#1}}{#1}}
+ \readsysfile{\f!unicprefix\doifnumberelse{#1}{\threedigits{#1}}{#1}.mkii}
{\writestatus{unicode}{loading vector #1}}
{\writestatus{unicode}{unknown vector #1}}%
\fi}
@@ -687,72 +682,52 @@
% We have to compensate for etex's rounding (thanks to Taco and
% Nanning) for pointing/sorting this out:
+\chardef \utf@a= 64
+\mathchardef \utf@b= 4096
+\newcount\utf@c\utf@c=262144
+\chardef \utf@d= 192
+\chardef \utf@e= 224
+\chardef \utf@f= 240
+\chardef \utf@g= 128
+\mathchardef \utf@h= 256
+\chardef \utf@i= 127
+\mathchardef \utf@j= 2048
+\chardef \utf@k= 32
+
+% div: \numexp#1/#2\relax
+% mod: \numexp#1-(#1/#2)*#2\relax
+
% \def\numbertoutf#1%
-% {\ifnum#1<128
+% {\ifnum#1<\utf@g
% \rawcharacter{#1}%
% \else\ifnum#1<2048
-% \rawcharacter{\the\numexpr192+(#1-32)/64\relax}%
-% \rawcharacter{\the\numexpr128+(#1-((#1-32)/64)*64)\relax}%
+% \rawcharacter{\numexpr192+(#1/64)\relax}% 192 + (ud div 64)
+% \rawcharacter{\numexpr128+(#1-(#1/64)*64)\relax}% 128 + (ud mod 64)
+% \else\ifnum#1<2097152
+% \rawcharacter{\numexpr224+(#1-(#1/4096)\relax}% 224 + (ud div 4096)
+% \rawcharacter{\numexpr128+(#1-((#1/64)-((#1/64)/64)*64)\relax}% 128 + ((ud div 64) mod 64)
+% \rawcharacter{\numexpr128+(#1-(#1-(#1/64)*64)\relax}% 128 + (ud mod 64)
% \else
-% \rawcharacter{\the\numexpr224+(#1-2048)/4096\relax}%
-% \rawcharacter{\the\numexpr128+(#1-(((#1-2048)/4096)*4096)-32)/64\relax}%
-% \rawcharacter{\the\numexpr128+(#1-(((#1-2048)/4096)*4096)-((#1-(((#1-2048)/4096)*4096)-32)/64)*64)\relax}%
+% % todo
% \fi\fi}
-\beginETEX \numexpr
-
- \chardef \utf@a= 64
- \mathchardef \utf@b= 4096
- \newcount\utf@c\utf@c=262144
- \chardef \utf@d= 192
- \chardef \utf@e= 224
- \chardef \utf@f= 240
- \chardef \utf@g= 128
- \mathchardef \utf@h= 256
- \chardef \utf@i= 127
- \mathchardef \utf@j= 2048
- \chardef \utf@k= 32
-
- % div: \numexp#1/#2\relax
- % mod: \numexp#1-(#1/#2)*#2\relax
-
- % \def\numbertoutf#1%
- % {\ifnum#1<\utf@g
- % \rawcharacter{#1}%
- % \else\ifnum#1<2048
- % \rawcharacter{\numexpr192+(#1/64)\relax}% 192 + (ud div 64)
- % \rawcharacter{\numexpr128+(#1-(#1/64)*64)\relax}% 128 + (ud mod 64)
- % \else\ifnum#1<2097152
- % \rawcharacter{\numexpr224+(#1-(#1/4096)\relax}% 224 + (ud div 4096)
- % \rawcharacter{\numexpr128+(#1-((#1/64)-((#1/64)/64)*64)\relax}% 128 + ((ud div 64) mod 64)
- % \rawcharacter{\numexpr128+(#1-(#1-(#1/64)*64)\relax}% 128 + (ud mod 64)
- % \else
- % % todo
- % \fi\fi}
-
- \def\numbertoutf#1% okay?
- {\ifnum#1<\utf@g
- \rawcharacter{#1}%
- \else\ifnum#1<\utf@j
- \rawcharacter{\the\numexpr\utf@d+(#1-\utf@k)/\utf@a\relax}%
- \rawcharacter{\the\numexpr\utf@g+(#1-((#1-\utf@k)/\utf@a)*\utf@a)\relax}%
- \else
- \rawcharacter{\the\numexpr\utf@e+(#1-\utf@j)/\utf@b\relax}%
- \rawcharacter{\the\numexpr\utf@g+(#1-(((#1-\utf@j)/\utf@b)*\utf@b)-\utf@k)/\utf@a\relax}%
- \rawcharacter{\the\numexpr\utf@g+(#1-(((#1-\utf@j)/\utf@b)*\utf@b)-((#1-(((#1-\utf@j)/\utf@b)*\utf@b)-\utf@k)/\utf@a)*\utf@a)\relax}%
- \fi\fi}
-
-\endETEX
+\def\numbertoutf#1% okay?
+ {\ifnum#1<\utf@g
+ \rawcharacter{#1}%
+ \else\ifnum#1<\utf@j
+ \rawcharacter{\the\numexpr\utf@d+(#1-\utf@k)/\utf@a\relax}%
+ \rawcharacter{\the\numexpr\utf@g+(#1-((#1-\utf@k)/\utf@a)*\utf@a)\relax}%
+ \else
+ \rawcharacter{\the\numexpr\utf@e+(#1-\utf@j)/\utf@b\relax}%
+ \rawcharacter{\the\numexpr\utf@g+(#1-(((#1-\utf@j)/\utf@b)*\utf@b)-\utf@k)/\utf@a\relax}%
+ \rawcharacter{\the\numexpr\utf@g+(#1-(((#1-\utf@j)/\utf@b)*\utf@b)-((#1-(((#1-\utf@j)/\utf@b)*\utf@b)-\utf@k)/\utf@a)*\utf@a)\relax}%
+ \fi\fi}
\def\numbertohexstring#1{0x\uchexnumbers{\utfdiv{#1}}\uchexnumbers{\utfmod{#1}}}
-\beginXETEX
- \let\numbertoutf\numbertohexstring
-\endXETEX
-
-\beginTEX
+\ifnum\texengine=\xetexengine
\let\numbertoutf\numbertohexstring
-\endTEX
+\fi
\def\uchartoutf#1#2%
{\expandafter\numbertoutf\expandafter{\the\numexpr#1*\utf@h+#2\relax}}
@@ -786,13 +761,13 @@
%D Goodies:
-\fetchruntimecommand \showunicodevector {\f!unicprefix\s!run}
-\fetchruntimecommand \showunicodetable {\f!unicprefix\s!run}
+\fetchruntimecommand \showunicodevector {\f!unicprefix\s!run.mkii}
+\fetchruntimecommand \showunicodetable {\f!unicprefix\s!run.mkii}
%D Well, let's at least preload a few familiar ones. Here we
%D also load the \UTF\ regime.
-\useunicodevector[0,1,2,3,4,5,30,31,32,33,34,37,39,251]
+\useunicodevector[0,1,2,3,4,5,30,31,32,33,34,35,37,39,251]
\useunicodevector[cjk]
\useregime[utf]
diff --git a/Master/texmf-dist/tex/context/base/unic-ini.mkiv b/Master/texmf-dist/tex/context/base/unic-ini.mkiv
index a174f7a39c7..51c300e4ca4 100644
--- a/Master/texmf-dist/tex/context/base/unic-ini.mkiv
+++ b/Master/texmf-dist/tex/context/base/unic-ini.mkiv
@@ -11,25 +11,12 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context UNICODE Macros (ini)}
-
-%D Much of this is not needed at all in \LUATEX\ and we can save some
-%D 50K on the compressed format.
+\writestatus{loading}{ConTeXt Unicode Support / Initialization}
\unprotect
-\def\keeputfcharacters {}
-\def\registerprivateunicodechar#1 {}
-\def\defineunicodecommand #1 #2{}
-\def\doifunicodevector #1{\firstofoneargument}
-\def\useunicodevector [#1]{}
-\def\startunicodevector #1\stopunicodevector{}
-\def\unicodeinfoline #1#2#3{}
-\def\cleanunicodechar #1{#1}
-\def\unicodeunknowncharacter {\unknownchar}
-
-\chardef\utfunicodetracer \zerocount
-\chardef\utfunicommandmode\zerocount
+\let \keeputfcharacters\relax % used in xtag
+\chardef\utfunicodetracer \zerocount % used in xtag
\def\unicodechar #1{\char\numexpr#1\relax} % no lookahead
\def\unicodenumber #1{\the \numexpr#1\relax} % no lookahead
@@ -39,10 +26,4 @@
\ifx\zwnbsp\undefined \let\zwnbsp\relax \fi % zerowidthnonbreakablespace
-\def\showunicodevector[#1]{}
-\def\showunicodetable [#1]{}
-
-% \fetchruntimecommand \showunicodevector {\f!unicprefix\s!run}
-% \fetchruntimecommand \showunicodetable {\f!unicprefix\s!run}
-
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/unic-ini.tex b/Master/texmf-dist/tex/context/base/unic-ini.tex
deleted file mode 100644
index 587edd308ed..00000000000
--- a/Master/texmf-dist/tex/context/base/unic-ini.tex
+++ /dev/null
@@ -1,785 +0,0 @@
-%D \module
-%D [ file=unic-ini,
-%D version=2002.12.03,
-%D title=\CONTEXT\ \UNICODE\ Support,
-%D subtitle=\UNICODE\ \& UTF-8 support,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{Context UNICODE Macros (ini)}
-
-%D Sorry, we only support his in \ETEX.
-
-\beginTEX
- \def\useunicodevector[#1]{}
- \expandafter \endinput
-\endTEX
-
-\unprotect
-
-% ÀÁÂÃÄÅàáâãäå
-% ÆÇæç
-% ÈÉÊËèéêë
-% ÌÍÎÏÞìíîïþ
-% Ðð
-% Ññ
-% ÒÓÔÕÖòóôõö
-% Øø
-% ÙÚÛÜùúû
-% Ýýÿ
-% ß
-
-%D This module deals with unicode, and in particular with
-%D \UTF-8 conversion. The prelude to this module was \type
-%D {xtag-utf}, which is now replaced by a one||liner. The
-%D macros below deal with conversions. Thanks to Taco for
-%D providing the following conversion rules.
-%D
-%D \starttabulate[|c|c|c|c|c|]
-%D \NC $b_1$ \NC $b_2$ \NC $b_3$ \NC $b_4$ \NC unicode \NC \NR
-%D \NC192---223\NC128---191\NC \NC \NC 0x80---0x7FF \NC \NR
-%D \NC224---239\NC128---191\NC128---191\NC \NC 0x800---0xFFFF \NC \NR
-%D \NC240---247\NC128---191\NC128---191\NC128---191\NC0x10000---0x1FFFF\NC \NR
-%D \stoptabulate
-%D
-%D In \UTF-8 the characters in the range 128---191 are illegal
-%D as first characters. The characters 254 and 255 are
-%D completely illegal and should not appear at all (they are
-%D related to UTF-16).
-%D
-%D The unicode number for an \UTF-8 sequence can be calculated
-%D as follows:
-%D
-%D \starttabulate[|mc|m|mc|m|mc|m|mc|m|]
-%D \NC b_1 \NC \NC \NC \NC \NC \NC \NC if b_1<=127\NC \NR
-%D \NC 64(b_1-192)\NC+\NC (b_2-128)\NC \NC \NC \NC \NC if 192<=b1<=223\NC \NR
-%D \NC 4096(b_1-224)\NC+\NC 64(b_2-128)\NC+\NC (b_3-128)\NC \NC \NC if 224<=b1<=239\NC \NR
-%D \NC262144(b_1-240)\NC+\NC4096(b_2-128)\NC+\NC64(b_3-128)\NC+\NC(b_4-128)\NC if 240<=b1<=247\NC \NR
-%D \stoptabulate
-%D
-%D A lot of information about unicode can be found on the
-%D web (search for Markus Kuhn and unicode and you'll
-%D probably end up at the right place).
-
-%D In \ETEX\ vocabulary such a conversion looks as follows.
-%D We need the \type {`} in order to turn a character into a
-%D number.
-%D
-%D \starttyping
-%D \def\utftwounicode#1#2%
-%D {\number\numexpr (64*(\numexpr (#1-192))+%
-%D (\numexpr(`#2-128)))}
-%D
-%D \def\utfthreeunicode#1#2#3%
-%D {\number\numexpr (4096*(\numexpr (#1-224))+
-%D 64*(\numexpr(`#2-128))+%
-%D (\numexpr(`#3-128)))}
-%D
-%D \def\utffourunicode#1#2#3#4%
-%D {\number\numexpr(262144*(\numexpr (#1-240))+
-%D 4096*(\numexpr(`#1-128))+
-%D 64*(\numexpr(`#2-128))+%
-%D (\numexpr(`#3-128)))}
-%D \stoptyping
-%D
-%D When we map the unicode number on one of the 256 char wide
-%D unicode tables, we need to do a bit of div and mod. Watch
-%D out: an \ETEX\ \type {/} is not the same as \TEX's \type
-%D {\divide}. The former rounds, while the later truncates, so
-%D we need to trucate ourselves. In case you wonder why we
-%D use \type {\numexpr}: this is not only more convenient, but
-%D also makes it possible to avoid scratch counters, so that we
-%D get fast and fully expandable conversions.
-%D
-%D \starttyping
-%D \def\utfdiv#1{\number\numexpr((#1-128)/256)}
-%D \def\utfmod#1{\number\numexpr((#1)-(256*(\utfdiv{#1})))}
-%D \stoptyping
-%D
-%D So far for the readable alternatives. When using \type
-%D {\numexpr} you should be aware of rather unexpected look
-%D ahead effects. The next implementation uses registers,
-%D which saves tokens and is faster. In this case we gain
-%D some 10\% time.
-
-\chardef \utf@a= 64
-\mathchardef \utf@b= 4096
-\newcount\utf@c\utf@c=262144
-\chardef \utf@d= 192
-\chardef \utf@e= 224
-\chardef \utf@f= 240
-\chardef \utf@g= 128
-\mathchardef \utf@h= 256
-\chardef \utf@i= 127
-\mathchardef \utf@j= 2048
-
-%D The definitions now become:
-%D
-%D \starttyping
-%D \def\utftwounicode#1#2%
-%D {\number\numexpr(\utf@a*(\numexpr (#1-\utf@d))+%
-%D (\numexpr(`#2-\utf@g)))}
-%D
-%D \def\utfthreeunicode#1#2#3%
-%D {\number\numexpr(\utf@b*(\numexpr (#1-\utf@e))+
-%D \utf@a*(\numexpr(`#2-\utf@g))+%
-%D (\numexpr(`#3-\utf@g)))}
-%D
-%D \def\utffourunicode#1#2#3#4%
-%D {\number\numexpr(\utf@c*(\numexpr (#1-\utf@f))+
-%D \utf@b*(\numexpr(`#2-\utf@g))+
-%D \utf@a*(\numexpr(`#3-\utf@g))+%
-%D (\numexpr(`#4-\utf@g)))}
-%D \stoptyping
-%D
-%D And:
-%D
-%D \starttyping
-%D \def\utfdiv#1{\number\numexpr((#1-\utf@g)/\utf@h)}
-%D \def\utfmod#1{\number\numexpr((#1)-(\utf@h*(\utfdiv{#1})))}
-%D \stoptyping
-%D
-%D Depending on the usage, you can rely on parenthesis only:
-%D
-%D \starttyping
-%D \def\utftwounicode#1#2%
-%D {\numexpr(\utf@a*(#1-\utf@d)+%
-%D `#2-\utf@g)}
-%D
-%D \def\utfthreeunicode#1#2#3%
-%D {\numexpr(\utf@b*(#1-\utf@e)+%
-%D \utf@a*(`#2-\utf@g)+%
-%D `#3-\utf@g)}
-%D
-%D \def\utffourunicode#1#2#3#4%
-%D {\numexpr(\utf@c*(#1-\utf@f)+%
-%D \utf@b*(`#2-\utf@g)+%
-%D \utf@a*(`#3-\utf@g)+%
-%D `#4-\utf@g)}
-%D \stoptyping
-
-\def\utfdiv#1{\the\numexpr (#1-\utf@g)/\utf@h \relax}
-\def\utfmod#1{\the\numexpr#1-\utf@h*((#1-\utf@g)/\utf@h)\relax}
-
-%D The next one also handles the zero case well:
-
-\def\utfdiv#1{\the\numexpr\ifcase\numexpr#1\relax0\else (#1-\utf@g)/\utf@h \fi\relax}
-\def\utfmod#1{\the\numexpr\ifcase\numexpr#1\relax0\else#1-\utf@h*((#1-\utf@g)/\utf@h)\fi\relax}
-
-% or
-%
-% \def\utfdiv#1{\ifcase\numexpr#1\relax0\else\the\numexpr(#1-\utf@g)/\utf@h\relax\fi}
-% \def\utfmod#1{\ifcase\numexpr#1\relax0\else\the\numexpr#1-\utf@h*((#1-\utf@g)/\utf@h)\relax\fi}
-
-%D When tracing we also need:
-
-\def\utfvid#1{\the\numexpr(#1-\medcard)/\maxcard\relax}
-
-%D Using the three conversion macros, we can now implement
-%D a few handlers. They all call the general \type
-%D {\unicodechar} conversion macro.
-%D
-%D \starttyping
-%D \def\utftwouniglph#1#2%
-%D {\unicodechar{\utftwounicode {#1}{#2}}}
-%D
-%D \def\utfthreeuniglph#1#2#3%
-%D {\unicodechar{\utfthreeunicode{#1}{#2}{#3}}}
-%D
-%D \def\utffouruniglph#1#2#3#4%
-%D {\unicodechar{\utffourunicode {#1}{#2}{#3}{#4}}}
-%D \stoptyping
-%D
-%D Because the unicode number is used a few times per
-%D conversion, we can expand it once (\type {\the} and \type
-%D {\number} make sure of this). This saves us another 10\%.
-%D
-%D \starttyping
-%D \def\utftwouniglph#1#2%
-%D {\@EA\unicodechar\@EA{\the\utftwounicode{#1}{#2}}}
-%D
-%D \def\utfthreeuniglph#1#2#3%
-%D {\@EA\unicodechar\@EA{\the\utfthreeunicode{#1}{#2}{#3}}}
-%D
-%D \def\utffouruniglph#1#2#3#4%
-%D {\@EA\unicodechar\@EA{\the\utffourunicode{#1}{#2}{#3}{#4}}}
-%D \stoptyping
-%D
-%D We can rewrite these macros to faster alternatives: the
-%D less arguments we pass, the faster the conversion will be,
-%D but at the price of readability. So we have:
-%D
-%D \starttyping
-%D \def\utftwouniglph#1#2%
-%D {\@EA\unicodechar\@EA{\the\numexpr(\utf@a*(#1-\utf@d)+%
-%D `#2-\utf@g)}}
-%D
-%D \def\utfthreeuniglph#1#2#3%
-%D {\@EA\unicodechar\@EA{\the\numexpr(\utf@b*(#1-\utf@e)+%
-%D \utf@a*(`#2-\utf@g)+`#3-\utf@g)}}
-%D
-%D \def\utffouruniglph#1#2#3#4%
-%D {\@EA\unicodechar\@EA{\the\numexpr(\utf@c*(#1-\utf@f)+%
-%D \utf@b*(`#2-\utf@g)+\utf@a*(`#3-\utf@g)+`#4-\utf@g)}}
-%D \stoptyping
-%D
-%D Less parsing, and therefore faster:
-
-% beware, this may change: #1 rawchar (=> `#1 and such, saves tokens)
-
-\def\utftwouniglph#1#2%
- {\@EA\unicodechar\@EA{\the\numexpr\utf@a*(#1-\utf@d)+%
- `#2-\utf@g\relax}}
-
-\def\utfthreeuniglph#1#2#3%
- {\@EA\unicodechar\@EA{\the\numexpr\utf@b*(#1-\utf@e)+%
- \utf@a*(`#2-\utf@g)+`#3-\utf@g\relax}}
-
-\def\utffouruniglph#1#2#3#4%
- {\@EA\unicodechar\@EA{\the\numexpr\utf@c*(#1-\utf@f)+%
- \utf@b*(`#2-\utf@g)+\utf@a*(`#3-\utf@g)+`#4-\utf@g\relax}}
-
-% \def\keeputfcharacters
-% {\def\utftwouniglph ##1##2{\rawcharacter{##1}\string##2}%
-% \def\utfthreeuniglph ##1##2##3{\rawcharacter{##1}\string##2\string##3}%
-% \def\utffouruniglph ##1##2##3##4{\rawcharacter{##1}\string##2\string##3\string##4}}
-
-\def\keeputfcharacters
- {\let\utftwouniglph \rawcharacter
- \let\utfthreeuniglph\rawcharacter
- \let\utffouruniglph \rawcharacter}
-
-\appendtoks \keeputfcharacters \to \everywritestring
-
-% \bgroup
-% \keeputfcharacters
-% \expanded{\index{\XMLflush{whatever}}}
-% \egroup
-
-%D Now we come to the unicode handler itself. We will use a few
-%D constants, which saves us (at least at the time of writing
-%D and testing these macros) another 10\%.
-
-\def\@@univector {univ}
-\def\@@unicommand {unic}
-\def\@@unknownchar{unknownchar}
-
-%D Now comes the nice part: turning codes into glyphs. The
-%D actual conversion does not take place here, but is done by
-%D macros in \type{unic-nnn} files. There we map a range onto
-%D named glyphs, so that they fit well into the rest of
-%D \CONTEXT.
-
-%D \macros
-%D {utfunicodetracer}
-%D
-%D By default, the converter produces a character representation,
-%D but for tracing purposes, you can set a trace option.
-
-\chardef\utfunicodetracer=0
-
-%D \def\TraceUnic#1%
-%D {\chardef\utfunicodetracer#1\relax\enableregime[utf]Ű}
-%D
-%D \starttabulate[|c|c|c|c|c|c|]
-%D \NC option \NC number\NC mapping\NC glyph\NC string\NC example \NC \NR
-%D \NC 0 \NC \NC \NC \star\NC \NC \TraceUnic0\NC \NR
-%D \NC 1 \NC \star \NC \NC \NC \NC \TraceUnic1\NC \NR
-%D \NC 2 \NC \NC \star \NC \NC \NC \TraceUnic2\NC \NR
-%D \NC 3 \NC \star \NC \star \NC \NC \NC \TraceUnic3\NC \NR
-%D \NC 4 \NC \star \NC \NC \star\NC \NC \TraceUnic4\NC \NR
-%D \NC 5 \NC \NC \star \NC \star\NC \NC \TraceUnic5\NC \NR
-%D \NC 6 \NC \star \NC \star \NC \star\NC \NC \TraceUnic6\NC \NR
-%D \NC 7 \NC \NC \NC \NC \star \NC \TraceUnic7\NC \NR
-%D \NC 8 \NC \star \NC \NC \NC \NC \TraceUnic8\NC \NR
-%D \NC otherwise\NC \NC \NC \star\NC \NC \TraceUnic9\NC \NR
-%D \stoptabulate
-
-%D \macros
-%D {unicodechar}
-%D
-%D Next we implement the character handler:
-
-\def\unicodechar
- {\ifcase\utfunicodetracer
- \expandafter\utfunihash \or
- \expandafter\utfunichar \or
- \expandafter\utfunisplit \or
- \expandafter\utfuniboth \or
- \expandafter\utfunihashchar \or
- \expandafter\utfunihashsplit \or
- \expandafter\utfunihashboth \or
- \expandafter\utfuniglyphname \or
- \expandafter\utfunientity \else
- \expandafter\utfunihash
- \fi}
-
-%D \startbuffer
-%D \enableregime[utf] \dostepwiserecurse{0}{8}{1}
-%D {\recurselevel:
-%D \chardef\utfunicodetracer=\recurselevel aap‒noot coördinatie – één
-%D \crlf}
-%D \stopbuffer
-%D
-%D \typebuffer \start \getbuffer \stop
-
-%D \macros
-%D {unicodehexnumber}
-%D
-%D A few auxiliary macros, producing the range||char pair:
-
-\def\unicodepair#1%
- {\utfdiv{#1}:\utfmod{#1}}
-
-\def\unicodenumber#1{\number#1}
-
-\def\unicodehexnumber#1%
- {\ifnum#1>\maxcard
- \expanded{\uchexnumbers{\utfvid{#1}}}%
- \expanded{\uchexnumbers{\utfdiv{\utfdiv{#1}}}}%
- \else
- 00%
- \expanded{\uchexnumbers{\utfdiv{#1}}}%
- \fi
- \expanded{\uchexnumbers{\utfmod{#1}}}}
-
-%D The following macros visualize the unicode character. The
-%D \type {\relax} in front of the \type {-} prevents lookahead
-%D problems; somehow \type {\numexpr} cannot look beyond this
-%D sign, and expects a number.
-
-\ifx\tttf\undefined \let\tttf\relax \fi
-
-\def\utfunichar #1{{\tttf U\low{\tx\unicodenumber{#1}}}}
-\def\utfunisplit #1{{\tttf U\low{\tx\unicodepair{#1}}}}
-\def\utfuniboth #1{{\tttf U\low{\tx\unicodenumber{#1}->\unicodepair{#1}}}}
-\def\utfunientity #1{{\tttf\&\#x\unicodehexnumber{#1};}}
-
-%D The character itself is accessed and typeset by:
-%D
-%D \starttyping
-%D \def\utfunihash#1%
-%D {\executeifdefined{\@@univector\utfdiv{#1}}%
-%D \gobbleoneargument{\utfmod{#1}}}
-%D \stoptyping
-%D
-%D Again, we can provide a faster alternative, because inside
-%D the conditional executer, the argument is expanded twice,
-%D and therefore the calculation done once more than needed.
-%D So, we make sure that the argument is expansion on
-%D forehand. Just to remind you: \type {#1} is the \UNICODE\
-%D number.
-%D
-%D \starttyping
-%D \def\utfunihash#1%
-%D {\@EA\executeifdefined\@EA{\@EA\@@univector\number\utfdiv{#1}}%
-%D {\unknownchar\gobbleoneargument}{\utfmod{#1}}}
-%D \stoptyping
-%D
-%D In order to save calculation time, I decided to change
-%D this definition into:
-
-%D \starttyping
-%D \def\utfunihash#1%
-%D {\@EA\doutfunihash\@EA{\number\utfdiv{#1}}{#1}}
-%D
-%D \def\doutfunihash#1#2%
-%D {\ifcsname\@@univector\number#1\endcsname
-%D \csname\csname\@@univector#1\endcsname{\utfmod{#2}}\endcsname
-%D \else
-%D \unknownchar
-%D \fi}
-%D \stoptyping
-%D
-%D Or leaner and meaner:
-%D
-%D \starttyping
-%D \def\doutfunihash#1#2%
-%D {\csname
-%D \ifcsname\@@univector\number#1\endcsname
-%D \csname\@@univector#1\endcsname{\utfmod{#2}}%
-%D \else
-%D \@@unknownchar
-%D \fi
-%D \endcsname}
-%D \stoptyping
-%D
-%D And finaly it became:
-
-\def\doutfunihash#1#2%
- {\ifcsname\@@univector\number#1\endcsname
- \csname\@@univector#1\endcsname{\utfmod{#2}}%
- \else
- \@@unknownchar
- \fi}
-
-\def\utfunihashglyph#1%
- {\csname\@EA\doutfunihash\@EA{\number\utfdiv{#1}}{#1}\endcsname}
-
-\def\utfunihashcommand
- {\@EAEAEA\string\utfunihashglyph}
-
-%D For practical purposes, we handle the normal \ASCII\
-%D characters here:
-
-\def\utfunihashglyph#1%
- {\csname
- \ifnum#1<\utf@i
- \strippedcsname\unicodeasciicharacter\endcsname{#1}%
- \else
- \@EA\doutfunihash\@EA{\number\utfdiv{#1}}{#1}\endcsname
- \fi}
-
-%D Well, we also want a plug-in mechanism, so we en dup with
-%D a messy:
-
-\def\utfunihashglyph#1%
- {\@EA\doutfunihashglyph\@EA{\number\numexpr\utfdiv{#1}\@EA\relax\@EA}\@EA{\number\utfmod{#1}}{#1}}
-
-% \def\doutfunihashglyph#1#2#3% div mod raw
-% {\csname
-% \ifnum#3<\utf@i
-% \strippedcsname\unicodeasciicharacter\endcsname{#2}%
-% \else\ifcsname\@@unicommand#1\endcsname
-% \@@unicommand#1\endcsname{#2}%
-% \else\ifcsname\@@univector#1\endcsname
-% \csname\@@univector#1\endcsname{#2}\endcsname % watch the nested csname; it's a speed up
-% \else
-% \strippedcsname\unicodeunknowncharacter\endcsname{#2}%
-% \fi\fi\fi}
-%
-% \def\unicodeunknowncharacter#1%
-% {\unknownchar}
-%
-% The next one permits lookahead
-
-\def\doutfunihashglyph#1#2#3% div mod raw
- {\csname utf!\ifnum#3<\utf@i 1\else
- \ifcsname\@@unicommand#1\endcsname2\else
- \ifcsname\@@univector #1\endcsname3\else
- 4\fi\fi\fi !\endcsname{#1}{#2}}
-
-\setvalue{utf!1!}#1{\unicodeasciicharacter} % {#2}
-\setvalue{utf!2!}#1{\csname\@@unicommand#1\endcsname} % {#2}
-\setvalue{utf!3!}#1#2{\csname\csname\@@univector#1\endcsname{#2}\endcsname} % watch the nested csname; it's a speed up
-\setvalue{utf!4!}#1#2{\unicodeunknowncharacter}
-
-\def\unicodeunknowncharacter
- {\unknownchar}
-
-%D With:
-
-\let\unicodeasciicharacter\rawcharacter
-
-%D Commands are defined with:
-
-\def\defineunicodecommand #1 #2% #2{range number}{char number}
- {\setvalue{\@@unicommand#1}##1{#2{#1}{##1}}}
-
-%D For instance:
-%D
-%D \starttyping
-%D \defineutfcommand 81 {\uchar}
-%D \stoptyping
-
-%D Now we can also say:
-
-\let\utfunihash\utfunihashglyph
-
-%D We also need:
-
-\def\utfuniglyphname#1%
- {{\tttf
- \ifnum#1<\utf@i
- \unicodeasciicharacter{#1}%
- \else
- \expandafter\string\csname\doutfunihash{\number\utfdiv{#1}}{#1}\endcsname
- \fi}}
-
-%D The combined presentation is implemented by:
-
-\def\utfunihashchar #1%
- {\utfunihash{#1}\low{\infofont\unicodenumber{#1}}}
-
-\def\utfunihashsplit#1%
- {\utfunihash{#1}\low{\infofont\unicodepair{#1}}}
-
-\def\utfunihashboth #1%
- {\utfunihash{#1}\low{\infofont\unicodenumber{#1}->\unicodepair{#1}}}
-
-%D Unknown characters get a placeholder.
-
-\unexpanded\def\unknownchar % {} prevents problems with arguments
- {{\hbox{\vrule\!!width.5em\!!height1ex\!!depth\zeropoint}}}
-
-%D So far for the conversion macros. The optimizations we
-%D did, brought down the runtime some 50\%, which, given that
-%D the majority of characters will be normal \ASCII\
-%D characters, the penalty of conversion is not that large.
-
-%D \macros
-%D {useunicodevector}
-%D
-%D Since we end up with many encodings, it starts making
-%D sense to postpone loading, so let's start doing this
-%D with \UNICODE.
-
-\def\doifunicodevector#1%
- {\doifdefined{\@@univector#1}}
-
-\def\useunicodevector[#1]%
- {\processcommalist[#1]\douseunicodevector}
-
-\def\douseunicodevector#1%
- {\ifundefined{\@@univector#1}%
- % \readsysfile{\f!unicprefix\threedigits{#1}}
- \readsysfile{\f!unicprefix\doifnumberelse{#1}{\threedigits{#1}}{#1}}
- {\writestatus{unicode}{loading vector #1}}
- {\writestatus{unicode}{unknown vector #1}}%
- \fi}
-
-%D \macros
-%D {startunicodevector}
-%D
-%D A vector roughly looks as follows. By putting the text
-%D inside the name constructor, we prevent problems with
-%D partial expansion in macros and special cases.
-%D
-%D \starttyping
-%D \startunicodevector 0
-%D \ifcase\numexpr(#1-159)\or
-%D \@@unknownchar\or % NO-BREAK SPACE
-%D exclamdown\or
-%D textcent\or
-%D ....\else
-%D \@@unknowncharacter
-%D \fi
-%D \stopunicodevector
-%D \stoptyping
-%D
-%D In vector \type {unix-000} you will find another
-%D optimizations. By using as less tokens as possible, we limit
-%D the time skipping branches in the test, and save upto 20\%
-%D runtime.
-
-\def\startunicodevector #1 #2\stopunicodevector
- {\setgvalue{\@@univector#1}##1{#2}}
-
-%D We define (as a practical example) the utf signal FEFF:
-
-\ifx\zwnbsp\undefined
- \let\zwnbsp\relax % zerowidthnonbreakablespace
-\fi
-
-\startunicodevector 254
- \expandafter\strippedcsname\ifnum#1<255 \unknownchar\else\zwnbsp\fi
-\stopunicodevector
-
-%D Here we provide another auxiliary macro:
-%D
-%D \startbuffer
-%D \unicodeinfoline{196}{Ä}{LATIN CAPITAL LETTER A WITH DIAERESIS}
-%D \unicodeinfoline{197}{Å}{LATIN CAPITAL LETTER A WITH RING ABOVE}
-%D \unicodeinfoline{198}{Æ}{LATIN CAPITAL LETTER AE}
-%D \unicodeinfoline{199}{Ç}{LATIN CAPITAL LETTER C WITH CEDILLA}
-%D \unicodeinfoline{200}{È}{LATIN CAPITAL LETTER E WITH GRAVE}
-%D \unicodeinfoline{201}{É}{LATIN CAPITAL LETTER E WITH ACUTE}
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D \start \enableregime[utf]\getbuffer \stop
-
-\def\unicodeinfoline#1#2#3%
- {\ifnum#1>\utf@g % 128
- \noindent \hbox
- {\hbox to 4em{\tttf\unicodehexnumber{#1}\hss}\quad
- \hbox to 1em{#2\hss}\quad
- \hbox to 9em{\tttf\unicodenumber{#1}->\unicodepair{#1}\hss}\quad
- \hbox to 9em{\tttf\let\utfunihash\utfunihashcommand#2\hss}\quad % tricky
- \lowercase {\tttf#3}}\par
- \fi}
-
-%D The next code permits utf code in hyperlinks:
-
-\def\cleanunicodechar#1{.#1.}
-
-\appendtoks \let\unicodechar\cleanunicodechar \to \everycleanupfeatures
-
-%D We will now hook this mechanism in the existing font
-%D handler. More documentation will follow. Probably, some
-%D features in \type {font-uni.tex} will be generalized
-%D and moved here.
-
-\def\unidiv{0} \def\unimod{0}
-
-\chardef\utfunihashmode=0 % 0=hash glyph / 1=font glyph
-
-\def\utfunifontglyph#1%
- {\xdef\unidiv{\number\utfdiv{#1}}%
- \xdef\unimod{\number\utfmod{#1}}%
- \ifnum#1<\utf@i
- \char\unimod % \unicodeascii\unimod
- \else\ifcsname\@@univector\unidiv\endcsname
- \csname\doutfunihash{\unidiv}{#1}\endcsname
- \else % so, these can be different fonts !
- \unicodeglyph\unidiv\unimod % no \uchar (yet)
- \fi\fi}
-
-\chardef\utfunicommandmode=0 % 1 = hex
-
-\def\unicodecommandchar#1#2%
- {\string\char
- \ifcase\utfunicommandmode
- #1:#2\else\lchexnumbers#1:\lchexnumbers#2%
- \fi}
-
-\def\utfunifontcommand#1%
- {\xdef\unidiv{\number\utfdiv{#1}}%
- \xdef\unimod{\number\utfmod{#1}}%
- \ifnum#1<\utf@i
- \unicodecommandchar\unidiv\unimod
- \else\ifcsname\@@univector\unidiv\endcsname
- \@EA\string\csname\doutfunihash{\unidiv}{#1}\endcsname
- \else
- \unicodecommandchar\unidiv\unimod
- \fi\fi}
-
-\def\utfunihash
- {\ifcase\utfunihashmode
- \@EA\utfunihashglyph
- \else
- \@EA\utfunifontglyph
- \fi}
-
-\def\utfunihushcommand
- {\@EAEAEA\string\utfunihashglyph}
-
-\def\utfunihashcommand
- {\ifcase\utfunihashmode
- \@EA\utfunihushcommand
- \else
- \@EA\utfunifontcommand
- \fi}
-
-%D We can convert from a number to some UTF code with the folowing
-%D conversion macro.
-
-% The first, na\"ive version:
-%
-% \def\numbertoutf#1%
-% {\ifnum#1<128
-% \rawcharacter{#1}%
-% \else\ifnum#1<2048
-% \rawcharacter{\the\numexpr192+#1/64\relax}%
-% \rawcharacter{\the\numexpr128+#1-(#1/64)*64\relax}%
-% \else % 3 bytes
-% \rawcharacter{\the\numexpr224+#1/4096\relax}%
-% \rawcharacter{\the\numexpr128+(#1-(#1/4096)*4096)/128\relax}%
-% \rawcharacter{\the\numexpr128+(#1-(#1/4096)*4096)+(#1-(#1/4096)*4096)/128\relax}%
-% \fi\fi}
-
-% We have to compensate for etex's rounding (thanks to Taco and
-% Nanning) for pointing/sorting this out:
-
-% \def\numbertoutf#1%
-% {\ifnum#1<128
-% \rawcharacter{#1}%
-% \else\ifnum#1<2048
-% \rawcharacter{\the\numexpr192+(#1-32)/64\relax}%
-% \rawcharacter{\the\numexpr128+(#1-((#1-32)/64)*64)\relax}%
-% \else
-% \rawcharacter{\the\numexpr224+(#1-2048)/4096\relax}%
-% \rawcharacter{\the\numexpr128+(#1-(((#1-2048)/4096)*4096)-32)/64\relax}%
-% \rawcharacter{\the\numexpr128+(#1-(((#1-2048)/4096)*4096)-((#1-(((#1-2048)/4096)*4096)-32)/64)*64)\relax}%
-% \fi\fi}
-
-\beginETEX \numexpr
-
-\chardef \utf@a= 64
-\mathchardef \utf@b= 4096
-\newcount\utf@c\utf@c=262144
-\chardef \utf@d= 192
-\chardef \utf@e= 224
-\chardef \utf@f= 240
-\chardef \utf@g= 128
-\mathchardef \utf@h= 256
-\chardef \utf@i= 127
-\mathchardef \utf@j= 2048
-\chardef \utf@k= 32
-
-\def\numbertoutf#1%
- {\ifnum#1<\utf@g
- \rawcharacter{#1}%
- \else\ifnum#1<\utf@j
- \rawcharacter{\the\numexpr\utf@d+(#1-\utf@k)/\utf@a\relax}%
- \rawcharacter{\the\numexpr\utf@g+(#1-((#1-\utf@k)/\utf@a)*\utf@a)\relax}%
- \else
- \rawcharacter{\the\numexpr\utf@e+(#1-\utf@j)/\utf@b\relax}%
- \rawcharacter{\the\numexpr\utf@g+(#1-(((#1-\utf@j)/\utf@b)*\utf@b)-\utf@k)/\utf@a\relax}%
- \rawcharacter{\the\numexpr\utf@g+(#1-(((#1-\utf@j)/\utf@b)*\utf@b)-((#1-(((#1-\utf@j)/\utf@b)*\utf@b)-\utf@k)/\utf@a)*\utf@a)\relax}%
- \fi\fi}
-
-\endETEX
-
-\beginTEX
-
-\def\numbertoutf#1%
- {[\number#1]}
-
-\endTEX
-
-\def\uchartoutf#1#2%
- {\expandafter\numbertoutf\expandafter{\the\numexpr#1*\utf@h+#2\relax}}
-
-%D Here is a mapping trick. By mapping the tex specific characters to
-%D private ones, we can prevent problems with utility files.
-
-\defineunicodecommand{240} {\doprivateunicodechar}
-
-\def\doprivateunicodechar#1#2{\char#2\relax}
-
-\def\registerprivateunicodechar#1 {\letvalue{puc::\number#1}\relax}
-
-\registerprivateunicodechar `\%
-\registerprivateunicodechar `\$
-\registerprivateunicodechar `\{
-\registerprivateunicodechar `\}
-\registerprivateunicodechar `\~
-\registerprivateunicodechar `\_
-\registerprivateunicodechar `\^
-\registerprivateunicodechar `\#
-
-\def\numbertoutp#1{\numbertoutf{\the\numexpr#1\ifcsname puc::\number#1\endcsname+"F000\fi\relax}}
-
-%D In the \XML\ expander we will do:
-%D
-%D \starttyping
-%D \def\getXMLhexcharacter##1{\numbertoutp{"##1}}%
-%D \def\getXMLdeccharacter##1{\numbertoutp {##1}}%
-%D \stoptyping
-
-%D Goodies:
-
-\fetchruntimecommand \showunicodevector {\f!unicprefix\s!run}
-\fetchruntimecommand \showunicodetable {\f!unicprefix\s!run}
-
-%D Well, let's at least preload a few familiar ones. Here we
-%D also load the \UTF\ regime.
-
-\useunicodevector[0,1,2,3,4,5,30,31,32,33,34,37,39,251]
-\useunicodevector[cjk]
-
-\useregime[utf]
-
-% 31, text mem usage first
-
-\protect \endinput
-
-\unprotect
-
diff --git a/Master/texmf-dist/tex/context/base/unic-run.tex b/Master/texmf-dist/tex/context/base/unic-run.mkii
index b8e154fd45d..b8e154fd45d 100644
--- a/Master/texmf-dist/tex/context/base/unic-run.tex
+++ b/Master/texmf-dist/tex/context/base/unic-run.mkii
diff --git a/Master/texmf-dist/tex/context/base/verb-c.tex b/Master/texmf-dist/tex/context/base/verb-c.mkii
index d2f708a8d7f..1ecb0afc2b5 100644
--- a/Master/texmf-dist/tex/context/base/verb-c.tex
+++ b/Master/texmf-dist/tex/context/base/verb-c.mkii
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Support Macros / Pretty C Verbatim}
+\writestatus{loading}{ConTeXt Verbatim Macros / Pretty C Verbatim}
% HH:
%
diff --git a/Master/texmf-dist/tex/context/base/verb-eif.tex b/Master/texmf-dist/tex/context/base/verb-eif.mkii
index 16ee611e1e2..5904abc6e54 100644
--- a/Master/texmf-dist/tex/context/base/verb-eif.tex
+++ b/Master/texmf-dist/tex/context/base/verb-eif.mkii
@@ -8,13 +8,13 @@
%D copyright={Berend de Boer \& Hans Hagen}]
%C
%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
% This module will be cleaned up a bit in the process of more
% flexible verbatim options.
-\writestatus{loading}{Context Support Macros / Pretty EIFFEL Verbatim}
+\writestatus{loading}{ConTeXt Verbatim Macros / Pretty EIFFEL Verbatim}
%D \startbuffer
%D \startEIFFEL
@@ -32,7 +32,7 @@
%D
%D end
%D \stopEIFFEL
-%D \stopbuffer
+%D \stopbuffer
%D
%D
%D If a variable in a comment is quoted with `..', it is typeset
@@ -41,18 +41,18 @@
%D \startbuffer
%D \startEIFFEL
%D class TEST
-%D
+%D
%D feature
-%D
+%D
%D say (something: STRING) is
%D -- say `something' to stdout
%D do
%D print (something)
%D end
-%D
+%D
%D end -- class TEST
%D \stopEIFFEL
-%D \stopbuffer
+%D \stopbuffer
%D
%D
%D Recommended, OOSC2 style setting is:
@@ -71,7 +71,7 @@
%D \EIFFEL\ has only the one line comment sequence \type{--}.
\gdef\EIFsetspecials%
- {\PLsetspecials
+ {\PLsetspecials
\setpretty`\#=32
\setpretty`\{=33 \setpretty`\}=33
\setpretty`\[=33 \setpretty`\]=33 \setpretty`\(=33 \setpretty`\)=33
@@ -80,7 +80,7 @@
\setpretty`\==33 \setpretty`\~=33 \setpretty`\<=33 \setpretty`\>=33
\setpretty`\-=33 \setpretty`\+=33 \setpretty`\/=33 \setpretty`\*=33
\setpretty`\^=33
- \setpretty`\%=41 \setpretty`\-=45
+ \setpretty`\%=41 \setpretty`\-=45
\setpretty`\`=81 \setpretty`\'=82 }
\gdef\EIFsethandlers%
@@ -119,7 +119,7 @@
{\endPLtypesix
\ifinPLcomment
\getpretty{#1}%
- \else
+ \else
{\prettynaturalfont\/%
\beginofpretty[\!!prettythree]\getpretty{#1}\endofpretty}%
\fi}
@@ -208,4 +208,4 @@
\useprettyidentifiers \EIFvariables \EIFsetspecials
not-yet-defined
-\protect \endinput
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/verb-ini.tex b/Master/texmf-dist/tex/context/base/verb-ini.mkii
index e30c9ecfe8f..4726d0eace4 100644
--- a/Master/texmf-dist/tex/context/base/verb-ini.tex
+++ b/Master/texmf-dist/tex/context/base/verb-ini.mkii
@@ -41,7 +41,7 @@
%D \TEX\ supposed to do when it encounters a \type{$} or an
%D \type{#}? This module deals with these matters.
-\writestatus{loading}{Context Verbatim Macros / Initialization}
+\writestatus{loading}{ConTeXt Verbatim Macros / Initialization}
%D The verbatim environment has some features, like coloring
%D \TEX\ text, seldom found in other environments. Especially
@@ -1127,11 +1127,6 @@
%
% \MPxy{word}
-\beginETEX \scantokens
-
-%\def\naturaltextext#1#2\relax
-% {\bgroup\prettynaturalfont{\restorecatcodes\scantokens{\ignorespaces#2}}\egroup}
-
\def\naturaltextext#1\relax
{\bgroup
\prettynaturalfont{\restorecatcodes\scantokens{\ignorespaces#1}}%
@@ -1145,15 +1140,6 @@
\prettynaturalfont{\scantokens\expandafter{\ascii}\ifhmode\unskip\fi}%
\egroup}
-\endETEX
-
-\beginTEX
-
-\def\naturaltextext
- {\disableprettynow}
-
-\endTEX
-
\installnewpretty N \naturaltextext
%D When seen in action this gives:
diff --git a/Master/texmf-dist/tex/context/base/verb-js.tex b/Master/texmf-dist/tex/context/base/verb-js.mkii
index e8c2e6b5dc0..3d1b69f8b7d 100644
--- a/Master/texmf-dist/tex/context/base/verb-js.tex
+++ b/Master/texmf-dist/tex/context/base/verb-js.mkii
@@ -8,26 +8,26 @@
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
%C
%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
-\writestatus{loading}{Context Support Macros / Pretty JavaScript Verbatim}
+\writestatus{loading}{ConTeXt Verbatim Macros / Pretty JavaScript Verbatim}
%D In \CONTEXT\ we support \JAVASCRIPT\ inclusion in \PDF\
%D documents and thereby enter the field of authoring. Of
%D course we also want to pretty print such scripts, that look
-%D like:
-%D
+%D like:
+%D
%D \startJS
-%D alfa = beta*2 ; // both alfa and beta are numbers // indeed
+%D alfa = beta*2 ; // both alfa and beta are numbers // indeed
%D if (odd(alfa))
-%D { do_something() }
+%D { do_something() }
%D else
%D { do_nothing() } /* As we can see /* in this example */ there
%D how_about(alfa) ; is no fi needed. Also no semicolons are
%D or_about(beta) ; needed after a right brace. */
%D \stopJS
-%D
+%D
%D Because \JAVASCRIPT\ looks much like \PERL, we will use
%D a slightly adapted \PERL\ visualization. First we load the
%D \PERL\ module:
@@ -168,4 +168,4 @@
\useprettyidentifiers \JSvariables \JSsetspecials
not-yet-defined
-\protect \endinput
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/verb-jv.tex b/Master/texmf-dist/tex/context/base/verb-jv.mkii
index d55394d2cb1..197b37ee706 100644
--- a/Master/texmf-dist/tex/context/base/verb-jv.tex
+++ b/Master/texmf-dist/tex/context/base/verb-jv.mkii
@@ -8,19 +8,19 @@
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
%C
%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
-\writestatus{loading}{Context Support Macros / Pretty Java Verbatim}
+\writestatus{loading}{ConTeXt Verbatim Macros / Pretty Java Verbatim}
%D This module differs from the \JAVASCRIPT\ driver in its
%D handling of comments. We also need a few more handlers: one
%D for \type {//} and \type {/*} and one for \type {*/} as
-%D well as the \JAVA doc trigger \type {/**}.
+%D well as the \JAVA doc trigger \type {/**}.
%D We build this driver on top of the \PERL\ one. Since this
-%D driver looks much like the \JAVASCRIPT\ one, we don't
-%D comment it extensively.
+%D driver looks much like the \JAVASCRIPT\ one, we don't
+%D comment it extensively.
\ifx\undefined\setupprettyPLtype \input verb-pl \relax \fi
@@ -32,14 +32,14 @@
{\PLsetspecials
\setpretty`\#=32
\setpretty`\%=41
- \setpretty`\-=45
+ \setpretty`\-=45
\setpretty`\/=43
\setpretty`\*=44 }
\gdef\JVsethandlers
{\PLsethandlers
\installprettyhandler 43 \JVtypefourthree
- \installprettyhandler 44 \JVtypefourfour
+ \installprettyhandler 44 \JVtypefourfour
\installprettyhandler 45 \JVtypefourfive }
\gdef\JVsetcontrols
@@ -128,7 +128,7 @@
\global\advance\JVcommentlevel -1
\ifcase\JVcommentlevel \global\inPLcommentfalse \fi
\else
- \ifPLdocdone
+ \ifPLdocdone
\getpretty{#1}%
\else
\beginofpretty[\!!prettyone]\getpretty{#1}\endofpretty
@@ -150,7 +150,7 @@
\expandafter#2%
\fi}
-\gdef\JVtypefourfive % permit - in javadoc @tags
+\gdef\JVtypefourfive % permit - in javadoc @tags
{\ifinPLdoc
\@EA\PLtypesixtwo
\else
@@ -164,35 +164,35 @@
int interface long native new null package private protected
public return short static strictfp super switch synchronized
this throw throws transient true try void volatile while
-
+
\useprettyidentifiers \JVvariables \JVsetspecials
- @author @docRoot @deprecated @exception @inheritDoc @link
- @linkplain @param @return @see @serial @serialData @serialField
- @since @throws @value @version
-
-%D The \JAVA doc feature was requested by Robert F.~Beeger,
-%D who also provided this test class:
-%D
-%D \startJV
+ @author @docRoot @deprecated @exception @inheritDoc @link
+ @linkplain @param @return @see @serial @serialData @serialField
+ @since @throws @value @version
+
+%D The \JAVA doc feature was requested by Robert F.~Beeger,
+%D who also provided this test class:
+%D
+%D \startJV
%D package de.jwamalpha.handling.web.rbdipl;
-%D
+%D
%D import java.io.IOException;
%D import java.io.PrintWriter;
%D import javax.servlet.http.HttpServlet;
%D import javax.servlet.http.HttpServletRequest;
%D import javax.servlet.http.HttpServletResponse;
%D import javax.servlet.ServletException;
-%D
+%D
%D /**
%D * The simple login servlet
%D *
%D * @author Robert F. Beeger
%D * @version 1.0
%D */
-%D
+%D
%D public class LoginServlet extends HttpServlet
%D {
-%D //
+%D //
%D // public interface
%D //
%D /**
@@ -217,6 +217,6 @@
%D writer.flush();
%D }
%D }
-%D \stopJV
+%D \stopJV
-\protect \endinput
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/verb-lua.lua b/Master/texmf-dist/tex/context/base/verb-lua.lua
deleted file mode 100644
index 78d5f2a2c1f..00000000000
--- a/Master/texmf-dist/tex/context/base/verb-lua.lua
+++ /dev/null
@@ -1,212 +0,0 @@
--- filename : type-lua.lua
--- comment : companion to core-buf.tex
--- author : Hans Hagen, PRAGMA-ADE, Hasselt NL
--- copyright: PRAGMA ADE / ConTeXt Development Team
--- license : see context related readme files
-
--- BROKEN : result is now table
-
-
-
-if not buffers then buffers = { } end
-if not buffers.visualizers then buffers.visualizers = { } end
-if not buffers.visualizers.lua then buffers.visualizers.lua = { } end
-
-buffers.visualizers.lua.identifiers = { }
-
--- borrowed from scite
-
-buffers.visualizers.lua.identifiers.core = {
- "and", "break", "do", "else", "elseif", "end", "false", "for", "function",
- "if", "in", "local", "nil", "not", "or", "repeat", "return", "then",
- "true", "until", "while"
-}
-
-buffers.visualizers.lua.identifiers.base = {
- "assert", "collectgarbage", "dofile", "error", "gcinfo", "loadfile",
- "loadstring", "print", "rawget", "rawset", "require", "tonumber",
- "tostring", "type", "unpack",
-}
-
-buffers.visualizers.lua.identifiers.five = {
- "_G", "getfenv", "getmetatable", "ipairs", "loadlib", "next", "pairs",
- "pcall", "rawequal", "setfenv", "setmetatable", "xpcall", "string", "table",
- "math", "coroutine", "io", "os", "debug", "load", "module", "select"
-}
-
-buffers.visualizers.lua.identifiers.libs = {
- -- coroutine
- "coroutine.create", "coroutine.resume", "coroutine.status", "coroutine.wrap",
- "coroutine.yield", "coroutine.running",
- -- package
- "package.cpath", "package.loaded", "package.loadlib", "package.path",
- -- io
- "io.close", "io.flush", "io.input", "io.lines", "io.open", "io.output",
- "io.read", "io.tmpfile", "io.type", "io.write", "io.stdin", "io.stdout",
- "io.stderr", "io.popen",
- -- math
- "math.abs", "math.acos", "math.asin", "math.atan", "math.atan2", "math.ceil",
- "math.cos", "math.deg", "math.exp", "math.floor math.", "math.ldexp",
- "math.log", "math.log10", "math.max", "math.min math.mod math.pi", "math.pow",
- "math.rad", "math.random", "math.randomseed", "math.sin", "math.sqrt",
- "math.tan", "math.cosh", "math.fmod", "math.modf", "math.sinh", "math.tanh",
- "math.huge",
- -- string
- "string.byte", "string.char", "string.dump", "string.find", "string.len",
- "string.lower", "string.rep", "string.sub", "string.upper", "string.format",
- "string.gfind", "string.gsub", "string.gmatch", "string.match", "string.reverse",
- -- table
- "table.maxn", "table.concat", "table.foreach", "table.foreachi", "table.getn",
- "table.sort", "table.insert", "table.remove", "table.setn",
- -- os
- "os.clock", "os.date", "os.difftime", "os.execute", "os.exit", "os.getenv",
- "os.remove", "os.rename", "os.setlocale", "os.time", "os.tmpname",
- -- package
- "package.preload", "package.seeall"
-}
-
-buffers.visualizers.lua.words = { }
-
-for k,v in pairs(buffers.visualizers.lua.identifiers) do
- for _,w in pairs(v) do
- buffers.visualizers.lua.words[w] = k
- end
-end
-
-buffers.visualizers.lua.styles = { }
-
-buffers.visualizers.lua.styles.core = ""
-buffers.visualizers.lua.styles.base = "\\sl "
-buffers.visualizers.lua.styles.five = "\\sl "
-buffers.visualizers.lua.styles.libs = "\\sl "
-
--- btex .. etex
-
-buffers.visualizers.lua.colors = {
- "prettyone",
- "prettytwo",
- "prettythree",
- "prettyfour",
-}
-
-buffers.visualizers.lua.states = {
- ['1']=1, ['2']=1, ['3']=1, ['4']=1, ['5']=1, ['6']=1, ['7']=1, ['8']=1, ['9']=1, ['0']=1,
- ['--']=4,
- ['"']=3, ["'"]=3,
- ['+']=1, ['-']=1, ['*']=1, ['/']=1, ['%']=1, ['^']=1,
-}
-
-buffers.visualizers.lua.options = { }
-
-buffers.visualizers.lua.options.colorize_strings = false
-buffers.visualizers.lua.options.colorize_comments = false
-
-function buffers.flush_lua_word(state, word, result)
- if #word>0 then
- local id = buffers.visualizers.lua.words[word]
- if id then
- state, result = buffers.change_state(2, state, result)
- if buffers.visualizers.lua.styles[id] then
- state, result = buffers.finish_state(state,result .. buffers.visualizers.lua.styles[id] .. word)
- else
- state, result = buffers.finish_state(state,result .. word)
- end
- return state, result
- else
- state, result = buffers.finish_state(state,result)
- return state, result .. buffers.escaped(word) -- cmp mp
- end
- else
- state, result = buffers.finish_state(state,result)
- return state, result
- end
-end
-
-buffers.visualizers.lua.states.incomment = false
-
--- to be sped up
-
-function buffers.visualizers.lua.flush_line(str, nested)
- local result, state = { }, 0
- local instr, inesc, incom = false, false, false
- local c, p
- local sb, ss, sf = string.byte, string.sub, string.find
- local code, comment
---~ buffers.currentcolors = buffers.visualizers.lua.colors
---~ if sf(str,"^%-%-%[") then
---~ buffers.visualizers.lua.states.incomment = true
---~ code, comment, incom = "", str, true
---~ elseif sf(str,"^%]%-%-") then
---~ buffers.visualizers.lua.states.incomment = false
---~ code, comment, incom = "", str, true
---~ elseif buffers.visualizers.lua.states.incomment then
---~ code, comment, incom = "", str, true
---~ else
---~ code, comment = string.match(str,"^(.-)%-%-(.*)$")
---~ if not code then
---~ code, comment = str, ""
---~ end
---~ end
---~ -- bla bla1 bla.bla
---~ for c in string.utfcharacters(code) do
---~ if instr then
---~ if c == s then
---~ if inesc then
---~ result = result .. "\\char" .. sb(c) .. " "
---~ inesc = false
---~ else
---~ state, result = buffers.change_state(buffers.visualizers.lua.states[c], state, result)
---~ instr = false
---~ result = result .. "\\char" .. sb(c) .. " "
---~ state, result = buffers.finish_state(state,result)
---~ end
---~ elseif c == "\\" then
---~ inesc = not inesc
---~ result = result .. buffers.escaped_chr(c)
---~ else
---~ inesc = false
---~ result = result .. buffers.escaped_chr(c)
---~ end
---~ elseif sf(c,"^([\'\"])$") then
---~ s, instr = c, true
---~ state, result = buffers.change_state(buffers.visualizers.lua.states[c], state, result)
---~ result = result .. "\\char" .. sb(c) .. " "
---~ if not buffers.visualizers.lua.options.colorize_strings then
---~ state, result = buffers.finish_state(state,result)
---~ end
---~ elseif c == " " then
---~ state, result = buffers.flush_lua_word(state, word, result)
---~ word = ""
---~ result = result .. "\\obs "
---~ elseif sf(c,"^[%a]$") then
---~ state, result = buffers.finish_state(state,result)
---~ word = word .. c
---~ elseif (#word > 1) and sf(c,"^[%d%.%_]$") then
---~ word = word .. c
---~ else
---~ state, result = buffers.flush_lua_word(state, word, result)
---~ word = ""
---~ state, result = buffers.change_state(buffers.visualizers.lua.states[c], state, result)
---~ result = result .. "\\char" .. sb(c) .. " "
---~ instr = (c == '"')
---~ end
---~ end
---~ state, result = buffers.flush_lua_word(state, word, result)
---~ if comment ~= "" then
---~ state, result = buffers.change_state(buffers.visualizers.lua.states['--'], state, result)
---~ if not incom then
---~ result = result .. buffers.escaped("--")
---~ end
---~ if buffers.visualizers.lua.options.colorize_comments then
---~ state, result = buffers.finish_state(state,result)
---~ result = result .. buffers.escaped(comment)
---~ else
---~ result = result .. buffers.escaped(comment)
---~ state, result = buffers.finish_state(state,result)
---~ end
---~ else
---~ state, result = buffers.finish_state(state,result)
---~ end
---~ tex.sprint(tex.ctxcatcodes,result)
- return "not yet finished"
-end
diff --git a/Master/texmf-dist/tex/context/base/verb-mp.tex b/Master/texmf-dist/tex/context/base/verb-mp.mkii
index 318da96bf21..7affaf0c4c4 100644
--- a/Master/texmf-dist/tex/context/base/verb-mp.tex
+++ b/Master/texmf-dist/tex/context/base/verb-mp.mkii
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Support Macros / Pretty METAPOST Verbatim}
+\writestatus{loading}{ConTeXt Verbatim Macros / Pretty METAPOST Verbatim}
% bug: in mp-char.mp the char should not be highlighted
diff --git a/Master/texmf-dist/tex/context/base/verb-pas.tex b/Master/texmf-dist/tex/context/base/verb-pas.mkii
index b7b04170039..0c9850abfd9 100644
--- a/Master/texmf-dist/tex/context/base/verb-pas.tex
+++ b/Master/texmf-dist/tex/context/base/verb-pas.mkii
@@ -14,7 +14,7 @@
% This module will be cleaned up a bit in the process of more
% flexible verbatim options.
-\writestatus{loading}{Context Support Macros / Pretty PASCAL Verbatim}
+\writestatus{loading}{ConTeXt Verbatim Macros / Pretty PASCAL Verbatim}
%D Typeset Pascal(-like) code:
%D
@@ -87,14 +87,14 @@
\PASsetspecials
\PLsetdiagnostics}
-
% the // and /* comments
\gdef\PAStypefourthree%
{\handlenextnextpretty\doPAStypefourthree\PLtypefourtwo}
\gdef\doPAStypefourthree#1#2%
- {\ifinPLcomment
+ {\endPLtypesix
+ \ifinPLcomment
\let\next=\PLtypefourtwo
\else
\ifinPLsingle
diff --git a/Master/texmf-dist/tex/context/base/verb-pl.tex b/Master/texmf-dist/tex/context/base/verb-pl.mkii
index cbe82d49fd8..47ce9a54f5a 100644
--- a/Master/texmf-dist/tex/context/base/verb-pl.tex
+++ b/Master/texmf-dist/tex/context/base/verb-pl.mkii
@@ -8,46 +8,46 @@
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
%C
%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
-\writestatus{loading}{Context Support Macros / Pretty PERL Verbatim}
+\writestatus{loading}{ConTeXt Verbatim Macros / Pretty PERL Verbatim}
-%D When I rewrote \TEXUTIL\ in \PERL\ I decided to write a
-%D pretty \PERL\ interpreter too. In fact, this was the main
-%D reason for rewriting the pretty verbatim mechanisms to
-%D handle more that \TEX.
+%D When I rewrote \TEXUTIL\ in \PERL\ I decided to write a
+%D pretty \PERL\ interpreter too. In fact, this was the main
+%D reason for rewriting the pretty verbatim mechanisms to
+%D handle more that \TEX.
%D
-%D \startPL
+%D \startPL
%D $alfa = $beta{gamma};
-%D if ($alfa="delta")
+%D if ($alfa="delta")
%D { print "epsilon" }
%D \stopPL
-%D
-%D When looking at the macros, watch the \type{\doglobal}'s!
-%D They're something \CONTEXT\ specific.
+%D
+%D When looking at the macros, watch the \type{\doglobal}'s!
+%D They're something \CONTEXT\ specific.
\unprotect
%D \macros
%D {prettyPLvariables}
%D
-%D Identifiers and system variables get a special treatment.
-%D One can disable this option for the variables by resetting
+%D Identifiers and system variables get a special treatment.
+%D One can disable this option for the variables by resetting
%D the next switch.
-\doglobal\newif\ifprettyPLvariables
+\doglobal\newif\ifprettyPLvariables
\global\prettyPLvariablestrue
-%D As said before, the global assignment is needed in
-%D \CONTEXT\ (for once||only loading on demand).
+%D As said before, the global assignment is needed in
+%D \CONTEXT\ (for once||only loading on demand).
\doglobal\newif\ifinPLsingle
\doglobal\newif\ifinPLdouble
\doglobal\newif\ifinPLcomment
-\doglobal\newif\ifinPLdoc % only used in java filter
-\doglobal\newif\ifPLdocdone % only used in java filter
+\doglobal\newif\ifinPLdoc % only used in java filter
+\doglobal\newif\ifPLdocdone % only used in java filter
\doglobal\newif\ifPLverbose
\newcount\PLverboseskipped
@@ -56,7 +56,7 @@
{\ifnum\PLverboseskipped>0
\obeyedspace
\advance\PLverboseskipped -1
- \@EA\PLverbosecorrection
+ \@EA\PLverbosecorrection
\fi}
\gdef\PLsetcontrols%
@@ -73,7 +73,7 @@
\global\inPLcommentfalse}%
\def\obeyedline%
{\PLverbosefalse
- \PLverboseskipped=0
+ \PLverboseskipped=0
\PLdocdonefalse
\oldobeyedline}%
\let\obeytabs=\ignoretabs}
@@ -189,7 +189,7 @@
% \beginofpretty[\!!prettytwo]\getpretty{#1}\endofpretty
% \fi\fi\fi}
-\gdef\PLtypetwo#1%
+\gdef\PLtypetwo#1%
{\endPLtypesix
\ifinPLdoc
\xdef\PLsequence{\PLsequence\getpretty{#1}}%
@@ -352,7 +352,7 @@
\global\let\PLprefix\empty
\fi}
-\gdef\doendPLtypesix#1%
+\gdef\doendPLtypesix#1%
{\doifprettyidentifierelse{\PLsequence}{\PLverboses}
{\PLverbosetrue\PLverboseskipped=3 }
{\doifprettyidentifierelse{\PLsequence}{\PLidentifiers}
@@ -369,7 +369,7 @@
\PLsequence
\fi}}}
-\gdef\doendPLtypesixvar#1%
+\gdef\doendPLtypesixvar#1%
{\doifprettyidentifierelse{\PLprefix\PLsequence}{\PLvariables}
{\beginofpretty[#1]%
{\prettyvariablefont\PLsequence}%
@@ -398,7 +398,7 @@
% \xdef\PLsequence{\PLsequence\getpretty{#1}}%
% \fi\fi\fi}
-\gdef\PLtypesixtwo#1%
+\gdef\PLtypesixtwo#1%
{\ifinPLdoc
\xdef\PLsequence{\PLsequence\getpretty{#1}}%
\else\ifinPLcomment
@@ -468,7 +468,7 @@
\else
\global\inPLcommenttrue
\PLverbosecorrection
- \ifnaturaltextext % non tested yet
+ \ifnaturaltextext % non tested yet
\let\next\naturaltextext
\else
\def\next{\beginofpretty[\!!prettythree]\getpretty{#1}\endofpretty}%
@@ -537,11 +537,11 @@
&GetOptions
%D A funny hack. When prefixes by \type{TEX}, a \type{\csname}
-%D is typeset as \TEX\ sequence.
+%D is typeset as \TEX\ sequence.
\useprettyidentifiers \PLverboses \PLsetspecials
TEX
-\protect
+\protect
-\endinput
+\endinput
diff --git a/Master/texmf-dist/tex/context/base/verb-raw.tex b/Master/texmf-dist/tex/context/base/verb-raw.mkii
index 32903db7736..32903db7736 100644
--- a/Master/texmf-dist/tex/context/base/verb-raw.tex
+++ b/Master/texmf-dist/tex/context/base/verb-raw.mkii
diff --git a/Master/texmf-dist/tex/context/base/verb-sql.tex b/Master/texmf-dist/tex/context/base/verb-sql.mkii
index ddac5cd25e1..a00841d7341 100644
--- a/Master/texmf-dist/tex/context/base/verb-sql.tex
+++ b/Master/texmf-dist/tex/context/base/verb-sql.mkii
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Support Macros / Pretty SQL Verbatim}
+\writestatus{loading}{ConTeXt Verbatim Macros / Pretty SQL Verbatim}
%D \quotation {He, I want pretty pretting too!}, Berend cried out
%D one day, \quotation {But now for \SQL.}. This query language
diff --git a/Master/texmf-dist/tex/context/base/verb-tex.lua b/Master/texmf-dist/tex/context/base/verb-tex.lua
deleted file mode 100644
index dbb483ad5df..00000000000
--- a/Master/texmf-dist/tex/context/base/verb-tex.lua
+++ /dev/null
@@ -1,122 +0,0 @@
--- filename : type-tex.lua
--- comment : companion to core-buf.tex
--- author : Hans Hagen, PRAGMA-ADE, Hasselt NL
--- copyright: PRAGMA ADE / ConTeXt Development Team
--- license : see context related readme files
-
-if not buffers then buffers = { } end
-if not buffers.visualizers then buffers.visualizers = { } end
-if not buffers.visualizers.tex then buffers.visualizers.tex = { } end
-
-buffers.visualizers.tex.colors = {
- "prettytwo",
- "prettyone",
- "prettythree",
- "prettyfour"
-}
-
-buffers.visualizers.tex.states = {
- ['$']=2, ['{']=2, ['}']=2,
- ['[']=3, [']']=3, ['(']=3, [')']=3, ['<']=3, ['>']=3, ['#']=3, ['=']=3, ['"']=3,
- ['/']=4, ['^']=4, ['_']=4, ['-']=4, ['&']=4, ['+']=4, ["'"]=4, ['`']=4, ['|']=4, ['%']=4
-}
-
--- using a table to store the result does not make sense here (actually,
--- it's substantial slower since we're flushing lines on the fly)
---
--- we could use a special catcode regime: only \ { }
-
-function buffers.visualizers.tex.flush_line(str,nested)
- local result, state = { }, 0
- local first, escaping = false, false
- local byte, find = utf.byte, utf.find
- local finish, change = buffers.finish_state, buffers.change_state
- buffers.currentcolors = buffers.visualizers.tex.colors
- for c in string.utfcharacters(str) do
- if c == " " then
- if escaping then
- result[#result+1] = " "
- else
- state = finish(state, result)
- result[#result+1] = "\\obs "
- end
- escaping, first = false, false
- elseif c == "\t" then
- if escaping then
- result[#result+1] = " "
- else
- state = finish(state, result)
- result[#result+1] = "\\obs "
- end
- if buffers.visualizers.enabletab then
- result[#result+1] = string.rep("\\obs ",i%buffers.visualizers.tablength)
- end
- escaping, first = false, false
- elseif buffers.visualizers.enableescape and (c == buffers.visualizers.escapetoken) then
- if escaping then
- if first then
- if find(c,"^[%a%!%?%@]$") then
- result[#result+1] =c
- else
- result[#result+1] ="\\char" .. byte(c) .. " "
- end
- first = false
- else
- result[#result+1] = "\\"
- first = true
- end
- else
- state = finish(state, result)
- result[#result+1] = "\\"
- escaping, first = true, true
- end
- elseif escaping then
- if find(c,"^[%a%!%?%@]$") then
- result[#result+1] = c
- else
- result[#result+1] = "\\char" .. byte(c) .. " "
- end
- first = false
- elseif first then
- state = 1
- if find(c,"^[%a%!%?%@]$") then
- result[#result+1] = c
- else
- result[#result+1] = "\\char" .. byte(c) .. " "
- state = finish(state, result)
- end
- first = false
- elseif state == 1 then
- if find(c,"^[%a%!%?%@]$") then
- result[#result+1] = c
- first = false
- elseif c == "\\" then
- state = change(1, state, result)
- result[#result+1] = "\\char" .. byte(c) .. " "
- first = true
- else
- state = change(buffers.visualizers.tex.states[c], state, result)
- if state == 0 then
- result[#result+1] = c
- else
- result[#result+1] = "\\char" .. byte(c) .. " "
- end
- first = false
- end
- elseif c == "\\" then
- first = true
- state = change(1, state, result)
- result[#result+1] = "\\char" .. byte(c) .. " "
- else
- state = change(buffers.visualizers.tex.states[c], state, result)
- if state == 0 then
- result[#result+1] = c
- else
- result[#result+1] = "\\char" .. byte(c) .. " "
- end
- first = false
- end
- end
- state = finish(state, result)
- buffers.flush_result(result,nested)
-end
diff --git a/Master/texmf-dist/tex/context/base/verb-tex.tex b/Master/texmf-dist/tex/context/base/verb-tex.mkii
index 29f4deea393..75e99fcefde 100644
--- a/Master/texmf-dist/tex/context/base/verb-tex.tex
+++ b/Master/texmf-dist/tex/context/base/verb-tex.mkii
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Support Macros / Pretty TEX Verbatim}
+\writestatus{loading}{ConTeXt Verbatim Macros / Pretty TEX Verbatim}
%D The original module \type{supp-ver} had the \TEX\
%D interpreter built in. The current implementation is more
@@ -275,8 +275,6 @@
% {\disableprettyafterwards % only when enabled of course
% \ifnewpretty\expandafter\handlenewpretty\fi\TEXtypethree}
-\beginETEX \scantokens
-
\long\gdef\naturalTEXtext#1#2\relax% local alternative for \naturaltextext
{\convertargument#2\to\ascii
\doifinstringelse{\letterpercent}{\ascii}
@@ -285,8 +283,6 @@
{\long\def\next{\bgroup\prettynaturalfont{\restorecatcodes\scantokens{\ignorespaces#2}}\egroup}}%
\next}
-\endETEX
-
\gdef\TEXtypezero
{\ifnaturaltextext
\expandafter\naturalTEXtext
diff --git a/Master/texmf-dist/tex/context/base/verb-xml.tex b/Master/texmf-dist/tex/context/base/verb-xml.mkii
index 7b023731529..dbf6635f655 100644
--- a/Master/texmf-dist/tex/context/base/verb-xml.tex
+++ b/Master/texmf-dist/tex/context/base/verb-xml.mkii
@@ -14,7 +14,7 @@
% This module will be cleaned up a bit in the process of more
% flexible verbatim options.
-\writestatus{loading}{Context Support Macros / Pretty XML Verbatim}
+\writestatus{loading}{ConTeXt Verbatim Macros / Pretty XML Verbatim}
\unprotect
diff --git a/Master/texmf-dist/tex/context/base/x-calcmath.lua b/Master/texmf-dist/tex/context/base/x-calcmath.lua
new file mode 100644
index 00000000000..fcb6b7470a6
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/x-calcmath.lua
@@ -0,0 +1,334 @@
+if not modules then modules = { } end modules ['x-calcmath'] = {
+ version = 1.001,
+ comment = "companion to x-calcmath.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local format, lower, upper, gsub = string.format, string.lower, string.upper, string.gsub
+
+tex = tex or { }
+
+texsprint = tex.sprint or function(catcodes,str) print(str) end
+
+calcmath = { }
+
+local list_1 = {
+ "median", "min", "max", "round", "ln", "log",
+ "sin", "cos", "tan", "sinh", "cosh", "tanh"
+}
+local list_2 = {
+ "int", "sum", "prod"
+}
+local list_3 = {
+ "f", "g"
+}
+local list_4 = {
+ "pi", "inf"
+}
+
+local list_1_1 = { }
+local list_2_1 = { }
+local list_2_2 = { }
+local list_2_3 = { }
+local list_4_1 = { }
+
+local frozen = false
+
+local function freeze()
+ for k=1,#list_1 do
+ local v = list_1[k]
+ list_1_1[v] = "\\".. upper(v) .." "
+ end
+ for k=1,#list_2 do
+ local v = list_2[k]
+ list_2_1[v .. "%((.-),(.-),(.-)%)"] = "\\" .. upper(v) .. "^{%1}_{%2}{%3}"
+ list_2_2[v .. "%((.-),(.-)%)"] = "\\" .. upper(v) .. "^{%1}{%2}"
+ list_2_3[v .. "%((.-)%)"] = "\\" .. upper(v) .. "{%1}"
+ end
+ for k=1,#list_4 do
+ local v = list_4[k]
+ list_4_1[v] = "\\" .. upper(v)
+ end
+ frozen = true
+end
+
+local entities = {
+ ['gt'] = '>',
+ ['lt'] = '<',
+}
+
+local symbols = {
+ ["<="] = "\\LE ",
+ [">="] = "\\GE ",
+ ["=<"] = "\\LE ",
+ ["=>"] = "\\GE ",
+ ["=="] = "\\EQ ",
+ ["<" ] = "\\LT ",
+ [">" ] = "\\GT ",
+ ["="] = "\\EQ ",
+}
+
+local function nsub(str,tag,pre,post)
+ return (str:gsub(tag .. "(%b())", function(body)
+ return pre .. nsub(body:sub(2,-2),tag,pre,post) .. post
+ end))
+end
+
+function calcmath.totex(str,mode)
+ if not frozen then freeze() end
+ local n = 0
+ -- crap
+ str = str:gsub("%s+" , ' ')
+ -- xml
+ str = str:gsub("&(.-);", entities)
+ -- ...E...
+ str = str:gsub("([%-%+]?[%d%.%+%-]+)E([%-%+]?[%d%.]+)", "{\\SCINOT{%1}{%2}}")
+ -- ^-..
+ str = str:gsub( "%^([%-%+]*%d+)", "^{%1}")
+ -- ^(...)
+ str = nsub(str, "%^", "^{", "}")
+ -- 1/x^2
+ repeat
+ str, n = str:gsub("([%d%w%.]+)/([%d%w%.]+%^{[%d%w%.]+})", "\\frac{%1}{%2}")
+ until n == 0
+ -- todo: autoparenthesis
+ -- int(a,b,c)
+ for k, v in next, list_2_1 do
+ repeat str, n = str:gsub(k,v) until n == 0
+ end
+ -- int(a,b)
+ for k, v in next, list_2_2 do
+ repeat str, n = str:gsub(k, v) until n == 0
+ end
+ -- int(a)
+ for k, v in next, list_2_3 do
+ repeat str, n = str:gsub(k, v) until n == 0
+ end
+ -- sin(x) => {\\sin(x)}
+ for k, v in next, list_1_1 do
+ repeat str, n = str:gsub(k, v) until n == 0
+ end
+ -- mean
+ str = nsub(str, "mean", "\\OVERLINE{", "}")
+ -- (1+x)/(1+x) => \\FRAC{1+x}{1+x}
+ repeat
+ str, n = str:gsub("(%b())/(%b())", function(a,b)
+ return "\\FRAC{" .. a:sub(2,-2) .. "}{" .. b:sub(2,-2) .. "}"
+ end )
+ until n == 0
+ -- (1+x)/x => \\FRAC{1+x}{x}
+ repeat
+ str, n = str:gsub("(%b())/([%+%-]?[%.%d%w]+)", function(a,b)
+ return "\\FRAC{" .. a:sub(2,-2) .. "}{" .. b .. "}"
+ end )
+ until n == 0
+ -- 1/(1+x) => \\FRAC{1}{1+x}
+ repeat
+ str, n = str:gsub("([%.%d%w]+)/(%b())", function(a,b)
+ return "\\FRAC{" .. a .. "}{" .. b:sub(2,-2) .. "}"
+ end )
+ until n == 0
+ -- 1/x => \\FRAC{1}{x}
+ repeat
+ str, n = str:gsub("([%.%d%w]+)/([%+%-]?[%.%d%w]+)", "\\FRAC{%1}{%2}")
+ until n == 0
+ -- times
+ str = str:gsub("%*", " ")
+ -- symbols -- we can use a table substitution here
+ str = str:gsub("([<>=][<>=]*)", symbols)
+ -- functions
+ str = nsub(str, "sqrt", "\\SQRT{", "}")
+ str = nsub(str, "exp", "e^{", "}")
+ str = nsub(str, "abs", "\\left|", "\\right|")
+ -- d/D
+ str = nsub(str, "D", "{\\FRAC{\\MBOX{d}}{\\MBOX{d}x}{(", ")}}")
+ str = str:gsub("D([xy])", "\\FRAC{{\\RM d}%1}{{\\RM d}x}")
+ -- f/g
+ for k,v in next, list_3 do -- todo : prepare k,v
+ str = nsub(str, "D"..v,"{\\RM "..v.."}^{\\PRIME}(",")")
+ str = nsub(str, v,"{\\RM "..v.."}(",")")
+ end
+ -- more symbols
+ for k,v in next, list_4_1 do
+ str = str:gsub(k, v)
+ end
+ -- parenthesis (optional)
+ if mode == 2 then
+ str = str:gsub("%(", "\\left\(")
+ str = str:gsub("%)", "\\right\)")
+ end
+ -- csnames
+ str = str:gsub("(\\[A-Z]+)", lower)
+ -- trace
+--~ print(str)
+ -- report
+ return str
+end
+
+function calcmath.tex(str,mode)
+ texsprint(tex.texcatcodes,calcmath.totex(str))
+end
+
+function calcmath.xml(id,mode)
+ local str = lxml.id(id).dt[1]
+ texsprint(tex.texcatcodes,calcmath.totex(str,mode))
+end
+
+-- work in progress ... lpeg variant
+
+if false then
+
+ -- todo:
+
+ -- maybe rewrite to current lpeg, i.e. string replacement and no Cc's
+
+ -- table approach we have now is less efficient but more flexible
+
+ -- D \frac {\rm d} {{\rm d}x}
+ -- Dx Dy \frac {{\rm d}y} {{\rm d}x}
+ -- Df Dg {\rm f}^{\prime}
+ -- f() g() {\rm f}()
+
+ -- valid utf8
+
+ local S, P, R, C, V, Cc, Ct = lpeg.S, lpeg.P, lpeg.R, lpeg.C, lpeg.V, lpeg.Cc, lpeg.Ct
+
+ local space = S(" \n\r\t")^0
+ local number_x = P("-")^-1 * R("09")^1
+ local real_x = P("-")^-1 * R("09")^1 * S(".")^1 * R("09")^1
+ local number = Cc("number") * C(number_x) * space
+ local real = Cc("real") * C(real_x) * space
+ local float = Cc("float") * C(real_x) * lpeg.P("E") * lpeg.C(number_x) * space
+ local identifier = Cc("identifier") * C(R("az","AZ")^1) * space
+ local compareop = P("<") + P("=") + P(">") + P(">=") + P("<=") + P("&gt;") + P("&lt;")
+ local factorop = Cc("factor") * C(S("+-^,") + compareop ) * space
+ local termop = Cc("term") * C(S("*/")) * space
+ local constant = Cc("constant") * C(P("pi") + lpeg.P("inf")) * space
+ local functionop = Cc("function") * C(R("az")^1) * space
+ local open = P("(") * space
+ local close = P(")") * space
+
+ local grammar = P {
+ "expression",
+ expression = Ct(V("factor" ) * (factorop * V("factor" ))^0),
+ factor = Ct(V("term" ) * (termop * V("term" ))^0),
+ term = Ct(
+ float + real + number +
+ (open * V("expression") * close) +
+ (functionop * open * V("expression") * close) +
+ constant + identifier
+ ),
+ }
+
+ local parser = space * grammar * -1
+
+ function totex(t)
+ if t then
+ local one, two, three = t[1], t[2], t[3]
+ if one == "number" then
+ return two
+ elseif one == "real" then
+ return two
+ elseif one == "float" then
+ return format("\\scinot{%s}{%s}", two, three)
+ elseif one == "identifier" then
+ return format(" %s ", two)
+ elseif one == "constant" then
+ return format("\\%s ", two)
+ elseif one == "function" then
+ if two == "sqrt" then
+ return format("\\sqrt{%s}", totex(three))
+ elseif two == "exp" then
+ return format(" e^{%s}", totex(three))
+ elseif two == "abs" then
+ return format("\\left|%s\\right|", totex(three))
+ elseif two == "mean" then
+ return format("\\overline{%s}", totex(three))
+ elseif two == "int" or two == "prod" or two == "sum" then --brrr, we need to parse better for ,,
+ local tt = three
+ if #tt == 1 then
+ return format("\\%s{%s}", two ,totex(tt[1]))
+ elseif #tt == 4 then
+ return format("\\%s^{%s}{%s}", two ,totex(tt[1]), totex(tt[4]))
+ elseif #tt == 7 then
+ return format("\\%s^{%s}_{%s}{%s}", two ,totex(tt[1]), totex(tt[4]), totex(tt[7]))
+ end
+ elseif #two == 1 then
+ return format("%s(%s)", two, totex(three))
+ else
+ return format("\\%s(%s)", two, totex(three))
+ end
+ elseif one == "factor" then
+ if two == '^' then
+ return format("^{%s}%s",totex(three), (#t>3 and totex({unpack(t,4,#t)})) or "")
+ else
+ if two == ">=" then
+ two = "\\ge "
+ elseif two == "<=" then
+ two = "\\le "
+ elseif two == "&gt;" then
+ two = "> "
+ elseif two == "&lt;" then
+ two = "< "
+ end
+ return format("%s%s%s", two, totex(three), (#t>3 and totex({unpack(t,4,#t)})) or "")
+ end
+ elseif one == "term" then
+ if two == '/' then
+ if #t > 4 then
+ return format("\\frac{%s}{%s}", totex(three), totex({unpack(t,4,#t)}))
+ else
+ return format("\\frac{%s}{%s}", totex(three), totex(t[4]))
+ end
+ elseif two == '*' then
+ local times = "\\times "
+ return format("%s%s%s", times, totex(three), (#t>3 and totex({unpack(t,4,#t)})) or "")
+ else
+ return format("%s%s%s", two, totex(three), (#t>3 and totex({unpack(t,4,#t)})) or "")
+ end
+ elseif two == "factor" then
+ if three == '^' then
+ return format("%s^{%s}", totex(one), totex(t[4]))
+ else
+ if two == ">=" then
+ two = "\\ge "
+ elseif two == "<=" then
+ two = "\\le "
+ elseif two == "&gt;" then
+ two = "> "
+ elseif two == "&lt;" then
+ two = "< "
+ end
+ return format("%s%s", totex(one), (#t>1 and totex({unpack(t,2,#t)})) or "")
+ end
+ elseif two == "term" then
+ if three == '/' then
+ return format("\\frac{%s}{%s}", totex(one), (#t>3 and totex({unpack(t,4,#t)})) or "")
+ else
+ return format("%s%s", totex(one), (#t>1 and totex({unpack(t,2,#t)})) or "")
+ end
+ else
+ return totex(one)
+ end
+ end
+ return ""
+ end
+
+ calcmath = { }
+
+ function calcmath.parse(str)
+ return parser:match(str)
+ end
+
+ function calcmath.tex(str)
+ str = totex(parser:match(str))
+ print(str)
+ return (str == "" and "[error]") or str
+ end
+
+end
+
+--~ compareop = Cc("compare") * C(P("<") + P("=") + P(">") + P(">=") + P("<=") + P("&gt;")/">" + P("&lt;")/"<") * space
+--~ comparison = Ct(V("expression") * (compareop * V("expression"))^0),
diff --git a/Master/texmf-dist/tex/context/base/x-calcmath.mkii b/Master/texmf-dist/tex/context/base/x-calcmath.mkii
new file mode 100644
index 00000000000..68119b2fd04
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/x-calcmath.mkii
@@ -0,0 +1,24 @@
+%D \module
+%D [ file=m-calcmath,
+%D version=2006.04.24, % 1999.11.06,
+%D title=\CONTEXT\ Modules,
+%D subtitle=Calculator Math,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA]
+%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
+
+\writestatus{calcmath}{this is not supported in mkii}
+
+\let\inlinecalcmath \inlinemathematics
+\def\displaycalcmath \displaymathematics
+\let\calcmath \inlinecalcmath
+\let\icm \inlinecalcmath
+\let\dcm \displaycalcmath
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/x-calcmath.mkiv b/Master/texmf-dist/tex/context/base/x-calcmath.mkiv
new file mode 100644
index 00000000000..29bc1af9a32
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/x-calcmath.mkiv
@@ -0,0 +1,89 @@
+% engine=luatex
+
+%D \module
+%D [ file=m-calcmath,
+%D version=2006.04.24, % 1999.11.06,
+%D title=\CONTEXT\ Modules,
+%D subtitle=Calculator Math,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D Lua code.
+
+\ctxloadluafile{x-calcmath}{}
+
+%D Interface:
+
+\unprotect
+
+\def\inlinecalcmath #1{\mathematics{\ctxlua{calcmath.tex("#1",1)}}}
+\def\displaycalcmath#1{\startformula\ctxlua{calcmath.tex("#1",2)}\stopformula}
+
+\let\calcmath\inlinecalcmath
+
+\let\icm\inlinecalcmath
+\let\dcm\displaycalcmath
+
+\startxmlsetups xml:cam:define
+ \xmlsetsetup {\xmldocument} {cam:*} {*}
+ \xmlsetsetup {\xmldocument} {(icm|dcm)} {cam:*}
+\stopxmlsetups
+
+\xmlregisterns{cam}{calcmath}
+
+\xmlregistersetup{xml:cam:define}
+
+% tex -> lua -> tex -> lua -> tex
+% \mathematics{\ctxlua{calcmath.xml(\!!bs\xmlflush{#1}\!!es,1)}}
+% tex -> lua -> tex
+% \mathematics{\ctxlua{calcmath.xml("#1",1)}}%
+
+\startxmlsetups cam:i
+ \mathematics{\ctxlua{calcmath.xml("#1",1)}}%
+\stopxmlsetups
+
+\startxmlsetups cam:d
+ \startformula\ctxlua{calcmath.xml("#1",2)}\stopformula
+\stopxmlsetups
+
+\startxmlsetups cam:icm
+ \mathematics{\ctxlua{calcmath.xml("#1",1)}}
+\stopxmlsetups
+
+\startxmlsetups cam:dcm
+ \startformula\ctxlua{calcmath.xml("#1",2)}\stopformula
+\stopxmlsetups
+
+\protect \endinput
+
+\starttext
+
+% \calcmath{sin(x) + x^2 + x^(1+x) + 1/x^2 + mean(x+mean(y))}
+% \calcmath{int(a,b,c)}
+% \calcmath{(1+x)/(1+x) + (1+x)/(1+(1+x)/(1+x))}
+% \calcmath{10E-2}
+% \calcmath{(1+x)/x}
+% \calcmath{(1+x)/12}
+% \calcmath{(1+x)/-12}
+% \calcmath{1/-12}
+% \calcmath{12x/(1+x)}
+% \calcmath{exp(x+exp(x+1))}
+% \calcmath{abs(x+abs(x+1)) + pi + inf}
+% \calcmath{Dx Dy}
+% \calcmath{D(x+D(y))}
+% \calcmath{Df(x)}
+% \calcmath{g(x)}
+
+\calcmath{sqrt(sin^2(x)+cos^2(x))}
+
+\startXMLdata
+test <icm>sqrt(sin^2(x)+cos^2(x))</icm> test
+test <dcm>sqrt(sin^2(x)+cos^2(x))</dcm> test
+\stopXMLdata
+
+\stoptext
diff --git a/Master/texmf-dist/tex/context/base/x-cals.mkiv b/Master/texmf-dist/tex/context/base/x-cals.mkiv
index 314ec5bb9c8..3d264404584 100644
--- a/Master/texmf-dist/tex/context/base/x-cals.mkiv
+++ b/Master/texmf-dist/tex/context/base/x-cals.mkiv
@@ -11,13 +11,25 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context XML Macros (cals tables)}
+\writestatus{loading}{ConTeXt XML Macros / Cals Tables}
\startluacode
do
lxml.cals = { }
- lxml.cals.ignore_widths = false
+ lxml.cals.ignore_widths = false
+
+ -- the following flags only apply to columns that have a specified width
+ --
+ -- proportional : shrink or stretch proportionally to the width
+ -- equal : shrink or stretch equaly distributed
+ -- n < 1 : shrink or stretch proportionally to the width but multiplied by n
+ --
+ -- more clever things, e.g. the same but applied to unspecified widths
+ -- has to happen at the core-ntb level (todo)
+
+ lxml.cals.shrink_widths = false
+ lxml.cals.stretch_widths = false
local format = string.format
local texsprint = tex.sprint
@@ -39,7 +51,11 @@ do
}
local function getspecs(root, pattern, names, widths)
+ -- here, but actually we need this in core-ntb.tex
+ -- but ideally we need an mkiv enhanced core-ntb.tex
local ignore_widths = lxml.cals.ignore_widths
+ local shrink_widths = lxml.cals.shrink_widths
+ local stretch_widths = lxml.cals.stretch_widths
for r, d, k in xml.elements(root,pattern) do
local dk = d[k]
local at = dk.at
@@ -57,6 +73,47 @@ do
end
end
end
+ local function adapt(b,w,delta,sum,n,what)
+ if b == "equal" then
+ delta = delta/n
+ for k, v in pairs(w) do
+ widths[k] = number.todimen(v - delta)
+ end
+ elseif b == "proportional" then
+ delta = delta/sum
+ for k, v in pairs(w) do
+ widths[k] = number.todimen(v - v*delta)
+ end
+ elseif type(b) == "number" and b < 1 then
+ delta = b*delta/sum
+ for k, v in pairs(w) do
+ widths[k] = number.todimen(v - v*delta)
+ end
+ end
+ end
+ if ignore_width then
+ -- forget about it
+ elseif shrink_widths or stretch_widths then
+ local sum, n, w = 0, 0, { }
+ for _, v in pairs(widths) do
+ n = n + 1
+ v = (type(v) == "string" and v:todimen()) or v
+ if v then
+ w[n] = v
+ sum = sum + v
+ end
+ end
+ local hsize = tex.hsize
+ if type(hsize) == "string" then
+ hsize = hsize:todimen()
+ end
+ local delta = sum - hsize
+ if shrink_widths and delta > 0 then
+ adapt(shrink_widths,w,delta,sum,n,"shrink")
+ elseif stretch_widths and delta < 0 then
+ adapt(stretch_widths,w,delta,sum,n,"stretch")
+ end
+ end
end
local function getspans(root, pattern, names, spans)
@@ -143,6 +200,7 @@ do
for r, d, k in xml.elements(lxml.id(root),tgroupspec) do
local tgroup = d[k]
+ texsprint(tex.ctxcatcodes, "\\directsetup{cals:table:before}")
lxml.directives.before(root,"cdx") -- "cals:table"
texsprint(tex.ctxcatcodes, "\\bgroup")
lxml.directives.setup(root,"cdx") -- "cals:table"
@@ -153,6 +211,7 @@ do
texsprint(tex.ctxcatcodes, "\\eTABLE")
texsprint(tex.ctxcatcodes, "\\egroup")
lxml.directives.after(root,"cdx") -- "cals:table"
+ texsprint(tex.ctxcatcodes, "\\directsetup{cals:table:after}")
end
end
diff --git a/Master/texmf-dist/tex/context/base/x-chemml.mkii b/Master/texmf-dist/tex/context/base/x-chemml.mkii
new file mode 100644
index 00000000000..68b52cdd144
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/x-chemml.mkii
@@ -0,0 +1,212 @@
+%D \module
+%D [ file=m-chemml,
+%D version=2001.09.12,
+%D title=\CONTEXT\ XML Modules,
+%D subtitle=Loading CHEMML Filters,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\useXMLfilter[cml]
+
+%D Structural formulas are codes in a \PPCHTEX\ way; this
+%D will change -)
+%D
+%D \startbuffer
+%D <dchem>
+%D <structure>
+%D <component>
+%D <graphic>SIX,B</graphic>
+%D <graphic>R135</graphic>
+%D </component>
+%D <component>
+%D <graphic>R246</graphic>
+%D </component>
+%D <component>
+%D <graphic>RZ</graphic>
+%D <text>A,B,C,D,E,F</text>
+%D </component>
+%D <component>
+%D <graphic>Z</graphic>
+%D <oxidation n="3">A</oxidation>
+%D <text>A</text>
+%D <annotation location="t">
+%D <text>B</text>
+%D <caption>x<context:b>x<context:compound token="*"/>x</context:b>x</caption>
+%D </annotation>
+%D <oxidation n="3" sign="+">B</oxidation>
+%D <text>C,D,E,F</text>
+%D </component>
+%D </structure>
+%D <structure>
+%D <component>
+%D <graphic>SIX,B</graphic>
+%D <graphic>r135</graphic>
+%D </component>
+%D <component>
+%D <graphic>R246</graphic>
+%D </component>
+%D <component>
+%D <graphic>RZ</graphic>
+%D <text>A,B,C,D,E,F</text>
+%D </component>
+%D </structure>
+%D </dchem>
+%D \stopbuffer
+%D
+%D \typebuffer
+
+% \ifx\XMLgtoks\undefined \newtoks\XMLgtoks \fi
+% \ifx\XMLttoks\undefined \newtoks\XMLttoks \fi
+%
+% \defineXMLenvironment [structure]
+% {\startchemical\ignorespaces}
+% {\relax\stopchemical}
+%
+% \def\chemicalXMLg#1% \defineXMLcollect [graphic] \XMLgtoks
+% {\doifelsenothing{\the\XMLgtoks}
+% {\doglobal\appendtoks #1\to\XMLgtoks\ignorespaces}
+% {\doglobal\appendtoks,#1\to\XMLgtoks\ignorespaces}}
+%
+% \def\chemicalXMLt#1%
+% {\doifelsenothing{\the\XMLttoks}
+% {\doglobal\appendtoks #1\to\XMLttoks\ignorespaces}
+% {\doglobal\appendtoks,#1\to\XMLttoks\ignorespaces}}
+%
+% \defineXMLenvironment [component] [type=]
+% {\global\XMLgtoks\emptytoks
+% \global\XMLttoks\emptytoks
+% \defineXMLargument[graphic]\chemicalXMLg
+% \defineXMLargument[text]\chemicalXMLt
+% \ignorespaces}
+% {\expanded{\chemical[\the\XMLgtoks][\the\XMLttoks]}%
+% \ignorespaces}
+%
+% \defineXMLargument [oxidation] [sign=,n=1] \chemicalXMLo % +/- 1..7
+%
+% \def\chemicalXMLo#1%
+% {\expanded{\chemicalXMLt
+% {\noexpand\chemicaloxidation{\XMLop{sign}}{\XMLop{n}}{#1}}}%
+% \ignorespaces}
+%
+% \defineXMLenvironment [annotation] [location=]
+% {\bgroup
+% \defineXMLenvironmentsave[text]{\ignorespaces}{\ignorespaces}%
+% \defineXMLenvironmentsave[caption]{\ignorespaces}{\ignorespaces}%
+% \ignorespaces}
+% {\scratchtoks{\chemicalright}%
+% \processaction
+% [\XMLop{location}]
+% [ t=>\scratchtoks{\chemicaltop},
+% b=>\scratchtoks{\chemicalbottom},
+% l=>\scratchtoks{\chemicalleft},
+% r=>\scratchtoks{\chemicalright},
+% lc=>\scratchtoks{\chemicalleftcentered},
+% rc=>\scratchtoks{\chemicalrightcentered},
+% tl=>\scratchtoks{\chemicaltopleft},
+% bl=>\scratchtoks{\chemicalbottomleft},
+% tr=>\scratchtoks{\chemicaltopright},
+% br=>\scratchtoks{\chemicalbottomright},
+% lt=>\scratchtoks{\chemicallefttop},
+% lb=>\scratchtoks{\chemicalleftbottom},
+% rt=>\scratchtoks{\chemicalrighttop},
+% rb=>\scratchtoks{\chemicalrightbottom},
+% x=>\scratchtoks{\chemicaltighttext},
+% sl=>\scratchtoks{\chemicalsmashedleft},
+% sm=>\scratchtoks{\chemicalsmashedmiddle},
+% sr=>\scratchtoks{\chemicalsmashedright}]%
+% \expanded{\chemicalXMLt
+% {\the\scratchtoks{\XMLflush{text}}{\XMLflush{caption}}}}%
+% \egroup
+% \ignorespaces}
+%
+% \defineXMLenvironment [forever]
+% {\chemicalXMLt{\[}\ignorespaces}
+% {\chemicalXMLt{\]}\ignorespaces}
+
+\ifx\XMLgtoks\undefined \newtoks\XMLgtoks \fi
+\ifx\XMLttoks\undefined \newtoks\XMLttoks \fi
+
+\startXMLmapping [cml]
+
+% this will be a more natural method; this also triggers it
+
+\installXMLunknownremapping
+
+% extensions
+
+\remapXMLsequence [structure] [CPA] \doCMLstructure
+\remapXMLsequence [component] [CPA] \doCMLcomponent
+\remapXMLsequence [graphic] [CPA] \doCMLgraphic
+\remapXMLsequence [text] [CPA] \doCMLtext
+
+\remapXMLsequence [caption] [CPA] \doCMLcaption
+\remapXMLsequence [oxidation] [CPA] \doCMLoxidation
+\remapXMLsequence [annotation][CPA] \doCMLannotation
+\remapXMLsequence [forever] [CPA] \doCMLforever
+
+\def\doCMLstructure#1#2%
+ {\startchemical\ignorespaces#2\unskip\stopchemical}
+
+\def\doCMLgraphic#1#2%
+ {\doifelsenothing{\the\XMLgtoks}
+ {\uppercase{\doglobal\appendtoks #2\to\XMLgtoks\ignorespaces}}
+ {\uppercase{\doglobal\appendtoks,#2\to\XMLgtoks\ignorespaces}}%
+ \ignorespaces}
+
+\def\doCMLtext#1#2%
+ {\doifelsenothing{\the\XMLttoks}
+ {\doglobal\appendtoks #2\to\XMLttoks\ignorespaces}
+ {\doglobal\appendtoks,#2\to\XMLttoks\ignorespaces}%
+ \ignorespaces}
+
+\def\doCMLcomponent#1#2%
+ {\global\XMLgtoks\emptytoks
+ \global\XMLttoks\emptytoks
+ \ignorespaces#2\unskip
+ \expanded{\chemical[\the\XMLgtoks][\the\XMLttoks]}%
+ \ignorespaces}
+
+\def\doCMLannotation#1#2%
+ {\getXMLarguments{cml}{location="" #1}%
+ \def\dodoCMLannotation##1%
+ {\doCMLtext\empty{##1%
+ {\let\doCMLtext \secondoftwoarguments\processXMLRchild{text}{#2}}%
+ {\let\doCMLcaption\unmapXMLdata \processXMLRchild{caption}{#2}}}}%
+ \processaction
+ [\XMLpar{cml}{location}{r}]
+ [ t=>\dodoCMLannotation\chemicaltop,
+ b=>\dodoCMLannotation\chemicalbottom,
+ l=>\dodoCMLannotation\chemicalleft,
+ r=>\dodoCMLannotation\chemicalright,
+ lc=>\dodoCMLannotation\chemicalleftcentered,
+ rc=>\dodoCMLannotation\chemicalrightcentered,
+ tl=>\dodoCMLannotation\chemicaltopleft,
+ bl=>\dodoCMLannotation\chemicalbottomleft,
+ tr=>\dodoCMLannotation\chemicaltopright,
+ br=>\dodoCMLannotation\chemicalbottomright,
+ lt=>\dodoCMLannotation\chemicallefttop,
+ lb=>\dodoCMLannotation\chemicalleftbottom,
+ rt=>\dodoCMLannotation\chemicalrighttop,
+ rb=>\dodoCMLannotation\chemicalrightbottom,
+ x=>\dodoCMLannotation\chemicaltighttext,
+ sl=>\dodoCMLannotation\chemicalsmashedleft,
+ sm=>\dodoCMLannotation\chemicalsmashedmiddle,
+ sr=>\dodoCMLannotation\chemicalsmashedright]%
+ \ignorespaces}
+
+\def\doCMLoxidation#1#2%
+ {\getXMLarguments{cml}{sign="" n="1" #1}%
+ \expanded{\doCMLtext{}%
+ {\noexpand\chemicaloxidation{\XMLpar{cml}{sign}{}}{\XMLpar{cml}{n}{}}{#2}}}%
+ \ignorespaces}
+
+\def\doCMLforever#1#2{\[#2\]}
+
+\stopXMLmapping
+
+\endinput
diff --git a/Master/texmf-dist/tex/context/base/x-cml.mkiv b/Master/texmf-dist/tex/context/base/x-chemml.mkiv
index 37216509223..e0da353fc70 100644
--- a/Master/texmf-dist/tex/context/base/x-cml.mkiv
+++ b/Master/texmf-dist/tex/context/base/x-chemml.mkiv
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context XML Macros (chemml mkiv)}
+\writestatus{loading}{ConTeXt XML Macros / Chemistry}
\usemodule[pictex,chemic] % someday we will do structural fomulas in mp
diff --git a/Master/texmf-dist/tex/context/base/x-chemml.tex b/Master/texmf-dist/tex/context/base/x-chemml.tex
index 68b52cdd144..65d33b5ecd8 100644
--- a/Master/texmf-dist/tex/context/base/x-chemml.tex
+++ b/Master/texmf-dist/tex/context/base/x-chemml.tex
@@ -11,202 +11,6 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\useXMLfilter[cml]
-
-%D Structural formulas are codes in a \PPCHTEX\ way; this
-%D will change -)
-%D
-%D \startbuffer
-%D <dchem>
-%D <structure>
-%D <component>
-%D <graphic>SIX,B</graphic>
-%D <graphic>R135</graphic>
-%D </component>
-%D <component>
-%D <graphic>R246</graphic>
-%D </component>
-%D <component>
-%D <graphic>RZ</graphic>
-%D <text>A,B,C,D,E,F</text>
-%D </component>
-%D <component>
-%D <graphic>Z</graphic>
-%D <oxidation n="3">A</oxidation>
-%D <text>A</text>
-%D <annotation location="t">
-%D <text>B</text>
-%D <caption>x<context:b>x<context:compound token="*"/>x</context:b>x</caption>
-%D </annotation>
-%D <oxidation n="3" sign="+">B</oxidation>
-%D <text>C,D,E,F</text>
-%D </component>
-%D </structure>
-%D <structure>
-%D <component>
-%D <graphic>SIX,B</graphic>
-%D <graphic>r135</graphic>
-%D </component>
-%D <component>
-%D <graphic>R246</graphic>
-%D </component>
-%D <component>
-%D <graphic>RZ</graphic>
-%D <text>A,B,C,D,E,F</text>
-%D </component>
-%D </structure>
-%D </dchem>
-%D \stopbuffer
-%D
-%D \typebuffer
-
-% \ifx\XMLgtoks\undefined \newtoks\XMLgtoks \fi
-% \ifx\XMLttoks\undefined \newtoks\XMLttoks \fi
-%
-% \defineXMLenvironment [structure]
-% {\startchemical\ignorespaces}
-% {\relax\stopchemical}
-%
-% \def\chemicalXMLg#1% \defineXMLcollect [graphic] \XMLgtoks
-% {\doifelsenothing{\the\XMLgtoks}
-% {\doglobal\appendtoks #1\to\XMLgtoks\ignorespaces}
-% {\doglobal\appendtoks,#1\to\XMLgtoks\ignorespaces}}
-%
-% \def\chemicalXMLt#1%
-% {\doifelsenothing{\the\XMLttoks}
-% {\doglobal\appendtoks #1\to\XMLttoks\ignorespaces}
-% {\doglobal\appendtoks,#1\to\XMLttoks\ignorespaces}}
-%
-% \defineXMLenvironment [component] [type=]
-% {\global\XMLgtoks\emptytoks
-% \global\XMLttoks\emptytoks
-% \defineXMLargument[graphic]\chemicalXMLg
-% \defineXMLargument[text]\chemicalXMLt
-% \ignorespaces}
-% {\expanded{\chemical[\the\XMLgtoks][\the\XMLttoks]}%
-% \ignorespaces}
-%
-% \defineXMLargument [oxidation] [sign=,n=1] \chemicalXMLo % +/- 1..7
-%
-% \def\chemicalXMLo#1%
-% {\expanded{\chemicalXMLt
-% {\noexpand\chemicaloxidation{\XMLop{sign}}{\XMLop{n}}{#1}}}%
-% \ignorespaces}
-%
-% \defineXMLenvironment [annotation] [location=]
-% {\bgroup
-% \defineXMLenvironmentsave[text]{\ignorespaces}{\ignorespaces}%
-% \defineXMLenvironmentsave[caption]{\ignorespaces}{\ignorespaces}%
-% \ignorespaces}
-% {\scratchtoks{\chemicalright}%
-% \processaction
-% [\XMLop{location}]
-% [ t=>\scratchtoks{\chemicaltop},
-% b=>\scratchtoks{\chemicalbottom},
-% l=>\scratchtoks{\chemicalleft},
-% r=>\scratchtoks{\chemicalright},
-% lc=>\scratchtoks{\chemicalleftcentered},
-% rc=>\scratchtoks{\chemicalrightcentered},
-% tl=>\scratchtoks{\chemicaltopleft},
-% bl=>\scratchtoks{\chemicalbottomleft},
-% tr=>\scratchtoks{\chemicaltopright},
-% br=>\scratchtoks{\chemicalbottomright},
-% lt=>\scratchtoks{\chemicallefttop},
-% lb=>\scratchtoks{\chemicalleftbottom},
-% rt=>\scratchtoks{\chemicalrighttop},
-% rb=>\scratchtoks{\chemicalrightbottom},
-% x=>\scratchtoks{\chemicaltighttext},
-% sl=>\scratchtoks{\chemicalsmashedleft},
-% sm=>\scratchtoks{\chemicalsmashedmiddle},
-% sr=>\scratchtoks{\chemicalsmashedright}]%
-% \expanded{\chemicalXMLt
-% {\the\scratchtoks{\XMLflush{text}}{\XMLflush{caption}}}}%
-% \egroup
-% \ignorespaces}
-%
-% \defineXMLenvironment [forever]
-% {\chemicalXMLt{\[}\ignorespaces}
-% {\chemicalXMLt{\]}\ignorespaces}
-
-\ifx\XMLgtoks\undefined \newtoks\XMLgtoks \fi
-\ifx\XMLttoks\undefined \newtoks\XMLttoks \fi
-
-\startXMLmapping [cml]
-
-% this will be a more natural method; this also triggers it
-
-\installXMLunknownremapping
-
-% extensions
-
-\remapXMLsequence [structure] [CPA] \doCMLstructure
-\remapXMLsequence [component] [CPA] \doCMLcomponent
-\remapXMLsequence [graphic] [CPA] \doCMLgraphic
-\remapXMLsequence [text] [CPA] \doCMLtext
-
-\remapXMLsequence [caption] [CPA] \doCMLcaption
-\remapXMLsequence [oxidation] [CPA] \doCMLoxidation
-\remapXMLsequence [annotation][CPA] \doCMLannotation
-\remapXMLsequence [forever] [CPA] \doCMLforever
-
-\def\doCMLstructure#1#2%
- {\startchemical\ignorespaces#2\unskip\stopchemical}
-
-\def\doCMLgraphic#1#2%
- {\doifelsenothing{\the\XMLgtoks}
- {\uppercase{\doglobal\appendtoks #2\to\XMLgtoks\ignorespaces}}
- {\uppercase{\doglobal\appendtoks,#2\to\XMLgtoks\ignorespaces}}%
- \ignorespaces}
-
-\def\doCMLtext#1#2%
- {\doifelsenothing{\the\XMLttoks}
- {\doglobal\appendtoks #2\to\XMLttoks\ignorespaces}
- {\doglobal\appendtoks,#2\to\XMLttoks\ignorespaces}%
- \ignorespaces}
-
-\def\doCMLcomponent#1#2%
- {\global\XMLgtoks\emptytoks
- \global\XMLttoks\emptytoks
- \ignorespaces#2\unskip
- \expanded{\chemical[\the\XMLgtoks][\the\XMLttoks]}%
- \ignorespaces}
-
-\def\doCMLannotation#1#2%
- {\getXMLarguments{cml}{location="" #1}%
- \def\dodoCMLannotation##1%
- {\doCMLtext\empty{##1%
- {\let\doCMLtext \secondoftwoarguments\processXMLRchild{text}{#2}}%
- {\let\doCMLcaption\unmapXMLdata \processXMLRchild{caption}{#2}}}}%
- \processaction
- [\XMLpar{cml}{location}{r}]
- [ t=>\dodoCMLannotation\chemicaltop,
- b=>\dodoCMLannotation\chemicalbottom,
- l=>\dodoCMLannotation\chemicalleft,
- r=>\dodoCMLannotation\chemicalright,
- lc=>\dodoCMLannotation\chemicalleftcentered,
- rc=>\dodoCMLannotation\chemicalrightcentered,
- tl=>\dodoCMLannotation\chemicaltopleft,
- bl=>\dodoCMLannotation\chemicalbottomleft,
- tr=>\dodoCMLannotation\chemicaltopright,
- br=>\dodoCMLannotation\chemicalbottomright,
- lt=>\dodoCMLannotation\chemicallefttop,
- lb=>\dodoCMLannotation\chemicalleftbottom,
- rt=>\dodoCMLannotation\chemicalrighttop,
- rb=>\dodoCMLannotation\chemicalrightbottom,
- x=>\dodoCMLannotation\chemicaltighttext,
- sl=>\dodoCMLannotation\chemicalsmashedleft,
- sm=>\dodoCMLannotation\chemicalsmashedmiddle,
- sr=>\dodoCMLannotation\chemicalsmashedright]%
- \ignorespaces}
-
-\def\doCMLoxidation#1#2%
- {\getXMLarguments{cml}{sign="" n="1" #1}%
- \expanded{\doCMLtext{}%
- {\noexpand\chemicaloxidation{\XMLpar{cml}{sign}{}}{\XMLpar{cml}{n}{}}{#2}}}%
- \ignorespaces}
-
-\def\doCMLforever#1#2{\[#2\]}
-
-\stopXMLmapping
+\loadmarkfile{x-chemml}
\endinput
diff --git a/Master/texmf-dist/tex/context/base/x-ct.mkiv b/Master/texmf-dist/tex/context/base/x-ct.mkiv
index cf7bb64fb39..17ea254083e 100644
--- a/Master/texmf-dist/tex/context/base/x-ct.mkiv
+++ b/Master/texmf-dist/tex/context/base/x-ct.mkiv
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context XML Macros (context)}
+\writestatus{loading}{ConTeXt XML Macros / Basics}
\startluacode
do
diff --git a/Master/texmf-dist/tex/context/base/x-fo.tex b/Master/texmf-dist/tex/context/base/x-fo.tex
index 3962255463d..395ec7eb364 100644
--- a/Master/texmf-dist/tex/context/base/x-fo.tex
+++ b/Master/texmf-dist/tex/context/base/x-fo.tex
@@ -26,7 +26,9 @@
% beware: aftergroup vs egroup/endgroup
-\input xtag-run
+\useXMLfilter[prs,run]
+
+% \input xtag-run
\unprotect
@@ -2461,7 +2463,7 @@ leader-pattern-width=12pt,
\egroup
\stopsetups
-\positioningpartrue \positioningtrue
+\enableparpositions % slows down but who uses fo anyway ...
\startsetups fo:position:absolute:start
\setbox\FOpositionbox\hbox\bgroup
@@ -3369,7 +3371,7 @@ text-indent=0pt, % yes
\setbox \FOitembox \iftracingFO \ruledvtop \else \vtop \fi \bgroup
\forgetall
- \postponefootnotes
+ \postponenotes
\hsize\FOlistitemlabelhsize
\directsetup{fo:list-item-label:setup}
\XMLflush{fo:list-item-label}
@@ -3508,7 +3510,7 @@ text-indent=0pt, % yes
\startsetups fo:marker:process
- \doifmarkingelse{fo:\XMLop{marker-class-name}}
+ \doifelsemarking{fo:\XMLop{marker-class-name}}
{} {\definerawmarking[fo:\XMLop{marker-class-name}]}
\expanded{\marking[fo:\XMLop{marker-class-name}]{\XMLflushself}}
diff --git a/Master/texmf-dist/tex/context/base/x-ldx.ctx b/Master/texmf-dist/tex/context/base/x-ldx.ctx
index 21ef6db5f7d..0dddc9734fc 100644
--- a/Master/texmf-dist/tex/context/base/x-ldx.ctx
+++ b/Master/texmf-dist/tex/context/base/x-ldx.ctx
@@ -1,10 +1,10 @@
<?xml version='1.0' standalone='yes'?>
<ctx:job>
- <ctx:message>Lua Documentation</ctx:message>
+ <ctx:message>Lua Documentation Generator</ctx:message>
<ctx:preprocess>
<ctx:processors>
- <ctx:processor name='ldx'>mtxrun --verbose --internal x-ldx.lua <ctx:value name='old'/> <ctx:value name='new'/></ctx:processor>
+ <ctx:processor name='ldx'>mtxrun --internal x-ldx.lua <ctx:value name='old'/> <ctx:value name='new'/></ctx:processor>
</ctx:processors>
<ctx:files>
<ctx:file processor='ldx'><ctx:value name='old'/></ctx:file>
diff --git a/Master/texmf-dist/tex/context/base/x-ldx.tex b/Master/texmf-dist/tex/context/base/x-ldx.tex
index 0d9350c1cd3..140413e7d74 100644
--- a/Master/texmf-dist/tex/context/base/x-ldx.tex
+++ b/Master/texmf-dist/tex/context/base/x-ldx.tex
@@ -1,133 +1,191 @@
-\defineregister[function][functions]
-\defineregister[variable][variables]
+\doifnotmode{mkiv}{\endinput}
-\definehead[source][subject]
-\definehead[extra] [subsubject]
-\definehead[topic] [subsubsubject]
+\setupxml[method=mkiv,default=hidden]
+
+\usemodule[mathml]
+
+\xmlregisterdocumentsetup{ldx}{xml:mml:define}
+\xmlregisterdocumentsetup{ldx}{xml:ldx:define}
+
+\xmlregisterns{ldx}{ldx}
+
+\startxmlsetups xml:ldx:define
+ \xmlgrab {\xmldocument} {ldx:*} {*}
+\stopxmlsetups
+
+% % %
+
+\startxmlsetups ldx:p
+ \xmlflush{#1}\par
+\stopxmlsetups
+
+\startxmlsetups ldx:source
+ \source{\xmlflush{#1}}
+\stopxmlsetups
+
+\startxmlsetups ldx:key
+ \dontleavehmode{\bf\xmlflush{#1}}
+\stopxmlsetups
-\setuphead[source][style=\bfb]
-\setuphead[extra] [style=\bfa]
-\setuphead[topic] [style=\bf]
-
-\def\LDXkey #1{\bold{#1}}
-\def\LDXfunction#1{\LDXkey{function} #1\function{#1}}
-\def\LDXvariable#1{#1\variable{#1}}
-\def\LDXcomment #1{{\tt--#1}}
-\def\LDXsource #1{\source{#1}}
-
-\defineXMLenvironment
- [ldx:document]
- {\page}
- {\determineregistercharacteristics[function]
- \startmode[*register]
+\startxmlsetups ldx:variable
+ \xmlflush{#1}
+ \expanded{\variable{\xmlflush{#1}}}
+\stopxmlsetups
+
+\startxmlsetups ldx:function
+ \dontleavehmode{\bf function}\space\xmlflush{#1}
+ \expanded{\function{\xmlflush{#1}}}
+\stopxmlsetups
+
+\startxmlsetups ldx:com
+ \dontleavehmode{\tt--\xmlflush{#1}}
+\stopxmlsetups
+
+\startxmlsetups ldx:document
+ \page
+ \xmlflush{#1}
+ \determineregistercharacteristics[function]
+ \startmode[*register]
+ \testpage[4]
\extra{Functions}
\placeregister[function]
- \stopmode
- \determineregistercharacteristics[variable]
- \startmode[*register]
+ \stopmode
+ \determineregistercharacteristics[variable]
+ \startmode[*register]
+ \testpage[4]
\extra{Variables}
\placeregister[variable]
- \stopmode}
-
-\defineXMLargument [ldx:source] \LDXsource
-\defineXMLargument [ldx:key] \LDXkey
-\defineXMLargument [ldx:variable] \LDXvariable
-\defineXMLargument [ldx:function] \LDXfunction
-\defineXMLargument [ldx:com] \LDXcomment
+ \stopmode
+\stopxmlsetups
\newcounter\CommentCounter
-\defineXMLenvironment[ldx:comment]
- {\endgraf
- \blank
- \doglobal\increment\CommentCounter
- \margintitle{\bf\CommentCounter}}
- {\blank
- \endgraf}
-
-\defineXMLenvironment[ldx:dqs]
- {\bgroup\tt"}
- {"\egroup}
-
-\defineXMLenvironment[ldx:sqs]
- {\bgroup\tt'}
- {'\egroup}
-
-\defineXMLenvironment[ldx:code]
- {\startpacked}
- {\stoppacked}
-
-\defineXMLenvironment[ldx:line][n=0,comment=] % maybe hangindent or leftskip
- {\dontleavehmode
- \hbox to \hsize\bgroup
- \strut\hskip\dimexpr\XMLop{n}em/4\relax\relax
- \doif {\XMLop{comment}} {yes} {\tt}}
- {\hss
- \egroup
- \endgraf}
-
-\defineXMLsingular[ldx:line]
- {\crlf}
-
-\defineXMLargument [source] \LDXsource
-\defineXMLargument [key] \LDXkey
-
-\defineXMLsingular[logo][label=,name=]
- {\uppercasestring\XMLop{label}\XMLop{label}\to\ascii
- \getvalue{\ascii}}
-
-\defineXMLsingular[l][l=,n=]
- {\uppercasestring\XMLop{l}\XMLop{l}\to\ascii
- \getvalue{\ascii}}
-
-\defineXMLenvironment
- [typing]
- {\blank
- \startpacked \tt
- \obeyspaces}
- {\stoppacked
- \blank}
-
-\defineXMLentity[amp]{\&}
-\defineXMLentity[lt] {<}
-\defineXMLentity[gt] {>}
+\startxmlsetups ldx:comment
+ \blank
+ \doglobal\increment\CommentCounter
+ \margintitle{\bf\CommentCounter}
+ \xmlflush{#1}
+ \blank
+\stopxmlsetups
+
+\startxmlsetups ldx:dqs
+ \dontleavehmode\bgroup\tt"\xmlflush{#1}"\egroup
+\stopxmlsetups
+
+\startxmlsetups ldx:sqs
+ \dontleavehmode\bgroup\tt'\xmlflush{#1}'\egroup
+\stopxmlsetups
+
+\startxmlsetups ldx:code
+ \startpacked
+ \xmlflush{#1}
+ \stoppacked
+\stopxmlsetups
+
+\startxmlsetups ldx:lines
+ \startpacked
+ \xmlflush{#1}
+ \stoppacked
+\stopxmlsetups
+
+\startxmlsetups ldx:line
+ \doifelsenothing {\xmlflush{#1}} {
+ \xmlflush{#1}\crlf
+ } {
+ \dontleavehmode \hbox to \hsize \bgroup
+ \strut
+ \hskip.25\dimexpr\xmlattdef{#1}{n}{0}em\relax
+ \xmldoif {\xmlatt{#1}{comment}} {yes} {\tt}
+ \xmlflush{#1}
+ \hss
+ \egroup
+ \endgraf
+ }
+\stopxmlsetups
+
+\startxmlsetups ldx:logo
+ \uppercasestring\xmlatt{#1}{label}\xmlatt{#1}{name}\to\ascii
+ \ifx\ascii\empty\else\getvalue{\ascii}\fi
+\stopxmlsetups
+
+\startxmlsetups ldx:l
+ \uppercasestring\xmlatt{#1}{l}\xmlatt{#1}{n}\to\ascii
+ \ifx\ascii\empty\else\getvalue{\ascii}\fi
+\stopxmlsetups
+
+\startxmlsetups ldx:typing
+ \blank
+ \startpacked \tt
+ \xmlverbatim{#1}
+ \stoppacked
+ \blank
+\stopxmlsetups
+
+\startxmlsetups ldx:type
+ \dontleavehmode{\tt\xmlflush{#1}}
+\stopxmlsetups
+
+\startxmlsetups ldx:t
+ \dontleavehmode{\tt\xmlflush{#1}}
+\stopxmlsetups
+
+%
+
+\def\xmldocument{ldx}
+
+% \processXMLfileMKIV[ldx]
\usemodule[abr-02]
-\startnotmode[atpragma]
- \definetypeface[mainfacenormal] [ss][sans] [iwona] [default]
- \definetypeface[mainfacenormal] [rm][serif][palatino] [default]
- \definetypeface[mainfacenormal] [tt][mono] [modern] [default][rscale=1.1]
- \definetypeface[mainfacenormal] [mm][math] [iwona] [default][encoding=default]
+% key -> kw
+% dqs -> dq
+% sqs -> sq
+% line -> ln
+% code -> cd
+% comment -> tx (text)
+
+\definetypeface[mainfacenormal] [ss][sans] [iwona] [default]
+\definetypeface[mainfacenormal] [rm][serif][palatino] [default]
+\definetypeface[mainfacenormal] [tt][mono] [modern] [default][rscale=1] % 1.1
+\definetypeface[mainfacenormal] [mm][math] [iwona] [default][encoding=default]
+
+\definetypeface[mainfacemedium] [ss][sans] [iwona-medium][default]
+\definetypeface[mainfacenormal] [rm][serif][palatino] [default]
+\definetypeface[mainfacemedium] [tt][mono] [modern] [default][rscale=1] % 1.1
+\definetypeface[mainfacemedium] [mm][math] [iwona-medium][default][encoding=default]
+
+\definetypeface[mainfacenarrowtt][tt][mono] [modern-cond] [default][rscale=1] % 1.1
- \definetypeface[mainfacemedium] [ss][sans] [iwona-medium][default]
- \definetypeface[mainfacenormal] [rm][serif][palatino] [default]
- \definetypeface[mainfacemedium] [tt][mono] [modern] [default][rscale=1.1]
- \definetypeface[mainfacemedium] [mm][math] [iwona-medium][default][encoding=default]
+\setupbodyfont
+ [mainfacenormal,11pt]
- \definetypeface[mainfacenarrowtt][tt][mono] [modern-cond] [default][rscale=1.1]
-\stopnotmode
+\setupwhitespace
+ [big]
-\startmode[atpragma]
- \usetypescriptfile[type-ghz]
+\defineregister[function][functions]
+\defineregister[variable][variables]
+
+\definehead[source][subject]
+\definehead[extra] [subsubject]
+\definehead[topic] [subsubsubject]
- \definetypeface[mainfacenormal] [ss][sans] [optima-nova] [default]
- \definetypeface[mainfacenormal] [rm][serif][palatino] [default]
- \definetypeface[mainfacenormal] [tt][mono] [modern] [default][rscale=1.1]
- \definetypeface[mainfacenormal] [mm][math] [palatino] [default][encoding=default]
+\setuphead
+ [source]
+ [style=\bfb]
- \definetypeface[mainfacemedium] [ss][sans] [optima-nova] [default]
- \definetypeface[mainfacenormal] [rm][serif][palatino] [default]
- \definetypeface[mainfacemedium] [tt][mono] [modern] [default][rscale=1.1]
- \definetypeface[mainfacemedium] [mm][math] [palatino] [default][encoding=default]
+\setuphead
+ [extra]
+ [style=\bfa]
- \definetypeface[mainfacenarrowtt][tt][mono] [modern-cond] [default][rscale=1.1]
-\stopmode
+\setuphead
+ [topic]
+ [style=\bf]
-\setupbodyfont[mainfacenormal,11pt]
+\setuplayout
+ [width=middle,
+ height=middle,
+ backspace=2cm,
+ topspace=2cm]
-\setupwhitespace[big]
+\endinput
-% \starttext
-% \processXMLfilegrouped{\inputfilename}
-% \stoptext
diff --git a/Master/texmf-dist/tex/context/base/x-mathml.lua b/Master/texmf-dist/tex/context/base/x-mathml.lua
index fa5e617e607..aa2e4e716f3 100644
--- a/Master/texmf-dist/tex/context/base/x-mathml.lua
+++ b/Master/texmf-dist/tex/context/base/x-mathml.lua
@@ -6,29 +6,60 @@ if not modules then modules = { } end modules ['x-mathml'] = {
license = "see context related readme files"
}
+local utf = unicode.utf8
+
+lxml = lxml or { }
lxml.mml = lxml.mml or { }
local texsprint = tex.sprint
local format = string.format
+local lower = string.lower
+local utfchar = utf.char
+local utffind = utf.find
local xmlsprint = xml.sprint
local xmlcprint = xml.cprint
+local utfcharacters, utfvalues = string.utfcharacters, string.utfvalues
+
-- an alternative is to remap to private codes, where we can have
-- different properties .. to be done; this will move and become
-- generic
+-- todo: handle opening/closing mo's here ... presentation mml is such a mess ...
+
+local doublebar = utfchar(0x2016)
+
local n_replacements = {
--- [" "] = utf.char(0x2002), -- "&textspace;" -> tricky, no &; in mkiv
+-- [" "] = utfchar(0x2002), -- "&textspace;" -> tricky, no &; in mkiv
["."] = "{.}",
[","] = "{,}",
[" "] = "",
}
-local o_replacements = {
+local l_replacements = { -- in main table
+ ["|"] = "\\mmlleftdelimiter\\vert",
+ ["{"] = "\\mmlleftdelimiter\\lbrace",
+ ["("] = "\\mmlleftdelimiter(",
+ ["["] = "\\mmlleftdelimiter[",
+ ["<"] = "\\mmlleftdelimiter<",
+ [doublebar] = "\\mmlleftdelimiter\\Vert",
+}
+local r_replacements = { -- in main table
+ ["|"] = "\\mmlrightdelimiter\\vert",
+ ["}"] = "\\mmlrightdelimiter\\rbrace",
+ [")"] = "\\mmlrightdelimiter)",
+ ["]"] = "\\mmlrightdelimiter]",
+ [">"] = "\\mmlrightdelimiter>",
+ [doublebar] = "\\mmlrightdelimiter\\Vert",
+}
+
+local o_replacements = { -- in main table
["@l"] = "\\mmlleftdelimiter.",
["@r"] = "\\mmlrightdelimiter.",
["{"] = "\\mmlleftdelimiter\\lbrace",
["}"] = "\\mmlrightdelimiter\\rbrace",
+ ["|"] = "\\mmlleftorrightdelimiter\\vert",
+ [doublebar] = "\\mmlleftorrightdelimiter\\Vert",
["("] = "\\mmlleftdelimiter(",
[")"] = "\\mmlrightdelimiter)",
["["] = "\\mmlleftdelimiter[",
@@ -43,6 +74,12 @@ local o_replacements = {
["_"] = "\\mmlchar{95}{}", -- so we need the {}
["~"] = "\\mmlchar{126}",
[" "] = "",
+ ["°"] = "^\\circ", -- hack
+
+ [utfchar(0xF103C)] = "\\mmlleftdelimiter<",
+ [utfchar(0xF1026)] = "\\mmlchar{38}",
+ [utfchar(0xF103E)] = "\\mmlleftdelimiter>",
+
}
local i_replacements = {
@@ -103,36 +140,369 @@ local i_replacements = {
["as"] = "{\\mr as}",
}
+local csymbols = {
+ arith1 = {
+ lcm = "lcm",
+ big_lcm = "lcm",
+ gcd = "gcd",
+ big_gcd = "big_gcd",
+ plus = "plus",
+ unary_minus = "minus",
+ minus = "minus",
+ times = "times",
+ divide = "divide",
+ power = "power",
+ abs = "abs",
+ root = "root",
+ sum = "sum",
+ product ="product",
+ },
+ fns = {
+ domain = "domain",
+ range = "codomain",
+ image = "image",
+ identity = "ident",
+--~ left_inverse = "",
+--~ right_inverse = "",
+ inverse = "inverse",
+ left_compose = "compose",
+ lambda = "labmda",
+ },
+ linalg1 = {
+ vectorproduct = "vectorproduct",
+ scalarproduct = "scalarproduct",
+ outerproduct = "outerproduct",
+ transpose = "transpose",
+ determinant = "determinant",
+ vector_selector = "selector",
+--~ matrix_selector = "matrix_selector",
+ },
+ logic1 = {
+ equivalent = "equivalent",
+ ["not"] = "not",
+ ["and"] = "and",
+--~ big_and = "",
+ ["xor"] = "xor",
+--~ big_xor = "",
+ ["or"] = "or",
+--~ big-or= "",
+ implies = "implies",
+ ["true"] = "true",
+ ["false"] = "false",
+ },
+ nums1 = {
+--~ based_integer = "based_integer"
+ rational = "rational",
+ inifinity = "infinity",
+ e = "expenonentiale",
+ i ="imaginaryi",
+ pi = "pi",
+ gamma = "gamma",
+ NaN, "NaN",
+ },
+ relation1 = {
+ eq = "eq",
+ lt = "lt",
+ gt = "gt",
+ neq = "neq",
+ leq = "leq",
+ geq = "geq",
+ approx = "approx",
+ },
+ set1 = {
+ cartesian_product = "cartesianproduct",
+ empty_set = "emptyset",
+ map = "map",
+ size = "card",
+--~ suchthat = "suchthat",
+ set = "set",
+ intersect = "intersect",
+--~ big_intersect = "",
+ union = "union",
+--~ big_union = "",
+ setdiff = "setdiff",
+ subset = "subset",
+ ["in"] = "in",
+ notin = "notin",
+ prsubset = "prsubset",
+ notsubset = "notsubset",
+ notprsubset = "notprsubset",
+ },
+ veccalc1 = {
+ divergence = "divergence",
+ grad = "grad",
+ curl = "curl",
+ Laplacian = "laplacian",
+ },
+ calculus1 = {
+ diff = "diff",
+--~ nthdiff = "",
+ partialdiff = "partialdiff",
+ int = "int",
+--~ defint = "defint",
+ },
+ integer1 = {
+ factorof = "factorof",
+ factorial = "factorial",
+ quotient = "quotient",
+ remainder = "rem",
+ },
+ linalg2 = {
+ vector = "vector",
+ matrix = "matrix",
+ matrixrow = "matrixrow",
+ },
+ mathmkeys = {
+--~ equiv = "",
+--~ contentequiv = "",
+--~ contentequiv_strict = "",
+ },
+ rounding1 = {
+ ceiling = "ceiling",
+ floor = "floor",
+--~ trunc = "trunc",
+--~ round = "round",
+ },
+ setname1 = {
+ P = "primes",
+ N = "naturalnumbers",
+ Z = "integers",
+ rationals = "rationals",
+ R = "reals",
+ complexes = "complexes",
+ },
+ complex1 = {
+--~ complex_cartesian = "complex_cartesian", -- ci ?
+ real = "real",
+ imaginary = "imaginary",
+--~ complex_polar = "complex_polar", -- ci ?
+ argument = "arg",
+ conjugate = "conjugate",
+ },
+ interval1 = { -- not an apply
+--~ "integer_interval" = "integer_interval",
+ interval = "interval",
+ interval_oo = { tag = "interval", closure = "open" },
+ interval_cc = { tag = "interval", closure = "closed" },
+ interval_oc = { tag = "interval", closure = "open-closed" },
+ interval_co = { tag = "interval", closure = "closed-open" },
+ },
+ linalg3 = {
+--~ vector = "vector.column",
+--~ matrixcolumn = "matrixcolumn",
+--~ matrix = "matrix.column",
+ },
+ minmax1 = {
+ min = "min",
+--~ big_min = "",
+ max = "max",
+--~ big_max = "",
+ },
+ piece1 = {
+ piecewise = "piecewise",
+ piece = "piece",
+ otherwise = "otherwise",
+ },
+ error1 = {
+--~ unhandled_symbol = "",
+--~ unexpected_symbol = "",
+--~ unsupported_CD = "",
+ },
+ limit1 = {
+--~ limit = "limit",
+--~ both_sides = "both_sides",
+--~ above = "above",
+--~ below = "below",
+--~ null = "null",
+ tendsto = "tendsto",
+ },
+ list1 = {
+--~ map = "",
+--~ suchthat = "",
+--~ list = "list",
+ },
+ multiset1 = {
+ size = { tag = "card", type="multiset" },
+ cartesian_product = { tag = "cartesianproduct", type="multiset" },
+ empty_set = { tag = "emptyset", type="multiset" },
+--~ multi_set = { tag = "multiset", type="multiset" },
+ intersect = { tag = "intersect", type="multiset" },
+--~ big_intersect = "",
+ union = { tag = "union", type="multiset" },
+--~ big_union = "",
+ setdiff = { tag = "setdiff", type="multiset" },
+ subset = { tag = "subset", type="multiset" },
+ ["in"] = { tag = "in", type="multiset" },
+ notin = { tag = "notin", type="multiset" },
+ prsubset = { tag = "prsubset", type="multiset" },
+ notsubset = { tag = "notsubset", type="multiset" },
+ notprsubset = { tag = "notprsubset", type="multiset" },
+ },
+ quant1 = {
+ forall = "forall",
+ exists = "exists",
+ },
+ s_dist = {
+--~ mean = "mean.dist",
+--~ sdev = "sdev.dist",
+--~ variance = "variance.dist",
+--~ moment = "moment.dist",
+ },
+ s_data = {
+ mean = "mean",
+ sdev = "sdev",
+ variance = "vriance",
+ mode = "mode",
+ median = "median",
+ moment = "moment",
+ },
+ transc1 = {
+ log = "log",
+ ln = "ln",
+ exp = "exp",
+ sin = "sin",
+ cos = "cos",
+ tan = "tan",
+ sec = "sec",
+ csc = "csc",
+ cot = "cot",
+ sinh = "sinh",
+ cosh = "cosh",
+ tanh = "tanh",
+ sech = "sech",
+ csch = "cscs",
+ coth = "coth",
+ arcsin = "arcsin",
+ arccos = "arccos",
+ arctan = "arctan",
+ arcsec = "arcsec",
+ arcscs = "arccsc",
+ arccot = "arccot",
+ arcsinh = "arcsinh",
+ arccosh = "arccosh",
+ arctanh = "arstanh",
+ arcsech = "arcsech",
+ arccsch = "arccsch",
+ arccoth = "arccoth",
+ },
+}
+
+function xml.functions.remapmmlcsymbol(r,d,k)
+ local dk = d[k]
+ local at = dk.at
+ local cd = at.cd
+ if cd then
+ cd = csymbols[cd]
+ if cd then
+ local tx = dk.dt[1]
+ if tx and tx ~= "" then
+ local tg = cd[tx]
+ if tg then
+ at.cd = nil
+ at.cdbase = nil
+ dk.dt = { }
+ if type(tg) == "table" then
+ for k, v in pairs(tg) do
+ if k == "tag" then
+ dk.tg = v
+ else
+ at[k] = v
+ end
+ end
+ else
+ dk.tg = tg
+ end
+ end
+ end
+ end
+ end
+end
+
+function xml.functions.remapmmlbind(r,d,k)
+ d[k].tg = "apply"
+end
+
+function xml.functions.remapopenmath(r,d,k)
+ local dk = d[k]
+ local tg = dk.tg
+ if tg == "OMOBJ" then
+ dk.tg = "math"
+ elseif tg == "OMA" then
+ dk.tg = "apply"
+ elseif tg == "OMB" then
+ dk.tg = "apply"
+ elseif tg == "OMS" then
+ -- xml.functions.remapmmlcsymbol(r,d,k)
+ local at = dk.at
+ dk.tg = "csymbol"
+ dk.dt = { at.name or "unknown" }
+ at.name = nil
+ elseif tg == "OMV" then
+ local at = dk.at
+ dk.tg = "ci"
+ dk.dt = { at.name or "unknown" }
+ at.name = nil
+ elseif tg == "OMI" then
+ dk.tg = "ci"
+ end
+ dk.rn = "mml"
+end
+
function lxml.mml.checked_operator(str)
- texsprint(tex.ctxcatcodes,(str:gsub(".",o_replacements)))
+ texsprint(tex.ctxcatcodes,(utf.gsub(str,".",o_replacements)))
+end
+
+function lxml.mml.stripped(str)
+ tex.sprint(tex.ctxcatcodes,str:strip())
end
function lxml.mml.mn(id,pattern)
+ -- maybe at some point we need to interpret the number, but
+ -- currently we assume an upright font
local str = xml.content(lxml.id(id),pattern) or ""
+ -- str = str:gsub("^%s*(.-)%s*$","%1")
+ str = str:gsub("(%s+)",utfchar(0x205F)) -- medspace e.g.: twenty one (nbsp is not seen)
texsprint(tex.ctxcatcodes,(str:gsub(".",n_replacements)))
end
+
+function characters.remapentity(chr,slot)
+ texsprint(format("{\\catcode%s=13\\xdef%s{\\string%s}}",slot,utfchar(slot),chr))
+end
+
function lxml.mml.mo(id,pattern)
local str = xml.content(lxml.id(id),pattern) or ""
- tex.sprint(tex.ctxcatcodes,(str:gsub(".",o_replacements)))
+ texsprint(tex.ctxcatcodes,(utf.gsub(str,".",o_replacements)))
end
+
function lxml.mml.mi(id,pattern)
local str = xml.content(lxml.id(id),pattern) or ""
- str = str:gsub("^%s*(.*)%s*$","%1")
+ -- str = str:gsub("^%s*(.-)%s*$","%1")
local rep = i_replacements[str]
if rep then
- tex.sprint(tex.ctxcatcodes,rep)
+ texsprint(tex.ctxcatcodes,rep)
else
- tex.sprint(tex.ctxcatcodes,(str:gsub(".",i_replacements)))
+ texsprint(tex.ctxcatcodes,(str:gsub(".",i_replacements)))
end
end
+function table.keys_as_string(t)
+ local k = { }
+ for k,_ in pairs(t) do
+ k[#k+1] = k
+ end
+ return concat(k,"")
+end
+
+--~ local leftdelimiters = "[" .. table.keys_as_string(l_replacements) .. "]"
+--~ local rightdelimiters = "[" .. table.keys_as_string(r_replacements) .. "]"
+
function lxml.mml.mfenced(id,pattern) -- multiple separators
id = lxml.id(id)
local left, right, separators = id.at.open or "(", id.at.close or ")", id.at.separators or ","
- local l, r = left:find("[%(%{%<%[]"), right:find("[%)%}%>%]]")
+ local l, r = l_replacements[left], r_replacements[right]
texsprint(tex.ctxcatcodes,"\\enabledelimiter")
if l then
- texsprint(tex.ctxcatcodes,o_replacements[left])
+ texsprint(tex.ctxcatcodes,l_replacements[left] or o_replacements[left] or "")
else
texsprint(tex.ctxcatcodes,o_replacements["@l"])
texsprint(tex.ctxcatcodes,left)
@@ -145,7 +515,7 @@ function lxml.mml.mfenced(id,pattern) -- multiple separators
lxml.all(id,pattern)
else
local t = { }
- for s in utf.gmatch(separators,"([^%s])") do
+ for s in utf.gmatch(separators,"[^%s]") do
t[#t+1] = s
end
for i=1,n do
@@ -154,6 +524,8 @@ function lxml.mml.mfenced(id,pattern) -- multiple separators
local m = t[i] or t[#t] or ""
if m == "|" then
m = "\\enabledelimiter\\middle|\\relax\\disabledelimiter"
+ elseif m == doublebar then
+ m = "\\enabledelimiter\\middle|\\relax\\disabledelimiter"
elseif m == "{" then
m = "\\{"
elseif m == "}" then
@@ -165,7 +537,7 @@ function lxml.mml.mfenced(id,pattern) -- multiple separators
end
texsprint(tex.ctxcatcodes,"\\enabledelimiter")
if r then
- texsprint(tex.ctxcatcodes,o_replacements[right])
+ texsprint(tex.ctxcatcodes,r_replacements[right] or o_replacements[right] or "")
else
texsprint(tex.ctxcatcodes,right)
texsprint(tex.ctxcatcodes,o_replacements["@r"])
@@ -242,8 +614,106 @@ local frametypes = {
dashed = "on",
}
-function lxml.mml.mtable(root)
+-- crazy element ... should be a proper structure instead of such a mess
+
+function lxml.mml.mcolumn(root)
+ root = lxml.id(root)
+ local matrix, numbers = { }, 0
+ local function collect(m,dk)
+ local tag = dk.tg
+ if tag == "mi" or tag == "mn" or tag == "mo" or tag == "mtext" then
+ local str = xml.content(dk)
+ for s in utfcharacters(str) do -- utf.gmatch(str,".") btw, the gmatch was bugged
+ m[#m+1] = { tag, s }
+ end
+ if tag == "mn" then
+ local n = utf.len(str)
+ if n > numbers then
+ numbers = n
+ end
+ end
+ elseif tag == "mspace" or tag == "mline" then
+ local str = dk.at.spacing or ""
+ for s in utfcharacters(str) do -- utf.gmatch(str,".") btw, the gmatch was bugged
+ m[#m+1] = { tag, s }
+ end
+ elseif tag == "mline" then
+ m[#m+1] = { tag, dk }
+ end
+ end
+ for r, d, k in xml.elements(root,"/*") do
+ local m = { }
+ matrix[#matrix+1] = m
+ local dk = d[k]
+ if dk.tg == "mrow" then
+ -- only one level
+ for r, d, k in xml.elements(dk,"/*") do
+ collect(m,d[k])
+ end
+ else
+ collect(m,dk)
+ end
+ end
+ tex.sprint(tex.ctxcatcodes,"\\halign\\bgroup\\hss$#$&$#$\\cr")
+ for i=1,#matrix do
+ local m = matrix[i]
+ local mline = true
+ for j=1,#m do
+ if m[j][1] ~= "mline" then
+ mline = false
+ break
+ end
+ end
+ if mline then
+ tex.sprint(tex.ctxcatcodes,"\\noalign{\\obeydepth\\nointerlineskip}")
+ end
+ for j=1,#m do
+ local mm = m[j]
+ local tag, chr = mm[1], mm[2]
+ if tag == "mline" then
+--~ local n, p = true, true
+--~ for c=1,#matrix do
+--~ local mc = matrix[c][j]
+--~ if mc then
+--~ mc = mc[2]
+--~ if type(mc) ~= "string" then
+--~ n, p = false, false
+--~ break
+--~ elseif mc:find("^[%d ]$") then -- rangecheck is faster
+--~ -- digit
+--~ elseif not mc:find("^[%.%,]$") then -- rangecheck is faster
+--~ -- punctuation
+--~ else
+--~ n = false
+--~ break
+--~ end
+--~ end
+--~ end
+--~ if n then
+--~ chr = "\\mmlmcolumndigitrule"
+--~ elseif p then
+--~ chr = "\\mmlmcolumnpunctuationrule"
+--~ else
+--~ chr = "\\mmlmcolumnsymbolrule" -- should be widest char
+--~ end
+ chr = "\\hrulefill"
+ elseif tag == "mspace" then
+ chr = "\\mmlmcolumndigitspace" -- utfchar(0x2007)
+ end
+ if j == numbers + 1 then
+ tex.sprint(tex.ctxcatcodes,"&")
+ end
+ local nchr = n_replacements[chr]
+ tex.sprint(tex.ctxcatcodes,nchr or chr)
+ end
+ tex.sprint(tex.ctxcatcodes,"\\crcr")
+ end
+ tex.sprint(tex.ctxcatcodes,"\\egroup")
+end
+
+local spacesplitter = lpeg.Ct(lpeg.splitat(" "))
+function lxml.mml.mtable(root)
root = lxml.id(root)
-- todo: align, rowspacing, columnspacing, rowlines, columnlines
@@ -252,10 +722,13 @@ function lxml.mml.mtable(root)
local rowalign = at.rowalign
local columnalign = at.columnalign
local frame = at.frame
- local rowaligns = rowalign and rowalign :split(" ") -- we have a faster one
- local columnaligns = columnalign and columnalign:split(" ") -- we have a faster one
- local frames = frame and frame :split(" ") -- we have a faster one
- local framespacing = at.framespacing or ".5ex"
+ local rowaligns = rowalign and spacesplitter:match(rowalign)
+ local columnaligns = columnalign and spacesplitter:match(columnalign)
+ local frames = frame and spacesplitter:match(frame)
+ local framespacing = at.framespacing or "0pt"
+ local framespacing = at.framespacing or "-\\ruledlinewidth" -- make this an option
+
+--~ function texsprint(a,b) print(b) end
texsprint(tex.ctxcatcodes, format("\\bTABLE[frame=%s,offset=%s]",frametypes[frame or "none"] or "off",framespacing))
for r, d, k in xml.elements(root,"/(mml:mtr|mml:mlabeledtr)") do
@@ -266,23 +739,28 @@ function lxml.mml.mtable(root)
local rfr = at.frame or (frames and frames [#frames])
local rra = at.rowalign or (rowaligns and rowaligns [#rowaligns])
local rca = at.columnalign or (columnaligns and columnaligns[#columnaligns])
+ local ignorelabel = dk.tg == "mlabeledtr"
for rr, dd, kk in xml.elements(dk,"/mml:mtd") do
col = col + 1
- local dk = dd[kk]
- local at = dk.at
- local rowspan, columnspan = at.rowspan or 1, at.columnspan or 1
- local cra = rowalignments [at.rowalign or (rowaligns and rowaligns [col]) or rra or "center"] or "lohi"
- local cca = columnalignments[at.columnalign or (columnaligns and columnaligns[col]) or rca or "center"] or "middle"
- local cfr = frametypes [at.frame or (frames and frames [col]) or rfr or "none" ] or "off"
- texsprint(tex.ctxcatcodes,format("\\bTD[align={%s,%s},frame=%s,nx=%s,ny=%s]$\\ignorespaces",cra,cca,cfr,columnspan,rowspan))
- xmlcprint(dk)
- texsprint(tex.ctxcatcodes,"\\removeunwantedspaces$\\eTD") -- $
- end
- if dk.tg == "mlabeledtr" then
- texsprint(tex.ctxcatcodes,"\\bTD")
- xmlcprint(xml.first(dk,"/!mml:mtd"))
- texsprint(tex.ctxcatcodes,"\\eTD")
+ if ignorelabel and col == 1 then
+ -- get rid of label, should happen at the document level
+ else
+ local dk = dd[kk]
+ local at = dk.at
+ local rowspan, columnspan = at.rowspan or 1, at.columnspan or 1
+ local cra = rowalignments [at.rowalign or (rowaligns and rowaligns [col]) or rra or "center"] or "lohi"
+ local cca = columnalignments[at.columnalign or (columnaligns and columnaligns[col]) or rca or "center"] or "middle"
+ local cfr = frametypes [at.frame or (frames and frames [col]) or rfr or "none" ] or "off"
+ texsprint(tex.ctxcatcodes,format("\\bTD[align={%s,%s},frame=%s,nx=%s,ny=%s]$\\ignorespaces",cra,cca,cfr,columnspan,rowspan))
+ xmlcprint(dk)
+ texsprint(tex.ctxcatcodes,"\\removeunwantedspaces$\\eTD") -- $
+ end
end
+--~ if dk.tg == "mlabeledtr" then
+--~ texsprint(tex.ctxcatcodes,"\\bTD")
+--~ xmlcprint(xml.first(dk,"/!mml:mtd"))
+--~ texsprint(tex.ctxcatcodes,"\\eTD")
+--~ end
texsprint(tex.ctxcatcodes,"\\eTR")
end
texsprint(tex.ctxcatcodes, "\\eTABLE")
@@ -291,10 +769,17 @@ end
function lxml.mml.csymbol(root)
root = lxml.id(root)
local encoding = root.at.encoding or ""
- local hash = url.hashed((root.at.definitionUrl or ""):lower())
+ local hash = url.hashed(lower(root.at.definitionUrl or ""))
local full = hash.original or ""
local base = hash.path or ""
local text = string.strip(xml.content(root) or "")
texsprint(tex.ctxcatcodes,format("\\mmlapplycsymbol{%s}{%s}{%s}{%s}",full,base,encoding,text))
end
+function lxml.mml.menclosepattern(root)
+ root = lxml.id(root)
+ local a = root.at.notation
+ if a and a ~= "" then
+ texsprint("mml:enclose:"..a:gsub(" +",",mml:enclose:"))
+ end
+end
diff --git a/Master/texmf-dist/tex/context/base/x-mathml.mkii b/Master/texmf-dist/tex/context/base/x-mathml.mkii
new file mode 100644
index 00000000000..101f65c5b6f
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/x-mathml.mkii
@@ -0,0 +1,28 @@
+%D \module
+%D [ file=x-mathml,
+%D version=1999.12.20,
+%D title=\CONTEXT\ XML Modules,
+%D subtitle=Loading \MATHML\ Filters,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D We have to make sure that some basic entities are
+%D loaded:
+
+\useXMLfilter[ent]
+
+%D Then we load the math:
+
+\useXMLfilter[mml,mmp,mmc]
+
+%D And we also load the whole bunch of entities:
+
+% \useXMLfilter[mea,meb,mec,meh,men,meo,mer]
+% \useXMLfilter[mxa,mxb,mxc,mxh,mxn,mxo,mxr]
+
+\endinput
diff --git a/Master/texmf-dist/tex/context/base/x-mmc.mkiv b/Master/texmf-dist/tex/context/base/x-mathml.mkiv
index 042ef340652..649798c9fe2 100644
--- a/Master/texmf-dist/tex/context/base/x-mmc.mkiv
+++ b/Master/texmf-dist/tex/context/base/x-mathml.mkiv
@@ -1,121 +1,119 @@
%D \module
-%D [ file=x-newmml,
-%D version=2005.06.10, % 1999.12.20,
+%D [ file=x-mathml,
+%D version=2008.05.29,
%D title=\CONTEXT\ XML Modules,
-%D subtitle=MathML Renderer,
+%D subtitle=Loading \MATHML\ Filters,
%D author=Hans Hagen,
%D date=\currentdate,
-%D copyright={PRAGMA ADE}]
+%D copyright={PRAGMA ADE / Hans Hagen \& Ton Otten}]
%C
%C This module is part of the \CONTEXT\ macro||package and is
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-% todo: more consistent both pi's and attributes to apply
-
-\doifnotmode {atpragma} {\endinput}
-
% \xmlfilter{#1}{/*/name()} -> \xmltag
-\xmlresolveentities
-
-\startluacode
- function math.register_xml_entities()
- local entities, char = xml.entities, utf.char
- for name, unicode in pairs(math.entities) do
- if not entities[name] then
- entities[name] = char(unicode)
- end
- end
- end
- math.register_xml_entities()
-
- -- not yet needed, we have class info in char-def already
- --
- -- characters.data[0x2190].activemath = "mathleftarrow"
- -- characters.data[0x2190].activemath = "mathuparrow"
- -- characters.data[0x2192].activemath = "mathrightarrow"
- -- characters.data[0x2193].activemath = "mathdownarrow"
- --
- -- function characters.activate(catcodes)
- -- local char, sprint, format = utf.char, tex.sprint, string.format
- -- for k,v in pairs(characters.data) do
- -- local a = v.activemath
- -- if a then -- how fast is this?
- -- sprint(format("\\letcatcodecommand %s %s \\%s",catcodes,k,a))
- -- end
- -- end
- -- end
- --
- -- better do this the official way, i.e. defineactivecharacter since it
- -- permits different meanings for different catcode tables (todo)
- --
- -- characters.activate(tex.ctxcatcodes)
- -- characters.activate(tex.notcatcodes)
-\stopluacode
-
-% \def\mathrightarrow{\normalorfiller\rightarrow\rightarrowfill}
-% \def\mathleftarrow {\normalorfiller\leftarrow \leftarrowfill}
-% \def\mathdownarrow {\mathortext \downarrow \empty}
-% \def\mathuparrow {\mathortext \uparrow \empty}
-
-% \def\mathunderbrace{\normalorfiller\empty\upbracefill}
-% \def\mathoverbrace {\normalorfiller\empty\downbracefill}
-% \def\mathunderbar {\normalorfiller\hrule\hrulefill}
-% \def\mathoverbar {\normalorfiller\hrule\hrulefill}
-% \def\mathhat {\normalorfiller\empty\empty} % todo
+% This module is under construction and will be cleaned up.
-%D Remark: from now on this is a module and no longer an xtag
-%D filter. There is an intermediate cleaner module but it has
-%D some namespace limitations. Here we do it the \MKV\ way.
+\writestatus{loading}{ConTeXt XML Macros / MathML Renderer}
\unprotect
-\def\widevec#1%
- {\vbox{\m@th\ialign{##\crcr
- \rightarrowfill\crcr\noalign{\nointerlineskip}%
- $\hfil\displaystyle{#1}\hfil$\crcr}}}
+\startmodule [mathml]
-\protect
+\ctxloadluafile{x-mathml}{}
-\ifx\inlinemathematics\undefined
- \def\inlinemathematics {\dontleavehmode\mathematics} % already in kernel
- \long\def\inlinemath #1{\dontleavehmode\relax\ifmmode#1\else $#1$\fi}
-\fi
+\startxmlsetups xml:mml:define
+ \xmlsetsetup{\xmldocument} {(formula|subformula)} {mml:formula}
+ \xmlfilter {\xmldocument} {omt:*/function(remapopenmath)}
+ \xmlfilter {\xmldocument} {mml:bind/function(remapmmlbind)}
+ \xmlfilter {\xmldocument} {mml:csymbol/function(remapmmlcsymbol)}
+ \xmlsetsetup{\xmldocument} {mml:*} {*}
+ \xmlsetsetup{\xmldocument} {mml:apply/mml:apply/mml:inverse/../../..} {mml:apply:inverse}
+ \xmlstrip {\xmldocument} {(mml:mi|mml:mo|mml:mn|mml:mtext|mml:csymbol)}
+\stopxmlsetups
-%D Then we start defining the rendering macros:
+\xmlregisterns{omt}{openmath}
+\xmlregisterns{mml}{mathml}
-\writestatus{loading}{Context XML Macros (MathML Renderer)}
+\xmlregistersetup{xml:mml:define}
-\startmodule [mathml]
+\def\setupMMLappearance[#1]{\dodoubleargument\getparameters[@@MML#1]}
-\ctxlua{environment.loadlucfile("x-mathml")}
+\def\MMLhack{\let\MMLpar\par \let\par\relax \everyvbox{\let\par\MMLpar}}
-\unprotect
+\xmlmapvalue {mml:math:mode} {display} {\displaymathematics}
+\xmlmapvalue {mml:math:mode} {inline} {\inlinemathematics}
-\def\MMLrm{\mr}
+\startxmlsetups mml:math
+ \xmlval{mml:math:mode}{\xmlatt{#1}{mode}}{\automathematics}{\MMLhack\xmlflush{#1}}
+\stopxmlsetups
-\def\MMLseparator#1{\removeunwantedspaces{#1}\ignorespaces} % nils space after separator
+\startxmlsetups mml:imath
+ \inlinemathematics{\MMLhack\xmlflush{#1}}
+\stopxmlsetups
+
+\startxmlsetups mml:dmath
+ \displaymathematics{\MMLhack\xmlflush{#1}}
+\stopxmlsetups
%D First we define some general formula elements.
- % \defineXMLenvironment [formula] [label=,sublabel=]
- % {\dostartXMLformula\placeformula}
- % {\dostopXMLformula}
+\startxmlsetups mml:formula
+ \edef\mmlformulalabel {\xmlatt{#1}{label}\xmlatt{#1}{id}}
+ \edef\mmlformulasublabel{\xmlatt{#1}{sublabel}\xmlatt{#1}{id}}
+ \doifsomething\mmlformulalabel{\placeformula[\mmlformulalabel]{\mmlformulasublabel}}
+ \startformula\MMLhack\xmlfirst{#1}{/mml:math}\stopformula
+\stopxmlsetups
+
+\setfalse\mmlignoredelimiter
+\settrue \mmlsomeleftdelimiter
+
+\def\MMLleftorright
+ {\ifconditional\mmlsomeleftdelimiter
+ \setfalse\mmlsomeleftdelimiter\expandafter\MMLleft
+ \else
+ \settrue \mmlsomeleftdelimiter\expandafter\MMLright
+ \fi}
+
+\ifx\MMLleft \undefined \let\MMLleft \firstofoneargument \fi
+\ifx\MMLright \undefined \let\MMLright \firstofoneargument \fi
+\ifx\MMLmiddle\undefined \let\MMLmiddle\firstofoneargument \fi
+
+\def\mmlleftdelimiter #1{\ifconditional\mmlignoredelimiter#1\else\normalordelimiter{#1}{\MMLleft #1}\fi}
+\def\mmlrightdelimiter #1{\ifconditional\mmlignoredelimiter#1\else\normalordelimiter{#1}{\MMLright #1}\fi}
+\def\mmlmiddledelimiter #1{\ifconditional\mmlignoredelimiter#1\else\normalordelimiter{#1}{\MMLmiddle #1}\fi}
+\def\mmlleftorrightdelimiter#1{\ifconditional\mmlignoredelimiter#1\else\normalordelimiter{#1}{\MMLleftorright#1}\fi}
- % \defineXMLenvironment [subformula] [label=,sublabel=]
- % {\dostartXMLformula\placesubformula}
- % {\dostopXMLformula}
+\def\mmlchar#1{\char#1 } % used in lua code
- % \def\dostartXMLformula#1%
- % {\doifelsenothingXMLop{label}
- % {\startformula}
- % {\expanded{#1[\XMLop{label}]{\XMLop{sublabel}}}\startformula}}
+% \newcount\delimiternesting \appendtoks \delimiternesting\zerocount \to \everymathematics
- % \def\dostopXMLformula
- % {\stopformula}
+% \def\mmlleftdelimiter #1{\ifconditional\mmlignoredelimiter#1\else\normalordelimiter{#1}{%
+% \advance\delimiternesting\plusone \MMLleft #1}\fi}
+% \def\mmlrightdelimiter #1{\ifconditional\mmlignoredelimiter#1\else\normalordelimiter{#1}{%
+% \advance\delimiternesting\plusone \MMLright#1}\fi}
+% \def\mmlmiddledelimiter#1{\ifconditional\mmlignoredelimiter#1\else\normalordelimiter{#1}{%
+% \ifcase\delimiternesting\MMLleft\else\MMLmiddle\fi#1}\fi}
-%D Since I only had the draft of MathML 2 as example of
+
+%D Remark: from now on this is a module and no longer an xtag
+%D filter. There is an intermediate cleaner module but it has
+%D some namespace limitations. Here we do it the \MKV\ way.
+
+\def\widevec#1%
+ {\vbox{\mathsurround\zeropoint\ialign{##\crcr
+ \rightarrowfill\crcr\noalign{\nointerlineskip}%
+ $\hfil\displaystyle{#1}\hfil$\crcr}}}
+
+%D The rendering macros:
+
+\def\MMLrm{\mr}
+
+\def\MMLseparator#1{\removeunwantedspaces{#1}\ignorespaces} % nils space after separator
+\def\MMLseparator#1{,} % todo, for europe we need to block the space
+
+%D Since I only had the draft of MathML 2 and later 3 as example of
%D rendering, there are probably a lot of omissions and
%D misinterpretations. At least I learned some bits and
%D pieces of math rendering.
@@ -148,10 +146,10 @@
%D We start with the parent elements and the option handler.
-% \defineXMLdirective [mathml] \setupMMLappearance % todo
-
\def\xmlmathmldirective#1{\dosetvalue{MML#1}}
+%def\xmlmathmldirective#1#2#3{[#1][#2][#3]\dosetvalue{MML#1}{#2}{#3}}
+
%D In the styles, options can be set with:
\def\setupMMLappearance[#1]{\dodoubleargument\getparameters[MML#1]} % no @@ because passed to lua
@@ -164,11 +162,11 @@
%D Auxiliary MathML macros: (to be generalized)
-\def\mmlfirst #1{\xmlindex{#1}{/*}{1}} % \xmlsnippet{1}
-\def\mmlsecond #1{\xmlindex{#1}{/*}{2}} % \xmlsnippet{2}
-\def\mmlthird #1{\xmlindex{#1}{/*}{3}} % \xmlsnippet{3}
-\def\mmlprelast#1{\xmlindex{#1}{/*}{-2}} %
-\def\mmllast #1{\xmlin{#1}{/*}{-1}} %
+\def\mmlfirst #1{\xmlelement{#1}{1}} % we can move these inline if needed
+\def\mmlsecond #1{\xmlelement{#1}{2}}
+\def\mmlthird #1{\xmlelement{#1}{3}}
+\def\mmlprelast#1{\xmlelement{#1}{-2}}
+\def\mmllast #1{\xmlelement{#1}{-1}}
\starttexdefinition doifelsemmlfunction #1
\xmldoifelse {#1} {/mml:fn} {
@@ -300,7 +298,7 @@
% \MMLcreset
}
% \MMLdoL
-% \xmlfirst{#1}{/*}
+% \mmlfirst{#1}
% \ifconditional\somepostponedMMLactions
% \postponedMMLactions
% \else
@@ -326,61 +324,37 @@
\xmlflush{#1}
\xmlall{#1}{../[position()>1]}
\stopxmlsetups
+
\startxmlsetups mml:apply:mml:fn
- \hbox{todo}% obsolete
+ \xmldoifelse {#1} {/mml:ci} {
+ \edef\mmlfnci{\xmlcontent{#1}{/mml:ci}}% replaces \XMLfnoperator
+ \doifsetupselse{mml:fn:\mmlfnci} { % was mmc:fn:...
+ \xmlsetup{#1}{mml:fn:\mmlfnci} % \MMLdoL/MMLdoR to be handled in plugin
+ } {
+ \MMLcreset
+ \MMLdoL
+ \mmlfirst{#1}
+ \ifnum\xmlnofelements{#1}>\plusone
+ \negthinspace % not enough
+ \left(\MMLcreset\xmlconcatrange{#1}{/*}{2}{}{\MMLseparator,}\right)
+ \fi
+ \MMLdoR
+ }
+ } {
+ \MMLcreset
+ \MMLdoL
+ \xmlall{#1}{/*}
+ \MMLdoR
+ }
\stopxmlsetups
-\startxmlsetups mml:apply:mml:csymbol
- \hbox{todo}
-\stopxmlsetups
-
- % \startsetups mmc:fn:apply
- % \begingroup
- % \rawXMLstacktext\plusone % still on stack, no check, just fn content
- % \doifelse {\getXMLstackname\plusone} {ci} {
- % \flattenXMLcontent{\getXMLstackdata\plusone}
- % \doifsetupselse{mmc:fn:\flattenedXMLcontent} {
- % % \MMLdoL/MMLdoR to be handled in plugin
- % \global\defXMLstackdata\XMLfnoperator\plusone
- % \expanded{\endgroup\noexpand\directsetup{mmc:fn:\flattenedXMLcontent}}
- % } {
- % \endgroup
- % \MMLcreset
- % \MMLdoL
- % \getXMLstackdata\plusone
- % \ifnum\XMLstacklevel>\plusone
- % \getXMLentity{NegThinSpace}
- % \left(\MMLcreset\flushXMLstackwith\plustwo{\MMLseparator,}\right)
- % \fi
- % \MMLdoR
- % }
- % } {
- % \endgroup
- % \MMLcreset
- % \MMLdoL
- % \getXMLstackdata\plusone
- % \MMLdoR
- % }
- % \stopsetups
-
- % \startsetups mmc:csymbol:apply
- % \begingroup
- % \defineXMLsave[csymbol][definitionURL=,encoding=]
- % \rawXMLstackdata\plusone % was text % still on stack, no check, just attr test
- % % \MMLdoL/MMLdoR to be handled in plugin
- % \lowercasestring\XMLpar{csymbol}{definitionURL}{}\to\mmcSymbolURL
- % \doifsetupselse{mmc:csymbol:\mmcSymbolURL} {
- % \expanded{\endgroup\noexpand\directsetup{mmc:csymbol:\mmcSymbolURL}}
- % } {
- % \endgroup
- % %\XMLval{mmc:cs}{\XMLop{encoding}}{\firstofoneargument}% fails when no content
- % \XMLval{mmc:cs}{\XMLop{encoding}}{}
- % }
- % \stopsetups
+\startxmlsetups mml:apply:mml:csymbol
+ \xmlsetup{#1}{mml:csymbol} % \MMLdoL/MMLdoR to be handled in plugin
+\stopxmlsetups
\startxmlsetups mml:apply:mml:ci
\xmlfirst{#1}{/mml:ci}
- \ifnum\xmlcount{#1}{/*}>\plusone
+ \ifnum\xmlnofelements{#1}>\plusone
\left(\MMLcreset\xmlconcatrange{#1}{/*}{2}{}{\MMLseparator,}\right)
\fi
\stopxmlsetups
@@ -393,96 +367,78 @@
% fn
- \startsetups mmc:fn:plusminus
- \ifnum\XMLstacklevel>\plustwo
- \MMLcreset
- \left(\expandafter\flushXMLstackwith\expandafter\plustwo\expandafter{\XMLfnoperator}\right)
- \else
- \getXMLstackdata\plustwo
- \fi
- \stopsetups
-
- \startsetups mmc:fn:minusplus
- \directsetup{mmc:fn:plusminus}
- \stopsetups
-
- \defineXMLnested
- [fn]
- {\directsetup{mmc:fn:start}}
- {\directsetup{mmc:fn:stop}}
-
- \startsetups mmc:fn:apply
- \begingroup
- \rawXMLstacktext\plusone % still on stack, no check, just fn content
- \doifelse {\getXMLstackname\plusone} {ci} {
- \flattenXMLcontent{\getXMLstackdata\plusone}
- \doifsetupselse{mmc:fn:\flattenedXMLcontent} {
- \global\defXMLstackdata\XMLfnoperator\plusone
- \expanded{\endgroup\noexpand\directsetup{mmc:fn:\flattenedXMLcontent}}
- } {
- \endgroup
- \MMLcreset
- \getXMLstackdata\plusone
- \ifnum\XMLstacklevel>\plusone
- \getXMLentity{NegThinSpace}
- \left(\MMLcreset\flushXMLstackwith\plustwo{\MMLseparator,}\right)
- \fi
- }
- } {
- \endgroup
- \MMLcreset
- \getXMLstackdata\plusone
- }
- \stopsetups
-
- \startsetups mmc:fn:start
- \ifnum\XMLstacklevel>\plustwo
- \def\MMCfnleft {\left(}
- \def\MMCfnright{\right)}
- \else
- \let\MMCfnleft \relax
- \let\MMCfnright\relax
- \fi
- \begingroup
- \stopsetups
-
- \startsetups mmc:fn:stop
- \doifelse {\getXMLstackname\plusone} {ci} {
- \flattenXMLcontent{\getXMLstackdata\plusone}
- \doifsetupselse{mmc:fn:\flattenedXMLcontent} {
- \global\defXMLstackdata\XMLfnoperator\plusone
- \directsetup{mmc:fn:\flattenedXMLcontent}
- } {
- \MMLcreset
- \getXMLstackdata\plusone
- }
- \endgroup
- } {
- \doifelse {\getXMLstackname\plusone} {apply} {
- \xmldoifelse {#1} {/(mml:plus\string|mml:minus)} {
- \left(
- \getXMLstackdata\plusone
- \right)
- } {
- \getXMLstackdata\plusone
- }
- \endgroup
- \ifnum\XMLstacklevel>\plusone
- \left(
- \getXMLstackdata\plustwo
- \right)
- \fi
- } {
- \MMLcreset
- \getXMLentity{NegThinSpace}
- \MMCfnleft
- \ifnum\XMLstacklevel=\plustwo,\fi
- \flushXMLstackwith\plustwo,
- \MMCfnright
- \endgroup
- }
- }
- \stopsetups
+\startxmlsetups mmc:fn:\utfchar{"00B1} % plusminus ±
+ \ifnum\xmlnofelements{#1}>\plustwo
+ \MMLcreset
+ \left(\xmlconcat{#1}{/*}{2}{}{\mmlfirst{#1}}\right)
+ \else
+ \mmlfirst{#1}
+ \fi
+\stopxmlsetups
+
+\startxmlsetups mmc:fn:\utfchar{"2213} % minusplus
+ \xmlsetup{#1}{mmc:fn:plusminus}
+\stopxmlsetups
+
+\startxmlsetups mmc:fn
+ \begingroup
+ \edef\mmlnoffn{\xmlnofelements{#1}}
+ \ifnum\mmlnoffn>\plustwo
+ \def\MMCfnleft {\left(}
+ \def\MMCfnright{\right)}
+ \else
+ \let\MMCfnleft \relax
+ \let\MMCfnright\relax
+ \fi
+ \xmldoifelse {#1} {/mml:ci} { % first
+ \edef\mmlfnci{\xmlcontent{#1}{/mml:ci}}% replaces \XMLfnoperator
+ \doifsetupselse{mml:fn:\mmlfnci} { % was mmc:fn:...
+ \xmlsetup{#1}{mml:fn:\mmlfnci} % \MMLdoL/MMLdoR to be handled in plugin
+ } {
+ \MMLcreset
+ \getXMLstackdata\plusone
+ }
+ } {
+ \xmldoifelse {#1} {/mml:apply} { % first
+ \xmldoifelse {#1} {/(mml:plus\string|mml:minus)} {
+ \left(\mmlfirst{#1}\right)
+ } {
+ \mmlfirst{#1}
+ }
+ \ifnum\mmlnoffn>\plusone
+ \left(\xmlall{#1}{/!mml:apply}\right)
+ \fi
+ } {
+ \MMLcreset
+ \negthinspace
+ \MMCfnleft
+ \ifnum\mmlnoffn=\plustwo,\fi
+ \xmlconcat{#1}{/*}{2}{}{\MMLseparator,}
+ \MMCfnright
+ }
+ }
+ \endgroup
+\stopxmlsetups
+
+\startxmlsetups mmc:fn:apply % where used?
+ \xmldoifelse {#1} {/mml:ci} { % first
+ \edef\mmlfnci{\xmlcontent{#1}{/mml:ci}}% replaces \XMLfnoperator
+ \doifsetupselse{mml:fn:\mmlfnci} { % was mmc:fn:...
+ \xmlsetup{#1}{mml:fn:\mmlfnci} % \MMLdoL/MMLdoR to be handled in plugin
+ } {
+ \MMLcreset
+ \mmlfirst{#1}
+ \ifnum\xmlnofelements{#1}>\plusone
+ \negthinspace
+ \left(\MMLcreset\xmlconcat{#1}{2}{}{\MMLseparator,}\right)
+ \fi
+ }
+ } {
+ \endgroup
+ \MMLcreset
+ \mmlfirst{#1}
+ }
+\stopxmlsetups
%D The next definition provide a kind of plug-in mechanism (see
%D the open math extension module).
@@ -499,10 +455,10 @@
\directsetup{mml:csymbol:#1}
} {
% somename (fallback)
- \doifsetupselse {mmc:csymbol:#2} {
+ \doifsetupselse {mml:csymbol:#2} {
\directsetup{mml:csymbol:#2}
} {
- \XMLval{mmc:cs}{#3}{}% todo
+ \xmlval{mmc:cs}{#3}{}% todo
}
}
}
@@ -512,6 +468,10 @@
\ctxlua{lxml.mml.csymbol("#1")}
\stopxmlsetups
+\startxmlsetups mml:csymbol:cdots
+ \cdots
+\stopxmlsetups
+
% \startxmlsetups mml:csymbol:<url> \stopxmlsetups
%D Alternative b will convert periods into comma's:
@@ -555,7 +515,7 @@
\stopxmlsetups
\startxmlsetups mml:ci:set
- {\bbd\xmlflush{#1}}
+ {\blackboard{\xmlflush{#1}}} % todo
\stopxmlsetups
\startxmlsetups mml:ci:vector
@@ -567,7 +527,7 @@
\stopxmlsetups
\startxmlsetups mml:ci:function
- \xmlflush{#1}\negthinspace
+ \xmlflush{#1}% \negthinspace
\stopxmlsetups
\startxmlsetups mml:ci:fn
@@ -639,25 +599,25 @@
\startxmlsetups mml:cn:polar:a
\mathopnolimits{Polar}% ? ? ?
- \left(\xmlsnippet{#1}{1},\xmlsnippet{#1}{1}\right)
+ \left(\xmlsnippet{#1}{1},\xmlsnippet{#1}{3}\right)
\stopxmlsetups
\startxmlsetups mml:cn:polar:b
% {\mr e}^{\xmlsnippet{#1}{1}\mskip2mu\getXMLentity{imaginaryi}}
- {\mr e}^{\xmlsnippet{#1}{1}+\xmlsnippet{#1}{3}{\mr i}}
+ {\mr e}^{\xmlsnippet{#1}{1}+\xmlsnippet{#1}{3}\thinspace{\mr i}}
\stopxmlsetups
\startxmlsetups mml:cn:polar:c
% \exp\left(\xmlsnippet{#1}{1}\mskip2mu\getXMLentity{imaginaryi}\right)}
- \exp\left(\xmlsnippet{#1}{1}+\xmlsnippet{#1}{3}\mskip2mu\getXMLentity{imaginaryi}\right)
+ \exp\left(\xmlsnippet{#1}{1}+\xmlsnippet{#1}{3}\thinspace\getXMLentity{imaginaryi}\right)
\stopxmlsetups
\startxmlsetups mml:cn:complex-polar
\xmlsetup{#1}{mml:cn:polar}
\stopxmlsetups
-\startxmlsetups mml:cn:complex
- \xmlsnippet{#1}{1} + \xmlsnippet{#1}{3}{\mr i}
+\startxmlsetups mml:cn:complex % todo ( )
+ \left(\xmlsnippet{#1}{1} + \xmlsnippet{#1}{3}\thinspace{\mr i}\right)
\stopxmlsetups
\startxmlsetups mml:cn:complex-cartesian
@@ -718,71 +678,71 @@
\setupMMLappearance[interval][\c!alternative=\v!a,\c!separator={,}]
+% when empty element, then it's an apply
+
\startxmlsetups mml:interval
- \xmlsetup{#1}{mml:interval:\xmlattdef{#1}{closure}{closed}}
+ \xmldoifelseempty {#1} {} {
+ % #1 == interval
+ \let\mmlintervalfirst \mmlfirst
+ \let\mmlintervalsecond\mmlsecond
+ \xmlsetup{#1}{mml:interval:\xmlattdef{#1}{closure}{closed}}
+ } {
+ % #1 == apply
+ \let\mmlintervalfirst \mmlsecond
+ \let\mmlintervalsecond\mmlthird
+ \xmlsetup{#1}{mml:interval:\xmlattributedef{#1}{/mml:interval}{closure}{closed}}
+ }
\stopxmlsetups
\startxmlsetups mml:interval:closed
- \left[\mmlfirst{#1}\MMLseparator\MMLintervalseparator\mmlsecond{#1}\right]
+ \left[\mmlintervalfirst{#1}\MMLseparator\MMLintervalseparator\mmlintervalsecond{#1}\right]
\stopxmlsetups
\startxmlsetups mml:interval:open-closed
\doifelse \MMLintervalalternative \v!b {
- \left<\mmlfirst{#1}\MMLseparator\MMLintervalseparator\mmlsecond{#1}\right]
+ \left<\mmlintervalfirst{#1}\MMLseparator\MMLintervalseparator\mmlintervalsecond{#1}\right]
} {
- \left(\mmlfirst{#1}\MMLseparator\MMLintervalseparator\mmlsecond{#1}\right]
+ \left(\mmlintervalfirst{#1}\MMLseparator\MMLintervalseparator\mmlintervalsecond{#1}\right]
}
\stopxmlsetups
\startxmlsetups mml:interval:closed-open
\doifelse \MMLintervalalternative \v!b {
- \left[\mmlfirst{#1}\MMLseparator\MMLintervalseparator\mmlsecond{#1}\right>
+ \left[\mmlintervalfirst{#1}\MMLseparator\MMLintervalseparator\mmlintervalsecond{#1}\right>
} {
- \left[\mmlfirst{#1}\MMLseparator\MMLintervalseparator\mmlsecond{#1}\right)
+ \left[\mmlintervalfirst{#1}\MMLseparator\MMLintervalseparator\mmlintervalsecond{#1}\right)
}
\stopxmlsetups
\startxmlsetups mml:interval:open
\doifelse \MMLintervalalternative \v!b {
- \left<\mmlfirst{#1}\MMLseparator\MMLintervalseparator\mmlsecond{#1}\right>
+ \left<\mmlintervalfirst{#1}\MMLseparator\MMLintervalseparator\mmlintervalsecond{#1}\right>
} {
- \left(\mmlfirst{#1}\MMLseparator\MMLintervalseparator\mmlsecond{#1}\right)
+ \left(\mmlintervalfirst{#1}\MMLseparator\MMLintervalseparator\mmlintervalsecond{#1}\right)
}
\stopxmlsetups
% inverse
-% \startxmlsetups mml:inverse
-% \xmldoifelse {#1} {/(\MMLcpurefunctionlist)} {
-% \mmlsecond{#1}^{-1}
-% \xmlall{#1}{/[position()>2]}
-% } {
-% {\left[\mmlthird{#1}\right]}^{-1}
-% }
-% \stopxmlsetups
-
\setfalse\xmlinversefunction
\startxmlsetups mml:apply:inverse
\settrue\xmlinversefunction
-% \ctxlua{print(table.serialize(lxml.id("#1")))}
\xmlsetup{#1}{\xmlfilter{#1}{/mml:apply/*/name(1)}}
\stopxmlsetups
-\startxmlsetups xml:mml:inverse
- \xmlsetsetup{\xmldocument}{mml:apply/mml:apply/mml:inverse/../../..}{mml:apply:inverse}
-\stopxmlsetups
-
-\xmlregistersetup{xml:mml:inverse}
-
% condition
% maybe a fast \xmlnonfirst
+% instead of the following we could do \xmlcontent{#1}{/mml:bvar} etc
+
\startxmlsetups mml:bvar \xmlflush{#1} \stopxmlsetups
\startxmlsetups mml:lowlimit \xmlflush{#1} \stopxmlsetups
\startxmlsetups mml:uplimit \xmlflush{#1} \stopxmlsetups
\startxmlsetups mml:degree \xmlflush{#1} \stopxmlsetups
+\startxmlsetups mml:logbase \xmlflush{#1} \stopxmlsetups
+\startxmlsetups mml:fn \xmlflush{#1} \stopxmlsetups
\startxmlsetups mml:condition
% \xmldoif {#1} {/mml:bvar} {
@@ -798,8 +758,8 @@
\startxmlsetups mml:declare
\doif \MMLdeclarestate \v!start {
\mathopnolimits{declare}
- \xmlindex{#1}{/*}{1}
- \ifnum \xmlcount{#1}{/} > \plusone
+ \mmlfirst{#1}
+ \ifnum\xmlnofelements{#1}>\plusone
\thickspace
\mathopnolimits{as}
\thickspace
@@ -815,9 +775,9 @@
\startxmlsetups mml:lambda
\begingroup
\doifelse \MMLlambdaalternative \v!a {
- \lambda\left(\xmlconcat{#1}{/!mml:lambda}{\MMLseparator,}\left)
+ \lambda\left(\xmlconcat{#1}{/!mml:lambda}{\MMLseparator,}\right)
} {
- \ifnum \xmlcount {#1} {/mml:bvar} > \plusone
+ \ifnum\xmlcount{#1}{/mml:bvar}>\plusone
\left(\xmlconcat{#1}{/mml:bvar}{\MMLseparator,}\right)
\else
\xmlfirst{#1}{/mml:bvar}
@@ -835,16 +795,16 @@
\begingroup
\MMLcreset
% \let\MMLcCIfunction\firstofoneargument % brrr ? ? ?
- \doifelsemmlfunction {
- \left(\xmlconcatrange{#1}{/*}{2}{}{\circ}\right)
+ \doifelsemmlfunction {#1} {
+ \left(\xmlconcat{#1}{/!mml:compose}{\circ}\right)
} {
- \xmlconcatrange{#1}{/*}{2}{}{\circ}
+ \xmlconcat{#1}{/!mml:compose}{\circ}
}
\endgroup
\stopxmlsetups
\startxmlsetups mml:image
- \mathopnolimits{image} \left( \xmlfilter{#1}{/!mml:image/name()} \right)
+ \mathopnolimits{image} \left( {\mr\xmlfilter{#1}{/!mml:image/tag()}} \right)
\stopxmlsetups
\setupMMLappearance[piece][\c!separator=]
@@ -967,16 +927,24 @@
\startsetups mml:minus
\doifelse \MMLsignreduction \v!yes {
+ \ifnum\xmlcount{#1}{/!mml:minus}=\plusone
+ -\xmlfirst{#1}{/!mml:minus}
+ \else
+ \MMLdoL
+ \xmlsetup{#1}{mml:minus:reset}
+ \xmlcommand{#1}{/!mml:minus}{mml:minus:body}
+ \MMLdoR
+ \fi
} {
+ \left( % \MMLdoL
+ \ifnum\xmlcount{#1}{/!mml:minus}=\plusone
+ -\xmlfirst{#1}{/!mml:minus}
+ \else
+ \xmlsetup{#1}{mml:minus:reset}
+ \xmlcommand{#1}{/!mml:minus}{mml:minus:body}
+ \fi
+ \right) % \MMLdoR
}
- \ifnum\xmlcount{#1}{/!mml:minus}=\plusone
- -\xmlfirst{#1}{/!mml:minus}
- \else
- \MMLdoL
- \xmlsetup{#1}{mml:minus:reset}
- \xmlcommand{#1}{/!mml:minus}{mml:minus:body}
- \MMLdoR
- \fi
\stopsetups
\startxmlsetups mml:minus:reset
@@ -1001,7 +969,7 @@
\startxmlsetups mml:power
\xmldoifelse {#1} {/mml:apply} {
\doifelse \MMLpowerreduction \v!yes {
- \xmldoifelse {#1} {/(\MMLcfunctionlist)} {
+ \xmldoifelse {#1} {/mml:apply/(\MMLcfunctionlist)} {
\gdef\MMLpowerelement{\mmlthird{#1}}% postpone, no xdef
\MMLcreset\mmlsecond{#1}
} {
@@ -1161,15 +1129,15 @@
\setupMMLappearance[relation][\c!align=\v!no]
-\mapXMLvalue {mml:relation} {mml:eq} {=}
-\mapXMLvalue {mml:relation} {mml:neq} {\neq}
-\mapXMLvalue {mml:relation} {mml:gt} {>}
-\mapXMLvalue {mml:relation} {mml:lt} {<}
-\mapXMLvalue {mml:relation} {mml:geq} {\geq}
-\mapXMLvalue {mml:relation} {mml:leq} {\leq}
-\mapXMLvalue {mml:relation} {mml:equivalent} {\equiv}
-\mapXMLvalue {mml:relation} {mml:approx} {\approx}
-\mapXMLvalue {mml:relation} {mml:factorof} {\mid}
+\xmlmapvalue {mml:relation} {mml:eq} {=}
+\xmlmapvalue {mml:relation} {mml:neq} {\neq}
+\xmlmapvalue {mml:relation} {mml:gt} {>}
+\xmlmapvalue {mml:relation} {mml:lt} {<}
+\xmlmapvalue {mml:relation} {mml:geq} {\geq}
+\xmlmapvalue {mml:relation} {mml:leq} {\leq}
+\xmlmapvalue {mml:relation} {mml:equivalent} {\equiv}
+\xmlmapvalue {mml:relation} {mml:approx} {\approx}
+\xmlmapvalue {mml:relation} {mml:factorof} {\mid}
\startxmlsetups mml:eq \xmlsetup{#1}{mml:relation} \stopxmlsetups
\startxmlsetups mml:neq \xmlsetup{#1}{mml:relation} \stopxmlsetups
@@ -1187,28 +1155,28 @@
\stopxmlsetups
\startxmlsetups mml:relation:default
- \xmlconcatrange{#1}{/*}{2}{}{\XMLval{mml:relation}{\mmlapplyaction}{?}}
+ \xmlconcatrange{#1}{/*}{2}{}{\xmlval{mml:relation}{\mmlapplyaction}{?}}
\stopxmlsetups
\startxmlsetups mml:relation:last
\eqalign {
- \xmlconcatrange{#1}{/*}{2}{-2}{&\XMLval{mml:relation}{\mmlapplyaction}{?}\crcr}
- \mmlprelast{#1}&\XMLval{mml:relation}{\mmlapplyaction}{?}{}\mmllast{#1}
+ \xmlconcatrange{#1}{/*}{2}{-2}{&\xmlval{mml:relation}{\mmlapplyaction}{?}\crcr}
+ \mmlprelast{#1}&\xmlval{mml:relation}{\mmlapplyaction}{?}{}\mmllast{#1}
}
\stopxmlsetups
\startxmlsetups mml:relation:first
\eqalign {
- \mmlsecond{#1}\XMLval{mml:relation}{\mmlapplyaction}{?}{}
- &\xmlconcatrange{#1}{/*}{3}{}{\crcr\XMLval{mml:relation}{\mmlapplyaction}{?}{}&}
+ \mmlsecond{#1}\xmlval{mml:relation}{\mmlapplyaction}{?}{}
+ &\xmlconcatrange{#1}{/*}{3}{}{\crcr\xmlval{mml:relation}{\mmlapplyaction}{?}{}&}
}
\stopxmlsetups
\startxmlsetups mml:relation:left
\eqalign {
- \xmlconcatrange{#1}{/*}{2}{}{&\XMLval{mml:relation}{\mmlapplyaction}{?}\crcr}
+ \xmlconcatrange{#1}{/*}{2}{}{&\xmlval{mml:relation}{\mmlapplyaction}{?}\crcr}
}
\stopxmlsetups
\startxmlsetups mml:relation:right
\eqalign {
- &\xmlconcatrange{#1}{/*}{2}{}{\crcr\XMLval{mml:relation}{\mmlapplyaction}{?}{}&}
+ &\xmlconcatrange{#1}{/*}{2}{}{\crcr\xmlval{mml:relation}{\mmlapplyaction}{?}{}&}
}
\stopxmlsetups
\startxmlsetups mml:relation:no
@@ -1222,7 +1190,7 @@
\edef\MMLcmainresetlist{\MMLcmainresetlist\string|becomes}
-\mapXMLvalue {mml:relation} {mml:becomes} {:=}
+\xmlmapvalue {mml:relation} {mml:becomes} {:=}
\startxmlsetups mml:becomes \xmlsetup{#1}{mml:relation} \stopxmlsetups
@@ -1248,7 +1216,7 @@
\int \doMMLlimits{int}_{\xmlfirst{#1}{/mml:lowlimit}}^{\xmlfirst{#1}{/mml:uplimit}}
} {
% funny, why do we have lowlimit/uplimit then
- \xmldoifelse {#1} {/mml:apply/mml:interval} {
+ \xmldoifelse {#1} {/mml:apply/mml:interval} {
\int \doMMLlimits{int}_{\xmlindex{#1}{/mml:apply}{2}}^{\xmlindex{#1}{/mml:apply}{3}}
} {
\int
@@ -1379,10 +1347,12 @@
\MMLcreset
\xmlfirst{#1}{/(mml:apply\string|mml:reln\string|mml:ci\string|mml:cn)}
} {
- \xmlfirst{#1}{/mml:bvar}
+ \xmldoif {#1}{/mml:bvar/!mml:degree} {
+ \xmlfirst{#1}{/mml:bvar/!mml:degree} \,
+ }
{\mr d}\xmlfirst{#1}{/(mml:apply\string|mml:reln\string|mml:ci\string|mml:cn)}
- \xmldoif {#1} {/mml:degree} {
- ^{\xmlfirst{#1}{/mml:degree}}
+ \xmldoif {#1} {/mml:bvar/mml:degree} {
+ ^{\xmlfirst{#1}{/mml:bvar/mml:degree}}
}
}
} {
@@ -1471,8 +1441,8 @@
\setupMMLappearance[sum] [\c!location=\v!top]
\setupMMLappearance[product][\c!location=\v!top]
-\mapXMLvalue {mml:sumprod} {sum} {\sum}
-\mapXMLvalue {mml:sumprod} {product} {\prod}
+\xmlmapvalue {mml:sumprod} {sum} {\sum}
+\xmlmapvalue {mml:sumprod} {product} {\prod}
\startxmlsetups mml:sum \edef\mmlsumprodname{sum} \xmlsetup{#1}{mml:sumprod} \stopxmlsetups
\startxmlsetups mml:product \edef\mmlsumprodname{product} \xmlsetup{#1}{mml:sumprod} \stopxmlsetups
@@ -1519,7 +1489,7 @@
\fi
}
\MMLcreset
- \XMLval{mml:sumprod}{\mmlsumprodname}{}\doMMLlimits\mmlsumprodname\mmlsumprodupper\mmlsumprodlower
+ \xmlval{mml:sumprod}{\mmlsumprodname}{}\doMMLlimits\mmlsumprodname\mmlsumprodupper\mmlsumprodlower
\MMLcreset
\xmldoifelse {#1} {/mml:lambda/mml:apply} {
\xmlfirst{#1}{/mml:lambda/mml:apply}% a bit of open math conversion mess
@@ -1556,13 +1526,13 @@
\startxmlsetups mml:tendsto
\MMLcreset \mmlsecond{#1}
- \XMLval {mml:tendsto:type} {\xmlattdef{#1}{type}{default}} {\rightarrow}
+ \xmlval {mml:tendsto:type} {\xmlattdef{#1}{type}{default}} {\rightarrow}
\MMLcreset \mmlthird{#1}
\stopxmlsetups
-\mapXMLvalue {mml:tendsto:type} {above} {\downarrow}
-\mapXMLvalue {mml:tendsto:type} {below} {\uparrow}
-\mapXMLvalue {mml:tendsto:type} {default} {\rightarrow}
+\xmlmapvalue {mml:tendsto:type} {above} {\downarrow}
+\xmlmapvalue {mml:tendsto:type} {below} {\uparrow}
+\xmlmapvalue {mml:tendsto:type} {default} {\rightarrow}
% elementary classical functions
@@ -1582,11 +1552,17 @@
} {
\mathopnolimits{log}_{\xmlfirst{#1}{/mml:logbase}}
}
+% \MMLcreset
+ \xmlfirst{#1}{/(mml:apply\string|mml:reln\string|mml:ci\string|mml:cn)}
+% \xmlsetup{#1}{mml:function} % todo, we start elsewhere
+% \mmlthird{#1}
} {
\mathopnolimits{log}
+% \MMLcreset
+% \xmlsetup{#1}{mml:function} % todo, we start elsewhere
+ \xmlfirst{#1}{/(mml:apply\string|mml:reln\string|mml:ci\string|mml:cn)}
+% \mmlsecond{#1}
}
- \MMLcreset
- \xmlsetup{#1}{mml:function}
\stopxmlsetups
\startxmlsetups mml:ln
@@ -1619,7 +1595,7 @@
\startxmlsetups mml:vector
\begingroup
- \ifnum\xmlcount{#1}{/*}>\plusone
+ \ifnum\xmlnofelements{#1}>\plusone
\doifelse\MMLvectordirection\v!horizontal {
\left(\xmlconcat{#1}{/*}{\MMLseparator\MMLvectorseparator}\right)
} {
@@ -1677,11 +1653,17 @@
% semantic mapping elements
+\setupMMLappearance[semantics][\c!state=\v!start]
+
\startxmlsetups mml:semantics
- \xmlfirst{#1}{/(mml:annotation\string|apply)}
+ \doifelse\MMLsemanticsstate\v!start {
+ \xmlall{#1}{/mml:annotation}
+ } {
+ \xmlall{#1}{/!mml:annotation}
+ }
\stopxmlsetups
-\usemodule[m][calcmath]
+\usemodule[x][calcmath]
\startxmlsetups mml:annotation
\xmldoifelse {#1} {[oneof(@encoding,'TeX','tex','TEX','ConTeXt','context','CONTEXT','ctx')]} {
@@ -1693,7 +1675,7 @@
\xmldoifelse {#1} {[oneof(@encoding,'calcmath','cm')]} {
\calcmath{\xmlflush{#1}}
} {
- % unsupported
+ \xmlall{#1}{../!mml:annotation}
}
}
\stopxmlsetups
@@ -1726,21 +1708,43 @@
% todo: \mfunction which adapts itself when registered as command
-\startxmlsetups mml:sin \mathopnolimits {sin}\xmlsetup{#1}{mml:function} \stopxmlsetups
-\startxmlsetups mml:sinh \mathopnolimits{sinh}\xmlsetup{#1}{mml:function} \stopxmlsetups
-\startxmlsetups mml:cos \mathopnolimits {cos}\xmlsetup{#1}{mml:function} \stopxmlsetups
-\startxmlsetups mml:cosh \mathopnolimits{cosh}\xmlsetup{#1}{mml:function} \stopxmlsetups
-\startxmlsetups mml:tan \mathopnolimits {tan}\xmlsetup{#1}{mml:function} \stopxmlsetups
-\startxmlsetups mml:tanh \mathopnolimits{tanh}\xmlsetup{#1}{mml:function} \stopxmlsetups
-\startxmlsetups mml:cot \mathopnolimits {cot}\xmlsetup{#1}{mml:function} \stopxmlsetups
-\startxmlsetups mml:coth \mathopnolimits{coth}\xmlsetup{#1}{mml:function} \stopxmlsetups
-\startxmlsetups mml:csc \mathopnolimits {csc}\xmlsetup{#1}{mml:function} \stopxmlsetups
-\startxmlsetups mml:csch \mathopnolimits{csch}\xmlsetup{#1}{mml:function} \stopxmlsetups
-\startxmlsetups mml:sec \mathopnolimits {sec}\xmlsetup{#1}{mml:function} \stopxmlsetups
-\startxmlsetups mml:sech \mathopnolimits{sech}\xmlsetup{#1}{mml:function} \stopxmlsetups
+% todo: \def\mmlcfunction#1#2{\mathopnolimits{#2}\xmlsetup{#1}{mml:function}}
+
+\startxmlsetups mml:sin \mathopnolimits {sin}\xmlsetup{#1}{mml:function} \stopxmlsetups
+\startxmlsetups mml:sinh \mathopnolimits {sinh}\xmlsetup{#1}{mml:function} \stopxmlsetups
+\startxmlsetups mml:cos \mathopnolimits {cos}\xmlsetup{#1}{mml:function} \stopxmlsetups
+\startxmlsetups mml:cosh \mathopnolimits {cosh}\xmlsetup{#1}{mml:function} \stopxmlsetups
+\startxmlsetups mml:tan \mathopnolimits {tan}\xmlsetup{#1}{mml:function} \stopxmlsetups
+\startxmlsetups mml:tanh \mathopnolimits {tanh}\xmlsetup{#1}{mml:function} \stopxmlsetups
+\startxmlsetups mml:cot \mathopnolimits {cot}\xmlsetup{#1}{mml:function} \stopxmlsetups
+\startxmlsetups mml:coth \mathopnolimits {coth}\xmlsetup{#1}{mml:function} \stopxmlsetups
+\startxmlsetups mml:csc \mathopnolimits {csc}\xmlsetup{#1}{mml:function} \stopxmlsetups
+\startxmlsetups mml:csch \mathopnolimits {csch}\xmlsetup{#1}{mml:function} \stopxmlsetups
+\startxmlsetups mml:sec \mathopnolimits {sec}\xmlsetup{#1}{mml:function} \stopxmlsetups
+\startxmlsetups mml:sech \mathopnolimits {sech}\xmlsetup{#1}{mml:function} \stopxmlsetups
+
+\startxmlsetups mml:arcsin \mathopnolimits {arcsin}\xmlsetup{#1}{mml:function} \stopxmlsetups
+\startxmlsetups mml:arcsinh \mathopnolimits{arcsinh}\xmlsetup{#1}{mml:function} \stopxmlsetups
+\startxmlsetups mml:arccos \mathopnolimits {arccos}\xmlsetup{#1}{mml:function} \stopxmlsetups
+\startxmlsetups mml:arccosh \mathopnolimits{arccosh}\xmlsetup{#1}{mml:function} \stopxmlsetups
+\startxmlsetups mml:arctan \mathopnolimits {arctan}\xmlsetup{#1}{mml:function} \stopxmlsetups
+\startxmlsetups mml:arctanh \mathopnolimits{arctanh}\xmlsetup{#1}{mml:function} \stopxmlsetups
+\startxmlsetups mml:arccot \mathopnolimits {arccot}\xmlsetup{#1}{mml:function} \stopxmlsetups
+\startxmlsetups mml:arccoth \mathopnolimits{arccoth}\xmlsetup{#1}{mml:function} \stopxmlsetups
+\startxmlsetups mml:arccsc \mathopnolimits {arccsc}\xmlsetup{#1}{mml:function} \stopxmlsetups
+\startxmlsetups mml:arccsch \mathopnolimits{arccsch}\xmlsetup{#1}{mml:function} \stopxmlsetups
+\startxmlsetups mml:arcsec \mathopnolimits {arcsec}\xmlsetup{#1}{mml:function} \stopxmlsetups
+\startxmlsetups mml:arcsech \mathopnolimits{arcsech}\xmlsetup{#1}{mml:function} \stopxmlsetups
\startxmlsetups mml:function
- \ifconditional\xmlinversefunction^{-1}\fi\setfalse\xmlinversefunction
+ \ifx\MMLpowerelement\empty
+ \ifconditional\xmlinversefunction^{-1}\fi
+ \setfalse\xmlinversefunction
+ \else
+ ^{\ifconditional\xmlinversefunction-\fi\MMLpowerelement}
+ \setfalse\xmlinversefunction
+ \glet\MMLpowerelement\empty
+ \fi
\xmlsetup{#1}{mml:function:argument}
\stopxmlsetups
@@ -1774,23 +1778,25 @@
% helpers
-\mapXMLvalue {mml} {normal} {\tf}
-\mapXMLvalue {mml} {double-struck} {\bf}
-\mapXMLvalue {mml} {italic} {\it}
-\mapXMLvalue {mml} {fraktur} {\bf}
-\mapXMLvalue {mml} {script} {\tf}
-\mapXMLvalue {mml} {bold} {\bf}
-\mapXMLvalue {mml} {bold-italic} {\bi}
-\mapXMLvalue {mml} {bold-fraktur} {\bf}
-\mapXMLvalue {mml} {bold-script} {\bf}
-\mapXMLvalue {mml} {sans-serif} {\ss}
-\mapXMLvalue {mml} {bold-sans-serif} {\ss\bf}
-\mapXMLvalue {mml} {sans-serif-italic} {\ss\it}
-\mapXMLvalue {mml} {sans-serif-bold-italic} {\ss\bi}
-\mapXMLvalue {mml} {monospace} {\tt}
+\xmlmapvalue {mml} {normal} {\tf}
+\xmlmapvalue {mml} {double-struck} {\bf}
+\xmlmapvalue {mml} {italic} {\it}
+\xmlmapvalue {mml} {fraktur} {\bf}
+\xmlmapvalue {mml} {script} {\tf}
+\xmlmapvalue {mml} {bold} {\bf}
+\xmlmapvalue {mml} {bold-italic} {\bi}
+\xmlmapvalue {mml} {bold-fraktur} {\bf}
+\xmlmapvalue {mml} {bold-script} {\bf}
+\xmlmapvalue {mml} {sans-serif} {\ss}
+\xmlmapvalue {mml} {bold-sans-serif} {\ss\bf}
+\xmlmapvalue {mml} {sans-serif-italic} {\ss\it}
+\xmlmapvalue {mml} {sans-serif-bold-italic} {\ss\bi}
+\xmlmapvalue {mml} {monospace} {\tt}
+
+% todo: displaystyle=true/false (or whatever else shows up)
\starttexdefinition setmmlmathstyle #1
- \XMLval {mml} {\xmlatt{#1}{mathvariant}} \empty
+ \xmlval {mml} {\xmlatt{#1}{mathvariant}} \empty % was: \mmmr
\stoptexdefinition
\starttexdefinition applymmlmathcolor #1#2
@@ -1813,11 +1819,13 @@
\fi
\stoptexdefinition
+\newsignal\mmltextsignal % not used
+
\starttexdefinition applymmlsometext #1#2
- \applymmlmathbackground {#1} {
- \applymmlmathcolor {#1} {
+ \applymmlmathbackground {#1} {
+ \applymmlmathcolor {#1} {
\setmmlmathstyle {#1}
- \ignorespaces#2\removeunwantedspaces
+ #2
}
}
\stoptexdefinition
@@ -1853,51 +1861,138 @@
\endgroup
\stopxmlsetups
+% <m:mo>-</m:mo><m:mn>2</m:mn> and <m:mn>1</m:mn><m:mo>-</m:mo><m:mn>2</m:mn>
+%
+% spacing between - and 2 is taken care of by tex itself
+
\startxmlsetups mml:mo
+ \doif {\xmlatt{#1}{maxsize}} {1} {\settrue\mmlignoredelimiter}
+ \doif {\xmlatt{#1}{stretchy}} {false} {\settrue\mmlignoredelimiter}
\ctxlua{lxml.mml.mo("#1","*")}
+ \setfalse\mmlignoredelimiter
\stopxmlsetups
\startxmlsetups mml:mfenced % {} around separator is needed for spacing
- \def\MMLleft {\left }% weird
- \def\MMLright{\right}
+ \def\MMLleft {\left }% weird
+ \def\MMLright {\right}
+ \def\MMLmiddle{\middle}
\ctxlua{lxml.mml.mfenced("#1","/*")}
\stopxmlsetups
-\startxmlsetups mml:menclose % notation=.....
- \edef\mmlmenclosenotation{\xmlattdef{#1}{notation}{longdiv}}
- \doifelse \mmlmenclosenotation {longdiv} {
- \overline{\left)\xmlflush{#1}\right.}
- } {
- \doifelse \mmlmenclosenotation {actuarial} {
- \overline{\left.\xmlflush{#1}\right|}
+\defineoverlay [mml:enclose:box] [\useMPgraphic{mml:enclose:box}]
+\defineoverlay [mml:enclose:roundedbox] [\useMPgraphic{mml:enclose:roundedbox}]
+\defineoverlay [mml:enclose:circle] [\useMPgraphic{mml:enclose:circle}]
+\defineoverlay [mml:enclose:left] [\useMPgraphic{mml:enclose:left}]
+\defineoverlay [mml:enclose:right] [\useMPgraphic{mml:enclose:right}]
+\defineoverlay [mml:enclose:top] [\useMPgraphic{mml:enclose:top}]
+\defineoverlay [mml:enclose:bottom] [\useMPgraphic{mml:enclose:bottom}]
+\defineoverlay [mml:enclose:updiagonalstrike] [\useMPgraphic{mml:enclose:updiagonalstrike}]
+\defineoverlay [mml:enclose:downdiagonalstrike] [\useMPgraphic{mml:enclose:downdiagonalstrike}]
+\defineoverlay [mml:enclose:horizontalstrike] [\useMPgraphic{mml:enclose:horizontalstrike}]
+\defineoverlay [mml:enclose:verticalstrike] [\useMPgraphic{mml:enclose:verticalstrike}]
+
+\startuseMPgraphic{mml:enclose:box}
+ draw OverlayBox withpen pencircle scaled (ExHeight/10) ;
+\stopuseMPgraphic
+\startuseMPgraphic{mml:enclose:roundedbox}
+ draw OverlayBox cornered .5ExHeight withpen pencircle scaled (ExHeight/10) ;
+\stopuseMPgraphic
+\startuseMPgraphic{mml:enclose:circle}
+ draw fullcircle xysized(bbwidth(OverlayBox),bbheight(OverlayBox)) withpen pencircle scaled (ExHeight/10) ;
+\stopuseMPgraphic
+\startuseMPgraphic{mml:enclose:left}
+ draw leftboundary OverlayBox withpen pencircle scaled (ExHeight/10) ;
+ setbounds currentpicture to OverlayBox ;
+\stopuseMPgraphic
+\startuseMPgraphic{mml:enclose:right}
+ draw rightboundary OverlayBox withpen pencircle scaled (ExHeight/10) ;
+ setbounds currentpicture to OverlayBox ;
+\stopuseMPgraphic
+\startuseMPgraphic{mml:enclose:top}
+ draw topboundary OverlayBox withpen pencircle scaled (ExHeight/10) ;
+ setbounds currentpicture to OverlayBox ;
+\stopuseMPgraphic
+\startuseMPgraphic{mml:enclose:bottom}
+ draw bottomboundary OverlayBox withpen pencircle scaled (ExHeight/10) ;
+ setbounds currentpicture to OverlayBox ;
+\stopuseMPgraphic
+\startuseMPgraphic{mml:enclose:updiagonalstrike}
+ path p ; p := OverlayBox enlarged -.25ExHeight ;
+ draw llcorner p -- urcorner p withpen pencircle scaled (ExHeight/10) ;
+ setbounds currentpicture to OverlayBox ;
+\stopuseMPgraphic
+\startuseMPgraphic{mml:enclose:downdiagonalstrike}
+ path p ; p := OverlayBox enlarged -.25ExHeight ;
+ draw ulcorner p -- lrcorner p withpen pencircle scaled (ExHeight/10) ;
+ setbounds currentpicture to OverlayBox ;
+\stopuseMPgraphic
+\startuseMPgraphic{mml:enclose:horizontalstrike}
+ path p ; p := OverlayBox enlarged -.25ExHeight ;
+ draw .5[llcorner p,ulcorner p] -- .5[lrcorner p,urcorner p] withpen pencircle scaled (ExHeight/10) ;
+ setbounds currentpicture to OverlayBox ;
+\stopuseMPgraphic
+\startuseMPgraphic{mml:enclose:verticalstrike}
+ path p ; p := OverlayBox enlarged -.25ExHeight ;
+ draw .5[llcorner p,lrcorner p] -- .5[ulcorner p,urcorner p] withpen pencircle scaled (ExHeight/10) ;
+ setbounds currentpicture to OverlayBox ;
+\stopuseMPgraphic
+
+\startxmlsetups mml:menclose
+ \edef\mmlmenclosenotation{\ctxlua{lxml.mml.menclosepattern("#1")}}
+ \ifx\mmlmenclosenotation\empty
+ \xmlflush{#1}
+ \else
+ \doifelse \mmlmenclosenotation {mml:enclose:longdiv} {
+ \overline{\left)\strut\xmlflush{#1}\right.}
} {
- \doifelse \mmlmenclosenotation {radical} {
- \sqrt{\xmlflush{#1}}
+ \doifelse \mmlmenclosenotation {mml:enclose:actuarial} {
+ \overline{\left.\strut\xmlflush{#1}\right|}
} {
- \xmlflush{#1}
+ \doifelse \mmlmenclosenotation {mml:enclose:radical} {
+ \sqrt{\xmlflush{#1}}
+ } {
+ % todo: no framed when longdiv, actuarial or radical ? spec ?
+ \vcenter {
+ \framed
+ [frame=off,strut=no,background={\mmlmenclosenotation}] % offset is kind of undefined
+ {$
+ \expanded{\doifinsetelse {mml:enclose:longdiv} {\mmlmenclosenotation}} {
+ \overline{\left)\strut\xmlflush{#1}\right.}
+ } {
+ \expanded{\doifinsetelse {mml:enclose:actuarial} {\mmlmenclosenotation}} {
+ \overline{\left.\strut\xmlflush{#1}\right|}
+ } {
+ \expanded{\doifinsetelse {mml:enclose:radical} {\mmlmenclosenotation}} {
+ \sqrt{\xmlflush{#1}}
+ } {
+ \xmlflush{#1}
+ }
+ }
+ }
+ $}
+ }
+ }
}
}
- }
+ \fi
\stopxmlsetups
-\mapXMLvalue {mml:mfrac:linethickness} {thin} {.2pt}
-\mapXMLvalue {mml:mfrac:linethickness} {medium} {.4pt}
-\mapXMLvalue {mml:mfrac:linethickness} {thick} {.8pt}
+\xmlmapvalue {mml:mfrac:linethickness} {thin} {.2pt}
+\xmlmapvalue {mml:mfrac:linethickness} {medium} {.4pt}
+\xmlmapvalue {mml:mfrac:linethickness} {thick} {.8pt}
\startxmlsetups mml:mfrac % dodo: handle linethickness in lua + unit
\begingroup
\edef\mmlfraclinethickness{\xmlatt{#1}{linethickness}}
\ifx\mmlfraclinethickness\empty
\doifelse{\xmlatt{#1}{bevelled}}{true} {
- \xmlindex{#1}{/*}{1}
- \mathpunct{\kern-.2ex\left.\middle/\right.\kern-.25ex}
- \mmlsecond{#1}
+ \left.\mmlfirst{#1}\middle/\mmlsecond{#1}\right.% \thinspace\middle/\thinspace
} {
\frac{\mmlfirst{#1}}{\mmlsecond{#1}}
}
\else
\doifXMLvalelse {mml:mfrac:linethickness} \mmlfraclinethickness {
- \scratchdimen\XMLval{mml:mfrac:linethickness}\mmlfraclinethickness{.4pt}
+ \scratchdimen\xmlval{mml:mfrac:linethickness}\mmlfraclinethickness{.4pt}
} {
\setdimensionwithunit\scratchdimen\mmlfraclinethickness{pt}
}
@@ -1928,10 +2023,20 @@
\endgroup
\stopxmlsetups
+\setupMMLappearance[text][\c!alternative=\v!a] % a=normal, b=keep spaces
+
\startxmlsetups mml:mtext
- \hbox {
- \tf % else encoding problems, we can make mr an option
- \applymmlsometext{#1}{\xmlflush{#1}}
+ \domathtext {
+ \applymmlsometext{#1}{
+ \doifelse\MMLscriptsalternative\v!a {
+ %\ctxlua{lxml.mml.stripped(\!!bs\xmlflush{#1}\!!es)}
+ \ignorespaces
+ \xmlflush{#1}
+ \unskip
+ } {
+ \xmlflush{#1}
+ }
+ }
}
\stopxmlsetups
@@ -1940,10 +2045,14 @@
\stopxmlsetups
\startxmlsetups mml:mphantom
- \phantom{\ignorespaces{}\xmlflush{#1}\unskip} % watch spacing {} hack
+% \phantom{\ignorespaces{}\xmlflush{#1}\unskip} % watch spacing {} hack
+ \phantom{\mathstyle{\ignorespaces{}\xmlflush{#1}\unskip}}%
+% \mktriggereffect\v!hidden
+% \ignorespaces{}\xmlflush{#1}\unskip % no attributes in math yet
+% \mktriggereffect\v!normal
\stopxmlsetups
-\startxmlsetups mml:mpadded
+\startxmlsetups mml:mpadded % todo
\xmlflush{#1}
\stopxmlsetups
@@ -1954,8 +2063,9 @@
% \ifcase\xmlcount{#1}{/mml:mo}\relax
% \xmlflush{#1}
% \else % no \let
-% \def\MMLleft {\left }
-% \def\MMLright{\right}
+% \def\MMLleft {\left }
+% \def\MMLright {\right}
+% \def\MMLmiddle{\middle}
% \enabledelimiter
% \checkdelimiters{\xmlall{#1}{/mml:mo}}
% \fakeleftdelimiter
@@ -1971,9 +2081,10 @@
\startxmlsetups mml:mrow
\begingroup
\ifnum\xmlcount{#1}{/mml:mo}=\plustwo
- \xmldoifelse {#1} {/mml:mo[position()==1 or position()==\xmlcount{#1}{/*}]} {% we need a {}
- \def\MMLleft {\left }
- \def\MMLright{\right}
+ \xmldoifelse {#1} {/mml:mo[position()==1 or position()==\xmlnofelements{#1}]} {% we need a {}
+ \def\MMLleft {\left }
+ \def\MMLright {\right}
+ \def\MMLmiddle{\middle}
\enabledelimiter
\checkdelimiters{\xmlall{#1}{/mml:mo}}
\fakeleftdelimiter
@@ -2023,50 +2134,68 @@
}
\stopxmlsetups
+\def\mmlexecuteifdefined#1%
+ {\ifx#1\empty
+ \expandafter\secondoftwoarguments
+ \else\ifcsname#1\endcsname
+ \expandafter\expandafter\expandafter\firstoftwoarguments
+ \else
+ \expandafter\expandafter\expandafter\secondoftwoarguments
+ \fi\fi
+ {\csname#1\endcsname}}
+
\startxmlsetups mml:mover
- \mathop {
- \edef\mmlovertoken{\xmlraw{#1}{/mml:mo[position()==2]}}
+% \mathop {
+ \edef\mmlovertoken{\xmlraw{#1}{/mml:*[position()==2]}}
\doifelse{\utfmathclass\mmlovertoken}{accent} {
- \utfmathcommand\mmlovertoken{\xmlindex{#1}{/*}{1}}
+ \edef\mmlovercommand{\utfmathcommand\mmlovertoken}
+ \mmlexecuteifdefined\mmlovercommand\mathematics{\mmlfirst{#1}}
} {
+ \edef\mmlbasetoken{\xmlraw{#1}{/mml:*[position()==1]}}
+ \edef\mmlbasecommand{\utfmathfiller\mmlbasetoken}
+ \edef\mmlovercommand{\utfmathfiller\mmlovertoken}
\vbox {
- \m@th\ialign {
+ \mathsurround\zeropoint \ialign {
\hss##\hss\crcr
- \noalign{\kern3\p@}%
- \disabledelimiter\doMMLfiller{
- \xmlindex{#1}{/*}{2}
- }\crcr
- \noalign{\kern3\p@\nointerlineskip}%
- \disabledelimiter\doMMLfiller{
- \xmlindex{#1}{/*}{1}
- }\crcr
+ \noalign{\kern3\onepoint}%
+ \mmlexecuteifdefined\mmlovercommand{\mathematics{\mmlsecond{#1}}}\crcr
+ \noalign{\kern3\onepoint\nointerlineskip}%
+ \mmlexecuteifdefined\mmlbasecommand{\mathematics{\mmlfirst{#1}}}\crcr
}
}
}
- }
- \limits
+% }
+% \limits % spoils spacing
\stopxmlsetups
\startxmlsetups mml:munder
- \mathop {
- \vtop {
- \m@th\ialign{
- \hss##\hss\crcr
- \disabledelimiter\doMMLfiller{\xmlindex{#1}{/*}{1}}\crcr
- \noalign{\kern3\p@\nointerlineskip}%
- \disabledelimiter\doMMLfiller{\xmlindex{#1}{/*}{2}}\crcr
- \noalign{\kern3\p@}
+% \mathop {
+ \edef\mmlundertoken{\xmlraw{#1}{/mml:*[position()==2]}}
+ \doifelse{\utfmathclass\mmlundertoken}{accent} {
+ \edef\mmlundercommand{\utfmathcommand\mmlundertoken}
+ \mmlexecuteifdefined\mmlundercommand\mathematics{\mmlfirst{#1}}
+ } {
+ \edef\mmlbasetoken {\xmlraw{#1}{/mml:*[position()==1]}}
+ \edef\mmlbasecommand {\utfmathfiller\mmlbasetoken}
+ \edef\mmlundercommand{\utfmathfiller\mmlundertoken}
+ \vtop {
+ \mathsurround\zeropoint \ialign {
+ \hss##\hss\crcr
+ \mmlexecuteifdefined\mmlbasecommand {\mathematics{\mmlfirst{#1}}}\crcr
+ \noalign{\kern3\onepoint\nointerlineskip}%
+ \mmlexecuteifdefined\mmlundercommand{\mathematics{\mmlsecond{#1}}}\crcr
+ \noalign{\kern3\onepoint}
+ }
}
}
- }
- \limits
+% }
+% \limits % spoils spacing
\stopxmlsetups
\startxmlsetups mml:munderover
- \edef\mmlunderovertoken{\xmlraw{#1}{/mml:mo[position()==1]}}
- \utfmathcommanddefault\mmlunderovertoken{xmlindex}{{#1}{/*}{1}}
- _{\disablefiller\disabledelimiter\xmlindex{#1}{/*}{2}}
- ^{\disablefiller\disabledelimiter\xmlindex{#1}{/*}{3}}
+ \edef\mmlbasetoken{\xmlraw{#1}{/mml:*[position()==1]}}
+ \edef\mmlbasecommand{\utfmathcommand\mmlbasetoken}
+ \mmlexecuteifdefined\mmlbasecommand{\mathematics{\mmlfirst{#1}}}_{\mmlsecond{#1}}^{\mmlthird{#1}}
\stopxmlsetups
% tables (mml:mtable, mml:mtr, mml:mlabledtr, mml:mtd)
@@ -2075,24 +2204,66 @@
\vcenter{\ctxlua{lxml.mml.mtable("#1")}}
\stopxmlsetups
-\startxmlsetups mml:mspace % complete
+\startxmlsetups mml:mcolumn
+ \ctxlua{lxml.mml.mcolumn("#1")}
+\stopxmlsetups
+
+\def\mmlsetfakewidth#1{\setbox\scratchbox\hbox{#1}\scratchdimen\wd\scratchbox}
+
+\def\mmlmcolumndigitspace {\mmlsetfakewidth {0}\kern\scratchdimen}
+\def\mmlmcolumndigitrule {\mmlsetfakewidth {0}\vrule width \scratchdimen height .2pt depth .2pt\relax}
+\def\mmlmcolumnsymbolrule {\mmlsetfakewidth{\times}\vrule width \scratchdimen height .2pt depth .2pt\relax}
+\def\mmlmcolumnpunctuationrule{\mmlsetfakewidth {.}\vrule width \scratchdimen height .2pt depth .2pt\relax}
+
+\startxmlsetups mml:mspace
\begingroup
- \!!widtha \xmlattdef{#1}{width} \!!zeropoint % must be string
- \!!heighta\xmlattdef{#1}{height}\!!zeropoint
- \!!deptha \xmlattdef{#1}{depth} \!!zeropoint
- \ifdim\!!heighta=\zeropoint
- \ifdim\!!deptha=\zeropoint\else
- \hbox{\vrule\!!depth\!!deptha\!!height\zeropoint\!!width\zeropoint}%
+ \edef\mmlspacetext{\xmlatt{#1}{spacing}}
+ \ifx\mmlspacetext\empty
+ \!!widtha \xmlattdef{#1}{width} \!!zeropoint % must be string
+ \!!heighta\xmlattdef{#1}{height}\!!zeropoint
+ \!!deptha \xmlattdef{#1}{depth} \!!zeropoint
+ \ifdim\!!heighta=\zeropoint
+ \ifdim\!!deptha=\zeropoint\else
+ \hbox{\vrule\!!depth\!!deptha\!!height\zeropoint\!!width\zeropoint}%
+ \fi
+ \else
+ \hbox{\vrule\!!depth\zeropoint\!!height\!!heighta\!!width\zeropoint}%
+ \fi
+ \ifdim\!!widtha=\zeropoint\else
+ \hskip\!!widtha
\fi
\else
- \hbox{\vrule\!!depth\zeropoint\!!height\!!heighta\!!width\zeropoint}%
- \fi
- \ifdim\!!widtha=\zeropoint\else
- \hskip\!!widtha
+ \phantom{\mathstyle{\mmlspacetext}}%
\fi
\endgroup
\stopxmlsetups
+% later we can do a better job by manipulating node lists
+
+\startxmlsetups mml:mline
+ % new, rather undefined, we need to capture a few keywords
+ \edef\mmllinewidth {\xmlatt{#1}{linethickness}}
+ \edef\mmllinetext {\xmlatt{#1}{spacing}}
+ \edef\mmllinelength{\xmlattdef{#1}{length}\!!zeropoint}
+ \ifx\mmllinewidth\empty
+ \!!deptha.5\linewidth
+ \else
+ \!!deptha.5\dimexpr\mmllinewidth\relax
+ \fi
+ \!!heighta\!!deptha
+ \ifx\mmllinetext\empty
+ \ifx\mmllinelength\empty
+ \!!widtha\zeropoint
+ \else
+ \!!widtha\mmllinelength
+ \fi
+ \else
+ \setbox\scratchbox\hbox{\mathematics{\mathstyle{\mmllinetext}}}% not ok
+ \!!widtha\wd\scratchbox
+ \fi
+ \hbox{\vrule\!!width\!!widtha\!!depth\!!deptha\!!height\!!heighta}
+\stopxmlsetups
+
\startxmlsetups mml:mglyph % probably never ok
\begingroup
\edef\mmlglyphfontfamily{\xmlatt {#1}{fontfamily}}
diff --git a/Master/texmf-dist/tex/context/base/x-mathml.tex b/Master/texmf-dist/tex/context/base/x-mathml.tex
index f5db612365d..8ad493eeb54 100644
--- a/Master/texmf-dist/tex/context/base/x-mathml.tex
+++ b/Master/texmf-dist/tex/context/base/x-mathml.tex
@@ -1,5 +1,5 @@
%D \module
-%D [ file=m-mathml,
+%D [ file=x-mathml,
%D version=1999.12.20,
%D title=\CONTEXT\ XML Modules,
%D subtitle=Loading \MATHML\ Filters,
@@ -11,18 +11,6 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-%D We have to make sure that some basic entities are
-%D loaded:
-
-\useXMLfilter[ent]
-
-%D Then we load the math:
-
-\useXMLfilter[mml,mmp,mmc]
-
-%D And we also load the whole bunch of entities:
-
-% \useXMLfilter[mea,meb,mec,meh,men,meo,mer]
-% \useXMLfilter[mxa,mxb,mxc,mxh,mxn,mxo,mxr]
+\loadmarkfile{x-mathml}
\endinput
diff --git a/Master/texmf-dist/tex/context/base/x-mmb.mkiv b/Master/texmf-dist/tex/context/base/x-mmb.mkiv
deleted file mode 100644
index 85da90c45e1..00000000000
--- a/Master/texmf-dist/tex/context/base/x-mmb.mkiv
+++ /dev/null
@@ -1,256 +0,0 @@
-%D \module
-%D [ file=x-mmb,
-%D version=2007.09.04,
-%D title=\CONTEXT\ XML Modules,
-%D subtitle=Base of MathML Renderer,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% \defineXMLentity [mathematicald] {d}
-
-% \defineXMLentity [imaginaryi] {{\rm i}}
-% \defineXMLentity [differentiald] {\partial}
-% \defineXMLentity [exponentiale] {{\rm e}}
-% \defineXMLentity [capitaldifferentiald] {D}
-
-% \defineXMLentity [ii] {\getXMLentity{imaginaryi}}
-% \defineXMLentity [dd] {\getXMLentity{differentiald}}
-% \defineXMLentity [ee] {\getXMLentity{exponentiale}}
-% \defineXMLentity [DD] {\getMMLentity{capitaldifferentiald}}
-
-% \defineXMLentity [ImaginaryI] {\getXMLentity{imaginaryi}}
-% \defineXMLentity [DifferentialD] {\getXMLentity{differentiald}}
-% \defineXMLentity [ExponentialE] {\getXMLentity{exponentiale}}
-% \defineXMLentity [CapitalDifferentialD] {\getXMLentity{differentiald}}
-
-% \defineXMLentity [NaN] {\getXMLentity{notanumber}}
-% \defineXMLentity [NotANumber] {\getXMLentity{notanumber}}
-
-% \defineXMLentity [and] {\wedge}
-% \defineXMLentity [exists] {\exists}
-% \defineXMLentity [forall] {\forall}
-% \defineXMLentity [implies] {\Rightarrow}
-% \defineXMLentity [not] {\neg}
-% \defineXMLentity [or] {\vee}
-% \defineXMLentity [xor] {\mathopnolimits{xor}}
-
-% \defineXMLentity [imaginary] {\Im}
-% \defineXMLentity [real] {\Re}
-
-% \defineXMLentity [lceiling] {\lceil}
-% \defineXMLentity [rceiling] {\rceil}
-% \defineXMLentity [lfloor] {\lfloor}
-% \defineXMLentity [rfloor] {\rfloor}
-
-% \defineXMLentity [ne] {\neq}
-% \defineXMLentity [neq] {\neq}
-% \defineXMLentity [gt] {>}
-% \defineXMLentity [lt] {<}
-% \defineXMLentity [ge] {\geq}
-% \defineXMLentity [geq] {\geq}
-% \defineXMLentity [le] {\leq}
-% \defineXMLentity [leq] {\leq}
-% \defineXMLentity [equivalent] {\equiv}
-% \defineXMLentity [equiv] {\equiv}
-% \defineXMLentity [approx] {\approx}
-
-% \defineXMLentity [factorof] {\mid}
-% \defineXMLentity [mapsto] {\mapsto}
-
-% \defineXMLentity [int] {\int}
-% \defineXMLentity [prime] {\prime}
-% \defineXMLentity [laplacian] {\nabla^2}
-% \defineXMLentity [partial] {\partial}
-
-% \defineXMLentity [union] {\cup}
-% \defineXMLentity [intersect] {\cap}
-% \defineXMLentity [in] {\in}
-% \defineXMLentity [notin] {\not\in}
-% \defineXMLentity [subset] {\subset}
-% \defineXMLentity [prsubset] {\subseteq}
-% \defineXMLentity [notsubset] {\not\subset}
-% \defineXMLentity [notprsubset] {\not\subseteq}
-% \defineXMLentity [setdiff] {\setminus}
-
-% \defineXMLentity [card] {\vert}
-% \defineXMLentity [cartesianproduct] {\times}
-
-% \defineXMLentity [sum] {\sum}
-% \defineXMLentity [prod] {\prod}
-% \defineXMLentity [product] {\prod}
-% \defineXMLentity [lim] {\lim}
-
-% \defineXMLentity [transpose] {^{\rm T}}
-
-% \defineXMLentity [plusminus] {\mathematics{\pm}}
-% \defineXMLentity [minusplus] {\mathematics{\mp}}
-
-% \defineXMLentity [vectorproduct] {\times}
-% \defineXMLentity [scalarproduct] {\cdot}
-% \defineXMLentity [outerproduct] {\otimes}
-
-% \defineXMLentity [integers] {\integers}
-% \defineXMLentity [reals] {\reals}
-% \defineXMLentity [rationals] {\rationals}
-% \defineXMLentity [naturalnumbers] {\naturalnumbers}
-% \defineXMLentity [complexes] {\complexes}
-% \defineXMLentity [primes] {\primes}
-
-% \defineXMLentity [emptyset] {\emptyset}
-% \defineXMLentity [pi] {\pi}
-% \defineXMLentity [eulergamma] {\gamma}
-% \defineXMLentity [infinity] {\mathematics{\infty}}
-
-% \defineXMLentity [InvisibleTimes] {}
-% \defineXMLentity [InvisibleComma] {}
-% \defineXMLentity [ApplyFunction] {}
-
-% \defineXMLentity [it] {\getXMLentity{InvisibleTines}}
-% \defineXMLentity [ic] {\getXMLentity{InvisibleComma}}
-% \defineXMLentity [af] {\getXMLentity{ApplyFunction}}
-
-% \defineXMLentity [PlusMinus] {\getXMLentity{plusminus}}
-
-% \defineXMLentity [infin] {\getXMLentity{infinity}}
-% \defineXMLentity [infty] {\getXMLentity{infinity}}
-% \defineXMLentity [part] {\getXMLentity{differentiald}}
-
-% \defineXMLentity [RightArrow] {\normalorfiller\rightarrow\rightarrowfill}
-% \defineXMLentity [LeftArrow] {\normalorfiller\leftarrow\leftarrowfill}
-% \defineXMLentity [UnderBrace] {\normalorfiller\empty\upbracefill}
-% \defineXMLentity [OverBrace] {\normalorfiller\empty\downbracefill}
-% \defineXMLentity [UnderBar] {\normalorfiller\hrule\hrulefill}
-% \defineXMLentity [OverBar] {\normalorfiller\hrule\hrulefill}
-% \defineXMLentity [Hat] {\normalorfiller\empty\empty} % todo
-
-% \defineXMLentity [downarrow] {\mathortext\downarrow\empty}
-% \defineXMLentity [uparrow] {\mathortext\uparrow\empty}
-
-% \defineXMLentity [Tab] {\hskip4em}
-% \defineXMLentity [NewLine] {\mathortext\empty\crlf}
-% \defineXMLentity [IndentingNewLine] {\mathortext\empty\crlf}
-
-% \defineXMLentity [NoBreak] {\nobreak}
-% \defineXMLentity [GoodBreak] {\goodbreak}
-% \defineXMLentity [BadBreak] {\nobreak}
-
-% \defineXMLentity [Space] {\getXMLentity{MediumSpace}}
-% \defineXMLentity [NonBreakingSpace] {\getXMLentity{MediumSpace}}
-% \defineXMLentity [ZeroWidthSpace] {}
-
-% \def\somespaceentity#1#2%
-% {\mathortext
-% {\mskip#1mu}
-% {\ifvmode\dontleavehmode\else\unskip\fi\hskip#2em\strut\hskip\zeropoint\ignorespaces}%
-% \relax}
-
-% \defineXMLentity [VeryThinSpace] {\somespaceentity {2}{.125}}
-% \defineXMLentity [ThinSpace] {\somespaceentity {3}{.25}}
-% \defineXMLentity [MediumSpace] {\somespaceentity {4}{.5}}
-% \defineXMLentity [ThickSpace] {\somespaceentity {5}{1}}
-% \defineXMLentity [NegativeVeryThinSpace] {\somespaceentity{-2}{-.125}}
-% \defineXMLentity [NegativeThinSpace] {\somespaceentity{-3}{-.25}}
-% \defineXMLentity [NegativeMediumSpace] {\somespaceentity{-4}{-.5}}
-% \defineXMLentity [NegativeThickSpace] {\somespaceentity{-5}{-1}}
-
-% \defineXMLentity [NegVeryThinSpace] {\getXMLentity{NegativeVeryThinSpace}}
-% \defineXMLentity [NegThinSpace] {\getXMLentity{NegativeThinSpace}}
-% \defineXMLentity [NegMediumSpace] {\getXMLentity{NegativeMediumSpace}}
-% \defineXMLentity [NegThickSpace] {\getXMLentity{NegativeThickSpace}}
-
-% \defineXMLentity [nbsp] {\getXMLentity{NonBreakingSpace}}
-% \defineXMLentity [thinsp] {\getXMLentity{ThinSpace}}
-% \defineXMLentity [medsp] {\getXMLentity{MediumSpace}}
-% \defineXMLentity [thicksp] {\getXMLentity{ThickSpace}}
-
-% \defineXMLentity [larr] {\getXMLentity{LeftArrow}}
-% \defineXMLentity [rarr] {\getXMLentity{RightArrow}}
-
-
-% \defineXMLentity [lbrace] {\normalordelimiter{\{}{\MMLleft \{}}
-% \defineXMLentity [rbrace] {\normalordelimiter{\}}{\MMLright\}}}
-% \defineXMLentity [lbracket] {\normalordelimiter{[}{\MMLleft [}}
-% \defineXMLentity [rbracket] {\normalordelimiter{]}{\MMLright]}}
-% \defineXMLentity [lparenthesis] {\normalordelimiter{(}{\MMLleft (}}
-% \defineXMLentity [rparenthesis] {\normalordelimiter{)}{\MMLright)}}
-% \defineXMLentity [langle] {\normalordelimiter{\langle}{\MMLleft \langle}}
-% \defineXMLentity [rangle] {\normalordelimiter{\rangle}{\MMLright\rangle}}
-
-% \defineXMLentity [lang] {\getXMLentity{langle}}
-% \defineXMLentity [rang] {\getXMLentity{rangle}}
-% \defineXMLentity [lbrack] {\getXMLentity{lbracket}}
-% \defineXMLentity [rbrack] {\getXMLentity{rbracket}}
-% \defineXMLentity [lparent] {\getXMLentity{lparenthesis}}
-% \defineXMLentity [rparent] {\getXMLentity{rparenthesis}}
-
-% \defineXMLentity [\letterleftbrace ] {\getXMLentity{lbrace}}
-% \defineXMLentity [\letterrightbrace] {\getXMLentity{rbrace}}
-
-% \defineXMLentity [times] {\mathematics{\times}}
-% \defineXMLentity [minus] {\mathematics{-}}
-% \defineXMLentity [plus] {\mathematics{+}}
-% \defineXMLentity [plusmn] {\mathematics{\pm}}
-
-% \defineXMLentity [nabla] {\nabla}
-
-% \def\myspecialnormalvert {\mathematics{\vert}}
-% \def\myspecialstretchvert{\;\vrule\;}
-
-% \defineXMLentity [,] {{,}}
-% \defineXMLentity [.] {{.}}
-% \defineXMLentity [+] {+}
-% \defineXMLentity [-] {-}
-% \defineXMLentity [|] {\myspecialnormalvert}
-% \defineXMLentity [/] {/}
-% \defineXMLentity [*] {\times}
-% \defineXMLentity [=] {=}
-
-% \defineXMLentity [++] {++}
-% \defineXMLentity [--] {--}
-% \defineXMLentity [//] {//}
-% \defineXMLentity [**] {\times\times}
-% \defineXMLentity [==] {==}
-% \defineXMLentity [...] {\cdots}
-
-% \defineXMLentity [quot] {"}
-
-% \defineXMLentity [triangle] {\mathematics\triangle}
-% \defineXMLentity [otimes] {\mathematics\otimes}
-% \defineXMLentity [oplus] {\mathematics\oplus}
-% \defineXMLentity [cup] {\mathematics\cup}
-% \defineXMLentity [cap] {\mathematics\cap}
-% \defineXMLentity [sdot] {\mathematics\cdot}
-% \defineXMLentity [dot] {\mathematics\cdot}
-% \defineXMLentity [sim] {\mathematics\sim}
-% \defineXMLentity [circ] {\mathematics\circ}
-% \defineXMLentity [dagger] {\mathematics\dagger}
-% \defineXMLentity [cdots] {\mathematics\cdots}
-
-% \defineXMLentity [...] {\getXMLentity{cdots}}
-% \defineXMLentity [continued] {\getXMLentity{cdots}}
-
-% \defineXMLentity [sub] {\getXMLentity{subset}}
-% \defineXMLentity [sube] {\getXMLentity{prsubset}}
-% \defineXMLentity [notprsubset] {\getXMLentity{notprsubset}}
-
-% \defineXMLentity [ndash] {\endash}
-% \defineXMLentity [mdash] {\emdash}
-
-% -- ignored: malignmark
-% -- luacode will be moved to x-mmp.lua
-% -- { } # % _ ^ & etc escapen, {} in mathtype entities; mo/mtext
-
-\ifx\MMLleft \undefined \let\MMLleft \firstofoneargument \fi
-\ifx\MMLright\undefined \let\MMLright\firstofoneargument \fi
-
-\def\mmlleftdelimiter #1{\normalordelimiter{#1}{\MMLleft #1}}
-\def\mmlrightdelimiter#1{\normalordelimiter{#1}{\MMLright#1}}
-\def\mmlchar #1{\char#1 }
-\def\mmlnolim #1{\mathopnolimits{#1}}
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/x-mml.mkiv b/Master/texmf-dist/tex/context/base/x-mml.mkiv
deleted file mode 100644
index d2dd91a0900..00000000000
--- a/Master/texmf-dist/tex/context/base/x-mml.mkiv
+++ /dev/null
@@ -1,49 +0,0 @@
-%D \module
-%D [ file=x-mml,
-%D version=2007.09.04,
-%D title=\CONTEXT\ XML Modules,
-%D subtitle=MathML Renderer,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This is a first version of the \MKIV\ \MATHML\ processor using
-%D the \type {lxml} helper functions. The implementation is yet
-%D incomplete but I needed a quick hack for a project where I wanted
-%D to use the new \MKIV\ \XML\ handler. It's also a nice testcase.
-
-\startxmlsetups xml:mml:process
- \xmlgrab {\xmldocument} {mml:*} {*}
-\stopxmlsetups
-
-\xmlregistersetup{xml:mml:process}
-
-\xmlregisterns{mml}{mathml}
-
-\def\setupMMLappearance[#1]{\dodoubleargument\getparameters[@@MML#1]}
-
-\def\MMLhack{\let\MMLpar\par \let\par\relax \everyvbox{\let\par\MMLpar}}
-
-\startxmlsetups mml:math
- \automathematics {\MMLhack\xmlflush{#1}}
-\stopxmlsetups
-
-\startxmlsetups mml:imath
- \inlinemathematics{\MMLhack\xmlflush{#1}}
-\stopxmlsetups
-
-\startxmlsetups mml:dmath
- \displaymathematics{\MMLhack\xmlflush{#1}}
-\stopxmlsetups
-
-% -- we need a new entity mapper (also covering unicode)
-
-\loadmarkfile{x-mmb} % common code
-\loadmarkfile{x-mmp} % presentation mathml
-\loadmarkfile{x-mmc} % content mathml
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/x-mmp.mkiv b/Master/texmf-dist/tex/context/base/x-mmp.mkiv
deleted file mode 100644
index dff7ade58d8..00000000000
--- a/Master/texmf-dist/tex/context/base/x-mmp.mkiv
+++ /dev/null
@@ -1,497 +0,0 @@
-%D \module
-%D [ file=x-mmp,
-%D version=2007.09.04,
-%D title=\CONTEXT\ XML Modules,
-%D subtitle=Presentation MathML Renderer,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\startluacode
- do
-
- lxml.mml = lxml.mml or { }
-
- local texsprint = tex.sprint
-
- -- an alternative is to remap to private codes, where we can have
- -- different properties .. to be done
-
- local n_replacements = {
- -- [" "] = utf.char(0x2002), -- "&textspace;" -> tricky, no &; in mkiv
- ["."] = "{.}",
- [","] = "{,}",
- [" "] = "",
- }
- local o_replacements = {
- ["{"] = "\\mmlleftdelimiter\\lbrace",
- ["}"] = "\\mmlrightdelimiter\\rbrace",
- ["("] = "\\mmlleftdelimiter(",
- [")"] = "\\mmlrightdelimiter)",
- ["["] = "\\mmlleftdelimiter[",
- ["]"] = "\\mmlrightdelimiter]",
- ["<"] = "\\mmlleftdelimiter<",
- [">"] = "\\mmlrightdelimiter>",
- ["#"] = "\\mmlchar{35}",
- ["$"] = "\\mmlchar{36}",
- ["%"] = "\\mmlchar{37}",
- ["&"] = "\\mmlchar{38}",
- ["^"] = "\\mmlchar{94}{}", -- strange, sometimes luatex math see the char instead of \char
- ["_"] = "\\mmlchar{95}{}", -- so we need the {}
- ["~"] = "\\mmlchar{126}",
- [" "] = "",
- }
- local i_replacements = {
- ["sin"] = "\\mathopnolimits{sin}",
- ["cos"] = "\\mathopnolimits{cos}",
- ["abs"] = "\\mathopnolimits{abs}",
- ["arg"] = "\\mathopnolimits{arg}",
- ["codomain"] = "\\mathopnolimits{codomain}",
- ["curl"] = "\\mathopnolimits{curl}",
- ["determinant"] = "\\mathopnolimits{det}",
- ["divergence"] = "\\mathopnolimits{div}",
- ["domain"] = "\\mathopnolimits{domain}",
- ["gcd"] = "\\mathopnolimits{gcd}",
- ["grad"] = "\\mathopnolimits{grad}",
- ["identity"] = "\\mathopnolimits{id}",
- ["image"] = "\\mathopnolimits{image}",
- ["lcm"] = "\\mathopnolimits{lcm}",
- ["max"] = "\\mathopnolimits{max}",
- ["median"] = "\\mathopnolimits{median}",
- ["min"] = "\\mathopnolimits{min}",
- ["mode"] = "\\mathopnolimits{mode}",
- ["mod"] = "\\mathopnolimits{mod}",
- ["polar"] = "\\mathopnolimits{Polar}",
- ["exp"] = "\\mathopnolimits{exp}",
- ["ln"] = "\\mathopnolimits{ln}",
- ["log"] = "\\mathopnolimits{log}",
- ["sin"] = "\\mathopnolimits{sin}",
- ["arcsin"] = "\\mathopnolimits{arcsin}",
- ["sinh"] = "\\mathopnolimits{sinh}",
- ["arcsinh"] = "\\mathopnolimits{arcsinh}",
- ["cos"] = "\\mathopnolimits{cos}",
- ["arccos"] = "\\mathopnolimits{arccos}",
- ["cosh"] = "\\mathopnolimits{cosh}",
- ["arccosh"] = "\\mathopnolimits{arccosh}",
- ["tan"] = "\\mathopnolimits{tan}",
- ["arctan"] = "\\mathopnolimits{arctan}",
- ["tanh"] = "\\mathopnolimits{tanh}",
- ["arctanh"] = "\\mathopnolimits{arctanh}",
- ["cot"] = "\\mathopnolimits{cot}",
- ["arccot"] = "\\mathopnolimits{arccot}",
- ["coth"] = "\\mathopnolimits{coth}",
- ["arccoth"] = "\\mathopnolimits{arccoth}",
- ["csc"] = "\\mathopnolimits{csc}",
- ["arccsc"] = "\\mathopnolimits{arccsc}",
- ["csch"] = "\\mathopnolimits{csch}",
- ["arccsch"] = "\\mathopnolimits{arccsch}",
- ["sec"] = "\\mathopnolimits{sec}",
- ["arcsec"] = "\\mathopnolimits{arcsec}",
- ["sech"] = "\\mathopnolimits{sech}",
- ["arcsech"] = "\\mathopnolimits{arcsech}",
- [" "] = "",
-
- ["false"] = "{\\mr false}",
- ["notanumber"] = "{\\mr NaN}",
- ["otherwise"] = "{\\mr otherwise}",
- ["true"] = "{\\mr true}",
- ["declare"] = "{\\mr declare}",
- ["as"] = "{\\mr as}",
- }
-
- function lxml.mml.prepare_number(id,pattern)
- local str = xml.content(lxml.id(id),pattern) or ""
- texsprint(tex.ctxcatcodes,(str:gsub(".",n_replacements)))
- end
- function lxml.mml.prepare_operator(id,pattern)
- local str = xml.content(lxml.id(id),pattern) or ""
- tex.sprint(tex.ctxcatcodes,(str:gsub(".",o_replacements)))
- end
- function lxml.mml.prepare_identifier(id,pattern)
- local str = xml.content(lxml.id(id),pattern) or ""
- str = str:gsub("^%s*(.*)%s*$","%1")
- local rep = i_replacements[str]
- if rep then
- tex.sprint(tex.ctxcatcodes,rep)
- else
- tex.sprint(tex.ctxcatcodes,(str:gsub(".",i_replacements)))
- end
- end
-
- function lxml.mml.connect(id,pattern,separators) -- multiple separators
- local n = xml.count(id,pattern)
- if n == 0 then
- -- skip
- elseif n == 1 then
- lxml.all(id,pattern)
- else
- local t = { }
- for s in utf.gmatch(separators,"([^%s])") do
- t[#t+1] = s
- end
- for i=1,n do
- if i > 1 then
- texsprint(tex.ctxcatcodes,"{")
- texsprint(t[i] or t[#t] or "")
- texsprint(tex.ctxcatcodes,"}")
- end
- lxml.idx(id,pattern,i) -- kind of slow, some day ...
- end
- end
- end
-
- local function flush(e,tag,toggle)
- -- texsprint(tex.ctxcatcodes,(toggle and "^{") or "_{")
- if toggle then
- texsprint(tex.ctxcatcodes,"^{")
- else
- texsprint(tex.ctxcatcodes,"_{")
- end
- if tag == "none" then
- texsprint(tex.ctxcatcodes,"{}")
- else
- xml.sprint(e.dt)
- end
- if not toggle then
- texsprint(tex.ctxcatcodes,"}")
- else
- texsprint(tex.ctxcatcodes,"}{}")
- end
- return not toggle
- end
-
- function lxml.mml.multiscripts(id)
- local done, toggle = false, false
- id = lxml.id(id)
- -- for i=1,#id.dt do local e = id.dt[i] if type(e) == table then ...
- for r, d, k in xml.elements(id,"/*") do
- local e = d[k]
- local tag = e.tg
- if tag == "mprescripts" then
- texsprint(tex.ctxcatcodes,"{}")
- done = true
- elseif done then
- toggle = flush(e,tag,toggle)
- end
- end
- local done, toggle = false, false
- for r, d, k in xml.elements(id,"/*") do
- local e = d[k]
- local tag = e.tg
- if tag == "mprescripts" then
- break
- elseif done then
- toggle = flush(e,tag,toggle)
- else
- xml.sprint(e.dt)
- done = true
- end
- end
- end
-
- end
-\stopluacode
-
-\unprotect
-
-% helpers
-
-% \let\myspecialnormalvert\myspecialstretchvert
-% \setupMMLappearance[scripts][\c!alternative=\v!a] {} rond base
-
-\mapXMLvalue{mmp}{normal} {\tf} \mapXMLvalue{mmp}{double-stuck} {\bf}
-\mapXMLvalue{mmp}{bolditalic} {\bi} \mapXMLvalue{mmp}{bold-italic} {\bi}
-\mapXMLvalue{mmp}{boldslanted}{\bs} \mapXMLvalue{mmp}{bold-slanted} {\bs}
-\mapXMLvalue{mmp}{boldnormal} {\bf} \mapXMLvalue{mmp}{bold} {\bf}
-\mapXMLvalue{mmp}{slanted} {\sl} \mapXMLvalue{mmp}{normalslanted}{\sl}
-\mapXMLvalue{mmp}{italic} {\it} \mapXMLvalue{mmp}{normalitalic} {\it}
-\mapXMLvalue{mmp}{fraktur} {\bf} \mapXMLvalue{mmp}{bold-fraktur} {\bf}
-\mapXMLvalue{mmp}{script} {\tf} \mapXMLvalue{mmp}{bold-script} {\bf}
-
-\def\setMMLptextstyle#1%
- {\XMLval{mmp}{\xmlatt{#1}{fontweight}\xmlatt{#1}{fontstyle}}{}}
-
-\def\setMMLpmathstyle#1%
- {\XMLval{mmp}{\xmlatt{#1}{mathvariant}}{}}
-
-\def\doMMPpcolor#1%
- {\doifelsenothing{\xmlatt{#1}{color}} \firstofoneargument {\color[\xmlatt{#1}{color}]}}
-
-\def\doMMPpbackground#1%
- {\doifelsenothing{\xmlatt{#1}{background}}
- {\firstofoneargument}
- {\inframed
- [\c!frame=\v!off,
- \c!background=\v!color,
- \c!backgroundcolor=\xmlatt{#1}{background}]}}
-
-\def\doMMPpsometext#1#2%
- {\doMMPpbackground{#1}{\doMMPpcolor{#1}{\setMMLptextstyle{#1}\ignorespaces#2\removeunwantedspaces}}}
-
-\def\doMMLfiller#1% bugged
- {\pushmacro\doMMLfiller
- \let\doMMLfiller\gobbleoneargument
- \gdef\dodoMMLfiller{\disablefiller\mathematics{#1}}%
- \hbox
- {\def\normalorfiller##1##2%
- {\gdef\dodoMMLfiller{\enablefiller#1}%
- \let\normalorfiller\gobbletwoarguments}%
- $#1$}%
- \popmacro\doMMLfiller}
-
-% setups
-
-% \defineXMLentity[_] {{\_{}}}
-% \defineXMLentity[^] {{\^{}}}
-
-% \defineXMLentity[_] {\string_}
-% \defineXMLentity[^] {\normalorfiller\hat\widehat}
-
-\startsetups mml:semantics % todo: width=ex/ex/pt
- \xmlflush{#1}
-\stopsetups
-
-% \startxmlsetups mml:mi % todo: mathvariant mathsize mathcolor mathbackground
-% \edef\MMPidentifier{\xmlstripped{#1}{*}}
-% \doifXMLentityelse{\detokenize\expandafter{\MMPidentifier}} {
-% \getXMLentity\MMPidentifier
-% } {
-% \MMPidentifier
-% }
-% \stopxmlsetups
-
-\startxmlsetups mml:mi % todo: mathvariant mathsize mathcolor mathbackground
- \ctxlua{lxml.mml.prepare_identifier("#1","*")}
-\stopxmlsetups
-
-\startxmlsetups mml:mn % todo: mathvariant mathsize mathcolor mathbackground
- \begingroup
- \mr \ctxlua{lxml.mml.prepare_number("#1","*")}%
- \endgroup
-\stopxmlsetups
-
-% hbox will make . and , behave ok, see rep patterns above as alternative
-%
-% \startxmlsetups mml:mn % todo: mathvariant mathsize mathcolor mathbackground
-% \mathop{\hbox{\mr \ctxlua{lxml.mml.prepare_number("#1","*")}}}% we need . and , properly spaced
-% \stopxmlsetups
-
-% \startxmlsetups mml:mo
-% \edef\MMPoperator{\ctxlua{lxml.mml.prepare_operator("#1","*")}}
-% \doifXMLentityelse{\detokenize\expandafter{\MMPoperator}} {
-% \getXMLentity\MMPoperator
-% } {
-% \MMPoperator
-% }
-% \stopxmlsetups
-
-% also ok:
-
-\startxmlsetups mml:mo
- \ctxlua{lxml.mml.prepare_operator("#1","*")}
-\stopxmlsetups
-
-\startxmlsetups mml:mrow
- \begingroup
- \ifcase\xmlcount{#1}{/mml:mo}\relax
- \xmlflush{#1}
- \else % no \let
- \def\MMLleft {\left }
- \def\MMLright{\right}
- \enabledelimiter
- \checkdelimiters{\xmlall{#1}{/mml:mo}}
- \fakeleftdelimiter
- \xmlflush{#1}
- \fakerightdelimiter
- \disabledelimiter
- \fi
- \endgroup
-\stopxmlsetups
-
-\startxmlsetups mml:mstyle
- \begingroup
- \setMMLpmathstyle{#1}
- \xmlflush{#1}
- \endgroup
-\stopxmlsetups
-
-\startxmlsetups mml:ms
- \xmlattdef{#1}{lquot}{"}
- \doMMPpsometext{#1}{\xmlflush{#1}}
- \xmlattdef{#1}{rquot}{"}
-\stopxmlsetups
-
-\startxmlsetups mml:mtext
- \hbox \bgroup \tf % else encoding problems, we can make mr an option
- \doMMPpsometext{#1}{\xmlflush{#1}}
- \egroup
-\stopxmlsetups
-
-\startxmlsetups mml:merror
- \hbox{$\displaystyle\xmlflush{#1}$}
-\stopxmlsetups
-
-\startxmlsetups mml:mphantom
- \phantom{{}\xmlflush{#1}{}}
-\stopxmlsetups
-
-\startxmlsetups mml:mpadded
- \xmlflush{#1}
-\stopxmlsetups
-
-\startxmlsetups mml:mfenced % {} around separator is needed for spacing
- \edef\MMPopen {\xmlatt{#1}{open}}
- \edef\MMPclose {\xmlatt{#1}{close}}
- \edef\MMPseparators{\xmlatt{#1}{separators}}
- \ifx\MMPseparators\empty \def\MMPseparators{,}\fi
- \doifelsenothing \MMPopen {
- \left.
- } {
- \left\MMPopen
- }
- \ctxlua{lxml.mml.connect("#1","/*","\MMPseparators")}%
- \doifelsenothing \MMPclose {
- \right.
- } {
- \right\MMPclose
- }
-\stopxmlsetups
-
-\startxmlsetups mml:menclose % notation=.....
- % we will implement this when we need it
- \xmlflush{#1}
-\stopxmlsetups
-
-\startxmlsetups mml:msqrt
- \sqrt{\xmlflush{#1}}
-\stopxmlsetups
-
-\startxmlsetups mml:mroot
- \root{\xmlindex{#1}{*}{1}}\of{\xmlindex{#1}{*}{2}}
-\stopxmlsetups
-
-\startsetups mml:mfrac % dodo: handle linethickness in lua + unit
- \begingroup
- \edef\MMPlinethickness{\xmlatt{#1}{linethickness}}
- \ifx\MMPlinethickness\empty
- \doifelse{\xmlatt{#1}{bevelled}}{true} {
- \xmlindex{#1}{/*}{1}
- \mathpunct{\kern-.2ex\left.\middle/\right.\kern-.25ex}
- \xmlindex{#1}{/*}{2}
- } {
- \frac{\xmlindex{#1}{/*}{1}}{\xmlindex{#1}{/*}{2}}
- }
- \else
- \processaction
- [\MMPlinethickness]
- [ thin=>\scratchdimen=.2pt,
- medium=>\scratchdimen=.4pt,
- thick=>\scratchdimen=.8pt,
- unknown=>\setdimensionwithunit\scratchdimen{\MMPlinethickness}{pt}]
- {
- {\xmlindex{#1}{/*}{1}}
- \above\scratchdimen
- {\xmlindex{#1}{/*}{2}}
- }
- \fi
- \endgroup
-\stopsetups
-
-\startsetups mml:mspace % todo: width=ex/ex/pt
- \hskip.5em\relax
-\stopsetups
-
-% {} around first component is essential!
-
-\startsetups mml:msub
- {\xmlindex{#1}{/*}{1}}_{\xmlindex{#1}{/*}{2}}
-\stopsetups
-
-\startsetups mml:msup
- {\xmlindex{#1}{/*}{1}}^{\xmlindex{#1}{/*}{2}}
-\stopsetups
-
-\startsetups mml:msubsup
- {\xmlindex{#1}{/*}{1}}_{\xmlindex{#1}{/*}{2}}^{\xmlindex{#1}{/*}{3}}
-\stopsetups
-
-\startsetups mml:mover
- \mathop {
- \edef\mmlovertoken{\xmlraw{#1}{/mml:mo[position()==2]}}
- \doifelse{\utfmathclass\mmlovertoken}{accent} {
- \utfmathcommand\mmlovertoken{\xmlindex{#1}{/*}{1}}
- } {
- \vbox {
- \m@th\ialign {
- \hss##\hss\crcr
- \noalign{\kern3\p@}%
- \disabledelimiter\doMMLfiller{
- \xmlindex{#1}{/*}{2}
- }\crcr
- \noalign{\kern3\p@\nointerlineskip}%
- \disabledelimiter\doMMLfiller{
- \xmlindex{#1}{/*}{1}
- }\crcr
- }
- }
- }
- }
- \limits
-\stopsetups
-
-\startsetups mml:munder
- \mathop {
- \vtop {
- \m@th\ialign{
- \hss##\hss\crcr
- \disabledelimiter\doMMLfiller{\xmlindex{#1}{/*}{1}}\crcr
- \noalign{\kern3\p@\nointerlineskip}%
- \disabledelimiter\doMMLfiller{\xmlindex{#1}{/*}{2}}\crcr
- \noalign{\kern3\p@}
- }
- }
- }
- \limits
-\stopsetups
-
-\startsetups mml:munderover
- \edef\mmlunderovertoken{\xmlraw{#1}{/mml:mo[position()==1]}}
-% \doifelse{\utfmathclass\mmlunderovertoken}{limop} {
-% \utfmathcommand\mmlunderovertoken
-% } {
-% \xmlindex{#1}{/*}{1}
-% {
- \utfmathcommanddefault\mmlunderovertoken{xmlindex}{{#1}{/*}{1}}
- _{\disablefiller\disabledelimiter\xmlindex{#1}{/*}{2}}
- ^{\disablefiller\disabledelimiter\xmlindex{#1}{/*}{3}}
-\stopsetups
-
-\startxmlsetups mml:mlabeledtr
- \bTR \xmlall{#1}{/mml:mtd} \eTR
-\stopxmlsetups
-
-\startxmlsetups mml:mtr
- \bTR \xmlall{#1}{/mml:mtd} \eTR
-\stopxmlsetups
-
-\startxmlsetups mml:mtd
- \bTD$\MMLhack\xmlall{#1}{/*}\relax$\eTD
-\stopxmlsetups
-
-\startxmlsetups mml:mtable
- \vcenter \bgroup
- \bTABLE[\c!frame=\v!off]
- \xmlall{#1}{/mml:mtr|mml:mlabeledtr}
- \eTABLE
- \egroup
-\stopxmlsetups
-
-\startxmlsetups mml:mmultiscripts
- \ctxlua{lxml.mml.multiscripts("#1")}
-\stopxmlsetups
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/x-newcml.tex b/Master/texmf-dist/tex/context/base/x-newcml.tex
index c5f99961597..76d69ed516b 100644
--- a/Master/texmf-dist/tex/context/base/x-newcml.tex
+++ b/Master/texmf-dist/tex/context/base/x-newcml.tex
@@ -1,8 +1,8 @@
%D \module
%D [ file=x-newmml,
%D version=2006.04.09, % reimplementation
-%D title=\CONTEXT\ XML Modules,
-%D subtitle=ChemML renderer,
+%D title=\CONTEXT\ XML Macros,
+%D subtitle=ChemML,
%D author=Hans Hagen,
%D date=\currentdate,
%D copyright={PRAGMA ADE}]
@@ -14,7 +14,9 @@
%D This used to be an xtag filter using remapping but the
%D following is nore in sync with the new mathml methods.
-\writestatus{loading}{Context XML Macros (chem ml)}
+\writestatus{loading}{ConTeXt XML Macros / ChemML}
+
+\useXMLfilter[stk]
\unprotect
diff --git a/Master/texmf-dist/tex/context/base/x-newmme.tex b/Master/texmf-dist/tex/context/base/x-newmme.tex
index 5a77059632c..5e17ea7a469 100644
--- a/Master/texmf-dist/tex/context/base/x-newmme.tex
+++ b/Master/texmf-dist/tex/context/base/x-newmme.tex
@@ -1,7 +1,7 @@
%D \module
%D [ file=m-newmme,
%D version=2005.06.10, % 1999.12.20,
-%D title=\CONTEXT\ XML Modules,
+%D title=\CONTEXT\ XML Macros,
%D subtitle=MathML Entities,
%D author=Hans Hagen,
%D date=\currentdate,
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context XML Macros (MathML Entities)}
+\writestatus{loading}{ConTeXt XML Macros / MathML Entities}
\unprotect
diff --git a/Master/texmf-dist/tex/context/base/x-newmml.mkii b/Master/texmf-dist/tex/context/base/x-newmml.mkii
new file mode 100644
index 00000000000..17eda527664
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/x-newmml.mkii
@@ -0,0 +1,2744 @@
+%D \module
+%D [ file=x-newmml,
+%D version=2005.06.10, % 1999.12.20,
+%D title=\CONTEXT\ XML Macros,
+%D subtitle=MathML,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D Remark: from now on this is a module and no longer an xtag
+%D filter. In due time it will replace the older renderer (which
+%D we will keep around for sentimental reasons). This variant has
+%D no namespace support yet, but eventually we will use a \MKIV\
+%D version.
+
+\useXMLfilter[stk]
+
+\ifx\inlinemathematics\undefined
+ \def\inlinemathematics {\dontleavehmode\mathematics} % already in kernel
+ \long\def\inlinemath #1{\dontleavehmode\relax\ifmmode#1\else $#1$\fi}
+\fi
+
+% \defineXMLentity[x000AF]{\normalorfiller{x}\hrulefill}
+% CHECK FOR: \xmlrent
+% \enablemathpunctuation
+
+%D Then we start defining the rendering macros:
+
+\writestatus{loading}{ConTeXt XML Macros / MathML}
+
+\startmodule [mathml]
+
+%D First we load the entities:
+
+\usemodule[newmme]
+
+% \setupmodule[a=c]
+% \setupmodule[a=c]
+
+\unprotect
+
+\def\MMLrm{\mr}
+
+\def\MMLseparator#1{{#1}} % nils space after separator
+
+%D First we define some general formula elements.
+
+\defineXMLenvironment [formula] [label=,sublabel=]
+ {\dostartXMLformula\placeformula}
+ {\dostopXMLformula}
+
+\defineXMLenvironment [subformula] [label=,sublabel=]
+ {\dostartXMLformula\placesubformula}
+ {\dostopXMLformula}
+
+\def\dostartXMLformula#1%
+ {\doifelsenothingXMLop{label}
+ {\startformula}
+ {\expanded{#1[\XMLop{label}]{\XMLop{sublabel}}}\startformula}}
+
+\def\dostopXMLformula
+ {\stopformula}
+
+%D Since I only had the draft of MathML 2 as example of
+%D rendering, there are probably a lot of omissions and
+%D misinterpretations. At least I learned some bits and
+%D pieces of math rendering.
+%D
+%D The main complications were not so much the math, but to
+%D find the most efficient way to handle elements without
+%D spacing beging messed up. The first implementation was
+%D aimed at getting reasonable output, this second
+%D implementation is already better in terms of handling
+%D nesting, and I will definitely need a third one that has
+%D more efficient and less ugly code.
+%D
+%D The \TEX\ part is not that complicated and once the
+%D preprocessor was okay, the rest way just a lot of keying
+%D and testing. It all comes down to gobbling, redefining,
+%D and not so much to parsing.
+%D
+%D The second implementation expanded the whole math sequence
+%D into an internal \TEX\ representation. This is a rather clean
+%D and fast process. Filtering and testing takes place by
+%D redefining the internal representation macros.
+%D
+%D The third implementation may look a bit more messy in some
+%D respects. This is because in \TEX\ it's not that trivial to
+%D implement a tree handler. We use a stack for the \type {apply}
+%D element and other sequential content. Occasionally we need to
+%D peek into child elements which involves messy code. This
+%D implementation is closer to the normal \XML\ handling in
+%D \CONTEXT.
+
+%D We start with the parent elements and the option handler.
+
+\defineXMLdirective [mathml] \setupMMLappearance
+
+\defineXMLargument [math] \automathematics
+\defineXMLargument [imath] \inlinemathematics
+\defineXMLargument [dmath] \displaymathematics
+\defineXMLargument [m] \inlinemathematics
+
+%D In the styles, options can be set with:
+
+\def\setupMMLappearance[#1]{\dodoubleargument\getparameters[@@MML#1]}
+
+\def\startusingMMLarguments % optional maken
+ {\begingroup
+ %\expandXMLta % expand entities first
+ \getXMLta}
+
+\def\stopusingMMLarguments % optional maken
+ {\endgroup}
+
+\def\MMLargumentprefix{@@MML\currentXMLelement}
+
+%D We will apply inner math to all bits and pieces made up by an
+%D \type {apply}.
+
+\def\MMLmathinner
+ {\ifinner \expandafter \firstofoneargument \else \expandafter \mathinner \fi}
+
+%D A few math related macros:
+
+\let\MMLctempresetlist\empty \def\setMMLcreset{\edef\MMLctempresetlist}
+
+\newcount\MMLapplydepth \def\MMLcreset{\MMLapplydepth\zerocount}
+
+% Stack handler
+
+\startXMLmapping[xmlstack:test]
+
+ \defineXMLnested
+ [apply]
+ {\startsavingXMLelements}
+ {\stopsavingXMLelements}
+
+\stopXMLmapping
+
+%D Auxiliary MathML macros: (to be generalized)
+
+\def\doifelseMMCfunction
+ {\begingroup
+ \XMLdoifonstackelse{fn}
+ {\donetrue}
+ {\XMLdoifonstackelse{apply}
+ {\defXMLfirstnamedtext\ascii{apply}%
+ \startsavingXMLelements % best use a substack so that we do not need to \edef
+ \ascii
+ \stopsavingXMLelements}
+ {}%
+ \XMLdoifonstackelse{fn}
+ {\donetrue}
+ {\defineXMLsave[ci][type=]%
+ \XMLfirstnamed{ci}%
+ \doifelse{\XMLpar{ci}{type}{}}{fn}
+ {\donetrue}
+ {\donefalse}}}%
+ \ifdone
+ \endgroup\expandafter\firstoftwoarguments
+ \else
+ \endgroup\expandafter\secondoftwoarguments
+ \fi}
+
+\def\doifelseMMCfunctioninapply#1#2% grouped
+ {\begingroup
+ \startXMLmapping[xmlstack:test]% take fast alternative
+ \getXMLstackdata{#1}%
+ \expanded{\doifinsetelse{\getXMLstackname\plusone}{#2}}
+ {\stopXMLmapping
+ \endgroup\firstoftwoarguments }
+ {\stopXMLmapping
+ \endgroup\secondoftwoarguments}}
+
+\def\dodoifelseMMCfunctioninapply#1#2%
+ {\startXMLmapping[xmlstack:test]% take fast alternative
+ \getXMLstackdata{#1}%
+ \expanded{\doifinsetelse{\getXMLstackname\plusone}{#2}}
+ {\stopXMLmapping
+ \firstoftwoarguments }
+ {\stopXMLmapping
+ \secondoftwoarguments}}
+
+%D Special features:
+
+\newtoks \@@postponedMMLactions \setfalse \somepostponedMMLactions
+
+\def\postponeMMLactions#1%
+ {\global\settrue\somepostponedMMLactions
+ \global\@@postponedMMLactions\expandafter{\the\@@postponedMMLactions#1}}
+
+\def\postponedMMLactions
+ {\global\setfalse\somepostponedMMLactions
+ \@EA\global\@EA\@@postponedMMLactions\@EA\emptytoks
+ \the\@@postponedMMLactions}
+
+%D A couple of lists:
+
+\def\MMLcmainresetlist
+ {times,divide,power,%
+ lt,gt,eq,leq,geq,%
+ in,inverse,%
+ fn,%
+ floor,ceiling,%
+ mean,%
+ selector,%
+ abs,int,limit,sum,product,%
+ outerproduct,innerproduct,scalarproduct}
+
+\def\MMLcfunctionlist
+ {sin,arcsin,sinh,arcsinh,%
+ cos,arccos,cosh,arccosh,%
+ tan,arctan,tanh,arctanh,%
+ cot,arccot,coth,arccoth,%
+ csc,arccsc,csch,arccsch,%
+ sec,arcsec,sech,arcsech,%
+ ln,exp,log,%
+ abs,int,limit,sum,product,%
+ fn} % ?
+
+\def\MMLcconstructlist
+ {diff,partialdiff,root} % apply goes wrong on 1/2 * (a_2 + b_3)
+
+% apply
+%
+%D We use inner and grouping (begin/end and no b/e) else we
+%D get problems with 1/2(1+2) and alike (todo: ask taco).
+%D
+%D The problem with apply is that we need to take care of
+%D several situations, like:
+%D
+%D \starttyping
+%D <apply> <.../> ...
+%D <apply> <fn> ...
+%D <apply> <apply> <ci> ...
+%D <apply> <apply> <fn> <ci> ...
+%D \stoptyping
+%D
+%D Because we translated version 2 of this renderer into
+%D version 3 the following definitions may be sub optimal or
+%D more complex than actually needed.
+
+\defineXMLnested % why nested? could be just an environment
+ [apply]
+ [open=,close=]
+ {\setups{mmc:apply:start}}
+ {\setups{mmc:apply:stop}}
+
+\startsetups mmc:apply:start
+ \begingroup
+ \startsavingXMLelements
+\stopsetups
+
+\startsetups mmc:apply:stop
+ \stopsavingXMLelements
+ \MMLmathinner {
+ \expanded{\doifinsetelse{\getXMLstackname\plusone}{\MMLcmainresetlist,\MMLctempresetlist}}
+ \MMLcreset
+ \donothing
+ \ifcase\MMLapplydepth \else
+ \doifXMLparelse{apply}{open} \donothing{\getXMLarguments{apply}{open="("}}% slow
+ \doifXMLparelse{apply}{close}\donothing{\getXMLarguments{apply}{close=")"}}% slow
+ \fi
+ \doifXMLparelse{apply}{open}{\left\XMLpar{apply}{open}{}}\donothing
+ \advance\MMLapplydepth\plusone
+ \begingroup
+ \let\MMLctempresetlist\empty
+ \doifelse {\getXMLstackname\plusone} {apply} {
+ % <apply> <apply> ... </apply> <ci> .. </ci> </apply>
+ \doifelseMMCfunctioninapply \plusone {plus,minus} {
+ % yet incomplete and rather untested
+ % <apply> <apply> <minus/> <tan/> <cos/> </apply> <ci>x</ci> </apply>
+ } {
+ \MMLcreset
+ }
+ \getXMLstackdata\plusone
+ \ifconditional\somepostponedMMLactions
+ \postponedMMLactions
+ \else
+ \left(\MMLcreset\getXMLstackdata\plustwo\right)
+ \fi
+ } {
+ \doifelse {\getXMLstackname\plusone} {fn} {
+ % also postpone
+ \directsetup{mmc:fn:apply}
+ } {
+ \doifelse {\getXMLstackname\plusone} {csymbol} {
+ % also postpone
+ \directsetup{mmc:csymbol:apply}
+ } {
+ \doifelse {\getXMLstackname\plusone} {ci} {
+ \getXMLstackdata\plusone
+ \ifnum\XMLstacklevel>\plusone
+ \left(\MMLcreset\flushXMLstackwith\plustwo{\MMLseparator,}\right)
+ \fi
+ } {
+ \getXMLstackdata\plusone
+ }
+ }
+ }
+ }
+ \endgroup
+ \advance\MMLapplydepth\minusone
+ \directsetup{apply:flush}
+ \doifXMLparelse{apply}{close}{\right\XMLpar{apply}{close}{}}\donothing
+ }
+ \endgroup
+\stopsetups
+
+\startsetups apply:flush
+\relax
+ \ifcase\MMLapplydepth
+ \ifconditional\somepostponedMMLactions
+ \postponedMMLactions
+ \ifx\MMLpowerelement\empty\else
+ ^{\MMLcreset\MMLpowerelement\empty}
+ \global\let\MMLpowerelement\empty
+ \fi
+ \fi
+ \fi
+\stopsetups
+
+% reln
+
+\defineXMLnestedenvironmentsave [reln]
+ {\writestatus{XML}{MathML element "reln" is obsolete}}
+ {}
+
+% fn
+
+\startsetups mmc:fn:plusminus
+ \ifnum\XMLstacklevel>\plustwo
+ \MMLcreset
+ \left(\expandafter\flushXMLstackwith\expandafter\plustwo\expandafter{\XMLfnoperator}\right)
+ \else
+ \getXMLstackdata\plustwo
+ \fi
+\stopsetups
+
+\startsetups mmc:fn:minusplus
+ \directsetup{mmc:fn:plusminus}
+\stopsetups
+
+\defineXMLnested
+ [fn]
+ {\directsetup{mmc:fn:start}}
+ {\directsetup{mmc:fn:stop}}
+
+\startsetups mmc:fn:apply
+ \begingroup
+ \startsavingXMLelements
+ \rawXMLstacktext\plusone % still on stack, no check, just fn content
+ \stopsavingXMLelements
+ \doifelse {\getXMLstackname\plusone} {ci} {
+ \flattenXMLcontent{\getXMLstackdata\plusone}
+ \doifsetupselse{mmc:fn:\flattenedXMLcontent} {
+ \global\defXMLstackdata\XMLfnoperator\plusone
+ \expanded{\endgroup\noexpand\directsetup{mmc:fn:\flattenedXMLcontent}}
+ } {
+ \endgroup
+ \MMLcreset
+ \getXMLstackdata\plusone
+ \ifnum\XMLstacklevel>\plusone
+ \getXMLentity{NegThinSpace}
+ \left(\MMLcreset\flushXMLstackwith\plustwo{\MMLseparator,}\right)
+ \fi
+ }
+ } {
+ \endgroup
+ \MMLcreset
+ \getXMLstackdata\plusone
+ }
+\stopsetups
+
+\startsetups mmc:fn:start
+ \ifnum\XMLstacklevel>\plustwo
+ \def\MMCfnleft {\left(}
+ \def\MMCfnright{\right)}
+ \else
+ \let\MMCfnleft \relax
+ \let\MMCfnright\relax
+ \fi
+ \begingroup
+ \startsavingXMLelements
+\stopsetups
+
+\startsetups mmc:fn:stop
+ \stopsavingXMLelements
+ \doifelse {\getXMLstackname\plusone} {ci} {
+ \flattenXMLcontent{\getXMLstackdata\plusone}
+ \doifsetupselse{mmc:fn:\flattenedXMLcontent} {
+ \global\defXMLstackdata\XMLfnoperator\plusone
+ \directsetup{mmc:fn:\flattenedXMLcontent}
+ } {
+ \MMLcreset
+ \getXMLstackdata\plusone
+ }
+ \endgroup
+ } {
+ \doifelse {\getXMLstackname\plusone} {apply} {
+ \doifelseMMCfunctioninapply \plusone {plus,minus} {
+ \left(
+ \getXMLstackdata\plusone
+ \right)
+ } {
+ \getXMLstackdata\plusone
+ }
+ \endgroup
+ \ifnum\XMLstacklevel>\plusone
+ \left(
+ \getXMLstackdata\plustwo
+ \right)
+ \fi
+ } {
+ \MMLcreset
+ \getXMLentity{NegThinSpace}
+ \MMCfnleft
+ \ifnum\XMLstacklevel=\plustwo\MMLccomma\fi
+ \flushXMLstackwith\plustwo\MMLccomma
+ \MMCfnright
+ \endgroup
+ }
+ }
+\stopsetups
+
+% c*
+
+\defineXMLargument [ci] [type=] {\XMLval{mmc:ci}{\XMLop{type}} {\firstofoneargument}}
+\defineXMLargument [cn] [type=,base=] {\XMLval{mmc:cn}{\XMLop{type}} {\firstofoneargument}}
+\defineXMLargument [csymbol] [encoding=text] {\XMLval{mmc:cs}{\XMLop{encoding}}{\firstofoneargument}}
+
+%D The next definition provide a kind of plug-in mechanism (see
+%D the open math extension module).
+
+\defineXMLsingular
+ [csymbol]
+ [encoding=text,
+ definitionURL=]
+ {\doifsomething{\XMLop{definitionURL}}{\directsetup{mmc:csymbol:apply}}}
+
+\startsetups mmc:csymbol:apply
+ \begingroup
+ \startsavingXMLelements
+ \rawXMLstacktext\plusone % still on stack, no check, just attr test
+ \stopsavingXMLelements
+ % http://www.publishers.com/SomeName
+ \lowercasestring\XMLpar{csymbol}{definitionURL}{}\to\mmcSymbolURL
+ \doifsetupselse{mmc:csymbol:} {\mmcSymbolURL} {
+ \expanded{\endgroup\noexpand\directsetup{mmc:csymbol:\mmcSymbolURL}}
+ } {
+ % SomeName (fallback)
+ \splitfilename{\XMLpar{csymbol}{definitionURL}{}}
+ \doifsetupselse{mmc:csymbol:\splitoffbase} {
+ \expanded{\endgroup\noexpand\directsetup{mmc:csymbol:\splitoffbase}}
+ } {
+ \endgroup
+ \XMLval{mmc:cs}{\XMLop{encoding}}{\firstofoneargument}
+ }
+ }
+\stopsetups
+
+%D Alternative b will convert periods into comma's:
+%D
+%D \startbuffer
+%D \startXMLdata
+%D <imath><apply><cn>1.23</cn></apply></imath>
+%D <dmath><apply><cn>1.23</cn></apply></dmath>
+%D \stopXMLdata
+%D
+%D \type{\setupMMLappearance[cn] [alternative=b]}
+%D
+%D \startXMLdata
+%D <imath><apply><cn>1.23</cn></apply></imath>
+%D <dmath><apply><cn>1.23</cn></apply></dmath>
+%D \stopXMLdata
+%D \stopbuffer
+%D
+%D \start \typebuffer \getbuffer \stop
+
+\setupMMLappearance[cn] [\c!alternative=\v!a]
+
+\defineXMLargument[cn][type=,base=]{\MMLdocn}
+
+\def\MMLdocn#1%
+ {\begingroup
+ \doif\@@MMLcnalternative\v!b{\redefinemathcharacter [.][ord][mi]["3B]\relax}%
+ \XMLval{mmc:cn}{\XMLop{type}}{\firstofoneargument}{#1}%
+ \endgroup}
+
+\defineXMLsingular [sep] {\MMLcsep} \def\MMLcsep{\,}
+
+\setupMMLappearance[polar] [\c!alternative=\v!a] % a|b|c
+\setupMMLappearance[float] [\c!symbol=\v!no] % \v!yes|dot
+\setupMMLappearance[enotation][\c!symbol=\v!no] % \v!yes|dot
+\setupMMLappearance[base] [\c!symbol=\v!numbers] % digits|characters|text|no
+
+\mapXMLvalue {mmc:ci} {set} {\MMLcCIset}
+\mapXMLvalue {mmc:ci} {vector} {\MMLcCIvector}
+\mapXMLvalue {mmc:ci} {matrix} {\MMLcCImatrix}
+\mapXMLvalue {mmc:ci} {function} {\MMLcCIfunction}
+\mapXMLvalue {mmc:ci} {complex-cartesian} {\MMLccartesian}
+\mapXMLvalue {mmc:ci} {complex} {\MMLccartesian}
+\mapXMLvalue {mmc:ci} {complex-polar} {\MMLcpolar}
+\mapXMLvalue {mmc:ci} {polar} {\MMLcpolar}
+\mapXMLvalue {mmc:ci} {fn} {\MMLcCIfunction}
+
+\mapXMLvalue {mmc:cn} {integer} {\MMLcCNinteger}
+\mapXMLvalue {mmc:cn} {logical} {\MMLcCNlogical}
+\mapXMLvalue {mmc:cn} {rational} {\MMLcCNrational}
+\mapXMLvalue {mmc:cn} {complex-cartesian} {\MMLccartesian}
+\mapXMLvalue {mmc:cn} {complex} {\MMLccartesian}
+\mapXMLvalue {mmc:cn} {complex-polar} {\MMLcpolar}
+\mapXMLvalue {mmc:cn} {polar} {\MMLcpolar}
+\mapXMLvalue {mmc:cn} {e-notation} {\MMLcenotation} % new
+\mapXMLvalue {mmc:cn} {float} {\MMLcfloat} % obsolete
+\mapXMLvalue {mmc:cn} {real} {\MMLcfloat}
+
+\mapXMLvalue {mmc:cs} {text} {\MMLcCStext}
+
+\def\MMLcpolar#1%
+ {\doifdefinedelse{MMLcdopolar\@@MMLpolaralternative}
+ {\getvalue{MMLcdopolar\@@MMLpolaralternative}{#1}}
+ {#1}}
+
+\def\MMLcdopolara#1%
+ {\def\MMLcsep{\MMLseparator,}\getXMLentity{polar}\left(#1\right)}
+
+\def\MMLcdopolarb#1%
+ {\def\MMLcsep##1\empty
+ {\getXMLentity{exponentiale}^{##1\mskip2mu\getXMLentity{imaginaryi}}}
+ #1\empty}
+
+\def\MMLcdopolarc#1%
+ {\def\MMLcsep##1\empty
+ {\getXMLentity{exp}\left(##1\mskip2mu\getXMLentity{imaginaryi}\right)}%
+ #1\empty}
+
+\def\MMLccartesian#1%
+ {\def\MMLcsep{+}#1\getXMLentity{imaginaryi}}
+
+% float will be obsolete, and is replace by e-notation
+
+\def\MMLcfloat#1%
+ {\doifelse\@@MMLfloatsymbol\v!no
+% {{\MMLrm#1}}% make sure that e shows up ok
+ {\mfunction{#1}}% make sure that e shows up ok
+ {% we should ignore \entities !
+ \beforesplitstring#1\at e\to\first
+ \aftersplitstring #1\at e\to\last
+ \ifx\first\empty #1\else
+ \ifx\last \empty #1\else
+ \first
+ \doifelse\@@MMLfloatsymbol{dot}\cdot\times
+ 10^{\last}%
+ \fi\fi}}
+
+% we now have:
+
+\def\MMLcenotation#1%
+ {\doifelse\@@MMLenotationsymbol\v!no
+% {\def\MMLcsep {\unskip{\MMLrm e}\ignorespaces}}
+ {\def\MMLcsep {\unskip\mfunction{e}\ignorespaces}}
+ {\def\MMLcsep##1\empty{\doifelse\@@MMLenotationsymbol{dot}\cdot\times10^{##1}}}%
+ #1\empty}
+
+\def\MMLcCIset#1%
+ {{\bbd#1}}
+
+\def\widevec#1%
+ {\vbox{\mathsurround\zeropoint\ialign{##\crcr
+ \rightarrowfill\crcr\noalign{\nointerlineskip}%
+ $\hfil\displaystyle{#1}\hfil$\crcr}}}
+
+\def\MMLcCIvector#1%
+ {\widevec{#1}}
+
+\def\MMLcCImatrix#1%
+ {{\bi#1}}
+
+\def\MMLcCIfunction#1%
+ {#1\getXMLentity{NegThinSpace}}
+
+\def\MMLcCNinteger#1%
+ {\doifXMLparelse{cn}{base}
+ {\def\MMLcCNbase{\XMLpar{cn}{base}{}}%
+ \doifelse\@@MMLbasesymbol\v!no
+ {\MMLcCNbasedata{#1}}
+% {\MMLcCNbasedata{#1}_{\hbox{$\MMLrm\scriptscriptstyle
+ {\MMLcCNbasedata{#1}_{\mfunction{%
+ \processaction
+ [\@@MMLbasesymbol]
+ [\v!characters=>\MMLcCNbasestring BODH,
+ \v!text=>\MMLcCNbasestring{BIN}{OCT}{DEC}{HEX},
+% \s!unknown=>\MMLcCNbase]$}}}}
+ \s!unknown=>\MMLcCNbase]}}}}
+ {#1}}
+
+\def\MMLcCNbasedata#1%
+% {\ifnum\MMLcCNbase>10{\MMLrm#1}\else#1\fi}
+ {\ifnum\MMLcCNbase>10\mfunction{#1}\else#1\fi}
+
+\def\MMLcCNbasestring#1#2#3#4%
+ {\ifnum\MMLcCNbase= 2 #1\else
+ \ifnum\MMLcCNbase= 8 #2\else
+ \ifnum\MMLcCNbase=10 #3\else
+ \ifnum\MMLcCNbase=16 #4\else
+ \MMLcCNbase \fi\fi\fi\fi}
+
+\def\MMLcCNlogical#1%
+% {{\MMLrm#1}}
+ {\mfunction{#1}}
+
+\bgroup \catcode`\<=\active
+
+ % quick and dirty, best track the stack (todo)
+
+ \gdef\MMLcCNrational#1%
+ {\ConvertConstantAfter\doifinstringelse{sep}{#1}
+ {\doMMLcCNrational#1\empty}
+ {#1}}
+
+ \gdef\doMMLcCNrational#1<sep#2>#3\empty
+ {\hbox{$\frac{#1}{#3}$}}
+
+\egroup
+
+\def\MMLcCStext#1%
+% {{\MMLrm#1}}
+ {\mfunction{#1}}
+
+% interval
+
+\defineXMLnested [interval]
+ [closure=closed]
+ {\directsetup{mmc:interval:start}}
+ {\directsetup{mmc:interval:stop}}
+
+\startsetups mmc:interval:start
+ \begingroup
+ \startsavingXMLelements
+\stopsetups
+
+\startsetups mmc:interval:stop
+ \stopsavingXMLelements
+ \XMLval{mmc:int}{\XMLpar{interval}{closure}{closed}}{error}
+ \endgroup
+\stopsetups
+
+\startsetups mmc:interval:fetch
+ \defineXMLnested [interval]
+ [closure=closed]
+ {\directsetup{mmc:interval:fetch:start}}
+ {\directsetup{mmc:interval:fetch:stop}}
+\stopsetups
+
+\startsetups mmc:interval:fetch:start
+ \begingroup
+ \startsavingXMLelements
+\stopsetups
+
+\startsetups mmc:interval:fetch:stop
+ \stopsavingXMLelements
+ \globallet\MMCintervalfrom\empty
+ \globallet\MMCintervalto \empty
+ \ifcase\XMLstacklevel
+ \or
+ \xdef\MMCintervalfrom{\getXMLstackdata\plusone}
+ \or
+ \xdef\MMCintervalfrom{\getXMLstackdata\plusone}
+ \xdef\MMCintervalto {\getXMLstackdata\plustwo}
+ \fi
+ \endgroup
+\stopsetups
+
+\setupMMLappearance[interval][\c!alternative=\v!a,\c!separator={,}]
+
+\mapXMLvalue {mmc:int} {closed}
+ {\left[\getXMLstackdata\plusone\MMLseparator\@@MMLintervalseparator\getXMLstackdata\plustwo\right]}
+
+\mapXMLvalue {mmc:int} {open-closed}
+ {\doifelse\@@MMLintervalalternative\v!b
+ {\left<\getXMLstackdata\plusone\MMLseparator\@@MMLintervalseparator\getXMLstackdata\plustwo\right]}
+ {\left(\getXMLstackdata\plusone\MMLseparator\@@MMLintervalseparator\getXMLstackdata\plustwo\right]}}
+
+\mapXMLvalue {mmc:int} {closed-open}
+ {\doifelse\@@MMLintervalalternative\v!b
+ {\left[\getXMLstackdata\plusone\MMLseparator\@@MMLintervalseparator\getXMLstackdata\plustwo\right>}
+ {\left[\getXMLstackdata\plusone\MMLseparator\@@MMLintervalseparator\getXMLstackdata\plustwo\right)}}
+
+\mapXMLvalue {mmc:int} {open}
+ {\doifelse\@@MMLintervalalternative\v!b
+ {\left<\getXMLstackdata\plusone\MMLseparator\@@MMLintervalseparator\getXMLstackdata\plustwo\right>}
+ {\left(\getXMLstackdata\plusone\MMLseparator\@@MMLintervalseparator\getXMLstackdata\plustwo\right)}}
+
+% inverse
+
+\defineXMLcommand [inverse] {\directsetup{mmc:inverse}}
+
+\startsetups mmc:inverse
+ \ifnum\XMLstacklevel>\plustwo
+ \getXMLentity{\getXMLstackname\plustwo}^{-1}
+ \left[\getXMLstackdata\plusthree\right]
+ \else
+ \xdef\MMLpowerelement{-1}
+ \expanded{\postponeMMLactions{\rawXMLstackdata\plustwo}}
+ \eraseXMLdataonstack\plustwo
+ \fi
+\stopsetups
+
+% condition
+
+\defineXMLnested
+ [condition]
+ {\directsetup{mmc:condition:start}}
+ {\directsetup{mmc:condition:stop}}
+
+\startsetups mmc:condition:start
+% \XMLdoifonstackelse{bvar} {
+% \XMLfirstnamed{bvar}\mid
+% } { }
+ \begingroup
+ \startsavingXMLelements
+\stopsetups
+
+\startsetups mmc:condition:stop
+ \stopsavingXMLelements
+ \flushXMLstackfrom\plusone
+ \endgroup
+\stopsetups
+
+% declare
+
+\setupMMLappearance[declare][\c!state=\v!start]
+
+\defineXMLnested
+ [declare]
+ {\directsetup{mmc:declare:start}}
+ {\directsetup{mmc:declare:stop}}
+
+\startsetups mmc:declare:start
+ \begingroup
+ \startsavingXMLelements
+\stopsetups
+
+\startsetups mmc:declare:stop
+ \stopsavingXMLelements
+ \doif\@@MMLdeclarestate\v!start {
+ \getXMLentity{declare}\getXMLstackdata\plusone
+ \ifnum\XMLstacklevel>\plusone
+ \getXMLentity{ThickSpace}
+ \getXMLentity{as}
+ \getXMLentity{ThickSpace}
+ \fi
+ \getXMLstackdata\plustwo
+ }
+ \endgroup
+\stopsetups
+
+% lambda
+
+\setupMMLappearance[lambda][\c!alternative=b]
+
+\defineXMLnested
+ [lambda]
+ {\directsetup{mmc:lambda:start}}
+ {\directsetup{mmc:lambda:stop}}
+
+\startsetups mmc:lambda:start
+ \begingroup
+ \startsavingXMLelements
+\stopsetups
+
+\startsetups mmc:lambda:stop
+ \stopsavingXMLelements
+ \doifelse\@@MMLlambdaalternative\v!a {
+ \getXMLentity{lambda}(\flushXMLstackwith\plusone{\MMLseparator,})
+ } {
+ \countXMLnamedstack{bvar}
+ \ifnum\scratchcounter>\plusone
+ \left(\flushXMLnamedstackwith\plusone{bvar}{\MMLseparator,}\right)
+ \else
+ \XMLfirstnamed{bvar}
+ \fi
+ \getXMLentity{mapsto}
+ \MMLcreset
+ \XMLfirstnamed{apply,reln,ci,cn}
+ }
+ \endgroup
+\stopsetups
+
+\startsetups mmc:lambda:simple
+ \defineXMLnested
+ [lambda]
+ {\directsetup{mmc:lambda:simple:start}}
+ {\directsetup{mmc:lambda:simple:stop}}
+\stopsetups
+
+\startsetups mmc:lambda:simple:start
+ \begingroup
+ \startsavingXMLelements
+\stopsetups
+
+\startsetups mmc:lambda:simple:stop
+ \stopsavingXMLelements
+ \MMLcreset % new
+ \XMLfirstnamed{apply}
+ \endgroup
+\stopsetups
+
+% compose
+
+\defineXMLcommand [compose] {\directsetup{mmc:compose}}
+
+\startsetups mmc:compose
+ \begingroup
+ \MMLcreset
+ \let\MMLcCIfunction\firstofoneargument % brrr
+ \doifelseMMCfunction {
+ \left(\flushXMLstackwith\plustwo\circ\right)
+ } {
+ \flushXMLstackwith\plustwo\circ
+ }
+ \endgroup
+\stopsetups
+
+\defineXMLcommand [image] {\directsetup{mmc:image}}
+
+\startsetups mmc:image
+ \getXMLentity{image}
+ \left(
+ \begingroup
+ \startlocalsetups [mmc:function]
+ \getXMLentity\currentXMLelement
+ \stoplocalsetups
+ \getXMLstackdata\plustwo
+ \endgroup
+ \right)
+\stopsetups
+
+\setupMMLappearance[piece][\c!separator=]
+
+\def\setMMLcPIECEseparator
+ {\processaction
+ [\@@MMLpieceseparator]
+ [ \v!yes=>\def\theMMLpieceseparator{,\@col@amp@},
+ \v!no=>\let\theMMLpieceseparator\@col@amp@,
+ \s!default=>\let\theMMLpieceseparator\@col@amp@,
+ \s!unknown=>\def\theMMLpieceseparator{\,\,\hbox{\@@MMLpieceseparator}\,\,}]}
+
+\defineXMLargument[piecewise] {\cases}
+
+\defineXMLnested
+ [piece]
+ {\directsetup{mmc:piece:start}}
+ {\directsetup{mmc:piece:stop}}
+
+\defineXMLenvironmentsave
+ [otherwise]
+ {}
+ {\directsetup{mmc:otherwise}}
+
+\startsetups mmc:piece:start
+ \startsavingXMLelements
+ \setMMLcPIECEseparator
+\stopsetups
+
+\startsetups mmc:piece:stop
+ \stopsavingXMLelements
+ \edef\ascii{\getXMLstackdata\plusone}
+ \@EA\XMLRtoks\@EA{\ascii\theMMLpieceseparator}
+ \edef\ascii{\getXMLstackdata\plustwo}
+ \@EA\appendtoks\@EA\mathematics\@EA{\ascii}\to\XMLRtoks
+ \the\XMLRtoks\crcr
+\stopsetups
+
+\startsetups mmc:otherwise
+ \XMLflush{otherwise}\MMLcPIECEseparator\@col@amp@\mathematics{\getXMLentity{otherwise}}\crcr
+\stopsetups
+
+\defineXMLcommand [quotient] {\directsetup{mmc:quotient}}
+
+\startsetups mmc:quotient
+ \lfloor\getXMLstackdata\plustwo/\getXMLstackdata\plusthree\rfloor
+\stopsetups
+
+\defineXMLcommand [factorial] {\getXMLstackdata\plustwo !}
+
+\defineXMLcommand [divide] [\MMLargumentprefix] [] {\directsetup{mmc:divide}} % brr not nested
+
+\setupMMLappearance [divide] [\c!level=\!!maxcard,\c!alternative=\v!a]
+
+\startsetups mmc:divide
+ \startusingMMLarguments
+ \increment\MMLcDIVIDElevel
+ \doifelse \@@MMLdividealternative\v!b {
+ \getXMLstackdata\plustwo/\getXMLstackdata\plusthree
+ } {
+ \ifnum\MMLcDIVIDElevel>\@@MMLdividelevel\space
+ \getXMLstackdata\plustwo/\getXMLstackdata\plusthree
+ \else
+ \MMLcreset
+ \frac{\MMLcreset\getXMLstackdata\plustwo}{\MMLcreset\getXMLstackdata\plusthree}%
+ \fi
+ }
+ \decrement\MMLcDIVIDElevel
+ \stopusingMMLarguments
+\stopsetups
+
+% min max
+
+\defineXMLcommand [min] {\min\directsetup{mmc:minmax}}
+\defineXMLcommand [max] {\max\directsetup{mmc:minmax}}
+
+\startsetups mmc:minmax
+ \doifelse{\getXMLstackdata\plustwo}{bvar} {
+ {}_{\getXMLstackdata\plustwo}
+ \left\{\flushXMLstackwith\plusthree{\MMLseparator,}\right\}
+ } {
+ \left\{\flushXMLstackwith\plustwo {\MMLseparator,}\right\}
+ }
+\stopsetups
+
+% minus plus
+
+\defineXMLcommand [minus] {\directsetup{mmc:minus}}
+\defineXMLcommand [plus] [\MMLargumentprefix] [] {\directsetup{mmc:plus}}
+
+\setupMMLappearance [plus] [\c!alternative=\v!a] % b = no sign -> 3 1/4
+\setupMMLappearance [sign] [\c!reduction=\v!yes]
+
+\startsetups mmc:minus
+ \doif \@@MMLsignreduction \v!yes {
+ \setMMLcreset{fn,\MMLcfunctionlist}
+ }
+ \ifcase\XMLstacklevel
+ \or
+ % self
+ \or
+ -\getXMLstackdata\plustwo
+ \else
+ \flushXMLstackwith\plustwo-
+ \fi
+\stopsetups
+
+\startsetups mmc:plus
+ \startusingMMLarguments
+ \doifelse \@@MMLsignreduction \v!yes {
+ \setMMLcreset{fn,plus,minus,\MMLcfunctionlist,\MMLcconstructlist}% was plus/, minus/
+ \doifelse{\getXMLstackname\plustwo} {apply} {
+ % branch needed, else (a-b) + (c-d) goes wrong
+ % reset check in case of (-x) + 37
+ \begingroup
+ \dodoifelseMMCfunctioninapply \plustwo {minus} {
+ \ifnum\XMLstacklevel>\plustwo
+ \endgroup
+ \else
+ \endgroup
+ \MMLcreset
+ \fi
+ } {
+ \endgroup
+ }
+ \doifelse \@@MMLplusalternative \v!b {
+ \getXMLstackdata\plustwo \,
+ } {
+ \flushXMLstackwith\plustwo +
+ }
+
+ } {
+ \flushXMLstackwith\plustwo {
+ \doifelse {\getXMLstackname\recurselevel} {apply} {
+ \begingroup
+ \dodoifelseMMCfunctioninapply \recurselevel {minus} {
+ \ifnum\XMLstacklevel>\plustwo +\fi
+ } {
+ \doifelse \@@MMLplusalternative \v!b {
+ \, % maybe 2 1/3
+ } {
+ +
+ }
+ }
+ \endgroup
+ \MMLcreset
+ } {
+ +
+ }
+ }
+ }
+ } {
+ \ifcase\XMLstacklevel
+ \or
+ % self
+ \or
+ +\getXMLstackdata\plustwo
+ \else
+ \flushXMLstackwith\plustwo+
+ \fi
+ }
+ \stopusingMMLarguments
+\stopsetups
+
+% power
+
+\defineXMLcommand [power] {\directsetup{mmc:power}}
+
+\setupMMLappearance[power][\c!reduction=\v!yes]
+
+\let\MMLpowerelement\empty
+
+\startsetups mmc:power
+ \doifelse {\getXMLstackname\plustwo} {apply} {
+ \doifelse\@@MMLpowerreduction\v!yes {
+ \doifelseMMCfunctioninapply \plustwo \MMLcfunctionlist {
+ \xdef\MMLpowerelement{\getXMLstackdata\plusthree}% postpone
+ \MMLcreset\getXMLstackdata\plustwo
+ } {
+ \left(\MMLcreset\getXMLstackdata\plustwo\right)^{\MMLcreset\getXMLstackdata\plusthree}
+ }
+ } {
+ \left(\MMLcreset\getXMLstackdata\plustwo\right)^{\MMLcreset\getXMLstackdata\plusthree}
+ }
+ } {
+ \getXMLstackdata\plustwo^{\MMLcreset\getXMLstackdata\plusthree}
+ }
+\stopsetups
+
+% rem
+
+\defineXMLcommand [rem] {\flushXMLstackwith\plustwo{\getXMLentity{mod}}}
+
+\setupMMLappearance [times] [\c!symbol=\v!no,\c!auto=\v!yes] % new, auto catches cn cn cn
+
+\defineXMLcommand [times] [\MMLargumentprefix] [] {\directsetup{mmc:times}}
+
+\startsetups mmc:times
+ \startusingMMLarguments
+ \setMMLcreset{\MMLcfunctionlist,\MMLcconstructlist}%
+ \doifelse\@@MMLtimesauto\v!no {
+ \let\@@MMLtimes@@symbol\@@MMLtimessymbol
+ } {
+ \countXMLnamedstack {cn}
+ \ifnum\scratchcounter>\plusone
+ \doifinsetelse\@@MMLtimessymbol{\v!yes,\v!no} {
+ \let\@@MMLtimes@@symbol\v!yes
+ } {
+ \let\@@MMLtimes@@symbol\@@MMLtimessymbol
+ }
+ \else
+ \let\@@MMLtimes@@symbol\@@MMLtimessymbol
+ \fi
+ }
+ \doifelse\@@MMLtimes@@symbol\v!yes {
+ \flushXMLstackwith\plustwo\times
+ } {
+ \doifelse\@@MMLtimes@@symbol{dot} {
+ \flushXMLstackwith\plustwo\cdot
+ } {
+ \doifelse\@@MMLtimes@@symbol{times} {
+ \flushXMLstackwith\plustwo\times
+ } {
+ \flushXMLstackwith\plustwo\empty
+ }
+ }
+ }
+ \stopusingMMLarguments
+\stopsetups
+
+\defineXMLcommand [root] {\directsetup{mmc:root}}
+
+\setupMMLappearance[root][\c!symbol=\v!yes]
+
+\startsetups mmc:root
+ \XMLdoifonstackelse {degree} {
+ \root
+ \doifnot\@@MMLrootsymbol\v!no{\MMLcreset\XMLfirstnamed{degree}}
+ \of
+ } {
+ \sqrt
+ }
+ {\MMLcreset\XMLfirstnamed{apply,reln,ci,cn}}
+\stopsetups
+
+% gcd
+
+\defineXMLcommand [gcd] {\gcd\left(\MMLcreset\flushXMLstackwith\plustwo{\MMLseparator,}\right)}
+
+% and or xor implies
+
+\defineXMLcommand [and] {\flushXMLstackwith\plustwo{\getXMLentity{and}}}
+\defineXMLcommand [or] {\flushXMLstackwith\plustwo{\getXMLentity{or}}}
+\defineXMLcommand [xor] {\flushXMLstackwith\plustwo{\getXMLentity{xor}}}
+\defineXMLcommand [implies] {\flushXMLstackwith\plustwo{\getXMLentity{implies}}}
+
+% not
+
+\defineXMLcommand [not] {\getXMLentity{not}\getXMLstackdata\plustwo}
+
+% forall exists
+
+\defineXMLcommand [forall] {\directsetup{mmc:forall}}
+\defineXMLcommand [exists] {\directsetup{mmc:exists}}
+
+%D We need to shift left below rotated A.
+
+\startsetups mmc:forall
+ \getXMLentity{forall}
+ \getXMLentity{NegThinSpace}
+ \directsetup{mmc:forall-exists}
+\stopsetups
+
+\startsetups mmc:exists
+ \getXMLentity{exists}
+ \directsetup{mmc:forall-exists}
+\stopsetups
+
+\startsetups mmc:forall-exists
+ _{\flushXMLnamedstackwith\plustwo{bvar}{\MMLseparator,}}
+ \XMLdoifonstackelse {condition} {
+ \getXMLentity{ThickSpace}
+ \begingroup
+ \XMLfirstnamed{condition}
+ \endgroup
+ \countXMLnamedstack {apply,reln,ci,cn}
+ \ifcase\scratchcounter
+ \or
+ % == snelle volgende
+ \left\vert \MMLcreset
+ \getXMLentity{MediumSpace}
+ \flushXMLnamedstackwith\plustwo{apply,reln,ci,cn}\empty
+ \right.
+ \else
+ % special case
+ % \defineXMLignore[condition]
+ \collectXMLnamedstack{apply,reln,ci,cn}{\hfill\crcr}
+ \left\vert
+ \matrix{\the\XMLRtoks}
+ \right.
+ \fi
+ } {
+ :\XMLfirstnamed{apply,reln,ci,cn}
+ }
+\stopsetups
+
+\defineXMLcommand [abs] {\left\vert \MMLcreset \flushXMLstackfrom\plustwo \right\vert}
+\defineXMLcommand [conjugate] {{\overline{\MMLcreset \flushXMLstackfrom\plustwo}}} % watch extra {}
+\defineXMLcommand [arg] {\getXMLentity{arg} \left(\MMLcreset\flushXMLstackfrom\plustwo\right)}
+\defineXMLcommand [real] {\getXMLentity{real} \left(\MMLcreset\flushXMLstackfrom\plustwo\right)}
+\defineXMLcommand [imaginary] {\getXMLentity{imaginary}\left(\MMLcreset\flushXMLstackfrom\plustwo\right)}
+\defineXMLcommand [lcm] {\getXMLentity{lcm} \left(\flushXMLstackwith\plustwo{\MMLseparator,}\right)}
+\defineXMLcommand [floor] {\getXMLentity{lfloor} \flushXMLstackfrom\plustwo \getXMLentity{rfloor}}
+\defineXMLcommand [ceiling] {\getXMLentity{lceiling} \flushXMLstackfrom\plustwo \getXMLentity{rceiling}}
+
+% relations
+
+\defineXMLcommand [eq] [\MMLargumentprefix] [\c!align=] {\MMLcrelation=}
+\defineXMLcommand [neq] [\MMLargumentprefix] [\c!align=] {\MMLcrelation\neq}
+\defineXMLcommand [gt] [\MMLargumentprefix] [\c!align=] {\MMLcrelation>}
+\defineXMLcommand [lt] [\MMLargumentprefix] [\c!align=] {\MMLcrelation<}
+\defineXMLcommand [geq] [\MMLargumentprefix] [\c!align=] {\MMLcrelation\geq}
+\defineXMLcommand [leq] [\MMLargumentprefix] [\c!align=] {\MMLcrelation\leq}
+\defineXMLcommand [equivalent] [\MMLargumentprefix] [\c!align=] {\MMLcrelation\equiv}
+\defineXMLcommand [approx] [\MMLargumentprefix] [\c!align=] {\MMLcrelation\approx}
+\defineXMLcommand [factorof] [\MMLargumentprefix] [\c!align=] {\MMLcrelation\mid}
+
+\setupMMLappearance[relation][\c!align=\v!no]
+
+\def\MMLcrelation
+ {\startusingMMLarguments
+ \MMLcreset
+ \edef\@@MMLrelationalign{\executeifdefined{\MMLargumentprefix\c!align}\@@MMLrelationalign}%
+ \processaction
+ [\@@MMLrelationalign]
+ [\v!last=>\let\next\lastMMLcrelation ,
+ \v!first=>\let\next\firstMMLcrelation,
+ \v!yes=>\let\next\leftMMLcrelation ,
+ \v!left=>\let\next\leftMMLcrelation ,
+ \v!right=>\let\next\rightMMLcrelation,
+ \s!default=>\let\next\noMMLcrelation ,
+ \s!unknown=>\let\next\noMMLcrelation ]
+ \next}
+
+\def\noMMLcrelation#1%
+ {\flushXMLstackwith\plustwo{#1}
+ \stopusingMMLarguments}
+
+\def\lastMMLcrelation#1% weird, probably bugged
+ {\XMLRtoks\emptytoks
+ \dostepwiserecurse\plustwo\XMLstacklevel\plusone
+ {\appendetoks\noexpand\getXMLstackdata{\recurselevel}\to\XMLRtoks
+ \ifnum\recurselevel<\numexpr\XMLstacklevel-1\relax
+ \appendtoks\@col@amp@#1\crcr\to\XMLRtoks
+ \else\ifnum\recurselevel=\numexpr\XMLstacklevel-1\relax
+ \appendtoks\@col@amp@#1\to\XMLRtoks
+ \fi\fi}%
+ \eqalign{\the\XMLRtoks\crcr}%
+ \stopusingMMLarguments}
+
+\def\firstMMLcrelation#1%
+ {\collectXMLstackrows\plusthree{\crcr\@col@amp@#1}%
+ \eqalign{\getXMLstackdata\plustwo\@col@amp@#1\the\XMLRtoks}%
+ \stopusingMMLarguments}
+
+\def\leftMMLcrelation#1%
+ {\collectXMLstackrows\plustwo{\@col@amp@#1\crcr}%
+ \eqalign{\the\XMLRtoks}%
+ \stopusingMMLarguments}
+
+\def\rightMMLcrelation#1%
+ {\collectXMLstackrows\plustwo{\crcr#1{}\@col@amp@}%
+ \eqalign{\@col@amp@\the\XMLRtoks\crcr}%
+ \stopusingMMLarguments}
+
+\defineXMLcommand [becomes] {\MMLcrelation{:=}}
+
+\addtocommalist{becomes/}\MMLcmainresetlist
+
+% calculus and vector calculus
+
+\setupMMLappearance[int][\c!location=\v!top]
+
+\def\doMMLlimits#1%
+ {\doifelsevalue{@@MML#1\c!location}\v!top\limits\nolimits}
+
+\defineXMLnested
+ [domainofapplication]
+ {\directsetup{mmc:domainofapplication:start}}
+ {\directsetup{mmc:domainofapplication:stop}}
+
+\startsetups mmc:domainofapplication:start
+ \begingroup
+ \startsavingXMLelements
+\stopsetups
+
+\startsetups mmc:domainofapplication:stop
+ \stopsavingXMLelements
+% \MMLcreset
+ \flushXMLstackfrom\plusone
+ \endgroup
+\stopsetups
+
+\defineXMLcommand [int] {\directsetup{mmc:int}}
+
+\startsetups mmc:int
+ \MMLcreset
+ \XMLdoifonstackelse{domainofapplication} {
+ \int\doMMLlimits{int}_{\XMLfirstnamed{domainofapplication}}\relax
+ } {
+ \XMLdoifonstackelse{condition} {
+ \int\doMMLlimits{int}_{\XMLfirstnamed{condition}}\relax
+ } {
+ \XMLdoifonstackelse{lowlimit} {
+ \int\doMMLlimits{int}
+ _{\XMLfirstnamed{lowlimit}}
+ ^{\XMLfirstnamed{uplimit}}
+ } {
+ % funny, why do we have lowlimit/uplimit then
+ \XMLdoifonstackelse{interval} {
+ \begingroup
+ \startlocalsetups mmc:interval:start %
+ \begingroup
+ \startsavingXMLelements
+ \stoplocalsetups
+ \startlocalsetups mmc:interval:stop %
+ \stopsavingXMLelements
+ \xdef\MMLfirstelement {\getXMLstackdata\plusone}
+ \xdef\MMLsecondelement{\getXMLstackdata\plustwo}
+ \endgroup
+ \stoplocalsetups
+ \globallet\MMLfirstelement \empty
+ \globallet\MMLsecondelement\empty
+ \XMLfirstnamed{interval}
+ \endgroup
+ \int\doMMLlimits{int}
+ _{\MMLfirstelement}
+ ^{\MMLsecondelement}
+ } {
+ \int
+ }
+ }
+ }
+ }
+ \MMLcreset
+ \XMLdoifonstackelse{apply} {
+ \doifelseMMCfunction {
+ \XMLfirstnamed{apply}
+ } {
+ % if there are too many () now, we need to be more clever
+ \left(\XMLfirstnamed{apply}\right)
+ }
+ } {
+ \XMLfirstnamed{ci}
+ }
+ \XMLdoifonstackelse{bvar} {
+ \,% \getXMLentity{ThinSpace}%
+% {\MMLrm\getXMLentity{mathematicald}}
+ \mfunction{\getXMLentity{mathematicald}}
+ \XMLfirstnamed{bvar}
+ } {
+ % nothing
+ }
+\stopsetups
+
+\setupMMLappearance[diff][\c!location=\v!top,\c!alternative=\v!a]
+
+\defineXMLcommand [diff] {\directsetup{mmc:diff}}
+\defineXMLcommand [partialdiff] {\directsetup{mmc:partialdiff}}
+
+% \setupMMLappearance[diff][alternative=b]
+%
+% \startXMLdata
+% <math><apply><apply><diff/><bvar><ci>x</ci></bvar><ci>f</ci></apply><ci>a</ci></apply></math>
+% <math><apply><apply><diff/><bvar><ci>x</ci></bvar><degree>2</degree><ci>f</ci></apply><ci>a</ci></apply></math>
+% \stopXMLdata
+
+% d^y/dx^2
+%
+% \startXMLdata
+% <math><apply><diff/>
+% <bvar><ci>x</ci><cn type="integer">2</cn></bvar>
+% <lambda><bvar><ci>x</ci></bvar><ci>y</ci></lambda>
+% </apply></math>
+% \stopXMLdata
+
+\startsetups mmc:diff
+ \MMLcreset
+ \doifelse\@@MMLdiffalternative\v!a {
+ \XMLdoifonstackelse{lambda} {
+ % a special case (mathadore/openmath)
+ \begingroup
+ \defineXMLsave[ci]
+ \defineXMLsave[cn]
+ \defineXMLprocess[lambda]
+ \defineXMLprocess[bvar]
+ \frac {
+ d^{\XMLfirstnamed{bvar}\XMLflush{cn}}{\XMLfirstnamed{lambda}\XMLflush{ci}}
+ } {
+ d{\XMLfirstnamed{bvar}\XMLflush{ci}}^{\XMLfirstnamed{bvar}\XMLflush{cn}}
+ }
+ \endgroup
+ } {
+ \XMLdoifonstackelse{bvar} {
+ \frac {
+ \XMLdoifonstackelse{degree} {
+ \collectXMLnamedstack{degree}\empty
+ } {
+ \collectXMLnamedstacknamed{bvar}{degree}+
+ }
+ \mfunction{\getXMLentity{mathematicald}}
+ ^{\the\XMLRtoks}
+ \doif\@@MMLdifflocation\v!top {
+ \XMLdoifonstackelse{ci} {
+ \XMLfirstnamed{ci}
+ } {
+ \MMLcreset\XMLfirstnamed{apply}
+ }
+ }
+ } {
+ \mfunction{\getXMLentity{mathematicald}}
+ \begingroup
+ \defineXMLsave[degree]
+ \XMLfirstnamed{bvar}
+ \doifXMLdata{degree} {
+ ^{\XMLflush{degree}}
+ }
+ \endgroup
+ }
+ \doifnot\@@MMLdifflocation\v!top {
+ \left(\MMLcreset\XMLfirstnamed{apply,ci}\right)
+ }
+ } {
+ \flushXMLstackfrom\plustwo^\prime
+ }
+ }
+ } {
+ \MMLcreset
+ \XMLfirstnamed{apply,ci}
+ % there can be problems with nested diff's: ^^{} error
+ % so we add an empty group here
+ {}^
+ {
+ \XMLdoifonstackelse{degree} {
+ \defXMLfirstnamedtext\ascii{degree}
+ \dorecurse\ascii\prime
+ } {
+ \prime
+ }
+ }
+ }
+\stopsetups
+
+\startsetups mmc:partialdiff
+ \XMLdoifonstackelse{list} {
+ \getXMLentity{capitaldifferentiald}_{
+ \begingroup
+ \setfalse\MMLlistdelimiters
+ \XMLallnamed{list}
+ \endgroup
+ }
+ \XMLfirstnamed{apply,reln,ci,cn}
+ } {
+ \XMLdoifonstackelse{bvar} {
+ \frac {
+ \XMLdoifonstackelse{degree} {
+ \collectXMLnamedstack{degree}\empty
+ } {
+ \collectXMLnamedstacknamed{bvar}{degree}+
+ }
+ \getXMLentity{differentiald}^{\the\XMLRtoks}
+ % \let\MMLcDEGREE\gobbletwoarguments
+ % \doifelseMMCfunction\MMLcreset\donothing
+ \MMLcreset
+ \XMLfirstnamed{apply,reln,ci,cn}
+ } {
+ \defineXMLnested[bvar]
+ {\directsetup{mmc:bvar:diff:start}}
+ {\directsetup{mmc:bvar:diff:stop}}
+ \XMLfirstnamed{bvar}
+ }
+ } {
+ \XMLfirstnamed{apply,reln,ci,cn}
+ }
+ }
+\stopsetups
+
+\startsetups mmc:bvar:diff:start
+ \begingroup
+ \startsavingXMLelements
+\stopsetups
+
+\startsetups mmc:bvar:diff:stop
+ \stopsavingXMLelements
+ \getXMLentity{differentiald}\XMLfirstnamed{apply,reln,ci,cn}
+ \XMLdoifonstackelse{degree} {
+ ^{\XMLfirstnamed{degree}}
+ } {
+ % nothing
+ }
+ \endgroup
+\stopsetups
+
+\def\subMMLcelement #1#2{_{#2}}
+\def\superMMLcelement#1#2{^{#2}}
+
+\defineXMLprocess [lowlimit]
+\defineXMLprocess [uplimit]
+\defineXMLprocess [bvar]
+\defineXMLprocess [degree]
+
+% option:
+%
+% \defineXMLentity [div] {\mathematics{\triangledown\times}}
+% \defineXMLentity [curl] {\mathematics{\triangledown .}}
+% \defineXMLentity [grad] {\mathematics{\triangledown }}
+
+\defineXMLcommand [divergence] {\getXMLentity{divergence}\directsetup{mmc:donamedfunction}}
+\defineXMLcommand [grad] {\getXMLentity {grad}\directsetup{mmc:donamedfunction}}
+\defineXMLcommand [curl] {\getXMLentity {curl}\directsetup{mmc:donamedfunction}}
+\defineXMLcommand [laplacian] {\getXMLentity {laplacian}\directsetup{mmc:donamedfunction}}
+
+\defineXMLcommand [ident] {\getXMLentity {identity}\directsetup{mmc:donamedfunction}}
+% \defineXMLcommand [domain] {\getXMLentity {domain}\directsetup{mmc:donamedfunction}}
+% \defineXMLcommand [codomain] {\getXMLentity {codomain}\directsetup{mmc:donamedfunction}}
+
+\defineXMLcommand[domain] {\directsetup{mmc:domain:action}}
+\defineXMLcommand[codomain]{\directsetup{mmc:codomain:action}}
+
+\setupMMLappearance[domain] [symbol=]
+\setupMMLappearance[codomain][symbol=]
+
+\startsetups mmc:domain:action
+ \doifelsenothing\@@MMLdomainsymbol {
+ \getXMLentity{domain}\directsetup{mmc:donamedfunction}
+ } {
+ \@@MMLdomainsymbol_{\flushXMLstackfrom\plustwo}
+ }
+\stopsetups
+\startsetups mmc:codomain:action
+ \doifelsenothing\@@MMLcodomainsymbol {
+ \getXMLentity{codomain}\directsetup{mmc:donamedfunction}
+ } {
+ \@@MMLcodomainsymbol_{\flushXMLstackfrom\plustwo}
+ }
+\stopsetups
+
+
+\startsetups mmc:donamedfunction
+% \left(
+% \begingroup
+ \MMLcreset\flushXMLstackfrom\plustwo
+% \endgroup
+% \right)
+\stopsetups
+
+% theory of sets
+
+\defineXMLnested [set]
+ {\setups{mmc:set:start}}
+ {\setups{mmc:set:stop}}
+
+\startsetups mmc:set:start
+ \begingroup
+ \startsavingXMLelements
+\stopsetups
+
+\startsetups mmc:set:stop
+ \stopsavingXMLelements
+ \XMLdoifonstackelse{condition} {
+ \left\{\XMLfirstnamed{bvar}\,\middle\vert\,\XMLfirstnamed{condition}\right\}
+ } {
+ \left\{\flushXMLstackwith\plusone{\MMLseparator,}\right\}
+ }
+ \endgroup
+\stopsetups
+
+\defineXMLnested [list]
+ {\setups{mmc:list:start}}
+ {\setups{mmc:list:stop}}
+
+\settrue\MMLlistdelimiters
+
+\startsetups mmc:list:start
+ \begingroup
+ \startsavingXMLelements
+\stopsetups
+
+\startsetups mmc:list:stop
+ \stopsavingXMLelements
+ \ifconditional\MMLlistdelimiters\left [\fi
+ \begingroup
+ \settrue\MMLlistdelimiters
+ \flushXMLstackwith\plusone{\MMLseparator,}
+ \endgroup
+ \ifconditional\MMLlistdelimiters\right]\fi
+ \endgroup
+\stopsetups
+
+\defineXMLcommand [union] {\MMLcset\cup}
+\defineXMLcommand [intersect] {\MMLcset\cap}
+\defineXMLcommand [in] {\MMLcset\in}
+\defineXMLcommand [notin] {\MMLcset{\not\in}}
+\defineXMLcommand [subset] {\MMLcset\subset}
+\defineXMLcommand [prsubset] {\MMLcset\subseteq}
+\defineXMLcommand [notsubset] {\MMLcset{\not\subset}}
+\defineXMLcommand [notprsubset] {\MMLcset{\not\subseteq}}
+\defineXMLcommand [setdiff] {\MMLcset\setminus}
+
+\def\MMLcset#1{\getXMLstackdata\plustwo#1\getXMLstackdata\plusthree}
+
+\defineXMLcommand [card] {\left\vert\flushXMLstackfrom\plustwo\right\vert}
+\defineXMLcommand [cartesianproduct] {\flushXMLstackwith\plustwo\times}
+
+% sequences and series
+
+\defineXMLcommand [sum] {\MMLcSUMandPRODUCT{sum}\sum}
+\defineXMLcommand [product]{\MMLcSUMandPRODUCT{product}\prod}
+
+\setupMMLappearance[sum] [\c!location=\v!top]
+\setupMMLappearance[product][\c!location=\v!top]
+
+\def\stackMMLsubscripts#1%
+ {\vbox
+ {\baselineskip\zeropoint % hack, taco vragen
+ \halign{$\scriptstyle\hss##\hss$\cr#1\crcr}}}
+
+\def\MMLcSUMandPRODUCT#1#2%
+ {\begingroup
+ \XMLdoifonstackelse{condition,bvar,lowlimit}
+ {\def\MMLcSUMlow
+ {_{\XMLdoifonstackelse{condition}
+ {\collectXMLnamedstack{condition}{\crcr}%
+ \stackMMLsubscripts{\the\XMLRtoks}}
+ {\XMLdoifonstackelse{bvar}
+ {\XMLfirstnamed{bvar}%
+ \XMLdoifonstackelse{lowlimit}{=}{}}%
+ {}%
+ \XMLfirstnamed{lowlimit}}}}}
+ {\let\MMLcSUMlow\empty}%
+ \XMLdoifonstackelse{uplimit}
+ {\def\MMLcSUMup{^{\XMLfirstnamed{uplimit}}}}
+ {\let\MMLcSUMup\empty}%
+ \XMLdoifonstackelse{interval} % open math converter gives this
+ {\begingroup
+ \directsetup{mmc:interval:fetch}%
+ \XMLfirstnamed{interval}%
+ \endgroup
+ \ifx\MMCintervalfrom\empty\else
+ \def\MMLcSUMlow{_{\XMLdoifonstackelse{bvar}{\XMLfirstnamed{bvar}{=}}{}\MMCintervalfrom}}%
+ \fi
+ \ifx\MMCintervalto\empty \else
+ \def\MMLcSUMup{^{\MMCintervalto}}%
+ \fi}
+ {}%
+ \MMLcreset#2\doMMLlimits{#1}\MMLcSUMup\MMLcSUMlow
+ \directsetup{mmc:lambda:simple}% a bit of open math conversion mess
+ \MMLcreset\XMLfirstnamed{apply,lambda,ci}%
+ \endgroup}
+
+\defineXMLcommand [limit] {\directsetup{mmc:limit}}
+
+\setupMMLappearance[limit][\c!location=\v!top]
+
+\startsetups mmc:limit
+ \MMLcreset \lim
+ \doMMLlimits{limit}_{
+ \MMLcreset
+ \XMLdoifonstackelse {condition} {
+ \XMLfirstnamed{condition}
+ } {
+ \XMLdoifonstackelse {bvar} {
+ \XMLfirstnamed{bvar}\rightarrow
+ } {
+ }
+ \XMLfirstnamed{lowlimit}
+ }
+ }
+ \begingroup
+ \MMLcreset
+ \directsetup{mmc:lambda:simple}% a bit of open math conversion mess
+ \XMLfirstnamed{apply,lambda}% lambda needed for openmath
+ \endgroup
+\stopsetups
+
+\defineXMLcommand [tendsto] [type=default] {\directsetup{mmc:tendsto}}
+
+\startsetups mmc:tendsto
+ \MMLcreset \getXMLstackdata\plustwo
+ \processaction
+ [\XMLpar{tendsto}{type}{default}]
+ [ above=>\downarrow,
+ below=>\uparrow,
+ unknown=>\rightarrow]
+ \MMLcreset \getXMLstackdata\plusthree
+\stopsetups
+
+% elementary classical functions
+
+\defineXMLcommand [exp] {\directsetup{mmc:exp}}
+\defineXMLcommand [ln] {\directsetup{mmc:function}}
+\defineXMLcommand [log] {\directsetup{mmc:log}}
+\defineXMLignore [logbase]
+
+\setupMMLappearance[log][\c!location=\v!right]
+
+\startsetups mmc:exp
+ \getXMLentity{exponentiale}^{\XMLfirstnamed{apply,reln,ci,cn}}
+\stopsetups
+
+\startsetups mmc:log
+ \XMLdoifonstackelse {logbase} {
+ \doifelse\@@MMLloglocation\v!left {
+ \mathop{{}^{{\defineXMLprocess[logbase]\XMLfirstnamed{logbase}}}
+ \getXMLentity{NegThinSpace}
+ \getXMLentity{log}}
+ } {
+ \getXMLentity{log}_{{\defineXMLprocess[logbase]\XMLfirstnamed{logbase}}}
+ }
+ } {
+ \getXMLentity{log}
+ }
+ \MMLcreset
+ % mmc:function:argument assumes that the apply is second in the row (*1*)
+ % \removeXMLdatafromstack{logbase}
+ \directsetup{mmc:function:argument}
+\stopsetups
+
+% statistics
+
+\defineXMLcommand [mean] {\overline{\getXMLstackdata\plustwo}}
+\defineXMLcommand [sdev] {\sigma(\MMLcreset\getXMLstackdata\plustwo)}
+\defineXMLcommand [variance] {\sigma(\MMLcreset\getXMLstackdata\plustwo)^2}
+\defineXMLcommand [median] {\getXMLentity{median}(\MMLcreset\getXMLstackdata\plustwo)}
+\defineXMLcommand [mode] {\getXMLentity{mode}(\MMLcreset\getXMLstackdata\plustwo)}
+
+% moments
+
+\defineXMLcommand [moment] {\directsetup{mmc:moment}}
+\defineXMLprocess [momentabout]
+
+\startsetups mmc:moment
+ \left\langle\XMLfirstnamed{apply,reln,ci,cn}^{\XMLfirstnamed{degree}}\right\rangle
+ \XMLdoifonstackelse{momentabout} {
+ _{\XMLfirstnamed{momentabout}}
+ } {
+ }
+\stopsetups
+
+% linear algebra
+
+\defineXMLcommand [vector] {\directsetup{mmc:vector}} % sequence
+
+\setupMMLappearance [vector] [\c!direction=\v!horizontal,\c!separator={,}]
+
+\defineXMLnested
+ [vector]
+ {\directsetup{mmc:vector:start}}
+ {\directsetup{mmc:vector:stop}}
+
+\startsetups mmc:vector:start
+ \begingroup
+ \startsavingXMLelements
+\stopsetups
+
+\startsetups mmc:vector:stop
+ \stopsavingXMLelements
+ \ifnum\XMLstacklevel>\plusone
+ \doifelse\@@MMLvectordirection\v!horizontal {
+ \left(\flushXMLstackwith\plusone{\MMLseparator\@@MMLvectorseparator}\right)
+ } {
+ \collectXMLstack\crcr
+ \MMLcreset\left(\matrix{\the\XMLRtoks}\right)
+ }
+ \else
+ \overrightarrow{\charhtstrut\getXMLstackdata\plusone}
+ \fi
+ \endgroup
+\stopsetups
+
+\defineXMLnestedenvironmentsave [matrix] {} {\directsetup{mmc:matrix}}
+\defineXMLnestedenvironmentsave [matrixrow] {} {\directsetup{mmc:matrixrow}}
+
+\unexpanded\def\@col@amp@{&}
+
+\settrue\MMCdelmatrix %( ) when true
+
+\startsetups mmc:matrix
+ \begingroup
+ \MMLcreset
+ \defineXMLnestedenvironmentsave [matrixrow] {} {\directsetup{mmc:matrixrow:do}}
+ \ifconditional\MMCdelmatrix
+ \left(\matrix{\XMLflush{matrix}}\right)
+ \else
+ \settrue\MMCdelmatrix
+ \matrix{\XMLflush{matrix}}
+ \fi
+ \endgroup
+\stopsetups
+
+\startsetups mmc:matrixrow
+ \begingroup
+ \MMLcreset
+ \left(\matrix{\directsetup{mmc:matrixrow:do}}\right)
+ \endgroup
+\stopsetups
+
+\startsetups mmc:matrixrow:do
+ \begingroup
+ \startsavingXMLelements
+ \XMLflush{matrixrow}
+ \stopsavingXMLelements
+ \collectXMLstackrows\plusone\@col@amp@
+ \edef\ascii{\the\XMLRtoks}
+ \edef\ascii{\ascii}
+ \expandafter\endgroup\ascii\crcr
+\stopsetups
+
+\defineXMLcommand [determinant] {\directsetup{mmc:determinant}}
+\defineXMLcommand [transpose] {\directsetup{mmc:transpose}}
+\defineXMLcommand [selector] {\directsetup{mmc:selector}}
+
+\startsetups mmc:determinant
+ \begingroup
+ \left|
+ \setfalse\MMCdelmatrix
+ \getXMLstackdata\plustwo
+ \right|
+ \endgroup
+\stopsetups
+
+\startsetups mmc:transpose
+% \getXMLstackdata\plustwo^{\MMLrm T}
+ \getXMLstackdata\plustwo^{\mfunction{T}}
+\stopsetups
+
+\startsetups mmc:selector
+ \MMLmathinner{\getXMLstackdata\plustwo}_{\MMLcreset\flushXMLstackwith\plusthree{\MMLseparator,}}
+\stopsetups
+
+\defineXMLcommand [vectorproduct] {\getXMLstackdata\plustwo\getXMLentity{vectorproduct}\getXMLstackdata\plusthree}
+\defineXMLcommand [scalarproduct] {\getXMLstackdata\plustwo\getXMLentity{scalarproduct}\getXMLstackdata\plusthree}
+\defineXMLcommand [outerproduct] {\getXMLstackdata\plustwo\getXMLentity {outerproduct}\getXMLstackdata\plusthree}
+
+% semantic mapping elements
+
+\defineXMLnested
+ [semantics]
+ {\directsetup{mmc:semantics:start}}
+ {\directsetup{mmc:semantics:stop}}
+
+\startsetups mmc:semantics:start
+ \begingroup
+ \startsavingXMLelements
+\stopsetups
+
+\startsetups mmc:semantics:stop
+ \stopsavingXMLelements
+ \XMLdoifonstackelse {annotation} {
+ \flushXMLnamedstackwith\plusone{annotation}\empty
+ } {
+ \flushXMLnamedstackwith\plusone{apply}\empty
+ }
+ \endgroup
+\stopsetups
+
+\defineXMLenvironmentsave
+ [annotation]
+ [encoding=]
+ {}
+ {\directsetup{mmc:annotation}}
+
+\startsetups mmc:annotation
+ \expanded{\doifinset{\XMLpar{annotation}{encoding}{}}{TeX,tex,TEX,ConTeXt,context,CONTEXT}} {
+ \XMLtexdata{annotation}
+ }
+\stopsetups
+
+\defineXMLignore [annotation-xml]
+
+% misc
+
+\defineXMLcommand [integers] {\getXMLentity{integers}}
+\defineXMLcommand [reals] {\getXMLentity{reals}}
+\defineXMLcommand [rationals] {\getXMLentity{rationals}}
+\defineXMLcommand [naturalnumbers] {\getXMLentity{naturalnumbers}}
+\defineXMLcommand [complexes] {\getXMLentity{complexes}}
+\defineXMLcommand [primes] {\getXMLentity{primes}}
+\defineXMLcommand [exponentiale] {\getXMLentity{ExponentialE}}
+\defineXMLcommand [imaginaryi] {\getXMLentity{ImaginaryI}}
+\defineXMLcommand [notanumber] {\mathop{\mfunction{NaN}}}
+\defineXMLcommand [true] {\mathop{\mfunction{true}}}
+\defineXMLcommand [false] {\mathop{\mfunction{false}}}
+\defineXMLcommand [emptyset] {\mathop{\O}}
+\defineXMLcommand [pi] {\pi}
+\defineXMLcommand [eulergamma] {\gamma}
+\defineXMLcommand [infinity] {\infty}
+
+% gonio functions
+
+\defineXMLcommand[sin] {\directsetup{mmc:function}} \defineXMLcommand[arcsin] {\directsetup{mmc:function}}
+\defineXMLcommand[sinh]{\directsetup{mmc:function}} \defineXMLcommand[arcsinh]{\directsetup{mmc:function}}
+\defineXMLcommand[cos] {\directsetup{mmc:function}} \defineXMLcommand[arccos] {\directsetup{mmc:function}}
+\defineXMLcommand[cosh]{\directsetup{mmc:function}} \defineXMLcommand[arccosh]{\directsetup{mmc:function}}
+\defineXMLcommand[tan] {\directsetup{mmc:function}} \defineXMLcommand[arctan] {\directsetup{mmc:function}}
+\defineXMLcommand[tanh]{\directsetup{mmc:function}} \defineXMLcommand[arctanh]{\directsetup{mmc:function}}
+\defineXMLcommand[cot] {\directsetup{mmc:function}} \defineXMLcommand[arccot] {\directsetup{mmc:function}}
+\defineXMLcommand[coth]{\directsetup{mmc:function}} \defineXMLcommand[arccoth]{\directsetup{mmc:function}}
+\defineXMLcommand[csc] {\directsetup{mmc:function}} \defineXMLcommand[arccsc] {\directsetup{mmc:function}}
+\defineXMLcommand[csch]{\directsetup{mmc:function}} \defineXMLcommand[arccsch]{\directsetup{mmc:function}}
+\defineXMLcommand[sec] {\directsetup{mmc:function}} \defineXMLcommand[arcsec] {\directsetup{mmc:function}}
+\defineXMLcommand[sech]{\directsetup{mmc:function}} \defineXMLcommand[arcsech]{\directsetup{mmc:function}}
+
+\setupMMLappearance[function][\c!reduction=\v!yes]
+
+\startsetups mmc:function
+ \getXMLentity\currentXMLelement
+ \ifx\MMLpowerelement\empty\else
+ ^{\MMLcreset\MMLpowerelement\empty}
+ \getXMLentity{NegThinSpace}
+ \global\let\MMLpowerelement\empty
+ \fi
+ \doif {\getXMLstackname\plusone} {\currentXMLelement} {
+ % rather fuzzy test; looks like an apply case
+ \directsetup{mmc:function:argument}
+ }
+\stopsetups
+
+\startsetups mmc:function:argument
+ \doifelse\@@MMLfunctionreduction\v!yes {
+ % \doifelse {\getXMLstackname\plustwo} {apply} {
+ % \doifelseMMCfunctioninapply \plustwo \MMLcfunctionlist \donefalse \donetrue
+ %
+ % best is to grab the apply (independent of order), (*1*), so:
+ %
+ \XMLdoifonstackelse {apply} {
+ \doifelseMMCfunctioninapply \XMLstackposition {\MMLcfunctionlist,divide} \donefalse \donetrue
+ } {
+ \donefalse
+ }
+ } {
+ \donetrue
+ }
+ % beware, we still flush from 2 up
+ \ifdone
+ \left(\MMLcreset\flushXMLstackfrom\plustwo\right)
+ \else
+ \MMLcreset\flushXMLstackfrom\plustwo
+ \fi
+\stopsetups
+
+% presentation mml
+
+\def\resetMMLseparator
+ {\newcounter\MMLxxcounter
+ \let\lastMMLseparator\empty}
+
+\def\grabMMLseparator#1%
+ {\increment\MMLxxcounter
+ \newcounter\MMLyycounter
+ \expanded{\dograbMMLseparator#1\noexpand\relax}}
+
+\def\dograbMMLseparator
+ {\increment\MMLyycounter
+ \doifnextcharelse\relax
+ {\lastMMLseparator\gobbleoneargument}
+ {\doifnextcharelse\xmlrent\grabMMLseparatora\grabMMLseparatorb}}
+
+\def\grabMMLseparatora#1\xmlrent#2%
+ {\ifnum\MMLxxcounter=\MMLyycounter\space
+ \def\lastMMLseparator{\xmlrent{#2}}%
+ \fi
+ \dograbMMLseparator}
+
+\def\grabMMLseparatorb#1%
+ {\ifnum\MMLxxcounter=\MMLyycounter\space
+ \doifXMLentityelse{#1}
+ {\def\lastMMLseparator{\xmlrent{#1}}}
+ {\def\lastMMLseparator{#1}}%
+ \fi
+ \dograbMMLseparator}
+
+%
+
+\defineXMLargument [mi] \MMLpMI
+\defineXMLargument [mn] \MMLpMN
+\defineXMLargument [mo] \MMLpMO
+
+\def\MMLpMI#1%
+ {\begingroup
+ \setMMLpmathstyle{mstyle}%
+ #1%
+ \endgroup}
+
+% \def\MMLpMN#1%
+% {\begingroup
+% \MMLrm
+% \setMMLpmathstyle{mstyle}%
+% #1%
+% \endgroup}
+
+\def\MMLpMN#1%
+ {\mfunction{\setMMLpmathstyle{mstyle}#1}}
+
+\def\MMLpMO#1% yes or no
+ {\flattenXMLcontent{#1}%
+ \doifXMLentityelse\flattenedXMLcontent
+ {\getXMLentity\flattenedXMLcontent}
+ {\ConvertConstantAfter\doifinstringelse{\xmlrent}{#1} % TODO ! ! ! ! ! ! ! !
+ {#1}
+ {\hbox
+ {\setMMLpmathstyle{mstyle}%
+ \ignorespaces#1\unskip}}}}
+
+% we need to get rid of spaces: <mo> &RightArrow; </mo>
+
+\def\MMLpMO#1% yes or no
+ {\flattenXMLcontent{#1}%
+ \doifXMLentityelse\flattenedXMLcontent
+ {\getXMLentity\flattenedXMLcontent}
+ {\ignorespaces#1\removeunwantedspaces}}
+
+\def\doMMLleft #1{\pushmacro\left \let\left \empty\normalleft #1\popmacro\left}
+\def\doMMLright#1{\pushmacro\right\let\right\empty\normalright#1\popmacro\right}
+
+\let\MMLpopen \empty
+\let\MMLpclose\empty
+
+\defineXMLnested [mfenced] [open=(,close=),separators=]
+ {\directsetup{mmp:mfenced:start}}
+ {\directsetup{mmp:mfenced:stop}}
+
+\startsetups mmp:mfenced:start
+ \begingroup
+ \startsavingXMLelements
+\stopsetups
+
+\startsetups mmp:mfenced:stop
+ \stopsavingXMLelements
+ \edef\MMLpopen {\XMLpar{mfenced}{open} {}}
+ \edef\MMLpclose{\XMLpar{mfenced}{close}{}}
+ \ifx\MMLpopen \space\let\MMLpopen \empty\fi
+ \ifx\MMLpclose\space\let\MMLpclose\empty\fi
+ \ifx\MMLpopen\empty
+ \ifx\MMLpclose\empty
+ \else
+ \doMMLleft.
+ \fi
+ \else
+ \doMMLleft\MMLpopen
+ \fi
+ \pushmacro\MMLpopen
+ \pushmacro\MMLpclose
+ \doifelsenothing{\XMLpar{mfenced}{separators}{}} {
+ \flushXMLstackfrom\plusone
+ } {
+ \resetMMLseparator
+ \flushXMLstackwith\plusone {
+ \begingroup
+ \let\myspecialnormalvert\myspecialstretchvert
+ \grabMMLseparator{\XMLpar{mfenced}{separators}{}}
+ \endgroup
+ }
+ }
+ \popmacro\MMLpclose
+ \popmacro\MMLpopen
+ \ifx\MMLpclose\empty
+ \ifx\MMLpopen\empty
+ \else
+ \doMMLright.
+ \fi
+ \else
+ \doMMLright\MMLpclose
+ \fi
+ \endgroup
+\stopsetups
+
+% \startbuffer
+% <math><mfenced separators="" open="(" close=")"><mi>x</mi></mfenced></math>
+% <math><mfenced separators="" open="" close=")"><mi>x</mi></mfenced></math>
+% <math><mfenced separators="" open="(" close="" ><mi>x</mi></mfenced></math>
+% <math><mfenced separators="" open="" close="" ><mi>x</mi></mfenced></math>
+% <math><mfenced separators="" open="" close=" "><mi>x</mi></mfenced></math>
+% \stopbuffer
+%
+% \processXMLbuffer
+
+\defineXMLnestedenvironmentsave [menclose] [notation=]
+ {\directsetup{mmp:menclose:start}}
+ {\directsetup{mmp:menclose:stop}}
+
+\startsetups mmp:menclose:start
+ \begingroup
+\stopsetups
+
+\startsetups mmp:menclose:stop
+ \doifelse{\XMLpar{menclose}{notation}{}}{longdiv} {
+ \overline{)\XMLflush{menclose}}
+ } {
+ \XMLflush{menclose}
+ }
+ \endgroup
+\stopsetups
+
+\defineXMLnested [mfrac] [linethickness=]
+ {\directsetup{mmp:mfrac:start}}
+ {\directsetup{mmp:mfrac:stop}}
+
+\startsetups mmp:mfrac:start
+ \begingroup
+ \startsavingXMLelements
+\stopsetups
+
+\startsetups mmp:mfrac:stop
+ \stopsavingXMLelements
+ \doifXMLparelse{mfrac}{linethickness} {
+ \edef\theXMLpar{\XMLpar{mfrac}{linethickness}{1}}
+ \processaction
+ [\theXMLpar]
+ [ thin=>\scratchdimen=.2pt,
+ medium=>\scratchdimen=.4pt,
+ thick=>\scratchdimen=.8pt,
+ unknown=>\setdimensionwithunit\scratchdimen{\theXMLpar}{}]
+ {{\getXMLstackdata\plusone}\above\scratchdimen{\getXMLstackdata\plustwo}}
+ } {
+ \frac{\getXMLstackdata\plusone}{\getXMLstackdata\plustwo}
+ }
+ \endgroup
+\stopsetups
+
+\defineXMLargument
+ [ms]
+ [lquote=\xmlrent{quot},
+ rquote=\xmlrent{quot},
+ fontweight=,
+ fontstyle=,
+ mathstyle=,
+ mathvariant=,
+ background=,
+ color=]
+ {\MMLpSTRING}
+
+\def\MMLpSTRING#1%
+ {\hbox
+ {\tf % else encoding problems
+ \MMLpTEXT{\XMLpar{ms}{lquote}{}%
+ \doMMPpbackground{ms}{\doMMPpcolor{ms}{\setMMLptextstyle{ms}\ignorespaces#1\removeunwantedspaces}}%
+ \XMLpar{ms}{rquote}{}}}}
+
+\defineXMLenvironment
+ [mstyle]
+ [fontweight=,
+ fontstyle=,
+ mathstyle=,
+ mathvariant=,
+ background=,
+ color=]
+ {\begingroup}
+ {\endgroup}
+
+\defineXMLargument [mtext] [CPA] \MMLpTEXT
+\defineXMLargument [merror] [CPA] \MMLpERROR
+\defineXMLargument [mphantom] [CPA] \MMLpPHANTOM
+\defineXMLargument [mpadded] [CPA] \MMLpPADDED
+
+\mapXMLvalue{mmp}{normal} {\tf} \mapXMLvalue{mmp}{double-stuck} {\bf}
+\mapXMLvalue{mmp}{bolditalic} {\bi} \mapXMLvalue{mmp}{bold-italic} {\bi}
+\mapXMLvalue{mmp}{boldslanted}{\bs} \mapXMLvalue{mmp}{bold-slanted} {\bs}
+\mapXMLvalue{mmp}{boldnormal} {\bf} \mapXMLvalue{mmp}{bold} {\bf}
+\mapXMLvalue{mmp}{slanted} {\sl} \mapXMLvalue{mmp}{normalslanted}{\sl}
+\mapXMLvalue{mmp}{italic} {\it} \mapXMLvalue{mmp}{normalitalic} {\it}
+\mapXMLvalue{mmp}{fraktur} {\bf} \mapXMLvalue{mmp}{bold-fraktur} {\bf}
+\mapXMLvalue{mmp}{script} {\tf} \mapXMLvalue{mmp}{bold-script} {\bf}
+
+% and all kind of other crappy names
+
+\def\setMMLptextstyle#1%
+ {\XMLval{mmp}{\XMLpar{#1}{fontweight}{}\XMLpar{#1}{fontstyle}{}}{}}
+
+\def\setMMLpmathstyle#1%
+ {\XMLval{mmp}{\XMLpar{#1}{mathvariant}{}}{}}
+
+\def\doMMPpcolor#1#2%
+ {\doifXMLparelse{#1}{color}{\color[\XMLpar{#1}{color}{}]{#2}}{#2}}
+
+\def\doMMPpbackground#1#2%
+ {\doifXMLparelse{#1}{background}
+ {\inframed
+ [\c!frame=\v!off,
+ \c!background=\v!color,
+ \c!backgroundcolor=\XMLpar{#1}{background}{}]
+ {#2}}
+ {#2}}
+
+\def\MMLpTEXT#1%
+ {\hbox
+ {\tf % else encoding problems
+ \doMMPpbackground{ms}{\doMMPpcolor{ms}{\setMMLptextstyle{ms}\ignorespaces#1\removeunwantedspaces}}}}
+
+\def\MMLpERROR#1%
+ {\hbox{$\displaystyle#1$}}
+
+\def\MMLpPHANTOM#1%
+ {\phantom{\ignorespaces{}#1\unskip}} % watch spacing {} hack
+
+\def\MMLpPADDED#1%
+ {#1}
+
+% mrow
+
+\defineXMLenvironment [mrow] {\resetMMLbounds} {\finishMMLbounds}
+
+% \def\MMLleft #1{\increment\MMLboundslevel\left #1}
+% \def\MMLright#1{\right#1\decrement\MMLboundslevel}
+
+% \def\resetMMLbounds
+% {\let\MMLboundslevel\!!plusone\left.}
+
+% \def\finishMMLbounds
+% {\dorecurse\MMLboundslevel{\right.}}
+
+\def\resetMMLbounds
+ {\pushmacro\MMLboundslevel
+ \newcounter\MMLboundslevel}
+
+\def\MMLleft #1%
+ {\increment\MMLboundslevel
+ \normalleft#1}
+
+\def\MMLright#1%
+ {\ifnum\MMLboundslevel=0 \normalleft.\!\fi
+ \normalright#1%
+ \decrement\MMLboundslevel}
+
+\def\finishMMLbounds
+ {\ifnum\MMLboundslevel>0
+ \normalright.\!%
+ \decrement\MMLboundslevel
+ \expandafter\finishMMLbounds
+ \else
+ \popmacro\MMLboundslevel
+ \fi}
+
+\defineXMLnested [msqrt] {\directsetup{mmp:msqrt:start}} {\directsetup{mmp:msqrt:stop}}
+\defineXMLnested [mroot] {\directsetup{mmp:mroot:start}} {\directsetup{mmp:mroot:stop}}
+
+\startsetups mmp:msqrt:start
+ \begingroup
+ \startsavingXMLelements
+\stopsetups
+
+\startsetups mmp:msqrt:stop
+ \stopsavingXMLelements
+ \sqrt{\flushXMLstackfrom\plusone}
+ \endgroup
+\stopsetups
+
+\startsetups mmp:mroot:start
+ \begingroup
+ \startsavingXMLelements
+\stopsetups
+
+\startsetups mmp:mroot:stop
+ \stopsavingXMLelements
+ \root{\getXMLstackdata\plustwo}\of{\getXMLstackdata\plusone}
+ \endgroup
+\stopsetups
+
+\setupMMLappearance[scripts][\c!alternative=\v!a]
+
+\defineXMLnested [msub] {\directsetup{mmp:msub:start}} {\directsetup{mmp:msub:stop}}
+\defineXMLnested [msup] {\directsetup{mmp:msup:start}} {\directsetup{mmp:msup:stop}}
+\defineXMLnested [msubsup] {\directsetup{mmp:msbp:start}} {\directsetup{mmp:msbp:stop}}
+
+\startsetups mmp:msub:start
+ \begingroup
+ \startsavingXMLelements
+\stopsetups
+
+\startsetups mmp:msub:stop
+ \stopsavingXMLelements
+ \doifelse\@@MMLscriptsalternative\v!a {
+ {\getXMLstackdata\plusone}_{\getXMLstackdata\plustwo}
+ } {
+ \getXMLstackdata\plusone_{\getXMLstackdata\plustwo}
+ }
+ \endgroup
+\stopsetups
+
+\startsetups mmp:msup:start
+ \begingroup
+ \startsavingXMLelements
+\stopsetups
+
+\startsetups mmp:msup:stop
+ \stopsavingXMLelements
+ \doifelse\@@MMLscriptsalternative\v!a {
+ {\getXMLstackdata\plusone}^{\getXMLstackdata\plustwo}
+ } {
+ \getXMLstackdata\plusone^{\getXMLstackdata\plustwo}
+ }
+ \endgroup
+\stopsetups
+
+\startsetups mmp:msbp:start
+ \begingroup
+ \startsavingXMLelements
+\stopsetups
+
+\startsetups mmp:msbp:stop
+ \stopsavingXMLelements
+ \getXMLstackdata\plusone_{\getXMLstackdata\plustwo}^{\getXMLstackdata\plusthree}
+ \endgroup
+\stopsetups
+
+\defineXMLnested [mover] {\directsetup{mmp:mover:start}} {\directsetup{mmp:mover:stop}}
+\defineXMLnested [munder] {\directsetup{mmp:munder:start}} {\directsetup{mmp:munder:stop}}
+\defineXMLnested [munderover] {\directsetup{mmp:munderover:start}} {\directsetup{mmp:munderover:stop}}
+
+\startsetups mmp:mover:start
+ \begingroup
+ \startsavingXMLelements
+\stopsetups
+
+\startsetups mmp:mover:stop
+ \stopsavingXMLelements
+ \mathop{\vbox{\mathsurround\zeropoint\ialign{\hss##\hss\crcr\noalign{\kern3\points}%
+ \disabledelimiter\doMMLfiller{\getXMLstackdata\plustwo}
+ \crcr\noalign{\kern3\points\nointerlineskip}%
+ \disabledelimiter\doMMLfiller{\getXMLstackdata\plusone}
+ \crcr}}}
+ \limits
+ \endgroup
+\stopsetups
+
+\startsetups mmp:munder:start
+ \begingroup
+ \startsavingXMLelements
+\stopsetups
+
+\startsetups mmp:munder:stop
+ \stopsavingXMLelements
+ \mathop{\vtop{\mathsurround\zeropoint\ialign{\hss##\hss\crcr
+ \disabledelimiter\doMMLfiller{\getXMLstackdata\plusone}
+ \crcr\noalign{\kern3\points\nointerlineskip}%
+ \disabledelimiter\doMMLfiller{\getXMLstackdata\plustwo}
+ \crcr\noalign{\kern3\points}}}}
+ \limits
+ \endgroup
+\stopsetups
+
+\startsetups mmp:munderover:start
+ \begingroup
+ \startsavingXMLelements
+\stopsetups
+
+\startsetups mmp:munderover:stop
+ \stopsavingXMLelements
+ \getXMLstackdata\plusone
+ _{\disablefiller\disabledelimiter\getXMLstackdata\plustwo}
+ ^{\disablefiller\disabledelimiter\getXMLstackdata\plusthree}
+ \endgroup
+\stopsetups
+
+\def\doMMLfiller#1% bugged
+ {\pushmacro\doMMLfiller
+ \let\doMMLfiller\gobbleoneargument
+ \gdef\dodoMMLfiller{\disablefiller\mathematics{#1}}%
+ \hbox
+ {\def\normalorfiller##1##2%
+ {\gdef\dodoMMLfiller{\enablefiller#1}%
+ \let\normalorfiller\gobbletwoarguments}%
+ $#1$}%
+ \popmacro\doMMLfiller
+ \dodoMMLfiller}
+
+% tables
+
+% obsolete: \setupMMLappearance[mtable][\c!alternative=\v!a]
+
+\mapXMLvalue {mmp:mtable} {align:left} {right}
+\mapXMLvalue {mmp:mtable} {align:right} {left}
+\mapXMLvalue {mmp:mtable} {align:center} {middle}
+
+\mapXMLvalue {mmp:mtable} {frame:none} {off}
+\mapXMLvalue {mmp:mtable} {frame:solid} {on}
+\mapXMLvalue {mmp:mtable} {frame:on} {on}
+
+\defineXMLnested
+ [mtable]
+ [columnalign=,
+ columnspacing=.25ex,
+ rowspacing=.25ex,
+ frame=,
+ color=,
+ background=]
+ {\directsetup{mmp:mtable:start}}
+ {\directsetup{mmp:mtable:stop}}
+
+\defineXMLnestedargument
+ [mtr]
+ {\MMPmtableHANDLEtr}
+
+\defineXMLnestedargument
+ [mlabeledtr]
+ {\MMPmtableHANDLEtr}
+
+\defineXMLnestedargument
+ [mtd]
+ [columnalign=,
+ columnspacing=.25ex,
+ rowspacing=.25ex,
+ frame=,
+ color=,
+ background=]
+ {\MMPmtableHANDLEtd}
+
+\startsetups mmp:mtable:start
+ \vcenter \bgroup
+ \MMLpTABLEsplitter{background} \c!backgroundcolor
+ \MMLpTABLEsplitter{color} \c!color
+ \MMLpTABLEmapper {frame} \c!frame
+ \MMLpTABLEmapper {columnalign}\c!align
+ \setMMLpunit{\XMLpar{mtable}{rowspacing}\empty}{.25ex}
+ \let\MMLpTABLEoffset\MMLpunit
+ \bTABLE[\c!frame=\v!off,\c!background=\v!color,\c!offset=\MMLpTABLEoffset]
+\stopsetups
+
+\startsetups mmp:mtable:stop
+ \eTABLE
+ \egroup
+\stopsetups
+
+\long\def\MMPmtableHANDLEtr#1{%
+ \bTR\ignorespaces#1\removeunwantedspaces\eTR
+}
+
+\long\def\MMPmtableHANDLEtd#1{%
+ \let\theMMLpTABLEmap\empty
+ \MMLpTABLEmap{background} \c!backgroundcolor
+ \MMLpTABLEmap{color} \c!color
+ \MMLpTABLEmap{frame} \c!frame
+ \MMLpTABLEmap{columnalign}\c!align
+ \expanded{\bTD[\theMMLpTABLEmap]}%
+ $\ignorespaces#1\removeunwantedspaces$\eTD
+}
+
+\def\MMLpTABLEmapper#1#2%
+ {\doifXMLparelse{mtable}{#1}
+ {\newcounter\MMLcounter
+ \def\docommand##1%
+ {\increment\MMLcounter
+ \expanded{\setupTABLE[column][\MMLcounter][#2=\XMLval{mmp:mtable}{#2:##1}\empty]}}%
+ \expanded{\processseparatedlist[\XMLpar{mtable}{#1}\empty]}[ ]\docommand}
+ {}}
+
+\def\MMLpTABLEsplitter#1#2%
+ {\doifXMLparelse{mtable}{#1}
+ {\newcounter\MMLcounter
+ \def\docommand##1%
+ {\increment\MMLcounter
+ \expanded{\setupTABLE[column][\MMLcounter][#2=##1]}}%
+ \expanded{\processseparatedlist[\XMLpar{mtable}{#1}\empty]}[ ]\docommand}
+ {}}
+
+\def\MMLpTABLEmap#1#2%
+ {\doifXMLparelse{mtd}{#1}
+ {\edef\theMMLpTABLEmap{#2=\XMLval{mmp:mtable}{#2:\XMLpar{mtd}{#1}\empty}\empty,\theMMLpTABLEmap}}
+ {}}
+
+\defineXMLsingular [mspace] [width=.5em] {\directsetup{mmp:mspace}}
+
+\startsetups mmp:mspace
+ \setMMLpunit{\XMLpar{mspace}{width}{}}{.5em}
+ \hskip\MMLpunit\relax
+\stopsetups
+
+\def\setMMLpunit#1#2% i've forgotten what this means
+ {\setbox\scratchbox=\hbox
+ {\edef\ascii{#1}%
+ \@EA\aftersplitstring\ascii\at.\to\ascii
+ \scratchcounter=\ifx\ascii\empty#1\else\ascii\fi
+ \unskip\unskip}%
+ \ifdim\wd\scratchbox=\zeropoint
+ \edef\MMLpunit{#1em}%
+ \else
+ \edefconvertedargument\ascii{#1}%
+ \convertasciiafter\doifinstringelse{em}{\ascii}{\edef\MMLpunit{#1}}{%
+ \convertasciiafter\doifinstringelse{ex}{\ascii}{\edef\MMLpunit{#1}}{%
+ \convertasciiafter\doifinstringelse{pt}{\ascii}{\edef\MMLpunit{#1}}{%
+ \edef\MMLpunit{#2}}}}%
+ \fi}
+
+% end of tables
+
+\def\setMMLpunit#1#2%
+ {\setbox\scratchbox=\hbox
+ {\edef\ascii{#1}%
+ \@EA\aftersplitstring\ascii\at.\to\ascii
+ \scratchcounter=\ifx\ascii\empty#1\else\ascii\fi
+ \unskip\unskip}%
+ \ifdim\wd\scratchbox=\zeropoint
+ \edef\MMLpunit{#1em}%
+ \else
+ \edefconvertedargument\ascii{#1}%
+ \convertasciiafter\doifinstringelse{em}{\ascii}{\edef\MMLpunit{#1}}{%
+ \convertasciiafter\doifinstringelse{ex}{\ascii}{\edef\MMLpunit{#1}}{%
+ \convertasciiafter\doifinstringelse{pt}{\ascii}{\edef\MMLpunit{#1}}{%
+ \edef\MMLpunit{#2}}}}%
+ \fi}
+
+\defineXMLsingular [mspace] [width=.5em] {\directsetup{mmp:mspace}}
+
+\startsetups mmp:mspace
+ \setMMLpunit{\XMLpar{mspace}{width}{}}{.5em}
+ \hskip\MMLpunit
+\stopsetups
+
+\defineXMLsingular [mglyph] [fontfamily=,index=1,alt=] {\directsetup{mmp:mglyph}}
+
+\startsetups mmp:mglyph
+ \def\MMLpglyph{\XMLpar{mglyph}{fontfamily}{}}%
+ \doifelsenothing{\MMLpglyph} {
+ \hbox{\tttf[fontfamily unspecified]}
+ } {
+ \doifdefinedelse{\MMLpglyph} {
+ \hbox{\getvalue{\MMLpglyph}\char0\XMLpar{mglyph}{index}{1}}
+ } {
+ \doifelsenothing{\XMLpar{mglyph}{alt}{}} {
+ \hbox{\tttf[unknown fontfamily \XMLpar{mglyph}{fontfamily}{}]}
+ } {
+ \hbox{\tttf\XMLpar{mglyph}{alt}{}}
+ }
+ }
+ }
+\stopsetups
+
+\defineXMLsingular [malignmark] {}
+\defineXMLsingular [none] {}
+\defineXMLsingular [mprescripts] {}
+
+\defineXMLnested
+ [mmultiscripts]
+ {\setups{mmp:mmultiscripts:start}}
+ {\setups{mmp:mmultiscripts:stop}}
+
+\startsetups mmp:mmultiscripts:start
+ \begingroup
+ \startsavingXMLelements
+\stopsetups
+
+\startsetups mmp:mmultiscripts:stop
+ \stopsavingXMLelements
+ \donefalse
+ \scratchcounter\zerocount
+ \dorecurse\XMLstacklevel {
+ % watch the extra {}'s
+ \ifdone
+ \ifodd\scratchcounter
+ _{\getXMLstackdata\recurselevel}
+ \else
+ ^{\getXMLstackdata\recurselevel}{}
+ \fi
+ \else
+ \doif{\getXMLstackname\recurselevel}{mprescripts}{\donetrue{}}
+ \fi
+ \ifdone \advance\scratchcounter\plusone \fi
+
+ }
+ \donetrue
+ \scratchcounter\zerocount
+ \dorecurse\XMLstacklevel {
+ \ifdone
+ % watch the extra {}'s
+ \ifcase\scratchcounter
+ \getXMLstackdata\recurselevel
+ \else\ifodd\scratchcounter
+ _{\getXMLstackdata\recurselevel}
+ \else
+ ^{\getXMLstackdata\recurselevel}{}
+ \fi\fi
+ \fi
+ \doif{\getXMLstackname\recurselevel}{mprescripts}{\donefalse}
+ \ifdone \advance\scratchcounter\plusone \fi
+ }
+ \endgroup
+\stopsetups
+
+% experimental patches
+
+\startmoduletestsection
+
+\let\MMLdoL\donothing
+\let\MMLdoR\donothing
+
+\startsetups mmc:apply:start
+ \begingroup
+ \startsavingXMLelements
+\stopsetups
+
+\startsetups mmc:apply:stop
+ \stopsavingXMLelements
+ \MMLmathinner {
+ \expanded{\doifinsetelse{\getXMLstackname\plusone}{\MMLcmainresetlist,\MMLctempresetlist}}
+ \MMLcreset
+ \donothing
+ \ifcase\MMLapplydepth \else
+ \doifXMLparelse{apply}{open} \donothing{\getXMLarguments{apply}{open="("}}% slow
+ \doifXMLparelse{apply}{close}\donothing{\getXMLarguments{apply}{close=")"}}% slow
+ \fi
+ \advance\MMLapplydepth\plusone
+ \begingroup
+ \doifXMLparelse{apply}{open} % now inside the group
+ {\edef\MMLdoL{\noexpand\left \XMLpar{apply}{open} {(}}
+ \edef\MMLdoR{\noexpand\right\XMLpar{apply}{close}{)}}}
+ {\let\MMLdoL\donothing
+ \let\MMLdoR\donothing}
+ \let\MMLctempresetlist\empty
+ \doifelse {\getXMLstackname\plusone} {apply} {
+ % <apply> <apply> ... </apply> <ci> .. </ci> </apply>
+ \doifelseMMCfunctioninapply \plusone {plus,minus} {
+% [a]
+ % yet incomplete and rather untested
+ % <apply> <apply> <minus/> <tan/> <cos/> </apply> <ci>x</ci> </apply>
+ } {
+% [b]
+ \MMLcreset
+ }
+ \MMLdoL
+ \getXMLstackdata\plusone
+ \ifconditional\somepostponedMMLactions
+ \postponedMMLactions
+ \else
+ \left(\MMLcreset\getXMLstackdata\plustwo\right)
+ \fi
+ \MMLdoR
+ } {
+ \doifelse {\getXMLstackname\plusone} {fn} {
+% [c]
+ % \MMLdoL/R are to be taken care of in the next setup
+ \directsetup{mmc:fn:apply}
+ } {
+ \doifelse {\getXMLstackname\plusone} {csymbol} {
+ % \MMLdoL/R are to be taken care of in the next setup
+% [d]
+ \directsetup{mmc:csymbol:apply}
+ } {
+ \doifelse {\getXMLstackname\plusone} {ci} {
+% [e]
+ % \MMLdoL/R are to be taken care of in the next setup
+ \directsetup{mmc:ci:apply}
+ } {
+% [f]
+ \MMLdoL
+ \getXMLstackdata\plusone
+ \MMLdoR
+ }
+ }
+ }
+ }
+ \endgroup
+ \advance\MMLapplydepth\minusone
+ \directsetup{apply:flush}
+ }
+ \endgroup
+\stopsetups
+
+\startsetups mmc:fn:apply
+ \begingroup
+ \startsavingXMLelements
+ \rawXMLstacktext\plusone % still on stack, no check, just fn content
+ \stopsavingXMLelements
+ \doifelse {\getXMLstackname\plusone} {ci} {
+ \flattenXMLcontent{\getXMLstackdata\plusone}
+ \doifsetupselse{mmc:fn:\flattenedXMLcontent} {
+ % \MMLdoL/MMLdoR to be handled in plugin
+ \global\defXMLstackdata\XMLfnoperator\plusone
+ \expanded{\endgroup\noexpand\directsetup{mmc:fn:\flattenedXMLcontent}}
+ } {
+ \endgroup
+ \MMLcreset
+ \MMLdoL
+ \getXMLstackdata\plusone
+ \ifnum\XMLstacklevel>\plusone
+ \getXMLentity{NegThinSpace}
+ \left(\MMLcreset\flushXMLstackwith\plustwo{\MMLseparator,}\right)
+ \fi
+ \MMLdoR
+ }
+ } {
+ \endgroup
+ \MMLcreset
+ \MMLdoL
+ \getXMLstackdata\plusone
+ \MMLdoR
+ }
+\stopsetups
+
+\startsetups mmc:csymbol:apply
+ \begingroup
+ \defineXMLsave[csymbol][definitionURL=,encoding=]
+ \rawXMLstackdata\plusone % was text % still on stack, no check, just attr test
+ % \MMLdoL/MMLdoR to be handled in plugin
+ \lowercasestring\XMLpar{csymbol}{definitionURL}{}\to\mmcSymbolURL
+ \doifsetupselse{mmc:csymbol:\mmcSymbolURL} {
+ \expanded{\endgroup\noexpand\directsetup{mmc:csymbol:\mmcSymbolURL}}
+ } {
+ \endgroup
+ %\XMLval{mmc:cs}{\XMLop{encoding}}{\firstofoneargument}% fails when no content
+ \XMLval{mmc:cs}{\XMLop{encoding}}{}
+ }
+\stopsetups
+
+\defineXMLsingular
+ [csymbol]
+ [encoding=text,
+ definitionURL=]
+ {\directsetup{mmc:csymbol:apply:singular}}
+
+\startsetups mmc:csymbol:apply:singular
+ \lowercasestring\XMLpar{csymbol}{definitionURL}{}\to\mmcSymbolURL
+ \directsetup{mmc:csymbol:\mmcSymbolURL}
+\stopsetups
+
+\startsetups mmc:ci:apply
+ \getXMLstackdata\plusone
+ \ifnum\XMLstacklevel>\plusone
+ \left(\MMLcreset\flushXMLstackwith\plustwo{\MMLseparator,}\right)
+ \fi
+\stopsetups
+
+\def\xflushXMLstackwith#1#2#3#4% num bgroup egroup whatever
+ {\dostepwiserecurse{#1}\XMLstacklevel\plusone
+ {#2\relax
+ \ifnum\recurselevel>#1\relax#4\fi
+ \getXMLstackdata\recurselevel
+ #3}}
+
+\def\xflushXMLstackfrom#1#2#3%
+ {\dostepwiserecurse{#1}\XMLstacklevel\plusone
+ {#2\getXMLstackdata\recurselevel#3}}
+
+% <apply><divide/>
+% <apply><minus/>
+% <apply><minus/><ci>b</ci></apply>
+% <apply><minus/><ci>b</ci></apply>
+% <apply><root/> <ci>a</ci></apply>
+% </apply>
+% <apply><minus/>
+% <apply><minus/><ci>b</ci><ci>b</ci></apply>
+% <apply><minus/><ci>b</ci></apply>
+% <apply><root/> <ci>a</ci></apply>
+% </apply>
+% </apply>
+
+\startsetups mmc:minus
+ \doif \@@MMLsignreduction \v!yes {
+ \setMMLcreset{fn,\MMLcfunctionlist}
+ }
+ \ifcase\XMLstacklevel
+ \or
+ % self
+ \or
+ -\getXMLstackdata\plustwo
+ \else
+ \dostepwiserecurse\plustwo\XMLstacklevel\plusone {
+ \begingroup
+ \doifelse {\getXMLstackname\recurselevel} {apply} {
+ \ifnum\recurselevel=\plustwo
+ \begingroup
+ \dodoifelseMMCfunctioninapply \recurselevel {minus} {
+ \ifnum\XMLstacklevel>\plustwo
+ \endgroup
+ \else
+ \endgroup
+ \MMLcreset
+ \fi
+ } {
+ \endgroup
+ }
+ \else
+ \doifelseMMCfunctioninapply \recurselevel {\MMLcfunctionlist,\MMLcconstructlist} {
+ \MMLcreset
+ } {
+ }
+ \fi
+ } {
+ }
+ \getXMLstackdata\recurselevel
+ \ifnum\recurselevel<\XMLstacklevel\relax
+ -
+ \fi
+ \endgroup
+ }
+ \fi
+\stopsetups
+
+\stopmoduletestsection
+
+\stopmodule
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/sort-def.mkiv b/Master/texmf-dist/tex/context/base/x-newmml.mkiv
index 8cc92a02e1b..757dcf38926 100644
--- a/Master/texmf-dist/tex/context/base/sort-def.mkiv
+++ b/Master/texmf-dist/tex/context/base/x-newmml.mkiv
@@ -1,16 +1,16 @@
%D \module
-%D [ file=sort-def,
-%D version=2005.08.08,
-%D title=\CONTEXT\ Sort Macros,
-%D subtitle=Defaults,
+%D [ file=x-newmml,
+%D version=2008.05.28,
+%D title=\CONTEXT\ XML Modules,
+%D subtitle=MathML Renderer,
%D author=Hans Hagen,
%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%D copyright={PRAGMA ADE}]
%C
%C This module is part of the \CONTEXT\ macro||package and is
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-% nothing here
+\input x-mathml.mkiv
\endinput
diff --git a/Master/texmf-dist/tex/context/base/x-newmml.tex b/Master/texmf-dist/tex/context/base/x-newmml.tex
index f4847eeb94d..9eb994021f1 100644
--- a/Master/texmf-dist/tex/context/base/x-newmml.tex
+++ b/Master/texmf-dist/tex/context/base/x-newmml.tex
@@ -1,7 +1,7 @@
%D \module
%D [ file=x-newmml,
%D version=2005.06.10, % 1999.12.20,
-%D title=\CONTEXT\ XML Modules,
+%D title=\CONTEXT\ XML Macros,
%D subtitle=MathML Renderer,
%D author=Hans Hagen,
%D date=\currentdate,
@@ -11,2735 +11,6 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-%D Remark: from now on this is a module and no longer an xtag
-%D filter. In due time it will replace the older renderer (which
-%D we will keep around for sentimental reasons). This variant has
-%D no namespace support yet, but eventually we will use a \MKIV\
-%D version.
+\loadmarkfile{x-newmml}
-\ifx\inlinemathematics\undefined
- \def\inlinemathematics {\dontleavehmode\mathematics} % already in kernel
- \long\def\inlinemath #1{\dontleavehmode\relax\ifmmode#1\else $#1$\fi}
-\fi
-
-% \defineXMLentity[x000AF]{\normalorfiller{x}\hrulefill}
-% CHECK FOR: \xmlrent
-% \enablemathpunctuation
-
-%D Then we start defining the rendering macros:
-
-\writestatus{loading}{Context XML Macros (MathML Renderer)}
-
-\startmodule [mathml]
-
-%D First we load the entities:
-
-\usemodule[newmme]
-
-% \setupmodule[a=c]
-% \setupmodule[a=c]
-
-\unprotect
-
-\def\MMLrm{\mr}
-
-\def\MMLseparator#1{{#1}} % nils space after separator
-
-%D First we define some general formula elements.
-
-\defineXMLenvironment [formula] [label=,sublabel=]
- {\dostartXMLformula\placeformula}
- {\dostopXMLformula}
-
-\defineXMLenvironment [subformula] [label=,sublabel=]
- {\dostartXMLformula\placesubformula}
- {\dostopXMLformula}
-
-\def\dostartXMLformula#1%
- {\doifelsenothingXMLop{label}
- {\startformula}
- {\expanded{#1[\XMLop{label}]{\XMLop{sublabel}}}\startformula}}
-
-\def\dostopXMLformula
- {\stopformula}
-
-%D Since I only had the draft of MathML 2 as example of
-%D rendering, there are probably a lot of omissions and
-%D misinterpretations. At least I learned some bits and
-%D pieces of math rendering.
-%D
-%D The main complications were not so much the math, but to
-%D find the most efficient way to handle elements without
-%D spacing beging messed up. The first implementation was
-%D aimed at getting reasonable output, this second
-%D implementation is already better in terms of handling
-%D nesting, and I will definitely need a third one that has
-%D more efficient and less ugly code.
-%D
-%D The \TEX\ part is not that complicated and once the
-%D preprocessor was okay, the rest way just a lot of keying
-%D and testing. It all comes down to gobbling, redefining,
-%D and not so much to parsing.
-%D
-%D The second implementation expanded the whole math sequence
-%D into an internal \TEX\ representation. This is a rather clean
-%D and fast process. Filtering and testing takes place by
-%D redefining the internal representation macros.
-%D
-%D The third implementation may look a bit more messy in some
-%D respects. This is because in \TEX\ it's not that trivial to
-%D implement a tree handler. We use a stack for the \type {apply}
-%D element and other sequential content. Occasionally we need to
-%D peek into child elements which involves messy code. This
-%D implementation is closer to the normal \XML\ handling in
-%D \CONTEXT.
-
-%D We start with the parent elements and the option handler.
-
-\defineXMLdirective [mathml] \setupMMLappearance
-
-\defineXMLargument [math] \automathematics
-\defineXMLargument [imath] \inlinemathematics
-\defineXMLargument [dmath] \displaymathematics
-\defineXMLargument [m] \inlinemathematics
-
-%D In the styles, options can be set with:
-
-\def\setupMMLappearance[#1]{\dodoubleargument\getparameters[@@MML#1]}
-
-\def\startusingMMLarguments % optional maken
- {\begingroup
- %\expandXMLta % expand entities first
- \getXMLta}
-
-\def\stopusingMMLarguments % optional maken
- {\endgroup}
-
-\def\MMLargumentprefix{@@MML\currentXMLelement}
-
-%D We will apply inner math to all bits and pieces made up by an
-%D \type {apply}.
-
-\def\MMLmathinner
- {\ifinner \expandafter \firstofoneargument \else \expandafter \mathinner \fi}
-
-%D A few math related macros:
-
-\let\MMLctempresetlist\empty \def\setMMLcreset{\edef\MMLctempresetlist}
-
-\newcount\MMLapplydepth \def\MMLcreset{\MMLapplydepth\zerocount}
-
-% Stack handler
-
-\startXMLmapping[xmlstack:test]
-
- \defineXMLnested
- [apply]
- {\startsavingXMLelements}
- {\stopsavingXMLelements}
-
-\stopXMLmapping
-
-%D Auxiliary MathML macros: (to be generalized)
-
-\def\doifelseMMCfunction
- {\begingroup
- \XMLdoifonstackelse{fn}
- {\donetrue}
- {\XMLdoifonstackelse{apply}
- {\defXMLfirstnamedtext\ascii{apply}%
- \startsavingXMLelements % best use a substack so that we do not need to \edef
- \ascii
- \stopsavingXMLelements}
- {}%
- \XMLdoifonstackelse{fn}
- {\donetrue}
- {\defineXMLsave[ci][type=]%
- \XMLfirstnamed{ci}%
- \doifelse{\XMLpar{ci}{type}{}}{fn}
- {\donetrue}
- {\donefalse}}}%
- \ifdone
- \endgroup\expandafter\firstoftwoarguments
- \else
- \endgroup\expandafter\secondoftwoarguments
- \fi}
-
-\def\doifelseMMCfunctioninapply#1#2% grouped
- {\begingroup
- \startXMLmapping[xmlstack:test]% take fast alternative
- \getXMLstackdata{#1}%
- \expanded{\doifinsetelse{\getXMLstackname\plusone}{#2}}
- {\stopXMLmapping
- \endgroup\firstoftwoarguments }
- {\stopXMLmapping
- \endgroup\secondoftwoarguments}}
-
-\def\dodoifelseMMCfunctioninapply#1#2%
- {\startXMLmapping[xmlstack:test]% take fast alternative
- \getXMLstackdata{#1}%
- \expanded{\doifinsetelse{\getXMLstackname\plusone}{#2}}
- {\stopXMLmapping
- \firstoftwoarguments }
- {\stopXMLmapping
- \secondoftwoarguments}}
-
-%D Special features:
-
-\newtoks \@@postponedMMLactions \setfalse \somepostponedMMLactions
-
-\def\postponeMMLactions#1%
- {\global\settrue\somepostponedMMLactions
- \global\@@postponedMMLactions\expandafter{\the\@@postponedMMLactions#1}}
-
-\def\postponedMMLactions
- {\global\setfalse\somepostponedMMLactions
- \@EA\global\@EA\@@postponedMMLactions\@EA\emptytoks
- \the\@@postponedMMLactions}
-
-%D A couple of lists:
-
-\def\MMLcmainresetlist
- {times,divide,power,%
- lt,gt,eq,leq,geq,%
- in,inverse,%
- fn,%
- floor,ceiling,%
- mean,%
- selector,%
- abs,int,limit,sum,product,%
- outerproduct,innerproduct,scalarproduct}
-
-\def\MMLcfunctionlist
- {sin,arcsin,sinh,arcsinh,%
- cos,arccos,cosh,arccosh,%
- tan,arctan,tanh,arctanh,%
- cot,arccot,coth,arccoth,%
- csc,arccsc,csch,arccsch,%
- sec,arcsec,sech,arcsech,%
- ln,exp,log,%
- abs,int,limit,sum,product,%
- fn} % ?
-
-\def\MMLcconstructlist
- {diff,partialdiff,root} % apply goes wrong on 1/2 * (a_2 + b_3)
-
-% apply
-%
-%D We use inner and grouping (begin/end and no b/e) else we
-%D get problems with 1/2(1+2) and alike (todo: ask taco).
-%D
-%D The problem with apply is that we need to take care of
-%D several situations, like:
-%D
-%D \starttyping
-%D <apply> <.../> ...
-%D <apply> <fn> ...
-%D <apply> <apply> <ci> ...
-%D <apply> <apply> <fn> <ci> ...
-%D \stoptyping
-%D
-%D Because we translated version 2 of this renderer into
-%D version 3 the following definitions may be sub optimal or
-%D more complex than actually needed.
-
-\defineXMLnested % why nested? could be just an environment
- [apply]
- [open=,close=]
- {\setups{mmc:apply:start}}
- {\setups{mmc:apply:stop}}
-
-\startsetups mmc:apply:start
- \begingroup
- \startsavingXMLelements
-\stopsetups
-
-\startsetups mmc:apply:stop
- \stopsavingXMLelements
- \MMLmathinner {
- \expanded{\doifinsetelse{\getXMLstackname\plusone}{\MMLcmainresetlist,\MMLctempresetlist}}
- \MMLcreset
- \donothing
- \ifcase\MMLapplydepth \else
- \doifXMLparelse{apply}{open} \donothing{\getXMLarguments{apply}{open="("}}% slow
- \doifXMLparelse{apply}{close}\donothing{\getXMLarguments{apply}{close=")"}}% slow
- \fi
- \doifXMLparelse{apply}{open}{\left\XMLpar{apply}{open}{}}\donothing
- \advance\MMLapplydepth\plusone
- \begingroup
- \let\MMLctempresetlist\empty
- \doifelse {\getXMLstackname\plusone} {apply} {
- % <apply> <apply> ... </apply> <ci> .. </ci> </apply>
- \doifelseMMCfunctioninapply \plusone {plus,minus} {
- % yet incomplete and rather untested
- % <apply> <apply> <minus/> <tan/> <cos/> </apply> <ci>x</ci> </apply>
- } {
- \MMLcreset
- }
- \getXMLstackdata\plusone
- \ifconditional\somepostponedMMLactions
- \postponedMMLactions
- \else
- \left(\MMLcreset\getXMLstackdata\plustwo\right)
- \fi
- } {
- \doifelse {\getXMLstackname\plusone} {fn} {
- % also postpone
- \directsetup{mmc:fn:apply}
- } {
- \doifelse {\getXMLstackname\plusone} {csymbol} {
- % also postpone
- \directsetup{mmc:csymbol:apply}
- } {
- \doifelse {\getXMLstackname\plusone} {ci} {
- \getXMLstackdata\plusone
- \ifnum\XMLstacklevel>\plusone
- \left(\MMLcreset\flushXMLstackwith\plustwo{\MMLseparator,}\right)
- \fi
- } {
- \getXMLstackdata\plusone
- }
- }
- }
- }
- \endgroup
- \advance\MMLapplydepth\minusone
- \directsetup{apply:flush}
- \doifXMLparelse{apply}{close}{\right\XMLpar{apply}{close}{}}\donothing
- }
- \endgroup
-\stopsetups
-
-\startsetups apply:flush
-\relax
- \ifcase\MMLapplydepth
- \ifconditional\somepostponedMMLactions
- \postponedMMLactions
- \ifx\MMLpowerelement\empty\else
- ^{\MMLcreset\MMLpowerelement\empty}
- \global\let\MMLpowerelement\empty
- \fi
- \fi
- \fi
-\stopsetups
-
-% reln
-
-\defineXMLnestedenvironmentsave [reln]
- {\writestatus{XML}{MathML element "reln" is obsolete}}
- {}
-
-% fn
-
-\startsetups mmc:fn:plusminus
- \ifnum\XMLstacklevel>\plustwo
- \MMLcreset
- \left(\expandafter\flushXMLstackwith\expandafter\plustwo\expandafter{\XMLfnoperator}\right)
- \else
- \getXMLstackdata\plustwo
- \fi
-\stopsetups
-
-\startsetups mmc:fn:minusplus
- \directsetup{mmc:fn:plusminus}
-\stopsetups
-
-\defineXMLnested
- [fn]
- {\directsetup{mmc:fn:start}}
- {\directsetup{mmc:fn:stop}}
-
-\startsetups mmc:fn:apply
- \begingroup
- \startsavingXMLelements
- \rawXMLstacktext\plusone % still on stack, no check, just fn content
- \stopsavingXMLelements
- \doifelse {\getXMLstackname\plusone} {ci} {
- \flattenXMLcontent{\getXMLstackdata\plusone}
- \doifsetupselse{mmc:fn:\flattenedXMLcontent} {
- \global\defXMLstackdata\XMLfnoperator\plusone
- \expanded{\endgroup\noexpand\directsetup{mmc:fn:\flattenedXMLcontent}}
- } {
- \endgroup
- \MMLcreset
- \getXMLstackdata\plusone
- \ifnum\XMLstacklevel>\plusone
- \getXMLentity{NegThinSpace}
- \left(\MMLcreset\flushXMLstackwith\plustwo{\MMLseparator,}\right)
- \fi
- }
- } {
- \endgroup
- \MMLcreset
- \getXMLstackdata\plusone
- }
-\stopsetups
-
-\startsetups mmc:fn:start
- \ifnum\XMLstacklevel>\plustwo
- \def\MMCfnleft {\left(}
- \def\MMCfnright{\right)}
- \else
- \let\MMCfnleft \relax
- \let\MMCfnright\relax
- \fi
- \begingroup
- \startsavingXMLelements
-\stopsetups
-
-\startsetups mmc:fn:stop
- \stopsavingXMLelements
- \doifelse {\getXMLstackname\plusone} {ci} {
- \flattenXMLcontent{\getXMLstackdata\plusone}
- \doifsetupselse{mmc:fn:\flattenedXMLcontent} {
- \global\defXMLstackdata\XMLfnoperator\plusone
- \directsetup{mmc:fn:\flattenedXMLcontent}
- } {
- \MMLcreset
- \getXMLstackdata\plusone
- }
- \endgroup
- } {
- \doifelse {\getXMLstackname\plusone} {apply} {
- \doifelseMMCfunctioninapply \plusone {plus,minus} {
- \left(
- \getXMLstackdata\plusone
- \right)
- } {
- \getXMLstackdata\plusone
- }
- \endgroup
- \ifnum\XMLstacklevel>\plusone
- \left(
- \getXMLstackdata\plustwo
- \right)
- \fi
- } {
- \MMLcreset
- \getXMLentity{NegThinSpace}
- \MMCfnleft
- \ifnum\XMLstacklevel=\plustwo\MMLccomma\fi
- \flushXMLstackwith\plustwo\MMLccomma
- \MMCfnright
- \endgroup
- }
- }
-\stopsetups
-
-% c*
-
-\defineXMLargument [ci] [type=] {\XMLval{mmc:ci}{\XMLop{type}} {\firstofoneargument}}
-\defineXMLargument [cn] [type=,base=] {\XMLval{mmc:cn}{\XMLop{type}} {\firstofoneargument}}
-\defineXMLargument [csymbol] [encoding=text] {\XMLval{mmc:cs}{\XMLop{encoding}}{\firstofoneargument}}
-
-%D The next definition provide a kind of plug-in mechanism (see
-%D the open math extension module).
-
-\defineXMLsingular
- [csymbol]
- [encoding=text,
- definitionURL=]
- {\doifsomething{\XMLop{definitionURL}}{\directsetup{mmc:csymbol:apply}}}
-
-\startsetups mmc:csymbol:apply
- \begingroup
- \startsavingXMLelements
- \rawXMLstacktext\plusone % still on stack, no check, just attr test
- \stopsavingXMLelements
- % http://www.publishers.com/SomeName
- \lowercasestring\XMLpar{csymbol}{definitionURL}{}\to\mmcSymbolURL
- \doifsetupselse{mmc:csymbol:} {\mmcSymbolURL} {
- \expanded{\endgroup\noexpand\directsetup{mmc:csymbol:\mmcSymbolURL}}
- } {
- % SomeName (fallback)
- \splitfilename{\XMLpar{csymbol}{definitionURL}{}}
- \doifsetupselse{mmc:csymbol:\splitoffbase} {
- \expanded{\endgroup\noexpand\directsetup{mmc:csymbol:\splitoffbase}}
- } {
- \endgroup
- \XMLval{mmc:cs}{\XMLop{encoding}}{\firstofoneargument}
- }
- }
-\stopsetups
-
-%D Alternative b will convert periods into comma's:
-%D
-%D \startbuffer
-%D \startXMLdata
-%D <imath><apply><cn>1.23</cn></apply></imath>
-%D <dmath><apply><cn>1.23</cn></apply></dmath>
-%D \stopXMLdata
-%D
-%D \type{\setupMMLappearance[cn] [alternative=b]}
-%D
-%D \startXMLdata
-%D <imath><apply><cn>1.23</cn></apply></imath>
-%D <dmath><apply><cn>1.23</cn></apply></dmath>
-%D \stopXMLdata
-%D \stopbuffer
-%D
-%D \start \typebuffer \getbuffer \stop
-
-\setupMMLappearance[cn] [\c!alternative=\v!a]
-
-\defineXMLargument[cn][type=,base=]{\MMLdocn}
-
-\def\MMLdocn#1%
- {\begingroup
- \doif\@@MMLcnalternative\v!b{\redefinemathcharacter [.][ord][mi]["3B]\relax}%
- \XMLval{mmc:cn}{\XMLop{type}}{\firstofoneargument}{#1}%
- \endgroup}
-
-\defineXMLsingular [sep] {\MMLcsep} \def\MMLcsep{\,}
-
-\setupMMLappearance[polar] [\c!alternative=\v!a] % a|b|c
-\setupMMLappearance[float] [\c!symbol=\v!no] % \v!yes|dot
-\setupMMLappearance[enotation][\c!symbol=\v!no] % \v!yes|dot
-\setupMMLappearance[base] [\c!symbol=\v!numbers] % digits|characters|text|no
-
-\mapXMLvalue {mmc:ci} {set} {\MMLcCIset}
-\mapXMLvalue {mmc:ci} {vector} {\MMLcCIvector}
-\mapXMLvalue {mmc:ci} {matrix} {\MMLcCImatrix}
-\mapXMLvalue {mmc:ci} {function} {\MMLcCIfunction}
-\mapXMLvalue {mmc:ci} {complex-cartesian} {\MMLccartesian}
-\mapXMLvalue {mmc:ci} {complex} {\MMLccartesian}
-\mapXMLvalue {mmc:ci} {complex-polar} {\MMLcpolar}
-\mapXMLvalue {mmc:ci} {polar} {\MMLcpolar}
-\mapXMLvalue {mmc:ci} {fn} {\MMLcCIfunction}
-
-\mapXMLvalue {mmc:cn} {integer} {\MMLcCNinteger}
-\mapXMLvalue {mmc:cn} {logical} {\MMLcCNlogical}
-\mapXMLvalue {mmc:cn} {rational} {\MMLcCNrational}
-\mapXMLvalue {mmc:cn} {complex-cartesian} {\MMLccartesian}
-\mapXMLvalue {mmc:cn} {complex} {\MMLccartesian}
-\mapXMLvalue {mmc:cn} {complex-polar} {\MMLcpolar}
-\mapXMLvalue {mmc:cn} {polar} {\MMLcpolar}
-\mapXMLvalue {mmc:cn} {e-notation} {\MMLcenotation} % new
-\mapXMLvalue {mmc:cn} {float} {\MMLcfloat} % obsolete
-\mapXMLvalue {mmc:cn} {real} {\MMLcfloat}
-
-\mapXMLvalue {mmc:cs} {text} {\MMLcCStext}
-
-\def\MMLcpolar#1%
- {\doifdefinedelse{MMLcdopolar\@@MMLpolaralternative}
- {\getvalue{MMLcdopolar\@@MMLpolaralternative}{#1}}
- {#1}}
-
-\def\MMLcdopolara#1%
- {\def\MMLcsep{\MMLseparator,}\getXMLentity{polar}\left(#1\right)}
-
-\def\MMLcdopolarb#1%
- {\def\MMLcsep##1\empty
- {\getXMLentity{exponentiale}^{##1\mskip2mu\getXMLentity{imaginaryi}}}
- #1\empty}
-
-\def\MMLcdopolarc#1%
- {\def\MMLcsep##1\empty
- {\getXMLentity{exp}\left(##1\mskip2mu\getXMLentity{imaginaryi}\right)}%
- #1\empty}
-
-\def\MMLccartesian#1%
- {\def\MMLcsep{+}#1\getXMLentity{imaginaryi}}
-
-% float will be obsolete, and is replace by e-notation
-
-\def\MMLcfloat#1%
- {\doifelse\@@MMLfloatsymbol\v!no
-% {{\MMLrm#1}}% make sure that e shows up ok
- {\mfunction{#1}}% make sure that e shows up ok
- {% we should ignore \entities !
- \beforesplitstring#1\at e\to\first
- \aftersplitstring #1\at e\to\last
- \ifx\first\empty #1\else
- \ifx\last \empty #1\else
- \first
- \doifelse\@@MMLfloatsymbol{dot}\cdot\times
- 10^{\last}%
- \fi\fi}}
-
-% we now have:
-
-\def\MMLcenotation#1%
- {\doifelse\@@MMLenotationsymbol\v!no
-% {\def\MMLcsep {\unskip{\MMLrm e}\ignorespaces}}
- {\def\MMLcsep {\unskip\mfunction{e}\ignorespaces}}
- {\def\MMLcsep##1\empty{\doifelse\@@MMLenotationsymbol{dot}\cdot\times10^{##1}}}%
- #1\empty}
-
-\def\MMLcCIset#1%
- {{\bbd#1}}
-
-\def\widevec#1%
- {\vbox{\m@th\ialign{##\crcr
- \rightarrowfill\crcr\noalign{\nointerlineskip}%
- $\hfil\displaystyle{#1}\hfil$\crcr}}}
-
-\def\MMLcCIvector#1%
- {\widevec{#1}}
-
-\def\MMLcCImatrix#1%
- {{\bi#1}}
-
-\def\MMLcCIfunction#1%
- {#1\getXMLentity{NegThinSpace}}
-
-\def\MMLcCNinteger#1%
- {\doifXMLparelse{cn}{base}
- {\def\MMLcCNbase{\XMLpar{cn}{base}{}}%
- \doifelse\@@MMLbasesymbol\v!no
- {\MMLcCNbasedata{#1}}
-% {\MMLcCNbasedata{#1}_{\hbox{$\MMLrm\scriptscriptstyle
- {\MMLcCNbasedata{#1}_{\mfunction{%
- \processaction
- [\@@MMLbasesymbol]
- [\v!characters=>\MMLcCNbasestring BODH,
- \v!text=>\MMLcCNbasestring{BIN}{OCT}{DEC}{HEX},
-% \s!unknown=>\MMLcCNbase]$}}}}
- \s!unknown=>\MMLcCNbase]}}}}
- {#1}}
-
-\def\MMLcCNbasedata#1%
-% {\ifnum\MMLcCNbase>10{\MMLrm#1}\else#1\fi}
- {\ifnum\MMLcCNbase>10\mfunction{#1}\else#1\fi}
-
-\def\MMLcCNbasestring#1#2#3#4%
- {\ifnum\MMLcCNbase= 2 #1\else
- \ifnum\MMLcCNbase= 8 #2\else
- \ifnum\MMLcCNbase=10 #3\else
- \ifnum\MMLcCNbase=16 #4\else
- \MMLcCNbase \fi\fi\fi\fi}
-
-\def\MMLcCNlogical#1%
-% {{\MMLrm#1}}
- {\mfunction{#1}}
-
-\bgroup \catcode`\<=\active
-
- % quick and dirty, best track the stack (todo)
-
- \gdef\MMLcCNrational#1%
- {\ConvertConstantAfter\doifinstringelse{sep}{#1}
- {\doMMLcCNrational#1\empty}
- {#1}}
-
- \gdef\doMMLcCNrational#1<sep#2>#3\empty
- {\hbox{$\frac{#1}{#3}$}}
-
-\egroup
-
-\def\MMLcCStext#1%
-% {{\MMLrm#1}}
- {\mfunction{#1}}
-
-% interval
-
-\defineXMLnested [interval]
- [closure=closed]
- {\directsetup{mmc:interval:start}}
- {\directsetup{mmc:interval:stop}}
-
-\startsetups mmc:interval:start
- \begingroup
- \startsavingXMLelements
-\stopsetups
-
-\startsetups mmc:interval:stop
- \stopsavingXMLelements
- \XMLval{mmc:int}{\XMLpar{interval}{closure}{closed}}{error}
- \endgroup
-\stopsetups
-
-\startsetups mmc:interval:fetch
- \defineXMLnested [interval]
- [closure=closed]
- {\directsetup{mmc:interval:fetch:start}}
- {\directsetup{mmc:interval:fetch:stop}}
-\stopsetups
-
-\startsetups mmc:interval:fetch:start
- \begingroup
- \startsavingXMLelements
-\stopsetups
-
-\startsetups mmc:interval:fetch:stop
- \stopsavingXMLelements
- \globallet\MMCintervalfrom\empty
- \globallet\MMCintervalto \empty
- \ifcase\XMLstacklevel
- \or
- \xdef\MMCintervalfrom{\getXMLstackdata\plusone}
- \or
- \xdef\MMCintervalfrom{\getXMLstackdata\plusone}
- \xdef\MMCintervalto {\getXMLstackdata\plustwo}
- \fi
- \endgroup
-\stopsetups
-
-\setupMMLappearance[interval][\c!alternative=\v!a,\c!separator={,}]
-
-\mapXMLvalue {mmc:int} {closed}
- {\left[\getXMLstackdata\plusone\MMLseparator\@@MMLintervalseparator\getXMLstackdata\plustwo\right]}
-
-\mapXMLvalue {mmc:int} {open-closed}
- {\doifelse\@@MMLintervalalternative\v!b
- {\left<\getXMLstackdata\plusone\MMLseparator\@@MMLintervalseparator\getXMLstackdata\plustwo\right]}
- {\left(\getXMLstackdata\plusone\MMLseparator\@@MMLintervalseparator\getXMLstackdata\plustwo\right]}}
-
-\mapXMLvalue {mmc:int} {closed-open}
- {\doifelse\@@MMLintervalalternative\v!b
- {\left[\getXMLstackdata\plusone\MMLseparator\@@MMLintervalseparator\getXMLstackdata\plustwo\right>}
- {\left[\getXMLstackdata\plusone\MMLseparator\@@MMLintervalseparator\getXMLstackdata\plustwo\right)}}
-
-\mapXMLvalue {mmc:int} {open}
- {\doifelse\@@MMLintervalalternative\v!b
- {\left<\getXMLstackdata\plusone\MMLseparator\@@MMLintervalseparator\getXMLstackdata\plustwo\right>}
- {\left(\getXMLstackdata\plusone\MMLseparator\@@MMLintervalseparator\getXMLstackdata\plustwo\right)}}
-
-% inverse
-
-\defineXMLcommand [inverse] {\directsetup{mmc:inverse}}
-
-\startsetups mmc:inverse
- \ifnum\XMLstacklevel>\plustwo
- \getXMLentity{\getXMLstackname\plustwo}^{-1}
- \left[\getXMLstackdata\plusthree\right]
- \else
- \xdef\MMLpowerelement{-1}
- \expanded{\postponeMMLactions{\rawXMLstackdata\plustwo}}
- \eraseXMLdataonstack\plustwo
- \fi
-\stopsetups
-
-% condition
-
-\defineXMLnested
- [condition]
- {\directsetup{mmc:condition:start}}
- {\directsetup{mmc:condition:stop}}
-
-\startsetups mmc:condition:start
-% \XMLdoifonstackelse{bvar} {
-% \XMLfirstnamed{bvar}\mid
-% } { }
- \begingroup
- \startsavingXMLelements
-\stopsetups
-
-\startsetups mmc:condition:stop
- \stopsavingXMLelements
- \flushXMLstackfrom\plusone
- \endgroup
-\stopsetups
-
-% declare
-
-\setupMMLappearance[declare][\c!state=\v!start]
-
-\defineXMLnested
- [declare]
- {\directsetup{mmc:declare:start}}
- {\directsetup{mmc:declare:stop}}
-
-\startsetups mmc:declare:start
- \begingroup
- \startsavingXMLelements
-\stopsetups
-
-\startsetups mmc:declare:stop
- \stopsavingXMLelements
- \doif\@@MMLdeclarestate\v!start {
- \getXMLentity{declare}\getXMLstackdata\plusone
- \ifnum\XMLstacklevel>\plusone
- \getXMLentity{ThickSpace}
- \getXMLentity{as}
- \getXMLentity{ThickSpace}
- \fi
- \getXMLstackdata\plustwo
- }
- \endgroup
-\stopsetups
-
-% lambda
-
-\setupMMLappearance[lambda][\c!alternative=b]
-
-\defineXMLnested
- [lambda]
- {\directsetup{mmc:lambda:start}}
- {\directsetup{mmc:lambda:stop}}
-
-\startsetups mmc:lambda:start
- \begingroup
- \startsavingXMLelements
-\stopsetups
-
-\startsetups mmc:lambda:stop
- \stopsavingXMLelements
- \doifelse\@@MMLlambdaalternative\v!a {
- \getXMLentity{lambda}(\flushXMLstackwith\plusone{\MMLseparator,})
- } {
- \countXMLnamedstack{bvar}
- \ifnum\scratchcounter>\plusone
- \left(\flushXMLnamedstackwith\plusone{bvar}{\MMLseparator,}\right)
- \else
- \XMLfirstnamed{bvar}
- \fi
- \getXMLentity{mapsto}
- \MMLcreset
- \XMLfirstnamed{apply,reln,ci,cn}
- }
- \endgroup
-\stopsetups
-
-\startsetups mmc:lambda:simple
- \defineXMLnested
- [lambda]
- {\directsetup{mmc:lambda:simple:start}}
- {\directsetup{mmc:lambda:simple:stop}}
-\stopsetups
-
-\startsetups mmc:lambda:simple:start
- \begingroup
- \startsavingXMLelements
-\stopsetups
-
-\startsetups mmc:lambda:simple:stop
- \stopsavingXMLelements
- \MMLcreset % new
- \XMLfirstnamed{apply}
- \endgroup
-\stopsetups
-
-% compose
-
-\defineXMLcommand [compose] {\directsetup{mmc:compose}}
-
-\startsetups mmc:compose
- \begingroup
- \MMLcreset
- \let\MMLcCIfunction\firstofoneargument % brrr
- \doifelseMMCfunction {
- \left(\flushXMLstackwith\plustwo\circ\right)
- } {
- \flushXMLstackwith\plustwo\circ
- }
- \endgroup
-\stopsetups
-
-\defineXMLcommand [image] {\directsetup{mmc:image}}
-
-\startsetups mmc:image
- \getXMLentity{image}
- \left(
- \begingroup
- \startlocalsetups [mmc:function]
- \getXMLentity\currentXMLelement
- \stoplocalsetups
- \getXMLstackdata\plustwo
- \endgroup
- \right)
-\stopsetups
-
-\setupMMLappearance[piece][\c!separator=]
-
-\def\setMMLcPIECEseparator
- {\processaction
- [\@@MMLpieceseparator]
- [ \v!yes=>\def\theMMLpieceseparator{,\@col@amp@},
- \v!no=>\let\theMMLpieceseparator\@col@amp@,
- \s!default=>\let\theMMLpieceseparator\@col@amp@,
- \s!unknown=>\def\theMMLpieceseparator{\,\,\hbox{\@@MMLpieceseparator}\,\,}]}
-
-\defineXMLargument[piecewise] {\cases}
-
-\defineXMLnested
- [piece]
- {\directsetup{mmc:piece:start}}
- {\directsetup{mmc:piece:stop}}
-
-\defineXMLenvironmentsave
- [otherwise]
- {}
- {\directsetup{mmc:otherwise}}
-
-\startsetups mmc:piece:start
- \startsavingXMLelements
- \setMMLcPIECEseparator
-\stopsetups
-
-\startsetups mmc:piece:stop
- \stopsavingXMLelements
- \edef\ascii{\getXMLstackdata\plusone}
- \@EA\XMLRtoks\@EA{\ascii\theMMLpieceseparator}
- \edef\ascii{\getXMLstackdata\plustwo}
- \@EA\appendtoks\@EA\mathematics\@EA{\ascii}\to\XMLRtoks
- \the\XMLRtoks\crcr
-\stopsetups
-
-\startsetups mmc:otherwise
- \XMLflush{otherwise}\MMLcPIECEseparator\@col@amp@\mathematics{\getXMLentity{otherwise}}\crcr
-\stopsetups
-
-\defineXMLcommand [quotient] {\directsetup{mmc:quotient}}
-
-\startsetups mmc:quotient
- \lfloor\getXMLstackdata\plustwo/\getXMLstackdata\plusthree\rfloor
-\stopsetups
-
-\defineXMLcommand [factorial] {\getXMLstackdata\plustwo !}
-
-\defineXMLcommand [divide] [\MMLargumentprefix] [] {\directsetup{mmc:divide}} % brr not nested
-
-\setupMMLappearance [divide] [\c!level=\!!maxcard,\c!alternative=\v!a]
-
-\startsetups mmc:divide
- \startusingMMLarguments
- \increment\MMLcDIVIDElevel
- \doifelse \@@MMLdividealternative\v!b {
- \getXMLstackdata\plustwo/\getXMLstackdata\plusthree
- } {
- \ifnum\MMLcDIVIDElevel>\@@MMLdividelevel\space
- \getXMLstackdata\plustwo/\getXMLstackdata\plusthree
- \else
- \MMLcreset
- \frac{\MMLcreset\getXMLstackdata\plustwo}{\MMLcreset\getXMLstackdata\plusthree}%
- \fi
- }
- \decrement\MMLcDIVIDElevel
- \stopusingMMLarguments
-\stopsetups
-
-% min max
-
-\defineXMLcommand [min] {\min\directsetup{mmc:minmax}}
-\defineXMLcommand [max] {\max\directsetup{mmc:minmax}}
-
-\startsetups mmc:minmax
- \doifelse{\getXMLstackdata\plustwo}{bvar} {
- {}_{\getXMLstackdata\plustwo}
- \left\{\flushXMLstackwith\plusthree{\MMLseparator,}\right\}
- } {
- \left\{\flushXMLstackwith\plustwo {\MMLseparator,}\right\}
- }
-\stopsetups
-
-% minus plus
-
-\defineXMLcommand [minus] {\directsetup{mmc:minus}}
-\defineXMLcommand [plus] [\MMLargumentprefix] [] {\directsetup{mmc:plus}}
-
-\setupMMLappearance [plus] [\c!alternative=\v!a] % b = no sign -> 3 1/4
-\setupMMLappearance [sign] [\c!reduction=\v!yes]
-
-\startsetups mmc:minus
- \doif \@@MMLsignreduction \v!yes {
- \setMMLcreset{fn,\MMLcfunctionlist}
- }
- \ifcase\XMLstacklevel
- \or
- % self
- \or
- -\getXMLstackdata\plustwo
- \else
- \flushXMLstackwith\plustwo-
- \fi
-\stopsetups
-
-\startsetups mmc:plus
- \startusingMMLarguments
- \doifelse \@@MMLsignreduction \v!yes {
- \setMMLcreset{fn,plus,minus,\MMLcfunctionlist,\MMLcconstructlist}% was plus/, minus/
- \doifelse{\getXMLstackname\plustwo} {apply} {
- % branch needed, else (a-b) + (c-d) goes wrong
- % reset check in case of (-x) + 37
- \begingroup
- \dodoifelseMMCfunctioninapply \plustwo {minus} {
- \ifnum\XMLstacklevel>\plustwo
- \endgroup
- \else
- \endgroup
- \MMLcreset
- \fi
- } {
- \endgroup
- }
- \doifelse \@@MMLplusalternative \v!b {
- \getXMLstackdata\plustwo \,
- } {
- \flushXMLstackwith\plustwo +
- }
-
- } {
- \flushXMLstackwith\plustwo {
- \doifelse {\getXMLstackname\recurselevel} {apply} {
- \begingroup
- \dodoifelseMMCfunctioninapply \recurselevel {minus} {
- \ifnum\XMLstacklevel>\plustwo +\fi
- } {
- \doifelse \@@MMLplusalternative \v!b {
- \, % maybe 2 1/3
- } {
- +
- }
- }
- \endgroup
- \MMLcreset
- } {
- +
- }
- }
- }
- } {
- \ifcase\XMLstacklevel
- \or
- % self
- \or
- +\getXMLstackdata\plustwo
- \else
- \flushXMLstackwith\plustwo+
- \fi
- }
- \stopusingMMLarguments
-\stopsetups
-
-% power
-
-\defineXMLcommand [power] {\directsetup{mmc:power}}
-
-\setupMMLappearance[power][\c!reduction=\v!yes]
-
-\let\MMLpowerelement\empty
-
-\startsetups mmc:power
- \doifelse {\getXMLstackname\plustwo} {apply} {
- \doifelse\@@MMLpowerreduction\v!yes {
- \doifelseMMCfunctioninapply \plustwo \MMLcfunctionlist {
- \xdef\MMLpowerelement{\getXMLstackdata\plusthree}% postpone
- \MMLcreset\getXMLstackdata\plustwo
- } {
- \left(\MMLcreset\getXMLstackdata\plustwo\right)^{\MMLcreset\getXMLstackdata\plusthree}
- }
- } {
- \left(\MMLcreset\getXMLstackdata\plustwo\right)^{\MMLcreset\getXMLstackdata\plusthree}
- }
- } {
- \getXMLstackdata\plustwo^{\MMLcreset\getXMLstackdata\plusthree}
- }
-\stopsetups
-
-% rem
-
-\defineXMLcommand [rem] {\flushXMLstackwith\plustwo{\getXMLentity{mod}}}
-
-\setupMMLappearance [times] [\c!symbol=\v!no,\c!auto=\v!yes] % new, auto catches cn cn cn
-
-\defineXMLcommand [times] [\MMLargumentprefix] [] {\directsetup{mmc:times}}
-
-\startsetups mmc:times
- \startusingMMLarguments
- \setMMLcreset{\MMLcfunctionlist,\MMLcconstructlist}%
- \doifelse\@@MMLtimesauto\v!no {
- \let\@@MMLtimes@@symbol\@@MMLtimessymbol
- } {
- \countXMLnamedstack {cn}
- \ifnum\scratchcounter>\plusone
- \doifinsetelse\@@MMLtimessymbol{\v!yes,\v!no} {
- \let\@@MMLtimes@@symbol\v!yes
- } {
- \let\@@MMLtimes@@symbol\@@MMLtimessymbol
- }
- \else
- \let\@@MMLtimes@@symbol\@@MMLtimessymbol
- \fi
- }
- \doifelse\@@MMLtimes@@symbol\v!yes {
- \flushXMLstackwith\plustwo\times
- } {
- \doifelse\@@MMLtimes@@symbol{dot} {
- \flushXMLstackwith\plustwo\cdot
- } {
- \doifelse\@@MMLtimes@@symbol{times} {
- \flushXMLstackwith\plustwo\times
- } {
- \flushXMLstackwith\plustwo\empty
- }
- }
- }
- \stopusingMMLarguments
-\stopsetups
-
-\defineXMLcommand [root] {\directsetup{mmc:root}}
-
-\setupMMLappearance[root][\c!symbol=\v!yes]
-
-\startsetups mmc:root
- \XMLdoifonstackelse {degree} {
- \root
- \doifnot\@@MMLrootsymbol\v!no{\MMLcreset\XMLfirstnamed{degree}}
- \of
- } {
- \sqrt
- }
- {\MMLcreset\XMLfirstnamed{apply,reln,ci,cn}}
-\stopsetups
-
-% gcd
-
-\defineXMLcommand [gcd] {\gcd\left(\MMLcreset\flushXMLstackwith\plustwo{\MMLseparator,}\right)}
-
-% and or xor implies
-
-\defineXMLcommand [and] {\flushXMLstackwith\plustwo{\getXMLentity{and}}}
-\defineXMLcommand [or] {\flushXMLstackwith\plustwo{\getXMLentity{or}}}
-\defineXMLcommand [xor] {\flushXMLstackwith\plustwo{\getXMLentity{xor}}}
-\defineXMLcommand [implies] {\flushXMLstackwith\plustwo{\getXMLentity{implies}}}
-
-% not
-
-\defineXMLcommand [not] {\getXMLentity{not}\getXMLstackdata\plustwo}
-
-% forall exists
-
-\defineXMLcommand [forall] {\directsetup{mmc:forall}}
-\defineXMLcommand [exists] {\directsetup{mmc:exists}}
-
-%D We need to shift left below rotated A.
-
-\startsetups mmc:forall
- \getXMLentity{forall}
- \getXMLentity{NegThinSpace}
- \directsetup{mmc:forall-exists}
-\stopsetups
-
-\startsetups mmc:exists
- \getXMLentity{exists}
- \directsetup{mmc:forall-exists}
-\stopsetups
-
-\startsetups mmc:forall-exists
- _{\flushXMLnamedstackwith\plustwo{bvar}{\MMLseparator,}}
- \XMLdoifonstackelse {condition} {
- \getXMLentity{ThickSpace}
- \begingroup
- \XMLfirstnamed{condition}
- \endgroup
- \countXMLnamedstack {apply,reln,ci,cn}
- \ifcase\scratchcounter
- \or
- % == snelle volgende
- \left\vert \MMLcreset
- \getXMLentity{MediumSpace}
- \flushXMLnamedstackwith\plustwo{apply,reln,ci,cn}\empty
- \right.
- \else
- % special case
- % \defineXMLignore[condition]
- \collectXMLnamedstack{apply,reln,ci,cn}{\hfill\crcr}
- \left\vert
- \matrix{\the\XMLRtoks}
- \right.
- \fi
- } {
- :\XMLfirstnamed{apply,reln,ci,cn}
- }
-\stopsetups
-
-\defineXMLcommand [abs] {\left\vert \MMLcreset \flushXMLstackfrom\plustwo \right\vert}
-\defineXMLcommand [conjugate] {{\overline{\MMLcreset \flushXMLstackfrom\plustwo}}} % watch extra {}
-\defineXMLcommand [arg] {\getXMLentity{arg} \left(\MMLcreset\flushXMLstackfrom\plustwo\right)}
-\defineXMLcommand [real] {\getXMLentity{real} \left(\MMLcreset\flushXMLstackfrom\plustwo\right)}
-\defineXMLcommand [imaginary] {\getXMLentity{imaginary}\left(\MMLcreset\flushXMLstackfrom\plustwo\right)}
-\defineXMLcommand [lcm] {\getXMLentity{lcm} \left(\flushXMLstackwith\plustwo{\MMLseparator,}\right)}
-\defineXMLcommand [floor] {\getXMLentity{lfloor} \flushXMLstackfrom\plustwo \getXMLentity{rfloor}}
-\defineXMLcommand [ceiling] {\getXMLentity{lceiling} \flushXMLstackfrom\plustwo \getXMLentity{rceiling}}
-
-% relations
-
-\defineXMLcommand [eq] [\MMLargumentprefix] [\c!align=] {\MMLcrelation=}
-\defineXMLcommand [neq] [\MMLargumentprefix] [\c!align=] {\MMLcrelation\neq}
-\defineXMLcommand [gt] [\MMLargumentprefix] [\c!align=] {\MMLcrelation>}
-\defineXMLcommand [lt] [\MMLargumentprefix] [\c!align=] {\MMLcrelation<}
-\defineXMLcommand [geq] [\MMLargumentprefix] [\c!align=] {\MMLcrelation\geq}
-\defineXMLcommand [leq] [\MMLargumentprefix] [\c!align=] {\MMLcrelation\leq}
-\defineXMLcommand [equivalent] [\MMLargumentprefix] [\c!align=] {\MMLcrelation\equiv}
-\defineXMLcommand [approx] [\MMLargumentprefix] [\c!align=] {\MMLcrelation\approx}
-\defineXMLcommand [factorof] [\MMLargumentprefix] [\c!align=] {\MMLcrelation\mid}
-
-\setupMMLappearance[relation][\c!align=\v!no]
-
-\def\MMLcrelation
- {\startusingMMLarguments
- \MMLcreset
- \edef\@@MMLrelationalign{\executeifdefined{\MMLargumentprefix\c!align}\@@MMLrelationalign}%
- \processaction
- [\@@MMLrelationalign]
- [\v!last=>\let\next\lastMMLcrelation ,
- \v!first=>\let\next\firstMMLcrelation,
- \v!yes=>\let\next\leftMMLcrelation ,
- \v!left=>\let\next\leftMMLcrelation ,
- \v!right=>\let\next\rightMMLcrelation,
- \s!default=>\let\next\noMMLcrelation ,
- \s!unknown=>\let\next\noMMLcrelation ]
- \next}
-
-\def\noMMLcrelation#1%
- {\flushXMLstackwith\plustwo{#1}
- \stopusingMMLarguments}
-
-\def\lastMMLcrelation#1% weird, probably bugged
- {\XMLRtoks\emptytoks
- \dostepwiserecurse\plustwo\XMLstacklevel\plusone
- {\appendetoks\noexpand\getXMLstackdata{\recurselevel}\to\XMLRtoks
- \ifnum\recurselevel<\numexpr\XMLstacklevel-1\relax
- \appendtoks\@col@amp@#1\crcr\to\XMLRtoks
- \else\ifnum\recurselevel=\numexpr\XMLstacklevel-1\relax
- \appendtoks\@col@amp@#1\to\XMLRtoks
- \fi\fi}%
- \eqalign{\the\XMLRtoks\crcr}%
- \stopusingMMLarguments}
-
-\def\firstMMLcrelation#1%
- {\collectXMLstackrows\plusthree{\crcr\@col@amp@#1}%
- \eqalign{\getXMLstackdata\plustwo\@col@amp@#1\the\XMLRtoks}%
- \stopusingMMLarguments}
-
-\def\leftMMLcrelation#1%
- {\collectXMLstackrows\plustwo{\@col@amp@#1\crcr}%
- \eqalign{\the\XMLRtoks}%
- \stopusingMMLarguments}
-
-\def\rightMMLcrelation#1%
- {\collectXMLstackrows\plustwo{\crcr#1{}\@col@amp@}%
- \eqalign{\@col@amp@\the\XMLRtoks\crcr}%
- \stopusingMMLarguments}
-
-\defineXMLcommand [becomes] {\MMLcrelation{:=}}
-
-\addtocommalist{becomes/}\MMLcmainresetlist
-
-% calculus and vector calculus
-
-\setupMMLappearance[int][\c!location=\v!top]
-
-\def\doMMLlimits#1%
- {\doifelsevalue{@@MML#1\c!location}\v!top\limits\nolimits}
-
-\defineXMLnested
- [domainofapplication]
- {\directsetup{mmc:domainofapplication:start}}
- {\directsetup{mmc:domainofapplication:stop}}
-
-\startsetups mmc:domainofapplication:start
- \begingroup
- \startsavingXMLelements
-\stopsetups
-
-\startsetups mmc:domainofapplication:stop
- \stopsavingXMLelements
-% \MMLcreset
- \flushXMLstackfrom\plusone
- \endgroup
-\stopsetups
-
-\defineXMLcommand [int] {\directsetup{mmc:int}}
-
-\startsetups mmc:int
- \MMLcreset
- \XMLdoifonstackelse{domainofapplication} {
- \int\doMMLlimits{int}_{\XMLfirstnamed{domainofapplication}}\relax
- } {
- \XMLdoifonstackelse{condition} {
- \int\doMMLlimits{int}_{\XMLfirstnamed{condition}}\relax
- } {
- \XMLdoifonstackelse{lowlimit} {
- \int\doMMLlimits{int}
- _{\XMLfirstnamed{lowlimit}}
- ^{\XMLfirstnamed{uplimit}}
- } {
- % funny, why do we have lowlimit/uplimit then
- \XMLdoifonstackelse{interval} {
- \begingroup
- \startlocalsetups mmc:interval:start %
- \begingroup
- \startsavingXMLelements
- \stoplocalsetups
- \startlocalsetups mmc:interval:stop %
- \stopsavingXMLelements
- \xdef\MMLfirstelement {\getXMLstackdata\plusone}
- \xdef\MMLsecondelement{\getXMLstackdata\plustwo}
- \endgroup
- \stoplocalsetups
- \globallet\MMLfirstelement \empty
- \globallet\MMLsecondelement\empty
- \XMLfirstnamed{interval}
- \endgroup
- \int\doMMLlimits{int}
- _{\MMLfirstelement}
- ^{\MMLsecondelement}
- } {
- \int
- }
- }
- }
- }
- \MMLcreset
- \XMLdoifonstackelse{apply} {
- \doifelseMMCfunction {
- \XMLfirstnamed{apply}
- } {
- % if there are too many () now, we need to be more clever
- \left(\XMLfirstnamed{apply}\right)
- }
- } {
- \XMLfirstnamed{ci}
- }
- \XMLdoifonstackelse{bvar} {
- \,% \getXMLentity{ThinSpace}%
-% {\MMLrm\getXMLentity{mathematicald}}
- \mfunction{\getXMLentity{mathematicald}}
- \XMLfirstnamed{bvar}
- } {
- % nothing
- }
-\stopsetups
-
-\setupMMLappearance[diff][\c!location=\v!top,\c!alternative=\v!a]
-
-\defineXMLcommand [diff] {\directsetup{mmc:diff}}
-\defineXMLcommand [partialdiff] {\directsetup{mmc:partialdiff}}
-
-% \setupMMLappearance[diff][alternative=b]
-%
-% \startXMLdata
-% <math><apply><apply><diff/><bvar><ci>x</ci></bvar><ci>f</ci></apply><ci>a</ci></apply></math>
-% <math><apply><apply><diff/><bvar><ci>x</ci></bvar><degree>2</degree><ci>f</ci></apply><ci>a</ci></apply></math>
-% \stopXMLdata
-
-% d^y/dx^2
-%
-% \startXMLdata
-% <math><apply><diff/>
-% <bvar><ci>x</ci><cn type="integer">2</cn></bvar>
-% <lambda><bvar><ci>x</ci></bvar><ci>y</ci></lambda>
-% </apply></math>
-% \stopXMLdata
-
-\startsetups mmc:diff
- \MMLcreset
- \doifelse\@@MMLdiffalternative\v!a {
- \XMLdoifonstackelse{lambda} {
- % a special case (mathadore/openmath)
- \begingroup
- \defineXMLsave[ci]
- \defineXMLsave[cn]
- \defineXMLprocess[lambda]
- \defineXMLprocess[bvar]
- \frac {
- d^{\XMLfirstnamed{bvar}\XMLflush{cn}}{\XMLfirstnamed{lambda}\XMLflush{ci}}
- } {
- d{\XMLfirstnamed{bvar}\XMLflush{ci}}^{\XMLfirstnamed{bvar}\XMLflush{cn}}
- }
- \endgroup
- } {
- \XMLdoifonstackelse{bvar} {
- \frac {
- \XMLdoifonstackelse{degree} {
- \collectXMLnamedstack{degree}\empty
- } {
- \collectXMLnamedstacknamed{bvar}{degree}+
- }
- \mfunction{\getXMLentity{mathematicald}}
- ^{\the\XMLRtoks}
- \doif\@@MMLdifflocation\v!top {
- \XMLdoifonstackelse{ci} {
- \XMLfirstnamed{ci}
- } {
- \MMLcreset\XMLfirstnamed{apply}
- }
- }
- } {
- \mfunction{\getXMLentity{mathematicald}}
- \begingroup
- \defineXMLsave[degree]
- \XMLfirstnamed{bvar}
- \doifXMLdata{degree} {
- ^{\XMLflush{degree}}
- }
- \endgroup
- }
- \doifnot\@@MMLdifflocation\v!top {
- \left(\MMLcreset\XMLfirstnamed{apply,ci}\right)
- }
- } {
- \flushXMLstackfrom\plustwo^\prime
- }
- }
- } {
- \MMLcreset
- \XMLfirstnamed{apply,ci}
- % there can be problems with nested diff's: ^^{} error
- % so we add an empty group here
- {}^
- {
- \XMLdoifonstackelse{degree} {
- \defXMLfirstnamedtext\ascii{degree}
- \dorecurse\ascii\prime
- } {
- \prime
- }
- }
- }
-\stopsetups
-
-\startsetups mmc:partialdiff
- \XMLdoifonstackelse{list} {
- \getXMLentity{capitaldifferentiald}_{
- \begingroup
- \setfalse\MMLlistdelimiters
- \XMLallnamed{list}
- \endgroup
- }
- \XMLfirstnamed{apply,reln,ci,cn}
- } {
- \XMLdoifonstackelse{bvar} {
- \frac {
- \XMLdoifonstackelse{degree} {
- \collectXMLnamedstack{degree}\empty
- } {
- \collectXMLnamedstacknamed{bvar}{degree}+
- }
- \getXMLentity{differentiald}^{\the\XMLRtoks}
- % \let\MMLcDEGREE\gobbletwoarguments
- % \doifelseMMCfunction\MMLcreset\donothing
- \MMLcreset
- \XMLfirstnamed{apply,reln,ci,cn}
- } {
- \defineXMLnested[bvar]
- {\directsetup{mmc:bvar:diff:start}}
- {\directsetup{mmc:bvar:diff:stop}}
- \XMLfirstnamed{bvar}
- }
- } {
- \XMLfirstnamed{apply,reln,ci,cn}
- }
- }
-\stopsetups
-
-\startsetups mmc:bvar:diff:start
- \begingroup
- \startsavingXMLelements
-\stopsetups
-
-\startsetups mmc:bvar:diff:stop
- \stopsavingXMLelements
- \getXMLentity{differentiald}\XMLfirstnamed{apply,reln,ci,cn}
- \XMLdoifonstackelse{degree} {
- ^{\XMLfirstnamed{degree}}
- } {
- % nothing
- }
- \endgroup
-\stopsetups
-
-\def\subMMLcelement #1#2{_{#2}}
-\def\superMMLcelement#1#2{^{#2}}
-
-\defineXMLprocess [lowlimit]
-\defineXMLprocess [uplimit]
-\defineXMLprocess [bvar]
-\defineXMLprocess [degree]
-
-% option:
-%
-% \defineXMLentity [div] {\mathematics{\triangledown\times}}
-% \defineXMLentity [curl] {\mathematics{\triangledown .}}
-% \defineXMLentity [grad] {\mathematics{\triangledown }}
-
-\defineXMLcommand [divergence] {\getXMLentity{divergence}\directsetup{mmc:donamedfunction}}
-\defineXMLcommand [grad] {\getXMLentity {grad}\directsetup{mmc:donamedfunction}}
-\defineXMLcommand [curl] {\getXMLentity {curl}\directsetup{mmc:donamedfunction}}
-\defineXMLcommand [laplacian] {\getXMLentity {laplacian}\directsetup{mmc:donamedfunction}}
-
-\defineXMLcommand [ident] {\getXMLentity {identity}\directsetup{mmc:donamedfunction}}
-% \defineXMLcommand [domain] {\getXMLentity {domain}\directsetup{mmc:donamedfunction}}
-% \defineXMLcommand [codomain] {\getXMLentity {codomain}\directsetup{mmc:donamedfunction}}
-
-\defineXMLcommand[domain] {\directsetup{mmc:domain:action}}
-\defineXMLcommand[codomain]{\directsetup{mmc:codomain:action}}
-
-\setupMMLappearance[domain] [symbol=]
-\setupMMLappearance[codomain][symbol=]
-
-\startsetups mmc:domain:action
- \doifelsenothing\@@MMLdomainsymbol {
- \getXMLentity{domain}\directsetup{mmc:donamedfunction}
- } {
- \@@MMLdomainsymbol_{\flushXMLstackfrom\plustwo}
- }
-\stopsetups
-\startsetups mmc:codomain:action
- \doifelsenothing\@@MMLcodomainsymbol {
- \getXMLentity{codomain}\directsetup{mmc:donamedfunction}
- } {
- \@@MMLcodomainsymbol_{\flushXMLstackfrom\plustwo}
- }
-\stopsetups
-
-
-\startsetups mmc:donamedfunction
-% \left(
-% \begingroup
- \MMLcreset\flushXMLstackfrom\plustwo
-% \endgroup
-% \right)
-\stopsetups
-
-% theory of sets
-
-\defineXMLnested [set]
- {\setups{mmc:set:start}}
- {\setups{mmc:set:stop}}
-
-\startsetups mmc:set:start
- \begingroup
- \startsavingXMLelements
-\stopsetups
-
-\startsetups mmc:set:stop
- \stopsavingXMLelements
- \XMLdoifonstackelse{condition} {
- \left\{\XMLfirstnamed{bvar}\,\middle\vert\,\XMLfirstnamed{condition}\right\}
- } {
- \left\{\flushXMLstackwith\plusone{\MMLseparator,}\right\}
- }
- \endgroup
-\stopsetups
-
-\defineXMLnested [list]
- {\setups{mmc:list:start}}
- {\setups{mmc:list:stop}}
-
-\settrue\MMLlistdelimiters
-
-\startsetups mmc:list:start
- \begingroup
- \startsavingXMLelements
-\stopsetups
-
-\startsetups mmc:list:stop
- \stopsavingXMLelements
- \ifconditional\MMLlistdelimiters\left [\fi
- \begingroup
- \settrue\MMLlistdelimiters
- \flushXMLstackwith\plusone{\MMLseparator,}
- \endgroup
- \ifconditional\MMLlistdelimiters\right]\fi
- \endgroup
-\stopsetups
-
-\defineXMLcommand [union] {\MMLcset\cup}
-\defineXMLcommand [intersect] {\MMLcset\cap}
-\defineXMLcommand [in] {\MMLcset\in}
-\defineXMLcommand [notin] {\MMLcset{\not\in}}
-\defineXMLcommand [subset] {\MMLcset\subset}
-\defineXMLcommand [prsubset] {\MMLcset\subseteq}
-\defineXMLcommand [notsubset] {\MMLcset{\not\subset}}
-\defineXMLcommand [notprsubset] {\MMLcset{\not\subseteq}}
-\defineXMLcommand [setdiff] {\MMLcset\setminus}
-
-\def\MMLcset#1{\getXMLstackdata\plustwo#1\getXMLstackdata\plusthree}
-
-\defineXMLcommand [card] {\left\vert\flushXMLstackfrom\plustwo\right\vert}
-\defineXMLcommand [cartesianproduct] {\flushXMLstackwith\plustwo\times}
-
-% sequences and series
-
-\defineXMLcommand [sum] {\MMLcSUMandPRODUCT{sum}\sum}
-\defineXMLcommand [product]{\MMLcSUMandPRODUCT{product}\prod}
-
-\setupMMLappearance[sum] [\c!location=\v!top]
-\setupMMLappearance[product][\c!location=\v!top]
-
-\def\stackMMLsubscripts#1%
- {\vbox
- {\baselineskip\zeropoint % hack, taco vragen
- \halign{$\scriptstyle\hss##\hss$\cr#1\crcr}}}
-
-\def\MMLcSUMandPRODUCT#1#2%
- {\begingroup
- \XMLdoifonstackelse{condition,bvar,lowlimit}
- {\def\MMLcSUMlow
- {_{\XMLdoifonstackelse{condition}
- {\collectXMLnamedstack{condition}{\crcr}%
- \stackMMLsubscripts{\the\XMLRtoks}}
- {\XMLdoifonstackelse{bvar}
- {\XMLfirstnamed{bvar}%
- \XMLdoifonstackelse{lowlimit}{=}{}}%
- {}%
- \XMLfirstnamed{lowlimit}}}}}
- {\let\MMLcSUMlow\empty}%
- \XMLdoifonstackelse{uplimit}
- {\def\MMLcSUMup{^{\XMLfirstnamed{uplimit}}}}
- {\let\MMLcSUMup\empty}%
- \XMLdoifonstackelse{interval} % open math converter gives this
- {\begingroup
- \directsetup{mmc:interval:fetch}%
- \XMLfirstnamed{interval}%
- \endgroup
- \ifx\MMCintervalfrom\empty\else
- \def\MMLcSUMlow{_{\XMLdoifonstackelse{bvar}{\XMLfirstnamed{bvar}{=}}{}\MMCintervalfrom}}%
- \fi
- \ifx\MMCintervalto\empty \else
- \def\MMLcSUMup{^{\MMCintervalto}}%
- \fi}
- {}%
- \MMLcreset#2\doMMLlimits{#1}\MMLcSUMup\MMLcSUMlow
- \directsetup{mmc:lambda:simple}% a bit of open math conversion mess
- \MMLcreset\XMLfirstnamed{apply,lambda,ci}%
- \endgroup}
-
-\defineXMLcommand [limit] {\directsetup{mmc:limit}}
-
-\setupMMLappearance[limit][\c!location=\v!top]
-
-\startsetups mmc:limit
- \MMLcreset \lim
- \doMMLlimits{limit}_{
- \MMLcreset
- \XMLdoifonstackelse {condition} {
- \XMLfirstnamed{condition}
- } {
- \XMLdoifonstackelse {bvar} {
- \XMLfirstnamed{bvar}\rightarrow
- } {
- }
- \XMLfirstnamed{lowlimit}
- }
- }
- \begingroup
- \MMLcreset
- \directsetup{mmc:lambda:simple}% a bit of open math conversion mess
- \XMLfirstnamed{apply,lambda}% lambda needed for openmath
- \endgroup
-\stopsetups
-
-\defineXMLcommand [tendsto] [type=default] {\directsetup{mmc:tendsto}}
-
-\startsetups mmc:tendsto
- \MMLcreset \getXMLstackdata\plustwo
- \processaction
- [\XMLpar{tendsto}{type}{default}]
- [ above=>\downarrow,
- below=>\uparrow,
- unknown=>\rightarrow]
- \MMLcreset \getXMLstackdata\plusthree
-\stopsetups
-
-% elementary classical functions
-
-\defineXMLcommand [exp] {\directsetup{mmc:exp}}
-\defineXMLcommand [ln] {\directsetup{mmc:function}}
-\defineXMLcommand [log] {\directsetup{mmc:log}}
-\defineXMLignore [logbase]
-
-\setupMMLappearance[log][\c!location=\v!right]
-
-\startsetups mmc:exp
- \getXMLentity{exponentiale}^{\XMLfirstnamed{apply,reln,ci,cn}}
-\stopsetups
-
-\startsetups mmc:log
- \XMLdoifonstackelse {logbase} {
- \doifelse\@@MMLloglocation\v!left {
- \mathop{{}^{{\defineXMLprocess[logbase]\XMLfirstnamed{logbase}}}
- \getXMLentity{NegThinSpace}
- \getXMLentity{log}}
- } {
- \getXMLentity{log}_{{\defineXMLprocess[logbase]\XMLfirstnamed{logbase}}}
- }
- } {
- \getXMLentity{log}
- }
- \MMLcreset
- % mmc:function:argument assumes that the apply is second in the row (*1*)
- % \removeXMLdatafromstack{logbase}
- \directsetup{mmc:function:argument}
-\stopsetups
-
-% statistics
-
-\defineXMLcommand [mean] {\overline{\getXMLstackdata\plustwo}}
-\defineXMLcommand [sdev] {\sigma(\MMLcreset\getXMLstackdata\plustwo)}
-\defineXMLcommand [variance] {\sigma(\MMLcreset\getXMLstackdata\plustwo)^2}
-\defineXMLcommand [median] {\getXMLentity{median}(\MMLcreset\getXMLstackdata\plustwo)}
-\defineXMLcommand [mode] {\getXMLentity{mode}(\MMLcreset\getXMLstackdata\plustwo)}
-
-% moments
-
-\defineXMLcommand [moment] {\directsetup{mmc:moment}}
-\defineXMLprocess [momentabout]
-
-\startsetups mmc:moment
- \left\langle\XMLfirstnamed{apply,reln,ci,cn}^{\XMLfirstnamed{degree}}\right\rangle
- \XMLdoifonstackelse{momentabout} {
- _{\XMLfirstnamed{momentabout}}
- } {
- }
-\stopsetups
-
-% linear algebra
-
-\defineXMLcommand [vector] {\directsetup{mmc:vector}} % sequence
-
-\setupMMLappearance [vector] [\c!direction=\v!horizontal,\c!separator={,}]
-
-\defineXMLnested
- [vector]
- {\directsetup{mmc:vector:start}}
- {\directsetup{mmc:vector:stop}}
-
-\startsetups mmc:vector:start
- \begingroup
- \startsavingXMLelements
-\stopsetups
-
-\startsetups mmc:vector:stop
- \stopsavingXMLelements
- \ifnum\XMLstacklevel>\plusone
- \doifelse\@@MMLvectordirection\v!horizontal {
- \left(\flushXMLstackwith\plusone{\MMLseparator\@@MMLvectorseparator}\right)
- } {
- \collectXMLstack\crcr
- \MMLcreset\left(\matrix{\the\XMLRtoks}\right)
- }
- \else
- \overrightarrow{\charhtstrut\getXMLstackdata\plusone}
- \fi
- \endgroup
-\stopsetups
-
-\defineXMLnestedenvironmentsave [matrix] {} {\directsetup{mmc:matrix}}
-\defineXMLnestedenvironmentsave [matrixrow] {} {\directsetup{mmc:matrixrow}}
-
-\unexpanded\def\@col@amp@{&}
-
-\settrue\MMCdelmatrix %( ) when true
-
-\startsetups mmc:matrix
- \begingroup
- \MMLcreset
- \defineXMLnestedenvironmentsave [matrixrow] {} {\directsetup{mmc:matrixrow:do}}
- \ifconditional\MMCdelmatrix
- \left(\matrix{\XMLflush{matrix}}\right)
- \else
- \settrue\MMCdelmatrix
- \matrix{\XMLflush{matrix}}
- \fi
- \endgroup
-\stopsetups
-
-\startsetups mmc:matrixrow
- \begingroup
- \MMLcreset
- \left(\matrix{\directsetup{mmc:matrixrow:do}}\right)
- \endgroup
-\stopsetups
-
-\startsetups mmc:matrixrow:do
- \begingroup
- \startsavingXMLelements
- \XMLflush{matrixrow}
- \stopsavingXMLelements
- \collectXMLstackrows\plusone\@col@amp@
- \edef\ascii{\the\XMLRtoks}
- \edef\ascii{\ascii}
- \expandafter\endgroup\ascii\crcr
-\stopsetups
-
-\defineXMLcommand [determinant] {\directsetup{mmc:determinant}}
-\defineXMLcommand [transpose] {\directsetup{mmc:transpose}}
-\defineXMLcommand [selector] {\directsetup{mmc:selector}}
-
-\startsetups mmc:determinant
- \begingroup
- \left|
- \setfalse\MMCdelmatrix
- \getXMLstackdata\plustwo
- \right|
- \endgroup
-\stopsetups
-
-\startsetups mmc:transpose
-% \getXMLstackdata\plustwo^{\MMLrm T}
- \getXMLstackdata\plustwo^{\mfunction{T}}
-\stopsetups
-
-\startsetups mmc:selector
- \MMLmathinner{\getXMLstackdata\plustwo}_{\MMLcreset\flushXMLstackwith\plusthree{\MMLseparator,}}
-\stopsetups
-
-\defineXMLcommand [vectorproduct] {\getXMLstackdata\plustwo\getXMLentity{vectorproduct}\getXMLstackdata\plusthree}
-\defineXMLcommand [scalarproduct] {\getXMLstackdata\plustwo\getXMLentity{scalarproduct}\getXMLstackdata\plusthree}
-\defineXMLcommand [outerproduct] {\getXMLstackdata\plustwo\getXMLentity {outerproduct}\getXMLstackdata\plusthree}
-
-% semantic mapping elements
-
-\defineXMLnested
- [semantics]
- {\directsetup{mmc:semantics:start}}
- {\directsetup{mmc:semantics:stop}}
-
-\startsetups mmc:semantics:start
- \begingroup
- \startsavingXMLelements
-\stopsetups
-
-\startsetups mmc:semantics:stop
- \stopsavingXMLelements
- \XMLdoifonstackelse {annotation} {
- \flushXMLnamedstackwith\plusone{annotation}\empty
- } {
- \flushXMLnamedstackwith\plusone{apply}\empty
- }
- \endgroup
-\stopsetups
-
-\defineXMLenvironmentsave
- [annotation]
- [encoding=]
- {}
- {\directsetup{mmc:annotation}}
-
-\startsetups mmc:annotation
- \expanded{\doifinset{\XMLpar{annotation}{encoding}{}}{TeX,tex,TEX,ConTeXt,context,CONTEXT}} {
- \XMLtexdata{annotation}
- }
-\stopsetups
-
-\defineXMLignore [annotation-xml]
-
-% misc
-
-\defineXMLcommand [integers] {\getXMLentity{integers}}
-\defineXMLcommand [reals] {\getXMLentity{reals}}
-\defineXMLcommand [rationals] {\getXMLentity{rationals}}
-\defineXMLcommand [naturalnumbers] {\getXMLentity{naturalnumbers}}
-\defineXMLcommand [complexes] {\getXMLentity{complexes}}
-\defineXMLcommand [primes] {\getXMLentity{primes}}
-\defineXMLcommand [exponentiale] {\getXMLentity{ExponentialE}}
-\defineXMLcommand [imaginaryi] {\getXMLentity{ImaginaryI}}
-\defineXMLcommand [notanumber] {\mathop{\mfunction{NaN}}}
-\defineXMLcommand [true] {\mathop{\mfunction{true}}}
-\defineXMLcommand [false] {\mathop{\mfunction{false}}}
-\defineXMLcommand [emptyset] {\mathop{\O}}
-\defineXMLcommand [pi] {\pi}
-\defineXMLcommand [eulergamma] {\gamma}
-\defineXMLcommand [infinity] {\infty}
-
-% gonio functions
-
-\defineXMLcommand[sin] {\directsetup{mmc:function}} \defineXMLcommand[arcsin] {\directsetup{mmc:function}}
-\defineXMLcommand[sinh]{\directsetup{mmc:function}} \defineXMLcommand[arcsinh]{\directsetup{mmc:function}}
-\defineXMLcommand[cos] {\directsetup{mmc:function}} \defineXMLcommand[arccos] {\directsetup{mmc:function}}
-\defineXMLcommand[cosh]{\directsetup{mmc:function}} \defineXMLcommand[arccosh]{\directsetup{mmc:function}}
-\defineXMLcommand[tan] {\directsetup{mmc:function}} \defineXMLcommand[arctan] {\directsetup{mmc:function}}
-\defineXMLcommand[tanh]{\directsetup{mmc:function}} \defineXMLcommand[arctanh]{\directsetup{mmc:function}}
-\defineXMLcommand[cot] {\directsetup{mmc:function}} \defineXMLcommand[arccot] {\directsetup{mmc:function}}
-\defineXMLcommand[coth]{\directsetup{mmc:function}} \defineXMLcommand[arccoth]{\directsetup{mmc:function}}
-\defineXMLcommand[csc] {\directsetup{mmc:function}} \defineXMLcommand[arccsc] {\directsetup{mmc:function}}
-\defineXMLcommand[csch]{\directsetup{mmc:function}} \defineXMLcommand[arccsch]{\directsetup{mmc:function}}
-\defineXMLcommand[sec] {\directsetup{mmc:function}} \defineXMLcommand[arcsec] {\directsetup{mmc:function}}
-\defineXMLcommand[sech]{\directsetup{mmc:function}} \defineXMLcommand[arcsech]{\directsetup{mmc:function}}
-
-\setupMMLappearance[function][\c!reduction=\v!yes]
-
-\startsetups mmc:function
- \getXMLentity\currentXMLelement
- \ifx\MMLpowerelement\empty\else
- ^{\MMLcreset\MMLpowerelement\empty}
- \getXMLentity{NegThinSpace}
- \global\let\MMLpowerelement\empty
- \fi
- \doif {\getXMLstackname\plusone} {\currentXMLelement} {
- % rather fuzzy test; looks like an apply case
- \directsetup{mmc:function:argument}
- }
-\stopsetups
-
-\startsetups mmc:function:argument
- \doifelse\@@MMLfunctionreduction\v!yes {
- % \doifelse {\getXMLstackname\plustwo} {apply} {
- % \doifelseMMCfunctioninapply \plustwo \MMLcfunctionlist \donefalse \donetrue
- %
- % best is to grab the apply (independent of order), (*1*), so:
- %
- \XMLdoifonstackelse {apply} {
- \doifelseMMCfunctioninapply \XMLstackposition {\MMLcfunctionlist,divide} \donefalse \donetrue
- } {
- \donefalse
- }
- } {
- \donetrue
- }
- % beware, we still flush from 2 up
- \ifdone
- \left(\MMLcreset\flushXMLstackfrom\plustwo\right)
- \else
- \MMLcreset\flushXMLstackfrom\plustwo
- \fi
-\stopsetups
-
-% presentation mml
-
-\def\resetMMLseparator
- {\newcounter\MMLxxcounter
- \let\lastMMLseparator\empty}
-
-\def\grabMMLseparator#1%
- {\increment\MMLxxcounter
- \newcounter\MMLyycounter
- \expanded{\dograbMMLseparator#1\noexpand\relax}}
-
-\def\dograbMMLseparator
- {\increment\MMLyycounter
- \doifnextcharelse\relax
- {\lastMMLseparator\gobbleoneargument}
- {\doifnextcharelse\xmlrent\grabMMLseparatora\grabMMLseparatorb}}
-
-\def\grabMMLseparatora#1\xmlrent#2%
- {\ifnum\MMLxxcounter=\MMLyycounter\space
- \def\lastMMLseparator{\xmlrent{#2}}%
- \fi
- \dograbMMLseparator}
-
-\def\grabMMLseparatorb#1%
- {\ifnum\MMLxxcounter=\MMLyycounter\space
- \doifXMLentityelse{#1}
- {\def\lastMMLseparator{\xmlrent{#1}}}
- {\def\lastMMLseparator{#1}}%
- \fi
- \dograbMMLseparator}
-
-%
-
-\defineXMLargument [mi] \MMLpMI
-\defineXMLargument [mn] \MMLpMN
-\defineXMLargument [mo] \MMLpMO
-
-\def\MMLpMI#1%
- {\begingroup
- \setMMLpmathstyle{mstyle}%
- #1%
- \endgroup}
-
-% \def\MMLpMN#1%
-% {\begingroup
-% \MMLrm
-% \setMMLpmathstyle{mstyle}%
-% #1%
-% \endgroup}
-
-\def\MMLpMN#1%
- {\mfunction{\setMMLpmathstyle{mstyle}#1}}
-
-\def\MMLpMO#1% yes or no
- {\flattenXMLcontent{#1}%
- \doifXMLentityelse\flattenedXMLcontent
- {\getXMLentity\flattenedXMLcontent}
- {\ConvertConstantAfter\doifinstringelse{\xmlrent}{#1} % TODO ! ! ! ! ! ! ! !
- {#1}
- {\hbox
- {\setMMLpmathstyle{mstyle}%
- \ignorespaces#1\unskip}}}}
-
-% we need to get rid of spaces: <mo> &RightArrow; </mo>
-
-\def\MMLpMO#1% yes or no
- {\flattenXMLcontent{#1}%
- \doifXMLentityelse\flattenedXMLcontent
- {\getXMLentity\flattenedXMLcontent}
- {\ignorespaces#1\removeunwantedspaces}}
-
-\let\normalright=\right
-\let\normalleft =\left
-
-\def\doMMLleft #1{\pushmacro\left \let\left \empty\normalleft #1\popmacro\left}
-\def\doMMLright#1{\pushmacro\right\let\right\empty\normalright#1\popmacro\right}
-
-\let\MMLpopen \empty
-\let\MMLpclose\empty
-
-\defineXMLnested [mfenced] [open=(,close=),separators=]
- {\directsetup{mmp:mfenced:start}}
- {\directsetup{mmp:mfenced:stop}}
-
-\startsetups mmp:mfenced:start
- \begingroup
- \startsavingXMLelements
-\stopsetups
-
-\startsetups mmp:mfenced:stop
- \stopsavingXMLelements
- \edef\MMLpopen {\XMLpar{mfenced}{open} {}}
- \edef\MMLpclose{\XMLpar{mfenced}{close}{}}
- \ifx\MMLpopen \space\let\MMLpopen \empty\fi
- \ifx\MMLpclose\space\let\MMLpclose\empty\fi
- \ifx\MMLpopen\empty
- \ifx\MMLpclose\empty
- \else
- \doMMLleft.
- \fi
- \else
- \doMMLleft\MMLpopen
- \fi
- \pushmacro\MMLpopen
- \pushmacro\MMLpclose
- \doifelsenothing{\XMLpar{mfenced}{separators}{}} {
- \flushXMLstackfrom\plusone
- } {
- \resetMMLseparator
- \flushXMLstackwith\plusone {
- \begingroup
- \let\myspecialnormalvert\myspecialstretchvert
- \grabMMLseparator{\XMLpar{mfenced}{separators}{}}
- \endgroup
- }
- }
- \popmacro\MMLpclose
- \popmacro\MMLpopen
- \ifx\MMLpclose\empty
- \ifx\MMLpopen\empty
- \else
- \doMMLright.
- \fi
- \else
- \doMMLright\MMLpclose
- \fi
- \endgroup
-\stopsetups
-
-% \startbuffer
-% <math><mfenced separators="" open="(" close=")"><mi>x</mi></mfenced></math>
-% <math><mfenced separators="" open="" close=")"><mi>x</mi></mfenced></math>
-% <math><mfenced separators="" open="(" close="" ><mi>x</mi></mfenced></math>
-% <math><mfenced separators="" open="" close="" ><mi>x</mi></mfenced></math>
-% <math><mfenced separators="" open="" close=" "><mi>x</mi></mfenced></math>
-% \stopbuffer
-%
-% \processXMLbuffer
-
-\defineXMLnestedenvironmentsave [menclose] [notation=]
- {\directsetup{mmp:menclose:start}}
- {\directsetup{mmp:menclose:stop}}
-
-\startsetups mmp:menclose:start
- \begingroup
-\stopsetups
-
-\startsetups mmp:menclose:stop
- \doifelse{\XMLpar{menclose}{notation}{}}{longdiv} {
- \overline{)\XMLflush{menclose}}
- } {
- \XMLflush{menclose}
- }
- \endgroup
-\stopsetups
-
-\defineXMLnested [mfrac] [linethickness=]
- {\directsetup{mmp:mfrac:start}}
- {\directsetup{mmp:mfrac:stop}}
-
-\startsetups mmp:mfrac:start
- \begingroup
- \startsavingXMLelements
-\stopsetups
-
-\startsetups mmp:mfrac:stop
- \stopsavingXMLelements
- \doifXMLparelse{mfrac}{linethickness} {
- \edef\theXMLpar{\XMLpar{mfrac}{linethickness}{1}}
- \processaction
- [\theXMLpar]
- [ thin=>\scratchdimen=.2pt,
- medium=>\scratchdimen=.4pt,
- thick=>\scratchdimen=.8pt,
- unknown=>\setdimensionwithunit\scratchdimen{\theXMLpar}{}]
- {{\getXMLstackdata\plusone}\above\scratchdimen{\getXMLstackdata\plustwo}}
- } {
- \frac{\getXMLstackdata\plusone}{\getXMLstackdata\plustwo}
- }
- \endgroup
-\stopsetups
-
-\defineXMLargument
- [ms]
- [lquote=\xmlrent{quot},
- rquote=\xmlrent{quot},
- fontweight=,
- fontstyle=,
- mathstyle=,
- mathvariant=,
- background=,
- color=]
- {\MMLpSTRING}
-
-\def\MMLpSTRING#1%
- {\hbox
- {\tf % else encoding problems
- \MMLpTEXT{\XMLpar{ms}{lquote}{}%
- \doMMPpbackground{ms}{\doMMPpcolor{ms}{\setMMLptextstyle{ms}\ignorespaces#1\removeunwantedspaces}}%
- \XMLpar{ms}{rquote}{}}}}
-
-\defineXMLenvironment
- [mstyle]
- [fontweight=,
- fontstyle=,
- mathstyle=,
- mathvariant=,
- background=,
- color=]
- {\begingroup}
- {\endgroup}
-
-\defineXMLargument [mtext] [CPA] \MMLpTEXT
-\defineXMLargument [merror] [CPA] \MMLpERROR
-\defineXMLargument [mphantom] [CPA] \MMLpPHANTOM
-\defineXMLargument [mpadded] [CPA] \MMLpPADDED
-
-\mapXMLvalue{mmp}{normal} {\tf} \mapXMLvalue{mmp}{double-stuck} {\bf}
-\mapXMLvalue{mmp}{bolditalic} {\bi} \mapXMLvalue{mmp}{bold-italic} {\bi}
-\mapXMLvalue{mmp}{boldslanted}{\bs} \mapXMLvalue{mmp}{bold-slanted} {\bs}
-\mapXMLvalue{mmp}{boldnormal} {\bf} \mapXMLvalue{mmp}{bold} {\bf}
-\mapXMLvalue{mmp}{slanted} {\sl} \mapXMLvalue{mmp}{normalslanted}{\sl}
-\mapXMLvalue{mmp}{italic} {\it} \mapXMLvalue{mmp}{normalitalic} {\it}
-\mapXMLvalue{mmp}{fraktur} {\bf} \mapXMLvalue{mmp}{bold-fraktur} {\bf}
-\mapXMLvalue{mmp}{script} {\tf} \mapXMLvalue{mmp}{bold-script} {\bf}
-
-% and all kind of other crappy names
-
-\def\setMMLptextstyle#1%
- {\XMLval{mmp}{\XMLpar{#1}{fontweight}{}\XMLpar{#1}{fontstyle}{}}{}}
-
-\def\setMMLpmathstyle#1%
- {\XMLval{mmp}{\XMLpar{#1}{mathvariant}{}}{}}
-
-\def\doMMPpcolor#1#2%
- {\doifXMLparelse{#1}{color}{\color[\XMLpar{#1}{color}{}]{#2}}{#2}}
-
-\def\doMMPpbackground#1#2%
- {\doifXMLparelse{#1}{background}
- {\inframed
- [\c!frame=\v!off,
- \c!background=\v!color,
- \c!backgroundcolor=\XMLpar{#1}{background}{}]
- {#2}}
- {#2}}
-
-\def\MMLpTEXT#1%
- {\hbox
- {\tf % else encoding problems
- \doMMPpbackground{ms}{\doMMPpcolor{ms}{\setMMLptextstyle{ms}\ignorespaces#1\removeunwantedspaces}}}}
-
-\def\MMLpERROR#1%
- {\hbox{$\displaystyle#1$}}
-
-\def\MMLpPHANTOM#1%
- {\phantom{\ignorespaces{}#1\unskip}} % watch spacing {} hack
-
-\def\MMLpPADDED#1%
- {#1}
-
-% mrow
-
-\defineXMLenvironment [mrow] {\resetMMLbounds} {\finishMMLbounds}
-
-% \def\MMLleft #1{\increment\MMLboundslevel\left #1}
-% \def\MMLright#1{\right#1\decrement\MMLboundslevel}
-
-% \def\resetMMLbounds
-% {\let\MMLboundslevel\!!plusone\left.}
-
-% \def\finishMMLbounds
-% {\dorecurse\MMLboundslevel{\right.}}
-
-\def\resetMMLbounds
- {\pushmacro\MMLboundslevel
- \newcounter\MMLboundslevel}
-
-\def\MMLleft #1%
- {\increment\MMLboundslevel
- \normalleft#1}
-
-\def\MMLright#1%
- {\ifnum\MMLboundslevel=0 \normalleft.\!\fi
- \normalright#1%
- \decrement\MMLboundslevel}
-
-\def\finishMMLbounds
- {\ifnum\MMLboundslevel>0
- \normalright.\!%
- \decrement\MMLboundslevel
- \expandafter\finishMMLbounds
- \else
- \popmacro\MMLboundslevel
- \fi}
-
-\defineXMLnested [msqrt] {\directsetup{mmp:msqrt:start}} {\directsetup{mmp:msqrt:stop}}
-\defineXMLnested [mroot] {\directsetup{mmp:mroot:start}} {\directsetup{mmp:mroot:stop}}
-
-\startsetups mmp:msqrt:start
- \begingroup
- \startsavingXMLelements
-\stopsetups
-
-\startsetups mmp:msqrt:stop
- \stopsavingXMLelements
- \sqrt{\flushXMLstackfrom\plusone}
- \endgroup
-\stopsetups
-
-\startsetups mmp:mroot:start
- \begingroup
- \startsavingXMLelements
-\stopsetups
-
-\startsetups mmp:mroot:stop
- \stopsavingXMLelements
- \root{\getXMLstackdata\plustwo}\of{\getXMLstackdata\plusone}
- \endgroup
-\stopsetups
-
-\setupMMLappearance[scripts][\c!alternative=\v!a]
-
-\defineXMLnested [msub] {\directsetup{mmp:msub:start}} {\directsetup{mmp:msub:stop}}
-\defineXMLnested [msup] {\directsetup{mmp:msup:start}} {\directsetup{mmp:msup:stop}}
-\defineXMLnested [msubsup] {\directsetup{mmp:msbp:start}} {\directsetup{mmp:msbp:stop}}
-
-\startsetups mmp:msub:start
- \begingroup
- \startsavingXMLelements
-\stopsetups
-
-\startsetups mmp:msub:stop
- \stopsavingXMLelements
- \doifelse\@@MMLscriptsalternative\v!a {
- {\getXMLstackdata\plusone}_{\getXMLstackdata\plustwo}
- } {
- \getXMLstackdata\plusone_{\getXMLstackdata\plustwo}
- }
- \endgroup
-\stopsetups
-
-\startsetups mmp:msup:start
- \begingroup
- \startsavingXMLelements
-\stopsetups
-
-\startsetups mmp:msup:stop
- \stopsavingXMLelements
- \doifelse\@@MMLscriptsalternative\v!a {
- {\getXMLstackdata\plusone}^{\getXMLstackdata\plustwo}
- } {
- \getXMLstackdata\plusone^{\getXMLstackdata\plustwo}
- }
- \endgroup
-\stopsetups
-
-\startsetups mmp:msbp:start
- \begingroup
- \startsavingXMLelements
-\stopsetups
-
-\startsetups mmp:msbp:stop
- \stopsavingXMLelements
- \getXMLstackdata\plusone_{\getXMLstackdata\plustwo}^{\getXMLstackdata\plusthree}
- \endgroup
-\stopsetups
-
-\defineXMLnested [mover] {\directsetup{mmp:mover:start}} {\directsetup{mmp:mover:stop}}
-\defineXMLnested [munder] {\directsetup{mmp:munder:start}} {\directsetup{mmp:munder:stop}}
-\defineXMLnested [munderover] {\directsetup{mmp:munderover:start}} {\directsetup{mmp:munderover:stop}}
-
-\startsetups mmp:mover:start
- \begingroup
- \startsavingXMLelements
-\stopsetups
-
-\startsetups mmp:mover:stop
- \stopsavingXMLelements
- \mathop{\vbox{\m@th\ialign{\hss##\hss\crcr\noalign{\kern3\p@}%
- \disabledelimiter\doMMLfiller{\getXMLstackdata\plustwo}
- \crcr\noalign{\kern3\p@\nointerlineskip}%
- \disabledelimiter\doMMLfiller{\getXMLstackdata\plusone}
- \crcr}}}
- \limits
- \endgroup
-\stopsetups
-
-\startsetups mmp:munder:start
- \begingroup
- \startsavingXMLelements
-\stopsetups
-
-\startsetups mmp:munder:stop
- \stopsavingXMLelements
- \mathop{\vtop{\m@th\ialign{\hss##\hss\crcr
- \disabledelimiter\doMMLfiller{\getXMLstackdata\plusone}
- \crcr\noalign{\kern3\p@\nointerlineskip}%
- \disabledelimiter\doMMLfiller{\getXMLstackdata\plustwo}
- \crcr\noalign{\kern3\p@}}}}
- \limits
- \endgroup
-\stopsetups
-
-\startsetups mmp:munderover:start
- \begingroup
- \startsavingXMLelements
-\stopsetups
-
-\startsetups mmp:munderover:stop
- \stopsavingXMLelements
- \getXMLstackdata\plusone
- _{\disablefiller\disabledelimiter\getXMLstackdata\plustwo}
- ^{\disablefiller\disabledelimiter\getXMLstackdata\plusthree}
- \endgroup
-\stopsetups
-
-\def\doMMLfiller#1% bugged
- {\pushmacro\doMMLfiller
- \let\doMMLfiller\gobbleoneargument
- \gdef\dodoMMLfiller{\disablefiller\mathematics{#1}}%
- \hbox
- {\def\normalorfiller##1##2%
- {\gdef\dodoMMLfiller{\enablefiller#1}%
- \let\normalorfiller\gobbletwoarguments}%
- $#1$}%
- \popmacro\doMMLfiller
- \dodoMMLfiller}
-
-% tables
-
-% obsolete: \setupMMLappearance[mtable][\c!alternative=\v!a]
-
-\mapXMLvalue {mmp:mtable} {align:left} {right}
-\mapXMLvalue {mmp:mtable} {align:right} {left}
-\mapXMLvalue {mmp:mtable} {align:center} {middle}
-
-\mapXMLvalue {mmp:mtable} {frame:none} {off}
-\mapXMLvalue {mmp:mtable} {frame:solid} {on}
-\mapXMLvalue {mmp:mtable} {frame:on} {on}
-
-\defineXMLnested
- [mtable]
- [columnalign=,
- columnspacing=.25ex,
- rowspacing=.25ex,
- frame=,
- color=,
- background=]
- {\directsetup{mmp:mtable:start}}
- {\directsetup{mmp:mtable:stop}}
-
-\defineXMLnestedargument
- [mtr]
- {\MMPmtableHANDLEtr}
-
-\defineXMLnestedargument
- [mlabeledtr]
- {\MMPmtableHANDLEtr}
-
-\defineXMLnestedargument
- [mtd]
- [columnalign=,
- columnspacing=.25ex,
- rowspacing=.25ex,
- frame=,
- color=,
- background=]
- {\MMPmtableHANDLEtd}
-
-\startsetups mmp:mtable:start
- \vcenter \bgroup
- \MMLpTABLEsplitter{background} \c!backgroundcolor
- \MMLpTABLEsplitter{color} \c!color
- \MMLpTABLEmapper {frame} \c!frame
- \MMLpTABLEmapper {columnalign}\c!align
- \setMMLpunit{\XMLpar{mtable}{rowspacing}\empty}{.25ex}
- \let\MMLpTABLEoffset\MMLpunit
- \bTABLE[\c!frame=\v!off,\c!background=\v!color,\c!offset=\MMLpTABLEoffset]
-\stopsetups
-
-\startsetups mmp:mtable:stop
- \eTABLE
- \egroup
-\stopsetups
-
-\long\def\MMPmtableHANDLEtr#1{%
- \bTR\ignorespaces#1\removeunwantedspaces\eTR
-}
-
-\long\def\MMPmtableHANDLEtd#1{%
- \let\theMMLpTABLEmap\empty
- \MMLpTABLEmap{background} \c!backgroundcolor
- \MMLpTABLEmap{color} \c!color
- \MMLpTABLEmap{frame} \c!frame
- \MMLpTABLEmap{columnalign}\c!align
- \expanded{\bTD[\theMMLpTABLEmap]}%
- $\ignorespaces#1\removeunwantedspaces$\eTD
-}
-
-\def\MMLpTABLEmapper#1#2%
- {\doifXMLparelse{mtable}{#1}
- {\newcounter\MMLcounter
- \def\docommand##1%
- {\increment\MMLcounter
- \expanded{\setupTABLE[column][\MMLcounter][#2=\XMLval{mmp:mtable}{#2:##1}\empty]}}%
- \expanded{\processseparatedlist[\XMLpar{mtable}{#1}\empty]}[ ]\docommand}
- {}}
-
-\def\MMLpTABLEsplitter#1#2%
- {\doifXMLparelse{mtable}{#1}
- {\newcounter\MMLcounter
- \def\docommand##1%
- {\increment\MMLcounter
- \expanded{\setupTABLE[column][\MMLcounter][#2=##1]}}%
- \expanded{\processseparatedlist[\XMLpar{mtable}{#1}\empty]}[ ]\docommand}
- {}}
-
-\def\MMLpTABLEmap#1#2%
- {\doifXMLparelse{mtd}{#1}
- {\edef\theMMLpTABLEmap{#2=\XMLval{mmp:mtable}{#2:\XMLpar{mtd}{#1}\empty}\empty,\theMMLpTABLEmap}}
- {}}
-
-\defineXMLsingular [mspace] [width=.5em] {\directsetup{mmp:mspace}}
-
-\startsetups mmp:mspace
- \setMMLpunit{\XMLpar{mspace}{width}{}}{.5em}
- \hskip\MMLpunit\relax
-\stopsetups
-
-\def\setMMLpunit#1#2% i've forgotten what this means
- {\setbox\scratchbox=\hbox
- {\edef\ascii{#1}%
- \@EA\aftersplitstring\ascii\at.\to\ascii
- \scratchcounter=\ifx\ascii\empty#1\else\ascii\fi
- \unskip\unskip}%
- \ifdim\wd\scratchbox=\zeropoint
- \edef\MMLpunit{#1em}%
- \else
- \edefconvertedargument\ascii{#1}%
- \convertasciiafter\doifinstringelse{em}{\ascii}{\edef\MMLpunit{#1}}{%
- \convertasciiafter\doifinstringelse{ex}{\ascii}{\edef\MMLpunit{#1}}{%
- \convertasciiafter\doifinstringelse{pt}{\ascii}{\edef\MMLpunit{#1}}{%
- \edef\MMLpunit{#2}}}}%
- \fi}
-
-% end of tables
-
-\def\setMMLpunit#1#2%
- {\setbox\scratchbox=\hbox
- {\edef\ascii{#1}%
- \@EA\aftersplitstring\ascii\at.\to\ascii
- \scratchcounter=\ifx\ascii\empty#1\else\ascii\fi
- \unskip\unskip}%
- \ifdim\wd\scratchbox=\zeropoint
- \edef\MMLpunit{#1em}%
- \else
- \edefconvertedargument\ascii{#1}%
- \convertasciiafter\doifinstringelse{em}{\ascii}{\edef\MMLpunit{#1}}{%
- \convertasciiafter\doifinstringelse{ex}{\ascii}{\edef\MMLpunit{#1}}{%
- \convertasciiafter\doifinstringelse{pt}{\ascii}{\edef\MMLpunit{#1}}{%
- \edef\MMLpunit{#2}}}}%
- \fi}
-
-\defineXMLsingular [mspace] [width=.5em] {\directsetup{mmp:mspace}}
-
-\startsetups mmp:mspace
- \setMMLpunit{\XMLpar{mspace}{width}{}}{.5em}
- \hskip\MMLpunit
-\stopsetups
-
-\defineXMLsingular [mglyph] [fontfamily=,index=1,alt=] {\directsetup{mmp:mglyph}}
-
-\startsetups mmp:mglyph
- \def\MMLpglyph{\XMLpar{mglyph}{fontfamily}{}}%
- \doifelsenothing{\MMLpglyph} {
- \hbox{\tttf[fontfamily unspecified]}
- } {
- \doifdefinedelse{\MMLpglyph} {
- \hbox{\getvalue{\MMLpglyph}\char0\XMLpar{mglyph}{index}{1}}
- } {
- \doifelsenothing{\XMLpar{mglyph}{alt}{}} {
- \hbox{\tttf[unknown fontfamily \XMLpar{mglyph}{fontfamily}{}]}
- } {
- \hbox{\tttf\XMLpar{mglyph}{alt}{}}
- }
- }
- }
-\stopsetups
-
-\defineXMLsingular [malignmark] {}
-\defineXMLsingular [none] {}
-\defineXMLsingular [mprescripts] {}
-
-\defineXMLnested
- [mmultiscripts]
- {\setups{mmp:mmultiscripts:start}}
- {\setups{mmp:mmultiscripts:stop}}
-
-\startsetups mmp:mmultiscripts:start
- \begingroup
- \startsavingXMLelements
-\stopsetups
-
-\startsetups mmp:mmultiscripts:stop
- \stopsavingXMLelements
- \donefalse
- \scratchcounter\zerocount
- \dorecurse\XMLstacklevel {
- % watch the extra {}'s
- \ifdone
- \ifodd\scratchcounter
- _{\getXMLstackdata\recurselevel}
- \else
- ^{\getXMLstackdata\recurselevel}{}
- \fi
- \else
- \doif{\getXMLstackname\recurselevel}{mprescripts}{\donetrue{}}
- \fi
- \ifdone \advance\scratchcounter\plusone \fi
-
- }
- \donetrue
- \scratchcounter\zerocount
- \dorecurse\XMLstacklevel {
- \ifdone
- % watch the extra {}'s
- \ifcase\scratchcounter
- \getXMLstackdata\recurselevel
- \else\ifodd\scratchcounter
- _{\getXMLstackdata\recurselevel}
- \else
- ^{\getXMLstackdata\recurselevel}{}
- \fi\fi
- \fi
- \doif{\getXMLstackname\recurselevel}{mprescripts}{\donefalse}
- \ifdone \advance\scratchcounter\plusone \fi
- }
- \endgroup
-\stopsetups
-
-% experimental patches
-
-\startmoduletestsection
-
-\let\MMLdoL\donothing
-\let\MMLdoR\donothing
-
-\startsetups mmc:apply:start
- \begingroup
- \startsavingXMLelements
-\stopsetups
-
-\startsetups mmc:apply:stop
- \stopsavingXMLelements
- \MMLmathinner {
- \expanded{\doifinsetelse{\getXMLstackname\plusone}{\MMLcmainresetlist,\MMLctempresetlist}}
- \MMLcreset
- \donothing
- \ifcase\MMLapplydepth \else
- \doifXMLparelse{apply}{open} \donothing{\getXMLarguments{apply}{open="("}}% slow
- \doifXMLparelse{apply}{close}\donothing{\getXMLarguments{apply}{close=")"}}% slow
- \fi
- \advance\MMLapplydepth\plusone
- \begingroup
- \doifXMLparelse{apply}{open} % now inside the group
- {\edef\MMLdoL{\noexpand\left \XMLpar{apply}{open} {(}}
- \edef\MMLdoR{\noexpand\right\XMLpar{apply}{close}{)}}}
- {\let\MMLdoL\donothing
- \let\MMLdoR\donothing}
- \let\MMLctempresetlist\empty
- \doifelse {\getXMLstackname\plusone} {apply} {
- % <apply> <apply> ... </apply> <ci> .. </ci> </apply>
- \doifelseMMCfunctioninapply \plusone {plus,minus} {
-% [a]
- % yet incomplete and rather untested
- % <apply> <apply> <minus/> <tan/> <cos/> </apply> <ci>x</ci> </apply>
- } {
-% [b]
- \MMLcreset
- }
- \MMLdoL
- \getXMLstackdata\plusone
- \ifconditional\somepostponedMMLactions
- \postponedMMLactions
- \else
- \left(\MMLcreset\getXMLstackdata\plustwo\right)
- \fi
- \MMLdoR
- } {
- \doifelse {\getXMLstackname\plusone} {fn} {
-% [c]
- % \MMLdoL/R are to be taken care of in the next setup
- \directsetup{mmc:fn:apply}
- } {
- \doifelse {\getXMLstackname\plusone} {csymbol} {
- % \MMLdoL/R are to be taken care of in the next setup
-% [d]
- \directsetup{mmc:csymbol:apply}
- } {
- \doifelse {\getXMLstackname\plusone} {ci} {
-% [e]
- % \MMLdoL/R are to be taken care of in the next setup
- \directsetup{mmc:ci:apply}
- } {
-% [f]
- \MMLdoL
- \getXMLstackdata\plusone
- \MMLdoR
- }
- }
- }
- }
- \endgroup
- \advance\MMLapplydepth\minusone
- \directsetup{apply:flush}
- }
- \endgroup
-\stopsetups
-
-\startsetups mmc:fn:apply
- \begingroup
- \startsavingXMLelements
- \rawXMLstacktext\plusone % still on stack, no check, just fn content
- \stopsavingXMLelements
- \doifelse {\getXMLstackname\plusone} {ci} {
- \flattenXMLcontent{\getXMLstackdata\plusone}
- \doifsetupselse{mmc:fn:\flattenedXMLcontent} {
- % \MMLdoL/MMLdoR to be handled in plugin
- \global\defXMLstackdata\XMLfnoperator\plusone
- \expanded{\endgroup\noexpand\directsetup{mmc:fn:\flattenedXMLcontent}}
- } {
- \endgroup
- \MMLcreset
- \MMLdoL
- \getXMLstackdata\plusone
- \ifnum\XMLstacklevel>\plusone
- \getXMLentity{NegThinSpace}
- \left(\MMLcreset\flushXMLstackwith\plustwo{\MMLseparator,}\right)
- \fi
- \MMLdoR
- }
- } {
- \endgroup
- \MMLcreset
- \MMLdoL
- \getXMLstackdata\plusone
- \MMLdoR
- }
-\stopsetups
-
-\startsetups mmc:csymbol:apply
- \begingroup
- \defineXMLsave[csymbol][definitionURL=,encoding=]
- \rawXMLstackdata\plusone % was text % still on stack, no check, just attr test
- % \MMLdoL/MMLdoR to be handled in plugin
- \lowercasestring\XMLpar{csymbol}{definitionURL}{}\to\mmcSymbolURL
- \doifsetupselse{mmc:csymbol:\mmcSymbolURL} {
- \expanded{\endgroup\noexpand\directsetup{mmc:csymbol:\mmcSymbolURL}}
- } {
- \endgroup
- %\XMLval{mmc:cs}{\XMLop{encoding}}{\firstofoneargument}% fails when no content
- \XMLval{mmc:cs}{\XMLop{encoding}}{}
- }
-\stopsetups
-
-\defineXMLsingular
- [csymbol]
- [encoding=text,
- definitionURL=]
- {\directsetup{mmc:csymbol:apply:singular}}
-
-\startsetups mmc:csymbol:apply:singular
- \lowercasestring\XMLpar{csymbol}{definitionURL}{}\to\mmcSymbolURL
- \directsetup{mmc:csymbol:\mmcSymbolURL}
-\stopsetups
-
-\startsetups mmc:ci:apply
- \getXMLstackdata\plusone
- \ifnum\XMLstacklevel>\plusone
- \left(\MMLcreset\flushXMLstackwith\plustwo{\MMLseparator,}\right)
- \fi
-\stopsetups
-
-\def\xflushXMLstackwith#1#2#3#4% num bgroup egroup whatever
- {\dostepwiserecurse{#1}\XMLstacklevel\plusone
- {#2\relax
- \ifnum\recurselevel>#1\relax#4\fi
- \getXMLstackdata\recurselevel
- #3}}
-
-\def\xflushXMLstackfrom#1#2#3%
- {\dostepwiserecurse{#1}\XMLstacklevel\plusone
- {#2\getXMLstackdata\recurselevel#3}}
-
-% <apply><divide/>
-% <apply><minus/>
-% <apply><minus/><ci>b</ci></apply>
-% <apply><minus/><ci>b</ci></apply>
-% <apply><root/> <ci>a</ci></apply>
-% </apply>
-% <apply><minus/>
-% <apply><minus/><ci>b</ci><ci>b</ci></apply>
-% <apply><minus/><ci>b</ci></apply>
-% <apply><root/> <ci>a</ci></apply>
-% </apply>
-% </apply>
-
-\startsetups mmc:minus
- \doif \@@MMLsignreduction \v!yes {
- \setMMLcreset{fn,\MMLcfunctionlist}
- }
- \ifcase\XMLstacklevel
- \or
- % self
- \or
- -\getXMLstackdata\plustwo
- \else
- \dostepwiserecurse\plustwo\XMLstacklevel\plusone {
- \begingroup
- \doifelse {\getXMLstackname\recurselevel} {apply} {
- \ifnum\recurselevel=\plustwo
- \begingroup
- \dodoifelseMMCfunctioninapply \recurselevel {minus} {
- \ifnum\XMLstacklevel>\plustwo
- \endgroup
- \else
- \endgroup
- \MMLcreset
- \fi
- } {
- \endgroup
- }
- \else
- \doifelseMMCfunctioninapply \recurselevel {\MMLcfunctionlist,\MMLcconstructlist} {
- \MMLcreset
- } {
- }
- \fi
- } {
- }
- \getXMLstackdata\recurselevel
- \ifnum\recurselevel<\XMLstacklevel\relax
- -
- \fi
- \endgroup
- }
- \fi
-\stopsetups
-
-\stopmoduletestsection
-
-\stopmodule
-
-\protect \endinput
+\endinput
diff --git a/Master/texmf-dist/tex/context/base/x-newmmo.tex b/Master/texmf-dist/tex/context/base/x-newmmo.tex
index 076f3f82c8d..c3b56cc16b3 100644
--- a/Master/texmf-dist/tex/context/base/x-newmmo.tex
+++ b/Master/texmf-dist/tex/context/base/x-newmmo.tex
@@ -1,7 +1,7 @@
%D \module
%D [ file=x-newmmo,
%D version=2006.05.17,
-%D title=\CONTEXT\ XML Modules,
+%D title=\CONTEXT\ XML Macros,
%D subtitle=MathML Renderer/Open Math Extensions,
%D author=Hans Hagen,
%D date=\currentdate,
diff --git a/Master/texmf-dist/tex/context/base/x-newpml.tex b/Master/texmf-dist/tex/context/base/x-newpml.tex
index 30b52061006..d69231e3fdd 100644
--- a/Master/texmf-dist/tex/context/base/x-newpml.tex
+++ b/Master/texmf-dist/tex/context/base/x-newpml.tex
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context XML Macros (units)}
+\writestatus{loading}{ConTeXt XML Macros / Units}
\usemodule[newmml]
diff --git a/Master/texmf-dist/tex/context/base/x-physml.mkii b/Master/texmf-dist/tex/context/base/x-physml.mkii
new file mode 100644
index 00000000000..7f6a94642dd
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/x-physml.mkii
@@ -0,0 +1,16 @@
+%D \module
+%D [ file=m-physml,
+%D version=2001.09.04,
+%D title=\CONTEXT\ XML Modules,
+%D subtitle=Loading PHYSML Filters,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\usemodule[units] \useXMLfilter[pml,pmu]
+
+\endinput
diff --git a/Master/texmf-dist/tex/context/base/x-physml.mkiv b/Master/texmf-dist/tex/context/base/x-physml.mkiv
new file mode 100644
index 00000000000..508c70c52a5
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/x-physml.mkiv
@@ -0,0 +1,16 @@
+%D \module
+%D [ file=m-physml,
+%D version=2001.09.04,
+%D title=\CONTEXT\ XML Modules,
+%D subtitle=Loading PHYSML Filters,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+% todo
+
+\endinput
diff --git a/Master/texmf-dist/tex/context/base/x-physml.tex b/Master/texmf-dist/tex/context/base/x-physml.tex
index 7f6a94642dd..10768db5164 100644
--- a/Master/texmf-dist/tex/context/base/x-physml.tex
+++ b/Master/texmf-dist/tex/context/base/x-physml.tex
@@ -11,6 +11,6 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\usemodule[units] \useXMLfilter[pml,pmu]
+\loadmarkfile{x-physml}
\endinput
diff --git a/Master/texmf-dist/tex/context/base/x-res-01.tex b/Master/texmf-dist/tex/context/base/x-res-01.tex
index 14dcbc57032..dc14e70548b 100644
--- a/Master/texmf-dist/tex/context/base/x-res-01.tex
+++ b/Master/texmf-dist/tex/context/base/x-res-01.tex
@@ -255,8 +255,8 @@
background=color,backgroundcolor=white,color=]
{\externalfigure
[\XMLflush{rl:file}]
- [maxheight=80pt,frame=off,maxwidth=130pt,factor=max]}%
-% [factor=max]}%
+ %[maxheight=80pt,frame=off,maxwidth=130pt,factor=max]}%
+ [factor=max]}%
[GridPg]%
\let\FigWid\figurenaturalwidth
\let\FigHei\figurenaturalheight
diff --git a/Master/texmf-dist/tex/context/base/x-set-01.tex b/Master/texmf-dist/tex/context/base/x-set-01.tex
index 65fd7886550..75e1d43e24b 100644
--- a/Master/texmf-dist/tex/context/base/x-set-01.tex
+++ b/Master/texmf-dist/tex/context/base/x-set-01.tex
@@ -12,6 +12,10 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+%D This file is obsolete.
+
+\endinput
+
\unprotect
\def\SETUPnamespace{xmlns:cd="http://www.pragma-ade.com/commands"}
diff --git a/Master/texmf-dist/tex/context/base/x-set-02.tex b/Master/texmf-dist/tex/context/base/x-set-02.tex
index 0582aadc5c8..bb0b7583c33 100644
--- a/Master/texmf-dist/tex/context/base/x-set-02.tex
+++ b/Master/texmf-dist/tex/context/base/x-set-02.tex
@@ -15,9 +15,7 @@
\unprotect \bgroup \catcode`\<=\@@other
\def\setinterfacecomponent#1#2#3%
- {\doifelse{#3}\nointerfaceobject
- {\setgvalue{\string<#1\string:#2\string>}{#2}}
- {\setgvalue{\string<#1\string:#2\string>}{#3}}}
+ {\setgvalue{\string<#1\string:#2\string>}{#3}}
\gdef\getinterfacecomponent#1#2%
{\executeifdefined{\string<#1\string:#2\string>}{#2}}
@@ -27,9 +25,6 @@
\def\setinterfaceelement {\setinterfacecomponent{string}} % element
\def\setinterfacecommand {\setinterfacecomponent{string}} % command
-\input mult-con.tex
-\input mult-com.tex
-
-% we need to replace the y! by just the name
+\input mult-\userinterfacetag
\egroup \protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/x-set-11.mkii b/Master/texmf-dist/tex/context/base/x-set-11.mkii
index 397c2c71c33..434b1864793 100644
--- a/Master/texmf-dist/tex/context/base/x-set-11.mkii
+++ b/Master/texmf-dist/tex/context/base/x-set-11.mkii
@@ -31,7 +31,7 @@
\defineXMLenvironmentsave [cd:define] [name=]
{}
- {\setevalue{cd:def:\XMLop{name}}{\XMLflush{cd:define}}}
+ {\setxvalue{cd:def:\XMLop{name}}{\XMLflush{cd:define}}}
\defineXMLsingular [cd:resolve] [name=]
{\getvalue{cd:def:\XMLop{name}}}
diff --git a/Master/texmf-dist/tex/context/base/x-set-11.mkiv b/Master/texmf-dist/tex/context/base/x-set-11.mkiv
index 7e208a085e2..499d531e5f0 100644
--- a/Master/texmf-dist/tex/context/base/x-set-11.mkiv
+++ b/Master/texmf-dist/tex/context/base/x-set-11.mkiv
@@ -11,7 +11,7 @@
}
function document.setups.load(filename)
- filename = input.find_file(texmf.instance,filename) or ""
+ filename = resolvers.find_file(filename) or ""
if filename ~= "" and not document.setups.loaded[filename] then
local loaded = xml.load(filename)
if loaded then
@@ -78,7 +78,7 @@
\def\mkloadsetups #1{\ctxlua{document.setups.load("#1")}}
\def\mkshowsetup #1{\ctxlua{document.setups.show("#1")}}
-\def\mlshowusedsetups {\bgroup\enableXML\ctxlua{document.setups.showused()}\egroup}
+\def\mkshowusedsetups {\bgroup\enableXML\ctxlua{document.setups.showused()}\egroup}
\def\mkshowallsetups {\bgroup\enableXML\ctxlua{document.setups.showall ()}\egroup}
\def\mkshowsetup #1{\bgroup\enableXML\ctxlua{document.setups.show("#1")}\egroup}
diff --git a/Master/texmf-dist/tex/context/base/x-set-11.tex b/Master/texmf-dist/tex/context/base/x-set-11.tex
index 19ce18a75a5..6fcc7f9341c 100644
--- a/Master/texmf-dist/tex/context/base/x-set-11.tex
+++ b/Master/texmf-dist/tex/context/base/x-set-11.tex
@@ -571,7 +571,7 @@
\blank[\v!halfline]
\ignorespaces}
-\defineXMLenvironmentsave [cd:keywords]
+\defineXMLenvironmentsave [cd:keywords] [optional=no]
{}
{\startfirstSETUPcolumn{\showSETUPnumber}%
\doifelseXMLempty{cd:keywords}
diff --git a/Master/texmf-dist/tex/context/base/x-set-12.tex b/Master/texmf-dist/tex/context/base/x-set-12.tex
index 93055b86085..2659df0d86e 100644
--- a/Master/texmf-dist/tex/context/base/x-set-12.tex
+++ b/Master/texmf-dist/tex/context/base/x-set-12.tex
@@ -164,7 +164,7 @@
\startinterface english EN\stopinterface
\startinterface german DE\stopinterface
\startinterface french FR\stopinterface
- \startinterface czech CZ\stopinterface
+ \startinterface czech CS\stopinterface
\startinterface italian IT\stopinterface
\startinterface romanian RO\stopinterface
\stopsetups
@@ -174,7 +174,7 @@
\startinterface english \strut en / english \par \stopinterface
\startinterface german \strut de / deutsch \par \stopinterface
\startinterface french \strut fr / fran\c{c}ais \par \stopinterface
- \startinterface czech \strut cz / \v{c}esk\'y \par \stopinterface
+ \startinterface czech \strut cs / \v{c}esk\'y \par \stopinterface
\startinterface italian \strut it / italiano \par \stopinterface
\startinterface romanian \strut ro / rom\^{a}n\u{a} \par \stopinterface
\stopsetups
diff --git a/Master/texmf-dist/tex/context/base/xetx-chr.mkii b/Master/texmf-dist/tex/context/base/xetx-chr.mkii
new file mode 100644
index 00000000000..31f15a0cbac
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/xetx-chr.mkii
@@ -0,0 +1,1167 @@
+% filename : xetx-chr.tex
+% comment : generated by mtxrun --script chars --xtx
+% author : Hans Hagen, PRAGMA-ADE, Hasselt NL
+% copyright: PRAGMA ADE / ConTeXt Development Team
+% license : see context related readme files
+
+% named characters mapped onto utf (\\char is needed for accents)
+
+\def\textbackslash {\char"0005C } % REVERSE SOLIDUS: \
+\def\textasciicircum {\char"0005E } % CIRCUMFLEX ACCENT: ^
+\def\textunderscore {\char"0005F } % LOW LINE: _
+\def\textgrave {\char"00060 } % GRAVE ACCENT: `
+\def\idotaccent {\char"00069 } % LATIN SMALL LETTER I: i
+\def\textbraceleft {\char"0007B } % LEFT CURLY BRACKET: {
+\def\textbar {\char"0007C } % VERTICAL LINE: |
+\def\textbraceright {\char"0007D } % RIGHT CURLY BRACKET: }
+\def\textasciitilde {\char"0007E } % TILDE: ~
+\def\nobreakspace {\char"000A0 } % NO-BREAK SPACE:  
+\def\exclamdown {\char"000A1 } % INVERTED EXCLAMATION MARK: ¡
+\def\textcent {\char"000A2 } % CENT SIGN: ¢
+\def\textsterling {\char"000A3 } % POUND SIGN: £
+\def\textcurrency {\char"000A4 } % CURRENCY SIGN: ¤
+\def\textyen {\char"000A5 } % YEN SIGN: ¥
+\def\textbrokenbar {\char"000A6 } % BROKEN BAR: ¦
+\def\sectionmark {\char"000A7 } % SECTION SIGN: §
+\def\textdiaeresis {\char"000A8 } % DIAERESIS: ¨
+\def\copyright {\char"000A9 } % COPYRIGHT SIGN: ©
+\def\ordfeminine {\char"000AA } % FEMININE ORDINAL INDICATOR: ª
+\def\leftguillemot {\char"000AB } % LEFT-POINTING DOUBLE ANGLE QUOTATION MARK: «
+\def\textlognot {\char"000AC } % NOT SIGN: ¬
+\def\softhyphen {\char"000AD } % SOFT HYPHEN: ­
+\def\registered {\char"000AE } % REGISTERED SIGN: ®
+\def\textmacron {\char"000AF } % MACRON: ¯
+\def\textdegree {\char"000B0 } % DEGREE SIGN: °
+\def\textpm {\char"000B1 } % PLUS-MINUS SIGN: ±
+\def\twosuperior {\char"000B2 } % SUPERSCRIPT TWO: ²
+\def\threesuperior {\char"000B3 } % SUPERSCRIPT THREE: ³
+\def\textacute {\char"000B4 } % ACUTE ACCENT: ´
+\def\textmu {\char"000B5 } % MICRO SIGN: µ
+\def\paragraphmark {\char"000B6 } % PILCROW SIGN: ¶
+\def\periodcentered {\char"000B7 } % MIDDLE DOT: ·
+\def\textcedilla {\char"000B8 } % CEDILLA: ¸
+\def\onesuperior {\char"000B9 } % SUPERSCRIPT ONE: ¹
+\def\ordmasculine {\char"000BA } % MASCULINE ORDINAL INDICATOR: º
+\def\rightguillemot {\char"000BB } % RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK: »
+\def\onequarter {\char"000BC } % VULGAR FRACTION ONE QUARTER: ¼
+\def\onehalf {\char"000BD } % VULGAR FRACTION ONE HALF: ½
+\def\threequarter {\char"000BE } % VULGAR FRACTION THREE QUARTERS: ¾
+\def\questiondown {\char"000BF } % INVERTED QUESTION MARK: ¿
+\def\Agrave {\char"000C0 } % LATIN CAPITAL LETTER A WITH GRAVE: À
+\def\Aacute {\char"000C1 } % LATIN CAPITAL LETTER A WITH ACUTE: Á
+\def\Acircumflex {\char"000C2 } % LATIN CAPITAL LETTER A WITH CIRCUMFLEX: Â
+\def\Atilde {\char"000C3 } % LATIN CAPITAL LETTER A WITH TILDE: Ã
+\def\Adiaeresis {\char"000C4 } % LATIN CAPITAL LETTER A WITH DIAERESIS: Ä
+\def\Aring {\char"000C5 } % LATIN CAPITAL LETTER A WITH RING ABOVE: Å
+\def\AEligature {\char"000C6 } % LATIN CAPITAL LETTER AE: Æ
+\def\Ccedilla {\char"000C7 } % LATIN CAPITAL LETTER C WITH CEDILLA: Ç
+\def\Egrave {\char"000C8 } % LATIN CAPITAL LETTER E WITH GRAVE: È
+\def\Eacute {\char"000C9 } % LATIN CAPITAL LETTER E WITH ACUTE: É
+\def\Ecircumflex {\char"000CA } % LATIN CAPITAL LETTER E WITH CIRCUMFLEX: Ê
+\def\Ediaeresis {\char"000CB } % LATIN CAPITAL LETTER E WITH DIAERESIS: Ë
+\def\Igrave {\char"000CC } % LATIN CAPITAL LETTER I WITH GRAVE: Ì
+\def\Iacute {\char"000CD } % LATIN CAPITAL LETTER I WITH ACUTE: Í
+\def\Icircumflex {\char"000CE } % LATIN CAPITAL LETTER I WITH CIRCUMFLEX: Î
+\def\Idiaeresis {\char"000CF } % LATIN CAPITAL LETTER I WITH DIAERESIS: Ï
+\def\Eth {\char"000D0 } % LATIN CAPITAL LETTER ETH: Ð
+\def\Ntilde {\char"000D1 } % LATIN CAPITAL LETTER N WITH TILDE: Ñ
+\def\Ograve {\char"000D2 } % LATIN CAPITAL LETTER O WITH GRAVE: Ò
+\def\Oacute {\char"000D3 } % LATIN CAPITAL LETTER O WITH ACUTE: Ó
+\def\Ocircumflex {\char"000D4 } % LATIN CAPITAL LETTER O WITH CIRCUMFLEX: Ô
+\def\Otilde {\char"000D5 } % LATIN CAPITAL LETTER O WITH TILDE: Õ
+\def\Odiaeresis {\char"000D6 } % LATIN CAPITAL LETTER O WITH DIAERESIS: Ö
+\def\textmultiply {\char"000D7 } % MULTIPLICATION SIGN: ×
+\def\Ostroke {\char"000D8 } % LATIN CAPITAL LETTER O WITH STROKE: Ø
+\def\Ugrave {\char"000D9 } % LATIN CAPITAL LETTER U WITH GRAVE: Ù
+\def\Uacute {\char"000DA } % LATIN CAPITAL LETTER U WITH ACUTE: Ú
+\def\Ucircumflex {\char"000DB } % LATIN CAPITAL LETTER U WITH CIRCUMFLEX: Û
+\def\Udiaeresis {\char"000DC } % LATIN CAPITAL LETTER U WITH DIAERESIS: Ü
+\def\Yacute {\char"000DD } % LATIN CAPITAL LETTER Y WITH ACUTE: Ý
+\def\Thorn {\char"000DE } % LATIN CAPITAL LETTER THORN: Þ
+\def\ssharp {\char"000DF } % LATIN SMALL LETTER SHARP S: ß
+\def\agrave {\char"000E0 } % LATIN SMALL LETTER A WITH GRAVE: à
+\def\aacute {\char"000E1 } % LATIN SMALL LETTER A WITH ACUTE: á
+\def\acircumflex {\char"000E2 } % LATIN SMALL LETTER A WITH CIRCUMFLEX: â
+\def\atilde {\char"000E3 } % LATIN SMALL LETTER A WITH TILDE: ã
+\def\adiaeresis {\char"000E4 } % LATIN SMALL LETTER A WITH DIAERESIS: ä
+\def\aring {\char"000E5 } % LATIN SMALL LETTER A WITH RING ABOVE: å
+\def\aeligature {\char"000E6 } % LATIN SMALL LETTER AE: æ
+\def\ccedilla {\char"000E7 } % LATIN SMALL LETTER C WITH CEDILLA: ç
+\def\egrave {\char"000E8 } % LATIN SMALL LETTER E WITH GRAVE: è
+\def\eacute {\char"000E9 } % LATIN SMALL LETTER E WITH ACUTE: é
+\def\ecircumflex {\char"000EA } % LATIN SMALL LETTER E WITH CIRCUMFLEX: ê
+\def\ediaeresis {\char"000EB } % LATIN SMALL LETTER E WITH DIAERESIS: ë
+\def\igrave {\char"000EC } % LATIN SMALL LETTER I WITH GRAVE: ì
+\def\iacute {\char"000ED } % LATIN SMALL LETTER I WITH ACUTE: í
+\def\icircumflex {\char"000EE } % LATIN SMALL LETTER I WITH CIRCUMFLEX: î
+\def\idiaeresis {\char"000EF } % LATIN SMALL LETTER I WITH DIAERESIS: ï
+\def\ntilde {\char"000F1 } % LATIN SMALL LETTER N WITH TILDE: ñ
+\def\ograve {\char"000F2 } % LATIN SMALL LETTER O WITH GRAVE: ò
+\def\oacute {\char"000F3 } % LATIN SMALL LETTER O WITH ACUTE: ó
+\def\ocircumflex {\char"000F4 } % LATIN SMALL LETTER O WITH CIRCUMFLEX: ô
+\def\otilde {\char"000F5 } % LATIN SMALL LETTER O WITH TILDE: õ
+\def\odiaeresis {\char"000F6 } % LATIN SMALL LETTER O WITH DIAERESIS: ö
+\def\textdiv {\char"000F7 } % DIVISION SIGN: ÷
+\def\ostroke {\char"000F8 } % LATIN SMALL LETTER O WITH STROKE: ø
+\def\ugrave {\char"000F9 } % LATIN SMALL LETTER U WITH GRAVE: ù
+\def\uacute {\char"000FA } % LATIN SMALL LETTER U WITH ACUTE: ú
+\def\ucircumflex {\char"000FB } % LATIN SMALL LETTER U WITH CIRCUMFLEX: û
+\def\udiaeresis {\char"000FC } % LATIN SMALL LETTER U WITH DIAERESIS: ü
+\def\yacute {\char"000FD } % LATIN SMALL LETTER Y WITH ACUTE: ý
+\def\thorn {\char"000FE } % LATIN SMALL LETTER THORN: þ
+\def\ydiaeresis {\char"000FF } % LATIN SMALL LETTER Y WITH DIAERESIS: ÿ
+\def\Amacron {\char"00100 } % LATIN CAPITAL LETTER A WITH MACRON: Ā
+\def\amacron {\char"00101 } % LATIN SMALL LETTER A WITH MACRON: ā
+\def\Abreve {\char"00102 } % LATIN CAPITAL LETTER A WITH BREVE: Ă
+\def\abreve {\char"00103 } % LATIN SMALL LETTER A WITH BREVE: ă
+\def\Aogonek {\char"00104 } % LATIN CAPITAL LETTER A WITH OGONEK: Ą
+\def\aogonek {\char"00105 } % LATIN SMALL LETTER A WITH OGONEK: ą
+\def\Cacute {\char"00106 } % LATIN CAPITAL LETTER C WITH ACUTE: Ć
+\def\cacute {\char"00107 } % LATIN SMALL LETTER C WITH ACUTE: ć
+\def\Ccircumflex {\char"00108 } % LATIN CAPITAL LETTER C WITH CIRCUMFLEX: Ĉ
+\def\ccircumflex {\char"00109 } % LATIN SMALL LETTER C WITH CIRCUMFLEX: ĉ
+\def\Cdotaccent {\char"0010A } % LATIN CAPITAL LETTER C WITH DOT ABOVE: Ċ
+\def\cdotaccent {\char"0010B } % LATIN SMALL LETTER C WITH DOT ABOVE: ċ
+\def\Ccaron {\char"0010C } % LATIN CAPITAL LETTER C WITH CARON: Č
+\def\ccaron {\char"0010D } % LATIN SMALL LETTER C WITH CARON: č
+\def\Dcaron {\char"0010E } % LATIN CAPITAL LETTER D WITH CARON: Ď
+\def\dcaron {\char"0010F } % LATIN SMALL LETTER D WITH CARON: ď
+\def\Dstroke {\char"00110 } % LATIN CAPITAL LETTER D WITH STROKE: Đ
+\def\dstroke {\char"00111 } % LATIN SMALL LETTER D WITH STROKE: đ
+\def\Emacron {\char"00112 } % LATIN CAPITAL LETTER E WITH MACRON: Ē
+\def\emacron {\char"00113 } % LATIN SMALL LETTER E WITH MACRON: ē
+\def\Ebreve {\char"00114 } % LATIN CAPITAL LETTER E WITH BREVE: Ĕ
+\def\ebreve {\char"00115 } % LATIN SMALL LETTER E WITH BREVE: ĕ
+\def\Edotaccent {\char"00116 } % LATIN CAPITAL LETTER E WITH DOT ABOVE: Ė
+\def\edotaccent {\char"00117 } % LATIN SMALL LETTER E WITH DOT ABOVE: ė
+\def\Eogonek {\char"00118 } % LATIN CAPITAL LETTER E WITH OGONEK: Ę
+\def\eogonek {\char"00119 } % LATIN SMALL LETTER E WITH OGONEK: ę
+\def\Ecaron {\char"0011A } % LATIN CAPITAL LETTER E WITH CARON: Ě
+\def\ecaron {\char"0011B } % LATIN SMALL LETTER E WITH CARON: ě
+\def\Gcircumflex {\char"0011C } % LATIN CAPITAL LETTER G WITH CIRCUMFLEX: Ĝ
+\def\gcircumflex {\char"0011D } % LATIN SMALL LETTER G WITH CIRCUMFLEX: ĝ
+\def\Gbreve {\char"0011E } % LATIN CAPITAL LETTER G WITH BREVE: Ğ
+\def\gbreve {\char"0011F } % LATIN SMALL LETTER G WITH BREVE: ğ
+\def\Gdotaccent {\char"00120 } % LATIN CAPITAL LETTER G WITH DOT ABOVE: Ġ
+\def\gdotaccent {\char"00121 } % LATIN SMALL LETTER G WITH DOT ABOVE: ġ
+\def\Gcommaaccent {\char"00122 } % LATIN CAPITAL LETTER G WITH CEDILLA: Ģ
+\def\gcommaaccent {\char"00123 } % LATIN SMALL LETTER G WITH CEDILLA: ģ
+\def\Hcircumflex {\char"00124 } % LATIN CAPITAL LETTER H WITH CIRCUMFLEX: Ĥ
+\def\hcircumflex {\char"00125 } % LATIN SMALL LETTER H WITH CIRCUMFLEX: ĥ
+\def\Hstroke {\char"00126 } % LATIN CAPITAL LETTER H WITH STROKE: Ħ
+\def\hstroke {\char"00127 } % LATIN SMALL LETTER H WITH STROKE: ħ
+\def\Itilde {\char"00128 } % LATIN CAPITAL LETTER I WITH TILDE: Ĩ
+\def\itilde {\char"00129 } % LATIN SMALL LETTER I WITH TILDE: ĩ
+\def\Imacron {\char"0012A } % LATIN CAPITAL LETTER I WITH MACRON: Ī
+\def\imacron {\char"0012B } % LATIN SMALL LETTER I WITH MACRON: ī
+\def\Ibreve {\char"0012C } % LATIN CAPITAL LETTER I WITH BREVE: Ĭ
+\def\ibreve {\char"0012D } % LATIN SMALL LETTER I WITH BREVE: ĭ
+\def\Iogonek {\char"0012E } % LATIN CAPITAL LETTER I WITH OGONEK: Į
+\def\iogonek {\char"0012F } % LATIN SMALL LETTER I WITH OGONEK: į
+\def\Idotaccent {\char"00130 } % LATIN CAPITAL LETTER I WITH DOT ABOVE: İ
+\def\dotlessi {\char"00131 } % LATIN SMALL LETTER DOTLESS I: ı
+\def\IJligature {\char"00132 } % LATIN CAPITAL LIGATURE IJ: IJ
+\def\ijligature {\char"00133 } % LATIN SMALL LIGATURE IJ: ij
+\def\Jcircumflex {\char"00134 } % LATIN CAPITAL LETTER J WITH CIRCUMFLEX: Ĵ
+\def\jcircumflex {\char"00135 } % LATIN SMALL LETTER J WITH CIRCUMFLEX: ĵ
+\def\Kcommaaccent {\char"00136 } % LATIN CAPITAL LETTER K WITH CEDILLA: Ķ
+\def\kcommaaccent {\char"00137 } % LATIN SMALL LETTER K WITH CEDILLA: ķ
+\def\kkra {\char"00138 } % LATIN SMALL LETTER KRA: ĸ
+\def\Lacute {\char"00139 } % LATIN CAPITAL LETTER L WITH ACUTE: Ĺ
+\def\lacute {\char"0013A } % LATIN SMALL LETTER L WITH ACUTE: ĺ
+\def\Lcommaaccent {\char"0013B } % LATIN CAPITAL LETTER L WITH CEDILLA: Ļ
+\def\lcommaaccent {\char"0013C } % LATIN SMALL LETTER L WITH CEDILLA: ļ
+\def\Lcaron {\char"0013D } % LATIN CAPITAL LETTER L WITH CARON: Ľ
+\def\lcaron {\char"0013E } % LATIN SMALL LETTER L WITH CARON: ľ
+\def\Ldotmiddle {\char"0013F } % LATIN CAPITAL LETTER L WITH MIDDLE DOT: Ŀ
+\def\ldotmiddle {\char"00140 } % LATIN SMALL LETTER L WITH MIDDLE DOT: ŀ
+\def\Lstroke {\char"00141 } % LATIN CAPITAL LETTER L WITH STROKE: Ł
+\def\lstroke {\char"00142 } % LATIN SMALL LETTER L WITH STROKE: ł
+\def\Nacute {\char"00143 } % LATIN CAPITAL LETTER N WITH ACUTE: Ń
+\def\nacute {\char"00144 } % LATIN SMALL LETTER N WITH ACUTE: ń
+\def\Ncommaaccent {\char"00145 } % LATIN CAPITAL LETTER N WITH CEDILLA: Ņ
+\def\ncommaaccent {\char"00146 } % LATIN SMALL LETTER N WITH CEDILLA: ņ
+\def\Ncaron {\char"00147 } % LATIN CAPITAL LETTER N WITH CARON: Ň
+\def\ncaron {\char"00148 } % LATIN SMALL LETTER N WITH CARON: ň
+\def\napostrophe {\char"00149 } % LATIN SMALL LETTER N PRECEDED BY APOSTROPHE: ʼn
+\def\Neng {\char"0014A } % LATIN CAPITAL LETTER ENG: Ŋ
+\def\neng {\char"0014B } % LATIN SMALL LETTER ENG: ŋ
+\def\Omacron {\char"0014C } % LATIN CAPITAL LETTER O WITH MACRON: Ō
+\def\omacron {\char"0014D } % LATIN SMALL LETTER O WITH MACRON: ō
+\def\Obreve {\char"0014E } % LATIN CAPITAL LETTER O WITH BREVE: Ŏ
+\def\obreve {\char"0014F } % LATIN SMALL LETTER O WITH BREVE: ŏ
+\def\Ohungarumlaut {\char"00150 } % LATIN CAPITAL LETTER O WITH DOUBLE ACUTE: Ő
+\def\ohungarumlaut {\char"00151 } % LATIN SMALL LETTER O WITH DOUBLE ACUTE: ő
+\def\OEligature {\char"00152 } % LATIN CAPITAL LIGATURE OE: Œ
+\def\oeligature {\char"00153 } % LATIN SMALL LIGATURE OE: œ
+\def\Racute {\char"00154 } % LATIN CAPITAL LETTER R WITH ACUTE: Ŕ
+\def\racute {\char"00155 } % LATIN SMALL LETTER R WITH ACUTE: ŕ
+\def\Rcommaaccent {\char"00156 } % LATIN CAPITAL LETTER R WITH CEDILLA: Ŗ
+\def\rcommaaccent {\char"00157 } % LATIN SMALL LETTER R WITH CEDILLA: ŗ
+\def\Rcaron {\char"00158 } % LATIN CAPITAL LETTER R WITH CARON: Ř
+\def\rcaron {\char"00159 } % LATIN SMALL LETTER R WITH CARON: ř
+\def\Sacute {\char"0015A } % LATIN CAPITAL LETTER S WITH ACUTE: Ś
+\def\sacute {\char"0015B } % LATIN SMALL LETTER S WITH ACUTE: ś
+\def\Scircumflex {\char"0015C } % LATIN CAPITAL LETTER S WITH CIRCUMFLEX: Ŝ
+\def\scircumflex {\char"0015D } % LATIN SMALL LETTER S WITH CIRCUMFLEX: ŝ
+\def\Scedilla {\char"0015E } % LATIN CAPITAL LETTER S WITH CEDILLA: Ş
+\def\scedilla {\char"0015F } % LATIN SMALL LETTER S WITH CEDILLA: ş
+\def\Scaron {\char"00160 } % LATIN CAPITAL LETTER S WITH CARON: Š
+\def\scaron {\char"00161 } % LATIN SMALL LETTER S WITH CARON: š
+\def\Tcedilla {\char"00162 } % LATIN CAPITAL LETTER T WITH CEDILLA: Ţ
+\def\tcedilla {\char"00163 } % LATIN SMALL LETTER T WITH CEDILLA: ţ
+\def\Tcaron {\char"00164 } % LATIN CAPITAL LETTER T WITH CARON: Ť
+\def\tcaron {\char"00165 } % LATIN SMALL LETTER T WITH CARON: ť
+\def\Tstroke {\char"00166 } % LATIN CAPITAL LETTER T WITH STROKE: Ŧ
+\def\tstroke {\char"00167 } % LATIN SMALL LETTER T WITH STROKE: ŧ
+\def\Utilde {\char"00168 } % LATIN CAPITAL LETTER U WITH TILDE: Ũ
+\def\utilde {\char"00169 } % LATIN SMALL LETTER U WITH TILDE: ũ
+\def\Umacron {\char"0016A } % LATIN CAPITAL LETTER U WITH MACRON: Ū
+\def\umacron {\char"0016B } % LATIN SMALL LETTER U WITH MACRON: ū
+\def\Ubreve {\char"0016C } % LATIN CAPITAL LETTER U WITH BREVE: Ŭ
+\def\ubreve {\char"0016D } % LATIN SMALL LETTER U WITH BREVE: ŭ
+\def\Uring {\char"0016E } % LATIN CAPITAL LETTER U WITH RING ABOVE: Ů
+\def\uring {\char"0016F } % LATIN SMALL LETTER U WITH RING ABOVE: ů
+\def\Uhungarumlaut {\char"00170 } % LATIN CAPITAL LETTER U WITH DOUBLE ACUTE: Ű
+\def\uhungarumlaut {\char"00171 } % LATIN SMALL LETTER U WITH DOUBLE ACUTE: ű
+\def\Uogonek {\char"00172 } % LATIN CAPITAL LETTER U WITH OGONEK: Ų
+\def\uogonek {\char"00173 } % LATIN SMALL LETTER U WITH OGONEK: ų
+\def\Wcircumflex {\char"00174 } % LATIN CAPITAL LETTER W WITH CIRCUMFLEX: Ŵ
+\def\wcircumflex {\char"00175 } % LATIN SMALL LETTER W WITH CIRCUMFLEX: ŵ
+\def\Ycircumflex {\char"00176 } % LATIN CAPITAL LETTER Y WITH CIRCUMFLEX: Ŷ
+\def\ycircumflex {\char"00177 } % LATIN SMALL LETTER Y WITH CIRCUMFLEX: ŷ
+\def\Ydiaeresis {\char"00178 } % LATIN CAPITAL LETTER Y WITH DIAERESIS: Ÿ
+\def\Zacute {\char"00179 } % LATIN CAPITAL LETTER Z WITH ACUTE: Ź
+\def\zacute {\char"0017A } % LATIN SMALL LETTER Z WITH ACUTE: ź
+\def\Zdotaccent {\char"0017B } % LATIN CAPITAL LETTER Z WITH DOT ABOVE: Ż
+\def\zdotaccent {\char"0017C } % LATIN SMALL LETTER Z WITH DOT ABOVE: ż
+\def\Zcaron {\char"0017D } % LATIN CAPITAL LETTER Z WITH CARON: Ž
+\def\zcaron {\char"0017E } % LATIN SMALL LETTER Z WITH CARON: ž
+\def\slong {\char"0017F } % LATIN SMALL LETTER LONG S: ſ
+\def\bstroke {\char"00180 } % LATIN SMALL LETTER B WITH STROKE: ƀ
+\def\Bhook {\char"00181 } % LATIN CAPITAL LETTER B WITH HOOK: Ɓ
+\def\Chook {\char"00187 } % LATIN CAPITAL LETTER C WITH HOOK: Ƈ
+\def\chook {\char"00188 } % LATIN SMALL LETTER C WITH HOOK: ƈ
+\def\Dafrican {\char"00189 } % LATIN CAPITAL LETTER AFRICAN D: Ɖ
+\def\Dhook {\char"0018A } % LATIN CAPITAL LETTER D WITH HOOK: Ɗ
+\def\Schwa {\char"0018F } % LATIN CAPITAL LETTER SCHWA: Ə
+\def\Fhook {\char"00191 } % LATIN CAPITAL LETTER F WITH HOOK: Ƒ
+\def\fhook {\char"00192 } % LATIN SMALL LETTER F WITH HOOK: ƒ
+\def\Ghook {\char"00193 } % LATIN CAPITAL LETTER G WITH HOOK: Ɠ
+\def\Istroke {\char"00197 } % LATIN CAPITAL LETTER I WITH STROKE: Ɨ
+\def\Khook {\char"00198 } % LATIN CAPITAL LETTER K WITH HOOK: Ƙ
+\def\khook {\char"00199 } % LATIN SMALL LETTER K WITH HOOK: ƙ
+\def\lbar {\char"0019A } % LATIN SMALL LETTER L WITH BAR: ƚ
+\def\Ohorn {\char"001A0 } % LATIN CAPITAL LETTER O WITH HORN: Ơ
+\def\ohorn {\char"001A1 } % LATIN SMALL LETTER O WITH HORN: ơ
+\def\Phook {\char"001A4 } % LATIN CAPITAL LETTER P WITH HOOK: Ƥ
+\def\phook {\char"001A5 } % LATIN SMALL LETTER P WITH HOOK: ƥ
+\def\Thook {\char"001AC } % LATIN CAPITAL LETTER T WITH HOOK: Ƭ
+\def\thook {\char"001AD } % LATIN SMALL LETTER T WITH HOOK: ƭ
+\def\Uhorn {\char"001AF } % LATIN CAPITAL LETTER U WITH HORN: Ư
+\def\uhorn {\char"001B0 } % LATIN SMALL LETTER U WITH HORN: ư
+\def\Uhook {\char"001B2 } % LATIN CAPITAL LETTER V WITH HOOK: Ʋ
+\def\Yhook {\char"001B3 } % LATIN CAPITAL LETTER Y WITH HOOK: Ƴ
+\def\yhook {\char"001B4 } % LATIN SMALL LETTER Y WITH HOOK: ƴ
+\def\Zstroke {\char"001B5 } % LATIN CAPITAL LETTER Z WITH STROKE: Ƶ
+\def\zstroke {\char"001B6 } % LATIN SMALL LETTER Z WITH STROKE: ƶ
+\def\DZcaronligature {\char"001C4 } % LATIN CAPITAL LETTER DZ WITH CARON: DŽ
+\def\Dzcaronligature {\char"001C5 } % LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON: Dž
+\def\dzcaronligature {\char"001C6 } % LATIN SMALL LETTER DZ WITH CARON: dž
+\def\LJligature {\char"001C7 } % LATIN CAPITAL LETTER LJ: LJ
+\def\Ljligature {\char"001C8 } % LATIN CAPITAL LETTER L WITH SMALL LETTER J: Lj
+\def\ljligature {\char"001C9 } % LATIN SMALL LETTER LJ: lj
+\def\NJligature {\char"001CA } % LATIN CAPITAL LETTER NJ: NJ
+\def\Njligature {\char"001CB } % LATIN CAPITAL LETTER N WITH SMALL LETTER J: Nj
+\def\njligature {\char"001CC } % LATIN SMALL LETTER NJ: nj
+\def\Acaron {\char"001CD } % LATIN CAPITAL LETTER A WITH CARON: Ǎ
+\def\acaron {\char"001CE } % LATIN SMALL LETTER A WITH CARON: ǎ
+\def\Icaron {\char"001CF } % LATIN CAPITAL LETTER I WITH CARON: Ǐ
+\def\icaron {\char"001D0 } % LATIN SMALL LETTER I WITH CARON: ǐ
+\def\Ocaron {\char"001D1 } % LATIN CAPITAL LETTER O WITH CARON: Ǒ
+\def\ocaron {\char"001D2 } % LATIN SMALL LETTER O WITH CARON: ǒ
+\def\Ucaron {\char"001D3 } % LATIN CAPITAL LETTER U WITH CARON: Ǔ
+\def\ucaron {\char"001D4 } % LATIN SMALL LETTER U WITH CARON: ǔ
+\def\Udiaeresismacron {\char"001D5 } % LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON: Ǖ
+\def\udiaeresismacron {\char"001D6 } % LATIN SMALL LETTER U WITH DIAERESIS AND MACRON: ǖ
+\def\Udiaeresisacute {\char"001D7 } % LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE: Ǘ
+\def\udiaeresisacute {\char"001D8 } % LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE: ǘ
+\def\Udiaeresiscaron {\char"001D9 } % LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON: Ǚ
+\def\udiaeresiscaron {\char"001DA } % LATIN SMALL LETTER U WITH DIAERESIS AND CARON: ǚ
+\def\Udiaeresisgrave {\char"001DB } % LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE: Ǜ
+\def\udiaeresisgrave {\char"001DC } % LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE: ǜ
+\def\Adiaeresismacron {\char"001DE } % LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON: Ǟ
+\def\adiaeresismacron {\char"001DF } % LATIN SMALL LETTER A WITH DIAERESIS AND MACRON: ǟ
+\def\Adotaccentmacron {\char"001E0 } % LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON: Ǡ
+\def\adotaccentmacron {\char"001E1 } % LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON: ǡ
+\def\AEmacron {\char"001E2 } % LATIN CAPITAL LETTER AE WITH MACRON: Ǣ
+\def\aemacron {\char"001E3 } % LATIN SMALL LETTER AE WITH MACRON: ǣ
+\def\Gstroke {\char"001E4 } % LATIN CAPITAL LETTER G WITH STROKE: Ǥ
+\def\gstroke {\char"001E5 } % LATIN SMALL LETTER G WITH STROKE: ǥ
+\def\Gcaron {\char"001E6 } % LATIN CAPITAL LETTER G WITH CARON: Ǧ
+\def\gcaron {\char"001E7 } % LATIN SMALL LETTER G WITH CARON: ǧ
+\def\Kcaron {\char"001E8 } % LATIN CAPITAL LETTER K WITH CARON: Ǩ
+\def\kcaron {\char"001E9 } % LATIN SMALL LETTER K WITH CARON: ǩ
+\def\Oogonek {\char"001EA } % LATIN CAPITAL LETTER O WITH OGONEK: Ǫ
+\def\oogonek {\char"001EB } % LATIN SMALL LETTER O WITH OGONEK: ǫ
+\def\Oogonekmacron {\char"001EC } % LATIN CAPITAL LETTER O WITH OGONEK AND MACRON: Ǭ
+\def\oogonekmacron {\char"001ED } % LATIN SMALL LETTER O WITH OGONEK AND MACRON: ǭ
+\def\jcaron {\char"001F0 } % LATIN SMALL LETTER J WITH CARON: ǰ
+\def\DZligature {\char"001F1 } % LATIN CAPITAL LETTER DZ: DZ
+\def\Dzligature {\char"001F2 } % LATIN CAPITAL LETTER D WITH SMALL LETTER Z: Dz
+\def\dzligature {\char"001F3 } % LATIN SMALL LETTER DZ: dz
+\def\Gacute {\char"001F4 } % LATIN CAPITAL LETTER G WITH ACUTE: Ǵ
+\def\gacute {\char"001F5 } % LATIN SMALL LETTER G WITH ACUTE: ǵ
+\def\Ngrave {\char"001F8 } % LATIN CAPITAL LETTER N WITH GRAVE: Ǹ
+\def\ngrave {\char"001F9 } % LATIN SMALL LETTER N WITH GRAVE: ǹ
+\def\Aringacute {\char"001FA } % LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE: Ǻ
+\def\aringacute {\char"001FB } % LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE: ǻ
+\def\AEacute {\char"001FC } % LATIN CAPITAL LETTER AE WITH ACUTE: Ǽ
+\def\aeacute {\char"001FD } % LATIN SMALL LETTER AE WITH ACUTE: ǽ
+\def\Ostrokeacute {\char"001FE } % LATIN CAPITAL LETTER O WITH STROKE AND ACUTE: Ǿ
+\def\ostrokeacute {\char"001FF } % LATIN SMALL LETTER O WITH STROKE AND ACUTE: ǿ
+\def\Adoublegrave {\char"00200 } % LATIN CAPITAL LETTER A WITH DOUBLE GRAVE: Ȁ
+\def\adoublegrave {\char"00201 } % LATIN SMALL LETTER A WITH DOUBLE GRAVE: ȁ
+\def\Ainvertedbreve {\char"00202 } % LATIN CAPITAL LETTER A WITH INVERTED BREVE: Ȃ
+\def\ainvertedbreve {\char"00203 } % LATIN SMALL LETTER A WITH INVERTED BREVE: ȃ
+\def\Edoublegrave {\char"00204 } % LATIN CAPITAL LETTER E WITH DOUBLE GRAVE: Ȅ
+\def\edoublegrave {\char"00205 } % LATIN SMALL LETTER E WITH DOUBLE GRAVE: ȅ
+\def\Einvertedbreve {\char"00206 } % LATIN CAPITAL LETTER E WITH INVERTED BREVE: Ȇ
+\def\einvertedbreve {\char"00207 } % LATIN SMALL LETTER E WITH INVERTED BREVE: ȇ
+\def\Idoublegrave {\char"00208 } % LATIN CAPITAL LETTER I WITH DOUBLE GRAVE: Ȉ
+\def\idoublegrave {\char"00209 } % LATIN SMALL LETTER I WITH DOUBLE GRAVE: ȉ
+\def\Iinvertedbreve {\char"0020A } % LATIN CAPITAL LETTER I WITH INVERTED BREVE: Ȋ
+\def\iinvertedbreve {\char"0020B } % LATIN SMALL LETTER I WITH INVERTED BREVE: ȋ
+\def\Odoublegrave {\char"0020C } % LATIN CAPITAL LETTER O WITH DOUBLE GRAVE: Ȍ
+\def\odoublegrave {\char"0020D } % LATIN SMALL LETTER O WITH DOUBLE GRAVE: ȍ
+\def\Oinvertedbreve {\char"0020E } % LATIN CAPITAL LETTER O WITH INVERTED BREVE: Ȏ
+\def\oinvertedbreve {\char"0020F } % LATIN SMALL LETTER O WITH INVERTED BREVE: ȏ
+\def\Rdoublegrave {\char"00210 } % LATIN CAPITAL LETTER R WITH DOUBLE GRAVE: Ȑ
+\def\rdoublegrave {\char"00211 } % LATIN SMALL LETTER R WITH DOUBLE GRAVE: ȑ
+\def\Rinvertedbreve {\char"00212 } % LATIN CAPITAL LETTER R WITH INVERTED BREVE: Ȓ
+\def\rinvertedbreve {\char"00213 } % LATIN SMALL LETTER R WITH INVERTED BREVE: ȓ
+\def\Udoublegrave {\char"00214 } % LATIN CAPITAL LETTER U WITH DOUBLE GRAVE: Ȕ
+\def\udoublegrave {\char"00215 } % LATIN SMALL LETTER U WITH DOUBLE GRAVE: ȕ
+\def\Uinvertedbreve {\char"00216 } % LATIN CAPITAL LETTER U WITH INVERTED BREVE: Ȗ
+\def\uinvertedbreve {\char"00217 } % LATIN SMALL LETTER U WITH INVERTED BREVE: ȗ
+\def\Scommaaccent {\char"00218 } % LATIN CAPITAL LETTER S WITH COMMA BELOW: Ș
+\def\scommaaccent {\char"00219 } % LATIN SMALL LETTER S WITH COMMA BELOW: ș
+\def\Tcommaaccent {\char"0021A } % LATIN CAPITAL LETTER T WITH COMMA BELOW: Ț
+\def\tcommaaccent {\char"0021B } % LATIN SMALL LETTER T WITH COMMA BELOW: ț
+\def\Hcaron {\char"0021E } % LATIN CAPITAL LETTER H WITH CARON: Ȟ
+\def\hcaron {\char"0021F } % LATIN SMALL LETTER H WITH CARON: ȟ
+\def\dcurl {\char"00221 } % LATIN SMALL LETTER D WITH CURL: ȡ
+\def\Zhook {\char"00224 } % LATIN CAPITAL LETTER Z WITH HOOK: Ȥ
+\def\zhook {\char"00225 } % LATIN SMALL LETTER Z WITH HOOK: ȥ
+\def\Adotaccent {\char"00226 } % LATIN CAPITAL LETTER A WITH DOT ABOVE: Ȧ
+\def\adotaccent {\char"00227 } % LATIN SMALL LETTER A WITH DOT ABOVE: ȧ
+\def\Ecedilla {\char"00228 } % LATIN CAPITAL LETTER E WITH CEDILLA: Ȩ
+\def\ecedilla {\char"00229 } % LATIN SMALL LETTER E WITH CEDILLA: ȩ
+\def\Odiaeresismacron {\char"0022A } % LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON: Ȫ
+\def\odiaeresismacron {\char"0022B } % LATIN SMALL LETTER O WITH DIAERESIS AND MACRON: ȫ
+\def\Otildemacron {\char"0022C } % LATIN CAPITAL LETTER O WITH TILDE AND MACRON: Ȭ
+\def\otildemacron {\char"0022D } % LATIN SMALL LETTER O WITH TILDE AND MACRON: ȭ
+\def\Odotaccent {\char"0022E } % LATIN CAPITAL LETTER O WITH DOT ABOVE: Ȯ
+\def\odotaccent {\char"0022F } % LATIN SMALL LETTER O WITH DOT ABOVE: ȯ
+\def\Odotaccentmacron {\char"00230 } % LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON: Ȱ
+\def\odotaccentmacron {\char"00231 } % LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON: ȱ
+\def\Ymacron {\char"00232 } % LATIN CAPITAL LETTER Y WITH MACRON: Ȳ
+\def\ymacron {\char"00233 } % LATIN SMALL LETTER Y WITH MACRON: ȳ
+\def\lcurl {\char"00234 } % LATIN SMALL LETTER L WITH CURL: ȴ
+\def\ncurl {\char"00235 } % LATIN SMALL LETTER N WITH CURL: ȵ
+\def\tcurl {\char"00236 } % LATIN SMALL LETTER T WITH CURL: ȶ
+\def\dotlessj {\char"00237 } % LATIN SMALL LETTER DOTLESS J: ȷ
+\def\Astroke {\char"0023A } % LATIN CAPITAL LETTER A WITH STROKE: Ⱥ
+\def\Cstroke {\char"0023B } % LATIN CAPITAL LETTER C WITH STROKE: Ȼ
+\def\cstroke {\char"0023C } % LATIN SMALL LETTER C WITH STROKE: ȼ
+\def\Lbar {\char"0023D } % LATIN CAPITAL LETTER L WITH BAR: Ƚ
+\def\bhook {\char"00253 } % LATIN SMALL LETTER B WITH HOOK: ɓ
+\def\ccurl {\char"00255 } % LATIN SMALL LETTER C WITH CURL: ɕ
+\def\dtail {\char"00256 } % LATIN SMALL LETTER D WITH TAIL: ɖ
+\def\dhook {\char"00257 } % LATIN SMALL LETTER D WITH HOOK: ɗ
+\def\schwa {\char"00259 } % LATIN SMALL LETTER SCHWA: ə
+\def\schwahook {\char"0025A } % LATIN SMALL LETTER SCHWA WITH HOOK: ɚ
+\def\dotlessjstroke {\char"0025F } % LATIN SMALL LETTER DOTLESS J WITH STROKE: ɟ
+\def\textcircumflex {\char"002C6 } % MODIFIER LETTER CIRCUMFLEX ACCENT: ˆ
+\def\textcaron {\char"002C7 } % CARON: ˇ
+\def\textbreve {\char"002D8 } % BREVE: ˘
+\def\textdotaccent {\char"002D9 } % DOT ABOVE: ˙
+\def\textring {\char"002DA } % RING ABOVE: ˚
+\def\textogonek {\char"002DB } % OGONEK: ˛
+\def\texttilde {\char"002DC } % SMALL TILDE: ˜
+\def\texthungarumlaut {\char"002DD } % DOUBLE ACUTE ACCENT: ˝
+\def\textbottomdot {\char"00323 } % COMBINING DOT BELOW: ̣
+\def\textbottomcomma {\char"00326 } % COMBINING COMMA BELOW: ̦
+\def\greektonos {\char"00384 } % GREEK TONOS: ΄
+\def\greekdialytikatonos {\char"00385 } % GREEK DIALYTIKA TONOS: ΅
+\def\greekAlphatonos {\char"00386 } % GREEK CAPITAL LETTER ALPHA WITH TONOS: Ά
+\def\greekEpsilontonos {\char"00388 } % GREEK CAPITAL LETTER EPSILON WITH TONOS: Έ
+\def\greekEtatonos {\char"00389 } % GREEK CAPITAL LETTER ETA WITH TONOS: Ή
+\def\greekIotatonos {\char"0038A } % GREEK CAPITAL LETTER IOTA WITH TONOS: Ί
+\def\greekOmicrontonos {\char"0038C } % GREEK CAPITAL LETTER OMICRON WITH TONOS: Ό
+\def\greekUpsilontonos {\char"0038E } % GREEK CAPITAL LETTER UPSILON WITH TONOS: Ύ
+\def\greekOmegatonos {\char"0038F } % GREEK CAPITAL LETTER OMEGA WITH TONOS: Ώ
+\def\greekiotadialytikatonos {\char"00390 } % GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS: ΐ
+\def\greekAlpha {\char"00391 } % GREEK CAPITAL LETTER ALPHA: Α
+\def\greekBeta {\char"00392 } % GREEK CAPITAL LETTER BETA: Β
+\def\greekGamma {\char"00393 } % GREEK CAPITAL LETTER GAMMA: Γ
+\def\greekDelta {\char"00394 } % GREEK CAPITAL LETTER DELTA: Δ
+\def\greekEpsilon {\char"00395 } % GREEK CAPITAL LETTER EPSILON: Ε
+\def\greekZeta {\char"00396 } % GREEK CAPITAL LETTER ZETA: Ζ
+\def\greekEta {\char"00397 } % GREEK CAPITAL LETTER ETA: Η
+\def\greekTheta {\char"00398 } % GREEK CAPITAL LETTER THETA: Θ
+\def\greekIota {\char"00399 } % GREEK CAPITAL LETTER IOTA: Ι
+\def\greekKappa {\char"0039A } % GREEK CAPITAL LETTER KAPPA: Κ
+\def\greekLambda {\char"0039B } % GREEK CAPITAL LETTER LAMDA: Λ
+\def\greekMu {\char"0039C } % GREEK CAPITAL LETTER MU: Μ
+\def\greekNu {\char"0039D } % GREEK CAPITAL LETTER NU: Ν
+\def\greekXi {\char"0039E } % GREEK CAPITAL LETTER XI: Ξ
+\def\greekOmicron {\char"0039F } % GREEK CAPITAL LETTER OMICRON: Ο
+\def\greekPi {\char"003A0 } % GREEK CAPITAL LETTER PI: Π
+\def\greekRho {\char"003A1 } % GREEK CAPITAL LETTER RHO: Ρ
+\def\greekSigma {\char"003A3 } % GREEK CAPITAL LETTER SIGMA: Σ
+\def\greekTau {\char"003A4 } % GREEK CAPITAL LETTER TAU: Τ
+\def\greekUpsilon {\char"003A5 } % GREEK CAPITAL LETTER UPSILON: Υ
+\def\greekPhi {\char"003A6 } % GREEK CAPITAL LETTER PHI: Φ
+\def\greekChi {\char"003A7 } % GREEK CAPITAL LETTER CHI: Χ
+\def\greekPsi {\char"003A8 } % GREEK CAPITAL LETTER PSI: Ψ
+\def\greekOmega {\char"003A9 } % GREEK CAPITAL LETTER OMEGA: Ω
+\def\greekIotadialytika {\char"003AA } % GREEK CAPITAL LETTER IOTA WITH DIALYTIKA: Ϊ
+\def\greekUpsilondialytika {\char"003AB } % GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA: Ϋ
+\def\greekalphatonos {\char"003AC } % GREEK SMALL LETTER ALPHA WITH TONOS: ά
+\def\greekepsilontonos {\char"003AD } % GREEK SMALL LETTER EPSILON WITH TONOS: έ
+\def\greeketatonos {\char"003AE } % GREEK SMALL LETTER ETA WITH TONOS: ή
+\def\greekiotatonos {\char"003AF } % GREEK SMALL LETTER IOTA WITH TONOS: ί
+\def\greekupsilondialytikatonos {\char"003B0 } % GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS: ΰ
+\def\greekalpha {\char"003B1 } % GREEK SMALL LETTER ALPHA: α
+\def\greekbeta {\char"003B2 } % GREEK SMALL LETTER BETA: β
+\def\greekgamma {\char"003B3 } % GREEK SMALL LETTER GAMMA: γ
+\def\greekdelta {\char"003B4 } % GREEK SMALL LETTER DELTA: δ
+\def\greekepsilon {\char"003B5 } % GREEK SMALL LETTER EPSILON: ε
+\def\greekzeta {\char"003B6 } % GREEK SMALL LETTER ZETA: ζ
+\def\greeketa {\char"003B7 } % GREEK SMALL LETTER ETA: η
+\def\greektheta {\char"003B8 } % GREEK SMALL LETTER THETA: θ
+\def\greekiota {\char"003B9 } % GREEK SMALL LETTER IOTA: ι
+\def\greekkappa {\char"003BA } % GREEK SMALL LETTER KAPPA: κ
+\def\greeklambda {\char"003BB } % GREEK SMALL LETTER LAMDA: λ
+\def\greekmu {\char"003BC } % GREEK SMALL LETTER MU: μ
+\def\greeknu {\char"003BD } % GREEK SMALL LETTER NU: ν
+\def\greekxi {\char"003BE } % GREEK SMALL LETTER XI: ξ
+\def\greekomicron {\char"003BF } % GREEK SMALL LETTER OMICRON: ο
+\def\greekpi {\char"003C0 } % GREEK SMALL LETTER PI: π
+\def\greekrho {\char"003C1 } % GREEK SMALL LETTER RHO: ρ
+\def\greekfinalsigma {\char"003C2 } % GREEK SMALL LETTER FINAL SIGMA: ς
+\def\greeksigma {\char"003C3 } % GREEK SMALL LETTER SIGMA: σ
+\def\greektau {\char"003C4 } % GREEK SMALL LETTER TAU: τ
+\def\greekupsilon {\char"003C5 } % GREEK SMALL LETTER UPSILON: υ
+\def\greekphi {\char"003C6 } % GREEK SMALL LETTER PHI: φ
+\def\greekchi {\char"003C7 } % GREEK SMALL LETTER CHI: χ
+\def\greekpsi {\char"003C8 } % GREEK SMALL LETTER PSI: ψ
+\def\greekomega {\char"003C9 } % GREEK SMALL LETTER OMEGA: ω
+\def\greekiotadialytika {\char"003CA } % GREEK SMALL LETTER IOTA WITH DIALYTIKA: ϊ
+\def\greekupsilondiaeresis {\char"003CB } % GREEK SMALL LETTER UPSILON WITH DIALYTIKA: ϋ
+\def\greekomicrontonos {\char"003CC } % GREEK SMALL LETTER OMICRON WITH TONOS: ό
+\def\greekupsilontonos {\char"003CD } % GREEK SMALL LETTER UPSILON WITH TONOS: ύ
+\def\greekomegatonos {\char"003CE } % GREEK SMALL LETTER OMEGA WITH TONOS: ώ
+\def\greekthetaalt {\char"003D1 } % GREEK THETA SYMBOL: ϑ
+\def\greekphialt {\char"003D5 } % GREEK PHI SYMBOL: ϕ
+\def\greekpialt {\char"003D6 } % GREEK PI SYMBOL: ϖ
+\def\greekkoppa {\char"003D9 } % GREEK SMALL LETTER ARCHAIC KOPPA: ϙ
+\def\greekstigma {\char"003DB } % GREEK SMALL LETTER STIGMA: ϛ
+\def\greekdigamma {\char"003DD } % GREEK SMALL LETTER DIGAMMA: ϝ
+\def\greeknumkoppa {\char"003DF } % GREEK SMALL LETTER KOPPA: ϟ
+\def\greeksampi {\char"003E1 } % GREEK SMALL LETTER SAMPI: ϡ
+\def\greekrhoalt {\char"003F1 } % GREEK RHO SYMBOL: ϱ
+\def\greeksigmalunate {\char"003F2 } % GREEK LUNATE SIGMA SYMBOL: ϲ
+\def\greekepsilonalt {\char"003F5 } % GREEK LUNATE EPSILON SYMBOL: ϵ
+\def\greekSigmalunate {\char"003F9 } % GREEK CAPITAL LUNATE SIGMA SYMBOL: Ϲ
+\def\cyrillicEgrave {\char"00400 } % CYRILLIC CAPITAL LETTER IE WITH GRAVE: Ѐ
+\def\cyrillicYO {\char"00401 } % CYRILLIC CAPITAL LETTER IO: Ё
+\def\cyrillicDJE {\char"00402 } % CYRILLIC CAPITAL LETTER DJE: Ђ
+\def\cyrillicGJE {\char"00403 } % CYRILLIC CAPITAL LETTER GJE: Ѓ
+\def\cyrillicIE {\char"00404 } % CYRILLIC CAPITAL LETTER UKRAINIAN IE: Є
+\def\cyrillicDZE {\char"00405 } % CYRILLIC CAPITAL LETTER DZE: Ѕ
+\def\cyrillicII {\char"00406 } % CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I: І
+\def\cyrillicYI {\char"00407 } % CYRILLIC CAPITAL LETTER YI: Ї
+\def\cyrillicJE {\char"00408 } % CYRILLIC CAPITAL LETTER JE: Ј
+\def\cyrillicLJE {\char"00409 } % CYRILLIC CAPITAL LETTER LJE: Љ
+\def\cyrillicNJE {\char"0040A } % CYRILLIC CAPITAL LETTER NJE: Њ
+\def\cyrillicTSHE {\char"0040B } % CYRILLIC CAPITAL LETTER TSHE: Ћ
+\def\cyrillicKJE {\char"0040C } % CYRILLIC CAPITAL LETTER KJE: Ќ
+\def\cyrillicIgrave {\char"0040D } % CYRILLIC CAPITAL LETTER I WITH GRAVE: Ѝ
+\def\cyrillicUSHRT {\char"0040E } % CYRILLIC CAPITAL LETTER SHORT U: Ў
+\def\cyrillicDZHE {\char"0040F } % CYRILLIC CAPITAL LETTER DZHE: Џ
+\def\cyrillicA {\char"00410 } % CYRILLIC CAPITAL LETTER A: А
+\def\cyrillicB {\char"00411 } % CYRILLIC CAPITAL LETTER BE: Б
+\def\cyrillicV {\char"00412 } % CYRILLIC CAPITAL LETTER VE: В
+\def\cyrillicG {\char"00413 } % CYRILLIC CAPITAL LETTER GHE: Г
+\def\cyrillicD {\char"00414 } % CYRILLIC CAPITAL LETTER DE: Д
+\def\cyrillicE {\char"00415 } % CYRILLIC CAPITAL LETTER IE: Е
+\def\cyrillicZH {\char"00416 } % CYRILLIC CAPITAL LETTER ZHE: Ж
+\def\cyrillicZ {\char"00417 } % CYRILLIC CAPITAL LETTER ZE: З
+\def\cyrillicI {\char"00418 } % CYRILLIC CAPITAL LETTER I: И
+\def\cyrillicISHRT {\char"00419 } % CYRILLIC CAPITAL LETTER SHORT I: Й
+\def\cyrillicK {\char"0041A } % CYRILLIC CAPITAL LETTER KA: К
+\def\cyrillicL {\char"0041B } % CYRILLIC CAPITAL LETTER EL: Л
+\def\cyrillicM {\char"0041C } % CYRILLIC CAPITAL LETTER EM: М
+\def\cyrillicN {\char"0041D } % CYRILLIC CAPITAL LETTER EN: Н
+\def\cyrillicO {\char"0041E } % CYRILLIC CAPITAL LETTER O: О
+\def\cyrillicP {\char"0041F } % CYRILLIC CAPITAL LETTER PE: П
+\def\cyrillicR {\char"00420 } % CYRILLIC CAPITAL LETTER ER: Р
+\def\cyrillicS {\char"00421 } % CYRILLIC CAPITAL LETTER ES: С
+\def\cyrillicT {\char"00422 } % CYRILLIC CAPITAL LETTER TE: Т
+\def\cyrillicU {\char"00423 } % CYRILLIC CAPITAL LETTER U: У
+\def\cyrillicF {\char"00424 } % CYRILLIC CAPITAL LETTER EF: Ф
+\def\cyrillicH {\char"00425 } % CYRILLIC CAPITAL LETTER HA: Х
+\def\cyrillicC {\char"00426 } % CYRILLIC CAPITAL LETTER TSE: Ц
+\def\cyrillicCH {\char"00427 } % CYRILLIC CAPITAL LETTER CHE: Ч
+\def\cyrillicSH {\char"00428 } % CYRILLIC CAPITAL LETTER SHA: Ш
+\def\cyrillicSHCH {\char"00429 } % CYRILLIC CAPITAL LETTER SHCHA: Щ
+\def\cyrillicHRDSN {\char"0042A } % CYRILLIC CAPITAL LETTER HARD SIGN: Ъ
+\def\cyrillicERY {\char"0042B } % CYRILLIC CAPITAL LETTER YERU: Ы
+\def\cyrillicSFTSN {\char"0042C } % CYRILLIC CAPITAL LETTER SOFT SIGN: Ь
+\def\cyrillicEREV {\char"0042D } % CYRILLIC CAPITAL LETTER E: Э
+\def\cyrillicYU {\char"0042E } % CYRILLIC CAPITAL LETTER YU: Ю
+\def\cyrillicYA {\char"0042F } % CYRILLIC CAPITAL LETTER YA: Я
+\def\cyrillica {\char"00430 } % CYRILLIC SMALL LETTER A: а
+\def\cyrillicb {\char"00431 } % CYRILLIC SMALL LETTER BE: б
+\def\cyrillicv {\char"00432 } % CYRILLIC SMALL LETTER VE: в
+\def\cyrillicg {\char"00433 } % CYRILLIC SMALL LETTER GHE: г
+\def\cyrillicd {\char"00434 } % CYRILLIC SMALL LETTER DE: д
+\def\cyrillice {\char"00435 } % CYRILLIC SMALL LETTER IE: е
+\def\cyrilliczh {\char"00436 } % CYRILLIC SMALL LETTER ZHE: ж
+\def\cyrillicz {\char"00437 } % CYRILLIC SMALL LETTER ZE: з
+\def\cyrillici {\char"00438 } % CYRILLIC SMALL LETTER I: и
+\def\cyrillicishrt {\char"00439 } % CYRILLIC SMALL LETTER SHORT I: й
+\def\cyrillick {\char"0043A } % CYRILLIC SMALL LETTER KA: к
+\def\cyrillicl {\char"0043B } % CYRILLIC SMALL LETTER EL: л
+\def\cyrillicm {\char"0043C } % CYRILLIC SMALL LETTER EM: м
+\def\cyrillicn {\char"0043D } % CYRILLIC SMALL LETTER EN: н
+\def\cyrillico {\char"0043E } % CYRILLIC SMALL LETTER O: о
+\def\cyrillicp {\char"0043F } % CYRILLIC SMALL LETTER PE: п
+\def\cyrillicr {\char"00440 } % CYRILLIC SMALL LETTER ER: р
+\def\cyrillics {\char"00441 } % CYRILLIC SMALL LETTER ES: с
+\def\cyrillict {\char"00442 } % CYRILLIC SMALL LETTER TE: т
+\def\cyrillicu {\char"00443 } % CYRILLIC SMALL LETTER U: у
+\def\cyrillicf {\char"00444 } % CYRILLIC SMALL LETTER EF: ф
+\def\cyrillich {\char"00445 } % CYRILLIC SMALL LETTER HA: х
+\def\cyrillicc {\char"00446 } % CYRILLIC SMALL LETTER TSE: ц
+\def\cyrillicch {\char"00447 } % CYRILLIC SMALL LETTER CHE: ч
+\def\cyrillicsh {\char"00448 } % CYRILLIC SMALL LETTER SHA: ш
+\def\cyrillicshch {\char"00449 } % CYRILLIC SMALL LETTER SHCHA: щ
+\def\cyrillichrdsn {\char"0044A } % CYRILLIC SMALL LETTER HARD SIGN: ъ
+\def\cyrillicery {\char"0044B } % CYRILLIC SMALL LETTER YERU: ы
+\def\cyrillicsftsn {\char"0044C } % CYRILLIC SMALL LETTER SOFT SIGN: ь
+\def\cyrillicerev {\char"0044D } % CYRILLIC SMALL LETTER E: э
+\def\cyrillicyu {\char"0044E } % CYRILLIC SMALL LETTER YU: ю
+\def\cyrillicya {\char"0044F } % CYRILLIC SMALL LETTER YA: я
+\def\cyrillicegrave {\char"00450 } % CYRILLIC SMALL LETTER IE WITH GRAVE: ѐ
+\def\cyrillicyo {\char"00451 } % CYRILLIC SMALL LETTER IO: ё
+\def\cyrillicdje {\char"00452 } % CYRILLIC SMALL LETTER DJE: ђ
+\def\cyrillicgje {\char"00453 } % CYRILLIC SMALL LETTER GJE: ѓ
+\def\cyrillicie {\char"00454 } % CYRILLIC SMALL LETTER UKRAINIAN IE: є
+\def\cyrillicdze {\char"00455 } % CYRILLIC SMALL LETTER DZE: ѕ
+\def\cyrillicii {\char"00456 } % CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I: і
+\def\cyrillicyi {\char"00457 } % CYRILLIC SMALL LETTER YI: ї
+\def\cyrillicje {\char"00458 } % CYRILLIC SMALL LETTER JE: ј
+\def\cyrilliclje {\char"00459 } % CYRILLIC SMALL LETTER LJE: љ
+\def\cyrillicnje {\char"0045A } % CYRILLIC SMALL LETTER NJE: њ
+\def\cyrillictshe {\char"0045B } % CYRILLIC SMALL LETTER TSHE: ћ
+\def\cyrillickje {\char"0045C } % CYRILLIC SMALL LETTER KJE: ќ
+\def\cyrillicigrave {\char"0045D } % CYRILLIC SMALL LETTER I WITH GRAVE: ѝ
+\def\cyrillicushrt {\char"0045E } % CYRILLIC SMALL LETTER SHORT U: ў
+\def\cyrillicdzhe {\char"0045F } % CYRILLIC SMALL LETTER DZHE: џ
+\def\cyrillicOMEGA {\char"00460 } % CYRILLIC CAPITAL LETTER OMEGA: Ѡ
+\def\cyrillicomega {\char"00461 } % CYRILLIC SMALL LETTER OMEGA: ѡ
+\def\cyrillicYAT {\char"00462 } % CYRILLIC CAPITAL LETTER YAT: Ѣ
+\def\cyrillicyat {\char"00463 } % CYRILLIC SMALL LETTER YAT: ѣ
+\def\cyrillicEiotified {\char"00464 } % CYRILLIC CAPITAL LETTER IOTIFIED E: Ѥ
+\def\cyrilliceiotified {\char"00465 } % CYRILLIC SMALL LETTER IOTIFIED E: ѥ
+\def\cyrillicLITTLEYUS {\char"00466 } % CYRILLIC CAPITAL LETTER LITTLE YUS: Ѧ
+\def\cyrilliclittleyus {\char"00467 } % CYRILLIC SMALL LETTER LITTLE YUS: ѧ
+\def\cyrillicLITTLEYUSiotified {\char"00468 } % CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS: Ѩ
+\def\cyrilliclittleyusiotified {\char"00469 } % CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS: ѩ
+\def\cyrillicBIGYUS {\char"0046A } % CYRILLIC CAPITAL LETTER BIG YUS: Ѫ
+\def\cyrillicbigyus {\char"0046B } % CYRILLIC SMALL LETTER BIG YUS: ѫ
+\def\cyrillicBIGYUSiotified {\char"0046C } % CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS: Ѭ
+\def\cyrillicbigyusiotified {\char"0046D } % CYRILLIC SMALL LETTER IOTIFIED BIG YUS: ѭ
+\def\cyrillicKSI {\char"0046E } % CYRILLIC CAPITAL LETTER KSI: Ѯ
+\def\cyrillicksi {\char"0046F } % CYRILLIC SMALL LETTER KSI: ѯ
+\def\cyrillicPSI {\char"00470 } % CYRILLIC CAPITAL LETTER PSI: Ѱ
+\def\cyrillicpsi {\char"00471 } % CYRILLIC SMALL LETTER PSI: ѱ
+\def\cyrillicFITA {\char"00472 } % CYRILLIC CAPITAL LETTER FITA: Ѳ
+\def\cyrillicfita {\char"00473 } % CYRILLIC SMALL LETTER FITA: ѳ
+\def\cyrillicIZHITSA {\char"00474 } % CYRILLIC CAPITAL LETTER IZHITSA: Ѵ
+\def\cyrillicizhitsa {\char"00475 } % CYRILLIC SMALL LETTER IZHITSA: ѵ
+\def\cyrillicIZHITSAdoublegrave {\char"00476 } % CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT: Ѷ
+\def\cyrillicizhitsadoublegrave {\char"00477 } % CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT: ѷ
+\def\cyrillicUK {\char"00478 } % CYRILLIC CAPITAL LETTER UK: Ѹ
+\def\cyrillicuk {\char"00479 } % CYRILLIC SMALL LETTER UK: ѹ
+\def\cyrillicOMEGAround {\char"0047A } % CYRILLIC CAPITAL LETTER ROUND OMEGA: Ѻ
+\def\cyrillicomegaround {\char"0047B } % CYRILLIC SMALL LETTER ROUND OMEGA: ѻ
+\def\cyrillicOMEGAtitlo {\char"0047C } % CYRILLIC CAPITAL LETTER OMEGA WITH TITLO: Ѽ
+\def\cyrillicomegatitlo {\char"0047D } % CYRILLIC SMALL LETTER OMEGA WITH TITLO: ѽ
+\def\cyrillicOT {\char"0047E } % CYRILLIC CAPITAL LETTER OT: Ѿ
+\def\cyrillicot {\char"0047F } % CYRILLIC SMALL LETTER OT: ѿ
+\def\cyrillicKOPPA {\char"00480 } % CYRILLIC CAPITAL LETTER KOPPA: Ҁ
+\def\cyrillickoppa {\char"00481 } % CYRILLIC SMALL LETTER KOPPA: ҁ
+\def\cyrillicTITLO {\char"00483 } % COMBINING CYRILLIC TITLO: ҃
+\def\cyrillicPALATALIZATION {\char"00484 } % COMBINING CYRILLIC PALATALIZATION: ҄
+\def\cyrillicDASIAPNEUMATA {\char"00485 } % COMBINING CYRILLIC DASIA PNEUMATA: ҅
+\def\cyrillicPSILIPNEUMATA {\char"00486 } % COMBINING CYRILLIC PSILI PNEUMATA: ҆
+\def\cyrillicISHRTtail {\char"0048A } % CYRILLIC CAPITAL LETTER SHORT I WITH TAIL: Ҋ
+\def\cyrillicishrttail {\char"0048B } % CYRILLIC SMALL LETTER SHORT I WITH TAIL: ҋ
+\def\cyrillicSEMISOFT {\char"0048C } % CYRILLIC CAPITAL LETTER SEMISOFT SIGN: Ҍ
+\def\cyrillicsemisoft {\char"0048D } % CYRILLIC SMALL LETTER SEMISOFT SIGN: ҍ
+\def\cyrillicERtick {\char"0048E } % CYRILLIC CAPITAL LETTER ER WITH TICK: Ҏ
+\def\cyrillicertick {\char"0048F } % CYRILLIC SMALL LETTER ER WITH TICK: ҏ
+\def\cyrillicGHEupturn {\char"00490 } % CYRILLIC CAPITAL LETTER GHE WITH UPTURN: Ґ
+\def\cyrillicgheupturn {\char"00491 } % CYRILLIC SMALL LETTER GHE WITH UPTURN: ґ
+\def\cyrillicGHEstroke {\char"00492 } % CYRILLIC CAPITAL LETTER GHE WITH STROKE: Ғ
+\def\cyrillicghestroke {\char"00493 } % CYRILLIC SMALL LETTER GHE WITH STROKE: ғ
+\def\cyrillicGHEmidhook {\char"00494 } % CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK: Ҕ
+\def\cyrillicghemidhook {\char"00495 } % CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK: ҕ
+\def\cyrillicZHEdescender {\char"00496 } % CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER: Җ
+\def\cyrilliczhedescender {\char"00497 } % CYRILLIC SMALL LETTER ZHE WITH DESCENDER: җ
+\def\cyrillicZDSC {\char"00498 } % CYRILLIC CAPITAL LETTER ZE WITH DESCENDER: Ҙ
+\def\cyrilliczdsc {\char"00499 } % CYRILLIC SMALL LETTER ZE WITH DESCENDER: ҙ
+\def\cyrillicKADC {\char"0049A } % CYRILLIC CAPITAL LETTER KA WITH DESCENDER: Қ
+\def\cyrillickadc {\char"0049B } % CYRILLIC SMALL LETTER KA WITH DESCENDER: қ
+\def\cyrillicKAvertstroke {\char"0049C } % CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE: Ҝ
+\def\cyrillickavertstroke {\char"0049D } % CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE: ҝ
+\def\cyrillicKAstroke {\char"0049E } % CYRILLIC CAPITAL LETTER KA WITH STROKE: Ҟ
+\def\cyrillickastroke {\char"0049F } % CYRILLIC SMALL LETTER KA WITH STROKE: ҟ
+\def\cyrillicKAbashkir {\char"004A0 } % CYRILLIC CAPITAL LETTER BASHKIR KA: Ҡ
+\def\cyrillickabashkir {\char"004A1 } % CYRILLIC SMALL LETTER BASHKIR KA: ҡ
+\def\cyrillicENDC {\char"004A2 } % CYRILLIC CAPITAL LETTER EN WITH DESCENDER: Ң
+\def\cyrillicendc {\char"004A3 } % CYRILLIC SMALL LETTER EN WITH DESCENDER: ң
+\def\cyrillicENGHE {\char"004A4 } % CYRILLIC CAPITAL LIGATURE EN GHE: Ҥ
+\def\cyrillicenghe {\char"004A5 } % CYRILLIC SMALL LIGATURE EN GHE: ҥ
+\def\cyrillicPEmidhook {\char"004A6 } % CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK: Ҧ
+\def\cyrillicpemidhook {\char"004A7 } % CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK: ҧ
+\def\cyrillicHA {\char"004A8 } % CYRILLIC CAPITAL LETTER ABKHASIAN HA: Ҩ
+\def\cyrillicha {\char"004A9 } % CYRILLIC SMALL LETTER ABKHASIAN HA: ҩ
+\def\cyrillicSDSC {\char"004AA } % CYRILLIC CAPITAL LETTER ES WITH DESCENDER: Ҫ
+\def\cyrillicsdsc {\char"004AB } % CYRILLIC SMALL LETTER ES WITH DESCENDER: ҫ
+\def\cyrillicTEDC {\char"004AC } % CYRILLIC CAPITAL LETTER TE WITH DESCENDER: Ҭ
+\def\cyrillictedc {\char"004AD } % CYRILLIC SMALL LETTER TE WITH DESCENDER: ҭ
+\def\cyrillicYstr {\char"004AE } % CYRILLIC CAPITAL LETTER STRAIGHT U: Ү
+\def\cyrillicystr {\char"004AF } % CYRILLIC SMALL LETTER STRAIGHT U: ү
+\def\cyrillicYstrstroke {\char"004B0 } % CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE: Ұ
+\def\cyrillicystrstroke {\char"004B1 } % CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE: ұ
+\def\cyrillicHADC {\char"004B2 } % CYRILLIC CAPITAL LETTER HA WITH DESCENDER: Ҳ
+\def\cyrillichadc {\char"004B3 } % CYRILLIC SMALL LETTER HA WITH DESCENDER: ҳ
+\def\cyrillicTETSE {\char"004B4 } % CYRILLIC CAPITAL LIGATURE TE TSE: Ҵ
+\def\cyrillictetse {\char"004B5 } % CYRILLIC SMALL LIGATURE TE TSE: ҵ
+\def\cyrillicCHEDC {\char"004B6 } % CYRILLIC CAPITAL LETTER CHE WITH DESCENDER: Ҷ
+\def\cyrillicchedc {\char"004B7 } % CYRILLIC SMALL LETTER CHE WITH DESCENDER: ҷ
+\def\cyrillicCHEvertstroke {\char"004B8 } % CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE: Ҹ
+\def\cyrillicchevertstroke {\char"004B9 } % CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE: ҹ
+\def\cyrillicSHHA {\char"004BA } % CYRILLIC CAPITAL LETTER SHHA: Һ
+\def\cyrillicshha {\char"004BB } % CYRILLIC SMALL LETTER SHHA: һ
+\def\cyrillicCHEabkhasian {\char"004BC } % CYRILLIC CAPITAL LETTER ABKHASIAN CHE: Ҽ
+\def\cyrilliccheabkhasian {\char"004BD } % CYRILLIC SMALL LETTER ABKHASIAN CHE: ҽ
+\def\cyrillicCHEDCabkhasian {\char"004BE } % CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER: Ҿ
+\def\cyrillicchedcabkhasian {\char"004BF } % CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER: ҿ
+\def\cyrillicPALOCHKA {\char"004C0 } % CYRILLIC LETTER PALOCHKA: Ӏ
+\def\cyrillicZHEbreve {\char"004C1 } % CYRILLIC CAPITAL LETTER ZHE WITH BREVE: Ӂ
+\def\cyrilliczhebreve {\char"004C2 } % CYRILLIC SMALL LETTER ZHE WITH BREVE: ӂ
+\def\cyrillicKAhook {\char"004C3 } % CYRILLIC CAPITAL LETTER KA WITH HOOK: Ӄ
+\def\cyrillickahook {\char"004C4 } % CYRILLIC SMALL LETTER KA WITH HOOK: ӄ
+\def\cyrillicELtail {\char"004C5 } % CYRILLIC CAPITAL LETTER EL WITH TAIL: Ӆ
+\def\cyrilliceltail {\char"004C6 } % CYRILLIC SMALL LETTER EL WITH TAIL: ӆ
+\def\cyrillicENhook {\char"004C7 } % CYRILLIC CAPITAL LETTER EN WITH HOOK: Ӈ
+\def\cyrillicenhook {\char"004C8 } % CYRILLIC SMALL LETTER EN WITH HOOK: ӈ
+\def\cyrillicENtail {\char"004C9 } % CYRILLIC CAPITAL LETTER EN WITH TAIL: Ӊ
+\def\cyrillicentail {\char"004CA } % CYRILLIC SMALL LETTER EN WITH TAIL: ӊ
+\def\cyrillicCHEkhakassian {\char"004CB } % CYRILLIC CAPITAL LETTER KHAKASSIAN CHE: Ӌ
+\def\cyrillicchekhakassian {\char"004CC } % CYRILLIC SMALL LETTER KHAKASSIAN CHE: ӌ
+\def\cyrillicEMtail {\char"004CD } % CYRILLIC CAPITAL LETTER EM WITH TAIL: Ӎ
+\def\cyrillicemtail {\char"004CE } % CYRILLIC SMALL LETTER EM WITH TAIL: ӎ
+\def\cyrillicAbreve {\char"004D0 } % CYRILLIC CAPITAL LETTER A WITH BREVE: Ӑ
+\def\cyrillicabreve {\char"004D1 } % CYRILLIC SMALL LETTER A WITH BREVE: ӑ
+\def\cyrillicAdiaeresis {\char"004D2 } % CYRILLIC CAPITAL LETTER A WITH DIAERESIS: Ӓ
+\def\cyrillicadiaeresis {\char"004D3 } % CYRILLIC SMALL LETTER A WITH DIAERESIS: ӓ
+\def\cyrillicAE {\char"004D4 } % CYRILLIC CAPITAL LIGATURE A IE: Ӕ
+\def\cyrillicae {\char"004D5 } % CYRILLIC SMALL LIGATURE A IE: ӕ
+\def\cyrillicEbreve {\char"004D6 } % CYRILLIC CAPITAL LETTER IE WITH BREVE: Ӗ
+\def\cyrillicebreve {\char"004D7 } % CYRILLIC SMALL LETTER IE WITH BREVE: ӗ
+\def\cyrillicSCHWA {\char"004D8 } % CYRILLIC CAPITAL LETTER SCHWA: Ә
+\def\cyrillicschwa {\char"004D9 } % CYRILLIC SMALL LETTER SCHWA: ә
+\def\cyrillicSCHWAdiaeresis {\char"004DA } % CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS: Ӛ
+\def\cyrillicschwadiaeresis {\char"004DB } % CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS: ӛ
+\def\cyrillicZHEdiaeresis {\char"004DC } % CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS: Ӝ
+\def\cyrilliczhediaeresis {\char"004DD } % CYRILLIC SMALL LETTER ZHE WITH DIAERESIS: ӝ
+\def\cyrillicZEdiaeresis {\char"004DE } % CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS: Ӟ
+\def\cyrilliczediaeresis {\char"004DF } % CYRILLIC SMALL LETTER ZE WITH DIAERESIS: ӟ
+\def\cyrillicDZEabkhasian {\char"004E0 } % CYRILLIC CAPITAL LETTER ABKHASIAN DZE: Ӡ
+\def\cyrillicdzeabkhasian {\char"004E1 } % CYRILLIC SMALL LETTER ABKHASIAN DZE: ӡ
+\def\cyrillicImacron {\char"004E2 } % CYRILLIC CAPITAL LETTER I WITH MACRON: Ӣ
+\def\cyrillicimacron {\char"004E3 } % CYRILLIC SMALL LETTER I WITH MACRON: ӣ
+\def\cyrillicIdiaeresis {\char"004E4 } % CYRILLIC CAPITAL LETTER I WITH DIAERESIS: Ӥ
+\def\cyrillicidiaeresis {\char"004E5 } % CYRILLIC SMALL LETTER I WITH DIAERESIS: ӥ
+\def\cyrillicOdiaeresis {\char"004E6 } % CYRILLIC CAPITAL LETTER O WITH DIAERESIS: Ӧ
+\def\cyrillicodiaeresis {\char"004E7 } % CYRILLIC SMALL LETTER O WITH DIAERESIS: ӧ
+\def\cyrillicObarred {\char"004E8 } % CYRILLIC CAPITAL LETTER BARRED O: Ө
+\def\cyrillicobarred {\char"004E9 } % CYRILLIC SMALL LETTER BARRED O: ө
+\def\cyrillicObarreddiaeresis {\char"004EA } % CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS: Ӫ
+\def\cyrillicobarreddiaeresis {\char"004EB } % CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS: ӫ
+\def\cyrillicEdiaeresis {\char"004EC } % CYRILLIC CAPITAL LETTER E WITH DIAERESIS: Ӭ
+\def\cyrillicediaeresis {\char"004ED } % CYRILLIC SMALL LETTER E WITH DIAERESIS: ӭ
+\def\cyrillicUmacron {\char"004EE } % CYRILLIC CAPITAL LETTER U WITH MACRON: Ӯ
+\def\cyrillicumacron {\char"004EF } % CYRILLIC SMALL LETTER U WITH MACRON: ӯ
+\def\cyrillicUdiaeresis {\char"004F0 } % CYRILLIC CAPITAL LETTER U WITH DIAERESIS: Ӱ
+\def\cyrillicudiaeresis {\char"004F1 } % CYRILLIC SMALL LETTER U WITH DIAERESIS: ӱ
+\def\cyrillicUdoubleacute {\char"004F2 } % CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE: Ӳ
+\def\cyrillicudoubleacute {\char"004F3 } % CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE: ӳ
+\def\cyrillicCHEdiaeresis {\char"004F4 } % CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS: Ӵ
+\def\cyrillicchediaeresis {\char"004F5 } % CYRILLIC SMALL LETTER CHE WITH DIAERESIS: ӵ
+\def\cyrillicYERUdiaeresis {\char"004F8 } % CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS: Ӹ
+\def\cyrillicyerudiaeresis {\char"004F9 } % CYRILLIC SMALL LETTER YERU WITH DIAERESIS: ӹ
+\def\hebrewAlef {\char"005D0 } % HEBREW LETTER ALEF: א
+\def\hebrewBet {\char"005D1 } % HEBREW LETTER BET: ב
+\def\hebrewGimel {\char"005D2 } % HEBREW LETTER GIMEL: ג
+\def\hebrewDalet {\char"005D3 } % HEBREW LETTER DALET: ד
+\def\hebrewHe {\char"005D4 } % HEBREW LETTER HE: ה
+\def\hebrewVav {\char"005D5 } % HEBREW LETTER VAV: ו
+\def\hebrewZayin {\char"005D6 } % HEBREW LETTER ZAYIN: ז
+\def\hebrewHet {\char"005D7 } % HEBREW LETTER HET: ח
+\def\hebrewTet {\char"005D8 } % HEBREW LETTER TET: ט
+\def\hebrewYod {\char"005D9 } % HEBREW LETTER YOD: י
+\def\hebrewKaffinal {\char"005DA } % HEBREW LETTER FINAL KAF: ך
+\def\hebrewKaf {\char"005DB } % HEBREW LETTER KAF: כ
+\def\hebrewLamed {\char"005DC } % HEBREW LETTER LAMED: ל
+\def\hebrewMemfinal {\char"005DD } % HEBREW LETTER FINAL MEM: ם
+\def\hebrewMem {\char"005DE } % HEBREW LETTER MEM: מ
+\def\hebrewNunfinal {\char"005DF } % HEBREW LETTER FINAL NUN: ן
+\def\hebrewNun {\char"005E0 } % HEBREW LETTER NUN: נ
+\def\hebrewSamekh {\char"005E1 } % HEBREW LETTER SAMEKH: ס
+\def\hebrewAyin {\char"005E2 } % HEBREW LETTER AYIN: ע
+\def\hebrewPefinal {\char"005E3 } % HEBREW LETTER FINAL PE: ף
+\def\hebrewPe {\char"005E4 } % HEBREW LETTER PE: פ
+\def\hebrewTsadifinal {\char"005E5 } % HEBREW LETTER FINAL TSADI: ץ
+\def\hebrewTsadi {\char"005E6 } % HEBREW LETTER TSADI: צ
+\def\hebrewQof {\char"005E7 } % HEBREW LETTER QOF: ק
+\def\hebrewResh {\char"005E8 } % HEBREW LETTER RESH: ר
+\def\hebrewShin {\char"005E9 } % HEBREW LETTER SHIN: ש
+\def\hebrewTav {\char"005EA } % HEBREW LETTER TAV: ת
+\def\Adotbelow {\char"01EA0 } % LATIN CAPITAL LETTER A WITH DOT BELOW: Ạ
+\def\adotbelow {\char"01EA1 } % LATIN SMALL LETTER A WITH DOT BELOW: ạ
+\def\Ahook {\char"01EA2 } % LATIN CAPITAL LETTER A WITH HOOK ABOVE: Ả
+\def\ahook {\char"01EA3 } % LATIN SMALL LETTER A WITH HOOK ABOVE: ả
+\def\Acircumflexacute {\char"01EA4 } % LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE: Ấ
+\def\acircumflexacute {\char"01EA5 } % LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE: ấ
+\def\Acircumflexgrave {\char"01EA6 } % LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE: Ầ
+\def\acircumflexgrave {\char"01EA7 } % LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE: ầ
+\def\Acircumflexhook {\char"01EA8 } % LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE: Ẩ
+\def\acircumflexhook {\char"01EA9 } % LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE: ẩ
+\def\Acircumflextilde {\char"01EAA } % LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE: Ẫ
+\def\acircumflextilde {\char"01EAB } % LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE: ẫ
+\def\Acircumflexdotbelow {\char"01EAC } % LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW: Ậ
+\def\acircumflexdotbelow {\char"01EAD } % LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW: ậ
+\def\Abreveacute {\char"01EAE } % LATIN CAPITAL LETTER A WITH BREVE AND ACUTE: Ắ
+\def\abreveacute {\char"01EAF } % LATIN SMALL LETTER A WITH BREVE AND ACUTE: ắ
+\def\Abrevegrave {\char"01EB0 } % LATIN CAPITAL LETTER A WITH BREVE AND GRAVE: Ằ
+\def\abrevegrave {\char"01EB1 } % LATIN SMALL LETTER A WITH BREVE AND GRAVE: ằ
+\def\Abrevehook {\char"01EB2 } % LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE: Ẳ
+\def\abrevehook {\char"01EB3 } % LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE: ẳ
+\def\Abrevetilde {\char"01EB4 } % LATIN CAPITAL LETTER A WITH BREVE AND TILDE: Ẵ
+\def\abrevetilde {\char"01EB5 } % LATIN SMALL LETTER A WITH BREVE AND TILDE: ẵ
+\def\Abrevedotbelow {\char"01EB6 } % LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW: Ặ
+\def\abrevedotbelow {\char"01EB7 } % LATIN SMALL LETTER A WITH BREVE AND DOT BELOW: ặ
+\def\Edotbelow {\char"01EB8 } % LATIN CAPITAL LETTER E WITH DOT BELOW: Ẹ
+\def\edotbelow {\char"01EB9 } % LATIN SMALL LETTER E WITH DOT BELOW: ẹ
+\def\Ehook {\char"01EBA } % LATIN CAPITAL LETTER E WITH HOOK ABOVE: Ẻ
+\def\ehook {\char"01EBB } % LATIN SMALL LETTER E WITH HOOK ABOVE: ẻ
+\def\Etilde {\char"01EBC } % LATIN CAPITAL LETTER E WITH TILDE: Ẽ
+\def\etilde {\char"01EBD } % LATIN SMALL LETTER E WITH TILDE: ẽ
+\def\Ecircumflexacute {\char"01EBE } % LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE: Ế
+\def\ecircumflexacute {\char"01EBF } % LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE: ế
+\def\Ecircumflexgrave {\char"01EC0 } % LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE: Ề
+\def\ecircumflexgrave {\char"01EC1 } % LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE: ề
+\def\Ecircumflexhook {\char"01EC2 } % LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE: Ể
+\def\ecircumflexhook {\char"01EC3 } % LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE: ể
+\def\Ecircumflextilde {\char"01EC4 } % LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE: Ễ
+\def\ecircumflextilde {\char"01EC5 } % LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE: ễ
+\def\Ecircumflexdotbelow {\char"01EC6 } % LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW: Ệ
+\def\ecircumflexdotbelow {\char"01EC7 } % LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW: ệ
+\def\Ihook {\char"01EC8 } % LATIN CAPITAL LETTER I WITH HOOK ABOVE: Ỉ
+\def\ihook {\char"01EC9 } % LATIN SMALL LETTER I WITH HOOK ABOVE: ỉ
+\def\Idotbelow {\char"01ECA } % LATIN CAPITAL LETTER I WITH DOT BELOW: Ị
+\def\idotbelow {\char"01ECB } % LATIN SMALL LETTER I WITH DOT BELOW: ị
+\def\Odotbelow {\char"01ECC } % LATIN CAPITAL LETTER O WITH DOT BELOW: Ọ
+\def\odotbelow {\char"01ECD } % LATIN SMALL LETTER O WITH DOT BELOW: ọ
+\def\Ohook {\char"01ECE } % LATIN CAPITAL LETTER O WITH HOOK ABOVE: Ỏ
+\def\ohook {\char"01ECF } % LATIN SMALL LETTER O WITH HOOK ABOVE: ỏ
+\def\Ocircumflexacute {\char"01ED0 } % LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE: Ố
+\def\ocircumflexacute {\char"01ED1 } % LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE: ố
+\def\Ocircumflexgrave {\char"01ED2 } % LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE: Ồ
+\def\ocircumflexgrave {\char"01ED3 } % LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE: ồ
+\def\Ocircumflexhook {\char"01ED4 } % LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE: Ổ
+\def\ocircumflexhook {\char"01ED5 } % LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE: ổ
+\def\Ocircumflextilde {\char"01ED6 } % LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE: Ỗ
+\def\ocircumflextilde {\char"01ED7 } % LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE: ỗ
+\def\Ocircumflexdotbelow {\char"01ED8 } % LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW: Ộ
+\def\ocircumflexdotbelow {\char"01ED9 } % LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW: ộ
+\def\Ohornacute {\char"01EDA } % LATIN CAPITAL LETTER O WITH HORN AND ACUTE: Ớ
+\def\ohornacute {\char"01EDB } % LATIN SMALL LETTER O WITH HORN AND ACUTE: ớ
+\def\Ohorngrave {\char"01EDC } % LATIN CAPITAL LETTER O WITH HORN AND GRAVE: Ờ
+\def\ohorngrave {\char"01EDD } % LATIN SMALL LETTER O WITH HORN AND GRAVE: ờ
+\def\Ohornhook {\char"01EDE } % LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE: Ở
+\def\ohornhook {\char"01EDF } % LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE: ở
+\def\Ohorntilde {\char"01EE0 } % LATIN CAPITAL LETTER O WITH HORN AND TILDE: Ỡ
+\def\ohorntilde {\char"01EE1 } % LATIN SMALL LETTER O WITH HORN AND TILDE: ỡ
+\def\Ohorndotbelow {\char"01EE2 } % LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW: Ợ
+\def\ohorndotbelow {\char"01EE3 } % LATIN SMALL LETTER O WITH HORN AND DOT BELOW: ợ
+\def\Udotbelow {\char"01EE4 } % LATIN CAPITAL LETTER U WITH DOT BELOW: Ụ
+\def\udotbelow {\char"01EE5 } % LATIN SMALL LETTER U WITH DOT BELOW: ụ
+\def\Uhook {\char"01EE6 } % LATIN CAPITAL LETTER U WITH HOOK ABOVE: Ủ
+\def\uhook {\char"01EE7 } % LATIN SMALL LETTER U WITH HOOK ABOVE: ủ
+\def\Uhornacute {\char"01EE8 } % LATIN CAPITAL LETTER U WITH HORN AND ACUTE: Ứ
+\def\uhornacute {\char"01EE9 } % LATIN SMALL LETTER U WITH HORN AND ACUTE: ứ
+\def\Uhorngrave {\char"01EEA } % LATIN CAPITAL LETTER U WITH HORN AND GRAVE: Ừ
+\def\uhorngrave {\char"01EEB } % LATIN SMALL LETTER U WITH HORN AND GRAVE: ừ
+\def\Uhornhook {\char"01EEC } % LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE: Ử
+\def\uhornhook {\char"01EED } % LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE: ử
+\def\Uhorntilde {\char"01EEE } % LATIN CAPITAL LETTER U WITH HORN AND TILDE: Ữ
+\def\uhorntilde {\char"01EEF } % LATIN SMALL LETTER U WITH HORN AND TILDE: ữ
+\def\Uhorndotbelow {\char"01EF0 } % LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW: Ự
+\def\uhorndotbelow {\char"01EF1 } % LATIN SMALL LETTER U WITH HORN AND DOT BELOW: ự
+\def\Ygrave {\char"01EF2 } % LATIN CAPITAL LETTER Y WITH GRAVE: Ỳ
+\def\ygrave {\char"01EF3 } % LATIN SMALL LETTER Y WITH GRAVE: ỳ
+\def\Ydotbelow {\char"01EF4 } % LATIN CAPITAL LETTER Y WITH DOT BELOW: Ỵ
+\def\ydotbelow {\char"01EF5 } % LATIN SMALL LETTER Y WITH DOT BELOW: ỵ
+\def\Yhook {\char"01EF6 } % LATIN CAPITAL LETTER Y WITH HOOK ABOVE: Ỷ
+\def\yhook {\char"01EF7 } % LATIN SMALL LETTER Y WITH HOOK ABOVE: ỷ
+\def\Ytilde {\char"01EF8 } % LATIN CAPITAL LETTER Y WITH TILDE: Ỹ
+\def\ytilde {\char"01EF9 } % LATIN SMALL LETTER Y WITH TILDE: ỹ
+\def\greekalphapsili {\char"01F00 } % GREEK SMALL LETTER ALPHA WITH PSILI: ἀ
+\def\greekalphadasia {\char"01F01 } % GREEK SMALL LETTER ALPHA WITH DASIA: ἁ
+\def\greekalphapsilivaria {\char"01F02 } % GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA: ἂ
+\def\greekalphadasiavaria {\char"01F03 } % GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA: ἃ
+\def\greekalphapsilitonos {\char"01F04 } % GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA: ἄ
+\def\greekalphadasiatonos {\char"01F05 } % GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA: ἅ
+\def\greekalphapsiliperispomeni {\char"01F06 } % GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI: ἆ
+\def\greekalphadasiaperispomeni {\char"01F07 } % GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI: ἇ
+\def\greekAlphapsili {\char"01F08 } % GREEK CAPITAL LETTER ALPHA WITH PSILI: Ἀ
+\def\greekAlphadasia {\char"01F09 } % GREEK CAPITAL LETTER ALPHA WITH DASIA: Ἁ
+\def\greekAlphapsilivaria {\char"01F0A } % GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA: Ἂ
+\def\greekAlphadasiavaria {\char"01F0B } % GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA: Ἃ
+\def\greekAlphapsilitonos {\char"01F0C } % GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA: Ἄ
+\def\greekAlphadasiatonos {\char"01F0D } % GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA: Ἅ
+\def\greekAlphapsiliperispomeni {\char"01F0E } % GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI: Ἆ
+\def\greekAlphadasiaperispomeni {\char"01F0F } % GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI: Ἇ
+\def\greekepsilonpsili {\char"01F10 } % GREEK SMALL LETTER EPSILON WITH PSILI: ἐ
+\def\greekepsilondasia {\char"01F11 } % GREEK SMALL LETTER EPSILON WITH DASIA: ἑ
+\def\greekepsilonpsilivaria {\char"01F12 } % GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA: ἒ
+\def\greekepsilondasiavaria {\char"01F13 } % GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA: ἓ
+\def\greekepsilonpsilitonos {\char"01F14 } % GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA: ἔ
+\def\greekepsilondasiatonos {\char"01F15 } % GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA: ἕ
+\def\greekEpsilonpsili {\char"01F18 } % GREEK CAPITAL LETTER EPSILON WITH PSILI: Ἐ
+\def\greekEpsilondasia {\char"01F19 } % GREEK CAPITAL LETTER EPSILON WITH DASIA: Ἑ
+\def\greekEpsilonpsilivaria {\char"01F1A } % GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA: Ἒ
+\def\greekEpsilondasiavaria {\char"01F1B } % GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA: Ἓ
+\def\greekEpsilonpsilitonos {\char"01F1C } % GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA: Ἔ
+\def\greekEpsilondasiatonos {\char"01F1D } % GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA: Ἕ
+\def\greeketapsili {\char"01F20 } % GREEK SMALL LETTER ETA WITH PSILI: ἠ
+\def\greeketadasia {\char"01F21 } % GREEK SMALL LETTER ETA WITH DASIA: ἡ
+\def\greeketapsilivaria {\char"01F22 } % GREEK SMALL LETTER ETA WITH PSILI AND VARIA: ἢ
+\def\greeketadasiavaria {\char"01F23 } % GREEK SMALL LETTER ETA WITH DASIA AND VARIA: ἣ
+\def\greeketapsilitonos {\char"01F24 } % GREEK SMALL LETTER ETA WITH PSILI AND OXIA: ἤ
+\def\greeketadasiatonos {\char"01F25 } % GREEK SMALL LETTER ETA WITH DASIA AND OXIA: ἥ
+\def\greeketapsiliperispomeni {\char"01F26 } % GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI: ἦ
+\def\greeketadasiaperispomeni {\char"01F27 } % GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI: ἧ
+\def\greekEtapsili {\char"01F28 } % GREEK CAPITAL LETTER ETA WITH PSILI: Ἠ
+\def\greekEtadasia {\char"01F29 } % GREEK CAPITAL LETTER ETA WITH DASIA: Ἡ
+\def\greekEtapsilivaria {\char"01F2A } % GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA: Ἢ
+\def\greekEtadasiavaria {\char"01F2B } % GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA: Ἣ
+\def\greekEtapsilitonos {\char"01F2C } % GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA: Ἤ
+\def\greekEtadasiatonos {\char"01F2D } % GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA: Ἥ
+\def\greekEtapsiliperispomeni {\char"01F2E } % GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI: Ἦ
+\def\greekEtadasiaperispomeni {\char"01F2F } % GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI: Ἧ
+\def\greekiotapsili {\char"01F30 } % GREEK SMALL LETTER IOTA WITH PSILI: ἰ
+\def\greekiotadasia {\char"01F31 } % GREEK SMALL LETTER IOTA WITH DASIA: ἱ
+\def\greekiotapsilivaria {\char"01F32 } % GREEK SMALL LETTER IOTA WITH PSILI AND VARIA: ἲ
+\def\greekiotadasiavaria {\char"01F33 } % GREEK SMALL LETTER IOTA WITH DASIA AND VARIA: ἳ
+\def\greekiotapsilitonos {\char"01F34 } % GREEK SMALL LETTER IOTA WITH PSILI AND OXIA: ἴ
+\def\greekiotadasiatonos {\char"01F35 } % GREEK SMALL LETTER IOTA WITH DASIA AND OXIA: ἵ
+\def\greekiotapsiliperispomeni {\char"01F36 } % GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI: ἶ
+\def\greekiotadasiaperispomeni {\char"01F37 } % GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI: ἷ
+\def\greekIotapsili {\char"01F38 } % GREEK CAPITAL LETTER IOTA WITH PSILI: Ἰ
+\def\greekIotadasia {\char"01F39 } % GREEK CAPITAL LETTER IOTA WITH DASIA: Ἱ
+\def\greekIotapsilivaria {\char"01F3A } % GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA: Ἲ
+\def\greekIotadasiavaria {\char"01F3B } % GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA: Ἳ
+\def\greekIotapsilitonos {\char"01F3C } % GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA: Ἴ
+\def\greekIotadasiatonos {\char"01F3D } % GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA: Ἵ
+\def\greekIotapsiliperispomeni {\char"01F3E } % GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI: Ἶ
+\def\greekIotadasiaperispomeni {\char"01F3F } % GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI: Ἷ
+\def\greekomicronpsili {\char"01F40 } % GREEK SMALL LETTER OMICRON WITH PSILI: ὀ
+\def\greekomicrondasia {\char"01F41 } % GREEK SMALL LETTER OMICRON WITH DASIA: ὁ
+\def\greekomicronpsilivaria {\char"01F42 } % GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA: ὂ
+\def\greekomicrondasiavaria {\char"01F43 } % GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA: ὃ
+\def\greekomicronpsilitonos {\char"01F44 } % GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA: ὄ
+\def\greekomicrondasiatonos {\char"01F45 } % GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA: ὅ
+\def\greekOmicronpsili {\char"01F48 } % GREEK CAPITAL LETTER OMICRON WITH PSILI: Ὀ
+\def\greekOmicrondasia {\char"01F49 } % GREEK CAPITAL LETTER OMICRON WITH DASIA: Ὁ
+\def\greekOmicronpsilivaria {\char"01F4A } % GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA: Ὂ
+\def\greekOmicrondasiavaria {\char"01F4B } % GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA: Ὃ
+\def\greekOmicronpsilitonos {\char"01F4C } % GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA: Ὄ
+\def\greekOmicrondasiatonos {\char"01F4D } % GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA: Ὅ
+\def\greekupsilonpsili {\char"01F50 } % GREEK SMALL LETTER UPSILON WITH PSILI: ὐ
+\def\greekupsilondasia {\char"01F51 } % GREEK SMALL LETTER UPSILON WITH DASIA: ὑ
+\def\greekupsilonpsilivaria {\char"01F52 } % GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA: ὒ
+\def\greekupsilondasiavaria {\char"01F53 } % GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA: ὓ
+\def\greekupsilonpsilitonos {\char"01F54 } % GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA: ὔ
+\def\greekupsilondasiatonos {\char"01F55 } % GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA: ὕ
+\def\greekupsilonpsiliperispomeni {\char"01F56 } % GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI: ὖ
+\def\greekupsilondasiaperispomeni {\char"01F57 } % GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI: ὗ
+\def\greekUpsilondasia {\char"01F59 } % GREEK CAPITAL LETTER UPSILON WITH DASIA: Ὑ
+\def\greekUpsilondasiavaria {\char"01F5B } % GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA: Ὓ
+\def\greekUpsilondasiatonos {\char"01F5D } % GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA: Ὕ
+\def\greekUpsilondasiaperispomeni {\char"01F5F } % GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI: Ὗ
+\def\greekomegapsili {\char"01F60 } % GREEK SMALL LETTER OMEGA WITH PSILI: ὠ
+\def\greekomegadasia {\char"01F61 } % GREEK SMALL LETTER OMEGA WITH DASIA: ὡ
+\def\greekomegapsilivaria {\char"01F62 } % GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA: ὢ
+\def\greekomegadasiavaria {\char"01F63 } % GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA: ὣ
+\def\greekomegapsilitonos {\char"01F64 } % GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA: ὤ
+\def\greekomegadasiatonos {\char"01F65 } % GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA: ὥ
+\def\greekomegapsiliperispomeni {\char"01F66 } % GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI: ὦ
+\def\greekomegadasiaperispomeni {\char"01F67 } % GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI: ὧ
+\def\greekOmegapsili {\char"01F68 } % GREEK CAPITAL LETTER OMEGA WITH PSILI: Ὠ
+\def\greekOmegadasia {\char"01F69 } % GREEK CAPITAL LETTER OMEGA WITH DASIA: Ὡ
+\def\greekOmegapsilivaria {\char"01F6A } % GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA: Ὢ
+\def\greekOmegadasiavaria {\char"01F6B } % GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA: Ὣ
+\def\greekOmegapsilitonos {\char"01F6C } % GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA: Ὤ
+\def\greekOmegadasiatonos {\char"01F6D } % GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA: Ὥ
+\def\greekOmegapsiliperispomeni {\char"01F6E } % GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI: Ὦ
+\def\greekOmegadasiaperispomeni {\char"01F6F } % GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI: Ὧ
+\def\greekalphavaria {\char"01F70 } % GREEK SMALL LETTER ALPHA WITH VARIA: ὰ
+\def\greekalphaoxia {\char"01F71 } % GREEK SMALL LETTER ALPHA WITH OXIA: ά
+\def\greekepsilonvaria {\char"01F72 } % GREEK SMALL LETTER EPSILON WITH VARIA: ὲ
+\def\greekepsilonoxia {\char"01F73 } % GREEK SMALL LETTER EPSILON WITH OXIA: έ
+\def\greeketavaria {\char"01F74 } % GREEK SMALL LETTER ETA WITH VARIA: ὴ
+\def\greeketaoxia {\char"01F75 } % GREEK SMALL LETTER ETA WITH OXIA: ή
+\def\greekiotavaria {\char"01F76 } % GREEK SMALL LETTER IOTA WITH VARIA: ὶ
+\def\greekiotaoxia {\char"01F77 } % GREEK SMALL LETTER IOTA WITH OXIA: ί
+\def\greekomicronvaria {\char"01F78 } % GREEK SMALL LETTER OMICRON WITH VARIA: ὸ
+\def\greekomicronoxia {\char"01F79 } % GREEK SMALL LETTER OMICRON WITH OXIA: ό
+\def\greekupsilonvaria {\char"01F7A } % GREEK SMALL LETTER UPSILON WITH VARIA: ὺ
+\def\greekupsilonoxia {\char"01F7B } % GREEK SMALL LETTER UPSILON WITH OXIA: ύ
+\def\greekomegavaria {\char"01F7C } % GREEK SMALL LETTER OMEGA WITH VARIA: ὼ
+\def\greekomegaoxia {\char"01F7D } % GREEK SMALL LETTER OMEGA WITH OXIA: ώ
+\def\greekalphaiotasubpsili {\char"01F80 } % GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI: ᾀ
+\def\greekalphaiotasubdasia {\char"01F81 } % GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI: ᾁ
+\def\greekalphaiotasubpsilivaria {\char"01F82 } % GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI: ᾂ
+\def\greekalphaiotasubdasiavaria {\char"01F83 } % GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI: ᾃ
+\def\greekalphaiotasubpsilitonos {\char"01F84 } % GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI: ᾄ
+\def\greekalphaiotasubdasiatonos {\char"01F85 } % GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI: ᾅ
+\def\greekalphaiotasubpsiliperispomeni{\char"01F86 } % GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI: ᾆ
+\def\greekalphaiotasubdasiaperispomeni{\char"01F87 } % GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI: ᾇ
+\def\greekAlphaiotasubpsili {\char"01F88 } % GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI: ᾈ
+\def\greekAlphaiotasubdasia {\char"01F89 } % GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI: ᾉ
+\def\greekAlphaiotasubpsilivaria {\char"01F8A } % GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI: ᾊ
+\def\greekAlphaiotasubdasiavaria {\char"01F8B } % GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI: ᾋ
+\def\greekAlphaiotasubpsilitonos {\char"01F8C } % GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI: ᾌ
+\def\greekAlphaiotasubdasiatonos {\char"01F8D } % GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI: ᾍ
+\def\greekAlphaiotasubpsiliperispomeni{\char"01F8E } % GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI: ᾎ
+\def\greekAlphaiotasubdasiaperispomeni{\char"01F8F } % GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI: ᾏ
+\def\greeketaiotasubpsili {\char"01F90 } % GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI: ᾐ
+\def\greeketaiotasubdasia {\char"01F91 } % GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI: ᾑ
+\def\greeketaiotasubpsilivaria {\char"01F92 } % GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI: ᾒ
+\def\greeketaiotasubdasiavaria {\char"01F93 } % GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI: ᾓ
+\def\greeketaiotasubpsilitonos {\char"01F94 } % GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI: ᾔ
+\def\greeketaiotasubdasiatonos {\char"01F95 } % GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI: ᾕ
+\def\greeketaiotasubpsiliperispomeni {\char"01F96 } % GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI: ᾖ
+\def\greeketaiotasubdasiaperispomeni {\char"01F97 } % GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI: ᾗ
+\def\greekEtaiotasubpsili {\char"01F98 } % GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI: ᾘ
+\def\greekEtaiotasubdasia {\char"01F99 } % GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI: ᾙ
+\def\greekEtaiotasubpsilivaria {\char"01F9A } % GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI: ᾚ
+\def\greekEtaiotasubdasiavaria {\char"01F9B } % GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI: ᾛ
+\def\greekEtaiotasubpsilitonos {\char"01F9C } % GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI: ᾜ
+\def\greekEtaiotasubdasiatonos {\char"01F9D } % GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI: ᾝ
+\def\greekEtaiotasubpsiliperispomeni {\char"01F9E } % GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI: ᾞ
+\def\greekEtaiotasubdasiaperispomeni {\char"01F9F } % GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI: ᾟ
+\def\greekomegaiotasubpsili {\char"01FA0 } % GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI: ᾠ
+\def\greekomegaiotasubdasia {\char"01FA1 } % GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI: ᾡ
+\def\greekomegaiotasubpsilivaria {\char"01FA2 } % GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI: ᾢ
+\def\greekomegaiotasubdasiavaria {\char"01FA3 } % GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI: ᾣ
+\def\greekomegaiotasubpsilitonos {\char"01FA4 } % GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI: ᾤ
+\def\greekomegaiotasubdasiatonos {\char"01FA5 } % GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI: ᾥ
+\def\greekomegaiotasubpsiliperispomeni{\char"01FA6 } % GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI: ᾦ
+\def\greekomegaiotasubdasiaperispomeni{\char"01FA7 } % GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI: ᾧ
+\def\greekOmegaiotasubpsili {\char"01FA8 } % GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI: ᾨ
+\def\greekOmegaiotasubdasia {\char"01FA9 } % GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI: ᾩ
+\def\greekOmegaiotasubpsilivaria {\char"01FAA } % GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI: ᾪ
+\def\greekOmegaiotasubdasiavaria {\char"01FAB } % GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI: ᾫ
+\def\greekOmegaiotasubpsilitonos {\char"01FAC } % GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI: ᾬ
+\def\greekOmegaiotasubdasiatonos {\char"01FAD } % GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI: ᾭ
+\def\greekOmegaiotasubpsiliperispomeni{\char"01FAE } % GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI: ᾮ
+\def\greekOmegaiotasubdasiaperispomeni{\char"01FAF } % GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI: ᾯ
+\def\greekalphavrachy {\char"01FB0 } % GREEK SMALL LETTER ALPHA WITH VRACHY: ᾰ
+\def\greekalphamacron {\char"01FB1 } % GREEK SMALL LETTER ALPHA WITH MACRON: ᾱ
+\def\greekalphaiotasubvaria {\char"01FB2 } % GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI: ᾲ
+\def\greekalphaiotasub {\char"01FB3 } % GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI: ᾳ
+\def\greekalphaiotasubtonos {\char"01FB4 } % GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI: ᾴ
+\def\greekalphaperispomeni {\char"01FB6 } % GREEK SMALL LETTER ALPHA WITH PERISPOMENI: ᾶ
+\def\greekalphaiotasubperispomeni {\char"01FB7 } % GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI: ᾷ
+\def\greekAlphavrachy {\char"01FB8 } % GREEK CAPITAL LETTER ALPHA WITH VRACHY: Ᾰ
+\def\greekAlphamacron {\char"01FB9 } % GREEK CAPITAL LETTER ALPHA WITH MACRON: Ᾱ
+\def\greekAlphavaria {\char"01FBA } % GREEK CAPITAL LETTER ALPHA WITH VARIA: Ὰ
+\def\greekAlphatonos {\char"01FBB } % GREEK CAPITAL LETTER ALPHA WITH OXIA: Ά
+\def\greekAlphaiotasub {\char"01FBC } % GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI: ᾼ
+\def\greekCoronis {\char"01FBD } % GREEK KORONIS: ᾽
+\def\greekprosgegrammeni {\char"01FBE } % GREEK PROSGEGRAMMENI: ι
+\def\greekpsili {\char"01FBF } % GREEK PSILI: ᾿
+\def\greekperispomeni {\char"01FC0 } % GREEK PERISPOMENI: ῀
+\def\greekdialytikaperispomeni {\char"01FC1 } % GREEK DIALYTIKA AND PERISPOMENI: ῁
+\def\greeketaiotasubvaria {\char"01FC2 } % GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI: ῂ
+\def\greeketaiotasub {\char"01FC3 } % GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI: ῃ
+\def\greeketaiotasubtonos {\char"01FC4 } % GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI: ῄ
+\def\greeketaperispomeni {\char"01FC6 } % GREEK SMALL LETTER ETA WITH PERISPOMENI: ῆ
+\def\greeketaiotasubperispomeni {\char"01FC7 } % GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI: ῇ
+\def\greekEpsilonvaria {\char"01FC8 } % GREEK CAPITAL LETTER EPSILON WITH VARIA: Ὲ
+\def\greekEpsilontonos {\char"01FC9 } % GREEK CAPITAL LETTER EPSILON WITH OXIA: Έ
+\def\greekEtavaria {\char"01FCA } % GREEK CAPITAL LETTER ETA WITH VARIA: Ὴ
+\def\greekEtatonos {\char"01FCB } % GREEK CAPITAL LETTER ETA WITH OXIA: Ή
+\def\greekEtaiotasub {\char"01FCC } % GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI: ῌ
+\def\greekpsilivaria {\char"01FCD } % GREEK PSILI AND VARIA: ῍
+\def\greekpsilitonos {\char"01FCE } % GREEK PSILI AND OXIA: ῎
+\def\greekpsiliperispomeni {\char"01FCF } % GREEK PSILI AND PERISPOMENI: ῏
+\def\greekiotavrachy {\char"01FD0 } % GREEK SMALL LETTER IOTA WITH VRACHY: ῐ
+\def\greekiotamacron {\char"01FD1 } % GREEK SMALL LETTER IOTA WITH MACRON: ῑ
+\def\greekiotadialytikavaria {\char"01FD2 } % GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA: ῒ
+\def\greekiotadialytikatonos {\char"01FD3 } % GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA: ΐ
+\def\greekiotaperispomeni {\char"01FD6 } % GREEK SMALL LETTER IOTA WITH PERISPOMENI: ῖ
+\def\greekiotadialytikaperispomeni {\char"01FD7 } % GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI: ῗ
+\def\greekIotavrachy {\char"01FD8 } % GREEK CAPITAL LETTER IOTA WITH VRACHY: Ῐ
+\def\greekIotamacron {\char"01FD9 } % GREEK CAPITAL LETTER IOTA WITH MACRON: Ῑ
+\def\greekIotavaria {\char"01FDA } % GREEK CAPITAL LETTER IOTA WITH VARIA: Ὶ
+\def\greekIotatonos {\char"01FDB } % GREEK CAPITAL LETTER IOTA WITH OXIA: Ί
+\def\greekdasiavaria {\char"01FDD } % GREEK DASIA AND VARIA: ῝
+\def\greekdasiatonos {\char"01FDE } % GREEK DASIA AND OXIA: ῞
+\def\greekdasiaperispomeni {\char"01FDF } % GREEK DASIA AND PERISPOMENI: ῟
+\def\greekupsilonvrachy {\char"01FE0 } % GREEK SMALL LETTER UPSILON WITH VRACHY: ῠ
+\def\greekupsilonmacron {\char"01FE1 } % GREEK SMALL LETTER UPSILON WITH MACRON: ῡ
+\def\greekupsilondialytikavaria {\char"01FE2 } % GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA: ῢ
+\def\greekupsilondialytikatonos {\char"01FE3 } % GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA: ΰ
+\def\greekrhopsili {\char"01FE4 } % GREEK SMALL LETTER RHO WITH PSILI: ῤ
+\def\greekrhodasia {\char"01FE5 } % GREEK SMALL LETTER RHO WITH DASIA: ῥ
+\def\greekupsilonperispomeni {\char"01FE6 } % GREEK SMALL LETTER UPSILON WITH PERISPOMENI: ῦ
+\def\greekupsilondialytikaperispomeni {\char"01FE7 } % GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI: ῧ
+\def\greekUpsilonvrachy {\char"01FE8 } % GREEK CAPITAL LETTER UPSILON WITH VRACHY: Ῠ
+\def\greekUpsilonmacron {\char"01FE9 } % GREEK CAPITAL LETTER UPSILON WITH MACRON: Ῡ
+\def\greekUpsilonvaria {\char"01FEA } % GREEK CAPITAL LETTER UPSILON WITH VARIA: Ὺ
+\def\greekUpsilontonos {\char"01FEB } % GREEK CAPITAL LETTER UPSILON WITH OXIA: Ύ
+\def\greekRhodasia {\char"01FEC } % GREEK CAPITAL LETTER RHO WITH DASIA: Ῥ
+\def\greekdialytikavaria {\char"01FED } % GREEK DIALYTIKA AND VARIA: ῭
+\def\greekdialytikatonos {\char"01FEE } % GREEK DIALYTIKA AND OXIA: ΅
+\def\greekvaria {\char"01FEF } % GREEK VARIA: `
+\def\greekomegaiotasubvaria {\char"01FF2 } % GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI: ῲ
+\def\greekomegaiotasub {\char"01FF3 } % GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI: ῳ
+\def\greekomegaiotasubtonos {\char"01FF4 } % GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI: ῴ
+\def\greekomegaperispomeni {\char"01FF6 } % GREEK SMALL LETTER OMEGA WITH PERISPOMENI: ῶ
+\def\greekomegaiotasubperispomeni {\char"01FF7 } % GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI: ῷ
+\def\greekOmicronvaria {\char"01FF8 } % GREEK CAPITAL LETTER OMICRON WITH VARIA: Ὸ
+\def\greekOmicrontonos {\char"01FF9 } % GREEK CAPITAL LETTER OMICRON WITH OXIA: Ό
+\def\greekOmegavaria {\char"01FFA } % GREEK CAPITAL LETTER OMEGA WITH VARIA: Ὼ
+\def\greekOmegatonos {\char"01FFB } % GREEK CAPITAL LETTER OMEGA WITH OXIA: Ώ
+\def\greekOmegaiotasub {\char"01FFC } % GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI: ῼ
+\def\greekoxia {\char"01FFD } % GREEK OXIA: ´
+\def\greekdasia {\char"01FFE } % GREEK DASIA: ῾
+\def\enspace {\char"02002 } % EN SPACE:  
+\def\emspace {\char"02003 } % EM SPACE:  
+\def\threeperemspace {\char"02004 } % THREE-PER-EM SPACE:  
+\def\fourperemspace {\char"02005 } % FOUR-PER-EM SPACE:  
+\def\sixperemspace {\char"02006 } % SIX-PER-EM SPACE:  
+\def\figurespace {\char"02007 } % FIGURE SPACE:  
+\def\punctuationspace {\char"02008 } % PUNCTUATION SPACE:  
+\def\thinspace {\char"02009 } % THIN SPACE:  
+\def\figurespace {\char"0200A } % HAIR SPACE:  
+\def\zerowidthspace {\char"0200B } % ZERO WIDTH SPACE: ​
+\def\textminus {\char"02012 } % FIGURE DASH: ‒
+\def\endash {\char"02013 } % EN DASH: –
+\def\emdash {\char"02014 } % EM DASH: —
+\def\texthorizontalbar {\char"02015 } % HORIZONTAL BAR: ―
+\def\quoteleft {\char"02018 } % LEFT SINGLE QUOTATION MARK: ‘
+\def\quoteright {\char"02019 } % RIGHT SINGLE QUOTATION MARK: ’
+\def\quotesinglebase {\char"0201A } % SINGLE LOW-0x0009 QUOTATION MARK: ‚
+\def\quotedblleft {\char"0201C } % LEFT DOUBLE QUOTATION MARK: “
+\def\quotedblright {\char"0201D } % RIGHT DOUBLE QUOTATION MARK: ”
+\def\quotedblbase {\char"0201E } % DOUBLE LOW-0x0009 QUOTATION MARK: „
+\def\textdag {\char"02020 } % DAGGER: †
+\def\textddag {\char"02021 } % DOUBLE DAGGER: ‡
+\def\textbullet {\char"02022 } % BULLET: •
+\def\textellipsis {\char"02026 } % HORIZONTAL ELLIPSIS: …
+\def\narrownobreakspace {\char"0202F } % NARROW NO-BREAK SPACE:  
+\def\perthousand {\char"02030 } % PER MILLE SIGN: ‰
+\def\guilsingleleft {\char"02039 } % SINGLE LEFT-POINTING ANGLE QUOTATION MARK: ‹
+\def\guilsingleright {\char"0203A } % SINGLE RIGHT-POINTING ANGLE QUOTATION MARK: ›
+\def\textfraction {\char"02044 } % FRACTION SLASH: ⁄
+\def\medspace {\char"0205F } % MEDIUM MATHEMATICAL SPACE:  
+\def\textdong {\char"020AB } % DONG SIGN: ₫
+\def\texteuro {\char"020AC } % EURO SIGN: €
+\def\textcelsius {\char"02103 } % DEGREE CELSIUS: ℃
+\def\textnumero {\char"02116 } % NUMERO SIGN: №
+\def\textcircledP {\char"02117 } % SOUND RECORDING COPYRIGHT: ℗
+\def\trademark {\char"02122 } % TRADE MARK SIGN: ™
+\def\textounce {\char"02125 } % OUNCE SIGN: ℥
+\def\textohm {\char"02126 } % OHM SIGN: Ω
+\def\textmho {\char"02127 } % INVERTED OHM SIGN: ℧
+\def\textkelvin {\char"0212A } % KELVIN SIGN: K
+\def\textAngstrom {\char"0212B } % ANGSTROM SIGN: Å
+\def\onethird {\char"02153 } % VULGAR FRACTION ONE THIRD: ⅓
+\def\twothirds {\char"02154 } % VULGAR FRACTION TWO THIRDS: ⅔
+\def\onefifth {\char"02155 } % VULGAR FRACTION ONE FIFTH: ⅕
+\def\twofifths {\char"02156 } % VULGAR FRACTION TWO FIFTHS: ⅖
+\def\threefifths {\char"02157 } % VULGAR FRACTION THREE FIFTHS: ⅗
+\def\fourfifths {\char"02158 } % VULGAR FRACTION FOUR FIFTHS: ⅘
+\def\onesixth {\char"02159 } % VULGAR FRACTION ONE SIXTH: ⅙
+\def\fivesixths {\char"0215A } % VULGAR FRACTION FIVE SIXTHS: ⅚
+\def\oneeighth {\char"0215B } % VULGAR FRACTION ONE EIGHTH: ⅛
+\def\threeeighths {\char"0215C } % VULGAR FRACTION THREE EIGHTHS: ⅜
+\def\fiveeighths {\char"0215D } % VULGAR FRACTION FIVE EIGHTHS: ⅝
+\def\seveneighths {\char"0215E } % VULGAR FRACTION SEVEN EIGHTHS: ⅞
+\def\romanI {\char"02160 } % ROMAN NUMERAL ONE: Ⅰ
+\def\romanII {\char"02161 } % ROMAN NUMERAL TWO: Ⅱ
+\def\romanIII {\char"02162 } % ROMAN NUMERAL THREE: Ⅲ
+\def\romanIV {\char"02163 } % ROMAN NUMERAL FOUR: Ⅳ
+\def\romanV {\char"02164 } % ROMAN NUMERAL FIVE: Ⅴ
+\def\romanVI {\char"02165 } % ROMAN NUMERAL SIX: Ⅵ
+\def\romanVII {\char"02166 } % ROMAN NUMERAL SEVEN: Ⅶ
+\def\romanVIII {\char"02167 } % ROMAN NUMERAL EIGHT: Ⅷ
+\def\romanIX {\char"02168 } % ROMAN NUMERAL NINE: Ⅸ
+\def\romanX {\char"02169 } % ROMAN NUMERAL TEN: Ⅹ
+\def\romanXI {\char"0216A } % ROMAN NUMERAL ELEVEN: Ⅺ
+\def\romanXII {\char"0216B } % ROMAN NUMERAL TWELVE: Ⅻ
+\def\romanL {\char"0216C } % ROMAN NUMERAL FIFTY: Ⅼ
+\def\romanC {\char"0216D } % ROMAN NUMERAL ONE HUNDRED: Ⅽ
+\def\romanD {\char"0216E } % ROMAN NUMERAL FIVE HUNDRED: Ⅾ
+\def\romanM {\char"0216F } % ROMAN NUMERAL ONE THOUSAND: Ⅿ
+\def\romani {\char"02170 } % SMALL ROMAN NUMERAL ONE: ⅰ
+\def\romanii {\char"02171 } % SMALL ROMAN NUMERAL TWO: ⅱ
+\def\romaniii {\char"02172 } % SMALL ROMAN NUMERAL THREE: ⅲ
+\def\romaniv {\char"02173 } % SMALL ROMAN NUMERAL FOUR: ⅳ
+\def\romanv {\char"02174 } % SMALL ROMAN NUMERAL FIVE: ⅴ
+\def\romanvi {\char"02175 } % SMALL ROMAN NUMERAL SIX: ⅵ
+\def\romanvii {\char"02176 } % SMALL ROMAN NUMERAL SEVEN: ⅶ
+\def\romanviii {\char"02177 } % SMALL ROMAN NUMERAL EIGHT: ⅷ
+\def\romanix {\char"02178 } % SMALL ROMAN NUMERAL NINE: ⅸ
+\def\romanx {\char"02179 } % SMALL ROMAN NUMERAL TEN: ⅹ
+\def\romanxi {\char"0217A } % SMALL ROMAN NUMERAL ELEVEN: ⅺ
+\def\romanxii {\char"0217B } % SMALL ROMAN NUMERAL TWELVE: ⅻ
+\def\romanl {\char"0217C } % SMALL ROMAN NUMERAL FIFTY: ⅼ
+\def\romanc {\char"0217D } % SMALL ROMAN NUMERAL ONE HUNDRED: ⅽ
+\def\romand {\char"0217E } % SMALL ROMAN NUMERAL FIVE HUNDRED: ⅾ
+\def\romanm {\char"0217F } % SMALL ROMAN NUMERAL ONE THOUSAND: ⅿ
+\def\carriagereturn {\char"021B5 } % DOWNWARDS ARROW WITH CORNER LEFTWARDS: ↵
+\def\ideographicspace {\char"03000 } % IDEOGRAPHIC SPACE:  
+\def\ideographichalffillspace {\char"0303F } % IDEOGRAPHIC HALF FILL SPACE: 〿
+\def\ffligature {\char"0FB00 } % LATIN SMALL LIGATURE FF: ff
+\def\filigature {\char"0FB01 } % LATIN SMALL LIGATURE FI: fi
+\def\flligature {\char"0FB02 } % LATIN SMALL LIGATURE FL: fl
+\def\ffiligature {\char"0FB03 } % LATIN SMALL LIGATURE FFI: ffi
+\def\fflligature {\char"0FB04 } % LATIN SMALL LIGATURE FFL: ffl
+\def\stligature {\char"0FB06 } % LATIN SMALL LIGATURE ST: st
+\def\zerowidthnobreakspace {\char"0FEFF } % ZERO WIDTH NO-BREAK SPACE: 
+
+\endinput
diff --git a/Master/texmf-dist/tex/context/base/xetx-cls.mkii b/Master/texmf-dist/tex/context/base/xetx-cls.mkii
new file mode 100644
index 00000000000..6ce696f716a
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/xetx-cls.mkii
@@ -0,0 +1,378 @@
+% filename : xetx-cls.tex
+% comment : generated by mtxrun --script chars --xtx
+% author : Hans Hagen, PRAGMA-ADE, Hasselt NL
+% copyright: PRAGMA ADE / ConTeXt Development Team
+% license : see context related readme files
+
+% some character classes for xetex; seems to be rather hard coded, these numbers
+% and also a mix of several classes; here we do linebreaks
+
+\defineXTXcharinjectionclass[lb:cl]
+\defineXTXcharinjectionclass[lb:ex]
+\defineXTXcharinjectionclass[lb:ns]
+\defineXTXcharinjectionclass[lb:id]
+\defineXTXcharinjectionclass[lb:op]
+\defineXTXcharinjectionclass[lb:cm]
+\defineXTXcharinjectionclass[lb:is]
+
+\dofastrecurse{"00000}{"00008}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dofastrecurse{"0000E}{"0001F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dosetXTXcharacterclass{"00021}{lb:ex}
+\dosetXTXcharacterclass{"00028}{lb:op}
+\dosetXTXcharacterclass{"00029}{lb:cl}
+\dosetXTXcharacterclass{"0002C}{lb:is}
+\dosetXTXcharacterclass{"0002E}{lb:is}
+\dofastrecurse{"0003A}{"0003B}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:is}}
+\dosetXTXcharacterclass{"0003F}{lb:ex}
+\dosetXTXcharacterclass{"0005B}{lb:op}
+\dosetXTXcharacterclass{"0005D}{lb:cl}
+\dosetXTXcharacterclass{"0007B}{lb:op}
+\dosetXTXcharacterclass{"0007D}{lb:cl}
+\dofastrecurse{"0007F}{"00084}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dofastrecurse{"00086}{"0009F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dofastrecurse{"00300}{"0034E}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dofastrecurse{"00350}{"0035B}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dofastrecurse{"00363}{"0036F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dosetXTXcharacterclass{"0037E}{lb:is}
+\dofastrecurse{"00483}{"00489}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dosetXTXcharacterclass{"00589}{lb:is}
+\dofastrecurse{"00591}{"005BD}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dosetXTXcharacterclass{"005BF}{lb:cm}
+\dofastrecurse{"005C1}{"005C2}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dofastrecurse{"005C4}{"005C5}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dosetXTXcharacterclass{"005C6}{lb:ex}
+\dosetXTXcharacterclass{"005C7}{lb:cm}
+\dosetXTXcharacterclass{"0060C}{lb:ex}
+\dosetXTXcharacterclass{"0060D}{lb:is}
+\dofastrecurse{"00610}{"00615}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dofastrecurse{"0061B}{"0061F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:ex}}
+\dofastrecurse{"0064B}{"0065E}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dosetXTXcharacterclass{"0066A}{lb:ex}
+\dosetXTXcharacterclass{"00670}{lb:cm}
+\dosetXTXcharacterclass{"006D4}{lb:ex}
+\dofastrecurse{"006D6}{"006DC}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dofastrecurse{"006DE}{"006E4}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dofastrecurse{"006E7}{"006E8}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dofastrecurse{"006EA}{"006ED}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dosetXTXcharacterclass{"00711}{lb:cm}
+\dofastrecurse{"00730}{"0074A}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dofastrecurse{"007A6}{"007B0}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dofastrecurse{"007EB}{"007F3}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dosetXTXcharacterclass{"007F8}{lb:is}
+\dosetXTXcharacterclass{"007F9}{lb:ex}
+\dofastrecurse{"00901}{"00903}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dosetXTXcharacterclass{"0093C}{lb:cm}
+\dofastrecurse{"0093E}{"0094D}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dofastrecurse{"00951}{"00954}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dofastrecurse{"00962}{"00963}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dofastrecurse{"00981}{"00983}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dosetXTXcharacterclass{"009BC}{lb:cm}
+\dofastrecurse{"009BE}{"009CD}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dosetXTXcharacterclass{"009D7}{lb:cm}
+\dofastrecurse{"009E2}{"009E3}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dofastrecurse{"00A01}{"00A03}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dofastrecurse{"00A3C}{"00A4D}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dofastrecurse{"00A70}{"00A71}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dofastrecurse{"00A81}{"00A83}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dosetXTXcharacterclass{"00ABC}{lb:cm}
+\dofastrecurse{"00ABE}{"00ACD}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dofastrecurse{"00AE2}{"00AE3}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dofastrecurse{"00B01}{"00B03}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dosetXTXcharacterclass{"00B3C}{lb:cm}
+\dofastrecurse{"00B3E}{"00B57}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dosetXTXcharacterclass{"00B82}{lb:cm}
+\dofastrecurse{"00BBE}{"00BD7}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dofastrecurse{"00C01}{"00C03}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dofastrecurse{"00C3E}{"00C56}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dofastrecurse{"00C82}{"00C83}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dosetXTXcharacterclass{"00CBC}{lb:cm}
+\dofastrecurse{"00CBE}{"00CD6}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dofastrecurse{"00CE2}{"00CE3}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dofastrecurse{"00D02}{"00D03}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dofastrecurse{"00D3E}{"00D57}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dofastrecurse{"00D82}{"00D83}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dofastrecurse{"00DCA}{"00DF3}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dofastrecurse{"00F0D}{"00F11}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:ex}}
+\dosetXTXcharacterclass{"00F14}{lb:ex}
+\dofastrecurse{"00F18}{"00F19}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dosetXTXcharacterclass{"00F35}{lb:cm}
+\dosetXTXcharacterclass{"00F37}{lb:cm}
+\dosetXTXcharacterclass{"00F39}{lb:cm}
+\dosetXTXcharacterclass{"00F3A}{lb:op}
+\dosetXTXcharacterclass{"00F3B}{lb:cl}
+\dosetXTXcharacterclass{"00F3C}{lb:op}
+\dosetXTXcharacterclass{"00F3D}{lb:cl}
+\dofastrecurse{"00F3E}{"00F3F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dofastrecurse{"00F71}{"00F7E}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dofastrecurse{"00F80}{"00F84}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dofastrecurse{"00F86}{"00F87}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dofastrecurse{"00F90}{"00FBC}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dosetXTXcharacterclass{"00FC6}{lb:cm}
+\dosetXTXcharacterclass{"0135F}{lb:cm}
+\dosetXTXcharacterclass{"0169B}{lb:op}
+\dosetXTXcharacterclass{"0169C}{lb:cl}
+\dofastrecurse{"01712}{"01714}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dofastrecurse{"01732}{"01734}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dofastrecurse{"01752}{"01753}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dofastrecurse{"01772}{"01773}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dosetXTXcharacterclass{"017D6}{lb:ns}
+\dofastrecurse{"0180B}{"0180D}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dosetXTXcharacterclass{"018A9}{lb:cm}
+\dofastrecurse{"01920}{"0193B}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dofastrecurse{"01944}{"01945}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:ex}}
+\dofastrecurse{"01A17}{"01A1B}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dofastrecurse{"01B00}{"01B04}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dofastrecurse{"01B34}{"01B44}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dofastrecurse{"01B6B}{"01B73}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dofastrecurse{"01DC0}{"01DFF}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dofastrecurse{"0200C}{"0200F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dosetXTXcharacterclass{"0201A}{lb:op}
+\dosetXTXcharacterclass{"0201E}{lb:op}
+\dofastrecurse{"0202A}{"0202E}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dofastrecurse{"0203C}{"0203D}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:ns}}
+\dosetXTXcharacterclass{"02044}{lb:is}
+\dosetXTXcharacterclass{"02045}{lb:op}
+\dosetXTXcharacterclass{"02046}{lb:cl}
+\dofastrecurse{"02047}{"02049}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:ns}}
+\dofastrecurse{"0206A}{"0206F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dosetXTXcharacterclass{"0207D}{lb:op}
+\dosetXTXcharacterclass{"0207E}{lb:cl}
+\dosetXTXcharacterclass{"0208D}{lb:op}
+\dosetXTXcharacterclass{"0208E}{lb:cl}
+\dofastrecurse{"020D0}{"020EF}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dosetXTXcharacterclass{"02329}{lb:op}
+\dosetXTXcharacterclass{"0232A}{lb:cl}
+\dofastrecurse{"02762}{"02763}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:ex}}
+\dosetXTXcharacterclass{"02768}{lb:op}
+\dosetXTXcharacterclass{"02769}{lb:cl}
+\dosetXTXcharacterclass{"0276A}{lb:op}
+\dosetXTXcharacterclass{"0276B}{lb:cl}
+\dosetXTXcharacterclass{"0276C}{lb:op}
+\dosetXTXcharacterclass{"0276D}{lb:cl}
+\dosetXTXcharacterclass{"0276E}{lb:op}
+\dosetXTXcharacterclass{"0276F}{lb:cl}
+\dosetXTXcharacterclass{"02770}{lb:op}
+\dosetXTXcharacterclass{"02771}{lb:cl}
+\dosetXTXcharacterclass{"02772}{lb:op}
+\dosetXTXcharacterclass{"02773}{lb:cl}
+\dosetXTXcharacterclass{"02774}{lb:op}
+\dosetXTXcharacterclass{"02775}{lb:cl}
+\dosetXTXcharacterclass{"027C5}{lb:op}
+\dosetXTXcharacterclass{"027C6}{lb:cl}
+\dosetXTXcharacterclass{"027E6}{lb:op}
+\dosetXTXcharacterclass{"027E7}{lb:cl}
+\dosetXTXcharacterclass{"027E8}{lb:op}
+\dosetXTXcharacterclass{"027E9}{lb:cl}
+\dosetXTXcharacterclass{"027EA}{lb:op}
+\dosetXTXcharacterclass{"027EB}{lb:cl}
+\dosetXTXcharacterclass{"02983}{lb:op}
+\dosetXTXcharacterclass{"02984}{lb:cl}
+\dosetXTXcharacterclass{"02985}{lb:op}
+\dosetXTXcharacterclass{"02986}{lb:cl}
+\dosetXTXcharacterclass{"02987}{lb:op}
+\dosetXTXcharacterclass{"02988}{lb:cl}
+\dosetXTXcharacterclass{"02989}{lb:op}
+\dosetXTXcharacterclass{"0298A}{lb:cl}
+\dosetXTXcharacterclass{"0298B}{lb:op}
+\dosetXTXcharacterclass{"0298C}{lb:cl}
+\dosetXTXcharacterclass{"0298D}{lb:op}
+\dosetXTXcharacterclass{"0298E}{lb:cl}
+\dosetXTXcharacterclass{"0298F}{lb:op}
+\dosetXTXcharacterclass{"02990}{lb:cl}
+\dosetXTXcharacterclass{"02991}{lb:op}
+\dosetXTXcharacterclass{"02992}{lb:cl}
+\dosetXTXcharacterclass{"02993}{lb:op}
+\dosetXTXcharacterclass{"02994}{lb:cl}
+\dosetXTXcharacterclass{"02995}{lb:op}
+\dosetXTXcharacterclass{"02996}{lb:cl}
+\dosetXTXcharacterclass{"02997}{lb:op}
+\dosetXTXcharacterclass{"02998}{lb:cl}
+\dosetXTXcharacterclass{"029D8}{lb:op}
+\dosetXTXcharacterclass{"029D9}{lb:cl}
+\dosetXTXcharacterclass{"029DA}{lb:op}
+\dosetXTXcharacterclass{"029DB}{lb:cl}
+\dosetXTXcharacterclass{"029FC}{lb:op}
+\dosetXTXcharacterclass{"029FD}{lb:cl}
+\dofastrecurse{"02E80}{"03000}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
+\dofastrecurse{"03001}{"03002}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cl}}
+\dofastrecurse{"03003}{"03004}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
+\dosetXTXcharacterclass{"03005}{lb:ns}
+\dofastrecurse{"03006}{"03007}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
+\dosetXTXcharacterclass{"03008}{lb:op}
+\dosetXTXcharacterclass{"03009}{lb:cl}
+\dosetXTXcharacterclass{"0300A}{lb:op}
+\dosetXTXcharacterclass{"0300B}{lb:cl}
+\dosetXTXcharacterclass{"0300C}{lb:op}
+\dosetXTXcharacterclass{"0300D}{lb:cl}
+\dosetXTXcharacterclass{"0300E}{lb:op}
+\dosetXTXcharacterclass{"0300F}{lb:cl}
+\dosetXTXcharacterclass{"03010}{lb:op}
+\dosetXTXcharacterclass{"03011}{lb:cl}
+\dofastrecurse{"03012}{"03013}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
+\dosetXTXcharacterclass{"03014}{lb:op}
+\dosetXTXcharacterclass{"03015}{lb:cl}
+\dosetXTXcharacterclass{"03016}{lb:op}
+\dosetXTXcharacterclass{"03017}{lb:cl}
+\dosetXTXcharacterclass{"03018}{lb:op}
+\dosetXTXcharacterclass{"03019}{lb:cl}
+\dosetXTXcharacterclass{"0301A}{lb:op}
+\dosetXTXcharacterclass{"0301B}{lb:cl}
+\dosetXTXcharacterclass{"0301C}{lb:ns}
+\dosetXTXcharacterclass{"0301D}{lb:op}
+\dofastrecurse{"0301E}{"0301F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cl}}
+\dofastrecurse{"03020}{"03029}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
+\dofastrecurse{"0302A}{"0302F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dofastrecurse{"03030}{"0303A}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
+\dofastrecurse{"0303B}{"0303C}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:ns}}
+\dofastrecurse{"0303D}{"0303F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
+\dosetXTXcharacterclass{"03041}{lb:ns}
+\dosetXTXcharacterclass{"03042}{lb:id}
+\dosetXTXcharacterclass{"03043}{lb:ns}
+\dosetXTXcharacterclass{"03044}{lb:id}
+\dosetXTXcharacterclass{"03045}{lb:ns}
+\dosetXTXcharacterclass{"03046}{lb:id}
+\dosetXTXcharacterclass{"03047}{lb:ns}
+\dosetXTXcharacterclass{"03048}{lb:id}
+\dosetXTXcharacterclass{"03049}{lb:ns}
+\dofastrecurse{"0304A}{"03062}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
+\dosetXTXcharacterclass{"03063}{lb:ns}
+\dofastrecurse{"03064}{"03082}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
+\dosetXTXcharacterclass{"03083}{lb:ns}
+\dosetXTXcharacterclass{"03084}{lb:id}
+\dosetXTXcharacterclass{"03085}{lb:ns}
+\dosetXTXcharacterclass{"03086}{lb:id}
+\dosetXTXcharacterclass{"03087}{lb:ns}
+\dofastrecurse{"03088}{"0308D}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
+\dosetXTXcharacterclass{"0308E}{lb:ns}
+\dofastrecurse{"0308F}{"03094}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
+\dofastrecurse{"03095}{"03096}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:ns}}
+\dofastrecurse{"03099}{"0309A}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dofastrecurse{"0309B}{"0309E}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:ns}}
+\dosetXTXcharacterclass{"0309F}{lb:id}
+\dofastrecurse{"030A0}{"030A1}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:ns}}
+\dosetXTXcharacterclass{"030A2}{lb:id}
+\dosetXTXcharacterclass{"030A3}{lb:ns}
+\dosetXTXcharacterclass{"030A4}{lb:id}
+\dosetXTXcharacterclass{"030A5}{lb:ns}
+\dosetXTXcharacterclass{"030A6}{lb:id}
+\dosetXTXcharacterclass{"030A7}{lb:ns}
+\dosetXTXcharacterclass{"030A8}{lb:id}
+\dosetXTXcharacterclass{"030A9}{lb:ns}
+\dofastrecurse{"030AA}{"030C2}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
+\dosetXTXcharacterclass{"030C3}{lb:ns}
+\dofastrecurse{"030C4}{"030E2}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
+\dosetXTXcharacterclass{"030E3}{lb:ns}
+\dosetXTXcharacterclass{"030E4}{lb:id}
+\dosetXTXcharacterclass{"030E5}{lb:ns}
+\dosetXTXcharacterclass{"030E6}{lb:id}
+\dosetXTXcharacterclass{"030E7}{lb:ns}
+\dofastrecurse{"030E8}{"030ED}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
+\dosetXTXcharacterclass{"030EE}{lb:ns}
+\dofastrecurse{"030EF}{"030F4}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
+\dofastrecurse{"030F5}{"030F6}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:ns}}
+\dofastrecurse{"030F7}{"030FA}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
+\dofastrecurse{"030FB}{"030FE}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:ns}}
+\dofastrecurse{"030FF}{"031CF}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
+\dofastrecurse{"031F0}{"031FF}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:ns}}
+\dofastrecurse{"03200}{"03400}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
+\dofastrecurse{"04E00}{"0A014}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
+\dosetXTXcharacterclass{"0A015}{lb:ns}
+\dofastrecurse{"0A016}{"0A4C6}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
+\dosetXTXcharacterclass{"0A802}{lb:cm}
+\dosetXTXcharacterclass{"0A806}{lb:cm}
+\dosetXTXcharacterclass{"0A80B}{lb:cm}
+\dofastrecurse{"0A823}{"0A827}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dofastrecurse{"0A876}{"0A877}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:ex}}
+\dofastrecurse{"0F900}{"0FAD9}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
+\dosetXTXcharacterclass{"0FB1E}{lb:cm}
+\dosetXTXcharacterclass{"0FD3E}{lb:op}
+\dosetXTXcharacterclass{"0FD3F}{lb:cl}
+\dofastrecurse{"0FE00}{"0FE0F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dosetXTXcharacterclass{"0FE10}{lb:is}
+\dofastrecurse{"0FE11}{"0FE12}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cl}}
+\dofastrecurse{"0FE13}{"0FE14}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:is}}
+\dofastrecurse{"0FE15}{"0FE16}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:ex}}
+\dosetXTXcharacterclass{"0FE17}{lb:op}
+\dosetXTXcharacterclass{"0FE18}{lb:cl}
+\dofastrecurse{"0FE20}{"0FE23}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dofastrecurse{"0FE30}{"0FE34}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
+\dosetXTXcharacterclass{"0FE35}{lb:op}
+\dosetXTXcharacterclass{"0FE36}{lb:cl}
+\dosetXTXcharacterclass{"0FE37}{lb:op}
+\dosetXTXcharacterclass{"0FE38}{lb:cl}
+\dosetXTXcharacterclass{"0FE39}{lb:op}
+\dosetXTXcharacterclass{"0FE3A}{lb:cl}
+\dosetXTXcharacterclass{"0FE3B}{lb:op}
+\dosetXTXcharacterclass{"0FE3C}{lb:cl}
+\dosetXTXcharacterclass{"0FE3D}{lb:op}
+\dosetXTXcharacterclass{"0FE3E}{lb:cl}
+\dosetXTXcharacterclass{"0FE3F}{lb:op}
+\dosetXTXcharacterclass{"0FE40}{lb:cl}
+\dosetXTXcharacterclass{"0FE41}{lb:op}
+\dosetXTXcharacterclass{"0FE42}{lb:cl}
+\dosetXTXcharacterclass{"0FE43}{lb:op}
+\dosetXTXcharacterclass{"0FE44}{lb:cl}
+\dofastrecurse{"0FE45}{"0FE46}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
+\dosetXTXcharacterclass{"0FE47}{lb:op}
+\dosetXTXcharacterclass{"0FE48}{lb:cl}
+\dofastrecurse{"0FE49}{"0FE4F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
+\dosetXTXcharacterclass{"0FE50}{lb:cl}
+\dosetXTXcharacterclass{"0FE51}{lb:id}
+\dosetXTXcharacterclass{"0FE52}{lb:cl}
+\dofastrecurse{"0FE54}{"0FE55}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:ns}}
+\dofastrecurse{"0FE56}{"0FE57}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:ex}}
+\dosetXTXcharacterclass{"0FE58}{lb:id}
+\dosetXTXcharacterclass{"0FE59}{lb:op}
+\dosetXTXcharacterclass{"0FE5A}{lb:cl}
+\dosetXTXcharacterclass{"0FE5B}{lb:op}
+\dosetXTXcharacterclass{"0FE5C}{lb:cl}
+\dosetXTXcharacterclass{"0FE5D}{lb:op}
+\dosetXTXcharacterclass{"0FE5E}{lb:cl}
+\dofastrecurse{"0FE5F}{"0FE68}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
+\dosetXTXcharacterclass{"0FE6B}{lb:id}
+\dosetXTXcharacterclass{"0FF01}{lb:ex}
+\dofastrecurse{"0FF02}{"0FF03}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
+\dofastrecurse{"0FF06}{"0FF07}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
+\dosetXTXcharacterclass{"0FF08}{lb:op}
+\dosetXTXcharacterclass{"0FF09}{lb:cl}
+\dofastrecurse{"0FF0A}{"0FF0B}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
+\dosetXTXcharacterclass{"0FF0C}{lb:cl}
+\dosetXTXcharacterclass{"0FF0D}{lb:id}
+\dosetXTXcharacterclass{"0FF0E}{lb:cl}
+\dofastrecurse{"0FF0F}{"0FF19}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
+\dofastrecurse{"0FF1A}{"0FF1B}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:ns}}
+\dofastrecurse{"0FF1C}{"0FF1E}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
+\dosetXTXcharacterclass{"0FF1F}{lb:ex}
+\dofastrecurse{"0FF20}{"0FF3A}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
+\dosetXTXcharacterclass{"0FF3B}{lb:op}
+\dosetXTXcharacterclass{"0FF3C}{lb:id}
+\dosetXTXcharacterclass{"0FF3D}{lb:cl}
+\dofastrecurse{"0FF3E}{"0FF5A}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
+\dosetXTXcharacterclass{"0FF5B}{lb:op}
+\dosetXTXcharacterclass{"0FF5C}{lb:id}
+\dosetXTXcharacterclass{"0FF5D}{lb:cl}
+\dosetXTXcharacterclass{"0FF5E}{lb:id}
+\dosetXTXcharacterclass{"0FF5F}{lb:op}
+\dofastrecurse{"0FF60}{"0FF61}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cl}}
+\dosetXTXcharacterclass{"0FF62}{lb:op}
+\dofastrecurse{"0FF63}{"0FF64}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cl}}
+\dosetXTXcharacterclass{"0FF65}{lb:ns}
+\dofastrecurse{"0FF67}{"0FF70}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:ns}}
+\dofastrecurse{"0FF9E}{"0FF9F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:ns}}
+\dofastrecurse{"0FFE2}{"0FFE4}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
+\dofastrecurse{"0FFF9}{"0FFFB}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dofastrecurse{"10A01}{"10A0F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dofastrecurse{"10A38}{"10A3F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dofastrecurse{"1D165}{"1D169}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dofastrecurse{"1D16D}{"1D182}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dofastrecurse{"1D185}{"1D18B}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dofastrecurse{"1D1AA}{"1D1AD}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dofastrecurse{"1D242}{"1D244}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+\dofastrecurse{"20000}{"2FA1D}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
+\dofastrecurse{"E0001}{"E01EF}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
+
+\dofastrecurse{"03400}{"04DB5}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
+\dofastrecurse{"04E00}{"09FBB}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
+\dofastrecurse{"20000}{"2A6D6}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
+
+\endinput
diff --git a/Master/texmf-dist/tex/context/base/xetx-ini.mkii b/Master/texmf-dist/tex/context/base/xetx-ini.mkii
new file mode 100644
index 00000000000..db3cccabdbf
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/xetx-ini.mkii
@@ -0,0 +1,132 @@
+%D \module
+%D [ file=xetx-ini,
+%D version=2004.09.11,
+%D title=\CONTEXT\ System Macros,
+%D subtitle=\XETEX\ Initializations,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D We moved some code around and now have reorganized the xetex
+%D code in the \type {xetx} module namespace.
+
+\unprotect
+
+%D Some defaults.
+
+\ifdefined\XeTeXuseglyphmetrics
+ \XeTeXuseglyphmetrics\plusone
+\fi
+
+%D Character classes.
+
+\newcount\nofXTXcharinjections
+
+\def\defineXTXcharinjectionclass[#1]%
+ {\global\advance\nofXTXcharinjections\plusone
+ \setxvalue{@xtx@cc@#1}{\number\nofXTXcharinjections}}
+
+\setxvalue{@xtx@cc@\s!default}{0}
+
+\def\getXTXcharinjectionclass#1%
+ {\csname @xtx@cc@\ifcsname @xtx@cc@#1\endcsname#1\else\s!default\fi\endcsname}
+
+\let\currentXTXcharinjection\s!default
+
+\def\startXTXcharinjecxtions[#1]%
+ {\pushmacro\currentXTXcharinjection
+ \def\currentXTXcharinjection{#1}}
+
+\def\stopXTXcharinjections
+ {\popmacro\currentXTXcharinjection}
+
+\def\defineXTXcharinjection #1 #2 %
+ {\doifnumberelse{#1}{\edef\XTXclassone{\number#1}}{\edef\XTXclassone{\getXTXcharinjectionclas{#1}}}%
+ \doifnumberelse{#2}{\edef\XTXclasstwo{\number#2}}{\edef\XTXclasstwo{\getXTXcharinjectionclas{#2}}}%
+ \expanded{\dodefineXTXcharinjection{\XTXclassone}{\XTXclasstwo}}}
+
+\def\setXTXcharcodes #1 #2 #3 % encoding syntax
+ {\catcode#1=11 \lccode #1=#2 \uccode #1=#3 }
+
+\def\dosetXTXcharcodes#1#2#3% compact syntax
+ {\catcode#1=11 \lccode #1=#2 \uccode #1=#3 }
+
+\ifdefined\XeTeXinterchartoks
+
+ \long\def\dodefineXTXcharinjection#1#2#3%
+ {\XeTeXinterchartoks #1 #2 {\XTXcharinjection{#1}{#2}}%
+ \setvalue{@xtx@ch@\currentXTXcharinjection @#1@#2@}{#3}}
+
+ \def\setXTXcharacterclass #1 #2 %
+ {\doifnumberelse{#2}
+ {\XeTeXcharclass#1=#2\relax}
+ {\XeTeXcharclass#1=\getXTXcharinjectionclass{#2}\relax}}
+
+ \def\dosetXTXcharacterclass#1% #2 fast one
+ {\XeTeXcharclass#1=\getXTXcharinjectionclass}
+
+\else
+
+ \long\def\dodefineXTXcharinjection#1#2#3%
+ {\setvalue{@xtx@ch@\currentXTXcharinjection @#1@#2@}{#3}}
+
+ \def\setXTXcharacterclass #1 #2 %
+ {}
+
+\fi
+
+\chardef\XTXcharinjectionsmode=1
+
+\letvalue{@xtx@ch@\s!empty}\empty
+
+\def\XTXcharinjection#1#2%
+ {\csname @xtx@ch@%
+ \ifcase\XTXcharinjectionsmode
+ \s!empty
+ \or
+ \ifcsname @xtx@ch@\currentXTXcharinjection @#1@#2@\endcsname \currentXTXcharinjection @#1@#2@\fi
+ \or
+ \ifcsname @xtx@ch@\currentXTXcharinjection @#1@#2@\endcsname \currentXTXcharinjection @#1@#2@\else
+ \ifcsname @xtx@ch@\s!default @#1@#2@\endcsname \s!default @#1@#2@\else
+ \s!empty
+ \fi\fi
+ \else
+ \s!empty
+ \fi
+ \endcsname}
+
+\def\enableXTXcharinjections[#1]%
+ {\def\currentXTXcharinjection{#1}}
+
+\protect \endinput
+
+\starttext
+
+\startXTXcharinjecxtions[default]
+ \defineXTXcharinjection 10 40 {[default]}
+\stopXTXcharinjections
+
+\startXTXcharinjecxtions[whatever]
+ \defineXTXcharinjection 20 40 {[whatever]}
+\stopXTXcharinjections
+
+\chardef\XTXcharinjectionsmode=0
+
+\enableXTXcharinjections[default] A\XTXcharinjection{10}{40}B\XTXcharinjection{20}{40}C
+\enableXTXcharinjections[whatever] A\XTXcharinjection{10}{40}B\XTXcharinjection{20}{40}C
+
+\chardef\XTXcharinjectionsmode=1
+
+\enableXTXcharinjections[default] A\XTXcharinjection{10}{40}B\XTXcharinjection{20}{40}C
+\enableXTXcharinjections[whatever] A\XTXcharinjection{10}{40}B\XTXcharinjection{20}{40}C
+
+\chardef\XTXcharinjectionsmode=2
+
+\enableXTXcharinjections[default] A\XTXcharinjection{10}{40}B\XTXcharinjection{20}{40}C
+\enableXTXcharinjections[whatever] A\XTXcharinjection{10}{40}B\XTXcharinjection{20}{40}C
+
+\stoptext
diff --git a/Master/texmf-dist/tex/context/base/xetx-utf.mkii b/Master/texmf-dist/tex/context/base/xetx-utf.mkii
new file mode 100644
index 00000000000..79bd0074541
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/xetx-utf.mkii
@@ -0,0 +1,1989 @@
+% filename : xetx-utf.tex
+% comment : generated by mtxrun --script chars --xtx
+% author : Hans Hagen, PRAGMA-ADE, Hasselt NL
+% copyright: PRAGMA ADE / ConTeXt Development Team
+% license : see context related readme files
+
+% lc/uc/catcode mappings
+
+\setXTXcharcodes "00041 "00061 "00041 % LATIN CAPITAL LETTER A
+\setXTXcharcodes "00042 "00062 "00042 % LATIN CAPITAL LETTER B
+\setXTXcharcodes "00043 "00063 "00043 % LATIN CAPITAL LETTER C
+\setXTXcharcodes "00044 "00064 "00044 % LATIN CAPITAL LETTER D
+\setXTXcharcodes "00045 "00065 "00045 % LATIN CAPITAL LETTER E
+\setXTXcharcodes "00046 "00066 "00046 % LATIN CAPITAL LETTER F
+\setXTXcharcodes "00047 "00067 "00047 % LATIN CAPITAL LETTER G
+\setXTXcharcodes "00048 "00068 "00048 % LATIN CAPITAL LETTER H
+\setXTXcharcodes "00049 "00069 "00049 % LATIN CAPITAL LETTER I
+\setXTXcharcodes "0004A "0006A "0004A % LATIN CAPITAL LETTER J
+\setXTXcharcodes "0004B "0006B "0004B % LATIN CAPITAL LETTER K
+\setXTXcharcodes "0004C "0006C "0004C % LATIN CAPITAL LETTER L
+\setXTXcharcodes "0004D "0006D "0004D % LATIN CAPITAL LETTER M
+\setXTXcharcodes "0004E "0006E "0004E % LATIN CAPITAL LETTER N
+\setXTXcharcodes "0004F "0006F "0004F % LATIN CAPITAL LETTER O
+\setXTXcharcodes "00050 "00070 "00050 % LATIN CAPITAL LETTER P
+\setXTXcharcodes "00051 "00071 "00051 % LATIN CAPITAL LETTER Q
+\setXTXcharcodes "00052 "00072 "00052 % LATIN CAPITAL LETTER R
+\setXTXcharcodes "00053 "00073 "00053 % LATIN CAPITAL LETTER S
+\setXTXcharcodes "00054 "00074 "00054 % LATIN CAPITAL LETTER T
+\setXTXcharcodes "00055 "00075 "00055 % LATIN CAPITAL LETTER U
+\setXTXcharcodes "00056 "00076 "00056 % LATIN CAPITAL LETTER V
+\setXTXcharcodes "00057 "00077 "00057 % LATIN CAPITAL LETTER W
+\setXTXcharcodes "00058 "00078 "00058 % LATIN CAPITAL LETTER X
+\setXTXcharcodes "00059 "00079 "00059 % LATIN CAPITAL LETTER Y
+\setXTXcharcodes "0005A "0007A "0005A % LATIN CAPITAL LETTER Z
+\setXTXcharcodes "00061 "00061 "00041 % LATIN SMALL LETTER A
+\setXTXcharcodes "00062 "00062 "00042 % LATIN SMALL LETTER B
+\setXTXcharcodes "00063 "00063 "00043 % LATIN SMALL LETTER C
+\setXTXcharcodes "00064 "00064 "00044 % LATIN SMALL LETTER D
+\setXTXcharcodes "00065 "00065 "00045 % LATIN SMALL LETTER E
+\setXTXcharcodes "00066 "00066 "00046 % LATIN SMALL LETTER F
+\setXTXcharcodes "00067 "00067 "00047 % LATIN SMALL LETTER G
+\setXTXcharcodes "00068 "00068 "00048 % LATIN SMALL LETTER H
+\setXTXcharcodes "00069 "00069 "00049 % LATIN SMALL LETTER I
+\setXTXcharcodes "0006A "0006A "0004A % LATIN SMALL LETTER J
+\setXTXcharcodes "0006B "0006B "0004B % LATIN SMALL LETTER K
+\setXTXcharcodes "0006C "0006C "0004C % LATIN SMALL LETTER L
+\setXTXcharcodes "0006D "0006D "0004D % LATIN SMALL LETTER M
+\setXTXcharcodes "0006E "0006E "0004E % LATIN SMALL LETTER N
+\setXTXcharcodes "0006F "0006F "0004F % LATIN SMALL LETTER O
+\setXTXcharcodes "00070 "00070 "00050 % LATIN SMALL LETTER P
+\setXTXcharcodes "00071 "00071 "00051 % LATIN SMALL LETTER Q
+\setXTXcharcodes "00072 "00072 "00052 % LATIN SMALL LETTER R
+\setXTXcharcodes "00073 "00073 "00053 % LATIN SMALL LETTER S
+\setXTXcharcodes "00074 "00074 "00054 % LATIN SMALL LETTER T
+\setXTXcharcodes "00075 "00075 "00055 % LATIN SMALL LETTER U
+\setXTXcharcodes "00076 "00076 "00056 % LATIN SMALL LETTER V
+\setXTXcharcodes "00077 "00077 "00057 % LATIN SMALL LETTER W
+\setXTXcharcodes "00078 "00078 "00058 % LATIN SMALL LETTER X
+\setXTXcharcodes "00079 "00079 "00059 % LATIN SMALL LETTER Y
+\setXTXcharcodes "0007A "0007A "0005A % LATIN SMALL LETTER Z
+\setXTXcharcodes "000AA "000AA "000AA % FEMININE ORDINAL INDICATOR
+\setXTXcharcodes "000B5 "000B5 "0039C % MICRO SIGN
+\setXTXcharcodes "000BA "000BA "000BA % MASCULINE ORDINAL INDICATOR
+\setXTXcharcodes "000C0 "000E0 "000C0 % LATIN CAPITAL LETTER A WITH GRAVE
+\setXTXcharcodes "000C1 "000E1 "000C1 % LATIN CAPITAL LETTER A WITH ACUTE
+\setXTXcharcodes "000C2 "000E2 "000C2 % LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+\setXTXcharcodes "000C3 "000E3 "000C3 % LATIN CAPITAL LETTER A WITH TILDE
+\setXTXcharcodes "000C4 "000E4 "000C4 % LATIN CAPITAL LETTER A WITH DIAERESIS
+\setXTXcharcodes "000C5 "000E5 "000C5 % LATIN CAPITAL LETTER A WITH RING ABOVE
+\setXTXcharcodes "000C6 "000E6 "000C6 % LATIN CAPITAL LETTER AE
+\setXTXcharcodes "000C7 "000E7 "000C7 % LATIN CAPITAL LETTER C WITH CEDILLA
+\setXTXcharcodes "000C8 "000E8 "000C8 % LATIN CAPITAL LETTER E WITH GRAVE
+\setXTXcharcodes "000C9 "000E9 "000C9 % LATIN CAPITAL LETTER E WITH ACUTE
+\setXTXcharcodes "000CA "000EA "000CA % LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+\setXTXcharcodes "000CB "000EB "000CB % LATIN CAPITAL LETTER E WITH DIAERESIS
+\setXTXcharcodes "000CC "000EC "000CC % LATIN CAPITAL LETTER I WITH GRAVE
+\setXTXcharcodes "000CD "000ED "000CD % LATIN CAPITAL LETTER I WITH ACUTE
+\setXTXcharcodes "000CE "000EE "000CE % LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+\setXTXcharcodes "000CF "000EF "000CF % LATIN CAPITAL LETTER I WITH DIAERESIS
+\setXTXcharcodes "000D0 "000F0 "000D0 % LATIN CAPITAL LETTER ETH
+\setXTXcharcodes "000D1 "000F1 "000D1 % LATIN CAPITAL LETTER N WITH TILDE
+\setXTXcharcodes "000D2 "000F2 "000D2 % LATIN CAPITAL LETTER O WITH GRAVE
+\setXTXcharcodes "000D3 "000F3 "000D3 % LATIN CAPITAL LETTER O WITH ACUTE
+\setXTXcharcodes "000D4 "000F4 "000D4 % LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+\setXTXcharcodes "000D5 "000F5 "000D5 % LATIN CAPITAL LETTER O WITH TILDE
+\setXTXcharcodes "000D6 "000F6 "000D6 % LATIN CAPITAL LETTER O WITH DIAERESIS
+\setXTXcharcodes "000D8 "000F8 "000D8 % LATIN CAPITAL LETTER O WITH STROKE
+\setXTXcharcodes "000D9 "000F9 "000D9 % LATIN CAPITAL LETTER U WITH GRAVE
+\setXTXcharcodes "000DA "000FA "000DA % LATIN CAPITAL LETTER U WITH ACUTE
+\setXTXcharcodes "000DB "000FB "000DB % LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+\setXTXcharcodes "000DC "000FC "000DC % LATIN CAPITAL LETTER U WITH DIAERESIS
+\setXTXcharcodes "000DD "000FD "000DD % LATIN CAPITAL LETTER Y WITH ACUTE
+\setXTXcharcodes "000DE "000FE "000DE % LATIN CAPITAL LETTER THORN
+\setXTXcharcodes "000DF "000DF "000DF % LATIN SMALL LETTER SHARP S
+\setXTXcharcodes "000E0 "000E0 "000C0 % LATIN SMALL LETTER A WITH GRAVE
+\setXTXcharcodes "000E1 "000E1 "000C1 % LATIN SMALL LETTER A WITH ACUTE
+\setXTXcharcodes "000E2 "000E2 "000C2 % LATIN SMALL LETTER A WITH CIRCUMFLEX
+\setXTXcharcodes "000E3 "000E3 "000C3 % LATIN SMALL LETTER A WITH TILDE
+\setXTXcharcodes "000E4 "000E4 "000C4 % LATIN SMALL LETTER A WITH DIAERESIS
+\setXTXcharcodes "000E5 "000E5 "000C5 % LATIN SMALL LETTER A WITH RING ABOVE
+\setXTXcharcodes "000E6 "000E6 "000C6 % LATIN SMALL LETTER AE
+\setXTXcharcodes "000E7 "000E7 "000C7 % LATIN SMALL LETTER C WITH CEDILLA
+\setXTXcharcodes "000E8 "000E8 "000C8 % LATIN SMALL LETTER E WITH GRAVE
+\setXTXcharcodes "000E9 "000E9 "000C9 % LATIN SMALL LETTER E WITH ACUTE
+\setXTXcharcodes "000EA "000EA "000CA % LATIN SMALL LETTER E WITH CIRCUMFLEX
+\setXTXcharcodes "000EB "000EB "000CB % LATIN SMALL LETTER E WITH DIAERESIS
+\setXTXcharcodes "000EC "000EC "000CC % LATIN SMALL LETTER I WITH GRAVE
+\setXTXcharcodes "000ED "000ED "000CD % LATIN SMALL LETTER I WITH ACUTE
+\setXTXcharcodes "000EE "000EE "000CE % LATIN SMALL LETTER I WITH CIRCUMFLEX
+\setXTXcharcodes "000EF "000EF "000CF % LATIN SMALL LETTER I WITH DIAERESIS
+\setXTXcharcodes "000F0 "000F0 "000D0 % LATIN SMALL LETTER ETH
+\setXTXcharcodes "000F1 "000F1 "000D1 % LATIN SMALL LETTER N WITH TILDE
+\setXTXcharcodes "000F2 "000F2 "000D2 % LATIN SMALL LETTER O WITH GRAVE
+\setXTXcharcodes "000F3 "000F3 "000D3 % LATIN SMALL LETTER O WITH ACUTE
+\setXTXcharcodes "000F4 "000F4 "000D4 % LATIN SMALL LETTER O WITH CIRCUMFLEX
+\setXTXcharcodes "000F5 "000F5 "000D5 % LATIN SMALL LETTER O WITH TILDE
+\setXTXcharcodes "000F6 "000F6 "000D6 % LATIN SMALL LETTER O WITH DIAERESIS
+\setXTXcharcodes "000F8 "000F8 "000D8 % LATIN SMALL LETTER O WITH STROKE
+\setXTXcharcodes "000F9 "000F9 "000D9 % LATIN SMALL LETTER U WITH GRAVE
+\setXTXcharcodes "000FA "000FA "000DA % LATIN SMALL LETTER U WITH ACUTE
+\setXTXcharcodes "000FB "000FB "000DB % LATIN SMALL LETTER U WITH CIRCUMFLEX
+\setXTXcharcodes "000FC "000FC "000DC % LATIN SMALL LETTER U WITH DIAERESIS
+\setXTXcharcodes "000FD "000FD "000DD % LATIN SMALL LETTER Y WITH ACUTE
+\setXTXcharcodes "000FE "000FE "000DE % LATIN SMALL LETTER THORN
+\setXTXcharcodes "000FF "000FF "00178 % LATIN SMALL LETTER Y WITH DIAERESIS
+\setXTXcharcodes "00100 "00101 "00100 % LATIN CAPITAL LETTER A WITH MACRON
+\setXTXcharcodes "00101 "00101 "00100 % LATIN SMALL LETTER A WITH MACRON
+\setXTXcharcodes "00102 "00103 "00102 % LATIN CAPITAL LETTER A WITH BREVE
+\setXTXcharcodes "00103 "00103 "00102 % LATIN SMALL LETTER A WITH BREVE
+\setXTXcharcodes "00104 "00105 "00104 % LATIN CAPITAL LETTER A WITH OGONEK
+\setXTXcharcodes "00105 "00105 "00104 % LATIN SMALL LETTER A WITH OGONEK
+\setXTXcharcodes "00106 "00107 "00106 % LATIN CAPITAL LETTER C WITH ACUTE
+\setXTXcharcodes "00107 "00107 "00106 % LATIN SMALL LETTER C WITH ACUTE
+\setXTXcharcodes "00108 "00109 "00108 % LATIN CAPITAL LETTER C WITH CIRCUMFLEX
+\setXTXcharcodes "00109 "00109 "00108 % LATIN SMALL LETTER C WITH CIRCUMFLEX
+\setXTXcharcodes "0010A "0010B "0010A % LATIN CAPITAL LETTER C WITH DOT ABOVE
+\setXTXcharcodes "0010B "0010B "0010A % LATIN SMALL LETTER C WITH DOT ABOVE
+\setXTXcharcodes "0010C "0010D "0010C % LATIN CAPITAL LETTER C WITH CARON
+\setXTXcharcodes "0010D "0010D "0010C % LATIN SMALL LETTER C WITH CARON
+\setXTXcharcodes "0010E "0010F "0010E % LATIN CAPITAL LETTER D WITH CARON
+\setXTXcharcodes "0010F "0010F "0010E % LATIN SMALL LETTER D WITH CARON
+\setXTXcharcodes "00110 "00111 "00110 % LATIN CAPITAL LETTER D WITH STROKE
+\setXTXcharcodes "00111 "00111 "00110 % LATIN SMALL LETTER D WITH STROKE
+\setXTXcharcodes "00112 "00113 "00112 % LATIN CAPITAL LETTER E WITH MACRON
+\setXTXcharcodes "00113 "00113 "00112 % LATIN SMALL LETTER E WITH MACRON
+\setXTXcharcodes "00114 "00115 "00114 % LATIN CAPITAL LETTER E WITH BREVE
+\setXTXcharcodes "00115 "00115 "00114 % LATIN SMALL LETTER E WITH BREVE
+\setXTXcharcodes "00116 "00117 "00116 % LATIN CAPITAL LETTER E WITH DOT ABOVE
+\setXTXcharcodes "00117 "00117 "00116 % LATIN SMALL LETTER E WITH DOT ABOVE
+\setXTXcharcodes "00118 "00119 "00118 % LATIN CAPITAL LETTER E WITH OGONEK
+\setXTXcharcodes "00119 "00119 "00118 % LATIN SMALL LETTER E WITH OGONEK
+\setXTXcharcodes "0011A "0011B "0011A % LATIN CAPITAL LETTER E WITH CARON
+\setXTXcharcodes "0011B "0011B "0011A % LATIN SMALL LETTER E WITH CARON
+\setXTXcharcodes "0011C "0011D "0011C % LATIN CAPITAL LETTER G WITH CIRCUMFLEX
+\setXTXcharcodes "0011D "0011D "0011C % LATIN SMALL LETTER G WITH CIRCUMFLEX
+\setXTXcharcodes "0011E "0011F "0011E % LATIN CAPITAL LETTER G WITH BREVE
+\setXTXcharcodes "0011F "0011F "0011E % LATIN SMALL LETTER G WITH BREVE
+\setXTXcharcodes "00120 "00121 "00120 % LATIN CAPITAL LETTER G WITH DOT ABOVE
+\setXTXcharcodes "00121 "00121 "00120 % LATIN SMALL LETTER G WITH DOT ABOVE
+\setXTXcharcodes "00122 "00123 "00122 % LATIN CAPITAL LETTER G WITH CEDILLA
+\setXTXcharcodes "00123 "00123 "00122 % LATIN SMALL LETTER G WITH CEDILLA
+\setXTXcharcodes "00124 "00125 "00124 % LATIN CAPITAL LETTER H WITH CIRCUMFLEX
+\setXTXcharcodes "00125 "00125 "00124 % LATIN SMALL LETTER H WITH CIRCUMFLEX
+\setXTXcharcodes "00126 "00127 "00126 % LATIN CAPITAL LETTER H WITH STROKE
+\setXTXcharcodes "00127 "00127 "00126 % LATIN SMALL LETTER H WITH STROKE
+\setXTXcharcodes "00128 "00129 "00128 % LATIN CAPITAL LETTER I WITH TILDE
+\setXTXcharcodes "00129 "00129 "00128 % LATIN SMALL LETTER I WITH TILDE
+\setXTXcharcodes "0012A "0012B "0012A % LATIN CAPITAL LETTER I WITH MACRON
+\setXTXcharcodes "0012B "0012B "0012A % LATIN SMALL LETTER I WITH MACRON
+\setXTXcharcodes "0012C "0012D "0012C % LATIN CAPITAL LETTER I WITH BREVE
+\setXTXcharcodes "0012D "0012D "0012C % LATIN SMALL LETTER I WITH BREVE
+\setXTXcharcodes "0012E "0012F "0012E % LATIN CAPITAL LETTER I WITH OGONEK
+\setXTXcharcodes "0012F "0012F "0012E % LATIN SMALL LETTER I WITH OGONEK
+\setXTXcharcodes "00130 "00069 "00130 % LATIN CAPITAL LETTER I WITH DOT ABOVE
+\setXTXcharcodes "00131 "00131 "00049 % LATIN SMALL LETTER DOTLESS I
+\setXTXcharcodes "00132 "00133 "00132 % LATIN CAPITAL LIGATURE IJ
+\setXTXcharcodes "00133 "00133 "00132 % LATIN SMALL LIGATURE IJ
+\setXTXcharcodes "00134 "00135 "00134 % LATIN CAPITAL LETTER J WITH CIRCUMFLEX
+\setXTXcharcodes "00135 "00135 "00134 % LATIN SMALL LETTER J WITH CIRCUMFLEX
+\setXTXcharcodes "00136 "00137 "00136 % LATIN CAPITAL LETTER K WITH CEDILLA
+\setXTXcharcodes "00137 "00137 "00136 % LATIN SMALL LETTER K WITH CEDILLA
+\setXTXcharcodes "00138 "00138 "00138 % LATIN SMALL LETTER KRA
+\setXTXcharcodes "00139 "0013A "00139 % LATIN CAPITAL LETTER L WITH ACUTE
+\setXTXcharcodes "0013A "0013A "00139 % LATIN SMALL LETTER L WITH ACUTE
+\setXTXcharcodes "0013B "0013C "0013B % LATIN CAPITAL LETTER L WITH CEDILLA
+\setXTXcharcodes "0013C "0013C "0013B % LATIN SMALL LETTER L WITH CEDILLA
+\setXTXcharcodes "0013D "0013E "0013D % LATIN CAPITAL LETTER L WITH CARON
+\setXTXcharcodes "0013E "0013E "0013D % LATIN SMALL LETTER L WITH CARON
+\setXTXcharcodes "0013F "00140 "0013F % LATIN CAPITAL LETTER L WITH MIDDLE DOT
+\setXTXcharcodes "00140 "00140 "0013F % LATIN SMALL LETTER L WITH MIDDLE DOT
+\setXTXcharcodes "00141 "00142 "00141 % LATIN CAPITAL LETTER L WITH STROKE
+\setXTXcharcodes "00142 "00142 "00141 % LATIN SMALL LETTER L WITH STROKE
+\setXTXcharcodes "00143 "00144 "00143 % LATIN CAPITAL LETTER N WITH ACUTE
+\setXTXcharcodes "00144 "00144 "00143 % LATIN SMALL LETTER N WITH ACUTE
+\setXTXcharcodes "00145 "00146 "00145 % LATIN CAPITAL LETTER N WITH CEDILLA
+\setXTXcharcodes "00146 "00146 "00145 % LATIN SMALL LETTER N WITH CEDILLA
+\setXTXcharcodes "00147 "00148 "00147 % LATIN CAPITAL LETTER N WITH CARON
+\setXTXcharcodes "00148 "00148 "00147 % LATIN SMALL LETTER N WITH CARON
+\setXTXcharcodes "00149 "00149 "00149 % LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
+\setXTXcharcodes "0014A "0014B "0014A % LATIN CAPITAL LETTER ENG
+\setXTXcharcodes "0014B "0014B "0014A % LATIN SMALL LETTER ENG
+\setXTXcharcodes "0014C "0014D "0014C % LATIN CAPITAL LETTER O WITH MACRON
+\setXTXcharcodes "0014D "0014D "0014C % LATIN SMALL LETTER O WITH MACRON
+\setXTXcharcodes "0014E "0014F "0014E % LATIN CAPITAL LETTER O WITH BREVE
+\setXTXcharcodes "0014F "0014F "0014E % LATIN SMALL LETTER O WITH BREVE
+\setXTXcharcodes "00150 "00151 "00150 % LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+\setXTXcharcodes "00151 "00151 "00150 % LATIN SMALL LETTER O WITH DOUBLE ACUTE
+\setXTXcharcodes "00152 "00153 "00152 % LATIN CAPITAL LIGATURE OE
+\setXTXcharcodes "00153 "00153 "00152 % LATIN SMALL LIGATURE OE
+\setXTXcharcodes "00154 "00155 "00154 % LATIN CAPITAL LETTER R WITH ACUTE
+\setXTXcharcodes "00155 "00155 "00154 % LATIN SMALL LETTER R WITH ACUTE
+\setXTXcharcodes "00156 "00157 "00156 % LATIN CAPITAL LETTER R WITH CEDILLA
+\setXTXcharcodes "00157 "00157 "00156 % LATIN SMALL LETTER R WITH CEDILLA
+\setXTXcharcodes "00158 "00159 "00158 % LATIN CAPITAL LETTER R WITH CARON
+\setXTXcharcodes "00159 "00159 "00158 % LATIN SMALL LETTER R WITH CARON
+\setXTXcharcodes "0015A "0015B "0015A % LATIN CAPITAL LETTER S WITH ACUTE
+\setXTXcharcodes "0015B "0015B "0015A % LATIN SMALL LETTER S WITH ACUTE
+\setXTXcharcodes "0015C "0015D "0015C % LATIN CAPITAL LETTER S WITH CIRCUMFLEX
+\setXTXcharcodes "0015D "0015D "0015C % LATIN SMALL LETTER S WITH CIRCUMFLEX
+\setXTXcharcodes "0015E "0015F "0015E % LATIN CAPITAL LETTER S WITH CEDILLA
+\setXTXcharcodes "0015F "0015F "0015E % LATIN SMALL LETTER S WITH CEDILLA
+\setXTXcharcodes "00160 "00161 "00160 % LATIN CAPITAL LETTER S WITH CARON
+\setXTXcharcodes "00161 "00161 "00160 % LATIN SMALL LETTER S WITH CARON
+\setXTXcharcodes "00162 "00163 "00162 % LATIN CAPITAL LETTER T WITH CEDILLA
+\setXTXcharcodes "00163 "00163 "00162 % LATIN SMALL LETTER T WITH CEDILLA
+\setXTXcharcodes "00164 "00165 "00164 % LATIN CAPITAL LETTER T WITH CARON
+\setXTXcharcodes "00165 "00165 "00164 % LATIN SMALL LETTER T WITH CARON
+\setXTXcharcodes "00166 "00167 "00166 % LATIN CAPITAL LETTER T WITH STROKE
+\setXTXcharcodes "00167 "00167 "00166 % LATIN SMALL LETTER T WITH STROKE
+\setXTXcharcodes "00168 "00169 "00168 % LATIN CAPITAL LETTER U WITH TILDE
+\setXTXcharcodes "00169 "00169 "00168 % LATIN SMALL LETTER U WITH TILDE
+\setXTXcharcodes "0016A "0016B "0016A % LATIN CAPITAL LETTER U WITH MACRON
+\setXTXcharcodes "0016B "0016B "0016A % LATIN SMALL LETTER U WITH MACRON
+\setXTXcharcodes "0016C "0016D "0016C % LATIN CAPITAL LETTER U WITH BREVE
+\setXTXcharcodes "0016D "0016D "0016C % LATIN SMALL LETTER U WITH BREVE
+\setXTXcharcodes "0016E "0016F "0016E % LATIN CAPITAL LETTER U WITH RING ABOVE
+\setXTXcharcodes "0016F "0016F "0016E % LATIN SMALL LETTER U WITH RING ABOVE
+\setXTXcharcodes "00170 "00171 "00170 % LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+\setXTXcharcodes "00171 "00171 "00170 % LATIN SMALL LETTER U WITH DOUBLE ACUTE
+\setXTXcharcodes "00172 "00173 "00172 % LATIN CAPITAL LETTER U WITH OGONEK
+\setXTXcharcodes "00173 "00173 "00172 % LATIN SMALL LETTER U WITH OGONEK
+\setXTXcharcodes "00174 "00175 "00174 % LATIN CAPITAL LETTER W WITH CIRCUMFLEX
+\setXTXcharcodes "00175 "00175 "00174 % LATIN SMALL LETTER W WITH CIRCUMFLEX
+\setXTXcharcodes "00176 "00177 "00176 % LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
+\setXTXcharcodes "00177 "00177 "00176 % LATIN SMALL LETTER Y WITH CIRCUMFLEX
+\setXTXcharcodes "00178 "000FF "00178 % LATIN CAPITAL LETTER Y WITH DIAERESIS
+\setXTXcharcodes "00179 "0017A "00179 % LATIN CAPITAL LETTER Z WITH ACUTE
+\setXTXcharcodes "0017A "0017A "00179 % LATIN SMALL LETTER Z WITH ACUTE
+\setXTXcharcodes "0017B "0017C "0017B % LATIN CAPITAL LETTER Z WITH DOT ABOVE
+\setXTXcharcodes "0017C "0017C "0017B % LATIN SMALL LETTER Z WITH DOT ABOVE
+\setXTXcharcodes "0017D "0017E "0017D % LATIN CAPITAL LETTER Z WITH CARON
+\setXTXcharcodes "0017E "0017E "0017D % LATIN SMALL LETTER Z WITH CARON
+\setXTXcharcodes "0017F "0017F "00053 % LATIN SMALL LETTER LONG S
+\setXTXcharcodes "00180 "00180 "00243 % LATIN SMALL LETTER B WITH STROKE
+\setXTXcharcodes "00181 "00253 "00181 % LATIN CAPITAL LETTER B WITH HOOK
+\setXTXcharcodes "00182 "00183 "00182 % LATIN CAPITAL LETTER B WITH TOPBAR
+\setXTXcharcodes "00183 "00183 "00182 % LATIN SMALL LETTER B WITH TOPBAR
+\setXTXcharcodes "00184 "00185 "00184 % LATIN CAPITAL LETTER TONE SIX
+\setXTXcharcodes "00185 "00185 "00184 % LATIN SMALL LETTER TONE SIX
+\setXTXcharcodes "00186 "00254 "00186 % LATIN CAPITAL LETTER OPEN O
+\setXTXcharcodes "00187 "00188 "00187 % LATIN CAPITAL LETTER C WITH HOOK
+\setXTXcharcodes "00188 "00188 "00187 % LATIN SMALL LETTER C WITH HOOK
+\setXTXcharcodes "00189 "00256 "00189 % LATIN CAPITAL LETTER AFRICAN D
+\setXTXcharcodes "0018A "00257 "0018A % LATIN CAPITAL LETTER D WITH HOOK
+\setXTXcharcodes "0018B "0018C "0018B % LATIN CAPITAL LETTER D WITH TOPBAR
+\setXTXcharcodes "0018C "0018C "0018B % LATIN SMALL LETTER D WITH TOPBAR
+\setXTXcharcodes "0018D "0018D "0018D % LATIN SMALL LETTER TURNED DELTA
+\setXTXcharcodes "0018E "001DD "0018E % LATIN CAPITAL LETTER REVERSED E
+\setXTXcharcodes "0018F "00259 "0018F % LATIN CAPITAL LETTER SCHWA
+\setXTXcharcodes "00190 "0025B "00190 % LATIN CAPITAL LETTER OPEN E
+\setXTXcharcodes "00191 "00192 "00191 % LATIN CAPITAL LETTER F WITH HOOK
+\setXTXcharcodes "00192 "00192 "00191 % LATIN SMALL LETTER F WITH HOOK
+\setXTXcharcodes "00193 "00260 "00193 % LATIN CAPITAL LETTER G WITH HOOK
+\setXTXcharcodes "00194 "00263 "00194 % LATIN CAPITAL LETTER GAMMA
+\setXTXcharcodes "00195 "00195 "001F6 % LATIN SMALL LETTER HV
+\setXTXcharcodes "00196 "00269 "00196 % LATIN CAPITAL LETTER IOTA
+\setXTXcharcodes "00197 "00268 "00197 % LATIN CAPITAL LETTER I WITH STROKE
+\setXTXcharcodes "00198 "00199 "00198 % LATIN CAPITAL LETTER K WITH HOOK
+\setXTXcharcodes "00199 "00199 "00198 % LATIN SMALL LETTER K WITH HOOK
+\setXTXcharcodes "0019A "0019A "0023D % LATIN SMALL LETTER L WITH BAR
+\setXTXcharcodes "0019B "0019B "0019B % LATIN SMALL LETTER LAMBDA WITH STROKE
+\setXTXcharcodes "0019C "0026F "0019C % LATIN CAPITAL LETTER TURNED M
+\setXTXcharcodes "0019D "00272 "0019D % LATIN CAPITAL LETTER N WITH LEFT HOOK
+\setXTXcharcodes "0019E "0019E "00220 % LATIN SMALL LETTER N WITH LONG RIGHT LEG
+\setXTXcharcodes "0019F "00275 "0019F % LATIN CAPITAL LETTER O WITH MIDDLE TILDE
+\setXTXcharcodes "001A0 "001A1 "001A0 % LATIN CAPITAL LETTER O WITH HORN
+\setXTXcharcodes "001A1 "001A1 "001A0 % LATIN SMALL LETTER O WITH HORN
+\setXTXcharcodes "001A2 "001A3 "001A2 % LATIN CAPITAL LETTER OI
+\setXTXcharcodes "001A3 "001A3 "001A2 % LATIN SMALL LETTER OI
+\setXTXcharcodes "001A4 "001A5 "001A4 % LATIN CAPITAL LETTER P WITH HOOK
+\setXTXcharcodes "001A5 "001A5 "001A4 % LATIN SMALL LETTER P WITH HOOK
+\setXTXcharcodes "001A6 "00280 "001A6 % LATIN LETTER YR
+\setXTXcharcodes "001A7 "001A8 "001A7 % LATIN CAPITAL LETTER TONE TWO
+\setXTXcharcodes "001A8 "001A8 "001A7 % LATIN SMALL LETTER TONE TWO
+\setXTXcharcodes "001A9 "00283 "001A9 % LATIN CAPITAL LETTER ESH
+\setXTXcharcodes "001AA "001AA "001AA % LATIN LETTER REVERSED ESH LOOP
+\setXTXcharcodes "001AB "001AB "001AB % LATIN SMALL LETTER T WITH PALATAL HOOK
+\setXTXcharcodes "001AC "001AD "001AC % LATIN CAPITAL LETTER T WITH HOOK
+\setXTXcharcodes "001AD "001AD "001AC % LATIN SMALL LETTER T WITH HOOK
+\setXTXcharcodes "001AE "00288 "001AE % LATIN CAPITAL LETTER T WITH RETROFLEX HOOK
+\setXTXcharcodes "001AF "001B0 "001AF % LATIN CAPITAL LETTER U WITH HORN
+\setXTXcharcodes "001B0 "001B0 "001AF % LATIN SMALL LETTER U WITH HORN
+\setXTXcharcodes "001B1 "0028A "001B1 % LATIN CAPITAL LETTER UPSILON
+\setXTXcharcodes "001B2 "0028B "001B2 % LATIN CAPITAL LETTER V WITH HOOK
+\setXTXcharcodes "001B3 "001B4 "001B3 % LATIN CAPITAL LETTER Y WITH HOOK
+\setXTXcharcodes "001B4 "001B4 "001B3 % LATIN SMALL LETTER Y WITH HOOK
+\setXTXcharcodes "001B5 "001B6 "001B5 % LATIN CAPITAL LETTER Z WITH STROKE
+\setXTXcharcodes "001B6 "001B6 "001B5 % LATIN SMALL LETTER Z WITH STROKE
+\setXTXcharcodes "001B7 "00292 "001B7 % LATIN CAPITAL LETTER EZH
+\setXTXcharcodes "001B8 "001B9 "001B8 % LATIN CAPITAL LETTER EZH REVERSED
+\setXTXcharcodes "001B9 "001B9 "001B8 % LATIN SMALL LETTER EZH REVERSED
+\setXTXcharcodes "001BA "001BA "001BA % LATIN SMALL LETTER EZH WITH TAIL
+\setXTXcharcodes "001BC "001BD "001BC % LATIN CAPITAL LETTER TONE FIVE
+\setXTXcharcodes "001BD "001BD "001BC % LATIN SMALL LETTER TONE FIVE
+\setXTXcharcodes "001BE "001BE "001BE % LATIN LETTER INVERTED GLOTTAL STOP WITH STROKE
+\setXTXcharcodes "001BF "001BF "001F7 % LATIN LETTER WYNN
+\setXTXcharcodes "001C4 "001C6 "001C5 % LATIN CAPITAL LETTER DZ WITH CARON
+\setXTXcharcodes "001C5 "001C6 "001C4 % LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON
+\setXTXcharcodes "001C6 "001C6 "001C4 % LATIN SMALL LETTER DZ WITH CARON
+\setXTXcharcodes "001C7 "001C9 "001C8 % LATIN CAPITAL LETTER LJ
+\setXTXcharcodes "001C8 "001C9 "001C7 % LATIN CAPITAL LETTER L WITH SMALL LETTER J
+\setXTXcharcodes "001C9 "001C9 "001C7 % LATIN SMALL LETTER LJ
+\setXTXcharcodes "001CA "001CC "001CB % LATIN CAPITAL LETTER NJ
+\setXTXcharcodes "001CB "001CC "001CA % LATIN CAPITAL LETTER N WITH SMALL LETTER J
+\setXTXcharcodes "001CC "001CC "001CA % LATIN SMALL LETTER NJ
+\setXTXcharcodes "001CD "001CE "001CD % LATIN CAPITAL LETTER A WITH CARON
+\setXTXcharcodes "001CE "001CE "001CD % LATIN SMALL LETTER A WITH CARON
+\setXTXcharcodes "001CF "001D0 "001CF % LATIN CAPITAL LETTER I WITH CARON
+\setXTXcharcodes "001D0 "001D0 "001CF % LATIN SMALL LETTER I WITH CARON
+\setXTXcharcodes "001D1 "001D2 "001D1 % LATIN CAPITAL LETTER O WITH CARON
+\setXTXcharcodes "001D2 "001D2 "001D1 % LATIN SMALL LETTER O WITH CARON
+\setXTXcharcodes "001D3 "001D4 "001D3 % LATIN CAPITAL LETTER U WITH CARON
+\setXTXcharcodes "001D4 "001D4 "001D3 % LATIN SMALL LETTER U WITH CARON
+\setXTXcharcodes "001D5 "001D6 "001D5 % LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+\setXTXcharcodes "001D6 "001D6 "001D5 % LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+\setXTXcharcodes "001D7 "001D8 "001D7 % LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+\setXTXcharcodes "001D8 "001D8 "001D7 % LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+\setXTXcharcodes "001D9 "001DA "001D9 % LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+\setXTXcharcodes "001DA "001DA "001D9 % LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+\setXTXcharcodes "001DB "001DC "001DB % LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+\setXTXcharcodes "001DC "001DC "001DB % LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+\setXTXcharcodes "001DD "001DD "0018E % LATIN SMALL LETTER TURNED E
+\setXTXcharcodes "001DE "001DF "001DE % LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+\setXTXcharcodes "001DF "001DF "001DE % LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+\setXTXcharcodes "001E0 "001E1 "001E0 % LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
+\setXTXcharcodes "001E1 "001E1 "001E0 % LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON
+\setXTXcharcodes "001E2 "001E3 "001E2 % LATIN CAPITAL LETTER AE WITH MACRON
+\setXTXcharcodes "001E3 "001E3 "001E2 % LATIN SMALL LETTER AE WITH MACRON
+\setXTXcharcodes "001E4 "001E5 "001E4 % LATIN CAPITAL LETTER G WITH STROKE
+\setXTXcharcodes "001E5 "001E5 "001E4 % LATIN SMALL LETTER G WITH STROKE
+\setXTXcharcodes "001E6 "001E7 "001E6 % LATIN CAPITAL LETTER G WITH CARON
+\setXTXcharcodes "001E7 "001E7 "001E6 % LATIN SMALL LETTER G WITH CARON
+\setXTXcharcodes "001E8 "001E9 "001E8 % LATIN CAPITAL LETTER K WITH CARON
+\setXTXcharcodes "001E9 "001E9 "001E8 % LATIN SMALL LETTER K WITH CARON
+\setXTXcharcodes "001EA "001EB "001EA % LATIN CAPITAL LETTER O WITH OGONEK
+\setXTXcharcodes "001EB "001EB "001EA % LATIN SMALL LETTER O WITH OGONEK
+\setXTXcharcodes "001EC "001ED "001EC % LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
+\setXTXcharcodes "001ED "001ED "001EC % LATIN SMALL LETTER O WITH OGONEK AND MACRON
+\setXTXcharcodes "001EE "001EF "001EE % LATIN CAPITAL LETTER EZH WITH CARON
+\setXTXcharcodes "001EF "001EF "001EE % LATIN SMALL LETTER EZH WITH CARON
+\setXTXcharcodes "001F0 "001F0 "001F0 % LATIN SMALL LETTER J WITH CARON
+\setXTXcharcodes "001F1 "001F3 "001F2 % LATIN CAPITAL LETTER DZ
+\setXTXcharcodes "001F2 "001F3 "001F1 % LATIN CAPITAL LETTER D WITH SMALL LETTER Z
+\setXTXcharcodes "001F3 "001F3 "001F1 % LATIN SMALL LETTER DZ
+\setXTXcharcodes "001F4 "001F5 "001F4 % LATIN CAPITAL LETTER G WITH ACUTE
+\setXTXcharcodes "001F5 "001F5 "001F4 % LATIN SMALL LETTER G WITH ACUTE
+\setXTXcharcodes "001F6 "00195 "001F6 % LATIN CAPITAL LETTER HWAIR
+\setXTXcharcodes "001F7 "001BF "001F7 % LATIN CAPITAL LETTER WYNN
+\setXTXcharcodes "001F8 "001F9 "001F8 % LATIN CAPITAL LETTER N WITH GRAVE
+\setXTXcharcodes "001F9 "001F9 "001F8 % LATIN SMALL LETTER N WITH GRAVE
+\setXTXcharcodes "001FA "001FB "001FA % LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+\setXTXcharcodes "001FB "001FB "001FA % LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
+\setXTXcharcodes "001FC "001FD "001FC % LATIN CAPITAL LETTER AE WITH ACUTE
+\setXTXcharcodes "001FD "001FD "001FC % LATIN SMALL LETTER AE WITH ACUTE
+\setXTXcharcodes "001FE "001FF "001FE % LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+\setXTXcharcodes "001FF "001FF "001FE % LATIN SMALL LETTER O WITH STROKE AND ACUTE
+\setXTXcharcodes "00200 "00201 "00200 % LATIN CAPITAL LETTER A WITH DOUBLE GRAVE
+\setXTXcharcodes "00201 "00201 "00200 % LATIN SMALL LETTER A WITH DOUBLE GRAVE
+\setXTXcharcodes "00202 "00203 "00202 % LATIN CAPITAL LETTER A WITH INVERTED BREVE
+\setXTXcharcodes "00203 "00203 "00202 % LATIN SMALL LETTER A WITH INVERTED BREVE
+\setXTXcharcodes "00204 "00205 "00204 % LATIN CAPITAL LETTER E WITH DOUBLE GRAVE
+\setXTXcharcodes "00205 "00205 "00204 % LATIN SMALL LETTER E WITH DOUBLE GRAVE
+\setXTXcharcodes "00206 "00207 "00206 % LATIN CAPITAL LETTER E WITH INVERTED BREVE
+\setXTXcharcodes "00207 "00207 "00206 % LATIN SMALL LETTER E WITH INVERTED BREVE
+\setXTXcharcodes "00208 "00209 "00208 % LATIN CAPITAL LETTER I WITH DOUBLE GRAVE
+\setXTXcharcodes "00209 "00209 "00208 % LATIN SMALL LETTER I WITH DOUBLE GRAVE
+\setXTXcharcodes "0020A "0020B "0020A % LATIN CAPITAL LETTER I WITH INVERTED BREVE
+\setXTXcharcodes "0020B "0020B "0020A % LATIN SMALL LETTER I WITH INVERTED BREVE
+\setXTXcharcodes "0020C "0020D "0020C % LATIN CAPITAL LETTER O WITH DOUBLE GRAVE
+\setXTXcharcodes "0020D "0020D "0020C % LATIN SMALL LETTER O WITH DOUBLE GRAVE
+\setXTXcharcodes "0020E "0020F "0020E % LATIN CAPITAL LETTER O WITH INVERTED BREVE
+\setXTXcharcodes "0020F "0020F "0020E % LATIN SMALL LETTER O WITH INVERTED BREVE
+\setXTXcharcodes "00210 "00211 "00210 % LATIN CAPITAL LETTER R WITH DOUBLE GRAVE
+\setXTXcharcodes "00211 "00211 "00210 % LATIN SMALL LETTER R WITH DOUBLE GRAVE
+\setXTXcharcodes "00212 "00213 "00212 % LATIN CAPITAL LETTER R WITH INVERTED BREVE
+\setXTXcharcodes "00213 "00213 "00212 % LATIN SMALL LETTER R WITH INVERTED BREVE
+\setXTXcharcodes "00214 "00215 "00214 % LATIN CAPITAL LETTER U WITH DOUBLE GRAVE
+\setXTXcharcodes "00215 "00215 "00214 % LATIN SMALL LETTER U WITH DOUBLE GRAVE
+\setXTXcharcodes "00216 "00217 "00216 % LATIN CAPITAL LETTER U WITH INVERTED BREVE
+\setXTXcharcodes "00217 "00217 "00216 % LATIN SMALL LETTER U WITH INVERTED BREVE
+\setXTXcharcodes "00218 "00219 "00218 % LATIN CAPITAL LETTER S WITH COMMA BELOW
+\setXTXcharcodes "00219 "00219 "00218 % LATIN SMALL LETTER S WITH COMMA BELOW
+\setXTXcharcodes "0021A "0021B "0021A % LATIN CAPITAL LETTER T WITH COMMA BELOW
+\setXTXcharcodes "0021B "0021B "0021A % LATIN SMALL LETTER T WITH COMMA BELOW
+\setXTXcharcodes "0021C "0021D "0021C % LATIN CAPITAL LETTER YOGH
+\setXTXcharcodes "0021D "0021D "0021C % LATIN SMALL LETTER YOGH
+\setXTXcharcodes "0021E "0021F "0021E % LATIN CAPITAL LETTER H WITH CARON
+\setXTXcharcodes "0021F "0021F "0021E % LATIN SMALL LETTER H WITH CARON
+\setXTXcharcodes "00220 "0019E "00220 % LATIN CAPITAL LETTER N WITH LONG RIGHT LEG
+\setXTXcharcodes "00221 "00221 "00221 % LATIN SMALL LETTER D WITH CURL
+\setXTXcharcodes "00222 "00223 "00222 % LATIN CAPITAL LETTER OU
+\setXTXcharcodes "00223 "00223 "00222 % LATIN SMALL LETTER OU
+\setXTXcharcodes "00224 "00225 "00224 % LATIN CAPITAL LETTER Z WITH HOOK
+\setXTXcharcodes "00225 "00225 "00224 % LATIN SMALL LETTER Z WITH HOOK
+\setXTXcharcodes "00226 "00227 "00226 % LATIN CAPITAL LETTER A WITH DOT ABOVE
+\setXTXcharcodes "00227 "00227 "00226 % LATIN SMALL LETTER A WITH DOT ABOVE
+\setXTXcharcodes "00228 "00229 "00228 % LATIN CAPITAL LETTER E WITH CEDILLA
+\setXTXcharcodes "00229 "00229 "00228 % LATIN SMALL LETTER E WITH CEDILLA
+\setXTXcharcodes "0022A "0022B "0022A % LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+\setXTXcharcodes "0022B "0022B "0022A % LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+\setXTXcharcodes "0022C "0022D "0022C % LATIN CAPITAL LETTER O WITH TILDE AND MACRON
+\setXTXcharcodes "0022D "0022D "0022C % LATIN SMALL LETTER O WITH TILDE AND MACRON
+\setXTXcharcodes "0022E "0022F "0022E % LATIN CAPITAL LETTER O WITH DOT ABOVE
+\setXTXcharcodes "0022F "0022F "0022E % LATIN SMALL LETTER O WITH DOT ABOVE
+\setXTXcharcodes "00230 "00231 "00230 % LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON
+\setXTXcharcodes "00231 "00231 "00230 % LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON
+\setXTXcharcodes "00232 "00233 "00232 % LATIN CAPITAL LETTER Y WITH MACRON
+\setXTXcharcodes "00233 "00233 "00232 % LATIN SMALL LETTER Y WITH MACRON
+\setXTXcharcodes "00234 "00234 "00234 % LATIN SMALL LETTER L WITH CURL
+\setXTXcharcodes "00235 "00235 "00235 % LATIN SMALL LETTER N WITH CURL
+\setXTXcharcodes "00236 "00236 "00236 % LATIN SMALL LETTER T WITH CURL
+\setXTXcharcodes "00237 "00237 "00237 % LATIN SMALL LETTER DOTLESS J
+\setXTXcharcodes "00238 "00238 "00238 % LATIN SMALL LETTER DB DIGRAPH
+\setXTXcharcodes "00239 "00239 "00239 % LATIN SMALL LETTER QP DIGRAPH
+\setXTXcharcodes "0023A "02C65 "0023A % LATIN CAPITAL LETTER A WITH STROKE
+\setXTXcharcodes "0023B "0023C "0023B % LATIN CAPITAL LETTER C WITH STROKE
+\setXTXcharcodes "0023C "0023C "0023B % LATIN SMALL LETTER C WITH STROKE
+\setXTXcharcodes "0023D "0019A "0023D % LATIN CAPITAL LETTER L WITH BAR
+\setXTXcharcodes "0023E "02C66 "0023E % LATIN CAPITAL LETTER T WITH DIAGONAL STROKE
+\setXTXcharcodes "0023F "0023F "0023F % LATIN SMALL LETTER S WITH SWASH TAIL
+\setXTXcharcodes "00240 "00240 "00240 % LATIN SMALL LETTER Z WITH SWASH TAIL
+\setXTXcharcodes "00241 "00242 "00241 % LATIN CAPITAL LETTER GLOTTAL STOP
+\setXTXcharcodes "00242 "00242 "00241 % LATIN SMALL LETTER GLOTTAL STOP
+\setXTXcharcodes "00243 "00180 "00243 % LATIN CAPITAL LETTER B WITH STROKE
+\setXTXcharcodes "00244 "00289 "00244 % LATIN CAPITAL LETTER U BAR
+\setXTXcharcodes "00245 "0028C "00245 % LATIN CAPITAL LETTER TURNED V
+\setXTXcharcodes "00246 "00247 "00246 % LATIN CAPITAL LETTER E WITH STROKE
+\setXTXcharcodes "00247 "00247 "00246 % LATIN SMALL LETTER E WITH STROKE
+\setXTXcharcodes "00248 "00249 "00248 % LATIN CAPITAL LETTER J WITH STROKE
+\setXTXcharcodes "00249 "00249 "00248 % LATIN SMALL LETTER J WITH STROKE
+\setXTXcharcodes "0024A "0024B "0024A % LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL
+\setXTXcharcodes "0024B "0024B "0024A % LATIN SMALL LETTER Q WITH HOOK TAIL
+\setXTXcharcodes "0024C "0024D "0024C % LATIN CAPITAL LETTER R WITH STROKE
+\setXTXcharcodes "0024D "0024D "0024C % LATIN SMALL LETTER R WITH STROKE
+\setXTXcharcodes "0024E "0024F "0024E % LATIN CAPITAL LETTER Y WITH STROKE
+\setXTXcharcodes "0024F "0024F "0024E % LATIN SMALL LETTER Y WITH STROKE
+\setXTXcharcodes "00250 "00250 "00250 % LATIN SMALL LETTER TURNED A
+\setXTXcharcodes "00251 "00251 "00251 % LATIN SMALL LETTER ALPHA
+\setXTXcharcodes "00252 "00252 "00252 % LATIN SMALL LETTER TURNED ALPHA
+\setXTXcharcodes "00253 "00253 "00181 % LATIN SMALL LETTER B WITH HOOK
+\setXTXcharcodes "00254 "00254 "00186 % LATIN SMALL LETTER OPEN O
+\setXTXcharcodes "00255 "00255 "00255 % LATIN SMALL LETTER C WITH CURL
+\setXTXcharcodes "00256 "00256 "00189 % LATIN SMALL LETTER D WITH TAIL
+\setXTXcharcodes "00257 "00257 "0018A % LATIN SMALL LETTER D WITH HOOK
+\setXTXcharcodes "00258 "00258 "00258 % LATIN SMALL LETTER REVERSED E
+\setXTXcharcodes "00259 "00259 "0018F % LATIN SMALL LETTER SCHWA
+\setXTXcharcodes "0025A "0025A "0025A % LATIN SMALL LETTER SCHWA WITH HOOK
+\setXTXcharcodes "0025B "0025B "00190 % LATIN SMALL LETTER OPEN E
+\setXTXcharcodes "0025C "0025C "0025C % LATIN SMALL LETTER REVERSED OPEN E
+\setXTXcharcodes "0025D "0025D "0025D % LATIN SMALL LETTER REVERSED OPEN E WITH HOOK
+\setXTXcharcodes "0025E "0025E "0025E % LATIN SMALL LETTER CLOSED REVERSED OPEN E
+\setXTXcharcodes "0025F "0025F "0025F % LATIN SMALL LETTER DOTLESS J WITH STROKE
+\setXTXcharcodes "00260 "00260 "00193 % LATIN SMALL LETTER G WITH HOOK
+\setXTXcharcodes "00261 "00261 "00261 % LATIN SMALL LETTER SCRIPT G
+\setXTXcharcodes "00262 "00262 "00262 % LATIN LETTER SMALL CAPITAL G
+\setXTXcharcodes "00263 "00263 "00194 % LATIN SMALL LETTER GAMMA
+\setXTXcharcodes "00264 "00264 "00264 % LATIN SMALL LETTER RAMS HORN
+\setXTXcharcodes "00265 "00265 "00265 % LATIN SMALL LETTER TURNED H
+\setXTXcharcodes "00266 "00266 "00266 % LATIN SMALL LETTER H WITH HOOK
+\setXTXcharcodes "00267 "00267 "00267 % LATIN SMALL LETTER HENG WITH HOOK
+\setXTXcharcodes "00268 "00268 "00197 % LATIN SMALL LETTER I WITH STROKE
+\setXTXcharcodes "00269 "00269 "00196 % LATIN SMALL LETTER IOTA
+\setXTXcharcodes "0026A "0026A "0026A % LATIN LETTER SMALL CAPITAL I
+\setXTXcharcodes "0026B "0026B "02C62 % LATIN SMALL LETTER L WITH MIDDLE TILDE
+\setXTXcharcodes "0026C "0026C "0026C % LATIN SMALL LETTER L WITH BELT
+\setXTXcharcodes "0026D "0026D "0026D % LATIN SMALL LETTER L WITH RETROFLEX HOOK
+\setXTXcharcodes "0026E "0026E "0026E % LATIN SMALL LETTER LEZH
+\setXTXcharcodes "0026F "0026F "0019C % LATIN SMALL LETTER TURNED M
+\setXTXcharcodes "00270 "00270 "00270 % LATIN SMALL LETTER TURNED M WITH LONG LEG
+\setXTXcharcodes "00271 "00271 "00271 % LATIN SMALL LETTER M WITH HOOK
+\setXTXcharcodes "00272 "00272 "0019D % LATIN SMALL LETTER N WITH LEFT HOOK
+\setXTXcharcodes "00273 "00273 "00273 % LATIN SMALL LETTER N WITH RETROFLEX HOOK
+\setXTXcharcodes "00274 "00274 "00274 % LATIN LETTER SMALL CAPITAL N
+\setXTXcharcodes "00275 "00275 "0019F % LATIN SMALL LETTER BARRED O
+\setXTXcharcodes "00276 "00276 "00276 % LATIN LETTER SMALL CAPITAL OE
+\setXTXcharcodes "00277 "00277 "00277 % LATIN SMALL LETTER CLOSED OMEGA
+\setXTXcharcodes "00278 "00278 "00278 % LATIN SMALL LETTER PHI
+\setXTXcharcodes "00279 "00279 "00279 % LATIN SMALL LETTER TURNED R
+\setXTXcharcodes "0027A "0027A "0027A % LATIN SMALL LETTER TURNED R WITH LONG LEG
+\setXTXcharcodes "0027B "0027B "0027B % LATIN SMALL LETTER TURNED R WITH HOOK
+\setXTXcharcodes "0027C "0027C "0027C % LATIN SMALL LETTER R WITH LONG LEG
+\setXTXcharcodes "0027D "0027D "02C64 % LATIN SMALL LETTER R WITH TAIL
+\setXTXcharcodes "0027E "0027E "0027E % LATIN SMALL LETTER R WITH FISHHOOK
+\setXTXcharcodes "0027F "0027F "0027F % LATIN SMALL LETTER REVERSED R WITH FISHHOOK
+\setXTXcharcodes "00280 "00280 "001A6 % LATIN LETTER SMALL CAPITAL R
+\setXTXcharcodes "00281 "00281 "00281 % LATIN LETTER SMALL CAPITAL INVERTED R
+\setXTXcharcodes "00282 "00282 "00282 % LATIN SMALL LETTER S WITH HOOK
+\setXTXcharcodes "00283 "00283 "001A9 % LATIN SMALL LETTER ESH
+\setXTXcharcodes "00284 "00284 "00284 % LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK
+\setXTXcharcodes "00285 "00285 "00285 % LATIN SMALL LETTER SQUAT REVERSED ESH
+\setXTXcharcodes "00286 "00286 "00286 % LATIN SMALL LETTER ESH WITH CURL
+\setXTXcharcodes "00287 "00287 "00287 % LATIN SMALL LETTER TURNED T
+\setXTXcharcodes "00288 "00288 "001AE % LATIN SMALL LETTER T WITH RETROFLEX HOOK
+\setXTXcharcodes "00289 "00289 "00244 % LATIN SMALL LETTER U BAR
+\setXTXcharcodes "0028A "0028A "001B1 % LATIN SMALL LETTER UPSILON
+\setXTXcharcodes "0028B "0028B "001B2 % LATIN SMALL LETTER V WITH HOOK
+\setXTXcharcodes "0028C "0028C "00245 % LATIN SMALL LETTER TURNED V
+\setXTXcharcodes "0028D "0028D "0028D % LATIN SMALL LETTER TURNED W
+\setXTXcharcodes "0028E "0028E "0028E % LATIN SMALL LETTER TURNED Y
+\setXTXcharcodes "0028F "0028F "0028F % LATIN LETTER SMALL CAPITAL Y
+\setXTXcharcodes "00290 "00290 "00290 % LATIN SMALL LETTER Z WITH RETROFLEX HOOK
+\setXTXcharcodes "00291 "00291 "00291 % LATIN SMALL LETTER Z WITH CURL
+\setXTXcharcodes "00292 "00292 "001B7 % LATIN SMALL LETTER EZH
+\setXTXcharcodes "00293 "00293 "00293 % LATIN SMALL LETTER EZH WITH CURL
+\setXTXcharcodes "00295 "00295 "00295 % LATIN LETTER PHARYNGEAL VOICED FRICATIVE
+\setXTXcharcodes "00296 "00296 "00296 % LATIN LETTER INVERTED GLOTTAL STOP
+\setXTXcharcodes "00297 "00297 "00297 % LATIN LETTER STRETCHED C
+\setXTXcharcodes "00298 "00298 "00298 % LATIN LETTER BILABIAL CLICK
+\setXTXcharcodes "00299 "00299 "00299 % LATIN LETTER SMALL CAPITAL B
+\setXTXcharcodes "0029A "0029A "0029A % LATIN SMALL LETTER CLOSED OPEN E
+\setXTXcharcodes "0029B "0029B "0029B % LATIN LETTER SMALL CAPITAL G WITH HOOK
+\setXTXcharcodes "0029C "0029C "0029C % LATIN LETTER SMALL CAPITAL H
+\setXTXcharcodes "0029D "0029D "0029D % LATIN SMALL LETTER J WITH CROSSED-TAIL
+\setXTXcharcodes "0029E "0029E "0029E % LATIN SMALL LETTER TURNED K
+\setXTXcharcodes "0029F "0029F "0029F % LATIN LETTER SMALL CAPITAL L
+\setXTXcharcodes "002A0 "002A0 "002A0 % LATIN SMALL LETTER Q WITH HOOK
+\setXTXcharcodes "002A1 "002A1 "002A1 % LATIN LETTER GLOTTAL STOP WITH STROKE
+\setXTXcharcodes "002A2 "002A2 "002A2 % LATIN LETTER REVERSED GLOTTAL STOP WITH STROKE
+\setXTXcharcodes "002A3 "002A3 "002A3 % LATIN SMALL LETTER DZ DIGRAPH
+\setXTXcharcodes "002A4 "002A4 "002A4 % LATIN SMALL LETTER DEZH DIGRAPH
+\setXTXcharcodes "002A5 "002A5 "002A5 % LATIN SMALL LETTER DZ DIGRAPH WITH CURL
+\setXTXcharcodes "002A6 "002A6 "002A6 % LATIN SMALL LETTER TS DIGRAPH
+\setXTXcharcodes "002A7 "002A7 "002A7 % LATIN SMALL LETTER TESH DIGRAPH
+\setXTXcharcodes "002A8 "002A8 "002A8 % LATIN SMALL LETTER TC DIGRAPH WITH CURL
+\setXTXcharcodes "002A9 "002A9 "002A9 % LATIN SMALL LETTER FENG DIGRAPH
+\setXTXcharcodes "002AA "002AA "002AA % LATIN SMALL LETTER LS DIGRAPH
+\setXTXcharcodes "002AB "002AB "002AB % LATIN SMALL LETTER LZ DIGRAPH
+\setXTXcharcodes "002AC "002AC "002AC % LATIN LETTER BILABIAL PERCUSSIVE
+\setXTXcharcodes "002AD "002AD "002AD % LATIN LETTER BIDENTAL PERCUSSIVE
+\setXTXcharcodes "002AE "002AE "002AE % LATIN SMALL LETTER TURNED H WITH FISHHOOK
+\setXTXcharcodes "002AF "002AF "002AF % LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL
+\setXTXcharcodes "0037B "0037B "003FD % GREEK SMALL REVERSED LUNATE SIGMA SYMBOL
+\setXTXcharcodes "0037C "0037C "003FE % GREEK SMALL DOTTED LUNATE SIGMA SYMBOL
+\setXTXcharcodes "0037D "0037D "003FF % GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL
+\setXTXcharcodes "00386 "003AC "00386 % GREEK CAPITAL LETTER ALPHA WITH TONOS
+\setXTXcharcodes "00388 "003AD "00388 % GREEK CAPITAL LETTER EPSILON WITH TONOS
+\setXTXcharcodes "00389 "003AE "00389 % GREEK CAPITAL LETTER ETA WITH TONOS
+\setXTXcharcodes "0038A "003AF "0038A % GREEK CAPITAL LETTER IOTA WITH TONOS
+\setXTXcharcodes "0038C "003CC "0038C % GREEK CAPITAL LETTER OMICRON WITH TONOS
+\setXTXcharcodes "0038E "003CD "0038E % GREEK CAPITAL LETTER UPSILON WITH TONOS
+\setXTXcharcodes "0038F "003CE "0038F % GREEK CAPITAL LETTER OMEGA WITH TONOS
+\setXTXcharcodes "00390 "00390 "00390 % GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+\setXTXcharcodes "00391 "003B1 "00391 % GREEK CAPITAL LETTER ALPHA
+\setXTXcharcodes "00392 "003B2 "00392 % GREEK CAPITAL LETTER BETA
+\setXTXcharcodes "00393 "003B3 "00393 % GREEK CAPITAL LETTER GAMMA
+\setXTXcharcodes "00394 "003B4 "00394 % GREEK CAPITAL LETTER DELTA
+\setXTXcharcodes "00395 "003B5 "00395 % GREEK CAPITAL LETTER EPSILON
+\setXTXcharcodes "00396 "003B6 "00396 % GREEK CAPITAL LETTER ZETA
+\setXTXcharcodes "00397 "003B7 "00397 % GREEK CAPITAL LETTER ETA
+\setXTXcharcodes "00398 "003B8 "00398 % GREEK CAPITAL LETTER THETA
+\setXTXcharcodes "00399 "003B9 "00399 % GREEK CAPITAL LETTER IOTA
+\setXTXcharcodes "0039A "003BA "0039A % GREEK CAPITAL LETTER KAPPA
+\setXTXcharcodes "0039B "003BB "0039B % GREEK CAPITAL LETTER LAMDA
+\setXTXcharcodes "0039C "003BC "0039C % GREEK CAPITAL LETTER MU
+\setXTXcharcodes "0039D "003BD "0039D % GREEK CAPITAL LETTER NU
+\setXTXcharcodes "0039E "003BE "0039E % GREEK CAPITAL LETTER XI
+\setXTXcharcodes "0039F "003BF "0039F % GREEK CAPITAL LETTER OMICRON
+\setXTXcharcodes "003A0 "003C0 "003A0 % GREEK CAPITAL LETTER PI
+\setXTXcharcodes "003A1 "003C1 "003A1 % GREEK CAPITAL LETTER RHO
+\setXTXcharcodes "003A3 "003C3 "003A3 % GREEK CAPITAL LETTER SIGMA
+\setXTXcharcodes "003A4 "003C4 "003A4 % GREEK CAPITAL LETTER TAU
+\setXTXcharcodes "003A5 "003C5 "003A5 % GREEK CAPITAL LETTER UPSILON
+\setXTXcharcodes "003A6 "003C6 "003A6 % GREEK CAPITAL LETTER PHI
+\setXTXcharcodes "003A7 "003C7 "003A7 % GREEK CAPITAL LETTER CHI
+\setXTXcharcodes "003A8 "003C8 "003A8 % GREEK CAPITAL LETTER PSI
+\setXTXcharcodes "003A9 "003C9 "003A9 % GREEK CAPITAL LETTER OMEGA
+\setXTXcharcodes "003AA "003CA "003AA % GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
+\setXTXcharcodes "003AB "003CB "003AB % GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
+\setXTXcharcodes "003AC "003AC "00386 % GREEK SMALL LETTER ALPHA WITH TONOS
+\setXTXcharcodes "003AD "003AD "00388 % GREEK SMALL LETTER EPSILON WITH TONOS
+\setXTXcharcodes "003AE "003AE "00389 % GREEK SMALL LETTER ETA WITH TONOS
+\setXTXcharcodes "003AF "003AF "0038A % GREEK SMALL LETTER IOTA WITH TONOS
+\setXTXcharcodes "003B0 "003B0 "003B0 % GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+\setXTXcharcodes "003B1 "003B1 "00391 % GREEK SMALL LETTER ALPHA
+\setXTXcharcodes "003B2 "003B2 "00392 % GREEK SMALL LETTER BETA
+\setXTXcharcodes "003B3 "003B3 "00393 % GREEK SMALL LETTER GAMMA
+\setXTXcharcodes "003B4 "003B4 "00394 % GREEK SMALL LETTER DELTA
+\setXTXcharcodes "003B5 "003B5 "00395 % GREEK SMALL LETTER EPSILON
+\setXTXcharcodes "003B6 "003B6 "00396 % GREEK SMALL LETTER ZETA
+\setXTXcharcodes "003B7 "003B7 "00397 % GREEK SMALL LETTER ETA
+\setXTXcharcodes "003B8 "003B8 "00398 % GREEK SMALL LETTER THETA
+\setXTXcharcodes "003B9 "003B9 "00399 % GREEK SMALL LETTER IOTA
+\setXTXcharcodes "003BA "003BA "0039A % GREEK SMALL LETTER KAPPA
+\setXTXcharcodes "003BB "003BB "0039B % GREEK SMALL LETTER LAMDA
+\setXTXcharcodes "003BC "003BC "0039C % GREEK SMALL LETTER MU
+\setXTXcharcodes "003BD "003BD "0039D % GREEK SMALL LETTER NU
+\setXTXcharcodes "003BE "003BE "0039E % GREEK SMALL LETTER XI
+\setXTXcharcodes "003BF "003BF "0039F % GREEK SMALL LETTER OMICRON
+\setXTXcharcodes "003C0 "003C0 "003A0 % GREEK SMALL LETTER PI
+\setXTXcharcodes "003C1 "003C1 "003A1 % GREEK SMALL LETTER RHO
+\setXTXcharcodes "003C2 "003C2 "003A3 % GREEK SMALL LETTER FINAL SIGMA
+\setXTXcharcodes "003C3 "003C3 "003A3 % GREEK SMALL LETTER SIGMA
+\setXTXcharcodes "003C4 "003C4 "003A4 % GREEK SMALL LETTER TAU
+\setXTXcharcodes "003C5 "003C5 "003A5 % GREEK SMALL LETTER UPSILON
+\setXTXcharcodes "003C6 "003C6 "003A6 % GREEK SMALL LETTER PHI
+\setXTXcharcodes "003C7 "003C7 "003A7 % GREEK SMALL LETTER CHI
+\setXTXcharcodes "003C8 "003C8 "003A8 % GREEK SMALL LETTER PSI
+\setXTXcharcodes "003C9 "003C9 "003A9 % GREEK SMALL LETTER OMEGA
+\setXTXcharcodes "003CA "003CA "003AA % GREEK SMALL LETTER IOTA WITH DIALYTIKA
+\setXTXcharcodes "003CB "003CB "003AB % GREEK SMALL LETTER UPSILON WITH DIALYTIKA
+\setXTXcharcodes "003CC "003CC "0038C % GREEK SMALL LETTER OMICRON WITH TONOS
+\setXTXcharcodes "003CD "003CD "0038E % GREEK SMALL LETTER UPSILON WITH TONOS
+\setXTXcharcodes "003CE "003CE "0038F % GREEK SMALL LETTER OMEGA WITH TONOS
+\setXTXcharcodes "003D0 "003D0 "00392 % GREEK BETA SYMBOL
+\setXTXcharcodes "003D1 "003D1 "00398 % GREEK THETA SYMBOL
+\setXTXcharcodes "003D2 "003D2 "003D2 % GREEK UPSILON WITH HOOK SYMBOL
+\setXTXcharcodes "003D3 "003D3 "003D3 % GREEK UPSILON WITH ACUTE AND HOOK SYMBOL
+\setXTXcharcodes "003D4 "003D4 "003D4 % GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL
+\setXTXcharcodes "003D5 "003D5 "003A6 % GREEK PHI SYMBOL
+\setXTXcharcodes "003D6 "003D6 "003A0 % GREEK PI SYMBOL
+\setXTXcharcodes "003D7 "003D7 "003D7 % GREEK KAI SYMBOL
+\setXTXcharcodes "003D8 "003D9 "003D8 % GREEK LETTER ARCHAIC KOPPA
+\setXTXcharcodes "003D9 "003D9 "003D8 % GREEK SMALL LETTER ARCHAIC KOPPA
+\setXTXcharcodes "003DA "003DB "003DA % GREEK LETTER STIGMA
+\setXTXcharcodes "003DB "003DB "003DA % GREEK SMALL LETTER STIGMA
+\setXTXcharcodes "003DC "003DD "003DC % GREEK LETTER DIGAMMA
+\setXTXcharcodes "003DD "003DD "003DC % GREEK SMALL LETTER DIGAMMA
+\setXTXcharcodes "003DE "003DF "003DE % GREEK LETTER KOPPA
+\setXTXcharcodes "003DF "003DF "003DE % GREEK SMALL LETTER KOPPA
+\setXTXcharcodes "003E0 "003E1 "003E0 % GREEK LETTER SAMPI
+\setXTXcharcodes "003E1 "003E1 "003E0 % GREEK SMALL LETTER SAMPI
+\setXTXcharcodes "003E2 "003E3 "003E2 % COPTIC CAPITAL LETTER SHEI
+\setXTXcharcodes "003E3 "003E3 "003E2 % COPTIC SMALL LETTER SHEI
+\setXTXcharcodes "003E4 "003E5 "003E4 % COPTIC CAPITAL LETTER FEI
+\setXTXcharcodes "003E5 "003E5 "003E4 % COPTIC SMALL LETTER FEI
+\setXTXcharcodes "003E6 "003E7 "003E6 % COPTIC CAPITAL LETTER KHEI
+\setXTXcharcodes "003E7 "003E7 "003E6 % COPTIC SMALL LETTER KHEI
+\setXTXcharcodes "003E8 "003E9 "003E8 % COPTIC CAPITAL LETTER HORI
+\setXTXcharcodes "003E9 "003E9 "003E8 % COPTIC SMALL LETTER HORI
+\setXTXcharcodes "003EA "003EB "003EA % COPTIC CAPITAL LETTER GANGIA
+\setXTXcharcodes "003EB "003EB "003EA % COPTIC SMALL LETTER GANGIA
+\setXTXcharcodes "003EC "003ED "003EC % COPTIC CAPITAL LETTER SHIMA
+\setXTXcharcodes "003ED "003ED "003EC % COPTIC SMALL LETTER SHIMA
+\setXTXcharcodes "003EE "003EF "003EE % COPTIC CAPITAL LETTER DEI
+\setXTXcharcodes "003EF "003EF "003EE % COPTIC SMALL LETTER DEI
+\setXTXcharcodes "003F0 "003F0 "0039A % GREEK KAPPA SYMBOL
+\setXTXcharcodes "003F1 "003F1 "003A1 % GREEK RHO SYMBOL
+\setXTXcharcodes "003F2 "003F2 "003F9 % GREEK LUNATE SIGMA SYMBOL
+\setXTXcharcodes "003F3 "003F3 "003F3 % GREEK LETTER YOT
+\setXTXcharcodes "003F4 "003B8 "003F4 % GREEK CAPITAL THETA SYMBOL
+\setXTXcharcodes "003F5 "003F5 "00395 % GREEK LUNATE EPSILON SYMBOL
+\setXTXcharcodes "003F7 "003F8 "003F7 % GREEK CAPITAL LETTER SHO
+\setXTXcharcodes "003F8 "003F8 "003F7 % GREEK SMALL LETTER SHO
+\setXTXcharcodes "003F9 "003F2 "003F9 % GREEK CAPITAL LUNATE SIGMA SYMBOL
+\setXTXcharcodes "003FA "003FB "003FA % GREEK CAPITAL LETTER SAN
+\setXTXcharcodes "003FB "003FB "003FA % GREEK SMALL LETTER SAN
+\setXTXcharcodes "003FC "003FC "003FC % GREEK RHO WITH STROKE SYMBOL
+\setXTXcharcodes "003FD "0037B "003FD % GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL
+\setXTXcharcodes "003FE "0037C "003FE % GREEK CAPITAL DOTTED LUNATE SIGMA SYMBOL
+\setXTXcharcodes "003FF "0037D "003FF % GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL
+\setXTXcharcodes "00400 "00450 "00400 % CYRILLIC CAPITAL LETTER IE WITH GRAVE
+\setXTXcharcodes "00401 "00451 "00401 % CYRILLIC CAPITAL LETTER IO
+\setXTXcharcodes "00402 "00452 "00402 % CYRILLIC CAPITAL LETTER DJE
+\setXTXcharcodes "00403 "00453 "00403 % CYRILLIC CAPITAL LETTER GJE
+\setXTXcharcodes "00404 "00454 "00404 % CYRILLIC CAPITAL LETTER UKRAINIAN IE
+\setXTXcharcodes "00405 "00455 "00405 % CYRILLIC CAPITAL LETTER DZE
+\setXTXcharcodes "00406 "00456 "00406 % CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
+\setXTXcharcodes "00407 "00457 "00407 % CYRILLIC CAPITAL LETTER YI
+\setXTXcharcodes "00408 "00458 "00408 % CYRILLIC CAPITAL LETTER JE
+\setXTXcharcodes "00409 "00459 "00409 % CYRILLIC CAPITAL LETTER LJE
+\setXTXcharcodes "0040A "0045A "0040A % CYRILLIC CAPITAL LETTER NJE
+\setXTXcharcodes "0040B "0045B "0040B % CYRILLIC CAPITAL LETTER TSHE
+\setXTXcharcodes "0040C "0045C "0040C % CYRILLIC CAPITAL LETTER KJE
+\setXTXcharcodes "0040D "0045D "0040D % CYRILLIC CAPITAL LETTER I WITH GRAVE
+\setXTXcharcodes "0040E "0045E "0040E % CYRILLIC CAPITAL LETTER SHORT U
+\setXTXcharcodes "0040F "0045F "0040F % CYRILLIC CAPITAL LETTER DZHE
+\setXTXcharcodes "00410 "00430 "00410 % CYRILLIC CAPITAL LETTER A
+\setXTXcharcodes "00411 "00431 "00411 % CYRILLIC CAPITAL LETTER BE
+\setXTXcharcodes "00412 "00432 "00412 % CYRILLIC CAPITAL LETTER VE
+\setXTXcharcodes "00413 "00433 "00413 % CYRILLIC CAPITAL LETTER GHE
+\setXTXcharcodes "00414 "00434 "00414 % CYRILLIC CAPITAL LETTER DE
+\setXTXcharcodes "00415 "00435 "00415 % CYRILLIC CAPITAL LETTER IE
+\setXTXcharcodes "00416 "00436 "00416 % CYRILLIC CAPITAL LETTER ZHE
+\setXTXcharcodes "00417 "00437 "00417 % CYRILLIC CAPITAL LETTER ZE
+\setXTXcharcodes "00418 "00438 "00418 % CYRILLIC CAPITAL LETTER I
+\setXTXcharcodes "00419 "00439 "00419 % CYRILLIC CAPITAL LETTER SHORT I
+\setXTXcharcodes "0041A "0043A "0041A % CYRILLIC CAPITAL LETTER KA
+\setXTXcharcodes "0041B "0043B "0041B % CYRILLIC CAPITAL LETTER EL
+\setXTXcharcodes "0041C "0043C "0041C % CYRILLIC CAPITAL LETTER EM
+\setXTXcharcodes "0041D "0043D "0041D % CYRILLIC CAPITAL LETTER EN
+\setXTXcharcodes "0041E "0043E "0041E % CYRILLIC CAPITAL LETTER O
+\setXTXcharcodes "0041F "0043F "0041F % CYRILLIC CAPITAL LETTER PE
+\setXTXcharcodes "00420 "00440 "00420 % CYRILLIC CAPITAL LETTER ER
+\setXTXcharcodes "00421 "00441 "00421 % CYRILLIC CAPITAL LETTER ES
+\setXTXcharcodes "00422 "00442 "00422 % CYRILLIC CAPITAL LETTER TE
+\setXTXcharcodes "00423 "00443 "00423 % CYRILLIC CAPITAL LETTER U
+\setXTXcharcodes "00424 "00444 "00424 % CYRILLIC CAPITAL LETTER EF
+\setXTXcharcodes "00425 "00445 "00425 % CYRILLIC CAPITAL LETTER HA
+\setXTXcharcodes "00426 "00446 "00426 % CYRILLIC CAPITAL LETTER TSE
+\setXTXcharcodes "00427 "00447 "00427 % CYRILLIC CAPITAL LETTER CHE
+\setXTXcharcodes "00428 "00448 "00428 % CYRILLIC CAPITAL LETTER SHA
+\setXTXcharcodes "00429 "00449 "00429 % CYRILLIC CAPITAL LETTER SHCHA
+\setXTXcharcodes "0042A "0044A "0042A % CYRILLIC CAPITAL LETTER HARD SIGN
+\setXTXcharcodes "0042B "0044B "0042B % CYRILLIC CAPITAL LETTER YERU
+\setXTXcharcodes "0042C "0044C "0042C % CYRILLIC CAPITAL LETTER SOFT SIGN
+\setXTXcharcodes "0042D "0044D "0042D % CYRILLIC CAPITAL LETTER E
+\setXTXcharcodes "0042E "0044E "0042E % CYRILLIC CAPITAL LETTER YU
+\setXTXcharcodes "0042F "0044F "0042F % CYRILLIC CAPITAL LETTER YA
+\setXTXcharcodes "00430 "00430 "00410 % CYRILLIC SMALL LETTER A
+\setXTXcharcodes "00431 "00431 "00411 % CYRILLIC SMALL LETTER BE
+\setXTXcharcodes "00432 "00432 "00412 % CYRILLIC SMALL LETTER VE
+\setXTXcharcodes "00433 "00433 "00413 % CYRILLIC SMALL LETTER GHE
+\setXTXcharcodes "00434 "00434 "00414 % CYRILLIC SMALL LETTER DE
+\setXTXcharcodes "00435 "00435 "00415 % CYRILLIC SMALL LETTER IE
+\setXTXcharcodes "00436 "00436 "00416 % CYRILLIC SMALL LETTER ZHE
+\setXTXcharcodes "00437 "00437 "00417 % CYRILLIC SMALL LETTER ZE
+\setXTXcharcodes "00438 "00438 "00418 % CYRILLIC SMALL LETTER I
+\setXTXcharcodes "00439 "00439 "00419 % CYRILLIC SMALL LETTER SHORT I
+\setXTXcharcodes "0043A "0043A "0041A % CYRILLIC SMALL LETTER KA
+\setXTXcharcodes "0043B "0043B "0041B % CYRILLIC SMALL LETTER EL
+\setXTXcharcodes "0043C "0043C "0041C % CYRILLIC SMALL LETTER EM
+\setXTXcharcodes "0043D "0043D "0041D % CYRILLIC SMALL LETTER EN
+\setXTXcharcodes "0043E "0043E "0041E % CYRILLIC SMALL LETTER O
+\setXTXcharcodes "0043F "0043F "0041F % CYRILLIC SMALL LETTER PE
+\setXTXcharcodes "00440 "00440 "00420 % CYRILLIC SMALL LETTER ER
+\setXTXcharcodes "00441 "00441 "00421 % CYRILLIC SMALL LETTER ES
+\setXTXcharcodes "00442 "00442 "00422 % CYRILLIC SMALL LETTER TE
+\setXTXcharcodes "00443 "00443 "00423 % CYRILLIC SMALL LETTER U
+\setXTXcharcodes "00444 "00444 "00424 % CYRILLIC SMALL LETTER EF
+\setXTXcharcodes "00445 "00445 "00425 % CYRILLIC SMALL LETTER HA
+\setXTXcharcodes "00446 "00446 "00426 % CYRILLIC SMALL LETTER TSE
+\setXTXcharcodes "00447 "00447 "00427 % CYRILLIC SMALL LETTER CHE
+\setXTXcharcodes "00448 "00448 "00428 % CYRILLIC SMALL LETTER SHA
+\setXTXcharcodes "00449 "00449 "00429 % CYRILLIC SMALL LETTER SHCHA
+\setXTXcharcodes "0044A "0044A "0042A % CYRILLIC SMALL LETTER HARD SIGN
+\setXTXcharcodes "0044B "0044B "0042B % CYRILLIC SMALL LETTER YERU
+\setXTXcharcodes "0044C "0044C "0042C % CYRILLIC SMALL LETTER SOFT SIGN
+\setXTXcharcodes "0044D "0044D "0042D % CYRILLIC SMALL LETTER E
+\setXTXcharcodes "0044E "0044E "0042E % CYRILLIC SMALL LETTER YU
+\setXTXcharcodes "0044F "0044F "0042F % CYRILLIC SMALL LETTER YA
+\setXTXcharcodes "00450 "00450 "00400 % CYRILLIC SMALL LETTER IE WITH GRAVE
+\setXTXcharcodes "00451 "00451 "00401 % CYRILLIC SMALL LETTER IO
+\setXTXcharcodes "00452 "00452 "00402 % CYRILLIC SMALL LETTER DJE
+\setXTXcharcodes "00453 "00453 "00403 % CYRILLIC SMALL LETTER GJE
+\setXTXcharcodes "00454 "00454 "00404 % CYRILLIC SMALL LETTER UKRAINIAN IE
+\setXTXcharcodes "00455 "00455 "00405 % CYRILLIC SMALL LETTER DZE
+\setXTXcharcodes "00456 "00456 "00406 % CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+\setXTXcharcodes "00457 "00457 "00407 % CYRILLIC SMALL LETTER YI
+\setXTXcharcodes "00458 "00458 "00408 % CYRILLIC SMALL LETTER JE
+\setXTXcharcodes "00459 "00459 "00409 % CYRILLIC SMALL LETTER LJE
+\setXTXcharcodes "0045A "0045A "0040A % CYRILLIC SMALL LETTER NJE
+\setXTXcharcodes "0045B "0045B "0040B % CYRILLIC SMALL LETTER TSHE
+\setXTXcharcodes "0045C "0045C "0040C % CYRILLIC SMALL LETTER KJE
+\setXTXcharcodes "0045D "0045D "0040D % CYRILLIC SMALL LETTER I WITH GRAVE
+\setXTXcharcodes "0045E "0045E "0040E % CYRILLIC SMALL LETTER SHORT U
+\setXTXcharcodes "0045F "0045F "0040F % CYRILLIC SMALL LETTER DZHE
+\setXTXcharcodes "00460 "00461 "00460 % CYRILLIC CAPITAL LETTER OMEGA
+\setXTXcharcodes "00461 "00461 "00460 % CYRILLIC SMALL LETTER OMEGA
+\setXTXcharcodes "00462 "00463 "00462 % CYRILLIC CAPITAL LETTER YAT
+\setXTXcharcodes "00463 "00463 "00462 % CYRILLIC SMALL LETTER YAT
+\setXTXcharcodes "00464 "00465 "00464 % CYRILLIC CAPITAL LETTER IOTIFIED E
+\setXTXcharcodes "00465 "00465 "00464 % CYRILLIC SMALL LETTER IOTIFIED E
+\setXTXcharcodes "00466 "00467 "00466 % CYRILLIC CAPITAL LETTER LITTLE YUS
+\setXTXcharcodes "00467 "00467 "00466 % CYRILLIC SMALL LETTER LITTLE YUS
+\setXTXcharcodes "00468 "00469 "00468 % CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS
+\setXTXcharcodes "00469 "00469 "00468 % CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS
+\setXTXcharcodes "0046A "0046B "0046A % CYRILLIC CAPITAL LETTER BIG YUS
+\setXTXcharcodes "0046B "0046B "0046A % CYRILLIC SMALL LETTER BIG YUS
+\setXTXcharcodes "0046C "0046D "0046C % CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS
+\setXTXcharcodes "0046D "0046D "0046C % CYRILLIC SMALL LETTER IOTIFIED BIG YUS
+\setXTXcharcodes "0046E "0046F "0046E % CYRILLIC CAPITAL LETTER KSI
+\setXTXcharcodes "0046F "0046F "0046E % CYRILLIC SMALL LETTER KSI
+\setXTXcharcodes "00470 "00471 "00470 % CYRILLIC CAPITAL LETTER PSI
+\setXTXcharcodes "00471 "00471 "00470 % CYRILLIC SMALL LETTER PSI
+\setXTXcharcodes "00472 "00473 "00472 % CYRILLIC CAPITAL LETTER FITA
+\setXTXcharcodes "00473 "00473 "00472 % CYRILLIC SMALL LETTER FITA
+\setXTXcharcodes "00474 "00475 "00474 % CYRILLIC CAPITAL LETTER IZHITSA
+\setXTXcharcodes "00475 "00475 "00474 % CYRILLIC SMALL LETTER IZHITSA
+\setXTXcharcodes "00476 "00477 "00476 % CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
+\setXTXcharcodes "00477 "00477 "00476 % CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
+\setXTXcharcodes "00478 "00479 "00478 % CYRILLIC CAPITAL LETTER UK
+\setXTXcharcodes "00479 "00479 "00478 % CYRILLIC SMALL LETTER UK
+\setXTXcharcodes "0047A "0047B "0047A % CYRILLIC CAPITAL LETTER ROUND OMEGA
+\setXTXcharcodes "0047B "0047B "0047A % CYRILLIC SMALL LETTER ROUND OMEGA
+\setXTXcharcodes "0047C "0047D "0047C % CYRILLIC CAPITAL LETTER OMEGA WITH TITLO
+\setXTXcharcodes "0047D "0047D "0047C % CYRILLIC SMALL LETTER OMEGA WITH TITLO
+\setXTXcharcodes "0047E "0047F "0047E % CYRILLIC CAPITAL LETTER OT
+\setXTXcharcodes "0047F "0047F "0047E % CYRILLIC SMALL LETTER OT
+\setXTXcharcodes "00480 "00481 "00480 % CYRILLIC CAPITAL LETTER KOPPA
+\setXTXcharcodes "00481 "00481 "00480 % CYRILLIC SMALL LETTER KOPPA
+\setXTXcharcodes "0048A "0048B "0048A % CYRILLIC CAPITAL LETTER SHORT I WITH TAIL
+\setXTXcharcodes "0048B "0048B "0048A % CYRILLIC SMALL LETTER SHORT I WITH TAIL
+\setXTXcharcodes "0048C "0048D "0048C % CYRILLIC CAPITAL LETTER SEMISOFT SIGN
+\setXTXcharcodes "0048D "0048D "0048C % CYRILLIC SMALL LETTER SEMISOFT SIGN
+\setXTXcharcodes "0048E "0048F "0048E % CYRILLIC CAPITAL LETTER ER WITH TICK
+\setXTXcharcodes "0048F "0048F "0048E % CYRILLIC SMALL LETTER ER WITH TICK
+\setXTXcharcodes "00490 "00491 "00490 % CYRILLIC CAPITAL LETTER GHE WITH UPTURN
+\setXTXcharcodes "00491 "00491 "00490 % CYRILLIC SMALL LETTER GHE WITH UPTURN
+\setXTXcharcodes "00492 "00493 "00492 % CYRILLIC CAPITAL LETTER GHE WITH STROKE
+\setXTXcharcodes "00493 "00493 "00492 % CYRILLIC SMALL LETTER GHE WITH STROKE
+\setXTXcharcodes "00494 "00495 "00494 % CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK
+\setXTXcharcodes "00495 "00495 "00494 % CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK
+\setXTXcharcodes "00496 "00497 "00496 % CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER
+\setXTXcharcodes "00497 "00497 "00496 % CYRILLIC SMALL LETTER ZHE WITH DESCENDER
+\setXTXcharcodes "00498 "00499 "00498 % CYRILLIC CAPITAL LETTER ZE WITH DESCENDER
+\setXTXcharcodes "00499 "00499 "00498 % CYRILLIC SMALL LETTER ZE WITH DESCENDER
+\setXTXcharcodes "0049A "0049B "0049A % CYRILLIC CAPITAL LETTER KA WITH DESCENDER
+\setXTXcharcodes "0049B "0049B "0049A % CYRILLIC SMALL LETTER KA WITH DESCENDER
+\setXTXcharcodes "0049C "0049D "0049C % CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE
+\setXTXcharcodes "0049D "0049D "0049C % CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE
+\setXTXcharcodes "0049E "0049F "0049E % CYRILLIC CAPITAL LETTER KA WITH STROKE
+\setXTXcharcodes "0049F "0049F "0049E % CYRILLIC SMALL LETTER KA WITH STROKE
+\setXTXcharcodes "004A0 "004A1 "004A0 % CYRILLIC CAPITAL LETTER BASHKIR KA
+\setXTXcharcodes "004A1 "004A1 "004A0 % CYRILLIC SMALL LETTER BASHKIR KA
+\setXTXcharcodes "004A2 "004A3 "004A2 % CYRILLIC CAPITAL LETTER EN WITH DESCENDER
+\setXTXcharcodes "004A3 "004A3 "004A2 % CYRILLIC SMALL LETTER EN WITH DESCENDER
+\setXTXcharcodes "004A4 "004A5 "004A4 % CYRILLIC CAPITAL LIGATURE EN GHE
+\setXTXcharcodes "004A5 "004A5 "004A4 % CYRILLIC SMALL LIGATURE EN GHE
+\setXTXcharcodes "004A6 "004A7 "004A6 % CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK
+\setXTXcharcodes "004A7 "004A7 "004A6 % CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK
+\setXTXcharcodes "004A8 "004A9 "004A8 % CYRILLIC CAPITAL LETTER ABKHASIAN HA
+\setXTXcharcodes "004A9 "004A9 "004A8 % CYRILLIC SMALL LETTER ABKHASIAN HA
+\setXTXcharcodes "004AA "004AB "004AA % CYRILLIC CAPITAL LETTER ES WITH DESCENDER
+\setXTXcharcodes "004AB "004AB "004AA % CYRILLIC SMALL LETTER ES WITH DESCENDER
+\setXTXcharcodes "004AC "004AD "004AC % CYRILLIC CAPITAL LETTER TE WITH DESCENDER
+\setXTXcharcodes "004AD "004AD "004AC % CYRILLIC SMALL LETTER TE WITH DESCENDER
+\setXTXcharcodes "004AE "004AF "004AE % CYRILLIC CAPITAL LETTER STRAIGHT U
+\setXTXcharcodes "004AF "004AF "004AE % CYRILLIC SMALL LETTER STRAIGHT U
+\setXTXcharcodes "004B0 "004B1 "004B0 % CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE
+\setXTXcharcodes "004B1 "004B1 "004B0 % CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE
+\setXTXcharcodes "004B2 "004B3 "004B2 % CYRILLIC CAPITAL LETTER HA WITH DESCENDER
+\setXTXcharcodes "004B3 "004B3 "004B2 % CYRILLIC SMALL LETTER HA WITH DESCENDER
+\setXTXcharcodes "004B4 "004B5 "004B4 % CYRILLIC CAPITAL LIGATURE TE TSE
+\setXTXcharcodes "004B5 "004B5 "004B4 % CYRILLIC SMALL LIGATURE TE TSE
+\setXTXcharcodes "004B6 "004B7 "004B6 % CYRILLIC CAPITAL LETTER CHE WITH DESCENDER
+\setXTXcharcodes "004B7 "004B7 "004B6 % CYRILLIC SMALL LETTER CHE WITH DESCENDER
+\setXTXcharcodes "004B8 "004B9 "004B8 % CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE
+\setXTXcharcodes "004B9 "004B9 "004B8 % CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE
+\setXTXcharcodes "004BA "004BB "004BA % CYRILLIC CAPITAL LETTER SHHA
+\setXTXcharcodes "004BB "004BB "004BA % CYRILLIC SMALL LETTER SHHA
+\setXTXcharcodes "004BC "004BD "004BC % CYRILLIC CAPITAL LETTER ABKHASIAN CHE
+\setXTXcharcodes "004BD "004BD "004BC % CYRILLIC SMALL LETTER ABKHASIAN CHE
+\setXTXcharcodes "004BE "004BF "004BE % CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER
+\setXTXcharcodes "004BF "004BF "004BE % CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER
+\setXTXcharcodes "004C0 "004CF "004C0 % CYRILLIC LETTER PALOCHKA
+\setXTXcharcodes "004C1 "004C2 "004C1 % CYRILLIC CAPITAL LETTER ZHE WITH BREVE
+\setXTXcharcodes "004C2 "004C2 "004C1 % CYRILLIC SMALL LETTER ZHE WITH BREVE
+\setXTXcharcodes "004C3 "004C4 "004C3 % CYRILLIC CAPITAL LETTER KA WITH HOOK
+\setXTXcharcodes "004C4 "004C4 "004C3 % CYRILLIC SMALL LETTER KA WITH HOOK
+\setXTXcharcodes "004C5 "004C6 "004C5 % CYRILLIC CAPITAL LETTER EL WITH TAIL
+\setXTXcharcodes "004C6 "004C6 "004C5 % CYRILLIC SMALL LETTER EL WITH TAIL
+\setXTXcharcodes "004C7 "004C8 "004C7 % CYRILLIC CAPITAL LETTER EN WITH HOOK
+\setXTXcharcodes "004C8 "004C8 "004C7 % CYRILLIC SMALL LETTER EN WITH HOOK
+\setXTXcharcodes "004C9 "004CA "004C9 % CYRILLIC CAPITAL LETTER EN WITH TAIL
+\setXTXcharcodes "004CA "004CA "004C9 % CYRILLIC SMALL LETTER EN WITH TAIL
+\setXTXcharcodes "004CB "004CC "004CB % CYRILLIC CAPITAL LETTER KHAKASSIAN CHE
+\setXTXcharcodes "004CC "004CC "004CB % CYRILLIC SMALL LETTER KHAKASSIAN CHE
+\setXTXcharcodes "004CD "004CE "004CD % CYRILLIC CAPITAL LETTER EM WITH TAIL
+\setXTXcharcodes "004CE "004CE "004CD % CYRILLIC SMALL LETTER EM WITH TAIL
+\setXTXcharcodes "004CF "004CF "004C0 % CYRILLIC SMALL LETTER PALOCHKA
+\setXTXcharcodes "004D0 "004D1 "004D0 % CYRILLIC CAPITAL LETTER A WITH BREVE
+\setXTXcharcodes "004D1 "004D1 "004D0 % CYRILLIC SMALL LETTER A WITH BREVE
+\setXTXcharcodes "004D2 "004D3 "004D2 % CYRILLIC CAPITAL LETTER A WITH DIAERESIS
+\setXTXcharcodes "004D3 "004D3 "004D2 % CYRILLIC SMALL LETTER A WITH DIAERESIS
+\setXTXcharcodes "004D4 "004D5 "004D4 % CYRILLIC CAPITAL LIGATURE A IE
+\setXTXcharcodes "004D5 "004D5 "004D4 % CYRILLIC SMALL LIGATURE A IE
+\setXTXcharcodes "004D6 "004D7 "004D6 % CYRILLIC CAPITAL LETTER IE WITH BREVE
+\setXTXcharcodes "004D7 "004D7 "004D6 % CYRILLIC SMALL LETTER IE WITH BREVE
+\setXTXcharcodes "004D8 "004D9 "004D8 % CYRILLIC CAPITAL LETTER SCHWA
+\setXTXcharcodes "004D9 "004D9 "004D8 % CYRILLIC SMALL LETTER SCHWA
+\setXTXcharcodes "004DA "004DB "004DA % CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS
+\setXTXcharcodes "004DB "004DB "004DA % CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS
+\setXTXcharcodes "004DC "004DD "004DC % CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
+\setXTXcharcodes "004DD "004DD "004DC % CYRILLIC SMALL LETTER ZHE WITH DIAERESIS
+\setXTXcharcodes "004DE "004DF "004DE % CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
+\setXTXcharcodes "004DF "004DF "004DE % CYRILLIC SMALL LETTER ZE WITH DIAERESIS
+\setXTXcharcodes "004E0 "004E1 "004E0 % CYRILLIC CAPITAL LETTER ABKHASIAN DZE
+\setXTXcharcodes "004E1 "004E1 "004E0 % CYRILLIC SMALL LETTER ABKHASIAN DZE
+\setXTXcharcodes "004E2 "004E3 "004E2 % CYRILLIC CAPITAL LETTER I WITH MACRON
+\setXTXcharcodes "004E3 "004E3 "004E2 % CYRILLIC SMALL LETTER I WITH MACRON
+\setXTXcharcodes "004E4 "004E5 "004E4 % CYRILLIC CAPITAL LETTER I WITH DIAERESIS
+\setXTXcharcodes "004E5 "004E5 "004E4 % CYRILLIC SMALL LETTER I WITH DIAERESIS
+\setXTXcharcodes "004E6 "004E7 "004E6 % CYRILLIC CAPITAL LETTER O WITH DIAERESIS
+\setXTXcharcodes "004E7 "004E7 "004E6 % CYRILLIC SMALL LETTER O WITH DIAERESIS
+\setXTXcharcodes "004E8 "004E9 "004E8 % CYRILLIC CAPITAL LETTER BARRED O
+\setXTXcharcodes "004E9 "004E9 "004E8 % CYRILLIC SMALL LETTER BARRED O
+\setXTXcharcodes "004EA "004EB "004EA % CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS
+\setXTXcharcodes "004EB "004EB "004EA % CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS
+\setXTXcharcodes "004EC "004ED "004EC % CYRILLIC CAPITAL LETTER E WITH DIAERESIS
+\setXTXcharcodes "004ED "004ED "004EC % CYRILLIC SMALL LETTER E WITH DIAERESIS
+\setXTXcharcodes "004EE "004EF "004EE % CYRILLIC CAPITAL LETTER U WITH MACRON
+\setXTXcharcodes "004EF "004EF "004EE % CYRILLIC SMALL LETTER U WITH MACRON
+\setXTXcharcodes "004F0 "004F1 "004F0 % CYRILLIC CAPITAL LETTER U WITH DIAERESIS
+\setXTXcharcodes "004F1 "004F1 "004F0 % CYRILLIC SMALL LETTER U WITH DIAERESIS
+\setXTXcharcodes "004F2 "004F3 "004F2 % CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE
+\setXTXcharcodes "004F3 "004F3 "004F2 % CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE
+\setXTXcharcodes "004F4 "004F5 "004F4 % CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
+\setXTXcharcodes "004F5 "004F5 "004F4 % CYRILLIC SMALL LETTER CHE WITH DIAERESIS
+\setXTXcharcodes "004F6 "004F7 "004F6 % CYRILLIC CAPITAL LETTER GHE WITH DESCENDER
+\setXTXcharcodes "004F7 "004F7 "004F6 % CYRILLIC SMALL LETTER GHE WITH DESCENDER
+\setXTXcharcodes "004F8 "004F9 "004F8 % CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
+\setXTXcharcodes "004F9 "004F9 "004F8 % CYRILLIC SMALL LETTER YERU WITH DIAERESIS
+\setXTXcharcodes "004FA "004FB "004FA % CYRILLIC CAPITAL LETTER GHE WITH STROKE AND HOOK
+\setXTXcharcodes "004FB "004FB "004FA % CYRILLIC SMALL LETTER GHE WITH STROKE AND HOOK
+\setXTXcharcodes "004FC "004FD "004FC % CYRILLIC CAPITAL LETTER HA WITH HOOK
+\setXTXcharcodes "004FD "004FD "004FC % CYRILLIC SMALL LETTER HA WITH HOOK
+\setXTXcharcodes "004FE "004FF "004FE % CYRILLIC CAPITAL LETTER HA WITH STROKE
+\setXTXcharcodes "004FF "004FF "004FE % CYRILLIC SMALL LETTER HA WITH STROKE
+\setXTXcharcodes "00500 "00501 "00500 % CYRILLIC CAPITAL LETTER KOMI DE
+\setXTXcharcodes "00501 "00501 "00500 % CYRILLIC SMALL LETTER KOMI DE
+\setXTXcharcodes "00502 "00503 "00502 % CYRILLIC CAPITAL LETTER KOMI DJE
+\setXTXcharcodes "00503 "00503 "00502 % CYRILLIC SMALL LETTER KOMI DJE
+\setXTXcharcodes "00504 "00505 "00504 % CYRILLIC CAPITAL LETTER KOMI ZJE
+\setXTXcharcodes "00505 "00505 "00504 % CYRILLIC SMALL LETTER KOMI ZJE
+\setXTXcharcodes "00506 "00507 "00506 % CYRILLIC CAPITAL LETTER KOMI DZJE
+\setXTXcharcodes "00507 "00507 "00506 % CYRILLIC SMALL LETTER KOMI DZJE
+\setXTXcharcodes "00508 "00509 "00508 % CYRILLIC CAPITAL LETTER KOMI LJE
+\setXTXcharcodes "00509 "00509 "00508 % CYRILLIC SMALL LETTER KOMI LJE
+\setXTXcharcodes "0050A "0050B "0050A % CYRILLIC CAPITAL LETTER KOMI NJE
+\setXTXcharcodes "0050B "0050B "0050A % CYRILLIC SMALL LETTER KOMI NJE
+\setXTXcharcodes "0050C "0050D "0050C % CYRILLIC CAPITAL LETTER KOMI SJE
+\setXTXcharcodes "0050D "0050D "0050C % CYRILLIC SMALL LETTER KOMI SJE
+\setXTXcharcodes "0050E "0050F "0050E % CYRILLIC CAPITAL LETTER KOMI TJE
+\setXTXcharcodes "0050F "0050F "0050E % CYRILLIC SMALL LETTER KOMI TJE
+\setXTXcharcodes "00510 "00511 "00510 % CYRILLIC CAPITAL LETTER REVERSED ZE
+\setXTXcharcodes "00511 "00511 "00510 % CYRILLIC SMALL LETTER REVERSED ZE
+\setXTXcharcodes "00512 "00513 "00512 % CYRILLIC CAPITAL LETTER EL WITH HOOK
+\setXTXcharcodes "00513 "00513 "00512 % CYRILLIC SMALL LETTER EL WITH HOOK
+\setXTXcharcodes "00531 "00561 "00531 % ARMENIAN CAPITAL LETTER AYB
+\setXTXcharcodes "00532 "00562 "00532 % ARMENIAN CAPITAL LETTER BEN
+\setXTXcharcodes "00533 "00563 "00533 % ARMENIAN CAPITAL LETTER GIM
+\setXTXcharcodes "00534 "00564 "00534 % ARMENIAN CAPITAL LETTER DA
+\setXTXcharcodes "00535 "00565 "00535 % ARMENIAN CAPITAL LETTER ECH
+\setXTXcharcodes "00536 "00566 "00536 % ARMENIAN CAPITAL LETTER ZA
+\setXTXcharcodes "00537 "00567 "00537 % ARMENIAN CAPITAL LETTER EH
+\setXTXcharcodes "00538 "00568 "00538 % ARMENIAN CAPITAL LETTER ET
+\setXTXcharcodes "00539 "00569 "00539 % ARMENIAN CAPITAL LETTER TO
+\setXTXcharcodes "0053A "0056A "0053A % ARMENIAN CAPITAL LETTER ZHE
+\setXTXcharcodes "0053B "0056B "0053B % ARMENIAN CAPITAL LETTER INI
+\setXTXcharcodes "0053C "0056C "0053C % ARMENIAN CAPITAL LETTER LIWN
+\setXTXcharcodes "0053D "0056D "0053D % ARMENIAN CAPITAL LETTER XEH
+\setXTXcharcodes "0053E "0056E "0053E % ARMENIAN CAPITAL LETTER CA
+\setXTXcharcodes "0053F "0056F "0053F % ARMENIAN CAPITAL LETTER KEN
+\setXTXcharcodes "00540 "00570 "00540 % ARMENIAN CAPITAL LETTER HO
+\setXTXcharcodes "00541 "00571 "00541 % ARMENIAN CAPITAL LETTER JA
+\setXTXcharcodes "00542 "00572 "00542 % ARMENIAN CAPITAL LETTER GHAD
+\setXTXcharcodes "00543 "00573 "00543 % ARMENIAN CAPITAL LETTER CHEH
+\setXTXcharcodes "00544 "00574 "00544 % ARMENIAN CAPITAL LETTER MEN
+\setXTXcharcodes "00545 "00575 "00545 % ARMENIAN CAPITAL LETTER YI
+\setXTXcharcodes "00546 "00576 "00546 % ARMENIAN CAPITAL LETTER NOW
+\setXTXcharcodes "00547 "00577 "00547 % ARMENIAN CAPITAL LETTER SHA
+\setXTXcharcodes "00548 "00578 "00548 % ARMENIAN CAPITAL LETTER VO
+\setXTXcharcodes "00549 "00579 "00549 % ARMENIAN CAPITAL LETTER CHA
+\setXTXcharcodes "0054A "0057A "0054A % ARMENIAN CAPITAL LETTER PEH
+\setXTXcharcodes "0054B "0057B "0054B % ARMENIAN CAPITAL LETTER JHEH
+\setXTXcharcodes "0054C "0057C "0054C % ARMENIAN CAPITAL LETTER RA
+\setXTXcharcodes "0054D "0057D "0054D % ARMENIAN CAPITAL LETTER SEH
+\setXTXcharcodes "0054E "0057E "0054E % ARMENIAN CAPITAL LETTER VEW
+\setXTXcharcodes "0054F "0057F "0054F % ARMENIAN CAPITAL LETTER TIWN
+\setXTXcharcodes "00550 "00580 "00550 % ARMENIAN CAPITAL LETTER REH
+\setXTXcharcodes "00551 "00581 "00551 % ARMENIAN CAPITAL LETTER CO
+\setXTXcharcodes "00552 "00582 "00552 % ARMENIAN CAPITAL LETTER YIWN
+\setXTXcharcodes "00553 "00583 "00553 % ARMENIAN CAPITAL LETTER PIWR
+\setXTXcharcodes "00554 "00584 "00554 % ARMENIAN CAPITAL LETTER KEH
+\setXTXcharcodes "00555 "00585 "00555 % ARMENIAN CAPITAL LETTER OH
+\setXTXcharcodes "00556 "00586 "00556 % ARMENIAN CAPITAL LETTER FEH
+\setXTXcharcodes "00561 "00561 "00531 % ARMENIAN SMALL LETTER AYB
+\setXTXcharcodes "00562 "00562 "00532 % ARMENIAN SMALL LETTER BEN
+\setXTXcharcodes "00563 "00563 "00533 % ARMENIAN SMALL LETTER GIM
+\setXTXcharcodes "00564 "00564 "00534 % ARMENIAN SMALL LETTER DA
+\setXTXcharcodes "00565 "00565 "00535 % ARMENIAN SMALL LETTER ECH
+\setXTXcharcodes "00566 "00566 "00536 % ARMENIAN SMALL LETTER ZA
+\setXTXcharcodes "00567 "00567 "00537 % ARMENIAN SMALL LETTER EH
+\setXTXcharcodes "00568 "00568 "00538 % ARMENIAN SMALL LETTER ET
+\setXTXcharcodes "00569 "00569 "00539 % ARMENIAN SMALL LETTER TO
+\setXTXcharcodes "0056A "0056A "0053A % ARMENIAN SMALL LETTER ZHE
+\setXTXcharcodes "0056B "0056B "0053B % ARMENIAN SMALL LETTER INI
+\setXTXcharcodes "0056C "0056C "0053C % ARMENIAN SMALL LETTER LIWN
+\setXTXcharcodes "0056D "0056D "0053D % ARMENIAN SMALL LETTER XEH
+\setXTXcharcodes "0056E "0056E "0053E % ARMENIAN SMALL LETTER CA
+\setXTXcharcodes "0056F "0056F "0053F % ARMENIAN SMALL LETTER KEN
+\setXTXcharcodes "00570 "00570 "00540 % ARMENIAN SMALL LETTER HO
+\setXTXcharcodes "00571 "00571 "00541 % ARMENIAN SMALL LETTER JA
+\setXTXcharcodes "00572 "00572 "00542 % ARMENIAN SMALL LETTER GHAD
+\setXTXcharcodes "00573 "00573 "00543 % ARMENIAN SMALL LETTER CHEH
+\setXTXcharcodes "00574 "00574 "00544 % ARMENIAN SMALL LETTER MEN
+\setXTXcharcodes "00575 "00575 "00545 % ARMENIAN SMALL LETTER YI
+\setXTXcharcodes "00576 "00576 "00546 % ARMENIAN SMALL LETTER NOW
+\setXTXcharcodes "00577 "00577 "00547 % ARMENIAN SMALL LETTER SHA
+\setXTXcharcodes "00578 "00578 "00548 % ARMENIAN SMALL LETTER VO
+\setXTXcharcodes "00579 "00579 "00549 % ARMENIAN SMALL LETTER CHA
+\setXTXcharcodes "0057A "0057A "0054A % ARMENIAN SMALL LETTER PEH
+\setXTXcharcodes "0057B "0057B "0054B % ARMENIAN SMALL LETTER JHEH
+\setXTXcharcodes "0057C "0057C "0054C % ARMENIAN SMALL LETTER RA
+\setXTXcharcodes "0057D "0057D "0054D % ARMENIAN SMALL LETTER SEH
+\setXTXcharcodes "0057E "0057E "0054E % ARMENIAN SMALL LETTER VEW
+\setXTXcharcodes "0057F "0057F "0054F % ARMENIAN SMALL LETTER TIWN
+\setXTXcharcodes "00580 "00580 "00550 % ARMENIAN SMALL LETTER REH
+\setXTXcharcodes "00581 "00581 "00551 % ARMENIAN SMALL LETTER CO
+\setXTXcharcodes "00582 "00582 "00552 % ARMENIAN SMALL LETTER YIWN
+\setXTXcharcodes "00583 "00583 "00553 % ARMENIAN SMALL LETTER PIWR
+\setXTXcharcodes "00584 "00584 "00554 % ARMENIAN SMALL LETTER KEH
+\setXTXcharcodes "00585 "00585 "00555 % ARMENIAN SMALL LETTER OH
+\setXTXcharcodes "00586 "00586 "00556 % ARMENIAN SMALL LETTER FEH
+\setXTXcharcodes "00587 "00587 "00587 % ARMENIAN SMALL LIGATURE ECH YIWN
+\setXTXcharcodes "010A0 "02D00 "010A0 % GEORGIAN CAPITAL LETTER AN
+\setXTXcharcodes "010A1 "02D01 "010A1 % GEORGIAN CAPITAL LETTER BAN
+\setXTXcharcodes "010A2 "02D02 "010A2 % GEORGIAN CAPITAL LETTER GAN
+\setXTXcharcodes "010A3 "02D03 "010A3 % GEORGIAN CAPITAL LETTER DON
+\setXTXcharcodes "010A4 "02D04 "010A4 % GEORGIAN CAPITAL LETTER EN
+\setXTXcharcodes "010A5 "02D05 "010A5 % GEORGIAN CAPITAL LETTER VIN
+\setXTXcharcodes "010A6 "02D06 "010A6 % GEORGIAN CAPITAL LETTER ZEN
+\setXTXcharcodes "010A7 "02D07 "010A7 % GEORGIAN CAPITAL LETTER TAN
+\setXTXcharcodes "010A8 "02D08 "010A8 % GEORGIAN CAPITAL LETTER IN
+\setXTXcharcodes "010A9 "02D09 "010A9 % GEORGIAN CAPITAL LETTER KAN
+\setXTXcharcodes "010AA "02D0A "010AA % GEORGIAN CAPITAL LETTER LAS
+\setXTXcharcodes "010AB "02D0B "010AB % GEORGIAN CAPITAL LETTER MAN
+\setXTXcharcodes "010AC "02D0C "010AC % GEORGIAN CAPITAL LETTER NAR
+\setXTXcharcodes "010AD "02D0D "010AD % GEORGIAN CAPITAL LETTER ON
+\setXTXcharcodes "010AE "02D0E "010AE % GEORGIAN CAPITAL LETTER PAR
+\setXTXcharcodes "010AF "02D0F "010AF % GEORGIAN CAPITAL LETTER ZHAR
+\setXTXcharcodes "010B0 "02D10 "010B0 % GEORGIAN CAPITAL LETTER RAE
+\setXTXcharcodes "010B1 "02D11 "010B1 % GEORGIAN CAPITAL LETTER SAN
+\setXTXcharcodes "010B2 "02D12 "010B2 % GEORGIAN CAPITAL LETTER TAR
+\setXTXcharcodes "010B3 "02D13 "010B3 % GEORGIAN CAPITAL LETTER UN
+\setXTXcharcodes "010B4 "02D14 "010B4 % GEORGIAN CAPITAL LETTER PHAR
+\setXTXcharcodes "010B5 "02D15 "010B5 % GEORGIAN CAPITAL LETTER KHAR
+\setXTXcharcodes "010B6 "02D16 "010B6 % GEORGIAN CAPITAL LETTER GHAN
+\setXTXcharcodes "010B7 "02D17 "010B7 % GEORGIAN CAPITAL LETTER QAR
+\setXTXcharcodes "010B8 "02D18 "010B8 % GEORGIAN CAPITAL LETTER SHIN
+\setXTXcharcodes "010B9 "02D19 "010B9 % GEORGIAN CAPITAL LETTER CHIN
+\setXTXcharcodes "010BA "02D1A "010BA % GEORGIAN CAPITAL LETTER CAN
+\setXTXcharcodes "010BB "02D1B "010BB % GEORGIAN CAPITAL LETTER JIL
+\setXTXcharcodes "010BC "02D1C "010BC % GEORGIAN CAPITAL LETTER CIL
+\setXTXcharcodes "010BD "02D1D "010BD % GEORGIAN CAPITAL LETTER CHAR
+\setXTXcharcodes "010BE "02D1E "010BE % GEORGIAN CAPITAL LETTER XAN
+\setXTXcharcodes "010BF "02D1F "010BF % GEORGIAN CAPITAL LETTER JHAN
+\setXTXcharcodes "010C0 "02D20 "010C0 % GEORGIAN CAPITAL LETTER HAE
+\setXTXcharcodes "010C1 "02D21 "010C1 % GEORGIAN CAPITAL LETTER HE
+\setXTXcharcodes "010C2 "02D22 "010C2 % GEORGIAN CAPITAL LETTER HIE
+\setXTXcharcodes "010C3 "02D23 "010C3 % GEORGIAN CAPITAL LETTER WE
+\setXTXcharcodes "010C4 "02D24 "010C4 % GEORGIAN CAPITAL LETTER HAR
+\setXTXcharcodes "010C5 "02D25 "010C5 % GEORGIAN CAPITAL LETTER HOE
+\setXTXcharcodes "01D00 "01D00 "01D00 % LATIN LETTER SMALL CAPITAL A
+\setXTXcharcodes "01D01 "01D01 "01D01 % LATIN LETTER SMALL CAPITAL AE
+\setXTXcharcodes "01D02 "01D02 "01D02 % LATIN SMALL LETTER TURNED AE
+\setXTXcharcodes "01D03 "01D03 "01D03 % LATIN LETTER SMALL CAPITAL BARRED B
+\setXTXcharcodes "01D04 "01D04 "01D04 % LATIN LETTER SMALL CAPITAL C
+\setXTXcharcodes "01D05 "01D05 "01D05 % LATIN LETTER SMALL CAPITAL D
+\setXTXcharcodes "01D06 "01D06 "01D06 % LATIN LETTER SMALL CAPITAL ETH
+\setXTXcharcodes "01D07 "01D07 "01D07 % LATIN LETTER SMALL CAPITAL E
+\setXTXcharcodes "01D08 "01D08 "01D08 % LATIN SMALL LETTER TURNED OPEN E
+\setXTXcharcodes "01D09 "01D09 "01D09 % LATIN SMALL LETTER TURNED I
+\setXTXcharcodes "01D0A "01D0A "01D0A % LATIN LETTER SMALL CAPITAL J
+\setXTXcharcodes "01D0B "01D0B "01D0B % LATIN LETTER SMALL CAPITAL K
+\setXTXcharcodes "01D0C "01D0C "01D0C % LATIN LETTER SMALL CAPITAL L WITH STROKE
+\setXTXcharcodes "01D0D "01D0D "01D0D % LATIN LETTER SMALL CAPITAL M
+\setXTXcharcodes "01D0E "01D0E "01D0E % LATIN LETTER SMALL CAPITAL REVERSED N
+\setXTXcharcodes "01D0F "01D0F "01D0F % LATIN LETTER SMALL CAPITAL O
+\setXTXcharcodes "01D10 "01D10 "01D10 % LATIN LETTER SMALL CAPITAL OPEN O
+\setXTXcharcodes "01D11 "01D11 "01D11 % LATIN SMALL LETTER SIDEWAYS O
+\setXTXcharcodes "01D12 "01D12 "01D12 % LATIN SMALL LETTER SIDEWAYS OPEN O
+\setXTXcharcodes "01D13 "01D13 "01D13 % LATIN SMALL LETTER SIDEWAYS O WITH STROKE
+\setXTXcharcodes "01D14 "01D14 "01D14 % LATIN SMALL LETTER TURNED OE
+\setXTXcharcodes "01D15 "01D15 "01D15 % LATIN LETTER SMALL CAPITAL OU
+\setXTXcharcodes "01D16 "01D16 "01D16 % LATIN SMALL LETTER TOP HALF O
+\setXTXcharcodes "01D17 "01D17 "01D17 % LATIN SMALL LETTER BOTTOM HALF O
+\setXTXcharcodes "01D18 "01D18 "01D18 % LATIN LETTER SMALL CAPITAL P
+\setXTXcharcodes "01D19 "01D19 "01D19 % LATIN LETTER SMALL CAPITAL REVERSED R
+\setXTXcharcodes "01D1A "01D1A "01D1A % LATIN LETTER SMALL CAPITAL TURNED R
+\setXTXcharcodes "01D1B "01D1B "01D1B % LATIN LETTER SMALL CAPITAL T
+\setXTXcharcodes "01D1C "01D1C "01D1C % LATIN LETTER SMALL CAPITAL U
+\setXTXcharcodes "01D1D "01D1D "01D1D % LATIN SMALL LETTER SIDEWAYS U
+\setXTXcharcodes "01D1E "01D1E "01D1E % LATIN SMALL LETTER SIDEWAYS DIAERESIZED U
+\setXTXcharcodes "01D1F "01D1F "01D1F % LATIN SMALL LETTER SIDEWAYS TURNED M
+\setXTXcharcodes "01D20 "01D20 "01D20 % LATIN LETTER SMALL CAPITAL V
+\setXTXcharcodes "01D21 "01D21 "01D21 % LATIN LETTER SMALL CAPITAL W
+\setXTXcharcodes "01D22 "01D22 "01D22 % LATIN LETTER SMALL CAPITAL Z
+\setXTXcharcodes "01D23 "01D23 "01D23 % LATIN LETTER SMALL CAPITAL EZH
+\setXTXcharcodes "01D24 "01D24 "01D24 % LATIN LETTER VOICED LARYNGEAL SPIRANT
+\setXTXcharcodes "01D25 "01D25 "01D25 % LATIN LETTER AIN
+\setXTXcharcodes "01D26 "01D26 "01D26 % GREEK LETTER SMALL CAPITAL GAMMA
+\setXTXcharcodes "01D27 "01D27 "01D27 % GREEK LETTER SMALL CAPITAL LAMDA
+\setXTXcharcodes "01D28 "01D28 "01D28 % GREEK LETTER SMALL CAPITAL PI
+\setXTXcharcodes "01D29 "01D29 "01D29 % GREEK LETTER SMALL CAPITAL RHO
+\setXTXcharcodes "01D2A "01D2A "01D2A % GREEK LETTER SMALL CAPITAL PSI
+\setXTXcharcodes "01D2B "01D2B "01D2B % CYRILLIC LETTER SMALL CAPITAL EL
+\setXTXcharcodes "01D62 "01D62 "01D62 % LATIN SUBSCRIPT SMALL LETTER I
+\setXTXcharcodes "01D63 "01D63 "01D63 % LATIN SUBSCRIPT SMALL LETTER R
+\setXTXcharcodes "01D64 "01D64 "01D64 % LATIN SUBSCRIPT SMALL LETTER U
+\setXTXcharcodes "01D65 "01D65 "01D65 % LATIN SUBSCRIPT SMALL LETTER V
+\setXTXcharcodes "01D66 "01D66 "01D66 % GREEK SUBSCRIPT SMALL LETTER BETA
+\setXTXcharcodes "01D67 "01D67 "01D67 % GREEK SUBSCRIPT SMALL LETTER GAMMA
+\setXTXcharcodes "01D68 "01D68 "01D68 % GREEK SUBSCRIPT SMALL LETTER RHO
+\setXTXcharcodes "01D69 "01D69 "01D69 % GREEK SUBSCRIPT SMALL LETTER PHI
+\setXTXcharcodes "01D6A "01D6A "01D6A % GREEK SUBSCRIPT SMALL LETTER CHI
+\setXTXcharcodes "01D6B "01D6B "01D6B % LATIN SMALL LETTER UE
+\setXTXcharcodes "01D6C "01D6C "01D6C % LATIN SMALL LETTER B WITH MIDDLE TILDE
+\setXTXcharcodes "01D6D "01D6D "01D6D % LATIN SMALL LETTER D WITH MIDDLE TILDE
+\setXTXcharcodes "01D6E "01D6E "01D6E % LATIN SMALL LETTER F WITH MIDDLE TILDE
+\setXTXcharcodes "01D6F "01D6F "01D6F % LATIN SMALL LETTER M WITH MIDDLE TILDE
+\setXTXcharcodes "01D70 "01D70 "01D70 % LATIN SMALL LETTER N WITH MIDDLE TILDE
+\setXTXcharcodes "01D71 "01D71 "01D71 % LATIN SMALL LETTER P WITH MIDDLE TILDE
+\setXTXcharcodes "01D72 "01D72 "01D72 % LATIN SMALL LETTER R WITH MIDDLE TILDE
+\setXTXcharcodes "01D73 "01D73 "01D73 % LATIN SMALL LETTER R WITH FISHHOOK AND MIDDLE TILDE
+\setXTXcharcodes "01D74 "01D74 "01D74 % LATIN SMALL LETTER S WITH MIDDLE TILDE
+\setXTXcharcodes "01D75 "01D75 "01D75 % LATIN SMALL LETTER T WITH MIDDLE TILDE
+\setXTXcharcodes "01D76 "01D76 "01D76 % LATIN SMALL LETTER Z WITH MIDDLE TILDE
+\setXTXcharcodes "01D77 "01D77 "01D77 % LATIN SMALL LETTER TURNED G
+\setXTXcharcodes "01D79 "01D79 "01D79 % LATIN SMALL LETTER INSULAR G
+\setXTXcharcodes "01D7A "01D7A "01D7A % LATIN SMALL LETTER TH WITH STRIKETHROUGH
+\setXTXcharcodes "01D7B "01D7B "01D7B % LATIN SMALL CAPITAL LETTER I WITH STROKE
+\setXTXcharcodes "01D7C "01D7C "01D7C % LATIN SMALL LETTER IOTA WITH STROKE
+\setXTXcharcodes "01D7D "01D7D "02C63 % LATIN SMALL LETTER P WITH STROKE
+\setXTXcharcodes "01D7E "01D7E "01D7E % LATIN SMALL CAPITAL LETTER U WITH STROKE
+\setXTXcharcodes "01D7F "01D7F "01D7F % LATIN SMALL LETTER UPSILON WITH STROKE
+\setXTXcharcodes "01D80 "01D80 "01D80 % LATIN SMALL LETTER B WITH PALATAL HOOK
+\setXTXcharcodes "01D81 "01D81 "01D81 % LATIN SMALL LETTER D WITH PALATAL HOOK
+\setXTXcharcodes "01D82 "01D82 "01D82 % LATIN SMALL LETTER F WITH PALATAL HOOK
+\setXTXcharcodes "01D83 "01D83 "01D83 % LATIN SMALL LETTER G WITH PALATAL HOOK
+\setXTXcharcodes "01D84 "01D84 "01D84 % LATIN SMALL LETTER K WITH PALATAL HOOK
+\setXTXcharcodes "01D85 "01D85 "01D85 % LATIN SMALL LETTER L WITH PALATAL HOOK
+\setXTXcharcodes "01D86 "01D86 "01D86 % LATIN SMALL LETTER M WITH PALATAL HOOK
+\setXTXcharcodes "01D87 "01D87 "01D87 % LATIN SMALL LETTER N WITH PALATAL HOOK
+\setXTXcharcodes "01D88 "01D88 "01D88 % LATIN SMALL LETTER P WITH PALATAL HOOK
+\setXTXcharcodes "01D89 "01D89 "01D89 % LATIN SMALL LETTER R WITH PALATAL HOOK
+\setXTXcharcodes "01D8A "01D8A "01D8A % LATIN SMALL LETTER S WITH PALATAL HOOK
+\setXTXcharcodes "01D8B "01D8B "01D8B % LATIN SMALL LETTER ESH WITH PALATAL HOOK
+\setXTXcharcodes "01D8C "01D8C "01D8C % LATIN SMALL LETTER V WITH PALATAL HOOK
+\setXTXcharcodes "01D8D "01D8D "01D8D % LATIN SMALL LETTER X WITH PALATAL HOOK
+\setXTXcharcodes "01D8E "01D8E "01D8E % LATIN SMALL LETTER Z WITH PALATAL HOOK
+\setXTXcharcodes "01D8F "01D8F "01D8F % LATIN SMALL LETTER A WITH RETROFLEX HOOK
+\setXTXcharcodes "01D90 "01D90 "01D90 % LATIN SMALL LETTER ALPHA WITH RETROFLEX HOOK
+\setXTXcharcodes "01D91 "01D91 "01D91 % LATIN SMALL LETTER D WITH HOOK AND TAIL
+\setXTXcharcodes "01D92 "01D92 "01D92 % LATIN SMALL LETTER E WITH RETROFLEX HOOK
+\setXTXcharcodes "01D93 "01D93 "01D93 % LATIN SMALL LETTER OPEN E WITH RETROFLEX HOOK
+\setXTXcharcodes "01D94 "01D94 "01D94 % LATIN SMALL LETTER REVERSED OPEN E WITH RETROFLEX HOOK
+\setXTXcharcodes "01D95 "01D95 "01D95 % LATIN SMALL LETTER SCHWA WITH RETROFLEX HOOK
+\setXTXcharcodes "01D96 "01D96 "01D96 % LATIN SMALL LETTER I WITH RETROFLEX HOOK
+\setXTXcharcodes "01D97 "01D97 "01D97 % LATIN SMALL LETTER OPEN O WITH RETROFLEX HOOK
+\setXTXcharcodes "01D98 "01D98 "01D98 % LATIN SMALL LETTER ESH WITH RETROFLEX HOOK
+\setXTXcharcodes "01D99 "01D99 "01D99 % LATIN SMALL LETTER U WITH RETROFLEX HOOK
+\setXTXcharcodes "01D9A "01D9A "01D9A % LATIN SMALL LETTER EZH WITH RETROFLEX HOOK
+\setXTXcharcodes "01E00 "01E01 "01E00 % LATIN CAPITAL LETTER A WITH RING BELOW
+\setXTXcharcodes "01E01 "01E01 "01E00 % LATIN SMALL LETTER A WITH RING BELOW
+\setXTXcharcodes "01E02 "01E03 "01E02 % LATIN CAPITAL LETTER B WITH DOT ABOVE
+\setXTXcharcodes "01E03 "01E03 "01E02 % LATIN SMALL LETTER B WITH DOT ABOVE
+\setXTXcharcodes "01E04 "01E05 "01E04 % LATIN CAPITAL LETTER B WITH DOT BELOW
+\setXTXcharcodes "01E05 "01E05 "01E04 % LATIN SMALL LETTER B WITH DOT BELOW
+\setXTXcharcodes "01E06 "01E07 "01E06 % LATIN CAPITAL LETTER B WITH LINE BELOW
+\setXTXcharcodes "01E07 "01E07 "01E06 % LATIN SMALL LETTER B WITH LINE BELOW
+\setXTXcharcodes "01E08 "01E09 "01E08 % LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
+\setXTXcharcodes "01E09 "01E09 "01E08 % LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
+\setXTXcharcodes "01E0A "01E0B "01E0A % LATIN CAPITAL LETTER D WITH DOT ABOVE
+\setXTXcharcodes "01E0B "01E0B "01E0A % LATIN SMALL LETTER D WITH DOT ABOVE
+\setXTXcharcodes "01E0C "01E0D "01E0C % LATIN CAPITAL LETTER D WITH DOT BELOW
+\setXTXcharcodes "01E0D "01E0D "01E0C % LATIN SMALL LETTER D WITH DOT BELOW
+\setXTXcharcodes "01E0E "01E0F "01E0E % LATIN CAPITAL LETTER D WITH LINE BELOW
+\setXTXcharcodes "01E0F "01E0F "01E0E % LATIN SMALL LETTER D WITH LINE BELOW
+\setXTXcharcodes "01E10 "01E11 "01E10 % LATIN CAPITAL LETTER D WITH CEDILLA
+\setXTXcharcodes "01E11 "01E11 "01E10 % LATIN SMALL LETTER D WITH CEDILLA
+\setXTXcharcodes "01E12 "01E13 "01E12 % LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW
+\setXTXcharcodes "01E13 "01E13 "01E12 % LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW
+\setXTXcharcodes "01E14 "01E15 "01E14 % LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
+\setXTXcharcodes "01E15 "01E15 "01E14 % LATIN SMALL LETTER E WITH MACRON AND GRAVE
+\setXTXcharcodes "01E16 "01E17 "01E16 % LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
+\setXTXcharcodes "01E17 "01E17 "01E16 % LATIN SMALL LETTER E WITH MACRON AND ACUTE
+\setXTXcharcodes "01E18 "01E19 "01E18 % LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW
+\setXTXcharcodes "01E19 "01E19 "01E18 % LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW
+\setXTXcharcodes "01E1A "01E1B "01E1A % LATIN CAPITAL LETTER E WITH TILDE BELOW
+\setXTXcharcodes "01E1B "01E1B "01E1A % LATIN SMALL LETTER E WITH TILDE BELOW
+\setXTXcharcodes "01E1C "01E1D "01E1C % LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
+\setXTXcharcodes "01E1D "01E1D "01E1C % LATIN SMALL LETTER E WITH CEDILLA AND BREVE
+\setXTXcharcodes "01E1E "01E1F "01E1E % LATIN CAPITAL LETTER F WITH DOT ABOVE
+\setXTXcharcodes "01E1F "01E1F "01E1E % LATIN SMALL LETTER F WITH DOT ABOVE
+\setXTXcharcodes "01E20 "01E21 "01E20 % LATIN CAPITAL LETTER G WITH MACRON
+\setXTXcharcodes "01E21 "01E21 "01E20 % LATIN SMALL LETTER G WITH MACRON
+\setXTXcharcodes "01E22 "01E23 "01E22 % LATIN CAPITAL LETTER H WITH DOT ABOVE
+\setXTXcharcodes "01E23 "01E23 "01E22 % LATIN SMALL LETTER H WITH DOT ABOVE
+\setXTXcharcodes "01E24 "01E25 "01E24 % LATIN CAPITAL LETTER H WITH DOT BELOW
+\setXTXcharcodes "01E25 "01E25 "01E24 % LATIN SMALL LETTER H WITH DOT BELOW
+\setXTXcharcodes "01E26 "01E27 "01E26 % LATIN CAPITAL LETTER H WITH DIAERESIS
+\setXTXcharcodes "01E27 "01E27 "01E26 % LATIN SMALL LETTER H WITH DIAERESIS
+\setXTXcharcodes "01E28 "01E29 "01E28 % LATIN CAPITAL LETTER H WITH CEDILLA
+\setXTXcharcodes "01E29 "01E29 "01E28 % LATIN SMALL LETTER H WITH CEDILLA
+\setXTXcharcodes "01E2A "01E2B "01E2A % LATIN CAPITAL LETTER H WITH BREVE BELOW
+\setXTXcharcodes "01E2B "01E2B "01E2A % LATIN SMALL LETTER H WITH BREVE BELOW
+\setXTXcharcodes "01E2C "01E2D "01E2C % LATIN CAPITAL LETTER I WITH TILDE BELOW
+\setXTXcharcodes "01E2D "01E2D "01E2C % LATIN SMALL LETTER I WITH TILDE BELOW
+\setXTXcharcodes "01E2E "01E2F "01E2E % LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
+\setXTXcharcodes "01E2F "01E2F "01E2E % LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
+\setXTXcharcodes "01E30 "01E31 "01E30 % LATIN CAPITAL LETTER K WITH ACUTE
+\setXTXcharcodes "01E31 "01E31 "01E30 % LATIN SMALL LETTER K WITH ACUTE
+\setXTXcharcodes "01E32 "01E33 "01E32 % LATIN CAPITAL LETTER K WITH DOT BELOW
+\setXTXcharcodes "01E33 "01E33 "01E32 % LATIN SMALL LETTER K WITH DOT BELOW
+\setXTXcharcodes "01E34 "01E35 "01E34 % LATIN CAPITAL LETTER K WITH LINE BELOW
+\setXTXcharcodes "01E35 "01E35 "01E34 % LATIN SMALL LETTER K WITH LINE BELOW
+\setXTXcharcodes "01E36 "01E37 "01E36 % LATIN CAPITAL LETTER L WITH DOT BELOW
+\setXTXcharcodes "01E37 "01E37 "01E36 % LATIN SMALL LETTER L WITH DOT BELOW
+\setXTXcharcodes "01E38 "01E39 "01E38 % LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
+\setXTXcharcodes "01E39 "01E39 "01E38 % LATIN SMALL LETTER L WITH DOT BELOW AND MACRON
+\setXTXcharcodes "01E3A "01E3B "01E3A % LATIN CAPITAL LETTER L WITH LINE BELOW
+\setXTXcharcodes "01E3B "01E3B "01E3A % LATIN SMALL LETTER L WITH LINE BELOW
+\setXTXcharcodes "01E3C "01E3D "01E3C % LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW
+\setXTXcharcodes "01E3D "01E3D "01E3C % LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW
+\setXTXcharcodes "01E3E "01E3F "01E3E % LATIN CAPITAL LETTER M WITH ACUTE
+\setXTXcharcodes "01E3F "01E3F "01E3E % LATIN SMALL LETTER M WITH ACUTE
+\setXTXcharcodes "01E40 "01E41 "01E40 % LATIN CAPITAL LETTER M WITH DOT ABOVE
+\setXTXcharcodes "01E41 "01E41 "01E40 % LATIN SMALL LETTER M WITH DOT ABOVE
+\setXTXcharcodes "01E42 "01E43 "01E42 % LATIN CAPITAL LETTER M WITH DOT BELOW
+\setXTXcharcodes "01E43 "01E43 "01E42 % LATIN SMALL LETTER M WITH DOT BELOW
+\setXTXcharcodes "01E44 "01E45 "01E44 % LATIN CAPITAL LETTER N WITH DOT ABOVE
+\setXTXcharcodes "01E45 "01E45 "01E44 % LATIN SMALL LETTER N WITH DOT ABOVE
+\setXTXcharcodes "01E46 "01E47 "01E46 % LATIN CAPITAL LETTER N WITH DOT BELOW
+\setXTXcharcodes "01E47 "01E47 "01E46 % LATIN SMALL LETTER N WITH DOT BELOW
+\setXTXcharcodes "01E48 "01E49 "01E48 % LATIN CAPITAL LETTER N WITH LINE BELOW
+\setXTXcharcodes "01E49 "01E49 "01E48 % LATIN SMALL LETTER N WITH LINE BELOW
+\setXTXcharcodes "01E4A "01E4B "01E4A % LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW
+\setXTXcharcodes "01E4B "01E4B "01E4A % LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW
+\setXTXcharcodes "01E4C "01E4D "01E4C % LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
+\setXTXcharcodes "01E4D "01E4D "01E4C % LATIN SMALL LETTER O WITH TILDE AND ACUTE
+\setXTXcharcodes "01E4E "01E4F "01E4E % LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
+\setXTXcharcodes "01E4F "01E4F "01E4E % LATIN SMALL LETTER O WITH TILDE AND DIAERESIS
+\setXTXcharcodes "01E50 "01E51 "01E50 % LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
+\setXTXcharcodes "01E51 "01E51 "01E50 % LATIN SMALL LETTER O WITH MACRON AND GRAVE
+\setXTXcharcodes "01E52 "01E53 "01E52 % LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
+\setXTXcharcodes "01E53 "01E53 "01E52 % LATIN SMALL LETTER O WITH MACRON AND ACUTE
+\setXTXcharcodes "01E54 "01E55 "01E54 % LATIN CAPITAL LETTER P WITH ACUTE
+\setXTXcharcodes "01E55 "01E55 "01E54 % LATIN SMALL LETTER P WITH ACUTE
+\setXTXcharcodes "01E56 "01E57 "01E56 % LATIN CAPITAL LETTER P WITH DOT ABOVE
+\setXTXcharcodes "01E57 "01E57 "01E56 % LATIN SMALL LETTER P WITH DOT ABOVE
+\setXTXcharcodes "01E58 "01E59 "01E58 % LATIN CAPITAL LETTER R WITH DOT ABOVE
+\setXTXcharcodes "01E59 "01E59 "01E58 % LATIN SMALL LETTER R WITH DOT ABOVE
+\setXTXcharcodes "01E5A "01E5B "01E5A % LATIN CAPITAL LETTER R WITH DOT BELOW
+\setXTXcharcodes "01E5B "01E5B "01E5A % LATIN SMALL LETTER R WITH DOT BELOW
+\setXTXcharcodes "01E5C "01E5D "01E5C % LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
+\setXTXcharcodes "01E5D "01E5D "01E5C % LATIN SMALL LETTER R WITH DOT BELOW AND MACRON
+\setXTXcharcodes "01E5E "01E5F "01E5E % LATIN CAPITAL LETTER R WITH LINE BELOW
+\setXTXcharcodes "01E5F "01E5F "01E5E % LATIN SMALL LETTER R WITH LINE BELOW
+\setXTXcharcodes "01E60 "01E61 "01E60 % LATIN CAPITAL LETTER S WITH DOT ABOVE
+\setXTXcharcodes "01E61 "01E61 "01E60 % LATIN SMALL LETTER S WITH DOT ABOVE
+\setXTXcharcodes "01E62 "01E63 "01E62 % LATIN CAPITAL LETTER S WITH DOT BELOW
+\setXTXcharcodes "01E63 "01E63 "01E62 % LATIN SMALL LETTER S WITH DOT BELOW
+\setXTXcharcodes "01E64 "01E65 "01E64 % LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE
+\setXTXcharcodes "01E65 "01E65 "01E64 % LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE
+\setXTXcharcodes "01E66 "01E67 "01E66 % LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE
+\setXTXcharcodes "01E67 "01E67 "01E66 % LATIN SMALL LETTER S WITH CARON AND DOT ABOVE
+\setXTXcharcodes "01E68 "01E69 "01E68 % LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE
+\setXTXcharcodes "01E69 "01E69 "01E68 % LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE
+\setXTXcharcodes "01E6A "01E6B "01E6A % LATIN CAPITAL LETTER T WITH DOT ABOVE
+\setXTXcharcodes "01E6B "01E6B "01E6A % LATIN SMALL LETTER T WITH DOT ABOVE
+\setXTXcharcodes "01E6C "01E6D "01E6C % LATIN CAPITAL LETTER T WITH DOT BELOW
+\setXTXcharcodes "01E6D "01E6D "01E6C % LATIN SMALL LETTER T WITH DOT BELOW
+\setXTXcharcodes "01E6E "01E6F "01E6E % LATIN CAPITAL LETTER T WITH LINE BELOW
+\setXTXcharcodes "01E6F "01E6F "01E6E % LATIN SMALL LETTER T WITH LINE BELOW
+\setXTXcharcodes "01E70 "01E71 "01E70 % LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW
+\setXTXcharcodes "01E71 "01E71 "01E70 % LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW
+\setXTXcharcodes "01E72 "01E73 "01E72 % LATIN CAPITAL LETTER U WITH DIAERESIS BELOW
+\setXTXcharcodes "01E73 "01E73 "01E72 % LATIN SMALL LETTER U WITH DIAERESIS BELOW
+\setXTXcharcodes "01E74 "01E75 "01E74 % LATIN CAPITAL LETTER U WITH TILDE BELOW
+\setXTXcharcodes "01E75 "01E75 "01E74 % LATIN SMALL LETTER U WITH TILDE BELOW
+\setXTXcharcodes "01E76 "01E77 "01E76 % LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW
+\setXTXcharcodes "01E77 "01E77 "01E76 % LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW
+\setXTXcharcodes "01E78 "01E79 "01E78 % LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
+\setXTXcharcodes "01E79 "01E79 "01E78 % LATIN SMALL LETTER U WITH TILDE AND ACUTE
+\setXTXcharcodes "01E7A "01E7B "01E7A % LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS
+\setXTXcharcodes "01E7B "01E7B "01E7A % LATIN SMALL LETTER U WITH MACRON AND DIAERESIS
+\setXTXcharcodes "01E7C "01E7D "01E7C % LATIN CAPITAL LETTER V WITH TILDE
+\setXTXcharcodes "01E7D "01E7D "01E7C % LATIN SMALL LETTER V WITH TILDE
+\setXTXcharcodes "01E7E "01E7F "01E7E % LATIN CAPITAL LETTER V WITH DOT BELOW
+\setXTXcharcodes "01E7F "01E7F "01E7E % LATIN SMALL LETTER V WITH DOT BELOW
+\setXTXcharcodes "01E80 "01E81 "01E80 % LATIN CAPITAL LETTER W WITH GRAVE
+\setXTXcharcodes "01E81 "01E81 "01E80 % LATIN SMALL LETTER W WITH GRAVE
+\setXTXcharcodes "01E82 "01E83 "01E82 % LATIN CAPITAL LETTER W WITH ACUTE
+\setXTXcharcodes "01E83 "01E83 "01E82 % LATIN SMALL LETTER W WITH ACUTE
+\setXTXcharcodes "01E84 "01E85 "01E84 % LATIN CAPITAL LETTER W WITH DIAERESIS
+\setXTXcharcodes "01E85 "01E85 "01E84 % LATIN SMALL LETTER W WITH DIAERESIS
+\setXTXcharcodes "01E86 "01E87 "01E86 % LATIN CAPITAL LETTER W WITH DOT ABOVE
+\setXTXcharcodes "01E87 "01E87 "01E86 % LATIN SMALL LETTER W WITH DOT ABOVE
+\setXTXcharcodes "01E88 "01E89 "01E88 % LATIN CAPITAL LETTER W WITH DOT BELOW
+\setXTXcharcodes "01E89 "01E89 "01E88 % LATIN SMALL LETTER W WITH DOT BELOW
+\setXTXcharcodes "01E8A "01E8B "01E8A % LATIN CAPITAL LETTER X WITH DOT ABOVE
+\setXTXcharcodes "01E8B "01E8B "01E8A % LATIN SMALL LETTER X WITH DOT ABOVE
+\setXTXcharcodes "01E8C "01E8D "01E8C % LATIN CAPITAL LETTER X WITH DIAERESIS
+\setXTXcharcodes "01E8D "01E8D "01E8C % LATIN SMALL LETTER X WITH DIAERESIS
+\setXTXcharcodes "01E8E "01E8F "01E8E % LATIN CAPITAL LETTER Y WITH DOT ABOVE
+\setXTXcharcodes "01E8F "01E8F "01E8E % LATIN SMALL LETTER Y WITH DOT ABOVE
+\setXTXcharcodes "01E90 "01E91 "01E90 % LATIN CAPITAL LETTER Z WITH CIRCUMFLEX
+\setXTXcharcodes "01E91 "01E91 "01E90 % LATIN SMALL LETTER Z WITH CIRCUMFLEX
+\setXTXcharcodes "01E92 "01E93 "01E92 % LATIN CAPITAL LETTER Z WITH DOT BELOW
+\setXTXcharcodes "01E93 "01E93 "01E92 % LATIN SMALL LETTER Z WITH DOT BELOW
+\setXTXcharcodes "01E94 "01E95 "01E94 % LATIN CAPITAL LETTER Z WITH LINE BELOW
+\setXTXcharcodes "01E95 "01E95 "01E94 % LATIN SMALL LETTER Z WITH LINE BELOW
+\setXTXcharcodes "01E96 "01E96 "01E96 % LATIN SMALL LETTER H WITH LINE BELOW
+\setXTXcharcodes "01E97 "01E97 "01E97 % LATIN SMALL LETTER T WITH DIAERESIS
+\setXTXcharcodes "01E98 "01E98 "01E98 % LATIN SMALL LETTER W WITH RING ABOVE
+\setXTXcharcodes "01E99 "01E99 "01E99 % LATIN SMALL LETTER Y WITH RING ABOVE
+\setXTXcharcodes "01E9A "01E9A "01E9A % LATIN SMALL LETTER A WITH RIGHT HALF RING
+\setXTXcharcodes "01E9B "01E9B "01E60 % LATIN SMALL LETTER LONG S WITH DOT ABOVE
+\setXTXcharcodes "01EA0 "01EA1 "01EA0 % LATIN CAPITAL LETTER A WITH DOT BELOW
+\setXTXcharcodes "01EA1 "01EA1 "01EA0 % LATIN SMALL LETTER A WITH DOT BELOW
+\setXTXcharcodes "01EA2 "01EA3 "01EA2 % LATIN CAPITAL LETTER A WITH HOOK ABOVE
+\setXTXcharcodes "01EA3 "01EA3 "01EA2 % LATIN SMALL LETTER A WITH HOOK ABOVE
+\setXTXcharcodes "01EA4 "01EA5 "01EA4 % LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
+\setXTXcharcodes "01EA5 "01EA5 "01EA4 % LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
+\setXTXcharcodes "01EA6 "01EA7 "01EA6 % LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
+\setXTXcharcodes "01EA7 "01EA7 "01EA6 % LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
+\setXTXcharcodes "01EA8 "01EA9 "01EA8 % LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+\setXTXcharcodes "01EA9 "01EA9 "01EA8 % LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+\setXTXcharcodes "01EAA "01EAB "01EAA % LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
+\setXTXcharcodes "01EAB "01EAB "01EAA % LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
+\setXTXcharcodes "01EAC "01EAD "01EAC % LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+\setXTXcharcodes "01EAD "01EAD "01EAC % LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+\setXTXcharcodes "01EAE "01EAF "01EAE % LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
+\setXTXcharcodes "01EAF "01EAF "01EAE % LATIN SMALL LETTER A WITH BREVE AND ACUTE
+\setXTXcharcodes "01EB0 "01EB1 "01EB0 % LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
+\setXTXcharcodes "01EB1 "01EB1 "01EB0 % LATIN SMALL LETTER A WITH BREVE AND GRAVE
+\setXTXcharcodes "01EB2 "01EB3 "01EB2 % LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
+\setXTXcharcodes "01EB3 "01EB3 "01EB2 % LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
+\setXTXcharcodes "01EB4 "01EB5 "01EB4 % LATIN CAPITAL LETTER A WITH BREVE AND TILDE
+\setXTXcharcodes "01EB5 "01EB5 "01EB4 % LATIN SMALL LETTER A WITH BREVE AND TILDE
+\setXTXcharcodes "01EB6 "01EB7 "01EB6 % LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
+\setXTXcharcodes "01EB7 "01EB7 "01EB6 % LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
+\setXTXcharcodes "01EB8 "01EB9 "01EB8 % LATIN CAPITAL LETTER E WITH DOT BELOW
+\setXTXcharcodes "01EB9 "01EB9 "01EB8 % LATIN SMALL LETTER E WITH DOT BELOW
+\setXTXcharcodes "01EBA "01EBB "01EBA % LATIN CAPITAL LETTER E WITH HOOK ABOVE
+\setXTXcharcodes "01EBB "01EBB "01EBA % LATIN SMALL LETTER E WITH HOOK ABOVE
+\setXTXcharcodes "01EBC "01EBD "01EBC % LATIN CAPITAL LETTER E WITH TILDE
+\setXTXcharcodes "01EBD "01EBD "01EBC % LATIN SMALL LETTER E WITH TILDE
+\setXTXcharcodes "01EBE "01EBF "01EBE % LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+\setXTXcharcodes "01EBF "01EBF "01EBE % LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+\setXTXcharcodes "01EC0 "01EC1 "01EC0 % LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+\setXTXcharcodes "01EC1 "01EC1 "01EC0 % LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+\setXTXcharcodes "01EC2 "01EC3 "01EC2 % LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+\setXTXcharcodes "01EC3 "01EC3 "01EC2 % LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+\setXTXcharcodes "01EC4 "01EC5 "01EC4 % LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
+\setXTXcharcodes "01EC5 "01EC5 "01EC4 % LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
+\setXTXcharcodes "01EC6 "01EC7 "01EC6 % LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+\setXTXcharcodes "01EC7 "01EC7 "01EC6 % LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+\setXTXcharcodes "01EC8 "01EC9 "01EC8 % LATIN CAPITAL LETTER I WITH HOOK ABOVE
+\setXTXcharcodes "01EC9 "01EC9 "01EC8 % LATIN SMALL LETTER I WITH HOOK ABOVE
+\setXTXcharcodes "01ECA "01ECB "01ECA % LATIN CAPITAL LETTER I WITH DOT BELOW
+\setXTXcharcodes "01ECB "01ECB "01ECA % LATIN SMALL LETTER I WITH DOT BELOW
+\setXTXcharcodes "01ECC "01ECD "01ECC % LATIN CAPITAL LETTER O WITH DOT BELOW
+\setXTXcharcodes "01ECD "01ECD "01ECC % LATIN SMALL LETTER O WITH DOT BELOW
+\setXTXcharcodes "01ECE "01ECF "01ECE % LATIN CAPITAL LETTER O WITH HOOK ABOVE
+\setXTXcharcodes "01ECF "01ECF "01ECE % LATIN SMALL LETTER O WITH HOOK ABOVE
+\setXTXcharcodes "01ED0 "01ED1 "01ED0 % LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
+\setXTXcharcodes "01ED1 "01ED1 "01ED0 % LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
+\setXTXcharcodes "01ED2 "01ED3 "01ED2 % LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
+\setXTXcharcodes "01ED3 "01ED3 "01ED2 % LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
+\setXTXcharcodes "01ED4 "01ED5 "01ED4 % LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+\setXTXcharcodes "01ED5 "01ED5 "01ED4 % LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+\setXTXcharcodes "01ED6 "01ED7 "01ED6 % LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
+\setXTXcharcodes "01ED7 "01ED7 "01ED6 % LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
+\setXTXcharcodes "01ED8 "01ED9 "01ED8 % LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+\setXTXcharcodes "01ED9 "01ED9 "01ED8 % LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+\setXTXcharcodes "01EDA "01EDB "01EDA % LATIN CAPITAL LETTER O WITH HORN AND ACUTE
+\setXTXcharcodes "01EDB "01EDB "01EDA % LATIN SMALL LETTER O WITH HORN AND ACUTE
+\setXTXcharcodes "01EDC "01EDD "01EDC % LATIN CAPITAL LETTER O WITH HORN AND GRAVE
+\setXTXcharcodes "01EDD "01EDD "01EDC % LATIN SMALL LETTER O WITH HORN AND GRAVE
+\setXTXcharcodes "01EDE "01EDF "01EDE % LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
+\setXTXcharcodes "01EDF "01EDF "01EDE % LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
+\setXTXcharcodes "01EE0 "01EE1 "01EE0 % LATIN CAPITAL LETTER O WITH HORN AND TILDE
+\setXTXcharcodes "01EE1 "01EE1 "01EE0 % LATIN SMALL LETTER O WITH HORN AND TILDE
+\setXTXcharcodes "01EE2 "01EE3 "01EE2 % LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
+\setXTXcharcodes "01EE3 "01EE3 "01EE2 % LATIN SMALL LETTER O WITH HORN AND DOT BELOW
+\setXTXcharcodes "01EE4 "01EE5 "01EE4 % LATIN CAPITAL LETTER U WITH DOT BELOW
+\setXTXcharcodes "01EE5 "01EE5 "01EE4 % LATIN SMALL LETTER U WITH DOT BELOW
+\setXTXcharcodes "01EE6 "01EE7 "01EE6 % LATIN CAPITAL LETTER U WITH HOOK ABOVE
+\setXTXcharcodes "01EE7 "01EE7 "01EE6 % LATIN SMALL LETTER U WITH HOOK ABOVE
+\setXTXcharcodes "01EE8 "01EE9 "01EE8 % LATIN CAPITAL LETTER U WITH HORN AND ACUTE
+\setXTXcharcodes "01EE9 "01EE9 "01EE8 % LATIN SMALL LETTER U WITH HORN AND ACUTE
+\setXTXcharcodes "01EEA "01EEB "01EEA % LATIN CAPITAL LETTER U WITH HORN AND GRAVE
+\setXTXcharcodes "01EEB "01EEB "01EEA % LATIN SMALL LETTER U WITH HORN AND GRAVE
+\setXTXcharcodes "01EEC "01EED "01EEC % LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
+\setXTXcharcodes "01EED "01EED "01EEC % LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
+\setXTXcharcodes "01EEE "01EEF "01EEE % LATIN CAPITAL LETTER U WITH HORN AND TILDE
+\setXTXcharcodes "01EEF "01EEF "01EEE % LATIN SMALL LETTER U WITH HORN AND TILDE
+\setXTXcharcodes "01EF0 "01EF1 "01EF0 % LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
+\setXTXcharcodes "01EF1 "01EF1 "01EF0 % LATIN SMALL LETTER U WITH HORN AND DOT BELOW
+\setXTXcharcodes "01EF2 "01EF3 "01EF2 % LATIN CAPITAL LETTER Y WITH GRAVE
+\setXTXcharcodes "01EF3 "01EF3 "01EF2 % LATIN SMALL LETTER Y WITH GRAVE
+\setXTXcharcodes "01EF4 "01EF5 "01EF4 % LATIN CAPITAL LETTER Y WITH DOT BELOW
+\setXTXcharcodes "01EF5 "01EF5 "01EF4 % LATIN SMALL LETTER Y WITH DOT BELOW
+\setXTXcharcodes "01EF6 "01EF7 "01EF6 % LATIN CAPITAL LETTER Y WITH HOOK ABOVE
+\setXTXcharcodes "01EF7 "01EF7 "01EF6 % LATIN SMALL LETTER Y WITH HOOK ABOVE
+\setXTXcharcodes "01EF8 "01EF9 "01EF8 % LATIN CAPITAL LETTER Y WITH TILDE
+\setXTXcharcodes "01EF9 "01EF9 "01EF8 % LATIN SMALL LETTER Y WITH TILDE
+\setXTXcharcodes "01F00 "01F00 "01F08 % GREEK SMALL LETTER ALPHA WITH PSILI
+\setXTXcharcodes "01F01 "01F01 "01F09 % GREEK SMALL LETTER ALPHA WITH DASIA
+\setXTXcharcodes "01F02 "01F02 "01F0A % GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA
+\setXTXcharcodes "01F03 "01F03 "01F0B % GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA
+\setXTXcharcodes "01F04 "01F04 "01F0C % GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA
+\setXTXcharcodes "01F05 "01F05 "01F0D % GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA
+\setXTXcharcodes "01F06 "01F06 "01F0E % GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI
+\setXTXcharcodes "01F07 "01F07 "01F0F % GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI
+\setXTXcharcodes "01F08 "01F00 "01F08 % GREEK CAPITAL LETTER ALPHA WITH PSILI
+\setXTXcharcodes "01F09 "01F01 "01F09 % GREEK CAPITAL LETTER ALPHA WITH DASIA
+\setXTXcharcodes "01F0A "01F02 "01F0A % GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA
+\setXTXcharcodes "01F0B "01F03 "01F0B % GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA
+\setXTXcharcodes "01F0C "01F04 "01F0C % GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA
+\setXTXcharcodes "01F0D "01F05 "01F0D % GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA
+\setXTXcharcodes "01F0E "01F06 "01F0E % GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI
+\setXTXcharcodes "01F0F "01F07 "01F0F % GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI
+\setXTXcharcodes "01F10 "01F10 "01F18 % GREEK SMALL LETTER EPSILON WITH PSILI
+\setXTXcharcodes "01F11 "01F11 "01F19 % GREEK SMALL LETTER EPSILON WITH DASIA
+\setXTXcharcodes "01F12 "01F12 "01F1A % GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA
+\setXTXcharcodes "01F13 "01F13 "01F1B % GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA
+\setXTXcharcodes "01F14 "01F14 "01F1C % GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA
+\setXTXcharcodes "01F15 "01F15 "01F1D % GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
+\setXTXcharcodes "01F18 "01F10 "01F18 % GREEK CAPITAL LETTER EPSILON WITH PSILI
+\setXTXcharcodes "01F19 "01F11 "01F19 % GREEK CAPITAL LETTER EPSILON WITH DASIA
+\setXTXcharcodes "01F1A "01F12 "01F1A % GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA
+\setXTXcharcodes "01F1B "01F13 "01F1B % GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA
+\setXTXcharcodes "01F1C "01F14 "01F1C % GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA
+\setXTXcharcodes "01F1D "01F15 "01F1D % GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
+\setXTXcharcodes "01F20 "01F20 "01F28 % GREEK SMALL LETTER ETA WITH PSILI
+\setXTXcharcodes "01F21 "01F21 "01F29 % GREEK SMALL LETTER ETA WITH DASIA
+\setXTXcharcodes "01F22 "01F22 "01F2A % GREEK SMALL LETTER ETA WITH PSILI AND VARIA
+\setXTXcharcodes "01F23 "01F23 "01F2B % GREEK SMALL LETTER ETA WITH DASIA AND VARIA
+\setXTXcharcodes "01F24 "01F24 "01F2C % GREEK SMALL LETTER ETA WITH PSILI AND OXIA
+\setXTXcharcodes "01F25 "01F25 "01F2D % GREEK SMALL LETTER ETA WITH DASIA AND OXIA
+\setXTXcharcodes "01F26 "01F26 "01F2E % GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI
+\setXTXcharcodes "01F27 "01F27 "01F2F % GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI
+\setXTXcharcodes "01F28 "01F20 "01F28 % GREEK CAPITAL LETTER ETA WITH PSILI
+\setXTXcharcodes "01F29 "01F21 "01F29 % GREEK CAPITAL LETTER ETA WITH DASIA
+\setXTXcharcodes "01F2A "01F22 "01F2A % GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA
+\setXTXcharcodes "01F2B "01F23 "01F2B % GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA
+\setXTXcharcodes "01F2C "01F24 "01F2C % GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA
+\setXTXcharcodes "01F2D "01F25 "01F2D % GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA
+\setXTXcharcodes "01F2E "01F26 "01F2E % GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI
+\setXTXcharcodes "01F2F "01F27 "01F2F % GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI
+\setXTXcharcodes "01F30 "01F30 "01F38 % GREEK SMALL LETTER IOTA WITH PSILI
+\setXTXcharcodes "01F31 "01F31 "01F39 % GREEK SMALL LETTER IOTA WITH DASIA
+\setXTXcharcodes "01F32 "01F32 "01F3A % GREEK SMALL LETTER IOTA WITH PSILI AND VARIA
+\setXTXcharcodes "01F33 "01F33 "01F3B % GREEK SMALL LETTER IOTA WITH DASIA AND VARIA
+\setXTXcharcodes "01F34 "01F34 "01F3C % GREEK SMALL LETTER IOTA WITH PSILI AND OXIA
+\setXTXcharcodes "01F35 "01F35 "01F3D % GREEK SMALL LETTER IOTA WITH DASIA AND OXIA
+\setXTXcharcodes "01F36 "01F36 "01F3E % GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI
+\setXTXcharcodes "01F37 "01F37 "01F3F % GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI
+\setXTXcharcodes "01F38 "01F30 "01F38 % GREEK CAPITAL LETTER IOTA WITH PSILI
+\setXTXcharcodes "01F39 "01F31 "01F39 % GREEK CAPITAL LETTER IOTA WITH DASIA
+\setXTXcharcodes "01F3A "01F32 "01F3A % GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA
+\setXTXcharcodes "01F3B "01F33 "01F3B % GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA
+\setXTXcharcodes "01F3C "01F34 "01F3C % GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA
+\setXTXcharcodes "01F3D "01F35 "01F3D % GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA
+\setXTXcharcodes "01F3E "01F36 "01F3E % GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI
+\setXTXcharcodes "01F3F "01F37 "01F3F % GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI
+\setXTXcharcodes "01F40 "01F40 "01F48 % GREEK SMALL LETTER OMICRON WITH PSILI
+\setXTXcharcodes "01F41 "01F41 "01F49 % GREEK SMALL LETTER OMICRON WITH DASIA
+\setXTXcharcodes "01F42 "01F42 "01F4A % GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA
+\setXTXcharcodes "01F43 "01F43 "01F4B % GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA
+\setXTXcharcodes "01F44 "01F44 "01F4C % GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA
+\setXTXcharcodes "01F45 "01F45 "01F4D % GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
+\setXTXcharcodes "01F48 "01F40 "01F48 % GREEK CAPITAL LETTER OMICRON WITH PSILI
+\setXTXcharcodes "01F49 "01F41 "01F49 % GREEK CAPITAL LETTER OMICRON WITH DASIA
+\setXTXcharcodes "01F4A "01F42 "01F4A % GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA
+\setXTXcharcodes "01F4B "01F43 "01F4B % GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA
+\setXTXcharcodes "01F4C "01F44 "01F4C % GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA
+\setXTXcharcodes "01F4D "01F45 "01F4D % GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
+\setXTXcharcodes "01F50 "01F50 "01F50 % GREEK SMALL LETTER UPSILON WITH PSILI
+\setXTXcharcodes "01F51 "01F51 "01F59 % GREEK SMALL LETTER UPSILON WITH DASIA
+\setXTXcharcodes "01F52 "01F52 "01F52 % GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA
+\setXTXcharcodes "01F53 "01F53 "01F5B % GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA
+\setXTXcharcodes "01F54 "01F54 "01F54 % GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA
+\setXTXcharcodes "01F55 "01F55 "01F5D % GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA
+\setXTXcharcodes "01F56 "01F56 "01F56 % GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI
+\setXTXcharcodes "01F57 "01F57 "01F5F % GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
+\setXTXcharcodes "01F59 "01F51 "01F59 % GREEK CAPITAL LETTER UPSILON WITH DASIA
+\setXTXcharcodes "01F5B "01F53 "01F5B % GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
+\setXTXcharcodes "01F5D "01F55 "01F5D % GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
+\setXTXcharcodes "01F5F "01F57 "01F5F % GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI
+\setXTXcharcodes "01F60 "01F60 "01F68 % GREEK SMALL LETTER OMEGA WITH PSILI
+\setXTXcharcodes "01F61 "01F61 "01F69 % GREEK SMALL LETTER OMEGA WITH DASIA
+\setXTXcharcodes "01F62 "01F62 "01F6A % GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA
+\setXTXcharcodes "01F63 "01F63 "01F6B % GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA
+\setXTXcharcodes "01F64 "01F64 "01F6C % GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA
+\setXTXcharcodes "01F65 "01F65 "01F6D % GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA
+\setXTXcharcodes "01F66 "01F66 "01F6E % GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI
+\setXTXcharcodes "01F67 "01F67 "01F6F % GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI
+\setXTXcharcodes "01F68 "01F60 "01F68 % GREEK CAPITAL LETTER OMEGA WITH PSILI
+\setXTXcharcodes "01F69 "01F61 "01F69 % GREEK CAPITAL LETTER OMEGA WITH DASIA
+\setXTXcharcodes "01F6A "01F62 "01F6A % GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA
+\setXTXcharcodes "01F6B "01F63 "01F6B % GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA
+\setXTXcharcodes "01F6C "01F64 "01F6C % GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA
+\setXTXcharcodes "01F6D "01F65 "01F6D % GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA
+\setXTXcharcodes "01F6E "01F66 "01F6E % GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI
+\setXTXcharcodes "01F6F "01F67 "01F6F % GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI
+\setXTXcharcodes "01F70 "01F70 "01FBA % GREEK SMALL LETTER ALPHA WITH VARIA
+\setXTXcharcodes "01F71 "01F71 "01FBB % GREEK SMALL LETTER ALPHA WITH OXIA
+\setXTXcharcodes "01F72 "01F72 "01FC8 % GREEK SMALL LETTER EPSILON WITH VARIA
+\setXTXcharcodes "01F73 "01F73 "01FC9 % GREEK SMALL LETTER EPSILON WITH OXIA
+\setXTXcharcodes "01F74 "01F74 "01FCA % GREEK SMALL LETTER ETA WITH VARIA
+\setXTXcharcodes "01F75 "01F75 "01FCB % GREEK SMALL LETTER ETA WITH OXIA
+\setXTXcharcodes "01F76 "01F76 "01FDA % GREEK SMALL LETTER IOTA WITH VARIA
+\setXTXcharcodes "01F77 "01F77 "01FDB % GREEK SMALL LETTER IOTA WITH OXIA
+\setXTXcharcodes "01F78 "01F78 "01FF8 % GREEK SMALL LETTER OMICRON WITH VARIA
+\setXTXcharcodes "01F79 "01F79 "01FF9 % GREEK SMALL LETTER OMICRON WITH OXIA
+\setXTXcharcodes "01F7A "01F7A "01FEA % GREEK SMALL LETTER UPSILON WITH VARIA
+\setXTXcharcodes "01F7B "01F7B "01FEB % GREEK SMALL LETTER UPSILON WITH OXIA
+\setXTXcharcodes "01F7C "01F7C "01FFA % GREEK SMALL LETTER OMEGA WITH VARIA
+\setXTXcharcodes "01F7D "01F7D "01FFB % GREEK SMALL LETTER OMEGA WITH OXIA
+\setXTXcharcodes "01F80 "01F80 "01F88 % GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI
+\setXTXcharcodes "01F81 "01F81 "01F89 % GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI
+\setXTXcharcodes "01F82 "01F82 "01F8A % GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+\setXTXcharcodes "01F83 "01F83 "01F8B % GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+\setXTXcharcodes "01F84 "01F84 "01F8C % GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+\setXTXcharcodes "01F85 "01F85 "01F8D % GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+\setXTXcharcodes "01F86 "01F86 "01F8E % GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+\setXTXcharcodes "01F87 "01F87 "01F8F % GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+\setXTXcharcodes "01F88 "01F80 "01F88 % GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI
+\setXTXcharcodes "01F89 "01F81 "01F89 % GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI
+\setXTXcharcodes "01F8A "01F82 "01F8A % GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+\setXTXcharcodes "01F8B "01F83 "01F8B % GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+\setXTXcharcodes "01F8C "01F84 "01F8C % GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+\setXTXcharcodes "01F8D "01F85 "01F8D % GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+\setXTXcharcodes "01F8E "01F86 "01F8E % GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+\setXTXcharcodes "01F8F "01F87 "01F8F % GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+\setXTXcharcodes "01F90 "01F90 "01F98 % GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI
+\setXTXcharcodes "01F91 "01F91 "01F99 % GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI
+\setXTXcharcodes "01F92 "01F92 "01F9A % GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+\setXTXcharcodes "01F93 "01F93 "01F9B % GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+\setXTXcharcodes "01F94 "01F94 "01F9C % GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+\setXTXcharcodes "01F95 "01F95 "01F9D % GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+\setXTXcharcodes "01F96 "01F96 "01F9E % GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+\setXTXcharcodes "01F97 "01F97 "01F9F % GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+\setXTXcharcodes "01F98 "01F90 "01F98 % GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI
+\setXTXcharcodes "01F99 "01F91 "01F99 % GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI
+\setXTXcharcodes "01F9A "01F92 "01F9A % GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+\setXTXcharcodes "01F9B "01F93 "01F9B % GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+\setXTXcharcodes "01F9C "01F94 "01F9C % GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+\setXTXcharcodes "01F9D "01F95 "01F9D % GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+\setXTXcharcodes "01F9E "01F96 "01F9E % GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+\setXTXcharcodes "01F9F "01F97 "01F9F % GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+\setXTXcharcodes "01FA0 "01FA0 "01FA8 % GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI
+\setXTXcharcodes "01FA1 "01FA1 "01FA9 % GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI
+\setXTXcharcodes "01FA2 "01FA2 "01FAA % GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+\setXTXcharcodes "01FA3 "01FA3 "01FAB % GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+\setXTXcharcodes "01FA4 "01FA4 "01FAC % GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+\setXTXcharcodes "01FA5 "01FA5 "01FAD % GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+\setXTXcharcodes "01FA6 "01FA6 "01FAE % GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+\setXTXcharcodes "01FA7 "01FA7 "01FAF % GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+\setXTXcharcodes "01FA8 "01FA0 "01FA8 % GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI
+\setXTXcharcodes "01FA9 "01FA1 "01FA9 % GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI
+\setXTXcharcodes "01FAA "01FA2 "01FAA % GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+\setXTXcharcodes "01FAB "01FA3 "01FAB % GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+\setXTXcharcodes "01FAC "01FA4 "01FAC % GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+\setXTXcharcodes "01FAD "01FA5 "01FAD % GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+\setXTXcharcodes "01FAE "01FA6 "01FAE % GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+\setXTXcharcodes "01FAF "01FA7 "01FAF % GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+\setXTXcharcodes "01FB0 "01FB0 "01FB8 % GREEK SMALL LETTER ALPHA WITH VRACHY
+\setXTXcharcodes "01FB1 "01FB1 "01FB9 % GREEK SMALL LETTER ALPHA WITH MACRON
+\setXTXcharcodes "01FB2 "01FB2 "01FB2 % GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI
+\setXTXcharcodes "01FB3 "01FB3 "01FBC % GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI
+\setXTXcharcodes "01FB4 "01FB4 "01FB4 % GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
+\setXTXcharcodes "01FB6 "01FB6 "01FB6 % GREEK SMALL LETTER ALPHA WITH PERISPOMENI
+\setXTXcharcodes "01FB7 "01FB7 "01FB7 % GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI
+\setXTXcharcodes "01FB8 "01FB0 "01FB8 % GREEK CAPITAL LETTER ALPHA WITH VRACHY
+\setXTXcharcodes "01FB9 "01FB1 "01FB9 % GREEK CAPITAL LETTER ALPHA WITH MACRON
+\setXTXcharcodes "01FBA "01F70 "01FBA % GREEK CAPITAL LETTER ALPHA WITH VARIA
+\setXTXcharcodes "01FBB "01F71 "01FBB % GREEK CAPITAL LETTER ALPHA WITH OXIA
+\setXTXcharcodes "01FBC "01FB3 "01FBC % GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI
+\setXTXcharcodes "01FBE "01FBE "00399 % GREEK PROSGEGRAMMENI
+\setXTXcharcodes "01FC2 "01FC2 "01FC2 % GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI
+\setXTXcharcodes "01FC3 "01FC3 "01FCC % GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI
+\setXTXcharcodes "01FC4 "01FC4 "01FC4 % GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
+\setXTXcharcodes "01FC6 "01FC6 "01FC6 % GREEK SMALL LETTER ETA WITH PERISPOMENI
+\setXTXcharcodes "01FC7 "01FC7 "01FC7 % GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI
+\setXTXcharcodes "01FC8 "01F72 "01FC8 % GREEK CAPITAL LETTER EPSILON WITH VARIA
+\setXTXcharcodes "01FC9 "01F73 "01FC9 % GREEK CAPITAL LETTER EPSILON WITH OXIA
+\setXTXcharcodes "01FCA "01F74 "01FCA % GREEK CAPITAL LETTER ETA WITH VARIA
+\setXTXcharcodes "01FCB "01F75 "01FCB % GREEK CAPITAL LETTER ETA WITH OXIA
+\setXTXcharcodes "01FCC "01FC3 "01FCC % GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI
+\setXTXcharcodes "01FD0 "01FD0 "01FD8 % GREEK SMALL LETTER IOTA WITH VRACHY
+\setXTXcharcodes "01FD1 "01FD1 "01FD9 % GREEK SMALL LETTER IOTA WITH MACRON
+\setXTXcharcodes "01FD2 "01FD2 "01FD2 % GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA
+\setXTXcharcodes "01FD3 "01FD3 "01FD3 % GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
+\setXTXcharcodes "01FD6 "01FD6 "01FD6 % GREEK SMALL LETTER IOTA WITH PERISPOMENI
+\setXTXcharcodes "01FD7 "01FD7 "01FD7 % GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI
+\setXTXcharcodes "01FD8 "01FD0 "01FD8 % GREEK CAPITAL LETTER IOTA WITH VRACHY
+\setXTXcharcodes "01FD9 "01FD1 "01FD9 % GREEK CAPITAL LETTER IOTA WITH MACRON
+\setXTXcharcodes "01FDA "01F76 "01FDA % GREEK CAPITAL LETTER IOTA WITH VARIA
+\setXTXcharcodes "01FDB "01F77 "01FDB % GREEK CAPITAL LETTER IOTA WITH OXIA
+\setXTXcharcodes "01FE0 "01FE0 "01FE8 % GREEK SMALL LETTER UPSILON WITH VRACHY
+\setXTXcharcodes "01FE1 "01FE1 "01FE9 % GREEK SMALL LETTER UPSILON WITH MACRON
+\setXTXcharcodes "01FE2 "01FE2 "01FE2 % GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA
+\setXTXcharcodes "01FE3 "01FE3 "01FE3 % GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA
+\setXTXcharcodes "01FE4 "01FE4 "01FE4 % GREEK SMALL LETTER RHO WITH PSILI
+\setXTXcharcodes "01FE5 "01FE5 "01FEC % GREEK SMALL LETTER RHO WITH DASIA
+\setXTXcharcodes "01FE6 "01FE6 "01FE6 % GREEK SMALL LETTER UPSILON WITH PERISPOMENI
+\setXTXcharcodes "01FE7 "01FE7 "01FE7 % GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI
+\setXTXcharcodes "01FE8 "01FE0 "01FE8 % GREEK CAPITAL LETTER UPSILON WITH VRACHY
+\setXTXcharcodes "01FE9 "01FE1 "01FE9 % GREEK CAPITAL LETTER UPSILON WITH MACRON
+\setXTXcharcodes "01FEA "01F7A "01FEA % GREEK CAPITAL LETTER UPSILON WITH VARIA
+\setXTXcharcodes "01FEB "01F7B "01FEB % GREEK CAPITAL LETTER UPSILON WITH OXIA
+\setXTXcharcodes "01FEC "01FE5 "01FEC % GREEK CAPITAL LETTER RHO WITH DASIA
+\setXTXcharcodes "01FF2 "01FF2 "01FF2 % GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI
+\setXTXcharcodes "01FF3 "01FF3 "01FFC % GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI
+\setXTXcharcodes "01FF4 "01FF4 "01FF4 % GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
+\setXTXcharcodes "01FF6 "01FF6 "01FF6 % GREEK SMALL LETTER OMEGA WITH PERISPOMENI
+\setXTXcharcodes "01FF7 "01FF7 "01FF7 % GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI
+\setXTXcharcodes "01FF8 "01F78 "01FF8 % GREEK CAPITAL LETTER OMICRON WITH VARIA
+\setXTXcharcodes "01FF9 "01F79 "01FF9 % GREEK CAPITAL LETTER OMICRON WITH OXIA
+\setXTXcharcodes "01FFA "01F7C "01FFA % GREEK CAPITAL LETTER OMEGA WITH VARIA
+\setXTXcharcodes "01FFB "01F7D "01FFB % GREEK CAPITAL LETTER OMEGA WITH OXIA
+\setXTXcharcodes "01FFC "01FF3 "01FFC % GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
+\setXTXcharcodes "02071 "02071 "02071 % SUPERSCRIPT LATIN SMALL LETTER I
+\setXTXcharcodes "0207F "0207F "0207F % SUPERSCRIPT LATIN SMALL LETTER N
+\setXTXcharcodes "02102 "02102 "02102 % DOUBLE-STRUCK CAPITAL C
+\setXTXcharcodes "02107 "02107 "02107 % EULER CONSTANT
+\setXTXcharcodes "0210A "0210A "0210A % SCRIPT SMALL G
+\setXTXcharcodes "0210B "0210B "0210B % SCRIPT CAPITAL H
+\setXTXcharcodes "0210C "0210C "0210C % BLACK-LETTER CAPITAL H
+\setXTXcharcodes "0210D "0210D "0210D % DOUBLE-STRUCK CAPITAL H
+\setXTXcharcodes "0210E "0210E "0210E % PLANCK CONSTANT
+\setXTXcharcodes "0210F "0210F "0210F % PLANCK CONSTANT OVER TWO PI
+\setXTXcharcodes "02110 "02110 "02110 % SCRIPT CAPITAL I
+\setXTXcharcodes "02111 "02111 "02111 % BLACK-LETTER CAPITAL I
+\setXTXcharcodes "02112 "02112 "02112 % SCRIPT CAPITAL L
+\setXTXcharcodes "02113 "02113 "02113 % SCRIPT SMALL L
+\setXTXcharcodes "02115 "02115 "02115 % DOUBLE-STRUCK CAPITAL N
+\setXTXcharcodes "02119 "02119 "02119 % DOUBLE-STRUCK CAPITAL P
+\setXTXcharcodes "0211A "0211A "0211A % DOUBLE-STRUCK CAPITAL Q
+\setXTXcharcodes "0211B "0211B "0211B % SCRIPT CAPITAL R
+\setXTXcharcodes "0211C "0211C "0211C % BLACK-LETTER CAPITAL R
+\setXTXcharcodes "0211D "0211D "0211D % DOUBLE-STRUCK CAPITAL R
+\setXTXcharcodes "02124 "02124 "02124 % DOUBLE-STRUCK CAPITAL Z
+\setXTXcharcodes "02126 "003C9 "02126 % OHM SIGN
+\setXTXcharcodes "02128 "02128 "02128 % BLACK-LETTER CAPITAL Z
+\setXTXcharcodes "0212A "0006B "0212A % KELVIN SIGN
+\setXTXcharcodes "0212B "000E5 "0212B % ANGSTROM SIGN
+\setXTXcharcodes "0212C "0212C "0212C % SCRIPT CAPITAL B
+\setXTXcharcodes "0212D "0212D "0212D % BLACK-LETTER CAPITAL C
+\setXTXcharcodes "0212F "0212F "0212F % SCRIPT SMALL E
+\setXTXcharcodes "02130 "02130 "02130 % SCRIPT CAPITAL E
+\setXTXcharcodes "02131 "02131 "02131 % SCRIPT CAPITAL F
+\setXTXcharcodes "02132 "0214E "02132 % TURNED CAPITAL F
+\setXTXcharcodes "02133 "02133 "02133 % SCRIPT CAPITAL M
+\setXTXcharcodes "02134 "02134 "02134 % SCRIPT SMALL O
+\setXTXcharcodes "02139 "02139 "02139 % INFORMATION SOURCE
+\setXTXcharcodes "0213C "0213C "0213C % DOUBLE-STRUCK SMALL PI
+\setXTXcharcodes "0213D "0213D "0213D % DOUBLE-STRUCK SMALL GAMMA
+\setXTXcharcodes "0213E "0213E "0213E % DOUBLE-STRUCK CAPITAL GAMMA
+\setXTXcharcodes "0213F "0213F "0213F % DOUBLE-STRUCK CAPITAL PI
+\setXTXcharcodes "02145 "02145 "02145 % DOUBLE-STRUCK ITALIC CAPITAL D
+\setXTXcharcodes "02146 "02146 "02146 % DOUBLE-STRUCK ITALIC SMALL D
+\setXTXcharcodes "02147 "02147 "02147 % DOUBLE-STRUCK ITALIC SMALL E
+\setXTXcharcodes "02148 "02148 "02148 % DOUBLE-STRUCK ITALIC SMALL I
+\setXTXcharcodes "02149 "02149 "02149 % DOUBLE-STRUCK ITALIC SMALL J
+\setXTXcharcodes "0214E "0214E "02132 % TURNED SMALL F
+\setXTXcharcodes "02183 "02184 "02183 % ROMAN NUMERAL REVERSED ONE HUNDRED
+\setXTXcharcodes "02184 "02184 "02183 % LATIN SMALL LETTER REVERSED C
+\setXTXcharcodes "02C00 "02C30 "02C00 % GLAGOLITIC CAPITAL LETTER AZU
+\setXTXcharcodes "02C01 "02C31 "02C01 % GLAGOLITIC CAPITAL LETTER BUKY
+\setXTXcharcodes "02C02 "02C32 "02C02 % GLAGOLITIC CAPITAL LETTER VEDE
+\setXTXcharcodes "02C03 "02C33 "02C03 % GLAGOLITIC CAPITAL LETTER GLAGOLI
+\setXTXcharcodes "02C04 "02C34 "02C04 % GLAGOLITIC CAPITAL LETTER DOBRO
+\setXTXcharcodes "02C05 "02C35 "02C05 % GLAGOLITIC CAPITAL LETTER YESTU
+\setXTXcharcodes "02C06 "02C36 "02C06 % GLAGOLITIC CAPITAL LETTER ZHIVETE
+\setXTXcharcodes "02C07 "02C37 "02C07 % GLAGOLITIC CAPITAL LETTER DZELO
+\setXTXcharcodes "02C08 "02C38 "02C08 % GLAGOLITIC CAPITAL LETTER ZEMLJA
+\setXTXcharcodes "02C09 "02C39 "02C09 % GLAGOLITIC CAPITAL LETTER IZHE
+\setXTXcharcodes "02C0A "02C3A "02C0A % GLAGOLITIC CAPITAL LETTER INITIAL IZHE
+\setXTXcharcodes "02C0B "02C3B "02C0B % GLAGOLITIC CAPITAL LETTER I
+\setXTXcharcodes "02C0C "02C3C "02C0C % GLAGOLITIC CAPITAL LETTER DJERVI
+\setXTXcharcodes "02C0D "02C3D "02C0D % GLAGOLITIC CAPITAL LETTER KAKO
+\setXTXcharcodes "02C0E "02C3E "02C0E % GLAGOLITIC CAPITAL LETTER LJUDIJE
+\setXTXcharcodes "02C0F "02C3F "02C0F % GLAGOLITIC CAPITAL LETTER MYSLITE
+\setXTXcharcodes "02C10 "02C40 "02C10 % GLAGOLITIC CAPITAL LETTER NASHI
+\setXTXcharcodes "02C11 "02C41 "02C11 % GLAGOLITIC CAPITAL LETTER ONU
+\setXTXcharcodes "02C12 "02C42 "02C12 % GLAGOLITIC CAPITAL LETTER POKOJI
+\setXTXcharcodes "02C13 "02C43 "02C13 % GLAGOLITIC CAPITAL LETTER RITSI
+\setXTXcharcodes "02C14 "02C44 "02C14 % GLAGOLITIC CAPITAL LETTER SLOVO
+\setXTXcharcodes "02C15 "02C45 "02C15 % GLAGOLITIC CAPITAL LETTER TVRIDO
+\setXTXcharcodes "02C16 "02C46 "02C16 % GLAGOLITIC CAPITAL LETTER UKU
+\setXTXcharcodes "02C17 "02C47 "02C17 % GLAGOLITIC CAPITAL LETTER FRITU
+\setXTXcharcodes "02C18 "02C48 "02C18 % GLAGOLITIC CAPITAL LETTER HERU
+\setXTXcharcodes "02C19 "02C49 "02C19 % GLAGOLITIC CAPITAL LETTER OTU
+\setXTXcharcodes "02C1A "02C4A "02C1A % GLAGOLITIC CAPITAL LETTER PE
+\setXTXcharcodes "02C1B "02C4B "02C1B % GLAGOLITIC CAPITAL LETTER SHTA
+\setXTXcharcodes "02C1C "02C4C "02C1C % GLAGOLITIC CAPITAL LETTER TSI
+\setXTXcharcodes "02C1D "02C4D "02C1D % GLAGOLITIC CAPITAL LETTER CHRIVI
+\setXTXcharcodes "02C1E "02C4E "02C1E % GLAGOLITIC CAPITAL LETTER SHA
+\setXTXcharcodes "02C1F "02C4F "02C1F % GLAGOLITIC CAPITAL LETTER YERU
+\setXTXcharcodes "02C20 "02C50 "02C20 % GLAGOLITIC CAPITAL LETTER YERI
+\setXTXcharcodes "02C21 "02C51 "02C21 % GLAGOLITIC CAPITAL LETTER YATI
+\setXTXcharcodes "02C22 "02C52 "02C22 % GLAGOLITIC CAPITAL LETTER SPIDERY HA
+\setXTXcharcodes "02C23 "02C53 "02C23 % GLAGOLITIC CAPITAL LETTER YU
+\setXTXcharcodes "02C24 "02C54 "02C24 % GLAGOLITIC CAPITAL LETTER SMALL YUS
+\setXTXcharcodes "02C25 "02C55 "02C25 % GLAGOLITIC CAPITAL LETTER SMALL YUS WITH TAIL
+\setXTXcharcodes "02C26 "02C56 "02C26 % GLAGOLITIC CAPITAL LETTER YO
+\setXTXcharcodes "02C27 "02C57 "02C27 % GLAGOLITIC CAPITAL LETTER IOTATED SMALL YUS
+\setXTXcharcodes "02C28 "02C58 "02C28 % GLAGOLITIC CAPITAL LETTER BIG YUS
+\setXTXcharcodes "02C29 "02C59 "02C29 % GLAGOLITIC CAPITAL LETTER IOTATED BIG YUS
+\setXTXcharcodes "02C2A "02C5A "02C2A % GLAGOLITIC CAPITAL LETTER FITA
+\setXTXcharcodes "02C2B "02C5B "02C2B % GLAGOLITIC CAPITAL LETTER IZHITSA
+\setXTXcharcodes "02C2C "02C5C "02C2C % GLAGOLITIC CAPITAL LETTER SHTAPIC
+\setXTXcharcodes "02C2D "02C5D "02C2D % GLAGOLITIC CAPITAL LETTER TROKUTASTI A
+\setXTXcharcodes "02C2E "02C5E "02C2E % GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE
+\setXTXcharcodes "02C30 "02C30 "02C00 % GLAGOLITIC SMALL LETTER AZU
+\setXTXcharcodes "02C31 "02C31 "02C01 % GLAGOLITIC SMALL LETTER BUKY
+\setXTXcharcodes "02C32 "02C32 "02C02 % GLAGOLITIC SMALL LETTER VEDE
+\setXTXcharcodes "02C33 "02C33 "02C03 % GLAGOLITIC SMALL LETTER GLAGOLI
+\setXTXcharcodes "02C34 "02C34 "02C04 % GLAGOLITIC SMALL LETTER DOBRO
+\setXTXcharcodes "02C35 "02C35 "02C05 % GLAGOLITIC SMALL LETTER YESTU
+\setXTXcharcodes "02C36 "02C36 "02C06 % GLAGOLITIC SMALL LETTER ZHIVETE
+\setXTXcharcodes "02C37 "02C37 "02C07 % GLAGOLITIC SMALL LETTER DZELO
+\setXTXcharcodes "02C38 "02C38 "02C08 % GLAGOLITIC SMALL LETTER ZEMLJA
+\setXTXcharcodes "02C39 "02C39 "02C09 % GLAGOLITIC SMALL LETTER IZHE
+\setXTXcharcodes "02C3A "02C3A "02C0A % GLAGOLITIC SMALL LETTER INITIAL IZHE
+\setXTXcharcodes "02C3B "02C3B "02C0B % GLAGOLITIC SMALL LETTER I
+\setXTXcharcodes "02C3C "02C3C "02C0C % GLAGOLITIC SMALL LETTER DJERVI
+\setXTXcharcodes "02C3D "02C3D "02C0D % GLAGOLITIC SMALL LETTER KAKO
+\setXTXcharcodes "02C3E "02C3E "02C0E % GLAGOLITIC SMALL LETTER LJUDIJE
+\setXTXcharcodes "02C3F "02C3F "02C0F % GLAGOLITIC SMALL LETTER MYSLITE
+\setXTXcharcodes "02C40 "02C40 "02C10 % GLAGOLITIC SMALL LETTER NASHI
+\setXTXcharcodes "02C41 "02C41 "02C11 % GLAGOLITIC SMALL LETTER ONU
+\setXTXcharcodes "02C42 "02C42 "02C12 % GLAGOLITIC SMALL LETTER POKOJI
+\setXTXcharcodes "02C43 "02C43 "02C13 % GLAGOLITIC SMALL LETTER RITSI
+\setXTXcharcodes "02C44 "02C44 "02C14 % GLAGOLITIC SMALL LETTER SLOVO
+\setXTXcharcodes "02C45 "02C45 "02C15 % GLAGOLITIC SMALL LETTER TVRIDO
+\setXTXcharcodes "02C46 "02C46 "02C16 % GLAGOLITIC SMALL LETTER UKU
+\setXTXcharcodes "02C47 "02C47 "02C17 % GLAGOLITIC SMALL LETTER FRITU
+\setXTXcharcodes "02C48 "02C48 "02C18 % GLAGOLITIC SMALL LETTER HERU
+\setXTXcharcodes "02C49 "02C49 "02C19 % GLAGOLITIC SMALL LETTER OTU
+\setXTXcharcodes "02C4A "02C4A "02C1A % GLAGOLITIC SMALL LETTER PE
+\setXTXcharcodes "02C4B "02C4B "02C1B % GLAGOLITIC SMALL LETTER SHTA
+\setXTXcharcodes "02C4C "02C4C "02C1C % GLAGOLITIC SMALL LETTER TSI
+\setXTXcharcodes "02C4D "02C4D "02C1D % GLAGOLITIC SMALL LETTER CHRIVI
+\setXTXcharcodes "02C4E "02C4E "02C1E % GLAGOLITIC SMALL LETTER SHA
+\setXTXcharcodes "02C4F "02C4F "02C1F % GLAGOLITIC SMALL LETTER YERU
+\setXTXcharcodes "02C50 "02C50 "02C20 % GLAGOLITIC SMALL LETTER YERI
+\setXTXcharcodes "02C51 "02C51 "02C21 % GLAGOLITIC SMALL LETTER YATI
+\setXTXcharcodes "02C52 "02C52 "02C22 % GLAGOLITIC SMALL LETTER SPIDERY HA
+\setXTXcharcodes "02C53 "02C53 "02C23 % GLAGOLITIC SMALL LETTER YU
+\setXTXcharcodes "02C54 "02C54 "02C24 % GLAGOLITIC SMALL LETTER SMALL YUS
+\setXTXcharcodes "02C55 "02C55 "02C25 % GLAGOLITIC SMALL LETTER SMALL YUS WITH TAIL
+\setXTXcharcodes "02C56 "02C56 "02C26 % GLAGOLITIC SMALL LETTER YO
+\setXTXcharcodes "02C57 "02C57 "02C27 % GLAGOLITIC SMALL LETTER IOTATED SMALL YUS
+\setXTXcharcodes "02C58 "02C58 "02C28 % GLAGOLITIC SMALL LETTER BIG YUS
+\setXTXcharcodes "02C59 "02C59 "02C29 % GLAGOLITIC SMALL LETTER IOTATED BIG YUS
+\setXTXcharcodes "02C5A "02C5A "02C2A % GLAGOLITIC SMALL LETTER FITA
+\setXTXcharcodes "02C5B "02C5B "02C2B % GLAGOLITIC SMALL LETTER IZHITSA
+\setXTXcharcodes "02C5C "02C5C "02C2C % GLAGOLITIC SMALL LETTER SHTAPIC
+\setXTXcharcodes "02C5D "02C5D "02C2D % GLAGOLITIC SMALL LETTER TROKUTASTI A
+\setXTXcharcodes "02C5E "02C5E "02C2E % GLAGOLITIC SMALL LETTER LATINATE MYSLITE
+\setXTXcharcodes "02C60 "02C61 "02C60 % LATIN CAPITAL LETTER L WITH DOUBLE BAR
+\setXTXcharcodes "02C61 "02C61 "02C60 % LATIN SMALL LETTER L WITH DOUBLE BAR
+\setXTXcharcodes "02C62 "0026B "02C62 % LATIN CAPITAL LETTER L WITH MIDDLE TILDE
+\setXTXcharcodes "02C63 "01D7D "02C63 % LATIN CAPITAL LETTER P WITH STROKE
+\setXTXcharcodes "02C64 "0027D "02C64 % LATIN CAPITAL LETTER R WITH TAIL
+\setXTXcharcodes "02C65 "02C65 "0023A % LATIN SMALL LETTER A WITH STROKE
+\setXTXcharcodes "02C66 "02C66 "0023E % LATIN SMALL LETTER T WITH DIAGONAL STROKE
+\setXTXcharcodes "02C67 "02C68 "02C67 % LATIN CAPITAL LETTER H WITH DESCENDER
+\setXTXcharcodes "02C68 "02C68 "02C67 % LATIN SMALL LETTER H WITH DESCENDER
+\setXTXcharcodes "02C69 "02C6A "02C69 % LATIN CAPITAL LETTER K WITH DESCENDER
+\setXTXcharcodes "02C6A "02C6A "02C69 % LATIN SMALL LETTER K WITH DESCENDER
+\setXTXcharcodes "02C6B "02C6C "02C6B % LATIN CAPITAL LETTER Z WITH DESCENDER
+\setXTXcharcodes "02C6C "02C6C "02C6B % LATIN SMALL LETTER Z WITH DESCENDER
+\setXTXcharcodes "02C74 "02C74 "02C74 % LATIN SMALL LETTER V WITH CURL
+\setXTXcharcodes "02C75 "02C76 "02C75 % LATIN CAPITAL LETTER HALF H
+\setXTXcharcodes "02C76 "02C76 "02C75 % LATIN SMALL LETTER HALF H
+\setXTXcharcodes "02C77 "02C77 "02C77 % LATIN SMALL LETTER TAILLESS PHI
+\setXTXcharcodes "02C80 "02C81 "02C80 % COPTIC CAPITAL LETTER ALFA
+\setXTXcharcodes "02C81 "02C81 "02C80 % COPTIC SMALL LETTER ALFA
+\setXTXcharcodes "02C82 "02C83 "02C82 % COPTIC CAPITAL LETTER VIDA
+\setXTXcharcodes "02C83 "02C83 "02C82 % COPTIC SMALL LETTER VIDA
+\setXTXcharcodes "02C84 "02C85 "02C84 % COPTIC CAPITAL LETTER GAMMA
+\setXTXcharcodes "02C85 "02C85 "02C84 % COPTIC SMALL LETTER GAMMA
+\setXTXcharcodes "02C86 "02C87 "02C86 % COPTIC CAPITAL LETTER DALDA
+\setXTXcharcodes "02C87 "02C87 "02C86 % COPTIC SMALL LETTER DALDA
+\setXTXcharcodes "02C88 "02C89 "02C88 % COPTIC CAPITAL LETTER EIE
+\setXTXcharcodes "02C89 "02C89 "02C88 % COPTIC SMALL LETTER EIE
+\setXTXcharcodes "02C8A "02C8B "02C8A % COPTIC CAPITAL LETTER SOU
+\setXTXcharcodes "02C8B "02C8B "02C8A % COPTIC SMALL LETTER SOU
+\setXTXcharcodes "02C8C "02C8D "02C8C % COPTIC CAPITAL LETTER ZATA
+\setXTXcharcodes "02C8D "02C8D "02C8C % COPTIC SMALL LETTER ZATA
+\setXTXcharcodes "02C8E "02C8F "02C8E % COPTIC CAPITAL LETTER HATE
+\setXTXcharcodes "02C8F "02C8F "02C8E % COPTIC SMALL LETTER HATE
+\setXTXcharcodes "02C90 "02C91 "02C90 % COPTIC CAPITAL LETTER THETHE
+\setXTXcharcodes "02C91 "02C91 "02C90 % COPTIC SMALL LETTER THETHE
+\setXTXcharcodes "02C92 "02C93 "02C92 % COPTIC CAPITAL LETTER IAUDA
+\setXTXcharcodes "02C93 "02C93 "02C92 % COPTIC SMALL LETTER IAUDA
+\setXTXcharcodes "02C94 "02C95 "02C94 % COPTIC CAPITAL LETTER KAPA
+\setXTXcharcodes "02C95 "02C95 "02C94 % COPTIC SMALL LETTER KAPA
+\setXTXcharcodes "02C96 "02C97 "02C96 % COPTIC CAPITAL LETTER LAULA
+\setXTXcharcodes "02C97 "02C97 "02C96 % COPTIC SMALL LETTER LAULA
+\setXTXcharcodes "02C98 "02C99 "02C98 % COPTIC CAPITAL LETTER MI
+\setXTXcharcodes "02C99 "02C99 "02C98 % COPTIC SMALL LETTER MI
+\setXTXcharcodes "02C9A "02C9B "02C9A % COPTIC CAPITAL LETTER NI
+\setXTXcharcodes "02C9B "02C9B "02C9A % COPTIC SMALL LETTER NI
+\setXTXcharcodes "02C9C "02C9D "02C9C % COPTIC CAPITAL LETTER KSI
+\setXTXcharcodes "02C9D "02C9D "02C9C % COPTIC SMALL LETTER KSI
+\setXTXcharcodes "02C9E "02C9F "02C9E % COPTIC CAPITAL LETTER O
+\setXTXcharcodes "02C9F "02C9F "02C9E % COPTIC SMALL LETTER O
+\setXTXcharcodes "02CA0 "02CA1 "02CA0 % COPTIC CAPITAL LETTER PI
+\setXTXcharcodes "02CA1 "02CA1 "02CA0 % COPTIC SMALL LETTER PI
+\setXTXcharcodes "02CA2 "02CA3 "02CA2 % COPTIC CAPITAL LETTER RO
+\setXTXcharcodes "02CA3 "02CA3 "02CA2 % COPTIC SMALL LETTER RO
+\setXTXcharcodes "02CA4 "02CA5 "02CA4 % COPTIC CAPITAL LETTER SIMA
+\setXTXcharcodes "02CA5 "02CA5 "02CA4 % COPTIC SMALL LETTER SIMA
+\setXTXcharcodes "02CA6 "02CA7 "02CA6 % COPTIC CAPITAL LETTER TAU
+\setXTXcharcodes "02CA7 "02CA7 "02CA6 % COPTIC SMALL LETTER TAU
+\setXTXcharcodes "02CA8 "02CA9 "02CA8 % COPTIC CAPITAL LETTER UA
+\setXTXcharcodes "02CA9 "02CA9 "02CA8 % COPTIC SMALL LETTER UA
+\setXTXcharcodes "02CAA "02CAB "02CAA % COPTIC CAPITAL LETTER FI
+\setXTXcharcodes "02CAB "02CAB "02CAA % COPTIC SMALL LETTER FI
+\setXTXcharcodes "02CAC "02CAD "02CAC % COPTIC CAPITAL LETTER KHI
+\setXTXcharcodes "02CAD "02CAD "02CAC % COPTIC SMALL LETTER KHI
+\setXTXcharcodes "02CAE "02CAF "02CAE % COPTIC CAPITAL LETTER PSI
+\setXTXcharcodes "02CAF "02CAF "02CAE % COPTIC SMALL LETTER PSI
+\setXTXcharcodes "02CB0 "02CB1 "02CB0 % COPTIC CAPITAL LETTER OOU
+\setXTXcharcodes "02CB1 "02CB1 "02CB0 % COPTIC SMALL LETTER OOU
+\setXTXcharcodes "02CB2 "02CB3 "02CB2 % COPTIC CAPITAL LETTER DIALECT-P ALEF
+\setXTXcharcodes "02CB3 "02CB3 "02CB2 % COPTIC SMALL LETTER DIALECT-P ALEF
+\setXTXcharcodes "02CB4 "02CB5 "02CB4 % COPTIC CAPITAL LETTER OLD COPTIC AIN
+\setXTXcharcodes "02CB5 "02CB5 "02CB4 % COPTIC SMALL LETTER OLD COPTIC AIN
+\setXTXcharcodes "02CB6 "02CB7 "02CB6 % COPTIC CAPITAL LETTER CRYPTOGRAMMIC EIE
+\setXTXcharcodes "02CB7 "02CB7 "02CB6 % COPTIC SMALL LETTER CRYPTOGRAMMIC EIE
+\setXTXcharcodes "02CB8 "02CB9 "02CB8 % COPTIC CAPITAL LETTER DIALECT-P KAPA
+\setXTXcharcodes "02CB9 "02CB9 "02CB8 % COPTIC SMALL LETTER DIALECT-P KAPA
+\setXTXcharcodes "02CBA "02CBB "02CBA % COPTIC CAPITAL LETTER DIALECT-P NI
+\setXTXcharcodes "02CBB "02CBB "02CBA % COPTIC SMALL LETTER DIALECT-P NI
+\setXTXcharcodes "02CBC "02CBD "02CBC % COPTIC CAPITAL LETTER CRYPTOGRAMMIC NI
+\setXTXcharcodes "02CBD "02CBD "02CBC % COPTIC SMALL LETTER CRYPTOGRAMMIC NI
+\setXTXcharcodes "02CBE "02CBF "02CBE % COPTIC CAPITAL LETTER OLD COPTIC OOU
+\setXTXcharcodes "02CBF "02CBF "02CBE % COPTIC SMALL LETTER OLD COPTIC OOU
+\setXTXcharcodes "02CC0 "02CC1 "02CC0 % COPTIC CAPITAL LETTER SAMPI
+\setXTXcharcodes "02CC1 "02CC1 "02CC0 % COPTIC SMALL LETTER SAMPI
+\setXTXcharcodes "02CC2 "02CC3 "02CC2 % COPTIC CAPITAL LETTER CROSSED SHEI
+\setXTXcharcodes "02CC3 "02CC3 "02CC2 % COPTIC SMALL LETTER CROSSED SHEI
+\setXTXcharcodes "02CC4 "02CC5 "02CC4 % COPTIC CAPITAL LETTER OLD COPTIC SHEI
+\setXTXcharcodes "02CC5 "02CC5 "02CC4 % COPTIC SMALL LETTER OLD COPTIC SHEI
+\setXTXcharcodes "02CC6 "02CC7 "02CC6 % COPTIC CAPITAL LETTER OLD COPTIC ESH
+\setXTXcharcodes "02CC7 "02CC7 "02CC6 % COPTIC SMALL LETTER OLD COPTIC ESH
+\setXTXcharcodes "02CC8 "02CC9 "02CC8 % COPTIC CAPITAL LETTER AKHMIMIC KHEI
+\setXTXcharcodes "02CC9 "02CC9 "02CC8 % COPTIC SMALL LETTER AKHMIMIC KHEI
+\setXTXcharcodes "02CCA "02CCB "02CCA % COPTIC CAPITAL LETTER DIALECT-P HORI
+\setXTXcharcodes "02CCB "02CCB "02CCA % COPTIC SMALL LETTER DIALECT-P HORI
+\setXTXcharcodes "02CCC "02CCD "02CCC % COPTIC CAPITAL LETTER OLD COPTIC HORI
+\setXTXcharcodes "02CCD "02CCD "02CCC % COPTIC SMALL LETTER OLD COPTIC HORI
+\setXTXcharcodes "02CCE "02CCF "02CCE % COPTIC CAPITAL LETTER OLD COPTIC HA
+\setXTXcharcodes "02CCF "02CCF "02CCE % COPTIC SMALL LETTER OLD COPTIC HA
+\setXTXcharcodes "02CD0 "02CD1 "02CD0 % COPTIC CAPITAL LETTER L-SHAPED HA
+\setXTXcharcodes "02CD1 "02CD1 "02CD0 % COPTIC SMALL LETTER L-SHAPED HA
+\setXTXcharcodes "02CD2 "02CD3 "02CD2 % COPTIC CAPITAL LETTER OLD COPTIC HEI
+\setXTXcharcodes "02CD3 "02CD3 "02CD2 % COPTIC SMALL LETTER OLD COPTIC HEI
+\setXTXcharcodes "02CD4 "02CD5 "02CD4 % COPTIC CAPITAL LETTER OLD COPTIC HAT
+\setXTXcharcodes "02CD5 "02CD5 "02CD4 % COPTIC SMALL LETTER OLD COPTIC HAT
+\setXTXcharcodes "02CD6 "02CD7 "02CD6 % COPTIC CAPITAL LETTER OLD COPTIC GANGIA
+\setXTXcharcodes "02CD7 "02CD7 "02CD6 % COPTIC SMALL LETTER OLD COPTIC GANGIA
+\setXTXcharcodes "02CD8 "02CD9 "02CD8 % COPTIC CAPITAL LETTER OLD COPTIC DJA
+\setXTXcharcodes "02CD9 "02CD9 "02CD8 % COPTIC SMALL LETTER OLD COPTIC DJA
+\setXTXcharcodes "02CDA "02CDB "02CDA % COPTIC CAPITAL LETTER OLD COPTIC SHIMA
+\setXTXcharcodes "02CDB "02CDB "02CDA % COPTIC SMALL LETTER OLD COPTIC SHIMA
+\setXTXcharcodes "02CDC "02CDD "02CDC % COPTIC CAPITAL LETTER OLD NUBIAN SHIMA
+\setXTXcharcodes "02CDD "02CDD "02CDC % COPTIC SMALL LETTER OLD NUBIAN SHIMA
+\setXTXcharcodes "02CDE "02CDF "02CDE % COPTIC CAPITAL LETTER OLD NUBIAN NGI
+\setXTXcharcodes "02CDF "02CDF "02CDE % COPTIC SMALL LETTER OLD NUBIAN NGI
+\setXTXcharcodes "02CE0 "02CE1 "02CE0 % COPTIC CAPITAL LETTER OLD NUBIAN NYI
+\setXTXcharcodes "02CE1 "02CE1 "02CE0 % COPTIC SMALL LETTER OLD NUBIAN NYI
+\setXTXcharcodes "02CE2 "02CE3 "02CE2 % COPTIC CAPITAL LETTER OLD NUBIAN WAU
+\setXTXcharcodes "02CE3 "02CE3 "02CE2 % COPTIC SMALL LETTER OLD NUBIAN WAU
+\setXTXcharcodes "02CE4 "02CE4 "02CE4 % COPTIC SYMBOL KAI
+\setXTXcharcodes "02D00 "02D00 "010A0 % GEORGIAN SMALL LETTER AN
+\setXTXcharcodes "02D01 "02D01 "010A1 % GEORGIAN SMALL LETTER BAN
+\setXTXcharcodes "02D02 "02D02 "010A2 % GEORGIAN SMALL LETTER GAN
+\setXTXcharcodes "02D03 "02D03 "010A3 % GEORGIAN SMALL LETTER DON
+\setXTXcharcodes "02D04 "02D04 "010A4 % GEORGIAN SMALL LETTER EN
+\setXTXcharcodes "02D05 "02D05 "010A5 % GEORGIAN SMALL LETTER VIN
+\setXTXcharcodes "02D06 "02D06 "010A6 % GEORGIAN SMALL LETTER ZEN
+\setXTXcharcodes "02D07 "02D07 "010A7 % GEORGIAN SMALL LETTER TAN
+\setXTXcharcodes "02D08 "02D08 "010A8 % GEORGIAN SMALL LETTER IN
+\setXTXcharcodes "02D09 "02D09 "010A9 % GEORGIAN SMALL LETTER KAN
+\setXTXcharcodes "02D0A "02D0A "010AA % GEORGIAN SMALL LETTER LAS
+\setXTXcharcodes "02D0B "02D0B "010AB % GEORGIAN SMALL LETTER MAN
+\setXTXcharcodes "02D0C "02D0C "010AC % GEORGIAN SMALL LETTER NAR
+\setXTXcharcodes "02D0D "02D0D "010AD % GEORGIAN SMALL LETTER ON
+\setXTXcharcodes "02D0E "02D0E "010AE % GEORGIAN SMALL LETTER PAR
+\setXTXcharcodes "02D0F "02D0F "010AF % GEORGIAN SMALL LETTER ZHAR
+\setXTXcharcodes "02D10 "02D10 "010B0 % GEORGIAN SMALL LETTER RAE
+\setXTXcharcodes "02D11 "02D11 "010B1 % GEORGIAN SMALL LETTER SAN
+\setXTXcharcodes "02D12 "02D12 "010B2 % GEORGIAN SMALL LETTER TAR
+\setXTXcharcodes "02D13 "02D13 "010B3 % GEORGIAN SMALL LETTER UN
+\setXTXcharcodes "02D14 "02D14 "010B4 % GEORGIAN SMALL LETTER PHAR
+\setXTXcharcodes "02D15 "02D15 "010B5 % GEORGIAN SMALL LETTER KHAR
+\setXTXcharcodes "02D16 "02D16 "010B6 % GEORGIAN SMALL LETTER GHAN
+\setXTXcharcodes "02D17 "02D17 "010B7 % GEORGIAN SMALL LETTER QAR
+\setXTXcharcodes "02D18 "02D18 "010B8 % GEORGIAN SMALL LETTER SHIN
+\setXTXcharcodes "02D19 "02D19 "010B9 % GEORGIAN SMALL LETTER CHIN
+\setXTXcharcodes "02D1A "02D1A "010BA % GEORGIAN SMALL LETTER CAN
+\setXTXcharcodes "02D1B "02D1B "010BB % GEORGIAN SMALL LETTER JIL
+\setXTXcharcodes "02D1C "02D1C "010BC % GEORGIAN SMALL LETTER CIL
+\setXTXcharcodes "02D1D "02D1D "010BD % GEORGIAN SMALL LETTER CHAR
+\setXTXcharcodes "02D1E "02D1E "010BE % GEORGIAN SMALL LETTER XAN
+\setXTXcharcodes "02D1F "02D1F "010BF % GEORGIAN SMALL LETTER JHAN
+\setXTXcharcodes "02D20 "02D20 "010C0 % GEORGIAN SMALL LETTER HAE
+\setXTXcharcodes "02D21 "02D21 "010C1 % GEORGIAN SMALL LETTER HE
+\setXTXcharcodes "02D22 "02D22 "010C2 % GEORGIAN SMALL LETTER HIE
+\setXTXcharcodes "02D23 "02D23 "010C3 % GEORGIAN SMALL LETTER WE
+\setXTXcharcodes "02D24 "02D24 "010C4 % GEORGIAN SMALL LETTER HAR
+\setXTXcharcodes "02D25 "02D25 "010C5 % GEORGIAN SMALL LETTER HOE
+\setXTXcharcodes "0FB00 "0FB00 "0FB00 % LATIN SMALL LIGATURE FF
+\setXTXcharcodes "0FB01 "0FB01 "0FB01 % LATIN SMALL LIGATURE FI
+\setXTXcharcodes "0FB02 "0FB02 "0FB02 % LATIN SMALL LIGATURE FL
+\setXTXcharcodes "0FB03 "0FB03 "0FB03 % LATIN SMALL LIGATURE FFI
+\setXTXcharcodes "0FB04 "0FB04 "0FB04 % LATIN SMALL LIGATURE FFL
+\setXTXcharcodes "0FB05 "0FB05 "0FB05 % LATIN SMALL LIGATURE LONG S T
+\setXTXcharcodes "0FB06 "0FB06 "0FB06 % LATIN SMALL LIGATURE ST
+\setXTXcharcodes "0FB13 "0FB13 "0FB13 % ARMENIAN SMALL LIGATURE MEN NOW
+\setXTXcharcodes "0FB14 "0FB14 "0FB14 % ARMENIAN SMALL LIGATURE MEN ECH
+\setXTXcharcodes "0FB15 "0FB15 "0FB15 % ARMENIAN SMALL LIGATURE MEN INI
+\setXTXcharcodes "0FB16 "0FB16 "0FB16 % ARMENIAN SMALL LIGATURE VEW NOW
+\setXTXcharcodes "0FB17 "0FB17 "0FB17 % ARMENIAN SMALL LIGATURE MEN XEH
+\setXTXcharcodes "0FF21 "0FF41 "0FF21 % FULLWIDTH LATIN CAPITAL LETTER A
+\setXTXcharcodes "0FF22 "0FF42 "0FF22 % FULLWIDTH LATIN CAPITAL LETTER B
+\setXTXcharcodes "0FF23 "0FF43 "0FF23 % FULLWIDTH LATIN CAPITAL LETTER C
+\setXTXcharcodes "0FF24 "0FF44 "0FF24 % FULLWIDTH LATIN CAPITAL LETTER D
+\setXTXcharcodes "0FF25 "0FF45 "0FF25 % FULLWIDTH LATIN CAPITAL LETTER E
+\setXTXcharcodes "0FF26 "0FF46 "0FF26 % FULLWIDTH LATIN CAPITAL LETTER F
+\setXTXcharcodes "0FF27 "0FF47 "0FF27 % FULLWIDTH LATIN CAPITAL LETTER G
+\setXTXcharcodes "0FF28 "0FF48 "0FF28 % FULLWIDTH LATIN CAPITAL LETTER H
+\setXTXcharcodes "0FF29 "0FF49 "0FF29 % FULLWIDTH LATIN CAPITAL LETTER I
+\setXTXcharcodes "0FF2A "0FF4A "0FF2A % FULLWIDTH LATIN CAPITAL LETTER J
+\setXTXcharcodes "0FF2B "0FF4B "0FF2B % FULLWIDTH LATIN CAPITAL LETTER K
+\setXTXcharcodes "0FF2C "0FF4C "0FF2C % FULLWIDTH LATIN CAPITAL LETTER L
+\setXTXcharcodes "0FF2D "0FF4D "0FF2D % FULLWIDTH LATIN CAPITAL LETTER M
+\setXTXcharcodes "0FF2E "0FF4E "0FF2E % FULLWIDTH LATIN CAPITAL LETTER N
+\setXTXcharcodes "0FF2F "0FF4F "0FF2F % FULLWIDTH LATIN CAPITAL LETTER O
+\setXTXcharcodes "0FF30 "0FF50 "0FF30 % FULLWIDTH LATIN CAPITAL LETTER P
+\setXTXcharcodes "0FF31 "0FF51 "0FF31 % FULLWIDTH LATIN CAPITAL LETTER Q
+\setXTXcharcodes "0FF32 "0FF52 "0FF32 % FULLWIDTH LATIN CAPITAL LETTER R
+\setXTXcharcodes "0FF33 "0FF53 "0FF33 % FULLWIDTH LATIN CAPITAL LETTER S
+\setXTXcharcodes "0FF34 "0FF54 "0FF34 % FULLWIDTH LATIN CAPITAL LETTER T
+\setXTXcharcodes "0FF35 "0FF55 "0FF35 % FULLWIDTH LATIN CAPITAL LETTER U
+\setXTXcharcodes "0FF36 "0FF56 "0FF36 % FULLWIDTH LATIN CAPITAL LETTER V
+\setXTXcharcodes "0FF37 "0FF57 "0FF37 % FULLWIDTH LATIN CAPITAL LETTER W
+\setXTXcharcodes "0FF38 "0FF58 "0FF38 % FULLWIDTH LATIN CAPITAL LETTER X
+\setXTXcharcodes "0FF39 "0FF59 "0FF39 % FULLWIDTH LATIN CAPITAL LETTER Y
+\setXTXcharcodes "0FF3A "0FF5A "0FF3A % FULLWIDTH LATIN CAPITAL LETTER Z
+\setXTXcharcodes "0FF41 "0FF41 "0FF21 % FULLWIDTH LATIN SMALL LETTER A
+\setXTXcharcodes "0FF42 "0FF42 "0FF22 % FULLWIDTH LATIN SMALL LETTER B
+\setXTXcharcodes "0FF43 "0FF43 "0FF23 % FULLWIDTH LATIN SMALL LETTER C
+\setXTXcharcodes "0FF44 "0FF44 "0FF24 % FULLWIDTH LATIN SMALL LETTER D
+\setXTXcharcodes "0FF45 "0FF45 "0FF25 % FULLWIDTH LATIN SMALL LETTER E
+\setXTXcharcodes "0FF46 "0FF46 "0FF26 % FULLWIDTH LATIN SMALL LETTER F
+\setXTXcharcodes "0FF47 "0FF47 "0FF27 % FULLWIDTH LATIN SMALL LETTER G
+\setXTXcharcodes "0FF48 "0FF48 "0FF28 % FULLWIDTH LATIN SMALL LETTER H
+\setXTXcharcodes "0FF49 "0FF49 "0FF29 % FULLWIDTH LATIN SMALL LETTER I
+\setXTXcharcodes "0FF4A "0FF4A "0FF2A % FULLWIDTH LATIN SMALL LETTER J
+\setXTXcharcodes "0FF4B "0FF4B "0FF2B % FULLWIDTH LATIN SMALL LETTER K
+\setXTXcharcodes "0FF4C "0FF4C "0FF2C % FULLWIDTH LATIN SMALL LETTER L
+\setXTXcharcodes "0FF4D "0FF4D "0FF2D % FULLWIDTH LATIN SMALL LETTER M
+\setXTXcharcodes "0FF4E "0FF4E "0FF2E % FULLWIDTH LATIN SMALL LETTER N
+\setXTXcharcodes "0FF4F "0FF4F "0FF2F % FULLWIDTH LATIN SMALL LETTER O
+\setXTXcharcodes "0FF50 "0FF50 "0FF30 % FULLWIDTH LATIN SMALL LETTER P
+\setXTXcharcodes "0FF51 "0FF51 "0FF31 % FULLWIDTH LATIN SMALL LETTER Q
+\setXTXcharcodes "0FF52 "0FF52 "0FF32 % FULLWIDTH LATIN SMALL LETTER R
+\setXTXcharcodes "0FF53 "0FF53 "0FF33 % FULLWIDTH LATIN SMALL LETTER S
+\setXTXcharcodes "0FF54 "0FF54 "0FF34 % FULLWIDTH LATIN SMALL LETTER T
+\setXTXcharcodes "0FF55 "0FF55 "0FF35 % FULLWIDTH LATIN SMALL LETTER U
+\setXTXcharcodes "0FF56 "0FF56 "0FF36 % FULLWIDTH LATIN SMALL LETTER V
+\setXTXcharcodes "0FF57 "0FF57 "0FF37 % FULLWIDTH LATIN SMALL LETTER W
+\setXTXcharcodes "0FF58 "0FF58 "0FF38 % FULLWIDTH LATIN SMALL LETTER X
+\setXTXcharcodes "0FF59 "0FF59 "0FF39 % FULLWIDTH LATIN SMALL LETTER Y
+\setXTXcharcodes "0FF5A "0FF5A "0FF3A % FULLWIDTH LATIN SMALL LETTER Z
+
+\dofastrecurse{"03400}{"04DB5}{1}{\dosetXTXcharcodes\recurselevel\recurselevel\recurselevel}
+\dofastrecurse{"04E00}{"09FBB}{1}{\dosetXTXcharcodes\recurselevel\recurselevel\recurselevel}
+\dofastrecurse{"0AC00}{"0D7A3}{1}{\dosetXTXcharcodes\recurselevel\recurselevel\recurselevel}
+\dofastrecurse{"20000}{"2A6D6}{1}{\dosetXTXcharcodes\recurselevel\recurselevel\recurselevel}
+
+% patch needed for turkish
+
+\setXTXcharcodes "201C "201C "201C
+\setXTXcharcodes "201D "201D "201D
+
+\endinput
diff --git a/Master/texmf-dist/tex/context/base/xtag-cml.tex b/Master/texmf-dist/tex/context/base/xtag-cml.tex
index 203218ceb22..6da7fd26f87 100644
--- a/Master/texmf-dist/tex/context/base/xtag-cml.tex
+++ b/Master/texmf-dist/tex/context/base/xtag-cml.tex
@@ -2,6 +2,8 @@
% will be rewritten avoiding the mapper
+\useXMLfilter[map]
+
\unprotect
\def\setupCMLappearance[#1]{\dodoubleargument\getparameters[@@CML#1]}
diff --git a/Master/texmf-dist/tex/context/base/xtag-ent.tex b/Master/texmf-dist/tex/context/base/xtag-ent.tex
index a34fbab28fe..f4c3e4b0648 100644
--- a/Master/texmf-dist/tex/context/base/xtag-ent.tex
+++ b/Master/texmf-dist/tex/context/base/xtag-ent.tex
@@ -1,7 +1,7 @@
%D \module
%D [ file=xtag-ent,
%D version=2000.12.20,
-%D title=\CONTEXT\ XML Support,
+%D title=\CONTEXT\ XML Macros,
%D subtitle=A bunch of Entities,
%D author=Hans Hagen,
%D date=\currentdate,
diff --git a/Master/texmf-dist/tex/context/base/xtag-exp.tex b/Master/texmf-dist/tex/context/base/xtag-exp.tex
index 14c3c7a71a8..337b4934879 100644
--- a/Master/texmf-dist/tex/context/base/xtag-exp.tex
+++ b/Master/texmf-dist/tex/context/base/xtag-exp.tex
@@ -1,8 +1,8 @@
%D \module
%D [ file=xtag-exp,
%D version=2001.08.20,
-%D title=\CONTEXT\ XML Support,
-%D subtitle=Expansion Related Things,
+%D title=\CONTEXT\ XML Macros,
+%D subtitle=Expansion,
%D author=Hans Hagen,
%D date=\currentdate,
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
@@ -11,13 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\beginTEX
- \writestatus{XML}{sorry, XML is only supported in (pdf)etex}
- \def\startXMLdefinitions{\gobbleuntil\stopXMLdefinitions}
- \endinput
-\endTEX
-
-\writestatus{loading}{Context XML Macros (expansion)}
+\writestatus{loading}{ConTeXt XML Macros / Expansion}
\unprotect
@@ -43,12 +37,19 @@
\fi
\decrement \XMLfilenesting \relax}
-\def\enableXMLfiledata
- {\prependtoks \enableXMLelements \to \mainoutput % brrr, will change
- \appendtoks \startXMLreading \to \everybeforeutilityread
- \appendtoks \stopXMLreading \to \everyafterutilityread
- \appendtoks \forcefileexpansiontrue \to \everyenableXML
- \let\enableXMLfiledata\relax}
+\ifnum\texengine=\luatexengine
+ \def\enableXMLfiledata
+ {\prependtoks \enableXMLelements \to \mainoutput % brrr, will change
+ \appendtoks \forcefileexpansiontrue \to \everyenableXML
+ \let\enableXMLfiledata\relax}
+\else
+ \def\enableXMLfiledata
+ {\prependtoks \enableXMLelements \to \mainoutput % brrr, will change
+ \appendtoks \startXMLreading \to \everybeforeutilityread
+ \appendtoks \stopXMLreading \to \everyafterutilityread
+ \appendtoks \forcefileexpansiontrue \to \everyenableXML
+ \let\enableXMLfiledata\relax}
+\fi
\setupXMLprocessing[\c!state=\v!start]
@@ -58,26 +59,30 @@
%D Here we overload the mark handler.
-\def\XMLexpanded#1%
- {\bgroup
- \honorunexpanded
- \dontexpandencoding
- \xdef\@@globalexpanded{\noexpand#1}% why \noexpand?
- \egroup
- \@@globalexpanded}
-
-\let\normalsetnormalmark\setnormalmark
-
-\long\def\setnormalmark#1% overloaded
- {\ifprocessingXML
- \expandafter\setXMLexpandedmark
- \else
- \expandafter\normalsetnormalmark
- \fi#1}
-
-\def\setXMLexpandedmark#1#2% using a tok prevents unwanted expansion in mark
- {\XMLexpanded{\scratchtoks{\enableXMLelements#2}}%
- \setxvalue{\@@crk\string#1}{\the\scratchtoks}%
- \normalmarks#1{\the\scratchtoks}}
+\ifnum\texengine=\luatexengine \else
+
+ \def\XMLexpanded#1%
+ {\bgroup
+ \honorunexpanded
+ \dontexpandencoding
+ \xdef\@@globalexpanded{\noexpand#1}% why \noexpand?
+ \egroup
+ \@@globalexpanded}
+
+ \let\normalsetnormalmark\setnormalmark
+
+ \long\def\setnormalmark#1% overloaded
+ {\ifprocessingXML
+ \expandafter\setXMLexpandedmark
+ \else
+ \expandafter\normalsetnormalmark
+ \fi#1}
+
+ \def\setXMLexpandedmark#1#2% using a tok prevents unwanted expansion in mark
+ {\XMLexpanded{\scratchtoks{\enableXMLelements#2}}%
+ \setxvalue{\@@crk\string#1}{\the\scratchtoks}%
+ \normalmarks#1{\the\scratchtoks}}
+
+\fi
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/xtag-ext.tex b/Master/texmf-dist/tex/context/base/xtag-ext.tex
index 752007f5f9b..9a132c677b7 100644
--- a/Master/texmf-dist/tex/context/base/xtag-ext.tex
+++ b/Master/texmf-dist/tex/context/base/xtag-ext.tex
@@ -1,7 +1,7 @@
%D \module
%D [ file=xtag-ext,
%D version=2001.03.21,
-%D title=\CONTEXT\ XML Support,
+%D title=\CONTEXT\ XML Macros,
%D subtitle=Extra Macros,
%D author=Hans Hagen,
%D date=\currentdate,
@@ -11,12 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\beginTEX
- \writestatus{xml}{sorry, xml is only supported in (pdf)etex}
- \expandafter \endinput
-\endTEX
-
-\writestatus{loading}{Context XML Macros (extras)}
+\writestatus{loading}{ConTeXt XML Macros / Extras}
\unprotect
@@ -387,6 +382,8 @@
% \processXMLfilegrouped{test.xml}
% \stoptext
+% obsolete in mkiv
+
\chardef\xmlexpandmode\plusone
\def\defexpandedxmlargumentcmd {\chardef\xmlexpandmode\plusone\defexpandedxmlargument\defconvertedcommand}
@@ -397,7 +394,7 @@
\installexpander {xml} \defexpandedxmlargumentcmd \gdefexpandedxmlargumentcmd
\installexpander {xml:cmd} \defexpandedxmlargumentcmd \gdefexpandedxmlargumentcmd
\installexpander {xml:utf} \defexpandedxmlargumentutf \gdefexpandedxmlargumentutf
-
+
\def\XMLtexmath#1{\begingroup\setnormalcatcodes\scantokens{\mathematics{#1}\ignorespaces}\endgroup}
% \defineXMLargument[tm]{\XMLtexmath}
@@ -408,4 +405,35 @@
%
% \processXMLbuffer[test]
+%D Undocumented ...
+
+\def\defineXMLstore {\doquadrupleargument\dodefineXMLstore[\saveXMLasdata]}
+\def\defineXMLgstore{\doquadrupleargument\dodefineXMLstore[\gsaveXMLasdata]}
+
+\def\dodefineXMLstore[#1][#2][#3][#4]% element attribute prefix % will become faster
+ {\defineXMLargument[#2][#3=\s!dummy]{#1{#4:\XMLop{#3}}}}
+
+\def\countXMLchildren[#1]#2%
+ {\startnointerference
+ \doglobal\newcounter\nofXMLchildren
+ \defineXMLargument[#1]{\doglobal\increment\nofXMLchildren}%
+ \startXMLignore
+ #2%
+ \stopXMLignore
+ \stopnointerference}
+
+% Typical \MKII. We will not explore this route any further as in \MKIV\ we
+% have better ways.
+
+\prependtoks \setnormalcatcodes \to \everyTEXinputmode
+\appendtoks \processingXMLfalse \to \everyTEXinputmode
+
+\let\normalenableXML\enableXML % some day we move the normal \enableXML into the toks
+
+\prependtoks \normalenableXML \to \everyXMLinputmode
+\appendtoks \processingXMLtrue \to \everyXMLinputmode
+
+\unexpanded\def\enableXML {\setinputmode[XML]} % \enableXML is used in edef's and marks
+\unexpanded\def\disableXML{\setinputmode[TEX]}
+
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/xtag-hyp.tex b/Master/texmf-dist/tex/context/base/xtag-hyp.tex
index 821705f7b74..e4e048e2bf0 100644
--- a/Master/texmf-dist/tex/context/base/xtag-hyp.tex
+++ b/Master/texmf-dist/tex/context/base/xtag-hyp.tex
@@ -1,8 +1,8 @@
%D \module
%D [ file=xtag-hyp,
%D version=2003.11.24,
-%D title=\CONTEXT\ XML Support,
-%D subtitle=hyphenation support,
+%D title=\CONTEXT\ XML MAcros,
+%D subtitle=Hyphenation,
%D author=Hans Hagen,
%D date=\currentdate,
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
@@ -11,18 +11,26 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context XML Macros (hyphenation)}
+\writestatus{loading}{ConTeXt XML Macros / Hyphenation}
%D This filter is kind of obsolete, since \UTF\ is not
%D limited to \XML. So, here we only enable \UTF\ support.
-\defineXMLenvironment [hyphenations] [language=\currentlanguage,regime=utf,encoding=\defaultencoding]
- {\startnointerference
- \defineXMLargument [hyphenation] \hyphenation
- \language[\XMLop{language}]%
- \enableregime[\XMLop{regime}]%
- \enableencoding[\XMLop{encoding}]}
- {\stopnointerference}
+\ifnum\texengine=\luatexengine
+ \defineXMLenvironment [hyphenations] [language=\currentlanguage,regime=utf,encoding=\defaultencoding]
+ {\startnointerference
+ \defineXMLargument [hyphenation] \hyphenation
+ \language[\XMLop{language}]}
+ {\stopnointerference}
+\else
+ \defineXMLenvironment [hyphenations] [language=\currentlanguage,regime=utf,encoding=\defaultencoding]
+ {\startnointerference
+ \defineXMLargument [hyphenation] \hyphenation
+ \language[\XMLop{language}]%
+ \enableregime[\XMLop{regime}]%
+ \enableencoding[\XMLop{encoding}]}
+ {\stopnointerference}
+\fi
\defineXMLsingular [hyphenate]
{\-}
diff --git a/Master/texmf-dist/tex/context/base/xtag-ini.tex b/Master/texmf-dist/tex/context/base/xtag-ini.tex
index 48fcb4c8096..e48ef3da6ff 100644
--- a/Master/texmf-dist/tex/context/base/xtag-ini.tex
+++ b/Master/texmf-dist/tex/context/base/xtag-ini.tex
@@ -1,7 +1,7 @@
%D \module
%D [ file=xtag-ini,
%D version=2000.12.20,
-%D title=\CONTEXT\ XML Support,
+%D title=\CONTEXT\ XML Macros,
%D subtitle=Initialization,
%D author=Hans Hagen,
%D date=\currentdate,
@@ -11,39 +11,25 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context XML Macros (initialization)}
+\writestatus{loading}{ConTeXt XML Macros / Initialization}
%D Beware: don't rely on \longempty things, since this may
%D change!
-% \newif\ifprocessingXML
-
-\beginTEX
- \writestatus{XML}{sorry, XML is only supported in (pdf)etex}
- \def\startXMLdefinitions{\gobbleuntil\stopXMLdefinitions}
- \endinput
-\endTEX
-
-% tzt nog eens child grabber maken; mooier in mathml
-
%D This module is highly optimized for speed, which sometimes
%D leads to rather unreadable code. Sorry for this.
-\beginETEX XML
-
- \bgroup \obeylines
+\bgroup \obeylines
- \gdef\startXMLdefinitions% keep %
- {\bgroup\obeylines\dostartXMLdefinitions}
+\gdef\startXMLdefinitions% keep %
+ {\bgroup\obeylines\dostartXMLdefinitions}
- \gdef\dostartXMLdefinitions #1
- {\egroup\doifsomething{#1}{\writestatus{XML}{loading #1 support}}}
+\gdef\dostartXMLdefinitions #1
+ {\egroup\doifsomething{#1}{\writestatus{XML}{loading #1 support}}}
- \global\let\stopXMLdefinitions\relax
+\global\let\stopXMLdefinitions\relax
- \egroup
-
-\endETEX
+\egroup
% todo: XMLfullsave == also attributes
% csnames
@@ -429,14 +415,26 @@
% we speed things up by explicitly setting the active char's < &
+\doifmodeelse {mkiv} {
+
+ \def\mksetXMLtokensreduction % mkiv
+ {\setcatcodetable\xmlcatcodesn}
+
+} {
+
+ \def\mksetXMLtokensreduction % mkii
+ {\ifcase\XMLtokensreduction
+ \setcatcodetable\xmlcatcodese \or
+ \setcatcodetable\xmlcatcodesr \else
+ \setcatcodetable\xmlcatcodesn
+ \fi}
+
+}
+
\bgroup \catcode`\<=13 \catcode`\&=13
\gdef\enableXML
- {\ifcase\XMLtokensreduction
- \setcatcodetable\xmlcatcodese \or
- \setcatcodetable\xmlcatcodesr \else
- \setcatcodetable\xmlcatcodesn
- \fi
+ {\mksetXMLtokensreduction
\let&\doXMLentity
\unexpanded\def<{\doXMLelement}%
\processingXMLtrue
@@ -1277,9 +1275,14 @@
\def\simpleXMLencoding{raw}
-\def\simplifyXMLentities
- {\fastenableencoding\simpleXMLencoding
- \XMLsimpleentitiestrue}
+\ifnum\texengine=\luatexengine
+ \def\simplifyXMLentities
+ {\XMLsimpleentitiestrue}
+\else
+ \def\simplifyXMLentities
+ {\fastenableencoding\simpleXMLencoding
+ \XMLsimpleentitiestrue}
+\fi
\def\defineXMLentity
{\dodoubleempty\dodefineXMLentity}
@@ -1443,7 +1446,7 @@
%\unexpanded\def\getXMLentity#1%
% {\csname\@@XMLentity:#1\endcsname}
-\newif\ifautoXMLentities % fall back on context commands
+\doifundefined{autoXMLentitiestrue}{\expandafter\newif\csname ifautoXMLentities\endcsname} % fall back on context commands
\def\expandedXMLentity#1%
{\ifcsname\@@XMLentity:#1\endcsname \@EA \execXMLentity
@@ -2183,7 +2186,7 @@
%D Interesting what kind of things are needed \unknown
\appendtoks
- \disablelanguagespecifics
+ \ifdefined\disablelanguagespecifics\disablelanguagespecifics\fi
\to \everyenableXML
\long\def\longempty{}
@@ -2850,8 +2853,8 @@
{\doifelsenothing{#1}
{\doprocessXMLbuffer[\jobname]}
{\begingroup
- \def\dodoprocessXMLbuffer##1%
- {\enableXML\processXMLfile{\TEXbufferfile{##1}}}%
+ \enableXML
+ \def\dodoprocessXMLbuffer##1{\getbuffer[##1]}%
\processcommalist[#1]\dodoprocessXMLbuffer
\endgroup}}
diff --git a/Master/texmf-dist/tex/context/base/xtag-map.tex b/Master/texmf-dist/tex/context/base/xtag-map.tex
index c071d037756..f8471d6a784 100644
--- a/Master/texmf-dist/tex/context/base/xtag-map.tex
+++ b/Master/texmf-dist/tex/context/base/xtag-map.tex
@@ -1,7 +1,7 @@
%D \module
%D [ file=xtag-map,
%D version=2000.12.20,
-%D title=\CONTEXT\ XML Support,
+%D title=\CONTEXT\ XML Macros,
%D subtitle=Remapping,
%D author=Hans Hagen,
%D date=\currentdate,
@@ -16,11 +16,7 @@
%D We also need something that lets content as-is, like for
%D instance XML embedded in a chemical caption.
-\beginTEX
- \endinput
-\endTEX
-
-\writestatus{loading}{Context XML Macros (remapping)}
+\writestatus{loading}{ConTeXt XML Macros / Remapping}
%D A fundamental characteristic of \TEX\ is that much
%D processing depends on picking up one or more arguments and
diff --git a/Master/texmf-dist/tex/context/base/xtag-mmc.tex b/Master/texmf-dist/tex/context/base/xtag-mmc.tex
index d4ee14c5994..27e2c42ea4b 100644
--- a/Master/texmf-dist/tex/context/base/xtag-mmc.tex
+++ b/Master/texmf-dist/tex/context/base/xtag-mmc.tex
@@ -1,8 +1,8 @@
%D \module
%D [ file=xtag-mmc,
%D version=2000.12.20,
-%D title=\CONTEXT\ XML Support,
-%D subtitle=Math ML,
+%D title=\CONTEXT\ XML Macros,
+%D subtitle=Content MathML,
%D author=Hans Hagen,
%D date=\currentdate,
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context XML Macros (content math ml)}
+\writestatus{loading}{ConTeXt XML Macros / Content MathML}
% this is the first, experimental, shabby implementation, as
% always, the third will do -)
@@ -113,7 +113,7 @@ complex-cartesian=>\let\next\MMLccartesian,
{{\bbd#1}}
\def\widevec#1%
- {\vbox{\m@th\ialign{##\crcr
+ {\vbox{\mathsurround\zeropoint\ialign{##\crcr
\rightarrowfill\crcr\noalign{\nointerlineskip}%
$\hfil\displaystyle{#1}\hfil$\crcr}}}
diff --git a/Master/texmf-dist/tex/context/base/xtag-mml.tex b/Master/texmf-dist/tex/context/base/xtag-mml.tex
index e627e05b05e..051d15b0078 100644
--- a/Master/texmf-dist/tex/context/base/xtag-mml.tex
+++ b/Master/texmf-dist/tex/context/base/xtag-mml.tex
@@ -1,8 +1,8 @@
%D \module
%D [ file=xtag-mml,
%D version=2000.12.20,
-%D title=\CONTEXT\ XML Support,
-%D subtitle=Math ML,
+%D title=\CONTEXT\ XML Macros,
+%D subtitle=MathML,
%D author=Hans Hagen,
%D date=\currentdate,
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
@@ -11,11 +11,13 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context XML Macros (math ml)}
+\writestatus{loading}{ConTeXt XML Macros / MathML}
% I will reimplement this one without mapping since we now have more
% tricks available
+\useXMLfilter[map]
+
%\enablemathpunctuation
% First some general formula element definitions.
diff --git a/Master/texmf-dist/tex/context/base/xtag-mmp.tex b/Master/texmf-dist/tex/context/base/xtag-mmp.tex
index 01328cd4032..ef1479ee658 100644
--- a/Master/texmf-dist/tex/context/base/xtag-mmp.tex
+++ b/Master/texmf-dist/tex/context/base/xtag-mmp.tex
@@ -1,8 +1,8 @@
%D \module
%D [ file=xtag-mmp,
%D version=2000.12.20,
-%D title=\CONTEXT\ XML Support,
-%D subtitle=Math ML,
+%D title=\CONTEXT\ XML Macros,
+%D subtitle=Presentation MathML,
%D author=Hans Hagen,
%D date=\currentdate,
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
@@ -11,6 +11,8 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+% \points should become \bodyfontsize
+
% under reconstruction
%
% \starttext
@@ -31,18 +33,18 @@
% \def\doMMLpUNDER
% {\doifelse{\XMLpar{munder}{accent}{}}{true}
% {\secondXMLRelement\firstXMLRelement}
-% {\mathop{\vtop{\m@th\ialign{\hss##\hss\crcr
+% {\mathop{\vtop{\mathsurround\zeropoint\ialign{\hss##\hss\crcr
% \disabledelimiter\doMMLfiller\firstXMLRelement
-% \crcr\noalign{\kern3\p@\nointerlineskip}%
+% \crcr\noalign{\kern3\points\nointerlineskip}%
% \disabledelimiter\doMMLfiller\secondXMLRelement
-% \crcr\noalign{\kern3\p@}}}}\limits}}
+% \crcr\noalign{\kern3\points}}}}\limits}}
%
% \def\doMMLpOVER
% {\doifelse{\XMLpar{mover}{accent}{}}{true}
% {\secondXMLRelement\firstXMLRelement}
-% {\mathop{\vbox{\m@th\ialign{\hss##\hss\crcr\noalign{\kern3\p@}%
+% {\mathop{\vbox{\mathsurround\zeropoint\ialign{\hss##\hss\crcr\noalign{\kern3\points}%
% \disabledelimiter\doMMLfiller\secondXMLRelement
-% \crcr\noalign{\kern3\p@\nointerlineskip}%
+% \crcr\noalign{\kern3\points\nointerlineskip}%
% \disabledelimiter\doMMLfiller\firstXMLRelement
% \crcr}}}\limits}}
%
@@ -53,7 +55,7 @@
%
% \stoptext
-\writestatus{loading}{Context XML Macros (presentational math ml)}
+\writestatus{loading}{ConTeXt XML Macros / Presentational MathML}
\unprotect
@@ -90,9 +92,6 @@
\remapXMLsequence [mfenced] [CPA] \MMLpFENCED
-\let\normalright=\right
-\let\normalleft =\left
-
\def\doMMLleft #1{\pushmacro\left \let\left \empty\normalleft #1\popmacro\left}
\def\doMMLright#1{\pushmacro\right\let\right\empty\normalright#1\popmacro\right}
@@ -304,16 +303,16 @@
\dodoMMLfiller}
\def\doMMLpUNDER
- {\mathop{\vtop{\m@th\ialign{\hss##\hss\crcr
+ {\mathop{\vtop{\mathsurround\zeropoint\ialign{\hss##\hss\crcr
\disabledelimiter\doMMLfiller\firstXMLRelement
- \crcr\noalign{\kern3\p@\nointerlineskip}%
+ \crcr\noalign{\kern3\points\nointerlineskip}%
\disabledelimiter\doMMLfiller\secondXMLRelement
- \crcr\noalign{\kern3\p@}}}}\limits}
+ \crcr\noalign{\kern3\points}}}}\limits}
\def\doMMLpOVER
- {\mathop{\vbox{\m@th\ialign{\hss##\hss\crcr\noalign{\kern3\p@}%
+ {\mathop{\vbox{\mathsurround\zeropoint\ialign{\hss##\hss\crcr\noalign{\kern3\points}%
\disabledelimiter\doMMLfiller\secondXMLRelement
- \crcr\noalign{\kern3\p@\nointerlineskip}%
+ \crcr\noalign{\kern3\points\nointerlineskip}%
\disabledelimiter\doMMLfiller\firstXMLRelement
\crcr}}}\limits}
diff --git a/Master/texmf-dist/tex/context/base/xtag-pml.tex b/Master/texmf-dist/tex/context/base/xtag-pml.tex
index b11d3d68dc7..53d22c52af0 100644
--- a/Master/texmf-dist/tex/context/base/xtag-pml.tex
+++ b/Master/texmf-dist/tex/context/base/xtag-pml.tex
@@ -11,11 +11,12 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context XML Macros (phys ml)}
+\writestatus{loading}{ConTeXt XML Macros / PhysML}
%D This is a reimplmentation of the old filter. This module
%D runs on top of the mathml and units modules.
+\useXMLfilter[map]
\useXMLfilter[mml,mmp,mmc]
\defineXMLargument [phys] \doXMLphys
diff --git a/Master/texmf-dist/tex/context/base/xtag-pmu.tex b/Master/texmf-dist/tex/context/base/xtag-pmu.tex
index 0b9509f13d9..b913475f5e8 100644
--- a/Master/texmf-dist/tex/context/base/xtag-pmu.tex
+++ b/Master/texmf-dist/tex/context/base/xtag-pmu.tex
@@ -1,7 +1,7 @@
%D \module
%D [ file=xtag-pmu,
%D version=2001.06.10,
-%D title=\CONTEXT\ XML Support,
+%D title=\CONTEXT\ XML Macros,
%D subtitle=Units,
%D author=Hans Hagen,
%D date=\currentdate,
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context XML Macros (units)}
+\writestatus{loading}{ConTeXt XML Macros / Units}
%D Quick and dirty in||line units:
%D
diff --git a/Master/texmf-dist/tex/context/base/xtag-pre.tex b/Master/texmf-dist/tex/context/base/xtag-pre.tex
index 67e80ee78de..94a213d941b 100644
--- a/Master/texmf-dist/tex/context/base/xtag-pre.tex
+++ b/Master/texmf-dist/tex/context/base/xtag-pre.tex
@@ -1,7 +1,7 @@
%D \module
%D [ file=xtag-pre,
%D version=2000.12.20,
-%D title=\CONTEXT\ XML Support,
+%D title=\CONTEXT\ XML Macros,
%D subtitle=Predefined Things,
%D author=Hans Hagen,
%D date=\currentdate,
@@ -11,11 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\beginTEX
- \endinput
-\endTEX
-
-\writestatus{loading}{Context XML Macros (predefined)}
+\writestatus{loading}{ConTeXt XML Macros / Predefined}
%D Here we predefine some escapes, processing instructions,
%D entities and other handy things.
@@ -41,8 +37,13 @@
%D We can use the default handler to implement automatic
%D element hiding. Beware: this overloads the tracer.
-\def\startXMLignore{\dododefineXMLignore \s!default}
-\def\stopXMLignore {\dododefineXMLprocess\s!default}
+% \def\startXMLignore{\dododefineXMLignore \s!default}
+% \def\stopXMLignore {\dododefineXMLprocess\s!default}
+
+\newcount\xmlignoredepth
+
+\def\startXMLignore{\ifcase\xmlignoredepth\dododefineXMLignore\s!default\fi\advance\xmlignoredepth\plusone}
+\def\stopXMLignore {\advance\xmlignoredepth\minusone\ifcase\xmlignoredepth\dododefineXMLprocess\s!default\fi}
%D The following entities need to be defined anyway. They
%D may be overloaded later.
diff --git a/Master/texmf-dist/tex/context/base/xtag-prs.tex b/Master/texmf-dist/tex/context/base/xtag-prs.tex
index b3eb681fc82..02bdcf21c1c 100644
--- a/Master/texmf-dist/tex/context/base/xtag-prs.tex
+++ b/Master/texmf-dist/tex/context/base/xtag-prs.tex
@@ -1,7 +1,7 @@
%D \module
%D [ file=xtag-prs,
%D version=2004.08.18,
-%D title=\CONTEXT\ XML Support,
+%D title=\CONTEXT\ XML Macros,
%D subtitle=Parsing,
%D author=Hans Hagen,
%D date=\currentdate,
diff --git a/Master/texmf-dist/tex/context/base/xtag-raw.tex b/Master/texmf-dist/tex/context/base/xtag-raw.tex
index 8c190d943ed..e6dfdea4174 100644
--- a/Master/texmf-dist/tex/context/base/xtag-raw.tex
+++ b/Master/texmf-dist/tex/context/base/xtag-raw.tex
@@ -1,8 +1,8 @@
%D \module
%D [ file=xtag-raw,
%D version=2002.03.21,
-%D title=\CONTEXT\ XML Support,
-%D subtitle=reducing specials,
+%D title=\CONTEXT\ XML Macros,
+%D subtitle=Raw Specials,
%D author=Hans Hagen,
%D date=\currentdate,
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context XML Macros (raw specials)}
+\writestatus{loading}{ConTeXt XML Macros / Raw Specials}
%D Some day this module will be obsolete.
diff --git a/Master/texmf-dist/tex/context/base/xtag-rng.tex b/Master/texmf-dist/tex/context/base/xtag-rng.tex
index 524bba2d1ef..254282424b5 100644
--- a/Master/texmf-dist/tex/context/base/xtag-rng.tex
+++ b/Master/texmf-dist/tex/context/base/xtag-rng.tex
@@ -1,8 +1,8 @@
%D \module
%D [ file=xtag-rng,
%D version=2002.10.29,
-%D title=\CONTEXT\ XML Support,
-%D subtitle=Relax NG,
+%D title=\CONTEXT\ XML Macros,
+%D subtitle=Relax NG,
%D author=Hans Hagen,
%D date=\currentdate,
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
@@ -11,18 +11,18 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\unprotect
+\unprotect
%D The following commands picks up a named block from the
-%D given file and pretty prints it.
+%D given file and pretty prints it.
%D
-%D \starttyping
+%D \starttyping
%D \showRNGcomponent [eximple.rng] [request]
%D \stoptyping
%D
%D If needed, you adapt the colors used by redefining the
-%D \type {xtag} color palet.
+%D \type {xtag} color palet.
\fetchruntimecommand\showRNGcomponent {\f!xtagprefix\s!run}
-\protect \endinput
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/xtag-run.tex b/Master/texmf-dist/tex/context/base/xtag-run.tex
index 8075bfbe4f7..9a460373159 100644
--- a/Master/texmf-dist/tex/context/base/xtag-run.tex
+++ b/Master/texmf-dist/tex/context/base/xtag-run.tex
@@ -1,7 +1,7 @@
%D \module
%D [ file=xtag-run,
%D version=2001.01.10,
-%D title=\CONTEXT\ XML Support,
+%D title=\CONTEXT\ XML Macros,
%D subtitle=Visualization,
%D author=Hans Hagen,
%D date=\currentdate,
@@ -13,7 +13,7 @@
% TODO: make this mkiv compliant, catcode tables etc
-\writestatus{loading}{Context XML Macros (visualization)}
+\writestatus{loading}{ConTeXt XML Macros / Visualization}
\unprotect
diff --git a/Master/texmf-dist/tex/context/base/xtag-stk.tex b/Master/texmf-dist/tex/context/base/xtag-stk.tex
index 193b47132e9..e126ae5c74a 100644
--- a/Master/texmf-dist/tex/context/base/xtag-stk.tex
+++ b/Master/texmf-dist/tex/context/base/xtag-stk.tex
@@ -1,7 +1,7 @@
%D \module
%D [ file=xtag-exp,
%D version=2006.01.19,
-%D title=\CONTEXT\ XML Support,
+%D title=\CONTEXT\ XML Macros,
%D subtitle=Stacking Data,
%D author=Hans Hagen,
%D date=\currentdate,
@@ -11,12 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\beginTEX
- \writestatus{XML}{sorry, XML is only supported in (pdf)etex}
- \endinput
-\endTEX
-
-\writestatus{loading}{Context XML Macros (stacks)}
+\writestatus{loading}{ConTeXt XML Macros / Stacks}
%D This module is experimental. Don't use it (yet). It needs a
%D clean-up. The stack handler is used in the third MathML renderer.
diff --git a/Master/texmf-dist/tex/context/base/xtag-utf.tex b/Master/texmf-dist/tex/context/base/xtag-utf.tex
index b978c333968..fec84d27984 100644
--- a/Master/texmf-dist/tex/context/base/xtag-utf.tex
+++ b/Master/texmf-dist/tex/context/base/xtag-utf.tex
@@ -1,8 +1,8 @@
%D \module
%D [ file=xtag-utf,
%D version=2002.06.24,
-%D title=\CONTEXT\ XML Support,
-%D subtitle=UTF-8 support,
+%D title=\CONTEXT\ XML Macros,
+%D subtitle=UTF,
%D author=Hans Hagen,
%D date=\currentdate,
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context XML Macros (UTF-8)}
+\writestatus{loading}{ConTeXt XML Macros / UTF}
%D This filter is kind of obsolete, since \UTF\ is not
%D limited to \XML. So, here we only enable \UTF\ support.
diff --git a/Master/texmf-dist/tex/context/bib/bibl-ams.tex b/Master/texmf-dist/tex/context/bib/bibl-ams.tex
index ddfe927c39e..37bcf253fa1 100644
--- a/Master/texmf-dist/tex/context/bib/bibl-ams.tex
+++ b/Master/texmf-dist/tex/context/bib/bibl-ams.tex
@@ -1,6 +1,6 @@
%D \module
%D [ file=bibl-ams,
-%D version=2005.11.18
+%D version=2009.07.22
%D title=AMS bibliography style,
%D subtitle=Publications,
%D author={Taco Hoekwater, Giuseppe Bilotta},
@@ -282,30 +282,30 @@
}
\setuppublicationlayout[incollection]{%
- \insertartauthors{}{}{\insertthekey{}{, }{}}%
-% \insertarttitle{\bgroup }{\egroup. }{}%
- \inserttitle
- {, in %
- \bgroup\it}%
- {\egroup
- \inserteditors{, edited by }%
- {}%
- {}
- \insertseries
- {\insertvolume{, number }{~in }{ }}%
- {}%
- {}%
- \insertchap{\unskip, }{ }{ }%
- \insertpubyear{(%
- \insertpublisher{}%{, }%{}%
- }{)\insertEdition{, }{ ed. }{}}{}%
- \insertpages{\unskip, p.~}{. }{\unskip. }%
- }%
- {In \insertcrossref{}{}{}%
- \insertchap{\unskip, }{ }{ }%
- \insertpages{\unskip, p.~}{. }{\unskip. }%
- }%
- \insertNote{ }{.}{}%
+ \insertartauthors{}{}{\insertthekey{}{, }{}}%
+ \insertarttitle{, \bgroup }{\egroup}{}%
+ \inserttitle
+ {, in %
+ \bgroup\it}%
+ {\egroup
+ \inserteditors{, edited by }%
+ {}%
+ {}
+ \insertseries
+ {\insertvolume{, number }{~in }{ }}%
+ {}%
+ {}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpubyear{(%
+ \insertpublisher{}%{, }%{}%
+ }{)\insertEdition{, }{ ed. }{}}{}%
+ \insertpages{\unskip, p.~}{. }{\unskip. }%
+ }%
+ {In \insertcrossref{}{}{}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpages{\unskip, p.~}{. }{\unskip. }%
+ }%
+ \insertNote{ }{.}{}%
}
\setuppublicationlayout[inproceedings]{%
@@ -427,12 +427,11 @@
}
\setuppublicationlayout[unpublished]{%
- \insertauthors{}{}{}%
- \inserttitle{\bgroup \it }{\egroup \insertseries{ (}{)}{}}{}%
- \insertbibtype{ (}{)}{}%
- \insertpubyear{ (unpublished,}{)}{ (unpublished)}%
- \insertpages{\unskip, }{ }{}%
- \insertNote{\unskip. }{.}{\unskip.}%
-}
-
+ \insertauthors{}{, }{}%
+ \inserttitle{\bgroup \it }{\egroup \insertseries{ (}{)}{}}{}%
+ \insertbibtype{ (}{)}{}%
+ \insertpubyear{ (unpublished, }{)}{ (unpublished)}%
+ \insertpages{\unskip, }{ }{}%
+ \insertNote{\unskip. }{.}{\unskip.}%
+}
\protect
diff --git a/Master/texmf-dist/tex/context/bib/bibl-apa-fr.tex b/Master/texmf-dist/tex/context/bib/bibl-apa-fr.tex
index d2a1efb8ae7..654a3644190 100644
--- a/Master/texmf-dist/tex/context/bib/bibl-apa-fr.tex
+++ b/Master/texmf-dist/tex/context/bib/bibl-apa-fr.tex
@@ -108,7 +108,7 @@
\def\insertchap#1#2#3%
{\insertchapter
- {#1\insertbibtype{}{\ }{chapter\ }}{#2}%
+ {#1\insertbibtype{}{\ }{chapitre\ }}{#2}%
{#3}}
\def\insertpublisher#1#2#3%
diff --git a/Master/texmf-dist/tex/context/bib/bibl-apa.tex b/Master/texmf-dist/tex/context/bib/bibl-apa.tex
index 8e2e9e84272..20bbccb95c8 100644
--- a/Master/texmf-dist/tex/context/bib/bibl-apa.tex
+++ b/Master/texmf-dist/tex/context/bib/bibl-apa.tex
@@ -1,6 +1,6 @@
%D \module
%D [ file=bibl-apa,
-%D version=2004.7.16,
+%D version=2008.06.09,
%D title=APA bibliography style,
%D subtitle=Publications,
%D author={Taco Hoekwater},
@@ -112,18 +112,40 @@
{#1\insertbibtype{}{\ }{chapter\ }}{#2}%
{#3}}
+% #1city, country: pubname#2
+% #1country: pubname#2
+% #1pubname#2
+% #1city, country#2
+% #3
+
\def\insertpublisher#1#2#3%
{\insertpubname
- {#1}{\insertcity
- {, }
+ {\insertcity
+ {#1}
+ {\insertcountry{, }{}{}: }%
+ {#1\insertcountry{}{: }{}}}%
+ {#2}%
+ {\insertcity
+ {#1}
{\insertcountry{, }{}{#2}}%
- {\insertcountry{, }{}{#2}}}%
+ {\insertcountry{#1}{#2}{#3}}}%
+ }
+
+\def\insertorg#1#2#3%
+ {\insertorganization
+ {\insertcity
+ {#1}
+ {\insertcountry{, }{}{#2}: }%
+ {\insertcountry{}{: }{#2}}}%
+ {}%
{\insertcity
- {}{\insertcountry{, }{}{#2}}%
- {\insertcountry{#1}{#2}{#3}}}%
+ {#1}
+ {\insertcountry{, }{}{#2}}%
+ {\insertcountry{}{#2}{#3}}}%
}
+
\setuppublicationlayout[article]{%
\insertartauthors{}{ }{\insertthekey{}{ }{}}%
\insertpubyear{(}{). }{\unskip.}%
@@ -131,9 +153,9 @@
\insertjournal{\bgroup \it}{\egroup}
{\insertcrossref{In }{}{}}%
\insertvolume
- {, }
- {\insertissue{(}{)}{}\insertpages{:}{.}{.}}
- {\insertpages{, pages }{.}{.}}%
+ {\bgroup \it, }
+ {\egroup\insertissue{\/(}{)}{}\insertpages{, }{.}{.}}
+ {\insertpages{, pp. }{.}{.}}%
\insertnote{ }{.}{}%
\insertcomment{}{.}{}%
}
@@ -156,7 +178,7 @@
{ in~\bgroup}%
{\egroup. }%
{\insertcrossref{ in~}{}{. }}}%
- {\insertseries{ }{.}{} }%
+ {\insertseries{ }{.}{.}}%
\else
\insertcrossref
{\insertchap{, }{}{}%
@@ -176,11 +198,9 @@
}%
\fi}%
{}%
- \insertpublisher
- { }%
- {\insertedition{, }{ edition.}{.}}%
- {\insertedition{, }{ edition.}{}}%
- \insertpages{ }{p. }{}%
+ \insertedition{ }{ edition}{}%
+ \insertpublisher{ }{.}{.}%
+ \insertpages{ }{p. }{ }%
\insertnote{}{.}{}%
}
@@ -191,40 +211,38 @@
}{\insertthekey{}{. }{}}}%
\insertpubyear{(}{). }{\unskip.}%
\inserttitle
- {\bgroup\it }%
- {\/\egroup
- \ifeditedbook
- \global\editedbookfalse
- \insertvolume
- { number~}%
- {\insertseries
- { in~\bgroup}%
- {\egroup. }%
- {\insertcrossref{ in~}{}{. }}}%
- {\insertseries{ }{.}{} }%
- \else
- \insertcrossref
- {\insertchap{, }{}{}%
- \insertpages{, pages }{. }{. }%
- \insertvolume{Volume~}{ of~}{}%
- }%
- {}%
- {\insertvolume
- {, volume~}%
- {\insertseries
- { of~\bgroup\it}%
- {\egroup}
- {}}
- {}%
- \insertchap{, }{}{}%
- \insertpages{, pages }{. }{. }%
- }%
+ {\bgroup\it }%
+ {\/\egroup
+ \ifeditedbook
+ \global\editedbookfalse
+ \insertvolume
+ { number~}%
+ {\insertseries
+ { in~\bgroup}%
+ {\egroup. }%
+ {\insertcrossref{ in~}{}{.}}}%
+ {\insertseries{ }{.}{}}%
+ \else
+ \insertcrossref
+ {\insertchap{, }{}{}%
+ \insertpages{, pages }{. }{. }%
+ \insertvolume{Volume~}{ of~}{}%
+ }%
+ {}%
+ {\insertvolume
+ {, volume~}%
+ {\insertseries
+ { of~\bgroup\it}%
+ {\egroup}
+ {}}
+ {}%
+ \insertchap{, }{}{}%
+ \insertpages{, pages }{.}{}%
+ }%
\fi}%
- { }%
- \insertpublisher
- {}%
- {\insertedition{, }{ edition. }{. }}%
- {\insertedition{, }{ edition. }{}}%
+ { }%
+ \insertedition{ }{ edition.}{}%
+ \insertpublisher{ }{.}{.}%
\insertnote{ }{.}{}%
}
@@ -232,10 +250,8 @@
\insertauthors{}{ }{\insertthekey{}{. }{}}%
\insertpubyear{(}{). }{}%
\inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
- \insertpublisher
- {}%
- {\insertedition{, }{ edition. }{. }}%
- {\insertedition{, }{ edition. }{}}%
+ \insertedition{ }{ edition.}{}%
+ \insertpublisher{ }{.}{.}%
\insertpages{}{p. }{}%
\insertnote{ }{.}{}%
}
@@ -244,12 +260,8 @@
\insertauthors{}{ }{\insertthekey{}{. }{}}%
\insertpubyear{(}{). }{}%
\inserttitle{\bgroup \it }{\/\egroup \insertseries{ (}{)}{}. }{}%
- \insertorganization
- {}%
- {\insertcity{, }%
- {\insertedition{, }{ edition. }{. }}%
- {\insertedition{, }{ edition. }{. }}}%
- {\insertedition{, }{ edition. }{}}%
+ \insertedition{ }{ edition.}{}%
+ \insertorg{ }{.}{.}%
\insertpages{}{p. }{}%
\insertnote{ }{.}{}%
}
@@ -270,10 +282,8 @@
{}%
\insertchap{\unskip, }{ }{ }%
\insertpages{\unskip, pages~}{. }{\unskip. }%
- \insertpublisher
- {}%
- {\insertedition{, }{ edition. }{. }}%
- {\insertedition{, }{ edition. }{}}%
+ \insertedition{ }{ edition}{}%
+ \insertpublisher{ }{.}{.}%
}%
{In \insertcrossref{}{}{}%
\insertchap{\unskip, }{ }{ }%
@@ -297,14 +307,8 @@
{}%
{}%
\insertchap{\unskip, }{ }{ }%
- \insertpages
- {\unskip, pages~}
- {\insertcity{, }{. }{. }}
- {\unskip. }%
- \insertorganization
- {}%
- {\insertpubname{, }{. }{. }}%
- {\insertpubname{}{. }{}}% was {, }{. }{}
+ \insertpages{, pages~}{}{}%
+ \insertorg{. }{.}{.}%
}%
{In \insertcrossref{}{}{}%
\insertchap{\unskip, }{ }{ }%
@@ -322,19 +326,15 @@
\inserttitle
{\bgroup\it}%
{\egroup
- \insertseries
- {\insertvolume{, number }{~in }{ }}%
- {}%
- {}%
- \insertchap{\unskip, }{ }{ }%
- \insertpages{\unskip, pages~}{\insertcity{, }{. }{. }}
- {\unskip\insertcity{, }{. }{. }}%
- \insertorganization
- {}%
- {\insertpubname{, }{. }{. }}%
- {\insertpubname{, }{. }{}}%
- }%
+ \insertseries
+ {\insertvolume{, number }{~in }{ }}%
+ {}%
{}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpages{, pages~}{}{}%
+ \insertorg{. }{.}{.}%
+ }%
+ {}%
\insertnote{ }{.}{}%
}
@@ -343,8 +343,8 @@
\insertpubyear{(}{). }{}%
\inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
\insertbibtype{}{, }{Master's thesis, }%
- \insertpublisher{}{. }{}%
- \insertpages{}{p. }{}%
+ \insertpublisher{ }{.}{.}%
+ \insertpages{ }{p. }{}%
\insertnote{ }{.}{}%
}
@@ -352,9 +352,9 @@
\insertauthors{}{ }{}%
\insertpubyear{(}{). }{}%
\inserttitle{\bgroup\it }{\egroup \insertseries{ (}{)}{}. }{}%
- \insertbibtype{}{, }{PhD thesis, }%
- \insertpublisher{}{. }{}%
- \insertpages{}{p. }{}%
+ \insertbibtype{}{, }{PhD thesis,}%
+ \insertpublisher{ }{.}{.}%
+ \insertpages{ }{ p. }{}%
\insertnote{ }{.}{}%
}
@@ -362,8 +362,8 @@
\insertauthors{}{ }{\insertthekey{}{. }{}}%
\insertpubyear{(}{). }{}%
\inserttitle{\bgroup }{\egroup \insertseries{ (}{)}. }{}%
- \insertpublisher{}{. }{}%
- \insertpages{}{p. }{}%
+ \insertpublisher{ }{.}{.}%
+ \insertpages{ }{p. }{}%
\insertnote{ }{.}{}%
}
@@ -371,9 +371,9 @@
\insertauthors{}{ }{}%
\insertpubyear{(}{). }{}%
\inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
- \insertbibtype{}{\insertvolume{ }{, }{, }}{Technical Report, }%
- \insertpublisher{}{. }{}%
- \insertpages{}{p. }{}%
+ \insertbibtype{}{\insertvolume{ }{, }{, }}{Technical Report}%
+ \insertpublisher{ }{.}{.}%
+ \insertpages{ }{p. }{}%
\insertnote{ }{.}{}%
}
@@ -381,8 +381,8 @@
\insertauthors{}{ }{}%
\insertpubyear{(}{). }{}%
\inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
- \insertpublisher{}{. }{}%
- \insertpages{}{p. }{}%
+% \insertpublisher{ }{.}{.}%
+ \insertpages{ }{p. }{}%
\insertbibtype{(}{)}{}%
\insertnote{ }{.}{}%
}
diff --git a/Master/texmf-dist/tex/context/bib/t-bib.mkii b/Master/texmf-dist/tex/context/bib/t-bib.mkii
new file mode 100644
index 00000000000..ac34947257a
--- /dev/null
+++ b/Master/texmf-dist/tex/context/bib/t-bib.mkii
@@ -0,0 +1,5 @@
+% some code will move here
+
+\unprotect
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/bib/t-bib.mkiv b/Master/texmf-dist/tex/context/bib/t-bib.mkiv
new file mode 100644
index 00000000000..9a01bc7cde1
--- /dev/null
+++ b/Master/texmf-dist/tex/context/bib/t-bib.mkiv
@@ -0,0 +1,62 @@
+%D Note by HH:
+%D
+%D We use a still somewhat experimental extension to the list
+%D mechanism. Eventually the bibtex module will use the bibl loader
+%D and access the data by means of lpath expressions. In that case we
+%D don't need to process the bibliography but still need to track
+%D usage as done here.
+
+\unprotect
+
+\startluacode
+local list = { }
+
+bibtexhacks = {
+ reset = function() list = { } end,
+ add = function(str) list[#list+1] = str end,
+ flush = function() tex.sprint(table.concat(list,",")) end,
+}
+\stopluacode
+
+% HACK WILL GO:
+
+\def\namedlistparameter#1#2{\csname\dolistparameter{\??li#1}#2\endcsname}
+
+% TILL HERE
+
+\let\bibrefprefixcounter\!!plusone
+\def\bibrefprefix {\bibrefprefixcounter:}
+\let\preparebibrefprefix\relax
+\let\preparebibreflist \gobbleoneargument
+\let\bibreflist \empty
+
+\setuplist[pubs][\c!state=\s!start]
+
+\installstructurelistprocessor{pubs:userdata}
+ {\ctxlua{bibtexhacks.add(structure.lists.uservalue("\currentlist",\currentlistindex,"bibref"))}}
+
+\def\docitation#1%
+ {\expanded{\writedatatolist[pubs][bibref=#1]}}
+
+\def\filllocalpublist
+ {\edef\currentlist{pubs}%
+ \doif{\listparameter\c!criterium}{cite}{\setuplist[pubs][\c!criterium=\v!here]}%
+ \ctxlua{bibtexhacks.reset()}%
+ \placestructurelist{pubs}{\listparameter\c!criterium}{\listparameter\c!number}%
+ \edef\localpublist{\ctxlua{bibtexhacks.flush()}}}
+
+\def\gotobiblink#1[#2]{\doifreferencefoundelse{\bibrefprefix#2}{\goto{#1}[\bibrefprefix#2]}{\unknownreference{#2}}}
+\def\atbiblink [#1]{\doifreferencefoundelse{\bibrefprefix#1}{\at [\bibrefprefix#1]}{\unknownreference{#1}}}
+\def\inbiblink [#1]{\doifreferencefoundelse{\bibrefprefix#1}{\at [\bibrefprefix#1]}{\unknownreference{#1}}}
+
+\ifdefined\normaldodoplacepublications \else % just in case we load twice
+
+ \let\normaldodoplacepublications\dodoplacepublications
+
+ \def\dodoplacepublications
+ {\normaldodoplacepublications
+ \doglobal\increment\bibrefprefixcounter}
+
+\fi
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/bib/t-bib.tex b/Master/texmf-dist/tex/context/bib/t-bib.tex
index 67a741096f1..876bad8e2ab 100644
--- a/Master/texmf-dist/tex/context/bib/t-bib.tex
+++ b/Master/texmf-dist/tex/context/bib/t-bib.tex
@@ -1,6 +1,6 @@
%D \module
%D [ file=t-bib,
-%D version=2006.12.07,
+%D version=2009.08.13,
%D title=\CONTEXT\ Publication Module,
%D subtitle=Publications,
%D author=Taco Hoekwater,
@@ -34,7 +34,7 @@
%D \item added headtext for it (23/11/2005)
%D \item make \type{\cite[url]} and \type{\cite[doi]} interactive (23/11/2005)
%D \item make right-aligned labels in the list work even when autohang=no
-%D \item use 'et al.' instead of 'et.al.'. Pointed out by Peter Mnster (30/12/2005)
+%D \item use 'et al.' instead of 'et.al.'. Pointed out by Peter M�nster (30/12/2005)
%D \item added headtext for cz (31/12/2005)
%D \item Keep whitespace after \type{\cite} with single argument (31/12/2005)
%D \item Fix broken \type{\cite{}} support (31/12/2005)
@@ -62,7 +62,7 @@
%D \item fix a bug in \type{\cite{<item>}} (17/5/2006)
%D \item support \type{\cite[authornum]} (18/5/2006)
%D \item make \type{\cite} unexpandable (20/6/2006)
-%D \item allow hyperlinks in author\&year combo's
+%D \item allow hyperlinks in author\&year combo's
%D (cite list compression has to be off) (20/6/2006)
%D \item fix duplicate labels for per-chapter style (20/6/2006)
%D \item allow \type{\setupcite[interaction=(start|stop)]}
@@ -70,7 +70,7 @@
%D \item make the default criterium for \type{\placepublications} be \type{previous} (23/6/2006)
%D \item fix \type{\normalauthor} and \type{\normalshortauthor} spacing (29/6/2006)
%D \item do not typeset empty arguments to \type{\typesetapublication} (29/6/2006)
-%D \item add \type{symbol=none} to \type{\setuplist} in unnumbered
+%D \item add \type{symbol=none} to \type{\setuplist} in unnumbered
%D mode to prevent typesetting of bare numbers (29/6/2006)
%D \item remove two incorrect spaces from bibl-num.tex (1/7/2006)
%D \item reset font styles within \type{\cite}, so that font switches
@@ -80,7 +80,7 @@
%D \item test \type{\iflocation} before deciding to use the
%D interactive version of cite (18/7/2006)
%D \item support \type{\setupcite[authoretallimit=1]} (18/7/2006)
-%D \item support use of \type{\cite} within titles and captions by
+%D \item support use of \type{\cite} within titles and captions by
%D saveguarding the list item extraction and reference placement
%D code (19/7/2006)
%D \item support \type{\setuppublicationlist[title=\chapter]} (4/8/2006)
@@ -88,15 +88,15 @@
%D \item hook added for repeated authors in publication list
%D \type{\setuppublicationlist[artauthorcommand=\mythreeargscommand]}
%D (4/8/2006)
-%D \item make the bracketed arguments of \type{\artauthor}, \type{\author}
+%D \item make the bracketed arguments of \type{\artauthor}, \type{\author}
%D and \type{\editor} (bbl commands) optional (4/8/2006)
%D \item the constants \type{sorttype}, \type{compress} and
%D \type{autohang} have moved to the core (8/8/2006)
%D \item bibtex is now registered as a program to be run by texexec (8/8/2006)
%D \item fix a bug in \type{\setupcite[authoretallimit=1]} (9/8/2006)
-%D \item fix a bug inside citations that prevented lastpubsep from ever being
+%D \item fix a bug inside citations that prevented lastpubsep from ever being
%D used due to a volatile \type{\commalistsize} (25/8/2006).
-%D \item added the possibility of \type{\placepublications[option=continue]}
+%D \item added the possibility of \type{\placepublications[option=continue]}
%D (6/9/2006)
%D \item Mojca translated Master's Thesis to Masterarbeit (bibl-apa-de.tex)
%D (12/9/2006)
@@ -104,9 +104,40 @@
%D Thomas Schmitz (15/9/2006)
%D \item Removed some spurious spaces pointed out by willi egger (19/9/2006)
%D \item Add configuration of bibtex executable name (4/11/2006)
-%D \item Fix numbering=short and numbering=bib (spotted by Matthias Wchter) (4/11/2006)
+%D \item Fix numbering=short and numbering=bib (spotted by Matthias W�chter) (4/11/2006)
%D \item third attempt to get a correct release (5/11/2006)
%D \item fix a few missing dots in bibl-num.tex (7/12/2006)
+%D \item Patch for DOI's by Tobias Burnus (17/4/2007)
+%D \item Patch for \type{\insertbiburl} and \type{\insertdoi} for Tobias Burnus (18/4/2007)
+%D \item Added a missing \type{\relax} in \type{\dospecialbibinsert},
+%D that made the space before the {\it et al.} text disappear. (18/4/2007)
+%D \item Attempt to fix percent signs in bbl files. As a side-effect,
+%D this prohibits comments in \tex{startpublication} blocks! (17/4/2008)
+%D \item Patch from Matthias W\"achter that allows arbitrary .bst
+%D files to be used with \tex{setupbibtex} (25/9/2008)
+%D \item Extended for the new multilingual setups for the Oct 2008 current of ConTeXt (23/10/2008)
+%D \item Multilingual setups needed another fix (27/10/2008)
+%D \item Two fixes for bibl-apa by Michael Green (27/10/2008)
+%D \item Catalan translation of 'References' (10/11/2008)
+%D \item 'chapter' -> 'chapitre' in bibl-apa-fr (27/11/2008)
+%D \item Run bibtex via os.execute in mkiv modee (01/12/2008)
+%D \item Small correction in bibl-apa's placement of volume
+%D information in articles (05/01/2009)
+%D \item Handle multi-author (more than two) cases in \type{\cite}
+%D (02/03/2009)
+%D \item Suppress a syntax error in \type{cont-xp} mode. The output is
+%D probably not right, though (02/03/2009)
+%D \item Added a \tex{loadmarkfile} at the end, and two new files
+%D from Hans. The \type{t-bib.mkiv} is needed to make the module
+%D work with the new structure code (17/04/2009)
+%D \item Added a patch to \type{t-bib.mkiv} from Hans to make the
+%D cross referencing between multiple citations an
+%D bibliographies work (27/04/2009)
+%D \item Remove a superfluous \type{\unprotect} in t-bib.mkiv (11/05/2009).
+%D \item Patch of incollection in bibl-ams.tex from Xan (08/06/2009).
+%D \item Patch of unpublished in bibl-ams.tex from Xan (22/07/2009).
+%D \item Modified \type{\bibdogetupsometextprefix} so it works for undefined
+%D language labels, from Hans (13/08/2009).
%D \stopitemize
%D
%D \subject{WISHLIST}
@@ -120,6 +151,23 @@
\unprotect
+%D start with a temp hack the file will still work with pre-Oct 2008
+%D versions of ConTeXt:
+
+
+\def\startinterface #1
+ {\doifnot{#1}{all}{\doifnotinset\currentinterface{#1}{\gobbleuntil\stopinterface}}}
+
+\let\checksetvalue\gobbletwoarguments
+
+
+%\defineinterfacevariable {title} {title}
+%\defineinterfacevariable {short} {short}
+%\defineinterfacevariable {cite} {cite}
+%\defineinterfacevariable {bbl} {bbl}
+%\defineinterfacevariable {bib} {bib}
+%\defineinterfacevariable {author} {author}
+
%D A few new shortcuts:
\definesystemvariable {pv} % PublicationVariable
@@ -142,67 +190,97 @@
%D Some constants for the multi-lingual interface
-\startconstants dutch english
-
- database: database database
- artauthor: artauthor artauthor
- editor: editor editor
- authoretallimit: authoretallimit authoretallimit
- artauthoretallimit: artauthoretallimit artauthoretallimit
- editoretallimit: editoretallimit editoretallimit
- authoretaldisplay: authoretaldisplay authoretaldisplay
- artauthoretaldisplay: artauthoretaldisplay artauthoretaldisplay
- editoretaldisplay: editoretaldisplay editoretaldisplay
- authoretaltext: authoretaltext authoretaltext
- artauthoretaltext: artauthoretaltext artauthoretaltext
- editoretaltext: editoretaltext editoretaltext
- otherstext: otherstext otherstext
- andtext: andtext andtext
- totalnumber: totalnumber totalnumber
- firstnamesep: firstnamesep firstnamesep
- vonsep: vonsep vonsep
- juniorsep: juniorsep juniorsep
- surnamesep: surnamesep surnamesep
- lastnamesep: lastnamesep lastnamesep
- finalnamesep: finalnamesep finalnamesep
- namesep: namesep namesep
- pubsep: pubsep pubsep
- lastpubsep: lastpubsep lastpubsep
- refcommand: refcommand refcommand
- samplesize: samplesize samplesize
-
-\stopconstants
-
-\startvariables dutch english
- german czech
- italian romanian
- french
- title: titel title
- titel titul
- titolo titlu
- titre
- short: kort short
- kurz short
- short short
- short
- cite: cite cite
- cite cite
- cite cite
- cite
- bbl: bbl bbl
- bbl bbl
- bbl bbl
- bbl
- bib: bib bib
- bib bib
- bib bib
- bib
- author: auteur author
- autor autor
- autore autor
- auteur
-
-\stopvariables
+\startinterface all
+ \setinterfaceconstant {database} {database}
+ \setinterfaceconstant {artauthor} {artauthor}
+ \setinterfaceconstant {editor} {editor}
+ \setinterfaceconstant {authoretallimit} {authoretallimit}
+ \setinterfaceconstant {artauthoretallimit} {artauthoretallimit}
+ \setinterfaceconstant {editoretallimit} {editoretallimit}
+ \setinterfaceconstant {authoretaldisplay} {authoretaldisplay}
+ \setinterfaceconstant {artauthoretaldisplay} {artauthoretaldisplay}
+ \setinterfaceconstant {editoretaldisplay} {editoretaldisplay}
+ \setinterfaceconstant {authoretaltext} {authoretaltext}
+ \setinterfaceconstant {artauthoretaltext} {artauthoretaltext}
+ \setinterfaceconstant {editoretaltext} {editoretaltext}
+ \setinterfaceconstant {otherstext} {otherstext}
+ \setinterfaceconstant {andtext} {andtext}
+ \setinterfaceconstant {totalnumber} {totalnumber}
+ \setinterfaceconstant {firstnamesep} {firstnamesep}
+ \setinterfaceconstant {vonsep} {vonsep}
+ \setinterfaceconstant {juniorsep} {juniorsep}
+ \setinterfaceconstant {surnamesep} {surnamesep}
+ \setinterfaceconstant {lastnamesep} {lastnamesep}
+ \setinterfaceconstant {finalnamesep} {finalnamesep}
+ \setinterfaceconstant {namesep} {namesep}
+ \setinterfaceconstant {pubsep} {pubsep}
+ \setinterfaceconstant {lastpubsep} {lastpubsep}
+ \setinterfaceconstant {refcommand} {refcommand}
+ \setinterfaceconstant {samplesize} {samplesize}
+\stopinterface
+
+\startinterface dutch
+ \setinterfacevariable {title} {titel}
+ \setinterfacevariable {short} {kort}
+ \setinterfacevariable {cite} {cite}
+ \setinterfacevariable {bbl} {bbl}
+ \setinterfacevariable {bib} {bib}
+ \setinterfacevariable {author} {auteur}
+\stopinterface
+
+\startinterface english
+ \setinterfacevariable {title} {title}
+ \setinterfacevariable {short} {short}
+ \setinterfacevariable {cite} {cite}
+ \setinterfacevariable {bbl} {bbl}
+ \setinterfacevariable {bib} {bib}
+ \setinterfacevariable {author} {author}
+\stopinterface
+
+\startinterface german
+ \setinterfacevariable {title} {titel}
+ \setinterfacevariable {short} {kurz}
+ \setinterfacevariable {cite} {cite}
+ \setinterfacevariable {bbl} {bbl}
+ \setinterfacevariable {bib} {bib}
+ \setinterfacevariable {author} {autor}
+\stopinterface
+
+\startinterface czech
+ \setinterfacevariable {title} {titul}
+ \setinterfacevariable {short} {short}
+ \setinterfacevariable {cite} {cite}
+ \setinterfacevariable {bbl} {bbl}
+ \setinterfacevariable {bib} {bib}
+ \setinterfacevariable {author} {autor}
+\stopinterface
+
+\startinterface italian
+ \setinterfacevariable {title} {titolo}
+ \setinterfacevariable {short} {short}
+ \setinterfacevariable {cite} {cite}
+ \setinterfacevariable {bbl} {bbl}
+ \setinterfacevariable {bib} {bib}
+ \setinterfacevariable {author} {autore}
+\stopinterface
+
+\startinterface romanian
+ \setinterfacevariable {title} {titlu}
+ \setinterfacevariable {short} {short}
+ \setinterfacevariable {cite} {cite}
+ \setinterfacevariable {bbl} {bbl}
+ \setinterfacevariable {bib} {bib}
+ \setinterfacevariable {author} {autor}
+\stopinterface
+
+\startinterface french
+ \setinterfacevariable {title} {titre}
+ \setinterfacevariable {short} {short}
+ \setinterfacevariable {cite} {cite}
+ \setinterfacevariable {bbl} {bbl}
+ \setinterfacevariable {bib} {bib}
+ \setinterfacevariable {author} {auteur}
+\stopinterface
\def\biblistname{pubs} % for compatibility
@@ -211,7 +289,6 @@
\let\preloadbiblist\relax
-
\ifx\currentcomponent\v!text
% single file
\edef\temp{\the\everystarttext}%
@@ -254,6 +331,7 @@
\setupheadtext[it][pubs=Bibliografia]
\setupheadtext[sl][pubs=Literatura]
\setupheadtext[fr][pubs=Bibliographie]
+\setupheadtext[ca][pubs=Referències]
%D \macros{bibdoif,bibdoifnot,bibdoifelse}
%D
@@ -294,15 +372,14 @@
\def\dosetupbibtex[#1]%
{\let\@@pbdatabase\empty
- \let\@@pbsort \empty
- \getparameters[\??pb][#1]%
+ \getparameters[\??pb][sort=\s!default,#1]%
\expanded{\processaction[\@@pbsort]}
[ \v!no=>\def\bibstyle{cont-no},
\v!author=>\def\bibstyle{cont-au},
\v!title=>\def\bibstyle{cont-ti},
\v!short=>\def\bibstyle{cont-ab},
\s!default=>\def\bibstyle{cont-no},
- \s!unknown=>\def\bibstyle{cont-no}]%
+ \s!unknown=>\def\bibstyle{\@@pbsort}]%
\ifx\@@pbdatabase\empty\else \writeauxfile \fi}
\dosetupbibtex[bibtex=bibtex]
@@ -335,7 +412,9 @@
\write \scratchwrite {\string\bibdata{\@@pbdatabase}}%
\closeout\scratchwrite
\showmessage\m!bib{3}{}%
- \expanded{\installprogram{\@@pbbibtex\space\jobname}}}}
+ \doifmodeelse{*mkiv}
+ {\ctxlua{os.execute('\@@pbbibtex\space\jobname')}}
+ {\expanded{\installprogram{\@@pbbibtex\space\jobname}}}}}
%D \macros{ifsortbycite,iftypesetall,ifautohang,ifbibcitecompress}
%D
@@ -497,10 +576,15 @@
\processcommacommand[\bibcommandlist]\simplebibdef
+\def\insertdoi#1#2#3%
+ {{\bibdoifelse{\@@pb@doi}%
+ {\edef\ascii{\@EA\detokenize\@EA{\@@pb@doi}}%
+ #1\expanded{\gotoDOI{\@@pb@thekey}{\ascii}}#2}{#3}}}
+
\def\insertbiburl#1#2#3%
{{\bibdoifelse{\@@pb@biburl}%
{\edef\ascii{\@EA\detokenize\@EA{\@@pb@biburl}}%
- #1\@EA\hyphenatedurl\@EA{\ascii}#2}{#3}}}
+ #1\expanded{\gotoURL{\@@pb@thekey}{\ascii}}#2}{#3}}}
\def\insertmonth#1#2#3%
{\bibdoifelse{\@@pb@month}%
@@ -567,11 +651,11 @@
\def\dododocomplexbibdef[#1]#2#3%
{\@EA\increment\csname \currentype @num\endcsname
\setevalue{\??pb @\currentype\csname \currentype @num\endcsname}%
- {{\secondarg}{#2}{#3}{#1}{\firstarg}}\ignorespaces}%
+ {{\secondarg}{#2}{#3}{#1}{\firstarg}}\ignorespaces}%
\def\complexbibdef#1%
{\@EA\newcounter\csname #1@num\endcsname
- \@EA\def\csname bib@#1\endcsname{\docomplexbibdef{#1}}%
+ \@EA\def\csname bib@#1\endcsname{\docomplexbibdef{#1}}%
\@EA\def\csname insert#1s\endcsname##1##2##3%
{\specialbibinsert{#1}{\csname #1@num\endcsname}{##1}{\unskip ##2}{##3}}}
@@ -641,13 +725,13 @@
\ifnum \numexpr\scratchcounter-1\relax<#2\relax
\getvalue{\??pv data#1}##1%
\ifnum \scratchcounter=#2\relax
- \ifnum\etallimitcounter<\commalistsize \bibalternative{#1etaltext}\fi
+ \ifnum\etallimitcounter<\commalistsize\relax \bibalternative{#1etaltext}\fi
\else \ifnum\numexpr\scratchcounter+1 = #2\relax
\ifnum \commalistsize > \plustwo \bibalternative\c!finalnamesep
\else \bibalternative\c!lastnamesep \fi
\else
\bibalternative\c!namesep
- \fi \fi
+ \fi \fi
\fi}%
\processcommacommand[#3]\processauthoritem }
@@ -726,9 +810,16 @@
%D to \type{\startpublication}. Of course, then there
%D is no key either, and it had better be an
%D article (otherwise the layout will be all screwed up).
+%D
+%D Now prohibits comments, so % can be used for urls
+
+\def\startpublication
+ {\edef\bibmodsavedpercent{\the\catcode`\%}%
+ \catcode`\%=12
+ \dosingleempty\dostartpublication}
-\def\startpublication{\dosingleempty\dostartpublication}
-\def\stoppublication {}
+\def\stoppublication
+ {} % the \catcode of % is reset below
%D Only specifying the key in the argument is also
%D legal. In storing this stuff into macros, some trickery with
@@ -760,7 +851,8 @@
\setxvalue{pbdu-\@@pbk}{\@@pbu}
\setxvalue{pbdd-\@@pbk}{\the\toks0}
\xdef\allrefs{\allrefs,\@@pbk}%
- \egroup }
+ \egroup
+ \catcode`\%=\bibmodsavedpercent\relax }
% intialization of the order-list:
@@ -857,9 +949,11 @@
\fi
\def\filllocalpublist%
- {\let\dosetfilterlevel\patcheddosetfilterlevel
- \dosettoclevel\??li{pubs}%
- \let\dosetfilterlevel\normaldosetfilterlevel
+ {\doifdefinedelse{\alltoclevels}
+ {\let\dosetfilterlevel\patcheddosetfilterlevel
+ \dosettoclevel\??li{pubs}%
+ \let\dosetfilterlevel\normaldosetfilterlevel }%
+ {\dosettoclevel\??li{pubs}}%
\global\let\glocalpublist\empty
\doloop
{\doifdefinedelse
@@ -873,9 +967,9 @@
{\exitloop}}%
\let\localpublist\glocalpublist}
-%
+%
\def\typesetpubslist
- {\dobeginoflist
+ {\dobeginoflist
\edef\askedlevel{\csname \??li pubs\c!criterium\endcsname}%
\ifx\askedlevel\v!all
\def\bibrefprefix{}%
@@ -883,7 +977,7 @@
\preparebibrefprefix
\fi
\ifsortbycite
- \filllocalpublist
+ \filllocalpublist
\iftypesetall
\let\localallrefs\allrefs
\processcommacommand[\localpublist]\typesetapublication
@@ -898,11 +992,11 @@
\iftypesetall
\processcommacommand[\allrefs]\typesetapublication
\else
- %
+ %
\filllocalpublist
\processcommacommand[\allrefs]\maybetypesetapublication
\fi
- \fi
+ \fi
\doendoflist }
\newif\ifinpublist
@@ -978,14 +1072,34 @@
\def\completepublications
{\dosingleempty\docompletepublications}
+\def\bibdogetupsometextprefix#1#2#3%
+ {\ifcsname#2#1#3\endcsname
+ \csname#2#1#3\endcsname
+ \else\ifcsname\??la#1\c!default\endcsname
+ \@EA\ifx\csname\??la#1\c!default\endcsname\empty
+ \ifcsname#2#3\endcsname
+ \csname#2#3\endcsname
+ \else\ifcsname#2\s!en#3\endcsname
+ \csname#2\s!en#3\endcsname
+ \fi\fi
+ \else
+ \expandafter\bibdogetupsometextprefix
+ \csname\??la#1\c!default\endcsname{#2}{#3}%
+ \fi
+ \else
+ \ifcsname#2#3\endcsname
+ \csname#2#3\endcsname
+ \else\ifcsname#2\s!en#3\endcsname
+ \csname#2\s!en#3\endcsname
+ \fi\fi
+ \fi\fi}
+
\def\docompletepublications[#1]%
- {%\getparameters[\??pv data][#1]%
- \begingroup
- \setuplist[pubs][\c!criterium=\v!previous,#1]
+ {\begingroup
+ \setuplist[pubs][\c!criterium=\v!previous,#1]
\begingroup
- \loggingall
\let\handletextprefix\firstoftwoarguments
- \edef\headtextpubs{\dogetupsometextprefix\headlanguage\c!title{pubs}}%
+ \edef\headtextpubs{\bibdogetupsometextprefix\headlanguage\c!title{pubs}}%
\doifdefinedelse
{\??pv data\v!title}
{\doifemptyelsevalue
@@ -1016,7 +1130,7 @@
{\global\let\bibcounter\!!zerocount }%
\inpublisttrue
\typesetpubslist
- \inpublistfalse
+ \inpublistfalse
\endgroup }
@@ -1024,8 +1138,8 @@
%D
\unexpanded\def\typesetapublication#1%
- {\doifsomething{#1}{\doglobal\increment\bibcounter
- \bgroup
+ {\doifsomething{#1}{\doglobal\increment\bibcounter
+ \bgroup
\makepbkvalue{#1}%
\ifgridsnapping
\snaptogrid\vbox{\dodolistelement{pubs}{}{\bibcounter}%
@@ -1098,7 +1212,7 @@
{\begingroup
\setupinteraction[\c!style=]%
\edef\temp{#2}%
- \ifx\empty\temp \secondargumentfalse
+ \ifx\empty\temp \secondargumentfalse
\else \secondargumenttrue \fi
\ifsecondargument
\processcommalist[#2]\docitation
@@ -1188,7 +1302,7 @@
\newcounter\citationnumber
\def\docitation#1{%
- \iftrialtypesetting \else
+ \iftrialtypesetting \else
\ifdoinpututilities\else
\doglobal\increment\citationnumber
\expanded{\rawreference{}{cite-\jobname-\citationnumber}{#1}}%
@@ -1304,11 +1418,32 @@
\or
\expanded{\docurrentbibauthor#1}%
\else
- % this can't happen/
- \def\currentbibauthor{}%
+ \handlemultiplebibauthors{\commalistsize}{#1}%
\fi }
+\newcount\citescratchcounter
+
+\def\handlemultiplebibauthors#1#2%
+ {\citescratchcounter 0
+ \def\currentbibauthor{}%
+ \def\bibprocessauthoritem##1%
+ {\advance\citescratchcounter1
+ \ifnum \citescratchcounter=#1\relax
+ \edef\currentbibauthor{\currentbibauthor##1}%
+ \else \ifnum\numexpr\citescratchcounter+1 = #1\relax
+ \edef\currentbibauthor{\currentbibauthor ##1\bibalternative{andtext}}%
+ \else
+ \edef\currentbibauthor{\currentbibauthor ##1\bibalternative{namesep}}%
+ \fi
+ \fi }%
+ \processcommalist[#2]\bibprocessauthoritem }
+
+
+\setupcite
+ [author,authoryear,authoryears]
+ [\c!namesep={, }]
+
%D This discovery of authoretallimit is not the best one,
%D but it will do for now.
@@ -1431,7 +1566,7 @@
%D \macros{preparebibrefprefix}
%D
%D The reference list only writes bare references when the criterium
-%D is `all'. Otherwise, a prefix is added to make sure that pdfTeX
+%D is `all'. Otherwise, a prefix is added to make sure that pdfTeX
%D does not encounter duplicate named references. On the generation
%D side, this is not a big problem. \type{\preparebibrefprefix}
%D creates a suitable string to prepend if a prefix is needed.
@@ -1454,9 +1589,9 @@
%D \macros{preparebibreflist}
%D
-%D But this optional prefixing is a bit of a problem on the
+%D But this optional prefixing is a bit of a problem on the
%D other side. We would like to do \type{\goto{}[article-full]}
-%D but can't do it like that, because the actual label may be
+%D but can't do it like that, because the actual label may be
%D \type{1:2:0:3:4:article-full]} or so. The problem is solved
%D by building a commalist that looks like this:
%D \starttyping
@@ -1472,7 +1607,7 @@
\def\preparebibreflist#1%
{\let\bibreflist\empty
\def\storeitem##1%
- {\ifx\bibreflist\empty
+ {\ifx\bibreflist\empty
\edef\prefix{##1\sectionseparator}%
\edef\bibreflist{\prefix#1,#1}%
\else
@@ -1480,7 +1615,7 @@
\edef\bibreflist{\prefix#1,\bibreflist}%
\fi}%
\expanded{\processseparatedlist[\bibrefprefix][\sectionseparator]}\storeitem }
-
+
%D \macros{gotobiblink,inbiblink,atbiblink}
%D
%D The final task is looping over that list until a match is found.
@@ -1570,7 +1705,7 @@
{\bibalternative\v!left
\ixbibauthoryear{#1}
{\bibmaybeinteractive{#1}{{\currentbibauthor}\bibalternative\c!inbetween{\currentbibyear}}}
- {\bibalternative\c!pubsep
+ {\bibalternative\c!pubsep
\bibmaybeinteractive{#1}{{\currentbibauthor}\bibalternative\c!inbetween{\currentbibyear}}}
{\bibalternative\c!lastpubsep
\bibmaybeinteractive{#1}{{\currentbibauthor}\bibalternative\c!inbetween{\currentbibyear}}}%
@@ -1636,7 +1771,9 @@
\def\gotoDOI#1#2%
{\ifbibinteractionelse
- {\useURL[bibfoo#1][http://dx.doi.org/#2]\goto{\url[bibfoo#1]}[url(bibfoo#1)]}
+ {\useURL[bibfooDoi#1][#2]%
+ \useURL[bibfoo#1][http://dx.doi.org/#2]%
+ \goto{\url[bibfooDoi#1]}[url(bibfoo#1)]}
{\hyphenatedurl{#2}}}
\def\bibdoiref[#1]%
@@ -1716,7 +1853,7 @@
{\ifbibreffound\else
\doifreferencefoundelse
{##1}
- {\global\bibreffoundtrue
+ {\global\bibreffoundtrue
\@EA\doglobal\@EA\addtocommalist\@EA{\reftypet}\therefs }%
{}\fi}%
\processcommacommand[\bibreflist]\setuplink
@@ -1785,6 +1922,8 @@
\setuppublications
[\v!month\v!conversion=,\c!alternative=apa]
+\loadmarkfile{t-bib}
+
\preloadbiblist
-\protect \endinput \ No newline at end of file
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/config/cont-usr.tex b/Master/texmf-dist/tex/context/config/cont-usr.tex
index 7489f8a109c..5a3070362f8 100644
--- a/Master/texmf-dist/tex/context/config/cont-usr.tex
+++ b/Master/texmf-dist/tex/context/config/cont-usr.tex
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{User Settings}
+\writestatus{loading}{ConTeXt User Settings}
\unprotect
@@ -26,7 +26,7 @@
% \installlanguage [\s!af] [\c!state=\v!start] % afrikaans
% \installlanguage [\s!ca] [\c!state=\v!start] % catalan
-% \installlanguage [\s!cz] [\c!state=\v!start] % czech
+% \installlanguage [\s!cs] [\c!state=\v!start] % czech
% \installlanguage [\s!da] [\c!state=\v!start] % danish
% \installlanguage [\s!de] [\c!state=\v!start] % german
% \installlanguage [\s!en] [\c!state=\v!start] % english us
@@ -38,7 +38,8 @@
% \installlanguage [\s!it] [\c!state=\v!start] % italian
% \installlanguage [\s!la] [\c!state=\v!start] % latin
% \installlanguage [\s!nl] [\c!state=\v!start] % dutch
-% \installlanguage [\s!no] [\c!state=\v!start] % norwegian
+% \installlanguage [\s!nb] [\c!state=\v!start] % bokmal
+% \installlanguage [\s!nn] [\c!state=\v!start] % nynorsk
% \installlanguage [\s!pl] [\c!state=\v!start] % polish
% \installlanguage [\s!pt] [\c!state=\v!start] % portuguese
% \installlanguage [\s!ro] [\c!state=\v!start] % romanian
@@ -48,7 +49,7 @@
% \installlanguage [\s!sv] [\c!state=\v!start] % swedish
% \installlanguage [\s!tr] [\c!state=\v!start] % turkish
% \installlanguage [\s!ua] [\c!state=\v!start] % ukrainian
-% \installlanguage [\s!uk] [\c!state=\v!start] % english uk
+% \installlanguage [\s!gb] [\c!state=\v!start] % english uk
% \installlanguage [\s!vn] [\c!state=\v!start] % vietnamese
% \installlanguage [deo] [\c!state=\v!start] % old german
@@ -58,7 +59,7 @@
% \setupcurrentlanguage[\s!af]
% \setupcurrentlanguage[\s!ca]
-% \setupcurrentlanguage[\s!cz]
+% \setupcurrentlanguage[\s!cs]
% \setupcurrentlanguage[\s!da]
% \setupcurrentlanguage[\s!de]
% \setupcurrentlanguage[\s!en]
@@ -70,7 +71,8 @@
% \setupcurrentlanguage[\s!it]
% \setupcurrentlanguage[\s!la]
% \setupcurrentlanguage[\s!nl]
-% \setupcurrentlanguage[\s!no]
+% \setupcurrentlanguage[\s!nb]
+% \setupcurrentlanguage[\s!nn]
% \setupcurrentlanguage[\s!pl]
% \setupcurrentlanguage[\s!pt]
% \setupcurrentlanguage[\s!ro]
@@ -87,6 +89,8 @@
%D next line is only meant as sample, take a look at the
%D format related files first.
+% This is obsolete due to latin modern:
+%
% \definefilesynonym [font-cmr] [font-csr] % czech & slovak
% \definefilesynonym [font-cmr] [font-plr] % polish
diff --git a/Master/texmf-dist/tex/context/interface/cont-cs.xml b/Master/texmf-dist/tex/context/interface/cont-cs.xml
new file mode 100644
index 00000000000..3bfad5fb450
--- /dev/null
+++ b/Master/texmf-dist/tex/context/interface/cont-cs.xml
@@ -0,0 +1,10239 @@
+<?xml version="1.0" encoding="UTF-8"?><!-- versions:
+
+ comment : user interface definitions of ConTeXt
+
+ authors : Hans Hagen, Taco Hoekwater, Patrick Gundlach
+
+ versions : 2004.11.17 : initial version
+ 2006.08.02 : define + resolve
+
+-->
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="cs" version="2006.08.02">
+
+ <cd:define name="align">
+ <cd:constant type="uvnitr"/>
+ <cd:constant type="vnejsi"/>
+ <cd:constant type="vlevo"/>
+ <cd:constant type="vpravo"/>
+ <cd:constant type="flushleft"/>
+ <cd:constant type="flushright"/>
+ <cd:constant type="nastred"/>
+ <cd:constant type="center"/>
+ <cd:constant type="normalni"/>
+ <cd:constant type="ne"/>
+ <cd:constant type="ano"/>
+ </cd:define>
+
+ <cd:define name="symalign">
+ <cd:constant type="vlevo"/>
+ <cd:constant type="vpravo"/>
+ <cd:constant type="flushleft"/>
+ <cd:constant type="flushright"/>
+ <cd:constant type="nastred"/>
+ <cd:constant type="center"/>
+ </cd:define>
+
+ <cd:define name="indenting">
+ <cd:constant type="nikdy"/>
+ <cd:constant type="zadny"/>
+ <cd:constant type="ne"/>
+ <cd:constant type="ne"/>
+ <cd:constant type="ano"/>
+ <cd:constant type="vzdy"/>
+ <cd:constant type="prvni"/>
+ <cd:constant type="dalsi"/>
+ <cd:constant type="male"/>
+ <cd:constant type="stredni"/>
+ <cd:constant type="velke"/>
+ <cd:constant type="normalni"/>
+ <cd:constant type="liche"/>
+ <cd:constant type="sude"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:define>
+
+ <cd:define name="indentnext">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:define>
+
+ <cd:define name="style">
+ <cd:constant type="normalni"/>
+ <cd:constant type="tucne"/>
+ <cd:constant type="sklonene"/>
+ <cd:constant type="tucnesklonene"/>
+ <cd:constant type="opis"/>
+ <cd:constant type="kap"/>
+ <cd:constant type="small..."/>
+ <cd:constant type="cd:command"/>
+ </cd:define>
+
+ <cd:define name="language">
+ <cd:constant type="nl"/>
+ <cd:constant type="fr"/>
+ <cd:constant type="en"/>
+ <cd:constant type="uk"/>
+ <cd:constant type="de"/>
+ <cd:constant type="es"/>
+ <cd:constant type="cz"/>
+ <cd:constant type=".."/>
+ </cd:define>
+
+ <cd:define name="texts">
+ <cd:constant type="cd:text"/>
+ <cd:constant type="cd:section"/>
+ <cd:constant type="datum"/>
+ <cd:constant type="cd:mark"/>
+ <cd:constant type="cislostranky"/>
+ </cd:define>
+
+ <cd:define name="layout-h">
+ <cd:constant type="text" default="yes"/>
+ <cd:constant type="marginalie"/>
+ <cd:constant type="hrana"/>
+ </cd:define>
+
+ <cd:define name="layout-v">
+ <cd:constant type="vrsek"/>
+ <cd:constant type="zahlavi"/>
+ <cd:constant type="text" default="yes"/>
+ <cd:constant type="upati"/>
+ <cd:constant type="spodek"/>
+ </cd:define>
+
+ <cd:define name="bodyfont">
+ <cd:constant type="5pt"/>
+ <cd:constant type="..."/>
+ <cd:constant type="12pt"/>
+ <cd:constant type="male"/>
+ <cd:constant type="velke"/>
+ </cd:define>
+
+ <cd:command name="installlanguage" file="lang-ini.tex" category="language">
+ <cd:sequence>
+ <cd:string value="instalacejazyka"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="mezerovani">
+ <cd:constant type="zhustene" default="yes"/>
+ <cd:constant type="siroky"/>
+ </cd:parameter>
+ <cd:parameter name="lefthyphenmin">
+ <cd:constant type="cd:number" default="2"/>
+ </cd:parameter>
+ <cd:parameter name="righthyphenmin">
+ <cd:constant type="cd:number" default="2"/>
+ </cd:parameter>
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="vetavlevo">
+ <cd:constant type="cd:command" default="---"/>
+ </cd:parameter>
+ <cd:parameter name="vetavpravo">
+ <cd:constant type="cd:command" default="---"/>
+ </cd:parameter>
+ <cd:parameter name="podvetavlevo">
+ <cd:constant type="cd:command" default="---"/>
+ </cd:parameter>
+ <cd:parameter name="podvetavpravo">
+ <cd:constant type="cd:command" default="---"/>
+ </cd:parameter>
+ <cd:parameter name="citovatvlevo">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="citovatvpravo">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="citacevlevo">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="citacevpravo">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="leftspeech">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="middlespeech">
+ <cd:constant type="cd:command" default=""/>
+ </cd:parameter>
+ <cd:parameter name="rightspeech">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="limittext">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="datum">
+ <cd:constant type="cd:text"/> <!-- TODO -->
+ </cd:parameter>
+ <cd:parameter name="compoundhyphen">
+ <cd:constant type="cd:command" default="\compoundhyphen"/>
+ </cd:parameter>
+ <cd:parameter name="leftcompoundhyphen">
+ <cd:constant type="cd:command" default="\compoundhyphen"/>
+ </cd:parameter>
+ <cd:parameter name="rightcompoundhyphen">
+ <cd:constant type="cd:command" default=""/>
+ </cd:parameter>
+ <cd:parameter name="implicitni">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplanguage" file="lang-ini.tex" category="language">
+ <cd:sequence>
+ <cd:string value="nastavjazyk"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:resolve name="language"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="instalacejazyka" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="language" file="lang-ini.tex" category="language">
+ <cd:sequence>
+ <cd:string value="jazyk"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:resolve name="language"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mainlanguage" file="lang-ini.tex" category="language">
+ <cd:sequence>
+ <cd:string value="hlavnijazyk"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:resolve name="language"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="translate" file="lang-lab.tex" category="language">
+ <cd:sequence>
+ <cd:string value="prelozit"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="cd:name">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useencoding" file="enco-ini.tex" category="encoding"> <!-- engine="pdftex" -->
+ <cd:sequence>
+ <cd:string value="uzijkodovani"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usespecials" file="spec-ini.tex">
+ <cd:sequence>
+ <cd:string value="uzijspeciality"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="reset"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineoutput" file="spec-ini.tex">
+ <cd:sequence>
+ <cd:string value="definujvystup"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupoutput" file="spec-ini.tex">
+ <cd:sequence>
+ <cd:string value="nastavvystup"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definebodyfontenvironment" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="definujprostredizakladnihofontu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes"> <!-- it's possible to use 1+2+3, 2+3, what about 1+2? -->
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="no"> <!-- have to force no, otherwise \showsetup is wrong ! -->
+ <cd:constant type="5pt"/> <!-- TODO: maybe <cd:resolve name="bodyfont"/> -->
+ <cd:constant type="..."/>
+ <cd:constant type="12pt"/>
+ <cd:constant type="implicitni"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:parameter name="text">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="script">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="scriptscript">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="x">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="xx">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="a">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="b">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="c">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="d">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="male">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="velky">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="meziradkovamezera">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="em">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbodyfontenvironment" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="nastavprostredizakladnihofontu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes"> <!-- same as definebodyfontenvironment; you can define the whole commant to inherit, not only parameters-->
+ <cd:inherit name="definujprostredizakladnihofontu" n="1"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="no">
+ <cd:inherit name="definujprostredizakladnihofontu" n="2" optional="no"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="definujprostredizakladnihofontu" n="3"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showbodyfontenvironment" file="font-run.tex" category="fonts"> <!-- and debug -->
+ <cd:sequence>
+ <cd:string value="ukazpostredizakladnihofontu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:inherit name="nastavzakladnifont" n="1"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definebodyfont" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="definujzakladnifont"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes"> <!-- <cd:constant type="implicitni"/> -->
+ <cd:resolve name="bodyfont"/> <!-- TODO: check this -->
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="rm" default="yes"/>
+ <cd:constant type="ss"/>
+ <cd:constant type="tt"/>
+ <cd:constant type="hw"/>
+ <cd:constant type="cg"/>
+ <cd:constant type="mm"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:parameter name="tf">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="bf">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="sl">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="it">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="bs">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="bi">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="sc">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="mr">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="ex">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="mi">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="sy">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="ma">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="mb">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="mc">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="md">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definebodyfontDEF" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="definujzakladnifont"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:inherit name="nastavzakladnifont" n="2"/>
+ </cd:keywords>
+ <cd:keywords n="1">
+ <cd:inherit name="nastavzakladnifont" n="3"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definebodyfontREF" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="definujzakladnifont"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:inherit name="nastavzakladnifont" n="1"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:inherit name="nastavzakladnifont" n="2"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+
+ <cd:command name="showbodyfont" file="font-run.tex" category="fonts"> <!-- visual debugging -->
+ <cd:sequence>
+ <cd:string value="ukazzakladnifont"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:inherit name="nastavzakladnifont" n="1"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbodyfont" file="font-run.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="nastavzakladnifont"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes"> <!-- TODO: many missing, maybe also <cd:resolve name="bodyfont"/> -->
+ <cd:constant type="cd:name"/>
+ <cd:constant type="serif"/>
+ <cd:constant type="pravidelne"/>
+ <cd:constant type="antikva"/>
+ <cd:constant type="sans"/>
+ <cd:constant type="podpora"/>
+ <cd:constant type="bezserifu"/>
+ <cd:constant type="mono"/>
+ <cd:constant type="opis"/>
+ <cd:constant type="strojopis"/>
+ <cd:constant type="rukopisne"/>
+ <cd:constant type="kaligraficke"/>
+ <cd:constant type="5pt"/>
+ <cd:constant type="..."/>
+ <cd:constant type="12pt"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="switchtobodyfont" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="prepninazakladnifont"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ <cd:constant type="serif"/>
+ <cd:constant type="pravidelne"/>
+ <cd:constant type="antikva"/>
+ <cd:constant type="sans"/>
+ <cd:constant type="podpora"/>
+ <cd:constant type="bezserifu"/>
+ <cd:constant type="mono"/>
+ <cd:constant type="opis"/>
+ <cd:constant type="strojopis"/>
+ <cd:constant type="rukopisne"/>
+ <cd:constant type="kaligraficke"/>
+ <cd:constant type="5pt"/>
+ <cd:constant type="..."/>
+ <cd:constant type="12pt"/>
+ <cd:constant type="male"/>
+ <cd:constant type="velke"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefont" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="definujfont"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcolor" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="nastavbarvu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcolors" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="nastavbarvy"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="globalne"/>
+ <cd:constant type="lokalne"/>
+ </cd:parameter>
+ <cd:parameter name="konverze">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ <cd:constant type="vzdy"/>
+ </cd:parameter>
+ <cd:parameter name="redukce">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ <cd:parameter name="rgb">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ <cd:parameter name="cmyk">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ <cd:parameter name="mpcmyk">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ <cd:parameter name="mpspot">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ <cd:parameter name="faktor">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ <cd:parameter name="barvatextu">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="split">
+ <cd:constant type="c"/>
+ <cd:constant type="m"/>
+ <cd:constant type="y"/>
+ <cd:constant type="k"/>
+ <cd:constant type="p"/>
+ <cd:constant type="s"/>
+ <cd:constant type="ne"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="kriterium">
+ <cd:constant type="vse"/>
+ <cd:constant type="zadny"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definecolor" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="definujbarvu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="r">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="g">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="b">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="c">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="m">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="y">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="k">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="s">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="h">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="t">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="a">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="p">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="e">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="color" type="environment" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="barva"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="color" file="colo-ini.tex">
+ <cd:sequence>
+ <cd:string value="barva"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="graycolor" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="sedabarva"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showcolor" file="colo-run.tex" category="colors"> <!-- and debug -->
+ <cd:sequence>
+ <cd:string value="ukazbarvu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definepalet" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="definujpaletu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="cd:name">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppalet" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="nastavpaletu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definecolorgroup" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="definujskupinubarev"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="rgb" default="yes"/>
+ <cd:constant type="cmyk"/>
+ <cd:constant type="seda"/>
+ <cd:constant type="s"/>
+ </cd:keywords>
+ <cd:triplet n="3" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showpalet" file="colo-run.tex" category="colors"> <!-- and debug -->
+ <cd:sequence>
+ <cd:string value="ukazpaletu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="horizontalne"/>
+ <cd:constant type="vertikalne"/>
+ <cd:constant type="jmeno"/>
+ <cd:constant type="hodnota"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showcolorgroup" file="colo-run.tex" category="colors"> <!-- and debug-->
+ <cd:sequence>
+ <cd:string value="ukazskupinubarev"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="horizontalne"/>
+ <cd:constant type="vertikalne"/>
+ <cd:constant type="jmeno"/>
+ <cd:constant type="hodnota"/>
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="comparepalet" file="colo-run.tex" category="colors"> <!-- and debug? -->
+ <cd:sequence>
+ <cd:string value="porovnejpaletu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="comparecolorgroup" file="colo-run.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="porovnejskupinubarev"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showmakeup" file="supp-vis.tex" category="debug">
+ <cd:sequence>
+ <cd:string value="ukazupravu"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="definetype" file="core-ver.tex" category="verbatim">
+ <cd:sequence>
+ <cd:string value="definetype"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="nastavtype" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptype" file="core-ver.tex" category="verbatim"> <!-- TODO -->
+ <cd:sequence>
+ <cd:string value="nastavtype"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="mezera">
+ <cd:constant type="zap"/>
+ <cd:constant type="vyp" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="volba">
+ <cd:constant type="sklonene"/>
+ <cd:constant type="normalni"/>
+ <cd:constant type="zadny"/>
+ </cd:parameter>
+ <cd:parameter name="pismeno">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="barva">
+ <cd:constant type="cd:name" default=""/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="type" file="verb-ini.tex" category="verbatim">
+ <cd:sequence>
+ <cd:string value="opis"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="typ" file="core-ver.tex" category="verbatim">
+ <cd:sequence>
+ <cd:string value="pis"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tex" file="core-ver.tex" category="verbatim">
+ <cd:sequence>
+ <cd:string value="tex"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <!-- cd:command name="arg" file="core-ver.tex"> command broken
+ <cd:sequence>
+ <cd:string value="arg"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+</cd:command -->
+
+ <cd:command name="definetyping" file="core-ver.tex" category="verbatim">
+ <cd:sequence>
+ <cd:string value="definujopis"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:inherit name="nastavopis" n="1"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="nastavopis" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptyping" file="core-ver.tex" category="verbatim">
+ <cd:sequence>
+ <cd:string value="nastavopis"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="soubor"/>
+ <cd:constant type="typing"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="mezera">
+ <cd:constant type="zap"/>
+ <cd:constant type="vyp"/>
+ </cd:parameter>
+ <cd:parameter name="stranka">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ <cd:parameter name="volba">
+ <cd:constant type="sklonene"/>
+ <cd:constant type="normalni"/>
+ <cd:constant type="prikazy"/>
+ <cd:constant type="barevne"/>
+ <cd:constant type="zadny"/>
+ </cd:parameter>
+ <cd:parameter name="text">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ <cd:parameter name="iprikaz">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="vprikaz">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="cprikaz">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="pred">
+ <cd:constant type="cd:command" default="\blank"/>
+ </cd:parameter>
+ <cd:parameter name="po">
+ <cd:constant type="cd:command" default="\blank"/>
+ </cd:parameter>
+ <cd:parameter name="marginalie">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="standardni"/>
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ <cd:parameter name="sudamarginalie">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="lichyokraj">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="prazdny">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="male"/>
+ <cd:constant type="stredni"/>
+ <cd:constant type="velke"/>
+ <cd:constant type="standardni"/>
+ <cd:constant type="pulradku"/>
+ <cd:constant type="radek"/>
+ </cd:parameter>
+ <cd:parameter name="escape">
+ <cd:constant type="cd:character"/>
+ </cd:parameter>
+ <cd:parameter name="mezera">
+ <cd:constant type="zap"/>
+ <cd:constant type="vyp"/>
+ </cd:parameter>
+ <cd:parameter name="tab">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ <cd:parameter name="stranka">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ <cd:parameter name="odsadpristi">
+ <cd:resolve name="indentnext"/>
+ </cd:parameter>
+ <cd:parameter name="pismeno">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="barva">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="paleta">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="radky">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ <cd:constant type="hyphenated"/>
+ </cd:parameter>
+ <cd:parameter name="prazdne">
+ <cd:constant type="ano"/>
+ <cd:constant type="vse"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ <cd:parameter name="cislovani">
+ <cd:constant type="radek"/>
+ <cd:constant type="soubor"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ <cd:parameter name="zakladnifont">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="typing" type="environment" generated="yes" file="verb-ini.tex"
+ category="verbatim">
+ <cd:sequence>
+ <cd:variable value="typing"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="typefile" file="verb-ini.tex" category="verbatim">
+ <cd:sequence>
+ <cd:string value="opissoubor"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfootnotes" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="nastavpoznamkypodcarou"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="konverze">
+ <cd:constant type="cisla"/>
+ <cd:constant type="pismena"/>
+ <cd:constant type="Pismena"/>
+ <cd:constant type="rimskecislice"/>
+ <cd:constant type="Rimskecislice"/>
+ </cd:parameter>
+ <cd:parameter name="zpusob">
+ <cd:constant type="bytext"/>
+ <cd:constant type="bycd:section"/>
+ </cd:parameter>
+ <cd:parameter name="misto">
+ <cd:constant type="stranka"/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="sloupce"/>
+ <cd:constant type="firstcolumn"/>
+ <cd:constant type="lastcolumn"/>
+ <cd:constant type="vysoko"/>
+ <cd:constant type="zadny"/>
+ </cd:parameter>
+ <cd:parameter name="linka">
+ <cd:constant type="zap"/>
+ <cd:constant type="vyp"/>
+ </cd:parameter>
+ <cd:parameter name="pred">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="po">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="sirka">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="vyska">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="zakladnifont">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ <cd:parameter name="pismeno">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="vzdalenost">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="vzdalenostsloupcu">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="vzdalenostokraje">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ciselnyprikaz">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="textovyprikaz">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="split">
+ <cd:constant type="tolerantni"/>
+ <cd:constant type="striktni"/>
+ <cd:constant type="velmistriktni"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="styltextu">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="barvatextu">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="interakce">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ <cd:parameter name="faktor">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:inherit name="nastavoramovani" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfootnotedefinition" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="nastavdefinicipoznamekpodcarou"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:inherit name="nastavpopisy" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="footnote" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="poznamkapodcarou"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="footnotetext" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="footnotetext"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="note" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="poznamka"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" interactive="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="localfootnotes" type="environment" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="localfootnotes"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="placelocalfootnotes" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="umistilokalnipoznamkypodcarou"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="nastavpoznamkypodcarou" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placefootnotes" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="umistipoznamkypodcarou"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="nastavpoznamkypodcarou" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupunderbar" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="nastavpodtrzeni"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="alternativa">
+ <cd:constant type="a"/>
+ <cd:constant type="b"/>
+ <cd:constant type="c"/>
+ </cd:parameter>
+ <cd:parameter name="tloustkalinky">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="offsetspodku">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="offsetvrsku">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="barvalinky">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="underbar" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="podtrzeno"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="underbars" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="podtrzeni"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overbar" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="nadtrzeno"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overbars" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="nadtrzeni"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overstrike" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="preskrtnuto"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overstrikes" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="preskrtnuti"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="romannumerals" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="rimskecislice"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Romannumerals" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="Rimskecislice"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="numbers" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="cisla"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="character" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="znak"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Character" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="Znak"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="characters" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="znaky"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Characters" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="Znaky"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mediaeval" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="mediaeval"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="month" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="mesic"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MONTH" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="MESIC"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="weekday" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="vsedniden"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="WEEKDAY" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="VSEDNIDEN"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcapitals" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="nastavkapitalky"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="titul">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ <cd:parameter name="sc">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="cap" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="cap"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nocap" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="nocap"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="CAP" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="CAP"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Cap" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="Cap"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Caps" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="Caps"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="WORD" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="SLOVO"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="WORDS" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="SLOVA"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Word" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="Slovo"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Words" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="Slova"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="stretched" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="roztazene"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definesymbol" file="symb-ini.tex">
+ <cd:sequence>
+ <cd:string value="definujsymbol"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefiguresymbol" file="symb-ini.tex">
+ <cd:sequence>
+ <cd:string value="definujobrazeksymbol"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="nastavexterniobrazy" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="symbol" file="symb-ini.tex">
+ <cd:sequence>
+ <cd:string value="symbol"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="symbolset" type="environment" file="symb-ini.tex" category="symbols">
+ <cd:sequence>
+ <cd:string value="symbolset"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsymbolset" file="symb-ini.tex" category="symbols">
+ <cd:sequence>
+ <cd:string value="nastavsadusymbolu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usesymbols" file="symb-ini.tex" category="symbols">
+ <cd:sequence>
+ <cd:string value="uzijsymbol"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showsymbolset" file="symb-run.tex" category="symbols"> <!-- and symbols -->
+ <cd:sequence>
+ <cd:string value="ukazsadusymbolu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineconversion" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="definujkonverzi"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:command"/>
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="convertnumber" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="konvertujcislo"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupheadtext" file="lang-lab.tex">
+ <cd:sequence>
+ <cd:string value="nastavtexthlavicky"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:resolve name="language"/>
+ </cd:keywords>
+ <cd:assignments n="2">
+ <cd:parameter name="cd:name">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplabeltext" file="lang-lab.tex">
+ <cd:sequence>
+ <cd:string value="nastavtextpopisku"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:resolve name="language"/>
+ </cd:keywords>
+ <cd:assignments n="2">
+ <cd:parameter name="cd:name">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="headtext" file="lang-lab.tex">
+ <cd:sequence>
+ <cd:string value="texthlavicky"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="labeltext" file="lang-lab.tex">
+ <cd:sequence>
+ <cd:string value="textpopisku"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupmarginrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="nastavmarginalnilinky"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1">
+ <cd:parameter name="uroven">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="tloustkalinky">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="marginrule" type="environment" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="marginalnilinka"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="marginrule" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="marginalnilinka"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplinewidth" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="nastavsirkucary"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupframed" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="nastavoramovani"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/> <!-- defines a command with that name -->
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="vyska">
+ <cd:constant type="prizpusobive"/>
+ <cd:constant type="siroky"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="sirka">
+ <cd:constant type="prizpusobive"/>
+ <cd:constant type="siroky"/>
+ <cd:constant type="fixne"/>
+ <cd:constant type="lokalne"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="autosirka">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ <cd:constant type="sila"/>
+ </cd:parameter>
+ <cd:parameter name="offset">
+ <cd:constant type="zadny"/>
+ <cd:constant type="prekryv"/>
+ <cd:constant type="implicitni"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="misto">
+ <cd:constant type="podlehloubky"/>
+ <cd:constant type="visici"/>
+ <cd:constant type="vysoko"/>
+ <cd:constant type="nivy"/>
+ <cd:constant type="nizko"/>
+ <cd:constant type="vrsek"/>
+ <cd:constant type="nastred"/>
+ <cd:constant type="spodek"/>
+ <cd:constant type="drzet"/>
+ </cd:parameter>
+ <cd:parameter name="volba">
+ <cd:constant type="zadny"/>
+ <cd:constant type="prazdne"/>
+ </cd:parameter>
+ <cd:parameter name="strut">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ <cd:constant type="globalne"/>
+ <cd:constant type="lokalne"/>
+ </cd:parameter>
+ <cd:parameter name="zarovnani">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="spodek">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="vrsek">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="ramecek">
+ <cd:constant type="zap"/>
+ <cd:constant type="vyp"/>
+ <cd:constant type="zadny"/>
+ <cd:constant type="prekryv"/>
+ </cd:parameter>
+ <cd:parameter name="rameceknahore">
+ <cd:constant type="zap"/>
+ <cd:constant type="vyp"/>
+ </cd:parameter>
+ <cd:parameter name="ramecekdole">
+ <cd:constant type="zap"/>
+ <cd:constant type="vyp"/>
+ </cd:parameter>
+ <cd:parameter name="ramecekvlevo">
+ <cd:constant type="zap"/>
+ <cd:constant type="vyp"/>
+ </cd:parameter>
+ <cd:parameter name="ramecekvpravo">
+ <cd:constant type="zap"/>
+ <cd:constant type="vyp"/>
+ </cd:parameter>
+ <cd:parameter name="offsetramecku">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="hloubkaramecku">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rohramecku">
+ <cd:constant type="zaobleny"/>
+ <cd:constant type="pravouhly"/>
+ </cd:parameter>
+ <cd:parameter name="polomerramecku">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="barvaramecku">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="pozadi">
+ <cd:constant type="rastr"/>
+ <cd:constant type="barevne"/>
+ <cd:constant type="zadny"/>
+ <cd:constant type="popredi"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="rastrpozadi">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="barvapozadi">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="offsetpozadi">
+ <cd:constant type="ramecek"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="hloubkapozadi">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rohpozadi">
+ <cd:constant type="zaobleny"/>
+ <cd:constant type="pravouhly"/>
+ </cd:parameter>
+ <cd:parameter name="polomerpozadi">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="hloubka">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="roh">
+ <cd:constant type="zaobleny"/>
+ <cd:constant type="pravouhly"/>
+ </cd:parameter>
+ <cd:parameter name="polomer">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="prazdne">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ <cd:parameter name="foregroundcolor">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="foregroundstyle">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="tloustkalinky">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="framed" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="oramovani"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="nastavoramovani" n="2"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inframed" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="zaramovani"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="nastavoramovani" n="2"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="thinrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="tenkelinky"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes">
+ <cd:inherit name="nastavtenkelinky" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupthinrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="nastavtenkelinky"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1">
+ <cd:parameter name="meziradkovamezera">
+ <cd:constant type="male"/>
+ <cd:constant type="stredni"/>
+ <cd:constant type="velke"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="pred">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="mezi">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="po">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="barva">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="barvapozadi">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="vyska">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="max"/>
+ </cd:parameter>
+ <cd:parameter name="hloubka">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="max"/>
+ </cd:parameter>
+ <cd:parameter name="alternativa">
+ <cd:constant type="a"/>
+ <cd:constant type="b"/>
+ <cd:constant type="c"/>
+ <cd:constant type="d"/>
+ </cd:parameter>
+ <cd:parameter name="tloustkalinky">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="barva">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="pozadi">
+ <cd:constant type="barevne"/>
+ </cd:parameter>
+ <cd:parameter name="barvapozadi">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="hairline" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="vlasovalinka"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="thinrule" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="tenkalinka"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="defineframedtext" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="definujoramovanytext"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="nastavoramovanetexty" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineframed" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="definujoramovani"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="nastavoramovanetexty" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupframedtexts" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="nastavoramovanetexty"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="zakladnifont">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ <cd:parameter name="pismeno">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="vlevo">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="vpravo">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="pred">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="po">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="vnitrni">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="korekceradku">
+ <cd:constant type="zap"/>
+ <cd:constant type="vyp"/>
+ </cd:parameter>
+ <cd:parameter name="korekcehloubky">
+ <cd:constant type="zap"/>
+ <cd:constant type="vyp"/>
+ </cd:parameter>
+ <cd:parameter name="marginalie">
+ <cd:constant type="standardni"/>
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ <cd:parameter name="misto">
+ <cd:constant type="vlevo"/>
+ <cd:constant type="vpravo"/>
+ <cd:constant type="nastred"/>
+ <cd:constant type="zadny"/>
+ </cd:parameter>
+ <cd:parameter name="odsazovani">
+ <cd:resolve name="indenting"/>
+ </cd:parameter>
+ <cd:inherit name="nastavoramovani" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="framedtext" type="environment" generated="yes" file="core-rul.tex">
+ <cd:sequence>
+ <cd:variable value="oramovanytext"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="vlevo"/>
+ <cd:constant type="vpravo"/>
+ <cd:constant type="nastred"/>
+ <cd:constant type="zadny"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="nastavoramovanetexty" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="framedtext" generated="yes" file="core-rul.tex">
+ <cd:sequence>
+ <cd:variable value="oramovanytext"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="nastavoramovanetexty" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="background" type="environment" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="pozadi"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="background" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="pozadi"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbackground" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="nastavpozadi"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="levyoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="pravyoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="offsetvrsku">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="offsetspodku">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="pred">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="po">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:inherit name="nastavoramovani" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fillinrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="vyplnovelinky"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="nastavvyplnovelinky" n="1"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ <cd:content n="3" optional="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fillintext" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="vyplnenytext"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="nastavvyplnovelinky" n="1"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ <cd:content n="3" optional="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfillinrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="nastavvyplnovelinky"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="sirka">
+ <cd:constant type="prizpusobive"/>
+ <cd:constant type="siroky"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="vzdalenost">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="pred">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="po">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="pismeno">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="meziradkovamezera">
+ <cd:constant type="male"/>
+ <cd:constant type="stredni"/>
+ <cd:constant type="velke"/>
+ </cd:parameter>
+ <cd:parameter name="oddelovac">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fillinline" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="vyplnovyradek"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="nastavvyplnoveradky" n="1"/>
+ </cd:assignments>
+ <cd:nothing n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfillinlines" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="nastavvyplnoveradky"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="sirka">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="marginalie">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="vzdalenost">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="pred">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="po">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptextrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="nastavtextovelinky"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="misto">
+ <cd:constant type="vlevo"/>
+ <cd:constant type="naokraji"/>
+ </cd:parameter>
+ <cd:parameter name="pred">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="po">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="mezi">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="sirka">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="vzdalenost">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="zakladnifont">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ <cd:parameter name="barva">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="pismeno">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="barvalinky">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="textrule" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="textovalinka"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="vrsek"/>
+ <cd:constant type="spodek"/>
+ </cd:keywords>
+ <cd:content n="2" optional="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="textrule" type="environment" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="textovalinka"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="vrsek"/>
+ <cd:constant type="spodek"/>
+ </cd:keywords>
+ <cd:content n="2" optional="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="blackrule" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="cernalinka"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="nastavcernelinky" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="blackrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="cernelinky"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:inherit name="nastavcernelinky" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupblackrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="nastavcernelinky"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="sirka">
+ <cd:constant type="cd:dimension" default="1em"/>
+ <cd:constant type="max"/>
+ </cd:parameter>
+ <cd:parameter name="vyska">
+ <cd:constant type="cd:dimension" default="1ex"/>
+ <cd:constant type="max"/>
+ </cd:parameter>
+ <cd:parameter name="hloubka">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="max"/>
+ </cd:parameter>
+ <cd:parameter name="alternativa">
+ <cd:constant type="a" default="yes"/>
+ <cd:constant type="b"/>
+ </cd:parameter>
+ <cd:parameter name="vzdalenost">
+ <cd:constant type="cd:dimension" default=".25ex"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number" default="3"/>
+ </cd:parameter>
+ <cd:parameter name="barva">
+ <cd:constant type="cd:name" default=""/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineoverlay" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="definujprekryv"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:command"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usemodule" file="core-fil.tex"> <!-- TODO -->
+ <cd:sequence>
+ <cd:string value="uzijmodul"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="reset" file="core-num.tex">
+ <cd:sequence>
+ <cd:string value="reset"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <!-- <cd:command name="donttest">
+ <cd:sequence>
+ <cd:string value="zadnytest"/>
+ </cd:sequence>
+</cd:command> -->
+
+ <cd:command name="localenvironment" type="environment" file="core-job.tex">
+ <cd:sequence>
+ <cd:string value="localenvironment"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupsystem" file="core-sys.tex">
+ <cd:sequence>
+ <cd:string value="nastavsystem"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="rozliseni">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="soubor">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="adresar">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="nahodne">
+ <cd:constant type="normalni"/>
+ <cd:constant type="male"/>
+ <cd:constant type="stredni"/>
+ <cd:constant type="velke"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usedirectory" file="core-job.mkii"> <!-- usepath, todo: more than one file -->
+ <cd:sequence>
+ <cd:string value="usedirectory"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ <cd:constant type="reset"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="low" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="nizky"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="high" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="vysoky"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="lohi" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="nivy"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="nizko"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showframe" file="page-run.tex">
+ <cd:sequence>
+ <cd:string value="ukazramecek"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:text"/>
+ <cd:constant type="marginalie"/>
+ <cd:constant type="hrana"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="leftaligned" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="zarovnanovlevo"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="rightaligned" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="zarovnanovpravo"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="midaligned" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="zarovnanonastred"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="wordright" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="slovovpravo"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inmargin" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="naokraj"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="nizko"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inothermargin" file="page-mar.tex">
+ <cd:sequence>
+ <cd:string value="nadruhyokraj"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="nizko"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inleft" file="page-mar.tex">
+ <cd:sequence>
+ <cd:string value="vlevo"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="nizko"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inright" file="page-mar.tex">
+ <cd:sequence>
+ <cd:string value="vpravo"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="nizko"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ininner" file="page-mar.tex">
+ <cd:sequence>
+ <cd:string value="ininner"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="nizko"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inouter" file="page-mar.tex">
+ <cd:sequence>
+ <cd:string value="inouter"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="nizko"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="column" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="sloupec"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="showstruts" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="ukazpodpery"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="showsetups" file="page-run.tex">
+ <cd:sequence>
+ <cd:string value="ukaznastaveni"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="showlayout" file="page-run.tex">
+ <cd:sequence>
+ <cd:string value="ukazvzhled"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="margintext" file="page-mar.tex">
+ <cd:sequence>
+ <cd:string value="marginalnitext"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="nizko"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupmarginblocks" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="nastavmarginalniblok"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="misto">
+ <cd:constant type="naokraji"/>
+ <cd:constant type="vlevo"/>
+ <cd:constant type="nastred"/>
+ <cd:constant type="vpravo"/>
+ </cd:parameter>
+ <cd:parameter name="pismeno">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="sirka">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="zarovnani">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="vrsek">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="mezi">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="spodek">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="vlevo">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="vpravo">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="pred">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="po">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="marginblock" type="environment" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="marginblock"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="part" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="part"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="title" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="title"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="chapter" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="chapter"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="section" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="section"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subsection" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="subsection"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subsubsection" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="subsubsection"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subject" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="subject"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subsubject" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="subsubject"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subsubsubject" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="subsubsubject"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="appendix" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="appendix"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="in" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="tref"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="yes"/>
+ <cd:content n="2" interactive="yes"/>
+ <cd:reference n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="at" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="pref"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="yes"/>
+ <cd:content n="2" interactive="yes"/>
+ <cd:reference n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="about" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="oref"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="yes"/>
+ <cd:reference n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="somewhere" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="nekde"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ <cd:reference n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="atpage" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="nastrane"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ref" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="ref"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="t"/>
+ <cd:constant type="p"/>
+ <cd:constant type="r"/>
+ <cd:constant type="s"/>
+ <cd:constant type="e"/>
+ </cd:keywords>
+ <cd:reference n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="textreference" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="odkaznatext"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="pagereference" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="odkaznastranu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="reference" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="odkaz"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usereferences" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="uzijodkazy"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definereference" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="definujodkaz"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:reference n="2" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definereferenceformat" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="definujformatodkazu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="vlevo">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="vpravo">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="text">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="popisek">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="hl" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="hl"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="vl" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="vl"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="godown" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="jdidolu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="whitespace" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="bilemisto"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="nowhitespace" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="zadnebilemisto"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="crlf" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="crlf"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="space" file="syst-pln.tex">
+ <cd:sequence>
+ <cd:string value="mezera"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="fixedspaces" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="tvrdemezery"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="emptylines" file="page-lin.tex">
+ <cd:sequence>
+ <cd:string value="emptylines"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nospace" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="zadnamezera"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="packed" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="zhustene"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupdescriptions" file="core-des.tex">
+ <cd:sequence>
+ <cd:string value="nastavpopisy"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="pismeno">
+ <cd:resolve name="style"/> <!-- TODO: style=normal -->
+ </cd:parameter>
+ <cd:parameter name="barva">
+ <cd:constant type="cd:name" default=""/>
+ </cd:parameter>
+ <cd:parameter name="sirka">
+ <cd:constant type="prizpusobive"/>
+ <cd:constant type="siroky"/>
+ <cd:constant type="cd:dimension" default="8em"/>
+ </cd:parameter>
+ <cd:parameter name="vzdalenost">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="vzor">
+ <cd:constant type="cd:text" default=""/>
+ </cd:parameter>
+ <cd:parameter name="text">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="closesymbol">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="closecommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="closesymbol">
+ <cd:constant type="cd:text" default=""/>
+ </cd:parameter>
+ <cd:parameter name="titleleft">
+ <cd:constant type="cd:text" default="("/>
+ </cd:parameter>
+ <cd:parameter name="titleright">
+ <cd:constant type="cd:text" default=")"/>
+ </cd:parameter>
+ <cd:parameter name="vzdalenosttitulek">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="styltitulek">
+ <cd:resolve name="style"/> <!-- TODO: default=bold -->
+ </cd:parameter>
+ <cd:parameter name="barvatitulek">
+ <cd:constant type="cd:name" default=""/>
+ </cd:parameter>
+ <cd:parameter name="zarovnani">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="marginalie">
+ <cd:constant type="standardni"/>
+ <cd:constant type="ano"/>
+ <cd:constant type="ne" default="yes"/> <!-- TODO: this is default; conflicting syntax? -->
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="misto">
+ <cd:constant type="vlevo" default="yes"/>
+ <cd:constant type="vpravo"/>
+ <cd:constant type="vrsek"/>
+ <cd:constant type="semknuto"/>
+ <cd:constant type="naokraji"/>
+ <cd:constant type="vlevo"/>
+ <cd:constant type="vpravo"/>
+ <cd:constant type="visici"/>
+ </cd:parameter>
+ <cd:parameter name="stylhlavicky">
+ <cd:resolve name="style"/> <!-- TODO: default=bold -->
+ </cd:parameter>
+ <cd:parameter name="barvahlavicky">
+ <cd:constant type="cd:name" default=""/>
+ </cd:parameter>
+ <cd:parameter name="headcommand">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="zaveseni">
+ <cd:constant type="prizpusobive"/>
+ <cd:constant type="siroky"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="pred">
+ <cd:constant type="cd:command" default="\blank"/>
+ </cd:parameter>
+ <cd:parameter name="mezi">
+ <cd:constant type="cd:command" default="\blank"/>
+ </cd:parameter>
+ <cd:parameter name="po">
+ <cd:constant type="cd:command" default="\blank"/>
+ </cd:parameter>
+ <cd:parameter name="odsadpristi">
+ <cd:resolve name="indentnext"/> <!-- default=yes -->
+ </cd:parameter>
+ <cd:parameter name="odsazovani">
+ <cd:resolve name="indenting"/> <!-- default=never -->
+ </cd:parameter>
+ <cd:parameter name="prikaz">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupenumerations" file="core-des.tex">
+ <cd:sequence>
+ <cd:string value="nastavvycty"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="nastavpopisy" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineenumeration" file="core-des.tex">
+ <cd:sequence>
+ <cd:string value="definujvycet"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="nastavvycty" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="enumeration" generated="yes" file="core-des.tex">
+ <cd:sequence>
+ <cd:variable value="vycet"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:nothing n="1" interactive="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="enumeration" type="environment" generated="yes" file="core-des.tex">
+ <cd:sequence>
+ <cd:variable value="vycet"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="definedescription" file="core-des.tex">
+ <cd:sequence>
+ <cd:string value="definujpopis"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="nastavpopisy" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="description" generated="yes" file="core-des.tex">
+ <cd:sequence>
+ <cd:variable value="popis"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:nothing n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="description" type="environment" generated="yes" file="core-des.tex">
+ <cd:sequence>
+ <cd:variable value="popis"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupindentations" file="core-des.tex">
+ <cd:sequence>
+ <cd:string value="nastavodsazeni"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="pismeno">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="stylhlavicky">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="sirka">
+ <cd:constant type="prizpusobive"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="text">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="vzor">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="pred">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="po">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="vzdalenost">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="oddelovac">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineindenting" file="core-des.tex">
+ <cd:sequence>
+ <cd:string value="definujodsazovani"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="nastavodsazeni" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="indentation" generated="yes" file="core-spa.tex">
+ <cd:sequence>
+ <cd:variable value="indentation"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:nothing n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definelabel" file="core-des.tex">
+ <cd:sequence>
+ <cd:string value="definujpopisek"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="text">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="misto">
+ <cd:constant type="naokraji"/>
+ <cd:constant type="dotextu"/>
+ </cd:parameter>
+ <cd:parameter name="zpusob">
+ <cd:constant type="bytext"/>
+ <cd:constant type="bycd:section"/>
+ </cd:parameter>
+ <cd:parameter name="dobloku">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ <cd:parameter name="stylhlavicky">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="barvahlavicky">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="pred">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="po">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="labeling" generated="yes" file="core-des.tex">
+ <cd:sequence>
+ <cd:variable value="labeling"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcolumns" file="page-mul.tex">
+ <cd:sequence>
+ <cd:string value="nastavsloupce"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes"> <!-- no idea why it is optional -->
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="nvrsek">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="linka">
+ <cd:constant type="zap"/>
+ <cd:constant type="vyp"/> <!-- default and unknown missing -->
+ </cd:parameter>
+ <cd:parameter name="vyska">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="tolerance">
+ <cd:constant type="velmistriktni"/>
+ <cd:constant type="striktni"/>
+ <cd:constant type="tolerantni"/>
+ <cd:constant type="velmitolerantni"/>
+ <cd:constant type="natahnout"/>
+ </cd:parameter>
+ <cd:parameter name="vzdalenost">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rovnovaha">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ <cd:parameter name="zarovnani">
+ <cd:constant type="text"/>
+ <!-- cd:constant type="yes"/ -->
+ <!-- cd:constant type="no"/ -->
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="prazdny">
+ <cd:constant type="fixne"/>
+ <cd:constant type="pulradku"/>
+ <cd:constant type="radek"/>
+ <cd:constant type="prizpusobive"/>
+ <cd:constant type="velke"/>
+ <cd:constant type="stredni"/>
+ <cd:constant type="male"/>
+ </cd:parameter>
+ <cd:parameter name="volba">
+ <cd:constant type="pozadi"/>
+ </cd:parameter>
+ <cd:parameter name="smer">
+ <cd:constant type="vlevo"/>
+ <cd:constant type="vpravo"/>
+ </cd:parameter>
+ <cd:inherit name="nastavoramovani" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="columns" type="environment" file="page-mul.tex">
+ <cd:sequence>
+ <cd:string value="columns"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="nastavsloupce" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definetext" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="definujtext"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="zahlavi"/>
+ <cd:constant type="upati"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:keywords n="4" optional="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:keywords n="5" optional="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupheader" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="nastavzahlavi"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:text" default="yes"/>
+ <cd:constant type="marginalie"/>
+ <cd:constant type="hrana"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="status">
+ <cd:constant type="normalni"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="start"/>
+ <cd:constant type="prazdne"/>
+ <cd:constant type="vysoko"/>
+ <cd:constant type="zadny"/>
+ <cd:constant type="zadneznaceni"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="strut">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ <cd:parameter name="pismeno">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="stylvlevo">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="stylvpravo">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="sirkavlevo">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="sirkavpravo">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="pred">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="po">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfooter" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="nastavupati"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:inherit name="nastavzahlavi" n="1"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="nastavzahlavi" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptext" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="nastavtext"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:inherit name="nastavzahlavi" n="1"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="nastavzahlavi" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptop" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="nastavhorejsek"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:inherit name="nastavzahlavi" n="1"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="nastavzahlavi" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbottom" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="nastavspodek"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:inherit name="nastavzahlavi" n="1"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="nastavzahlavi" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="noheaderandfooterlines" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="zadnezahlaviaupati"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="notopandbottomlines" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="zadnehorniadolniradky"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupheadertexts" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="nastavtextyzahlavi"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:resolve name="layout-h"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfootertexts" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="nastavtextyupati"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:resolve name="layout-h"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptexttexts" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="nastavtexttexty"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:resolve name="layout-h"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptoptexts" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="nastavhornitexty"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:resolve name="layout-h"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbottomtexts" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="nastavdolnitexty"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:resolve name="layout-h"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="settextcontent" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="settextcontent"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:resolve name="layout-v"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:resolve name="layout-h"/>
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ <cd:keywords n="4" optional="yes">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ <cd:keywords n="5" optional="yes">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="resettextcontent" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="resettextcontent"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:resolve name="layout-v"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:resolve name="layout-h"/>
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes">
+ <cd:constant type="lefttext"/>
+ <cd:constant type="middletext"/>
+ <cd:constant type="righttext"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definemarking" file="core-mar.tex">
+ <cd:sequence>
+ <cd:string value="definujznaceni"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="couplemarking" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="propojeneznaceni"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="decouplemarking" file="core-mar.tex">
+ <cd:sequence>
+ <cd:string value="rozpojeneznaceni"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="resetmarking" file="core-mar.tex">
+ <cd:sequence>
+ <cd:string value="resetznaceni"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupmarking" file="core-mar.tex">
+ <cd:sequence>
+ <cd:string value="nastavznaceni"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2">
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="oddelovac">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="expanzen">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="marking" file="core-mar.tex">
+ <cd:sequence>
+ <cd:string value="znaceni"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getmarking" file="core-mar.tex">
+ <cd:sequence>
+ <cd:string value="ziskejznaceni"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="prvni"/>
+ <cd:constant type="posledni"/>
+ <cd:constant type="predchozi"/>
+ <cd:constant type="obe"/>
+ <cd:constant type="vse"/>
+ <cd:constant type="aktualni"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nomarking" file="core-mar.tex">
+ <cd:sequence>
+ <cd:string value="zadneznaceni"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplayout" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="nastavvzhled"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="sirka">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="prizpusobive"/>
+ <cd:constant type="nastred"/>
+ </cd:parameter>
+ <cd:parameter name="vyska">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="prizpusobive"/>
+ <cd:constant type="nastred"/>
+ </cd:parameter>
+ <cd:parameter name="zpetnamezera">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="svrchnimezera">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="marginalie">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="levyokraj">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="pravyokraj">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="zahlavi">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="upati">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="vrsek">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="spodek">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="levahrana">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="pravahrana">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="vzdalenostzahlavi">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="vzdalenostupati">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="vzdalenostvrsku">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="vzdalenostspodku">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="vzdalenostlevehookraje">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="vzdalenostpravehookraje">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="vzdalenostlevehrany">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="vzdalenostpravehrany">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="horoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="offsethlavicky">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="pismeno">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="barva">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="znaceni">
+ <cd:constant type="zap"/>
+ <cd:constant type="vyp"/>
+ <cd:constant type="barevne"/>
+ <cd:constant type="rastr"/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="stranka"/>
+ </cd:parameter>
+ <cd:parameter name="misto">
+ <cd:constant type="vlevo"/>
+ <cd:constant type="nastred"/>
+ <cd:constant type="vpravo"/>
+ <cd:constant type="spodek"/>
+ <cd:constant type="vrsek"/>
+ <cd:constant type="jednostranne"/>
+ <cd:constant type="dvoustranny"/>
+ </cd:parameter>
+ <cd:parameter name="meritko">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="nx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ny">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="dx">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="dy">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="radky">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="sloupce">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="vzdalenostsloupcu">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="mrizka">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ <cd:parameter name="bottomspace">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="cutspace">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="textdistance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="sirkatextu">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="textmargin">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="clipoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="stranka">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="papir">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="adaptlayout" file="page-lay.tex">
+ <cd:sequence>
+ <cd:string value="prizpusobvzhled"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="vyska">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="max"/>
+ </cd:parameter>
+ <cd:parameter name="radky">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showgrid" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="ukazmrizku"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="reset"/>
+ <cd:constant type="vrsek"/>
+ <cd:constant type="spodek"/>
+ <cd:constant type="zadny"/>
+ <cd:constant type="vse"/>
+ <cd:constant type="radky"/>
+ <cd:constant type="ramecek"/>
+ <cd:constant type="nonumber"/>
+ <cd:constant type="vpravo"/>
+ <cd:constant type="vlevo"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placeongrid" file="core-grd.tex">
+ <cd:sequence>
+ <cd:string value="umistinamrizku"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:inherit name="premistinamrizku" n="1"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="moveongrid" file="core-grd.tex">
+ <cd:sequence>
+ <cd:string value="premistinamrizku"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="standardni" default="yes"/> <!-- also 'normal', 'yes' and 'force' -->
+ <cd:constant type="vrsek"/>
+ <cd:constant type="obe"/>
+ <cd:constant type="spodek"/>
+ <cd:constant type="-top"/>
+ <cd:constant type="-both"/>
+ <cd:constant type="-bottom"/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="vysoko"/>
+ <cd:constant type="nastred"/>
+ <cd:constant type="nizko"/>
+ <cd:constant type="stranka"/>
+ <cd:constant type="siroky"/>
+ <cd:constant type="prizpusobive"/>
+ <cd:constant type="podlehloubky"/>
+ <cd:constant type="radek"/>
+ <cd:constant type="reset"/>
+ <cd:constant type="zadny"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="project" type="environment" file="core-job.tex">
+ <cd:sequence>
+ <cd:string value="projekt"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:file n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="environment" type="environment" file="core-job.tex">
+ <cd:sequence>
+ <cd:string value="prostredi"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:file n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="product" type="environment" file="core-job.tex">
+ <cd:sequence>
+ <cd:string value="produkt"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:file n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="component" type="environment" file="core-job.tex">
+ <cd:sequence>
+ <cd:string value="komponenta"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:file n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nomorefiles" file="core-job.tex">
+ <cd:sequence>
+ <cd:string value="zadnedalsisoubory"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupinterlinespace" variant="1" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="nastavmeziradkovoumezeru"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="reset"/>
+ <cd:constant type="male" default="yes"/>
+ <cd:constant type="stredni"/>
+ <cd:constant type="auto"/>
+ <cd:constant type="velke"/>
+ <cd:constant type="zap"/>
+ <cd:constant type="vyp"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupinterlinespace2" variant="2" file="core-spa.tex">
+ <!-- attached a 2 to make this definition usable with \showsetup -->
+ <cd:sequence>
+ <cd:string value="nastavmeziradkovoumezeru"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="vyska">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="hloubka">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="radek">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="vrsek">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="spodek">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppagenumbering" file="page-num.tex">
+ <cd:sequence>
+ <cd:string value="nastavcislovanistran"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="alternativa">
+ <cd:constant type="jednostranne"/>
+ <cd:constant type="dvoustranny"/>
+ </cd:parameter>
+ <cd:parameter name="misto">
+ <cd:constant type="zahlavi"/>
+ <cd:constant type="upati"/>
+ <cd:constant type="vlevo"/>
+ <cd:constant type="vpravo"/>
+ <cd:constant type="nastred"/>
+ <cd:constant type="marginalie"/>
+ <cd:constant type="textovahrana"/>
+ <cd:constant type="vlevo"/>
+ <cd:constant type="vpravo"/>
+ </cd:parameter>
+ <cd:parameter name="konverze">
+ <cd:constant type="cisla"/>
+ <cd:constant type="pismena"/>
+ <cd:constant type="Pismena"/>
+ <cd:constant type="rimskecislice"/>
+ <cd:constant type="Rimskecislice"/>
+ </cd:parameter>
+ <cd:parameter name="pismeno">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="vlevo">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="vpravo">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="zpusob">
+ <cd:constant type="bytext"/>
+ <cd:constant type="bycd:section"/>
+ </cd:parameter>
+ <cd:parameter name="text">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="oddelovaccisla">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="oddelovactextu">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="cd:sectionnumber">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ <cd:parameter name="oddelovac">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="strut">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="sirka">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="prikaz">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupnarrower" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="nastavzuzeni"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="vlevo">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="vpravo">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="stredni">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="define" file="syst-ext.tex">
+ <cd:sequence>
+ <cd:string value="definuj"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ <cd:csname n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usecommands" file="core-sys.tex">
+ <cd:sequence>
+ <cd:string value="uzijprikazy"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definestartstop" file="core-sys.tex">
+ <cd:sequence>
+ <cd:string value="definujstartstop"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="pred">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="po">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="pismeno">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="prikazy">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupheads" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="nastavnadpisy"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="cislooddilu">
+ <cd:constant type="ano"/>
+ <cd:constant type="cd:number"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ <cd:parameter name="alternativa">
+ <cd:constant type="normalni"/>
+ <cd:constant type="marginalie"/>
+ <cd:constant type="nastred"/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="odstavec"/>
+ </cd:parameter>
+ <cd:parameter name="oddelovac">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="predel">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="zarovnani">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="zarovnejtitul">
+ <cd:constant type="ano"/>
+ <cd:constant type="plvouciobjekt"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ <cd:parameter name="tolerance">
+ <cd:constant type="velmistriktni"/>
+ <cd:constant type="striktni"/>
+ <cd:constant type="tolerantni"/>
+ <cd:constant type="velmitolerantni"/>
+ <cd:constant type="natahnout"/>
+ </cd:parameter>
+ <cd:parameter name="odsadpristi">
+ <cd:resolve name="indentnext"/>
+ </cd:parameter>
+ <cd:parameter name="prikaz">
+ <cd:constant type="cd:twoarguments"/>
+ </cd:parameter>
+ <cd:parameter name="marginalie">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcaptions" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="nastavpopisky"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="misto">
+ <cd:constant type="vrsek"/>
+ <cd:constant type="spodek"/>
+ <cd:constant type="zadny"/>
+ <cd:constant type="vysoko"/>
+ <cd:constant type="nizko"/>
+ <cd:constant type="nastred"/>
+ <cd:constant type="vlevo"/>
+ <cd:constant type="nastred"/>
+ <cd:constant type="vpravo"/>
+ <cd:constant type="lefthanging"/>
+ <cd:constant type="righthanging"/>
+ <cd:constant type="levyokraj"/>
+ <cd:constant type="pravyokraj"/>
+ <cd:constant type="innermargin"/>
+ <cd:constant type="outermargin"/>
+ </cd:parameter>
+ <cd:parameter name="sirka">
+ <cd:constant type="prizpusobive"/>
+ <cd:constant type="siroky"/>
+ <cd:constant type="max"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="minsirka">
+ <cd:constant type="prizpusobive"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="stylhlavicky">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="pismeno">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="cislo">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ <cd:constant type="zadny"/>
+ </cd:parameter>
+ <cd:parameter name="mezi">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="zarovnani">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="konverze">
+ <cd:constant type="cisla"/>
+ <cd:constant type="pismena"/>
+ <cd:constant type="Pismena"/>
+ <cd:constant type="rimskecislice"/>
+ <cd:constant type="Rimskecislice"/>
+ </cd:parameter>
+ <cd:parameter name="zpusob">
+ <cd:constant type="bytext"/>
+ <cd:constant type="bycd:section"/>
+ </cd:parameter>
+ <cd:parameter name="oddelovac">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="predel">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="prikaz">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="vzdalenost">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcaption" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="nastavpopisek"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="nastavpopisky" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfloats" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="nastavplvouciobjekty"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="misto">
+ <cd:constant type="vlevo"/>
+ <cd:constant type="vpravo"/>
+ <cd:constant type="nastred"/>
+ </cd:parameter>
+ <cd:parameter name="sirka">
+ <cd:constant type="prizpusobive"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="pred">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="po">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="marginalie">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="mezerapred">
+ <cd:constant type="male"/>
+ <cd:constant type="stredni"/>
+ <cd:constant type="velke"/>
+ <cd:constant type="zadny"/>
+ </cd:parameter>
+ <cd:parameter name="mezeraza">
+ <cd:constant type="male"/>
+ <cd:constant type="stredni"/>
+ <cd:constant type="velke"/>
+ <cd:constant type="zadny"/>
+ </cd:parameter>
+ <cd:parameter name="bocnimezerapred">
+ <cd:constant type="male"/>
+ <cd:constant type="stredni"/>
+ <cd:constant type="velke"/>
+ <cd:constant type="zadny"/>
+ </cd:parameter>
+ <cd:parameter name="bocnimezeraza">
+ <cd:constant type="male"/>
+ <cd:constant type="stredni"/>
+ <cd:constant type="velke"/>
+ <cd:constant type="zadny"/>
+ </cd:parameter>
+ <cd:parameter name="odsadpristi">
+ <cd:resolve name="indentnext"/>
+ </cd:parameter>
+ <cd:parameter name="nvrsek">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="nspodek">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="nradky">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="implicitni">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="tolerance">
+ <cd:constant type="0"/>
+ <cd:constant type="1"/>
+ <cd:constant type="2"/>
+ </cd:parameter>
+ <cd:parameter name="vzdalenostlevehookraje">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="vzdalenostpravehookraje">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="sidealign">
+ <cd:constant type="normalni"/>
+ <cd:constant type="radek"/>
+ </cd:parameter>
+ <cd:parameter name="cislovani">
+ <cd:constant type="ano"/>
+ <cd:constant type="nocheck"/>
+ </cd:parameter>
+ <cd:inherit name="nastavoramovani" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfloatsplitting" file="core-tsp.tex">
+ <cd:sequence>
+ <cd:string value="nastavdeleniplvoucichobjektu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="konverze">
+ <cd:constant type="cisla"/>
+ <cd:constant type="pismena"/>
+ <cd:constant type="Pismena"/>
+ <cd:constant type="rimskecislice"/>
+ <cd:constant type="Rimskecislice"/>
+ </cd:parameter>
+ <cd:parameter name="radky">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="splitfloat" file="core-tsp.tex">
+ <cd:sequence>
+ <cd:string value="rozdelplvouciobjekt"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="nastavdeleniplvoucichobjektu" n="1"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupoppositeplacing" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="nastavumisteniprotejsku"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1">
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="pred">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="mezi">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="po">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="opposite" type="environment" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="opposite"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setuphyphenmark" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="nastavdelitko"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1">
+ <cd:parameter name="znak">
+ <cd:constant type="--"/>
+ <cd:constant type="---"/>
+ <cd:constant type="-"/>
+ <cd:constant type="~"/>
+ <cd:constant type="("/>
+ <cd:constant type=")"/>
+ <cd:constant type="="/>
+ <cd:constant type="/"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppositioning" file="page-lyr.tex">
+ <cd:sequence>
+ <cd:string value="nastavumistovani"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="prekryv"/>
+ </cd:parameter>
+ <cd:parameter name="jednotka">
+ <cd:constant type="cm"/>
+ <cd:constant type="pt"/>
+ <cd:constant type="em"/>
+ <cd:constant type="mm"/>
+ <cd:constant type="ex"/>
+ <cd:constant type="es"/>
+ <cd:constant type="in"/>
+ </cd:parameter>
+ <cd:parameter name="faktor">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="meritko">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="offset">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ <cd:parameter name="xkrok">
+ <cd:constant type="absolutni"/>
+ <cd:constant type="relativni"/>
+ </cd:parameter>
+ <cd:parameter name="ykrok">
+ <cd:constant type="absolutni"/>
+ <cd:constant type="relativni"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="positioning" type="environment" file="page-lyr.tex">
+ <cd:sequence>
+ <cd:string value="positioning"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="grid" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="mrizka"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="x">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="y">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="nx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ny">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="dx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="dy">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="xkrok">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ykrok">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="offset">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ <cd:parameter name="faktor">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="meritko">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="jednotka">
+ <cd:constant type="cm"/>
+ <cd:constant type="pt"/>
+ <cd:constant type="em"/>
+ <cd:constant type="mm"/>
+ <cd:constant type="ex"/>
+ <cd:constant type="es"/>
+ <cd:constant type="in"/>
+ </cd:parameter>
+ <cd:parameter name="misto">
+ <cd:constant type="vlevo"/>
+ <cd:constant type="nastred"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="page" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="strana"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="ano" default="yes"/>
+ <cd:constant type="zlom"/>
+ <cd:constant type="ne"/>
+ <cd:constant type="nastaveni"/>
+ <cd:constant type="vysokapriorita"/>
+ <cd:constant type="vlevo"/>
+ <cd:constant type="vpravo"/>
+ <cd:constant type="zablokovat"/>
+ <cd:constant type="posledni"/>
+ <cd:constant type="ctyrnasobny"/>
+ <cd:constant type="sude"/>
+ <cd:constant type="liche"/>
+ <cd:constant type="prazdny"/>
+ <cd:constant type="prazdne"/>
+ <cd:constant type="reset"/>
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupreferencing" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="nastavodkazovani"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="cd:sectionnumber">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ <cd:parameter name="prefix">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="interakce">
+ <cd:constant type="popisek"/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="vse"/>
+ <cd:constant type="symbol"/>
+ </cd:parameter>
+ <cd:parameter name="sirka">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="vlevo">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="vpravo">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="konverzesouboru">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ <cd:constant type="male"/>
+ <cd:constant type="velke"/>
+ </cd:parameter>
+ <cd:parameter name="oddelovac">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="autofile">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ <cd:constant type="stranka"/>
+ </cd:parameter>
+ <cd:parameter name="globalne">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupurl" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="nastavurl"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="pismeno">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="urlalternativa">
+ <cd:constant type="zadny"/>
+ <cd:constant type="obe"/>
+ <cd:constant type="pred"/>
+ <cd:constant type="po"/>
+ </cd:parameter>
+ <cd:parameter name="prostorurl">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="writetoreferencelist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="zapisdoseznamuodkazu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placereferencelist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="placereferencelist"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definereferencelist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="definujseznamodkazu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="nastavseznamodkazu" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupreferencelist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="nastavseznamodkazu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="kriterium">
+ <cd:constant type="cd:section"/>
+ <cd:constant type="lokalne"/>
+ <cd:constant type="predchozi"/>
+ <cd:constant type="vse"/>
+ </cd:parameter>
+ <cd:parameter name="prikaz">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="pred">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="po">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="writetolist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="zapisdoseznamu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:section"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="writebetweenlist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="zapismeziseznam"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:section"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nolist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="zadnyseznam"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="listsymbol" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="listsymbol"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placelist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="umistiseznam"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="nastavseznam" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="determinelistcharacteristics" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="stanovcharakteristickuseznamu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="nastavseznam" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placecombinedlist" variant="1" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="umistikombinovanyseznam"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="nastavkombinovanyseznam" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definelist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="definujseznam"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes"> <!-- inherits from -->
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="nastavseznam" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="nastavseznam"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="alternativa">
+ <cd:constant type="a"/>
+ <cd:constant type="b"/>
+ <cd:constant type="c"/>
+ <cd:constant type="..."/>
+ <cd:constant type="zadny"/>
+ <cd:constant type="prikaz"/>
+ </cd:parameter>
+ <cd:parameter name="propojeni">
+ <cd:constant type="zap"/>
+ <cd:constant type="vyp"/>
+ </cd:parameter>
+ <cd:parameter name="kriterium">
+ <cd:constant type="cd:section"/>
+ <cd:constant type="lokalne"/>
+ <cd:constant type="predchozi"/>
+ <cd:constant type="aktualni"/>
+ <cd:constant type="vse"/>
+ </cd:parameter>
+ <cd:parameter name="hranicestranky">
+ <cd:constant type="cd:list"/>
+ </cd:parameter>
+ <cd:parameter name="pismeno">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="stylcisla">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="styltextu">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="stylstranky">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="barva">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="prikaz">
+ <cd:constant type="cd:threearguments"/>
+ </cd:parameter>
+ <cd:parameter name="ciselnyprikaz">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="textovyprikaz">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="strankovyprikaz">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="interakce">
+ <cd:constant type="cd:sectionnumber"/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="cislostranky"/>
+ <cd:constant type="vse"/>
+ </cd:parameter>
+ <cd:parameter name="pred">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="po">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="mezi">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="vlevo">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="vpravo">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="popisek">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ <cd:parameter name="prefix">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ <cd:constant type="zadny"/>
+ </cd:parameter>
+ <cd:parameter name="cislostranky">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ <cd:parameter name="cislonadpisu">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ <cd:parameter name="cd:sectionnumber">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ <cd:parameter name="zarovnejtitul">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ <cd:parameter name="marginalie">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="sirka">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="prizpusobive"/>
+ </cd:parameter>
+ <cd:parameter name="vyska">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="prizpusobive"/>
+ <cd:constant type="siroky"/>
+ </cd:parameter>
+ <cd:parameter name="hloubka">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="prizpusobive"/>
+ <cd:constant type="siroky"/>
+ </cd:parameter>
+ <cd:parameter name="vzdalenost">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="oddelovac">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="predel">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="symbol">
+ <cd:constant type="zadny"/>
+ <cd:constant type="1"/>
+ <cd:constant type="2"/>
+ <cd:constant type="3"/>
+ <cd:constant type="..."/>
+ </cd:parameter>
+ <cd:parameter name="expanzen">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ <cd:constant type="prikaz"/>
+ </cd:parameter>
+ <cd:parameter name="maxsirka">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:inherit name="nastavoramovani" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplistalternative" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="setuplistalternative"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="no">
+ <cd:constant type="a"/>
+ <cd:constant type="b"/>
+ <cd:constant type="c"/>
+ <!-- cd:constant type="cd:name"/ -->
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="prikaz">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="sirka">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="natahnout">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="vzdalenost">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definecombinedlist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="definujkombinovanyseznam"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="cd:list"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="nastavkombinovanyseznam" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcombinedlist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="nastavkombinovanyseznam"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="uroven">
+ <cd:constant type="1"/>
+ <cd:constant type="2"/>
+ <cd:constant type="3"/>
+ <cd:constant type="4"/>
+ <cd:constant type="cd:section"/>
+ <cd:constant type="aktualni"/>
+ </cd:parameter>
+ <cd:inherit name="nastavseznam" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placecombinedlist" variant="2" generated="yes" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="umisti"/>
+ <cd:variable value="combinedlist"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="nastavkombinovanyseznam" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="completecombinedlist" generated="yes" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="uplny"/>
+ <cd:variable value="combinedlist"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="nastavkombinovanyseznam" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupnumbering" file="core-num.tex">
+ <cd:sequence>
+ <cd:string value="nastavcislovani"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="zpusob">
+ <cd:constant type="bytext"/>
+ <cd:constant type="bycd:section"/>
+ </cd:parameter>
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupformulas" file="core-mat.tex">
+ <cd:sequence>
+ <cd:string value="nastavrovnice"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="misto">
+ <cd:constant type="vlevo"/>
+ <cd:constant type="vpravo"/>
+ </cd:parameter>
+ <cd:parameter name="vlevo">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="vpravo">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="zarovnani">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="volba">
+ <cd:constant type="nastred"/>
+ </cd:parameter>
+ <cd:parameter name="strut">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ <cd:parameter name="vzdalenost">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="marginalie">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="standardni"/>
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ <cd:parameter name="zarovnani">
+ <cd:constant type="flushleft"/>
+ <cd:constant type="flushright"/>
+ <cd:constant type="nastred"/>
+ <cd:constant type="center"/>
+ </cd:parameter>
+ <cd:parameter name="levyokraj">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="pravyokraj">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="odsadpristi">
+ <cd:resolve name="indentnext"/>
+ </cd:parameter>
+ <cd:parameter name="alternativa">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="mezerapred">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="po">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="oddelovac">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="konverze">
+ <cd:constant type="cisla"/>
+ <cd:constant type="pismena"/>
+ <cd:constant type="Pismena"/>
+ <cd:constant type="rimskecislice"/>
+ <cd:constant type="Rimskecislice"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="publication" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="publikace"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppublications" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="nastavpublikace"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="alternativa">
+ <cd:constant type="apa"/>
+ <cd:constant type="normalni"/>
+ </cd:parameter>
+ <cd:inherit name="nastavvycty" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplines" file="page-lin.tex">
+ <cd:sequence>
+ <cd:string value="nastavradky"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="pred">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="po">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="mezi">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="odsazovani">
+ <cd:resolve name="indenting"/>
+ </cd:parameter>
+ <cd:parameter name="mezera">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ <cd:parameter name="volba">
+ <cd:constant type="zhustene"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="lines" type="environment">
+ <cd:sequence>
+ <cd:string value="lines"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupparagraphnumbering" file="page-lin.tex">
+ <cd:sequence>
+ <cd:string value="nastavcislovaniodstavcu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="reset"/>
+ <cd:constant type="radek"/>
+ </cd:parameter>
+ <cd:parameter name="pismeno">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="vzdalenost">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplinenumbering" file="page-lin.tex">
+ <cd:sequence>
+ <cd:string value="nastavcislovaniradku"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="konverze">
+ <cd:constant type="cisla"/>
+ <cd:constant type="pismena"/>
+ <cd:constant type="Pismena"/>
+ <cd:constant type="rimskecislice"/>
+ <cd:constant type="Rimskecislice"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="start">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="krok">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="sirka">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="misto">
+ <cd:constant type="dotextu"/>
+ <cd:constant type="naokraji"/>
+ </cd:parameter>
+ <cd:parameter name="pismeno">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="prefix">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="odkazujici">
+ <cd:constant type="zap"/>
+ <cd:constant type="vyp"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="linenumbering" type="environment" file="page-lin.tex"> <!-- mkii/mkiv -->
+ <cd:sequence>
+ <cd:string value="linenumbering"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="pokracovat"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="line" type="environment">
+ <cd:sequence>
+ <cd:string value="line"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="someline" file="page-lin.tex">
+ <cd:sequence>
+ <cd:string value="nejakyradek"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inline" file="page-lin.tex">
+ <cd:sequence>
+ <cd:string value="vradku"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupinmargin" file="page-mar.tex">
+ <cd:sequence>
+ <cd:string value="nastavmarginalie"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="vlevo"/>
+ <cd:constant type="vpravo"/>
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="misto">
+ <cd:constant type="vlevo"/>
+ <cd:constant type="vpravo"/>
+ <cd:constant type="obe"/>
+ </cd:parameter>
+ <cd:parameter name="pismeno">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="pred">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="po">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="zarovnani">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="radek">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="vzdalenost">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="oddelovac">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="sirka">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="vzdalenost">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="stack">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ <cd:inherit name="nastavoramovani" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppagenumber" file="page-num.tex">
+ <cd:sequence>
+ <cd:string value="nastavcislostrany"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="cislo">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="drzet"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsubpagenumber" file="page-num.tex">
+ <cd:sequence>
+ <cd:string value="nastavpodcislostrany"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="zpusob">
+ <cd:constant type="bytext"/>
+ <cd:constant type="bycd:section"/>
+ </cd:parameter>
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="zadny"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupblank" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="nastavpreskok"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="normalni" default="yes"/>
+ <cd:constant type="implicitni"/>
+ <cd:constant type="standardni"/>
+ <cd:constant type="radek"/>
+ <cd:constant type="pulradku"/>
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="velke"/>
+ <cd:constant type="stredni"/>
+ <cd:constant type="male"/>
+ <cd:constant type="fixne"/>
+ <cd:constant type="prizpusobive"/>
+ <cd:constant type="globalne"/>
+ <cd:constant type="neznamy"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineblank" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="definujpreskok"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:inherit name="nastavpreskok" n="1"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definepapersize" file="page-lay.tex">
+ <cd:sequence>
+ <cd:string value="definujvelikostpapiru"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="sirka">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="vyska">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="offset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="meritko">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppaper" file="page-lay.tex">
+ <cd:sequence>
+ <cd:string value="setuppaper"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="papir">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="stranka">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="nx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ny">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="sirka">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="vyska">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="svrchnimezera">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="zpetnamezera">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="volba">
+ <cd:constant type="max"/>
+ <cd:constant type="prizpusobive"/>
+ </cd:parameter>
+ <cd:parameter name="metoda">
+ <cd:constant type="normalni"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppapersize" file="page-lay.tex">
+ <cd:sequence>
+ <cd:string value="nastavvelikostpapiru"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="A3"/>
+ <cd:constant type="A4" default="yes"/>
+ <cd:constant type="A5"/>
+ <cd:constant type="A6"/>
+ <cd:constant type="letter"/>
+ <cd:constant type="..."/>
+ <cd:constant type="CD"/>
+ <cd:constant type="cd:name"/>
+ <cd:constant type="nasirku"/>
+ <cd:constant type="zrcadleno"/>
+ <cd:constant type="otoceno"/>
+ <cd:constant type="90"/>
+ <cd:constant type="180"/>
+ <cd:constant type="270"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="negativ"/>
+ <cd:inherit name="nastavvelikostpapiru" n="1"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuparranging" file="page-imp.tex">
+ <cd:sequence>
+ <cd:string value="nastavusporadani"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="zablokovat"/>
+ <cd:constant type="2*16"/>
+ <cd:constant type="2*8"/>
+ <cd:constant type="2*4"/>
+ <cd:constant type="2*2"/>
+ <cd:constant type="2**2"/>
+ <cd:constant type="2*2*4"/>
+ <cd:constant type="2*4*2"/>
+ <cd:constant type="2UP"/>
+ <cd:constant type="2DOWN"/>
+ <cd:constant type="2SIDE"/>
+ <cd:constant type="2TOP"/>
+ <cd:constant type="zrcadleno"/>
+ <cd:constant type="otoceno"/>
+ <cd:constant type="dvoustranny"/>
+ <cd:constant type="negativ"/>
+ <cd:constant type="pozadi"/>
+ <cd:constant type="90"/>
+ <cd:constant type="180"/>
+ <cd:constant type="270"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showprint" file="page-run.tex"> <!-- page-lay.tex -->
+ <cd:sequence>
+ <cd:string value="ukazvytisk"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:inherit name="nastavvelikostpapiru" n="1"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:inherit name="nastavvelikostpapiru" n="2"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:inherit name="nastavvzhled" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definelogo" file="page-log.tex">
+ <cd:sequence>
+ <cd:string value="definujlogo"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="vrsek"/>
+ <cd:constant type="zahlavi"/>
+ <cd:constant type="upati"/>
+ <cd:constant type="spodek"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:constant type="zadny"/>
+ <cd:constant type="stranka"/>
+ <cd:constant type="levahrana"/>
+ <cd:constant type="levyokraj"/>
+ <cd:constant type="vlevo"/>
+ <cd:constant type="nastred"/>
+ <cd:constant type="vpravo"/>
+ <cd:constant type="pravyokraj"/>
+ <cd:constant type="pravahrana"/>
+ </cd:keywords>
+ <cd:assignments n="4" list="yes">
+ <cd:parameter name="prikaz">
+ <cd:constant type="cd:command"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placelogos" file="page-log.tex">
+ <cd:sequence>
+ <cd:string value="umistiloga"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupwhitespace">
+ <cd:sequence>
+ <cd:string value="nastavbilamista"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="zadny" default="yes"/>
+ <cd:constant type="male"/>
+ <cd:constant type="stredni"/>
+ <cd:constant type="velke"/>
+ <cd:constant type="radek"/>
+ <cd:constant type="fixne"/>
+ <cd:constant type="fixuj"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupindenting">
+ <cd:sequence>
+ <cd:string value="nastavodsazovani"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:resolve name="indenting"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definesectionblock" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="definujbloksekce"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:inherit name="nastavbloksekce" n="1"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="nastavbloksekce" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsectionblock" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="nastavbloksekce"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="cislo">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ <cd:parameter name="stranka">
+ <cd:constant type="ano"/>
+ <cd:constant type="vpravo"/>
+ </cd:parameter>
+ <cd:parameter name="pred">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="po">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definesection" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="definujsekci"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsection" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="nastavsekci"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:parameter name="konverze">
+ <cd:constant type="cisla"/>
+ <cd:constant type="pismena"/>
+ <cd:constant type="Pismena"/>
+ <cd:constant type="rimskecislice"/>
+ <cd:constant type="Rimskecislice"/>
+ </cd:parameter>
+ <cd:parameter name="predchozicislo">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuphead" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="nastavnadpis"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:section"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="pismeno">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="styltextu">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="stylcisla">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="barva">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="barvatextu">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="barvacisla">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="cislo">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ <cd:parameter name="vlastnicislo">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ <cd:parameter name="stranka">
+ <cd:constant type="vlevo"/>
+ <cd:constant type="vpravo"/>
+ <cd:constant type="ano"/>
+ </cd:parameter>
+ <cd:parameter name="pokracovat">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ <cd:parameter name="zahlavi">
+ <cd:constant type="zadny"/>
+ <cd:constant type="prazdne"/>
+ <cd:constant type="vysoko"/>
+ <cd:constant type="zadneznaceni"/>
+ </cd:parameter>
+ <cd:parameter name="text">
+ <cd:constant type="zadny"/>
+ <cd:constant type="prazdne"/>
+ <cd:constant type="vysoko"/>
+ <cd:constant type="zadneznaceni"/>
+ </cd:parameter>
+ <cd:parameter name="upati">
+ <cd:constant type="zadny"/>
+ <cd:constant type="prazdne"/>
+ <cd:constant type="vysoko"/>
+ <cd:constant type="zadneznaceni"/>
+ </cd:parameter>
+ <cd:parameter name="pred">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="mezi">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="po">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="alternativa">
+ <cd:constant type="normalni"/>
+ <cd:constant type="naokraji"/>
+ <cd:constant type="nastred"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="zaveseni">
+ <cd:constant type="zadny"/>
+ <cd:constant type="siroky"/>
+ <cd:constant type="prizpusobive"/>
+ <cd:constant type="radek"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="prikaz">
+ <cd:constant type="cd:twoarguments"/>
+ </cd:parameter>
+ <cd:parameter name="ciselnyprikaz">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="textovyprikaz">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="deepnumbercommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="deeptextcommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="prefix">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="umistihlavicku">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ <cd:constant type="prazdne"/>
+ </cd:parameter>
+ <cd:parameter name="zvysujicicislo">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ <cd:constant type="cd:list"/>
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="resetnumber">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ <cd:parameter name="soubor">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="expanzen">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ <cd:constant type="prikaz"/>
+ </cd:parameter>
+ <cd:parameter name="textmarginalie">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ <cd:inherit name="nastavnadpisy" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupheadnumber" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="nastavcislonadpisu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:section"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="+cd:number"/>
+ <cd:constant type="-cd:number"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="headnumber">
+ <cd:sequence>
+ <cd:string value="cislonadpisu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:section"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="determineheadnumber" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="stanovcislonadpisu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:section"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="currentheadnumber" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="aktualnicislonadpisu"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="nextsection" generated="yes" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="dalsi"/>
+ <cd:variable value="sekce"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="definehead" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="definujnadpis"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:section"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupitemgroup" file="core-itm.tex">
+ <cd:sequence>
+ <cd:string value="setupitemgroup"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="kazdy"/>
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes" list="yes">
+ <cd:constant type="standardni" default="yes"/>
+ <cd:constant type="siroky"/>
+ <cd:constant type="semknuto"/>
+ <cd:constant type="zhustene"/>
+ <cd:constant type="rozbalene"/>
+ <cd:constant type="zadnabila"/>
+ <cd:constant type="pred"/>
+ <cd:constant type="po"/>
+ <cd:constant type="predel"/>
+ <cd:constant type="spojeno"/>
+ <cd:constant type="naokraji"/>
+ <cd:constant type="naokraji"/>
+ <cd:constant type="autouvod"/>
+ <cd:constant type="uvolnene"/>
+ <cd:constant type="opakovat"/>
+ <cd:constant type="cd:section"/>
+ <cd:constant type="odstavec"/>
+ <cd:constant type="dotextu"/>
+ <cd:constant type="nahodny"/>
+ <cd:constant type="reverse"/>
+ </cd:keywords>
+ <cd:assignments n="4" optional="yes" list="yes">
+ <cd:parameter name="marginalie">
+ <cd:constant type="ne"/>
+ <cd:constant type="standardni"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="levyokraj">
+ <cd:constant type="ne"/>
+ <cd:constant type="standardni"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="pravyokraj">
+ <cd:constant type="ne"/>
+ <cd:constant type="standardni"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="sirka">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="vzdalenost">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="faktor">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="polozky">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="start">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="pred">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="mezi">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="po">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="vlevo">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="vpravo">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="predhlavickou">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="pohlavicce">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="stylhlavicky">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="stylsnacky">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="stylsymboly">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="predel">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="symbol">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="zarovnani">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="symzarovnani">
+ <cd:resolve name="symalign"/>
+ </cd:parameter>
+ <cd:parameter name="odsadpristi">
+ <cd:resolve name="indentnext"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="itemgroup" type="environment" generated="yes" file="core-itm.tex">
+ <cd:sequence>
+ <cd:variable value="itemgroup"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="a"/>
+ <cd:constant type="A"/>
+ <cd:constant type="KA"/>
+ <cd:constant type="n"/>
+ <cd:constant type="N"/>
+ <cd:constant type="m"/>
+ <cd:constant type="r"/>
+ <cd:constant type="R"/>
+ <cd:constant type="KR"/>
+ <cd:constant type="cd:number"/>
+ <cd:constant type="pokracovat"/>
+ <cd:constant type="standardni" default="yes"/>
+ <cd:constant type="siroky"/>
+ <cd:constant type="semknuto"/>
+ <cd:constant type="zhustene"/>
+ <cd:constant type="predel"/>
+ <cd:constant type="spojeno"/>
+ <cd:constant type="naokraji"/>
+ <cd:constant type="naokraji"/>
+ <cd:constant type="uvod"/>
+ <cd:constant type="sloupce"/>
+ <cd:constant type="text"/>
+ <cd:constant type="odstavec"/>
+ <cd:constant type="opakovat"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="setupitemgroup" n="4"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="item" file="core-itm.tex">
+ <cd:sequence>
+ <cd:string value="polozka"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="but">
+ <cd:sequence>
+ <cd:string value="spodek"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" interactive="exclusive"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="its">
+ <cd:sequence>
+ <cd:string value="pol"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ran">
+ <cd:sequence>
+ <cd:string value="ran"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="head">
+ <cd:sequence>
+ <cd:string value="nadpis"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mar">
+ <cd:sequence>
+ <cd:string value="okr"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="sub">
+ <cd:sequence>
+ <cd:string value="sub"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="sym" file="core-itm.tex">
+ <cd:sequence>
+ <cd:string value="sym"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nop">
+ <cd:sequence>
+ <cd:string value="nop"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="defineregister" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="definujrejstrik"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:singular"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:plural"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupregister" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="nastavrejstrik"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:singular"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="rovnovaha">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ <cd:parameter name="zarovnani">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="pismeno">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="stylstranky">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="styltextu">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="indikator">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ <cd:parameter name="propojeni">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ <cd:parameter name="cd:sectionnumber">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ <cd:parameter name="kriterium">
+ <cd:constant type="cd:section"/>
+ <cd:constant type="lokalne"/>
+ <cd:constant type="vse"/>
+ </cd:parameter>
+ <cd:parameter name="vzdalenost">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="symbol">
+ <cd:constant type="1"/>
+ <cd:constant type="2"/>
+ <cd:constant type="..."/>
+ <cd:constant type="n"/>
+ <cd:constant type="a"/>
+ <cd:constant type="..."/>
+ <cd:constant type="zadny"/>
+ </cd:parameter>
+ <cd:parameter name="interakce">
+ <cd:constant type="cislostranky"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="expanzen">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ <cd:constant type="prikaz"/>
+ </cd:parameter>
+ <cd:parameter name="odkazujici">
+ <cd:constant type="zap"/>
+ <cd:constant type="vyp"/>
+ </cd:parameter>
+ <cd:parameter name="prikaz">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="misto">
+ <cd:constant type="vlevo"/>
+ <cd:constant type="nastred"/>
+ <cd:constant type="vpravo"/>
+ </cd:parameter>
+ <cd:parameter name="maxsirka">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="neznamyodkaz">
+ <cd:constant type="prazdne"/>
+ <cd:constant type="zadny"/>
+ </cd:parameter>
+ <cd:parameter name="alternativa">
+ <cd:constant type="a"/>
+ <cd:constant type="b"/>
+ <cd:constant type="A"/>
+ <cd:constant type="B"/>
+ </cd:parameter>
+ <cd:parameter name="prefix">
+ <cd:constant type="obe"/>
+ <cd:constant type="prvni"/>
+ <cd:constant type="zadny"/>
+ </cd:parameter>
+ <cd:parameter name="compress">
+ <cd:constant type="ne"/>
+ <cd:constant type="ano"/>
+ </cd:parameter>
+ <cd:parameter name="deeptextcommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="register" generated="yes" file="core-reg.tex">
+ <cd:sequence>
+ <cd:variable value="rejstrik"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:index n="2" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="startregister" generated="yes" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="start"/>
+ <cd:variable value="rejstrik"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:index n="2" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="writetoregister" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="zapisdorejstriku"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:singular"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:index n="3" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="coupledregister" generated="yes">
+ <cd:sequence>
+ <cd:string value="propojene"/>
+ <cd:variable value="rejstrik"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:index n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="coupleregister" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="propojenyrejstrik"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placeregister" variant="1" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="umistirejstrik"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="nastavrejstrik" n="3"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="seeregister" generated="yes">
+ <cd:sequence>
+ <cd:string value="viz"/>
+ <cd:variable value="rejstrik"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ <cd:index n="3" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="completeregister" generated="yes" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="uplny"/>
+ <cd:variable value="rejstrik"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="yes" optional="yes" list="yes">
+ <cd:inherit name="nastavrejstrik" n="3"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placeregister" variant="2" generated="yes" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="umisti"/>
+ <cd:variable value="rejstrik"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="yes" optional="yes" list="yes">
+ <cd:inherit name="nastavrejstrik" n="3"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definesynonyms" file="core-syn.tex">
+ <cd:sequence>
+ <cd:string value="definujsynonyma"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:singular"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:plural"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:constant type="cd:command"/>
+ </cd:keywords>
+ <cd:keywords n="4" optional="yes">
+ <cd:constant type="cd:command"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsynonyms" file="core-syn.tex">
+ <cd:sequence>
+ <cd:string value="nastavsynonyma"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="styltextu">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="stylsynonyma">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="misto">
+ <cd:constant type="vlevo"/>
+ <cd:constant type="vpravo"/>
+ <cd:constant type="vrsek"/>
+ <cd:constant type="semknuto"/>
+ <cd:constant type="naokraji"/>
+ <cd:constant type="vlevo"/>
+ <cd:constant type="vpravo"/>
+ </cd:parameter>
+ <cd:parameter name="sirka">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="kriterium">
+ <cd:constant type="vse"/>
+ <cd:constant type="uzito"/>
+ </cd:parameter>
+ <cd:parameter name="konverze">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ <cd:parameter name="expanzen">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ <cd:constant type="prikaz"/>
+ </cd:parameter>
+ <cd:parameter name="prikaz">
+ <cd:constant type="cd:threearguments"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="synonym" generated="yes">
+ <cd:sequence>
+ <cd:variable value="synonym"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="completelistofsynonyms" generated="yes">
+ <cd:sequence>
+ <cd:string value="completelistof"/>
+ <cd:variable value="synonyms"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="placelistofsynonyms" generated="yes">
+ <cd:sequence>
+ <cd:string value="placelistof"/>
+ <cd:variable value="synonyms"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="loadsynonyms" generated="yes">
+ <cd:sequence>
+ <cd:string value="nacist"/>
+ <cd:variable value="synonyms"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="definesorting" file="core-syn.tex">
+ <cd:sequence>
+ <cd:string value="definujtrideni"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:singular"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:plural"/>
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes">
+ <cd:constant type="cd:command"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsorting" file="core-syn.tex">
+ <cd:sequence>
+ <cd:string value="nastavtrideni"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="pred">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="po">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="prikaz">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="kriterium">
+ <cd:constant type="vse"/>
+ <cd:constant type="uzito"/>
+ </cd:parameter>
+ <cd:parameter name="pismeno">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="expanzen">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ <cd:constant type="prikaz"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="sort" generated="yes">
+ <cd:sequence>
+ <cd:variable value="sort"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="completelistofsorts" generated="yes">
+ <cd:sequence>
+ <cd:string value="completelistof"/>
+ <cd:variable value="sorts"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="placelistofsorts" generated="yes">
+ <cd:sequence>
+ <cd:string value="placelistof"/>
+ <cd:variable value="sorts"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="loadsorts" generated="yes">
+ <cd:sequence>
+ <cd:string value="nacist"/>
+ <cd:variable value="sorts"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="definemakeup" file="page-mak.tex">
+ <cd:sequence>
+ <cd:string value="definujupravu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="nastavupravu" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="makeup" type="environment">
+ <cd:sequence>
+ <cd:string value="zlom"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="nastavupravu" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupmakeup" file="page-mak.tex">
+ <cd:sequence>
+ <cd:string value="nastavupravu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="sirka">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="vyska">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="voffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="hoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="stranka">
+ <cd:constant type="vlevo"/>
+ <cd:constant type="ano"/>
+ <cd:constant type="vpravo"/>
+ </cd:parameter>
+ <cd:parameter name="prikazy">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="oboustranne">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ <cd:constant type="prazdne"/>
+ </cd:parameter>
+ <cd:parameter name="statuszahlavi">
+ <cd:constant type="normalni"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="start"/>
+ <cd:constant type="prazdne"/>
+ <cd:constant type="zadny"/>
+ <cd:constant type="zadneznaceni"/>
+ </cd:parameter>
+ <cd:parameter name="statusupati">
+ <cd:constant type="normalni"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="start"/>
+ <cd:constant type="prazdne"/>
+ <cd:constant type="zadny"/>
+ <cd:constant type="zadneznaceni"/>
+ </cd:parameter>
+ <cd:parameter name="statustextu">
+ <cd:constant type="normalni"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="start"/>
+ <cd:constant type="prazdne"/>
+ <cd:constant type="zadny"/>
+ <cd:constant type="zadneznaceni"/>
+ </cd:parameter>
+ <cd:parameter name="statusvrsku">
+ <cd:constant type="stop"/>
+ <cd:constant type="start"/>
+ </cd:parameter>
+ <cd:parameter name="statusspodku">
+ <cd:constant type="stop"/>
+ <cd:constant type="start"/>
+ </cd:parameter>
+ <cd:parameter name="pagestate">
+ <cd:constant type="stop"/>
+ <cd:constant type="start"/>
+ </cd:parameter>
+ <cd:parameter name="barva">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="namemakeup" type="environment" generated="yes">
+ <cd:sequence>
+ <cd:variable value="jmeno"/>
+ <cd:string value="zlom"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="version">
+ <cd:sequence>
+ <cd:string value="verze"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="finalni" default="yes"/>
+ <cd:constant type="koncept"/>
+ <cd:constant type="docasne"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="currentdate">
+ <cd:sequence>
+ <cd:string value="aktualnidatum"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:inherit name="datum" n="2"/> <!-- or vice versa :) -->
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="date" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="datum"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes"> <!-- if not given, current date is used -->
+ <cd:parameter name="d">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="m">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="y">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="den"/>
+ <cd:constant type="mesic"/>
+ <cd:constant type="rok"/>
+ <cd:constant type="vsedniden"/>
+ <cd:constant type="d"/>
+ <cd:constant type="m"/>
+ <cd:constant type="y"/> <!-- also j -->
+ <cd:constant type="w"/>
+ <cd:constant type="dd"/>
+ <cd:constant type="mm"/>
+ <cd:constant type="yy"/> <!-- also jj -->
+ <cd:constant type="mezera"/>
+ <cd:constant type="--"/>
+ <cd:constant type="day+"/>
+ <cd:constant type="d+"/>
+ <cd:constant type="dd+"/>
+ <cd:constant type="znacka"/>
+ <cd:constant type="cd:text"/> <!-- any other text -->
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="referraldate" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="odkaznadatum"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="indenting" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="odsazovani"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:resolve name="indenting"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="noindenting" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="zadneodsazovani"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="blank" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="preskoc"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="male"/>
+ <cd:constant type="stredni"/>
+ <cd:constant type="velke" default="yes"/>
+ <cd:constant type="zadnabila"/>
+ <cd:constant type="zpet"/>
+ <cd:constant type="bily"/>
+ <cd:constant type="zablokovat"/>
+ <cd:constant type="sila"/>
+ <cd:constant type="reset"/>
+ <cd:constant type="radek"/>
+ <cd:constant type="pulradku"/>
+ <cd:constant type="cd:formula"/>
+ <cd:constant type="fixne"/>
+ <cd:constant type="prizpusobive"/>
+ <cd:constant type="zadny"/>
+ <cd:constant type="vzdy"/>
+ <cd:constant type="vnejsi"/>
+ <cd:constant type="spojeno"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="packed" type="environment" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="zhustene"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="prazdny"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="unpacked" type="environment">
+ <cd:sequence>
+ <cd:string value="unpacked"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="linecorrection" type="environment">
+ <cd:sequence>
+ <cd:string value="linecorrection"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="correctwhitespace" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="korekcebilehomista"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="postponing" type="environment">
+ <cd:sequence>
+ <cd:string value="postponing"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="local" type="environment">
+ <cd:sequence>
+ <cd:string value="lokalne"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="narrower" type="environment">
+ <cd:sequence>
+ <cd:string value="narrower"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="vlevo"/>
+ <cd:constant type="nastred" default="yes"/>
+ <cd:constant type="vpravo"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="hiding" type="environment">
+ <cd:sequence>
+ <cd:string value="hiding"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupalign" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="nastavzarovnani"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="sirka"/>
+ <cd:constant type="vlevo"/>
+ <cd:constant type="vpravo"/>
+ <cd:constant type="nastred"/>
+ <cd:constant type="uvnitr"/>
+ <cd:constant type="vnejsi"/>
+ <cd:constant type="siroce"/>
+ <cd:constant type="siroky"/>
+ <cd:constant type="vyska"/>
+ <cd:constant type="spodek"/>
+ <cd:constant type="radek"/>
+ <cd:constant type="reset"/>
+ <cd:constant type="visici"/>
+ <cd:constant type="nothanging"/>
+ <cd:constant type="hyphenated"/>
+ <cd:constant type="nothyphenated"/>
+ <cd:constant type="lesshyphenation"/>
+ <cd:constant type="morehyphenation"/>
+ <cd:constant type="novy"/>
+ <cd:constant type="old"/>
+ <cd:constant type="normalni"/>
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ <cd:constant type="flushleft"/>
+ <cd:constant type="flushright"/>
+ <cd:constant type="flushouter"/>
+ <cd:constant type="flushinner"/>
+ <cd:constant type="center"/>
+ <cd:constant type="hz"/>
+ <cd:constant type="nohz"/>
+ <cd:constant type="mezerovani"/>
+ <cd:constant type="nospacing"/>
+ <cd:constant type="tolerantni"/>
+ <cd:constant type="velmitolerantni"/>
+ <cd:constant type="natahnout"/>
+ <cd:constant type="lefttoright"/>
+ <cd:constant type="righttoleft"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+
+ <cd:command name="alignment" type="environment" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="alignment"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:inherit name="nastavzarovnani" n="1"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupspacing">
+ <cd:sequence>
+ <cd:string value="nastavradkovani"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="siroky"/>
+ <cd:constant type="zhustene"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptolerance" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="nastavtoleranci"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="horizontalne"/>
+ <cd:constant type="vertikalne"/>
+ <cd:constant type="natahnout"/>
+ <cd:constant type="mezera"/>
+ <cd:constant type="velmistriktni" default="yes"/>
+ <cd:constant type="striktni"/>
+ <cd:constant type="tolerantni"/>
+ <cd:constant type="velmitolerantni"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="pagetype" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="typstrany"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="processpage" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="zpracujstranu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="ano" default="yes"/>
+ <cd:constant type="ne"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="couplepage" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="parovastrana"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="volba">
+ <cd:constant type="dvoustranny"/>
+ </cd:parameter>
+ <cd:parameter name="pred">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="po">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="position" file="page-lyr.tex">
+ <cd:sequence>
+ <cd:string value="pozice"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:position n="1" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupscreens" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="nastavrastr"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="metoda">
+ <cd:constant type="tecka"/>
+ <cd:constant type="linka"/>
+ <cd:constant type="externi"/>
+ </cd:parameter>
+ <cd:parameter name="rozliseni">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="faktor">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="rastr">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbackgrounds" file="page-bck.tex">
+ <cd:sequence>
+ <cd:string value="nastavpozadi"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="vrsek"/>
+ <cd:constant type="zahlavi"/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="upati"/>
+ <cd:constant type="spodek"/>
+ <cd:constant type="stranka"/>
+ <cd:constant type="papir"/>
+ <cd:constant type="levastranka"/>
+ <cd:constant type="pravastranka"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="levahrana"/>
+ <cd:constant type="levyokraj"/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="pravyokraj"/>
+ <cd:constant type="pravahrana"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="cd:repeat"/>
+ </cd:parameter>
+ <cd:inherit name="nastavoramovani" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="buffer" type="environment" generated="yes" file="core-buf.tex">
+ <cd:sequence>
+ <cd:variable value="buffer"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="buffer" type="environment" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="buffer"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getbuffer">
+ <cd:sequence>
+ <cd:string value="ziskejbuffer"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="typebuffer" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="typebuffer"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definebuffer" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="definujbuffer"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbuffer" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="nastavbuffer"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="odstavec">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="pred">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="po">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineblock" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="definujblok"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nomoreblocks" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="zadnedalsibloky"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="hideblocks" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="schovejbloky"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="keepblocks" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="zachovejbloky"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="vse"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useblocks" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="uzijbloky"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="processblocks" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="zpracujbloky"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="bypassblocks" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="bypassblocks"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="forceblocks">
+ <cd:sequence>
+ <cd:string value="forceblocks"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="selectblocks" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="vyberbloky"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes">
+ <cd:parameter name="kriterium">
+ <cd:constant type="vse"/>
+ <cd:constant type="cd:section"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupblock" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="nastavblok"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="pred">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="po">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="vnitrni">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="pismeno">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="soubor">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="formula" type="environment" generated="yes">
+ <cd:sequence>
+ <cd:variable value="rovnice"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="mathematics" file="supp-mat.tex">
+ <cd:sequence>
+ <cd:string value="matematika"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placeformula" file="core-mat.tex">
+ <cd:sequence>
+ <cd:string value="umistirovnici"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2" optional="yes"/>
+ <cd:displaymath n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placesubformula" file="core-mat.tex">
+ <cd:sequence>
+ <cd:string value="umistipodrovnici"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2" optional="yes"/>
+ <cd:displaymath n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placefloat" generated="yes" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="umisti"/>
+ <cd:variable value="plvouciobjekt"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="vlevo"/>
+ <cd:constant type="vpravo"/>
+ <cd:constant type="zde" default="yes"/>
+ <cd:constant type="vrsek"/>
+ <cd:constant type="spodek"/>
+ <cd:constant type="vlevo"/>
+ <cd:constant type="vpravo"/>
+ <cd:constant type="naokraji"/>
+ <cd:constant type="marginalie"/>
+ <cd:constant type="levyokraj"/>
+ <cd:constant type="pravyokraj"/>
+ <cd:constant type="levahrana"/>
+ <cd:constant type="pravahrana"/>
+ <cd:constant type="innermargin"/>
+ <cd:constant type="outermargin"/>
+ <cd:constant type="inneredge"/>
+ <cd:constant type="outeredge"/>
+ <cd:constant type="uvnitr"/>
+ <cd:constant type="vnejsi"/>
+ <cd:constant type="radek"/>
+ <cd:constant type="vysoko"/>
+ <cd:constant type="nizko"/>
+ <cd:constant type="prizpusobive"/>
+ <cd:constant type="stranka"/>
+ <cd:constant type="levastranka"/>
+ <cd:constant type="pravastranka"/>
+ <cd:constant type="naproti"/>
+ <cd:constant type="vzdy"/>
+ <cd:constant type="auto"/>
+ <cd:constant type="sila"/>
+ <cd:constant type="vysoko"/>
+ <cd:constant type="reset"/>
+ <cd:constant type="radek"/>
+ <cd:constant type="vyska"/>
+ <cd:constant type="podlehloubky"/>
+ <cd:constant type="split"/>
+ <cd:constant type="90"/>
+ <cd:constant type="180"/>
+ <cd:constant type="270"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes" list="yes"/>
+ <cd:content n="3"/>
+ <cd:content n="4"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="reservefloat" generated="yes">
+ <cd:sequence>
+ <cd:string value="rezervovat"/>
+ <cd:variable value="plvouciobjekt"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:parameter name="vyska">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="sirka">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="ramecek">
+ <cd:constant type="zap"/>
+ <cd:constant type="vyp"/>
+ </cd:parameter>
+ </cd:assignments>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:reference n="3" optional="yes" list="yes"/>
+ <cd:content n="4"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefloat" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="definujplvouciobjekt"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:singular"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:plural"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfloat" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="nastavplvouciobjekt"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="vyska">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="sirka">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="maxvyska">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="maxsirka">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="minsirka">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="implicitni">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="hranicestranky">
+ <cd:constant type="cd:list"/>
+ </cd:parameter>
+ <cd:parameter name="vzdalenostlevehookraje">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="vzdalenostpravehookraje">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="misto">
+ <cd:constant type="vlevo"/>
+ <cd:constant type="nastred"/>
+ <cd:constant type="vpravo"/>
+ </cd:parameter>
+ <cd:inherit name="nastavoramovani" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="floattext" type="environment" generated="yes">
+ <cd:sequence>
+ <cd:variable value="plvouciobjekt"/>
+ <cd:string value="text"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="vlevo"/>
+ <cd:constant type="vpravo"/>
+ <cd:constant type="vysoko"/>
+ <cd:constant type="nastred"/>
+ <cd:constant type="nizko"/>
+ <cd:constant type="offset"/>
+ <cd:constant type="vysoko"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ <cd:content n="4"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placelistoffloats" generated="yes">
+ <cd:sequence>
+ <cd:string value="placelistof"/>
+ <cd:variable value="floats"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="completelistoffloats" generated="yes">
+ <cd:sequence>
+ <cd:string value="completelistof"/>
+ <cd:variable value="floats"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="referral" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="odkaz"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="bet">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="ken">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="dat">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="van">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="aan">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="ref">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="selectpaper">
+ <cd:sequence>
+ <cd:string value="vyberpapir"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="rodina">
+ <cd:constant type="1"/>
+ <cd:constant type="2"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="couplepaper">
+ <cd:sequence>
+ <cd:string value="dvoustrannypapir"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="chem" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="chem"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fraction" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="zlomek"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="periods" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="tecky"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="items">
+ <cd:sequence>
+ <cd:string value="polozky"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="nastavpolozky" n="1"/>
+ </cd:assignments>
+ <cd:content n="2" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupitems" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="nastavpolozky"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="misto">
+ <cd:constant type="vlevo"/>
+ <cd:constant type="vpravo"/>
+ <cd:constant type="naokraji"/>
+ <cd:constant type="vrsek"/>
+ <cd:constant type="spodek"/>
+ </cd:parameter>
+ <cd:parameter name="symbol">
+ <cd:constant type="1"/>
+ <cd:constant type="2"/>
+ <cd:constant type="..."/>
+ <cd:constant type="n"/>
+ <cd:constant type="a"/>
+ <cd:constant type="..."/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="zadny"/>
+ </cd:parameter>
+ <cd:parameter name="sirka">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="neznamy"/>
+ </cd:parameter>
+ <cd:parameter name="pred">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="mezi">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="zarovnani">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="po">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="quotation" type="environment" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="citace"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="vlevo"/>
+ <cd:constant type="nastred" default="yes"/>
+ <cd:constant type="vpravo"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="quotation" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="citace"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="quote" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="citovat"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupquote" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="nastavcitaci"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="pred">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="po">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="pismeno">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="barva">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="misto">
+ <cd:constant type="cd:text"/>
+ <cd:constant type="marginalie"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineparagraphs" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="definujodstavce"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="linka">
+ <cd:constant type="zap"/>
+ <cd:constant type="vyp"/>
+ </cd:parameter>
+ <cd:parameter name="vyska">
+ <cd:constant type="prizpusobive"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="pred">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="po">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="vnitrni">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="vzdalenost">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="tolerance">
+ <cd:constant type="velmistriktni"/>
+ <cd:constant type="striktni"/>
+ <cd:constant type="tolerantni"/>
+ <cd:constant type="velmitolerantni"/>
+ <cd:constant type="natahnout"/>
+ </cd:parameter>
+ <cd:parameter name="zarovnani">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="paragraph" generated="yes">
+ <cd:sequence>
+ <cd:variable value="odstavec"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="paragraph" type="environment" generated="yes">
+ <cd:sequence>
+ <cd:variable value="odstavec"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupparagraphs" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="nastavodstavce"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="kazdy"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:parameter name="pismeno">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="sirka">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="vyska">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="zarovnani">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="tolerance">
+ <cd:constant type="velmistriktni"/>
+ <cd:constant type="striktni"/>
+ <cd:constant type="tolerantni"/>
+ <cd:constant type="velmitolerantni"/>
+ <cd:constant type="natahnout"/>
+ </cd:parameter>
+ <cd:parameter name="vzdalenost">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="pred">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="po">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="vnitrni">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="prikaz">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="linka">
+ <cd:constant type="zap"/>
+ <cd:constant type="vyp"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptab" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="nastavtab"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="vzor">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="sirka">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="stylhlavicky">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="misto">
+ <cd:constant type="vlevo"/>
+ <cd:constant type="vpravo"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tab">
+ <cd:sequence>
+ <cd:string value="tab"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:nothing n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="document" type="environment">
+ <cd:sequence>
+ <cd:string value="document"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="labels">
+ <cd:sequence>
+ <cd:string value="popisky"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definetabulate" file="core-tbl.tex">
+ <cd:sequence>
+ <cd:string value="definujtabelaci"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tabulate" type="environment" generated="yes">
+ <cd:sequence>
+ <cd:variable value="tabelator"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="nastavexterniobrazy" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptabulate" file="core-tbl.tex">
+ <cd:sequence>
+ <cd:string value="nastavtabelaci"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="jednotka">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="odsazovani">
+ <cd:resolve name="indenting"/>
+ </cd:parameter>
+ <cd:parameter name="pred">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="po">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="vnitrni">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="EQ">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="barvalinky">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="zarovnani">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="tloustkalinky">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="vzdalenost">
+ <cd:constant type="prazdny"/>
+ <cd:constant type="mrizka"/>
+ <cd:constant type="podlehloubky"/>
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="male"/>
+ <cd:constant type="stredni"/>
+ <cd:constant type="velke"/>
+ <cd:constant type="zadny"/>
+ </cd:parameter>
+ <cd:parameter name="zakladnifont">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ <cd:parameter name="linka">
+ <cd:constant type="normalni"/>
+ <cd:constant type="radek"/>
+ </cd:parameter>
+ <cd:parameter name="split">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptables" file="core-tab.tex">
+ <cd:sequence>
+ <cd:string value="nastavtabulky"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="vzdalenost">
+ <cd:constant type="male"/>
+ <cd:constant type="stredni"/>
+ <cd:constant type="velke"/>
+ </cd:parameter>
+ <cd:parameter name="zakladnifont">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ <cd:parameter name="HL">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="male"/>
+ <cd:constant type="stredni"/>
+ <cd:constant type="velke"/>
+ <cd:constant type="zadny"/>
+ </cd:parameter>
+ <cd:parameter name="VL">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="male"/>
+ <cd:constant type="stredni"/>
+ <cd:constant type="velke"/>
+ <cd:constant type="zadny"/>
+ </cd:parameter>
+ <cd:parameter name="hloubka">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="strut"/>
+ </cd:parameter>
+ <cd:parameter name="vyska">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="strut"/>
+ </cd:parameter>
+ <cd:parameter name="tloustkalinky">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="barvalinky">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="zarovnani">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="prikazy">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="zarovnani">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="pozadi">
+ <cd:constant type="rastr"/>
+ <cd:constant type="barevne"/>
+ <cd:constant type="zadny"/>
+ </cd:parameter>
+ <cd:parameter name="rastrpozadi">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="barvapozadi">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="zakladnifont">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="table" type="environment">
+ <cd:sequence>
+ <cd:string value="table"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:text"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tables" type="environment">
+ <cd:sequence>
+ <cd:string value="tables"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:text"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definetabletemplate" file="core-tab.tex">
+ <cd:sequence>
+ <cd:string value="definujsablonutabulky"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:keywords n="4" optional="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useexternalfiles" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="uzijexternisoubory"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="zakladnifont">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ <cd:parameter name="soubor">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useexternalfile" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="uzijexternisoubor"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ <cd:assignments n="4" list="yes">
+ <cd:parameter name="zakladnifont">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useexternalfigure" file="core-fig.tex">
+ <cd:sequence>
+ <cd:string value="uzijexterniobraz"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes">
+ <cd:constant type="cd:name"/> <!-- parent -->
+ </cd:keywords>
+ <cd:assignments n="4" optional="yes" list="yes">
+ <cd:inherit name="nastavexterniobrazy" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="externalfigure" file="core-fig.tex">
+ <cd:sequence>
+ <cd:string value="externiobraz"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="nastavexterniobrazy" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupexternalfigures" file="core-fig.tex">
+ <cd:sequence>
+ <cd:string value="nastavexterniobrazy"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1">
+ <cd:parameter name="meritko">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ymeritko">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ymeritko">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="faktor">
+ <cd:constant type="max"/>
+ <cd:constant type="prizpusobive"/>
+ <cd:constant type="siroky"/>
+ </cd:parameter>
+ <cd:parameter name="sfaktor">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="max"/>
+ <cd:constant type="siroky"/>
+ <cd:constant type="prizpusobive"/>
+ </cd:parameter>
+ <cd:parameter name="vfaktor">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="max"/>
+ <cd:constant type="siroky"/>
+ <cd:constant type="prizpusobive"/>
+ </cd:parameter>
+ <cd:parameter name="sirka">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="vyska">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="ramecek">
+ <cd:constant type="zap"/>
+ <cd:constant type="vyp"/>
+ </cd:parameter>
+ <cd:parameter name="prednastaveni">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ <cd:parameter name="obrazovka">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="nahled">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ <cd:parameter name="opakovat">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ <cd:parameter name="objekt">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ <cd:parameter name="typ">
+ <cd:constant type="eps"/>
+ <cd:constant type="mps"/>
+ <cd:constant type="pdf"/>
+ <cd:constant type="tif"/>
+ <cd:constant type="png"/>
+ <cd:constant type="jpg"/>
+ <cd:constant type="mov"/>
+ <cd:constant type="cd:tex"/>
+ </cd:parameter>
+ <cd:parameter name="metoda">
+ <cd:constant type="eps"/>
+ <cd:constant type="mps"/>
+ <cd:constant type="pdf"/>
+ <cd:constant type="tif"/>
+ <cd:constant type="png"/>
+ <cd:constant type="jpg"/>
+ <cd:constant type="mov"/>
+ <cd:constant type="cd:tex"/>
+ </cd:parameter>
+ <cd:parameter name="volba">
+ <cd:constant type="ramecek"/>
+ <cd:constant type="prazdne"/>
+ <cd:constant type="test"/>
+ </cd:parameter>
+ <cd:parameter name="ramecky">
+ <cd:constant type="zap"/>
+ <cd:constant type="vyp"/>
+ </cd:parameter>
+ <cd:parameter name="ymax">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="xmax">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="adresar">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="misto">
+ <cd:constant type="lokalne"/>
+ <cd:constant type="globalne"/>
+ <cd:constant type="implicitni"/>
+ <cd:constant type="zadny"/>
+ </cd:parameter>
+ <cd:parameter name="maxsirka">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="maxvyska">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="konverze">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="prefix">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showexternalfigures" file="core-fig.tex">
+ <cd:sequence>
+ <cd:string value="ukazexterniobrazy"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:parameter name="alternativa">
+ <cd:constant type="a"/>
+ <cd:constant type="b"/>
+ <cd:constant type="c"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useexternalsoundtrack" file="core-fig.tex">
+ <cd:sequence>
+ <cd:string value="uzijexternizvuk"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="name" file="syst-gen.tex">
+ <cd:sequence>
+ <cd:string value="name"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="legend" type="environment">
+ <cd:sequence>
+ <cd:string value="legend"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="dve"/>
+ </cd:keywords>
+ <cd:tex n="2" command="leg"/>
+ <cd:nothing n="3"/>
+ <cd:nothing n="4" separator="backslash"/>
+ <cd:nothing n="5" separator="backslash"/>
+ <cd:tex n="6" separator="backslash" command="leg"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fact" type="environment">
+ <cd:sequence>
+ <cd:string value="fakt"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:tex n="1" command="fact"/>
+ <cd:nothing n="2"/>
+ <cd:nothing n="3" separator="backslash"/>
+ <cd:nothing n="4" separator="backslash"/>
+ <cd:tex n="5" separator="backslash" command="fact"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="rotate" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="otocit"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="nastavotoceni" n="1"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuprotate" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="nastavotoceni"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="rotace">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="misto">
+ <cd:constant type="normalni"/>
+ <cd:constant type="vysoko"/>
+ <cd:constant type="prizpusobive"/>
+ <cd:constant type="siroky"/>
+ <cd:constant type="podlehloubky"/>
+ </cd:parameter>
+ <cd:inherit name="nastavoramovani" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mirror" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="zrcadlit"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="scale" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="meritko"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:parameter name="sx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="sy">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcombinations" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="nastavspojeni"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="pred">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="mezi">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="po">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="vzdalenost">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="vyska">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="prizpusobive"/>
+ </cd:parameter>
+ <cd:parameter name="sirka">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="prizpusobive"/>
+ </cd:parameter>
+ <cd:parameter name="misto">
+ <cd:constant type="vrsek"/>
+ <cd:constant type="nastred"/>
+ <cd:constant type="spodek"/>
+ <cd:constant type="vlevo"/>
+ <cd:constant type="vpravo"/>
+ </cd:parameter>
+ <cd:parameter name="zarovnani">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="pismeno">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="barva">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="combination" type="environment">
+ <cd:sequence>
+ <cd:string value="combination"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:matrix"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placesidebyside" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="umistivedlesebe"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placeontopofeachother" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="umistinadsebe"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overlay" type="environment">
+ <cd:sequence>
+ <cd:string value="overlay"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overview" type="environment">
+ <cd:sequence>
+ <cd:string value="overview"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupinteractionscreen" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="nastavinterakcniobrazovku"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:parameter name="sirka">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="prizpusobive"/>
+ <cd:constant type="max"/>
+ </cd:parameter>
+ <cd:parameter name="vyska">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="prizpusobive"/>
+ <cd:constant type="max"/>
+ </cd:parameter>
+ <cd:parameter name="zpetnamezera">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="svrchnimezera">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="horoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="offsethlavicky">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="volba">
+ <cd:constant type="max"/>
+ <cd:constant type="prizpusobive"/>
+ <cd:constant type="dvoustranny"/>
+ <cd:constant type="jednostranne"/>
+ <cd:constant type="auto"/>
+ <cd:constant type="zadny"/>
+ <cd:constant type="zalozka"/>
+ </cd:parameter>
+ <cd:parameter name="prodleva">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="zadny"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="screen" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="obrazovka"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setuppagetransitions" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="nastavprechodstrany"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="reset"/>
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupinteraction" file="core-nav.tex">
+ <cd:sequence>
+ <cd:string value="nastavinterakci"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="menu">
+ <cd:constant type="zap"/>
+ <cd:constant type="vyp"/>
+ </cd:parameter>
+ <cd:parameter name="stranka">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ <cd:parameter name="klik">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ <cd:parameter name="split">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ <cd:parameter name="obrazovka">
+ <cd:constant type="novy"/>
+ </cd:parameter>
+ <cd:parameter name="otevriakci">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="zavriakci">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="akceotevrenistranky">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="akcezavrenistranky">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="pocitat">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="strut">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ <cd:parameter name="sirka">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="vyska">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="hloubka">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="pismeno">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="barva">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="kontrastnibarva">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="sadasymbolu">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="titul">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="podtitulek">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="autor">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="datum">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="keyword">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <!-- maybe this will move elsewhere -->
+ <cd:parameter name="fieldlayer">
+ <cd:constant type="auto"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupinteractionmenu" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="nastavinterakcnimenu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="pred">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="po">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="mezi">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="vlevo">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="vpravo">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="stredni">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="zadny"/>
+ <cd:constant type="lokalne"/>
+ </cd:parameter>
+ <cd:parameter name="pismeno">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="barva">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="kontrastnibarva">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="vzdalenost">
+ <cd:constant type="prekryv"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="stejnastranka">
+ <cd:constant type="ano"/>
+ <cd:constant type="prazdne"/>
+ <cd:constant type="ne"/>
+ <cd:constant type="zadny"/>
+ </cd:parameter>
+ <cd:parameter name="neznamyodkaz">
+ <cd:constant type="ano"/>
+ <cd:constant type="prazdne"/>
+ <cd:constant type="ne"/>
+ <cd:constant type="zadny"/>
+ </cd:parameter>
+ <cd:parameter name="levyoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="pravyoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="offsetvrsku">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="offsetspodku">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="position">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ <cd:inherit name="nastavoramovani" n="2"/> <!-- maybe not all parameters from framed -->
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineinteractionmenu" variant="1" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="definujinterakcnimenu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive" list="yes">
+ <cd:constant type="vlevo"/>
+ <cd:constant type="vpravo"/>
+ <cd:constant type="vrsek"/>
+ <cd:constant type="spodek"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="nastavinterakcnimenu" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineinteractionmenu" variant="2" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="definujinterakcnimenu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
+ <cd:constant type="vlevo"/>
+ <cd:constant type="vpravo"/>
+ <cd:constant type="vrsek"/>
+ <cd:constant type="spodek"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="vlevo"/>
+ <cd:constant type="vpravo"/>
+ <cd:constant type="vrsek"/>
+ <cd:constant type="spodek"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="nastavinterakcnimenu" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="interactionmenu" type="environment">
+ <cd:sequence>
+ <cd:string value="interaktivnimenu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="disableinteractionmenu" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="zablokujinterakcnimenu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
+ <cd:constant type="vlevo"/>
+ <cd:constant type="vpravo"/>
+ <cd:constant type="vrsek"/>
+ <cd:constant type="spodek"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:reference n="2" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useexternaldocument" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="uzijexternidokument"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="soubor"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useURL" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="uzijURL"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:constant type="soubor"/>
+ </cd:keywords>
+ <cd:keywords n="4">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="coupledocument" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="propojenydokument"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="soubor"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="from" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="zref"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" interactive="exclusive"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="interactionbar">
+ <cd:sequence>
+ <cd:string value="interakcnilista"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:inherit name="nastavinterakcnilistu" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="interactionbuttons" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="interakcnitlacitka"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" optional="yes" list="yes">
+ <cd:inherit name="nastavinterakcnilistu" n="1"/>
+ </cd:assignments>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupinteractionbar" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="nastavinterakcnilistu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="alternativa">
+ <cd:constant type="a"/>
+ <cd:constant type="b"/>
+ <cd:constant type="c"/>
+ <cd:constant type="d"/>
+ <cd:constant type="e"/>
+ <cd:constant type="f"/>
+ <cd:constant type="g"/>
+ </cd:parameter>
+ <cd:parameter name="symbol">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ <cd:parameter name="sirka">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="vyska"/>
+ <cd:constant type="prizpusobive"/>
+ </cd:parameter>
+ <cd:parameter name="vyska">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="vyska"/>
+ <cd:constant type="prizpusobive"/>
+ </cd:parameter>
+ <cd:parameter name="hloubka">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="barva">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="krok">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="male"/>
+ <cd:constant type="stredni"/>
+ <cd:constant type="velke"/>
+ </cd:parameter>
+ <cd:inherit name="nastavoramovani" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="synchronize" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="synchronizovat"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="synchronization" type="environment">
+ <cd:sequence>
+ <cd:string value="synchronization"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupsynchronizationbar" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="nastavsynchronizacnilistu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:parameter name="alternativa">
+ <cd:constant type="stranka"/>
+ <cd:constant type="lokalne"/>
+ </cd:parameter>
+ <cd:parameter name="sirka">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="vyska"/>
+ <cd:constant type="prizpusobive"/>
+ </cd:parameter>
+ <cd:parameter name="vyska">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="pismeno">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="barva">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:inherit name="nastavoramovani" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="synchronizationbar" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="synchronizacnilista"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="alternativa">
+ <cd:constant type="stranka"/>
+ <cd:constant type="lokalne"/>
+ </cd:parameter>
+ <cd:inherit name="nastavsynchronizacnilistu" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsynchronization" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="nastavsynchronizaci"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineprofile" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="definujprofil"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupprofiles" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="nastavprofily"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:parameter name="volba">
+ <cd:constant type="test"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="profile" type="environment">
+ <cd:sequence>
+ <cd:string value="profile"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="followprofile" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="dodrzujprofil"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="exclusive"/>
+ <cd:keywords n="2">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placebookmarks" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="umistizalozky"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ <cd:constant type="vse"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="bookmark" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="zalozka"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="version" type="environment">
+ <cd:sequence>
+ <cd:string value="verze"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive" list="yes">
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupversions" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="nastavverze"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="cislo">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="pismeno">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="markversion" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="oznacverzi"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="selectversion" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="vyberverzi"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="defineversion" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="definujverzi"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="followversion" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="dodrzujverzi"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="exclusive"/>
+ <cd:keywords n="2">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="followprofileversion" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="dodrzujverziprofilu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="exclusive"/>
+ <cd:keywords n="2">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineprogram" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="definujprogram"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupprograms" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="nastavprogramy"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:parameter name="adresar">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="program" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="program"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="figure" type="environment">
+ <cd:sequence>
+ <cd:string value="figure"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:parameter name="faktor">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ramecek">
+ <cd:constant type="zap"/>
+ <cd:constant type="vyp"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <!-- referring*figure skipped -->
+
+ <!-- marking*figure skipped -->
+
+ <!-- remark skipped -->
+
+ <cd:command name="goto" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="jdina"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="exclusive"/>
+ <cd:content n="2" interactive="exclusive"/>
+ <cd:reference n="3" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="gotobox" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="jdinabox"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="exclusive"/>
+ <cd:reference n="2" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="button" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="tlacitko"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" optional="yes" list="yes">
+ <cd:inherit name="nastavtlacitka" n="1"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ <cd:reference n="3" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbuttons" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="nastavtlacitka"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:inherit name="nastavoramovani" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <!-- menubutton skipped -->
+
+ <cd:command name="setupcomment" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="nastavkomentar"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="sirka">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="vyska">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="barva">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="titul">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="mezera">
+ <cd:constant type="ano"/>
+ <cd:constant type="ne"/>
+ </cd:parameter>
+ <cd:parameter name="symbol">
+ <cd:constant type="normalni"/>
+ <cd:constant type="Novy"/>
+ <cd:constant type="Bublinka"/>
+ <cd:constant type="Pridavek"/>
+ <cd:constant type="Napoveda"/>
+ <cd:constant type="Odstavec"/>
+ <cd:constant type="Klavesa"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="volba">
+ <cd:constant type="max"/>
+ <cd:constant type="buffer"/>
+ </cd:parameter>
+ <cd:parameter name="marginalie">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="vzdalenost">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="comment" type="environment">
+ <cd:sequence>
+ <cd:string value="komentar"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="nastavkomentar" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="comment">
+ <cd:sequence>
+ <cd:string value="komentar"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="nastavkomentar" n="1"/>
+ </cd:assignments>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefield" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="definujpole"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1"> <!-- name -->
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2"> <!-- type -->
+ <cd:constant type="text"/>
+ <cd:constant type="radek"/> <!-- equal to text -->
+ <cd:constant type="push"/>
+ <cd:constant type="check"/>
+ <cd:constant type="radio"/>
+ <cd:constant type="combo"/>
+ <cd:constant type="choice"/> <!-- equal to combo -->
+ <cd:constant type="popup"/> <!-- equal to combo -->
+ </cd:keywords>
+ <cd:keywords n="3"> <!-- group -->
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="4" list="yes"> <!-- optional for text? -->
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="5" optional="yes"> <!-- default -->
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definesubfield" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="definujpodpole"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="3" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="copyfield" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="kopirujpole"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="clonefield" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="klonujpole"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="4" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="field" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="pole"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fitfield" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="prizpusobivepole"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fillinfield" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="vyplnovepole"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tooltip" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="bublinkovanapoveda"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="vlevo"/>
+ <cd:constant type="vpravo"/>
+ <cd:constant type="nastred"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showfields" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="ukazpole"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="logfields" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="zaznamovepole"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupfield" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="nastavpole"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="popisek"/>
+ <cd:constant type="horizontalne"/>
+ <cd:constant type="vertikalne"/>
+ <cd:constant type="ramecek"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:inherit name="nastavvsechnapole" n="2"/>
+ </cd:assignments>
+ <cd:assignments n="4" list="yes"> </cd:assignments>
+ <cd:assignments n="5" list="yes"> </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfields" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="nastavvsechnapole"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes"> <!-- TODO: if it's reset, only a single argument, no list -->
+ <cd:constant type="reset"/>
+ <cd:constant type="popisek"/>
+ <cd:constant type="horizontalne"/>
+ <cd:constant type="vertikalne"/>
+ <cd:constant type="ramecek"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="vzdalenost">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="pred">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="po">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="mezi">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="barva">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="pismeno">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="zarovnani">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="volba">
+ <cd:constant type="pouzeprocteni"/>
+ <cd:constant type="pozadovane"/>
+ <cd:constant type="chranene"/>
+ <cd:constant type="tridene"/>
+ <cd:constant type="nedostupne"/>
+ <cd:constant type="skryte"/>
+ <cd:constant type="tisknutelne"/>
+ </cd:parameter>
+ <cd:parameter name="klikuvnitr">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="klikvne">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="oblastuvnitr">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="oblastvne">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="klavesapo">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="formatovat">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="validovat">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="pocitat">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="offsetpole">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="barvarameckupole">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="barvapozadipole">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:inherit name="nastavoramovani" n="2"/>
+ </cd:assignments>
+ <cd:assignments n="3" list="yes">
+ <cd:inherit name="nastavvsechnapole" n="2"/>
+ </cd:assignments>
+ <cd:assignments n="4" list="yes">
+ <cd:inherit name="nastavvsechnapole" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupforms" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="setupforms"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="metoda">
+ <cd:constant type="HTML"/>
+ <cd:constant type="FDF"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefieldstack" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="definujzasobnikpoli"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:inherit name="nastavvsechnapole" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fieldstack" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="zasobnikpoli"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="nastavvsechnapole" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="clip" file="core-trf.tex">
+ <cd:sequence>
+ <cd:string value="orez"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="nastavorez" n="1"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupclipping" file="core-trf.tex">
+ <cd:sequence>
+ <cd:string value="nastavorez"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number" default="1"/>
+ </cd:parameter>
+ <cd:parameter name="nx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ny">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="x">
+ <cd:constant type="cd:number" default="1"/>
+ </cd:parameter>
+ <cd:parameter name="y">
+ <cd:constant type="cd:number" default="1"/>
+ </cd:parameter>
+ <cd:parameter name="sx">
+ <cd:constant type="cd:number" default="1"/>
+ </cd:parameter>
+ <cd:parameter name="sy">
+ <cd:constant type="cd:number" default="1"/>
+ </cd:parameter>
+ <cd:parameter name="sirka">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="vyska">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="hoffset">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="voffset">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="offset">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="levyoffset">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="pravyoffset">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="offsetvrsku">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="offsetspodku">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="mp">
+ <cd:constant type="cd:name" default=""/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placelegend">
+ <cd:sequence>
+ <cd:string value="umistilegendu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplegend">
+ <cd:sequence>
+ <cd:string value="nastavlegendu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="vzdalenost">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="mezi">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="sirka">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="vyska">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="misto">
+ <cd:constant type="vpravo"/>
+ <cd:constant type="spodek"/>
+ </cd:parameter>
+ <cd:parameter name="zakladnifont">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupstrut" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="setupstrut"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="ano" default="yes"/>
+ <cd:constant type="ne"/>
+ <cd:constant type="kap"/>
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usetypescriptfile" file="type-ini.tex">
+ <cd:sequence>
+ <cd:string value="usetypescriptfile"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usetypescript" file="type-ini.tex">
+ <cd:sequence>
+ <cd:string value="usetypescript"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definetypeface" file="type-ini.tex">
+ <cd:sequence>
+ <cd:string value="definetypeface"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="rm"/>
+ <cd:constant type="ss"/>
+ <cd:constant type="tt"/>
+ <cd:constant type="mm"/>
+ <cd:constant type="hw"/>
+ <cd:constant type="cg"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="4">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="5" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="6" optional="yes">
+ <cd:parameter name="features">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="rscale">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="encoding">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="text">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefontfeature" file="type-ini.tex">
+ <cd:sequence>
+ <cd:string value="definefontfeature"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="no">
+ <cd:parameter name="compose">
+ <cd:constant type="ne" default="yes"/>
+ <cd:constant type="ano"/>
+ </cd:parameter>
+ <cd:parameter name="mode">
+ <cd:constant type="node"/>
+ <cd:constant type="base" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="tlig">
+ <cd:constant type="ne" default="yes"/>
+ <cd:constant type="ano"/>
+ </cd:parameter>
+ <cd:parameter name="trep">
+ <cd:constant type="ne" default="yes"/>
+ <cd:constant type="ano"/>
+ </cd:parameter>
+ <cd:parameter name="script">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="language">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="..tag.."> <!-- can't use &gt; here, \showsetup gives an error -->
+ <cd:constant type="ne" default="yes"/>
+ <cd:constant type="ano"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefonthandling" file="hand-ini.mkii">
+ <cd:sequence>
+ <cd:string value="definefonthandling"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:name" list="yes"/>
+ </cd:keywords>
+ <cd:assignments n="3">
+ <cd:parameter name="typ">
+ <cd:constant type="visici" default="yes"/>
+ <cd:constant type="hz"/>
+ <cd:constant type="mezerovani"/>
+ <cd:constant type="tag"/>
+ </cd:parameter>
+ <cd:parameter name="vpravo">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="vlevo">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="faktor">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="min">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="max">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="krok">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfonthandling" file="hand-ini.mkii">
+ <cd:sequence>
+ <cd:string value="setupfonthandling"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2">
+ <cd:inherit name="definefonthandling" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefontsynonym" file="font-ini.tex">
+ <cd:sequence>
+ <cd:string value="definujsynonumumfontu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes">
+ <cd:parameter name="encoding">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="features">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="handling">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="mapping">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfontsynonym" file="font-ini.tex">
+ <cd:sequence>
+ <cd:string value="setupfontsynonym"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2">
+ <cd:inherit name="definujsynonumumfontu" n="3"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mapfontsize" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="mapfontsize"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definedfont" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="definedfont"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:inherit name="definujfont" n="2"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/Master/texmf-dist/tex/context/interface/cont-cz.xml b/Master/texmf-dist/tex/context/interface/cont-cz.xml
deleted file mode 100644
index 17834cd9c32..00000000000
--- a/Master/texmf-dist/tex/context/interface/cont-cz.xml
+++ /dev/null
@@ -1,10030 +0,0 @@
-<?xml version="1.0" standalone="yes"?>
-
-<!-- versions:
-
- comment : user interface definitions of ConTeXt
-
- authors : Hans Hagen, Taco Hoekwater, Patrick Gundlach
-
- versions : 2004.11.17 : initial version
- 2006.08.02 : define + resolve
-
--->
-
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="cz" version="2006.08.02">
-
-<cd:define name="align">
- <cd:constant type="uvnitr"/>
- <cd:constant type="vnejsi"/>
- <cd:constant type="vlevo"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="flushleft"/>
- <cd:constant type="flushright"/>
- <cd:constant type="nastred"/>
- <cd:constant type="center"/>
- <cd:constant type="normalni"/>
- <cd:constant type="ne"/>
- <cd:constant type="ano"/>
-</cd:define>
-
-<cd:define name="indenting">
- <cd:constant type="nikdy"/>
- <cd:constant type="zadny"/>
- <cd:constant type="ne"/>
- <cd:constant type="ne"/>
- <cd:constant type="ano"/>
- <cd:constant type="vzdy"/>
- <cd:constant type="prvni"/>
- <cd:constant type="dalsi"/>
- <cd:constant type="male"/>
- <cd:constant type="stredni"/>
- <cd:constant type="velke"/>
- <cd:constant type="normalni"/>
- <cd:constant type="liche"/>
- <cd:constant type="sude"/>
- <cd:constant type="cd:dimension"/>
-</cd:define>
-
-<cd:define name="indentnext">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
-</cd:define>
-
-<cd:define name="style">
- <cd:constant type="normalni"/>
- <cd:constant type="tucne"/>
- <cd:constant type="sklonene"/>
- <cd:constant type="tucnesklonene"/>
- <cd:constant type="opis"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
-</cd:define>
-
-<cd:define name="language">
- <cd:constant type="nl"/>
- <cd:constant type="fr"/>
- <cd:constant type="en"/>
- <cd:constant type="uk"/>
- <cd:constant type="de"/>
- <cd:constant type="es"/>
- <cd:constant type="cz"/>
- <cd:constant type=".."/>
-</cd:define>
-
-<cd:define name="texts">
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="datum"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="cislostranky"/>
-</cd:define>
-
-<cd:define name="layout-h">
- <cd:constant type="text" default="yes"/>
- <cd:constant type="marginalie"/>
- <cd:constant type="hrana"/>
-</cd:define>
-
-<cd:define name="layout-v">
- <cd:constant type="vrsek"/>
- <cd:constant type="zahlavi"/>
- <cd:constant type="text" default="yes"/>
- <cd:constant type="upati"/>
- <cd:constant type="spodek"/>
-</cd:define>
-
-<cd:command name="installlanguage" file="lang-ini.tex">
- <cd:sequence>
- <cd:string value="instalacejazyka"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="mezerovani">
- <cd:constant type="zhustene"/>
- <cd:constant type="siroky"/>
- </cd:parameter>
- <cd:parameter name="lefthyphenmin">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="righthyphenmin">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="vetavlevo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="vetavpravo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="podvetavlevo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="podvetavpravo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="citovatvlevo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="citovatvpravo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="citacevlevo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="citacevpravo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="implicitni">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuplanguage" file="lang-ini.tex">
- <cd:sequence>
- <cd:string value="nastavjazyk"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:resolve name="language"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="instalacejazyka"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="language">
- <cd:sequence>
- <cd:string value="jazyk"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:resolve name="language"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="mainlanguage" file="lang-ini.tex">
- <cd:sequence>
- <cd:string value="hlavnijazyk"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:resolve name="language"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="translate" file="lang-lab.tex">
- <cd:sequence>
- <cd:string value="prelozit"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="cd:name">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="useencoding" file="enco-ini.tex">
- <cd:sequence>
- <cd:string value="uzijkodovani"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="usespecials" file="spec-ini.tex">
- <cd:sequence>
- <cd:string value="uzijspeciality"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="reset"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineoutput" file="spec-ini.tex">
- <cd:sequence>
- <cd:string value="definujvystup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupoutput" file="spec-ini.tex">
- <cd:sequence>
- <cd:string value="nastavvystup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definebodyfontenvironment" file="font-ini.tex">
- <cd:sequence>
- <cd:string value="definujprostredizakladnihofontu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="implicitni"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="text">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="script">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="scriptscript">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="x">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="xx">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="male">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="velky">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupbodyfontenvironment" file="font-ini.tex">
- <cd:sequence>
- <cd:string value="nastavprostredizakladnihofontu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:inherit name="nastavzakladnifont"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="nastavzakladnifont"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showbodyfontenvironment">
- <cd:sequence>
- <cd:string value="ukazpostredizakladnihofontu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:inherit name="nastavzakladnifont"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definebodyfont" file="font-ini.tex">
- <cd:sequence>
- <cd:string value="definujzakladnifont"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="implicitni"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="rm"/>
- <cd:constant type="ss"/>
- <cd:constant type="tt"/>
- <cd:constant type="mm"/>
- <cd:constant type="hw"/>
- <cd:constant type="cg"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="tf">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="bf">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="sl">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="it">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="bs">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="bi">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="sc">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="ex">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="mi">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="sy">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="ma">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="mb">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="mc">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showbodyfont">
- <cd:sequence>
- <cd:string value="ukazzakladnifont"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:inherit name="nastavzakladnifont"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupbodyfont">
- <cd:sequence>
- <cd:string value="nastavzakladnifont"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- <cd:constant type="serif"/>
- <cd:constant type="pravidelne"/>
- <cd:constant type="antikva"/>
- <cd:constant type="sans"/>
- <cd:constant type="podpora"/>
- <cd:constant type="bezserifu"/>
- <cd:constant type="mono"/>
- <cd:constant type="opis"/>
- <cd:constant type="strojopis"/>
- <cd:constant type="rukopisne"/>
- <cd:constant type="kaligraficke"/>
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="switchtobodyfont" file="font-ini.tex">
- <cd:sequence>
- <cd:string value="prepninazakladnifont"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="male"/>
- <cd:constant type="velke"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definefont" file="font-ini.tex">
- <cd:sequence>
- <cd:string value="definujfont"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:file"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupcolor" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="nastavbarvu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupcolors" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="nastavbarvy"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- <cd:constant type="globalne"/>
- <cd:constant type="lokalne"/>
- </cd:parameter>
- <cd:parameter name="konverze">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- <cd:constant type="vzdy"/>
- </cd:parameter>
- <cd:parameter name="redukce">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="rgb">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="cmyk">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="mpcmyk">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="mpspot">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="barvatextu">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="split">
- <cd:constant type="c"/>
- <cd:constant type="m"/>
- <cd:constant type="y"/>
- <cd:constant type="k"/>
- <cd:constant type="p"/>
- <cd:constant type="s"/>
- <cd:constant type="ne"/>
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="kriterium">
- <cd:constant type="vse"/>
- <cd:constant type="zadny"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definecolor" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="definujbarvu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="r">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="g">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="b">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="c">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="m">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="y">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="k">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="s">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="h">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="t">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="a">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="p">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="e">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="color" type="environment" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="barva"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="color" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="barva"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="graycolor" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="sedabarva"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showcolor">
- <cd:sequence>
- <cd:string value="ukazbarvu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definepalet" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="definujpaletu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="cd:name">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuppalet" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="nastavpaletu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definecolorgroup" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="definujskupinubarev"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="rgb" default="yes"/>
- <cd:constant type="cmyk"/>
- <cd:constant type="seda"/>
- <cd:constant type="s"/>
- </cd:keywords>
- <cd:triplet list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showpalet">
- <cd:sequence>
- <cd:string value="ukazpaletu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="horizontalne"/>
- <cd:constant type="vertikalne"/>
- <cd:constant type="jmeno"/>
- <cd:constant type="hodnota"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showcolorgroup">
- <cd:sequence>
- <cd:string value="ukazskupinubarev"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="horizontalne"/>
- <cd:constant type="vertikalne"/>
- <cd:constant type="jmeno"/>
- <cd:constant type="hodnota"/>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="comparepalet">
- <cd:sequence>
- <cd:string value="porovnejpaletu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="comparecolorgroup">
- <cd:sequence>
- <cd:string value="porovnejskupinubarev"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showmakeup" file="supp-vis.tex">
- <cd:sequence>
- <cd:string value="ukazupravu"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="definetype" file="core-ver.tex">
- <cd:sequence>
- <cd:string value="definetype"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="nastavtype"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptype" file="core-ver.tex">
- <cd:sequence>
- <cd:string value="nastavtype"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="mezera">
- <cd:constant type="zap"/>
- <cd:constant type="vyp"/>
- </cd:parameter>
- <cd:parameter name="volba">
- <cd:constant type="sklonene"/>
- <cd:constant type="normalni"/>
- <cd:constant type="zadny"/>
- </cd:parameter>
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="barva">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="type" file="verb-ini.tex">
- <cd:sequence>
- <cd:string value="opis"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="typ" file="core-ver.tex">
- <cd:sequence>
- <cd:string value="pis"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="tex" file="core-ver.tex">
- <cd:sequence>
- <cd:string value="tex"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="arg" file="core-ver.tex">
- <cd:sequence>
- <cd:string value="arg"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definetyping" file="core-ver.tex">
- <cd:sequence>
- <cd:string value="definujopis"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="soubor"/>
- <cd:constant type="typing"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="nastavopis"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptyping" file="core-ver.tex">
- <cd:sequence>
- <cd:string value="nastavopis"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="soubor"/>
- <cd:constant type="typing"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="mezera">
- <cd:constant type="zap"/>
- <cd:constant type="vyp"/>
- </cd:parameter>
- <cd:parameter name="stranka">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="volba">
- <cd:constant type="sklonene"/>
- <cd:constant type="normalni"/>
- <cd:constant type="prikazy"/>
- <cd:constant type="barevne"/>
- <cd:constant type="zadny"/>
- </cd:parameter>
- <cd:parameter name="text">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="iprikaz">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="vprikaz">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="cprikaz">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="marginalie">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="standardni"/>
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="sudamarginalie">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="lichyokraj">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="prazdny">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="male"/>
- <cd:constant type="stredni"/>
- <cd:constant type="velke"/>
- <cd:constant type="standardni"/>
- <cd:constant type="pulradku"/>
- <cd:constant type="radek"/>
- </cd:parameter>
- <cd:parameter name="escape">
- <cd:constant type="cd:character"/>
- </cd:parameter>
- <cd:parameter name="mezera">
- <cd:constant type="zap"/>
- <cd:constant type="vyp"/>
- </cd:parameter>
- <cd:parameter name="tab">
- <cd:constant type="cd:number"/>
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="stranka">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="odsadpristi">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="barva">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="paleta">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="radky">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- <cd:constant type="hyphenated"/>
- </cd:parameter>
- <cd:parameter name="prazdne">
- <cd:constant type="ano"/>
- <cd:constant type="vse"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="cislovani">
- <cd:constant type="radek"/>
- <cd:constant type="soubor"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="typing" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="typing"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="typefile" file="verb-ini.tex">
- <cd:sequence>
- <cd:string value="opissoubor"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfootnotes" file="core-not.tex">
- <cd:sequence>
- <cd:string value="nastavpoznamkypodcarou"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="konverze">
- <cd:constant type="cisla"/>
- <cd:constant type="pismena"/>
- <cd:constant type="Pismena"/>
- <cd:constant type="rimskecislice"/>
- <cd:constant type="Rimskecislice"/>
- </cd:parameter>
- <cd:parameter name="zpusob">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="misto">
- <cd:constant type="stranka"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="sloupce"/>
- <cd:constant type="firstcolumn"/>
- <cd:constant type="lastcolumn"/>
- <cd:constant type="vysoko"/>
- <cd:constant type="zadny"/>
- </cd:parameter>
- <cd:parameter name="linka">
- <cd:constant type="zap"/>
- <cd:constant type="vyp"/>
- </cd:parameter>
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vyska">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="zakladnifont">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="male"/>
- <cd:constant type="velke"/>
- </cd:parameter>
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="vzdalenost">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vzdalenostsloupcu">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vzdalenostokraje">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ciselnyprikaz">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="textovyprikaz">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="split">
- <cd:constant type="tolerantni"/>
- <cd:constant type="striktni"/>
- <cd:constant type="velmistriktni"/>
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="styltextu">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="barvatextu">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="interakce">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="faktor">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:inherit name="oramovani"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfootnotedefinition" file="core-not.tex">
- <cd:sequence>
- <cd:string value="nastavdefinicipoznamekpodcarou"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:inherit name="definujpopis"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="footnote" file="core-not.tex">
- <cd:sequence>
- <cd:string value="poznamkapodcarou"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="footnotetext" file="core-not.tex">
- <cd:sequence>
- <cd:string value="footnotetext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="note" file="core-not.tex">
- <cd:sequence>
- <cd:string value="poznamka"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference interactive="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="localfootnotes" type="environment">
- <cd:sequence>
- <cd:string value="localfootnotes"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="placelocalfootnotes" file="core-not.tex">
- <cd:sequence>
- <cd:string value="umistilokalnipoznamkypodcarou"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="nastavpoznamkypodcarou"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placefootnotes" file="core-not.tex">
- <cd:sequence>
- <cd:string value="umistipoznamkypodcarou"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="nastavpoznamkypodcarou"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupunderbar" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="nastavpodtrzeni"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="alternativa">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- </cd:parameter>
- <cd:parameter name="tloustkalinky">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offsetspodku">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offsetvrsku">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="barvalinky">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="underbar" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="podtrzeno"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="underbars" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="podtrzeni"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="overbar" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="nadtrzeno"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="overbars" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="nadtrzeni"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="overstrike" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="preskrtnuto"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="overstrikes" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="preskrtnuti"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="romannumerals" file="core-con.tex">
- <cd:sequence>
- <cd:string value="rimskecislice"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="Romannumerals" file="core-con.tex">
- <cd:sequence>
- <cd:string value="Rimskecislice"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="numbers" file="core-con.tex">
- <cd:sequence>
- <cd:string value="cisla"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="character" file="core-con.tex">
- <cd:sequence>
- <cd:string value="znak"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="Character" file="core-con.tex">
- <cd:sequence>
- <cd:string value="Znak"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="characters" file="core-con.tex">
- <cd:sequence>
- <cd:string value="znaky"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="Characters" file="core-con.tex">
- <cd:sequence>
- <cd:string value="Znaky"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="mediaeval" file="core-con.tex">
- <cd:sequence>
- <cd:string value="mediaeval"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="month" file="core-con.tex">
- <cd:sequence>
- <cd:string value="mesic"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="MONTH" file="core-con.tex">
- <cd:sequence>
- <cd:string value="MESIC"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="weekday" file="core-con.tex">
- <cd:sequence>
- <cd:string value="vsedniden"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="WEEKDAY" file="core-con.tex">
- <cd:sequence>
- <cd:string value="VSEDNIDEN"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupcapitals" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="nastavkapitalky"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="titul">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="sc">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="cap" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="cap"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="nocap">
- <cd:sequence>
- <cd:string value="nocap"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="CAP">
- <cd:sequence>
- <cd:string value="CAP"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="Cap">
- <cd:sequence>
- <cd:string value="Cap"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="Caps">
- <cd:sequence>
- <cd:string value="Caps"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="WORD" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="SLOVO"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="WORDS" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="SLOVA"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="Word" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="Slovo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="Words" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="Slova"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="stretched" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="roztazene"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definesymbol" file="symb-ini.tex">
- <cd:sequence>
- <cd:string value="definujsymbol"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definefiguresymbol" file="symb-ini.tex">
- <cd:sequence>
- <cd:string value="definujobrazeksymbol"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="externiobraz"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="symbol" file="symb-ini.tex">
- <cd:sequence>
- <cd:string value="symbol"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="symbolset" type="environment">
- <cd:sequence>
- <cd:string value="symbolset"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupsymbolset" file="symb-ini.tex">
- <cd:sequence>
- <cd:string value="nastavsadusymbolu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="usesymbols" file="symb-ini.tex">
- <cd:sequence>
- <cd:string value="uzijsymbol"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showsymbolset">
- <cd:sequence>
- <cd:string value="ukazsadusymbolu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineconversion" file="core-con.tex">
- <cd:sequence>
- <cd:string value="definujkonverzi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:command"/>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="convertnumber" file="core-con.tex">
- <cd:sequence>
- <cd:string value="konvertujcislo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupheadtext" file="lang-lab.tex">
- <cd:sequence>
- <cd:string value="nastavtexthlavicky"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:resolve name="language"/>
- </cd:keywords>
- <cd:assignments>
- <cd:parameter name="cd:name">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuplabeltext" file="lang-lab.tex">
- <cd:sequence>
- <cd:string value="nastavtextpopisku"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:resolve name="language"/>
- </cd:keywords>
- <cd:assignments>
- <cd:parameter name="cd:name">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="headtext" file="lang-lab.tex">
- <cd:sequence>
- <cd:string value="texthlavicky"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="labeltext">
- <cd:sequence>
- <cd:string value="textpopisku"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupmarginrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="nastavmarginalnilinky"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments>
- <cd:parameter name="uroven">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="tloustkalinky">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="marginrule" type="environment">
- <cd:sequence>
- <cd:string value="marginalnilinka"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="marginrule">
- <cd:sequence>
- <cd:string value="marginalnilinka"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuplinewidth" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="nastavsirkucary"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupframed" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="nastavoramovani"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="vyska">
- <cd:constant type="prizpusobive"/>
- <cd:constant type="siroky"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="prizpusobive"/>
- <cd:constant type="siroky"/>
- <cd:constant type="fixne"/>
- <cd:constant type="lokalne"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="autosirka">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- <cd:constant type="sila"/>
- </cd:parameter>
- <cd:parameter name="offset">
- <cd:constant type="zadny"/>
- <cd:constant type="prekryv"/>
- <cd:constant type="implicitni"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="misto">
- <cd:constant type="podlehloubky"/>
- <cd:constant type="visici"/>
- <cd:constant type="vysoko"/>
- <cd:constant type="nivy"/>
- <cd:constant type="nizko"/>
- <cd:constant type="vrsek"/>
- <cd:constant type="nastred"/>
- <cd:constant type="spodek"/>
- <cd:constant type="drzet"/>
- </cd:parameter>
- <cd:parameter name="volba">
- <cd:constant type="zadny"/>
- <cd:constant type="prazdne"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- <cd:constant type="globalne"/>
- <cd:constant type="lokalne"/>
- </cd:parameter>
- <cd:parameter name="zarovnani">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="spodek">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="vrsek">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="ramecek">
- <cd:constant type="zap"/>
- <cd:constant type="vyp"/>
- <cd:constant type="zadny"/>
- <cd:constant type="prekryv"/>
- </cd:parameter>
- <cd:parameter name="rameceknahore">
- <cd:constant type="zap"/>
- <cd:constant type="vyp"/>
- </cd:parameter>
- <cd:parameter name="ramecekdole">
- <cd:constant type="zap"/>
- <cd:constant type="vyp"/>
- </cd:parameter>
- <cd:parameter name="ramecekvlevo">
- <cd:constant type="zap"/>
- <cd:constant type="vyp"/>
- </cd:parameter>
- <cd:parameter name="ramecekvpravo">
- <cd:constant type="zap"/>
- <cd:constant type="vyp"/>
- </cd:parameter>
- <cd:parameter name="offsetramecku">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hloubkaramecku">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rohramecku">
- <cd:constant type="zaobleny"/>
- <cd:constant type="pravouhly"/>
- </cd:parameter>
- <cd:parameter name="polomerramecku">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="barvaramecku">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="pozadi">
- <cd:constant type="rastr"/>
- <cd:constant type="barevne"/>
- <cd:constant type="zadny"/>
- <cd:constant type="popredi"/>
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="rastrpozadi">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="barvapozadi">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="offsetpozadi">
- <cd:constant type="ramecek"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hloubkapozadi">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rohpozadi">
- <cd:constant type="zaobleny"/>
- <cd:constant type="pravouhly"/>
- </cd:parameter>
- <cd:parameter name="polomerpozadi">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hloubka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="roh">
- <cd:constant type="zaobleny"/>
- <cd:constant type="pravouhly"/>
- </cd:parameter>
- <cd:parameter name="polomer">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="prazdne">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="foregroundcolor">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="foregroundstyle">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="tloustkalinky">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="framed" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="oramovani"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="nastavoramovani"/>
- </cd:assignments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="inframed" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="zaramovani"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="nastavoramovani"/>
- </cd:assignments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="thinrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="tenkelinky"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes">
- <cd:inherit name="nastavtenkelinky"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupthinrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="nastavtenkelinky"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments>
- <cd:parameter name="meziradkovamezera">
- <cd:constant type="male"/>
- <cd:constant type="stredni"/>
- <cd:constant type="velke"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="mezi">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="barva">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="barvapozadi">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="vyska">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="hloubka">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="alternativa">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- <cd:constant type="d"/>
- </cd:parameter>
- <cd:parameter name="tloustkalinky">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="barva">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="pozadi">
- <cd:constant type="barevne"/>
- </cd:parameter>
- <cd:parameter name="barvapozadi">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="hairline" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="vlasovalinka"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="thinrule" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="tenkalinka"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="defineframedtext" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="definujoramovanytext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="nastavoramovanetexty"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineframed" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="definujoramovani"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="nastavoramovanetexty"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupframedtexts" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="nastavoramovanetexty"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="zakladnifont">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="male"/>
- <cd:constant type="velke"/>
- </cd:parameter>
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="vlevo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="vpravo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="vnitrni">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="korekceradku">
- <cd:constant type="zap"/>
- <cd:constant type="vyp"/>
- </cd:parameter>
- <cd:parameter name="korekcehloubky">
- <cd:constant type="zap"/>
- <cd:constant type="vyp"/>
- </cd:parameter>
- <cd:parameter name="marginalie">
- <cd:constant type="standardni"/>
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="misto">
- <cd:constant type="vlevo"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="nastred"/>
- <cd:constant type="zadny"/>
- </cd:parameter>
- <cd:parameter name="odsazovani">
- <cd:resolve name="indenting"/>
- </cd:parameter>
- <cd:inherit name="nastavoramovani"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="framedtext" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="oramovanytext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="vlevo"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="nastred"/>
- <cd:constant type="zadny"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="nastavoramovanetexty"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="framedtext" generated="yes">
- <cd:sequence>
- <cd:variable value="oramovanytext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="nastavoramovanetexty"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="background" type="environment">
- <cd:sequence>
- <cd:string value="pozadi"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="background">
- <cd:sequence>
- <cd:string value="pozadi"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupbackground" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="nastavpozadi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="levyoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="pravyoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offsetvrsku">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offsetspodku">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:inherit name="nastavoramovani"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="fillinrules">
- <cd:sequence>
- <cd:string value="vyplnovelinky"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="nastavvyplnovelinky"/>
- </cd:assignments>
- <cd:content/>
- <cd:content optional="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="fillintext">
- <cd:sequence>
- <cd:string value="vyplnenytext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="nastavvyplnovelinky"/>
- </cd:assignments>
- <cd:content/>
- <cd:content optional="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfillinrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="nastavvyplnovelinky"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="sirka">
- <cd:constant type="prizpusobive"/>
- <cd:constant type="siroky"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vzdalenost">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="meziradkovamezera">
- <cd:constant type="male"/>
- <cd:constant type="stredni"/>
- <cd:constant type="velke"/>
- </cd:parameter>
- <cd:parameter name="oddelovac">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="fillinline">
- <cd:sequence>
- <cd:string value="vyplnovyradek"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="nastavvyplnoveradky"/>
- </cd:assignments>
- <cd:nothing/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfillinlines" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="nastavvyplnoveradky"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="marginalie">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vzdalenost">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptextrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="nastavtextovelinky"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="misto">
- <cd:constant type="vlevo"/>
- <cd:constant type="naokraji"/>
- </cd:parameter>
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="mezi">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vzdalenost">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="zakladnifont">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="male"/>
- <cd:constant type="velke"/>
- </cd:parameter>
- <cd:parameter name="barva">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="barvalinky">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="textrule" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="textovalinka"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="vrsek"/>
- <cd:constant type="spodek"/>
- </cd:keywords>
- <cd:content optional="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="textrule" type="environment" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="textovalinka"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="vrsek"/>
- <cd:constant type="spodek"/>
- </cd:keywords>
- <cd:content optional="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="blackrule" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="cernalinka"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="nastavcernelinky"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="blackrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="cernelinky"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:inherit name="nastavcernelinky"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupblackrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="nastavcernelinky"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="vyska">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="hloubka">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="alternativa">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- </cd:parameter>
- <cd:parameter name="vzdalenost">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineoverlay" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="definujprekryv"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:command"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="usemodule">
- <cd:sequence>
- <cd:string value="uzijmodul"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="reset" file="core-num.tex">
- <cd:sequence>
- <cd:string value="reset"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="donttest">
- <cd:sequence>
- <cd:string value="zadnytest"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="localenvironment" type="environment">
- <cd:sequence>
- <cd:string value="localenvironment"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupsystem" file="core-sys.tex">
- <cd:sequence>
- <cd:string value="nastavsystem"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="rozliseni">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="soubor">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="adresar">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="nahodne">
- <cd:constant type="normalni"/>
- <cd:constant type="male"/>
- <cd:constant type="stredni"/>
- <cd:constant type="velke"/>
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="usedirectory">
- <cd:sequence>
- <cd:string value="usedirectory"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- <cd:constant type="reset"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="low" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="nizky"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="high" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="vysoky"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="lohi" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="nivy"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="nizko"/>
- </cd:keywords>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showframe">
- <cd:sequence>
- <cd:string value="ukazramecek"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- <cd:constant type="marginalie"/>
- <cd:constant type="hrana"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="leftaligned" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="zarovnanovlevo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="rightaligned" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="zarovnanovpravo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="midaligned" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="zarovnanonastred"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="wordright" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="slovovpravo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="inmargin" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="naokraj"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="nizko"/>
- </cd:keywords>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="inothermargin" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="nadruhyokraj"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="nizko"/>
- </cd:keywords>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="inleft">
- <cd:sequence>
- <cd:string value="vlevo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="nizko"/>
- </cd:keywords>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="inright">
- <cd:sequence>
- <cd:string value="vpravo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="nizko"/>
- </cd:keywords>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="ininner">
- <cd:sequence>
- <cd:string value="ininner"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="nizko"/>
- </cd:keywords>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="inouter">
- <cd:sequence>
- <cd:string value="inouter"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="nizko"/>
- </cd:keywords>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="column">
- <cd:sequence>
- <cd:string value="sloupec"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="showstruts" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="ukazpodpery"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="showsetups">
- <cd:sequence>
- <cd:string value="ukaznastaveni"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="showlayout">
- <cd:sequence>
- <cd:string value="ukazvzhled"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="margintext" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="marginalnitext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="nizko"/>
- </cd:keywords>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupmarginblocks" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="nastavmarginalniblok"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="misto">
- <cd:constant type="naokraji"/>
- <cd:constant type="vlevo"/>
- <cd:constant type="nastred"/>
- <cd:constant type="vpravo"/>
- </cd:parameter>
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="zarovnani">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="vrsek">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="mezi">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="spodek">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="vlevo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="vpravo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="marginblock" type="environment">
- <cd:sequence>
- <cd:string value="marginblock"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="part" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="part"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="title" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="title"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="chapter" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="chapter"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="section" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="section"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="subsection" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subsection"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="subsubsection" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subsubsection"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="subject" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subject"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="subsubject" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subsubject"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="subsubsubject" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subsubsubject"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="appendix" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="appendix"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="in" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="tref"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content interactive="yes"/>
- <cd:content interactive="yes"/>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="at">
- <cd:sequence>
- <cd:string value="pref"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content interactive="yes"/>
- <cd:content interactive="yes"/>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="about">
- <cd:sequence>
- <cd:string value="oref"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content interactive="yes"/>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="somewhere" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="nekde"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="atpage" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="nastrane"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="ref" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="ref"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="t"/>
- <cd:constant type="p"/>
- <cd:constant type="r"/>
- <cd:constant type="s"/>
- <cd:constant type="e"/>
- </cd:keywords>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="textreference" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="odkaznatext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="pagereference" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="odkaznastranu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="reference" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="odkaz"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="usereferences" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="uzijodkazy"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definereference" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="definujodkaz"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:reference list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definereferenceformat" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="definujformatodkazu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="vlevo">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="vpravo">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="text">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="popisek">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="hl">
- <cd:sequence>
- <cd:string value="hl"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="vl">
- <cd:sequence>
- <cd:string value="vl"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="godown" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="jdidolu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="whitespace" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="bilemisto"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="nowhitespace" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="zadnebilemisto"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="crlf" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="crlf"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="space" file="syst-pln.tex">
- <cd:sequence>
- <cd:string value="mezera"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="fixedspaces" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="tvrdemezery"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="emptylines" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="emptylines"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="nospace" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="zadnamezera"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="packed" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="zhustene"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupdescriptions" file="core-des.tex">
- <cd:sequence>
- <cd:string value="nastavpopisy"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="stylhlavicky">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="barva">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="prizpusobive"/>
- <cd:constant type="siroky"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vzdalenost">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vzor">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="text">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="closesymbol">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="closecommand">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="titleleft">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="titleright">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="vzdalenosttitulek">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="styltitulek">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="barvatitulek">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="zarovnani">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="marginalie">
- <cd:constant type="standardni"/>
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="misto">
- <cd:constant type="vlevo"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="vrsek"/>
- <cd:constant type="semknuto"/>
- <cd:constant type="naokraji"/>
- <cd:constant type="vlevo"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="visici"/>
- </cd:parameter>
- <cd:parameter name="headcommand">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="zaveseni">
- <cd:constant type="prizpusobive"/>
- <cd:constant type="siroky"/>
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="mezi">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="odsadpristi">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="odsazovani">
- <cd:resolve name="indenting"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupenumerations" file="core-des.tex">
- <cd:sequence>
- <cd:string value="nastavvycty"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="definujpopis"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineenumeration" file="core-des.tex">
- <cd:sequence>
- <cd:string value="definujvycet"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="nastavvycty"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="enumeration" generated="yes">
- <cd:sequence>
- <cd:variable value="vycet"/>
- </cd:sequence>
- <cd:arguments>
- <cd:nothing interactive="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="enumeration" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="vycet"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="definedescription" file="core-des.tex">
- <cd:sequence>
- <cd:string value="definujpopis"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="nastavpopisy"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="description" generated="yes">
- <cd:sequence>
- <cd:variable value="popis"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:nothing/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="description" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="popis"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupindentations" file="core-des.tex">
- <cd:sequence>
- <cd:string value="nastavodsazeni"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stylhlavicky">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="prizpusobive"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="text">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="vzor">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="vzdalenost">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="oddelovac">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineindenting" file="core-des.tex">
- <cd:sequence>
- <cd:string value="definujodsazovani"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="nastavodsazeni"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="indentation" generated="yes" file="core-spa.tex">
- <cd:sequence>
- <cd:variable value="indentation"/>
- </cd:sequence>
- <cd:arguments>
- <cd:nothing/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definelabel" file="core-des.tex">
- <cd:sequence>
- <cd:string value="definujpopisek"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="text">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="misto">
- <cd:constant type="naokraji"/>
- <cd:constant type="dotextu"/>
- </cd:parameter>
- <cd:parameter name="zpusob">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="dobloku">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="stylhlavicky">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="barvahlavicky">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="labeling" generated="yes">
- <cd:sequence>
- <cd:variable value="labeling"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupcolumns" file="page-mul.tex">
- <cd:sequence>
- <cd:string value="nastavsloupce"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="nvrsek">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="linka">
- <cd:constant type="zap"/>
- <cd:constant type="vyp"/>
- </cd:parameter>
- <cd:parameter name="vyska">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="tolerance">
- <cd:constant type="velmistriktni"/>
- <cd:constant type="striktni"/>
- <cd:constant type="tolerantni"/>
- <cd:constant type="velmitolerantni"/>
- <cd:constant type="natahnout"/>
- </cd:parameter>
- <cd:parameter name="vzdalenost">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rovnovaha">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="zarovnani">
- <cd:constant type="text"/>
- <!-- cd:constant type="yes"/ -->
- <!-- cd:constant type="no"/ -->
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="prazdny">
- <cd:constant type="fixne"/>
- <cd:constant type="pulradku"/>
- <cd:constant type="radek"/>
- <cd:constant type="prizpusobive"/>
- <cd:constant type="velke"/>
- <cd:constant type="stredni"/>
- <cd:constant type="male"/>
- </cd:parameter>
- <cd:parameter name="volba">
- <cd:constant type="pozadi"/>
- </cd:parameter>
- <cd:parameter name="smer">
- <cd:constant type="vlevo"/>
- <cd:constant type="vpravo"/>
- </cd:parameter>
- <cd:inherit name="nastavoramovani"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="columns" type="environment">
- <cd:sequence>
- <cd:string value="columns"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="nastavsloupce"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definetext" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="definujtext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="zahlavi"/>
- <cd:constant type="upati"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupheader" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="nastavzahlavi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text" default="yes"/>
- <cd:constant type="marginalie"/>
- <cd:constant type="hrana"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="status">
- <cd:constant type="normalni"/>
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- <cd:constant type="prazdne"/>
- <cd:constant type="vysoko"/>
- <cd:constant type="zadny"/>
- <cd:constant type="zadneznaceni"/>
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stylvlevo">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stylvpravo">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="sirkavlevo">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="sirkavpravo">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfooter" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="nastavupati"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:inherit name="nastavzahlavi"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="nastavzahlavi"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptext" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="nastavtext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:inherit name="nastavzahlavi"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="nastavzahlavi"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptop" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="nastavhorejsek"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:inherit name="nastavzahlavi"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="nastavzahlavi"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupbottom" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="nastavspodek"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:inherit name="nastavzahlavi"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="nastavzahlavi"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="noheaderandfooterlines" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="zadnezahlaviaupati"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="notopandbottomlines" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="zadnehorniadolniradky"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupheadertexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="nastavtextyzahlavi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfootertexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="nastavtextyupati"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptexttexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="nastavtexttexty"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptoptexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="nastavhornitexty"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupbottomtexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="nastavdolnitexty"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="settextcontent" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="settextcontent"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:resolve name="layout-v"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="resettextcontent" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="resettextcontent"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:resolve name="layout-v"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant name="lefttext"/>
- <cd:constant name="middletext"/>
- <cd:constant name="righttext"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definemarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="definujznaceni"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="couplemarking" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="propojeneznaceni"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="decouplemarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="rozpojeneznaceni"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="resetmarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="resetznaceni"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupmarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="nastavznaceni"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="oddelovac">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="expanzen">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="marking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="znaceni"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="getmarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="ziskejznaceni"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="prvni"/>
- <cd:constant type="posledni"/>
- <cd:constant type="predchozi"/>
- <cd:constant type="obe"/>
- <cd:constant type="vse"/>
- <cd:constant type="aktualni"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="nomarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="zadneznaceni"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuplayout" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="nastavvzhled"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="prizpusobive"/>
- <cd:constant type="nastred"/>
- </cd:parameter>
- <cd:parameter name="vyska">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="prizpusobive"/>
- <cd:constant type="nastred"/>
- </cd:parameter>
- <cd:parameter name="zpetnamezera">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="svrchnimezera">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="marginalie">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="levyokraj">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="pravyokraj">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="zahlavi">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="upati">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vrsek">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="spodek">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="levahrana">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="pravahrana">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vzdalenostzahlavi">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vzdalenostupati">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vzdalenostvrsku">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vzdalenostspodku">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vzdalenostlevehookraje">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vzdalenostpravehookraje">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vzdalenostlevehrany">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vzdalenostpravehrany">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="horoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offsethlavicky">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="barva">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="znaceni">
- <cd:constant type="zap"/>
- <cd:constant type="vyp"/>
- <cd:constant type="barevne"/>
- <cd:constant type="rastr"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="misto">
- <cd:constant type="vlevo"/>
- <cd:constant type="nastred"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="spodek"/>
- <cd:constant type="vrsek"/>
- <cd:constant type="jednostranne"/>
- <cd:constant type="dvoustranny"/>
- </cd:parameter>
- <cd:parameter name="meritko">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="nx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ny">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="dx">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="dy">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="radky">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="sloupce">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="vzdalenostsloupcu">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="mrizka">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="bottomspace">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="cutspace">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="textdistance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="sirkatextu">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="textmargin">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="clipoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stranka">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="papir">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="adaptlayout" file="page-lay.tex">
- <cd:sequence>
- <cd:string value="prizpusobvzhled"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="vyska">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="radky">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showgrid" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="ukazmrizku"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="reset"/>
- <cd:constant type="vrsek"/>
- <cd:constant type="spodek"/>
- <cd:constant type="zadny"/>
- <cd:constant type="vse"/>
- <cd:constant type="radky"/>
- <cd:constant type="ramecek"/>
- <cd:constant type="nonumber"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="vlevo"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placeongrid" file="core-grd.tex">
- <cd:sequence>
- <cd:string value="umistinamrizku"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:inherit name="premistinamrizku"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="moveongrid" file="core-grd.tex">
- <cd:sequence>
- <cd:string value="premistinamrizku"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="vrsek"/>
- <cd:constant type="obe"/>
- <cd:constant type="spodek"/>
- <cd:constant type="-top"/>
- <cd:constant type="-both"/>
- <cd:constant type="-bottom"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="vysoko"/>
- <cd:constant type="nastred"/>
- <cd:constant type="nizko"/>
- <cd:constant type="stranka"/>
- <cd:constant type="zadny"/>
- <cd:constant type="standardni" default="yes"/>
- <cd:constant type="siroky"/>
- <cd:constant type="prizpusobive"/>
- <cd:constant type="podlehloubky"/>
- <cd:constant type="radek"/>
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="project" type="environment">
- <cd:sequence>
- <cd:string value="projekt"/>
- </cd:sequence>
- <cd:arguments>
- <cd:file/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="environment" type="environment">
- <cd:sequence>
- <cd:string value="prostredi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:file/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="product" type="environment">
- <cd:sequence>
- <cd:string value="produkt"/>
- </cd:sequence>
- <cd:arguments>
- <cd:file/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="component" type="environment">
- <cd:sequence>
- <cd:string value="komponenta"/>
- </cd:sequence>
- <cd:arguments>
- <cd:file/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="nomorefiles">
- <cd:sequence>
- <cd:string value="zadnedalsisoubory"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupinterlinespace" variant="1">
- <cd:sequence>
- <cd:string value="nastavmeziradkovoumezeru"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="reset"/>
- <cd:constant type="male" default="yes"/>
- <cd:constant type="stredni"/>
- <cd:constant type="auto"/>
- <cd:constant type="velke"/>
- <cd:constant type="zap"/>
- <cd:constant type="vyp"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupinterlinespace" variant="2">
- <cd:sequence>
- <cd:string value="nastavmeziradkovoumezeru"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="vyska">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="hloubka">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="radek">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vrsek">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="spodek">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuppagenumbering" file="page-num.tex">
- <cd:sequence>
- <cd:string value="nastavcislovanistran"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="alternativa">
- <cd:constant type="jednostranne"/>
- <cd:constant type="dvoustranny"/>
- </cd:parameter>
- <cd:parameter name="misto">
- <cd:constant type="zahlavi"/>
- <cd:constant type="upati"/>
- <cd:constant type="vlevo"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="nastred"/>
- <cd:constant type="marginalie"/>
- <cd:constant type="textovahrana"/>
- <cd:constant type="vlevo"/>
- <cd:constant type="vpravo"/>
- </cd:parameter>
- <cd:parameter name="konverze">
- <cd:constant type="cisla"/>
- <cd:constant type="pismena"/>
- <cd:constant type="Pismena"/>
- <cd:constant type="rimskecislice"/>
- <cd:constant type="Rimskecislice"/>
- </cd:parameter>
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="vlevo">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="vpravo">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="zpusob">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="text">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="oddelovaccisla">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="oddelovactextu">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="cd:sectionnumber">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="oddelovac">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="prikaz">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupnarrower" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="nastavzuzeni"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="vlevo">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vpravo">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stredni">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="define" file="syst-ext.tex">
- <cd:sequence>
- <cd:string value="definuj"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- <cd:csname/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="usecommands" file="core-sys.tex">
- <cd:sequence>
- <cd:string value="uzijprikazy"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definestartstop" file="core-sys.tex">
- <cd:sequence>
- <cd:string value="definujstartstop"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="prikazy">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupheads" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="nastavnadpisy"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="cislooddilu">
- <cd:constant type="ano"/>
- <cd:constant type="cd:number"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="alternativa">
- <cd:constant type="normalni"/>
- <cd:constant type="marginalie"/>
- <cd:constant type="nastred"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="odstavec"/>
- </cd:parameter>
- <cd:parameter name="oddelovac">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="predel">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="zarovnani">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="zarovnejtitul">
- <cd:constant type="ano"/>
- <cd:constant type="plvouciobjekt"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="tolerance">
- <cd:constant type="velmistriktni"/>
- <cd:constant type="striktni"/>
- <cd:constant type="tolerantni"/>
- <cd:constant type="velmitolerantni"/>
- <cd:constant type="natahnout"/>
- </cd:parameter>
- <cd:parameter name="odsadpristi">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="prikaz">
- <cd:constant type="cd:twoarguments"/>
- </cd:parameter>
- <cd:parameter name="marginalie">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupcaptions" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="nastavpopisky"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="misto">
- <cd:constant type="vrsek"/>
- <cd:constant type="spodek"/>
- <cd:constant type="zadny"/>
- <cd:constant type="vysoko"/>
- <cd:constant type="nizko"/>
- <cd:constant type="nastred"/>
- <cd:constant type="vlevo"/>
- <cd:constant type="nastred"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="lefthanging"/>
- <cd:constant type="righthanging"/>
- <cd:constant type="levyokraj"/>
- <cd:constant type="pravyokraj"/>
- <cd:constant type="innermargin"/>
- <cd:constant type="outermargin"/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="prizpusobive"/>
- <cd:constant type="siroky"/>
- <cd:constant type="max"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="minsirka">
- <cd:constant type="prizpusobive"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stylhlavicky">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="cislo">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- <cd:constant type="zadny"/>
- </cd:parameter>
- <cd:parameter name="mezi">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="zarovnani">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="konverze">
- <cd:constant type="cisla"/>
- <cd:constant type="pismena"/>
- <cd:constant type="Pismena"/>
- <cd:constant type="rimskecislice"/>
- <cd:constant type="Rimskecislice"/>
- </cd:parameter>
- <cd:parameter name="zpusob">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="oddelovac">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="predel">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="prikaz">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="vzdalenost">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupcaption" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="nastavpopisek"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="nastavpopisky"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfloats" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="nastavplvouciobjekty"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="misto">
- <cd:constant type="vlevo"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="nastred"/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="prizpusobive"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="marginalie">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="mezerapred">
- <cd:constant type="male"/>
- <cd:constant type="stredni"/>
- <cd:constant type="velke"/>
- <cd:constant type="zadny"/>
- </cd:parameter>
- <cd:parameter name="mezeraza">
- <cd:constant type="male"/>
- <cd:constant type="stredni"/>
- <cd:constant type="velke"/>
- <cd:constant type="zadny"/>
- </cd:parameter>
- <cd:parameter name="bocnimezerapred">
- <cd:constant type="male"/>
- <cd:constant type="stredni"/>
- <cd:constant type="velke"/>
- <cd:constant type="zadny"/>
- </cd:parameter>
- <cd:parameter name="bocnimezeraza">
- <cd:constant type="male"/>
- <cd:constant type="stredni"/>
- <cd:constant type="velke"/>
- <cd:constant type="zadny"/>
- </cd:parameter>
- <cd:parameter name="odsadpristi">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="nvrsek">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="nspodek">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="nradky">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="implicitni">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="tolerance">
- <cd:constant type="0"/>
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- </cd:parameter>
- <cd:parameter name="vzdalenostlevehookraje">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vzdalenostpravehookraje">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="sidealign">
- <cd:constant type="normalni"/>
- <cd:constant type="radek"/>
- </cd:parameter>
- <cd:parameter name="cislovani">
- <cd:constant type="ano"/>
- <cd:constant type="nocheck"/>
- </cd:parameter>
- <cd:inherit name="nastavoramovani"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfloatsplitting" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="nastavdeleniplvoucichobjektu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="konverze">
- <cd:constant type="cisla"/>
- <cd:constant type="pismena"/>
- <cd:constant type="Pismena"/>
- <cd:constant type="rimskecislice"/>
- <cd:constant type="Rimskecislice"/>
- </cd:parameter>
- <cd:parameter name="radky">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="splitfloat" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="rozdelplvouciobjekt"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="nastavdeleniplvoucichobjektu"/>
- </cd:assignments>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupoppositeplacing" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="nastavumisteniprotejsku"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="mezi">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="opposite" type="environment">
- <cd:sequence>
- <cd:string value="opposite"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setuphyphenmark" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="nastavdelitko"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments>
- <cd:parameter name="znak">
- <cd:constant type="--"/>
- <cd:constant type="---"/>
- <cd:constant type="-"/>
- <cd:constant type="~"/>
- <cd:constant type="("/>
- <cd:constant type=")"/>
- <cd:constant type="="/>
- <cd:constant type="/"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuppositioning" file="page-lyr.tex">
- <cd:sequence>
- <cd:string value="nastavumistovani"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="prekryv"/>
- </cd:parameter>
- <cd:parameter name="jednotka">
- <cd:constant type="cm"/>
- <cd:constant type="pt"/>
- <cd:constant type="em"/>
- <cd:constant type="mm"/>
- <cd:constant type="ex"/>
- <cd:constant type="es"/>
- <cd:constant type="in"/>
- </cd:parameter>
- <cd:parameter name="faktor">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="meritko">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="offset">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="xkrok">
- <cd:constant type="absolutni"/>
- <cd:constant type="relativni"/>
- </cd:parameter>
- <cd:parameter name="ykrok">
- <cd:constant type="absolutni"/>
- <cd:constant type="relativni"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="positioning" type="environment">
- <cd:sequence>
- <cd:string value="positioning"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="grid" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="mrizka"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="x">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="y">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="nx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ny">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="dx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="dy">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="xkrok">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ykrok">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="offset">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="faktor">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="meritko">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="jednotka">
- <cd:constant type="cm"/>
- <cd:constant type="pt"/>
- <cd:constant type="em"/>
- <cd:constant type="mm"/>
- <cd:constant type="ex"/>
- <cd:constant type="es"/>
- <cd:constant type="in"/>
- </cd:parameter>
- <cd:parameter name="misto">
- <cd:constant type="vlevo"/>
- <cd:constant type="nastred"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="page" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="strana"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="ano" default="yes"/>
- <cd:constant type="zlom"/>
- <cd:constant type="ne"/>
- <cd:constant type="nastaveni"/>
- <cd:constant type="vysokapriorita"/>
- <cd:constant type="vlevo"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="zablokovat"/>
- <cd:constant type="posledni"/>
- <cd:constant type="ctyrnasobny"/>
- <cd:constant type="sude"/>
- <cd:constant type="liche"/>
- <cd:constant type="prazdny"/>
- <cd:constant type="prazdne"/>
- <cd:constant type="reset"/>
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupreferencing" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="nastavodkazovani"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="cd:sectionnumber">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="prefix">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="interakce">
- <cd:constant type="popisek"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="vse"/>
- <cd:constant type="symbol"/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vlevo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="vpravo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="konverzesouboru">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- <cd:constant type="male"/>
- <cd:constant type="velke"/>
- </cd:parameter>
- <cd:parameter name="oddelovac">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="autofile">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- <cd:constant type="stranka"/>
- </cd:parameter>
- <cd:parameter name="globalne">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupurl" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="nastavurl"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="urlalternativa">
- <cd:constant type="zadny"/>
- <cd:constant type="obe"/>
- <cd:constant type="pred"/>
- <cd:constant type="po"/>
- </cd:parameter>
- <cd:parameter name="prostorurl">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="writetoreferencelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="zapisdoseznamuodkazu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placereferencelist">
- <cd:sequence>
- <cd:string value="placereferencelist"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definereferencelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="definujseznamodkazu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="nastavseznamodkazu"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupreferencelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="nastavseznamodkazu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="kriterium">
- <cd:constant type="cd:section"/>
- <cd:constant type="lokalne"/>
- <cd:constant type="predchozi"/>
- <cd:constant type="vse"/>
- </cd:parameter>
- <cd:parameter name="prikaz">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="writetolist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="zapisdoseznamu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:section"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="writebetweenlist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="zapismeziseznam"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:section"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="nolist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="zadnyseznam"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="listsymbol" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="listsymbol"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="umistiseznam"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="nastavseznam"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="determinelistcharacteristics" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="stanovcharakteristickuseznamu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="nastavseznam"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placecombinedlist" variant="1" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="umistikombinovanyseznam"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="nastavkombinovanyseznam"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="definujseznam"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="nastavseznam"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuplist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="nastavseznam"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="alternativa">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- <cd:constant type="..."/>
- <cd:constant type="zadny"/>
- <cd:constant type="prikaz"/>
- </cd:parameter>
- <cd:parameter name="propojeni">
- <cd:constant type="zap"/>
- <cd:constant type="vyp"/>
- </cd:parameter>
- <cd:parameter name="kriterium">
- <cd:constant type="cd:section"/>
- <cd:constant type="lokalne"/>
- <cd:constant type="predchozi"/>
- <cd:constant type="aktualni"/>
- <cd:constant type="vse"/>
- </cd:parameter>
- <cd:parameter name="hranicestranky">
- <cd:constant type="cd:list"/>
- </cd:parameter>
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stylcisla">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="styltextu">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stylstranky">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="barva">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="prikaz">
- <cd:constant type="cd:threearguments"/>
- </cd:parameter>
- <cd:parameter name="ciselnyprikaz">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="textovyprikaz">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="strankovyprikaz">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="interakce">
- <cd:constant type="cd:sectionnumber"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="cislostranky"/>
- <cd:constant type="vse"/>
- </cd:parameter>
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="mezi">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="vlevo">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="vpravo">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="popisek">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="prefix">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- <cd:constant type="zadny"/>
- </cd:parameter>
- <cd:parameter name="cislostranky">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="cislonadpisu">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="cd:sectionnumber">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="zarovnejtitul">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="marginalie">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="prizpusobive"/>
- </cd:parameter>
- <cd:parameter name="vyska">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="prizpusobive"/>
- <cd:constant type="siroky"/>
- </cd:parameter>
- <cd:parameter name="hloubka">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="prizpusobive"/>
- <cd:constant type="siroky"/>
- </cd:parameter>
- <cd:parameter name="vzdalenost">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="oddelovac">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="predel">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="symbol">
- <cd:constant type="zadny"/>
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- <cd:constant type="3"/>
- <cd:constant type="..."/>
- </cd:parameter>
- <cd:parameter name="expanzen">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- <cd:constant type="prikaz"/>
- </cd:parameter>
- <cd:parameter name="maxsirka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:inherit name="oramovani"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuplistalternative" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="setuplistalternative"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="no">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- <!-- cd:constant type="cd:name"/ -->
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="prikaz">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="natahnout">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vzdalenost">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definecombinedlist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="definujkombinovanyseznam"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:list"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="nastavkombinovanyseznam"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupcombinedlist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="nastavkombinovanyseznam"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="uroven">
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- <cd:constant type="3"/>
- <cd:constant type="4"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="aktualni"/>
- </cd:parameter>
- <cd:inherit name="nastavseznam"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placecombinedlist" variant="2" generated="yes" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="place"/>
- <cd:variable value="combinedlist"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="nastavkombinovanyseznam"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="completecombinedlist" generated="yes">
- <cd:sequence>
- <cd:string value="complete"/>
- <cd:variable value="combinedlist"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="nastavkombinovanyseznam"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupnumbering" file="core-num.tex">
- <cd:sequence>
- <cd:string value="nastavcislovani"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="zpusob">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupformulae">
- <cd:sequence>
- <cd:string value="setupformulae"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="misto">
- <cd:constant type="vlevo"/>
- <cd:constant type="vpravo"/>
- </cd:parameter>
- <cd:parameter name="vlevo">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="vpravo">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="zarovnani">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="volba">
- <cd:constant type="nastred"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="vzdalenost">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="marginalie">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="standardni"/>
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="zarovnani">
- <cd:constant type="flushleft"/>
- <cd:constant type="flushright"/>
- <cd:constant type="nastred"/>
- <cd:constant type="center"/>
- </cd:parameter>
- <cd:parameter name="levyokraj">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="pravyokraj">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="odsadpristi">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="alternativa">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="mezerapred">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="oddelovac">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="konverze">
- <cd:constant type="cisla"/>
- <cd:constant type="pismena"/>
- <cd:constant type="Pismena"/>
- <cd:constant type="rimskecislice"/>
- <cd:constant type="Rimskecislice"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="publication" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="publikace"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuppublications" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="nastavpublikace"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="alternativa">
- <cd:constant type="apa"/>
- <cd:constant type="normalni"/>
- </cd:parameter>
- <cd:inherit name="nastavvycty"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuplines" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="nastavradky"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="mezi">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="odsazovani">
- <cd:resolve name="indenting"/>
- </cd:parameter>
- <cd:parameter name="mezera">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="lines" type="environment">
- <cd:sequence>
- <cd:string value="lines"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupparagraphnumbering" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="nastavcislovaniodstavcu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- <cd:constant type="reset"/>
- <cd:constant type="radek"/>
- </cd:parameter>
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="vzdalenost">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuplinenumbering" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="nastavcislovaniradku"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="konverze">
- <cd:constant type="cisla"/>
- <cd:constant type="pismena"/>
- <cd:constant type="Pismena"/>
- <cd:constant type="rimskecislice"/>
- <cd:constant type="Rimskecislice"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="start">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="krok">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="misto">
- <cd:constant type="dotextu"/>
- <cd:constant type="naokraji"/>
- </cd:parameter>
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="prefix">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="odkazujici">
- <cd:constant type="zap"/>
- <cd:constant type="vyp"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="linenumbering" type="environment">
- <cd:sequence>
- <cd:string value="linenumbering"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="pokracovat"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="line" type="environment">
- <cd:sequence>
- <cd:string value="line"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="someline" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="nejakyradek"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="inline" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="vradku"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupinmargin" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="nastavmarginalie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="vlevo"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="misto">
- <cd:constant type="vlevo"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="obe"/>
- </cd:parameter>
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="zarovnani">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="radek">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="vzdalenost">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="oddelovac">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vzdalenost">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stack">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:inherit name="nastavoramovani"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuppagenumber" file="page-num.tex">
- <cd:sequence>
- <cd:string value="nastavcislostrany"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="cislo">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- <cd:constant type="drzet"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupsubpagenumber" file="page-num.tex">
- <cd:sequence>
- <cd:string value="nastavpodcislostrany"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="zpusob">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- <cd:constant type="zadny"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupblank">
- <cd:sequence>
- <cd:string value="nastavpreskok"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="normalni" default="yes"/>
- <cd:constant type="standardni"/>
- <cd:constant type="radek"/>
- <cd:constant type="cd:dimension"/>
- <cd:constant type="velke"/>
- <cd:constant type="stredni"/>
- <cd:constant type="male"/>
- <cd:constant type="fixne"/>
- <cd:constant type="prizpusobive"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineblank" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="definujpreskok"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:inherit name="nastavpreskok"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definepapersize" file="page-lay.tex">
- <cd:sequence>
- <cd:string value="definujvelikostpapiru"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vyska">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="meritko">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuppaper" file="page-lay.tex">
- <cd:sequence>
- <cd:string value="setuppaper"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="papir">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="stranka">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="nx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ny">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vyska">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="svrchnimezera">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="zpetnamezera">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="volba">
- <cd:constant type="max"/>
- <cd:constant type="prizpusobive"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuppapersize" file="page-lay.tex">
- <cd:sequence>
- <cd:string value="nastavvelikostpapiru"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="A3"/>
- <cd:constant type="A4" default="yes"/>
- <cd:constant type="A5"/>
- <cd:constant type="A6"/>
- <cd:constant type="letter"/>
- <cd:constant type="..."/>
- <cd:constant type="CD"/>
- <cd:constant type="cd:name"/>
- <cd:constant type="nasirku"/>
- <cd:constant type="zrcadleno"/>
- <cd:constant type="otoceno"/>
- <cd:constant type="90"/>
- <cd:constant type="180"/>
- <cd:constant type="270"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="A3"/>
- <cd:constant type="A4" default="yes"/>
- <cd:constant type="A5"/>
- <cd:constant type="A6"/>
- <cd:constant type="letter"/>
- <cd:constant type="..."/>
- <cd:constant type="cd:name"/>
- <cd:constant type="nasirku"/>
- <cd:constant type="zrcadleno"/>
- <cd:constant type="otoceno"/>
- <cd:constant type="negativ"/>
- <cd:constant type="90"/>
- <cd:constant type="180"/>
- <cd:constant type="270"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuparranging" file="page-imp.tex">
- <cd:sequence>
- <cd:string value="nastavusporadani"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="zablokovat"/>
- <cd:constant type="2*16"/>
- <cd:constant type="2*8"/>
- <cd:constant type="2*4"/>
- <cd:constant type="2*2"/>
- <cd:constant type="2**2"/>
- <cd:constant type="2*2*4"/>
- <cd:constant type="2*4*2"/>
- <cd:constant type="2UP"/>
- <cd:constant type="2DOWN"/>
- <cd:constant type="2SIDE"/>
- <cd:constant type="2TOP"/>
- <cd:constant type="zrcadleno"/>
- <cd:constant type="otoceno"/>
- <cd:constant type="dvoustranny"/>
- <cd:constant type="negativ"/>
- <cd:constant type="pozadi"/>
- <cd:constant type="90"/>
- <cd:constant type="180"/>
- <cd:constant type="270"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showprint">
- <cd:sequence>
- <cd:string value="ukazvytisk"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:inherit name="nastavvelikostpapiru"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:inherit name="nastavvelikostpapiru"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="nastavvzhled"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definelogo" file="page-log.tex">
- <cd:sequence>
- <cd:string value="definujlogo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="vrsek"/>
- <cd:constant type="zahlavi"/>
- <cd:constant type="upati"/>
- <cd:constant type="spodek"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="zadny"/>
- <cd:constant type="stranka"/>
- <cd:constant type="levahrana"/>
- <cd:constant type="levyokraj"/>
- <cd:constant type="vlevo"/>
- <cd:constant type="nastred"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="pravyokraj"/>
- <cd:constant type="pravahrana"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="prikaz">
- <cd:constant type="cd:command"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placelogos" file="page-log.tex">
- <cd:sequence>
- <cd:string value="umistiloga"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupwhitespace">
- <cd:sequence>
- <cd:string value="nastavbilamista"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="zadny" default="yes"/>
- <cd:constant type="male"/>
- <cd:constant type="stredni"/>
- <cd:constant type="velke"/>
- <cd:constant type="radek"/>
- <cd:constant type="fixne"/>
- <cd:constant type="fixuj"/>
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupindenting">
- <cd:sequence>
- <cd:string value="nastavodsazovani"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:resolve name="indenting"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definesectionblock" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="definujbloksekce"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="nastavbloksekce"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupsectionblock" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="nastavbloksekce"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="cislo">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="stranka">
- <cd:constant type="ano"/>
- <cd:constant type="vpravo"/>
- </cd:parameter>
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definesection" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="definujsekci"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupsection" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="nastavsekci"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="konverze">
- <cd:constant type="cisla"/>
- <cd:constant type="pismena"/>
- <cd:constant type="Pismena"/>
- <cd:constant type="rimskecislice"/>
- <cd:constant type="Rimskecislice"/>
- </cd:parameter>
- <cd:parameter name="predchozicislo">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuphead" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="nastavnadpis"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:section"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="styltextu">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stylcisla">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="barva">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="barvatextu">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="barvacisla">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="cislo">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="vlastnicislo">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="stranka">
- <cd:constant type="vlevo"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="ano"/>
- </cd:parameter>
- <cd:parameter name="pokracovat">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="zahlavi">
- <cd:constant type="zadny"/>
- <cd:constant type="prazdne"/>
- <cd:constant type="vysoko"/>
- <cd:constant type="zadneznaceni"/>
- </cd:parameter>
- <cd:parameter name="text">
- <cd:constant type="zadny"/>
- <cd:constant type="prazdne"/>
- <cd:constant type="vysoko"/>
- <cd:constant type="zadneznaceni"/>
- </cd:parameter>
- <cd:parameter name="upati">
- <cd:constant type="zadny"/>
- <cd:constant type="prazdne"/>
- <cd:constant type="vysoko"/>
- <cd:constant type="zadneznaceni"/>
- </cd:parameter>
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="mezi">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="alternativa">
- <cd:constant type="normalni"/>
- <cd:constant type="naokraji"/>
- <cd:constant type="nastred"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="zaveseni">
- <cd:constant type="zadny"/>
- <cd:constant type="siroky"/>
- <cd:constant type="prizpusobive"/>
- <cd:constant type="radek"/>
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="prikaz">
- <cd:constant type="cd:twoarguments"/>
- </cd:parameter>
- <cd:parameter name="ciselnyprikaz">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="textovyprikaz">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="deepnumbercommand">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="deeptextcommand">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="prefix">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="umistihlavicku">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- <cd:constant type="prazdne"/>
- </cd:parameter>
- <cd:parameter name="zvysujicicislo">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- <cd:constant type="cd:list"/>
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="resetnumber">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="soubor">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="expanzen">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- <cd:constant type="prikaz"/>
- </cd:parameter>
- <cd:parameter name="textmarginalie">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:inherit name="nastavnadpisy"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupheadnumber" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="nastavcislonadpisu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:section"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:number"/>
- <cd:constant type="+cd:number"/>
- <cd:constant type="-cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="headnumber">
- <cd:sequence>
- <cd:string value="cislonadpisu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:section"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="determineheadnumber" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="stanovcislonadpisu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:section"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="currentheadnumber" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="aktualnicislonadpisu"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="nextsection" generated="yes" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="next"/>
- <cd:variable value="sekce"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="definehead" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="definujnadpis"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:section"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupitemgroup" file="core-itm.tex">
- <cd:sequence>
- <cd:string value="setupitemgroup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:number"/>
- <cd:constant type="kazdy"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="standardni" default="yes"/>
- <cd:constant type="siroky"/>
- <cd:constant type="semknuto"/>
- <cd:constant type="zhustene"/>
- <cd:constant type="rozbalene"/>
- <cd:constant type="zadnabila"/>
- <cd:constant type="pred"/>
- <cd:constant type="po"/>
- <cd:constant type="predel"/>
- <cd:constant type="spojeno"/>
- <cd:constant type="naokraji"/>
- <cd:constant type="naokraji"/>
- <cd:constant type="autouvod"/>
- <cd:constant type="uvolnene"/>
- <cd:constant type="opakovat"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="odstavec"/>
- <cd:constant type="dotextu"/>
- <cd:constant type="nahodny"/>
- <cd:constant type="reverse"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:parameter name="marginalie">
- <cd:constant type="ne"/>
- <cd:constant type="standardni"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="levyokraj">
- <cd:constant type="ne"/>
- <cd:constant type="standardni"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="pravyokraj">
- <cd:constant type="ne"/>
- <cd:constant type="standardni"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vzdalenost">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="faktor">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="polozky">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="start">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="mezi">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="vlevo">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="vpravo">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="predhlavickou">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="pohlavicce">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="stylhlavicky">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stylsnacky">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stylsymboly">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="predel">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="symbol">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="zarovnani">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="symzarovnani">
- <cd:resolve name="symalign"/>
- </cd:parameter>
- <cd:parameter name="odsadpristi">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="itemgroup" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="itemgroup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="a"/>
- <cd:constant type="A"/>
- <cd:constant type="KA"/>
- <cd:constant type="n"/>
- <cd:constant type="N"/>
- <cd:constant type="m"/>
- <cd:constant type="r"/>
- <cd:constant type="R"/>
- <cd:constant type="KR"/>
- <cd:constant type="cd:number"/>
- <cd:constant type="pokracovat"/>
- <cd:constant type="standardni" default="yes"/>
- <cd:constant type="siroky"/>
- <cd:constant type="semknuto"/>
- <cd:constant type="zhustene"/>
- <cd:constant type="predel"/>
- <cd:constant type="spojeno"/>
- <cd:constant type="naokraji"/>
- <cd:constant type="naokraji"/>
- <cd:constant type="uvod"/>
- <cd:constant type="sloupce"/>
- <cd:constant type="text"/>
- <cd:constant type="odstavec"/>
- <cd:constant type="opakovat"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="setupitemgroup"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="item">
- <cd:sequence>
- <cd:string value="polozka"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="but">
- <cd:sequence>
- <cd:string value="spodek"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference interactive="exclusive"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="its">
- <cd:sequence>
- <cd:string value="pol"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="ran">
- <cd:sequence>
- <cd:string value="ran"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="head">
- <cd:sequence>
- <cd:string value="nadpis"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="mar">
- <cd:sequence>
- <cd:string value="okr"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="sub">
- <cd:sequence>
- <cd:string value="sub"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="sym" file="core-itm.tex">
- <cd:sequence>
- <cd:string value="sym"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="nop">
- <cd:sequence>
- <cd:string value="nop"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="defineregister" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="definujrejstrik"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:plural"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupregister" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="nastavrejstrik"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="rovnovaha">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="zarovnani">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stylstranky">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="styltextu">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="indikator">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="propojeni">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="cd:sectionnumber">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="kriterium">
- <cd:constant type="cd:section"/>
- <cd:constant type="lokalne"/>
- <cd:constant type="vse"/>
- </cd:parameter>
- <cd:parameter name="vzdalenost">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="symbol">
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- <cd:constant type="..."/>
- <cd:constant type="n"/>
- <cd:constant type="a"/>
- <cd:constant type="..."/>
- <cd:constant type="zadny"/>
- </cd:parameter>
- <cd:parameter name="interakce">
- <cd:constant type="cislostranky"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="expanzen">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- <cd:constant type="prikaz"/>
- </cd:parameter>
- <cd:parameter name="odkazujici">
- <cd:constant type="zap"/>
- <cd:constant type="vyp"/>
- </cd:parameter>
- <cd:parameter name="prikaz">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="misto">
- <cd:constant type="vlevo"/>
- <cd:constant type="nastred"/>
- <cd:constant type="vpravo"/>
- </cd:parameter>
- <cd:parameter name="maxsirka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="neznamyodkaz">
- <cd:constant type="prazdne"/>
- <cd:constant type="zadny"/>
- </cd:parameter>
- <cd:parameter name="alternativa">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="A"/>
- <cd:constant type="B"/>
- </cd:parameter>
- <cd:parameter name="prefix">
- <cd:constant type="obe"/>
- <cd:constant type="prvni"/>
- <cd:constant type="zadny"/>
- </cd:parameter>
- <cd:parameter name="compress">
- <cd:constant type="ne"/>
- <cd:constant type="ano"/>
- </cd:parameter>
- <cd:parameter name="deeptextcommand">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="register" generated="yes" file="core-reg.tex">
- <cd:sequence>
- <cd:variable value="rejstrik"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:index list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="startregister" generated="yes" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="start"/>
- <cd:variable value="rejstrik"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:index list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="writetoregister" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="zapisdorejstriku"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:index list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="coupledregister" generated="yes">
- <cd:sequence>
- <cd:string value="coupled"/>
- <cd:variable value="rejstrik"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:index/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="coupleregister" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="propojenyrejstrik"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placeregister" variant="1" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="umistirejstrik"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="nastavrejstrik"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="seeregister" generated="yes">
- <cd:sequence>
- <cd:string value="see"/>
- <cd:variable value="rejstrik"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content/>
- <cd:index list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="completeregister" generated="yes" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="complete"/>
- <cd:variable value="rejstrik"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="yes" optional="yes" list="yes">
- <cd:inherit name="nastavrejstrik"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placeregister" variant="2" generated="yes" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="place"/>
- <cd:variable value="rejstrik"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="yes" optional="yes" list="yes">
- <cd:inherit name="nastavrejstrik"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definesynonyms" file="core-syn.tex">
- <cd:sequence>
- <cd:string value="definujsynonyma"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:plural"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:command"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:command"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupsynonyms" file="core-syn.tex">
- <cd:sequence>
- <cd:string value="nastavsynonyma"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="styltextu">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stylsynonyma">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="misto">
- <cd:constant type="vlevo"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="vrsek"/>
- <cd:constant type="semknuto"/>
- <cd:constant type="naokraji"/>
- <cd:constant type="vlevo"/>
- <cd:constant type="vpravo"/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="kriterium">
- <cd:constant type="vse"/>
- <cd:constant type="uzito"/>
- </cd:parameter>
- <cd:parameter name="konverze">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="expanzen">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- <cd:constant type="prikaz"/>
- </cd:parameter>
- <cd:parameter name="prikaz">
- <cd:constant type="cd:threearguments"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="synonym" generated="yes">
- <cd:sequence>
- <cd:variable value="synonym"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="completelistofsynonyms" generated="yes">
- <cd:sequence>
- <cd:string value="completelistof"/>
- <cd:variable value="synonyms"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="placelistofsynonyms" generated="yes">
- <cd:sequence>
- <cd:string value="placelistof"/>
- <cd:variable value="synonyms"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="loadsynonyms" generated="yes">
- <cd:sequence>
- <cd:string value="load"/>
- <cd:variable value="synonyms"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="definesorting" file="core-syn.tex">
- <cd:sequence>
- <cd:string value="definujtrideni"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:plural"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:command"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupsorting" file="core-syn.tex">
- <cd:sequence>
- <cd:string value="nastavtrideni"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="prikaz">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="kriterium">
- <cd:constant type="vse"/>
- <cd:constant type="uzito"/>
- </cd:parameter>
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="expanzen">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- <cd:constant type="prikaz"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="sort" generated="yes">
- <cd:sequence>
- <cd:variable value="sort"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="completelistofsorts" generated="yes">
- <cd:sequence>
- <cd:string value="completelistof"/>
- <cd:variable value="sorts"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="placelistofsorts" generated="yes">
- <cd:sequence>
- <cd:string value="placelistof"/>
- <cd:variable value="sorts"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="loadsorts" generated="yes">
- <cd:sequence>
- <cd:string value="load"/>
- <cd:variable value="sorts"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="definemakeup" file="page-mak.tex">
- <cd:sequence>
- <cd:string value="definujupravu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="nastavupravu"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="makeup" type="environment">
- <cd:sequence>
- <cd:string value="makeup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="nastavupravu"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupmakeup" file="page-mak.tex">
- <cd:sequence>
- <cd:string value="nastavupravu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vyska">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="voffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stranka">
- <cd:constant type="vlevo"/>
- <cd:constant type="ano"/>
- <cd:constant type="vpravo"/>
- </cd:parameter>
- <cd:parameter name="prikazy">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="oboustranne">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- <cd:constant type="prazdne"/>
- </cd:parameter>
- <cd:parameter name="statuszahlavi">
- <cd:constant type="normalni"/>
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- <cd:constant type="prazdne"/>
- <cd:constant type="zadny"/>
- <cd:constant type="zadneznaceni"/>
- </cd:parameter>
- <cd:parameter name="statusupati">
- <cd:constant type="normalni"/>
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- <cd:constant type="prazdne"/>
- <cd:constant type="zadny"/>
- <cd:constant type="zadneznaceni"/>
- </cd:parameter>
- <cd:parameter name="statustextu">
- <cd:constant type="normalni"/>
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- <cd:constant type="prazdne"/>
- <cd:constant type="zadny"/>
- <cd:constant type="zadneznaceni"/>
- </cd:parameter>
- <cd:parameter name="statusvrsku">
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- </cd:parameter>
- <cd:parameter name="statusspodku">
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- </cd:parameter>
- <cd:parameter name="pagestate">
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- </cd:parameter>
- <cd:parameter name="barva">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="namemakeup" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="jmeno"/>
- <cd:string value="makeup"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="version">
- <cd:sequence>
- <cd:string value="verze"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="finalni" default="yes"/>
- <cd:constant type="koncept"/>
- <cd:constant type="docasne"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="currentdate">
- <cd:sequence>
- <cd:string value="aktualnidatum"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:inherit name="datum"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="date" file="core-con.tex">
- <cd:sequence>
- <cd:string value="datum"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:parameter name="d">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="m">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="y">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- <cd:keywords list="yes">
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="referraldate" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="odkaznadatum"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="indenting" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="odsazovani"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:resolve name="indenting"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="noindenting" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="zadneodsazovani"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="blank" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="preskoc"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="male"/>
- <cd:constant type="stredni"/>
- <cd:constant type="velke" default="yes"/>
- <cd:constant type="zadnabila"/>
- <cd:constant type="zpet"/>
- <cd:constant type="bily"/>
- <cd:constant type="zablokovat"/>
- <cd:constant type="sila"/>
- <cd:constant type="reset"/>
- <cd:constant type="radek"/>
- <cd:constant type="pulradku"/>
- <cd:constant type="cd:formula"/>
- <cd:constant type="fixne"/>
- <cd:constant type="prizpusobive"/>
- <cd:constant type="zadny"/>
- <cd:constant type="vzdy"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="packed" type="environment" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="zhustene"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="prazdny"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="unpacked" type="environment">
- <cd:sequence>
- <cd:string value="unpacked"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="linecorrection" type="environment">
- <cd:sequence>
- <cd:string value="linecorrection"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="correctwhitespace" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="korekcebilehomista"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="postponing" type="environment">
- <cd:sequence>
- <cd:string value="postponing"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="local" type="environment">
- <cd:sequence>
- <cd:string value="local"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="narrower" type="environment">
- <cd:sequence>
- <cd:string value="narrower"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="vlevo"/>
- <cd:constant type="nastred" default="yes"/>
- <cd:constant type="vpravo"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="hiding" type="environment">
- <cd:sequence>
- <cd:string value="hiding"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupalign" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="nastavzarovnani"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="sirka"/>
- <cd:constant type="vlevo"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="nastred"/>
- <cd:constant type="uvnitr"/>
- <cd:constant type="vnejsi"/>
- <cd:constant type="siroce"/>
- <cd:constant type="siroky"/>
- <cd:constant type="vyska"/>
- <cd:constant type="spodek"/>
- <cd:constant type="radek"/>
- <cd:constant type="reset"/>
- <cd:constant type="visici"/>
- <cd:constant type="nothanging"/>
- <cd:constant type="hyphenated"/>
- <cd:constant type="nothyphenated"/>
- <cd:constant type="lesshyphens"/>
- <cd:constant type="morehyphens"/>
- <cd:constant type="novy"/>
- <cd:constant type="old"/>
- <cd:constant type="normalni"/>
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- <cd:constant type="flushleft"/>
- <cd:constant type="flushright"/>
- <cd:constant type="flushouter"/>
- <cd:constant type="flushinner"/>
- <cd:constant type="center"/>
- <cd:constant type="hz"/>
- <cd:constant type="nohz"/>
- <cd:constant type="mezerovani"/>
- <cd:constant type="nospacing"/>
- <cd:constant type="tolerantni"/>
- <cd:constant type="velmitolerantni"/>
- <cd:constant type="natahnout"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-
-<cd:command name="alignment" type="environment">
- <cd:sequence>
- <cd:string value="alignment"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:inherit name="nastavzarovnani"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupspacing">
- <cd:sequence>
- <cd:string value="nastavradkovani"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="siroky"/>
- <cd:constant type="zhustene"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptolerance" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="nastavtoleranci"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="horizontalne"/>
- <cd:constant type="vertikalne"/>
- <cd:constant type="natahnout"/>
- <cd:constant type="mezera"/>
- <cd:constant type="velmistriktni" default="yes"/>
- <cd:constant type="striktni"/>
- <cd:constant type="tolerantni"/>
- <cd:constant type="velmitolerantni"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="pagetype" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="typstrany"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="processpage" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="zpracujstranu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="ano" default="yes"/>
- <cd:constant type="ne"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="couplepage" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="parovastrana"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="volba">
- <cd:constant type="dvoustranny"/>
- </cd:parameter>
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="position" file="page-lyr.tex">
- <cd:sequence>
- <cd:string value="pozice"/>
- </cd:sequence>
- <cd:arguments>
- <cd:position list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupscreens" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="nastavrastr"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="metoda">
- <cd:constant type="tecka"/>
- <cd:constant type="linka"/>
- <cd:constant type="externi"/>
- </cd:parameter>
- <cd:parameter name="rozliseni">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="faktor">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="rastr">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupbackgrounds" file="page-bck.tex">
- <cd:sequence>
- <cd:string value="nastavpozadi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="vrsek"/>
- <cd:constant type="zahlavi"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="upati"/>
- <cd:constant type="spodek"/>
- <cd:constant type="stranka"/>
- <cd:constant type="papir"/>
- <cd:constant type="levastranka"/>
- <cd:constant type="pravastranka"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="levahrana"/>
- <cd:constant type="levyokraj"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="pravyokraj"/>
- <cd:constant type="pravahrana"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- <cd:constant type="cd:repeat"/>
- </cd:parameter>
- <cd:inherit name="nastavoramovani"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="buffer" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="buffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="getbuffer">
- <cd:sequence>
- <cd:string value="ziskejbuffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="typebuffer" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="typebuffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definebuffer" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="definujbuffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupbuffer" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="nastavbuffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="odstavec">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineblock" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="definujblok"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="nomoreblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="zadnedalsibloky"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="hideblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="schovejbloky"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="keepblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="zachovejbloky"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="vse"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="useblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="uzijbloky"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="processblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="zpracujbloky"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="bypassblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="bypassblocks"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="forceblocks">
- <cd:sequence>
- <cd:string value="forceblocks"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="selectblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="vyberbloky"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes">
- <cd:parameter name="kriterium">
- <cd:constant type="vse"/>
- <cd:constant type="cd:section"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupblock" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="nastavblok"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="vnitrni">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="soubor">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="formula" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="rovnice"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="mathematics" file="supp-mat.tex">
- <cd:sequence>
- <cd:string value="matematika"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placeformula" file="core-mat.tex">
- <cd:sequence>
- <cd:string value="umistirovnici"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content optional="yes"/>
- <cd:displaymath/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placesubformula" file="core-mat.tex">
- <cd:sequence>
- <cd:string value="umistipodrovnici"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content optional="yes"/>
- <cd:displaymath/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placefloat" generated="yes" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="place"/>
- <cd:variable value="plvouciobjekt"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="vlevo"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="zde" default="yes"/>
- <cd:constant type="vrsek"/>
- <cd:constant type="spodek"/>
- <cd:constant type="vlevo"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="naokraji"/>
- <cd:constant type="marginalie"/>
- <cd:constant type="levyokraj"/>
- <cd:constant type="pravyokraj"/>
- <cd:constant type="levahrana"/>
- <cd:constant type="pravahrana"/>
- <cd:constant type="innermargin"/>
- <cd:constant type="outermargin"/>
- <cd:constant type="inneredge"/>
- <cd:constant type="outeredge"/>
- <cd:constant type="uvnitr"/>
- <cd:constant type="vnejsi"/>
- <cd:constant type="radek"/>
- <cd:constant type="vysoko"/>
- <cd:constant type="nizko"/>
- <cd:constant type="prizpusobive"/>
- <cd:constant type="stranka"/>
- <cd:constant type="levastranka"/>
- <cd:constant type="pravastranka"/>
- <cd:constant type="naproti"/>
- <cd:constant type="vzdy"/>
- <cd:constant type="auto"/>
- <cd:constant type="sila"/>
- <cd:constant type="vysoko"/>
- <cd:constant type="reset"/>
- <cd:constant type="radek"/>
- <cd:constant type="vyska"/>
- <cd:constant type="podlehloubky"/>
- <cd:constant type="split"/>
- <cd:constant type="90"/>
- <cd:constant type="180"/>
- <cd:constant type="270"/>
- </cd:keywords>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="reservefloat" generated="yes">
- <cd:sequence>
- <cd:string value="reserve"/>
- <cd:variable value="plvouciobjekt"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:parameter name="vyska">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="ramecek">
- <cd:constant type="zap"/>
- <cd:constant type="vyp"/>
- </cd:parameter>
- </cd:assignments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definefloat" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="definujplvouciobjekt"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:plural"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfloat" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="nastavplvouciobjekt"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="vyska">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="maxvyska">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="maxsirka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="minsirka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="implicitni">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="hranicestranky">
- <cd:constant type="cd:list"/>
- </cd:parameter>
- <cd:parameter name="vzdalenostlevehookraje">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vzdalenostpravehookraje">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="misto">
- <cd:constant type="vlevo"/>
- <cd:constant type="nastred"/>
- <cd:constant type="vpravo"/>
- </cd:parameter>
- <cd:inherit name="nastavoramovani"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="floattext" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="plvouciobjekt"/>
- <cd:string value="text"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="vlevo"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="vysoko"/>
- <cd:constant type="nastred"/>
- <cd:constant type="nizko"/>
- <cd:constant type="offset"/>
- <cd:constant type="vysoko"/>
- </cd:keywords>
- <cd:reference optional="yes"/>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placelistoffloats" generated="yes">
- <cd:sequence>
- <cd:string value="placelistof"/>
- <cd:variable value="floats"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="completelistoffloats" generated="yes">
- <cd:sequence>
- <cd:string value="completelistof"/>
- <cd:variable value="floats"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="referral" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="odkaz"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="bet">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="ken">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="dat">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="van">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="aan">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="ref">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="selectpaper">
- <cd:sequence>
- <cd:string value="vyberpapir"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="rodina">
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="couplepaper">
- <cd:sequence>
- <cd:string value="dvoustrannypapir"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="chem" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="chem"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="fraction" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="zlomek"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="periods" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="tecky"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="items">
- <cd:sequence>
- <cd:string value="polozky"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="nastavpolozky"/>
- </cd:assignments>
- <cd:content list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupitems" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="nastavpolozky"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="misto">
- <cd:constant type="vlevo"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="naokraji"/>
- <cd:constant type="vrsek"/>
- <cd:constant type="spodek"/>
- </cd:parameter>
- <cd:parameter name="symbol">
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- <cd:constant type="..."/>
- <cd:constant type="n"/>
- <cd:constant type="a"/>
- <cd:constant type="..."/>
- <cd:constant type="cd:text"/>
- <cd:constant type="zadny"/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- <cd:constant type="neznamy"/>
- </cd:parameter>
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="mezi">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="zarovnani">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="quotation" type="environment" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="citace"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="vlevo"/>
- <cd:constant type="nastred" default="yes"/>
- <cd:constant type="vpravo"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="quotation" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="citace"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="quote" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="citovat"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupquote" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="nastavcitaci"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="barva">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="misto">
- <cd:constant type="cd:text"/>
- <cd:constant type="marginalie"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="adding">
- <cd:sequence>
- <cd:string value="scitani"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="male"/>
- <cd:constant type="stredni" default="yes"/>
- <cd:constant type="velke"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineparagraphs" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="definujodstavce"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="linka">
- <cd:constant type="zap"/>
- <cd:constant type="vyp"/>
- </cd:parameter>
- <cd:parameter name="vyska">
- <cd:constant type="prizpusobive"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="vnitrni">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="vzdalenost">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="tolerance">
- <cd:constant type="velmistriktni"/>
- <cd:constant type="striktni"/>
- <cd:constant type="tolerantni"/>
- <cd:constant type="velmitolerantni"/>
- <cd:constant type="natahnout"/>
- </cd:parameter>
- <cd:parameter name="zarovnani">
- <cd:resolve name="align"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="paragraph" generated="yes">
- <cd:sequence>
- <cd:variable value="odstavec"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="paragraph" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="odstavec"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupparagraphs" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="nastavodstavce"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:number"/>
- <cd:constant type="kazdy"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vyska">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="zarovnani">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="tolerance">
- <cd:constant type="velmistriktni"/>
- <cd:constant type="striktni"/>
- <cd:constant type="tolerantni"/>
- <cd:constant type="velmitolerantni"/>
- <cd:constant type="natahnout"/>
- </cd:parameter>
- <cd:parameter name="vzdalenost">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="vnitrni">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="prikaz">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="linka">
- <cd:constant type="zap"/>
- <cd:constant type="vyp"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptab" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="nastavtab"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="vzor">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stylhlavicky">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="misto">
- <cd:constant type="vlevo"/>
- <cd:constant type="vpravo"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="tab">
- <cd:sequence>
- <cd:string value="tab"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:nothing/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="document" type="environment">
- <cd:sequence>
- <cd:string value="document"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="labels">
- <cd:sequence>
- <cd:string value="popisky"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definetabulate" file="core-tbl.tex">
- <cd:sequence>
- <cd:string value="definujtabelaci"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="tabulate" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="tabelator"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="uzijexterniobraz"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptabulate" file="core-tbl.tex">
- <cd:sequence>
- <cd:string value="nastavtabelaci"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="jednotka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="odsazovani">
- <cd:resolve name="indenting"/>
- </cd:parameter>
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="vnitrni">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="EQ">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="barvalinky">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="zarovnani">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="tloustkalinky">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vzdalenost">
- <cd:constant type="prazdny"/>
- <cd:constant type="mrizka"/>
- <cd:constant type="podlehloubky"/>
- <cd:constant type="cd:dimension"/>
- <cd:constant type="male"/>
- <cd:constant type="stredni"/>
- <cd:constant type="velke"/>
- <cd:constant type="zadny"/>
- </cd:parameter>
- <cd:parameter name="zakladnifont">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="male"/>
- <cd:constant type="velke"/>
- </cd:parameter>
- <cd:parameter name="linka">
- <cd:constant type="normalni"/>
- <cd:constant type="radek"/>
- </cd:parameter>
- <cd:parameter name="split">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptables" file="core-tab.tex">
- <cd:sequence>
- <cd:string value="nastavtabulky"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="vzdalenost">
- <cd:constant type="male"/>
- <cd:constant type="stredni"/>
- <cd:constant type="velke"/>
- </cd:parameter>
- <cd:parameter name="zakladnifont">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="male"/>
- <cd:constant type="velke"/>
- </cd:parameter>
- <cd:parameter name="HL">
- <cd:constant type="cd:number"/>
- <cd:constant type="male"/>
- <cd:constant type="stredni"/>
- <cd:constant type="velke"/>
- <cd:constant type="zadny"/>
- </cd:parameter>
- <cd:parameter name="VL">
- <cd:constant type="cd:number"/>
- <cd:constant type="male"/>
- <cd:constant type="stredni"/>
- <cd:constant type="velke"/>
- <cd:constant type="zadny"/>
- </cd:parameter>
- <cd:parameter name="hloubka">
- <cd:constant type="cd:number"/>
- <cd:constant type="strut"/>
- </cd:parameter>
- <cd:parameter name="vyska">
- <cd:constant type="cd:number"/>
- <cd:constant type="strut"/>
- </cd:parameter>
- <cd:parameter name="tloustkalinky">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="barvalinky">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="zarovnani">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="prikazy">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="zarovnani">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="pozadi">
- <cd:constant type="rastr"/>
- <cd:constant type="barevne"/>
- <cd:constant type="zadny"/>
- </cd:parameter>
- <cd:parameter name="rastrpozadi">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="barvapozadi">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="zakladnifont">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="male"/>
- <cd:constant type="velke"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="table" type="environment">
- <cd:sequence>
- <cd:string value="table"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="tables" type="environment">
- <cd:sequence>
- <cd:string value="tables"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definetabletemplate" file="core-tab.tex">
- <cd:sequence>
- <cd:string value="definujsablonutabulky"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="useexternalfiles" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="uzijexternisoubory"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="zakladnifont">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="male"/>
- <cd:constant type="velke"/>
- </cd:parameter>
- <cd:parameter name="soubor">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="useexternalfile" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="uzijexternisoubor"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="zakladnifont">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="male"/>
- <cd:constant type="velke"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="useexternalfigure" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="uzijexterniobraz"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:parameter name="meritko">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ymeritko">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ymeritko">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="faktor">
- <cd:constant type="max"/>
- <cd:constant type="prizpusobive"/>
- <cd:constant type="siroky"/>
- </cd:parameter>
- <cd:parameter name="sfaktor">
- <cd:constant type="cd:number"/>
- <cd:constant type="max"/>
- <cd:constant type="siroky"/>
- <cd:constant type="prizpusobive"/>
- </cd:parameter>
- <cd:parameter name="vfaktor">
- <cd:constant type="cd:number"/>
- <cd:constant type="max"/>
- <cd:constant type="siroky"/>
- <cd:constant type="prizpusobive"/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vyska">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="ramecek">
- <cd:constant type="zap"/>
- <cd:constant type="vyp"/>
- </cd:parameter>
- <cd:parameter name="prednastaveni">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="obrazovka">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="nahled">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="opakovat">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="objekt">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="typ">
- <cd:constant type="eps"/>
- <cd:constant type="mps"/>
- <cd:constant type="pdf"/>
- <cd:constant type="tif"/>
- <cd:constant type="png"/>
- <cd:constant type="jpg"/>
- <cd:constant type="mov"/>
- <cd:constant type="cd:tex"/>
- </cd:parameter>
- <cd:parameter name="metoda">
- <cd:constant type="eps"/>
- <cd:constant type="mps"/>
- <cd:constant type="pdf"/>
- <cd:constant type="tif"/>
- <cd:constant type="png"/>
- <cd:constant type="jpg"/>
- <cd:constant type="mov"/>
- <cd:constant type="cd:tex"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="externalfigure" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="externiobraz"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="uzijexterniobraz"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupexternalfigures" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="nastavexterniobrazy"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments>
- <cd:parameter name="volba">
- <cd:constant type="ramecek"/>
- <cd:constant type="prazdne"/>
- <cd:constant type="test"/>
- </cd:parameter>
- <cd:parameter name="objekt">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="ramecky">
- <cd:constant type="zap"/>
- <cd:constant type="vyp"/>
- </cd:parameter>
- <cd:parameter name="ymax">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="xmax">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="adresar">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="misto">
- <cd:constant type="lokalne"/>
- <cd:constant type="globalne"/>
- <cd:constant type="implicitni"/>
- <cd:constant type="zadny"/>
- </cd:parameter>
- <cd:parameter name="maxsirka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="maxvyska">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="konverze">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="prefix">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showexternalfigures" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="ukazexterniobrazy"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:parameter name="alternativa">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="useexternalsoundtrack" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="uzijexternizvuk"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:file"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="name" file="syst-gen.tex">
- <cd:sequence>
- <cd:string value="name"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="legend" type="environment">
- <cd:sequence>
- <cd:string value="legend"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="dve"/>
- </cd:keywords>
- <cd:tex command="leg"/>
- <cd:nothing/>
- <cd:nothing separator="backslash"/>
- <cd:nothing separator="backslash"/>
- <cd:tex separator="backslash" command="leg"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="fact" type="environment">
- <cd:sequence>
- <cd:string value="fakt"/>
- </cd:sequence>
- <cd:arguments>
- <cd:tex command="fact"/>
- <cd:nothing/>
- <cd:nothing separator="backslash"/>
- <cd:nothing separator="backslash"/>
- <cd:tex separator="backslash" command="fact"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="rotate" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="otocit"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="nastavotoceni"/>
- </cd:assignments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuprotate" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="nastavotoceni"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="rotace">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="misto">
- <cd:constant type="normalni"/>
- <cd:constant type="vysoko"/>
- <cd:constant type="prizpusobive"/>
- <cd:constant type="siroky"/>
- <cd:constant type="podlehloubky"/>
- </cd:parameter>
- <cd:inherit name="nastavoramovani"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="mirror" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="zrcadlit"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="scale" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="meritko"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:parameter name="sx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="sy">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupcombinations" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="nastavspojeni"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="mezi">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="vzdalenost">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vyska">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="prizpusobive"/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="prizpusobive"/>
- </cd:parameter>
- <cd:parameter name="misto">
- <cd:constant type="vrsek"/>
- <cd:constant type="nastred"/>
- <cd:constant type="spodek"/>
- <cd:constant type="vlevo"/>
- <cd:constant type="vpravo"/>
- </cd:parameter>
- <cd:parameter name="zarovnani">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="barva">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="combination" type="environment">
- <cd:sequence>
- <cd:string value="combination"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:matrix"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placesidebyside" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="umistivedlesebe"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placeontopofeachother" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="umistinadsebe"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="overlay" type="environment">
- <cd:sequence>
- <cd:string value="overlay"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="overview" type="environment">
- <cd:sequence>
- <cd:string value="overview"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupinteractionscreen" file="core-int.tex">
- <cd:sequence>
- <cd:string value="nastavinterakcniobrazovku"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" list="yes">
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="prizpusobive"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="vyska">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="prizpusobive"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="zpetnamezera">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="svrchnimezera">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="horoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offsethlavicky">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="volba">
- <cd:constant type="max"/>
- <cd:constant type="prizpusobive"/>
- <cd:constant type="dvoustranny"/>
- <cd:constant type="zalozka"/>
- </cd:parameter>
- <cd:parameter name="prodleva">
- <cd:constant type="cd:number"/>
- <cd:constant type="zadny"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="screen" file="core-int.tex">
- <cd:sequence>
- <cd:string value="obrazovka"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setuppagetransitions" file="core-int.tex">
- <cd:sequence>
- <cd:string value="nastavprechodstrany"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="reset"/>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupinteraction" file="core-nav.tex">
- <cd:sequence>
- <cd:string value="nastavinterakci"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="menu">
- <cd:constant type="zap"/>
- <cd:constant type="vyp"/>
- </cd:parameter>
- <cd:parameter name="stranka">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="klik">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="split">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="obrazovka">
- <cd:constant type="novy"/>
- </cd:parameter>
- <cd:parameter name="otevriakci">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="zavriakci">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="akceotevrenistranky">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="akcezavrenistranky">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="pocitat">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vyska">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hloubka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="barva">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="kontrastnibarva">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="sadasymbolu">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="titul">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="podtitulek">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="autor">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="datum">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="keyword">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <!-- maybe this will move elsewhere -->
- <cd:parameter name="fieldlayer">
- <cd:constant type="auto"/>
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineinteractionmenu" variant="1" file="core-int.tex">
- <cd:sequence>
- <cd:string value="definujinterakcnimenu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive" list="yes">
- <cd:constant type="vlevo"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="vrsek"/>
- <cd:constant type="spodek"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="mezi">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="vlevo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="vpravo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="stredni">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- <cd:constant type="zadny"/>
- <cd:constant type="lokalne"/>
- </cd:parameter>
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="barva">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="vzdalenost">
- <cd:constant type="prekryv"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stejnastranka">
- <cd:constant type="ano"/>
- <cd:constant type="prazdne"/>
- <cd:constant type="ne"/>
- <cd:constant type="zadny"/>
- </cd:parameter>
- <cd:parameter name="neznamyodkaz">
- <cd:constant type="ano"/>
- <cd:constant type="prazdne"/>
- <cd:constant type="ne"/>
- <cd:constant type="zadny"/>
- </cd:parameter>
- <cd:parameter name="levyoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="pravyoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offsetvrsku">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offsetspodku">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="position">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:inherit name="nastavoramovani"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineinteractionmenu" variant="2" file="core-int.tex">
- <cd:sequence>
- <cd:string value="definujinterakcnimenu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="vlevo"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="vrsek"/>
- <cd:constant type="spodek"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="vlevo"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="vrsek"/>
- <cd:constant type="spodek"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="nastavinterakcnimenu"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="interactionmenu" type="environment">
- <cd:sequence>
- <cd:string value="interaktivnimenu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="disableinteractionmenu" file="core-int.tex">
- <cd:sequence>
- <cd:string value="zablokujinterakcnimenu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="vlevo"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="vrsek"/>
- <cd:constant type="spodek"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:reference list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="useexternaldocument" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="uzijexternidokument"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="soubor"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="useURL" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="uzijURL"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="soubor"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="coupledocument" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="propojenydokument"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="soubor"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="from" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="zref"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference interactive="exclusive"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="interactionbar">
- <cd:sequence>
- <cd:string value="interakcnilista"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" list="yes">
- <cd:inherit name="nastavinterakcnilistu"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="interactionbuttons" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="interakcnitlacitka"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" optional="yes" list="yes">
- <cd:inherit name="nastavinterakcnilistu"/>
- </cd:assignments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupinteractionbar" file="core-int.tex">
- <cd:sequence>
- <cd:string value="nastavinterakcnilistu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="alternativa">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- <cd:constant type="d"/>
- <cd:constant type="e"/>
- <cd:constant type="f"/>
- <cd:constant type="g"/>
- </cd:parameter>
- <cd:parameter name="symbol">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="vyska"/>
- <cd:constant type="prizpusobive"/>
- </cd:parameter>
- <cd:parameter name="vyska">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="vyska"/>
- <cd:constant type="prizpusobive"/>
- </cd:parameter>
- <cd:parameter name="hloubka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="barva">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="krok">
- <cd:constant type="cd:number"/>
- <cd:constant type="male"/>
- <cd:constant type="stredni"/>
- <cd:constant type="velke"/>
- </cd:parameter>
- <cd:inherit name="nastavoramovani"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="synchronize" file="core-int.tex">
- <cd:sequence>
- <cd:string value="synchronizovat"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="synchronization" type="environment">
- <cd:sequence>
- <cd:string value="synchronization"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupsynchronizationbar" file="core-int.tex">
- <cd:sequence>
- <cd:string value="nastavsynchronizacnilistu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" list="yes">
- <cd:parameter name="alternativa">
- <cd:constant type="stranka"/>
- <cd:constant type="lokalne"/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="vyska"/>
- <cd:constant type="prizpusobive"/>
- </cd:parameter>
- <cd:parameter name="vyska">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="barva">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:inherit name="nastavoramovani"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="synchronizationbar" file="core-int.tex">
- <cd:sequence>
- <cd:string value="synchronizacnilista"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="alternativa">
- <cd:constant type="stranka"/>
- <cd:constant type="lokalne"/>
- </cd:parameter>
- <cd:inherit name="nastavsynchronizacnilistu"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupsynchronization" file="core-int.tex">
- <cd:sequence>
- <cd:string value="nastavsynchronizaci"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineprofile" file="core-int.tex">
- <cd:sequence>
- <cd:string value="definujprofil"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupprofiles" file="core-int.tex">
- <cd:sequence>
- <cd:string value="nastavprofily"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" list="yes">
- <cd:parameter name="volba">
- <cd:constant type="test"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="profile" type="environment">
- <cd:sequence>
- <cd:string value="profile"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="followprofile" file="core-int.tex">
- <cd:sequence>
- <cd:string value="dodrzujprofil"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content interactive="exclusive"/>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placebookmarks" file="core-int.tex">
- <cd:sequence>
- <cd:string value="umistizalozky"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- <cd:constant type="vse"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="bookmark">
- <cd:sequence>
- <cd:string value="zalozka"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="version" type="environment">
- <cd:sequence>
- <cd:string value="verze"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive" list="yes">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupversions" file="core-int.tex">
- <cd:sequence>
- <cd:string value="nastavverze"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="cislo">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="markversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="oznacverzi"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="selectversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="vyberverzi"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="defineversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="definujverzi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="followversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="dodrzujverzi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content interactive="exclusive"/>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="followprofileversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="dodrzujverziprofilu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content interactive="exclusive"/>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineprogram" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="definujprogram"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupprograms" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="nastavprogramy"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" list="yes">
- <cd:parameter name="adresar">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="program" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="program"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="figure" type="environment">
- <cd:sequence>
- <cd:string value="figure"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="faktor">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ramecek">
- <cd:constant type="zap"/>
- <cd:constant type="vyp"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<!-- referring*figure skipped -->
-
-<!-- marking*figure skipped -->
-
-<!-- remark skipped -->
-
-<cd:command name="goto" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="jdina"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content interactive="exclusive"/>
- <cd:content interactive="exclusive"/>
- <cd:reference list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="gotobox" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="jdinabox"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content interactive="exclusive"/>
- <cd:reference list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="button">
- <cd:sequence>
- <cd:string value="tlacitko"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" optional="yes" list="yes">
- <cd:inherit name="nastavtlacitka"/>
- </cd:assignments>
- <cd:content/>
- <cd:reference list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupbuttons" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="nastavtlacitka"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:inherit name="nastavoramovani"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<!-- menubutton skipped -->
-
-<cd:command name="setupcomment" file="core-int.tex">
- <cd:sequence>
- <cd:string value="nastavkomentar"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vyska">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="barva">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="titul">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="mezera">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="symbol">
- <cd:constant type="normalni"/>
- <cd:constant type="Novy"/>
- <cd:constant type="Bublinka"/>
- <cd:constant type="Pridavek"/>
- <cd:constant type="Napoveda"/>
- <cd:constant type="Odstavec"/>
- <cd:constant type="Klavesa"/>
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="volba">
- <cd:constant type="max"/>
- <cd:constant type="buffer"/>
- </cd:parameter>
- <cd:parameter name="marginalie">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vzdalenost">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="comment" type="environment">
- <cd:sequence>
- <cd:string value="komentar"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="nastavkomentar"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="comment">
- <cd:sequence>
- <cd:string value="komentar"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="nastavkomentar"/>
- </cd:assignments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definefield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="definujpole"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definesubfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="definujpodpole"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="copyfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="kopirujpole"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="clonefield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="klonujpole"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="field" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="pole"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="fitfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="prizpusobivepole"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="fillinfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="vyplnovepole"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="tooltip" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="bublinkovanapoveda"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="vlevo"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="nastred"/>
- </cd:keywords>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showfields" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="ukazpole"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="logfields" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="zaznamovepole"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="nastavpole"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="popisek"/>
- <cd:constant type="horizontalne"/>
- <cd:constant type="vertikalne"/>
- <cd:constant type="ramecek"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="nastavvsechnapole"/>
- </cd:assignments>
- <cd:assignments list="yes">
- </cd:assignments>
- <cd:assignments list="yes">
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfields" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="nastavvsechnapole"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="reset"/>
- <cd:constant type="popisek"/>
- <cd:constant type="horizontalne"/>
- <cd:constant type="vertikalne"/>
- <cd:constant type="ramecek"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="vzdalenost">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="mezi">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="barva">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="zarovnani">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="volba">
- <cd:constant type="pouzeprocteni"/>
- <cd:constant type="pozadovane"/>
- <cd:constant type="chranene"/>
- <cd:constant type="tridene"/>
- <cd:constant type="nedostupne"/>
- <cd:constant type="skryte"/>
- <cd:constant type="tisknutelne"/>
- </cd:parameter>
- <cd:parameter name="klikuvnitr">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="klikvne">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="oblastuvnitr">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="oblastvne">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="klavesapo">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="formatovat">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="validovat">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="pocitat">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="offsetpole">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="barvarameckupole">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="barvapozadipole">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:inherit name="oramovani"/>
- </cd:assignments>
- <cd:assignments list="yes">
- </cd:assignments>
- <cd:assignments list="yes">
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupforms" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="setupforms"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="metoda">
- <cd:constant type="HTML"/>
- <cd:constant type="FDF"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definefieldstack" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="definujzasobnikpoli"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="nastavvsechnapole"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="fieldstack" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="zasobnikpoli"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="nastavvsechnapole"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="clip" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="orez"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="nastavorez"/>
- </cd:assignments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupclipping" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="nastavorez"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="nx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ny">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="x">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="y">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vyska">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="voffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="mp">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placelegend">
- <cd:sequence>
- <cd:string value="umistilegendu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuplegend">
- <cd:sequence>
- <cd:string value="nastavlegendu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="vzdalenost">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="mezi">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vyska">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="misto">
- <cd:constant type="vpravo"/>
- <cd:constant type="spodek"/>
- </cd:parameter>
- <cd:parameter name="zakladnifont">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="male"/>
- <cd:constant type="velke"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definerule">
- <cd:sequence>
- <cd:string value="definerule"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="setuprule"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placerule">
- <cd:sequence>
- <cd:string value="placerule"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuprule">
- <cd:sequence>
- <cd:string value="setuprule"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="hloubka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vyska">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="mezerapred">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="mezeraza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="barva">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definetextvariable">
- <cd:sequence>
- <cd:string value="definetextvariable"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:inherit name="setuptextvariable"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptextvariable">
- <cd:sequence>
- <cd:string value="setuptextvariable"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="vlevo">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="vpravo">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="vzdalenost">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="prikaz">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- <cd:constant type="kap"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="settextvariable">
- <cd:sequence>
- <cd:string value="settextvariable"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placetextvariable">
- <cd:sequence>
- <cd:string value="placetextvariable"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="textvariable">
- <cd:sequence>
- <cd:string value="textvariable"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definerawfont">
- <cd:sequence>
- <cd:string value="definerawfont"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="nastavmeziradkovoumezeru"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="switchtorawfont">
- <cd:sequence>
- <cd:string value="switchtorawfont"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definetextposition">
- <cd:sequence>
- <cd:string value="definetextposition"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="nastavumistovani"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptextposition">
- <cd:sequence>
- <cd:string value="setuptextposition"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="nastavumistovani"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="positiontext">
- <cd:sequence>
- <cd:string value="positiontext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupstrut" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="setupstrut"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="ano" default="yes"/>
- <cd:constant type="ne"/>
- <cd:constant type="kap"/>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-</cd:interface>
-
diff --git a/Master/texmf-dist/tex/context/interface/cont-de.xml b/Master/texmf-dist/tex/context/interface/cont-de.xml
index 8044a6c1d45..2fe0f460ca6 100644
--- a/Master/texmf-dist/tex/context/interface/cont-de.xml
+++ b/Master/texmf-dist/tex/context/interface/cont-de.xml
@@ -1,6 +1,4 @@
-<?xml version="1.0" standalone="yes"?>
-
-<!-- versions:
+<?xml version="1.0" encoding="UTF-8"?><!-- versions:
comment : user interface definitions of ConTeXt
@@ -10,10 +8,9 @@
2006.08.02 : define + resolve
-->
-
<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="de" version="2006.08.02">
-<cd:define name="align">
+ <cd:define name="align">
<cd:constant type="innen"/>
<cd:constant type="aussen"/>
<cd:constant type="links"/>
@@ -25,9 +22,18 @@
<cd:constant type="normal"/>
<cd:constant type="nein"/>
<cd:constant type="ja"/>
-</cd:define>
+ </cd:define>
+
+ <cd:define name="symalign">
+ <cd:constant type="links"/>
+ <cd:constant type="rechts"/>
+ <cd:constant type="flushleft"/>
+ <cd:constant type="flushright"/>
+ <cd:constant type="mittig"/>
+ <cd:constant type="center"/>
+ </cd:define>
-<cd:define name="indenting">
+ <cd:define name="indenting">
<cd:constant type="nie"/>
<cd:constant type="kein"/>
<cd:constant type="nicht"/>
@@ -43,14 +49,14 @@
<cd:constant type="ungerade"/>
<cd:constant type="gerade"/>
<cd:constant type="cd:dimension"/>
-</cd:define>
+ </cd:define>
-<cd:define name="indentnext">
+ <cd:define name="indentnext">
<cd:constant type="ja"/>
<cd:constant type="nein"/>
-</cd:define>
+ </cd:define>
-<cd:define name="style">
+ <cd:define name="style">
<cd:constant type="normal"/>
<cd:constant type="fett"/>
<cd:constant type="geneigt"/>
@@ -59,9 +65,9 @@
<cd:constant type="kap"/>
<cd:constant type="small..."/>
<cd:constant type="cd:command"/>
-</cd:define>
+ </cd:define>
-<cd:define name="language">
+ <cd:define name="language">
<cd:constant type="nl"/>
<cd:constant type="fr"/>
<cd:constant type="en"/>
@@ -70,9961 +76,10164 @@
<cd:constant type="es"/>
<cd:constant type="cz"/>
<cd:constant type=".."/>
-</cd:define>
+ </cd:define>
-<cd:define name="texts">
+ <cd:define name="texts">
<cd:constant type="cd:text"/>
<cd:constant type="cd:section"/>
<cd:constant type="datum"/>
<cd:constant type="cd:mark"/>
<cd:constant type="seitennummer"/>
-</cd:define>
+ </cd:define>
-<cd:define name="layout-h">
+ <cd:define name="layout-h">
<cd:constant type="text" default="yes"/>
<cd:constant type="marginalie"/>
<cd:constant type="kante"/>
-</cd:define>
+ </cd:define>
-<cd:define name="layout-v">
+ <cd:define name="layout-v">
<cd:constant type="oben"/>
<cd:constant type="kopfzeile"/>
<cd:constant type="text" default="yes"/>
<cd:constant type="fusszeile"/>
<cd:constant type="unten"/>
-</cd:define>
+ </cd:define>
-<cd:command name="installlanguage" file="lang-ini.tex">
- <cd:sequence>
- <cd:string value="installieresprache"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="spatiumausgleich">
- <cd:constant type="gepackt"/>
- <cd:constant type="breit"/>
- </cd:parameter>
- <cd:parameter name="lefthyphenmin">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="righthyphenmin">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="linkersatz">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="rechtersatz">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="linkersubsatz">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="rechtersubsatz">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="linkerzitieren">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="rechterzitieren">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="linkerzitat">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="rechterzitat">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="default">
+ <cd:define name="bodyfont">
+ <cd:constant type="5pt"/>
+ <cd:constant type="..."/>
+ <cd:constant type="12pt"/>
+ <cd:constant type="klein"/>
+ <cd:constant type="gross"/>
+ </cd:define>
+
+ <cd:command name="installlanguage" file="lang-ini.tex" category="language">
+ <cd:sequence>
+ <cd:string value="installieresprache"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuplanguage" file="lang-ini.tex">
- <cd:sequence>
- <cd:string value="stellespracheein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:resolve name="language"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="installieresprache"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="language">
- <cd:sequence>
- <cd:string value="sprache"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:resolve name="language"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="mainlanguage" file="lang-ini.tex">
- <cd:sequence>
- <cd:string value="hauptsprache"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:resolve name="language"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="translate" file="lang-lab.tex">
- <cd:sequence>
- <cd:string value="uebersetzten"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="cd:name">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="useencoding" file="enco-ini.tex">
- <cd:sequence>
- <cd:string value="benutzekodierung"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="usespecials" file="spec-ini.tex">
- <cd:sequence>
- <cd:string value="benutzespezielles"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="zuruecksetzten"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineoutput" file="spec-ini.tex">
- <cd:sequence>
- <cd:string value="defineoutput"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupoutput" file="spec-ini.tex">
- <cd:sequence>
- <cd:string value="stelleausgabeein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definebodyfontenvironment" file="font-ini.tex">
- <cd:sequence>
- <cd:string value="definierefliesstextumgebung"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="default"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="text">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="script">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="scriptscript">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="x">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="xx">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="klein">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="gross">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupbodyfontenvironment" file="font-ini.tex">
- <cd:sequence>
- <cd:string value="stellefliesstextumgebungein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:inherit name="stellefliesstextein"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="stellefliesstextein"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showbodyfontenvironment">
- <cd:sequence>
- <cd:string value="zeigefliesstextumgebung"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:inherit name="stellefliesstextein"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definebodyfont" file="font-ini.tex">
- <cd:sequence>
- <cd:string value="definierefliesstext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="default"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="rm"/>
- <cd:constant type="ss"/>
- <cd:constant type="tt"/>
- <cd:constant type="mm"/>
- <cd:constant type="hw"/>
- <cd:constant type="cg"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="tf">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="bf">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="sl">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="it">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="bs">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="bi">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="sc">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="ex">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="mi">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="sy">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="ma">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="mb">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="mc">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showbodyfont">
- <cd:sequence>
- <cd:string value="zeigefliesstext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:inherit name="stellefliesstextein"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupbodyfont">
- <cd:sequence>
- <cd:string value="stellefliesstextein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- <cd:constant type="serif"/>
- <cd:constant type="regular"/>
- <cd:constant type="antiqua"/>
- <cd:constant type="sans"/>
- <cd:constant type="support"/>
- <cd:constant type="grotesk"/>
- <cd:constant type="mono"/>
- <cd:constant type="tippen"/>
- <cd:constant type="fernschreiber"/>
- <cd:constant type="handschrift"/>
- <cd:constant type="kalligraphie"/>
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="switchtobodyfont" file="font-ini.tex">
- <cd:sequence>
- <cd:string value="wechselezumfliesstext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="klein"/>
- <cd:constant type="gross"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definefont" file="font-ini.tex">
- <cd:sequence>
- <cd:string value="definiereschrift"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:file"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupcolor" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="stellefarbeein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupcolors" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="stellefarbenein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- <cd:constant type="global"/>
- <cd:constant type="lokal"/>
- </cd:parameter>
- <cd:parameter name="konversion">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- <cd:constant type="immer"/>
- </cd:parameter>
- <cd:parameter name="reduktion">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="rgb">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="cmyk">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="mpcmyk">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="mpspot">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="textfarbe">
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="spatiumausgleich">
+ <cd:constant type="gepackt" default="yes"/>
+ <cd:constant type="breit"/>
+ </cd:parameter>
+ <cd:parameter name="lefthyphenmin">
+ <cd:constant type="cd:number" default="2"/>
+ </cd:parameter>
+ <cd:parameter name="righthyphenmin">
+ <cd:constant type="cd:number" default="2"/>
+ </cd:parameter>
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="linkersatz">
+ <cd:constant type="cd:command" default="---"/>
+ </cd:parameter>
+ <cd:parameter name="rechtersatz">
+ <cd:constant type="cd:command" default="---"/>
+ </cd:parameter>
+ <cd:parameter name="linkersubsatz">
+ <cd:constant type="cd:command" default="---"/>
+ </cd:parameter>
+ <cd:parameter name="rechtersubsatz">
+ <cd:constant type="cd:command" default="---"/>
+ </cd:parameter>
+ <cd:parameter name="linkerzitieren">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="rechterzitieren">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="linkerzitat">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="rechterzitat">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="leftspeech">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="middlespeech">
+ <cd:constant type="cd:command" default=""/>
+ </cd:parameter>
+ <cd:parameter name="rightspeech">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="limittext">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="datum">
+ <cd:constant type="cd:text"/> <!-- TODO -->
+ </cd:parameter>
+ <cd:parameter name="compoundhyphen">
+ <cd:constant type="cd:command" default="\compoundhyphen"/>
+ </cd:parameter>
+ <cd:parameter name="leftcompoundhyphen">
+ <cd:constant type="cd:command" default="\compoundhyphen"/>
+ </cd:parameter>
+ <cd:parameter name="rightcompoundhyphen">
+ <cd:constant type="cd:command" default=""/>
+ </cd:parameter>
+ <cd:parameter name="default">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplanguage" file="lang-ini.tex" category="language">
+ <cd:sequence>
+ <cd:string value="stellespracheein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:resolve name="language"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="installieresprache" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="language" file="lang-ini.tex" category="language">
+ <cd:sequence>
+ <cd:string value="sprache"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:resolve name="language"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mainlanguage" file="lang-ini.tex" category="language">
+ <cd:sequence>
+ <cd:string value="hauptsprache"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:resolve name="language"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="translate" file="lang-lab.tex" category="language">
+ <cd:sequence>
+ <cd:string value="uebersetzten"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="cd:name">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useencoding" file="enco-ini.tex" category="encoding"> <!-- engine="pdftex" -->
+ <cd:sequence>
+ <cd:string value="benutzekodierung"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="split">
- <cd:constant type="c"/>
- <cd:constant type="m"/>
- <cd:constant type="y"/>
- <cd:constant type="k"/>
- <cd:constant type="p"/>
- <cd:constant type="s"/>
- <cd:constant type="nein"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usespecials" file="spec-ini.tex">
+ <cd:sequence>
+ <cd:string value="benutzespezielles"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="zuruecksetzten"/>
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="kriterium">
- <cd:constant type="alles"/>
- <cd:constant type="kein"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definecolor" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="definierefarbe"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="r">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="g">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="b">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="c">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="m">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="y">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="k">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="s">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="h">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="t">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="a">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="p">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="e">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="color" type="environment" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="farbe"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="color" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="farbe"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="graycolor" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="graufarbe"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showcolor">
- <cd:sequence>
- <cd:string value="zeigefarbe"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definepalet" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="definierepalette"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="cd:name">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuppalet" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="stellepaletteein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definecolorgroup" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="definierefarbengruppe"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="rgb" default="yes"/>
- <cd:constant type="cmyk"/>
- <cd:constant type="grau"/>
- <cd:constant type="s"/>
- </cd:keywords>
- <cd:triplet list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showpalet">
- <cd:sequence>
- <cd:string value="zeigepalette"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="horizontal"/>
- <cd:constant type="vertikal"/>
- <cd:constant type="name"/>
- <cd:constant type="wert"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showcolorgroup">
- <cd:sequence>
- <cd:string value="zeigefarbengruppe"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="horizontal"/>
- <cd:constant type="vertikal"/>
- <cd:constant type="name"/>
- <cd:constant type="wert"/>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="comparepalet">
- <cd:sequence>
- <cd:string value="vergleichepalette"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="comparecolorgroup">
- <cd:sequence>
- <cd:string value="vergleichefarbengruppe"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showmakeup" file="supp-vis.tex">
- <cd:sequence>
- <cd:string value="zeigeumbruch"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="definetype" file="core-ver.tex">
- <cd:sequence>
- <cd:string value="definetype"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="stelletipein"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptype" file="core-ver.tex">
- <cd:sequence>
- <cd:string value="stelletipein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="spatium">
- <cd:constant type="an"/>
- <cd:constant type="aus"/>
- </cd:parameter>
- <cd:parameter name="option">
- <cd:constant type="geneigt"/>
- <cd:constant type="normal"/>
- <cd:constant type="kein"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="farbe">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="type" file="verb-ini.tex">
- <cd:sequence>
- <cd:string value="tippen"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="typ" file="core-ver.tex">
- <cd:sequence>
- <cd:string value="tip"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="tex" file="core-ver.tex">
- <cd:sequence>
- <cd:string value="tex"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="arg" file="core-ver.tex">
- <cd:sequence>
- <cd:string value="arg"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definetyping" file="core-ver.tex">
- <cd:sequence>
- <cd:string value="definieretippen"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="datei"/>
- <cd:constant type="tippen"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="stelletippenein"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptyping" file="core-ver.tex">
- <cd:sequence>
- <cd:string value="stelletippenein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="datei"/>
- <cd:constant type="tippen"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="spatium">
- <cd:constant type="an"/>
- <cd:constant type="aus"/>
- </cd:parameter>
- <cd:parameter name="seite">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="option">
- <cd:constant type="geneigt"/>
- <cd:constant type="normal"/>
- <cd:constant type="befehle"/>
- <cd:constant type="farbe"/>
- <cd:constant type="kein"/>
- </cd:parameter>
- <cd:parameter name="text">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="ibefehl">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="vbefehl">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="cbefehl">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="marginalie">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="standard"/>
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="geraderand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="ungeraderand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="blanko">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="klein"/>
- <cd:constant type="mittel"/>
- <cd:constant type="gross"/>
- <cd:constant type="standard"/>
- <cd:constant type="halbezeile"/>
- <cd:constant type="zeile"/>
- </cd:parameter>
- <cd:parameter name="escape">
- <cd:constant type="cd:character"/>
- </cd:parameter>
- <cd:parameter name="spatium">
- <cd:constant type="an"/>
- <cd:constant type="aus"/>
- </cd:parameter>
- <cd:parameter name="tab">
- <cd:constant type="cd:number"/>
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="seite">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="ziehefolgendeein">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="farbe">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="palette">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="zeilen">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- <cd:constant type="hyphenate"/>
- </cd:parameter>
- <cd:parameter name="leer">
- <cd:constant type="ja"/>
- <cd:constant type="alles"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="nummerierung">
- <cd:constant type="zeile"/>
- <cd:constant type="datei"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="typing" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="tippen"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="typefile" file="verb-ini.tex">
- <cd:sequence>
- <cd:string value="tippedatei"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfootnotes" file="core-not.tex">
- <cd:sequence>
- <cd:string value="stellefussnotenein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="konversion">
- <cd:constant type="ziffern"/>
- <cd:constant type="buchstaben"/>
- <cd:constant type="Buchstaben"/>
- <cd:constant type="roemischezahlen"/>
- <cd:constant type="Roemischezahlen"/>
- </cd:parameter>
- <cd:parameter name="art">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="platz">
- <cd:constant type="seite"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="spalten"/>
- <cd:constant type="firstcolumn"/>
- <cd:constant type="lastcolumn"/>
- <cd:constant type="hoch"/>
- <cd:constant type="kein"/>
- </cd:parameter>
- <cd:parameter name="linie">
- <cd:constant type="an"/>
- <cd:constant type="aus"/>
- </cd:parameter>
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoehe">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="fliesstext">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="klein"/>
- <cd:constant type="gross"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="abstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="spaltenabstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="marginalabstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="nummerbefehl">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="textbefehl">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="split">
- <cd:constant type="tolerant"/>
- <cd:constant type="streng"/>
- <cd:constant type="sehrstreng"/>
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="textstil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="textfarbe">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="interaktion">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="faktor">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:inherit name="umrahmt"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfootnotedefinition" file="core-not.tex">
- <cd:sequence>
- <cd:string value="stellefussnotendefinitionein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:inherit name="definierebeschreibung"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="footnote" file="core-not.tex">
- <cd:sequence>
- <cd:string value="fussnote"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="footnotetext" file="core-not.tex">
- <cd:sequence>
- <cd:string value="footnotetext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="note" file="core-not.tex">
- <cd:sequence>
- <cd:string value="notiz"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference interactive="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="localfootnotes" type="environment">
- <cd:sequence>
- <cd:string value="localfootnotes"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="placelocalfootnotes" file="core-not.tex">
- <cd:sequence>
- <cd:string value="platzierelokalefussnoten"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stellefussnotenein"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placefootnotes" file="core-not.tex">
- <cd:sequence>
- <cd:string value="platzierefussnoten"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stellefussnotenein"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupunderbar" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="stelleunterstreichenein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="alternative">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- </cd:parameter>
- <cd:parameter name="liniendicke">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="untenoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="obenoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="linienfarbe">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineoutput" file="spec-ini.tex">
+ <cd:sequence>
+ <cd:string value="defineoutput"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="underbar" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="unterstrichen"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="underbars" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="unterstreichen"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="overbar" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="ueberstrichen"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="overbars" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="ueberstreichen"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="overstrike" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="durchgestrichen"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="overstrikes" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="durchstreichen"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="romannumerals" file="core-con.tex">
- <cd:sequence>
- <cd:string value="roemischezahlen"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="Romannumerals" file="core-con.tex">
- <cd:sequence>
- <cd:string value="Roemischezahlen"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="numbers" file="core-con.tex">
- <cd:sequence>
- <cd:string value="ziffern"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="character" file="core-con.tex">
- <cd:sequence>
- <cd:string value="buchstabe"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="Character" file="core-con.tex">
- <cd:sequence>
- <cd:string value="Buchstabe"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="characters" file="core-con.tex">
- <cd:sequence>
- <cd:string value="buchstaben"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="Characters" file="core-con.tex">
- <cd:sequence>
- <cd:string value="Buchstaben"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="mediaeval" file="core-con.tex">
- <cd:sequence>
- <cd:string value="mediaeval"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="month" file="core-con.tex">
- <cd:sequence>
- <cd:string value="monat"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="MONTH" file="core-con.tex">
- <cd:sequence>
- <cd:string value="MONAT"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="weekday" file="core-con.tex">
- <cd:sequence>
- <cd:string value="wochentag"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="WEEKDAY" file="core-con.tex">
- <cd:sequence>
- <cd:string value="WOCHENTAG"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupcapitals" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="stelleversalienein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="titel">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="sc">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="cap" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="cap"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="nocap">
- <cd:sequence>
- <cd:string value="nocap"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="CAP">
- <cd:sequence>
- <cd:string value="CAP"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="Cap">
- <cd:sequence>
- <cd:string value="Cap"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="Caps">
- <cd:sequence>
- <cd:string value="Caps"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="WORD" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="WORT"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="WORDS" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="WOERTER"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="Word" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="Wort"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="Words" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="Woerter"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="stretched" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="gestreckt"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definesymbol" file="symb-ini.tex">
- <cd:sequence>
- <cd:string value="definieresymbol"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definefiguresymbol" file="symb-ini.tex">
- <cd:sequence>
- <cd:string value="definiereabbsymbol"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="externeabbildung"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="symbol" file="symb-ini.tex">
- <cd:sequence>
- <cd:string value="symbol"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="symbolset" type="environment">
- <cd:sequence>
- <cd:string value="symbolset"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupsymbolset" file="symb-ini.tex">
- <cd:sequence>
- <cd:string value="stellesymbolsetein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="usesymbols" file="symb-ini.tex">
- <cd:sequence>
- <cd:string value="verwendesymbole"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showsymbolset">
- <cd:sequence>
- <cd:string value="showsymbolset"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineconversion" file="core-con.tex">
- <cd:sequence>
- <cd:string value="definierekonversion"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:command"/>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="convertnumber" file="core-con.tex">
- <cd:sequence>
- <cd:string value="konvertierezahl"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupheadtext" file="lang-lab.tex">
- <cd:sequence>
- <cd:string value="stelleueberschrifttextein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:resolve name="language"/>
- </cd:keywords>
- <cd:assignments>
- <cd:parameter name="cd:name">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuplabeltext" file="lang-lab.tex">
- <cd:sequence>
- <cd:string value="stellelabeltextein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:resolve name="language"/>
- </cd:keywords>
- <cd:assignments>
- <cd:parameter name="cd:name">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="headtext" file="lang-lab.tex">
- <cd:sequence>
- <cd:string value="ueberschrifttext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="labeltext">
- <cd:sequence>
- <cd:string value="labeltext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupmarginrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="stellemarginallinieein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments>
- <cd:parameter name="niveau">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="liniendicke">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="marginrule" type="environment">
- <cd:sequence>
- <cd:string value="marginallinie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="marginrule">
- <cd:sequence>
- <cd:string value="marginallinie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuplinewidth" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="stellelinienbreiteein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupframed" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="stelleumrahmtein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="hoehe">
- <cd:constant type="passend"/>
- <cd:constant type="breit"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="passend"/>
- <cd:constant type="breit"/>
- <cd:constant type="fest"/>
- <cd:constant type="lokal"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="autobreite">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- <cd:constant type="zwinge"/>
- </cd:parameter>
- <cd:parameter name="offset">
- <cd:constant type="kein"/>
- <cd:constant type="overlay"/>
- <cd:constant type="default"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="platz">
- <cd:constant type="tiefe"/>
- <cd:constant type="haengend"/>
- <cd:constant type="hoch"/>
- <cd:constant type="hoti"/>
- <cd:constant type="tief"/>
- <cd:constant type="oben"/>
- <cd:constant type="mittig"/>
- <cd:constant type="unten"/>
- <cd:constant type="behalte"/>
- </cd:parameter>
- <cd:parameter name="option">
- <cd:constant type="kein"/>
- <cd:constant type="leer"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- <cd:constant type="global"/>
- <cd:constant type="lokal"/>
- </cd:parameter>
- <cd:parameter name="ausrichtung">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="unten">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="oben">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="rahmen">
- <cd:constant type="an"/>
- <cd:constant type="aus"/>
- <cd:constant type="kein"/>
- <cd:constant type="overlay"/>
- </cd:parameter>
- <cd:parameter name="obenrahmen">
- <cd:constant type="an"/>
- <cd:constant type="aus"/>
- </cd:parameter>
- <cd:parameter name="untenrahmen">
- <cd:constant type="an"/>
- <cd:constant type="aus"/>
- </cd:parameter>
- <cd:parameter name="linkerrahmen">
- <cd:constant type="an"/>
- <cd:constant type="aus"/>
- </cd:parameter>
- <cd:parameter name="rechterrahmen">
- <cd:constant type="an"/>
- <cd:constant type="aus"/>
- </cd:parameter>
- <cd:parameter name="rahmenoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rahmentiefe">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rahmenwinkel">
- <cd:constant type="rund"/>
- <cd:constant type="rechteckig"/>
- </cd:parameter>
- <cd:parameter name="rahmenradius">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rahmenfarbe">
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="hintergrund">
- <cd:constant type="raster"/>
- <cd:constant type="farbe"/>
- <cd:constant type="kein"/>
- <cd:constant type="vordergrund"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupoutput" file="spec-ini.tex">
+ <cd:sequence>
+ <cd:string value="stelleausgabeein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="hintergrundraster">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="hintergrundfarbe">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definebodyfontenvironment" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="definierefliesstextumgebung"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes"> <!-- it's possible to use 1+2+3, 2+3, what about 1+2? -->
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="hintergrundoffset">
- <cd:constant type="rahmen"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hintergrundtiefe">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hintergrundwinkel">
- <cd:constant type="rund"/>
- <cd:constant type="rechteckig"/>
- </cd:parameter>
- <cd:parameter name="hintergrundradius">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="tiefe">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="winkel">
- <cd:constant type="rund"/>
- <cd:constant type="rechteckig"/>
- </cd:parameter>
- <cd:parameter name="radius">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="leer">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="foregroundcolor">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="foregroundstyle">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="liniendicke">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="framed" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="umrahmt"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stelleumrahmtein"/>
- </cd:assignments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="inframed" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="imumriss"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stelleumrahmtein"/>
- </cd:assignments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="thinrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="duennerumriss"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes">
- <cd:inherit name="stelleduennerumrissein"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupthinrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="stelleduennerumrissein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments>
- <cd:parameter name="zeilenabstande">
- <cd:constant type="klein"/>
- <cd:constant type="mittel"/>
- <cd:constant type="gross"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="zwischen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="farbe">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="hintergrundfarbe">
+ </cd:keywords>
+ <cd:keywords n="2" optional="no"> <!-- have to force no, otherwise \showsetup is wrong ! -->
+ <cd:constant type="5pt"/> <!-- TODO: maybe <cd:resolve name="bodyfont"/> -->
+ <cd:constant type="..."/>
+ <cd:constant type="12pt"/>
+ <cd:constant type="default"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:parameter name="text">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="script">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="scriptscript">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="x">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="xx">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="a">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="b">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="c">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="d">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="klein">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="gross">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="zeilenabstande">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="em">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbodyfontenvironment" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="stellefliesstextumgebungein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes"> <!-- same as definebodyfontenvironment; you can define the whole commant to inherit, not only parameters-->
+ <cd:inherit name="definierefliesstextumgebung" n="1"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="no">
+ <cd:inherit name="definierefliesstextumgebung" n="2" optional="no"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="definierefliesstextumgebung" n="3"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showbodyfontenvironment" file="font-run.tex" category="fonts"> <!-- and debug -->
+ <cd:sequence>
+ <cd:string value="zeigefliesstextumgebung"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:inherit name="stellefliesstextein" n="1"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definebodyfont" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="definierefliesstext"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes"> <!-- <cd:constant type="default"/> -->
+ <cd:resolve name="bodyfont"/> <!-- TODO: check this -->
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="rm" default="yes"/>
+ <cd:constant type="ss"/>
+ <cd:constant type="tt"/>
+ <cd:constant type="hw"/>
+ <cd:constant type="cg"/>
+ <cd:constant type="mm"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:parameter name="tf">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="bf">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="sl">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="it">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="bs">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="bi">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="sc">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="mr">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="ex">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="mi">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="sy">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="ma">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="mb">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="mc">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="md">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definebodyfontDEF" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="definierefliesstext"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="hoehe">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="tiefe">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="alternative">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- <cd:constant type="d"/>
- </cd:parameter>
- <cd:parameter name="liniendicke">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="farbe">
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:inherit name="stellefliesstextein" n="2"/>
+ </cd:keywords>
+ <cd:keywords n="1">
+ <cd:inherit name="stellefliesstextein" n="3"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definebodyfontREF" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="definierefliesstext"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:inherit name="stellefliesstextein" n="1"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:inherit name="stellefliesstextein" n="2"/>
+ </cd:keywords>
+ <cd:keywords n="3">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="hintergrund">
- <cd:constant type="farbe"/>
- </cd:parameter>
- <cd:parameter name="hintergrundfarbe">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+
+ <cd:command name="showbodyfont" file="font-run.tex" category="fonts"> <!-- visual debugging -->
+ <cd:sequence>
+ <cd:string value="zeigefliesstext"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:inherit name="stellefliesstextein" n="1"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbodyfont" file="font-run.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="stellefliesstextein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes"> <!-- TODO: many missing, maybe also <cd:resolve name="bodyfont"/> -->
<cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="hairline" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="haarlinie"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="thinrule" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="duennelinie"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="defineframedtext" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="definiereumrahmtertext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stelleumrahmtetexteein"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineframed" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="definiereumrahmt"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stelleumrahmtetexteein"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupframedtexts" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="stelleumrahmtetexteein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="fliesstext">
+ <cd:constant type="serif"/>
+ <cd:constant type="regular"/>
+ <cd:constant type="antiqua"/>
+ <cd:constant type="sans"/>
+ <cd:constant type="support"/>
+ <cd:constant type="grotesk"/>
+ <cd:constant type="mono"/>
+ <cd:constant type="tippen"/>
+ <cd:constant type="fernschreiber"/>
+ <cd:constant type="handschrift"/>
+ <cd:constant type="kalligraphie"/>
<cd:constant type="5pt"/>
<cd:constant type="..."/>
<cd:constant type="12pt"/>
- <cd:constant type="klein"/>
- <cd:constant type="gross"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="links">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="rechts">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="innen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="zeilekorrektur">
- <cd:constant type="an"/>
- <cd:constant type="aus"/>
- </cd:parameter>
- <cd:parameter name="tiefekorrektur">
- <cd:constant type="an"/>
- <cd:constant type="aus"/>
- </cd:parameter>
- <cd:parameter name="marginalie">
- <cd:constant type="standard"/>
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="platz">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="mittig"/>
- <cd:constant type="kein"/>
- </cd:parameter>
- <cd:parameter name="einziehen">
- <cd:resolve name="indenting"/>
- </cd:parameter>
- <cd:inherit name="stelleumrahmtein"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="framedtext" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="umrahmtertext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="mittig"/>
- <cd:constant type="kein"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stelleumrahmtetexteein"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="framedtext" generated="yes">
- <cd:sequence>
- <cd:variable value="umrahmtertext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stelleumrahmtetexteein"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="background" type="environment">
- <cd:sequence>
- <cd:string value="hintergrund"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="background">
- <cd:sequence>
- <cd:string value="hintergrund"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupbackground" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="stellehintergrundein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="linkeroffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rechterabstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="obenoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="untenoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:inherit name="stelleumrahmtein"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="fillinrules">
- <cd:sequence>
- <cd:string value="gefuelltesrechteck"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stellegefuelltesrechteckein"/>
- </cd:assignments>
- <cd:content/>
- <cd:content optional="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="fillintext">
- <cd:sequence>
- <cd:string value="ausfuelltext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stellegefuelltesrechteckein"/>
- </cd:assignments>
- <cd:content/>
- <cd:content optional="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfillinrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="stellegefuelltesrechteckein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="breite">
- <cd:constant type="passend"/>
- <cd:constant type="breit"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="abstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="zeilenabstande">
- <cd:constant type="klein"/>
- <cd:constant type="mittel"/>
- <cd:constant type="gross"/>
- </cd:parameter>
- <cd:parameter name="seperator">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="fillinline">
- <cd:sequence>
- <cd:string value="gefuelltezeile"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stellegefuelltezeileein"/>
- </cd:assignments>
- <cd:nothing/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfillinlines" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="stellegefuelltezeileein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="marginalie">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="abstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptextrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="stelletextumrissein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="platz">
- <cd:constant type="links"/>
- <cd:constant type="imrand"/>
- </cd:parameter>
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="zwischen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="abstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="fliesstext">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="switchtobodyfont" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="wechselezumfliesstext"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ <cd:constant type="serif"/>
+ <cd:constant type="regular"/>
+ <cd:constant type="antiqua"/>
+ <cd:constant type="sans"/>
+ <cd:constant type="support"/>
+ <cd:constant type="grotesk"/>
+ <cd:constant type="mono"/>
+ <cd:constant type="tippen"/>
+ <cd:constant type="fernschreiber"/>
+ <cd:constant type="handschrift"/>
+ <cd:constant type="kalligraphie"/>
<cd:constant type="5pt"/>
<cd:constant type="..."/>
<cd:constant type="12pt"/>
<cd:constant type="klein"/>
<cd:constant type="gross"/>
- </cd:parameter>
- <cd:parameter name="farbe">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefont" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="definiereschrift"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="linienfarbe">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="textrule" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="textlinie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="oben"/>
- <cd:constant type="unten"/>
- </cd:keywords>
- <cd:content optional="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="textrule" type="environment" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="textlinie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="oben"/>
- <cd:constant type="unten"/>
- </cd:keywords>
- <cd:content optional="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="blackrule" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="rechteck"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stellerechteckein"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="blackrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="rechtecke"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:inherit name="stellerechteckein"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupblackrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="stellerechteckein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="hoehe">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="tiefe">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="alternative">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- </cd:parameter>
- <cd:parameter name="abstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineoverlay" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="definiereoverlay"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:command"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="usemodule">
- <cd:sequence>
- <cd:string value="verwendemodul"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="reset" file="core-num.tex">
- <cd:sequence>
- <cd:string value="ruecksetzten"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="donttest">
- <cd:sequence>
- <cd:string value="keintest"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="localenvironment" type="environment">
- <cd:sequence>
- <cd:string value="localenvironment"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupsystem" file="core-sys.tex">
- <cd:sequence>
- <cd:string value="stellesystemein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="aufloesung">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="datei">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="verzeichnis">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="zufaellig">
- <cd:constant type="normal"/>
- <cd:constant type="klein"/>
- <cd:constant type="mittel"/>
- <cd:constant type="gross"/>
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="usedirectory">
- <cd:sequence>
- <cd:string value="usedirectory"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- <cd:constant type="zuruecksetzten"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="low" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="tief"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="high" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="hoch"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="lohi" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="tiho"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="tief"/>
- </cd:keywords>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showframe">
- <cd:sequence>
- <cd:string value="zeigerahmen"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- <cd:constant type="marginalie"/>
- <cd:constant type="kante"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="leftaligned" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="linksbuendig"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="rightaligned" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="rechtsbuendig"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="midaligned" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="zentriert"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="wordright" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="wortrechts"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="inmargin" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="inmarginalie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="tief"/>
- </cd:keywords>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="inothermargin" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="inanderermarginale"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="tief"/>
- </cd:keywords>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="inleft">
- <cd:sequence>
- <cd:string value="imlinken"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="tief"/>
- </cd:keywords>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="inright">
- <cd:sequence>
- <cd:string value="imrechten"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="tief"/>
- </cd:keywords>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="ininner">
- <cd:sequence>
- <cd:string value="ininner"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="tief"/>
- </cd:keywords>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="inouter">
- <cd:sequence>
- <cd:string value="inouter"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="tief"/>
- </cd:keywords>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="column">
- <cd:sequence>
- <cd:string value="spalte"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="showstruts" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="zeigestruts"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="showsetups">
- <cd:sequence>
- <cd:string value="zeigeeinstellungen"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="showlayout">
- <cd:sequence>
- <cd:string value="zeigelayout"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="margintext" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="marginaltext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="tief"/>
- </cd:keywords>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupmarginblocks" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="stellemarginalblockein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="platz">
- <cd:constant type="imrand"/>
- <cd:constant type="links"/>
- <cd:constant type="mittig"/>
- <cd:constant type="rechts"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="ausrichtung">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="oben">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="zwischen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="unten">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="links">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="rechts">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="marginblock" type="environment">
- <cd:sequence>
- <cd:string value="marginblock"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="part" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="part"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="title" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="title"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="chapter" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="chapter"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="section" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="section"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="subsection" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subsection"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="subsubsection" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subsubsection"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="subject" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subject"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="subsubject" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subsubject"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="subsubsubject" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subsubsubject"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="appendix" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="appendix"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="in" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="in"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content interactive="yes"/>
- <cd:content interactive="yes"/>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="at">
- <cd:sequence>
- <cd:string value="bei"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content interactive="yes"/>
- <cd:content interactive="yes"/>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="about">
- <cd:sequence>
- <cd:string value="ueber"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content interactive="yes"/>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="somewhere" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="irgendwo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="atpage" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="aufseite"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="ref" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="ref"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="t"/>
- <cd:constant type="p"/>
- <cd:constant type="r"/>
- <cd:constant type="s"/>
- <cd:constant type="e"/>
- </cd:keywords>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="textreference" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="textreferenz"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="pagereference" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="seitenreferenz"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="reference" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="referenz"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="usereferences" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="verwendereferenzen"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definereference" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="definierereferenz"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:reference list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definereferenceformat" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="definierereferenzformat"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="links">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="rechts">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="text">
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="label">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcolor" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="stellefarbeein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="hl">
- <cd:sequence>
- <cd:string value="hl"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="vl">
- <cd:sequence>
- <cd:string value="vl"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="godown" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="nachunten"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="whitespace" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="zwischenraum"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="nowhitespace" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="keinzwischenraum"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="crlf" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="crlf"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="space" file="syst-pln.tex">
- <cd:sequence>
- <cd:string value="spatium"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="fixedspaces" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="festesspatium"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="emptylines" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="emptylines"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="nospace" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="keinspatium"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="packed" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="kleinerdurchschuss"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupdescriptions" file="core-des.tex">
- <cd:sequence>
- <cd:string value="definierebeschreibungen"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="kopfstil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="farbe">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="passend"/>
- <cd:constant type="breit"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="abstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="muster">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="text">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="closesymbol">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="closecommand">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="titleleft">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcolors" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="stellefarbenein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="global"/>
+ <cd:constant type="lokal"/>
+ </cd:parameter>
+ <cd:parameter name="konversion">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ <cd:constant type="immer"/>
+ </cd:parameter>
+ <cd:parameter name="reduktion">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ <cd:parameter name="rgb">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ <cd:parameter name="cmyk">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ <cd:parameter name="mpcmyk">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ <cd:parameter name="mpspot">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ <cd:parameter name="faktor">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ <cd:parameter name="textfarbe">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="split">
+ <cd:constant type="c"/>
+ <cd:constant type="m"/>
+ <cd:constant type="y"/>
+ <cd:constant type="k"/>
+ <cd:constant type="p"/>
+ <cd:constant type="s"/>
+ <cd:constant type="nein"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="kriterium">
+ <cd:constant type="alles"/>
+ <cd:constant type="kein"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definecolor" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="definierefarbe"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="r">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="g">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="b">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="c">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="m">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="y">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="k">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="s">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="h">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="t">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="a">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="p">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="e">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="color" type="environment" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="farbe"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="color" file="colo-ini.tex">
+ <cd:sequence>
+ <cd:string value="farbe"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="titleright">
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="graycolor" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="graufarbe"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="titelabstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="titelstil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="titelfarbe">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="ausrichtung">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="marginalie">
- <cd:constant type="standard"/>
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="platz">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="oben"/>
- <cd:constant type="kleinerabstand"/>
- <cd:constant type="imrand"/>
- <cd:constant type="imlinken"/>
- <cd:constant type="imrechten"/>
- <cd:constant type="haengend"/>
- </cd:parameter>
- <cd:parameter name="headcommand">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="haengend">
- <cd:constant type="passend"/>
- <cd:constant type="breit"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showcolor" file="colo-run.tex" category="colors"> <!-- and debug -->
+ <cd:sequence>
+ <cd:string value="zeigefarbe"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definepalet" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="definierepalette"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="cd:name">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppalet" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="stellepaletteein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definecolorgroup" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="definierefarbengruppe"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="rgb" default="yes"/>
+ <cd:constant type="cmyk"/>
+ <cd:constant type="grau"/>
+ <cd:constant type="s"/>
+ </cd:keywords>
+ <cd:triplet n="3" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showpalet" file="colo-run.tex" category="colors"> <!-- and debug -->
+ <cd:sequence>
+ <cd:string value="zeigepalette"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="horizontal"/>
+ <cd:constant type="vertikal"/>
+ <cd:constant type="name"/>
+ <cd:constant type="wert"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showcolorgroup" file="colo-run.tex" category="colors"> <!-- and debug-->
+ <cd:sequence>
+ <cd:string value="zeigefarbengruppe"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="horizontal"/>
+ <cd:constant type="vertikal"/>
+ <cd:constant type="name"/>
+ <cd:constant type="wert"/>
<cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="zwischen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="ziehefolgendeein">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="einziehen">
- <cd:resolve name="indenting"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupenumerations" file="core-des.tex">
- <cd:sequence>
- <cd:string value="stellebeschreibungein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="definierebeschreibung"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineenumeration" file="core-des.tex">
- <cd:sequence>
- <cd:string value="definierenummerierung"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stellebeschreibungein"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="enumeration" generated="yes">
- <cd:sequence>
- <cd:variable value="nummerierung"/>
- </cd:sequence>
- <cd:arguments>
- <cd:nothing interactive="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="enumeration" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="nummerierung"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="definedescription" file="core-des.tex">
- <cd:sequence>
- <cd:string value="definierebeschreibung"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="definierebeschreibungen"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="description" generated="yes">
- <cd:sequence>
- <cd:variable value="beschreibung"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:nothing/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="description" type="environment" generated="yes">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="comparepalet" file="colo-run.tex" category="colors"> <!-- and debug? -->
+ <cd:sequence>
+ <cd:string value="vergleichepalette"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="comparecolorgroup" file="colo-run.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="vergleichefarbengruppe"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showmakeup" file="supp-vis.tex" category="debug">
+ <cd:sequence>
+ <cd:string value="zeigeumbruch"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="definetype" file="core-ver.tex" category="verbatim">
+ <cd:sequence>
+ <cd:string value="definetype"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="stelletipein" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptype" file="core-ver.tex" category="verbatim"> <!-- TODO -->
+ <cd:sequence>
+ <cd:string value="stelletipein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="spatium">
+ <cd:constant type="an"/>
+ <cd:constant type="aus" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="option">
+ <cd:constant type="geneigt"/>
+ <cd:constant type="normal"/>
+ <cd:constant type="kein"/>
+ </cd:parameter>
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="farbe">
+ <cd:constant type="cd:name" default=""/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="type" file="verb-ini.tex" category="verbatim">
+ <cd:sequence>
+ <cd:string value="tippen"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="typ" file="core-ver.tex" category="verbatim">
+ <cd:sequence>
+ <cd:string value="tip"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tex" file="core-ver.tex" category="verbatim">
+ <cd:sequence>
+ <cd:string value="tex"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <!-- cd:command name="arg" file="core-ver.tex"> command broken
<cd:sequence>
- <cd:variable value="beschreibung"/>
+ <cd:string value="arg"/>
</cd:sequence>
<cd:arguments>
<cd:content/>
</cd:arguments>
-</cd:command>
-
-<cd:command name="setupindentations" file="core-des.tex">
- <cd:sequence>
- <cd:string value="stelleeinzuegein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="kopfstil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="passend"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="text">
+</cd:command -->
+
+ <cd:command name="definetyping" file="core-ver.tex" category="verbatim">
+ <cd:sequence>
+ <cd:string value="definieretippen"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:inherit name="stelletippenein" n="1"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="stelletippenein" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptyping" file="core-ver.tex" category="verbatim">
+ <cd:sequence>
+ <cd:string value="stelletippenein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="datei"/>
+ <cd:constant type="tippen"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="spatium">
+ <cd:constant type="an"/>
+ <cd:constant type="aus"/>
+ </cd:parameter>
+ <cd:parameter name="seite">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ <cd:parameter name="option">
+ <cd:constant type="geneigt"/>
+ <cd:constant type="normal"/>
+ <cd:constant type="befehle"/>
+ <cd:constant type="farbe"/>
+ <cd:constant type="kein"/>
+ </cd:parameter>
+ <cd:parameter name="text">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ <cd:parameter name="ibefehl">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="vbefehl">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="cbefehl">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="vor">
+ <cd:constant type="cd:command" default="\blank"/>
+ </cd:parameter>
+ <cd:parameter name="nach">
+ <cd:constant type="cd:command" default="\blank"/>
+ </cd:parameter>
+ <cd:parameter name="marginalie">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="standard"/>
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ <cd:parameter name="geraderand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="ungeraderand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="blanko">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="klein"/>
+ <cd:constant type="mittel"/>
+ <cd:constant type="gross"/>
+ <cd:constant type="standard"/>
+ <cd:constant type="halbezeile"/>
+ <cd:constant type="zeile"/>
+ </cd:parameter>
+ <cd:parameter name="escape">
+ <cd:constant type="cd:character"/>
+ </cd:parameter>
+ <cd:parameter name="spatium">
+ <cd:constant type="an"/>
+ <cd:constant type="aus"/>
+ </cd:parameter>
+ <cd:parameter name="tab">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ <cd:parameter name="seite">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ <cd:parameter name="ziehefolgendeein">
+ <cd:resolve name="indentnext"/>
+ </cd:parameter>
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="farbe">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="palette">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="zeilen">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ <cd:constant type="hyphenate"/>
+ </cd:parameter>
+ <cd:parameter name="leer">
+ <cd:constant type="ja"/>
+ <cd:constant type="alles"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ <cd:parameter name="nummerierung">
+ <cd:constant type="zeile"/>
+ <cd:constant type="datei"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ <cd:parameter name="fliesstext">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="typing" type="environment" generated="yes" file="verb-ini.tex"
+ category="verbatim">
+ <cd:sequence>
+ <cd:variable value="tippen"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="typefile" file="verb-ini.tex" category="verbatim">
+ <cd:sequence>
+ <cd:string value="tippedatei"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfootnotes" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="stellefussnotenein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="konversion">
+ <cd:constant type="ziffern"/>
+ <cd:constant type="buchstaben"/>
+ <cd:constant type="Buchstaben"/>
+ <cd:constant type="roemischezahlen"/>
+ <cd:constant type="Roemischezahlen"/>
+ </cd:parameter>
+ <cd:parameter name="art">
+ <cd:constant type="bytext"/>
+ <cd:constant type="bycd:section"/>
+ </cd:parameter>
+ <cd:parameter name="platz">
+ <cd:constant type="seite"/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="spalten"/>
+ <cd:constant type="firstcolumn"/>
+ <cd:constant type="lastcolumn"/>
+ <cd:constant type="hoch"/>
+ <cd:constant type="kein"/>
+ </cd:parameter>
+ <cd:parameter name="linie">
+ <cd:constant type="an"/>
+ <cd:constant type="aus"/>
+ </cd:parameter>
+ <cd:parameter name="vor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="nach">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="breite">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="hoehe">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="fliesstext">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="abstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="spaltenabstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="marginalabstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="nummerbefehl">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="textbefehl">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="split">
+ <cd:constant type="tolerant"/>
+ <cd:constant type="streng"/>
+ <cd:constant type="sehrstreng"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="textstil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="textfarbe">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="interaktion">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ <cd:parameter name="faktor">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:inherit name="stelleumrahmtein" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfootnotedefinition" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="stellefussnotendefinitionein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:inherit name="definierebeschreibungen" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="footnote" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="fussnote"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="footnotetext" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="footnotetext"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="note" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="notiz"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" interactive="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="localfootnotes" type="environment" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="localfootnotes"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="placelocalfootnotes" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="platzierelokalefussnoten"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="stellefussnotenein" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placefootnotes" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="platzierefussnoten"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="stellefussnotenein" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupunderbar" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="stelleunterstreichenein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="alternative">
+ <cd:constant type="a"/>
+ <cd:constant type="b"/>
+ <cd:constant type="c"/>
+ </cd:parameter>
+ <cd:parameter name="liniendicke">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="untenoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="obenoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="linienfarbe">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="underbar" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="unterstrichen"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="underbars" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="unterstreichen"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overbar" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="ueberstrichen"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overbars" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="ueberstreichen"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overstrike" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="durchgestrichen"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overstrikes" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="durchstreichen"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="romannumerals" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="roemischezahlen"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Romannumerals" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="Roemischezahlen"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="numbers" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="ziffern"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="character" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="buchstabe"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Character" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="Buchstabe"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="characters" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="buchstaben"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Characters" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="Buchstaben"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mediaeval" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="mediaeval"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="month" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="monat"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MONTH" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="MONAT"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="weekday" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="wochentag"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="WEEKDAY" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="WOCHENTAG"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcapitals" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="stelleversalienein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="titel">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ <cd:parameter name="sc">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="cap" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="cap"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nocap" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="nocap"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="CAP" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="CAP"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Cap" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="Cap"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Caps" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="Caps"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="WORD" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="WORT"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="WORDS" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="WOERTER"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Word" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="Wort"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Words" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="Woerter"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="stretched" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="gestreckt"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definesymbol" file="symb-ini.tex">
+ <cd:sequence>
+ <cd:string value="definieresymbol"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="muster">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefiguresymbol" file="symb-ini.tex">
+ <cd:sequence>
+ <cd:string value="definiereabbsymbol"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="stelleexterneabbildungenein" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="symbol" file="symb-ini.tex">
+ <cd:sequence>
+ <cd:string value="symbol"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="symbolset" type="environment" file="symb-ini.tex" category="symbols">
+ <cd:sequence>
+ <cd:string value="symbolset"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsymbolset" file="symb-ini.tex" category="symbols">
+ <cd:sequence>
+ <cd:string value="stellesymbolsetein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usesymbols" file="symb-ini.tex" category="symbols">
+ <cd:sequence>
+ <cd:string value="verwendesymbole"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showsymbolset" file="symb-run.tex" category="symbols"> <!-- and symbols -->
+ <cd:sequence>
+ <cd:string value="showsymbolset"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineconversion" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="definierekonversion"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
<cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="abstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="seperator">
<cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineindenting" file="core-des.tex">
- <cd:sequence>
- <cd:string value="definiereeinzug"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="stelleeinzuegein"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="indentation" generated="yes" file="core-spa.tex">
- <cd:sequence>
- <cd:variable value="indentation"/>
- </cd:sequence>
- <cd:arguments>
- <cd:nothing/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definelabel" file="core-des.tex">
- <cd:sequence>
- <cd:string value="definierelabel"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="text">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="platz">
- <cd:constant type="imrand"/>
- <cd:constant type="imtext"/>
- </cd:parameter>
- <cd:parameter name="art">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="blockauf">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="kopfstil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="kopffarbe">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="labeling" generated="yes">
- <cd:sequence>
- <cd:variable value="labeling"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupcolumns" file="page-mul.tex">
- <cd:sequence>
- <cd:string value="stellespaltenein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="n">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="convertnumber" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="konvertierezahl"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupheadtext" file="lang-lab.tex">
+ <cd:sequence>
+ <cd:string value="stelleueberschrifttextein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:resolve name="language"/>
+ </cd:keywords>
+ <cd:assignments n="2">
+ <cd:parameter name="cd:name">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplabeltext" file="lang-lab.tex">
+ <cd:sequence>
+ <cd:string value="stellelabeltextein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:resolve name="language"/>
+ </cd:keywords>
+ <cd:assignments n="2">
+ <cd:parameter name="cd:name">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="headtext" file="lang-lab.tex">
+ <cd:sequence>
+ <cd:string value="ueberschrifttext"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="labeltext" file="lang-lab.tex">
+ <cd:sequence>
+ <cd:string value="labeltext"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupmarginrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="stellemarginallinieein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1">
+ <cd:parameter name="niveau">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="liniendicke">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="marginrule" type="environment" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="marginallinie"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="noben">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="marginrule" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="marginallinie"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="linie">
- <cd:constant type="an"/>
- <cd:constant type="aus"/>
- </cd:parameter>
- <cd:parameter name="hoehe">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="toleranz">
- <cd:constant type="sehrstreng"/>
- <cd:constant type="streng"/>
- <cd:constant type="tolerant"/>
- <cd:constant type="sehrtolerant"/>
- <cd:constant type="strecken"/>
- </cd:parameter>
- <cd:parameter name="abstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="ausgleichen">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="ausrichtung">
- <cd:constant type="text"/>
- <!-- cd:constant type="yes"/ -->
- <!-- cd:constant type="no"/ -->
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="blanko">
- <cd:constant type="fest"/>
- <cd:constant type="halbezeile"/>
- <cd:constant type="zeile"/>
- <cd:constant type="flexibel"/>
- <cd:constant type="gross"/>
- <cd:constant type="mittel"/>
- <cd:constant type="klein"/>
- </cd:parameter>
- <cd:parameter name="option">
- <cd:constant type="hintergrund"/>
- </cd:parameter>
- <cd:parameter name="richtung">
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplinewidth" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="stellelinienbreiteein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupframed" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="stelleumrahmtein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/> <!-- defines a command with that name -->
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="hoehe">
+ <cd:constant type="passend"/>
+ <cd:constant type="breit"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="breite">
+ <cd:constant type="passend"/>
+ <cd:constant type="breit"/>
+ <cd:constant type="fest"/>
+ <cd:constant type="lokal"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="autobreite">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ <cd:constant type="zwinge"/>
+ </cd:parameter>
+ <cd:parameter name="offset">
+ <cd:constant type="kein"/>
+ <cd:constant type="overlay"/>
+ <cd:constant type="default"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="platz">
+ <cd:constant type="tiefe"/>
+ <cd:constant type="haengend"/>
+ <cd:constant type="hoch"/>
+ <cd:constant type="hoti"/>
+ <cd:constant type="tief"/>
+ <cd:constant type="oben"/>
+ <cd:constant type="mittig"/>
+ <cd:constant type="unten"/>
+ <cd:constant type="behalte"/>
+ </cd:parameter>
+ <cd:parameter name="option">
+ <cd:constant type="kein"/>
+ <cd:constant type="leer"/>
+ </cd:parameter>
+ <cd:parameter name="strut">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ <cd:constant type="global"/>
+ <cd:constant type="lokal"/>
+ </cd:parameter>
+ <cd:parameter name="ausrichtung">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="unten">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="oben">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="rahmen">
+ <cd:constant type="an"/>
+ <cd:constant type="aus"/>
+ <cd:constant type="kein"/>
+ <cd:constant type="overlay"/>
+ </cd:parameter>
+ <cd:parameter name="obenrahmen">
+ <cd:constant type="an"/>
+ <cd:constant type="aus"/>
+ </cd:parameter>
+ <cd:parameter name="untenrahmen">
+ <cd:constant type="an"/>
+ <cd:constant type="aus"/>
+ </cd:parameter>
+ <cd:parameter name="linkerrahmen">
+ <cd:constant type="an"/>
+ <cd:constant type="aus"/>
+ </cd:parameter>
+ <cd:parameter name="rechterrahmen">
+ <cd:constant type="an"/>
+ <cd:constant type="aus"/>
+ </cd:parameter>
+ <cd:parameter name="rahmenoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rahmentiefe">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rahmenwinkel">
+ <cd:constant type="rund"/>
+ <cd:constant type="rechteckig"/>
+ </cd:parameter>
+ <cd:parameter name="rahmenradius">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rahmenfarbe">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="hintergrund">
+ <cd:constant type="raster"/>
+ <cd:constant type="farbe"/>
+ <cd:constant type="kein"/>
+ <cd:constant type="vordergrund"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="hintergrundraster">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="hintergrundfarbe">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="hintergrundoffset">
+ <cd:constant type="rahmen"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="hintergrundtiefe">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="hintergrundwinkel">
+ <cd:constant type="rund"/>
+ <cd:constant type="rechteckig"/>
+ </cd:parameter>
+ <cd:parameter name="hintergrundradius">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="tiefe">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="winkel">
+ <cd:constant type="rund"/>
+ <cd:constant type="rechteckig"/>
+ </cd:parameter>
+ <cd:parameter name="radius">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="leer">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ <cd:parameter name="foregroundcolor">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="foregroundstyle">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="liniendicke">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="framed" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="umrahmt"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="stelleumrahmtein" n="2"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inframed" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="imumriss"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="stelleumrahmtein" n="2"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="thinrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="duennerumriss"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes">
+ <cd:inherit name="stelleduennerumrissein" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupthinrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="stelleduennerumrissein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1">
+ <cd:parameter name="zeilenabstande">
+ <cd:constant type="klein"/>
+ <cd:constant type="mittel"/>
+ <cd:constant type="gross"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="vor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="zwischen">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="nach">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="farbe">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="hintergrundfarbe">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="hoehe">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="max"/>
+ </cd:parameter>
+ <cd:parameter name="tiefe">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="max"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:constant type="a"/>
+ <cd:constant type="b"/>
+ <cd:constant type="c"/>
+ <cd:constant type="d"/>
+ </cd:parameter>
+ <cd:parameter name="liniendicke">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="farbe">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="hintergrund">
+ <cd:constant type="farbe"/>
+ </cd:parameter>
+ <cd:parameter name="hintergrundfarbe">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="hairline" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="haarlinie"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="thinrule" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="duennelinie"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="defineframedtext" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="definiereumrahmtertext"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="stelleumrahmtetexteein" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineframed" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="definiereumrahmt"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="stelleumrahmtetexteein" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupframedtexts" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="stelleumrahmtetexteein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="fliesstext">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="links">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="rechts">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="vor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="nach">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="innen">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="zeilekorrektur">
+ <cd:constant type="an"/>
+ <cd:constant type="aus"/>
+ </cd:parameter>
+ <cd:parameter name="tiefekorrektur">
+ <cd:constant type="an"/>
+ <cd:constant type="aus"/>
+ </cd:parameter>
+ <cd:parameter name="marginalie">
+ <cd:constant type="standard"/>
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ <cd:parameter name="platz">
+ <cd:constant type="links"/>
+ <cd:constant type="rechts"/>
+ <cd:constant type="mittig"/>
+ <cd:constant type="kein"/>
+ </cd:parameter>
+ <cd:parameter name="einziehen">
+ <cd:resolve name="indenting"/>
+ </cd:parameter>
+ <cd:inherit name="stelleumrahmtein" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="framedtext" type="environment" generated="yes" file="core-rul.tex">
+ <cd:sequence>
+ <cd:variable value="umrahmtertext"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="links"/>
<cd:constant type="rechts"/>
- </cd:parameter>
- <cd:inherit name="stelleumrahmtein"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="columns" type="environment">
- <cd:sequence>
- <cd:string value="columns"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stellespaltenein"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definetext" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="definieretext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="kopfzeile"/>
- <cd:constant type="fusszeile"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupheader" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="stellekopfzeileein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text" default="yes"/>
- <cd:constant type="marginalie"/>
- <cd:constant type="kante"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="status">
- <cd:constant type="normal"/>
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- <cd:constant type="leer"/>
- <cd:constant type="hoch"/>
+ <cd:constant type="mittig"/>
<cd:constant type="kein"/>
- <cd:constant type="keinebeschriftung"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="stelleumrahmtetexteein" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="framedtext" generated="yes" file="core-rul.tex">
+ <cd:sequence>
+ <cd:variable value="umrahmtertext"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="stelleumrahmtetexteein" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="background" type="environment" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="hintergrund"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="background" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="hintergrund"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbackground" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="stellehintergrundein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="linkeroffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rechterabstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="obenoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="untenoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="vor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="nach">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:inherit name="stelleumrahmtein" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fillinrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="gefuelltesrechteck"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="stellegefuelltesrechteckein" n="1"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ <cd:content n="3" optional="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fillintext" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="ausfuelltext"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="stellegefuelltesrechteckein" n="1"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ <cd:content n="3" optional="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfillinrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="stellegefuelltesrechteckein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="breite">
+ <cd:constant type="passend"/>
+ <cd:constant type="breit"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="abstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="vor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="nach">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="zeilenabstande">
+ <cd:constant type="klein"/>
+ <cd:constant type="mittel"/>
+ <cd:constant type="gross"/>
+ </cd:parameter>
+ <cd:parameter name="seperator">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fillinline" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="gefuelltezeile"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="stellegefuelltezeileein" n="1"/>
+ </cd:assignments>
+ <cd:nothing n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfillinlines" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="stellegefuelltezeileein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="breite">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="marginalie">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="abstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="vor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="nach">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptextrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="stelletextumrissein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="platz">
+ <cd:constant type="links"/>
+ <cd:constant type="imrand"/>
+ </cd:parameter>
+ <cd:parameter name="vor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="nach">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="zwischen">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="breite">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="abstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="fliesstext">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ <cd:parameter name="farbe">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="linienfarbe">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="textrule" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="textlinie"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="oben"/>
+ <cd:constant type="unten"/>
+ </cd:keywords>
+ <cd:content n="2" optional="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="textrule" type="environment" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="textlinie"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="oben"/>
+ <cd:constant type="unten"/>
+ </cd:keywords>
+ <cd:content n="2" optional="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="blackrule" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="rechteck"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="stellerechteckein" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="blackrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="rechtecke"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:inherit name="stellerechteckein" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupblackrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="stellerechteckein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="breite">
+ <cd:constant type="cd:dimension" default="1em"/>
+ <cd:constant type="max"/>
+ </cd:parameter>
+ <cd:parameter name="hoehe">
+ <cd:constant type="cd:dimension" default="1ex"/>
+ <cd:constant type="max"/>
+ </cd:parameter>
+ <cd:parameter name="tiefe">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="max"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:constant type="a" default="yes"/>
+ <cd:constant type="b"/>
+ </cd:parameter>
+ <cd:parameter name="abstand">
+ <cd:constant type="cd:dimension" default=".25ex"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number" default="3"/>
+ </cd:parameter>
+ <cd:parameter name="farbe">
+ <cd:constant type="cd:name" default=""/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineoverlay" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="definiereoverlay"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="linkerstil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="rechterstil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="linkerbreite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rechterbreite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
+ </cd:keywords>
+ <cd:keywords n="2">
<cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfooter" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="stellefusszeileein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:inherit name="stellekopfzeileein"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="stellekopfzeileein"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptext" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="stelletextein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:inherit name="stellekopfzeileein"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="stellekopfzeileein"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptop" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="stellenobenein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:inherit name="stellekopfzeileein"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="stellekopfzeileein"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupbottom" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="stelleuntenein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:inherit name="stellekopfzeileein"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="stellekopfzeileein"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="noheaderandfooterlines" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="keinekopfundfusszeilen"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="notopandbottomlines" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="keinzeilenobenundunten"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupheadertexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="stellekopfzeilentextein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfootertexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="stellefusszeilentextein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptexttexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="stelletexttexteein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptoptexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="stelletextobenein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupbottomtexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="stelletextuntenein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="settextcontent" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="settext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:resolve name="layout-v"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="resettextcontent" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="resettextcontent"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:resolve name="layout-v"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant name="lefttext"/>
- <cd:constant name="middletext"/>
- <cd:constant name="righttext"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definemarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="definierebeschriftung"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="couplemarking" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="verknuepfebeschriftung"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="decouplemarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="entknuepfebeschriftung"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="resetmarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="ruecksetztenbeschriftung"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupmarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="stellebeschriftungein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="seperator">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="expansion">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="marking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="beschriftung"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="getmarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="holebeschriftung"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="erste"/>
- <cd:constant type="letzte"/>
- <cd:constant type="vorig"/>
- <cd:constant type="beide"/>
- <cd:constant type="alles"/>
- <cd:constant type="aktuell"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="nomarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="keinebeschriftung"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usemodule" file="core-fil.tex"> <!-- TODO -->
+ <cd:sequence>
+ <cd:string value="verwendemodul"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="reset" file="core-num.tex">
+ <cd:sequence>
+ <cd:string value="ruecksetzten"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
-<cd:command name="setuplayout" file="page-ini.tex">
+ <!-- <cd:command name="donttest">
<cd:sequence>
- <cd:string value="stellelayoutein"/>
+ <cd:string value="keintest"/>
</cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="passend"/>
- <cd:constant type="mittig"/>
- </cd:parameter>
- <cd:parameter name="hoehe">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="passend"/>
- <cd:constant type="mittig"/>
- </cd:parameter>
- <cd:parameter name="rumpfspatium">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="kopfspatium">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="marginalie">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="linkerrand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rechterrand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="kopfzeile">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="fusszeile">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="oben">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="unten">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="linkekante">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rechtekante">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="kopfzeilenabstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="fusszeilenabstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="obenabstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="abstandunten">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="linkerrandabstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rechterrandabstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="linkerkantenabstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rechterkantenabstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rumpfabstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="kopfoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="farbe">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="beschriftung">
- <cd:constant type="an"/>
- <cd:constant type="aus"/>
- <cd:constant type="farbe"/>
- <cd:constant type="raster"/>
+</cd:command> -->
+
+ <cd:command name="localenvironment" type="environment" file="core-job.tex">
+ <cd:sequence>
+ <cd:string value="localenvironment"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupsystem" file="core-sys.tex">
+ <cd:sequence>
+ <cd:string value="stellesystemein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="aufloesung">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="datei">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="verzeichnis">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="zufaellig">
+ <cd:constant type="normal"/>
+ <cd:constant type="klein"/>
+ <cd:constant type="mittel"/>
+ <cd:constant type="gross"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usedirectory" file="core-job.mkii"> <!-- usepath, todo: more than one file -->
+ <cd:sequence>
+ <cd:string value="usedirectory"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ <cd:constant type="zuruecksetzten"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="low" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="tief"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="high" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="hoch"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="lohi" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="tiho"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="tief"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showframe" file="page-run.tex">
+ <cd:sequence>
+ <cd:string value="zeigerahmen"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="platz">
- <cd:constant type="links"/>
- <cd:constant type="mittig"/>
- <cd:constant type="rechts"/>
- <cd:constant type="unten"/>
- <cd:constant type="oben"/>
- <cd:constant type="einzelseitig"/>
- <cd:constant type="doppelseitig"/>
- </cd:parameter>
- <cd:parameter name="format">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="nx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ny">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="dx">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="dy">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="zeilen">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="spalten">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="spaltenabstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="gritter">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="bottomspace">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="cutspace">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="textdistance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="textbreite">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="textmargin">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="clipoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="seite">
+ <cd:constant type="marginalie"/>
+ <cd:constant type="kante"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="leftaligned" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="linksbuendig"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="rightaligned" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="rechtsbuendig"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="midaligned" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="zentriert"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="wordright" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="wortrechts"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inmargin" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="inmarginalie"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="tief"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inothermargin" file="page-mar.tex">
+ <cd:sequence>
+ <cd:string value="inanderermarginale"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="tief"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inleft" file="page-mar.tex">
+ <cd:sequence>
+ <cd:string value="imlinken"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="tief"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inright" file="page-mar.tex">
+ <cd:sequence>
+ <cd:string value="imrechten"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="tief"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ininner" file="page-mar.tex">
+ <cd:sequence>
+ <cd:string value="ininner"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="tief"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inouter" file="page-mar.tex">
+ <cd:sequence>
+ <cd:string value="inouter"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="tief"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="column" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="spalte"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="showstruts" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="zeigestruts"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="showsetups" file="page-run.tex">
+ <cd:sequence>
+ <cd:string value="zeigeeinstellungen"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="showlayout" file="page-run.tex">
+ <cd:sequence>
+ <cd:string value="zeigelayout"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="margintext" file="page-mar.tex">
+ <cd:sequence>
+ <cd:string value="marginaltext"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="tief"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupmarginblocks" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="stellemarginalblockein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="platz">
+ <cd:constant type="imrand"/>
+ <cd:constant type="links"/>
+ <cd:constant type="mittig"/>
+ <cd:constant type="rechts"/>
+ </cd:parameter>
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="breite">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="ausrichtung">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="oben">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="zwischen">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="unten">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="links">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="rechts">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="vor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="nach">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="marginblock" type="environment" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="marginblock"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="part" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="part"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="title" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="title"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="chapter" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="chapter"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="section" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="section"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subsection" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="subsection"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subsubsection" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="subsubsection"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subject" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="subject"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subsubject" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="subsubject"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subsubsubject" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="subsubsubject"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="appendix" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="appendix"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="in" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="in"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="yes"/>
+ <cd:content n="2" interactive="yes"/>
+ <cd:reference n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="at" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="bei"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="yes"/>
+ <cd:content n="2" interactive="yes"/>
+ <cd:reference n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="about" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="ueber"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="yes"/>
+ <cd:reference n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="somewhere" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="irgendwo"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ <cd:reference n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="atpage" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="aufseite"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ref" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="ref"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="t"/>
+ <cd:constant type="p"/>
+ <cd:constant type="r"/>
+ <cd:constant type="s"/>
+ <cd:constant type="e"/>
+ </cd:keywords>
+ <cd:reference n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="textreference" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="textreferenz"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="pagereference" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="seitenreferenz"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="reference" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="referenz"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usereferences" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="verwendereferenzen"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definereference" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="definierereferenz"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="papier">
+ </cd:keywords>
+ <cd:reference n="2" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definereferenceformat" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="definierereferenzformat"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="adaptlayout" file="page-lay.tex">
- <cd:sequence>
- <cd:string value="passelayoutan"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="hoehe">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="zeilen">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showgrid" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="zeigegitter"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="zuruecksetzten"/>
- <cd:constant type="oben"/>
- <cd:constant type="unten"/>
- <cd:constant type="kein"/>
- <cd:constant type="alles"/>
- <cd:constant type="zeilen"/>
- <cd:constant type="rahmen"/>
- <cd:constant type="nonumber"/>
- <cd:constant type="rechts"/>
- <cd:constant type="links"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placeongrid" file="core-grd.tex">
- <cd:sequence>
- <cd:string value="amgitterausrichten"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:inherit name="amgitterneuausrichten"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="moveongrid" file="core-grd.tex">
- <cd:sequence>
- <cd:string value="amgitterneuausrichten"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="oben"/>
- <cd:constant type="beide"/>
- <cd:constant type="unten"/>
- <cd:constant type="-top"/>
- <cd:constant type="-both"/>
- <cd:constant type="-bottom"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="hoch"/>
- <cd:constant type="mittig"/>
- <cd:constant type="tief"/>
- <cd:constant type="seite"/>
- <cd:constant type="kein"/>
- <cd:constant type="standard" default="yes"/>
- <cd:constant type="breit"/>
- <cd:constant type="passend"/>
- <cd:constant type="tiefe"/>
- <cd:constant type="zeile"/>
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="project" type="environment">
- <cd:sequence>
- <cd:string value="projekt"/>
- </cd:sequence>
- <cd:arguments>
- <cd:file/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="environment" type="environment">
- <cd:sequence>
- <cd:string value="umgebung"/>
- </cd:sequence>
- <cd:arguments>
- <cd:file/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="product" type="environment">
- <cd:sequence>
- <cd:string value="produkt"/>
- </cd:sequence>
- <cd:arguments>
- <cd:file/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="component" type="environment">
- <cd:sequence>
- <cd:string value="komponente"/>
- </cd:sequence>
- <cd:arguments>
- <cd:file/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="nomorefiles">
- <cd:sequence>
- <cd:string value="keinedateienmehr"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupinterlinespace" variant="1">
- <cd:sequence>
- <cd:string value="stellezeilenabstandein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="zuruecksetzten"/>
- <cd:constant type="klein" default="yes"/>
- <cd:constant type="mittel"/>
- <cd:constant type="auto"/>
- <cd:constant type="gross"/>
- <cd:constant type="an"/>
- <cd:constant type="aus"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupinterlinespace" variant="2">
- <cd:sequence>
- <cd:string value="stellezeilenabstandein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="hoehe">
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="links">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="rechts">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="text">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="label">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="hl" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="hl"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="tiefe">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="vl" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="vl"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="zeile">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="oben">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="godown" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="nachunten"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="whitespace" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="zwischenraum"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="nowhitespace" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="keinzwischenraum"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="crlf" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="crlf"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="space" file="syst-pln.tex">
+ <cd:sequence>
+ <cd:string value="spatium"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="fixedspaces" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="festesspatium"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="emptylines" file="page-lin.tex">
+ <cd:sequence>
+ <cd:string value="emptylines"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="unten">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuppagenumbering" file="page-num.tex">
- <cd:sequence>
- <cd:string value="stelleseitennummeriernungein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="alternative">
- <cd:constant type="einzelseitig"/>
- <cd:constant type="doppelseitig"/>
- </cd:parameter>
- <cd:parameter name="platz">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nospace" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="keinspatium"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="packed" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="kleinerdurchschuss"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupdescriptions" file="core-des.tex">
+ <cd:sequence>
+ <cd:string value="definierebeschreibungen"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/> <!-- TODO: style=normal -->
+ </cd:parameter>
+ <cd:parameter name="farbe">
+ <cd:constant type="cd:name" default=""/>
+ </cd:parameter>
+ <cd:parameter name="breite">
+ <cd:constant type="passend"/>
+ <cd:constant type="breit"/>
+ <cd:constant type="cd:dimension" default="8em"/>
+ </cd:parameter>
+ <cd:parameter name="abstand">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="muster">
+ <cd:constant type="cd:text" default=""/>
+ </cd:parameter>
+ <cd:parameter name="text">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="closesymbol">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="closecommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="closesymbol">
+ <cd:constant type="cd:text" default=""/>
+ </cd:parameter>
+ <cd:parameter name="titleleft">
+ <cd:constant type="cd:text" default="("/>
+ </cd:parameter>
+ <cd:parameter name="titleright">
+ <cd:constant type="cd:text" default=")"/>
+ </cd:parameter>
+ <cd:parameter name="titelabstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="titelstil">
+ <cd:resolve name="style"/> <!-- TODO: default=bold -->
+ </cd:parameter>
+ <cd:parameter name="titelfarbe">
+ <cd:constant type="cd:name" default=""/>
+ </cd:parameter>
+ <cd:parameter name="ausrichtung">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="marginalie">
+ <cd:constant type="standard"/>
+ <cd:constant type="ja"/>
+ <cd:constant type="nein" default="yes"/> <!-- TODO: this is default; conflicting syntax? -->
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="platz">
+ <cd:constant type="links" default="yes"/>
+ <cd:constant type="rechts"/>
+ <cd:constant type="oben"/>
+ <cd:constant type="kleinerabstand"/>
+ <cd:constant type="imrand"/>
+ <cd:constant type="imlinken"/>
+ <cd:constant type="imrechten"/>
+ <cd:constant type="haengend"/>
+ </cd:parameter>
+ <cd:parameter name="kopfstil">
+ <cd:resolve name="style"/> <!-- TODO: default=bold -->
+ </cd:parameter>
+ <cd:parameter name="kopffarbe">
+ <cd:constant type="cd:name" default=""/>
+ </cd:parameter>
+ <cd:parameter name="headcommand">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="haengend">
+ <cd:constant type="passend"/>
+ <cd:constant type="breit"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="vor">
+ <cd:constant type="cd:command" default="\blank"/>
+ </cd:parameter>
+ <cd:parameter name="zwischen">
+ <cd:constant type="cd:command" default="\blank"/>
+ </cd:parameter>
+ <cd:parameter name="nach">
+ <cd:constant type="cd:command" default="\blank"/>
+ </cd:parameter>
+ <cd:parameter name="ziehefolgendeein">
+ <cd:resolve name="indentnext"/> <!-- default=yes -->
+ </cd:parameter>
+ <cd:parameter name="einziehen">
+ <cd:resolve name="indenting"/> <!-- default=never -->
+ </cd:parameter>
+ <cd:parameter name="befehl">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupenumerations" file="core-des.tex">
+ <cd:sequence>
+ <cd:string value="stellebeschreibungein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="definierebeschreibungen" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineenumeration" file="core-des.tex">
+ <cd:sequence>
+ <cd:string value="definierenummerierung"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="stellebeschreibungein" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="enumeration" generated="yes" file="core-des.tex">
+ <cd:sequence>
+ <cd:variable value="nummerierung"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:nothing n="1" interactive="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="enumeration" type="environment" generated="yes" file="core-des.tex">
+ <cd:sequence>
+ <cd:variable value="nummerierung"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="definedescription" file="core-des.tex">
+ <cd:sequence>
+ <cd:string value="definierebeschreibung"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="definierebeschreibungen" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="description" generated="yes" file="core-des.tex">
+ <cd:sequence>
+ <cd:variable value="beschreibung"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:nothing n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="description" type="environment" generated="yes" file="core-des.tex">
+ <cd:sequence>
+ <cd:variable value="beschreibung"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupindentations" file="core-des.tex">
+ <cd:sequence>
+ <cd:string value="stelleeinzuegein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="kopfstil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="breite">
+ <cd:constant type="passend"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="text">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="muster">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="vor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="nach">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="abstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="seperator">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineindenting" file="core-des.tex">
+ <cd:sequence>
+ <cd:string value="definiereeinzug"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="stelleeinzuegein" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="indentation" generated="yes" file="core-spa.tex">
+ <cd:sequence>
+ <cd:variable value="indentation"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:nothing n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definelabel" file="core-des.tex">
+ <cd:sequence>
+ <cd:string value="definierelabel"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="text">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="platz">
+ <cd:constant type="imrand"/>
+ <cd:constant type="imtext"/>
+ </cd:parameter>
+ <cd:parameter name="art">
+ <cd:constant type="bytext"/>
+ <cd:constant type="bycd:section"/>
+ </cd:parameter>
+ <cd:parameter name="blockauf">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ <cd:parameter name="kopfstil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="kopffarbe">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="vor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="nach">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="labeling" generated="yes" file="core-des.tex">
+ <cd:sequence>
+ <cd:variable value="labeling"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcolumns" file="page-mul.tex">
+ <cd:sequence>
+ <cd:string value="stellespaltenein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes"> <!-- no idea why it is optional -->
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="noben">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="linie">
+ <cd:constant type="an"/>
+ <cd:constant type="aus"/> <!-- default and unknown missing -->
+ </cd:parameter>
+ <cd:parameter name="hoehe">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="toleranz">
+ <cd:constant type="sehrstreng"/>
+ <cd:constant type="streng"/>
+ <cd:constant type="tolerant"/>
+ <cd:constant type="sehrtolerant"/>
+ <cd:constant type="strecken"/>
+ </cd:parameter>
+ <cd:parameter name="abstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="ausgleichen">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ <cd:parameter name="ausrichtung">
+ <cd:constant type="text"/>
+ <!-- cd:constant type="yes"/ -->
+ <!-- cd:constant type="no"/ -->
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="blanko">
+ <cd:constant type="fest"/>
+ <cd:constant type="halbezeile"/>
+ <cd:constant type="zeile"/>
+ <cd:constant type="flexibel"/>
+ <cd:constant type="gross"/>
+ <cd:constant type="mittel"/>
+ <cd:constant type="klein"/>
+ </cd:parameter>
+ <cd:parameter name="option">
+ <cd:constant type="hintergrund"/>
+ </cd:parameter>
+ <cd:parameter name="richtung">
+ <cd:constant type="links"/>
+ <cd:constant type="rechts"/>
+ </cd:parameter>
+ <cd:inherit name="stelleumrahmtein" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="columns" type="environment" file="page-mul.tex">
+ <cd:sequence>
+ <cd:string value="columns"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="stellespaltenein" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definetext" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="definieretext"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
<cd:constant type="kopfzeile"/>
<cd:constant type="fusszeile"/>
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="mittig"/>
- <cd:constant type="marginalie"/>
- <cd:constant type="marginalkante"/>
- <cd:constant type="imlinken"/>
- <cd:constant type="imrechten"/>
- </cd:parameter>
- <cd:parameter name="konversion">
- <cd:constant type="ziffern"/>
- <cd:constant type="buchstaben"/>
- <cd:constant type="Buchstaben"/>
- <cd:constant type="roemischezahlen"/>
- <cd:constant type="Roemischezahlen"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="links">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="rechts">
+ </cd:keywords>
+ <cd:keywords n="3">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="art">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="text">
+ </cd:keywords>
+ <cd:keywords n="4" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="nummernseperator">
+ </cd:keywords>
+ <cd:keywords n="5" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="textseparator">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="cd:sectionnumber">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="seperator">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="befehl">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupnarrower" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="stelleengerein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="links">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rechts">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="mittig">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="define" file="syst-ext.tex">
- <cd:sequence>
- <cd:string value="definieren"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- <cd:csname/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="usecommands" file="core-sys.tex">
- <cd:sequence>
- <cd:string value="verwendebefehl"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definestartstop" file="core-sys.tex">
- <cd:sequence>
- <cd:string value="definierestartstop"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="befehle">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupheads" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="stelleueberschriftenein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="abschnittsnummer">
- <cd:constant type="ja"/>
- <cd:constant type="cd:number"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="alternative">
- <cd:constant type="normal"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupheader" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="stellekopfzeileein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:text" default="yes"/>
<cd:constant type="marginalie"/>
- <cd:constant type="mittig"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="absatz"/>
- </cd:parameter>
- <cd:parameter name="seperator">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="abschnitttrenner">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="ausrichtung">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="titelausrichten">
- <cd:constant type="ja"/>
- <cd:constant type="gleitobjekt"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="toleranz">
- <cd:constant type="sehrstreng"/>
- <cd:constant type="streng"/>
- <cd:constant type="tolerant"/>
- <cd:constant type="sehrtolerant"/>
- <cd:constant type="strecken"/>
- </cd:parameter>
- <cd:parameter name="ziehefolgendeein">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="befehl">
- <cd:constant type="cd:twoarguments"/>
- </cd:parameter>
- <cd:parameter name="marginalie">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupcaptions" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="stellebilderunterschriftein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="platz">
+ <cd:constant type="kante"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="status">
+ <cd:constant type="normal"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="start"/>
+ <cd:constant type="leer"/>
+ <cd:constant type="hoch"/>
+ <cd:constant type="kein"/>
+ <cd:constant type="keinebeschriftung"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="strut">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="linkerstil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="rechterstil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="linkerbreite">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rechterbreite">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="vor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="nach">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfooter" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="stellefusszeileein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:inherit name="stellekopfzeileein" n="1"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="stellekopfzeileein" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptext" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="stelletextein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:inherit name="stellekopfzeileein" n="1"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="stellekopfzeileein" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptop" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="stellenobenein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:inherit name="stellekopfzeileein" n="1"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="stellekopfzeileein" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbottom" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="stelleuntenein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:inherit name="stellekopfzeileein" n="1"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="stellekopfzeileein" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="noheaderandfooterlines" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="keinekopfundfusszeilen"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="notopandbottomlines" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="keinzeilenobenundunten"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupheadertexts" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="stellekopfzeilentextein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:resolve name="layout-h"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfootertexts" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="stellefusszeilentextein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:resolve name="layout-h"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptexttexts" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="stelletexttexteein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:resolve name="layout-h"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptoptexts" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="stelletextobenein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:resolve name="layout-h"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbottomtexts" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="stelletextuntenein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:resolve name="layout-h"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="settextcontent" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="settext"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:resolve name="layout-v"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:resolve name="layout-h"/>
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ <cd:keywords n="4" optional="yes">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ <cd:keywords n="5" optional="yes">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="resettextcontent" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="resettextcontent"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:resolve name="layout-v"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:resolve name="layout-h"/>
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes">
+ <cd:constant type="lefttext"/>
+ <cd:constant type="middletext"/>
+ <cd:constant type="righttext"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definemarking" file="core-mar.tex">
+ <cd:sequence>
+ <cd:string value="definierebeschriftung"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="couplemarking" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="verknuepfebeschriftung"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="decouplemarking" file="core-mar.tex">
+ <cd:sequence>
+ <cd:string value="entknuepfebeschriftung"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="resetmarking" file="core-mar.tex">
+ <cd:sequence>
+ <cd:string value="ruecksetztenbeschriftung"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupmarking" file="core-mar.tex">
+ <cd:sequence>
+ <cd:string value="stellebeschriftungein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2">
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="seperator">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="expansion">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="marking" file="core-mar.tex">
+ <cd:sequence>
+ <cd:string value="beschriftung"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getmarking" file="core-mar.tex">
+ <cd:sequence>
+ <cd:string value="holebeschriftung"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="erste"/>
+ <cd:constant type="letzte"/>
+ <cd:constant type="vorig"/>
+ <cd:constant type="beide"/>
+ <cd:constant type="alles"/>
+ <cd:constant type="aktuell"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nomarking" file="core-mar.tex">
+ <cd:sequence>
+ <cd:string value="keinebeschriftung"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplayout" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="stellelayoutein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="breite">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="passend"/>
+ <cd:constant type="mittig"/>
+ </cd:parameter>
+ <cd:parameter name="hoehe">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="passend"/>
+ <cd:constant type="mittig"/>
+ </cd:parameter>
+ <cd:parameter name="rumpfspatium">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="kopfspatium">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="marginalie">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="linkerrand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rechterrand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="kopfzeile">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="fusszeile">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="oben">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="unten">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="linkekante">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rechtekante">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="kopfzeilenabstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="fusszeilenabstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="obenabstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="abstandunten">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="linkerrandabstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rechterrandabstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="linkerkantenabstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rechterkantenabstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rumpfabstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="kopfoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="farbe">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="beschriftung">
+ <cd:constant type="an"/>
+ <cd:constant type="aus"/>
+ <cd:constant type="farbe"/>
+ <cd:constant type="raster"/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="seite"/>
+ </cd:parameter>
+ <cd:parameter name="platz">
+ <cd:constant type="links"/>
+ <cd:constant type="mittig"/>
+ <cd:constant type="rechts"/>
+ <cd:constant type="unten"/>
+ <cd:constant type="oben"/>
+ <cd:constant type="einzelseitig"/>
+ <cd:constant type="doppelseitig"/>
+ </cd:parameter>
+ <cd:parameter name="format">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="nx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ny">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="dx">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="dy">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="zeilen">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="spalten">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="spaltenabstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="gritter">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ <cd:parameter name="bottomspace">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="cutspace">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="textdistance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="textbreite">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="textmargin">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="clipoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="seite">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="papier">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="adaptlayout" file="page-lay.tex">
+ <cd:sequence>
+ <cd:string value="passelayoutan"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="hoehe">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="max"/>
+ </cd:parameter>
+ <cd:parameter name="zeilen">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showgrid" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="zeigegitter"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="zuruecksetzten"/>
<cd:constant type="oben"/>
<cd:constant type="unten"/>
<cd:constant type="kein"/>
- <cd:constant type="hoch"/>
- <cd:constant type="tief"/>
- <cd:constant type="mittig"/>
+ <cd:constant type="alles"/>
+ <cd:constant type="zeilen"/>
+ <cd:constant type="rahmen"/>
+ <cd:constant type="nonumber"/>
+ <cd:constant type="rechts"/>
<cd:constant type="links"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placeongrid" file="core-grd.tex">
+ <cd:sequence>
+ <cd:string value="amgitterausrichten"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:inherit name="amgitterneuausrichten" n="1"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="moveongrid" file="core-grd.tex">
+ <cd:sequence>
+ <cd:string value="amgitterneuausrichten"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="standard" default="yes"/> <!-- also 'normal', 'yes' and 'force' -->
+ <cd:constant type="oben"/>
+ <cd:constant type="beide"/>
+ <cd:constant type="unten"/>
+ <cd:constant type="-top"/>
+ <cd:constant type="-both"/>
+ <cd:constant type="-bottom"/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="hoch"/>
<cd:constant type="mittig"/>
- <cd:constant type="rechts"/>
- <cd:constant type="lefthanging"/>
- <cd:constant type="righthanging"/>
- <cd:constant type="linkerrand"/>
- <cd:constant type="rechterrand"/>
- <cd:constant type="innermargin"/>
- <cd:constant type="outermargin"/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="passend"/>
+ <cd:constant type="tief"/>
+ <cd:constant type="seite"/>
<cd:constant type="breit"/>
- <cd:constant type="max"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="minbreite">
<cd:constant type="passend"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="kopfstil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="nummer">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
+ <cd:constant type="tiefe"/>
+ <cd:constant type="zeile"/>
+ <cd:constant type="zuruecksetzten"/>
<cd:constant type="kein"/>
- </cd:parameter>
- <cd:parameter name="zwischen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="ausrichtung">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="konversion">
- <cd:constant type="ziffern"/>
- <cd:constant type="buchstaben"/>
- <cd:constant type="Buchstaben"/>
- <cd:constant type="roemischezahlen"/>
- <cd:constant type="Roemischezahlen"/>
- </cd:parameter>
- <cd:parameter name="art">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="seperator">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="abschnitttrenner">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="befehl">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="abstand">
<cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupcaption" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="stellebildunterschriftein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="stellebilderunterschriftein"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfloats" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="stellegleitobjekteein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="platz">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="project" type="environment" file="core-job.tex">
+ <cd:sequence>
+ <cd:string value="projekt"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:file n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="environment" type="environment" file="core-job.tex">
+ <cd:sequence>
+ <cd:string value="umgebung"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:file n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="product" type="environment" file="core-job.tex">
+ <cd:sequence>
+ <cd:string value="produkt"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:file n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="component" type="environment" file="core-job.tex">
+ <cd:sequence>
+ <cd:string value="komponente"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:file n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nomorefiles" file="core-job.tex">
+ <cd:sequence>
+ <cd:string value="keinedateienmehr"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupinterlinespace" variant="1" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="stellezeilenabstandein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="zuruecksetzten"/>
+ <cd:constant type="klein" default="yes"/>
+ <cd:constant type="mittel"/>
+ <cd:constant type="auto"/>
+ <cd:constant type="gross"/>
+ <cd:constant type="an"/>
+ <cd:constant type="aus"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupinterlinespace2" variant="2" file="core-spa.tex">
+ <!-- attached a 2 to make this definition usable with \showsetup -->
+ <cd:sequence>
+ <cd:string value="stellezeilenabstandein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="hoehe">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="tiefe">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="zeile">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="oben">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="unten">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppagenumbering" file="page-num.tex">
+ <cd:sequence>
+ <cd:string value="stelleseitennummeriernungein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="alternative">
+ <cd:constant type="einzelseitig"/>
+ <cd:constant type="doppelseitig"/>
+ </cd:parameter>
+ <cd:parameter name="platz">
+ <cd:constant type="kopfzeile"/>
+ <cd:constant type="fusszeile"/>
+ <cd:constant type="links"/>
+ <cd:constant type="rechts"/>
+ <cd:constant type="mittig"/>
+ <cd:constant type="marginalie"/>
+ <cd:constant type="marginalkante"/>
+ <cd:constant type="imlinken"/>
+ <cd:constant type="imrechten"/>
+ </cd:parameter>
+ <cd:parameter name="konversion">
+ <cd:constant type="ziffern"/>
+ <cd:constant type="buchstaben"/>
+ <cd:constant type="Buchstaben"/>
+ <cd:constant type="roemischezahlen"/>
+ <cd:constant type="Roemischezahlen"/>
+ </cd:parameter>
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="links">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="rechts">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="art">
+ <cd:constant type="bytext"/>
+ <cd:constant type="bycd:section"/>
+ </cd:parameter>
+ <cd:parameter name="text">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="nummernseperator">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="textseparator">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="cd:sectionnumber">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ <cd:parameter name="seperator">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="strut">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="breite">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="befehl">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupnarrower" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="stelleengerein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="links">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rechts">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="mittig">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="define" file="syst-ext.tex">
+ <cd:sequence>
+ <cd:string value="definieren"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ <cd:csname n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usecommands" file="core-sys.tex">
+ <cd:sequence>
+ <cd:string value="verwendebefehl"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definestartstop" file="core-sys.tex">
+ <cd:sequence>
+ <cd:string value="definierestartstop"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="vor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="nach">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="befehle">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupheads" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="stelleueberschriftenein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="abschnittsnummer">
+ <cd:constant type="ja"/>
+ <cd:constant type="cd:number"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:constant type="normal"/>
+ <cd:constant type="marginalie"/>
+ <cd:constant type="mittig"/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="absatz"/>
+ </cd:parameter>
+ <cd:parameter name="seperator">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="abschnitttrenner">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="ausrichtung">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="titelausrichten">
+ <cd:constant type="ja"/>
+ <cd:constant type="gleitobjekt"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ <cd:parameter name="toleranz">
+ <cd:constant type="sehrstreng"/>
+ <cd:constant type="streng"/>
+ <cd:constant type="tolerant"/>
+ <cd:constant type="sehrtolerant"/>
+ <cd:constant type="strecken"/>
+ </cd:parameter>
+ <cd:parameter name="ziehefolgendeein">
+ <cd:resolve name="indentnext"/>
+ </cd:parameter>
+ <cd:parameter name="befehl">
+ <cd:constant type="cd:twoarguments"/>
+ </cd:parameter>
+ <cd:parameter name="marginalie">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcaptions" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="stellebilderunterschriftein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="platz">
+ <cd:constant type="oben"/>
+ <cd:constant type="unten"/>
+ <cd:constant type="kein"/>
+ <cd:constant type="hoch"/>
+ <cd:constant type="tief"/>
+ <cd:constant type="mittig"/>
+ <cd:constant type="links"/>
+ <cd:constant type="mittig"/>
+ <cd:constant type="rechts"/>
+ <cd:constant type="lefthanging"/>
+ <cd:constant type="righthanging"/>
+ <cd:constant type="linkerrand"/>
+ <cd:constant type="rechterrand"/>
+ <cd:constant type="innermargin"/>
+ <cd:constant type="outermargin"/>
+ </cd:parameter>
+ <cd:parameter name="breite">
+ <cd:constant type="passend"/>
+ <cd:constant type="breit"/>
+ <cd:constant type="max"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="minbreite">
+ <cd:constant type="passend"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="kopfstil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="nummer">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ <cd:constant type="kein"/>
+ </cd:parameter>
+ <cd:parameter name="zwischen">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="ausrichtung">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="konversion">
+ <cd:constant type="ziffern"/>
+ <cd:constant type="buchstaben"/>
+ <cd:constant type="Buchstaben"/>
+ <cd:constant type="roemischezahlen"/>
+ <cd:constant type="Roemischezahlen"/>
+ </cd:parameter>
+ <cd:parameter name="art">
+ <cd:constant type="bytext"/>
+ <cd:constant type="bycd:section"/>
+ </cd:parameter>
+ <cd:parameter name="seperator">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="abschnitttrenner">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="befehl">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="abstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcaption" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="stellebildunterschriftein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="stellebilderunterschriftein" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfloats" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="stellegleitobjekteein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="platz">
+ <cd:constant type="links"/>
+ <cd:constant type="rechts"/>
+ <cd:constant type="mittig"/>
+ </cd:parameter>
+ <cd:parameter name="breite">
+ <cd:constant type="passend"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="vor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="nach">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="marginalie">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="vorspatium">
+ <cd:constant type="klein"/>
+ <cd:constant type="mittel"/>
+ <cd:constant type="gross"/>
+ <cd:constant type="kein"/>
+ </cd:parameter>
+ <cd:parameter name="nachspatium">
+ <cd:constant type="klein"/>
+ <cd:constant type="mittel"/>
+ <cd:constant type="gross"/>
+ <cd:constant type="kein"/>
+ </cd:parameter>
+ <cd:parameter name="nebenvorspatium">
+ <cd:constant type="klein"/>
+ <cd:constant type="mittel"/>
+ <cd:constant type="gross"/>
+ <cd:constant type="kein"/>
+ </cd:parameter>
+ <cd:parameter name="nebennachspatium">
+ <cd:constant type="klein"/>
+ <cd:constant type="mittel"/>
+ <cd:constant type="gross"/>
+ <cd:constant type="kein"/>
+ </cd:parameter>
+ <cd:parameter name="ziehefolgendeein">
+ <cd:resolve name="indentnext"/>
+ </cd:parameter>
+ <cd:parameter name="noben">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="nunten">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="zzeile">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="default">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="toleranz">
+ <cd:constant type="0"/>
+ <cd:constant type="1"/>
+ <cd:constant type="2"/>
+ </cd:parameter>
+ <cd:parameter name="linkerrandabstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rechterrandabstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="sidealign">
+ <cd:constant type="normal"/>
+ <cd:constant type="zeile"/>
+ </cd:parameter>
+ <cd:parameter name="nummerierung">
+ <cd:constant type="ja"/>
+ <cd:constant type="nocheck"/>
+ </cd:parameter>
+ <cd:inherit name="stelleumrahmtein" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfloatsplitting" file="core-tsp.tex">
+ <cd:sequence>
+ <cd:string value="stelleplatziegeteiltegleitobjekt"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="konversion">
+ <cd:constant type="ziffern"/>
+ <cd:constant type="buchstaben"/>
+ <cd:constant type="Buchstaben"/>
+ <cd:constant type="roemischezahlen"/>
+ <cd:constant type="Roemischezahlen"/>
+ </cd:parameter>
+ <cd:parameter name="zeilen">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="splitfloat" file="core-tsp.tex">
+ <cd:sequence>
+ <cd:string value="teilegleitobjekt"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="stelleplatziegeteiltegleitobjekt" n="1"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupoppositeplacing" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="stellegegenueberplatzierenein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1">
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="vor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="zwischen">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="nach">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="opposite" type="environment" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="opposite"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setuphyphenmark" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="stellebindestrichein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1">
+ <cd:parameter name="zeichen">
+ <cd:constant type="--"/>
+ <cd:constant type="---"/>
+ <cd:constant type="-"/>
+ <cd:constant type="~"/>
+ <cd:constant type="("/>
+ <cd:constant type=")"/>
+ <cd:constant type="="/>
+ <cd:constant type="/"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppositioning" file="page-lyr.tex">
+ <cd:sequence>
+ <cd:string value="stellepositionierenein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="overlay"/>
+ </cd:parameter>
+ <cd:parameter name="einheit">
+ <cd:constant type="cm"/>
+ <cd:constant type="pt"/>
+ <cd:constant type="em"/>
+ <cd:constant type="mm"/>
+ <cd:constant type="ex"/>
+ <cd:constant type="es"/>
+ <cd:constant type="in"/>
+ </cd:parameter>
+ <cd:parameter name="faktor">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="format">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="offset">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ <cd:parameter name="xschritt">
+ <cd:constant type="absolut"/>
+ <cd:constant type="relativ"/>
+ </cd:parameter>
+ <cd:parameter name="yschritt">
+ <cd:constant type="absolut"/>
+ <cd:constant type="relativ"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="positioning" type="environment" file="page-lyr.tex">
+ <cd:sequence>
+ <cd:string value="positioning"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="grid" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="gitter"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="x">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="y">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="nx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ny">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="dx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="dy">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="xschritt">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="yschritt">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="offset">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ <cd:parameter name="faktor">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="format">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="einheit">
+ <cd:constant type="cm"/>
+ <cd:constant type="pt"/>
+ <cd:constant type="em"/>
+ <cd:constant type="mm"/>
+ <cd:constant type="ex"/>
+ <cd:constant type="es"/>
+ <cd:constant type="in"/>
+ </cd:parameter>
+ <cd:parameter name="platz">
+ <cd:constant type="links"/>
+ <cd:constant type="mittig"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="page" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="seite"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="ja" default="yes"/>
+ <cd:constant type="umbruch"/>
+ <cd:constant type="nein"/>
+ <cd:constant type="einstellung"/>
+ <cd:constant type="grosszuegig"/>
<cd:constant type="links"/>
<cd:constant type="rechts"/>
- <cd:constant type="mittig"/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="passend"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="marginalie">
+ <cd:constant type="sperren"/>
+ <cd:constant type="letzte"/>
+ <cd:constant type="viertel"/>
+ <cd:constant type="gerade"/>
+ <cd:constant type="ungerade"/>
+ <cd:constant type="blanko"/>
+ <cd:constant type="leer"/>
+ <cd:constant type="zuruecksetzten"/>
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupreferencing" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="stellereferenzierenein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="cd:sectionnumber">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ <cd:parameter name="prefix">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="interaktion">
+ <cd:constant type="label"/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="alles"/>
+ <cd:constant type="symbol"/>
+ </cd:parameter>
+ <cd:parameter name="breite">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="links">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="rechts">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="konvertieredatei">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ <cd:constant type="klein"/>
+ <cd:constant type="gross"/>
+ </cd:parameter>
+ <cd:parameter name="seperator">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="autofile">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ <cd:constant type="seite"/>
+ </cd:parameter>
+ <cd:parameter name="global">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupurl" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="stelleurlein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="urlalternative">
+ <cd:constant type="kein"/>
+ <cd:constant type="beide"/>
+ <cd:constant type="vor"/>
+ <cd:constant type="nach"/>
+ </cd:parameter>
+ <cd:parameter name="urlspatium">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="writetoreferencelist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="schreibezurreferenzliste"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placereferencelist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="placereferencelist"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definereferencelist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="definierereferenzliste"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="stellereferenzlisteein" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupreferencelist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="stellereferenzlisteein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="kriterium">
+ <cd:constant type="cd:section"/>
+ <cd:constant type="lokal"/>
+ <cd:constant type="vorig"/>
+ <cd:constant type="alles"/>
+ </cd:parameter>
+ <cd:parameter name="befehl">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="vor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="nach">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="writetolist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="schreibezurliste"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:section"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="writebetweenlist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="schreibezwischenliste"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:section"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nolist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="keineliste"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="listsymbol" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="listsymbol"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placelist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="platziereliste"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="stellelisteein" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="determinelistcharacteristics" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="bestimmelistencharakeristika"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="stellelisteein" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placecombinedlist" variant="1" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="platzierezusammengestellteliste"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="stellezusammengestelltelisteein" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definelist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="definiereliste"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes"> <!-- inherits from -->
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="stellelisteein" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="stellelisteein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:constant type="a"/>
+ <cd:constant type="b"/>
+ <cd:constant type="c"/>
+ <cd:constant type="..."/>
+ <cd:constant type="kein"/>
+ <cd:constant type="befehl"/>
+ </cd:parameter>
+ <cd:parameter name="verknuepfung">
+ <cd:constant type="an"/>
+ <cd:constant type="aus"/>
+ </cd:parameter>
+ <cd:parameter name="kriterium">
+ <cd:constant type="cd:section"/>
+ <cd:constant type="lokal"/>
+ <cd:constant type="vorig"/>
+ <cd:constant type="aktuell"/>
+ <cd:constant type="alles"/>
+ </cd:parameter>
+ <cd:parameter name="seitenbegrenzung">
+ <cd:constant type="cd:list"/>
+ </cd:parameter>
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="nummernstil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="textstil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="seitenstil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="farbe">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="befehl">
+ <cd:constant type="cd:threearguments"/>
+ </cd:parameter>
+ <cd:parameter name="nummerbefehl">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="textbefehl">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="seitenbefehl">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="interaktion">
+ <cd:constant type="cd:sectionnumber"/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="seitennummer"/>
+ <cd:constant type="alles"/>
+ </cd:parameter>
+ <cd:parameter name="vor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="nach">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="zwischen">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="links">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="rechts">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="label">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ <cd:parameter name="prefix">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ <cd:constant type="kein"/>
+ </cd:parameter>
+ <cd:parameter name="seitennummer">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ <cd:parameter name="kopfnummer">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ <cd:parameter name="cd:sectionnumber">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ <cd:parameter name="titelausrichten">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ <cd:parameter name="marginalie">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="breite">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="passend"/>
+ </cd:parameter>
+ <cd:parameter name="hoehe">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="passend"/>
+ <cd:constant type="breit"/>
+ </cd:parameter>
+ <cd:parameter name="tiefe">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="passend"/>
+ <cd:constant type="breit"/>
+ </cd:parameter>
+ <cd:parameter name="abstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="seperator">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="abschnitttrenner">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="symbol">
+ <cd:constant type="kein"/>
+ <cd:constant type="1"/>
+ <cd:constant type="2"/>
+ <cd:constant type="3"/>
+ <cd:constant type="..."/>
+ </cd:parameter>
+ <cd:parameter name="expansion">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ <cd:constant type="befehl"/>
+ </cd:parameter>
+ <cd:parameter name="maxbreite">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:inherit name="stelleumrahmtein" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplistalternative" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="setuplistalternative"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="no">
+ <cd:constant type="a"/>
+ <cd:constant type="b"/>
+ <cd:constant type="c"/>
+ <!-- cd:constant type="cd:name"/ -->
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="befehl">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="breite">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="strecken">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="abstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definecombinedlist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="definierezusammengestellteliste"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="cd:list"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="stellezusammengestelltelisteein" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcombinedlist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="stellezusammengestelltelisteein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="niveau">
+ <cd:constant type="1"/>
+ <cd:constant type="2"/>
+ <cd:constant type="3"/>
+ <cd:constant type="4"/>
+ <cd:constant type="cd:section"/>
+ <cd:constant type="aktuell"/>
+ </cd:parameter>
+ <cd:inherit name="stellelisteein" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placecombinedlist" variant="2" generated="yes" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="platziere"/>
+ <cd:variable value="combinedlist"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="stellezusammengestelltelisteein" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="completecombinedlist" generated="yes" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="vollende"/>
+ <cd:variable value="combinedlist"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="stellezusammengestelltelisteein" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupnumbering" file="core-num.tex">
+ <cd:sequence>
+ <cd:string value="stellenummerierungein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="art">
+ <cd:constant type="bytext"/>
+ <cd:constant type="bycd:section"/>
+ </cd:parameter>
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupformulas" file="core-mat.tex">
+ <cd:sequence>
+ <cd:string value="stelleformelnein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="platz">
+ <cd:constant type="links"/>
+ <cd:constant type="rechts"/>
+ </cd:parameter>
+ <cd:parameter name="links">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="rechts">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="ausrichtung">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="option">
+ <cd:constant type="mittig"/>
+ </cd:parameter>
+ <cd:parameter name="strut">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ <cd:parameter name="abstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="marginalie">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="standard"/>
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ <cd:parameter name="ausrichtung">
+ <cd:constant type="flushleft"/>
+ <cd:constant type="flushright"/>
+ <cd:constant type="mittig"/>
+ <cd:constant type="center"/>
+ </cd:parameter>
+ <cd:parameter name="linkerrand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rechterrand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="ziehefolgendeein">
+ <cd:resolve name="indentnext"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="vorspatium">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="nach">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="seperator">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="konversion">
+ <cd:constant type="ziffern"/>
+ <cd:constant type="buchstaben"/>
+ <cd:constant type="Buchstaben"/>
+ <cd:constant type="roemischezahlen"/>
+ <cd:constant type="Roemischezahlen"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="publication" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="publikation"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppublications" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="stellepublikationein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="alternative">
+ <cd:constant type="apa"/>
+ <cd:constant type="normal"/>
+ </cd:parameter>
+ <cd:inherit name="stellebeschreibungein" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplines" file="page-lin.tex">
+ <cd:sequence>
+ <cd:string value="stellezeilenein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="vor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="nach">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="zwischen">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="einziehen">
+ <cd:resolve name="indenting"/>
+ </cd:parameter>
+ <cd:parameter name="spatium">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ <cd:parameter name="option">
+ <cd:constant type="gepackt"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="lines" type="environment">
+ <cd:sequence>
+ <cd:string value="lines"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupparagraphnumbering" file="page-lin.tex">
+ <cd:sequence>
+ <cd:string value="stelleabsatznummerierungein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="zuruecksetzten"/>
+ <cd:constant type="zeile"/>
+ </cd:parameter>
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="abstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplinenumbering" file="page-lin.tex">
+ <cd:sequence>
+ <cd:string value="stellezeilennumerierungein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="konversion">
+ <cd:constant type="ziffern"/>
+ <cd:constant type="buchstaben"/>
+ <cd:constant type="Buchstaben"/>
+ <cd:constant type="roemischezahlen"/>
+ <cd:constant type="Roemischezahlen"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="start">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="schritt">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="breite">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="platz">
+ <cd:constant type="imtext"/>
+ <cd:constant type="imrand"/>
+ </cd:parameter>
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="prefix">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="referieren">
+ <cd:constant type="an"/>
+ <cd:constant type="aus"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="linenumbering" type="environment" file="page-lin.tex"> <!-- mkii/mkiv -->
+ <cd:sequence>
+ <cd:string value="linenumbering"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="fortsetzten"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="line" type="environment">
+ <cd:sequence>
+ <cd:string value="line"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="someline" file="page-lin.tex">
+ <cd:sequence>
+ <cd:string value="einezeile"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inline" file="page-lin.tex">
+ <cd:sequence>
+ <cd:string value="inzeile"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupinmargin" file="page-mar.tex">
+ <cd:sequence>
+ <cd:string value="stelleinmarginalieein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="links"/>
+ <cd:constant type="rechts"/>
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="platz">
+ <cd:constant type="links"/>
+ <cd:constant type="rechts"/>
+ <cd:constant type="beide"/>
+ </cd:parameter>
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="vor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="nach">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="ausrichtung">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="zeile">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="abstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="seperator">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="breite">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="abstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="stack">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ <cd:inherit name="stelleumrahmtein" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppagenumber" file="page-num.tex">
+ <cd:sequence>
+ <cd:string value="stelleseitennummerein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="nummer">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="behalte"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsubpagenumber" file="page-num.tex">
+ <cd:sequence>
+ <cd:string value="stelleunterseitennummerein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="art">
+ <cd:constant type="bytext"/>
+ <cd:constant type="bycd:section"/>
+ </cd:parameter>
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="kein"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupblank" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="stelleblankoein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="normal" default="yes"/>
+ <cd:constant type="default"/>
+ <cd:constant type="standard"/>
+ <cd:constant type="zeile"/>
+ <cd:constant type="halbezeile"/>
<cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vorspatium">
- <cd:constant type="klein"/>
- <cd:constant type="mittel"/>
<cd:constant type="gross"/>
- <cd:constant type="kein"/>
- </cd:parameter>
- <cd:parameter name="nachspatium">
- <cd:constant type="klein"/>
<cd:constant type="mittel"/>
- <cd:constant type="gross"/>
- <cd:constant type="kein"/>
- </cd:parameter>
- <cd:parameter name="nebenvorspatium">
<cd:constant type="klein"/>
- <cd:constant type="mittel"/>
- <cd:constant type="gross"/>
+ <cd:constant type="fest"/>
+ <cd:constant type="flexibel"/>
+ <cd:constant type="global"/>
+ <cd:constant type="unbekannt"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineblank" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="definiereblanko"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:inherit name="stelleblankoein" n="1"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definepapersize" file="page-lay.tex">
+ <cd:sequence>
+ <cd:string value="definierepapierformat"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="breite">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="hoehe">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="offset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="format">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppaper" file="page-lay.tex">
+ <cd:sequence>
+ <cd:string value="setuppaper"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="papier">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="seite">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="nx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ny">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="breite">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="hoehe">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="kopfspatium">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rumpfspatium">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="option">
+ <cd:constant type="max"/>
+ <cd:constant type="passend"/>
+ </cd:parameter>
+ <cd:parameter name="methode">
+ <cd:constant type="normal"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppapersize" file="page-lay.tex">
+ <cd:sequence>
+ <cd:string value="stellepapierformatein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="A3"/>
+ <cd:constant type="A4" default="yes"/>
+ <cd:constant type="A5"/>
+ <cd:constant type="A6"/>
+ <cd:constant type="letter"/>
+ <cd:constant type="..."/>
+ <cd:constant type="CD"/>
+ <cd:constant type="cd:name"/>
+ <cd:constant type="querformat"/>
+ <cd:constant type="gespiegelt"/>
+ <cd:constant type="gedreht"/>
+ <cd:constant type="90"/>
+ <cd:constant type="180"/>
+ <cd:constant type="270"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="negativ"/>
+ <cd:inherit name="stellepapierformatein" n="1"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuparranging" file="page-imp.tex">
+ <cd:sequence>
+ <cd:string value="stelleanordnenein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="sperren"/>
+ <cd:constant type="2*16"/>
+ <cd:constant type="2*8"/>
+ <cd:constant type="2*4"/>
+ <cd:constant type="2*2"/>
+ <cd:constant type="2**2"/>
+ <cd:constant type="2*2*4"/>
+ <cd:constant type="2*4*2"/>
+ <cd:constant type="2UP"/>
+ <cd:constant type="2DOWN"/>
+ <cd:constant type="2SIDE"/>
+ <cd:constant type="2TOP"/>
+ <cd:constant type="gespiegelt"/>
+ <cd:constant type="gedreht"/>
+ <cd:constant type="doppelseitig"/>
+ <cd:constant type="negativ"/>
+ <cd:constant type="hintergrund"/>
+ <cd:constant type="90"/>
+ <cd:constant type="180"/>
+ <cd:constant type="270"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showprint" file="page-run.tex"> <!-- page-lay.tex -->
+ <cd:sequence>
+ <cd:string value="zeigedruck"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:inherit name="stellepapierformatein" n="1"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:inherit name="stellepapierformatein" n="2"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:inherit name="stellelayoutein" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definelogo" file="page-log.tex">
+ <cd:sequence>
+ <cd:string value="definierelogo"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="oben"/>
+ <cd:constant type="kopfzeile"/>
+ <cd:constant type="fusszeile"/>
+ <cd:constant type="unten"/>
+ </cd:keywords>
+ <cd:keywords n="3">
<cd:constant type="kein"/>
- </cd:parameter>
- <cd:parameter name="nebennachspatium">
+ <cd:constant type="seite"/>
+ <cd:constant type="linkekante"/>
+ <cd:constant type="linkerrand"/>
+ <cd:constant type="links"/>
+ <cd:constant type="mittig"/>
+ <cd:constant type="rechts"/>
+ <cd:constant type="rechterrand"/>
+ <cd:constant type="rechterkante"/>
+ </cd:keywords>
+ <cd:assignments n="4" list="yes">
+ <cd:parameter name="befehl">
+ <cd:constant type="cd:command"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placelogos" file="page-log.tex">
+ <cd:sequence>
+ <cd:string value="platzierelogo"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupwhitespace">
+ <cd:sequence>
+ <cd:string value="stellezwischenraumein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="kein" default="yes"/>
<cd:constant type="klein"/>
<cd:constant type="mittel"/>
<cd:constant type="gross"/>
- <cd:constant type="kein"/>
- </cd:parameter>
- <cd:parameter name="ziehefolgendeein">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="noben">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="nunten">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="zzeile">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="default">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="toleranz">
- <cd:constant type="0"/>
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- </cd:parameter>
- <cd:parameter name="linkerrandabstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rechterrandabstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="sidealign">
- <cd:constant type="normal"/>
<cd:constant type="zeile"/>
- </cd:parameter>
- <cd:parameter name="nummerierung">
- <cd:constant type="ja"/>
- <cd:constant type="nocheck"/>
- </cd:parameter>
- <cd:inherit name="stelleumrahmtein"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfloatsplitting" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="stelleplatziegeteiltegleitobjekt"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="konversion">
- <cd:constant type="ziffern"/>
- <cd:constant type="buchstaben"/>
- <cd:constant type="Buchstaben"/>
- <cd:constant type="roemischezahlen"/>
- <cd:constant type="Roemischezahlen"/>
- </cd:parameter>
- <cd:parameter name="zeilen">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="splitfloat" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="teilegleitobjekt"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stelleplatziegeteiltegleitobjekt"/>
- </cd:assignments>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupoppositeplacing" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="stellegegenueberplatzierenein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="zwischen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="opposite" type="environment">
- <cd:sequence>
- <cd:string value="opposite"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setuphyphenmark" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="stellebindestrichein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments>
- <cd:parameter name="zeichen">
- <cd:constant type="--"/>
- <cd:constant type="---"/>
- <cd:constant type="-"/>
- <cd:constant type="~"/>
- <cd:constant type="("/>
- <cd:constant type=")"/>
- <cd:constant type="="/>
- <cd:constant type="/"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuppositioning" file="page-lyr.tex">
- <cd:sequence>
- <cd:string value="stellepositionierenein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="overlay"/>
- </cd:parameter>
- <cd:parameter name="einheit">
- <cd:constant type="cm"/>
- <cd:constant type="pt"/>
- <cd:constant type="em"/>
- <cd:constant type="mm"/>
- <cd:constant type="ex"/>
- <cd:constant type="es"/>
- <cd:constant type="in"/>
- </cd:parameter>
- <cd:parameter name="faktor">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="format">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="offset">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="xschritt">
- <cd:constant type="absolut"/>
- <cd:constant type="relativ"/>
- </cd:parameter>
- <cd:parameter name="yschritt">
- <cd:constant type="absolut"/>
- <cd:constant type="relativ"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="positioning" type="environment">
- <cd:sequence>
- <cd:string value="positioning"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="grid" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="gitter"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="x">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="y">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="nx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ny">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="dx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="dy">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="xschritt">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="yschritt">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="offset">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="faktor">
+ <cd:constant type="fest"/>
+ <cd:constant type="stellewiederher"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupindenting">
+ <cd:sequence>
+ <cd:string value="stelleeinziehenein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:resolve name="indenting"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definesectionblock" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="definiereabschnittsblock"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:inherit name="stelleabschnittsblockein" n="1"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="stelleabschnittsblockein" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsectionblock" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="stelleabschnittsblockein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="nummer">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ <cd:parameter name="seite">
+ <cd:constant type="ja"/>
+ <cd:constant type="rechts"/>
+ </cd:parameter>
+ <cd:parameter name="vor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="nach">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definesection" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="definiereabschnitt"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsection" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="stelleabschnittein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:parameter name="konversion">
+ <cd:constant type="ziffern"/>
+ <cd:constant type="buchstaben"/>
+ <cd:constant type="Buchstaben"/>
+ <cd:constant type="roemischezahlen"/>
+ <cd:constant type="Roemischezahlen"/>
+ </cd:parameter>
+ <cd:parameter name="vorigenummer">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuphead" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="stelleueberschriftein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:section"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="textstil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="nummernstil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="farbe">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="textfarbe">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="nummernfarbe">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="nummer">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ <cd:parameter name="eigenenummer">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ <cd:parameter name="seite">
+ <cd:constant type="links"/>
+ <cd:constant type="rechts"/>
+ <cd:constant type="ja"/>
+ </cd:parameter>
+ <cd:parameter name="fortsetzen">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ <cd:parameter name="kopfzeile">
+ <cd:constant type="kein"/>
+ <cd:constant type="leer"/>
+ <cd:constant type="hoch"/>
+ <cd:constant type="keinebeschriftung"/>
+ </cd:parameter>
+ <cd:parameter name="text">
+ <cd:constant type="kein"/>
+ <cd:constant type="leer"/>
+ <cd:constant type="hoch"/>
+ <cd:constant type="keinebeschriftung"/>
+ </cd:parameter>
+ <cd:parameter name="fusszeile">
+ <cd:constant type="kein"/>
+ <cd:constant type="leer"/>
+ <cd:constant type="hoch"/>
+ <cd:constant type="keinebeschriftung"/>
+ </cd:parameter>
+ <cd:parameter name="vor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="zwischen">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="nach">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:constant type="normal"/>
+ <cd:constant type="imrand"/>
+ <cd:constant type="mittig"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="haengend">
+ <cd:constant type="kein"/>
+ <cd:constant type="breit"/>
+ <cd:constant type="passend"/>
+ <cd:constant type="zeile"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="befehl">
+ <cd:constant type="cd:twoarguments"/>
+ </cd:parameter>
+ <cd:parameter name="nummerbefehl">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="textbefehl">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="deepnumbercommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="deeptextcommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="prefix">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="setzekopf">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ <cd:constant type="leer"/>
+ </cd:parameter>
+ <cd:parameter name="nummererhoehen">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ <cd:constant type="cd:list"/>
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="resetnumber">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ <cd:parameter name="datei">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="expansion">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ <cd:constant type="befehl"/>
+ </cd:parameter>
+ <cd:parameter name="marginaltext">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ <cd:inherit name="stelleueberschriftenein" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupheadnumber" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="stellekopfzahlein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:section"/>
+ </cd:keywords>
+ <cd:keywords n="2">
<cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="format">
+ <cd:constant type="+cd:number"/>
+ <cd:constant type="-cd:number"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="headnumber">
+ <cd:sequence>
+ <cd:string value="kopfnummer"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:section"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="determineheadnumber" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="bestimmekopfnummer"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:section"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="currentheadnumber" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="heutigeskopfnummer"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="nextsection" generated="yes" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="folgende"/>
+ <cd:variable value="absatz"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="definehead" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="definiereueberschrift"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:section"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupitemgroup" file="core-itm.tex">
+ <cd:sequence>
+ <cd:string value="setupitemgroup"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
<cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="einheit">
- <cd:constant type="cm"/>
- <cd:constant type="pt"/>
- <cd:constant type="em"/>
- <cd:constant type="mm"/>
- <cd:constant type="ex"/>
- <cd:constant type="es"/>
- <cd:constant type="in"/>
- </cd:parameter>
- <cd:parameter name="platz">
- <cd:constant type="links"/>
- <cd:constant type="mittig"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="page" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="seite"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="ja" default="yes"/>
- <cd:constant type="umbruch"/>
- <cd:constant type="nein"/>
- <cd:constant type="einstellung"/>
- <cd:constant type="grosszuegig"/>
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="sperren"/>
- <cd:constant type="letzte"/>
- <cd:constant type="viertel"/>
- <cd:constant type="gerade"/>
- <cd:constant type="ungerade"/>
- <cd:constant type="blanko"/>
- <cd:constant type="leer"/>
- <cd:constant type="zuruecksetzten"/>
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupreferencing" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="stellereferenzierenein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="cd:sectionnumber">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="prefix">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="interaktion">
- <cd:constant type="label"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="alles"/>
- <cd:constant type="symbol"/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="links">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="rechts">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="konvertieredatei">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- <cd:constant type="klein"/>
- <cd:constant type="gross"/>
- </cd:parameter>
- <cd:parameter name="seperator">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="autofile">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- <cd:constant type="seite"/>
- </cd:parameter>
- <cd:parameter name="global">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupurl" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="stelleurlein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="urlalternative">
- <cd:constant type="kein"/>
- <cd:constant type="beide"/>
+ <cd:constant type="jede"/>
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes" list="yes">
+ <cd:constant type="standard" default="yes"/>
+ <cd:constant type="breit"/>
+ <cd:constant type="kleinerabstand"/>
+ <cd:constant type="gepackt"/>
+ <cd:constant type="ungepackt"/>
+ <cd:constant type="keinweiss"/>
<cd:constant type="vor"/>
<cd:constant type="nach"/>
- </cd:parameter>
- <cd:parameter name="urlspatium">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="writetoreferencelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="schreibezurreferenzliste"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placereferencelist">
- <cd:sequence>
- <cd:string value="placereferencelist"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definereferencelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="definierereferenzliste"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stellereferenzlisteein"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupreferencelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="stellereferenzlisteein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="kriterium">
+ <cd:constant type="trenner"/>
+ <cd:constant type="keinabstand"/>
+ <cd:constant type="amrand"/>
+ <cd:constant type="imrand"/>
+ <cd:constant type="autointro"/>
+ <cd:constant type="lose"/>
+ <cd:constant type="wiederholen"/>
<cd:constant type="cd:section"/>
- <cd:constant type="lokal"/>
- <cd:constant type="vorig"/>
- <cd:constant type="alles"/>
- </cd:parameter>
- <cd:parameter name="befehl">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="writetolist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="schreibezurliste"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:section"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="writebetweenlist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="schreibezwischenliste"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:section"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="nolist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="keineliste"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="listsymbol" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="listsymbol"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="platziereliste"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stellelisteein"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="determinelistcharacteristics" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="bestimmelistencharakeristika"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stellelisteein"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placecombinedlist" variant="1" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="platzierezusammengestellteliste"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stellezusammengestelltelisteein"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="definiereliste"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stellelisteein"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuplist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="stellelisteein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="alternative">
+ <cd:constant type="absatz"/>
+ <cd:constant type="imtext"/>
+ <cd:constant type="zufaellig"/>
+ <cd:constant type="reverse"/>
+ </cd:keywords>
+ <cd:assignments n="4" optional="yes" list="yes">
+ <cd:parameter name="marginalie">
+ <cd:constant type="nein"/>
+ <cd:constant type="standard"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="linkerrand">
+ <cd:constant type="nein"/>
+ <cd:constant type="standard"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rechterrand">
+ <cd:constant type="nein"/>
+ <cd:constant type="standard"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="breite">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="abstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="faktor">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="posten">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="start">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="vor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="zwischen">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="nach">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="links">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="rechts">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="vorkopf">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="nachkopf">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="kopfstil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="beschrstil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="symstil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="abschnitttrenner">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="symbol">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ausrichtung">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="symausrichtung">
+ <cd:resolve name="symalign"/>
+ </cd:parameter>
+ <cd:parameter name="ziehefolgendeein">
+ <cd:resolve name="indentnext"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="itemgroup" type="environment" generated="yes" file="core-itm.tex">
+ <cd:sequence>
+ <cd:variable value="itemgroup"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
<cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- <cd:constant type="..."/>
- <cd:constant type="kein"/>
- <cd:constant type="befehl"/>
- </cd:parameter>
- <cd:parameter name="verknuepfung">
- <cd:constant type="an"/>
- <cd:constant type="aus"/>
- </cd:parameter>
- <cd:parameter name="kriterium">
- <cd:constant type="cd:section"/>
- <cd:constant type="lokal"/>
- <cd:constant type="vorig"/>
- <cd:constant type="aktuell"/>
- <cd:constant type="alles"/>
- </cd:parameter>
- <cd:parameter name="seitenbegrenzung">
- <cd:constant type="cd:list"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="nummernstil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="textstil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="seitenstil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="farbe">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="befehl">
- <cd:constant type="cd:threearguments"/>
- </cd:parameter>
- <cd:parameter name="nummerbefehl">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="textbefehl">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="seitenbefehl">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="interaktion">
- <cd:constant type="cd:sectionnumber"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="seitennummer"/>
- <cd:constant type="alles"/>
- </cd:parameter>
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="zwischen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="links">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="rechts">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="label">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="prefix">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- <cd:constant type="kein"/>
- </cd:parameter>
- <cd:parameter name="seitennummer">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="kopfnummer">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="cd:sectionnumber">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="titelausrichten">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="marginalie">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="passend"/>
- </cd:parameter>
- <cd:parameter name="hoehe">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="passend"/>
- <cd:constant type="breit"/>
- </cd:parameter>
- <cd:parameter name="tiefe">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="passend"/>
+ <cd:constant type="A"/>
+ <cd:constant type="KA"/>
+ <cd:constant type="n"/>
+ <cd:constant type="N"/>
+ <cd:constant type="m"/>
+ <cd:constant type="r"/>
+ <cd:constant type="R"/>
+ <cd:constant type="KR"/>
+ <cd:constant type="cd:number"/>
+ <cd:constant type="fortsetzten"/>
+ <cd:constant type="standard" default="yes"/>
<cd:constant type="breit"/>
- </cd:parameter>
- <cd:parameter name="abstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="seperator">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="abschnitttrenner">
+ <cd:constant type="kleinerabstand"/>
+ <cd:constant type="gepackt"/>
+ <cd:constant type="trenner"/>
+ <cd:constant type="keinabstand"/>
+ <cd:constant type="amrand"/>
+ <cd:constant type="imrand"/>
+ <cd:constant type="intro"/>
+ <cd:constant type="spalten"/>
+ <cd:constant type="text"/>
+ <cd:constant type="absatz"/>
+ <cd:constant type="wiederholen"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="setupitemgroup" n="4"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="item" file="core-itm.tex">
+ <cd:sequence>
+ <cd:string value="pos"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="but">
+ <cd:sequence>
+ <cd:string value="but"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" interactive="exclusive"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="its">
+ <cd:sequence>
+ <cd:string value="its"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ran">
+ <cd:sequence>
+ <cd:string value="ran"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="head">
+ <cd:sequence>
+ <cd:string value="kopf"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mar">
+ <cd:sequence>
+ <cd:string value="mar"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="sub">
+ <cd:sequence>
+ <cd:string value="sub"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="sym" file="core-itm.tex">
+ <cd:sequence>
+ <cd:string value="sym"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nop">
+ <cd:sequence>
+ <cd:string value="nop"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="defineregister" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="definiereregister"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:singular"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:plural"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupregister" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="stelleregisterein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:singular"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ausgleichen">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ <cd:parameter name="ausrichtung">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="seitenstil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="textstil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="indikator">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ <cd:parameter name="verknuepfung">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ <cd:parameter name="cd:sectionnumber">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ <cd:parameter name="kriterium">
+ <cd:constant type="cd:section"/>
+ <cd:constant type="lokal"/>
+ <cd:constant type="alles"/>
+ </cd:parameter>
+ <cd:parameter name="abstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="symbol">
+ <cd:constant type="1"/>
+ <cd:constant type="2"/>
+ <cd:constant type="..."/>
+ <cd:constant type="n"/>
+ <cd:constant type="a"/>
+ <cd:constant type="..."/>
+ <cd:constant type="kein"/>
+ </cd:parameter>
+ <cd:parameter name="interaktion">
+ <cd:constant type="seitennummer"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="expansion">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ <cd:constant type="befehl"/>
+ </cd:parameter>
+ <cd:parameter name="referieren">
+ <cd:constant type="an"/>
+ <cd:constant type="aus"/>
+ </cd:parameter>
+ <cd:parameter name="befehl">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="platz">
+ <cd:constant type="links"/>
+ <cd:constant type="mittig"/>
+ <cd:constant type="rechts"/>
+ </cd:parameter>
+ <cd:parameter name="maxbreite">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="unbekantereferenz">
+ <cd:constant type="leer"/>
+ <cd:constant type="kein"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:constant type="a"/>
+ <cd:constant type="b"/>
+ <cd:constant type="A"/>
+ <cd:constant type="B"/>
+ </cd:parameter>
+ <cd:parameter name="prefix">
+ <cd:constant type="beide"/>
+ <cd:constant type="erste"/>
+ <cd:constant type="kein"/>
+ </cd:parameter>
+ <cd:parameter name="compress">
+ <cd:constant type="nein"/>
+ <cd:constant type="ja"/>
+ </cd:parameter>
+ <cd:parameter name="deeptextcommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="register" generated="yes" file="core-reg.tex">
+ <cd:sequence>
+ <cd:variable value="register"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="symbol">
- <cd:constant type="kein"/>
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- <cd:constant type="3"/>
- <cd:constant type="..."/>
- </cd:parameter>
- <cd:parameter name="expansion">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- <cd:constant type="befehl"/>
- </cd:parameter>
- <cd:parameter name="maxbreite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:inherit name="umrahmt"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuplistalternative" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="setuplistalternative"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="no">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- <!-- cd:constant type="cd:name"/ -->
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="befehl">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="strecken">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="abstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definecombinedlist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="definierezusammengestellteliste"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:list"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stellezusammengestelltelisteein"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupcombinedlist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="stellezusammengestelltelisteein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="niveau">
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- <cd:constant type="3"/>
- <cd:constant type="4"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="aktuell"/>
- </cd:parameter>
- <cd:inherit name="stellelisteein"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placecombinedlist" variant="2" generated="yes" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="place"/>
- <cd:variable value="combinedlist"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stellezusammengestelltelisteein"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="completecombinedlist" generated="yes">
- <cd:sequence>
- <cd:string value="complete"/>
- <cd:variable value="combinedlist"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="stellezusammengestelltelisteein"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupnumbering" file="core-num.tex">
- <cd:sequence>
- <cd:string value="stellenummerierungein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="art">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupformulae">
- <cd:sequence>
- <cd:string value="setupformulae"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="platz">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- </cd:parameter>
- <cd:parameter name="links">
+ </cd:keywords>
+ <cd:index n="2" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="startregister" generated="yes" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="start"/>
+ <cd:variable value="register"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="rechts">
+ </cd:keywords>
+ <cd:index n="2" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="writetoregister" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="schreibezumregister"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:singular"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="ausrichtung">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="option">
- <cd:constant type="mittig"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="abstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="marginalie">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="standard"/>
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="ausrichtung">
- <cd:constant type="flushleft"/>
- <cd:constant type="flushright"/>
- <cd:constant type="mittig"/>
- <cd:constant type="center"/>
- </cd:parameter>
- <cd:parameter name="linkerrand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rechterrand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="ziehefolgendeein">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="alternative">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="vorspatium">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="seperator">
+ </cd:keywords>
+ <cd:index n="3" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="coupledregister" generated="yes">
+ <cd:sequence>
+ <cd:string value="verknuepft"/>
+ <cd:variable value="register"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="konversion">
- <cd:constant type="ziffern"/>
- <cd:constant type="buchstaben"/>
- <cd:constant type="Buchstaben"/>
- <cd:constant type="roemischezahlen"/>
- <cd:constant type="Roemischezahlen"/>
+ </cd:keywords>
+ <cd:index n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="coupleregister" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="verknuepfregister"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placeregister" variant="1" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="platziereregister"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="stelleregisterein" n="3"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="seeregister" generated="yes">
+ <cd:sequence>
+ <cd:string value="sieh"/>
+ <cd:variable value="register"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="publication" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="publikation"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuppublications" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="stellepublikationein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="alternative">
- <cd:constant type="apa"/>
- <cd:constant type="normal"/>
- </cd:parameter>
- <cd:inherit name="stellebeschreibungein"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuplines" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="stellezeilenein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
+ </cd:keywords>
+ <cd:content n="2"/>
+ <cd:index n="3" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="completeregister" generated="yes" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="vollende"/>
+ <cd:variable value="register"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="yes" optional="yes" list="yes">
+ <cd:inherit name="stelleregisterein" n="3"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placeregister" variant="2" generated="yes" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="platziere"/>
+ <cd:variable value="register"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="yes" optional="yes" list="yes">
+ <cd:inherit name="stelleregisterein" n="3"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definesynonyms" file="core-syn.tex">
+ <cd:sequence>
+ <cd:string value="definieresynonyme"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:singular"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:plural"/>
+ </cd:keywords>
+ <cd:keywords n="3">
<cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="zwischen">
+ </cd:keywords>
+ <cd:keywords n="4" optional="yes">
<cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="einziehen">
- <cd:resolve name="indenting"/>
- </cd:parameter>
- <cd:parameter name="spatium">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="lines" type="environment">
- <cd:sequence>
- <cd:string value="lines"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupparagraphnumbering" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="stelleabsatznummerierungein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- <cd:constant type="zuruecksetzten"/>
- <cd:constant type="zeile"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="abstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuplinenumbering" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="stellezeilennumerierungein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="konversion">
- <cd:constant type="ziffern"/>
- <cd:constant type="buchstaben"/>
- <cd:constant type="Buchstaben"/>
- <cd:constant type="roemischezahlen"/>
- <cd:constant type="Roemischezahlen"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="start">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="schritt">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="platz">
- <cd:constant type="imtext"/>
- <cd:constant type="imrand"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="prefix">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsynonyms" file="core-syn.tex">
+ <cd:sequence>
+ <cd:string value="stellesynonymein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="textstil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="synonymstil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="platz">
+ <cd:constant type="links"/>
+ <cd:constant type="rechts"/>
+ <cd:constant type="oben"/>
+ <cd:constant type="kleinerabstand"/>
+ <cd:constant type="imrand"/>
+ <cd:constant type="imlinken"/>
+ <cd:constant type="imrechten"/>
+ </cd:parameter>
+ <cd:parameter name="breite">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="kriterium">
+ <cd:constant type="alles"/>
+ <cd:constant type="verwende"/>
+ </cd:parameter>
+ <cd:parameter name="konversion">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ <cd:parameter name="expansion">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ <cd:constant type="befehl"/>
+ </cd:parameter>
+ <cd:parameter name="befehl">
+ <cd:constant type="cd:threearguments"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="synonym" generated="yes">
+ <cd:sequence>
+ <cd:variable value="synonym"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="referieren">
- <cd:constant type="an"/>
- <cd:constant type="aus"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="linenumbering" type="environment">
- <cd:sequence>
- <cd:string value="linenumbering"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="fortsetzten"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="line" type="environment">
- <cd:sequence>
- <cd:string value="line"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="someline" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="einezeile"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="inline" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="inzeile"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupinmargin" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="stelleinmarginalieein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="platz">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="beide"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="vor">
+ </cd:keywords>
+ <cd:content n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="completelistofsynonyms" generated="yes">
+ <cd:sequence>
+ <cd:string value="completelistof"/>
+ <cd:variable value="synonyms"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="placelistofsynonyms" generated="yes">
+ <cd:sequence>
+ <cd:string value="placelistof"/>
+ <cd:variable value="synonyms"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="loadsynonyms" generated="yes">
+ <cd:sequence>
+ <cd:string value="laden"/>
+ <cd:variable value="synonyms"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="definesorting" file="core-syn.tex">
+ <cd:sequence>
+ <cd:string value="definieresortieren"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:singular"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:plural"/>
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes">
<cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="ausrichtung">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="zeile">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="abstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="seperator">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsorting" file="core-syn.tex">
+ <cd:sequence>
+ <cd:string value="stellesortierenein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="vor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="nach">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="befehl">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="kriterium">
+ <cd:constant type="alles"/>
+ <cd:constant type="verwende"/>
+ </cd:parameter>
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="expansion">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ <cd:constant type="befehl"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="sort" generated="yes">
+ <cd:sequence>
+ <cd:variable value="sort"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="abstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stack">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:inherit name="stelleumrahmtein"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuppagenumber" file="page-num.tex">
- <cd:sequence>
- <cd:string value="stelleseitennummerein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="nummer">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- <cd:constant type="behalte"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupsubpagenumber" file="page-num.tex">
- <cd:sequence>
- <cd:string value="stelleunterseitennummerein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="art">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- <cd:constant type="kein"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupblank">
- <cd:sequence>
- <cd:string value="stelleblankoein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="normal" default="yes"/>
- <cd:constant type="standard"/>
- <cd:constant type="zeile"/>
- <cd:constant type="cd:dimension"/>
- <cd:constant type="gross"/>
- <cd:constant type="mittel"/>
- <cd:constant type="klein"/>
- <cd:constant type="fest"/>
- <cd:constant type="flexibel"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineblank" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="definiereblanko"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:inherit name="stelleblankoein"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definepapersize" file="page-lay.tex">
- <cd:sequence>
- <cd:string value="definierepapierformat"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoehe">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="format">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuppaper" file="page-lay.tex">
- <cd:sequence>
- <cd:string value="setuppaper"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="papier">
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="completelistofsorts" generated="yes">
+ <cd:sequence>
+ <cd:string value="completelistof"/>
+ <cd:variable value="sorts"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="placelistofsorts" generated="yes">
+ <cd:sequence>
+ <cd:string value="placelistof"/>
+ <cd:variable value="sorts"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="loadsorts" generated="yes">
+ <cd:sequence>
+ <cd:string value="laden"/>
+ <cd:variable value="sorts"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="definemakeup" file="page-mak.tex">
+ <cd:sequence>
+ <cd:string value="definiereumbruch"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="seite">
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="stelleumbruchein" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="makeup" type="environment">
+ <cd:sequence>
+ <cd:string value="umbruch"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="nx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ny">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoehe">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="kopfspatium">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rumpfspatium">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="option">
- <cd:constant type="max"/>
- <cd:constant type="passend"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuppapersize" file="page-lay.tex">
- <cd:sequence>
- <cd:string value="stellepapierformatein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="A3"/>
- <cd:constant type="A4" default="yes"/>
- <cd:constant type="A5"/>
- <cd:constant type="A6"/>
- <cd:constant type="letter"/>
- <cd:constant type="..."/>
- <cd:constant type="CD"/>
- <cd:constant type="cd:name"/>
- <cd:constant type="querformat"/>
- <cd:constant type="gespiegelt"/>
- <cd:constant type="gedreht"/>
- <cd:constant type="90"/>
- <cd:constant type="180"/>
- <cd:constant type="270"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="A3"/>
- <cd:constant type="A4" default="yes"/>
- <cd:constant type="A5"/>
- <cd:constant type="A6"/>
- <cd:constant type="letter"/>
- <cd:constant type="..."/>
- <cd:constant type="cd:name"/>
- <cd:constant type="querformat"/>
- <cd:constant type="gespiegelt"/>
- <cd:constant type="gedreht"/>
- <cd:constant type="negativ"/>
- <cd:constant type="90"/>
- <cd:constant type="180"/>
- <cd:constant type="270"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuparranging" file="page-imp.tex">
- <cd:sequence>
- <cd:string value="stelleanordnenein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="sperren"/>
- <cd:constant type="2*16"/>
- <cd:constant type="2*8"/>
- <cd:constant type="2*4"/>
- <cd:constant type="2*2"/>
- <cd:constant type="2**2"/>
- <cd:constant type="2*2*4"/>
- <cd:constant type="2*4*2"/>
- <cd:constant type="2UP"/>
- <cd:constant type="2DOWN"/>
- <cd:constant type="2SIDE"/>
- <cd:constant type="2TOP"/>
- <cd:constant type="gespiegelt"/>
- <cd:constant type="gedreht"/>
- <cd:constant type="doppelseitig"/>
- <cd:constant type="negativ"/>
- <cd:constant type="hintergrund"/>
- <cd:constant type="90"/>
- <cd:constant type="180"/>
- <cd:constant type="270"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showprint">
- <cd:sequence>
- <cd:string value="zeigedruck"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:inherit name="stellepapierformatein"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:inherit name="stellepapierformatein"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="stellelayoutein"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definelogo" file="page-log.tex">
- <cd:sequence>
- <cd:string value="definierelogo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="oben"/>
- <cd:constant type="kopfzeile"/>
- <cd:constant type="fusszeile"/>
- <cd:constant type="unten"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="kein"/>
- <cd:constant type="seite"/>
- <cd:constant type="linkekante"/>
- <cd:constant type="linkerrand"/>
- <cd:constant type="links"/>
- <cd:constant type="mittig"/>
- <cd:constant type="rechts"/>
- <cd:constant type="rechterrand"/>
- <cd:constant type="rechterkante"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="befehl">
- <cd:constant type="cd:command"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placelogos" file="page-log.tex">
- <cd:sequence>
- <cd:string value="platzierelogo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupwhitespace">
- <cd:sequence>
- <cd:string value="stellezwischenraumein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="kein" default="yes"/>
- <cd:constant type="klein"/>
- <cd:constant type="mittel"/>
- <cd:constant type="gross"/>
- <cd:constant type="zeile"/>
- <cd:constant type="fest"/>
- <cd:constant type="stellewiederher"/>
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupindenting">
- <cd:sequence>
- <cd:string value="stelleeinziehenein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="stelleumbruchein" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupmakeup" file="page-mak.tex">
+ <cd:sequence>
+ <cd:string value="stelleumbruchein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="breite">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="hoehe">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="voffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="hoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="seite">
+ <cd:constant type="links"/>
+ <cd:constant type="ja"/>
+ <cd:constant type="rechts"/>
+ </cd:parameter>
+ <cd:parameter name="befehle">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="doppelseitig">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ <cd:constant type="leer"/>
+ </cd:parameter>
+ <cd:parameter name="kopfzeilenstatus">
+ <cd:constant type="normal"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="start"/>
+ <cd:constant type="leer"/>
+ <cd:constant type="kein"/>
+ <cd:constant type="keinebeschriftung"/>
+ </cd:parameter>
+ <cd:parameter name="fusszeilenstatus">
+ <cd:constant type="normal"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="start"/>
+ <cd:constant type="leer"/>
+ <cd:constant type="kein"/>
+ <cd:constant type="keinebeschriftung"/>
+ </cd:parameter>
+ <cd:parameter name="textstatus">
+ <cd:constant type="normal"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="start"/>
+ <cd:constant type="leer"/>
+ <cd:constant type="kein"/>
+ <cd:constant type="keinebeschriftung"/>
+ </cd:parameter>
+ <cd:parameter name="statusoben">
+ <cd:constant type="stop"/>
+ <cd:constant type="start"/>
+ </cd:parameter>
+ <cd:parameter name="untenstatus">
+ <cd:constant type="stop"/>
+ <cd:constant type="start"/>
+ </cd:parameter>
+ <cd:parameter name="pagestate">
+ <cd:constant type="stop"/>
+ <cd:constant type="start"/>
+ </cd:parameter>
+ <cd:parameter name="farbe">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="namemakeup" type="environment" generated="yes">
+ <cd:sequence>
+ <cd:variable value="name"/>
+ <cd:string value="umbruch"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="version">
+ <cd:sequence>
+ <cd:string value="version"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="endfassung" default="yes"/>
+ <cd:constant type="konzept"/>
+ <cd:constant type="temporaer"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="currentdate">
+ <cd:sequence>
+ <cd:string value="heutigesdatum"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:inherit name="datum" n="2"/> <!-- or vice versa :) -->
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="date" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="datum"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes"> <!-- if not given, current date is used -->
+ <cd:parameter name="d">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="m">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="y">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="tag"/>
+ <cd:constant type="monat"/>
+ <cd:constant type="jahr"/>
+ <cd:constant type="wochentag"/>
+ <cd:constant type="d"/>
+ <cd:constant type="m"/>
+ <cd:constant type="y"/> <!-- also j -->
+ <cd:constant type="w"/>
+ <cd:constant type="dd"/>
+ <cd:constant type="mm"/>
+ <cd:constant type="yy"/> <!-- also jj -->
+ <cd:constant type="spatium"/>
+ <cd:constant type="--"/>
+ <cd:constant type="day+"/>
+ <cd:constant type="d+"/>
+ <cd:constant type="dd+"/>
+ <cd:constant type="merkmal"/>
+ <cd:constant type="cd:text"/> <!-- any other text -->
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="referraldate" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="verweisdatum"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="indenting" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="einziehen"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
<cd:resolve name="indenting"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definesectionblock" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="definiereabschnittsblock"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stelleabschnittsblockein"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupsectionblock" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="stelleabschnittsblockein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="nummer">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="seite">
- <cd:constant type="ja"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="noindenting" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="nichteinziehen"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="blank" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="blanko"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="klein"/>
+ <cd:constant type="mittel"/>
+ <cd:constant type="gross" default="yes"/>
+ <cd:constant type="keinweiss"/>
+ <cd:constant type="zurueck"/>
+ <cd:constant type="weiss"/>
+ <cd:constant type="sperren"/>
+ <cd:constant type="zwinge"/>
+ <cd:constant type="zuruecksetzten"/>
+ <cd:constant type="zeile"/>
+ <cd:constant type="halbezeile"/>
+ <cd:constant type="cd:formula"/>
+ <cd:constant type="fest"/>
+ <cd:constant type="flexibel"/>
+ <cd:constant type="kein"/>
+ <cd:constant type="immer"/>
+ <cd:constant type="aussen"/>
+ <cd:constant type="keinabstand"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="packed" type="environment" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="kleinerdurchschuss"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="blanko"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="unpacked" type="environment">
+ <cd:sequence>
+ <cd:string value="unpacked"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="linecorrection" type="environment">
+ <cd:sequence>
+ <cd:string value="linecorrection"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="correctwhitespace" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="korrigierezwischenraum"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="postponing" type="environment">
+ <cd:sequence>
+ <cd:string value="postponing"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="local" type="environment">
+ <cd:sequence>
+ <cd:string value="lokal"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="narrower" type="environment">
+ <cd:sequence>
+ <cd:string value="narrower"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="links"/>
+ <cd:constant type="mittig" default="yes"/>
<cd:constant type="rechts"/>
- </cd:parameter>
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definesection" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="definiereabschnitt"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupsection" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="stelleabschnittein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="konversion">
- <cd:constant type="ziffern"/>
- <cd:constant type="buchstaben"/>
- <cd:constant type="Buchstaben"/>
- <cd:constant type="roemischezahlen"/>
- <cd:constant type="Roemischezahlen"/>
- </cd:parameter>
- <cd:parameter name="vorigenummer">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuphead" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="stelleueberschriftein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:section"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="textstil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="nummernstil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="farbe">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="textfarbe">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="nummernfarbe">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="nummer">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="eigenenummer">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="seite">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="hiding" type="environment">
+ <cd:sequence>
+ <cd:string value="hiding"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupalign" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="stelleausrichtungein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="breite"/>
<cd:constant type="links"/>
<cd:constant type="rechts"/>
- <cd:constant type="ja"/>
- </cd:parameter>
- <cd:parameter name="fortsetzen">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="kopfzeile">
- <cd:constant type="kein"/>
- <cd:constant type="leer"/>
- <cd:constant type="hoch"/>
- <cd:constant type="keinebeschriftung"/>
- </cd:parameter>
- <cd:parameter name="text">
- <cd:constant type="kein"/>
- <cd:constant type="leer"/>
- <cd:constant type="hoch"/>
- <cd:constant type="keinebeschriftung"/>
- </cd:parameter>
- <cd:parameter name="fusszeile">
- <cd:constant type="kein"/>
- <cd:constant type="leer"/>
- <cd:constant type="hoch"/>
- <cd:constant type="keinebeschriftung"/>
- </cd:parameter>
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="zwischen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="alternative">
- <cd:constant type="normal"/>
- <cd:constant type="imrand"/>
<cd:constant type="mittig"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="haengend">
- <cd:constant type="kein"/>
+ <cd:constant type="innen"/>
+ <cd:constant type="aussen"/>
<cd:constant type="breit"/>
- <cd:constant type="passend"/>
+ <cd:constant type="breit"/>
+ <cd:constant type="hoehe"/>
+ <cd:constant type="unten"/>
<cd:constant type="zeile"/>
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="befehl">
- <cd:constant type="cd:twoarguments"/>
- </cd:parameter>
- <cd:parameter name="nummerbefehl">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="textbefehl">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="deepnumbercommand">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="deeptextcommand">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="prefix">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="setzekopf">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- <cd:constant type="leer"/>
- </cd:parameter>
- <cd:parameter name="nummererhoehen">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- <cd:constant type="cd:list"/>
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="resetnumber">
+ <cd:constant type="zuruecksetzten"/>
+ <cd:constant type="haengend"/>
+ <cd:constant type="nothanging"/>
+ <cd:constant type="hyphenate"/>
+ <cd:constant type="nothyphenated"/>
+ <cd:constant type="lesshyphenation"/>
+ <cd:constant type="morehyphenation"/>
+ <cd:constant type="neu"/>
+ <cd:constant type="old"/>
+ <cd:constant type="normal"/>
<cd:constant type="ja"/>
<cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="datei">
+ <cd:constant type="flushleft"/>
+ <cd:constant type="flushright"/>
+ <cd:constant type="flushouter"/>
+ <cd:constant type="flushinner"/>
+ <cd:constant type="center"/>
+ <cd:constant type="hz"/>
+ <cd:constant type="nohz"/>
+ <cd:constant type="spatiumausgleich"/>
+ <cd:constant type="nospacing"/>
+ <cd:constant type="tolerant"/>
+ <cd:constant type="sehrtolerant"/>
+ <cd:constant type="strecken"/>
+ <cd:constant type="lefttoright"/>
+ <cd:constant type="righttoleft"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+
+ <cd:command name="alignment" type="environment" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="alignment"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:inherit name="stelleausrichtungein" n="1"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupspacing">
+ <cd:sequence>
+ <cd:string value="stellespatiumein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="breit"/>
+ <cd:constant type="gepackt"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptolerance" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="stelletoleranzein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="horizontal"/>
+ <cd:constant type="vertikal"/>
+ <cd:constant type="strecken"/>
+ <cd:constant type="spatium"/>
+ <cd:constant type="sehrstreng" default="yes"/>
+ <cd:constant type="streng"/>
+ <cd:constant type="tolerant"/>
+ <cd:constant type="sehrtolerant"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="pagetype" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="seitentyp"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="expansion">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- <cd:constant type="befehl"/>
- </cd:parameter>
- <cd:parameter name="marginaltext">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:inherit name="stelleueberschriftenein"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupheadnumber" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="stellekopfzahlein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:section"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:number"/>
- <cd:constant type="+cd:number"/>
- <cd:constant type="-cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="headnumber">
- <cd:sequence>
- <cd:string value="kopfnummer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:section"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="determineheadnumber" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="bestimmekopfnummer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:section"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="currentheadnumber" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="heutigeskopfnummer"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="nextsection" generated="yes" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="next"/>
- <cd:variable value="absatz"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="definehead" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="definiereueberschrift"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:section"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupitemgroup" file="core-itm.tex">
- <cd:sequence>
- <cd:string value="setupitemgroup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:number"/>
- <cd:constant type="jede"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="standard" default="yes"/>
- <cd:constant type="breit"/>
- <cd:constant type="kleinerabstand"/>
- <cd:constant type="gepackt"/>
- <cd:constant type="ungepackt"/>
- <cd:constant type="keinweiss"/>
- <cd:constant type="vor"/>
- <cd:constant type="nach"/>
- <cd:constant type="trenner"/>
- <cd:constant type="keinabstand"/>
- <cd:constant type="amrand"/>
- <cd:constant type="imrand"/>
- <cd:constant type="autointro"/>
- <cd:constant type="lose"/>
- <cd:constant type="wiederholen"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="absatz"/>
- <cd:constant type="imtext"/>
- <cd:constant type="zufaellig"/>
- <cd:constant type="reverse"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:parameter name="marginalie">
- <cd:constant type="nein"/>
- <cd:constant type="standard"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="linkerrand">
- <cd:constant type="nein"/>
- <cd:constant type="standard"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rechterrand">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="processpage" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="bearbeiteseite"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="ja" default="yes"/>
<cd:constant type="nein"/>
- <cd:constant type="standard"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="abstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="faktor">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="posten">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="start">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="zwischen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="links">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="rechts">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="couplepage" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="doppelseite"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="option">
+ <cd:constant type="doppelseitig"/>
+ </cd:parameter>
+ <cd:parameter name="vor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="nach">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="position" file="page-lyr.tex">
+ <cd:sequence>
+ <cd:string value="position"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:position n="1" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupscreens" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="stellerasterein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="methode">
+ <cd:constant type="punkt"/>
+ <cd:constant type="linie"/>
+ <cd:constant type="extern"/>
+ </cd:parameter>
+ <cd:parameter name="aufloesung">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="faktor">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="raster">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbackgrounds" file="page-bck.tex">
+ <cd:sequence>
+ <cd:string value="stellehintergruendeein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="oben"/>
+ <cd:constant type="kopfzeile"/>
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="vorkopf">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nachkopf">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="kopfstil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="beschrstil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="symstil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="abschnitttrenner">
+ <cd:constant type="fusszeile"/>
+ <cd:constant type="unten"/>
+ <cd:constant type="seite"/>
+ <cd:constant type="papier"/>
+ <cd:constant type="linkerseite"/>
+ <cd:constant type="rechterseite"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="linkekante"/>
+ <cd:constant type="linkerrand"/>
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="symbol">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ausrichtung">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="symausrichtung">
- <cd:resolve name="symalign"/>
- </cd:parameter>
- <cd:parameter name="ziehefolgendeein">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="itemgroup" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="itemgroup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="a"/>
- <cd:constant type="A"/>
- <cd:constant type="KA"/>
- <cd:constant type="n"/>
- <cd:constant type="N"/>
- <cd:constant type="m"/>
- <cd:constant type="r"/>
- <cd:constant type="R"/>
- <cd:constant type="KR"/>
- <cd:constant type="cd:number"/>
- <cd:constant type="fortsetzten"/>
- <cd:constant type="standard" default="yes"/>
- <cd:constant type="breit"/>
- <cd:constant type="kleinerabstand"/>
- <cd:constant type="gepackt"/>
- <cd:constant type="trenner"/>
- <cd:constant type="keinabstand"/>
- <cd:constant type="amrand"/>
- <cd:constant type="imrand"/>
- <cd:constant type="intro"/>
- <cd:constant type="spalten"/>
- <cd:constant type="text"/>
- <cd:constant type="absatz"/>
- <cd:constant type="wiederholen"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="setupitemgroup"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="item">
- <cd:sequence>
- <cd:string value="pos"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="but">
- <cd:sequence>
- <cd:string value="but"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference interactive="exclusive"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="its">
- <cd:sequence>
- <cd:string value="its"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="ran">
- <cd:sequence>
- <cd:string value="ran"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="head">
- <cd:sequence>
- <cd:string value="kopf"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="mar">
- <cd:sequence>
- <cd:string value="mar"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="sub">
- <cd:sequence>
- <cd:string value="sub"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="sym" file="core-itm.tex">
- <cd:sequence>
- <cd:string value="sym"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="nop">
- <cd:sequence>
- <cd:string value="nop"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="defineregister" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="definiereregister"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:plural"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupregister" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="stelleregisterein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ausgleichen">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="ausrichtung">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="seitenstil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="textstil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="indikator">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="verknuepfung">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="cd:sectionnumber">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="kriterium">
- <cd:constant type="cd:section"/>
- <cd:constant type="lokal"/>
+ <cd:constant type="rechterrand"/>
+ <cd:constant type="rechterkante"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="cd:repeat"/>
+ </cd:parameter>
+ <cd:inherit name="stelleumrahmtein" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="buffer" type="environment" generated="yes" file="core-buf.tex">
+ <cd:sequence>
+ <cd:variable value="puffer"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="buffer" type="environment" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="buffer"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getbuffer">
+ <cd:sequence>
+ <cd:string value="holepuffer"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="typebuffer" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="tippepuffer"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definebuffer" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="definierepuffer"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbuffer" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="stellepufferein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="absatz">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="vor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="nach">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineblock" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="definiereblock"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nomoreblocks" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="keinebloeckemehr"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="hideblocks" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="verbergebloecke"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="keepblocks" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="behaltebloecke"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
<cd:constant type="alles"/>
- </cd:parameter>
- <cd:parameter name="abstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="symbol">
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- <cd:constant type="..."/>
- <cd:constant type="n"/>
- <cd:constant type="a"/>
- <cd:constant type="..."/>
- <cd:constant type="kein"/>
- </cd:parameter>
- <cd:parameter name="interaktion">
- <cd:constant type="seitennummer"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="expansion">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- <cd:constant type="befehl"/>
- </cd:parameter>
- <cd:parameter name="referieren">
- <cd:constant type="an"/>
- <cd:constant type="aus"/>
- </cd:parameter>
- <cd:parameter name="befehl">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="platz">
- <cd:constant type="links"/>
- <cd:constant type="mittig"/>
- <cd:constant type="rechts"/>
- </cd:parameter>
- <cd:parameter name="maxbreite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="unbekantereferenz">
- <cd:constant type="leer"/>
- <cd:constant type="kein"/>
- </cd:parameter>
- <cd:parameter name="alternative">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="A"/>
- <cd:constant type="B"/>
- </cd:parameter>
- <cd:parameter name="prefix">
- <cd:constant type="beide"/>
- <cd:constant type="erste"/>
- <cd:constant type="kein"/>
- </cd:parameter>
- <cd:parameter name="compress">
- <cd:constant type="nein"/>
- <cd:constant type="ja"/>
- </cd:parameter>
- <cd:parameter name="deeptextcommand">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="register" generated="yes" file="core-reg.tex">
- <cd:sequence>
- <cd:variable value="register"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:index list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="startregister" generated="yes" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="start"/>
- <cd:variable value="register"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:index list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="writetoregister" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="schreibezumregister"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:index list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="coupledregister" generated="yes">
- <cd:sequence>
- <cd:string value="coupled"/>
- <cd:variable value="register"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:index/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="coupleregister" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="verknuepfregister"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placeregister" variant="1" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="platziereregister"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stelleregisterein"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="seeregister" generated="yes">
- <cd:sequence>
- <cd:string value="see"/>
- <cd:variable value="register"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content/>
- <cd:index list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="completeregister" generated="yes" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="complete"/>
- <cd:variable value="register"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="yes" optional="yes" list="yes">
- <cd:inherit name="stelleregisterein"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placeregister" variant="2" generated="yes" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="place"/>
- <cd:variable value="register"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="yes" optional="yes" list="yes">
- <cd:inherit name="stelleregisterein"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definesynonyms" file="core-syn.tex">
- <cd:sequence>
- <cd:string value="definieresynonyme"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:plural"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:command"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:command"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupsynonyms" file="core-syn.tex">
- <cd:sequence>
- <cd:string value="stellesynonymein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="textstil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="synonymstil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="platz">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useblocks" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="verwendebloecke"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="processblocks" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="bearbeitebloecke"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="bypassblocks" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="bypassblocks"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="forceblocks">
+ <cd:sequence>
+ <cd:string value="forceblocks"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="selectblocks" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="waehlebloeckeaus"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes">
+ <cd:parameter name="kriterium">
+ <cd:constant type="alles"/>
+ <cd:constant type="cd:section"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupblock" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="stelleblockein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="vor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="nach">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="innen">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="datei">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="formula" type="environment" generated="yes">
+ <cd:sequence>
+ <cd:variable value="formel"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="mathematics" file="supp-mat.tex">
+ <cd:sequence>
+ <cd:string value="mathematik"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placeformula" file="core-mat.tex">
+ <cd:sequence>
+ <cd:string value="platziereformel"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2" optional="yes"/>
+ <cd:displaymath n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placesubformula" file="core-mat.tex">
+ <cd:sequence>
+ <cd:string value="platziereunterformel"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2" optional="yes"/>
+ <cd:displaymath n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placefloat" generated="yes" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="platziere"/>
+ <cd:variable value="gleitobjekt"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="links"/>
<cd:constant type="rechts"/>
+ <cd:constant type="hier" default="yes"/>
<cd:constant type="oben"/>
- <cd:constant type="kleinerabstand"/>
- <cd:constant type="imrand"/>
+ <cd:constant type="unten"/>
<cd:constant type="imlinken"/>
<cd:constant type="imrechten"/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="kriterium">
- <cd:constant type="alles"/>
- <cd:constant type="verwende"/>
- </cd:parameter>
- <cd:parameter name="konversion">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="expansion">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- <cd:constant type="befehl"/>
- </cd:parameter>
- <cd:parameter name="befehl">
- <cd:constant type="cd:threearguments"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="synonym" generated="yes">
- <cd:sequence>
- <cd:variable value="synonym"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="completelistofsynonyms" generated="yes">
- <cd:sequence>
- <cd:string value="completelistof"/>
- <cd:variable value="synonyms"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="placelistofsynonyms" generated="yes">
- <cd:sequence>
- <cd:string value="placelistof"/>
- <cd:variable value="synonyms"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="loadsynonyms" generated="yes">
- <cd:sequence>
- <cd:string value="load"/>
- <cd:variable value="synonyms"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="definesorting" file="core-syn.tex">
- <cd:sequence>
- <cd:string value="definieresortieren"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:plural"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:command"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupsorting" file="core-syn.tex">
- <cd:sequence>
- <cd:string value="stellesortierenein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="befehl">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="kriterium">
- <cd:constant type="alles"/>
- <cd:constant type="verwende"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="expansion">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- <cd:constant type="befehl"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="sort" generated="yes">
- <cd:sequence>
- <cd:variable value="sort"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="completelistofsorts" generated="yes">
- <cd:sequence>
- <cd:string value="completelistof"/>
- <cd:variable value="sorts"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="placelistofsorts" generated="yes">
- <cd:sequence>
- <cd:string value="placelistof"/>
- <cd:variable value="sorts"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="loadsorts" generated="yes">
- <cd:sequence>
- <cd:string value="load"/>
- <cd:variable value="sorts"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="definemakeup" file="page-mak.tex">
- <cd:sequence>
- <cd:string value="definiereumbruch"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="stelleumbruchein"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="makeup" type="environment">
- <cd:sequence>
- <cd:string value="makeup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stelleumbruchein"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupmakeup" file="page-mak.tex">
- <cd:sequence>
- <cd:string value="stelleumbruchein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoehe">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="voffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="seite">
+ <cd:constant type="imrand"/>
+ <cd:constant type="marginalie"/>
+ <cd:constant type="linkerrand"/>
+ <cd:constant type="rechterrand"/>
+ <cd:constant type="linkekante"/>
+ <cd:constant type="rechterkante"/>
+ <cd:constant type="innermargin"/>
+ <cd:constant type="outermargin"/>
+ <cd:constant type="inneredge"/>
+ <cd:constant type="outeredge"/>
+ <cd:constant type="innen"/>
+ <cd:constant type="aussen"/>
+ <cd:constant type="zeile"/>
+ <cd:constant type="hoch"/>
+ <cd:constant type="tief"/>
+ <cd:constant type="passend"/>
+ <cd:constant type="seite"/>
+ <cd:constant type="linkerseite"/>
+ <cd:constant type="rechterseite"/>
+ <cd:constant type="gegenueber"/>
+ <cd:constant type="immer"/>
+ <cd:constant type="auto"/>
+ <cd:constant type="zwinge"/>
+ <cd:constant type="lang"/>
+ <cd:constant type="zuruecksetzten"/>
+ <cd:constant type="zeile"/>
+ <cd:constant type="hoehe"/>
+ <cd:constant type="tiefe"/>
+ <cd:constant type="split"/>
+ <cd:constant type="90"/>
+ <cd:constant type="180"/>
+ <cd:constant type="270"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes" list="yes"/>
+ <cd:content n="3"/>
+ <cd:content n="4"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="reservefloat" generated="yes">
+ <cd:sequence>
+ <cd:string value="reservieren"/>
+ <cd:variable value="gleitobjekt"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:parameter name="hoehe">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="breite">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rahmen">
+ <cd:constant type="an"/>
+ <cd:constant type="aus"/>
+ </cd:parameter>
+ </cd:assignments>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:reference n="3" optional="yes" list="yes"/>
+ <cd:content n="4"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefloat" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="definieregleitobjekt"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:singular"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:plural"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfloat" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="stellegleitobjektein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="hoehe">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="breite">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="maxhoehe">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="maxbreite">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="minbreite">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="default">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="seitenbegrenzung">
+ <cd:constant type="cd:list"/>
+ </cd:parameter>
+ <cd:parameter name="linkerrandabstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rechterrandabstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="platz">
+ <cd:constant type="links"/>
+ <cd:constant type="mittig"/>
+ <cd:constant type="rechts"/>
+ </cd:parameter>
+ <cd:inherit name="stelleumrahmtein" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="floattext" type="environment" generated="yes">
+ <cd:sequence>
+ <cd:variable value="gleitobjekt"/>
+ <cd:string value="text"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="links"/>
- <cd:constant type="ja"/>
<cd:constant type="rechts"/>
- </cd:parameter>
- <cd:parameter name="befehle">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="doppelseitig">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- <cd:constant type="leer"/>
- </cd:parameter>
- <cd:parameter name="kopfzeilenstatus">
- <cd:constant type="normal"/>
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- <cd:constant type="leer"/>
- <cd:constant type="kein"/>
- <cd:constant type="keinebeschriftung"/>
- </cd:parameter>
- <cd:parameter name="fusszeilenstatus">
- <cd:constant type="normal"/>
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- <cd:constant type="leer"/>
- <cd:constant type="kein"/>
- <cd:constant type="keinebeschriftung"/>
- </cd:parameter>
- <cd:parameter name="textstatus">
- <cd:constant type="normal"/>
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- <cd:constant type="leer"/>
- <cd:constant type="kein"/>
- <cd:constant type="keinebeschriftung"/>
- </cd:parameter>
- <cd:parameter name="statusoben">
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- </cd:parameter>
- <cd:parameter name="untenstatus">
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- </cd:parameter>
- <cd:parameter name="pagestate">
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- </cd:parameter>
- <cd:parameter name="farbe">
+ <cd:constant type="hoch"/>
+ <cd:constant type="mittig"/>
+ <cd:constant type="tief"/>
+ <cd:constant type="offset"/>
+ <cd:constant type="lang"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ <cd:content n="4"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placelistoffloats" generated="yes">
+ <cd:sequence>
+ <cd:string value="placelistof"/>
+ <cd:variable value="floats"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="completelistoffloats" generated="yes">
+ <cd:sequence>
+ <cd:string value="completelistof"/>
+ <cd:variable value="floats"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="referral" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="verweis"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="bet">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="ken">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="dat">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="van">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="aan">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="ref">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="selectpaper">
+ <cd:sequence>
+ <cd:string value="waehlepapieraus"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="familie">
+ <cd:constant type="1"/>
+ <cd:constant type="2"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="couplepaper">
+ <cd:sequence>
+ <cd:string value="doppelseitigespapier"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="namemakeup" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="name"/>
- <cd:string value="makeup"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="version">
- <cd:sequence>
- <cd:string value="version"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="endfassung" default="yes"/>
- <cd:constant type="konzept"/>
- <cd:constant type="temporaer"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="currentdate">
- <cd:sequence>
- <cd:string value="heutigesdatum"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:inherit name="datum"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="date" file="core-con.tex">
- <cd:sequence>
- <cd:string value="datum"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:parameter name="d">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="m">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="y">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- <cd:keywords list="yes">
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="referraldate" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="verweisdatum"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="indenting" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="einziehen"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:resolve name="indenting"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="noindenting" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="nichteinziehen"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="blank" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="blanko"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="klein"/>
- <cd:constant type="mittel"/>
- <cd:constant type="gross" default="yes"/>
- <cd:constant type="keinweiss"/>
- <cd:constant type="zurueck"/>
- <cd:constant type="weiss"/>
- <cd:constant type="sperren"/>
- <cd:constant type="zwinge"/>
- <cd:constant type="zuruecksetzten"/>
- <cd:constant type="zeile"/>
- <cd:constant type="halbezeile"/>
- <cd:constant type="cd:formula"/>
- <cd:constant type="fest"/>
- <cd:constant type="flexibel"/>
- <cd:constant type="kein"/>
- <cd:constant type="immer"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="packed" type="environment" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="kleinerdurchschuss"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="blanko"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="unpacked" type="environment">
- <cd:sequence>
- <cd:string value="unpacked"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="linecorrection" type="environment">
- <cd:sequence>
- <cd:string value="linecorrection"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="correctwhitespace" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="korrigierezwischenraum"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="postponing" type="environment">
- <cd:sequence>
- <cd:string value="postponing"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="local" type="environment">
- <cd:sequence>
- <cd:string value="local"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="narrower" type="environment">
- <cd:sequence>
- <cd:string value="narrower"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="links"/>
- <cd:constant type="mittig" default="yes"/>
- <cd:constant type="rechts"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="hiding" type="environment">
- <cd:sequence>
- <cd:string value="hiding"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupalign" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="stelleausrichtungein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="breite"/>
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="mittig"/>
- <cd:constant type="innen"/>
- <cd:constant type="aussen"/>
- <cd:constant type="breit"/>
- <cd:constant type="breit"/>
- <cd:constant type="hoehe"/>
- <cd:constant type="unten"/>
- <cd:constant type="zeile"/>
- <cd:constant type="zuruecksetzten"/>
- <cd:constant type="haengend"/>
- <cd:constant type="nothanging"/>
- <cd:constant type="hyphenate"/>
- <cd:constant type="nothyphenated"/>
- <cd:constant type="lesshyphens"/>
- <cd:constant type="morehyphens"/>
- <cd:constant type="neu"/>
- <cd:constant type="old"/>
- <cd:constant type="normal"/>
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- <cd:constant type="flushleft"/>
- <cd:constant type="flushright"/>
- <cd:constant type="flushouter"/>
- <cd:constant type="flushinner"/>
- <cd:constant type="center"/>
- <cd:constant type="hz"/>
- <cd:constant type="nohz"/>
- <cd:constant type="spatiumausgleich"/>
- <cd:constant type="nospacing"/>
- <cd:constant type="tolerant"/>
- <cd:constant type="sehrtolerant"/>
- <cd:constant type="strecken"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-
-<cd:command name="alignment" type="environment">
- <cd:sequence>
- <cd:string value="alignment"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:inherit name="stelleausrichtungein"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupspacing">
- <cd:sequence>
- <cd:string value="stellespatiumein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="breit"/>
- <cd:constant type="gepackt"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptolerance" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="stelletoleranzein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="horizontal"/>
- <cd:constant type="vertikal"/>
- <cd:constant type="strecken"/>
- <cd:constant type="spatium"/>
- <cd:constant type="sehrstreng" default="yes"/>
- <cd:constant type="streng"/>
- <cd:constant type="tolerant"/>
- <cd:constant type="sehrtolerant"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="pagetype" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="seitentyp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="processpage" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="bearbeiteseite"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="ja" default="yes"/>
- <cd:constant type="nein"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="couplepage" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="doppelseite"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="option">
- <cd:constant type="doppelseitig"/>
- </cd:parameter>
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="position" file="page-lyr.tex">
- <cd:sequence>
- <cd:string value="position"/>
- </cd:sequence>
- <cd:arguments>
- <cd:position list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupscreens" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="stellerasterein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="methode">
- <cd:constant type="punkt"/>
- <cd:constant type="linie"/>
- <cd:constant type="extern"/>
- </cd:parameter>
- <cd:parameter name="aufloesung">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="faktor">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="chem" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="chem"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fraction" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="bruch"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="periods" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="punkt"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="raster">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupbackgrounds" file="page-bck.tex">
- <cd:sequence>
- <cd:string value="stellehintergruendeein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="oben"/>
- <cd:constant type="kopfzeile"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="fusszeile"/>
- <cd:constant type="unten"/>
- <cd:constant type="seite"/>
- <cd:constant type="papier"/>
- <cd:constant type="linkerseite"/>
- <cd:constant type="rechterseite"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="linkekante"/>
- <cd:constant type="linkerrand"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="rechterrand"/>
- <cd:constant type="rechterkante"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- <cd:constant type="cd:repeat"/>
- </cd:parameter>
- <cd:inherit name="stelleumrahmtein"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="buffer" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="puffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="getbuffer">
- <cd:sequence>
- <cd:string value="holepuffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="typebuffer" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="tippepuffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definebuffer" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="definierepuffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupbuffer" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="stellepufferein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="absatz">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineblock" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="definiereblock"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="nomoreblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="keinebloeckemehr"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="hideblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="verbergebloecke"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="keepblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="behaltebloecke"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="alles"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="useblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="verwendebloecke"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="processblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="bearbeitebloecke"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="bypassblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="bypassblocks"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="forceblocks">
- <cd:sequence>
- <cd:string value="forceblocks"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="selectblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="waehlebloeckeaus"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes">
- <cd:parameter name="kriterium">
- <cd:constant type="alles"/>
- <cd:constant type="cd:section"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupblock" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="stelleblockein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="innen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="datei">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="formula" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="formel"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="mathematics" file="supp-mat.tex">
- <cd:sequence>
- <cd:string value="mathematik"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placeformula" file="core-mat.tex">
- <cd:sequence>
- <cd:string value="platziereformel"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content optional="yes"/>
- <cd:displaymath/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placesubformula" file="core-mat.tex">
- <cd:sequence>
- <cd:string value="platziereunterformel"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content optional="yes"/>
- <cd:displaymath/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placefloat" generated="yes" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="place"/>
- <cd:variable value="gleitobjekt"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="hier" default="yes"/>
- <cd:constant type="oben"/>
- <cd:constant type="unten"/>
- <cd:constant type="imlinken"/>
- <cd:constant type="imrechten"/>
- <cd:constant type="imrand"/>
- <cd:constant type="marginalie"/>
- <cd:constant type="linkerrand"/>
- <cd:constant type="rechterrand"/>
- <cd:constant type="linkekante"/>
- <cd:constant type="rechterkante"/>
- <cd:constant type="innermargin"/>
- <cd:constant type="outermargin"/>
- <cd:constant type="inneredge"/>
- <cd:constant type="outeredge"/>
- <cd:constant type="innen"/>
- <cd:constant type="aussen"/>
- <cd:constant type="zeile"/>
- <cd:constant type="hoch"/>
- <cd:constant type="tief"/>
- <cd:constant type="passend"/>
- <cd:constant type="seite"/>
- <cd:constant type="linkerseite"/>
- <cd:constant type="rechterseite"/>
- <cd:constant type="gegenueber"/>
- <cd:constant type="immer"/>
- <cd:constant type="auto"/>
- <cd:constant type="zwinge"/>
- <cd:constant type="lang"/>
- <cd:constant type="zuruecksetzten"/>
- <cd:constant type="zeile"/>
- <cd:constant type="hoehe"/>
- <cd:constant type="tiefe"/>
- <cd:constant type="split"/>
- <cd:constant type="90"/>
- <cd:constant type="180"/>
- <cd:constant type="270"/>
- </cd:keywords>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="reservefloat" generated="yes">
- <cd:sequence>
- <cd:string value="reserve"/>
- <cd:variable value="gleitobjekt"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:parameter name="hoehe">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rahmen">
- <cd:constant type="an"/>
- <cd:constant type="aus"/>
- </cd:parameter>
- </cd:assignments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definefloat" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="definieregleitobjekt"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:plural"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfloat" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="stellegleitobjektein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="hoehe">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="maxhoehe">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="maxbreite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="minbreite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="default">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="seitenbegrenzung">
- <cd:constant type="cd:list"/>
- </cd:parameter>
- <cd:parameter name="linkerrandabstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rechterrandabstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="platz">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="items">
+ <cd:sequence>
+ <cd:string value="posten"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="stellepostenein" n="1"/>
+ </cd:assignments>
+ <cd:content n="2" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupitems" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="stellepostenein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="platz">
+ <cd:constant type="links"/>
+ <cd:constant type="rechts"/>
+ <cd:constant type="imrand"/>
+ <cd:constant type="oben"/>
+ <cd:constant type="unten"/>
+ </cd:parameter>
+ <cd:parameter name="symbol">
+ <cd:constant type="1"/>
+ <cd:constant type="2"/>
+ <cd:constant type="..."/>
+ <cd:constant type="n"/>
+ <cd:constant type="a"/>
+ <cd:constant type="..."/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="kein"/>
+ </cd:parameter>
+ <cd:parameter name="breite">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="unbekannt"/>
+ </cd:parameter>
+ <cd:parameter name="vor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="zwischen">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="ausrichtung">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="nach">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="quotation" type="environment" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="zitat"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
<cd:constant type="links"/>
- <cd:constant type="mittig"/>
+ <cd:constant type="mittig" default="yes"/>
<cd:constant type="rechts"/>
- </cd:parameter>
- <cd:inherit name="stelleumrahmtein"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="floattext" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="gleitobjekt"/>
- <cd:string value="text"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="hoch"/>
- <cd:constant type="mittig"/>
- <cd:constant type="tief"/>
- <cd:constant type="offset"/>
- <cd:constant type="lang"/>
- </cd:keywords>
- <cd:reference optional="yes"/>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placelistoffloats" generated="yes">
- <cd:sequence>
- <cd:string value="placelistof"/>
- <cd:variable value="floats"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="completelistoffloats" generated="yes">
- <cd:sequence>
- <cd:string value="completelistof"/>
- <cd:variable value="floats"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="referral" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="verweis"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="bet">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="quotation" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="zitat"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="quote" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="zitieren"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupquote" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="stellezitierenein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="vor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="nach">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="farbe">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="platz">
+ <cd:constant type="cd:text"/>
+ <cd:constant type="marginalie"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineparagraphs" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="definiereabsaetze"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="linie">
+ <cd:constant type="an"/>
+ <cd:constant type="aus"/>
+ </cd:parameter>
+ <cd:parameter name="hoehe">
+ <cd:constant type="passend"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="vor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="nach">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="innen">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="abstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="toleranz">
+ <cd:constant type="sehrstreng"/>
+ <cd:constant type="streng"/>
+ <cd:constant type="tolerant"/>
+ <cd:constant type="sehrtolerant"/>
+ <cd:constant type="strecken"/>
+ </cd:parameter>
+ <cd:parameter name="ausrichtung">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="paragraph" generated="yes">
+ <cd:sequence>
+ <cd:variable value="absatz"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="paragraph" type="environment" generated="yes">
+ <cd:sequence>
+ <cd:variable value="absatz"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupparagraphs" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="stelleabsaetzeein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="jede"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="breite">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="hoehe">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="ausrichtung">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="toleranz">
+ <cd:constant type="sehrstreng"/>
+ <cd:constant type="streng"/>
+ <cd:constant type="tolerant"/>
+ <cd:constant type="sehrtolerant"/>
+ <cd:constant type="strecken"/>
+ </cd:parameter>
+ <cd:parameter name="abstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="vor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="nach">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="innen">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="befehl">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="linie">
+ <cd:constant type="an"/>
+ <cd:constant type="aus"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptab" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="stelletabein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="muster">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="breite">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="kopfstil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="platz">
+ <cd:constant type="links"/>
+ <cd:constant type="rechts"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tab">
+ <cd:sequence>
+ <cd:string value="tab"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:nothing n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="document" type="environment">
+ <cd:sequence>
+ <cd:string value="document"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="labels">
+ <cd:sequence>
+ <cd:string value="labels"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definetabulate" file="core-tbl.tex">
+ <cd:sequence>
+ <cd:string value="definieretabulator"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="3">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="ken">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tabulate" type="environment" generated="yes">
+ <cd:sequence>
+ <cd:variable value="tabulator"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="dat">
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="stelleexterneabbildungenein" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptabulate" file="core-tbl.tex">
+ <cd:sequence>
+ <cd:string value="stelletabulatorein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="einheit">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="einziehen">
+ <cd:resolve name="indenting"/>
+ </cd:parameter>
+ <cd:parameter name="vor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="nach">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="innen">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="EQ">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="linienfarbe">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="ausrichtung">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="liniendicke">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="abstand">
+ <cd:constant type="blanko"/>
+ <cd:constant type="gritter"/>
+ <cd:constant type="tiefe"/>
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="klein"/>
+ <cd:constant type="mittel"/>
+ <cd:constant type="gross"/>
+ <cd:constant type="kein"/>
+ </cd:parameter>
+ <cd:parameter name="fliesstext">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ <cd:parameter name="linie">
+ <cd:constant type="normal"/>
+ <cd:constant type="zeile"/>
+ </cd:parameter>
+ <cd:parameter name="split">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptables" file="core-tab.tex">
+ <cd:sequence>
+ <cd:string value="stelletabellenein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="abstand">
+ <cd:constant type="klein"/>
+ <cd:constant type="mittel"/>
+ <cd:constant type="gross"/>
+ </cd:parameter>
+ <cd:parameter name="fliesstext">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ <cd:parameter name="HL">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="klein"/>
+ <cd:constant type="mittel"/>
+ <cd:constant type="gross"/>
+ <cd:constant type="kein"/>
+ </cd:parameter>
+ <cd:parameter name="VL">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="klein"/>
+ <cd:constant type="mittel"/>
+ <cd:constant type="gross"/>
+ <cd:constant type="kein"/>
+ </cd:parameter>
+ <cd:parameter name="tiefe">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="strut"/>
+ </cd:parameter>
+ <cd:parameter name="hoehe">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="strut"/>
+ </cd:parameter>
+ <cd:parameter name="liniendicke">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="linienfarbe">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="ausrichtung">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="befehle">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="ausrichtung">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="hintergrund">
+ <cd:constant type="raster"/>
+ <cd:constant type="farbe"/>
+ <cd:constant type="kein"/>
+ </cd:parameter>
+ <cd:parameter name="hintergrundraster">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="hintergrundfarbe">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="fliesstext">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="table" type="environment">
+ <cd:sequence>
+ <cd:string value="table"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="van">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tables" type="environment">
+ <cd:sequence>
+ <cd:string value="tables"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="aan">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definetabletemplate" file="core-tab.tex">
+ <cd:sequence>
+ <cd:string value="definieretabellenvorlage"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="ref">
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="selectpaper">
- <cd:sequence>
- <cd:string value="waehlepapieraus"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="familie">
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="couplepaper">
- <cd:sequence>
- <cd:string value="doppelseitigespapier"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="chem" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="chem"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="fraction" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="bruch"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="periods" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="punkt"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="items">
- <cd:sequence>
- <cd:string value="posten"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stellepostenein"/>
- </cd:assignments>
- <cd:content list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupitems" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="stellepostenein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="platz">
+ </cd:keywords>
+ <cd:keywords n="4" optional="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useexternalfiles" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="verwendeexternedateien"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="fliesstext">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ <cd:parameter name="datei">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useexternalfile" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="verwendeexternedatei"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ <cd:assignments n="4" list="yes">
+ <cd:parameter name="fliesstext">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useexternalfigure" file="core-fig.tex">
+ <cd:sequence>
+ <cd:string value="verwendeexterneabbildung"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes">
+ <cd:constant type="cd:name"/> <!-- parent -->
+ </cd:keywords>
+ <cd:assignments n="4" optional="yes" list="yes">
+ <cd:inherit name="stelleexterneabbildungenein" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="externalfigure" file="core-fig.tex">
+ <cd:sequence>
+ <cd:string value="externeabbildung"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="stelleexterneabbildungenein" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupexternalfigures" file="core-fig.tex">
+ <cd:sequence>
+ <cd:string value="stelleexterneabbildungenein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1">
+ <cd:parameter name="format">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="yformat">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="yformat">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="faktor">
+ <cd:constant type="max"/>
+ <cd:constant type="passend"/>
+ <cd:constant type="breit"/>
+ </cd:parameter>
+ <cd:parameter name="bfaktor">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="max"/>
+ <cd:constant type="breit"/>
+ <cd:constant type="passend"/>
+ </cd:parameter>
+ <cd:parameter name="hfaktor">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="max"/>
+ <cd:constant type="breit"/>
+ <cd:constant type="passend"/>
+ </cd:parameter>
+ <cd:parameter name="breite">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="hoehe">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rahmen">
+ <cd:constant type="an"/>
+ <cd:constant type="aus"/>
+ </cd:parameter>
+ <cd:parameter name="voreinstellung">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ <cd:parameter name="bildschirm">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="vorschau">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ <cd:parameter name="wiederholen">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ <cd:parameter name="objekt">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ <cd:parameter name="typ">
+ <cd:constant type="eps"/>
+ <cd:constant type="mps"/>
+ <cd:constant type="pdf"/>
+ <cd:constant type="tif"/>
+ <cd:constant type="png"/>
+ <cd:constant type="jpg"/>
+ <cd:constant type="mov"/>
+ <cd:constant type="cd:tex"/>
+ </cd:parameter>
+ <cd:parameter name="methode">
+ <cd:constant type="eps"/>
+ <cd:constant type="mps"/>
+ <cd:constant type="pdf"/>
+ <cd:constant type="tif"/>
+ <cd:constant type="png"/>
+ <cd:constant type="jpg"/>
+ <cd:constant type="mov"/>
+ <cd:constant type="cd:tex"/>
+ </cd:parameter>
+ <cd:parameter name="option">
+ <cd:constant type="rahmen"/>
+ <cd:constant type="leer"/>
+ <cd:constant type="test"/>
+ </cd:parameter>
+ <cd:parameter name="umrahmen">
+ <cd:constant type="an"/>
+ <cd:constant type="aus"/>
+ </cd:parameter>
+ <cd:parameter name="ymax">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="xmax">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="verzeichnis">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="platz">
+ <cd:constant type="lokal"/>
+ <cd:constant type="global"/>
+ <cd:constant type="default"/>
+ <cd:constant type="kein"/>
+ </cd:parameter>
+ <cd:parameter name="maxbreite">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="maxhoehe">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="konversion">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="prefix">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showexternalfigures" file="core-fig.tex">
+ <cd:sequence>
+ <cd:string value="zeigeexterneabbildungen"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:parameter name="alternative">
+ <cd:constant type="a"/>
+ <cd:constant type="b"/>
+ <cd:constant type="c"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useexternalsoundtrack" file="core-fig.tex">
+ <cd:sequence>
+ <cd:string value="verwendeexternestonstueck"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="name" file="syst-gen.tex">
+ <cd:sequence>
+ <cd:string value="name"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="legend" type="environment">
+ <cd:sequence>
+ <cd:string value="legend"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="zwei"/>
+ </cd:keywords>
+ <cd:tex n="2" command="leg"/>
+ <cd:nothing n="3"/>
+ <cd:nothing n="4" separator="backslash"/>
+ <cd:nothing n="5" separator="backslash"/>
+ <cd:tex n="6" separator="backslash" command="leg"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fact" type="environment">
+ <cd:sequence>
+ <cd:string value="geg"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:tex n="1" command="fact"/>
+ <cd:nothing n="2"/>
+ <cd:nothing n="3" separator="backslash"/>
+ <cd:nothing n="4" separator="backslash"/>
+ <cd:tex n="5" separator="backslash" command="fact"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="rotate" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="drehen"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="stelledrehenein" n="1"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuprotate" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="stelledrehenein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="rotation">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="platz">
+ <cd:constant type="normal"/>
+ <cd:constant type="hoch"/>
+ <cd:constant type="passend"/>
+ <cd:constant type="breit"/>
+ <cd:constant type="tiefe"/>
+ </cd:parameter>
+ <cd:inherit name="stelleumrahmtein" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mirror" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="spiegeln"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="scale" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="format"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:parameter name="sx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="sy">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcombinations" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="stellekombinationein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="vor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="zwischen">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="nach">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="abstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="hoehe">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="passend"/>
+ </cd:parameter>
+ <cd:parameter name="breite">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="passend"/>
+ </cd:parameter>
+ <cd:parameter name="platz">
+ <cd:constant type="oben"/>
+ <cd:constant type="mittig"/>
+ <cd:constant type="unten"/>
+ <cd:constant type="links"/>
+ <cd:constant type="rechts"/>
+ </cd:parameter>
+ <cd:parameter name="ausrichtung">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="farbe">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="combination" type="environment">
+ <cd:sequence>
+ <cd:string value="combination"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:matrix"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placesidebyside" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="platzierenebeneinander"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placeontopofeachother" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="platziereuntereinander"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overlay" type="environment">
+ <cd:sequence>
+ <cd:string value="overlay"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overview" type="environment">
+ <cd:sequence>
+ <cd:string value="overview"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupinteractionscreen" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="stelleinteraktionsbildschirmein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:parameter name="breite">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="passend"/>
+ <cd:constant type="max"/>
+ </cd:parameter>
+ <cd:parameter name="hoehe">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="passend"/>
+ <cd:constant type="max"/>
+ </cd:parameter>
+ <cd:parameter name="rumpfspatium">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="kopfspatium">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rumpfabstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="kopfoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="option">
+ <cd:constant type="max"/>
+ <cd:constant type="passend"/>
+ <cd:constant type="doppelseitig"/>
+ <cd:constant type="einzelseitig"/>
+ <cd:constant type="auto"/>
+ <cd:constant type="kein"/>
+ <cd:constant type="bookmark"/>
+ </cd:parameter>
+ <cd:parameter name="wartezeit">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="kein"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="screen" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="bildschirm"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setuppagetransitions" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="stelleseitenuebergangein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="zuruecksetzten"/>
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupinteraction" file="core-nav.tex">
+ <cd:sequence>
+ <cd:string value="stelleinteraktionein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="menue">
+ <cd:constant type="an"/>
+ <cd:constant type="aus"/>
+ </cd:parameter>
+ <cd:parameter name="seite">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ <cd:parameter name="klick">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ <cd:parameter name="split">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ <cd:parameter name="bildschirm">
+ <cd:constant type="neu"/>
+ </cd:parameter>
+ <cd:parameter name="oeffenaktion">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="schliessenaktion">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="openpageaction">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="closepageaction">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="berechnen">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="strut">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ <cd:parameter name="breite">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="hoehe">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="tiefe">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="farbe">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="kontrastfarbe">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="symbolset">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="titel">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="untertitel">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="autor">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="datum">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="keyword">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <!-- maybe this will move elsewhere -->
+ <cd:parameter name="fieldlayer">
+ <cd:constant type="auto"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupinteractionmenu" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="stelleinteraktionsmenueein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="vor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="nach">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="zwischen">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="links">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="rechts">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="mittig">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="kein"/>
+ <cd:constant type="lokal"/>
+ </cd:parameter>
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="farbe">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="kontrastfarbe">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="abstand">
+ <cd:constant type="overlay"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="selbeseite">
+ <cd:constant type="ja"/>
+ <cd:constant type="leer"/>
+ <cd:constant type="nein"/>
+ <cd:constant type="kein"/>
+ </cd:parameter>
+ <cd:parameter name="unbekantereferenz">
+ <cd:constant type="ja"/>
+ <cd:constant type="leer"/>
+ <cd:constant type="nein"/>
+ <cd:constant type="kein"/>
+ </cd:parameter>
+ <cd:parameter name="linkeroffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rechterabstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="obenoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="untenoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="position">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ <cd:inherit name="stelleumrahmtein" n="2"/> <!-- maybe not all parameters from framed -->
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineinteractionmenu" variant="1" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="definiereinteraktionsmenue"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive" list="yes">
<cd:constant type="links"/>
<cd:constant type="rechts"/>
- <cd:constant type="imrand"/>
<cd:constant type="oben"/>
<cd:constant type="unten"/>
- </cd:parameter>
- <cd:parameter name="symbol">
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- <cd:constant type="..."/>
- <cd:constant type="n"/>
- <cd:constant type="a"/>
- <cd:constant type="..."/>
- <cd:constant type="cd:text"/>
- <cd:constant type="kein"/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- <cd:constant type="unbekannt"/>
- </cd:parameter>
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="zwischen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="ausrichtung">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="quotation" type="environment" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="zitat"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="links"/>
- <cd:constant type="mittig" default="yes"/>
- <cd:constant type="rechts"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="quotation" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="zitat"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="quote" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="zitieren"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupquote" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="stellezitierenein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="farbe">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="platz">
- <cd:constant type="cd:text"/>
- <cd:constant type="marginalie"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="adding">
- <cd:sequence>
- <cd:string value="zusatz"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="klein"/>
- <cd:constant type="mittel" default="yes"/>
- <cd:constant type="gross"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineparagraphs" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="definiereabsaetze"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="linie">
- <cd:constant type="an"/>
- <cd:constant type="aus"/>
- </cd:parameter>
- <cd:parameter name="hoehe">
- <cd:constant type="passend"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="innen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="abstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="toleranz">
- <cd:constant type="sehrstreng"/>
- <cd:constant type="streng"/>
- <cd:constant type="tolerant"/>
- <cd:constant type="sehrtolerant"/>
- <cd:constant type="strecken"/>
- </cd:parameter>
- <cd:parameter name="ausrichtung">
- <cd:resolve name="align"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="paragraph" generated="yes">
- <cd:sequence>
- <cd:variable value="absatz"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="paragraph" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="absatz"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupparagraphs" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="stelleabsaetzeein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:number"/>
- <cd:constant type="jede"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoehe">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="ausrichtung">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="toleranz">
- <cd:constant type="sehrstreng"/>
- <cd:constant type="streng"/>
- <cd:constant type="tolerant"/>
- <cd:constant type="sehrtolerant"/>
- <cd:constant type="strecken"/>
- </cd:parameter>
- <cd:parameter name="abstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="innen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="befehl">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="linie">
- <cd:constant type="an"/>
- <cd:constant type="aus"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptab" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="stelletabein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="muster">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="kopfstil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="platz">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="stelleinteraktionsmenueein" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineinteractionmenu" variant="2" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="definiereinteraktionsmenue"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
<cd:constant type="links"/>
<cd:constant type="rechts"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="tab">
- <cd:sequence>
- <cd:string value="tab"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:nothing/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="document" type="environment">
- <cd:sequence>
- <cd:string value="document"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="labels">
- <cd:sequence>
- <cd:string value="labels"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definetabulate" file="core-tbl.tex">
- <cd:sequence>
- <cd:string value="definieretabulator"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="tabulate" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="tabulator"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="verwendeexterneabbildung"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptabulate" file="core-tbl.tex">
- <cd:sequence>
- <cd:string value="stelletabulatorein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="einheit">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="einziehen">
- <cd:resolve name="indenting"/>
- </cd:parameter>
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="innen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="EQ">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="linienfarbe">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="ausrichtung">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="liniendicke">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="abstand">
- <cd:constant type="blanko"/>
- <cd:constant type="gritter"/>
- <cd:constant type="tiefe"/>
- <cd:constant type="cd:dimension"/>
- <cd:constant type="klein"/>
- <cd:constant type="mittel"/>
- <cd:constant type="gross"/>
- <cd:constant type="kein"/>
- </cd:parameter>
- <cd:parameter name="fliesstext">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="klein"/>
- <cd:constant type="gross"/>
- </cd:parameter>
- <cd:parameter name="linie">
- <cd:constant type="normal"/>
- <cd:constant type="zeile"/>
- </cd:parameter>
- <cd:parameter name="split">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptables" file="core-tab.tex">
- <cd:sequence>
- <cd:string value="stelletabellenein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="abstand">
- <cd:constant type="klein"/>
- <cd:constant type="mittel"/>
- <cd:constant type="gross"/>
- </cd:parameter>
- <cd:parameter name="fliesstext">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="klein"/>
- <cd:constant type="gross"/>
- </cd:parameter>
- <cd:parameter name="HL">
- <cd:constant type="cd:number"/>
- <cd:constant type="klein"/>
- <cd:constant type="mittel"/>
- <cd:constant type="gross"/>
- <cd:constant type="kein"/>
- </cd:parameter>
- <cd:parameter name="VL">
- <cd:constant type="cd:number"/>
- <cd:constant type="klein"/>
- <cd:constant type="mittel"/>
- <cd:constant type="gross"/>
- <cd:constant type="kein"/>
- </cd:parameter>
- <cd:parameter name="tiefe">
- <cd:constant type="cd:number"/>
- <cd:constant type="strut"/>
- </cd:parameter>
- <cd:parameter name="hoehe">
- <cd:constant type="cd:number"/>
- <cd:constant type="strut"/>
- </cd:parameter>
- <cd:parameter name="liniendicke">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="linienfarbe">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="ausrichtung">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="befehle">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="ausrichtung">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="hintergrund">
- <cd:constant type="raster"/>
- <cd:constant type="farbe"/>
- <cd:constant type="kein"/>
- </cd:parameter>
- <cd:parameter name="hintergrundraster">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="hintergrundfarbe">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="fliesstext">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="klein"/>
- <cd:constant type="gross"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="table" type="environment">
- <cd:sequence>
- <cd:string value="table"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="tables" type="environment">
- <cd:sequence>
- <cd:string value="tables"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definetabletemplate" file="core-tab.tex">
- <cd:sequence>
- <cd:string value="definieretabellenvorlage"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="useexternalfiles" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="verwendeexternedateien"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="fliesstext">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="klein"/>
- <cd:constant type="gross"/>
- </cd:parameter>
- <cd:parameter name="datei">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="useexternalfile" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="verwendeexternedatei"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="fliesstext">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="klein"/>
- <cd:constant type="gross"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="useexternalfigure" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="verwendeexterneabbildung"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:parameter name="format">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="yformat">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="yformat">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="faktor">
- <cd:constant type="max"/>
- <cd:constant type="passend"/>
- <cd:constant type="breit"/>
- </cd:parameter>
- <cd:parameter name="bfaktor">
- <cd:constant type="cd:number"/>
- <cd:constant type="max"/>
- <cd:constant type="breit"/>
- <cd:constant type="passend"/>
- </cd:parameter>
- <cd:parameter name="hfaktor">
- <cd:constant type="cd:number"/>
- <cd:constant type="max"/>
- <cd:constant type="breit"/>
- <cd:constant type="passend"/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoehe">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rahmen">
- <cd:constant type="an"/>
- <cd:constant type="aus"/>
- </cd:parameter>
- <cd:parameter name="voreinstellung">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="bildschirm">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="vorschau">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="wiederholen">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="objekt">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="typ">
- <cd:constant type="eps"/>
- <cd:constant type="mps"/>
- <cd:constant type="pdf"/>
- <cd:constant type="tif"/>
- <cd:constant type="png"/>
- <cd:constant type="jpg"/>
- <cd:constant type="mov"/>
- <cd:constant type="cd:tex"/>
- </cd:parameter>
- <cd:parameter name="methode">
- <cd:constant type="eps"/>
- <cd:constant type="mps"/>
- <cd:constant type="pdf"/>
- <cd:constant type="tif"/>
- <cd:constant type="png"/>
- <cd:constant type="jpg"/>
- <cd:constant type="mov"/>
- <cd:constant type="cd:tex"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="externalfigure" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="externeabbildung"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="verwendeexterneabbildung"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupexternalfigures" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="stelleexterneabbildungenein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments>
- <cd:parameter name="option">
- <cd:constant type="rahmen"/>
- <cd:constant type="leer"/>
- <cd:constant type="test"/>
- </cd:parameter>
- <cd:parameter name="objekt">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="umrahmen">
- <cd:constant type="an"/>
- <cd:constant type="aus"/>
- </cd:parameter>
- <cd:parameter name="ymax">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="xmax">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="verzeichnis">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="platz">
- <cd:constant type="lokal"/>
- <cd:constant type="global"/>
- <cd:constant type="default"/>
- <cd:constant type="kein"/>
- </cd:parameter>
- <cd:parameter name="maxbreite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="maxhoehe">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="konversion">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="prefix">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showexternalfigures" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="zeigeexterneabbildungen"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:parameter name="alternative">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="useexternalsoundtrack" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="verwendeexternestonstueck"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:file"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="name" file="syst-gen.tex">
- <cd:sequence>
- <cd:string value="name"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="legend" type="environment">
- <cd:sequence>
- <cd:string value="legend"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="zwei"/>
- </cd:keywords>
- <cd:tex command="leg"/>
- <cd:nothing/>
- <cd:nothing separator="backslash"/>
- <cd:nothing separator="backslash"/>
- <cd:tex separator="backslash" command="leg"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="fact" type="environment">
- <cd:sequence>
- <cd:string value="geg"/>
- </cd:sequence>
- <cd:arguments>
- <cd:tex command="fact"/>
- <cd:nothing/>
- <cd:nothing separator="backslash"/>
- <cd:nothing separator="backslash"/>
- <cd:tex separator="backslash" command="fact"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="rotate" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="drehen"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stelledrehenein"/>
- </cd:assignments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuprotate" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="stelledrehenein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="rotation">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="platz">
- <cd:constant type="normal"/>
- <cd:constant type="hoch"/>
- <cd:constant type="passend"/>
- <cd:constant type="breit"/>
- <cd:constant type="tiefe"/>
- </cd:parameter>
- <cd:inherit name="stelleumrahmtein"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="mirror" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="spiegeln"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="scale" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="format"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:parameter name="sx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="sy">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupcombinations" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="stellekombinationein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="zwischen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="abstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoehe">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="passend"/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="passend"/>
- </cd:parameter>
- <cd:parameter name="platz">
<cd:constant type="oben"/>
- <cd:constant type="mittig"/>
<cd:constant type="unten"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
<cd:constant type="links"/>
<cd:constant type="rechts"/>
- </cd:parameter>
- <cd:parameter name="ausrichtung">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="farbe">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="combination" type="environment">
- <cd:sequence>
- <cd:string value="combination"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:matrix"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placesidebyside" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="platzierenebeneinander"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placeontopofeachother" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="platziereuntereinander"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="overlay" type="environment">
- <cd:sequence>
- <cd:string value="overlay"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="overview" type="environment">
- <cd:sequence>
- <cd:string value="overview"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupinteractionscreen" file="core-int.tex">
- <cd:sequence>
- <cd:string value="stelleinteraktionsbildschirmein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" list="yes">
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="passend"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="hoehe">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="passend"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="rumpfspatium">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="kopfspatium">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rumpfabstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="kopfoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="option">
- <cd:constant type="max"/>
- <cd:constant type="passend"/>
- <cd:constant type="doppelseitig"/>
- <cd:constant type="bookmark"/>
- </cd:parameter>
- <cd:parameter name="wartezeit">
- <cd:constant type="cd:number"/>
- <cd:constant type="kein"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="screen" file="core-int.tex">
- <cd:sequence>
- <cd:string value="bildschirm"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setuppagetransitions" file="core-int.tex">
- <cd:sequence>
- <cd:string value="stelleseitenuebergangein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="zuruecksetzten"/>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupinteraction" file="core-nav.tex">
- <cd:sequence>
- <cd:string value="stelleinteraktionein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="menue">
- <cd:constant type="an"/>
- <cd:constant type="aus"/>
- </cd:parameter>
- <cd:parameter name="seite">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="klick">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="split">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="bildschirm">
- <cd:constant type="neu"/>
- </cd:parameter>
- <cd:parameter name="oeffenaktion">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="schliessenaktion">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="openpageaction">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="closepageaction">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="berechnen">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoehe">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="tiefe">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="farbe">
+ <cd:constant type="oben"/>
+ <cd:constant type="unten"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="stelleinteraktionsmenueein" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="interactionmenu" type="environment">
+ <cd:sequence>
+ <cd:string value="interaktionsmenue"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="kontrastfarbe">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="disableinteractionmenu" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="inaktiviereinteraktionsmenue"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
+ <cd:constant type="links"/>
+ <cd:constant type="rechts"/>
+ <cd:constant type="oben"/>
+ <cd:constant type="unten"/>
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="symbolset">
+ </cd:keywords>
+ <cd:reference n="2" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useexternaldocument" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="verwendeexteresdokument"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="titel">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="untertitel">
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="datei"/>
+ </cd:keywords>
+ <cd:keywords n="3">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="autor">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useURL" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="verwendeURL"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="datum">
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:constant type="datei"/>
+ </cd:keywords>
+ <cd:keywords n="4">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="keyword">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="coupledocument" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="verknuepfedokument"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="datei"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="from" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="von"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" interactive="exclusive"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="interactionbar">
+ <cd:sequence>
+ <cd:string value="interaktionsbalken"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:inherit name="stelleinteraktionsbalkenein" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="interactionbuttons" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="interaktionsknopfe"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" optional="yes" list="yes">
+ <cd:inherit name="stelleinteraktionsbalkenein" n="1"/>
+ </cd:assignments>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupinteractionbar" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="stelleinteraktionsbalkenein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:constant type="a"/>
+ <cd:constant type="b"/>
+ <cd:constant type="c"/>
+ <cd:constant type="d"/>
+ <cd:constant type="e"/>
+ <cd:constant type="f"/>
+ <cd:constant type="g"/>
+ </cd:parameter>
+ <cd:parameter name="symbol">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ <cd:parameter name="breite">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="hoehe"/>
+ <cd:constant type="passend"/>
+ </cd:parameter>
+ <cd:parameter name="hoehe">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="hoehe"/>
+ <cd:constant type="passend"/>
+ </cd:parameter>
+ <cd:parameter name="tiefe">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="farbe">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="schritt">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="klein"/>
+ <cd:constant type="mittel"/>
+ <cd:constant type="gross"/>
+ </cd:parameter>
+ <cd:inherit name="stelleumrahmtein" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="synchronize" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="synchronisieren"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="synchronization" type="environment">
+ <cd:sequence>
+ <cd:string value="synchronization"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupsynchronizationbar" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="stellesynchronisationsbalkenein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:parameter name="alternative">
+ <cd:constant type="seite"/>
+ <cd:constant type="lokal"/>
+ </cd:parameter>
+ <cd:parameter name="breite">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="hoehe"/>
+ <cd:constant type="passend"/>
+ </cd:parameter>
+ <cd:parameter name="hoehe">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="farbe">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:inherit name="stelleumrahmtein" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="synchronizationbar" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="synchronisationsbalken"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="alternative">
+ <cd:constant type="seite"/>
+ <cd:constant type="lokal"/>
+ </cd:parameter>
+ <cd:inherit name="stellesynchronisationsbalkenein" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsynchronization" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="stellesynchronisationein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineprofile" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="definiereprofil"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupprofiles" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="stelleprofilein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:parameter name="option">
+ <cd:constant type="test"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="profile" type="environment">
+ <cd:sequence>
+ <cd:string value="profile"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="followprofile" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="folgeprofil"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="exclusive"/>
+ <cd:keywords n="2">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <!-- maybe this will move elsewhere -->
- <cd:parameter name="fieldlayer">
- <cd:constant type="auto"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placebookmarks" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="platzierebookmarks"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
<cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineinteractionmenu" variant="1" file="core-int.tex">
- <cd:sequence>
- <cd:string value="definiereinteraktionsmenue"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive" list="yes">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="oben"/>
- <cd:constant type="unten"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="zwischen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="links">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="rechts">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="mittig">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- <cd:constant type="kein"/>
- <cd:constant type="lokal"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="farbe">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="abstand">
- <cd:constant type="overlay"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="selbeseite">
- <cd:constant type="ja"/>
- <cd:constant type="leer"/>
- <cd:constant type="nein"/>
- <cd:constant type="kein"/>
- </cd:parameter>
- <cd:parameter name="unbekantereferenz">
- <cd:constant type="ja"/>
- <cd:constant type="leer"/>
- <cd:constant type="nein"/>
- <cd:constant type="kein"/>
- </cd:parameter>
- <cd:parameter name="linkeroffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rechterabstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="obenoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="untenoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="position">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:inherit name="stelleumrahmtein"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineinteractionmenu" variant="2" file="core-int.tex">
- <cd:sequence>
- <cd:string value="definiereinteraktionsmenue"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="oben"/>
- <cd:constant type="unten"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="oben"/>
- <cd:constant type="unten"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stelleinteraktionsmenueein"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="interactionmenu" type="environment">
- <cd:sequence>
- <cd:string value="interaktionsmenue"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="disableinteractionmenu" file="core-int.tex">
- <cd:sequence>
- <cd:string value="inaktiviereinteraktionsmenue"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="oben"/>
- <cd:constant type="unten"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:reference list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="useexternaldocument" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="verwendeexteresdokument"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="datei"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="useURL" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="verwendeURL"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="datei"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="coupledocument" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="verknuepfedokument"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="datei"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="from" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="von"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference interactive="exclusive"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="interactionbar">
- <cd:sequence>
- <cd:string value="interaktionsbalken"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" list="yes">
- <cd:inherit name="stelleinteraktionsbalkenein"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="interactionbuttons" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="interaktionsknopfe"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" optional="yes" list="yes">
- <cd:inherit name="stelleinteraktionsbalkenein"/>
- </cd:assignments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupinteractionbar" file="core-int.tex">
- <cd:sequence>
- <cd:string value="stelleinteraktionsbalkenein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="alternative">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- <cd:constant type="d"/>
- <cd:constant type="e"/>
- <cd:constant type="f"/>
- <cd:constant type="g"/>
- </cd:parameter>
- <cd:parameter name="symbol">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="hoehe"/>
- <cd:constant type="passend"/>
- </cd:parameter>
- <cd:parameter name="hoehe">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="hoehe"/>
- <cd:constant type="passend"/>
- </cd:parameter>
- <cd:parameter name="tiefe">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="farbe">
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ <cd:constant type="alles"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="bookmark" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="bookmark"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="schritt">
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="version" type="environment">
+ <cd:sequence>
+ <cd:string value="version"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive" list="yes">
<cd:constant type="cd:number"/>
- <cd:constant type="klein"/>
- <cd:constant type="mittel"/>
- <cd:constant type="gross"/>
- </cd:parameter>
- <cd:inherit name="stelleumrahmtein"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="synchronize" file="core-int.tex">
- <cd:sequence>
- <cd:string value="synchronisieren"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="synchronization" type="environment">
- <cd:sequence>
- <cd:string value="synchronization"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupsynchronizationbar" file="core-int.tex">
- <cd:sequence>
- <cd:string value="stellesynchronisationsbalkenein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" list="yes">
- <cd:parameter name="alternative">
- <cd:constant type="seite"/>
- <cd:constant type="lokal"/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="hoehe"/>
- <cd:constant type="passend"/>
- </cd:parameter>
- <cd:parameter name="hoehe">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="farbe">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:inherit name="stelleumrahmtein"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="synchronizationbar" file="core-int.tex">
- <cd:sequence>
- <cd:string value="synchronisationsbalken"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="alternative">
- <cd:constant type="seite"/>
- <cd:constant type="lokal"/>
- </cd:parameter>
- <cd:inherit name="stellesynchronisationsbalkenein"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupsynchronization" file="core-int.tex">
- <cd:sequence>
- <cd:string value="stellesynchronisationein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineprofile" file="core-int.tex">
- <cd:sequence>
- <cd:string value="definiereprofil"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupprofiles" file="core-int.tex">
- <cd:sequence>
- <cd:string value="stelleprofilein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" list="yes">
- <cd:parameter name="option">
- <cd:constant type="test"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="profile" type="environment">
- <cd:sequence>
- <cd:string value="profile"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="followprofile" file="core-int.tex">
- <cd:sequence>
- <cd:string value="folgeprofil"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content interactive="exclusive"/>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placebookmarks" file="core-int.tex">
- <cd:sequence>
- <cd:string value="platzierebookmarks"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- <cd:constant type="alles"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="bookmark">
- <cd:sequence>
- <cd:string value="bookmark"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="version" type="environment">
- <cd:sequence>
- <cd:string value="version"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive" list="yes">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupversions" file="core-int.tex">
- <cd:sequence>
- <cd:string value="stelleversionein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="nummer">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupversions" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="stelleversionein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="nummer">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="markversion" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="beschrifteversion"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="selectversion" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="waehleversionaus"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="defineversion" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="definiereversion"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
<cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="markversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="beschrifteversion"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="selectversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="waehleversionaus"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="defineversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="definiereversion"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="followversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="folgeversion"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content interactive="exclusive"/>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="followprofileversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="folgeprofilversion"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content interactive="exclusive"/>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineprogram" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="definiereprogramme"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupprograms" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="stelleprogrammein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" list="yes">
- <cd:parameter name="verzeichnis">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="followversion" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="folgeversion"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="exclusive"/>
+ <cd:keywords n="2">
<cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="program" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="programm"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="figure" type="environment">
- <cd:sequence>
- <cd:string value="figure"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="faktor">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="rahmen">
- <cd:constant type="an"/>
- <cd:constant type="aus"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<!-- referring*figure skipped -->
-
-<!-- marking*figure skipped -->
-
-<!-- remark skipped -->
-
-<cd:command name="goto" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="zu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content interactive="exclusive"/>
- <cd:content interactive="exclusive"/>
- <cd:reference list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="gotobox" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="zurbox"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content interactive="exclusive"/>
- <cd:reference list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="button">
- <cd:sequence>
- <cd:string value="knopf"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" optional="yes" list="yes">
- <cd:inherit name="stelleknopfein"/>
- </cd:assignments>
- <cd:content/>
- <cd:reference list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupbuttons" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="stelleknopfein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:inherit name="stelleumrahmtein"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<!-- menubutton skipped -->
-
-<cd:command name="setupcomment" file="core-int.tex">
- <cd:sequence>
- <cd:string value="stellekommentarein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoehe">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="farbe">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="titel">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="followprofileversion" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="folgeprofilversion"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="exclusive"/>
+ <cd:keywords n="2">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="spatium">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="symbol">
- <cd:constant type="normal"/>
- <cd:constant type="Neu"/>
- <cd:constant type="Ballon"/>
- <cd:constant type="Zusatz"/>
- <cd:constant type="Hilfe"/>
- <cd:constant type="Absatz"/>
- <cd:constant type="Schluessel"/>
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="option">
- <cd:constant type="max"/>
- <cd:constant type="puffer"/>
- </cd:parameter>
- <cd:parameter name="marginalie">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="abstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="comment" type="environment">
- <cd:sequence>
- <cd:string value="kommentar"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stellekommentarein"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="comment">
- <cd:sequence>
- <cd:string value="kommentar"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stellekommentarein"/>
- </cd:assignments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definefield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="definierefeld"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definesubfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="definieresubfeld"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="copyfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="kopierefeld"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="clonefield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="klonierefeld"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="field" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="feld"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="fitfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="passendfeld"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="fillinfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="ausfuellfeld"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="tooltip" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="tooltip"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="mittig"/>
- </cd:keywords>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showfields" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="zeigefelder"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="logfields" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="registrierefelder"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="stellefeldein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="label"/>
- <cd:constant type="horizontal"/>
- <cd:constant type="vertikal"/>
- <cd:constant type="rahmen"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="stellefelderin"/>
- </cd:assignments>
- <cd:assignments list="yes">
- </cd:assignments>
- <cd:assignments list="yes">
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfields" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="stellefelderin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="zuruecksetzten"/>
- <cd:constant type="label"/>
- <cd:constant type="horizontal"/>
- <cd:constant type="vertikal"/>
- <cd:constant type="rahmen"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="abstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="zwischen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="farbe">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="ausrichtung">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="option">
- <cd:constant type="nurlesbar"/>
- <cd:constant type="obligatorisch"/>
- <cd:constant type="geschuetzt"/>
- <cd:constant type="sortiert"/>
- <cd:constant type="nichtverfuegbar"/>
- <cd:constant type="versteckt"/>
- <cd:constant type="druckbar"/>
- </cd:parameter>
- <cd:parameter name="klickin">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="klickaus">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="regionin">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="regionaus">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="nachtaste">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="formatieren">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="validieren">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="berechnen">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="feldoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="feldrahmenfarbe">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="feldhintergrundfarbe">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:inherit name="umrahmt"/>
- </cd:assignments>
- <cd:assignments list="yes">
- </cd:assignments>
- <cd:assignments list="yes">
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupforms" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="setupforms"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="methode">
- <cd:constant type="HTML"/>
- <cd:constant type="FDF"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definefieldstack" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="definierefeldstapel"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="stellefelderin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="fieldstack" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="feldstapel"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stellefelderin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="clip" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="ausschnitt"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stelleausschnittein"/>
- </cd:assignments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupclipping" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="stelleausschnittein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="nx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ny">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="x">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="y">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoehe">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="voffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="mp">
+ </cd:keywords>
+ <cd:keywords n="3">
<cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placelegend">
- <cd:sequence>
- <cd:string value="platzierelegende"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuplegend">
- <cd:sequence>
- <cd:string value="stellelegendeein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="abstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="zwischen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoehe">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="platz">
- <cd:constant type="rechts"/>
- <cd:constant type="unten"/>
- </cd:parameter>
- <cd:parameter name="fliesstext">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="klein"/>
- <cd:constant type="gross"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definerule">
- <cd:sequence>
- <cd:string value="definerule"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="setuprule"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placerule">
- <cd:sequence>
- <cd:string value="placerule"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuprule">
- <cd:sequence>
- <cd:string value="setuprule"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="tiefe">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoehe">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vorspatium">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="nachspatium">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="farbe">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineprogram" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="definiereprogramme"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
<cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definetextvariable">
- <cd:sequence>
- <cd:string value="definetextvariable"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:inherit name="setuptextvariable"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptextvariable">
- <cd:sequence>
- <cd:string value="setuptextvariable"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="links">
+ </cd:keywords>
+ <cd:keywords n="2">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="rechts">
+ </cd:keywords>
+ <cd:keywords n="3">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="abstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="befehl">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="ja"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupprograms" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="stelleprogrammein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:parameter name="verzeichnis">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="program" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="programm"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="figure" type="environment">
+ <cd:sequence>
+ <cd:string value="figure"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:parameter name="faktor">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="rahmen">
+ <cd:constant type="an"/>
+ <cd:constant type="aus"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <!-- referring*figure skipped -->
+
+ <!-- marking*figure skipped -->
+
+ <!-- remark skipped -->
+
+ <cd:command name="goto" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="zu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="exclusive"/>
+ <cd:content n="2" interactive="exclusive"/>
+ <cd:reference n="3" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="gotobox" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="zurbox"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="exclusive"/>
+ <cd:reference n="2" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="button" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="knopf"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" optional="yes" list="yes">
+ <cd:inherit name="stelleknopfein" n="1"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ <cd:reference n="3" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbuttons" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="stelleknopfein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:inherit name="stelleumrahmtein" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <!-- menubutton skipped -->
+
+ <cd:command name="setupcomment" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="stellekommentarein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="breite">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="hoehe">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="farbe">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="titel">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="spatium">
+ <cd:constant type="ja"/>
+ <cd:constant type="nein"/>
+ </cd:parameter>
+ <cd:parameter name="symbol">
+ <cd:constant type="normal"/>
+ <cd:constant type="Neu"/>
+ <cd:constant type="Ballon"/>
+ <cd:constant type="Zusatz"/>
+ <cd:constant type="Hilfe"/>
+ <cd:constant type="Absatz"/>
+ <cd:constant type="Schluessel"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="option">
+ <cd:constant type="max"/>
+ <cd:constant type="puffer"/>
+ </cd:parameter>
+ <cd:parameter name="marginalie">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="abstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="comment" type="environment">
+ <cd:sequence>
+ <cd:string value="kommentar"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="stellekommentarein" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="comment">
+ <cd:sequence>
+ <cd:string value="kommentar"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="stellekommentarein" n="1"/>
+ </cd:assignments>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefield" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="definierefeld"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1"> <!-- name -->
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2"> <!-- type -->
+ <cd:constant type="text"/>
+ <cd:constant type="zeile"/> <!-- equal to text -->
+ <cd:constant type="push"/>
+ <cd:constant type="check"/>
+ <cd:constant type="radio"/>
+ <cd:constant type="combo"/>
+ <cd:constant type="choice"/> <!-- equal to combo -->
+ <cd:constant type="popup"/> <!-- equal to combo -->
+ </cd:keywords>
+ <cd:keywords n="3"> <!-- group -->
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="4" list="yes"> <!-- optional for text? -->
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="5" optional="yes"> <!-- default -->
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definesubfield" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="definieresubfeld"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="3" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="copyfield" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="kopierefeld"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="clonefield" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="klonierefeld"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="4" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="field" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="feld"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fitfield" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="passendfeld"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fillinfield" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="ausfuellfeld"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tooltip" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="tooltip"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="links"/>
+ <cd:constant type="rechts"/>
+ <cd:constant type="mittig"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showfields" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="zeigefelder"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="logfields" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="registrierefelder"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupfield" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="stellefeldein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="label"/>
+ <cd:constant type="horizontal"/>
+ <cd:constant type="vertikal"/>
+ <cd:constant type="rahmen"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:inherit name="stellefelderin" n="2"/>
+ </cd:assignments>
+ <cd:assignments n="4" list="yes"> </cd:assignments>
+ <cd:assignments n="5" list="yes"> </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfields" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="stellefelderin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes"> <!-- TODO: if it's reset, only a single argument, no list -->
+ <cd:constant type="zuruecksetzten"/>
+ <cd:constant type="label"/>
+ <cd:constant type="horizontal"/>
+ <cd:constant type="vertikal"/>
+ <cd:constant type="rahmen"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="abstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="vor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="nach">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="zwischen">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="farbe">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="ausrichtung">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="option">
+ <cd:constant type="nurlesbar"/>
+ <cd:constant type="obligatorisch"/>
+ <cd:constant type="geschuetzt"/>
+ <cd:constant type="sortiert"/>
+ <cd:constant type="nichtverfuegbar"/>
+ <cd:constant type="versteckt"/>
+ <cd:constant type="druckbar"/>
+ </cd:parameter>
+ <cd:parameter name="klickin">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="klickaus">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="regionin">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="regionaus">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="nachtaste">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="formatieren">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="validieren">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="berechnen">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="feldoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="feldrahmenfarbe">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="feldhintergrundfarbe">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:inherit name="stelleumrahmtein" n="2"/>
+ </cd:assignments>
+ <cd:assignments n="3" list="yes">
+ <cd:inherit name="stellefelderin" n="2"/>
+ </cd:assignments>
+ <cd:assignments n="4" list="yes">
+ <cd:inherit name="stellefelderin" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupforms" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="setupforms"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="methode">
+ <cd:constant type="HTML"/>
+ <cd:constant type="FDF"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefieldstack" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="definierefeldstapel"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:inherit name="stellefelderin" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fieldstack" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="feldstapel"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="stellefelderin" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="clip" file="core-trf.tex">
+ <cd:sequence>
+ <cd:string value="ausschnitt"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="stelleausschnittein" n="1"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupclipping" file="core-trf.tex">
+ <cd:sequence>
+ <cd:string value="stelleausschnittein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number" default="1"/>
+ </cd:parameter>
+ <cd:parameter name="nx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ny">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="x">
+ <cd:constant type="cd:number" default="1"/>
+ </cd:parameter>
+ <cd:parameter name="y">
+ <cd:constant type="cd:number" default="1"/>
+ </cd:parameter>
+ <cd:parameter name="sx">
+ <cd:constant type="cd:number" default="1"/>
+ </cd:parameter>
+ <cd:parameter name="sy">
+ <cd:constant type="cd:number" default="1"/>
+ </cd:parameter>
+ <cd:parameter name="breite">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="hoehe">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="hoffset">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="voffset">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="offset">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="linkeroffset">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="rechterabstand">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="obenoffset">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="untenoffset">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="mp">
+ <cd:constant type="cd:name" default=""/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placelegend">
+ <cd:sequence>
+ <cd:string value="platzierelegende"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplegend">
+ <cd:sequence>
+ <cd:string value="stellelegendeein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="abstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="zwischen">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="breite">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="hoehe">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="platz">
+ <cd:constant type="rechts"/>
+ <cd:constant type="unten"/>
+ </cd:parameter>
+ <cd:parameter name="fliesstext">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupstrut" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="setupstrut"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="ja" default="yes"/>
<cd:constant type="nein"/>
<cd:constant type="kap"/>
<cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="settextvariable">
- <cd:sequence>
- <cd:string value="settextvariable"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placetextvariable">
- <cd:sequence>
- <cd:string value="placetextvariable"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="textvariable">
- <cd:sequence>
- <cd:string value="textvariable"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definerawfont">
- <cd:sequence>
- <cd:string value="definerawfont"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stellezeilenabstandein"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="switchtorawfont">
- <cd:sequence>
- <cd:string value="switchtorawfont"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definetextposition">
- <cd:sequence>
- <cd:string value="definetextposition"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stellepositionierenein"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptextposition">
- <cd:sequence>
- <cd:string value="setuptextposition"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="stellepositionierenein"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="positiontext">
- <cd:sequence>
- <cd:string value="positiontext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupstrut" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="setupstrut"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="ja" default="yes"/>
- <cd:constant type="nein"/>
- <cd:constant type="kap"/>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usetypescriptfile" file="type-ini.tex">
+ <cd:sequence>
+ <cd:string value="usetypescriptfile"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usetypescript" file="type-ini.tex">
+ <cd:sequence>
+ <cd:string value="usetypescript"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definetypeface" file="type-ini.tex">
+ <cd:sequence>
+ <cd:string value="definetypeface"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="rm"/>
+ <cd:constant type="ss"/>
+ <cd:constant type="tt"/>
+ <cd:constant type="mm"/>
+ <cd:constant type="hw"/>
+ <cd:constant type="cg"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="4">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="5" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="6" optional="yes">
+ <cd:parameter name="features">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="rscale">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="encoding">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="text">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefontfeature" file="type-ini.tex">
+ <cd:sequence>
+ <cd:string value="definefontfeature"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="no">
+ <cd:parameter name="compose">
+ <cd:constant type="nein" default="yes"/>
+ <cd:constant type="ja"/>
+ </cd:parameter>
+ <cd:parameter name="mode">
+ <cd:constant type="node"/>
+ <cd:constant type="base" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="tlig">
+ <cd:constant type="nein" default="yes"/>
+ <cd:constant type="ja"/>
+ </cd:parameter>
+ <cd:parameter name="trep">
+ <cd:constant type="nein" default="yes"/>
+ <cd:constant type="ja"/>
+ </cd:parameter>
+ <cd:parameter name="script">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="language">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="..tag.."> <!-- can't use &gt; here, \showsetup gives an error -->
+ <cd:constant type="nein" default="yes"/>
+ <cd:constant type="ja"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefonthandling" file="hand-ini.mkii">
+ <cd:sequence>
+ <cd:string value="definefonthandling"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:name" list="yes"/>
+ </cd:keywords>
+ <cd:assignments n="3">
+ <cd:parameter name="typ">
+ <cd:constant type="haengend" default="yes"/>
+ <cd:constant type="hz"/>
+ <cd:constant type="spatiumausgleich"/>
+ <cd:constant type="tag"/>
+ </cd:parameter>
+ <cd:parameter name="rechts">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="links">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="faktor">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="min">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="max">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="schritt">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfonthandling" file="hand-ini.mkii">
+ <cd:sequence>
+ <cd:string value="setupfonthandling"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2">
+ <cd:inherit name="definefonthandling" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefontsynonym" file="font-ini.tex">
+ <cd:sequence>
+ <cd:string value="defineschriftsynonym"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes">
+ <cd:parameter name="encoding">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="features">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="handling">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="mapping">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfontsynonym" file="font-ini.tex">
+ <cd:sequence>
+ <cd:string value="setupfontsynonym"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2">
+ <cd:inherit name="defineschriftsynonym" n="3"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mapfontsize" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="mapfontsize"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definedfont" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="definedfont"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:inherit name="definiereschrift" n="2"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
</cd:interface>
-
diff --git a/Master/texmf-dist/tex/context/interface/cont-en.xml b/Master/texmf-dist/tex/context/interface/cont-en.xml
index e902887c4b9..e15d017a286 100644
--- a/Master/texmf-dist/tex/context/interface/cont-en.xml
+++ b/Master/texmf-dist/tex/context/interface/cont-en.xml
@@ -1,6 +1,4 @@
-<?xml version="1.0" standalone="yes"?>
-
-<!-- versions:
+<?xml version="1.0" encoding="UTF-8"?><!-- versions:
comment : user interface definitions of ConTeXt
@@ -10,10 +8,9 @@
2006.08.02 : define + resolve
-->
-
<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="en" version="2006.08.02">
-<cd:define name="align">
+ <cd:define name="align">
<cd:constant type="inner"/>
<cd:constant type="outer"/>
<cd:constant type="left"/>
@@ -25,9 +22,18 @@
<cd:constant type="normal"/>
<cd:constant type="no"/>
<cd:constant type="yes"/>
-</cd:define>
+ </cd:define>
+
+ <cd:define name="symalign">
+ <cd:constant type="left"/>
+ <cd:constant type="right"/>
+ <cd:constant type="flushleft"/>
+ <cd:constant type="flushright"/>
+ <cd:constant type="middle"/>
+ <cd:constant type="center"/>
+ </cd:define>
-<cd:define name="indenting">
+ <cd:define name="indenting">
<cd:constant type="never"/>
<cd:constant type="none"/>
<cd:constant type="not"/>
@@ -43,14 +49,14 @@
<cd:constant type="odd"/>
<cd:constant type="even"/>
<cd:constant type="cd:dimension"/>
-</cd:define>
+ </cd:define>
-<cd:define name="indentnext">
+ <cd:define name="indentnext">
<cd:constant type="yes"/>
<cd:constant type="no"/>
-</cd:define>
+ </cd:define>
-<cd:define name="style">
+ <cd:define name="style">
<cd:constant type="normal"/>
<cd:constant type="bold"/>
<cd:constant type="slanted"/>
@@ -59,9 +65,9 @@
<cd:constant type="cap"/>
<cd:constant type="small..."/>
<cd:constant type="cd:command"/>
-</cd:define>
+ </cd:define>
-<cd:define name="language">
+ <cd:define name="language">
<cd:constant type="nl"/>
<cd:constant type="fr"/>
<cd:constant type="en"/>
@@ -70,9961 +76,10164 @@
<cd:constant type="es"/>
<cd:constant type="cz"/>
<cd:constant type=".."/>
-</cd:define>
+ </cd:define>
-<cd:define name="texts">
+ <cd:define name="texts">
<cd:constant type="cd:text"/>
<cd:constant type="cd:section"/>
<cd:constant type="date"/>
<cd:constant type="cd:mark"/>
<cd:constant type="pagenumber"/>
-</cd:define>
+ </cd:define>
-<cd:define name="layout-h">
+ <cd:define name="layout-h">
<cd:constant type="text" default="yes"/>
<cd:constant type="margin"/>
<cd:constant type="edge"/>
-</cd:define>
+ </cd:define>
-<cd:define name="layout-v">
+ <cd:define name="layout-v">
<cd:constant type="top"/>
<cd:constant type="header"/>
<cd:constant type="text" default="yes"/>
<cd:constant type="footer"/>
<cd:constant type="bottom"/>
-</cd:define>
+ </cd:define>
-<cd:command name="installlanguage" file="lang-ini.tex">
- <cd:sequence>
- <cd:string value="installlanguage"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="spacing">
- <cd:constant type="packed"/>
- <cd:constant type="broad"/>
- </cd:parameter>
- <cd:parameter name="lefthyphenmin">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="righthyphenmin">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="state">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="leftsentence">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="rightsentence">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="leftsubsentence">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="rightsubsentence">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="leftquote">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="rightquote">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="leftquotation">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="rightquotation">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="default">
+ <cd:define name="bodyfont">
+ <cd:constant type="5pt"/>
+ <cd:constant type="..."/>
+ <cd:constant type="12pt"/>
+ <cd:constant type="small"/>
+ <cd:constant type="big"/>
+ </cd:define>
+
+ <cd:command name="installlanguage" file="lang-ini.tex" category="language">
+ <cd:sequence>
+ <cd:string value="installlanguage"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuplanguage" file="lang-ini.tex">
- <cd:sequence>
- <cd:string value="setuplanguage"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:resolve name="language"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="installlanguage"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="language">
- <cd:sequence>
- <cd:string value="language"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:resolve name="language"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="mainlanguage" file="lang-ini.tex">
- <cd:sequence>
- <cd:string value="mainlanguage"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:resolve name="language"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="translate" file="lang-lab.tex">
- <cd:sequence>
- <cd:string value="translate"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="cd:name">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="useencoding" file="enco-ini.tex">
- <cd:sequence>
- <cd:string value="useencoding"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="usespecials" file="spec-ini.tex">
- <cd:sequence>
- <cd:string value="usespecials"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="reset"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineoutput" file="spec-ini.tex">
- <cd:sequence>
- <cd:string value="defineoutput"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupoutput" file="spec-ini.tex">
- <cd:sequence>
- <cd:string value="setupoutput"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definebodyfontenvironment" file="font-ini.tex">
- <cd:sequence>
- <cd:string value="definebodyfontenvironment"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="default"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="text">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="script">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="scriptscript">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="x">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="xx">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="small">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="big">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupbodyfontenvironment" file="font-ini.tex">
- <cd:sequence>
- <cd:string value="setupbodyfontenvironment"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:inherit name="setupbodyfont"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="setupbodyfont"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showbodyfontenvironment">
- <cd:sequence>
- <cd:string value="showbodyfontenvironment"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:inherit name="setupbodyfont"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definebodyfont" file="font-ini.tex">
- <cd:sequence>
- <cd:string value="definebodyfont"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="default"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="rm"/>
- <cd:constant type="ss"/>
- <cd:constant type="tt"/>
- <cd:constant type="mm"/>
- <cd:constant type="hw"/>
- <cd:constant type="cg"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="tf">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="bf">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="sl">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="it">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="bs">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="bi">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="sc">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="ex">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="mi">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="sy">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="ma">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="mb">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="mc">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showbodyfont">
- <cd:sequence>
- <cd:string value="showbodyfont"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:inherit name="setupbodyfont"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupbodyfont">
- <cd:sequence>
- <cd:string value="setupbodyfont"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- <cd:constant type="serif"/>
- <cd:constant type="regular"/>
- <cd:constant type="roman"/>
- <cd:constant type="sans"/>
- <cd:constant type="support"/>
- <cd:constant type="sansserif"/>
- <cd:constant type="mono"/>
- <cd:constant type="type"/>
- <cd:constant type="teletype"/>
- <cd:constant type="handwritten"/>
- <cd:constant type="calligraphic"/>
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="switchtobodyfont" file="font-ini.tex">
- <cd:sequence>
- <cd:string value="switchtobodyfont"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="small"/>
- <cd:constant type="big"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definefont" file="font-ini.tex">
- <cd:sequence>
- <cd:string value="definefont"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:file"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupcolor" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="setupcolor"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupcolors" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="setupcolors"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="state">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- <cd:constant type="global"/>
- <cd:constant type="local"/>
- </cd:parameter>
- <cd:parameter name="conversion">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- <cd:constant type="always"/>
- </cd:parameter>
- <cd:parameter name="reduction">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="rgb">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="cmyk">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="mpcmyk">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="mpspot">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="textcolor">
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="spacing">
+ <cd:constant type="packed" default="yes"/>
+ <cd:constant type="broad"/>
+ </cd:parameter>
+ <cd:parameter name="lefthyphenmin">
+ <cd:constant type="cd:number" default="2"/>
+ </cd:parameter>
+ <cd:parameter name="righthyphenmin">
+ <cd:constant type="cd:number" default="2"/>
+ </cd:parameter>
+ <cd:parameter name="state">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="leftsentence">
+ <cd:constant type="cd:command" default="---"/>
+ </cd:parameter>
+ <cd:parameter name="rightsentence">
+ <cd:constant type="cd:command" default="---"/>
+ </cd:parameter>
+ <cd:parameter name="leftsubsentence">
+ <cd:constant type="cd:command" default="---"/>
+ </cd:parameter>
+ <cd:parameter name="rightsubsentence">
+ <cd:constant type="cd:command" default="---"/>
+ </cd:parameter>
+ <cd:parameter name="leftquote">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="rightquote">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="leftquotation">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="rightquotation">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="leftspeech">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="middlespeech">
+ <cd:constant type="cd:command" default=""/>
+ </cd:parameter>
+ <cd:parameter name="rightspeech">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="limittext">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="date">
+ <cd:constant type="cd:text"/> <!-- TODO -->
+ </cd:parameter>
+ <cd:parameter name="compoundhyphen">
+ <cd:constant type="cd:command" default="\compoundhyphen"/>
+ </cd:parameter>
+ <cd:parameter name="leftcompoundhyphen">
+ <cd:constant type="cd:command" default="\compoundhyphen"/>
+ </cd:parameter>
+ <cd:parameter name="rightcompoundhyphen">
+ <cd:constant type="cd:command" default=""/>
+ </cd:parameter>
+ <cd:parameter name="default">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplanguage" file="lang-ini.tex" category="language">
+ <cd:sequence>
+ <cd:string value="setuplanguage"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:resolve name="language"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="installlanguage" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="language" file="lang-ini.tex" category="language">
+ <cd:sequence>
+ <cd:string value="language"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:resolve name="language"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mainlanguage" file="lang-ini.tex" category="language">
+ <cd:sequence>
+ <cd:string value="mainlanguage"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:resolve name="language"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="translate" file="lang-lab.tex" category="language">
+ <cd:sequence>
+ <cd:string value="translate"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="cd:name">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useencoding" file="enco-ini.tex" category="encoding"> <!-- engine="pdftex" -->
+ <cd:sequence>
+ <cd:string value="useencoding"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="split">
- <cd:constant type="c"/>
- <cd:constant type="m"/>
- <cd:constant type="y"/>
- <cd:constant type="k"/>
- <cd:constant type="p"/>
- <cd:constant type="s"/>
- <cd:constant type="no"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usespecials" file="spec-ini.tex">
+ <cd:sequence>
+ <cd:string value="usespecials"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="reset"/>
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="criterium">
- <cd:constant type="all"/>
- <cd:constant type="none"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definecolor" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="definecolor"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="r">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="g">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="b">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="c">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="m">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="y">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="k">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="s">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="h">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="t">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="a">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="p">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="e">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="color" type="environment" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="color"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="color" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="color"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="graycolor" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="graycolor"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showcolor">
- <cd:sequence>
- <cd:string value="showcolor"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definepalet" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="definepalet"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="cd:name">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuppalet" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="setuppalet"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definecolorgroup" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="definecolorgroup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="rgb" default="yes"/>
- <cd:constant type="cmyk"/>
- <cd:constant type="gray"/>
- <cd:constant type="s"/>
- </cd:keywords>
- <cd:triplet list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showpalet">
- <cd:sequence>
- <cd:string value="showpalet"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="horizontal"/>
- <cd:constant type="vertical"/>
- <cd:constant type="name"/>
- <cd:constant type="value"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showcolorgroup">
- <cd:sequence>
- <cd:string value="showcolorgroup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="horizontal"/>
- <cd:constant type="vertical"/>
- <cd:constant type="name"/>
- <cd:constant type="value"/>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="comparepalet">
- <cd:sequence>
- <cd:string value="comparepalet"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="comparecolorgroup">
- <cd:sequence>
- <cd:string value="comparecolorgroup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showmakeup" file="supp-vis.tex">
- <cd:sequence>
- <cd:string value="showmakeup"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="definetype" file="core-ver.tex">
- <cd:sequence>
- <cd:string value="definetype"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="setuptype"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptype" file="core-ver.tex">
- <cd:sequence>
- <cd:string value="setuptype"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="space">
- <cd:constant type="on"/>
- <cd:constant type="off"/>
- </cd:parameter>
- <cd:parameter name="option">
- <cd:constant type="slanted"/>
- <cd:constant type="normal"/>
- <cd:constant type="none"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="color">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="type" file="verb-ini.tex">
- <cd:sequence>
- <cd:string value="type"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="typ" file="core-ver.tex">
- <cd:sequence>
- <cd:string value="typ"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="tex" file="core-ver.tex">
- <cd:sequence>
- <cd:string value="tex"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="arg" file="core-ver.tex">
- <cd:sequence>
- <cd:string value="arg"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definetyping" file="core-ver.tex">
- <cd:sequence>
- <cd:string value="definetyping"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="file"/>
- <cd:constant type="typing"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="setuptyping"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptyping" file="core-ver.tex">
- <cd:sequence>
- <cd:string value="setuptyping"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="file"/>
- <cd:constant type="typing"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="space">
- <cd:constant type="on"/>
- <cd:constant type="off"/>
- </cd:parameter>
- <cd:parameter name="page">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="option">
- <cd:constant type="slanted"/>
- <cd:constant type="normal"/>
- <cd:constant type="commands"/>
- <cd:constant type="color"/>
- <cd:constant type="none"/>
- </cd:parameter>
- <cd:parameter name="text">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="icommand">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="vcommand">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="ccommand">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="before">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="after">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="margin">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="standard"/>
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="evenmargin">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="oddmargin">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="blank">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="small"/>
- <cd:constant type="medium"/>
- <cd:constant type="big"/>
- <cd:constant type="standard"/>
- <cd:constant type="halfline"/>
- <cd:constant type="line"/>
- </cd:parameter>
- <cd:parameter name="escape">
- <cd:constant type="cd:character"/>
- </cd:parameter>
- <cd:parameter name="space">
- <cd:constant type="on"/>
- <cd:constant type="off"/>
- </cd:parameter>
- <cd:parameter name="tab">
- <cd:constant type="cd:number"/>
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="page">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="indentnext">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="color">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="palet">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="lines">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- <cd:constant type="hyphenated"/>
- </cd:parameter>
- <cd:parameter name="empty">
- <cd:constant type="yes"/>
- <cd:constant type="all"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="numbering">
- <cd:constant type="line"/>
- <cd:constant type="file"/>
- <cd:constant type="no"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="typing" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="typing"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="typefile" file="verb-ini.tex">
- <cd:sequence>
- <cd:string value="typefile"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfootnotes" file="core-not.tex">
- <cd:sequence>
- <cd:string value="setupfootnotes"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="conversion">
- <cd:constant type="numbers"/>
- <cd:constant type="characters"/>
- <cd:constant type="Characters"/>
- <cd:constant type="romannumerals"/>
- <cd:constant type="Romannumerals"/>
- </cd:parameter>
- <cd:parameter name="way">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="location">
- <cd:constant type="page"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="columns"/>
- <cd:constant type="firstcolumn"/>
- <cd:constant type="lastcolumn"/>
- <cd:constant type="high"/>
- <cd:constant type="none"/>
- </cd:parameter>
- <cd:parameter name="rule">
- <cd:constant type="on"/>
- <cd:constant type="off"/>
- </cd:parameter>
- <cd:parameter name="before">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="after">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="width">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="height">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="bodyfont">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="small"/>
- <cd:constant type="big"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="columndistance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="margindistance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="numbercommand">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="textcommand">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="split">
- <cd:constant type="tolerant"/>
- <cd:constant type="strict"/>
- <cd:constant type="verystrict"/>
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="textstyle">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="textcolor">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="interaction">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="factor">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:inherit name="framed"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfootnotedefinition" file="core-not.tex">
- <cd:sequence>
- <cd:string value="setupfootnotedefinition"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:inherit name="definedescription"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="footnote" file="core-not.tex">
- <cd:sequence>
- <cd:string value="footnote"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="footnotetext" file="core-not.tex">
- <cd:sequence>
- <cd:string value="footnotetext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="note" file="core-not.tex">
- <cd:sequence>
- <cd:string value="note"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference interactive="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="localfootnotes" type="environment">
- <cd:sequence>
- <cd:string value="localfootnotes"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="placelocalfootnotes" file="core-not.tex">
- <cd:sequence>
- <cd:string value="placelocalfootnotes"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="setupfootnotes"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placefootnotes" file="core-not.tex">
- <cd:sequence>
- <cd:string value="placefootnotes"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="setupfootnotes"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupunderbar" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="setupunderbar"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="alternative">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- </cd:parameter>
- <cd:parameter name="rulethickness">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="bottomoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="topoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rulecolor">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineoutput" file="spec-ini.tex">
+ <cd:sequence>
+ <cd:string value="defineoutput"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="underbar" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="underbar"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="underbars" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="underbars"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="overbar" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="overbar"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="overbars" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="overbars"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="overstrike" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="overstrike"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="overstrikes" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="overstrikes"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="romannumerals" file="core-con.tex">
- <cd:sequence>
- <cd:string value="romannumerals"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="Romannumerals" file="core-con.tex">
- <cd:sequence>
- <cd:string value="Romannumerals"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="numbers" file="core-con.tex">
- <cd:sequence>
- <cd:string value="numbers"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="character" file="core-con.tex">
- <cd:sequence>
- <cd:string value="character"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="Character" file="core-con.tex">
- <cd:sequence>
- <cd:string value="Character"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="characters" file="core-con.tex">
- <cd:sequence>
- <cd:string value="characters"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="Characters" file="core-con.tex">
- <cd:sequence>
- <cd:string value="Characters"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="mediaeval" file="core-con.tex">
- <cd:sequence>
- <cd:string value="mediaeval"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="month" file="core-con.tex">
- <cd:sequence>
- <cd:string value="month"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="MONTH" file="core-con.tex">
- <cd:sequence>
- <cd:string value="MONTH"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="weekday" file="core-con.tex">
- <cd:sequence>
- <cd:string value="weekday"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="WEEKDAY" file="core-con.tex">
- <cd:sequence>
- <cd:string value="WEEKDAY"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupcapitals" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="setupcapitals"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="title">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="sc">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="cap" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="cap"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="nocap">
- <cd:sequence>
- <cd:string value="nocap"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="CAP">
- <cd:sequence>
- <cd:string value="CAP"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="Cap">
- <cd:sequence>
- <cd:string value="Cap"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="Caps">
- <cd:sequence>
- <cd:string value="Caps"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="WORD" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="WORD"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="WORDS" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="WORDS"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="Word" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="Word"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="Words" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="Words"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="stretched" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="stretched"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definesymbol" file="symb-ini.tex">
- <cd:sequence>
- <cd:string value="definesymbol"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definefiguresymbol" file="symb-ini.tex">
- <cd:sequence>
- <cd:string value="definefiguresymbol"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="externalfigure"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="symbol" file="symb-ini.tex">
- <cd:sequence>
- <cd:string value="symbol"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="symbolset" type="environment">
- <cd:sequence>
- <cd:string value="symbolset"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupsymbolset" file="symb-ini.tex">
- <cd:sequence>
- <cd:string value="setupsymbolset"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="usesymbols" file="symb-ini.tex">
- <cd:sequence>
- <cd:string value="usesymbols"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showsymbolset">
- <cd:sequence>
- <cd:string value="showsymbolset"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineconversion" file="core-con.tex">
- <cd:sequence>
- <cd:string value="defineconversion"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:command"/>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="convertnumber" file="core-con.tex">
- <cd:sequence>
- <cd:string value="convertnumber"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupheadtext" file="lang-lab.tex">
- <cd:sequence>
- <cd:string value="setupheadtext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:resolve name="language"/>
- </cd:keywords>
- <cd:assignments>
- <cd:parameter name="cd:name">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuplabeltext" file="lang-lab.tex">
- <cd:sequence>
- <cd:string value="setuplabeltext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:resolve name="language"/>
- </cd:keywords>
- <cd:assignments>
- <cd:parameter name="cd:name">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="headtext" file="lang-lab.tex">
- <cd:sequence>
- <cd:string value="headtext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="labeltext">
- <cd:sequence>
- <cd:string value="labeltext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupmarginrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="setupmarginrules"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments>
- <cd:parameter name="level">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="rulethickness">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="marginrule" type="environment">
- <cd:sequence>
- <cd:string value="marginrule"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="marginrule">
- <cd:sequence>
- <cd:string value="marginrule"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuplinewidth" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="setuplinewidth"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupframed" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="setupframed"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="height">
- <cd:constant type="fit"/>
- <cd:constant type="broad"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="width">
- <cd:constant type="fit"/>
- <cd:constant type="broad"/>
- <cd:constant type="fixed"/>
- <cd:constant type="local"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="autowidth">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- <cd:constant type="force"/>
- </cd:parameter>
- <cd:parameter name="offset">
- <cd:constant type="none"/>
- <cd:constant type="overlay"/>
- <cd:constant type="default"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="location">
- <cd:constant type="depth"/>
- <cd:constant type="hanging"/>
- <cd:constant type="high"/>
- <cd:constant type="lohi"/>
- <cd:constant type="low"/>
- <cd:constant type="top"/>
- <cd:constant type="middle"/>
- <cd:constant type="bottom"/>
- <cd:constant type="keep"/>
- </cd:parameter>
- <cd:parameter name="option">
- <cd:constant type="none"/>
- <cd:constant type="empty"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- <cd:constant type="global"/>
- <cd:constant type="local"/>
- </cd:parameter>
- <cd:parameter name="align">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="bottom">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="top">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="frame">
- <cd:constant type="on"/>
- <cd:constant type="off"/>
- <cd:constant type="none"/>
- <cd:constant type="overlay"/>
- </cd:parameter>
- <cd:parameter name="topframe">
- <cd:constant type="on"/>
- <cd:constant type="off"/>
- </cd:parameter>
- <cd:parameter name="bottomframe">
- <cd:constant type="on"/>
- <cd:constant type="off"/>
- </cd:parameter>
- <cd:parameter name="leftframe">
- <cd:constant type="on"/>
- <cd:constant type="off"/>
- </cd:parameter>
- <cd:parameter name="rightframe">
- <cd:constant type="on"/>
- <cd:constant type="off"/>
- </cd:parameter>
- <cd:parameter name="frameoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="framedepth">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="framecorner">
- <cd:constant type="round"/>
- <cd:constant type="rectangular"/>
- </cd:parameter>
- <cd:parameter name="frameradius">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="framecolor">
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="background">
- <cd:constant type="screen"/>
- <cd:constant type="color"/>
- <cd:constant type="none"/>
- <cd:constant type="foreground"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupoutput" file="spec-ini.tex">
+ <cd:sequence>
+ <cd:string value="setupoutput"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="backgroundscreen">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="backgroundcolor">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definebodyfontenvironment" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="definebodyfontenvironment"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes"> <!-- it's possible to use 1+2+3, 2+3, what about 1+2? -->
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="backgroundoffset">
- <cd:constant type="frame"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="backgrounddepth">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="backgroundcorner">
- <cd:constant type="round"/>
- <cd:constant type="rectangular"/>
- </cd:parameter>
- <cd:parameter name="backgroundradius">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="depth">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="corner">
- <cd:constant type="round"/>
- <cd:constant type="rectangular"/>
- </cd:parameter>
- <cd:parameter name="radius">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="empty">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="foregroundcolor">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="foregroundstyle">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="rulethickness">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="framed" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="framed"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="setupframed"/>
- </cd:assignments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="inframed" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="inframed"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="setupframed"/>
- </cd:assignments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="thinrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="thinrules"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes">
- <cd:inherit name="setupthinrules"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupthinrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="setupthinrules"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments>
- <cd:parameter name="interlinespace">
- <cd:constant type="small"/>
- <cd:constant type="medium"/>
- <cd:constant type="big"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="before">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="inbetween">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="after">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="color">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="backgroundcolor">
+ </cd:keywords>
+ <cd:keywords n="2" optional="no"> <!-- have to force no, otherwise \showsetup is wrong ! -->
+ <cd:constant type="5pt"/> <!-- TODO: maybe <cd:resolve name="bodyfont"/> -->
+ <cd:constant type="..."/>
+ <cd:constant type="12pt"/>
+ <cd:constant type="default"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:parameter name="text">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="script">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="scriptscript">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="x">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="xx">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="a">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="b">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="c">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="d">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="small">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="big">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="interlinespace">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="em">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbodyfontenvironment" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="setupbodyfontenvironment"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes"> <!-- same as definebodyfontenvironment; you can define the whole commant to inherit, not only parameters-->
+ <cd:inherit name="definebodyfontenvironment" n="1"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="no">
+ <cd:inherit name="definebodyfontenvironment" n="2" optional="no"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="definebodyfontenvironment" n="3"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showbodyfontenvironment" file="font-run.tex" category="fonts"> <!-- and debug -->
+ <cd:sequence>
+ <cd:string value="showbodyfontenvironment"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:inherit name="setupbodyfont" n="1"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definebodyfont" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="definebodyfont"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes"> <!-- <cd:constant type="default"/> -->
+ <cd:resolve name="bodyfont"/> <!-- TODO: check this -->
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="rm" default="yes"/>
+ <cd:constant type="ss"/>
+ <cd:constant type="tt"/>
+ <cd:constant type="hw"/>
+ <cd:constant type="cg"/>
+ <cd:constant type="mm"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:parameter name="tf">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="bf">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="sl">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="it">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="bs">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="bi">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="sc">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="mr">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="ex">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="mi">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="sy">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="ma">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="mb">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="mc">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="md">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definebodyfontDEF" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="definebodyfont"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="height">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="depth">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="alternative">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- <cd:constant type="d"/>
- </cd:parameter>
- <cd:parameter name="rulethickness">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="color">
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:inherit name="setupbodyfont" n="2"/>
+ </cd:keywords>
+ <cd:keywords n="1">
+ <cd:inherit name="setupbodyfont" n="3"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definebodyfontREF" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="definebodyfont"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:inherit name="setupbodyfont" n="1"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:inherit name="setupbodyfont" n="2"/>
+ </cd:keywords>
+ <cd:keywords n="3">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="background">
- <cd:constant type="color"/>
- </cd:parameter>
- <cd:parameter name="backgroundcolor">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+
+ <cd:command name="showbodyfont" file="font-run.tex" category="fonts"> <!-- visual debugging -->
+ <cd:sequence>
+ <cd:string value="showbodyfont"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:inherit name="setupbodyfont" n="1"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbodyfont" file="font-run.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="setupbodyfont"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes"> <!-- TODO: many missing, maybe also <cd:resolve name="bodyfont"/> -->
<cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="hairline" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="hairline"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="thinrule" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="thinrule"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="defineframedtext" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="defineframedtext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="setupframedtexts"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineframed" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="defineframed"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="setupframedtexts"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupframedtexts" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="setupframedtexts"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="bodyfont">
+ <cd:constant type="serif"/>
+ <cd:constant type="regular"/>
+ <cd:constant type="roman"/>
+ <cd:constant type="sans"/>
+ <cd:constant type="support"/>
+ <cd:constant type="sansserif"/>
+ <cd:constant type="mono"/>
+ <cd:constant type="type"/>
+ <cd:constant type="teletype"/>
+ <cd:constant type="handwritten"/>
+ <cd:constant type="calligraphic"/>
<cd:constant type="5pt"/>
<cd:constant type="..."/>
<cd:constant type="12pt"/>
- <cd:constant type="small"/>
- <cd:constant type="big"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="left">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="right">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="before">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="after">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="inner">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="linecorrection">
- <cd:constant type="on"/>
- <cd:constant type="off"/>
- </cd:parameter>
- <cd:parameter name="depthcorrection">
- <cd:constant type="on"/>
- <cd:constant type="off"/>
- </cd:parameter>
- <cd:parameter name="margin">
- <cd:constant type="standard"/>
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="location">
- <cd:constant type="left"/>
- <cd:constant type="right"/>
- <cd:constant type="middle"/>
- <cd:constant type="none"/>
- </cd:parameter>
- <cd:parameter name="indenting">
- <cd:resolve name="indenting"/>
- </cd:parameter>
- <cd:inherit name="setupframed"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="framedtext" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="framedtext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="left"/>
- <cd:constant type="right"/>
- <cd:constant type="middle"/>
- <cd:constant type="none"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="setupframedtexts"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="framedtext" generated="yes">
- <cd:sequence>
- <cd:variable value="framedtext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="setupframedtexts"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="background" type="environment">
- <cd:sequence>
- <cd:string value="background"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="background">
- <cd:sequence>
- <cd:string value="background"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupbackground" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="setupbackground"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="leftoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rightoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="topoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="bottomoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="before">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="after">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="state">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:inherit name="setupframed"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="fillinrules">
- <cd:sequence>
- <cd:string value="fillinrules"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="setupfillinrules"/>
- </cd:assignments>
- <cd:content/>
- <cd:content optional="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="fillintext">
- <cd:sequence>
- <cd:string value="fillintext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="setupfillinrules"/>
- </cd:assignments>
- <cd:content/>
- <cd:content optional="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfillinrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="setupfillinrules"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="width">
- <cd:constant type="fit"/>
- <cd:constant type="broad"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="before">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="after">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="interlinespace">
- <cd:constant type="small"/>
- <cd:constant type="medium"/>
- <cd:constant type="big"/>
- </cd:parameter>
- <cd:parameter name="separator">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="fillinline">
- <cd:sequence>
- <cd:string value="fillinline"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="setupfillinlines"/>
- </cd:assignments>
- <cd:nothing/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfillinlines" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="setupfillinlines"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="width">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="margin">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="before">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="after">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptextrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="setuptextrules"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="location">
- <cd:constant type="left"/>
- <cd:constant type="inmargin"/>
- </cd:parameter>
- <cd:parameter name="before">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="after">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="inbetween">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="width">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="bodyfont">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="switchtobodyfont" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="switchtobodyfont"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ <cd:constant type="serif"/>
+ <cd:constant type="regular"/>
+ <cd:constant type="roman"/>
+ <cd:constant type="sans"/>
+ <cd:constant type="support"/>
+ <cd:constant type="sansserif"/>
+ <cd:constant type="mono"/>
+ <cd:constant type="type"/>
+ <cd:constant type="teletype"/>
+ <cd:constant type="handwritten"/>
+ <cd:constant type="calligraphic"/>
<cd:constant type="5pt"/>
<cd:constant type="..."/>
<cd:constant type="12pt"/>
<cd:constant type="small"/>
<cd:constant type="big"/>
- </cd:parameter>
- <cd:parameter name="color">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefont" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="definefont"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="rulecolor">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="textrule" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="textrule"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="top"/>
- <cd:constant type="bottom"/>
- </cd:keywords>
- <cd:content optional="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="textrule" type="environment" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="textrule"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="top"/>
- <cd:constant type="bottom"/>
- </cd:keywords>
- <cd:content optional="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="blackrule" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="blackrule"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="setupblackrules"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="blackrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="blackrules"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:inherit name="setupblackrules"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupblackrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="setupblackrules"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="width">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="height">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="depth">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="alternative">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineoverlay" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="defineoverlay"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:command"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="usemodule">
- <cd:sequence>
- <cd:string value="usemodule"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="reset" file="core-num.tex">
- <cd:sequence>
- <cd:string value="reset"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="donttest">
- <cd:sequence>
- <cd:string value="donttest"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="localenvironment" type="environment">
- <cd:sequence>
- <cd:string value="localenvironment"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupsystem" file="core-sys.tex">
- <cd:sequence>
- <cd:string value="setupsystem"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="resolution">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="file">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="directory">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="random">
- <cd:constant type="normal"/>
- <cd:constant type="small"/>
- <cd:constant type="medium"/>
- <cd:constant type="big"/>
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="usedirectory">
- <cd:sequence>
- <cd:string value="usedirectory"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- <cd:constant type="reset"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="low" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="low"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="high" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="high"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="lohi" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="lohi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="low"/>
- </cd:keywords>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showframe">
- <cd:sequence>
- <cd:string value="showframe"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- <cd:constant type="margin"/>
- <cd:constant type="edge"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="leftaligned" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="leftaligned"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="rightaligned" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="rightaligned"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="midaligned" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="midaligned"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="wordright" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="wordright"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="inmargin" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="inmargin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="low"/>
- </cd:keywords>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="inothermargin" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="inothermargin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="low"/>
- </cd:keywords>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="inleft">
- <cd:sequence>
- <cd:string value="inleft"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="low"/>
- </cd:keywords>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="inright">
- <cd:sequence>
- <cd:string value="inright"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="low"/>
- </cd:keywords>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="ininner">
- <cd:sequence>
- <cd:string value="ininner"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="low"/>
- </cd:keywords>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="inouter">
- <cd:sequence>
- <cd:string value="inouter"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="low"/>
- </cd:keywords>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="column">
- <cd:sequence>
- <cd:string value="column"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="showstruts" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="showstruts"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="showsetups">
- <cd:sequence>
- <cd:string value="showsetups"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="showlayout">
- <cd:sequence>
- <cd:string value="showlayout"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="margintext" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="margintext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="low"/>
- </cd:keywords>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupmarginblocks" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="setupmarginblocks"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="location">
- <cd:constant type="inmargin"/>
- <cd:constant type="left"/>
- <cd:constant type="middle"/>
- <cd:constant type="right"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="width">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="align">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="top">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="inbetween">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="bottom">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="left">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="right">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="before">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="after">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="marginblock" type="environment">
- <cd:sequence>
- <cd:string value="marginblock"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="part" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="part"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="title" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="title"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="chapter" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="chapter"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="section" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="section"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="subsection" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subsection"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="subsubsection" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subsubsection"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="subject" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subject"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="subsubject" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subsubject"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="subsubsubject" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subsubsubject"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="appendix" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="appendix"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="in" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="in"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content interactive="yes"/>
- <cd:content interactive="yes"/>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="at">
- <cd:sequence>
- <cd:string value="at"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content interactive="yes"/>
- <cd:content interactive="yes"/>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="about">
- <cd:sequence>
- <cd:string value="about"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content interactive="yes"/>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="somewhere" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="somewhere"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="atpage" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="atpage"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="ref" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="ref"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="t"/>
- <cd:constant type="p"/>
- <cd:constant type="r"/>
- <cd:constant type="s"/>
- <cd:constant type="e"/>
- </cd:keywords>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="textreference" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="textreference"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="pagereference" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="pagereference"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="reference" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="reference"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="usereferences" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="usereferences"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definereference" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="definereference"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:reference list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definereferenceformat" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="definereferenceformat"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="left">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="right">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="text">
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="label">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcolor" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="setupcolor"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="hl">
- <cd:sequence>
- <cd:string value="hl"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="vl">
- <cd:sequence>
- <cd:string value="vl"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="godown" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="godown"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="whitespace" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="whitespace"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="nowhitespace" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="nowhitespace"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="crlf" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="crlf"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="space" file="syst-pln.tex">
- <cd:sequence>
- <cd:string value="space"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="fixedspaces" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="fixedspaces"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="emptylines" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="emptylines"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="nospace" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="nospace"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="packed" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="packed"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupdescriptions" file="core-des.tex">
- <cd:sequence>
- <cd:string value="setupdescriptions"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="headstyle">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="color">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="width">
- <cd:constant type="fit"/>
- <cd:constant type="broad"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="sample">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="text">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="closesymbol">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="closecommand">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="titleleft">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcolors" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="setupcolors"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="state">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="global"/>
+ <cd:constant type="local"/>
+ </cd:parameter>
+ <cd:parameter name="conversion">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ <cd:constant type="always"/>
+ </cd:parameter>
+ <cd:parameter name="reduction">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="rgb">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="cmyk">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="mpcmyk">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="mpspot">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="factor">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="textcolor">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="split">
+ <cd:constant type="c"/>
+ <cd:constant type="m"/>
+ <cd:constant type="y"/>
+ <cd:constant type="k"/>
+ <cd:constant type="p"/>
+ <cd:constant type="s"/>
+ <cd:constant type="no"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="criterium">
+ <cd:constant type="all"/>
+ <cd:constant type="none"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definecolor" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="definecolor"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="r">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="g">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="b">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="c">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="m">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="y">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="k">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="s">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="h">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="t">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="a">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="p">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="e">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="color" type="environment" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="color"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="color" file="colo-ini.tex">
+ <cd:sequence>
+ <cd:string value="color"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="titleright">
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="graycolor" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="graycolor"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="titledistance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="titlestyle">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="titlecolor">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="align">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="margin">
- <cd:constant type="standard"/>
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="location">
- <cd:constant type="left"/>
- <cd:constant type="right"/>
- <cd:constant type="top"/>
- <cd:constant type="serried"/>
- <cd:constant type="inmargin"/>
- <cd:constant type="inleft"/>
- <cd:constant type="inright"/>
- <cd:constant type="hanging"/>
- </cd:parameter>
- <cd:parameter name="headcommand">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="hang">
- <cd:constant type="fit"/>
- <cd:constant type="broad"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showcolor" file="colo-run.tex" category="colors"> <!-- and debug -->
+ <cd:sequence>
+ <cd:string value="showcolor"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definepalet" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="definepalet"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="cd:name">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppalet" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="setuppalet"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definecolorgroup" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="definecolorgroup"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="rgb" default="yes"/>
+ <cd:constant type="cmyk"/>
+ <cd:constant type="gray"/>
+ <cd:constant type="s"/>
+ </cd:keywords>
+ <cd:triplet n="3" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showpalet" file="colo-run.tex" category="colors"> <!-- and debug -->
+ <cd:sequence>
+ <cd:string value="showpalet"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="horizontal"/>
+ <cd:constant type="vertical"/>
+ <cd:constant type="name"/>
+ <cd:constant type="value"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showcolorgroup" file="colo-run.tex" category="colors"> <!-- and debug-->
+ <cd:sequence>
+ <cd:string value="showcolorgroup"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="horizontal"/>
+ <cd:constant type="vertical"/>
+ <cd:constant type="name"/>
+ <cd:constant type="value"/>
<cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="before">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="inbetween">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="after">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="indentnext">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="indenting">
- <cd:resolve name="indenting"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupenumerations" file="core-des.tex">
- <cd:sequence>
- <cd:string value="setupenumerations"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="definedescription"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineenumeration" file="core-des.tex">
- <cd:sequence>
- <cd:string value="defineenumeration"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="setupenumerations"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="enumeration" generated="yes">
- <cd:sequence>
- <cd:variable value="enumeration"/>
- </cd:sequence>
- <cd:arguments>
- <cd:nothing interactive="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="enumeration" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="enumeration"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="definedescription" file="core-des.tex">
- <cd:sequence>
- <cd:string value="definedescription"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="setupdescriptions"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="description" generated="yes">
- <cd:sequence>
- <cd:variable value="description"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:nothing/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="description" type="environment" generated="yes">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="comparepalet" file="colo-run.tex" category="colors"> <!-- and debug? -->
+ <cd:sequence>
+ <cd:string value="comparepalet"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="comparecolorgroup" file="colo-run.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="comparecolorgroup"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showmakeup" file="supp-vis.tex" category="debug">
+ <cd:sequence>
+ <cd:string value="showmakeup"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="definetype" file="core-ver.tex" category="verbatim">
+ <cd:sequence>
+ <cd:string value="definetype"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="setuptype" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptype" file="core-ver.tex" category="verbatim"> <!-- TODO -->
+ <cd:sequence>
+ <cd:string value="setuptype"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="space">
+ <cd:constant type="on"/>
+ <cd:constant type="off" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="option">
+ <cd:constant type="slanted"/>
+ <cd:constant type="normal"/>
+ <cd:constant type="none"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:name" default=""/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="type" file="verb-ini.tex" category="verbatim">
+ <cd:sequence>
+ <cd:string value="type"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="typ" file="core-ver.tex" category="verbatim">
+ <cd:sequence>
+ <cd:string value="typ"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tex" file="core-ver.tex" category="verbatim">
+ <cd:sequence>
+ <cd:string value="tex"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <!-- cd:command name="arg" file="core-ver.tex"> command broken
<cd:sequence>
- <cd:variable value="description"/>
+ <cd:string value="arg"/>
</cd:sequence>
<cd:arguments>
<cd:content/>
</cd:arguments>
-</cd:command>
-
-<cd:command name="setupindentations" file="core-des.tex">
- <cd:sequence>
- <cd:string value="setupindentations"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="headstyle">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="width">
- <cd:constant type="fit"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="text">
+</cd:command -->
+
+ <cd:command name="definetyping" file="core-ver.tex" category="verbatim">
+ <cd:sequence>
+ <cd:string value="definetyping"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:inherit name="setuptyping" n="1"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="setuptyping" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptyping" file="core-ver.tex" category="verbatim">
+ <cd:sequence>
+ <cd:string value="setuptyping"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="file"/>
+ <cd:constant type="typing"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="space">
+ <cd:constant type="on"/>
+ <cd:constant type="off"/>
+ </cd:parameter>
+ <cd:parameter name="page">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="option">
+ <cd:constant type="slanted"/>
+ <cd:constant type="normal"/>
+ <cd:constant type="commands"/>
+ <cd:constant type="color"/>
+ <cd:constant type="none"/>
+ </cd:parameter>
+ <cd:parameter name="text">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="icommand">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="vcommand">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="ccommand">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command" default="\blank"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command" default="\blank"/>
+ </cd:parameter>
+ <cd:parameter name="margin">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="standard"/>
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="evenmargin">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="oddmargin">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="blank">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="small"/>
+ <cd:constant type="medium"/>
+ <cd:constant type="big"/>
+ <cd:constant type="standard"/>
+ <cd:constant type="halfline"/>
+ <cd:constant type="line"/>
+ </cd:parameter>
+ <cd:parameter name="escape">
+ <cd:constant type="cd:character"/>
+ </cd:parameter>
+ <cd:parameter name="space">
+ <cd:constant type="on"/>
+ <cd:constant type="off"/>
+ </cd:parameter>
+ <cd:parameter name="tab">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="page">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="indentnext">
+ <cd:resolve name="indentnext"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="palet">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="lines">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ <cd:constant type="hyphenated"/>
+ </cd:parameter>
+ <cd:parameter name="empty">
+ <cd:constant type="yes"/>
+ <cd:constant type="all"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="numbering">
+ <cd:constant type="line"/>
+ <cd:constant type="file"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="bodyfont">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="typing" type="environment" generated="yes" file="verb-ini.tex"
+ category="verbatim">
+ <cd:sequence>
+ <cd:variable value="typing"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="typefile" file="verb-ini.tex" category="verbatim">
+ <cd:sequence>
+ <cd:string value="typefile"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfootnotes" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="setupfootnotes"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="conversion">
+ <cd:constant type="numbers"/>
+ <cd:constant type="characters"/>
+ <cd:constant type="Characters"/>
+ <cd:constant type="romannumerals"/>
+ <cd:constant type="Romannumerals"/>
+ </cd:parameter>
+ <cd:parameter name="way">
+ <cd:constant type="bytext"/>
+ <cd:constant type="bycd:section"/>
+ </cd:parameter>
+ <cd:parameter name="location">
+ <cd:constant type="page"/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="columns"/>
+ <cd:constant type="firstcolumn"/>
+ <cd:constant type="lastcolumn"/>
+ <cd:constant type="high"/>
+ <cd:constant type="none"/>
+ </cd:parameter>
+ <cd:parameter name="rule">
+ <cd:constant type="on"/>
+ <cd:constant type="off"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="bodyfont">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="columndistance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="margindistance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="numbercommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="textcommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="split">
+ <cd:constant type="tolerant"/>
+ <cd:constant type="strict"/>
+ <cd:constant type="verystrict"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="textstyle">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="textcolor">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="interaction">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="factor">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:inherit name="setupframed" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfootnotedefinition" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="setupfootnotedefinition"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:inherit name="setupdescriptions" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="footnote" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="footnote"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="footnotetext" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="footnotetext"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="note" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="note"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" interactive="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="localfootnotes" type="environment" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="localfootnotes"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="placelocalfootnotes" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="placelocalfootnotes"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="setupfootnotes" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placefootnotes" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="placefootnotes"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="setupfootnotes" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupunderbar" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="setupunderbar"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="alternative">
+ <cd:constant type="a"/>
+ <cd:constant type="b"/>
+ <cd:constant type="c"/>
+ </cd:parameter>
+ <cd:parameter name="rulethickness">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="bottomoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="topoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rulecolor">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="underbar" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="underbar"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="underbars" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="underbars"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overbar" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="overbar"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overbars" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="overbars"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overstrike" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="overstrike"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overstrikes" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="overstrikes"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="romannumerals" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="romannumerals"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Romannumerals" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="Romannumerals"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="numbers" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="numbers"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="character" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="character"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Character" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="Character"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="characters" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="characters"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Characters" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="Characters"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mediaeval" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="mediaeval"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="month" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="month"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MONTH" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="MONTH"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="weekday" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="weekday"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="WEEKDAY" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="WEEKDAY"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcapitals" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="setupcapitals"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="title">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="sc">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="cap" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="cap"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nocap" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="nocap"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="CAP" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="CAP"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Cap" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="Cap"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Caps" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="Caps"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="WORD" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="WORD"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="WORDS" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="WORDS"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Word" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="Word"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Words" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="Words"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="stretched" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="stretched"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definesymbol" file="symb-ini.tex">
+ <cd:sequence>
+ <cd:string value="definesymbol"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="sample">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefiguresymbol" file="symb-ini.tex">
+ <cd:sequence>
+ <cd:string value="definefiguresymbol"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="before">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="after">
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="setupexternalfigures" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="symbol" file="symb-ini.tex">
+ <cd:sequence>
+ <cd:string value="symbol"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="symbolset" type="environment" file="symb-ini.tex" category="symbols">
+ <cd:sequence>
+ <cd:string value="symbolset"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsymbolset" file="symb-ini.tex" category="symbols">
+ <cd:sequence>
+ <cd:string value="setupsymbolset"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usesymbols" file="symb-ini.tex" category="symbols">
+ <cd:sequence>
+ <cd:string value="usesymbols"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showsymbolset" file="symb-run.tex" category="symbols"> <!-- and symbols -->
+ <cd:sequence>
+ <cd:string value="showsymbolset"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineconversion" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="defineconversion"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
<cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="separator">
<cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineindenting" file="core-des.tex">
- <cd:sequence>
- <cd:string value="defineindenting"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="setupindentations"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="indentation" generated="yes" file="core-spa.tex">
- <cd:sequence>
- <cd:variable value="indentation"/>
- </cd:sequence>
- <cd:arguments>
- <cd:nothing/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definelabel" file="core-des.tex">
- <cd:sequence>
- <cd:string value="definelabel"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="text">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="location">
- <cd:constant type="inmargin"/>
- <cd:constant type="intext"/>
- </cd:parameter>
- <cd:parameter name="way">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="blockway">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="headstyle">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="headcolor">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="before">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="after">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="labeling" generated="yes">
- <cd:sequence>
- <cd:variable value="labeling"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupcolumns" file="page-mul.tex">
- <cd:sequence>
- <cd:string value="setupcolumns"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="n">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="convertnumber" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="convertnumber"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupheadtext" file="lang-lab.tex">
+ <cd:sequence>
+ <cd:string value="setupheadtext"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:resolve name="language"/>
+ </cd:keywords>
+ <cd:assignments n="2">
+ <cd:parameter name="cd:name">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplabeltext" file="lang-lab.tex">
+ <cd:sequence>
+ <cd:string value="setuplabeltext"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:resolve name="language"/>
+ </cd:keywords>
+ <cd:assignments n="2">
+ <cd:parameter name="cd:name">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="headtext" file="lang-lab.tex">
+ <cd:sequence>
+ <cd:string value="headtext"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="labeltext" file="lang-lab.tex">
+ <cd:sequence>
+ <cd:string value="labeltext"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupmarginrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="setupmarginrules"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1">
+ <cd:parameter name="level">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="rulethickness">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="marginrule" type="environment" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="marginrule"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ntop">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="marginrule" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="marginrule"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="rule">
- <cd:constant type="on"/>
- <cd:constant type="off"/>
- </cd:parameter>
- <cd:parameter name="height">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="tolerance">
- <cd:constant type="verystrict"/>
- <cd:constant type="strict"/>
- <cd:constant type="tolerant"/>
- <cd:constant type="verytolerant"/>
- <cd:constant type="stretch"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="balance">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="align">
- <cd:constant type="text"/>
- <!-- cd:constant type="yes"/ -->
- <!-- cd:constant type="no"/ -->
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="blank">
- <cd:constant type="fixed"/>
- <cd:constant type="halfline"/>
- <cd:constant type="line"/>
- <cd:constant type="flexible"/>
- <cd:constant type="big"/>
- <cd:constant type="medium"/>
- <cd:constant type="small"/>
- </cd:parameter>
- <cd:parameter name="option">
- <cd:constant type="background"/>
- </cd:parameter>
- <cd:parameter name="direction">
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplinewidth" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="setuplinewidth"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupframed" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="setupframed"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/> <!-- defines a command with that name -->
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="height">
+ <cd:constant type="fit"/>
+ <cd:constant type="broad"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="fit"/>
+ <cd:constant type="broad"/>
+ <cd:constant type="fixed"/>
+ <cd:constant type="local"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="autowidth">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ <cd:constant type="force"/>
+ </cd:parameter>
+ <cd:parameter name="offset">
+ <cd:constant type="none"/>
+ <cd:constant type="overlay"/>
+ <cd:constant type="default"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="location">
+ <cd:constant type="depth"/>
+ <cd:constant type="hanging"/>
+ <cd:constant type="high"/>
+ <cd:constant type="lohi"/>
+ <cd:constant type="low"/>
+ <cd:constant type="top"/>
+ <cd:constant type="middle"/>
+ <cd:constant type="bottom"/>
+ <cd:constant type="keep"/>
+ </cd:parameter>
+ <cd:parameter name="option">
+ <cd:constant type="none"/>
+ <cd:constant type="empty"/>
+ </cd:parameter>
+ <cd:parameter name="strut">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ <cd:constant type="global"/>
+ <cd:constant type="local"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="bottom">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="top">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="frame">
+ <cd:constant type="on"/>
+ <cd:constant type="off"/>
+ <cd:constant type="none"/>
+ <cd:constant type="overlay"/>
+ </cd:parameter>
+ <cd:parameter name="topframe">
+ <cd:constant type="on"/>
+ <cd:constant type="off"/>
+ </cd:parameter>
+ <cd:parameter name="bottomframe">
+ <cd:constant type="on"/>
+ <cd:constant type="off"/>
+ </cd:parameter>
+ <cd:parameter name="leftframe">
+ <cd:constant type="on"/>
+ <cd:constant type="off"/>
+ </cd:parameter>
+ <cd:parameter name="rightframe">
+ <cd:constant type="on"/>
+ <cd:constant type="off"/>
+ </cd:parameter>
+ <cd:parameter name="frameoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="framedepth">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="framecorner">
+ <cd:constant type="round"/>
+ <cd:constant type="rectangular"/>
+ </cd:parameter>
+ <cd:parameter name="frameradius">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="framecolor">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="background">
+ <cd:constant type="screen"/>
+ <cd:constant type="color"/>
+ <cd:constant type="none"/>
+ <cd:constant type="foreground"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="backgroundscreen">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="backgroundcolor">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="backgroundoffset">
+ <cd:constant type="frame"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="backgrounddepth">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="backgroundcorner">
+ <cd:constant type="round"/>
+ <cd:constant type="rectangular"/>
+ </cd:parameter>
+ <cd:parameter name="backgroundradius">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="depth">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="corner">
+ <cd:constant type="round"/>
+ <cd:constant type="rectangular"/>
+ </cd:parameter>
+ <cd:parameter name="radius">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="empty">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="foregroundcolor">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="foregroundstyle">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="rulethickness">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="framed" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="framed"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="setupframed" n="2"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inframed" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="inframed"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="setupframed" n="2"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="thinrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="thinrules"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes">
+ <cd:inherit name="setupthinrules" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupthinrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="setupthinrules"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1">
+ <cd:parameter name="interlinespace">
+ <cd:constant type="small"/>
+ <cd:constant type="medium"/>
+ <cd:constant type="big"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="inbetween">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="backgroundcolor">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="max"/>
+ </cd:parameter>
+ <cd:parameter name="depth">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="max"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:constant type="a"/>
+ <cd:constant type="b"/>
+ <cd:constant type="c"/>
+ <cd:constant type="d"/>
+ </cd:parameter>
+ <cd:parameter name="rulethickness">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="background">
+ <cd:constant type="color"/>
+ </cd:parameter>
+ <cd:parameter name="backgroundcolor">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="hairline" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="hairline"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="thinrule" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="thinrule"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="defineframedtext" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="defineframedtext"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="setupframedtexts" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineframed" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="defineframed"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="setupframedtexts" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupframedtexts" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="setupframedtexts"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="bodyfont">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="left">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="right">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="inner">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="linecorrection">
+ <cd:constant type="on"/>
+ <cd:constant type="off"/>
+ </cd:parameter>
+ <cd:parameter name="depthcorrection">
+ <cd:constant type="on"/>
+ <cd:constant type="off"/>
+ </cd:parameter>
+ <cd:parameter name="margin">
+ <cd:constant type="standard"/>
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="location">
+ <cd:constant type="left"/>
+ <cd:constant type="right"/>
+ <cd:constant type="middle"/>
+ <cd:constant type="none"/>
+ </cd:parameter>
+ <cd:parameter name="indenting">
+ <cd:resolve name="indenting"/>
+ </cd:parameter>
+ <cd:inherit name="setupframed" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="framedtext" type="environment" generated="yes" file="core-rul.tex">
+ <cd:sequence>
+ <cd:variable value="framedtext"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="left"/>
<cd:constant type="right"/>
- </cd:parameter>
- <cd:inherit name="setupframed"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="columns" type="environment">
- <cd:sequence>
- <cd:string value="columns"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="setupcolumns"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definetext" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="definetext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="header"/>
- <cd:constant type="footer"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupheader" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="setupheader"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text" default="yes"/>
- <cd:constant type="margin"/>
- <cd:constant type="edge"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="state">
- <cd:constant type="normal"/>
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- <cd:constant type="empty"/>
- <cd:constant type="high"/>
+ <cd:constant type="middle"/>
<cd:constant type="none"/>
- <cd:constant type="nomarking"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="setupframedtexts" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="framedtext" generated="yes" file="core-rul.tex">
+ <cd:sequence>
+ <cd:variable value="framedtext"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="setupframedtexts" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="background" type="environment" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="background"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="background" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="background"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbackground" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="setupbackground"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="leftoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rightoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="topoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="bottomoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="state">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:inherit name="setupframed" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fillinrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="fillinrules"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="setupfillinrules" n="1"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ <cd:content n="3" optional="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fillintext" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="fillintext"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="setupfillinrules" n="1"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ <cd:content n="3" optional="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfillinrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="setupfillinrules"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="width">
+ <cd:constant type="fit"/>
+ <cd:constant type="broad"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="interlinespace">
+ <cd:constant type="small"/>
+ <cd:constant type="medium"/>
+ <cd:constant type="big"/>
+ </cd:parameter>
+ <cd:parameter name="separator">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fillinline" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="fillinline"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="setupfillinlines" n="1"/>
+ </cd:assignments>
+ <cd:nothing n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfillinlines" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="setupfillinlines"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="margin">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptextrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="setuptextrules"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="location">
+ <cd:constant type="left"/>
+ <cd:constant type="inmargin"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="inbetween">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="bodyfont">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="rulecolor">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="textrule" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="textrule"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="top"/>
+ <cd:constant type="bottom"/>
+ </cd:keywords>
+ <cd:content n="2" optional="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="textrule" type="environment" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="textrule"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="top"/>
+ <cd:constant type="bottom"/>
+ </cd:keywords>
+ <cd:content n="2" optional="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="blackrule" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="blackrule"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="setupblackrules" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="blackrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="blackrules"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:inherit name="setupblackrules" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupblackrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="setupblackrules"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension" default="1em"/>
+ <cd:constant type="max"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="cd:dimension" default="1ex"/>
+ <cd:constant type="max"/>
+ </cd:parameter>
+ <cd:parameter name="depth">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="max"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:constant type="a" default="yes"/>
+ <cd:constant type="b"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension" default=".25ex"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number" default="3"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:name" default=""/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineoverlay" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="defineoverlay"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="leftstyle">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="rightstyle">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="leftwidth">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rightwidth">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="before">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="after">
+ </cd:keywords>
+ <cd:keywords n="2">
<cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfooter" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="setupfooter"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:inherit name="setupheader"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="setupheader"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptext" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="setuptext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:inherit name="setupheader"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="setupheader"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptop" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="setuptop"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:inherit name="setupheader"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="setupheader"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupbottom" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="setupbottom"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:inherit name="setupheader"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="setupheader"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="noheaderandfooterlines" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="noheaderandfooterlines"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="notopandbottomlines" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="notopandbottomlines"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupheadertexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="setupheadertexts"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfootertexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="setupfootertexts"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptexttexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="setuptexttexts"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptoptexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="setuptoptexts"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupbottomtexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="setupbottomtexts"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="settextcontent" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="settextcontent"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:resolve name="layout-v"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="resettextcontent" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="resettextcontent"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:resolve name="layout-v"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant name="lefttext"/>
- <cd:constant name="middletext"/>
- <cd:constant name="righttext"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definemarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="definemarking"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="couplemarking" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="couplemarking"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="decouplemarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="decouplemarking"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="resetmarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="resetmarking"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupmarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="setupmarking"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments>
- <cd:parameter name="state">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="separator">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="expansion">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="marking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="marking"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="getmarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="getmarking"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="first"/>
- <cd:constant type="last"/>
- <cd:constant type="previous"/>
- <cd:constant type="both"/>
- <cd:constant type="all"/>
- <cd:constant type="current"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="nomarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="nomarking"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usemodule" file="core-fil.tex"> <!-- TODO -->
+ <cd:sequence>
+ <cd:string value="usemodule"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="reset" file="core-num.tex">
+ <cd:sequence>
+ <cd:string value="reset"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
-<cd:command name="setuplayout" file="page-ini.tex">
+ <!-- <cd:command name="donttest">
<cd:sequence>
- <cd:string value="setuplayout"/>
+ <cd:string value="donttest"/>
</cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="width">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="fit"/>
- <cd:constant type="middle"/>
- </cd:parameter>
- <cd:parameter name="height">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="fit"/>
- <cd:constant type="middle"/>
- </cd:parameter>
- <cd:parameter name="backspace">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="topspace">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="margin">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="leftmargin">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rightmargin">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="header">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="footer">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="top">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="bottom">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="leftedge">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rightedge">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="headerdistance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="footerdistance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="topdistance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="bottomdistance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="leftmargindistance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rightmargindistance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="leftedgedistance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rightedgedistance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="horoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="veroffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="color">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="marking">
- <cd:constant type="on"/>
- <cd:constant type="off"/>
- <cd:constant type="color"/>
- <cd:constant type="screen"/>
+</cd:command> -->
+
+ <cd:command name="localenvironment" type="environment" file="core-job.tex">
+ <cd:sequence>
+ <cd:string value="localenvironment"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupsystem" file="core-sys.tex">
+ <cd:sequence>
+ <cd:string value="setupsystem"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="resolution">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="file">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="directory">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="random">
+ <cd:constant type="normal"/>
+ <cd:constant type="small"/>
+ <cd:constant type="medium"/>
+ <cd:constant type="big"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usedirectory" file="core-job.mkii"> <!-- usepath, todo: more than one file -->
+ <cd:sequence>
+ <cd:string value="usedirectory"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ <cd:constant type="reset"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="low" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="low"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="high" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="high"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="lohi" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="lohi"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="low"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showframe" file="page-run.tex">
+ <cd:sequence>
+ <cd:string value="showframe"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="location">
- <cd:constant type="left"/>
- <cd:constant type="middle"/>
- <cd:constant type="right"/>
- <cd:constant type="bottom"/>
- <cd:constant type="top"/>
- <cd:constant type="singlesided"/>
- <cd:constant type="doublesided"/>
- </cd:parameter>
- <cd:parameter name="scale">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="nx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ny">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="dx">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="dy">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="lines">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="columns">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="columndistance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="grid">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="bottomspace">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="cutspace">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="textdistance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="textwidth">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="textmargin">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="clipoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="page">
+ <cd:constant type="margin"/>
+ <cd:constant type="edge"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="leftaligned" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="leftaligned"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="rightaligned" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="rightaligned"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="midaligned" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="midaligned"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="wordright" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="wordright"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inmargin" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="inmargin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="low"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inothermargin" file="page-mar.tex">
+ <cd:sequence>
+ <cd:string value="inothermargin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="low"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inleft" file="page-mar.tex">
+ <cd:sequence>
+ <cd:string value="inleft"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="low"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inright" file="page-mar.tex">
+ <cd:sequence>
+ <cd:string value="inright"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="low"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ininner" file="page-mar.tex">
+ <cd:sequence>
+ <cd:string value="ininner"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="low"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inouter" file="page-mar.tex">
+ <cd:sequence>
+ <cd:string value="inouter"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="low"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="column" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="column"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="showstruts" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="showstruts"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="showsetups" file="page-run.tex">
+ <cd:sequence>
+ <cd:string value="showsetups"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="showlayout" file="page-run.tex">
+ <cd:sequence>
+ <cd:string value="showlayout"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="margintext" file="page-mar.tex">
+ <cd:sequence>
+ <cd:string value="margintext"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="low"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupmarginblocks" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="setupmarginblocks"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="location">
+ <cd:constant type="inmargin"/>
+ <cd:constant type="left"/>
+ <cd:constant type="middle"/>
+ <cd:constant type="right"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="top">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="inbetween">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="bottom">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="left">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="right">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="marginblock" type="environment" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="marginblock"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="part" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="part"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="title" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="title"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="chapter" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="chapter"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="section" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="section"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subsection" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="subsection"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subsubsection" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="subsubsection"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subject" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="subject"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subsubject" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="subsubject"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subsubsubject" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="subsubsubject"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="appendix" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="appendix"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="in" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="in"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="yes"/>
+ <cd:content n="2" interactive="yes"/>
+ <cd:reference n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="at" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="at"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="yes"/>
+ <cd:content n="2" interactive="yes"/>
+ <cd:reference n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="about" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="about"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="yes"/>
+ <cd:reference n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="somewhere" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="somewhere"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ <cd:reference n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="atpage" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="atpage"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ref" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="ref"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="t"/>
+ <cd:constant type="p"/>
+ <cd:constant type="r"/>
+ <cd:constant type="s"/>
+ <cd:constant type="e"/>
+ </cd:keywords>
+ <cd:reference n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="textreference" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="textreference"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="pagereference" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="pagereference"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="reference" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="reference"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usereferences" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="usereferences"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definereference" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="definereference"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="paper">
+ </cd:keywords>
+ <cd:reference n="2" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definereferenceformat" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="definereferenceformat"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="adaptlayout" file="page-lay.tex">
- <cd:sequence>
- <cd:string value="adaptlayout"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="height">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="lines">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showgrid" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="showgrid"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="reset"/>
- <cd:constant type="top"/>
- <cd:constant type="bottom"/>
- <cd:constant type="none"/>
- <cd:constant type="all"/>
- <cd:constant type="lines"/>
- <cd:constant type="frame"/>
- <cd:constant type="nonumber"/>
- <cd:constant type="right"/>
- <cd:constant type="left"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placeongrid" file="core-grd.tex">
- <cd:sequence>
- <cd:string value="placeongrid"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:inherit name="moveongrid"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="moveongrid" file="core-grd.tex">
- <cd:sequence>
- <cd:string value="moveongrid"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="top"/>
- <cd:constant type="both"/>
- <cd:constant type="bottom"/>
- <cd:constant type="-top"/>
- <cd:constant type="-both"/>
- <cd:constant type="-bottom"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="high"/>
- <cd:constant type="middle"/>
- <cd:constant type="low"/>
- <cd:constant type="page"/>
- <cd:constant type="none"/>
- <cd:constant type="standard" default="yes"/>
- <cd:constant type="broad"/>
- <cd:constant type="fit"/>
- <cd:constant type="depth"/>
- <cd:constant type="line"/>
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="project" type="environment">
- <cd:sequence>
- <cd:string value="project"/>
- </cd:sequence>
- <cd:arguments>
- <cd:file/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="environment" type="environment">
- <cd:sequence>
- <cd:string value="environment"/>
- </cd:sequence>
- <cd:arguments>
- <cd:file/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="product" type="environment">
- <cd:sequence>
- <cd:string value="product"/>
- </cd:sequence>
- <cd:arguments>
- <cd:file/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="component" type="environment">
- <cd:sequence>
- <cd:string value="component"/>
- </cd:sequence>
- <cd:arguments>
- <cd:file/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="nomorefiles">
- <cd:sequence>
- <cd:string value="nomorefiles"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupinterlinespace" variant="1">
- <cd:sequence>
- <cd:string value="setupinterlinespace"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="reset"/>
- <cd:constant type="small" default="yes"/>
- <cd:constant type="medium"/>
- <cd:constant type="auto"/>
- <cd:constant type="big"/>
- <cd:constant type="on"/>
- <cd:constant type="off"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupinterlinespace" variant="2">
- <cd:sequence>
- <cd:string value="setupinterlinespace"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="height">
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="left">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="right">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="text">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="label">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="hl" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="hl"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="depth">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="vl" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="vl"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="line">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="top">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="godown" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="godown"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="whitespace" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="whitespace"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="nowhitespace" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="nowhitespace"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="crlf" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="crlf"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="space" file="syst-pln.tex">
+ <cd:sequence>
+ <cd:string value="space"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="fixedspaces" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="fixedspaces"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="emptylines" file="page-lin.tex">
+ <cd:sequence>
+ <cd:string value="emptylines"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="bottom">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuppagenumbering" file="page-num.tex">
- <cd:sequence>
- <cd:string value="setuppagenumbering"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="alternative">
- <cd:constant type="singlesided"/>
- <cd:constant type="doublesided"/>
- </cd:parameter>
- <cd:parameter name="location">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nospace" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="nospace"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="packed" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="packed"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupdescriptions" file="core-des.tex">
+ <cd:sequence>
+ <cd:string value="setupdescriptions"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="style">
+ <cd:resolve name="style"/> <!-- TODO: style=normal -->
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:name" default=""/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="fit"/>
+ <cd:constant type="broad"/>
+ <cd:constant type="cd:dimension" default="8em"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="sample">
+ <cd:constant type="cd:text" default=""/>
+ </cd:parameter>
+ <cd:parameter name="text">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="closesymbol">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="closecommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="closesymbol">
+ <cd:constant type="cd:text" default=""/>
+ </cd:parameter>
+ <cd:parameter name="titleleft">
+ <cd:constant type="cd:text" default="("/>
+ </cd:parameter>
+ <cd:parameter name="titleright">
+ <cd:constant type="cd:text" default=")"/>
+ </cd:parameter>
+ <cd:parameter name="titledistance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="titlestyle">
+ <cd:resolve name="style"/> <!-- TODO: default=bold -->
+ </cd:parameter>
+ <cd:parameter name="titlecolor">
+ <cd:constant type="cd:name" default=""/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="margin">
+ <cd:constant type="standard"/>
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/> <!-- TODO: this is default; conflicting syntax? -->
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="location">
+ <cd:constant type="left" default="yes"/>
+ <cd:constant type="right"/>
+ <cd:constant type="top"/>
+ <cd:constant type="serried"/>
+ <cd:constant type="inmargin"/>
+ <cd:constant type="inleft"/>
+ <cd:constant type="inright"/>
+ <cd:constant type="hanging"/>
+ </cd:parameter>
+ <cd:parameter name="headstyle">
+ <cd:resolve name="style"/> <!-- TODO: default=bold -->
+ </cd:parameter>
+ <cd:parameter name="headcolor">
+ <cd:constant type="cd:name" default=""/>
+ </cd:parameter>
+ <cd:parameter name="headcommand">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="hang">
+ <cd:constant type="fit"/>
+ <cd:constant type="broad"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command" default="\blank"/>
+ </cd:parameter>
+ <cd:parameter name="inbetween">
+ <cd:constant type="cd:command" default="\blank"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command" default="\blank"/>
+ </cd:parameter>
+ <cd:parameter name="indentnext">
+ <cd:resolve name="indentnext"/> <!-- default=yes -->
+ </cd:parameter>
+ <cd:parameter name="indenting">
+ <cd:resolve name="indenting"/> <!-- default=never -->
+ </cd:parameter>
+ <cd:parameter name="command">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupenumerations" file="core-des.tex">
+ <cd:sequence>
+ <cd:string value="setupenumerations"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="setupdescriptions" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineenumeration" file="core-des.tex">
+ <cd:sequence>
+ <cd:string value="defineenumeration"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="setupenumerations" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="enumeration" generated="yes" file="core-des.tex">
+ <cd:sequence>
+ <cd:variable value="enumeration"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:nothing n="1" interactive="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="enumeration" type="environment" generated="yes" file="core-des.tex">
+ <cd:sequence>
+ <cd:variable value="enumeration"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="definedescription" file="core-des.tex">
+ <cd:sequence>
+ <cd:string value="definedescription"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="setupdescriptions" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="description" generated="yes" file="core-des.tex">
+ <cd:sequence>
+ <cd:variable value="description"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:nothing n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="description" type="environment" generated="yes" file="core-des.tex">
+ <cd:sequence>
+ <cd:variable value="description"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupindentations" file="core-des.tex">
+ <cd:sequence>
+ <cd:string value="setupindentations"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="headstyle">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="fit"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="text">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="sample">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="separator">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineindenting" file="core-des.tex">
+ <cd:sequence>
+ <cd:string value="defineindenting"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="setupindentations" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="indentation" generated="yes" file="core-spa.tex">
+ <cd:sequence>
+ <cd:variable value="indentation"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:nothing n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definelabel" file="core-des.tex">
+ <cd:sequence>
+ <cd:string value="definelabel"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="text">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="location">
+ <cd:constant type="inmargin"/>
+ <cd:constant type="intext"/>
+ </cd:parameter>
+ <cd:parameter name="way">
+ <cd:constant type="bytext"/>
+ <cd:constant type="bycd:section"/>
+ </cd:parameter>
+ <cd:parameter name="blockway">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="headstyle">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="headcolor">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="labeling" generated="yes" file="core-des.tex">
+ <cd:sequence>
+ <cd:variable value="labeling"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcolumns" file="page-mul.tex">
+ <cd:sequence>
+ <cd:string value="setupcolumns"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes"> <!-- no idea why it is optional -->
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ntop">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="rule">
+ <cd:constant type="on"/>
+ <cd:constant type="off"/> <!-- default and unknown missing -->
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="tolerance">
+ <cd:constant type="verystrict"/>
+ <cd:constant type="strict"/>
+ <cd:constant type="tolerant"/>
+ <cd:constant type="verytolerant"/>
+ <cd:constant type="stretch"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="balance">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:constant type="text"/>
+ <!-- cd:constant type="yes"/ -->
+ <!-- cd:constant type="no"/ -->
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="blank">
+ <cd:constant type="fixed"/>
+ <cd:constant type="halfline"/>
+ <cd:constant type="line"/>
+ <cd:constant type="flexible"/>
+ <cd:constant type="big"/>
+ <cd:constant type="medium"/>
+ <cd:constant type="small"/>
+ </cd:parameter>
+ <cd:parameter name="option">
+ <cd:constant type="background"/>
+ </cd:parameter>
+ <cd:parameter name="direction">
+ <cd:constant type="left"/>
+ <cd:constant type="right"/>
+ </cd:parameter>
+ <cd:inherit name="setupframed" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="columns" type="environment" file="page-mul.tex">
+ <cd:sequence>
+ <cd:string value="columns"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="setupcolumns" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definetext" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="definetext"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
<cd:constant type="header"/>
<cd:constant type="footer"/>
- <cd:constant type="left"/>
- <cd:constant type="right"/>
- <cd:constant type="middle"/>
- <cd:constant type="margin"/>
- <cd:constant type="marginedge"/>
- <cd:constant type="inleft"/>
- <cd:constant type="inright"/>
- </cd:parameter>
- <cd:parameter name="conversion">
- <cd:constant type="numbers"/>
- <cd:constant type="characters"/>
- <cd:constant type="Characters"/>
- <cd:constant type="romannumerals"/>
- <cd:constant type="Romannumerals"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="left">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="right">
+ </cd:keywords>
+ <cd:keywords n="3">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="way">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="text">
+ </cd:keywords>
+ <cd:keywords n="4" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="numberseparator">
+ </cd:keywords>
+ <cd:keywords n="5" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="textseparator">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="cd:sectionnumber">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="separator">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="state">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="width">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="command">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupnarrower" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="setupnarrower"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="left">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="right">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="middle">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="define" file="syst-ext.tex">
- <cd:sequence>
- <cd:string value="define"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- <cd:csname/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="usecommands" file="core-sys.tex">
- <cd:sequence>
- <cd:string value="usecommands"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definestartstop" file="core-sys.tex">
- <cd:sequence>
- <cd:string value="definestartstop"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="before">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="after">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="commands">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupheads" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="setupheads"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="sectionnumber">
- <cd:constant type="yes"/>
- <cd:constant type="cd:number"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="alternative">
- <cd:constant type="normal"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupheader" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="setupheader"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:text" default="yes"/>
<cd:constant type="margin"/>
- <cd:constant type="middle"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="paragraph"/>
- </cd:parameter>
- <cd:parameter name="separator">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="stopper">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="align">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="aligntitle">
- <cd:constant type="yes"/>
- <cd:constant type="float"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="tolerance">
- <cd:constant type="verystrict"/>
- <cd:constant type="strict"/>
- <cd:constant type="tolerant"/>
- <cd:constant type="verytolerant"/>
- <cd:constant type="stretch"/>
- </cd:parameter>
- <cd:parameter name="indentnext">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="command">
- <cd:constant type="cd:twoarguments"/>
- </cd:parameter>
- <cd:parameter name="margin">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupcaptions" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="setupcaptions"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="location">
+ <cd:constant type="edge"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="state">
+ <cd:constant type="normal"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="start"/>
+ <cd:constant type="empty"/>
+ <cd:constant type="high"/>
+ <cd:constant type="none"/>
+ <cd:constant type="nomarking"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="strut">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="leftstyle">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="rightstyle">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="leftwidth">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rightwidth">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfooter" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="setupfooter"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:inherit name="setupheader" n="1"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="setupheader" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptext" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="setuptext"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:inherit name="setupheader" n="1"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="setupheader" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptop" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="setuptop"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:inherit name="setupheader" n="1"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="setupheader" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbottom" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="setupbottom"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:inherit name="setupheader" n="1"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="setupheader" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="noheaderandfooterlines" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="noheaderandfooterlines"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="notopandbottomlines" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="notopandbottomlines"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupheadertexts" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="setupheadertexts"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:resolve name="layout-h"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfootertexts" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="setupfootertexts"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:resolve name="layout-h"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptexttexts" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="setuptexttexts"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:resolve name="layout-h"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptoptexts" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="setuptoptexts"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:resolve name="layout-h"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbottomtexts" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="setupbottomtexts"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:resolve name="layout-h"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="settextcontent" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="settextcontent"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:resolve name="layout-v"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:resolve name="layout-h"/>
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ <cd:keywords n="4" optional="yes">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ <cd:keywords n="5" optional="yes">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="resettextcontent" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="resettextcontent"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:resolve name="layout-v"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:resolve name="layout-h"/>
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes">
+ <cd:constant type="lefttext"/>
+ <cd:constant type="middletext"/>
+ <cd:constant type="righttext"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definemarking" file="core-mar.tex">
+ <cd:sequence>
+ <cd:string value="definemarking"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="couplemarking" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="couplemarking"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="decouplemarking" file="core-mar.tex">
+ <cd:sequence>
+ <cd:string value="decouplemarking"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="resetmarking" file="core-mar.tex">
+ <cd:sequence>
+ <cd:string value="resetmarking"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupmarking" file="core-mar.tex">
+ <cd:sequence>
+ <cd:string value="setupmarking"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2">
+ <cd:parameter name="state">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="separator">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="expansion">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="marking" file="core-mar.tex">
+ <cd:sequence>
+ <cd:string value="marking"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getmarking" file="core-mar.tex">
+ <cd:sequence>
+ <cd:string value="getmarking"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="first"/>
+ <cd:constant type="last"/>
+ <cd:constant type="previous"/>
+ <cd:constant type="both"/>
+ <cd:constant type="all"/>
+ <cd:constant type="current"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nomarking" file="core-mar.tex">
+ <cd:sequence>
+ <cd:string value="nomarking"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplayout" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="setuplayout"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="fit"/>
+ <cd:constant type="middle"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="fit"/>
+ <cd:constant type="middle"/>
+ </cd:parameter>
+ <cd:parameter name="backspace">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="topspace">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="margin">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="leftmargin">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rightmargin">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="header">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="footer">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="top">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="bottom">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="leftedge">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rightedge">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="headerdistance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="footerdistance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="topdistance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="bottomdistance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="leftmargindistance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rightmargindistance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="leftedgedistance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rightedgedistance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="horoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="veroffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="marking">
+ <cd:constant type="on"/>
+ <cd:constant type="off"/>
+ <cd:constant type="color"/>
+ <cd:constant type="screen"/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="page"/>
+ </cd:parameter>
+ <cd:parameter name="location">
+ <cd:constant type="left"/>
+ <cd:constant type="middle"/>
+ <cd:constant type="right"/>
+ <cd:constant type="bottom"/>
+ <cd:constant type="top"/>
+ <cd:constant type="singlesided"/>
+ <cd:constant type="doublesided"/>
+ </cd:parameter>
+ <cd:parameter name="scale">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="nx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ny">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="dx">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="dy">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="lines">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="columns">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="columndistance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="grid">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="bottomspace">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="cutspace">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="textdistance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="textwidth">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="textmargin">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="clipoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="page">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="paper">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="adaptlayout" file="page-lay.tex">
+ <cd:sequence>
+ <cd:string value="adaptlayout"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="height">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="max"/>
+ </cd:parameter>
+ <cd:parameter name="lines">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showgrid" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="showgrid"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="reset"/>
<cd:constant type="top"/>
<cd:constant type="bottom"/>
<cd:constant type="none"/>
- <cd:constant type="high"/>
- <cd:constant type="low"/>
- <cd:constant type="middle"/>
+ <cd:constant type="all"/>
+ <cd:constant type="lines"/>
+ <cd:constant type="frame"/>
+ <cd:constant type="nonumber"/>
+ <cd:constant type="right"/>
<cd:constant type="left"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placeongrid" file="core-grd.tex">
+ <cd:sequence>
+ <cd:string value="placeongrid"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:inherit name="moveongrid" n="1"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="moveongrid" file="core-grd.tex">
+ <cd:sequence>
+ <cd:string value="moveongrid"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="standard" default="yes"/> <!-- also 'normal', 'yes' and 'force' -->
+ <cd:constant type="top"/>
+ <cd:constant type="both"/>
+ <cd:constant type="bottom"/>
+ <cd:constant type="-top"/>
+ <cd:constant type="-both"/>
+ <cd:constant type="-bottom"/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="high"/>
<cd:constant type="middle"/>
- <cd:constant type="right"/>
- <cd:constant type="lefthanging"/>
- <cd:constant type="righthanging"/>
- <cd:constant type="leftmargin"/>
- <cd:constant type="rightmargin"/>
- <cd:constant type="innermargin"/>
- <cd:constant type="outermargin"/>
- </cd:parameter>
- <cd:parameter name="width">
- <cd:constant type="fit"/>
+ <cd:constant type="low"/>
+ <cd:constant type="page"/>
<cd:constant type="broad"/>
- <cd:constant type="max"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="minwidth">
<cd:constant type="fit"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="headstyle">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="number">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
+ <cd:constant type="depth"/>
+ <cd:constant type="line"/>
+ <cd:constant type="reset"/>
<cd:constant type="none"/>
- </cd:parameter>
- <cd:parameter name="inbetween">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="align">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="conversion">
- <cd:constant type="numbers"/>
- <cd:constant type="characters"/>
- <cd:constant type="Characters"/>
- <cd:constant type="romannumerals"/>
- <cd:constant type="Romannumerals"/>
- </cd:parameter>
- <cd:parameter name="way">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="separator">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="stopper">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="command">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="distance">
<cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupcaption" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="setupcaption"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="setupcaptions"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfloats" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="setupfloats"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="location">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="project" type="environment" file="core-job.tex">
+ <cd:sequence>
+ <cd:string value="project"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:file n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="environment" type="environment" file="core-job.tex">
+ <cd:sequence>
+ <cd:string value="environment"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:file n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="product" type="environment" file="core-job.tex">
+ <cd:sequence>
+ <cd:string value="product"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:file n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="component" type="environment" file="core-job.tex">
+ <cd:sequence>
+ <cd:string value="component"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:file n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nomorefiles" file="core-job.tex">
+ <cd:sequence>
+ <cd:string value="nomorefiles"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupinterlinespace" variant="1" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="setupinterlinespace"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="reset"/>
+ <cd:constant type="small" default="yes"/>
+ <cd:constant type="medium"/>
+ <cd:constant type="auto"/>
+ <cd:constant type="big"/>
+ <cd:constant type="on"/>
+ <cd:constant type="off"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupinterlinespace2" variant="2" file="core-spa.tex">
+ <!-- attached a 2 to make this definition usable with \showsetup -->
+ <cd:sequence>
+ <cd:string value="setupinterlinespace"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="height">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="depth">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="line">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="top">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="bottom">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppagenumbering" file="page-num.tex">
+ <cd:sequence>
+ <cd:string value="setuppagenumbering"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="alternative">
+ <cd:constant type="singlesided"/>
+ <cd:constant type="doublesided"/>
+ </cd:parameter>
+ <cd:parameter name="location">
+ <cd:constant type="header"/>
+ <cd:constant type="footer"/>
+ <cd:constant type="left"/>
+ <cd:constant type="right"/>
+ <cd:constant type="middle"/>
+ <cd:constant type="margin"/>
+ <cd:constant type="marginedge"/>
+ <cd:constant type="inleft"/>
+ <cd:constant type="inright"/>
+ </cd:parameter>
+ <cd:parameter name="conversion">
+ <cd:constant type="numbers"/>
+ <cd:constant type="characters"/>
+ <cd:constant type="Characters"/>
+ <cd:constant type="romannumerals"/>
+ <cd:constant type="Romannumerals"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="left">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="right">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="way">
+ <cd:constant type="bytext"/>
+ <cd:constant type="bycd:section"/>
+ </cd:parameter>
+ <cd:parameter name="text">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="numberseparator">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="textseparator">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="cd:sectionnumber">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="separator">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="strut">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="state">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="command">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupnarrower" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="setupnarrower"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="left">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="right">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="middle">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="define" file="syst-ext.tex">
+ <cd:sequence>
+ <cd:string value="define"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ <cd:csname n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usecommands" file="core-sys.tex">
+ <cd:sequence>
+ <cd:string value="usecommands"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definestartstop" file="core-sys.tex">
+ <cd:sequence>
+ <cd:string value="definestartstop"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="commands">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupheads" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="setupheads"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="sectionnumber">
+ <cd:constant type="yes"/>
+ <cd:constant type="cd:number"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:constant type="normal"/>
+ <cd:constant type="margin"/>
+ <cd:constant type="middle"/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="paragraph"/>
+ </cd:parameter>
+ <cd:parameter name="separator">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="stopper">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="aligntitle">
+ <cd:constant type="yes"/>
+ <cd:constant type="float"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="tolerance">
+ <cd:constant type="verystrict"/>
+ <cd:constant type="strict"/>
+ <cd:constant type="tolerant"/>
+ <cd:constant type="verytolerant"/>
+ <cd:constant type="stretch"/>
+ </cd:parameter>
+ <cd:parameter name="indentnext">
+ <cd:resolve name="indentnext"/>
+ </cd:parameter>
+ <cd:parameter name="command">
+ <cd:constant type="cd:twoarguments"/>
+ </cd:parameter>
+ <cd:parameter name="margin">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcaptions" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="setupcaptions"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="location">
+ <cd:constant type="top"/>
+ <cd:constant type="bottom"/>
+ <cd:constant type="none"/>
+ <cd:constant type="high"/>
+ <cd:constant type="low"/>
+ <cd:constant type="middle"/>
+ <cd:constant type="left"/>
+ <cd:constant type="middle"/>
+ <cd:constant type="right"/>
+ <cd:constant type="lefthanging"/>
+ <cd:constant type="righthanging"/>
+ <cd:constant type="leftmargin"/>
+ <cd:constant type="rightmargin"/>
+ <cd:constant type="innermargin"/>
+ <cd:constant type="outermargin"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="fit"/>
+ <cd:constant type="broad"/>
+ <cd:constant type="max"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="minwidth">
+ <cd:constant type="fit"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="headstyle">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="number">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ <cd:constant type="none"/>
+ </cd:parameter>
+ <cd:parameter name="inbetween">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="conversion">
+ <cd:constant type="numbers"/>
+ <cd:constant type="characters"/>
+ <cd:constant type="Characters"/>
+ <cd:constant type="romannumerals"/>
+ <cd:constant type="Romannumerals"/>
+ </cd:parameter>
+ <cd:parameter name="way">
+ <cd:constant type="bytext"/>
+ <cd:constant type="bycd:section"/>
+ </cd:parameter>
+ <cd:parameter name="separator">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="stopper">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="command">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcaption" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="setupcaption"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="setupcaptions" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfloats" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="setupfloats"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="location">
+ <cd:constant type="left"/>
+ <cd:constant type="right"/>
+ <cd:constant type="middle"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="fit"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="margin">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="spacebefore">
+ <cd:constant type="small"/>
+ <cd:constant type="medium"/>
+ <cd:constant type="big"/>
+ <cd:constant type="none"/>
+ </cd:parameter>
+ <cd:parameter name="spaceafter">
+ <cd:constant type="small"/>
+ <cd:constant type="medium"/>
+ <cd:constant type="big"/>
+ <cd:constant type="none"/>
+ </cd:parameter>
+ <cd:parameter name="sidespacebefore">
+ <cd:constant type="small"/>
+ <cd:constant type="medium"/>
+ <cd:constant type="big"/>
+ <cd:constant type="none"/>
+ </cd:parameter>
+ <cd:parameter name="sidespaceafter">
+ <cd:constant type="small"/>
+ <cd:constant type="medium"/>
+ <cd:constant type="big"/>
+ <cd:constant type="none"/>
+ </cd:parameter>
+ <cd:parameter name="indentnext">
+ <cd:resolve name="indentnext"/>
+ </cd:parameter>
+ <cd:parameter name="ntop">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="nbottom">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="nlines">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="default">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="tolerance">
+ <cd:constant type="0"/>
+ <cd:constant type="1"/>
+ <cd:constant type="2"/>
+ </cd:parameter>
+ <cd:parameter name="leftmargindistance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rightmargindistance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="sidealign">
+ <cd:constant type="normal"/>
+ <cd:constant type="line"/>
+ </cd:parameter>
+ <cd:parameter name="numbering">
+ <cd:constant type="yes"/>
+ <cd:constant type="nocheck"/>
+ </cd:parameter>
+ <cd:inherit name="setupframed" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfloatsplitting" file="core-tsp.tex">
+ <cd:sequence>
+ <cd:string value="setupfloatsplitting"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="conversion">
+ <cd:constant type="numbers"/>
+ <cd:constant type="characters"/>
+ <cd:constant type="Characters"/>
+ <cd:constant type="romannumerals"/>
+ <cd:constant type="Romannumerals"/>
+ </cd:parameter>
+ <cd:parameter name="lines">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="splitfloat" file="core-tsp.tex">
+ <cd:sequence>
+ <cd:string value="splitfloat"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="setupfloatsplitting" n="1"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupoppositeplacing" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="setupoppositeplacing"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1">
+ <cd:parameter name="state">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="inbetween">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="opposite" type="environment" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="opposite"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setuphyphenmark" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="setuphyphenmark"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1">
+ <cd:parameter name="sign">
+ <cd:constant type="--"/>
+ <cd:constant type="---"/>
+ <cd:constant type="-"/>
+ <cd:constant type="~"/>
+ <cd:constant type="("/>
+ <cd:constant type=")"/>
+ <cd:constant type="="/>
+ <cd:constant type="/"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppositioning" file="page-lyr.tex">
+ <cd:sequence>
+ <cd:string value="setuppositioning"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="state">
+ <cd:constant type="start"/>
+ <cd:constant type="overlay"/>
+ </cd:parameter>
+ <cd:parameter name="unit">
+ <cd:constant type="cm"/>
+ <cd:constant type="pt"/>
+ <cd:constant type="em"/>
+ <cd:constant type="mm"/>
+ <cd:constant type="ex"/>
+ <cd:constant type="es"/>
+ <cd:constant type="in"/>
+ </cd:parameter>
+ <cd:parameter name="factor">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="scale">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="offset">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="xstep">
+ <cd:constant type="absolute"/>
+ <cd:constant type="relative"/>
+ </cd:parameter>
+ <cd:parameter name="ystep">
+ <cd:constant type="absolute"/>
+ <cd:constant type="relative"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="positioning" type="environment" file="page-lyr.tex">
+ <cd:sequence>
+ <cd:string value="positioning"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="grid" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="grid"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="x">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="y">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="nx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ny">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="dx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="dy">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="xstep">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ystep">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="offset">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="factor">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="scale">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="unit">
+ <cd:constant type="cm"/>
+ <cd:constant type="pt"/>
+ <cd:constant type="em"/>
+ <cd:constant type="mm"/>
+ <cd:constant type="ex"/>
+ <cd:constant type="es"/>
+ <cd:constant type="in"/>
+ </cd:parameter>
+ <cd:parameter name="location">
+ <cd:constant type="left"/>
+ <cd:constant type="middle"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="page" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="page"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="makeup"/>
+ <cd:constant type="no"/>
+ <cd:constant type="preference"/>
+ <cd:constant type="bigpreference"/>
<cd:constant type="left"/>
<cd:constant type="right"/>
- <cd:constant type="middle"/>
- </cd:parameter>
- <cd:parameter name="width">
- <cd:constant type="fit"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="before">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="after">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="margin">
+ <cd:constant type="disable"/>
+ <cd:constant type="last"/>
+ <cd:constant type="quadruple"/>
+ <cd:constant type="even"/>
+ <cd:constant type="odd"/>
+ <cd:constant type="blank"/>
+ <cd:constant type="empty"/>
+ <cd:constant type="reset"/>
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupreferencing" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="setupreferencing"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="state">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="cd:sectionnumber">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="prefix">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="interaction">
+ <cd:constant type="label"/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="all"/>
+ <cd:constant type="symbol"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="left">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="right">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="convertfile">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ <cd:constant type="small"/>
+ <cd:constant type="big"/>
+ </cd:parameter>
+ <cd:parameter name="separator">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="autofile">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ <cd:constant type="page"/>
+ </cd:parameter>
+ <cd:parameter name="global">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupurl" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="setupurl"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="urlalternative">
+ <cd:constant type="none"/>
+ <cd:constant type="both"/>
+ <cd:constant type="before"/>
+ <cd:constant type="after"/>
+ </cd:parameter>
+ <cd:parameter name="urlspace">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="writetoreferencelist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="writetoreferencelist"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placereferencelist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="placereferencelist"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definereferencelist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="definereferencelist"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="setupreferencelist" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupreferencelist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="setupreferencelist"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="state">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="criterium">
+ <cd:constant type="cd:section"/>
+ <cd:constant type="local"/>
+ <cd:constant type="previous"/>
+ <cd:constant type="all"/>
+ </cd:parameter>
+ <cd:parameter name="command">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="writetolist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="writetolist"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:section"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="writebetweenlist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="writebetweenlist"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:section"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nolist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="nolist"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="listsymbol" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="listsymbol"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placelist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="placelist"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="setuplist" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="determinelistcharacteristics" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="determinelistcharacteristics"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="setuplist" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placecombinedlist" variant="1" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="placecombinedlist"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="setupcombinedlist" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definelist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="definelist"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes"> <!-- inherits from -->
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="setuplist" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="setuplist"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="state">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:constant type="a"/>
+ <cd:constant type="b"/>
+ <cd:constant type="c"/>
+ <cd:constant type="..."/>
+ <cd:constant type="none"/>
+ <cd:constant type="command"/>
+ </cd:parameter>
+ <cd:parameter name="coupling">
+ <cd:constant type="on"/>
+ <cd:constant type="off"/>
+ </cd:parameter>
+ <cd:parameter name="criterium">
+ <cd:constant type="cd:section"/>
+ <cd:constant type="local"/>
+ <cd:constant type="previous"/>
+ <cd:constant type="current"/>
+ <cd:constant type="all"/>
+ </cd:parameter>
+ <cd:parameter name="pageboundaries">
+ <cd:constant type="cd:list"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="numberstyle">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="textstyle">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="pagestyle">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="command">
+ <cd:constant type="cd:threearguments"/>
+ </cd:parameter>
+ <cd:parameter name="numbercommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="textcommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="pagecommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="interaction">
+ <cd:constant type="cd:sectionnumber"/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="pagenumber"/>
+ <cd:constant type="all"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="inbetween">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="left">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="right">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="label">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="prefix">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ <cd:constant type="none"/>
+ </cd:parameter>
+ <cd:parameter name="pagenumber">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="headnumber">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="cd:sectionnumber">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="aligntitle">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="margin">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="fit"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="fit"/>
+ <cd:constant type="broad"/>
+ </cd:parameter>
+ <cd:parameter name="depth">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="fit"/>
+ <cd:constant type="broad"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="separator">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="stopper">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="symbol">
+ <cd:constant type="none"/>
+ <cd:constant type="1"/>
+ <cd:constant type="2"/>
+ <cd:constant type="3"/>
+ <cd:constant type="..."/>
+ </cd:parameter>
+ <cd:parameter name="expansion">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ <cd:constant type="command"/>
+ </cd:parameter>
+ <cd:parameter name="maxwidth">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:inherit name="setupframed" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplistalternative" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="setuplistalternative"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="no">
+ <cd:constant type="a"/>
+ <cd:constant type="b"/>
+ <cd:constant type="c"/>
+ <!-- cd:constant type="cd:name"/ -->
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="command">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="stretch">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definecombinedlist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="definecombinedlist"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="cd:list"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="setupcombinedlist" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcombinedlist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="setupcombinedlist"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="level">
+ <cd:constant type="1"/>
+ <cd:constant type="2"/>
+ <cd:constant type="3"/>
+ <cd:constant type="4"/>
+ <cd:constant type="cd:section"/>
+ <cd:constant type="current"/>
+ </cd:parameter>
+ <cd:inherit name="setuplist" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placecombinedlist" variant="2" generated="yes" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="place"/>
+ <cd:variable value="combinedlist"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="setupcombinedlist" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="completecombinedlist" generated="yes" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="complete"/>
+ <cd:variable value="combinedlist"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="setupcombinedlist" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupnumbering" file="core-num.tex">
+ <cd:sequence>
+ <cd:string value="setupnumbering"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="way">
+ <cd:constant type="bytext"/>
+ <cd:constant type="bycd:section"/>
+ </cd:parameter>
+ <cd:parameter name="state">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupformulas" file="core-mat.tex">
+ <cd:sequence>
+ <cd:string value="setupformulas"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="location">
+ <cd:constant type="left"/>
+ <cd:constant type="right"/>
+ </cd:parameter>
+ <cd:parameter name="left">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="right">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="option">
+ <cd:constant type="middle"/>
+ </cd:parameter>
+ <cd:parameter name="strut">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="margin">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="standard"/>
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:constant type="flushleft"/>
+ <cd:constant type="flushright"/>
+ <cd:constant type="middle"/>
+ <cd:constant type="center"/>
+ </cd:parameter>
+ <cd:parameter name="leftmargin">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rightmargin">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="indentnext">
+ <cd:resolve name="indentnext"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="spacebefore">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="separator">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="conversion">
+ <cd:constant type="numbers"/>
+ <cd:constant type="characters"/>
+ <cd:constant type="Characters"/>
+ <cd:constant type="romannumerals"/>
+ <cd:constant type="Romannumerals"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="publication" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="publication"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppublications" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="setuppublications"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="alternative">
+ <cd:constant type="apa"/>
+ <cd:constant type="normal"/>
+ </cd:parameter>
+ <cd:inherit name="setupenumerations" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplines" file="page-lin.tex">
+ <cd:sequence>
+ <cd:string value="setuplines"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="inbetween">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="indenting">
+ <cd:resolve name="indenting"/>
+ </cd:parameter>
+ <cd:parameter name="space">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="option">
+ <cd:constant type="packed"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="lines" type="environment">
+ <cd:sequence>
+ <cd:string value="lines"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupparagraphnumbering" file="page-lin.tex">
+ <cd:sequence>
+ <cd:string value="setupparagraphnumbering"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="state">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="reset"/>
+ <cd:constant type="line"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplinenumbering" file="page-lin.tex">
+ <cd:sequence>
+ <cd:string value="setuplinenumbering"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="conversion">
+ <cd:constant type="numbers"/>
+ <cd:constant type="characters"/>
+ <cd:constant type="Characters"/>
+ <cd:constant type="romannumerals"/>
+ <cd:constant type="Romannumerals"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="start">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="step">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="location">
+ <cd:constant type="intext"/>
+ <cd:constant type="inmargin"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="prefix">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="referencing">
+ <cd:constant type="on"/>
+ <cd:constant type="off"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="linenumbering" type="environment" file="page-lin.tex"> <!-- mkii/mkiv -->
+ <cd:sequence>
+ <cd:string value="linenumbering"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="continue"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="line" type="environment">
+ <cd:sequence>
+ <cd:string value="line"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="someline" file="page-lin.tex">
+ <cd:sequence>
+ <cd:string value="someline"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inline" file="page-lin.tex">
+ <cd:sequence>
+ <cd:string value="inline"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupinmargin" file="page-mar.tex">
+ <cd:sequence>
+ <cd:string value="setupinmargin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="left"/>
+ <cd:constant type="right"/>
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="location">
+ <cd:constant type="left"/>
+ <cd:constant type="right"/>
+ <cd:constant type="both"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="line">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="separator">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="stack">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:inherit name="setupframed" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppagenumber" file="page-num.tex">
+ <cd:sequence>
+ <cd:string value="setuppagenumber"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="number">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="state">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="keep"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsubpagenumber" file="page-num.tex">
+ <cd:sequence>
+ <cd:string value="setupsubpagenumber"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="way">
+ <cd:constant type="bytext"/>
+ <cd:constant type="bycd:section"/>
+ </cd:parameter>
+ <cd:parameter name="state">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="none"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupblank" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="setupblank"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="normal" default="yes"/>
+ <cd:constant type="default"/>
+ <cd:constant type="standard"/>
+ <cd:constant type="line"/>
+ <cd:constant type="halfline"/>
<cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="spacebefore">
- <cd:constant type="small"/>
- <cd:constant type="medium"/>
<cd:constant type="big"/>
- <cd:constant type="none"/>
- </cd:parameter>
- <cd:parameter name="spaceafter">
- <cd:constant type="small"/>
<cd:constant type="medium"/>
- <cd:constant type="big"/>
- <cd:constant type="none"/>
- </cd:parameter>
- <cd:parameter name="sidespacebefore">
<cd:constant type="small"/>
- <cd:constant type="medium"/>
- <cd:constant type="big"/>
+ <cd:constant type="fixed"/>
+ <cd:constant type="flexible"/>
+ <cd:constant type="global"/>
+ <cd:constant type="unknown"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineblank" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="defineblank"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:inherit name="setupblank" n="1"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definepapersize" file="page-lay.tex">
+ <cd:sequence>
+ <cd:string value="definepapersize"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="offset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="scale">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppaper" file="page-lay.tex">
+ <cd:sequence>
+ <cd:string value="setuppaper"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="paper">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="page">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="nx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ny">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="topspace">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="backspace">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="option">
+ <cd:constant type="max"/>
+ <cd:constant type="fit"/>
+ </cd:parameter>
+ <cd:parameter name="method">
+ <cd:constant type="normal"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppapersize" file="page-lay.tex">
+ <cd:sequence>
+ <cd:string value="setuppapersize"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="A3"/>
+ <cd:constant type="A4" default="yes"/>
+ <cd:constant type="A5"/>
+ <cd:constant type="A6"/>
+ <cd:constant type="letter"/>
+ <cd:constant type="..."/>
+ <cd:constant type="CD"/>
+ <cd:constant type="cd:name"/>
+ <cd:constant type="landscape"/>
+ <cd:constant type="mirrored"/>
+ <cd:constant type="rotated"/>
+ <cd:constant type="90"/>
+ <cd:constant type="180"/>
+ <cd:constant type="270"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="negative"/>
+ <cd:inherit name="setuppapersize" n="1"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuparranging" file="page-imp.tex">
+ <cd:sequence>
+ <cd:string value="setuparranging"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="disable"/>
+ <cd:constant type="2*16"/>
+ <cd:constant type="2*8"/>
+ <cd:constant type="2*4"/>
+ <cd:constant type="2*2"/>
+ <cd:constant type="2**2"/>
+ <cd:constant type="2*2*4"/>
+ <cd:constant type="2*4*2"/>
+ <cd:constant type="2UP"/>
+ <cd:constant type="2DOWN"/>
+ <cd:constant type="2SIDE"/>
+ <cd:constant type="2TOP"/>
+ <cd:constant type="mirrored"/>
+ <cd:constant type="rotated"/>
+ <cd:constant type="doublesided"/>
+ <cd:constant type="negative"/>
+ <cd:constant type="background"/>
+ <cd:constant type="90"/>
+ <cd:constant type="180"/>
+ <cd:constant type="270"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showprint" file="page-run.tex"> <!-- page-lay.tex -->
+ <cd:sequence>
+ <cd:string value="showprint"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:inherit name="setuppapersize" n="1"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:inherit name="setuppapersize" n="2"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:inherit name="setuplayout" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definelogo" file="page-log.tex">
+ <cd:sequence>
+ <cd:string value="definelogo"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="top"/>
+ <cd:constant type="header"/>
+ <cd:constant type="footer"/>
+ <cd:constant type="bottom"/>
+ </cd:keywords>
+ <cd:keywords n="3">
<cd:constant type="none"/>
- </cd:parameter>
- <cd:parameter name="sidespaceafter">
+ <cd:constant type="page"/>
+ <cd:constant type="leftedge"/>
+ <cd:constant type="leftmargin"/>
+ <cd:constant type="left"/>
+ <cd:constant type="middle"/>
+ <cd:constant type="right"/>
+ <cd:constant type="rightmargin"/>
+ <cd:constant type="rightedge"/>
+ </cd:keywords>
+ <cd:assignments n="4" list="yes">
+ <cd:parameter name="command">
+ <cd:constant type="cd:command"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="state">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placelogos" file="page-log.tex">
+ <cd:sequence>
+ <cd:string value="placelogos"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupwhitespace">
+ <cd:sequence>
+ <cd:string value="setupwhitespace"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="none" default="yes"/>
<cd:constant type="small"/>
<cd:constant type="medium"/>
<cd:constant type="big"/>
- <cd:constant type="none"/>
- </cd:parameter>
- <cd:parameter name="indentnext">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="ntop">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="nbottom">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="nlines">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="default">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="tolerance">
- <cd:constant type="0"/>
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- </cd:parameter>
- <cd:parameter name="leftmargindistance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rightmargindistance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="sidealign">
- <cd:constant type="normal"/>
<cd:constant type="line"/>
- </cd:parameter>
- <cd:parameter name="numbering">
- <cd:constant type="yes"/>
- <cd:constant type="nocheck"/>
- </cd:parameter>
- <cd:inherit name="setupframed"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfloatsplitting" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="setupfloatsplitting"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="conversion">
- <cd:constant type="numbers"/>
- <cd:constant type="characters"/>
- <cd:constant type="Characters"/>
- <cd:constant type="romannumerals"/>
- <cd:constant type="Romannumerals"/>
- </cd:parameter>
- <cd:parameter name="lines">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="splitfloat" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="splitfloat"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="setupfloatsplitting"/>
- </cd:assignments>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupoppositeplacing" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="setupoppositeplacing"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments>
- <cd:parameter name="state">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="before">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="inbetween">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="after">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="opposite" type="environment">
- <cd:sequence>
- <cd:string value="opposite"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setuphyphenmark" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="setuphyphenmark"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments>
- <cd:parameter name="sign">
- <cd:constant type="--"/>
- <cd:constant type="---"/>
- <cd:constant type="-"/>
- <cd:constant type="~"/>
- <cd:constant type="("/>
- <cd:constant type=")"/>
- <cd:constant type="="/>
- <cd:constant type="/"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuppositioning" file="page-lyr.tex">
- <cd:sequence>
- <cd:string value="setuppositioning"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="state">
- <cd:constant type="start"/>
- <cd:constant type="overlay"/>
- </cd:parameter>
- <cd:parameter name="unit">
- <cd:constant type="cm"/>
- <cd:constant type="pt"/>
- <cd:constant type="em"/>
- <cd:constant type="mm"/>
- <cd:constant type="ex"/>
- <cd:constant type="es"/>
- <cd:constant type="in"/>
- </cd:parameter>
- <cd:parameter name="factor">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="scale">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="offset">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="xstep">
- <cd:constant type="absolute"/>
- <cd:constant type="relative"/>
- </cd:parameter>
- <cd:parameter name="ystep">
- <cd:constant type="absolute"/>
- <cd:constant type="relative"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="positioning" type="environment">
- <cd:sequence>
- <cd:string value="positioning"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="grid" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="grid"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="x">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="y">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="nx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ny">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="dx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="dy">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="xstep">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ystep">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="offset">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="factor">
+ <cd:constant type="fixed"/>
+ <cd:constant type="fix"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupindenting">
+ <cd:sequence>
+ <cd:string value="setupindenting"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:resolve name="indenting"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definesectionblock" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="definesectionblock"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:inherit name="setupsectionblock" n="1"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="setupsectionblock" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsectionblock" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="setupsectionblock"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="number">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="page">
+ <cd:constant type="yes"/>
+ <cd:constant type="right"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definesection" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="definesection"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsection" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="setupsection"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:parameter name="conversion">
+ <cd:constant type="numbers"/>
+ <cd:constant type="characters"/>
+ <cd:constant type="Characters"/>
+ <cd:constant type="romannumerals"/>
+ <cd:constant type="Romannumerals"/>
+ </cd:parameter>
+ <cd:parameter name="previousnumber">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuphead" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="setuphead"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:section"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="textstyle">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="numberstyle">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="textcolor">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="numbercolor">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="number">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="ownnumber">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="page">
+ <cd:constant type="left"/>
+ <cd:constant type="right"/>
+ <cd:constant type="yes"/>
+ </cd:parameter>
+ <cd:parameter name="continue">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="header">
+ <cd:constant type="none"/>
+ <cd:constant type="empty"/>
+ <cd:constant type="high"/>
+ <cd:constant type="nomarking"/>
+ </cd:parameter>
+ <cd:parameter name="text">
+ <cd:constant type="none"/>
+ <cd:constant type="empty"/>
+ <cd:constant type="high"/>
+ <cd:constant type="nomarking"/>
+ </cd:parameter>
+ <cd:parameter name="footer">
+ <cd:constant type="none"/>
+ <cd:constant type="empty"/>
+ <cd:constant type="high"/>
+ <cd:constant type="nomarking"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="inbetween">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:constant type="normal"/>
+ <cd:constant type="inmargin"/>
+ <cd:constant type="middle"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="hang">
+ <cd:constant type="none"/>
+ <cd:constant type="broad"/>
+ <cd:constant type="fit"/>
+ <cd:constant type="line"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="command">
+ <cd:constant type="cd:twoarguments"/>
+ </cd:parameter>
+ <cd:parameter name="numbercommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="textcommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="deepnumbercommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="deeptextcommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="prefix">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="placehead">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ <cd:constant type="empty"/>
+ </cd:parameter>
+ <cd:parameter name="incrementnumber">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ <cd:constant type="cd:list"/>
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="resetnumber">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="file">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="expansion">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ <cd:constant type="command"/>
+ </cd:parameter>
+ <cd:parameter name="margintext">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:inherit name="setupheads" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupheadnumber" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="setupheadnumber"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:section"/>
+ </cd:keywords>
+ <cd:keywords n="2">
<cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="scale">
+ <cd:constant type="+cd:number"/>
+ <cd:constant type="-cd:number"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="headnumber">
+ <cd:sequence>
+ <cd:string value="headnumber"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:section"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="determineheadnumber" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="determineheadnumber"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:section"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="currentheadnumber" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="currentheadnumber"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="nextsection" generated="yes" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="next"/>
+ <cd:variable value="section"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="definehead" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="definehead"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:section"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupitemgroup" file="core-itm.tex">
+ <cd:sequence>
+ <cd:string value="setupitemgroup"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
<cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="unit">
- <cd:constant type="cm"/>
- <cd:constant type="pt"/>
- <cd:constant type="em"/>
- <cd:constant type="mm"/>
- <cd:constant type="ex"/>
- <cd:constant type="es"/>
- <cd:constant type="in"/>
- </cd:parameter>
- <cd:parameter name="location">
- <cd:constant type="left"/>
- <cd:constant type="middle"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="page" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="page"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="yes" default="yes"/>
- <cd:constant type="makeup"/>
- <cd:constant type="no"/>
- <cd:constant type="preference"/>
- <cd:constant type="bigpreference"/>
- <cd:constant type="left"/>
- <cd:constant type="right"/>
- <cd:constant type="disable"/>
- <cd:constant type="last"/>
- <cd:constant type="quadruple"/>
- <cd:constant type="even"/>
- <cd:constant type="odd"/>
- <cd:constant type="blank"/>
- <cd:constant type="empty"/>
- <cd:constant type="reset"/>
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupreferencing" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="setupreferencing"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="state">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="cd:sectionnumber">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="prefix">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="interaction">
- <cd:constant type="label"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="all"/>
- <cd:constant type="symbol"/>
- </cd:parameter>
- <cd:parameter name="width">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="left">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="right">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="convertfile">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- <cd:constant type="small"/>
- <cd:constant type="big"/>
- </cd:parameter>
- <cd:parameter name="separator">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="autofile">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- <cd:constant type="page"/>
- </cd:parameter>
- <cd:parameter name="global">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupurl" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="setupurl"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="urlalternative">
- <cd:constant type="none"/>
- <cd:constant type="both"/>
+ <cd:constant type="each"/>
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes" list="yes">
+ <cd:constant type="standard" default="yes"/>
+ <cd:constant type="broad"/>
+ <cd:constant type="serried"/>
+ <cd:constant type="packed"/>
+ <cd:constant type="unpacked"/>
+ <cd:constant type="nowhite"/>
<cd:constant type="before"/>
<cd:constant type="after"/>
- </cd:parameter>
- <cd:parameter name="urlspace">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="writetoreferencelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="writetoreferencelist"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placereferencelist">
- <cd:sequence>
- <cd:string value="placereferencelist"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definereferencelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="definereferencelist"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="setupreferencelist"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupreferencelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="setupreferencelist"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="state">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="criterium">
+ <cd:constant type="stopper"/>
+ <cd:constant type="joinedup"/>
+ <cd:constant type="atmargin"/>
+ <cd:constant type="inmargin"/>
+ <cd:constant type="autointro"/>
+ <cd:constant type="loose"/>
+ <cd:constant type="repeat"/>
<cd:constant type="cd:section"/>
- <cd:constant type="local"/>
- <cd:constant type="previous"/>
- <cd:constant type="all"/>
- </cd:parameter>
- <cd:parameter name="command">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="before">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="after">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="writetolist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="writetolist"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:section"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="writebetweenlist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="writebetweenlist"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:section"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="nolist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="nolist"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="listsymbol" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="listsymbol"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="placelist"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="setuplist"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="determinelistcharacteristics" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="determinelistcharacteristics"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="setuplist"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placecombinedlist" variant="1" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="placecombinedlist"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="setupcombinedlist"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="definelist"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="setuplist"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuplist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="setuplist"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="state">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="alternative">
+ <cd:constant type="paragraph"/>
+ <cd:constant type="intext"/>
+ <cd:constant type="random"/>
+ <cd:constant type="reverse"/>
+ </cd:keywords>
+ <cd:assignments n="4" optional="yes" list="yes">
+ <cd:parameter name="margin">
+ <cd:constant type="no"/>
+ <cd:constant type="standard"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="leftmargin">
+ <cd:constant type="no"/>
+ <cd:constant type="standard"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rightmargin">
+ <cd:constant type="no"/>
+ <cd:constant type="standard"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="factor">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="items">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="start">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="inbetween">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="left">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="right">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="beforehead">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="afterhead">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="headstyle">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="marstyle">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="symstyle">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="stopper">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="symbol">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="symalign">
+ <cd:resolve name="symalign"/>
+ </cd:parameter>
+ <cd:parameter name="indentnext">
+ <cd:resolve name="indentnext"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="itemgroup" type="environment" generated="yes" file="core-itm.tex">
+ <cd:sequence>
+ <cd:variable value="itemgroup"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
<cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- <cd:constant type="..."/>
- <cd:constant type="none"/>
- <cd:constant type="command"/>
- </cd:parameter>
- <cd:parameter name="coupling">
- <cd:constant type="on"/>
- <cd:constant type="off"/>
- </cd:parameter>
- <cd:parameter name="criterium">
- <cd:constant type="cd:section"/>
- <cd:constant type="local"/>
- <cd:constant type="previous"/>
- <cd:constant type="current"/>
- <cd:constant type="all"/>
- </cd:parameter>
- <cd:parameter name="pageboundaries">
- <cd:constant type="cd:list"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="numberstyle">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="textstyle">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="pagestyle">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="color">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="command">
- <cd:constant type="cd:threearguments"/>
- </cd:parameter>
- <cd:parameter name="numbercommand">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="textcommand">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="pagecommand">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="interaction">
- <cd:constant type="cd:sectionnumber"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="pagenumber"/>
- <cd:constant type="all"/>
- </cd:parameter>
- <cd:parameter name="before">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="after">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="inbetween">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="left">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="right">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="label">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="prefix">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- <cd:constant type="none"/>
- </cd:parameter>
- <cd:parameter name="pagenumber">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="headnumber">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="cd:sectionnumber">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="aligntitle">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="margin">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="width">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="fit"/>
- </cd:parameter>
- <cd:parameter name="height">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="fit"/>
- <cd:constant type="broad"/>
- </cd:parameter>
- <cd:parameter name="depth">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="fit"/>
+ <cd:constant type="A"/>
+ <cd:constant type="KA"/>
+ <cd:constant type="n"/>
+ <cd:constant type="N"/>
+ <cd:constant type="m"/>
+ <cd:constant type="r"/>
+ <cd:constant type="R"/>
+ <cd:constant type="KR"/>
+ <cd:constant type="cd:number"/>
+ <cd:constant type="continue"/>
+ <cd:constant type="standard" default="yes"/>
<cd:constant type="broad"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="separator">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="stopper">
+ <cd:constant type="serried"/>
+ <cd:constant type="packed"/>
+ <cd:constant type="stopper"/>
+ <cd:constant type="joinedup"/>
+ <cd:constant type="atmargin"/>
+ <cd:constant type="inmargin"/>
+ <cd:constant type="intro"/>
+ <cd:constant type="columns"/>
+ <cd:constant type="text"/>
+ <cd:constant type="paragraph"/>
+ <cd:constant type="repeat"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="setupitemgroup" n="4"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="item" file="core-itm.tex">
+ <cd:sequence>
+ <cd:string value="item"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="but">
+ <cd:sequence>
+ <cd:string value="but"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" interactive="exclusive"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="its">
+ <cd:sequence>
+ <cd:string value="its"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ran">
+ <cd:sequence>
+ <cd:string value="ran"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="head">
+ <cd:sequence>
+ <cd:string value="head"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mar">
+ <cd:sequence>
+ <cd:string value="mar"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="sub">
+ <cd:sequence>
+ <cd:string value="sub"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="sym" file="core-itm.tex">
+ <cd:sequence>
+ <cd:string value="sym"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nop">
+ <cd:sequence>
+ <cd:string value="nop"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="defineregister" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="defineregister"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:singular"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:plural"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupregister" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="setupregister"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:singular"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="balance">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="pagestyle">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="textstyle">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="indicator">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="coupling">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="cd:sectionnumber">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="criterium">
+ <cd:constant type="cd:section"/>
+ <cd:constant type="local"/>
+ <cd:constant type="all"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="symbol">
+ <cd:constant type="1"/>
+ <cd:constant type="2"/>
+ <cd:constant type="..."/>
+ <cd:constant type="n"/>
+ <cd:constant type="a"/>
+ <cd:constant type="..."/>
+ <cd:constant type="none"/>
+ </cd:parameter>
+ <cd:parameter name="interaction">
+ <cd:constant type="pagenumber"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="expansion">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ <cd:constant type="command"/>
+ </cd:parameter>
+ <cd:parameter name="referencing">
+ <cd:constant type="on"/>
+ <cd:constant type="off"/>
+ </cd:parameter>
+ <cd:parameter name="command">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="location">
+ <cd:constant type="left"/>
+ <cd:constant type="middle"/>
+ <cd:constant type="right"/>
+ </cd:parameter>
+ <cd:parameter name="maxwidth">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="unknownreference">
+ <cd:constant type="empty"/>
+ <cd:constant type="none"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:constant type="a"/>
+ <cd:constant type="b"/>
+ <cd:constant type="A"/>
+ <cd:constant type="B"/>
+ </cd:parameter>
+ <cd:parameter name="prefix">
+ <cd:constant type="both"/>
+ <cd:constant type="first"/>
+ <cd:constant type="none"/>
+ </cd:parameter>
+ <cd:parameter name="compress">
+ <cd:constant type="no"/>
+ <cd:constant type="yes"/>
+ </cd:parameter>
+ <cd:parameter name="deeptextcommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="register" generated="yes" file="core-reg.tex">
+ <cd:sequence>
+ <cd:variable value="register"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="symbol">
- <cd:constant type="none"/>
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- <cd:constant type="3"/>
- <cd:constant type="..."/>
- </cd:parameter>
- <cd:parameter name="expansion">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- <cd:constant type="command"/>
- </cd:parameter>
- <cd:parameter name="maxwidth">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:inherit name="framed"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuplistalternative" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="setuplistalternative"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="no">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- <!-- cd:constant type="cd:name"/ -->
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="command">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="width">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stretch">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definecombinedlist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="definecombinedlist"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:list"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="setupcombinedlist"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupcombinedlist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="setupcombinedlist"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="level">
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- <cd:constant type="3"/>
- <cd:constant type="4"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="current"/>
- </cd:parameter>
- <cd:inherit name="setuplist"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placecombinedlist" variant="2" generated="yes" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="place"/>
- <cd:variable value="combinedlist"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="setupcombinedlist"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="completecombinedlist" generated="yes">
- <cd:sequence>
- <cd:string value="complete"/>
- <cd:variable value="combinedlist"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="setupcombinedlist"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupnumbering" file="core-num.tex">
- <cd:sequence>
- <cd:string value="setupnumbering"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="way">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="state">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupformulae">
- <cd:sequence>
- <cd:string value="setupformulae"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="location">
- <cd:constant type="left"/>
- <cd:constant type="right"/>
- </cd:parameter>
- <cd:parameter name="left">
+ </cd:keywords>
+ <cd:index n="2" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="startregister" generated="yes" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="start"/>
+ <cd:variable value="register"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="right">
+ </cd:keywords>
+ <cd:index n="2" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="writetoregister" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="writetoregister"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:singular"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="align">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="option">
- <cd:constant type="middle"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="margin">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="standard"/>
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="align">
- <cd:constant type="flushleft"/>
- <cd:constant type="flushright"/>
- <cd:constant type="middle"/>
- <cd:constant type="center"/>
- </cd:parameter>
- <cd:parameter name="leftmargin">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rightmargin">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="indentnext">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="alternative">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="spacebefore">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="after">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="separator">
+ </cd:keywords>
+ <cd:index n="3" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="coupledregister" generated="yes">
+ <cd:sequence>
+ <cd:string value="coupled"/>
+ <cd:variable value="register"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="conversion">
- <cd:constant type="numbers"/>
- <cd:constant type="characters"/>
- <cd:constant type="Characters"/>
- <cd:constant type="romannumerals"/>
- <cd:constant type="Romannumerals"/>
+ </cd:keywords>
+ <cd:index n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="coupleregister" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="coupleregister"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placeregister" variant="1" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="placeregister"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="setupregister" n="3"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="seeregister" generated="yes">
+ <cd:sequence>
+ <cd:string value="see"/>
+ <cd:variable value="register"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="publication" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="publication"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuppublications" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="setuppublications"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="alternative">
- <cd:constant type="apa"/>
- <cd:constant type="normal"/>
- </cd:parameter>
- <cd:inherit name="setupenumerations"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuplines" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="setuplines"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="before">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="after">
+ </cd:keywords>
+ <cd:content n="2"/>
+ <cd:index n="3" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="completeregister" generated="yes" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="complete"/>
+ <cd:variable value="register"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="yes" optional="yes" list="yes">
+ <cd:inherit name="setupregister" n="3"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placeregister" variant="2" generated="yes" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="place"/>
+ <cd:variable value="register"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="yes" optional="yes" list="yes">
+ <cd:inherit name="setupregister" n="3"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definesynonyms" file="core-syn.tex">
+ <cd:sequence>
+ <cd:string value="definesynonyms"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:singular"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:plural"/>
+ </cd:keywords>
+ <cd:keywords n="3">
<cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="inbetween">
+ </cd:keywords>
+ <cd:keywords n="4" optional="yes">
<cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="indenting">
- <cd:resolve name="indenting"/>
- </cd:parameter>
- <cd:parameter name="space">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="lines" type="environment">
- <cd:sequence>
- <cd:string value="lines"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupparagraphnumbering" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="setupparagraphnumbering"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="state">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- <cd:constant type="reset"/>
- <cd:constant type="line"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuplinenumbering" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="setuplinenumbering"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="conversion">
- <cd:constant type="numbers"/>
- <cd:constant type="characters"/>
- <cd:constant type="Characters"/>
- <cd:constant type="romannumerals"/>
- <cd:constant type="Romannumerals"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="start">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="step">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="width">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="location">
- <cd:constant type="intext"/>
- <cd:constant type="inmargin"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="prefix">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsynonyms" file="core-syn.tex">
+ <cd:sequence>
+ <cd:string value="setupsynonyms"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="textstyle">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="synonymstyle">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="location">
+ <cd:constant type="left"/>
+ <cd:constant type="right"/>
+ <cd:constant type="top"/>
+ <cd:constant type="serried"/>
+ <cd:constant type="inmargin"/>
+ <cd:constant type="inleft"/>
+ <cd:constant type="inright"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="state">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="criterium">
+ <cd:constant type="all"/>
+ <cd:constant type="used"/>
+ </cd:parameter>
+ <cd:parameter name="conversion">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="expansion">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ <cd:constant type="command"/>
+ </cd:parameter>
+ <cd:parameter name="command">
+ <cd:constant type="cd:threearguments"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="synonym" generated="yes">
+ <cd:sequence>
+ <cd:variable value="synonym"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="referencing">
- <cd:constant type="on"/>
- <cd:constant type="off"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="linenumbering" type="environment">
- <cd:sequence>
- <cd:string value="linenumbering"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="continue"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="line" type="environment">
- <cd:sequence>
- <cd:string value="line"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="someline" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="someline"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="inline" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="inline"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupinmargin" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="setupinmargin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="left"/>
- <cd:constant type="right"/>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="location">
- <cd:constant type="left"/>
- <cd:constant type="right"/>
- <cd:constant type="both"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="before">
+ </cd:keywords>
+ <cd:content n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="completelistofsynonyms" generated="yes">
+ <cd:sequence>
+ <cd:string value="completelistof"/>
+ <cd:variable value="synonyms"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="placelistofsynonyms" generated="yes">
+ <cd:sequence>
+ <cd:string value="placelistof"/>
+ <cd:variable value="synonyms"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="loadsynonyms" generated="yes">
+ <cd:sequence>
+ <cd:string value="load"/>
+ <cd:variable value="synonyms"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="definesorting" file="core-syn.tex">
+ <cd:sequence>
+ <cd:string value="definesorting"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:singular"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:plural"/>
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes">
<cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="after">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="align">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="line">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="separator">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsorting" file="core-syn.tex">
+ <cd:sequence>
+ <cd:string value="setupsorting"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="command">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="state">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="criterium">
+ <cd:constant type="all"/>
+ <cd:constant type="used"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="expansion">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ <cd:constant type="command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="sort" generated="yes">
+ <cd:sequence>
+ <cd:variable value="sort"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="width">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stack">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:inherit name="setupframed"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuppagenumber" file="page-num.tex">
- <cd:sequence>
- <cd:string value="setuppagenumber"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="number">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="state">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- <cd:constant type="keep"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupsubpagenumber" file="page-num.tex">
- <cd:sequence>
- <cd:string value="setupsubpagenumber"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="way">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="state">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- <cd:constant type="none"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupblank">
- <cd:sequence>
- <cd:string value="setupblank"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="normal" default="yes"/>
- <cd:constant type="standard"/>
- <cd:constant type="line"/>
- <cd:constant type="cd:dimension"/>
- <cd:constant type="big"/>
- <cd:constant type="medium"/>
- <cd:constant type="small"/>
- <cd:constant type="fixed"/>
- <cd:constant type="flexible"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineblank" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="defineblank"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:inherit name="setupblank"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definepapersize" file="page-lay.tex">
- <cd:sequence>
- <cd:string value="definepapersize"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="width">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="height">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="scale">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuppaper" file="page-lay.tex">
- <cd:sequence>
- <cd:string value="setuppaper"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="paper">
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="completelistofsorts" generated="yes">
+ <cd:sequence>
+ <cd:string value="completelistof"/>
+ <cd:variable value="sorts"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="placelistofsorts" generated="yes">
+ <cd:sequence>
+ <cd:string value="placelistof"/>
+ <cd:variable value="sorts"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="loadsorts" generated="yes">
+ <cd:sequence>
+ <cd:string value="load"/>
+ <cd:variable value="sorts"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="definemakeup" file="page-mak.tex">
+ <cd:sequence>
+ <cd:string value="definemakeup"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="page">
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="setupmakeup" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="makeup" type="environment">
+ <cd:sequence>
+ <cd:string value="makeup"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="nx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ny">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="width">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="height">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="topspace">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="backspace">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="option">
- <cd:constant type="max"/>
- <cd:constant type="fit"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuppapersize" file="page-lay.tex">
- <cd:sequence>
- <cd:string value="setuppapersize"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="A3"/>
- <cd:constant type="A4" default="yes"/>
- <cd:constant type="A5"/>
- <cd:constant type="A6"/>
- <cd:constant type="letter"/>
- <cd:constant type="..."/>
- <cd:constant type="CD"/>
- <cd:constant type="cd:name"/>
- <cd:constant type="landscape"/>
- <cd:constant type="mirrored"/>
- <cd:constant type="rotated"/>
- <cd:constant type="90"/>
- <cd:constant type="180"/>
- <cd:constant type="270"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="A3"/>
- <cd:constant type="A4" default="yes"/>
- <cd:constant type="A5"/>
- <cd:constant type="A6"/>
- <cd:constant type="letter"/>
- <cd:constant type="..."/>
- <cd:constant type="cd:name"/>
- <cd:constant type="landscape"/>
- <cd:constant type="mirrored"/>
- <cd:constant type="rotated"/>
- <cd:constant type="negative"/>
- <cd:constant type="90"/>
- <cd:constant type="180"/>
- <cd:constant type="270"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuparranging" file="page-imp.tex">
- <cd:sequence>
- <cd:string value="setuparranging"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="disable"/>
- <cd:constant type="2*16"/>
- <cd:constant type="2*8"/>
- <cd:constant type="2*4"/>
- <cd:constant type="2*2"/>
- <cd:constant type="2**2"/>
- <cd:constant type="2*2*4"/>
- <cd:constant type="2*4*2"/>
- <cd:constant type="2UP"/>
- <cd:constant type="2DOWN"/>
- <cd:constant type="2SIDE"/>
- <cd:constant type="2TOP"/>
- <cd:constant type="mirrored"/>
- <cd:constant type="rotated"/>
- <cd:constant type="doublesided"/>
- <cd:constant type="negative"/>
- <cd:constant type="background"/>
- <cd:constant type="90"/>
- <cd:constant type="180"/>
- <cd:constant type="270"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showprint">
- <cd:sequence>
- <cd:string value="showprint"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:inherit name="setuppapersize"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:inherit name="setuppapersize"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="setuplayout"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definelogo" file="page-log.tex">
- <cd:sequence>
- <cd:string value="definelogo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="top"/>
- <cd:constant type="header"/>
- <cd:constant type="footer"/>
- <cd:constant type="bottom"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="none"/>
- <cd:constant type="page"/>
- <cd:constant type="leftedge"/>
- <cd:constant type="leftmargin"/>
- <cd:constant type="left"/>
- <cd:constant type="middle"/>
- <cd:constant type="right"/>
- <cd:constant type="rightmargin"/>
- <cd:constant type="rightedge"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="command">
- <cd:constant type="cd:command"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="state">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placelogos" file="page-log.tex">
- <cd:sequence>
- <cd:string value="placelogos"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupwhitespace">
- <cd:sequence>
- <cd:string value="setupwhitespace"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="none" default="yes"/>
- <cd:constant type="small"/>
- <cd:constant type="medium"/>
- <cd:constant type="big"/>
- <cd:constant type="line"/>
- <cd:constant type="fixed"/>
- <cd:constant type="fix"/>
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupindenting">
- <cd:sequence>
- <cd:string value="setupindenting"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="setupmakeup" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupmakeup" file="page-mak.tex">
+ <cd:sequence>
+ <cd:string value="setupmakeup"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="voffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="hoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="page">
+ <cd:constant type="left"/>
+ <cd:constant type="yes"/>
+ <cd:constant type="right"/>
+ </cd:parameter>
+ <cd:parameter name="commands">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="doublesided">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ <cd:constant type="empty"/>
+ </cd:parameter>
+ <cd:parameter name="headerstate">
+ <cd:constant type="normal"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="start"/>
+ <cd:constant type="empty"/>
+ <cd:constant type="none"/>
+ <cd:constant type="nomarking"/>
+ </cd:parameter>
+ <cd:parameter name="footerstate">
+ <cd:constant type="normal"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="start"/>
+ <cd:constant type="empty"/>
+ <cd:constant type="none"/>
+ <cd:constant type="nomarking"/>
+ </cd:parameter>
+ <cd:parameter name="textstate">
+ <cd:constant type="normal"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="start"/>
+ <cd:constant type="empty"/>
+ <cd:constant type="none"/>
+ <cd:constant type="nomarking"/>
+ </cd:parameter>
+ <cd:parameter name="topstate">
+ <cd:constant type="stop"/>
+ <cd:constant type="start"/>
+ </cd:parameter>
+ <cd:parameter name="bottomstate">
+ <cd:constant type="stop"/>
+ <cd:constant type="start"/>
+ </cd:parameter>
+ <cd:parameter name="pagestate">
+ <cd:constant type="stop"/>
+ <cd:constant type="start"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="namemakeup" type="environment" generated="yes">
+ <cd:sequence>
+ <cd:variable value="name"/>
+ <cd:string value="makeup"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="version">
+ <cd:sequence>
+ <cd:string value="version"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="final" default="yes"/>
+ <cd:constant type="concept"/>
+ <cd:constant type="temporary"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="currentdate">
+ <cd:sequence>
+ <cd:string value="currentdate"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:inherit name="date" n="2"/> <!-- or vice versa :) -->
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="date" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="date"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes"> <!-- if not given, current date is used -->
+ <cd:parameter name="d">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="m">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="y">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="day"/>
+ <cd:constant type="month"/>
+ <cd:constant type="year"/>
+ <cd:constant type="weekday"/>
+ <cd:constant type="d"/>
+ <cd:constant type="m"/>
+ <cd:constant type="y"/> <!-- also j -->
+ <cd:constant type="w"/>
+ <cd:constant type="dd"/>
+ <cd:constant type="mm"/>
+ <cd:constant type="yy"/> <!-- also jj -->
+ <cd:constant type="space"/>
+ <cd:constant type="--"/>
+ <cd:constant type="day+"/>
+ <cd:constant type="d+"/>
+ <cd:constant type="dd+"/>
+ <cd:constant type="referral"/>
+ <cd:constant type="cd:text"/> <!-- any other text -->
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="referraldate" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="referraldate"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="indenting" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="indenting"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
<cd:resolve name="indenting"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definesectionblock" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="definesectionblock"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="setupsectionblock"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupsectionblock" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="setupsectionblock"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="number">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="page">
- <cd:constant type="yes"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="noindenting" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="noindenting"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="blank" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="blank"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="small"/>
+ <cd:constant type="medium"/>
+ <cd:constant type="big" default="yes"/>
+ <cd:constant type="nowhite"/>
+ <cd:constant type="back"/>
+ <cd:constant type="white"/>
+ <cd:constant type="disable"/>
+ <cd:constant type="force"/>
+ <cd:constant type="reset"/>
+ <cd:constant type="line"/>
+ <cd:constant type="halfline"/>
+ <cd:constant type="cd:formula"/>
+ <cd:constant type="fixed"/>
+ <cd:constant type="flexible"/>
+ <cd:constant type="none"/>
+ <cd:constant type="always"/>
+ <cd:constant type="outer"/>
+ <cd:constant type="joinedup"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="packed" type="environment" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="packed"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="blank"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="unpacked" type="environment">
+ <cd:sequence>
+ <cd:string value="unpacked"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="linecorrection" type="environment">
+ <cd:sequence>
+ <cd:string value="linecorrection"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="correctwhitespace" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="correctwhitespace"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="postponing" type="environment">
+ <cd:sequence>
+ <cd:string value="postponing"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="local" type="environment">
+ <cd:sequence>
+ <cd:string value="local"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="narrower" type="environment">
+ <cd:sequence>
+ <cd:string value="narrower"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="left"/>
+ <cd:constant type="middle" default="yes"/>
<cd:constant type="right"/>
- </cd:parameter>
- <cd:parameter name="before">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="after">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definesection" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="definesection"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupsection" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="setupsection"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="conversion">
- <cd:constant type="numbers"/>
- <cd:constant type="characters"/>
- <cd:constant type="Characters"/>
- <cd:constant type="romannumerals"/>
- <cd:constant type="Romannumerals"/>
- </cd:parameter>
- <cd:parameter name="previousnumber">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuphead" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="setuphead"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:section"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="textstyle">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="numberstyle">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="color">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="textcolor">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="numbercolor">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="number">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="ownnumber">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="page">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="hiding" type="environment">
+ <cd:sequence>
+ <cd:string value="hiding"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupalign" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="setupalign"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="width"/>
<cd:constant type="left"/>
<cd:constant type="right"/>
- <cd:constant type="yes"/>
- </cd:parameter>
- <cd:parameter name="continue">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="header">
- <cd:constant type="none"/>
- <cd:constant type="empty"/>
- <cd:constant type="high"/>
- <cd:constant type="nomarking"/>
- </cd:parameter>
- <cd:parameter name="text">
- <cd:constant type="none"/>
- <cd:constant type="empty"/>
- <cd:constant type="high"/>
- <cd:constant type="nomarking"/>
- </cd:parameter>
- <cd:parameter name="footer">
- <cd:constant type="none"/>
- <cd:constant type="empty"/>
- <cd:constant type="high"/>
- <cd:constant type="nomarking"/>
- </cd:parameter>
- <cd:parameter name="before">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="inbetween">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="after">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="alternative">
- <cd:constant type="normal"/>
- <cd:constant type="inmargin"/>
<cd:constant type="middle"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="hang">
- <cd:constant type="none"/>
+ <cd:constant type="inner"/>
+ <cd:constant type="outer"/>
+ <cd:constant type="wide"/>
<cd:constant type="broad"/>
- <cd:constant type="fit"/>
+ <cd:constant type="height"/>
+ <cd:constant type="bottom"/>
<cd:constant type="line"/>
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="command">
- <cd:constant type="cd:twoarguments"/>
- </cd:parameter>
- <cd:parameter name="numbercommand">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="textcommand">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="deepnumbercommand">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="deeptextcommand">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="prefix">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="placehead">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- <cd:constant type="empty"/>
- </cd:parameter>
- <cd:parameter name="incrementnumber">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- <cd:constant type="cd:list"/>
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="resetnumber">
+ <cd:constant type="reset"/>
+ <cd:constant type="hanging"/>
+ <cd:constant type="nothanging"/>
+ <cd:constant type="hyphenated"/>
+ <cd:constant type="nothyphenated"/>
+ <cd:constant type="lesshyphenation"/>
+ <cd:constant type="morehyphenation"/>
+ <cd:constant type="new"/>
+ <cd:constant type="old"/>
+ <cd:constant type="normal"/>
<cd:constant type="yes"/>
<cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="file">
+ <cd:constant type="flushleft"/>
+ <cd:constant type="flushright"/>
+ <cd:constant type="flushouter"/>
+ <cd:constant type="flushinner"/>
+ <cd:constant type="center"/>
+ <cd:constant type="hz"/>
+ <cd:constant type="nohz"/>
+ <cd:constant type="spacing"/>
+ <cd:constant type="nospacing"/>
+ <cd:constant type="tolerant"/>
+ <cd:constant type="verytolerant"/>
+ <cd:constant type="stretch"/>
+ <cd:constant type="lefttoright"/>
+ <cd:constant type="righttoleft"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+
+ <cd:command name="alignment" type="environment" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="alignment"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:inherit name="setupalign" n="1"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupspacing">
+ <cd:sequence>
+ <cd:string value="setupspacing"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="broad"/>
+ <cd:constant type="packed"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptolerance" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="setuptolerance"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="horizontal"/>
+ <cd:constant type="vertical"/>
+ <cd:constant type="stretch"/>
+ <cd:constant type="space"/>
+ <cd:constant type="verystrict" default="yes"/>
+ <cd:constant type="strict"/>
+ <cd:constant type="tolerant"/>
+ <cd:constant type="verytolerant"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="pagetype" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="pagetype"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="expansion">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- <cd:constant type="command"/>
- </cd:parameter>
- <cd:parameter name="margintext">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:inherit name="setupheads"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupheadnumber" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="setupheadnumber"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:section"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:number"/>
- <cd:constant type="+cd:number"/>
- <cd:constant type="-cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="headnumber">
- <cd:sequence>
- <cd:string value="headnumber"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:section"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="determineheadnumber" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="determineheadnumber"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:section"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="currentheadnumber" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="currentheadnumber"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="nextsection" generated="yes" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="next"/>
- <cd:variable value="section"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="definehead" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="definehead"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:section"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupitemgroup" file="core-itm.tex">
- <cd:sequence>
- <cd:string value="setupitemgroup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:number"/>
- <cd:constant type="each"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="standard" default="yes"/>
- <cd:constant type="broad"/>
- <cd:constant type="serried"/>
- <cd:constant type="packed"/>
- <cd:constant type="unpacked"/>
- <cd:constant type="nowhite"/>
- <cd:constant type="before"/>
- <cd:constant type="after"/>
- <cd:constant type="stopper"/>
- <cd:constant type="joinedup"/>
- <cd:constant type="atmargin"/>
- <cd:constant type="inmargin"/>
- <cd:constant type="autointro"/>
- <cd:constant type="loose"/>
- <cd:constant type="repeat"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="paragraph"/>
- <cd:constant type="intext"/>
- <cd:constant type="random"/>
- <cd:constant type="reverse"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:parameter name="margin">
- <cd:constant type="no"/>
- <cd:constant type="standard"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="leftmargin">
- <cd:constant type="no"/>
- <cd:constant type="standard"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rightmargin">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="processpage" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="processpage"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="yes" default="yes"/>
<cd:constant type="no"/>
- <cd:constant type="standard"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="width">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="factor">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="items">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="start">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="before">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="inbetween">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="after">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="left">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="right">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="couplepage" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="couplepage"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="option">
+ <cd:constant type="doublesided"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="position" file="page-lyr.tex">
+ <cd:sequence>
+ <cd:string value="position"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:position n="1" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupscreens" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="setupscreens"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="method">
+ <cd:constant type="dot"/>
+ <cd:constant type="rule"/>
+ <cd:constant type="external"/>
+ </cd:parameter>
+ <cd:parameter name="resolution">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="factor">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="screen">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbackgrounds" file="page-bck.tex">
+ <cd:sequence>
+ <cd:string value="setupbackgrounds"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="top"/>
+ <cd:constant type="header"/>
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="beforehead">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="afterhead">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="headstyle">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="marstyle">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="symstyle">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stopper">
+ <cd:constant type="footer"/>
+ <cd:constant type="bottom"/>
+ <cd:constant type="page"/>
+ <cd:constant type="paper"/>
+ <cd:constant type="leftpage"/>
+ <cd:constant type="rightpage"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="leftedge"/>
+ <cd:constant type="leftmargin"/>
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="symbol">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="align">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="symalign">
- <cd:resolve name="symalign"/>
- </cd:parameter>
- <cd:parameter name="indentnext">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="itemgroup" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="itemgroup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="a"/>
- <cd:constant type="A"/>
- <cd:constant type="KA"/>
- <cd:constant type="n"/>
- <cd:constant type="N"/>
- <cd:constant type="m"/>
- <cd:constant type="r"/>
- <cd:constant type="R"/>
- <cd:constant type="KR"/>
- <cd:constant type="cd:number"/>
- <cd:constant type="continue"/>
- <cd:constant type="standard" default="yes"/>
- <cd:constant type="broad"/>
- <cd:constant type="serried"/>
- <cd:constant type="packed"/>
- <cd:constant type="stopper"/>
- <cd:constant type="joinedup"/>
- <cd:constant type="atmargin"/>
- <cd:constant type="inmargin"/>
- <cd:constant type="intro"/>
- <cd:constant type="columns"/>
- <cd:constant type="text"/>
- <cd:constant type="paragraph"/>
- <cd:constant type="repeat"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="setupitemgroup"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="item">
- <cd:sequence>
- <cd:string value="item"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="but">
- <cd:sequence>
- <cd:string value="but"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference interactive="exclusive"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="its">
- <cd:sequence>
- <cd:string value="its"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="ran">
- <cd:sequence>
- <cd:string value="ran"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="head">
- <cd:sequence>
- <cd:string value="head"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="mar">
- <cd:sequence>
- <cd:string value="mar"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="sub">
- <cd:sequence>
- <cd:string value="sub"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="sym" file="core-itm.tex">
- <cd:sequence>
- <cd:string value="sym"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="nop">
- <cd:sequence>
- <cd:string value="nop"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="defineregister" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="defineregister"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:plural"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupregister" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="setupregister"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="balance">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="align">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="pagestyle">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="textstyle">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="indicator">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="coupling">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="cd:sectionnumber">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="criterium">
- <cd:constant type="cd:section"/>
- <cd:constant type="local"/>
+ <cd:constant type="rightmargin"/>
+ <cd:constant type="rightedge"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:parameter name="state">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="cd:repeat"/>
+ </cd:parameter>
+ <cd:inherit name="setupframed" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="buffer" type="environment" generated="yes" file="core-buf.tex">
+ <cd:sequence>
+ <cd:variable value="buffer"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="buffer" type="environment" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="buffer"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getbuffer">
+ <cd:sequence>
+ <cd:string value="getbuffer"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="typebuffer" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="typebuffer"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definebuffer" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="definebuffer"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbuffer" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="setupbuffer"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="paragraph">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineblock" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="defineblock"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nomoreblocks" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="nomoreblocks"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="hideblocks" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="hideblocks"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="keepblocks" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="keepblocks"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
<cd:constant type="all"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="symbol">
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- <cd:constant type="..."/>
- <cd:constant type="n"/>
- <cd:constant type="a"/>
- <cd:constant type="..."/>
- <cd:constant type="none"/>
- </cd:parameter>
- <cd:parameter name="interaction">
- <cd:constant type="pagenumber"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="expansion">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- <cd:constant type="command"/>
- </cd:parameter>
- <cd:parameter name="referencing">
- <cd:constant type="on"/>
- <cd:constant type="off"/>
- </cd:parameter>
- <cd:parameter name="command">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="location">
- <cd:constant type="left"/>
- <cd:constant type="middle"/>
- <cd:constant type="right"/>
- </cd:parameter>
- <cd:parameter name="maxwidth">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="unknownreference">
- <cd:constant type="empty"/>
- <cd:constant type="none"/>
- </cd:parameter>
- <cd:parameter name="alternative">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="A"/>
- <cd:constant type="B"/>
- </cd:parameter>
- <cd:parameter name="prefix">
- <cd:constant type="both"/>
- <cd:constant type="first"/>
- <cd:constant type="none"/>
- </cd:parameter>
- <cd:parameter name="compress">
- <cd:constant type="no"/>
- <cd:constant type="yes"/>
- </cd:parameter>
- <cd:parameter name="deeptextcommand">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="register" generated="yes" file="core-reg.tex">
- <cd:sequence>
- <cd:variable value="register"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:index list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="startregister" generated="yes" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="start"/>
- <cd:variable value="register"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:index list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="writetoregister" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="writetoregister"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:index list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="coupledregister" generated="yes">
- <cd:sequence>
- <cd:string value="coupled"/>
- <cd:variable value="register"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:index/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="coupleregister" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="coupleregister"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placeregister" variant="1" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="placeregister"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="setupregister"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="seeregister" generated="yes">
- <cd:sequence>
- <cd:string value="see"/>
- <cd:variable value="register"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content/>
- <cd:index list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="completeregister" generated="yes" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="complete"/>
- <cd:variable value="register"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="yes" optional="yes" list="yes">
- <cd:inherit name="setupregister"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placeregister" variant="2" generated="yes" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="place"/>
- <cd:variable value="register"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="yes" optional="yes" list="yes">
- <cd:inherit name="setupregister"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definesynonyms" file="core-syn.tex">
- <cd:sequence>
- <cd:string value="definesynonyms"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:plural"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:command"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:command"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupsynonyms" file="core-syn.tex">
- <cd:sequence>
- <cd:string value="setupsynonyms"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="textstyle">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="synonymstyle">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="location">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useblocks" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="useblocks"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="processblocks" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="processblocks"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="bypassblocks" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="bypassblocks"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="forceblocks">
+ <cd:sequence>
+ <cd:string value="forceblocks"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="selectblocks" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="selectblocks"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes">
+ <cd:parameter name="criterium">
+ <cd:constant type="all"/>
+ <cd:constant type="cd:section"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupblock" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="setupblock"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="inner">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="file">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="formula" type="environment" generated="yes">
+ <cd:sequence>
+ <cd:variable value="formula"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="mathematics" file="supp-mat.tex">
+ <cd:sequence>
+ <cd:string value="mathematics"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placeformula" file="core-mat.tex">
+ <cd:sequence>
+ <cd:string value="placeformula"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2" optional="yes"/>
+ <cd:displaymath n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placesubformula" file="core-mat.tex">
+ <cd:sequence>
+ <cd:string value="placesubformula"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2" optional="yes"/>
+ <cd:displaymath n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placefloat" generated="yes" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="place"/>
+ <cd:variable value="float"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="left"/>
<cd:constant type="right"/>
+ <cd:constant type="here" default="yes"/>
<cd:constant type="top"/>
- <cd:constant type="serried"/>
- <cd:constant type="inmargin"/>
+ <cd:constant type="bottom"/>
<cd:constant type="inleft"/>
<cd:constant type="inright"/>
- </cd:parameter>
- <cd:parameter name="width">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="state">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="criterium">
- <cd:constant type="all"/>
- <cd:constant type="used"/>
- </cd:parameter>
- <cd:parameter name="conversion">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="expansion">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- <cd:constant type="command"/>
- </cd:parameter>
- <cd:parameter name="command">
- <cd:constant type="cd:threearguments"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="synonym" generated="yes">
- <cd:sequence>
- <cd:variable value="synonym"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="completelistofsynonyms" generated="yes">
- <cd:sequence>
- <cd:string value="completelistof"/>
- <cd:variable value="synonyms"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="placelistofsynonyms" generated="yes">
- <cd:sequence>
- <cd:string value="placelistof"/>
- <cd:variable value="synonyms"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="loadsynonyms" generated="yes">
- <cd:sequence>
- <cd:string value="load"/>
- <cd:variable value="synonyms"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="definesorting" file="core-syn.tex">
- <cd:sequence>
- <cd:string value="definesorting"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:plural"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:command"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupsorting" file="core-syn.tex">
- <cd:sequence>
- <cd:string value="setupsorting"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="before">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="after">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="command">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="state">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="criterium">
- <cd:constant type="all"/>
- <cd:constant type="used"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="expansion">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- <cd:constant type="command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="sort" generated="yes">
- <cd:sequence>
- <cd:variable value="sort"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="completelistofsorts" generated="yes">
- <cd:sequence>
- <cd:string value="completelistof"/>
- <cd:variable value="sorts"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="placelistofsorts" generated="yes">
- <cd:sequence>
- <cd:string value="placelistof"/>
- <cd:variable value="sorts"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="loadsorts" generated="yes">
- <cd:sequence>
- <cd:string value="load"/>
- <cd:variable value="sorts"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="definemakeup" file="page-mak.tex">
- <cd:sequence>
- <cd:string value="definemakeup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="setupmakeup"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="makeup" type="environment">
- <cd:sequence>
- <cd:string value="makeup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="setupmakeup"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupmakeup" file="page-mak.tex">
- <cd:sequence>
- <cd:string value="setupmakeup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="width">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="height">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="voffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="page">
+ <cd:constant type="inmargin"/>
+ <cd:constant type="margin"/>
+ <cd:constant type="leftmargin"/>
+ <cd:constant type="rightmargin"/>
+ <cd:constant type="leftedge"/>
+ <cd:constant type="rightedge"/>
+ <cd:constant type="innermargin"/>
+ <cd:constant type="outermargin"/>
+ <cd:constant type="inneredge"/>
+ <cd:constant type="outeredge"/>
+ <cd:constant type="inner"/>
+ <cd:constant type="outer"/>
+ <cd:constant type="line"/>
+ <cd:constant type="high"/>
+ <cd:constant type="low"/>
+ <cd:constant type="fit"/>
+ <cd:constant type="page"/>
+ <cd:constant type="leftpage"/>
+ <cd:constant type="rightpage"/>
+ <cd:constant type="opposite"/>
+ <cd:constant type="always"/>
+ <cd:constant type="auto"/>
+ <cd:constant type="force"/>
+ <cd:constant type="tall"/>
+ <cd:constant type="reset"/>
+ <cd:constant type="line"/>
+ <cd:constant type="height"/>
+ <cd:constant type="depth"/>
+ <cd:constant type="split"/>
+ <cd:constant type="90"/>
+ <cd:constant type="180"/>
+ <cd:constant type="270"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes" list="yes"/>
+ <cd:content n="3"/>
+ <cd:content n="4"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="reservefloat" generated="yes">
+ <cd:sequence>
+ <cd:string value="reserve"/>
+ <cd:variable value="float"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:parameter name="height">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="frame">
+ <cd:constant type="on"/>
+ <cd:constant type="off"/>
+ </cd:parameter>
+ </cd:assignments>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:reference n="3" optional="yes" list="yes"/>
+ <cd:content n="4"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefloat" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="definefloat"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:singular"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:plural"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfloat" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="setupfloat"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="height">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="maxheight">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="maxwidth">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="minwidth">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="default">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="pageboundaries">
+ <cd:constant type="cd:list"/>
+ </cd:parameter>
+ <cd:parameter name="leftmargindistance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rightmargindistance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="location">
+ <cd:constant type="left"/>
+ <cd:constant type="middle"/>
+ <cd:constant type="right"/>
+ </cd:parameter>
+ <cd:inherit name="setupframed" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="floattext" type="environment" generated="yes">
+ <cd:sequence>
+ <cd:variable value="float"/>
+ <cd:string value="text"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="left"/>
- <cd:constant type="yes"/>
<cd:constant type="right"/>
- </cd:parameter>
- <cd:parameter name="commands">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="doublesided">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- <cd:constant type="empty"/>
- </cd:parameter>
- <cd:parameter name="headerstate">
- <cd:constant type="normal"/>
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- <cd:constant type="empty"/>
- <cd:constant type="none"/>
- <cd:constant type="nomarking"/>
- </cd:parameter>
- <cd:parameter name="footerstate">
- <cd:constant type="normal"/>
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- <cd:constant type="empty"/>
- <cd:constant type="none"/>
- <cd:constant type="nomarking"/>
- </cd:parameter>
- <cd:parameter name="textstate">
- <cd:constant type="normal"/>
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- <cd:constant type="empty"/>
- <cd:constant type="none"/>
- <cd:constant type="nomarking"/>
- </cd:parameter>
- <cd:parameter name="topstate">
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- </cd:parameter>
- <cd:parameter name="bottomstate">
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- </cd:parameter>
- <cd:parameter name="pagestate">
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- </cd:parameter>
- <cd:parameter name="color">
+ <cd:constant type="high"/>
+ <cd:constant type="middle"/>
+ <cd:constant type="low"/>
+ <cd:constant type="offset"/>
+ <cd:constant type="tall"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ <cd:content n="4"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placelistoffloats" generated="yes">
+ <cd:sequence>
+ <cd:string value="placelistof"/>
+ <cd:variable value="floats"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="completelistoffloats" generated="yes">
+ <cd:sequence>
+ <cd:string value="completelistof"/>
+ <cd:variable value="floats"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="referral" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="referral"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="bet">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="ken">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="dat">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="van">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="aan">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="ref">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="selectpaper">
+ <cd:sequence>
+ <cd:string value="selectpaper"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="family">
+ <cd:constant type="1"/>
+ <cd:constant type="2"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="couplepaper">
+ <cd:sequence>
+ <cd:string value="couplepaper"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="namemakeup" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="name"/>
- <cd:string value="makeup"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="version">
- <cd:sequence>
- <cd:string value="version"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="final" default="yes"/>
- <cd:constant type="concept"/>
- <cd:constant type="temporary"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="currentdate">
- <cd:sequence>
- <cd:string value="currentdate"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:inherit name="date"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="date" file="core-con.tex">
- <cd:sequence>
- <cd:string value="date"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:parameter name="d">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="m">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="y">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- <cd:keywords list="yes">
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="referraldate" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="referraldate"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="indenting" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="indenting"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:resolve name="indenting"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="noindenting" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="noindenting"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="blank" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="blank"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="small"/>
- <cd:constant type="medium"/>
- <cd:constant type="big" default="yes"/>
- <cd:constant type="nowhite"/>
- <cd:constant type="back"/>
- <cd:constant type="white"/>
- <cd:constant type="disable"/>
- <cd:constant type="force"/>
- <cd:constant type="reset"/>
- <cd:constant type="line"/>
- <cd:constant type="halfline"/>
- <cd:constant type="cd:formula"/>
- <cd:constant type="fixed"/>
- <cd:constant type="flexible"/>
- <cd:constant type="none"/>
- <cd:constant type="always"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="packed" type="environment" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="packed"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="blank"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="unpacked" type="environment">
- <cd:sequence>
- <cd:string value="unpacked"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="linecorrection" type="environment">
- <cd:sequence>
- <cd:string value="linecorrection"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="correctwhitespace" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="correctwhitespace"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="postponing" type="environment">
- <cd:sequence>
- <cd:string value="postponing"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="local" type="environment">
- <cd:sequence>
- <cd:string value="local"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="narrower" type="environment">
- <cd:sequence>
- <cd:string value="narrower"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="left"/>
- <cd:constant type="middle" default="yes"/>
- <cd:constant type="right"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="hiding" type="environment">
- <cd:sequence>
- <cd:string value="hiding"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupalign" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="setupalign"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="width"/>
- <cd:constant type="left"/>
- <cd:constant type="right"/>
- <cd:constant type="middle"/>
- <cd:constant type="inner"/>
- <cd:constant type="outer"/>
- <cd:constant type="wide"/>
- <cd:constant type="broad"/>
- <cd:constant type="height"/>
- <cd:constant type="bottom"/>
- <cd:constant type="line"/>
- <cd:constant type="reset"/>
- <cd:constant type="hanging"/>
- <cd:constant type="nothanging"/>
- <cd:constant type="hyphenated"/>
- <cd:constant type="nothyphenated"/>
- <cd:constant type="lesshyphens"/>
- <cd:constant type="morehyphens"/>
- <cd:constant type="new"/>
- <cd:constant type="old"/>
- <cd:constant type="normal"/>
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- <cd:constant type="flushleft"/>
- <cd:constant type="flushright"/>
- <cd:constant type="flushouter"/>
- <cd:constant type="flushinner"/>
- <cd:constant type="center"/>
- <cd:constant type="hz"/>
- <cd:constant type="nohz"/>
- <cd:constant type="spacing"/>
- <cd:constant type="nospacing"/>
- <cd:constant type="tolerant"/>
- <cd:constant type="verytolerant"/>
- <cd:constant type="stretch"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-
-<cd:command name="alignment" type="environment">
- <cd:sequence>
- <cd:string value="alignment"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:inherit name="setupalign"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupspacing">
- <cd:sequence>
- <cd:string value="setupspacing"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="broad"/>
- <cd:constant type="packed"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptolerance" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="setuptolerance"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="horizontal"/>
- <cd:constant type="vertical"/>
- <cd:constant type="stretch"/>
- <cd:constant type="space"/>
- <cd:constant type="verystrict" default="yes"/>
- <cd:constant type="strict"/>
- <cd:constant type="tolerant"/>
- <cd:constant type="verytolerant"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="pagetype" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="pagetype"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="processpage" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="processpage"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="yes" default="yes"/>
- <cd:constant type="no"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="couplepage" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="couplepage"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="option">
- <cd:constant type="doublesided"/>
- </cd:parameter>
- <cd:parameter name="before">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="after">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="position" file="page-lyr.tex">
- <cd:sequence>
- <cd:string value="position"/>
- </cd:sequence>
- <cd:arguments>
- <cd:position list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupscreens" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="setupscreens"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="method">
- <cd:constant type="dot"/>
- <cd:constant type="rule"/>
- <cd:constant type="external"/>
- </cd:parameter>
- <cd:parameter name="resolution">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="factor">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="screen">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="chem" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="chem"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fraction" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="fraction"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="periods" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="periods"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupbackgrounds" file="page-bck.tex">
- <cd:sequence>
- <cd:string value="setupbackgrounds"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="top"/>
- <cd:constant type="header"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="footer"/>
- <cd:constant type="bottom"/>
- <cd:constant type="page"/>
- <cd:constant type="paper"/>
- <cd:constant type="leftpage"/>
- <cd:constant type="rightpage"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="leftedge"/>
- <cd:constant type="leftmargin"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="rightmargin"/>
- <cd:constant type="rightedge"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="state">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- <cd:constant type="cd:repeat"/>
- </cd:parameter>
- <cd:inherit name="setupframed"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="buffer" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="buffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="getbuffer">
- <cd:sequence>
- <cd:string value="getbuffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="typebuffer" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="typebuffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definebuffer" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="definebuffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupbuffer" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="setupbuffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="paragraph">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="before">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="after">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineblock" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="defineblock"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="nomoreblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="nomoreblocks"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="hideblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="hideblocks"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="keepblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="keepblocks"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="all"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="useblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="useblocks"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="processblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="processblocks"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="bypassblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="bypassblocks"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="forceblocks">
- <cd:sequence>
- <cd:string value="forceblocks"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="selectblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="selectblocks"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes">
- <cd:parameter name="criterium">
- <cd:constant type="all"/>
- <cd:constant type="cd:section"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupblock" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="setupblock"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="before">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="after">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="inner">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="file">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="formula" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="formula"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="mathematics" file="supp-mat.tex">
- <cd:sequence>
- <cd:string value="mathematics"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placeformula" file="core-mat.tex">
- <cd:sequence>
- <cd:string value="placeformula"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content optional="yes"/>
- <cd:displaymath/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placesubformula" file="core-mat.tex">
- <cd:sequence>
- <cd:string value="placesubformula"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content optional="yes"/>
- <cd:displaymath/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placefloat" generated="yes" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="place"/>
- <cd:variable value="float"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="left"/>
- <cd:constant type="right"/>
- <cd:constant type="here" default="yes"/>
- <cd:constant type="top"/>
- <cd:constant type="bottom"/>
- <cd:constant type="inleft"/>
- <cd:constant type="inright"/>
- <cd:constant type="inmargin"/>
- <cd:constant type="margin"/>
- <cd:constant type="leftmargin"/>
- <cd:constant type="rightmargin"/>
- <cd:constant type="leftedge"/>
- <cd:constant type="rightedge"/>
- <cd:constant type="innermargin"/>
- <cd:constant type="outermargin"/>
- <cd:constant type="inneredge"/>
- <cd:constant type="outeredge"/>
- <cd:constant type="inner"/>
- <cd:constant type="outer"/>
- <cd:constant type="line"/>
- <cd:constant type="high"/>
- <cd:constant type="low"/>
- <cd:constant type="fit"/>
- <cd:constant type="page"/>
- <cd:constant type="leftpage"/>
- <cd:constant type="rightpage"/>
- <cd:constant type="opposite"/>
- <cd:constant type="always"/>
- <cd:constant type="auto"/>
- <cd:constant type="force"/>
- <cd:constant type="tall"/>
- <cd:constant type="reset"/>
- <cd:constant type="line"/>
- <cd:constant type="height"/>
- <cd:constant type="depth"/>
- <cd:constant type="split"/>
- <cd:constant type="90"/>
- <cd:constant type="180"/>
- <cd:constant type="270"/>
- </cd:keywords>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="reservefloat" generated="yes">
- <cd:sequence>
- <cd:string value="reserve"/>
- <cd:variable value="float"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:parameter name="height">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="width">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="frame">
- <cd:constant type="on"/>
- <cd:constant type="off"/>
- </cd:parameter>
- </cd:assignments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definefloat" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="definefloat"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:plural"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfloat" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="setupfloat"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="height">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="width">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="maxheight">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="maxwidth">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="minwidth">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="default">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="pageboundaries">
- <cd:constant type="cd:list"/>
- </cd:parameter>
- <cd:parameter name="leftmargindistance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rightmargindistance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="location">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="items">
+ <cd:sequence>
+ <cd:string value="items"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="setupitems" n="1"/>
+ </cd:assignments>
+ <cd:content n="2" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupitems" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="setupitems"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="location">
+ <cd:constant type="left"/>
+ <cd:constant type="right"/>
+ <cd:constant type="inmargin"/>
+ <cd:constant type="top"/>
+ <cd:constant type="bottom"/>
+ </cd:parameter>
+ <cd:parameter name="symbol">
+ <cd:constant type="1"/>
+ <cd:constant type="2"/>
+ <cd:constant type="..."/>
+ <cd:constant type="n"/>
+ <cd:constant type="a"/>
+ <cd:constant type="..."/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="none"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="unknown"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="inbetween">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="quotation" type="environment" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="quotation"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
<cd:constant type="left"/>
- <cd:constant type="middle"/>
+ <cd:constant type="middle" default="yes"/>
<cd:constant type="right"/>
- </cd:parameter>
- <cd:inherit name="setupframed"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="floattext" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="float"/>
- <cd:string value="text"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="left"/>
- <cd:constant type="right"/>
- <cd:constant type="high"/>
- <cd:constant type="middle"/>
- <cd:constant type="low"/>
- <cd:constant type="offset"/>
- <cd:constant type="tall"/>
- </cd:keywords>
- <cd:reference optional="yes"/>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placelistoffloats" generated="yes">
- <cd:sequence>
- <cd:string value="placelistof"/>
- <cd:variable value="floats"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="completelistoffloats" generated="yes">
- <cd:sequence>
- <cd:string value="completelistof"/>
- <cd:variable value="floats"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="referral" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="referral"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="bet">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="quotation" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="quotation"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="quote" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="quote"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupquote" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="setupquote"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="location">
+ <cd:constant type="cd:text"/>
+ <cd:constant type="margin"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineparagraphs" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="defineparagraphs"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="rule">
+ <cd:constant type="on"/>
+ <cd:constant type="off"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="fit"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="inner">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="tolerance">
+ <cd:constant type="verystrict"/>
+ <cd:constant type="strict"/>
+ <cd:constant type="tolerant"/>
+ <cd:constant type="verytolerant"/>
+ <cd:constant type="stretch"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="paragraph" generated="yes">
+ <cd:sequence>
+ <cd:variable value="paragraph"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="paragraph" type="environment" generated="yes">
+ <cd:sequence>
+ <cd:variable value="paragraph"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupparagraphs" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="setupparagraphs"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="each"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="tolerance">
+ <cd:constant type="verystrict"/>
+ <cd:constant type="strict"/>
+ <cd:constant type="tolerant"/>
+ <cd:constant type="verytolerant"/>
+ <cd:constant type="stretch"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="inner">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="command">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="rule">
+ <cd:constant type="on"/>
+ <cd:constant type="off"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptab" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="setuptab"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="sample">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="headstyle">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="location">
+ <cd:constant type="left"/>
+ <cd:constant type="right"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tab">
+ <cd:sequence>
+ <cd:string value="tab"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:nothing n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="document" type="environment">
+ <cd:sequence>
+ <cd:string value="document"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="labels">
+ <cd:sequence>
+ <cd:string value="labels"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definetabulate" file="core-tbl.tex">
+ <cd:sequence>
+ <cd:string value="definetabulate"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="3">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="ken">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tabulate" type="environment" generated="yes">
+ <cd:sequence>
+ <cd:variable value="tabulate"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="dat">
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="setupexternalfigures" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptabulate" file="core-tbl.tex">
+ <cd:sequence>
+ <cd:string value="setuptabulate"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="unit">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="indenting">
+ <cd:resolve name="indenting"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="inner">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="EQ">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="rulecolor">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="rulethickness">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="blank"/>
+ <cd:constant type="grid"/>
+ <cd:constant type="depth"/>
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="small"/>
+ <cd:constant type="medium"/>
+ <cd:constant type="big"/>
+ <cd:constant type="none"/>
+ </cd:parameter>
+ <cd:parameter name="bodyfont">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ <cd:parameter name="rule">
+ <cd:constant type="normal"/>
+ <cd:constant type="line"/>
+ </cd:parameter>
+ <cd:parameter name="split">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptables" file="core-tab.tex">
+ <cd:sequence>
+ <cd:string value="setuptables"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="distance">
+ <cd:constant type="small"/>
+ <cd:constant type="medium"/>
+ <cd:constant type="big"/>
+ </cd:parameter>
+ <cd:parameter name="bodyfont">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ <cd:parameter name="HL">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="small"/>
+ <cd:constant type="medium"/>
+ <cd:constant type="big"/>
+ <cd:constant type="none"/>
+ </cd:parameter>
+ <cd:parameter name="VL">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="small"/>
+ <cd:constant type="medium"/>
+ <cd:constant type="big"/>
+ <cd:constant type="none"/>
+ </cd:parameter>
+ <cd:parameter name="depth">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="strut"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="strut"/>
+ </cd:parameter>
+ <cd:parameter name="rulethickness">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rulecolor">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="commands">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="background">
+ <cd:constant type="screen"/>
+ <cd:constant type="color"/>
+ <cd:constant type="none"/>
+ </cd:parameter>
+ <cd:parameter name="backgroundscreen">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="backgroundcolor">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="bodyfont">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="table" type="environment">
+ <cd:sequence>
+ <cd:string value="table"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="van">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tables" type="environment">
+ <cd:sequence>
+ <cd:string value="tables"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="aan">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definetabletemplate" file="core-tab.tex">
+ <cd:sequence>
+ <cd:string value="definetabletemplate"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="ref">
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="selectpaper">
- <cd:sequence>
- <cd:string value="selectpaper"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="family">
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="couplepaper">
- <cd:sequence>
- <cd:string value="couplepaper"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="chem" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="chem"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="fraction" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="fraction"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="periods" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="periods"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="items">
- <cd:sequence>
- <cd:string value="items"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="setupitems"/>
- </cd:assignments>
- <cd:content list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupitems" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="setupitems"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="location">
+ </cd:keywords>
+ <cd:keywords n="4" optional="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useexternalfiles" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="useexternalfiles"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="bodyfont">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ <cd:parameter name="file">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useexternalfile" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="useexternalfile"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ <cd:assignments n="4" list="yes">
+ <cd:parameter name="bodyfont">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useexternalfigure" file="core-fig.tex">
+ <cd:sequence>
+ <cd:string value="useexternalfigure"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes">
+ <cd:constant type="cd:name"/> <!-- parent -->
+ </cd:keywords>
+ <cd:assignments n="4" optional="yes" list="yes">
+ <cd:inherit name="setupexternalfigures" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="externalfigure" file="core-fig.tex">
+ <cd:sequence>
+ <cd:string value="externalfigure"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="setupexternalfigures" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupexternalfigures" file="core-fig.tex">
+ <cd:sequence>
+ <cd:string value="setupexternalfigures"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1">
+ <cd:parameter name="scale">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="yscale">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="yscale">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="factor">
+ <cd:constant type="max"/>
+ <cd:constant type="fit"/>
+ <cd:constant type="broad"/>
+ </cd:parameter>
+ <cd:parameter name="wfactor">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="max"/>
+ <cd:constant type="broad"/>
+ <cd:constant type="fit"/>
+ </cd:parameter>
+ <cd:parameter name="hfactor">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="max"/>
+ <cd:constant type="broad"/>
+ <cd:constant type="fit"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="frame">
+ <cd:constant type="on"/>
+ <cd:constant type="off"/>
+ </cd:parameter>
+ <cd:parameter name="preset">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="display">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="preview">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="repeat">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="object">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="type">
+ <cd:constant type="eps"/>
+ <cd:constant type="mps"/>
+ <cd:constant type="pdf"/>
+ <cd:constant type="tif"/>
+ <cd:constant type="png"/>
+ <cd:constant type="jpg"/>
+ <cd:constant type="mov"/>
+ <cd:constant type="cd:tex"/>
+ </cd:parameter>
+ <cd:parameter name="method">
+ <cd:constant type="eps"/>
+ <cd:constant type="mps"/>
+ <cd:constant type="pdf"/>
+ <cd:constant type="tif"/>
+ <cd:constant type="png"/>
+ <cd:constant type="jpg"/>
+ <cd:constant type="mov"/>
+ <cd:constant type="cd:tex"/>
+ </cd:parameter>
+ <cd:parameter name="option">
+ <cd:constant type="frame"/>
+ <cd:constant type="empty"/>
+ <cd:constant type="test"/>
+ </cd:parameter>
+ <cd:parameter name="frames">
+ <cd:constant type="on"/>
+ <cd:constant type="off"/>
+ </cd:parameter>
+ <cd:parameter name="ymax">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="xmax">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="directory">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="location">
+ <cd:constant type="local"/>
+ <cd:constant type="global"/>
+ <cd:constant type="default"/>
+ <cd:constant type="none"/>
+ </cd:parameter>
+ <cd:parameter name="maxwidth">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="maxheight">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="conversion">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="prefix">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showexternalfigures" file="core-fig.tex">
+ <cd:sequence>
+ <cd:string value="showexternalfigures"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:parameter name="alternative">
+ <cd:constant type="a"/>
+ <cd:constant type="b"/>
+ <cd:constant type="c"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useexternalsoundtrack" file="core-fig.tex">
+ <cd:sequence>
+ <cd:string value="useexternalsoundtrack"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="name" file="syst-gen.tex">
+ <cd:sequence>
+ <cd:string value="name"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="legend" type="environment">
+ <cd:sequence>
+ <cd:string value="legend"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="two"/>
+ </cd:keywords>
+ <cd:tex n="2" command="leg"/>
+ <cd:nothing n="3"/>
+ <cd:nothing n="4" separator="backslash"/>
+ <cd:nothing n="5" separator="backslash"/>
+ <cd:tex n="6" separator="backslash" command="leg"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fact" type="environment">
+ <cd:sequence>
+ <cd:string value="fact"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:tex n="1" command="fact"/>
+ <cd:nothing n="2"/>
+ <cd:nothing n="3" separator="backslash"/>
+ <cd:nothing n="4" separator="backslash"/>
+ <cd:tex n="5" separator="backslash" command="fact"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="rotate" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="rotate"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="setuprotate" n="1"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuprotate" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="setuprotate"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="rotation">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="location">
+ <cd:constant type="normal"/>
+ <cd:constant type="high"/>
+ <cd:constant type="fit"/>
+ <cd:constant type="broad"/>
+ <cd:constant type="depth"/>
+ </cd:parameter>
+ <cd:inherit name="setupframed" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mirror" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="mirror"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="scale" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="scale"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:parameter name="sx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="sy">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcombinations" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="setupcombinations"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="inbetween">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="fit"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="fit"/>
+ </cd:parameter>
+ <cd:parameter name="location">
+ <cd:constant type="top"/>
+ <cd:constant type="middle"/>
+ <cd:constant type="bottom"/>
+ <cd:constant type="left"/>
+ <cd:constant type="right"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="combination" type="environment">
+ <cd:sequence>
+ <cd:string value="combination"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:matrix"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placesidebyside" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="placesidebyside"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placeontopofeachother" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="placeontopofeachother"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overlay" type="environment">
+ <cd:sequence>
+ <cd:string value="overlay"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overview" type="environment">
+ <cd:sequence>
+ <cd:string value="overview"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupinteractionscreen" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="setupinteractionscreen"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="fit"/>
+ <cd:constant type="max"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="fit"/>
+ <cd:constant type="max"/>
+ </cd:parameter>
+ <cd:parameter name="backspace">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="topspace">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="horoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="veroffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="option">
+ <cd:constant type="max"/>
+ <cd:constant type="fit"/>
+ <cd:constant type="doublesided"/>
+ <cd:constant type="singlesided"/>
+ <cd:constant type="auto"/>
+ <cd:constant type="none"/>
+ <cd:constant type="bookmark"/>
+ </cd:parameter>
+ <cd:parameter name="delay">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="none"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="screen" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="screen"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setuppagetransitions" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="setuppagetransitions"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="reset"/>
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupinteraction" file="core-nav.tex">
+ <cd:sequence>
+ <cd:string value="setupinteraction"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:parameter name="state">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="menu">
+ <cd:constant type="on"/>
+ <cd:constant type="off"/>
+ </cd:parameter>
+ <cd:parameter name="page">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="click">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="split">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="display">
+ <cd:constant type="new"/>
+ </cd:parameter>
+ <cd:parameter name="openaction">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="closeaction">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="openpageaction">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="closepageaction">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="calculate">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="strut">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="depth">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="contrastcolor">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="symbolset">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="title">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="subtitle">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="author">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="date">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="keyword">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <!-- maybe this will move elsewhere -->
+ <cd:parameter name="fieldlayer">
+ <cd:constant type="auto"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupinteractionmenu" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="setupinteractionmenu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="inbetween">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="left">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="right">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="middle">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="state">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="none"/>
+ <cd:constant type="local"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="contrastcolor">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="overlay"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="samepage">
+ <cd:constant type="yes"/>
+ <cd:constant type="empty"/>
+ <cd:constant type="no"/>
+ <cd:constant type="none"/>
+ </cd:parameter>
+ <cd:parameter name="unknownreference">
+ <cd:constant type="yes"/>
+ <cd:constant type="empty"/>
+ <cd:constant type="no"/>
+ <cd:constant type="none"/>
+ </cd:parameter>
+ <cd:parameter name="leftoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rightoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="topoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="bottomoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="position">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:inherit name="setupframed" n="2"/> <!-- maybe not all parameters from framed -->
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineinteractionmenu" variant="1" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="defineinteractionmenu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive" list="yes">
<cd:constant type="left"/>
<cd:constant type="right"/>
- <cd:constant type="inmargin"/>
<cd:constant type="top"/>
<cd:constant type="bottom"/>
- </cd:parameter>
- <cd:parameter name="symbol">
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- <cd:constant type="..."/>
- <cd:constant type="n"/>
- <cd:constant type="a"/>
- <cd:constant type="..."/>
- <cd:constant type="cd:text"/>
- <cd:constant type="none"/>
- </cd:parameter>
- <cd:parameter name="width">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- <cd:constant type="unknown"/>
- </cd:parameter>
- <cd:parameter name="before">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="inbetween">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="align">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="after">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="quotation" type="environment" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="quotation"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="left"/>
- <cd:constant type="middle" default="yes"/>
- <cd:constant type="right"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="quotation" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="quotation"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="quote" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="quote"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupquote" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="setupquote"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="before">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="after">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="color">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="location">
- <cd:constant type="cd:text"/>
- <cd:constant type="margin"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="adding">
- <cd:sequence>
- <cd:string value="adding"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="small"/>
- <cd:constant type="medium" default="yes"/>
- <cd:constant type="big"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineparagraphs" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="defineparagraphs"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="rule">
- <cd:constant type="on"/>
- <cd:constant type="off"/>
- </cd:parameter>
- <cd:parameter name="height">
- <cd:constant type="fit"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="before">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="after">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="inner">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="tolerance">
- <cd:constant type="verystrict"/>
- <cd:constant type="strict"/>
- <cd:constant type="tolerant"/>
- <cd:constant type="verytolerant"/>
- <cd:constant type="stretch"/>
- </cd:parameter>
- <cd:parameter name="align">
- <cd:resolve name="align"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="paragraph" generated="yes">
- <cd:sequence>
- <cd:variable value="paragraph"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="paragraph" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="paragraph"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupparagraphs" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="setupparagraphs"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:number"/>
- <cd:constant type="each"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="width">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="height">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="align">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="tolerance">
- <cd:constant type="verystrict"/>
- <cd:constant type="strict"/>
- <cd:constant type="tolerant"/>
- <cd:constant type="verytolerant"/>
- <cd:constant type="stretch"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="before">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="after">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="inner">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="command">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="rule">
- <cd:constant type="on"/>
- <cd:constant type="off"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptab" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="setuptab"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="sample">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="width">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="headstyle">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="location">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="setupinteractionmenu" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineinteractionmenu" variant="2" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="defineinteractionmenu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
<cd:constant type="left"/>
<cd:constant type="right"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="tab">
- <cd:sequence>
- <cd:string value="tab"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:nothing/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="document" type="environment">
- <cd:sequence>
- <cd:string value="document"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="labels">
- <cd:sequence>
- <cd:string value="labels"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definetabulate" file="core-tbl.tex">
- <cd:sequence>
- <cd:string value="definetabulate"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="tabulate" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="tabulate"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="useexternalfigure"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptabulate" file="core-tbl.tex">
- <cd:sequence>
- <cd:string value="setuptabulate"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="unit">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="indenting">
- <cd:resolve name="indenting"/>
- </cd:parameter>
- <cd:parameter name="before">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="after">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="inner">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="EQ">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="rulecolor">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="align">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="rulethickness">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="blank"/>
- <cd:constant type="grid"/>
- <cd:constant type="depth"/>
- <cd:constant type="cd:dimension"/>
- <cd:constant type="small"/>
- <cd:constant type="medium"/>
- <cd:constant type="big"/>
- <cd:constant type="none"/>
- </cd:parameter>
- <cd:parameter name="bodyfont">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="small"/>
- <cd:constant type="big"/>
- </cd:parameter>
- <cd:parameter name="rule">
- <cd:constant type="normal"/>
- <cd:constant type="line"/>
- </cd:parameter>
- <cd:parameter name="split">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptables" file="core-tab.tex">
- <cd:sequence>
- <cd:string value="setuptables"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="distance">
- <cd:constant type="small"/>
- <cd:constant type="medium"/>
- <cd:constant type="big"/>
- </cd:parameter>
- <cd:parameter name="bodyfont">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="small"/>
- <cd:constant type="big"/>
- </cd:parameter>
- <cd:parameter name="HL">
- <cd:constant type="cd:number"/>
- <cd:constant type="small"/>
- <cd:constant type="medium"/>
- <cd:constant type="big"/>
- <cd:constant type="none"/>
- </cd:parameter>
- <cd:parameter name="VL">
- <cd:constant type="cd:number"/>
- <cd:constant type="small"/>
- <cd:constant type="medium"/>
- <cd:constant type="big"/>
- <cd:constant type="none"/>
- </cd:parameter>
- <cd:parameter name="depth">
- <cd:constant type="cd:number"/>
- <cd:constant type="strut"/>
- </cd:parameter>
- <cd:parameter name="height">
- <cd:constant type="cd:number"/>
- <cd:constant type="strut"/>
- </cd:parameter>
- <cd:parameter name="rulethickness">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rulecolor">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="align">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="commands">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="align">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="background">
- <cd:constant type="screen"/>
- <cd:constant type="color"/>
- <cd:constant type="none"/>
- </cd:parameter>
- <cd:parameter name="backgroundscreen">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="backgroundcolor">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="bodyfont">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="small"/>
- <cd:constant type="big"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="table" type="environment">
- <cd:sequence>
- <cd:string value="table"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="tables" type="environment">
- <cd:sequence>
- <cd:string value="tables"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definetabletemplate" file="core-tab.tex">
- <cd:sequence>
- <cd:string value="definetabletemplate"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="useexternalfiles" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="useexternalfiles"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="bodyfont">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="small"/>
- <cd:constant type="big"/>
- </cd:parameter>
- <cd:parameter name="file">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="useexternalfile" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="useexternalfile"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="bodyfont">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="small"/>
- <cd:constant type="big"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="useexternalfigure" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="useexternalfigure"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:parameter name="scale">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="yscale">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="yscale">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="factor">
- <cd:constant type="max"/>
- <cd:constant type="fit"/>
- <cd:constant type="broad"/>
- </cd:parameter>
- <cd:parameter name="wfactor">
- <cd:constant type="cd:number"/>
- <cd:constant type="max"/>
- <cd:constant type="broad"/>
- <cd:constant type="fit"/>
- </cd:parameter>
- <cd:parameter name="hfactor">
- <cd:constant type="cd:number"/>
- <cd:constant type="max"/>
- <cd:constant type="broad"/>
- <cd:constant type="fit"/>
- </cd:parameter>
- <cd:parameter name="width">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="height">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="frame">
- <cd:constant type="on"/>
- <cd:constant type="off"/>
- </cd:parameter>
- <cd:parameter name="preset">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="display">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="preview">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="repeat">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="object">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="type">
- <cd:constant type="eps"/>
- <cd:constant type="mps"/>
- <cd:constant type="pdf"/>
- <cd:constant type="tif"/>
- <cd:constant type="png"/>
- <cd:constant type="jpg"/>
- <cd:constant type="mov"/>
- <cd:constant type="cd:tex"/>
- </cd:parameter>
- <cd:parameter name="method">
- <cd:constant type="eps"/>
- <cd:constant type="mps"/>
- <cd:constant type="pdf"/>
- <cd:constant type="tif"/>
- <cd:constant type="png"/>
- <cd:constant type="jpg"/>
- <cd:constant type="mov"/>
- <cd:constant type="cd:tex"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="externalfigure" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="externalfigure"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="useexternalfigure"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupexternalfigures" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="setupexternalfigures"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments>
- <cd:parameter name="option">
- <cd:constant type="frame"/>
- <cd:constant type="empty"/>
- <cd:constant type="test"/>
- </cd:parameter>
- <cd:parameter name="object">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="frames">
- <cd:constant type="on"/>
- <cd:constant type="off"/>
- </cd:parameter>
- <cd:parameter name="ymax">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="xmax">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="directory">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="location">
- <cd:constant type="local"/>
- <cd:constant type="global"/>
- <cd:constant type="default"/>
- <cd:constant type="none"/>
- </cd:parameter>
- <cd:parameter name="maxwidth">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="maxheight">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="conversion">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="prefix">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showexternalfigures" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="showexternalfigures"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:parameter name="alternative">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="useexternalsoundtrack" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="useexternalsoundtrack"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:file"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="name" file="syst-gen.tex">
- <cd:sequence>
- <cd:string value="name"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="legend" type="environment">
- <cd:sequence>
- <cd:string value="legend"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="two"/>
- </cd:keywords>
- <cd:tex command="leg"/>
- <cd:nothing/>
- <cd:nothing separator="backslash"/>
- <cd:nothing separator="backslash"/>
- <cd:tex separator="backslash" command="leg"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="fact" type="environment">
- <cd:sequence>
- <cd:string value="fact"/>
- </cd:sequence>
- <cd:arguments>
- <cd:tex command="fact"/>
- <cd:nothing/>
- <cd:nothing separator="backslash"/>
- <cd:nothing separator="backslash"/>
- <cd:tex separator="backslash" command="fact"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="rotate" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="rotate"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="setuprotate"/>
- </cd:assignments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuprotate" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="setuprotate"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="rotation">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="location">
- <cd:constant type="normal"/>
- <cd:constant type="high"/>
- <cd:constant type="fit"/>
- <cd:constant type="broad"/>
- <cd:constant type="depth"/>
- </cd:parameter>
- <cd:inherit name="setupframed"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="mirror" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="mirror"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="scale" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="scale"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:parameter name="sx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="sy">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupcombinations" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="setupcombinations"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="before">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="inbetween">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="after">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="height">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="fit"/>
- </cd:parameter>
- <cd:parameter name="width">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="fit"/>
- </cd:parameter>
- <cd:parameter name="location">
<cd:constant type="top"/>
- <cd:constant type="middle"/>
<cd:constant type="bottom"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
<cd:constant type="left"/>
<cd:constant type="right"/>
- </cd:parameter>
- <cd:parameter name="align">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="color">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="combination" type="environment">
- <cd:sequence>
- <cd:string value="combination"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:matrix"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placesidebyside" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="placesidebyside"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placeontopofeachother" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="placeontopofeachother"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="overlay" type="environment">
- <cd:sequence>
- <cd:string value="overlay"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="overview" type="environment">
- <cd:sequence>
- <cd:string value="overview"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupinteractionscreen" file="core-int.tex">
- <cd:sequence>
- <cd:string value="setupinteractionscreen"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" list="yes">
- <cd:parameter name="width">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="fit"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="height">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="fit"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="backspace">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="topspace">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="horoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="veroffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="option">
- <cd:constant type="max"/>
- <cd:constant type="fit"/>
- <cd:constant type="doublesided"/>
- <cd:constant type="bookmark"/>
- </cd:parameter>
- <cd:parameter name="delay">
- <cd:constant type="cd:number"/>
- <cd:constant type="none"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="screen" file="core-int.tex">
- <cd:sequence>
- <cd:string value="screen"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setuppagetransitions" file="core-int.tex">
- <cd:sequence>
- <cd:string value="setuppagetransitions"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="reset"/>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupinteraction" file="core-nav.tex">
- <cd:sequence>
- <cd:string value="setupinteraction"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" list="yes">
- <cd:parameter name="state">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="menu">
- <cd:constant type="on"/>
- <cd:constant type="off"/>
- </cd:parameter>
- <cd:parameter name="page">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="click">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="split">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="display">
- <cd:constant type="new"/>
- </cd:parameter>
- <cd:parameter name="openaction">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="closeaction">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="openpageaction">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="closepageaction">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="calculate">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="width">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="height">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="depth">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="color">
+ <cd:constant type="top"/>
+ <cd:constant type="bottom"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="setupinteractionmenu" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="interactionmenu" type="environment">
+ <cd:sequence>
+ <cd:string value="interactionmenu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="contrastcolor">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="disableinteractionmenu" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="disableinteractionmenu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
+ <cd:constant type="left"/>
+ <cd:constant type="right"/>
+ <cd:constant type="top"/>
+ <cd:constant type="bottom"/>
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="symbolset">
+ </cd:keywords>
+ <cd:reference n="2" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useexternaldocument" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="useexternaldocument"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="title">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="subtitle">
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="file"/>
+ </cd:keywords>
+ <cd:keywords n="3">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="author">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useURL" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="useURL"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="date">
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:constant type="file"/>
+ </cd:keywords>
+ <cd:keywords n="4">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="keyword">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="coupledocument" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="coupledocument"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="file"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="from" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="from"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" interactive="exclusive"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="interactionbar">
+ <cd:sequence>
+ <cd:string value="interactionbar"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:inherit name="setupinteractionbar" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="interactionbuttons" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="interactionbuttons"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" optional="yes" list="yes">
+ <cd:inherit name="setupinteractionbar" n="1"/>
+ </cd:assignments>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupinteractionbar" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="setupinteractionbar"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:parameter name="state">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:constant type="a"/>
+ <cd:constant type="b"/>
+ <cd:constant type="c"/>
+ <cd:constant type="d"/>
+ <cd:constant type="e"/>
+ <cd:constant type="f"/>
+ <cd:constant type="g"/>
+ </cd:parameter>
+ <cd:parameter name="symbol">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="height"/>
+ <cd:constant type="fit"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="height"/>
+ <cd:constant type="fit"/>
+ </cd:parameter>
+ <cd:parameter name="depth">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="step">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="small"/>
+ <cd:constant type="medium"/>
+ <cd:constant type="big"/>
+ </cd:parameter>
+ <cd:inherit name="setupframed" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="synchronize" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="synchronize"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="synchronization" type="environment">
+ <cd:sequence>
+ <cd:string value="synchronization"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupsynchronizationbar" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="setupsynchronizationbar"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:parameter name="alternative">
+ <cd:constant type="page"/>
+ <cd:constant type="local"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="height"/>
+ <cd:constant type="fit"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:inherit name="setupframed" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="synchronizationbar" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="synchronizationbar"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="alternative">
+ <cd:constant type="page"/>
+ <cd:constant type="local"/>
+ </cd:parameter>
+ <cd:inherit name="setupsynchronizationbar" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsynchronization" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="setupsynchronization"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:parameter name="state">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineprofile" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="defineprofile"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupprofiles" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="setupprofiles"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:parameter name="option">
+ <cd:constant type="test"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="profile" type="environment">
+ <cd:sequence>
+ <cd:string value="profile"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="followprofile" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="followprofile"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="exclusive"/>
+ <cd:keywords n="2">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <!-- maybe this will move elsewhere -->
- <cd:parameter name="fieldlayer">
- <cd:constant type="auto"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placebookmarks" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="placebookmarks"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
<cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineinteractionmenu" variant="1" file="core-int.tex">
- <cd:sequence>
- <cd:string value="defineinteractionmenu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive" list="yes">
- <cd:constant type="left"/>
- <cd:constant type="right"/>
- <cd:constant type="top"/>
- <cd:constant type="bottom"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:parameter name="before">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="after">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="inbetween">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="left">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="right">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="middle">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="state">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- <cd:constant type="none"/>
- <cd:constant type="local"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="color">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="overlay"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="samepage">
- <cd:constant type="yes"/>
- <cd:constant type="empty"/>
- <cd:constant type="no"/>
- <cd:constant type="none"/>
- </cd:parameter>
- <cd:parameter name="unknownreference">
- <cd:constant type="yes"/>
- <cd:constant type="empty"/>
- <cd:constant type="no"/>
- <cd:constant type="none"/>
- </cd:parameter>
- <cd:parameter name="leftoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rightoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="topoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="bottomoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="position">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:inherit name="setupframed"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineinteractionmenu" variant="2" file="core-int.tex">
- <cd:sequence>
- <cd:string value="defineinteractionmenu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="left"/>
- <cd:constant type="right"/>
- <cd:constant type="top"/>
- <cd:constant type="bottom"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="left"/>
- <cd:constant type="right"/>
- <cd:constant type="top"/>
- <cd:constant type="bottom"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="setupinteractionmenu"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="interactionmenu" type="environment">
- <cd:sequence>
- <cd:string value="interactionmenu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="disableinteractionmenu" file="core-int.tex">
- <cd:sequence>
- <cd:string value="disableinteractionmenu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="left"/>
- <cd:constant type="right"/>
- <cd:constant type="top"/>
- <cd:constant type="bottom"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:reference list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="useexternaldocument" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="useexternaldocument"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="file"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="useURL" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="useURL"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="file"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="coupledocument" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="coupledocument"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="file"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="from" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="from"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference interactive="exclusive"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="interactionbar">
- <cd:sequence>
- <cd:string value="interactionbar"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" list="yes">
- <cd:inherit name="setupinteractionbar"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="interactionbuttons" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="interactionbuttons"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" optional="yes" list="yes">
- <cd:inherit name="setupinteractionbar"/>
- </cd:assignments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupinteractionbar" file="core-int.tex">
- <cd:sequence>
- <cd:string value="setupinteractionbar"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" list="yes">
- <cd:parameter name="state">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="alternative">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- <cd:constant type="d"/>
- <cd:constant type="e"/>
- <cd:constant type="f"/>
- <cd:constant type="g"/>
- </cd:parameter>
- <cd:parameter name="symbol">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="width">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="height"/>
- <cd:constant type="fit"/>
- </cd:parameter>
- <cd:parameter name="height">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="height"/>
- <cd:constant type="fit"/>
- </cd:parameter>
- <cd:parameter name="depth">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="color">
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ <cd:constant type="all"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="bookmark" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="bookmark"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="step">
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="version" type="environment">
+ <cd:sequence>
+ <cd:string value="version"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive" list="yes">
<cd:constant type="cd:number"/>
- <cd:constant type="small"/>
- <cd:constant type="medium"/>
- <cd:constant type="big"/>
- </cd:parameter>
- <cd:inherit name="setupframed"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="synchronize" file="core-int.tex">
- <cd:sequence>
- <cd:string value="synchronize"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="synchronization" type="environment">
- <cd:sequence>
- <cd:string value="synchronization"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupsynchronizationbar" file="core-int.tex">
- <cd:sequence>
- <cd:string value="setupsynchronizationbar"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" list="yes">
- <cd:parameter name="alternative">
- <cd:constant type="page"/>
- <cd:constant type="local"/>
- </cd:parameter>
- <cd:parameter name="width">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="height"/>
- <cd:constant type="fit"/>
- </cd:parameter>
- <cd:parameter name="height">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="color">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:inherit name="setupframed"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="synchronizationbar" file="core-int.tex">
- <cd:sequence>
- <cd:string value="synchronizationbar"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="alternative">
- <cd:constant type="page"/>
- <cd:constant type="local"/>
- </cd:parameter>
- <cd:inherit name="setupsynchronizationbar"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupsynchronization" file="core-int.tex">
- <cd:sequence>
- <cd:string value="setupsynchronization"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" list="yes">
- <cd:parameter name="state">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineprofile" file="core-int.tex">
- <cd:sequence>
- <cd:string value="defineprofile"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupprofiles" file="core-int.tex">
- <cd:sequence>
- <cd:string value="setupprofiles"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" list="yes">
- <cd:parameter name="option">
- <cd:constant type="test"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="profile" type="environment">
- <cd:sequence>
- <cd:string value="profile"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="followprofile" file="core-int.tex">
- <cd:sequence>
- <cd:string value="followprofile"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content interactive="exclusive"/>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placebookmarks" file="core-int.tex">
- <cd:sequence>
- <cd:string value="placebookmarks"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- <cd:constant type="all"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="bookmark">
- <cd:sequence>
- <cd:string value="bookmark"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="version" type="environment">
- <cd:sequence>
- <cd:string value="version"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive" list="yes">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupversions" file="core-int.tex">
- <cd:sequence>
- <cd:string value="setupversions"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="number">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupversions" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="setupversions"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="number">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="markversion" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="markversion"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="selectversion" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="selectversion"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="defineversion" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="defineversion"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
<cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="markversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="markversion"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="selectversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="selectversion"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="defineversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="defineversion"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="followversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="followversion"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content interactive="exclusive"/>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="followprofileversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="followprofileversion"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content interactive="exclusive"/>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineprogram" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="defineprogram"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupprograms" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="setupprograms"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" list="yes">
- <cd:parameter name="directory">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="followversion" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="followversion"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="exclusive"/>
+ <cd:keywords n="2">
<cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="program" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="program"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="figure" type="environment">
- <cd:sequence>
- <cd:string value="figure"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="factor">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="frame">
- <cd:constant type="on"/>
- <cd:constant type="off"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<!-- referring*figure skipped -->
-
-<!-- marking*figure skipped -->
-
-<!-- remark skipped -->
-
-<cd:command name="goto" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="goto"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content interactive="exclusive"/>
- <cd:content interactive="exclusive"/>
- <cd:reference list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="gotobox" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="gotobox"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content interactive="exclusive"/>
- <cd:reference list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="button">
- <cd:sequence>
- <cd:string value="button"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" optional="yes" list="yes">
- <cd:inherit name="setupbuttons"/>
- </cd:assignments>
- <cd:content/>
- <cd:reference list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupbuttons" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="setupbuttons"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="state">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:inherit name="setupframed"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<!-- menubutton skipped -->
-
-<cd:command name="setupcomment" file="core-int.tex">
- <cd:sequence>
- <cd:string value="setupcomment"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="state">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="width">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="height">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="color">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="title">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="followprofileversion" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="followprofileversion"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="exclusive"/>
+ <cd:keywords n="2">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="space">
- <cd:constant type="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="symbol">
- <cd:constant type="normal"/>
- <cd:constant type="New"/>
- <cd:constant type="Balloon"/>
- <cd:constant type="Addition"/>
- <cd:constant type="Help"/>
- <cd:constant type="Paragraph"/>
- <cd:constant type="Key"/>
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="option">
- <cd:constant type="max"/>
- <cd:constant type="buffer"/>
- </cd:parameter>
- <cd:parameter name="margin">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="comment" type="environment">
- <cd:sequence>
- <cd:string value="comment"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="setupcomment"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="comment">
- <cd:sequence>
- <cd:string value="comment"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="setupcomment"/>
- </cd:assignments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definefield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="definefield"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definesubfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="definesubfield"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="copyfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="copyfield"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="clonefield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="clonefield"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="field" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="field"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="fitfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="fitfield"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="fillinfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="fillinfield"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="tooltip" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="tooltip"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="left"/>
- <cd:constant type="right"/>
- <cd:constant type="middle"/>
- </cd:keywords>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showfields" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="showfields"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="logfields" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="logfields"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="setupfield"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="label"/>
- <cd:constant type="horizontal"/>
- <cd:constant type="vertical"/>
- <cd:constant type="frame"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="setupfields"/>
- </cd:assignments>
- <cd:assignments list="yes">
- </cd:assignments>
- <cd:assignments list="yes">
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfields" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="setupfields"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="reset"/>
- <cd:constant type="label"/>
- <cd:constant type="horizontal"/>
- <cd:constant type="vertical"/>
- <cd:constant type="frame"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="before">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="after">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="inbetween">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="color">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="align">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="option">
- <cd:constant type="readonly"/>
- <cd:constant type="required"/>
- <cd:constant type="protected"/>
- <cd:constant type="sorted"/>
- <cd:constant type="unavailable"/>
- <cd:constant type="hidden"/>
- <cd:constant type="printable"/>
- </cd:parameter>
- <cd:parameter name="clickin">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="clickout">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="regionin">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="regionout">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="afterkey">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="format">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="validate">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="calculate">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="fieldoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="fieldframecolor">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="fieldbackgroundcolor">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:inherit name="framed"/>
- </cd:assignments>
- <cd:assignments list="yes">
- </cd:assignments>
- <cd:assignments list="yes">
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupforms" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="setupforms"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="method">
- <cd:constant type="HTML"/>
- <cd:constant type="FDF"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definefieldstack" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="definefieldstack"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="setupfields"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="fieldstack" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="fieldstack"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="setupfields"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="clip" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="clip"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="setupclipping"/>
- </cd:assignments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupclipping" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="setupclipping"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="nx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ny">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="x">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="y">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="width">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="height">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="voffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="mp">
+ </cd:keywords>
+ <cd:keywords n="3">
<cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placelegend">
- <cd:sequence>
- <cd:string value="placelegend"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuplegend">
- <cd:sequence>
- <cd:string value="setuplegend"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="inbetween">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="width">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="height">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="location">
- <cd:constant type="right"/>
- <cd:constant type="bottom"/>
- </cd:parameter>
- <cd:parameter name="bodyfont">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="small"/>
- <cd:constant type="big"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definerule">
- <cd:sequence>
- <cd:string value="definerule"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="setuprule"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placerule">
- <cd:sequence>
- <cd:string value="placerule"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuprule">
- <cd:sequence>
- <cd:string value="setuprule"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="depth">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="height">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="width">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="spacebefore">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="spaceafter">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="color">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineprogram" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="defineprogram"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
<cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definetextvariable">
- <cd:sequence>
- <cd:string value="definetextvariable"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:inherit name="setuptextvariable"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptextvariable">
- <cd:sequence>
- <cd:string value="setuptextvariable"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="left">
+ </cd:keywords>
+ <cd:keywords n="2">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="right">
+ </cd:keywords>
+ <cd:keywords n="3">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="command">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="yes"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupprograms" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="setupprograms"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:parameter name="directory">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="program" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="program"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="figure" type="environment">
+ <cd:sequence>
+ <cd:string value="figure"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:parameter name="factor">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="frame">
+ <cd:constant type="on"/>
+ <cd:constant type="off"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <!-- referring*figure skipped -->
+
+ <!-- marking*figure skipped -->
+
+ <!-- remark skipped -->
+
+ <cd:command name="goto" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="goto"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="exclusive"/>
+ <cd:content n="2" interactive="exclusive"/>
+ <cd:reference n="3" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="gotobox" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="gotobox"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="exclusive"/>
+ <cd:reference n="2" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="button" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="button"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" optional="yes" list="yes">
+ <cd:inherit name="setupbuttons" n="1"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ <cd:reference n="3" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbuttons" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="setupbuttons"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="state">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:inherit name="setupframed" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <!-- menubutton skipped -->
+
+ <cd:command name="setupcomment" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="setupcomment"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="state">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="title">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="space">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="symbol">
+ <cd:constant type="normal"/>
+ <cd:constant type="New"/>
+ <cd:constant type="Balloon"/>
+ <cd:constant type="Addition"/>
+ <cd:constant type="Help"/>
+ <cd:constant type="Paragraph"/>
+ <cd:constant type="Key"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="option">
+ <cd:constant type="max"/>
+ <cd:constant type="buffer"/>
+ </cd:parameter>
+ <cd:parameter name="margin">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="comment" type="environment">
+ <cd:sequence>
+ <cd:string value="comment"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="setupcomment" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="comment">
+ <cd:sequence>
+ <cd:string value="comment"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="setupcomment" n="1"/>
+ </cd:assignments>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefield" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="definefield"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1"> <!-- name -->
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2"> <!-- type -->
+ <cd:constant type="text"/>
+ <cd:constant type="line"/> <!-- equal to text -->
+ <cd:constant type="push"/>
+ <cd:constant type="check"/>
+ <cd:constant type="radio"/>
+ <cd:constant type="combo"/>
+ <cd:constant type="choice"/> <!-- equal to combo -->
+ <cd:constant type="popup"/> <!-- equal to combo -->
+ </cd:keywords>
+ <cd:keywords n="3"> <!-- group -->
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="4" list="yes"> <!-- optional for text? -->
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="5" optional="yes"> <!-- default -->
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definesubfield" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="definesubfield"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="3" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="copyfield" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="copyfield"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="clonefield" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="clonefield"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="4" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="field" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="field"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fitfield" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="fitfield"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fillinfield" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="fillinfield"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tooltip" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="tooltip"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="left"/>
+ <cd:constant type="right"/>
+ <cd:constant type="middle"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showfields" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="showfields"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="logfields" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="logfields"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupfield" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="setupfield"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="label"/>
+ <cd:constant type="horizontal"/>
+ <cd:constant type="vertical"/>
+ <cd:constant type="frame"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:inherit name="setupfields" n="2"/>
+ </cd:assignments>
+ <cd:assignments n="4" list="yes"> </cd:assignments>
+ <cd:assignments n="5" list="yes"> </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfields" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="setupfields"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes"> <!-- TODO: if it's reset, only a single argument, no list -->
+ <cd:constant type="reset"/>
+ <cd:constant type="label"/>
+ <cd:constant type="horizontal"/>
+ <cd:constant type="vertical"/>
+ <cd:constant type="frame"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="inbetween">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="option">
+ <cd:constant type="readonly"/>
+ <cd:constant type="required"/>
+ <cd:constant type="protected"/>
+ <cd:constant type="sorted"/>
+ <cd:constant type="unavailable"/>
+ <cd:constant type="hidden"/>
+ <cd:constant type="printable"/>
+ </cd:parameter>
+ <cd:parameter name="clickin">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="clickout">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="regionin">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="regionout">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="afterkey">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="format">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="validate">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="calculate">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="fieldoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="fieldframecolor">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="fieldbackgroundcolor">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:inherit name="setupframed" n="2"/>
+ </cd:assignments>
+ <cd:assignments n="3" list="yes">
+ <cd:inherit name="setupfields" n="2"/>
+ </cd:assignments>
+ <cd:assignments n="4" list="yes">
+ <cd:inherit name="setupfields" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupforms" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="setupforms"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="method">
+ <cd:constant type="HTML"/>
+ <cd:constant type="FDF"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefieldstack" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="definefieldstack"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:inherit name="setupfields" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fieldstack" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="fieldstack"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="setupfields" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="clip" file="core-trf.tex">
+ <cd:sequence>
+ <cd:string value="clip"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="setupclipping" n="1"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupclipping" file="core-trf.tex">
+ <cd:sequence>
+ <cd:string value="setupclipping"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="state">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number" default="1"/>
+ </cd:parameter>
+ <cd:parameter name="nx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ny">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="x">
+ <cd:constant type="cd:number" default="1"/>
+ </cd:parameter>
+ <cd:parameter name="y">
+ <cd:constant type="cd:number" default="1"/>
+ </cd:parameter>
+ <cd:parameter name="sx">
+ <cd:constant type="cd:number" default="1"/>
+ </cd:parameter>
+ <cd:parameter name="sy">
+ <cd:constant type="cd:number" default="1"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="hoffset">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="voffset">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="offset">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="leftoffset">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="rightoffset">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="topoffset">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="bottomoffset">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="mp">
+ <cd:constant type="cd:name" default=""/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placelegend">
+ <cd:sequence>
+ <cd:string value="placelegend"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplegend">
+ <cd:sequence>
+ <cd:string value="setuplegend"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="inbetween">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="location">
+ <cd:constant type="right"/>
+ <cd:constant type="bottom"/>
+ </cd:parameter>
+ <cd:parameter name="bodyfont">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupstrut" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="setupstrut"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="yes" default="yes"/>
<cd:constant type="no"/>
<cd:constant type="cap"/>
<cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="settextvariable">
- <cd:sequence>
- <cd:string value="settextvariable"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placetextvariable">
- <cd:sequence>
- <cd:string value="placetextvariable"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="textvariable">
- <cd:sequence>
- <cd:string value="textvariable"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definerawfont">
- <cd:sequence>
- <cd:string value="definerawfont"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="setupinterlinespace"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="switchtorawfont">
- <cd:sequence>
- <cd:string value="switchtorawfont"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definetextposition">
- <cd:sequence>
- <cd:string value="definetextposition"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="setuppositioning"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptextposition">
- <cd:sequence>
- <cd:string value="setuptextposition"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="setuppositioning"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="positiontext">
- <cd:sequence>
- <cd:string value="positiontext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupstrut" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="setupstrut"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="yes" default="yes"/>
- <cd:constant type="no"/>
- <cd:constant type="cap"/>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usetypescriptfile" file="type-ini.tex">
+ <cd:sequence>
+ <cd:string value="usetypescriptfile"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usetypescript" file="type-ini.tex">
+ <cd:sequence>
+ <cd:string value="usetypescript"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definetypeface" file="type-ini.tex">
+ <cd:sequence>
+ <cd:string value="definetypeface"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="rm"/>
+ <cd:constant type="ss"/>
+ <cd:constant type="tt"/>
+ <cd:constant type="mm"/>
+ <cd:constant type="hw"/>
+ <cd:constant type="cg"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="4">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="5" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="6" optional="yes">
+ <cd:parameter name="features">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="rscale">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="encoding">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="text">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefontfeature" file="type-ini.tex">
+ <cd:sequence>
+ <cd:string value="definefontfeature"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="no">
+ <cd:parameter name="compose">
+ <cd:constant type="no" default="yes"/>
+ <cd:constant type="yes"/>
+ </cd:parameter>
+ <cd:parameter name="mode">
+ <cd:constant type="node"/>
+ <cd:constant type="base" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="tlig">
+ <cd:constant type="no" default="yes"/>
+ <cd:constant type="yes"/>
+ </cd:parameter>
+ <cd:parameter name="trep">
+ <cd:constant type="no" default="yes"/>
+ <cd:constant type="yes"/>
+ </cd:parameter>
+ <cd:parameter name="script">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="language">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="..tag.."> <!-- can't use &gt; here, \showsetup gives an error -->
+ <cd:constant type="no" default="yes"/>
+ <cd:constant type="yes"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefonthandling" file="hand-ini.mkii">
+ <cd:sequence>
+ <cd:string value="definefonthandling"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:name" list="yes"/>
+ </cd:keywords>
+ <cd:assignments n="3">
+ <cd:parameter name="type">
+ <cd:constant type="hanging" default="yes"/>
+ <cd:constant type="hz"/>
+ <cd:constant type="spacing"/>
+ <cd:constant type="tag"/>
+ </cd:parameter>
+ <cd:parameter name="right">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="left">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="factor">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="min">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="max">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="step">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfonthandling" file="hand-ini.mkii">
+ <cd:sequence>
+ <cd:string value="setupfonthandling"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2">
+ <cd:inherit name="definefonthandling" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefontsynonym" file="font-ini.tex">
+ <cd:sequence>
+ <cd:string value="definefontsynonym"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes">
+ <cd:parameter name="encoding">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="features">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="handling">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="mapping">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfontsynonym" file="font-ini.tex">
+ <cd:sequence>
+ <cd:string value="setupfontsynonym"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2">
+ <cd:inherit name="definefontsynonym" n="3"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mapfontsize" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="mapfontsize"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definedfont" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="definedfont"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:inherit name="definefont" n="2"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
</cd:interface>
-
diff --git a/Master/texmf-dist/tex/context/interface/cont-fr.xml b/Master/texmf-dist/tex/context/interface/cont-fr.xml
index 920e76ed9b2..0a4e5bb4dc3 100644
--- a/Master/texmf-dist/tex/context/interface/cont-fr.xml
+++ b/Master/texmf-dist/tex/context/interface/cont-fr.xml
@@ -1,6 +1,4 @@
-<?xml version="1.0" standalone="yes"?>
-
-<!-- versions:
+<?xml version="1.0" encoding="UTF-8"?><!-- versions:
comment : user interface definitions of ConTeXt
@@ -10,10 +8,9 @@
2006.08.02 : define + resolve
-->
-
<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="fr" version="2006.08.02">
-<cd:define name="align">
+ <cd:define name="align">
<cd:constant type="interieur"/>
<cd:constant type="exterieur"/>
<cd:constant type="gauche"/>
@@ -25,9 +22,18 @@
<cd:constant type="normal"/>
<cd:constant type="non"/>
<cd:constant type="oui"/>
-</cd:define>
+ </cd:define>
+
+ <cd:define name="symalign">
+ <cd:constant type="gauche"/>
+ <cd:constant type="droite"/>
+ <cd:constant type="flushleft"/>
+ <cd:constant type="flushright"/>
+ <cd:constant type="milieu"/>
+ <cd:constant type="center"/>
+ </cd:define>
-<cd:define name="indenting">
+ <cd:define name="indenting">
<cd:constant type="jamais"/>
<cd:constant type="rien"/>
<cd:constant type="pas"/>
@@ -43,14 +49,14 @@
<cd:constant type="impair"/>
<cd:constant type="paire"/>
<cd:constant type="cd:dimension"/>
-</cd:define>
+ </cd:define>
-<cd:define name="indentnext">
+ <cd:define name="indentnext">
<cd:constant type="oui"/>
<cd:constant type="non"/>
-</cd:define>
+ </cd:define>
-<cd:define name="style">
+ <cd:define name="style">
<cd:constant type="normal"/>
<cd:constant type="gras"/>
<cd:constant type="incline"/>
@@ -59,9 +65,9 @@
<cd:constant type="cap"/>
<cd:constant type="small..."/>
<cd:constant type="cd:command"/>
-</cd:define>
+ </cd:define>
-<cd:define name="language">
+ <cd:define name="language">
<cd:constant type="nl"/>
<cd:constant type="fr"/>
<cd:constant type="en"/>
@@ -70,9961 +76,10164 @@
<cd:constant type="es"/>
<cd:constant type="cz"/>
<cd:constant type=".."/>
-</cd:define>
+ </cd:define>
-<cd:define name="texts">
+ <cd:define name="texts">
<cd:constant type="cd:text"/>
<cd:constant type="cd:section"/>
<cd:constant type="date"/>
<cd:constant type="cd:mark"/>
<cd:constant type="numeropage"/>
-</cd:define>
+ </cd:define>
-<cd:define name="layout-h">
+ <cd:define name="layout-h">
<cd:constant type="texte" default="yes"/>
<cd:constant type="marge"/>
<cd:constant type="bord"/>
-</cd:define>
+ </cd:define>
-<cd:define name="layout-v">
+ <cd:define name="layout-v">
<cd:constant type="sup"/>
<cd:constant type="entete"/>
<cd:constant type="texte" default="yes"/>
<cd:constant type="pdp"/>
<cd:constant type="inf"/>
-</cd:define>
+ </cd:define>
-<cd:command name="installlanguage" file="lang-ini.tex">
- <cd:sequence>
- <cd:string value="installelangue"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="espacement">
- <cd:constant type="groupe"/>
- <cd:constant type="large"/>
- </cd:parameter>
- <cd:parameter name="lefthyphenmin">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="righthyphenmin">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="etat">
- <cd:constant type="demarre"/>
- <cd:constant type="stoppe"/>
- </cd:parameter>
- <cd:parameter name="phrasegauche">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="phrasedroite">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="sousphrasegauche">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="sousphrasedroite">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="citergauche">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="citerdroite">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="citationgauche">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="citationdroite">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="defaut">
+ <cd:define name="bodyfont">
+ <cd:constant type="5pt"/>
+ <cd:constant type="..."/>
+ <cd:constant type="12pt"/>
+ <cd:constant type="petit"/>
+ <cd:constant type="grand"/>
+ </cd:define>
+
+ <cd:command name="installlanguage" file="lang-ini.tex" category="language">
+ <cd:sequence>
+ <cd:string value="installelangue"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuplanguage" file="lang-ini.tex">
- <cd:sequence>
- <cd:string value="reglelangue"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:resolve name="language"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="installelangue"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="language">
- <cd:sequence>
- <cd:string value="langue"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:resolve name="language"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="mainlanguage" file="lang-ini.tex">
- <cd:sequence>
- <cd:string value="langueprincipale"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:resolve name="language"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="translate" file="lang-lab.tex">
- <cd:sequence>
- <cd:string value="traduire"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="cd:name">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="useencoding" file="enco-ini.tex">
- <cd:sequence>
- <cd:string value="utiliseencodage"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="usespecials" file="spec-ini.tex">
- <cd:sequence>
- <cd:string value="utilisespecialites"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="raz"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineoutput" file="spec-ini.tex">
- <cd:sequence>
- <cd:string value="definitsortie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupoutput" file="spec-ini.tex">
- <cd:sequence>
- <cd:string value="reglesortie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definebodyfontenvironment" file="font-ini.tex">
- <cd:sequence>
- <cd:string value="definitenvironnementpolicecorps"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="defaut"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="texte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="script">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="scriptscript">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="x">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="xx">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="petit">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="grand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupbodyfontenvironment" file="font-ini.tex">
- <cd:sequence>
- <cd:string value="regleenvironnementpolicecorps"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:inherit name="reglepolicecorps"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="reglepolicecorps"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showbodyfontenvironment">
- <cd:sequence>
- <cd:string value="montreenvironnementpolicecorps"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:inherit name="reglepolicecorps"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definebodyfont" file="font-ini.tex">
- <cd:sequence>
- <cd:string value="definitpolicecorps"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="defaut"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="rm"/>
- <cd:constant type="ss"/>
- <cd:constant type="tt"/>
- <cd:constant type="mm"/>
- <cd:constant type="hw"/>
- <cd:constant type="cg"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="tf">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="bf">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="sl">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="it">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="bs">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="bi">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="sc">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="ex">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="mi">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="sy">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="ma">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="mb">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="mc">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showbodyfont">
- <cd:sequence>
- <cd:string value="montrepolicecorps"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:inherit name="reglepolicecorps"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupbodyfont">
- <cd:sequence>
- <cd:string value="reglepolicecorps"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- <cd:constant type="serif"/>
- <cd:constant type="regulier"/>
- <cd:constant type="roman"/>
- <cd:constant type="sans"/>
- <cd:constant type="support"/>
- <cd:constant type="sansserif"/>
- <cd:constant type="mono"/>
- <cd:constant type="type"/>
- <cd:constant type="teletype"/>
- <cd:constant type="manuscript"/>
- <cd:constant type="calligraphique"/>
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="switchtobodyfont" file="font-ini.tex">
- <cd:sequence>
- <cd:string value="changepolicecorps"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="petit"/>
- <cd:constant type="grand"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definefont" file="font-ini.tex">
- <cd:sequence>
- <cd:string value="definitpolice"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:file"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupcolor" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="reglecouleur"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupcolors" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="reglecouleurs"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="etat">
- <cd:constant type="demarre"/>
- <cd:constant type="stoppe"/>
- <cd:constant type="global"/>
- <cd:constant type="local"/>
- </cd:parameter>
- <cd:parameter name="conversion">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- <cd:constant type="toujours"/>
- </cd:parameter>
- <cd:parameter name="reduction">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="rgb">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="cmyk">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="mpcmyk">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="mpspot">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="couleurtexte">
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="espacement">
+ <cd:constant type="groupe" default="yes"/>
+ <cd:constant type="large"/>
+ </cd:parameter>
+ <cd:parameter name="lefthyphenmin">
+ <cd:constant type="cd:number" default="2"/>
+ </cd:parameter>
+ <cd:parameter name="righthyphenmin">
+ <cd:constant type="cd:number" default="2"/>
+ </cd:parameter>
+ <cd:parameter name="etat">
+ <cd:constant type="demarre"/>
+ <cd:constant type="stoppe"/>
+ </cd:parameter>
+ <cd:parameter name="phrasegauche">
+ <cd:constant type="cd:command" default="---"/>
+ </cd:parameter>
+ <cd:parameter name="phrasedroite">
+ <cd:constant type="cd:command" default="---"/>
+ </cd:parameter>
+ <cd:parameter name="sousphrasegauche">
+ <cd:constant type="cd:command" default="---"/>
+ </cd:parameter>
+ <cd:parameter name="sousphrasedroite">
+ <cd:constant type="cd:command" default="---"/>
+ </cd:parameter>
+ <cd:parameter name="citergauche">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="citerdroite">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="citationgauche">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="citationdroite">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="leftspeech">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="middlespeech">
+ <cd:constant type="cd:command" default=""/>
+ </cd:parameter>
+ <cd:parameter name="rightspeech">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="limittext">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="date">
+ <cd:constant type="cd:text"/> <!-- TODO -->
+ </cd:parameter>
+ <cd:parameter name="compoundhyphen">
+ <cd:constant type="cd:command" default="\compoundhyphen"/>
+ </cd:parameter>
+ <cd:parameter name="leftcompoundhyphen">
+ <cd:constant type="cd:command" default="\compoundhyphen"/>
+ </cd:parameter>
+ <cd:parameter name="rightcompoundhyphen">
+ <cd:constant type="cd:command" default=""/>
+ </cd:parameter>
+ <cd:parameter name="defaut">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplanguage" file="lang-ini.tex" category="language">
+ <cd:sequence>
+ <cd:string value="reglelangue"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:resolve name="language"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="installelangue" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="language" file="lang-ini.tex" category="language">
+ <cd:sequence>
+ <cd:string value="langue"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:resolve name="language"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mainlanguage" file="lang-ini.tex" category="language">
+ <cd:sequence>
+ <cd:string value="langueprincipale"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:resolve name="language"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="translate" file="lang-lab.tex" category="language">
+ <cd:sequence>
+ <cd:string value="traduire"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="cd:name">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useencoding" file="enco-ini.tex" category="encoding"> <!-- engine="pdftex" -->
+ <cd:sequence>
+ <cd:string value="utiliseencodage"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="split">
- <cd:constant type="c"/>
- <cd:constant type="m"/>
- <cd:constant type="y"/>
- <cd:constant type="k"/>
- <cd:constant type="p"/>
- <cd:constant type="s"/>
- <cd:constant type="non"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usespecials" file="spec-ini.tex">
+ <cd:sequence>
+ <cd:string value="utilisespecialites"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="raz"/>
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="critere">
- <cd:constant type="tout"/>
- <cd:constant type="rien"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definecolor" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="definitcouleur"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="r">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="g">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="b">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="c">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="m">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="y">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="k">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="s">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="h">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="t">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="a">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="p">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="e">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="color" type="environment" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="couleur"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="color" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="couleur"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="graycolor" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="couleurgrise"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showcolor">
- <cd:sequence>
- <cd:string value="montrecouleur"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definepalet" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="definitpalette"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="cd:name">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuppalet" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="reglepalette"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definecolorgroup" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="definitgroupecouleur"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="rgb" default="yes"/>
- <cd:constant type="cmyk"/>
- <cd:constant type="gris"/>
- <cd:constant type="s"/>
- </cd:keywords>
- <cd:triplet list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showpalet">
- <cd:sequence>
- <cd:string value="montrepalette"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="horizontale"/>
- <cd:constant type="verticale"/>
- <cd:constant type="nom"/>
- <cd:constant type="valeur"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showcolorgroup">
- <cd:sequence>
- <cd:string value="montregroupecouleur"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="horizontale"/>
- <cd:constant type="verticale"/>
- <cd:constant type="nom"/>
- <cd:constant type="valeur"/>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="comparepalet">
- <cd:sequence>
- <cd:string value="comparepalette"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="comparecolorgroup">
- <cd:sequence>
- <cd:string value="comparegroupecouleur"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showmakeup" file="supp-vis.tex">
- <cd:sequence>
- <cd:string value="montremakeup"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="definetype" file="core-ver.tex">
- <cd:sequence>
- <cd:string value="definittype"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="regletype"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptype" file="core-ver.tex">
- <cd:sequence>
- <cd:string value="regletype"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="espace">
- <cd:constant type="actif"/>
- <cd:constant type="desactive"/>
- </cd:parameter>
- <cd:parameter name="option">
- <cd:constant type="incline"/>
- <cd:constant type="normal"/>
- <cd:constant type="rien"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="couleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="type" file="verb-ini.tex">
- <cd:sequence>
- <cd:string value="dactylographier"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="typ" file="core-ver.tex">
- <cd:sequence>
- <cd:string value="typ"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="tex" file="core-ver.tex">
- <cd:sequence>
- <cd:string value="tex"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="arg" file="core-ver.tex">
- <cd:sequence>
- <cd:string value="arg"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definetyping" file="core-ver.tex">
- <cd:sequence>
- <cd:string value="definitdactylo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="fichier"/>
- <cd:constant type="typing"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="regledactylo"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptyping" file="core-ver.tex">
- <cd:sequence>
- <cd:string value="regledactylo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="fichier"/>
- <cd:constant type="typing"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="espace">
- <cd:constant type="actif"/>
- <cd:constant type="desactive"/>
- </cd:parameter>
- <cd:parameter name="page">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="option">
- <cd:constant type="incline"/>
- <cd:constant type="normal"/>
- <cd:constant type="commandes"/>
- <cd:constant type="couleur"/>
- <cd:constant type="rien"/>
- </cd:parameter>
- <cd:parameter name="texte">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="icommande">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="vcommande">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="ccommande">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="marge">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="standard"/>
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="margepaire">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="margepaire">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vide">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="petit"/>
- <cd:constant type="moyen"/>
- <cd:constant type="grand"/>
- <cd:constant type="standard"/>
- <cd:constant type="demiligne"/>
- <cd:constant type="ligne"/>
- </cd:parameter>
- <cd:parameter name="escape">
- <cd:constant type="cd:character"/>
- </cd:parameter>
- <cd:parameter name="espace">
- <cd:constant type="actif"/>
- <cd:constant type="desactive"/>
- </cd:parameter>
- <cd:parameter name="tab">
- <cd:constant type="cd:number"/>
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="page">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="indentesuivant">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="couleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="palette">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="lignes">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- <cd:constant type="hyphenated"/>
- </cd:parameter>
- <cd:parameter name="vide">
- <cd:constant type="oui"/>
- <cd:constant type="tout"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="numerotation">
- <cd:constant type="ligne"/>
- <cd:constant type="fichier"/>
- <cd:constant type="non"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="typing" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="typing"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="typefile" file="verb-ini.tex">
- <cd:sequence>
- <cd:string value="fichierdactylo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfootnotes" file="core-not.tex">
- <cd:sequence>
- <cd:string value="reglenotepdp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="conversion">
- <cd:constant type="numeros"/>
- <cd:constant type="caracteres"/>
- <cd:constant type="Caracteres"/>
- <cd:constant type="chiffresromains"/>
- <cd:constant type="Chiffresromains"/>
- </cd:parameter>
- <cd:parameter name="mode">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="emplacement">
- <cd:constant type="page"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="colonnes"/>
- <cd:constant type="premierecolonne"/>
- <cd:constant type="dernierecolonne"/>
- <cd:constant type="haut"/>
- <cd:constant type="rien"/>
- </cd:parameter>
- <cd:parameter name="ligne">
- <cd:constant type="actif"/>
- <cd:constant type="desactive"/>
- </cd:parameter>
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hauteur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="policecorps">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="petit"/>
- <cd:constant type="grand"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distancecolonne">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distancemarge">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="commandenumero">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="commandetexte">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="split">
- <cd:constant type="tolerant"/>
- <cd:constant type="strict"/>
- <cd:constant type="tresstrict"/>
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="styletexte">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="couleurtexte">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="interaction">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="facteur">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:inherit name="framed"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfootnotedefinition" file="core-not.tex">
- <cd:sequence>
- <cd:string value="definitnotepdp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:inherit name="definitdescription"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="footnote" file="core-not.tex">
- <cd:sequence>
- <cd:string value="notepdp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="footnotetext" file="core-not.tex">
- <cd:sequence>
- <cd:string value="textenotepdp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="note" file="core-not.tex">
- <cd:sequence>
- <cd:string value="note"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference interactive="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="localfootnotes" type="environment">
- <cd:sequence>
- <cd:string value="localfootnotes"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="placelocalfootnotes" file="core-not.tex">
- <cd:sequence>
- <cd:string value="placenotespdplocales"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="reglenotepdp"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placefootnotes" file="core-not.tex">
- <cd:sequence>
- <cd:string value="placenotespdp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="reglenotepdp"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupunderbar" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="reglesouslignage"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="alternative">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- </cd:parameter>
- <cd:parameter name="epaisseurligne">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="decalageinf">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="decalagesup">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="couleurligne">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineoutput" file="spec-ini.tex">
+ <cd:sequence>
+ <cd:string value="definitsortie"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="underbar" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="souslignetout"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="underbars" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="sousligne"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="overbar" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="overbar"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="overbars" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="overbars"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="overstrike" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="surlignetout"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="overstrikes" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="surligne"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="romannumerals" file="core-con.tex">
- <cd:sequence>
- <cd:string value="chiffresromains"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="Romannumerals" file="core-con.tex">
- <cd:sequence>
- <cd:string value="Chiffresromains"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="numbers" file="core-con.tex">
- <cd:sequence>
- <cd:string value="numeros"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="character" file="core-con.tex">
- <cd:sequence>
- <cd:string value="caractere"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="Character" file="core-con.tex">
- <cd:sequence>
- <cd:string value="Caractere"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="characters" file="core-con.tex">
- <cd:sequence>
- <cd:string value="caracteres"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="Characters" file="core-con.tex">
- <cd:sequence>
- <cd:string value="Caracteres"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="mediaeval" file="core-con.tex">
- <cd:sequence>
- <cd:string value="mediaeval"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="month" file="core-con.tex">
- <cd:sequence>
- <cd:string value="mois"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="MONTH" file="core-con.tex">
- <cd:sequence>
- <cd:string value="MOIS"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="weekday" file="core-con.tex">
- <cd:sequence>
- <cd:string value="joursemaine"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="WEEKDAY" file="core-con.tex">
- <cd:sequence>
- <cd:string value="JOURSEMAINE"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupcapitals" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="reglecapitales"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="titre">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="sc">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="cap" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="cap"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="nocap">
- <cd:sequence>
- <cd:string value="nocap"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="CAP">
- <cd:sequence>
- <cd:string value="CAP"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="Cap">
- <cd:sequence>
- <cd:string value="Cap"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="Caps">
- <cd:sequence>
- <cd:string value="Caps"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="WORD" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="MOT"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="WORDS" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="MOTS"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="Word" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="Mot"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="Words" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="Mots"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="stretched" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="etire"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definesymbol" file="symb-ini.tex">
- <cd:sequence>
- <cd:string value="definitsymbole"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definefiguresymbol" file="symb-ini.tex">
- <cd:sequence>
- <cd:string value="definitsymbolefigure"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="figureexterne"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="symbol" file="symb-ini.tex">
- <cd:sequence>
- <cd:string value="symbole"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="symbolset" type="environment">
- <cd:sequence>
- <cd:string value="symbolset"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupsymbolset" file="symb-ini.tex">
- <cd:sequence>
- <cd:string value="reglejeusymboles"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="usesymbols" file="symb-ini.tex">
- <cd:sequence>
- <cd:string value="utilisesymboles"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showsymbolset">
- <cd:sequence>
- <cd:string value="montrejeusymboles"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineconversion" file="core-con.tex">
- <cd:sequence>
- <cd:string value="definitconversion"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:command"/>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="convertnumber" file="core-con.tex">
- <cd:sequence>
- <cd:string value="convertitnumero"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupheadtext" file="lang-lab.tex">
- <cd:sequence>
- <cd:string value="regletextetete"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:resolve name="language"/>
- </cd:keywords>
- <cd:assignments>
- <cd:parameter name="cd:name">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuplabeltext" file="lang-lab.tex">
- <cd:sequence>
- <cd:string value="reglelabeltexte"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:resolve name="language"/>
- </cd:keywords>
- <cd:assignments>
- <cd:parameter name="cd:name">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="headtext" file="lang-lab.tex">
- <cd:sequence>
- <cd:string value="textetete"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="labeltext">
- <cd:sequence>
- <cd:string value="labeltexte"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupmarginrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="reglemargereglee"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments>
- <cd:parameter name="niveau">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="epaisseurligne">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="marginrule" type="environment">
- <cd:sequence>
- <cd:string value="margereglee"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="marginrule">
- <cd:sequence>
- <cd:string value="margereglee"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuplinewidth" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="regleepaisseurligne"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupframed" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="regleencadre"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="hauteur">
- <cd:constant type="adapte"/>
- <cd:constant type="large"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="largeur">
- <cd:constant type="adapte"/>
- <cd:constant type="large"/>
- <cd:constant type="fixe"/>
- <cd:constant type="local"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="autolargeur">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- <cd:constant type="force"/>
- </cd:parameter>
- <cd:parameter name="offset">
- <cd:constant type="rien"/>
- <cd:constant type="revetement"/>
- <cd:constant type="defaut"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="emplacement">
- <cd:constant type="profondeur"/>
- <cd:constant type="suspend"/>
- <cd:constant type="haut"/>
- <cd:constant type="baha"/>
- <cd:constant type="bas"/>
- <cd:constant type="sup"/>
- <cd:constant type="milieu"/>
- <cd:constant type="inf"/>
- <cd:constant type="maintient"/>
- </cd:parameter>
- <cd:parameter name="option">
- <cd:constant type="rien"/>
- <cd:constant type="vide"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- <cd:constant type="global"/>
- <cd:constant type="local"/>
- </cd:parameter>
- <cd:parameter name="alignement">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="inf">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="sup">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="cadre">
- <cd:constant type="actif"/>
- <cd:constant type="desactive"/>
- <cd:constant type="rien"/>
- <cd:constant type="revetement"/>
- </cd:parameter>
- <cd:parameter name="cadresup">
- <cd:constant type="actif"/>
- <cd:constant type="desactive"/>
- </cd:parameter>
- <cd:parameter name="cadreinf">
- <cd:constant type="actif"/>
- <cd:constant type="desactive"/>
- </cd:parameter>
- <cd:parameter name="cadregauche">
- <cd:constant type="actif"/>
- <cd:constant type="desactive"/>
- </cd:parameter>
- <cd:parameter name="cadredroit">
- <cd:constant type="actif"/>
- <cd:constant type="desactive"/>
- </cd:parameter>
- <cd:parameter name="decalagecadre">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="profondeurcadre">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="coincadre">
- <cd:constant type="rond"/>
- <cd:constant type="rectangulaire"/>
- </cd:parameter>
- <cd:parameter name="rayoncadre">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="couleurcadre">
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="arriereplan">
- <cd:constant type="ecran"/>
- <cd:constant type="couleur"/>
- <cd:constant type="rien"/>
- <cd:constant type="premierplan"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupoutput" file="spec-ini.tex">
+ <cd:sequence>
+ <cd:string value="reglesortie"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="ecranarriereplan">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="couleurarriereplan">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definebodyfontenvironment" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="definitenvironnementpolicecorps"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes"> <!-- it's possible to use 1+2+3, 2+3, what about 1+2? -->
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="decalagearriereplan">
- <cd:constant type="cadre"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="profondeurarriereplan">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="coinarriereplan">
- <cd:constant type="rond"/>
- <cd:constant type="rectangulaire"/>
- </cd:parameter>
- <cd:parameter name="rayonarriereplan">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="profondeur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="coin">
- <cd:constant type="rond"/>
- <cd:constant type="rectangulaire"/>
- </cd:parameter>
- <cd:parameter name="rayon">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vide">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="couleurpremierplan">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="stylepremierplan">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="epaisseurligne">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="framed" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="framed"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="regleencadre"/>
- </cd:assignments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="inframed" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="inframed"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="regleencadre"/>
- </cd:assignments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="thinrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="traitsfins"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes">
- <cd:inherit name="regletraitsfins"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupthinrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="regletraitsfins"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments>
- <cd:parameter name="espaceinterligne">
- <cd:constant type="petit"/>
- <cd:constant type="moyen"/>
- <cd:constant type="grand"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="entre">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="couleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="couleurarriereplan">
+ </cd:keywords>
+ <cd:keywords n="2" optional="no"> <!-- have to force no, otherwise \showsetup is wrong ! -->
+ <cd:constant type="5pt"/> <!-- TODO: maybe <cd:resolve name="bodyfont"/> -->
+ <cd:constant type="..."/>
+ <cd:constant type="12pt"/>
+ <cd:constant type="defaut"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:parameter name="texte">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="script">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="scriptscript">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="x">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="xx">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="a">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="b">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="c">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="d">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="petit">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="grand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="espaceinterligne">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="em">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbodyfontenvironment" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="regleenvironnementpolicecorps"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes"> <!-- same as definebodyfontenvironment; you can define the whole commant to inherit, not only parameters-->
+ <cd:inherit name="definitenvironnementpolicecorps" n="1"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="no">
+ <cd:inherit name="definitenvironnementpolicecorps" n="2" optional="no"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="definitenvironnementpolicecorps" n="3"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showbodyfontenvironment" file="font-run.tex" category="fonts"> <!-- and debug -->
+ <cd:sequence>
+ <cd:string value="montreenvironnementpolicecorps"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:inherit name="reglepolicecorps" n="1"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definebodyfont" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="definitpolicecorps"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes"> <!-- <cd:constant type="defaut"/> -->
+ <cd:resolve name="bodyfont"/> <!-- TODO: check this -->
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="rm" default="yes"/>
+ <cd:constant type="ss"/>
+ <cd:constant type="tt"/>
+ <cd:constant type="hw"/>
+ <cd:constant type="cg"/>
+ <cd:constant type="mm"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:parameter name="tf">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="bf">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="sl">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="it">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="bs">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="bi">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="sc">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="mr">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="ex">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="mi">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="sy">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="ma">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="mb">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="mc">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="md">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definebodyfontDEF" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="definitpolicecorps"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="hauteur">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="profondeur">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="alternative">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- <cd:constant type="d"/>
- </cd:parameter>
- <cd:parameter name="epaisseurligne">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="couleur">
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:inherit name="reglepolicecorps" n="2"/>
+ </cd:keywords>
+ <cd:keywords n="1">
+ <cd:inherit name="reglepolicecorps" n="3"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definebodyfontREF" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="definitpolicecorps"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:inherit name="reglepolicecorps" n="1"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:inherit name="reglepolicecorps" n="2"/>
+ </cd:keywords>
+ <cd:keywords n="3">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="arriereplan">
- <cd:constant type="couleur"/>
- </cd:parameter>
- <cd:parameter name="couleurarriereplan">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+
+ <cd:command name="showbodyfont" file="font-run.tex" category="fonts"> <!-- visual debugging -->
+ <cd:sequence>
+ <cd:string value="montrepolicecorps"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:inherit name="reglepolicecorps" n="1"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbodyfont" file="font-run.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="reglepolicecorps"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes"> <!-- TODO: many missing, maybe also <cd:resolve name="bodyfont"/> -->
<cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="hairline" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="ligneh"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="thinrule" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="traitfin"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="defineframedtext" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="defineframedtext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="setupframedtexts"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineframed" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="defineframed"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="setupframedtexts"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupframedtexts" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="setupframedtexts"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="policecorps">
+ <cd:constant type="serif"/>
+ <cd:constant type="regulier"/>
+ <cd:constant type="roman"/>
+ <cd:constant type="sans"/>
+ <cd:constant type="support"/>
+ <cd:constant type="sansserif"/>
+ <cd:constant type="mono"/>
+ <cd:constant type="type"/>
+ <cd:constant type="teletype"/>
+ <cd:constant type="manuscript"/>
+ <cd:constant type="calligraphique"/>
<cd:constant type="5pt"/>
<cd:constant type="..."/>
<cd:constant type="12pt"/>
- <cd:constant type="petit"/>
- <cd:constant type="grand"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="gauche">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="droite">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="interieur">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="correctionligne">
- <cd:constant type="actif"/>
- <cd:constant type="desactive"/>
- </cd:parameter>
- <cd:parameter name="correctionprofondeur">
- <cd:constant type="actif"/>
- <cd:constant type="desactive"/>
- </cd:parameter>
- <cd:parameter name="marge">
- <cd:constant type="standard"/>
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="emplacement">
- <cd:constant type="gauche"/>
- <cd:constant type="droite"/>
- <cd:constant type="milieu"/>
- <cd:constant type="rien"/>
- </cd:parameter>
- <cd:parameter name="composeenalinea">
- <cd:resolve name="indenting"/>
- </cd:parameter>
- <cd:inherit name="regleencadre"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="framedtext" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="texteencadre"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="gauche"/>
- <cd:constant type="droite"/>
- <cd:constant type="milieu"/>
- <cd:constant type="rien"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="setupframedtexts"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="framedtext" generated="yes">
- <cd:sequence>
- <cd:variable value="texteencadre"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="setupframedtexts"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="background" type="environment">
- <cd:sequence>
- <cd:string value="arriereplan"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="background">
- <cd:sequence>
- <cd:string value="arriereplan"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupbackground" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="reglearriereplan"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="decalagegauche">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rightoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="decalagesup">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="decalageinf">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="etat">
- <cd:constant type="demarre"/>
- <cd:constant type="stoppe"/>
- </cd:parameter>
- <cd:inherit name="regleencadre"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="fillinrules">
- <cd:sequence>
- <cd:string value="remplitlignesreglees"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="regleremplitlignesreglees"/>
- </cd:assignments>
- <cd:content/>
- <cd:content optional="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="fillintext">
- <cd:sequence>
- <cd:string value="remplittexte"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="regleremplitlignesreglees"/>
- </cd:assignments>
- <cd:content/>
- <cd:content optional="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfillinrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="regleremplitlignesreglees"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="largeur">
- <cd:constant type="adapte"/>
- <cd:constant type="large"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="espaceinterligne">
- <cd:constant type="petit"/>
- <cd:constant type="moyen"/>
- <cd:constant type="grand"/>
- </cd:parameter>
- <cd:parameter name="separateur">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="fillinline">
- <cd:sequence>
- <cd:string value="remplitligne"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="regleremplitligne"/>
- </cd:assignments>
- <cd:nothing/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfillinlines" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="regleremplitligne"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="marge">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptextrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="reglelignesreglestexte"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="emplacement">
- <cd:constant type="gauche"/>
- <cd:constant type="dansmarge"/>
- </cd:parameter>
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="entre">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="policecorps">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="switchtobodyfont" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="changepolicecorps"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ <cd:constant type="serif"/>
+ <cd:constant type="regulier"/>
+ <cd:constant type="roman"/>
+ <cd:constant type="sans"/>
+ <cd:constant type="support"/>
+ <cd:constant type="sansserif"/>
+ <cd:constant type="mono"/>
+ <cd:constant type="type"/>
+ <cd:constant type="teletype"/>
+ <cd:constant type="manuscript"/>
+ <cd:constant type="calligraphique"/>
<cd:constant type="5pt"/>
<cd:constant type="..."/>
<cd:constant type="12pt"/>
<cd:constant type="petit"/>
<cd:constant type="grand"/>
- </cd:parameter>
- <cd:parameter name="couleur">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefont" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="definitpolice"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="couleurligne">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="textrule" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="ligneregleetexte"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="sup"/>
- <cd:constant type="inf"/>
- </cd:keywords>
- <cd:content optional="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="textrule" type="environment" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="ligneregleetexte"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="sup"/>
- <cd:constant type="inf"/>
- </cd:keywords>
- <cd:content optional="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="blackrule" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="lignenoire"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="reglelignesnoires"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="blackrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="lignesnoires"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:inherit name="reglelignesnoires"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupblackrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="reglelignesnoires"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="hauteur">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="profondeur">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="alternative">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineoverlay" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="definitrevetement"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:command"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="usemodule">
- <cd:sequence>
- <cd:string value="utilisemodule"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="reset" file="core-num.tex">
- <cd:sequence>
- <cd:string value="raz"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="donttest">
- <cd:sequence>
- <cd:string value="sanstest"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="localenvironment" type="environment">
- <cd:sequence>
- <cd:string value="localenvironment"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupsystem" file="core-sys.tex">
- <cd:sequence>
- <cd:string value="reglesysteme"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="resolution">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="fichier">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="repertoire">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="aleatoire">
- <cd:constant type="normal"/>
- <cd:constant type="petit"/>
- <cd:constant type="moyen"/>
- <cd:constant type="grand"/>
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="usedirectory">
- <cd:sequence>
- <cd:string value="usedirectory"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- <cd:constant type="raz"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="low" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="bas"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="high" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="haut"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="lohi" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="baha"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="bas"/>
- </cd:keywords>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showframe">
- <cd:sequence>
- <cd:string value="montrecadre"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- <cd:constant type="marge"/>
- <cd:constant type="bord"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="leftaligned" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="aligneagauche"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="rightaligned" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="aligneadroite"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="midaligned" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="aligneaumilieu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="wordright" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="motdroit"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="inmargin" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="dansmarge"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="bas"/>
- </cd:keywords>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="inothermargin" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="dansautremarge"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="bas"/>
- </cd:keywords>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="inleft">
- <cd:sequence>
- <cd:string value="dansgauche"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="bas"/>
- </cd:keywords>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="inright">
- <cd:sequence>
- <cd:string value="dansdroite"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="bas"/>
- </cd:keywords>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="ininner">
- <cd:sequence>
- <cd:string value="ininner"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="bas"/>
- </cd:keywords>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="inouter">
- <cd:sequence>
- <cd:string value="inouter"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="bas"/>
- </cd:keywords>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="column">
- <cd:sequence>
- <cd:string value="colonne"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="showstruts" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="montrestruts"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="showsetups">
- <cd:sequence>
- <cd:string value="montrereglages"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="showlayout">
- <cd:sequence>
- <cd:string value="montredisposition"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="margintext" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="textemarge"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="bas"/>
- </cd:keywords>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupmarginblocks" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="regleblocmarge"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="emplacement">
- <cd:constant type="dansmarge"/>
- <cd:constant type="gauche"/>
- <cd:constant type="milieu"/>
- <cd:constant type="droite"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="alignement">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="sup">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="entre">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="inf">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="gauche">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="droite">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="marginblock" type="environment">
- <cd:sequence>
- <cd:string value="marginblock"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="part" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="part"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="title" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="title"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="chapter" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="chapter"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="section" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="section"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="subsection" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subsection"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="subsubsection" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subsubsection"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="subject" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subject"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="subsubject" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subsubject"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="subsubsubject" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subsubsubject"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="appendix" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="appendix"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="in" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="dans"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content interactive="yes"/>
- <cd:content interactive="yes"/>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="at">
- <cd:sequence>
- <cd:string value="a"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content interactive="yes"/>
- <cd:content interactive="yes"/>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="about">
- <cd:sequence>
- <cd:string value="concernant"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content interactive="yes"/>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="somewhere" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="qqpart"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="atpage" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="alapage"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="ref" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="ref"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="t"/>
- <cd:constant type="p"/>
- <cd:constant type="r"/>
- <cd:constant type="s"/>
- <cd:constant type="e"/>
- </cd:keywords>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="textreference" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="referencetexte"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="pagereference" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="referencepage"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="reference" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="reference"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="usereferences" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="utilisereferences"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definereference" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="definitreference"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:reference list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definereferenceformat" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="definitformatreference"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="gauche">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="droite">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="texte">
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="etiquette">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcolor" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="reglecouleur"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="hl">
- <cd:sequence>
- <cd:string value="hl"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="vl">
- <cd:sequence>
- <cd:string value="vl"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="godown" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="vaenbas"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="whitespace" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="espaceblanc"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="nowhitespace" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="sansespaceblanc"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="crlf" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="crlf"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="space" file="syst-pln.tex">
- <cd:sequence>
- <cd:string value="espace"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="fixedspaces" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="espacesfixes"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="emptylines" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="emptylines"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="nospace" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="sansespace"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="packed" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="groupe"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupdescriptions" file="core-des.tex">
- <cd:sequence>
- <cd:string value="regledescriptions"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="styletete">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="couleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="largeur">
- <cd:constant type="adapte"/>
- <cd:constant type="large"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="echantillon">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="texte">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="closesymbol">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="closecommand">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="titleleft">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcolors" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="reglecouleurs"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="etat">
+ <cd:constant type="demarre"/>
+ <cd:constant type="stoppe"/>
+ <cd:constant type="global"/>
+ <cd:constant type="local"/>
+ </cd:parameter>
+ <cd:parameter name="conversion">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ <cd:constant type="toujours"/>
+ </cd:parameter>
+ <cd:parameter name="reduction">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ <cd:parameter name="rgb">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ <cd:parameter name="cmyk">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ <cd:parameter name="mpcmyk">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ <cd:parameter name="mpspot">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ <cd:parameter name="facteur">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ <cd:parameter name="couleurtexte">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="split">
+ <cd:constant type="c"/>
+ <cd:constant type="m"/>
+ <cd:constant type="y"/>
+ <cd:constant type="k"/>
+ <cd:constant type="p"/>
+ <cd:constant type="s"/>
+ <cd:constant type="non"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="critere">
+ <cd:constant type="tout"/>
+ <cd:constant type="rien"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definecolor" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="definitcouleur"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="r">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="g">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="b">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="c">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="m">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="y">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="k">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="s">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="h">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="t">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="a">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="p">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="e">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="color" type="environment" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="couleur"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="color" file="colo-ini.tex">
+ <cd:sequence>
+ <cd:string value="couleur"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="titleright">
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="graycolor" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="couleurgrise"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="distancetitre">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="styletitre">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="couleurtitre">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="alignement">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="marge">
- <cd:constant type="standard"/>
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="emplacement">
- <cd:constant type="gauche"/>
- <cd:constant type="droite"/>
- <cd:constant type="sup"/>
- <cd:constant type="serried"/>
- <cd:constant type="dansmarge"/>
- <cd:constant type="dansgauche"/>
- <cd:constant type="dansdroit"/>
- <cd:constant type="suspend"/>
- </cd:parameter>
- <cd:parameter name="commandetete">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="suspend">
- <cd:constant type="adapte"/>
- <cd:constant type="large"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showcolor" file="colo-run.tex" category="colors"> <!-- and debug -->
+ <cd:sequence>
+ <cd:string value="montrecouleur"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definepalet" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="definitpalette"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="cd:name">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppalet" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="reglepalette"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definecolorgroup" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="definitgroupecouleur"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="rgb" default="yes"/>
+ <cd:constant type="cmyk"/>
+ <cd:constant type="gris"/>
+ <cd:constant type="s"/>
+ </cd:keywords>
+ <cd:triplet n="3" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showpalet" file="colo-run.tex" category="colors"> <!-- and debug -->
+ <cd:sequence>
+ <cd:string value="montrepalette"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="horizontale"/>
+ <cd:constant type="verticale"/>
+ <cd:constant type="nom"/>
+ <cd:constant type="valeur"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showcolorgroup" file="colo-run.tex" category="colors"> <!-- and debug-->
+ <cd:sequence>
+ <cd:string value="montregroupecouleur"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="horizontale"/>
+ <cd:constant type="verticale"/>
+ <cd:constant type="nom"/>
+ <cd:constant type="valeur"/>
<cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="entre">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="indentesuivant">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="composeenalinea">
- <cd:resolve name="indenting"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupenumerations" file="core-des.tex">
- <cd:sequence>
- <cd:string value="regleenumerations"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="definitdescription"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineenumeration" file="core-des.tex">
- <cd:sequence>
- <cd:string value="definitenumeration"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="regleenumerations"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="enumeration" generated="yes">
- <cd:sequence>
- <cd:variable value="enumeration"/>
- </cd:sequence>
- <cd:arguments>
- <cd:nothing interactive="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="enumeration" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="enumeration"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="definedescription" file="core-des.tex">
- <cd:sequence>
- <cd:string value="definitdescription"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="regledescriptions"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="description" generated="yes">
- <cd:sequence>
- <cd:variable value="description"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:nothing/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="description" type="environment" generated="yes">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="comparepalet" file="colo-run.tex" category="colors"> <!-- and debug? -->
+ <cd:sequence>
+ <cd:string value="comparepalette"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="comparecolorgroup" file="colo-run.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="comparegroupecouleur"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showmakeup" file="supp-vis.tex" category="debug">
+ <cd:sequence>
+ <cd:string value="montremakeup"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="definetype" file="core-ver.tex" category="verbatim">
+ <cd:sequence>
+ <cd:string value="definittype"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="regletype" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptype" file="core-ver.tex" category="verbatim"> <!-- TODO -->
+ <cd:sequence>
+ <cd:string value="regletype"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="espace">
+ <cd:constant type="actif"/>
+ <cd:constant type="desactive" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="option">
+ <cd:constant type="incline"/>
+ <cd:constant type="normal"/>
+ <cd:constant type="rien"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="couleur">
+ <cd:constant type="cd:name" default=""/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="type" file="verb-ini.tex" category="verbatim">
+ <cd:sequence>
+ <cd:string value="dactylographier"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="typ" file="core-ver.tex" category="verbatim">
+ <cd:sequence>
+ <cd:string value="typ"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tex" file="core-ver.tex" category="verbatim">
+ <cd:sequence>
+ <cd:string value="tex"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <!-- cd:command name="arg" file="core-ver.tex"> command broken
<cd:sequence>
- <cd:variable value="description"/>
+ <cd:string value="arg"/>
</cd:sequence>
<cd:arguments>
<cd:content/>
</cd:arguments>
-</cd:command>
-
-<cd:command name="setupindentations" file="core-des.tex">
- <cd:sequence>
- <cd:string value="reglealineas"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="styletete">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="largeur">
- <cd:constant type="adapte"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="texte">
+</cd:command -->
+
+ <cd:command name="definetyping" file="core-ver.tex" category="verbatim">
+ <cd:sequence>
+ <cd:string value="definitdactylo"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:inherit name="regledactylo" n="1"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="regledactylo" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptyping" file="core-ver.tex" category="verbatim">
+ <cd:sequence>
+ <cd:string value="regledactylo"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="fichier"/>
+ <cd:constant type="typing"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="espace">
+ <cd:constant type="actif"/>
+ <cd:constant type="desactive"/>
+ </cd:parameter>
+ <cd:parameter name="page">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ <cd:parameter name="option">
+ <cd:constant type="incline"/>
+ <cd:constant type="normal"/>
+ <cd:constant type="commandes"/>
+ <cd:constant type="couleur"/>
+ <cd:constant type="rien"/>
+ </cd:parameter>
+ <cd:parameter name="texte">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ <cd:parameter name="icommande">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="vcommande">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="ccommande">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="avant">
+ <cd:constant type="cd:command" default="\blank"/>
+ </cd:parameter>
+ <cd:parameter name="apres">
+ <cd:constant type="cd:command" default="\blank"/>
+ </cd:parameter>
+ <cd:parameter name="marge">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="standard"/>
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ <cd:parameter name="margepaire">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="margepaire">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="vide">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="petit"/>
+ <cd:constant type="moyen"/>
+ <cd:constant type="grand"/>
+ <cd:constant type="standard"/>
+ <cd:constant type="demiligne"/>
+ <cd:constant type="ligne"/>
+ </cd:parameter>
+ <cd:parameter name="escape">
+ <cd:constant type="cd:character"/>
+ </cd:parameter>
+ <cd:parameter name="espace">
+ <cd:constant type="actif"/>
+ <cd:constant type="desactive"/>
+ </cd:parameter>
+ <cd:parameter name="tab">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ <cd:parameter name="page">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ <cd:parameter name="indentesuivant">
+ <cd:resolve name="indentnext"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="couleur">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="palette">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="lignes">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ <cd:constant type="hyphenated"/>
+ </cd:parameter>
+ <cd:parameter name="vide">
+ <cd:constant type="oui"/>
+ <cd:constant type="tout"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ <cd:parameter name="numerotation">
+ <cd:constant type="ligne"/>
+ <cd:constant type="fichier"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ <cd:parameter name="policecorps">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="typing" type="environment" generated="yes" file="verb-ini.tex"
+ category="verbatim">
+ <cd:sequence>
+ <cd:variable value="typing"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="typefile" file="verb-ini.tex" category="verbatim">
+ <cd:sequence>
+ <cd:string value="fichierdactylo"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfootnotes" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="reglenotepdp"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="conversion">
+ <cd:constant type="numeros"/>
+ <cd:constant type="caracteres"/>
+ <cd:constant type="Caracteres"/>
+ <cd:constant type="chiffresromains"/>
+ <cd:constant type="Chiffresromains"/>
+ </cd:parameter>
+ <cd:parameter name="mode">
+ <cd:constant type="bytext"/>
+ <cd:constant type="bycd:section"/>
+ </cd:parameter>
+ <cd:parameter name="emplacement">
+ <cd:constant type="page"/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="colonnes"/>
+ <cd:constant type="premierecolonne"/>
+ <cd:constant type="dernierecolonne"/>
+ <cd:constant type="haut"/>
+ <cd:constant type="rien"/>
+ </cd:parameter>
+ <cd:parameter name="ligne">
+ <cd:constant type="actif"/>
+ <cd:constant type="desactive"/>
+ </cd:parameter>
+ <cd:parameter name="avant">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="apres">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="largeur">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="hauteur">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="policecorps">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distancecolonne">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distancemarge">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="commandenumero">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="commandetexte">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="split">
+ <cd:constant type="tolerant"/>
+ <cd:constant type="strict"/>
+ <cd:constant type="tresstrict"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="styletexte">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="couleurtexte">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="interaction">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ <cd:parameter name="facteur">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:inherit name="regleencadre" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfootnotedefinition" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="definitnotepdp"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:inherit name="regledescriptions" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="footnote" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="notepdp"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="footnotetext" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="textenotepdp"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="note" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="note"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" interactive="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="localfootnotes" type="environment" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="localfootnotes"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="placelocalfootnotes" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="placenotespdplocales"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="reglenotepdp" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placefootnotes" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="placenotespdp"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="reglenotepdp" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupunderbar" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="reglesouslignage"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="alternative">
+ <cd:constant type="a"/>
+ <cd:constant type="b"/>
+ <cd:constant type="c"/>
+ </cd:parameter>
+ <cd:parameter name="epaisseurligne">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="decalageinf">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="decalagesup">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="couleurligne">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="underbar" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="souslignetout"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="underbars" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="sousligne"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overbar" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="overbar"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overbars" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="overbars"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overstrike" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="surlignetout"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overstrikes" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="surligne"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="romannumerals" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="chiffresromains"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Romannumerals" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="Chiffresromains"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="numbers" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="numeros"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="character" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="caractere"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Character" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="Caractere"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="characters" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="caracteres"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Characters" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="Caracteres"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mediaeval" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="mediaeval"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="month" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="mois"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MONTH" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="MOIS"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="weekday" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="joursemaine"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="WEEKDAY" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="JOURSEMAINE"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcapitals" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="reglecapitales"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="titre">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ <cd:parameter name="sc">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="cap" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="cap"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nocap" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="nocap"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="CAP" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="CAP"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Cap" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="Cap"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Caps" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="Caps"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="WORD" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="MOT"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="WORDS" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="MOTS"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Word" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="Mot"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Words" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="Mots"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="stretched" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="etire"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definesymbol" file="symb-ini.tex">
+ <cd:sequence>
+ <cd:string value="definitsymbole"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="echantillon">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefiguresymbol" file="symb-ini.tex">
+ <cd:sequence>
+ <cd:string value="definitsymbolefigure"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="reglefiguresexternes" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="symbol" file="symb-ini.tex">
+ <cd:sequence>
+ <cd:string value="symbole"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="symbolset" type="environment" file="symb-ini.tex" category="symbols">
+ <cd:sequence>
+ <cd:string value="symbolset"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsymbolset" file="symb-ini.tex" category="symbols">
+ <cd:sequence>
+ <cd:string value="reglejeusymboles"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usesymbols" file="symb-ini.tex" category="symbols">
+ <cd:sequence>
+ <cd:string value="utilisesymboles"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showsymbolset" file="symb-run.tex" category="symbols"> <!-- and symbols -->
+ <cd:sequence>
+ <cd:string value="montrejeusymboles"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineconversion" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="definitconversion"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
<cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="separateur">
<cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineindenting" file="core-des.tex">
- <cd:sequence>
- <cd:string value="definitcompoalinea"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="reglealineas"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="indentation" generated="yes" file="core-spa.tex">
- <cd:sequence>
- <cd:variable value="indentation"/>
- </cd:sequence>
- <cd:arguments>
- <cd:nothing/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definelabel" file="core-des.tex">
- <cd:sequence>
- <cd:string value="definitetiquette"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="texte">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="emplacement">
- <cd:constant type="dansmarge"/>
- <cd:constant type="danstexte"/>
- </cd:parameter>
- <cd:parameter name="mode">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="blockway">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="styletete">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="couleurtete">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="labeling" generated="yes">
- <cd:sequence>
- <cd:variable value="labeling"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupcolumns" file="page-mul.tex">
- <cd:sequence>
- <cd:string value="reglecolonnes"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="n">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="convertnumber" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="convertitnumero"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupheadtext" file="lang-lab.tex">
+ <cd:sequence>
+ <cd:string value="regletextetete"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:resolve name="language"/>
+ </cd:keywords>
+ <cd:assignments n="2">
+ <cd:parameter name="cd:name">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplabeltext" file="lang-lab.tex">
+ <cd:sequence>
+ <cd:string value="reglelabeltexte"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:resolve name="language"/>
+ </cd:keywords>
+ <cd:assignments n="2">
+ <cd:parameter name="cd:name">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="headtext" file="lang-lab.tex">
+ <cd:sequence>
+ <cd:string value="textetete"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="labeltext" file="lang-lab.tex">
+ <cd:sequence>
+ <cd:string value="labeltexte"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupmarginrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="reglemargereglee"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1">
+ <cd:parameter name="niveau">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="epaisseurligne">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="marginrule" type="environment" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="margereglee"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="nsup">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="marginrule" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="margereglee"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ligne">
- <cd:constant type="actif"/>
- <cd:constant type="desactive"/>
- </cd:parameter>
- <cd:parameter name="hauteur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="tolerance">
- <cd:constant type="tresstrict"/>
- <cd:constant type="strict"/>
- <cd:constant type="tolerant"/>
- <cd:constant type="trestolerant"/>
- <cd:constant type="etire"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="equilibre">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="alignement">
- <cd:constant type="texte"/>
- <!-- cd:constant type="yes"/ -->
- <!-- cd:constant type="no"/ -->
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="vide">
- <cd:constant type="fixe"/>
- <cd:constant type="demiligne"/>
- <cd:constant type="ligne"/>
- <cd:constant type="flexible"/>
- <cd:constant type="grand"/>
- <cd:constant type="moyen"/>
- <cd:constant type="petit"/>
- </cd:parameter>
- <cd:parameter name="option">
- <cd:constant type="arriereplan"/>
- </cd:parameter>
- <cd:parameter name="direction">
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplinewidth" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="regleepaisseurligne"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupframed" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="regleencadre"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/> <!-- defines a command with that name -->
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="hauteur">
+ <cd:constant type="adapte"/>
+ <cd:constant type="large"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="largeur">
+ <cd:constant type="adapte"/>
+ <cd:constant type="large"/>
+ <cd:constant type="fixe"/>
+ <cd:constant type="local"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="autolargeur">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ <cd:constant type="force"/>
+ </cd:parameter>
+ <cd:parameter name="offset">
+ <cd:constant type="rien"/>
+ <cd:constant type="revetement"/>
+ <cd:constant type="defaut"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="emplacement">
+ <cd:constant type="profondeur"/>
+ <cd:constant type="suspend"/>
+ <cd:constant type="haut"/>
+ <cd:constant type="baha"/>
+ <cd:constant type="bas"/>
+ <cd:constant type="sup"/>
+ <cd:constant type="milieu"/>
+ <cd:constant type="inf"/>
+ <cd:constant type="maintient"/>
+ </cd:parameter>
+ <cd:parameter name="option">
+ <cd:constant type="rien"/>
+ <cd:constant type="vide"/>
+ </cd:parameter>
+ <cd:parameter name="strut">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ <cd:constant type="global"/>
+ <cd:constant type="local"/>
+ </cd:parameter>
+ <cd:parameter name="alignement">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="inf">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="sup">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="cadre">
+ <cd:constant type="actif"/>
+ <cd:constant type="desactive"/>
+ <cd:constant type="rien"/>
+ <cd:constant type="revetement"/>
+ </cd:parameter>
+ <cd:parameter name="cadresup">
+ <cd:constant type="actif"/>
+ <cd:constant type="desactive"/>
+ </cd:parameter>
+ <cd:parameter name="cadreinf">
+ <cd:constant type="actif"/>
+ <cd:constant type="desactive"/>
+ </cd:parameter>
+ <cd:parameter name="cadregauche">
+ <cd:constant type="actif"/>
+ <cd:constant type="desactive"/>
+ </cd:parameter>
+ <cd:parameter name="cadredroit">
+ <cd:constant type="actif"/>
+ <cd:constant type="desactive"/>
+ </cd:parameter>
+ <cd:parameter name="decalagecadre">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="profondeurcadre">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="coincadre">
+ <cd:constant type="rond"/>
+ <cd:constant type="rectangulaire"/>
+ </cd:parameter>
+ <cd:parameter name="rayoncadre">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="couleurcadre">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="arriereplan">
+ <cd:constant type="ecran"/>
+ <cd:constant type="couleur"/>
+ <cd:constant type="rien"/>
+ <cd:constant type="premierplan"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="ecranarriereplan">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="couleurarriereplan">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="decalagearriereplan">
+ <cd:constant type="cadre"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="profondeurarriereplan">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="coinarriereplan">
+ <cd:constant type="rond"/>
+ <cd:constant type="rectangulaire"/>
+ </cd:parameter>
+ <cd:parameter name="rayonarriereplan">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="profondeur">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="coin">
+ <cd:constant type="rond"/>
+ <cd:constant type="rectangulaire"/>
+ </cd:parameter>
+ <cd:parameter name="rayon">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="vide">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ <cd:parameter name="couleurpremierplan">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="stylepremierplan">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="epaisseurligne">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="framed" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="framed"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="regleencadre" n="2"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inframed" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="inframed"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="regleencadre" n="2"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="thinrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="traitsfins"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes">
+ <cd:inherit name="regletraitsfins" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupthinrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="regletraitsfins"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1">
+ <cd:parameter name="espaceinterligne">
+ <cd:constant type="petit"/>
+ <cd:constant type="moyen"/>
+ <cd:constant type="grand"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="avant">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="entre">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="apres">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="couleur">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="couleurarriereplan">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="hauteur">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="max"/>
+ </cd:parameter>
+ <cd:parameter name="profondeur">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="max"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:constant type="a"/>
+ <cd:constant type="b"/>
+ <cd:constant type="c"/>
+ <cd:constant type="d"/>
+ </cd:parameter>
+ <cd:parameter name="epaisseurligne">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="couleur">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="arriereplan">
+ <cd:constant type="couleur"/>
+ </cd:parameter>
+ <cd:parameter name="couleurarriereplan">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="hairline" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="ligneh"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="thinrule" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="traitfin"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="defineframedtext" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="defineframedtext"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="setupframedtexts" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineframed" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="defineframed"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="setupframedtexts" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupframedtexts" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="setupframedtexts"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="policecorps">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="gauche">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="droite">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="avant">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="apres">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="interieur">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="correctionligne">
+ <cd:constant type="actif"/>
+ <cd:constant type="desactive"/>
+ </cd:parameter>
+ <cd:parameter name="correctionprofondeur">
+ <cd:constant type="actif"/>
+ <cd:constant type="desactive"/>
+ </cd:parameter>
+ <cd:parameter name="marge">
+ <cd:constant type="standard"/>
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ <cd:parameter name="emplacement">
+ <cd:constant type="gauche"/>
+ <cd:constant type="droite"/>
+ <cd:constant type="milieu"/>
+ <cd:constant type="rien"/>
+ </cd:parameter>
+ <cd:parameter name="composeenalinea">
+ <cd:resolve name="indenting"/>
+ </cd:parameter>
+ <cd:inherit name="regleencadre" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="framedtext" type="environment" generated="yes" file="core-rul.tex">
+ <cd:sequence>
+ <cd:variable value="texteencadre"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="gauche"/>
<cd:constant type="droite"/>
- </cd:parameter>
- <cd:inherit name="regleencadre"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="columns" type="environment">
- <cd:sequence>
- <cd:string value="columns"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="reglecolonnes"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definetext" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="definittexte"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="entete"/>
- <cd:constant type="pdp"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupheader" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="regleentete"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text" default="yes"/>
- <cd:constant type="marge"/>
- <cd:constant type="bord"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="etat">
- <cd:constant type="normal"/>
- <cd:constant type="stoppe"/>
- <cd:constant type="demarre"/>
- <cd:constant type="vide"/>
- <cd:constant type="haut"/>
+ <cd:constant type="milieu"/>
<cd:constant type="rien"/>
- <cd:constant type="sansmarquage"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="setupframedtexts" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="framedtext" generated="yes" file="core-rul.tex">
+ <cd:sequence>
+ <cd:variable value="texteencadre"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="setupframedtexts" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="background" type="environment" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="arriereplan"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="background" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="arriereplan"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbackground" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="reglearriereplan"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="decalagegauche">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rightoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="decalagesup">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="decalageinf">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="avant">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="apres">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="etat">
+ <cd:constant type="demarre"/>
+ <cd:constant type="stoppe"/>
+ </cd:parameter>
+ <cd:inherit name="regleencadre" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fillinrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="remplitlignesreglees"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="regleremplitlignesreglees" n="1"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ <cd:content n="3" optional="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fillintext" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="remplittexte"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="regleremplitlignesreglees" n="1"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ <cd:content n="3" optional="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfillinrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="regleremplitlignesreglees"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="largeur">
+ <cd:constant type="adapte"/>
+ <cd:constant type="large"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="avant">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="apres">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="espaceinterligne">
+ <cd:constant type="petit"/>
+ <cd:constant type="moyen"/>
+ <cd:constant type="grand"/>
+ </cd:parameter>
+ <cd:parameter name="separateur">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fillinline" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="remplitligne"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="regleremplitligne" n="1"/>
+ </cd:assignments>
+ <cd:nothing n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfillinlines" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="regleremplitligne"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="largeur">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="marge">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="avant">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="apres">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptextrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="reglelignesreglestexte"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="emplacement">
+ <cd:constant type="gauche"/>
+ <cd:constant type="dansmarge"/>
+ </cd:parameter>
+ <cd:parameter name="avant">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="apres">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="entre">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="largeur">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="policecorps">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ <cd:parameter name="couleur">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="couleurligne">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="textrule" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="ligneregleetexte"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="sup"/>
+ <cd:constant type="inf"/>
+ </cd:keywords>
+ <cd:content n="2" optional="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="textrule" type="environment" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="ligneregleetexte"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="sup"/>
+ <cd:constant type="inf"/>
+ </cd:keywords>
+ <cd:content n="2" optional="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="blackrule" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="lignenoire"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="reglelignesnoires" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="blackrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="lignesnoires"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:inherit name="reglelignesnoires" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupblackrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="reglelignesnoires"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="largeur">
+ <cd:constant type="cd:dimension" default="1em"/>
+ <cd:constant type="max"/>
+ </cd:parameter>
+ <cd:parameter name="hauteur">
+ <cd:constant type="cd:dimension" default="1ex"/>
+ <cd:constant type="max"/>
+ </cd:parameter>
+ <cd:parameter name="profondeur">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="max"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:constant type="a" default="yes"/>
+ <cd:constant type="b"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension" default=".25ex"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number" default="3"/>
+ </cd:parameter>
+ <cd:parameter name="couleur">
+ <cd:constant type="cd:name" default=""/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineoverlay" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="definitrevetement"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="leftstyle">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="styledroit">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="largeurgauche">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="largeurdroite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
+ </cd:keywords>
+ <cd:keywords n="2">
<cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfooter" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="reglepdp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:inherit name="regleentete"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="regleentete"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptext" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="regletexte"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:inherit name="regleentete"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="regleentete"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptop" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="reglesup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:inherit name="regleentete"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="regleentete"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupbottom" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="regleinf"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:inherit name="regleentete"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="regleentete"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="noheaderandfooterlines" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="sanslignesenteteetpdp"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="notopandbottomlines" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="sanslignessupetinf"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupheadertexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="regletextesentete"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfootertexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="regletextespdp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptexttexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="regletextestexte"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptoptexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="regletextessup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupbottomtexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="regletextesinf"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="settextcontent" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="settext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:resolve name="layout-v"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="resettextcontent" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="resettextcontent"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:resolve name="layout-v"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant name="lefttext"/>
- <cd:constant name="middletext"/>
- <cd:constant name="righttext"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definemarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="definitmarquage"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="couplemarking" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="couplemarquage"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="decouplemarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="decouplemarquage"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="resetmarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="razmarquage"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupmarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="reglemarquage"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments>
- <cd:parameter name="etat">
- <cd:constant type="demarre"/>
- <cd:constant type="stoppe"/>
- </cd:parameter>
- <cd:parameter name="separateur">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="expansion">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="marking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="marquage"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="getmarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="obtientmarquage"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="premier"/>
- <cd:constant type="dernier"/>
- <cd:constant type="precedent"/>
- <cd:constant type="lesdeux"/>
- <cd:constant type="tout"/>
- <cd:constant type="courant"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="nomarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="sansmarquage"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usemodule" file="core-fil.tex"> <!-- TODO -->
+ <cd:sequence>
+ <cd:string value="utilisemodule"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="reset" file="core-num.tex">
+ <cd:sequence>
+ <cd:string value="raz"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
-<cd:command name="setuplayout" file="page-ini.tex">
+ <!-- <cd:command name="donttest">
<cd:sequence>
- <cd:string value="regledisposition"/>
+ <cd:string value="sanstest"/>
</cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="adapte"/>
- <cd:constant type="milieu"/>
- </cd:parameter>
- <cd:parameter name="hauteur">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="adapte"/>
- <cd:constant type="milieu"/>
- </cd:parameter>
- <cd:parameter name="retour">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="espacesup">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="marge">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="margegauche">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="margedroite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="entete">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="pdp">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="sup">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="inf">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="bordgauche">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="borddroit">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanceentete">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="dsitancepdp">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distancesup">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanceinf">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distancemargegauche">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distancemargedroite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distancebordgauche">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanceborddroit">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="horoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="veroffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="couleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="marquage">
- <cd:constant type="actif"/>
- <cd:constant type="desactive"/>
- <cd:constant type="couleur"/>
- <cd:constant type="ecran"/>
+</cd:command> -->
+
+ <cd:command name="localenvironment" type="environment" file="core-job.tex">
+ <cd:sequence>
+ <cd:string value="localenvironment"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupsystem" file="core-sys.tex">
+ <cd:sequence>
+ <cd:string value="reglesysteme"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="resolution">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="fichier">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="repertoire">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="aleatoire">
+ <cd:constant type="normal"/>
+ <cd:constant type="petit"/>
+ <cd:constant type="moyen"/>
+ <cd:constant type="grand"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usedirectory" file="core-job.mkii"> <!-- usepath, todo: more than one file -->
+ <cd:sequence>
+ <cd:string value="usedirectory"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ <cd:constant type="raz"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="low" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="bas"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="high" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="haut"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="lohi" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="baha"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="bas"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showframe" file="page-run.tex">
+ <cd:sequence>
+ <cd:string value="montrecadre"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="emplacement">
- <cd:constant type="gauche"/>
- <cd:constant type="milieu"/>
- <cd:constant type="droite"/>
- <cd:constant type="inf"/>
- <cd:constant type="sup"/>
- <cd:constant type="recto"/>
- <cd:constant type="rectoverso"/>
- </cd:parameter>
- <cd:parameter name="echelle">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="nx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ny">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="dx">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="dy">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="lignes">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="colonnes">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="distancecolonne">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="grille">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="espaceinf">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="cutspace">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distancetexte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="largeurtexte">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="margetexte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="clipoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="page">
+ <cd:constant type="marge"/>
+ <cd:constant type="bord"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="leftaligned" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="aligneagauche"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="rightaligned" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="aligneadroite"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="midaligned" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="aligneaumilieu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="wordright" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="motdroit"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inmargin" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="dansmarge"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="bas"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inothermargin" file="page-mar.tex">
+ <cd:sequence>
+ <cd:string value="dansautremarge"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="bas"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inleft" file="page-mar.tex">
+ <cd:sequence>
+ <cd:string value="dansgauche"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="bas"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inright" file="page-mar.tex">
+ <cd:sequence>
+ <cd:string value="dansdroite"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="bas"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ininner" file="page-mar.tex">
+ <cd:sequence>
+ <cd:string value="ininner"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="bas"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inouter" file="page-mar.tex">
+ <cd:sequence>
+ <cd:string value="inouter"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="bas"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="column" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="colonne"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="showstruts" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="montrestruts"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="showsetups" file="page-run.tex">
+ <cd:sequence>
+ <cd:string value="montrereglages"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="showlayout" file="page-run.tex">
+ <cd:sequence>
+ <cd:string value="montredisposition"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="margintext" file="page-mar.tex">
+ <cd:sequence>
+ <cd:string value="textemarge"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="bas"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupmarginblocks" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="regleblocmarge"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="emplacement">
+ <cd:constant type="dansmarge"/>
+ <cd:constant type="gauche"/>
+ <cd:constant type="milieu"/>
+ <cd:constant type="droite"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="largeur">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="alignement">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="sup">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="entre">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="inf">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="gauche">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="droite">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="avant">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="apres">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="marginblock" type="environment" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="marginblock"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="part" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="part"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="title" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="title"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="chapter" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="chapter"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="section" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="section"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subsection" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="subsection"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subsubsection" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="subsubsection"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subject" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="subject"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subsubject" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="subsubject"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subsubsubject" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="subsubsubject"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="appendix" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="appendix"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="in" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="dans"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="yes"/>
+ <cd:content n="2" interactive="yes"/>
+ <cd:reference n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="at" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="a"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="yes"/>
+ <cd:content n="2" interactive="yes"/>
+ <cd:reference n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="about" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="concernant"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="yes"/>
+ <cd:reference n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="somewhere" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="qqpart"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ <cd:reference n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="atpage" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="alapage"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ref" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="ref"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="t"/>
+ <cd:constant type="p"/>
+ <cd:constant type="r"/>
+ <cd:constant type="s"/>
+ <cd:constant type="e"/>
+ </cd:keywords>
+ <cd:reference n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="textreference" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="referencetexte"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="pagereference" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="referencepage"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="reference" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="reference"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usereferences" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="utilisereferences"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definereference" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="definitreference"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="papier">
+ </cd:keywords>
+ <cd:reference n="2" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definereferenceformat" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="definitformatreference"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="adaptlayout" file="page-lay.tex">
- <cd:sequence>
- <cd:string value="adaptedisposition"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="hauteur">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="lignes">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showgrid" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="montregrille"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="raz"/>
- <cd:constant type="sup"/>
- <cd:constant type="inf"/>
- <cd:constant type="rien"/>
- <cd:constant type="tout"/>
- <cd:constant type="lignes"/>
- <cd:constant type="cadre"/>
- <cd:constant type="sansnumero"/>
- <cd:constant type="droite"/>
- <cd:constant type="gauche"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placeongrid" file="core-grd.tex">
- <cd:sequence>
- <cd:string value="placesurgrille"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:inherit name="deplacesurgrille"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="moveongrid" file="core-grd.tex">
- <cd:sequence>
- <cd:string value="deplacesurgrille"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="sup"/>
- <cd:constant type="lesdeux"/>
- <cd:constant type="inf"/>
- <cd:constant type="-top"/>
- <cd:constant type="-both"/>
- <cd:constant type="-bottom"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="haut"/>
- <cd:constant type="milieu"/>
- <cd:constant type="bas"/>
- <cd:constant type="page"/>
- <cd:constant type="rien"/>
- <cd:constant type="standard" default="yes"/>
- <cd:constant type="large"/>
- <cd:constant type="adapte"/>
- <cd:constant type="profondeur"/>
- <cd:constant type="ligne"/>
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="project" type="environment">
- <cd:sequence>
- <cd:string value="projet"/>
- </cd:sequence>
- <cd:arguments>
- <cd:file/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="environment" type="environment">
- <cd:sequence>
- <cd:string value="environement"/>
- </cd:sequence>
- <cd:arguments>
- <cd:file/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="product" type="environment">
- <cd:sequence>
- <cd:string value="produit"/>
- </cd:sequence>
- <cd:arguments>
- <cd:file/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="component" type="environment">
- <cd:sequence>
- <cd:string value="composant"/>
- </cd:sequence>
- <cd:arguments>
- <cd:file/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="nomorefiles">
- <cd:sequence>
- <cd:string value="pasplusdefichiers"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupinterlinespace" variant="1">
- <cd:sequence>
- <cd:string value="regleespacementinterligne"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="raz"/>
- <cd:constant type="petit" default="yes"/>
- <cd:constant type="moyen"/>
- <cd:constant type="auto"/>
- <cd:constant type="grand"/>
- <cd:constant type="actif"/>
- <cd:constant type="desactive"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupinterlinespace" variant="2">
- <cd:sequence>
- <cd:string value="regleespacementinterligne"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="hauteur">
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="gauche">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="droite">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="texte">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="etiquette">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="hl" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="hl"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="profondeur">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="vl" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="vl"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ligne">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="sup">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="godown" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="vaenbas"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="whitespace" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="espaceblanc"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="nowhitespace" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="sansespaceblanc"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="crlf" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="crlf"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="space" file="syst-pln.tex">
+ <cd:sequence>
+ <cd:string value="espace"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="fixedspaces" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="espacesfixes"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="emptylines" file="page-lin.tex">
+ <cd:sequence>
+ <cd:string value="emptylines"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="inf">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuppagenumbering" file="page-num.tex">
- <cd:sequence>
- <cd:string value="reglenumerotationpage"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="alternative">
- <cd:constant type="recto"/>
- <cd:constant type="rectoverso"/>
- </cd:parameter>
- <cd:parameter name="emplacement">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nospace" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="sansespace"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="packed" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="groupe"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupdescriptions" file="core-des.tex">
+ <cd:sequence>
+ <cd:string value="regledescriptions"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="style">
+ <cd:resolve name="style"/> <!-- TODO: style=normal -->
+ </cd:parameter>
+ <cd:parameter name="couleur">
+ <cd:constant type="cd:name" default=""/>
+ </cd:parameter>
+ <cd:parameter name="largeur">
+ <cd:constant type="adapte"/>
+ <cd:constant type="large"/>
+ <cd:constant type="cd:dimension" default="8em"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="echantillon">
+ <cd:constant type="cd:text" default=""/>
+ </cd:parameter>
+ <cd:parameter name="texte">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="closesymbol">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="closecommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="closesymbol">
+ <cd:constant type="cd:text" default=""/>
+ </cd:parameter>
+ <cd:parameter name="titleleft">
+ <cd:constant type="cd:text" default="("/>
+ </cd:parameter>
+ <cd:parameter name="titleright">
+ <cd:constant type="cd:text" default=")"/>
+ </cd:parameter>
+ <cd:parameter name="distancetitre">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="styletitre">
+ <cd:resolve name="style"/> <!-- TODO: default=bold -->
+ </cd:parameter>
+ <cd:parameter name="couleurtitre">
+ <cd:constant type="cd:name" default=""/>
+ </cd:parameter>
+ <cd:parameter name="alignement">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="marge">
+ <cd:constant type="standard"/>
+ <cd:constant type="oui"/>
+ <cd:constant type="non" default="yes"/> <!-- TODO: this is default; conflicting syntax? -->
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="emplacement">
+ <cd:constant type="gauche" default="yes"/>
+ <cd:constant type="droite"/>
+ <cd:constant type="sup"/>
+ <cd:constant type="serried"/>
+ <cd:constant type="dansmarge"/>
+ <cd:constant type="dansgauche"/>
+ <cd:constant type="dansdroit"/>
+ <cd:constant type="suspend"/>
+ </cd:parameter>
+ <cd:parameter name="styletete">
+ <cd:resolve name="style"/> <!-- TODO: default=bold -->
+ </cd:parameter>
+ <cd:parameter name="couleurtete">
+ <cd:constant type="cd:name" default=""/>
+ </cd:parameter>
+ <cd:parameter name="commandetete">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="suspend">
+ <cd:constant type="adapte"/>
+ <cd:constant type="large"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="avant">
+ <cd:constant type="cd:command" default="\blank"/>
+ </cd:parameter>
+ <cd:parameter name="entre">
+ <cd:constant type="cd:command" default="\blank"/>
+ </cd:parameter>
+ <cd:parameter name="apres">
+ <cd:constant type="cd:command" default="\blank"/>
+ </cd:parameter>
+ <cd:parameter name="indentesuivant">
+ <cd:resolve name="indentnext"/> <!-- default=yes -->
+ </cd:parameter>
+ <cd:parameter name="composeenalinea">
+ <cd:resolve name="indenting"/> <!-- default=never -->
+ </cd:parameter>
+ <cd:parameter name="commande">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupenumerations" file="core-des.tex">
+ <cd:sequence>
+ <cd:string value="regleenumerations"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="regledescriptions" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineenumeration" file="core-des.tex">
+ <cd:sequence>
+ <cd:string value="definitenumeration"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="regleenumerations" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="enumeration" generated="yes" file="core-des.tex">
+ <cd:sequence>
+ <cd:variable value="enumeration"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:nothing n="1" interactive="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="enumeration" type="environment" generated="yes" file="core-des.tex">
+ <cd:sequence>
+ <cd:variable value="enumeration"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="definedescription" file="core-des.tex">
+ <cd:sequence>
+ <cd:string value="definitdescription"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="regledescriptions" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="description" generated="yes" file="core-des.tex">
+ <cd:sequence>
+ <cd:variable value="description"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:nothing n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="description" type="environment" generated="yes" file="core-des.tex">
+ <cd:sequence>
+ <cd:variable value="description"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupindentations" file="core-des.tex">
+ <cd:sequence>
+ <cd:string value="reglealineas"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="styletete">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="largeur">
+ <cd:constant type="adapte"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="texte">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="echantillon">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="avant">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="apres">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="separateur">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineindenting" file="core-des.tex">
+ <cd:sequence>
+ <cd:string value="definitcompoalinea"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="reglealineas" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="indentation" generated="yes" file="core-spa.tex">
+ <cd:sequence>
+ <cd:variable value="indentation"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:nothing n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definelabel" file="core-des.tex">
+ <cd:sequence>
+ <cd:string value="definitetiquette"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="texte">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="emplacement">
+ <cd:constant type="dansmarge"/>
+ <cd:constant type="danstexte"/>
+ </cd:parameter>
+ <cd:parameter name="mode">
+ <cd:constant type="bytext"/>
+ <cd:constant type="bycd:section"/>
+ </cd:parameter>
+ <cd:parameter name="blockway">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ <cd:parameter name="styletete">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="couleurtete">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="avant">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="apres">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="labeling" generated="yes" file="core-des.tex">
+ <cd:sequence>
+ <cd:variable value="labeling"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcolumns" file="page-mul.tex">
+ <cd:sequence>
+ <cd:string value="reglecolonnes"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes"> <!-- no idea why it is optional -->
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="nsup">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ligne">
+ <cd:constant type="actif"/>
+ <cd:constant type="desactive"/> <!-- default and unknown missing -->
+ </cd:parameter>
+ <cd:parameter name="hauteur">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="tolerance">
+ <cd:constant type="tresstrict"/>
+ <cd:constant type="strict"/>
+ <cd:constant type="tolerant"/>
+ <cd:constant type="trestolerant"/>
+ <cd:constant type="etire"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="equilibre">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ <cd:parameter name="alignement">
+ <cd:constant type="texte"/>
+ <!-- cd:constant type="yes"/ -->
+ <!-- cd:constant type="no"/ -->
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="vide">
+ <cd:constant type="fixe"/>
+ <cd:constant type="demiligne"/>
+ <cd:constant type="ligne"/>
+ <cd:constant type="flexible"/>
+ <cd:constant type="grand"/>
+ <cd:constant type="moyen"/>
+ <cd:constant type="petit"/>
+ </cd:parameter>
+ <cd:parameter name="option">
+ <cd:constant type="arriereplan"/>
+ </cd:parameter>
+ <cd:parameter name="direction">
+ <cd:constant type="gauche"/>
+ <cd:constant type="droite"/>
+ </cd:parameter>
+ <cd:inherit name="regleencadre" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="columns" type="environment" file="page-mul.tex">
+ <cd:sequence>
+ <cd:string value="columns"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="reglecolonnes" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definetext" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="definittexte"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
<cd:constant type="entete"/>
<cd:constant type="pdp"/>
- <cd:constant type="gauche"/>
- <cd:constant type="droite"/>
- <cd:constant type="milieu"/>
- <cd:constant type="marge"/>
- <cd:constant type="bordmarge"/>
- <cd:constant type="dansgauche"/>
- <cd:constant type="dansdroit"/>
- </cd:parameter>
- <cd:parameter name="conversion">
- <cd:constant type="numeros"/>
- <cd:constant type="caracteres"/>
- <cd:constant type="Caracteres"/>
- <cd:constant type="chiffresromains"/>
- <cd:constant type="Chiffresromains"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="gauche">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="droite">
+ </cd:keywords>
+ <cd:keywords n="3">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="mode">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="texte">
+ </cd:keywords>
+ <cd:keywords n="4" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="separateurnumbero">
+ </cd:keywords>
+ <cd:keywords n="5" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="separateurtexte">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="cd:sectionnumber">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="separateur">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="etat">
- <cd:constant type="demarre"/>
- <cd:constant type="stoppe"/>
- </cd:parameter>
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="commande">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupnarrower" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="reglecompoetroite"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="gauche">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="droite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="milieu">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="define" file="syst-ext.tex">
- <cd:sequence>
- <cd:string value="definit"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- <cd:csname/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="usecommands" file="core-sys.tex">
- <cd:sequence>
- <cd:string value="utilisecommandes"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definestartstop" file="core-sys.tex">
- <cd:sequence>
- <cd:string value="definitdemarrestoppe"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="commandes">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupheads" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="regletetes"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="numerosection">
- <cd:constant type="oui"/>
- <cd:constant type="cd:number"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="alternative">
- <cd:constant type="normal"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupheader" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="regleentete"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:text" default="yes"/>
<cd:constant type="marge"/>
- <cd:constant type="milieu"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="paragraphe"/>
- </cd:parameter>
- <cd:parameter name="separateur">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="taquet">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="alignement">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="alignementtitre">
- <cd:constant type="oui"/>
- <cd:constant type="flottant"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="tolerance">
- <cd:constant type="tresstrict"/>
- <cd:constant type="strict"/>
- <cd:constant type="tolerant"/>
- <cd:constant type="trestolerant"/>
- <cd:constant type="etire"/>
- </cd:parameter>
- <cd:parameter name="indentesuivant">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="commande">
- <cd:constant type="cd:twoarguments"/>
- </cd:parameter>
- <cd:parameter name="marge">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupcaptions" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="regleintitules"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="emplacement">
+ <cd:constant type="bord"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="etat">
+ <cd:constant type="normal"/>
+ <cd:constant type="stoppe"/>
+ <cd:constant type="demarre"/>
+ <cd:constant type="vide"/>
+ <cd:constant type="haut"/>
+ <cd:constant type="rien"/>
+ <cd:constant type="sansmarquage"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="strut">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="leftstyle">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="styledroit">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="largeurgauche">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="largeurdroite">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="avant">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="apres">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfooter" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="reglepdp"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:inherit name="regleentete" n="1"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="regleentete" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptext" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="regletexte"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:inherit name="regleentete" n="1"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="regleentete" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptop" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="reglesup"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:inherit name="regleentete" n="1"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="regleentete" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbottom" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="regleinf"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:inherit name="regleentete" n="1"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="regleentete" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="noheaderandfooterlines" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="sanslignesenteteetpdp"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="notopandbottomlines" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="sanslignessupetinf"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupheadertexts" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="regletextesentete"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:resolve name="layout-h"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfootertexts" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="regletextespdp"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:resolve name="layout-h"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptexttexts" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="regletextestexte"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:resolve name="layout-h"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptoptexts" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="regletextessup"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:resolve name="layout-h"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbottomtexts" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="regletextesinf"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:resolve name="layout-h"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="settextcontent" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="settext"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:resolve name="layout-v"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:resolve name="layout-h"/>
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ <cd:keywords n="4" optional="yes">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ <cd:keywords n="5" optional="yes">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="resettextcontent" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="resettextcontent"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:resolve name="layout-v"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:resolve name="layout-h"/>
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes">
+ <cd:constant type="lefttext"/>
+ <cd:constant type="middletext"/>
+ <cd:constant type="righttext"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definemarking" file="core-mar.tex">
+ <cd:sequence>
+ <cd:string value="definitmarquage"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="couplemarking" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="couplemarquage"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="decouplemarking" file="core-mar.tex">
+ <cd:sequence>
+ <cd:string value="decouplemarquage"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="resetmarking" file="core-mar.tex">
+ <cd:sequence>
+ <cd:string value="razmarquage"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupmarking" file="core-mar.tex">
+ <cd:sequence>
+ <cd:string value="reglemarquage"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2">
+ <cd:parameter name="etat">
+ <cd:constant type="demarre"/>
+ <cd:constant type="stoppe"/>
+ </cd:parameter>
+ <cd:parameter name="separateur">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="expansion">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="marking" file="core-mar.tex">
+ <cd:sequence>
+ <cd:string value="marquage"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getmarking" file="core-mar.tex">
+ <cd:sequence>
+ <cd:string value="obtientmarquage"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="premier"/>
+ <cd:constant type="dernier"/>
+ <cd:constant type="precedent"/>
+ <cd:constant type="lesdeux"/>
+ <cd:constant type="tout"/>
+ <cd:constant type="courant"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nomarking" file="core-mar.tex">
+ <cd:sequence>
+ <cd:string value="sansmarquage"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplayout" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="regledisposition"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="largeur">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="adapte"/>
+ <cd:constant type="milieu"/>
+ </cd:parameter>
+ <cd:parameter name="hauteur">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="adapte"/>
+ <cd:constant type="milieu"/>
+ </cd:parameter>
+ <cd:parameter name="retour">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="espacesup">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="marge">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="margegauche">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="margedroite">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="entete">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="pdp">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="sup">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="inf">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="bordgauche">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="borddroit">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distanceentete">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="dsitancepdp">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distancesup">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distanceinf">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distancemargegauche">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distancemargedroite">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distancebordgauche">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distanceborddroit">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="horoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="veroffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="couleur">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="marquage">
+ <cd:constant type="actif"/>
+ <cd:constant type="desactive"/>
+ <cd:constant type="couleur"/>
+ <cd:constant type="ecran"/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="page"/>
+ </cd:parameter>
+ <cd:parameter name="emplacement">
+ <cd:constant type="gauche"/>
+ <cd:constant type="milieu"/>
+ <cd:constant type="droite"/>
+ <cd:constant type="inf"/>
+ <cd:constant type="sup"/>
+ <cd:constant type="recto"/>
+ <cd:constant type="rectoverso"/>
+ </cd:parameter>
+ <cd:parameter name="echelle">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="nx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ny">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="dx">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="dy">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="lignes">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="colonnes">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="distancecolonne">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="grille">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ <cd:parameter name="espaceinf">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="cutspace">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distancetexte">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="largeurtexte">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="margetexte">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="clipoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="page">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="papier">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="adaptlayout" file="page-lay.tex">
+ <cd:sequence>
+ <cd:string value="adaptedisposition"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="hauteur">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="max"/>
+ </cd:parameter>
+ <cd:parameter name="lignes">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showgrid" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="montregrille"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="raz"/>
<cd:constant type="sup"/>
<cd:constant type="inf"/>
<cd:constant type="rien"/>
- <cd:constant type="haut"/>
- <cd:constant type="bas"/>
- <cd:constant type="milieu"/>
+ <cd:constant type="tout"/>
+ <cd:constant type="lignes"/>
+ <cd:constant type="cadre"/>
+ <cd:constant type="sansnumero"/>
+ <cd:constant type="droite"/>
<cd:constant type="gauche"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placeongrid" file="core-grd.tex">
+ <cd:sequence>
+ <cd:string value="placesurgrille"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:inherit name="deplacesurgrille" n="1"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="moveongrid" file="core-grd.tex">
+ <cd:sequence>
+ <cd:string value="deplacesurgrille"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="standard" default="yes"/> <!-- also 'normal', 'yes' and 'force' -->
+ <cd:constant type="sup"/>
+ <cd:constant type="lesdeux"/>
+ <cd:constant type="inf"/>
+ <cd:constant type="-top"/>
+ <cd:constant type="-both"/>
+ <cd:constant type="-bottom"/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="haut"/>
<cd:constant type="milieu"/>
- <cd:constant type="droite"/>
- <cd:constant type="lefthanging"/>
- <cd:constant type="righthanging"/>
- <cd:constant type="margegauche"/>
- <cd:constant type="margedroite"/>
- <cd:constant type="margeinterieure"/>
- <cd:constant type="margeexterieure"/>
- </cd:parameter>
- <cd:parameter name="largeur">
- <cd:constant type="adapte"/>
+ <cd:constant type="bas"/>
+ <cd:constant type="page"/>
<cd:constant type="large"/>
- <cd:constant type="max"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="largeurmin">
<cd:constant type="adapte"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="styletete">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="numero">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
+ <cd:constant type="profondeur"/>
+ <cd:constant type="ligne"/>
+ <cd:constant type="raz"/>
<cd:constant type="rien"/>
- </cd:parameter>
- <cd:parameter name="entre">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="alignement">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="conversion">
- <cd:constant type="numeros"/>
- <cd:constant type="caracteres"/>
- <cd:constant type="Caracteres"/>
- <cd:constant type="chiffresromains"/>
- <cd:constant type="Chiffresromains"/>
- </cd:parameter>
- <cd:parameter name="mode">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="separateur">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="taquet">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="commande">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="distance">
<cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupcaption" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="regleintitule"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="regleintitules"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfloats" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="regleflottants"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="emplacement">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="project" type="environment" file="core-job.tex">
+ <cd:sequence>
+ <cd:string value="projet"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:file n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="environment" type="environment" file="core-job.tex">
+ <cd:sequence>
+ <cd:string value="environement"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:file n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="product" type="environment" file="core-job.tex">
+ <cd:sequence>
+ <cd:string value="produit"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:file n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="component" type="environment" file="core-job.tex">
+ <cd:sequence>
+ <cd:string value="composant"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:file n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nomorefiles" file="core-job.tex">
+ <cd:sequence>
+ <cd:string value="pasplusdefichiers"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupinterlinespace" variant="1" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="regleespacementinterligne"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="raz"/>
+ <cd:constant type="petit" default="yes"/>
+ <cd:constant type="moyen"/>
+ <cd:constant type="auto"/>
+ <cd:constant type="grand"/>
+ <cd:constant type="actif"/>
+ <cd:constant type="desactive"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupinterlinespace2" variant="2" file="core-spa.tex">
+ <!-- attached a 2 to make this definition usable with \showsetup -->
+ <cd:sequence>
+ <cd:string value="regleespacementinterligne"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="hauteur">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="profondeur">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ligne">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="sup">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="inf">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppagenumbering" file="page-num.tex">
+ <cd:sequence>
+ <cd:string value="reglenumerotationpage"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="alternative">
+ <cd:constant type="recto"/>
+ <cd:constant type="rectoverso"/>
+ </cd:parameter>
+ <cd:parameter name="emplacement">
+ <cd:constant type="entete"/>
+ <cd:constant type="pdp"/>
+ <cd:constant type="gauche"/>
+ <cd:constant type="droite"/>
+ <cd:constant type="milieu"/>
+ <cd:constant type="marge"/>
+ <cd:constant type="bordmarge"/>
+ <cd:constant type="dansgauche"/>
+ <cd:constant type="dansdroit"/>
+ </cd:parameter>
+ <cd:parameter name="conversion">
+ <cd:constant type="numeros"/>
+ <cd:constant type="caracteres"/>
+ <cd:constant type="Caracteres"/>
+ <cd:constant type="chiffresromains"/>
+ <cd:constant type="Chiffresromains"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="gauche">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="droite">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="mode">
+ <cd:constant type="bytext"/>
+ <cd:constant type="bycd:section"/>
+ </cd:parameter>
+ <cd:parameter name="texte">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="separateurnumbero">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="separateurtexte">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="cd:sectionnumber">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ <cd:parameter name="separateur">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="strut">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ <cd:parameter name="etat">
+ <cd:constant type="demarre"/>
+ <cd:constant type="stoppe"/>
+ </cd:parameter>
+ <cd:parameter name="largeur">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="commande">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupnarrower" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="reglecompoetroite"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="gauche">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="droite">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="milieu">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="define" file="syst-ext.tex">
+ <cd:sequence>
+ <cd:string value="definit"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ <cd:csname n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usecommands" file="core-sys.tex">
+ <cd:sequence>
+ <cd:string value="utilisecommandes"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definestartstop" file="core-sys.tex">
+ <cd:sequence>
+ <cd:string value="definitdemarrestoppe"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="avant">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="apres">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="commandes">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupheads" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="regletetes"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="numerosection">
+ <cd:constant type="oui"/>
+ <cd:constant type="cd:number"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:constant type="normal"/>
+ <cd:constant type="marge"/>
+ <cd:constant type="milieu"/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="paragraphe"/>
+ </cd:parameter>
+ <cd:parameter name="separateur">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="taquet">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="alignement">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="alignementtitre">
+ <cd:constant type="oui"/>
+ <cd:constant type="flottant"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ <cd:parameter name="tolerance">
+ <cd:constant type="tresstrict"/>
+ <cd:constant type="strict"/>
+ <cd:constant type="tolerant"/>
+ <cd:constant type="trestolerant"/>
+ <cd:constant type="etire"/>
+ </cd:parameter>
+ <cd:parameter name="indentesuivant">
+ <cd:resolve name="indentnext"/>
+ </cd:parameter>
+ <cd:parameter name="commande">
+ <cd:constant type="cd:twoarguments"/>
+ </cd:parameter>
+ <cd:parameter name="marge">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcaptions" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="regleintitules"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="emplacement">
+ <cd:constant type="sup"/>
+ <cd:constant type="inf"/>
+ <cd:constant type="rien"/>
+ <cd:constant type="haut"/>
+ <cd:constant type="bas"/>
+ <cd:constant type="milieu"/>
+ <cd:constant type="gauche"/>
+ <cd:constant type="milieu"/>
+ <cd:constant type="droite"/>
+ <cd:constant type="lefthanging"/>
+ <cd:constant type="righthanging"/>
+ <cd:constant type="margegauche"/>
+ <cd:constant type="margedroite"/>
+ <cd:constant type="margeinterieure"/>
+ <cd:constant type="margeexterieure"/>
+ </cd:parameter>
+ <cd:parameter name="largeur">
+ <cd:constant type="adapte"/>
+ <cd:constant type="large"/>
+ <cd:constant type="max"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="largeurmin">
+ <cd:constant type="adapte"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="styletete">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="numero">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ <cd:constant type="rien"/>
+ </cd:parameter>
+ <cd:parameter name="entre">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="alignement">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="conversion">
+ <cd:constant type="numeros"/>
+ <cd:constant type="caracteres"/>
+ <cd:constant type="Caracteres"/>
+ <cd:constant type="chiffresromains"/>
+ <cd:constant type="Chiffresromains"/>
+ </cd:parameter>
+ <cd:parameter name="mode">
+ <cd:constant type="bytext"/>
+ <cd:constant type="bycd:section"/>
+ </cd:parameter>
+ <cd:parameter name="separateur">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="taquet">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="commande">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcaption" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="regleintitule"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="regleintitules" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfloats" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="regleflottants"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="emplacement">
+ <cd:constant type="gauche"/>
+ <cd:constant type="droite"/>
+ <cd:constant type="milieu"/>
+ </cd:parameter>
+ <cd:parameter name="largeur">
+ <cd:constant type="adapte"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="avant">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="apres">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="marge">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="espaceavant">
+ <cd:constant type="petit"/>
+ <cd:constant type="moyen"/>
+ <cd:constant type="grand"/>
+ <cd:constant type="rien"/>
+ </cd:parameter>
+ <cd:parameter name="espaceapres">
+ <cd:constant type="petit"/>
+ <cd:constant type="moyen"/>
+ <cd:constant type="grand"/>
+ <cd:constant type="rien"/>
+ </cd:parameter>
+ <cd:parameter name="espacelateralavant">
+ <cd:constant type="petit"/>
+ <cd:constant type="moyen"/>
+ <cd:constant type="grand"/>
+ <cd:constant type="rien"/>
+ </cd:parameter>
+ <cd:parameter name="espacelateralapres">
+ <cd:constant type="petit"/>
+ <cd:constant type="moyen"/>
+ <cd:constant type="grand"/>
+ <cd:constant type="rien"/>
+ </cd:parameter>
+ <cd:parameter name="indentesuivant">
+ <cd:resolve name="indentnext"/>
+ </cd:parameter>
+ <cd:parameter name="nsup">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ninf">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="nlignes">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="defaut">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="tolerance">
+ <cd:constant type="0"/>
+ <cd:constant type="1"/>
+ <cd:constant type="2"/>
+ </cd:parameter>
+ <cd:parameter name="distancemargegauche">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distancemargedroite">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="sidealign">
+ <cd:constant type="normal"/>
+ <cd:constant type="ligne"/>
+ </cd:parameter>
+ <cd:parameter name="numerotation">
+ <cd:constant type="oui"/>
+ <cd:constant type="nonverifie"/>
+ </cd:parameter>
+ <cd:inherit name="regleencadre" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfloatsplitting" file="core-tsp.tex">
+ <cd:sequence>
+ <cd:string value="regleseparationflottant"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="conversion">
+ <cd:constant type="numeros"/>
+ <cd:constant type="caracteres"/>
+ <cd:constant type="Caracteres"/>
+ <cd:constant type="chiffresromains"/>
+ <cd:constant type="Chiffresromains"/>
+ </cd:parameter>
+ <cd:parameter name="lignes">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="splitfloat" file="core-tsp.tex">
+ <cd:sequence>
+ <cd:string value="separeflottant"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="regleseparationflottant" n="1"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupoppositeplacing" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="regleplacementopposition"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1">
+ <cd:parameter name="etat">
+ <cd:constant type="demarre"/>
+ <cd:constant type="stoppe"/>
+ </cd:parameter>
+ <cd:parameter name="avant">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="entre">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="apres">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="opposite" type="environment" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="opposite"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setuphyphenmark" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="reglemarquagehyphenation"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1">
+ <cd:parameter name="signe">
+ <cd:constant type="--"/>
+ <cd:constant type="---"/>
+ <cd:constant type="-"/>
+ <cd:constant type="~"/>
+ <cd:constant type="("/>
+ <cd:constant type=")"/>
+ <cd:constant type="="/>
+ <cd:constant type="/"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppositioning" file="page-lyr.tex">
+ <cd:sequence>
+ <cd:string value="reglepositionnement"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="etat">
+ <cd:constant type="demarre"/>
+ <cd:constant type="revetement"/>
+ </cd:parameter>
+ <cd:parameter name="unite">
+ <cd:constant type="cm"/>
+ <cd:constant type="pt"/>
+ <cd:constant type="em"/>
+ <cd:constant type="mm"/>
+ <cd:constant type="ex"/>
+ <cd:constant type="es"/>
+ <cd:constant type="in"/>
+ </cd:parameter>
+ <cd:parameter name="facteur">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="echelle">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="offset">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ <cd:parameter name="xstep">
+ <cd:constant type="absolute"/>
+ <cd:constant type="relatif"/>
+ </cd:parameter>
+ <cd:parameter name="ystep">
+ <cd:constant type="absolute"/>
+ <cd:constant type="relatif"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="positioning" type="environment" file="page-lyr.tex">
+ <cd:sequence>
+ <cd:string value="positioning"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="grid" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="grille"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="x">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="y">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="nx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ny">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="dx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="dy">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="xstep">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ystep">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="offset">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ <cd:parameter name="facteur">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="echelle">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="unite">
+ <cd:constant type="cm"/>
+ <cd:constant type="pt"/>
+ <cd:constant type="em"/>
+ <cd:constant type="mm"/>
+ <cd:constant type="ex"/>
+ <cd:constant type="es"/>
+ <cd:constant type="in"/>
+ </cd:parameter>
+ <cd:parameter name="emplacement">
+ <cd:constant type="gauche"/>
+ <cd:constant type="milieu"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="page" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="page"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="oui" default="yes"/>
+ <cd:constant type="makeup"/>
+ <cd:constant type="non"/>
+ <cd:constant type="preference"/>
+ <cd:constant type="grandepreference"/>
<cd:constant type="gauche"/>
<cd:constant type="droite"/>
- <cd:constant type="milieu"/>
- </cd:parameter>
- <cd:parameter name="largeur">
- <cd:constant type="adapte"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="marge">
+ <cd:constant type="desactiver"/>
+ <cd:constant type="dernier"/>
+ <cd:constant type="quadruple"/>
+ <cd:constant type="paire"/>
+ <cd:constant type="impair"/>
+ <cd:constant type="vide"/>
+ <cd:constant type="vide"/>
+ <cd:constant type="raz"/>
+ <cd:constant type="demarre"/>
+ <cd:constant type="stoppe"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupreferencing" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="reglereferencage"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="etat">
+ <cd:constant type="demarre"/>
+ <cd:constant type="stoppe"/>
+ </cd:parameter>
+ <cd:parameter name="cd:sectionnumber">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ <cd:parameter name="prefixe">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="interaction">
+ <cd:constant type="etiquette"/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="tout"/>
+ <cd:constant type="symbole"/>
+ </cd:parameter>
+ <cd:parameter name="largeur">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="gauche">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="droite">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="conversionfichier">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ <cd:constant type="petit"/>
+ <cd:constant type="grand"/>
+ </cd:parameter>
+ <cd:parameter name="separateur">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="autofile">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ <cd:constant type="page"/>
+ </cd:parameter>
+ <cd:parameter name="global">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupurl" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="regleurl"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="alternativeurl">
+ <cd:constant type="rien"/>
+ <cd:constant type="lesdeux"/>
+ <cd:constant type="avant"/>
+ <cd:constant type="apres"/>
+ </cd:parameter>
+ <cd:parameter name="espaceurl">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="writetoreferencelist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="ecritdanslistereference"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placereferencelist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="placelistereference"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definereferencelist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="definitlistereference"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="reglelistereference" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupreferencelist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="reglelistereference"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="etat">
+ <cd:constant type="demarre"/>
+ <cd:constant type="stoppe"/>
+ </cd:parameter>
+ <cd:parameter name="critere">
+ <cd:constant type="cd:section"/>
+ <cd:constant type="local"/>
+ <cd:constant type="precedent"/>
+ <cd:constant type="tout"/>
+ </cd:parameter>
+ <cd:parameter name="commande">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="avant">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="apres">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="writetolist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="ecritdansliste"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:section"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="writebetweenlist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="ecritentreliste"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:section"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nolist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="sansliste"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="listsymbol" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="listesymbole"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placelist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="placeliste"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="regleliste" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="determinelistcharacteristics" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="determinecaracteristiqueliste"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="regleliste" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placecombinedlist" variant="1" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="placelisteinmbriquee"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="reglelisteimbriquee" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definelist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="definitliste"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes"> <!-- inherits from -->
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="regleliste" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="regleliste"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="etat">
+ <cd:constant type="demarre"/>
+ <cd:constant type="stoppe"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:constant type="a"/>
+ <cd:constant type="b"/>
+ <cd:constant type="c"/>
+ <cd:constant type="..."/>
+ <cd:constant type="rien"/>
+ <cd:constant type="commande"/>
+ </cd:parameter>
+ <cd:parameter name="couplage">
+ <cd:constant type="actif"/>
+ <cd:constant type="desactive"/>
+ </cd:parameter>
+ <cd:parameter name="critere">
+ <cd:constant type="cd:section"/>
+ <cd:constant type="local"/>
+ <cd:constant type="precedent"/>
+ <cd:constant type="courant"/>
+ <cd:constant type="tout"/>
+ </cd:parameter>
+ <cd:parameter name="limitespage">
+ <cd:constant type="cd:list"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="stylenumero">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="styletexte">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="stylepage">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="couleur">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="commande">
+ <cd:constant type="cd:threearguments"/>
+ </cd:parameter>
+ <cd:parameter name="commandenumero">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="commandetexte">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="commandepage">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="interaction">
+ <cd:constant type="cd:sectionnumber"/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="numeropage"/>
+ <cd:constant type="tout"/>
+ </cd:parameter>
+ <cd:parameter name="avant">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="apres">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="entre">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="gauche">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="droite">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="etiquette">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ <cd:parameter name="prefixe">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ <cd:constant type="rien"/>
+ </cd:parameter>
+ <cd:parameter name="numeropage">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ <cd:parameter name="numerotete">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ <cd:parameter name="cd:sectionnumber">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ <cd:parameter name="alignementtitre">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ <cd:parameter name="marge">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="largeur">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="adapte"/>
+ </cd:parameter>
+ <cd:parameter name="hauteur">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="adapte"/>
+ <cd:constant type="large"/>
+ </cd:parameter>
+ <cd:parameter name="profondeur">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="adapte"/>
+ <cd:constant type="large"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="separateur">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="taquet">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="symbole">
+ <cd:constant type="rien"/>
+ <cd:constant type="1"/>
+ <cd:constant type="2"/>
+ <cd:constant type="3"/>
+ <cd:constant type="..."/>
+ </cd:parameter>
+ <cd:parameter name="expansion">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ <cd:constant type="commande"/>
+ </cd:parameter>
+ <cd:parameter name="largeurmax">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:inherit name="regleencadre" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplistalternative" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="setuplistalternative"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="no">
+ <cd:constant type="a"/>
+ <cd:constant type="b"/>
+ <cd:constant type="c"/>
+ <!-- cd:constant type="cd:name"/ -->
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="commande">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="largeur">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="etire">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definecombinedlist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="definitlisteimbriquee"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="cd:list"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="reglelisteimbriquee" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcombinedlist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="reglelisteimbriquee"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="niveau">
+ <cd:constant type="1"/>
+ <cd:constant type="2"/>
+ <cd:constant type="3"/>
+ <cd:constant type="4"/>
+ <cd:constant type="cd:section"/>
+ <cd:constant type="courant"/>
+ </cd:parameter>
+ <cd:inherit name="regleliste" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placecombinedlist" variant="2" generated="yes" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="place"/>
+ <cd:variable value="combinedlist"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="reglelisteimbriquee" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="completecombinedlist" generated="yes" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="complete"/>
+ <cd:variable value="combinedlist"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="reglelisteimbriquee" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupnumbering" file="core-num.tex">
+ <cd:sequence>
+ <cd:string value="reglenumerotation"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="mode">
+ <cd:constant type="bytext"/>
+ <cd:constant type="bycd:section"/>
+ </cd:parameter>
+ <cd:parameter name="etat">
+ <cd:constant type="demarre"/>
+ <cd:constant type="stoppe"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupformulas" file="core-mat.tex">
+ <cd:sequence>
+ <cd:string value="regleformules"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="emplacement">
+ <cd:constant type="gauche"/>
+ <cd:constant type="droite"/>
+ </cd:parameter>
+ <cd:parameter name="gauche">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="droite">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="alignement">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="option">
+ <cd:constant type="milieu"/>
+ </cd:parameter>
+ <cd:parameter name="strut">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="marge">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="standard"/>
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ <cd:parameter name="alignement">
+ <cd:constant type="flushleft"/>
+ <cd:constant type="flushright"/>
+ <cd:constant type="milieu"/>
+ <cd:constant type="center"/>
+ </cd:parameter>
+ <cd:parameter name="margegauche">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="margedroite">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="indentesuivant">
+ <cd:resolve name="indentnext"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="espaceavant">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="apres">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="separateur">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="conversion">
+ <cd:constant type="numeros"/>
+ <cd:constant type="caracteres"/>
+ <cd:constant type="Caracteres"/>
+ <cd:constant type="chiffresromains"/>
+ <cd:constant type="Chiffresromains"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="publication" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="publication"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppublications" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="reglepublications"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="alternative">
+ <cd:constant type="apa"/>
+ <cd:constant type="normal"/>
+ </cd:parameter>
+ <cd:inherit name="regleenumerations" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplines" file="page-lin.tex">
+ <cd:sequence>
+ <cd:string value="reglelignes"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="avant">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="apres">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="entre">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="composeenalinea">
+ <cd:resolve name="indenting"/>
+ </cd:parameter>
+ <cd:parameter name="espace">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ <cd:parameter name="option">
+ <cd:constant type="groupe"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="lines" type="environment">
+ <cd:sequence>
+ <cd:string value="lines"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupparagraphnumbering" file="page-lin.tex">
+ <cd:sequence>
+ <cd:string value="reglenumerotationparagraphe"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="etat">
+ <cd:constant type="demarre"/>
+ <cd:constant type="stoppe"/>
+ <cd:constant type="raz"/>
+ <cd:constant type="ligne"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplinenumbering" file="page-lin.tex">
+ <cd:sequence>
+ <cd:string value="reglenumerotationligne"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="conversion">
+ <cd:constant type="numeros"/>
+ <cd:constant type="caracteres"/>
+ <cd:constant type="Caracteres"/>
+ <cd:constant type="chiffresromains"/>
+ <cd:constant type="Chiffresromains"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="demarre">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="pas">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="largeur">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="emplacement">
+ <cd:constant type="danstexte"/>
+ <cd:constant type="dansmarge"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="prefixe">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="referencing">
+ <cd:constant type="actif"/>
+ <cd:constant type="desactive"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="linenumbering" type="environment" file="page-lin.tex"> <!-- mkii/mkiv -->
+ <cd:sequence>
+ <cd:string value="linenumbering"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="continue"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="line" type="environment">
+ <cd:sequence>
+ <cd:string value="line"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="someline" file="page-lin.tex">
+ <cd:sequence>
+ <cd:string value="uneligne"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inline" file="page-lin.tex">
+ <cd:sequence>
+ <cd:string value="alaligne"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupinmargin" file="page-mar.tex">
+ <cd:sequence>
+ <cd:string value="regledansmarge"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="gauche"/>
+ <cd:constant type="droite"/>
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="emplacement">
+ <cd:constant type="gauche"/>
+ <cd:constant type="droite"/>
+ <cd:constant type="lesdeux"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="avant">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="apres">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="alignement">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="ligne">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="separateur">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="largeur">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="stack">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ <cd:inherit name="regleencadre" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppagenumber" file="page-num.tex">
+ <cd:sequence>
+ <cd:string value="reglenumeropage"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="numero">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="etat">
+ <cd:constant type="demarre"/>
+ <cd:constant type="stoppe"/>
+ <cd:constant type="maintient"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsubpagenumber" file="page-num.tex">
+ <cd:sequence>
+ <cd:string value="reglesousnumeropage"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="mode">
+ <cd:constant type="bytext"/>
+ <cd:constant type="bycd:section"/>
+ </cd:parameter>
+ <cd:parameter name="etat">
+ <cd:constant type="demarre"/>
+ <cd:constant type="stoppe"/>
+ <cd:constant type="rien"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupblank" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="definitvide"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="normal" default="yes"/>
+ <cd:constant type="defaut"/>
+ <cd:constant type="standard"/>
+ <cd:constant type="ligne"/>
+ <cd:constant type="demiligne"/>
<cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="espaceavant">
- <cd:constant type="petit"/>
- <cd:constant type="moyen"/>
<cd:constant type="grand"/>
- <cd:constant type="rien"/>
- </cd:parameter>
- <cd:parameter name="espaceapres">
- <cd:constant type="petit"/>
<cd:constant type="moyen"/>
- <cd:constant type="grand"/>
- <cd:constant type="rien"/>
- </cd:parameter>
- <cd:parameter name="espacelateralavant">
<cd:constant type="petit"/>
- <cd:constant type="moyen"/>
- <cd:constant type="grand"/>
+ <cd:constant type="fixe"/>
+ <cd:constant type="flexible"/>
+ <cd:constant type="global"/>
+ <cd:constant type="inconnu"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineblank" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="definitvide"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:inherit name="definitvide" n="1"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definepapersize" file="page-lay.tex">
+ <cd:sequence>
+ <cd:string value="definittaillepapier"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="largeur">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="hauteur">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="offset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="echelle">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppaper" file="page-lay.tex">
+ <cd:sequence>
+ <cd:string value="reglepapier"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="papier">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="page">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="nx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ny">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="largeur">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="hauteur">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="espacesup">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="retour">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="option">
+ <cd:constant type="max"/>
+ <cd:constant type="adapte"/>
+ </cd:parameter>
+ <cd:parameter name="methode">
+ <cd:constant type="normal"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppapersize" file="page-lay.tex">
+ <cd:sequence>
+ <cd:string value="regletaillepapier"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="A3"/>
+ <cd:constant type="A4" default="yes"/>
+ <cd:constant type="A5"/>
+ <cd:constant type="A6"/>
+ <cd:constant type="letter"/>
+ <cd:constant type="..."/>
+ <cd:constant type="CD"/>
+ <cd:constant type="cd:name"/>
+ <cd:constant type="paysage"/>
+ <cd:constant type="reflete"/>
+ <cd:constant type="tourne"/>
+ <cd:constant type="90"/>
+ <cd:constant type="180"/>
+ <cd:constant type="270"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="negatif"/>
+ <cd:inherit name="regletaillepapier" n="1"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuparranging" file="page-imp.tex">
+ <cd:sequence>
+ <cd:string value="reglearrangement"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="desactiver"/>
+ <cd:constant type="2*16"/>
+ <cd:constant type="2*8"/>
+ <cd:constant type="2*4"/>
+ <cd:constant type="2*2"/>
+ <cd:constant type="2**2"/>
+ <cd:constant type="2*2*4"/>
+ <cd:constant type="2*4*2"/>
+ <cd:constant type="2UP"/>
+ <cd:constant type="2DOWN"/>
+ <cd:constant type="2SIDE"/>
+ <cd:constant type="2TOP"/>
+ <cd:constant type="reflete"/>
+ <cd:constant type="tourne"/>
+ <cd:constant type="rectoverso"/>
+ <cd:constant type="negatif"/>
+ <cd:constant type="arriereplan"/>
+ <cd:constant type="90"/>
+ <cd:constant type="180"/>
+ <cd:constant type="270"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showprint" file="page-run.tex"> <!-- page-lay.tex -->
+ <cd:sequence>
+ <cd:string value="montreedition"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:inherit name="regletaillepapier" n="1"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:inherit name="regletaillepapier" n="2"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:inherit name="regledisposition" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definelogo" file="page-log.tex">
+ <cd:sequence>
+ <cd:string value="definitlogo"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="sup"/>
+ <cd:constant type="entete"/>
+ <cd:constant type="pdp"/>
+ <cd:constant type="inf"/>
+ </cd:keywords>
+ <cd:keywords n="3">
<cd:constant type="rien"/>
- </cd:parameter>
- <cd:parameter name="espacelateralapres">
+ <cd:constant type="page"/>
+ <cd:constant type="bordgauche"/>
+ <cd:constant type="margegauche"/>
+ <cd:constant type="gauche"/>
+ <cd:constant type="milieu"/>
+ <cd:constant type="droite"/>
+ <cd:constant type="margedroite"/>
+ <cd:constant type="borddroit"/>
+ </cd:keywords>
+ <cd:assignments n="4" list="yes">
+ <cd:parameter name="commande">
+ <cd:constant type="cd:command"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="etat">
+ <cd:constant type="demarre"/>
+ <cd:constant type="stoppe"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placelogos" file="page-log.tex">
+ <cd:sequence>
+ <cd:string value="placelogos"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupwhitespace">
+ <cd:sequence>
+ <cd:string value="regleespaceblanc"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="rien" default="yes"/>
<cd:constant type="petit"/>
<cd:constant type="moyen"/>
<cd:constant type="grand"/>
- <cd:constant type="rien"/>
- </cd:parameter>
- <cd:parameter name="indentesuivant">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="nsup">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ninf">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="nlignes">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="defaut">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="tolerance">
- <cd:constant type="0"/>
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- </cd:parameter>
- <cd:parameter name="distancemargegauche">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distancemargedroite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="sidealign">
- <cd:constant type="normal"/>
<cd:constant type="ligne"/>
- </cd:parameter>
- <cd:parameter name="numerotation">
- <cd:constant type="oui"/>
- <cd:constant type="nonverifie"/>
- </cd:parameter>
- <cd:inherit name="regleencadre"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfloatsplitting" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="regleseparationflottant"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="conversion">
- <cd:constant type="numeros"/>
- <cd:constant type="caracteres"/>
- <cd:constant type="Caracteres"/>
- <cd:constant type="chiffresromains"/>
- <cd:constant type="Chiffresromains"/>
- </cd:parameter>
- <cd:parameter name="lignes">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="splitfloat" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="separeflottant"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="regleseparationflottant"/>
- </cd:assignments>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupoppositeplacing" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="regleplacementopposition"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments>
- <cd:parameter name="etat">
- <cd:constant type="demarre"/>
- <cd:constant type="stoppe"/>
- </cd:parameter>
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="entre">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="opposite" type="environment">
- <cd:sequence>
- <cd:string value="opposite"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setuphyphenmark" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="reglemarquagehyphenation"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments>
- <cd:parameter name="signe">
- <cd:constant type="--"/>
- <cd:constant type="---"/>
- <cd:constant type="-"/>
- <cd:constant type="~"/>
- <cd:constant type="("/>
- <cd:constant type=")"/>
- <cd:constant type="="/>
- <cd:constant type="/"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuppositioning" file="page-lyr.tex">
- <cd:sequence>
- <cd:string value="reglepositionnement"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="etat">
- <cd:constant type="demarre"/>
- <cd:constant type="revetement"/>
- </cd:parameter>
- <cd:parameter name="unite">
- <cd:constant type="cm"/>
- <cd:constant type="pt"/>
- <cd:constant type="em"/>
- <cd:constant type="mm"/>
- <cd:constant type="ex"/>
- <cd:constant type="es"/>
- <cd:constant type="in"/>
- </cd:parameter>
- <cd:parameter name="facteur">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="echelle">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="offset">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="xstep">
- <cd:constant type="absolute"/>
- <cd:constant type="relatif"/>
- </cd:parameter>
- <cd:parameter name="ystep">
- <cd:constant type="absolute"/>
- <cd:constant type="relatif"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="positioning" type="environment">
- <cd:sequence>
- <cd:string value="positioning"/>
- </cd:sequence>
-</cd:command>
+ <cd:constant type="fixe"/>
+ <cd:constant type="fixe"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
-<cd:command name="grid" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="grille"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="x">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="y">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="nx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ny">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="dx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="dy">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="xstep">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ystep">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="offset">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="facteur">
+ <cd:command name="setupindenting">
+ <cd:sequence>
+ <cd:string value="reglecomposeenalinea"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:resolve name="indenting"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definesectionblock" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="definitblocsection"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:inherit name="regleblocsection" n="1"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="regleblocsection" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsectionblock" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="regleblocsection"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="numero">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ <cd:parameter name="page">
+ <cd:constant type="oui"/>
+ <cd:constant type="droite"/>
+ </cd:parameter>
+ <cd:parameter name="avant">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="apres">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definesection" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="definitsection"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsection" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="reglesection"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:parameter name="conversion">
+ <cd:constant type="numeros"/>
+ <cd:constant type="caracteres"/>
+ <cd:constant type="Caracteres"/>
+ <cd:constant type="chiffresromains"/>
+ <cd:constant type="Chiffresromains"/>
+ </cd:parameter>
+ <cd:parameter name="numeroprecedent">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuphead" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="regletete"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:section"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="styletexte">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="stylenumero">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="couleur">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="couleurtexte">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="couleurnumero">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="numero">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ <cd:parameter name="numeroproprio">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ <cd:parameter name="page">
+ <cd:constant type="gauche"/>
+ <cd:constant type="droite"/>
+ <cd:constant type="oui"/>
+ </cd:parameter>
+ <cd:parameter name="continue">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ <cd:parameter name="entete">
+ <cd:constant type="rien"/>
+ <cd:constant type="vide"/>
+ <cd:constant type="haut"/>
+ <cd:constant type="sansmarquage"/>
+ </cd:parameter>
+ <cd:parameter name="texte">
+ <cd:constant type="rien"/>
+ <cd:constant type="vide"/>
+ <cd:constant type="haut"/>
+ <cd:constant type="sansmarquage"/>
+ </cd:parameter>
+ <cd:parameter name="pdp">
+ <cd:constant type="rien"/>
+ <cd:constant type="vide"/>
+ <cd:constant type="haut"/>
+ <cd:constant type="sansmarquage"/>
+ </cd:parameter>
+ <cd:parameter name="avant">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="entre">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="apres">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:constant type="normal"/>
+ <cd:constant type="dansmarge"/>
+ <cd:constant type="milieu"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="suspend">
+ <cd:constant type="rien"/>
+ <cd:constant type="large"/>
+ <cd:constant type="adapte"/>
+ <cd:constant type="ligne"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="commande">
+ <cd:constant type="cd:twoarguments"/>
+ </cd:parameter>
+ <cd:parameter name="commandenumero">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="commandetexte">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="deepnumbercommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="deeptextcommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="prefixe">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="placetete">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ <cd:constant type="vide"/>
+ </cd:parameter>
+ <cd:parameter name="incrementenumero">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ <cd:constant type="cd:list"/>
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="raznumero">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ <cd:parameter name="fichier">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="expansion">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ <cd:constant type="commande"/>
+ </cd:parameter>
+ <cd:parameter name="textemarge">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ <cd:inherit name="regletetes" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupheadnumber" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="reglenumerotete"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:section"/>
+ </cd:keywords>
+ <cd:keywords n="2">
<cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="echelle">
+ <cd:constant type="+cd:number"/>
+ <cd:constant type="-cd:number"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="headnumber">
+ <cd:sequence>
+ <cd:string value="numerotete"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:section"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="determineheadnumber" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="determinenumerotete"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:section"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="currentheadnumber" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="numerotetecourant"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="nextsection" generated="yes" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="suivant"/>
+ <cd:variable value="section"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="definehead" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="definittete"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:section"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupitemgroup" file="core-itm.tex">
+ <cd:sequence>
+ <cd:string value="setupitemgroup"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
<cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="unite">
- <cd:constant type="cm"/>
- <cd:constant type="pt"/>
- <cd:constant type="em"/>
- <cd:constant type="mm"/>
- <cd:constant type="ex"/>
- <cd:constant type="es"/>
- <cd:constant type="in"/>
- </cd:parameter>
- <cd:parameter name="emplacement">
- <cd:constant type="gauche"/>
- <cd:constant type="milieu"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="page" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="page"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="oui" default="yes"/>
- <cd:constant type="makeup"/>
- <cd:constant type="non"/>
- <cd:constant type="preference"/>
- <cd:constant type="grandepreference"/>
- <cd:constant type="gauche"/>
- <cd:constant type="droite"/>
- <cd:constant type="desactiver"/>
- <cd:constant type="dernier"/>
- <cd:constant type="quadruple"/>
- <cd:constant type="paire"/>
- <cd:constant type="impair"/>
- <cd:constant type="vide"/>
- <cd:constant type="vide"/>
- <cd:constant type="raz"/>
- <cd:constant type="demarre"/>
- <cd:constant type="stoppe"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupreferencing" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="reglereferencage"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="etat">
- <cd:constant type="demarre"/>
- <cd:constant type="stoppe"/>
- </cd:parameter>
- <cd:parameter name="cd:sectionnumber">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="prefixe">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="interaction">
- <cd:constant type="etiquette"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="tout"/>
- <cd:constant type="symbole"/>
- </cd:parameter>
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="gauche">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="droite">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="conversionfichier">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- <cd:constant type="petit"/>
- <cd:constant type="grand"/>
- </cd:parameter>
- <cd:parameter name="separateur">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="autofile">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- <cd:constant type="page"/>
- </cd:parameter>
- <cd:parameter name="global">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupurl" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="regleurl"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="alternativeurl">
- <cd:constant type="rien"/>
- <cd:constant type="lesdeux"/>
+ <cd:constant type="chaque"/>
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes" list="yes">
+ <cd:constant type="standard" default="yes"/>
+ <cd:constant type="large"/>
+ <cd:constant type="serried"/>
+ <cd:constant type="groupe"/>
+ <cd:constant type="degroupe"/>
+ <cd:constant type="sansblanc"/>
<cd:constant type="avant"/>
<cd:constant type="apres"/>
- </cd:parameter>
- <cd:parameter name="espaceurl">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="writetoreferencelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="ecritdanslistereference"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placereferencelist">
- <cd:sequence>
- <cd:string value="placelistereference"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definereferencelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="definitlistereference"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="reglelistereference"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupreferencelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="reglelistereference"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="etat">
- <cd:constant type="demarre"/>
- <cd:constant type="stoppe"/>
- </cd:parameter>
- <cd:parameter name="critere">
+ <cd:constant type="stopper"/>
+ <cd:constant type="joinedup"/>
+ <cd:constant type="alamarge"/>
+ <cd:constant type="dansmarge"/>
+ <cd:constant type="autointro"/>
+ <cd:constant type="perte"/>
+ <cd:constant type="repete"/>
<cd:constant type="cd:section"/>
- <cd:constant type="local"/>
- <cd:constant type="precedent"/>
- <cd:constant type="tout"/>
- </cd:parameter>
- <cd:parameter name="commande">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="writetolist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="ecritdansliste"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:section"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="writebetweenlist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="ecritentreliste"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:section"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="nolist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="sansliste"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="listsymbol" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="listesymbole"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="placeliste"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="regleliste"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="determinelistcharacteristics" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="determinecaracteristiqueliste"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="regleliste"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placecombinedlist" variant="1" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="placelisteinmbriquee"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="reglelisteimbriquee"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="definitliste"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="regleliste"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuplist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="regleliste"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="etat">
- <cd:constant type="demarre"/>
- <cd:constant type="stoppe"/>
- </cd:parameter>
- <cd:parameter name="alternative">
+ <cd:constant type="paragraphe"/>
+ <cd:constant type="danstexte"/>
+ <cd:constant type="aleatoire"/>
+ <cd:constant type="inverse"/>
+ </cd:keywords>
+ <cd:assignments n="4" optional="yes" list="yes">
+ <cd:parameter name="marge">
+ <cd:constant type="non"/>
+ <cd:constant type="standard"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="margegauche">
+ <cd:constant type="non"/>
+ <cd:constant type="standard"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="margedroite">
+ <cd:constant type="non"/>
+ <cd:constant type="standard"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="largeur">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="facteur">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="elements">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="demarre">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="avant">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="entre">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="apres">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="gauche">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="droite">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="avanttete">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="aprestete">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="styletete">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="stylemarquage">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="stylesym">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="taquet">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="symbole">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="alignement">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="symalignement">
+ <cd:resolve name="symalign"/>
+ </cd:parameter>
+ <cd:parameter name="indentesuivant">
+ <cd:resolve name="indentnext"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="itemgroup" type="environment" generated="yes" file="core-itm.tex">
+ <cd:sequence>
+ <cd:variable value="itemgroup"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
<cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- <cd:constant type="..."/>
- <cd:constant type="rien"/>
- <cd:constant type="commande"/>
- </cd:parameter>
- <cd:parameter name="couplage">
- <cd:constant type="actif"/>
- <cd:constant type="desactive"/>
- </cd:parameter>
- <cd:parameter name="critere">
- <cd:constant type="cd:section"/>
- <cd:constant type="local"/>
- <cd:constant type="precedent"/>
- <cd:constant type="courant"/>
- <cd:constant type="tout"/>
- </cd:parameter>
- <cd:parameter name="limitespage">
- <cd:constant type="cd:list"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stylenumero">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="styletexte">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stylepage">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="couleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="commande">
- <cd:constant type="cd:threearguments"/>
- </cd:parameter>
- <cd:parameter name="commandenumero">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="commandetexte">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="commandepage">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="interaction">
- <cd:constant type="cd:sectionnumber"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="numeropage"/>
- <cd:constant type="tout"/>
- </cd:parameter>
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="entre">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="gauche">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="droite">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="etiquette">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="prefixe">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- <cd:constant type="rien"/>
- </cd:parameter>
- <cd:parameter name="numeropage">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="numerotete">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="cd:sectionnumber">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="alignementtitre">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="marge">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="adapte"/>
- </cd:parameter>
- <cd:parameter name="hauteur">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="adapte"/>
- <cd:constant type="large"/>
- </cd:parameter>
- <cd:parameter name="profondeur">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="adapte"/>
+ <cd:constant type="A"/>
+ <cd:constant type="KA"/>
+ <cd:constant type="n"/>
+ <cd:constant type="N"/>
+ <cd:constant type="m"/>
+ <cd:constant type="r"/>
+ <cd:constant type="R"/>
+ <cd:constant type="KR"/>
+ <cd:constant type="cd:number"/>
+ <cd:constant type="continue"/>
+ <cd:constant type="standard" default="yes"/>
<cd:constant type="large"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="separateur">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="taquet">
+ <cd:constant type="serried"/>
+ <cd:constant type="groupe"/>
+ <cd:constant type="stopper"/>
+ <cd:constant type="joinedup"/>
+ <cd:constant type="alamarge"/>
+ <cd:constant type="dansmarge"/>
+ <cd:constant type="intro"/>
+ <cd:constant type="colonnes"/>
+ <cd:constant type="texte"/>
+ <cd:constant type="paragraphe"/>
+ <cd:constant type="repete"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="setupitemgroup" n="4"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="item" file="core-itm.tex">
+ <cd:sequence>
+ <cd:string value="element"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="but">
+ <cd:sequence>
+ <cd:string value="but"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" interactive="exclusive"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="its">
+ <cd:sequence>
+ <cd:string value="el"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ran">
+ <cd:sequence>
+ <cd:string value="ran"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="head">
+ <cd:sequence>
+ <cd:string value="tete"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mar">
+ <cd:sequence>
+ <cd:string value="mar"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="sub">
+ <cd:sequence>
+ <cd:string value="sub"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="sym" file="core-itm.tex">
+ <cd:sequence>
+ <cd:string value="sym"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nop">
+ <cd:sequence>
+ <cd:string value="nop"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="defineregister" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="definitregistre"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:singular"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:plural"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupregister" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="regleregistre"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:singular"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="equilibre">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ <cd:parameter name="alignement">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="stylepage">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="styletexte">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="indicateur">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ <cd:parameter name="couplage">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ <cd:parameter name="cd:sectionnumber">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ <cd:parameter name="critere">
+ <cd:constant type="cd:section"/>
+ <cd:constant type="local"/>
+ <cd:constant type="tout"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="symbole">
+ <cd:constant type="1"/>
+ <cd:constant type="2"/>
+ <cd:constant type="..."/>
+ <cd:constant type="n"/>
+ <cd:constant type="a"/>
+ <cd:constant type="..."/>
+ <cd:constant type="rien"/>
+ </cd:parameter>
+ <cd:parameter name="interaction">
+ <cd:constant type="numeropage"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="expansion">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ <cd:constant type="commande"/>
+ </cd:parameter>
+ <cd:parameter name="referencing">
+ <cd:constant type="actif"/>
+ <cd:constant type="desactive"/>
+ </cd:parameter>
+ <cd:parameter name="commande">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="emplacement">
+ <cd:constant type="gauche"/>
+ <cd:constant type="milieu"/>
+ <cd:constant type="droite"/>
+ </cd:parameter>
+ <cd:parameter name="largeurmax">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="referenceinconnue">
+ <cd:constant type="vide"/>
+ <cd:constant type="rien"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:constant type="a"/>
+ <cd:constant type="b"/>
+ <cd:constant type="A"/>
+ <cd:constant type="B"/>
+ </cd:parameter>
+ <cd:parameter name="prefixe">
+ <cd:constant type="lesdeux"/>
+ <cd:constant type="premier"/>
+ <cd:constant type="rien"/>
+ </cd:parameter>
+ <cd:parameter name="compress">
+ <cd:constant type="non"/>
+ <cd:constant type="oui"/>
+ </cd:parameter>
+ <cd:parameter name="deeptextcommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="register" generated="yes" file="core-reg.tex">
+ <cd:sequence>
+ <cd:variable value="registre"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="symbole">
- <cd:constant type="rien"/>
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- <cd:constant type="3"/>
- <cd:constant type="..."/>
- </cd:parameter>
- <cd:parameter name="expansion">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- <cd:constant type="commande"/>
- </cd:parameter>
- <cd:parameter name="largeurmax">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:inherit name="framed"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuplistalternative" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="setuplistalternative"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="no">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- <!-- cd:constant type="cd:name"/ -->
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="commande">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="etire">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definecombinedlist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="definitlisteimbriquee"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:list"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="reglelisteimbriquee"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupcombinedlist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="reglelisteimbriquee"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="niveau">
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- <cd:constant type="3"/>
- <cd:constant type="4"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="courant"/>
- </cd:parameter>
- <cd:inherit name="regleliste"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placecombinedlist" variant="2" generated="yes" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="place"/>
- <cd:variable value="combinedlist"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="reglelisteimbriquee"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="completecombinedlist" generated="yes">
- <cd:sequence>
- <cd:string value="complete"/>
- <cd:variable value="combinedlist"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="reglelisteimbriquee"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupnumbering" file="core-num.tex">
- <cd:sequence>
- <cd:string value="reglenumerotation"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="mode">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="etat">
- <cd:constant type="demarre"/>
- <cd:constant type="stoppe"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupformulae">
- <cd:sequence>
- <cd:string value="setupformulae"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="emplacement">
- <cd:constant type="gauche"/>
- <cd:constant type="droite"/>
- </cd:parameter>
- <cd:parameter name="gauche">
+ </cd:keywords>
+ <cd:index n="2" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="startregister" generated="yes" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="demarre"/>
+ <cd:variable value="registre"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="droite">
+ </cd:keywords>
+ <cd:index n="2" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="writetoregister" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="ecritregistre"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:singular"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="alignement">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="option">
- <cd:constant type="milieu"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="marge">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="standard"/>
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="alignement">
- <cd:constant type="flushleft"/>
- <cd:constant type="flushright"/>
- <cd:constant type="milieu"/>
- <cd:constant type="center"/>
- </cd:parameter>
- <cd:parameter name="margegauche">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="margedroite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="indentesuivant">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="alternative">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="espaceavant">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="separateur">
+ </cd:keywords>
+ <cd:index n="3" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="coupledregister" generated="yes">
+ <cd:sequence>
+ <cd:string value="couple"/>
+ <cd:variable value="registre"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="conversion">
- <cd:constant type="numeros"/>
- <cd:constant type="caracteres"/>
- <cd:constant type="Caracteres"/>
- <cd:constant type="chiffresromains"/>
- <cd:constant type="Chiffresromains"/>
+ </cd:keywords>
+ <cd:index n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="coupleregister" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="coupleregistre"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placeregister" variant="1" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="placeregistre"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="regleregistre" n="3"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="seeregister" generated="yes">
+ <cd:sequence>
+ <cd:string value="voit"/>
+ <cd:variable value="registre"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="publication" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="publication"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuppublications" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="reglepublications"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="alternative">
- <cd:constant type="apa"/>
- <cd:constant type="normal"/>
- </cd:parameter>
- <cd:inherit name="regleenumerations"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuplines" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="reglelignes"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="avant">
+ </cd:keywords>
+ <cd:content n="2"/>
+ <cd:index n="3" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="completeregister" generated="yes" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="complete"/>
+ <cd:variable value="registre"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="yes" optional="yes" list="yes">
+ <cd:inherit name="regleregistre" n="3"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placeregister" variant="2" generated="yes" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="place"/>
+ <cd:variable value="registre"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="yes" optional="yes" list="yes">
+ <cd:inherit name="regleregistre" n="3"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definesynonyms" file="core-syn.tex">
+ <cd:sequence>
+ <cd:string value="definitsynonymes"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:singular"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:plural"/>
+ </cd:keywords>
+ <cd:keywords n="3">
<cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
+ </cd:keywords>
+ <cd:keywords n="4" optional="yes">
<cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="entre">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="composeenalinea">
- <cd:resolve name="indenting"/>
- </cd:parameter>
- <cd:parameter name="espace">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="lines" type="environment">
- <cd:sequence>
- <cd:string value="lines"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupparagraphnumbering" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="reglenumerotationparagraphe"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="etat">
- <cd:constant type="demarre"/>
- <cd:constant type="stoppe"/>
- <cd:constant type="raz"/>
- <cd:constant type="ligne"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuplinenumbering" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="reglenumerotationligne"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="conversion">
- <cd:constant type="numeros"/>
- <cd:constant type="caracteres"/>
- <cd:constant type="Caracteres"/>
- <cd:constant type="chiffresromains"/>
- <cd:constant type="Chiffresromains"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="demarre">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="pas">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="emplacement">
- <cd:constant type="danstexte"/>
- <cd:constant type="dansmarge"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="prefixe">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsynonyms" file="core-syn.tex">
+ <cd:sequence>
+ <cd:string value="reglesynonymes"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="styletexte">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="stylesynonyme">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="emplacement">
+ <cd:constant type="gauche"/>
+ <cd:constant type="droite"/>
+ <cd:constant type="sup"/>
+ <cd:constant type="serried"/>
+ <cd:constant type="dansmarge"/>
+ <cd:constant type="dansgauche"/>
+ <cd:constant type="dansdroit"/>
+ </cd:parameter>
+ <cd:parameter name="largeur">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="etat">
+ <cd:constant type="demarre"/>
+ <cd:constant type="stoppe"/>
+ </cd:parameter>
+ <cd:parameter name="critere">
+ <cd:constant type="tout"/>
+ <cd:constant type="used"/>
+ </cd:parameter>
+ <cd:parameter name="conversion">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ <cd:parameter name="expansion">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ <cd:constant type="commande"/>
+ </cd:parameter>
+ <cd:parameter name="commande">
+ <cd:constant type="cd:threearguments"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="synonym" generated="yes">
+ <cd:sequence>
+ <cd:variable value="synonym"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="referencing">
- <cd:constant type="actif"/>
- <cd:constant type="desactive"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="linenumbering" type="environment">
- <cd:sequence>
- <cd:string value="linenumbering"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="continue"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="line" type="environment">
- <cd:sequence>
- <cd:string value="line"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="someline" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="uneligne"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="inline" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="alaligne"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupinmargin" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="regledansmarge"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="gauche"/>
- <cd:constant type="droite"/>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="emplacement">
- <cd:constant type="gauche"/>
- <cd:constant type="droite"/>
- <cd:constant type="lesdeux"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
+ </cd:keywords>
+ <cd:content n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="completelistofsynonyms" generated="yes">
+ <cd:sequence>
+ <cd:string value="completelistof"/>
+ <cd:variable value="synonyms"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="placelistofsynonyms" generated="yes">
+ <cd:sequence>
+ <cd:string value="placelistof"/>
+ <cd:variable value="synonyms"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="loadsynonyms" generated="yes">
+ <cd:sequence>
+ <cd:string value="charge"/>
+ <cd:variable value="synonyms"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="definesorting" file="core-syn.tex">
+ <cd:sequence>
+ <cd:string value="definittri"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:singular"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:plural"/>
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes">
<cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="alignement">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="ligne">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="separateur">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsorting" file="core-syn.tex">
+ <cd:sequence>
+ <cd:string value="regletri"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="avant">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="apres">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="commande">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="etat">
+ <cd:constant type="demarre"/>
+ <cd:constant type="stoppe"/>
+ </cd:parameter>
+ <cd:parameter name="critere">
+ <cd:constant type="tout"/>
+ <cd:constant type="used"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="expansion">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ <cd:constant type="commande"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="sort" generated="yes">
+ <cd:sequence>
+ <cd:variable value="sort"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stack">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:inherit name="regleencadre"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuppagenumber" file="page-num.tex">
- <cd:sequence>
- <cd:string value="reglenumeropage"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="numero">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="etat">
- <cd:constant type="demarre"/>
- <cd:constant type="stoppe"/>
- <cd:constant type="maintient"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupsubpagenumber" file="page-num.tex">
- <cd:sequence>
- <cd:string value="reglesousnumeropage"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="mode">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="etat">
- <cd:constant type="demarre"/>
- <cd:constant type="stoppe"/>
- <cd:constant type="rien"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupblank">
- <cd:sequence>
- <cd:string value="definitvide"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="normal" default="yes"/>
- <cd:constant type="standard"/>
- <cd:constant type="ligne"/>
- <cd:constant type="cd:dimension"/>
- <cd:constant type="grand"/>
- <cd:constant type="moyen"/>
- <cd:constant type="petit"/>
- <cd:constant type="fixe"/>
- <cd:constant type="flexible"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineblank" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="definitvide"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:inherit name="definitvide"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definepapersize" file="page-lay.tex">
- <cd:sequence>
- <cd:string value="definittaillepapier"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hauteur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="echelle">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuppaper" file="page-lay.tex">
- <cd:sequence>
- <cd:string value="reglepapier"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="papier">
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="completelistofsorts" generated="yes">
+ <cd:sequence>
+ <cd:string value="completelistof"/>
+ <cd:variable value="sorts"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="placelistofsorts" generated="yes">
+ <cd:sequence>
+ <cd:string value="placelistof"/>
+ <cd:variable value="sorts"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="loadsorts" generated="yes">
+ <cd:sequence>
+ <cd:string value="charge"/>
+ <cd:variable value="sorts"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="definemakeup" file="page-mak.tex">
+ <cd:sequence>
+ <cd:string value="definitmakeup"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="page">
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="reglemakeup" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="makeup" type="environment">
+ <cd:sequence>
+ <cd:string value="makeup"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="nx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ny">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hauteur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="espacesup">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="retour">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="option">
- <cd:constant type="max"/>
- <cd:constant type="adapte"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuppapersize" file="page-lay.tex">
- <cd:sequence>
- <cd:string value="regletaillepapier"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="A3"/>
- <cd:constant type="A4" default="yes"/>
- <cd:constant type="A5"/>
- <cd:constant type="A6"/>
- <cd:constant type="letter"/>
- <cd:constant type="..."/>
- <cd:constant type="CD"/>
- <cd:constant type="cd:name"/>
- <cd:constant type="paysage"/>
- <cd:constant type="reflete"/>
- <cd:constant type="tourne"/>
- <cd:constant type="90"/>
- <cd:constant type="180"/>
- <cd:constant type="270"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="A3"/>
- <cd:constant type="A4" default="yes"/>
- <cd:constant type="A5"/>
- <cd:constant type="A6"/>
- <cd:constant type="letter"/>
- <cd:constant type="..."/>
- <cd:constant type="cd:name"/>
- <cd:constant type="paysage"/>
- <cd:constant type="reflete"/>
- <cd:constant type="tourne"/>
- <cd:constant type="negatif"/>
- <cd:constant type="90"/>
- <cd:constant type="180"/>
- <cd:constant type="270"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuparranging" file="page-imp.tex">
- <cd:sequence>
- <cd:string value="reglearrangement"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="desactiver"/>
- <cd:constant type="2*16"/>
- <cd:constant type="2*8"/>
- <cd:constant type="2*4"/>
- <cd:constant type="2*2"/>
- <cd:constant type="2**2"/>
- <cd:constant type="2*2*4"/>
- <cd:constant type="2*4*2"/>
- <cd:constant type="2UP"/>
- <cd:constant type="2DOWN"/>
- <cd:constant type="2SIDE"/>
- <cd:constant type="2TOP"/>
- <cd:constant type="reflete"/>
- <cd:constant type="tourne"/>
- <cd:constant type="rectoverso"/>
- <cd:constant type="negatif"/>
- <cd:constant type="arriereplan"/>
- <cd:constant type="90"/>
- <cd:constant type="180"/>
- <cd:constant type="270"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showprint">
- <cd:sequence>
- <cd:string value="montreedition"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:inherit name="regletaillepapier"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:inherit name="regletaillepapier"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="regledisposition"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definelogo" file="page-log.tex">
- <cd:sequence>
- <cd:string value="definitlogo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="sup"/>
- <cd:constant type="entete"/>
- <cd:constant type="pdp"/>
- <cd:constant type="inf"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="rien"/>
- <cd:constant type="page"/>
- <cd:constant type="bordgauche"/>
- <cd:constant type="margegauche"/>
- <cd:constant type="gauche"/>
- <cd:constant type="milieu"/>
- <cd:constant type="droite"/>
- <cd:constant type="margedroite"/>
- <cd:constant type="borddroit"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="commande">
- <cd:constant type="cd:command"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="etat">
- <cd:constant type="demarre"/>
- <cd:constant type="stoppe"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placelogos" file="page-log.tex">
- <cd:sequence>
- <cd:string value="placelogos"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupwhitespace">
- <cd:sequence>
- <cd:string value="regleespaceblanc"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="rien" default="yes"/>
- <cd:constant type="petit"/>
- <cd:constant type="moyen"/>
- <cd:constant type="grand"/>
- <cd:constant type="ligne"/>
- <cd:constant type="fixe"/>
- <cd:constant type="fixe"/>
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupindenting">
- <cd:sequence>
- <cd:string value="reglecomposeenalinea"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="reglemakeup" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupmakeup" file="page-mak.tex">
+ <cd:sequence>
+ <cd:string value="reglemakeup"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="largeur">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="hauteur">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="voffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="decalagehauteur">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="page">
+ <cd:constant type="gauche"/>
+ <cd:constant type="oui"/>
+ <cd:constant type="droite"/>
+ </cd:parameter>
+ <cd:parameter name="commandes">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="rectoverso">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ <cd:constant type="vide"/>
+ </cd:parameter>
+ <cd:parameter name="etatentete">
+ <cd:constant type="normal"/>
+ <cd:constant type="stoppe"/>
+ <cd:constant type="demarre"/>
+ <cd:constant type="vide"/>
+ <cd:constant type="rien"/>
+ <cd:constant type="sansmarquage"/>
+ </cd:parameter>
+ <cd:parameter name="etatpdp">
+ <cd:constant type="normal"/>
+ <cd:constant type="stoppe"/>
+ <cd:constant type="demarre"/>
+ <cd:constant type="vide"/>
+ <cd:constant type="rien"/>
+ <cd:constant type="sansmarquage"/>
+ </cd:parameter>
+ <cd:parameter name="etattexte">
+ <cd:constant type="normal"/>
+ <cd:constant type="stoppe"/>
+ <cd:constant type="demarre"/>
+ <cd:constant type="vide"/>
+ <cd:constant type="rien"/>
+ <cd:constant type="sansmarquage"/>
+ </cd:parameter>
+ <cd:parameter name="etatsup">
+ <cd:constant type="stoppe"/>
+ <cd:constant type="demarre"/>
+ </cd:parameter>
+ <cd:parameter name="etatinf">
+ <cd:constant type="stoppe"/>
+ <cd:constant type="demarre"/>
+ </cd:parameter>
+ <cd:parameter name="etatpage">
+ <cd:constant type="stoppe"/>
+ <cd:constant type="demarre"/>
+ </cd:parameter>
+ <cd:parameter name="couleur">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="namemakeup" type="environment" generated="yes">
+ <cd:sequence>
+ <cd:variable value="nom"/>
+ <cd:string value="makeup"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="version">
+ <cd:sequence>
+ <cd:string value="version"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="final" default="yes"/>
+ <cd:constant type="concept"/>
+ <cd:constant type="temporaire"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="currentdate">
+ <cd:sequence>
+ <cd:string value="datecourante"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:inherit name="date" n="2"/> <!-- or vice versa :) -->
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="date" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="date"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes"> <!-- if not given, current date is used -->
+ <cd:parameter name="d">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="m">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="y">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="jour"/>
+ <cd:constant type="mois"/>
+ <cd:constant type="annee"/>
+ <cd:constant type="joursemaine"/>
+ <cd:constant type="d"/>
+ <cd:constant type="m"/>
+ <cd:constant type="y"/> <!-- also j -->
+ <cd:constant type="w"/>
+ <cd:constant type="dd"/>
+ <cd:constant type="mm"/>
+ <cd:constant type="yy"/> <!-- also jj -->
+ <cd:constant type="espace"/>
+ <cd:constant type="--"/>
+ <cd:constant type="day+"/>
+ <cd:constant type="d+"/>
+ <cd:constant type="dd+"/>
+ <cd:constant type="referral"/>
+ <cd:constant type="cd:text"/> <!-- any other text -->
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="referraldate" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="daterecommandation"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="indenting" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="composeenalinea"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
<cd:resolve name="indenting"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definesectionblock" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="definitblocsection"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="regleblocsection"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupsectionblock" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="regleblocsection"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="numero">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="page">
- <cd:constant type="oui"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="noindenting" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="sansalinea"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="blank" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="vide"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="petit"/>
+ <cd:constant type="moyen"/>
+ <cd:constant type="grand" default="yes"/>
+ <cd:constant type="sansblanc"/>
+ <cd:constant type="retour"/>
+ <cd:constant type="blanc"/>
+ <cd:constant type="desactiver"/>
+ <cd:constant type="force"/>
+ <cd:constant type="raz"/>
+ <cd:constant type="ligne"/>
+ <cd:constant type="demiligne"/>
+ <cd:constant type="cd:formula"/>
+ <cd:constant type="fixe"/>
+ <cd:constant type="flexible"/>
+ <cd:constant type="rien"/>
+ <cd:constant type="toujours"/>
+ <cd:constant type="exterieur"/>
+ <cd:constant type="joinedup"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="packed" type="environment" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="groupe"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="vide"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="unpacked" type="environment">
+ <cd:sequence>
+ <cd:string value="unpacked"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="linecorrection" type="environment">
+ <cd:sequence>
+ <cd:string value="linecorrection"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="correctwhitespace" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="corrigeespaceblanc"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="postponing" type="environment">
+ <cd:sequence>
+ <cd:string value="postponing"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="local" type="environment">
+ <cd:sequence>
+ <cd:string value="local"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="narrower" type="environment">
+ <cd:sequence>
+ <cd:string value="narrower"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="gauche"/>
+ <cd:constant type="milieu" default="yes"/>
<cd:constant type="droite"/>
- </cd:parameter>
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definesection" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="definitsection"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupsection" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="reglesection"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="conversion">
- <cd:constant type="numeros"/>
- <cd:constant type="caracteres"/>
- <cd:constant type="Caracteres"/>
- <cd:constant type="chiffresromains"/>
- <cd:constant type="Chiffresromains"/>
- </cd:parameter>
- <cd:parameter name="numeroprecedent">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuphead" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="regletete"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:section"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="styletexte">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stylenumero">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="couleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="couleurtexte">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="couleurnumero">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="numero">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="numeroproprio">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="page">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="hiding" type="environment">
+ <cd:sequence>
+ <cd:string value="hiding"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupalign" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="reglealignement"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="largeur"/>
<cd:constant type="gauche"/>
<cd:constant type="droite"/>
- <cd:constant type="oui"/>
- </cd:parameter>
- <cd:parameter name="continue">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="entete">
- <cd:constant type="rien"/>
- <cd:constant type="vide"/>
- <cd:constant type="haut"/>
- <cd:constant type="sansmarquage"/>
- </cd:parameter>
- <cd:parameter name="texte">
- <cd:constant type="rien"/>
- <cd:constant type="vide"/>
- <cd:constant type="haut"/>
- <cd:constant type="sansmarquage"/>
- </cd:parameter>
- <cd:parameter name="pdp">
- <cd:constant type="rien"/>
- <cd:constant type="vide"/>
- <cd:constant type="haut"/>
- <cd:constant type="sansmarquage"/>
- </cd:parameter>
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="entre">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="alternative">
- <cd:constant type="normal"/>
- <cd:constant type="dansmarge"/>
<cd:constant type="milieu"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="suspend">
- <cd:constant type="rien"/>
+ <cd:constant type="interieur"/>
+ <cd:constant type="exterieur"/>
+ <cd:constant type="ample"/>
<cd:constant type="large"/>
- <cd:constant type="adapte"/>
+ <cd:constant type="hauteur"/>
+ <cd:constant type="inf"/>
<cd:constant type="ligne"/>
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="commande">
- <cd:constant type="cd:twoarguments"/>
- </cd:parameter>
- <cd:parameter name="commandenumero">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="commandetexte">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="deepnumbercommand">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="deeptextcommand">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="prefixe">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="placetete">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- <cd:constant type="vide"/>
- </cd:parameter>
- <cd:parameter name="incrementenumero">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- <cd:constant type="cd:list"/>
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="raznumero">
+ <cd:constant type="raz"/>
+ <cd:constant type="suspend"/>
+ <cd:constant type="nonsuspendu"/>
+ <cd:constant type="hyphenated"/>
+ <cd:constant type="nothyphenated"/>
+ <cd:constant type="lesshyphenation"/>
+ <cd:constant type="morehyphenation"/>
+ <cd:constant type="nouveau"/>
+ <cd:constant type="old"/>
+ <cd:constant type="normal"/>
<cd:constant type="oui"/>
<cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="fichier">
+ <cd:constant type="flushleft"/>
+ <cd:constant type="flushright"/>
+ <cd:constant type="flushouter"/>
+ <cd:constant type="flushinner"/>
+ <cd:constant type="center"/>
+ <cd:constant type="hz"/>
+ <cd:constant type="nohz"/>
+ <cd:constant type="espacement"/>
+ <cd:constant type="sansespacement"/>
+ <cd:constant type="tolerant"/>
+ <cd:constant type="trestolerant"/>
+ <cd:constant type="etire"/>
+ <cd:constant type="lefttoright"/>
+ <cd:constant type="righttoleft"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+
+ <cd:command name="alignment" type="environment" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="alignment"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:inherit name="reglealignement" n="1"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupspacing">
+ <cd:sequence>
+ <cd:string value="regleespacement"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="large"/>
+ <cd:constant type="groupe"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptolerance" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="regletolerance"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="horizontale"/>
+ <cd:constant type="verticale"/>
+ <cd:constant type="etire"/>
+ <cd:constant type="espace"/>
+ <cd:constant type="tresstrict" default="yes"/>
+ <cd:constant type="strict"/>
+ <cd:constant type="tolerant"/>
+ <cd:constant type="trestolerant"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="pagetype" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="tapepage"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="expansion">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- <cd:constant type="commande"/>
- </cd:parameter>
- <cd:parameter name="textemarge">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:inherit name="regletetes"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupheadnumber" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="reglenumerotete"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:section"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:number"/>
- <cd:constant type="+cd:number"/>
- <cd:constant type="-cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="headnumber">
- <cd:sequence>
- <cd:string value="numerotete"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:section"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="determineheadnumber" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="determinenumerotete"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:section"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="currentheadnumber" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="numerotetecourant"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="nextsection" generated="yes" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="next"/>
- <cd:variable value="section"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="definehead" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="definittete"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:section"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupitemgroup" file="core-itm.tex">
- <cd:sequence>
- <cd:string value="setupitemgroup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:number"/>
- <cd:constant type="chaque"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="standard" default="yes"/>
- <cd:constant type="large"/>
- <cd:constant type="serried"/>
- <cd:constant type="groupe"/>
- <cd:constant type="degroupe"/>
- <cd:constant type="sansblanc"/>
- <cd:constant type="avant"/>
- <cd:constant type="apres"/>
- <cd:constant type="stopper"/>
- <cd:constant type="joinedup"/>
- <cd:constant type="alamarge"/>
- <cd:constant type="dansmarge"/>
- <cd:constant type="autointro"/>
- <cd:constant type="perte"/>
- <cd:constant type="repete"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="paragraphe"/>
- <cd:constant type="danstexte"/>
- <cd:constant type="aleatoire"/>
- <cd:constant type="inverse"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:parameter name="marge">
- <cd:constant type="non"/>
- <cd:constant type="standard"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="margegauche">
- <cd:constant type="non"/>
- <cd:constant type="standard"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="margedroite">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="processpage" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="traitepage"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="oui" default="yes"/>
<cd:constant type="non"/>
- <cd:constant type="standard"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="facteur">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="elements">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="demarre">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="entre">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="gauche">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="droite">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="couplepage" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="pagedouble"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="option">
+ <cd:constant type="rectoverso"/>
+ </cd:parameter>
+ <cd:parameter name="avant">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="apres">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="position" file="page-lyr.tex">
+ <cd:sequence>
+ <cd:string value="position"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:position n="1" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupscreens" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="regleecrans"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="methode">
+ <cd:constant type="point"/>
+ <cd:constant type="regle"/>
+ <cd:constant type="external"/>
+ </cd:parameter>
+ <cd:parameter name="resolution">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="facteur">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ecran">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbackgrounds" file="page-bck.tex">
+ <cd:sequence>
+ <cd:string value="reglearriereplans"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="sup"/>
+ <cd:constant type="entete"/>
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="avanttete">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="aprestete">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="styletete">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stylemarquage">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stylesym">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="taquet">
+ <cd:constant type="pdp"/>
+ <cd:constant type="inf"/>
+ <cd:constant type="page"/>
+ <cd:constant type="papier"/>
+ <cd:constant type="pagegauche"/>
+ <cd:constant type="pagedroite"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="bordgauche"/>
+ <cd:constant type="margegauche"/>
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="symbole">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="alignement">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="symalignement">
- <cd:resolve name="symalign"/>
- </cd:parameter>
- <cd:parameter name="indentesuivant">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="itemgroup" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="itemgroup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="a"/>
- <cd:constant type="A"/>
- <cd:constant type="KA"/>
- <cd:constant type="n"/>
- <cd:constant type="N"/>
- <cd:constant type="m"/>
- <cd:constant type="r"/>
- <cd:constant type="R"/>
- <cd:constant type="KR"/>
- <cd:constant type="cd:number"/>
- <cd:constant type="continue"/>
- <cd:constant type="standard" default="yes"/>
- <cd:constant type="large"/>
- <cd:constant type="serried"/>
- <cd:constant type="groupe"/>
- <cd:constant type="stopper"/>
- <cd:constant type="joinedup"/>
- <cd:constant type="alamarge"/>
- <cd:constant type="dansmarge"/>
- <cd:constant type="intro"/>
- <cd:constant type="colonnes"/>
- <cd:constant type="texte"/>
- <cd:constant type="paragraphe"/>
- <cd:constant type="repete"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="setupitemgroup"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="item">
- <cd:sequence>
- <cd:string value="element"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="but">
- <cd:sequence>
- <cd:string value="but"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference interactive="exclusive"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="its">
- <cd:sequence>
- <cd:string value="el"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="ran">
- <cd:sequence>
- <cd:string value="ran"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="head">
- <cd:sequence>
- <cd:string value="tete"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="mar">
- <cd:sequence>
- <cd:string value="mar"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="sub">
- <cd:sequence>
- <cd:string value="sub"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="sym" file="core-itm.tex">
- <cd:sequence>
- <cd:string value="sym"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="nop">
- <cd:sequence>
- <cd:string value="nop"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="defineregister" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="definitregistre"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:plural"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupregister" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="regleregistre"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="equilibre">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="alignement">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stylepage">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="styletexte">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="indicateur">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="couplage">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="cd:sectionnumber">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="critere">
- <cd:constant type="cd:section"/>
- <cd:constant type="local"/>
+ <cd:constant type="margedroite"/>
+ <cd:constant type="borddroit"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:parameter name="etat">
+ <cd:constant type="demarre"/>
+ <cd:constant type="stoppe"/>
+ <cd:constant type="cd:repeat"/>
+ </cd:parameter>
+ <cd:inherit name="regleencadre" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="buffer" type="environment" generated="yes" file="core-buf.tex">
+ <cd:sequence>
+ <cd:variable value="buffer"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="buffer" type="environment" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="buffer"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getbuffer">
+ <cd:sequence>
+ <cd:string value="prendbuffer"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="typebuffer" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="tapebuffer"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definebuffer" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="definitbuffer"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbuffer" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="reglebuffer"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="paragraphe">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="avant">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="apres">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineblock" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="definitbloc"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nomoreblocks" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="pasplusdeblocs"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="hideblocks" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="cacheblocs"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="keepblocks" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="gardeblocs"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
<cd:constant type="tout"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="symbole">
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- <cd:constant type="..."/>
- <cd:constant type="n"/>
- <cd:constant type="a"/>
- <cd:constant type="..."/>
- <cd:constant type="rien"/>
- </cd:parameter>
- <cd:parameter name="interaction">
- <cd:constant type="numeropage"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="expansion">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- <cd:constant type="commande"/>
- </cd:parameter>
- <cd:parameter name="referencing">
- <cd:constant type="actif"/>
- <cd:constant type="desactive"/>
- </cd:parameter>
- <cd:parameter name="commande">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="emplacement">
- <cd:constant type="gauche"/>
- <cd:constant type="milieu"/>
- <cd:constant type="droite"/>
- </cd:parameter>
- <cd:parameter name="largeurmax">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="referenceinconnue">
- <cd:constant type="vide"/>
- <cd:constant type="rien"/>
- </cd:parameter>
- <cd:parameter name="alternative">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="A"/>
- <cd:constant type="B"/>
- </cd:parameter>
- <cd:parameter name="prefixe">
- <cd:constant type="lesdeux"/>
- <cd:constant type="premier"/>
- <cd:constant type="rien"/>
- </cd:parameter>
- <cd:parameter name="compress">
- <cd:constant type="non"/>
- <cd:constant type="oui"/>
- </cd:parameter>
- <cd:parameter name="deeptextcommand">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="register" generated="yes" file="core-reg.tex">
- <cd:sequence>
- <cd:variable value="registre"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:index list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="startregister" generated="yes" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="start"/>
- <cd:variable value="registre"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:index list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="writetoregister" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="ecritregistre"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:index list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="coupledregister" generated="yes">
- <cd:sequence>
- <cd:string value="coupled"/>
- <cd:variable value="registre"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:index/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="coupleregister" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="coupleregistre"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placeregister" variant="1" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="placeregistre"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="regleregistre"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="seeregister" generated="yes">
- <cd:sequence>
- <cd:string value="see"/>
- <cd:variable value="registre"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content/>
- <cd:index list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="completeregister" generated="yes" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="complete"/>
- <cd:variable value="registre"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="yes" optional="yes" list="yes">
- <cd:inherit name="regleregistre"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placeregister" variant="2" generated="yes" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="place"/>
- <cd:variable value="registre"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="yes" optional="yes" list="yes">
- <cd:inherit name="regleregistre"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definesynonyms" file="core-syn.tex">
- <cd:sequence>
- <cd:string value="definitsynonymes"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:plural"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:command"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:command"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupsynonyms" file="core-syn.tex">
- <cd:sequence>
- <cd:string value="reglesynonymes"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="styletexte">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stylesynonyme">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="emplacement">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useblocks" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="utiliseblocs"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="processblocks" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="traiteblocs"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="bypassblocks" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="sauteblocs"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="forceblocks">
+ <cd:sequence>
+ <cd:string value="forceblocs"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="selectblocks" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="selectionneblocs"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes">
+ <cd:parameter name="critere">
+ <cd:constant type="tout"/>
+ <cd:constant type="cd:section"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupblock" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="reglebloc"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="avant">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="apres">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="interieur">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="fichier">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="formula" type="environment" generated="yes">
+ <cd:sequence>
+ <cd:variable value="formule"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="mathematics" file="supp-mat.tex">
+ <cd:sequence>
+ <cd:string value="mathematique"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placeformula" file="core-mat.tex">
+ <cd:sequence>
+ <cd:string value="placeformule"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2" optional="yes"/>
+ <cd:displaymath n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placesubformula" file="core-mat.tex">
+ <cd:sequence>
+ <cd:string value="placesousformule"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2" optional="yes"/>
+ <cd:displaymath n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placefloat" generated="yes" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="place"/>
+ <cd:variable value="flottant"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="gauche"/>
<cd:constant type="droite"/>
+ <cd:constant type="ici" default="yes"/>
<cd:constant type="sup"/>
- <cd:constant type="serried"/>
- <cd:constant type="dansmarge"/>
+ <cd:constant type="inf"/>
<cd:constant type="dansgauche"/>
<cd:constant type="dansdroit"/>
- </cd:parameter>
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="etat">
- <cd:constant type="demarre"/>
- <cd:constant type="stoppe"/>
- </cd:parameter>
- <cd:parameter name="critere">
- <cd:constant type="tout"/>
- <cd:constant type="used"/>
- </cd:parameter>
- <cd:parameter name="conversion">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="expansion">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- <cd:constant type="commande"/>
- </cd:parameter>
- <cd:parameter name="commande">
- <cd:constant type="cd:threearguments"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="synonym" generated="yes">
- <cd:sequence>
- <cd:variable value="synonym"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="completelistofsynonyms" generated="yes">
- <cd:sequence>
- <cd:string value="completelistof"/>
- <cd:variable value="synonyms"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="placelistofsynonyms" generated="yes">
- <cd:sequence>
- <cd:string value="placelistof"/>
- <cd:variable value="synonyms"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="loadsynonyms" generated="yes">
- <cd:sequence>
- <cd:string value="load"/>
- <cd:variable value="synonyms"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="definesorting" file="core-syn.tex">
- <cd:sequence>
- <cd:string value="definittri"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:plural"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:command"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupsorting" file="core-syn.tex">
- <cd:sequence>
- <cd:string value="regletri"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="commande">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="etat">
- <cd:constant type="demarre"/>
- <cd:constant type="stoppe"/>
- </cd:parameter>
- <cd:parameter name="critere">
- <cd:constant type="tout"/>
- <cd:constant type="used"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="expansion">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- <cd:constant type="commande"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="sort" generated="yes">
- <cd:sequence>
- <cd:variable value="sort"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="completelistofsorts" generated="yes">
- <cd:sequence>
- <cd:string value="completelistof"/>
- <cd:variable value="sorts"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="placelistofsorts" generated="yes">
- <cd:sequence>
- <cd:string value="placelistof"/>
- <cd:variable value="sorts"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="loadsorts" generated="yes">
- <cd:sequence>
- <cd:string value="load"/>
- <cd:variable value="sorts"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="definemakeup" file="page-mak.tex">
- <cd:sequence>
- <cd:string value="definitmakeup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="reglemakeup"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="makeup" type="environment">
- <cd:sequence>
- <cd:string value="makeup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="reglemakeup"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupmakeup" file="page-mak.tex">
- <cd:sequence>
- <cd:string value="reglemakeup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hauteur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="voffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="decalagehauteur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="page">
+ <cd:constant type="dansmarge"/>
+ <cd:constant type="marge"/>
+ <cd:constant type="margegauche"/>
+ <cd:constant type="margedroite"/>
+ <cd:constant type="bordgauche"/>
+ <cd:constant type="borddroit"/>
+ <cd:constant type="margeinterieure"/>
+ <cd:constant type="margeexterieure"/>
+ <cd:constant type="bordinterieur"/>
+ <cd:constant type="bordexterieur"/>
+ <cd:constant type="interieur"/>
+ <cd:constant type="exterieur"/>
+ <cd:constant type="ligne"/>
+ <cd:constant type="haut"/>
+ <cd:constant type="bas"/>
+ <cd:constant type="adapte"/>
+ <cd:constant type="page"/>
+ <cd:constant type="pagegauche"/>
+ <cd:constant type="pagedroite"/>
+ <cd:constant type="opposition"/>
+ <cd:constant type="toujours"/>
+ <cd:constant type="auto"/>
+ <cd:constant type="force"/>
+ <cd:constant type="long"/>
+ <cd:constant type="raz"/>
+ <cd:constant type="ligne"/>
+ <cd:constant type="hauteur"/>
+ <cd:constant type="profondeur"/>
+ <cd:constant type="split"/>
+ <cd:constant type="90"/>
+ <cd:constant type="180"/>
+ <cd:constant type="270"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes" list="yes"/>
+ <cd:content n="3"/>
+ <cd:content n="4"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="reservefloat" generated="yes">
+ <cd:sequence>
+ <cd:string value="reserver"/>
+ <cd:variable value="flottant"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:parameter name="hauteur">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="largeur">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="cadre">
+ <cd:constant type="actif"/>
+ <cd:constant type="desactive"/>
+ </cd:parameter>
+ </cd:assignments>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:reference n="3" optional="yes" list="yes"/>
+ <cd:content n="4"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefloat" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="definitflottant"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:singular"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:plural"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfloat" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="regleflottant"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="hauteur">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="largeur">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="hauteurmax">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="largeurmax">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="largeurmin">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="defaut">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="limitespage">
+ <cd:constant type="cd:list"/>
+ </cd:parameter>
+ <cd:parameter name="distancemargegauche">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distancemargedroite">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="emplacement">
+ <cd:constant type="gauche"/>
+ <cd:constant type="milieu"/>
+ <cd:constant type="droite"/>
+ </cd:parameter>
+ <cd:inherit name="regleencadre" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="floattext" type="environment" generated="yes">
+ <cd:sequence>
+ <cd:variable value="flottant"/>
+ <cd:string value="texte"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="gauche"/>
- <cd:constant type="oui"/>
<cd:constant type="droite"/>
- </cd:parameter>
- <cd:parameter name="commandes">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="rectoverso">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- <cd:constant type="vide"/>
- </cd:parameter>
- <cd:parameter name="etatentete">
- <cd:constant type="normal"/>
- <cd:constant type="stoppe"/>
- <cd:constant type="demarre"/>
- <cd:constant type="vide"/>
- <cd:constant type="rien"/>
- <cd:constant type="sansmarquage"/>
- </cd:parameter>
- <cd:parameter name="etatpdp">
- <cd:constant type="normal"/>
- <cd:constant type="stoppe"/>
- <cd:constant type="demarre"/>
- <cd:constant type="vide"/>
- <cd:constant type="rien"/>
- <cd:constant type="sansmarquage"/>
- </cd:parameter>
- <cd:parameter name="etattexte">
- <cd:constant type="normal"/>
- <cd:constant type="stoppe"/>
- <cd:constant type="demarre"/>
- <cd:constant type="vide"/>
- <cd:constant type="rien"/>
- <cd:constant type="sansmarquage"/>
- </cd:parameter>
- <cd:parameter name="etatsup">
- <cd:constant type="stoppe"/>
- <cd:constant type="demarre"/>
- </cd:parameter>
- <cd:parameter name="etatinf">
- <cd:constant type="stoppe"/>
- <cd:constant type="demarre"/>
- </cd:parameter>
- <cd:parameter name="etatpage">
- <cd:constant type="stoppe"/>
- <cd:constant type="demarre"/>
- </cd:parameter>
- <cd:parameter name="couleur">
+ <cd:constant type="haut"/>
+ <cd:constant type="milieu"/>
+ <cd:constant type="bas"/>
+ <cd:constant type="offset"/>
+ <cd:constant type="long"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ <cd:content n="4"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placelistoffloats" generated="yes">
+ <cd:sequence>
+ <cd:string value="placelistof"/>
+ <cd:variable value="floats"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="completelistoffloats" generated="yes">
+ <cd:sequence>
+ <cd:string value="completelistof"/>
+ <cd:variable value="floats"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="referral" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="recommandation"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="bet">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="ken">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="dat">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="van">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="aan">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="ref">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="selectpaper">
+ <cd:sequence>
+ <cd:string value="selectionnepapier"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="famille">
+ <cd:constant type="1"/>
+ <cd:constant type="2"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="couplepaper">
+ <cd:sequence>
+ <cd:string value="couplepapier"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="namemakeup" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="nom"/>
- <cd:string value="makeup"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="version">
- <cd:sequence>
- <cd:string value="version"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="final" default="yes"/>
- <cd:constant type="concept"/>
- <cd:constant type="temporaire"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="currentdate">
- <cd:sequence>
- <cd:string value="datecourante"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:inherit name="date"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="date" file="core-con.tex">
- <cd:sequence>
- <cd:string value="date"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:parameter name="d">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="m">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="y">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- <cd:keywords list="yes">
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="referraldate" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="daterecommandation"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="indenting" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="composeenalinea"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:resolve name="indenting"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="noindenting" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="sansalinea"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="blank" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="vide"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="petit"/>
- <cd:constant type="moyen"/>
- <cd:constant type="grand" default="yes"/>
- <cd:constant type="sansblanc"/>
- <cd:constant type="retour"/>
- <cd:constant type="blanc"/>
- <cd:constant type="desactiver"/>
- <cd:constant type="force"/>
- <cd:constant type="raz"/>
- <cd:constant type="ligne"/>
- <cd:constant type="demiligne"/>
- <cd:constant type="cd:formula"/>
- <cd:constant type="fixe"/>
- <cd:constant type="flexible"/>
- <cd:constant type="rien"/>
- <cd:constant type="toujours"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="packed" type="environment" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="groupe"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="vide"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="unpacked" type="environment">
- <cd:sequence>
- <cd:string value="unpacked"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="linecorrection" type="environment">
- <cd:sequence>
- <cd:string value="linecorrection"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="correctwhitespace" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="corrigeespaceblanc"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="postponing" type="environment">
- <cd:sequence>
- <cd:string value="postponing"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="local" type="environment">
- <cd:sequence>
- <cd:string value="local"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="narrower" type="environment">
- <cd:sequence>
- <cd:string value="narrower"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="gauche"/>
- <cd:constant type="milieu" default="yes"/>
- <cd:constant type="droite"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="hiding" type="environment">
- <cd:sequence>
- <cd:string value="hiding"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupalign" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="reglealignement"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="largeur"/>
- <cd:constant type="gauche"/>
- <cd:constant type="droite"/>
- <cd:constant type="milieu"/>
- <cd:constant type="interieur"/>
- <cd:constant type="exterieur"/>
- <cd:constant type="ample"/>
- <cd:constant type="large"/>
- <cd:constant type="hauteur"/>
- <cd:constant type="inf"/>
- <cd:constant type="ligne"/>
- <cd:constant type="raz"/>
- <cd:constant type="suspend"/>
- <cd:constant type="nonsuspendu"/>
- <cd:constant type="hyphenated"/>
- <cd:constant type="nothyphenated"/>
- <cd:constant type="lesshyphens"/>
- <cd:constant type="morehyphens"/>
- <cd:constant type="nouveau"/>
- <cd:constant type="old"/>
- <cd:constant type="normal"/>
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- <cd:constant type="flushleft"/>
- <cd:constant type="flushright"/>
- <cd:constant type="flushouter"/>
- <cd:constant type="flushinner"/>
- <cd:constant type="center"/>
- <cd:constant type="hz"/>
- <cd:constant type="nohz"/>
- <cd:constant type="espacement"/>
- <cd:constant type="sansespacement"/>
- <cd:constant type="tolerant"/>
- <cd:constant type="trestolerant"/>
- <cd:constant type="etire"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-
-<cd:command name="alignment" type="environment">
- <cd:sequence>
- <cd:string value="alignment"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:inherit name="reglealignement"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupspacing">
- <cd:sequence>
- <cd:string value="regleespacement"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="large"/>
- <cd:constant type="groupe"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptolerance" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="regletolerance"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="horizontale"/>
- <cd:constant type="verticale"/>
- <cd:constant type="etire"/>
- <cd:constant type="espace"/>
- <cd:constant type="tresstrict" default="yes"/>
- <cd:constant type="strict"/>
- <cd:constant type="tolerant"/>
- <cd:constant type="trestolerant"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="pagetype" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="tapepage"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="processpage" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="traitepage"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="oui" default="yes"/>
- <cd:constant type="non"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="couplepage" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="pagedouble"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="option">
- <cd:constant type="rectoverso"/>
- </cd:parameter>
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="position" file="page-lyr.tex">
- <cd:sequence>
- <cd:string value="position"/>
- </cd:sequence>
- <cd:arguments>
- <cd:position list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupscreens" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="regleecrans"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="methode">
- <cd:constant type="point"/>
- <cd:constant type="regle"/>
- <cd:constant type="external"/>
- </cd:parameter>
- <cd:parameter name="resolution">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="facteur">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="chem" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="chem"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fraction" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="fraction"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="periods" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="periodes"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ecran">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupbackgrounds" file="page-bck.tex">
- <cd:sequence>
- <cd:string value="reglearriereplans"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="sup"/>
- <cd:constant type="entete"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="pdp"/>
- <cd:constant type="inf"/>
- <cd:constant type="page"/>
- <cd:constant type="papier"/>
- <cd:constant type="pagegauche"/>
- <cd:constant type="pagedroite"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="bordgauche"/>
- <cd:constant type="margegauche"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="margedroite"/>
- <cd:constant type="borddroit"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="etat">
- <cd:constant type="demarre"/>
- <cd:constant type="stoppe"/>
- <cd:constant type="cd:repeat"/>
- </cd:parameter>
- <cd:inherit name="regleencadre"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="buffer" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="buffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="getbuffer">
- <cd:sequence>
- <cd:string value="prendbuffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="typebuffer" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="tapebuffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definebuffer" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="definitbuffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupbuffer" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="reglebuffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="paragraphe">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineblock" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="definitbloc"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="nomoreblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="pasplusdeblocs"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="hideblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="cacheblocs"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="keepblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="gardeblocs"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="tout"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="useblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="utiliseblocs"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="processblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="traiteblocs"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="bypassblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="sauteblocs"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="forceblocks">
- <cd:sequence>
- <cd:string value="forceblocs"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="selectblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="selectionneblocs"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes">
- <cd:parameter name="critere">
- <cd:constant type="tout"/>
- <cd:constant type="cd:section"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupblock" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="reglebloc"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="interieur">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="fichier">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="formula" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="formule"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="mathematics" file="supp-mat.tex">
- <cd:sequence>
- <cd:string value="mathematique"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placeformula" file="core-mat.tex">
- <cd:sequence>
- <cd:string value="placeformule"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content optional="yes"/>
- <cd:displaymath/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placesubformula" file="core-mat.tex">
- <cd:sequence>
- <cd:string value="placesousformule"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content optional="yes"/>
- <cd:displaymath/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placefloat" generated="yes" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="place"/>
- <cd:variable value="flottant"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="gauche"/>
- <cd:constant type="droite"/>
- <cd:constant type="ici" default="yes"/>
- <cd:constant type="sup"/>
- <cd:constant type="inf"/>
- <cd:constant type="dansgauche"/>
- <cd:constant type="dansdroit"/>
- <cd:constant type="dansmarge"/>
- <cd:constant type="marge"/>
- <cd:constant type="margegauche"/>
- <cd:constant type="margedroite"/>
- <cd:constant type="bordgauche"/>
- <cd:constant type="borddroit"/>
- <cd:constant type="margeinterieure"/>
- <cd:constant type="margeexterieure"/>
- <cd:constant type="bordinterieur"/>
- <cd:constant type="bordexterieur"/>
- <cd:constant type="interieur"/>
- <cd:constant type="exterieur"/>
- <cd:constant type="ligne"/>
- <cd:constant type="haut"/>
- <cd:constant type="bas"/>
- <cd:constant type="adapte"/>
- <cd:constant type="page"/>
- <cd:constant type="pagegauche"/>
- <cd:constant type="pagedroite"/>
- <cd:constant type="opposition"/>
- <cd:constant type="toujours"/>
- <cd:constant type="auto"/>
- <cd:constant type="force"/>
- <cd:constant type="long"/>
- <cd:constant type="raz"/>
- <cd:constant type="ligne"/>
- <cd:constant type="hauteur"/>
- <cd:constant type="profondeur"/>
- <cd:constant type="split"/>
- <cd:constant type="90"/>
- <cd:constant type="180"/>
- <cd:constant type="270"/>
- </cd:keywords>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="reservefloat" generated="yes">
- <cd:sequence>
- <cd:string value="reserve"/>
- <cd:variable value="flottant"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:parameter name="hauteur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="cadre">
- <cd:constant type="actif"/>
- <cd:constant type="desactive"/>
- </cd:parameter>
- </cd:assignments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definefloat" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="definitflottant"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:plural"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfloat" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="regleflottant"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="hauteur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hauteurmax">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="largeurmax">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="largeurmin">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="defaut">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="limitespage">
- <cd:constant type="cd:list"/>
- </cd:parameter>
- <cd:parameter name="distancemargegauche">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distancemargedroite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="emplacement">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="items">
+ <cd:sequence>
+ <cd:string value="elements"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="regleelements" n="1"/>
+ </cd:assignments>
+ <cd:content n="2" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupitems" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="regleelements"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="emplacement">
+ <cd:constant type="gauche"/>
+ <cd:constant type="droite"/>
+ <cd:constant type="dansmarge"/>
+ <cd:constant type="sup"/>
+ <cd:constant type="inf"/>
+ </cd:parameter>
+ <cd:parameter name="symbole">
+ <cd:constant type="1"/>
+ <cd:constant type="2"/>
+ <cd:constant type="..."/>
+ <cd:constant type="n"/>
+ <cd:constant type="a"/>
+ <cd:constant type="..."/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="rien"/>
+ </cd:parameter>
+ <cd:parameter name="largeur">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="inconnu"/>
+ </cd:parameter>
+ <cd:parameter name="avant">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="entre">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="alignement">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="apres">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="quotation" type="environment" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="citation"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
<cd:constant type="gauche"/>
- <cd:constant type="milieu"/>
+ <cd:constant type="milieu" default="yes"/>
<cd:constant type="droite"/>
- </cd:parameter>
- <cd:inherit name="regleencadre"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="floattext" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="flottant"/>
- <cd:string value="text"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="gauche"/>
- <cd:constant type="droite"/>
- <cd:constant type="haut"/>
- <cd:constant type="milieu"/>
- <cd:constant type="bas"/>
- <cd:constant type="offset"/>
- <cd:constant type="long"/>
- </cd:keywords>
- <cd:reference optional="yes"/>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placelistoffloats" generated="yes">
- <cd:sequence>
- <cd:string value="placelistof"/>
- <cd:variable value="floats"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="completelistoffloats" generated="yes">
- <cd:sequence>
- <cd:string value="completelistof"/>
- <cd:variable value="floats"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="referral" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="recommandation"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="bet">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="quotation" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="citation"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="quote" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="citer"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupquote" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="demarreciter"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="avant">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="apres">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="couleur">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="emplacement">
+ <cd:constant type="cd:text"/>
+ <cd:constant type="marge"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineparagraphs" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="definitparagraphes"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ligne">
+ <cd:constant type="actif"/>
+ <cd:constant type="desactive"/>
+ </cd:parameter>
+ <cd:parameter name="hauteur">
+ <cd:constant type="adapte"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="avant">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="apres">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="interieur">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="tolerance">
+ <cd:constant type="tresstrict"/>
+ <cd:constant type="strict"/>
+ <cd:constant type="tolerant"/>
+ <cd:constant type="trestolerant"/>
+ <cd:constant type="etire"/>
+ </cd:parameter>
+ <cd:parameter name="alignement">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="paragraph" generated="yes">
+ <cd:sequence>
+ <cd:variable value="paragraphe"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="paragraph" type="environment" generated="yes">
+ <cd:sequence>
+ <cd:variable value="paragraphe"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupparagraphs" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="regleparagraphes"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="chaque"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="largeur">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="hauteur">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="alignement">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="tolerance">
+ <cd:constant type="tresstrict"/>
+ <cd:constant type="strict"/>
+ <cd:constant type="tolerant"/>
+ <cd:constant type="trestolerant"/>
+ <cd:constant type="etire"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="avant">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="apres">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="interieur">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="commande">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="ligne">
+ <cd:constant type="actif"/>
+ <cd:constant type="desactive"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptab" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="regletab"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="echantillon">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="largeur">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="styletete">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="emplacement">
+ <cd:constant type="gauche"/>
+ <cd:constant type="droite"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tab">
+ <cd:sequence>
+ <cd:string value="tab"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:nothing n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="document" type="environment">
+ <cd:sequence>
+ <cd:string value="document"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="labels">
+ <cd:sequence>
+ <cd:string value="etiquettes"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definetabulate" file="core-tbl.tex">
+ <cd:sequence>
+ <cd:string value="definittabulation"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="3">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="ken">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tabulate" type="environment" generated="yes">
+ <cd:sequence>
+ <cd:variable value="tabule"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="dat">
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="reglefiguresexternes" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptabulate" file="core-tbl.tex">
+ <cd:sequence>
+ <cd:string value="regletabulation"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="unite">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="composeenalinea">
+ <cd:resolve name="indenting"/>
+ </cd:parameter>
+ <cd:parameter name="avant">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="apres">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="interieur">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="EQ">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="couleurligne">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="alignement">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="epaisseurligne">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="vide"/>
+ <cd:constant type="grille"/>
+ <cd:constant type="profondeur"/>
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="petit"/>
+ <cd:constant type="moyen"/>
+ <cd:constant type="grand"/>
+ <cd:constant type="rien"/>
+ </cd:parameter>
+ <cd:parameter name="policecorps">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ <cd:parameter name="ligne">
+ <cd:constant type="normal"/>
+ <cd:constant type="ligne"/>
+ </cd:parameter>
+ <cd:parameter name="split">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptables" file="core-tab.tex">
+ <cd:sequence>
+ <cd:string value="regletableaux"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="distance">
+ <cd:constant type="petit"/>
+ <cd:constant type="moyen"/>
+ <cd:constant type="grand"/>
+ </cd:parameter>
+ <cd:parameter name="policecorps">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ <cd:parameter name="HL">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="petit"/>
+ <cd:constant type="moyen"/>
+ <cd:constant type="grand"/>
+ <cd:constant type="rien"/>
+ </cd:parameter>
+ <cd:parameter name="VL">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="petit"/>
+ <cd:constant type="moyen"/>
+ <cd:constant type="grand"/>
+ <cd:constant type="rien"/>
+ </cd:parameter>
+ <cd:parameter name="profondeur">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="strut"/>
+ </cd:parameter>
+ <cd:parameter name="hauteur">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="strut"/>
+ </cd:parameter>
+ <cd:parameter name="epaisseurligne">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="couleurligne">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="alignement">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="commandes">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="alignement">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="arriereplan">
+ <cd:constant type="ecran"/>
+ <cd:constant type="couleur"/>
+ <cd:constant type="rien"/>
+ </cd:parameter>
+ <cd:parameter name="ecranarriereplan">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="couleurarriereplan">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="policecorps">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="table" type="environment">
+ <cd:sequence>
+ <cd:string value="table"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="van">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tables" type="environment">
+ <cd:sequence>
+ <cd:string value="tables"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="aan">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definetabletemplate" file="core-tab.tex">
+ <cd:sequence>
+ <cd:string value="definittrametableau"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="ref">
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="selectpaper">
- <cd:sequence>
- <cd:string value="selectionnepapier"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="famille">
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="couplepaper">
- <cd:sequence>
- <cd:string value="couplepapier"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="chem" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="chem"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="fraction" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="fraction"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="periods" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="periodes"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="items">
- <cd:sequence>
- <cd:string value="elements"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="regleelements"/>
- </cd:assignments>
- <cd:content list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupitems" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="regleelements"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="emplacement">
+ </cd:keywords>
+ <cd:keywords n="4" optional="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useexternalfiles" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="utilisefichiersexternes"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="policecorps">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ <cd:parameter name="fichier">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useexternalfile" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="utilisefichierexterne"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ <cd:assignments n="4" list="yes">
+ <cd:parameter name="policecorps">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useexternalfigure" file="core-fig.tex">
+ <cd:sequence>
+ <cd:string value="utilisefigureexterne"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes">
+ <cd:constant type="cd:name"/> <!-- parent -->
+ </cd:keywords>
+ <cd:assignments n="4" optional="yes" list="yes">
+ <cd:inherit name="reglefiguresexternes" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="externalfigure" file="core-fig.tex">
+ <cd:sequence>
+ <cd:string value="figureexterne"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="reglefiguresexternes" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupexternalfigures" file="core-fig.tex">
+ <cd:sequence>
+ <cd:string value="reglefiguresexternes"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1">
+ <cd:parameter name="echelle">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="yscale">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="yscale">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="facteur">
+ <cd:constant type="max"/>
+ <cd:constant type="adapte"/>
+ <cd:constant type="large"/>
+ </cd:parameter>
+ <cd:parameter name="facteurlargeur">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="max"/>
+ <cd:constant type="large"/>
+ <cd:constant type="adapte"/>
+ </cd:parameter>
+ <cd:parameter name="facteurhauteur">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="max"/>
+ <cd:constant type="large"/>
+ <cd:constant type="adapte"/>
+ </cd:parameter>
+ <cd:parameter name="largeur">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="hauteur">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="cadre">
+ <cd:constant type="actif"/>
+ <cd:constant type="desactive"/>
+ </cd:parameter>
+ <cd:parameter name="prereglage">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ <cd:parameter name="affichage">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="previsualisation">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ <cd:parameter name="repete">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ <cd:parameter name="objet">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ <cd:parameter name="type">
+ <cd:constant type="eps"/>
+ <cd:constant type="mps"/>
+ <cd:constant type="pdf"/>
+ <cd:constant type="tif"/>
+ <cd:constant type="png"/>
+ <cd:constant type="jpg"/>
+ <cd:constant type="mov"/>
+ <cd:constant type="cd:tex"/>
+ </cd:parameter>
+ <cd:parameter name="methode">
+ <cd:constant type="eps"/>
+ <cd:constant type="mps"/>
+ <cd:constant type="pdf"/>
+ <cd:constant type="tif"/>
+ <cd:constant type="png"/>
+ <cd:constant type="jpg"/>
+ <cd:constant type="mov"/>
+ <cd:constant type="cd:tex"/>
+ </cd:parameter>
+ <cd:parameter name="option">
+ <cd:constant type="cadre"/>
+ <cd:constant type="vide"/>
+ <cd:constant type="test"/>
+ </cd:parameter>
+ <cd:parameter name="cadres">
+ <cd:constant type="actif"/>
+ <cd:constant type="desactive"/>
+ </cd:parameter>
+ <cd:parameter name="ymax">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="xmax">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="repertoire">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="emplacement">
+ <cd:constant type="local"/>
+ <cd:constant type="global"/>
+ <cd:constant type="defaut"/>
+ <cd:constant type="rien"/>
+ </cd:parameter>
+ <cd:parameter name="largeurmax">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="hauteurmax">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="conversion">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="prefixe">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showexternalfigures" file="core-fig.tex">
+ <cd:sequence>
+ <cd:string value="montrefiguresexternes"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:parameter name="alternative">
+ <cd:constant type="a"/>
+ <cd:constant type="b"/>
+ <cd:constant type="c"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useexternalsoundtrack" file="core-fig.tex">
+ <cd:sequence>
+ <cd:string value="utilisepsiteaudioexterne"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="name" file="syst-gen.tex">
+ <cd:sequence>
+ <cd:string value="name"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="legend" type="environment">
+ <cd:sequence>
+ <cd:string value="legend"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="deux"/>
+ </cd:keywords>
+ <cd:tex n="2" command="leg"/>
+ <cd:nothing n="3"/>
+ <cd:nothing n="4" separator="backslash"/>
+ <cd:nothing n="5" separator="backslash"/>
+ <cd:tex n="6" separator="backslash" command="leg"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fact" type="environment">
+ <cd:sequence>
+ <cd:string value="fait"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:tex n="1" command="fact"/>
+ <cd:nothing n="2"/>
+ <cd:nothing n="3" separator="backslash"/>
+ <cd:nothing n="4" separator="backslash"/>
+ <cd:tex n="5" separator="backslash" command="fact"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="rotate" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="oriente"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="regleoriente" n="1"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuprotate" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="regleoriente"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="rotation">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="emplacement">
+ <cd:constant type="normal"/>
+ <cd:constant type="haut"/>
+ <cd:constant type="adapte"/>
+ <cd:constant type="large"/>
+ <cd:constant type="profondeur"/>
+ </cd:parameter>
+ <cd:inherit name="regleencadre" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mirror" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="reflete"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="scale" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="echelle"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:parameter name="sx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="sy">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcombinations" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="reglecombinaisons"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="avant">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="entre">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="apres">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="hauteur">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="adapte"/>
+ </cd:parameter>
+ <cd:parameter name="largeur">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="adapte"/>
+ </cd:parameter>
+ <cd:parameter name="emplacement">
+ <cd:constant type="sup"/>
+ <cd:constant type="milieu"/>
+ <cd:constant type="inf"/>
+ <cd:constant type="gauche"/>
+ <cd:constant type="droite"/>
+ </cd:parameter>
+ <cd:parameter name="alignement">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="couleur">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="combination" type="environment">
+ <cd:sequence>
+ <cd:string value="combination"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:matrix"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placesidebyside" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="placecoteacote"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placeontopofeachother" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="placelesunsaudessusdesautres"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overlay" type="environment">
+ <cd:sequence>
+ <cd:string value="overlay"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overview" type="environment">
+ <cd:sequence>
+ <cd:string value="overview"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupinteractionscreen" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="regleecraninteraction"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:parameter name="largeur">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="adapte"/>
+ <cd:constant type="max"/>
+ </cd:parameter>
+ <cd:parameter name="hauteur">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="adapte"/>
+ <cd:constant type="max"/>
+ </cd:parameter>
+ <cd:parameter name="retour">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="espacesup">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="horoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="veroffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="option">
+ <cd:constant type="max"/>
+ <cd:constant type="adapte"/>
+ <cd:constant type="rectoverso"/>
+ <cd:constant type="recto"/>
+ <cd:constant type="auto"/>
+ <cd:constant type="rien"/>
+ <cd:constant type="marquepage"/>
+ </cd:parameter>
+ <cd:parameter name="delai">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="rien"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="screen" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="ecran"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setuppagetransitions" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="regletransitionspage"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="raz"/>
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupinteraction" file="core-nav.tex">
+ <cd:sequence>
+ <cd:string value="regleinteraction"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:parameter name="etat">
+ <cd:constant type="demarre"/>
+ <cd:constant type="stoppe"/>
+ </cd:parameter>
+ <cd:parameter name="menu">
+ <cd:constant type="actif"/>
+ <cd:constant type="desactive"/>
+ </cd:parameter>
+ <cd:parameter name="page">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ <cd:parameter name="clic">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ <cd:parameter name="split">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ <cd:parameter name="affichage">
+ <cd:constant type="nouveau"/>
+ </cd:parameter>
+ <cd:parameter name="actionouverture">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="actionfermeture">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="actionouverturepage">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="actionfermeturepage">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="calculer">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="strut">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ <cd:parameter name="largeur">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="hauteur">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="profondeur">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="couleur">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="coleurcontraste">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="jeusymbole">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="titre">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="soustitre">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="auteur">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="date">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="motcle">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <!-- maybe this will move elsewhere -->
+ <cd:parameter name="calquechamp">
+ <cd:constant type="auto"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupinteractionmenu" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="reglemenuinteraction"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="avant">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="apres">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="entre">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="gauche">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="droite">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="milieu">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="etat">
+ <cd:constant type="demarre"/>
+ <cd:constant type="stoppe"/>
+ <cd:constant type="rien"/>
+ <cd:constant type="local"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="couleur">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="coleurcontraste">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="revetement"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="memepage">
+ <cd:constant type="oui"/>
+ <cd:constant type="vide"/>
+ <cd:constant type="non"/>
+ <cd:constant type="rien"/>
+ </cd:parameter>
+ <cd:parameter name="referenceinconnue">
+ <cd:constant type="oui"/>
+ <cd:constant type="vide"/>
+ <cd:constant type="non"/>
+ <cd:constant type="rien"/>
+ </cd:parameter>
+ <cd:parameter name="decalagegauche">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rightoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="decalagesup">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="decalageinf">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="position">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ <cd:inherit name="regleencadre" n="2"/> <!-- maybe not all parameters from framed -->
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineinteractionmenu" variant="1" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="definitmenuinteraction"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive" list="yes">
<cd:constant type="gauche"/>
<cd:constant type="droite"/>
- <cd:constant type="dansmarge"/>
<cd:constant type="sup"/>
<cd:constant type="inf"/>
- </cd:parameter>
- <cd:parameter name="symbole">
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- <cd:constant type="..."/>
- <cd:constant type="n"/>
- <cd:constant type="a"/>
- <cd:constant type="..."/>
- <cd:constant type="cd:text"/>
- <cd:constant type="rien"/>
- </cd:parameter>
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- <cd:constant type="inconnu"/>
- </cd:parameter>
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="entre">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="alignement">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="quotation" type="environment" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="citation"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="gauche"/>
- <cd:constant type="milieu" default="yes"/>
- <cd:constant type="droite"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="quotation" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="citation"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="quote" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="citer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupquote" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="demarreciter"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="couleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="emplacement">
- <cd:constant type="cd:text"/>
- <cd:constant type="marge"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="adding">
- <cd:sequence>
- <cd:string value="ajout"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="petit"/>
- <cd:constant type="moyen" default="yes"/>
- <cd:constant type="grand"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineparagraphs" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="definitparagraphes"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ligne">
- <cd:constant type="actif"/>
- <cd:constant type="desactive"/>
- </cd:parameter>
- <cd:parameter name="hauteur">
- <cd:constant type="adapte"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="interieur">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="tolerance">
- <cd:constant type="tresstrict"/>
- <cd:constant type="strict"/>
- <cd:constant type="tolerant"/>
- <cd:constant type="trestolerant"/>
- <cd:constant type="etire"/>
- </cd:parameter>
- <cd:parameter name="alignement">
- <cd:resolve name="align"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="paragraph" generated="yes">
- <cd:sequence>
- <cd:variable value="paragraphe"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="paragraph" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="paragraphe"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupparagraphs" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="regleparagraphes"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:number"/>
- <cd:constant type="chaque"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hauteur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="alignement">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="tolerance">
- <cd:constant type="tresstrict"/>
- <cd:constant type="strict"/>
- <cd:constant type="tolerant"/>
- <cd:constant type="trestolerant"/>
- <cd:constant type="etire"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="interieur">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="commande">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="ligne">
- <cd:constant type="actif"/>
- <cd:constant type="desactive"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptab" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="regletab"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="echantillon">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="styletete">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="emplacement">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="reglemenuinteraction" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineinteractionmenu" variant="2" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="definitmenuinteraction"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
<cd:constant type="gauche"/>
<cd:constant type="droite"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="tab">
- <cd:sequence>
- <cd:string value="tab"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:nothing/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="document" type="environment">
- <cd:sequence>
- <cd:string value="document"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="labels">
- <cd:sequence>
- <cd:string value="etiquettes"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definetabulate" file="core-tbl.tex">
- <cd:sequence>
- <cd:string value="definittabulation"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="tabulate" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="tabule"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="utilisefigureexterne"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptabulate" file="core-tbl.tex">
- <cd:sequence>
- <cd:string value="regletabulation"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="unite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="composeenalinea">
- <cd:resolve name="indenting"/>
- </cd:parameter>
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="interieur">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="EQ">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="couleurligne">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="alignement">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="epaisseurligne">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="vide"/>
- <cd:constant type="grille"/>
- <cd:constant type="profondeur"/>
- <cd:constant type="cd:dimension"/>
- <cd:constant type="petit"/>
- <cd:constant type="moyen"/>
- <cd:constant type="grand"/>
- <cd:constant type="rien"/>
- </cd:parameter>
- <cd:parameter name="policecorps">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="petit"/>
- <cd:constant type="grand"/>
- </cd:parameter>
- <cd:parameter name="ligne">
- <cd:constant type="normal"/>
- <cd:constant type="ligne"/>
- </cd:parameter>
- <cd:parameter name="split">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptables" file="core-tab.tex">
- <cd:sequence>
- <cd:string value="regletableaux"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="distance">
- <cd:constant type="petit"/>
- <cd:constant type="moyen"/>
- <cd:constant type="grand"/>
- </cd:parameter>
- <cd:parameter name="policecorps">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="petit"/>
- <cd:constant type="grand"/>
- </cd:parameter>
- <cd:parameter name="HL">
- <cd:constant type="cd:number"/>
- <cd:constant type="petit"/>
- <cd:constant type="moyen"/>
- <cd:constant type="grand"/>
- <cd:constant type="rien"/>
- </cd:parameter>
- <cd:parameter name="VL">
- <cd:constant type="cd:number"/>
- <cd:constant type="petit"/>
- <cd:constant type="moyen"/>
- <cd:constant type="grand"/>
- <cd:constant type="rien"/>
- </cd:parameter>
- <cd:parameter name="profondeur">
- <cd:constant type="cd:number"/>
- <cd:constant type="strut"/>
- </cd:parameter>
- <cd:parameter name="hauteur">
- <cd:constant type="cd:number"/>
- <cd:constant type="strut"/>
- </cd:parameter>
- <cd:parameter name="epaisseurligne">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="couleurligne">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="alignement">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="commandes">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="alignement">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="arriereplan">
- <cd:constant type="ecran"/>
- <cd:constant type="couleur"/>
- <cd:constant type="rien"/>
- </cd:parameter>
- <cd:parameter name="ecranarriereplan">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="couleurarriereplan">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="policecorps">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="petit"/>
- <cd:constant type="grand"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="table" type="environment">
- <cd:sequence>
- <cd:string value="table"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="tables" type="environment">
- <cd:sequence>
- <cd:string value="tables"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definetabletemplate" file="core-tab.tex">
- <cd:sequence>
- <cd:string value="definittrametableau"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="useexternalfiles" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="utilisefichiersexternes"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="policecorps">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="petit"/>
- <cd:constant type="grand"/>
- </cd:parameter>
- <cd:parameter name="fichier">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="useexternalfile" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="utilisefichierexterne"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="policecorps">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="petit"/>
- <cd:constant type="grand"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="useexternalfigure" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="utilisefigureexterne"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:parameter name="echelle">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="yscale">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="yscale">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="facteur">
- <cd:constant type="max"/>
- <cd:constant type="adapte"/>
- <cd:constant type="large"/>
- </cd:parameter>
- <cd:parameter name="facteurlargeur">
- <cd:constant type="cd:number"/>
- <cd:constant type="max"/>
- <cd:constant type="large"/>
- <cd:constant type="adapte"/>
- </cd:parameter>
- <cd:parameter name="facteurhauteur">
- <cd:constant type="cd:number"/>
- <cd:constant type="max"/>
- <cd:constant type="large"/>
- <cd:constant type="adapte"/>
- </cd:parameter>
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hauteur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="cadre">
- <cd:constant type="actif"/>
- <cd:constant type="desactive"/>
- </cd:parameter>
- <cd:parameter name="prereglage">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="affichage">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="previsualisation">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="repete">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="objet">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="type">
- <cd:constant type="eps"/>
- <cd:constant type="mps"/>
- <cd:constant type="pdf"/>
- <cd:constant type="tif"/>
- <cd:constant type="png"/>
- <cd:constant type="jpg"/>
- <cd:constant type="mov"/>
- <cd:constant type="cd:tex"/>
- </cd:parameter>
- <cd:parameter name="methode">
- <cd:constant type="eps"/>
- <cd:constant type="mps"/>
- <cd:constant type="pdf"/>
- <cd:constant type="tif"/>
- <cd:constant type="png"/>
- <cd:constant type="jpg"/>
- <cd:constant type="mov"/>
- <cd:constant type="cd:tex"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="externalfigure" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="figureexterne"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="utilisefigureexterne"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupexternalfigures" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="reglefiguresexternes"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments>
- <cd:parameter name="option">
- <cd:constant type="cadre"/>
- <cd:constant type="vide"/>
- <cd:constant type="test"/>
- </cd:parameter>
- <cd:parameter name="objet">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="cadres">
- <cd:constant type="actif"/>
- <cd:constant type="desactive"/>
- </cd:parameter>
- <cd:parameter name="ymax">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="xmax">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="repertoire">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="emplacement">
- <cd:constant type="local"/>
- <cd:constant type="global"/>
- <cd:constant type="defaut"/>
- <cd:constant type="rien"/>
- </cd:parameter>
- <cd:parameter name="largeurmax">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hauteurmax">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="conversion">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="prefixe">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showexternalfigures" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="montrefiguresexternes"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:parameter name="alternative">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="useexternalsoundtrack" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="utilisepsiteaudioexterne"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:file"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="name" file="syst-gen.tex">
- <cd:sequence>
- <cd:string value="name"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="legend" type="environment">
- <cd:sequence>
- <cd:string value="legend"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="deux"/>
- </cd:keywords>
- <cd:tex command="leg"/>
- <cd:nothing/>
- <cd:nothing separator="backslash"/>
- <cd:nothing separator="backslash"/>
- <cd:tex separator="backslash" command="leg"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="fact" type="environment">
- <cd:sequence>
- <cd:string value="fait"/>
- </cd:sequence>
- <cd:arguments>
- <cd:tex command="fact"/>
- <cd:nothing/>
- <cd:nothing separator="backslash"/>
- <cd:nothing separator="backslash"/>
- <cd:tex separator="backslash" command="fact"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="rotate" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="oriente"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="regleoriente"/>
- </cd:assignments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuprotate" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="regleoriente"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="rotation">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="emplacement">
- <cd:constant type="normal"/>
- <cd:constant type="haut"/>
- <cd:constant type="adapte"/>
- <cd:constant type="large"/>
- <cd:constant type="profondeur"/>
- </cd:parameter>
- <cd:inherit name="regleencadre"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="mirror" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="reflete"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="scale" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="echelle"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:parameter name="sx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="sy">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupcombinations" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="reglecombinaisons"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="entre">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hauteur">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="adapte"/>
- </cd:parameter>
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="adapte"/>
- </cd:parameter>
- <cd:parameter name="emplacement">
<cd:constant type="sup"/>
- <cd:constant type="milieu"/>
<cd:constant type="inf"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
<cd:constant type="gauche"/>
<cd:constant type="droite"/>
- </cd:parameter>
- <cd:parameter name="alignement">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="couleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="combination" type="environment">
- <cd:sequence>
- <cd:string value="combination"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:matrix"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placesidebyside" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="placecoteacote"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placeontopofeachother" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="placelesunsaudessusdesautres"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="overlay" type="environment">
- <cd:sequence>
- <cd:string value="overlay"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="overview" type="environment">
- <cd:sequence>
- <cd:string value="overview"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupinteractionscreen" file="core-int.tex">
- <cd:sequence>
- <cd:string value="regleecraninteraction"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" list="yes">
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="adapte"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="hauteur">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="adapte"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="retour">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="espacesup">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="horoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="veroffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="option">
- <cd:constant type="max"/>
- <cd:constant type="adapte"/>
- <cd:constant type="rectoverso"/>
- <cd:constant type="marquepage"/>
- </cd:parameter>
- <cd:parameter name="delai">
- <cd:constant type="cd:number"/>
- <cd:constant type="rien"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="screen" file="core-int.tex">
- <cd:sequence>
- <cd:string value="ecran"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setuppagetransitions" file="core-int.tex">
- <cd:sequence>
- <cd:string value="regletransitionspage"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="raz"/>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupinteraction" file="core-nav.tex">
- <cd:sequence>
- <cd:string value="regleinteraction"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" list="yes">
- <cd:parameter name="etat">
- <cd:constant type="demarre"/>
- <cd:constant type="stoppe"/>
- </cd:parameter>
- <cd:parameter name="menu">
- <cd:constant type="actif"/>
- <cd:constant type="desactive"/>
- </cd:parameter>
- <cd:parameter name="page">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="clic">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="split">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="affichage">
- <cd:constant type="nouveau"/>
- </cd:parameter>
- <cd:parameter name="actionouverture">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="actionfermeture">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="actionouverturepage">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="actionfermeturepage">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="calculer">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hauteur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="profondeur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="couleur">
+ <cd:constant type="sup"/>
+ <cd:constant type="inf"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="reglemenuinteraction" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="interactionmenu" type="environment">
+ <cd:sequence>
+ <cd:string value="menuinteraction"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="coleurcontraste">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="disableinteractionmenu" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="inhibemenuinteraction"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
+ <cd:constant type="gauche"/>
+ <cd:constant type="droite"/>
+ <cd:constant type="sup"/>
+ <cd:constant type="inf"/>
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="jeusymbole">
+ </cd:keywords>
+ <cd:reference n="2" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useexternaldocument" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="utilisedocumentexterne"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="titre">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="soustitre">
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="fichier"/>
+ </cd:keywords>
+ <cd:keywords n="3">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="auteur">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useURL" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="utiliseURL"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="date">
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:constant type="fichier"/>
+ </cd:keywords>
+ <cd:keywords n="4">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="motcle">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="coupledocument" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="coupledocument"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="fichier"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="from" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="de"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" interactive="exclusive"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="interactionbar">
+ <cd:sequence>
+ <cd:string value="barreinteraction"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:inherit name="reglebarreinteraction" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="interactionbuttons" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="boutonsinteraction"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" optional="yes" list="yes">
+ <cd:inherit name="reglebarreinteraction" n="1"/>
+ </cd:assignments>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupinteractionbar" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="reglebarreinteraction"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:parameter name="etat">
+ <cd:constant type="demarre"/>
+ <cd:constant type="stoppe"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:constant type="a"/>
+ <cd:constant type="b"/>
+ <cd:constant type="c"/>
+ <cd:constant type="d"/>
+ <cd:constant type="e"/>
+ <cd:constant type="f"/>
+ <cd:constant type="g"/>
+ </cd:parameter>
+ <cd:parameter name="symbole">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ <cd:parameter name="largeur">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="hauteur"/>
+ <cd:constant type="adapte"/>
+ </cd:parameter>
+ <cd:parameter name="hauteur">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="hauteur"/>
+ <cd:constant type="adapte"/>
+ </cd:parameter>
+ <cd:parameter name="profondeur">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="couleur">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="pas">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="petit"/>
+ <cd:constant type="moyen"/>
+ <cd:constant type="grand"/>
+ </cd:parameter>
+ <cd:inherit name="regleencadre" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="synchronize" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="synchronise"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="synchronization" type="environment">
+ <cd:sequence>
+ <cd:string value="synchronization"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupsynchronizationbar" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="reglebarresynchronisation"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:parameter name="alternative">
+ <cd:constant type="page"/>
+ <cd:constant type="local"/>
+ </cd:parameter>
+ <cd:parameter name="largeur">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="hauteur"/>
+ <cd:constant type="adapte"/>
+ </cd:parameter>
+ <cd:parameter name="hauteur">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="couleur">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:inherit name="regleencadre" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="synchronizationbar" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="barresynchronisation"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="alternative">
+ <cd:constant type="page"/>
+ <cd:constant type="local"/>
+ </cd:parameter>
+ <cd:inherit name="reglebarresynchronisation" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsynchronization" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="reglesynchronisation"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:parameter name="etat">
+ <cd:constant type="demarre"/>
+ <cd:constant type="stoppe"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineprofile" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="definitprofil"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupprofiles" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="regleprofils"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:parameter name="option">
+ <cd:constant type="test"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="profile" type="environment">
+ <cd:sequence>
+ <cd:string value="profile"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="followprofile" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="suivantprofil"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="exclusive"/>
+ <cd:keywords n="2">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <!-- maybe this will move elsewhere -->
- <cd:parameter name="calquechamp">
- <cd:constant type="auto"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placebookmarks" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="placemarquespages"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
<cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineinteractionmenu" variant="1" file="core-int.tex">
- <cd:sequence>
- <cd:string value="definitmenuinteraction"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive" list="yes">
- <cd:constant type="gauche"/>
- <cd:constant type="droite"/>
- <cd:constant type="sup"/>
- <cd:constant type="inf"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="entre">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="gauche">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="droite">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="milieu">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="etat">
- <cd:constant type="demarre"/>
- <cd:constant type="stoppe"/>
- <cd:constant type="rien"/>
- <cd:constant type="local"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="couleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="revetement"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="memepage">
- <cd:constant type="oui"/>
- <cd:constant type="vide"/>
- <cd:constant type="non"/>
- <cd:constant type="rien"/>
- </cd:parameter>
- <cd:parameter name="referenceinconnue">
- <cd:constant type="oui"/>
- <cd:constant type="vide"/>
- <cd:constant type="non"/>
- <cd:constant type="rien"/>
- </cd:parameter>
- <cd:parameter name="decalagegauche">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rightoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="decalagesup">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="decalageinf">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="position">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:inherit name="regleencadre"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineinteractionmenu" variant="2" file="core-int.tex">
- <cd:sequence>
- <cd:string value="definitmenuinteraction"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="gauche"/>
- <cd:constant type="droite"/>
- <cd:constant type="sup"/>
- <cd:constant type="inf"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="gauche"/>
- <cd:constant type="droite"/>
- <cd:constant type="sup"/>
- <cd:constant type="inf"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="reglemenuinteraction"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="interactionmenu" type="environment">
- <cd:sequence>
- <cd:string value="menuinteraction"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="disableinteractionmenu" file="core-int.tex">
- <cd:sequence>
- <cd:string value="inhibemenuinteraction"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="gauche"/>
- <cd:constant type="droite"/>
- <cd:constant type="sup"/>
- <cd:constant type="inf"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:reference list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="useexternaldocument" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="utilisedocumentexterne"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="fichier"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="useURL" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="utiliseURL"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="fichier"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="coupledocument" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="coupledocument"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="fichier"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="from" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="de"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference interactive="exclusive"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="interactionbar">
- <cd:sequence>
- <cd:string value="barreinteraction"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" list="yes">
- <cd:inherit name="reglebarreinteraction"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="interactionbuttons" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="boutonsinteraction"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" optional="yes" list="yes">
- <cd:inherit name="reglebarreinteraction"/>
- </cd:assignments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupinteractionbar" file="core-int.tex">
- <cd:sequence>
- <cd:string value="reglebarreinteraction"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" list="yes">
- <cd:parameter name="etat">
- <cd:constant type="demarre"/>
- <cd:constant type="stoppe"/>
- </cd:parameter>
- <cd:parameter name="alternative">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- <cd:constant type="d"/>
- <cd:constant type="e"/>
- <cd:constant type="f"/>
- <cd:constant type="g"/>
- </cd:parameter>
- <cd:parameter name="symbole">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="hauteur"/>
- <cd:constant type="adapte"/>
- </cd:parameter>
- <cd:parameter name="hauteur">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="hauteur"/>
- <cd:constant type="adapte"/>
- </cd:parameter>
- <cd:parameter name="profondeur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="couleur">
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ <cd:constant type="tout"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="bookmark" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="marquepage"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="pas">
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="version" type="environment">
+ <cd:sequence>
+ <cd:string value="version"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive" list="yes">
<cd:constant type="cd:number"/>
- <cd:constant type="petit"/>
- <cd:constant type="moyen"/>
- <cd:constant type="grand"/>
- </cd:parameter>
- <cd:inherit name="regleencadre"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="synchronize" file="core-int.tex">
- <cd:sequence>
- <cd:string value="synchronise"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="synchronization" type="environment">
- <cd:sequence>
- <cd:string value="synchronization"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupsynchronizationbar" file="core-int.tex">
- <cd:sequence>
- <cd:string value="reglebarresynchronisation"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" list="yes">
- <cd:parameter name="alternative">
- <cd:constant type="page"/>
- <cd:constant type="local"/>
- </cd:parameter>
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="hauteur"/>
- <cd:constant type="adapte"/>
- </cd:parameter>
- <cd:parameter name="hauteur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="couleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:inherit name="regleencadre"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="synchronizationbar" file="core-int.tex">
- <cd:sequence>
- <cd:string value="barresynchronisation"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="alternative">
- <cd:constant type="page"/>
- <cd:constant type="local"/>
- </cd:parameter>
- <cd:inherit name="reglebarresynchronisation"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupsynchronization" file="core-int.tex">
- <cd:sequence>
- <cd:string value="reglesynchronisation"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" list="yes">
- <cd:parameter name="etat">
- <cd:constant type="demarre"/>
- <cd:constant type="stoppe"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineprofile" file="core-int.tex">
- <cd:sequence>
- <cd:string value="definitprofil"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupprofiles" file="core-int.tex">
- <cd:sequence>
- <cd:string value="regleprofils"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" list="yes">
- <cd:parameter name="option">
- <cd:constant type="test"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="profile" type="environment">
- <cd:sequence>
- <cd:string value="profile"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="followprofile" file="core-int.tex">
- <cd:sequence>
- <cd:string value="suivantprofil"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content interactive="exclusive"/>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placebookmarks" file="core-int.tex">
- <cd:sequence>
- <cd:string value="placemarquespages"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- <cd:constant type="tout"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="bookmark">
- <cd:sequence>
- <cd:string value="marquepage"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="version" type="environment">
- <cd:sequence>
- <cd:string value="version"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive" list="yes">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupversions" file="core-int.tex">
- <cd:sequence>
- <cd:string value="regleversions"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="numero">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupversions" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="regleversions"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="numero">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="markversion" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="marquageversion"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="selectversion" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="selectionneversion"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="defineversion" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="definitversion"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
<cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="markversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="marquageversion"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="selectversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="selectionneversion"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="defineversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="definitversion"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="followversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="suivantversion"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content interactive="exclusive"/>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="followprofileversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="suivantversionprofil"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content interactive="exclusive"/>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineprogram" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="definitprogramme"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupprograms" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="regleprogrammes"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" list="yes">
- <cd:parameter name="repertoire">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="followversion" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="suivantversion"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="exclusive"/>
+ <cd:keywords n="2">
<cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="program" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="programme"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="figure" type="environment">
- <cd:sequence>
- <cd:string value="figure"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="facteur">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="cadre">
- <cd:constant type="actif"/>
- <cd:constant type="desactive"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<!-- referring*figure skipped -->
-
-<!-- marking*figure skipped -->
-
-<!-- remark skipped -->
-
-<cd:command name="goto" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="va"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content interactive="exclusive"/>
- <cd:content interactive="exclusive"/>
- <cd:reference list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="gotobox" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="vaalaboite"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content interactive="exclusive"/>
- <cd:reference list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="button">
- <cd:sequence>
- <cd:string value="bouton"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" optional="yes" list="yes">
- <cd:inherit name="regleboutons"/>
- </cd:assignments>
- <cd:content/>
- <cd:reference list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupbuttons" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="regleboutons"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="etat">
- <cd:constant type="demarre"/>
- <cd:constant type="stoppe"/>
- </cd:parameter>
- <cd:inherit name="regleencadre"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<!-- menubutton skipped -->
-
-<cd:command name="setupcomment" file="core-int.tex">
- <cd:sequence>
- <cd:string value="reglecommentaire"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="etat">
- <cd:constant type="demarre"/>
- <cd:constant type="stoppe"/>
- </cd:parameter>
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hauteur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="couleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="titre">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="followprofileversion" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="suivantversionprofil"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="exclusive"/>
+ <cd:keywords n="2">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="espace">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="symbole">
- <cd:constant type="normal"/>
- <cd:constant type="Nouveau"/>
- <cd:constant type="Ballon"/>
- <cd:constant type="Ajout"/>
- <cd:constant type="Aide"/>
- <cd:constant type="Paragraphe"/>
- <cd:constant type="Cle"/>
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="option">
- <cd:constant type="max"/>
- <cd:constant type="buffer"/>
- </cd:parameter>
- <cd:parameter name="marge">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="comment" type="environment">
- <cd:sequence>
- <cd:string value="commentaire"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="reglecommentaire"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="comment">
- <cd:sequence>
- <cd:string value="commentaire"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="reglecommentaire"/>
- </cd:assignments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definefield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="definitchamp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definesubfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="definitsouschamp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="copyfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="copitchamp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="clonefield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="clonechamp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="field" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="champ"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="fitfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="ajustechamp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="fillinfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="remplitchamp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="tooltip" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="suggestion"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="gauche"/>
- <cd:constant type="droite"/>
- <cd:constant type="milieu"/>
- </cd:keywords>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showfields" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="montrechamps"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="logfields" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="logchamp"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="reglechamp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="etiquette"/>
- <cd:constant type="horizontale"/>
- <cd:constant type="verticale"/>
- <cd:constant type="cadre"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="reglechamps"/>
- </cd:assignments>
- <cd:assignments list="yes">
- </cd:assignments>
- <cd:assignments list="yes">
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfields" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="reglechamps"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="raz"/>
- <cd:constant type="etiquette"/>
- <cd:constant type="horizontale"/>
- <cd:constant type="verticale"/>
- <cd:constant type="cadre"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="entre">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="couleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="alignement">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="option">
- <cd:constant type="lectureseule"/>
- <cd:constant type="recquis"/>
- <cd:constant type="protege"/>
- <cd:constant type="trie"/>
- <cd:constant type="indisponible"/>
- <cd:constant type="cache"/>
- <cd:constant type="editable"/>
- </cd:parameter>
- <cd:parameter name="clicinterieur">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="clicexterieur">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="entreregion">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="regionexterieure">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="aprescle">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="formatter">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="valider">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="calculer">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="offsetchamp">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="couleurcadrechamp">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="couleurarrierreplanchamp">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:inherit name="framed"/>
- </cd:assignments>
- <cd:assignments list="yes">
- </cd:assignments>
- <cd:assignments list="yes">
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupforms" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="regleformulaires"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="methode">
- <cd:constant type="HTML"/>
- <cd:constant type="FDF"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definefieldstack" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="definitpilechamp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="reglechamps"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="fieldstack" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="pilechamp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="reglechamps"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="clip" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="clip"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="regleclipping"/>
- </cd:assignments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupclipping" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="regleclipping"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="nx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ny">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="x">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="y">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hauteur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="decalagehauteur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="voffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="mp">
+ </cd:keywords>
+ <cd:keywords n="3">
<cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placelegend">
- <cd:sequence>
- <cd:string value="placelegende"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuplegend">
- <cd:sequence>
- <cd:string value="reglelegende"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="entre">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hauteur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="emplacement">
- <cd:constant type="droite"/>
- <cd:constant type="inf"/>
- </cd:parameter>
- <cd:parameter name="policecorps">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="petit"/>
- <cd:constant type="grand"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definerule">
- <cd:sequence>
- <cd:string value="definitregle"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="regleregle"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placerule">
- <cd:sequence>
- <cd:string value="placeregle"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuprule">
- <cd:sequence>
- <cd:string value="regleregle"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="profondeur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hauteur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="espaceavant">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="espaceapres">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="couleur">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineprogram" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="definitprogramme"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
<cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definetextvariable">
- <cd:sequence>
- <cd:string value="definitvariabletexte"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:inherit name="reglevariabletexte"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptextvariable">
- <cd:sequence>
- <cd:string value="reglevariabletexte"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="gauche">
+ </cd:keywords>
+ <cd:keywords n="2">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="droite">
+ </cd:keywords>
+ <cd:keywords n="3">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="commande">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="oui"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupprograms" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="regleprogrammes"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:parameter name="repertoire">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="program" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="programme"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="figure" type="environment">
+ <cd:sequence>
+ <cd:string value="figure"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:parameter name="facteur">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="cadre">
+ <cd:constant type="actif"/>
+ <cd:constant type="desactive"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <!-- referring*figure skipped -->
+
+ <!-- marking*figure skipped -->
+
+ <!-- remark skipped -->
+
+ <cd:command name="goto" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="va"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="exclusive"/>
+ <cd:content n="2" interactive="exclusive"/>
+ <cd:reference n="3" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="gotobox" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="vaalaboite"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="exclusive"/>
+ <cd:reference n="2" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="button" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="bouton"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" optional="yes" list="yes">
+ <cd:inherit name="regleboutons" n="1"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ <cd:reference n="3" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbuttons" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="regleboutons"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="etat">
+ <cd:constant type="demarre"/>
+ <cd:constant type="stoppe"/>
+ </cd:parameter>
+ <cd:inherit name="regleencadre" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <!-- menubutton skipped -->
+
+ <cd:command name="setupcomment" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="reglecommentaire"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="etat">
+ <cd:constant type="demarre"/>
+ <cd:constant type="stoppe"/>
+ </cd:parameter>
+ <cd:parameter name="largeur">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="hauteur">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="couleur">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="titre">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="espace">
+ <cd:constant type="oui"/>
+ <cd:constant type="non"/>
+ </cd:parameter>
+ <cd:parameter name="symbole">
+ <cd:constant type="normal"/>
+ <cd:constant type="Nouveau"/>
+ <cd:constant type="Ballon"/>
+ <cd:constant type="Ajout"/>
+ <cd:constant type="Aide"/>
+ <cd:constant type="Paragraphe"/>
+ <cd:constant type="Cle"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="option">
+ <cd:constant type="max"/>
+ <cd:constant type="buffer"/>
+ </cd:parameter>
+ <cd:parameter name="marge">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="comment" type="environment">
+ <cd:sequence>
+ <cd:string value="commentaire"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="reglecommentaire" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="comment">
+ <cd:sequence>
+ <cd:string value="commentaire"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="reglecommentaire" n="1"/>
+ </cd:assignments>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefield" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="definitchamp"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1"> <!-- name -->
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2"> <!-- type -->
+ <cd:constant type="texte"/>
+ <cd:constant type="ligne"/> <!-- equal to text -->
+ <cd:constant type="push"/>
+ <cd:constant type="check"/>
+ <cd:constant type="radio"/>
+ <cd:constant type="combo"/>
+ <cd:constant type="choice"/> <!-- equal to combo -->
+ <cd:constant type="popup"/> <!-- equal to combo -->
+ </cd:keywords>
+ <cd:keywords n="3"> <!-- group -->
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="4" list="yes"> <!-- optional for text? -->
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="5" optional="yes"> <!-- default -->
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definesubfield" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="definitsouschamp"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="3" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="copyfield" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="copitchamp"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="clonefield" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="clonechamp"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="4" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="field" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="champ"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fitfield" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="ajustechamp"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fillinfield" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="remplitchamp"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tooltip" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="suggestion"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="gauche"/>
+ <cd:constant type="droite"/>
+ <cd:constant type="milieu"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showfields" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="montrechamps"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="logfields" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="logchamp"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupfield" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="reglechamp"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="etiquette"/>
+ <cd:constant type="horizontale"/>
+ <cd:constant type="verticale"/>
+ <cd:constant type="cadre"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:inherit name="reglechamps" n="2"/>
+ </cd:assignments>
+ <cd:assignments n="4" list="yes"> </cd:assignments>
+ <cd:assignments n="5" list="yes"> </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfields" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="reglechamps"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes"> <!-- TODO: if it's reset, only a single argument, no list -->
+ <cd:constant type="raz"/>
+ <cd:constant type="etiquette"/>
+ <cd:constant type="horizontale"/>
+ <cd:constant type="verticale"/>
+ <cd:constant type="cadre"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="avant">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="apres">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="entre">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="couleur">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="alignement">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="option">
+ <cd:constant type="lectureseule"/>
+ <cd:constant type="recquis"/>
+ <cd:constant type="protege"/>
+ <cd:constant type="trie"/>
+ <cd:constant type="indisponible"/>
+ <cd:constant type="cache"/>
+ <cd:constant type="editable"/>
+ </cd:parameter>
+ <cd:parameter name="clicinterieur">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="clicexterieur">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="entreregion">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="regionexterieure">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="aprescle">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="formatter">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="valider">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="calculer">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="offsetchamp">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="couleurcadrechamp">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="couleurarrierreplanchamp">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:inherit name="regleencadre" n="2"/>
+ </cd:assignments>
+ <cd:assignments n="3" list="yes">
+ <cd:inherit name="reglechamps" n="2"/>
+ </cd:assignments>
+ <cd:assignments n="4" list="yes">
+ <cd:inherit name="reglechamps" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupforms" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="regleformulaires"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="methode">
+ <cd:constant type="HTML"/>
+ <cd:constant type="FDF"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefieldstack" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="definitpilechamp"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:inherit name="reglechamps" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fieldstack" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="pilechamp"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="reglechamps" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="clip" file="core-trf.tex">
+ <cd:sequence>
+ <cd:string value="clip"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="regleclipping" n="1"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupclipping" file="core-trf.tex">
+ <cd:sequence>
+ <cd:string value="regleclipping"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="etat">
+ <cd:constant type="demarre"/>
+ <cd:constant type="stoppe"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number" default="1"/>
+ </cd:parameter>
+ <cd:parameter name="nx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ny">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="x">
+ <cd:constant type="cd:number" default="1"/>
+ </cd:parameter>
+ <cd:parameter name="y">
+ <cd:constant type="cd:number" default="1"/>
+ </cd:parameter>
+ <cd:parameter name="sx">
+ <cd:constant type="cd:number" default="1"/>
+ </cd:parameter>
+ <cd:parameter name="sy">
+ <cd:constant type="cd:number" default="1"/>
+ </cd:parameter>
+ <cd:parameter name="largeur">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="hauteur">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="decalagehauteur">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="voffset">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="offset">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="decalagegauche">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="rightoffset">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="decalagesup">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="decalageinf">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="mp">
+ <cd:constant type="cd:name" default=""/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placelegend">
+ <cd:sequence>
+ <cd:string value="placelegende"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplegend">
+ <cd:sequence>
+ <cd:string value="reglelegende"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="entre">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="largeur">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="hauteur">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="emplacement">
+ <cd:constant type="droite"/>
+ <cd:constant type="inf"/>
+ </cd:parameter>
+ <cd:parameter name="policecorps">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupstrut" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="reglestrut"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="oui" default="yes"/>
<cd:constant type="non"/>
<cd:constant type="cap"/>
<cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="settextvariable">
- <cd:sequence>
- <cd:string value="affectevariabletexte"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placetextvariable">
- <cd:sequence>
- <cd:string value="placevariabletexte"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="textvariable">
- <cd:sequence>
- <cd:string value="variabletexte"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definerawfont">
- <cd:sequence>
- <cd:string value="definitpolicebrute"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="regleespacementinterligne"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="switchtorawfont">
- <cd:sequence>
- <cd:string value="changepolicebrute"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definetextposition">
- <cd:sequence>
- <cd:string value="definitpositiontexte"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="reglepositionnement"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptextposition">
- <cd:sequence>
- <cd:string value="reglepositiontexte"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="reglepositionnement"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="positiontext">
- <cd:sequence>
- <cd:string value="positionnetexte"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupstrut" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="reglestrut"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="oui" default="yes"/>
- <cd:constant type="non"/>
- <cd:constant type="cap"/>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usetypescriptfile" file="type-ini.tex">
+ <cd:sequence>
+ <cd:string value="usetypescriptfile"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usetypescript" file="type-ini.tex">
+ <cd:sequence>
+ <cd:string value="usetypescript"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definetypeface" file="type-ini.tex">
+ <cd:sequence>
+ <cd:string value="definetypeface"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="rm"/>
+ <cd:constant type="ss"/>
+ <cd:constant type="tt"/>
+ <cd:constant type="mm"/>
+ <cd:constant type="hw"/>
+ <cd:constant type="cg"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="4">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="5" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="6" optional="yes">
+ <cd:parameter name="features">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="rscale">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="encoding">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="texte">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefontfeature" file="type-ini.tex">
+ <cd:sequence>
+ <cd:string value="definefontfeature"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="no">
+ <cd:parameter name="compose">
+ <cd:constant type="non" default="yes"/>
+ <cd:constant type="oui"/>
+ </cd:parameter>
+ <cd:parameter name="mode">
+ <cd:constant type="node"/>
+ <cd:constant type="base" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="tlig">
+ <cd:constant type="non" default="yes"/>
+ <cd:constant type="oui"/>
+ </cd:parameter>
+ <cd:parameter name="trep">
+ <cd:constant type="non" default="yes"/>
+ <cd:constant type="oui"/>
+ </cd:parameter>
+ <cd:parameter name="script">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="language">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="..tag.."> <!-- can't use &gt; here, \showsetup gives an error -->
+ <cd:constant type="non" default="yes"/>
+ <cd:constant type="oui"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefonthandling" file="hand-ini.mkii">
+ <cd:sequence>
+ <cd:string value="definefonthandling"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:name" list="yes"/>
+ </cd:keywords>
+ <cd:assignments n="3">
+ <cd:parameter name="type">
+ <cd:constant type="suspend" default="yes"/>
+ <cd:constant type="hz"/>
+ <cd:constant type="espacement"/>
+ <cd:constant type="tag"/>
+ </cd:parameter>
+ <cd:parameter name="droite">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="gauche">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="facteur">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="min">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="max">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="pas">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfonthandling" file="hand-ini.mkii">
+ <cd:sequence>
+ <cd:string value="setupfonthandling"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2">
+ <cd:inherit name="definefonthandling" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefontsynonym" file="font-ini.tex">
+ <cd:sequence>
+ <cd:string value="definitsynonymepolice"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes">
+ <cd:parameter name="encoding">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="features">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="handling">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="mapping">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfontsynonym" file="font-ini.tex">
+ <cd:sequence>
+ <cd:string value="setupfontsynonym"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2">
+ <cd:inherit name="definitsynonymepolice" n="3"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mapfontsize" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="mapfontsize"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definedfont" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="definedfont"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:inherit name="definitpolice" n="2"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
</cd:interface>
-
diff --git a/Master/texmf-dist/tex/context/interface/cont-it.xml b/Master/texmf-dist/tex/context/interface/cont-it.xml
index 15e4144cb25..8064a3294a6 100644
--- a/Master/texmf-dist/tex/context/interface/cont-it.xml
+++ b/Master/texmf-dist/tex/context/interface/cont-it.xml
@@ -1,6 +1,4 @@
-<?xml version="1.0" standalone="yes"?>
-
-<!-- versions:
+<?xml version="1.0" encoding="UTF-8"?><!-- versions:
comment : user interface definitions of ConTeXt
@@ -10,10 +8,9 @@
2006.08.02 : define + resolve
-->
-
<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="it" version="2006.08.02">
-<cd:define name="align">
+ <cd:define name="align">
<cd:constant type="interno"/>
<cd:constant type="esterno"/>
<cd:constant type="sinistra"/>
@@ -25,9 +22,18 @@
<cd:constant type="normale"/>
<cd:constant type="no"/>
<cd:constant type="si"/>
-</cd:define>
+ </cd:define>
+
+ <cd:define name="symalign">
+ <cd:constant type="sinistra"/>
+ <cd:constant type="destra"/>
+ <cd:constant type="flushleft"/>
+ <cd:constant type="flushright"/>
+ <cd:constant type="centro"/>
+ <cd:constant type="center"/>
+ </cd:define>
-<cd:define name="indenting">
+ <cd:define name="indenting">
<cd:constant type="mai"/>
<cd:constant type="nessuno"/>
<cd:constant type="non"/>
@@ -43,14 +49,14 @@
<cd:constant type="dispari"/>
<cd:constant type="pari"/>
<cd:constant type="cd:dimension"/>
-</cd:define>
+ </cd:define>
-<cd:define name="indentnext">
+ <cd:define name="indentnext">
<cd:constant type="si"/>
<cd:constant type="no"/>
-</cd:define>
+ </cd:define>
-<cd:define name="style">
+ <cd:define name="style">
<cd:constant type="normale"/>
<cd:constant type="grassetto"/>
<cd:constant type="inclinato"/>
@@ -59,9 +65,9 @@
<cd:constant type="cap"/>
<cd:constant type="small..."/>
<cd:constant type="cd:command"/>
-</cd:define>
+ </cd:define>
-<cd:define name="language">
+ <cd:define name="language">
<cd:constant type="nl"/>
<cd:constant type="fr"/>
<cd:constant type="en"/>
@@ -70,9961 +76,10164 @@
<cd:constant type="es"/>
<cd:constant type="cz"/>
<cd:constant type=".."/>
-</cd:define>
+ </cd:define>
-<cd:define name="texts">
+ <cd:define name="texts">
<cd:constant type="cd:text"/>
<cd:constant type="cd:section"/>
<cd:constant type="data"/>
<cd:constant type="cd:mark"/>
<cd:constant type="numeropagina"/>
-</cd:define>
+ </cd:define>
-<cd:define name="layout-h">
+ <cd:define name="layout-h">
<cd:constant type="testo" default="yes"/>
<cd:constant type="margine"/>
<cd:constant type="bordo"/>
-</cd:define>
+ </cd:define>
-<cd:define name="layout-v">
+ <cd:define name="layout-v">
<cd:constant type="cima"/>
<cd:constant type="intestazione"/>
<cd:constant type="testo" default="yes"/>
<cd:constant type="piedipagina"/>
<cd:constant type="fondo"/>
-</cd:define>
+ </cd:define>
-<cd:command name="installlanguage" file="lang-ini.tex">
- <cd:sequence>
- <cd:string value="installalingua"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="spaziatura">
- <cd:constant type="impaccato"/>
- <cd:constant type="ampio"/>
- </cd:parameter>
- <cd:parameter name="lefthyphenmin">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="righthyphenmin">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stato">
- <cd:constant type="inizia"/>
- <cd:constant type="termina"/>
- </cd:parameter>
- <cd:parameter name="frasesinistra">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="frasedestra">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="sottofrasesinistra">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="sottofrasedestra">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="menzionesinistra">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="menzionedestra">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="citazionesinistra">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="citazionedestra">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="implicito">
+ <cd:define name="bodyfont">
+ <cd:constant type="5pt"/>
+ <cd:constant type="..."/>
+ <cd:constant type="12pt"/>
+ <cd:constant type="piccolo"/>
+ <cd:constant type="grande"/>
+ </cd:define>
+
+ <cd:command name="installlanguage" file="lang-ini.tex" category="language">
+ <cd:sequence>
+ <cd:string value="installalingua"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuplanguage" file="lang-ini.tex">
- <cd:sequence>
- <cd:string value="impostalingua"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:resolve name="language"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="installalingua"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="language">
- <cd:sequence>
- <cd:string value="lingua"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:resolve name="language"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="mainlanguage" file="lang-ini.tex">
- <cd:sequence>
- <cd:string value="linguaprincipale"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:resolve name="language"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="translate" file="lang-lab.tex">
- <cd:sequence>
- <cd:string value="traduci"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="cd:name">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="useencoding" file="enco-ini.tex">
- <cd:sequence>
- <cd:string value="usacodifica"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="usespecials" file="spec-ini.tex">
- <cd:sequence>
- <cd:string value="usaspecialita"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="reimposta"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineoutput" file="spec-ini.tex">
- <cd:sequence>
- <cd:string value="definiscioutput"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupoutput" file="spec-ini.tex">
- <cd:sequence>
- <cd:string value="impostaoutput"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definebodyfontenvironment" file="font-ini.tex">
- <cd:sequence>
- <cd:string value="definisciambientefontdeltesto"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="implicito"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="testo">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="script">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="scriptscript">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="x">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="xx">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="piccolo">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="grande">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupbodyfontenvironment" file="font-ini.tex">
- <cd:sequence>
- <cd:string value="impostaambientefontdeltesto"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:inherit name="impostafontdeltesto"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="impostafontdeltesto"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showbodyfontenvironment">
- <cd:sequence>
- <cd:string value="mostraambientefontdeltesto"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:inherit name="impostafontdeltesto"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definebodyfont" file="font-ini.tex">
- <cd:sequence>
- <cd:string value="definiscifontdeltesto"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="implicito"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="rm"/>
- <cd:constant type="ss"/>
- <cd:constant type="tt"/>
- <cd:constant type="mm"/>
- <cd:constant type="hw"/>
- <cd:constant type="cg"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="tf">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="bf">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="sl">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="it">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="bs">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="bi">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="sc">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="ex">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="mi">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="sy">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="ma">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="mb">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="mc">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showbodyfont">
- <cd:sequence>
- <cd:string value="mostrafontdeltesto"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:inherit name="impostafontdeltesto"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupbodyfont">
- <cd:sequence>
- <cd:string value="impostafontdeltesto"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- <cd:constant type="serif"/>
- <cd:constant type="regolare"/>
- <cd:constant type="roman"/>
- <cd:constant type="sans"/>
- <cd:constant type="supporto"/>
- <cd:constant type="sansserif"/>
- <cd:constant type="mono"/>
- <cd:constant type="type"/>
- <cd:constant type="teletype"/>
- <cd:constant type="grafiamanuale"/>
- <cd:constant type="calligrafico"/>
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="switchtobodyfont" file="font-ini.tex">
- <cd:sequence>
- <cd:string value="cambiaafontdeltesto"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="piccolo"/>
- <cd:constant type="grande"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definefont" file="font-ini.tex">
- <cd:sequence>
- <cd:string value="definiscifont"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:file"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupcolor" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="impostacolore"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupcolors" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="impostacolori"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="stato">
- <cd:constant type="inizia"/>
- <cd:constant type="termina"/>
- <cd:constant type="globale"/>
- <cd:constant type="locale"/>
- </cd:parameter>
- <cd:parameter name="conversione">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- <cd:constant type="sempre"/>
- </cd:parameter>
- <cd:parameter name="riduzione">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="rgb">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="cmyk">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="mpcmyk">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="mpspot">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="coloretesto">
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="spaziatura">
+ <cd:constant type="impaccato" default="yes"/>
+ <cd:constant type="ampio"/>
+ </cd:parameter>
+ <cd:parameter name="lefthyphenmin">
+ <cd:constant type="cd:number" default="2"/>
+ </cd:parameter>
+ <cd:parameter name="righthyphenmin">
+ <cd:constant type="cd:number" default="2"/>
+ </cd:parameter>
+ <cd:parameter name="stato">
+ <cd:constant type="inizia"/>
+ <cd:constant type="termina"/>
+ </cd:parameter>
+ <cd:parameter name="frasesinistra">
+ <cd:constant type="cd:command" default="---"/>
+ </cd:parameter>
+ <cd:parameter name="frasedestra">
+ <cd:constant type="cd:command" default="---"/>
+ </cd:parameter>
+ <cd:parameter name="sottofrasesinistra">
+ <cd:constant type="cd:command" default="---"/>
+ </cd:parameter>
+ <cd:parameter name="sottofrasedestra">
+ <cd:constant type="cd:command" default="---"/>
+ </cd:parameter>
+ <cd:parameter name="menzionesinistra">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="menzionedestra">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="citazionesinistra">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="citazionedestra">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="leftspeech">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="middlespeech">
+ <cd:constant type="cd:command" default=""/>
+ </cd:parameter>
+ <cd:parameter name="rightspeech">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="limittext">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="data">
+ <cd:constant type="cd:text"/> <!-- TODO -->
+ </cd:parameter>
+ <cd:parameter name="compoundhyphen">
+ <cd:constant type="cd:command" default="\compoundhyphen"/>
+ </cd:parameter>
+ <cd:parameter name="leftcompoundhyphen">
+ <cd:constant type="cd:command" default="\compoundhyphen"/>
+ </cd:parameter>
+ <cd:parameter name="rightcompoundhyphen">
+ <cd:constant type="cd:command" default=""/>
+ </cd:parameter>
+ <cd:parameter name="implicito">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplanguage" file="lang-ini.tex" category="language">
+ <cd:sequence>
+ <cd:string value="impostalingua"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:resolve name="language"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="installalingua" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="language" file="lang-ini.tex" category="language">
+ <cd:sequence>
+ <cd:string value="lingua"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:resolve name="language"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mainlanguage" file="lang-ini.tex" category="language">
+ <cd:sequence>
+ <cd:string value="linguaprincipale"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:resolve name="language"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="translate" file="lang-lab.tex" category="language">
+ <cd:sequence>
+ <cd:string value="traduci"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="cd:name">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useencoding" file="enco-ini.tex" category="encoding"> <!-- engine="pdftex" -->
+ <cd:sequence>
+ <cd:string value="usacodifica"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="separa">
- <cd:constant type="c"/>
- <cd:constant type="m"/>
- <cd:constant type="y"/>
- <cd:constant type="k"/>
- <cd:constant type="p"/>
- <cd:constant type="s"/>
- <cd:constant type="no"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usespecials" file="spec-ini.tex">
+ <cd:sequence>
+ <cd:string value="usaspecialita"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="reimposta"/>
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="criterio">
- <cd:constant type="tutti"/>
- <cd:constant type="nessuno"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definecolor" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="definiscicolore"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="r">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="g">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="b">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="c">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="m">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="y">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="k">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="s">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="h">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="t">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="a">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="p">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="e">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="color" type="environment" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="colore"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="color" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="colore"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="graycolor" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="coloregrigio"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showcolor">
- <cd:sequence>
- <cd:string value="mostracolore"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definepalet" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="definiscitavolozza"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="cd:name">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuppalet" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="impostatavolozza"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definecolorgroup" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="definiscigruppocolori"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="rgb" default="yes"/>
- <cd:constant type="cmyk"/>
- <cd:constant type="grigio"/>
- <cd:constant type="s"/>
- </cd:keywords>
- <cd:triplet list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showpalet">
- <cd:sequence>
- <cd:string value="mostratavolozza"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="orizzontale"/>
- <cd:constant type="verticale"/>
- <cd:constant type="nome"/>
- <cd:constant type="valore"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showcolorgroup">
- <cd:sequence>
- <cd:string value="mostragruppocolori"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="orizzontale"/>
- <cd:constant type="verticale"/>
- <cd:constant type="nome"/>
- <cd:constant type="valore"/>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="comparepalet">
- <cd:sequence>
- <cd:string value="confrontatavolozza"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="comparecolorgroup">
- <cd:sequence>
- <cd:string value="confrontagruppocolori"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showmakeup" file="supp-vis.tex">
- <cd:sequence>
- <cd:string value="mostramakeup"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="definetype" file="core-ver.tex">
- <cd:sequence>
- <cd:string value="definiscitype"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="impostatype"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptype" file="core-ver.tex">
- <cd:sequence>
- <cd:string value="impostatype"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="spazio">
- <cd:constant type="attivo"/>
- <cd:constant type="disattivo"/>
- </cd:parameter>
- <cd:parameter name="opzione">
- <cd:constant type="inclinato"/>
- <cd:constant type="normale"/>
- <cd:constant type="nessuno"/>
- </cd:parameter>
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="colore">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="type" file="verb-ini.tex">
- <cd:sequence>
- <cd:string value="type"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="typ" file="core-ver.tex">
- <cd:sequence>
- <cd:string value="typ"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="tex" file="core-ver.tex">
- <cd:sequence>
- <cd:string value="tex"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="arg" file="core-ver.tex">
- <cd:sequence>
- <cd:string value="arg"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definetyping" file="core-ver.tex">
- <cd:sequence>
- <cd:string value="definiscityping"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="file"/>
- <cd:constant type="typing"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="impostatyping"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptyping" file="core-ver.tex">
- <cd:sequence>
- <cd:string value="impostatyping"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="file"/>
- <cd:constant type="typing"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="spazio">
- <cd:constant type="attivo"/>
- <cd:constant type="disattivo"/>
- </cd:parameter>
- <cd:parameter name="pagina">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="opzione">
- <cd:constant type="inclinato"/>
- <cd:constant type="normale"/>
- <cd:constant type="comandi"/>
- <cd:constant type="colore"/>
- <cd:constant type="nessuno"/>
- </cd:parameter>
- <cd:parameter name="testo">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="icomando">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="vcomando">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="ccomando">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="margine">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="standard"/>
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="marginepari">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="marginedispari">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rigovuoto">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="piccolo"/>
- <cd:constant type="medio"/>
- <cd:constant type="grande"/>
- <cd:constant type="standard"/>
- <cd:constant type="mezzariga"/>
- <cd:constant type="riga"/>
- </cd:parameter>
- <cd:parameter name="escape">
- <cd:constant type="cd:character"/>
- </cd:parameter>
- <cd:parameter name="spazio">
- <cd:constant type="attivo"/>
- <cd:constant type="disattivo"/>
- </cd:parameter>
- <cd:parameter name="tab">
- <cd:constant type="cd:number"/>
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="pagina">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="rientrasuccessivo">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="colore">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="tavolozza">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="righe">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- <cd:constant type="sillabato"/>
- </cd:parameter>
- <cd:parameter name="vuoto">
- <cd:constant type="si"/>
- <cd:constant type="tutti"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="numerazione">
- <cd:constant type="riga"/>
- <cd:constant type="file"/>
- <cd:constant type="no"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="typing" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="typing"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="typefile" file="verb-ini.tex">
- <cd:sequence>
- <cd:string value="typefile"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfootnotes" file="core-not.tex">
- <cd:sequence>
- <cd:string value="impostanotepdp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="conversione">
- <cd:constant type="numeri"/>
- <cd:constant type="lettere"/>
- <cd:constant type="Lettere"/>
- <cd:constant type="numeriromani"/>
- <cd:constant type="Numeriromani"/>
- </cd:parameter>
- <cd:parameter name="modo">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="luogo">
- <cd:constant type="pagina"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="colonne"/>
- <cd:constant type="firstcolumn"/>
- <cd:constant type="lastcolumn"/>
- <cd:constant type="alto"/>
- <cd:constant type="nessuno"/>
- </cd:parameter>
- <cd:parameter name="linea">
- <cd:constant type="attivo"/>
- <cd:constant type="disattivo"/>
- </cd:parameter>
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="altezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="fonttesto">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="piccolo"/>
- <cd:constant type="grande"/>
- </cd:parameter>
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="distanza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanzacolonne">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanzamargine">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="comandonumero">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="comandotesto">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="separa">
- <cd:constant type="tollerante"/>
- <cd:constant type="rigido"/>
- <cd:constant type="moltorigido"/>
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="stiletesto">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="coloretesto">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="interazione">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="fattore">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:inherit name="incorniciato"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfootnotedefinition" file="core-not.tex">
- <cd:sequence>
- <cd:string value="impostadefinizionenotepdp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:inherit name="definiscidescrizione"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="footnote" file="core-not.tex">
- <cd:sequence>
- <cd:string value="notapdp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="footnotetext" file="core-not.tex">
- <cd:sequence>
- <cd:string value="testonotapdp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="note" file="core-not.tex">
- <cd:sequence>
- <cd:string value="nota"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference interactive="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="localfootnotes" type="environment">
- <cd:sequence>
- <cd:string value="localfootnotes"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="placelocalfootnotes" file="core-not.tex">
- <cd:sequence>
- <cd:string value="mettinotepdplocali"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="impostanotepdp"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placefootnotes" file="core-not.tex">
- <cd:sequence>
- <cd:string value="mettinotepdp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="impostanotepdp"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupunderbar" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="impostasottolinea"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="alternativa">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- </cd:parameter>
- <cd:parameter name="spessorelinea">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offsetfondo">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offsetcima">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="colorelinea">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineoutput" file="spec-ini.tex">
+ <cd:sequence>
+ <cd:string value="definiscioutput"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="underbar" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="sottolinea"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="underbars" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="sottolinee"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="overbar" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="sopralinea"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="overbars" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="sopralinee"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="overstrike" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="sbarrato"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="overstrikes" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="sbarrati"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="romannumerals" file="core-con.tex">
- <cd:sequence>
- <cd:string value="numeriromani"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="Romannumerals" file="core-con.tex">
- <cd:sequence>
- <cd:string value="Numeriromani"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="numbers" file="core-con.tex">
- <cd:sequence>
- <cd:string value="numeri"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="character" file="core-con.tex">
- <cd:sequence>
- <cd:string value="lettera"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="Character" file="core-con.tex">
- <cd:sequence>
- <cd:string value="Lettera"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="characters" file="core-con.tex">
- <cd:sequence>
- <cd:string value="lettere"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="Characters" file="core-con.tex">
- <cd:sequence>
- <cd:string value="Lettere"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="mediaeval" file="core-con.tex">
- <cd:sequence>
- <cd:string value="mediaeval"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="month" file="core-con.tex">
- <cd:sequence>
- <cd:string value="mese"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="MONTH" file="core-con.tex">
- <cd:sequence>
- <cd:string value="MESE"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="weekday" file="core-con.tex">
- <cd:sequence>
- <cd:string value="giornosettimana"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="WEEKDAY" file="core-con.tex">
- <cd:sequence>
- <cd:string value="GIORNOSETTIMANA"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupcapitals" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="impostamaiuscole"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="titolo">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="sc">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="cap" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="cap"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="nocap">
- <cd:sequence>
- <cd:string value="nocap"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="CAP">
- <cd:sequence>
- <cd:string value="CAP"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="Cap">
- <cd:sequence>
- <cd:string value="Cap"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="Caps">
- <cd:sequence>
- <cd:string value="Caps"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="WORD" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="PAROLA"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="WORDS" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="PAROLE"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="Word" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="Parola"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="Words" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="Parole"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="stretched" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="stirato"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definesymbol" file="symb-ini.tex">
- <cd:sequence>
- <cd:string value="definiscisimbolo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definefiguresymbol" file="symb-ini.tex">
- <cd:sequence>
- <cd:string value="definiscifigurasimbolo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="figuraesterna"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="symbol" file="symb-ini.tex">
- <cd:sequence>
- <cd:string value="simbolo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="symbolset" type="environment">
- <cd:sequence>
- <cd:string value="symbolset"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupsymbolset" file="symb-ini.tex">
- <cd:sequence>
- <cd:string value="impostasetsimboli"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="usesymbols" file="symb-ini.tex">
- <cd:sequence>
- <cd:string value="usasimboli"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showsymbolset">
- <cd:sequence>
- <cd:string value="mostrasetsimboli"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineconversion" file="core-con.tex">
- <cd:sequence>
- <cd:string value="definisciconversione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:command"/>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="convertnumber" file="core-con.tex">
- <cd:sequence>
- <cd:string value="convertinumero"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupheadtext" file="lang-lab.tex">
- <cd:sequence>
- <cd:string value="impostatestointestazioni"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:resolve name="language"/>
- </cd:keywords>
- <cd:assignments>
- <cd:parameter name="cd:name">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuplabeltext" file="lang-lab.tex">
- <cd:sequence>
- <cd:string value="impostatestoetichette"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:resolve name="language"/>
- </cd:keywords>
- <cd:assignments>
- <cd:parameter name="cd:name">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="headtext" file="lang-lab.tex">
- <cd:sequence>
- <cd:string value="testoinstestazioni"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="labeltext">
- <cd:sequence>
- <cd:string value="testoetichetta"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupmarginrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="impostalineemargine"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments>
- <cd:parameter name="livello">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="spessorelinea">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="marginrule" type="environment">
- <cd:sequence>
- <cd:string value="lineamargine"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="marginrule">
- <cd:sequence>
- <cd:string value="lineamargine"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuplinewidth" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="impostaampiezzariga"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupframed" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="impostaincorniciato"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="altezza">
- <cd:constant type="adatta"/>
- <cd:constant type="ampio"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="adatta"/>
- <cd:constant type="ampio"/>
- <cd:constant type="fisso"/>
- <cd:constant type="locale"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="autoampiezza">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- <cd:constant type="forza"/>
- </cd:parameter>
- <cd:parameter name="offset">
- <cd:constant type="nessuno"/>
- <cd:constant type="sovrapponi"/>
- <cd:constant type="implicito"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="luogo">
- <cd:constant type="profondita"/>
- <cd:constant type="sospeso"/>
- <cd:constant type="alto"/>
- <cd:constant type="pedap"/>
- <cd:constant type="basso"/>
- <cd:constant type="cima"/>
- <cd:constant type="centro"/>
- <cd:constant type="fondo"/>
- <cd:constant type="mantieni"/>
- </cd:parameter>
- <cd:parameter name="opzione">
- <cd:constant type="nessuno"/>
- <cd:constant type="vuoto"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- <cd:constant type="globale"/>
- <cd:constant type="locale"/>
- </cd:parameter>
- <cd:parameter name="allinea">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="fondo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="cima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="cornice">
- <cd:constant type="attivo"/>
- <cd:constant type="disattivo"/>
- <cd:constant type="nessuno"/>
- <cd:constant type="sovrapponi"/>
- </cd:parameter>
- <cd:parameter name="cornicecima">
- <cd:constant type="attivo"/>
- <cd:constant type="disattivo"/>
- </cd:parameter>
- <cd:parameter name="cornicefondo">
- <cd:constant type="attivo"/>
- <cd:constant type="disattivo"/>
- </cd:parameter>
- <cd:parameter name="cornicesinistra">
- <cd:constant type="attivo"/>
- <cd:constant type="disattivo"/>
- </cd:parameter>
- <cd:parameter name="cornicedestra">
- <cd:constant type="attivo"/>
- <cd:constant type="disattivo"/>
- </cd:parameter>
- <cd:parameter name="offsetcornice">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="profonditacornice">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="angolocornice">
- <cd:constant type="rotondo"/>
- <cd:constant type="rettangolare"/>
- </cd:parameter>
- <cd:parameter name="raggiocornice">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="colorecornice">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="sfondo">
- <cd:constant type="schermo"/>
- <cd:constant type="colore"/>
- <cd:constant type="nessuno"/>
- <cd:constant type="foreground"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="schermosfondo">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="coloresfondo">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupoutput" file="spec-ini.tex">
+ <cd:sequence>
+ <cd:string value="impostaoutput"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="offsetsfondo">
- <cd:constant type="cornice"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="profonditasfondo">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="angolosfondo">
- <cd:constant type="rotondo"/>
- <cd:constant type="rettangolare"/>
- </cd:parameter>
- <cd:parameter name="raggiosfondo">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="profondita">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="angolo">
- <cd:constant type="rotondo"/>
- <cd:constant type="rettangolare"/>
- </cd:parameter>
- <cd:parameter name="raggio">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vuoto">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="coloreprimopiano">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="foregroundstyle">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="spessorelinea">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="framed" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="incorniciato"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="impostaincorniciato"/>
- </cd:assignments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="inframed" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="circondato"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="impostaincorniciato"/>
- </cd:assignments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="thinrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="lineesottili"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes">
- <cd:inherit name="impostalineesottili"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupthinrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="impostalineesottili"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments>
- <cd:parameter name="interlinea">
- <cd:constant type="piccolo"/>
- <cd:constant type="medio"/>
- <cd:constant type="grande"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="tra">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="colore">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definebodyfontenvironment" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="definisciambientefontdeltesto"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes"> <!-- it's possible to use 1+2+3, 2+3, what about 1+2? -->
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="coloresfondo">
+ </cd:keywords>
+ <cd:keywords n="2" optional="no"> <!-- have to force no, otherwise \showsetup is wrong ! -->
+ <cd:constant type="5pt"/> <!-- TODO: maybe <cd:resolve name="bodyfont"/> -->
+ <cd:constant type="..."/>
+ <cd:constant type="12pt"/>
+ <cd:constant type="implicito"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:parameter name="testo">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="script">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="scriptscript">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="x">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="xx">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="a">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="b">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="c">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="d">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="piccolo">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="grande">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="interlinea">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="em">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbodyfontenvironment" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="impostaambientefontdeltesto"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes"> <!-- same as definebodyfontenvironment; you can define the whole commant to inherit, not only parameters-->
+ <cd:inherit name="definisciambientefontdeltesto" n="1"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="no">
+ <cd:inherit name="definisciambientefontdeltesto" n="2" optional="no"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="definisciambientefontdeltesto" n="3"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showbodyfontenvironment" file="font-run.tex" category="fonts"> <!-- and debug -->
+ <cd:sequence>
+ <cd:string value="mostraambientefontdeltesto"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:inherit name="impostafontdeltesto" n="1"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definebodyfont" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="definiscifontdeltesto"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes"> <!-- <cd:constant type="implicito"/> -->
+ <cd:resolve name="bodyfont"/> <!-- TODO: check this -->
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="rm" default="yes"/>
+ <cd:constant type="ss"/>
+ <cd:constant type="tt"/>
+ <cd:constant type="hw"/>
+ <cd:constant type="cg"/>
+ <cd:constant type="mm"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:parameter name="tf">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="bf">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="sl">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="it">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="bs">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="bi">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="sc">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="mr">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="ex">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="mi">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="sy">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="ma">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="mb">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="mc">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="md">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definebodyfontDEF" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="definiscifontdeltesto"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="altezza">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="profondita">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="alternativa">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- <cd:constant type="d"/>
- </cd:parameter>
- <cd:parameter name="spessorelinea">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="colore">
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:inherit name="impostafontdeltesto" n="2"/>
+ </cd:keywords>
+ <cd:keywords n="1">
+ <cd:inherit name="impostafontdeltesto" n="3"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definebodyfontREF" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="definiscifontdeltesto"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:inherit name="impostafontdeltesto" n="1"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:inherit name="impostafontdeltesto" n="2"/>
+ </cd:keywords>
+ <cd:keywords n="3">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="sfondo">
- <cd:constant type="colore"/>
- </cd:parameter>
- <cd:parameter name="coloresfondo">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+
+ <cd:command name="showbodyfont" file="font-run.tex" category="fonts"> <!-- visual debugging -->
+ <cd:sequence>
+ <cd:string value="mostrafontdeltesto"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:inherit name="impostafontdeltesto" n="1"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbodyfont" file="font-run.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="impostafontdeltesto"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes"> <!-- TODO: many missing, maybe also <cd:resolve name="bodyfont"/> -->
<cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="hairline" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="capello"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="thinrule" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="lineasottile"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="defineframedtext" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="definiscitestoincorniciato"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="impostatestiincorniciati"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineframed" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="definisciincorniciato"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="impostatestiincorniciati"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupframedtexts" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="impostatestiincorniciati"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="fonttesto">
+ <cd:constant type="serif"/>
+ <cd:constant type="regolare"/>
+ <cd:constant type="roman"/>
+ <cd:constant type="sans"/>
+ <cd:constant type="supporto"/>
+ <cd:constant type="sansserif"/>
+ <cd:constant type="mono"/>
+ <cd:constant type="type"/>
+ <cd:constant type="teletype"/>
+ <cd:constant type="grafiamanuale"/>
+ <cd:constant type="calligrafico"/>
<cd:constant type="5pt"/>
<cd:constant type="..."/>
<cd:constant type="12pt"/>
- <cd:constant type="piccolo"/>
- <cd:constant type="grande"/>
- </cd:parameter>
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="sinistra">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="destra">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="interno">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="correzioneriga">
- <cd:constant type="attivo"/>
- <cd:constant type="disattivo"/>
- </cd:parameter>
- <cd:parameter name="correzioneprofondita">
- <cd:constant type="attivo"/>
- <cd:constant type="disattivo"/>
- </cd:parameter>
- <cd:parameter name="margine">
- <cd:constant type="standard"/>
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="luogo">
- <cd:constant type="sinistra"/>
- <cd:constant type="destra"/>
- <cd:constant type="centro"/>
- <cd:constant type="nessuno"/>
- </cd:parameter>
- <cd:parameter name="rientro">
- <cd:resolve name="indenting"/>
- </cd:parameter>
- <cd:inherit name="impostaincorniciato"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="framedtext" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="testoincorniciato"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="sinistra"/>
- <cd:constant type="destra"/>
- <cd:constant type="centro"/>
- <cd:constant type="nessuno"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="impostatestiincorniciati"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="framedtext" generated="yes">
- <cd:sequence>
- <cd:variable value="testoincorniciato"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="impostatestiincorniciati"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="background" type="environment">
- <cd:sequence>
- <cd:string value="sfondo"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="background">
- <cd:sequence>
- <cd:string value="sfondo"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupbackground" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="impostasfondo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="offsetsinistro">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offsetdestro">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offsetcima">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offsetfondo">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="stato">
- <cd:constant type="inizia"/>
- <cd:constant type="termina"/>
- </cd:parameter>
- <cd:inherit name="impostaincorniciato"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="fillinrules">
- <cd:sequence>
- <cd:string value="lineeriempimento"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="impostalineeriempimento"/>
- </cd:assignments>
- <cd:content/>
- <cd:content optional="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="fillintext">
- <cd:sequence>
- <cd:string value="testoriempimento"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="impostalineeriempimento"/>
- </cd:assignments>
- <cd:content/>
- <cd:content optional="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfillinrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="impostalineeriempimento"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="ampiezza">
- <cd:constant type="adatta"/>
- <cd:constant type="ampio"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="interlinea">
- <cd:constant type="piccolo"/>
- <cd:constant type="medio"/>
- <cd:constant type="grande"/>
- </cd:parameter>
- <cd:parameter name="separatore">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="fillinline">
- <cd:sequence>
- <cd:string value="rigariempimento"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="impostarigheriempimento"/>
- </cd:assignments>
- <cd:nothing/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfillinlines" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="impostarigheriempimento"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="margine">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptextrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="impostalineetesto"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="luogo">
- <cd:constant type="sinistra"/>
- <cd:constant type="inmargine"/>
- </cd:parameter>
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="tra">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="fonttesto">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="switchtobodyfont" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="cambiaafontdeltesto"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ <cd:constant type="serif"/>
+ <cd:constant type="regolare"/>
+ <cd:constant type="roman"/>
+ <cd:constant type="sans"/>
+ <cd:constant type="supporto"/>
+ <cd:constant type="sansserif"/>
+ <cd:constant type="mono"/>
+ <cd:constant type="type"/>
+ <cd:constant type="teletype"/>
+ <cd:constant type="grafiamanuale"/>
+ <cd:constant type="calligrafico"/>
<cd:constant type="5pt"/>
<cd:constant type="..."/>
<cd:constant type="12pt"/>
<cd:constant type="piccolo"/>
<cd:constant type="grande"/>
- </cd:parameter>
- <cd:parameter name="colore">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefont" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="definiscifont"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="colorelinea">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="textrule" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="lineatesto"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cima"/>
- <cd:constant type="fondo"/>
- </cd:keywords>
- <cd:content optional="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="textrule" type="environment" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="lineatesto"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cima"/>
- <cd:constant type="fondo"/>
- </cd:keywords>
- <cd:content optional="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="blackrule" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="lineanera"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="impostalineenere"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="blackrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="lineenere"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:inherit name="impostalineenere"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupblackrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="impostalineenere"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="altezza">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="profondita">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="alternativa">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- </cd:parameter>
- <cd:parameter name="distanza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineoverlay" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="definiscisovrapposizione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:command"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="usemodule">
- <cd:sequence>
- <cd:string value="usamodulo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="reset" file="core-num.tex">
- <cd:sequence>
- <cd:string value="reimposta"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="donttest">
- <cd:sequence>
- <cd:string value="notest"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="localenvironment" type="environment">
- <cd:sequence>
- <cd:string value="localenvironment"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupsystem" file="core-sys.tex">
- <cd:sequence>
- <cd:string value="impostasistema"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="risoluzione">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="file">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="directory">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="casuale">
- <cd:constant type="normale"/>
- <cd:constant type="piccolo"/>
- <cd:constant type="medio"/>
- <cd:constant type="grande"/>
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="usedirectory">
- <cd:sequence>
- <cd:string value="usedirectory"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- <cd:constant type="reimposta"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="low" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="ped"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="high" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="ap"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="lohi" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="pedap"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="basso"/>
- </cd:keywords>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showframe">
- <cd:sequence>
- <cd:string value="mostracornice"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- <cd:constant type="margine"/>
- <cd:constant type="bordo"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="leftaligned" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="allineasinistra"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="rightaligned" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="allineadestra"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="midaligned" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="allineacentro"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="wordright" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="paroladestra"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="inmargin" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="inmargine"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="basso"/>
- </cd:keywords>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="inothermargin" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="inaltromargine"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="basso"/>
- </cd:keywords>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="inleft">
- <cd:sequence>
- <cd:string value="insinistra"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="basso"/>
- </cd:keywords>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="inright">
- <cd:sequence>
- <cd:string value="indestra"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="basso"/>
- </cd:keywords>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="ininner">
- <cd:sequence>
- <cd:string value="ininner"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="basso"/>
- </cd:keywords>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="inouter">
- <cd:sequence>
- <cd:string value="inouter"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="basso"/>
- </cd:keywords>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="column">
- <cd:sequence>
- <cd:string value="colonna"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="showstruts" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="mostrastruts"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="showsetups">
- <cd:sequence>
- <cd:string value="mostraimpostazioni"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="showlayout">
- <cd:sequence>
- <cd:string value="mostralyout"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="margintext" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="testoinmargine"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="basso"/>
- </cd:keywords>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupmarginblocks" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="impostablocchimargine"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="luogo">
- <cd:constant type="inmargine"/>
- <cd:constant type="sinistra"/>
- <cd:constant type="centro"/>
- <cd:constant type="destra"/>
- </cd:parameter>
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="allinea">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="cima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="tra">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="fondo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="sinistra">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="destra">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="marginblock" type="environment">
- <cd:sequence>
- <cd:string value="marginblock"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="part" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="part"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="title" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="title"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="chapter" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="chapter"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="section" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="section"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="subsection" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subsection"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="subsubsection" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subsubsection"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="subject" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subject"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="subsubject" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subsubject"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="subsubsubject" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subsubsubject"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="appendix" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="appendix"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="in" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="in"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content interactive="yes"/>
- <cd:content interactive="yes"/>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="at">
- <cd:sequence>
- <cd:string value="al"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content interactive="yes"/>
- <cd:content interactive="yes"/>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="about">
- <cd:sequence>
- <cd:string value="intorno"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content interactive="yes"/>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="somewhere" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="daqualcheparte"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="atpage" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="apagina"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="ref" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="rif"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="t"/>
- <cd:constant type="p"/>
- <cd:constant type="r"/>
- <cd:constant type="s"/>
- <cd:constant type="e"/>
- </cd:keywords>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="textreference" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="riferimentotesto"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="pagereference" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="riferimentopagina"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="reference" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="riferimento"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="usereferences" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="usariferimenti"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definereference" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="definisciriferimento"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:reference list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definereferenceformat" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="definisciformatoriferimento"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="sinistra">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="destra">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="testo">
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="etichetta">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcolor" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="impostacolore"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="hl">
- <cd:sequence>
- <cd:string value="hl"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="vl">
- <cd:sequence>
- <cd:string value="vl"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="godown" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="vaigiu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="whitespace" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="spaziobianco"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="nowhitespace" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="nientespaziobianco"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="crlf" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="crlf"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="space" file="syst-pln.tex">
- <cd:sequence>
- <cd:string value="spazio"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="fixedspaces" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="spazifissi"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="emptylines" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="emptylines"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="nospace" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="nientespazio"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="packed" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="impaccato"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupdescriptions" file="core-des.tex">
- <cd:sequence>
- <cd:string value="impostadescrizioni"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="stiletesta">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="colore">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="adatta"/>
- <cd:constant type="ampio"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="campione">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="testo">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="closesymbol">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="closecommand">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="titleleft">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcolors" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="impostacolori"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="stato">
+ <cd:constant type="inizia"/>
+ <cd:constant type="termina"/>
+ <cd:constant type="globale"/>
+ <cd:constant type="locale"/>
+ </cd:parameter>
+ <cd:parameter name="conversione">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ <cd:constant type="sempre"/>
+ </cd:parameter>
+ <cd:parameter name="riduzione">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="rgb">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="cmyk">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="mpcmyk">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="mpspot">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="fattore">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="coloretesto">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="separa">
+ <cd:constant type="c"/>
+ <cd:constant type="m"/>
+ <cd:constant type="y"/>
+ <cd:constant type="k"/>
+ <cd:constant type="p"/>
+ <cd:constant type="s"/>
+ <cd:constant type="no"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="criterio">
+ <cd:constant type="tutti"/>
+ <cd:constant type="nessuno"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definecolor" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="definiscicolore"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="r">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="g">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="b">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="c">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="m">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="y">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="k">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="s">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="h">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="t">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="a">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="p">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="e">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="color" type="environment" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="colore"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="color" file="colo-ini.tex">
+ <cd:sequence>
+ <cd:string value="colore"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="titleright">
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="graycolor" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="coloregrigio"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="distanzatitolo">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stiletitolo">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="coloretitolo">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="allinea">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="margine">
- <cd:constant type="standard"/>
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="luogo">
- <cd:constant type="sinistra"/>
- <cd:constant type="destra"/>
- <cd:constant type="cima"/>
- <cd:constant type="vicino"/>
- <cd:constant type="inmargine"/>
- <cd:constant type="insinistra"/>
- <cd:constant type="indestra"/>
- <cd:constant type="sospeso"/>
- </cd:parameter>
- <cd:parameter name="headcommand">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="sospendi">
- <cd:constant type="adatta"/>
- <cd:constant type="ampio"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showcolor" file="colo-run.tex" category="colors"> <!-- and debug -->
+ <cd:sequence>
+ <cd:string value="mostracolore"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definepalet" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="definiscitavolozza"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="cd:name">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppalet" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="impostatavolozza"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definecolorgroup" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="definiscigruppocolori"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="rgb" default="yes"/>
+ <cd:constant type="cmyk"/>
+ <cd:constant type="grigio"/>
+ <cd:constant type="s"/>
+ </cd:keywords>
+ <cd:triplet n="3" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showpalet" file="colo-run.tex" category="colors"> <!-- and debug -->
+ <cd:sequence>
+ <cd:string value="mostratavolozza"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="orizzontale"/>
+ <cd:constant type="verticale"/>
+ <cd:constant type="nome"/>
+ <cd:constant type="valore"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showcolorgroup" file="colo-run.tex" category="colors"> <!-- and debug-->
+ <cd:sequence>
+ <cd:string value="mostragruppocolori"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="orizzontale"/>
+ <cd:constant type="verticale"/>
+ <cd:constant type="nome"/>
+ <cd:constant type="valore"/>
<cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="tra">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="rientrasuccessivo">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="rientro">
- <cd:resolve name="indenting"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupenumerations" file="core-des.tex">
- <cd:sequence>
- <cd:string value="impostaenumerazioni"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="definiscidescrizione"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineenumeration" file="core-des.tex">
- <cd:sequence>
- <cd:string value="definiscienumerazione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="impostaenumerazioni"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="enumeration" generated="yes">
- <cd:sequence>
- <cd:variable value="enumerazione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:nothing interactive="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="enumeration" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="enumerazione"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="definedescription" file="core-des.tex">
- <cd:sequence>
- <cd:string value="definiscidescrizione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="impostadescrizioni"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="description" generated="yes">
- <cd:sequence>
- <cd:variable value="descrizione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:nothing/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="description" type="environment" generated="yes">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="comparepalet" file="colo-run.tex" category="colors"> <!-- and debug? -->
+ <cd:sequence>
+ <cd:string value="confrontatavolozza"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="comparecolorgroup" file="colo-run.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="confrontagruppocolori"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showmakeup" file="supp-vis.tex" category="debug">
+ <cd:sequence>
+ <cd:string value="mostramakeup"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="definetype" file="core-ver.tex" category="verbatim">
+ <cd:sequence>
+ <cd:string value="definiscitype"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="impostatype" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptype" file="core-ver.tex" category="verbatim"> <!-- TODO -->
+ <cd:sequence>
+ <cd:string value="impostatype"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="spazio">
+ <cd:constant type="attivo"/>
+ <cd:constant type="disattivo" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="opzione">
+ <cd:constant type="inclinato"/>
+ <cd:constant type="normale"/>
+ <cd:constant type="nessuno"/>
+ </cd:parameter>
+ <cd:parameter name="stile">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="colore">
+ <cd:constant type="cd:name" default=""/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="type" file="verb-ini.tex" category="verbatim">
+ <cd:sequence>
+ <cd:string value="type"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="typ" file="core-ver.tex" category="verbatim">
+ <cd:sequence>
+ <cd:string value="typ"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tex" file="core-ver.tex" category="verbatim">
+ <cd:sequence>
+ <cd:string value="tex"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <!-- cd:command name="arg" file="core-ver.tex"> command broken
<cd:sequence>
- <cd:variable value="descrizione"/>
+ <cd:string value="arg"/>
</cd:sequence>
<cd:arguments>
<cd:content/>
</cd:arguments>
-</cd:command>
-
-<cd:command name="setupindentations" file="core-des.tex">
- <cd:sequence>
- <cd:string value="impostarientri"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stiletesta">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="adatta"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="testo">
+</cd:command -->
+
+ <cd:command name="definetyping" file="core-ver.tex" category="verbatim">
+ <cd:sequence>
+ <cd:string value="definiscityping"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:inherit name="impostatyping" n="1"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="impostatyping" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptyping" file="core-ver.tex" category="verbatim">
+ <cd:sequence>
+ <cd:string value="impostatyping"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="file"/>
+ <cd:constant type="typing"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="spazio">
+ <cd:constant type="attivo"/>
+ <cd:constant type="disattivo"/>
+ </cd:parameter>
+ <cd:parameter name="pagina">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="opzione">
+ <cd:constant type="inclinato"/>
+ <cd:constant type="normale"/>
+ <cd:constant type="comandi"/>
+ <cd:constant type="colore"/>
+ <cd:constant type="nessuno"/>
+ </cd:parameter>
+ <cd:parameter name="testo">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="icomando">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="vcomando">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="ccomando">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="prima">
+ <cd:constant type="cd:command" default="\blank"/>
+ </cd:parameter>
+ <cd:parameter name="dopo">
+ <cd:constant type="cd:command" default="\blank"/>
+ </cd:parameter>
+ <cd:parameter name="margine">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="standard"/>
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="marginepari">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="marginedispari">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rigovuoto">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="piccolo"/>
+ <cd:constant type="medio"/>
+ <cd:constant type="grande"/>
+ <cd:constant type="standard"/>
+ <cd:constant type="mezzariga"/>
+ <cd:constant type="riga"/>
+ </cd:parameter>
+ <cd:parameter name="escape">
+ <cd:constant type="cd:character"/>
+ </cd:parameter>
+ <cd:parameter name="spazio">
+ <cd:constant type="attivo"/>
+ <cd:constant type="disattivo"/>
+ </cd:parameter>
+ <cd:parameter name="tab">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="pagina">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="rientrasuccessivo">
+ <cd:resolve name="indentnext"/>
+ </cd:parameter>
+ <cd:parameter name="stile">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="colore">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="tavolozza">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="righe">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ <cd:constant type="sillabato"/>
+ </cd:parameter>
+ <cd:parameter name="vuoto">
+ <cd:constant type="si"/>
+ <cd:constant type="tutti"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="numerazione">
+ <cd:constant type="riga"/>
+ <cd:constant type="file"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="fonttesto">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="typing" type="environment" generated="yes" file="verb-ini.tex"
+ category="verbatim">
+ <cd:sequence>
+ <cd:variable value="typing"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="typefile" file="verb-ini.tex" category="verbatim">
+ <cd:sequence>
+ <cd:string value="typefile"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfootnotes" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="impostanotepdp"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="conversione">
+ <cd:constant type="numeri"/>
+ <cd:constant type="lettere"/>
+ <cd:constant type="Lettere"/>
+ <cd:constant type="numeriromani"/>
+ <cd:constant type="Numeriromani"/>
+ </cd:parameter>
+ <cd:parameter name="modo">
+ <cd:constant type="bytext"/>
+ <cd:constant type="bycd:section"/>
+ </cd:parameter>
+ <cd:parameter name="luogo">
+ <cd:constant type="pagina"/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="colonne"/>
+ <cd:constant type="firstcolumn"/>
+ <cd:constant type="lastcolumn"/>
+ <cd:constant type="alto"/>
+ <cd:constant type="nessuno"/>
+ </cd:parameter>
+ <cd:parameter name="linea">
+ <cd:constant type="attivo"/>
+ <cd:constant type="disattivo"/>
+ </cd:parameter>
+ <cd:parameter name="prima">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dopo">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="ampiezza">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="altezza">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="fonttesto">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ <cd:parameter name="stile">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="distanza">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distanzacolonne">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distanzamargine">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="comandonumero">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="comandotesto">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="separa">
+ <cd:constant type="tollerante"/>
+ <cd:constant type="rigido"/>
+ <cd:constant type="moltorigido"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="stiletesto">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="coloretesto">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="interazione">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="fattore">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:inherit name="impostaincorniciato" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfootnotedefinition" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="impostadefinizionenotepdp"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:inherit name="impostadescrizioni" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="footnote" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="notapdp"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="footnotetext" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="testonotapdp"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="note" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="nota"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" interactive="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="localfootnotes" type="environment" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="localfootnotes"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="placelocalfootnotes" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="mettinotepdplocali"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="impostanotepdp" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placefootnotes" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="mettinotepdp"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="impostanotepdp" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupunderbar" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="impostasottolinea"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="alternativa">
+ <cd:constant type="a"/>
+ <cd:constant type="b"/>
+ <cd:constant type="c"/>
+ </cd:parameter>
+ <cd:parameter name="spessorelinea">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="offsetfondo">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="offsetcima">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="colorelinea">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="underbar" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="sottolinea"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="underbars" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="sottolinee"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overbar" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="sopralinea"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overbars" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="sopralinee"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overstrike" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="sbarrato"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overstrikes" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="sbarrati"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="romannumerals" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="numeriromani"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Romannumerals" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="Numeriromani"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="numbers" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="numeri"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="character" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="lettera"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Character" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="Lettera"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="characters" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="lettere"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Characters" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="Lettere"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mediaeval" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="mediaeval"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="month" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="mese"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MONTH" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="MESE"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="weekday" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="giornosettimana"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="WEEKDAY" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="GIORNOSETTIMANA"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcapitals" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="impostamaiuscole"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="titolo">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="sc">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="cap" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="cap"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nocap" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="nocap"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="CAP" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="CAP"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Cap" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="Cap"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Caps" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="Caps"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="WORD" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="PAROLA"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="WORDS" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="PAROLE"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Word" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="Parola"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Words" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="Parole"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="stretched" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="stirato"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definesymbol" file="symb-ini.tex">
+ <cd:sequence>
+ <cd:string value="definiscisimbolo"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="campione">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefiguresymbol" file="symb-ini.tex">
+ <cd:sequence>
+ <cd:string value="definiscifigurasimbolo"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="impostafigureesterne" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="symbol" file="symb-ini.tex">
+ <cd:sequence>
+ <cd:string value="simbolo"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="symbolset" type="environment" file="symb-ini.tex" category="symbols">
+ <cd:sequence>
+ <cd:string value="symbolset"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsymbolset" file="symb-ini.tex" category="symbols">
+ <cd:sequence>
+ <cd:string value="impostasetsimboli"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usesymbols" file="symb-ini.tex" category="symbols">
+ <cd:sequence>
+ <cd:string value="usasimboli"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showsymbolset" file="symb-run.tex" category="symbols"> <!-- and symbols -->
+ <cd:sequence>
+ <cd:string value="mostrasetsimboli"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineconversion" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="definisciconversione"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
<cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="distanza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="separatore">
<cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineindenting" file="core-des.tex">
- <cd:sequence>
- <cd:string value="definiscirientro"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="impostarientri"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="indentation" generated="yes" file="core-spa.tex">
- <cd:sequence>
- <cd:variable value="indentation"/>
- </cd:sequence>
- <cd:arguments>
- <cd:nothing/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definelabel" file="core-des.tex">
- <cd:sequence>
- <cd:string value="definiscietichetta"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="testo">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="luogo">
- <cd:constant type="inmargine"/>
- <cd:constant type="intesto"/>
- </cd:parameter>
- <cd:parameter name="modo">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="blockway">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="stiletesta">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="coloretesta">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="labeling" generated="yes">
- <cd:sequence>
- <cd:variable value="labeling"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupcolumns" file="page-mul.tex">
- <cd:sequence>
- <cd:string value="impostacolonne"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="n">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="convertnumber" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="convertinumero"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupheadtext" file="lang-lab.tex">
+ <cd:sequence>
+ <cd:string value="impostatestointestazioni"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:resolve name="language"/>
+ </cd:keywords>
+ <cd:assignments n="2">
+ <cd:parameter name="cd:name">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplabeltext" file="lang-lab.tex">
+ <cd:sequence>
+ <cd:string value="impostatestoetichette"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:resolve name="language"/>
+ </cd:keywords>
+ <cd:assignments n="2">
+ <cd:parameter name="cd:name">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="headtext" file="lang-lab.tex">
+ <cd:sequence>
+ <cd:string value="testoinstestazioni"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="labeltext" file="lang-lab.tex">
+ <cd:sequence>
+ <cd:string value="testoetichetta"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupmarginrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="impostalineemargine"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1">
+ <cd:parameter name="livello">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="spessorelinea">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="marginrule" type="environment" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="lineamargine"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ncima">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="marginrule" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="lineamargine"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="linea">
- <cd:constant type="attivo"/>
- <cd:constant type="disattivo"/>
- </cd:parameter>
- <cd:parameter name="altezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="tolleranza">
- <cd:constant type="moltorigido"/>
- <cd:constant type="rigido"/>
- <cd:constant type="tollerante"/>
- <cd:constant type="moltotollerante"/>
- <cd:constant type="dilata"/>
- </cd:parameter>
- <cd:parameter name="distanza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="bilanciamento">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="allinea">
- <cd:constant type="testo"/>
- <!-- cd:constant type="yes"/ -->
- <!-- cd:constant type="no"/ -->
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="rigovuoto">
- <cd:constant type="fisso"/>
- <cd:constant type="mezzariga"/>
- <cd:constant type="riga"/>
- <cd:constant type="flessibile"/>
- <cd:constant type="grande"/>
- <cd:constant type="medio"/>
- <cd:constant type="piccolo"/>
- </cd:parameter>
- <cd:parameter name="opzione">
- <cd:constant type="sfondo"/>
- </cd:parameter>
- <cd:parameter name="direzione">
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplinewidth" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="impostaampiezzariga"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupframed" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="impostaincorniciato"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/> <!-- defines a command with that name -->
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="altezza">
+ <cd:constant type="adatta"/>
+ <cd:constant type="ampio"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="ampiezza">
+ <cd:constant type="adatta"/>
+ <cd:constant type="ampio"/>
+ <cd:constant type="fisso"/>
+ <cd:constant type="locale"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="autoampiezza">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ <cd:constant type="forza"/>
+ </cd:parameter>
+ <cd:parameter name="offset">
+ <cd:constant type="nessuno"/>
+ <cd:constant type="sovrapponi"/>
+ <cd:constant type="implicito"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="luogo">
+ <cd:constant type="profondita"/>
+ <cd:constant type="sospeso"/>
+ <cd:constant type="alto"/>
+ <cd:constant type="pedap"/>
+ <cd:constant type="basso"/>
+ <cd:constant type="cima"/>
+ <cd:constant type="centro"/>
+ <cd:constant type="fondo"/>
+ <cd:constant type="mantieni"/>
+ </cd:parameter>
+ <cd:parameter name="opzione">
+ <cd:constant type="nessuno"/>
+ <cd:constant type="vuoto"/>
+ </cd:parameter>
+ <cd:parameter name="strut">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ <cd:constant type="globale"/>
+ <cd:constant type="locale"/>
+ </cd:parameter>
+ <cd:parameter name="allinea">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="fondo">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="cima">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="cornice">
+ <cd:constant type="attivo"/>
+ <cd:constant type="disattivo"/>
+ <cd:constant type="nessuno"/>
+ <cd:constant type="sovrapponi"/>
+ </cd:parameter>
+ <cd:parameter name="cornicecima">
+ <cd:constant type="attivo"/>
+ <cd:constant type="disattivo"/>
+ </cd:parameter>
+ <cd:parameter name="cornicefondo">
+ <cd:constant type="attivo"/>
+ <cd:constant type="disattivo"/>
+ </cd:parameter>
+ <cd:parameter name="cornicesinistra">
+ <cd:constant type="attivo"/>
+ <cd:constant type="disattivo"/>
+ </cd:parameter>
+ <cd:parameter name="cornicedestra">
+ <cd:constant type="attivo"/>
+ <cd:constant type="disattivo"/>
+ </cd:parameter>
+ <cd:parameter name="offsetcornice">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="profonditacornice">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="angolocornice">
+ <cd:constant type="rotondo"/>
+ <cd:constant type="rettangolare"/>
+ </cd:parameter>
+ <cd:parameter name="raggiocornice">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="colorecornice">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="sfondo">
+ <cd:constant type="schermo"/>
+ <cd:constant type="colore"/>
+ <cd:constant type="nessuno"/>
+ <cd:constant type="foreground"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="schermosfondo">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="coloresfondo">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="offsetsfondo">
+ <cd:constant type="cornice"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="profonditasfondo">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="angolosfondo">
+ <cd:constant type="rotondo"/>
+ <cd:constant type="rettangolare"/>
+ </cd:parameter>
+ <cd:parameter name="raggiosfondo">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="profondita">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="angolo">
+ <cd:constant type="rotondo"/>
+ <cd:constant type="rettangolare"/>
+ </cd:parameter>
+ <cd:parameter name="raggio">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="vuoto">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="coloreprimopiano">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="foregroundstyle">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="spessorelinea">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="framed" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="incorniciato"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="impostaincorniciato" n="2"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inframed" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="circondato"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="impostaincorniciato" n="2"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="thinrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="lineesottili"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes">
+ <cd:inherit name="impostalineesottili" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupthinrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="impostalineesottili"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1">
+ <cd:parameter name="interlinea">
+ <cd:constant type="piccolo"/>
+ <cd:constant type="medio"/>
+ <cd:constant type="grande"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="prima">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="tra">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dopo">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="colore">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="coloresfondo">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="altezza">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="max"/>
+ </cd:parameter>
+ <cd:parameter name="profondita">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="max"/>
+ </cd:parameter>
+ <cd:parameter name="alternativa">
+ <cd:constant type="a"/>
+ <cd:constant type="b"/>
+ <cd:constant type="c"/>
+ <cd:constant type="d"/>
+ </cd:parameter>
+ <cd:parameter name="spessorelinea">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="colore">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="sfondo">
+ <cd:constant type="colore"/>
+ </cd:parameter>
+ <cd:parameter name="coloresfondo">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="hairline" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="capello"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="thinrule" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="lineasottile"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="defineframedtext" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="definiscitestoincorniciato"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="impostatestiincorniciati" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineframed" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="definisciincorniciato"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="impostatestiincorniciati" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupframedtexts" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="impostatestiincorniciati"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="fonttesto">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ <cd:parameter name="stile">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="sinistra">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="destra">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="prima">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dopo">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="interno">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="correzioneriga">
+ <cd:constant type="attivo"/>
+ <cd:constant type="disattivo"/>
+ </cd:parameter>
+ <cd:parameter name="correzioneprofondita">
+ <cd:constant type="attivo"/>
+ <cd:constant type="disattivo"/>
+ </cd:parameter>
+ <cd:parameter name="margine">
+ <cd:constant type="standard"/>
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="luogo">
+ <cd:constant type="sinistra"/>
+ <cd:constant type="destra"/>
+ <cd:constant type="centro"/>
+ <cd:constant type="nessuno"/>
+ </cd:parameter>
+ <cd:parameter name="rientro">
+ <cd:resolve name="indenting"/>
+ </cd:parameter>
+ <cd:inherit name="impostaincorniciato" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="framedtext" type="environment" generated="yes" file="core-rul.tex">
+ <cd:sequence>
+ <cd:variable value="testoincorniciato"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="sinistra"/>
<cd:constant type="destra"/>
- </cd:parameter>
- <cd:inherit name="impostaincorniciato"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="columns" type="environment">
- <cd:sequence>
- <cd:string value="columns"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="impostacolonne"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definetext" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="definiscitesto"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="intestazione"/>
- <cd:constant type="piedipagina"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupheader" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="impostainstestazione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text" default="yes"/>
- <cd:constant type="margine"/>
- <cd:constant type="bordo"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="stato">
- <cd:constant type="normale"/>
- <cd:constant type="termina"/>
- <cd:constant type="inizia"/>
- <cd:constant type="vuoto"/>
- <cd:constant type="alto"/>
+ <cd:constant type="centro"/>
<cd:constant type="nessuno"/>
- <cd:constant type="nomarcature"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="impostatestiincorniciati" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="framedtext" generated="yes" file="core-rul.tex">
+ <cd:sequence>
+ <cd:variable value="testoincorniciato"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="impostatestiincorniciati" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="background" type="environment" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="sfondo"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="background" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="sfondo"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbackground" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="impostasfondo"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="offsetsinistro">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="offsetdestro">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="offsetcima">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="offsetfondo">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="prima">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dopo">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="stato">
+ <cd:constant type="inizia"/>
+ <cd:constant type="termina"/>
+ </cd:parameter>
+ <cd:inherit name="impostaincorniciato" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fillinrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="lineeriempimento"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="impostalineeriempimento" n="1"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ <cd:content n="3" optional="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fillintext" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="testoriempimento"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="impostalineeriempimento" n="1"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ <cd:content n="3" optional="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfillinrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="impostalineeriempimento"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="ampiezza">
+ <cd:constant type="adatta"/>
+ <cd:constant type="ampio"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distanza">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="prima">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dopo">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="stile">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="interlinea">
+ <cd:constant type="piccolo"/>
+ <cd:constant type="medio"/>
+ <cd:constant type="grande"/>
+ </cd:parameter>
+ <cd:parameter name="separatore">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fillinline" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="rigariempimento"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="impostarigheriempimento" n="1"/>
+ </cd:assignments>
+ <cd:nothing n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfillinlines" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="impostarigheriempimento"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="ampiezza">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="margine">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distanza">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="prima">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dopo">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptextrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="impostalineetesto"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="luogo">
+ <cd:constant type="sinistra"/>
+ <cd:constant type="inmargine"/>
+ </cd:parameter>
+ <cd:parameter name="prima">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dopo">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="tra">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="ampiezza">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distanza">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="fonttesto">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ <cd:parameter name="colore">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="stile">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="colorelinea">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="textrule" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="lineatesto"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cima"/>
+ <cd:constant type="fondo"/>
+ </cd:keywords>
+ <cd:content n="2" optional="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="textrule" type="environment" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="lineatesto"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cima"/>
+ <cd:constant type="fondo"/>
+ </cd:keywords>
+ <cd:content n="2" optional="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="blackrule" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="lineanera"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="impostalineenere" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="blackrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="lineenere"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:inherit name="impostalineenere" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupblackrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="impostalineenere"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="ampiezza">
+ <cd:constant type="cd:dimension" default="1em"/>
+ <cd:constant type="max"/>
+ </cd:parameter>
+ <cd:parameter name="altezza">
+ <cd:constant type="cd:dimension" default="1ex"/>
+ <cd:constant type="max"/>
+ </cd:parameter>
+ <cd:parameter name="profondita">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="max"/>
+ </cd:parameter>
+ <cd:parameter name="alternativa">
+ <cd:constant type="a" default="yes"/>
+ <cd:constant type="b"/>
+ </cd:parameter>
+ <cd:parameter name="distanza">
+ <cd:constant type="cd:dimension" default=".25ex"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number" default="3"/>
+ </cd:parameter>
+ <cd:parameter name="colore">
+ <cd:constant type="cd:name" default=""/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineoverlay" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="definiscisovrapposizione"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stilesinistra">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stiledestra">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="ampiezzasinistra">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="ampiezzadestra">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfooter" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="impostapdp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:inherit name="impostainstestazione"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="impostainstestazione"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptext" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="impostatesto"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:inherit name="impostainstestazione"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="impostainstestazione"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptop" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="impostacima"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:inherit name="impostainstestazione"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="impostainstestazione"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupbottom" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="impostafondo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:inherit name="impostainstestazione"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="impostainstestazione"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="noheaderandfooterlines" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="nientelineintestazionepdp"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="notopandbottomlines" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="nientelineecimafondo"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupheadertexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="impostatestiintestazioni"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfootertexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="impostatestipdp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptexttexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="impostatestotesti"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptoptexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="impostatesticima"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupbottomtexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="impostatestifondo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="settextcontent" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="settext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:resolve name="layout-v"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="resettextcontent" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="resettextcontent"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:resolve name="layout-v"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant name="lefttext"/>
- <cd:constant name="middletext"/>
- <cd:constant name="righttext"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definemarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="definiscimarcatura"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="couplemarking" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="accoppiamarcatura"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="decouplemarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="separamarcatura"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="resetmarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="reimpostamarcatura"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupmarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="impostamarcatura"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments>
- <cd:parameter name="stato">
- <cd:constant type="inizia"/>
- <cd:constant type="termina"/>
- </cd:parameter>
- <cd:parameter name="separatore">
+ </cd:keywords>
+ <cd:keywords n="2">
<cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="espansione">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="marking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="marcatura"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="getmarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="prendimarcatura"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="primo"/>
- <cd:constant type="ultimo"/>
- <cd:constant type="precedente"/>
- <cd:constant type="entrambi"/>
- <cd:constant type="tutti"/>
- <cd:constant type="corrente"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="nomarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="nientemarcatura"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usemodule" file="core-fil.tex"> <!-- TODO -->
+ <cd:sequence>
+ <cd:string value="usamodulo"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="reset" file="core-num.tex">
+ <cd:sequence>
+ <cd:string value="reimposta"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
-<cd:command name="setuplayout" file="page-ini.tex">
+ <!-- <cd:command name="donttest">
<cd:sequence>
- <cd:string value="impostalayout"/>
+ <cd:string value="notest"/>
</cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="adatta"/>
- <cd:constant type="centro"/>
- </cd:parameter>
- <cd:parameter name="altezza">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="adatta"/>
- <cd:constant type="centro"/>
- </cd:parameter>
- <cd:parameter name="backspace">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="spaziocima">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="margine">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="marginesinistro">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="marginedestro">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="intestazione">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="piedipagina">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="cima">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="fondo">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="bordosinistro">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="bordodestro">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanzaintestazione">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanzapdp">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanzacima">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanzafondo">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanzamarginesinistro">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanzamarginedestro">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanzabordosinistro">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanzabordodestro">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="horoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="veroffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="colore">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="marcatura">
- <cd:constant type="attivo"/>
- <cd:constant type="disattivo"/>
- <cd:constant type="colore"/>
- <cd:constant type="schermo"/>
+</cd:command> -->
+
+ <cd:command name="localenvironment" type="environment" file="core-job.tex">
+ <cd:sequence>
+ <cd:string value="localenvironment"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupsystem" file="core-sys.tex">
+ <cd:sequence>
+ <cd:string value="impostasistema"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="risoluzione">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="file">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="directory">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="casuale">
+ <cd:constant type="normale"/>
+ <cd:constant type="piccolo"/>
+ <cd:constant type="medio"/>
+ <cd:constant type="grande"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usedirectory" file="core-job.mkii"> <!-- usepath, todo: more than one file -->
+ <cd:sequence>
+ <cd:string value="usedirectory"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ <cd:constant type="reimposta"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="low" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="ped"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="high" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="ap"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="lohi" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="pedap"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="basso"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showframe" file="page-run.tex">
+ <cd:sequence>
+ <cd:string value="mostracornice"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="luogo">
- <cd:constant type="sinistra"/>
- <cd:constant type="centro"/>
- <cd:constant type="destra"/>
- <cd:constant type="fondo"/>
- <cd:constant type="cima"/>
- <cd:constant type="facciasingola"/>
- <cd:constant type="doppiafaccia"/>
- </cd:parameter>
- <cd:parameter name="scala">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="nx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ny">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="dx">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="dy">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="righe">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="colonne">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="distanzacolonne">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="griglia">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="spaziofondo">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="cutspace">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanzatesto">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="ampiezzatesto">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="textmargin">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="clipoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="pagina">
+ <cd:constant type="margine"/>
+ <cd:constant type="bordo"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="leftaligned" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="allineasinistra"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="rightaligned" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="allineadestra"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="midaligned" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="allineacentro"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="wordright" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="paroladestra"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inmargin" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="inmargine"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="basso"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inothermargin" file="page-mar.tex">
+ <cd:sequence>
+ <cd:string value="inaltromargine"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="basso"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inleft" file="page-mar.tex">
+ <cd:sequence>
+ <cd:string value="insinistra"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="basso"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inright" file="page-mar.tex">
+ <cd:sequence>
+ <cd:string value="indestra"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="basso"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ininner" file="page-mar.tex">
+ <cd:sequence>
+ <cd:string value="ininner"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="basso"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inouter" file="page-mar.tex">
+ <cd:sequence>
+ <cd:string value="inouter"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="basso"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="column" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="colonna"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="showstruts" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="mostrastruts"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="showsetups" file="page-run.tex">
+ <cd:sequence>
+ <cd:string value="mostraimpostazioni"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="showlayout" file="page-run.tex">
+ <cd:sequence>
+ <cd:string value="mostralyout"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="margintext" file="page-mar.tex">
+ <cd:sequence>
+ <cd:string value="testoinmargine"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="basso"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupmarginblocks" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="impostablocchimargine"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="luogo">
+ <cd:constant type="inmargine"/>
+ <cd:constant type="sinistra"/>
+ <cd:constant type="centro"/>
+ <cd:constant type="destra"/>
+ </cd:parameter>
+ <cd:parameter name="stile">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="ampiezza">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="allinea">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="cima">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="tra">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="fondo">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="sinistra">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="destra">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="prima">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dopo">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="marginblock" type="environment" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="marginblock"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="part" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="part"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="title" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="title"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="chapter" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="chapter"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="section" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="section"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subsection" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="subsection"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subsubsection" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="subsubsection"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subject" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="subject"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subsubject" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="subsubject"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subsubsubject" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="subsubsubject"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="appendix" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="appendix"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="in" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="in"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="yes"/>
+ <cd:content n="2" interactive="yes"/>
+ <cd:reference n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="at" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="al"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="yes"/>
+ <cd:content n="2" interactive="yes"/>
+ <cd:reference n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="about" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="intorno"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="yes"/>
+ <cd:reference n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="somewhere" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="daqualcheparte"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ <cd:reference n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="atpage" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="apagina"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ref" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="rif"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="t"/>
+ <cd:constant type="p"/>
+ <cd:constant type="r"/>
+ <cd:constant type="s"/>
+ <cd:constant type="e"/>
+ </cd:keywords>
+ <cd:reference n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="textreference" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="riferimentotesto"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="pagereference" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="riferimentopagina"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="reference" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="riferimento"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usereferences" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="usariferimenti"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definereference" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="definisciriferimento"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="carta">
+ </cd:keywords>
+ <cd:reference n="2" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definereferenceformat" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="definisciformatoriferimento"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="adaptlayout" file="page-lay.tex">
- <cd:sequence>
- <cd:string value="adattalayout"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="altezza">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="righe">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showgrid" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="mostragriglia"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="reimposta"/>
- <cd:constant type="cima"/>
- <cd:constant type="fondo"/>
- <cd:constant type="nessuno"/>
- <cd:constant type="tutti"/>
- <cd:constant type="righe"/>
- <cd:constant type="cornice"/>
- <cd:constant type="nonumber"/>
- <cd:constant type="destra"/>
- <cd:constant type="sinistra"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placeongrid" file="core-grd.tex">
- <cd:sequence>
- <cd:string value="mettiingriglia"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:inherit name="spostaagriglia"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="moveongrid" file="core-grd.tex">
- <cd:sequence>
- <cd:string value="spostaagriglia"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cima"/>
- <cd:constant type="entrambi"/>
- <cd:constant type="fondo"/>
- <cd:constant type="-top"/>
- <cd:constant type="-both"/>
- <cd:constant type="-bottom"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="alto"/>
- <cd:constant type="centro"/>
- <cd:constant type="basso"/>
- <cd:constant type="pagina"/>
- <cd:constant type="nessuno"/>
- <cd:constant type="standard" default="yes"/>
- <cd:constant type="ampio"/>
- <cd:constant type="adatta"/>
- <cd:constant type="profondita"/>
- <cd:constant type="riga"/>
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="project" type="environment">
- <cd:sequence>
- <cd:string value="progetto"/>
- </cd:sequence>
- <cd:arguments>
- <cd:file/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="environment" type="environment">
- <cd:sequence>
- <cd:string value="ambiente"/>
- </cd:sequence>
- <cd:arguments>
- <cd:file/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="product" type="environment">
- <cd:sequence>
- <cd:string value="prodotto"/>
- </cd:sequence>
- <cd:arguments>
- <cd:file/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="component" type="environment">
- <cd:sequence>
- <cd:string value="componenet"/>
- </cd:sequence>
- <cd:arguments>
- <cd:file/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="nomorefiles">
- <cd:sequence>
- <cd:string value="bastafile"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupinterlinespace" variant="1">
- <cd:sequence>
- <cd:string value="impostainterlinea"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="reimposta"/>
- <cd:constant type="piccolo" default="yes"/>
- <cd:constant type="medio"/>
- <cd:constant type="auto"/>
- <cd:constant type="grande"/>
- <cd:constant type="attivo"/>
- <cd:constant type="disattivo"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupinterlinespace" variant="2">
- <cd:sequence>
- <cd:string value="impostainterlinea"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="altezza">
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="sinistra">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="destra">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="testo">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="etichetta">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="hl" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="hl"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="profondita">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="vl" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="vl"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="riga">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="cima">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="fondo">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="godown" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="vaigiu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="whitespace" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="spaziobianco"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="nowhitespace" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="nientespaziobianco"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="crlf" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="crlf"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="space" file="syst-pln.tex">
+ <cd:sequence>
+ <cd:string value="spazio"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="fixedspaces" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="spazifissi"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="emptylines" file="page-lin.tex">
+ <cd:sequence>
+ <cd:string value="emptylines"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuppagenumbering" file="page-num.tex">
- <cd:sequence>
- <cd:string value="impostanumerazionepagina"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="alternativa">
- <cd:constant type="facciasingola"/>
- <cd:constant type="doppiafaccia"/>
- </cd:parameter>
- <cd:parameter name="luogo">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nospace" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="nientespazio"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="packed" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="impaccato"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupdescriptions" file="core-des.tex">
+ <cd:sequence>
+ <cd:string value="impostadescrizioni"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="stile">
+ <cd:resolve name="style"/> <!-- TODO: style=normal -->
+ </cd:parameter>
+ <cd:parameter name="colore">
+ <cd:constant type="cd:name" default=""/>
+ </cd:parameter>
+ <cd:parameter name="ampiezza">
+ <cd:constant type="adatta"/>
+ <cd:constant type="ampio"/>
+ <cd:constant type="cd:dimension" default="8em"/>
+ </cd:parameter>
+ <cd:parameter name="distanza">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="campione">
+ <cd:constant type="cd:text" default=""/>
+ </cd:parameter>
+ <cd:parameter name="testo">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="closesymbol">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="closecommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="closesymbol">
+ <cd:constant type="cd:text" default=""/>
+ </cd:parameter>
+ <cd:parameter name="titleleft">
+ <cd:constant type="cd:text" default="("/>
+ </cd:parameter>
+ <cd:parameter name="titleright">
+ <cd:constant type="cd:text" default=")"/>
+ </cd:parameter>
+ <cd:parameter name="distanzatitolo">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="stiletitolo">
+ <cd:resolve name="style"/> <!-- TODO: default=bold -->
+ </cd:parameter>
+ <cd:parameter name="coloretitolo">
+ <cd:constant type="cd:name" default=""/>
+ </cd:parameter>
+ <cd:parameter name="allinea">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="margine">
+ <cd:constant type="standard"/>
+ <cd:constant type="si"/>
+ <cd:constant type="no" default="yes"/> <!-- TODO: this is default; conflicting syntax? -->
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="luogo">
+ <cd:constant type="sinistra" default="yes"/>
+ <cd:constant type="destra"/>
+ <cd:constant type="cima"/>
+ <cd:constant type="vicino"/>
+ <cd:constant type="inmargine"/>
+ <cd:constant type="insinistra"/>
+ <cd:constant type="indestra"/>
+ <cd:constant type="sospeso"/>
+ </cd:parameter>
+ <cd:parameter name="stiletesta">
+ <cd:resolve name="style"/> <!-- TODO: default=bold -->
+ </cd:parameter>
+ <cd:parameter name="coloretesta">
+ <cd:constant type="cd:name" default=""/>
+ </cd:parameter>
+ <cd:parameter name="headcommand">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="sospendi">
+ <cd:constant type="adatta"/>
+ <cd:constant type="ampio"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="prima">
+ <cd:constant type="cd:command" default="\blank"/>
+ </cd:parameter>
+ <cd:parameter name="tra">
+ <cd:constant type="cd:command" default="\blank"/>
+ </cd:parameter>
+ <cd:parameter name="dopo">
+ <cd:constant type="cd:command" default="\blank"/>
+ </cd:parameter>
+ <cd:parameter name="rientrasuccessivo">
+ <cd:resolve name="indentnext"/> <!-- default=yes -->
+ </cd:parameter>
+ <cd:parameter name="rientro">
+ <cd:resolve name="indenting"/> <!-- default=never -->
+ </cd:parameter>
+ <cd:parameter name="comando">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupenumerations" file="core-des.tex">
+ <cd:sequence>
+ <cd:string value="impostaenumerazioni"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="impostadescrizioni" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineenumeration" file="core-des.tex">
+ <cd:sequence>
+ <cd:string value="definiscienumerazione"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="impostaenumerazioni" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="enumeration" generated="yes" file="core-des.tex">
+ <cd:sequence>
+ <cd:variable value="enumerazione"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:nothing n="1" interactive="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="enumeration" type="environment" generated="yes" file="core-des.tex">
+ <cd:sequence>
+ <cd:variable value="enumerazione"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="definedescription" file="core-des.tex">
+ <cd:sequence>
+ <cd:string value="definiscidescrizione"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="impostadescrizioni" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="description" generated="yes" file="core-des.tex">
+ <cd:sequence>
+ <cd:variable value="descrizione"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:nothing n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="description" type="environment" generated="yes" file="core-des.tex">
+ <cd:sequence>
+ <cd:variable value="descrizione"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupindentations" file="core-des.tex">
+ <cd:sequence>
+ <cd:string value="impostarientri"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="stile">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="stiletesta">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="ampiezza">
+ <cd:constant type="adatta"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="testo">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="campione">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="prima">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dopo">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="distanza">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="separatore">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineindenting" file="core-des.tex">
+ <cd:sequence>
+ <cd:string value="definiscirientro"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="impostarientri" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="indentation" generated="yes" file="core-spa.tex">
+ <cd:sequence>
+ <cd:variable value="indentation"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:nothing n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definelabel" file="core-des.tex">
+ <cd:sequence>
+ <cd:string value="definiscietichetta"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="testo">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="luogo">
+ <cd:constant type="inmargine"/>
+ <cd:constant type="intesto"/>
+ </cd:parameter>
+ <cd:parameter name="modo">
+ <cd:constant type="bytext"/>
+ <cd:constant type="bycd:section"/>
+ </cd:parameter>
+ <cd:parameter name="blockway">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="stiletesta">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="coloretesta">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="prima">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dopo">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="labeling" generated="yes" file="core-des.tex">
+ <cd:sequence>
+ <cd:variable value="labeling"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcolumns" file="page-mul.tex">
+ <cd:sequence>
+ <cd:string value="impostacolonne"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes"> <!-- no idea why it is optional -->
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ncima">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="linea">
+ <cd:constant type="attivo"/>
+ <cd:constant type="disattivo"/> <!-- default and unknown missing -->
+ </cd:parameter>
+ <cd:parameter name="altezza">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="tolleranza">
+ <cd:constant type="moltorigido"/>
+ <cd:constant type="rigido"/>
+ <cd:constant type="tollerante"/>
+ <cd:constant type="moltotollerante"/>
+ <cd:constant type="dilata"/>
+ </cd:parameter>
+ <cd:parameter name="distanza">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="bilanciamento">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="allinea">
+ <cd:constant type="testo"/>
+ <!-- cd:constant type="yes"/ -->
+ <!-- cd:constant type="no"/ -->
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="rigovuoto">
+ <cd:constant type="fisso"/>
+ <cd:constant type="mezzariga"/>
+ <cd:constant type="riga"/>
+ <cd:constant type="flessibile"/>
+ <cd:constant type="grande"/>
+ <cd:constant type="medio"/>
+ <cd:constant type="piccolo"/>
+ </cd:parameter>
+ <cd:parameter name="opzione">
+ <cd:constant type="sfondo"/>
+ </cd:parameter>
+ <cd:parameter name="direzione">
+ <cd:constant type="sinistra"/>
+ <cd:constant type="destra"/>
+ </cd:parameter>
+ <cd:inherit name="impostaincorniciato" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="columns" type="environment" file="page-mul.tex">
+ <cd:sequence>
+ <cd:string value="columns"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="impostacolonne" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definetext" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="definiscitesto"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
<cd:constant type="intestazione"/>
<cd:constant type="piedipagina"/>
- <cd:constant type="sinistra"/>
- <cd:constant type="destra"/>
- <cd:constant type="centro"/>
- <cd:constant type="margine"/>
- <cd:constant type="bordomargine"/>
- <cd:constant type="insinistra"/>
- <cd:constant type="indestra"/>
- </cd:parameter>
- <cd:parameter name="conversione">
- <cd:constant type="numeri"/>
- <cd:constant type="lettere"/>
- <cd:constant type="Lettere"/>
- <cd:constant type="numeriromani"/>
- <cd:constant type="Numeriromani"/>
- </cd:parameter>
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="sinistra">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="destra">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="modo">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="testo">
+ </cd:keywords>
+ <cd:keywords n="3">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="separatorenumero">
+ </cd:keywords>
+ <cd:keywords n="4" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="separatoretesto">
+ </cd:keywords>
+ <cd:keywords n="5" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="cd:sectionnumber">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="separatore">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="stato">
- <cd:constant type="inizia"/>
- <cd:constant type="termina"/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="comando">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupnarrower" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="impostapiustretto"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="sinistra">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="destra">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="centro">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="define" file="syst-ext.tex">
- <cd:sequence>
- <cd:string value="definisci"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- <cd:csname/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="usecommands" file="core-sys.tex">
- <cd:sequence>
- <cd:string value="usacomandi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definestartstop" file="core-sys.tex">
- <cd:sequence>
- <cd:string value="definisciiniziatermina"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="comandi">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupheads" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="impostateste"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="numerosezione">
- <cd:constant type="si"/>
- <cd:constant type="cd:number"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="alternativa">
- <cd:constant type="normale"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupheader" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="impostainstestazione"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:text" default="yes"/>
<cd:constant type="margine"/>
- <cd:constant type="centro"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="capoverso"/>
- </cd:parameter>
- <cd:parameter name="separatore">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="stopper">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="allinea">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="allineatitolo">
- <cd:constant type="si"/>
- <cd:constant type="oggettomobile"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="tolleranza">
- <cd:constant type="moltorigido"/>
- <cd:constant type="rigido"/>
- <cd:constant type="tollerante"/>
- <cd:constant type="moltotollerante"/>
- <cd:constant type="dilata"/>
- </cd:parameter>
- <cd:parameter name="rientrasuccessivo">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="comando">
- <cd:constant type="cd:twoarguments"/>
- </cd:parameter>
- <cd:parameter name="margine">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupcaptions" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="impostacaptions"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="luogo">
+ <cd:constant type="bordo"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="stato">
+ <cd:constant type="normale"/>
+ <cd:constant type="termina"/>
+ <cd:constant type="inizia"/>
+ <cd:constant type="vuoto"/>
+ <cd:constant type="alto"/>
+ <cd:constant type="nessuno"/>
+ <cd:constant type="nomarcature"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="strut">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="stile">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="stilesinistra">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="stiledestra">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="ampiezzasinistra">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="ampiezzadestra">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="prima">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dopo">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfooter" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="impostapdp"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:inherit name="impostainstestazione" n="1"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="impostainstestazione" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptext" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="impostatesto"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:inherit name="impostainstestazione" n="1"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="impostainstestazione" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptop" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="impostacima"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:inherit name="impostainstestazione" n="1"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="impostainstestazione" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbottom" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="impostafondo"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:inherit name="impostainstestazione" n="1"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="impostainstestazione" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="noheaderandfooterlines" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="nientelineintestazionepdp"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="notopandbottomlines" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="nientelineecimafondo"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupheadertexts" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="impostatestiintestazioni"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:resolve name="layout-h"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfootertexts" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="impostatestipdp"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:resolve name="layout-h"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptexttexts" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="impostatestotesti"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:resolve name="layout-h"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptoptexts" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="impostatesticima"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:resolve name="layout-h"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbottomtexts" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="impostatestifondo"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:resolve name="layout-h"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="settextcontent" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="settext"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:resolve name="layout-v"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:resolve name="layout-h"/>
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ <cd:keywords n="4" optional="yes">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ <cd:keywords n="5" optional="yes">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="resettextcontent" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="resettextcontent"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:resolve name="layout-v"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:resolve name="layout-h"/>
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes">
+ <cd:constant type="lefttext"/>
+ <cd:constant type="middletext"/>
+ <cd:constant type="righttext"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definemarking" file="core-mar.tex">
+ <cd:sequence>
+ <cd:string value="definiscimarcatura"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="couplemarking" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="accoppiamarcatura"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="decouplemarking" file="core-mar.tex">
+ <cd:sequence>
+ <cd:string value="separamarcatura"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="resetmarking" file="core-mar.tex">
+ <cd:sequence>
+ <cd:string value="reimpostamarcatura"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupmarking" file="core-mar.tex">
+ <cd:sequence>
+ <cd:string value="impostamarcatura"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2">
+ <cd:parameter name="stato">
+ <cd:constant type="inizia"/>
+ <cd:constant type="termina"/>
+ </cd:parameter>
+ <cd:parameter name="separatore">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="espansione">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="marking" file="core-mar.tex">
+ <cd:sequence>
+ <cd:string value="marcatura"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getmarking" file="core-mar.tex">
+ <cd:sequence>
+ <cd:string value="prendimarcatura"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="primo"/>
+ <cd:constant type="ultimo"/>
+ <cd:constant type="precedente"/>
+ <cd:constant type="entrambi"/>
+ <cd:constant type="tutti"/>
+ <cd:constant type="corrente"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nomarking" file="core-mar.tex">
+ <cd:sequence>
+ <cd:string value="nientemarcatura"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplayout" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="impostalayout"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="ampiezza">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="adatta"/>
+ <cd:constant type="centro"/>
+ </cd:parameter>
+ <cd:parameter name="altezza">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="adatta"/>
+ <cd:constant type="centro"/>
+ </cd:parameter>
+ <cd:parameter name="backspace">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="spaziocima">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="margine">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="marginesinistro">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="marginedestro">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="intestazione">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="piedipagina">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="cima">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="fondo">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="bordosinistro">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="bordodestro">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distanzaintestazione">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distanzapdp">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distanzacima">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distanzafondo">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distanzamarginesinistro">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distanzamarginedestro">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distanzabordosinistro">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distanzabordodestro">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="horoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="veroffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="stile">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="colore">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="marcatura">
+ <cd:constant type="attivo"/>
+ <cd:constant type="disattivo"/>
+ <cd:constant type="colore"/>
+ <cd:constant type="schermo"/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="pagina"/>
+ </cd:parameter>
+ <cd:parameter name="luogo">
+ <cd:constant type="sinistra"/>
+ <cd:constant type="centro"/>
+ <cd:constant type="destra"/>
+ <cd:constant type="fondo"/>
+ <cd:constant type="cima"/>
+ <cd:constant type="facciasingola"/>
+ <cd:constant type="doppiafaccia"/>
+ </cd:parameter>
+ <cd:parameter name="scala">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="nx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ny">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="dx">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="dy">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="righe">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="colonne">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="distanzacolonne">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="griglia">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="spaziofondo">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="cutspace">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distanzatesto">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="ampiezzatesto">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="textmargin">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="clipoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="pagina">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="carta">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="adaptlayout" file="page-lay.tex">
+ <cd:sequence>
+ <cd:string value="adattalayout"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="altezza">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="max"/>
+ </cd:parameter>
+ <cd:parameter name="righe">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showgrid" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="mostragriglia"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="reimposta"/>
<cd:constant type="cima"/>
<cd:constant type="fondo"/>
<cd:constant type="nessuno"/>
- <cd:constant type="alto"/>
- <cd:constant type="basso"/>
- <cd:constant type="centro"/>
+ <cd:constant type="tutti"/>
+ <cd:constant type="righe"/>
+ <cd:constant type="cornice"/>
+ <cd:constant type="nonumber"/>
+ <cd:constant type="destra"/>
<cd:constant type="sinistra"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placeongrid" file="core-grd.tex">
+ <cd:sequence>
+ <cd:string value="mettiingriglia"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:inherit name="spostaagriglia" n="1"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="moveongrid" file="core-grd.tex">
+ <cd:sequence>
+ <cd:string value="spostaagriglia"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="standard" default="yes"/> <!-- also 'normal', 'yes' and 'force' -->
+ <cd:constant type="cima"/>
+ <cd:constant type="entrambi"/>
+ <cd:constant type="fondo"/>
+ <cd:constant type="-top"/>
+ <cd:constant type="-both"/>
+ <cd:constant type="-bottom"/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="alto"/>
<cd:constant type="centro"/>
- <cd:constant type="destra"/>
- <cd:constant type="lefthanging"/>
- <cd:constant type="righthanging"/>
- <cd:constant type="marginesinistro"/>
- <cd:constant type="marginedestro"/>
- <cd:constant type="margineinterno"/>
- <cd:constant type="margineesterno"/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="adatta"/>
+ <cd:constant type="basso"/>
+ <cd:constant type="pagina"/>
<cd:constant type="ampio"/>
- <cd:constant type="max"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="ampiezzamin">
<cd:constant type="adatta"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stiletesta">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="numero">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
+ <cd:constant type="profondita"/>
+ <cd:constant type="riga"/>
+ <cd:constant type="reimposta"/>
<cd:constant type="nessuno"/>
- </cd:parameter>
- <cd:parameter name="tra">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="allinea">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="conversione">
- <cd:constant type="numeri"/>
- <cd:constant type="lettere"/>
- <cd:constant type="Lettere"/>
- <cd:constant type="numeriromani"/>
- <cd:constant type="Numeriromani"/>
- </cd:parameter>
- <cd:parameter name="modo">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="separatore">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="stopper">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="comando">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="distanza">
<cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupcaption" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="impostacaption"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="impostacaptions"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfloats" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="impostaoggettimobili"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="luogo">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="project" type="environment" file="core-job.tex">
+ <cd:sequence>
+ <cd:string value="progetto"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:file n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="environment" type="environment" file="core-job.tex">
+ <cd:sequence>
+ <cd:string value="ambiente"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:file n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="product" type="environment" file="core-job.tex">
+ <cd:sequence>
+ <cd:string value="prodotto"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:file n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="component" type="environment" file="core-job.tex">
+ <cd:sequence>
+ <cd:string value="componenet"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:file n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nomorefiles" file="core-job.tex">
+ <cd:sequence>
+ <cd:string value="bastafile"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupinterlinespace" variant="1" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="impostainterlinea"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="reimposta"/>
+ <cd:constant type="piccolo" default="yes"/>
+ <cd:constant type="medio"/>
+ <cd:constant type="auto"/>
+ <cd:constant type="grande"/>
+ <cd:constant type="attivo"/>
+ <cd:constant type="disattivo"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupinterlinespace2" variant="2" file="core-spa.tex">
+ <!-- attached a 2 to make this definition usable with \showsetup -->
+ <cd:sequence>
+ <cd:string value="impostainterlinea"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="altezza">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="profondita">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="riga">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="cima">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="fondo">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppagenumbering" file="page-num.tex">
+ <cd:sequence>
+ <cd:string value="impostanumerazionepagina"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="alternativa">
+ <cd:constant type="facciasingola"/>
+ <cd:constant type="doppiafaccia"/>
+ </cd:parameter>
+ <cd:parameter name="luogo">
+ <cd:constant type="intestazione"/>
+ <cd:constant type="piedipagina"/>
+ <cd:constant type="sinistra"/>
+ <cd:constant type="destra"/>
+ <cd:constant type="centro"/>
+ <cd:constant type="margine"/>
+ <cd:constant type="bordomargine"/>
+ <cd:constant type="insinistra"/>
+ <cd:constant type="indestra"/>
+ </cd:parameter>
+ <cd:parameter name="conversione">
+ <cd:constant type="numeri"/>
+ <cd:constant type="lettere"/>
+ <cd:constant type="Lettere"/>
+ <cd:constant type="numeriromani"/>
+ <cd:constant type="Numeriromani"/>
+ </cd:parameter>
+ <cd:parameter name="stile">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="sinistra">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="destra">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="modo">
+ <cd:constant type="bytext"/>
+ <cd:constant type="bycd:section"/>
+ </cd:parameter>
+ <cd:parameter name="testo">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="separatorenumero">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="separatoretesto">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="cd:sectionnumber">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="separatore">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="strut">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="stato">
+ <cd:constant type="inizia"/>
+ <cd:constant type="termina"/>
+ </cd:parameter>
+ <cd:parameter name="ampiezza">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="comando">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupnarrower" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="impostapiustretto"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="sinistra">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="destra">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="centro">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="define" file="syst-ext.tex">
+ <cd:sequence>
+ <cd:string value="definisci"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ <cd:csname n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usecommands" file="core-sys.tex">
+ <cd:sequence>
+ <cd:string value="usacomandi"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definestartstop" file="core-sys.tex">
+ <cd:sequence>
+ <cd:string value="definisciiniziatermina"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="prima">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dopo">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="stile">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="comandi">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupheads" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="impostateste"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="numerosezione">
+ <cd:constant type="si"/>
+ <cd:constant type="cd:number"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="alternativa">
+ <cd:constant type="normale"/>
+ <cd:constant type="margine"/>
+ <cd:constant type="centro"/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="capoverso"/>
+ </cd:parameter>
+ <cd:parameter name="separatore">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="stopper">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="allinea">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="allineatitolo">
+ <cd:constant type="si"/>
+ <cd:constant type="oggettomobile"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="tolleranza">
+ <cd:constant type="moltorigido"/>
+ <cd:constant type="rigido"/>
+ <cd:constant type="tollerante"/>
+ <cd:constant type="moltotollerante"/>
+ <cd:constant type="dilata"/>
+ </cd:parameter>
+ <cd:parameter name="rientrasuccessivo">
+ <cd:resolve name="indentnext"/>
+ </cd:parameter>
+ <cd:parameter name="comando">
+ <cd:constant type="cd:twoarguments"/>
+ </cd:parameter>
+ <cd:parameter name="margine">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcaptions" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="impostacaptions"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="luogo">
+ <cd:constant type="cima"/>
+ <cd:constant type="fondo"/>
+ <cd:constant type="nessuno"/>
+ <cd:constant type="alto"/>
+ <cd:constant type="basso"/>
+ <cd:constant type="centro"/>
+ <cd:constant type="sinistra"/>
+ <cd:constant type="centro"/>
+ <cd:constant type="destra"/>
+ <cd:constant type="lefthanging"/>
+ <cd:constant type="righthanging"/>
+ <cd:constant type="marginesinistro"/>
+ <cd:constant type="marginedestro"/>
+ <cd:constant type="margineinterno"/>
+ <cd:constant type="margineesterno"/>
+ </cd:parameter>
+ <cd:parameter name="ampiezza">
+ <cd:constant type="adatta"/>
+ <cd:constant type="ampio"/>
+ <cd:constant type="max"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="ampiezzamin">
+ <cd:constant type="adatta"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="stiletesta">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="stile">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="numero">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ <cd:constant type="nessuno"/>
+ </cd:parameter>
+ <cd:parameter name="tra">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="allinea">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="conversione">
+ <cd:constant type="numeri"/>
+ <cd:constant type="lettere"/>
+ <cd:constant type="Lettere"/>
+ <cd:constant type="numeriromani"/>
+ <cd:constant type="Numeriromani"/>
+ </cd:parameter>
+ <cd:parameter name="modo">
+ <cd:constant type="bytext"/>
+ <cd:constant type="bycd:section"/>
+ </cd:parameter>
+ <cd:parameter name="separatore">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="stopper">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="comando">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="distanza">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcaption" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="impostacaption"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="impostacaptions" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfloats" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="impostaoggettimobili"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="luogo">
+ <cd:constant type="sinistra"/>
+ <cd:constant type="destra"/>
+ <cd:constant type="centro"/>
+ </cd:parameter>
+ <cd:parameter name="ampiezza">
+ <cd:constant type="adatta"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="prima">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dopo">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="margine">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="spazioprima">
+ <cd:constant type="piccolo"/>
+ <cd:constant type="medio"/>
+ <cd:constant type="grande"/>
+ <cd:constant type="nessuno"/>
+ </cd:parameter>
+ <cd:parameter name="spaziodopo">
+ <cd:constant type="piccolo"/>
+ <cd:constant type="medio"/>
+ <cd:constant type="grande"/>
+ <cd:constant type="nessuno"/>
+ </cd:parameter>
+ <cd:parameter name="spaziolateraleprima">
+ <cd:constant type="piccolo"/>
+ <cd:constant type="medio"/>
+ <cd:constant type="grande"/>
+ <cd:constant type="nessuno"/>
+ </cd:parameter>
+ <cd:parameter name="spaziolateraledopo">
+ <cd:constant type="piccolo"/>
+ <cd:constant type="medio"/>
+ <cd:constant type="grande"/>
+ <cd:constant type="nessuno"/>
+ </cd:parameter>
+ <cd:parameter name="rientrasuccessivo">
+ <cd:resolve name="indentnext"/>
+ </cd:parameter>
+ <cd:parameter name="ncima">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="nfondo">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="nrighe">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="implicito">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="tolleranza">
+ <cd:constant type="0"/>
+ <cd:constant type="1"/>
+ <cd:constant type="2"/>
+ </cd:parameter>
+ <cd:parameter name="distanzamarginesinistro">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distanzamarginedestro">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="sidealign">
+ <cd:constant type="normale"/>
+ <cd:constant type="riga"/>
+ </cd:parameter>
+ <cd:parameter name="numerazione">
+ <cd:constant type="si"/>
+ <cd:constant type="nocheck"/>
+ </cd:parameter>
+ <cd:inherit name="impostaincorniciato" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfloatsplitting" file="core-tsp.tex">
+ <cd:sequence>
+ <cd:string value="impostaspezzamentooggettomobile"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="conversione">
+ <cd:constant type="numeri"/>
+ <cd:constant type="lettere"/>
+ <cd:constant type="Lettere"/>
+ <cd:constant type="numeriromani"/>
+ <cd:constant type="Numeriromani"/>
+ </cd:parameter>
+ <cd:parameter name="righe">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="splitfloat" file="core-tsp.tex">
+ <cd:sequence>
+ <cd:string value="spezzaoggettomobile"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="impostaspezzamentooggettomobile" n="1"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupoppositeplacing" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="impostaposizionamentoopposti"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1">
+ <cd:parameter name="stato">
+ <cd:constant type="inizia"/>
+ <cd:constant type="termina"/>
+ </cd:parameter>
+ <cd:parameter name="prima">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="tra">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dopo">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="opposite" type="environment" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="opposite"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setuphyphenmark" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="impostasegnosillabazione"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1">
+ <cd:parameter name="segno">
+ <cd:constant type="--"/>
+ <cd:constant type="---"/>
+ <cd:constant type="-"/>
+ <cd:constant type="~"/>
+ <cd:constant type="("/>
+ <cd:constant type=")"/>
+ <cd:constant type="="/>
+ <cd:constant type="/"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppositioning" file="page-lyr.tex">
+ <cd:sequence>
+ <cd:string value="impostaposizionamento"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="stato">
+ <cd:constant type="inizia"/>
+ <cd:constant type="sovrapponi"/>
+ </cd:parameter>
+ <cd:parameter name="unita">
+ <cd:constant type="cm"/>
+ <cd:constant type="pt"/>
+ <cd:constant type="em"/>
+ <cd:constant type="mm"/>
+ <cd:constant type="ex"/>
+ <cd:constant type="es"/>
+ <cd:constant type="in"/>
+ </cd:parameter>
+ <cd:parameter name="fattore">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="scala">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="offset">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="xstep">
+ <cd:constant type="assoluto"/>
+ <cd:constant type="relativo"/>
+ </cd:parameter>
+ <cd:parameter name="ystep">
+ <cd:constant type="assoluto"/>
+ <cd:constant type="relativo"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="positioning" type="environment" file="page-lyr.tex">
+ <cd:sequence>
+ <cd:string value="positioning"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="grid" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="griglia"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="x">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="y">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="nx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ny">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="dx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="dy">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="xstep">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ystep">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="offset">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="fattore">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="scala">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="unita">
+ <cd:constant type="cm"/>
+ <cd:constant type="pt"/>
+ <cd:constant type="em"/>
+ <cd:constant type="mm"/>
+ <cd:constant type="ex"/>
+ <cd:constant type="es"/>
+ <cd:constant type="in"/>
+ </cd:parameter>
+ <cd:parameter name="luogo">
+ <cd:constant type="sinistra"/>
+ <cd:constant type="centro"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="page" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="pagina"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="si" default="yes"/>
+ <cd:constant type="makeup"/>
+ <cd:constant type="no"/>
+ <cd:constant type="preferenza"/>
+ <cd:constant type="grandepreferenza"/>
<cd:constant type="sinistra"/>
<cd:constant type="destra"/>
- <cd:constant type="centro"/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="adatta"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="margine">
+ <cd:constant type="disattiva"/>
+ <cd:constant type="ultimo"/>
+ <cd:constant type="quadruplo"/>
+ <cd:constant type="pari"/>
+ <cd:constant type="dispari"/>
+ <cd:constant type="rigovuoto"/>
+ <cd:constant type="vuoto"/>
+ <cd:constant type="reimposta"/>
+ <cd:constant type="inizia"/>
+ <cd:constant type="termina"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupreferencing" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="impostariferimento"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="stato">
+ <cd:constant type="inizia"/>
+ <cd:constant type="termina"/>
+ </cd:parameter>
+ <cd:parameter name="cd:sectionnumber">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="prefisso">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="interazione">
+ <cd:constant type="etichetta"/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="tutti"/>
+ <cd:constant type="simbolo"/>
+ </cd:parameter>
+ <cd:parameter name="ampiezza">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="sinistra">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="destra">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="convertifile">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ <cd:constant type="piccolo"/>
+ <cd:constant type="grande"/>
+ </cd:parameter>
+ <cd:parameter name="separatore">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="autofile">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ <cd:constant type="pagina"/>
+ </cd:parameter>
+ <cd:parameter name="globale">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupurl" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="impostaurl"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="stile">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="alternativaurl">
+ <cd:constant type="nessuno"/>
+ <cd:constant type="entrambi"/>
+ <cd:constant type="prima"/>
+ <cd:constant type="dopo"/>
+ </cd:parameter>
+ <cd:parameter name="spaziourl">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="writetoreferencelist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="scriviinlistariferimenti"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placereferencelist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="placereferencelist"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definereferencelist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="definiscilistariferimenti"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="impostalistariferimenti" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupreferencelist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="impostalistariferimenti"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="stato">
+ <cd:constant type="inizia"/>
+ <cd:constant type="termina"/>
+ </cd:parameter>
+ <cd:parameter name="criterio">
+ <cd:constant type="cd:section"/>
+ <cd:constant type="locale"/>
+ <cd:constant type="precedente"/>
+ <cd:constant type="tutti"/>
+ </cd:parameter>
+ <cd:parameter name="comando">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="prima">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dopo">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="writetolist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="scriviinelenco"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:section"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="writebetweenlist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="scrividentroelenco"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:section"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nolist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="nienteelenco"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="listsymbol" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="listsymbol"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placelist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="mettielenco"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="impostaelenco" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="determinelistcharacteristics" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="determinacarattersticheelenco"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="impostaelenco" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placecombinedlist" variant="1" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="mettielencocombinato"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="impostaelencocombinato" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definelist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="definiscielenco"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes"> <!-- inherits from -->
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="impostaelenco" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="impostaelenco"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="stato">
+ <cd:constant type="inizia"/>
+ <cd:constant type="termina"/>
+ </cd:parameter>
+ <cd:parameter name="alternativa">
+ <cd:constant type="a"/>
+ <cd:constant type="b"/>
+ <cd:constant type="c"/>
+ <cd:constant type="..."/>
+ <cd:constant type="nessuno"/>
+ <cd:constant type="comando"/>
+ </cd:parameter>
+ <cd:parameter name="accoppiamento">
+ <cd:constant type="attivo"/>
+ <cd:constant type="disattivo"/>
+ </cd:parameter>
+ <cd:parameter name="criterio">
+ <cd:constant type="cd:section"/>
+ <cd:constant type="locale"/>
+ <cd:constant type="precedente"/>
+ <cd:constant type="corrente"/>
+ <cd:constant type="tutti"/>
+ </cd:parameter>
+ <cd:parameter name="limitipagina">
+ <cd:constant type="cd:list"/>
+ </cd:parameter>
+ <cd:parameter name="stile">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="stilenumero">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="stiletesto">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="stilepagina">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="colore">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="comando">
+ <cd:constant type="cd:threearguments"/>
+ </cd:parameter>
+ <cd:parameter name="comandonumero">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="comandotesto">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="comandopagina">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="interazione">
+ <cd:constant type="cd:sectionnumber"/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="numeropagina"/>
+ <cd:constant type="tutti"/>
+ </cd:parameter>
+ <cd:parameter name="prima">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dopo">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="tra">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="sinistra">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="destra">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="etichetta">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="prefisso">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ <cd:constant type="nessuno"/>
+ </cd:parameter>
+ <cd:parameter name="numeropagina">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="numerotesta">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="cd:sectionnumber">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="allineatitolo">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="margine">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="ampiezza">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="adatta"/>
+ </cd:parameter>
+ <cd:parameter name="altezza">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="adatta"/>
+ <cd:constant type="ampio"/>
+ </cd:parameter>
+ <cd:parameter name="profondita">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="adatta"/>
+ <cd:constant type="ampio"/>
+ </cd:parameter>
+ <cd:parameter name="distanza">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="separatore">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="stopper">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="simbolo">
+ <cd:constant type="nessuno"/>
+ <cd:constant type="1"/>
+ <cd:constant type="2"/>
+ <cd:constant type="3"/>
+ <cd:constant type="..."/>
+ </cd:parameter>
+ <cd:parameter name="espansione">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ <cd:constant type="comando"/>
+ </cd:parameter>
+ <cd:parameter name="ampiezzamax">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:inherit name="impostaincorniciato" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplistalternative" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="setuplistalternative"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="no">
+ <cd:constant type="a"/>
+ <cd:constant type="b"/>
+ <cd:constant type="c"/>
+ <!-- cd:constant type="cd:name"/ -->
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="comando">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="ampiezza">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="dilata">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distanza">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definecombinedlist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="definiscielencocombinato"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="cd:list"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="impostaelencocombinato" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcombinedlist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="impostaelencocombinato"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="livello">
+ <cd:constant type="1"/>
+ <cd:constant type="2"/>
+ <cd:constant type="3"/>
+ <cd:constant type="4"/>
+ <cd:constant type="cd:section"/>
+ <cd:constant type="corrente"/>
+ </cd:parameter>
+ <cd:inherit name="impostaelenco" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placecombinedlist" variant="2" generated="yes" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="metti"/>
+ <cd:variable value="combinedlist"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="impostaelencocombinato" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="completecombinedlist" generated="yes" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="completo"/>
+ <cd:variable value="combinedlist"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="impostaelencocombinato" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupnumbering" file="core-num.tex">
+ <cd:sequence>
+ <cd:string value="impostanumerazione"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="modo">
+ <cd:constant type="bytext"/>
+ <cd:constant type="bycd:section"/>
+ </cd:parameter>
+ <cd:parameter name="stato">
+ <cd:constant type="inizia"/>
+ <cd:constant type="termina"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupformulas" file="core-mat.tex">
+ <cd:sequence>
+ <cd:string value="impostaformule"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="luogo">
+ <cd:constant type="sinistra"/>
+ <cd:constant type="destra"/>
+ </cd:parameter>
+ <cd:parameter name="sinistra">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="destra">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="allinea">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="opzione">
+ <cd:constant type="centro"/>
+ </cd:parameter>
+ <cd:parameter name="strut">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="distanza">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="margine">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="standard"/>
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="allinea">
+ <cd:constant type="flushleft"/>
+ <cd:constant type="flushright"/>
+ <cd:constant type="centro"/>
+ <cd:constant type="center"/>
+ </cd:parameter>
+ <cd:parameter name="marginesinistro">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="marginedestro">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rientrasuccessivo">
+ <cd:resolve name="indentnext"/>
+ </cd:parameter>
+ <cd:parameter name="alternativa">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="spazioprima">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="dopo">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="separatore">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="conversione">
+ <cd:constant type="numeri"/>
+ <cd:constant type="lettere"/>
+ <cd:constant type="Lettere"/>
+ <cd:constant type="numeriromani"/>
+ <cd:constant type="Numeriromani"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="publication" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="pubblicazione"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppublications" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="impostapubblicazioni"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="alternativa">
+ <cd:constant type="apa"/>
+ <cd:constant type="normale"/>
+ </cd:parameter>
+ <cd:inherit name="impostaenumerazioni" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplines" file="page-lin.tex">
+ <cd:sequence>
+ <cd:string value="impostarighe"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="prima">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dopo">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="tra">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="rientro">
+ <cd:resolve name="indenting"/>
+ </cd:parameter>
+ <cd:parameter name="spazio">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="opzione">
+ <cd:constant type="impaccato"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="lines" type="environment">
+ <cd:sequence>
+ <cd:string value="lines"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupparagraphnumbering" file="page-lin.tex">
+ <cd:sequence>
+ <cd:string value="impostanumerazionecapoversi"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="stato">
+ <cd:constant type="inizia"/>
+ <cd:constant type="termina"/>
+ <cd:constant type="reimposta"/>
+ <cd:constant type="riga"/>
+ </cd:parameter>
+ <cd:parameter name="stile">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="distanza">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplinenumbering" file="page-lin.tex">
+ <cd:sequence>
+ <cd:string value="impostanumerazionerighe"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="conversione">
+ <cd:constant type="numeri"/>
+ <cd:constant type="lettere"/>
+ <cd:constant type="Lettere"/>
+ <cd:constant type="numeriromani"/>
+ <cd:constant type="Numeriromani"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="inizia">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="passo">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ampiezza">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="luogo">
+ <cd:constant type="intesto"/>
+ <cd:constant type="inmargine"/>
+ </cd:parameter>
+ <cd:parameter name="stile">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="prefisso">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="referencing">
+ <cd:constant type="attivo"/>
+ <cd:constant type="disattivo"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="linenumbering" type="environment" file="page-lin.tex"> <!-- mkii/mkiv -->
+ <cd:sequence>
+ <cd:string value="linenumbering"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="continua"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="line" type="environment">
+ <cd:sequence>
+ <cd:string value="line"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="someline" file="page-lin.tex">
+ <cd:sequence>
+ <cd:string value="qualcheriga"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inline" file="page-lin.tex">
+ <cd:sequence>
+ <cd:string value="inriga"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupinmargin" file="page-mar.tex">
+ <cd:sequence>
+ <cd:string value="impostainmargine"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="sinistra"/>
+ <cd:constant type="destra"/>
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="luogo">
+ <cd:constant type="sinistra"/>
+ <cd:constant type="destra"/>
+ <cd:constant type="entrambi"/>
+ </cd:parameter>
+ <cd:parameter name="stile">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="prima">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dopo">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="allinea">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="riga">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="distanza">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="separatore">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="ampiezza">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distanza">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="stack">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:inherit name="impostaincorniciato" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppagenumber" file="page-num.tex">
+ <cd:sequence>
+ <cd:string value="impostanumeropagina"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="numero">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="stato">
+ <cd:constant type="inizia"/>
+ <cd:constant type="termina"/>
+ <cd:constant type="mantieni"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsubpagenumber" file="page-num.tex">
+ <cd:sequence>
+ <cd:string value="impostanumerosottopagina"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="modo">
+ <cd:constant type="bytext"/>
+ <cd:constant type="bycd:section"/>
+ </cd:parameter>
+ <cd:parameter name="stato">
+ <cd:constant type="inizia"/>
+ <cd:constant type="termina"/>
+ <cd:constant type="nessuno"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupblank" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="impostarigovuoto"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="normale" default="yes"/>
+ <cd:constant type="implicito"/>
+ <cd:constant type="standard"/>
+ <cd:constant type="riga"/>
+ <cd:constant type="mezzariga"/>
<cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="spazioprima">
- <cd:constant type="piccolo"/>
- <cd:constant type="medio"/>
<cd:constant type="grande"/>
- <cd:constant type="nessuno"/>
- </cd:parameter>
- <cd:parameter name="spaziodopo">
- <cd:constant type="piccolo"/>
<cd:constant type="medio"/>
- <cd:constant type="grande"/>
- <cd:constant type="nessuno"/>
- </cd:parameter>
- <cd:parameter name="spaziolateraleprima">
<cd:constant type="piccolo"/>
- <cd:constant type="medio"/>
- <cd:constant type="grande"/>
+ <cd:constant type="fisso"/>
+ <cd:constant type="flessibile"/>
+ <cd:constant type="globale"/>
+ <cd:constant type="ignoto"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineblank" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="definiscirigovuoto"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:inherit name="impostarigovuoto" n="1"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definepapersize" file="page-lay.tex">
+ <cd:sequence>
+ <cd:string value="definiscidimensionicarta"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="ampiezza">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="altezza">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="offset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="scala">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppaper" file="page-lay.tex">
+ <cd:sequence>
+ <cd:string value="setuppaper"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="carta">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="pagina">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="nx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ny">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ampiezza">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="altezza">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="spaziocima">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="backspace">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="opzione">
+ <cd:constant type="max"/>
+ <cd:constant type="adatta"/>
+ </cd:parameter>
+ <cd:parameter name="metodo">
+ <cd:constant type="normale"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppapersize" file="page-lay.tex">
+ <cd:sequence>
+ <cd:string value="impostadimensionicarta"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="A3"/>
+ <cd:constant type="A4" default="yes"/>
+ <cd:constant type="A5"/>
+ <cd:constant type="A6"/>
+ <cd:constant type="letter"/>
+ <cd:constant type="..."/>
+ <cd:constant type="CD"/>
+ <cd:constant type="cd:name"/>
+ <cd:constant type="orizzontale"/>
+ <cd:constant type="riflesso"/>
+ <cd:constant type="ruotato"/>
+ <cd:constant type="90"/>
+ <cd:constant type="180"/>
+ <cd:constant type="270"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="negativo"/>
+ <cd:inherit name="impostadimensionicarta" n="1"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuparranging" file="page-imp.tex">
+ <cd:sequence>
+ <cd:string value="impostaparranging"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="disattiva"/>
+ <cd:constant type="2*16"/>
+ <cd:constant type="2*8"/>
+ <cd:constant type="2*4"/>
+ <cd:constant type="2*2"/>
+ <cd:constant type="2**2"/>
+ <cd:constant type="2*2*4"/>
+ <cd:constant type="2*4*2"/>
+ <cd:constant type="2UP"/>
+ <cd:constant type="2DOWN"/>
+ <cd:constant type="2SIDE"/>
+ <cd:constant type="2TOP"/>
+ <cd:constant type="riflesso"/>
+ <cd:constant type="ruotato"/>
+ <cd:constant type="doppiafaccia"/>
+ <cd:constant type="negativo"/>
+ <cd:constant type="sfondo"/>
+ <cd:constant type="90"/>
+ <cd:constant type="180"/>
+ <cd:constant type="270"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showprint" file="page-run.tex"> <!-- page-lay.tex -->
+ <cd:sequence>
+ <cd:string value="mostrastampa"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:inherit name="impostadimensionicarta" n="1"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:inherit name="impostadimensionicarta" n="2"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:inherit name="impostalayout" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definelogo" file="page-log.tex">
+ <cd:sequence>
+ <cd:string value="definiscilogo"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cima"/>
+ <cd:constant type="intestazione"/>
+ <cd:constant type="piedipagina"/>
+ <cd:constant type="fondo"/>
+ </cd:keywords>
+ <cd:keywords n="3">
<cd:constant type="nessuno"/>
- </cd:parameter>
- <cd:parameter name="spaziolateraledopo">
+ <cd:constant type="pagina"/>
+ <cd:constant type="bordosinistro"/>
+ <cd:constant type="marginesinistro"/>
+ <cd:constant type="sinistra"/>
+ <cd:constant type="centro"/>
+ <cd:constant type="destra"/>
+ <cd:constant type="marginedestro"/>
+ <cd:constant type="bordodestro"/>
+ </cd:keywords>
+ <cd:assignments n="4" list="yes">
+ <cd:parameter name="comando">
+ <cd:constant type="cd:command"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="stato">
+ <cd:constant type="inizia"/>
+ <cd:constant type="termina"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placelogos" file="page-log.tex">
+ <cd:sequence>
+ <cd:string value="mettiloghi"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupwhitespace">
+ <cd:sequence>
+ <cd:string value="impostaspaziobianco"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="nessuno" default="yes"/>
<cd:constant type="piccolo"/>
<cd:constant type="medio"/>
<cd:constant type="grande"/>
- <cd:constant type="nessuno"/>
- </cd:parameter>
- <cd:parameter name="rientrasuccessivo">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="ncima">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="nfondo">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="nrighe">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="implicito">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="tolleranza">
- <cd:constant type="0"/>
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- </cd:parameter>
- <cd:parameter name="distanzamarginesinistro">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanzamarginedestro">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="sidealign">
- <cd:constant type="normale"/>
<cd:constant type="riga"/>
- </cd:parameter>
- <cd:parameter name="numerazione">
- <cd:constant type="si"/>
- <cd:constant type="nocheck"/>
- </cd:parameter>
- <cd:inherit name="impostaincorniciato"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfloatsplitting" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="impostaspezzamentooggettomobile"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="conversione">
- <cd:constant type="numeri"/>
- <cd:constant type="lettere"/>
- <cd:constant type="Lettere"/>
- <cd:constant type="numeriromani"/>
- <cd:constant type="Numeriromani"/>
- </cd:parameter>
- <cd:parameter name="righe">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="splitfloat" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="spezzaoggettomobile"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="impostaspezzamentooggettomobile"/>
- </cd:assignments>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupoppositeplacing" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="impostaposizionamentoopposti"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments>
- <cd:parameter name="stato">
- <cd:constant type="inizia"/>
- <cd:constant type="termina"/>
- </cd:parameter>
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="tra">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="opposite" type="environment">
- <cd:sequence>
- <cd:string value="opposite"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setuphyphenmark" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="impostasegnosillabazione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments>
- <cd:parameter name="segno">
- <cd:constant type="--"/>
- <cd:constant type="---"/>
- <cd:constant type="-"/>
- <cd:constant type="~"/>
- <cd:constant type="("/>
- <cd:constant type=")"/>
- <cd:constant type="="/>
- <cd:constant type="/"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuppositioning" file="page-lyr.tex">
- <cd:sequence>
- <cd:string value="impostaposizionamento"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="stato">
- <cd:constant type="inizia"/>
- <cd:constant type="sovrapponi"/>
- </cd:parameter>
- <cd:parameter name="unita">
- <cd:constant type="cm"/>
- <cd:constant type="pt"/>
- <cd:constant type="em"/>
- <cd:constant type="mm"/>
- <cd:constant type="ex"/>
- <cd:constant type="es"/>
- <cd:constant type="in"/>
- </cd:parameter>
- <cd:parameter name="fattore">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="scala">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="offset">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="xstep">
- <cd:constant type="assoluto"/>
- <cd:constant type="relativo"/>
- </cd:parameter>
- <cd:parameter name="ystep">
- <cd:constant type="assoluto"/>
- <cd:constant type="relativo"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="positioning" type="environment">
- <cd:sequence>
- <cd:string value="positioning"/>
- </cd:sequence>
-</cd:command>
+ <cd:constant type="fisso"/>
+ <cd:constant type="fisso"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
-<cd:command name="grid" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="griglia"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="x">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="y">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="nx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ny">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="dx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="dy">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="xstep">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ystep">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="offset">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="fattore">
+ <cd:command name="setupindenting">
+ <cd:sequence>
+ <cd:string value="impostarientro"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:resolve name="indenting"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definesectionblock" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="definiscibloccosezione"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:inherit name="impostabloccosezione" n="1"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="impostabloccosezione" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsectionblock" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="impostabloccosezione"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="numero">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="pagina">
+ <cd:constant type="si"/>
+ <cd:constant type="destra"/>
+ </cd:parameter>
+ <cd:parameter name="prima">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dopo">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definesection" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="definiscisezione"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsection" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="impostasezione"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:parameter name="conversione">
+ <cd:constant type="numeri"/>
+ <cd:constant type="lettere"/>
+ <cd:constant type="Lettere"/>
+ <cd:constant type="numeriromani"/>
+ <cd:constant type="Numeriromani"/>
+ </cd:parameter>
+ <cd:parameter name="numeroprecedente">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuphead" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="impostatesta"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:section"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="stile">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="stiletesto">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="stilenumero">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="colore">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="coloretesto">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="colorenumero">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="numero">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="numeroproprio">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="pagina">
+ <cd:constant type="sinistra"/>
+ <cd:constant type="destra"/>
+ <cd:constant type="si"/>
+ </cd:parameter>
+ <cd:parameter name="continua">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="intestazione">
+ <cd:constant type="nessuno"/>
+ <cd:constant type="vuoto"/>
+ <cd:constant type="alto"/>
+ <cd:constant type="nomarcature"/>
+ </cd:parameter>
+ <cd:parameter name="testo">
+ <cd:constant type="nessuno"/>
+ <cd:constant type="vuoto"/>
+ <cd:constant type="alto"/>
+ <cd:constant type="nomarcature"/>
+ </cd:parameter>
+ <cd:parameter name="piedipagina">
+ <cd:constant type="nessuno"/>
+ <cd:constant type="vuoto"/>
+ <cd:constant type="alto"/>
+ <cd:constant type="nomarcature"/>
+ </cd:parameter>
+ <cd:parameter name="prima">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="tra">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dopo">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="alternativa">
+ <cd:constant type="normale"/>
+ <cd:constant type="inmargine"/>
+ <cd:constant type="centro"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="sospendi">
+ <cd:constant type="nessuno"/>
+ <cd:constant type="ampio"/>
+ <cd:constant type="adatta"/>
+ <cd:constant type="riga"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="comando">
+ <cd:constant type="cd:twoarguments"/>
+ </cd:parameter>
+ <cd:parameter name="comandonumero">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="comandotesto">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="deepnumbercommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="deeptextcommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="prefisso">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="mettitesta">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ <cd:constant type="vuoto"/>
+ </cd:parameter>
+ <cd:parameter name="incrementanumero">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ <cd:constant type="cd:list"/>
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="resetnumber">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="file">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="espansione">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ <cd:constant type="comando"/>
+ </cd:parameter>
+ <cd:parameter name="testomargine">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:inherit name="impostateste" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupheadnumber" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="impostanumerotesta"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:section"/>
+ </cd:keywords>
+ <cd:keywords n="2">
<cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="scala">
+ <cd:constant type="+cd:number"/>
+ <cd:constant type="-cd:number"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="headnumber">
+ <cd:sequence>
+ <cd:string value="numerotesta"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:section"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="determineheadnumber" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="determinanumerotesta"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:section"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="currentheadnumber" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="numerotestacorrente"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="nextsection" generated="yes" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="successivo"/>
+ <cd:variable value="capoverso"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="definehead" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="definiscitesta"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:section"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupitemgroup" file="core-itm.tex">
+ <cd:sequence>
+ <cd:string value="setupitemgroup"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
<cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="unita">
- <cd:constant type="cm"/>
- <cd:constant type="pt"/>
- <cd:constant type="em"/>
- <cd:constant type="mm"/>
- <cd:constant type="ex"/>
- <cd:constant type="es"/>
- <cd:constant type="in"/>
- </cd:parameter>
- <cd:parameter name="luogo">
- <cd:constant type="sinistra"/>
- <cd:constant type="centro"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="page" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="pagina"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="si" default="yes"/>
- <cd:constant type="makeup"/>
- <cd:constant type="no"/>
- <cd:constant type="preferenza"/>
- <cd:constant type="grandepreferenza"/>
- <cd:constant type="sinistra"/>
- <cd:constant type="destra"/>
- <cd:constant type="disattiva"/>
- <cd:constant type="ultimo"/>
- <cd:constant type="quadruplo"/>
- <cd:constant type="pari"/>
- <cd:constant type="dispari"/>
- <cd:constant type="rigovuoto"/>
- <cd:constant type="vuoto"/>
- <cd:constant type="reimposta"/>
- <cd:constant type="inizia"/>
- <cd:constant type="termina"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupreferencing" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="impostariferimento"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="stato">
- <cd:constant type="inizia"/>
- <cd:constant type="termina"/>
- </cd:parameter>
- <cd:parameter name="cd:sectionnumber">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="prefisso">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="interazione">
- <cd:constant type="etichetta"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="tutti"/>
- <cd:constant type="simbolo"/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="sinistra">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="destra">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="convertifile">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- <cd:constant type="piccolo"/>
- <cd:constant type="grande"/>
- </cd:parameter>
- <cd:parameter name="separatore">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="autofile">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- <cd:constant type="pagina"/>
- </cd:parameter>
- <cd:parameter name="globale">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupurl" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="impostaurl"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="alternativaurl">
- <cd:constant type="nessuno"/>
- <cd:constant type="entrambi"/>
+ <cd:constant type="ogni"/>
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes" list="yes">
+ <cd:constant type="standard" default="yes"/>
+ <cd:constant type="ampio"/>
+ <cd:constant type="vicino"/>
+ <cd:constant type="impaccato"/>
+ <cd:constant type="unpacked"/>
+ <cd:constant type="nobianco"/>
<cd:constant type="prima"/>
<cd:constant type="dopo"/>
- </cd:parameter>
- <cd:parameter name="spaziourl">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="writetoreferencelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="scriviinlistariferimenti"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placereferencelist">
- <cd:sequence>
- <cd:string value="placereferencelist"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definereferencelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="definiscilistariferimenti"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="impostalistariferimenti"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupreferencelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="impostalistariferimenti"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="stato">
- <cd:constant type="inizia"/>
- <cd:constant type="termina"/>
- </cd:parameter>
- <cd:parameter name="criterio">
+ <cd:constant type="stopper"/>
+ <cd:constant type="unito"/>
+ <cd:constant type="almargine"/>
+ <cd:constant type="inmargine"/>
+ <cd:constant type="autointro"/>
+ <cd:constant type="lento"/>
+ <cd:constant type="ripeti"/>
<cd:constant type="cd:section"/>
- <cd:constant type="locale"/>
- <cd:constant type="precedente"/>
- <cd:constant type="tutti"/>
- </cd:parameter>
- <cd:parameter name="comando">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="writetolist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="scriviinelenco"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:section"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="writebetweenlist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="scrividentroelenco"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:section"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="nolist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="nienteelenco"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="listsymbol" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="listsymbol"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="mettielenco"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="impostaelenco"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="determinelistcharacteristics" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="determinacarattersticheelenco"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="impostaelenco"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placecombinedlist" variant="1" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="mettielencocombinato"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="impostaelencocombinato"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="definiscielenco"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="impostaelenco"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuplist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="impostaelenco"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="stato">
- <cd:constant type="inizia"/>
- <cd:constant type="termina"/>
- </cd:parameter>
- <cd:parameter name="alternativa">
+ <cd:constant type="capoverso"/>
+ <cd:constant type="intesto"/>
+ <cd:constant type="casuale"/>
+ <cd:constant type="invertito"/>
+ </cd:keywords>
+ <cd:assignments n="4" optional="yes" list="yes">
+ <cd:parameter name="margine">
+ <cd:constant type="no"/>
+ <cd:constant type="standard"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="marginesinistro">
+ <cd:constant type="no"/>
+ <cd:constant type="standard"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="marginedestro">
+ <cd:constant type="no"/>
+ <cd:constant type="standard"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="ampiezza">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distanza">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="fattore">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="elementi">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="inizia">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="prima">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="tra">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dopo">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="sinistra">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="destra">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="primaditesta">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dopotesta">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="stiletesta">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="stilemarcatura">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="stilesimbolo">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="stopper">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="simbolo">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="allinea">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="symallinea">
+ <cd:resolve name="symalign"/>
+ </cd:parameter>
+ <cd:parameter name="rientrasuccessivo">
+ <cd:resolve name="indentnext"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="itemgroup" type="environment" generated="yes" file="core-itm.tex">
+ <cd:sequence>
+ <cd:variable value="itemgroup"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
<cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- <cd:constant type="..."/>
- <cd:constant type="nessuno"/>
- <cd:constant type="comando"/>
- </cd:parameter>
- <cd:parameter name="accoppiamento">
- <cd:constant type="attivo"/>
- <cd:constant type="disattivo"/>
- </cd:parameter>
- <cd:parameter name="criterio">
- <cd:constant type="cd:section"/>
- <cd:constant type="locale"/>
- <cd:constant type="precedente"/>
- <cd:constant type="corrente"/>
- <cd:constant type="tutti"/>
- </cd:parameter>
- <cd:parameter name="limitipagina">
- <cd:constant type="cd:list"/>
- </cd:parameter>
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stilenumero">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stiletesto">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stilepagina">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="colore">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="comando">
- <cd:constant type="cd:threearguments"/>
- </cd:parameter>
- <cd:parameter name="comandonumero">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="comandotesto">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="comandopagina">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="interazione">
- <cd:constant type="cd:sectionnumber"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="numeropagina"/>
- <cd:constant type="tutti"/>
- </cd:parameter>
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="tra">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="sinistra">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="destra">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="etichetta">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="prefisso">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- <cd:constant type="nessuno"/>
- </cd:parameter>
- <cd:parameter name="numeropagina">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="numerotesta">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="cd:sectionnumber">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="allineatitolo">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="margine">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="adatta"/>
- </cd:parameter>
- <cd:parameter name="altezza">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="adatta"/>
- <cd:constant type="ampio"/>
- </cd:parameter>
- <cd:parameter name="profondita">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="adatta"/>
+ <cd:constant type="A"/>
+ <cd:constant type="KA"/>
+ <cd:constant type="n"/>
+ <cd:constant type="N"/>
+ <cd:constant type="m"/>
+ <cd:constant type="r"/>
+ <cd:constant type="R"/>
+ <cd:constant type="KR"/>
+ <cd:constant type="cd:number"/>
+ <cd:constant type="continua"/>
+ <cd:constant type="standard" default="yes"/>
<cd:constant type="ampio"/>
- </cd:parameter>
- <cd:parameter name="distanza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="separatore">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="stopper">
+ <cd:constant type="vicino"/>
+ <cd:constant type="impaccato"/>
+ <cd:constant type="stopper"/>
+ <cd:constant type="unito"/>
+ <cd:constant type="almargine"/>
+ <cd:constant type="inmargine"/>
+ <cd:constant type="intro"/>
+ <cd:constant type="colonne"/>
+ <cd:constant type="testo"/>
+ <cd:constant type="capoverso"/>
+ <cd:constant type="ripeti"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="setupitemgroup" n="4"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="item" file="core-itm.tex">
+ <cd:sequence>
+ <cd:string value="elemento"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="but">
+ <cd:sequence>
+ <cd:string value="fondo"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" interactive="exclusive"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="its">
+ <cd:sequence>
+ <cd:string value="el"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ran">
+ <cd:sequence>
+ <cd:string value="ran"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="head">
+ <cd:sequence>
+ <cd:string value="testa"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mar">
+ <cd:sequence>
+ <cd:string value="mar"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="sub">
+ <cd:sequence>
+ <cd:string value="sub"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="sym" file="core-itm.tex">
+ <cd:sequence>
+ <cd:string value="sim"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nop">
+ <cd:sequence>
+ <cd:string value="nop"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="defineregister" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="definisciregistro"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:singular"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:plural"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupregister" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="impostaregistro"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:singular"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="bilanciamento">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="allinea">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="stile">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="stilepagina">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="stiletesto">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="indicatore">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="accoppiamento">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="cd:sectionnumber">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="criterio">
+ <cd:constant type="cd:section"/>
+ <cd:constant type="locale"/>
+ <cd:constant type="tutti"/>
+ </cd:parameter>
+ <cd:parameter name="distanza">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="simbolo">
+ <cd:constant type="1"/>
+ <cd:constant type="2"/>
+ <cd:constant type="..."/>
+ <cd:constant type="n"/>
+ <cd:constant type="a"/>
+ <cd:constant type="..."/>
+ <cd:constant type="nessuno"/>
+ </cd:parameter>
+ <cd:parameter name="interazione">
+ <cd:constant type="numeropagina"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="espansione">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ <cd:constant type="comando"/>
+ </cd:parameter>
+ <cd:parameter name="referencing">
+ <cd:constant type="attivo"/>
+ <cd:constant type="disattivo"/>
+ </cd:parameter>
+ <cd:parameter name="comando">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="luogo">
+ <cd:constant type="sinistra"/>
+ <cd:constant type="centro"/>
+ <cd:constant type="destra"/>
+ </cd:parameter>
+ <cd:parameter name="ampiezzamax">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="riferimentoingoto">
+ <cd:constant type="vuoto"/>
+ <cd:constant type="nessuno"/>
+ </cd:parameter>
+ <cd:parameter name="alternativa">
+ <cd:constant type="a"/>
+ <cd:constant type="b"/>
+ <cd:constant type="A"/>
+ <cd:constant type="B"/>
+ </cd:parameter>
+ <cd:parameter name="prefisso">
+ <cd:constant type="entrambi"/>
+ <cd:constant type="primo"/>
+ <cd:constant type="nessuno"/>
+ </cd:parameter>
+ <cd:parameter name="compress">
+ <cd:constant type="no"/>
+ <cd:constant type="si"/>
+ </cd:parameter>
+ <cd:parameter name="deeptextcommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="register" generated="yes" file="core-reg.tex">
+ <cd:sequence>
+ <cd:variable value="registro"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="simbolo">
- <cd:constant type="nessuno"/>
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- <cd:constant type="3"/>
- <cd:constant type="..."/>
- </cd:parameter>
- <cd:parameter name="espansione">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- <cd:constant type="comando"/>
- </cd:parameter>
- <cd:parameter name="ampiezzamax">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:inherit name="incorniciato"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuplistalternative" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="setuplistalternative"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="no">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- <!-- cd:constant type="cd:name"/ -->
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="comando">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="dilata">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definecombinedlist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="definiscielencocombinato"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:list"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="impostaelencocombinato"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupcombinedlist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="impostaelencocombinato"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="livello">
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- <cd:constant type="3"/>
- <cd:constant type="4"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="corrente"/>
- </cd:parameter>
- <cd:inherit name="impostaelenco"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placecombinedlist" variant="2" generated="yes" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="place"/>
- <cd:variable value="combinedlist"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="impostaelencocombinato"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="completecombinedlist" generated="yes">
- <cd:sequence>
- <cd:string value="complete"/>
- <cd:variable value="combinedlist"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="impostaelencocombinato"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupnumbering" file="core-num.tex">
- <cd:sequence>
- <cd:string value="impostanumerazione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="modo">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="stato">
- <cd:constant type="inizia"/>
- <cd:constant type="termina"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupformulae">
- <cd:sequence>
- <cd:string value="setupformulae"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="luogo">
- <cd:constant type="sinistra"/>
- <cd:constant type="destra"/>
- </cd:parameter>
- <cd:parameter name="sinistra">
+ </cd:keywords>
+ <cd:index n="2" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="startregister" generated="yes" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="inizia"/>
+ <cd:variable value="registro"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="destra">
+ </cd:keywords>
+ <cd:index n="2" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="writetoregister" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="scriviinregistro"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:singular"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="allinea">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="opzione">
- <cd:constant type="centro"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="distanza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="margine">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="standard"/>
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="allinea">
- <cd:constant type="flushleft"/>
- <cd:constant type="flushright"/>
- <cd:constant type="centro"/>
- <cd:constant type="center"/>
- </cd:parameter>
- <cd:parameter name="marginesinistro">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="marginedestro">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rientrasuccessivo">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="alternativa">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="spazioprima">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="separatore">
+ </cd:keywords>
+ <cd:index n="3" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="coupledregister" generated="yes">
+ <cd:sequence>
+ <cd:string value="accoppiato"/>
+ <cd:variable value="registro"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="conversione">
- <cd:constant type="numeri"/>
- <cd:constant type="lettere"/>
- <cd:constant type="Lettere"/>
- <cd:constant type="numeriromani"/>
- <cd:constant type="Numeriromani"/>
+ </cd:keywords>
+ <cd:index n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="coupleregister" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="accoppiaregistro"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placeregister" variant="1" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="mettiregistro"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="impostaregistro" n="3"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="seeregister" generated="yes">
+ <cd:sequence>
+ <cd:string value="vedi"/>
+ <cd:variable value="registro"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="publication" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="pubblicazione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuppublications" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="impostapubblicazioni"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="alternativa">
- <cd:constant type="apa"/>
- <cd:constant type="normale"/>
- </cd:parameter>
- <cd:inherit name="impostaenumerazioni"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuplines" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="impostarighe"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="prima">
+ </cd:keywords>
+ <cd:content n="2"/>
+ <cd:index n="3" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="completeregister" generated="yes" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="completo"/>
+ <cd:variable value="registro"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="yes" optional="yes" list="yes">
+ <cd:inherit name="impostaregistro" n="3"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placeregister" variant="2" generated="yes" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="metti"/>
+ <cd:variable value="registro"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="yes" optional="yes" list="yes">
+ <cd:inherit name="impostaregistro" n="3"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definesynonyms" file="core-syn.tex">
+ <cd:sequence>
+ <cd:string value="definiscisinonimi"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:singular"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:plural"/>
+ </cd:keywords>
+ <cd:keywords n="3">
<cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
+ </cd:keywords>
+ <cd:keywords n="4" optional="yes">
<cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="tra">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="rientro">
- <cd:resolve name="indenting"/>
- </cd:parameter>
- <cd:parameter name="spazio">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="lines" type="environment">
- <cd:sequence>
- <cd:string value="lines"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupparagraphnumbering" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="impostanumerazionecapoversi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="stato">
- <cd:constant type="inizia"/>
- <cd:constant type="termina"/>
- <cd:constant type="reimposta"/>
- <cd:constant type="riga"/>
- </cd:parameter>
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="distanza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuplinenumbering" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="impostanumerazionerighe"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="conversione">
- <cd:constant type="numeri"/>
- <cd:constant type="lettere"/>
- <cd:constant type="Lettere"/>
- <cd:constant type="numeriromani"/>
- <cd:constant type="Numeriromani"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="inizia">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="passo">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="luogo">
- <cd:constant type="intesto"/>
- <cd:constant type="inmargine"/>
- </cd:parameter>
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="prefisso">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsynonyms" file="core-syn.tex">
+ <cd:sequence>
+ <cd:string value="impostasinonimi"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="stiletesto">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="stilesinonimi">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="luogo">
+ <cd:constant type="sinistra"/>
+ <cd:constant type="destra"/>
+ <cd:constant type="cima"/>
+ <cd:constant type="vicino"/>
+ <cd:constant type="inmargine"/>
+ <cd:constant type="insinistra"/>
+ <cd:constant type="indestra"/>
+ </cd:parameter>
+ <cd:parameter name="ampiezza">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="stato">
+ <cd:constant type="inizia"/>
+ <cd:constant type="termina"/>
+ </cd:parameter>
+ <cd:parameter name="criterio">
+ <cd:constant type="tutti"/>
+ <cd:constant type="usato"/>
+ </cd:parameter>
+ <cd:parameter name="conversione">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="espansione">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ <cd:constant type="comando"/>
+ </cd:parameter>
+ <cd:parameter name="comando">
+ <cd:constant type="cd:threearguments"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="synonym" generated="yes">
+ <cd:sequence>
+ <cd:variable value="synonym"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="referencing">
- <cd:constant type="attivo"/>
- <cd:constant type="disattivo"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="linenumbering" type="environment">
- <cd:sequence>
- <cd:string value="linenumbering"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="continua"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="line" type="environment">
- <cd:sequence>
- <cd:string value="line"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="someline" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="qualcheriga"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="inline" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="inriga"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupinmargin" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="impostainmargine"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="sinistra"/>
- <cd:constant type="destra"/>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="luogo">
- <cd:constant type="sinistra"/>
- <cd:constant type="destra"/>
- <cd:constant type="entrambi"/>
- </cd:parameter>
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
+ </cd:keywords>
+ <cd:content n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="completelistofsynonyms" generated="yes">
+ <cd:sequence>
+ <cd:string value="completelistof"/>
+ <cd:variable value="synonyms"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="placelistofsynonyms" generated="yes">
+ <cd:sequence>
+ <cd:string value="placelistof"/>
+ <cd:variable value="synonyms"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="loadsynonyms" generated="yes">
+ <cd:sequence>
+ <cd:string value="carica"/>
+ <cd:variable value="synonyms"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="definesorting" file="core-syn.tex">
+ <cd:sequence>
+ <cd:string value="definisciordinamento"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:singular"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:plural"/>
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes">
<cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="allinea">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="riga">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="distanza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="separatore">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsorting" file="core-syn.tex">
+ <cd:sequence>
+ <cd:string value="impostaordinamento"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="prima">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dopo">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="comando">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="stato">
+ <cd:constant type="inizia"/>
+ <cd:constant type="termina"/>
+ </cd:parameter>
+ <cd:parameter name="criterio">
+ <cd:constant type="tutti"/>
+ <cd:constant type="usato"/>
+ </cd:parameter>
+ <cd:parameter name="stile">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="espansione">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ <cd:constant type="comando"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="sort" generated="yes">
+ <cd:sequence>
+ <cd:variable value="sort"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stack">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:inherit name="impostaincorniciato"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuppagenumber" file="page-num.tex">
- <cd:sequence>
- <cd:string value="impostanumeropagina"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="numero">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="stato">
- <cd:constant type="inizia"/>
- <cd:constant type="termina"/>
- <cd:constant type="mantieni"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupsubpagenumber" file="page-num.tex">
- <cd:sequence>
- <cd:string value="impostanumerosottopagina"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="modo">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="stato">
- <cd:constant type="inizia"/>
- <cd:constant type="termina"/>
- <cd:constant type="nessuno"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupblank">
- <cd:sequence>
- <cd:string value="impostarigovuoto"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="normale" default="yes"/>
- <cd:constant type="standard"/>
- <cd:constant type="riga"/>
- <cd:constant type="cd:dimension"/>
- <cd:constant type="grande"/>
- <cd:constant type="medio"/>
- <cd:constant type="piccolo"/>
- <cd:constant type="fisso"/>
- <cd:constant type="flessibile"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineblank" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="definiscirigovuoto"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:inherit name="impostarigovuoto"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definepapersize" file="page-lay.tex">
- <cd:sequence>
- <cd:string value="definiscidimensionicarta"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="altezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="scala">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuppaper" file="page-lay.tex">
- <cd:sequence>
- <cd:string value="setuppaper"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="carta">
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="completelistofsorts" generated="yes">
+ <cd:sequence>
+ <cd:string value="completelistof"/>
+ <cd:variable value="sorts"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="placelistofsorts" generated="yes">
+ <cd:sequence>
+ <cd:string value="placelistof"/>
+ <cd:variable value="sorts"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="loadsorts" generated="yes">
+ <cd:sequence>
+ <cd:string value="carica"/>
+ <cd:variable value="sorts"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="definemakeup" file="page-mak.tex">
+ <cd:sequence>
+ <cd:string value="definiscimakeup"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="pagina">
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="impostamakeup" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="makeup" type="environment">
+ <cd:sequence>
+ <cd:string value="makeup"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="nx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ny">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="altezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="spaziocima">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="backspace">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="opzione">
- <cd:constant type="max"/>
- <cd:constant type="adatta"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuppapersize" file="page-lay.tex">
- <cd:sequence>
- <cd:string value="impostadimensionicarta"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="A3"/>
- <cd:constant type="A4" default="yes"/>
- <cd:constant type="A5"/>
- <cd:constant type="A6"/>
- <cd:constant type="letter"/>
- <cd:constant type="..."/>
- <cd:constant type="CD"/>
- <cd:constant type="cd:name"/>
- <cd:constant type="orizzontale"/>
- <cd:constant type="riflesso"/>
- <cd:constant type="ruotato"/>
- <cd:constant type="90"/>
- <cd:constant type="180"/>
- <cd:constant type="270"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="A3"/>
- <cd:constant type="A4" default="yes"/>
- <cd:constant type="A5"/>
- <cd:constant type="A6"/>
- <cd:constant type="letter"/>
- <cd:constant type="..."/>
- <cd:constant type="cd:name"/>
- <cd:constant type="orizzontale"/>
- <cd:constant type="riflesso"/>
- <cd:constant type="ruotato"/>
- <cd:constant type="negativo"/>
- <cd:constant type="90"/>
- <cd:constant type="180"/>
- <cd:constant type="270"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuparranging" file="page-imp.tex">
- <cd:sequence>
- <cd:string value="impostaparranging"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="disattiva"/>
- <cd:constant type="2*16"/>
- <cd:constant type="2*8"/>
- <cd:constant type="2*4"/>
- <cd:constant type="2*2"/>
- <cd:constant type="2**2"/>
- <cd:constant type="2*2*4"/>
- <cd:constant type="2*4*2"/>
- <cd:constant type="2UP"/>
- <cd:constant type="2DOWN"/>
- <cd:constant type="2SIDE"/>
- <cd:constant type="2TOP"/>
- <cd:constant type="riflesso"/>
- <cd:constant type="ruotato"/>
- <cd:constant type="doppiafaccia"/>
- <cd:constant type="negativo"/>
- <cd:constant type="sfondo"/>
- <cd:constant type="90"/>
- <cd:constant type="180"/>
- <cd:constant type="270"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showprint">
- <cd:sequence>
- <cd:string value="mostrastampa"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:inherit name="impostadimensionicarta"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:inherit name="impostadimensionicarta"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="impostalayout"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definelogo" file="page-log.tex">
- <cd:sequence>
- <cd:string value="definiscilogo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cima"/>
- <cd:constant type="intestazione"/>
- <cd:constant type="piedipagina"/>
- <cd:constant type="fondo"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="nessuno"/>
- <cd:constant type="pagina"/>
- <cd:constant type="bordosinistro"/>
- <cd:constant type="marginesinistro"/>
- <cd:constant type="sinistra"/>
- <cd:constant type="centro"/>
- <cd:constant type="destra"/>
- <cd:constant type="marginedestro"/>
- <cd:constant type="bordodestro"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="comando">
- <cd:constant type="cd:command"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="stato">
- <cd:constant type="inizia"/>
- <cd:constant type="termina"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placelogos" file="page-log.tex">
- <cd:sequence>
- <cd:string value="mettiloghi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupwhitespace">
- <cd:sequence>
- <cd:string value="impostaspaziobianco"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="nessuno" default="yes"/>
- <cd:constant type="piccolo"/>
- <cd:constant type="medio"/>
- <cd:constant type="grande"/>
- <cd:constant type="riga"/>
- <cd:constant type="fisso"/>
- <cd:constant type="fisso"/>
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupindenting">
- <cd:sequence>
- <cd:string value="impostarientro"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="impostamakeup" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupmakeup" file="page-mak.tex">
+ <cd:sequence>
+ <cd:string value="impostamakeup"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="ampiezza">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="altezza">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="voffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="hoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="pagina">
+ <cd:constant type="sinistra"/>
+ <cd:constant type="si"/>
+ <cd:constant type="destra"/>
+ </cd:parameter>
+ <cd:parameter name="comandi">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="doppiafaccia">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ <cd:constant type="vuoto"/>
+ </cd:parameter>
+ <cd:parameter name="statointestazione">
+ <cd:constant type="normale"/>
+ <cd:constant type="termina"/>
+ <cd:constant type="inizia"/>
+ <cd:constant type="vuoto"/>
+ <cd:constant type="nessuno"/>
+ <cd:constant type="nomarcature"/>
+ </cd:parameter>
+ <cd:parameter name="statopdp">
+ <cd:constant type="normale"/>
+ <cd:constant type="termina"/>
+ <cd:constant type="inizia"/>
+ <cd:constant type="vuoto"/>
+ <cd:constant type="nessuno"/>
+ <cd:constant type="nomarcature"/>
+ </cd:parameter>
+ <cd:parameter name="statotesto">
+ <cd:constant type="normale"/>
+ <cd:constant type="termina"/>
+ <cd:constant type="inizia"/>
+ <cd:constant type="vuoto"/>
+ <cd:constant type="nessuno"/>
+ <cd:constant type="nomarcature"/>
+ </cd:parameter>
+ <cd:parameter name="statocima">
+ <cd:constant type="termina"/>
+ <cd:constant type="inizia"/>
+ </cd:parameter>
+ <cd:parameter name="statofondo">
+ <cd:constant type="termina"/>
+ <cd:constant type="inizia"/>
+ </cd:parameter>
+ <cd:parameter name="statopagina">
+ <cd:constant type="termina"/>
+ <cd:constant type="inizia"/>
+ </cd:parameter>
+ <cd:parameter name="colore">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="namemakeup" type="environment" generated="yes">
+ <cd:sequence>
+ <cd:variable value="nome"/>
+ <cd:string value="makeup"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="version">
+ <cd:sequence>
+ <cd:string value="versione"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="finale" default="yes"/>
+ <cd:constant type="concetto"/>
+ <cd:constant type="temporaneo"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="currentdate">
+ <cd:sequence>
+ <cd:string value="datadioggi"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:inherit name="data" n="2"/> <!-- or vice versa :) -->
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="date" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="data"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes"> <!-- if not given, current date is used -->
+ <cd:parameter name="d">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="m">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="y">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="giorno"/>
+ <cd:constant type="mese"/>
+ <cd:constant type="anno"/>
+ <cd:constant type="giornosettimana"/>
+ <cd:constant type="d"/>
+ <cd:constant type="m"/>
+ <cd:constant type="y"/> <!-- also j -->
+ <cd:constant type="w"/>
+ <cd:constant type="dd"/>
+ <cd:constant type="mm"/>
+ <cd:constant type="yy"/> <!-- also jj -->
+ <cd:constant type="spazio"/>
+ <cd:constant type="--"/>
+ <cd:constant type="day+"/>
+ <cd:constant type="d+"/>
+ <cd:constant type="dd+"/>
+ <cd:constant type="referral"/>
+ <cd:constant type="cd:text"/> <!-- any other text -->
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="referraldate" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="datareferral"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="indenting" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="rientro"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
<cd:resolve name="indenting"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definesectionblock" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="definiscibloccosezione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="impostabloccosezione"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupsectionblock" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="impostabloccosezione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="numero">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="pagina">
- <cd:constant type="si"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="noindenting" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="nienterientro"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="blank" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="rigovuoto"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="piccolo"/>
+ <cd:constant type="medio"/>
+ <cd:constant type="grande" default="yes"/>
+ <cd:constant type="nobianco"/>
+ <cd:constant type="dietro"/>
+ <cd:constant type="bianco"/>
+ <cd:constant type="disattiva"/>
+ <cd:constant type="forza"/>
+ <cd:constant type="reimposta"/>
+ <cd:constant type="riga"/>
+ <cd:constant type="mezzariga"/>
+ <cd:constant type="cd:formula"/>
+ <cd:constant type="fisso"/>
+ <cd:constant type="flessibile"/>
+ <cd:constant type="nessuno"/>
+ <cd:constant type="sempre"/>
+ <cd:constant type="esterno"/>
+ <cd:constant type="unito"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="packed" type="environment" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="impaccato"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="rigovuoto"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="unpacked" type="environment">
+ <cd:sequence>
+ <cd:string value="unpacked"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="linecorrection" type="environment">
+ <cd:sequence>
+ <cd:string value="linecorrection"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="correctwhitespace" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="correggispaziobianco"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="postponing" type="environment">
+ <cd:sequence>
+ <cd:string value="postponing"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="local" type="environment">
+ <cd:sequence>
+ <cd:string value="locale"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="narrower" type="environment">
+ <cd:sequence>
+ <cd:string value="narrower"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="sinistra"/>
+ <cd:constant type="centro" default="yes"/>
<cd:constant type="destra"/>
- </cd:parameter>
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definesection" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="definiscisezione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupsection" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="impostasezione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="conversione">
- <cd:constant type="numeri"/>
- <cd:constant type="lettere"/>
- <cd:constant type="Lettere"/>
- <cd:constant type="numeriromani"/>
- <cd:constant type="Numeriromani"/>
- </cd:parameter>
- <cd:parameter name="numeroprecedente">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuphead" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="impostatesta"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:section"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stiletesto">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stilenumero">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="colore">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="coloretesto">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="colorenumero">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="numero">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="numeroproprio">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="pagina">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="hiding" type="environment">
+ <cd:sequence>
+ <cd:string value="hiding"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupalign" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="impostaallineamento"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="ampiezza"/>
<cd:constant type="sinistra"/>
<cd:constant type="destra"/>
- <cd:constant type="si"/>
- </cd:parameter>
- <cd:parameter name="continua">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="intestazione">
- <cd:constant type="nessuno"/>
- <cd:constant type="vuoto"/>
- <cd:constant type="alto"/>
- <cd:constant type="nomarcature"/>
- </cd:parameter>
- <cd:parameter name="testo">
- <cd:constant type="nessuno"/>
- <cd:constant type="vuoto"/>
- <cd:constant type="alto"/>
- <cd:constant type="nomarcature"/>
- </cd:parameter>
- <cd:parameter name="piedipagina">
- <cd:constant type="nessuno"/>
- <cd:constant type="vuoto"/>
- <cd:constant type="alto"/>
- <cd:constant type="nomarcature"/>
- </cd:parameter>
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="tra">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="alternativa">
- <cd:constant type="normale"/>
- <cd:constant type="inmargine"/>
<cd:constant type="centro"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="sospendi">
- <cd:constant type="nessuno"/>
+ <cd:constant type="interno"/>
+ <cd:constant type="esterno"/>
<cd:constant type="ampio"/>
- <cd:constant type="adatta"/>
+ <cd:constant type="ampio"/>
+ <cd:constant type="altezza"/>
+ <cd:constant type="fondo"/>
<cd:constant type="riga"/>
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="comando">
- <cd:constant type="cd:twoarguments"/>
- </cd:parameter>
- <cd:parameter name="comandonumero">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="comandotesto">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="deepnumbercommand">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="deeptextcommand">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="prefisso">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="mettitesta">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- <cd:constant type="vuoto"/>
- </cd:parameter>
- <cd:parameter name="incrementanumero">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- <cd:constant type="cd:list"/>
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="resetnumber">
+ <cd:constant type="reimposta"/>
+ <cd:constant type="sospeso"/>
+ <cd:constant type="nonsospeso"/>
+ <cd:constant type="sillabato"/>
+ <cd:constant type="nonsillabato"/>
+ <cd:constant type="lesshyphenation"/>
+ <cd:constant type="morehyphenation"/>
+ <cd:constant type="nuovo"/>
+ <cd:constant type="old"/>
+ <cd:constant type="normale"/>
<cd:constant type="si"/>
<cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="file">
+ <cd:constant type="flushleft"/>
+ <cd:constant type="flushright"/>
+ <cd:constant type="flushouter"/>
+ <cd:constant type="flushinner"/>
+ <cd:constant type="center"/>
+ <cd:constant type="hz"/>
+ <cd:constant type="nohz"/>
+ <cd:constant type="spaziatura"/>
+ <cd:constant type="nospacing"/>
+ <cd:constant type="tollerante"/>
+ <cd:constant type="moltotollerante"/>
+ <cd:constant type="dilata"/>
+ <cd:constant type="lefttoright"/>
+ <cd:constant type="righttoleft"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+
+ <cd:command name="alignment" type="environment" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="alignment"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:inherit name="impostaallineamento" n="1"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupspacing">
+ <cd:sequence>
+ <cd:string value="impostaspaziatura"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="ampio"/>
+ <cd:constant type="impaccato"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptolerance" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="impostatolleranza"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="orizzontale"/>
+ <cd:constant type="verticale"/>
+ <cd:constant type="dilata"/>
+ <cd:constant type="spazio"/>
+ <cd:constant type="moltorigido" default="yes"/>
+ <cd:constant type="rigido"/>
+ <cd:constant type="tollerante"/>
+ <cd:constant type="moltotollerante"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="pagetype" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="tipopagina"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="espansione">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- <cd:constant type="comando"/>
- </cd:parameter>
- <cd:parameter name="testomargine">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:inherit name="impostateste"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupheadnumber" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="impostanumerotesta"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:section"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:number"/>
- <cd:constant type="+cd:number"/>
- <cd:constant type="-cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="headnumber">
- <cd:sequence>
- <cd:string value="numerotesta"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:section"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="determineheadnumber" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="determinanumerotesta"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:section"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="currentheadnumber" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="numerotestacorrente"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="nextsection" generated="yes" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="next"/>
- <cd:variable value="capoverso"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="definehead" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="definiscitesta"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:section"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupitemgroup" file="core-itm.tex">
- <cd:sequence>
- <cd:string value="setupitemgroup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:number"/>
- <cd:constant type="ogni"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="standard" default="yes"/>
- <cd:constant type="ampio"/>
- <cd:constant type="vicino"/>
- <cd:constant type="impaccato"/>
- <cd:constant type="unpacked"/>
- <cd:constant type="nobianco"/>
- <cd:constant type="prima"/>
- <cd:constant type="dopo"/>
- <cd:constant type="stopper"/>
- <cd:constant type="unito"/>
- <cd:constant type="almargine"/>
- <cd:constant type="inmargine"/>
- <cd:constant type="autointro"/>
- <cd:constant type="lento"/>
- <cd:constant type="ripeti"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="capoverso"/>
- <cd:constant type="intesto"/>
- <cd:constant type="casuale"/>
- <cd:constant type="invertito"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:parameter name="margine">
- <cd:constant type="no"/>
- <cd:constant type="standard"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="marginesinistro">
- <cd:constant type="no"/>
- <cd:constant type="standard"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="marginedestro">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="processpage" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="elaborapagina"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="si" default="yes"/>
<cd:constant type="no"/>
- <cd:constant type="standard"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="fattore">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="elementi">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="inizia">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="tra">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="sinistra">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="destra">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="couplepage" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="accoppiapagina"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="opzione">
+ <cd:constant type="doppiafaccia"/>
+ </cd:parameter>
+ <cd:parameter name="prima">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dopo">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="position" file="page-lyr.tex">
+ <cd:sequence>
+ <cd:string value="posizione"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:position n="1" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupscreens" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="impostaschermi"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="metodo">
+ <cd:constant type="punto"/>
+ <cd:constant type="linea"/>
+ <cd:constant type="esterno"/>
+ </cd:parameter>
+ <cd:parameter name="risoluzione">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="fattore">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="schermo">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbackgrounds" file="page-bck.tex">
+ <cd:sequence>
+ <cd:string value="impostasfondi"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cima"/>
+ <cd:constant type="intestazione"/>
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="primaditesta">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopotesta">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="stiletesta">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stilemarcatura">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stilesimbolo">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stopper">
+ <cd:constant type="piedipagina"/>
+ <cd:constant type="fondo"/>
+ <cd:constant type="pagina"/>
+ <cd:constant type="carta"/>
+ <cd:constant type="paginasinistra"/>
+ <cd:constant type="paginadestra"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="bordosinistro"/>
+ <cd:constant type="marginesinistro"/>
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="simbolo">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="allinea">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="symallinea">
- <cd:resolve name="symalign"/>
- </cd:parameter>
- <cd:parameter name="rientrasuccessivo">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="itemgroup" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="itemgroup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="a"/>
- <cd:constant type="A"/>
- <cd:constant type="KA"/>
- <cd:constant type="n"/>
- <cd:constant type="N"/>
- <cd:constant type="m"/>
- <cd:constant type="r"/>
- <cd:constant type="R"/>
- <cd:constant type="KR"/>
- <cd:constant type="cd:number"/>
- <cd:constant type="continua"/>
- <cd:constant type="standard" default="yes"/>
- <cd:constant type="ampio"/>
- <cd:constant type="vicino"/>
- <cd:constant type="impaccato"/>
- <cd:constant type="stopper"/>
- <cd:constant type="unito"/>
- <cd:constant type="almargine"/>
- <cd:constant type="inmargine"/>
- <cd:constant type="intro"/>
- <cd:constant type="colonne"/>
- <cd:constant type="testo"/>
- <cd:constant type="capoverso"/>
- <cd:constant type="ripeti"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="setupitemgroup"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="item">
- <cd:sequence>
- <cd:string value="elemento"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="but">
- <cd:sequence>
- <cd:string value="fondo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference interactive="exclusive"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="its">
- <cd:sequence>
- <cd:string value="el"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="ran">
- <cd:sequence>
- <cd:string value="ran"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="head">
- <cd:sequence>
- <cd:string value="testa"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="mar">
- <cd:sequence>
- <cd:string value="mar"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="sub">
- <cd:sequence>
- <cd:string value="sub"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="sym" file="core-itm.tex">
- <cd:sequence>
- <cd:string value="sim"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="nop">
- <cd:sequence>
- <cd:string value="nop"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="defineregister" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="definisciregistro"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:plural"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupregister" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="impostaregistro"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="bilanciamento">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="allinea">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stilepagina">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stiletesto">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="indicatore">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="accoppiamento">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="cd:sectionnumber">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="criterio">
- <cd:constant type="cd:section"/>
- <cd:constant type="locale"/>
+ <cd:constant type="marginedestro"/>
+ <cd:constant type="bordodestro"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:parameter name="stato">
+ <cd:constant type="inizia"/>
+ <cd:constant type="termina"/>
+ <cd:constant type="cd:repeat"/>
+ </cd:parameter>
+ <cd:inherit name="impostaincorniciato" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="buffer" type="environment" generated="yes" file="core-buf.tex">
+ <cd:sequence>
+ <cd:variable value="buffer"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="buffer" type="environment" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="buffer"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getbuffer">
+ <cd:sequence>
+ <cd:string value="prendibuffer"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="typebuffer" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="typebuffer"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definebuffer" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="definiscibuffer"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbuffer" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="impostabuffer"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="capoverso">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="prima">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dopo">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineblock" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="definisciblocco"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nomoreblocks" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="bastablocchi"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="hideblocks" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="nascondiblocchi"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="keepblocks" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="tieniblocchi"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
<cd:constant type="tutti"/>
- </cd:parameter>
- <cd:parameter name="distanza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="simbolo">
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- <cd:constant type="..."/>
- <cd:constant type="n"/>
- <cd:constant type="a"/>
- <cd:constant type="..."/>
- <cd:constant type="nessuno"/>
- </cd:parameter>
- <cd:parameter name="interazione">
- <cd:constant type="numeropagina"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="espansione">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- <cd:constant type="comando"/>
- </cd:parameter>
- <cd:parameter name="referencing">
- <cd:constant type="attivo"/>
- <cd:constant type="disattivo"/>
- </cd:parameter>
- <cd:parameter name="comando">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="luogo">
- <cd:constant type="sinistra"/>
- <cd:constant type="centro"/>
- <cd:constant type="destra"/>
- </cd:parameter>
- <cd:parameter name="ampiezzamax">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="riferimentoingoto">
- <cd:constant type="vuoto"/>
- <cd:constant type="nessuno"/>
- </cd:parameter>
- <cd:parameter name="alternativa">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="A"/>
- <cd:constant type="B"/>
- </cd:parameter>
- <cd:parameter name="prefisso">
- <cd:constant type="entrambi"/>
- <cd:constant type="primo"/>
- <cd:constant type="nessuno"/>
- </cd:parameter>
- <cd:parameter name="compress">
- <cd:constant type="no"/>
- <cd:constant type="si"/>
- </cd:parameter>
- <cd:parameter name="deeptextcommand">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="register" generated="yes" file="core-reg.tex">
- <cd:sequence>
- <cd:variable value="registro"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:index list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="startregister" generated="yes" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="start"/>
- <cd:variable value="registro"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:index list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="writetoregister" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="scriviinregistro"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:index list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="coupledregister" generated="yes">
- <cd:sequence>
- <cd:string value="coupled"/>
- <cd:variable value="registro"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:index/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="coupleregister" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="accoppiaregistro"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placeregister" variant="1" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="mettiregistro"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="impostaregistro"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="seeregister" generated="yes">
- <cd:sequence>
- <cd:string value="see"/>
- <cd:variable value="registro"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content/>
- <cd:index list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="completeregister" generated="yes" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="complete"/>
- <cd:variable value="registro"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="yes" optional="yes" list="yes">
- <cd:inherit name="impostaregistro"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placeregister" variant="2" generated="yes" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="place"/>
- <cd:variable value="registro"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="yes" optional="yes" list="yes">
- <cd:inherit name="impostaregistro"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definesynonyms" file="core-syn.tex">
- <cd:sequence>
- <cd:string value="definiscisinonimi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:plural"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:command"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:command"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupsynonyms" file="core-syn.tex">
- <cd:sequence>
- <cd:string value="impostasinonimi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="stiletesto">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stilesinonimi">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="luogo">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useblocks" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="usablocco"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="processblocks" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="elaborablocchi"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="bypassblocks" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="saltablocchi"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="forceblocks">
+ <cd:sequence>
+ <cd:string value="forzablocchi"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="selectblocks" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="selezionablocchi"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes">
+ <cd:parameter name="criterio">
+ <cd:constant type="tutti"/>
+ <cd:constant type="cd:section"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupblock" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="impostablocco"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="prima">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dopo">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="interno">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="stile">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="file">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="formula" type="environment" generated="yes">
+ <cd:sequence>
+ <cd:variable value="formula"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="mathematics" file="supp-mat.tex">
+ <cd:sequence>
+ <cd:string value="matematica"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placeformula" file="core-mat.tex">
+ <cd:sequence>
+ <cd:string value="mettiformula"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2" optional="yes"/>
+ <cd:displaymath n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placesubformula" file="core-mat.tex">
+ <cd:sequence>
+ <cd:string value="mettisottoformula"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2" optional="yes"/>
+ <cd:displaymath n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placefloat" generated="yes" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="metti"/>
+ <cd:variable value="oggettomobile"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="sinistra"/>
<cd:constant type="destra"/>
+ <cd:constant type="qui" default="yes"/>
<cd:constant type="cima"/>
- <cd:constant type="vicino"/>
- <cd:constant type="inmargine"/>
+ <cd:constant type="fondo"/>
<cd:constant type="insinistra"/>
<cd:constant type="indestra"/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stato">
- <cd:constant type="inizia"/>
- <cd:constant type="termina"/>
- </cd:parameter>
- <cd:parameter name="criterio">
- <cd:constant type="tutti"/>
- <cd:constant type="usato"/>
- </cd:parameter>
- <cd:parameter name="conversione">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="espansione">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- <cd:constant type="comando"/>
- </cd:parameter>
- <cd:parameter name="comando">
- <cd:constant type="cd:threearguments"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="synonym" generated="yes">
- <cd:sequence>
- <cd:variable value="synonym"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="completelistofsynonyms" generated="yes">
- <cd:sequence>
- <cd:string value="completelistof"/>
- <cd:variable value="synonyms"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="placelistofsynonyms" generated="yes">
- <cd:sequence>
- <cd:string value="placelistof"/>
- <cd:variable value="synonyms"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="loadsynonyms" generated="yes">
- <cd:sequence>
- <cd:string value="load"/>
- <cd:variable value="synonyms"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="definesorting" file="core-syn.tex">
- <cd:sequence>
- <cd:string value="definisciordinamento"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:plural"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:command"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupsorting" file="core-syn.tex">
- <cd:sequence>
- <cd:string value="impostaordinamento"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="comando">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="stato">
- <cd:constant type="inizia"/>
- <cd:constant type="termina"/>
- </cd:parameter>
- <cd:parameter name="criterio">
- <cd:constant type="tutti"/>
- <cd:constant type="usato"/>
- </cd:parameter>
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="espansione">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- <cd:constant type="comando"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="sort" generated="yes">
- <cd:sequence>
- <cd:variable value="sort"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="completelistofsorts" generated="yes">
- <cd:sequence>
- <cd:string value="completelistof"/>
- <cd:variable value="sorts"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="placelistofsorts" generated="yes">
- <cd:sequence>
- <cd:string value="placelistof"/>
- <cd:variable value="sorts"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="loadsorts" generated="yes">
- <cd:sequence>
- <cd:string value="load"/>
- <cd:variable value="sorts"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="definemakeup" file="page-mak.tex">
- <cd:sequence>
- <cd:string value="definiscimakeup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="impostamakeup"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="makeup" type="environment">
- <cd:sequence>
- <cd:string value="makeup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="impostamakeup"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupmakeup" file="page-mak.tex">
- <cd:sequence>
- <cd:string value="impostamakeup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="altezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="voffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="pagina">
+ <cd:constant type="inmargine"/>
+ <cd:constant type="margine"/>
+ <cd:constant type="marginesinistro"/>
+ <cd:constant type="marginedestro"/>
+ <cd:constant type="bordosinistro"/>
+ <cd:constant type="bordodestro"/>
+ <cd:constant type="margineinterno"/>
+ <cd:constant type="margineesterno"/>
+ <cd:constant type="bordointerno"/>
+ <cd:constant type="bordoesterno"/>
+ <cd:constant type="interno"/>
+ <cd:constant type="esterno"/>
+ <cd:constant type="riga"/>
+ <cd:constant type="alto"/>
+ <cd:constant type="basso"/>
+ <cd:constant type="adatta"/>
+ <cd:constant type="pagina"/>
+ <cd:constant type="paginasinistra"/>
+ <cd:constant type="paginadestra"/>
+ <cd:constant type="opposto"/>
+ <cd:constant type="sempre"/>
+ <cd:constant type="auto"/>
+ <cd:constant type="forza"/>
+ <cd:constant type="alto"/>
+ <cd:constant type="reimposta"/>
+ <cd:constant type="riga"/>
+ <cd:constant type="altezza"/>
+ <cd:constant type="profondita"/>
+ <cd:constant type="separa"/>
+ <cd:constant type="90"/>
+ <cd:constant type="180"/>
+ <cd:constant type="270"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes" list="yes"/>
+ <cd:content n="3"/>
+ <cd:content n="4"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="reservefloat" generated="yes">
+ <cd:sequence>
+ <cd:string value="riserva"/>
+ <cd:variable value="oggettomobile"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:parameter name="altezza">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="ampiezza">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="cornice">
+ <cd:constant type="attivo"/>
+ <cd:constant type="disattivo"/>
+ </cd:parameter>
+ </cd:assignments>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:reference n="3" optional="yes" list="yes"/>
+ <cd:content n="4"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefloat" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="definiscioggettomobile"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:singular"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:plural"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfloat" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="impostaoggettomobile"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="altezza">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="ampiezza">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="altezzamax">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="ampiezzamax">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="ampiezzamin">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="implicito">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="limitipagina">
+ <cd:constant type="cd:list"/>
+ </cd:parameter>
+ <cd:parameter name="distanzamarginesinistro">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distanzamarginedestro">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="luogo">
+ <cd:constant type="sinistra"/>
+ <cd:constant type="centro"/>
+ <cd:constant type="destra"/>
+ </cd:parameter>
+ <cd:inherit name="impostaincorniciato" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="floattext" type="environment" generated="yes">
+ <cd:sequence>
+ <cd:variable value="oggettomobile"/>
+ <cd:string value="testo"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="sinistra"/>
- <cd:constant type="si"/>
<cd:constant type="destra"/>
- </cd:parameter>
- <cd:parameter name="comandi">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="doppiafaccia">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- <cd:constant type="vuoto"/>
- </cd:parameter>
- <cd:parameter name="statointestazione">
- <cd:constant type="normale"/>
- <cd:constant type="termina"/>
- <cd:constant type="inizia"/>
- <cd:constant type="vuoto"/>
- <cd:constant type="nessuno"/>
- <cd:constant type="nomarcature"/>
- </cd:parameter>
- <cd:parameter name="statopdp">
- <cd:constant type="normale"/>
- <cd:constant type="termina"/>
- <cd:constant type="inizia"/>
- <cd:constant type="vuoto"/>
- <cd:constant type="nessuno"/>
- <cd:constant type="nomarcature"/>
- </cd:parameter>
- <cd:parameter name="statotesto">
- <cd:constant type="normale"/>
- <cd:constant type="termina"/>
- <cd:constant type="inizia"/>
- <cd:constant type="vuoto"/>
- <cd:constant type="nessuno"/>
- <cd:constant type="nomarcature"/>
- </cd:parameter>
- <cd:parameter name="statocima">
- <cd:constant type="termina"/>
- <cd:constant type="inizia"/>
- </cd:parameter>
- <cd:parameter name="statofondo">
- <cd:constant type="termina"/>
- <cd:constant type="inizia"/>
- </cd:parameter>
- <cd:parameter name="statopagina">
- <cd:constant type="termina"/>
- <cd:constant type="inizia"/>
- </cd:parameter>
- <cd:parameter name="colore">
+ <cd:constant type="alto"/>
+ <cd:constant type="centro"/>
+ <cd:constant type="basso"/>
+ <cd:constant type="offset"/>
+ <cd:constant type="alto"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ <cd:content n="4"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placelistoffloats" generated="yes">
+ <cd:sequence>
+ <cd:string value="placelistof"/>
+ <cd:variable value="floats"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="completelistoffloats" generated="yes">
+ <cd:sequence>
+ <cd:string value="completelistof"/>
+ <cd:variable value="floats"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="referral" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="referral"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="bet">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="ken">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="dat">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="van">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="aan">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="ref">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="selectpaper">
+ <cd:sequence>
+ <cd:string value="selezionacarta"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="famiglia">
+ <cd:constant type="1"/>
+ <cd:constant type="2"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="couplepaper">
+ <cd:sequence>
+ <cd:string value="accoppiacarta"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="namemakeup" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="nome"/>
- <cd:string value="makeup"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="version">
- <cd:sequence>
- <cd:string value="versione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="finale" default="yes"/>
- <cd:constant type="concetto"/>
- <cd:constant type="temporaneo"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="currentdate">
- <cd:sequence>
- <cd:string value="datadioggi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:inherit name="data"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="date" file="core-con.tex">
- <cd:sequence>
- <cd:string value="data"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:parameter name="d">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="m">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="y">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- <cd:keywords list="yes">
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="referraldate" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="datareferral"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="indenting" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="rientro"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:resolve name="indenting"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="noindenting" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="nienterientro"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="blank" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="rigovuoto"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="piccolo"/>
- <cd:constant type="medio"/>
- <cd:constant type="grande" default="yes"/>
- <cd:constant type="nobianco"/>
- <cd:constant type="dietro"/>
- <cd:constant type="bianco"/>
- <cd:constant type="disattiva"/>
- <cd:constant type="forza"/>
- <cd:constant type="reimposta"/>
- <cd:constant type="riga"/>
- <cd:constant type="mezzariga"/>
- <cd:constant type="cd:formula"/>
- <cd:constant type="fisso"/>
- <cd:constant type="flessibile"/>
- <cd:constant type="nessuno"/>
- <cd:constant type="sempre"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="packed" type="environment" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="impaccato"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="rigovuoto"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="unpacked" type="environment">
- <cd:sequence>
- <cd:string value="unpacked"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="linecorrection" type="environment">
- <cd:sequence>
- <cd:string value="linecorrection"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="correctwhitespace" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="correggispaziobianco"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="postponing" type="environment">
- <cd:sequence>
- <cd:string value="postponing"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="local" type="environment">
- <cd:sequence>
- <cd:string value="local"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="narrower" type="environment">
- <cd:sequence>
- <cd:string value="narrower"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="sinistra"/>
- <cd:constant type="centro" default="yes"/>
- <cd:constant type="destra"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="hiding" type="environment">
- <cd:sequence>
- <cd:string value="hiding"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupalign" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="impostaallineamento"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="ampiezza"/>
- <cd:constant type="sinistra"/>
- <cd:constant type="destra"/>
- <cd:constant type="centro"/>
- <cd:constant type="interno"/>
- <cd:constant type="esterno"/>
- <cd:constant type="ampio"/>
- <cd:constant type="ampio"/>
- <cd:constant type="altezza"/>
- <cd:constant type="fondo"/>
- <cd:constant type="riga"/>
- <cd:constant type="reimposta"/>
- <cd:constant type="sospeso"/>
- <cd:constant type="nonsospeso"/>
- <cd:constant type="sillabato"/>
- <cd:constant type="nonsillabato"/>
- <cd:constant type="lesshyphens"/>
- <cd:constant type="morehyphens"/>
- <cd:constant type="nuovo"/>
- <cd:constant type="old"/>
- <cd:constant type="normale"/>
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- <cd:constant type="flushleft"/>
- <cd:constant type="flushright"/>
- <cd:constant type="flushouter"/>
- <cd:constant type="flushinner"/>
- <cd:constant type="center"/>
- <cd:constant type="hz"/>
- <cd:constant type="nohz"/>
- <cd:constant type="spaziatura"/>
- <cd:constant type="nospacing"/>
- <cd:constant type="tollerante"/>
- <cd:constant type="moltotollerante"/>
- <cd:constant type="dilata"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-
-<cd:command name="alignment" type="environment">
- <cd:sequence>
- <cd:string value="alignment"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:inherit name="impostaallineamento"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupspacing">
- <cd:sequence>
- <cd:string value="impostaspaziatura"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="ampio"/>
- <cd:constant type="impaccato"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptolerance" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="impostatolleranza"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="orizzontale"/>
- <cd:constant type="verticale"/>
- <cd:constant type="dilata"/>
- <cd:constant type="spazio"/>
- <cd:constant type="moltorigido" default="yes"/>
- <cd:constant type="rigido"/>
- <cd:constant type="tollerante"/>
- <cd:constant type="moltotollerante"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="pagetype" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="tipopagina"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="processpage" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="elaborapagina"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="si" default="yes"/>
- <cd:constant type="no"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="couplepage" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="accoppiapagina"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="opzione">
- <cd:constant type="doppiafaccia"/>
- </cd:parameter>
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="position" file="page-lyr.tex">
- <cd:sequence>
- <cd:string value="posizione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:position list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupscreens" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="impostaschermi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="metodo">
- <cd:constant type="punto"/>
- <cd:constant type="linea"/>
- <cd:constant type="esterno"/>
- </cd:parameter>
- <cd:parameter name="risoluzione">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="chem" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="chim"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fraction" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="frazione"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="periods" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="punti"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="fattore">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="schermo">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupbackgrounds" file="page-bck.tex">
- <cd:sequence>
- <cd:string value="impostasfondi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cima"/>
- <cd:constant type="intestazione"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="piedipagina"/>
- <cd:constant type="fondo"/>
- <cd:constant type="pagina"/>
- <cd:constant type="carta"/>
- <cd:constant type="paginasinistra"/>
- <cd:constant type="paginadestra"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="bordosinistro"/>
- <cd:constant type="marginesinistro"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="marginedestro"/>
- <cd:constant type="bordodestro"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="stato">
- <cd:constant type="inizia"/>
- <cd:constant type="termina"/>
- <cd:constant type="cd:repeat"/>
- </cd:parameter>
- <cd:inherit name="impostaincorniciato"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="buffer" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="buffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="getbuffer">
- <cd:sequence>
- <cd:string value="prendibuffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="typebuffer" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="typebuffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definebuffer" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="definiscibuffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupbuffer" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="impostabuffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="capoverso">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineblock" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="definisciblocco"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="nomoreblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="bastablocchi"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="hideblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="nascondiblocchi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="keepblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="tieniblocchi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="tutti"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="useblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="usablocco"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="processblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="elaborablocchi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="bypassblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="saltablocchi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="forceblocks">
- <cd:sequence>
- <cd:string value="forzablocchi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="selectblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="selezionablocchi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes">
- <cd:parameter name="criterio">
- <cd:constant type="tutti"/>
- <cd:constant type="cd:section"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupblock" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="impostablocco"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="interno">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="file">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="formula" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="formula"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="mathematics" file="supp-mat.tex">
- <cd:sequence>
- <cd:string value="matematica"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placeformula" file="core-mat.tex">
- <cd:sequence>
- <cd:string value="mettiformula"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content optional="yes"/>
- <cd:displaymath/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placesubformula" file="core-mat.tex">
- <cd:sequence>
- <cd:string value="mettisottoformula"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content optional="yes"/>
- <cd:displaymath/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placefloat" generated="yes" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="place"/>
- <cd:variable value="oggettomobile"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="sinistra"/>
- <cd:constant type="destra"/>
- <cd:constant type="qui" default="yes"/>
- <cd:constant type="cima"/>
- <cd:constant type="fondo"/>
- <cd:constant type="insinistra"/>
- <cd:constant type="indestra"/>
- <cd:constant type="inmargine"/>
- <cd:constant type="margine"/>
- <cd:constant type="marginesinistro"/>
- <cd:constant type="marginedestro"/>
- <cd:constant type="bordosinistro"/>
- <cd:constant type="bordodestro"/>
- <cd:constant type="margineinterno"/>
- <cd:constant type="margineesterno"/>
- <cd:constant type="bordointerno"/>
- <cd:constant type="bordoesterno"/>
- <cd:constant type="interno"/>
- <cd:constant type="esterno"/>
- <cd:constant type="riga"/>
- <cd:constant type="alto"/>
- <cd:constant type="basso"/>
- <cd:constant type="adatta"/>
- <cd:constant type="pagina"/>
- <cd:constant type="paginasinistra"/>
- <cd:constant type="paginadestra"/>
- <cd:constant type="opposto"/>
- <cd:constant type="sempre"/>
- <cd:constant type="auto"/>
- <cd:constant type="forza"/>
- <cd:constant type="alto"/>
- <cd:constant type="reimposta"/>
- <cd:constant type="riga"/>
- <cd:constant type="altezza"/>
- <cd:constant type="profondita"/>
- <cd:constant type="separa"/>
- <cd:constant type="90"/>
- <cd:constant type="180"/>
- <cd:constant type="270"/>
- </cd:keywords>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="reservefloat" generated="yes">
- <cd:sequence>
- <cd:string value="reserve"/>
- <cd:variable value="oggettomobile"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:parameter name="altezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="cornice">
- <cd:constant type="attivo"/>
- <cd:constant type="disattivo"/>
- </cd:parameter>
- </cd:assignments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definefloat" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="definiscioggettomobile"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:plural"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfloat" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="impostaoggettomobile"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="altezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="altezzamax">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="ampiezzamax">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="ampiezzamin">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="implicito">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="limitipagina">
- <cd:constant type="cd:list"/>
- </cd:parameter>
- <cd:parameter name="distanzamarginesinistro">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanzamarginedestro">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="luogo">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="items">
+ <cd:sequence>
+ <cd:string value="elementi"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="impostaelementi" n="1"/>
+ </cd:assignments>
+ <cd:content n="2" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupitems" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="impostaelementi"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="luogo">
+ <cd:constant type="sinistra"/>
+ <cd:constant type="destra"/>
+ <cd:constant type="inmargine"/>
+ <cd:constant type="cima"/>
+ <cd:constant type="fondo"/>
+ </cd:parameter>
+ <cd:parameter name="simbolo">
+ <cd:constant type="1"/>
+ <cd:constant type="2"/>
+ <cd:constant type="..."/>
+ <cd:constant type="n"/>
+ <cd:constant type="a"/>
+ <cd:constant type="..."/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="nessuno"/>
+ </cd:parameter>
+ <cd:parameter name="ampiezza">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="ignoto"/>
+ </cd:parameter>
+ <cd:parameter name="prima">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="tra">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="allinea">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="dopo">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="quotation" type="environment" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="citazione"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
<cd:constant type="sinistra"/>
- <cd:constant type="centro"/>
+ <cd:constant type="centro" default="yes"/>
<cd:constant type="destra"/>
- </cd:parameter>
- <cd:inherit name="impostaincorniciato"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="floattext" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="oggettomobile"/>
- <cd:string value="text"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="sinistra"/>
- <cd:constant type="destra"/>
- <cd:constant type="alto"/>
- <cd:constant type="centro"/>
- <cd:constant type="basso"/>
- <cd:constant type="offset"/>
- <cd:constant type="alto"/>
- </cd:keywords>
- <cd:reference optional="yes"/>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placelistoffloats" generated="yes">
- <cd:sequence>
- <cd:string value="placelistof"/>
- <cd:variable value="floats"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="completelistoffloats" generated="yes">
- <cd:sequence>
- <cd:string value="completelistof"/>
- <cd:variable value="floats"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="referral" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="referral"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="bet">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="quotation" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="citazione"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="quote" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="menzione"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupquote" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="impostamenzione"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="prima">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dopo">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="stile">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="colore">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="luogo">
+ <cd:constant type="cd:text"/>
+ <cd:constant type="margine"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineparagraphs" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="definiscicapoversi"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="linea">
+ <cd:constant type="attivo"/>
+ <cd:constant type="disattivo"/>
+ </cd:parameter>
+ <cd:parameter name="altezza">
+ <cd:constant type="adatta"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="prima">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dopo">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="interno">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="distanza">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="tolleranza">
+ <cd:constant type="moltorigido"/>
+ <cd:constant type="rigido"/>
+ <cd:constant type="tollerante"/>
+ <cd:constant type="moltotollerante"/>
+ <cd:constant type="dilata"/>
+ </cd:parameter>
+ <cd:parameter name="allinea">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="paragraph" generated="yes">
+ <cd:sequence>
+ <cd:variable value="capoverso"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="paragraph" type="environment" generated="yes">
+ <cd:sequence>
+ <cd:variable value="capoverso"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupparagraphs" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="impostacapoversi"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="ogni"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:parameter name="stile">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="ampiezza">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="altezza">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="allinea">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="tolleranza">
+ <cd:constant type="moltorigido"/>
+ <cd:constant type="rigido"/>
+ <cd:constant type="tollerante"/>
+ <cd:constant type="moltotollerante"/>
+ <cd:constant type="dilata"/>
+ </cd:parameter>
+ <cd:parameter name="distanza">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="prima">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dopo">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="interno">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="comando">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="linea">
+ <cd:constant type="attivo"/>
+ <cd:constant type="disattivo"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptab" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="impostatab"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="campione">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="ampiezza">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="stiletesta">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="luogo">
+ <cd:constant type="sinistra"/>
+ <cd:constant type="destra"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tab">
+ <cd:sequence>
+ <cd:string value="tab"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:nothing n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="document" type="environment">
+ <cd:sequence>
+ <cd:string value="document"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="labels">
+ <cd:sequence>
+ <cd:string value="etichette"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definetabulate" file="core-tbl.tex">
+ <cd:sequence>
+ <cd:string value="definiscitabulato"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="3">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="ken">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tabulate" type="environment" generated="yes">
+ <cd:sequence>
+ <cd:variable value="tabulato"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="dat">
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="impostafigureesterne" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptabulate" file="core-tbl.tex">
+ <cd:sequence>
+ <cd:string value="impostatabulato"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="unita">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rientro">
+ <cd:resolve name="indenting"/>
+ </cd:parameter>
+ <cd:parameter name="prima">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dopo">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="interno">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="EQ">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="colorelinea">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="allinea">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="spessorelinea">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distanza">
+ <cd:constant type="rigovuoto"/>
+ <cd:constant type="griglia"/>
+ <cd:constant type="profondita"/>
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="piccolo"/>
+ <cd:constant type="medio"/>
+ <cd:constant type="grande"/>
+ <cd:constant type="nessuno"/>
+ </cd:parameter>
+ <cd:parameter name="fonttesto">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ <cd:parameter name="linea">
+ <cd:constant type="normale"/>
+ <cd:constant type="riga"/>
+ </cd:parameter>
+ <cd:parameter name="separa">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptables" file="core-tab.tex">
+ <cd:sequence>
+ <cd:string value="impostatabelle"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="distanza">
+ <cd:constant type="piccolo"/>
+ <cd:constant type="medio"/>
+ <cd:constant type="grande"/>
+ </cd:parameter>
+ <cd:parameter name="fonttesto">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ <cd:parameter name="HL">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="piccolo"/>
+ <cd:constant type="medio"/>
+ <cd:constant type="grande"/>
+ <cd:constant type="nessuno"/>
+ </cd:parameter>
+ <cd:parameter name="VL">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="piccolo"/>
+ <cd:constant type="medio"/>
+ <cd:constant type="grande"/>
+ <cd:constant type="nessuno"/>
+ </cd:parameter>
+ <cd:parameter name="profondita">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="strut"/>
+ </cd:parameter>
+ <cd:parameter name="altezza">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="strut"/>
+ </cd:parameter>
+ <cd:parameter name="spessorelinea">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="colorelinea">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="allinea">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="comandi">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="allinea">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="sfondo">
+ <cd:constant type="schermo"/>
+ <cd:constant type="colore"/>
+ <cd:constant type="nessuno"/>
+ </cd:parameter>
+ <cd:parameter name="schermosfondo">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="coloresfondo">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="fonttesto">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="table" type="environment">
+ <cd:sequence>
+ <cd:string value="table"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="van">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tables" type="environment">
+ <cd:sequence>
+ <cd:string value="tables"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="aan">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definetabletemplate" file="core-tab.tex">
+ <cd:sequence>
+ <cd:string value="definiscimodellotabella"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="ref">
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="selectpaper">
- <cd:sequence>
- <cd:string value="selezionacarta"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="famiglia">
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="couplepaper">
- <cd:sequence>
- <cd:string value="accoppiacarta"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="chem" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="chim"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="fraction" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="frazione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="periods" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="punti"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="items">
- <cd:sequence>
- <cd:string value="elementi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="impostaelementi"/>
- </cd:assignments>
- <cd:content list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupitems" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="impostaelementi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="luogo">
+ </cd:keywords>
+ <cd:keywords n="4" optional="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useexternalfiles" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="usafileesterni"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="fonttesto">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ <cd:parameter name="file">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useexternalfile" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="usafileesterno"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ <cd:assignments n="4" list="yes">
+ <cd:parameter name="fonttesto">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useexternalfigure" file="core-fig.tex">
+ <cd:sequence>
+ <cd:string value="usafiguraesterna"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes">
+ <cd:constant type="cd:name"/> <!-- parent -->
+ </cd:keywords>
+ <cd:assignments n="4" optional="yes" list="yes">
+ <cd:inherit name="impostafigureesterne" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="externalfigure" file="core-fig.tex">
+ <cd:sequence>
+ <cd:string value="figuraesterna"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="impostafigureesterne" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupexternalfigures" file="core-fig.tex">
+ <cd:sequence>
+ <cd:string value="impostafigureesterne"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1">
+ <cd:parameter name="scala">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="yscale">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="yscale">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="fattore">
+ <cd:constant type="max"/>
+ <cd:constant type="adatta"/>
+ <cd:constant type="ampio"/>
+ </cd:parameter>
+ <cd:parameter name="wfactor">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="max"/>
+ <cd:constant type="ampio"/>
+ <cd:constant type="adatta"/>
+ </cd:parameter>
+ <cd:parameter name="hfactor">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="max"/>
+ <cd:constant type="ampio"/>
+ <cd:constant type="adatta"/>
+ </cd:parameter>
+ <cd:parameter name="ampiezza">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="altezza">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="cornice">
+ <cd:constant type="attivo"/>
+ <cd:constant type="disattivo"/>
+ </cd:parameter>
+ <cd:parameter name="preimpostato">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="display">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="anteprima">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="ripeti">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="oggetto">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="type">
+ <cd:constant type="eps"/>
+ <cd:constant type="mps"/>
+ <cd:constant type="pdf"/>
+ <cd:constant type="tif"/>
+ <cd:constant type="png"/>
+ <cd:constant type="jpg"/>
+ <cd:constant type="mov"/>
+ <cd:constant type="cd:tex"/>
+ </cd:parameter>
+ <cd:parameter name="metodo">
+ <cd:constant type="eps"/>
+ <cd:constant type="mps"/>
+ <cd:constant type="pdf"/>
+ <cd:constant type="tif"/>
+ <cd:constant type="png"/>
+ <cd:constant type="jpg"/>
+ <cd:constant type="mov"/>
+ <cd:constant type="cd:tex"/>
+ </cd:parameter>
+ <cd:parameter name="opzione">
+ <cd:constant type="cornice"/>
+ <cd:constant type="vuoto"/>
+ <cd:constant type="test"/>
+ </cd:parameter>
+ <cd:parameter name="cornici">
+ <cd:constant type="attivo"/>
+ <cd:constant type="disattivo"/>
+ </cd:parameter>
+ <cd:parameter name="ymax">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="xmax">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="directory">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="luogo">
+ <cd:constant type="locale"/>
+ <cd:constant type="globale"/>
+ <cd:constant type="implicito"/>
+ <cd:constant type="nessuno"/>
+ </cd:parameter>
+ <cd:parameter name="ampiezzamax">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="altezzamax">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="conversione">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="prefisso">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showexternalfigures" file="core-fig.tex">
+ <cd:sequence>
+ <cd:string value="mostrafiguresterne"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:parameter name="alternativa">
+ <cd:constant type="a"/>
+ <cd:constant type="b"/>
+ <cd:constant type="c"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useexternalsoundtrack" file="core-fig.tex">
+ <cd:sequence>
+ <cd:string value="usacolonnasonoraesterna"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="name" file="syst-gen.tex">
+ <cd:sequence>
+ <cd:string value="name"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="legend" type="environment">
+ <cd:sequence>
+ <cd:string value="legend"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="due"/>
+ </cd:keywords>
+ <cd:tex n="2" command="leg"/>
+ <cd:nothing n="3"/>
+ <cd:nothing n="4" separator="backslash"/>
+ <cd:nothing n="5" separator="backslash"/>
+ <cd:tex n="6" separator="backslash" command="leg"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fact" type="environment">
+ <cd:sequence>
+ <cd:string value="fatto"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:tex n="1" command="fact"/>
+ <cd:nothing n="2"/>
+ <cd:nothing n="3" separator="backslash"/>
+ <cd:nothing n="4" separator="backslash"/>
+ <cd:tex n="5" separator="backslash" command="fact"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="rotate" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="ruota"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="impostarotazione" n="1"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuprotate" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="impostarotazione"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="rotazione">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="luogo">
+ <cd:constant type="normale"/>
+ <cd:constant type="alto"/>
+ <cd:constant type="adatta"/>
+ <cd:constant type="ampio"/>
+ <cd:constant type="profondita"/>
+ </cd:parameter>
+ <cd:inherit name="impostaincorniciato" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mirror" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="riflessione"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="scale" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="scala"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:parameter name="sx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="sy">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcombinations" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="impostacombinazioni"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="prima">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="tra">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dopo">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="distanza">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="altezza">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="adatta"/>
+ </cd:parameter>
+ <cd:parameter name="ampiezza">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="adatta"/>
+ </cd:parameter>
+ <cd:parameter name="luogo">
+ <cd:constant type="cima"/>
+ <cd:constant type="centro"/>
+ <cd:constant type="fondo"/>
+ <cd:constant type="sinistra"/>
+ <cd:constant type="destra"/>
+ </cd:parameter>
+ <cd:parameter name="allinea">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="stile">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="colore">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="combination" type="environment">
+ <cd:sequence>
+ <cd:string value="combination"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:matrix"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placesidebyside" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="mettifiancoafianco"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placeontopofeachother" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="mettiunosullaltro"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overlay" type="environment">
+ <cd:sequence>
+ <cd:string value="overlay"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overview" type="environment">
+ <cd:sequence>
+ <cd:string value="overview"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupinteractionscreen" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="impostaschermointerazione"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:parameter name="ampiezza">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="adatta"/>
+ <cd:constant type="max"/>
+ </cd:parameter>
+ <cd:parameter name="altezza">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="adatta"/>
+ <cd:constant type="max"/>
+ </cd:parameter>
+ <cd:parameter name="backspace">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="spaziocima">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="horoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="veroffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="opzione">
+ <cd:constant type="max"/>
+ <cd:constant type="adatta"/>
+ <cd:constant type="doppiafaccia"/>
+ <cd:constant type="facciasingola"/>
+ <cd:constant type="auto"/>
+ <cd:constant type="nessuno"/>
+ <cd:constant type="segnalibro"/>
+ </cd:parameter>
+ <cd:parameter name="attesa">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="nessuno"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="screen" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="schermo"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setuppagetransitions" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="impostatransizionepagina"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="reimposta"/>
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupinteraction" file="core-nav.tex">
+ <cd:sequence>
+ <cd:string value="impostainterazione"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:parameter name="stato">
+ <cd:constant type="inizia"/>
+ <cd:constant type="termina"/>
+ </cd:parameter>
+ <cd:parameter name="menu">
+ <cd:constant type="attivo"/>
+ <cd:constant type="disattivo"/>
+ </cd:parameter>
+ <cd:parameter name="pagina">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="click">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="separa">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="display">
+ <cd:constant type="nuovo"/>
+ </cd:parameter>
+ <cd:parameter name="azioneapri">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="azionechiudi">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="azioneapripagina">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="azionechiudipagina">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="calcola">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="strut">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="ampiezza">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="altezza">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="profondita">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="stile">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="colore">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="colorecontrasto">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="setsimboli">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="titolo">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="sottotitolo">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="autore">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="data">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="parolachiave">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <!-- maybe this will move elsewhere -->
+ <cd:parameter name="fieldlayer">
+ <cd:constant type="auto"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupinteractionmenu" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="impostamenuinterazione"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="prima">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dopo">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="tra">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="sinistra">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="destra">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="centro">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="stato">
+ <cd:constant type="inizia"/>
+ <cd:constant type="termina"/>
+ <cd:constant type="nessuno"/>
+ <cd:constant type="locale"/>
+ </cd:parameter>
+ <cd:parameter name="stile">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="colore">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="colorecontrasto">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="distanza">
+ <cd:constant type="sovrapponi"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="stessapagina">
+ <cd:constant type="si"/>
+ <cd:constant type="vuoto"/>
+ <cd:constant type="no"/>
+ <cd:constant type="nessuno"/>
+ </cd:parameter>
+ <cd:parameter name="riferimentoingoto">
+ <cd:constant type="si"/>
+ <cd:constant type="vuoto"/>
+ <cd:constant type="no"/>
+ <cd:constant type="nessuno"/>
+ </cd:parameter>
+ <cd:parameter name="offsetsinistro">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="offsetdestro">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="offsetcima">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="offsetfondo">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="posizione">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:inherit name="impostaincorniciato" n="2"/> <!-- maybe not all parameters from framed -->
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineinteractionmenu" variant="1" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="definiscimenuinterazione"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive" list="yes">
<cd:constant type="sinistra"/>
<cd:constant type="destra"/>
- <cd:constant type="inmargine"/>
<cd:constant type="cima"/>
<cd:constant type="fondo"/>
- </cd:parameter>
- <cd:parameter name="simbolo">
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- <cd:constant type="..."/>
- <cd:constant type="n"/>
- <cd:constant type="a"/>
- <cd:constant type="..."/>
- <cd:constant type="cd:text"/>
- <cd:constant type="nessuno"/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- <cd:constant type="ignoto"/>
- </cd:parameter>
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="tra">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="allinea">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="quotation" type="environment" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="citazione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="sinistra"/>
- <cd:constant type="centro" default="yes"/>
- <cd:constant type="destra"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="quotation" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="citazione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="quote" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="menzione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupquote" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="impostamenzione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="colore">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="luogo">
- <cd:constant type="cd:text"/>
- <cd:constant type="margine"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="adding">
- <cd:sequence>
- <cd:string value="adding"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="piccolo"/>
- <cd:constant type="medio" default="yes"/>
- <cd:constant type="grande"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineparagraphs" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="definiscicapoversi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="linea">
- <cd:constant type="attivo"/>
- <cd:constant type="disattivo"/>
- </cd:parameter>
- <cd:parameter name="altezza">
- <cd:constant type="adatta"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="interno">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="distanza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="tolleranza">
- <cd:constant type="moltorigido"/>
- <cd:constant type="rigido"/>
- <cd:constant type="tollerante"/>
- <cd:constant type="moltotollerante"/>
- <cd:constant type="dilata"/>
- </cd:parameter>
- <cd:parameter name="allinea">
- <cd:resolve name="align"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="paragraph" generated="yes">
- <cd:sequence>
- <cd:variable value="capoverso"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="paragraph" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="capoverso"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupparagraphs" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="impostacapoversi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:number"/>
- <cd:constant type="ogni"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="altezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="allinea">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="tolleranza">
- <cd:constant type="moltorigido"/>
- <cd:constant type="rigido"/>
- <cd:constant type="tollerante"/>
- <cd:constant type="moltotollerante"/>
- <cd:constant type="dilata"/>
- </cd:parameter>
- <cd:parameter name="distanza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="interno">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="comando">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="linea">
- <cd:constant type="attivo"/>
- <cd:constant type="disattivo"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptab" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="impostatab"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="campione">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stiletesta">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="luogo">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="impostamenuinterazione" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineinteractionmenu" variant="2" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="definiscimenuinterazione"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
<cd:constant type="sinistra"/>
<cd:constant type="destra"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="tab">
- <cd:sequence>
- <cd:string value="tab"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:nothing/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="document" type="environment">
- <cd:sequence>
- <cd:string value="document"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="labels">
- <cd:sequence>
- <cd:string value="etichette"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definetabulate" file="core-tbl.tex">
- <cd:sequence>
- <cd:string value="definiscitabulato"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="tabulate" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="tabulato"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="usafiguraesterna"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptabulate" file="core-tbl.tex">
- <cd:sequence>
- <cd:string value="impostatabulato"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="unita">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rientro">
- <cd:resolve name="indenting"/>
- </cd:parameter>
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="interno">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="EQ">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="colorelinea">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="allinea">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="spessorelinea">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanza">
- <cd:constant type="rigovuoto"/>
- <cd:constant type="griglia"/>
- <cd:constant type="profondita"/>
- <cd:constant type="cd:dimension"/>
- <cd:constant type="piccolo"/>
- <cd:constant type="medio"/>
- <cd:constant type="grande"/>
- <cd:constant type="nessuno"/>
- </cd:parameter>
- <cd:parameter name="fonttesto">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="piccolo"/>
- <cd:constant type="grande"/>
- </cd:parameter>
- <cd:parameter name="linea">
- <cd:constant type="normale"/>
- <cd:constant type="riga"/>
- </cd:parameter>
- <cd:parameter name="separa">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptables" file="core-tab.tex">
- <cd:sequence>
- <cd:string value="impostatabelle"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="distanza">
- <cd:constant type="piccolo"/>
- <cd:constant type="medio"/>
- <cd:constant type="grande"/>
- </cd:parameter>
- <cd:parameter name="fonttesto">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="piccolo"/>
- <cd:constant type="grande"/>
- </cd:parameter>
- <cd:parameter name="HL">
- <cd:constant type="cd:number"/>
- <cd:constant type="piccolo"/>
- <cd:constant type="medio"/>
- <cd:constant type="grande"/>
- <cd:constant type="nessuno"/>
- </cd:parameter>
- <cd:parameter name="VL">
- <cd:constant type="cd:number"/>
- <cd:constant type="piccolo"/>
- <cd:constant type="medio"/>
- <cd:constant type="grande"/>
- <cd:constant type="nessuno"/>
- </cd:parameter>
- <cd:parameter name="profondita">
- <cd:constant type="cd:number"/>
- <cd:constant type="strut"/>
- </cd:parameter>
- <cd:parameter name="altezza">
- <cd:constant type="cd:number"/>
- <cd:constant type="strut"/>
- </cd:parameter>
- <cd:parameter name="spessorelinea">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="colorelinea">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="allinea">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="comandi">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="allinea">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="sfondo">
- <cd:constant type="schermo"/>
- <cd:constant type="colore"/>
- <cd:constant type="nessuno"/>
- </cd:parameter>
- <cd:parameter name="schermosfondo">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="coloresfondo">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="fonttesto">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="piccolo"/>
- <cd:constant type="grande"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="table" type="environment">
- <cd:sequence>
- <cd:string value="table"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="tables" type="environment">
- <cd:sequence>
- <cd:string value="tables"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definetabletemplate" file="core-tab.tex">
- <cd:sequence>
- <cd:string value="definiscimodellotabella"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="useexternalfiles" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="usafileesterni"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="fonttesto">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="piccolo"/>
- <cd:constant type="grande"/>
- </cd:parameter>
- <cd:parameter name="file">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="useexternalfile" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="usafileesterno"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="fonttesto">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="piccolo"/>
- <cd:constant type="grande"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="useexternalfigure" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="usafiguraesterna"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:parameter name="scala">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="yscale">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="yscale">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="fattore">
- <cd:constant type="max"/>
- <cd:constant type="adatta"/>
- <cd:constant type="ampio"/>
- </cd:parameter>
- <cd:parameter name="wfactor">
- <cd:constant type="cd:number"/>
- <cd:constant type="max"/>
- <cd:constant type="ampio"/>
- <cd:constant type="adatta"/>
- </cd:parameter>
- <cd:parameter name="hfactor">
- <cd:constant type="cd:number"/>
- <cd:constant type="max"/>
- <cd:constant type="ampio"/>
- <cd:constant type="adatta"/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="altezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="cornice">
- <cd:constant type="attivo"/>
- <cd:constant type="disattivo"/>
- </cd:parameter>
- <cd:parameter name="preimpostato">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="display">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="anteprima">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="ripeti">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="oggetto">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="type">
- <cd:constant type="eps"/>
- <cd:constant type="mps"/>
- <cd:constant type="pdf"/>
- <cd:constant type="tif"/>
- <cd:constant type="png"/>
- <cd:constant type="jpg"/>
- <cd:constant type="mov"/>
- <cd:constant type="cd:tex"/>
- </cd:parameter>
- <cd:parameter name="metodo">
- <cd:constant type="eps"/>
- <cd:constant type="mps"/>
- <cd:constant type="pdf"/>
- <cd:constant type="tif"/>
- <cd:constant type="png"/>
- <cd:constant type="jpg"/>
- <cd:constant type="mov"/>
- <cd:constant type="cd:tex"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="externalfigure" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="figuraesterna"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="usafiguraesterna"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupexternalfigures" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="impostafigureesterne"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments>
- <cd:parameter name="opzione">
- <cd:constant type="cornice"/>
- <cd:constant type="vuoto"/>
- <cd:constant type="test"/>
- </cd:parameter>
- <cd:parameter name="oggetto">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="cornici">
- <cd:constant type="attivo"/>
- <cd:constant type="disattivo"/>
- </cd:parameter>
- <cd:parameter name="ymax">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="xmax">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="directory">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="luogo">
- <cd:constant type="locale"/>
- <cd:constant type="globale"/>
- <cd:constant type="implicito"/>
- <cd:constant type="nessuno"/>
- </cd:parameter>
- <cd:parameter name="ampiezzamax">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="altezzamax">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="conversione">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="prefisso">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showexternalfigures" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="mostrafiguresterne"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:parameter name="alternativa">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="useexternalsoundtrack" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="usacolonnasonoraesterna"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:file"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="name" file="syst-gen.tex">
- <cd:sequence>
- <cd:string value="name"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="legend" type="environment">
- <cd:sequence>
- <cd:string value="legend"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="due"/>
- </cd:keywords>
- <cd:tex command="leg"/>
- <cd:nothing/>
- <cd:nothing separator="backslash"/>
- <cd:nothing separator="backslash"/>
- <cd:tex separator="backslash" command="leg"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="fact" type="environment">
- <cd:sequence>
- <cd:string value="fatto"/>
- </cd:sequence>
- <cd:arguments>
- <cd:tex command="fact"/>
- <cd:nothing/>
- <cd:nothing separator="backslash"/>
- <cd:nothing separator="backslash"/>
- <cd:tex separator="backslash" command="fact"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="rotate" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="ruota"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="impostarotazione"/>
- </cd:assignments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuprotate" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="impostarotazione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="rotazione">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="luogo">
- <cd:constant type="normale"/>
- <cd:constant type="alto"/>
- <cd:constant type="adatta"/>
- <cd:constant type="ampio"/>
- <cd:constant type="profondita"/>
- </cd:parameter>
- <cd:inherit name="impostaincorniciato"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="mirror" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="riflessione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="scale" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="scala"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:parameter name="sx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="sy">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupcombinations" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="impostacombinazioni"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="tra">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="distanza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="altezza">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="adatta"/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="adatta"/>
- </cd:parameter>
- <cd:parameter name="luogo">
<cd:constant type="cima"/>
- <cd:constant type="centro"/>
<cd:constant type="fondo"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
<cd:constant type="sinistra"/>
<cd:constant type="destra"/>
- </cd:parameter>
- <cd:parameter name="allinea">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="colore">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="combination" type="environment">
- <cd:sequence>
- <cd:string value="combination"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:matrix"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placesidebyside" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="mettifiancoafianco"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placeontopofeachother" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="mettiunosullaltro"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="overlay" type="environment">
- <cd:sequence>
- <cd:string value="overlay"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="overview" type="environment">
- <cd:sequence>
- <cd:string value="overview"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupinteractionscreen" file="core-int.tex">
- <cd:sequence>
- <cd:string value="impostaschermointerazione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" list="yes">
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="adatta"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="altezza">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="adatta"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="backspace">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="spaziocima">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="horoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="veroffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="opzione">
- <cd:constant type="max"/>
- <cd:constant type="adatta"/>
- <cd:constant type="doppiafaccia"/>
- <cd:constant type="segnalibro"/>
- </cd:parameter>
- <cd:parameter name="attesa">
- <cd:constant type="cd:number"/>
- <cd:constant type="nessuno"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="screen" file="core-int.tex">
- <cd:sequence>
- <cd:string value="schermo"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setuppagetransitions" file="core-int.tex">
- <cd:sequence>
- <cd:string value="impostatransizionepagina"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="reimposta"/>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupinteraction" file="core-nav.tex">
- <cd:sequence>
- <cd:string value="impostainterazione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" list="yes">
- <cd:parameter name="stato">
- <cd:constant type="inizia"/>
- <cd:constant type="termina"/>
- </cd:parameter>
- <cd:parameter name="menu">
- <cd:constant type="attivo"/>
- <cd:constant type="disattivo"/>
- </cd:parameter>
- <cd:parameter name="pagina">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="click">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="separa">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="display">
- <cd:constant type="nuovo"/>
- </cd:parameter>
- <cd:parameter name="azioneapri">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="azionechiudi">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="azioneapripagina">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="azionechiudipagina">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="calcola">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="altezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="profondita">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="colore">
+ <cd:constant type="cima"/>
+ <cd:constant type="fondo"/>
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="colorecontrasto">
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="impostamenuinterazione" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="interactionmenu" type="environment">
+ <cd:sequence>
+ <cd:string value="menuinterattivo"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="setsimboli">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="disableinteractionmenu" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="disabilitamenuinterazione"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
+ <cd:constant type="sinistra"/>
+ <cd:constant type="destra"/>
+ <cd:constant type="cima"/>
+ <cd:constant type="fondo"/>
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="titolo">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="sottotitolo">
+ </cd:keywords>
+ <cd:reference n="2" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useexternaldocument" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="usadocumentoesterno"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="file"/>
+ </cd:keywords>
+ <cd:keywords n="3">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="autore">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useURL" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="usaURL"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="data">
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:constant type="file"/>
+ </cd:keywords>
+ <cd:keywords n="4">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="parolachiave">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="coupledocument" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="accoppiadocumento"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="file"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="from" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="da"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" interactive="exclusive"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="interactionbar">
+ <cd:sequence>
+ <cd:string value="barrainterazione"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:inherit name="impostabarrainterazione" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="interactionbuttons" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="pulsantinterazione"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" optional="yes" list="yes">
+ <cd:inherit name="impostabarrainterazione" n="1"/>
+ </cd:assignments>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupinteractionbar" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="impostabarrainterazione"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:parameter name="stato">
+ <cd:constant type="inizia"/>
+ <cd:constant type="termina"/>
+ </cd:parameter>
+ <cd:parameter name="alternativa">
+ <cd:constant type="a"/>
+ <cd:constant type="b"/>
+ <cd:constant type="c"/>
+ <cd:constant type="d"/>
+ <cd:constant type="e"/>
+ <cd:constant type="f"/>
+ <cd:constant type="g"/>
+ </cd:parameter>
+ <cd:parameter name="simbolo">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="ampiezza">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="altezza"/>
+ <cd:constant type="adatta"/>
+ </cd:parameter>
+ <cd:parameter name="altezza">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="altezza"/>
+ <cd:constant type="adatta"/>
+ </cd:parameter>
+ <cd:parameter name="profondita">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="colore">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="passo">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="piccolo"/>
+ <cd:constant type="medio"/>
+ <cd:constant type="grande"/>
+ </cd:parameter>
+ <cd:inherit name="impostaincorniciato" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="synchronize" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="sincronizza"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="synchronization" type="environment">
+ <cd:sequence>
+ <cd:string value="synchronization"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupsynchronizationbar" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="impostabarrasincronizzazione"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:parameter name="alternativa">
+ <cd:constant type="pagina"/>
+ <cd:constant type="locale"/>
+ </cd:parameter>
+ <cd:parameter name="ampiezza">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="altezza"/>
+ <cd:constant type="adatta"/>
+ </cd:parameter>
+ <cd:parameter name="altezza">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="stile">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="colore">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:inherit name="impostaincorniciato" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="synchronizationbar" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="barrasincronizzazione"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="alternativa">
+ <cd:constant type="pagina"/>
+ <cd:constant type="locale"/>
+ </cd:parameter>
+ <cd:inherit name="impostabarrasincronizzazione" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsynchronization" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="impostasincronizzazione"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:parameter name="stato">
+ <cd:constant type="inizia"/>
+ <cd:constant type="termina"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineprofile" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="definisciprofilo"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupprofiles" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="impostaprofili"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:parameter name="opzione">
+ <cd:constant type="test"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="profile" type="environment">
+ <cd:sequence>
+ <cd:string value="profile"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="followprofile" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="seguiprofilo"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="exclusive"/>
+ <cd:keywords n="2">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <!-- maybe this will move elsewhere -->
- <cd:parameter name="fieldlayer">
- <cd:constant type="auto"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placebookmarks" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="mettisegnalibro"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
<cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineinteractionmenu" variant="1" file="core-int.tex">
- <cd:sequence>
- <cd:string value="definiscimenuinterazione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive" list="yes">
- <cd:constant type="sinistra"/>
- <cd:constant type="destra"/>
- <cd:constant type="cima"/>
- <cd:constant type="fondo"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="tra">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="sinistra">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="destra">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="centro">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="stato">
- <cd:constant type="inizia"/>
- <cd:constant type="termina"/>
- <cd:constant type="nessuno"/>
- <cd:constant type="locale"/>
- </cd:parameter>
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="colore">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="distanza">
- <cd:constant type="sovrapponi"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stessapagina">
- <cd:constant type="si"/>
- <cd:constant type="vuoto"/>
- <cd:constant type="no"/>
- <cd:constant type="nessuno"/>
- </cd:parameter>
- <cd:parameter name="riferimentoingoto">
- <cd:constant type="si"/>
- <cd:constant type="vuoto"/>
- <cd:constant type="no"/>
- <cd:constant type="nessuno"/>
- </cd:parameter>
- <cd:parameter name="offsetsinistro">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offsetdestro">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offsetcima">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offsetfondo">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="posizione">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:inherit name="impostaincorniciato"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineinteractionmenu" variant="2" file="core-int.tex">
- <cd:sequence>
- <cd:string value="definiscimenuinterazione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="sinistra"/>
- <cd:constant type="destra"/>
- <cd:constant type="cima"/>
- <cd:constant type="fondo"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="sinistra"/>
- <cd:constant type="destra"/>
- <cd:constant type="cima"/>
- <cd:constant type="fondo"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="impostamenuinterazione"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="interactionmenu" type="environment">
- <cd:sequence>
- <cd:string value="menuinterattivo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="disableinteractionmenu" file="core-int.tex">
- <cd:sequence>
- <cd:string value="disabilitamenuinterazione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="sinistra"/>
- <cd:constant type="destra"/>
- <cd:constant type="cima"/>
- <cd:constant type="fondo"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:reference list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="useexternaldocument" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="usadocumentoesterno"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="file"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="useURL" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="usaURL"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="file"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="coupledocument" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="accoppiadocumento"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="file"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="from" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="da"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference interactive="exclusive"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="interactionbar">
- <cd:sequence>
- <cd:string value="barrainterazione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" list="yes">
- <cd:inherit name="impostabarrainterazione"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="interactionbuttons" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="pulsantinterazione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" optional="yes" list="yes">
- <cd:inherit name="impostabarrainterazione"/>
- </cd:assignments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupinteractionbar" file="core-int.tex">
- <cd:sequence>
- <cd:string value="impostabarrainterazione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" list="yes">
- <cd:parameter name="stato">
- <cd:constant type="inizia"/>
- <cd:constant type="termina"/>
- </cd:parameter>
- <cd:parameter name="alternativa">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- <cd:constant type="d"/>
- <cd:constant type="e"/>
- <cd:constant type="f"/>
- <cd:constant type="g"/>
- </cd:parameter>
- <cd:parameter name="simbolo">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="altezza"/>
- <cd:constant type="adatta"/>
- </cd:parameter>
- <cd:parameter name="altezza">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="altezza"/>
- <cd:constant type="adatta"/>
- </cd:parameter>
- <cd:parameter name="profondita">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="colore">
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ <cd:constant type="tutti"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="bookmark" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="segnalibro"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="passo">
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="version" type="environment">
+ <cd:sequence>
+ <cd:string value="versione"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive" list="yes">
<cd:constant type="cd:number"/>
- <cd:constant type="piccolo"/>
- <cd:constant type="medio"/>
- <cd:constant type="grande"/>
- </cd:parameter>
- <cd:inherit name="impostaincorniciato"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="synchronize" file="core-int.tex">
- <cd:sequence>
- <cd:string value="sincronizza"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="synchronization" type="environment">
- <cd:sequence>
- <cd:string value="synchronization"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupsynchronizationbar" file="core-int.tex">
- <cd:sequence>
- <cd:string value="impostabarrasincronizzazione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" list="yes">
- <cd:parameter name="alternativa">
- <cd:constant type="pagina"/>
- <cd:constant type="locale"/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="altezza"/>
- <cd:constant type="adatta"/>
- </cd:parameter>
- <cd:parameter name="altezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="colore">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:inherit name="impostaincorniciato"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="synchronizationbar" file="core-int.tex">
- <cd:sequence>
- <cd:string value="barrasincronizzazione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="alternativa">
- <cd:constant type="pagina"/>
- <cd:constant type="locale"/>
- </cd:parameter>
- <cd:inherit name="impostabarrasincronizzazione"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupsynchronization" file="core-int.tex">
- <cd:sequence>
- <cd:string value="impostasincronizzazione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" list="yes">
- <cd:parameter name="stato">
- <cd:constant type="inizia"/>
- <cd:constant type="termina"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineprofile" file="core-int.tex">
- <cd:sequence>
- <cd:string value="definisciprofilo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupprofiles" file="core-int.tex">
- <cd:sequence>
- <cd:string value="impostaprofili"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" list="yes">
- <cd:parameter name="opzione">
- <cd:constant type="test"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="profile" type="environment">
- <cd:sequence>
- <cd:string value="profile"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="followprofile" file="core-int.tex">
- <cd:sequence>
- <cd:string value="seguiprofilo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content interactive="exclusive"/>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placebookmarks" file="core-int.tex">
- <cd:sequence>
- <cd:string value="mettisegnalibro"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- <cd:constant type="tutti"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="bookmark">
- <cd:sequence>
- <cd:string value="segnalibro"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="version" type="environment">
- <cd:sequence>
- <cd:string value="versione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive" list="yes">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupversions" file="core-int.tex">
- <cd:sequence>
- <cd:string value="impostaversioni"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="numero">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupversions" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="impostaversioni"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="numero">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="stile">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="markversion" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="marcaversione"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="selectversion" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="selezionaversione"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="defineversion" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="definisciversion"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
<cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="markversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="marcaversione"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="selectversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="selezionaversione"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="defineversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="definisciversion"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="followversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="seguiversione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content interactive="exclusive"/>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="followprofileversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="seguiversioneprofilo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content interactive="exclusive"/>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineprogram" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="definisciprogramma"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupprograms" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="impostaprogrammi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" list="yes">
- <cd:parameter name="directory">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="followversion" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="seguiversione"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="exclusive"/>
+ <cd:keywords n="2">
<cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="program" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="programma"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="figure" type="environment">
- <cd:sequence>
- <cd:string value="figure"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="fattore">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="cornice">
- <cd:constant type="attivo"/>
- <cd:constant type="disattivo"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<!-- referring*figure skipped -->
-
-<!-- marking*figure skipped -->
-
-<!-- remark skipped -->
-
-<cd:command name="goto" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="vaia"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content interactive="exclusive"/>
- <cd:content interactive="exclusive"/>
- <cd:reference list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="gotobox" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="vaiabox"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content interactive="exclusive"/>
- <cd:reference list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="button">
- <cd:sequence>
- <cd:string value="pulsante"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" optional="yes" list="yes">
- <cd:inherit name="impostapulsanti"/>
- </cd:assignments>
- <cd:content/>
- <cd:reference list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupbuttons" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="impostapulsanti"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="stato">
- <cd:constant type="inizia"/>
- <cd:constant type="termina"/>
- </cd:parameter>
- <cd:inherit name="impostaincorniciato"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<!-- menubutton skipped -->
-
-<cd:command name="setupcomment" file="core-int.tex">
- <cd:sequence>
- <cd:string value="impostacommento"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="stato">
- <cd:constant type="inizia"/>
- <cd:constant type="termina"/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="altezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="colore">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="titolo">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="followprofileversion" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="seguiversioneprofilo"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="exclusive"/>
+ <cd:keywords n="2">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="spazio">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="simbolo">
- <cd:constant type="normale"/>
- <cd:constant type="Nuovo"/>
- <cd:constant type="Pallone"/>
- <cd:constant type="Aggiunta"/>
- <cd:constant type="Aiuto"/>
- <cd:constant type="Capoverso"/>
- <cd:constant type="Tasto"/>
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="opzione">
- <cd:constant type="max"/>
- <cd:constant type="buffer"/>
- </cd:parameter>
- <cd:parameter name="margine">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="comment" type="environment">
- <cd:sequence>
- <cd:string value="commento"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="impostacommento"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="comment">
- <cd:sequence>
- <cd:string value="commento"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="impostacommento"/>
- </cd:assignments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definefield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="definiscicampo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definesubfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="definiscisottocampo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="copyfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="copiacampo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="clonefield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="clonacampo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="field" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="campi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="fitfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="adattacampo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="fillinfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="camporiempimento"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="tooltip" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="tooltip"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="sinistra"/>
- <cd:constant type="destra"/>
- <cd:constant type="centro"/>
- </cd:keywords>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showfields" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="mostracampi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="logfields" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="logcampi"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="impostacampo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="etichetta"/>
- <cd:constant type="orizzontale"/>
- <cd:constant type="verticale"/>
- <cd:constant type="cornice"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="impostacampi"/>
- </cd:assignments>
- <cd:assignments list="yes">
- </cd:assignments>
- <cd:assignments list="yes">
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfields" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="impostacampi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="reimposta"/>
- <cd:constant type="etichetta"/>
- <cd:constant type="orizzontale"/>
- <cd:constant type="verticale"/>
- <cd:constant type="cornice"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="distanza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="tra">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="colore">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="allinea">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="opzione">
- <cd:constant type="solalettura"/>
- <cd:constant type="richiestp"/>
- <cd:constant type="protetto"/>
- <cd:constant type="ordinato"/>
- <cd:constant type="nondisponibile"/>
- <cd:constant type="nascosto"/>
- <cd:constant type="stampabile"/>
- </cd:parameter>
- <cd:parameter name="clickdentro">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="clickfuori">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="entraregione">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="esciregione">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="dopotasto">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="format">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="verifica">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="calcola">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="offsetcampo">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="colorecornicecampo">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="coloresfondocampo">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:inherit name="incorniciato"/>
- </cd:assignments>
- <cd:assignments list="yes">
- </cd:assignments>
- <cd:assignments list="yes">
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupforms" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="impostaforms"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="metodo">
- <cd:constant type="HTML"/>
- <cd:constant type="FDF"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definefieldstack" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="definiscistackcampi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="impostacampi"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="fieldstack" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="stackcampi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="impostacampi"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="clip" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="clip"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="impostaclippling"/>
- </cd:assignments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupclipping" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="impostaclippling"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="nx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ny">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="x">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="y">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="altezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="voffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="mp">
+ </cd:keywords>
+ <cd:keywords n="3">
<cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placelegend">
- <cd:sequence>
- <cd:string value="mettilegenda"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuplegend">
- <cd:sequence>
- <cd:string value="impostalegenda"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="distanza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="tra">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="altezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="luogo">
- <cd:constant type="destra"/>
- <cd:constant type="fondo"/>
- </cd:parameter>
- <cd:parameter name="fonttesto">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="piccolo"/>
- <cd:constant type="grande"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definerule">
- <cd:sequence>
- <cd:string value="definiscilinea"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="impostalinea"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placerule">
- <cd:sequence>
- <cd:string value="mettilinea"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuprule">
- <cd:sequence>
- <cd:string value="impostalinea"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="profondita">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="altezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="spazioprima">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="spaziodopo">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="colore">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineprogram" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="definisciprogramma"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
<cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definetextvariable">
- <cd:sequence>
- <cd:string value="definiscivariabiletesto"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:inherit name="impostavariabiletesto"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptextvariable">
- <cd:sequence>
- <cd:string value="impostavariabiletesto"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="sinistra">
+ </cd:keywords>
+ <cd:keywords n="2">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="destra">
+ </cd:keywords>
+ <cd:keywords n="3">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="distanza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="comando">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="si"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupprograms" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="impostaprogrammi"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:parameter name="directory">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="program" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="programma"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="figure" type="environment">
+ <cd:sequence>
+ <cd:string value="figure"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:parameter name="fattore">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="cornice">
+ <cd:constant type="attivo"/>
+ <cd:constant type="disattivo"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <!-- referring*figure skipped -->
+
+ <!-- marking*figure skipped -->
+
+ <!-- remark skipped -->
+
+ <cd:command name="goto" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="vaia"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="exclusive"/>
+ <cd:content n="2" interactive="exclusive"/>
+ <cd:reference n="3" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="gotobox" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="vaiabox"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="exclusive"/>
+ <cd:reference n="2" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="button" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="pulsante"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" optional="yes" list="yes">
+ <cd:inherit name="impostapulsanti" n="1"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ <cd:reference n="3" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbuttons" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="impostapulsanti"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="stato">
+ <cd:constant type="inizia"/>
+ <cd:constant type="termina"/>
+ </cd:parameter>
+ <cd:inherit name="impostaincorniciato" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <!-- menubutton skipped -->
+
+ <cd:command name="setupcomment" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="impostacommento"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="stato">
+ <cd:constant type="inizia"/>
+ <cd:constant type="termina"/>
+ </cd:parameter>
+ <cd:parameter name="ampiezza">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="altezza">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="colore">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="titolo">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="spazio">
+ <cd:constant type="si"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="simbolo">
+ <cd:constant type="normale"/>
+ <cd:constant type="Nuovo"/>
+ <cd:constant type="Pallone"/>
+ <cd:constant type="Aggiunta"/>
+ <cd:constant type="Aiuto"/>
+ <cd:constant type="Capoverso"/>
+ <cd:constant type="Tasto"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="opzione">
+ <cd:constant type="max"/>
+ <cd:constant type="buffer"/>
+ </cd:parameter>
+ <cd:parameter name="margine">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distanza">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="comment" type="environment">
+ <cd:sequence>
+ <cd:string value="commento"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="impostacommento" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="comment">
+ <cd:sequence>
+ <cd:string value="commento"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="impostacommento" n="1"/>
+ </cd:assignments>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefield" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="definiscicampo"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1"> <!-- name -->
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2"> <!-- type -->
+ <cd:constant type="testo"/>
+ <cd:constant type="riga"/> <!-- equal to text -->
+ <cd:constant type="push"/>
+ <cd:constant type="check"/>
+ <cd:constant type="radio"/>
+ <cd:constant type="combo"/>
+ <cd:constant type="choice"/> <!-- equal to combo -->
+ <cd:constant type="popup"/> <!-- equal to combo -->
+ </cd:keywords>
+ <cd:keywords n="3"> <!-- group -->
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="4" list="yes"> <!-- optional for text? -->
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="5" optional="yes"> <!-- default -->
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definesubfield" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="definiscisottocampo"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="3" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="copyfield" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="copiacampo"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="clonefield" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="clonacampo"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="4" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="field" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="campi"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fitfield" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="adattacampo"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fillinfield" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="camporiempimento"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tooltip" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="tooltip"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="sinistra"/>
+ <cd:constant type="destra"/>
+ <cd:constant type="centro"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showfields" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="mostracampi"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="logfields" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="logcampi"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupfield" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="impostacampo"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="etichetta"/>
+ <cd:constant type="orizzontale"/>
+ <cd:constant type="verticale"/>
+ <cd:constant type="cornice"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:inherit name="impostacampi" n="2"/>
+ </cd:assignments>
+ <cd:assignments n="4" list="yes"> </cd:assignments>
+ <cd:assignments n="5" list="yes"> </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfields" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="impostacampi"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes"> <!-- TODO: if it's reset, only a single argument, no list -->
+ <cd:constant type="reimposta"/>
+ <cd:constant type="etichetta"/>
+ <cd:constant type="orizzontale"/>
+ <cd:constant type="verticale"/>
+ <cd:constant type="cornice"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="distanza">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="prima">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dopo">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="tra">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="colore">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="stile">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="allinea">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="opzione">
+ <cd:constant type="solalettura"/>
+ <cd:constant type="richiestp"/>
+ <cd:constant type="protetto"/>
+ <cd:constant type="ordinato"/>
+ <cd:constant type="nondisponibile"/>
+ <cd:constant type="nascosto"/>
+ <cd:constant type="stampabile"/>
+ </cd:parameter>
+ <cd:parameter name="clickdentro">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="clickfuori">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="entraregione">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="esciregione">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="dopotasto">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="format">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="verifica">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="calcola">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="offsetcampo">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="colorecornicecampo">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="coloresfondocampo">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:inherit name="impostaincorniciato" n="2"/>
+ </cd:assignments>
+ <cd:assignments n="3" list="yes">
+ <cd:inherit name="impostacampi" n="2"/>
+ </cd:assignments>
+ <cd:assignments n="4" list="yes">
+ <cd:inherit name="impostacampi" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupforms" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="impostaforms"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="metodo">
+ <cd:constant type="HTML"/>
+ <cd:constant type="FDF"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefieldstack" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="definiscistackcampi"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:inherit name="impostacampi" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fieldstack" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="stackcampi"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="impostacampi" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="clip" file="core-trf.tex">
+ <cd:sequence>
+ <cd:string value="clip"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="impostaclippling" n="1"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupclipping" file="core-trf.tex">
+ <cd:sequence>
+ <cd:string value="impostaclippling"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="stato">
+ <cd:constant type="inizia"/>
+ <cd:constant type="termina"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number" default="1"/>
+ </cd:parameter>
+ <cd:parameter name="nx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ny">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="x">
+ <cd:constant type="cd:number" default="1"/>
+ </cd:parameter>
+ <cd:parameter name="y">
+ <cd:constant type="cd:number" default="1"/>
+ </cd:parameter>
+ <cd:parameter name="sx">
+ <cd:constant type="cd:number" default="1"/>
+ </cd:parameter>
+ <cd:parameter name="sy">
+ <cd:constant type="cd:number" default="1"/>
+ </cd:parameter>
+ <cd:parameter name="ampiezza">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="altezza">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="hoffset">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="voffset">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="offset">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="offsetsinistro">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="offsetdestro">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="offsetcima">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="offsetfondo">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="mp">
+ <cd:constant type="cd:name" default=""/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placelegend">
+ <cd:sequence>
+ <cd:string value="mettilegenda"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplegend">
+ <cd:sequence>
+ <cd:string value="impostalegenda"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="distanza">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="tra">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="ampiezza">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="altezza">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="luogo">
+ <cd:constant type="destra"/>
+ <cd:constant type="fondo"/>
+ </cd:parameter>
+ <cd:parameter name="fonttesto">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupstrut" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="impostastrut"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="si" default="yes"/>
<cd:constant type="no"/>
<cd:constant type="cap"/>
<cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="settextvariable">
- <cd:sequence>
- <cd:string value="setvariabiletesto"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placetextvariable">
- <cd:sequence>
- <cd:string value="mettivariabiletesto"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="textvariable">
- <cd:sequence>
- <cd:string value="variabiletesto"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definerawfont">
- <cd:sequence>
- <cd:string value="definiscifontgrezzo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="impostainterlinea"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="switchtorawfont">
- <cd:sequence>
- <cd:string value="passaafontgrezzo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definetextposition">
- <cd:sequence>
- <cd:string value="definisciposizionetesto"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="impostaposizionamento"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptextposition">
- <cd:sequence>
- <cd:string value="impostaposizionetesto"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="impostaposizionamento"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="positiontext">
- <cd:sequence>
- <cd:string value="posizionatesto"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupstrut" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="impostastrut"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="si" default="yes"/>
- <cd:constant type="no"/>
- <cd:constant type="cap"/>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usetypescriptfile" file="type-ini.tex">
+ <cd:sequence>
+ <cd:string value="usetypescriptfile"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usetypescript" file="type-ini.tex">
+ <cd:sequence>
+ <cd:string value="usetypescript"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definetypeface" file="type-ini.tex">
+ <cd:sequence>
+ <cd:string value="definetypeface"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="rm"/>
+ <cd:constant type="ss"/>
+ <cd:constant type="tt"/>
+ <cd:constant type="mm"/>
+ <cd:constant type="hw"/>
+ <cd:constant type="cg"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="4">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="5" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="6" optional="yes">
+ <cd:parameter name="features">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="rscale">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="encoding">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="testo">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefontfeature" file="type-ini.tex">
+ <cd:sequence>
+ <cd:string value="definefontfeature"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="no">
+ <cd:parameter name="compose">
+ <cd:constant type="no" default="yes"/>
+ <cd:constant type="si"/>
+ </cd:parameter>
+ <cd:parameter name="mode">
+ <cd:constant type="node"/>
+ <cd:constant type="base" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="tlig">
+ <cd:constant type="no" default="yes"/>
+ <cd:constant type="si"/>
+ </cd:parameter>
+ <cd:parameter name="trep">
+ <cd:constant type="no" default="yes"/>
+ <cd:constant type="si"/>
+ </cd:parameter>
+ <cd:parameter name="script">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="language">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="..tag.."> <!-- can't use &gt; here, \showsetup gives an error -->
+ <cd:constant type="no" default="yes"/>
+ <cd:constant type="si"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefonthandling" file="hand-ini.mkii">
+ <cd:sequence>
+ <cd:string value="definefonthandling"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:name" list="yes"/>
+ </cd:keywords>
+ <cd:assignments n="3">
+ <cd:parameter name="type">
+ <cd:constant type="sospeso" default="yes"/>
+ <cd:constant type="hz"/>
+ <cd:constant type="spaziatura"/>
+ <cd:constant type="tag"/>
+ </cd:parameter>
+ <cd:parameter name="destra">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="sinistra">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="fattore">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="min">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="max">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="passo">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfonthandling" file="hand-ini.mkii">
+ <cd:sequence>
+ <cd:string value="setupfonthandling"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2">
+ <cd:inherit name="definefonthandling" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefontsynonym" file="font-ini.tex">
+ <cd:sequence>
+ <cd:string value="definiscisinonimofont"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes">
+ <cd:parameter name="encoding">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="features">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="handling">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="mapping">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfontsynonym" file="font-ini.tex">
+ <cd:sequence>
+ <cd:string value="setupfontsynonym"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2">
+ <cd:inherit name="definiscisinonimofont" n="3"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mapfontsize" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="mapfontsize"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definedfont" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="definedfont"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:inherit name="definiscifont" n="2"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
</cd:interface>
-
diff --git a/Master/texmf-dist/tex/context/interface/cont-nl.xml b/Master/texmf-dist/tex/context/interface/cont-nl.xml
index da3caca42af..c8f221c58fc 100644
--- a/Master/texmf-dist/tex/context/interface/cont-nl.xml
+++ b/Master/texmf-dist/tex/context/interface/cont-nl.xml
@@ -1,6 +1,4 @@
-<?xml version="1.0" standalone="yes"?>
-
-<!-- versions:
+<?xml version="1.0" encoding="UTF-8"?><!-- versions:
comment : user interface definitions of ConTeXt
@@ -10,10 +8,9 @@
2006.08.02 : define + resolve
-->
-
<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="nl" version="2006.08.02">
-<cd:define name="align">
+ <cd:define name="align">
<cd:constant type="binnen"/>
<cd:constant type="buiten"/>
<cd:constant type="links"/>
@@ -25,9 +22,18 @@
<cd:constant type="normaal"/>
<cd:constant type="nee"/>
<cd:constant type="ja"/>
-</cd:define>
+ </cd:define>
+
+ <cd:define name="symalign">
+ <cd:constant type="links"/>
+ <cd:constant type="rechts"/>
+ <cd:constant type="lijnlinks"/>
+ <cd:constant type="lijnrechts"/>
+ <cd:constant type="midden"/>
+ <cd:constant type="centreer"/>
+ </cd:define>
-<cd:define name="indenting">
+ <cd:define name="indenting">
<cd:constant type="nooit"/>
<cd:constant type="geen"/>
<cd:constant type="niet"/>
@@ -43,14 +49,14 @@
<cd:constant type="oneven"/>
<cd:constant type="even"/>
<cd:constant type="cd:dimension"/>
-</cd:define>
+ </cd:define>
-<cd:define name="indentnext">
+ <cd:define name="indentnext">
<cd:constant type="ja"/>
<cd:constant type="nee"/>
-</cd:define>
+ </cd:define>
-<cd:define name="style">
+ <cd:define name="style">
<cd:constant type="normaal"/>
<cd:constant type="vet"/>
<cd:constant type="schuin"/>
@@ -59,9 +65,9 @@
<cd:constant type="kap"/>
<cd:constant type="small..."/>
<cd:constant type="cd:command"/>
-</cd:define>
+ </cd:define>
-<cd:define name="language">
+ <cd:define name="language">
<cd:constant type="nl"/>
<cd:constant type="fr"/>
<cd:constant type="en"/>
@@ -70,9961 +76,10164 @@
<cd:constant type="es"/>
<cd:constant type="cz"/>
<cd:constant type=".."/>
-</cd:define>
+ </cd:define>
-<cd:define name="texts">
+ <cd:define name="texts">
<cd:constant type="cd:text"/>
<cd:constant type="cd:section"/>
<cd:constant type="datum"/>
<cd:constant type="cd:mark"/>
<cd:constant type="paginanummer"/>
-</cd:define>
+ </cd:define>
-<cd:define name="layout-h">
+ <cd:define name="layout-h">
<cd:constant type="tekst" default="yes"/>
<cd:constant type="marge"/>
<cd:constant type="rand"/>
-</cd:define>
+ </cd:define>
-<cd:define name="layout-v">
+ <cd:define name="layout-v">
<cd:constant type="boven"/>
<cd:constant type="hoofd"/>
<cd:constant type="tekst" default="yes"/>
<cd:constant type="voet"/>
<cd:constant type="onder"/>
-</cd:define>
+ </cd:define>
-<cd:command name="installlanguage" file="lang-ini.tex">
- <cd:sequence>
- <cd:string value="installeertaal"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="spatiering">
- <cd:constant type="opelkaar"/>
- <cd:constant type="ruim"/>
- </cd:parameter>
- <cd:parameter name="lefthyphenmin">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="righthyphenmin">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="linkerzin">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="rechterzin">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="linkersubzin">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="rechtersubzin">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="linkerciteer">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="rechterciteer">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="linkercitaat">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="rechtercitaat">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="default">
+ <cd:define name="bodyfont">
+ <cd:constant type="5pt"/>
+ <cd:constant type="..."/>
+ <cd:constant type="12pt"/>
+ <cd:constant type="klein"/>
+ <cd:constant type="groot"/>
+ </cd:define>
+
+ <cd:command name="installlanguage" file="lang-ini.tex" category="language">
+ <cd:sequence>
+ <cd:string value="installeertaal"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuplanguage" file="lang-ini.tex">
- <cd:sequence>
- <cd:string value="steltaalin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:resolve name="language"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="installeertaal"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="language">
- <cd:sequence>
- <cd:string value="taal"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:resolve name="language"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="mainlanguage" file="lang-ini.tex">
- <cd:sequence>
- <cd:string value="hoofdtaal"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:resolve name="language"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="translate" file="lang-lab.tex">
- <cd:sequence>
- <cd:string value="vertaal"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="cd:name">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="useencoding" file="enco-ini.tex">
- <cd:sequence>
- <cd:string value="usecodering"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="usespecials" file="spec-ini.tex">
- <cd:sequence>
- <cd:string value="gebruikspecials"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="reset"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineoutput" file="spec-ini.tex">
- <cd:sequence>
- <cd:string value="definieeruitvoer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupoutput" file="spec-ini.tex">
- <cd:sequence>
- <cd:string value="steluitvoerin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definebodyfontenvironment" file="font-ini.tex">
- <cd:sequence>
- <cd:string value="definieerkorpsomgeving"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="default"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="tekst">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="script">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="scriptscript">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="x">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="xx">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="klein">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="groot">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupbodyfontenvironment" file="font-ini.tex">
- <cd:sequence>
- <cd:string value="stelkorpsomgevingin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:inherit name="stelkorpsin"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="stelkorpsin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showbodyfontenvironment">
- <cd:sequence>
- <cd:string value="toonkorpsomgeving"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:inherit name="stelkorpsin"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definebodyfont" file="font-ini.tex">
- <cd:sequence>
- <cd:string value="definieerkorps"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="default"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="rm"/>
- <cd:constant type="ss"/>
- <cd:constant type="tt"/>
- <cd:constant type="mm"/>
- <cd:constant type="hw"/>
- <cd:constant type="cg"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="tf">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="bf">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="sl">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="it">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="bs">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="bi">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="sc">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="ex">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="mi">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="sy">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="ma">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="mb">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="mc">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showbodyfont">
- <cd:sequence>
- <cd:string value="toonkorps"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:inherit name="stelkorpsin"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupbodyfont">
- <cd:sequence>
- <cd:string value="stelkorpsin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- <cd:constant type="serif"/>
- <cd:constant type="regular"/>
- <cd:constant type="romaan"/>
- <cd:constant type="sans"/>
- <cd:constant type="support"/>
- <cd:constant type="schreefloos"/>
- <cd:constant type="mono"/>
- <cd:constant type="type"/>
- <cd:constant type="teletype"/>
- <cd:constant type="handschrift"/>
- <cd:constant type="calligrafie"/>
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="switchtobodyfont" file="font-ini.tex">
- <cd:sequence>
- <cd:string value="switchnaarkorps"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="klein"/>
- <cd:constant type="groot"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definefont" file="font-ini.tex">
- <cd:sequence>
- <cd:string value="definieerfont"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:file"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupcolor" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="stelkleurin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupcolors" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="stelkleurenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- <cd:constant type="globaal"/>
- <cd:constant type="lokaal"/>
- </cd:parameter>
- <cd:parameter name="conversie">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- <cd:constant type="altijd"/>
- </cd:parameter>
- <cd:parameter name="reductie">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="rgb">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="cmyk">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="mpcmyk">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="mpspot">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="tekstkleur">
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="spatiering">
+ <cd:constant type="opelkaar" default="yes"/>
+ <cd:constant type="ruim"/>
+ </cd:parameter>
+ <cd:parameter name="lefthyphenmin">
+ <cd:constant type="cd:number" default="2"/>
+ </cd:parameter>
+ <cd:parameter name="righthyphenmin">
+ <cd:constant type="cd:number" default="2"/>
+ </cd:parameter>
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="linkerzin">
+ <cd:constant type="cd:command" default="---"/>
+ </cd:parameter>
+ <cd:parameter name="rechterzin">
+ <cd:constant type="cd:command" default="---"/>
+ </cd:parameter>
+ <cd:parameter name="linkersubzin">
+ <cd:constant type="cd:command" default="---"/>
+ </cd:parameter>
+ <cd:parameter name="rechtersubzin">
+ <cd:constant type="cd:command" default="---"/>
+ </cd:parameter>
+ <cd:parameter name="linkerciteer">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="rechterciteer">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="linkercitaat">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="rechtercitaat">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="linkeruitspraak">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="middenuitspraak">
+ <cd:constant type="cd:command" default=""/>
+ </cd:parameter>
+ <cd:parameter name="rechteruitspraak">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="limiettekst">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="datum">
+ <cd:constant type="cd:text"/> <!-- TODO -->
+ </cd:parameter>
+ <cd:parameter name="koppelteken">
+ <cd:constant type="cd:command" default="\compoundhyphen"/>
+ </cd:parameter>
+ <cd:parameter name="linkerkoppelteken">
+ <cd:constant type="cd:command" default="\compoundhyphen"/>
+ </cd:parameter>
+ <cd:parameter name="rechterkoppelteken">
+ <cd:constant type="cd:command" default=""/>
+ </cd:parameter>
+ <cd:parameter name="default">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplanguage" file="lang-ini.tex" category="language">
+ <cd:sequence>
+ <cd:string value="steltaalin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:resolve name="language"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="installeertaal" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="language" file="lang-ini.tex" category="language">
+ <cd:sequence>
+ <cd:string value="taal"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:resolve name="language"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mainlanguage" file="lang-ini.tex" category="language">
+ <cd:sequence>
+ <cd:string value="hoofdtaal"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:resolve name="language"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="translate" file="lang-lab.tex" category="language">
+ <cd:sequence>
+ <cd:string value="vertaal"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="cd:name">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useencoding" file="enco-ini.tex" category="encoding"> <!-- engine="pdftex" -->
+ <cd:sequence>
+ <cd:string value="usecodering"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="splitsen">
- <cd:constant type="c"/>
- <cd:constant type="m"/>
- <cd:constant type="y"/>
- <cd:constant type="k"/>
- <cd:constant type="p"/>
- <cd:constant type="s"/>
- <cd:constant type="nee"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usespecials" file="spec-ini.tex">
+ <cd:sequence>
+ <cd:string value="gebruikspecials"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="reset"/>
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="criterium">
- <cd:constant type="alles"/>
- <cd:constant type="geen"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definecolor" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="definieerkleur"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="r">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="g">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="b">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="c">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="m">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="y">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="k">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="s">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="h">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="t">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="a">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="p">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="e">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="color" type="environment" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="kleur"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="color" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="kleur"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="graycolor" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="grijskleur"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showcolor">
- <cd:sequence>
- <cd:string value="toonkleur"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definepalet" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="definieerpalet"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="cd:name">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuppalet" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="stelpaletin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definecolorgroup" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="definieerkleurgroep"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="rgb" default="yes"/>
- <cd:constant type="cmyk"/>
- <cd:constant type="grijs"/>
- <cd:constant type="s"/>
- </cd:keywords>
- <cd:triplet list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showpalet">
- <cd:sequence>
- <cd:string value="toonpalet"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="horizontaal"/>
- <cd:constant type="vertikaal"/>
- <cd:constant type="naam"/>
- <cd:constant type="waarde"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showcolorgroup">
- <cd:sequence>
- <cd:string value="toonkleurgroep"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="horizontaal"/>
- <cd:constant type="vertikaal"/>
- <cd:constant type="naam"/>
- <cd:constant type="waarde"/>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="comparepalet">
- <cd:sequence>
- <cd:string value="vergelijkpalet"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="comparecolorgroup">
- <cd:sequence>
- <cd:string value="vergelijkkleurgroep"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showmakeup" file="supp-vis.tex">
- <cd:sequence>
- <cd:string value="toonopmaak"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="definetype" file="core-ver.tex">
- <cd:sequence>
- <cd:string value="definieertype"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="steltypein"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptype" file="core-ver.tex">
- <cd:sequence>
- <cd:string value="steltypein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="spatie">
- <cd:constant type="aan"/>
- <cd:constant type="uit"/>
- </cd:parameter>
- <cd:parameter name="optie">
- <cd:constant type="schuin"/>
- <cd:constant type="normaal"/>
- <cd:constant type="geen"/>
- </cd:parameter>
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="kleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="type" file="verb-ini.tex">
- <cd:sequence>
- <cd:string value="type"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="typ" file="core-ver.tex">
- <cd:sequence>
- <cd:string value="typ"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="tex" file="core-ver.tex">
- <cd:sequence>
- <cd:string value="tex"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="arg" file="core-ver.tex">
- <cd:sequence>
- <cd:string value="arg"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definetyping" file="core-ver.tex">
- <cd:sequence>
- <cd:string value="definieertypen"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="file"/>
- <cd:constant type="typen"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="steltypenin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptyping" file="core-ver.tex">
- <cd:sequence>
- <cd:string value="steltypenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="file"/>
- <cd:constant type="typen"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="spatie">
- <cd:constant type="aan"/>
- <cd:constant type="uit"/>
- </cd:parameter>
- <cd:parameter name="pagina">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="optie">
- <cd:constant type="schuin"/>
- <cd:constant type="normaal"/>
- <cd:constant type="commandos"/>
- <cd:constant type="kleur"/>
- <cd:constant type="geen"/>
- </cd:parameter>
- <cd:parameter name="tekst">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="icommando">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="vcommando">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="ccommando">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="marge">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="standaard"/>
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="evenmarge">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="onevenmarge">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="blanko">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="klein"/>
- <cd:constant type="middel"/>
- <cd:constant type="groot"/>
- <cd:constant type="standaard"/>
- <cd:constant type="halveregel"/>
- <cd:constant type="regel"/>
- </cd:parameter>
- <cd:parameter name="escape">
- <cd:constant type="cd:character"/>
- </cd:parameter>
- <cd:parameter name="spatie">
- <cd:constant type="aan"/>
- <cd:constant type="uit"/>
- </cd:parameter>
- <cd:parameter name="tab">
- <cd:constant type="cd:number"/>
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="pagina">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="springvolgendein">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="kleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="palet">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="regels">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- <cd:constant type="afgebroken"/>
- </cd:parameter>
- <cd:parameter name="leeg">
- <cd:constant type="ja"/>
- <cd:constant type="alles"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="nummeren">
- <cd:constant type="regel"/>
- <cd:constant type="file"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="typing" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="typen"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="typefile" file="verb-ini.tex">
- <cd:sequence>
- <cd:string value="typefile"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfootnotes" file="core-not.tex">
- <cd:sequence>
- <cd:string value="stelvoetnotenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="conversie">
- <cd:constant type="cijfers"/>
- <cd:constant type="letters"/>
- <cd:constant type="Letters"/>
- <cd:constant type="romeins"/>
- <cd:constant type="Romeins"/>
- </cd:parameter>
- <cd:parameter name="wijze">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="plaats">
- <cd:constant type="pagina"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="kolommen"/>
- <cd:constant type="eerstekolom"/>
- <cd:constant type="laatstekolom"/>
- <cd:constant type="hoog"/>
- <cd:constant type="geen"/>
- </cd:parameter>
- <cd:parameter name="lijn">
- <cd:constant type="aan"/>
- <cd:constant type="uit"/>
- </cd:parameter>
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoogte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="korps">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="klein"/>
- <cd:constant type="groot"/>
- </cd:parameter>
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="afstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="kolomafstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="margeafstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="nummercommando">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="tekstcommando">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="splitsen">
- <cd:constant type="soepel"/>
- <cd:constant type="streng"/>
- <cd:constant type="zeerstreng"/>
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="tekstletter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="tekstkleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="interactie">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="factor">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:inherit name="omlijnd"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfootnotedefinition" file="core-not.tex">
- <cd:sequence>
- <cd:string value="stelvoetnootdefinitiein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:inherit name="doordefinieren"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="footnote" file="core-not.tex">
- <cd:sequence>
- <cd:string value="voetnoot"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="footnotetext" file="core-not.tex">
- <cd:sequence>
- <cd:string value="voetnoottekst"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="note" file="core-not.tex">
- <cd:sequence>
- <cd:string value="noot"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference interactive="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="localfootnotes" type="environment">
- <cd:sequence>
- <cd:string value="localfootnotes"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="placelocalfootnotes" file="core-not.tex">
- <cd:sequence>
- <cd:string value="plaatslokalevoetnoten"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stelvoetnotenin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placefootnotes" file="core-not.tex">
- <cd:sequence>
- <cd:string value="plaatsvoetnoten"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stelvoetnotenin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupunderbar" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="stelonderstrepenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="variant">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- </cd:parameter>
- <cd:parameter name="lijndikte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="onderoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="bovenoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="lijnkleur">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineoutput" file="spec-ini.tex">
+ <cd:sequence>
+ <cd:string value="definieeruitvoer"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="underbar" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="onderstreep"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="underbars" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="onderstrepen"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="overbar" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="overstreep"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="overbars" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="overstrepen"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="overstrike" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="doorstreep"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="overstrikes" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="doorstrepen"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="romannumerals" file="core-con.tex">
- <cd:sequence>
- <cd:string value="romeins"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="Romannumerals" file="core-con.tex">
- <cd:sequence>
- <cd:string value="Romeins"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="numbers" file="core-con.tex">
- <cd:sequence>
- <cd:string value="cijfers"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="character" file="core-con.tex">
- <cd:sequence>
- <cd:string value="letter"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="Character" file="core-con.tex">
- <cd:sequence>
- <cd:string value="Letter"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="characters" file="core-con.tex">
- <cd:sequence>
- <cd:string value="letters"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="Characters" file="core-con.tex">
- <cd:sequence>
- <cd:string value="Letters"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="mediaeval" file="core-con.tex">
- <cd:sequence>
- <cd:string value="mediaeval"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="month" file="core-con.tex">
- <cd:sequence>
- <cd:string value="maand"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="MONTH" file="core-con.tex">
- <cd:sequence>
- <cd:string value="MAAND"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="weekday" file="core-con.tex">
- <cd:sequence>
- <cd:string value="weekdag"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="WEEKDAY" file="core-con.tex">
- <cd:sequence>
- <cd:string value="WEEKDAG"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupcapitals" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="stelkapitalenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="titel">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="sc">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="cap" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="cap"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="nocap">
- <cd:sequence>
- <cd:string value="nocap"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="CAP">
- <cd:sequence>
- <cd:string value="CAP"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="Cap">
- <cd:sequence>
- <cd:string value="Cap"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="Caps">
- <cd:sequence>
- <cd:string value="Caps"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="WORD" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="WOORD"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="WORDS" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="WOORDEN"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="Word" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="Woord"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="Words" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="Woorden"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="stretched" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="uitgerekt"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definesymbol" file="symb-ini.tex">
- <cd:sequence>
- <cd:string value="definieersymbool"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definefiguresymbol" file="symb-ini.tex">
- <cd:sequence>
- <cd:string value="definieerfiguursymbool"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="externfiguur"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="symbol" file="symb-ini.tex">
- <cd:sequence>
- <cd:string value="symbool"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="symbolset" type="environment">
- <cd:sequence>
- <cd:string value="symbolset"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupsymbolset" file="symb-ini.tex">
- <cd:sequence>
- <cd:string value="stelsymboolsetin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="usesymbols" file="symb-ini.tex">
- <cd:sequence>
- <cd:string value="gebruiksymbolen"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showsymbolset">
- <cd:sequence>
- <cd:string value="toonsymboolset"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineconversion" file="core-con.tex">
- <cd:sequence>
- <cd:string value="definieerconversie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:command"/>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="convertnumber" file="core-con.tex">
- <cd:sequence>
- <cd:string value="converteernummer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupheadtext" file="lang-lab.tex">
- <cd:sequence>
- <cd:string value="stelkoptekstin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:resolve name="language"/>
- </cd:keywords>
- <cd:assignments>
- <cd:parameter name="cd:name">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuplabeltext" file="lang-lab.tex">
- <cd:sequence>
- <cd:string value="stellabeltekstin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:resolve name="language"/>
- </cd:keywords>
- <cd:assignments>
- <cd:parameter name="cd:name">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="headtext" file="lang-lab.tex">
- <cd:sequence>
- <cd:string value="koptekst"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="labeltext">
- <cd:sequence>
- <cd:string value="labeltekst"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupmarginrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="stelkantlijnin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments>
- <cd:parameter name="niveau">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="lijndikte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="marginrule" type="environment">
- <cd:sequence>
- <cd:string value="kantlijn"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="marginrule">
- <cd:sequence>
- <cd:string value="kantlijn"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuplinewidth" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="stellijndiktein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupframed" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="stelomlijndin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="hoogte">
- <cd:constant type="passend"/>
- <cd:constant type="ruim"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="passend"/>
- <cd:constant type="ruim"/>
- <cd:constant type="vast"/>
- <cd:constant type="lokaal"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="autobreedte">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- <cd:constant type="forceer"/>
- </cd:parameter>
- <cd:parameter name="offset">
- <cd:constant type="geen"/>
- <cd:constant type="overlay"/>
- <cd:constant type="default"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="plaats">
- <cd:constant type="diepte"/>
- <cd:constant type="hangend"/>
- <cd:constant type="hoog"/>
- <cd:constant type="laho"/>
- <cd:constant type="laag"/>
- <cd:constant type="boven"/>
- <cd:constant type="midden"/>
- <cd:constant type="onder"/>
- <cd:constant type="handhaaf"/>
- </cd:parameter>
- <cd:parameter name="optie">
- <cd:constant type="geen"/>
- <cd:constant type="leeg"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- <cd:constant type="globaal"/>
- <cd:constant type="lokaal"/>
- </cd:parameter>
- <cd:parameter name="uitlijnen">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="onder">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="boven">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="kader">
- <cd:constant type="aan"/>
- <cd:constant type="uit"/>
- <cd:constant type="geen"/>
- <cd:constant type="overlay"/>
- </cd:parameter>
- <cd:parameter name="bovenkader">
- <cd:constant type="aan"/>
- <cd:constant type="uit"/>
- </cd:parameter>
- <cd:parameter name="onderkader">
- <cd:constant type="aan"/>
- <cd:constant type="uit"/>
- </cd:parameter>
- <cd:parameter name="linkerkader">
- <cd:constant type="aan"/>
- <cd:constant type="uit"/>
- </cd:parameter>
- <cd:parameter name="rechterkader">
- <cd:constant type="aan"/>
- <cd:constant type="uit"/>
- </cd:parameter>
- <cd:parameter name="kaderoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="kaderdiepte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="kaderhoek">
- <cd:constant type="rond"/>
- <cd:constant type="recht"/>
- </cd:parameter>
- <cd:parameter name="kaderstraal">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="kaderkleur">
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="achtergrond">
- <cd:constant type="raster"/>
- <cd:constant type="kleur"/>
- <cd:constant type="geen"/>
- <cd:constant type="voorgrond"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupoutput" file="spec-ini.tex">
+ <cd:sequence>
+ <cd:string value="steluitvoerin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="achtergrondraster">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="achtergrondkleur">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definebodyfontenvironment" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="definieerkorpsomgeving"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes"> <!-- it's possible to use 1+2+3, 2+3, what about 1+2? -->
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="achtergrondoffset">
- <cd:constant type="kader"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="achtergronddiepte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="achtergrondhoek">
- <cd:constant type="rond"/>
- <cd:constant type="recht"/>
- </cd:parameter>
- <cd:parameter name="achtergrondstraal">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="diepte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoek">
- <cd:constant type="rond"/>
- <cd:constant type="recht"/>
- </cd:parameter>
- <cd:parameter name="straal">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="leeg">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="voorgrondkleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="voorgrondletter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="lijndikte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="framed" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="omlijnd"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stelomlijndin"/>
- </cd:assignments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="inframed" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="inlijnd"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stelomlijndin"/>
- </cd:assignments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="thinrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="dunnelijnen"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes">
- <cd:inherit name="steldunnelijnenin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupthinrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="steldunnelijnenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments>
- <cd:parameter name="interlinie">
- <cd:constant type="klein"/>
- <cd:constant type="middel"/>
- <cd:constant type="groot"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="tussen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="kleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="achtergrondkleur">
+ </cd:keywords>
+ <cd:keywords n="2" optional="no"> <!-- have to force no, otherwise \showsetup is wrong ! -->
+ <cd:constant type="5pt"/> <!-- TODO: maybe <cd:resolve name="bodyfont"/> -->
+ <cd:constant type="..."/>
+ <cd:constant type="12pt"/>
+ <cd:constant type="default"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:parameter name="tekst">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="script">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="scriptscript">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="x">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="xx">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="a">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="b">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="c">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="d">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="klein">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="groot">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="interlinie">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="em">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbodyfontenvironment" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="stelkorpsomgevingin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes"> <!-- same as definebodyfontenvironment; you can define the whole commant to inherit, not only parameters-->
+ <cd:inherit name="definieerkorpsomgeving" n="1"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="no">
+ <cd:inherit name="definieerkorpsomgeving" n="2" optional="no"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="definieerkorpsomgeving" n="3"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showbodyfontenvironment" file="font-run.tex" category="fonts"> <!-- and debug -->
+ <cd:sequence>
+ <cd:string value="toonkorpsomgeving"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:inherit name="stelkorpsin" n="1"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definebodyfont" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="definieerkorps"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes"> <!-- <cd:constant type="default"/> -->
+ <cd:resolve name="bodyfont"/> <!-- TODO: check this -->
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="rm" default="yes"/>
+ <cd:constant type="ss"/>
+ <cd:constant type="tt"/>
+ <cd:constant type="hw"/>
+ <cd:constant type="cg"/>
+ <cd:constant type="mm"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:parameter name="tf">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="bf">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="sl">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="it">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="bs">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="bi">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="sc">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="mr">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="ex">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="mi">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="sy">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="ma">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="mb">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="mc">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="md">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definebodyfontDEF" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="definieerkorps"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="hoogte">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="diepte">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="variant">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- <cd:constant type="d"/>
- </cd:parameter>
- <cd:parameter name="lijndikte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="kleur">
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:inherit name="stelkorpsin" n="2"/>
+ </cd:keywords>
+ <cd:keywords n="1">
+ <cd:inherit name="stelkorpsin" n="3"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definebodyfontREF" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="definieerkorps"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:inherit name="stelkorpsin" n="1"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:inherit name="stelkorpsin" n="2"/>
+ </cd:keywords>
+ <cd:keywords n="3">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="achtergrond">
- <cd:constant type="kleur"/>
- </cd:parameter>
- <cd:parameter name="achtergrondkleur">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+
+ <cd:command name="showbodyfont" file="font-run.tex" category="fonts"> <!-- visual debugging -->
+ <cd:sequence>
+ <cd:string value="toonkorps"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:inherit name="stelkorpsin" n="1"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbodyfont" file="font-run.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="stelkorpsin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes"> <!-- TODO: many missing, maybe also <cd:resolve name="bodyfont"/> -->
<cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="hairline" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="haarlijn"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="thinrule" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="dunnelijn"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="defineframedtext" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="definieerkadertekst"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stelkadertekstenin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineframed" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="definieeromlijnd"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stelkadertekstenin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupframedtexts" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="stelkadertekstenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="korps">
+ <cd:constant type="serif"/>
+ <cd:constant type="regular"/>
+ <cd:constant type="romaan"/>
+ <cd:constant type="sans"/>
+ <cd:constant type="support"/>
+ <cd:constant type="schreefloos"/>
+ <cd:constant type="mono"/>
+ <cd:constant type="type"/>
+ <cd:constant type="teletype"/>
+ <cd:constant type="handschrift"/>
+ <cd:constant type="calligrafie"/>
<cd:constant type="5pt"/>
<cd:constant type="..."/>
<cd:constant type="12pt"/>
- <cd:constant type="klein"/>
- <cd:constant type="groot"/>
- </cd:parameter>
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="links">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="rechts">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="binnen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="regelcorrectie">
- <cd:constant type="aan"/>
- <cd:constant type="uit"/>
- </cd:parameter>
- <cd:parameter name="dieptecorrectie">
- <cd:constant type="aan"/>
- <cd:constant type="uit"/>
- </cd:parameter>
- <cd:parameter name="marge">
- <cd:constant type="standaard"/>
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="plaats">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="midden"/>
- <cd:constant type="geen"/>
- </cd:parameter>
- <cd:parameter name="inspringen">
- <cd:resolve name="indenting"/>
- </cd:parameter>
- <cd:inherit name="stelomlijndin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="framedtext" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="kadertekst"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="midden"/>
- <cd:constant type="geen"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stelkadertekstenin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="framedtext" generated="yes">
- <cd:sequence>
- <cd:variable value="kadertekst"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stelkadertekstenin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="background" type="environment">
- <cd:sequence>
- <cd:string value="achtergrond"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="background">
- <cd:sequence>
- <cd:string value="achtergrond"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupbackground" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="stelachtergrondin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="linkeroffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rechteroffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="bovenoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="onderoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:inherit name="stelomlijndin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="fillinrules">
- <cd:sequence>
- <cd:string value="invullijnen"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stelinvullijnenin"/>
- </cd:assignments>
- <cd:content/>
- <cd:content optional="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="fillintext">
- <cd:sequence>
- <cd:string value="invultekst"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stelinvullijnenin"/>
- </cd:assignments>
- <cd:content/>
- <cd:content optional="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfillinrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="stelinvullijnenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="breedte">
- <cd:constant type="passend"/>
- <cd:constant type="ruim"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="afstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="interlinie">
- <cd:constant type="klein"/>
- <cd:constant type="middel"/>
- <cd:constant type="groot"/>
- </cd:parameter>
- <cd:parameter name="scheider">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="fillinline">
- <cd:sequence>
- <cd:string value="invulregel"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stelinvulregelsin"/>
- </cd:assignments>
- <cd:nothing/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfillinlines" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="stelinvulregelsin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="marge">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="afstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptextrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="steltekstlijnenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="plaats">
- <cd:constant type="links"/>
- <cd:constant type="inmarge"/>
- </cd:parameter>
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="tussen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="afstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="korps">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="switchtobodyfont" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="switchnaarkorps"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ <cd:constant type="serif"/>
+ <cd:constant type="regular"/>
+ <cd:constant type="romaan"/>
+ <cd:constant type="sans"/>
+ <cd:constant type="support"/>
+ <cd:constant type="schreefloos"/>
+ <cd:constant type="mono"/>
+ <cd:constant type="type"/>
+ <cd:constant type="teletype"/>
+ <cd:constant type="handschrift"/>
+ <cd:constant type="calligrafie"/>
<cd:constant type="5pt"/>
<cd:constant type="..."/>
<cd:constant type="12pt"/>
<cd:constant type="klein"/>
<cd:constant type="groot"/>
- </cd:parameter>
- <cd:parameter name="kleur">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefont" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="definieerfont"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="lijnkleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="textrule" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="tekstlijn"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="boven"/>
- <cd:constant type="onder"/>
- </cd:keywords>
- <cd:content optional="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="textrule" type="environment" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="tekstlijn"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="boven"/>
- <cd:constant type="onder"/>
- </cd:keywords>
- <cd:content optional="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="blackrule" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="blokje"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stelblokjesin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="blackrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="blokjes"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:inherit name="stelblokjesin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupblackrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="stelblokjesin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="hoogte">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="diepte">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="variant">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- </cd:parameter>
- <cd:parameter name="afstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineoverlay" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="definieeroverlay"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:command"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="usemodule">
- <cd:sequence>
- <cd:string value="gebruikmodule"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="reset" file="core-num.tex">
- <cd:sequence>
- <cd:string value="reset"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="donttest">
- <cd:sequence>
- <cd:string value="geentest"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="localenvironment" type="environment">
- <cd:sequence>
- <cd:string value="localenvironment"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupsystem" file="core-sys.tex">
- <cd:sequence>
- <cd:string value="stelsysteemin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="resolutie">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="file">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="gebied">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="willekeur">
- <cd:constant type="normaal"/>
- <cd:constant type="klein"/>
- <cd:constant type="middel"/>
- <cd:constant type="groot"/>
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="usedirectory">
- <cd:sequence>
- <cd:string value="usedirectory"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- <cd:constant type="reset"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="low" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="laag"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="high" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="hoog"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="lohi" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="laho"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="laag"/>
- </cd:keywords>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showframe">
- <cd:sequence>
- <cd:string value="toonkader"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- <cd:constant type="marge"/>
- <cd:constant type="rand"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="leftaligned" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="regellinks"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="rightaligned" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="regelrechts"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="midaligned" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="regelmidden"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="wordright" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="woordrechts"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="inmargin" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="inmarge"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="laag"/>
- </cd:keywords>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="inothermargin" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="inanderemarge"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="laag"/>
- </cd:keywords>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="inleft">
- <cd:sequence>
- <cd:string value="inlinker"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="laag"/>
- </cd:keywords>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="inright">
- <cd:sequence>
- <cd:string value="inrechter"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="laag"/>
- </cd:keywords>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="ininner">
- <cd:sequence>
- <cd:string value="inbinnen"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="laag"/>
- </cd:keywords>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="inouter">
- <cd:sequence>
- <cd:string value="inbuiten"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="laag"/>
- </cd:keywords>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="column">
- <cd:sequence>
- <cd:string value="kolom"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="showstruts" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="toonstruts"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="showsetups">
- <cd:sequence>
- <cd:string value="tooninstellingen"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="showlayout">
- <cd:sequence>
- <cd:string value="toonlayout"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="margintext" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="margetekst"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="laag"/>
- </cd:keywords>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupmarginblocks" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="stelmargeblokkenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="plaats">
- <cd:constant type="inmarge"/>
- <cd:constant type="links"/>
- <cd:constant type="midden"/>
- <cd:constant type="rechts"/>
- </cd:parameter>
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="uitlijnen">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="boven">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="tussen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="onder">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="links">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="rechts">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="marginblock" type="environment">
- <cd:sequence>
- <cd:string value="marginblock"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="part" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="part"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="title" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="title"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="chapter" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="chapter"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="section" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="section"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="subsection" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subsection"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="subsubsection" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subsubsection"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="subject" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subject"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="subsubject" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subsubject"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="subsubsubject" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subsubsubject"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="appendix" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="appendix"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="in" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="in"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content interactive="yes"/>
- <cd:content interactive="yes"/>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="at">
- <cd:sequence>
- <cd:string value="op"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content interactive="yes"/>
- <cd:content interactive="yes"/>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="about">
- <cd:sequence>
- <cd:string value="about"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content interactive="yes"/>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="somewhere" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="ergens"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="atpage" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="oppagina"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="ref" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="ref"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="t"/>
- <cd:constant type="p"/>
- <cd:constant type="r"/>
- <cd:constant type="s"/>
- <cd:constant type="e"/>
- </cd:keywords>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="textreference" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="tekstreferentie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="pagereference" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="paginareferentie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="reference" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="referentie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="usereferences" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="gebruikreferenties"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definereference" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="definieerreferentie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:reference list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definereferenceformat" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="definieerreferentieformaat"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="links">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="rechts">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="tekst">
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="label">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcolor" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="stelkleurin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="hl">
- <cd:sequence>
- <cd:string value="hl"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="vl">
- <cd:sequence>
- <cd:string value="vl"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="godown" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="omlaag"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="whitespace" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="witruimte"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="nowhitespace" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="geenwitruimte"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="crlf" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="crlf"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="space" file="syst-pln.tex">
- <cd:sequence>
- <cd:string value="spatie"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="fixedspaces" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="vastespaties"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="emptylines" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="legeregels"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="nospace" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="geenspatie"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="packed" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="opelkaar"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupdescriptions" file="core-des.tex">
- <cd:sequence>
- <cd:string value="steldoordefinierenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="kopletter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="kleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="passend"/>
- <cd:constant type="ruim"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="afstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="monster">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="tekst">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="sluitsymbool">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="sluitcommando">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="titellinks">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcolors" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="stelkleurenin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="globaal"/>
+ <cd:constant type="lokaal"/>
+ </cd:parameter>
+ <cd:parameter name="conversie">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ <cd:constant type="altijd"/>
+ </cd:parameter>
+ <cd:parameter name="reductie">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ <cd:parameter name="rgb">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ <cd:parameter name="cmyk">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ <cd:parameter name="mpcmyk">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ <cd:parameter name="mpspot">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ <cd:parameter name="factor">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ <cd:parameter name="tekstkleur">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="splitsen">
+ <cd:constant type="c"/>
+ <cd:constant type="m"/>
+ <cd:constant type="y"/>
+ <cd:constant type="k"/>
+ <cd:constant type="p"/>
+ <cd:constant type="s"/>
+ <cd:constant type="nee"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="criterium">
+ <cd:constant type="alles"/>
+ <cd:constant type="geen"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definecolor" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="definieerkleur"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="r">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="g">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="b">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="c">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="m">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="y">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="k">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="s">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="h">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="t">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="a">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="p">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="e">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="color" type="environment" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="kleur"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="color" file="colo-ini.tex">
+ <cd:sequence>
+ <cd:string value="kleur"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="titelrechts">
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="graycolor" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="grijskleur"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="titelafstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="titelletter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="titelkleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="uitlijnen">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="marge">
- <cd:constant type="standaard"/>
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="plaats">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="boven"/>
- <cd:constant type="aanelkaar"/>
- <cd:constant type="inmarge"/>
- <cd:constant type="inlinker"/>
- <cd:constant type="inrechter"/>
- <cd:constant type="hangend"/>
- </cd:parameter>
- <cd:parameter name="kopcommando">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="hang">
- <cd:constant type="passend"/>
- <cd:constant type="ruim"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showcolor" file="colo-run.tex" category="colors"> <!-- and debug -->
+ <cd:sequence>
+ <cd:string value="toonkleur"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definepalet" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="definieerpalet"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="cd:name">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppalet" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="stelpaletin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definecolorgroup" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="definieerkleurgroep"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="rgb" default="yes"/>
+ <cd:constant type="cmyk"/>
+ <cd:constant type="grijs"/>
+ <cd:constant type="s"/>
+ </cd:keywords>
+ <cd:triplet n="3" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showpalet" file="colo-run.tex" category="colors"> <!-- and debug -->
+ <cd:sequence>
+ <cd:string value="toonpalet"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="horizontaal"/>
+ <cd:constant type="vertikaal"/>
+ <cd:constant type="naam"/>
+ <cd:constant type="waarde"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showcolorgroup" file="colo-run.tex" category="colors"> <!-- and debug-->
+ <cd:sequence>
+ <cd:string value="toonkleurgroep"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="horizontaal"/>
+ <cd:constant type="vertikaal"/>
+ <cd:constant type="naam"/>
+ <cd:constant type="waarde"/>
<cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="tussen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="springvolgendein">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="inspringen">
- <cd:resolve name="indenting"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupenumerations" file="core-des.tex">
- <cd:sequence>
- <cd:string value="steldoornummerenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="doordefinieren"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineenumeration" file="core-des.tex">
- <cd:sequence>
- <cd:string value="doornummeren"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="steldoornummerenin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="enumeration" generated="yes">
- <cd:sequence>
- <cd:variable value="doornummering"/>
- </cd:sequence>
- <cd:arguments>
- <cd:nothing interactive="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="enumeration" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="doornummering"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="definedescription" file="core-des.tex">
- <cd:sequence>
- <cd:string value="doordefinieren"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="steldoordefinierenin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="description" generated="yes">
- <cd:sequence>
- <cd:variable value="doordefinitie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:nothing/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="description" type="environment" generated="yes">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="comparepalet" file="colo-run.tex" category="colors"> <!-- and debug? -->
+ <cd:sequence>
+ <cd:string value="vergelijkpalet"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="comparecolorgroup" file="colo-run.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="vergelijkkleurgroep"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showmakeup" file="supp-vis.tex" category="debug">
+ <cd:sequence>
+ <cd:string value="toonopmaak"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="definetype" file="core-ver.tex" category="verbatim">
+ <cd:sequence>
+ <cd:string value="definieertype"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="steltypein" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptype" file="core-ver.tex" category="verbatim"> <!-- TODO -->
+ <cd:sequence>
+ <cd:string value="steltypein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="spatie">
+ <cd:constant type="aan"/>
+ <cd:constant type="uit" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="optie">
+ <cd:constant type="schuin"/>
+ <cd:constant type="normaal"/>
+ <cd:constant type="geen"/>
+ </cd:parameter>
+ <cd:parameter name="letter">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="kleur">
+ <cd:constant type="cd:name" default=""/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="type" file="verb-ini.tex" category="verbatim">
+ <cd:sequence>
+ <cd:string value="type"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="typ" file="core-ver.tex" category="verbatim">
+ <cd:sequence>
+ <cd:string value="typ"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tex" file="core-ver.tex" category="verbatim">
+ <cd:sequence>
+ <cd:string value="tex"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <!-- cd:command name="arg" file="core-ver.tex"> command broken
<cd:sequence>
- <cd:variable value="doordefinitie"/>
+ <cd:string value="arg"/>
</cd:sequence>
<cd:arguments>
<cd:content/>
</cd:arguments>
-</cd:command>
-
-<cd:command name="setupindentations" file="core-des.tex">
- <cd:sequence>
- <cd:string value="steldoorspringenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="kopletter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="passend"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="tekst">
+</cd:command -->
+
+ <cd:command name="definetyping" file="core-ver.tex" category="verbatim">
+ <cd:sequence>
+ <cd:string value="definieertypen"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:inherit name="steltypenin" n="1"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="steltypenin" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptyping" file="core-ver.tex" category="verbatim">
+ <cd:sequence>
+ <cd:string value="steltypenin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="file"/>
+ <cd:constant type="typen"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="spatie">
+ <cd:constant type="aan"/>
+ <cd:constant type="uit"/>
+ </cd:parameter>
+ <cd:parameter name="pagina">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ <cd:parameter name="optie">
+ <cd:constant type="schuin"/>
+ <cd:constant type="normaal"/>
+ <cd:constant type="commandos"/>
+ <cd:constant type="kleur"/>
+ <cd:constant type="geen"/>
+ </cd:parameter>
+ <cd:parameter name="tekst">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ <cd:parameter name="icommando">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="vcommando">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="ccommando">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="voor">
+ <cd:constant type="cd:command" default="\blank"/>
+ </cd:parameter>
+ <cd:parameter name="na">
+ <cd:constant type="cd:command" default="\blank"/>
+ </cd:parameter>
+ <cd:parameter name="marge">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="standaard"/>
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ <cd:parameter name="evenmarge">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="onevenmarge">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="blanko">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="klein"/>
+ <cd:constant type="middel"/>
+ <cd:constant type="groot"/>
+ <cd:constant type="standaard"/>
+ <cd:constant type="halveregel"/>
+ <cd:constant type="regel"/>
+ </cd:parameter>
+ <cd:parameter name="escape">
+ <cd:constant type="cd:character"/>
+ </cd:parameter>
+ <cd:parameter name="spatie">
+ <cd:constant type="aan"/>
+ <cd:constant type="uit"/>
+ </cd:parameter>
+ <cd:parameter name="tab">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ <cd:parameter name="pagina">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ <cd:parameter name="springvolgendein">
+ <cd:resolve name="indentnext"/>
+ </cd:parameter>
+ <cd:parameter name="letter">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="kleur">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="palet">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="regels">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ <cd:constant type="afgebroken"/>
+ </cd:parameter>
+ <cd:parameter name="leeg">
+ <cd:constant type="ja"/>
+ <cd:constant type="alles"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ <cd:parameter name="nummeren">
+ <cd:constant type="regel"/>
+ <cd:constant type="file"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ <cd:parameter name="korps">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="typing" type="environment" generated="yes" file="verb-ini.tex"
+ category="verbatim">
+ <cd:sequence>
+ <cd:variable value="typen"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="typefile" file="verb-ini.tex" category="verbatim">
+ <cd:sequence>
+ <cd:string value="typefile"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfootnotes" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="stelvoetnotenin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="conversie">
+ <cd:constant type="cijfers"/>
+ <cd:constant type="letters"/>
+ <cd:constant type="Letters"/>
+ <cd:constant type="romeins"/>
+ <cd:constant type="Romeins"/>
+ </cd:parameter>
+ <cd:parameter name="wijze">
+ <cd:constant type="bytext"/>
+ <cd:constant type="bycd:section"/>
+ </cd:parameter>
+ <cd:parameter name="plaats">
+ <cd:constant type="pagina"/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="kolommen"/>
+ <cd:constant type="eerstekolom"/>
+ <cd:constant type="laatstekolom"/>
+ <cd:constant type="hoog"/>
+ <cd:constant type="geen"/>
+ </cd:parameter>
+ <cd:parameter name="lijn">
+ <cd:constant type="aan"/>
+ <cd:constant type="uit"/>
+ </cd:parameter>
+ <cd:parameter name="voor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="na">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="breedte">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="hoogte">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="korps">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ <cd:parameter name="letter">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="afstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="kolomafstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="margeafstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="nummercommando">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="tekstcommando">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="splitsen">
+ <cd:constant type="soepel"/>
+ <cd:constant type="streng"/>
+ <cd:constant type="zeerstreng"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="tekstletter">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="tekstkleur">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="interactie">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ <cd:parameter name="factor">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:inherit name="stelomlijndin" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfootnotedefinition" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="stelvoetnootdefinitiein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:inherit name="steldoordefinierenin" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="footnote" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="voetnoot"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="footnotetext" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="voetnoottekst"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="note" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="noot"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" interactive="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="localfootnotes" type="environment" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="localfootnotes"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="placelocalfootnotes" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="plaatslokalevoetnoten"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="stelvoetnotenin" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placefootnotes" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="plaatsvoetnoten"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="stelvoetnotenin" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupunderbar" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="stelonderstrepenin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="variant">
+ <cd:constant type="a"/>
+ <cd:constant type="b"/>
+ <cd:constant type="c"/>
+ </cd:parameter>
+ <cd:parameter name="lijndikte">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="onderoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="bovenoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="lijnkleur">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="underbar" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="onderstreep"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="underbars" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="onderstrepen"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overbar" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="overstreep"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overbars" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="overstrepen"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overstrike" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="doorstreep"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overstrikes" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="doorstrepen"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="romannumerals" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="romeins"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Romannumerals" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="Romeins"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="numbers" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="cijfers"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="character" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="letter"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Character" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="Letter"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="characters" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="letters"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Characters" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="Letters"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mediaeval" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="mediaeval"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="month" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="maand"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MONTH" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="MAAND"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="weekday" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="weekdag"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="WEEKDAY" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="WEEKDAG"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcapitals" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="stelkapitalenin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="titel">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ <cd:parameter name="sc">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="cap" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="cap"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nocap" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="nocap"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="CAP" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="CAP"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Cap" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="Cap"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Caps" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="Caps"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="WORD" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="WOORD"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="WORDS" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="WOORDEN"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Word" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="Woord"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Words" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="Woorden"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="stretched" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="uitgerekt"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definesymbol" file="symb-ini.tex">
+ <cd:sequence>
+ <cd:string value="definieersymbool"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="monster">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefiguresymbol" file="symb-ini.tex">
+ <cd:sequence>
+ <cd:string value="definieerfiguursymbool"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="stelexternefigurenin" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="symbol" file="symb-ini.tex">
+ <cd:sequence>
+ <cd:string value="symbool"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="symbolset" type="environment" file="symb-ini.tex" category="symbols">
+ <cd:sequence>
+ <cd:string value="symbolset"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsymbolset" file="symb-ini.tex" category="symbols">
+ <cd:sequence>
+ <cd:string value="stelsymboolsetin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usesymbols" file="symb-ini.tex" category="symbols">
+ <cd:sequence>
+ <cd:string value="gebruiksymbolen"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showsymbolset" file="symb-run.tex" category="symbols"> <!-- and symbols -->
+ <cd:sequence>
+ <cd:string value="toonsymboolset"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineconversion" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="definieerconversie"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
<cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="afstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="scheider">
<cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineindenting" file="core-des.tex">
- <cd:sequence>
- <cd:string value="doorspringen"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="steldoorspringenin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="indentation" generated="yes" file="core-spa.tex">
- <cd:sequence>
- <cd:variable value="indentation"/>
- </cd:sequence>
- <cd:arguments>
- <cd:nothing/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definelabel" file="core-des.tex">
- <cd:sequence>
- <cd:string value="doorlabelen"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="tekst">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="plaats">
- <cd:constant type="inmarge"/>
- <cd:constant type="intekst"/>
- </cd:parameter>
- <cd:parameter name="wijze">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="blokwijze">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="kopletter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="kopkleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="labeling" generated="yes">
- <cd:sequence>
- <cd:variable value="labeling"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupcolumns" file="page-mul.tex">
- <cd:sequence>
- <cd:string value="stelkolommenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="n">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="convertnumber" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="converteernummer"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupheadtext" file="lang-lab.tex">
+ <cd:sequence>
+ <cd:string value="stelkoptekstin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:resolve name="language"/>
+ </cd:keywords>
+ <cd:assignments n="2">
+ <cd:parameter name="cd:name">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplabeltext" file="lang-lab.tex">
+ <cd:sequence>
+ <cd:string value="stellabeltekstin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:resolve name="language"/>
+ </cd:keywords>
+ <cd:assignments n="2">
+ <cd:parameter name="cd:name">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="headtext" file="lang-lab.tex">
+ <cd:sequence>
+ <cd:string value="koptekst"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="labeltext" file="lang-lab.tex">
+ <cd:sequence>
+ <cd:string value="labeltekst"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupmarginrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="stelkantlijnin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1">
+ <cd:parameter name="niveau">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="lijndikte">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="marginrule" type="environment" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="kantlijn"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="nboven">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="marginrule" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="kantlijn"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="lijn">
- <cd:constant type="aan"/>
- <cd:constant type="uit"/>
- </cd:parameter>
- <cd:parameter name="hoogte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="tolerantie">
- <cd:constant type="zeerstreng"/>
- <cd:constant type="streng"/>
- <cd:constant type="soepel"/>
- <cd:constant type="zeersoepel"/>
- <cd:constant type="rek"/>
- </cd:parameter>
- <cd:parameter name="afstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="balanceren">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="uitlijnen">
- <cd:constant type="tekst"/>
- <!-- cd:constant type="yes"/ -->
- <!-- cd:constant type="no"/ -->
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="blanko">
- <cd:constant type="vast"/>
- <cd:constant type="halveregel"/>
- <cd:constant type="regel"/>
- <cd:constant type="flexibel"/>
- <cd:constant type="groot"/>
- <cd:constant type="middel"/>
- <cd:constant type="klein"/>
- </cd:parameter>
- <cd:parameter name="optie">
- <cd:constant type="achtergrond"/>
- </cd:parameter>
- <cd:parameter name="richting">
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplinewidth" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="stellijndiktein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupframed" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="stelomlijndin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/> <!-- defines a command with that name -->
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="hoogte">
+ <cd:constant type="passend"/>
+ <cd:constant type="ruim"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="breedte">
+ <cd:constant type="passend"/>
+ <cd:constant type="ruim"/>
+ <cd:constant type="vast"/>
+ <cd:constant type="lokaal"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="autobreedte">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ <cd:constant type="forceer"/>
+ </cd:parameter>
+ <cd:parameter name="offset">
+ <cd:constant type="geen"/>
+ <cd:constant type="overlay"/>
+ <cd:constant type="default"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="plaats">
+ <cd:constant type="diepte"/>
+ <cd:constant type="hangend"/>
+ <cd:constant type="hoog"/>
+ <cd:constant type="laho"/>
+ <cd:constant type="laag"/>
+ <cd:constant type="boven"/>
+ <cd:constant type="midden"/>
+ <cd:constant type="onder"/>
+ <cd:constant type="handhaaf"/>
+ </cd:parameter>
+ <cd:parameter name="optie">
+ <cd:constant type="geen"/>
+ <cd:constant type="leeg"/>
+ </cd:parameter>
+ <cd:parameter name="strut">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ <cd:constant type="globaal"/>
+ <cd:constant type="lokaal"/>
+ </cd:parameter>
+ <cd:parameter name="uitlijnen">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="onder">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="boven">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="kader">
+ <cd:constant type="aan"/>
+ <cd:constant type="uit"/>
+ <cd:constant type="geen"/>
+ <cd:constant type="overlay"/>
+ </cd:parameter>
+ <cd:parameter name="bovenkader">
+ <cd:constant type="aan"/>
+ <cd:constant type="uit"/>
+ </cd:parameter>
+ <cd:parameter name="onderkader">
+ <cd:constant type="aan"/>
+ <cd:constant type="uit"/>
+ </cd:parameter>
+ <cd:parameter name="linkerkader">
+ <cd:constant type="aan"/>
+ <cd:constant type="uit"/>
+ </cd:parameter>
+ <cd:parameter name="rechterkader">
+ <cd:constant type="aan"/>
+ <cd:constant type="uit"/>
+ </cd:parameter>
+ <cd:parameter name="kaderoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="kaderdiepte">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="kaderhoek">
+ <cd:constant type="rond"/>
+ <cd:constant type="recht"/>
+ </cd:parameter>
+ <cd:parameter name="kaderstraal">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="kaderkleur">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="achtergrond">
+ <cd:constant type="raster"/>
+ <cd:constant type="kleur"/>
+ <cd:constant type="geen"/>
+ <cd:constant type="voorgrond"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="achtergrondraster">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="achtergrondkleur">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="achtergrondoffset">
+ <cd:constant type="kader"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="achtergronddiepte">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="achtergrondhoek">
+ <cd:constant type="rond"/>
+ <cd:constant type="recht"/>
+ </cd:parameter>
+ <cd:parameter name="achtergrondstraal">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="diepte">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="hoek">
+ <cd:constant type="rond"/>
+ <cd:constant type="recht"/>
+ </cd:parameter>
+ <cd:parameter name="straal">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="leeg">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ <cd:parameter name="voorgrondkleur">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="voorgrondletter">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="lijndikte">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="framed" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="omlijnd"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="stelomlijndin" n="2"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inframed" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="inlijnd"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="stelomlijndin" n="2"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="thinrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="dunnelijnen"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes">
+ <cd:inherit name="steldunnelijnenin" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupthinrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="steldunnelijnenin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1">
+ <cd:parameter name="interlinie">
+ <cd:constant type="klein"/>
+ <cd:constant type="middel"/>
+ <cd:constant type="groot"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="voor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="tussen">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="na">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="kleur">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="achtergrondkleur">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="hoogte">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="max"/>
+ </cd:parameter>
+ <cd:parameter name="diepte">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="max"/>
+ </cd:parameter>
+ <cd:parameter name="variant">
+ <cd:constant type="a"/>
+ <cd:constant type="b"/>
+ <cd:constant type="c"/>
+ <cd:constant type="d"/>
+ </cd:parameter>
+ <cd:parameter name="lijndikte">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="kleur">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="achtergrond">
+ <cd:constant type="kleur"/>
+ </cd:parameter>
+ <cd:parameter name="achtergrondkleur">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="hairline" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="haarlijn"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="thinrule" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="dunnelijn"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="defineframedtext" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="definieerkadertekst"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="stelkadertekstenin" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineframed" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="definieeromlijnd"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="stelkadertekstenin" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupframedtexts" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="stelkadertekstenin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="korps">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ <cd:parameter name="letter">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="links">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="rechts">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="voor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="na">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="binnen">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="regelcorrectie">
+ <cd:constant type="aan"/>
+ <cd:constant type="uit"/>
+ </cd:parameter>
+ <cd:parameter name="dieptecorrectie">
+ <cd:constant type="aan"/>
+ <cd:constant type="uit"/>
+ </cd:parameter>
+ <cd:parameter name="marge">
+ <cd:constant type="standaard"/>
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ <cd:parameter name="plaats">
+ <cd:constant type="links"/>
+ <cd:constant type="rechts"/>
+ <cd:constant type="midden"/>
+ <cd:constant type="geen"/>
+ </cd:parameter>
+ <cd:parameter name="inspringen">
+ <cd:resolve name="indenting"/>
+ </cd:parameter>
+ <cd:inherit name="stelomlijndin" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="framedtext" type="environment" generated="yes" file="core-rul.tex">
+ <cd:sequence>
+ <cd:variable value="kadertekst"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="links"/>
<cd:constant type="rechts"/>
- </cd:parameter>
- <cd:inherit name="stelomlijndin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="columns" type="environment">
- <cd:sequence>
- <cd:string value="columns"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stelkolommenin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definetext" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="definieertekst"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="hoofd"/>
- <cd:constant type="voet"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupheader" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="stelhoofdin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text" default="yes"/>
- <cd:constant type="marge"/>
- <cd:constant type="rand"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="status">
- <cd:constant type="normaal"/>
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- <cd:constant type="leeg"/>
- <cd:constant type="hoog"/>
+ <cd:constant type="midden"/>
<cd:constant type="geen"/>
- <cd:constant type="geenmarkering"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="stelkadertekstenin" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="framedtext" generated="yes" file="core-rul.tex">
+ <cd:sequence>
+ <cd:variable value="kadertekst"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="stelkadertekstenin" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="background" type="environment" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="achtergrond"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="background" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="achtergrond"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbackground" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="stelachtergrondin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="linkeroffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rechteroffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="bovenoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="onderoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="voor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="na">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:inherit name="stelomlijndin" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fillinrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="invullijnen"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="stelinvullijnenin" n="1"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ <cd:content n="3" optional="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fillintext" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="invultekst"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="stelinvullijnenin" n="1"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ <cd:content n="3" optional="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfillinrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="stelinvullijnenin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="breedte">
+ <cd:constant type="passend"/>
+ <cd:constant type="ruim"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="afstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="voor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="na">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="letter">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="interlinie">
+ <cd:constant type="klein"/>
+ <cd:constant type="middel"/>
+ <cd:constant type="groot"/>
+ </cd:parameter>
+ <cd:parameter name="scheider">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fillinline" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="invulregel"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="stelinvulregelsin" n="1"/>
+ </cd:assignments>
+ <cd:nothing n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfillinlines" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="stelinvulregelsin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="breedte">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="marge">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="afstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="voor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="na">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptextrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="steltekstlijnenin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="plaats">
+ <cd:constant type="links"/>
+ <cd:constant type="inmarge"/>
+ </cd:parameter>
+ <cd:parameter name="voor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="na">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="tussen">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="breedte">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="afstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="korps">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ <cd:parameter name="kleur">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="letter">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="lijnkleur">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="textrule" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="tekstlijn"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="boven"/>
+ <cd:constant type="onder"/>
+ </cd:keywords>
+ <cd:content n="2" optional="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="textrule" type="environment" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="tekstlijn"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="boven"/>
+ <cd:constant type="onder"/>
+ </cd:keywords>
+ <cd:content n="2" optional="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="blackrule" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="blokje"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="stelblokjesin" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="blackrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="blokjes"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:inherit name="stelblokjesin" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupblackrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="stelblokjesin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="breedte">
+ <cd:constant type="cd:dimension" default="1em"/>
+ <cd:constant type="max"/>
+ </cd:parameter>
+ <cd:parameter name="hoogte">
+ <cd:constant type="cd:dimension" default="1ex"/>
+ <cd:constant type="max"/>
+ </cd:parameter>
+ <cd:parameter name="diepte">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="max"/>
+ </cd:parameter>
+ <cd:parameter name="variant">
+ <cd:constant type="a" default="yes"/>
+ <cd:constant type="b"/>
+ </cd:parameter>
+ <cd:parameter name="afstand">
+ <cd:constant type="cd:dimension" default=".25ex"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number" default="3"/>
+ </cd:parameter>
+ <cd:parameter name="kleur">
+ <cd:constant type="cd:name" default=""/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineoverlay" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="definieeroverlay"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="linkerletter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="rechterletter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="linkerbreedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rechterbreedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
+ </cd:keywords>
+ <cd:keywords n="2">
<cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfooter" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="stelvoetin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:inherit name="stelhoofdin"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="stelhoofdin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptext" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="steltekstin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:inherit name="stelhoofdin"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="stelhoofdin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptop" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="stelbovenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:inherit name="stelhoofdin"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="stelhoofdin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupbottom" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="stelonderin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:inherit name="stelhoofdin"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="stelhoofdin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="noheaderandfooterlines" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="geenhoofdenvoetregels"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="notopandbottomlines" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="geenbovenenonderregels"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupheadertexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="stelhoofdtekstenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfootertexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="stelvoettekstenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptexttexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="stelteksttekstenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptoptexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="stelboventekstenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupbottomtexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="stelondertekstenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="settextcontent" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="steltekstinhoudin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:resolve name="layout-v"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="resettextcontent" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="resettextcontent"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:resolve name="layout-v"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant name="lefttext"/>
- <cd:constant name="middletext"/>
- <cd:constant name="righttext"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definemarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="definieermarkering"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="couplemarking" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="koppelmarkering"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="decouplemarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="ontkoppelmarkering"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="resetmarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="resetmarkering"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupmarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="stelmarkeringin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="scheider">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="expansie">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="marking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="markeer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="getmarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="haalmarkering"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="eerste"/>
- <cd:constant type="laatste"/>
- <cd:constant type="vorige"/>
- <cd:constant type="beide"/>
- <cd:constant type="alles"/>
- <cd:constant type="huidige"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="nomarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="geenmarkering"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usemodule" file="core-fil.tex"> <!-- TODO -->
+ <cd:sequence>
+ <cd:string value="gebruikmodule"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="reset" file="core-num.tex">
+ <cd:sequence>
+ <cd:string value="reset"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
-<cd:command name="setuplayout" file="page-ini.tex">
+ <!-- <cd:command name="donttest">
<cd:sequence>
- <cd:string value="stellayoutin"/>
+ <cd:string value="geentest"/>
</cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="passend"/>
- <cd:constant type="midden"/>
- </cd:parameter>
- <cd:parameter name="hoogte">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="passend"/>
- <cd:constant type="midden"/>
- </cd:parameter>
- <cd:parameter name="rugwit">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="kopwit">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="marge">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="linkermarge">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rechtermarge">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoofd">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="voet">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="boven">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="onder">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="linkerrand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rechterrand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoofdafstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="voetafstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="bovenafstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="onderafstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="linkermargeafstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rechtermargeafstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="linkerrandafstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rechterrandafstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rugoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="kopoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="kleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="markering">
- <cd:constant type="aan"/>
- <cd:constant type="uit"/>
- <cd:constant type="kleur"/>
- <cd:constant type="raster"/>
+</cd:command> -->
+
+ <cd:command name="localenvironment" type="environment" file="core-job.tex">
+ <cd:sequence>
+ <cd:string value="localenvironment"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupsystem" file="core-sys.tex">
+ <cd:sequence>
+ <cd:string value="stelsysteemin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="resolutie">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="file">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="gebied">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="willekeur">
+ <cd:constant type="normaal"/>
+ <cd:constant type="klein"/>
+ <cd:constant type="middel"/>
+ <cd:constant type="groot"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usedirectory" file="core-job.mkii"> <!-- usepath, todo: more than one file -->
+ <cd:sequence>
+ <cd:string value="usedirectory"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ <cd:constant type="reset"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="low" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="laag"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="high" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="hoog"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="lohi" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="laho"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="laag"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showframe" file="page-run.tex">
+ <cd:sequence>
+ <cd:string value="toonkader"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="plaats">
- <cd:constant type="links"/>
- <cd:constant type="midden"/>
- <cd:constant type="rechts"/>
- <cd:constant type="onder"/>
- <cd:constant type="boven"/>
- <cd:constant type="enkelzijdig"/>
- <cd:constant type="dubbelzijdig"/>
- </cd:parameter>
- <cd:parameter name="schaal">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="nx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ny">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="dx">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="dy">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="regels">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="kolommen">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="kolomafstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="grid">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="bodemwit">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="snijwit">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="tekstafstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="tekstbreedte">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="tekstmarge">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="clipoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="pagina">
+ <cd:constant type="marge"/>
+ <cd:constant type="rand"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="leftaligned" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="regellinks"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="rightaligned" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="regelrechts"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="midaligned" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="regelmidden"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="wordright" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="woordrechts"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inmargin" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="inmarge"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="laag"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inothermargin" file="page-mar.tex">
+ <cd:sequence>
+ <cd:string value="inanderemarge"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="laag"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inleft" file="page-mar.tex">
+ <cd:sequence>
+ <cd:string value="inlinker"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="laag"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inright" file="page-mar.tex">
+ <cd:sequence>
+ <cd:string value="inrechter"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="laag"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ininner" file="page-mar.tex">
+ <cd:sequence>
+ <cd:string value="inbinnen"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="laag"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inouter" file="page-mar.tex">
+ <cd:sequence>
+ <cd:string value="inbuiten"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="laag"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="column" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="kolom"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="showstruts" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="toonstruts"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="showsetups" file="page-run.tex">
+ <cd:sequence>
+ <cd:string value="tooninstellingen"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="showlayout" file="page-run.tex">
+ <cd:sequence>
+ <cd:string value="toonlayout"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="margintext" file="page-mar.tex">
+ <cd:sequence>
+ <cd:string value="margetekst"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="laag"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupmarginblocks" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="stelmargeblokkenin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="plaats">
+ <cd:constant type="inmarge"/>
+ <cd:constant type="links"/>
+ <cd:constant type="midden"/>
+ <cd:constant type="rechts"/>
+ </cd:parameter>
+ <cd:parameter name="letter">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="breedte">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="uitlijnen">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="boven">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="tussen">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="onder">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="links">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="rechts">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="voor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="na">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="marginblock" type="environment" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="marginblock"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="part" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="part"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="title" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="title"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="chapter" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="chapter"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="section" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="section"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subsection" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="subsection"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subsubsection" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="subsubsection"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subject" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="subject"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subsubject" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="subsubject"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subsubsubject" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="subsubsubject"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="appendix" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="appendix"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="in" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="in"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="yes"/>
+ <cd:content n="2" interactive="yes"/>
+ <cd:reference n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="at" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="op"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="yes"/>
+ <cd:content n="2" interactive="yes"/>
+ <cd:reference n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="about" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="about"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="yes"/>
+ <cd:reference n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="somewhere" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="ergens"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ <cd:reference n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="atpage" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="oppagina"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ref" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="ref"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="t"/>
+ <cd:constant type="p"/>
+ <cd:constant type="r"/>
+ <cd:constant type="s"/>
+ <cd:constant type="e"/>
+ </cd:keywords>
+ <cd:reference n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="textreference" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="tekstreferentie"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="pagereference" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="paginareferentie"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="reference" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="referentie"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usereferences" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="gebruikreferenties"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definereference" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="definieerreferentie"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="papier">
+ </cd:keywords>
+ <cd:reference n="2" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definereferenceformat" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="definieerreferentieformaat"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="adaptlayout" file="page-lay.tex">
- <cd:sequence>
- <cd:string value="paslayoutaan"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="hoogte">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="regels">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showgrid" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="toongrid"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="reset"/>
- <cd:constant type="boven"/>
- <cd:constant type="onder"/>
- <cd:constant type="geen"/>
- <cd:constant type="alles"/>
- <cd:constant type="regels"/>
- <cd:constant type="kader"/>
- <cd:constant type="geennummer"/>
- <cd:constant type="rechts"/>
- <cd:constant type="links"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placeongrid" file="core-grd.tex">
- <cd:sequence>
- <cd:string value="plaatsopgrid"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:inherit name="verplaatsopgrid"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="moveongrid" file="core-grd.tex">
- <cd:sequence>
- <cd:string value="verplaatsopgrid"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="boven"/>
- <cd:constant type="beide"/>
- <cd:constant type="onder"/>
- <cd:constant type="-top"/>
- <cd:constant type="-both"/>
- <cd:constant type="-bottom"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="hoog"/>
- <cd:constant type="midden"/>
- <cd:constant type="laag"/>
- <cd:constant type="pagina"/>
- <cd:constant type="geen"/>
- <cd:constant type="standaard" default="yes"/>
- <cd:constant type="ruim"/>
- <cd:constant type="passend"/>
- <cd:constant type="diepte"/>
- <cd:constant type="regel"/>
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="project" type="environment">
- <cd:sequence>
- <cd:string value="projekt"/>
- </cd:sequence>
- <cd:arguments>
- <cd:file/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="environment" type="environment">
- <cd:sequence>
- <cd:string value="omgeving"/>
- </cd:sequence>
- <cd:arguments>
- <cd:file/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="product" type="environment">
- <cd:sequence>
- <cd:string value="produkt"/>
- </cd:sequence>
- <cd:arguments>
- <cd:file/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="component" type="environment">
- <cd:sequence>
- <cd:string value="onderdeel"/>
- </cd:sequence>
- <cd:arguments>
- <cd:file/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="nomorefiles">
- <cd:sequence>
- <cd:string value="geenfilesmeer"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupinterlinespace" variant="1">
- <cd:sequence>
- <cd:string value="stelinterliniein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="reset"/>
- <cd:constant type="klein" default="yes"/>
- <cd:constant type="middel"/>
- <cd:constant type="auto"/>
- <cd:constant type="groot"/>
- <cd:constant type="aan"/>
- <cd:constant type="uit"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupinterlinespace" variant="2">
- <cd:sequence>
- <cd:string value="stelinterliniein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="hoogte">
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="links">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="rechts">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="tekst">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="label">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="hl" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="hl"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="diepte">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="vl" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="vl"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="regel">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="boven">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="godown" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="omlaag"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="whitespace" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="witruimte"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="nowhitespace" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="geenwitruimte"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="crlf" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="crlf"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="space" file="syst-pln.tex">
+ <cd:sequence>
+ <cd:string value="spatie"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="fixedspaces" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="vastespaties"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="emptylines" file="page-lin.tex">
+ <cd:sequence>
+ <cd:string value="legeregels"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="onder">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuppagenumbering" file="page-num.tex">
- <cd:sequence>
- <cd:string value="stelpaginanummeringin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="variant">
- <cd:constant type="enkelzijdig"/>
- <cd:constant type="dubbelzijdig"/>
- </cd:parameter>
- <cd:parameter name="plaats">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nospace" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="geenspatie"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="packed" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="opelkaar"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupdescriptions" file="core-des.tex">
+ <cd:sequence>
+ <cd:string value="steldoordefinierenin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="letter">
+ <cd:resolve name="style"/> <!-- TODO: style=normal -->
+ </cd:parameter>
+ <cd:parameter name="kleur">
+ <cd:constant type="cd:name" default=""/>
+ </cd:parameter>
+ <cd:parameter name="breedte">
+ <cd:constant type="passend"/>
+ <cd:constant type="ruim"/>
+ <cd:constant type="cd:dimension" default="8em"/>
+ </cd:parameter>
+ <cd:parameter name="afstand">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="monster">
+ <cd:constant type="cd:text" default=""/>
+ </cd:parameter>
+ <cd:parameter name="tekst">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="sluitsymbool">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="sluitcommando">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="sluitsymbool">
+ <cd:constant type="cd:text" default=""/>
+ </cd:parameter>
+ <cd:parameter name="titellinks">
+ <cd:constant type="cd:text" default="("/>
+ </cd:parameter>
+ <cd:parameter name="titelrechts">
+ <cd:constant type="cd:text" default=")"/>
+ </cd:parameter>
+ <cd:parameter name="titelafstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="titelletter">
+ <cd:resolve name="style"/> <!-- TODO: default=bold -->
+ </cd:parameter>
+ <cd:parameter name="titelkleur">
+ <cd:constant type="cd:name" default=""/>
+ </cd:parameter>
+ <cd:parameter name="uitlijnen">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="marge">
+ <cd:constant type="standaard"/>
+ <cd:constant type="ja"/>
+ <cd:constant type="nee" default="yes"/> <!-- TODO: this is default; conflicting syntax? -->
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="plaats">
+ <cd:constant type="links" default="yes"/>
+ <cd:constant type="rechts"/>
+ <cd:constant type="boven"/>
+ <cd:constant type="aanelkaar"/>
+ <cd:constant type="inmarge"/>
+ <cd:constant type="inlinker"/>
+ <cd:constant type="inrechter"/>
+ <cd:constant type="hangend"/>
+ </cd:parameter>
+ <cd:parameter name="kopletter">
+ <cd:resolve name="style"/> <!-- TODO: default=bold -->
+ </cd:parameter>
+ <cd:parameter name="kopkleur">
+ <cd:constant type="cd:name" default=""/>
+ </cd:parameter>
+ <cd:parameter name="kopcommando">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="hang">
+ <cd:constant type="passend"/>
+ <cd:constant type="ruim"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="voor">
+ <cd:constant type="cd:command" default="\blank"/>
+ </cd:parameter>
+ <cd:parameter name="tussen">
+ <cd:constant type="cd:command" default="\blank"/>
+ </cd:parameter>
+ <cd:parameter name="na">
+ <cd:constant type="cd:command" default="\blank"/>
+ </cd:parameter>
+ <cd:parameter name="springvolgendein">
+ <cd:resolve name="indentnext"/> <!-- default=yes -->
+ </cd:parameter>
+ <cd:parameter name="inspringen">
+ <cd:resolve name="indenting"/> <!-- default=never -->
+ </cd:parameter>
+ <cd:parameter name="commando">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupenumerations" file="core-des.tex">
+ <cd:sequence>
+ <cd:string value="steldoornummerenin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="steldoordefinierenin" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineenumeration" file="core-des.tex">
+ <cd:sequence>
+ <cd:string value="doornummeren"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="steldoornummerenin" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="enumeration" generated="yes" file="core-des.tex">
+ <cd:sequence>
+ <cd:variable value="doornummering"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:nothing n="1" interactive="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="enumeration" type="environment" generated="yes" file="core-des.tex">
+ <cd:sequence>
+ <cd:variable value="doornummering"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="definedescription" file="core-des.tex">
+ <cd:sequence>
+ <cd:string value="doordefinieren"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="steldoordefinierenin" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="description" generated="yes" file="core-des.tex">
+ <cd:sequence>
+ <cd:variable value="doordefinitie"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:nothing n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="description" type="environment" generated="yes" file="core-des.tex">
+ <cd:sequence>
+ <cd:variable value="doordefinitie"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupindentations" file="core-des.tex">
+ <cd:sequence>
+ <cd:string value="steldoorspringenin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="letter">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="kopletter">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="breedte">
+ <cd:constant type="passend"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="tekst">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="monster">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="voor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="na">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="afstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="scheider">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineindenting" file="core-des.tex">
+ <cd:sequence>
+ <cd:string value="doorspringen"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="steldoorspringenin" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="indentation" generated="yes" file="core-spa.tex">
+ <cd:sequence>
+ <cd:variable value="indentation"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:nothing n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definelabel" file="core-des.tex">
+ <cd:sequence>
+ <cd:string value="doorlabelen"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="tekst">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="plaats">
+ <cd:constant type="inmarge"/>
+ <cd:constant type="intekst"/>
+ </cd:parameter>
+ <cd:parameter name="wijze">
+ <cd:constant type="bytext"/>
+ <cd:constant type="bycd:section"/>
+ </cd:parameter>
+ <cd:parameter name="blokwijze">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ <cd:parameter name="kopletter">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="kopkleur">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="voor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="na">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="labeling" generated="yes" file="core-des.tex">
+ <cd:sequence>
+ <cd:variable value="labeling"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcolumns" file="page-mul.tex">
+ <cd:sequence>
+ <cd:string value="stelkolommenin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes"> <!-- no idea why it is optional -->
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="nboven">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="lijn">
+ <cd:constant type="aan"/>
+ <cd:constant type="uit"/> <!-- default and unknown missing -->
+ </cd:parameter>
+ <cd:parameter name="hoogte">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="tolerantie">
+ <cd:constant type="zeerstreng"/>
+ <cd:constant type="streng"/>
+ <cd:constant type="soepel"/>
+ <cd:constant type="zeersoepel"/>
+ <cd:constant type="rek"/>
+ </cd:parameter>
+ <cd:parameter name="afstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="balanceren">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ <cd:parameter name="uitlijnen">
+ <cd:constant type="tekst"/>
+ <!-- cd:constant type="yes"/ -->
+ <!-- cd:constant type="no"/ -->
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="blanko">
+ <cd:constant type="vast"/>
+ <cd:constant type="halveregel"/>
+ <cd:constant type="regel"/>
+ <cd:constant type="flexibel"/>
+ <cd:constant type="groot"/>
+ <cd:constant type="middel"/>
+ <cd:constant type="klein"/>
+ </cd:parameter>
+ <cd:parameter name="optie">
+ <cd:constant type="achtergrond"/>
+ </cd:parameter>
+ <cd:parameter name="richting">
+ <cd:constant type="links"/>
+ <cd:constant type="rechts"/>
+ </cd:parameter>
+ <cd:inherit name="stelomlijndin" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="columns" type="environment" file="page-mul.tex">
+ <cd:sequence>
+ <cd:string value="columns"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="stelkolommenin" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definetext" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="definieertekst"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
<cd:constant type="hoofd"/>
<cd:constant type="voet"/>
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="midden"/>
- <cd:constant type="marge"/>
- <cd:constant type="kantlijn"/>
- <cd:constant type="inlinker"/>
- <cd:constant type="inrechter"/>
- </cd:parameter>
- <cd:parameter name="conversie">
- <cd:constant type="cijfers"/>
- <cd:constant type="letters"/>
- <cd:constant type="Letters"/>
- <cd:constant type="romeins"/>
- <cd:constant type="Romeins"/>
- </cd:parameter>
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="links">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="rechts">
+ </cd:keywords>
+ <cd:keywords n="3">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="wijze">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="tekst">
+ </cd:keywords>
+ <cd:keywords n="4" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="nummerscheider">
+ </cd:keywords>
+ <cd:keywords n="5" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="tekstscheider">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="cd:sectionnumber">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="scheider">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="commando">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupnarrower" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="stelsmallerin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="links">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rechts">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="midden">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="define" file="syst-ext.tex">
- <cd:sequence>
- <cd:string value="definieer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- <cd:csname/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="usecommands" file="core-sys.tex">
- <cd:sequence>
- <cd:string value="gebruikcommandos"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definestartstop" file="core-sys.tex">
- <cd:sequence>
- <cd:string value="definieerstartstop"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="commandos">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupheads" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="stelkoppenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="sectienummer">
- <cd:constant type="ja"/>
- <cd:constant type="cd:number"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="variant">
- <cd:constant type="normaal"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupheader" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="stelhoofdin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:text" default="yes"/>
<cd:constant type="marge"/>
- <cd:constant type="midden"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="alinea"/>
- </cd:parameter>
- <cd:parameter name="scheider">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="afsluiter">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="uitlijnen">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="titeluitlijnen">
- <cd:constant type="ja"/>
- <cd:constant type="blok"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="tolerantie">
- <cd:constant type="zeerstreng"/>
- <cd:constant type="streng"/>
- <cd:constant type="soepel"/>
- <cd:constant type="zeersoepel"/>
- <cd:constant type="rek"/>
- </cd:parameter>
- <cd:parameter name="springvolgendein">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="commando">
- <cd:constant type="cd:twoarguments"/>
- </cd:parameter>
- <cd:parameter name="marge">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupcaptions" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="stelblokkopjesin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="plaats">
+ <cd:constant type="rand"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="status">
+ <cd:constant type="normaal"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="start"/>
+ <cd:constant type="leeg"/>
+ <cd:constant type="hoog"/>
+ <cd:constant type="geen"/>
+ <cd:constant type="geenmarkering"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="strut">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ <cd:parameter name="letter">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="linkerletter">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="rechterletter">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="linkerbreedte">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rechterbreedte">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="voor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="na">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfooter" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="stelvoetin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:inherit name="stelhoofdin" n="1"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="stelhoofdin" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptext" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="steltekstin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:inherit name="stelhoofdin" n="1"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="stelhoofdin" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptop" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="stelbovenin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:inherit name="stelhoofdin" n="1"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="stelhoofdin" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbottom" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="stelonderin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:inherit name="stelhoofdin" n="1"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="stelhoofdin" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="noheaderandfooterlines" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="geenhoofdenvoetregels"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="notopandbottomlines" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="geenbovenenonderregels"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupheadertexts" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="stelhoofdtekstenin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:resolve name="layout-h"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfootertexts" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="stelvoettekstenin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:resolve name="layout-h"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptexttexts" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="stelteksttekstenin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:resolve name="layout-h"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptoptexts" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="stelboventekstenin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:resolve name="layout-h"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbottomtexts" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="stelondertekstenin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:resolve name="layout-h"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="settextcontent" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="steltekstinhoudin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:resolve name="layout-v"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:resolve name="layout-h"/>
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ <cd:keywords n="4" optional="yes">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ <cd:keywords n="5" optional="yes">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="resettextcontent" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="resettextcontent"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:resolve name="layout-v"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:resolve name="layout-h"/>
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes">
+ <cd:constant type="lefttext"/>
+ <cd:constant type="middletext"/>
+ <cd:constant type="righttext"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definemarking" file="core-mar.tex">
+ <cd:sequence>
+ <cd:string value="definieermarkering"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="couplemarking" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="koppelmarkering"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="decouplemarking" file="core-mar.tex">
+ <cd:sequence>
+ <cd:string value="ontkoppelmarkering"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="resetmarking" file="core-mar.tex">
+ <cd:sequence>
+ <cd:string value="resetmarkering"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupmarking" file="core-mar.tex">
+ <cd:sequence>
+ <cd:string value="stelmarkeringin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2">
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="scheider">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="expansie">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="marking" file="core-mar.tex">
+ <cd:sequence>
+ <cd:string value="markeer"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getmarking" file="core-mar.tex">
+ <cd:sequence>
+ <cd:string value="haalmarkering"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="eerste"/>
+ <cd:constant type="laatste"/>
+ <cd:constant type="vorige"/>
+ <cd:constant type="beide"/>
+ <cd:constant type="alles"/>
+ <cd:constant type="huidige"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nomarking" file="core-mar.tex">
+ <cd:sequence>
+ <cd:string value="geenmarkering"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplayout" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="stellayoutin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="breedte">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="passend"/>
+ <cd:constant type="midden"/>
+ </cd:parameter>
+ <cd:parameter name="hoogte">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="passend"/>
+ <cd:constant type="midden"/>
+ </cd:parameter>
+ <cd:parameter name="rugwit">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="kopwit">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="marge">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="linkermarge">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rechtermarge">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="hoofd">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="voet">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="boven">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="onder">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="linkerrand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rechterrand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="hoofdafstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="voetafstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="bovenafstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="onderafstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="linkermargeafstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rechtermargeafstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="linkerrandafstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rechterrandafstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rugoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="kopoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="letter">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="kleur">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="markering">
+ <cd:constant type="aan"/>
+ <cd:constant type="uit"/>
+ <cd:constant type="kleur"/>
+ <cd:constant type="raster"/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="pagina"/>
+ </cd:parameter>
+ <cd:parameter name="plaats">
+ <cd:constant type="links"/>
+ <cd:constant type="midden"/>
+ <cd:constant type="rechts"/>
+ <cd:constant type="onder"/>
+ <cd:constant type="boven"/>
+ <cd:constant type="enkelzijdig"/>
+ <cd:constant type="dubbelzijdig"/>
+ </cd:parameter>
+ <cd:parameter name="schaal">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="nx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ny">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="dx">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="dy">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="regels">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="kolommen">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="kolomafstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="grid">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ <cd:parameter name="bodemwit">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="snijwit">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="tekstafstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="tekstbreedte">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="tekstmarge">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="clipoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="pagina">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="papier">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="adaptlayout" file="page-lay.tex">
+ <cd:sequence>
+ <cd:string value="paslayoutaan"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="hoogte">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="max"/>
+ </cd:parameter>
+ <cd:parameter name="regels">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showgrid" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="toongrid"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="reset"/>
<cd:constant type="boven"/>
<cd:constant type="onder"/>
<cd:constant type="geen"/>
- <cd:constant type="hoog"/>
- <cd:constant type="laag"/>
- <cd:constant type="midden"/>
+ <cd:constant type="alles"/>
+ <cd:constant type="regels"/>
+ <cd:constant type="kader"/>
+ <cd:constant type="geennummer"/>
+ <cd:constant type="rechts"/>
<cd:constant type="links"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placeongrid" file="core-grd.tex">
+ <cd:sequence>
+ <cd:string value="plaatsopgrid"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:inherit name="verplaatsopgrid" n="1"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="moveongrid" file="core-grd.tex">
+ <cd:sequence>
+ <cd:string value="verplaatsopgrid"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="standaard" default="yes"/> <!-- also 'normal', 'yes' and 'force' -->
+ <cd:constant type="boven"/>
+ <cd:constant type="beide"/>
+ <cd:constant type="onder"/>
+ <cd:constant type="-top"/>
+ <cd:constant type="-both"/>
+ <cd:constant type="-bottom"/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="hoog"/>
<cd:constant type="midden"/>
- <cd:constant type="rechts"/>
- <cd:constant type="linkshangend"/>
- <cd:constant type="rechtshangend"/>
- <cd:constant type="linkermarge"/>
- <cd:constant type="rechtermarge"/>
- <cd:constant type="binnenmarge"/>
- <cd:constant type="buitenmarge"/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="passend"/>
+ <cd:constant type="laag"/>
+ <cd:constant type="pagina"/>
<cd:constant type="ruim"/>
- <cd:constant type="max"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="minbreedte">
<cd:constant type="passend"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="kopletter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="nummer">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
+ <cd:constant type="diepte"/>
+ <cd:constant type="regel"/>
+ <cd:constant type="reset"/>
<cd:constant type="geen"/>
- </cd:parameter>
- <cd:parameter name="tussen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="uitlijnen">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="conversie">
- <cd:constant type="cijfers"/>
- <cd:constant type="letters"/>
- <cd:constant type="Letters"/>
- <cd:constant type="romeins"/>
- <cd:constant type="Romeins"/>
- </cd:parameter>
- <cd:parameter name="wijze">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="scheider">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="afsluiter">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="commando">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="afstand">
<cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupcaption" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="stelblokkopjein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="stelblokkopjesin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfloats" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="stelplaatsblokkenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="plaats">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="project" type="environment" file="core-job.tex">
+ <cd:sequence>
+ <cd:string value="projekt"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:file n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="environment" type="environment" file="core-job.tex">
+ <cd:sequence>
+ <cd:string value="omgeving"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:file n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="product" type="environment" file="core-job.tex">
+ <cd:sequence>
+ <cd:string value="produkt"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:file n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="component" type="environment" file="core-job.tex">
+ <cd:sequence>
+ <cd:string value="onderdeel"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:file n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nomorefiles" file="core-job.tex">
+ <cd:sequence>
+ <cd:string value="geenfilesmeer"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupinterlinespace" variant="1" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="stelinterliniein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="reset"/>
+ <cd:constant type="klein" default="yes"/>
+ <cd:constant type="middel"/>
+ <cd:constant type="auto"/>
+ <cd:constant type="groot"/>
+ <cd:constant type="aan"/>
+ <cd:constant type="uit"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupinterlinespace2" variant="2" file="core-spa.tex">
+ <!-- attached a 2 to make this definition usable with \showsetup -->
+ <cd:sequence>
+ <cd:string value="stelinterliniein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="hoogte">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="diepte">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="regel">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="boven">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="onder">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppagenumbering" file="page-num.tex">
+ <cd:sequence>
+ <cd:string value="stelpaginanummeringin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="variant">
+ <cd:constant type="enkelzijdig"/>
+ <cd:constant type="dubbelzijdig"/>
+ </cd:parameter>
+ <cd:parameter name="plaats">
+ <cd:constant type="hoofd"/>
+ <cd:constant type="voet"/>
+ <cd:constant type="links"/>
+ <cd:constant type="rechts"/>
+ <cd:constant type="midden"/>
+ <cd:constant type="marge"/>
+ <cd:constant type="kantlijn"/>
+ <cd:constant type="inlinker"/>
+ <cd:constant type="inrechter"/>
+ </cd:parameter>
+ <cd:parameter name="conversie">
+ <cd:constant type="cijfers"/>
+ <cd:constant type="letters"/>
+ <cd:constant type="Letters"/>
+ <cd:constant type="romeins"/>
+ <cd:constant type="Romeins"/>
+ </cd:parameter>
+ <cd:parameter name="letter">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="links">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="rechts">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="wijze">
+ <cd:constant type="bytext"/>
+ <cd:constant type="bycd:section"/>
+ </cd:parameter>
+ <cd:parameter name="tekst">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="nummerscheider">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="tekstscheider">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="cd:sectionnumber">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ <cd:parameter name="scheider">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="strut">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="breedte">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="commando">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupnarrower" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="stelsmallerin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="links">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rechts">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="midden">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="define" file="syst-ext.tex">
+ <cd:sequence>
+ <cd:string value="definieer"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ <cd:csname n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usecommands" file="core-sys.tex">
+ <cd:sequence>
+ <cd:string value="gebruikcommandos"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definestartstop" file="core-sys.tex">
+ <cd:sequence>
+ <cd:string value="definieerstartstop"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="voor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="na">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="letter">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="commandos">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupheads" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="stelkoppenin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="sectienummer">
+ <cd:constant type="ja"/>
+ <cd:constant type="cd:number"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ <cd:parameter name="variant">
+ <cd:constant type="normaal"/>
+ <cd:constant type="marge"/>
+ <cd:constant type="midden"/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="alinea"/>
+ </cd:parameter>
+ <cd:parameter name="scheider">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="afsluiter">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="uitlijnen">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="titeluitlijnen">
+ <cd:constant type="ja"/>
+ <cd:constant type="blok"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ <cd:parameter name="tolerantie">
+ <cd:constant type="zeerstreng"/>
+ <cd:constant type="streng"/>
+ <cd:constant type="soepel"/>
+ <cd:constant type="zeersoepel"/>
+ <cd:constant type="rek"/>
+ </cd:parameter>
+ <cd:parameter name="springvolgendein">
+ <cd:resolve name="indentnext"/>
+ </cd:parameter>
+ <cd:parameter name="commando">
+ <cd:constant type="cd:twoarguments"/>
+ </cd:parameter>
+ <cd:parameter name="marge">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcaptions" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="stelblokkopjesin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="plaats">
+ <cd:constant type="boven"/>
+ <cd:constant type="onder"/>
+ <cd:constant type="geen"/>
+ <cd:constant type="hoog"/>
+ <cd:constant type="laag"/>
+ <cd:constant type="midden"/>
+ <cd:constant type="links"/>
+ <cd:constant type="midden"/>
+ <cd:constant type="rechts"/>
+ <cd:constant type="linkshangend"/>
+ <cd:constant type="rechtshangend"/>
+ <cd:constant type="linkermarge"/>
+ <cd:constant type="rechtermarge"/>
+ <cd:constant type="binnenmarge"/>
+ <cd:constant type="buitenmarge"/>
+ </cd:parameter>
+ <cd:parameter name="breedte">
+ <cd:constant type="passend"/>
+ <cd:constant type="ruim"/>
+ <cd:constant type="max"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="minbreedte">
+ <cd:constant type="passend"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="kopletter">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="letter">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="nummer">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ <cd:constant type="geen"/>
+ </cd:parameter>
+ <cd:parameter name="tussen">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="uitlijnen">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="conversie">
+ <cd:constant type="cijfers"/>
+ <cd:constant type="letters"/>
+ <cd:constant type="Letters"/>
+ <cd:constant type="romeins"/>
+ <cd:constant type="Romeins"/>
+ </cd:parameter>
+ <cd:parameter name="wijze">
+ <cd:constant type="bytext"/>
+ <cd:constant type="bycd:section"/>
+ </cd:parameter>
+ <cd:parameter name="scheider">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="afsluiter">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="commando">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="afstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcaption" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="stelblokkopjein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="stelblokkopjesin" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfloats" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="stelplaatsblokkenin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="plaats">
+ <cd:constant type="links"/>
+ <cd:constant type="rechts"/>
+ <cd:constant type="midden"/>
+ </cd:parameter>
+ <cd:parameter name="breedte">
+ <cd:constant type="passend"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="voor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="na">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="marge">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="voorwit">
+ <cd:constant type="klein"/>
+ <cd:constant type="middel"/>
+ <cd:constant type="groot"/>
+ <cd:constant type="geen"/>
+ </cd:parameter>
+ <cd:parameter name="nawit">
+ <cd:constant type="klein"/>
+ <cd:constant type="middel"/>
+ <cd:constant type="groot"/>
+ <cd:constant type="geen"/>
+ </cd:parameter>
+ <cd:parameter name="zijvoorwit">
+ <cd:constant type="klein"/>
+ <cd:constant type="middel"/>
+ <cd:constant type="groot"/>
+ <cd:constant type="geen"/>
+ </cd:parameter>
+ <cd:parameter name="zijnawit">
+ <cd:constant type="klein"/>
+ <cd:constant type="middel"/>
+ <cd:constant type="groot"/>
+ <cd:constant type="geen"/>
+ </cd:parameter>
+ <cd:parameter name="springvolgendein">
+ <cd:resolve name="indentnext"/>
+ </cd:parameter>
+ <cd:parameter name="nboven">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="nonder">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="nregels">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="default">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="tolerantie">
+ <cd:constant type="0"/>
+ <cd:constant type="1"/>
+ <cd:constant type="2"/>
+ </cd:parameter>
+ <cd:parameter name="linkermargeafstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rechtermargeafstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="zijuitlijnen">
+ <cd:constant type="normaal"/>
+ <cd:constant type="regel"/>
+ </cd:parameter>
+ <cd:parameter name="nummeren">
+ <cd:constant type="ja"/>
+ <cd:constant type="geencontrole"/>
+ </cd:parameter>
+ <cd:inherit name="stelomlijndin" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfloatsplitting" file="core-tsp.tex">
+ <cd:sequence>
+ <cd:string value="stelplaatsbloksplitsenin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="conversie">
+ <cd:constant type="cijfers"/>
+ <cd:constant type="letters"/>
+ <cd:constant type="Letters"/>
+ <cd:constant type="romeins"/>
+ <cd:constant type="Romeins"/>
+ </cd:parameter>
+ <cd:parameter name="regels">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="splitfloat" file="core-tsp.tex">
+ <cd:sequence>
+ <cd:string value="splitsplaatsblok"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="stelplaatsbloksplitsenin" n="1"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupoppositeplacing" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="stelnaastplaatsenin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1">
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="voor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="tussen">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="na">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="opposite" type="environment" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="opposite"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setuphyphenmark" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="stelkoppeltekenin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1">
+ <cd:parameter name="teken">
+ <cd:constant type="--"/>
+ <cd:constant type="---"/>
+ <cd:constant type="-"/>
+ <cd:constant type="~"/>
+ <cd:constant type="("/>
+ <cd:constant type=")"/>
+ <cd:constant type="="/>
+ <cd:constant type="/"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppositioning" file="page-lyr.tex">
+ <cd:sequence>
+ <cd:string value="stelpositionerenin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="overlay"/>
+ </cd:parameter>
+ <cd:parameter name="eenheid">
+ <cd:constant type="cm"/>
+ <cd:constant type="pt"/>
+ <cd:constant type="em"/>
+ <cd:constant type="mm"/>
+ <cd:constant type="ex"/>
+ <cd:constant type="es"/>
+ <cd:constant type="in"/>
+ </cd:parameter>
+ <cd:parameter name="factor">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="schaal">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="offset">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ <cd:parameter name="xstap">
+ <cd:constant type="absoluut"/>
+ <cd:constant type="relatief"/>
+ </cd:parameter>
+ <cd:parameter name="ystap">
+ <cd:constant type="absoluut"/>
+ <cd:constant type="relatief"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="positioning" type="environment" file="page-lyr.tex">
+ <cd:sequence>
+ <cd:string value="positioning"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="grid" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="rooster"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="x">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="y">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="nx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ny">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="dx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="dy">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="xstap">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ystap">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="offset">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ <cd:parameter name="factor">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="schaal">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="eenheid">
+ <cd:constant type="cm"/>
+ <cd:constant type="pt"/>
+ <cd:constant type="em"/>
+ <cd:constant type="mm"/>
+ <cd:constant type="ex"/>
+ <cd:constant type="es"/>
+ <cd:constant type="in"/>
+ </cd:parameter>
+ <cd:parameter name="plaats">
+ <cd:constant type="links"/>
+ <cd:constant type="midden"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="page" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="pagina"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="ja" default="yes"/>
+ <cd:constant type="opmaak"/>
+ <cd:constant type="nee"/>
+ <cd:constant type="voorkeur"/>
+ <cd:constant type="grotevoorkeur"/>
<cd:constant type="links"/>
<cd:constant type="rechts"/>
- <cd:constant type="midden"/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="passend"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="marge">
+ <cd:constant type="blokkeer"/>
+ <cd:constant type="laatste"/>
+ <cd:constant type="viertal"/>
+ <cd:constant type="even"/>
+ <cd:constant type="oneven"/>
+ <cd:constant type="blanko"/>
+ <cd:constant type="leeg"/>
+ <cd:constant type="reset"/>
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupreferencing" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="stelrefererenin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="cd:sectionnumber">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ <cd:parameter name="prefix">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="interactie">
+ <cd:constant type="label"/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="alles"/>
+ <cd:constant type="symbool"/>
+ </cd:parameter>
+ <cd:parameter name="breedte">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="links">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="rechts">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="converteerfile">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ <cd:constant type="klein"/>
+ <cd:constant type="groot"/>
+ </cd:parameter>
+ <cd:parameter name="scheider">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="autofile">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ <cd:constant type="pagina"/>
+ </cd:parameter>
+ <cd:parameter name="globaal">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupurl" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="stelurlin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="letter">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="urlvariant">
+ <cd:constant type="geen"/>
+ <cd:constant type="beide"/>
+ <cd:constant type="voor"/>
+ <cd:constant type="na"/>
+ </cd:parameter>
+ <cd:parameter name="urlspatie">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="writetoreferencelist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="schrijfnaarreferentielijst"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placereferencelist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="plaatsreferentielijst"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definereferencelist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="definieerreferentielijst"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="stelreferentielijstin" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupreferencelist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="stelreferentielijstin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="criterium">
+ <cd:constant type="cd:section"/>
+ <cd:constant type="lokaal"/>
+ <cd:constant type="vorige"/>
+ <cd:constant type="alles"/>
+ </cd:parameter>
+ <cd:parameter name="commando">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="voor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="na">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="writetolist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="schrijfnaarlijst"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:section"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="writebetweenlist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="schrijftussenlijst"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:section"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nolist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="geenlijst"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="listsymbol" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="lijstsymbool"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placelist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="plaatslijst"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="stellijstin" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="determinelistcharacteristics" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="bepaallijstkenmerken"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="stellijstin" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placecombinedlist" variant="1" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="plaatssamengesteldelijst"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="stelsamengesteldelijstin" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definelist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="definieerlijst"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes"> <!-- inherits from -->
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="stellijstin" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="stellijstin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="variant">
+ <cd:constant type="a"/>
+ <cd:constant type="b"/>
+ <cd:constant type="c"/>
+ <cd:constant type="..."/>
+ <cd:constant type="geen"/>
+ <cd:constant type="commando"/>
+ </cd:parameter>
+ <cd:parameter name="koppeling">
+ <cd:constant type="aan"/>
+ <cd:constant type="uit"/>
+ </cd:parameter>
+ <cd:parameter name="criterium">
+ <cd:constant type="cd:section"/>
+ <cd:constant type="lokaal"/>
+ <cd:constant type="vorige"/>
+ <cd:constant type="huidige"/>
+ <cd:constant type="alles"/>
+ </cd:parameter>
+ <cd:parameter name="paginaovergangen">
+ <cd:constant type="cd:list"/>
+ </cd:parameter>
+ <cd:parameter name="letter">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="nummerletter">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="tekstletter">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="paginaletter">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="kleur">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="commando">
+ <cd:constant type="cd:threearguments"/>
+ </cd:parameter>
+ <cd:parameter name="nummercommando">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="tekstcommando">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="paginacommando">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="interactie">
+ <cd:constant type="cd:sectionnumber"/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="paginanummer"/>
+ <cd:constant type="alles"/>
+ </cd:parameter>
+ <cd:parameter name="voor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="na">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="tussen">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="links">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="rechts">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="label">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ <cd:parameter name="prefix">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ <cd:constant type="geen"/>
+ </cd:parameter>
+ <cd:parameter name="paginanummer">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ <cd:parameter name="kopnummer">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ <cd:parameter name="cd:sectionnumber">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ <cd:parameter name="titeluitlijnen">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ <cd:parameter name="marge">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="breedte">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="passend"/>
+ </cd:parameter>
+ <cd:parameter name="hoogte">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="passend"/>
+ <cd:constant type="ruim"/>
+ </cd:parameter>
+ <cd:parameter name="diepte">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="passend"/>
+ <cd:constant type="ruim"/>
+ </cd:parameter>
+ <cd:parameter name="afstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="scheider">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="afsluiter">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="symbool">
+ <cd:constant type="geen"/>
+ <cd:constant type="1"/>
+ <cd:constant type="2"/>
+ <cd:constant type="3"/>
+ <cd:constant type="..."/>
+ </cd:parameter>
+ <cd:parameter name="expansie">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ <cd:constant type="commando"/>
+ </cd:parameter>
+ <cd:parameter name="maxbreedte">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:inherit name="stelomlijndin" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplistalternative" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="setuplistalternative"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="no">
+ <cd:constant type="a"/>
+ <cd:constant type="b"/>
+ <cd:constant type="c"/>
+ <!-- cd:constant type="cd:name"/ -->
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="commando">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="breedte">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rek">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="afstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definecombinedlist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="definieersamengesteldelijst"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="cd:list"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="stelsamengesteldelijstin" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcombinedlist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="stelsamengesteldelijstin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="niveau">
+ <cd:constant type="1"/>
+ <cd:constant type="2"/>
+ <cd:constant type="3"/>
+ <cd:constant type="4"/>
+ <cd:constant type="cd:section"/>
+ <cd:constant type="huidige"/>
+ </cd:parameter>
+ <cd:inherit name="stellijstin" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placecombinedlist" variant="2" generated="yes" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="plaats"/>
+ <cd:variable value="combinedlist"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="stelsamengesteldelijstin" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="completecombinedlist" generated="yes" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="volledige"/>
+ <cd:variable value="combinedlist"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="stelsamengesteldelijstin" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupnumbering" file="core-num.tex">
+ <cd:sequence>
+ <cd:string value="stelnummerenin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="wijze">
+ <cd:constant type="bytext"/>
+ <cd:constant type="bycd:section"/>
+ </cd:parameter>
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupformulas" file="core-mat.tex">
+ <cd:sequence>
+ <cd:string value="stelformulesin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="plaats">
+ <cd:constant type="links"/>
+ <cd:constant type="rechts"/>
+ </cd:parameter>
+ <cd:parameter name="links">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="rechts">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="uitlijnen">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="optie">
+ <cd:constant type="midden"/>
+ </cd:parameter>
+ <cd:parameter name="strut">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ <cd:parameter name="afstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="marge">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="standaard"/>
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ <cd:parameter name="uitlijnen">
+ <cd:constant type="lijnlinks"/>
+ <cd:constant type="lijnrechts"/>
+ <cd:constant type="midden"/>
+ <cd:constant type="centreer"/>
+ </cd:parameter>
+ <cd:parameter name="linkermarge">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rechtermarge">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="springvolgendein">
+ <cd:resolve name="indentnext"/>
+ </cd:parameter>
+ <cd:parameter name="variant">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="voorwit">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="na">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="scheider">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="conversie">
+ <cd:constant type="cijfers"/>
+ <cd:constant type="letters"/>
+ <cd:constant type="Letters"/>
+ <cd:constant type="romeins"/>
+ <cd:constant type="Romeins"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="publication" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="publicatie"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppublications" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="stelpublicatiesin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="variant">
+ <cd:constant type="apa"/>
+ <cd:constant type="normaal"/>
+ </cd:parameter>
+ <cd:inherit name="steldoornummerenin" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplines" file="page-lin.tex">
+ <cd:sequence>
+ <cd:string value="stelregelsin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="voor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="na">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="tussen">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="inspringen">
+ <cd:resolve name="indenting"/>
+ </cd:parameter>
+ <cd:parameter name="spatie">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ <cd:parameter name="optie">
+ <cd:constant type="opelkaar"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="lines" type="environment">
+ <cd:sequence>
+ <cd:string value="lines"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupparagraphnumbering" file="page-lin.tex">
+ <cd:sequence>
+ <cd:string value="stelparagraafnummerenin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="reset"/>
+ <cd:constant type="regel"/>
+ </cd:parameter>
+ <cd:parameter name="letter">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="afstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplinenumbering" file="page-lin.tex">
+ <cd:sequence>
+ <cd:string value="stelregelnummerenin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="conversie">
+ <cd:constant type="cijfers"/>
+ <cd:constant type="letters"/>
+ <cd:constant type="Letters"/>
+ <cd:constant type="romeins"/>
+ <cd:constant type="Romeins"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="start">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="stap">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="breedte">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="plaats">
+ <cd:constant type="intekst"/>
+ <cd:constant type="inmarge"/>
+ </cd:parameter>
+ <cd:parameter name="letter">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="prefix">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="refereren">
+ <cd:constant type="aan"/>
+ <cd:constant type="uit"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="linenumbering" type="environment" file="page-lin.tex"> <!-- mkii/mkiv -->
+ <cd:sequence>
+ <cd:string value="linenumbering"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="verder"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="line" type="environment">
+ <cd:sequence>
+ <cd:string value="line"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="someline" file="page-lin.tex">
+ <cd:sequence>
+ <cd:string value="eenregel"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inline" file="page-lin.tex">
+ <cd:sequence>
+ <cd:string value="inregel"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupinmargin" file="page-mar.tex">
+ <cd:sequence>
+ <cd:string value="stelinmargein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="links"/>
+ <cd:constant type="rechts"/>
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="plaats">
+ <cd:constant type="links"/>
+ <cd:constant type="rechts"/>
+ <cd:constant type="beide"/>
+ </cd:parameter>
+ <cd:parameter name="letter">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="voor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="na">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="uitlijnen">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="regel">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="afstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="scheider">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="breedte">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="afstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="stapel">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ <cd:inherit name="stelomlijndin" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppagenumber" file="page-num.tex">
+ <cd:sequence>
+ <cd:string value="stelpaginanummerin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="nummer">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="handhaaf"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsubpagenumber" file="page-num.tex">
+ <cd:sequence>
+ <cd:string value="stelsubpaginanummerin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="wijze">
+ <cd:constant type="bytext"/>
+ <cd:constant type="bycd:section"/>
+ </cd:parameter>
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="geen"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupblank" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="stelblankoin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="normaal" default="yes"/>
+ <cd:constant type="default"/>
+ <cd:constant type="standaard"/>
+ <cd:constant type="regel"/>
+ <cd:constant type="halveregel"/>
<cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="voorwit">
- <cd:constant type="klein"/>
- <cd:constant type="middel"/>
<cd:constant type="groot"/>
- <cd:constant type="geen"/>
- </cd:parameter>
- <cd:parameter name="nawit">
- <cd:constant type="klein"/>
<cd:constant type="middel"/>
- <cd:constant type="groot"/>
- <cd:constant type="geen"/>
- </cd:parameter>
- <cd:parameter name="zijvoorwit">
<cd:constant type="klein"/>
- <cd:constant type="middel"/>
- <cd:constant type="groot"/>
+ <cd:constant type="vast"/>
+ <cd:constant type="flexibel"/>
+ <cd:constant type="globaal"/>
+ <cd:constant type="onbekend"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineblank" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="definieerblanko"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:inherit name="stelblankoin" n="1"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definepapersize" file="page-lay.tex">
+ <cd:sequence>
+ <cd:string value="definieerpapierformaat"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="breedte">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="hoogte">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="offset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="schaal">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppaper" file="page-lay.tex">
+ <cd:sequence>
+ <cd:string value="stelpapierin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="papier">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="pagina">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="nx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ny">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="breedte">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="hoogte">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="kopwit">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rugwit">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="optie">
+ <cd:constant type="max"/>
+ <cd:constant type="passend"/>
+ </cd:parameter>
+ <cd:parameter name="methode">
+ <cd:constant type="normaal"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppapersize" file="page-lay.tex">
+ <cd:sequence>
+ <cd:string value="stelpapierformaatin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="A3"/>
+ <cd:constant type="A4" default="yes"/>
+ <cd:constant type="A5"/>
+ <cd:constant type="A6"/>
+ <cd:constant type="letter"/>
+ <cd:constant type="..."/>
+ <cd:constant type="CD"/>
+ <cd:constant type="cd:name"/>
+ <cd:constant type="liggend"/>
+ <cd:constant type="gespiegeld"/>
+ <cd:constant type="geroteerd"/>
+ <cd:constant type="90"/>
+ <cd:constant type="180"/>
+ <cd:constant type="270"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="negatief"/>
+ <cd:inherit name="stelpapierformaatin" n="1"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuparranging" file="page-imp.tex">
+ <cd:sequence>
+ <cd:string value="stelarrangerenin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="blokkeer"/>
+ <cd:constant type="2*16"/>
+ <cd:constant type="2*8"/>
+ <cd:constant type="2*4"/>
+ <cd:constant type="2*2"/>
+ <cd:constant type="2**2"/>
+ <cd:constant type="2*2*4"/>
+ <cd:constant type="2*4*2"/>
+ <cd:constant type="2UP"/>
+ <cd:constant type="2DOWN"/>
+ <cd:constant type="2SIDE"/>
+ <cd:constant type="2TOP"/>
+ <cd:constant type="gespiegeld"/>
+ <cd:constant type="geroteerd"/>
+ <cd:constant type="dubbelzijdig"/>
+ <cd:constant type="negatief"/>
+ <cd:constant type="achtergrond"/>
+ <cd:constant type="90"/>
+ <cd:constant type="180"/>
+ <cd:constant type="270"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showprint" file="page-run.tex"> <!-- page-lay.tex -->
+ <cd:sequence>
+ <cd:string value="toonprint"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:inherit name="stelpapierformaatin" n="1"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:inherit name="stelpapierformaatin" n="2"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:inherit name="stellayoutin" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definelogo" file="page-log.tex">
+ <cd:sequence>
+ <cd:string value="definieerbeeldmerk"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="boven"/>
+ <cd:constant type="hoofd"/>
+ <cd:constant type="voet"/>
+ <cd:constant type="onder"/>
+ </cd:keywords>
+ <cd:keywords n="3">
<cd:constant type="geen"/>
- </cd:parameter>
- <cd:parameter name="zijnawit">
+ <cd:constant type="pagina"/>
+ <cd:constant type="linkerrand"/>
+ <cd:constant type="linkermarge"/>
+ <cd:constant type="links"/>
+ <cd:constant type="midden"/>
+ <cd:constant type="rechts"/>
+ <cd:constant type="rechtermarge"/>
+ <cd:constant type="rechterrand"/>
+ </cd:keywords>
+ <cd:assignments n="4" list="yes">
+ <cd:parameter name="commando">
+ <cd:constant type="cd:command"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placelogos" file="page-log.tex">
+ <cd:sequence>
+ <cd:string value="plaatsbeeldmerken"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupwhitespace">
+ <cd:sequence>
+ <cd:string value="stelwitruimtein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="geen" default="yes"/>
<cd:constant type="klein"/>
<cd:constant type="middel"/>
<cd:constant type="groot"/>
- <cd:constant type="geen"/>
- </cd:parameter>
- <cd:parameter name="springvolgendein">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="nboven">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="nonder">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="nregels">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="default">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="tolerantie">
- <cd:constant type="0"/>
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- </cd:parameter>
- <cd:parameter name="linkermargeafstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rechtermargeafstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="zijuitlijnen">
- <cd:constant type="normaal"/>
<cd:constant type="regel"/>
- </cd:parameter>
- <cd:parameter name="nummeren">
- <cd:constant type="ja"/>
- <cd:constant type="geencontrole"/>
- </cd:parameter>
- <cd:inherit name="stelomlijndin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfloatsplitting" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="stelplaatsbloksplitsenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="conversie">
- <cd:constant type="cijfers"/>
- <cd:constant type="letters"/>
- <cd:constant type="Letters"/>
- <cd:constant type="romeins"/>
- <cd:constant type="Romeins"/>
- </cd:parameter>
- <cd:parameter name="regels">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="splitfloat" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="splitsplaatsblok"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stelplaatsbloksplitsenin"/>
- </cd:assignments>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupoppositeplacing" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="stelnaastplaatsenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="tussen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="opposite" type="environment">
- <cd:sequence>
- <cd:string value="opposite"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setuphyphenmark" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="stelkoppeltekenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments>
- <cd:parameter name="teken">
- <cd:constant type="--"/>
- <cd:constant type="---"/>
- <cd:constant type="-"/>
- <cd:constant type="~"/>
- <cd:constant type="("/>
- <cd:constant type=")"/>
- <cd:constant type="="/>
- <cd:constant type="/"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuppositioning" file="page-lyr.tex">
- <cd:sequence>
- <cd:string value="stelpositionerenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="overlay"/>
- </cd:parameter>
- <cd:parameter name="eenheid">
- <cd:constant type="cm"/>
- <cd:constant type="pt"/>
- <cd:constant type="em"/>
- <cd:constant type="mm"/>
- <cd:constant type="ex"/>
- <cd:constant type="es"/>
- <cd:constant type="in"/>
- </cd:parameter>
- <cd:parameter name="factor">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="schaal">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="offset">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="xstap">
- <cd:constant type="absoluut"/>
- <cd:constant type="relatief"/>
- </cd:parameter>
- <cd:parameter name="ystap">
- <cd:constant type="absoluut"/>
- <cd:constant type="relatief"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="positioning" type="environment">
- <cd:sequence>
- <cd:string value="positioning"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="grid" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="rooster"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="x">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="y">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="nx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ny">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="dx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="dy">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="xstap">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ystap">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="offset">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="factor">
+ <cd:constant type="vast"/>
+ <cd:constant type="herstel"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupindenting">
+ <cd:sequence>
+ <cd:string value="stelinspringenin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:resolve name="indenting"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definesectionblock" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="definieersectieblok"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:inherit name="stelsectieblokin" n="1"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="stelsectieblokin" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsectionblock" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="stelsectieblokin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="nummer">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ <cd:parameter name="pagina">
+ <cd:constant type="ja"/>
+ <cd:constant type="rechts"/>
+ </cd:parameter>
+ <cd:parameter name="voor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="na">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definesection" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="definieersectie"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsection" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="stelsectiein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:parameter name="conversie">
+ <cd:constant type="cijfers"/>
+ <cd:constant type="letters"/>
+ <cd:constant type="Letters"/>
+ <cd:constant type="romeins"/>
+ <cd:constant type="Romeins"/>
+ </cd:parameter>
+ <cd:parameter name="vorigenummer">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuphead" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="stelkopin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:section"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="letter">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="tekstletter">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="nummerletter">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="kleur">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="tekstkleur">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="nummerkleur">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="nummer">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ <cd:parameter name="eigennummer">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ <cd:parameter name="pagina">
+ <cd:constant type="links"/>
+ <cd:constant type="rechts"/>
+ <cd:constant type="ja"/>
+ </cd:parameter>
+ <cd:parameter name="doorgaan">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ <cd:parameter name="hoofd">
+ <cd:constant type="geen"/>
+ <cd:constant type="leeg"/>
+ <cd:constant type="hoog"/>
+ <cd:constant type="geenmarkering"/>
+ </cd:parameter>
+ <cd:parameter name="tekst">
+ <cd:constant type="geen"/>
+ <cd:constant type="leeg"/>
+ <cd:constant type="hoog"/>
+ <cd:constant type="geenmarkering"/>
+ </cd:parameter>
+ <cd:parameter name="voet">
+ <cd:constant type="geen"/>
+ <cd:constant type="leeg"/>
+ <cd:constant type="hoog"/>
+ <cd:constant type="geenmarkering"/>
+ </cd:parameter>
+ <cd:parameter name="voor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="tussen">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="na">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="variant">
+ <cd:constant type="normaal"/>
+ <cd:constant type="inmarge"/>
+ <cd:constant type="midden"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="hang">
+ <cd:constant type="geen"/>
+ <cd:constant type="ruim"/>
+ <cd:constant type="passend"/>
+ <cd:constant type="regel"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="commando">
+ <cd:constant type="cd:twoarguments"/>
+ </cd:parameter>
+ <cd:parameter name="nummercommando">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="tekstcommando">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="diepnummercommando">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="dieptekstcommando">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="prefix">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="plaatskop">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ <cd:constant type="leeg"/>
+ </cd:parameter>
+ <cd:parameter name="verhoognummer">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ <cd:constant type="cd:list"/>
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="resetnummer">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ <cd:parameter name="file">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="expansie">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ <cd:constant type="commando"/>
+ </cd:parameter>
+ <cd:parameter name="margetekst">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ <cd:inherit name="stelkoppenin" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupheadnumber" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="stelkopnummerin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:section"/>
+ </cd:keywords>
+ <cd:keywords n="2">
<cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="schaal">
+ <cd:constant type="+cd:number"/>
+ <cd:constant type="-cd:number"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="headnumber">
+ <cd:sequence>
+ <cd:string value="kopnummer"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:section"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="determineheadnumber" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="bepaalkopnummer"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:section"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="currentheadnumber" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="huidigekopnummer"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="nextsection" generated="yes" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="volgende"/>
+ <cd:variable value="paragraaf"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="definehead" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="definieerkop"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:section"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupitemgroup" file="core-itm.tex">
+ <cd:sequence>
+ <cd:string value="stelitemgroepin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
<cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="eenheid">
- <cd:constant type="cm"/>
- <cd:constant type="pt"/>
- <cd:constant type="em"/>
- <cd:constant type="mm"/>
- <cd:constant type="ex"/>
- <cd:constant type="es"/>
- <cd:constant type="in"/>
- </cd:parameter>
- <cd:parameter name="plaats">
- <cd:constant type="links"/>
- <cd:constant type="midden"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="page" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="pagina"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="ja" default="yes"/>
- <cd:constant type="opmaak"/>
- <cd:constant type="nee"/>
- <cd:constant type="voorkeur"/>
- <cd:constant type="grotevoorkeur"/>
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="blokkeer"/>
- <cd:constant type="laatste"/>
- <cd:constant type="viertal"/>
- <cd:constant type="even"/>
- <cd:constant type="oneven"/>
- <cd:constant type="blanko"/>
- <cd:constant type="leeg"/>
- <cd:constant type="reset"/>
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupreferencing" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="stelrefererenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="cd:sectionnumber">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="prefix">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="interactie">
- <cd:constant type="label"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="alles"/>
- <cd:constant type="symbool"/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="links">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="rechts">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="converteerfile">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- <cd:constant type="klein"/>
- <cd:constant type="groot"/>
- </cd:parameter>
- <cd:parameter name="scheider">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="autofile">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- <cd:constant type="pagina"/>
- </cd:parameter>
- <cd:parameter name="globaal">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupurl" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="stelurlin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="urlvariant">
- <cd:constant type="geen"/>
- <cd:constant type="beide"/>
+ <cd:constant type="elk"/>
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes" list="yes">
+ <cd:constant type="standaard" default="yes"/>
+ <cd:constant type="ruim"/>
+ <cd:constant type="aanelkaar"/>
+ <cd:constant type="opelkaar"/>
+ <cd:constant type="vanelkaar"/>
+ <cd:constant type="geenwit"/>
<cd:constant type="voor"/>
<cd:constant type="na"/>
- </cd:parameter>
- <cd:parameter name="urlspatie">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="writetoreferencelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="schrijfnaarreferentielijst"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placereferencelist">
- <cd:sequence>
- <cd:string value="plaatsreferentielijst"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definereferencelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="definieerreferentielijst"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stelreferentielijstin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupreferencelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="stelreferentielijstin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="criterium">
+ <cd:constant type="afsluiter"/>
+ <cd:constant type="aansluitend"/>
+ <cd:constant type="opmarge"/>
+ <cd:constant type="inmarge"/>
+ <cd:constant type="autointro"/>
+ <cd:constant type="los"/>
+ <cd:constant type="herhaal"/>
<cd:constant type="cd:section"/>
- <cd:constant type="lokaal"/>
- <cd:constant type="vorige"/>
- <cd:constant type="alles"/>
- </cd:parameter>
- <cd:parameter name="commando">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="writetolist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="schrijfnaarlijst"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:section"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="writebetweenlist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="schrijftussenlijst"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:section"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="nolist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="geenlijst"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="listsymbol" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="lijstsymbool"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="plaatslijst"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stellijstin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="determinelistcharacteristics" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="bepaallijstkenmerken"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stellijstin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placecombinedlist" variant="1" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="plaatssamengesteldelijst"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stelsamengesteldelijstin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="definieerlijst"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stellijstin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuplist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="stellijstin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="variant">
+ <cd:constant type="alinea"/>
+ <cd:constant type="intekst"/>
+ <cd:constant type="willekeurig"/>
+ <cd:constant type="omgekeerd"/>
+ </cd:keywords>
+ <cd:assignments n="4" optional="yes" list="yes">
+ <cd:parameter name="marge">
+ <cd:constant type="nee"/>
+ <cd:constant type="standaard"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="linkermarge">
+ <cd:constant type="nee"/>
+ <cd:constant type="standaard"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rechtermarge">
+ <cd:constant type="nee"/>
+ <cd:constant type="standaard"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="breedte">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="afstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="factor">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="items">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="start">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="voor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="tussen">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="na">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="links">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="rechts">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="kopvoor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="kopna">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="kopletter">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="marletter">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="symletter">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="afsluiter">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="symbool">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="uitlijnen">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="symuitlijnen">
+ <cd:resolve name="symalign"/>
+ </cd:parameter>
+ <cd:parameter name="springvolgendein">
+ <cd:resolve name="indentnext"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="itemgroup" type="environment" generated="yes" file="core-itm.tex">
+ <cd:sequence>
+ <cd:variable value="itemgroup"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
<cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- <cd:constant type="..."/>
- <cd:constant type="geen"/>
- <cd:constant type="commando"/>
- </cd:parameter>
- <cd:parameter name="koppeling">
- <cd:constant type="aan"/>
- <cd:constant type="uit"/>
- </cd:parameter>
- <cd:parameter name="criterium">
- <cd:constant type="cd:section"/>
- <cd:constant type="lokaal"/>
- <cd:constant type="vorige"/>
- <cd:constant type="huidige"/>
- <cd:constant type="alles"/>
- </cd:parameter>
- <cd:parameter name="paginaovergangen">
- <cd:constant type="cd:list"/>
- </cd:parameter>
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="nummerletter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="tekstletter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="paginaletter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="kleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="commando">
- <cd:constant type="cd:threearguments"/>
- </cd:parameter>
- <cd:parameter name="nummercommando">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="tekstcommando">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="paginacommando">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="interactie">
- <cd:constant type="cd:sectionnumber"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="paginanummer"/>
- <cd:constant type="alles"/>
- </cd:parameter>
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="tussen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="links">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="rechts">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="label">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="prefix">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- <cd:constant type="geen"/>
- </cd:parameter>
- <cd:parameter name="paginanummer">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="kopnummer">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="cd:sectionnumber">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="titeluitlijnen">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="marge">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="passend"/>
- </cd:parameter>
- <cd:parameter name="hoogte">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="passend"/>
- <cd:constant type="ruim"/>
- </cd:parameter>
- <cd:parameter name="diepte">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="passend"/>
+ <cd:constant type="A"/>
+ <cd:constant type="KA"/>
+ <cd:constant type="n"/>
+ <cd:constant type="N"/>
+ <cd:constant type="m"/>
+ <cd:constant type="r"/>
+ <cd:constant type="R"/>
+ <cd:constant type="KR"/>
+ <cd:constant type="cd:number"/>
+ <cd:constant type="verder"/>
+ <cd:constant type="standaard" default="yes"/>
<cd:constant type="ruim"/>
- </cd:parameter>
- <cd:parameter name="afstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="scheider">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="afsluiter">
+ <cd:constant type="aanelkaar"/>
+ <cd:constant type="opelkaar"/>
+ <cd:constant type="afsluiter"/>
+ <cd:constant type="aansluitend"/>
+ <cd:constant type="opmarge"/>
+ <cd:constant type="inmarge"/>
+ <cd:constant type="intro"/>
+ <cd:constant type="kolommen"/>
+ <cd:constant type="tekst"/>
+ <cd:constant type="alinea"/>
+ <cd:constant type="herhaal"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="stelitemgroepin" n="4"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="item" file="core-itm.tex">
+ <cd:sequence>
+ <cd:string value="som"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="but">
+ <cd:sequence>
+ <cd:string value="but"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" interactive="exclusive"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="its">
+ <cd:sequence>
+ <cd:string value="its"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ran">
+ <cd:sequence>
+ <cd:string value="ran"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="head">
+ <cd:sequence>
+ <cd:string value="kop"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mar">
+ <cd:sequence>
+ <cd:string value="mar"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="sub">
+ <cd:sequence>
+ <cd:string value="sub"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="sym" file="core-itm.tex">
+ <cd:sequence>
+ <cd:string value="sym"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nop">
+ <cd:sequence>
+ <cd:string value="nop"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="defineregister" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="definieerregister"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:singular"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:plural"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupregister" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="stelregisterin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:singular"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="balanceren">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ <cd:parameter name="uitlijnen">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="letter">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="paginaletter">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="tekstletter">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="aanduiding">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ <cd:parameter name="koppeling">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ <cd:parameter name="cd:sectionnumber">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ <cd:parameter name="criterium">
+ <cd:constant type="cd:section"/>
+ <cd:constant type="lokaal"/>
+ <cd:constant type="alles"/>
+ </cd:parameter>
+ <cd:parameter name="afstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="symbool">
+ <cd:constant type="1"/>
+ <cd:constant type="2"/>
+ <cd:constant type="..."/>
+ <cd:constant type="n"/>
+ <cd:constant type="a"/>
+ <cd:constant type="..."/>
+ <cd:constant type="geen"/>
+ </cd:parameter>
+ <cd:parameter name="interactie">
+ <cd:constant type="paginanummer"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="expansie">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ <cd:constant type="commando"/>
+ </cd:parameter>
+ <cd:parameter name="refereren">
+ <cd:constant type="aan"/>
+ <cd:constant type="uit"/>
+ </cd:parameter>
+ <cd:parameter name="commando">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="plaats">
+ <cd:constant type="links"/>
+ <cd:constant type="midden"/>
+ <cd:constant type="rechts"/>
+ </cd:parameter>
+ <cd:parameter name="maxbreedte">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="onbekendeverwijzing">
+ <cd:constant type="leeg"/>
+ <cd:constant type="geen"/>
+ </cd:parameter>
+ <cd:parameter name="variant">
+ <cd:constant type="a"/>
+ <cd:constant type="b"/>
+ <cd:constant type="A"/>
+ <cd:constant type="B"/>
+ </cd:parameter>
+ <cd:parameter name="prefix">
+ <cd:constant type="beide"/>
+ <cd:constant type="eerste"/>
+ <cd:constant type="geen"/>
+ </cd:parameter>
+ <cd:parameter name="comprimeren">
+ <cd:constant type="nee"/>
+ <cd:constant type="ja"/>
+ </cd:parameter>
+ <cd:parameter name="dieptekstcommando">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="register" generated="yes" file="core-reg.tex">
+ <cd:sequence>
+ <cd:variable value="register"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="symbool">
- <cd:constant type="geen"/>
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- <cd:constant type="3"/>
- <cd:constant type="..."/>
- </cd:parameter>
- <cd:parameter name="expansie">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- <cd:constant type="commando"/>
- </cd:parameter>
- <cd:parameter name="maxbreedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:inherit name="omlijnd"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuplistalternative" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="setuplistalternative"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="no">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- <!-- cd:constant type="cd:name"/ -->
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="commando">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rek">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="afstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definecombinedlist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="definieersamengesteldelijst"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:list"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stelsamengesteldelijstin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupcombinedlist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="stelsamengesteldelijstin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="niveau">
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- <cd:constant type="3"/>
- <cd:constant type="4"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="huidige"/>
- </cd:parameter>
- <cd:inherit name="stellijstin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placecombinedlist" variant="2" generated="yes" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="place"/>
- <cd:variable value="combinedlist"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stelsamengesteldelijstin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="completecombinedlist" generated="yes">
- <cd:sequence>
- <cd:string value="complete"/>
- <cd:variable value="combinedlist"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="stelsamengesteldelijstin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupnumbering" file="core-num.tex">
- <cd:sequence>
- <cd:string value="stelnummerenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="wijze">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupformulae">
- <cd:sequence>
- <cd:string value="setupformulae"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="plaats">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- </cd:parameter>
- <cd:parameter name="links">
+ </cd:keywords>
+ <cd:index n="2" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="startregister" generated="yes" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="start"/>
+ <cd:variable value="register"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="rechts">
+ </cd:keywords>
+ <cd:index n="2" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="writetoregister" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="schrijfnaarregister"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:singular"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="uitlijnen">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="optie">
- <cd:constant type="midden"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="afstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="marge">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="standaard"/>
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="uitlijnen">
- <cd:constant type="lijnlinks"/>
- <cd:constant type="lijnrechts"/>
- <cd:constant type="midden"/>
- <cd:constant type="centreer"/>
- </cd:parameter>
- <cd:parameter name="linkermarge">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rechtermarge">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="springvolgendein">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="variant">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="voorwit">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="scheider">
+ </cd:keywords>
+ <cd:index n="3" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="coupledregister" generated="yes">
+ <cd:sequence>
+ <cd:string value="gekoppelde"/>
+ <cd:variable value="register"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="conversie">
- <cd:constant type="cijfers"/>
- <cd:constant type="letters"/>
- <cd:constant type="Letters"/>
- <cd:constant type="romeins"/>
- <cd:constant type="Romeins"/>
+ </cd:keywords>
+ <cd:index n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="coupleregister" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="koppelregister"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placeregister" variant="1" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="plaatsregister"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="stelregisterin" n="3"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="seeregister" generated="yes">
+ <cd:sequence>
+ <cd:string value="zie"/>
+ <cd:variable value="register"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="publication" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="publicatie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuppublications" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="stelpublicatiesin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="variant">
- <cd:constant type="apa"/>
- <cd:constant type="normaal"/>
- </cd:parameter>
- <cd:inherit name="steldoornummerenin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuplines" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="stelregelsin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
+ </cd:keywords>
+ <cd:content n="2"/>
+ <cd:index n="3" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="completeregister" generated="yes" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="volledige"/>
+ <cd:variable value="register"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="yes" optional="yes" list="yes">
+ <cd:inherit name="stelregisterin" n="3"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placeregister" variant="2" generated="yes" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="plaats"/>
+ <cd:variable value="register"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="yes" optional="yes" list="yes">
+ <cd:inherit name="stelregisterin" n="3"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definesynonyms" file="core-syn.tex">
+ <cd:sequence>
+ <cd:string value="definieersynoniemen"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:singular"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:plural"/>
+ </cd:keywords>
+ <cd:keywords n="3">
<cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="tussen">
+ </cd:keywords>
+ <cd:keywords n="4" optional="yes">
<cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="inspringen">
- <cd:resolve name="indenting"/>
- </cd:parameter>
- <cd:parameter name="spatie">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="lines" type="environment">
- <cd:sequence>
- <cd:string value="lines"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupparagraphnumbering" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="stelparagraafnummerenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- <cd:constant type="reset"/>
- <cd:constant type="regel"/>
- </cd:parameter>
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="afstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuplinenumbering" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="stelregelnummerenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="conversie">
- <cd:constant type="cijfers"/>
- <cd:constant type="letters"/>
- <cd:constant type="Letters"/>
- <cd:constant type="romeins"/>
- <cd:constant type="Romeins"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="start">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="stap">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="plaats">
- <cd:constant type="intekst"/>
- <cd:constant type="inmarge"/>
- </cd:parameter>
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="prefix">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsynonyms" file="core-syn.tex">
+ <cd:sequence>
+ <cd:string value="stelsynoniemenin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="tekstletter">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="synoniemletter">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="plaats">
+ <cd:constant type="links"/>
+ <cd:constant type="rechts"/>
+ <cd:constant type="boven"/>
+ <cd:constant type="aanelkaar"/>
+ <cd:constant type="inmarge"/>
+ <cd:constant type="inlinker"/>
+ <cd:constant type="inrechter"/>
+ </cd:parameter>
+ <cd:parameter name="breedte">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="criterium">
+ <cd:constant type="alles"/>
+ <cd:constant type="gebruikt"/>
+ </cd:parameter>
+ <cd:parameter name="conversie">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ <cd:parameter name="expansie">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ <cd:constant type="commando"/>
+ </cd:parameter>
+ <cd:parameter name="commando">
+ <cd:constant type="cd:threearguments"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="synonym" generated="yes">
+ <cd:sequence>
+ <cd:variable value="synonym"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="refereren">
- <cd:constant type="aan"/>
- <cd:constant type="uit"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="linenumbering" type="environment">
- <cd:sequence>
- <cd:string value="linenumbering"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="verder"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="line" type="environment">
- <cd:sequence>
- <cd:string value="line"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="someline" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="eenregel"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="inline" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="inregel"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupinmargin" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="stelinmargein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="plaats">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="beide"/>
- </cd:parameter>
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="voor">
+ </cd:keywords>
+ <cd:content n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="completelistofsynonyms" generated="yes">
+ <cd:sequence>
+ <cd:string value="completelistof"/>
+ <cd:variable value="synonyms"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="placelistofsynonyms" generated="yes">
+ <cd:sequence>
+ <cd:string value="placelistof"/>
+ <cd:variable value="synonyms"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="loadsynonyms" generated="yes">
+ <cd:sequence>
+ <cd:string value="laad"/>
+ <cd:variable value="synonyms"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="definesorting" file="core-syn.tex">
+ <cd:sequence>
+ <cd:string value="definieersorteren"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:singular"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:plural"/>
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes">
<cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="uitlijnen">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="regel">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="afstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="scheider">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsorting" file="core-syn.tex">
+ <cd:sequence>
+ <cd:string value="stelsorterenin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="voor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="na">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="commando">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="criterium">
+ <cd:constant type="alles"/>
+ <cd:constant type="gebruikt"/>
+ </cd:parameter>
+ <cd:parameter name="letter">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="expansie">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ <cd:constant type="commando"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="sort" generated="yes">
+ <cd:sequence>
+ <cd:variable value="sort"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="afstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stapel">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:inherit name="stelomlijndin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuppagenumber" file="page-num.tex">
- <cd:sequence>
- <cd:string value="stelpaginanummerin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="nummer">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- <cd:constant type="handhaaf"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupsubpagenumber" file="page-num.tex">
- <cd:sequence>
- <cd:string value="stelsubpaginanummerin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="wijze">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- <cd:constant type="geen"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupblank">
- <cd:sequence>
- <cd:string value="stelblankoin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="normaal" default="yes"/>
- <cd:constant type="standaard"/>
- <cd:constant type="regel"/>
- <cd:constant type="cd:dimension"/>
- <cd:constant type="groot"/>
- <cd:constant type="middel"/>
- <cd:constant type="klein"/>
- <cd:constant type="vast"/>
- <cd:constant type="flexibel"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineblank" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="definieerblanko"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:inherit name="stelblankoin"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definepapersize" file="page-lay.tex">
- <cd:sequence>
- <cd:string value="definieerpapierformaat"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoogte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="schaal">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuppaper" file="page-lay.tex">
- <cd:sequence>
- <cd:string value="stelpapierin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="papier">
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="completelistofsorts" generated="yes">
+ <cd:sequence>
+ <cd:string value="completelistof"/>
+ <cd:variable value="sorts"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="placelistofsorts" generated="yes">
+ <cd:sequence>
+ <cd:string value="placelistof"/>
+ <cd:variable value="sorts"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="loadsorts" generated="yes">
+ <cd:sequence>
+ <cd:string value="laad"/>
+ <cd:variable value="sorts"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="definemakeup" file="page-mak.tex">
+ <cd:sequence>
+ <cd:string value="definieeropmaak"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="pagina">
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="stelopmaakin" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="makeup" type="environment">
+ <cd:sequence>
+ <cd:string value="opmaak"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="nx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ny">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoogte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="kopwit">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rugwit">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="optie">
- <cd:constant type="max"/>
- <cd:constant type="passend"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuppapersize" file="page-lay.tex">
- <cd:sequence>
- <cd:string value="stelpapierformaatin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="A3"/>
- <cd:constant type="A4" default="yes"/>
- <cd:constant type="A5"/>
- <cd:constant type="A6"/>
- <cd:constant type="letter"/>
- <cd:constant type="..."/>
- <cd:constant type="CD"/>
- <cd:constant type="cd:name"/>
- <cd:constant type="liggend"/>
- <cd:constant type="gespiegeld"/>
- <cd:constant type="geroteerd"/>
- <cd:constant type="90"/>
- <cd:constant type="180"/>
- <cd:constant type="270"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="A3"/>
- <cd:constant type="A4" default="yes"/>
- <cd:constant type="A5"/>
- <cd:constant type="A6"/>
- <cd:constant type="letter"/>
- <cd:constant type="..."/>
- <cd:constant type="cd:name"/>
- <cd:constant type="liggend"/>
- <cd:constant type="gespiegeld"/>
- <cd:constant type="geroteerd"/>
- <cd:constant type="negatief"/>
- <cd:constant type="90"/>
- <cd:constant type="180"/>
- <cd:constant type="270"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuparranging" file="page-imp.tex">
- <cd:sequence>
- <cd:string value="stelarrangerenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="blokkeer"/>
- <cd:constant type="2*16"/>
- <cd:constant type="2*8"/>
- <cd:constant type="2*4"/>
- <cd:constant type="2*2"/>
- <cd:constant type="2**2"/>
- <cd:constant type="2*2*4"/>
- <cd:constant type="2*4*2"/>
- <cd:constant type="2UP"/>
- <cd:constant type="2DOWN"/>
- <cd:constant type="2SIDE"/>
- <cd:constant type="2TOP"/>
- <cd:constant type="gespiegeld"/>
- <cd:constant type="geroteerd"/>
- <cd:constant type="dubbelzijdig"/>
- <cd:constant type="negatief"/>
- <cd:constant type="achtergrond"/>
- <cd:constant type="90"/>
- <cd:constant type="180"/>
- <cd:constant type="270"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showprint">
- <cd:sequence>
- <cd:string value="toonprint"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:inherit name="stelpapierformaatin"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:inherit name="stelpapierformaatin"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="stellayoutin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definelogo" file="page-log.tex">
- <cd:sequence>
- <cd:string value="definieerbeeldmerk"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="boven"/>
- <cd:constant type="hoofd"/>
- <cd:constant type="voet"/>
- <cd:constant type="onder"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="geen"/>
- <cd:constant type="pagina"/>
- <cd:constant type="linkerrand"/>
- <cd:constant type="linkermarge"/>
- <cd:constant type="links"/>
- <cd:constant type="midden"/>
- <cd:constant type="rechts"/>
- <cd:constant type="rechtermarge"/>
- <cd:constant type="rechterrand"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="commando">
- <cd:constant type="cd:command"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placelogos" file="page-log.tex">
- <cd:sequence>
- <cd:string value="plaatsbeeldmerken"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupwhitespace">
- <cd:sequence>
- <cd:string value="stelwitruimtein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="geen" default="yes"/>
- <cd:constant type="klein"/>
- <cd:constant type="middel"/>
- <cd:constant type="groot"/>
- <cd:constant type="regel"/>
- <cd:constant type="vast"/>
- <cd:constant type="herstel"/>
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupindenting">
- <cd:sequence>
- <cd:string value="stelinspringenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="stelopmaakin" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupmakeup" file="page-mak.tex">
+ <cd:sequence>
+ <cd:string value="stelopmaakin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="breedte">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="hoogte">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="voffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="hoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="pagina">
+ <cd:constant type="links"/>
+ <cd:constant type="ja"/>
+ <cd:constant type="rechts"/>
+ </cd:parameter>
+ <cd:parameter name="commandos">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dubbelzijdig">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ <cd:constant type="leeg"/>
+ </cd:parameter>
+ <cd:parameter name="hoofdstatus">
+ <cd:constant type="normaal"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="start"/>
+ <cd:constant type="leeg"/>
+ <cd:constant type="geen"/>
+ <cd:constant type="geenmarkering"/>
+ </cd:parameter>
+ <cd:parameter name="voetstatus">
+ <cd:constant type="normaal"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="start"/>
+ <cd:constant type="leeg"/>
+ <cd:constant type="geen"/>
+ <cd:constant type="geenmarkering"/>
+ </cd:parameter>
+ <cd:parameter name="tekststatus">
+ <cd:constant type="normaal"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="start"/>
+ <cd:constant type="leeg"/>
+ <cd:constant type="geen"/>
+ <cd:constant type="geenmarkering"/>
+ </cd:parameter>
+ <cd:parameter name="bovenstatus">
+ <cd:constant type="stop"/>
+ <cd:constant type="start"/>
+ </cd:parameter>
+ <cd:parameter name="onderstatus">
+ <cd:constant type="stop"/>
+ <cd:constant type="start"/>
+ </cd:parameter>
+ <cd:parameter name="paginastatus">
+ <cd:constant type="stop"/>
+ <cd:constant type="start"/>
+ </cd:parameter>
+ <cd:parameter name="kleur">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="namemakeup" type="environment" generated="yes">
+ <cd:sequence>
+ <cd:variable value="naam"/>
+ <cd:string value="opmaak"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="version">
+ <cd:sequence>
+ <cd:string value="versie"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="definitief" default="yes"/>
+ <cd:constant type="concept"/>
+ <cd:constant type="voorlopig"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="currentdate">
+ <cd:sequence>
+ <cd:string value="huidigedatum"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:inherit name="datum" n="2"/> <!-- or vice versa :) -->
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="date" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="datum"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes"> <!-- if not given, current date is used -->
+ <cd:parameter name="d">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="m">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="y">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="dag"/>
+ <cd:constant type="maand"/>
+ <cd:constant type="jaar"/>
+ <cd:constant type="weekdag"/>
+ <cd:constant type="d"/>
+ <cd:constant type="m"/>
+ <cd:constant type="y"/> <!-- also j -->
+ <cd:constant type="w"/>
+ <cd:constant type="dd"/>
+ <cd:constant type="mm"/>
+ <cd:constant type="yy"/> <!-- also jj -->
+ <cd:constant type="spatie"/>
+ <cd:constant type="--"/>
+ <cd:constant type="day+"/>
+ <cd:constant type="d+"/>
+ <cd:constant type="dd+"/>
+ <cd:constant type="kenmerk"/>
+ <cd:constant type="cd:text"/> <!-- any other text -->
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="referraldate" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="kenmerkdatum"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="indenting" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="inspringen"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
<cd:resolve name="indenting"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definesectionblock" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="definieersectieblok"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stelsectieblokin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupsectionblock" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="stelsectieblokin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="nummer">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="pagina">
- <cd:constant type="ja"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="noindenting" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="nietinspringen"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="blank" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="blanko"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="klein"/>
+ <cd:constant type="middel"/>
+ <cd:constant type="groot" default="yes"/>
+ <cd:constant type="geenwit"/>
+ <cd:constant type="terug"/>
+ <cd:constant type="wit"/>
+ <cd:constant type="blokkeer"/>
+ <cd:constant type="forceer"/>
+ <cd:constant type="reset"/>
+ <cd:constant type="regel"/>
+ <cd:constant type="halveregel"/>
+ <cd:constant type="cd:formula"/>
+ <cd:constant type="vast"/>
+ <cd:constant type="flexibel"/>
+ <cd:constant type="geen"/>
+ <cd:constant type="altijd"/>
+ <cd:constant type="buiten"/>
+ <cd:constant type="aansluitend"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="packed" type="environment" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="opelkaar"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="blanko"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="unpacked" type="environment">
+ <cd:sequence>
+ <cd:string value="unpacked"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="linecorrection" type="environment">
+ <cd:sequence>
+ <cd:string value="linecorrection"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="correctwhitespace" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="corrigeerwitruimte"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="postponing" type="environment">
+ <cd:sequence>
+ <cd:string value="postponing"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="local" type="environment">
+ <cd:sequence>
+ <cd:string value="lokale"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="narrower" type="environment">
+ <cd:sequence>
+ <cd:string value="narrower"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="links"/>
+ <cd:constant type="midden" default="yes"/>
<cd:constant type="rechts"/>
- </cd:parameter>
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definesection" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="definieersectie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupsection" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="stelsectiein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="conversie">
- <cd:constant type="cijfers"/>
- <cd:constant type="letters"/>
- <cd:constant type="Letters"/>
- <cd:constant type="romeins"/>
- <cd:constant type="Romeins"/>
- </cd:parameter>
- <cd:parameter name="vorigenummer">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuphead" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="stelkopin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:section"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="tekstletter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="nummerletter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="kleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="tekstkleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="nummerkleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="nummer">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="eigennummer">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="pagina">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="hiding" type="environment">
+ <cd:sequence>
+ <cd:string value="hiding"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupalign" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="steluitlijnenin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="breedte"/>
<cd:constant type="links"/>
<cd:constant type="rechts"/>
- <cd:constant type="ja"/>
- </cd:parameter>
- <cd:parameter name="doorgaan">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="hoofd">
- <cd:constant type="geen"/>
- <cd:constant type="leeg"/>
- <cd:constant type="hoog"/>
- <cd:constant type="geenmarkering"/>
- </cd:parameter>
- <cd:parameter name="tekst">
- <cd:constant type="geen"/>
- <cd:constant type="leeg"/>
- <cd:constant type="hoog"/>
- <cd:constant type="geenmarkering"/>
- </cd:parameter>
- <cd:parameter name="voet">
- <cd:constant type="geen"/>
- <cd:constant type="leeg"/>
- <cd:constant type="hoog"/>
- <cd:constant type="geenmarkering"/>
- </cd:parameter>
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="tussen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="variant">
- <cd:constant type="normaal"/>
- <cd:constant type="inmarge"/>
<cd:constant type="midden"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="hang">
- <cd:constant type="geen"/>
+ <cd:constant type="binnen"/>
+ <cd:constant type="buiten"/>
+ <cd:constant type="breed"/>
<cd:constant type="ruim"/>
- <cd:constant type="passend"/>
+ <cd:constant type="hoogte"/>
+ <cd:constant type="onder"/>
<cd:constant type="regel"/>
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="commando">
- <cd:constant type="cd:twoarguments"/>
- </cd:parameter>
- <cd:parameter name="nummercommando">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="tekstcommando">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="diepnummercommando">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="dieptekstcommando">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="prefix">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="plaatskop">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- <cd:constant type="leeg"/>
- </cd:parameter>
- <cd:parameter name="verhoognummer">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- <cd:constant type="cd:list"/>
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="resetnummer">
+ <cd:constant type="reset"/>
+ <cd:constant type="hangend"/>
+ <cd:constant type="niethangend"/>
+ <cd:constant type="afgebroken"/>
+ <cd:constant type="nietafgebroken"/>
+ <cd:constant type="lesshyphenation"/>
+ <cd:constant type="morehyphenation"/>
+ <cd:constant type="nieuw"/>
+ <cd:constant type="oud"/>
+ <cd:constant type="normaal"/>
<cd:constant type="ja"/>
<cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="file">
+ <cd:constant type="lijnlinks"/>
+ <cd:constant type="lijnrechts"/>
+ <cd:constant type="lijnbuiten"/>
+ <cd:constant type="lijnbinnen"/>
+ <cd:constant type="centreer"/>
+ <cd:constant type="hz"/>
+ <cd:constant type="geenhz"/>
+ <cd:constant type="spatiering"/>
+ <cd:constant type="geenspatiering"/>
+ <cd:constant type="soepel"/>
+ <cd:constant type="zeersoepel"/>
+ <cd:constant type="rek"/>
+ <cd:constant type="lefttoright"/>
+ <cd:constant type="righttoleft"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+
+ <cd:command name="alignment" type="environment" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="alignment"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:inherit name="steluitlijnenin" n="1"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupspacing">
+ <cd:sequence>
+ <cd:string value="stelspatieringin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="ruim"/>
+ <cd:constant type="opelkaar"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptolerance" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="steltolerantiein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="horizontaal"/>
+ <cd:constant type="vertikaal"/>
+ <cd:constant type="rek"/>
+ <cd:constant type="spatie"/>
+ <cd:constant type="zeerstreng" default="yes"/>
+ <cd:constant type="streng"/>
+ <cd:constant type="soepel"/>
+ <cd:constant type="zeersoepel"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="pagetype" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="soortpagina"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="expansie">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- <cd:constant type="commando"/>
- </cd:parameter>
- <cd:parameter name="margetekst">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:inherit name="stelkoppenin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupheadnumber" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="stelkopnummerin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:section"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:number"/>
- <cd:constant type="+cd:number"/>
- <cd:constant type="-cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="headnumber">
- <cd:sequence>
- <cd:string value="kopnummer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:section"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="determineheadnumber" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="bepaalkopnummer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:section"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="currentheadnumber" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="huidigekopnummer"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="nextsection" generated="yes" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="next"/>
- <cd:variable value="paragraaf"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="definehead" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="definieerkop"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:section"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupitemgroup" file="core-itm.tex">
- <cd:sequence>
- <cd:string value="stelitemgroepin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:number"/>
- <cd:constant type="elk"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="standaard" default="yes"/>
- <cd:constant type="ruim"/>
- <cd:constant type="aanelkaar"/>
- <cd:constant type="opelkaar"/>
- <cd:constant type="vanelkaar"/>
- <cd:constant type="geenwit"/>
- <cd:constant type="voor"/>
- <cd:constant type="na"/>
- <cd:constant type="afsluiter"/>
- <cd:constant type="aansluitend"/>
- <cd:constant type="opmarge"/>
- <cd:constant type="inmarge"/>
- <cd:constant type="autointro"/>
- <cd:constant type="los"/>
- <cd:constant type="herhaal"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="alinea"/>
- <cd:constant type="intekst"/>
- <cd:constant type="willekeurig"/>
- <cd:constant type="omgekeerd"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:parameter name="marge">
- <cd:constant type="nee"/>
- <cd:constant type="standaard"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="linkermarge">
- <cd:constant type="nee"/>
- <cd:constant type="standaard"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rechtermarge">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="processpage" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="verwerkpagina"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="ja" default="yes"/>
<cd:constant type="nee"/>
- <cd:constant type="standaard"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="afstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="factor">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="items">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="start">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="tussen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="links">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="rechts">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="couplepage" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="koppelpagina"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="optie">
+ <cd:constant type="dubbelzijdig"/>
+ </cd:parameter>
+ <cd:parameter name="voor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="na">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="position" file="page-lyr.tex">
+ <cd:sequence>
+ <cd:string value="positioneer"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:position n="1" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupscreens" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="stelrastersin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="methode">
+ <cd:constant type="punt"/>
+ <cd:constant type="lijn"/>
+ <cd:constant type="extern"/>
+ </cd:parameter>
+ <cd:parameter name="resolutie">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="factor">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="raster">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbackgrounds" file="page-bck.tex">
+ <cd:sequence>
+ <cd:string value="stelachtergrondenin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="boven"/>
+ <cd:constant type="hoofd"/>
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="kopvoor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="kopna">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="kopletter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="marletter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="symletter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="afsluiter">
+ <cd:constant type="voet"/>
+ <cd:constant type="onder"/>
+ <cd:constant type="pagina"/>
+ <cd:constant type="papier"/>
+ <cd:constant type="linkerpagina"/>
+ <cd:constant type="rechterpagina"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="linkerrand"/>
+ <cd:constant type="linkermarge"/>
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="symbool">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="uitlijnen">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="symuitlijnen">
- <cd:resolve name="symalign"/>
- </cd:parameter>
- <cd:parameter name="springvolgendein">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="itemgroup" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="itemgroup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="a"/>
- <cd:constant type="A"/>
- <cd:constant type="KA"/>
- <cd:constant type="n"/>
- <cd:constant type="N"/>
- <cd:constant type="m"/>
- <cd:constant type="r"/>
- <cd:constant type="R"/>
- <cd:constant type="KR"/>
- <cd:constant type="cd:number"/>
- <cd:constant type="verder"/>
- <cd:constant type="standaard" default="yes"/>
- <cd:constant type="ruim"/>
- <cd:constant type="aanelkaar"/>
- <cd:constant type="opelkaar"/>
- <cd:constant type="afsluiter"/>
- <cd:constant type="aansluitend"/>
- <cd:constant type="opmarge"/>
- <cd:constant type="inmarge"/>
- <cd:constant type="intro"/>
- <cd:constant type="kolommen"/>
- <cd:constant type="tekst"/>
- <cd:constant type="alinea"/>
- <cd:constant type="herhaal"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stelitemgroepin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="item">
- <cd:sequence>
- <cd:string value="som"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="but">
- <cd:sequence>
- <cd:string value="but"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference interactive="exclusive"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="its">
- <cd:sequence>
- <cd:string value="its"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="ran">
- <cd:sequence>
- <cd:string value="ran"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="head">
- <cd:sequence>
- <cd:string value="kop"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="mar">
- <cd:sequence>
- <cd:string value="mar"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="sub">
- <cd:sequence>
- <cd:string value="sub"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="sym" file="core-itm.tex">
- <cd:sequence>
- <cd:string value="sym"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="nop">
- <cd:sequence>
- <cd:string value="nop"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="defineregister" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="definieerregister"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:plural"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupregister" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="stelregisterin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="balanceren">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="uitlijnen">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="paginaletter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="tekstletter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="aanduiding">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="koppeling">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="cd:sectionnumber">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="criterium">
- <cd:constant type="cd:section"/>
- <cd:constant type="lokaal"/>
+ <cd:constant type="rechtermarge"/>
+ <cd:constant type="rechterrand"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="cd:repeat"/>
+ </cd:parameter>
+ <cd:inherit name="stelomlijndin" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="buffer" type="environment" generated="yes" file="core-buf.tex">
+ <cd:sequence>
+ <cd:variable value="buffer"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="buffer" type="environment" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="buffer"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getbuffer">
+ <cd:sequence>
+ <cd:string value="haalbuffer"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="typebuffer" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="typebuffer"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definebuffer" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="definieerbuffer"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbuffer" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="stelbufferin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="alinea">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="voor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="na">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineblock" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="definieerblok"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nomoreblocks" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="geenblokkenmeer"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="hideblocks" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="verbergblokken"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="keepblocks" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="handhaafblokken"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
<cd:constant type="alles"/>
- </cd:parameter>
- <cd:parameter name="afstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="symbool">
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- <cd:constant type="..."/>
- <cd:constant type="n"/>
- <cd:constant type="a"/>
- <cd:constant type="..."/>
- <cd:constant type="geen"/>
- </cd:parameter>
- <cd:parameter name="interactie">
- <cd:constant type="paginanummer"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="expansie">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- <cd:constant type="commando"/>
- </cd:parameter>
- <cd:parameter name="refereren">
- <cd:constant type="aan"/>
- <cd:constant type="uit"/>
- </cd:parameter>
- <cd:parameter name="commando">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="plaats">
- <cd:constant type="links"/>
- <cd:constant type="midden"/>
- <cd:constant type="rechts"/>
- </cd:parameter>
- <cd:parameter name="maxbreedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="onbekendeverwijzing">
- <cd:constant type="leeg"/>
- <cd:constant type="geen"/>
- </cd:parameter>
- <cd:parameter name="variant">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="A"/>
- <cd:constant type="B"/>
- </cd:parameter>
- <cd:parameter name="prefix">
- <cd:constant type="beide"/>
- <cd:constant type="eerste"/>
- <cd:constant type="geen"/>
- </cd:parameter>
- <cd:parameter name="comprimeren">
- <cd:constant type="nee"/>
- <cd:constant type="ja"/>
- </cd:parameter>
- <cd:parameter name="dieptekstcommando">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="register" generated="yes" file="core-reg.tex">
- <cd:sequence>
- <cd:variable value="register"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:index list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="startregister" generated="yes" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="start"/>
- <cd:variable value="register"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:index list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="writetoregister" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="schrijfnaarregister"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:index list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="coupledregister" generated="yes">
- <cd:sequence>
- <cd:string value="coupled"/>
- <cd:variable value="register"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:index/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="coupleregister" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="koppelregister"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placeregister" variant="1" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="plaatsregister"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stelregisterin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="seeregister" generated="yes">
- <cd:sequence>
- <cd:string value="see"/>
- <cd:variable value="register"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content/>
- <cd:index list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="completeregister" generated="yes" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="complete"/>
- <cd:variable value="register"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="yes" optional="yes" list="yes">
- <cd:inherit name="stelregisterin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placeregister" variant="2" generated="yes" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="place"/>
- <cd:variable value="register"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="yes" optional="yes" list="yes">
- <cd:inherit name="stelregisterin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definesynonyms" file="core-syn.tex">
- <cd:sequence>
- <cd:string value="definieersynoniemen"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:plural"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:command"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:command"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupsynonyms" file="core-syn.tex">
- <cd:sequence>
- <cd:string value="stelsynoniemenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="tekstletter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="synoniemletter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="plaats">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useblocks" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="gebruikblokken"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="processblocks" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="verwerkblokken"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="bypassblocks" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="passeerblokken"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="forceblocks">
+ <cd:sequence>
+ <cd:string value="forceerblokken"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="selectblocks" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="selecteerblokken"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes">
+ <cd:parameter name="criterium">
+ <cd:constant type="alles"/>
+ <cd:constant type="cd:section"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupblock" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="stelblokin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="voor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="na">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="binnen">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="letter">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="file">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="formula" type="environment" generated="yes">
+ <cd:sequence>
+ <cd:variable value="formule"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="mathematics" file="supp-mat.tex">
+ <cd:sequence>
+ <cd:string value="wiskunde"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placeformula" file="core-mat.tex">
+ <cd:sequence>
+ <cd:string value="plaatsformule"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2" optional="yes"/>
+ <cd:displaymath n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placesubformula" file="core-mat.tex">
+ <cd:sequence>
+ <cd:string value="plaatssubformule"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2" optional="yes"/>
+ <cd:displaymath n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placefloat" generated="yes" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="plaats"/>
+ <cd:variable value="blok"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="links"/>
<cd:constant type="rechts"/>
+ <cd:constant type="hier" default="yes"/>
<cd:constant type="boven"/>
- <cd:constant type="aanelkaar"/>
- <cd:constant type="inmarge"/>
+ <cd:constant type="onder"/>
<cd:constant type="inlinker"/>
<cd:constant type="inrechter"/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="criterium">
- <cd:constant type="alles"/>
- <cd:constant type="gebruikt"/>
- </cd:parameter>
- <cd:parameter name="conversie">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="expansie">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- <cd:constant type="commando"/>
- </cd:parameter>
- <cd:parameter name="commando">
- <cd:constant type="cd:threearguments"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="synonym" generated="yes">
- <cd:sequence>
- <cd:variable value="synonym"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="completelistofsynonyms" generated="yes">
- <cd:sequence>
- <cd:string value="completelistof"/>
- <cd:variable value="synonyms"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="placelistofsynonyms" generated="yes">
- <cd:sequence>
- <cd:string value="placelistof"/>
- <cd:variable value="synonyms"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="loadsynonyms" generated="yes">
- <cd:sequence>
- <cd:string value="load"/>
- <cd:variable value="synonyms"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="definesorting" file="core-syn.tex">
- <cd:sequence>
- <cd:string value="definieersorteren"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:plural"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:command"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupsorting" file="core-syn.tex">
- <cd:sequence>
- <cd:string value="stelsorterenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="commando">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="criterium">
- <cd:constant type="alles"/>
- <cd:constant type="gebruikt"/>
- </cd:parameter>
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="expansie">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- <cd:constant type="commando"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="sort" generated="yes">
- <cd:sequence>
- <cd:variable value="sort"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="completelistofsorts" generated="yes">
- <cd:sequence>
- <cd:string value="completelistof"/>
- <cd:variable value="sorts"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="placelistofsorts" generated="yes">
- <cd:sequence>
- <cd:string value="placelistof"/>
- <cd:variable value="sorts"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="loadsorts" generated="yes">
- <cd:sequence>
- <cd:string value="load"/>
- <cd:variable value="sorts"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="definemakeup" file="page-mak.tex">
- <cd:sequence>
- <cd:string value="definieeropmaak"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="stelopmaakin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="makeup" type="environment">
- <cd:sequence>
- <cd:string value="makeup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stelopmaakin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupmakeup" file="page-mak.tex">
- <cd:sequence>
- <cd:string value="stelopmaakin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoogte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="voffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="pagina">
+ <cd:constant type="inmarge"/>
+ <cd:constant type="marge"/>
+ <cd:constant type="linkermarge"/>
+ <cd:constant type="rechtermarge"/>
+ <cd:constant type="linkerrand"/>
+ <cd:constant type="rechterrand"/>
+ <cd:constant type="binnenmarge"/>
+ <cd:constant type="buitenmarge"/>
+ <cd:constant type="binnenrand"/>
+ <cd:constant type="buitenrand"/>
+ <cd:constant type="binnen"/>
+ <cd:constant type="buiten"/>
+ <cd:constant type="regel"/>
+ <cd:constant type="hoog"/>
+ <cd:constant type="laag"/>
+ <cd:constant type="passend"/>
+ <cd:constant type="pagina"/>
+ <cd:constant type="linkerpagina"/>
+ <cd:constant type="rechterpagina"/>
+ <cd:constant type="naast"/>
+ <cd:constant type="altijd"/>
+ <cd:constant type="auto"/>
+ <cd:constant type="forceer"/>
+ <cd:constant type="lang"/>
+ <cd:constant type="reset"/>
+ <cd:constant type="regel"/>
+ <cd:constant type="hoogte"/>
+ <cd:constant type="diepte"/>
+ <cd:constant type="splitsen"/>
+ <cd:constant type="90"/>
+ <cd:constant type="180"/>
+ <cd:constant type="270"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes" list="yes"/>
+ <cd:content n="3"/>
+ <cd:content n="4"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="reservefloat" generated="yes">
+ <cd:sequence>
+ <cd:string value="reserveer"/>
+ <cd:variable value="blok"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:parameter name="hoogte">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="breedte">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="kader">
+ <cd:constant type="aan"/>
+ <cd:constant type="uit"/>
+ </cd:parameter>
+ </cd:assignments>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:reference n="3" optional="yes" list="yes"/>
+ <cd:content n="4"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefloat" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="definieerplaatsblok"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:singular"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:plural"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfloat" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="stelplaatsblokin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="hoogte">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="breedte">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="maxhoogte">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="maxbreedte">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="minbreedte">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="default">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="paginaovergangen">
+ <cd:constant type="cd:list"/>
+ </cd:parameter>
+ <cd:parameter name="linkermargeafstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rechtermargeafstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="plaats">
+ <cd:constant type="links"/>
+ <cd:constant type="midden"/>
+ <cd:constant type="rechts"/>
+ </cd:parameter>
+ <cd:inherit name="stelomlijndin" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="floattext" type="environment" generated="yes">
+ <cd:sequence>
+ <cd:variable value="blok"/>
+ <cd:string value="tekst"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="links"/>
- <cd:constant type="ja"/>
<cd:constant type="rechts"/>
- </cd:parameter>
- <cd:parameter name="commandos">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dubbelzijdig">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- <cd:constant type="leeg"/>
- </cd:parameter>
- <cd:parameter name="hoofdstatus">
- <cd:constant type="normaal"/>
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- <cd:constant type="leeg"/>
- <cd:constant type="geen"/>
- <cd:constant type="geenmarkering"/>
- </cd:parameter>
- <cd:parameter name="voetstatus">
- <cd:constant type="normaal"/>
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- <cd:constant type="leeg"/>
- <cd:constant type="geen"/>
- <cd:constant type="geenmarkering"/>
- </cd:parameter>
- <cd:parameter name="tekststatus">
- <cd:constant type="normaal"/>
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- <cd:constant type="leeg"/>
- <cd:constant type="geen"/>
- <cd:constant type="geenmarkering"/>
- </cd:parameter>
- <cd:parameter name="bovenstatus">
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- </cd:parameter>
- <cd:parameter name="onderstatus">
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- </cd:parameter>
- <cd:parameter name="paginastatus">
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- </cd:parameter>
- <cd:parameter name="kleur">
+ <cd:constant type="hoog"/>
+ <cd:constant type="midden"/>
+ <cd:constant type="laag"/>
+ <cd:constant type="offset"/>
+ <cd:constant type="lang"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ <cd:content n="4"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placelistoffloats" generated="yes">
+ <cd:sequence>
+ <cd:string value="placelistof"/>
+ <cd:variable value="floats"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="completelistoffloats" generated="yes">
+ <cd:sequence>
+ <cd:string value="completelistof"/>
+ <cd:variable value="floats"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="referral" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="kenmerk"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="bet">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="ken">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="dat">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="van">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="aan">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="ref">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="selectpaper">
+ <cd:sequence>
+ <cd:string value="selecteerpapier"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="soort">
+ <cd:constant type="1"/>
+ <cd:constant type="2"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="couplepaper">
+ <cd:sequence>
+ <cd:string value="koppelpapier"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="namemakeup" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="naam"/>
- <cd:string value="makeup"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="version">
- <cd:sequence>
- <cd:string value="versie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="definitief" default="yes"/>
- <cd:constant type="concept"/>
- <cd:constant type="voorlopig"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="currentdate">
- <cd:sequence>
- <cd:string value="huidigedatum"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:inherit name="datum"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="date" file="core-con.tex">
- <cd:sequence>
- <cd:string value="datum"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:parameter name="d">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="m">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="y">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- <cd:keywords list="yes">
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="referraldate" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="kenmerkdatum"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="indenting" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="inspringen"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:resolve name="indenting"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="noindenting" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="nietinspringen"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="blank" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="blanko"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="klein"/>
- <cd:constant type="middel"/>
- <cd:constant type="groot" default="yes"/>
- <cd:constant type="geenwit"/>
- <cd:constant type="terug"/>
- <cd:constant type="wit"/>
- <cd:constant type="blokkeer"/>
- <cd:constant type="forceer"/>
- <cd:constant type="reset"/>
- <cd:constant type="regel"/>
- <cd:constant type="halveregel"/>
- <cd:constant type="cd:formula"/>
- <cd:constant type="vast"/>
- <cd:constant type="flexibel"/>
- <cd:constant type="geen"/>
- <cd:constant type="altijd"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="packed" type="environment" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="opelkaar"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="blanko"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="unpacked" type="environment">
- <cd:sequence>
- <cd:string value="unpacked"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="linecorrection" type="environment">
- <cd:sequence>
- <cd:string value="linecorrection"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="correctwhitespace" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="corrigeerwitruimte"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="postponing" type="environment">
- <cd:sequence>
- <cd:string value="postponing"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="local" type="environment">
- <cd:sequence>
- <cd:string value="local"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="narrower" type="environment">
- <cd:sequence>
- <cd:string value="narrower"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="links"/>
- <cd:constant type="midden" default="yes"/>
- <cd:constant type="rechts"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="hiding" type="environment">
- <cd:sequence>
- <cd:string value="hiding"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupalign" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="steluitlijnenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="breedte"/>
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="midden"/>
- <cd:constant type="binnen"/>
- <cd:constant type="buiten"/>
- <cd:constant type="breed"/>
- <cd:constant type="ruim"/>
- <cd:constant type="hoogte"/>
- <cd:constant type="onder"/>
- <cd:constant type="regel"/>
- <cd:constant type="reset"/>
- <cd:constant type="hangend"/>
- <cd:constant type="niethangend"/>
- <cd:constant type="afgebroken"/>
- <cd:constant type="nietafgebroken"/>
- <cd:constant type="lesshyphens"/>
- <cd:constant type="morehyphens"/>
- <cd:constant type="nieuw"/>
- <cd:constant type="oud"/>
- <cd:constant type="normaal"/>
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- <cd:constant type="lijnlinks"/>
- <cd:constant type="lijnrechts"/>
- <cd:constant type="lijnbuiten"/>
- <cd:constant type="lijnbinnen"/>
- <cd:constant type="centreer"/>
- <cd:constant type="hz"/>
- <cd:constant type="geenhz"/>
- <cd:constant type="spatiering"/>
- <cd:constant type="geenspatiering"/>
- <cd:constant type="soepel"/>
- <cd:constant type="zeersoepel"/>
- <cd:constant type="rek"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-
-<cd:command name="alignment" type="environment">
- <cd:sequence>
- <cd:string value="alignment"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:inherit name="steluitlijnenin"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupspacing">
- <cd:sequence>
- <cd:string value="stelspatieringin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="ruim"/>
- <cd:constant type="opelkaar"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptolerance" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="steltolerantiein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="horizontaal"/>
- <cd:constant type="vertikaal"/>
- <cd:constant type="rek"/>
- <cd:constant type="spatie"/>
- <cd:constant type="zeerstreng" default="yes"/>
- <cd:constant type="streng"/>
- <cd:constant type="soepel"/>
- <cd:constant type="zeersoepel"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="pagetype" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="soortpagina"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="processpage" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="verwerkpagina"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="ja" default="yes"/>
- <cd:constant type="nee"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="couplepage" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="koppelpagina"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="optie">
- <cd:constant type="dubbelzijdig"/>
- </cd:parameter>
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="position" file="page-lyr.tex">
- <cd:sequence>
- <cd:string value="positioneer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:position list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupscreens" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="stelrastersin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="methode">
- <cd:constant type="punt"/>
- <cd:constant type="lijn"/>
- <cd:constant type="extern"/>
- </cd:parameter>
- <cd:parameter name="resolutie">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="factor">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="raster">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="chem" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="chem"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fraction" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="breuk"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="periods" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="punten"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupbackgrounds" file="page-bck.tex">
- <cd:sequence>
- <cd:string value="stelachtergrondenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="boven"/>
- <cd:constant type="hoofd"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="voet"/>
- <cd:constant type="onder"/>
- <cd:constant type="pagina"/>
- <cd:constant type="papier"/>
- <cd:constant type="linkerpagina"/>
- <cd:constant type="rechterpagina"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="linkerrand"/>
- <cd:constant type="linkermarge"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="rechtermarge"/>
- <cd:constant type="rechterrand"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- <cd:constant type="cd:repeat"/>
- </cd:parameter>
- <cd:inherit name="stelomlijndin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="buffer" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="buffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="getbuffer">
- <cd:sequence>
- <cd:string value="haalbuffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="typebuffer" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="typebuffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definebuffer" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="definieerbuffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupbuffer" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="stelbufferin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="alinea">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineblock" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="definieerblok"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="nomoreblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="geenblokkenmeer"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="hideblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="verbergblokken"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="keepblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="handhaafblokken"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="alles"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="useblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="gebruikblokken"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="processblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="verwerkblokken"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="bypassblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="passeerblokken"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="forceblocks">
- <cd:sequence>
- <cd:string value="forceerblokken"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="selectblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="selecteerblokken"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes">
- <cd:parameter name="criterium">
- <cd:constant type="alles"/>
- <cd:constant type="cd:section"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupblock" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="stelblokin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="binnen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="file">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="formula" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="formule"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="mathematics" file="supp-mat.tex">
- <cd:sequence>
- <cd:string value="wiskunde"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placeformula" file="core-mat.tex">
- <cd:sequence>
- <cd:string value="plaatsformule"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content optional="yes"/>
- <cd:displaymath/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placesubformula" file="core-mat.tex">
- <cd:sequence>
- <cd:string value="plaatssubformule"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content optional="yes"/>
- <cd:displaymath/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placefloat" generated="yes" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="place"/>
- <cd:variable value="blok"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="hier" default="yes"/>
- <cd:constant type="boven"/>
- <cd:constant type="onder"/>
- <cd:constant type="inlinker"/>
- <cd:constant type="inrechter"/>
- <cd:constant type="inmarge"/>
- <cd:constant type="marge"/>
- <cd:constant type="linkermarge"/>
- <cd:constant type="rechtermarge"/>
- <cd:constant type="linkerrand"/>
- <cd:constant type="rechterrand"/>
- <cd:constant type="binnenmarge"/>
- <cd:constant type="buitenmarge"/>
- <cd:constant type="binnenrand"/>
- <cd:constant type="buitenrand"/>
- <cd:constant type="binnen"/>
- <cd:constant type="buiten"/>
- <cd:constant type="regel"/>
- <cd:constant type="hoog"/>
- <cd:constant type="laag"/>
- <cd:constant type="passend"/>
- <cd:constant type="pagina"/>
- <cd:constant type="linkerpagina"/>
- <cd:constant type="rechterpagina"/>
- <cd:constant type="naast"/>
- <cd:constant type="altijd"/>
- <cd:constant type="auto"/>
- <cd:constant type="forceer"/>
- <cd:constant type="lang"/>
- <cd:constant type="reset"/>
- <cd:constant type="regel"/>
- <cd:constant type="hoogte"/>
- <cd:constant type="diepte"/>
- <cd:constant type="splitsen"/>
- <cd:constant type="90"/>
- <cd:constant type="180"/>
- <cd:constant type="270"/>
- </cd:keywords>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="reservefloat" generated="yes">
- <cd:sequence>
- <cd:string value="reserve"/>
- <cd:variable value="blok"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:parameter name="hoogte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="kader">
- <cd:constant type="aan"/>
- <cd:constant type="uit"/>
- </cd:parameter>
- </cd:assignments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definefloat" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="definieerplaatsblok"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:plural"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfloat" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="stelplaatsblokin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="hoogte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="maxhoogte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="maxbreedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="minbreedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="default">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="paginaovergangen">
- <cd:constant type="cd:list"/>
- </cd:parameter>
- <cd:parameter name="linkermargeafstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rechtermargeafstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="plaats">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="items">
+ <cd:sequence>
+ <cd:string value="items"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="stelitemsin" n="1"/>
+ </cd:assignments>
+ <cd:content n="2" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupitems" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="stelitemsin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="plaats">
+ <cd:constant type="links"/>
+ <cd:constant type="rechts"/>
+ <cd:constant type="inmarge"/>
+ <cd:constant type="boven"/>
+ <cd:constant type="onder"/>
+ </cd:parameter>
+ <cd:parameter name="symbool">
+ <cd:constant type="1"/>
+ <cd:constant type="2"/>
+ <cd:constant type="..."/>
+ <cd:constant type="n"/>
+ <cd:constant type="a"/>
+ <cd:constant type="..."/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="geen"/>
+ </cd:parameter>
+ <cd:parameter name="breedte">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="onbekend"/>
+ </cd:parameter>
+ <cd:parameter name="voor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="tussen">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="uitlijnen">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="na">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="quotation" type="environment" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="citaat"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
<cd:constant type="links"/>
- <cd:constant type="midden"/>
+ <cd:constant type="midden" default="yes"/>
<cd:constant type="rechts"/>
- </cd:parameter>
- <cd:inherit name="stelomlijndin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="floattext" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="blok"/>
- <cd:string value="text"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="hoog"/>
- <cd:constant type="midden"/>
- <cd:constant type="laag"/>
- <cd:constant type="offset"/>
- <cd:constant type="lang"/>
- </cd:keywords>
- <cd:reference optional="yes"/>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placelistoffloats" generated="yes">
- <cd:sequence>
- <cd:string value="placelistof"/>
- <cd:variable value="floats"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="completelistoffloats" generated="yes">
- <cd:sequence>
- <cd:string value="completelistof"/>
- <cd:variable value="floats"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="referral" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="kenmerk"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="bet">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="quotation" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="citaat"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="quote" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="citeer"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupquote" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="stelciterenin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="voor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="na">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="letter">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="kleur">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="plaats">
+ <cd:constant type="cd:text"/>
+ <cd:constant type="marge"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineparagraphs" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="definieeralineas"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="lijn">
+ <cd:constant type="aan"/>
+ <cd:constant type="uit"/>
+ </cd:parameter>
+ <cd:parameter name="hoogte">
+ <cd:constant type="passend"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="voor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="na">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="binnen">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="afstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="tolerantie">
+ <cd:constant type="zeerstreng"/>
+ <cd:constant type="streng"/>
+ <cd:constant type="soepel"/>
+ <cd:constant type="zeersoepel"/>
+ <cd:constant type="rek"/>
+ </cd:parameter>
+ <cd:parameter name="uitlijnen">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="paragraph" generated="yes">
+ <cd:sequence>
+ <cd:variable value="alinea"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="paragraph" type="environment" generated="yes">
+ <cd:sequence>
+ <cd:variable value="alinea"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupparagraphs" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="stelalineasin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="elk"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:parameter name="letter">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="breedte">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="hoogte">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="uitlijnen">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="tolerantie">
+ <cd:constant type="zeerstreng"/>
+ <cd:constant type="streng"/>
+ <cd:constant type="soepel"/>
+ <cd:constant type="zeersoepel"/>
+ <cd:constant type="rek"/>
+ </cd:parameter>
+ <cd:parameter name="afstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="voor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="na">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="binnen">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="commando">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="lijn">
+ <cd:constant type="aan"/>
+ <cd:constant type="uit"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptab" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="steltabin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="monster">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="breedte">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="kopletter">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="plaats">
+ <cd:constant type="links"/>
+ <cd:constant type="rechts"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tab">
+ <cd:sequence>
+ <cd:string value="tab"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:nothing n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="document" type="environment">
+ <cd:sequence>
+ <cd:string value="document"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="labels">
+ <cd:sequence>
+ <cd:string value="labels"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definetabulate" file="core-tbl.tex">
+ <cd:sequence>
+ <cd:string value="definieertabulatie"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="3">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="ken">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tabulate" type="environment" generated="yes">
+ <cd:sequence>
+ <cd:variable value="tabulatie"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="dat">
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="stelexternefigurenin" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptabulate" file="core-tbl.tex">
+ <cd:sequence>
+ <cd:string value="steltabulatiein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="eenheid">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="inspringen">
+ <cd:resolve name="indenting"/>
+ </cd:parameter>
+ <cd:parameter name="voor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="na">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="binnen">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="EQ">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="lijnkleur">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="uitlijnen">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="lijndikte">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="afstand">
+ <cd:constant type="blanko"/>
+ <cd:constant type="grid"/>
+ <cd:constant type="diepte"/>
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="klein"/>
+ <cd:constant type="middel"/>
+ <cd:constant type="groot"/>
+ <cd:constant type="geen"/>
+ </cd:parameter>
+ <cd:parameter name="korps">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ <cd:parameter name="lijn">
+ <cd:constant type="normaal"/>
+ <cd:constant type="regel"/>
+ </cd:parameter>
+ <cd:parameter name="splitsen">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptables" file="core-tab.tex">
+ <cd:sequence>
+ <cd:string value="steltabellenin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="afstand">
+ <cd:constant type="klein"/>
+ <cd:constant type="middel"/>
+ <cd:constant type="groot"/>
+ </cd:parameter>
+ <cd:parameter name="korps">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ <cd:parameter name="HL">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="klein"/>
+ <cd:constant type="middel"/>
+ <cd:constant type="groot"/>
+ <cd:constant type="geen"/>
+ </cd:parameter>
+ <cd:parameter name="VL">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="klein"/>
+ <cd:constant type="middel"/>
+ <cd:constant type="groot"/>
+ <cd:constant type="geen"/>
+ </cd:parameter>
+ <cd:parameter name="diepte">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="strut"/>
+ </cd:parameter>
+ <cd:parameter name="hoogte">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="strut"/>
+ </cd:parameter>
+ <cd:parameter name="lijndikte">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="lijnkleur">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="uitlijnen">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="commandos">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="uitlijnen">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="achtergrond">
+ <cd:constant type="raster"/>
+ <cd:constant type="kleur"/>
+ <cd:constant type="geen"/>
+ </cd:parameter>
+ <cd:parameter name="achtergrondraster">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="achtergrondkleur">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="korps">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="table" type="environment">
+ <cd:sequence>
+ <cd:string value="table"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="van">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tables" type="environment">
+ <cd:sequence>
+ <cd:string value="tables"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="aan">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definetabletemplate" file="core-tab.tex">
+ <cd:sequence>
+ <cd:string value="definieertabelvorm"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="ref">
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="selectpaper">
- <cd:sequence>
- <cd:string value="selecteerpapier"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="soort">
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="couplepaper">
- <cd:sequence>
- <cd:string value="koppelpapier"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="chem" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="chem"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="fraction" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="breuk"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="periods" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="punten"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="items">
- <cd:sequence>
- <cd:string value="items"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stelitemsin"/>
- </cd:assignments>
- <cd:content list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupitems" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="stelitemsin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="plaats">
+ </cd:keywords>
+ <cd:keywords n="4" optional="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useexternalfiles" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="gebruikexternefiles"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="korps">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ <cd:parameter name="file">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useexternalfile" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="gebruikexternefile"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ <cd:assignments n="4" list="yes">
+ <cd:parameter name="korps">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useexternalfigure" file="core-fig.tex">
+ <cd:sequence>
+ <cd:string value="gebruikexternfiguur"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes">
+ <cd:constant type="cd:name"/> <!-- parent -->
+ </cd:keywords>
+ <cd:assignments n="4" optional="yes" list="yes">
+ <cd:inherit name="stelexternefigurenin" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="externalfigure" file="core-fig.tex">
+ <cd:sequence>
+ <cd:string value="externfiguur"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="stelexternefigurenin" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupexternalfigures" file="core-fig.tex">
+ <cd:sequence>
+ <cd:string value="stelexternefigurenin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1">
+ <cd:parameter name="schaal">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="yschaal">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="yschaal">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="factor">
+ <cd:constant type="max"/>
+ <cd:constant type="passend"/>
+ <cd:constant type="ruim"/>
+ </cd:parameter>
+ <cd:parameter name="bfactor">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="max"/>
+ <cd:constant type="ruim"/>
+ <cd:constant type="passend"/>
+ </cd:parameter>
+ <cd:parameter name="hfactor">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="max"/>
+ <cd:constant type="ruim"/>
+ <cd:constant type="passend"/>
+ </cd:parameter>
+ <cd:parameter name="breedte">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="hoogte">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="kader">
+ <cd:constant type="aan"/>
+ <cd:constant type="uit"/>
+ </cd:parameter>
+ <cd:parameter name="preset">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ <cd:parameter name="scherm">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="preview">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ <cd:parameter name="herhaal">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ <cd:parameter name="object">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ <cd:parameter name="type">
+ <cd:constant type="eps"/>
+ <cd:constant type="mps"/>
+ <cd:constant type="pdf"/>
+ <cd:constant type="tif"/>
+ <cd:constant type="png"/>
+ <cd:constant type="jpg"/>
+ <cd:constant type="mov"/>
+ <cd:constant type="cd:tex"/>
+ </cd:parameter>
+ <cd:parameter name="methode">
+ <cd:constant type="eps"/>
+ <cd:constant type="mps"/>
+ <cd:constant type="pdf"/>
+ <cd:constant type="tif"/>
+ <cd:constant type="png"/>
+ <cd:constant type="jpg"/>
+ <cd:constant type="mov"/>
+ <cd:constant type="cd:tex"/>
+ </cd:parameter>
+ <cd:parameter name="optie">
+ <cd:constant type="kader"/>
+ <cd:constant type="leeg"/>
+ <cd:constant type="test"/>
+ </cd:parameter>
+ <cd:parameter name="hokjes">
+ <cd:constant type="aan"/>
+ <cd:constant type="uit"/>
+ </cd:parameter>
+ <cd:parameter name="ymax">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="xmax">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="gebied">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="plaats">
+ <cd:constant type="lokaal"/>
+ <cd:constant type="globaal"/>
+ <cd:constant type="default"/>
+ <cd:constant type="geen"/>
+ </cd:parameter>
+ <cd:parameter name="maxbreedte">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="maxhoogte">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="conversie">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="prefix">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showexternalfigures" file="core-fig.tex">
+ <cd:sequence>
+ <cd:string value="toonexternefiguren"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:parameter name="variant">
+ <cd:constant type="a"/>
+ <cd:constant type="b"/>
+ <cd:constant type="c"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useexternalsoundtrack" file="core-fig.tex">
+ <cd:sequence>
+ <cd:string value="gebruikexterngeluidsfragment"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="name" file="syst-gen.tex">
+ <cd:sequence>
+ <cd:string value="name"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="legend" type="environment">
+ <cd:sequence>
+ <cd:string value="legend"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="twee"/>
+ </cd:keywords>
+ <cd:tex n="2" command="leg"/>
+ <cd:nothing n="3"/>
+ <cd:nothing n="4" separator="backslash"/>
+ <cd:nothing n="5" separator="backslash"/>
+ <cd:tex n="6" separator="backslash" command="leg"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fact" type="environment">
+ <cd:sequence>
+ <cd:string value="geg"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:tex n="1" command="fact"/>
+ <cd:nothing n="2"/>
+ <cd:nothing n="3" separator="backslash"/>
+ <cd:nothing n="4" separator="backslash"/>
+ <cd:tex n="5" separator="backslash" command="fact"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="rotate" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="roteer"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="stelroterenin" n="1"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuprotate" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="stelroterenin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="rotatie">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="plaats">
+ <cd:constant type="normaal"/>
+ <cd:constant type="hoog"/>
+ <cd:constant type="passend"/>
+ <cd:constant type="ruim"/>
+ <cd:constant type="diepte"/>
+ </cd:parameter>
+ <cd:inherit name="stelomlijndin" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mirror" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="spiegel"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="scale" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="schaal"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:parameter name="sx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="sy">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcombinations" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="stelcombinatiesin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="voor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="tussen">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="na">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="afstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="hoogte">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="passend"/>
+ </cd:parameter>
+ <cd:parameter name="breedte">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="passend"/>
+ </cd:parameter>
+ <cd:parameter name="plaats">
+ <cd:constant type="boven"/>
+ <cd:constant type="midden"/>
+ <cd:constant type="onder"/>
+ <cd:constant type="links"/>
+ <cd:constant type="rechts"/>
+ </cd:parameter>
+ <cd:parameter name="uitlijnen">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="letter">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="kleur">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="combination" type="environment">
+ <cd:sequence>
+ <cd:string value="combination"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:matrix"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placesidebyside" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="plaatsnaastelkaar"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placeontopofeachother" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="plaatsonderelkaar"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overlay" type="environment">
+ <cd:sequence>
+ <cd:string value="overlay"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overview" type="environment">
+ <cd:sequence>
+ <cd:string value="overview"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupinteractionscreen" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="stelinteractieschermin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:parameter name="breedte">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="passend"/>
+ <cd:constant type="max"/>
+ </cd:parameter>
+ <cd:parameter name="hoogte">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="passend"/>
+ <cd:constant type="max"/>
+ </cd:parameter>
+ <cd:parameter name="rugwit">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="kopwit">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rugoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="kopoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="optie">
+ <cd:constant type="max"/>
+ <cd:constant type="passend"/>
+ <cd:constant type="dubbelzijdig"/>
+ <cd:constant type="enkelzijdig"/>
+ <cd:constant type="auto"/>
+ <cd:constant type="geen"/>
+ <cd:constant type="bookmark"/>
+ </cd:parameter>
+ <cd:parameter name="wachttijd">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="geen"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="screen" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="scherm"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setuppagetransitions" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="stelpaginaovergangenin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="reset"/>
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupinteraction" file="core-nav.tex">
+ <cd:sequence>
+ <cd:string value="stelinteractiein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="menu">
+ <cd:constant type="aan"/>
+ <cd:constant type="uit"/>
+ </cd:parameter>
+ <cd:parameter name="pagina">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ <cd:parameter name="klik">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ <cd:parameter name="splitsen">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ <cd:parameter name="scherm">
+ <cd:constant type="nieuw"/>
+ </cd:parameter>
+ <cd:parameter name="openactie">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="sluitactie">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="openpaginaactie">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="sluitpaginaactie">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="bereken">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="strut">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ <cd:parameter name="breedte">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="hoogte">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="diepte">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="letter">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="kleur">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="contrastkleur">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="symboolset">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="titel">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="subtitel">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="auteur">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="datum">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="trefwoord">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <!-- maybe this will move elsewhere -->
+ <cd:parameter name="veldlaag">
+ <cd:constant type="auto"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupinteractionmenu" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="stelinteractiemenuin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="voor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="na">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="tussen">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="links">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="rechts">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="midden">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="geen"/>
+ <cd:constant type="lokaal"/>
+ </cd:parameter>
+ <cd:parameter name="letter">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="kleur">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="contrastkleur">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="afstand">
+ <cd:constant type="overlay"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="zelfdepagina">
+ <cd:constant type="ja"/>
+ <cd:constant type="leeg"/>
+ <cd:constant type="nee"/>
+ <cd:constant type="geen"/>
+ </cd:parameter>
+ <cd:parameter name="onbekendeverwijzing">
+ <cd:constant type="ja"/>
+ <cd:constant type="leeg"/>
+ <cd:constant type="nee"/>
+ <cd:constant type="geen"/>
+ </cd:parameter>
+ <cd:parameter name="linkeroffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rechteroffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="bovenoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="onderoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="positie">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ <cd:inherit name="stelomlijndin" n="2"/> <!-- maybe not all parameters from framed -->
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineinteractionmenu" variant="1" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="definieerinteractiemenu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive" list="yes">
<cd:constant type="links"/>
<cd:constant type="rechts"/>
- <cd:constant type="inmarge"/>
<cd:constant type="boven"/>
<cd:constant type="onder"/>
- </cd:parameter>
- <cd:parameter name="symbool">
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- <cd:constant type="..."/>
- <cd:constant type="n"/>
- <cd:constant type="a"/>
- <cd:constant type="..."/>
- <cd:constant type="cd:text"/>
- <cd:constant type="geen"/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- <cd:constant type="onbekend"/>
- </cd:parameter>
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="tussen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="uitlijnen">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="quotation" type="environment" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="citaat"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="links"/>
- <cd:constant type="midden" default="yes"/>
- <cd:constant type="rechts"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="quotation" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="citaat"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="quote" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="citeer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupquote" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="stelciterenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="kleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="plaats">
- <cd:constant type="cd:text"/>
- <cd:constant type="marge"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="adding">
- <cd:sequence>
- <cd:string value="toevoegen"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="klein"/>
- <cd:constant type="middel" default="yes"/>
- <cd:constant type="groot"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineparagraphs" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="definieeralineas"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="lijn">
- <cd:constant type="aan"/>
- <cd:constant type="uit"/>
- </cd:parameter>
- <cd:parameter name="hoogte">
- <cd:constant type="passend"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="binnen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="afstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="tolerantie">
- <cd:constant type="zeerstreng"/>
- <cd:constant type="streng"/>
- <cd:constant type="soepel"/>
- <cd:constant type="zeersoepel"/>
- <cd:constant type="rek"/>
- </cd:parameter>
- <cd:parameter name="uitlijnen">
- <cd:resolve name="align"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="paragraph" generated="yes">
- <cd:sequence>
- <cd:variable value="alinea"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="paragraph" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="alinea"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupparagraphs" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="stelalineasin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:number"/>
- <cd:constant type="elk"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoogte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="uitlijnen">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="tolerantie">
- <cd:constant type="zeerstreng"/>
- <cd:constant type="streng"/>
- <cd:constant type="soepel"/>
- <cd:constant type="zeersoepel"/>
- <cd:constant type="rek"/>
- </cd:parameter>
- <cd:parameter name="afstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="binnen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="commando">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="lijn">
- <cd:constant type="aan"/>
- <cd:constant type="uit"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptab" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="steltabin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="monster">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="kopletter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="plaats">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="stelinteractiemenuin" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineinteractionmenu" variant="2" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="definieerinteractiemenu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
<cd:constant type="links"/>
<cd:constant type="rechts"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="tab">
- <cd:sequence>
- <cd:string value="tab"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:nothing/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="document" type="environment">
- <cd:sequence>
- <cd:string value="document"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="labels">
- <cd:sequence>
- <cd:string value="labels"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definetabulate" file="core-tbl.tex">
- <cd:sequence>
- <cd:string value="definieertabulatie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="tabulate" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="tabulatie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="gebruikexternfiguur"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptabulate" file="core-tbl.tex">
- <cd:sequence>
- <cd:string value="steltabulatiein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="eenheid">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="inspringen">
- <cd:resolve name="indenting"/>
- </cd:parameter>
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="binnen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="EQ">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="lijnkleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="uitlijnen">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="lijndikte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="afstand">
- <cd:constant type="blanko"/>
- <cd:constant type="grid"/>
- <cd:constant type="diepte"/>
- <cd:constant type="cd:dimension"/>
- <cd:constant type="klein"/>
- <cd:constant type="middel"/>
- <cd:constant type="groot"/>
- <cd:constant type="geen"/>
- </cd:parameter>
- <cd:parameter name="korps">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="klein"/>
- <cd:constant type="groot"/>
- </cd:parameter>
- <cd:parameter name="lijn">
- <cd:constant type="normaal"/>
- <cd:constant type="regel"/>
- </cd:parameter>
- <cd:parameter name="splitsen">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptables" file="core-tab.tex">
- <cd:sequence>
- <cd:string value="steltabellenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="afstand">
- <cd:constant type="klein"/>
- <cd:constant type="middel"/>
- <cd:constant type="groot"/>
- </cd:parameter>
- <cd:parameter name="korps">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="klein"/>
- <cd:constant type="groot"/>
- </cd:parameter>
- <cd:parameter name="HL">
- <cd:constant type="cd:number"/>
- <cd:constant type="klein"/>
- <cd:constant type="middel"/>
- <cd:constant type="groot"/>
- <cd:constant type="geen"/>
- </cd:parameter>
- <cd:parameter name="VL">
- <cd:constant type="cd:number"/>
- <cd:constant type="klein"/>
- <cd:constant type="middel"/>
- <cd:constant type="groot"/>
- <cd:constant type="geen"/>
- </cd:parameter>
- <cd:parameter name="diepte">
- <cd:constant type="cd:number"/>
- <cd:constant type="strut"/>
- </cd:parameter>
- <cd:parameter name="hoogte">
- <cd:constant type="cd:number"/>
- <cd:constant type="strut"/>
- </cd:parameter>
- <cd:parameter name="lijndikte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="lijnkleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="uitlijnen">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="commandos">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="uitlijnen">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="achtergrond">
- <cd:constant type="raster"/>
- <cd:constant type="kleur"/>
- <cd:constant type="geen"/>
- </cd:parameter>
- <cd:parameter name="achtergrondraster">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="achtergrondkleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="korps">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="klein"/>
- <cd:constant type="groot"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="table" type="environment">
- <cd:sequence>
- <cd:string value="table"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="tables" type="environment">
- <cd:sequence>
- <cd:string value="tables"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definetabletemplate" file="core-tab.tex">
- <cd:sequence>
- <cd:string value="definieertabelvorm"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="useexternalfiles" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="gebruikexternefiles"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="korps">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="klein"/>
- <cd:constant type="groot"/>
- </cd:parameter>
- <cd:parameter name="file">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="useexternalfile" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="gebruikexternefile"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="korps">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="klein"/>
- <cd:constant type="groot"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="useexternalfigure" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="gebruikexternfiguur"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:parameter name="schaal">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="yschaal">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="yschaal">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="factor">
- <cd:constant type="max"/>
- <cd:constant type="passend"/>
- <cd:constant type="ruim"/>
- </cd:parameter>
- <cd:parameter name="bfactor">
- <cd:constant type="cd:number"/>
- <cd:constant type="max"/>
- <cd:constant type="ruim"/>
- <cd:constant type="passend"/>
- </cd:parameter>
- <cd:parameter name="hfactor">
- <cd:constant type="cd:number"/>
- <cd:constant type="max"/>
- <cd:constant type="ruim"/>
- <cd:constant type="passend"/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoogte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="kader">
- <cd:constant type="aan"/>
- <cd:constant type="uit"/>
- </cd:parameter>
- <cd:parameter name="preset">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="scherm">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="preview">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="herhaal">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="object">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="type">
- <cd:constant type="eps"/>
- <cd:constant type="mps"/>
- <cd:constant type="pdf"/>
- <cd:constant type="tif"/>
- <cd:constant type="png"/>
- <cd:constant type="jpg"/>
- <cd:constant type="mov"/>
- <cd:constant type="cd:tex"/>
- </cd:parameter>
- <cd:parameter name="methode">
- <cd:constant type="eps"/>
- <cd:constant type="mps"/>
- <cd:constant type="pdf"/>
- <cd:constant type="tif"/>
- <cd:constant type="png"/>
- <cd:constant type="jpg"/>
- <cd:constant type="mov"/>
- <cd:constant type="cd:tex"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="externalfigure" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="externfiguur"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="gebruikexternfiguur"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupexternalfigures" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="stelexternefigurenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments>
- <cd:parameter name="optie">
- <cd:constant type="kader"/>
- <cd:constant type="leeg"/>
- <cd:constant type="test"/>
- </cd:parameter>
- <cd:parameter name="object">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="hokjes">
- <cd:constant type="aan"/>
- <cd:constant type="uit"/>
- </cd:parameter>
- <cd:parameter name="ymax">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="xmax">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="gebied">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="plaats">
- <cd:constant type="lokaal"/>
- <cd:constant type="globaal"/>
- <cd:constant type="default"/>
- <cd:constant type="geen"/>
- </cd:parameter>
- <cd:parameter name="maxbreedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="maxhoogte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="conversie">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="prefix">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showexternalfigures" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="toonexternefiguren"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:parameter name="variant">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="useexternalsoundtrack" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="gebruikexterngeluidsfragment"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:file"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="name" file="syst-gen.tex">
- <cd:sequence>
- <cd:string value="name"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="legend" type="environment">
- <cd:sequence>
- <cd:string value="legend"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="twee"/>
- </cd:keywords>
- <cd:tex command="leg"/>
- <cd:nothing/>
- <cd:nothing separator="backslash"/>
- <cd:nothing separator="backslash"/>
- <cd:tex separator="backslash" command="leg"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="fact" type="environment">
- <cd:sequence>
- <cd:string value="geg"/>
- </cd:sequence>
- <cd:arguments>
- <cd:tex command="fact"/>
- <cd:nothing/>
- <cd:nothing separator="backslash"/>
- <cd:nothing separator="backslash"/>
- <cd:tex separator="backslash" command="fact"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="rotate" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="roteer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stelroterenin"/>
- </cd:assignments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuprotate" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="stelroterenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="rotatie">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="plaats">
- <cd:constant type="normaal"/>
- <cd:constant type="hoog"/>
- <cd:constant type="passend"/>
- <cd:constant type="ruim"/>
- <cd:constant type="diepte"/>
- </cd:parameter>
- <cd:inherit name="stelomlijndin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="mirror" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="spiegel"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="scale" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="schaal"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:parameter name="sx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="sy">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupcombinations" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="stelcombinatiesin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="tussen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="afstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoogte">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="passend"/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="passend"/>
- </cd:parameter>
- <cd:parameter name="plaats">
<cd:constant type="boven"/>
- <cd:constant type="midden"/>
<cd:constant type="onder"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
<cd:constant type="links"/>
<cd:constant type="rechts"/>
- </cd:parameter>
- <cd:parameter name="uitlijnen">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="kleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="combination" type="environment">
- <cd:sequence>
- <cd:string value="combination"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:matrix"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placesidebyside" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="plaatsnaastelkaar"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placeontopofeachother" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="plaatsonderelkaar"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="overlay" type="environment">
- <cd:sequence>
- <cd:string value="overlay"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="overview" type="environment">
- <cd:sequence>
- <cd:string value="overview"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupinteractionscreen" file="core-int.tex">
- <cd:sequence>
- <cd:string value="stelinteractieschermin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" list="yes">
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="passend"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="hoogte">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="passend"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="rugwit">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="kopwit">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rugoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="kopoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="optie">
- <cd:constant type="max"/>
- <cd:constant type="passend"/>
- <cd:constant type="dubbelzijdig"/>
- <cd:constant type="bookmark"/>
- </cd:parameter>
- <cd:parameter name="wachttijd">
- <cd:constant type="cd:number"/>
- <cd:constant type="geen"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="screen" file="core-int.tex">
- <cd:sequence>
- <cd:string value="scherm"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setuppagetransitions" file="core-int.tex">
- <cd:sequence>
- <cd:string value="stelpaginaovergangenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="reset"/>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupinteraction" file="core-nav.tex">
- <cd:sequence>
- <cd:string value="stelinteractiein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="menu">
- <cd:constant type="aan"/>
- <cd:constant type="uit"/>
- </cd:parameter>
- <cd:parameter name="pagina">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="klik">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="splitsen">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="scherm">
- <cd:constant type="nieuw"/>
- </cd:parameter>
- <cd:parameter name="openactie">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="sluitactie">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="openpaginaactie">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="sluitpaginaactie">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="bereken">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoogte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="diepte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="kleur">
+ <cd:constant type="boven"/>
+ <cd:constant type="onder"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="stelinteractiemenuin" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="interactionmenu" type="environment">
+ <cd:sequence>
+ <cd:string value="interactiemenu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="contrastkleur">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="disableinteractionmenu" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="blokkeerinteractiemenu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
+ <cd:constant type="links"/>
+ <cd:constant type="rechts"/>
+ <cd:constant type="boven"/>
+ <cd:constant type="onder"/>
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="symboolset">
+ </cd:keywords>
+ <cd:reference n="2" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useexternaldocument" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="gebruikexterndocument"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="titel">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="subtitel">
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="file"/>
+ </cd:keywords>
+ <cd:keywords n="3">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="auteur">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useURL" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="gebruikURL"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="datum">
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:constant type="file"/>
+ </cd:keywords>
+ <cd:keywords n="4">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="trefwoord">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="coupledocument" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="koppeldocument"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="file"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="from" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="uit"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" interactive="exclusive"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="interactionbar">
+ <cd:sequence>
+ <cd:string value="interactiebalk"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:inherit name="stelinteractiebalkin" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="interactionbuttons" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="interactiebuttons"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" optional="yes" list="yes">
+ <cd:inherit name="stelinteractiebalkin" n="1"/>
+ </cd:assignments>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupinteractionbar" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="stelinteractiebalkin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="variant">
+ <cd:constant type="a"/>
+ <cd:constant type="b"/>
+ <cd:constant type="c"/>
+ <cd:constant type="d"/>
+ <cd:constant type="e"/>
+ <cd:constant type="f"/>
+ <cd:constant type="g"/>
+ </cd:parameter>
+ <cd:parameter name="symbool">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ <cd:parameter name="breedte">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="hoogte"/>
+ <cd:constant type="passend"/>
+ </cd:parameter>
+ <cd:parameter name="hoogte">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="hoogte"/>
+ <cd:constant type="passend"/>
+ </cd:parameter>
+ <cd:parameter name="diepte">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="kleur">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="stap">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="klein"/>
+ <cd:constant type="middel"/>
+ <cd:constant type="groot"/>
+ </cd:parameter>
+ <cd:inherit name="stelomlijndin" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="synchronize" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="synchroniseer"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="synchronization" type="environment">
+ <cd:sequence>
+ <cd:string value="synchronization"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupsynchronizationbar" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="stelsynchronisatiebalkin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:parameter name="variant">
+ <cd:constant type="pagina"/>
+ <cd:constant type="lokaal"/>
+ </cd:parameter>
+ <cd:parameter name="breedte">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="hoogte"/>
+ <cd:constant type="passend"/>
+ </cd:parameter>
+ <cd:parameter name="hoogte">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="letter">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="kleur">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:inherit name="stelomlijndin" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="synchronizationbar" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="synchronisatiebalk"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="variant">
+ <cd:constant type="pagina"/>
+ <cd:constant type="lokaal"/>
+ </cd:parameter>
+ <cd:inherit name="stelsynchronisatiebalkin" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsynchronization" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="stelsynchronisatiein"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineprofile" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="definieerprofiel"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupprofiles" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="stelprofielenin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:parameter name="optie">
+ <cd:constant type="test"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="profile" type="environment">
+ <cd:sequence>
+ <cd:string value="profile"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="followprofile" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="volgprofiel"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="exclusive"/>
+ <cd:keywords n="2">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <!-- maybe this will move elsewhere -->
- <cd:parameter name="veldlaag">
- <cd:constant type="auto"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placebookmarks" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="plaatsbookmarks"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
<cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineinteractionmenu" variant="1" file="core-int.tex">
- <cd:sequence>
- <cd:string value="definieerinteractiemenu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive" list="yes">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="boven"/>
- <cd:constant type="onder"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="tussen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="links">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="rechts">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="midden">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- <cd:constant type="geen"/>
- <cd:constant type="lokaal"/>
- </cd:parameter>
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="kleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="afstand">
- <cd:constant type="overlay"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="zelfdepagina">
- <cd:constant type="ja"/>
- <cd:constant type="leeg"/>
- <cd:constant type="nee"/>
- <cd:constant type="geen"/>
- </cd:parameter>
- <cd:parameter name="onbekendeverwijzing">
- <cd:constant type="ja"/>
- <cd:constant type="leeg"/>
- <cd:constant type="nee"/>
- <cd:constant type="geen"/>
- </cd:parameter>
- <cd:parameter name="linkeroffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rechteroffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="bovenoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="onderoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="positie">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:inherit name="stelomlijndin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineinteractionmenu" variant="2" file="core-int.tex">
- <cd:sequence>
- <cd:string value="definieerinteractiemenu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="boven"/>
- <cd:constant type="onder"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="boven"/>
- <cd:constant type="onder"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stelinteractiemenuin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="interactionmenu" type="environment">
- <cd:sequence>
- <cd:string value="interactiemenu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="disableinteractionmenu" file="core-int.tex">
- <cd:sequence>
- <cd:string value="blokkeerinteractiemenu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="boven"/>
- <cd:constant type="onder"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:reference list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="useexternaldocument" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="gebruikexterndocument"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="file"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="useURL" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="gebruikURL"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="file"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="coupledocument" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="koppeldocument"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="file"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="from" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="uit"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference interactive="exclusive"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="interactionbar">
- <cd:sequence>
- <cd:string value="interactiebalk"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" list="yes">
- <cd:inherit name="stelinteractiebalkin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="interactionbuttons" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="interactiebuttons"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" optional="yes" list="yes">
- <cd:inherit name="stelinteractiebalkin"/>
- </cd:assignments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupinteractionbar" file="core-int.tex">
- <cd:sequence>
- <cd:string value="stelinteractiebalkin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="variant">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- <cd:constant type="d"/>
- <cd:constant type="e"/>
- <cd:constant type="f"/>
- <cd:constant type="g"/>
- </cd:parameter>
- <cd:parameter name="symbool">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="hoogte"/>
- <cd:constant type="passend"/>
- </cd:parameter>
- <cd:parameter name="hoogte">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="hoogte"/>
- <cd:constant type="passend"/>
- </cd:parameter>
- <cd:parameter name="diepte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="kleur">
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ <cd:constant type="alles"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="bookmark" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="bookmark"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="stap">
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="version" type="environment">
+ <cd:sequence>
+ <cd:string value="versie"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive" list="yes">
<cd:constant type="cd:number"/>
- <cd:constant type="klein"/>
- <cd:constant type="middel"/>
- <cd:constant type="groot"/>
- </cd:parameter>
- <cd:inherit name="stelomlijndin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="synchronize" file="core-int.tex">
- <cd:sequence>
- <cd:string value="synchroniseer"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="synchronization" type="environment">
- <cd:sequence>
- <cd:string value="synchronization"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupsynchronizationbar" file="core-int.tex">
- <cd:sequence>
- <cd:string value="stelsynchronisatiebalkin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" list="yes">
- <cd:parameter name="variant">
- <cd:constant type="pagina"/>
- <cd:constant type="lokaal"/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="hoogte"/>
- <cd:constant type="passend"/>
- </cd:parameter>
- <cd:parameter name="hoogte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="kleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:inherit name="stelomlijndin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="synchronizationbar" file="core-int.tex">
- <cd:sequence>
- <cd:string value="synchronisatiebalk"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="variant">
- <cd:constant type="pagina"/>
- <cd:constant type="lokaal"/>
- </cd:parameter>
- <cd:inherit name="stelsynchronisatiebalkin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupsynchronization" file="core-int.tex">
- <cd:sequence>
- <cd:string value="stelsynchronisatiein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineprofile" file="core-int.tex">
- <cd:sequence>
- <cd:string value="definieerprofiel"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupprofiles" file="core-int.tex">
- <cd:sequence>
- <cd:string value="stelprofielenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" list="yes">
- <cd:parameter name="optie">
- <cd:constant type="test"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="profile" type="environment">
- <cd:sequence>
- <cd:string value="profile"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="followprofile" file="core-int.tex">
- <cd:sequence>
- <cd:string value="volgprofiel"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content interactive="exclusive"/>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placebookmarks" file="core-int.tex">
- <cd:sequence>
- <cd:string value="plaatsbookmarks"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- <cd:constant type="alles"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="bookmark">
- <cd:sequence>
- <cd:string value="bookmark"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="version" type="environment">
- <cd:sequence>
- <cd:string value="versie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive" list="yes">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupversions" file="core-int.tex">
- <cd:sequence>
- <cd:string value="stelversiesin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="nummer">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupversions" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="stelversiesin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="nummer">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="letter">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="markversion" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="markeerversie"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="selectversion" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="selecteerversie"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="defineversion" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="definieerversie"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
<cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="markversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="markeerversie"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="selectversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="selecteerversie"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="defineversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="definieerversie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="followversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="volgversie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content interactive="exclusive"/>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="followprofileversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="volgprofielversie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content interactive="exclusive"/>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineprogram" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="definieerprogramma"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupprograms" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="stelprogrammasin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" list="yes">
- <cd:parameter name="gebied">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="followversion" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="volgversie"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="exclusive"/>
+ <cd:keywords n="2">
<cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="program" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="programma"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="figure" type="environment">
- <cd:sequence>
- <cd:string value="figure"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="factor">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="kader">
- <cd:constant type="aan"/>
- <cd:constant type="uit"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<!-- referring*figure skipped -->
-
-<!-- marking*figure skipped -->
-
-<!-- remark skipped -->
-
-<cd:command name="goto" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="naar"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content interactive="exclusive"/>
- <cd:content interactive="exclusive"/>
- <cd:reference list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="gotobox" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="naarbox"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content interactive="exclusive"/>
- <cd:reference list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="button">
- <cd:sequence>
- <cd:string value="button"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" optional="yes" list="yes">
- <cd:inherit name="stelbuttonsin"/>
- </cd:assignments>
- <cd:content/>
- <cd:reference list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupbuttons" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="stelbuttonsin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:inherit name="stelomlijndin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<!-- menubutton skipped -->
-
-<cd:command name="setupcomment" file="core-int.tex">
- <cd:sequence>
- <cd:string value="stelcommentaarin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoogte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="kleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="titel">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="followprofileversion" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="volgprofielversie"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="exclusive"/>
+ <cd:keywords n="2">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="spatie">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="symbool">
- <cd:constant type="normaal"/>
- <cd:constant type="Nieuw"/>
- <cd:constant type="Ballon"/>
- <cd:constant type="Toevoeging"/>
- <cd:constant type="Help"/>
- <cd:constant type="Paragraaf"/>
- <cd:constant type="Sleutel"/>
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="optie">
- <cd:constant type="max"/>
- <cd:constant type="buffer"/>
- </cd:parameter>
- <cd:parameter name="marge">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="afstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="comment" type="environment">
- <cd:sequence>
- <cd:string value="commentaar"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stelcommentaarin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="comment">
- <cd:sequence>
- <cd:string value="commentaar"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stelcommentaarin"/>
- </cd:assignments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definefield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="definieerveld"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definesubfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="definieersubveld"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="copyfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="copieerveld"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="clonefield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="kloonveld"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="field" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="veld"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="fitfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="passendveld"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="fillinfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="invulveld"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="tooltip" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="suggestie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="midden"/>
- </cd:keywords>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showfields" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="toonvelden"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="logfields" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="registreervelden"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="stelveldin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="label"/>
- <cd:constant type="horizontaal"/>
- <cd:constant type="vertikaal"/>
- <cd:constant type="kader"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="stelveldenin"/>
- </cd:assignments>
- <cd:assignments list="yes">
- </cd:assignments>
- <cd:assignments list="yes">
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfields" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="stelveldenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="reset"/>
- <cd:constant type="label"/>
- <cd:constant type="horizontaal"/>
- <cd:constant type="vertikaal"/>
- <cd:constant type="kader"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="afstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="tussen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="kleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="uitlijnen">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="optie">
- <cd:constant type="alleenleesbaar"/>
- <cd:constant type="verplicht"/>
- <cd:constant type="beschermd"/>
- <cd:constant type="gesorteerd"/>
- <cd:constant type="nietbeschikbaar"/>
- <cd:constant type="verborgen"/>
- <cd:constant type="printbaar"/>
- </cd:parameter>
- <cd:parameter name="klikin">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="klikuit">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="gebiedin">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="gebieduit">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="natoets">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="formatteer">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="valideer">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="bereken">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="veldoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="veldkaderkleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="veldachtergrondkleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:inherit name="omlijnd"/>
- </cd:assignments>
- <cd:assignments list="yes">
- </cd:assignments>
- <cd:assignments list="yes">
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupforms" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="stelformulierenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="methode">
- <cd:constant type="HTML"/>
- <cd:constant type="FDF"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definefieldstack" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="definieerveldstapel"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="stelveldenin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="fieldstack" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="veldstapel"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stelveldenin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="clip" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="clip"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stelclipin"/>
- </cd:assignments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupclipping" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="stelclipin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="nx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ny">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="x">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="y">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoogte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="voffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="mp">
+ </cd:keywords>
+ <cd:keywords n="3">
<cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placelegend">
- <cd:sequence>
- <cd:string value="plaatslegenda"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuplegend">
- <cd:sequence>
- <cd:string value="stellegendain"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="afstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="tussen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoogte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="plaats">
- <cd:constant type="rechts"/>
- <cd:constant type="onder"/>
- </cd:parameter>
- <cd:parameter name="korps">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="klein"/>
- <cd:constant type="groot"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definerule">
- <cd:sequence>
- <cd:string value="definieerlijn"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="stellijnin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placerule">
- <cd:sequence>
- <cd:string value="plaatslijn"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuprule">
- <cd:sequence>
- <cd:string value="stellijnin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="diepte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoogte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="voorwit">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="nawit">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="kleur">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineprogram" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="definieerprogramma"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
<cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definetextvariable">
- <cd:sequence>
- <cd:string value="definieertekstvariabele"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:inherit name="steltekstvariabelein"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptextvariable">
- <cd:sequence>
- <cd:string value="steltekstvariabelein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="links">
+ </cd:keywords>
+ <cd:keywords n="2">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="rechts">
+ </cd:keywords>
+ <cd:keywords n="3">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="afstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="commando">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="ja"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupprograms" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="stelprogrammasin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:parameter name="gebied">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="program" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="programma"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="figure" type="environment">
+ <cd:sequence>
+ <cd:string value="figure"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:parameter name="factor">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="kader">
+ <cd:constant type="aan"/>
+ <cd:constant type="uit"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <!-- referring*figure skipped -->
+
+ <!-- marking*figure skipped -->
+
+ <!-- remark skipped -->
+
+ <cd:command name="goto" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="naar"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="exclusive"/>
+ <cd:content n="2" interactive="exclusive"/>
+ <cd:reference n="3" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="gotobox" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="naarbox"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="exclusive"/>
+ <cd:reference n="2" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="button" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="button"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" optional="yes" list="yes">
+ <cd:inherit name="stelbuttonsin" n="1"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ <cd:reference n="3" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbuttons" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="stelbuttonsin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:inherit name="stelomlijndin" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <!-- menubutton skipped -->
+
+ <cd:command name="setupcomment" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="stelcommentaarin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="breedte">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="hoogte">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="kleur">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="titel">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="spatie">
+ <cd:constant type="ja"/>
+ <cd:constant type="nee"/>
+ </cd:parameter>
+ <cd:parameter name="symbool">
+ <cd:constant type="normaal"/>
+ <cd:constant type="Nieuw"/>
+ <cd:constant type="Ballon"/>
+ <cd:constant type="Toevoeging"/>
+ <cd:constant type="Help"/>
+ <cd:constant type="Paragraaf"/>
+ <cd:constant type="Sleutel"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="optie">
+ <cd:constant type="max"/>
+ <cd:constant type="buffer"/>
+ </cd:parameter>
+ <cd:parameter name="marge">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="afstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="comment" type="environment">
+ <cd:sequence>
+ <cd:string value="commentaar"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="stelcommentaarin" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="comment">
+ <cd:sequence>
+ <cd:string value="commentaar"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="stelcommentaarin" n="1"/>
+ </cd:assignments>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefield" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="definieerveld"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1"> <!-- name -->
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2"> <!-- type -->
+ <cd:constant type="tekst"/>
+ <cd:constant type="regel"/> <!-- equal to text -->
+ <cd:constant type="push"/>
+ <cd:constant type="check"/>
+ <cd:constant type="radio"/>
+ <cd:constant type="combo"/>
+ <cd:constant type="choice"/> <!-- equal to combo -->
+ <cd:constant type="popup"/> <!-- equal to combo -->
+ </cd:keywords>
+ <cd:keywords n="3"> <!-- group -->
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="4" list="yes"> <!-- optional for text? -->
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="5" optional="yes"> <!-- default -->
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definesubfield" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="definieersubveld"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="3" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="copyfield" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="copieerveld"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="clonefield" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="kloonveld"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="4" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="field" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="veld"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fitfield" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="passendveld"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fillinfield" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="invulveld"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tooltip" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="suggestie"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="links"/>
+ <cd:constant type="rechts"/>
+ <cd:constant type="midden"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showfields" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="toonvelden"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="logfields" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="registreervelden"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupfield" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="stelveldin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="label"/>
+ <cd:constant type="horizontaal"/>
+ <cd:constant type="vertikaal"/>
+ <cd:constant type="kader"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:inherit name="stelveldenin" n="2"/>
+ </cd:assignments>
+ <cd:assignments n="4" list="yes"> </cd:assignments>
+ <cd:assignments n="5" list="yes"> </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfields" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="stelveldenin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes"> <!-- TODO: if it's reset, only a single argument, no list -->
+ <cd:constant type="reset"/>
+ <cd:constant type="label"/>
+ <cd:constant type="horizontaal"/>
+ <cd:constant type="vertikaal"/>
+ <cd:constant type="kader"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="afstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="voor">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="na">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="tussen">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="kleur">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="letter">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="uitlijnen">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="optie">
+ <cd:constant type="alleenleesbaar"/>
+ <cd:constant type="verplicht"/>
+ <cd:constant type="beschermd"/>
+ <cd:constant type="gesorteerd"/>
+ <cd:constant type="nietbeschikbaar"/>
+ <cd:constant type="verborgen"/>
+ <cd:constant type="printbaar"/>
+ </cd:parameter>
+ <cd:parameter name="klikin">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="klikuit">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="gebiedin">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="gebieduit">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="natoets">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="formatteer">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="valideer">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="bereken">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="veldoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="veldkaderkleur">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="veldachtergrondkleur">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:inherit name="stelomlijndin" n="2"/>
+ </cd:assignments>
+ <cd:assignments n="3" list="yes">
+ <cd:inherit name="stelveldenin" n="2"/>
+ </cd:assignments>
+ <cd:assignments n="4" list="yes">
+ <cd:inherit name="stelveldenin" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupforms" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="stelformulierenin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="methode">
+ <cd:constant type="HTML"/>
+ <cd:constant type="FDF"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefieldstack" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="definieerveldstapel"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:inherit name="stelveldenin" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fieldstack" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="veldstapel"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="stelveldenin" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="clip" file="core-trf.tex">
+ <cd:sequence>
+ <cd:string value="clip"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="stelclipin" n="1"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupclipping" file="core-trf.tex">
+ <cd:sequence>
+ <cd:string value="stelclipin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="status">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number" default="1"/>
+ </cd:parameter>
+ <cd:parameter name="nx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ny">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="x">
+ <cd:constant type="cd:number" default="1"/>
+ </cd:parameter>
+ <cd:parameter name="y">
+ <cd:constant type="cd:number" default="1"/>
+ </cd:parameter>
+ <cd:parameter name="sx">
+ <cd:constant type="cd:number" default="1"/>
+ </cd:parameter>
+ <cd:parameter name="sy">
+ <cd:constant type="cd:number" default="1"/>
+ </cd:parameter>
+ <cd:parameter name="breedte">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="hoogte">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="hoffset">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="voffset">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="offset">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="linkeroffset">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="rechteroffset">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="bovenoffset">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="onderoffset">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="mp">
+ <cd:constant type="cd:name" default=""/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placelegend">
+ <cd:sequence>
+ <cd:string value="plaatslegenda"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplegend">
+ <cd:sequence>
+ <cd:string value="stellegendain"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="afstand">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="tussen">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="breedte">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="hoogte">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="plaats">
+ <cd:constant type="rechts"/>
+ <cd:constant type="onder"/>
+ </cd:parameter>
+ <cd:parameter name="korps">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupstrut" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="stelstrutin"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="ja" default="yes"/>
<cd:constant type="nee"/>
<cd:constant type="kap"/>
<cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="settextvariable">
- <cd:sequence>
- <cd:string value="kentekstvariabeletoe"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placetextvariable">
- <cd:sequence>
- <cd:string value="plaatstekstvariabele"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="textvariable">
- <cd:sequence>
- <cd:string value="tekstvariabele"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definerawfont">
- <cd:sequence>
- <cd:string value="definerawfont"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stelinterliniein"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="switchtorawfont">
- <cd:sequence>
- <cd:string value="switchtorawfont"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definetextposition">
- <cd:sequence>
- <cd:string value="definieertekstpositie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="stelpositionerenin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptextposition">
- <cd:sequence>
- <cd:string value="steltekstpositiein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="stelpositionerenin"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="positiontext">
- <cd:sequence>
- <cd:string value="positioneertekst"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupstrut" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="stelstrutin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="ja" default="yes"/>
- <cd:constant type="nee"/>
- <cd:constant type="kap"/>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usetypescriptfile" file="type-ini.tex">
+ <cd:sequence>
+ <cd:string value="gebruiktypescriptfile"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usetypescript" file="type-ini.tex">
+ <cd:sequence>
+ <cd:string value="gebruiktypescript"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definetypeface" file="type-ini.tex">
+ <cd:sequence>
+ <cd:string value="definetypeface"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="rm"/>
+ <cd:constant type="ss"/>
+ <cd:constant type="tt"/>
+ <cd:constant type="mm"/>
+ <cd:constant type="hw"/>
+ <cd:constant type="cg"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="4">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="5" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="6" optional="yes">
+ <cd:parameter name="features">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="rscale">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="encoding">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="tekst">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefontfeature" file="type-ini.tex">
+ <cd:sequence>
+ <cd:string value="definefontfeature"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="no">
+ <cd:parameter name="compose">
+ <cd:constant type="nee" default="yes"/>
+ <cd:constant type="ja"/>
+ </cd:parameter>
+ <cd:parameter name="mode">
+ <cd:constant type="node"/>
+ <cd:constant type="base" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="tlig">
+ <cd:constant type="nee" default="yes"/>
+ <cd:constant type="ja"/>
+ </cd:parameter>
+ <cd:parameter name="trep">
+ <cd:constant type="nee" default="yes"/>
+ <cd:constant type="ja"/>
+ </cd:parameter>
+ <cd:parameter name="script">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="language">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="..tag.."> <!-- can't use &gt; here, \showsetup gives an error -->
+ <cd:constant type="nee" default="yes"/>
+ <cd:constant type="ja"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefonthandling" file="hand-ini.mkii">
+ <cd:sequence>
+ <cd:string value="definefonthandling"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:name" list="yes"/>
+ </cd:keywords>
+ <cd:assignments n="3">
+ <cd:parameter name="type">
+ <cd:constant type="hangend" default="yes"/>
+ <cd:constant type="hz"/>
+ <cd:constant type="spatiering"/>
+ <cd:constant type="tag"/>
+ </cd:parameter>
+ <cd:parameter name="rechts">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="links">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="factor">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="min">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="max">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="stap">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfonthandling" file="hand-ini.mkii">
+ <cd:sequence>
+ <cd:string value="setupfonthandling"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2">
+ <cd:inherit name="definefonthandling" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefontsynonym" file="font-ini.tex">
+ <cd:sequence>
+ <cd:string value="definieerfontsynoniem"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes">
+ <cd:parameter name="encoding">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="features">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="handling">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="mapping">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfontsynonym" file="font-ini.tex">
+ <cd:sequence>
+ <cd:string value="setupfontsynonym"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2">
+ <cd:inherit name="definieerfontsynoniem" n="3"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mapfontsize" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="mapfontsize"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definedfont" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="definedfont"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:inherit name="definieerfont" n="2"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
</cd:interface>
-
diff --git a/Master/texmf-dist/tex/context/interface/cont-pe.xml b/Master/texmf-dist/tex/context/interface/cont-pe.xml
new file mode 100644
index 00000000000..0f320aa8ea6
--- /dev/null
+++ b/Master/texmf-dist/tex/context/interface/cont-pe.xml
@@ -0,0 +1,10239 @@
+<?xml version="1.0" encoding="UTF-8"?><!-- versions:
+
+ comment : user interface definitions of ConTeXt
+
+ authors : Hans Hagen, Taco Hoekwater, Patrick Gundlach
+
+ versions : 2004.11.17 : initial version
+ 2006.08.02 : define + resolve
+
+-->
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="pe" version="2006.08.02">
+
+ <cd:define name="align">
+ <cd:constant type="داخلی"/>
+ <cd:constant type="خارجی"/>
+ <cd:constant type="چپ"/>
+ <cd:constant type="راست"/>
+ <cd:constant type="پمپ‌چپ"/>
+ <cd:constant type="پمپ‌راست"/>
+ <cd:constant type="میان"/>
+ <cd:constant type="مرکز"/>
+ <cd:constant type="نرمال"/>
+ <cd:constant type="نه"/>
+ <cd:constant type="بله"/>
+ </cd:define>
+
+ <cd:define name="symalign">
+ <cd:constant type="چپ"/>
+ <cd:constant type="راست"/>
+ <cd:constant type="پمپ‌چپ"/>
+ <cd:constant type="پمپ‌راست"/>
+ <cd:constant type="میان"/>
+ <cd:constant type="مرکز"/>
+ </cd:define>
+
+ <cd:define name="indenting">
+ <cd:constant type="هیچگاه"/>
+ <cd:constant type="هیچکدام"/>
+ <cd:constant type="بدون"/>
+ <cd:constant type="نه"/>
+ <cd:constant type="بله"/>
+ <cd:constant type="همواره"/>
+ <cd:constant type="اولی"/>
+ <cd:constant type="بعدی"/>
+ <cd:constant type="کوچک"/>
+ <cd:constant type="متوسط"/>
+ <cd:constant type="بزرگ"/>
+ <cd:constant type="نرمال"/>
+ <cd:constant type="فرد"/>
+ <cd:constant type="زوج"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:define>
+
+ <cd:define name="indentnext">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:define>
+
+ <cd:define name="style">
+ <cd:constant type="نرمال"/>
+ <cd:constant type="مشکی"/>
+ <cd:constant type="خوابیده"/>
+ <cd:constant type="خوابیده‌مشکی"/>
+ <cd:constant type="تایپ"/>
+ <cd:constant type="cap"/>
+ <cd:constant type="small..."/>
+ <cd:constant type="cd:command"/>
+ </cd:define>
+
+ <cd:define name="language">
+ <cd:constant type="nl"/>
+ <cd:constant type="fr"/>
+ <cd:constant type="en"/>
+ <cd:constant type="uk"/>
+ <cd:constant type="de"/>
+ <cd:constant type="es"/>
+ <cd:constant type="cz"/>
+ <cd:constant type=".."/>
+ </cd:define>
+
+ <cd:define name="texts">
+ <cd:constant type="cd:text"/>
+ <cd:constant type="cd:section"/>
+ <cd:constant type="تاریخ"/>
+ <cd:constant type="cd:mark"/>
+ <cd:constant type="شماره‌صفحه"/>
+ </cd:define>
+
+ <cd:define name="layout-h">
+ <cd:constant type="متن" default="yes"/>
+ <cd:constant type="حاشیه"/>
+ <cd:constant type="لبه"/>
+ </cd:define>
+
+ <cd:define name="layout-v">
+ <cd:constant type="بالا"/>
+ <cd:constant type="سربرگ"/>
+ <cd:constant type="متن" default="yes"/>
+ <cd:constant type="ته‌برگ"/>
+ <cd:constant type="پایین"/>
+ </cd:define>
+
+ <cd:define name="bodyfont">
+ <cd:constant type="5pt"/>
+ <cd:constant type="..."/>
+ <cd:constant type="12pt"/>
+ <cd:constant type="کوچک"/>
+ <cd:constant type="بزرگ"/>
+ </cd:define>
+
+ <cd:command name="installlanguage" file="lang-ini.tex" category="language">
+ <cd:sequence>
+ <cd:string value="نصب‌زبان"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="فضاگذاری">
+ <cd:constant type="فشرده" default="yes"/>
+ <cd:constant type="گسترده"/>
+ </cd:parameter>
+ <cd:parameter name="lefthyphenmin">
+ <cd:constant type="cd:number" default="2"/>
+ </cd:parameter>
+ <cd:parameter name="righthyphenmin">
+ <cd:constant type="cd:number" default="2"/>
+ </cd:parameter>
+ <cd:parameter name="وضعیت">
+ <cd:constant type="شروع"/>
+ <cd:constant type="پایان"/>
+ </cd:parameter>
+ <cd:parameter name="جمله‌چپ">
+ <cd:constant type="cd:command" default="---"/>
+ </cd:parameter>
+ <cd:parameter name="جمله‌راست">
+ <cd:constant type="cd:command" default="---"/>
+ </cd:parameter>
+ <cd:parameter name="زیرجمله‌چپ">
+ <cd:constant type="cd:command" default="---"/>
+ </cd:parameter>
+ <cd:parameter name="زیرجمله‌راست">
+ <cd:constant type="cd:command" default="---"/>
+ </cd:parameter>
+ <cd:parameter name="نقل‌چپ">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="نقل‌راست">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="نقل‌قول‌چپ">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="نقل‌قول‌راست">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="سخنرانی‌چپ">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="سخنرانی‌میانی">
+ <cd:constant type="cd:command" default=""/>
+ </cd:parameter>
+ <cd:parameter name="سخنرانی‌راست">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="مرزمتن">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="تاریخ">
+ <cd:constant type="cd:text"/> <!-- TODO -->
+ </cd:parameter>
+ <cd:parameter name="compoundhyphen">
+ <cd:constant type="cd:command" default="\compoundhyphen"/>
+ </cd:parameter>
+ <cd:parameter name="leftcompoundhyphen">
+ <cd:constant type="cd:command" default="\compoundhyphen"/>
+ </cd:parameter>
+ <cd:parameter name="rightcompoundhyphen">
+ <cd:constant type="cd:command" default=""/>
+ </cd:parameter>
+ <cd:parameter name="پیش‌فرض">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplanguage" file="lang-ini.tex" category="language">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌زبان"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:resolve name="language"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="نصب‌زبان" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="language" file="lang-ini.tex" category="language">
+ <cd:sequence>
+ <cd:string value="زبان"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:resolve name="language"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mainlanguage" file="lang-ini.tex" category="language">
+ <cd:sequence>
+ <cd:string value="زبان‌اصلی"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:resolve name="language"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="translate" file="lang-lab.tex" category="language">
+ <cd:sequence>
+ <cd:string value="ترجمه"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="cd:name">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useencoding" file="enco-ini.tex" category="encoding"> <!-- engine="pdftex" -->
+ <cd:sequence>
+ <cd:string value="استفاده‌رمزینه"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usespecials" file="spec-ini.tex">
+ <cd:sequence>
+ <cd:string value="استفاده‌ویژگیها"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="بازنشانی"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineoutput" file="spec-ini.tex">
+ <cd:sequence>
+ <cd:string value="تعریف‌خروجی"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupoutput" file="spec-ini.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌خروجی"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definebodyfontenvironment" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="تعریف‌محیط‌قلم‌بدنه"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes"> <!-- it's possible to use 1+2+3, 2+3, what about 1+2? -->
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="no"> <!-- have to force no, otherwise \showsetup is wrong ! -->
+ <cd:constant type="5pt"/> <!-- TODO: maybe <cd:resolve name="bodyfont"/> -->
+ <cd:constant type="..."/>
+ <cd:constant type="12pt"/>
+ <cd:constant type="پیش‌فرض"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:parameter name="متن">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="script">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="scriptscript">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="x">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="xx">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="a">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="b">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="c">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="d">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="کوچک">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="بزرگ">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="فضای‌بین‌خط">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="em">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbodyfontenvironment" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌محیط‌قلم‌متن"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes"> <!-- same as definebodyfontenvironment; you can define the whole commant to inherit, not only parameters-->
+ <cd:inherit name="تعریف‌محیط‌قلم‌بدنه" n="1"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="no">
+ <cd:inherit name="تعریف‌محیط‌قلم‌بدنه" n="2" optional="no"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="تعریف‌محیط‌قلم‌بدنه" n="3"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showbodyfontenvironment" file="font-run.tex" category="fonts"> <!-- and debug -->
+ <cd:sequence>
+ <cd:string value="نمایش‌محیط‌قلم‌بدنه"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:inherit name="بارگذاری‌قلم‌متن" n="1"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definebodyfont" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="تعریف‌قلم‌متن"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes"> <!-- <cd:constant type="پیش‌فرض"/> -->
+ <cd:resolve name="bodyfont"/> <!-- TODO: check this -->
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="rm" default="yes"/>
+ <cd:constant type="ss"/>
+ <cd:constant type="tt"/>
+ <cd:constant type="hw"/>
+ <cd:constant type="cg"/>
+ <cd:constant type="mm"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:parameter name="tf">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="bf">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="sl">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="it">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="bs">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="bi">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="sc">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="mr">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="ex">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="mi">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="sy">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="ma">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="mb">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="mc">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="md">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definebodyfontDEF" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="تعریف‌قلم‌متن"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:inherit name="بارگذاری‌قلم‌متن" n="2"/>
+ </cd:keywords>
+ <cd:keywords n="1">
+ <cd:inherit name="بارگذاری‌قلم‌متن" n="3"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definebodyfontREF" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="تعریف‌قلم‌متن"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:inherit name="بارگذاری‌قلم‌متن" n="1"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:inherit name="بارگذاری‌قلم‌متن" n="2"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+
+ <cd:command name="showbodyfont" file="font-run.tex" category="fonts"> <!-- visual debugging -->
+ <cd:sequence>
+ <cd:string value="نمایش‌قلم‌بدنه"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:inherit name="بارگذاری‌قلم‌متن" n="1"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbodyfont" file="font-run.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌قلم‌متن"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes"> <!-- TODO: many missing, maybe also <cd:resolve name="bodyfont"/> -->
+ <cd:constant type="cd:name"/>
+ <cd:constant type="سریف"/>
+ <cd:constant type="منظم"/>
+ <cd:constant type="رومن"/>
+ <cd:constant type="سانز"/>
+ <cd:constant type="حمایت"/>
+ <cd:constant type="سانزسریف"/>
+ <cd:constant type="مونو"/>
+ <cd:constant type="تایپ"/>
+ <cd:constant type="دورنگاره"/>
+ <cd:constant type="دست‌نوشته"/>
+ <cd:constant type="خوشنویسی"/>
+ <cd:constant type="5pt"/>
+ <cd:constant type="..."/>
+ <cd:constant type="12pt"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="switchtobodyfont" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="تغییربه‌قلم‌بدنه"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ <cd:constant type="سریف"/>
+ <cd:constant type="منظم"/>
+ <cd:constant type="رومن"/>
+ <cd:constant type="سانز"/>
+ <cd:constant type="حمایت"/>
+ <cd:constant type="سانزسریف"/>
+ <cd:constant type="مونو"/>
+ <cd:constant type="تایپ"/>
+ <cd:constant type="دورنگاره"/>
+ <cd:constant type="دست‌نوشته"/>
+ <cd:constant type="خوشنویسی"/>
+ <cd:constant type="5pt"/>
+ <cd:constant type="..."/>
+ <cd:constant type="12pt"/>
+ <cd:constant type="کوچک"/>
+ <cd:constant type="بزرگ"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefont" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="تعریف‌قلم"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcolor" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌رنگ"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcolors" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌رنگها"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="وضعیت">
+ <cd:constant type="شروع"/>
+ <cd:constant type="پایان"/>
+ <cd:constant type="سراسری"/>
+ <cd:constant type="موضعی"/>
+ </cd:parameter>
+ <cd:parameter name="تبدیل">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ <cd:constant type="همواره"/>
+ </cd:parameter>
+ <cd:parameter name="کاهش">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ <cd:parameter name="rgb">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ <cd:parameter name="cmyk">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ <cd:parameter name="mpcmyk">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ <cd:parameter name="mpspot">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ <cd:parameter name="عامل">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ <cd:parameter name="رنگ‌متن">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="شکافتن">
+ <cd:constant type="c"/>
+ <cd:constant type="m"/>
+ <cd:constant type="y"/>
+ <cd:constant type="k"/>
+ <cd:constant type="p"/>
+ <cd:constant type="s"/>
+ <cd:constant type="نه"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="criterium">
+ <cd:constant type="همه"/>
+ <cd:constant type="هیچکدام"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definecolor" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="تعریف‌رنگ"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="r">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="g">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="b">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="c">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="m">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="y">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="k">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="s">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="h">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="t">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="a">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="p">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="e">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="color" type="environment" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="رنگ"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="color" file="colo-ini.tex">
+ <cd:sequence>
+ <cd:string value="رنگ"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="graycolor" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="رنگ‌خاکستری"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showcolor" file="colo-run.tex" category="colors"> <!-- and debug -->
+ <cd:sequence>
+ <cd:string value="نمایش‌رنگ"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definepalet" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="تعریف‌لوح"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="cd:name">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppalet" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌لوح"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definecolorgroup" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="تعریف‌گروه‌رنگ"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="rgb" default="yes"/>
+ <cd:constant type="cmyk"/>
+ <cd:constant type="خاکستری"/>
+ <cd:constant type="s"/>
+ </cd:keywords>
+ <cd:triplet n="3" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showpalet" file="colo-run.tex" category="colors"> <!-- and debug -->
+ <cd:sequence>
+ <cd:string value="نمایش‌لوح"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="افقی"/>
+ <cd:constant type="عمودی"/>
+ <cd:constant type="نام"/>
+ <cd:constant type="مقدار"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showcolorgroup" file="colo-run.tex" category="colors"> <!-- and debug-->
+ <cd:sequence>
+ <cd:string value="نمایش‌گروه‌رنگ"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="افقی"/>
+ <cd:constant type="عمودی"/>
+ <cd:constant type="نام"/>
+ <cd:constant type="مقدار"/>
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="comparepalet" file="colo-run.tex" category="colors"> <!-- and debug? -->
+ <cd:sequence>
+ <cd:string value="لوح‌مقایسه"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="comparecolorgroup" file="colo-run.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="مقایسه‌گروه‌رنگ"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showmakeup" file="supp-vis.tex" category="debug">
+ <cd:sequence>
+ <cd:string value="نمایش‌آرایش"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="definetype" file="core-ver.tex" category="verbatim">
+ <cd:sequence>
+ <cd:string value="تعریف‌تایپ"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="بارگذاری‌تایپ" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptype" file="core-ver.tex" category="verbatim"> <!-- TODO -->
+ <cd:sequence>
+ <cd:string value="بارگذاری‌تایپ"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="فضا">
+ <cd:constant type="روی"/>
+ <cd:constant type="خاموش" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="گزینه">
+ <cd:constant type="خوابیده"/>
+ <cd:constant type="نرمال"/>
+ <cd:constant type="هیچکدام"/>
+ </cd:parameter>
+ <cd:parameter name="سبک">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="رنگ">
+ <cd:constant type="cd:name" default=""/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="type" file="verb-ini.tex" category="verbatim">
+ <cd:sequence>
+ <cd:string value="تایپ"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="typ" file="core-ver.tex" category="verbatim">
+ <cd:sequence>
+ <cd:string value="typ"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tex" file="core-ver.tex" category="verbatim">
+ <cd:sequence>
+ <cd:string value="تک"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <!-- cd:command name="arg" file="core-ver.tex"> command broken
+ <cd:sequence>
+ <cd:string value="افزودن"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+</cd:command -->
+
+ <cd:command name="definetyping" file="core-ver.tex" category="verbatim">
+ <cd:sequence>
+ <cd:string value="تعریف‌تایپ‌کردن"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:inherit name="بارگذاری‌تایپ‌کردن" n="1"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="بارگذاری‌تایپ‌کردن" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptyping" file="core-ver.tex" category="verbatim">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌تایپ‌کردن"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="پرونده"/>
+ <cd:constant type="تایپ‌کردن"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="فضا">
+ <cd:constant type="روی"/>
+ <cd:constant type="خاموش"/>
+ </cd:parameter>
+ <cd:parameter name="صفحه">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ <cd:parameter name="گزینه">
+ <cd:constant type="خوابیده"/>
+ <cd:constant type="نرمال"/>
+ <cd:constant type="فرمانها"/>
+ <cd:constant type="رنگ"/>
+ <cd:constant type="هیچکدام"/>
+ </cd:parameter>
+ <cd:parameter name="متن">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ <cd:parameter name="icommand">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="vcommand">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="فرمان">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="قبل‌از">
+ <cd:constant type="cd:command" default="\blank"/>
+ </cd:parameter>
+ <cd:parameter name="بعداز">
+ <cd:constant type="cd:command" default="\blank"/>
+ </cd:parameter>
+ <cd:parameter name="حاشیه">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="استاندارد"/>
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ <cd:parameter name="حاشیه‌زوج">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="حاشیه‌فرد">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="خالی">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="کوچک"/>
+ <cd:constant type="متوسط"/>
+ <cd:constant type="بزرگ"/>
+ <cd:constant type="استاندارد"/>
+ <cd:constant type="نیم‌خط"/>
+ <cd:constant type="خط"/>
+ </cd:parameter>
+ <cd:parameter name="فرار">
+ <cd:constant type="cd:character"/>
+ </cd:parameter>
+ <cd:parameter name="فضا">
+ <cd:constant type="روی"/>
+ <cd:constant type="خاموش"/>
+ </cd:parameter>
+ <cd:parameter name="تب">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ <cd:parameter name="صفحه">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ <cd:parameter name="متن‌تورفته">
+ <cd:resolve name="indentnext"/>
+ </cd:parameter>
+ <cd:parameter name="سبک">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="رنگ">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="لوح">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="خطها">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ <cd:constant type="شکسته"/>
+ </cd:parameter>
+ <cd:parameter name="تهی">
+ <cd:constant type="بله"/>
+ <cd:constant type="همه"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ <cd:parameter name="شماره‌گذاری">
+ <cd:constant type="خط"/>
+ <cd:constant type="پرونده"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ <cd:parameter name="قلم‌بدنه">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="typing" type="environment" generated="yes" file="verb-ini.tex"
+ category="verbatim">
+ <cd:sequence>
+ <cd:variable value="تایپ‌کردن"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="typefile" file="verb-ini.tex" category="verbatim">
+ <cd:sequence>
+ <cd:string value="تایپ‌پرونده"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfootnotes" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌پانوشتها"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="تبدیل">
+ <cd:constant type="شماره‌ها"/>
+ <cd:constant type="حرفها"/>
+ <cd:constant type="Characters"/>
+ <cd:constant type="شماره‌لاتین"/>
+ <cd:constant type="اعداد‌بزرگ‌لاتین"/>
+ </cd:parameter>
+ <cd:parameter name="راه">
+ <cd:constant type="bytext"/>
+ <cd:constant type="bycd:section"/>
+ </cd:parameter>
+ <cd:parameter name="مکان">
+ <cd:constant type="صفحه"/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="ستونها"/>
+ <cd:constant type="ستون‌اول"/>
+ <cd:constant type="آخرین‌ستون"/>
+ <cd:constant type="بلند"/>
+ <cd:constant type="هیچکدام"/>
+ </cd:parameter>
+ <cd:parameter name="خط">
+ <cd:constant type="روی"/>
+ <cd:constant type="خاموش"/>
+ </cd:parameter>
+ <cd:parameter name="قبل‌از">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="بعداز">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="عرض">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="ارتفاع">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="قلم‌بدنه">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ <cd:parameter name="سبک">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="فاصله">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="فاصله‌ستون">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="فاصله‌حاشیه">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="فرمان‌شماره">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="فرمان‌متن">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="شکافتن">
+ <cd:constant type="بردبار"/>
+ <cd:constant type="اکید"/>
+ <cd:constant type="خیلی‌سختگیر"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="سبک‌متن">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="رنگ‌متن">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="پانل">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ <cd:parameter name="عامل">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:inherit name="بارگذاری‌قالبی" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfootnotedefinition" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌تعریف‌پانوشت"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:inherit name="بارگذاری‌شرح" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="footnote" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="پانوشت"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="footnotetext" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="متن‌پانوشت"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="note" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="یادداشت"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" interactive="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="localfootnotes" type="environment" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="localfootnotes"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="placelocalfootnotes" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="درج‌پانوشتهای‌موضعی"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="بارگذاری‌پانوشتها" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placefootnotes" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="درج‌پانوشتها"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="بارگذاری‌پانوشتها" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupunderbar" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌میله‌زیر"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="جایگزین">
+ <cd:constant type="a"/>
+ <cd:constant type="b"/>
+ <cd:constant type="c"/>
+ </cd:parameter>
+ <cd:parameter name="ضخامت‌خط">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="آفست‌پایین">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="آفست‌بالا">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="رنگ‌خط">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="underbar" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="میله‌زیر"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="underbars" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="میله‌‌های‌زیر"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overbar" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="میله‌رو"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overbars" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="میله‌ها‌رو"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overstrike" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="خط‌زدن"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overstrikes" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="خط‌زدنها"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="romannumerals" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="اعدادلاتین"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Romannumerals" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="Romannumerals"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="numbers" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="شماره‌ها"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="character" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="حرف"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Character" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="Character"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="characters" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="حرفها"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Characters" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="Characters"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mediaeval" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="mediaeval"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="month" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="ماه"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MONTH" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="MONTH"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="weekday" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="روزهفته"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="WEEKDAY" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="WEEKDAY"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcapitals" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="setupcapitals"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="عنوان">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ <cd:parameter name="sc">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="cap" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="cap"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nocap" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="nocap"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="CAP" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="CAP"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Cap" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="Cap"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Caps" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="Caps"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="WORD" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="WORD"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="WORDS" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="WORDS"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Word" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="Word"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Words" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="Words"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="stretched" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="کشیده"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definesymbol" file="symb-ini.tex">
+ <cd:sequence>
+ <cd:string value="تعریف‌نماد"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefiguresymbol" file="symb-ini.tex">
+ <cd:sequence>
+ <cd:string value="تعریف‌نمادشکل"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="بارگذاری‌شکلهای‌خارجی" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="symbol" file="symb-ini.tex">
+ <cd:sequence>
+ <cd:string value="نماد"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="symbolset" type="environment" file="symb-ini.tex" category="symbols">
+ <cd:sequence>
+ <cd:string value="symbolset"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsymbolset" file="symb-ini.tex" category="symbols">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌مجموعه‌نماد"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usesymbols" file="symb-ini.tex" category="symbols">
+ <cd:sequence>
+ <cd:string value="استفاده‌نمادها"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showsymbolset" file="symb-run.tex" category="symbols"> <!-- and symbols -->
+ <cd:sequence>
+ <cd:string value="نمایش‌مجموعه‌علامت"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineconversion" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="تعریف‌تبدیل"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:command"/>
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="convertnumber" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="شماره‌مبدل"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupheadtext" file="lang-lab.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌متن‌سر"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:resolve name="language"/>
+ </cd:keywords>
+ <cd:assignments n="2">
+ <cd:parameter name="cd:name">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplabeltext" file="lang-lab.tex">
+ <cd:sequence>
+ <cd:string value="باگذاری‌متن‌برچسب"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:resolve name="language"/>
+ </cd:keywords>
+ <cd:assignments n="2">
+ <cd:parameter name="cd:name">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="headtext" file="lang-lab.tex">
+ <cd:sequence>
+ <cd:string value="متن‌سر"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="labeltext" file="lang-lab.tex">
+ <cd:sequence>
+ <cd:string value="متن‌برچسب"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupmarginrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌خطهای‌حاشیه"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1">
+ <cd:parameter name="مرحله">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ضخامت‌خط">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="marginrule" type="environment" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="خط‌حاشیه"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="marginrule" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="خط‌حاشیه"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplinewidth" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌عرض‌خط"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupframed" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌قالبی"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/> <!-- defines a command with that name -->
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="ارتفاع">
+ <cd:constant type="پرکردن"/>
+ <cd:constant type="گسترده"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="عرض">
+ <cd:constant type="پرکردن"/>
+ <cd:constant type="گسترده"/>
+ <cd:constant type="ثابت"/>
+ <cd:constant type="موضعی"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="عرض‌خودکار">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ <cd:constant type="اجبار"/>
+ </cd:parameter>
+ <cd:parameter name="آفست">
+ <cd:constant type="هیچکدام"/>
+ <cd:constant type="پوشش"/>
+ <cd:constant type="پیش‌فرض"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="مکان">
+ <cd:constant type="عمق"/>
+ <cd:constant type="آویزان"/>
+ <cd:constant type="بلند"/>
+ <cd:constant type="پابا"/>
+ <cd:constant type="پایین"/>
+ <cd:constant type="بالا"/>
+ <cd:constant type="میان"/>
+ <cd:constant type="پایین"/>
+ <cd:constant type="نگهدار"/>
+ </cd:parameter>
+ <cd:parameter name="گزینه">
+ <cd:constant type="هیچکدام"/>
+ <cd:constant type="تهی"/>
+ </cd:parameter>
+ <cd:parameter name="بست">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ <cd:constant type="سراسری"/>
+ <cd:constant type="موضعی"/>
+ </cd:parameter>
+ <cd:parameter name="تنظیم">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="پایین">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="بالا">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="قالب">
+ <cd:constant type="روی"/>
+ <cd:constant type="خاموش"/>
+ <cd:constant type="هیچکدام"/>
+ <cd:constant type="پوشش"/>
+ </cd:parameter>
+ <cd:parameter name="قالب‌راست">
+ <cd:constant type="روی"/>
+ <cd:constant type="خاموش"/>
+ </cd:parameter>
+ <cd:parameter name="قالب‌پایین">
+ <cd:constant type="روی"/>
+ <cd:constant type="خاموش"/>
+ </cd:parameter>
+ <cd:parameter name="قالب‌چپ">
+ <cd:constant type="روی"/>
+ <cd:constant type="خاموش"/>
+ </cd:parameter>
+ <cd:parameter name="قالب‌راست">
+ <cd:constant type="روی"/>
+ <cd:constant type="خاموش"/>
+ </cd:parameter>
+ <cd:parameter name="آفست‌قالب">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="عمق‌قالب">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="گوشه‌قالب">
+ <cd:constant type="گرد"/>
+ <cd:constant type="چهارگوشه"/>
+ </cd:parameter>
+ <cd:parameter name="شعاع‌قالب">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="رنگ‌قالب">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="پس‌زمینه">
+ <cd:constant type="پرده"/>
+ <cd:constant type="رنگ"/>
+ <cd:constant type="هیچکدام"/>
+ <cd:constant type="پیش‌زمینه"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="پرده‌پس‌زمینه">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="رنگ‌پس‌زمینه">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="آفست‌پس‌زمینه">
+ <cd:constant type="قالب"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="عمق‌پس‌زمینه">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="گوشه‌پس‌زمینه">
+ <cd:constant type="گرد"/>
+ <cd:constant type="چهارگوشه"/>
+ </cd:parameter>
+ <cd:parameter name="شعاع‌پس‌زمینه">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="عمق">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="گوشه">
+ <cd:constant type="گرد"/>
+ <cd:constant type="چهارگوشه"/>
+ </cd:parameter>
+ <cd:parameter name="شعاع">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="تهی">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ <cd:parameter name="رنگ‌پیش‌زمینه">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="سبک‌پیش‌زمینه">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="ضخامت‌خط">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="framed" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="قالبی"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="بارگذاری‌قالبی" n="2"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inframed" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="درقالبی"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="بارگذاری‌قالبی" n="2"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="thinrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="خطهای‌نازک"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes">
+ <cd:inherit name="بارگذاری‌خطها‌ی‌نازک" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupthinrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌خطها‌ی‌نازک"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1">
+ <cd:parameter name="فضای‌بین‌خط">
+ <cd:constant type="کوچک"/>
+ <cd:constant type="متوسط"/>
+ <cd:constant type="بزرگ"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="قبل‌از">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="دربین">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="بعداز">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="رنگ">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="رنگ‌پس‌زمینه">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="ارتفاع">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="بیشترین"/>
+ </cd:parameter>
+ <cd:parameter name="عمق">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="بیشترین"/>
+ </cd:parameter>
+ <cd:parameter name="جایگزین">
+ <cd:constant type="a"/>
+ <cd:constant type="b"/>
+ <cd:constant type="c"/>
+ <cd:constant type="d"/>
+ </cd:parameter>
+ <cd:parameter name="ضخامت‌خط">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="رنگ">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="پس‌زمینه">
+ <cd:constant type="رنگ"/>
+ </cd:parameter>
+ <cd:parameter name="رنگ‌پس‌زمینه">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="hairline" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="خط‌مو"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="thinrule" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="خط‌نازک"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="defineframedtext" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="تعریف‌متن‌قالبی"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="بارگذاری‌متن‌قالبی" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineframed" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="تعریف‌قالبی"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="بارگذاری‌متن‌قالبی" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupframedtexts" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌متن‌قالبی"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="قلم‌بدنه">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ <cd:parameter name="سبک">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="چپ">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="راست">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="قبل‌از">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="بعداز">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="داخلی">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="تصحیح‌خط">
+ <cd:constant type="روی"/>
+ <cd:constant type="خاموش"/>
+ </cd:parameter>
+ <cd:parameter name="تصحیح‌عمق">
+ <cd:constant type="روی"/>
+ <cd:constant type="خاموش"/>
+ </cd:parameter>
+ <cd:parameter name="حاشیه">
+ <cd:constant type="استاندارد"/>
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ <cd:parameter name="مکان">
+ <cd:constant type="چپ"/>
+ <cd:constant type="راست"/>
+ <cd:constant type="میان"/>
+ <cd:constant type="هیچکدام"/>
+ </cd:parameter>
+ <cd:parameter name="تورفتگی">
+ <cd:resolve name="indenting"/>
+ </cd:parameter>
+ <cd:inherit name="بارگذاری‌قالبی" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="framedtext" type="environment" generated="yes" file="core-rul.tex">
+ <cd:sequence>
+ <cd:variable value="متن‌قالبی"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="چپ"/>
+ <cd:constant type="راست"/>
+ <cd:constant type="میان"/>
+ <cd:constant type="هیچکدام"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="بارگذاری‌متن‌قالبی" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="framedtext" generated="yes" file="core-rul.tex">
+ <cd:sequence>
+ <cd:variable value="متن‌قالبی"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="بارگذاری‌متن‌قالبی" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="background" type="environment" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="پس‌زمینه"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="background" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="پس‌زمینه"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbackground" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌پس‌زمینه"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="آفست‌چپ">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="آفست‌راست">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="آفست‌بالا">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="آفست‌پایین">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="قبل‌از">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="بعداز">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="وضعیت">
+ <cd:constant type="شروع"/>
+ <cd:constant type="پایان"/>
+ </cd:parameter>
+ <cd:inherit name="بارگذاری‌قالبی" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fillinrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="درج‌درخطها"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="بارگذاری‌درج‌درخطها" n="1"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ <cd:content n="3" optional="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fillintext" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="درج‌درمتن"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="بارگذاری‌درج‌درخطها" n="1"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ <cd:content n="3" optional="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfillinrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌درج‌درخطها"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="عرض">
+ <cd:constant type="پرکردن"/>
+ <cd:constant type="گسترده"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="فاصله">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="قبل‌از">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="بعداز">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="سبک">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="فضای‌بین‌خط">
+ <cd:constant type="کوچک"/>
+ <cd:constant type="متوسط"/>
+ <cd:constant type="بزرگ"/>
+ </cd:parameter>
+ <cd:parameter name="جداکننده">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fillinline" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="درج‌درخط"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="بارگذاری‌پرکردن‌خطها" n="1"/>
+ </cd:assignments>
+ <cd:nothing n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfillinlines" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌پرکردن‌خطها"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="عرض">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="حاشیه">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="فاصله">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="قبل‌از">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="بعداز">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptextrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌خطهای‌متن"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="مکان">
+ <cd:constant type="چپ"/>
+ <cd:constant type="درون‌حاشیه"/>
+ </cd:parameter>
+ <cd:parameter name="قبل‌از">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="بعداز">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="دربین">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="عرض">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="فاصله">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="قلم‌بدنه">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ <cd:parameter name="رنگ">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="سبک">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="رنگ‌خط">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="textrule" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="خط‌متن"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="بالا"/>
+ <cd:constant type="پایین"/>
+ </cd:keywords>
+ <cd:content n="2" optional="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="textrule" type="environment" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="خط‌متن"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="بالا"/>
+ <cd:constant type="پایین"/>
+ </cd:keywords>
+ <cd:content n="2" optional="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="blackrule" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="خط‌سیاه"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="بارگذاری‌خطهای‌سیاه" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="blackrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="خطهای‌سیاه"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:inherit name="بارگذاری‌خطهای‌سیاه" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupblackrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌خطهای‌سیاه"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="عرض">
+ <cd:constant type="cd:dimension" default="1em"/>
+ <cd:constant type="بیشترین"/>
+ </cd:parameter>
+ <cd:parameter name="ارتفاع">
+ <cd:constant type="cd:dimension" default="1ex"/>
+ <cd:constant type="بیشترین"/>
+ </cd:parameter>
+ <cd:parameter name="عمق">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="بیشترین"/>
+ </cd:parameter>
+ <cd:parameter name="جایگزین">
+ <cd:constant type="a" default="yes"/>
+ <cd:constant type="b"/>
+ </cd:parameter>
+ <cd:parameter name="فاصله">
+ <cd:constant type="cd:dimension" default=".25ex"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number" default="3"/>
+ </cd:parameter>
+ <cd:parameter name="رنگ">
+ <cd:constant type="cd:name" default=""/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineoverlay" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="تعریف‌پوشش"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:command"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usemodule" file="core-fil.tex"> <!-- TODO -->
+ <cd:sequence>
+ <cd:string value="استفاده‌مدول"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="reset" file="core-num.tex">
+ <cd:sequence>
+ <cd:string value="بازنشانی"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <!-- <cd:command name="donttest">
+ <cd:sequence>
+ <cd:string value="امتحان‌نکن"/>
+ </cd:sequence>
+</cd:command> -->
+
+ <cd:command name="localenvironment" type="environment" file="core-job.tex">
+ <cd:sequence>
+ <cd:string value="localenvironment"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupsystem" file="core-sys.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌سیستم"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="کیفیت">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="پرونده">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="پوشه">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="تصادفی">
+ <cd:constant type="نرمال"/>
+ <cd:constant type="کوچک"/>
+ <cd:constant type="متوسط"/>
+ <cd:constant type="بزرگ"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usedirectory" file="core-job.mkii"> <!-- usepath, todo: more than one file -->
+ <cd:sequence>
+ <cd:string value="usedirectory"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ <cd:constant type="بازنشانی"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="low" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="پایین"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="high" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="بلند"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="lohi" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="پابا"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="پایین"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showframe" file="page-run.tex">
+ <cd:sequence>
+ <cd:string value="نمایش‌قالب"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:text"/>
+ <cd:constant type="حاشیه"/>
+ <cd:constant type="لبه"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="leftaligned" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="چپ‌چین"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="rightaligned" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="تنظیم‌راست"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="midaligned" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="تنظیم‌وسط"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="wordright" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="کلمه‌راست"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inmargin" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="درحاشیه"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="پایین"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inothermargin" file="page-mar.tex">
+ <cd:sequence>
+ <cd:string value="درحاشیه‌دیگر"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="پایین"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inleft" file="page-mar.tex">
+ <cd:sequence>
+ <cd:string value="درچپ"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="پایین"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inright" file="page-mar.tex">
+ <cd:sequence>
+ <cd:string value="درراست"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="پایین"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ininner" file="page-mar.tex">
+ <cd:sequence>
+ <cd:string value="درداخلی"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="پایین"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inouter" file="page-mar.tex">
+ <cd:sequence>
+ <cd:string value="درخارجی"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="پایین"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="column" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="ستون"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="showstruts" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="نمایش‌بستها"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="showsetups" file="page-run.tex">
+ <cd:sequence>
+ <cd:string value="نمایش‌بارگذاریها"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="showlayout" file="page-run.tex">
+ <cd:sequence>
+ <cd:string value="نمایش‌طرح‌بندی"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="margintext" file="page-mar.tex">
+ <cd:sequence>
+ <cd:string value="متن‌حاشیه"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="پایین"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupmarginblocks" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌بلوکهای‌حاشیه"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="مکان">
+ <cd:constant type="درون‌حاشیه"/>
+ <cd:constant type="چپ"/>
+ <cd:constant type="میان"/>
+ <cd:constant type="راست"/>
+ </cd:parameter>
+ <cd:parameter name="سبک">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="عرض">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="تنظیم">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="بالا">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="دربین">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="پایین">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="چپ">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="راست">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="قبل‌از">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="بعداز">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="marginblock" type="environment" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="marginblock"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="part" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="part"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="title" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="title"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="chapter" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="chapter"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="section" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="section"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subsection" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="subsection"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subsubsection" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="subsubsection"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subject" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="subject"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subsubject" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="subsubject"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subsubsubject" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="subsubsubject"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="appendix" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="appendix"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="in" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="درون"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="yes"/>
+ <cd:content n="2" interactive="yes"/>
+ <cd:reference n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="at" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="در"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="yes"/>
+ <cd:content n="2" interactive="yes"/>
+ <cd:reference n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="about" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="درمورد"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="yes"/>
+ <cd:reference n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="somewhere" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="یک‌جا"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ <cd:reference n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="atpage" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="درصفحه"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ref" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="رج"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="t"/>
+ <cd:constant type="p"/>
+ <cd:constant type="r"/>
+ <cd:constant type="s"/>
+ <cd:constant type="e"/>
+ </cd:keywords>
+ <cd:reference n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="textreference" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="مرجع‌متن"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="pagereference" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="مرجع‌صفحه"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="reference" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="مرجع"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usereferences" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="استفاده‌مرجعها"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definereference" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="تعریف‌مرجع"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:reference n="2" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definereferenceformat" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="تعریف‌شمایل‌مرجع"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="چپ">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="راست">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="متن">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="برچسب">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="hl" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="خ‌ا"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="vl" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="خ‌ع"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="godown" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="بروپایین"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="whitespace" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="فضای‌سفید"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="nowhitespace" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="بدون‌فضای‌سفید"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="crlf" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="crlf"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="space" file="syst-pln.tex">
+ <cd:sequence>
+ <cd:string value="فضا"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="fixedspaces" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="فضاهای‌ثابت"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="emptylines" file="page-lin.tex">
+ <cd:sequence>
+ <cd:string value="خطها‌خالی"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nospace" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="بدون‌فضا"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="packed" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="فشرده"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupdescriptions" file="core-des.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌شرح"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="سبک">
+ <cd:resolve name="style"/> <!-- TODO: style=normal -->
+ </cd:parameter>
+ <cd:parameter name="رنگ">
+ <cd:constant type="cd:name" default=""/>
+ </cd:parameter>
+ <cd:parameter name="عرض">
+ <cd:constant type="پرکردن"/>
+ <cd:constant type="گسترده"/>
+ <cd:constant type="cd:dimension" default="8em"/>
+ </cd:parameter>
+ <cd:parameter name="فاصله">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="نمونه">
+ <cd:constant type="cd:text" default=""/>
+ </cd:parameter>
+ <cd:parameter name="متن">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="بستن‌نماد">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="بستن‌فرمان">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="بستن‌نماد">
+ <cd:constant type="cd:text" default=""/>
+ </cd:parameter>
+ <cd:parameter name="عنوان‌چپ">
+ <cd:constant type="cd:text" default="("/>
+ </cd:parameter>
+ <cd:parameter name="عنوان‌راست">
+ <cd:constant type="cd:text" default=")"/>
+ </cd:parameter>
+ <cd:parameter name="فاصله‌عنوان">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="سبک‌عنوان">
+ <cd:resolve name="style"/> <!-- TODO: default=bold -->
+ </cd:parameter>
+ <cd:parameter name="رنگ‌عنوان">
+ <cd:constant type="cd:name" default=""/>
+ </cd:parameter>
+ <cd:parameter name="تنظیم">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="حاشیه">
+ <cd:constant type="استاندارد"/>
+ <cd:constant type="بله"/>
+ <cd:constant type="نه" default="yes"/> <!-- TODO: this is default; conflicting syntax? -->
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="مکان">
+ <cd:constant type="چپ" default="yes"/>
+ <cd:constant type="راست"/>
+ <cd:constant type="بالا"/>
+ <cd:constant type="تنگ‌هم"/>
+ <cd:constant type="درون‌حاشیه"/>
+ <cd:constant type="درون‌چپ"/>
+ <cd:constant type="درون‌راست"/>
+ <cd:constant type="آویزان"/>
+ </cd:parameter>
+ <cd:parameter name="سبک‌سر">
+ <cd:resolve name="style"/> <!-- TODO: default=bold -->
+ </cd:parameter>
+ <cd:parameter name="رنگ‌سر">
+ <cd:constant type="cd:name" default=""/>
+ </cd:parameter>
+ <cd:parameter name="فرمان‌سر">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="بیاویز">
+ <cd:constant type="پرکردن"/>
+ <cd:constant type="گسترده"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="قبل‌از">
+ <cd:constant type="cd:command" default="\blank"/>
+ </cd:parameter>
+ <cd:parameter name="دربین">
+ <cd:constant type="cd:command" default="\blank"/>
+ </cd:parameter>
+ <cd:parameter name="بعداز">
+ <cd:constant type="cd:command" default="\blank"/>
+ </cd:parameter>
+ <cd:parameter name="متن‌تورفته">
+ <cd:resolve name="indentnext"/> <!-- default=yes -->
+ </cd:parameter>
+ <cd:parameter name="تورفتگی">
+ <cd:resolve name="indenting"/> <!-- default=never -->
+ </cd:parameter>
+ <cd:parameter name="فرمان">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupenumerations" file="core-des.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌شماره‌گذاریها"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="بارگذاری‌شرح" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineenumeration" file="core-des.tex">
+ <cd:sequence>
+ <cd:string value="تعریف‌شماره‌بندی"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="بارگذاری‌شماره‌گذاریها" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="enumeration" generated="yes" file="core-des.tex">
+ <cd:sequence>
+ <cd:variable value="شماره‌بندی"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:nothing n="1" interactive="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="enumeration" type="environment" generated="yes" file="core-des.tex">
+ <cd:sequence>
+ <cd:variable value="شماره‌بندی"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="definedescription" file="core-des.tex">
+ <cd:sequence>
+ <cd:string value="تعریف‌شرح"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="بارگذاری‌شرح" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="description" generated="yes" file="core-des.tex">
+ <cd:sequence>
+ <cd:variable value="شرح"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:nothing n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="description" type="environment" generated="yes" file="core-des.tex">
+ <cd:sequence>
+ <cd:variable value="شرح"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupindentations" file="core-des.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌تورفتگیها"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="سبک">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="سبک‌سر">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="عرض">
+ <cd:constant type="پرکردن"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="متن">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="نمونه">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="قبل‌از">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="بعداز">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="فاصله">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="جداکننده">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineindenting" file="core-des.tex">
+ <cd:sequence>
+ <cd:string value="تعریف‌تورفتگی"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="بارگذاری‌تورفتگیها" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="indentation" generated="yes" file="core-spa.tex">
+ <cd:sequence>
+ <cd:variable value="indentation"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:nothing n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definelabel" file="core-des.tex">
+ <cd:sequence>
+ <cd:string value="تعریف‌برچسب"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="متن">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="مکان">
+ <cd:constant type="درون‌حاشیه"/>
+ <cd:constant type="درون‌متن"/>
+ </cd:parameter>
+ <cd:parameter name="راه">
+ <cd:constant type="bytext"/>
+ <cd:constant type="bycd:section"/>
+ </cd:parameter>
+ <cd:parameter name="راه‌بلوک">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ <cd:parameter name="سبک‌سر">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="رنگ‌سر">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="قبل‌از">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="بعداز">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="labeling" generated="yes" file="core-des.tex">
+ <cd:sequence>
+ <cd:variable value="labeling"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcolumns" file="page-mul.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌ستونها"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes"> <!-- no idea why it is optional -->
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ntop">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="خط">
+ <cd:constant type="روی"/>
+ <cd:constant type="خاموش"/> <!-- default and unknown missing -->
+ </cd:parameter>
+ <cd:parameter name="ارتفاع">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="بردباری">
+ <cd:constant type="خیلی‌سختگیر"/>
+ <cd:constant type="اکید"/>
+ <cd:constant type="بردبار"/>
+ <cd:constant type="خیلی‌بردبار"/>
+ <cd:constant type="بکش"/>
+ </cd:parameter>
+ <cd:parameter name="فاصله">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="تعادل">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ <cd:parameter name="تنظیم">
+ <cd:constant type="متن"/>
+ <!-- cd:constant type="yes"/ -->
+ <!-- cd:constant type="no"/ -->
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="خالی">
+ <cd:constant type="ثابت"/>
+ <cd:constant type="نیم‌خط"/>
+ <cd:constant type="خط"/>
+ <cd:constant type="انعطافپذیر"/>
+ <cd:constant type="بزرگ"/>
+ <cd:constant type="متوسط"/>
+ <cd:constant type="کوچک"/>
+ </cd:parameter>
+ <cd:parameter name="گزینه">
+ <cd:constant type="پس‌زمینه"/>
+ </cd:parameter>
+ <cd:parameter name="جهت">
+ <cd:constant type="چپ"/>
+ <cd:constant type="راست"/>
+ </cd:parameter>
+ <cd:inherit name="بارگذاری‌قالبی" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="columns" type="environment" file="page-mul.tex">
+ <cd:sequence>
+ <cd:string value="columns"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="بارگذاری‌ستونها" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definetext" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="تعریف‌متن"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="سربرگ"/>
+ <cd:constant type="ته‌برگ"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:keywords n="4" optional="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:keywords n="5" optional="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupheader" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌سربرگ"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:text" default="yes"/>
+ <cd:constant type="حاشیه"/>
+ <cd:constant type="لبه"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="وضعیت">
+ <cd:constant type="نرمال"/>
+ <cd:constant type="پایان"/>
+ <cd:constant type="شروع"/>
+ <cd:constant type="تهی"/>
+ <cd:constant type="بلند"/>
+ <cd:constant type="هیچکدام"/>
+ <cd:constant type="بدون‌نشانه‌گذاری"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="بست">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ <cd:parameter name="سبک">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="سبک‌چپ">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="سبک‌راست">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="عرض‌خط">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="عرض‌راست">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="قبل‌از">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="بعداز">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfooter" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌ته‌برگ"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:inherit name="بارگذاری‌سربرگ" n="1"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="بارگذاری‌سربرگ" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptext" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌متن"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:inherit name="بارگذاری‌سربرگ" n="1"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="بارگذاری‌سربرگ" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptop" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌بالا"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:inherit name="بارگذاری‌سربرگ" n="1"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="بارگذاری‌سربرگ" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbottom" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌پایین"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:inherit name="بارگذاری‌سربرگ" n="1"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="بارگذاری‌سربرگ" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="noheaderandfooterlines" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="بدون‌خط‌سروته‌برگ"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="notopandbottomlines" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="بدون‌خط‌بالاوپایین"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupheadertexts" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌متن‌سربرگ"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:resolve name="layout-h"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfootertexts" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌متن‌پانوشت"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:resolve name="layout-h"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptexttexts" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌متن‌متنها"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:resolve name="layout-h"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptoptexts" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌متنهای‌بالا"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:resolve name="layout-h"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbottomtexts" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌متن‌پایین"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:resolve name="layout-h"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="settextcontent" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="تعیین‌محتوای‌متن"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:resolve name="layout-v"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:resolve name="layout-h"/>
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ <cd:keywords n="4" optional="yes">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ <cd:keywords n="5" optional="yes">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="resettextcontent" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="resettextcontent"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:resolve name="layout-v"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:resolve name="layout-h"/>
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes">
+ <cd:constant type="lefttext"/>
+ <cd:constant type="middletext"/>
+ <cd:constant type="righttext"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definemarking" file="core-mar.tex">
+ <cd:sequence>
+ <cd:string value="تعریف‌نشانه‌گذاری"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="couplemarking" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="نشانه‌گذاری‌زوج"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="decouplemarking" file="core-mar.tex">
+ <cd:sequence>
+ <cd:string value="جداسازی‌نشانه‌گذاری"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="resetmarking" file="core-mar.tex">
+ <cd:sequence>
+ <cd:string value="بازنشانی‌نشانه‌گذاری"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupmarking" file="core-mar.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌نشانه‌گذاری"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2">
+ <cd:parameter name="وضعیت">
+ <cd:constant type="شروع"/>
+ <cd:constant type="پایان"/>
+ </cd:parameter>
+ <cd:parameter name="جداکننده">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="گسترش">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="marking" file="core-mar.tex">
+ <cd:sequence>
+ <cd:string value="نشانه‌گذاری"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getmarking" file="core-mar.tex">
+ <cd:sequence>
+ <cd:string value="دریافت‌نشانه"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="اولی"/>
+ <cd:constant type="آخرین"/>
+ <cd:constant type="قبلی"/>
+ <cd:constant type="هردو"/>
+ <cd:constant type="همه"/>
+ <cd:constant type="جاری"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nomarking" file="core-mar.tex">
+ <cd:sequence>
+ <cd:string value="بدون‌نشانه‌گذاری"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplayout" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌طرح‌بندی"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="عرض">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="پرکردن"/>
+ <cd:constant type="میان"/>
+ </cd:parameter>
+ <cd:parameter name="ارتفاع">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="پرکردن"/>
+ <cd:constant type="میان"/>
+ </cd:parameter>
+ <cd:parameter name="فضای‌پس">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="فضای‌بالا">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="حاشیه">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="حاشیه‌چپ">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="حاشیه‌راست">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="سربرگ">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="ته‌برگ">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="بالا">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="پایین">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="لبه‌چپ">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="لبه‌راست">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="فاصله‌سربرگ">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="فاصله‌ته‌برگ">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="فاصله‌بالا">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="فاصله‌پایین">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="فاصله‌حاشیه‌چپ">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="فاصله‌حاشیه‌راست">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="فاصله‌لبه‌چپ">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="فاصله‌لبه‌راست">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="آفست‌افق">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="آفست‌عم">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="سبک">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="رنگ">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="نشانه‌گذاری">
+ <cd:constant type="روی"/>
+ <cd:constant type="خاموش"/>
+ <cd:constant type="رنگ"/>
+ <cd:constant type="پرده"/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="صفحه"/>
+ </cd:parameter>
+ <cd:parameter name="مکان">
+ <cd:constant type="چپ"/>
+ <cd:constant type="میان"/>
+ <cd:constant type="راست"/>
+ <cd:constant type="پایین"/>
+ <cd:constant type="بالا"/>
+ <cd:constant type="یک‌رو"/>
+ <cd:constant type="دورو"/>
+ </cd:parameter>
+ <cd:parameter name="مقیاس">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="nx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ny">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="dx">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="dy">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="خطها">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ستونها">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="فاصله‌ستون">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="توری">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ <cd:parameter name="فضای‌پایین">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="فضای‌برش">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="فاصله‌متن">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="عرض‌متن">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="حاشیه‌متن">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="آفست‌کلیپ">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="صفحه">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="برگ">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="adaptlayout" file="page-lay.tex">
+ <cd:sequence>
+ <cd:string value="تنظیم‌طرح‌بندی"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="ارتفاع">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="بیشترین"/>
+ </cd:parameter>
+ <cd:parameter name="خطها">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showgrid" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="نمایش‌توری"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="بازنشانی"/>
+ <cd:constant type="بالا"/>
+ <cd:constant type="پایین"/>
+ <cd:constant type="هیچکدام"/>
+ <cd:constant type="همه"/>
+ <cd:constant type="خطها"/>
+ <cd:constant type="قالب"/>
+ <cd:constant type="بدون‌شماره"/>
+ <cd:constant type="راست"/>
+ <cd:constant type="چپ"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placeongrid" file="core-grd.tex">
+ <cd:sequence>
+ <cd:string value="درج‌در‌توری"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:inherit name="انتقال‌به‌توری" n="1"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="moveongrid" file="core-grd.tex">
+ <cd:sequence>
+ <cd:string value="انتقال‌به‌توری"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="استاندارد" default="yes"/> <!-- also 'normal', 'yes' and 'force' -->
+ <cd:constant type="بالا"/>
+ <cd:constant type="هردو"/>
+ <cd:constant type="پایین"/>
+ <cd:constant type="-top"/>
+ <cd:constant type="-both"/>
+ <cd:constant type="-bottom"/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="بلند"/>
+ <cd:constant type="میان"/>
+ <cd:constant type="پایین"/>
+ <cd:constant type="صفحه"/>
+ <cd:constant type="گسترده"/>
+ <cd:constant type="پرکردن"/>
+ <cd:constant type="عمق"/>
+ <cd:constant type="خط"/>
+ <cd:constant type="بازنشانی"/>
+ <cd:constant type="هیچکدام"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="project" type="environment" file="core-job.tex">
+ <cd:sequence>
+ <cd:string value="پروژه"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:file n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="environment" type="environment" file="core-job.tex">
+ <cd:sequence>
+ <cd:string value="محیط"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:file n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="product" type="environment" file="core-job.tex">
+ <cd:sequence>
+ <cd:string value="تولید"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:file n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="component" type="environment" file="core-job.tex">
+ <cd:sequence>
+ <cd:string value="مولفه"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:file n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nomorefiles" file="core-job.tex">
+ <cd:sequence>
+ <cd:string value="بدون‌فایلهای‌بیشتر"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupinterlinespace" variant="1" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌فاصله‌بین‌خط"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="بازنشانی"/>
+ <cd:constant type="کوچک" default="yes"/>
+ <cd:constant type="متوسط"/>
+ <cd:constant type="خودکار"/>
+ <cd:constant type="بزرگ"/>
+ <cd:constant type="روی"/>
+ <cd:constant type="خاموش"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupinterlinespace2" variant="2" file="core-spa.tex">
+ <!-- attached a 2 to make this definition usable with \showsetup -->
+ <cd:sequence>
+ <cd:string value="بارگذاری‌فاصله‌بین‌خط"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="ارتفاع">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="عمق">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="خط">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="بالا">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="پایین">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppagenumbering" file="page-num.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌شماره‌گذاری‌صفحه"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="جایگزین">
+ <cd:constant type="یک‌رو"/>
+ <cd:constant type="دورو"/>
+ </cd:parameter>
+ <cd:parameter name="مکان">
+ <cd:constant type="سربرگ"/>
+ <cd:constant type="ته‌برگ"/>
+ <cd:constant type="چپ"/>
+ <cd:constant type="راست"/>
+ <cd:constant type="میان"/>
+ <cd:constant type="حاشیه"/>
+ <cd:constant type="لبه‌حاشیه"/>
+ <cd:constant type="درون‌چپ"/>
+ <cd:constant type="درون‌راست"/>
+ </cd:parameter>
+ <cd:parameter name="تبدیل">
+ <cd:constant type="شماره‌ها"/>
+ <cd:constant type="حرفها"/>
+ <cd:constant type="Characters"/>
+ <cd:constant type="شماره‌لاتین"/>
+ <cd:constant type="اعداد‌بزرگ‌لاتین"/>
+ </cd:parameter>
+ <cd:parameter name="سبک">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="چپ">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="راست">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="راه">
+ <cd:constant type="bytext"/>
+ <cd:constant type="bycd:section"/>
+ </cd:parameter>
+ <cd:parameter name="متن">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="جداکننده‌شماره">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="جداکننده‌متن">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="cd:sectionnumber">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ <cd:parameter name="جداکننده">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="بست">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ <cd:parameter name="وضعیت">
+ <cd:constant type="شروع"/>
+ <cd:constant type="پایان"/>
+ </cd:parameter>
+ <cd:parameter name="عرض">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="فرمان">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupnarrower" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌باریکتر"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="چپ">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="راست">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="میان">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="define" file="syst-ext.tex">
+ <cd:sequence>
+ <cd:string value="تعریف"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ <cd:csname n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usecommands" file="core-sys.tex">
+ <cd:sequence>
+ <cd:string value="استفاده‌فرمانها"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definestartstop" file="core-sys.tex">
+ <cd:sequence>
+ <cd:string value="تعریف‌شروع‌پایان"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="قبل‌از">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="بعداز">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="سبک">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="فرمانها">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupheads" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌سرها"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="شماره‌بخش">
+ <cd:constant type="بله"/>
+ <cd:constant type="cd:number"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ <cd:parameter name="جایگزین">
+ <cd:constant type="نرمال"/>
+ <cd:constant type="حاشیه"/>
+ <cd:constant type="میان"/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="پاراگراف"/>
+ </cd:parameter>
+ <cd:parameter name="جداکننده">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="ایست">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="تنظیم">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="عنوان‌تنظیم">
+ <cd:constant type="بله"/>
+ <cd:constant type="شناور"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ <cd:parameter name="بردباری">
+ <cd:constant type="خیلی‌سختگیر"/>
+ <cd:constant type="اکید"/>
+ <cd:constant type="بردبار"/>
+ <cd:constant type="خیلی‌بردبار"/>
+ <cd:constant type="بکش"/>
+ </cd:parameter>
+ <cd:parameter name="متن‌تورفته">
+ <cd:resolve name="indentnext"/>
+ </cd:parameter>
+ <cd:parameter name="فرمان">
+ <cd:constant type="cd:twoarguments"/>
+ </cd:parameter>
+ <cd:parameter name="حاشیه">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcaptions" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌شرحها"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="مکان">
+ <cd:constant type="بالا"/>
+ <cd:constant type="پایین"/>
+ <cd:constant type="هیچکدام"/>
+ <cd:constant type="بلند"/>
+ <cd:constant type="پایین"/>
+ <cd:constant type="میان"/>
+ <cd:constant type="چپ"/>
+ <cd:constant type="میان"/>
+ <cd:constant type="راست"/>
+ <cd:constant type="آویزان‌چپ"/>
+ <cd:constant type="آویزان‌کردن‌راست"/>
+ <cd:constant type="حاشیه‌چپ"/>
+ <cd:constant type="حاشیه‌راست"/>
+ <cd:constant type="حاشیه‌داخلی"/>
+ <cd:constant type="حاشیه‌خارجی"/>
+ </cd:parameter>
+ <cd:parameter name="عرض">
+ <cd:constant type="پرکردن"/>
+ <cd:constant type="گسترده"/>
+ <cd:constant type="بیشترین"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="کمترین‌عرض">
+ <cd:constant type="پرکردن"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="سبک‌سر">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="سبک">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="شماره">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ <cd:constant type="هیچکدام"/>
+ </cd:parameter>
+ <cd:parameter name="دربین">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="تنظیم">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="تبدیل">
+ <cd:constant type="شماره‌ها"/>
+ <cd:constant type="حرفها"/>
+ <cd:constant type="Characters"/>
+ <cd:constant type="شماره‌لاتین"/>
+ <cd:constant type="اعداد‌بزرگ‌لاتین"/>
+ </cd:parameter>
+ <cd:parameter name="راه">
+ <cd:constant type="bytext"/>
+ <cd:constant type="bycd:section"/>
+ </cd:parameter>
+ <cd:parameter name="جداکننده">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="ایست">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="فرمان">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="فاصله">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcaption" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌شرح"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="بارگذاری‌شرحها" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfloats" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌شناورها"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="مکان">
+ <cd:constant type="چپ"/>
+ <cd:constant type="راست"/>
+ <cd:constant type="میان"/>
+ </cd:parameter>
+ <cd:parameter name="عرض">
+ <cd:constant type="پرکردن"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="قبل‌از">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="بعداز">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="حاشیه">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="فضا‌قبل‌از">
+ <cd:constant type="کوچک"/>
+ <cd:constant type="متوسط"/>
+ <cd:constant type="بزرگ"/>
+ <cd:constant type="هیچکدام"/>
+ </cd:parameter>
+ <cd:parameter name="فضا‌بعداز">
+ <cd:constant type="کوچک"/>
+ <cd:constant type="متوسط"/>
+ <cd:constant type="بزرگ"/>
+ <cd:constant type="هیچکدام"/>
+ </cd:parameter>
+ <cd:parameter name="فضای‌کناری‌قبل">
+ <cd:constant type="کوچک"/>
+ <cd:constant type="متوسط"/>
+ <cd:constant type="بزرگ"/>
+ <cd:constant type="هیچکدام"/>
+ </cd:parameter>
+ <cd:parameter name="فضای‌کناری‌بعد">
+ <cd:constant type="کوچک"/>
+ <cd:constant type="متوسط"/>
+ <cd:constant type="بزرگ"/>
+ <cd:constant type="هیچکدام"/>
+ </cd:parameter>
+ <cd:parameter name="متن‌تورفته">
+ <cd:resolve name="indentnext"/>
+ </cd:parameter>
+ <cd:parameter name="ntop">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="nbottom">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="nlines">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="پیش‌فرض">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="بردباری">
+ <cd:constant type="0"/>
+ <cd:constant type="1"/>
+ <cd:constant type="2"/>
+ </cd:parameter>
+ <cd:parameter name="فاصله‌حاشیه‌چپ">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="فاصله‌حاشیه‌راست">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="تنظیم‌کنار">
+ <cd:constant type="نرمال"/>
+ <cd:constant type="خط"/>
+ </cd:parameter>
+ <cd:parameter name="شماره‌گذاری">
+ <cd:constant type="بله"/>
+ <cd:constant type="بدون‌بررسی"/>
+ </cd:parameter>
+ <cd:inherit name="بارگذاری‌قالبی" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfloatsplitting" file="core-tsp.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌شکافتن‌شناورها"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="تبدیل">
+ <cd:constant type="شماره‌ها"/>
+ <cd:constant type="حرفها"/>
+ <cd:constant type="Characters"/>
+ <cd:constant type="شماره‌لاتین"/>
+ <cd:constant type="اعداد‌بزرگ‌لاتین"/>
+ </cd:parameter>
+ <cd:parameter name="خطها">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="splitfloat" file="core-tsp.tex">
+ <cd:sequence>
+ <cd:string value="شکافتن‌شناور"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="بارگذاری‌شکافتن‌شناورها" n="1"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupoppositeplacing" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌درج‌مخالف"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1">
+ <cd:parameter name="وضعیت">
+ <cd:constant type="شروع"/>
+ <cd:constant type="پایان"/>
+ </cd:parameter>
+ <cd:parameter name="قبل‌از">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="دربین">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="بعداز">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="opposite" type="environment" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="opposite"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setuphyphenmark" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌نشانه‌شکستن"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1">
+ <cd:parameter name="علامت">
+ <cd:constant type="--"/>
+ <cd:constant type="---"/>
+ <cd:constant type="-"/>
+ <cd:constant type="~"/>
+ <cd:constant type="("/>
+ <cd:constant type=")"/>
+ <cd:constant type="="/>
+ <cd:constant type="/"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppositioning" file="page-lyr.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌مکان‌گذاری"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="وضعیت">
+ <cd:constant type="شروع"/>
+ <cd:constant type="پوشش"/>
+ </cd:parameter>
+ <cd:parameter name="واحد">
+ <cd:constant type="cm"/>
+ <cd:constant type="pt"/>
+ <cd:constant type="em"/>
+ <cd:constant type="mm"/>
+ <cd:constant type="ex"/>
+ <cd:constant type="es"/>
+ <cd:constant type="in"/>
+ </cd:parameter>
+ <cd:parameter name="عامل">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="مقیاس">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="آفست">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ <cd:parameter name="گام‌ایکس">
+ <cd:constant type="قطعی"/>
+ <cd:constant type="نسبی"/>
+ </cd:parameter>
+ <cd:parameter name="گام‌وای">
+ <cd:constant type="قطعی"/>
+ <cd:constant type="نسبی"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="positioning" type="environment" file="page-lyr.tex">
+ <cd:sequence>
+ <cd:string value="positioning"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="grid" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="توری"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="x">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="y">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="nx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ny">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="dx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="dy">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="گام‌ایکس">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="گام‌وای">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="آفست">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ <cd:parameter name="عامل">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="مقیاس">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="واحد">
+ <cd:constant type="cm"/>
+ <cd:constant type="pt"/>
+ <cd:constant type="em"/>
+ <cd:constant type="mm"/>
+ <cd:constant type="ex"/>
+ <cd:constant type="es"/>
+ <cd:constant type="in"/>
+ </cd:parameter>
+ <cd:parameter name="مکان">
+ <cd:constant type="چپ"/>
+ <cd:constant type="میان"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="page" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="صفحه"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="بله" default="yes"/>
+ <cd:constant type="آرایش"/>
+ <cd:constant type="نه"/>
+ <cd:constant type="ترجیح"/>
+ <cd:constant type="اولویت‌بزرگ"/>
+ <cd:constant type="چپ"/>
+ <cd:constant type="راست"/>
+ <cd:constant type="ناتوان"/>
+ <cd:constant type="آخرین"/>
+ <cd:constant type="quadruple"/>
+ <cd:constant type="زوج"/>
+ <cd:constant type="فرد"/>
+ <cd:constant type="خالی"/>
+ <cd:constant type="تهی"/>
+ <cd:constant type="بازنشانی"/>
+ <cd:constant type="شروع"/>
+ <cd:constant type="پایان"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupreferencing" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌ارجاع"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="وضعیت">
+ <cd:constant type="شروع"/>
+ <cd:constant type="پایان"/>
+ </cd:parameter>
+ <cd:parameter name="cd:sectionnumber">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ <cd:parameter name="پیشوند">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="پانل">
+ <cd:constant type="برچسب"/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="همه"/>
+ <cd:constant type="نماد"/>
+ </cd:parameter>
+ <cd:parameter name="عرض">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="چپ">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="راست">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="پرونده‌تبدیل">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ <cd:constant type="کوچک"/>
+ <cd:constant type="بزرگ"/>
+ </cd:parameter>
+ <cd:parameter name="جداکننده">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="پرونده‌خودکار">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ <cd:constant type="صفحه"/>
+ </cd:parameter>
+ <cd:parameter name="سراسری">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupurl" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="setupurl"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="سبک">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="urlalternative">
+ <cd:constant type="هیچکدام"/>
+ <cd:constant type="هردو"/>
+ <cd:constant type="قبل‌از"/>
+ <cd:constant type="بعداز"/>
+ </cd:parameter>
+ <cd:parameter name="urlspace">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="writetoreferencelist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="بنویس‌درلیست‌مرجع"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placereferencelist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="درج‌لیست‌مرجع"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definereferencelist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="تعریف‌لیست‌مرجع"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="بارگذاری‌لیست‌مرجع" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupreferencelist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌لیست‌مرجع"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="وضعیت">
+ <cd:constant type="شروع"/>
+ <cd:constant type="پایان"/>
+ </cd:parameter>
+ <cd:parameter name="criterium">
+ <cd:constant type="cd:section"/>
+ <cd:constant type="موضعی"/>
+ <cd:constant type="قبلی"/>
+ <cd:constant type="همه"/>
+ </cd:parameter>
+ <cd:parameter name="فرمان">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="قبل‌از">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="بعداز">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="writetolist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="بنویس‌در‌لیست"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:section"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="writebetweenlist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="بنویس‌بین‌لیست"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:section"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nolist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="بدون‌لیست"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="listsymbol" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="نمادلیست"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placelist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="درج‌لیست"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="بارگذاری‌لیست" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="determinelistcharacteristics" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="تعیین‌مشخصات‌لیست"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="بارگذاری‌لیست" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placecombinedlist" variant="1" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="درج‌لیست‌مختلط"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="بارگذاری‌لیست‌ترکیبی" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definelist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="تعریف‌لیست"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes"> <!-- inherits from -->
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="بارگذاری‌لیست" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌لیست"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="وضعیت">
+ <cd:constant type="شروع"/>
+ <cd:constant type="پایان"/>
+ </cd:parameter>
+ <cd:parameter name="جایگزین">
+ <cd:constant type="a"/>
+ <cd:constant type="b"/>
+ <cd:constant type="c"/>
+ <cd:constant type="..."/>
+ <cd:constant type="هیچکدام"/>
+ <cd:constant type="فرمان"/>
+ </cd:parameter>
+ <cd:parameter name="تزویج">
+ <cd:constant type="روی"/>
+ <cd:constant type="خاموش"/>
+ </cd:parameter>
+ <cd:parameter name="criterium">
+ <cd:constant type="cd:section"/>
+ <cd:constant type="موضعی"/>
+ <cd:constant type="قبلی"/>
+ <cd:constant type="جاری"/>
+ <cd:constant type="همه"/>
+ </cd:parameter>
+ <cd:parameter name="مرزهای‌صفحه">
+ <cd:constant type="cd:list"/>
+ </cd:parameter>
+ <cd:parameter name="سبک">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="سبک‌شماره">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="سبک‌متن">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="سبک‌صفحه">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="رنگ">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="فرمان">
+ <cd:constant type="cd:threearguments"/>
+ </cd:parameter>
+ <cd:parameter name="فرمان‌شماره">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="فرمان‌متن">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="فرمان‌صفحه">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="پانل">
+ <cd:constant type="cd:sectionnumber"/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="شماره‌صفحه"/>
+ <cd:constant type="همه"/>
+ </cd:parameter>
+ <cd:parameter name="قبل‌از">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="بعداز">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="دربین">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="چپ">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="راست">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="برچسب">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ <cd:parameter name="پیشوند">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ <cd:constant type="هیچکدام"/>
+ </cd:parameter>
+ <cd:parameter name="شماره‌صفحه">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ <cd:parameter name="شماره‌سر">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ <cd:parameter name="cd:sectionnumber">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ <cd:parameter name="عنوان‌تنظیم">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ <cd:parameter name="حاشیه">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="عرض">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="پرکردن"/>
+ </cd:parameter>
+ <cd:parameter name="ارتفاع">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="پرکردن"/>
+ <cd:constant type="گسترده"/>
+ </cd:parameter>
+ <cd:parameter name="عمق">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="پرکردن"/>
+ <cd:constant type="گسترده"/>
+ </cd:parameter>
+ <cd:parameter name="فاصله">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="جداکننده">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="ایست">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="نماد">
+ <cd:constant type="هیچکدام"/>
+ <cd:constant type="1"/>
+ <cd:constant type="2"/>
+ <cd:constant type="3"/>
+ <cd:constant type="..."/>
+ </cd:parameter>
+ <cd:parameter name="گسترش">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ <cd:constant type="فرمان"/>
+ </cd:parameter>
+ <cd:parameter name="بیشترین‌عرض">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:inherit name="بارگذاری‌قالبی" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplistalternative" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="setuplistalternative"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="no">
+ <cd:constant type="a"/>
+ <cd:constant type="b"/>
+ <cd:constant type="c"/>
+ <!-- cd:constant type="cd:name"/ -->
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="فرمان">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="عرض">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="کشیدن">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="فاصله">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definecombinedlist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="تعریف‌لیست‌ترکیبی"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="cd:list"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="بارگذاری‌لیست‌ترکیبی" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcombinedlist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌لیست‌ترکیبی"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="مرحله">
+ <cd:constant type="1"/>
+ <cd:constant type="2"/>
+ <cd:constant type="3"/>
+ <cd:constant type="4"/>
+ <cd:constant type="cd:section"/>
+ <cd:constant type="جاری"/>
+ </cd:parameter>
+ <cd:inherit name="بارگذاری‌لیست" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placecombinedlist" variant="2" generated="yes" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="مکان"/>
+ <cd:variable value="combinedlist"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="بارگذاری‌لیست‌ترکیبی" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="completecombinedlist" generated="yes" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="کامل"/>
+ <cd:variable value="combinedlist"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="بارگذاری‌لیست‌ترکیبی" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupnumbering" file="core-num.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌شماره‌گذاری"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="راه">
+ <cd:constant type="bytext"/>
+ <cd:constant type="bycd:section"/>
+ </cd:parameter>
+ <cd:parameter name="وضعیت">
+ <cd:constant type="شروع"/>
+ <cd:constant type="پایان"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupformulas" file="core-mat.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌فرمولها"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="مکان">
+ <cd:constant type="چپ"/>
+ <cd:constant type="راست"/>
+ </cd:parameter>
+ <cd:parameter name="چپ">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="راست">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="تنظیم">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="گزینه">
+ <cd:constant type="میان"/>
+ </cd:parameter>
+ <cd:parameter name="بست">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ <cd:parameter name="فاصله">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="حاشیه">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="استاندارد"/>
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ <cd:parameter name="تنظیم">
+ <cd:constant type="پمپ‌چپ"/>
+ <cd:constant type="پمپ‌راست"/>
+ <cd:constant type="میان"/>
+ <cd:constant type="مرکز"/>
+ </cd:parameter>
+ <cd:parameter name="حاشیه‌چپ">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="حاشیه‌راست">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="متن‌تورفته">
+ <cd:resolve name="indentnext"/>
+ </cd:parameter>
+ <cd:parameter name="جایگزین">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="فضا‌قبل‌از">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="بعداز">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="جداکننده">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="تبدیل">
+ <cd:constant type="شماره‌ها"/>
+ <cd:constant type="حرفها"/>
+ <cd:constant type="Characters"/>
+ <cd:constant type="شماره‌لاتین"/>
+ <cd:constant type="اعداد‌بزرگ‌لاتین"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="publication" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="نشر"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppublications" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌نشرها"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="جایگزین">
+ <cd:constant type="apa"/>
+ <cd:constant type="نرمال"/>
+ </cd:parameter>
+ <cd:inherit name="بارگذاری‌شماره‌گذاریها" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplines" file="page-lin.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌خطها"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="قبل‌از">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="بعداز">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="دربین">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="تورفتگی">
+ <cd:resolve name="indenting"/>
+ </cd:parameter>
+ <cd:parameter name="فضا">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ <cd:parameter name="گزینه">
+ <cd:constant type="فشرده"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="lines" type="environment">
+ <cd:sequence>
+ <cd:string value="lines"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupparagraphnumbering" file="page-lin.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌شماره‌گذاری‌پاراگراف"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="وضعیت">
+ <cd:constant type="شروع"/>
+ <cd:constant type="پایان"/>
+ <cd:constant type="بازنشانی"/>
+ <cd:constant type="خط"/>
+ </cd:parameter>
+ <cd:parameter name="سبک">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="فاصله">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplinenumbering" file="page-lin.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌شماره‌‌گذاری‌خط"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="تبدیل">
+ <cd:constant type="شماره‌ها"/>
+ <cd:constant type="حرفها"/>
+ <cd:constant type="Characters"/>
+ <cd:constant type="شماره‌لاتین"/>
+ <cd:constant type="اعداد‌بزرگ‌لاتین"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="شروع">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="گام">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="عرض">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="مکان">
+ <cd:constant type="درون‌متن"/>
+ <cd:constant type="درون‌حاشیه"/>
+ </cd:parameter>
+ <cd:parameter name="سبک">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="پیشوند">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="مراجعه">
+ <cd:constant type="روی"/>
+ <cd:constant type="خاموش"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="linenumbering" type="environment" file="page-lin.tex"> <!-- mkii/mkiv -->
+ <cd:sequence>
+ <cd:string value="linenumbering"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="ادامه"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="line" type="environment">
+ <cd:sequence>
+ <cd:string value="line"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="someline" file="page-lin.tex">
+ <cd:sequence>
+ <cd:string value="یک‌خط"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inline" file="page-lin.tex">
+ <cd:sequence>
+ <cd:string value="درخط"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupinmargin" file="page-mar.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌درون‌حاشیه"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="چپ"/>
+ <cd:constant type="راست"/>
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="مکان">
+ <cd:constant type="چپ"/>
+ <cd:constant type="راست"/>
+ <cd:constant type="هردو"/>
+ </cd:parameter>
+ <cd:parameter name="سبک">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="قبل‌از">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="بعداز">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="تنظیم">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="خط">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="فاصله">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="جداکننده">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="عرض">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="فاصله">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="توده">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ <cd:inherit name="بارگذاری‌قالبی" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppagenumber" file="page-num.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌شماره‌صفحه"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="شماره">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="وضعیت">
+ <cd:constant type="شروع"/>
+ <cd:constant type="پایان"/>
+ <cd:constant type="نگهدار"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsubpagenumber" file="page-num.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌شماره‌زیرصفحه"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="راه">
+ <cd:constant type="bytext"/>
+ <cd:constant type="bycd:section"/>
+ </cd:parameter>
+ <cd:parameter name="وضعیت">
+ <cd:constant type="شروع"/>
+ <cd:constant type="پایان"/>
+ <cd:constant type="هیچکدام"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupblank" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌خالی"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="نرمال" default="yes"/>
+ <cd:constant type="پیش‌فرض"/>
+ <cd:constant type="استاندارد"/>
+ <cd:constant type="خط"/>
+ <cd:constant type="نیم‌خط"/>
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="بزرگ"/>
+ <cd:constant type="متوسط"/>
+ <cd:constant type="کوچک"/>
+ <cd:constant type="ثابت"/>
+ <cd:constant type="انعطافپذیر"/>
+ <cd:constant type="سراسری"/>
+ <cd:constant type="ناشناس"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineblank" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="تعریف‌خالی"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:inherit name="بارگذاری‌خالی" n="1"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definepapersize" file="page-lay.tex">
+ <cd:sequence>
+ <cd:string value="تعریف‌اندازه‌برگ"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="عرض">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="ارتفاع">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="آفست">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="مقیاس">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppaper" file="page-lay.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌برگ"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="برگ">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="صفحه">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="nx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ny">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="عرض">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="ارتفاع">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="فضای‌بالا">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="فضای‌پس">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="گزینه">
+ <cd:constant type="بیشترین"/>
+ <cd:constant type="پرکردن"/>
+ </cd:parameter>
+ <cd:parameter name="روش">
+ <cd:constant type="نرمال"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppapersize" file="page-lay.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌اندازه‌برگ"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="A3"/>
+ <cd:constant type="A4" default="yes"/>
+ <cd:constant type="A5"/>
+ <cd:constant type="A6"/>
+ <cd:constant type="letter"/>
+ <cd:constant type="..."/>
+ <cd:constant type="CD"/>
+ <cd:constant type="cd:name"/>
+ <cd:constant type="صفحه‌گسترده"/>
+ <cd:constant type="منعکس"/>
+ <cd:constant type="دوران‌یافته"/>
+ <cd:constant type="90"/>
+ <cd:constant type="180"/>
+ <cd:constant type="270"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="منفی"/>
+ <cd:inherit name="بارگذاری‌اندازه‌برگ" n="1"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuparranging" file="page-imp.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌ترتیب"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="ناتوان"/>
+ <cd:constant type="2*16"/>
+ <cd:constant type="2*8"/>
+ <cd:constant type="2*4"/>
+ <cd:constant type="2*2"/>
+ <cd:constant type="2**2"/>
+ <cd:constant type="2*2*4"/>
+ <cd:constant type="2*4*2"/>
+ <cd:constant type="2UP"/>
+ <cd:constant type="2DOWN"/>
+ <cd:constant type="2SIDE"/>
+ <cd:constant type="2TOP"/>
+ <cd:constant type="منعکس"/>
+ <cd:constant type="دوران‌یافته"/>
+ <cd:constant type="دورو"/>
+ <cd:constant type="منفی"/>
+ <cd:constant type="پس‌زمینه"/>
+ <cd:constant type="90"/>
+ <cd:constant type="180"/>
+ <cd:constant type="270"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showprint" file="page-run.tex"> <!-- page-lay.tex -->
+ <cd:sequence>
+ <cd:string value="نمایش‌چاپ"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:inherit name="بارگذاری‌اندازه‌برگ" n="1"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:inherit name="بارگذاری‌اندازه‌برگ" n="2"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:inherit name="بارگذاری‌طرح‌بندی" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definelogo" file="page-log.tex">
+ <cd:sequence>
+ <cd:string value="تعریف‌آرم"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="بالا"/>
+ <cd:constant type="سربرگ"/>
+ <cd:constant type="ته‌برگ"/>
+ <cd:constant type="پایین"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:constant type="هیچکدام"/>
+ <cd:constant type="صفحه"/>
+ <cd:constant type="لبه‌چپ"/>
+ <cd:constant type="حاشیه‌چپ"/>
+ <cd:constant type="چپ"/>
+ <cd:constant type="میان"/>
+ <cd:constant type="راست"/>
+ <cd:constant type="حاشیه‌راست"/>
+ <cd:constant type="لبه‌راست"/>
+ </cd:keywords>
+ <cd:assignments n="4" list="yes">
+ <cd:parameter name="فرمان">
+ <cd:constant type="cd:command"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="وضعیت">
+ <cd:constant type="شروع"/>
+ <cd:constant type="پایان"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placelogos" file="page-log.tex">
+ <cd:sequence>
+ <cd:string value="درج‌آرمها"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupwhitespace">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌فضای‌سفید"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="هیچکدام" default="yes"/>
+ <cd:constant type="کوچک"/>
+ <cd:constant type="متوسط"/>
+ <cd:constant type="بزرگ"/>
+ <cd:constant type="خط"/>
+ <cd:constant type="ثابت"/>
+ <cd:constant type="ثابت‌کن"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupindenting">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌تورفتگی"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:resolve name="indenting"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definesectionblock" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="تعریف‌بلوک‌بخش"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:inherit name="بارگذاری‌بلوک‌بخش" n="1"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="بارگذاری‌بلوک‌بخش" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsectionblock" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌بلوک‌بخش"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="شماره">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ <cd:parameter name="صفحه">
+ <cd:constant type="بله"/>
+ <cd:constant type="راست"/>
+ </cd:parameter>
+ <cd:parameter name="قبل‌از">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="بعداز">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definesection" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="تعریف‌بخش"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsection" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌بخش"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:parameter name="تبدیل">
+ <cd:constant type="شماره‌ها"/>
+ <cd:constant type="حرفها"/>
+ <cd:constant type="Characters"/>
+ <cd:constant type="شماره‌لاتین"/>
+ <cd:constant type="اعداد‌بزرگ‌لاتین"/>
+ </cd:parameter>
+ <cd:parameter name="شماره‌قبلی">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuphead" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌سر"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:section"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="سبک">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="سبک‌متن">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="سبک‌شماره">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="رنگ">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="رنگ‌متن">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="رنگ‌شماره">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="شماره">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ <cd:parameter name="شماره‌خود">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ <cd:parameter name="صفحه">
+ <cd:constant type="چپ"/>
+ <cd:constant type="راست"/>
+ <cd:constant type="بله"/>
+ </cd:parameter>
+ <cd:parameter name="ادامه">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ <cd:parameter name="سربرگ">
+ <cd:constant type="هیچکدام"/>
+ <cd:constant type="تهی"/>
+ <cd:constant type="بلند"/>
+ <cd:constant type="بدون‌نشانه‌گذاری"/>
+ </cd:parameter>
+ <cd:parameter name="متن">
+ <cd:constant type="هیچکدام"/>
+ <cd:constant type="تهی"/>
+ <cd:constant type="بلند"/>
+ <cd:constant type="بدون‌نشانه‌گذاری"/>
+ </cd:parameter>
+ <cd:parameter name="ته‌برگ">
+ <cd:constant type="هیچکدام"/>
+ <cd:constant type="تهی"/>
+ <cd:constant type="بلند"/>
+ <cd:constant type="بدون‌نشانه‌گذاری"/>
+ </cd:parameter>
+ <cd:parameter name="قبل‌از">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="دربین">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="بعداز">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="جایگزین">
+ <cd:constant type="نرمال"/>
+ <cd:constant type="درون‌حاشیه"/>
+ <cd:constant type="میان"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="بیاویز">
+ <cd:constant type="هیچکدام"/>
+ <cd:constant type="گسترده"/>
+ <cd:constant type="پرکردن"/>
+ <cd:constant type="خط"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="فرمان">
+ <cd:constant type="cd:twoarguments"/>
+ </cd:parameter>
+ <cd:parameter name="فرمان‌شماره">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="فرمان‌متن">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="فرمان‌شماره‌عمیق">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="فرمان‌متن‌عمیق">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="پیشوند">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="بگذارسر">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ <cd:constant type="تهی"/>
+ </cd:parameter>
+ <cd:parameter name="شماره‌افزایش">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ <cd:constant type="cd:list"/>
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="بازنشانی‌شماره">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ <cd:parameter name="پرونده">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="گسترش">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ <cd:constant type="فرمان"/>
+ </cd:parameter>
+ <cd:parameter name="متن‌حاشیه">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ <cd:inherit name="بارگذاری‌سرها" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupheadnumber" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌شماره‌سر"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:section"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="+cd:number"/>
+ <cd:constant type="-cd:number"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="headnumber">
+ <cd:sequence>
+ <cd:string value="شماره‌سر"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:section"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="determineheadnumber" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="تعیین‌شماره‌سر"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:section"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="currentheadnumber" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="شماره‌سرجاری"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="nextsection" generated="yes" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="بعدی"/>
+ <cd:variable value="بخش"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="definehead" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="تعریف‌سر"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:section"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupitemgroup" file="core-itm.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌گروه‌آیتم"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="هر"/>
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes" list="yes">
+ <cd:constant type="استاندارد" default="yes"/>
+ <cd:constant type="گسترده"/>
+ <cd:constant type="تنگ‌هم"/>
+ <cd:constant type="فشرده"/>
+ <cd:constant type="غیرفشرده"/>
+ <cd:constant type="سفید‌نه"/>
+ <cd:constant type="قبل‌از"/>
+ <cd:constant type="بعداز"/>
+ <cd:constant type="ایست"/>
+ <cd:constant type="متصل‌بالا"/>
+ <cd:constant type="درحاشیه"/>
+ <cd:constant type="درون‌حاشیه"/>
+ <cd:constant type="پیشگفتارخودکار"/>
+ <cd:constant type="شل"/>
+ <cd:constant type="تکرار"/>
+ <cd:constant type="cd:section"/>
+ <cd:constant type="پاراگراف"/>
+ <cd:constant type="درون‌متن"/>
+ <cd:constant type="تصادفی"/>
+ <cd:constant type="برعکس"/>
+ </cd:keywords>
+ <cd:assignments n="4" optional="yes" list="yes">
+ <cd:parameter name="حاشیه">
+ <cd:constant type="نه"/>
+ <cd:constant type="استاندارد"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="حاشیه‌چپ">
+ <cd:constant type="نه"/>
+ <cd:constant type="استاندارد"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="حاشیه‌راست">
+ <cd:constant type="نه"/>
+ <cd:constant type="استاندارد"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="عرض">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="فاصله">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="عامل">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="آیتمها">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="شروع">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="قبل‌از">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="دربین">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="بعداز">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="چپ">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="راست">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="قبل‌ازسر">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="بعدازسر">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="سبک‌سر">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="سبک‌حاش">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="سبک‌نماد">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="ایست">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="نماد">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="تنظیم">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="تنظیم‌نماد">
+ <cd:resolve name="symalign"/>
+ </cd:parameter>
+ <cd:parameter name="متن‌تورفته">
+ <cd:resolve name="indentnext"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="itemgroup" type="environment" generated="yes" file="core-itm.tex">
+ <cd:sequence>
+ <cd:variable value="itemgroup"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="a"/>
+ <cd:constant type="A"/>
+ <cd:constant type="KA"/>
+ <cd:constant type="n"/>
+ <cd:constant type="N"/>
+ <cd:constant type="m"/>
+ <cd:constant type="r"/>
+ <cd:constant type="R"/>
+ <cd:constant type="KR"/>
+ <cd:constant type="cd:number"/>
+ <cd:constant type="ادامه"/>
+ <cd:constant type="استاندارد" default="yes"/>
+ <cd:constant type="گسترده"/>
+ <cd:constant type="تنگ‌هم"/>
+ <cd:constant type="فشرده"/>
+ <cd:constant type="ایست"/>
+ <cd:constant type="متصل‌بالا"/>
+ <cd:constant type="درحاشیه"/>
+ <cd:constant type="درون‌حاشیه"/>
+ <cd:constant type="پیشگفتار"/>
+ <cd:constant type="ستونها"/>
+ <cd:constant type="متن"/>
+ <cd:constant type="پاراگراف"/>
+ <cd:constant type="تکرار"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="بارگذاری‌گروه‌آیتم" n="4"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="item" file="core-itm.tex">
+ <cd:sequence>
+ <cd:string value="آیتم"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="but">
+ <cd:sequence>
+ <cd:string value="اما"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" interactive="exclusive"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="its">
+ <cd:sequence>
+ <cd:string value="its"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ran">
+ <cd:sequence>
+ <cd:string value="ran"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="head">
+ <cd:sequence>
+ <cd:string value="سر"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mar">
+ <cd:sequence>
+ <cd:string value="حاش"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="sub">
+ <cd:sequence>
+ <cd:string value="sub"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="sym" file="core-itm.tex">
+ <cd:sequence>
+ <cd:string value="نم"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nop">
+ <cd:sequence>
+ <cd:string value="منفی"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="defineregister" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="تعریف‌ثبت"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:singular"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:plural"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupregister" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌ثبت"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:singular"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="تعادل">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ <cd:parameter name="تنظیم">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="سبک">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="سبک‌صفحه">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="سبک‌متن">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="اندیکاتور">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ <cd:parameter name="تزویج">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ <cd:parameter name="cd:sectionnumber">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ <cd:parameter name="criterium">
+ <cd:constant type="cd:section"/>
+ <cd:constant type="موضعی"/>
+ <cd:constant type="همه"/>
+ </cd:parameter>
+ <cd:parameter name="فاصله">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="نماد">
+ <cd:constant type="1"/>
+ <cd:constant type="2"/>
+ <cd:constant type="..."/>
+ <cd:constant type="n"/>
+ <cd:constant type="a"/>
+ <cd:constant type="..."/>
+ <cd:constant type="هیچکدام"/>
+ </cd:parameter>
+ <cd:parameter name="پانل">
+ <cd:constant type="شماره‌صفحه"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="گسترش">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ <cd:constant type="فرمان"/>
+ </cd:parameter>
+ <cd:parameter name="مراجعه">
+ <cd:constant type="روی"/>
+ <cd:constant type="خاموش"/>
+ </cd:parameter>
+ <cd:parameter name="فرمان">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="مکان">
+ <cd:constant type="چپ"/>
+ <cd:constant type="میان"/>
+ <cd:constant type="راست"/>
+ </cd:parameter>
+ <cd:parameter name="بیشترین‌عرض">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="مرجع‌ناشناس">
+ <cd:constant type="تهی"/>
+ <cd:constant type="هیچکدام"/>
+ </cd:parameter>
+ <cd:parameter name="جایگزین">
+ <cd:constant type="a"/>
+ <cd:constant type="b"/>
+ <cd:constant type="A"/>
+ <cd:constant type="B"/>
+ </cd:parameter>
+ <cd:parameter name="پیشوند">
+ <cd:constant type="هردو"/>
+ <cd:constant type="اولی"/>
+ <cd:constant type="هیچکدام"/>
+ </cd:parameter>
+ <cd:parameter name="فشردن">
+ <cd:constant type="نه"/>
+ <cd:constant type="بله"/>
+ </cd:parameter>
+ <cd:parameter name="فرمان‌متن‌عمیق">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="register" generated="yes" file="core-reg.tex">
+ <cd:sequence>
+ <cd:variable value="ثبت"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:index n="2" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="startregister" generated="yes" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="شروع"/>
+ <cd:variable value="ثبت"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:index n="2" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="writetoregister" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="بنویس‌درثبت"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:singular"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:index n="3" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="coupledregister" generated="yes">
+ <cd:sequence>
+ <cd:string value="مزدوج"/>
+ <cd:variable value="ثبت"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:index n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="coupleregister" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="ثبت‌زوج"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placeregister" variant="1" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="درج‌ثبت"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="بارگذاری‌ثبت" n="3"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="seeregister" generated="yes">
+ <cd:sequence>
+ <cd:string value="ببینید"/>
+ <cd:variable value="ثبت"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ <cd:index n="3" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="completeregister" generated="yes" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="کامل"/>
+ <cd:variable value="ثبت"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="yes" optional="yes" list="yes">
+ <cd:inherit name="بارگذاری‌ثبت" n="3"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placeregister" variant="2" generated="yes" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="مکان"/>
+ <cd:variable value="ثبت"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="yes" optional="yes" list="yes">
+ <cd:inherit name="بارگذاری‌ثبت" n="3"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definesynonyms" file="core-syn.tex">
+ <cd:sequence>
+ <cd:string value="تعریف‌مترادفها"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:singular"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:plural"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:constant type="cd:command"/>
+ </cd:keywords>
+ <cd:keywords n="4" optional="yes">
+ <cd:constant type="cd:command"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsynonyms" file="core-syn.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌مترادفها"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="سبک‌متن">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="سبک‌مترادف">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="مکان">
+ <cd:constant type="چپ"/>
+ <cd:constant type="راست"/>
+ <cd:constant type="بالا"/>
+ <cd:constant type="تنگ‌هم"/>
+ <cd:constant type="درون‌حاشیه"/>
+ <cd:constant type="درون‌چپ"/>
+ <cd:constant type="درون‌راست"/>
+ </cd:parameter>
+ <cd:parameter name="عرض">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="وضعیت">
+ <cd:constant type="شروع"/>
+ <cd:constant type="پایان"/>
+ </cd:parameter>
+ <cd:parameter name="criterium">
+ <cd:constant type="همه"/>
+ <cd:constant type="استفاده‌شده"/>
+ </cd:parameter>
+ <cd:parameter name="تبدیل">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ <cd:parameter name="گسترش">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ <cd:constant type="فرمان"/>
+ </cd:parameter>
+ <cd:parameter name="فرمان">
+ <cd:constant type="cd:threearguments"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="synonym" generated="yes">
+ <cd:sequence>
+ <cd:variable value="synonym"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="completelistofsynonyms" generated="yes">
+ <cd:sequence>
+ <cd:string value="completelistof"/>
+ <cd:variable value="synonyms"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="placelistofsynonyms" generated="yes">
+ <cd:sequence>
+ <cd:string value="placelistof"/>
+ <cd:variable value="synonyms"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="loadsynonyms" generated="yes">
+ <cd:sequence>
+ <cd:string value="بارگذاشتن"/>
+ <cd:variable value="synonyms"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="definesorting" file="core-syn.tex">
+ <cd:sequence>
+ <cd:string value="تعریف‌ترتیب"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:singular"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:plural"/>
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes">
+ <cd:constant type="cd:command"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsorting" file="core-syn.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌ترتیب"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="قبل‌از">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="بعداز">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="فرمان">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="وضعیت">
+ <cd:constant type="شروع"/>
+ <cd:constant type="پایان"/>
+ </cd:parameter>
+ <cd:parameter name="criterium">
+ <cd:constant type="همه"/>
+ <cd:constant type="استفاده‌شده"/>
+ </cd:parameter>
+ <cd:parameter name="سبک">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="گسترش">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ <cd:constant type="فرمان"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="sort" generated="yes">
+ <cd:sequence>
+ <cd:variable value="sort"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="completelistofsorts" generated="yes">
+ <cd:sequence>
+ <cd:string value="completelistof"/>
+ <cd:variable value="sorts"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="placelistofsorts" generated="yes">
+ <cd:sequence>
+ <cd:string value="placelistof"/>
+ <cd:variable value="sorts"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="loadsorts" generated="yes">
+ <cd:sequence>
+ <cd:string value="بارگذاشتن"/>
+ <cd:variable value="sorts"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="definemakeup" file="page-mak.tex">
+ <cd:sequence>
+ <cd:string value="تعریف‌آرایش"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="بارگذاری‌آرایش" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="makeup" type="environment">
+ <cd:sequence>
+ <cd:string value="آرایش"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="بارگذاری‌آرایش" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupmakeup" file="page-mak.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌آرایش"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="عرض">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="ارتفاع">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="آفست‌ع">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="آفست‌ا">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="صفحه">
+ <cd:constant type="چپ"/>
+ <cd:constant type="بله"/>
+ <cd:constant type="راست"/>
+ </cd:parameter>
+ <cd:parameter name="فرمانها">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="دورو">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ <cd:constant type="تهی"/>
+ </cd:parameter>
+ <cd:parameter name="وضعیت‌سربرگ">
+ <cd:constant type="نرمال"/>
+ <cd:constant type="پایان"/>
+ <cd:constant type="شروع"/>
+ <cd:constant type="تهی"/>
+ <cd:constant type="هیچکدام"/>
+ <cd:constant type="بدون‌نشانه‌گذاری"/>
+ </cd:parameter>
+ <cd:parameter name="وضعیت‌ته‌برگ">
+ <cd:constant type="نرمال"/>
+ <cd:constant type="پایان"/>
+ <cd:constant type="شروع"/>
+ <cd:constant type="تهی"/>
+ <cd:constant type="هیچکدام"/>
+ <cd:constant type="بدون‌نشانه‌گذاری"/>
+ </cd:parameter>
+ <cd:parameter name="وضعیت‌متن">
+ <cd:constant type="نرمال"/>
+ <cd:constant type="پایان"/>
+ <cd:constant type="شروع"/>
+ <cd:constant type="تهی"/>
+ <cd:constant type="هیچکدام"/>
+ <cd:constant type="بدون‌نشانه‌گذاری"/>
+ </cd:parameter>
+ <cd:parameter name="وضعیت‌بالا">
+ <cd:constant type="پایان"/>
+ <cd:constant type="شروع"/>
+ </cd:parameter>
+ <cd:parameter name="وضعیت‌پایین">
+ <cd:constant type="پایان"/>
+ <cd:constant type="شروع"/>
+ </cd:parameter>
+ <cd:parameter name="وضعیت‌صفحه">
+ <cd:constant type="پایان"/>
+ <cd:constant type="شروع"/>
+ </cd:parameter>
+ <cd:parameter name="رنگ">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="namemakeup" type="environment" generated="yes">
+ <cd:sequence>
+ <cd:variable value="نام"/>
+ <cd:string value="آرایش"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="version">
+ <cd:sequence>
+ <cd:string value="نسخه"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="نهایی" default="yes"/>
+ <cd:constant type="مفهوم"/>
+ <cd:constant type="موقتی"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="currentdate">
+ <cd:sequence>
+ <cd:string value="تاریخ‌جاری"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:inherit name="تاریخ" n="2"/> <!-- or vice versa :) -->
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="date" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="تاریخ"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes"> <!-- if not given, current date is used -->
+ <cd:parameter name="d">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="m">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="y">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="روز"/>
+ <cd:constant type="ماه"/>
+ <cd:constant type="سال"/>
+ <cd:constant type="روزهفته"/>
+ <cd:constant type="d"/>
+ <cd:constant type="m"/>
+ <cd:constant type="y"/> <!-- also j -->
+ <cd:constant type="w"/>
+ <cd:constant type="dd"/>
+ <cd:constant type="mm"/>
+ <cd:constant type="yy"/> <!-- also jj -->
+ <cd:constant type="فضا"/>
+ <cd:constant type="--"/>
+ <cd:constant type="day+"/>
+ <cd:constant type="d+"/>
+ <cd:constant type="dd+"/>
+ <cd:constant type="مراجعه"/>
+ <cd:constant type="cd:text"/> <!-- any other text -->
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="referraldate" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="تاریخ‌رجوع"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="indenting" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="تورفتگی"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:resolve name="indenting"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="noindenting" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="بدون‌تورفتگی"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="blank" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="خالی"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="کوچک"/>
+ <cd:constant type="متوسط"/>
+ <cd:constant type="بزرگ" default="yes"/>
+ <cd:constant type="سفید‌نه"/>
+ <cd:constant type="پشت"/>
+ <cd:constant type="سفید"/>
+ <cd:constant type="ناتوان"/>
+ <cd:constant type="اجبار"/>
+ <cd:constant type="بازنشانی"/>
+ <cd:constant type="خط"/>
+ <cd:constant type="نیم‌خط"/>
+ <cd:constant type="cd:formula"/>
+ <cd:constant type="ثابت"/>
+ <cd:constant type="انعطافپذیر"/>
+ <cd:constant type="هیچکدام"/>
+ <cd:constant type="همواره"/>
+ <cd:constant type="خارجی"/>
+ <cd:constant type="متصل‌بالا"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="packed" type="environment" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="فشرده"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="خالی"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="unpacked" type="environment">
+ <cd:sequence>
+ <cd:string value="unpacked"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="linecorrection" type="environment">
+ <cd:sequence>
+ <cd:string value="linecorrection"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="correctwhitespace" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="فضای‌سفیدصحیح"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="postponing" type="environment">
+ <cd:sequence>
+ <cd:string value="postponing"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="local" type="environment">
+ <cd:sequence>
+ <cd:string value="موضعی"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="narrower" type="environment">
+ <cd:sequence>
+ <cd:string value="narrower"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="چپ"/>
+ <cd:constant type="میان" default="yes"/>
+ <cd:constant type="راست"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="hiding" type="environment">
+ <cd:sequence>
+ <cd:string value="hiding"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupalign" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌تنظیم"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="عرض"/>
+ <cd:constant type="چپ"/>
+ <cd:constant type="راست"/>
+ <cd:constant type="میان"/>
+ <cd:constant type="داخلی"/>
+ <cd:constant type="خارجی"/>
+ <cd:constant type="گسترده"/>
+ <cd:constant type="گسترده"/>
+ <cd:constant type="ارتفاع"/>
+ <cd:constant type="پایین"/>
+ <cd:constant type="خط"/>
+ <cd:constant type="بازنشانی"/>
+ <cd:constant type="آویزان"/>
+ <cd:constant type="بدون‌آویزان‌کردن"/>
+ <cd:constant type="شکسته"/>
+ <cd:constant type="بدون‌شکست"/>
+ <cd:constant type="شکست‌کلمات‌کمتر"/>
+ <cd:constant type="شکست‌کلمات‌بیشتر"/>
+ <cd:constant type="جدید"/>
+ <cd:constant type="قدیمی"/>
+ <cd:constant type="نرمال"/>
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ <cd:constant type="پمپ‌چپ"/>
+ <cd:constant type="پمپ‌راست"/>
+ <cd:constant type="پمپ‌خارجی"/>
+ <cd:constant type="پمپ‌داخلی"/>
+ <cd:constant type="مرکز"/>
+ <cd:constant type="hz"/>
+ <cd:constant type="nohz"/>
+ <cd:constant type="فضاگذاری"/>
+ <cd:constant type="بدون‌فضاگذاری"/>
+ <cd:constant type="بردبار"/>
+ <cd:constant type="خیلی‌بردبار"/>
+ <cd:constant type="بکش"/>
+ <cd:constant type="lefttoright"/>
+ <cd:constant type="righttoleft"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+
+ <cd:command name="alignment" type="environment" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="alignment"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:inherit name="بارگذاری‌تنظیم" n="1"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupspacing">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌فضا‌گذاری"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="گسترده"/>
+ <cd:constant type="فشرده"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptolerance" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌بردباری"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="افقی"/>
+ <cd:constant type="عمودی"/>
+ <cd:constant type="بکش"/>
+ <cd:constant type="فضا"/>
+ <cd:constant type="خیلی‌سختگیر" default="yes"/>
+ <cd:constant type="اکید"/>
+ <cd:constant type="بردبار"/>
+ <cd:constant type="خیلی‌بردبار"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="pagetype" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="نوع‌صفحه"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="processpage" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="صفحه‌پردازش"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="بله" default="yes"/>
+ <cd:constant type="نه"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="couplepage" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="صفحه‌زوج"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="گزینه">
+ <cd:constant type="دورو"/>
+ </cd:parameter>
+ <cd:parameter name="قبل‌از">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="بعداز">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="position" file="page-lyr.tex">
+ <cd:sequence>
+ <cd:string value="مکان"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:position n="1" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupscreens" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌پرده‌ها"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="روش">
+ <cd:constant type="نقطه"/>
+ <cd:constant type="خط"/>
+ <cd:constant type="خارجی"/>
+ </cd:parameter>
+ <cd:parameter name="کیفیت">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="عامل">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="پرده">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbackgrounds" file="page-bck.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌پس‌زمینه‌ها"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="بالا"/>
+ <cd:constant type="سربرگ"/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="ته‌برگ"/>
+ <cd:constant type="پایین"/>
+ <cd:constant type="صفحه"/>
+ <cd:constant type="برگ"/>
+ <cd:constant type="صفحه‌چپ"/>
+ <cd:constant type="صفحه‌راست"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="لبه‌چپ"/>
+ <cd:constant type="حاشیه‌چپ"/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="حاشیه‌راست"/>
+ <cd:constant type="لبه‌راست"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:parameter name="وضعیت">
+ <cd:constant type="شروع"/>
+ <cd:constant type="پایان"/>
+ <cd:constant type="cd:repeat"/>
+ </cd:parameter>
+ <cd:inherit name="بارگذاری‌قالبی" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="buffer" type="environment" generated="yes" file="core-buf.tex">
+ <cd:sequence>
+ <cd:variable value="بافر"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="buffer" type="environment" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="buffer"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getbuffer">
+ <cd:sequence>
+ <cd:string value="دریافت‌بافر"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="typebuffer" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="تایپ‌بافر"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definebuffer" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="تعریف‌بافر"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbuffer" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌بافر"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="پاراگراف">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="قبل‌از">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="بعداز">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineblock" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="تعریف‌بلوک"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nomoreblocks" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="بدون‌بلوکهای‌بیشتر"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="hideblocks" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="بلوکها‌پنهان"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="keepblocks" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="حفظ‌بلوکها"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="همه"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useblocks" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="استفاده‌بلوکها"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="processblocks" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="بلوکهای‌پردازش"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="bypassblocks" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="عبوربلوکها"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="forceblocks">
+ <cd:sequence>
+ <cd:string value="اجباربلوکها"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="selectblocks" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="انتخاب‌بلوکها"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes">
+ <cd:parameter name="criterium">
+ <cd:constant type="همه"/>
+ <cd:constant type="cd:section"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupblock" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌بلوک"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="قبل‌از">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="بعداز">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="داخلی">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="سبک">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="پرونده">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="formula" type="environment" generated="yes">
+ <cd:sequence>
+ <cd:variable value="فرمول"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="mathematics" file="supp-mat.tex">
+ <cd:sequence>
+ <cd:string value="ریاضی"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placeformula" file="core-mat.tex">
+ <cd:sequence>
+ <cd:string value="درج‌فرمول"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2" optional="yes"/>
+ <cd:displaymath n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placesubformula" file="core-mat.tex">
+ <cd:sequence>
+ <cd:string value="درج‌زیرفرمول"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2" optional="yes"/>
+ <cd:displaymath n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placefloat" generated="yes" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="مکان"/>
+ <cd:variable value="شناور"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="چپ"/>
+ <cd:constant type="راست"/>
+ <cd:constant type="اینجا" default="yes"/>
+ <cd:constant type="بالا"/>
+ <cd:constant type="پایین"/>
+ <cd:constant type="درون‌چپ"/>
+ <cd:constant type="درون‌راست"/>
+ <cd:constant type="درون‌حاشیه"/>
+ <cd:constant type="حاشیه"/>
+ <cd:constant type="حاشیه‌چپ"/>
+ <cd:constant type="حاشیه‌راست"/>
+ <cd:constant type="لبه‌چپ"/>
+ <cd:constant type="لبه‌راست"/>
+ <cd:constant type="حاشیه‌داخلی"/>
+ <cd:constant type="حاشیه‌خارجی"/>
+ <cd:constant type="لبه‌داخلی"/>
+ <cd:constant type="لبه‌خارجی"/>
+ <cd:constant type="داخلی"/>
+ <cd:constant type="خارجی"/>
+ <cd:constant type="خط"/>
+ <cd:constant type="بلند"/>
+ <cd:constant type="پایین"/>
+ <cd:constant type="پرکردن"/>
+ <cd:constant type="صفحه"/>
+ <cd:constant type="صفحه‌چپ"/>
+ <cd:constant type="صفحه‌راست"/>
+ <cd:constant type="مخالف"/>
+ <cd:constant type="همواره"/>
+ <cd:constant type="خودکار"/>
+ <cd:constant type="اجبار"/>
+ <cd:constant type="دراز"/>
+ <cd:constant type="بازنشانی"/>
+ <cd:constant type="خط"/>
+ <cd:constant type="ارتفاع"/>
+ <cd:constant type="عمق"/>
+ <cd:constant type="شکافتن"/>
+ <cd:constant type="90"/>
+ <cd:constant type="180"/>
+ <cd:constant type="270"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes" list="yes"/>
+ <cd:content n="3"/>
+ <cd:content n="4"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="reservefloat" generated="yes">
+ <cd:sequence>
+ <cd:string value="رزرو"/>
+ <cd:variable value="شناور"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:parameter name="ارتفاع">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="عرض">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="قالب">
+ <cd:constant type="روی"/>
+ <cd:constant type="خاموش"/>
+ </cd:parameter>
+ </cd:assignments>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:reference n="3" optional="yes" list="yes"/>
+ <cd:content n="4"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefloat" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="تعریف‌شناور"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:singular"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:plural"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfloat" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌شناور"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="ارتفاع">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="عرض">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="بیشترین‌ارتفاع">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="بیشترین‌عرض">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="کمترین‌عرض">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="پیش‌فرض">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="مرزهای‌صفحه">
+ <cd:constant type="cd:list"/>
+ </cd:parameter>
+ <cd:parameter name="فاصله‌حاشیه‌چپ">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="فاصله‌حاشیه‌راست">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="مکان">
+ <cd:constant type="چپ"/>
+ <cd:constant type="میان"/>
+ <cd:constant type="راست"/>
+ </cd:parameter>
+ <cd:inherit name="بارگذاری‌قالبی" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="floattext" type="environment" generated="yes">
+ <cd:sequence>
+ <cd:variable value="شناور"/>
+ <cd:string value="متن"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="چپ"/>
+ <cd:constant type="راست"/>
+ <cd:constant type="بلند"/>
+ <cd:constant type="میان"/>
+ <cd:constant type="پایین"/>
+ <cd:constant type="آفست"/>
+ <cd:constant type="دراز"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ <cd:content n="4"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placelistoffloats" generated="yes">
+ <cd:sequence>
+ <cd:string value="placelistof"/>
+ <cd:variable value="floats"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="completelistoffloats" generated="yes">
+ <cd:sequence>
+ <cd:string value="completelistof"/>
+ <cd:variable value="floats"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="referral" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="رجوع"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="bet">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="ken">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="dat">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="van">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="aan">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="رج">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="selectpaper">
+ <cd:sequence>
+ <cd:string value="انتخاب‌برگ"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="خانواده">
+ <cd:constant type="1"/>
+ <cd:constant type="2"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="couplepaper">
+ <cd:sequence>
+ <cd:string value="کاغذزوج"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="chem" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="chem"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fraction" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="کسر"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="periods" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="نقطه‌ها"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="items">
+ <cd:sequence>
+ <cd:string value="آیتمها"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="بارگذاری‌آیتمها" n="1"/>
+ </cd:assignments>
+ <cd:content n="2" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupitems" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌آیتمها"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="مکان">
+ <cd:constant type="چپ"/>
+ <cd:constant type="راست"/>
+ <cd:constant type="درون‌حاشیه"/>
+ <cd:constant type="بالا"/>
+ <cd:constant type="پایین"/>
+ </cd:parameter>
+ <cd:parameter name="نماد">
+ <cd:constant type="1"/>
+ <cd:constant type="2"/>
+ <cd:constant type="..."/>
+ <cd:constant type="n"/>
+ <cd:constant type="a"/>
+ <cd:constant type="..."/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="هیچکدام"/>
+ </cd:parameter>
+ <cd:parameter name="عرض">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="ناشناس"/>
+ </cd:parameter>
+ <cd:parameter name="قبل‌از">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="دربین">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="تنظیم">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="بعداز">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="quotation" type="environment" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="نقل‌قول"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="چپ"/>
+ <cd:constant type="میان" default="yes"/>
+ <cd:constant type="راست"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="quotation" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="نقل‌قول"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="quote" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="نقل"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupquote" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌نقل"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="قبل‌از">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="بعداز">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="سبک">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="رنگ">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="مکان">
+ <cd:constant type="cd:text"/>
+ <cd:constant type="حاشیه"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineparagraphs" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="تعریف‌پاراگرافها"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="خط">
+ <cd:constant type="روی"/>
+ <cd:constant type="خاموش"/>
+ </cd:parameter>
+ <cd:parameter name="ارتفاع">
+ <cd:constant type="پرکردن"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="قبل‌از">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="بعداز">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="داخلی">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="فاصله">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="بردباری">
+ <cd:constant type="خیلی‌سختگیر"/>
+ <cd:constant type="اکید"/>
+ <cd:constant type="بردبار"/>
+ <cd:constant type="خیلی‌بردبار"/>
+ <cd:constant type="بکش"/>
+ </cd:parameter>
+ <cd:parameter name="تنظیم">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="paragraph" generated="yes">
+ <cd:sequence>
+ <cd:variable value="پاراگراف"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="paragraph" type="environment" generated="yes">
+ <cd:sequence>
+ <cd:variable value="پاراگراف"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupparagraphs" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌پاراگرافها"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="هر"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:parameter name="سبک">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="عرض">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="ارتفاع">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="تنظیم">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="بردباری">
+ <cd:constant type="خیلی‌سختگیر"/>
+ <cd:constant type="اکید"/>
+ <cd:constant type="بردبار"/>
+ <cd:constant type="خیلی‌بردبار"/>
+ <cd:constant type="بکش"/>
+ </cd:parameter>
+ <cd:parameter name="فاصله">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="قبل‌از">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="بعداز">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="داخلی">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="فرمان">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="خط">
+ <cd:constant type="روی"/>
+ <cd:constant type="خاموش"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptab" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌تب"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="نمونه">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="عرض">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="سبک‌سر">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="مکان">
+ <cd:constant type="چپ"/>
+ <cd:constant type="راست"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tab">
+ <cd:sequence>
+ <cd:string value="تب"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:nothing n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="document" type="environment">
+ <cd:sequence>
+ <cd:string value="document"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="labels">
+ <cd:sequence>
+ <cd:string value="برچسبها"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definetabulate" file="core-tbl.tex">
+ <cd:sequence>
+ <cd:string value="تعریف‌جدول‌بندی"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tabulate" type="environment" generated="yes">
+ <cd:sequence>
+ <cd:variable value="جدول‌بندی"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="بارگذاری‌شکلهای‌خارجی" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptabulate" file="core-tbl.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌جدول‌بندی"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="واحد">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="تورفتگی">
+ <cd:resolve name="indenting"/>
+ </cd:parameter>
+ <cd:parameter name="قبل‌از">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="بعداز">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="داخلی">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="EQ">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="رنگ‌خط">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="تنظیم">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="ضخامت‌خط">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="فاصله">
+ <cd:constant type="خالی"/>
+ <cd:constant type="توری"/>
+ <cd:constant type="عمق"/>
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="کوچک"/>
+ <cd:constant type="متوسط"/>
+ <cd:constant type="بزرگ"/>
+ <cd:constant type="هیچکدام"/>
+ </cd:parameter>
+ <cd:parameter name="قلم‌بدنه">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ <cd:parameter name="خط">
+ <cd:constant type="نرمال"/>
+ <cd:constant type="خط"/>
+ </cd:parameter>
+ <cd:parameter name="شکافتن">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptables" file="core-tab.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌جدولها"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="فاصله">
+ <cd:constant type="کوچک"/>
+ <cd:constant type="متوسط"/>
+ <cd:constant type="بزرگ"/>
+ </cd:parameter>
+ <cd:parameter name="قلم‌بدنه">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ <cd:parameter name="HL">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="کوچک"/>
+ <cd:constant type="متوسط"/>
+ <cd:constant type="بزرگ"/>
+ <cd:constant type="هیچکدام"/>
+ </cd:parameter>
+ <cd:parameter name="VL">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="کوچک"/>
+ <cd:constant type="متوسط"/>
+ <cd:constant type="بزرگ"/>
+ <cd:constant type="هیچکدام"/>
+ </cd:parameter>
+ <cd:parameter name="عمق">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="بست"/>
+ </cd:parameter>
+ <cd:parameter name="ارتفاع">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="بست"/>
+ </cd:parameter>
+ <cd:parameter name="ضخامت‌خط">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="رنگ‌خط">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="تنظیم">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="فرمانها">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="تنظیم">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="پس‌زمینه">
+ <cd:constant type="پرده"/>
+ <cd:constant type="رنگ"/>
+ <cd:constant type="هیچکدام"/>
+ </cd:parameter>
+ <cd:parameter name="پرده‌پس‌زمینه">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="رنگ‌پس‌زمینه">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="قلم‌بدنه">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="table" type="environment">
+ <cd:sequence>
+ <cd:string value="table"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:text"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tables" type="environment">
+ <cd:sequence>
+ <cd:string value="tables"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:text"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definetabletemplate" file="core-tab.tex">
+ <cd:sequence>
+ <cd:string value="تعریف‌الگوی‌جدول"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:keywords n="4" optional="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useexternalfiles" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="استفاده‌پرونده‌های‌خارجی"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="قلم‌بدنه">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ <cd:parameter name="پرونده">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useexternalfile" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="استفاده‌پرونده‌خارجی"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ <cd:assignments n="4" list="yes">
+ <cd:parameter name="قلم‌بدنه">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useexternalfigure" file="core-fig.tex">
+ <cd:sequence>
+ <cd:string value="استفاده‌شکل‌خارجی"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes">
+ <cd:constant type="cd:name"/> <!-- parent -->
+ </cd:keywords>
+ <cd:assignments n="4" optional="yes" list="yes">
+ <cd:inherit name="بارگذاری‌شکلهای‌خارجی" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="externalfigure" file="core-fig.tex">
+ <cd:sequence>
+ <cd:string value="شکل‌خارجی"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="بارگذاری‌شکلهای‌خارجی" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupexternalfigures" file="core-fig.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌شکلهای‌خارجی"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1">
+ <cd:parameter name="مقیاس">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="مقیاس‌وای">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="مقیاس‌وای">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="عامل">
+ <cd:constant type="بیشترین"/>
+ <cd:constant type="پرکردن"/>
+ <cd:constant type="گسترده"/>
+ </cd:parameter>
+ <cd:parameter name="wfactor">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="بیشترین"/>
+ <cd:constant type="گسترده"/>
+ <cd:constant type="پرکردن"/>
+ </cd:parameter>
+ <cd:parameter name="عامل‌ارتفاع">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="بیشترین"/>
+ <cd:constant type="گسترده"/>
+ <cd:constant type="پرکردن"/>
+ </cd:parameter>
+ <cd:parameter name="عرض">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="ارتفاع">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="قالب">
+ <cd:constant type="روی"/>
+ <cd:constant type="خاموش"/>
+ </cd:parameter>
+ <cd:parameter name="preset">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ <cd:parameter name="نمایش">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="پیش‌دید">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ <cd:parameter name="تکرار">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ <cd:parameter name="شیئ">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ <cd:parameter name="تایپ">
+ <cd:constant type="eps"/>
+ <cd:constant type="mps"/>
+ <cd:constant type="pdf"/>
+ <cd:constant type="tif"/>
+ <cd:constant type="png"/>
+ <cd:constant type="jpg"/>
+ <cd:constant type="mov"/>
+ <cd:constant type="cd:tex"/>
+ </cd:parameter>
+ <cd:parameter name="روش">
+ <cd:constant type="eps"/>
+ <cd:constant type="mps"/>
+ <cd:constant type="pdf"/>
+ <cd:constant type="tif"/>
+ <cd:constant type="png"/>
+ <cd:constant type="jpg"/>
+ <cd:constant type="mov"/>
+ <cd:constant type="cd:tex"/>
+ </cd:parameter>
+ <cd:parameter name="گزینه">
+ <cd:constant type="قالب"/>
+ <cd:constant type="تهی"/>
+ <cd:constant type="تست"/>
+ </cd:parameter>
+ <cd:parameter name="قالبها">
+ <cd:constant type="روی"/>
+ <cd:constant type="خاموش"/>
+ </cd:parameter>
+ <cd:parameter name="ymax">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="xmax">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="پوشه">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="مکان">
+ <cd:constant type="موضعی"/>
+ <cd:constant type="سراسری"/>
+ <cd:constant type="پیش‌فرض"/>
+ <cd:constant type="هیچکدام"/>
+ </cd:parameter>
+ <cd:parameter name="بیشترین‌عرض">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="بیشترین‌ارتفاع">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="تبدیل">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="پیشوند">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showexternalfigures" file="core-fig.tex">
+ <cd:sequence>
+ <cd:string value="نمایش‌شکلهای‌خارجی"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:parameter name="جایگزین">
+ <cd:constant type="a"/>
+ <cd:constant type="b"/>
+ <cd:constant type="c"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useexternalsoundtrack" file="core-fig.tex">
+ <cd:sequence>
+ <cd:string value="استفاده‌قطعه‌موزیک‌خارجی"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="name" file="syst-gen.tex">
+ <cd:sequence>
+ <cd:string value="name"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="legend" type="environment">
+ <cd:sequence>
+ <cd:string value="legend"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="دو"/>
+ </cd:keywords>
+ <cd:tex n="2" command="leg"/>
+ <cd:nothing n="3"/>
+ <cd:nothing n="4" separator="backslash"/>
+ <cd:nothing n="5" separator="backslash"/>
+ <cd:tex n="6" separator="backslash" command="leg"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fact" type="environment">
+ <cd:sequence>
+ <cd:string value="حقیقت"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:tex n="1" command="fact"/>
+ <cd:nothing n="2"/>
+ <cd:nothing n="3" separator="backslash"/>
+ <cd:nothing n="4" separator="backslash"/>
+ <cd:tex n="5" separator="backslash" command="fact"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="rotate" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="دوران"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="بارگذاری‌دوران" n="1"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuprotate" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌دوران"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="دوران">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="مکان">
+ <cd:constant type="نرمال"/>
+ <cd:constant type="بلند"/>
+ <cd:constant type="پرکردن"/>
+ <cd:constant type="گسترده"/>
+ <cd:constant type="عمق"/>
+ </cd:parameter>
+ <cd:inherit name="بارگذاری‌قالبی" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mirror" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="آینه"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="scale" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="مقیاس"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:parameter name="sx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="sy">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcombinations" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌ترکیب‌ها"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="قبل‌از">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="دربین">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="بعداز">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="فاصله">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="ارتفاع">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="پرکردن"/>
+ </cd:parameter>
+ <cd:parameter name="عرض">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="پرکردن"/>
+ </cd:parameter>
+ <cd:parameter name="مکان">
+ <cd:constant type="بالا"/>
+ <cd:constant type="میان"/>
+ <cd:constant type="پایین"/>
+ <cd:constant type="چپ"/>
+ <cd:constant type="راست"/>
+ </cd:parameter>
+ <cd:parameter name="تنظیم">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="سبک">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="رنگ">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="combination" type="environment">
+ <cd:sequence>
+ <cd:string value="combination"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:matrix"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placesidebyside" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="درج‌کنار‌به‌کنار"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placeontopofeachother" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="درج‌در‌بالای‌یکدیگر"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overlay" type="environment">
+ <cd:sequence>
+ <cd:string value="overlay"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overview" type="environment">
+ <cd:sequence>
+ <cd:string value="overview"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupinteractionscreen" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌پرده‌پانل"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:parameter name="عرض">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="پرکردن"/>
+ <cd:constant type="بیشترین"/>
+ </cd:parameter>
+ <cd:parameter name="ارتفاع">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="پرکردن"/>
+ <cd:constant type="بیشترین"/>
+ </cd:parameter>
+ <cd:parameter name="فضای‌پس">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="فضای‌بالا">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="آفست‌افق">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="آفست‌عم">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="گزینه">
+ <cd:constant type="بیشترین"/>
+ <cd:constant type="پرکردن"/>
+ <cd:constant type="دورو"/>
+ <cd:constant type="یک‌رو"/>
+ <cd:constant type="خودکار"/>
+ <cd:constant type="هیچکدام"/>
+ <cd:constant type="چوبخط"/>
+ </cd:parameter>
+ <cd:parameter name="تاخیر">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="هیچکدام"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="screen" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="پرده"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setuppagetransitions" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌گذارصفحه"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="بازنشانی"/>
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupinteraction" file="core-nav.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌پانل"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:parameter name="وضعیت">
+ <cd:constant type="شروع"/>
+ <cd:constant type="پایان"/>
+ </cd:parameter>
+ <cd:parameter name="منو">
+ <cd:constant type="روی"/>
+ <cd:constant type="خاموش"/>
+ </cd:parameter>
+ <cd:parameter name="صفحه">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ <cd:parameter name="فشردن">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ <cd:parameter name="شکافتن">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ <cd:parameter name="نمایش">
+ <cd:constant type="جدید"/>
+ </cd:parameter>
+ <cd:parameter name="عمل‌باز">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="بستن‌کنش">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="عمل‌صفحه‌باز">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="بستن‌عمل‌صفحه">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="محاسبه">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="بست">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ <cd:parameter name="عرض">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="ارتفاع">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="عمق">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="سبک">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="رنگ">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="contrastcolor">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="مجموعه‌نماد">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="عنوان">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="زیرعنوان">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="نویسنده">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="تاریخ">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="کلید‌واژه">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <!-- maybe this will move elsewhere -->
+ <cd:parameter name="لایه‌میدان">
+ <cd:constant type="خودکار"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupinteractionmenu" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌منوی‌پانل"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="قبل‌از">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="بعداز">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="دربین">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="چپ">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="راست">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="میان">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="وضعیت">
+ <cd:constant type="شروع"/>
+ <cd:constant type="پایان"/>
+ <cd:constant type="هیچکدام"/>
+ <cd:constant type="موضعی"/>
+ </cd:parameter>
+ <cd:parameter name="سبک">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="رنگ">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="contrastcolor">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="فاصله">
+ <cd:constant type="پوشش"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="همان‌صفحه">
+ <cd:constant type="بله"/>
+ <cd:constant type="تهی"/>
+ <cd:constant type="نه"/>
+ <cd:constant type="هیچکدام"/>
+ </cd:parameter>
+ <cd:parameter name="مرجع‌ناشناس">
+ <cd:constant type="بله"/>
+ <cd:constant type="تهی"/>
+ <cd:constant type="نه"/>
+ <cd:constant type="هیچکدام"/>
+ </cd:parameter>
+ <cd:parameter name="آفست‌چپ">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="آفست‌راست">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="آفست‌بالا">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="آفست‌پایین">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="موقعیت">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ <cd:inherit name="بارگذاری‌قالبی" n="2"/> <!-- maybe not all parameters from framed -->
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineinteractionmenu" variant="1" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="تعریف‌منوی‌پانل"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive" list="yes">
+ <cd:constant type="چپ"/>
+ <cd:constant type="راست"/>
+ <cd:constant type="بالا"/>
+ <cd:constant type="پایین"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="بارگذاری‌منوی‌پانل" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineinteractionmenu" variant="2" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="تعریف‌منوی‌پانل"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
+ <cd:constant type="چپ"/>
+ <cd:constant type="راست"/>
+ <cd:constant type="بالا"/>
+ <cd:constant type="پایین"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="چپ"/>
+ <cd:constant type="راست"/>
+ <cd:constant type="بالا"/>
+ <cd:constant type="پایین"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="بارگذاری‌منوی‌پانل" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="interactionmenu" type="environment">
+ <cd:sequence>
+ <cd:string value="منوی‌پانل"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="disableinteractionmenu" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="ازکارانداختن‌منوی‌پانل"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
+ <cd:constant type="چپ"/>
+ <cd:constant type="راست"/>
+ <cd:constant type="بالا"/>
+ <cd:constant type="پایین"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:reference n="2" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useexternaldocument" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="استفاده‌نوشتارخارجی"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="پرونده"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useURL" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="useURL"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:constant type="پرونده"/>
+ </cd:keywords>
+ <cd:keywords n="4">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="coupledocument" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="نوشتارزوج"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="پرونده"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="from" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="از"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" interactive="exclusive"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="interactionbar">
+ <cd:sequence>
+ <cd:string value="میله‌پانل"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:inherit name="بارگذاری‌میله‌پانل" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="interactionbuttons" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="دکمه‌پانل"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" optional="yes" list="yes">
+ <cd:inherit name="بارگذاری‌میله‌پانل" n="1"/>
+ </cd:assignments>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupinteractionbar" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌میله‌پانل"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:parameter name="وضعیت">
+ <cd:constant type="شروع"/>
+ <cd:constant type="پایان"/>
+ </cd:parameter>
+ <cd:parameter name="جایگزین">
+ <cd:constant type="a"/>
+ <cd:constant type="b"/>
+ <cd:constant type="c"/>
+ <cd:constant type="d"/>
+ <cd:constant type="e"/>
+ <cd:constant type="f"/>
+ <cd:constant type="g"/>
+ </cd:parameter>
+ <cd:parameter name="نماد">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ <cd:parameter name="عرض">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="ارتفاع"/>
+ <cd:constant type="پرکردن"/>
+ </cd:parameter>
+ <cd:parameter name="ارتفاع">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="ارتفاع"/>
+ <cd:constant type="پرکردن"/>
+ </cd:parameter>
+ <cd:parameter name="عمق">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="رنگ">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="گام">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="کوچک"/>
+ <cd:constant type="متوسط"/>
+ <cd:constant type="بزرگ"/>
+ </cd:parameter>
+ <cd:inherit name="بارگذاری‌قالبی" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="synchronize" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="تطابق"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="synchronization" type="environment">
+ <cd:sequence>
+ <cd:string value="synchronization"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupsynchronizationbar" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌میله‌تطابق"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:parameter name="جایگزین">
+ <cd:constant type="صفحه"/>
+ <cd:constant type="موضعی"/>
+ </cd:parameter>
+ <cd:parameter name="عرض">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="ارتفاع"/>
+ <cd:constant type="پرکردن"/>
+ </cd:parameter>
+ <cd:parameter name="ارتفاع">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="سبک">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="رنگ">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:inherit name="بارگذاری‌قالبی" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="synchronizationbar" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="میله‌تطابق"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="جایگزین">
+ <cd:constant type="صفحه"/>
+ <cd:constant type="موضعی"/>
+ </cd:parameter>
+ <cd:inherit name="بارگذاری‌میله‌تطابق" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsynchronization" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌تطابق"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:parameter name="وضعیت">
+ <cd:constant type="شروع"/>
+ <cd:constant type="پایان"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineprofile" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="تعریف‌پروفایل"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupprofiles" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌پروفایلها"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:parameter name="گزینه">
+ <cd:constant type="تست"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="profile" type="environment">
+ <cd:sequence>
+ <cd:string value="profile"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="followprofile" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="پیروی‌پروفایل"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="exclusive"/>
+ <cd:keywords n="2">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placebookmarks" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="درج‌چوب‌خط"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ <cd:constant type="همه"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="bookmark" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="چوبخط"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="version" type="environment">
+ <cd:sequence>
+ <cd:string value="نسخه"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive" list="yes">
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupversions" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌نسخه‌ها"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="شماره">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="سبک">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="markversion" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="نسخه‌نشانه"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="selectversion" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="انتخاب‌نسخه"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="defineversion" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="تعریف‌نسخه"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="followversion" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="پیروی‌نسخه"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="exclusive"/>
+ <cd:keywords n="2">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="followprofileversion" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="پیروی‌نسخه‌پروفایل"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="exclusive"/>
+ <cd:keywords n="2">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineprogram" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="تعریف‌برنامه"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupprograms" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌برنامه‌ها"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:parameter name="پوشه">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="program" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="برنامه"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="figure" type="environment">
+ <cd:sequence>
+ <cd:string value="figure"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:parameter name="عامل">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="قالب">
+ <cd:constant type="روی"/>
+ <cd:constant type="خاموش"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <!-- referring*figure skipped -->
+
+ <!-- marking*figure skipped -->
+
+ <!-- remark skipped -->
+
+ <cd:command name="goto" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="بروبه"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="exclusive"/>
+ <cd:content n="2" interactive="exclusive"/>
+ <cd:reference n="3" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="gotobox" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="بروبه‌جعبه"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="exclusive"/>
+ <cd:reference n="2" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="button" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="دکمه"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" optional="yes" list="yes">
+ <cd:inherit name="بارگذاری‌دکمه‌ها" n="1"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ <cd:reference n="3" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbuttons" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌دکمه‌ها"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="وضعیت">
+ <cd:constant type="شروع"/>
+ <cd:constant type="پایان"/>
+ </cd:parameter>
+ <cd:inherit name="بارگذاری‌قالبی" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <!-- menubutton skipped -->
+
+ <cd:command name="setupcomment" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌توضیح"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="وضعیت">
+ <cd:constant type="شروع"/>
+ <cd:constant type="پایان"/>
+ </cd:parameter>
+ <cd:parameter name="عرض">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="ارتفاع">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="رنگ">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="عنوان">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="فضا">
+ <cd:constant type="بله"/>
+ <cd:constant type="نه"/>
+ </cd:parameter>
+ <cd:parameter name="نماد">
+ <cd:constant type="نرمال"/>
+ <cd:constant type="جدید"/>
+ <cd:constant type="بادکنک"/>
+ <cd:constant type="جمع"/>
+ <cd:constant type="کمک"/>
+ <cd:constant type="پاراگراف"/>
+ <cd:constant type="کلید"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="گزینه">
+ <cd:constant type="بیشترین"/>
+ <cd:constant type="بافر"/>
+ </cd:parameter>
+ <cd:parameter name="حاشیه">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="فاصله">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="comment" type="environment">
+ <cd:sequence>
+ <cd:string value="توضیح"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="بارگذاری‌توضیح" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="comment">
+ <cd:sequence>
+ <cd:string value="توضیح"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="بارگذاری‌توضیح" n="1"/>
+ </cd:assignments>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefield" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="تعریف‌میدان"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1"> <!-- name -->
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2"> <!-- type -->
+ <cd:constant type="متن"/>
+ <cd:constant type="خط"/> <!-- equal to text -->
+ <cd:constant type="push"/>
+ <cd:constant type="check"/>
+ <cd:constant type="radio"/>
+ <cd:constant type="combo"/>
+ <cd:constant type="choice"/> <!-- equal to combo -->
+ <cd:constant type="popup"/> <!-- equal to combo -->
+ </cd:keywords>
+ <cd:keywords n="3"> <!-- group -->
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="4" list="yes"> <!-- optional for text? -->
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="5" optional="yes"> <!-- default -->
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definesubfield" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="تعریف‌زیرمیدان"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="3" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="copyfield" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="میدان‌کپی"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="clonefield" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="میدان‌شبیه‌سازی"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="4" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="field" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="میدان"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fitfield" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="پرکردن‌میدان"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fillinfield" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="درج‌درمیدان"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tooltip" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="tooltip"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="چپ"/>
+ <cd:constant type="راست"/>
+ <cd:constant type="میان"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showfields" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="نمایش‌میدانها"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="logfields" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="میدانهای‌گزارش"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupfield" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌میدان"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="برچسب"/>
+ <cd:constant type="افقی"/>
+ <cd:constant type="عمودی"/>
+ <cd:constant type="قالب"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:inherit name="بارگذاری‌میدانها" n="2"/>
+ </cd:assignments>
+ <cd:assignments n="4" list="yes"> </cd:assignments>
+ <cd:assignments n="5" list="yes"> </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfields" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌میدانها"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes"> <!-- TODO: if it's reset, only a single argument, no list -->
+ <cd:constant type="بازنشانی"/>
+ <cd:constant type="برچسب"/>
+ <cd:constant type="افقی"/>
+ <cd:constant type="عمودی"/>
+ <cd:constant type="قالب"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="فاصله">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="قبل‌از">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="بعداز">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="دربین">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="رنگ">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="سبک">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="تنظیم">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="گزینه">
+ <cd:constant type="تنهاخواندنی"/>
+ <cd:constant type="موردنیاز"/>
+ <cd:constant type="حفاظت‌شده"/>
+ <cd:constant type="مرتب"/>
+ <cd:constant type="غیرموجود"/>
+ <cd:constant type="پنهانی"/>
+ <cd:constant type="قابل‌چاپ"/>
+ </cd:parameter>
+ <cd:parameter name="فشردن‌داخل">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="فشردن‌خارج">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="ناحیه‌درون">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="ناحیه‌بیرون">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="بعدازکلید">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="شمایل">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="تاییداعتبار">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="محاسبه">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="آفست‌میدان">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="رنگ‌قالب‌میدان">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="رنگ‌پس‌زمینه‌میدان">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:inherit name="بارگذاری‌قالبی" n="2"/>
+ </cd:assignments>
+ <cd:assignments n="3" list="yes">
+ <cd:inherit name="بارگذاری‌میدانها" n="2"/>
+ </cd:assignments>
+ <cd:assignments n="4" list="yes">
+ <cd:inherit name="بارگذاری‌میدانها" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupforms" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌طرح"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="روش">
+ <cd:constant type="HTML"/>
+ <cd:constant type="FDF"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefieldstack" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="تعریف‌توده‌میدان"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:inherit name="بارگذاری‌میدانها" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fieldstack" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="میدان‌پشته"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="بارگذاری‌میدانها" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="clip" file="core-trf.tex">
+ <cd:sequence>
+ <cd:string value="گیره"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="بارگذاری‌چیدن" n="1"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupclipping" file="core-trf.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌چیدن"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="وضعیت">
+ <cd:constant type="شروع"/>
+ <cd:constant type="پایان"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number" default="1"/>
+ </cd:parameter>
+ <cd:parameter name="nx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ny">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="x">
+ <cd:constant type="cd:number" default="1"/>
+ </cd:parameter>
+ <cd:parameter name="y">
+ <cd:constant type="cd:number" default="1"/>
+ </cd:parameter>
+ <cd:parameter name="sx">
+ <cd:constant type="cd:number" default="1"/>
+ </cd:parameter>
+ <cd:parameter name="sy">
+ <cd:constant type="cd:number" default="1"/>
+ </cd:parameter>
+ <cd:parameter name="عرض">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="ارتفاع">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="آفست‌ا">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="آفست‌ع">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="آفست">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="آفست‌چپ">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="آفست‌راست">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="آفست‌بالا">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="آفست‌پایین">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="mp">
+ <cd:constant type="cd:name" default=""/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placelegend">
+ <cd:sequence>
+ <cd:string value="درج‌راهنما"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplegend">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌راهنما"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="فاصله">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="دربین">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="عرض">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="ارتفاع">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="مکان">
+ <cd:constant type="راست"/>
+ <cd:constant type="پایین"/>
+ </cd:parameter>
+ <cd:parameter name="قلم‌بدنه">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupstrut" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="بارگذاری‌بست"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="بله" default="yes"/>
+ <cd:constant type="نه"/>
+ <cd:constant type="cap"/>
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usetypescriptfile" file="type-ini.tex">
+ <cd:sequence>
+ <cd:string value="استفاده‌پرونده‌دستخط‌تایپ"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usetypescript" file="type-ini.tex">
+ <cd:sequence>
+ <cd:string value="استفاده‌دستخط‌تایپ"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definetypeface" file="type-ini.tex">
+ <cd:sequence>
+ <cd:string value="definetypeface"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="rm"/>
+ <cd:constant type="ss"/>
+ <cd:constant type="tt"/>
+ <cd:constant type="mm"/>
+ <cd:constant type="hw"/>
+ <cd:constant type="cg"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="4">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="5" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="6" optional="yes">
+ <cd:parameter name="features">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="rscale">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="encoding">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="متن">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefontfeature" file="type-ini.tex">
+ <cd:sequence>
+ <cd:string value="definefontfeature"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="no">
+ <cd:parameter name="compose">
+ <cd:constant type="نه" default="yes"/>
+ <cd:constant type="بله"/>
+ </cd:parameter>
+ <cd:parameter name="mode">
+ <cd:constant type="node"/>
+ <cd:constant type="base" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="tlig">
+ <cd:constant type="نه" default="yes"/>
+ <cd:constant type="بله"/>
+ </cd:parameter>
+ <cd:parameter name="trep">
+ <cd:constant type="نه" default="yes"/>
+ <cd:constant type="بله"/>
+ </cd:parameter>
+ <cd:parameter name="script">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="language">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="..tag.."> <!-- can't use &gt; here, \showsetup gives an error -->
+ <cd:constant type="نه" default="yes"/>
+ <cd:constant type="بله"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefonthandling" file="hand-ini.mkii">
+ <cd:sequence>
+ <cd:string value="definefonthandling"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:name" list="yes"/>
+ </cd:keywords>
+ <cd:assignments n="3">
+ <cd:parameter name="تایپ">
+ <cd:constant type="آویزان" default="yes"/>
+ <cd:constant type="hz"/>
+ <cd:constant type="فضاگذاری"/>
+ <cd:constant type="tag"/>
+ </cd:parameter>
+ <cd:parameter name="راست">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="چپ">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="عامل">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="کمترین">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="بیشترین">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="گام">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfonthandling" file="hand-ini.mkii">
+ <cd:sequence>
+ <cd:string value="setupfonthandling"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2">
+ <cd:inherit name="definefonthandling" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefontsynonym" file="font-ini.tex">
+ <cd:sequence>
+ <cd:string value="تعریف‌مترادف‌قلم"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes">
+ <cd:parameter name="encoding">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="features">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="handling">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="mapping">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfontsynonym" file="font-ini.tex">
+ <cd:sequence>
+ <cd:string value="setupfontsynonym"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2">
+ <cd:inherit name="تعریف‌مترادف‌قلم" n="3"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mapfontsize" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="mapfontsize"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definedfont" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="definedfont"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:inherit name="تعریف‌قلم" n="2"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/Master/texmf-dist/tex/context/interface/cont-ro.xml b/Master/texmf-dist/tex/context/interface/cont-ro.xml
index 9cdd3b7eed1..152201dc469 100644
--- a/Master/texmf-dist/tex/context/interface/cont-ro.xml
+++ b/Master/texmf-dist/tex/context/interface/cont-ro.xml
@@ -1,6 +1,4 @@
-<?xml version="1.0" standalone="yes"?>
-
-<!-- versions:
+<?xml version="1.0" encoding="UTF-8"?><!-- versions:
comment : user interface definitions of ConTeXt
@@ -10,10 +8,9 @@
2006.08.02 : define + resolve
-->
-
<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="ro" version="2006.08.02">
-<cd:define name="align">
+ <cd:define name="align">
<cd:constant type="intern"/>
<cd:constant type="extern"/>
<cd:constant type="stanga"/>
@@ -25,9 +22,18 @@
<cd:constant type="normal"/>
<cd:constant type="nu"/>
<cd:constant type="da"/>
-</cd:define>
+ </cd:define>
+
+ <cd:define name="symalign">
+ <cd:constant type="stanga"/>
+ <cd:constant type="dreapta"/>
+ <cd:constant type="flushleft"/>
+ <cd:constant type="flushright"/>
+ <cd:constant type="centru"/>
+ <cd:constant type="center"/>
+ </cd:define>
-<cd:define name="indenting">
+ <cd:define name="indenting">
<cd:constant type="niciodata"/>
<cd:constant type="niciunul"/>
<cd:constant type="nu"/>
@@ -43,14 +49,14 @@
<cd:constant type="impar"/>
<cd:constant type="par"/>
<cd:constant type="cd:dimension"/>
-</cd:define>
+ </cd:define>
-<cd:define name="indentnext">
+ <cd:define name="indentnext">
<cd:constant type="da"/>
<cd:constant type="nu"/>
-</cd:define>
+ </cd:define>
-<cd:define name="style">
+ <cd:define name="style">
<cd:constant type="normal"/>
<cd:constant type="aldin"/>
<cd:constant type="inclinat"/>
@@ -59,9 +65,9 @@
<cd:constant type="cap"/>
<cd:constant type="small..."/>
<cd:constant type="cd:command"/>
-</cd:define>
+ </cd:define>
-<cd:define name="language">
+ <cd:define name="language">
<cd:constant type="nl"/>
<cd:constant type="fr"/>
<cd:constant type="en"/>
@@ -70,9961 +76,10164 @@
<cd:constant type="es"/>
<cd:constant type="cz"/>
<cd:constant type=".."/>
-</cd:define>
+ </cd:define>
-<cd:define name="texts">
+ <cd:define name="texts">
<cd:constant type="cd:text"/>
<cd:constant type="cd:section"/>
<cd:constant type="data"/>
<cd:constant type="cd:mark"/>
<cd:constant type="numarpagina"/>
-</cd:define>
+ </cd:define>
-<cd:define name="layout-h">
+ <cd:define name="layout-h">
<cd:constant type="text" default="yes"/>
<cd:constant type="margine"/>
<cd:constant type="bordura"/>
-</cd:define>
+ </cd:define>
-<cd:define name="layout-v">
+ <cd:define name="layout-v">
<cd:constant type="sus"/>
<cd:constant type="antet"/>
<cd:constant type="text" default="yes"/>
<cd:constant type="subsol"/>
<cd:constant type="subsol"/>
-</cd:define>
+ </cd:define>
-<cd:command name="installlanguage" file="lang-ini.tex">
- <cd:sequence>
- <cd:string value="instalarelimba"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="spatiere">
- <cd:constant type="impachetat"/>
- <cd:constant type="broad"/>
- </cd:parameter>
- <cd:parameter name="lefthyphenmin">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="righthyphenmin">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stare">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="propozitiestanga">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="propozitiedreapta">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="subpropozitiestanga">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="subpropozitiedreapta">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="minicitatstanga">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="minicitatdreapta">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="citatstanga">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="citatdreapta">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="implicit">
+ <cd:define name="bodyfont">
+ <cd:constant type="5pt"/>
+ <cd:constant type="..."/>
+ <cd:constant type="12pt"/>
+ <cd:constant type="mic"/>
+ <cd:constant type="mare"/>
+ </cd:define>
+
+ <cd:command name="installlanguage" file="lang-ini.tex" category="language">
+ <cd:sequence>
+ <cd:string value="instalarelimba"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuplanguage" file="lang-ini.tex">
- <cd:sequence>
- <cd:string value="setarelimba"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:resolve name="language"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="instalarelimba"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="language">
- <cd:sequence>
- <cd:string value="limba"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:resolve name="language"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="mainlanguage" file="lang-ini.tex">
- <cd:sequence>
- <cd:string value="limbaprincipala"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:resolve name="language"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="translate" file="lang-lab.tex">
- <cd:sequence>
- <cd:string value="traduce"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="cd:name">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="useencoding" file="enco-ini.tex">
- <cd:sequence>
- <cd:string value="folosestecodificarea"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="usespecials" file="spec-ini.tex">
- <cd:sequence>
- <cd:string value="folosestespeciale"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="reset"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineoutput" file="spec-ini.tex">
- <cd:sequence>
- <cd:string value="definesteoutput"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupoutput" file="spec-ini.tex">
- <cd:sequence>
- <cd:string value="setareoutput"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definebodyfontenvironment" file="font-ini.tex">
- <cd:sequence>
- <cd:string value="definestemediulfonttext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="implicit"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="text">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="script">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="scriptscript">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="x">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="xx">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="mic">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="mare">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupbodyfontenvironment" file="font-ini.tex">
- <cd:sequence>
- <cd:string value="seteazamediulfonttext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:inherit name="seteazafonttext"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="seteazafonttext"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showbodyfontenvironment">
- <cd:sequence>
- <cd:string value="afiseazamediufonttext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:inherit name="seteazafonttext"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definebodyfont" file="font-ini.tex">
- <cd:sequence>
- <cd:string value="definestefonttext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="implicit"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="rm"/>
- <cd:constant type="ss"/>
- <cd:constant type="tt"/>
- <cd:constant type="mm"/>
- <cd:constant type="hw"/>
- <cd:constant type="cg"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="tf">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="bf">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="sl">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="it">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="bs">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="bi">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="sc">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="ex">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="mi">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="sy">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="ma">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="mb">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="mc">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showbodyfont">
- <cd:sequence>
- <cd:string value="afiseazafonttext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:inherit name="seteazafonttext"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupbodyfont">
- <cd:sequence>
- <cd:string value="seteazafonttext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- <cd:constant type="serif"/>
- <cd:constant type="regular"/>
- <cd:constant type="roman"/>
- <cd:constant type="sans"/>
- <cd:constant type="suport"/>
- <cd:constant type="sansserif"/>
- <cd:constant type="mono"/>
- <cd:constant type="type"/>
- <cd:constant type="teletype"/>
- <cd:constant type="scrismanual"/>
- <cd:constant type="caligrafic"/>
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="switchtobodyfont" file="font-ini.tex">
- <cd:sequence>
- <cd:string value="trecilafonttext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="mic"/>
- <cd:constant type="mare"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definefont" file="font-ini.tex">
- <cd:sequence>
- <cd:string value="definestefont"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:file"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupcolor" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="seteazaculoare"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupcolors" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="seteazaculori"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="stare">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- <cd:constant type="global"/>
- <cd:constant type="local"/>
- </cd:parameter>
- <cd:parameter name="conversie">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- <cd:constant type="totdeauna"/>
- </cd:parameter>
- <cd:parameter name="reducere">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="rgb">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="cmyk">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="mpcmyk">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="mpspot">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="culoaretext">
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="spatiere">
+ <cd:constant type="impachetat" default="yes"/>
+ <cd:constant type="broad"/>
+ </cd:parameter>
+ <cd:parameter name="lefthyphenmin">
+ <cd:constant type="cd:number" default="2"/>
+ </cd:parameter>
+ <cd:parameter name="righthyphenmin">
+ <cd:constant type="cd:number" default="2"/>
+ </cd:parameter>
+ <cd:parameter name="stare">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="propozitiestanga">
+ <cd:constant type="cd:command" default="---"/>
+ </cd:parameter>
+ <cd:parameter name="propozitiedreapta">
+ <cd:constant type="cd:command" default="---"/>
+ </cd:parameter>
+ <cd:parameter name="subpropozitiestanga">
+ <cd:constant type="cd:command" default="---"/>
+ </cd:parameter>
+ <cd:parameter name="subpropozitiedreapta">
+ <cd:constant type="cd:command" default="---"/>
+ </cd:parameter>
+ <cd:parameter name="minicitatstanga">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="minicitatdreapta">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="citatstanga">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="citatdreapta">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="leftspeech">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="middlespeech">
+ <cd:constant type="cd:command" default=""/>
+ </cd:parameter>
+ <cd:parameter name="rightspeech">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="limittext">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="data">
+ <cd:constant type="cd:text"/> <!-- TODO -->
+ </cd:parameter>
+ <cd:parameter name="compoundhyphen">
+ <cd:constant type="cd:command" default="\compoundhyphen"/>
+ </cd:parameter>
+ <cd:parameter name="leftcompoundhyphen">
+ <cd:constant type="cd:command" default="\compoundhyphen"/>
+ </cd:parameter>
+ <cd:parameter name="rightcompoundhyphen">
+ <cd:constant type="cd:command" default=""/>
+ </cd:parameter>
+ <cd:parameter name="implicit">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplanguage" file="lang-ini.tex" category="language">
+ <cd:sequence>
+ <cd:string value="setarelimba"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:resolve name="language"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="instalarelimba" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="language" file="lang-ini.tex" category="language">
+ <cd:sequence>
+ <cd:string value="limba"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:resolve name="language"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mainlanguage" file="lang-ini.tex" category="language">
+ <cd:sequence>
+ <cd:string value="limbaprincipala"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:resolve name="language"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="translate" file="lang-lab.tex" category="language">
+ <cd:sequence>
+ <cd:string value="traduce"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="cd:name">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useencoding" file="enco-ini.tex" category="encoding"> <!-- engine="pdftex" -->
+ <cd:sequence>
+ <cd:string value="folosestecodificarea"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="split">
- <cd:constant type="c"/>
- <cd:constant type="m"/>
- <cd:constant type="y"/>
- <cd:constant type="k"/>
- <cd:constant type="p"/>
- <cd:constant type="s"/>
- <cd:constant type="nu"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usespecials" file="spec-ini.tex">
+ <cd:sequence>
+ <cd:string value="folosestespeciale"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="reset"/>
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="criteriu">
- <cd:constant type="tot"/>
- <cd:constant type="niciunul"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definecolor" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="definesteculoare"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="r">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="g">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="b">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="c">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="m">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="y">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="k">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="s">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="h">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="t">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="a">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="p">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="e">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="color" type="environment" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="culoare"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="color" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="culoare"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="graycolor" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="culoaregri"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showcolor">
- <cd:sequence>
- <cd:string value="afiseazaculoare"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definepalet" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="definestepaleta"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="cd:name">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuppalet" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="seteazapaleta"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definecolorgroup" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="definestegrupculori"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="rgb" default="yes"/>
- <cd:constant type="cmyk"/>
- <cd:constant type="gri"/>
- <cd:constant type="s"/>
- </cd:keywords>
- <cd:triplet list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showpalet">
- <cd:sequence>
- <cd:string value="afiseazapaleta"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="orizontal"/>
- <cd:constant type="vertical"/>
- <cd:constant type="nume"/>
- <cd:constant type="valoare"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showcolorgroup">
- <cd:sequence>
- <cd:string value="afiseazagrupculoare"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="orizontal"/>
- <cd:constant type="vertical"/>
- <cd:constant type="nume"/>
- <cd:constant type="valoare"/>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="comparepalet">
- <cd:sequence>
- <cd:string value="comparapaleta"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="comparecolorgroup">
- <cd:sequence>
- <cd:string value="comparagrupculoare"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showmakeup" file="supp-vis.tex">
- <cd:sequence>
- <cd:string value="afiseazamakeup"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="definetype" file="core-ver.tex">
- <cd:sequence>
- <cd:string value="definetype"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="seteazatype"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptype" file="core-ver.tex">
- <cd:sequence>
- <cd:string value="seteazatype"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="spatiu">
- <cd:constant type="on"/>
- <cd:constant type="dezactivat"/>
- </cd:parameter>
- <cd:parameter name="optiune">
- <cd:constant type="inclinat"/>
- <cd:constant type="normal"/>
- <cd:constant type="niciunul"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="culoare">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="type" file="verb-ini.tex">
- <cd:sequence>
- <cd:string value="type"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="typ" file="core-ver.tex">
- <cd:sequence>
- <cd:string value="typ"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="tex" file="core-ver.tex">
- <cd:sequence>
- <cd:string value="tex"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="arg" file="core-ver.tex">
- <cd:sequence>
- <cd:string value="arg"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definetyping" file="core-ver.tex">
- <cd:sequence>
- <cd:string value="definestetyping"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="fisier"/>
- <cd:constant type="typing"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="seteazatyping"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptyping" file="core-ver.tex">
- <cd:sequence>
- <cd:string value="seteazatyping"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="fisier"/>
- <cd:constant type="typing"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="spatiu">
- <cd:constant type="on"/>
- <cd:constant type="dezactivat"/>
- </cd:parameter>
- <cd:parameter name="pagina">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="optiune">
- <cd:constant type="inclinat"/>
- <cd:constant type="normal"/>
- <cd:constant type="comenzi"/>
- <cd:constant type="culoare"/>
- <cd:constant type="niciunul"/>
- </cd:parameter>
- <cd:parameter name="text">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="comandai">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="comandav">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="comandac">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="margine">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="standard"/>
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="marginepara">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="margineimpara">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="blanc">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="mic"/>
- <cd:constant type="mediu"/>
- <cd:constant type="mare"/>
- <cd:constant type="standard"/>
- <cd:constant type="jumatatelinie"/>
- <cd:constant type="linie"/>
- </cd:parameter>
- <cd:parameter name="escape">
- <cd:constant type="cd:character"/>
- </cd:parameter>
- <cd:parameter name="spatiu">
- <cd:constant type="on"/>
- <cd:constant type="dezactivat"/>
- </cd:parameter>
- <cd:parameter name="tab">
- <cd:constant type="cd:number"/>
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="pagina">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="aliniaturmator">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="culoare">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="paleta">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="linii">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- <cd:constant type="despsilabe"/>
- </cd:parameter>
- <cd:parameter name="gol">
- <cd:constant type="da"/>
- <cd:constant type="tot"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="numerotare">
- <cd:constant type="linie"/>
- <cd:constant type="fisier"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="typing" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="typing"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="typefile" file="verb-ini.tex">
- <cd:sequence>
- <cd:string value="typefile"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfootnotes" file="core-not.tex">
- <cd:sequence>
- <cd:string value="seteazanotasubsol"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="conversie">
- <cd:constant type="numere"/>
- <cd:constant type="caractere"/>
- <cd:constant type="Caractere"/>
- <cd:constant type="numereromane"/>
- <cd:constant type="Numereromane"/>
- </cd:parameter>
- <cd:parameter name="mod">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="locatie">
- <cd:constant type="pagina"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="coloane"/>
- <cd:constant type="firstcolumn"/>
- <cd:constant type="lastcolumn"/>
- <cd:constant type="inalt"/>
- <cd:constant type="niciunul"/>
- </cd:parameter>
- <cd:parameter name="rigla">
- <cd:constant type="on"/>
- <cd:constant type="dezactivat"/>
- </cd:parameter>
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="inaltime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="fonttext">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="mic"/>
- <cd:constant type="mare"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="distanta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distantacoloane">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distantamargine">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="comandanumar">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="comandatext">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="split">
- <cd:constant type="tolerant"/>
- <cd:constant type="strict"/>
- <cd:constant type="foartestrict"/>
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="stiltext">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="culoaretext">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="interactiune">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="factor">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:inherit name="framed"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfootnotedefinition" file="core-not.tex">
- <cd:sequence>
- <cd:string value="seteazadefinireanotasubsol"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:inherit name="definestedescriere"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="footnote" file="core-not.tex">
- <cd:sequence>
- <cd:string value="notasubsol"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="footnotetext" file="core-not.tex">
- <cd:sequence>
- <cd:string value="footnotetext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="note" file="core-not.tex">
- <cd:sequence>
- <cd:string value="nota"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference interactive="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="localfootnotes" type="environment">
- <cd:sequence>
- <cd:string value="localfootnotes"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="placelocalfootnotes" file="core-not.tex">
- <cd:sequence>
- <cd:string value="punenotesubsollocale"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="seteazanotasubsol"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placefootnotes" file="core-not.tex">
- <cd:sequence>
- <cd:string value="punenotesubsol"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="seteazanotasubsol"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupunderbar" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="seteazasublinie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="alternativ">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- </cd:parameter>
- <cd:parameter name="grosimerigla">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offsetjos">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offsetsus">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="culoarerigla">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineoutput" file="spec-ini.tex">
+ <cd:sequence>
+ <cd:string value="definesteoutput"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="underbar" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="sublinie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="underbars" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="sublinii"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="overbar" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="barasus"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="overbars" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="supralinie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="overstrike" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="liniepeste"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="overstrikes" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="liniipeste"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="romannumerals" file="core-con.tex">
- <cd:sequence>
- <cd:string value="numereromane"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="Romannumerals" file="core-con.tex">
- <cd:sequence>
- <cd:string value="Numereromane"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="numbers" file="core-con.tex">
- <cd:sequence>
- <cd:string value="numere"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="character" file="core-con.tex">
- <cd:sequence>
- <cd:string value="litera"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="Character" file="core-con.tex">
- <cd:sequence>
- <cd:string value="Litera"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="characters" file="core-con.tex">
- <cd:sequence>
- <cd:string value="litere"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="Characters" file="core-con.tex">
- <cd:sequence>
- <cd:string value="Litere"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="mediaeval" file="core-con.tex">
- <cd:sequence>
- <cd:string value="mediaeval"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="month" file="core-con.tex">
- <cd:sequence>
- <cd:string value="luna"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="MONTH" file="core-con.tex">
- <cd:sequence>
- <cd:string value="LUNA"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="weekday" file="core-con.tex">
- <cd:sequence>
- <cd:string value="zidinsaptamana"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="WEEKDAY" file="core-con.tex">
- <cd:sequence>
- <cd:string value="ZIDINSAPTAMANA"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupcapitals" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="seteazamajuscule"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="titlu">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="sc">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="cap" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="cap"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="nocap">
- <cd:sequence>
- <cd:string value="nocap"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="CAP">
- <cd:sequence>
- <cd:string value="CAP"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="Cap">
- <cd:sequence>
- <cd:string value="Cap"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="Caps">
- <cd:sequence>
- <cd:string value="Caps"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="WORD" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="CUVANT"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="WORDS" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="CUVINTE"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="Word" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="Cuvant"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="Words" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="Cuvinte"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="stretched" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="intins"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definesymbol" file="symb-ini.tex">
- <cd:sequence>
- <cd:string value="definestesimbol"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definefiguresymbol" file="symb-ini.tex">
- <cd:sequence>
- <cd:string value="definestesimbolfigura"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="figuraexterna"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="symbol" file="symb-ini.tex">
- <cd:sequence>
- <cd:string value="simbol"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="symbolset" type="environment">
- <cd:sequence>
- <cd:string value="symbolset"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupsymbolset" file="symb-ini.tex">
- <cd:sequence>
- <cd:string value="seteazasimbol"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="usesymbols" file="symb-ini.tex">
- <cd:sequence>
- <cd:string value="folosestesimboluri"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showsymbolset">
- <cd:sequence>
- <cd:string value="afiseazasetsimboluri"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineconversion" file="core-con.tex">
- <cd:sequence>
- <cd:string value="definesteconversie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:command"/>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="convertnumber" file="core-con.tex">
- <cd:sequence>
- <cd:string value="convertestenumar"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupheadtext" file="lang-lab.tex">
- <cd:sequence>
- <cd:string value="seteazatexttitlu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:resolve name="language"/>
- </cd:keywords>
- <cd:assignments>
- <cd:parameter name="cd:name">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuplabeltext" file="lang-lab.tex">
- <cd:sequence>
- <cd:string value="seteazatexteticheta"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:resolve name="language"/>
- </cd:keywords>
- <cd:assignments>
- <cd:parameter name="cd:name">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="headtext" file="lang-lab.tex">
- <cd:sequence>
- <cd:string value="texttitlu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="labeltext">
- <cd:sequence>
- <cd:string value="texteticheta"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupmarginrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="seteazaliniimargine"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments>
- <cd:parameter name="nivel">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="grosimerigla">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="marginrule" type="environment">
- <cd:sequence>
- <cd:string value="liniemargine"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="marginrule">
- <cd:sequence>
- <cd:string value="liniemargine"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuplinewidth" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="seteazagrosimelinie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupframed" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="seteazainconjurat"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="inaltime">
- <cd:constant type="ajustat"/>
- <cd:constant type="broad"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="ajustat"/>
- <cd:constant type="broad"/>
- <cd:constant type="fixat"/>
- <cd:constant type="local"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="autolatime">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- <cd:constant type="fortat"/>
- </cd:parameter>
- <cd:parameter name="offset">
- <cd:constant type="niciunul"/>
- <cd:constant type="overlay"/>
- <cd:constant type="implicit"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="locatie">
- <cd:constant type="adancime"/>
- <cd:constant type="suspendat"/>
- <cd:constant type="inalt"/>
- <cd:constant type="lohi"/>
- <cd:constant type="jos"/>
- <cd:constant type="sus"/>
- <cd:constant type="centru"/>
- <cd:constant type="subsol"/>
- <cd:constant type="mentine"/>
- </cd:parameter>
- <cd:parameter name="optiune">
- <cd:constant type="niciunul"/>
- <cd:constant type="gol"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- <cd:constant type="global"/>
- <cd:constant type="local"/>
- </cd:parameter>
- <cd:parameter name="aliniere">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="jos">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="sus">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="frame">
- <cd:constant type="on"/>
- <cd:constant type="dezactivat"/>
- <cd:constant type="niciunul"/>
- <cd:constant type="overlay"/>
- </cd:parameter>
- <cd:parameter name="framesus">
- <cd:constant type="on"/>
- <cd:constant type="dezactivat"/>
- </cd:parameter>
- <cd:parameter name="framejos">
- <cd:constant type="on"/>
- <cd:constant type="dezactivat"/>
- </cd:parameter>
- <cd:parameter name="framestanga">
- <cd:constant type="on"/>
- <cd:constant type="dezactivat"/>
- </cd:parameter>
- <cd:parameter name="framedreapta">
- <cd:constant type="on"/>
- <cd:constant type="dezactivat"/>
- </cd:parameter>
- <cd:parameter name="offsetframe">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="adancimeframe">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="coltframe">
- <cd:constant type="rotund"/>
- <cd:constant type="rectangular"/>
- </cd:parameter>
- <cd:parameter name="razaframe">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="culoareframe">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="fundal">
- <cd:constant type="ecran"/>
- <cd:constant type="culoare"/>
- <cd:constant type="niciunul"/>
- <cd:constant type="primplan"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="ecranfundal">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="culoarefundal">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupoutput" file="spec-ini.tex">
+ <cd:sequence>
+ <cd:string value="setareoutput"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="offsetfundal">
- <cd:constant type="incadrat"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="adancimefundal">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="coltfundal">
- <cd:constant type="rotund"/>
- <cd:constant type="rectangular"/>
- </cd:parameter>
- <cd:parameter name="razafundal">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="inaltime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="colt">
- <cd:constant type="rotund"/>
- <cd:constant type="rectangular"/>
- </cd:parameter>
- <cd:parameter name="raza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="gol">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="foregroundcolor">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="foregroundstyle">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="grosimerigla">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="framed" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="framed"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="seteazainconjurat"/>
- </cd:assignments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="inframed" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="inframed"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="seteazainconjurat"/>
- </cd:assignments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="thinrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="liniisubtiri"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes">
- <cd:inherit name="seteazaliniesubtire"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupthinrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="seteazaliniesubtire"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments>
- <cd:parameter name="spatiereinterliniara">
- <cd:constant type="mic"/>
- <cd:constant type="mediu"/>
- <cd:constant type="mare"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="intre">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="culoare">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definebodyfontenvironment" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="definestemediulfonttext"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes"> <!-- it's possible to use 1+2+3, 2+3, what about 1+2? -->
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="culoarefundal">
+ </cd:keywords>
+ <cd:keywords n="2" optional="no"> <!-- have to force no, otherwise \showsetup is wrong ! -->
+ <cd:constant type="5pt"/> <!-- TODO: maybe <cd:resolve name="bodyfont"/> -->
+ <cd:constant type="..."/>
+ <cd:constant type="12pt"/>
+ <cd:constant type="implicit"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:parameter name="text">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="script">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="scriptscript">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="x">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="xx">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="a">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="b">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="c">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="d">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="mic">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="mare">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="spatiereinterliniara">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="em">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbodyfontenvironment" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="seteazamediulfonttext"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes"> <!-- same as definebodyfontenvironment; you can define the whole commant to inherit, not only parameters-->
+ <cd:inherit name="definestemediulfonttext" n="1"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="no">
+ <cd:inherit name="definestemediulfonttext" n="2" optional="no"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="definestemediulfonttext" n="3"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showbodyfontenvironment" file="font-run.tex" category="fonts"> <!-- and debug -->
+ <cd:sequence>
+ <cd:string value="afiseazamediufonttext"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:inherit name="seteazafonttext" n="1"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definebodyfont" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="definestefonttext"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes"> <!-- <cd:constant type="implicit"/> -->
+ <cd:resolve name="bodyfont"/> <!-- TODO: check this -->
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="rm" default="yes"/>
+ <cd:constant type="ss"/>
+ <cd:constant type="tt"/>
+ <cd:constant type="hw"/>
+ <cd:constant type="cg"/>
+ <cd:constant type="mm"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:parameter name="tf">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="bf">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="sl">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="it">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="bs">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="bi">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="sc">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="mr">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="ex">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="mi">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="sy">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="ma">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="mb">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="mc">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="md">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definebodyfontDEF" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="definestefonttext"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="inaltime">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="inaltime">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="alternativ">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- <cd:constant type="d"/>
- </cd:parameter>
- <cd:parameter name="grosimerigla">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="culoare">
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:inherit name="seteazafonttext" n="2"/>
+ </cd:keywords>
+ <cd:keywords n="1">
+ <cd:inherit name="seteazafonttext" n="3"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definebodyfontREF" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="definestefonttext"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:inherit name="seteazafonttext" n="1"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:inherit name="seteazafonttext" n="2"/>
+ </cd:keywords>
+ <cd:keywords n="3">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="fundal">
- <cd:constant type="culoare"/>
- </cd:parameter>
- <cd:parameter name="culoarefundal">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+
+ <cd:command name="showbodyfont" file="font-run.tex" category="fonts"> <!-- visual debugging -->
+ <cd:sequence>
+ <cd:string value="afiseazafonttext"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:inherit name="seteazafonttext" n="1"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbodyfont" file="font-run.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="seteazafonttext"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes"> <!-- TODO: many missing, maybe also <cd:resolve name="bodyfont"/> -->
<cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="hairline" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="firdepar"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="thinrule" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="liniesubtire"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="defineframedtext" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="definestetextinconjurat"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="definestetexteinconjurate"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineframed" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="definesteinconjurare"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="definestetexteinconjurate"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupframedtexts" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="definestetexteinconjurate"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="fonttext">
+ <cd:constant type="serif"/>
+ <cd:constant type="regular"/>
+ <cd:constant type="roman"/>
+ <cd:constant type="sans"/>
+ <cd:constant type="suport"/>
+ <cd:constant type="sansserif"/>
+ <cd:constant type="mono"/>
+ <cd:constant type="type"/>
+ <cd:constant type="teletype"/>
+ <cd:constant type="scrismanual"/>
+ <cd:constant type="caligrafic"/>
<cd:constant type="5pt"/>
<cd:constant type="..."/>
<cd:constant type="12pt"/>
- <cd:constant type="mic"/>
- <cd:constant type="mare"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stanga">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dreapta">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="intern">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="corectielinie">
- <cd:constant type="on"/>
- <cd:constant type="dezactivat"/>
- </cd:parameter>
- <cd:parameter name="corectieadancime">
- <cd:constant type="on"/>
- <cd:constant type="dezactivat"/>
- </cd:parameter>
- <cd:parameter name="margine">
- <cd:constant type="standard"/>
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="locatie">
- <cd:constant type="stanga"/>
- <cd:constant type="dreapta"/>
- <cd:constant type="centru"/>
- <cd:constant type="niciunul"/>
- </cd:parameter>
- <cd:parameter name="aliniat">
- <cd:resolve name="indenting"/>
- </cd:parameter>
- <cd:inherit name="seteazainconjurat"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="framedtext" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="textinconjurat"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="stanga"/>
- <cd:constant type="dreapta"/>
- <cd:constant type="centru"/>
- <cd:constant type="niciunul"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="definestetexteinconjurate"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="framedtext" generated="yes">
- <cd:sequence>
- <cd:variable value="textinconjurat"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="definestetexteinconjurate"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="background" type="environment">
- <cd:sequence>
- <cd:string value="fundal"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="background">
- <cd:sequence>
- <cd:string value="fundal"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupbackground" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="seteazafundal"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="offsetstanga">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offsetdreapta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offsetsus">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offsetjos">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="stare">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:inherit name="seteazainconjurat"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="fillinrules">
- <cd:sequence>
- <cd:string value="rigleumplere"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="seteazarigleumplere"/>
- </cd:assignments>
- <cd:content/>
- <cd:content optional="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="fillintext">
- <cd:sequence>
- <cd:string value="textumplere"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="seteazarigleumplere"/>
- </cd:assignments>
- <cd:content/>
- <cd:content optional="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfillinrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="seteazarigleumplere"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="latime">
- <cd:constant type="ajustat"/>
- <cd:constant type="broad"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="spatiereinterliniara">
- <cd:constant type="mic"/>
- <cd:constant type="mediu"/>
- <cd:constant type="mare"/>
- </cd:parameter>
- <cd:parameter name="separator">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="fillinline">
- <cd:sequence>
- <cd:string value="linieumplere"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="seteazaliniiumplere"/>
- </cd:assignments>
- <cd:nothing/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfillinlines" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="seteazaliniiumplere"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="margine">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptextrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="seteazarigletext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="locatie">
- <cd:constant type="stanga"/>
- <cd:constant type="inmargine"/>
- </cd:parameter>
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="intre">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="fonttext">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="switchtobodyfont" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="trecilafonttext"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ <cd:constant type="serif"/>
+ <cd:constant type="regular"/>
+ <cd:constant type="roman"/>
+ <cd:constant type="sans"/>
+ <cd:constant type="suport"/>
+ <cd:constant type="sansserif"/>
+ <cd:constant type="mono"/>
+ <cd:constant type="type"/>
+ <cd:constant type="teletype"/>
+ <cd:constant type="scrismanual"/>
+ <cd:constant type="caligrafic"/>
<cd:constant type="5pt"/>
<cd:constant type="..."/>
<cd:constant type="12pt"/>
<cd:constant type="mic"/>
<cd:constant type="mare"/>
- </cd:parameter>
- <cd:parameter name="culoare">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefont" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="definestefont"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="culoarerigla">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="textrule" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="riglatext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="sus"/>
- <cd:constant type="subsol"/>
- </cd:keywords>
- <cd:content optional="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="textrule" type="environment" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="riglatext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="sus"/>
- <cd:constant type="subsol"/>
- </cd:keywords>
- <cd:content optional="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="blackrule" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="linieneagra"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="seteazaliniinegre"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="blackrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="liniinegre"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:inherit name="seteazaliniinegre"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupblackrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="seteazaliniinegre"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="inaltime">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="inaltime">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="alternativ">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- </cd:parameter>
- <cd:parameter name="distanta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineoverlay" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="definesteoverlay"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:command"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="usemodule">
- <cd:sequence>
- <cd:string value="folosestemodul"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="reset" file="core-num.tex">
- <cd:sequence>
- <cd:string value="reset"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="donttest">
- <cd:sequence>
- <cd:string value="nutesta"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="localenvironment" type="environment">
- <cd:sequence>
- <cd:string value="localenvironment"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupsystem" file="core-sys.tex">
- <cd:sequence>
- <cd:string value="seteazasistem"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="rezolutie">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="fisier">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="director">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="aleator">
- <cd:constant type="normal"/>
- <cd:constant type="mic"/>
- <cd:constant type="mediu"/>
- <cd:constant type="mare"/>
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="usedirectory">
- <cd:sequence>
- <cd:string value="usedirectory"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- <cd:constant type="reset"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="low" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="jos"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="high" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="inalt"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="lohi" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="jossus"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="jos"/>
- </cd:keywords>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showframe">
- <cd:sequence>
- <cd:string value="afiseazarama"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- <cd:constant type="margine"/>
- <cd:constant type="bordura"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="leftaligned" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="aliniatstanga"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="rightaligned" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="aliniatdreapta"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="midaligned" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="aliniatcentru"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="wordright" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="cuvantdreapta"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="inmargin" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="marginal"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="jos"/>
- </cd:keywords>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="inothermargin" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="inaltamargine"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="jos"/>
- </cd:keywords>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="inleft">
- <cd:sequence>
- <cd:string value="instanga"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="jos"/>
- </cd:keywords>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="inright">
- <cd:sequence>
- <cd:string value="indreapta"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="jos"/>
- </cd:keywords>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="ininner">
- <cd:sequence>
- <cd:string value="ininner"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="jos"/>
- </cd:keywords>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="inouter">
- <cd:sequence>
- <cd:string value="inouter"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="jos"/>
- </cd:keywords>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="column">
- <cd:sequence>
- <cd:string value="coloana"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="showstruts" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="afiseazastruts"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="showsetups">
- <cd:sequence>
- <cd:string value="afiseazasetari"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="showlayout">
- <cd:sequence>
- <cd:string value="afiseazaaspect"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="margintext" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="textmarginal"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="jos"/>
- </cd:keywords>
- <cd:reference optional="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupmarginblocks" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="seteazablocurimarginale"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="locatie">
- <cd:constant type="inmargine"/>
- <cd:constant type="stanga"/>
- <cd:constant type="centru"/>
- <cd:constant type="dreapta"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="aliniere">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="sus">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="intre">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="jos">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="stanga">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dreapta">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="marginblock" type="environment">
- <cd:sequence>
- <cd:string value="marginblock"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="part" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="part"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="title" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="title"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="chapter" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="chapter"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="section" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="section"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="subsection" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subsection"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="subsubsection" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subsubsection"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="subject" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subject"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="subsubject" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subsubject"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="subsubsubject" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subsubsubject"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="appendix" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="appendix"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="in" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="in"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content interactive="yes"/>
- <cd:content interactive="yes"/>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="at">
- <cd:sequence>
- <cd:string value="la"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content interactive="yes"/>
- <cd:content interactive="yes"/>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="about">
- <cd:sequence>
- <cd:string value="despre"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content interactive="yes"/>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="somewhere" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="undeva"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="atpage" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="lapagina"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="ref" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="ref"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="t"/>
- <cd:constant type="p"/>
- <cd:constant type="r"/>
- <cd:constant type="s"/>
- <cd:constant type="e"/>
- </cd:keywords>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="textreference" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="referintatext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="pagereference" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="referintapagina"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="reference" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="referinta"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="usereferences" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="folosestereferinte"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definereference" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="definestereferinte"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:reference list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definereferenceformat" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="definesteformatreferinte"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="stanga">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="dreapta">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="text">
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="eticheta">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcolor" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="seteazaculoare"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="hl">
- <cd:sequence>
- <cd:string value="hl"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="vl">
- <cd:sequence>
- <cd:string value="vl"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="godown" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="injos"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="whitespace" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="spatiualb"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="nowhitespace" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="faraspatiualb"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="crlf" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="crlf"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="space" file="syst-pln.tex">
- <cd:sequence>
- <cd:string value="spatiu"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="fixedspaces" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="spatiifixate"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="emptylines" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="emptylines"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="nospace" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="faraspatiu"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="packed" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="impachetat"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupdescriptions" file="core-des.tex">
- <cd:sequence>
- <cd:string value="seteazadescriere"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="stiltitlu">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="culoare">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="ajustat"/>
- <cd:constant type="broad"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="exemplu">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="text">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="closesymbol">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="closecommand">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="titleleft">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcolors" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="seteazaculori"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="stare">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="global"/>
+ <cd:constant type="local"/>
+ </cd:parameter>
+ <cd:parameter name="conversie">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ <cd:constant type="totdeauna"/>
+ </cd:parameter>
+ <cd:parameter name="reducere">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ <cd:parameter name="rgb">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ <cd:parameter name="cmyk">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ <cd:parameter name="mpcmyk">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ <cd:parameter name="mpspot">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ <cd:parameter name="factor">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ <cd:parameter name="culoaretext">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="split">
+ <cd:constant type="c"/>
+ <cd:constant type="m"/>
+ <cd:constant type="y"/>
+ <cd:constant type="k"/>
+ <cd:constant type="p"/>
+ <cd:constant type="s"/>
+ <cd:constant type="nu"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="criteriu">
+ <cd:constant type="tot"/>
+ <cd:constant type="niciunul"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definecolor" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="definesteculoare"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="r">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="g">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="b">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="c">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="m">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="y">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="k">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="s">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="h">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="t">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="a">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="p">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="e">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="color" type="environment" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="culoare"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="color" file="colo-ini.tex">
+ <cd:sequence>
+ <cd:string value="culoare"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="titleright">
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="graycolor" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="culoaregri"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="distantatitlu">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stiltitlu">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="culoaretitlu">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="aliniere">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="margine">
- <cd:constant type="standard"/>
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="locatie">
- <cd:constant type="stanga"/>
- <cd:constant type="dreapta"/>
- <cd:constant type="sus"/>
- <cd:constant type="serried"/>
- <cd:constant type="inmargine"/>
- <cd:constant type="instanga"/>
- <cd:constant type="indreapta"/>
- <cd:constant type="suspendat"/>
- </cd:parameter>
- <cd:parameter name="headcommand">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="suspenda">
- <cd:constant type="ajustat"/>
- <cd:constant type="broad"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showcolor" file="colo-run.tex" category="colors"> <!-- and debug -->
+ <cd:sequence>
+ <cd:string value="afiseazaculoare"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definepalet" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="definestepaleta"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="cd:name">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppalet" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="seteazapaleta"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definecolorgroup" file="colo-ini.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="definestegrupculori"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="rgb" default="yes"/>
+ <cd:constant type="cmyk"/>
+ <cd:constant type="gri"/>
+ <cd:constant type="s"/>
+ </cd:keywords>
+ <cd:triplet n="3" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showpalet" file="colo-run.tex" category="colors"> <!-- and debug -->
+ <cd:sequence>
+ <cd:string value="afiseazapaleta"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="orizontal"/>
+ <cd:constant type="vertical"/>
+ <cd:constant type="nume"/>
+ <cd:constant type="valoare"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showcolorgroup" file="colo-run.tex" category="colors"> <!-- and debug-->
+ <cd:sequence>
+ <cd:string value="afiseazagrupculoare"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="orizontal"/>
+ <cd:constant type="vertical"/>
+ <cd:constant type="nume"/>
+ <cd:constant type="valoare"/>
<cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="intre">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="aliniaturmator">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="aliniat">
- <cd:resolve name="indenting"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupenumerations" file="core-des.tex">
- <cd:sequence>
- <cd:string value="seteazaenumerare"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="definestedescriere"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineenumeration" file="core-des.tex">
- <cd:sequence>
- <cd:string value="definesteenumerare"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="seteazaenumerare"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="enumeration" generated="yes">
- <cd:sequence>
- <cd:variable value="enumerare"/>
- </cd:sequence>
- <cd:arguments>
- <cd:nothing interactive="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="enumeration" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="enumerare"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="definedescription" file="core-des.tex">
- <cd:sequence>
- <cd:string value="definestedescriere"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="seteazadescriere"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="description" generated="yes">
- <cd:sequence>
- <cd:variable value="descriere"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:nothing/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="description" type="environment" generated="yes">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="comparepalet" file="colo-run.tex" category="colors"> <!-- and debug? -->
+ <cd:sequence>
+ <cd:string value="comparapaleta"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="comparecolorgroup" file="colo-run.tex" category="colors">
+ <cd:sequence>
+ <cd:string value="comparagrupculoare"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showmakeup" file="supp-vis.tex" category="debug">
+ <cd:sequence>
+ <cd:string value="afiseazamakeup"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="definetype" file="core-ver.tex" category="verbatim">
+ <cd:sequence>
+ <cd:string value="definetype"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="seteazatype" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptype" file="core-ver.tex" category="verbatim"> <!-- TODO -->
+ <cd:sequence>
+ <cd:string value="seteazatype"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="spatiu">
+ <cd:constant type="on"/>
+ <cd:constant type="dezactivat" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="optiune">
+ <cd:constant type="inclinat"/>
+ <cd:constant type="normal"/>
+ <cd:constant type="niciunul"/>
+ </cd:parameter>
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="culoare">
+ <cd:constant type="cd:name" default=""/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="type" file="verb-ini.tex" category="verbatim">
+ <cd:sequence>
+ <cd:string value="type"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="typ" file="core-ver.tex" category="verbatim">
+ <cd:sequence>
+ <cd:string value="typ"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tex" file="core-ver.tex" category="verbatim">
+ <cd:sequence>
+ <cd:string value="tex"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <!-- cd:command name="arg" file="core-ver.tex"> command broken
<cd:sequence>
- <cd:variable value="descriere"/>
+ <cd:string value="arg"/>
</cd:sequence>
<cd:arguments>
<cd:content/>
</cd:arguments>
-</cd:command>
-
-<cd:command name="setupindentations" file="core-des.tex">
- <cd:sequence>
- <cd:string value="seteazaaliniate"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stiltitlu">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="ajustat"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="text">
+</cd:command -->
+
+ <cd:command name="definetyping" file="core-ver.tex" category="verbatim">
+ <cd:sequence>
+ <cd:string value="definestetyping"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:inherit name="seteazatyping" n="1"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="seteazatyping" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptyping" file="core-ver.tex" category="verbatim">
+ <cd:sequence>
+ <cd:string value="seteazatyping"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="fisier"/>
+ <cd:constant type="typing"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="spatiu">
+ <cd:constant type="on"/>
+ <cd:constant type="dezactivat"/>
+ </cd:parameter>
+ <cd:parameter name="pagina">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ <cd:parameter name="optiune">
+ <cd:constant type="inclinat"/>
+ <cd:constant type="normal"/>
+ <cd:constant type="comenzi"/>
+ <cd:constant type="culoare"/>
+ <cd:constant type="niciunul"/>
+ </cd:parameter>
+ <cd:parameter name="text">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ <cd:parameter name="comandai">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="comandav">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="comandac">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="inainte">
+ <cd:constant type="cd:command" default="\blank"/>
+ </cd:parameter>
+ <cd:parameter name="dupa">
+ <cd:constant type="cd:command" default="\blank"/>
+ </cd:parameter>
+ <cd:parameter name="margine">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="standard"/>
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ <cd:parameter name="marginepara">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="margineimpara">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="blanc">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="mic"/>
+ <cd:constant type="mediu"/>
+ <cd:constant type="mare"/>
+ <cd:constant type="standard"/>
+ <cd:constant type="jumatatelinie"/>
+ <cd:constant type="linie"/>
+ </cd:parameter>
+ <cd:parameter name="escape">
+ <cd:constant type="cd:character"/>
+ </cd:parameter>
+ <cd:parameter name="spatiu">
+ <cd:constant type="on"/>
+ <cd:constant type="dezactivat"/>
+ </cd:parameter>
+ <cd:parameter name="tab">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ <cd:parameter name="pagina">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ <cd:parameter name="aliniaturmator">
+ <cd:resolve name="indentnext"/>
+ </cd:parameter>
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="culoare">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="paleta">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="linii">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ <cd:constant type="despsilabe"/>
+ </cd:parameter>
+ <cd:parameter name="gol">
+ <cd:constant type="da"/>
+ <cd:constant type="tot"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ <cd:parameter name="numerotare">
+ <cd:constant type="linie"/>
+ <cd:constant type="fisier"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ <cd:parameter name="fonttext">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="typing" type="environment" generated="yes" file="verb-ini.tex"
+ category="verbatim">
+ <cd:sequence>
+ <cd:variable value="typing"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="typefile" file="verb-ini.tex" category="verbatim">
+ <cd:sequence>
+ <cd:string value="typefile"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfootnotes" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="seteazanotasubsol"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="conversie">
+ <cd:constant type="numere"/>
+ <cd:constant type="caractere"/>
+ <cd:constant type="Caractere"/>
+ <cd:constant type="numereromane"/>
+ <cd:constant type="Numereromane"/>
+ </cd:parameter>
+ <cd:parameter name="mod">
+ <cd:constant type="bytext"/>
+ <cd:constant type="bycd:section"/>
+ </cd:parameter>
+ <cd:parameter name="locatie">
+ <cd:constant type="pagina"/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="coloane"/>
+ <cd:constant type="firstcolumn"/>
+ <cd:constant type="lastcolumn"/>
+ <cd:constant type="inalt"/>
+ <cd:constant type="niciunul"/>
+ </cd:parameter>
+ <cd:parameter name="rigla">
+ <cd:constant type="on"/>
+ <cd:constant type="dezactivat"/>
+ </cd:parameter>
+ <cd:parameter name="inainte">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dupa">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="latime">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="inaltime">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="fonttext">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="distanta">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distantacoloane">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distantamargine">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="comandanumar">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="comandatext">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="split">
+ <cd:constant type="tolerant"/>
+ <cd:constant type="strict"/>
+ <cd:constant type="foartestrict"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="stiltext">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="culoaretext">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="interactiune">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ <cd:parameter name="factor">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:inherit name="seteazainconjurat" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfootnotedefinition" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="seteazadefinireanotasubsol"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:inherit name="seteazadescriere" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="footnote" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="notasubsol"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="footnotetext" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="footnotetext"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="note" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="nota"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" interactive="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="localfootnotes" type="environment" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="localfootnotes"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="placelocalfootnotes" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="punenotesubsollocale"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="seteazanotasubsol" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placefootnotes" file="core-not.tex" category="footnotes">
+ <cd:sequence>
+ <cd:string value="punenotesubsol"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="seteazanotasubsol" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupunderbar" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="seteazasublinie"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="alternativ">
+ <cd:constant type="a"/>
+ <cd:constant type="b"/>
+ <cd:constant type="c"/>
+ </cd:parameter>
+ <cd:parameter name="grosimerigla">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="offsetjos">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="offsetsus">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="culoarerigla">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="underbar" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="sublinie"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="underbars" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="sublinii"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overbar" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="barasus"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overbars" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="supralinie"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overstrike" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="liniepeste"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overstrikes" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="liniipeste"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="romannumerals" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="numereromane"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Romannumerals" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="Numereromane"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="numbers" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="numere"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="character" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="litera"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Character" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="Litera"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="characters" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="litere"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Characters" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="Litere"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mediaeval" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="mediaeval"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="month" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="luna"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MONTH" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="LUNA"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="weekday" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="zidinsaptamana"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="WEEKDAY" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="ZIDINSAPTAMANA"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcapitals" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="seteazamajuscule"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="titlu">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ <cd:parameter name="sc">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="cap" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="cap"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nocap" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="nocap"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="CAP" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="CAP"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Cap" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="Cap"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Caps" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="Caps"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="WORD" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="CUVANT"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="WORDS" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="CUVINTE"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Word" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="Cuvant"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Words" file="core-fnt.tex" category="Fonts">
+ <cd:sequence>
+ <cd:string value="Cuvinte"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="stretched" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="intins"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:word n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definesymbol" file="symb-ini.tex">
+ <cd:sequence>
+ <cd:string value="definestesimbol"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="exemplu">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefiguresymbol" file="symb-ini.tex">
+ <cd:sequence>
+ <cd:string value="definestesimbolfigura"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="seteazafiguriexterne" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="symbol" file="symb-ini.tex">
+ <cd:sequence>
+ <cd:string value="simbol"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="symbolset" type="environment" file="symb-ini.tex" category="symbols">
+ <cd:sequence>
+ <cd:string value="symbolset"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsymbolset" file="symb-ini.tex" category="symbols">
+ <cd:sequence>
+ <cd:string value="seteazasimbol"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usesymbols" file="symb-ini.tex" category="symbols">
+ <cd:sequence>
+ <cd:string value="folosestesimboluri"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showsymbolset" file="symb-run.tex" category="symbols"> <!-- and symbols -->
+ <cd:sequence>
+ <cd:string value="afiseazasetsimboluri"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineconversion" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="definesteconversie"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
<cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="distanta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="separator">
<cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineindenting" file="core-des.tex">
- <cd:sequence>
- <cd:string value="definestealiat"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="seteazaaliniate"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="indentation" generated="yes" file="core-spa.tex">
- <cd:sequence>
- <cd:variable value="indentation"/>
- </cd:sequence>
- <cd:arguments>
- <cd:nothing/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definelabel" file="core-des.tex">
- <cd:sequence>
- <cd:string value="definesteeticheta"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="text">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="locatie">
- <cd:constant type="inmargine"/>
- <cd:constant type="intext"/>
- </cd:parameter>
- <cd:parameter name="mod">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="blockway">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="stiltitlu">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="culoaretitlu">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="labeling" generated="yes">
- <cd:sequence>
- <cd:variable value="labeling"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupcolumns" file="page-mul.tex">
- <cd:sequence>
- <cd:string value="seteazacoloane"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="n">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="convertnumber" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="convertestenumar"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupheadtext" file="lang-lab.tex">
+ <cd:sequence>
+ <cd:string value="seteazatexttitlu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:resolve name="language"/>
+ </cd:keywords>
+ <cd:assignments n="2">
+ <cd:parameter name="cd:name">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplabeltext" file="lang-lab.tex">
+ <cd:sequence>
+ <cd:string value="seteazatexteticheta"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:resolve name="language"/>
+ </cd:keywords>
+ <cd:assignments n="2">
+ <cd:parameter name="cd:name">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="headtext" file="lang-lab.tex">
+ <cd:sequence>
+ <cd:string value="texttitlu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="labeltext" file="lang-lab.tex">
+ <cd:sequence>
+ <cd:string value="texteticheta"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupmarginrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="seteazaliniimargine"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1">
+ <cd:parameter name="nivel">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="grosimerigla">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="marginrule" type="environment" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="liniemargine"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="nsus">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="marginrule" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="liniemargine"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="rigla">
- <cd:constant type="on"/>
- <cd:constant type="dezactivat"/>
- </cd:parameter>
- <cd:parameter name="inaltime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="toleranta">
- <cd:constant type="foartestrict"/>
- <cd:constant type="strict"/>
- <cd:constant type="tolerant"/>
- <cd:constant type="foartetolerant"/>
- <cd:constant type="dilatat"/>
- </cd:parameter>
- <cd:parameter name="distanta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="balanta">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="aliniere">
- <cd:constant type="text"/>
- <!-- cd:constant type="yes"/ -->
- <!-- cd:constant type="no"/ -->
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="blanc">
- <cd:constant type="fixat"/>
- <cd:constant type="jumatatelinie"/>
- <cd:constant type="linie"/>
- <cd:constant type="flexibil"/>
- <cd:constant type="mare"/>
- <cd:constant type="mediu"/>
- <cd:constant type="mic"/>
- </cd:parameter>
- <cd:parameter name="optiune">
- <cd:constant type="fundal"/>
- </cd:parameter>
- <cd:parameter name="directie">
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplinewidth" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="seteazagrosimelinie"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupframed" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="seteazainconjurat"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/> <!-- defines a command with that name -->
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="inaltime">
+ <cd:constant type="ajustat"/>
+ <cd:constant type="broad"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="latime">
+ <cd:constant type="ajustat"/>
+ <cd:constant type="broad"/>
+ <cd:constant type="fixat"/>
+ <cd:constant type="local"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="autolatime">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ <cd:constant type="fortat"/>
+ </cd:parameter>
+ <cd:parameter name="offset">
+ <cd:constant type="niciunul"/>
+ <cd:constant type="overlay"/>
+ <cd:constant type="implicit"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="locatie">
+ <cd:constant type="adancime"/>
+ <cd:constant type="suspendat"/>
+ <cd:constant type="inalt"/>
+ <cd:constant type="lohi"/>
+ <cd:constant type="jos"/>
+ <cd:constant type="sus"/>
+ <cd:constant type="centru"/>
+ <cd:constant type="subsol"/>
+ <cd:constant type="mentine"/>
+ </cd:parameter>
+ <cd:parameter name="optiune">
+ <cd:constant type="niciunul"/>
+ <cd:constant type="gol"/>
+ </cd:parameter>
+ <cd:parameter name="strut">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ <cd:constant type="global"/>
+ <cd:constant type="local"/>
+ </cd:parameter>
+ <cd:parameter name="aliniere">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="jos">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="sus">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="frame">
+ <cd:constant type="on"/>
+ <cd:constant type="dezactivat"/>
+ <cd:constant type="niciunul"/>
+ <cd:constant type="overlay"/>
+ </cd:parameter>
+ <cd:parameter name="framesus">
+ <cd:constant type="on"/>
+ <cd:constant type="dezactivat"/>
+ </cd:parameter>
+ <cd:parameter name="framejos">
+ <cd:constant type="on"/>
+ <cd:constant type="dezactivat"/>
+ </cd:parameter>
+ <cd:parameter name="framestanga">
+ <cd:constant type="on"/>
+ <cd:constant type="dezactivat"/>
+ </cd:parameter>
+ <cd:parameter name="framedreapta">
+ <cd:constant type="on"/>
+ <cd:constant type="dezactivat"/>
+ </cd:parameter>
+ <cd:parameter name="offsetframe">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="adancimeframe">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="coltframe">
+ <cd:constant type="rotund"/>
+ <cd:constant type="rectangular"/>
+ </cd:parameter>
+ <cd:parameter name="razaframe">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="culoareframe">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="fundal">
+ <cd:constant type="ecran"/>
+ <cd:constant type="culoare"/>
+ <cd:constant type="niciunul"/>
+ <cd:constant type="primplan"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="ecranfundal">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="culoarefundal">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="offsetfundal">
+ <cd:constant type="incadrat"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="adancimefundal">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="coltfundal">
+ <cd:constant type="rotund"/>
+ <cd:constant type="rectangular"/>
+ </cd:parameter>
+ <cd:parameter name="razafundal">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="inaltime">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="colt">
+ <cd:constant type="rotund"/>
+ <cd:constant type="rectangular"/>
+ </cd:parameter>
+ <cd:parameter name="raza">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="gol">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ <cd:parameter name="foregroundcolor">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="foregroundstyle">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="grosimerigla">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="framed" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="framed"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="seteazainconjurat" n="2"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inframed" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="inframed"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="seteazainconjurat" n="2"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="thinrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="liniisubtiri"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes">
+ <cd:inherit name="seteazaliniesubtire" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupthinrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="seteazaliniesubtire"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1">
+ <cd:parameter name="spatiereinterliniara">
+ <cd:constant type="mic"/>
+ <cd:constant type="mediu"/>
+ <cd:constant type="mare"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="inainte">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="intre">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dupa">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="culoare">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="culoarefundal">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="inaltime">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="max"/>
+ </cd:parameter>
+ <cd:parameter name="inaltime">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="max"/>
+ </cd:parameter>
+ <cd:parameter name="alternativ">
+ <cd:constant type="a"/>
+ <cd:constant type="b"/>
+ <cd:constant type="c"/>
+ <cd:constant type="d"/>
+ </cd:parameter>
+ <cd:parameter name="grosimerigla">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="culoare">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="fundal">
+ <cd:constant type="culoare"/>
+ </cd:parameter>
+ <cd:parameter name="culoarefundal">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="hairline" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="firdepar"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="thinrule" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="liniesubtire"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="defineframedtext" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="definestetextinconjurat"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="definestetexteinconjurate" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineframed" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="definesteinconjurare"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="definestetexteinconjurate" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupframedtexts" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="definestetexteinconjurate"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="fonttext">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="stanga">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dreapta">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="inainte">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dupa">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="intern">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="corectielinie">
+ <cd:constant type="on"/>
+ <cd:constant type="dezactivat"/>
+ </cd:parameter>
+ <cd:parameter name="corectieadancime">
+ <cd:constant type="on"/>
+ <cd:constant type="dezactivat"/>
+ </cd:parameter>
+ <cd:parameter name="margine">
+ <cd:constant type="standard"/>
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ <cd:parameter name="locatie">
+ <cd:constant type="stanga"/>
+ <cd:constant type="dreapta"/>
+ <cd:constant type="centru"/>
+ <cd:constant type="niciunul"/>
+ </cd:parameter>
+ <cd:parameter name="aliniat">
+ <cd:resolve name="indenting"/>
+ </cd:parameter>
+ <cd:inherit name="seteazainconjurat" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="framedtext" type="environment" generated="yes" file="core-rul.tex">
+ <cd:sequence>
+ <cd:variable value="textinconjurat"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="stanga"/>
<cd:constant type="dreapta"/>
- </cd:parameter>
- <cd:inherit name="seteazainconjurat"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="columns" type="environment">
- <cd:sequence>
- <cd:string value="columns"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="seteazacoloane"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definetext" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="definestetext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="antet"/>
- <cd:constant type="subsol"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupheader" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="seteazaantet"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text" default="yes"/>
- <cd:constant type="margine"/>
- <cd:constant type="bordura"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="stare">
- <cd:constant type="normal"/>
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- <cd:constant type="gol"/>
- <cd:constant type="inalt"/>
+ <cd:constant type="centru"/>
<cd:constant type="niciunul"/>
- <cd:constant type="faramarcare"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="definestetexteinconjurate" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="framedtext" generated="yes" file="core-rul.tex">
+ <cd:sequence>
+ <cd:variable value="textinconjurat"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="definestetexteinconjurate" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="background" type="environment" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="fundal"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="background" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="fundal"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbackground" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="seteazafundal"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="offsetstanga">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="offsetdreapta">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="offsetsus">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="offsetjos">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="inainte">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dupa">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="stare">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:inherit name="seteazainconjurat" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fillinrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="rigleumplere"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="seteazarigleumplere" n="1"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ <cd:content n="3" optional="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fillintext" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="textumplere"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="seteazarigleumplere" n="1"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ <cd:content n="3" optional="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfillinrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="seteazarigleumplere"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="latime">
+ <cd:constant type="ajustat"/>
+ <cd:constant type="broad"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distanta">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="inainte">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dupa">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="spatiereinterliniara">
+ <cd:constant type="mic"/>
+ <cd:constant type="mediu"/>
+ <cd:constant type="mare"/>
+ </cd:parameter>
+ <cd:parameter name="separator">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fillinline" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="linieumplere"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="seteazaliniiumplere" n="1"/>
+ </cd:assignments>
+ <cd:nothing n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfillinlines" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="seteazaliniiumplere"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="latime">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="margine">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distanta">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="inainte">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dupa">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptextrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="seteazarigletext"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="locatie">
+ <cd:constant type="stanga"/>
+ <cd:constant type="inmargine"/>
+ </cd:parameter>
+ <cd:parameter name="inainte">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dupa">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="intre">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="latime">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distanta">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="fonttext">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ <cd:parameter name="culoare">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="culoarerigla">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="textrule" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="riglatext"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="sus"/>
+ <cd:constant type="subsol"/>
+ </cd:keywords>
+ <cd:content n="2" optional="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="textrule" type="environment" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="riglatext"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="sus"/>
+ <cd:constant type="subsol"/>
+ </cd:keywords>
+ <cd:content n="2" optional="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="blackrule" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="linieneagra"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="seteazaliniinegre" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="blackrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="liniinegre"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:inherit name="seteazaliniinegre" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupblackrules" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="seteazaliniinegre"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="latime">
+ <cd:constant type="cd:dimension" default="1em"/>
+ <cd:constant type="max"/>
+ </cd:parameter>
+ <cd:parameter name="inaltime">
+ <cd:constant type="cd:dimension" default="1ex"/>
+ <cd:constant type="max"/>
+ </cd:parameter>
+ <cd:parameter name="inaltime">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="max"/>
+ </cd:parameter>
+ <cd:parameter name="alternativ">
+ <cd:constant type="a" default="yes"/>
+ <cd:constant type="b"/>
+ </cd:parameter>
+ <cd:parameter name="distanta">
+ <cd:constant type="cd:dimension" default=".25ex"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number" default="3"/>
+ </cd:parameter>
+ <cd:parameter name="culoare">
+ <cd:constant type="cd:name" default=""/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineoverlay" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="definesteoverlay"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stilstanga">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stildreapta">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="latimestanga">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="marginedreapta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfooter" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="seteazasubsol"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:inherit name="seteazaantet"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="seteazaantet"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptext" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="seteazatext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:inherit name="seteazaantet"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="seteazaantet"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptop" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="seteazasus"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:inherit name="seteazaantet"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="seteazaantet"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupbottom" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="seteazajos"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:inherit name="seteazaantet"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="seteazaantet"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="noheaderandfooterlines" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="faraliniiantetsisubsol"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="notopandbottomlines" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="faraliniisussijos"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupheadertexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="seteazatexteantet"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfootertexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="seteazatextesubsol"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptexttexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="seteazatextetext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptoptexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="seteazatextesus"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupbottomtexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="seteazatextejos"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="settextcontent" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="settextcontent"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:resolve name="layout-v"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="resettextcontent" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="resettextcontent"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:resolve name="layout-v"/>
- </cd:keywords>
- <cd:keywords>
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant name="lefttext"/>
- <cd:constant name="middletext"/>
- <cd:constant name="righttext"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definemarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="definestemarcaje"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="couplemarking" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="cupleazamarcaje"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="decouplemarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="decupleazamarcaje"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="resetmarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="reseteazamarcaje"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupmarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="seteazamarcaje"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments>
- <cd:parameter name="stare">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="separator">
+ </cd:keywords>
+ <cd:keywords n="2">
<cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="expansiune">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="marking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="marcaje"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="getmarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="adumarcaje"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="primul"/>
- <cd:constant type="ultim"/>
- <cd:constant type="precedent"/>
- <cd:constant type="ambele"/>
- <cd:constant type="tot"/>
- <cd:constant type="curent"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="nomarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="faramarcaje"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usemodule" file="core-fil.tex"> <!-- TODO -->
+ <cd:sequence>
+ <cd:string value="folosestemodul"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="reset" file="core-num.tex">
+ <cd:sequence>
+ <cd:string value="reset"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
-<cd:command name="setuplayout" file="page-ini.tex">
+ <!-- <cd:command name="donttest">
<cd:sequence>
- <cd:string value="seteazaaspect"/>
+ <cd:string value="nutesta"/>
</cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="ajustat"/>
- <cd:constant type="centru"/>
- </cd:parameter>
- <cd:parameter name="inaltime">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="ajustat"/>
- <cd:constant type="centru"/>
- </cd:parameter>
- <cd:parameter name="spatiuspate">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="spatiusus">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="margine">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="marginestanga">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="marginedreapta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="antet">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="subsol">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="sus">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="jos">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="bordurastanga">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="borduradreapta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distantaantet">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distantasubsol">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distantasus">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distantajos">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distantamarginestanga">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distantamarginedreapta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distantabordurastanga">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distantacoltdreapta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offsetoriz">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="veroffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="culoare">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="marcaje">
- <cd:constant type="on"/>
- <cd:constant type="dezactivat"/>
- <cd:constant type="culoare"/>
- <cd:constant type="ecran"/>
+</cd:command> -->
+
+ <cd:command name="localenvironment" type="environment" file="core-job.tex">
+ <cd:sequence>
+ <cd:string value="localenvironment"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupsystem" file="core-sys.tex">
+ <cd:sequence>
+ <cd:string value="seteazasistem"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="rezolutie">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="fisier">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="director">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="aleator">
+ <cd:constant type="normal"/>
+ <cd:constant type="mic"/>
+ <cd:constant type="mediu"/>
+ <cd:constant type="mare"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usedirectory" file="core-job.mkii"> <!-- usepath, todo: more than one file -->
+ <cd:sequence>
+ <cd:string value="usedirectory"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ <cd:constant type="reset"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="low" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="jos"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="high" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="inalt"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="lohi" file="core-fnt.tex">
+ <cd:sequence>
+ <cd:string value="jossus"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="jos"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showframe" file="page-run.tex">
+ <cd:sequence>
+ <cd:string value="afiseazarama"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="locatie">
- <cd:constant type="stanga"/>
- <cd:constant type="centru"/>
- <cd:constant type="dreapta"/>
- <cd:constant type="subsol"/>
- <cd:constant type="sus"/>
- <cd:constant type="ofata"/>
- <cd:constant type="douafete"/>
- </cd:parameter>
- <cd:parameter name="scala">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="nx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ny">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="dx">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="dy">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="linii">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="coloane">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="distantacoloane">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="grid">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="spatiujos">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="cutspace">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="textdistance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="latimetext">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="textmargin">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="clipoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="pagina">
+ <cd:constant type="margine"/>
+ <cd:constant type="bordura"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="leftaligned" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="aliniatstanga"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="rightaligned" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="aliniatdreapta"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="midaligned" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="aliniatcentru"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="wordright" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="cuvantdreapta"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inmargin" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="marginal"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="jos"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inothermargin" file="page-mar.tex">
+ <cd:sequence>
+ <cd:string value="inaltamargine"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="jos"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inleft" file="page-mar.tex">
+ <cd:sequence>
+ <cd:string value="instanga"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="jos"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inright" file="page-mar.tex">
+ <cd:sequence>
+ <cd:string value="indreapta"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="jos"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ininner" file="page-mar.tex">
+ <cd:sequence>
+ <cd:string value="ininner"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="jos"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inouter" file="page-mar.tex">
+ <cd:sequence>
+ <cd:string value="inouter"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="jos"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="column" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="coloana"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="showstruts" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="afiseazastruts"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="showsetups" file="page-run.tex">
+ <cd:sequence>
+ <cd:string value="afiseazasetari"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="showlayout" file="page-run.tex">
+ <cd:sequence>
+ <cd:string value="afiseazaaspect"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="margintext" file="page-mar.tex">
+ <cd:sequence>
+ <cd:string value="textmarginal"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="jos"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupmarginblocks" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="seteazablocurimarginale"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="locatie">
+ <cd:constant type="inmargine"/>
+ <cd:constant type="stanga"/>
+ <cd:constant type="centru"/>
+ <cd:constant type="dreapta"/>
+ </cd:parameter>
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="latime">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="aliniere">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="sus">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="intre">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="jos">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="stanga">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dreapta">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="inainte">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dupa">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="marginblock" type="environment" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="marginblock"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="part" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="part"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="title" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="title"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="chapter" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="chapter"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="section" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="section"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subsection" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="subsection"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subsubsection" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="subsubsection"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subject" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="subject"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subsubject" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="subsubject"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subsubsubject" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="subsubsubject"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="appendix" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="appendix"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="in" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="in"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="yes"/>
+ <cd:content n="2" interactive="yes"/>
+ <cd:reference n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="at" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="la"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="yes"/>
+ <cd:content n="2" interactive="yes"/>
+ <cd:reference n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="about" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="despre"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="yes"/>
+ <cd:reference n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="somewhere" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="undeva"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ <cd:reference n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="atpage" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="lapagina"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ref" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="ref"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="t"/>
+ <cd:constant type="p"/>
+ <cd:constant type="r"/>
+ <cd:constant type="s"/>
+ <cd:constant type="e"/>
+ </cd:keywords>
+ <cd:reference n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="textreference" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="referintatext"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="pagereference" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="referintapagina"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="reference" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="referinta"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usereferences" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="folosestereferinte"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definereference" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="definestereferinte"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="hartie">
+ </cd:keywords>
+ <cd:reference n="2" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definereferenceformat" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="definesteformatreferinte"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="adaptlayout" file="page-lay.tex">
- <cd:sequence>
- <cd:string value="adapteazaaspect"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="inaltime">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="linii">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showgrid" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="afiseazagrid"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="reset"/>
- <cd:constant type="sus"/>
- <cd:constant type="subsol"/>
- <cd:constant type="niciunul"/>
- <cd:constant type="tot"/>
- <cd:constant type="linii"/>
- <cd:constant type="incadrat"/>
- <cd:constant type="nonumber"/>
- <cd:constant type="dreapta"/>
- <cd:constant type="stanga"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placeongrid" file="core-grd.tex">
- <cd:sequence>
- <cd:string value="plaseazapegrid"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:inherit name="mutapegrid"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="moveongrid" file="core-grd.tex">
- <cd:sequence>
- <cd:string value="mutapegrid"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="sus"/>
- <cd:constant type="ambele"/>
- <cd:constant type="subsol"/>
- <cd:constant type="-top"/>
- <cd:constant type="-both"/>
- <cd:constant type="-bottom"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="inalt"/>
- <cd:constant type="centru"/>
- <cd:constant type="jos"/>
- <cd:constant type="pagina"/>
- <cd:constant type="niciunul"/>
- <cd:constant type="standard" default="yes"/>
- <cd:constant type="broad"/>
- <cd:constant type="ajustat"/>
- <cd:constant type="adancime"/>
- <cd:constant type="linie"/>
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="project" type="environment">
- <cd:sequence>
- <cd:string value="proiect"/>
- </cd:sequence>
- <cd:arguments>
- <cd:file/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="environment" type="environment">
- <cd:sequence>
- <cd:string value="mediu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:file/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="product" type="environment">
- <cd:sequence>
- <cd:string value="produs"/>
- </cd:sequence>
- <cd:arguments>
- <cd:file/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="component" type="environment">
- <cd:sequence>
- <cd:string value="componenta"/>
- </cd:sequence>
- <cd:arguments>
- <cd:file/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="nomorefiles">
- <cd:sequence>
- <cd:string value="farafisiere"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupinterlinespace" variant="1">
- <cd:sequence>
- <cd:string value="seteazaspatiuinterliniar"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="reset"/>
- <cd:constant type="mic" default="yes"/>
- <cd:constant type="mediu"/>
- <cd:constant type="auto"/>
- <cd:constant type="mare"/>
- <cd:constant type="on"/>
- <cd:constant type="dezactivat"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupinterlinespace" variant="2">
- <cd:sequence>
- <cd:string value="seteazaspatiuinterliniar"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="inaltime">
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="stanga">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="dreapta">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="text">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="eticheta">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="hl" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="hl"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="inaltime">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="vl" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="vl"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="linie">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="sus">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="jos">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="godown" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="injos"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="whitespace" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="spatiualb"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="nowhitespace" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="faraspatiualb"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="crlf" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="crlf"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="space" file="syst-pln.tex">
+ <cd:sequence>
+ <cd:string value="spatiu"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="fixedspaces" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="spatiifixate"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="emptylines" file="page-lin.tex">
+ <cd:sequence>
+ <cd:string value="emptylines"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuppagenumbering" file="page-num.tex">
- <cd:sequence>
- <cd:string value="seteazanumerotarepagina"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="alternativ">
- <cd:constant type="ofata"/>
- <cd:constant type="douafete"/>
- </cd:parameter>
- <cd:parameter name="locatie">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nospace" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="faraspatiu"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="packed" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="impachetat"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupdescriptions" file="core-des.tex">
+ <cd:sequence>
+ <cd:string value="seteazadescriere"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/> <!-- TODO: style=normal -->
+ </cd:parameter>
+ <cd:parameter name="culoare">
+ <cd:constant type="cd:name" default=""/>
+ </cd:parameter>
+ <cd:parameter name="latime">
+ <cd:constant type="ajustat"/>
+ <cd:constant type="broad"/>
+ <cd:constant type="cd:dimension" default="8em"/>
+ </cd:parameter>
+ <cd:parameter name="distanta">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="exemplu">
+ <cd:constant type="cd:text" default=""/>
+ </cd:parameter>
+ <cd:parameter name="text">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="closesymbol">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="closecommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="closesymbol">
+ <cd:constant type="cd:text" default=""/>
+ </cd:parameter>
+ <cd:parameter name="titleleft">
+ <cd:constant type="cd:text" default="("/>
+ </cd:parameter>
+ <cd:parameter name="titleright">
+ <cd:constant type="cd:text" default=")"/>
+ </cd:parameter>
+ <cd:parameter name="distantatitlu">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="stiltitlu">
+ <cd:resolve name="style"/> <!-- TODO: default=bold -->
+ </cd:parameter>
+ <cd:parameter name="culoaretitlu">
+ <cd:constant type="cd:name" default=""/>
+ </cd:parameter>
+ <cd:parameter name="aliniere">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="margine">
+ <cd:constant type="standard"/>
+ <cd:constant type="da"/>
+ <cd:constant type="nu" default="yes"/> <!-- TODO: this is default; conflicting syntax? -->
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="locatie">
+ <cd:constant type="stanga" default="yes"/>
+ <cd:constant type="dreapta"/>
+ <cd:constant type="sus"/>
+ <cd:constant type="serried"/>
+ <cd:constant type="inmargine"/>
+ <cd:constant type="instanga"/>
+ <cd:constant type="indreapta"/>
+ <cd:constant type="suspendat"/>
+ </cd:parameter>
+ <cd:parameter name="stiltitlu">
+ <cd:resolve name="style"/> <!-- TODO: default=bold -->
+ </cd:parameter>
+ <cd:parameter name="culoaretitlu">
+ <cd:constant type="cd:name" default=""/>
+ </cd:parameter>
+ <cd:parameter name="headcommand">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="suspenda">
+ <cd:constant type="ajustat"/>
+ <cd:constant type="broad"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="inainte">
+ <cd:constant type="cd:command" default="\blank"/>
+ </cd:parameter>
+ <cd:parameter name="intre">
+ <cd:constant type="cd:command" default="\blank"/>
+ </cd:parameter>
+ <cd:parameter name="dupa">
+ <cd:constant type="cd:command" default="\blank"/>
+ </cd:parameter>
+ <cd:parameter name="aliniaturmator">
+ <cd:resolve name="indentnext"/> <!-- default=yes -->
+ </cd:parameter>
+ <cd:parameter name="aliniat">
+ <cd:resolve name="indenting"/> <!-- default=never -->
+ </cd:parameter>
+ <cd:parameter name="comanda">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupenumerations" file="core-des.tex">
+ <cd:sequence>
+ <cd:string value="seteazaenumerare"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="seteazadescriere" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineenumeration" file="core-des.tex">
+ <cd:sequence>
+ <cd:string value="definesteenumerare"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="seteazaenumerare" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="enumeration" generated="yes" file="core-des.tex">
+ <cd:sequence>
+ <cd:variable value="enumerare"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:nothing n="1" interactive="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="enumeration" type="environment" generated="yes" file="core-des.tex">
+ <cd:sequence>
+ <cd:variable value="enumerare"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="definedescription" file="core-des.tex">
+ <cd:sequence>
+ <cd:string value="definestedescriere"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="seteazadescriere" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="description" generated="yes" file="core-des.tex">
+ <cd:sequence>
+ <cd:variable value="descriere"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:nothing n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="description" type="environment" generated="yes" file="core-des.tex">
+ <cd:sequence>
+ <cd:variable value="descriere"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupindentations" file="core-des.tex">
+ <cd:sequence>
+ <cd:string value="seteazaaliniate"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="stiltitlu">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="latime">
+ <cd:constant type="ajustat"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="text">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="exemplu">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="inainte">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dupa">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="distanta">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="separator">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineindenting" file="core-des.tex">
+ <cd:sequence>
+ <cd:string value="definestealiat"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="seteazaaliniate" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="indentation" generated="yes" file="core-spa.tex">
+ <cd:sequence>
+ <cd:variable value="indentation"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:nothing n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definelabel" file="core-des.tex">
+ <cd:sequence>
+ <cd:string value="definesteeticheta"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="text">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="locatie">
+ <cd:constant type="inmargine"/>
+ <cd:constant type="intext"/>
+ </cd:parameter>
+ <cd:parameter name="mod">
+ <cd:constant type="bytext"/>
+ <cd:constant type="bycd:section"/>
+ </cd:parameter>
+ <cd:parameter name="blockway">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ <cd:parameter name="stiltitlu">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="culoaretitlu">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="inainte">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dupa">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="labeling" generated="yes" file="core-des.tex">
+ <cd:sequence>
+ <cd:variable value="labeling"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcolumns" file="page-mul.tex">
+ <cd:sequence>
+ <cd:string value="seteazacoloane"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes"> <!-- no idea why it is optional -->
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="nsus">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="rigla">
+ <cd:constant type="on"/>
+ <cd:constant type="dezactivat"/> <!-- default and unknown missing -->
+ </cd:parameter>
+ <cd:parameter name="inaltime">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="toleranta">
+ <cd:constant type="foartestrict"/>
+ <cd:constant type="strict"/>
+ <cd:constant type="tolerant"/>
+ <cd:constant type="foartetolerant"/>
+ <cd:constant type="dilatat"/>
+ </cd:parameter>
+ <cd:parameter name="distanta">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="balanta">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ <cd:parameter name="aliniere">
+ <cd:constant type="text"/>
+ <!-- cd:constant type="yes"/ -->
+ <!-- cd:constant type="no"/ -->
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="blanc">
+ <cd:constant type="fixat"/>
+ <cd:constant type="jumatatelinie"/>
+ <cd:constant type="linie"/>
+ <cd:constant type="flexibil"/>
+ <cd:constant type="mare"/>
+ <cd:constant type="mediu"/>
+ <cd:constant type="mic"/>
+ </cd:parameter>
+ <cd:parameter name="optiune">
+ <cd:constant type="fundal"/>
+ </cd:parameter>
+ <cd:parameter name="directie">
+ <cd:constant type="stanga"/>
+ <cd:constant type="dreapta"/>
+ </cd:parameter>
+ <cd:inherit name="seteazainconjurat" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="columns" type="environment" file="page-mul.tex">
+ <cd:sequence>
+ <cd:string value="columns"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="seteazacoloane" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definetext" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="definestetext"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
<cd:constant type="antet"/>
<cd:constant type="subsol"/>
- <cd:constant type="stanga"/>
- <cd:constant type="dreapta"/>
- <cd:constant type="centru"/>
- <cd:constant type="margine"/>
- <cd:constant type="marginebordura"/>
- <cd:constant type="instanga"/>
- <cd:constant type="indreapta"/>
- </cd:parameter>
- <cd:parameter name="conversie">
- <cd:constant type="numere"/>
- <cd:constant type="caractere"/>
- <cd:constant type="Caractere"/>
- <cd:constant type="numereromane"/>
- <cd:constant type="Numereromane"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stanga">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="dreapta">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="mod">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="text">
+ </cd:keywords>
+ <cd:keywords n="3">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="separatornumar">
+ </cd:keywords>
+ <cd:keywords n="4" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="separatortext">
+ </cd:keywords>
+ <cd:keywords n="5" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="cd:sectionnumber">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="separator">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="stare">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="comanda">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupnarrower" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="seteazaingust"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="stanga">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="dreapta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="mijloc">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="define" file="syst-ext.tex">
- <cd:sequence>
- <cd:string value="defineste"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- <cd:csname/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="usecommands" file="core-sys.tex">
- <cd:sequence>
- <cd:string value="folosestecomenzi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definestartstop" file="core-sys.tex">
- <cd:sequence>
- <cd:string value="definestestartstop"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="comenzi">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupheads" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="seteazatitluri"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="numarsectiune">
- <cd:constant type="da"/>
- <cd:constant type="cd:number"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="alternativ">
- <cd:constant type="normal"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupheader" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="seteazaantet"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:text" default="yes"/>
<cd:constant type="margine"/>
- <cd:constant type="centru"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="paragraf"/>
- </cd:parameter>
- <cd:parameter name="separator">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="stopper">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="aliniere">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="alinieretitlu">
- <cd:constant type="da"/>
- <cd:constant type="obiectmobil"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="toleranta">
- <cd:constant type="foartestrict"/>
- <cd:constant type="strict"/>
- <cd:constant type="tolerant"/>
- <cd:constant type="foartetolerant"/>
- <cd:constant type="dilatat"/>
- </cd:parameter>
- <cd:parameter name="aliniaturmator">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="comanda">
- <cd:constant type="cd:twoarguments"/>
- </cd:parameter>
- <cd:parameter name="margine">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupcaptions" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="seteazalegendele"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="locatie">
+ <cd:constant type="bordura"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="stare">
+ <cd:constant type="normal"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="start"/>
+ <cd:constant type="gol"/>
+ <cd:constant type="inalt"/>
+ <cd:constant type="niciunul"/>
+ <cd:constant type="faramarcare"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="strut">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="stilstanga">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="stildreapta">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="latimestanga">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="marginedreapta">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="inainte">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dupa">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfooter" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="seteazasubsol"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:inherit name="seteazaantet" n="1"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="seteazaantet" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptext" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="seteazatext"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:inherit name="seteazaantet" n="1"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="seteazaantet" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptop" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="seteazasus"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:inherit name="seteazaantet" n="1"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="seteazaantet" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbottom" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="seteazajos"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:inherit name="seteazaantet" n="1"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="seteazaantet" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="noheaderandfooterlines" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="faraliniiantetsisubsol"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="notopandbottomlines" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="faraliniisussijos"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupheadertexts" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="seteazatexteantet"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:resolve name="layout-h"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfootertexts" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="seteazatextesubsol"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:resolve name="layout-h"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptexttexts" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="seteazatextetext"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:resolve name="layout-h"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptoptexts" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="seteazatextesus"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:resolve name="layout-h"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbottomtexts" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="seteazatextejos"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:resolve name="layout-h"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="settextcontent" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="settextcontent"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:resolve name="layout-v"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:resolve name="layout-h"/>
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ <cd:keywords n="4" optional="yes">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ <cd:keywords n="5" optional="yes">
+ <cd:resolve name="texts"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="resettextcontent" file="page-txt.tex">
+ <cd:sequence>
+ <cd:string value="resettextcontent"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:resolve name="layout-v"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:resolve name="layout-h"/>
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes">
+ <cd:constant type="lefttext"/>
+ <cd:constant type="middletext"/>
+ <cd:constant type="righttext"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definemarking" file="core-mar.tex">
+ <cd:sequence>
+ <cd:string value="definestemarcaje"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="couplemarking" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="cupleazamarcaje"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="decouplemarking" file="core-mar.tex">
+ <cd:sequence>
+ <cd:string value="decupleazamarcaje"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="resetmarking" file="core-mar.tex">
+ <cd:sequence>
+ <cd:string value="reseteazamarcaje"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupmarking" file="core-mar.tex">
+ <cd:sequence>
+ <cd:string value="seteazamarcaje"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2">
+ <cd:parameter name="stare">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="separator">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="expansiune">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="marking" file="core-mar.tex">
+ <cd:sequence>
+ <cd:string value="marcaje"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getmarking" file="core-mar.tex">
+ <cd:sequence>
+ <cd:string value="adumarcaje"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="primul"/>
+ <cd:constant type="ultim"/>
+ <cd:constant type="precedent"/>
+ <cd:constant type="ambele"/>
+ <cd:constant type="tot"/>
+ <cd:constant type="curent"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nomarking" file="core-mar.tex">
+ <cd:sequence>
+ <cd:string value="faramarcaje"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplayout" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="seteazaaspect"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="latime">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="ajustat"/>
+ <cd:constant type="centru"/>
+ </cd:parameter>
+ <cd:parameter name="inaltime">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="ajustat"/>
+ <cd:constant type="centru"/>
+ </cd:parameter>
+ <cd:parameter name="spatiuspate">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="spatiusus">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="margine">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="marginestanga">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="marginedreapta">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="antet">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="subsol">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="sus">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="jos">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="bordurastanga">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="borduradreapta">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distantaantet">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distantasubsol">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distantasus">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distantajos">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distantamarginestanga">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distantamarginedreapta">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distantabordurastanga">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distantacoltdreapta">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="offsetoriz">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="veroffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="culoare">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="marcaje">
+ <cd:constant type="on"/>
+ <cd:constant type="dezactivat"/>
+ <cd:constant type="culoare"/>
+ <cd:constant type="ecran"/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="pagina"/>
+ </cd:parameter>
+ <cd:parameter name="locatie">
+ <cd:constant type="stanga"/>
+ <cd:constant type="centru"/>
+ <cd:constant type="dreapta"/>
+ <cd:constant type="subsol"/>
+ <cd:constant type="sus"/>
+ <cd:constant type="ofata"/>
+ <cd:constant type="douafete"/>
+ </cd:parameter>
+ <cd:parameter name="scala">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="nx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ny">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="dx">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="dy">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="linii">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="coloane">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="distantacoloane">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="grid">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ <cd:parameter name="spatiujos">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="cutspace">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="textdistance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="latimetext">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="textmargin">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="clipoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="pagina">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="hartie">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="adaptlayout" file="page-lay.tex">
+ <cd:sequence>
+ <cd:string value="adapteazaaspect"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="inaltime">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="max"/>
+ </cd:parameter>
+ <cd:parameter name="linii">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showgrid" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="afiseazagrid"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="reset"/>
<cd:constant type="sus"/>
<cd:constant type="subsol"/>
<cd:constant type="niciunul"/>
- <cd:constant type="inalt"/>
- <cd:constant type="jos"/>
- <cd:constant type="centru"/>
+ <cd:constant type="tot"/>
+ <cd:constant type="linii"/>
+ <cd:constant type="incadrat"/>
+ <cd:constant type="nonumber"/>
+ <cd:constant type="dreapta"/>
<cd:constant type="stanga"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placeongrid" file="core-grd.tex">
+ <cd:sequence>
+ <cd:string value="plaseazapegrid"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:inherit name="mutapegrid" n="1"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="moveongrid" file="core-grd.tex">
+ <cd:sequence>
+ <cd:string value="mutapegrid"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="standard" default="yes"/> <!-- also 'normal', 'yes' and 'force' -->
+ <cd:constant type="sus"/>
+ <cd:constant type="ambele"/>
+ <cd:constant type="subsol"/>
+ <cd:constant type="-top"/>
+ <cd:constant type="-both"/>
+ <cd:constant type="-bottom"/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="inalt"/>
<cd:constant type="centru"/>
- <cd:constant type="dreapta"/>
- <cd:constant type="lefthanging"/>
- <cd:constant type="righthanging"/>
- <cd:constant type="marginestanga"/>
- <cd:constant type="marginedreapta"/>
- <cd:constant type="innermargin"/>
- <cd:constant type="outermargin"/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="ajustat"/>
+ <cd:constant type="jos"/>
+ <cd:constant type="pagina"/>
<cd:constant type="broad"/>
- <cd:constant type="max"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="latimeminima">
<cd:constant type="ajustat"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stiltitlu">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="numar">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
+ <cd:constant type="adancime"/>
+ <cd:constant type="linie"/>
+ <cd:constant type="reset"/>
<cd:constant type="niciunul"/>
- </cd:parameter>
- <cd:parameter name="intre">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="aliniere">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="conversie">
- <cd:constant type="numere"/>
- <cd:constant type="caractere"/>
- <cd:constant type="Caractere"/>
- <cd:constant type="numereromane"/>
- <cd:constant type="Numereromane"/>
- </cd:parameter>
- <cd:parameter name="mod">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="separator">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="stopper">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="comanda">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="distanta">
<cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupcaption" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="seteazalegenda"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="seteazalegendele"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfloats" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="seteazafloats"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="locatie">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="project" type="environment" file="core-job.tex">
+ <cd:sequence>
+ <cd:string value="proiect"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:file n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="environment" type="environment" file="core-job.tex">
+ <cd:sequence>
+ <cd:string value="mediu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:file n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="product" type="environment" file="core-job.tex">
+ <cd:sequence>
+ <cd:string value="produs"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:file n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="component" type="environment" file="core-job.tex">
+ <cd:sequence>
+ <cd:string value="componenta"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:file n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nomorefiles" file="core-job.tex">
+ <cd:sequence>
+ <cd:string value="farafisiere"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupinterlinespace" variant="1" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="seteazaspatiuinterliniar"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="reset"/>
+ <cd:constant type="mic" default="yes"/>
+ <cd:constant type="mediu"/>
+ <cd:constant type="auto"/>
+ <cd:constant type="mare"/>
+ <cd:constant type="on"/>
+ <cd:constant type="dezactivat"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupinterlinespace2" variant="2" file="core-spa.tex">
+ <!-- attached a 2 to make this definition usable with \showsetup -->
+ <cd:sequence>
+ <cd:string value="seteazaspatiuinterliniar"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="inaltime">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="inaltime">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="linie">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="sus">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="jos">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppagenumbering" file="page-num.tex">
+ <cd:sequence>
+ <cd:string value="seteazanumerotarepagina"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="alternativ">
+ <cd:constant type="ofata"/>
+ <cd:constant type="douafete"/>
+ </cd:parameter>
+ <cd:parameter name="locatie">
+ <cd:constant type="antet"/>
+ <cd:constant type="subsol"/>
+ <cd:constant type="stanga"/>
+ <cd:constant type="dreapta"/>
+ <cd:constant type="centru"/>
+ <cd:constant type="margine"/>
+ <cd:constant type="marginebordura"/>
+ <cd:constant type="instanga"/>
+ <cd:constant type="indreapta"/>
+ </cd:parameter>
+ <cd:parameter name="conversie">
+ <cd:constant type="numere"/>
+ <cd:constant type="caractere"/>
+ <cd:constant type="Caractere"/>
+ <cd:constant type="numereromane"/>
+ <cd:constant type="Numereromane"/>
+ </cd:parameter>
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="stanga">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="dreapta">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="mod">
+ <cd:constant type="bytext"/>
+ <cd:constant type="bycd:section"/>
+ </cd:parameter>
+ <cd:parameter name="text">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="separatornumar">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="separatortext">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="cd:sectionnumber">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ <cd:parameter name="separator">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="strut">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ <cd:parameter name="stare">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="latime">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="comanda">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupnarrower" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="seteazaingust"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="stanga">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="dreapta">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="mijloc">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="define" file="syst-ext.tex">
+ <cd:sequence>
+ <cd:string value="defineste"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ <cd:csname n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usecommands" file="core-sys.tex">
+ <cd:sequence>
+ <cd:string value="folosestecomenzi"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definestartstop" file="core-sys.tex">
+ <cd:sequence>
+ <cd:string value="definestestartstop"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="inainte">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dupa">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="comenzi">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupheads" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="seteazatitluri"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="numarsectiune">
+ <cd:constant type="da"/>
+ <cd:constant type="cd:number"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ <cd:parameter name="alternativ">
+ <cd:constant type="normal"/>
+ <cd:constant type="margine"/>
+ <cd:constant type="centru"/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="paragraf"/>
+ </cd:parameter>
+ <cd:parameter name="separator">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="stopper">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="aliniere">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="alinieretitlu">
+ <cd:constant type="da"/>
+ <cd:constant type="obiectmobil"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ <cd:parameter name="toleranta">
+ <cd:constant type="foartestrict"/>
+ <cd:constant type="strict"/>
+ <cd:constant type="tolerant"/>
+ <cd:constant type="foartetolerant"/>
+ <cd:constant type="dilatat"/>
+ </cd:parameter>
+ <cd:parameter name="aliniaturmator">
+ <cd:resolve name="indentnext"/>
+ </cd:parameter>
+ <cd:parameter name="comanda">
+ <cd:constant type="cd:twoarguments"/>
+ </cd:parameter>
+ <cd:parameter name="margine">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcaptions" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="seteazalegendele"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="locatie">
+ <cd:constant type="sus"/>
+ <cd:constant type="subsol"/>
+ <cd:constant type="niciunul"/>
+ <cd:constant type="inalt"/>
+ <cd:constant type="jos"/>
+ <cd:constant type="centru"/>
+ <cd:constant type="stanga"/>
+ <cd:constant type="centru"/>
+ <cd:constant type="dreapta"/>
+ <cd:constant type="lefthanging"/>
+ <cd:constant type="righthanging"/>
+ <cd:constant type="marginestanga"/>
+ <cd:constant type="marginedreapta"/>
+ <cd:constant type="innermargin"/>
+ <cd:constant type="outermargin"/>
+ </cd:parameter>
+ <cd:parameter name="latime">
+ <cd:constant type="ajustat"/>
+ <cd:constant type="broad"/>
+ <cd:constant type="max"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="latimeminima">
+ <cd:constant type="ajustat"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="stiltitlu">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="numar">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ <cd:constant type="niciunul"/>
+ </cd:parameter>
+ <cd:parameter name="intre">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="aliniere">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="conversie">
+ <cd:constant type="numere"/>
+ <cd:constant type="caractere"/>
+ <cd:constant type="Caractere"/>
+ <cd:constant type="numereromane"/>
+ <cd:constant type="Numereromane"/>
+ </cd:parameter>
+ <cd:parameter name="mod">
+ <cd:constant type="bytext"/>
+ <cd:constant type="bycd:section"/>
+ </cd:parameter>
+ <cd:parameter name="separator">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="stopper">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="comanda">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="distanta">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcaption" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="seteazalegenda"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="seteazalegendele" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfloats" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="seteazafloats"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="locatie">
+ <cd:constant type="stanga"/>
+ <cd:constant type="dreapta"/>
+ <cd:constant type="centru"/>
+ </cd:parameter>
+ <cd:parameter name="latime">
+ <cd:constant type="ajustat"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="inainte">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dupa">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="margine">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="spatiuinainte">
+ <cd:constant type="mic"/>
+ <cd:constant type="mediu"/>
+ <cd:constant type="mare"/>
+ <cd:constant type="niciunul"/>
+ </cd:parameter>
+ <cd:parameter name="spatiudupa">
+ <cd:constant type="mic"/>
+ <cd:constant type="mediu"/>
+ <cd:constant type="mare"/>
+ <cd:constant type="niciunul"/>
+ </cd:parameter>
+ <cd:parameter name="spatiulateralinainte">
+ <cd:constant type="mic"/>
+ <cd:constant type="mediu"/>
+ <cd:constant type="mare"/>
+ <cd:constant type="niciunul"/>
+ </cd:parameter>
+ <cd:parameter name="spatiulateraldupa">
+ <cd:constant type="mic"/>
+ <cd:constant type="mediu"/>
+ <cd:constant type="mare"/>
+ <cd:constant type="niciunul"/>
+ </cd:parameter>
+ <cd:parameter name="aliniaturmator">
+ <cd:resolve name="indentnext"/>
+ </cd:parameter>
+ <cd:parameter name="nsus">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="njos">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="nlinii">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="implicit">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="toleranta">
+ <cd:constant type="0"/>
+ <cd:constant type="1"/>
+ <cd:constant type="2"/>
+ </cd:parameter>
+ <cd:parameter name="distantamarginestanga">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distantamarginedreapta">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="sidealign">
+ <cd:constant type="normal"/>
+ <cd:constant type="linie"/>
+ </cd:parameter>
+ <cd:parameter name="numerotare">
+ <cd:constant type="da"/>
+ <cd:constant type="nocheck"/>
+ </cd:parameter>
+ <cd:inherit name="seteazainconjurat" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfloatsplitting" file="core-tsp.tex">
+ <cd:sequence>
+ <cd:string value="seteazaimpartireafloat"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="conversie">
+ <cd:constant type="numere"/>
+ <cd:constant type="caractere"/>
+ <cd:constant type="Caractere"/>
+ <cd:constant type="numereromane"/>
+ <cd:constant type="Numereromane"/>
+ </cd:parameter>
+ <cd:parameter name="linii">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="splitfloat" file="core-tsp.tex">
+ <cd:sequence>
+ <cd:string value="impartefloat"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="seteazaimpartireafloat" n="1"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupoppositeplacing" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="seteazaplasareaopozita"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1">
+ <cd:parameter name="stare">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="inainte">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="intre">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dupa">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="opposite" type="environment" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="opposite"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setuphyphenmark" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="seteazaliniesilabe"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1">
+ <cd:parameter name="semn">
+ <cd:constant type="--"/>
+ <cd:constant type="---"/>
+ <cd:constant type="-"/>
+ <cd:constant type="~"/>
+ <cd:constant type="("/>
+ <cd:constant type=")"/>
+ <cd:constant type="="/>
+ <cd:constant type="/"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppositioning" file="page-lyr.tex">
+ <cd:sequence>
+ <cd:string value="setarepozitie"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="stare">
+ <cd:constant type="start"/>
+ <cd:constant type="overlay"/>
+ </cd:parameter>
+ <cd:parameter name="unitate">
+ <cd:constant type="cm"/>
+ <cd:constant type="pt"/>
+ <cd:constant type="em"/>
+ <cd:constant type="mm"/>
+ <cd:constant type="ex"/>
+ <cd:constant type="es"/>
+ <cd:constant type="in"/>
+ </cd:parameter>
+ <cd:parameter name="factor">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="scala">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="offset">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ <cd:parameter name="xstep">
+ <cd:constant type="absolut"/>
+ <cd:constant type="relativ"/>
+ </cd:parameter>
+ <cd:parameter name="ystep">
+ <cd:constant type="absolut"/>
+ <cd:constant type="relativ"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="positioning" type="environment" file="page-lyr.tex">
+ <cd:sequence>
+ <cd:string value="positioning"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="grid" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="grid"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="x">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="y">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="nx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ny">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="dx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="dy">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="xstep">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ystep">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="offset">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ <cd:parameter name="factor">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="scala">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="unitate">
+ <cd:constant type="cm"/>
+ <cd:constant type="pt"/>
+ <cd:constant type="em"/>
+ <cd:constant type="mm"/>
+ <cd:constant type="ex"/>
+ <cd:constant type="es"/>
+ <cd:constant type="in"/>
+ </cd:parameter>
+ <cd:parameter name="locatie">
+ <cd:constant type="stanga"/>
+ <cd:constant type="centru"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="page" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="pagina"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="da" default="yes"/>
+ <cd:constant type="marcaj"/>
+ <cd:constant type="nu"/>
+ <cd:constant type="preferinta"/>
+ <cd:constant type="preferintamare"/>
<cd:constant type="stanga"/>
<cd:constant type="dreapta"/>
- <cd:constant type="centru"/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="ajustat"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="margine">
+ <cd:constant type="dezactivat"/>
+ <cd:constant type="ultim"/>
+ <cd:constant type="cvadrupul"/>
+ <cd:constant type="par"/>
+ <cd:constant type="impar"/>
+ <cd:constant type="blank"/>
+ <cd:constant type="gol"/>
+ <cd:constant type="reset"/>
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupreferencing" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="seteazareferinte"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="stare">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="cd:sectionnumber">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ <cd:parameter name="prefix">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="interactiune">
+ <cd:constant type="eticheta"/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="tot"/>
+ <cd:constant type="simbol"/>
+ </cd:parameter>
+ <cd:parameter name="latime">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="stanga">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dreapta">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="convertestefisier">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ <cd:constant type="mic"/>
+ <cd:constant type="mare"/>
+ </cd:parameter>
+ <cd:parameter name="separator">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="autofile">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ <cd:constant type="pagina"/>
+ </cd:parameter>
+ <cd:parameter name="global">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupurl" file="core-ref.tex" category="references">
+ <cd:sequence>
+ <cd:string value="seteazaurl"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="urlalternativ">
+ <cd:constant type="niciunul"/>
+ <cd:constant type="ambele"/>
+ <cd:constant type="inainte"/>
+ <cd:constant type="dupa"/>
+ </cd:parameter>
+ <cd:parameter name="spatiuurl">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="writetoreferencelist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="scrieinlistareferinte"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placereferencelist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="placereferencelist"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definereferencelist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="definestelistareferinte"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="seteazalistareferinte" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupreferencelist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="seteazalistareferinte"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="stare">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="criteriu">
+ <cd:constant type="cd:section"/>
+ <cd:constant type="local"/>
+ <cd:constant type="precedent"/>
+ <cd:constant type="tot"/>
+ </cd:parameter>
+ <cd:parameter name="comanda">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="inainte">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dupa">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="writetolist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="scrieinlista"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:section"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="writebetweenlist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="scrieintreliste"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:section"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nolist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="faralista"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="listsymbol" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="listsymbol"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placelist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="punelista"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="seteazalista" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="determinelistcharacteristics" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="determinacaracteristicilelistei"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="seteazalista" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placecombinedlist" variant="1" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="punelistacombinata"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="seteazalistacombinata" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definelist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="definestelista"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes"> <!-- inherits from -->
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="seteazalista" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="seteazalista"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="stare">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="alternativ">
+ <cd:constant type="a"/>
+ <cd:constant type="b"/>
+ <cd:constant type="c"/>
+ <cd:constant type="..."/>
+ <cd:constant type="niciunul"/>
+ <cd:constant type="comanda"/>
+ </cd:parameter>
+ <cd:parameter name="cuplare">
+ <cd:constant type="on"/>
+ <cd:constant type="dezactivat"/>
+ </cd:parameter>
+ <cd:parameter name="criteriu">
+ <cd:constant type="cd:section"/>
+ <cd:constant type="local"/>
+ <cd:constant type="precedent"/>
+ <cd:constant type="curent"/>
+ <cd:constant type="tot"/>
+ </cd:parameter>
+ <cd:parameter name="marginipagina">
+ <cd:constant type="cd:list"/>
+ </cd:parameter>
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="stilnumar">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="stiltext">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="stilpagina">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="culoare">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="comanda">
+ <cd:constant type="cd:threearguments"/>
+ </cd:parameter>
+ <cd:parameter name="comandanumar">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="comandatext">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="comandapagina">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="interactiune">
+ <cd:constant type="cd:sectionnumber"/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="numarpagina"/>
+ <cd:constant type="tot"/>
+ </cd:parameter>
+ <cd:parameter name="inainte">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dupa">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="intre">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="stanga">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="dreapta">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="eticheta">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ <cd:parameter name="prefix">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ <cd:constant type="niciunul"/>
+ </cd:parameter>
+ <cd:parameter name="numarpagina">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ <cd:parameter name="numartitlu">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ <cd:parameter name="cd:sectionnumber">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ <cd:parameter name="alinieretitlu">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ <cd:parameter name="margine">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="latime">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="ajustat"/>
+ </cd:parameter>
+ <cd:parameter name="inaltime">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="ajustat"/>
+ <cd:constant type="broad"/>
+ </cd:parameter>
+ <cd:parameter name="inaltime">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="ajustat"/>
+ <cd:constant type="broad"/>
+ </cd:parameter>
+ <cd:parameter name="distanta">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="separator">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="stopper">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="simbol">
+ <cd:constant type="niciunul"/>
+ <cd:constant type="1"/>
+ <cd:constant type="2"/>
+ <cd:constant type="3"/>
+ <cd:constant type="..."/>
+ </cd:parameter>
+ <cd:parameter name="expansiune">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ <cd:constant type="comanda"/>
+ </cd:parameter>
+ <cd:parameter name="latimemaxima">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:inherit name="seteazainconjurat" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplistalternative" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="setuplistalternative"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="no">
+ <cd:constant type="a"/>
+ <cd:constant type="b"/>
+ <cd:constant type="c"/>
+ <!-- cd:constant type="cd:name"/ -->
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="comanda">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="latime">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="dilatat">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distanta">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definecombinedlist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="definestelistacombinata"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="cd:list"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="seteazalistacombinata" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcombinedlist" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="seteazalistacombinata"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="nivel">
+ <cd:constant type="1"/>
+ <cd:constant type="2"/>
+ <cd:constant type="3"/>
+ <cd:constant type="4"/>
+ <cd:constant type="cd:section"/>
+ <cd:constant type="curent"/>
+ </cd:parameter>
+ <cd:inherit name="seteazalista" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placecombinedlist" variant="2" generated="yes" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="pune"/>
+ <cd:variable value="combinedlist"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="seteazalistacombinata" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="completecombinedlist" generated="yes" file="core-lst.tex">
+ <cd:sequence>
+ <cd:string value="complet"/>
+ <cd:variable value="combinedlist"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="seteazalistacombinata" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupnumbering" file="core-num.tex">
+ <cd:sequence>
+ <cd:string value="seteazanumerotare"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="mod">
+ <cd:constant type="bytext"/>
+ <cd:constant type="bycd:section"/>
+ </cd:parameter>
+ <cd:parameter name="stare">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupformulas" file="core-mat.tex">
+ <cd:sequence>
+ <cd:string value="seteazaformule"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="locatie">
+ <cd:constant type="stanga"/>
+ <cd:constant type="dreapta"/>
+ </cd:parameter>
+ <cd:parameter name="stanga">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="dreapta">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="aliniere">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="optiune">
+ <cd:constant type="centru"/>
+ </cd:parameter>
+ <cd:parameter name="strut">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ <cd:parameter name="distanta">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="margine">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="standard"/>
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ <cd:parameter name="aliniere">
+ <cd:constant type="flushleft"/>
+ <cd:constant type="flushright"/>
+ <cd:constant type="centru"/>
+ <cd:constant type="center"/>
+ </cd:parameter>
+ <cd:parameter name="marginestanga">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="marginedreapta">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="aliniaturmator">
+ <cd:resolve name="indentnext"/>
+ </cd:parameter>
+ <cd:parameter name="alternativ">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="spatiuinainte">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="dupa">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="separator">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="conversie">
+ <cd:constant type="numere"/>
+ <cd:constant type="caractere"/>
+ <cd:constant type="Caractere"/>
+ <cd:constant type="numereromane"/>
+ <cd:constant type="Numereromane"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="publication" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="publicatie"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppublications" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="seteazapublicatii"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="alternativ">
+ <cd:constant type="apa"/>
+ <cd:constant type="normal"/>
+ </cd:parameter>
+ <cd:inherit name="seteazaenumerare" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplines" file="page-lin.tex">
+ <cd:sequence>
+ <cd:string value="seteazalinii"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="inainte">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dupa">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="intre">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="aliniat">
+ <cd:resolve name="indenting"/>
+ </cd:parameter>
+ <cd:parameter name="spatiu">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ <cd:parameter name="optiune">
+ <cd:constant type="impachetat"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="lines" type="environment">
+ <cd:sequence>
+ <cd:string value="lines"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupparagraphnumbering" file="page-lin.tex">
+ <cd:sequence>
+ <cd:string value="seteazanumerotareparagrafe"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="stare">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="reset"/>
+ <cd:constant type="linie"/>
+ </cd:parameter>
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="distanta">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplinenumbering" file="page-lin.tex">
+ <cd:sequence>
+ <cd:string value="seteazanumerotarelinii"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="conversie">
+ <cd:constant type="numere"/>
+ <cd:constant type="caractere"/>
+ <cd:constant type="Caractere"/>
+ <cd:constant type="numereromane"/>
+ <cd:constant type="Numereromane"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="start">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="pas">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="latime">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="locatie">
+ <cd:constant type="intext"/>
+ <cd:constant type="inmargine"/>
+ </cd:parameter>
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="prefix">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="referinta">
+ <cd:constant type="on"/>
+ <cd:constant type="dezactivat"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="linenumbering" type="environment" file="page-lin.tex"> <!-- mkii/mkiv -->
+ <cd:sequence>
+ <cd:string value="linenumbering"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="continuu"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="line" type="environment">
+ <cd:sequence>
+ <cd:string value="line"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="someline" file="page-lin.tex">
+ <cd:sequence>
+ <cd:string value="olinie"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inline" file="page-lin.tex">
+ <cd:sequence>
+ <cd:string value="inlinie"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupinmargin" file="page-mar.tex">
+ <cd:sequence>
+ <cd:string value="seteazamarginal"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="stanga"/>
+ <cd:constant type="dreapta"/>
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="locatie">
+ <cd:constant type="stanga"/>
+ <cd:constant type="dreapta"/>
+ <cd:constant type="ambele"/>
+ </cd:parameter>
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="inainte">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dupa">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="aliniere">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="linie">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="distanta">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="separator">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="latime">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distanta">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="stack">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ <cd:inherit name="seteazainconjurat" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppagenumber" file="page-num.tex">
+ <cd:sequence>
+ <cd:string value="seteazanumarpagina"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="numar">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="stare">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="mentine"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsubpagenumber" file="page-num.tex">
+ <cd:sequence>
+ <cd:string value="seteazanumarsubpagina"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="mod">
+ <cd:constant type="bytext"/>
+ <cd:constant type="bycd:section"/>
+ </cd:parameter>
+ <cd:parameter name="stare">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="niciunul"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupblank" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="seteazablanc"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="normal" default="yes"/>
+ <cd:constant type="implicit"/>
+ <cd:constant type="standard"/>
+ <cd:constant type="linie"/>
+ <cd:constant type="jumatatelinie"/>
<cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="spatiuinainte">
- <cd:constant type="mic"/>
- <cd:constant type="mediu"/>
<cd:constant type="mare"/>
- <cd:constant type="niciunul"/>
- </cd:parameter>
- <cd:parameter name="spatiudupa">
- <cd:constant type="mic"/>
<cd:constant type="mediu"/>
- <cd:constant type="mare"/>
- <cd:constant type="niciunul"/>
- </cd:parameter>
- <cd:parameter name="spatiulateralinainte">
<cd:constant type="mic"/>
- <cd:constant type="mediu"/>
- <cd:constant type="mare"/>
+ <cd:constant type="fixat"/>
+ <cd:constant type="flexibil"/>
+ <cd:constant type="global"/>
+ <cd:constant type="necunoscut"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineblank" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="definesteblanc"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:inherit name="seteazablanc" n="1"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definepapersize" file="page-lay.tex">
+ <cd:sequence>
+ <cd:string value="definestedimensiunehartie"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="latime">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="inaltime">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="offset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="scala">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppaper" file="page-lay.tex">
+ <cd:sequence>
+ <cd:string value="setuppaper"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="hartie">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="pagina">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="nx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ny">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="latime">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="inaltime">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="spatiusus">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="spatiuspate">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="optiune">
+ <cd:constant type="max"/>
+ <cd:constant type="ajustat"/>
+ </cd:parameter>
+ <cd:parameter name="metoda">
+ <cd:constant type="normal"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppapersize" file="page-lay.tex">
+ <cd:sequence>
+ <cd:string value="seteazadimensiunihartie"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="A3"/>
+ <cd:constant type="A4" default="yes"/>
+ <cd:constant type="A5"/>
+ <cd:constant type="A6"/>
+ <cd:constant type="letter"/>
+ <cd:constant type="..."/>
+ <cd:constant type="CD"/>
+ <cd:constant type="cd:name"/>
+ <cd:constant type="vedere"/>
+ <cd:constant type="oglindit"/>
+ <cd:constant type="rotat"/>
+ <cd:constant type="90"/>
+ <cd:constant type="180"/>
+ <cd:constant type="270"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="negativ"/>
+ <cd:inherit name="seteazadimensiunihartie" n="1"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuparranging" file="page-imp.tex">
+ <cd:sequence>
+ <cd:string value="seteazaaranjareapag"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="dezactivat"/>
+ <cd:constant type="2*16"/>
+ <cd:constant type="2*8"/>
+ <cd:constant type="2*4"/>
+ <cd:constant type="2*2"/>
+ <cd:constant type="2**2"/>
+ <cd:constant type="2*2*4"/>
+ <cd:constant type="2*4*2"/>
+ <cd:constant type="2UP"/>
+ <cd:constant type="2DOWN"/>
+ <cd:constant type="2SIDE"/>
+ <cd:constant type="2TOP"/>
+ <cd:constant type="oglindit"/>
+ <cd:constant type="rotat"/>
+ <cd:constant type="douafete"/>
+ <cd:constant type="negativ"/>
+ <cd:constant type="fundal"/>
+ <cd:constant type="90"/>
+ <cd:constant type="180"/>
+ <cd:constant type="270"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showprint" file="page-run.tex"> <!-- page-lay.tex -->
+ <cd:sequence>
+ <cd:string value="afiseazatiparire"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:inherit name="seteazadimensiunihartie" n="1"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:inherit name="seteazadimensiunihartie" n="2"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:inherit name="seteazaaspect" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definelogo" file="page-log.tex">
+ <cd:sequence>
+ <cd:string value="definestelogo"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="sus"/>
+ <cd:constant type="antet"/>
+ <cd:constant type="subsol"/>
+ <cd:constant type="subsol"/>
+ </cd:keywords>
+ <cd:keywords n="3">
<cd:constant type="niciunul"/>
- </cd:parameter>
- <cd:parameter name="spatiulateraldupa">
+ <cd:constant type="pagina"/>
+ <cd:constant type="bordurastanga"/>
+ <cd:constant type="marginestanga"/>
+ <cd:constant type="stanga"/>
+ <cd:constant type="centru"/>
+ <cd:constant type="dreapta"/>
+ <cd:constant type="marginedreapta"/>
+ <cd:constant type="borduradreapta"/>
+ </cd:keywords>
+ <cd:assignments n="4" list="yes">
+ <cd:parameter name="comanda">
+ <cd:constant type="cd:command"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="stare">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placelogos" file="page-log.tex">
+ <cd:sequence>
+ <cd:string value="punelogouri"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupwhitespace">
+ <cd:sequence>
+ <cd:string value="seteazaspatiualb"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="niciunul" default="yes"/>
<cd:constant type="mic"/>
<cd:constant type="mediu"/>
<cd:constant type="mare"/>
- <cd:constant type="niciunul"/>
- </cd:parameter>
- <cd:parameter name="aliniaturmator">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="nsus">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="njos">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="nlinii">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="implicit">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="toleranta">
- <cd:constant type="0"/>
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- </cd:parameter>
- <cd:parameter name="distantamarginestanga">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distantamarginedreapta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="sidealign">
- <cd:constant type="normal"/>
<cd:constant type="linie"/>
- </cd:parameter>
- <cd:parameter name="numerotare">
- <cd:constant type="da"/>
- <cd:constant type="nocheck"/>
- </cd:parameter>
- <cd:inherit name="seteazainconjurat"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfloatsplitting" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="seteazaimpartireafloat"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="conversie">
- <cd:constant type="numere"/>
- <cd:constant type="caractere"/>
- <cd:constant type="Caractere"/>
- <cd:constant type="numereromane"/>
- <cd:constant type="Numereromane"/>
- </cd:parameter>
- <cd:parameter name="linii">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="splitfloat" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="impartefloat"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="seteazaimpartireafloat"/>
- </cd:assignments>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupoppositeplacing" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="seteazaplasareaopozita"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments>
- <cd:parameter name="stare">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="intre">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="opposite" type="environment">
- <cd:sequence>
- <cd:string value="opposite"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setuphyphenmark" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="seteazaliniesilabe"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments>
- <cd:parameter name="semn">
- <cd:constant type="--"/>
- <cd:constant type="---"/>
- <cd:constant type="-"/>
- <cd:constant type="~"/>
- <cd:constant type="("/>
- <cd:constant type=")"/>
- <cd:constant type="="/>
- <cd:constant type="/"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuppositioning" file="page-lyr.tex">
- <cd:sequence>
- <cd:string value="setarepozitie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="stare">
- <cd:constant type="start"/>
- <cd:constant type="overlay"/>
- </cd:parameter>
- <cd:parameter name="unitate">
- <cd:constant type="cm"/>
- <cd:constant type="pt"/>
- <cd:constant type="em"/>
- <cd:constant type="mm"/>
- <cd:constant type="ex"/>
- <cd:constant type="es"/>
- <cd:constant type="in"/>
- </cd:parameter>
- <cd:parameter name="factor">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="scala">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="offset">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="xstep">
- <cd:constant type="absolut"/>
- <cd:constant type="relativ"/>
- </cd:parameter>
- <cd:parameter name="ystep">
- <cd:constant type="absolut"/>
- <cd:constant type="relativ"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="positioning" type="environment">
- <cd:sequence>
- <cd:string value="positioning"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="grid" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="grid"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="x">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="y">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="nx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ny">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="dx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="dy">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="xstep">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ystep">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="offset">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="factor">
+ <cd:constant type="fixat"/>
+ <cd:constant type="fix"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupindenting">
+ <cd:sequence>
+ <cd:string value="seteazaaliniat"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:resolve name="indenting"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definesectionblock" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="definesteblocsectiune"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:inherit name="seteazablocsectiune" n="1"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="seteazablocsectiune" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsectionblock" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="seteazablocsectiune"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="numar">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ <cd:parameter name="pagina">
+ <cd:constant type="da"/>
+ <cd:constant type="dreapta"/>
+ </cd:parameter>
+ <cd:parameter name="inainte">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dupa">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definesection" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="definestesectiune"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsection" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="seteazasectiune"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:parameter name="conversie">
+ <cd:constant type="numere"/>
+ <cd:constant type="caractere"/>
+ <cd:constant type="Caractere"/>
+ <cd:constant type="numereromane"/>
+ <cd:constant type="Numereromane"/>
+ </cd:parameter>
+ <cd:parameter name="numarprecedent">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuphead" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="seteazatitlu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:section"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="stiltext">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="stilnumar">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="culoare">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="culoaretext">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="culoarenumar">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="numar">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ <cd:parameter name="numarpropriu">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ <cd:parameter name="pagina">
+ <cd:constant type="stanga"/>
+ <cd:constant type="dreapta"/>
+ <cd:constant type="da"/>
+ </cd:parameter>
+ <cd:parameter name="continua">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ <cd:parameter name="antet">
+ <cd:constant type="niciunul"/>
+ <cd:constant type="gol"/>
+ <cd:constant type="inalt"/>
+ <cd:constant type="faramarcare"/>
+ </cd:parameter>
+ <cd:parameter name="text">
+ <cd:constant type="niciunul"/>
+ <cd:constant type="gol"/>
+ <cd:constant type="inalt"/>
+ <cd:constant type="faramarcare"/>
+ </cd:parameter>
+ <cd:parameter name="subsol">
+ <cd:constant type="niciunul"/>
+ <cd:constant type="gol"/>
+ <cd:constant type="inalt"/>
+ <cd:constant type="faramarcare"/>
+ </cd:parameter>
+ <cd:parameter name="inainte">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="intre">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dupa">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="alternativ">
+ <cd:constant type="normal"/>
+ <cd:constant type="inmargine"/>
+ <cd:constant type="centru"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="suspenda">
+ <cd:constant type="niciunul"/>
+ <cd:constant type="broad"/>
+ <cd:constant type="ajustat"/>
+ <cd:constant type="linie"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="comanda">
+ <cd:constant type="cd:twoarguments"/>
+ </cd:parameter>
+ <cd:parameter name="comandanumar">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="comandatext">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="deepnumbercommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="deeptextcommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="prefix">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="punetitlu">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ <cd:constant type="gol"/>
+ </cd:parameter>
+ <cd:parameter name="numarincrement">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ <cd:constant type="cd:list"/>
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="resetnumber">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ <cd:parameter name="fisier">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="expansiune">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ <cd:constant type="comanda"/>
+ </cd:parameter>
+ <cd:parameter name="textmargine">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ <cd:inherit name="seteazatitluri" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupheadnumber" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="seteazanumartitlu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:section"/>
+ </cd:keywords>
+ <cd:keywords n="2">
<cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="scala">
+ <cd:constant type="+cd:number"/>
+ <cd:constant type="-cd:number"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="headnumber">
+ <cd:sequence>
+ <cd:string value="numartitlu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:section"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="determineheadnumber" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="determinanumartitlu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:section"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="currentheadnumber" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="numartitlucurent"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="nextsection" generated="yes" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="urmatorul"/>
+ <cd:variable value="sectiune"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="definehead" file="core-sec.tex">
+ <cd:sequence>
+ <cd:string value="definesteantet"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:section"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupitemgroup" file="core-itm.tex">
+ <cd:sequence>
+ <cd:string value="setupitemgroup"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
<cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="unitate">
- <cd:constant type="cm"/>
- <cd:constant type="pt"/>
- <cd:constant type="em"/>
- <cd:constant type="mm"/>
- <cd:constant type="ex"/>
- <cd:constant type="es"/>
- <cd:constant type="in"/>
- </cd:parameter>
- <cd:parameter name="locatie">
- <cd:constant type="stanga"/>
- <cd:constant type="centru"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="page" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="pagina"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="da" default="yes"/>
- <cd:constant type="marcaj"/>
- <cd:constant type="nu"/>
- <cd:constant type="preferinta"/>
- <cd:constant type="preferintamare"/>
- <cd:constant type="stanga"/>
- <cd:constant type="dreapta"/>
- <cd:constant type="dezactivat"/>
- <cd:constant type="ultim"/>
- <cd:constant type="cvadrupul"/>
- <cd:constant type="par"/>
- <cd:constant type="impar"/>
- <cd:constant type="blank"/>
- <cd:constant type="gol"/>
- <cd:constant type="reset"/>
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupreferencing" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="seteazareferinte"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="stare">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="cd:sectionnumber">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="prefix">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="interactiune">
- <cd:constant type="eticheta"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="tot"/>
- <cd:constant type="simbol"/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stanga">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dreapta">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="convertestefisier">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- <cd:constant type="mic"/>
- <cd:constant type="mare"/>
- </cd:parameter>
- <cd:parameter name="separator">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="autofile">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- <cd:constant type="pagina"/>
- </cd:parameter>
- <cd:parameter name="global">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupurl" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="seteazaurl"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="urlalternativ">
- <cd:constant type="niciunul"/>
- <cd:constant type="ambele"/>
+ <cd:constant type="fiecare"/>
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes" list="yes">
+ <cd:constant type="standard" default="yes"/>
+ <cd:constant type="broad"/>
+ <cd:constant type="serried"/>
+ <cd:constant type="impachetat"/>
+ <cd:constant type="despachetat"/>
+ <cd:constant type="faraalb"/>
<cd:constant type="inainte"/>
<cd:constant type="dupa"/>
- </cd:parameter>
- <cd:parameter name="spatiuurl">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="writetoreferencelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="scrieinlistareferinte"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placereferencelist">
- <cd:sequence>
- <cd:string value="placereferencelist"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definereferencelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="definestelistareferinte"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="seteazalistareferinte"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupreferencelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="seteazalistareferinte"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="stare">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="criteriu">
+ <cd:constant type="stopper"/>
+ <cd:constant type="unit"/>
+ <cd:constant type="lamargine"/>
+ <cd:constant type="inmargine"/>
+ <cd:constant type="autointro"/>
+ <cd:constant type="larg"/>
+ <cd:constant type="repetat"/>
<cd:constant type="cd:section"/>
- <cd:constant type="local"/>
- <cd:constant type="precedent"/>
- <cd:constant type="tot"/>
- </cd:parameter>
- <cd:parameter name="comanda">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="writetolist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="scrieinlista"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:section"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="writebetweenlist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="scrieintreliste"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:section"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="nolist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="faralista"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="listsymbol" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="listsymbol"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="punelista"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="seteazalista"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="determinelistcharacteristics" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="determinacaracteristicilelistei"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="seteazalista"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placecombinedlist" variant="1" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="punelistacombinata"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="seteazalistacombinata"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="definestelista"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="seteazalista"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuplist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="seteazalista"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="stare">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="alternativ">
+ <cd:constant type="paragraf"/>
+ <cd:constant type="intext"/>
+ <cd:constant type="aleator"/>
+ <cd:constant type="reverse"/>
+ </cd:keywords>
+ <cd:assignments n="4" optional="yes" list="yes">
+ <cd:parameter name="margine">
+ <cd:constant type="nu"/>
+ <cd:constant type="standard"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="marginestanga">
+ <cd:constant type="nu"/>
+ <cd:constant type="standard"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="marginedreapta">
+ <cd:constant type="nu"/>
+ <cd:constant type="standard"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="latime">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distanta">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="factor">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="elemente">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="start">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="inainte">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="intre">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dupa">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="stanga">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="dreapta">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="inaintetitlu">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dupatitlu">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="stiltitlu">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="stilmarcaj">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="stilsimbol">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="stopper">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="simbol">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="aliniere">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="symaliniere">
+ <cd:resolve name="symalign"/>
+ </cd:parameter>
+ <cd:parameter name="aliniaturmator">
+ <cd:resolve name="indentnext"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="itemgroup" type="environment" generated="yes" file="core-itm.tex">
+ <cd:sequence>
+ <cd:variable value="itemgroup"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
<cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- <cd:constant type="..."/>
- <cd:constant type="niciunul"/>
- <cd:constant type="comanda"/>
- </cd:parameter>
- <cd:parameter name="cuplare">
- <cd:constant type="on"/>
- <cd:constant type="dezactivat"/>
- </cd:parameter>
- <cd:parameter name="criteriu">
- <cd:constant type="cd:section"/>
- <cd:constant type="local"/>
- <cd:constant type="precedent"/>
- <cd:constant type="curent"/>
- <cd:constant type="tot"/>
- </cd:parameter>
- <cd:parameter name="marginipagina">
- <cd:constant type="cd:list"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stilnumar">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stiltext">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stilpagina">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="culoare">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="comanda">
- <cd:constant type="cd:threearguments"/>
- </cd:parameter>
- <cd:parameter name="comandanumar">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="comandatext">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="comandapagina">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="interactiune">
- <cd:constant type="cd:sectionnumber"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="numarpagina"/>
- <cd:constant type="tot"/>
- </cd:parameter>
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="intre">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="stanga">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="dreapta">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="eticheta">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="prefix">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- <cd:constant type="niciunul"/>
- </cd:parameter>
- <cd:parameter name="numarpagina">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="numartitlu">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="cd:sectionnumber">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="alinieretitlu">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="margine">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="ajustat"/>
- </cd:parameter>
- <cd:parameter name="inaltime">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="ajustat"/>
- <cd:constant type="broad"/>
- </cd:parameter>
- <cd:parameter name="inaltime">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="ajustat"/>
+ <cd:constant type="A"/>
+ <cd:constant type="KA"/>
+ <cd:constant type="n"/>
+ <cd:constant type="N"/>
+ <cd:constant type="m"/>
+ <cd:constant type="r"/>
+ <cd:constant type="R"/>
+ <cd:constant type="KR"/>
+ <cd:constant type="cd:number"/>
+ <cd:constant type="continuu"/>
+ <cd:constant type="standard" default="yes"/>
<cd:constant type="broad"/>
- </cd:parameter>
- <cd:parameter name="distanta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="separator">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="stopper">
+ <cd:constant type="serried"/>
+ <cd:constant type="impachetat"/>
+ <cd:constant type="stopper"/>
+ <cd:constant type="unit"/>
+ <cd:constant type="lamargine"/>
+ <cd:constant type="inmargine"/>
+ <cd:constant type="intro"/>
+ <cd:constant type="coloane"/>
+ <cd:constant type="text"/>
+ <cd:constant type="paragraf"/>
+ <cd:constant type="repetat"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="setupitemgroup" n="4"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="item" file="core-itm.tex">
+ <cd:sequence>
+ <cd:string value="element"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="but">
+ <cd:sequence>
+ <cd:string value="but"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" interactive="exclusive"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="its">
+ <cd:sequence>
+ <cd:string value="el"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ran">
+ <cd:sequence>
+ <cd:string value="ran"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="head">
+ <cd:sequence>
+ <cd:string value="titlu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mar">
+ <cd:sequence>
+ <cd:string value="mar"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="sub">
+ <cd:sequence>
+ <cd:string value="sub"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="sym" file="core-itm.tex">
+ <cd:sequence>
+ <cd:string value="sim"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nop">
+ <cd:sequence>
+ <cd:string value="nop"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="defineregister" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="definesteregistru"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:singular"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:plural"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupregister" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="seteazaregistru"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:singular"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="balanta">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ <cd:parameter name="aliniere">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="stilpagina">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="stiltext">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="indicator">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ <cd:parameter name="cuplare">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ <cd:parameter name="cd:sectionnumber">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ <cd:parameter name="criteriu">
+ <cd:constant type="cd:section"/>
+ <cd:constant type="local"/>
+ <cd:constant type="tot"/>
+ </cd:parameter>
+ <cd:parameter name="distanta">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="simbol">
+ <cd:constant type="1"/>
+ <cd:constant type="2"/>
+ <cd:constant type="..."/>
+ <cd:constant type="n"/>
+ <cd:constant type="a"/>
+ <cd:constant type="..."/>
+ <cd:constant type="niciunul"/>
+ </cd:parameter>
+ <cd:parameter name="interactiune">
+ <cd:constant type="numarpagina"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="expansiune">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ <cd:constant type="comanda"/>
+ </cd:parameter>
+ <cd:parameter name="referinta">
+ <cd:constant type="on"/>
+ <cd:constant type="dezactivat"/>
+ </cd:parameter>
+ <cd:parameter name="comanda">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="locatie">
+ <cd:constant type="stanga"/>
+ <cd:constant type="centru"/>
+ <cd:constant type="dreapta"/>
+ </cd:parameter>
+ <cd:parameter name="latimemaxima">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="referintanecunoscuta">
+ <cd:constant type="gol"/>
+ <cd:constant type="niciunul"/>
+ </cd:parameter>
+ <cd:parameter name="alternativ">
+ <cd:constant type="a"/>
+ <cd:constant type="b"/>
+ <cd:constant type="A"/>
+ <cd:constant type="B"/>
+ </cd:parameter>
+ <cd:parameter name="prefix">
+ <cd:constant type="ambele"/>
+ <cd:constant type="primul"/>
+ <cd:constant type="niciunul"/>
+ </cd:parameter>
+ <cd:parameter name="compress">
+ <cd:constant type="nu"/>
+ <cd:constant type="da"/>
+ </cd:parameter>
+ <cd:parameter name="deeptextcommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="register" generated="yes" file="core-reg.tex">
+ <cd:sequence>
+ <cd:variable value="registru"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="simbol">
- <cd:constant type="niciunul"/>
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- <cd:constant type="3"/>
- <cd:constant type="..."/>
- </cd:parameter>
- <cd:parameter name="expansiune">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- <cd:constant type="comanda"/>
- </cd:parameter>
- <cd:parameter name="latimemaxima">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:inherit name="framed"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuplistalternative" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="setuplistalternative"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="no">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- <!-- cd:constant type="cd:name"/ -->
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="comanda">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="dilatat">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definecombinedlist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="definestelistacombinata"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:list"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="seteazalistacombinata"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupcombinedlist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="seteazalistacombinata"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="nivel">
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- <cd:constant type="3"/>
- <cd:constant type="4"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="curent"/>
- </cd:parameter>
- <cd:inherit name="seteazalista"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placecombinedlist" variant="2" generated="yes" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="place"/>
- <cd:variable value="combinedlist"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="seteazalistacombinata"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="completecombinedlist" generated="yes">
- <cd:sequence>
- <cd:string value="complete"/>
- <cd:variable value="combinedlist"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="seteazalistacombinata"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupnumbering" file="core-num.tex">
- <cd:sequence>
- <cd:string value="seteazanumerotare"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="mod">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="stare">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupformulae">
- <cd:sequence>
- <cd:string value="setupformulae"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="locatie">
- <cd:constant type="stanga"/>
- <cd:constant type="dreapta"/>
- </cd:parameter>
- <cd:parameter name="stanga">
+ </cd:keywords>
+ <cd:index n="2" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="startregister" generated="yes" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="start"/>
+ <cd:variable value="registru"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="dreapta">
+ </cd:keywords>
+ <cd:index n="2" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="writetoregister" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="scrieinregistru"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:singular"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="aliniere">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="optiune">
- <cd:constant type="centru"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="distanta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="margine">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="standard"/>
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="aliniere">
- <cd:constant type="flushleft"/>
- <cd:constant type="flushright"/>
- <cd:constant type="centru"/>
- <cd:constant type="center"/>
- </cd:parameter>
- <cd:parameter name="marginestanga">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="marginedreapta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="aliniaturmator">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="alternativ">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="spatiuinainte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="separator">
+ </cd:keywords>
+ <cd:index n="3" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="coupledregister" generated="yes">
+ <cd:sequence>
+ <cd:string value="cuplat"/>
+ <cd:variable value="registru"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="conversie">
- <cd:constant type="numere"/>
- <cd:constant type="caractere"/>
- <cd:constant type="Caractere"/>
- <cd:constant type="numereromane"/>
- <cd:constant type="Numereromane"/>
+ </cd:keywords>
+ <cd:index n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="coupleregister" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="cupleazaregistru"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placeregister" variant="1" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="puneregistru"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="seteazaregistru" n="3"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="seeregister" generated="yes">
+ <cd:sequence>
+ <cd:string value="vezi"/>
+ <cd:variable value="registru"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="publication" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="publicatie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuppublications" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="seteazapublicatii"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="alternativ">
- <cd:constant type="apa"/>
- <cd:constant type="normal"/>
- </cd:parameter>
- <cd:inherit name="seteazaenumerare"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuplines" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="seteazalinii"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
+ </cd:keywords>
+ <cd:content n="2"/>
+ <cd:index n="3" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="completeregister" generated="yes" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="complet"/>
+ <cd:variable value="registru"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="yes" optional="yes" list="yes">
+ <cd:inherit name="seteazaregistru" n="3"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placeregister" variant="2" generated="yes" file="core-reg.tex">
+ <cd:sequence>
+ <cd:string value="pune"/>
+ <cd:variable value="registru"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="yes" optional="yes" list="yes">
+ <cd:inherit name="seteazaregistru" n="3"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definesynonyms" file="core-syn.tex">
+ <cd:sequence>
+ <cd:string value="definestesinonim"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:singular"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:plural"/>
+ </cd:keywords>
+ <cd:keywords n="3">
<cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="intre">
+ </cd:keywords>
+ <cd:keywords n="4" optional="yes">
<cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="aliniat">
- <cd:resolve name="indenting"/>
- </cd:parameter>
- <cd:parameter name="spatiu">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="lines" type="environment">
- <cd:sequence>
- <cd:string value="lines"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupparagraphnumbering" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="seteazanumerotareparagrafe"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="stare">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- <cd:constant type="reset"/>
- <cd:constant type="linie"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="distanta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuplinenumbering" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="seteazanumerotarelinii"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="conversie">
- <cd:constant type="numere"/>
- <cd:constant type="caractere"/>
- <cd:constant type="Caractere"/>
- <cd:constant type="numereromane"/>
- <cd:constant type="Numereromane"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="start">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="pas">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="locatie">
- <cd:constant type="intext"/>
- <cd:constant type="inmargine"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="prefix">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsynonyms" file="core-syn.tex">
+ <cd:sequence>
+ <cd:string value="seteazasinonime"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="stiltext">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="stilsinonim">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="locatie">
+ <cd:constant type="stanga"/>
+ <cd:constant type="dreapta"/>
+ <cd:constant type="sus"/>
+ <cd:constant type="serried"/>
+ <cd:constant type="inmargine"/>
+ <cd:constant type="instanga"/>
+ <cd:constant type="indreapta"/>
+ </cd:parameter>
+ <cd:parameter name="latime">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="stare">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="criteriu">
+ <cd:constant type="tot"/>
+ <cd:constant type="folosit"/>
+ </cd:parameter>
+ <cd:parameter name="conversie">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ <cd:parameter name="expansiune">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ <cd:constant type="comanda"/>
+ </cd:parameter>
+ <cd:parameter name="comanda">
+ <cd:constant type="cd:threearguments"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="synonym" generated="yes">
+ <cd:sequence>
+ <cd:variable value="synonym"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="referinta">
- <cd:constant type="on"/>
- <cd:constant type="dezactivat"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="linenumbering" type="environment">
- <cd:sequence>
- <cd:string value="linenumbering"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="continuu"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="line" type="environment">
- <cd:sequence>
- <cd:string value="line"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="someline" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="olinie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="inline" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="inlinie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupinmargin" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="seteazamarginal"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="stanga"/>
- <cd:constant type="dreapta"/>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="locatie">
- <cd:constant type="stanga"/>
- <cd:constant type="dreapta"/>
- <cd:constant type="ambele"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="inainte">
+ </cd:keywords>
+ <cd:content n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="completelistofsynonyms" generated="yes">
+ <cd:sequence>
+ <cd:string value="completelistof"/>
+ <cd:variable value="synonyms"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="placelistofsynonyms" generated="yes">
+ <cd:sequence>
+ <cd:string value="placelistof"/>
+ <cd:variable value="synonyms"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="loadsynonyms" generated="yes">
+ <cd:sequence>
+ <cd:string value="incarca"/>
+ <cd:variable value="synonyms"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="definesorting" file="core-syn.tex">
+ <cd:sequence>
+ <cd:string value="definestesortare"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:singular"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:plural"/>
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes">
<cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="aliniere">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="linie">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="distanta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="separator">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsorting" file="core-syn.tex">
+ <cd:sequence>
+ <cd:string value="seteazasortare"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="inainte">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dupa">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="comanda">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="stare">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="criteriu">
+ <cd:constant type="tot"/>
+ <cd:constant type="folosit"/>
+ </cd:parameter>
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="expansiune">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ <cd:constant type="comanda"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="sort" generated="yes">
+ <cd:sequence>
+ <cd:variable value="sort"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stack">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:inherit name="seteazainconjurat"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuppagenumber" file="page-num.tex">
- <cd:sequence>
- <cd:string value="seteazanumarpagina"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="numar">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="stare">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- <cd:constant type="mentine"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupsubpagenumber" file="page-num.tex">
- <cd:sequence>
- <cd:string value="seteazanumarsubpagina"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="mod">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="stare">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- <cd:constant type="niciunul"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupblank">
- <cd:sequence>
- <cd:string value="seteazablanc"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="normal" default="yes"/>
- <cd:constant type="standard"/>
- <cd:constant type="linie"/>
- <cd:constant type="cd:dimension"/>
- <cd:constant type="mare"/>
- <cd:constant type="mediu"/>
- <cd:constant type="mic"/>
- <cd:constant type="fixat"/>
- <cd:constant type="flexibil"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineblank" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="definesteblanc"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:inherit name="seteazablanc"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definepapersize" file="page-lay.tex">
- <cd:sequence>
- <cd:string value="definestedimensiunehartie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="inaltime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="scala">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuppaper" file="page-lay.tex">
- <cd:sequence>
- <cd:string value="setuppaper"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="hartie">
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="completelistofsorts" generated="yes">
+ <cd:sequence>
+ <cd:string value="completelistof"/>
+ <cd:variable value="sorts"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="placelistofsorts" generated="yes">
+ <cd:sequence>
+ <cd:string value="placelistof"/>
+ <cd:variable value="sorts"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="loadsorts" generated="yes">
+ <cd:sequence>
+ <cd:string value="incarca"/>
+ <cd:variable value="sorts"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="definemakeup" file="page-mak.tex">
+ <cd:sequence>
+ <cd:string value="definestemakeup"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="pagina">
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:inherit name="seteazamakeup" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="makeup" type="environment">
+ <cd:sequence>
+ <cd:string value="makeup"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="nx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ny">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="inaltime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="spatiusus">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="spatiuspate">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="optiune">
- <cd:constant type="max"/>
- <cd:constant type="ajustat"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuppapersize" file="page-lay.tex">
- <cd:sequence>
- <cd:string value="seteazadimensiunihartie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="A3"/>
- <cd:constant type="A4" default="yes"/>
- <cd:constant type="A5"/>
- <cd:constant type="A6"/>
- <cd:constant type="letter"/>
- <cd:constant type="..."/>
- <cd:constant type="CD"/>
- <cd:constant type="cd:name"/>
- <cd:constant type="vedere"/>
- <cd:constant type="oglindit"/>
- <cd:constant type="rotat"/>
- <cd:constant type="90"/>
- <cd:constant type="180"/>
- <cd:constant type="270"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="A3"/>
- <cd:constant type="A4" default="yes"/>
- <cd:constant type="A5"/>
- <cd:constant type="A6"/>
- <cd:constant type="letter"/>
- <cd:constant type="..."/>
- <cd:constant type="cd:name"/>
- <cd:constant type="vedere"/>
- <cd:constant type="oglindit"/>
- <cd:constant type="rotat"/>
- <cd:constant type="negativ"/>
- <cd:constant type="90"/>
- <cd:constant type="180"/>
- <cd:constant type="270"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuparranging" file="page-imp.tex">
- <cd:sequence>
- <cd:string value="seteazaaranjareapag"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="dezactivat"/>
- <cd:constant type="2*16"/>
- <cd:constant type="2*8"/>
- <cd:constant type="2*4"/>
- <cd:constant type="2*2"/>
- <cd:constant type="2**2"/>
- <cd:constant type="2*2*4"/>
- <cd:constant type="2*4*2"/>
- <cd:constant type="2UP"/>
- <cd:constant type="2DOWN"/>
- <cd:constant type="2SIDE"/>
- <cd:constant type="2TOP"/>
- <cd:constant type="oglindit"/>
- <cd:constant type="rotat"/>
- <cd:constant type="douafete"/>
- <cd:constant type="negativ"/>
- <cd:constant type="fundal"/>
- <cd:constant type="90"/>
- <cd:constant type="180"/>
- <cd:constant type="270"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showprint">
- <cd:sequence>
- <cd:string value="afiseazatiparire"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:inherit name="seteazadimensiunihartie"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:inherit name="seteazadimensiunihartie"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="seteazaaspect"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definelogo" file="page-log.tex">
- <cd:sequence>
- <cd:string value="definestelogo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="sus"/>
- <cd:constant type="antet"/>
- <cd:constant type="subsol"/>
- <cd:constant type="subsol"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="niciunul"/>
- <cd:constant type="pagina"/>
- <cd:constant type="bordurastanga"/>
- <cd:constant type="marginestanga"/>
- <cd:constant type="stanga"/>
- <cd:constant type="centru"/>
- <cd:constant type="dreapta"/>
- <cd:constant type="marginedreapta"/>
- <cd:constant type="borduradreapta"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="comanda">
- <cd:constant type="cd:command"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="stare">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placelogos" file="page-log.tex">
- <cd:sequence>
- <cd:string value="punelogouri"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupwhitespace">
- <cd:sequence>
- <cd:string value="seteazaspatiualb"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="niciunul" default="yes"/>
- <cd:constant type="mic"/>
- <cd:constant type="mediu"/>
- <cd:constant type="mare"/>
- <cd:constant type="linie"/>
- <cd:constant type="fixat"/>
- <cd:constant type="fix"/>
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupindenting">
- <cd:sequence>
- <cd:string value="seteazaaliniat"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="seteazamakeup" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupmakeup" file="page-mak.tex">
+ <cd:sequence>
+ <cd:string value="seteazamakeup"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="latime">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="inaltime">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="voffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="hoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="pagina">
+ <cd:constant type="stanga"/>
+ <cd:constant type="da"/>
+ <cd:constant type="dreapta"/>
+ </cd:parameter>
+ <cd:parameter name="comenzi">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="douafete">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ <cd:constant type="gol"/>
+ </cd:parameter>
+ <cd:parameter name="stareantet">
+ <cd:constant type="normal"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="start"/>
+ <cd:constant type="gol"/>
+ <cd:constant type="niciunul"/>
+ <cd:constant type="faramarcare"/>
+ </cd:parameter>
+ <cd:parameter name="staresubsol">
+ <cd:constant type="normal"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="start"/>
+ <cd:constant type="gol"/>
+ <cd:constant type="niciunul"/>
+ <cd:constant type="faramarcare"/>
+ </cd:parameter>
+ <cd:parameter name="staretext">
+ <cd:constant type="normal"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="start"/>
+ <cd:constant type="gol"/>
+ <cd:constant type="niciunul"/>
+ <cd:constant type="faramarcare"/>
+ </cd:parameter>
+ <cd:parameter name="staresus">
+ <cd:constant type="stop"/>
+ <cd:constant type="start"/>
+ </cd:parameter>
+ <cd:parameter name="starejos">
+ <cd:constant type="stop"/>
+ <cd:constant type="start"/>
+ </cd:parameter>
+ <cd:parameter name="pagestate">
+ <cd:constant type="stop"/>
+ <cd:constant type="start"/>
+ </cd:parameter>
+ <cd:parameter name="culoare">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="namemakeup" type="environment" generated="yes">
+ <cd:sequence>
+ <cd:variable value="nume"/>
+ <cd:string value="makeup"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="version">
+ <cd:sequence>
+ <cd:string value="versiune"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="final" default="yes"/>
+ <cd:constant type="concept"/>
+ <cd:constant type="temporar"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="currentdate">
+ <cd:sequence>
+ <cd:string value="datacurenta"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:inherit name="data" n="2"/> <!-- or vice versa :) -->
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="date" file="core-con.tex">
+ <cd:sequence>
+ <cd:string value="data"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes"> <!-- if not given, current date is used -->
+ <cd:parameter name="d">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="m">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="y">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="zi"/>
+ <cd:constant type="luna"/>
+ <cd:constant type="an"/>
+ <cd:constant type="zisaptamana"/>
+ <cd:constant type="d"/>
+ <cd:constant type="m"/>
+ <cd:constant type="y"/> <!-- also j -->
+ <cd:constant type="w"/>
+ <cd:constant type="dd"/>
+ <cd:constant type="mm"/>
+ <cd:constant type="yy"/> <!-- also jj -->
+ <cd:constant type="spatiu"/>
+ <cd:constant type="--"/>
+ <cd:constant type="day+"/>
+ <cd:constant type="d+"/>
+ <cd:constant type="dd+"/>
+ <cd:constant type="referinta"/>
+ <cd:constant type="cd:text"/> <!-- any other text -->
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="referraldate" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="datareferit"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="indenting" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="aliniat"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
<cd:resolve name="indenting"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definesectionblock" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="definesteblocsectiune"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="seteazablocsectiune"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupsectionblock" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="seteazablocsectiune"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="numar">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="pagina">
- <cd:constant type="da"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="noindenting" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="faraaliniat"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="blank" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="blanc"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="mic"/>
+ <cd:constant type="mediu"/>
+ <cd:constant type="mare" default="yes"/>
+ <cd:constant type="faraalb"/>
+ <cd:constant type="inapot"/>
+ <cd:constant type="alb"/>
+ <cd:constant type="dezactivat"/>
+ <cd:constant type="fortat"/>
+ <cd:constant type="reset"/>
+ <cd:constant type="linie"/>
+ <cd:constant type="jumatatelinie"/>
+ <cd:constant type="cd:formula"/>
+ <cd:constant type="fixat"/>
+ <cd:constant type="flexibil"/>
+ <cd:constant type="niciunul"/>
+ <cd:constant type="totdeauna"/>
+ <cd:constant type="extern"/>
+ <cd:constant type="unit"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="packed" type="environment" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="impachetat"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="blank"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="unpacked" type="environment">
+ <cd:sequence>
+ <cd:string value="unpacked"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="linecorrection" type="environment">
+ <cd:sequence>
+ <cd:string value="linecorrection"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="correctwhitespace" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="corecteazaspatiualb"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="postponing" type="environment">
+ <cd:sequence>
+ <cd:string value="postponing"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="local" type="environment">
+ <cd:sequence>
+ <cd:string value="local"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="narrower" type="environment">
+ <cd:sequence>
+ <cd:string value="narrower"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="stanga"/>
+ <cd:constant type="centru" default="yes"/>
<cd:constant type="dreapta"/>
- </cd:parameter>
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definesection" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="definestesectiune"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupsection" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="seteazasectiune"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="conversie">
- <cd:constant type="numere"/>
- <cd:constant type="caractere"/>
- <cd:constant type="Caractere"/>
- <cd:constant type="numereromane"/>
- <cd:constant type="Numereromane"/>
- </cd:parameter>
- <cd:parameter name="numarprecedent">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuphead" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="seteazatitlu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:section"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stiltext">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stilnumar">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="culoare">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="culoaretext">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="culoarenumar">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="numar">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="numarpropriu">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="pagina">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="hiding" type="environment">
+ <cd:sequence>
+ <cd:string value="hiding"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupalign" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="seteazaalinierea"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="latime"/>
<cd:constant type="stanga"/>
<cd:constant type="dreapta"/>
- <cd:constant type="da"/>
- </cd:parameter>
- <cd:parameter name="continua">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="antet">
- <cd:constant type="niciunul"/>
- <cd:constant type="gol"/>
- <cd:constant type="inalt"/>
- <cd:constant type="faramarcare"/>
- </cd:parameter>
- <cd:parameter name="text">
- <cd:constant type="niciunul"/>
- <cd:constant type="gol"/>
- <cd:constant type="inalt"/>
- <cd:constant type="faramarcare"/>
- </cd:parameter>
- <cd:parameter name="subsol">
- <cd:constant type="niciunul"/>
- <cd:constant type="gol"/>
- <cd:constant type="inalt"/>
- <cd:constant type="faramarcare"/>
- </cd:parameter>
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="intre">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="alternativ">
- <cd:constant type="normal"/>
- <cd:constant type="inmargine"/>
<cd:constant type="centru"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="suspenda">
- <cd:constant type="niciunul"/>
+ <cd:constant type="intern"/>
+ <cd:constant type="extern"/>
+ <cd:constant type="larg"/>
<cd:constant type="broad"/>
- <cd:constant type="ajustat"/>
+ <cd:constant type="inaltime"/>
+ <cd:constant type="subsol"/>
<cd:constant type="linie"/>
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="comanda">
- <cd:constant type="cd:twoarguments"/>
- </cd:parameter>
- <cd:parameter name="comandanumar">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="comandatext">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="deepnumbercommand">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="deeptextcommand">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="prefix">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="punetitlu">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- <cd:constant type="gol"/>
- </cd:parameter>
- <cd:parameter name="numarincrement">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- <cd:constant type="cd:list"/>
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="resetnumber">
+ <cd:constant type="reset"/>
+ <cd:constant type="suspendat"/>
+ <cd:constant type="nothanging"/>
+ <cd:constant type="despsilabe"/>
+ <cd:constant type="nedespsilabe"/>
+ <cd:constant type="lesshyphenation"/>
+ <cd:constant type="morehyphenation"/>
+ <cd:constant type="nou"/>
+ <cd:constant type="old"/>
+ <cd:constant type="normal"/>
<cd:constant type="da"/>
<cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="fisier">
+ <cd:constant type="flushleft"/>
+ <cd:constant type="flushright"/>
+ <cd:constant type="flushouter"/>
+ <cd:constant type="flushinner"/>
+ <cd:constant type="center"/>
+ <cd:constant type="hz"/>
+ <cd:constant type="nohz"/>
+ <cd:constant type="spatiere"/>
+ <cd:constant type="nospacing"/>
+ <cd:constant type="tolerant"/>
+ <cd:constant type="foartetolerant"/>
+ <cd:constant type="dilatat"/>
+ <cd:constant type="lefttoright"/>
+ <cd:constant type="righttoleft"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+
+ <cd:command name="alignment" type="environment" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="alignment"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:inherit name="seteazaalinierea" n="1"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupspacing">
+ <cd:sequence>
+ <cd:string value="seteazaspatiu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="broad"/>
+ <cd:constant type="impachetat"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptolerance" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="seteazatoleranta"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="orizontal"/>
+ <cd:constant type="vertical"/>
+ <cd:constant type="dilatat"/>
+ <cd:constant type="spatiu"/>
+ <cd:constant type="foartestrict" default="yes"/>
+ <cd:constant type="strict"/>
+ <cd:constant type="tolerant"/>
+ <cd:constant type="foartetolerant"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="pagetype" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="tippagina"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="expansiune">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- <cd:constant type="comanda"/>
- </cd:parameter>
- <cd:parameter name="textmargine">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:inherit name="seteazatitluri"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupheadnumber" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="seteazanumartitlu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:section"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:number"/>
- <cd:constant type="+cd:number"/>
- <cd:constant type="-cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="headnumber">
- <cd:sequence>
- <cd:string value="numartitlu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:section"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="determineheadnumber" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="determinanumartitlu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:section"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="currentheadnumber" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="numartitlucurent"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="nextsection" generated="yes" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="next"/>
- <cd:variable value="sectiune"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="definehead" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="definesteantet"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:section"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupitemgroup" file="core-itm.tex">
- <cd:sequence>
- <cd:string value="setupitemgroup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:number"/>
- <cd:constant type="fiecare"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="standard" default="yes"/>
- <cd:constant type="broad"/>
- <cd:constant type="serried"/>
- <cd:constant type="impachetat"/>
- <cd:constant type="despachetat"/>
- <cd:constant type="faraalb"/>
- <cd:constant type="inainte"/>
- <cd:constant type="dupa"/>
- <cd:constant type="stopper"/>
- <cd:constant type="unit"/>
- <cd:constant type="lamargine"/>
- <cd:constant type="inmargine"/>
- <cd:constant type="autointro"/>
- <cd:constant type="larg"/>
- <cd:constant type="repetat"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="paragraf"/>
- <cd:constant type="intext"/>
- <cd:constant type="aleator"/>
- <cd:constant type="reverse"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:parameter name="margine">
- <cd:constant type="nu"/>
- <cd:constant type="standard"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="marginestanga">
- <cd:constant type="nu"/>
- <cd:constant type="standard"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="marginedreapta">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="processpage" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="proceseazapagina"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="da" default="yes"/>
<cd:constant type="nu"/>
- <cd:constant type="standard"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="factor">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="elemente">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="start">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="intre">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="stanga">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="dreapta">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="couplepage" file="page-ini.tex">
+ <cd:sequence>
+ <cd:string value="paginadubla"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="optiune">
+ <cd:constant type="douafete"/>
+ </cd:parameter>
+ <cd:parameter name="inainte">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dupa">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="position" file="page-lyr.tex">
+ <cd:sequence>
+ <cd:string value="pozitie"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:position n="1" list="yes"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupscreens" file="core-rul.tex">
+ <cd:sequence>
+ <cd:string value="seteazaecrane"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="metoda">
+ <cd:constant type="punct"/>
+ <cd:constant type="rigla"/>
+ <cd:constant type="extern"/>
+ </cd:parameter>
+ <cd:parameter name="rezolutie">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="factor">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ecran">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbackgrounds" file="page-bck.tex">
+ <cd:sequence>
+ <cd:string value="seteazafundaluri"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="sus"/>
+ <cd:constant type="antet"/>
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="inaintetitlu">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupatitlu">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="stiltitlu">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stilmarcaj">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stilsimbol">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stopper">
+ <cd:constant type="subsol"/>
+ <cd:constant type="subsol"/>
+ <cd:constant type="pagina"/>
+ <cd:constant type="foaie"/>
+ <cd:constant type="paginastanga"/>
+ <cd:constant type="paginadreapta"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="bordurastanga"/>
+ <cd:constant type="marginestanga"/>
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="simbol">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="aliniere">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="symaliniere">
- <cd:resolve name="symalign"/>
- </cd:parameter>
- <cd:parameter name="aliniaturmator">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="itemgroup" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="itemgroup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="a"/>
- <cd:constant type="A"/>
- <cd:constant type="KA"/>
- <cd:constant type="n"/>
- <cd:constant type="N"/>
- <cd:constant type="m"/>
- <cd:constant type="r"/>
- <cd:constant type="R"/>
- <cd:constant type="KR"/>
- <cd:constant type="cd:number"/>
- <cd:constant type="continuu"/>
- <cd:constant type="standard" default="yes"/>
- <cd:constant type="broad"/>
- <cd:constant type="serried"/>
- <cd:constant type="impachetat"/>
- <cd:constant type="stopper"/>
- <cd:constant type="unit"/>
- <cd:constant type="lamargine"/>
- <cd:constant type="inmargine"/>
- <cd:constant type="intro"/>
- <cd:constant type="coloane"/>
- <cd:constant type="text"/>
- <cd:constant type="paragraf"/>
- <cd:constant type="repetat"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="setupitemgroup"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="item">
- <cd:sequence>
- <cd:string value="element"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="but">
- <cd:sequence>
- <cd:string value="but"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference interactive="exclusive"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="its">
- <cd:sequence>
- <cd:string value="el"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="ran">
- <cd:sequence>
- <cd:string value="ran"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="head">
- <cd:sequence>
- <cd:string value="titlu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="mar">
- <cd:sequence>
- <cd:string value="mar"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="sub">
- <cd:sequence>
- <cd:string value="sub"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="sym" file="core-itm.tex">
- <cd:sequence>
- <cd:string value="sim"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="nop">
- <cd:sequence>
- <cd:string value="nop"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="defineregister" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="definesteregistru"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:plural"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupregister" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="seteazaregistru"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="balanta">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="aliniere">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stilpagina">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stiltext">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="indicator">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="cuplare">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="cd:sectionnumber">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="criteriu">
- <cd:constant type="cd:section"/>
- <cd:constant type="local"/>
+ <cd:constant type="marginedreapta"/>
+ <cd:constant type="borduradreapta"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:parameter name="stare">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="cd:repeat"/>
+ </cd:parameter>
+ <cd:inherit name="seteazainconjurat" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="buffer" type="environment" generated="yes" file="core-buf.tex">
+ <cd:sequence>
+ <cd:variable value="buffer"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="buffer" type="environment" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="buffer"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getbuffer">
+ <cd:sequence>
+ <cd:string value="adubuffer"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="typebuffer" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="scriebuffer"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definebuffer" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="definestebuffer"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbuffer" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="seteazabuffer"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="paragraf">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="inainte">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dupa">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineblock" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="definestebloc"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nomoreblocks" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="gatablocuri"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="hideblocks" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="ascundeblocuri"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="keepblocks" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="pastreazablocuri"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
<cd:constant type="tot"/>
- </cd:parameter>
- <cd:parameter name="distanta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="simbol">
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- <cd:constant type="..."/>
- <cd:constant type="n"/>
- <cd:constant type="a"/>
- <cd:constant type="..."/>
- <cd:constant type="niciunul"/>
- </cd:parameter>
- <cd:parameter name="interactiune">
- <cd:constant type="numarpagina"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="expansiune">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- <cd:constant type="comanda"/>
- </cd:parameter>
- <cd:parameter name="referinta">
- <cd:constant type="on"/>
- <cd:constant type="dezactivat"/>
- </cd:parameter>
- <cd:parameter name="comanda">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="locatie">
- <cd:constant type="stanga"/>
- <cd:constant type="centru"/>
- <cd:constant type="dreapta"/>
- </cd:parameter>
- <cd:parameter name="latimemaxima">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="referintanecunoscuta">
- <cd:constant type="gol"/>
- <cd:constant type="niciunul"/>
- </cd:parameter>
- <cd:parameter name="alternativ">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="A"/>
- <cd:constant type="B"/>
- </cd:parameter>
- <cd:parameter name="prefix">
- <cd:constant type="ambele"/>
- <cd:constant type="primul"/>
- <cd:constant type="niciunul"/>
- </cd:parameter>
- <cd:parameter name="compress">
- <cd:constant type="nu"/>
- <cd:constant type="da"/>
- </cd:parameter>
- <cd:parameter name="deeptextcommand">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="register" generated="yes" file="core-reg.tex">
- <cd:sequence>
- <cd:variable value="registru"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:index list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="startregister" generated="yes" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="start"/>
- <cd:variable value="registru"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:index list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="writetoregister" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="scrieinregistru"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:index list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="coupledregister" generated="yes">
- <cd:sequence>
- <cd:string value="coupled"/>
- <cd:variable value="registru"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:index/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="coupleregister" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="cupleazaregistru"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placeregister" variant="1" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="puneregistru"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="seteazaregistru"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="seeregister" generated="yes">
- <cd:sequence>
- <cd:string value="see"/>
- <cd:variable value="registru"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content/>
- <cd:index list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="completeregister" generated="yes" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="complete"/>
- <cd:variable value="registru"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="yes" optional="yes" list="yes">
- <cd:inherit name="seteazaregistru"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placeregister" variant="2" generated="yes" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="place"/>
- <cd:variable value="registru"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="yes" optional="yes" list="yes">
- <cd:inherit name="seteazaregistru"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definesynonyms" file="core-syn.tex">
- <cd:sequence>
- <cd:string value="definestesinonim"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:plural"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:command"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:command"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupsynonyms" file="core-syn.tex">
- <cd:sequence>
- <cd:string value="seteazasinonime"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="stiltext">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stilsinonim">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="locatie">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useblocks" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="folosestebloc"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="processblocks" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="proceseazabloc"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="bypassblocks" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="saripesteblocuri"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="forceblocks">
+ <cd:sequence>
+ <cd:string value="forteazablocuri"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="selectblocks" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="selecteazablocuri"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes">
+ <cd:parameter name="criteriu">
+ <cd:constant type="tot"/>
+ <cd:constant type="cd:section"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupblock" file="core-buf.tex">
+ <cd:sequence>
+ <cd:string value="seteazabloc"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="inainte">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dupa">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="intern">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="fisier">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="formula" type="environment" generated="yes">
+ <cd:sequence>
+ <cd:variable value="formula"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="mathematics" file="supp-mat.tex">
+ <cd:sequence>
+ <cd:string value="matematica"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placeformula" file="core-mat.tex">
+ <cd:sequence>
+ <cd:string value="puneformula"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2" optional="yes"/>
+ <cd:displaymath n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placesubformula" file="core-mat.tex">
+ <cd:sequence>
+ <cd:string value="punesubformula"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" optional="yes" list="yes"/>
+ <cd:content n="2" optional="yes"/>
+ <cd:displaymath n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placefloat" generated="yes" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="pune"/>
+ <cd:variable value="obiectmobil"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="stanga"/>
<cd:constant type="dreapta"/>
+ <cd:constant type="aici" default="yes"/>
<cd:constant type="sus"/>
- <cd:constant type="serried"/>
- <cd:constant type="inmargine"/>
+ <cd:constant type="subsol"/>
<cd:constant type="instanga"/>
<cd:constant type="indreapta"/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stare">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="criteriu">
- <cd:constant type="tot"/>
- <cd:constant type="folosit"/>
- </cd:parameter>
- <cd:parameter name="conversie">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="expansiune">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- <cd:constant type="comanda"/>
- </cd:parameter>
- <cd:parameter name="comanda">
- <cd:constant type="cd:threearguments"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="synonym" generated="yes">
- <cd:sequence>
- <cd:variable value="synonym"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="completelistofsynonyms" generated="yes">
- <cd:sequence>
- <cd:string value="completelistof"/>
- <cd:variable value="synonyms"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="placelistofsynonyms" generated="yes">
- <cd:sequence>
- <cd:string value="placelistof"/>
- <cd:variable value="synonyms"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="loadsynonyms" generated="yes">
- <cd:sequence>
- <cd:string value="load"/>
- <cd:variable value="synonyms"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="definesorting" file="core-syn.tex">
- <cd:sequence>
- <cd:string value="definestesortare"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:plural"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:command"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupsorting" file="core-syn.tex">
- <cd:sequence>
- <cd:string value="seteazasortare"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="comanda">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="stare">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="criteriu">
- <cd:constant type="tot"/>
- <cd:constant type="folosit"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="expansiune">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- <cd:constant type="comanda"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="sort" generated="yes">
- <cd:sequence>
- <cd:variable value="sort"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="completelistofsorts" generated="yes">
- <cd:sequence>
- <cd:string value="completelistof"/>
- <cd:variable value="sorts"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="placelistofsorts" generated="yes">
- <cd:sequence>
- <cd:string value="placelistof"/>
- <cd:variable value="sorts"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="loadsorts" generated="yes">
- <cd:sequence>
- <cd:string value="load"/>
- <cd:variable value="sorts"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="definemakeup" file="page-mak.tex">
- <cd:sequence>
- <cd:string value="definestemakeup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="seteazamakeup"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="makeup" type="environment">
- <cd:sequence>
- <cd:string value="makeup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="seteazamakeup"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupmakeup" file="page-mak.tex">
- <cd:sequence>
- <cd:string value="seteazamakeup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="inaltime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="voffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="pagina">
+ <cd:constant type="inmargine"/>
+ <cd:constant type="margine"/>
+ <cd:constant type="marginestanga"/>
+ <cd:constant type="marginedreapta"/>
+ <cd:constant type="bordurastanga"/>
+ <cd:constant type="borduradreapta"/>
+ <cd:constant type="innermargin"/>
+ <cd:constant type="outermargin"/>
+ <cd:constant type="inneredge"/>
+ <cd:constant type="outeredge"/>
+ <cd:constant type="intern"/>
+ <cd:constant type="extern"/>
+ <cd:constant type="linie"/>
+ <cd:constant type="inalt"/>
+ <cd:constant type="jos"/>
+ <cd:constant type="ajustat"/>
+ <cd:constant type="pagina"/>
+ <cd:constant type="paginastanga"/>
+ <cd:constant type="paginadreapta"/>
+ <cd:constant type="opus"/>
+ <cd:constant type="totdeauna"/>
+ <cd:constant type="auto"/>
+ <cd:constant type="fortat"/>
+ <cd:constant type="inalt"/>
+ <cd:constant type="reset"/>
+ <cd:constant type="linie"/>
+ <cd:constant type="inaltime"/>
+ <cd:constant type="adancime"/>
+ <cd:constant type="split"/>
+ <cd:constant type="90"/>
+ <cd:constant type="180"/>
+ <cd:constant type="270"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes" list="yes"/>
+ <cd:content n="3"/>
+ <cd:content n="4"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="reservefloat" generated="yes">
+ <cd:sequence>
+ <cd:string value="rezervat"/>
+ <cd:variable value="obiectmobil"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:parameter name="inaltime">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="latime">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="frame">
+ <cd:constant type="on"/>
+ <cd:constant type="dezactivat"/>
+ </cd:parameter>
+ </cd:assignments>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:reference n="3" optional="yes" list="yes"/>
+ <cd:content n="4"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefloat" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="definestefloat"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:singular"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:plural"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfloat" file="page-flt.tex">
+ <cd:sequence>
+ <cd:string value="seteazafloat"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="inaltime">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="latime">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="inaltimemaxima">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="latimemaxima">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="latimeminima">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="implicit">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="marginipagina">
+ <cd:constant type="cd:list"/>
+ </cd:parameter>
+ <cd:parameter name="distantamarginestanga">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distantamarginedreapta">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="locatie">
+ <cd:constant type="stanga"/>
+ <cd:constant type="centru"/>
+ <cd:constant type="dreapta"/>
+ </cd:parameter>
+ <cd:inherit name="seteazainconjurat" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="floattext" type="environment" generated="yes">
+ <cd:sequence>
+ <cd:variable value="obiectmobil"/>
+ <cd:string value="text"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="stanga"/>
- <cd:constant type="da"/>
<cd:constant type="dreapta"/>
- </cd:parameter>
- <cd:parameter name="comenzi">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="douafete">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- <cd:constant type="gol"/>
- </cd:parameter>
- <cd:parameter name="stareantet">
- <cd:constant type="normal"/>
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- <cd:constant type="gol"/>
- <cd:constant type="niciunul"/>
- <cd:constant type="faramarcare"/>
- </cd:parameter>
- <cd:parameter name="staresubsol">
- <cd:constant type="normal"/>
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- <cd:constant type="gol"/>
- <cd:constant type="niciunul"/>
- <cd:constant type="faramarcare"/>
- </cd:parameter>
- <cd:parameter name="staretext">
- <cd:constant type="normal"/>
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- <cd:constant type="gol"/>
- <cd:constant type="niciunul"/>
- <cd:constant type="faramarcare"/>
- </cd:parameter>
- <cd:parameter name="staresus">
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- </cd:parameter>
- <cd:parameter name="starejos">
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- </cd:parameter>
- <cd:parameter name="pagestate">
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- </cd:parameter>
- <cd:parameter name="culoare">
+ <cd:constant type="inalt"/>
+ <cd:constant type="centru"/>
+ <cd:constant type="jos"/>
+ <cd:constant type="offset"/>
+ <cd:constant type="inalt"/>
+ </cd:keywords>
+ <cd:reference n="2" optional="yes"/>
+ <cd:content n="3"/>
+ <cd:content n="4"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placelistoffloats" generated="yes">
+ <cd:sequence>
+ <cd:string value="placelistof"/>
+ <cd:variable value="floats"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="completelistoffloats" generated="yes">
+ <cd:sequence>
+ <cd:string value="completelistof"/>
+ <cd:variable value="floats"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="referral" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="referit"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="bet">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="ken">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="dat">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="van">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="aan">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="ref">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="selectpaper">
+ <cd:sequence>
+ <cd:string value="selecteazahartie"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="familie">
+ <cd:constant type="1"/>
+ <cd:constant type="2"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="couplepaper">
+ <cd:sequence>
+ <cd:string value="hartiedubla"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="namemakeup" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="nume"/>
- <cd:string value="makeup"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="version">
- <cd:sequence>
- <cd:string value="versiune"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="final" default="yes"/>
- <cd:constant type="concept"/>
- <cd:constant type="temporar"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="currentdate">
- <cd:sequence>
- <cd:string value="datacurenta"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:inherit name="data"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="date" file="core-con.tex">
- <cd:sequence>
- <cd:string value="data"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:parameter name="d">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="m">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="y">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- <cd:keywords list="yes">
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="referraldate" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="datareferit"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="indenting" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="aliniat"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:resolve name="indenting"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="noindenting" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="faraaliniat"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="blank" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="blanc"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="mic"/>
- <cd:constant type="mediu"/>
- <cd:constant type="mare" default="yes"/>
- <cd:constant type="faraalb"/>
- <cd:constant type="inapot"/>
- <cd:constant type="alb"/>
- <cd:constant type="dezactivat"/>
- <cd:constant type="fortat"/>
- <cd:constant type="reset"/>
- <cd:constant type="linie"/>
- <cd:constant type="jumatatelinie"/>
- <cd:constant type="cd:formula"/>
- <cd:constant type="fixat"/>
- <cd:constant type="flexibil"/>
- <cd:constant type="niciunul"/>
- <cd:constant type="totdeauna"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="packed" type="environment" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="impachetat"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="blank"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="unpacked" type="environment">
- <cd:sequence>
- <cd:string value="unpacked"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="linecorrection" type="environment">
- <cd:sequence>
- <cd:string value="linecorrection"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="correctwhitespace" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="corecteazaspatiualb"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="postponing" type="environment">
- <cd:sequence>
- <cd:string value="postponing"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="local" type="environment">
- <cd:sequence>
- <cd:string value="local"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="narrower" type="environment">
- <cd:sequence>
- <cd:string value="narrower"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="stanga"/>
- <cd:constant type="centru" default="yes"/>
- <cd:constant type="dreapta"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="hiding" type="environment">
- <cd:sequence>
- <cd:string value="hiding"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupalign" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="seteazaalinierea"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="latime"/>
- <cd:constant type="stanga"/>
- <cd:constant type="dreapta"/>
- <cd:constant type="centru"/>
- <cd:constant type="intern"/>
- <cd:constant type="extern"/>
- <cd:constant type="larg"/>
- <cd:constant type="broad"/>
- <cd:constant type="inaltime"/>
- <cd:constant type="subsol"/>
- <cd:constant type="linie"/>
- <cd:constant type="reset"/>
- <cd:constant type="suspendat"/>
- <cd:constant type="nothanging"/>
- <cd:constant type="despsilabe"/>
- <cd:constant type="nedespsilabe"/>
- <cd:constant type="lesshyphens"/>
- <cd:constant type="morehyphens"/>
- <cd:constant type="nou"/>
- <cd:constant type="old"/>
- <cd:constant type="normal"/>
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- <cd:constant type="flushleft"/>
- <cd:constant type="flushright"/>
- <cd:constant type="flushouter"/>
- <cd:constant type="flushinner"/>
- <cd:constant type="center"/>
- <cd:constant type="hz"/>
- <cd:constant type="nohz"/>
- <cd:constant type="spatiere"/>
- <cd:constant type="nospacing"/>
- <cd:constant type="tolerant"/>
- <cd:constant type="foartetolerant"/>
- <cd:constant type="dilatat"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-
-<cd:command name="alignment" type="environment">
- <cd:sequence>
- <cd:string value="alignment"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:inherit name="seteazaalinierea"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupspacing">
- <cd:sequence>
- <cd:string value="seteazaspatiu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="broad"/>
- <cd:constant type="impachetat"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptolerance" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="seteazatoleranta"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="orizontal"/>
- <cd:constant type="vertical"/>
- <cd:constant type="dilatat"/>
- <cd:constant type="spatiu"/>
- <cd:constant type="foartestrict" default="yes"/>
- <cd:constant type="strict"/>
- <cd:constant type="tolerant"/>
- <cd:constant type="foartetolerant"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="pagetype" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="tippagina"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="processpage" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="proceseazapagina"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="da" default="yes"/>
- <cd:constant type="nu"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="couplepage" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="paginadubla"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="optiune">
- <cd:constant type="douafete"/>
- </cd:parameter>
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="position" file="page-lyr.tex">
- <cd:sequence>
- <cd:string value="pozitie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:position list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupscreens" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="seteazaecrane"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="metoda">
- <cd:constant type="punct"/>
- <cd:constant type="rigla"/>
- <cd:constant type="extern"/>
- </cd:parameter>
- <cd:parameter name="rezolutie">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="factor">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="chem" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="chem"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fraction" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="fractie"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="periods" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="puncte"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ecran">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupbackgrounds" file="page-bck.tex">
- <cd:sequence>
- <cd:string value="seteazafundaluri"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="sus"/>
- <cd:constant type="antet"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="subsol"/>
- <cd:constant type="subsol"/>
- <cd:constant type="pagina"/>
- <cd:constant type="foaie"/>
- <cd:constant type="paginastanga"/>
- <cd:constant type="paginadreapta"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="bordurastanga"/>
- <cd:constant type="marginestanga"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="marginedreapta"/>
- <cd:constant type="borduradreapta"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="stare">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- <cd:constant type="cd:repeat"/>
- </cd:parameter>
- <cd:inherit name="seteazainconjurat"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="buffer" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="buffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="getbuffer">
- <cd:sequence>
- <cd:string value="adubuffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="typebuffer" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="scriebuffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definebuffer" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="definestebuffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupbuffer" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="seteazabuffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="paragraf">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineblock" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="definestebloc"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="nomoreblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="gatablocuri"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="hideblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="ascundeblocuri"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="keepblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="pastreazablocuri"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="tot"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="useblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="folosestebloc"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="processblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="proceseazabloc"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="bypassblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="saripesteblocuri"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="forceblocks">
- <cd:sequence>
- <cd:string value="forteazablocuri"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="selectblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="selecteazablocuri"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes">
- <cd:parameter name="criteriu">
- <cd:constant type="tot"/>
- <cd:constant type="cd:section"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupblock" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="seteazabloc"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="intern">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="fisier">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="formula" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="formula"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="mathematics" file="supp-mat.tex">
- <cd:sequence>
- <cd:string value="matematica"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placeformula" file="core-mat.tex">
- <cd:sequence>
- <cd:string value="puneformula"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content optional="yes"/>
- <cd:displaymath/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placesubformula" file="core-mat.tex">
- <cd:sequence>
- <cd:string value="punesubformula"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference optional="yes" list="yes"/>
- <cd:content optional="yes"/>
- <cd:displaymath/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placefloat" generated="yes" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="place"/>
- <cd:variable value="obiectmobil"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="stanga"/>
- <cd:constant type="dreapta"/>
- <cd:constant type="aici" default="yes"/>
- <cd:constant type="sus"/>
- <cd:constant type="subsol"/>
- <cd:constant type="instanga"/>
- <cd:constant type="indreapta"/>
- <cd:constant type="inmargine"/>
- <cd:constant type="margine"/>
- <cd:constant type="marginestanga"/>
- <cd:constant type="marginedreapta"/>
- <cd:constant type="bordurastanga"/>
- <cd:constant type="borduradreapta"/>
- <cd:constant type="innermargin"/>
- <cd:constant type="outermargin"/>
- <cd:constant type="inneredge"/>
- <cd:constant type="outeredge"/>
- <cd:constant type="intern"/>
- <cd:constant type="extern"/>
- <cd:constant type="linie"/>
- <cd:constant type="inalt"/>
- <cd:constant type="jos"/>
- <cd:constant type="ajustat"/>
- <cd:constant type="pagina"/>
- <cd:constant type="paginastanga"/>
- <cd:constant type="paginadreapta"/>
- <cd:constant type="opus"/>
- <cd:constant type="totdeauna"/>
- <cd:constant type="auto"/>
- <cd:constant type="fortat"/>
- <cd:constant type="inalt"/>
- <cd:constant type="reset"/>
- <cd:constant type="linie"/>
- <cd:constant type="inaltime"/>
- <cd:constant type="adancime"/>
- <cd:constant type="split"/>
- <cd:constant type="90"/>
- <cd:constant type="180"/>
- <cd:constant type="270"/>
- </cd:keywords>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="reservefloat" generated="yes">
- <cd:sequence>
- <cd:string value="reserve"/>
- <cd:variable value="obiectmobil"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:parameter name="inaltime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="frame">
- <cd:constant type="on"/>
- <cd:constant type="dezactivat"/>
- </cd:parameter>
- </cd:assignments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:reference optional="yes" list="yes"/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definefloat" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="definestefloat"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:plural"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfloat" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="seteazafloat"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="inaltime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="inaltimemaxima">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="latimemaxima">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="latimeminima">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="implicit">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="marginipagina">
- <cd:constant type="cd:list"/>
- </cd:parameter>
- <cd:parameter name="distantamarginestanga">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distantamarginedreapta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="locatie">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="items">
+ <cd:sequence>
+ <cd:string value="element"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="seteazaelemente" n="1"/>
+ </cd:assignments>
+ <cd:content n="2" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupitems" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="seteazaelemente"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="locatie">
+ <cd:constant type="stanga"/>
+ <cd:constant type="dreapta"/>
+ <cd:constant type="inmargine"/>
+ <cd:constant type="sus"/>
+ <cd:constant type="subsol"/>
+ </cd:parameter>
+ <cd:parameter name="simbol">
+ <cd:constant type="1"/>
+ <cd:constant type="2"/>
+ <cd:constant type="..."/>
+ <cd:constant type="n"/>
+ <cd:constant type="a"/>
+ <cd:constant type="..."/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="niciunul"/>
+ </cd:parameter>
+ <cd:parameter name="latime">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="necunoscut"/>
+ </cd:parameter>
+ <cd:parameter name="inainte">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="intre">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="aliniere">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="dupa">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="quotation" type="environment" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="citat"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
<cd:constant type="stanga"/>
- <cd:constant type="centru"/>
+ <cd:constant type="centru" default="yes"/>
<cd:constant type="dreapta"/>
- </cd:parameter>
- <cd:inherit name="seteazainconjurat"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="floattext" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="obiectmobil"/>
- <cd:string value="text"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="stanga"/>
- <cd:constant type="dreapta"/>
- <cd:constant type="inalt"/>
- <cd:constant type="centru"/>
- <cd:constant type="jos"/>
- <cd:constant type="offset"/>
- <cd:constant type="inalt"/>
- </cd:keywords>
- <cd:reference optional="yes"/>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placelistoffloats" generated="yes">
- <cd:sequence>
- <cd:string value="placelistof"/>
- <cd:variable value="floats"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="completelistoffloats" generated="yes">
- <cd:sequence>
- <cd:string value="completelistof"/>
- <cd:variable value="floats"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="referral" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="referit"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="bet">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="quotation" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="citat"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="quote" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="minicitat"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupquote" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="seteazaminicitat"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="inainte">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dupa">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="culoare">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="locatie">
+ <cd:constant type="cd:text"/>
+ <cd:constant type="margine"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineparagraphs" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="definesteparagraf"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="rigla">
+ <cd:constant type="on"/>
+ <cd:constant type="dezactivat"/>
+ </cd:parameter>
+ <cd:parameter name="inaltime">
+ <cd:constant type="ajustat"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="inainte">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dupa">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="intern">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="distanta">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="toleranta">
+ <cd:constant type="foartestrict"/>
+ <cd:constant type="strict"/>
+ <cd:constant type="tolerant"/>
+ <cd:constant type="foartetolerant"/>
+ <cd:constant type="dilatat"/>
+ </cd:parameter>
+ <cd:parameter name="aliniere">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="paragraph" generated="yes">
+ <cd:sequence>
+ <cd:variable value="paragraf"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="paragraph" type="environment" generated="yes">
+ <cd:sequence>
+ <cd:variable value="paragraf"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupparagraphs" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="seteazaparagrafe"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="fiecare"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="latime">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="inaltime">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="aliniere">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="toleranta">
+ <cd:constant type="foartestrict"/>
+ <cd:constant type="strict"/>
+ <cd:constant type="tolerant"/>
+ <cd:constant type="foartetolerant"/>
+ <cd:constant type="dilatat"/>
+ </cd:parameter>
+ <cd:parameter name="distanta">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="inainte">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dupa">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="intern">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="comanda">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="rigla">
+ <cd:constant type="on"/>
+ <cd:constant type="dezactivat"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptab" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="seteazatab"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="exemplu">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="latime">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="stiltitlu">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="locatie">
+ <cd:constant type="stanga"/>
+ <cd:constant type="dreapta"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tab">
+ <cd:sequence>
+ <cd:string value="tab"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:nothing n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="document" type="environment">
+ <cd:sequence>
+ <cd:string value="document"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="labels">
+ <cd:sequence>
+ <cd:string value="etichete"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definetabulate" file="core-tbl.tex">
+ <cd:sequence>
+ <cd:string value="definestetabulatori"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="3">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="ken">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tabulate" type="environment" generated="yes">
+ <cd:sequence>
+ <cd:variable value="tabulate"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="dat">
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="seteazafiguriexterne" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptabulate" file="core-tbl.tex">
+ <cd:sequence>
+ <cd:string value="seteazatabulatori"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="unitate">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="aliniat">
+ <cd:resolve name="indenting"/>
+ </cd:parameter>
+ <cd:parameter name="inainte">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dupa">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="intern">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="EQ">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="culoarerigla">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="aliniere">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="grosimerigla">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distanta">
+ <cd:constant type="blank"/>
+ <cd:constant type="grila"/>
+ <cd:constant type="adancime"/>
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="mic"/>
+ <cd:constant type="mediu"/>
+ <cd:constant type="mare"/>
+ <cd:constant type="niciunul"/>
+ </cd:parameter>
+ <cd:parameter name="fonttext">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ <cd:parameter name="rigla">
+ <cd:constant type="normal"/>
+ <cd:constant type="linie"/>
+ </cd:parameter>
+ <cd:parameter name="split">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptables" file="core-tab.tex">
+ <cd:sequence>
+ <cd:string value="seteazatabele"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="distanta">
+ <cd:constant type="mic"/>
+ <cd:constant type="mediu"/>
+ <cd:constant type="mare"/>
+ </cd:parameter>
+ <cd:parameter name="fonttext">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ <cd:parameter name="HL">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="mic"/>
+ <cd:constant type="mediu"/>
+ <cd:constant type="mare"/>
+ <cd:constant type="niciunul"/>
+ </cd:parameter>
+ <cd:parameter name="VL">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="mic"/>
+ <cd:constant type="mediu"/>
+ <cd:constant type="mare"/>
+ <cd:constant type="niciunul"/>
+ </cd:parameter>
+ <cd:parameter name="inaltime">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="strut"/>
+ </cd:parameter>
+ <cd:parameter name="inaltime">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="strut"/>
+ </cd:parameter>
+ <cd:parameter name="grosimerigla">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="culoarerigla">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="aliniere">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="comenzi">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="aliniere">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="fundal">
+ <cd:constant type="ecran"/>
+ <cd:constant type="culoare"/>
+ <cd:constant type="niciunul"/>
+ </cd:parameter>
+ <cd:parameter name="ecranfundal">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="culoarefundal">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="fonttext">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="table" type="environment">
+ <cd:sequence>
+ <cd:string value="table"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="van">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tables" type="environment">
+ <cd:sequence>
+ <cd:string value="tables"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="aan">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definetabletemplate" file="core-tab.tex">
+ <cd:sequence>
+ <cd:string value="definestesablontabel"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="ref">
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes">
<cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="selectpaper">
- <cd:sequence>
- <cd:string value="selecteazahartie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="familie">
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="couplepaper">
- <cd:sequence>
- <cd:string value="hartiedubla"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="chem" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="chem"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="fraction" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="fractie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="periods" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="puncte"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="items">
- <cd:sequence>
- <cd:string value="element"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="seteazaelemente"/>
- </cd:assignments>
- <cd:content list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupitems" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="seteazaelemente"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="locatie">
+ </cd:keywords>
+ <cd:keywords n="4" optional="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useexternalfiles" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="folosestefisiereexterne"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="fonttext">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ <cd:parameter name="fisier">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useexternalfile" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="folosestefisierextern"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ <cd:assignments n="4" list="yes">
+ <cd:parameter name="fonttext">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useexternalfigure" file="core-fig.tex">
+ <cd:sequence>
+ <cd:string value="folosestefiguraexterna"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes">
+ <cd:constant type="cd:name"/> <!-- parent -->
+ </cd:keywords>
+ <cd:assignments n="4" optional="yes" list="yes">
+ <cd:inherit name="seteazafiguriexterne" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="externalfigure" file="core-fig.tex">
+ <cd:sequence>
+ <cd:string value="figuraexterna"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="seteazafiguriexterne" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupexternalfigures" file="core-fig.tex">
+ <cd:sequence>
+ <cd:string value="seteazafiguriexterne"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1">
+ <cd:parameter name="scala">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="yscala">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="yscala">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="factor">
+ <cd:constant type="max"/>
+ <cd:constant type="ajustat"/>
+ <cd:constant type="broad"/>
+ </cd:parameter>
+ <cd:parameter name="factorw">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="max"/>
+ <cd:constant type="broad"/>
+ <cd:constant type="ajustat"/>
+ </cd:parameter>
+ <cd:parameter name="hfactor">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="max"/>
+ <cd:constant type="broad"/>
+ <cd:constant type="ajustat"/>
+ </cd:parameter>
+ <cd:parameter name="latime">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="inaltime">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="frame">
+ <cd:constant type="on"/>
+ <cd:constant type="dezactivat"/>
+ </cd:parameter>
+ <cd:parameter name="preset">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ <cd:parameter name="display">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="previzualizare">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ <cd:parameter name="repeta">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ <cd:parameter name="obiect">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ <cd:parameter name="type">
+ <cd:constant type="eps"/>
+ <cd:constant type="mps"/>
+ <cd:constant type="pdf"/>
+ <cd:constant type="tif"/>
+ <cd:constant type="png"/>
+ <cd:constant type="jpg"/>
+ <cd:constant type="mov"/>
+ <cd:constant type="cd:tex"/>
+ </cd:parameter>
+ <cd:parameter name="metoda">
+ <cd:constant type="eps"/>
+ <cd:constant type="mps"/>
+ <cd:constant type="pdf"/>
+ <cd:constant type="tif"/>
+ <cd:constant type="png"/>
+ <cd:constant type="jpg"/>
+ <cd:constant type="mov"/>
+ <cd:constant type="cd:tex"/>
+ </cd:parameter>
+ <cd:parameter name="optiune">
+ <cd:constant type="incadrat"/>
+ <cd:constant type="gol"/>
+ <cd:constant type="test"/>
+ </cd:parameter>
+ <cd:parameter name="frames">
+ <cd:constant type="on"/>
+ <cd:constant type="dezactivat"/>
+ </cd:parameter>
+ <cd:parameter name="ymax">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="xmax">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="director">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="locatie">
+ <cd:constant type="local"/>
+ <cd:constant type="global"/>
+ <cd:constant type="implicit"/>
+ <cd:constant type="niciunul"/>
+ </cd:parameter>
+ <cd:parameter name="latimemaxima">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="inaltimemaxima">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="conversie">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="prefix">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showexternalfigures" file="core-fig.tex">
+ <cd:sequence>
+ <cd:string value="afiseazafiguriexterne"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:parameter name="alternativ">
+ <cd:constant type="a"/>
+ <cd:constant type="b"/>
+ <cd:constant type="c"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useexternalsoundtrack" file="core-fig.tex">
+ <cd:sequence>
+ <cd:string value="folosestemuzicaexterna"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="name" file="syst-gen.tex">
+ <cd:sequence>
+ <cd:string value="name"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="legend" type="environment">
+ <cd:sequence>
+ <cd:string value="legend"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="doi"/>
+ </cd:keywords>
+ <cd:tex n="2" command="leg"/>
+ <cd:nothing n="3"/>
+ <cd:nothing n="4" separator="backslash"/>
+ <cd:nothing n="5" separator="backslash"/>
+ <cd:tex n="6" separator="backslash" command="leg"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fact" type="environment">
+ <cd:sequence>
+ <cd:string value="fact"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:tex n="1" command="fact"/>
+ <cd:nothing n="2"/>
+ <cd:nothing n="3" separator="backslash"/>
+ <cd:nothing n="4" separator="backslash"/>
+ <cd:tex n="5" separator="backslash" command="fact"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="rotate" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="roteste"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="seteazarotare" n="1"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuprotate" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="seteazarotare"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="rotatie">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="locatie">
+ <cd:constant type="normal"/>
+ <cd:constant type="inalt"/>
+ <cd:constant type="ajustat"/>
+ <cd:constant type="broad"/>
+ <cd:constant type="adancime"/>
+ </cd:parameter>
+ <cd:inherit name="seteazainconjurat" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mirror" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="reflexie"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="scale" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="scala"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:parameter name="sx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="sy">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcombinations" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="seteazacombinari"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="inainte">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="intre">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dupa">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="distanta">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="inaltime">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="ajustat"/>
+ </cd:parameter>
+ <cd:parameter name="latime">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="ajustat"/>
+ </cd:parameter>
+ <cd:parameter name="locatie">
+ <cd:constant type="sus"/>
+ <cd:constant type="centru"/>
+ <cd:constant type="subsol"/>
+ <cd:constant type="stanga"/>
+ <cd:constant type="dreapta"/>
+ </cd:parameter>
+ <cd:parameter name="aliniere">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="culoare">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="combination" type="environment">
+ <cd:sequence>
+ <cd:string value="combination"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:matrix"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placesidebyside" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="punefatainfata"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placeontopofeachother" file="core-mis.tex">
+ <cd:sequence>
+ <cd:string value="punedeasuprafiecareia"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overlay" type="environment">
+ <cd:sequence>
+ <cd:string value="overlay"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overview" type="environment">
+ <cd:sequence>
+ <cd:string value="overview"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupinteractionscreen" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="seteazaecraninteractiune"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:parameter name="latime">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="ajustat"/>
+ <cd:constant type="max"/>
+ </cd:parameter>
+ <cd:parameter name="inaltime">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="ajustat"/>
+ <cd:constant type="max"/>
+ </cd:parameter>
+ <cd:parameter name="spatiuspate">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="spatiusus">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="offsetoriz">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="veroffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="optiune">
+ <cd:constant type="max"/>
+ <cd:constant type="ajustat"/>
+ <cd:constant type="douafete"/>
+ <cd:constant type="ofata"/>
+ <cd:constant type="auto"/>
+ <cd:constant type="niciunul"/>
+ <cd:constant type="semncarte"/>
+ </cd:parameter>
+ <cd:parameter name="intarziere">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="niciunul"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="screen" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="ecran"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setuppagetransitions" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="seteazatranzitiepagina"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="reset"/>
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupinteraction" file="core-nav.tex">
+ <cd:sequence>
+ <cd:string value="seteazainteractiunea"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:parameter name="stare">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="meniu">
+ <cd:constant type="on"/>
+ <cd:constant type="dezactivat"/>
+ </cd:parameter>
+ <cd:parameter name="pagina">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ <cd:parameter name="click">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ <cd:parameter name="split">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ <cd:parameter name="display">
+ <cd:constant type="nou"/>
+ </cd:parameter>
+ <cd:parameter name="actiunedeschidere">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="actiuneinchidere">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="actiunedeschiderepagina">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="actiuneinchiderepagina">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="calculeaza">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="strut">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ <cd:parameter name="latime">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="inaltime">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="inaltime">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="culoare">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="culoarecontrast">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="setsimbol">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="titlu">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="subtitlu">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="autor">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="data">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="keyword">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <!-- maybe this will move elsewhere -->
+ <cd:parameter name="fieldlayer">
+ <cd:constant type="auto"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupinteractionmenu" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="seteazameniuinteractiune"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="inainte">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dupa">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="intre">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="stanga">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dreapta">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="mijloc">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="stare">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="niciunul"/>
+ <cd:constant type="local"/>
+ </cd:parameter>
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="culoare">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="culoarecontrast">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="distanta">
+ <cd:constant type="overlay"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="aceeasipagina">
+ <cd:constant type="da"/>
+ <cd:constant type="gol"/>
+ <cd:constant type="nu"/>
+ <cd:constant type="niciunul"/>
+ </cd:parameter>
+ <cd:parameter name="referintanecunoscuta">
+ <cd:constant type="da"/>
+ <cd:constant type="gol"/>
+ <cd:constant type="nu"/>
+ <cd:constant type="niciunul"/>
+ </cd:parameter>
+ <cd:parameter name="offsetstanga">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="offsetdreapta">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="offsetsus">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="offsetjos">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="pozitie">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ <cd:inherit name="seteazainconjurat" n="2"/> <!-- maybe not all parameters from framed -->
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineinteractionmenu" variant="1" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="definestemeniuinteractiune"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive" list="yes">
<cd:constant type="stanga"/>
<cd:constant type="dreapta"/>
- <cd:constant type="inmargine"/>
<cd:constant type="sus"/>
<cd:constant type="subsol"/>
- </cd:parameter>
- <cd:parameter name="simbol">
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- <cd:constant type="..."/>
- <cd:constant type="n"/>
- <cd:constant type="a"/>
- <cd:constant type="..."/>
- <cd:constant type="cd:text"/>
- <cd:constant type="niciunul"/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- <cd:constant type="necunoscut"/>
- </cd:parameter>
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="intre">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="aliniere">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="quotation" type="environment" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="citat"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="stanga"/>
- <cd:constant type="centru" default="yes"/>
- <cd:constant type="dreapta"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="quotation" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="citat"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="quote" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="minicitat"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupquote" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="seteazaminicitat"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="culoare">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="locatie">
- <cd:constant type="cd:text"/>
- <cd:constant type="margine"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="adding">
- <cd:sequence>
- <cd:string value="adauga"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="mic"/>
- <cd:constant type="mediu" default="yes"/>
- <cd:constant type="mare"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineparagraphs" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="definesteparagraf"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="rigla">
- <cd:constant type="on"/>
- <cd:constant type="dezactivat"/>
- </cd:parameter>
- <cd:parameter name="inaltime">
- <cd:constant type="ajustat"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="intern">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="distanta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="toleranta">
- <cd:constant type="foartestrict"/>
- <cd:constant type="strict"/>
- <cd:constant type="tolerant"/>
- <cd:constant type="foartetolerant"/>
- <cd:constant type="dilatat"/>
- </cd:parameter>
- <cd:parameter name="aliniere">
- <cd:resolve name="align"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="paragraph" generated="yes">
- <cd:sequence>
- <cd:variable value="paragraf"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="paragraph" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="paragraf"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupparagraphs" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="seteazaparagrafe"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:number"/>
- <cd:constant type="fiecare"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="inaltime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="aliniere">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="toleranta">
- <cd:constant type="foartestrict"/>
- <cd:constant type="strict"/>
- <cd:constant type="tolerant"/>
- <cd:constant type="foartetolerant"/>
- <cd:constant type="dilatat"/>
- </cd:parameter>
- <cd:parameter name="distanta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="intern">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="comanda">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="rigla">
- <cd:constant type="on"/>
- <cd:constant type="dezactivat"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptab" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="seteazatab"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="exemplu">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stiltitlu">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="locatie">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="seteazameniuinteractiune" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineinteractionmenu" variant="2" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="definestemeniuinteractiune"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
<cd:constant type="stanga"/>
<cd:constant type="dreapta"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="tab">
- <cd:sequence>
- <cd:string value="tab"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:nothing/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="document" type="environment">
- <cd:sequence>
- <cd:string value="document"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="labels">
- <cd:sequence>
- <cd:string value="etichete"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definetabulate" file="core-tbl.tex">
- <cd:sequence>
- <cd:string value="definestetabulatori"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="tabulate" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="tabulate"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="folosestefiguraexterna"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptabulate" file="core-tbl.tex">
- <cd:sequence>
- <cd:string value="seteazatabulatori"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="unitate">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="aliniat">
- <cd:resolve name="indenting"/>
- </cd:parameter>
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="intern">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="EQ">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="culoarerigla">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="aliniere">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="grosimerigla">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanta">
- <cd:constant type="blank"/>
- <cd:constant type="grila"/>
- <cd:constant type="adancime"/>
- <cd:constant type="cd:dimension"/>
- <cd:constant type="mic"/>
- <cd:constant type="mediu"/>
- <cd:constant type="mare"/>
- <cd:constant type="niciunul"/>
- </cd:parameter>
- <cd:parameter name="fonttext">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="mic"/>
- <cd:constant type="mare"/>
- </cd:parameter>
- <cd:parameter name="rigla">
- <cd:constant type="normal"/>
- <cd:constant type="linie"/>
- </cd:parameter>
- <cd:parameter name="split">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptables" file="core-tab.tex">
- <cd:sequence>
- <cd:string value="seteazatabele"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="distanta">
- <cd:constant type="mic"/>
- <cd:constant type="mediu"/>
- <cd:constant type="mare"/>
- </cd:parameter>
- <cd:parameter name="fonttext">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="mic"/>
- <cd:constant type="mare"/>
- </cd:parameter>
- <cd:parameter name="HL">
- <cd:constant type="cd:number"/>
- <cd:constant type="mic"/>
- <cd:constant type="mediu"/>
- <cd:constant type="mare"/>
- <cd:constant type="niciunul"/>
- </cd:parameter>
- <cd:parameter name="VL">
- <cd:constant type="cd:number"/>
- <cd:constant type="mic"/>
- <cd:constant type="mediu"/>
- <cd:constant type="mare"/>
- <cd:constant type="niciunul"/>
- </cd:parameter>
- <cd:parameter name="inaltime">
- <cd:constant type="cd:number"/>
- <cd:constant type="strut"/>
- </cd:parameter>
- <cd:parameter name="inaltime">
- <cd:constant type="cd:number"/>
- <cd:constant type="strut"/>
- </cd:parameter>
- <cd:parameter name="grosimerigla">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="culoarerigla">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="aliniere">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="comenzi">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="aliniere">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="fundal">
- <cd:constant type="ecran"/>
- <cd:constant type="culoare"/>
- <cd:constant type="niciunul"/>
- </cd:parameter>
- <cd:parameter name="ecranfundal">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="culoarefundal">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="fonttext">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="mic"/>
- <cd:constant type="mare"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="table" type="environment">
- <cd:sequence>
- <cd:string value="table"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="tables" type="environment">
- <cd:sequence>
- <cd:string value="tables"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definetabletemplate" file="core-tab.tex">
- <cd:sequence>
- <cd:string value="definestesablontabel"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="useexternalfiles" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="folosestefisiereexterne"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="fonttext">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="mic"/>
- <cd:constant type="mare"/>
- </cd:parameter>
- <cd:parameter name="fisier">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="useexternalfile" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="folosestefisierextern"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="fonttext">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="mic"/>
- <cd:constant type="mare"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="useexternalfigure" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="folosestefiguraexterna"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:parameter name="scala">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="yscala">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="yscala">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="factor">
- <cd:constant type="max"/>
- <cd:constant type="ajustat"/>
- <cd:constant type="broad"/>
- </cd:parameter>
- <cd:parameter name="factorw">
- <cd:constant type="cd:number"/>
- <cd:constant type="max"/>
- <cd:constant type="broad"/>
- <cd:constant type="ajustat"/>
- </cd:parameter>
- <cd:parameter name="hfactor">
- <cd:constant type="cd:number"/>
- <cd:constant type="max"/>
- <cd:constant type="broad"/>
- <cd:constant type="ajustat"/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="inaltime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="frame">
- <cd:constant type="on"/>
- <cd:constant type="dezactivat"/>
- </cd:parameter>
- <cd:parameter name="preset">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="display">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="previzualizare">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="repeta">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="obiect">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="type">
- <cd:constant type="eps"/>
- <cd:constant type="mps"/>
- <cd:constant type="pdf"/>
- <cd:constant type="tif"/>
- <cd:constant type="png"/>
- <cd:constant type="jpg"/>
- <cd:constant type="mov"/>
- <cd:constant type="cd:tex"/>
- </cd:parameter>
- <cd:parameter name="metoda">
- <cd:constant type="eps"/>
- <cd:constant type="mps"/>
- <cd:constant type="pdf"/>
- <cd:constant type="tif"/>
- <cd:constant type="png"/>
- <cd:constant type="jpg"/>
- <cd:constant type="mov"/>
- <cd:constant type="cd:tex"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="externalfigure" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="figuraexterna"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="folosestefiguraexterna"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupexternalfigures" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="seteazafiguriexterne"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments>
- <cd:parameter name="optiune">
- <cd:constant type="incadrat"/>
- <cd:constant type="gol"/>
- <cd:constant type="test"/>
- </cd:parameter>
- <cd:parameter name="obiect">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="frames">
- <cd:constant type="on"/>
- <cd:constant type="dezactivat"/>
- </cd:parameter>
- <cd:parameter name="ymax">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="xmax">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="director">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="locatie">
- <cd:constant type="local"/>
- <cd:constant type="global"/>
- <cd:constant type="implicit"/>
- <cd:constant type="niciunul"/>
- </cd:parameter>
- <cd:parameter name="latimemaxima">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="inaltimemaxima">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="conversie">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="prefix">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showexternalfigures" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="afiseazafiguriexterne"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:parameter name="alternativ">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="useexternalsoundtrack" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="folosestemuzicaexterna"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:file"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="name" file="syst-gen.tex">
- <cd:sequence>
- <cd:string value="name"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="legend" type="environment">
- <cd:sequence>
- <cd:string value="legend"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="doi"/>
- </cd:keywords>
- <cd:tex command="leg"/>
- <cd:nothing/>
- <cd:nothing separator="backslash"/>
- <cd:nothing separator="backslash"/>
- <cd:tex separator="backslash" command="leg"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="fact" type="environment">
- <cd:sequence>
- <cd:string value="fact"/>
- </cd:sequence>
- <cd:arguments>
- <cd:tex command="fact"/>
- <cd:nothing/>
- <cd:nothing separator="backslash"/>
- <cd:nothing separator="backslash"/>
- <cd:tex separator="backslash" command="fact"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="rotate" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="roteste"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="seteazarotare"/>
- </cd:assignments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuprotate" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="seteazarotare"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="rotatie">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="locatie">
- <cd:constant type="normal"/>
- <cd:constant type="inalt"/>
- <cd:constant type="ajustat"/>
- <cd:constant type="broad"/>
- <cd:constant type="adancime"/>
- </cd:parameter>
- <cd:inherit name="seteazainconjurat"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="mirror" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="reflexie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="scale" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="scala"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:parameter name="sx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="sy">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupcombinations" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="seteazacombinari"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="intre">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="distanta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="inaltime">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="ajustat"/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="ajustat"/>
- </cd:parameter>
- <cd:parameter name="locatie">
<cd:constant type="sus"/>
- <cd:constant type="centru"/>
<cd:constant type="subsol"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
<cd:constant type="stanga"/>
<cd:constant type="dreapta"/>
- </cd:parameter>
- <cd:parameter name="aliniere">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="culoare">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="combination" type="environment">
- <cd:sequence>
- <cd:string value="combination"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:matrix"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placesidebyside" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="punefatainfata"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placeontopofeachother" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="punedeasuprafiecareia"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="overlay" type="environment">
- <cd:sequence>
- <cd:string value="overlay"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="overview" type="environment">
- <cd:sequence>
- <cd:string value="overview"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupinteractionscreen" file="core-int.tex">
- <cd:sequence>
- <cd:string value="seteazaecraninteractiune"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" list="yes">
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="ajustat"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="inaltime">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="ajustat"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="spatiuspate">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="spatiusus">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offsetoriz">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="veroffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="optiune">
- <cd:constant type="max"/>
- <cd:constant type="ajustat"/>
- <cd:constant type="douafete"/>
- <cd:constant type="semncarte"/>
- </cd:parameter>
- <cd:parameter name="intarziere">
- <cd:constant type="cd:number"/>
- <cd:constant type="niciunul"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="screen" file="core-int.tex">
- <cd:sequence>
- <cd:string value="ecran"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setuppagetransitions" file="core-int.tex">
- <cd:sequence>
- <cd:string value="seteazatranzitiepagina"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="reset"/>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupinteraction" file="core-nav.tex">
- <cd:sequence>
- <cd:string value="seteazainteractiunea"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" list="yes">
- <cd:parameter name="stare">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="meniu">
- <cd:constant type="on"/>
- <cd:constant type="dezactivat"/>
- </cd:parameter>
- <cd:parameter name="pagina">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="click">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="split">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="display">
- <cd:constant type="nou"/>
- </cd:parameter>
- <cd:parameter name="actiunedeschidere">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="actiuneinchidere">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="actiunedeschiderepagina">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="actiuneinchiderepagina">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="calculeaza">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="inaltime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="inaltime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="culoare">
+ <cd:constant type="sus"/>
+ <cd:constant type="subsol"/>
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="culoarecontrast">
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="seteazameniuinteractiune" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="interactionmenu" type="environment">
+ <cd:sequence>
+ <cd:string value="meniuinteractiune"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="setsimbol">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="disableinteractionmenu" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="dezactiveazameniuinteractiune"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
+ <cd:constant type="stanga"/>
+ <cd:constant type="dreapta"/>
+ <cd:constant type="sus"/>
+ <cd:constant type="subsol"/>
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="titlu">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="subtitlu">
+ </cd:keywords>
+ <cd:reference n="2" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useexternaldocument" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="folosestedocumentextern"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="fisier"/>
+ </cd:keywords>
+ <cd:keywords n="3">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="autor">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useURL" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="folosesteURL"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="data">
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:constant type="fisier"/>
+ </cd:keywords>
+ <cd:keywords n="4">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="keyword">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="coupledocument" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="cupleazadocument"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="fisier"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="from" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="din"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:reference n="1" interactive="exclusive"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="interactionbar">
+ <cd:sequence>
+ <cd:string value="barainteractiune"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:inherit name="seteazabarainteractiune" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="interactionbuttons" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="butoaneinteractiune"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" optional="yes" list="yes">
+ <cd:inherit name="seteazabarainteractiune" n="1"/>
+ </cd:assignments>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupinteractionbar" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="seteazabarainteractiune"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:parameter name="stare">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="alternativ">
+ <cd:constant type="a"/>
+ <cd:constant type="b"/>
+ <cd:constant type="c"/>
+ <cd:constant type="d"/>
+ <cd:constant type="e"/>
+ <cd:constant type="f"/>
+ <cd:constant type="g"/>
+ </cd:parameter>
+ <cd:parameter name="simbol">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ <cd:parameter name="latime">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="inaltime"/>
+ <cd:constant type="ajustat"/>
+ </cd:parameter>
+ <cd:parameter name="inaltime">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="inaltime"/>
+ <cd:constant type="ajustat"/>
+ </cd:parameter>
+ <cd:parameter name="inaltime">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="culoare">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="pas">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="mic"/>
+ <cd:constant type="mediu"/>
+ <cd:constant type="mare"/>
+ </cd:parameter>
+ <cd:inherit name="seteazainconjurat" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="synchronize" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="sincronizeaza"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="synchronization" type="environment">
+ <cd:sequence>
+ <cd:string value="synchronization"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupsynchronizationbar" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="setarebarasincronizare"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:parameter name="alternativ">
+ <cd:constant type="pagina"/>
+ <cd:constant type="local"/>
+ </cd:parameter>
+ <cd:parameter name="latime">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="inaltime"/>
+ <cd:constant type="ajustat"/>
+ </cd:parameter>
+ <cd:parameter name="inaltime">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="culoare">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:inherit name="seteazainconjurat" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="synchronizationbar" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="barasincronizare"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="alternativ">
+ <cd:constant type="pagina"/>
+ <cd:constant type="local"/>
+ </cd:parameter>
+ <cd:inherit name="setarebarasincronizare" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsynchronization" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="setaresincronizare"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:parameter name="stare">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineprofile" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="definesteprofil"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupprofiles" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="seteazaprofile"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:parameter name="optiune">
+ <cd:constant type="test"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="profile" type="environment">
+ <cd:sequence>
+ <cd:string value="profile"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="followprofile" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="urmeazaprofil"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="exclusive"/>
+ <cd:keywords n="2">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <!-- maybe this will move elsewhere -->
- <cd:parameter name="fieldlayer">
- <cd:constant type="auto"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placebookmarks" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="plaseazasemnecarte"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
<cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineinteractionmenu" variant="1" file="core-int.tex">
- <cd:sequence>
- <cd:string value="definestemeniuinteractiune"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive" list="yes">
- <cd:constant type="stanga"/>
- <cd:constant type="dreapta"/>
- <cd:constant type="sus"/>
- <cd:constant type="subsol"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="intre">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="stanga">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dreapta">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="mijloc">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="stare">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- <cd:constant type="niciunul"/>
- <cd:constant type="local"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="culoare">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="distanta">
- <cd:constant type="overlay"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="aceeasipagina">
- <cd:constant type="da"/>
- <cd:constant type="gol"/>
- <cd:constant type="nu"/>
- <cd:constant type="niciunul"/>
- </cd:parameter>
- <cd:parameter name="referintanecunoscuta">
- <cd:constant type="da"/>
- <cd:constant type="gol"/>
- <cd:constant type="nu"/>
- <cd:constant type="niciunul"/>
- </cd:parameter>
- <cd:parameter name="offsetstanga">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offsetdreapta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offsetsus">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offsetjos">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="pozitie">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:inherit name="seteazainconjurat"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineinteractionmenu" variant="2" file="core-int.tex">
- <cd:sequence>
- <cd:string value="definestemeniuinteractiune"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="stanga"/>
- <cd:constant type="dreapta"/>
- <cd:constant type="sus"/>
- <cd:constant type="subsol"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="stanga"/>
- <cd:constant type="dreapta"/>
- <cd:constant type="sus"/>
- <cd:constant type="subsol"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="seteazameniuinteractiune"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="interactionmenu" type="environment">
- <cd:sequence>
- <cd:string value="meniuinteractiune"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="disableinteractionmenu" file="core-int.tex">
- <cd:sequence>
- <cd:string value="dezactiveazameniuinteractiune"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="stanga"/>
- <cd:constant type="dreapta"/>
- <cd:constant type="sus"/>
- <cd:constant type="subsol"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:reference list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="useexternaldocument" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="folosestedocumentextern"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="fisier"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="useURL" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="folosesteURL"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="fisier"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="coupledocument" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="cupleazadocument"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="fisier"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="from" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="din"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference interactive="exclusive"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="interactionbar">
- <cd:sequence>
- <cd:string value="barainteractiune"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" list="yes">
- <cd:inherit name="seteazabarainteractiune"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="interactionbuttons" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="butoaneinteractiune"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" optional="yes" list="yes">
- <cd:inherit name="seteazabarainteractiune"/>
- </cd:assignments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupinteractionbar" file="core-int.tex">
- <cd:sequence>
- <cd:string value="seteazabarainteractiune"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" list="yes">
- <cd:parameter name="stare">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="alternativ">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- <cd:constant type="d"/>
- <cd:constant type="e"/>
- <cd:constant type="f"/>
- <cd:constant type="g"/>
- </cd:parameter>
- <cd:parameter name="simbol">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="inaltime"/>
- <cd:constant type="ajustat"/>
- </cd:parameter>
- <cd:parameter name="inaltime">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="inaltime"/>
- <cd:constant type="ajustat"/>
- </cd:parameter>
- <cd:parameter name="inaltime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="culoare">
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ <cd:constant type="tot"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="bookmark" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="semncarte"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
<cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="pas">
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="version" type="environment">
+ <cd:sequence>
+ <cd:string value="versiune"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive" list="yes">
<cd:constant type="cd:number"/>
- <cd:constant type="mic"/>
- <cd:constant type="mediu"/>
- <cd:constant type="mare"/>
- </cd:parameter>
- <cd:inherit name="seteazainconjurat"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="synchronize" file="core-int.tex">
- <cd:sequence>
- <cd:string value="sincronizeaza"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="synchronization" type="environment">
- <cd:sequence>
- <cd:string value="synchronization"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupsynchronizationbar" file="core-int.tex">
- <cd:sequence>
- <cd:string value="setarebarasincronizare"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" list="yes">
- <cd:parameter name="alternativ">
- <cd:constant type="pagina"/>
- <cd:constant type="local"/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="inaltime"/>
- <cd:constant type="ajustat"/>
- </cd:parameter>
- <cd:parameter name="inaltime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="culoare">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:inherit name="seteazainconjurat"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="synchronizationbar" file="core-int.tex">
- <cd:sequence>
- <cd:string value="barasincronizare"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="alternativ">
- <cd:constant type="pagina"/>
- <cd:constant type="local"/>
- </cd:parameter>
- <cd:inherit name="setarebarasincronizare"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupsynchronization" file="core-int.tex">
- <cd:sequence>
- <cd:string value="setaresincronizare"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" list="yes">
- <cd:parameter name="stare">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineprofile" file="core-int.tex">
- <cd:sequence>
- <cd:string value="definesteprofil"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupprofiles" file="core-int.tex">
- <cd:sequence>
- <cd:string value="seteazaprofile"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" list="yes">
- <cd:parameter name="optiune">
- <cd:constant type="test"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="profile" type="environment">
- <cd:sequence>
- <cd:string value="profile"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="followprofile" file="core-int.tex">
- <cd:sequence>
- <cd:string value="urmeazaprofil"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content interactive="exclusive"/>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placebookmarks" file="core-int.tex">
- <cd:sequence>
- <cd:string value="plaseazasemnecarte"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- <cd:constant type="tot"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="bookmark">
- <cd:sequence>
- <cd:string value="semncarte"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="version" type="environment">
- <cd:sequence>
- <cd:string value="versiune"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive" list="yes">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupversions" file="core-int.tex">
- <cd:sequence>
- <cd:string value="seteazaversiuni"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="numar">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupversions" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="seteazaversiuni"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="numar">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="markversion" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="marcheazaversiune"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="selectversion" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="selecteazaversiune"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="defineversion" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="definesteversiune"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
<cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="markversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="marcheazaversiune"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="selectversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="selecteazaversiune"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="defineversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="definesteversiune"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="followversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="urmeazaversiune"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content interactive="exclusive"/>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="followprofileversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="urmeazaversiuneprofil"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content interactive="exclusive"/>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="defineprogram" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="definesteprogram"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupprograms" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="seteazaprograme"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" list="yes">
- <cd:parameter name="director">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="followversion" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="urmeazaversiune"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="exclusive"/>
+ <cd:keywords n="2">
<cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="program" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="program"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="figure" type="environment">
- <cd:sequence>
- <cd:string value="figure"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="factor">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="frame">
- <cd:constant type="on"/>
- <cd:constant type="dezactivat"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<!-- referring*figure skipped -->
-
-<!-- marking*figure skipped -->
-
-<!-- remark skipped -->
-
-<cd:command name="goto" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="dute"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content interactive="exclusive"/>
- <cd:content interactive="exclusive"/>
- <cd:reference list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="gotobox" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="dutebox"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content interactive="exclusive"/>
- <cd:reference list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="button">
- <cd:sequence>
- <cd:string value="buton"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments interactive="exclusive" optional="yes" list="yes">
- <cd:inherit name="seteazabutoane"/>
- </cd:assignments>
- <cd:content/>
- <cd:reference list="yes"/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupbuttons" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="seteazabutoane"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="stare">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:inherit name="seteazainconjurat"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<!-- menubutton skipped -->
-
-<cd:command name="setupcomment" file="core-int.tex">
- <cd:sequence>
- <cd:string value="seteazacomentariu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="stare">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="inaltime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="culoare">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="titlu">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="followprofileversion" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="urmeazaversiuneprofil"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="exclusive"/>
+ <cd:keywords n="2">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="spatiu">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="simbol">
- <cd:constant type="normal"/>
- <cd:constant type="Nou"/>
- <cd:constant type="Balon"/>
- <cd:constant type="Adaugare"/>
- <cd:constant type="Ajutor"/>
- <cd:constant type="Paragraf"/>
- <cd:constant type="Cheie"/>
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="optiune">
- <cd:constant type="max"/>
- <cd:constant type="buffer"/>
- </cd:parameter>
- <cd:parameter name="margine">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="comment" type="environment">
- <cd:sequence>
- <cd:string value="comentariu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="seteazacomentariu"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="comment">
- <cd:sequence>
- <cd:string value="comentariu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="seteazacomentariu"/>
- </cd:assignments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definefield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="definestecamp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definesubfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="definestesubcamp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="copyfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="copiazacamp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="clonefield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="cloneazacamp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="field" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="camp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="fitfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="potrivestecamp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="fillinfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="campumplere"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="tooltip" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="tooltip"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes">
- <cd:constant type="stanga"/>
- <cd:constant type="dreapta"/>
- <cd:constant type="centru"/>
- </cd:keywords>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="showfields" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="afiseazacampuri"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="logfields" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="logcampuri"/>
- </cd:sequence>
-</cd:command>
-
-<cd:command name="setupfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="seteazacamp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="eticheta"/>
- <cd:constant type="orizontal"/>
- <cd:constant type="vertical"/>
- <cd:constant type="incadrat"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="seteazacampuri"/>
- </cd:assignments>
- <cd:assignments list="yes">
- </cd:assignments>
- <cd:assignments list="yes">
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupfields" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="seteazacampuri"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="reset"/>
- <cd:constant type="eticheta"/>
- <cd:constant type="orizontal"/>
- <cd:constant type="vertical"/>
- <cd:constant type="incadrat"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="distanta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="intre">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="culoare">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="aliniere">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="optiune">
- <cd:constant type="readonly"/>
- <cd:constant type="obligatoriu"/>
- <cd:constant type="protejat"/>
- <cd:constant type="sortat"/>
- <cd:constant type="nedisponibil"/>
- <cd:constant type="ascuns"/>
- <cd:constant type="tiparibil"/>
- </cd:parameter>
- <cd:parameter name="clickintru">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="clickies">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="regiuneintrare">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="regiuneiesire">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="dupatasta">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="format">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="verifica">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="calculeaza">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="offsetcamp">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="culoareframecamp">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="culoarefundalcamp">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:inherit name="framed"/>
- </cd:assignments>
- <cd:assignments list="yes">
- </cd:assignments>
- <cd:assignments list="yes">
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupforms" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="seteazaformulare"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="metoda">
- <cd:constant type="HTML"/>
- <cd:constant type="FDF"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definefieldstack" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="definestestivacampuri"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="seteazacampuri"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="fieldstack" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="stivacampuri"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="seteazacampuri"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="clip" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="clip"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="seteazaclipping"/>
- </cd:assignments>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupclipping" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="seteazaclipping"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="nx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ny">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="x">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="y">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="inaltime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="voffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="mp">
+ </cd:keywords>
+ <cd:keywords n="3">
<cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placelegend">
- <cd:sequence>
- <cd:string value="punelegenda"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuplegend">
- <cd:sequence>
- <cd:string value="seteazalegenda"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments list="yes">
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="distanta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="intre">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="inaltime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="locatie">
- <cd:constant type="dreapta"/>
- <cd:constant type="subsol"/>
- </cd:parameter>
- <cd:parameter name="fonttext">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="mic"/>
- <cd:constant type="mare"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definerule">
- <cd:sequence>
- <cd:string value="definesterigla"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="seteazarigla"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placerule">
- <cd:sequence>
- <cd:string value="punerigla"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuprule">
- <cd:sequence>
- <cd:string value="seteazarigla"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="inaltime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="inaltime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="spatiuinainte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="spatiudupa">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="culoare">
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineprogram" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="definesteprogram"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
<cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definetextvariable">
- <cd:sequence>
- <cd:string value="definestevariabilatext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:inherit name="seteazavariabilatext"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptextvariable">
- <cd:sequence>
- <cd:string value="seteazavariabilatext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:parameter name="stanga">
+ </cd:keywords>
+ <cd:keywords n="2">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="dreapta">
+ </cd:keywords>
+ <cd:keywords n="3">
<cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="distanta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="comanda">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="da"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupprograms" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="seteazaprograme"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" list="yes">
+ <cd:parameter name="director">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="program" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="program"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="figure" type="environment">
+ <cd:sequence>
+ <cd:string value="figure"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" interactive="exclusive">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:parameter name="factor">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="frame">
+ <cd:constant type="on"/>
+ <cd:constant type="dezactivat"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <!-- referring*figure skipped -->
+
+ <!-- marking*figure skipped -->
+
+ <!-- remark skipped -->
+
+ <cd:command name="goto" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="dute"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="exclusive"/>
+ <cd:content n="2" interactive="exclusive"/>
+ <cd:reference n="3" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="gotobox" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="dutebox"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" interactive="exclusive"/>
+ <cd:reference n="2" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="button" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="buton"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" interactive="exclusive" optional="yes" list="yes">
+ <cd:inherit name="seteazabutoane" n="1"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ <cd:reference n="3" list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbuttons" file="core-ref.tex">
+ <cd:sequence>
+ <cd:string value="seteazabutoane"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="stare">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:inherit name="seteazainconjurat" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <!-- menubutton skipped -->
+
+ <cd:command name="setupcomment" file="core-int.tex">
+ <cd:sequence>
+ <cd:string value="seteazacomentariu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="stare">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="latime">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="inaltime">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="culoare">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="titlu">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="spatiu">
+ <cd:constant type="da"/>
+ <cd:constant type="nu"/>
+ </cd:parameter>
+ <cd:parameter name="simbol">
+ <cd:constant type="normal"/>
+ <cd:constant type="Nou"/>
+ <cd:constant type="Balon"/>
+ <cd:constant type="Adaugare"/>
+ <cd:constant type="Ajutor"/>
+ <cd:constant type="Paragraf"/>
+ <cd:constant type="Cheie"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="optiune">
+ <cd:constant type="max"/>
+ <cd:constant type="buffer"/>
+ </cd:parameter>
+ <cd:parameter name="margine">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distanta">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="comment" type="environment">
+ <cd:sequence>
+ <cd:string value="comentariu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="seteazacomentariu" n="1"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="comment">
+ <cd:sequence>
+ <cd:string value="comentariu"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" optional="yes" list="yes">
+ <cd:inherit name="seteazacomentariu" n="1"/>
+ </cd:assignments>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefield" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="definestecamp"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1"> <!-- name -->
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2"> <!-- type -->
+ <cd:constant type="text"/>
+ <cd:constant type="linie"/> <!-- equal to text -->
+ <cd:constant type="push"/>
+ <cd:constant type="check"/>
+ <cd:constant type="radio"/>
+ <cd:constant type="combo"/>
+ <cd:constant type="choice"/> <!-- equal to combo -->
+ <cd:constant type="popup"/> <!-- equal to combo -->
+ </cd:keywords>
+ <cd:keywords n="3"> <!-- group -->
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="4" list="yes"> <!-- optional for text? -->
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="5" optional="yes"> <!-- default -->
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definesubfield" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="definestesubcamp"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="3" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="copyfield" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="copiazacamp"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="clonefield" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="cloneazacamp"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="4" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="field" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="camp"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fitfield" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="potrivestecamp"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fillinfield" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="campumplere"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tooltip" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="tooltip"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="stanga"/>
+ <cd:constant type="dreapta"/>
+ <cd:constant type="centru"/>
+ </cd:keywords>
+ <cd:content n="2"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showfields" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="afiseazacampuri"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="logfields" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="logcampuri"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="setupfield" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="seteazacamp"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="eticheta"/>
+ <cd:constant type="orizontal"/>
+ <cd:constant type="vertical"/>
+ <cd:constant type="incadrat"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:inherit name="seteazacampuri" n="2"/>
+ </cd:assignments>
+ <cd:assignments n="4" list="yes"> </cd:assignments>
+ <cd:assignments n="5" list="yes"> </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfields" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="seteazacampuri"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes"> <!-- TODO: if it's reset, only a single argument, no list -->
+ <cd:constant type="reset"/>
+ <cd:constant type="eticheta"/>
+ <cd:constant type="orizontal"/>
+ <cd:constant type="vertical"/>
+ <cd:constant type="incadrat"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="distanta">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="inainte">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dupa">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="intre">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="culoare">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="stil">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="aliniere">
+ <cd:resolve name="align"/>
+ </cd:parameter>
+ <cd:parameter name="optiune">
+ <cd:constant type="readonly"/>
+ <cd:constant type="obligatoriu"/>
+ <cd:constant type="protejat"/>
+ <cd:constant type="sortat"/>
+ <cd:constant type="nedisponibil"/>
+ <cd:constant type="ascuns"/>
+ <cd:constant type="tiparibil"/>
+ </cd:parameter>
+ <cd:parameter name="clickintru">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="clickies">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="regiuneintrare">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="regiuneiesire">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="dupatasta">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="format">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="verifica">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="calculeaza">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="offsetcamp">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="culoareframecamp">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="culoarefundalcamp">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:inherit name="seteazainconjurat" n="2"/>
+ </cd:assignments>
+ <cd:assignments n="3" list="yes">
+ <cd:inherit name="seteazacampuri" n="2"/>
+ </cd:assignments>
+ <cd:assignments n="4" list="yes">
+ <cd:inherit name="seteazacampuri" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupforms" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="seteazaformulare"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="metoda">
+ <cd:constant type="HTML"/>
+ <cd:constant type="FDF"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefieldstack" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="definestestivacampuri"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes">
+ <cd:inherit name="seteazacampuri" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fieldstack" file="core-fld.tex">
+ <cd:sequence>
+ <cd:string value="stivacampuri"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes" list="yes">
+ <cd:inherit name="seteazacampuri" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="clip" file="core-trf.tex">
+ <cd:sequence>
+ <cd:string value="clip"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" optional="yes" list="yes">
+ <cd:inherit name="seteazaclipping" n="1"/>
+ </cd:assignments>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupclipping" file="core-trf.tex">
+ <cd:sequence>
+ <cd:string value="seteazaclipping"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="stare">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number" default="1"/>
+ </cd:parameter>
+ <cd:parameter name="nx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ny">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="x">
+ <cd:constant type="cd:number" default="1"/>
+ </cd:parameter>
+ <cd:parameter name="y">
+ <cd:constant type="cd:number" default="1"/>
+ </cd:parameter>
+ <cd:parameter name="sx">
+ <cd:constant type="cd:number" default="1"/>
+ </cd:parameter>
+ <cd:parameter name="sy">
+ <cd:constant type="cd:number" default="1"/>
+ </cd:parameter>
+ <cd:parameter name="latime">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="inaltime">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="hoffset">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="voffset">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="offset">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="offsetstanga">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="offsetdreapta">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="offsetsus">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="offsetjos">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ <cd:parameter name="mp">
+ <cd:constant type="cd:name" default=""/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placelegend">
+ <cd:sequence>
+ <cd:string value="punelegenda"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ <cd:content n="2"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplegend">
+ <cd:sequence>
+ <cd:string value="seteazalegenda"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="distanta">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="intre">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="latime">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="inaltime">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="locatie">
+ <cd:constant type="dreapta"/>
+ <cd:constant type="subsol"/>
+ </cd:parameter>
+ <cd:parameter name="fonttext">
+ <cd:resolve name="bodyfont"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupstrut" file="core-spa.tex">
+ <cd:sequence>
+ <cd:string value="seteazastrut"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="da" default="yes"/>
<cd:constant type="nu"/>
<cd:constant type="cap"/>
<cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="settextvariable">
- <cd:sequence>
- <cd:string value="setvariabilatext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="placetextvariable">
- <cd:sequence>
- <cd:string value="punevariabilatext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="textvariable">
- <cd:sequence>
- <cd:string value="variabilatext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definerawfont">
- <cd:sequence>
- <cd:string value="definestefontraw"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords optional="yes">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="seteazaspatiuinterliniar"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="switchtorawfont">
- <cd:sequence>
- <cd:string value="trecilafontraw"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="definetextposition">
- <cd:sequence>
- <cd:string value="definestepozitietext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments optional="yes" list="yes">
- <cd:inherit name="setarepozitie"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setuptextposition">
- <cd:sequence>
- <cd:string value="seteazapozitietext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments list="yes">
- <cd:inherit name="setarepozitie"/>
- </cd:assignments>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="positiontext">
- <cd:sequence>
- <cd:string value="pozitietext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content/>
- </cd:arguments>
-</cd:command>
-
-<cd:command name="setupstrut" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="seteazastrut"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords>
- <cd:constant type="da" default="yes"/>
- <cd:constant type="nu"/>
- <cd:constant type="cap"/>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
-</cd:command>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usetypescriptfile" file="type-ini.tex">
+ <cd:sequence>
+ <cd:string value="usetypescriptfile"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usetypescript" file="type-ini.tex">
+ <cd:sequence>
+ <cd:string value="usetypescript"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="3" optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definetypeface" file="type-ini.tex">
+ <cd:sequence>
+ <cd:string value="definetypeface"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="rm"/>
+ <cd:constant type="ss"/>
+ <cd:constant type="tt"/>
+ <cd:constant type="mm"/>
+ <cd:constant type="hw"/>
+ <cd:constant type="cg"/>
+ </cd:keywords>
+ <cd:keywords n="3">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="4">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="5" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="6" optional="yes">
+ <cd:parameter name="features">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="rscale">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="encoding">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="text">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefontfeature" file="type-ini.tex">
+ <cd:sequence>
+ <cd:string value="definefontfeature"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="no">
+ <cd:parameter name="compose">
+ <cd:constant type="nu" default="yes"/>
+ <cd:constant type="da"/>
+ </cd:parameter>
+ <cd:parameter name="mode">
+ <cd:constant type="node"/>
+ <cd:constant type="base" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="tlig">
+ <cd:constant type="nu" default="yes"/>
+ <cd:constant type="da"/>
+ </cd:parameter>
+ <cd:parameter name="trep">
+ <cd:constant type="nu" default="yes"/>
+ <cd:constant type="da"/>
+ </cd:parameter>
+ <cd:parameter name="script">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="language">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="..tag.."> <!-- can't use &gt; here, \showsetup gives an error -->
+ <cd:constant type="nu" default="yes"/>
+ <cd:constant type="da"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefonthandling" file="hand-ini.mkii">
+ <cd:sequence>
+ <cd:string value="definefonthandling"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:name" list="yes"/>
+ </cd:keywords>
+ <cd:assignments n="3">
+ <cd:parameter name="type">
+ <cd:constant type="suspendat" default="yes"/>
+ <cd:constant type="hz"/>
+ <cd:constant type="spatiere"/>
+ <cd:constant type="tag"/>
+ </cd:parameter>
+ <cd:parameter name="dreapta">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="stanga">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="factor">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="min">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="max">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="pas">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfonthandling" file="hand-ini.mkii">
+ <cd:sequence>
+ <cd:string value="setupfonthandling"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2">
+ <cd:inherit name="definefonthandling" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefontsynonym" file="font-ini.tex">
+ <cd:sequence>
+ <cd:string value="definestesinonimfont"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" optional="yes">
+ <cd:parameter name="encoding">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="features">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="handling">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="mapping">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfontsynonym" file="font-ini.tex">
+ <cd:sequence>
+ <cd:string value="setupfontsynonym"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2">
+ <cd:inherit name="definestesinonimfont" n="3"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mapfontsize" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="mapfontsize"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ <cd:keywords n="2">
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definedfont" file="font-ini.tex" category="fonts">
+ <cd:sequence>
+ <cd:string value="definedfont"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:inherit name="definestefont" n="2"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
</cd:interface>
-
diff --git a/Master/texmf-dist/tex/context/interface/keys-cs.xml b/Master/texmf-dist/tex/context/interface/keys-cs.xml
new file mode 100644
index 00000000000..352245d6b09
--- /dev/null
+++ b/Master/texmf-dist/tex/context/interface/keys-cs.xml
@@ -0,0 +1,1649 @@
+<?xml version='1.0'?>
+
+<cd:interface xmlns:cd='http://www.pragma-ade.com/commands' name='context' language='cs' version='2008.10.21 19:42'>
+
+ <!-- definitions for interface variables for language cs -->
+
+ <cd:variables>
+ <cd:variable name='Addition' value='Pridavek'/>
+ <cd:variable name='Balloon' value='Bublinka'/>
+ <cd:variable name='Character' value='Pismeno'/>
+ <cd:variable name='Characters' value='Pismena'/>
+ <cd:variable name='CloseDocument' value='ZavritDokument'/>
+ <cd:variable name='ExitViewer' value='UkoncitProhlizec'/>
+ <cd:variable name='FirstPage' value='PrvniStrana'/>
+ <cd:variable name='FitHeight' value='FitHeight'/>
+ <cd:variable name='FitWidth' value='FitWidth'/>
+ <cd:variable name='GotoPage' value='JdiNaStranku'/>
+ <cd:variable name='Greek' value='Recky'/>
+ <cd:variable name='Help' value='Napoveda'/>
+ <cd:variable name='HideField' value='SkryjPole'/>
+ <cd:variable name='HideLayer' value='HideLayer'/>
+ <cd:variable name='Key' value='Klavesa'/>
+ <cd:variable name='LastPage' value='PosledniStrana'/>
+ <cd:variable name='LoadForm' value='NacistFormular'/>
+ <cd:variable name='MONTH' value='MESIC'/>
+ <cd:variable name='New' value='Novy'/>
+ <cd:variable name='NextJump' value='NasledujiciSkok'/>
+ <cd:variable name='NextPage' value='DalsiStrana'/>
+ <cd:variable name='Numbers' value='Cisla'/>
+ <cd:variable name='OpenNamedDocument' value='OpenNamedDocument'/>
+ <cd:variable name='Paragraph' value='Odstavec'/>
+ <cd:variable name='PauseMovie' value='PozastavitFilm'/>
+ <cd:variable name='PauseRendering' value='PauseRendering'/>
+ <cd:variable name='PauseSound' value='PozastavitZvuk'/>
+ <cd:variable name='PreviousJump' value='PredchoziSkok'/>
+ <cd:variable name='PreviousPage' value='PredchoziStrana'/>
+ <cd:variable name='PrintDocument' value='VytisknoutDokument'/>
+ <cd:variable name='Query' value='Query'/>
+ <cd:variable name='QueryAgain' value='QueryAgain'/>
+ <cd:variable name='ResetForm' value='ResetFormulare'/>
+ <cd:variable name='ResumeMovie' value='PokracovatFilm'/>
+ <cd:variable name='ResumeRendering' value='ResumeRendering'/>
+ <cd:variable name='ResumeSound' value='PokracovatZvuk'/>
+ <cd:variable name='Romannumerals' value='Rimskecislice'/>
+ <cd:variable name='SaveDocument' value='UlozitDokument'/>
+ <cd:variable name='SaveForm' value='UlozitFormular'/>
+ <cd:variable name='SaveNamedDocument' value='SaveNamedDocument'/>
+ <cd:variable name='SearchAgain' value='HledatZnovu'/>
+ <cd:variable name='SearchDocument' value='ProhledatDokument'/>
+ <cd:variable name='ShowBookmarks' value='UkazZalozky'/>
+ <cd:variable name='ShowField' value='UkazPole'/>
+ <cd:variable name='ShowThumbs' value='UkazNahledy'/>
+ <cd:variable name='StartMovie' value='SpustitFilm'/>
+ <cd:variable name='StartRendering' value='StartRendering'/>
+ <cd:variable name='StartSound' value='StartZvuk'/>
+ <cd:variable name='StopMovie' value='ZastavitFilm'/>
+ <cd:variable name='StopRendering' value='StopRendering'/>
+ <cd:variable name='StopSound' value='StopZvuk'/>
+ <cd:variable name='SubmitForm' value='PoslatFormular'/>
+ <cd:variable name='ToggleLayer' value='ToggleLayer'/>
+ <cd:variable name='ToggleViewer' value='ZmenitProhlizec'/>
+ <cd:variable name='URL' value='URL'/>
+ <cd:variable name='VideLayer' value='VideLayer'/>
+ <cd:variable name='ViewerHelp' value='NapovedaProhlizece'/>
+ <cd:variable name='WEEKDAY' value='VSEDNIDEN'/>
+ <cd:variable name='WORD' value='SLOVO'/>
+ <cd:variable name='abbreviation' value='zkratka'/>
+ <cd:variable name='abbreviations' value='zkratky'/>
+ <cd:variable name='absolute' value='absolutni'/>
+ <cd:variable name='action' value='akce'/>
+ <cd:variable name='after' value='po'/>
+ <cd:variable name='all' value='vse'/>
+ <cd:variable name='always' value='vzdy'/>
+ <cd:variable name='answerarea' value='answerarea'/>
+ <cd:variable name='appendices' value='dodatky'/>
+ <cd:variable name='appendix' value='dodatek'/>
+ <cd:variable name='april' value='duben'/>
+ <cd:variable name='atmargin' value='naokraji'/>
+ <cd:variable name='atpage' value='nastrance'/>
+ <cd:variable name='august' value='srpen'/>
+ <cd:variable name='auto' value='auto'/>
+ <cd:variable name='autointro' value='autouvod'/>
+ <cd:variable name='back' value='zpet'/>
+ <cd:variable name='background' value='pozadi'/>
+ <cd:variable name='backmatter' value='epilogy'/>
+ <cd:variable name='backpart' value='epilog'/>
+ <cd:variable name='backspace' value='zpetnamezera'/>
+ <cd:variable name='backward' value='zpet'/>
+ <cd:variable name='before' value='pred'/>
+ <cd:variable name='big' value='velke'/>
+ <cd:variable name='bigbodyfont' value='bigbodyfont'/>
+ <cd:variable name='bigpreference' value='vysokapriorita'/>
+ <cd:variable name='blank' value='prazdny'/>
+ <cd:variable name='blockquote' value='blockquote'/>
+ <cd:variable name='bodymatter' value='hlavnicasti'/>
+ <cd:variable name='bodypart' value='hlavnicast'/>
+ <cd:variable name='bold' value='tucne'/>
+ <cd:variable name='bolditalic' value='tucnekurzivni'/>
+ <cd:variable name='boldslanted' value='tucnesklonene'/>
+ <cd:variable name='bookmark' value='zalozka'/>
+ <cd:variable name='both' value='obe'/>
+ <cd:variable name='bottom' value='spodek'/>
+ <cd:variable name='brief' value='brief'/>
+ <cd:variable name='broad' value='siroky'/>
+ <cd:variable name='buffer' value='buffer'/>
+ <cd:variable name='by' value='skrz'/>
+ <cd:variable name='calligraphic' value='kaligraficke'/>
+ <cd:variable name='cap' value='kap'/>
+ <cd:variable name='capital' value='kapitalky'/>
+ <cd:variable name='center' value='center'/>
+ <cd:variable name='chapter' value='kapitola'/>
+ <cd:variable name='character' value='pismeno'/>
+ <cd:variable name='characters' value='pismena'/>
+ <cd:variable name='color' value='barevne'/>
+ <cd:variable name='column' value='column'/>
+ <cd:variable name='columns' value='sloupce'/>
+ <cd:variable name='command' value='prikaz'/>
+ <cd:variable name='commands' value='prikazy'/>
+ <cd:variable name='comment' value='komentar'/>
+ <cd:variable name='component' value='komponenta'/>
+ <cd:variable name='concept' value='koncept'/>
+ <cd:variable name='content' value='obsah'/>
+ <cd:variable name='contents' value='obsah'/>
+ <cd:variable name='continue' value='pokracovat'/>
+ <cd:variable name='controls' value='controls'/>
+ <cd:variable name='conversion' value='konverze'/>
+ <cd:variable name='current' value='aktualni'/>
+ <cd:variable name='cutspace' value='cutspace'/>
+ <cd:variable name='date' value='datum'/>
+ <cd:variable name='day' value='den'/>
+ <cd:variable name='december' value='prosinec'/>
+ <cd:variable name='default' value='implicitni'/>
+ <cd:variable name='depth' value='podlehloubky'/>
+ <cd:variable name='description' value='popis'/>
+ <cd:variable name='disable' value='zablokovat'/>
+ <cd:variable name='display' value='obrazovka'/>
+ <cd:variable name='dot' value='tecka'/>
+ <cd:variable name='doublesided' value='dvoustranny'/>
+ <cd:variable name='each' value='kazdy'/>
+ <cd:variable name='edge' value='hrana'/>
+ <cd:variable name='empty' value='prazdne'/>
+ <cd:variable name='endnote' value='endnote'/>
+ <cd:variable name='enumeration' value='vycet'/>
+ <cd:variable name='environment' value='prostredi'/>
+ <cd:variable name='even' value='sude'/>
+ <cd:variable name='external' value='externi'/>
+ <cd:variable name='fact' value='fakt'/>
+ <cd:variable name='february' value='unor'/>
+ <cd:variable name='figure' value='obrazek'/>
+ <cd:variable name='figures' value='obrazky'/>
+ <cd:variable name='file' value='soubor'/>
+ <cd:variable name='final' value='finalni'/>
+ <cd:variable name='first' value='prvni'/>
+ <cd:variable name='firstcolumn' value='firstcolumn'/>
+ <cd:variable name='firstpage' value='prvnistranka'/>
+ <cd:variable name='firstsubpage' value='prvnipodstranka'/>
+ <cd:variable name='fit' value='prizpusobive'/>
+ <cd:variable name='five' value='pet'/>
+ <cd:variable name='fix' value='fixuj'/>
+ <cd:variable name='fixed' value='fixne'/>
+ <cd:variable name='flexible' value='prizpusobive'/>
+ <cd:variable name='float' value='plvouciobjekt'/>
+ <cd:variable name='flushinner' value='flushinner'/>
+ <cd:variable name='flushleft' value='flushleft'/>
+ <cd:variable name='flushouter' value='flushouter'/>
+ <cd:variable name='flushright' value='flushright'/>
+ <cd:variable name='footer' value='upati'/>
+ <cd:variable name='footnote' value='poznamkapodcarou'/>
+ <cd:variable name='force' value='sila'/>
+ <cd:variable name='foreground' value='popredi'/>
+ <cd:variable name='formeel' value='formeel'/>
+ <cd:variable name='formula' value='rovnice'/>
+ <cd:variable name='formulae' value='rovnice'/>
+ <cd:variable name='forward' value='vpred'/>
+ <cd:variable name='four' value='ctyri'/>
+ <cd:variable name='frame' value='ramecek'/>
+ <cd:variable name='framedtext' value='oramovanytext'/>
+ <cd:variable name='friday' value='patek'/>
+ <cd:variable name='frontmatter' value='prednicasti'/>
+ <cd:variable name='frontpart' value='prednicast'/>
+ <cd:variable name='global' value='globalne'/>
+ <cd:variable name='graphic' value='graf'/>
+ <cd:variable name='graphics' value='grafy'/>
+ <cd:variable name='gray' value='seda'/>
+ <cd:variable name='greek' value='recky'/>
+ <cd:variable name='grid' value='mrizka'/>
+ <cd:variable name='halfline' value='pulradku'/>
+ <cd:variable name='handwritten' value='rukopisne'/>
+ <cd:variable name='hang' value='zaveseni'/>
+ <cd:variable name='hanging' value='visici'/>
+ <cd:variable name='head' value='hlavicka'/>
+ <cd:variable name='header' value='zahlavi'/>
+ <cd:variable name='height' value='vyska'/>
+ <cd:variable name='helptext' value='textnapovedy'/>
+ <cd:variable name='hencefore' value='vyse'/>
+ <cd:variable name='here' value='zde'/>
+ <cd:variable name='hereafter' value='nize'/>
+ <cd:variable name='hidden' value='skryte'/>
+ <cd:variable name='hiding' value='skryt'/>
+ <cd:variable name='high' value='vysoko'/>
+ <cd:variable name='horizontal' value='horizontalne'/>
+ <cd:variable name='hyphenated' value='hyphenated'/>
+ <cd:variable name='hz' value='hz'/>
+ <cd:variable name='inbetween' value='mezi'/>
+ <cd:variable name='index' value='rejstrik'/>
+ <cd:variable name='indices' value='rejstriky'/>
+ <cd:variable name='informeel' value='informeel'/>
+ <cd:variable name='inherit' value='inherit'/>
+ <cd:variable name='inleft' value='vlevo'/>
+ <cd:variable name='inmargin' value='naokraji'/>
+ <cd:variable name='inner' value='uvnitr'/>
+ <cd:variable name='inneredge' value='inneredge'/>
+ <cd:variable name='innermargin' value='innermargin'/>
+ <cd:variable name='inright' value='vpravo'/>
+ <cd:variable name='interaction' value='interakce'/>
+ <cd:variable name='interactionmenu' value='interaktivnimenu'/>
+ <cd:variable name='intermezzi' value='intermezzi'/>
+ <cd:variable name='intermezzo' value='intermezzo'/>
+ <cd:variable name='intext' value='dotextu'/>
+ <cd:variable name='intro' value='uvod'/>
+ <cd:variable name='italic' value='kurziva'/>
+ <cd:variable name='italicbold' value='kurzivnitucne'/>
+ <cd:variable name='item' value='polozka'/>
+ <cd:variable name='itemize' value='vycet'/>
+ <cd:variable name='its' value='pol'/>
+ <cd:variable name='january' value='leden'/>
+ <cd:variable name='joinedup' value='spojeno'/>
+ <cd:variable name='july' value='cervenec'/>
+ <cd:variable name='june' value='cerven'/>
+ <cd:variable name='keep' value='drzet'/>
+ <cd:variable name='knockout' value='knockout'/>
+ <cd:variable name='label' value='popisek'/>
+ <cd:variable name='landscape' value='nasirku'/>
+ <cd:variable name='last' value='posledni'/>
+ <cd:variable name='lastcolumn' value='lastcolumn'/>
+ <cd:variable name='lastpage' value='poslednistrana'/>
+ <cd:variable name='lastpagenumber' value='lastpagenumber'/>
+ <cd:variable name='lastsubpage' value='poslaednipodstranka'/>
+ <cd:variable name='layer' value='layer'/>
+ <cd:variable name='left' value='vlevo'/>
+ <cd:variable name='leftedge' value='levahrana'/>
+ <cd:variable name='lefthanging' value='lefthanging'/>
+ <cd:variable name='leftmargin' value='levyokraj'/>
+ <cd:variable name='leftpage' value='levastranka'/>
+ <cd:variable name='lefttoright' value='lefttoright'/>
+ <cd:variable name='legend' value='legenda'/>
+ <cd:variable name='lesshyphenation' value='lesshyphenation'/>
+ <cd:variable name='line' value='radek'/>
+ <cd:variable name='linenote' value='linenote'/>
+ <cd:variable name='lines' value='radky'/>
+ <cd:variable name='list' value='seznam'/>
+ <cd:variable name='local' value='lokalne'/>
+ <cd:variable name='localenvironment' value='lokalnihoprostredi'/>
+ <cd:variable name='logo' value='logo'/>
+ <cd:variable name='logos' value='loga'/>
+ <cd:variable name='lohi' value='nivy'/>
+ <cd:variable name='loose' value='uvolnene'/>
+ <cd:variable name='low' value='nizko'/>
+ <cd:variable name='ls' value='ls'/>
+ <cd:variable name='makeup' value='zlom'/>
+ <cd:variable name='mar' value='mar'/>
+ <cd:variable name='march' value='brezen'/>
+ <cd:variable name='margin' value='marginalie'/>
+ <cd:variable name='marginedge' value='textovahrana'/>
+ <cd:variable name='margintitle' value='titulmarginalie'/>
+ <cd:variable name='marking' value='znaceni'/>
+ <cd:variable name='mathalignment' value='mathalignment'/>
+ <cd:variable name='mathcases' value='mathcases'/>
+ <cd:variable name='mathmatrix' value='mathmatrix'/>
+ <cd:variable name='max' value='max'/>
+ <cd:variable name='may' value='kveten'/>
+ <cd:variable name='mediaeval' value='stredoveky'/>
+ <cd:variable name='medium' value='stredni'/>
+ <cd:variable name='middle' value='nastred'/>
+ <cd:variable name='min' value='min'/>
+ <cd:variable name='minheight' value='minvyska'/>
+ <cd:variable name='minwidth' value='minsirka'/>
+ <cd:variable name='mirrored' value='zrcadleno'/>
+ <cd:variable name='monday' value='pondeli'/>
+ <cd:variable name='mono' value='mono'/>
+ <cd:variable name='month' value='mesic'/>
+ <cd:variable name='morehyphenation' value='morehyphenation'/>
+ <cd:variable name='name' value='jmeno'/>
+ <cd:variable name='narrow' value='uzky'/>
+ <cd:variable name='negative' value='negativ'/>
+ <cd:variable name='never' value='nikdy'/>
+ <cd:variable name='new' value='novy'/>
+ <cd:variable name='next' value='dalsi'/>
+ <cd:variable name='nextevenpage' value='dalsisudastranka'/>
+ <cd:variable name='nextoddpage' value='dalsilichastranka'/>
+ <cd:variable name='nextpage' value='dalsistranka'/>
+ <cd:variable name='nextsubpage' value='dalsipodstranka'/>
+ <cd:variable name='no' value='ne'/>
+ <cd:variable name='nocheck' value='nocheck'/>
+ <cd:variable name='nofit' value='nofit'/>
+ <cd:variable name='nogrid' value='nogrid'/>
+ <cd:variable name='nohz' value='nohz'/>
+ <cd:variable name='nomarking' value='zadneznaceni'/>
+ <cd:variable name='none' value='zadny'/>
+ <cd:variable name='nonumber' value='nonumber'/>
+ <cd:variable name='normal' value='normalni'/>
+ <cd:variable name='nospacing' value='nospacing'/>
+ <cd:variable name='not' value='ne'/>
+ <cd:variable name='note' value='note'/>
+ <cd:variable name='nothanging' value='nothanging'/>
+ <cd:variable name='nothyphenated' value='nothyphenated'/>
+ <cd:variable name='november' value='listopad'/>
+ <cd:variable name='nowhere' value='nikde'/>
+ <cd:variable name='nowhite' value='zadnabila'/>
+ <cd:variable name='number' value='cislo'/>
+ <cd:variable name='numbers' value='cisla'/>
+ <cd:variable name='october' value='rijen'/>
+ <cd:variable name='odd' value='liche'/>
+ <cd:variable name='off' value='vyp'/>
+ <cd:variable name='offset' value='offset'/>
+ <cd:variable name='old' value='old'/>
+ <cd:variable name='on' value='zap'/>
+ <cd:variable name='one' value='jedna'/>
+ <cd:variable name='opposite' value='naproti'/>
+ <cd:variable name='outer' value='vnejsi'/>
+ <cd:variable name='outeredge' value='outeredge'/>
+ <cd:variable name='outermargin' value='outermargin'/>
+ <cd:variable name='overlay' value='prekryv'/>
+ <cd:variable name='overprint' value='overprint'/>
+ <cd:variable name='packed' value='zhustene'/>
+ <cd:variable name='page' value='stranka'/>
+ <cd:variable name='pagecomment' value='komentarstranky'/>
+ <cd:variable name='pagenumber' value='cislostranky'/>
+ <cd:variable name='paper' value='papir'/>
+ <cd:variable name='paragraph' value='odstavec'/>
+ <cd:variable name='part' value='cast'/>
+ <cd:variable name='positive' value='positiv'/>
+ <cd:variable name='postponing' value='odlozit'/>
+ <cd:variable name='postscript' value='postscript'/>
+ <cd:variable name='preference' value='nastaveni'/>
+ <cd:variable name='preview' value='nahled'/>
+ <cd:variable name='previous' value='predchozi'/>
+ <cd:variable name='previousevenpage' value='predchozisudastranka'/>
+ <cd:variable name='previousoddpage' value='predchozilichastranka'/>
+ <cd:variable name='previouspage' value='predchozistranka'/>
+ <cd:variable name='previoussubpage' value='predchozipodstranka'/>
+ <cd:variable name='printable' value='tisknutelne'/>
+ <cd:variable name='process' value='process'/>
+ <cd:variable name='product' value='produkt'/>
+ <cd:variable name='program' value='program'/>
+ <cd:variable name='project' value='projekt'/>
+ <cd:variable name='protected' value='chranene'/>
+ <cd:variable name='quadruple' value='ctyrnasobny'/>
+ <cd:variable name='quotation' value='citace'/>
+ <cd:variable name='quote' value='citovat'/>
+ <cd:variable name='ran' value='rozsah'/>
+ <cd:variable name='random' value='nahodny'/>
+ <cd:variable name='readonly' value='pouzeprocteni'/>
+ <cd:variable name='rectangular' value='pravouhly'/>
+ <cd:variable name='referral' value='znacka'/>
+ <cd:variable name='register' value='rejstrik'/>
+ <cd:variable name='regular' value='pravidelne'/>
+ <cd:variable name='rekening' value='rekening'/>
+ <cd:variable name='relative' value='relativni'/>
+ <cd:variable name='repeat' value='opakovat'/>
+ <cd:variable name='required' value='pozadovane'/>
+ <cd:variable name='reset' value='reset'/>
+ <cd:variable name='reverse' value='reverse'/>
+ <cd:variable name='right' value='vpravo'/>
+ <cd:variable name='rightedge' value='pravahrana'/>
+ <cd:variable name='righthanging' value='righthanging'/>
+ <cd:variable name='rightmargin' value='pravyokraj'/>
+ <cd:variable name='rightpage' value='pravastranka'/>
+ <cd:variable name='righttoleft' value='righttoleft'/>
+ <cd:variable name='roman' value='antikva'/>
+ <cd:variable name='romannumerals' value='rimskecislice'/>
+ <cd:variable name='rotate' value='otoc'/>
+ <cd:variable name='rotated' value='otoceno'/>
+ <cd:variable name='round' value='zaobleny'/>
+ <cd:variable name='row' value='row'/>
+ <cd:variable name='rule' value='linka'/>
+ <cd:variable name='samepage' value='stejnastranka'/>
+ <cd:variable name='sans' value='sans'/>
+ <cd:variable name='sansbold' value='sanstucne'/>
+ <cd:variable name='sansserif' value='bezserifu'/>
+ <cd:variable name='saturday' value='sobota'/>
+ <cd:variable name='screen' value='rastr'/>
+ <cd:variable name='section' value='sekce'/>
+ <cd:variable name='sectionblockenvironment' value='sectionblockenvironment'/>
+ <cd:variable name='sectionnumber' value='cislooddilu'/>
+ <cd:variable name='see' value='viz'/>
+ <cd:variable name='september' value='zari'/>
+ <cd:variable name='serif' value='serif'/>
+ <cd:variable name='serried' value='semknuto'/>
+ <cd:variable name='setups' value='einstellungen'/>
+ <cd:variable name='sheet' value='sheet'/>
+ <cd:variable name='singlesided' value='jednostranne'/>
+ <cd:variable name='slanted' value='sklonene'/>
+ <cd:variable name='slantedbold' value='sklonenetucne'/>
+ <cd:variable name='small' value='male'/>
+ <cd:variable name='smallbodyfont' value='smallbodyfont'/>
+ <cd:variable name='smallbold' value='maletucne'/>
+ <cd:variable name='smallbolditalic' value='maletucnekurzivni'/>
+ <cd:variable name='smallboldslanted' value='maletucnesklonene'/>
+ <cd:variable name='smallcaps' value='kapitalky'/>
+ <cd:variable name='smallitalic' value='malekurzivni'/>
+ <cd:variable name='smallitalicbold' value='malekurzivnitucne'/>
+ <cd:variable name='smallnormal' value='malenormalni'/>
+ <cd:variable name='smallslanted' value='malesklonene'/>
+ <cd:variable name='smallslantedbold' value='malesklonenetucne'/>
+ <cd:variable name='smalltype' value='maletype'/>
+ <cd:variable name='somewhere' value='nekde'/>
+ <cd:variable name='sorted' value='tridene'/>
+ <cd:variable name='space' value='mezera'/>
+ <cd:variable name='spacing' value='mezerovani'/>
+ <cd:variable name='speech' value='speech'/>
+ <cd:variable name='split' value='split'/>
+ <cd:variable name='spot' value='spot'/>
+ <cd:variable name='standard' value='standardni'/>
+ <cd:variable name='start' value='start'/>
+ <cd:variable name='sticker' value='sticker'/>
+ <cd:variable name='stop' value='stop'/>
+ <cd:variable name='stopper' value='predel'/>
+ <cd:variable name='stretch' value='natahnout'/>
+ <cd:variable name='strict' value='striktni'/>
+ <cd:variable name='strong' value='strong'/>
+ <cd:variable name='strut' value='strut'/>
+ <cd:variable name='sub' value='pod'/>
+ <cd:variable name='subbackward' value='podzpet'/>
+ <cd:variable name='subformula' value='subrovnice'/>
+ <cd:variable name='subforward' value='podvpred'/>
+ <cd:variable name='subject' value='tema'/>
+ <cd:variable name='subpage' value='podstranka'/>
+ <cd:variable name='subsection' value='podsekce'/>
+ <cd:variable name='subsubject' value='podtema'/>
+ <cd:variable name='subsubsection' value='podpodsekce'/>
+ <cd:variable name='subsubsubject' value='podpodtema'/>
+ <cd:variable name='subsubsubsection' value='podpodpodsekce'/>
+ <cd:variable name='subsubsubsubject' value='podpodpodtema'/>
+ <cd:variable name='subsubsubsubsection' value='podpodpodpodsekce'/>
+ <cd:variable name='subsubsubsubsubject' value='podpodpodpodtema'/>
+ <cd:variable name='subsubsubsubsubsection' value='podpodpodpodpodsekce'/>
+ <cd:variable name='subsubsubsubsubsubject' value='podpodpodpodpodtema'/>
+ <cd:variable name='subsubsubsubsubsubsection' value='podpodpodpodpodpodsekce'/>
+ <cd:variable name='subsubsubsubsubsubsubject' value='podpodpodpodpodpodtema'/>
+ <cd:variable name='subsubsubsubsubsubsubsection' value='podpodpodpodpodpodpodsekce'/>
+ <cd:variable name='subsubsubsubsubsubsubsubject' value='podpodpodpodpodpodpodtema'/>
+ <cd:variable name='subsubsubsubsubsubsubsubsection' value='podpodpodpodpodpodpodpodsekce'/>
+ <cd:variable name='subsubsubsubsubsubsubsubsubject' value='podpodpodpodpodpodpodpodtema'/>
+ <cd:variable name='subsubsubsubsubsubsubsubsubsection' value='podpodpodpodpodpodpodpodpodsekce'/>
+ <cd:variable name='subsubsubsubsubsubsubsubsubsubject' value='podpodpodpodpodpodpodpodpodtema'/>
+ <cd:variable name='sunday' value='nedele'/>
+ <cd:variable name='support' value='podpora'/>
+ <cd:variable name='sym' value='sym'/>
+ <cd:variable name='symbol' value='symbol'/>
+ <cd:variable name='synchronize' value='synchronize'/>
+ <cd:variable name='system' value='system'/>
+ <cd:variable name='table' value='tabulka'/>
+ <cd:variable name='tablehead' value='zahlavitabulky'/>
+ <cd:variable name='tables' value='tabulky'/>
+ <cd:variable name='tabletail' value='konectabulky'/>
+ <cd:variable name='tabulate' value='tabelator'/>
+ <cd:variable name='tabulatehead' value='tabulatehead'/>
+ <cd:variable name='tabulatetail' value='tabulatetail'/>
+ <cd:variable name='tall' value='vysoko'/>
+ <cd:variable name='teletype' value='strojopis'/>
+ <cd:variable name='temporary' value='docasne'/>
+ <cd:variable name='test' value='test'/>
+ <cd:variable name='text' value='text'/>
+ <cd:variable name='three' value='tri'/>
+ <cd:variable name='thursday' value='ctvrtek'/>
+ <cd:variable name='title' value='titul'/>
+ <cd:variable name='toggle' value='toggle'/>
+ <cd:variable name='tolerant' value='tolerantni'/>
+ <cd:variable name='top' value='vrsek'/>
+ <cd:variable name='tuesday' value='utery'/>
+ <cd:variable name='two' value='dve'/>
+ <cd:variable name='txt' value='txt'/>
+ <cd:variable name='type' value='opis'/>
+ <cd:variable name='typing' value='typing'/>
+ <cd:variable name='unavailable' value='nedostupne'/>
+ <cd:variable name='unit' value='jednotka'/>
+ <cd:variable name='units' value='jednotky'/>
+ <cd:variable name='unknown' value='neznamy'/>
+ <cd:variable name='unpacked' value='rozbalene'/>
+ <cd:variable name='url' value='url'/>
+ <cd:variable name='used' value='uzito'/>
+ <cd:variable name='value' value='hodnota'/>
+ <cd:variable name='vertical' value='vertikalne'/>
+ <cd:variable name='very' value='velmi'/>
+ <cd:variable name='verystrict' value='velmistriktni'/>
+ <cd:variable name='verytolerant' value='velmitolerantni'/>
+ <cd:variable name='weak' value='weak'/>
+ <cd:variable name='wednesday' value='streda'/>
+ <cd:variable name='week' value='tyden'/>
+ <cd:variable name='weekday' value='vsedniden'/>
+ <cd:variable name='white' value='bily'/>
+ <cd:variable name='wide' value='siroce'/>
+ <cd:variable name='width' value='sirka'/>
+ <cd:variable name='xml' value='xml'/>
+ <cd:variable name='year' value='rok'/>
+ <cd:variable name='yes' value='ano'/>
+ </cd:variable>
+
+ <!-- definitions for interface constants for language cs -->
+
+ <cd:constants>
+ <cd:constant name='action' value='akce'/>
+ <cd:constant name='address' value='adresa'/>
+ <cd:constant name='after' value='po'/>
+ <cd:constant name='afterhead' value='pohlavicce'/>
+ <cd:constant name='afterkey' value='klavesapo'/>
+ <cd:constant name='align' value='zarovnani'/>
+ <cd:constant name='aligncharacter' value='aligncharacter'/>
+ <cd:constant name='alignmentcharacter' value='alignmentcharacter'/>
+ <cd:constant name='aligntitle' value='zarovnejtitul'/>
+ <cd:constant name='alternative' value='alternativa'/>
+ <cd:constant name='apa' value='apa'/>
+ <cd:constant name='arrow' value='sipka'/>
+ <cd:constant name='at' value='u'/>
+ <cd:constant name='author' value='autor'/>
+ <cd:constant name='auto' value='auto'/>
+ <cd:constant name='autofile' value='autofile'/>
+ <cd:constant name='autofocus' value='autoostreni'/>
+ <cd:constant name='autohang' value='autohang'/>
+ <cd:constant name='autostrut' value='autostrut'/>
+ <cd:constant name='autowidth' value='autosirka'/>
+ <cd:constant name='axis' value='osa'/>
+ <cd:constant name='background' value='pozadi'/>
+ <cd:constant name='backgroundcolor' value='barvapozadi'/>
+ <cd:constant name='backgroundcorner' value='rohpozadi'/>
+ <cd:constant name='backgrounddepth' value='hloubkapozadi'/>
+ <cd:constant name='backgroundoffset' value='offsetpozadi'/>
+ <cd:constant name='backgroundradius' value='polomerpozadi'/>
+ <cd:constant name='backgroundscreen' value='rastrpozadi'/>
+ <cd:constant name='backspace' value='zpetnamezera'/>
+ <cd:constant name='balance' value='rovnovaha'/>
+ <cd:constant name='before' value='pred'/>
+ <cd:constant name='beforehead' value='predhlavickou'/>
+ <cd:constant name='bet' value='bet'/>
+ <cd:constant name='big' value='velky'/>
+ <cd:constant name='blank' value='prazdny'/>
+ <cd:constant name='blockway' value='dobloku'/>
+ <cd:constant name='bodyfont' value='zakladnifont'/>
+ <cd:constant name='bookmark' value='zalozka'/>
+ <cd:constant name='bottom' value='spodek'/>
+ <cd:constant name='bottomafter' value='bottomafter'/>
+ <cd:constant name='bottombefore' value='bottombefore'/>
+ <cd:constant name='bottomdistance' value='vzdalenostspodku'/>
+ <cd:constant name='bottomframe' value='ramecekdole'/>
+ <cd:constant name='bottomoffset' value='offsetspodku'/>
+ <cd:constant name='bottomspace' value='bottomspace'/>
+ <cd:constant name='bottomstate' value='statusspodku'/>
+ <cd:constant name='cache' value='cache'/>
+ <cd:constant name='calculate' value='pocitat'/>
+ <cd:constant name='ccommand' value='cprikaz'/>
+ <cd:constant name='click' value='klik'/>
+ <cd:constant name='clickin' value='klikuvnitr'/>
+ <cd:constant name='clickout' value='klikvne'/>
+ <cd:constant name='clipoffset' value='clipoffset'/>
+ <cd:constant name='closeaction' value='zavriakci'/>
+ <cd:constant name='closecommand' value='closecommand'/>
+ <cd:constant name='closepageaction' value='akcezavrenistranky'/>
+ <cd:constant name='closesymbol' value='closesymbol'/>
+ <cd:constant name='color' value='barva'/>
+ <cd:constant name='column' value='sloupec'/>
+ <cd:constant name='columndistance' value='vzdalenostsloupcu'/>
+ <cd:constant name='columns' value='sloupce'/>
+ <cd:constant name='command' value='prikaz'/>
+ <cd:constant name='commandafter' value='prikazpo'/>
+ <cd:constant name='commandbefore' value='predchoziprikaz'/>
+ <cd:constant name='commands' value='prikazy'/>
+ <cd:constant name='component' value='component'/>
+ <cd:constant name='compoundhyphen' value='compoundhyphen'/>
+ <cd:constant name='compress' value='compress'/>
+ <cd:constant name='connector' value='connector'/>
+ <cd:constant name='continue' value='pokracovat'/>
+ <cd:constant name='contrastcolor' value='kontrastnibarva'/>
+ <cd:constant name='controls' value='controls'/>
+ <cd:constant name='conversion' value='konverze'/>
+ <cd:constant name='convertfile' value='konverzesouboru'/>
+ <cd:constant name='corner' value='roh'/>
+ <cd:constant name='coupling' value='propojeni'/>
+ <cd:constant name='couplingway' value='zpusobpropojeni'/>
+ <cd:constant name='criterium' value='kriterium'/>
+ <cd:constant name='current' value='aktualni'/>
+ <cd:constant name='cutspace' value='cutspace'/>
+ <cd:constant name='dash' value='pomlcka'/>
+ <cd:constant name='dat' value='dat'/>
+ <cd:constant name='date' value='datum'/>
+ <cd:constant name='deepnumbercommand' value='deepnumbercommand'/>
+ <cd:constant name='deeptextcommand' value='deeptextcommand'/>
+ <cd:constant name='default' value='implicitni'/>
+ <cd:constant name='delay' value='prodleva'/>
+ <cd:constant name='depth' value='hloubka'/>
+ <cd:constant name='depthcorrection' value='korekcehloubky'/>
+ <cd:constant name='direction' value='smer'/>
+ <cd:constant name='directory' value='adresar'/>
+ <cd:constant name='display' value='obrazovka'/>
+ <cd:constant name='distance' value='vzdalenost'/>
+ <cd:constant name='dot' value='tecka'/>
+ <cd:constant name='doublesided' value='oboustranne'/>
+ <cd:constant name='dummy' value='dummy'/>
+ <cd:constant name='dx' value='dx'/>
+ <cd:constant name='dy' value='dy'/>
+ <cd:constant name='edge' value='hrana'/>
+ <cd:constant name='edgedistance' value='vzdalenosthrany'/>
+ <cd:constant name='empty' value='prazdne'/>
+ <cd:constant name='equalheight' value='equalheight'/>
+ <cd:constant name='equalwidth' value='equalwidth'/>
+ <cd:constant name='escape' value='escape'/>
+ <cd:constant name='evenmargin' value='sudamarginalie'/>
+ <cd:constant name='expansion' value='expanzen'/>
+ <cd:constant name='extras' value='extras'/>
+ <cd:constant name='factor' value='faktor'/>
+ <cd:constant name='fallback' value='fallback'/>
+ <cd:constant name='family' value='rodina'/>
+ <cd:constant name='fieldbackgroundcolor' value='barvapozadipole'/>
+ <cd:constant name='fieldframecolor' value='barvarameckupole'/>
+ <cd:constant name='fieldlayer' value='fieldlayer'/>
+ <cd:constant name='fieldoffset' value='offsetpole'/>
+ <cd:constant name='file' value='soubor'/>
+ <cd:constant name='filtercommand' value='filtercommand'/>
+ <cd:constant name='focus' value='zaostreni'/>
+ <cd:constant name='focusin' value='focusin'/>
+ <cd:constant name='focusout' value='focusout'/>
+ <cd:constant name='footer' value='upati'/>
+ <cd:constant name='footerdistance' value='vzdalenostupati'/>
+ <cd:constant name='footerstate' value='statusupati'/>
+ <cd:constant name='foregroundcolor' value='foregroundcolor'/>
+ <cd:constant name='foregroundstyle' value='foregroundstyle'/>
+ <cd:constant name='format' value='formatovat'/>
+ <cd:constant name='frame' value='ramecek'/>
+ <cd:constant name='framecolor' value='barvaramecku'/>
+ <cd:constant name='framecorner' value='rohramecku'/>
+ <cd:constant name='framedepth' value='hloubkaramecku'/>
+ <cd:constant name='frameoffset' value='offsetramecku'/>
+ <cd:constant name='frameradius' value='polomerramecku'/>
+ <cd:constant name='frames' value='ramecky'/>
+ <cd:constant name='from' value='z'/>
+ <cd:constant name='get' value='ziskat'/>
+ <cd:constant name='global' value='globalne'/>
+ <cd:constant name='grid' value='mrizka'/>
+ <cd:constant name='hang' value='zaveseni'/>
+ <cd:constant name='headcolor' value='barvahlavicky'/>
+ <cd:constant name='headcommand' value='headcommand'/>
+ <cd:constant name='headconversion' value='konverzehlavicky'/>
+ <cd:constant name='header' value='zahlavi'/>
+ <cd:constant name='headerdistance' value='vzdalenostzahlavi'/>
+ <cd:constant name='headerstate' value='statuszahlavi'/>
+ <cd:constant name='headlabel' value='popisekhlavicky'/>
+ <cd:constant name='headnumber' value='cislonadpisu'/>
+ <cd:constant name='headstyle' value='stylhlavicky'/>
+ <cd:constant name='height' value='vyska'/>
+ <cd:constant name='hfactor' value='vfaktor'/>
+ <cd:constant name='hfil' value='hfil'/>
+ <cd:constant name='hidenumber' value='hidenumber'/>
+ <cd:constant name='hoffset' value='hoffset'/>
+ <cd:constant name='horoffset' value='horoffset'/>
+ <cd:constant name='hyphen' value='hyphen'/>
+ <cd:constant name='icommand' value='iprikaz'/>
+ <cd:constant name='in' value='v'/>
+ <cd:constant name='inbetween' value='mezi'/>
+ <cd:constant name='increment' value='zvysit'/>
+ <cd:constant name='incrementnumber' value='zvysujicicislo'/>
+ <cd:constant name='indenting' value='odsazovani'/>
+ <cd:constant name='indentnext' value='odsadpristi'/>
+ <cd:constant name='indicator' value='indikator'/>
+ <cd:constant name='inner' value='vnitrni'/>
+ <cd:constant name='innermargin' value='innermargin'/>
+ <cd:constant name='inputfile' value='inputfile'/>
+ <cd:constant name='interaction' value='interakce'/>
+ <cd:constant name='interlinespace' value='meziradkovamezera'/>
+ <cd:constant name='itemalign' value='itemalign'/>
+ <cd:constant name='items' value='polozky'/>
+ <cd:constant name='ken' value='ken'/>
+ <cd:constant name='keyexpansion' value='keyexpansion'/>
+ <cd:constant name='keyword' value='keyword'/>
+ <cd:constant name='label' value='popisek'/>
+ <cd:constant name='left' value='vlevo'/>
+ <cd:constant name='leftcolor' value='barvavlevo'/>
+ <cd:constant name='leftcompoundhyphen' value='leftcompoundhyphen'/>
+ <cd:constant name='leftedge' value='levahrana'/>
+ <cd:constant name='leftedgedistance' value='vzdalenostlevehrany'/>
+ <cd:constant name='leftframe' value='ramecekvlevo'/>
+ <cd:constant name='lefthyphen' value='lefthyphen'/>
+ <cd:constant name='leftmargin' value='levyokraj'/>
+ <cd:constant name='leftmargindistance' value='vzdalenostlevehookraje'/>
+ <cd:constant name='leftoffset' value='levyoffset'/>
+ <cd:constant name='leftquotation' value='citacevlevo'/>
+ <cd:constant name='leftquote' value='citovatvlevo'/>
+ <cd:constant name='leftsentence' value='vetavlevo'/>
+ <cd:constant name='leftspeech' value='leftspeech'/>
+ <cd:constant name='leftstyle' value='stylvlevo'/>
+ <cd:constant name='leftsubsentence' value='podvetavlevo'/>
+ <cd:constant name='lefttext' value='textvlevo'/>
+ <cd:constant name='leftwidth' value='sirkavlevo'/>
+ <cd:constant name='level' value='uroven'/>
+ <cd:constant name='levels' value='urovne'/>
+ <cd:constant name='limittext' value='limittext'/>
+ <cd:constant name='line' value='radek'/>
+ <cd:constant name='linecorrection' value='korekceradku'/>
+ <cd:constant name='lines' value='radky'/>
+ <cd:constant name='list' value='seznam'/>
+ <cd:constant name='listtext' value='listtext'/>
+ <cd:constant name='local' value='lokalne'/>
+ <cd:constant name='location' value='misto'/>
+ <cd:constant name='logo' value='logo'/>
+ <cd:constant name='logos' value='loga'/>
+ <cd:constant name='marcolor' value='barvaznacky'/>
+ <cd:constant name='margin' value='marginalie'/>
+ <cd:constant name='margindistance' value='vzdalenostokraje'/>
+ <cd:constant name='marginedge' value='textovahrana'/>
+ <cd:constant name='marginedgetext' value='textmarginalnihookraje'/>
+ <cd:constant name='margintext' value='textmarginalie'/>
+ <cd:constant name='marking' value='znaceni'/>
+ <cd:constant name='marstyle' value='stylsnacky'/>
+ <cd:constant name='max' value='max'/>
+ <cd:constant name='maxheight' value='maxvyska'/>
+ <cd:constant name='maxwidth' value='maxsirka'/>
+ <cd:constant name='menu' value='menu'/>
+ <cd:constant name='method' value='metoda'/>
+ <cd:constant name='middle' value='stredni'/>
+ <cd:constant name='middlespeech' value='middlespeech'/>
+ <cd:constant name='middletext' value='strednitext'/>
+ <cd:constant name='midsentence' value='midsentence'/>
+ <cd:constant name='min' value='min'/>
+ <cd:constant name='mindepth' value='mindepth'/>
+ <cd:constant name='minheight' value='minvyska'/>
+ <cd:constant name='minwidth' value='minsirka'/>
+ <cd:constant name='n' value='n'/>
+ <cd:constant name='name' value='jmeno'/>
+ <cd:constant name='nbottom' value='nspodek'/>
+ <cd:constant name='nc' value='nc'/>
+ <cd:constant name='next' value='dalsi'/>
+ <cd:constant name='nl' value='nl'/>
+ <cd:constant name='nleft' value='nvlevo'/>
+ <cd:constant name='nlines' value='nradky'/>
+ <cd:constant name='norm' value='norm'/>
+ <cd:constant name='nr' value='nr'/>
+ <cd:constant name='nright' value='nvpravo'/>
+ <cd:constant name='ntop' value='nvrsek'/>
+ <cd:constant name='number' value='cislo'/>
+ <cd:constant name='numbercolor' value='barvacisla'/>
+ <cd:constant name='numbercommand' value='ciselnyprikaz'/>
+ <cd:constant name='numberconversion' value='numberconversion'/>
+ <cd:constant name='numberconversionset' value='numberconversionset'/>
+ <cd:constant name='numberdistance' value='numberdistance'/>
+ <cd:constant name='numbering' value='cislovani'/>
+ <cd:constant name='numberorder' value='numberorder'/>
+ <cd:constant name='numberprefix' value='numberprefix'/>
+ <cd:constant name='numbersegments' value='numbersegments'/>
+ <cd:constant name='numberseparator' value='oddelovaccisla'/>
+ <cd:constant name='numberseparatorset' value='numberseparatorset'/>
+ <cd:constant name='numberset' value='numberset'/>
+ <cd:constant name='numberstopper' value='numberstopper'/>
+ <cd:constant name='numberstyle' value='stylcisla'/>
+ <cd:constant name='numberwidth' value='numberwidth'/>
+ <cd:constant name='nx' value='nx'/>
+ <cd:constant name='ny' value='ny'/>
+ <cd:constant name='object' value='objekt'/>
+ <cd:constant name='obstruction' value='prekazka'/>
+ <cd:constant name='oddmargin' value='lichyokraj'/>
+ <cd:constant name='offset' value='offset'/>
+ <cd:constant name='openaction' value='otevriakci'/>
+ <cd:constant name='openpageaction' value='akceotevrenistranky'/>
+ <cd:constant name='option' value='volba'/>
+ <cd:constant name='orientation' value='orientation'/>
+ <cd:constant name='outermargin' value='outermargin'/>
+ <cd:constant name='overprint' value='overprint'/>
+ <cd:constant name='ownnumber' value='vlastnicislo'/>
+ <cd:constant name='page' value='stranka'/>
+ <cd:constant name='pageboundaries' value='hranicestranky'/>
+ <cd:constant name='pagecolor' value='barvastranky'/>
+ <cd:constant name='pagecommand' value='strankovyprikaz'/>
+ <cd:constant name='pageconversion' value='pageconversion'/>
+ <cd:constant name='pageconversionset' value='pageconversionset'/>
+ <cd:constant name='pagenumber' value='cislostranky'/>
+ <cd:constant name='pageprefix' value='pageprefix'/>
+ <cd:constant name='pageprefixconnector' value='pageprefixconnector'/>
+ <cd:constant name='pageprefixconversion' value='pageprefixconversion'/>
+ <cd:constant name='pageprefixconversionset' value='pageprefixconversionset'/>
+ <cd:constant name='pageprefixsegments' value='pageprefixsegments'/>
+ <cd:constant name='pageprefixseparatorset' value='pageprefixseparatorset'/>
+ <cd:constant name='pageprefixset' value='pageprefixset'/>
+ <cd:constant name='pageprefixstopper' value='pageprefixstopper'/>
+ <cd:constant name='pagesegments' value='pagesegments'/>
+ <cd:constant name='pageseparatorset' value='pageseparatorset'/>
+ <cd:constant name='pageset' value='pageset'/>
+ <cd:constant name='pagestate' value='pagestate'/>
+ <cd:constant name='pagestopper' value='pagestopper'/>
+ <cd:constant name='pagestyle' value='stylstranky'/>
+ <cd:constant name='palet' value='paleta'/>
+ <cd:constant name='paper' value='papir'/>
+ <cd:constant name='paragraph' value='odstavec'/>
+ <cd:constant name='place' value='umistit'/>
+ <cd:constant name='placehead' value='umistihlavicku'/>
+ <cd:constant name='placestopper' value='predelmista'/>
+ <cd:constant name='position' value='position'/>
+ <cd:constant name='prefix' value='prefix'/>
+ <cd:constant name='prefixconnector' value='prefixconnector'/>
+ <cd:constant name='prefixconversion' value='prefixconversion'/>
+ <cd:constant name='prefixconversionset' value='prefixconversionset'/>
+ <cd:constant name='prefixsegments' value='prefixsegments'/>
+ <cd:constant name='prefixseparatorset' value='prefixseparatorset'/>
+ <cd:constant name='prefixset' value='prefixset'/>
+ <cd:constant name='prefixstopper' value='prefixstopper'/>
+ <cd:constant name='preset' value='prednastaveni'/>
+ <cd:constant name='preview' value='nahled'/>
+ <cd:constant name='previous' value='predchozi'/>
+ <cd:constant name='previousnumber' value='predchozicislo'/>
+ <cd:constant name='process' value='process'/>
+ <cd:constant name='radius' value='polomer'/>
+ <cd:constant name='random' value='nahodne'/>
+ <cd:constant name='reduction' value='redukce'/>
+ <cd:constant name='ref' value='ref'/>
+ <cd:constant name='reference' value='odkaz'/>
+ <cd:constant name='referenceprefix' value='referenceprefix'/>
+ <cd:constant name='referencing' value='odkazujici'/>
+ <cd:constant name='regionin' value='oblastuvnitr'/>
+ <cd:constant name='regionout' value='oblastvne'/>
+ <cd:constant name='repeat' value='opakovat'/>
+ <cd:constant name='reset' value='reset'/>
+ <cd:constant name='resetnumber' value='resetnumber'/>
+ <cd:constant name='resolution' value='rozliseni'/>
+ <cd:constant name='right' value='vpravo'/>
+ <cd:constant name='rightcolor' value='barvavpravo'/>
+ <cd:constant name='rightcompoundhyphen' value='rightcompoundhyphen'/>
+ <cd:constant name='rightedge' value='pravahrana'/>
+ <cd:constant name='rightedgedistance' value='vzdalenostpravehrany'/>
+ <cd:constant name='rightframe' value='ramecekvpravo'/>
+ <cd:constant name='righthyphen' value='righthyphen'/>
+ <cd:constant name='rightmargin' value='pravyokraj'/>
+ <cd:constant name='rightmargindistance' value='vzdalenostpravehookraje'/>
+ <cd:constant name='rightoffset' value='pravyoffset'/>
+ <cd:constant name='rightquotation' value='citacevpravo'/>
+ <cd:constant name='rightquote' value='citovatvpravo'/>
+ <cd:constant name='rightsentence' value='vetavpravo'/>
+ <cd:constant name='rightspeech' value='rightspeech'/>
+ <cd:constant name='rightstyle' value='stylvpravo'/>
+ <cd:constant name='rightsubsentence' value='podvetavpravo'/>
+ <cd:constant name='righttext' value='textvpravo'/>
+ <cd:constant name='rightwidth' value='sirkavpravo'/>
+ <cd:constant name='rotation' value='rotace'/>
+ <cd:constant name='rule' value='linka'/>
+ <cd:constant name='rulecolor' value='barvalinky'/>
+ <cd:constant name='rulethickness' value='tloustkalinky'/>
+ <cd:constant name='samepage' value='stejnastranka'/>
+ <cd:constant name='sample' value='vzor'/>
+ <cd:constant name='saveinlist' value='saveinlist'/>
+ <cd:constant name='scale' value='meritko'/>
+ <cd:constant name='scope' value='rozsah'/>
+ <cd:constant name='screen' value='rastr'/>
+ <cd:constant name='section' value='oddil'/>
+ <cd:constant name='sectionconversion' value='sectionconversion'/>
+ <cd:constant name='sectionconversionset' value='sectionconversionset'/>
+ <cd:constant name='sectionnumber' value='cislooddilu'/>
+ <cd:constant name='sectionresetset' value='sectionresetset'/>
+ <cd:constant name='sectionsegments' value='sectionsegments'/>
+ <cd:constant name='sectionseparatorset' value='sectionseparatorset'/>
+ <cd:constant name='sectionset' value='sectionset'/>
+ <cd:constant name='sectionstopper' value='sectionstopper'/>
+ <cd:constant name='separator' value='oddelovac'/>
+ <cd:constant name='set' value='set'/>
+ <cd:constant name='setups' value='setups'/>
+ <cd:constant name='side' value='pocitat'/>
+ <cd:constant name='sidealign' value='sidealign'/>
+ <cd:constant name='sidemethod' value='sidemethod'/>
+ <cd:constant name='sidespaceafter' value='bocnimezeraza'/>
+ <cd:constant name='sidespacebefore' value='bocnimezerapred'/>
+ <cd:constant name='sign' value='znak'/>
+ <cd:constant name='size' value='velikost'/>
+ <cd:constant name='small' value='male'/>
+ <cd:constant name='sorttype' value='sorttype'/>
+ <cd:constant name='source' value='zdroj'/>
+ <cd:constant name='space' value='mezera'/>
+ <cd:constant name='spaceafter' value='mezeraza'/>
+ <cd:constant name='spacebefore' value='mezerapred'/>
+ <cd:constant name='spaceinbetween' value='spaceinbetween'/>
+ <cd:constant name='spacing' value='mezerovani'/>
+ <cd:constant name='split' value='split'/>
+ <cd:constant name='splitcolor' value='splitcolor'/>
+ <cd:constant name='splitmethod' value='splitmethod'/>
+ <cd:constant name='splitoffset' value='splitoffset'/>
+ <cd:constant name='spot' value='spot'/>
+ <cd:constant name='stack' value='stack'/>
+ <cd:constant name='start' value='start'/>
+ <cd:constant name='state' value='status'/>
+ <cd:constant name='step' value='krok'/>
+ <cd:constant name='stop' value='stop'/>
+ <cd:constant name='stopper' value='predel'/>
+ <cd:constant name='stretch' value='natahnout'/>
+ <cd:constant name='strut' value='strut'/>
+ <cd:constant name='style' value='pismeno'/>
+ <cd:constant name='sub' value='pod'/>
+ <cd:constant name='subtitle' value='podtitulek'/>
+ <cd:constant name='suffix' value='suffix'/>
+ <cd:constant name='sx' value='sx'/>
+ <cd:constant name='sy' value='sy'/>
+ <cd:constant name='symalign' value='symzarovnani'/>
+ <cd:constant name='symbol' value='symbol'/>
+ <cd:constant name='symbolset' value='sadasymbolu'/>
+ <cd:constant name='symcolor' value='barvasymbolu'/>
+ <cd:constant name='symstyle' value='stylsymboly'/>
+ <cd:constant name='synonym' value='synonymum'/>
+ <cd:constant name='synonymcolor' value='barvasynonyma'/>
+ <cd:constant name='synonymcommand' value='synonymcommand'/>
+ <cd:constant name='synonymstyle' value='stylsynonyma'/>
+ <cd:constant name='tab' value='tab'/>
+ <cd:constant name='text' value='text'/>
+ <cd:constant name='textcolor' value='barvatextu'/>
+ <cd:constant name='textcommand' value='textovyprikaz'/>
+ <cd:constant name='textdistance' value='textdistance'/>
+ <cd:constant name='textlayer' value='textlayer'/>
+ <cd:constant name='textmargin' value='textmargin'/>
+ <cd:constant name='textmethod' value='textmethod'/>
+ <cd:constant name='textseparator' value='oddelovactextu'/>
+ <cd:constant name='textsize' value='velikosttextu'/>
+ <cd:constant name='textstate' value='statustextu'/>
+ <cd:constant name='textstyle' value='styltextu'/>
+ <cd:constant name='textwidth' value='sirkatextu'/>
+ <cd:constant name='title' value='titul'/>
+ <cd:constant name='titlecolor' value='barvatitulek'/>
+ <cd:constant name='titlecommand' value='titlecommand'/>
+ <cd:constant name='titledistance' value='vzdalenosttitulek'/>
+ <cd:constant name='titleleft' value='titleleft'/>
+ <cd:constant name='titleright' value='titleright'/>
+ <cd:constant name='titlestyle' value='styltitulek'/>
+ <cd:constant name='to' value='na'/>
+ <cd:constant name='tolerance' value='tolerance'/>
+ <cd:constant name='top' value='vrsek'/>
+ <cd:constant name='topdistance' value='vzdalenostvrsku'/>
+ <cd:constant name='topframe' value='rameceknahore'/>
+ <cd:constant name='topoffset' value='offsetvrsku'/>
+ <cd:constant name='topspace' value='svrchnimezera'/>
+ <cd:constant name='topstate' value='statusvrsku'/>
+ <cd:constant name='type' value='typ'/>
+ <cd:constant name='unit' value='jednotka'/>
+ <cd:constant name='unknownreference' value='neznamyodkaz'/>
+ <cd:constant name='urlalternative' value='urlalternativa'/>
+ <cd:constant name='urlspace' value='prostorurl'/>
+ <cd:constant name='validate' value='validovat'/>
+ <cd:constant name='vcommand' value='vprikaz'/>
+ <cd:constant name='veroffset' value='offsethlavicky'/>
+ <cd:constant name='vfil' value='vfil'/>
+ <cd:constant name='voffset' value='voffset'/>
+ <cd:constant name='way' value='zpusob'/>
+ <cd:constant name='wfactor' value='sfaktor'/>
+ <cd:constant name='white' value='bily'/>
+ <cd:constant name='width' value='sirka'/>
+ <cd:constant name='xfactor' value='xfaktor'/>
+ <cd:constant name='xmax' value='xmax'/>
+ <cd:constant name='xoffset' value='xoffset'/>
+ <cd:constant name='xscale' value='xmeritko'/>
+ <cd:constant name='xstep' value='xkrok'/>
+ <cd:constant name='yfactor' value='yfaktor'/>
+ <cd:constant name='ymax' value='ymax'/>
+ <cd:constant name='yoffset' value='yoffset'/>
+ <cd:constant name='yscale' value='ymeritko'/>
+ <cd:constant name='ystep' value='ykrok'/>
+ </cd:constant>
+
+ <!-- definitions for interface elements for language cs -->
+
+ <cd:elements>
+ <cd:element name='answerlines' value='answerlines'/>
+ <cd:element name='answerspace' value='answerspace'/>
+ <cd:element name='begin' value='zacatek'/>
+ <cd:element name='complete' value='uplny'/>
+ <cd:element name='coupled' value='propojene'/>
+ <cd:element name='currentlocal' value='aktualnelokalni'/>
+ <cd:element name='emptyone' value='leer'/>
+ <cd:element name='emptytwo' value='prazdne'/>
+ <cd:element name='end' value='konec'/>
+ <cd:element name='endsetup' value=''/>
+ <cd:element name='get' value='ziskat'/>
+ <cd:element name='increment' value='zvysit'/>
+ <cd:element name='list' value='seznam'/>
+ <cd:element name='listof' value='seznam'/>
+ <cd:element name='load' value='nacist'/>
+ <cd:element name='local' value='lokalne'/>
+ <cd:element name='makeup' value='zlom'/>
+ <cd:element name='next' value='dalsi'/>
+ <cd:element name='place' value='umisti'/>
+ <cd:element name='previous' value='predchozi'/>
+ <cd:element name='previouslocal' value='predchozilokalni'/>
+ <cd:element name='reserve' value='rezervovat'/>
+ <cd:element name='see' value='viz'/>
+ <cd:element name='setup' value='nastaveni'/>
+ <cd:element name='start' value='start'/>
+ <cd:element name='stop' value='stop'/>
+ <cd:element name='text' value='text'/>
+ <cd:element name='type' value='opis'/>
+ </cd:element>
+
+ <!-- definitions for interface commands for language cs -->
+
+ <cd:commands>
+ <cd:command name='CAPPED' value='KAP'/>
+ <cd:command name='Character' value='Znak'/>
+ <cd:command name='Characters' value='Znaky'/>
+ <cd:command name='LABELTEXT' value='TEXTPOPISKU'/>
+ <cd:command name='MONTH' value='MESIC'/>
+ <cd:command name='Numbers' value='Cisla'/>
+ <cd:command name='Romannumerals' value='Rimskecislice'/>
+ <cd:command name='SmallCapped' value='Kap'/>
+ <cd:command name='SmallCaps' value='Kaps'/>
+ <cd:command name='WEEKDAY' value='VSEDNIDEN'/>
+ <cd:command name='WORD' value='SLOVO'/>
+ <cd:command name='WORDS' value='SLOVA'/>
+ <cd:command name='Word' value='Slovo'/>
+ <cd:command name='Words' value='Slova'/>
+ <cd:command name='about' value='oref'/>
+ <cd:command name='adaptlayout' value='prizpusobvzhled'/>
+ <cd:command name='arg' value='arg'/>
+ <cd:command name='at' value='pref'/>
+ <cd:command name='atleftmargin' value='atleftmargin'/>
+ <cd:command name='atpage' value='nastrane'/>
+ <cd:command name='atrightmargin' value='atrightmargin'/>
+ <cd:command name='background' value='pozadi'/>
+ <cd:command name='backspace' value='odsazenizleva'/>
+ <cd:command name='blackrule' value='cernalinka'/>
+ <cd:command name='blackrules' value='cernelinky'/>
+ <cd:command name='blank' value='preskoc'/>
+ <cd:command name='bookmark' value='zalozka'/>
+ <cd:command name='bottomdistance' value='vzdalenostspodku'/>
+ <cd:command name='bottomheight' value='vyskaspodku'/>
+ <cd:command name='bottomspace' value='bottomspace'/>
+ <cd:command name='but' value='spodek'/>
+ <cd:command name='button' value='tlacitko'/>
+ <cd:command name='bypassblocks' value='bypassblocks'/>
+ <cd:command name='character' value='znak'/>
+ <cd:command name='characters' value='znaky'/>
+ <cd:command name='chem' value='chem'/>
+ <cd:command name='clip' value='orez'/>
+ <cd:command name='clonefield' value='klonujpole'/>
+ <cd:command name='color' value='barva'/>
+ <cd:command name='colorbar' value='barevnalista'/>
+ <cd:command name='colorvalue' value='hodnotabarvy'/>
+ <cd:command name='column' value='sloupec'/>
+ <cd:command name='comment' value='komentar'/>
+ <cd:command name='comparecolorgroup' value='porovnejskupinubarev'/>
+ <cd:command name='comparepalet' value='porovnejpaletu'/>
+ <cd:command name='completepagenumber' value='completepagenumber'/>
+ <cd:command name='completeregister' value='completeregister'/>
+ <cd:command name='component' value='komponenta'/>
+ <cd:command name='convertnumber' value='konvertujcislo'/>
+ <cd:command name='copyfield' value='kopirujpole'/>
+ <cd:command name='correctwhitespace' value='korekcebilehomista'/>
+ <cd:command name='coupledocument' value='propojenydokument'/>
+ <cd:command name='couplemarking' value='propojeneznaceni'/>
+ <cd:command name='couplepage' value='parovastrana'/>
+ <cd:command name='couplepaper' value='dvoustrannypapir'/>
+ <cd:command name='coupleregister' value='propojenyrejstrik'/>
+ <cd:command name='crlf' value='crlf'/>
+ <cd:command name='currentdate' value='aktualnidatum'/>
+ <cd:command name='currentheadnumber' value='aktualnicislonadpisu'/>
+ <cd:command name='cutspace' value='cutspace'/>
+ <cd:command name='date' value='datum'/>
+ <cd:command name='decouplemarking' value='rozpojeneznaceni'/>
+ <cd:command name='decrementnumber' value='decrementnumber'/>
+ <cd:command name='define' value='definuj'/>
+ <cd:command name='defineaccent' value='definujakcent'/>
+ <cd:command name='defineblank' value='definujpreskok'/>
+ <cd:command name='defineblock' value='definujblok'/>
+ <cd:command name='definebodyfont' value='definujzakladnifont'/>
+ <cd:command name='definebodyfontenvironment' value='definujprostredizakladnihofontu'/>
+ <cd:command name='definebuffer' value='definujbuffer'/>
+ <cd:command name='definecharacter' value='definujznak'/>
+ <cd:command name='definecolor' value='definujbarvu'/>
+ <cd:command name='definecolorgroup' value='definujskupinubarev'/>
+ <cd:command name='definecolumnbreak' value='definecolumnbreak'/>
+ <cd:command name='definecolumnset' value='definecolumnset'/>
+ <cd:command name='definecombination' value='definecombination'/>
+ <cd:command name='definecombinedlist' value='definujkombinovanyseznam'/>
+ <cd:command name='definecommand' value='definujprikaz'/>
+ <cd:command name='defineconversion' value='definujkonverzi'/>
+ <cd:command name='definedescription' value='definujpopis'/>
+ <cd:command name='defineenumeration' value='definujvycet'/>
+ <cd:command name='definefield' value='definujpole'/>
+ <cd:command name='definefieldstack' value='definujzasobnikpoli'/>
+ <cd:command name='definefiguresymbol' value='definujobrazeksymbol'/>
+ <cd:command name='definefloat' value='definujplvouciobjekt'/>
+ <cd:command name='definefont' value='definujfont'/>
+ <cd:command name='definefontstyle' value='definujstylfontu'/>
+ <cd:command name='definefontsynonym' value='definujsynonumumfontu'/>
+ <cd:command name='defineframed' value='definujoramovani'/>
+ <cd:command name='defineframedtext' value='definujoramovanytext'/>
+ <cd:command name='definehbox' value='definujhbox'/>
+ <cd:command name='definehead' value='definujnadpis'/>
+ <cd:command name='defineindenting' value='definujodsazovani'/>
+ <cd:command name='defineinmargin' value='defineinmargin'/>
+ <cd:command name='defineinteractionmenu' value='definujinterakcnimenu'/>
+ <cd:command name='defineitemgroup' value='defineitemgroup'/>
+ <cd:command name='definelabel' value='definujpopisek'/>
+ <cd:command name='definelayer' value='definelayer'/>
+ <cd:command name='definelayout' value='definelayout'/>
+ <cd:command name='definelist' value='definujseznam'/>
+ <cd:command name='definelogo' value='definujlogo'/>
+ <cd:command name='definemainfield' value='definujhlavnipole'/>
+ <cd:command name='definemakeup' value='definujupravu'/>
+ <cd:command name='definemarking' value='definujznaceni'/>
+ <cd:command name='definemathalignment' value='definemathalignment'/>
+ <cd:command name='defineoutput' value='definujvystup'/>
+ <cd:command name='defineoverlay' value='definujprekryv'/>
+ <cd:command name='definepagebreak' value='definepagebreak'/>
+ <cd:command name='definepalet' value='definujpaletu'/>
+ <cd:command name='definepapersize' value='definujvelikostpapiru'/>
+ <cd:command name='defineparagraphs' value='definujodstavce'/>
+ <cd:command name='defineplacement' value='defineplacement'/>
+ <cd:command name='defineprofile' value='definujprofil'/>
+ <cd:command name='defineprogram' value='definujprogram'/>
+ <cd:command name='definerawfont' value='definerawfont'/>
+ <cd:command name='definereference' value='definujodkaz'/>
+ <cd:command name='definereferenceformat' value='definujformatodkazu'/>
+ <cd:command name='definereferencelist' value='definujseznamodkazu'/>
+ <cd:command name='defineregister' value='definujrejstrik'/>
+ <cd:command name='definerule' value='definerule'/>
+ <cd:command name='definesection' value='definujsekci'/>
+ <cd:command name='definesectionblock' value='definujbloksekce'/>
+ <cd:command name='definesorting' value='definujtrideni'/>
+ <cd:command name='definestartstop' value='definujstartstop'/>
+ <cd:command name='definestyle' value='definujstyl'/>
+ <cd:command name='definesubfield' value='definujpodpole'/>
+ <cd:command name='definesymbol' value='definujsymbol'/>
+ <cd:command name='definesynonyms' value='definujsynonyma'/>
+ <cd:command name='definetabletemplate' value='definujsablonutabulky'/>
+ <cd:command name='definetabulate' value='definujtabelaci'/>
+ <cd:command name='definetext' value='definujtext'/>
+ <cd:command name='definetextposition' value='definetextposition'/>
+ <cd:command name='definetextvariable' value='definetextvariable'/>
+ <cd:command name='definetype' value='definetype'/>
+ <cd:command name='definetyping' value='definujopis'/>
+ <cd:command name='defineversion' value='definujverzi'/>
+ <cd:command name='determineheadnumber' value='stanovcislonadpisu'/>
+ <cd:command name='determinelistcharacteristics' value='stanovcharakteristickuseznamu'/>
+ <cd:command name='determineregistercharacteristics' value='urcicharakteristikurejstriku'/>
+ <cd:command name='dimension' value='rozmer'/>
+ <cd:command name='disableinteractionmenu' value='zablokujinterakcnimenu'/>
+ <cd:command name='domicile' value='bydliste'/>
+ <cd:command name='donttest' value='zadnytest'/>
+ <cd:command name='edgedistance' value='vzdalenostokraje'/>
+ <cd:command name='edgewidth' value='sirkaokraje'/>
+ <cd:command name='emptylines' value='emptylines'/>
+ <cd:command name='environment' value='prostredi'/>
+ <cd:command name='externalfigure' value='externiobraz'/>
+ <cd:command name='fact' value='fakt'/>
+ <cd:command name='field' value='pole'/>
+ <cd:command name='fieldstack' value='zasobnikpoli'/>
+ <cd:command name='fillinfield' value='vyplnovepole'/>
+ <cd:command name='fillinline' value='vyplnovyradek'/>
+ <cd:command name='fillinrules' value='vyplnovelinky'/>
+ <cd:command name='fillintext' value='vyplnenytext'/>
+ <cd:command name='fitfield' value='prizpusobivepole'/>
+ <cd:command name='fixedspace' value='tvrdamezera'/>
+ <cd:command name='fixedspaces' value='tvrdemezery'/>
+ <cd:command name='followprofile' value='dodrzujprofil'/>
+ <cd:command name='followprofileversion' value='dodrzujverziprofilu'/>
+ <cd:command name='followversion' value='dodrzujverzi'/>
+ <cd:command name='footerdistance' value='vzdalenostupati'/>
+ <cd:command name='footerheight' value='vyskaupati'/>
+ <cd:command name='footnote' value='poznamkapodcarou'/>
+ <cd:command name='footnotetext' value='footnotetext'/>
+ <cd:command name='forceblocks' value='forceblocks'/>
+ <cd:command name='formulanumber' value='cislorovnice'/>
+ <cd:command name='fraction' value='zlomek'/>
+ <cd:command name='framed' value='oramovani'/>
+ <cd:command name='from' value='zref'/>
+ <cd:command name='getbuffer' value='ziskejbuffer'/>
+ <cd:command name='getmarking' value='ziskejznaceni'/>
+ <cd:command name='getnumber' value='getnumber'/>
+ <cd:command name='godown' value='jdidolu'/>
+ <cd:command name='goto' value='jdina'/>
+ <cd:command name='gotobox' value='jdinabox'/>
+ <cd:command name='gotopage' value='jdinastranu'/>
+ <cd:command name='graycolor' value='sedabarva'/>
+ <cd:command name='greyvalue' value='hodnotasedi'/>
+ <cd:command name='grid' value='mrizka'/>
+ <cd:command name='hairline' value='vlasovalinka'/>
+ <cd:command name='head' value='nadpis'/>
+ <cd:command name='headerdistance' value='vzdalenostzahlavi'/>
+ <cd:command name='headerheight' value='vyskazahlavi'/>
+ <cd:command name='headlevel' value='hlavniuroven'/>
+ <cd:command name='headnumber' value='cislonadpisu'/>
+ <cd:command name='headsym' value='headsym'/>
+ <cd:command name='headtext' value='texthlavicky'/>
+ <cd:command name='hideblocks' value='schovejbloky'/>
+ <cd:command name='high' value='vysoky'/>
+ <cd:command name='hl' value='hl'/>
+ <cd:command name='immediatebetweenlist' value='immediatebetweenlist'/>
+ <cd:command name='immediatetolist' value='immediatetolist'/>
+ <cd:command name='in' value='tref'/>
+ <cd:command name='incrementnumber' value='zvysujicicislo'/>
+ <cd:command name='indenting' value='odsazovani'/>
+ <cd:command name='inframed' value='zaramovani'/>
+ <cd:command name='infull' value='plnezneni'/>
+ <cd:command name='ininner' value='ininner'/>
+ <cd:command name='inleft' value='vlevo'/>
+ <cd:command name='inleftedge' value='nalevo'/>
+ <cd:command name='inleftmargin' value='nalevyokraj'/>
+ <cd:command name='inline' value='vradku'/>
+ <cd:command name='inmargin' value='naokraj'/>
+ <cd:command name='inmframed' value='mazaramovani'/>
+ <cd:command name='inneredgedistance' value='inneredgedistance'/>
+ <cd:command name='inneredgewidth' value='inneredgewidth'/>
+ <cd:command name='innermargindistance' value='innermargindistance'/>
+ <cd:command name='innermarginwidth' value='innermarginwidth'/>
+ <cd:command name='inothermargin' value='nadruhyokraj'/>
+ <cd:command name='inouter' value='inouter'/>
+ <cd:command name='inright' value='vpravo'/>
+ <cd:command name='inrightedge' value='napravo'/>
+ <cd:command name='inrightmargin' value='napravyokraj'/>
+ <cd:command name='installlanguage' value='instalacejazyka'/>
+ <cd:command name='interactionbar' value='interakcnilista'/>
+ <cd:command name='interactionbuttons' value='interakcnitlacitka'/>
+ <cd:command name='interactionmenu' value='interaktivnimenu'/>
+ <cd:command name='item' value='polozka'/>
+ <cd:command name='items' value='polozky'/>
+ <cd:command name='its' value='pol'/>
+ <cd:command name='keepblocks' value='zachovejbloky'/>
+ <cd:command name='label' value='poppisek'/>
+ <cd:command name='labels' value='popisky'/>
+ <cd:command name='labeltext' value='textpopisku'/>
+ <cd:command name='language' value='jazyk'/>
+ <cd:command name='leftaligned' value='zarovnanovlevo'/>
+ <cd:command name='leftedgedistance' value='vzdalenostlevehookraje'/>
+ <cd:command name='leftedgewidth' value='sirkalevehookraje'/>
+ <cd:command name='leftmargindistance' value='vzdalenostlevemarginalie'/>
+ <cd:command name='leftmarginwidth' value='sirkalevemarginalie'/>
+ <cd:command name='leg' value='leg'/>
+ <cd:command name='linewidth' value='tloustkacary'/>
+ <cd:command name='listheight' value='vyskaseznamu'/>
+ <cd:command name='listlength' value='delkaseznamu'/>
+ <cd:command name='listsymbol' value='listsymbol'/>
+ <cd:command name='listwidth' value='sirkaseznamu'/>
+ <cd:command name='logfields' value='zaznamovepole'/>
+ <cd:command name='lohi' value='nivy'/>
+ <cd:command name='low' value='nizky'/>
+ <cd:command name='macroname' value='jmeno'/>
+ <cd:command name='mainlanguage' value='hlavnijazyk'/>
+ <cd:command name='makeupheight' value='vyskasazby'/>
+ <cd:command name='makeupwidth' value='sirkasazby'/>
+ <cd:command name='mar' value='okr'/>
+ <cd:command name='margindistance' value='vzdalenostmarginalie'/>
+ <cd:command name='marginrule' value='marginalnilinka'/>
+ <cd:command name='margintext' value='marginalnitext'/>
+ <cd:command name='margintitle' value='marginalninadpis'/>
+ <cd:command name='marginwidth' value='sirkamarginalie'/>
+ <cd:command name='marginword' value='marginalnislovo'/>
+ <cd:command name='marking' value='znaceni'/>
+ <cd:command name='markversion' value='oznacverzi'/>
+ <cd:command name='mathematics' value='matematika'/>
+ <cd:command name='menubutton' value='tlacitkomenu'/>
+ <cd:command name='mframed' value='maoramovani'/>
+ <cd:command name='midaligned' value='zarovnanonastred'/>
+ <cd:command name='mirror' value='zrcadlit'/>
+ <cd:command name='month' value='mesic'/>
+ <cd:command name='moveformula' value='moveformula'/>
+ <cd:command name='moveongrid' value='premistinamrizku'/>
+ <cd:command name='movesidefloat' value='movesidefloat'/>
+ <cd:command name='navigating' value='navigating'/>
+ <cd:command name='nodimension' value='zadnyrozmer'/>
+ <cd:command name='noheaderandfooterlines' value='zadnezahlaviaupati'/>
+ <cd:command name='noindenting' value='zadneodsazovani'/>
+ <cd:command name='nolist' value='zadnyseznam'/>
+ <cd:command name='nomarking' value='zadneznaceni'/>
+ <cd:command name='nomoreblocks' value='zadnedalsibloky'/>
+ <cd:command name='nomorefiles' value='zadnedalsisoubory'/>
+ <cd:command name='nop' value='nop'/>
+ <cd:command name='nospace' value='zadnamezera'/>
+ <cd:command name='note' value='poznamka'/>
+ <cd:command name='notopandbottomlines' value='zadnehorniadolniradky'/>
+ <cd:command name='notsmallcapped' value='nokap'/>
+ <cd:command name='nowhitespace' value='zadnebilemisto'/>
+ <cd:command name='numberofsubpages' value='numberofsubpages'/>
+ <cd:command name='numbers' value='cisla'/>
+ <cd:command name='outeredgedistance' value='outeredgedistance'/>
+ <cd:command name='outeredgewidth' value='outeredgewidth'/>
+ <cd:command name='outermargindistance' value='outermargindistance'/>
+ <cd:command name='outermarginwidth' value='outermarginwidth'/>
+ <cd:command name='overbar' value='nadtrzeno'/>
+ <cd:command name='overbars' value='nadtrzeni'/>
+ <cd:command name='overstrike' value='preskrtnuto'/>
+ <cd:command name='overstrikes' value='preskrtnuti'/>
+ <cd:command name='packed' value='zhustene'/>
+ <cd:command name='page' value='strana'/>
+ <cd:command name='pagedepth' value='pagedepth'/>
+ <cd:command name='pagenumber' value='cislostrany'/>
+ <cd:command name='pageoffset' value='pageoffset'/>
+ <cd:command name='pagereference' value='odkaznastranu'/>
+ <cd:command name='pagetype' value='typstrany'/>
+ <cd:command name='paperheight' value='vyskapapiru'/>
+ <cd:command name='paperwidth' value='sirkapapiru'/>
+ <cd:command name='periods' value='tecky'/>
+ <cd:command name='plaatsruwelijst' value='placerawlist'/>
+ <cd:command name='placebookmarks' value='umistizalozky'/>
+ <cd:command name='placecombinedlist' value='umistikombinovanyseznam'/>
+ <cd:command name='placefloat' value='placefloat'/>
+ <cd:command name='placefootnotes' value='umistipoznamkypodcarou'/>
+ <cd:command name='placeformula' value='umistirovnici'/>
+ <cd:command name='placeheadnumber' value='placeheadnumber'/>
+ <cd:command name='placeheadtext' value='placeheadtext'/>
+ <cd:command name='placelegend' value='umistilegendu'/>
+ <cd:command name='placelist' value='umistiseznam'/>
+ <cd:command name='placelocalfootnotes' value='umistilokalnipoznamkypodcarou'/>
+ <cd:command name='placelogos' value='umistiloga'/>
+ <cd:command name='placeongrid' value='umistinamrizku'/>
+ <cd:command name='placeontopofeachother' value='umistinadsebe'/>
+ <cd:command name='placepagenumber' value='placepagenumber'/>
+ <cd:command name='placereferencelist' value='placereferencelist'/>
+ <cd:command name='placeregister' value='umistirejstrik'/>
+ <cd:command name='placerule' value='placerule'/>
+ <cd:command name='placesidebyside' value='umistivedlesebe'/>
+ <cd:command name='placesubformula' value='umistipodrovnici'/>
+ <cd:command name='placetextvariable' value='placetextvariable'/>
+ <cd:command name='position' value='pozice'/>
+ <cd:command name='positiontext' value='positiontext'/>
+ <cd:command name='printpaperheight' value='vyskatiskpapiru'/>
+ <cd:command name='printpaperwidth' value='sirkatiskpapiru'/>
+ <cd:command name='processblocks' value='zpracujbloky'/>
+ <cd:command name='processpage' value='zpracujstranu'/>
+ <cd:command name='product' value='produkt'/>
+ <cd:command name='program' value='program'/>
+ <cd:command name='project' value='projekt'/>
+ <cd:command name='publication' value='publikace'/>
+ <cd:command name='quotation' value='citace'/>
+ <cd:command name='quote' value='citovat'/>
+ <cd:command name='ran' value='ran'/>
+ <cd:command name='redo' value='opakovat'/>
+ <cd:command name='ref' value='ref'/>
+ <cd:command name='reference' value='odkaz'/>
+ <cd:command name='referral' value='odkaz'/>
+ <cd:command name='referraldate' value='odkaznadatum'/>
+ <cd:command name='referring' value='odkazujici'/>
+ <cd:command name='remark' value='oznaceni'/>
+ <cd:command name='reset' value='reset'/>
+ <cd:command name='resetmarking' value='resetznaceni'/>
+ <cd:command name='resetnumber' value='resetnumber'/>
+ <cd:command name='resettext' value='resettextcontent'/>
+ <cd:command name='rightaligned' value='zarovnanovpravo'/>
+ <cd:command name='rightedgedistance' value='vzdalenostpravehookraje'/>
+ <cd:command name='rightedgewidth' value='sirkapravehookraje'/>
+ <cd:command name='rightmargindistance' value='vzdalenostpravemarginalie'/>
+ <cd:command name='rightmarginwidth' value='sirkapravemarginalie'/>
+ <cd:command name='romannumerals' value='rimskecislice'/>
+ <cd:command name='rotate' value='otocit'/>
+ <cd:command name='scale' value='meritko'/>
+ <cd:command name='screen' value='obrazovka'/>
+ <cd:command name='selectblocks' value='vyberbloky'/>
+ <cd:command name='selectpaper' value='vyberpapir'/>
+ <cd:command name='selectversion' value='vyberverzi'/>
+ <cd:command name='setnumber' value='setnumber'/>
+ <cd:command name='settextcontent' value='settextcontent'/>
+ <cd:command name='settextvariable' value='settextvariable'/>
+ <cd:command name='setupalign' value='nastavzarovnani'/>
+ <cd:command name='setupanswerarea' value='setupanswerarea'/>
+ <cd:command name='setuparranging' value='nastavusporadani'/>
+ <cd:command name='setupbackground' value='nastavpozadi'/>
+ <cd:command name='setupbackgrounds' value='nastavpozadi'/>
+ <cd:command name='setupblackrules' value='nastavcernelinky'/>
+ <cd:command name='setupblank' value='nastavpreskok'/>
+ <cd:command name='setupblock' value='nastavblok'/>
+ <cd:command name='setupbodyfont' value='nastavzakladnifont'/>
+ <cd:command name='setupbodyfontenvironment' value='nastavprostredizakladnihofontu'/>
+ <cd:command name='setupbottom' value='nastavspodek'/>
+ <cd:command name='setupbottomtexts' value='nastavdolnitexty'/>
+ <cd:command name='setupbuffer' value='nastavbuffer'/>
+ <cd:command name='setupbuttons' value='nastavtlacitka'/>
+ <cd:command name='setupcapitals' value='nastavkapitalky'/>
+ <cd:command name='setupcaption' value='nastavpopisek'/>
+ <cd:command name='setupcaptions' value='nastavpopisky'/>
+ <cd:command name='setupclipping' value='nastavorez'/>
+ <cd:command name='setupcolor' value='nastavbarvu'/>
+ <cd:command name='setupcolors' value='nastavbarvy'/>
+ <cd:command name='setupcolumns' value='nastavsloupce'/>
+ <cd:command name='setupcolumnset' value='setupcolumnset'/>
+ <cd:command name='setupcolumnsetlines' value='setupcolumnsetlines'/>
+ <cd:command name='setupcolumnsetstart' value='setupcolumnsetstart'/>
+ <cd:command name='setupcombinations' value='nastavspojeni'/>
+ <cd:command name='setupcombinedlist' value='nastavkombinovanyseznam'/>
+ <cd:command name='setupcomment' value='nastavkomentar'/>
+ <cd:command name='setupdescriptions' value='nastavpopisy'/>
+ <cd:command name='setupenumerations' value='nastavvycty'/>
+ <cd:command name='setupexternalfigures' value='nastavexterniobrazy'/>
+ <cd:command name='setupfield' value='nastavpole'/>
+ <cd:command name='setupfields' value='nastavvsechnapole'/>
+ <cd:command name='setupfillinlines' value='nastavvyplnoveradky'/>
+ <cd:command name='setupfillinrules' value='nastavvyplnovelinky'/>
+ <cd:command name='setupfloat' value='nastavplvouciobjekt'/>
+ <cd:command name='setupfloats' value='nastavplvouciobjekty'/>
+ <cd:command name='setupfloatsplitting' value='nastavdeleniplvoucichobjektu'/>
+ <cd:command name='setupfooter' value='nastavupati'/>
+ <cd:command name='setupfootertexts' value='nastavtextyupati'/>
+ <cd:command name='setupfootnotedefinition' value='nastavdefinicipoznamekpodcarou'/>
+ <cd:command name='setupfootnotes' value='nastavpoznamkypodcarou'/>
+ <cd:command name='setupforms' value='setupforms'/>
+ <cd:command name='setupformulas' value='nastavrovnice'/>
+ <cd:command name='setupframed' value='nastavoramovani'/>
+ <cd:command name='setupframedtexts' value='nastavoramovanetexty'/>
+ <cd:command name='setuphead' value='nastavnadpis'/>
+ <cd:command name='setupheader' value='nastavzahlavi'/>
+ <cd:command name='setupheadertexts' value='nastavtextyzahlavi'/>
+ <cd:command name='setupheadnumber' value='nastavcislonadpisu'/>
+ <cd:command name='setupheads' value='nastavnadpisy'/>
+ <cd:command name='setupheadtext' value='nastavtexthlavicky'/>
+ <cd:command name='setuphyphenmark' value='nastavdelitko'/>
+ <cd:command name='setupindentations' value='nastavodsazeni'/>
+ <cd:command name='setupindenting' value='nastavodsazovani'/>
+ <cd:command name='setupinmargin' value='nastavmarginalie'/>
+ <cd:command name='setupinteraction' value='nastavinterakci'/>
+ <cd:command name='setupinteractionbar' value='nastavinterakcnilistu'/>
+ <cd:command name='setupinteractionmenu' value='nastavinterakcnimenu'/>
+ <cd:command name='setupinteractionscreen' value='nastavinterakcniobrazovku'/>
+ <cd:command name='setupinterlinespace' value='nastavmeziradkovoumezeru'/>
+ <cd:command name='setupitemgroup' value='setupitemgroup'/>
+ <cd:command name='setupitemgroups' value='nastavvycty'/>
+ <cd:command name='setupitems' value='nastavpolozky'/>
+ <cd:command name='setuplabeltext' value='nastavtextpopisku'/>
+ <cd:command name='setuplanguage' value='nastavjazyk'/>
+ <cd:command name='setuplayout' value='nastavvzhled'/>
+ <cd:command name='setuplegend' value='nastavlegendu'/>
+ <cd:command name='setuplinenumbering' value='nastavcislovaniradku'/>
+ <cd:command name='setuplines' value='nastavradky'/>
+ <cd:command name='setuplinewidth' value='nastavsirkucary'/>
+ <cd:command name='setuplist' value='nastavseznam'/>
+ <cd:command name='setupmakeup' value='nastavupravu'/>
+ <cd:command name='setupmarginblocks' value='nastavmarginalniblok'/>
+ <cd:command name='setupmarginrules' value='nastavmarginalnilinky'/>
+ <cd:command name='setupmarking' value='nastavznaceni'/>
+ <cd:command name='setupmathalignment' value='setupmathalignment'/>
+ <cd:command name='setupnarrower' value='nastavzuzeni'/>
+ <cd:command name='setupnumber' value='setupnumber'/>
+ <cd:command name='setupnumbering' value='nastavcislovani'/>
+ <cd:command name='setupoppositeplacing' value='nastavumisteniprotejsku'/>
+ <cd:command name='setupoutput' value='nastavvystup'/>
+ <cd:command name='setuppagecomment' value='nastavkomentarstrany'/>
+ <cd:command name='setuppagenumber' value='nastavcislostrany'/>
+ <cd:command name='setuppagenumbering' value='nastavcislovanistran'/>
+ <cd:command name='setuppagetransitions' value='nastavprechodstrany'/>
+ <cd:command name='setuppalet' value='nastavpaletu'/>
+ <cd:command name='setuppaper' value='setuppaper'/>
+ <cd:command name='setuppapersize' value='nastavvelikostpapiru'/>
+ <cd:command name='setupparagraphnumbering' value='nastavcislovaniodstavcu'/>
+ <cd:command name='setupparagraphs' value='nastavodstavce'/>
+ <cd:command name='setupplacement' value='setupplacement'/>
+ <cd:command name='setuppositioning' value='nastavumistovani'/>
+ <cd:command name='setupprofiles' value='nastavprofily'/>
+ <cd:command name='setupprograms' value='nastavprogramy'/>
+ <cd:command name='setuppublications' value='nastavpublikace'/>
+ <cd:command name='setupquote' value='nastavcitaci'/>
+ <cd:command name='setupreferencelist' value='nastavseznamodkazu'/>
+ <cd:command name='setupreferencing' value='nastavodkazovani'/>
+ <cd:command name='setupregister' value='nastavrejstrik'/>
+ <cd:command name='setuprotate' value='nastavotoceni'/>
+ <cd:command name='setuprule' value='setuprule'/>
+ <cd:command name='setups' value='nastaveni'/>
+ <cd:command name='setupscreens' value='nastavrastr'/>
+ <cd:command name='setupsection' value='nastavsekci'/>
+ <cd:command name='setupsectionblock' value='nastavbloksekce'/>
+ <cd:command name='setupsorting' value='nastavtrideni'/>
+ <cd:command name='setupspacing' value='nastavradkovani'/>
+ <cd:command name='setupstartstop' value='setupstartstop'/>
+ <cd:command name='setupstrut' value='setupstrut'/>
+ <cd:command name='setupsubpagenumber' value='nastavpodcislostrany'/>
+ <cd:command name='setupsymbolset' value='nastavsadusymbolu'/>
+ <cd:command name='setupsynchronization' value='nastavsynchronizaci'/>
+ <cd:command name='setupsynchronizationbar' value='nastavsynchronizacnilistu'/>
+ <cd:command name='setupsynonyms' value='nastavsynonyma'/>
+ <cd:command name='setupsystem' value='nastavsystem'/>
+ <cd:command name='setuptab' value='nastavtab'/>
+ <cd:command name='setuptables' value='nastavtabulky'/>
+ <cd:command name='setuptabulate' value='nastavtabelaci'/>
+ <cd:command name='setuptext' value='nastavtext'/>
+ <cd:command name='setuptextposition' value='setuptextposition'/>
+ <cd:command name='setuptextrules' value='nastavtextovelinky'/>
+ <cd:command name='setuptexttexts' value='nastavtexttexty'/>
+ <cd:command name='setuptextvariable' value='setuptextvariable'/>
+ <cd:command name='setupthinrules' value='nastavtenkelinky'/>
+ <cd:command name='setuptolerance' value='nastavtoleranci'/>
+ <cd:command name='setuptop' value='nastavhorejsek'/>
+ <cd:command name='setuptoptexts' value='nastavhornitexty'/>
+ <cd:command name='setuptype' value='nastavtype'/>
+ <cd:command name='setuptyping' value='nastavopis'/>
+ <cd:command name='setupunderbar' value='nastavpodtrzeni'/>
+ <cd:command name='setupurl' value='nastavurl'/>
+ <cd:command name='setupversions' value='nastavverze'/>
+ <cd:command name='setupwhitespace' value='nastavbilamista'/>
+ <cd:command name='showbodyfont' value='ukazzakladnifont'/>
+ <cd:command name='showbodyfontenvironment' value='ukazpostredizakladnihofontu'/>
+ <cd:command name='showcolor' value='ukazbarvu'/>
+ <cd:command name='showcolorgroup' value='ukazskupinubarev'/>
+ <cd:command name='showexternalfigures' value='ukazexterniobrazy'/>
+ <cd:command name='showfields' value='ukazpole'/>
+ <cd:command name='showframe' value='ukazramecek'/>
+ <cd:command name='showgrid' value='ukazmrizku'/>
+ <cd:command name='showlayout' value='ukazvzhled'/>
+ <cd:command name='showmakeup' value='ukazupravu'/>
+ <cd:command name='showpalet' value='ukazpaletu'/>
+ <cd:command name='showprint' value='ukazvytisk'/>
+ <cd:command name='showsetups' value='ukaznastaveni'/>
+ <cd:command name='showstruts' value='ukazpodpery'/>
+ <cd:command name='showsymbolset' value='ukazsadusymbolu'/>
+ <cd:command name='smallcapped' value='kap'/>
+ <cd:command name='someline' value='nejakyradek'/>
+ <cd:command name='somewhere' value='nekde'/>
+ <cd:command name='space' value='mezera'/>
+ <cd:command name='splitfloat' value='rozdelplvouciobjekt'/>
+ <cd:command name='startalignment' value='startzarovnavani'/>
+ <cd:command name='startbackground' value='startpozadi'/>
+ <cd:command name='startcoding' value='startkodovani'/>
+ <cd:command name='startcolor' value='startbarva'/>
+ <cd:command name='startcolumnmakeup' value='startcolumnmakeup'/>
+ <cd:command name='startcolumns' value='startsloupce'/>
+ <cd:command name='startcolumnset' value='startcolumnset'/>
+ <cd:command name='startcombination' value='startspojeni'/>
+ <cd:command name='startcomponent' value='startkomponenta'/>
+ <cd:command name='startdocument' value='startdokument'/>
+ <cd:command name='startenvironment' value='startprostredi'/>
+ <cd:command name='startfigure' value='startobraz'/>
+ <cd:command name='startglobal' value='startglobalni'/>
+ <cd:command name='startline' value='startradek'/>
+ <cd:command name='startlinecorrection' value='startkorekceradku'/>
+ <cd:command name='startlinenumbering' value='startcislovaniradku'/>
+ <cd:command name='startlines' value='startradky'/>
+ <cd:command name='startlocal' value='startlokalni'/>
+ <cd:command name='startlocalfootnotes' value='startlokalnipoznamkypodcarou'/>
+ <cd:command name='startmakeup' value='startuprava'/>
+ <cd:command name='startmarginblock' value='startmarginalniblok'/>
+ <cd:command name='startmarginrule' value='startmarginalnilinka'/>
+ <cd:command name='startnarrower' value='startzuzeni'/>
+ <cd:command name='startopposite' value='startprotejsek'/>
+ <cd:command name='startoverlay' value='startprekryv'/>
+ <cd:command name='startoverzicht' value='startprehled'/>
+ <cd:command name='startpacked' value='startzhustene'/>
+ <cd:command name='startpositioning' value='startumistovani'/>
+ <cd:command name='startproduct' value='startprodukt'/>
+ <cd:command name='startprofile' value='startprofil'/>
+ <cd:command name='startproject' value='startprojekt'/>
+ <cd:command name='startquotation' value='startcitace'/>
+ <cd:command name='startraster' value='startrastr'/>
+ <cd:command name='startsymbolset' value='startsadasymbolu'/>
+ <cd:command name='startsynchronization' value='startsynchronizace'/>
+ <cd:command name='starttable' value='starttabulka'/>
+ <cd:command name='starttables' value='starttabulky'/>
+ <cd:command name='starttext' value='starttext'/>
+ <cd:command name='starttextrule' value='starttextovalinka'/>
+ <cd:command name='startunpacked' value='startnezhustene'/>
+ <cd:command name='startversion' value='startverze'/>
+ <cd:command name='stopalignment' value='stopzarovnavani'/>
+ <cd:command name='stopbackground' value='stoppozadi'/>
+ <cd:command name='stopcoding' value='stopkodovani'/>
+ <cd:command name='stopcolor' value='stopbarva'/>
+ <cd:command name='stopcolumnmakeup' value='stopcolumnmakeup'/>
+ <cd:command name='stopcolumns' value='stopsloupce'/>
+ <cd:command name='stopcolumnset' value='stopcolumnset'/>
+ <cd:command name='stopcombination' value='stopspojeni'/>
+ <cd:command name='stopcomponent' value='stopkomponenta'/>
+ <cd:command name='stopdocument' value='stopdokument'/>
+ <cd:command name='stopenvironment' value='stopprostredi'/>
+ <cd:command name='stopglobal' value='stopglobalni'/>
+ <cd:command name='stopline' value='stopradek'/>
+ <cd:command name='stoplinecorrection' value='stopkorekceradku'/>
+ <cd:command name='stoplinenumbering' value='stopcislovaniradku'/>
+ <cd:command name='stoplines' value='stopradky'/>
+ <cd:command name='stoplocal' value='stoplokalni'/>
+ <cd:command name='stoplocalfootnotes' value='stoplokalnipoznamkypodcarou'/>
+ <cd:command name='stopmakeup' value='stopuprava'/>
+ <cd:command name='stopmarginblock' value='stopmarginalniblok'/>
+ <cd:command name='stopmarginrule' value='stopmarginalnilinka'/>
+ <cd:command name='stopnarrower' value='stopzuzeni'/>
+ <cd:command name='stopopposite' value='stopprotejsek'/>
+ <cd:command name='stopoverlay' value='stopprekryv'/>
+ <cd:command name='stopoverzicht' value='stopprehled'/>
+ <cd:command name='stoppacked' value='stopzhustene'/>
+ <cd:command name='stoppositioning' value='stopumistovani'/>
+ <cd:command name='stopproduct' value='stopprodukt'/>
+ <cd:command name='stopprofile' value='stopprofil'/>
+ <cd:command name='stopproject' value='stopprojekt'/>
+ <cd:command name='stopquotation' value='stopcitace'/>
+ <cd:command name='stopraster' value='stoprastr'/>
+ <cd:command name='stopsynchronization' value='stopsynchronizace'/>
+ <cd:command name='stoptable' value='stoptabulka'/>
+ <cd:command name='stoptables' value='stoptabulky'/>
+ <cd:command name='stoptext' value='stoptext'/>
+ <cd:command name='stoptextrule' value='stoptextovalinka'/>
+ <cd:command name='stopunpacked' value='stopnezhustene'/>
+ <cd:command name='stopversion' value='stopverze'/>
+ <cd:command name='stretched' value='roztazene'/>
+ <cd:command name='subformulanumber' value='cislopodrovnice'/>
+ <cd:command name='subpagenumber' value='subpagenumber'/>
+ <cd:command name='switchtobodyfont' value='prepninazakladnifont'/>
+ <cd:command name='switchtorawfont' value='switchtorawfont'/>
+ <cd:command name='sym' value='sym'/>
+ <cd:command name='symbol' value='symbol'/>
+ <cd:command name='synchronizationbar' value='synchronizacnilista'/>
+ <cd:command name='synchronize' value='synchronizovat'/>
+ <cd:command name='tab' value='tab'/>
+ <cd:command name='testcolumn' value='testcolumn'/>
+ <cd:command name='testpage' value='testpage'/>
+ <cd:command name='tex' value='tex'/>
+ <cd:command name='textheight' value='vyskatextu'/>
+ <cd:command name='textreference' value='odkaznatext'/>
+ <cd:command name='textrule' value='textovalinka'/>
+ <cd:command name='textvariable' value='textvariable'/>
+ <cd:command name='textwidth' value='sirkatextu'/>
+ <cd:command name='thinrule' value='tenkalinka'/>
+ <cd:command name='thinrules' value='tenkelinky'/>
+ <cd:command name='tooltip' value='bublinkovanapoveda'/>
+ <cd:command name='topdistance' value='vzdalenosthorejsku'/>
+ <cd:command name='topheight' value='vyskahorejsku'/>
+ <cd:command name='topspace' value='odsazenishora'/>
+ <cd:command name='totalnumberofpages' value='celkovypocetstran'/>
+ <cd:command name='translate' value='prelozit'/>
+ <cd:command name='txt' value='txt'/>
+ <cd:command name='typ' value='pis'/>
+ <cd:command name='type' value='opis'/>
+ <cd:command name='typebuffer' value='typebuffer'/>
+ <cd:command name='typefile' value='opissoubor'/>
+ <cd:command name='underbar' value='podtrzeno'/>
+ <cd:command name='underbars' value='podtrzeni'/>
+ <cd:command name='unitmeaning' value='vyznam'/>
+ <cd:command name='unknown' value='neznamo'/>
+ <cd:command name='useJSscripts' value='uzijJSscripts'/>
+ <cd:command name='useURL' value='uzijURL'/>
+ <cd:command name='useXMLfilter' value='useXMLfilter'/>
+ <cd:command name='useblocks' value='uzijbloky'/>
+ <cd:command name='usecommands' value='uzijprikazy'/>
+ <cd:command name='useencoding' value='uzijkodovani'/>
+ <cd:command name='useexternaldocument' value='uzijexternidokument'/>
+ <cd:command name='useexternalfigure' value='uzijexterniobraz'/>
+ <cd:command name='useexternalfile' value='uzijexternisoubor'/>
+ <cd:command name='useexternalfiles' value='uzijexternisoubory'/>
+ <cd:command name='useexternalsoundtrack' value='uzijexternizvuk'/>
+ <cd:command name='usemodule' value='uzijmodul'/>
+ <cd:command name='usemodules' value='uzijmoduly'/>
+ <cd:command name='usepath' value='uzijadresar'/>
+ <cd:command name='usereferences' value='uzijodkazy'/>
+ <cd:command name='usespecials' value='uzijspeciality'/>
+ <cd:command name='usesymbols' value='uzijsymbol'/>
+ <cd:command name='usetypescript' value='usetypescript'/>
+ <cd:command name='usetypescriptfile' value='usetypescriptfile'/>
+ <cd:command name='useurl' value='uzijurl'/>
+ <cd:command name='version' value='verze'/>
+ <cd:command name='vl' value='vl'/>
+ <cd:command name='weekday' value='vsedniden'/>
+ <cd:command name='whitespace' value='bilemisto'/>
+ <cd:command name='wordright' value='slovovpravo'/>
+ <cd:command name='writebetweenlist' value='zapismeziseznam'/>
+ <cd:command name='writetolist' value='zapisdoseznamu'/>
+ <cd:command name='writetoreferencelist' value='zapisdoseznamuodkazu'/>
+ <cd:command name='writetoregister' value='zapisdorejstriku'/>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/interface/keys-cz.xml b/Master/texmf-dist/tex/context/interface/keys-cz.xml
index 0cc0952215f..ef47e5f3f22 100644
--- a/Master/texmf-dist/tex/context/interface/keys-cz.xml
+++ b/Master/texmf-dist/tex/context/interface/keys-cz.xml
@@ -1,1656 +1,1590 @@
-<?xml version="1.0"?>
+<?xml version='1.0'?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="cz" version="2008.05.21 15:21">
+<cd:interface xmlns:cd='http://www.pragma-ade.com/commands' name='context' language='cz' version='2008.10.21 19:42'>
- <cd:variables>
- <cd:variable name="lesshyphenation" value="lesshyphenation"/>
- <cd:variable name="morehyphenation" value="morehyphenation"/>
- </cd:variables>
+ <!-- definitions for interface variables for language cz -->
- <cd:variables>
- <cd:variable name="one" value="jedna"/>
- <cd:variable name="two" value="dve"/>
- <cd:variable name="three" value="tri"/>
- <cd:variable name="four" value="ctyri"/>
- <cd:variable name="five" value="pet"/>
- </cd:variables>
+ <cd:variables>
+ <cd:variable name='Addition' value='Pridavek'/>
+ <cd:variable name='Balloon' value='Bublinka'/>
+ <cd:variable name='Character' value='Pismeno'/>
+ <cd:variable name='Characters' value='Pismena'/>
+ <cd:variable name='CloseDocument' value='ZavritDokument'/>
+ <cd:variable name='ExitViewer' value='UkoncitProhlizec'/>
+ <cd:variable name='FirstPage' value='PrvniStrana'/>
+ <cd:variable name='FitHeight' value='FitHeight'/>
+ <cd:variable name='FitWidth' value='FitWidth'/>
+ <cd:variable name='GotoPage' value='JdiNaStranku'/>
+ <cd:variable name='Greek' value='Recky'/>
+ <cd:variable name='Help' value='Napoveda'/>
+ <cd:variable name='HideField' value='SkryjPole'/>
+ <cd:variable name='HideLayer' value='HideLayer'/>
+ <cd:variable name='Key' value='Klavesa'/>
+ <cd:variable name='LastPage' value='PosledniStrana'/>
+ <cd:variable name='LoadForm' value='NacistFormular'/>
+ <cd:variable name='MONTH' value='MESIC'/>
+ <cd:variable name='New' value='Novy'/>
+ <cd:variable name='NextJump' value='NasledujiciSkok'/>
+ <cd:variable name='NextPage' value='DalsiStrana'/>
+ <cd:variable name='Numbers' value='Cisla'/>
+ <cd:variable name='OpenNamedDocument' value='OpenNamedDocument'/>
+ <cd:variable name='Paragraph' value='Odstavec'/>
+ <cd:variable name='PauseMovie' value='PozastavitFilm'/>
+ <cd:variable name='PauseRendering' value='PauseRendering'/>
+ <cd:variable name='PauseSound' value='PozastavitZvuk'/>
+ <cd:variable name='PreviousJump' value='PredchoziSkok'/>
+ <cd:variable name='PreviousPage' value='PredchoziStrana'/>
+ <cd:variable name='PrintDocument' value='VytisknoutDokument'/>
+ <cd:variable name='Query' value='Query'/>
+ <cd:variable name='QueryAgain' value='QueryAgain'/>
+ <cd:variable name='ResetForm' value='ResetFormulare'/>
+ <cd:variable name='ResumeMovie' value='PokracovatFilm'/>
+ <cd:variable name='ResumeRendering' value='ResumeRendering'/>
+ <cd:variable name='ResumeSound' value='PokracovatZvuk'/>
+ <cd:variable name='Romannumerals' value='Rimskecislice'/>
+ <cd:variable name='SaveDocument' value='UlozitDokument'/>
+ <cd:variable name='SaveForm' value='UlozitFormular'/>
+ <cd:variable name='SaveNamedDocument' value='SaveNamedDocument'/>
+ <cd:variable name='SearchAgain' value='HledatZnovu'/>
+ <cd:variable name='SearchDocument' value='ProhledatDokument'/>
+ <cd:variable name='ShowBookmarks' value='UkazZalozky'/>
+ <cd:variable name='ShowField' value='UkazPole'/>
+ <cd:variable name='ShowThumbs' value='UkazNahledy'/>
+ <cd:variable name='StartMovie' value='SpustitFilm'/>
+ <cd:variable name='StartRendering' value='StartRendering'/>
+ <cd:variable name='StartSound' value='StartZvuk'/>
+ <cd:variable name='StopMovie' value='ZastavitFilm'/>
+ <cd:variable name='StopRendering' value='StopRendering'/>
+ <cd:variable name='StopSound' value='StopZvuk'/>
+ <cd:variable name='SubmitForm' value='PoslatFormular'/>
+ <cd:variable name='ToggleLayer' value='ToggleLayer'/>
+ <cd:variable name='ToggleViewer' value='ZmenitProhlizec'/>
+ <cd:variable name='URL' value='URL'/>
+ <cd:variable name='VideLayer' value='VideLayer'/>
+ <cd:variable name='ViewerHelp' value='NapovedaProhlizece'/>
+ <cd:variable name='WEEKDAY' value='VSEDNIDEN'/>
+ <cd:variable name='WORD' value='SLOVO'/>
+ <cd:variable name='abbreviation' value='zkratka'/>
+ <cd:variable name='abbreviations' value='zkratky'/>
+ <cd:variable name='absolute' value='absolutni'/>
+ <cd:variable name='action' value='akce'/>
+ <cd:variable name='after' value='po'/>
+ <cd:variable name='all' value='vse'/>
+ <cd:variable name='always' value='vzdy'/>
+ <cd:variable name='appendices' value='dodatky'/>
+ <cd:variable name='appendix' value='dodatek'/>
+ <cd:variable name='april' value='duben'/>
+ <cd:variable name='atmargin' value='naokraji'/>
+ <cd:variable name='atpage' value='nastrance'/>
+ <cd:variable name='august' value='srpen'/>
+ <cd:variable name='auto' value='auto'/>
+ <cd:variable name='autointro' value='autouvod'/>
+ <cd:variable name='back' value='zpet'/>
+ <cd:variable name='background' value='pozadi'/>
+ <cd:variable name='backmatter' value='epilogy'/>
+ <cd:variable name='backpart' value='epilog'/>
+ <cd:variable name='backspace' value='zpetnamezera'/>
+ <cd:variable name='backward' value='zpet'/>
+ <cd:variable name='before' value='pred'/>
+ <cd:variable name='big' value='velke'/>
+ <cd:variable name='bigbodyfont' value='bigbodyfont'/>
+ <cd:variable name='bigpreference' value='vysokapriorita'/>
+ <cd:variable name='blank' value='prazdny'/>
+ <cd:variable name='blockquote' value='blockquote'/>
+ <cd:variable name='bodymatter' value='hlavnicasti'/>
+ <cd:variable name='bodypart' value='hlavnicast'/>
+ <cd:variable name='bold' value='tucne'/>
+ <cd:variable name='bolditalic' value='tucnekurzivni'/>
+ <cd:variable name='boldslanted' value='tucnesklonene'/>
+ <cd:variable name='bookmark' value='zalozka'/>
+ <cd:variable name='both' value='obe'/>
+ <cd:variable name='bottom' value='spodek'/>
+ <cd:variable name='brief' value='brief'/>
+ <cd:variable name='broad' value='siroky'/>
+ <cd:variable name='buffer' value='buffer'/>
+ <cd:variable name='by' value='skrz'/>
+ <cd:variable name='calligraphic' value='kaligraficke'/>
+ <cd:variable name='cap' value='kap'/>
+ <cd:variable name='capital' value='kapitalky'/>
+ <cd:variable name='center' value='center'/>
+ <cd:variable name='chapter' value='kapitola'/>
+ <cd:variable name='character' value='pismeno'/>
+ <cd:variable name='characters' value='pismena'/>
+ <cd:variable name='color' value='barevne'/>
+ <cd:variable name='column' value='column'/>
+ <cd:variable name='columns' value='sloupce'/>
+ <cd:variable name='command' value='prikaz'/>
+ <cd:variable name='commands' value='prikazy'/>
+ <cd:variable name='comment' value='komentar'/>
+ <cd:variable name='component' value='komponenta'/>
+ <cd:variable name='concept' value='koncept'/>
+ <cd:variable name='content' value='obsah'/>
+ <cd:variable name='contents' value='obsah'/>
+ <cd:variable name='continue' value='pokracovat'/>
+ <cd:variable name='controls' value='controls'/>
+ <cd:variable name='conversion' value='konverze'/>
+ <cd:variable name='current' value='aktualni'/>
+ <cd:variable name='cutspace' value='cutspace'/>
+ <cd:variable name='date' value='datum'/>
+ <cd:variable name='day' value='den'/>
+ <cd:variable name='december' value='prosinec'/>
+ <cd:variable name='default' value='implicitni'/>
+ <cd:variable name='depth' value='podlehloubky'/>
+ <cd:variable name='description' value='popis'/>
+ <cd:variable name='disable' value='zablokovat'/>
+ <cd:variable name='display' value='obrazovka'/>
+ <cd:variable name='dot' value='tecka'/>
+ <cd:variable name='doublesided' value='dvoustranny'/>
+ <cd:variable name='each' value='kazdy'/>
+ <cd:variable name='edge' value='hrana'/>
+ <cd:variable name='empty' value='prazdne'/>
+ <cd:variable name='endnote' value='endnote'/>
+ <cd:variable name='enumeration' value='vycet'/>
+ <cd:variable name='environment' value='prostredi'/>
+ <cd:variable name='even' value='sude'/>
+ <cd:variable name='external' value='externi'/>
+ <cd:variable name='fact' value='fakt'/>
+ <cd:variable name='february' value='unor'/>
+ <cd:variable name='figure' value='obrazek'/>
+ <cd:variable name='figures' value='obrazky'/>
+ <cd:variable name='file' value='soubor'/>
+ <cd:variable name='final' value='finalni'/>
+ <cd:variable name='first' value='prvni'/>
+ <cd:variable name='firstcolumn' value='firstcolumn'/>
+ <cd:variable name='firstpage' value='prvnistranka'/>
+ <cd:variable name='firstsubpage' value='prvnipodstranka'/>
+ <cd:variable name='fit' value='prizpusobive'/>
+ <cd:variable name='five' value='pet'/>
+ <cd:variable name='fix' value='fixuj'/>
+ <cd:variable name='fixed' value='fixne'/>
+ <cd:variable name='flexible' value='prizpusobive'/>
+ <cd:variable name='float' value='plvouciobjekt'/>
+ <cd:variable name='flushinner' value='flushinner'/>
+ <cd:variable name='flushleft' value='flushleft'/>
+ <cd:variable name='flushouter' value='flushouter'/>
+ <cd:variable name='flushright' value='flushright'/>
+ <cd:variable name='footer' value='upati'/>
+ <cd:variable name='footnote' value='poznamkapodcarou'/>
+ <cd:variable name='force' value='sila'/>
+ <cd:variable name='foreground' value='popredi'/>
+ <cd:variable name='formeel' value='formeel'/>
+ <cd:variable name='formula' value='rovnice'/>
+ <cd:variable name='formulae' value='rovnice'/>
+ <cd:variable name='forward' value='vpred'/>
+ <cd:variable name='four' value='ctyri'/>
+ <cd:variable name='frame' value='ramecek'/>
+ <cd:variable name='framedtext' value='oramovanytext'/>
+ <cd:variable name='friday' value='patek'/>
+ <cd:variable name='frontmatter' value='prednicasti'/>
+ <cd:variable name='frontpart' value='prednicast'/>
+ <cd:variable name='global' value='globalne'/>
+ <cd:variable name='graphic' value='graf'/>
+ <cd:variable name='graphics' value='grafy'/>
+ <cd:variable name='gray' value='seda'/>
+ <cd:variable name='greek' value='recky'/>
+ <cd:variable name='grid' value='mrizka'/>
+ <cd:variable name='halfline' value='pulradku'/>
+ <cd:variable name='handwritten' value='rukopisne'/>
+ <cd:variable name='hang' value='zaveseni'/>
+ <cd:variable name='hanging' value='visici'/>
+ <cd:variable name='head' value='hlavicka'/>
+ <cd:variable name='header' value='zahlavi'/>
+ <cd:variable name='height' value='vyska'/>
+ <cd:variable name='helptext' value='textnapovedy'/>
+ <cd:variable name='hencefore' value='vyse'/>
+ <cd:variable name='here' value='zde'/>
+ <cd:variable name='hereafter' value='nize'/>
+ <cd:variable name='hidden' value='skryte'/>
+ <cd:variable name='hiding' value='skryt'/>
+ <cd:variable name='high' value='vysoko'/>
+ <cd:variable name='horizontal' value='horizontalne'/>
+ <cd:variable name='hyphenated' value='hyphenated'/>
+ <cd:variable name='hz' value='hz'/>
+ <cd:variable name='inbetween' value='mezi'/>
+ <cd:variable name='index' value='rejstrik'/>
+ <cd:variable name='indices' value='rejstriky'/>
+ <cd:variable name='informeel' value='informeel'/>
+ <cd:variable name='inherit' value='inherit'/>
+ <cd:variable name='inleft' value='vlevo'/>
+ <cd:variable name='inmargin' value='naokraji'/>
+ <cd:variable name='inner' value='uvnitr'/>
+ <cd:variable name='inneredge' value='inneredge'/>
+ <cd:variable name='innermargin' value='innermargin'/>
+ <cd:variable name='inright' value='vpravo'/>
+ <cd:variable name='interaction' value='interakce'/>
+ <cd:variable name='interactionmenu' value='interaktivnimenu'/>
+ <cd:variable name='intermezzi' value='intermezzi'/>
+ <cd:variable name='intermezzo' value='intermezzo'/>
+ <cd:variable name='intext' value='dotextu'/>
+ <cd:variable name='intro' value='uvod'/>
+ <cd:variable name='italic' value='kurziva'/>
+ <cd:variable name='italicbold' value='kurzivnitucne'/>
+ <cd:variable name='item' value='polozka'/>
+ <cd:variable name='itemize' value='vycet'/>
+ <cd:variable name='its' value='pol'/>
+ <cd:variable name='january' value='leden'/>
+ <cd:variable name='joinedup' value='spojeno'/>
+ <cd:variable name='july' value='cervenec'/>
+ <cd:variable name='june' value='cerven'/>
+ <cd:variable name='keep' value='drzet'/>
+ <cd:variable name='knockout' value='knockout'/>
+ <cd:variable name='label' value='popisek'/>
+ <cd:variable name='landscape' value='nasirku'/>
+ <cd:variable name='last' value='posledni'/>
+ <cd:variable name='lastcolumn' value='lastcolumn'/>
+ <cd:variable name='lastpage' value='poslednistrana'/>
+ <cd:variable name='lastpagenumber' value='lastpagenumber'/>
+ <cd:variable name='lastsubpage' value='poslaednipodstranka'/>
+ <cd:variable name='left' value='vlevo'/>
+ <cd:variable name='leftedge' value='levahrana'/>
+ <cd:variable name='lefthanging' value='lefthanging'/>
+ <cd:variable name='leftmargin' value='levyokraj'/>
+ <cd:variable name='leftpage' value='levastranka'/>
+ <cd:variable name='legend' value='legenda'/>
+ <cd:variable name='lesshyphenation' value='lesshyphenation'/>
+ <cd:variable name='line' value='radek'/>
+ <cd:variable name='linenote' value='linenote'/>
+ <cd:variable name='lines' value='radky'/>
+ <cd:variable name='list' value='seznam'/>
+ <cd:variable name='local' value='lokalne'/>
+ <cd:variable name='localenvironment' value='lokalnihoprostredi'/>
+ <cd:variable name='logo' value='logo'/>
+ <cd:variable name='logos' value='loga'/>
+ <cd:variable name='lohi' value='nivy'/>
+ <cd:variable name='loose' value='uvolnene'/>
+ <cd:variable name='low' value='nizko'/>
+ <cd:variable name='ls' value='ls'/>
+ <cd:variable name='makeup' value='zlom'/>
+ <cd:variable name='mar' value='mar'/>
+ <cd:variable name='march' value='brezen'/>
+ <cd:variable name='margin' value='marginalie'/>
+ <cd:variable name='marginedge' value='textovahrana'/>
+ <cd:variable name='margintitle' value='titulmarginalie'/>
+ <cd:variable name='marking' value='znaceni'/>
+ <cd:variable name='mathalignment' value='mathalignment'/>
+ <cd:variable name='mathcases' value='mathcases'/>
+ <cd:variable name='mathmatrix' value='mathmatrix'/>
+ <cd:variable name='max' value='max'/>
+ <cd:variable name='may' value='kveten'/>
+ <cd:variable name='mediaeval' value='stredoveky'/>
+ <cd:variable name='medium' value='stredni'/>
+ <cd:variable name='middle' value='nastred'/>
+ <cd:variable name='min' value='min'/>
+ <cd:variable name='minheight' value='minvyska'/>
+ <cd:variable name='minwidth' value='minsirka'/>
+ <cd:variable name='mirrored' value='zrcadleno'/>
+ <cd:variable name='monday' value='pondeli'/>
+ <cd:variable name='mono' value='mono'/>
+ <cd:variable name='month' value='mesic'/>
+ <cd:variable name='morehyphenation' value='morehyphenation'/>
+ <cd:variable name='name' value='jmeno'/>
+ <cd:variable name='narrow' value='uzky'/>
+ <cd:variable name='negative' value='negativ'/>
+ <cd:variable name='never' value='nikdy'/>
+ <cd:variable name='new' value='novy'/>
+ <cd:variable name='next' value='dalsi'/>
+ <cd:variable name='nextevenpage' value='dalsisudastranka'/>
+ <cd:variable name='nextoddpage' value='dalsilichastranka'/>
+ <cd:variable name='nextpage' value='dalsistranka'/>
+ <cd:variable name='nextsubpage' value='dalsipodstranka'/>
+ <cd:variable name='no' value='ne'/>
+ <cd:variable name='nocheck' value='nocheck'/>
+ <cd:variable name='nofit' value='nofit'/>
+ <cd:variable name='nogrid' value='nogrid'/>
+ <cd:variable name='nohz' value='nohz'/>
+ <cd:variable name='nomarking' value='zadneznaceni'/>
+ <cd:variable name='none' value='zadny'/>
+ <cd:variable name='nonumber' value='nonumber'/>
+ <cd:variable name='normal' value='normalni'/>
+ <cd:variable name='nospacing' value='nospacing'/>
+ <cd:variable name='not' value='ne'/>
+ <cd:variable name='nothanging' value='nothanging'/>
+ <cd:variable name='nothyphenated' value='nothyphenated'/>
+ <cd:variable name='november' value='listopad'/>
+ <cd:variable name='nowhere' value='nikde'/>
+ <cd:variable name='nowhite' value='zadnabila'/>
+ <cd:variable name='number' value='cislo'/>
+ <cd:variable name='numbers' value='cisla'/>
+ <cd:variable name='october' value='rijen'/>
+ <cd:variable name='odd' value='liche'/>
+ <cd:variable name='off' value='vyp'/>
+ <cd:variable name='offset' value='offset'/>
+ <cd:variable name='old' value='old'/>
+ <cd:variable name='on' value='zap'/>
+ <cd:variable name='one' value='jedna'/>
+ <cd:variable name='opposite' value='naproti'/>
+ <cd:variable name='outer' value='vnejsi'/>
+ <cd:variable name='outeredge' value='outeredge'/>
+ <cd:variable name='outermargin' value='outermargin'/>
+ <cd:variable name='overlay' value='prekryv'/>
+ <cd:variable name='overprint' value='overprint'/>
+ <cd:variable name='packed' value='zhustene'/>
+ <cd:variable name='page' value='stranka'/>
+ <cd:variable name='pagecomment' value='komentarstranky'/>
+ <cd:variable name='pagenumber' value='cislostranky'/>
+ <cd:variable name='paper' value='papir'/>
+ <cd:variable name='paragraph' value='odstavec'/>
+ <cd:variable name='part' value='cast'/>
+ <cd:variable name='positive' value='positiv'/>
+ <cd:variable name='postponing' value='odlozit'/>
+ <cd:variable name='postscript' value='postscript'/>
+ <cd:variable name='preference' value='nastaveni'/>
+ <cd:variable name='preview' value='nahled'/>
+ <cd:variable name='previous' value='predchozi'/>
+ <cd:variable name='previousevenpage' value='predchozisudastranka'/>
+ <cd:variable name='previousoddpage' value='predchozilichastranka'/>
+ <cd:variable name='previouspage' value='predchozistranka'/>
+ <cd:variable name='previoussubpage' value='predchozipodstranka'/>
+ <cd:variable name='printable' value='tisknutelne'/>
+ <cd:variable name='process' value='process'/>
+ <cd:variable name='product' value='produkt'/>
+ <cd:variable name='program' value='program'/>
+ <cd:variable name='project' value='projekt'/>
+ <cd:variable name='protected' value='chranene'/>
+ <cd:variable name='quadruple' value='ctyrnasobny'/>
+ <cd:variable name='quotation' value='citace'/>
+ <cd:variable name='quote' value='citovat'/>
+ <cd:variable name='ran' value='rozsah'/>
+ <cd:variable name='random' value='nahodny'/>
+ <cd:variable name='readonly' value='pouzeprocteni'/>
+ <cd:variable name='rectangular' value='pravouhly'/>
+ <cd:variable name='referral' value='znacka'/>
+ <cd:variable name='register' value='rejstrik'/>
+ <cd:variable name='regular' value='pravidelne'/>
+ <cd:variable name='rekening' value='rekening'/>
+ <cd:variable name='relative' value='relativni'/>
+ <cd:variable name='repeat' value='opakovat'/>
+ <cd:variable name='required' value='pozadovane'/>
+ <cd:variable name='reset' value='reset'/>
+ <cd:variable name='reverse' value='reverse'/>
+ <cd:variable name='right' value='vpravo'/>
+ <cd:variable name='rightedge' value='pravahrana'/>
+ <cd:variable name='righthanging' value='righthanging'/>
+ <cd:variable name='rightmargin' value='pravyokraj'/>
+ <cd:variable name='rightpage' value='pravastranka'/>
+ <cd:variable name='roman' value='antikva'/>
+ <cd:variable name='romannumerals' value='rimskecislice'/>
+ <cd:variable name='rotate' value='otoc'/>
+ <cd:variable name='rotated' value='otoceno'/>
+ <cd:variable name='round' value='zaobleny'/>
+ <cd:variable name='row' value='row'/>
+ <cd:variable name='rule' value='linka'/>
+ <cd:variable name='samepage' value='samepage'/>
+ <cd:variable name='sans' value='sans'/>
+ <cd:variable name='sansbold' value='sanstucne'/>
+ <cd:variable name='sansserif' value='bezserifu'/>
+ <cd:variable name='saturday' value='sobota'/>
+ <cd:variable name='screen' value='rastr'/>
+ <cd:variable name='section' value='sekce'/>
+ <cd:variable name='sectionblockenvironment' value='sectionblockenvironment'/>
+ <cd:variable name='sectionnumber' value='cislooddilu'/>
+ <cd:variable name='see' value='viz'/>
+ <cd:variable name='september' value='zari'/>
+ <cd:variable name='serif' value='serif'/>
+ <cd:variable name='serried' value='semknuto'/>
+ <cd:variable name='setups' value='einstellungen'/>
+ <cd:variable name='sheet' value='sheet'/>
+ <cd:variable name='singlesided' value='jednostranne'/>
+ <cd:variable name='slanted' value='sklonene'/>
+ <cd:variable name='slantedbold' value='sklonenetucne'/>
+ <cd:variable name='small' value='male'/>
+ <cd:variable name='smallbodyfont' value='smallbodyfont'/>
+ <cd:variable name='smallbold' value='maletucne'/>
+ <cd:variable name='smallbolditalic' value='maletucnekurzivni'/>
+ <cd:variable name='smallboldslanted' value='maletucnesklonene'/>
+ <cd:variable name='smallcaps' value='kapitalky'/>
+ <cd:variable name='smallitalic' value='malekurzivni'/>
+ <cd:variable name='smallitalicbold' value='malekurzivnitucne'/>
+ <cd:variable name='smallnormal' value='malenormalni'/>
+ <cd:variable name='smallslanted' value='malesklonene'/>
+ <cd:variable name='smallslantedbold' value='malesklonenetucne'/>
+ <cd:variable name='smalltype' value='maletype'/>
+ <cd:variable name='somewhere' value='nekde'/>
+ <cd:variable name='sorted' value='tridene'/>
+ <cd:variable name='space' value='mezera'/>
+ <cd:variable name='spacing' value='mezerovani'/>
+ <cd:variable name='speech' value='speech'/>
+ <cd:variable name='split' value='split'/>
+ <cd:variable name='spot' value='spot'/>
+ <cd:variable name='standard' value='standardni'/>
+ <cd:variable name='start' value='start'/>
+ <cd:variable name='sticker' value='sticker'/>
+ <cd:variable name='stop' value='stop'/>
+ <cd:variable name='stopper' value='predel'/>
+ <cd:variable name='stretch' value='natahnout'/>
+ <cd:variable name='strict' value='striktni'/>
+ <cd:variable name='strong' value='sterk'/>
+ <cd:variable name='strut' value='strut'/>
+ <cd:variable name='sub' value='pod'/>
+ <cd:variable name='subbackward' value='podzpet'/>
+ <cd:variable name='subformula' value='subrovnice'/>
+ <cd:variable name='subforward' value='podvpred'/>
+ <cd:variable name='subject' value='tema'/>
+ <cd:variable name='subpage' value='podstranka'/>
+ <cd:variable name='subsection' value='podsekce'/>
+ <cd:variable name='subsubject' value='podtema'/>
+ <cd:variable name='subsubsection' value='podpodsekce'/>
+ <cd:variable name='subsubsubject' value='podpodtema'/>
+ <cd:variable name='subsubsubsection' value='podpodpodsekce'/>
+ <cd:variable name='subsubsubsubject' value='podpodpodtema'/>
+ <cd:variable name='subsubsubsubsection' value='podpodpodpodsekce'/>
+ <cd:variable name='subsubsubsubsubject' value='podpodpodpodtema'/>
+ <cd:variable name='subsubsubsubsubsection' value='podpodpodpodpodsekce'/>
+ <cd:variable name='subsubsubsubsubsubject' value='podpodpodpodpodtema'/>
+ <cd:variable name='sunday' value='nedele'/>
+ <cd:variable name='support' value='podpora'/>
+ <cd:variable name='sym' value='sym'/>
+ <cd:variable name='symbol' value='symbol'/>
+ <cd:variable name='synchronize' value='synchronize'/>
+ <cd:variable name='system' value='system'/>
+ <cd:variable name='table' value='tabulka'/>
+ <cd:variable name='tablehead' value='zahlavitabulky'/>
+ <cd:variable name='tables' value='tabulky'/>
+ <cd:variable name='tabletail' value='konectabulky'/>
+ <cd:variable name='tabulate' value='tabelator'/>
+ <cd:variable name='tabulatehead' value='tabulatehead'/>
+ <cd:variable name='tabulatetail' value='tabulatetail'/>
+ <cd:variable name='tall' value='vysoko'/>
+ <cd:variable name='teletype' value='strojopis'/>
+ <cd:variable name='temporary' value='docasne'/>
+ <cd:variable name='test' value='test'/>
+ <cd:variable name='text' value='text'/>
+ <cd:variable name='three' value='tri'/>
+ <cd:variable name='thursday' value='ctvrtek'/>
+ <cd:variable name='title' value='titul'/>
+ <cd:variable name='toggle' value='toggle'/>
+ <cd:variable name='tolerant' value='tolerantni'/>
+ <cd:variable name='top' value='vrsek'/>
+ <cd:variable name='tuesday' value='utery'/>
+ <cd:variable name='two' value='dve'/>
+ <cd:variable name='txt' value='txt'/>
+ <cd:variable name='type' value='opis'/>
+ <cd:variable name='typing' value='typing'/>
+ <cd:variable name='unavailable' value='nedostupne'/>
+ <cd:variable name='unit' value='jednotka'/>
+ <cd:variable name='units' value='jednotky'/>
+ <cd:variable name='unknown' value='neznamy'/>
+ <cd:variable name='unpacked' value='rozbalene'/>
+ <cd:variable name='url' value='url'/>
+ <cd:variable name='used' value='uzito'/>
+ <cd:variable name='value' value='hodnota'/>
+ <cd:variable name='vertical' value='vertikalne'/>
+ <cd:variable name='very' value='velmi'/>
+ <cd:variable name='verystrict' value='velmistriktni'/>
+ <cd:variable name='verytolerant' value='velmitolerantni'/>
+ <cd:variable name='weak' value='zwak'/>
+ <cd:variable name='wednesday' value='streda'/>
+ <cd:variable name='week' value='tyden'/>
+ <cd:variable name='weekday' value='vsedniden'/>
+ <cd:variable name='white' value='bily'/>
+ <cd:variable name='wide' value='siroce'/>
+ <cd:variable name='width' value='sirka'/>
+ <cd:variable name='xml' value='xml'/>
+ <cd:variable name='year' value='rok'/>
+ <cd:variable name='yes' value='ano'/>
+ </cd:variable>
- <cd:variables>
- <cd:variable name="environment" value="prostredi"/>
- <cd:variable name="component" value="komponenta"/>
- <cd:variable name="product" value="produkt"/>
- <cd:variable name="project" value="projekt"/>
- </cd:variables>
+ <!-- definitions for interface constants for language cz -->
- <cd:variables>
- <cd:variable name="sunday" value="nedele"/>
- <cd:variable name="monday" value="pondeli"/>
- <cd:variable name="tuesday" value="utery"/>
- <cd:variable name="wednesday" value="streda"/>
- <cd:variable name="thursday" value="ctvrtek"/>
- <cd:variable name="friday" value="patek"/>
- <cd:variable name="saturday" value="sobota"/>
- </cd:variables>
+ <cd:constants>
+ <cd:constant name='action' value='akce'/>
+ <cd:constant name='address' value='adresa'/>
+ <cd:constant name='after' value='po'/>
+ <cd:constant name='afterhead' value='pohlavicce'/>
+ <cd:constant name='afterkey' value='klavesapo'/>
+ <cd:constant name='align' value='zarovnani'/>
+ <cd:constant name='aligncharacter' value='aligncharacter'/>
+ <cd:constant name='alignmentcharacter' value='alignmentcharacter'/>
+ <cd:constant name='aligntitle' value='zarovnejtitul'/>
+ <cd:constant name='alternative' value='alternativa'/>
+ <cd:constant name='apa' value='apa'/>
+ <cd:constant name='arrow' value='sipka'/>
+ <cd:constant name='at' value='u'/>
+ <cd:constant name='author' value='autor'/>
+ <cd:constant name='auto' value='auto'/>
+ <cd:constant name='autofile' value='autofile'/>
+ <cd:constant name='autofocus' value='autoostreni'/>
+ <cd:constant name='autohang' value='autohang'/>
+ <cd:constant name='autostrut' value='autostrut'/>
+ <cd:constant name='autowidth' value='autosirka'/>
+ <cd:constant name='axis' value='osa'/>
+ <cd:constant name='background' value='pozadi'/>
+ <cd:constant name='backgroundcolor' value='barvapozadi'/>
+ <cd:constant name='backgroundcorner' value='rohpozadi'/>
+ <cd:constant name='backgrounddepth' value='hloubkapozadi'/>
+ <cd:constant name='backgroundoffset' value='offsetpozadi'/>
+ <cd:constant name='backgroundradius' value='polomerpozadi'/>
+ <cd:constant name='backgroundscreen' value='rastrpozadi'/>
+ <cd:constant name='backspace' value='zpetnamezera'/>
+ <cd:constant name='balance' value='rovnovaha'/>
+ <cd:constant name='before' value='pred'/>
+ <cd:constant name='beforehead' value='predhlavickou'/>
+ <cd:constant name='bet' value='bet'/>
+ <cd:constant name='big' value='velky'/>
+ <cd:constant name='blank' value='prazdny'/>
+ <cd:constant name='blockway' value='dobloku'/>
+ <cd:constant name='bodyfont' value='zakladnifont'/>
+ <cd:constant name='bookmark' value='zalozka'/>
+ <cd:constant name='bottom' value='spodek'/>
+ <cd:constant name='bottomdistance' value='vzdalenostspodku'/>
+ <cd:constant name='bottomframe' value='ramecekdole'/>
+ <cd:constant name='bottomoffset' value='offsetspodku'/>
+ <cd:constant name='bottomspace' value='bottomspace'/>
+ <cd:constant name='bottomstate' value='statusspodku'/>
+ <cd:constant name='cache' value='cache'/>
+ <cd:constant name='calculate' value='pocitat'/>
+ <cd:constant name='ccommand' value='cprikaz'/>
+ <cd:constant name='click' value='klik'/>
+ <cd:constant name='clickin' value='klikuvnitr'/>
+ <cd:constant name='clickout' value='klikvne'/>
+ <cd:constant name='clipoffset' value='clipoffset'/>
+ <cd:constant name='closeaction' value='zavriakci'/>
+ <cd:constant name='closecommand' value='closecommand'/>
+ <cd:constant name='closepageaction' value='akcezavrenistranky'/>
+ <cd:constant name='closesymbol' value='closesymbol'/>
+ <cd:constant name='color' value='barva'/>
+ <cd:constant name='column' value='sloupec'/>
+ <cd:constant name='columndistance' value='vzdalenostsloupcu'/>
+ <cd:constant name='columns' value='sloupce'/>
+ <cd:constant name='command' value='prikaz'/>
+ <cd:constant name='commandafter' value='prikazpo'/>
+ <cd:constant name='commandbefore' value='predchoziprikaz'/>
+ <cd:constant name='commands' value='prikazy'/>
+ <cd:constant name='component' value='component'/>
+ <cd:constant name='compoundhyphen' value='compoundhyphen'/>
+ <cd:constant name='compress' value='compress'/>
+ <cd:constant name='continue' value='pokracovat'/>
+ <cd:constant name='contrastcolor' value='kontrastnibarva'/>
+ <cd:constant name='controls' value='controls'/>
+ <cd:constant name='conversion' value='konverze'/>
+ <cd:constant name='convertfile' value='konverzesouboru'/>
+ <cd:constant name='corner' value='roh'/>
+ <cd:constant name='coupling' value='propojeni'/>
+ <cd:constant name='couplingway' value='zpusobpropojeni'/>
+ <cd:constant name='criterium' value='kriterium'/>
+ <cd:constant name='current' value='aktualni'/>
+ <cd:constant name='cutspace' value='cutspace'/>
+ <cd:constant name='dash' value='pomlcka'/>
+ <cd:constant name='dat' value='dat'/>
+ <cd:constant name='date' value='datum'/>
+ <cd:constant name='deepnumbercommand' value='deepnumbercommand'/>
+ <cd:constant name='deeptextcommand' value='deeptextcommand'/>
+ <cd:constant name='default' value='implicitni'/>
+ <cd:constant name='delay' value='prodleva'/>
+ <cd:constant name='depth' value='hloubka'/>
+ <cd:constant name='depthcorrection' value='korekcehloubky'/>
+ <cd:constant name='direction' value='smer'/>
+ <cd:constant name='directory' value='adresar'/>
+ <cd:constant name='display' value='obrazovka'/>
+ <cd:constant name='distance' value='vzdalenost'/>
+ <cd:constant name='dot' value='tecka'/>
+ <cd:constant name='doublesided' value='oboustranne'/>
+ <cd:constant name='dummy' value='dummy'/>
+ <cd:constant name='dx' value='dx'/>
+ <cd:constant name='dy' value='dy'/>
+ <cd:constant name='edge' value='hrana'/>
+ <cd:constant name='edgedistance' value='vzdalenosthrany'/>
+ <cd:constant name='empty' value='prazdne'/>
+ <cd:constant name='equalheight' value='equalheight'/>
+ <cd:constant name='equalwidth' value='equalwidth'/>
+ <cd:constant name='escape' value='escape'/>
+ <cd:constant name='evenmargin' value='sudamarginalie'/>
+ <cd:constant name='expansion' value='expanzen'/>
+ <cd:constant name='extras' value='extras'/>
+ <cd:constant name='factor' value='faktor'/>
+ <cd:constant name='fallback' value='fallback'/>
+ <cd:constant name='family' value='rodina'/>
+ <cd:constant name='fieldbackgroundcolor' value='barvapozadipole'/>
+ <cd:constant name='fieldframecolor' value='barvarameckupole'/>
+ <cd:constant name='fieldlayer' value='fieldlayer'/>
+ <cd:constant name='fieldoffset' value='offsetpole'/>
+ <cd:constant name='file' value='soubor'/>
+ <cd:constant name='focus' value='zaostreni'/>
+ <cd:constant name='focusin' value='focusin'/>
+ <cd:constant name='focusout' value='focusout'/>
+ <cd:constant name='footer' value='upati'/>
+ <cd:constant name='footerdistance' value='vzdalenostupati'/>
+ <cd:constant name='footerstate' value='statusupati'/>
+ <cd:constant name='foregroundcolor' value='foregroundcolor'/>
+ <cd:constant name='foregroundstyle' value='foregroundstyle'/>
+ <cd:constant name='format' value='formatovat'/>
+ <cd:constant name='frame' value='ramecek'/>
+ <cd:constant name='framecolor' value='barvaramecku'/>
+ <cd:constant name='framecorner' value='rohramecku'/>
+ <cd:constant name='framedepth' value='hloubkaramecku'/>
+ <cd:constant name='frameoffset' value='offsetramecku'/>
+ <cd:constant name='frameradius' value='polomerramecku'/>
+ <cd:constant name='frames' value='ramecky'/>
+ <cd:constant name='from' value='z'/>
+ <cd:constant name='get' value='ziskat'/>
+ <cd:constant name='global' value='globalne'/>
+ <cd:constant name='grid' value='mrizka'/>
+ <cd:constant name='hang' value='zaveseni'/>
+ <cd:constant name='headcolor' value='barvahlavicky'/>
+ <cd:constant name='headcommand' value='headcommand'/>
+ <cd:constant name='headconversion' value='konverzehlavicky'/>
+ <cd:constant name='header' value='zahlavi'/>
+ <cd:constant name='headerdistance' value='vzdalenostzahlavi'/>
+ <cd:constant name='headerstate' value='statuszahlavi'/>
+ <cd:constant name='headlabel' value='popisekhlavicky'/>
+ <cd:constant name='headnumber' value='cislonadpisu'/>
+ <cd:constant name='headstyle' value='stylhlavicky'/>
+ <cd:constant name='height' value='vyska'/>
+ <cd:constant name='hfactor' value='vfaktor'/>
+ <cd:constant name='hfil' value='hfil'/>
+ <cd:constant name='hoffset' value='hoffset'/>
+ <cd:constant name='horoffset' value='horoffset'/>
+ <cd:constant name='hyphen' value='hyphen'/>
+ <cd:constant name='icommand' value='iprikaz'/>
+ <cd:constant name='in' value='v'/>
+ <cd:constant name='inbetween' value='mezi'/>
+ <cd:constant name='increment' value='zvysit'/>
+ <cd:constant name='incrementnumber' value='zvysujicicislo'/>
+ <cd:constant name='indenting' value='odsazovani'/>
+ <cd:constant name='indentnext' value='odsadpristi'/>
+ <cd:constant name='indicator' value='indikator'/>
+ <cd:constant name='inner' value='vnitrni'/>
+ <cd:constant name='innermargin' value='innermargin'/>
+ <cd:constant name='inputfile' value='inputfile'/>
+ <cd:constant name='interaction' value='interakce'/>
+ <cd:constant name='interlinespace' value='meziradkovamezera'/>
+ <cd:constant name='itemalign' value='itemalign'/>
+ <cd:constant name='items' value='polozky'/>
+ <cd:constant name='ken' value='ken'/>
+ <cd:constant name='keyexpansion' value='keyexpansion'/>
+ <cd:constant name='keyword' value='keyword'/>
+ <cd:constant name='label' value='popisek'/>
+ <cd:constant name='left' value='vlevo'/>
+ <cd:constant name='leftcolor' value='barvavlevo'/>
+ <cd:constant name='leftcompoundhyphen' value='leftcompoundhyphen'/>
+ <cd:constant name='leftedge' value='levahrana'/>
+ <cd:constant name='leftedgedistance' value='vzdalenostlevehrany'/>
+ <cd:constant name='leftframe' value='ramecekvlevo'/>
+ <cd:constant name='lefthyphen' value='lefthyphen'/>
+ <cd:constant name='leftmargin' value='levyokraj'/>
+ <cd:constant name='leftmargindistance' value='vzdalenostlevehookraje'/>
+ <cd:constant name='leftoffset' value='levyoffset'/>
+ <cd:constant name='leftquotation' value='citacevlevo'/>
+ <cd:constant name='leftquote' value='citovatvlevo'/>
+ <cd:constant name='leftsentence' value='vetavlevo'/>
+ <cd:constant name='leftspeech' value='leftspeech'/>
+ <cd:constant name='leftstyle' value='stylvlevo'/>
+ <cd:constant name='leftsubsentence' value='podvetavlevo'/>
+ <cd:constant name='lefttext' value='textvlevo'/>
+ <cd:constant name='leftwidth' value='sirkavlevo'/>
+ <cd:constant name='level' value='uroven'/>
+ <cd:constant name='levels' value='urovne'/>
+ <cd:constant name='limittext' value='limittext'/>
+ <cd:constant name='line' value='radek'/>
+ <cd:constant name='linecorrection' value='korekceradku'/>
+ <cd:constant name='lines' value='radky'/>
+ <cd:constant name='list' value='seznam'/>
+ <cd:constant name='listtext' value='listtext'/>
+ <cd:constant name='local' value='lokalne'/>
+ <cd:constant name='location' value='misto'/>
+ <cd:constant name='logo' value='logo'/>
+ <cd:constant name='logos' value='loga'/>
+ <cd:constant name='marcolor' value='barvaznacky'/>
+ <cd:constant name='margin' value='marginalie'/>
+ <cd:constant name='margindistance' value='vzdalenostokraje'/>
+ <cd:constant name='marginedge' value='textovahrana'/>
+ <cd:constant name='marginedgetext' value='textmarginalnihookraje'/>
+ <cd:constant name='margintext' value='textmarginalie'/>
+ <cd:constant name='marking' value='znaceni'/>
+ <cd:constant name='marstyle' value='stylsnacky'/>
+ <cd:constant name='max' value='max'/>
+ <cd:constant name='maxheight' value='maxvyska'/>
+ <cd:constant name='maxwidth' value='maxsirka'/>
+ <cd:constant name='menu' value='menu'/>
+ <cd:constant name='method' value='metoda'/>
+ <cd:constant name='middle' value='stredni'/>
+ <cd:constant name='middlespeech' value='middlespeech'/>
+ <cd:constant name='middletext' value='strednitext'/>
+ <cd:constant name='midsentence' value='midsentence'/>
+ <cd:constant name='min' value='min'/>
+ <cd:constant name='mindepth' value='mindepth'/>
+ <cd:constant name='minheight' value='minvyska'/>
+ <cd:constant name='minwidth' value='minsirka'/>
+ <cd:constant name='n' value='n'/>
+ <cd:constant name='name' value='jmeno'/>
+ <cd:constant name='nbottom' value='nspodek'/>
+ <cd:constant name='nc' value='nc'/>
+ <cd:constant name='next' value='dalsi'/>
+ <cd:constant name='nl' value='nl'/>
+ <cd:constant name='nleft' value='nvlevo'/>
+ <cd:constant name='nlines' value='nradky'/>
+ <cd:constant name='norm' value='norm'/>
+ <cd:constant name='nr' value='nr'/>
+ <cd:constant name='nright' value='nvpravo'/>
+ <cd:constant name='ntop' value='nvrsek'/>
+ <cd:constant name='number' value='cislo'/>
+ <cd:constant name='numbercolor' value='barvacisla'/>
+ <cd:constant name='numbercommand' value='ciselnyprikaz'/>
+ <cd:constant name='numberdistance' value='numberdistance'/>
+ <cd:constant name='numbering' value='cislovani'/>
+ <cd:constant name='numberseparator' value='oddelovaccisla'/>
+ <cd:constant name='numberstyle' value='stylcisla'/>
+ <cd:constant name='numberwidth' value='numberwidth'/>
+ <cd:constant name='nx' value='nx'/>
+ <cd:constant name='ny' value='ny'/>
+ <cd:constant name='object' value='objekt'/>
+ <cd:constant name='obstruction' value='prekazka'/>
+ <cd:constant name='oddmargin' value='lichyokraj'/>
+ <cd:constant name='offset' value='offset'/>
+ <cd:constant name='openaction' value='otevriakci'/>
+ <cd:constant name='openpageaction' value='akceotevrenistranky'/>
+ <cd:constant name='option' value='volba'/>
+ <cd:constant name='orientation' value='orientation'/>
+ <cd:constant name='outermargin' value='outermargin'/>
+ <cd:constant name='overprint' value='overprint'/>
+ <cd:constant name='ownnumber' value='vlastnicislo'/>
+ <cd:constant name='page' value='stranka'/>
+ <cd:constant name='pageboundaries' value='hranicestranky'/>
+ <cd:constant name='pagecolor' value='barvastranky'/>
+ <cd:constant name='pagecommand' value='strankovyprikaz'/>
+ <cd:constant name='pagenumber' value='cislostranky'/>
+ <cd:constant name='pagestate' value='pagestate'/>
+ <cd:constant name='pagestyle' value='stylstranky'/>
+ <cd:constant name='palet' value='paleta'/>
+ <cd:constant name='paper' value='papir'/>
+ <cd:constant name='paragraph' value='odstavec'/>
+ <cd:constant name='place' value='umistit'/>
+ <cd:constant name='placehead' value='umistihlavicku'/>
+ <cd:constant name='placestopper' value='predelmista'/>
+ <cd:constant name='position' value='position'/>
+ <cd:constant name='prefix' value='prefix'/>
+ <cd:constant name='preset' value='prednastaveni'/>
+ <cd:constant name='preview' value='nahled'/>
+ <cd:constant name='previous' value='predchozi'/>
+ <cd:constant name='previousnumber' value='predchozicislo'/>
+ <cd:constant name='process' value='process'/>
+ <cd:constant name='radius' value='polomer'/>
+ <cd:constant name='random' value='nahodne'/>
+ <cd:constant name='reduction' value='redukce'/>
+ <cd:constant name='ref' value='ref'/>
+ <cd:constant name='reference' value='odkaz'/>
+ <cd:constant name='referencing' value='odkazujici'/>
+ <cd:constant name='regionin' value='oblastuvnitr'/>
+ <cd:constant name='regionout' value='oblastvne'/>
+ <cd:constant name='repeat' value='opakovat'/>
+ <cd:constant name='reset' value='reset'/>
+ <cd:constant name='resetnumber' value='resetnumber'/>
+ <cd:constant name='resolution' value='rozliseni'/>
+ <cd:constant name='right' value='vpravo'/>
+ <cd:constant name='rightcolor' value='barvavpravo'/>
+ <cd:constant name='rightcompoundhyphen' value='rightcompoundhyphen'/>
+ <cd:constant name='rightedge' value='pravahrana'/>
+ <cd:constant name='rightedgedistance' value='vzdalenostpravehrany'/>
+ <cd:constant name='rightframe' value='ramecekvpravo'/>
+ <cd:constant name='righthyphen' value='righthyphen'/>
+ <cd:constant name='rightmargin' value='pravyokraj'/>
+ <cd:constant name='rightmargindistance' value='vzdalenostpravehookraje'/>
+ <cd:constant name='rightoffset' value='pravyoffset'/>
+ <cd:constant name='rightquotation' value='citacevpravo'/>
+ <cd:constant name='rightquote' value='citovatvpravo'/>
+ <cd:constant name='rightsentence' value='vetavpravo'/>
+ <cd:constant name='rightspeech' value='rightspeech'/>
+ <cd:constant name='rightstyle' value='stylvpravo'/>
+ <cd:constant name='rightsubsentence' value='podvetavpravo'/>
+ <cd:constant name='righttext' value='textvpravo'/>
+ <cd:constant name='rightwidth' value='sirkavpravo'/>
+ <cd:constant name='rotation' value='rotace'/>
+ <cd:constant name='rule' value='linka'/>
+ <cd:constant name='rulecolor' value='barvalinky'/>
+ <cd:constant name='rulethickness' value='tloustkalinky'/>
+ <cd:constant name='samepage' value='stejnastranka'/>
+ <cd:constant name='sample' value='vzor'/>
+ <cd:constant name='scale' value='meritko'/>
+ <cd:constant name='scope' value='rozsah'/>
+ <cd:constant name='screen' value='rastr'/>
+ <cd:constant name='section' value='oddil'/>
+ <cd:constant name='sectionnumber' value='cislooddilu'/>
+ <cd:constant name='separator' value='oddelovac'/>
+ <cd:constant name='set' value='set'/>
+ <cd:constant name='setups' value='setups'/>
+ <cd:constant name='side' value='pocitat'/>
+ <cd:constant name='sidealign' value='sidealign'/>
+ <cd:constant name='sidemethod' value='sidemethod'/>
+ <cd:constant name='sidespaceafter' value='bocnimezeraza'/>
+ <cd:constant name='sidespacebefore' value='bocnimezerapred'/>
+ <cd:constant name='sign' value='znak'/>
+ <cd:constant name='size' value='velikost'/>
+ <cd:constant name='small' value='male'/>
+ <cd:constant name='sorttype' value='sorttype'/>
+ <cd:constant name='source' value='zdroj'/>
+ <cd:constant name='space' value='mezera'/>
+ <cd:constant name='spaceafter' value='mezeraza'/>
+ <cd:constant name='spacebefore' value='mezerapred'/>
+ <cd:constant name='spaceinbetween' value='spaceinbetween'/>
+ <cd:constant name='spacing' value='mezerovani'/>
+ <cd:constant name='split' value='split'/>
+ <cd:constant name='splitcolor' value='splitcolor'/>
+ <cd:constant name='splitmethod' value='splitmethod'/>
+ <cd:constant name='splitoffset' value='splitoffset'/>
+ <cd:constant name='spot' value='spot'/>
+ <cd:constant name='stack' value='stack'/>
+ <cd:constant name='start' value='start'/>
+ <cd:constant name='state' value='status'/>
+ <cd:constant name='step' value='krok'/>
+ <cd:constant name='stop' value='stop'/>
+ <cd:constant name='stopper' value='predel'/>
+ <cd:constant name='stretch' value='natahnout'/>
+ <cd:constant name='strut' value='strut'/>
+ <cd:constant name='style' value='pismeno'/>
+ <cd:constant name='sub' value='pod'/>
+ <cd:constant name='subtitle' value='podtitulek'/>
+ <cd:constant name='suffix' value='suffix'/>
+ <cd:constant name='sx' value='sx'/>
+ <cd:constant name='sy' value='sy'/>
+ <cd:constant name='symalign' value='symzarovnani'/>
+ <cd:constant name='symbol' value='symbol'/>
+ <cd:constant name='symbolset' value='sadasymbolu'/>
+ <cd:constant name='symcolor' value='barvasymbolu'/>
+ <cd:constant name='symstyle' value='stylsymboly'/>
+ <cd:constant name='synonym' value='synonymum'/>
+ <cd:constant name='synonymcolor' value='barvasynonyma'/>
+ <cd:constant name='synonymstyle' value='stylsynonyma'/>
+ <cd:constant name='tab' value='tab'/>
+ <cd:constant name='text' value='text'/>
+ <cd:constant name='textcolor' value='barvatextu'/>
+ <cd:constant name='textcommand' value='textovyprikaz'/>
+ <cd:constant name='textdistance' value='textdistance'/>
+ <cd:constant name='textlayer' value='textlayer'/>
+ <cd:constant name='textmargin' value='textmargin'/>
+ <cd:constant name='textmethod' value='textmethod'/>
+ <cd:constant name='textseparator' value='oddelovactextu'/>
+ <cd:constant name='textsize' value='velikosttextu'/>
+ <cd:constant name='textstate' value='statustextu'/>
+ <cd:constant name='textstyle' value='styltextu'/>
+ <cd:constant name='textwidth' value='sirkatextu'/>
+ <cd:constant name='title' value='titul'/>
+ <cd:constant name='titlecolor' value='barvatitulek'/>
+ <cd:constant name='titlecommand' value='titlecommand'/>
+ <cd:constant name='titledistance' value='vzdalenosttitulek'/>
+ <cd:constant name='titleleft' value='titleleft'/>
+ <cd:constant name='titleright' value='titleright'/>
+ <cd:constant name='titlestyle' value='styltitulek'/>
+ <cd:constant name='to' value='na'/>
+ <cd:constant name='tolerance' value='tolerance'/>
+ <cd:constant name='top' value='vrsek'/>
+ <cd:constant name='topdistance' value='vzdalenostvrsku'/>
+ <cd:constant name='topframe' value='rameceknahore'/>
+ <cd:constant name='topoffset' value='offsetvrsku'/>
+ <cd:constant name='topspace' value='svrchnimezera'/>
+ <cd:constant name='topstate' value='statusvrsku'/>
+ <cd:constant name='type' value='typ'/>
+ <cd:constant name='unit' value='jednotka'/>
+ <cd:constant name='unknownreference' value='neznamyodkaz'/>
+ <cd:constant name='urlalternative' value='urlalternativa'/>
+ <cd:constant name='urlspace' value='prostorurl'/>
+ <cd:constant name='validate' value='validovat'/>
+ <cd:constant name='vcommand' value='vprikaz'/>
+ <cd:constant name='veroffset' value='offsethlavicky'/>
+ <cd:constant name='vfil' value='vfil'/>
+ <cd:constant name='voffset' value='voffset'/>
+ <cd:constant name='way' value='zpusob'/>
+ <cd:constant name='wfactor' value='sfaktor'/>
+ <cd:constant name='white' value='bily'/>
+ <cd:constant name='width' value='sirka'/>
+ <cd:constant name='xfactor' value='xfaktor'/>
+ <cd:constant name='xmax' value='xmax'/>
+ <cd:constant name='xoffset' value='xoffset'/>
+ <cd:constant name='xscale' value='xmeritko'/>
+ <cd:constant name='xstep' value='xkrok'/>
+ <cd:constant name='yfactor' value='yfaktor'/>
+ <cd:constant name='ymax' value='ymax'/>
+ <cd:constant name='yoffset' value='yoffset'/>
+ <cd:constant name='yscale' value='ymeritko'/>
+ <cd:constant name='ystep' value='ykrok'/>
+ </cd:constant>
- <cd:variables>
- <cd:variable name="january" value="leden"/>
- <cd:variable name="february" value="unor"/>
- <cd:variable name="march" value="brezen"/>
- <cd:variable name="april" value="duben"/>
- <cd:variable name="may" value="kveten"/>
- <cd:variable name="june" value="cerven"/>
- <cd:variable name="july" value="cervenec"/>
- <cd:variable name="august" value="srpen"/>
- <cd:variable name="september" value="zari"/>
- <cd:variable name="october" value="rijen"/>
- <cd:variable name="november" value="listopad"/>
- <cd:variable name="december" value="prosinec"/>
- </cd:variables>
+ <!-- definitions for interface elements for language cz -->
- <cd:variables>
- <cd:variable name="atpage" value="nastrance"/>
- <cd:variable name="hencefore" value="vyse"/>
- <cd:variable name="hereafter" value="nize"/>
- </cd:variables>
+ <cd:elements>
+ <cd:element name='begin' value='zacatek'/>
+ <cd:element name='complete' value='uplny'/>
+ <cd:element name='coupled' value='propojene'/>
+ <cd:element name='currentlocal' value='aktualnelokalni'/>
+ <cd:element name='emptyone' value='leer'/>
+ <cd:element name='emptytwo' value='prazdne'/>
+ <cd:element name='end' value='konec'/>
+ <cd:element name='endsetup' value=''/>
+ <cd:element name='get' value='ziskat'/>
+ <cd:element name='increment' value='zvysit'/>
+ <cd:element name='list' value='seznam'/>
+ <cd:element name='listof' value='seznam'/>
+ <cd:element name='load' value='nacist'/>
+ <cd:element name='local' value='lokalne'/>
+ <cd:element name='makeup' value='zlom'/>
+ <cd:element name='next' value='dalsi'/>
+ <cd:element name='place' value='umisti'/>
+ <cd:element name='previous' value='predchozi'/>
+ <cd:element name='previouslocal' value='predchozilokalni'/>
+ <cd:element name='reserve' value='rezervovat'/>
+ <cd:element name='see' value='viz'/>
+ <cd:element name='setup' value='nastaveni'/>
+ <cd:element name='start' value='start'/>
+ <cd:element name='stop' value='stop'/>
+ <cd:element name='text' value='text'/>
+ <cd:element name='type' value='opis'/>
+ </cd:element>
- <cd:variables>
- <cd:variable name="part" value="cast"/>
- <cd:variable name="chapter" value="kapitola"/>
- <cd:variable name="subject" value="tema"/>
- <cd:variable name="section" value="sekce"/>
- <cd:variable name="title" value="titul"/>
- <cd:variable name="margintitle" value="titulmarginalie"/>
- <cd:variable name="content" value="obsah"/>
- <cd:variable name="contents" value="obsah"/>
- <cd:variable name="appendix" value="dodatek"/>
- <cd:variable name="appendices" value="dodatky"/>
- <cd:variable name="bodypart" value="hlavnicast"/>
- <cd:variable name="bodymatter" value="hlavnicasti"/>
- <cd:variable name="frontpart" value="prednicast"/>
- <cd:variable name="frontmatter" value="prednicasti"/>
- <cd:variable name="backpart" value="epilog"/>
- <cd:variable name="backmatter" value="epilogy"/>
- <cd:variable name="footnote" value="poznamkapodcarou"/>
- <cd:variable name="endnote" value="endnote"/>
- <cd:variable name="system" value="system"/>
- </cd:variables>
+ <!-- definitions for interface commands for language cz -->
- <cd:variables>
- <cd:variable name="subsection" value="podsekce"/>
- <cd:variable name="subsubsection" value="podpodsekce"/>
- <cd:variable name="subsubsubsection" value="podpodpodsekce"/>
- <cd:variable name="subsubsubsubsection" value="podpodpodpodsekce"/>
- <cd:variable name="subsubsubsubsubsection" value="podpodpodpodpodsekce"/>
- <cd:variable name="subsubject" value="podtema"/>
- <cd:variable name="subsubsubject" value="podpodtema"/>
- <cd:variable name="subsubsubsubject" value="podpodpodtema"/>
- <cd:variable name="subsubsubsubsubject" value="podpodpodpodtema"/>
- <cd:variable name="subsubsubsubsubsubject" value="podpodpodpodpodtema"/>
- </cd:variables>
+ <cd:commands>
+ <cd:command name='CAPPED' value='KAP'/>
+ <cd:command name='Character' value='Znak'/>
+ <cd:command name='Characters' value='Znaky'/>
+ <cd:command name='LABELTEXT' value='TEXTPOPISKU'/>
+ <cd:command name='MONTH' value='MESIC'/>
+ <cd:command name='Numbers' value='Cisla'/>
+ <cd:command name='Romannumerals' value='Rimskecislice'/>
+ <cd:command name='SmallCapped' value='Kap'/>
+ <cd:command name='SmallCaps' value='Kaps'/>
+ <cd:command name='WEEKDAY' value='VSEDNIDEN'/>
+ <cd:command name='WORD' value='SLOVO'/>
+ <cd:command name='WORDS' value='SLOVA'/>
+ <cd:command name='Word' value='Slovo'/>
+ <cd:command name='Words' value='Slova'/>
+ <cd:command name='about' value='oref'/>
+ <cd:command name='adaptlayout' value='prizpusobvzhled'/>
+ <cd:command name='adding' value='scitani'/>
+ <cd:command name='arg' value='arg'/>
+ <cd:command name='at' value='pref'/>
+ <cd:command name='atleftmargin' value='atleftmargin'/>
+ <cd:command name='atpage' value='nastrane'/>
+ <cd:command name='atrightmargin' value='atrightmargin'/>
+ <cd:command name='background' value='pozadi'/>
+ <cd:command name='backspace' value='odsazenizleva'/>
+ <cd:command name='blackrule' value='cernalinka'/>
+ <cd:command name='blackrules' value='cernelinky'/>
+ <cd:command name='blank' value='preskoc'/>
+ <cd:command name='bookmark' value='zalozka'/>
+ <cd:command name='bottomdistance' value='vzdalenostspodku'/>
+ <cd:command name='bottomheight' value='vyskaspodku'/>
+ <cd:command name='bottomspace' value='bottomspace'/>
+ <cd:command name='but' value='spodek'/>
+ <cd:command name='button' value='tlacitko'/>
+ <cd:command name='bypassblocks' value='bypassblocks'/>
+ <cd:command name='character' value='znak'/>
+ <cd:command name='characters' value='znaky'/>
+ <cd:command name='chem' value='chem'/>
+ <cd:command name='clip' value='orez'/>
+ <cd:command name='clonefield' value='klonujpole'/>
+ <cd:command name='color' value='barva'/>
+ <cd:command name='colorbar' value='barevnalista'/>
+ <cd:command name='colorvalue' value='hodnotabarvy'/>
+ <cd:command name='column' value='sloupec'/>
+ <cd:command name='comment' value='komentar'/>
+ <cd:command name='comparecolorgroup' value='porovnejskupinubarev'/>
+ <cd:command name='comparepalet' value='porovnejpaletu'/>
+ <cd:command name='completepagenumber' value='completepagenumber'/>
+ <cd:command name='completeregister' value='completeregister'/>
+ <cd:command name='component' value='komponenta'/>
+ <cd:command name='convertnumber' value='konvertujcislo'/>
+ <cd:command name='copyfield' value='kopirujpole'/>
+ <cd:command name='correctwhitespace' value='korekcebilehomista'/>
+ <cd:command name='coupledocument' value='propojenydokument'/>
+ <cd:command name='couplemarking' value='propojeneznaceni'/>
+ <cd:command name='couplepage' value='parovastrana'/>
+ <cd:command name='couplepaper' value='dvoustrannypapir'/>
+ <cd:command name='coupleregister' value='propojenyrejstrik'/>
+ <cd:command name='crlf' value='crlf'/>
+ <cd:command name='currentdate' value='aktualnidatum'/>
+ <cd:command name='currentheadnumber' value='aktualnicislonadpisu'/>
+ <cd:command name='cutspace' value='cutspace'/>
+ <cd:command name='date' value='datum'/>
+ <cd:command name='decouplemarking' value='rozpojeneznaceni'/>
+ <cd:command name='decrementnumber' value='decrementnumber'/>
+ <cd:command name='define' value='definuj'/>
+ <cd:command name='defineaccent' value='definujakcent'/>
+ <cd:command name='defineblank' value='definujpreskok'/>
+ <cd:command name='defineblock' value='definujblok'/>
+ <cd:command name='definebodyfont' value='definujzakladnifont'/>
+ <cd:command name='definebodyfontenvironment' value='definujprostredizakladnihofontu'/>
+ <cd:command name='definebuffer' value='definujbuffer'/>
+ <cd:command name='definecharacter' value='definujznak'/>
+ <cd:command name='definecolor' value='definujbarvu'/>
+ <cd:command name='definecolorgroup' value='definujskupinubarev'/>
+ <cd:command name='definecolumnbreak' value='definecolumnbreak'/>
+ <cd:command name='definecolumnset' value='definecolumnset'/>
+ <cd:command name='definecombination' value='definecombination'/>
+ <cd:command name='definecombinedlist' value='definujkombinovanyseznam'/>
+ <cd:command name='definecommand' value='definujprikaz'/>
+ <cd:command name='defineconversion' value='definujkonverzi'/>
+ <cd:command name='definedescription' value='definujpopis'/>
+ <cd:command name='defineenumeration' value='definujvycet'/>
+ <cd:command name='definefield' value='definujpole'/>
+ <cd:command name='definefieldstack' value='definujzasobnikpoli'/>
+ <cd:command name='definefiguresymbol' value='definujobrazeksymbol'/>
+ <cd:command name='definefloat' value='definujplvouciobjekt'/>
+ <cd:command name='definefont' value='definujfont'/>
+ <cd:command name='definefontstyle' value='definujstylfontu'/>
+ <cd:command name='definefontsynonym' value='definujsynonumumfontu'/>
+ <cd:command name='defineframed' value='definujoramovani'/>
+ <cd:command name='defineframedtext' value='definujoramovanytext'/>
+ <cd:command name='definehbox' value='definujhbox'/>
+ <cd:command name='definehead' value='definujnadpis'/>
+ <cd:command name='defineindenting' value='definujodsazovani'/>
+ <cd:command name='defineinmargin' value='defineinmargin'/>
+ <cd:command name='defineinteractionmenu' value='definujinterakcnimenu'/>
+ <cd:command name='defineitemgroup' value='defineitemgroup'/>
+ <cd:command name='definelabel' value='definujpopisek'/>
+ <cd:command name='definelayer' value='definelayer'/>
+ <cd:command name='definelayout' value='definelayout'/>
+ <cd:command name='definelist' value='definujseznam'/>
+ <cd:command name='definelogo' value='definujlogo'/>
+ <cd:command name='definemainfield' value='definujhlavnipole'/>
+ <cd:command name='definemakeup' value='definujupravu'/>
+ <cd:command name='definemarking' value='definujznaceni'/>
+ <cd:command name='definemathalignment' value='definemathalignment'/>
+ <cd:command name='defineoutput' value='definujvystup'/>
+ <cd:command name='defineoverlay' value='definujprekryv'/>
+ <cd:command name='definepagebreak' value='definepagebreak'/>
+ <cd:command name='definepalet' value='definujpaletu'/>
+ <cd:command name='definepapersize' value='definujvelikostpapiru'/>
+ <cd:command name='defineparagraphs' value='definujodstavce'/>
+ <cd:command name='defineplacement' value='defineplacement'/>
+ <cd:command name='defineprofile' value='definujprofil'/>
+ <cd:command name='defineprogram' value='definujprogram'/>
+ <cd:command name='definerawfont' value='definerawfont'/>
+ <cd:command name='definereference' value='definujodkaz'/>
+ <cd:command name='definereferenceformat' value='definujformatodkazu'/>
+ <cd:command name='definereferencelist' value='definujseznamodkazu'/>
+ <cd:command name='defineregister' value='definujrejstrik'/>
+ <cd:command name='definerule' value='definerule'/>
+ <cd:command name='definesection' value='definujsekci'/>
+ <cd:command name='definesectionblock' value='definujbloksekce'/>
+ <cd:command name='definesorting' value='definujtrideni'/>
+ <cd:command name='definestartstop' value='definujstartstop'/>
+ <cd:command name='definestyle' value='definujstyl'/>
+ <cd:command name='definesubfield' value='definujpodpole'/>
+ <cd:command name='definesymbol' value='definujsymbol'/>
+ <cd:command name='definesynonyms' value='definujsynonyma'/>
+ <cd:command name='definetabletemplate' value='definujsablonutabulky'/>
+ <cd:command name='definetabulate' value='definujtabelaci'/>
+ <cd:command name='definetext' value='definujtext'/>
+ <cd:command name='definetextposition' value='definetextposition'/>
+ <cd:command name='definetextvariable' value='definetextvariable'/>
+ <cd:command name='definetype' value='definetype'/>
+ <cd:command name='definetyping' value='definujopis'/>
+ <cd:command name='defineversion' value='definujverzi'/>
+ <cd:command name='determineheadnumber' value='stanovcislonadpisu'/>
+ <cd:command name='determinelistcharacteristics' value='stanovcharakteristickuseznamu'/>
+ <cd:command name='determineregistercharacteristics' value='urcicharakteristikurejstriku'/>
+ <cd:command name='dimension' value='rozmer'/>
+ <cd:command name='disableinteractionmenu' value='zablokujinterakcnimenu'/>
+ <cd:command name='domicile' value='bydliste'/>
+ <cd:command name='donttest' value='zadnytest'/>
+ <cd:command name='edgedistance' value='vzdalenostokraje'/>
+ <cd:command name='edgewidth' value='sirkaokraje'/>
+ <cd:command name='emptylines' value='emptylines'/>
+ <cd:command name='environment' value='prostredi'/>
+ <cd:command name='externalfigure' value='externiobraz'/>
+ <cd:command name='fact' value='fakt'/>
+ <cd:command name='field' value='pole'/>
+ <cd:command name='fieldstack' value='zasobnikpoli'/>
+ <cd:command name='fillinfield' value='vyplnovepole'/>
+ <cd:command name='fillinline' value='vyplnovyradek'/>
+ <cd:command name='fillinrules' value='vyplnovelinky'/>
+ <cd:command name='fillintext' value='vyplnenytext'/>
+ <cd:command name='fitfield' value='prizpusobivepole'/>
+ <cd:command name='fixedspace' value='tvrdamezera'/>
+ <cd:command name='fixedspaces' value='tvrdemezery'/>
+ <cd:command name='followprofile' value='dodrzujprofil'/>
+ <cd:command name='followprofileversion' value='dodrzujverziprofilu'/>
+ <cd:command name='followversion' value='dodrzujverzi'/>
+ <cd:command name='footerdistance' value='vzdalenostupati'/>
+ <cd:command name='footerheight' value='vyskaupati'/>
+ <cd:command name='footnote' value='poznamkapodcarou'/>
+ <cd:command name='footnotetext' value='footnotetext'/>
+ <cd:command name='forceblocks' value='forceblocks'/>
+ <cd:command name='formulanumber' value='cislorovnice'/>
+ <cd:command name='fraction' value='zlomek'/>
+ <cd:command name='framed' value='oramovani'/>
+ <cd:command name='from' value='zref'/>
+ <cd:command name='getbuffer' value='ziskejbuffer'/>
+ <cd:command name='getmarking' value='ziskejznaceni'/>
+ <cd:command name='getnumber' value='getnumber'/>
+ <cd:command name='godown' value='jdidolu'/>
+ <cd:command name='goto' value='jdina'/>
+ <cd:command name='gotobox' value='jdinabox'/>
+ <cd:command name='gotopage' value='jdinastranu'/>
+ <cd:command name='graycolor' value='sedabarva'/>
+ <cd:command name='greyvalue' value='hodnotasedi'/>
+ <cd:command name='grid' value='mrizka'/>
+ <cd:command name='hairline' value='vlasovalinka'/>
+ <cd:command name='head' value='nadpis'/>
+ <cd:command name='headerdistance' value='vzdalenostzahlavi'/>
+ <cd:command name='headerheight' value='vyskazahlavi'/>
+ <cd:command name='headlevel' value='hlavniuroven'/>
+ <cd:command name='headnumber' value='cislonadpisu'/>
+ <cd:command name='headsym' value='headsym'/>
+ <cd:command name='headtext' value='texthlavicky'/>
+ <cd:command name='hideblocks' value='schovejbloky'/>
+ <cd:command name='high' value='vysoky'/>
+ <cd:command name='hl' value='hl'/>
+ <cd:command name='immediatebetweenlist' value='immediatebetweenlist'/>
+ <cd:command name='immediatetolist' value='immediatetolist'/>
+ <cd:command name='in' value='tref'/>
+ <cd:command name='incrementnumber' value='zvysujicicislo'/>
+ <cd:command name='indenting' value='odsazovani'/>
+ <cd:command name='inframed' value='zaramovani'/>
+ <cd:command name='infull' value='plnezneni'/>
+ <cd:command name='ininner' value='ininner'/>
+ <cd:command name='inleft' value='vlevo'/>
+ <cd:command name='inleftedge' value='nalevo'/>
+ <cd:command name='inleftmargin' value='nalevyokraj'/>
+ <cd:command name='inline' value='vradku'/>
+ <cd:command name='inmargin' value='naokraj'/>
+ <cd:command name='inmframed' value='mazaramovani'/>
+ <cd:command name='inneredgedistance' value='inneredgedistance'/>
+ <cd:command name='inneredgewidth' value='inneredgewidth'/>
+ <cd:command name='innermargindistance' value='innermargindistance'/>
+ <cd:command name='innermarginwidth' value='innermarginwidth'/>
+ <cd:command name='inothermargin' value='nadruhyokraj'/>
+ <cd:command name='inouter' value='inouter'/>
+ <cd:command name='inright' value='vpravo'/>
+ <cd:command name='inrightedge' value='napravo'/>
+ <cd:command name='inrightmargin' value='napravyokraj'/>
+ <cd:command name='installlanguage' value='instalacejazyka'/>
+ <cd:command name='interactionbar' value='interakcnilista'/>
+ <cd:command name='interactionbuttons' value='interakcnitlacitka'/>
+ <cd:command name='interactionmenu' value='interaktivnimenu'/>
+ <cd:command name='item' value='polozka'/>
+ <cd:command name='items' value='polozky'/>
+ <cd:command name='its' value='pol'/>
+ <cd:command name='keepblocks' value='zachovejbloky'/>
+ <cd:command name='label' value='poppisek'/>
+ <cd:command name='labels' value='popisky'/>
+ <cd:command name='labeltext' value='textpopisku'/>
+ <cd:command name='language' value='jazyk'/>
+ <cd:command name='leftaligned' value='zarovnanovlevo'/>
+ <cd:command name='leftedgedistance' value='vzdalenostlevehookraje'/>
+ <cd:command name='leftedgewidth' value='sirkalevehookraje'/>
+ <cd:command name='leftmargindistance' value='vzdalenostlevemarginalie'/>
+ <cd:command name='leftmarginwidth' value='sirkalevemarginalie'/>
+ <cd:command name='leg' value='leg'/>
+ <cd:command name='linewidth' value='tloustkacary'/>
+ <cd:command name='listheight' value='vyskaseznamu'/>
+ <cd:command name='listlength' value='delkaseznamu'/>
+ <cd:command name='listsymbol' value='listsymbol'/>
+ <cd:command name='listwidth' value='sirkaseznamu'/>
+ <cd:command name='logfields' value='zaznamovepole'/>
+ <cd:command name='lohi' value='nivy'/>
+ <cd:command name='low' value='nizky'/>
+ <cd:command name='macroname' value='jmeno'/>
+ <cd:command name='mainlanguage' value='hlavnijazyk'/>
+ <cd:command name='makeupheight' value='vyskasazby'/>
+ <cd:command name='makeupwidth' value='sirkasazby'/>
+ <cd:command name='mar' value='okr'/>
+ <cd:command name='margindistance' value='vzdalenostmarginalie'/>
+ <cd:command name='marginrule' value='marginalnilinka'/>
+ <cd:command name='margintext' value='marginalnitext'/>
+ <cd:command name='margintitle' value='marginalninadpis'/>
+ <cd:command name='marginwidth' value='sirkamarginalie'/>
+ <cd:command name='marginword' value='marginalnislovo'/>
+ <cd:command name='marking' value='znaceni'/>
+ <cd:command name='markversion' value='oznacverzi'/>
+ <cd:command name='mathematics' value='matematika'/>
+ <cd:command name='menubutton' value='tlacitkomenu'/>
+ <cd:command name='mframed' value='maoramovani'/>
+ <cd:command name='midaligned' value='zarovnanonastred'/>
+ <cd:command name='mirror' value='zrcadlit'/>
+ <cd:command name='month' value='mesic'/>
+ <cd:command name='moveformula' value='moveformula'/>
+ <cd:command name='moveongrid' value='premistinamrizku'/>
+ <cd:command name='movesidefloat' value='movesidefloat'/>
+ <cd:command name='navigating' value='navigating'/>
+ <cd:command name='nodimension' value='zadnyrozmer'/>
+ <cd:command name='noheaderandfooterlines' value='zadnezahlaviaupati'/>
+ <cd:command name='noindenting' value='zadneodsazovani'/>
+ <cd:command name='nolist' value='zadnyseznam'/>
+ <cd:command name='nomarking' value='zadneznaceni'/>
+ <cd:command name='nomoreblocks' value='zadnedalsibloky'/>
+ <cd:command name='nomorefiles' value='zadnedalsisoubory'/>
+ <cd:command name='nop' value='nop'/>
+ <cd:command name='nospace' value='zadnamezera'/>
+ <cd:command name='note' value='poznamka'/>
+ <cd:command name='notopandbottomlines' value='zadnehorniadolniradky'/>
+ <cd:command name='notsmallcapped' value='nokap'/>
+ <cd:command name='nowhitespace' value='zadnebilemisto'/>
+ <cd:command name='numberofsubpages' value='numberofsubpages'/>
+ <cd:command name='numbers' value='cisla'/>
+ <cd:command name='outeredgedistance' value='outeredgedistance'/>
+ <cd:command name='outeredgewidth' value='outeredgewidth'/>
+ <cd:command name='outermargindistance' value='outermargindistance'/>
+ <cd:command name='outermarginwidth' value='outermarginwidth'/>
+ <cd:command name='overbar' value='nadtrzeno'/>
+ <cd:command name='overbars' value='nadtrzeni'/>
+ <cd:command name='overstrike' value='preskrtnuto'/>
+ <cd:command name='overstrikes' value='preskrtnuti'/>
+ <cd:command name='packed' value='zhustene'/>
+ <cd:command name='page' value='strana'/>
+ <cd:command name='pagedepth' value='pagedepth'/>
+ <cd:command name='pagenumber' value='cislostrany'/>
+ <cd:command name='pageoffset' value='pageoffset'/>
+ <cd:command name='pagereference' value='odkaznastranu'/>
+ <cd:command name='pagetype' value='typstrany'/>
+ <cd:command name='paperheight' value='vyskapapiru'/>
+ <cd:command name='paperwidth' value='sirkapapiru'/>
+ <cd:command name='periods' value='tecky'/>
+ <cd:command name='plaatsruwelijst' value='placerawlist'/>
+ <cd:command name='placebookmarks' value='umistizalozky'/>
+ <cd:command name='placecombinedlist' value='umistikombinovanyseznam'/>
+ <cd:command name='placefloat' value='placefloat'/>
+ <cd:command name='placefootnotes' value='umistipoznamkypodcarou'/>
+ <cd:command name='placeformula' value='umistirovnici'/>
+ <cd:command name='placeheadnumber' value='placeheadnumber'/>
+ <cd:command name='placeheadtext' value='placeheadtext'/>
+ <cd:command name='placelegend' value='umistilegendu'/>
+ <cd:command name='placelist' value='umistiseznam'/>
+ <cd:command name='placelocalfootnotes' value='umistilokalnipoznamkypodcarou'/>
+ <cd:command name='placelogos' value='umistiloga'/>
+ <cd:command name='placeongrid' value='umistinamrizku'/>
+ <cd:command name='placeontopofeachother' value='umistinadsebe'/>
+ <cd:command name='placepagenumber' value='placepagenumber'/>
+ <cd:command name='placereferencelist' value='placereferencelist'/>
+ <cd:command name='placeregister' value='umistirejstrik'/>
+ <cd:command name='placerule' value='placerule'/>
+ <cd:command name='placesidebyside' value='umistivedlesebe'/>
+ <cd:command name='placesubformula' value='umistipodrovnici'/>
+ <cd:command name='placetextvariable' value='placetextvariable'/>
+ <cd:command name='position' value='pozice'/>
+ <cd:command name='positiontext' value='positiontext'/>
+ <cd:command name='printpaperheight' value='vyskatiskpapiru'/>
+ <cd:command name='printpaperwidth' value='sirkatiskpapiru'/>
+ <cd:command name='processblocks' value='zpracujbloky'/>
+ <cd:command name='processpage' value='zpracujstranu'/>
+ <cd:command name='product' value='produkt'/>
+ <cd:command name='program' value='program'/>
+ <cd:command name='project' value='projekt'/>
+ <cd:command name='publication' value='publikace'/>
+ <cd:command name='quotation' value='citace'/>
+ <cd:command name='quote' value='citovat'/>
+ <cd:command name='ran' value='ran'/>
+ <cd:command name='redo' value='opakovat'/>
+ <cd:command name='ref' value='ref'/>
+ <cd:command name='reference' value='odkaz'/>
+ <cd:command name='referral' value='odkaz'/>
+ <cd:command name='referraldate' value='odkaznadatum'/>
+ <cd:command name='referring' value='odkazujici'/>
+ <cd:command name='remark' value='oznaceni'/>
+ <cd:command name='reset' value='reset'/>
+ <cd:command name='resetmarking' value='resetznaceni'/>
+ <cd:command name='resetnumber' value='resetnumber'/>
+ <cd:command name='resettext' value='resettextcontent'/>
+ <cd:command name='rightaligned' value='zarovnanovpravo'/>
+ <cd:command name='rightedgedistance' value='vzdalenostpravehookraje'/>
+ <cd:command name='rightedgewidth' value='sirkapravehookraje'/>
+ <cd:command name='rightmargindistance' value='vzdalenostpravemarginalie'/>
+ <cd:command name='rightmarginwidth' value='sirkapravemarginalie'/>
+ <cd:command name='romannumerals' value='rimskecislice'/>
+ <cd:command name='rotate' value='otocit'/>
+ <cd:command name='scale' value='meritko'/>
+ <cd:command name='screen' value='obrazovka'/>
+ <cd:command name='selectblocks' value='vyberbloky'/>
+ <cd:command name='selectpaper' value='vyberpapir'/>
+ <cd:command name='selectversion' value='vyberverzi'/>
+ <cd:command name='setnumber' value='setnumber'/>
+ <cd:command name='settextcontent' value='settextcontent'/>
+ <cd:command name='settextvariable' value='settextvariable'/>
+ <cd:command name='setupalign' value='nastavzarovnani'/>
+ <cd:command name='setuparranging' value='nastavusporadani'/>
+ <cd:command name='setupbackground' value='nastavpozadi'/>
+ <cd:command name='setupbackgrounds' value='nastavpozadi'/>
+ <cd:command name='setupblackrules' value='nastavcernelinky'/>
+ <cd:command name='setupblank' value='nastavpreskok'/>
+ <cd:command name='setupblock' value='nastavblok'/>
+ <cd:command name='setupbodyfont' value='nastavzakladnifont'/>
+ <cd:command name='setupbodyfontenvironment' value='nastavprostredizakladnihofontu'/>
+ <cd:command name='setupbottom' value='nastavspodek'/>
+ <cd:command name='setupbottomtexts' value='nastavdolnitexty'/>
+ <cd:command name='setupbuffer' value='nastavbuffer'/>
+ <cd:command name='setupbuttons' value='nastavtlacitka'/>
+ <cd:command name='setupcapitals' value='nastavkapitalky'/>
+ <cd:command name='setupcaption' value='nastavpopisek'/>
+ <cd:command name='setupcaptions' value='nastavpopisky'/>
+ <cd:command name='setupclipping' value='nastavorez'/>
+ <cd:command name='setupcolor' value='nastavbarvu'/>
+ <cd:command name='setupcolors' value='nastavbarvy'/>
+ <cd:command name='setupcolumns' value='nastavsloupce'/>
+ <cd:command name='setupcolumnset' value='setupcolumnset'/>
+ <cd:command name='setupcolumnsetlines' value='setupcolumnsetlines'/>
+ <cd:command name='setupcolumnsetstart' value='setupcolumnsetstart'/>
+ <cd:command name='setupcombinations' value='nastavspojeni'/>
+ <cd:command name='setupcombinedlist' value='nastavkombinovanyseznam'/>
+ <cd:command name='setupcomment' value='nastavkomentar'/>
+ <cd:command name='setupdescriptions' value='nastavpopisy'/>
+ <cd:command name='setupenumerations' value='nastavvycty'/>
+ <cd:command name='setupexternalfigures' value='nastavexterniobrazy'/>
+ <cd:command name='setupfield' value='nastavpole'/>
+ <cd:command name='setupfields' value='nastavvsechnapole'/>
+ <cd:command name='setupfillinlines' value='nastavvyplnoveradky'/>
+ <cd:command name='setupfillinrules' value='nastavvyplnovelinky'/>
+ <cd:command name='setupfloat' value='nastavplvouciobjekt'/>
+ <cd:command name='setupfloats' value='nastavplvouciobjekty'/>
+ <cd:command name='setupfloatsplitting' value='nastavdeleniplvoucichobjektu'/>
+ <cd:command name='setupfooter' value='nastavupati'/>
+ <cd:command name='setupfootertexts' value='nastavtextyupati'/>
+ <cd:command name='setupfootnotedefinition' value='nastavdefinicipoznamekpodcarou'/>
+ <cd:command name='setupfootnotes' value='nastavpoznamkypodcarou'/>
+ <cd:command name='setupforms' value='setupforms'/>
+ <cd:command name='setupformulas' value='nastavrovnice'/>
+ <cd:command name='setupframed' value='nastavoramovani'/>
+ <cd:command name='setupframedtexts' value='nastavoramovanetexty'/>
+ <cd:command name='setuphead' value='nastavnadpis'/>
+ <cd:command name='setupheader' value='nastavzahlavi'/>
+ <cd:command name='setupheadertexts' value='nastavtextyzahlavi'/>
+ <cd:command name='setupheadnumber' value='nastavcislonadpisu'/>
+ <cd:command name='setupheads' value='nastavnadpisy'/>
+ <cd:command name='setupheadtext' value='nastavtexthlavicky'/>
+ <cd:command name='setuphyphenmark' value='nastavdelitko'/>
+ <cd:command name='setupindentations' value='nastavodsazeni'/>
+ <cd:command name='setupindenting' value='nastavodsazovani'/>
+ <cd:command name='setupinmargin' value='nastavmarginalie'/>
+ <cd:command name='setupinteraction' value='nastavinterakci'/>
+ <cd:command name='setupinteractionbar' value='nastavinterakcnilistu'/>
+ <cd:command name='setupinteractionmenu' value='nastavinterakcnimenu'/>
+ <cd:command name='setupinteractionscreen' value='nastavinterakcniobrazovku'/>
+ <cd:command name='setupinterlinespace' value='nastavmeziradkovoumezeru'/>
+ <cd:command name='setupitemgroup' value='setupitemgroup'/>
+ <cd:command name='setupitemgroups' value='nastavvycty'/>
+ <cd:command name='setupitems' value='nastavpolozky'/>
+ <cd:command name='setuplabeltext' value='nastavtextpopisku'/>
+ <cd:command name='setuplanguage' value='nastavjazyk'/>
+ <cd:command name='setuplayout' value='nastavvzhled'/>
+ <cd:command name='setuplegend' value='nastavlegendu'/>
+ <cd:command name='setuplinenumbering' value='nastavcislovaniradku'/>
+ <cd:command name='setuplines' value='nastavradky'/>
+ <cd:command name='setuplinewidth' value='nastavsirkucary'/>
+ <cd:command name='setuplist' value='nastavseznam'/>
+ <cd:command name='setupmakeup' value='nastavupravu'/>
+ <cd:command name='setupmarginblocks' value='nastavmarginalniblok'/>
+ <cd:command name='setupmarginrules' value='nastavmarginalnilinky'/>
+ <cd:command name='setupmarking' value='nastavznaceni'/>
+ <cd:command name='setupmathalignment' value='setupmathalignment'/>
+ <cd:command name='setupnarrower' value='nastavzuzeni'/>
+ <cd:command name='setupnumber' value='setupnumber'/>
+ <cd:command name='setupnumbering' value='nastavcislovani'/>
+ <cd:command name='setupoppositeplacing' value='nastavumisteniprotejsku'/>
+ <cd:command name='setupoutput' value='nastavvystup'/>
+ <cd:command name='setuppagecomment' value='nastavkomentarstrany'/>
+ <cd:command name='setuppagenumber' value='nastavcislostrany'/>
+ <cd:command name='setuppagenumbering' value='nastavcislovanistran'/>
+ <cd:command name='setuppagetransitions' value='nastavprechodstrany'/>
+ <cd:command name='setuppalet' value='nastavpaletu'/>
+ <cd:command name='setuppaper' value='setuppaper'/>
+ <cd:command name='setuppapersize' value='nastavvelikostpapiru'/>
+ <cd:command name='setupparagraphnumbering' value='nastavcislovaniodstavcu'/>
+ <cd:command name='setupparagraphs' value='nastavodstavce'/>
+ <cd:command name='setupplacement' value='setupplacement'/>
+ <cd:command name='setuppositioning' value='nastavumistovani'/>
+ <cd:command name='setupprofiles' value='nastavprofily'/>
+ <cd:command name='setupprograms' value='nastavprogramy'/>
+ <cd:command name='setuppublications' value='nastavpublikace'/>
+ <cd:command name='setupquote' value='nastavcitaci'/>
+ <cd:command name='setupreferencelist' value='nastavseznamodkazu'/>
+ <cd:command name='setupreferencing' value='nastavodkazovani'/>
+ <cd:command name='setupregister' value='nastavrejstrik'/>
+ <cd:command name='setuprotate' value='nastavotoceni'/>
+ <cd:command name='setuprule' value='setuprule'/>
+ <cd:command name='setups' value='nastaveni'/>
+ <cd:command name='setupscreens' value='nastavrastr'/>
+ <cd:command name='setupsection' value='nastavsekci'/>
+ <cd:command name='setupsectionblock' value='nastavbloksekce'/>
+ <cd:command name='setupsorting' value='nastavtrideni'/>
+ <cd:command name='setupspacing' value='nastavradkovani'/>
+ <cd:command name='setupstartstop' value='setupstartstop'/>
+ <cd:command name='setupstrut' value='setupstrut'/>
+ <cd:command name='setupsubpagenumber' value='nastavpodcislostrany'/>
+ <cd:command name='setupsymbolset' value='nastavsadusymbolu'/>
+ <cd:command name='setupsynchronization' value='nastavsynchronizaci'/>
+ <cd:command name='setupsynchronizationbar' value='nastavsynchronizacnilistu'/>
+ <cd:command name='setupsynonyms' value='nastavsynonyma'/>
+ <cd:command name='setupsystem' value='nastavsystem'/>
+ <cd:command name='setuptab' value='nastavtab'/>
+ <cd:command name='setuptables' value='nastavtabulky'/>
+ <cd:command name='setuptabulate' value='nastavtabelaci'/>
+ <cd:command name='setuptext' value='nastavtext'/>
+ <cd:command name='setuptextposition' value='setuptextposition'/>
+ <cd:command name='setuptextrules' value='nastavtextovelinky'/>
+ <cd:command name='setuptexttexts' value='nastavtexttexty'/>
+ <cd:command name='setuptextvariable' value='setuptextvariable'/>
+ <cd:command name='setupthinrules' value='nastavtenkelinky'/>
+ <cd:command name='setuptolerance' value='nastavtoleranci'/>
+ <cd:command name='setuptop' value='nastavhorejsek'/>
+ <cd:command name='setuptoptexts' value='nastavhornitexty'/>
+ <cd:command name='setuptype' value='nastavtype'/>
+ <cd:command name='setuptyping' value='nastavopis'/>
+ <cd:command name='setupunderbar' value='nastavpodtrzeni'/>
+ <cd:command name='setupurl' value='nastavurl'/>
+ <cd:command name='setupversions' value='nastavverze'/>
+ <cd:command name='setupwhitespace' value='nastavbilamista'/>
+ <cd:command name='showbodyfont' value='ukazzakladnifont'/>
+ <cd:command name='showbodyfontenvironment' value='ukazpostredizakladnihofontu'/>
+ <cd:command name='showcolor' value='ukazbarvu'/>
+ <cd:command name='showcolorgroup' value='ukazskupinubarev'/>
+ <cd:command name='showexternalfigures' value='ukazexterniobrazy'/>
+ <cd:command name='showfields' value='ukazpole'/>
+ <cd:command name='showframe' value='ukazramecek'/>
+ <cd:command name='showgrid' value='ukazmrizku'/>
+ <cd:command name='showlayout' value='ukazvzhled'/>
+ <cd:command name='showmakeup' value='ukazupravu'/>
+ <cd:command name='showpalet' value='ukazpaletu'/>
+ <cd:command name='showprint' value='ukazvytisk'/>
+ <cd:command name='showsetups' value='ukaznastaveni'/>
+ <cd:command name='showstruts' value='ukazpodpery'/>
+ <cd:command name='showsymbolset' value='ukazsadusymbolu'/>
+ <cd:command name='smallcapped' value='kap'/>
+ <cd:command name='someline' value='nejakyradek'/>
+ <cd:command name='somewhere' value='nekde'/>
+ <cd:command name='space' value='mezera'/>
+ <cd:command name='splitfloat' value='rozdelplvouciobjekt'/>
+ <cd:command name='startalignment' value='startzarovnavani'/>
+ <cd:command name='startbackground' value='startpozadi'/>
+ <cd:command name='startcoding' value='startkodovani'/>
+ <cd:command name='startcolor' value='startbarva'/>
+ <cd:command name='startcolumnmakeup' value='startcolumnmakeup'/>
+ <cd:command name='startcolumns' value='startsloupce'/>
+ <cd:command name='startcolumnset' value='startcolumnset'/>
+ <cd:command name='startcombination' value='startspojeni'/>
+ <cd:command name='startcomponent' value='startkomponenta'/>
+ <cd:command name='startdocument' value='startdokument'/>
+ <cd:command name='startenvironment' value='startprostredi'/>
+ <cd:command name='startfigure' value='startobraz'/>
+ <cd:command name='startglobal' value='startglobalni'/>
+ <cd:command name='startline' value='startradek'/>
+ <cd:command name='startlinecorrection' value='startkorekceradku'/>
+ <cd:command name='startlinenumbering' value='startcislovaniradku'/>
+ <cd:command name='startlines' value='startradky'/>
+ <cd:command name='startlocal' value='startlokalni'/>
+ <cd:command name='startlocalfootnotes' value='startlokalnipoznamkypodcarou'/>
+ <cd:command name='startmakeup' value='startuprava'/>
+ <cd:command name='startmarginblock' value='startmarginalniblok'/>
+ <cd:command name='startmarginrule' value='startmarginalnilinka'/>
+ <cd:command name='startnarrower' value='startzuzeni'/>
+ <cd:command name='startopposite' value='startprotejsek'/>
+ <cd:command name='startoverlay' value='startprekryv'/>
+ <cd:command name='startoverzicht' value='startprehled'/>
+ <cd:command name='startpacked' value='startzhustene'/>
+ <cd:command name='startpositioning' value='startumistovani'/>
+ <cd:command name='startproduct' value='startprodukt'/>
+ <cd:command name='startprofile' value='startprofil'/>
+ <cd:command name='startproject' value='startprojekt'/>
+ <cd:command name='startquotation' value='startcitace'/>
+ <cd:command name='startraster' value='startrastr'/>
+ <cd:command name='startsymbolset' value='startsadasymbolu'/>
+ <cd:command name='startsynchronization' value='startsynchronizace'/>
+ <cd:command name='starttable' value='starttabulka'/>
+ <cd:command name='starttables' value='starttabulky'/>
+ <cd:command name='starttext' value='starttext'/>
+ <cd:command name='starttextrule' value='starttextovalinka'/>
+ <cd:command name='startunpacked' value='startnezhustene'/>
+ <cd:command name='startversion' value='startverze'/>
+ <cd:command name='stopalignment' value='stopzarovnavani'/>
+ <cd:command name='stopbackground' value='stoppozadi'/>
+ <cd:command name='stopcoding' value='stopkodovani'/>
+ <cd:command name='stopcolor' value='stopbarva'/>
+ <cd:command name='stopcolumnmakeup' value='stopcolumnmakeup'/>
+ <cd:command name='stopcolumns' value='stopsloupce'/>
+ <cd:command name='stopcolumnset' value='stopcolumnset'/>
+ <cd:command name='stopcombination' value='stopspojeni'/>
+ <cd:command name='stopcomponent' value='stopkomponenta'/>
+ <cd:command name='stopdocument' value='stopdokument'/>
+ <cd:command name='stopenvironment' value='stopprostredi'/>
+ <cd:command name='stopglobal' value='stopglobalni'/>
+ <cd:command name='stopline' value='stopradek'/>
+ <cd:command name='stoplinecorrection' value='stopkorekceradku'/>
+ <cd:command name='stoplinenumbering' value='stopcislovaniradku'/>
+ <cd:command name='stoplines' value='stopradky'/>
+ <cd:command name='stoplocal' value='stoplokalni'/>
+ <cd:command name='stoplocalfootnotes' value='stoplokalnipoznamkypodcarou'/>
+ <cd:command name='stopmakeup' value='stopuprava'/>
+ <cd:command name='stopmarginblock' value='stopmarginalniblok'/>
+ <cd:command name='stopmarginrule' value='stopmarginalnilinka'/>
+ <cd:command name='stopnarrower' value='stopzuzeni'/>
+ <cd:command name='stopopposite' value='stopprotejsek'/>
+ <cd:command name='stopoverlay' value='stopprekryv'/>
+ <cd:command name='stopoverzicht' value='stopprehled'/>
+ <cd:command name='stoppacked' value='stopzhustene'/>
+ <cd:command name='stoppositioning' value='stopumistovani'/>
+ <cd:command name='stopproduct' value='stopprodukt'/>
+ <cd:command name='stopprofile' value='stopprofil'/>
+ <cd:command name='stopproject' value='stopprojekt'/>
+ <cd:command name='stopquotation' value='stopcitace'/>
+ <cd:command name='stopraster' value='stoprastr'/>
+ <cd:command name='stopsynchronization' value='stopsynchronizace'/>
+ <cd:command name='stoptable' value='stoptabulka'/>
+ <cd:command name='stoptables' value='stoptabulky'/>
+ <cd:command name='stoptext' value='stoptext'/>
+ <cd:command name='stoptextrule' value='stoptextovalinka'/>
+ <cd:command name='stopunpacked' value='stopnezhustene'/>
+ <cd:command name='stopversion' value='stopverze'/>
+ <cd:command name='stretched' value='roztazene'/>
+ <cd:command name='subformulanumber' value='cislopodrovnice'/>
+ <cd:command name='subpagenumber' value='subpagenumber'/>
+ <cd:command name='switchtobodyfont' value='prepninazakladnifont'/>
+ <cd:command name='switchtorawfont' value='switchtorawfont'/>
+ <cd:command name='sym' value='sym'/>
+ <cd:command name='symbol' value='symbol'/>
+ <cd:command name='synchronizationbar' value='synchronizacnilista'/>
+ <cd:command name='synchronize' value='synchronizovat'/>
+ <cd:command name='tab' value='tab'/>
+ <cd:command name='testcolumn' value='testcolumn'/>
+ <cd:command name='testpage' value='testpage'/>
+ <cd:command name='tex' value='tex'/>
+ <cd:command name='textheight' value='vyskatextu'/>
+ <cd:command name='textreference' value='odkaznatext'/>
+ <cd:command name='textrule' value='textovalinka'/>
+ <cd:command name='textvariable' value='textvariable'/>
+ <cd:command name='textwidth' value='sirkatextu'/>
+ <cd:command name='thinrule' value='tenkalinka'/>
+ <cd:command name='thinrules' value='tenkelinky'/>
+ <cd:command name='tooltip' value='bublinkovanapoveda'/>
+ <cd:command name='topdistance' value='vzdalenosthorejsku'/>
+ <cd:command name='topheight' value='vyskahorejsku'/>
+ <cd:command name='topspace' value='odsazenishora'/>
+ <cd:command name='totalnumberofpages' value='celkovypocetstran'/>
+ <cd:command name='translate' value='prelozit'/>
+ <cd:command name='txt' value='txt'/>
+ <cd:command name='typ' value='pis'/>
+ <cd:command name='type' value='opis'/>
+ <cd:command name='typebuffer' value='typebuffer'/>
+ <cd:command name='typefile' value='opissoubor'/>
+ <cd:command name='underbar' value='podtrzeno'/>
+ <cd:command name='underbars' value='podtrzeni'/>
+ <cd:command name='unitmeaning' value='vyznam'/>
+ <cd:command name='unknown' value='neznamo'/>
+ <cd:command name='useJSscripts' value='uzijJSscripts'/>
+ <cd:command name='useURL' value='uzijURL'/>
+ <cd:command name='useXMLfilter' value='useXMLfilter'/>
+ <cd:command name='useblocks' value='uzijbloky'/>
+ <cd:command name='usecommands' value='uzijprikazy'/>
+ <cd:command name='useencoding' value='uzijkodovani'/>
+ <cd:command name='useexternaldocument' value='uzijexternidokument'/>
+ <cd:command name='useexternalfigure' value='uzijexterniobraz'/>
+ <cd:command name='useexternalfile' value='uzijexternisoubor'/>
+ <cd:command name='useexternalfiles' value='uzijexternisoubory'/>
+ <cd:command name='useexternalsoundtrack' value='uzijexternizvuk'/>
+ <cd:command name='usemodule' value='uzijmodul'/>
+ <cd:command name='usemodules' value='uzijmoduly'/>
+ <cd:command name='usepath' value='uzijadresar'/>
+ <cd:command name='usereferences' value='uzijodkazy'/>
+ <cd:command name='usespecials' value='uzijspeciality'/>
+ <cd:command name='usesymbols' value='uzijsymbol'/>
+ <cd:command name='usetypescript' value='usetypescript'/>
+ <cd:command name='usetypescriptfile' value='usetypescriptfile'/>
+ <cd:command name='useurl' value='uzijurl'/>
+ <cd:command name='version' value='verze'/>
+ <cd:command name='vl' value='vl'/>
+ <cd:command name='weekday' value='vsedniden'/>
+ <cd:command name='whitespace' value='bilemisto'/>
+ <cd:command name='wordright' value='slovovpravo'/>
+ <cd:command name='writebetweenlist' value='zapismeziseznam'/>
+ <cd:command name='writetolist' value='zapisdoseznamu'/>
+ <cd:command name='writetoreferencelist' value='zapisdoseznamuodkazu'/>
+ <cd:command name='writetoregister' value='zapisdorejstriku'/>
+ </cd:command>
- <cd:variables>
- <cd:variable name="flushleft" value="flushleft"/>
- <cd:variable name="flushright" value="flushright"/>
- <cd:variable name="center" value="center"/>
- <cd:variable name="flushouter" value="flushouter"/>
- <cd:variable name="flushinner" value="flushinner"/>
- </cd:variables>
-
- <cd:variables>
- <cd:variable name="typing" value="typing"/>
- <cd:variable name="file" value="soubor"/>
- </cd:variables>
-
- <cd:variables>
- <cd:variable name="formula" value="rovnice"/>
- <cd:variable name="subformula" value="subrovnice"/>
- <cd:variable name="formulae" value="rovnice"/>
- <cd:variable name="figure" value="obrazek"/>
- <cd:variable name="figures" value="obrazky"/>
- <cd:variable name="table" value="tabulka"/>
- <cd:variable name="tables" value="tabulky"/>
- <cd:variable name="graphic" value="graf"/>
- <cd:variable name="graphics" value="grafy"/>
- <cd:variable name="intermezzo" value="intermezzo"/>
- <cd:variable name="intermezzi" value="intermezzi"/>
- <cd:variable name="index" value="rejstrik"/>
- <cd:variable name="indices" value="rejstriky"/>
- <cd:variable name="abbreviation" value="zkratka"/>
- <cd:variable name="abbreviations" value="zkratky"/>
- <cd:variable name="logo" value="logo"/>
- <cd:variable name="logos" value="loga"/>
- <cd:variable name="unit" value="jednotka"/>
- <cd:variable name="units" value="jednotky"/>
- <cd:variable name="line" value="radek"/>
- <cd:variable name="lines" value="radky"/>
- <cd:variable name="framedtext" value="oramovanytext"/>
- <cd:variable name="quotation" value="citace"/>
- <cd:variable name="blockquote" value="blockquote"/>
- <cd:variable name="quote" value="citovat"/>
- <cd:variable name="speech" value="speech"/>
- <cd:variable name="itemize" value="vycet"/>
- <cd:variable name="mathalignment" value="mathalignment"/>
- <cd:variable name="mathcases" value="mathcases"/>
- <cd:variable name="mathmatrix" value="mathmatrix"/>
- </cd:variables>
-
- <cd:constants>
- <cd:constant name="sorttype" value="sorttype"/>
- <cd:constant name="compress" value="compress"/>
- <cd:constant name="autohang" value="autohang"/>
- <cd:constant name="suffix" value="suffix"/>
- <cd:constant name="leftquotation" value="citacevlevo"/>
- <cd:constant name="rightquotation" value="citacevpravo"/>
- <cd:constant name="leftquote" value="citovatvlevo"/>
- <cd:constant name="rightquote" value="citovatvpravo"/>
- <cd:constant name="compoundhyphen" value="compoundhyphen"/>
- <cd:constant name="leftcompoundhyphen" value="leftcompoundhyphen"/>
- <cd:constant name="rightcompoundhyphen" value="rightcompoundhyphen"/>
- <cd:constant name="midsentence" value="midsentence"/>
- <cd:constant name="leftsentence" value="vetavlevo"/>
- <cd:constant name="rightsentence" value="vetavpravo"/>
- <cd:constant name="leftsubsentence" value="podvetavlevo"/>
- <cd:constant name="rightsubsentence" value="podvetavpravo"/>
- <cd:constant name="leftspeech" value="leftspeech"/>
- <cd:constant name="middlespeech" value="middlespeech"/>
- <cd:constant name="rightspeech" value="rightspeech"/>
- <cd:constant name="limittext" value="limittext"/>
- <cd:constant name="date" value="datum"/>
- <cd:constant name="spacebefore" value="mezerapred"/>
- <cd:constant name="spaceinbetween" value="spaceinbetween"/>
- <cd:constant name="spaceafter" value="mezeraza"/>
- <cd:constant name="sidespacebefore" value="bocnimezerapred"/>
- <cd:constant name="sidespaceafter" value="bocnimezeraza"/>
- <cd:constant name="to" value="na"/>
- <cd:constant name="indicator" value="indikator"/>
- <cd:constant name="background" value="pozadi"/>
- <cd:constant name="backgrounddepth" value="hloubkapozadi"/>
- <cd:constant name="backgroundcorner" value="rohpozadi"/>
- <cd:constant name="splitcolor" value="splitcolor"/>
- <cd:constant name="backgroundcolor" value="barvapozadi"/>
- <cd:constant name="foregroundcolor" value="foregroundcolor"/>
- <cd:constant name="foregroundstyle" value="foregroundstyle"/>
- <cd:constant name="clipoffset" value="clipoffset"/>
- <cd:constant name="backgroundoffset" value="offsetpozadi"/>
- <cd:constant name="backgroundscreen" value="rastrpozadi"/>
- <cd:constant name="backgroundradius" value="polomerpozadi"/>
- <cd:constant name="address" value="adresa"/>
- <cd:constant name="stopper" value="predel"/>
- <cd:constant name="distance" value="vzdalenost"/>
- <cd:constant name="paragraph" value="odstavec"/>
- <cd:constant name="axis" value="osa"/>
- <cd:constant name="author" value="autor"/>
- <cd:constant name="auto" value="auto"/>
- <cd:constant name="autofile" value="autofile"/>
- <cd:constant name="balance" value="rovnovaha"/>
- <cd:constant name="bookmark" value="zalozka"/>
- <cd:constant name="wfactor" value="sfaktor"/>
- <cd:constant name="inner" value="vnitrni"/>
- <cd:constant name="blank" value="prazdny"/>
- <cd:constant name="obstruction" value="prekazka"/>
- <cd:constant name="blockway" value="dobloku"/>
- <cd:constant name="bottomspace" value="bottomspace"/>
- <cd:constant name="top" value="vrsek"/>
- <cd:constant name="topdistance" value="vzdalenostvrsku"/>
- <cd:constant name="topframe" value="rameceknahore"/>
- <cd:constant name="topoffset" value="offsetvrsku"/>
- <cd:constant name="topstate" value="statusvrsku"/>
- <cd:constant name="width" value="sirka"/>
- <cd:constant name="autowidth" value="autosirka"/>
- <cd:constant name="maxwidth" value="maxsirka"/>
- <cd:constant name="minwidth" value="minsirka"/>
- <cd:constant name="source" value="zdroj"/>
- <cd:constant name="command" value="prikaz"/>
- <cd:constant name="commands" value="prikazy"/>
- <cd:constant name="component" value="component"/>
- <cd:constant name="contrastcolor" value="kontrastnibarva"/>
- <cd:constant name="conversion" value="konverze"/>
- <cd:constant name="headconversion" value="konverzehlavicky"/>
- <cd:constant name="headlabel" value="popisekhlavicky"/>
- <cd:constant name="criterium" value="kriterium"/>
- <cd:constant name="date" value="datum"/>
- <cd:constant name="default" value="implicitni"/>
- <cd:constant name="depth" value="hloubka"/>
- <cd:constant name="depthcorrection" value="korekcehloubky"/>
- <cd:constant name="continue" value="pokracovat"/>
- <cd:constant name="doublesided" value="oboustranne"/>
- <cd:constant name="dummy" value="dummy"/>
- <cd:constant name="unit" value="jednotka"/>
- <cd:constant name="ownnumber" value="vlastnicislo"/>
- <cd:constant name="evenmargin" value="sudamarginalie"/>
- <cd:constant name="expansion" value="expanzen"/>
- <cd:constant name="keyexpansion" value="keyexpansion"/>
- <cd:constant name="factor" value="faktor"/>
- <cd:constant name="convertfile" value="konverzesouboru"/>
- <cd:constant name="file" value="soubor"/>
- <cd:constant name="inputfile" value="inputfile"/>
- <cd:constant name="size" value="velikost"/>
- <cd:constant name="autofocus" value="autoostreni"/>
- <cd:constant name="focus" value="zaostreni"/>
- <cd:constant name="directory" value="adresar"/>
- <cd:constant name="cache" value="cache"/>
- <cd:constant name="grid" value="mrizka"/>
- <cd:constant name="big" value="velky"/>
- <cd:constant name="get" value="ziskat"/>
- <cd:constant name="hang" value="zaveseni"/>
- <cd:constant name="repeat" value="opakovat"/>
- <cd:constant name="hfactor" value="vfaktor"/>
- <cd:constant name="corner" value="roh"/>
- <cd:constant name="hoffset" value="hoffset"/>
- <cd:constant name="frames" value="ramecky"/>
- <cd:constant name="header" value="zahlavi"/>
- <cd:constant name="headerdistance" value="vzdalenostzahlavi"/>
- <cd:constant name="headerstate" value="statuszahlavi"/>
- <cd:constant name="height" value="vyska"/>
- <cd:constant name="maxheight" value="maxvyska"/>
- <cd:constant name="minheight" value="minvyska"/>
- <cd:constant name="mindepth" value="mindepth"/>
- <cd:constant name="current" value="aktualni"/>
- <cd:constant name="in" value="v"/>
- <cd:constant name="indenting" value="odsazovani"/>
- <cd:constant name="interaction" value="interakce"/>
- <cd:constant name="interlinespace" value="meziradkovamezera"/>
- <cd:constant name="items" value="polozky"/>
- <cd:constant name="fallback" value="fallback"/>
- <cd:constant name="frame" value="ramecek"/>
- <cd:constant name="framedepth" value="hloubkaramecku"/>
- <cd:constant name="framecorner" value="rohramecku"/>
- <cd:constant name="framecolor" value="barvaramecku"/>
- <cd:constant name="frameoffset" value="offsetramecku"/>
- <cd:constant name="frameradius" value="polomerramecku"/>
- <cd:constant name="marginedge" value="textovahrana"/>
- <cd:constant name="marginedgetext" value="textmarginalnihookraje"/>
- <cd:constant name="aligncharacter" value="aligncharacter"/>
- <cd:constant name="alignmentcharacter" value="alignmentcharacter"/>
- <cd:constant name="small" value="male"/>
- <cd:constant name="color" value="barva"/>
- <cd:constant name="column" value="sloupec"/>
- <cd:constant name="columns" value="sloupce"/>
- <cd:constant name="columndistance" value="vzdalenostsloupcu"/>
- <cd:constant name="headcommand" value="headcommand"/>
- <cd:constant name="headcolor" value="barvahlavicky"/>
- <cd:constant name="headstyle" value="stylhlavicky"/>
- <cd:constant name="afterhead" value="pohlavicce"/>
- <cd:constant name="veroffset" value="offsethlavicky"/>
- <cd:constant name="coupling" value="propojeni"/>
- <cd:constant name="couplingway" value="zpusobpropojeni"/>
- <cd:constant name="beforehead" value="predhlavickou"/>
- <cd:constant name="topspace" value="svrchnimezera"/>
- <cd:constant name="bodyfont" value="zakladnifont"/>
- <cd:constant name="label" value="popisek"/>
- <cd:constant name="empty" value="prazdne"/>
- <cd:constant name="style" value="pismeno"/>
- <cd:constant name="rule" value="linka"/>
- <cd:constant name="rulethickness" value="tloustkalinky"/>
- <cd:constant name="rulecolor" value="barvalinky"/>
- <cd:constant name="list" value="seznam"/>
- <cd:constant name="leftwidth" value="sirkavlevo"/>
- <cd:constant name="leftframe" value="ramecekvlevo"/>
- <cd:constant name="leftcolor" value="barvavlevo"/>
- <cd:constant name="leftstyle" value="stylvlevo"/>
- <cd:constant name="leftmargin" value="levyokraj"/>
- <cd:constant name="innermargin" value="innermargin"/>
- <cd:constant name="outermargin" value="outermargin"/>
- <cd:constant name="leftmargindistance" value="vzdalenostlevehookraje"/>
- <cd:constant name="leftoffset" value="levyoffset"/>
- <cd:constant name="leftedge" value="levahrana"/>
- <cd:constant name="leftedgedistance" value="vzdalenostlevehrany"/>
- <cd:constant name="lefttext" value="textvlevo"/>
- <cd:constant name="left" value="vlevo"/>
- <cd:constant name="nleft" value="nvlevo"/>
- <cd:constant name="logo" value="logo"/>
- <cd:constant name="logos" value="loga"/>
- <cd:constant name="local" value="lokalne"/>
- <cd:constant name="margin" value="marginalie"/>
- <cd:constant name="margindistance" value="vzdalenostokraje"/>
- <cd:constant name="margintext" value="textmarginalie"/>
- <cd:constant name="marking" value="znaceni"/>
- <cd:constant name="marcolor" value="barvaznacky"/>
- <cd:constant name="marstyle" value="stylsnacky"/>
- <cd:constant name="menu" value="menu"/>
- <cd:constant name="splitmethod" value="splitmethod"/>
- <cd:constant name="textmethod" value="textmethod"/>
- <cd:constant name="sidemethod" value="sidemethod"/>
- <cd:constant name="method" value="metoda"/>
- <cd:constant name="middle" value="stredni"/>
- <cd:constant name="middletext" value="strednitext"/>
- <cd:constant name="max" value="max"/>
- <cd:constant name="min" value="min"/>
- <cd:constant name="sample" value="vzor"/>
- <cd:constant name="after" value="po"/>
- <cd:constant name="name" value="jmeno"/>
- <cd:constant name="commandafter" value="prikazpo"/>
- <cd:constant name="ntop" value="nvrsek"/>
- <cd:constant name="level" value="uroven"/>
- <cd:constant name="levels" value="urovne"/>
- <cd:constant name="nbottom" value="nspodek"/>
- <cd:constant name="norm" value="norm"/>
- <cd:constant name="nlines" value="nradky"/>
- <cd:constant name="number" value="cislo"/>
- <cd:constant name="numbercommand" value="ciselnyprikaz"/>
- <cd:constant name="numbering" value="cislovani"/>
- <cd:constant name="numbercolor" value="barvacisla"/>
- <cd:constant name="numberstyle" value="stylcisla"/>
- <cd:constant name="numberseparator" value="oddelovaccisla"/>
- <cd:constant name="object" value="objekt"/>
- <cd:constant name="offset" value="offset"/>
- <cd:constant name="bottom" value="spodek"/>
- <cd:constant name="bottomdistance" value="vzdalenostspodku"/>
- <cd:constant name="bottomframe" value="ramecekdole"/>
- <cd:constant name="bottomoffset" value="offsetspodku"/>
- <cd:constant name="bottomstate" value="statusspodku"/>
- <cd:constant name="oddmargin" value="lichyokraj"/>
- <cd:constant name="at" value="u"/>
- <cd:constant name="option" value="volba"/>
- <cd:constant name="page" value="stranka"/>
- <cd:constant name="pagecommand" value="strankovyprikaz"/>
- <cd:constant name="pagecolor" value="barvastranky"/>
- <cd:constant name="pagestyle" value="stylstranky"/>
- <cd:constant name="pagenumber" value="cislostranky"/>
- <cd:constant name="headnumber" value="cislonadpisu"/>
- <cd:constant name="pageboundaries" value="hranicestranky"/>
- <cd:constant name="pagestate" value="pagestate"/>
- <cd:constant name="palet" value="paleta"/>
- <cd:constant name="paper" value="papir"/>
- <cd:constant name="location" value="misto"/>
- <cd:constant name="placestopper" value="predelmista"/>
- <cd:constant name="place" value="umistit"/>
- <cd:constant name="placehead" value="umistihlavicku"/>
- <cd:constant name="position" value="position"/>
- <cd:constant name="prefix" value="prefix"/>
- <cd:constant name="preset" value="prednastaveni"/>
- <cd:constant name="preview" value="nahled"/>
- <cd:constant name="process" value="process"/>
- <cd:constant name="spot" value="spot"/>
- <cd:constant name="dot" value="tecka"/>
- <cd:constant name="arrow" value="sipka"/>
- <cd:constant name="edge" value="hrana"/>
- <cd:constant name="edgedistance" value="vzdalenosthrany"/>
- <cd:constant name="screen" value="rastr"/>
- <cd:constant name="rightwidth" value="sirkavpravo"/>
- <cd:constant name="rightframe" value="ramecekvpravo"/>
- <cd:constant name="rightcolor" value="barvavpravo"/>
- <cd:constant name="rightstyle" value="stylvpravo"/>
- <cd:constant name="rightmargin" value="pravyokraj"/>
- <cd:constant name="rightmargindistance" value="vzdalenostpravehookraje"/>
- <cd:constant name="rightoffset" value="pravyoffset"/>
- <cd:constant name="rightedge" value="pravahrana"/>
- <cd:constant name="rightedgedistance" value="vzdalenostpravehrany"/>
- <cd:constant name="righttext" value="textvpravo"/>
- <cd:constant name="right" value="vpravo"/>
- <cd:constant name="nright" value="nvpravo"/>
- <cd:constant name="reduction" value="redukce"/>
- <cd:constant name="referencing" value="odkazujici"/>
- <cd:constant name="line" value="radek"/>
- <cd:constant name="linecorrection" value="korekceradku"/>
- <cd:constant name="lines" value="radky"/>
- <cd:constant name="stretch" value="natahnout"/>
- <cd:constant name="resolution" value="rozliseni"/>
- <cd:constant name="rotation" value="rotace"/>
- <cd:constant name="orientation" value="orientation"/>
- <cd:constant name="horoffset" value="horoffset"/>
- <cd:constant name="backspace" value="zpetnamezera"/>
- <cd:constant name="direction" value="smer"/>
- <cd:constant name="scale" value="meritko"/>
- <cd:constant name="separator" value="oddelovac"/>
- <cd:constant name="display" value="obrazovka"/>
- <cd:constant name="scope" value="rozsah"/>
- <cd:constant name="section" value="oddil"/>
- <cd:constant name="sectionnumber" value="cislooddilu"/>
- <cd:constant name="setups" value="setups"/>
- <cd:constant name="cutspace" value="cutspace"/>
- <cd:constant name="family" value="rodina"/>
- <cd:constant name="space" value="mezera"/>
- <cd:constant name="spacing" value="mezerovani"/>
- <cd:constant name="split" value="split"/>
- <cd:constant name="splitoffset" value="splitoffset"/>
- <cd:constant name="indentnext" value="odsadpristi"/>
- <cd:constant name="step" value="krok"/>
- <cd:constant name="stack" value="stack"/>
- <cd:constant name="start" value="start"/>
- <cd:constant name="state" value="status"/>
- <cd:constant name="stop" value="stop"/>
- <cd:constant name="radius" value="polomer"/>
- <cd:constant name="dash" value="pomlcka"/>
- <cd:constant name="sub" value="pod"/>
- <cd:constant name="subtitle" value="podtitulek"/>
- <cd:constant name="symbol" value="symbol"/>
- <cd:constant name="closesymbol" value="closesymbol"/>
- <cd:constant name="closecommand" value="closecommand"/>
- <cd:constant name="symbolset" value="sadasymbolu"/>
- <cd:constant name="symcolor" value="barvasymbolu"/>
- <cd:constant name="symstyle" value="stylsymboly"/>
- <cd:constant name="synonym" value="synonymum"/>
- <cd:constant name="synonymcolor" value="barvasynonyma"/>
- <cd:constant name="synonymstyle" value="stylsynonyma"/>
- <cd:constant name="tab" value="tab"/>
- <cd:constant name="sign" value="znak"/>
- <cd:constant name="text" value="text"/>
- <cd:constant name="listtext" value="listtext"/>
- <cd:constant name="textwidth" value="sirkatextu"/>
- <cd:constant name="numberwidth" value="numberwidth"/>
- <cd:constant name="textcommand" value="textovyprikaz"/>
- <cd:constant name="textsize" value="velikosttextu"/>
- <cd:constant name="textcolor" value="barvatextu"/>
- <cd:constant name="textstyle" value="styltextu"/>
- <cd:constant name="textseparator" value="oddelovactextu"/>
- <cd:constant name="textstate" value="statustextu"/>
- <cd:constant name="title" value="titul"/>
- <cd:constant name="titlestyle" value="styltitulek"/>
- <cd:constant name="titlecolor" value="barvatitulek"/>
- <cd:constant name="titledistance" value="vzdalenosttitulek"/>
- <cd:constant name="titleleft" value="titleleft"/>
- <cd:constant name="titleright" value="titleright"/>
- <cd:constant name="titlecommand" value="titlecommand"/>
- <cd:constant name="aligntitle" value="zarovnejtitul"/>
- <cd:constant name="tolerance" value="tolerance"/>
- <cd:constant name="inbetween" value="mezi"/>
- <cd:constant name="type" value="typ"/>
- <cd:constant name="align" value="zarovnani"/>
- <cd:constant name="symalign" value="symzarovnani"/>
- <cd:constant name="urlspace" value="prostorurl"/>
- <cd:constant name="urlalternative" value="urlalternativa"/>
- <cd:constant name="from" value="z"/>
- <cd:constant name="alternative" value="alternativa"/>
- <cd:constant name="increment" value="zvysit"/>
- <cd:constant name="incrementnumber" value="zvysujicicislo"/>
- <cd:constant name="resetnumber" value="resetnumber"/>
- <cd:constant name="reference" value="odkaz"/>
- <cd:constant name="unknownreference" value="neznamyodkaz"/>
- <cd:constant name="footer" value="upati"/>
- <cd:constant name="footerdistance" value="vzdalenostupati"/>
- <cd:constant name="footerstate" value="statusupati"/>
- <cd:constant name="voffset" value="voffset"/>
- <cd:constant name="next" value="dalsi"/>
- <cd:constant name="before" value="pred"/>
- <cd:constant name="commandbefore" value="predchoziprikaz"/>
- <cd:constant name="previous" value="predchozi"/>
- <cd:constant name="previousnumber" value="predchozicislo"/>
- <cd:constant name="delay" value="prodleva"/>
- <cd:constant name="way" value="zpusob"/>
- <cd:constant name="random" value="nahodne"/>
- <cd:constant name="white" value="bily"/>
- <cd:constant name="xfactor" value="xfaktor"/>
- <cd:constant name="xmax" value="xmax"/>
- <cd:constant name="xoffset" value="xoffset"/>
- <cd:constant name="xscale" value="xmeritko"/>
- <cd:constant name="xstep" value="xkrok"/>
- <cd:constant name="yfactor" value="yfaktor"/>
- <cd:constant name="ymax" value="ymax"/>
- <cd:constant name="yoffset" value="yoffset"/>
- <cd:constant name="yscale" value="ymeritko"/>
- <cd:constant name="ystep" value="ykrok"/>
- <cd:constant name="samepage" value="stejnastranka"/>
- <cd:constant name="itemalign" value="itemalign"/>
- <cd:constant name="sidealign" value="sidealign"/>
- <cd:constant name="side" value="pocitat"/>
- <cd:constant name="fieldlayer" value="fieldlayer"/>
- <cd:constant name="textlayer" value="textlayer"/>
- <cd:constant name="fieldbackgroundcolor" value="barvapozadipole"/>
- <cd:constant name="fieldframecolor" value="barvarameckupole"/>
- <cd:constant name="fieldoffset" value="offsetpole"/>
- <cd:constant name="action" value="akce"/>
- <cd:constant name="openaction" value="otevriakci"/>
- <cd:constant name="closeaction" value="zavriakci"/>
- <cd:constant name="openpageaction" value="akceotevrenistranky"/>
- <cd:constant name="closepageaction" value="akcezavrenistranky"/>
- <cd:constant name="clickin" value="klikuvnitr"/>
- <cd:constant name="clickout" value="klikvne"/>
- <cd:constant name="regionin" value="oblastuvnitr"/>
- <cd:constant name="regionout" value="oblastvne"/>
- <cd:constant name="focusin" value="focusin"/>
- <cd:constant name="focusout" value="focusout"/>
- <cd:constant name="afterkey" value="klavesapo"/>
- <cd:constant name="format" value="formatovat"/>
- <cd:constant name="validate" value="validovat"/>
- <cd:constant name="calculate" value="pocitat"/>
- <cd:constant name="click" value="klik"/>
- <cd:constant name="vcommand" value="vprikaz"/>
- <cd:constant name="icommand" value="iprikaz"/>
- <cd:constant name="ccommand" value="cprikaz"/>
- <cd:constant name="textdistance" value="textdistance"/>
- <cd:constant name="numberdistance" value="numberdistance"/>
- <cd:constant name="textmargin" value="textmargin"/>
- <cd:constant name="keyword" value="keyword"/>
- <cd:constant name="deeptextcommand" value="deeptextcommand"/>
- <cd:constant name="deepnumbercommand" value="deepnumbercommand"/>
- </cd:constants>
-
- <cd:constants>
- <cd:constant name="extras" value="extras"/>
- </cd:constants>
-
- <cd:variables>
- <cd:variable name="on" value="zap"/>
- <cd:variable name="test" value="test"/>
- <cd:variable name="serried" value="semknuto"/>
- <cd:variable name="joinedup" value="spojeno"/>
- <cd:variable name="absolute" value="absolutni"/>
- <cd:variable name="background" value="pozadi"/>
- <cd:variable name="backward" value="zpet"/>
- <cd:variable name="subbackward" value="podzpet"/>
- <cd:variable name="action" value="akce"/>
- <cd:variable name="stopper" value="predel"/>
- <cd:variable name="paragraph" value="odstavec"/>
- <cd:variable name="all" value="vse"/>
- <cd:variable name="always" value="vzdy"/>
- <cd:variable name="auto" value="auto"/>
- <cd:variable name="autointro" value="autouvod"/>
- <cd:variable name="both" value="obe"/>
- <cd:variable name="inner" value="uvnitr"/>
- <cd:variable name="blank" value="prazdny"/>
- <cd:variable name="disable" value="zablokovat"/>
- <cd:variable name="top" value="vrsek"/>
- <cd:variable name="wide" value="siroce"/>
- <cd:variable name="width" value="sirka"/>
- <cd:variable name="minwidth" value="minsirka"/>
- <cd:variable name="outer" value="vnejsi"/>
- <cd:variable name="numbers" value="cisla"/>
- <cd:variable name="Numbers" value="Cisla"/>
- <cd:variable name="command" value="prikaz"/>
- <cd:variable name="commands" value="prikazy"/>
- <cd:variable name="concept" value="koncept"/>
- <cd:variable name="day" value="den"/>
- <cd:variable name="date" value="datum"/>
- <cd:variable name="default" value="implicitni"/>
- <cd:variable name="final" value="finalni"/>
- <cd:variable name="float" value="plvouciobjekt"/>
- <cd:variable name="depth" value="podlehloubky"/>
- <cd:variable name="doublesided" value="dvoustranny"/>
- <cd:variable name="first" value="prvni"/>
- <cd:variable name="each" value="kazdy"/>
- <cd:variable name="singlesided" value="jednostranne"/>
- <cd:variable name="somewhere" value="nekde"/>
- <cd:variable name="nowhere" value="nikde"/>
- <cd:variable name="even" value="sude"/>
- <cd:variable name="external" value="externi"/>
- <cd:variable name="file" value="soubor"/>
- <cd:variable name="flexible" value="prizpusobive"/>
- <cd:variable name="force" value="sila"/>
- <cd:variable name="used" value="uzito"/>
- <cd:variable name="none" value="zadny"/>
- <cd:variable name="nomarking" value="zadneznaceni"/>
- <cd:variable name="nonumber" value="nonumber"/>
- <cd:variable name="nowhite" value="zadnabila"/>
- <cd:variable name="rotated" value="otoceno"/>
- <cd:variable name="mirrored" value="zrcadleno"/>
- <cd:variable name="global" value="globalne"/>
- <cd:variable name="grid" value="mrizka"/>
- <cd:variable name="nogrid" value="nogrid"/>
- <cd:variable name="big" value="velke"/>
- <cd:variable name="bigbodyfont" value="bigbodyfont"/>
- <cd:variable name="bigpreference" value="vysokapriorita"/>
- <cd:variable name="gray" value="seda"/>
- <cd:variable name="halfline" value="pulradku"/>
- <cd:variable name="keep" value="drzet"/>
- <cd:variable name="hanging" value="visici"/>
- <cd:variable name="spacing" value="mezerovani"/>
- <cd:variable name="nospacing" value="nospacing"/>
- <cd:variable name="repeat" value="opakovat"/>
- <cd:variable name="fix" value="fixuj"/>
- <cd:variable name="here" value="zde"/>
- <cd:variable name="header" value="zahlavi"/>
- <cd:variable name="high" value="vysoko"/>
- <cd:variable name="height" value="vyska"/>
- <cd:variable name="minheight" value="minvyska"/>
- <cd:variable name="horizontal" value="horizontalne"/>
- <cd:variable name="current" value="aktualni"/>
- <cd:variable name="hz" value="hz"/>
- <cd:variable name="nohz" value="nohz"/>
- <cd:variable name="italic" value="kurziva"/>
- <cd:variable name="inherit" value="inherit"/>
- <cd:variable name="inleft" value="vlevo"/>
- <cd:variable name="inmargin" value="naokraji"/>
- <cd:variable name="inright" value="vpravo"/>
- <cd:variable name="interaction" value="interakce"/>
- <cd:variable name="intext" value="dotextu"/>
- <cd:variable name="intro" value="uvod"/>
- <cd:variable name="its" value="pol"/>
- <cd:variable name="yes" value="ano"/>
- <cd:variable name="year" value="rok"/>
- <cd:variable name="frame" value="ramecek"/>
- <cd:variable name="marginedge" value="textovahrana"/>
- <cd:variable name="cap" value="kap"/>
- <cd:variable name="capital" value="kapitalky"/>
- <cd:variable name="referral" value="znacka"/>
- <cd:variable name="small" value="male"/>
- <cd:variable name="smallnormal" value="malenormalni"/>
- <cd:variable name="smallslanted" value="malesklonene"/>
- <cd:variable name="smallslantedbold" value="malesklonenetucne"/>
- <cd:variable name="smallitalic" value="malekurzivni"/>
- <cd:variable name="smallitalicbold" value="malekurzivnitucne"/>
- <cd:variable name="smalltype" value="maletype"/>
- <cd:variable name="smallbold" value="maletucne"/>
- <cd:variable name="smallboldslanted" value="maletucnesklonene"/>
- <cd:variable name="smallbolditalic" value="maletucnekurzivni"/>
- <cd:variable name="smallbodyfont" value="smallbodyfont"/>
- <cd:variable name="split" value="split"/>
- <cd:variable name="toggle" value="toggle"/>
- <cd:variable name="color" value="barevne"/>
- <cd:variable name="column" value="column"/>
- <cd:variable name="columns" value="sloupce"/>
- <cd:variable name="head" value="hlavicka"/>
- <cd:variable name="low" value="nizko"/>
- <cd:variable name="last" value="posledni"/>
- <cd:variable name="label" value="popisek"/>
- <cd:variable name="lohi" value="nivy"/>
- <cd:variable name="tall" value="vysoko"/>
- <cd:variable name="empty" value="prazdne"/>
- <cd:variable name="Character" value="Pismeno"/>
- <cd:variable name="character" value="pismeno"/>
- <cd:variable name="Characters" value="Pismena"/>
- <cd:variable name="characters" value="pismena"/>
- <cd:variable name="landscape" value="nasirku"/>
- <cd:variable name="rule" value="linka"/>
- <cd:variable name="list" value="seznam"/>
- <cd:variable name="leftmargin" value="levyokraj"/>
- <cd:variable name="leftpage" value="levastranka"/>
- <cd:variable name="leftedge" value="levahrana"/>
- <cd:variable name="left" value="vlevo"/>
- <cd:variable name="local" value="lokalne"/>
- <cd:variable name="new" value="novy"/>
- <cd:variable name="old" value="old"/>
- <cd:variable name="MONTH" value="MESIC"/>
- <cd:variable name="month" value="mesic"/>
- <cd:variable name="mar" value="mar"/>
- <cd:variable name="item" value="polozka"/>
- <cd:variable name="marking" value="znaceni"/>
- <cd:variable name="margin" value="marginalie"/>
- <cd:variable name="max" value="max"/>
- <cd:variable name="min" value="min"/>
- <cd:variable name="mediaeval" value="stredoveky"/>
- <cd:variable name="medium" value="stredni"/>
- <cd:variable name="middle" value="nastred"/>
- <cd:variable name="after" value="po"/>
- <cd:variable name="name" value="jmeno"/>
- <cd:variable name="opposite" value="naproti"/>
- <cd:variable name="no" value="ne"/>
- <cd:variable name="negative" value="negativ"/>
- <cd:variable name="positive" value="positiv"/>
- <cd:variable name="not" value="ne"/>
- <cd:variable name="never" value="nikdy"/>
- <cd:variable name="normal" value="normalni"/>
- <cd:variable name="number" value="cislo"/>
- <cd:variable name="offset" value="offset"/>
- <cd:variable name="unknown" value="neznamy"/>
- <cd:variable name="bottom" value="spodek"/>
- <cd:variable name="odd" value="liche"/>
- <cd:variable name="packed" value="zhustene"/>
- <cd:variable name="unpacked" value="rozbalene"/>
- <cd:variable name="makeup" value="zlom"/>
- <cd:variable name="atmargin" value="naokraji"/>
- <cd:variable name="overlay" value="prekryv"/>
- <cd:variable name="page" value="stranka"/>
- <cd:variable name="pagenumber" value="cislostranky"/>
- <cd:variable name="paper" value="papir"/>
- <cd:variable name="display" value="obrazovka"/>
- <cd:variable name="reverse" value="reverse"/>
- <cd:variable name="fit" value="prizpusobive"/>
- <cd:variable name="nofit" value="nofit"/>
- <cd:variable name="postscript" value="postscript"/>
- <cd:variable name="preview" value="nahled"/>
- <cd:variable name="program" value="program"/>
- <cd:variable name="process" value="process"/>
- <cd:variable name="spot" value="spot"/>
- <cd:variable name="dot" value="tecka"/>
- <cd:variable name="ran" value="rozsah"/>
- <cd:variable name="edge" value="hrana"/>
- <cd:variable name="screen" value="rastr"/>
- <cd:variable name="rectangular" value="pravouhly"/>
- <cd:variable name="rightmargin" value="pravyokraj"/>
- <cd:variable name="rightpage" value="pravastranka"/>
- <cd:variable name="rightedge" value="pravahrana"/>
- <cd:variable name="right" value="vpravo"/>
- <cd:variable name="line" value="radek"/>
- <cd:variable name="hang" value="zaveseni"/>
- <cd:variable name="register" value="rejstrik"/>
- <cd:variable name="relative" value="relativni"/>
- <cd:variable name="reset" value="reset"/>
- <cd:variable name="Romannumerals" value="Rimskecislice"/>
- <cd:variable name="romannumerals" value="rimskecislice"/>
- <cd:variable name="greek" value="recky"/>
- <cd:variable name="Greek" value="Recky"/>
- <cd:variable name="round" value="zaobleny"/>
- <cd:variable name="rotate" value="otoc"/>
- <cd:variable name="stretch" value="natahnout"/>
- <cd:variable name="backspace" value="zpetnamezera"/>
- <cd:variable name="broad" value="siroky"/>
- <cd:variable name="row" value="row"/>
- <cd:variable name="slanted" value="sklonene"/>
- <cd:variable name="slantedbold" value="sklonenetucne"/>
- <cd:variable name="synchronize" value="synchronize"/>
- <cd:variable name="italicbold" value="kurzivnitucne"/>
- <cd:variable name="sectionnumber" value="cislooddilu"/>
- <cd:variable name="narrow" value="uzky"/>
- <cd:variable name="cutspace" value="cutspace"/>
- <cd:variable name="tolerant" value="tolerantni"/>
- <cd:variable name="space" value="mezera"/>
- <cd:variable name="standard" value="standardni"/>
- <cd:variable name="start" value="start"/>
- <cd:variable name="stop" value="stop"/>
- <cd:variable name="strict" value="striktni"/>
- <cd:variable name="strut" value="strut"/>
- <cd:variable name="sub" value="pod"/>
- <cd:variable name="sym" value="sym"/>
- <cd:variable name="txt" value="txt"/>
- <cd:variable name="symbol" value="symbol"/>
- <cd:variable name="text" value="text"/>
- <cd:variable name="back" value="zpet"/>
- <cd:variable name="test" value="test"/>
- <cd:variable name="inbetween" value="mezi"/>
- <cd:variable name="type" value="type"/>
- <cd:variable name="off" value="vyp"/>
- <cd:variable name="url" value="url"/>
- <cd:variable name="URL" value="URL"/>
- <cd:variable name="fixed" value="fixne"/>
- <cd:variable name="loose" value="uvolnene"/>
- <cd:variable name="continue" value="pokracovat"/>
- <cd:variable name="vertical" value="vertikalne"/>
- <cd:variable name="bold" value="tucne"/>
- <cd:variable name="sansbold" value="sanstucne"/>
- <cd:variable name="boldslanted" value="tucnesklonene"/>
- <cd:variable name="bolditalic" value="tucnekurzivni"/>
- <cd:variable name="quadruple" value="ctyrnasobny"/>
- <cd:variable name="footer" value="upati"/>
- <cd:variable name="next" value="dalsi"/>
- <cd:variable name="before" value="pred"/>
- <cd:variable name="foreground" value="popredi"/>
- <cd:variable name="preference" value="nastaveni"/>
- <cd:variable name="temporary" value="docasne"/>
- <cd:variable name="forward" value="vpred"/>
- <cd:variable name="subforward" value="podvpred"/>
- <cd:variable name="previous" value="predchozi"/>
- <cd:variable name="value" value="hodnota"/>
- <cd:variable name="week" value="tyden"/>
- <cd:variable name="weekday" value="vsedniden"/>
- <cd:variable name="WEEKDAY" value="VSEDNIDEN"/>
- <cd:variable name="random" value="nahodny"/>
- <cd:variable name="white" value="bily"/>
- <cd:variable name="very" value="velmi"/>
- <cd:variable name="verytolerant" value="velmitolerantni"/>
- <cd:variable name="verystrict" value="velmistriktni"/>
- <cd:variable name="see" value="viz"/>
- <cd:variable name="smallcaps" value="kapitalky"/>
- <cd:variable name="WORD" value="SLOVO"/>
- <cd:variable name="firstpage" value="prvnistranka"/>
- <cd:variable name="firstcolumn" value="firstcolumn"/>
- <cd:variable name="previouspage" value="predchozistranka"/>
- <cd:variable name="nextpage" value="dalsistranka"/>
- <cd:variable name="lastpage" value="poslednistrana"/>
- <cd:variable name="lastcolumn" value="lastcolumn"/>
- <cd:variable name="lastpagenumber" value="lastpagenumber"/>
- <cd:variable name="subpage" value="podstranka"/>
- <cd:variable name="firstsubpage" value="prvnipodstranka"/>
- <cd:variable name="previoussubpage" value="predchozipodstranka"/>
- <cd:variable name="nextsubpage" value="dalsipodstranka"/>
- <cd:variable name="lastsubpage" value="poslaednipodstranka"/>
- <cd:variable name="nextevenpage" value="dalsisudastranka"/>
- <cd:variable name="nextoddpage" value="dalsilichastranka"/>
- <cd:variable name="previousevenpage" value="predchozisudastranka"/>
- <cd:variable name="previousoddpage" value="predchozilichastranka"/>
- <cd:variable name="readonly" value="pouzeprocteni"/>
- <cd:variable name="required" value="pozadovane"/>
- <cd:variable name="protected" value="chranene"/>
- <cd:variable name="sorted" value="tridene"/>
- <cd:variable name="unavailable" value="nedostupne"/>
- <cd:variable name="hidden" value="skryte"/>
- <cd:variable name="printable" value="tisknutelne"/>
- <cd:variable name="bookmark" value="zalozka"/>
- <cd:variable name="nocheck" value="nocheck"/>
- <cd:variable name="innermargin" value="innermargin"/>
- <cd:variable name="outermargin" value="outermargin"/>
- <cd:variable name="inneredge" value="inneredge"/>
- <cd:variable name="outeredge" value="outeredge"/>
- <cd:variable name="controls" value="controls"/>
- <cd:variable name="nothanging" value="nothanging"/>
- <cd:variable name="hyphenated" value="hyphenated"/>
- <cd:variable name="nothyphenated" value="nothyphenated"/>
- <cd:variable name="overprint" value="overprint"/>
- <cd:variable name="knockout" value="knockout"/>
- <cd:variable name="xml" value="xml"/>
- <cd:variable name="enumeration" value="vycet"/>
- <cd:variable name="description" value="popis"/>
- <cd:variable name="lefthanging" value="lefthanging"/>
- <cd:variable name="righthanging" value="righthanging"/>
- </cd:variables>
-
- <cd:constants>
- <cd:constant name="controls" value="controls"/>
- <cd:constant name="global" value="globalne"/>
- <cd:constant name="overprint" value="overprint"/>
- </cd:constants>
-
- <cd:variables>
- <cd:variable name="conversion" value="konverze"/>
- <cd:variable name="by" value="skrz"/>
- </cd:variables>
-
- <cd:constants>
- <cd:constant name="dx" value="dx"/>
- <cd:constant name="dy" value="dy"/>
- <cd:constant name="nx" value="nx"/>
- <cd:constant name="ny" value="ny"/>
- <cd:constant name="nr" value="nr"/>
- <cd:constant name="nl" value="nl"/>
- <cd:constant name="nc" value="nc"/>
- <cd:constant name="sx" value="sx"/>
- <cd:constant name="sy" value="sy"/>
- <cd:constant name="n" value="n"/>
- <cd:constant name="vfil" value="vfil"/>
- <cd:constant name="hfil" value="hfil"/>
- <cd:constant name="strut" value="strut"/>
- <cd:constant name="autostrut" value="autostrut"/>
- <cd:constant name="reset" value="reset"/>
- <cd:constant name="set" value="set"/>
- <cd:constant name="escape" value="escape"/>
- <cd:constant name="apa" value="apa"/>
- </cd:constants>
-
- <cd:variables>
- <cd:variable name="calligraphic" value="kaligraficke"/>
- <cd:variable name="handwritten" value="rukopisne"/>
- <cd:variable name="sansserif" value="bezserifu"/>
- <cd:variable name="roman" value="antikva"/>
- <cd:variable name="teletype" value="strojopis"/>
- <cd:variable name="type" value="opis"/>
- <cd:variable name="serif" value="serif"/>
- <cd:variable name="regular" value="pravidelne"/>
- <cd:variable name="support" value="podpora"/>
- <cd:variable name="sans" value="sans"/>
- <cd:variable name="mono" value="mono"/>
- </cd:variables>
-
- <cd:elements>
- <cd:element name="begin" value="zacatek"/>
- <cd:element name="end" value="konec"/>
- <cd:element name="coupled" value="propojene"/>
- <cd:element name="get" value="ziskat"/>
- <cd:element name="currentlocal" value="aktualnelokalni"/>
- <cd:element name="endsetup" value="endsetup"/>
- <cd:element name="load" value="nacist"/>
- <cd:element name="emptyone" value="leer"/>
- <cd:element name="emptytwo" value="prazdne"/>
- <cd:element name="list" value="seznam"/>
- <cd:element name="listof" value="seznam"/>
- <cd:element name="local" value="lokalne"/>
- <cd:element name="place" value="umisti"/>
- <cd:element name="reserve" value="rezervovat"/>
- <cd:element name="start" value="start"/>
- <cd:element name="setup" value="nastaveni"/>
- <cd:element name="stop" value="stop"/>
- <cd:element name="increment" value="zvysit"/>
- <cd:element name="next" value="dalsi"/>
- <cd:element name="complete" value="uplny"/>
- <cd:element name="previous" value="predchozi"/>
- <cd:element name="previouslocal" value="predchozilokalni"/>
- <cd:element name="see" value="viz"/>
- <cd:element name="type" value="opis"/>
- <cd:element name="makeup" value="zlom"/>
- <cd:element name="text" value="text"/>
- </cd:elements>
-
- <cd:variables>
- <cd:variable name="buffer" value="buffer"/>
- <cd:variable name="linenote" value="linenote"/>
- <cd:variable name="comment" value="komentar"/>
- <cd:variable name="interactionmenu" value="interaktivnimenu"/>
- <cd:variable name="postponing" value="odlozit"/>
- <cd:variable name="hiding" value="skryt"/>
- <cd:variable name="tabulate" value="tabelator"/>
- <cd:variable name="tabulatehead" value="tabulatehead"/>
- <cd:variable name="tabulatetail" value="tabulatetail"/>
- <cd:variable name="fact" value="fakt"/>
- <cd:variable name="legend" value="legenda"/>
- <cd:variable name="formula" value="rovnice"/>
- <cd:variable name="tablehead" value="zahlavitabulky"/>
- <cd:variable name="tabletail" value="konectabulky"/>
- <cd:variable name="setups" value="einstellungen"/>
- <cd:variable name="helptext" value="textnapovedy"/>
- <cd:variable name="localenvironment" value="lokalnihoprostredi"/>
- <cd:variable name="sectionblockenvironment" value="sectionblockenvironment"/>
- <cd:variable name="pagecomment" value="komentarstranky"/>
- </cd:variables>
-
- <cd:variables>
- <cd:variable name="FirstPage" value="PrvniStrana"/>
- <cd:variable name="PreviousPage" value="PredchoziStrana"/>
- <cd:variable name="NextPage" value="DalsiStrana"/>
- <cd:variable name="LastPage" value="PosledniStrana"/>
- <cd:variable name="PreviousJump" value="PredchoziSkok"/>
- <cd:variable name="NextJump" value="NasledujiciSkok"/>
- <cd:variable name="ToggleViewer" value="ZmenitProhlizec"/>
- <cd:variable name="ExitViewer" value="UkoncitProhlizec"/>
- <cd:variable name="CloseDocument" value="ZavritDokument"/>
- <cd:variable name="SaveDocument" value="UlozitDokument"/>
- <cd:variable name="SaveNamedDocument" value="SaveNamedDocument"/>
- <cd:variable name="OpenNamedDocument" value="OpenNamedDocument"/>
- <cd:variable name="ViewerHelp" value="NapovedaProhlizece"/>
- <cd:variable name="PrintDocument" value="VytisknoutDokument"/>
- <cd:variable name="SearchDocument" value="ProhledatDokument"/>
- <cd:variable name="SearchAgain" value="HledatZnovu"/>
- <cd:variable name="Query" value="Query"/>
- <cd:variable name="QueryAgain" value="QueryAgain"/>
- <cd:variable name="GotoPage" value="JdiNaStranku"/>
- <cd:variable name="StartMovie" value="SpustitFilm"/>
- <cd:variable name="StopMovie" value="ZastavitFilm"/>
- <cd:variable name="PauseMovie" value="PozastavitFilm"/>
- <cd:variable name="ResumeMovie" value="PokracovatFilm"/>
- <cd:variable name="StartSound" value="StartZvuk"/>
- <cd:variable name="StopSound" value="StopZvuk"/>
- <cd:variable name="PauseSound" value="PozastavitZvuk"/>
- <cd:variable name="ResumeSound" value="PokracovatZvuk"/>
- <cd:variable name="StartRendering" value="StartRendering"/>
- <cd:variable name="StopRendering" value="StopRendering"/>
- <cd:variable name="PauseRendering" value="PauseRendering"/>
- <cd:variable name="ResumeRendering" value="ResumeRendering"/>
- <cd:variable name="SaveForm" value="UlozitFormular"/>
- <cd:variable name="LoadForm" value="NacistFormular"/>
- <cd:variable name="ResetForm" value="ResetFormulare"/>
- <cd:variable name="SubmitForm" value="PoslatFormular"/>
- <cd:variable name="HideField" value="SkryjPole"/>
- <cd:variable name="ShowField" value="UkazPole"/>
- <cd:variable name="FitWidth" value="FitWidth"/>
- <cd:variable name="FitHeight" value="FitHeight"/>
- <cd:variable name="HideLayer" value="HideLayer"/>
- <cd:variable name="VideLayer" value="VideLayer"/>
- <cd:variable name="ToggleLayer" value="ToggleLayer"/>
- <cd:variable name="ShowThumbs" value="UkazNahledy"/>
- <cd:variable name="ShowBookmarks" value="UkazZalozky"/>
- </cd:variables>
-
- <cd:variables>
- <cd:variable name="New" value="Novy"/>
- <cd:variable name="Balloon" value="Bublinka"/>
- <cd:variable name="Addition" value="Pridavek"/>
- <cd:variable name="Help" value="Napoveda"/>
- <cd:variable name="Paragraph" value="Odstavec"/>
- <cd:variable name="Key" value="Klavesa"/>
- </cd:variables>
-
- <cd:constants>
- <cd:constant name="bet" value="bet"/>
- <cd:constant name="dat" value="dat"/>
- <cd:constant name="ken" value="ken"/>
- <cd:constant name="ref" value="ref"/>
- </cd:constants>
-
- <cd:variables>
- <cd:variable name="formeel" value="formeel"/>
- <cd:variable name="informeel" value="informeel"/>
- <cd:variable name="rekening" value="rekening"/>
- <cd:variable name="sticker" value="sticker"/>
- <cd:variable name="sheet" value="sheet"/>
- <cd:variable name="brief" value="brief"/>
- <cd:variable name="ls" value="ls"/>
- </cd:variables>
-
- <cd:commands>
- <cd:command name="language" value="jazyk"/>
- <cd:command name="mainlanguage" value="hlavnijazyk"/>
- <cd:command name="translate" value="prelozit"/>
- <cd:command name="installlanguage" value="instalacejazyka"/>
- <cd:command name="setuplanguage" value="nastavjazyk"/>
- <cd:command name="showmakeup" value="ukazupravu"/>
- <cd:command name="useencoding" value="uzijkodovani"/>
- <cd:command name="usespecials" value="uzijspeciality"/>
- <cd:command name="defineoutput" value="definujvystup"/>
- <cd:command name="setupoutput" value="nastavvystup"/>
- <cd:command name="defineaccent" value="definujakcent"/>
- <cd:command name="definecharacter" value="definujznak"/>
- <cd:command name="definecommand" value="definujprikaz"/>
- <cd:command name="startcoding" value="startkodovani"/>
- <cd:command name="stopcoding" value="stopkodovani"/>
- <cd:command name="definebodyfontenvironment" value="definujprostredizakladnihofontu"/>
- <cd:command name="setupbodyfontenvironment" value="nastavprostredizakladnihofontu"/>
- <cd:command name="definebodyfont" value="definujzakladnifont"/>
- <cd:command name="definefont" value="definujfont"/>
- <cd:command name="definefontsynonym" value="definujsynonumumfontu"/>
- <cd:command name="definestyle" value="definujstyl"/>
- <cd:command name="definefontstyle" value="definujstylfontu"/>
- <cd:command name="setupstrut" value="setupstrut"/>
- <cd:command name="setuptype" value="nastavtype"/>
- <cd:command name="type" value="opis"/>
- <cd:command name="typ" value="pis"/>
- <cd:command name="arg" value="arg"/>
- <cd:command name="tex" value="tex"/>
- <cd:command name="definetyping" value="definujopis"/>
- <cd:command name="definetype" value="definetype"/>
- <cd:command name="setuptyping" value="nastavopis"/>
- <cd:command name="typefile" value="opissoubor"/>
- <cd:command name="setupfootnotes" value="nastavpoznamkypodcarou"/>
- <cd:command name="setupfootnotedefinition" value="nastavdefinicipoznamekpodcarou"/>
- <cd:command name="note" value="poznamka"/>
- <cd:command name="footnote" value="poznamkapodcarou"/>
- <cd:command name="footnotetext" value="footnotetext"/>
- <cd:command name="startlocalfootnotes" value="startlokalnipoznamkypodcarou"/>
- <cd:command name="stoplocalfootnotes" value="stoplokalnipoznamkypodcarou"/>
- <cd:command name="placelocalfootnotes" value="umistilokalnipoznamkypodcarou"/>
- <cd:command name="placefootnotes" value="umistipoznamkypodcarou"/>
- <cd:command name="currentdate" value="aktualnidatum"/>
- <cd:command name="date" value="datum"/>
- <cd:command name="weekday" value="vsedniden"/>
- <cd:command name="WEEKDAY" value="VSEDNIDEN"/>
- <cd:command name="month" value="mesic"/>
- <cd:command name="MONTH" value="MESIC"/>
- <cd:command name="Numbers" value="Cisla"/>
- <cd:command name="numbers" value="cisla"/>
- <cd:command name="romannumerals" value="rimskecislice"/>
- <cd:command name="Romannumerals" value="Rimskecislice"/>
- <cd:command name="character" value="znak"/>
- <cd:command name="Character" value="Znak"/>
- <cd:command name="characters" value="znaky"/>
- <cd:command name="Characters" value="Znaky"/>
- <cd:command name="unknown" value="neznamo"/>
- <cd:command name="definesymbol" value="definujsymbol"/>
- <cd:command name="definefiguresymbol" value="definujobrazeksymbol"/>
- <cd:command name="symbol" value="symbol"/>
- <cd:command name="setupsymbolset" value="nastavsadusymbolu"/>
- <cd:command name="showsymbolset" value="ukazsadusymbolu"/>
- <cd:command name="startsymbolset" value="startsadasymbolu"/>
- <cd:command name="usesymbols" value="uzijsymbol"/>
- <cd:command name="defineconversion" value="definujkonverzi"/>
- <cd:command name="convertnumber" value="konvertujcislo"/>
- <cd:command name="setupcapitals" value="nastavkapitalky"/>
- <cd:command name="smallcapped" value="kap"/>
- <cd:command name="notsmallcapped" value="nokap"/>
- <cd:command name="CAPPED" value="KAP"/>
- <cd:command name="SmallCapped" value="Kap"/>
- <cd:command name="SmallCaps" value="Kaps"/>
- <cd:command name="WORD" value="SLOVO"/>
- <cd:command name="WORDS" value="SLOVA"/>
- <cd:command name="Word" value="Slovo"/>
- <cd:command name="Words" value="Slova"/>
- <cd:command name="stretched" value="roztazene"/>
- <cd:command name="overstrike" value="preskrtnuto"/>
- <cd:command name="overstrikes" value="preskrtnuti"/>
- <cd:command name="overbar" value="nadtrzeno"/>
- <cd:command name="overbars" value="nadtrzeni"/>
- <cd:command name="underbar" value="podtrzeno"/>
- <cd:command name="underbars" value="podtrzeni"/>
- <cd:command name="setupunderbar" value="nastavpodtrzeni"/>
- <cd:command name="setupbodyfont" value="nastavzakladnifont"/>
- <cd:command name="switchtobodyfont" value="prepninazakladnifont"/>
- <cd:command name="showbodyfont" value="ukazzakladnifont"/>
- <cd:command name="showbodyfontenvironment" value="ukazpostredizakladnihofontu"/>
- <cd:command name="headtext" value="texthlavicky"/>
- <cd:command name="labeltext" value="textpopisku"/>
- <cd:command name="LABELTEXT" value="TEXTPOPISKU"/>
- <cd:command name="setupheadtext" value="nastavtexthlavicky"/>
- <cd:command name="setuplabeltext" value="nastavtextpopisku"/>
- <cd:command name="marginrule" value="marginalnilinka"/>
- <cd:command name="startmarginrule" value="startmarginalnilinka"/>
- <cd:command name="stopmarginrule" value="stopmarginalnilinka"/>
- <cd:command name="setupmarginrules" value="nastavmarginalnilinky"/>
- <cd:command name="blackrule" value="cernalinka"/>
- <cd:command name="blackrules" value="cernelinky"/>
- <cd:command name="setupblackrules" value="nastavcernelinky"/>
- <cd:command name="setupscreens" value="nastavrastr"/>
- <cd:command name="framed" value="oramovani"/>
- <cd:command name="inframed" value="zaramovani"/>
- <cd:command name="mframed" value="maoramovani"/>
- <cd:command name="inmframed" value="mazaramovani"/>
- <cd:command name="setupframed" value="nastavoramovani"/>
- <cd:command name="setuplinewidth" value="nastavsirkucary"/>
- <cd:command name="setupthinrules" value="nastavtenkelinky"/>
- <cd:command name="thinrule" value="tenkalinka"/>
- <cd:command name="thinrules" value="tenkelinky"/>
- <cd:command name="hairline" value="vlasovalinka"/>
- <cd:command name="vl" value="vl"/>
- <cd:command name="hl" value="hl"/>
- <cd:command name="defineframed" value="definujoramovani"/>
- <cd:command name="defineframedtext" value="definujoramovanytext"/>
- <cd:command name="setupframedtexts" value="nastavoramovanetexty"/>
- <cd:command name="defineoverlay" value="definujprekryv"/>
- <cd:command name="definelayer" value="definelayer"/>
- <cd:command name="background" value="pozadi"/>
- <cd:command name="startbackground" value="startpozadi"/>
- <cd:command name="stopbackground" value="stoppozadi"/>
- <cd:command name="setupbackground" value="nastavpozadi"/>
- <cd:command name="fillinrules" value="vyplnovelinky"/>
- <cd:command name="setupfillinrules" value="nastavvyplnovelinky"/>
- <cd:command name="fillintext" value="vyplnenytext"/>
- <cd:command name="setupfillinlines" value="nastavvyplnoveradky"/>
- <cd:command name="fillinline" value="vyplnovyradek"/>
- <cd:command name="setuptextrules" value="nastavtextovelinky"/>
- <cd:command name="textrule" value="textovalinka"/>
- <cd:command name="starttextrule" value="starttextovalinka"/>
- <cd:command name="stoptextrule" value="stoptextovalinka"/>
- <cd:command name="usemodule" value="uzijmodul"/>
- <cd:command name="usemodules" value="uzijmoduly"/>
- <cd:command name="starttext" value="starttext"/>
- <cd:command name="stoptext" value="stoptext"/>
- <cd:command name="margintitle" value="marginalninadpis"/>
- <cd:command name="marginword" value="marginalnislovo"/>
- <cd:command name="margintext" value="marginalnitext"/>
- <cd:command name="inleft" value="vlevo"/>
- <cd:command name="inmargin" value="naokraj"/>
- <cd:command name="inothermargin" value="nadruhyokraj"/>
- <cd:command name="inright" value="vpravo"/>
- <cd:command name="ininner" value="ininner"/>
- <cd:command name="inouter" value="inouter"/>
- <cd:command name="startmarginblock" value="startmarginalniblok"/>
- <cd:command name="stopmarginblock" value="stopmarginalniblok"/>
- <cd:command name="defineinmargin" value="defineinmargin"/>
- <cd:command name="setupinmargin" value="nastavmarginalie"/>
- <cd:command name="setupmarginblocks" value="nastavmarginalniblok"/>
- <cd:command name="inleftedge" value="nalevo"/>
- <cd:command name="inleftmargin" value="nalevyokraj"/>
- <cd:command name="inrightmargin" value="napravyokraj"/>
- <cd:command name="inrightedge" value="napravo"/>
- <cd:command name="atleftmargin" value="atleftmargin"/>
- <cd:command name="atrightmargin" value="atrightmargin"/>
- <cd:command name="wordright" value="slovovpravo"/>
- <cd:command name="defineblank" value="definujpreskok"/>
- <cd:command name="blank" value="preskoc"/>
- <cd:command name="setupblank" value="nastavpreskok"/>
- <cd:command name="correctwhitespace" value="korekcebilehomista"/>
- <cd:command name="fixedspaces" value="tvrdemezery"/>
- <cd:command name="fixedspace" value="tvrdamezera"/>
- <cd:command name="nospace" value="zadnamezera"/>
- <cd:command name="space" value="mezera"/>
- <cd:command name="nowhitespace" value="zadnebilemisto"/>
- <cd:command name="packed" value="zhustene"/>
- <cd:command name="startpacked" value="startzhustene"/>
- <cd:command name="stoppacked" value="stopzhustene"/>
- <cd:command name="startunpacked" value="startnezhustene"/>
- <cd:command name="stopunpacked" value="stopnezhustene"/>
- <cd:command name="startlinecorrection" value="startkorekceradku"/>
- <cd:command name="stoplinecorrection" value="stopkorekceradku"/>
- <cd:command name="godown" value="jdidolu"/>
- <cd:command name="whitespace" value="bilemisto"/>
- <cd:command name="noindenting" value="zadneodsazovani"/>
- <cd:command name="indenting" value="odsazovani"/>
- <cd:command name="setupindenting" value="nastavodsazovani"/>
- <cd:command name="startalignment" value="startzarovnavani"/>
- <cd:command name="stopalignment" value="stopzarovnavani"/>
- <cd:command name="startlines" value="startradky"/>
- <cd:command name="stoplines" value="stopradky"/>
- <cd:command name="setupparagraphnumbering" value="nastavcislovaniodstavcu"/>
- <cd:command name="setuplinenumbering" value="nastavcislovaniradku"/>
- <cd:command name="startlinenumbering" value="startcislovaniradku"/>
- <cd:command name="stoplinenumbering" value="stopcislovaniradku"/>
- <cd:command name="startline" value="startradek"/>
- <cd:command name="stopline" value="stopradek"/>
- <cd:command name="someline" value="nejakyradek"/>
- <cd:command name="inline" value="vradku"/>
- <cd:command name="crlf" value="crlf"/>
- <cd:command name="emptylines" value="emptylines"/>
- <cd:command name="setuplines" value="nastavradky"/>
- <cd:command name="startnarrower" value="startzuzeni"/>
- <cd:command name="stopnarrower" value="stopzuzeni"/>
- <cd:command name="setupnarrower" value="nastavzuzeni"/>
- <cd:command name="definetabulate" value="definujtabelaci"/>
- <cd:command name="setuptabulate" value="nastavtabelaci"/>
- <cd:command name="starttable" value="starttabulka"/>
- <cd:command name="stoptable" value="stoptabulka"/>
- <cd:command name="starttables" value="starttabulky"/>
- <cd:command name="stoptables" value="stoptabulky"/>
- <cd:command name="setuptables" value="nastavtabulky"/>
- <cd:command name="definetabletemplate" value="definujsablonutabulky"/>
- <cd:command name="page" value="strana"/>
- <cd:command name="testcolumn" value="testcolumn"/>
- <cd:command name="testpage" value="testpage"/>
- <cd:command name="couplepage" value="parovastrana"/>
- <cd:command name="pagetype" value="typstrany"/>
- <cd:command name="processpage" value="zpracujstranu"/>
- <cd:command name="couplepaper" value="dvoustrannypapir"/>
- <cd:command name="selectpaper" value="vyberpapir"/>
- <cd:command name="screen" value="obrazovka"/>
- <cd:command name="definesection" value="definujsekci"/>
- <cd:command name="definesectionblock" value="definujbloksekce"/>
- <cd:command name="setupsectionblock" value="nastavbloksekce"/>
- <cd:command name="setupsection" value="nastavsekci"/>
- <cd:command name="notopandbottomlines" value="zadnehorniadolniradky"/>
- <cd:command name="noheaderandfooterlines" value="zadnezahlaviaupati"/>
- <cd:command name="setuptop" value="nastavhorejsek"/>
- <cd:command name="setuptoptexts" value="nastavhornitexty"/>
- <cd:command name="setupheader" value="nastavzahlavi"/>
- <cd:command name="setupheadertexts" value="nastavtextyzahlavi"/>
- <cd:command name="setuppagenumbering" value="nastavcislovanistran"/>
- <cd:command name="getnumber" value="getnumber"/>
- <cd:command name="incrementnumber" value="zvysujicicislo"/>
- <cd:command name="decrementnumber" value="decrementnumber"/>
- <cd:command name="resetnumber" value="resetnumber"/>
- <cd:command name="setnumber" value="setnumber"/>
- <cd:command name="setupnumber" value="setupnumber"/>
- <cd:command name="setupbottom" value="nastavspodek"/>
- <cd:command name="setupbottomtexts" value="nastavdolnitexty"/>
- <cd:command name="setupfooter" value="nastavupati"/>
- <cd:command name="setupfootertexts" value="nastavtextyupati"/>
- <cd:command name="setuppagenumber" value="nastavcislostrany"/>
- <cd:command name="setupsubpagenumber" value="nastavpodcislostrany"/>
- <cd:command name="subpagenumber" value="subpagenumber"/>
- <cd:command name="setuptext" value="nastavtext"/>
- <cd:command name="setuptexttexts" value="nastavtexttexty"/>
- <cd:command name="settextcontent" value="settextcontent"/>
- <cd:command name="resettext" value="resettextcontent"/>
- <cd:command name="definetext" value="definujtext"/>
- <cd:command name="pagenumber" value="cislostrany"/>
- <cd:command name="completepagenumber" value="completepagenumber"/>
- <cd:command name="placepagenumber" value="placepagenumber"/>
- <cd:command name="items" value="polozky"/>
- <cd:command name="setupitems" value="nastavpolozky"/>
- <cd:command name="leftaligned" value="zarovnanovlevo"/>
- <cd:command name="midaligned" value="zarovnanonastred"/>
- <cd:command name="rightaligned" value="zarovnanovpravo"/>
- <cd:command name="startcolumns" value="startsloupce"/>
- <cd:command name="stopcolumns" value="stopsloupce"/>
- <cd:command name="setupcolumns" value="nastavsloupce"/>
- <cd:command name="column" value="sloupec"/>
- <cd:command name="head" value="nadpis"/>
- <cd:command name="but" value="spodek"/>
- <cd:command name="item" value="polozka"/>
- <cd:command name="nop" value="nop"/>
- <cd:command name="mar" value="okr"/>
- <cd:command name="sym" value="sym"/>
- <cd:command name="txt" value="txt"/>
- <cd:command name="its" value="pol"/>
- <cd:command name="ran" value="ran"/>
- <cd:command name="headsym" value="headsym"/>
- <cd:command name="defineitemgroup" value="defineitemgroup"/>
- <cd:command name="setupitemgroup" value="setupitemgroup"/>
- <cd:command name="setupitemgroups" value="setupitemgroups"/>
- <cd:command name="definehead" value="definujnadpis"/>
- <cd:command name="setuphead" value="nastavnadpis"/>
- <cd:command name="setupheads" value="nastavnadpisy"/>
- <cd:command name="setupheadnumber" value="nastavcislonadpisu"/>
- <cd:command name="headnumber" value="cislonadpisu"/>
- <cd:command name="currentheadnumber" value="aktualnicislonadpisu"/>
- <cd:command name="determineheadnumber" value="stanovcislonadpisu"/>
- <cd:command name="resetmarking" value="resetznaceni"/>
- <cd:command name="setupmarking" value="nastavznaceni"/>
- <cd:command name="definemarking" value="definujznaceni"/>
- <cd:command name="nomarking" value="zadneznaceni"/>
- <cd:command name="marking" value="znaceni"/>
- <cd:command name="decouplemarking" value="rozpojeneznaceni"/>
- <cd:command name="couplemarking" value="propojeneznaceni"/>
- <cd:command name="getmarking" value="ziskejznaceni"/>
- <cd:command name="definelayout" value="definelayout"/>
- <cd:command name="setuplayout" value="nastavvzhled"/>
- <cd:command name="adaptlayout" value="prizpusobvzhled"/>
- <cd:command name="placeongrid" value="umistinamrizku"/>
- <cd:command name="moveongrid" value="premistinamrizku"/>
- <cd:command name="showsetups" value="ukaznastaveni"/>
- <cd:command name="showframe" value="ukazramecek"/>
- <cd:command name="showgrid" value="ukazmrizku"/>
- <cd:command name="showlayout" value="ukazvzhled"/>
- <cd:command name="showprint" value="ukazvytisk"/>
- <cd:command name="showstruts" value="ukazpodpery"/>
- <cd:command name="definepapersize" value="definujvelikostpapiru"/>
- <cd:command name="setuppapersize" value="nastavvelikostpapiru"/>
- <cd:command name="setuppaper" value="setuppaper"/>
- <cd:command name="setuparranging" value="nastavusporadani"/>
- <cd:command name="version" value="verze"/>
- <cd:command name="setupbackgrounds" value="nastavpozadi"/>
- <cd:command name="setupalign" value="nastavzarovnani"/>
- <cd:command name="setupwhitespace" value="nastavbilamista"/>
- <cd:command name="setupinteraction" value="nastavinterakci"/>
- <cd:command name="setupinteractionmenu" value="nastavinterakcnimenu"/>
- <cd:command name="defineinteractionmenu" value="definujinterakcnimenu"/>
- <cd:command name="disableinteractionmenu" value="zablokujinterakcnimenu"/>
- <cd:command name="interactionmenu" value="interaktivnimenu"/>
- <cd:command name="interactionbuttons" value="interakcnitlacitka"/>
- <cd:command name="interactionbar" value="interakcnilista"/>
- <cd:command name="setupinteractionbar" value="nastavinterakcnilistu"/>
- <cd:command name="setupinteractionscreen" value="nastavinterakcniobrazovku"/>
- <cd:command name="placebookmarks" value="umistizalozky"/>
- <cd:command name="bookmark" value="zalozka"/>
- <cd:command name="definelogo" value="definujlogo"/>
- <cd:command name="placelogos" value="umistiloga"/>
- <cd:command name="definecolor" value="definujbarvu"/>
- <cd:command name="definecolorgroup" value="definujskupinubarev"/>
- <cd:command name="definepalet" value="definujpaletu"/>
- <cd:command name="graycolor" value="sedabarva"/>
- <cd:command name="color" value="barva"/>
- <cd:command name="startcolor" value="startbarva"/>
- <cd:command name="stopcolor" value="stopbarva"/>
- <cd:command name="setupcolors" value="nastavbarvy"/>
- <cd:command name="setupcolor" value="nastavbarvu"/>
- <cd:command name="setuppalet" value="nastavpaletu"/>
- <cd:command name="showcolor" value="ukazbarvu"/>
- <cd:command name="showcolorgroup" value="ukazskupinubarev"/>
- <cd:command name="showpalet" value="ukazpaletu"/>
- <cd:command name="comparecolorgroup" value="porovnejskupinubarev"/>
- <cd:command name="comparepalet" value="porovnejpaletu"/>
- <cd:command name="colorvalue" value="hodnotabarvy"/>
- <cd:command name="greyvalue" value="hodnotasedi"/>
- <cd:command name="startraster" value="startrastr"/>
- <cd:command name="stopraster" value="stoprastr"/>
- <cd:command name="defineblock" value="definujblok"/>
- <cd:command name="setupblock" value="nastavblok"/>
- <cd:command name="useblocks" value="uzijbloky"/>
- <cd:command name="processblocks" value="zpracujbloky"/>
- <cd:command name="keepblocks" value="zachovejbloky"/>
- <cd:command name="selectblocks" value="vyberbloky"/>
- <cd:command name="hideblocks" value="schovejbloky"/>
- <cd:command name="bypassblocks" value="bypassblocks"/>
- <cd:command name="forceblocks" value="forceblocks"/>
- <cd:command name="nomoreblocks" value="zadnedalsibloky"/>
- <cd:command name="definelist" value="definujseznam"/>
- <cd:command name="definecombinedlist" value="definujkombinovanyseznam"/>
- <cd:command name="listsymbol" value="listsymbol"/>
- <cd:command name="placelist" value="umistiseznam"/>
- <cd:command name="plaatsruwelijst" value="placerawlist"/>
- <cd:command name="placecombinedlist" value="umistikombinovanyseznam"/>
- <cd:command name="writetolist" value="zapisdoseznamu"/>
- <cd:command name="writebetweenlist" value="zapismeziseznam"/>
- <cd:command name="immediatetolist" value="immediatetolist"/>
- <cd:command name="immediatebetweenlist" value="immediatebetweenlist"/>
- <cd:command name="setuplist" value="nastavseznam"/>
- <cd:command name="setupcombinedlist" value="nastavkombinovanyseznam"/>
- <cd:command name="determinelistcharacteristics" value="stanovcharakteristickuseznamu"/>
- <cd:command name="listlength" value="delkaseznamu"/>
- <cd:command name="listwidth" value="sirkaseznamu"/>
- <cd:command name="listheight" value="vyskaseznamu"/>
- <cd:command name="nolist" value="zadnyseznam"/>
- <cd:command name="definereferencelist" value="definujseznamodkazu"/>
- <cd:command name="placereferencelist" value="umistiseznamodkazu"/>
- <cd:command name="writetoreferencelist" value="zapisdoseznamuodkazu"/>
- <cd:command name="setupreferencelist" value="nastavseznamodkazu"/>
- <cd:command name="definefloat" value="definujplvouciobjekt"/>
- <cd:command name="setupfloat" value="nastavplvouciobjekt"/>
- <cd:command name="setupfloats" value="nastavplvouciobjekty"/>
- <cd:command name="splitfloat" value="rozdelplvouciobjekt"/>
- <cd:command name="setupfloatsplitting" value="nastavdeleniplvoucichobjektu"/>
- <cd:command name="placefloat" value="placefloat"/>
- <cd:command name="movesidefloat" value="movesidefloat"/>
- <cd:command name="defineplacement" value="defineplacement"/>
- <cd:command name="setupplacement" value="setupplacement"/>
- <cd:command name="definecombination" value="definecombination"/>
- <cd:command name="startcombination" value="startspojeni"/>
- <cd:command name="stopcombination" value="stopspojeni"/>
- <cd:command name="placesidebyside" value="umistivedlesebe"/>
- <cd:command name="placeontopofeachother" value="umistinadsebe"/>
- <cd:command name="setupcaption" value="nastavpopisek"/>
- <cd:command name="setupcaptions" value="nastavpopisky"/>
- <cd:command name="setupcombinations" value="nastavspojeni"/>
- <cd:command name="startoverlay" value="startprekryv"/>
- <cd:command name="stopoverlay" value="stopprekryv"/>
- <cd:command name="defineregister" value="definujrejstrik"/>
- <cd:command name="coupleregister" value="propojenyrejstrik"/>
- <cd:command name="setupregister" value="nastavrejstrik"/>
- <cd:command name="writetoregister" value="zapisdorejstriku"/>
- <cd:command name="completeregister" value="completeregister"/>
- <cd:command name="placeregister" value="umistirejstrik"/>
- <cd:command name="determineregistercharacteristics" value="urcicharakteristikurejstriku"/>
- <cd:command name="definesorting" value="definujtrideni"/>
- <cd:command name="definesynonyms" value="definujsynonyma"/>
- <cd:command name="setupsorting" value="nastavtrideni"/>
- <cd:command name="setupsynonyms" value="nastavsynonyma"/>
- <cd:command name="startsynchronization" value="startsynchronizace"/>
- <cd:command name="stopsynchronization" value="stopsynchronizace"/>
- <cd:command name="setupsynchronizationbar" value="nastavsynchronizacnilistu"/>
- <cd:command name="setupsynchronization" value="nastavsynchronizaci"/>
- <cd:command name="synchronizationbar" value="synchronizacnilista"/>
- <cd:command name="synchronize" value="synchronizovat"/>
- <cd:command name="useexternaldocument" value="uzijexternidokument"/>
- <cd:command name="useURL" value="uzijURL"/>
- <cd:command name="useurl" value="uzijurl"/>
- <cd:command name="setupurl" value="nastavurl"/>
- <cd:command name="coupledocument" value="propojenydokument"/>
- <cd:command name="setupprograms" value="nastavprogramy"/>
- <cd:command name="defineprogram" value="definujprogram"/>
- <cd:command name="program" value="program"/>
- <cd:command name="setuppagetransitions" value="nastavprechodstrany"/>
- <cd:command name="defineprofile" value="definujprofil"/>
- <cd:command name="defineversion" value="definujverzi"/>
- <cd:command name="markversion" value="oznacverzi"/>
- <cd:command name="selectversion" value="vyberverzi"/>
- <cd:command name="startprofile" value="startprofil"/>
- <cd:command name="startversion" value="startverze"/>
- <cd:command name="setupprofiles" value="nastavprofily"/>
- <cd:command name="setupversions" value="nastavverze"/>
- <cd:command name="stopprofile" value="stopprofil"/>
- <cd:command name="stopversion" value="stopverze"/>
- <cd:command name="followprofile" value="dodrzujprofil"/>
- <cd:command name="followprofileversion" value="dodrzujverziprofilu"/>
- <cd:command name="followversion" value="dodrzujverzi"/>
- <cd:command name="definedescription" value="definujpopis"/>
- <cd:command name="definelabel" value="definujpopisek"/>
- <cd:command name="defineenumeration" value="definujvycet"/>
- <cd:command name="defineindenting" value="definujodsazovani"/>
- <cd:command name="setupdescriptions" value="nastavpopisy"/>
- <cd:command name="setupenumerations" value="nastavvycty"/>
- <cd:command name="setupindentations" value="nastavodsazeni"/>
- <cd:command name="setuptab" value="nastavtab"/>
- <cd:command name="tab" value="tab"/>
- <cd:command name="setupexternalfigures" value="nastavexterniobrazy"/>
- <cd:command name="showexternalfigures" value="ukazexterniobrazy"/>
- <cd:command name="externalfigure" value="externiobraz"/>
- <cd:command name="useexternalfigure" value="uzijexterniobraz"/>
- <cd:command name="startfigure" value="startobraz"/>
- <cd:command name="referring" value="odkazujici"/>
- <cd:command name="remark" value="oznaceni"/>
- <cd:command name="colorbar" value="barevnalista"/>
- <cd:command name="grid" value="mrizka"/>
- <cd:command name="button" value="tlacitko"/>
- <cd:command name="menubutton" value="tlacitkomenu"/>
- <cd:command name="setupbuttons" value="nastavtlacitka"/>
- <cd:command name="usereferences" value="uzijodkazy"/>
- <cd:command name="placereferencelist" value="placereferencelist"/>
- <cd:command name="setupreferencelist" value="nastavseznamodkazu"/>
- <cd:command name="setupreferencing" value="nastavodkazovani"/>
- <cd:command name="textreference" value="odkaznatext"/>
- <cd:command name="pagereference" value="odkaznastranu"/>
- <cd:command name="reference" value="odkaz"/>
- <cd:command name="definereference" value="definujodkaz"/>
- <cd:command name="definereferenceformat" value="definujformatodkazu"/>
- <cd:command name="useJSscripts" value="uzijJSscripts"/>
- <cd:command name="from" value="zref"/>
- <cd:command name="in" value="tref"/>
- <cd:command name="at" value="pref"/>
- <cd:command name="about" value="oref"/>
- <cd:command name="goto" value="jdina"/>
- <cd:command name="atpage" value="nastrane"/>
- <cd:command name="somewhere" value="nekde"/>
- <cd:command name="navigating" value="navigating"/>
- <cd:command name="ref" value="ref"/>
- <cd:command name="gotobox" value="jdinabox"/>
- <cd:command name="gotopage" value="jdinastranu"/>
- <cd:command name="placeformula" value="umistirovnici"/>
- <cd:command name="placesubformula" value="umistipodrovnici"/>
- <cd:command name="moveformula" value="moveformula"/>
- <cd:command name="setupformulas" value="nastavrovnice"/>
- <cd:command name="formulanumber" value="cislorovnice"/>
- <cd:command name="subformulanumber" value="cislopodrovnice"/>
- <cd:command name="leg" value="leg"/>
- <cd:command name="fact" value="fakt"/>
- <cd:command name="mathematics" value="matematika"/>
- <cd:command name="dimension" value="rozmer"/>
- <cd:command name="nodimension" value="zadnyrozmer"/>
- <cd:command name="startenvironment" value="startprostredi"/>
- <cd:command name="stopenvironment" value="stopprostredi"/>
- <cd:command name="startcomponent" value="startkomponenta"/>
- <cd:command name="stopcomponent" value="stopkomponenta"/>
- <cd:command name="startproduct" value="startprodukt"/>
- <cd:command name="stopproduct" value="stopprodukt"/>
- <cd:command name="startproject" value="startprojekt"/>
- <cd:command name="stopproject" value="stopprojekt"/>
- <cd:command name="setups" value="nastaveni"/>
- <cd:command name="project" value="projekt"/>
- <cd:command name="component" value="komponenta"/>
- <cd:command name="product" value="produkt"/>
- <cd:command name="environment" value="prostredi"/>
- <cd:command name="nomorefiles" value="zadnedalsisoubory"/>
- <cd:command name="getbuffer" value="ziskejbuffer"/>
- <cd:command name="setupbuffer" value="nastavbuffer"/>
- <cd:command name="typebuffer" value="typebuffer"/>
- <cd:command name="definebuffer" value="definujbuffer"/>
- <cd:command name="unitmeaning" value="vyznam"/>
- <cd:command name="infull" value="plnezneni"/>
- <cd:command name="quotation" value="citace"/>
- <cd:command name="quote" value="citovat"/>
- <cd:command name="startquotation" value="startcitace"/>
- <cd:command name="stopquotation" value="stopcitace"/>
- <cd:command name="setupquote" value="nastavcitaci"/>
- <cd:command name="define" value="definuj"/>
- <cd:command name="redo" value="opakovat"/>
- <cd:command name="usecommands" value="uzijprikazy"/>
- <cd:command name="definestartstop" value="definujstartstop"/>
- <cd:command name="setupstartstop" value="setupstartstop"/>
- <cd:command name="startlocal" value="startlokalni"/>
- <cd:command name="stoplocal" value="stoplokalni"/>
- <cd:command name="startglobal" value="startglobalni"/>
- <cd:command name="stopglobal" value="stopglobalni"/>
- <cd:command name="macroname" value="jmeno"/>
- <cd:command name="definemakeup" value="definujupravu"/>
- <cd:command name="setupmakeup" value="nastavupravu"/>
- <cd:command name="startmakeup" value="startuprava"/>
- <cd:command name="stopmakeup" value="stopuprava"/>
- <cd:command name="useexternalsoundtrack" value="uzijexternizvuk"/>
- <cd:command name="useexternalfile" value="uzijexternisoubor"/>
- <cd:command name="useexternalfiles" value="uzijexternisoubory"/>
- <cd:command name="referral" value="odkaz"/>
- <cd:command name="referraldate" value="odkaznadatum"/>
- <cd:command name="high" value="vysoky"/>
- <cd:command name="lohi" value="nivy"/>
- <cd:command name="low" value="nizky"/>
- <cd:command name="fraction" value="zlomek"/>
- <cd:command name="chem" value="chem"/>
- <cd:command name="startopposite" value="startprotejsek"/>
- <cd:command name="stopopposite" value="stopprotejsek"/>
- <cd:command name="setupoppositeplacing" value="nastavumisteniprotejsku"/>
- <cd:command name="startpositioning" value="startumistovani"/>
- <cd:command name="stoppositioning" value="stopumistovani"/>
- <cd:command name="position" value="pozice"/>
- <cd:command name="setuppositioning" value="nastavumistovani"/>
- <cd:command name="rotate" value="otocit"/>
- <cd:command name="setuprotate" value="nastavotoceni"/>
- <cd:command name="mirror" value="zrcadlit"/>
- <cd:command name="scale" value="meritko"/>
- <cd:command name="setupnumbering" value="nastavcislovani"/>
- <cd:command name="reset" value="reset"/>
- <cd:command name="setuppublications" value="nastavpublikace"/>
- <cd:command name="publication" value="publikace"/>
- <cd:command name="definehbox" value="definujhbox"/>
- <cd:command name="adding" value="scitani"/>
- <cd:command name="periods" value="tecky"/>
- <cd:command name="setuphyphenmark" value="nastavdelitko"/>
- <cd:command name="setupinterlinespace" value="nastavmeziradkovoumezeru"/>
- <cd:command name="setupspacing" value="nastavradkovani"/>
- <cd:command name="setuptolerance" value="nastavtoleranci"/>
- <cd:command name="setupsystem" value="nastavsystem"/>
- <cd:command name="usepath" value="uzijadresar"/>
- <cd:command name="defineparagraphs" value="definujodstavce"/>
- <cd:command name="setupparagraphs" value="nastavodstavce"/>
- <cd:command name="donttest" value="zadnytest"/>
- <cd:command name="setupcomment" value="nastavkomentar"/>
- <cd:command name="comment" value="komentar"/>
- <cd:command name="definefield" value="definujpole"/>
- <cd:command name="definemainfield" value="definujhlavnipole"/>
- <cd:command name="definesubfield" value="definujpodpole"/>
- <cd:command name="clonefield" value="klonujpole"/>
- <cd:command name="copyfield" value="kopirujpole"/>
- <cd:command name="setupfield" value="nastavpole"/>
- <cd:command name="setupfields" value="nastavvsechnapole"/>
- <cd:command name="field" value="pole"/>
- <cd:command name="fitfield" value="prizpusobivepole"/>
- <cd:command name="logfields" value="zaznamovepole"/>
- <cd:command name="showfields" value="ukazpole"/>
- <cd:command name="tooltip" value="bublinkovanapoveda"/>
- <cd:command name="fillinfield" value="vyplnovepole"/>
- <cd:command name="definefieldstack" value="definujzasobnikpoli"/>
- <cd:command name="fieldstack" value="zasobnikpoli"/>
- <cd:command name="setupforms" value="setupforms"/>
- <cd:command name="setupclipping" value="nastavorez"/>
- <cd:command name="clip" value="orez"/>
- <cd:command name="placelegend" value="umistilegendu"/>
- <cd:command name="setuplegend" value="nastavlegendu"/>
- <cd:command name="setuppagecomment" value="nastavkomentarstrany"/>
- <cd:command name="setupstrut" value="setupstrut"/>
- <cd:command name="definerule" value="definerule"/>
- <cd:command name="placerule" value="placerule"/>
- <cd:command name="setuprule" value="setuprule"/>
- <cd:command name="definetextvariable" value="definetextvariable"/>
- <cd:command name="setuptextvariable" value="setuptextvariable"/>
- <cd:command name="settextvariable" value="settextvariable"/>
- <cd:command name="placetextvariable" value="placetextvariable"/>
- <cd:command name="textvariable" value="textvariable"/>
- <cd:command name="definetextposition" value="definetextposition"/>
- <cd:command name="setuptextposition" value="setuptextposition"/>
- <cd:command name="positiontext" value="positiontext"/>
- <cd:command name="definerawfont" value="definerawfont"/>
- <cd:command name="switchtorawfont" value="switchtorawfont"/>
- <cd:command name="placeheadtext" value="placeheadtext"/>
- <cd:command name="placeheadnumber" value="placeheadnumber"/>
- <cd:command name="definepagebreak" value="definepagebreak"/>
- <cd:command name="definecolumnbreak" value="definecolumnbreak"/>
- <cd:command name="definemathalignment" value="definemathalignment"/>
- <cd:command name="setupmathalignment" value="setupmathalignment"/>
- </cd:commands>
-
- <cd:commands>
- <cd:command name="setupitemgroups" value="nastavvycty"/>
- </cd:commands>
-
- <cd:commands>
- <cd:command name="topheight" value="vyskahorejsku"/>
- <cd:command name="topdistance" value="vzdalenosthorejsku"/>
- <cd:command name="headerheight" value="vyskazahlavi"/>
- <cd:command name="headerdistance" value="vzdalenostzahlavi"/>
- <cd:command name="textheight" value="vyskatextu"/>
- <cd:command name="footerdistance" value="vzdalenostupati"/>
- <cd:command name="footerheight" value="vyskaupati"/>
- <cd:command name="bottomdistance" value="vzdalenostspodku"/>
- <cd:command name="bottomheight" value="vyskaspodku"/>
- <cd:command name="marginwidth" value="sirkamarginalie"/>
- <cd:command name="leftmarginwidth" value="sirkalevemarginalie"/>
- <cd:command name="rightmarginwidth" value="sirkapravemarginalie"/>
- <cd:command name="margindistance" value="vzdalenostmarginalie"/>
- <cd:command name="leftmargindistance" value="vzdalenostlevemarginalie"/>
- <cd:command name="rightmargindistance" value="vzdalenostpravemarginalie"/>
- <cd:command name="edgewidth" value="sirkaokraje"/>
- <cd:command name="leftedgewidth" value="sirkalevehookraje"/>
- <cd:command name="rightedgewidth" value="sirkapravehookraje"/>
- <cd:command name="edgedistance" value="vzdalenostokraje"/>
- <cd:command name="leftedgedistance" value="vzdalenostlevehookraje"/>
- <cd:command name="rightedgedistance" value="vzdalenostpravehookraje"/>
- <cd:command name="innermarginwidth" value="innermarginwidth"/>
- <cd:command name="outermarginwidth" value="outermarginwidth"/>
- <cd:command name="innermargindistance" value="innermargindistance"/>
- <cd:command name="outermargindistance" value="outermargindistance"/>
- <cd:command name="inneredgewidth" value="inneredgewidth"/>
- <cd:command name="outeredgewidth" value="outeredgewidth"/>
- <cd:command name="inneredgedistance" value="inneredgedistance"/>
- <cd:command name="outeredgedistance" value="outeredgedistance"/>
- <cd:command name="textwidth" value="sirkatextu"/>
- <cd:command name="makeupwidth" value="sirkasazby"/>
- <cd:command name="makeupheight" value="vyskasazby"/>
- <cd:command name="topspace" value="odsazenishora"/>
- <cd:command name="bottomspace" value="bottomspace"/>
- <cd:command name="backspace" value="odsazenizleva"/>
- <cd:command name="cutspace" value="cutspace"/>
- <cd:command name="paperwidth" value="sirkapapiru"/>
- <cd:command name="paperheight" value="vyskapapiru"/>
- <cd:command name="printpaperwidth" value="sirkatiskpapiru"/>
- <cd:command name="printpaperheight" value="vyskatiskpapiru"/>
- <cd:command name="pageoffset" value="pageoffset"/>
- <cd:command name="pagedepth" value="pagedepth"/>
- <cd:command name="headlevel" value="hlavniuroven"/>
- <cd:command name="linewidth" value="tloustkacary"/>
- <cd:command name="totalnumberofpages" value="celkovypocetstran"/>
- <cd:command name="numberofsubpages" value="numberofsubpages"/>
- <cd:command name="useXMLfilter" value="useXMLfilter"/>
- <cd:command name="definecolumnset" value="definecolumnset"/>
- <cd:command name="setupcolumnset" value="setupcolumnset"/>
- <cd:command name="startcolumnset" value="startcolumnset"/>
- <cd:command name="stopcolumnset" value="stopcolumnset"/>
- <cd:command name="setupcolumnsetlines" value="setupcolumnsetlines"/>
- <cd:command name="setupcolumnsetstart" value="setupcolumnsetstart"/>
- <cd:command name="startcolumnmakeup" value="startcolumnmakeup"/>
- <cd:command name="stopcolumnmakeup" value="stopcolumnmakeup"/>
- <cd:command name="usetypescript" value="usetypescript"/>
- <cd:command name="usetypescriptfile" value="usetypescriptfile"/>
- </cd:commands>
-
- <cd:commands>
- <cd:command name="startdocument" value="startdokument"/>
- <cd:command name="stopdocument" value="stopdokument"/>
- <cd:command name="startoverzicht" value="startprehled"/>
- <cd:command name="stopoverzicht" value="stopprehled"/>
- <cd:command name="label" value="poppisek"/>
- <cd:command name="labels" value="popisky"/>
- <cd:command name="domicile" value="bydliste"/>
- </cd:commands>
-
-</cd:interface>
+</cd:interface> \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/interface/keys-de.xml b/Master/texmf-dist/tex/context/interface/keys-de.xml
index 26c687b0bf3..521a731c61d 100644
--- a/Master/texmf-dist/tex/context/interface/keys-de.xml
+++ b/Master/texmf-dist/tex/context/interface/keys-de.xml
@@ -1,1656 +1,1649 @@
-<?xml version="1.0"?>
+<?xml version='1.0'?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="de" version="2008.05.21 15:21">
+<cd:interface xmlns:cd='http://www.pragma-ade.com/commands' name='context' language='de' version='2008.10.21 19:42'>
- <cd:variables>
- <cd:variable name="lesshyphenation" value="lesshyphenation"/>
- <cd:variable name="morehyphenation" value="morehyphenation"/>
- </cd:variables>
+ <!-- definitions for interface variables for language de -->
- <cd:variables>
- <cd:variable name="one" value="eins"/>
- <cd:variable name="two" value="zwei"/>
- <cd:variable name="three" value="drei"/>
- <cd:variable name="four" value="vier"/>
- <cd:variable name="five" value="fuenf"/>
- </cd:variables>
+ <cd:variables>
+ <cd:variable name='Addition' value='Zusatz'/>
+ <cd:variable name='Balloon' value='Ballon'/>
+ <cd:variable name='Character' value='Buchstabe'/>
+ <cd:variable name='Characters' value='Buchstaben'/>
+ <cd:variable name='CloseDocument' value='SchliesseDokument'/>
+ <cd:variable name='ExitViewer' value='BeendeViewer'/>
+ <cd:variable name='FirstPage' value='ErsteSeite'/>
+ <cd:variable name='FitHeight' value='HoehePassend'/>
+ <cd:variable name='FitWidth' value='BreitePassend'/>
+ <cd:variable name='GotoPage' value='GotoPage'/>
+ <cd:variable name='Greek' value='Griechisch'/>
+ <cd:variable name='Help' value='Hilfe'/>
+ <cd:variable name='HideField' value='VerbergeFeld'/>
+ <cd:variable name='HideLayer' value='HideLayer'/>
+ <cd:variable name='Key' value='Schluessel'/>
+ <cd:variable name='LastPage' value='LetzteSeite'/>
+ <cd:variable name='LoadForm' value='LadeFormular'/>
+ <cd:variable name='MONTH' value='MONAT'/>
+ <cd:variable name='New' value='Neu'/>
+ <cd:variable name='NextJump' value='NaechsterSprung'/>
+ <cd:variable name='NextPage' value='FolgendeSeite'/>
+ <cd:variable name='Numbers' value='Ziffern'/>
+ <cd:variable name='OpenNamedDocument' value='OpenNamedDocument'/>
+ <cd:variable name='Paragraph' value='Absatz'/>
+ <cd:variable name='PauseMovie' value='PauseFilm'/>
+ <cd:variable name='PauseRendering' value='PauseRendering'/>
+ <cd:variable name='PauseSound' value='PauseSound'/>
+ <cd:variable name='PreviousJump' value='VorigerSprung'/>
+ <cd:variable name='PreviousPage' value='VorigeSeite'/>
+ <cd:variable name='PrintDocument' value='DruckeDokument'/>
+ <cd:variable name='Query' value='Query'/>
+ <cd:variable name='QueryAgain' value='QueryAgain'/>
+ <cd:variable name='ResetForm' value='ZuruecksetzenFormular'/>
+ <cd:variable name='ResumeMovie' value='FortsetzenFilm'/>
+ <cd:variable name='ResumeRendering' value='ResumeRendering'/>
+ <cd:variable name='ResumeSound' value='ResumeSound'/>
+ <cd:variable name='Romannumerals' value='Roemischezahlen'/>
+ <cd:variable name='SaveDocument' value='SpeichereDokument'/>
+ <cd:variable name='SaveForm' value='SpeicheFormular'/>
+ <cd:variable name='SaveNamedDocument' value='SaveNamedDocument'/>
+ <cd:variable name='SearchAgain' value='WeiterSuchen'/>
+ <cd:variable name='SearchDocument' value='DokumentDurchsuchen'/>
+ <cd:variable name='ShowBookmarks' value='ShowBookmarks'/>
+ <cd:variable name='ShowField' value='ZeigeFeld'/>
+ <cd:variable name='ShowThumbs' value='ShowThumbs'/>
+ <cd:variable name='StartMovie' value='StartFilm'/>
+ <cd:variable name='StartRendering' value='StartRendering'/>
+ <cd:variable name='StartSound' value='StartSound'/>
+ <cd:variable name='StopMovie' value='StopFilm'/>
+ <cd:variable name='StopRendering' value='StopRendering'/>
+ <cd:variable name='StopSound' value='StopSound'/>
+ <cd:variable name='SubmitForm' value='VersendeFormular'/>
+ <cd:variable name='ToggleLayer' value='ToggleLayer'/>
+ <cd:variable name='ToggleViewer' value='WechseleViewer'/>
+ <cd:variable name='URL' value='URL'/>
+ <cd:variable name='VideLayer' value='VideLayer'/>
+ <cd:variable name='ViewerHelp' value='ViewerHilfe'/>
+ <cd:variable name='WEEKDAY' value='WOCHENTAG'/>
+ <cd:variable name='WORD' value='WORT'/>
+ <cd:variable name='abbreviation' value='abkuerzung'/>
+ <cd:variable name='abbreviations' value='abkuerzungen'/>
+ <cd:variable name='absolute' value='absolut'/>
+ <cd:variable name='action' value='aktion'/>
+ <cd:variable name='after' value='nach'/>
+ <cd:variable name='all' value='alles'/>
+ <cd:variable name='always' value='immer'/>
+ <cd:variable name='answerarea' value='answerarea'/>
+ <cd:variable name='appendices' value='anhaenge'/>
+ <cd:variable name='appendix' value='anhang'/>
+ <cd:variable name='april' value='April'/>
+ <cd:variable name='atmargin' value='amrand'/>
+ <cd:variable name='atpage' value='aufseite'/>
+ <cd:variable name='august' value='August'/>
+ <cd:variable name='auto' value='auto'/>
+ <cd:variable name='autointro' value='autointro'/>
+ <cd:variable name='back' value='zurueck'/>
+ <cd:variable name='background' value='hintergrund'/>
+ <cd:variable name='backmatter' value='epiloge'/>
+ <cd:variable name='backpart' value='epilog'/>
+ <cd:variable name='backspace' value='rumpfspatium'/>
+ <cd:variable name='backward' value='rueckwaerts'/>
+ <cd:variable name='before' value='vor'/>
+ <cd:variable name='big' value='gross'/>
+ <cd:variable name='bigbodyfont' value='bigbodyfont'/>
+ <cd:variable name='bigpreference' value='grosszuegig'/>
+ <cd:variable name='blank' value='blanko'/>
+ <cd:variable name='blockquote' value='blockquote'/>
+ <cd:variable name='bodymatter' value='haupttexte'/>
+ <cd:variable name='bodypart' value='haupttext'/>
+ <cd:variable name='bold' value='fett'/>
+ <cd:variable name='bolditalic' value='fettitalic'/>
+ <cd:variable name='boldslanted' value='fettgeneigt'/>
+ <cd:variable name='bookmark' value='bookmark'/>
+ <cd:variable name='both' value='beide'/>
+ <cd:variable name='bottom' value='unten'/>
+ <cd:variable name='brief' value='brief'/>
+ <cd:variable name='broad' value='breit'/>
+ <cd:variable name='buffer' value='puffer'/>
+ <cd:variable name='by' value='pro'/>
+ <cd:variable name='calligraphic' value='kalligraphie'/>
+ <cd:variable name='cap' value='kap'/>
+ <cd:variable name='capital' value='versalien'/>
+ <cd:variable name='center' value='center'/>
+ <cd:variable name='chapter' value='kapitel'/>
+ <cd:variable name='character' value='buchstabe'/>
+ <cd:variable name='characters' value='buchstaben'/>
+ <cd:variable name='color' value='farbe'/>
+ <cd:variable name='column' value='column'/>
+ <cd:variable name='columns' value='spalten'/>
+ <cd:variable name='command' value='befehl'/>
+ <cd:variable name='commands' value='befehle'/>
+ <cd:variable name='comment' value='kommentar'/>
+ <cd:variable name='component' value='komponente'/>
+ <cd:variable name='concept' value='konzept'/>
+ <cd:variable name='content' value='inhalt'/>
+ <cd:variable name='contents' value='inhalte'/>
+ <cd:variable name='continue' value='fortsetzten'/>
+ <cd:variable name='controls' value='controls'/>
+ <cd:variable name='conversion' value='konversion'/>
+ <cd:variable name='current' value='aktuell'/>
+ <cd:variable name='cutspace' value='cutspace'/>
+ <cd:variable name='date' value='datum'/>
+ <cd:variable name='day' value='tag'/>
+ <cd:variable name='december' value='Dezember'/>
+ <cd:variable name='default' value='default'/>
+ <cd:variable name='depth' value='tiefe'/>
+ <cd:variable name='description' value='beschreibung'/>
+ <cd:variable name='disable' value='sperren'/>
+ <cd:variable name='display' value='bildschirm'/>
+ <cd:variable name='dot' value='punkt'/>
+ <cd:variable name='doublesided' value='doppelseitig'/>
+ <cd:variable name='each' value='jede'/>
+ <cd:variable name='edge' value='kante'/>
+ <cd:variable name='empty' value='leer'/>
+ <cd:variable name='endnote' value='endnote'/>
+ <cd:variable name='enumeration' value='nummerierung'/>
+ <cd:variable name='environment' value='umgebung'/>
+ <cd:variable name='even' value='gerade'/>
+ <cd:variable name='external' value='extern'/>
+ <cd:variable name='fact' value='gegeben'/>
+ <cd:variable name='february' value='Februar'/>
+ <cd:variable name='figure' value='abbildung'/>
+ <cd:variable name='figures' value='abbildungen'/>
+ <cd:variable name='file' value='datei'/>
+ <cd:variable name='final' value='endfassung'/>
+ <cd:variable name='first' value='erste'/>
+ <cd:variable name='firstcolumn' value='firstcolumn'/>
+ <cd:variable name='firstpage' value='ersteseite'/>
+ <cd:variable name='firstsubpage' value='ersteunterseite'/>
+ <cd:variable name='fit' value='passend'/>
+ <cd:variable name='five' value='fuenf'/>
+ <cd:variable name='fix' value='stellewiederher'/>
+ <cd:variable name='fixed' value='fest'/>
+ <cd:variable name='flexible' value='flexibel'/>
+ <cd:variable name='float' value='gleitobjekt'/>
+ <cd:variable name='flushinner' value='flushinner'/>
+ <cd:variable name='flushleft' value='flushleft'/>
+ <cd:variable name='flushouter' value='flushouter'/>
+ <cd:variable name='flushright' value='flushright'/>
+ <cd:variable name='footer' value='fusszeile'/>
+ <cd:variable name='footnote' value='fussnote'/>
+ <cd:variable name='force' value='zwinge'/>
+ <cd:variable name='foreground' value='vordergrund'/>
+ <cd:variable name='formeel' value='formeel'/>
+ <cd:variable name='formula' value='formel'/>
+ <cd:variable name='formulae' value='formeln'/>
+ <cd:variable name='forward' value='vorwaerts'/>
+ <cd:variable name='four' value='vier'/>
+ <cd:variable name='frame' value='rahmen'/>
+ <cd:variable name='framedtext' value='umrahmtertext'/>
+ <cd:variable name='friday' value='freitag'/>
+ <cd:variable name='frontmatter' value='einleitungen'/>
+ <cd:variable name='frontpart' value='einleitung'/>
+ <cd:variable name='global' value='global'/>
+ <cd:variable name='graphic' value='grafik'/>
+ <cd:variable name='graphics' value='grafiken'/>
+ <cd:variable name='gray' value='grau'/>
+ <cd:variable name='greek' value='griechisch'/>
+ <cd:variable name='grid' value='gritter'/>
+ <cd:variable name='halfline' value='halbezeile'/>
+ <cd:variable name='handwritten' value='handschrift'/>
+ <cd:variable name='hang' value='haengend'/>
+ <cd:variable name='hanging' value='haengend'/>
+ <cd:variable name='head' value='kopf'/>
+ <cd:variable name='header' value='kopfzeile'/>
+ <cd:variable name='height' value='hoehe'/>
+ <cd:variable name='helptext' value='hilfetext'/>
+ <cd:variable name='hencefore' value='vorher'/>
+ <cd:variable name='here' value='hier'/>
+ <cd:variable name='hereafter' value='nachher'/>
+ <cd:variable name='hidden' value='versteckt'/>
+ <cd:variable name='hiding' value='verbergen'/>
+ <cd:variable name='high' value='hoch'/>
+ <cd:variable name='horizontal' value='horizontal'/>
+ <cd:variable name='hyphenated' value='hyphenate'/>
+ <cd:variable name='hz' value='hz'/>
+ <cd:variable name='inbetween' value='zwischen'/>
+ <cd:variable name='index' value='index'/>
+ <cd:variable name='indices' value='indizies'/>
+ <cd:variable name='informeel' value='informeel'/>
+ <cd:variable name='inherit' value='inherit'/>
+ <cd:variable name='inleft' value='imlinken'/>
+ <cd:variable name='inmargin' value='imrand'/>
+ <cd:variable name='inner' value='innen'/>
+ <cd:variable name='inneredge' value='inneredge'/>
+ <cd:variable name='innermargin' value='innermargin'/>
+ <cd:variable name='inright' value='imrechten'/>
+ <cd:variable name='interaction' value='interaktion'/>
+ <cd:variable name='interactionmenu' value='interaktionsmenue'/>
+ <cd:variable name='intermezzi' value='intermezzi'/>
+ <cd:variable name='intermezzo' value='intermezzo'/>
+ <cd:variable name='intext' value='imtext'/>
+ <cd:variable name='intro' value='intro'/>
+ <cd:variable name='italic' value='italic'/>
+ <cd:variable name='italicbold' value='italicfett'/>
+ <cd:variable name='item' value='pos'/>
+ <cd:variable name='itemize' value='aufzaehlung'/>
+ <cd:variable name='its' value='its'/>
+ <cd:variable name='january' value='Januar'/>
+ <cd:variable name='joinedup' value='keinabstand'/>
+ <cd:variable name='july' value='Juli'/>
+ <cd:variable name='june' value='Juni'/>
+ <cd:variable name='keep' value='behalte'/>
+ <cd:variable name='knockout' value='knockout'/>
+ <cd:variable name='label' value='label'/>
+ <cd:variable name='landscape' value='querformat'/>
+ <cd:variable name='last' value='letzte'/>
+ <cd:variable name='lastcolumn' value='lastcolumn'/>
+ <cd:variable name='lastpage' value='letzteseite'/>
+ <cd:variable name='lastpagenumber' value='lastpagenumber'/>
+ <cd:variable name='lastsubpage' value='letzteunterseite'/>
+ <cd:variable name='layer' value='layer'/>
+ <cd:variable name='left' value='links'/>
+ <cd:variable name='leftedge' value='linkekante'/>
+ <cd:variable name='lefthanging' value='lefthanging'/>
+ <cd:variable name='leftmargin' value='linkerrand'/>
+ <cd:variable name='leftpage' value='linkerseite'/>
+ <cd:variable name='lefttoright' value='lefttoright'/>
+ <cd:variable name='legend' value='legende'/>
+ <cd:variable name='lesshyphenation' value='lesshyphenation'/>
+ <cd:variable name='line' value='zeile'/>
+ <cd:variable name='linenote' value='linenote'/>
+ <cd:variable name='lines' value='zeilen'/>
+ <cd:variable name='list' value='liste'/>
+ <cd:variable name='local' value='lokal'/>
+ <cd:variable name='localenvironment' value='lokaleumgebung'/>
+ <cd:variable name='logo' value='logo'/>
+ <cd:variable name='logos' value='logos'/>
+ <cd:variable name='lohi' value='hoti'/>
+ <cd:variable name='loose' value='lose'/>
+ <cd:variable name='low' value='tief'/>
+ <cd:variable name='ls' value='ls'/>
+ <cd:variable name='makeup' value='umbruch'/>
+ <cd:variable name='mar' value='mar'/>
+ <cd:variable name='march' value='Maerz'/>
+ <cd:variable name='margin' value='marginalie'/>
+ <cd:variable name='marginedge' value='marginalkante'/>
+ <cd:variable name='margintitle' value='marginaltitel'/>
+ <cd:variable name='marking' value='beschriftung'/>
+ <cd:variable name='mathalignment' value='mathalignment'/>
+ <cd:variable name='mathcases' value='mathcases'/>
+ <cd:variable name='mathmatrix' value='mathmatrix'/>
+ <cd:variable name='max' value='max'/>
+ <cd:variable name='may' value='Mai'/>
+ <cd:variable name='mediaeval' value='mittelalterlich'/>
+ <cd:variable name='medium' value='mittel'/>
+ <cd:variable name='middle' value='mittig'/>
+ <cd:variable name='min' value='min'/>
+ <cd:variable name='minheight' value='minhoehe'/>
+ <cd:variable name='minwidth' value='minbreite'/>
+ <cd:variable name='mirrored' value='gespiegelt'/>
+ <cd:variable name='monday' value='montag'/>
+ <cd:variable name='mono' value='mono'/>
+ <cd:variable name='month' value='monat'/>
+ <cd:variable name='morehyphenation' value='morehyphenation'/>
+ <cd:variable name='name' value='name'/>
+ <cd:variable name='narrow' value='schmall'/>
+ <cd:variable name='negative' value='negativ'/>
+ <cd:variable name='never' value='nie'/>
+ <cd:variable name='new' value='neu'/>
+ <cd:variable name='next' value='folgende'/>
+ <cd:variable name='nextevenpage' value='naechstegeradeseite'/>
+ <cd:variable name='nextoddpage' value='naechsteungeradeseite'/>
+ <cd:variable name='nextpage' value='folgendeseite'/>
+ <cd:variable name='nextsubpage' value='folgendeunterseite'/>
+ <cd:variable name='no' value='nein'/>
+ <cd:variable name='nocheck' value='nocheck'/>
+ <cd:variable name='nofit' value='nofit'/>
+ <cd:variable name='nogrid' value='nogrid'/>
+ <cd:variable name='nohz' value='nohz'/>
+ <cd:variable name='nomarking' value='keinebeschriftung'/>
+ <cd:variable name='none' value='kein'/>
+ <cd:variable name='nonumber' value='nonumber'/>
+ <cd:variable name='normal' value='normal'/>
+ <cd:variable name='nospacing' value='nospacing'/>
+ <cd:variable name='not' value='nicht'/>
+ <cd:variable name='note' value='note'/>
+ <cd:variable name='nothanging' value='nothanging'/>
+ <cd:variable name='nothyphenated' value='nothyphenated'/>
+ <cd:variable name='november' value='November'/>
+ <cd:variable name='nowhere' value='nirgens'/>
+ <cd:variable name='nowhite' value='keinweiss'/>
+ <cd:variable name='number' value='nummer'/>
+ <cd:variable name='numbers' value='ziffern'/>
+ <cd:variable name='october' value='Oktober'/>
+ <cd:variable name='odd' value='ungerade'/>
+ <cd:variable name='off' value='aus'/>
+ <cd:variable name='offset' value='offset'/>
+ <cd:variable name='old' value='old'/>
+ <cd:variable name='on' value='an'/>
+ <cd:variable name='one' value='eins'/>
+ <cd:variable name='opposite' value='gegenueber'/>
+ <cd:variable name='outer' value='aussen'/>
+ <cd:variable name='outeredge' value='outeredge'/>
+ <cd:variable name='outermargin' value='outermargin'/>
+ <cd:variable name='overlay' value='overlay'/>
+ <cd:variable name='overprint' value='overprint'/>
+ <cd:variable name='packed' value='gepackt'/>
+ <cd:variable name='page' value='seite'/>
+ <cd:variable name='pagecomment' value='pagecomment'/>
+ <cd:variable name='pagenumber' value='seitennummer'/>
+ <cd:variable name='paper' value='papier'/>
+ <cd:variable name='paragraph' value='absatz'/>
+ <cd:variable name='part' value='teil'/>
+ <cd:variable name='positive' value='positiv'/>
+ <cd:variable name='postponing' value='verschieben'/>
+ <cd:variable name='postscript' value='postscript'/>
+ <cd:variable name='preference' value='einstellung'/>
+ <cd:variable name='preview' value='vorschau'/>
+ <cd:variable name='previous' value='vorig'/>
+ <cd:variable name='previousevenpage' value='vorigegeradeseite'/>
+ <cd:variable name='previousoddpage' value='vorigeungeradeseite'/>
+ <cd:variable name='previouspage' value='vorigeseite'/>
+ <cd:variable name='previoussubpage' value='vorigeunterseite'/>
+ <cd:variable name='printable' value='druckbar'/>
+ <cd:variable name='process' value='process'/>
+ <cd:variable name='product' value='produkt'/>
+ <cd:variable name='program' value='programm'/>
+ <cd:variable name='project' value='projekt'/>
+ <cd:variable name='protected' value='geschuetzt'/>
+ <cd:variable name='quadruple' value='viertel'/>
+ <cd:variable name='quotation' value='zitat'/>
+ <cd:variable name='quote' value='zitieren'/>
+ <cd:variable name='ran' value='ran'/>
+ <cd:variable name='random' value='zufaellig'/>
+ <cd:variable name='readonly' value='nurlesbar'/>
+ <cd:variable name='rectangular' value='rechteckig'/>
+ <cd:variable name='referral' value='merkmal'/>
+ <cd:variable name='register' value='register'/>
+ <cd:variable name='regular' value='regular'/>
+ <cd:variable name='rekening' value='rekening'/>
+ <cd:variable name='relative' value='relativ'/>
+ <cd:variable name='repeat' value='wiederholen'/>
+ <cd:variable name='required' value='obligatorisch'/>
+ <cd:variable name='reset' value='zuruecksetzten'/>
+ <cd:variable name='reverse' value='reverse'/>
+ <cd:variable name='right' value='rechts'/>
+ <cd:variable name='rightedge' value='rechterkante'/>
+ <cd:variable name='righthanging' value='righthanging'/>
+ <cd:variable name='rightmargin' value='rechterrand'/>
+ <cd:variable name='rightpage' value='rechterseite'/>
+ <cd:variable name='righttoleft' value='righttoleft'/>
+ <cd:variable name='roman' value='antiqua'/>
+ <cd:variable name='romannumerals' value='roemischezahlen'/>
+ <cd:variable name='rotate' value='drehe'/>
+ <cd:variable name='rotated' value='gedreht'/>
+ <cd:variable name='round' value='rund'/>
+ <cd:variable name='row' value='row'/>
+ <cd:variable name='rule' value='linie'/>
+ <cd:variable name='samepage' value='selbeseite'/>
+ <cd:variable name='sans' value='sans'/>
+ <cd:variable name='sansbold' value='sansfett'/>
+ <cd:variable name='sansserif' value='grotesk'/>
+ <cd:variable name='saturday' value='samstag'/>
+ <cd:variable name='screen' value='raster'/>
+ <cd:variable name='section' value='absatz'/>
+ <cd:variable name='sectionblockenvironment' value='sectionblockenvironment'/>
+ <cd:variable name='sectionnumber' value='abschnittsnummer'/>
+ <cd:variable name='see' value='sieh'/>
+ <cd:variable name='september' value='September'/>
+ <cd:variable name='serif' value='serif'/>
+ <cd:variable name='serried' value='kleinerabstand'/>
+ <cd:variable name='setups' value='impostazioni'/>
+ <cd:variable name='sheet' value='sheet'/>
+ <cd:variable name='singlesided' value='einzelseitig'/>
+ <cd:variable name='slanted' value='geneigt'/>
+ <cd:variable name='slantedbold' value='geneigtfett'/>
+ <cd:variable name='small' value='klein'/>
+ <cd:variable name='smallbodyfont' value='smallbodyfont'/>
+ <cd:variable name='smallbold' value='kleinfett'/>
+ <cd:variable name='smallbolditalic' value='kleinfettitalic'/>
+ <cd:variable name='smallboldslanted' value='kleinfettgeneigt'/>
+ <cd:variable name='smallcaps' value='smallcaps'/>
+ <cd:variable name='smallitalic' value='kleinitalic'/>
+ <cd:variable name='smallitalicbold' value='kleinitalicfett'/>
+ <cd:variable name='smallnormal' value='kleinnormal'/>
+ <cd:variable name='smallslanted' value='kleingeneigt'/>
+ <cd:variable name='smallslantedbold' value='kleingeneigtfett'/>
+ <cd:variable name='smalltype' value='kleintippen'/>
+ <cd:variable name='somewhere' value='irgendwo'/>
+ <cd:variable name='sorted' value='sortiert'/>
+ <cd:variable name='space' value='spatium'/>
+ <cd:variable name='spacing' value='spatiumausgleich'/>
+ <cd:variable name='speech' value='speech'/>
+ <cd:variable name='split' value='split'/>
+ <cd:variable name='spot' value='spot'/>
+ <cd:variable name='standard' value='standard'/>
+ <cd:variable name='start' value='start'/>
+ <cd:variable name='sticker' value='sticker'/>
+ <cd:variable name='stop' value='stop'/>
+ <cd:variable name='stopper' value='trenner'/>
+ <cd:variable name='stretch' value='strecken'/>
+ <cd:variable name='strict' value='streng'/>
+ <cd:variable name='strong' value='strong'/>
+ <cd:variable name='strut' value='strut'/>
+ <cd:variable name='sub' value='unter'/>
+ <cd:variable name='subbackward' value='unterrueckwaerts'/>
+ <cd:variable name='subformula' value='subformel'/>
+ <cd:variable name='subforward' value='untervorwaerts'/>
+ <cd:variable name='subject' value='thema'/>
+ <cd:variable name='subpage' value='unterseite'/>
+ <cd:variable name='subsection' value='unterabsatz'/>
+ <cd:variable name='subsubject' value='unterthema'/>
+ <cd:variable name='subsubsection' value='unterunterabsatz'/>
+ <cd:variable name='subsubsubject' value='unterunterthema'/>
+ <cd:variable name='subsubsubsection' value='unterunterunterabsatz'/>
+ <cd:variable name='subsubsubsubject' value='unterunterunterthema'/>
+ <cd:variable name='subsubsubsubsection' value='unterunterunterunterabsatz'/>
+ <cd:variable name='subsubsubsubsubject' value='unterunterunterunterthema'/>
+ <cd:variable name='subsubsubsubsubsection' value='unterunterunterunterunterabsatz'/>
+ <cd:variable name='subsubsubsubsubsubject' value='unterunterunterunterunterthema'/>
+ <cd:variable name='subsubsubsubsubsubsection' value='unterunterunterunterunterunterabsatz'/>
+ <cd:variable name='subsubsubsubsubsubsubject' value='unterunterunterunterunterunterthema'/>
+ <cd:variable name='subsubsubsubsubsubsubsection' value='unterunterunterunterunterunterunterabsatz'/>
+ <cd:variable name='subsubsubsubsubsubsubsubject' value='unterunterunterunterunterunterunterthema'/>
+ <cd:variable name='subsubsubsubsubsubsubsubsection' value='unterunterunterunterunterunterunterunterabsatz'/>
+ <cd:variable name='subsubsubsubsubsubsubsubsubject' value='unterunterunterunterunterunterunterunterthema'/>
+ <cd:variable name='subsubsubsubsubsubsubsubsubsection' value='unterunterunterunterunterunterunterunterunterabsatz'/>
+ <cd:variable name='subsubsubsubsubsubsubsubsubsubject' value='unterunterunterunterunterunterunterunterunterthema'/>
+ <cd:variable name='sunday' value='sonntag'/>
+ <cd:variable name='support' value='support'/>
+ <cd:variable name='sym' value='sym'/>
+ <cd:variable name='symbol' value='symbol'/>
+ <cd:variable name='synchronize' value='synchronize'/>
+ <cd:variable name='system' value='systeme'/>
+ <cd:variable name='table' value='tabelle'/>
+ <cd:variable name='tablehead' value='tabellenueberschrift'/>
+ <cd:variable name='tables' value='tabellen'/>
+ <cd:variable name='tabletail' value='tabellenende'/>
+ <cd:variable name='tabulate' value='tabulator'/>
+ <cd:variable name='tabulatehead' value='tabulatehead'/>
+ <cd:variable name='tabulatetail' value='tabulatetail'/>
+ <cd:variable name='tall' value='lang'/>
+ <cd:variable name='teletype' value='fernschreiber'/>
+ <cd:variable name='temporary' value='temporaer'/>
+ <cd:variable name='test' value='test'/>
+ <cd:variable name='text' value='text'/>
+ <cd:variable name='three' value='drei'/>
+ <cd:variable name='thursday' value='donnerstag'/>
+ <cd:variable name='title' value='titel'/>
+ <cd:variable name='toggle' value='toggle'/>
+ <cd:variable name='tolerant' value='tolerant'/>
+ <cd:variable name='top' value='oben'/>
+ <cd:variable name='tuesday' value='dienstag'/>
+ <cd:variable name='two' value='zwei'/>
+ <cd:variable name='txt' value='txt'/>
+ <cd:variable name='type' value='tippen'/>
+ <cd:variable name='typing' value='tippen'/>
+ <cd:variable name='unavailable' value='nichtverfuegbar'/>
+ <cd:variable name='unit' value='einheit'/>
+ <cd:variable name='units' value='einheiten'/>
+ <cd:variable name='unknown' value='unbekannt'/>
+ <cd:variable name='unpacked' value='ungepackt'/>
+ <cd:variable name='url' value='url'/>
+ <cd:variable name='used' value='verwende'/>
+ <cd:variable name='value' value='wert'/>
+ <cd:variable name='vertical' value='vertikal'/>
+ <cd:variable name='very' value='sehr'/>
+ <cd:variable name='verystrict' value='sehrstreng'/>
+ <cd:variable name='verytolerant' value='sehrtolerant'/>
+ <cd:variable name='weak' value='weak'/>
+ <cd:variable name='wednesday' value='mittwoch'/>
+ <cd:variable name='week' value='woche'/>
+ <cd:variable name='weekday' value='wochentag'/>
+ <cd:variable name='white' value='weiss'/>
+ <cd:variable name='wide' value='breit'/>
+ <cd:variable name='width' value='breite'/>
+ <cd:variable name='xml' value='xml'/>
+ <cd:variable name='year' value='jahr'/>
+ <cd:variable name='yes' value='ja'/>
+ </cd:variable>
- <cd:variables>
- <cd:variable name="environment" value="umgebung"/>
- <cd:variable name="component" value="komponente"/>
- <cd:variable name="product" value="produkt"/>
- <cd:variable name="project" value="projekt"/>
- </cd:variables>
+ <!-- definitions for interface constants for language de -->
- <cd:variables>
- <cd:variable name="sunday" value="sonntag"/>
- <cd:variable name="monday" value="montag"/>
- <cd:variable name="tuesday" value="dienstag"/>
- <cd:variable name="wednesday" value="mittwoch"/>
- <cd:variable name="thursday" value="donnerstag"/>
- <cd:variable name="friday" value="freitag"/>
- <cd:variable name="saturday" value="samstag"/>
- </cd:variables>
+ <cd:constants>
+ <cd:constant name='action' value='aktion'/>
+ <cd:constant name='address' value='adresse'/>
+ <cd:constant name='after' value='nach'/>
+ <cd:constant name='afterhead' value='nachkopf'/>
+ <cd:constant name='afterkey' value='nachtaste'/>
+ <cd:constant name='align' value='ausrichtung'/>
+ <cd:constant name='aligncharacter' value='aligncharacter'/>
+ <cd:constant name='alignmentcharacter' value='alignmentcharacter'/>
+ <cd:constant name='aligntitle' value='titelausrichten'/>
+ <cd:constant name='alternative' value='alternative'/>
+ <cd:constant name='apa' value='apa'/>
+ <cd:constant name='arrow' value='pfeil'/>
+ <cd:constant name='at' value='bei'/>
+ <cd:constant name='author' value='autor'/>
+ <cd:constant name='auto' value='auto'/>
+ <cd:constant name='autofile' value='autofile'/>
+ <cd:constant name='autofocus' value='autofocus'/>
+ <cd:constant name='autohang' value='autohang'/>
+ <cd:constant name='autostrut' value='autostrut'/>
+ <cd:constant name='autowidth' value='autobreite'/>
+ <cd:constant name='axis' value='achsen'/>
+ <cd:constant name='background' value='hintergrund'/>
+ <cd:constant name='backgroundcolor' value='hintergrundfarbe'/>
+ <cd:constant name='backgroundcorner' value='hintergrundwinkel'/>
+ <cd:constant name='backgrounddepth' value='hintergrundtiefe'/>
+ <cd:constant name='backgroundoffset' value='hintergrundoffset'/>
+ <cd:constant name='backgroundradius' value='hintergrundradius'/>
+ <cd:constant name='backgroundscreen' value='hintergrundraster'/>
+ <cd:constant name='backspace' value='rumpfspatium'/>
+ <cd:constant name='balance' value='ausgleichen'/>
+ <cd:constant name='before' value='vor'/>
+ <cd:constant name='beforehead' value='vorkopf'/>
+ <cd:constant name='bet' value='bet'/>
+ <cd:constant name='big' value='gross'/>
+ <cd:constant name='blank' value='blanko'/>
+ <cd:constant name='blockway' value='blockauf'/>
+ <cd:constant name='bodyfont' value='fliesstext'/>
+ <cd:constant name='bookmark' value='bookmark'/>
+ <cd:constant name='bottom' value='unten'/>
+ <cd:constant name='bottomafter' value='bottomafter'/>
+ <cd:constant name='bottombefore' value='bottombefore'/>
+ <cd:constant name='bottomdistance' value='abstandunten'/>
+ <cd:constant name='bottomframe' value='untenrahmen'/>
+ <cd:constant name='bottomoffset' value='untenoffset'/>
+ <cd:constant name='bottomspace' value='bottomspace'/>
+ <cd:constant name='bottomstate' value='untenstatus'/>
+ <cd:constant name='cache' value='cache'/>
+ <cd:constant name='calculate' value='berechnen'/>
+ <cd:constant name='ccommand' value='cbefehl'/>
+ <cd:constant name='click' value='klick'/>
+ <cd:constant name='clickin' value='klickin'/>
+ <cd:constant name='clickout' value='klickaus'/>
+ <cd:constant name='clipoffset' value='clipoffset'/>
+ <cd:constant name='closeaction' value='schliessenaktion'/>
+ <cd:constant name='closecommand' value='closecommand'/>
+ <cd:constant name='closepageaction' value='closepageaction'/>
+ <cd:constant name='closesymbol' value='closesymbol'/>
+ <cd:constant name='color' value='farbe'/>
+ <cd:constant name='column' value='spalte'/>
+ <cd:constant name='columndistance' value='spaltenabstand'/>
+ <cd:constant name='columns' value='spalten'/>
+ <cd:constant name='command' value='befehl'/>
+ <cd:constant name='commandafter' value='zumbefehl'/>
+ <cd:constant name='commandbefore' value='vorbefehl'/>
+ <cd:constant name='commands' value='befehle'/>
+ <cd:constant name='component' value='component'/>
+ <cd:constant name='compoundhyphen' value='compoundhyphen'/>
+ <cd:constant name='compress' value='compress'/>
+ <cd:constant name='connector' value='connector'/>
+ <cd:constant name='continue' value='fortsetzen'/>
+ <cd:constant name='contrastcolor' value='kontrastfarbe'/>
+ <cd:constant name='controls' value='controls'/>
+ <cd:constant name='conversion' value='konversion'/>
+ <cd:constant name='convertfile' value='konvertieredatei'/>
+ <cd:constant name='corner' value='winkel'/>
+ <cd:constant name='coupling' value='verknuepfung'/>
+ <cd:constant name='couplingway' value='verkopplungsart'/>
+ <cd:constant name='criterium' value='kriterium'/>
+ <cd:constant name='current' value='aktuell'/>
+ <cd:constant name='cutspace' value='cutspace'/>
+ <cd:constant name='dash' value='strich'/>
+ <cd:constant name='dat' value='dat'/>
+ <cd:constant name='date' value='datum'/>
+ <cd:constant name='deepnumbercommand' value='deepnumbercommand'/>
+ <cd:constant name='deeptextcommand' value='deeptextcommand'/>
+ <cd:constant name='default' value='default'/>
+ <cd:constant name='delay' value='wartezeit'/>
+ <cd:constant name='depth' value='tiefe'/>
+ <cd:constant name='depthcorrection' value='tiefekorrektur'/>
+ <cd:constant name='direction' value='richtung'/>
+ <cd:constant name='directory' value='verzeichnis'/>
+ <cd:constant name='display' value='bildschirm'/>
+ <cd:constant name='distance' value='abstand'/>
+ <cd:constant name='dot' value='punkt'/>
+ <cd:constant name='doublesided' value='doppelseitig'/>
+ <cd:constant name='dummy' value='dummy'/>
+ <cd:constant name='dx' value='dx'/>
+ <cd:constant name='dy' value='dy'/>
+ <cd:constant name='edge' value='kante'/>
+ <cd:constant name='edgedistance' value='kantenabstand'/>
+ <cd:constant name='empty' value='leer'/>
+ <cd:constant name='equalheight' value='equalheight'/>
+ <cd:constant name='equalwidth' value='equalwidth'/>
+ <cd:constant name='escape' value='escape'/>
+ <cd:constant name='evenmargin' value='geraderand'/>
+ <cd:constant name='expansion' value='expansion'/>
+ <cd:constant name='extras' value='extras'/>
+ <cd:constant name='factor' value='faktor'/>
+ <cd:constant name='fallback' value='fallback'/>
+ <cd:constant name='family' value='familie'/>
+ <cd:constant name='fieldbackgroundcolor' value='feldhintergrundfarbe'/>
+ <cd:constant name='fieldframecolor' value='feldrahmenfarbe'/>
+ <cd:constant name='fieldlayer' value='fieldlayer'/>
+ <cd:constant name='fieldoffset' value='feldoffset'/>
+ <cd:constant name='file' value='datei'/>
+ <cd:constant name='filtercommand' value='filtercommand'/>
+ <cd:constant name='focus' value='focus'/>
+ <cd:constant name='focusin' value='focusin'/>
+ <cd:constant name='focusout' value='focusout'/>
+ <cd:constant name='footer' value='fusszeile'/>
+ <cd:constant name='footerdistance' value='fusszeilenabstand'/>
+ <cd:constant name='footerstate' value='fusszeilenstatus'/>
+ <cd:constant name='foregroundcolor' value='foregroundcolor'/>
+ <cd:constant name='foregroundstyle' value='foregroundstyle'/>
+ <cd:constant name='format' value='formatieren'/>
+ <cd:constant name='frame' value='rahmen'/>
+ <cd:constant name='framecolor' value='rahmenfarbe'/>
+ <cd:constant name='framecorner' value='rahmenwinkel'/>
+ <cd:constant name='framedepth' value='rahmentiefe'/>
+ <cd:constant name='frameoffset' value='rahmenoffset'/>
+ <cd:constant name='frameradius' value='rahmenradius'/>
+ <cd:constant name='frames' value='umrahmen'/>
+ <cd:constant name='from' value='von'/>
+ <cd:constant name='get' value='hole'/>
+ <cd:constant name='global' value='global'/>
+ <cd:constant name='grid' value='gritter'/>
+ <cd:constant name='hang' value='haengend'/>
+ <cd:constant name='headcolor' value='kopffarbe'/>
+ <cd:constant name='headcommand' value='headcommand'/>
+ <cd:constant name='headconversion' value='headconversion'/>
+ <cd:constant name='header' value='kopfzeile'/>
+ <cd:constant name='headerdistance' value='kopfzeilenabstand'/>
+ <cd:constant name='headerstate' value='kopfzeilenstatus'/>
+ <cd:constant name='headlabel' value='headlabel'/>
+ <cd:constant name='headnumber' value='kopfnummer'/>
+ <cd:constant name='headstyle' value='kopfstil'/>
+ <cd:constant name='height' value='hoehe'/>
+ <cd:constant name='hfactor' value='hfaktor'/>
+ <cd:constant name='hfil' value='hfil'/>
+ <cd:constant name='hidenumber' value='hidenumber'/>
+ <cd:constant name='hoffset' value='hoffset'/>
+ <cd:constant name='horoffset' value='rumpfabstand'/>
+ <cd:constant name='hyphen' value='hyphen'/>
+ <cd:constant name='icommand' value='ibefehl'/>
+ <cd:constant name='in' value='in'/>
+ <cd:constant name='inbetween' value='zwischen'/>
+ <cd:constant name='increment' value='erhoehen'/>
+ <cd:constant name='incrementnumber' value='nummererhoehen'/>
+ <cd:constant name='indenting' value='einziehen'/>
+ <cd:constant name='indentnext' value='ziehefolgendeein'/>
+ <cd:constant name='indicator' value='indikator'/>
+ <cd:constant name='inner' value='innen'/>
+ <cd:constant name='innermargin' value='innermargin'/>
+ <cd:constant name='inputfile' value='inputfile'/>
+ <cd:constant name='interaction' value='interaktion'/>
+ <cd:constant name='interlinespace' value='zeilenabstande'/>
+ <cd:constant name='itemalign' value='itemalign'/>
+ <cd:constant name='items' value='posten'/>
+ <cd:constant name='ken' value='ken'/>
+ <cd:constant name='keyexpansion' value='keyexpansion'/>
+ <cd:constant name='keyword' value='keyword'/>
+ <cd:constant name='label' value='label'/>
+ <cd:constant name='left' value='links'/>
+ <cd:constant name='leftcolor' value='linkerfarbe'/>
+ <cd:constant name='leftcompoundhyphen' value='leftcompoundhyphen'/>
+ <cd:constant name='leftedge' value='linkekante'/>
+ <cd:constant name='leftedgedistance' value='linkerkantenabstand'/>
+ <cd:constant name='leftframe' value='linkerrahmen'/>
+ <cd:constant name='lefthyphen' value='lefthyphen'/>
+ <cd:constant name='leftmargin' value='linkerrand'/>
+ <cd:constant name='leftmargindistance' value='linkerrandabstand'/>
+ <cd:constant name='leftoffset' value='linkeroffset'/>
+ <cd:constant name='leftquotation' value='linkerzitat'/>
+ <cd:constant name='leftquote' value='linkerzitieren'/>
+ <cd:constant name='leftsentence' value='linkersatz'/>
+ <cd:constant name='leftspeech' value='leftspeech'/>
+ <cd:constant name='leftstyle' value='linkerstil'/>
+ <cd:constant name='leftsubsentence' value='linkersubsatz'/>
+ <cd:constant name='lefttext' value='linkertext'/>
+ <cd:constant name='leftwidth' value='linkerbreite'/>
+ <cd:constant name='level' value='niveau'/>
+ <cd:constant name='levels' value='niveaus'/>
+ <cd:constant name='limittext' value='limittext'/>
+ <cd:constant name='line' value='zeile'/>
+ <cd:constant name='linecorrection' value='zeilekorrektur'/>
+ <cd:constant name='lines' value='zeilen'/>
+ <cd:constant name='list' value='liste'/>
+ <cd:constant name='listtext' value='listtext'/>
+ <cd:constant name='local' value='lokal'/>
+ <cd:constant name='location' value='platz'/>
+ <cd:constant name='logo' value='logo'/>
+ <cd:constant name='logos' value='logos'/>
+ <cd:constant name='marcolor' value='beschrfarbe'/>
+ <cd:constant name='margin' value='marginalie'/>
+ <cd:constant name='margindistance' value='marginalabstand'/>
+ <cd:constant name='marginedge' value='marginalkante'/>
+ <cd:constant name='marginedgetext' value='marginalkantetext'/>
+ <cd:constant name='margintext' value='marginaltext'/>
+ <cd:constant name='marking' value='beschriftung'/>
+ <cd:constant name='marstyle' value='beschrstil'/>
+ <cd:constant name='max' value='max'/>
+ <cd:constant name='maxheight' value='maxhoehe'/>
+ <cd:constant name='maxwidth' value='maxbreite'/>
+ <cd:constant name='menu' value='menue'/>
+ <cd:constant name='method' value='methode'/>
+ <cd:constant name='middle' value='mittig'/>
+ <cd:constant name='middlespeech' value='middlespeech'/>
+ <cd:constant name='middletext' value='mittigertext'/>
+ <cd:constant name='midsentence' value='midsentence'/>
+ <cd:constant name='min' value='min'/>
+ <cd:constant name='mindepth' value='mindepth'/>
+ <cd:constant name='minheight' value='minhoehe'/>
+ <cd:constant name='minwidth' value='minbreite'/>
+ <cd:constant name='n' value='n'/>
+ <cd:constant name='name' value='name'/>
+ <cd:constant name='nbottom' value='nunten'/>
+ <cd:constant name='nc' value='nc'/>
+ <cd:constant name='next' value='folgende'/>
+ <cd:constant name='nl' value='nl'/>
+ <cd:constant name='nleft' value='nlinks'/>
+ <cd:constant name='nlines' value='zzeile'/>
+ <cd:constant name='norm' value='norm'/>
+ <cd:constant name='nr' value='nr'/>
+ <cd:constant name='nright' value='nrechts'/>
+ <cd:constant name='ntop' value='noben'/>
+ <cd:constant name='number' value='nummer'/>
+ <cd:constant name='numbercolor' value='nummernfarbe'/>
+ <cd:constant name='numbercommand' value='nummerbefehl'/>
+ <cd:constant name='numberconversion' value='numberconversion'/>
+ <cd:constant name='numberconversionset' value='numberconversionset'/>
+ <cd:constant name='numberdistance' value='numberdistance'/>
+ <cd:constant name='numbering' value='nummerierung'/>
+ <cd:constant name='numberorder' value='numberorder'/>
+ <cd:constant name='numberprefix' value='numberprefix'/>
+ <cd:constant name='numbersegments' value='numbersegments'/>
+ <cd:constant name='numberseparator' value='nummernseperator'/>
+ <cd:constant name='numberseparatorset' value='numberseparatorset'/>
+ <cd:constant name='numberset' value='numberset'/>
+ <cd:constant name='numberstopper' value='numberstopper'/>
+ <cd:constant name='numberstyle' value='nummernstil'/>
+ <cd:constant name='numberwidth' value='numberwidth'/>
+ <cd:constant name='nx' value='nx'/>
+ <cd:constant name='ny' value='ny'/>
+ <cd:constant name='object' value='objekt'/>
+ <cd:constant name='obstruction' value='gesperrt'/>
+ <cd:constant name='oddmargin' value='ungeraderand'/>
+ <cd:constant name='offset' value='offset'/>
+ <cd:constant name='openaction' value='oeffenaktion'/>
+ <cd:constant name='openpageaction' value='openpageaction'/>
+ <cd:constant name='option' value='option'/>
+ <cd:constant name='orientation' value='orientation'/>
+ <cd:constant name='outermargin' value='outermargin'/>
+ <cd:constant name='overprint' value='overprint'/>
+ <cd:constant name='ownnumber' value='eigenenummer'/>
+ <cd:constant name='page' value='seite'/>
+ <cd:constant name='pageboundaries' value='seitenbegrenzung'/>
+ <cd:constant name='pagecolor' value='seitenfarbe'/>
+ <cd:constant name='pagecommand' value='seitenbefehl'/>
+ <cd:constant name='pageconversion' value='pageconversion'/>
+ <cd:constant name='pageconversionset' value='pageconversionset'/>
+ <cd:constant name='pagenumber' value='seitennummer'/>
+ <cd:constant name='pageprefix' value='pageprefix'/>
+ <cd:constant name='pageprefixconnector' value='pageprefixconnector'/>
+ <cd:constant name='pageprefixconversion' value='pageprefixconversion'/>
+ <cd:constant name='pageprefixconversionset' value='pageprefixconversionset'/>
+ <cd:constant name='pageprefixsegments' value='pageprefixsegments'/>
+ <cd:constant name='pageprefixseparatorset' value='pageprefixseparatorset'/>
+ <cd:constant name='pageprefixset' value='pageprefixset'/>
+ <cd:constant name='pageprefixstopper' value='pageprefixstopper'/>
+ <cd:constant name='pagesegments' value='pagesegments'/>
+ <cd:constant name='pageseparatorset' value='pageseparatorset'/>
+ <cd:constant name='pageset' value='pageset'/>
+ <cd:constant name='pagestate' value='pagestate'/>
+ <cd:constant name='pagestopper' value='pagestopper'/>
+ <cd:constant name='pagestyle' value='seitenstil'/>
+ <cd:constant name='palet' value='palette'/>
+ <cd:constant name='paper' value='papier'/>
+ <cd:constant name='paragraph' value='absatz'/>
+ <cd:constant name='place' value='platziere'/>
+ <cd:constant name='placehead' value='setzekopf'/>
+ <cd:constant name='placestopper' value='setzetrenner'/>
+ <cd:constant name='position' value='position'/>
+ <cd:constant name='prefix' value='prefix'/>
+ <cd:constant name='prefixconnector' value='prefixconnector'/>
+ <cd:constant name='prefixconversion' value='prefixconversion'/>
+ <cd:constant name='prefixconversionset' value='prefixconversionset'/>
+ <cd:constant name='prefixsegments' value='prefixsegments'/>
+ <cd:constant name='prefixseparatorset' value='prefixseparatorset'/>
+ <cd:constant name='prefixset' value='prefixset'/>
+ <cd:constant name='prefixstopper' value='prefixstopper'/>
+ <cd:constant name='preset' value='voreinstellung'/>
+ <cd:constant name='preview' value='vorschau'/>
+ <cd:constant name='previous' value='vorige'/>
+ <cd:constant name='previousnumber' value='vorigenummer'/>
+ <cd:constant name='process' value='process'/>
+ <cd:constant name='radius' value='radius'/>
+ <cd:constant name='random' value='zufaellig'/>
+ <cd:constant name='reduction' value='reduktion'/>
+ <cd:constant name='ref' value='ref'/>
+ <cd:constant name='reference' value='referenz'/>
+ <cd:constant name='referenceprefix' value='referenceprefix'/>
+ <cd:constant name='referencing' value='referieren'/>
+ <cd:constant name='regionin' value='regionin'/>
+ <cd:constant name='regionout' value='regionaus'/>
+ <cd:constant name='repeat' value='wiederholen'/>
+ <cd:constant name='reset' value='reset'/>
+ <cd:constant name='resetnumber' value='resetnumber'/>
+ <cd:constant name='resolution' value='aufloesung'/>
+ <cd:constant name='right' value='rechts'/>
+ <cd:constant name='rightcolor' value='rechterfarbe'/>
+ <cd:constant name='rightcompoundhyphen' value='rightcompoundhyphen'/>
+ <cd:constant name='rightedge' value='rechtekante'/>
+ <cd:constant name='rightedgedistance' value='rechterkantenabstand'/>
+ <cd:constant name='rightframe' value='rechterrahmen'/>
+ <cd:constant name='righthyphen' value='righthyphen'/>
+ <cd:constant name='rightmargin' value='rechterrand'/>
+ <cd:constant name='rightmargindistance' value='rechterrandabstand'/>
+ <cd:constant name='rightoffset' value='rechterabstand'/>
+ <cd:constant name='rightquotation' value='rechterzitat'/>
+ <cd:constant name='rightquote' value='rechterzitieren'/>
+ <cd:constant name='rightsentence' value='rechtersatz'/>
+ <cd:constant name='rightspeech' value='rightspeech'/>
+ <cd:constant name='rightstyle' value='rechterstil'/>
+ <cd:constant name='rightsubsentence' value='rechtersubsatz'/>
+ <cd:constant name='righttext' value='rechtertext'/>
+ <cd:constant name='rightwidth' value='rechterbreite'/>
+ <cd:constant name='rotation' value='rotation'/>
+ <cd:constant name='rule' value='linie'/>
+ <cd:constant name='rulecolor' value='linienfarbe'/>
+ <cd:constant name='rulethickness' value='liniendicke'/>
+ <cd:constant name='samepage' value='selbeseite'/>
+ <cd:constant name='sample' value='muster'/>
+ <cd:constant name='saveinlist' value='saveinlist'/>
+ <cd:constant name='scale' value='format'/>
+ <cd:constant name='scope' value='bereich'/>
+ <cd:constant name='screen' value='raster'/>
+ <cd:constant name='section' value='abschnitt'/>
+ <cd:constant name='sectionconversion' value='sectionconversion'/>
+ <cd:constant name='sectionconversionset' value='sectionconversionset'/>
+ <cd:constant name='sectionnumber' value='abschnittsnummer'/>
+ <cd:constant name='sectionresetset' value='sectionresetset'/>
+ <cd:constant name='sectionsegments' value='sectionsegments'/>
+ <cd:constant name='sectionseparatorset' value='sectionseparatorset'/>
+ <cd:constant name='sectionset' value='sectionset'/>
+ <cd:constant name='sectionstopper' value='sectionstopper'/>
+ <cd:constant name='separator' value='seperator'/>
+ <cd:constant name='set' value='set'/>
+ <cd:constant name='setups' value='setups'/>
+ <cd:constant name='side' value='objektabstand'/>
+ <cd:constant name='sidealign' value='sidealign'/>
+ <cd:constant name='sidemethod' value='sidemethod'/>
+ <cd:constant name='sidespaceafter' value='nebennachspatium'/>
+ <cd:constant name='sidespacebefore' value='nebenvorspatium'/>
+ <cd:constant name='sign' value='zeichen'/>
+ <cd:constant name='size' value='groesse'/>
+ <cd:constant name='small' value='klein'/>
+ <cd:constant name='sorttype' value='sorttype'/>
+ <cd:constant name='source' value='quelle'/>
+ <cd:constant name='space' value='spatium'/>
+ <cd:constant name='spaceafter' value='nachspatium'/>
+ <cd:constant name='spacebefore' value='vorspatium'/>
+ <cd:constant name='spaceinbetween' value='spaceinbetween'/>
+ <cd:constant name='spacing' value='spatiumausgleich'/>
+ <cd:constant name='split' value='split'/>
+ <cd:constant name='splitcolor' value='splitcolor'/>
+ <cd:constant name='splitmethod' value='splitmethod'/>
+ <cd:constant name='splitoffset' value='splitoffset'/>
+ <cd:constant name='spot' value='spot'/>
+ <cd:constant name='stack' value='stack'/>
+ <cd:constant name='start' value='start'/>
+ <cd:constant name='state' value='status'/>
+ <cd:constant name='step' value='schritt'/>
+ <cd:constant name='stop' value='stop'/>
+ <cd:constant name='stopper' value='abschnitttrenner'/>
+ <cd:constant name='stretch' value='strecken'/>
+ <cd:constant name='strut' value='strut'/>
+ <cd:constant name='style' value='stil'/>
+ <cd:constant name='sub' value='unter'/>
+ <cd:constant name='subtitle' value='untertitel'/>
+ <cd:constant name='suffix' value='suffix'/>
+ <cd:constant name='sx' value='sx'/>
+ <cd:constant name='sy' value='sy'/>
+ <cd:constant name='symalign' value='symausrichtung'/>
+ <cd:constant name='symbol' value='symbol'/>
+ <cd:constant name='symbolset' value='symbolset'/>
+ <cd:constant name='symcolor' value='symfarbe'/>
+ <cd:constant name='symstyle' value='symstil'/>
+ <cd:constant name='synonym' value='synonym'/>
+ <cd:constant name='synonymcolor' value='synonymfarbe'/>
+ <cd:constant name='synonymcommand' value='synonymbefehl'/>
+ <cd:constant name='synonymstyle' value='synonymstil'/>
+ <cd:constant name='tab' value='tab'/>
+ <cd:constant name='text' value='text'/>
+ <cd:constant name='textcolor' value='textfarbe'/>
+ <cd:constant name='textcommand' value='textbefehl'/>
+ <cd:constant name='textdistance' value='textdistance'/>
+ <cd:constant name='textlayer' value='textlayer'/>
+ <cd:constant name='textmargin' value='textmargin'/>
+ <cd:constant name='textmethod' value='textmethod'/>
+ <cd:constant name='textseparator' value='textseparator'/>
+ <cd:constant name='textsize' value='textgroesse'/>
+ <cd:constant name='textstate' value='textstatus'/>
+ <cd:constant name='textstyle' value='textstil'/>
+ <cd:constant name='textwidth' value='textbreite'/>
+ <cd:constant name='title' value='titel'/>
+ <cd:constant name='titlecolor' value='titelfarbe'/>
+ <cd:constant name='titlecommand' value='titlecommand'/>
+ <cd:constant name='titledistance' value='titelabstand'/>
+ <cd:constant name='titleleft' value='titleleft'/>
+ <cd:constant name='titleright' value='titleright'/>
+ <cd:constant name='titlestyle' value='titelstil'/>
+ <cd:constant name='to' value='zu'/>
+ <cd:constant name='tolerance' value='toleranz'/>
+ <cd:constant name='top' value='oben'/>
+ <cd:constant name='topdistance' value='obenabstand'/>
+ <cd:constant name='topframe' value='obenrahmen'/>
+ <cd:constant name='topoffset' value='obenoffset'/>
+ <cd:constant name='topspace' value='kopfspatium'/>
+ <cd:constant name='topstate' value='statusoben'/>
+ <cd:constant name='type' value='typ'/>
+ <cd:constant name='unit' value='einheit'/>
+ <cd:constant name='unknownreference' value='unbekantereferenz'/>
+ <cd:constant name='urlalternative' value='urlalternative'/>
+ <cd:constant name='urlspace' value='urlspatium'/>
+ <cd:constant name='validate' value='validieren'/>
+ <cd:constant name='vcommand' value='vbefehl'/>
+ <cd:constant name='veroffset' value='kopfoffset'/>
+ <cd:constant name='vfil' value='vfil'/>
+ <cd:constant name='voffset' value='voffset'/>
+ <cd:constant name='way' value='art'/>
+ <cd:constant name='wfactor' value='bfaktor'/>
+ <cd:constant name='white' value='weiss'/>
+ <cd:constant name='width' value='breite'/>
+ <cd:constant name='xfactor' value='xfaktor'/>
+ <cd:constant name='xmax' value='xmax'/>
+ <cd:constant name='xoffset' value='xoffset'/>
+ <cd:constant name='xscale' value='xformat'/>
+ <cd:constant name='xstep' value='xschritt'/>
+ <cd:constant name='yfactor' value='yfaktor'/>
+ <cd:constant name='ymax' value='ymax'/>
+ <cd:constant name='yoffset' value='yoffset'/>
+ <cd:constant name='yscale' value='yformat'/>
+ <cd:constant name='ystep' value='yschritt'/>
+ </cd:constant>
- <cd:variables>
- <cd:variable name="january" value="Januar"/>
- <cd:variable name="february" value="Februar"/>
- <cd:variable name="march" value="Maerz"/>
- <cd:variable name="april" value="April"/>
- <cd:variable name="may" value="Mai"/>
- <cd:variable name="june" value="Juni"/>
- <cd:variable name="july" value="Juli"/>
- <cd:variable name="august" value="August"/>
- <cd:variable name="september" value="September"/>
- <cd:variable name="october" value="Oktober"/>
- <cd:variable name="november" value="November"/>
- <cd:variable name="december" value="Dezember"/>
- </cd:variables>
+ <!-- definitions for interface elements for language de -->
- <cd:variables>
- <cd:variable name="atpage" value="aufseite"/>
- <cd:variable name="hencefore" value="vorher"/>
- <cd:variable name="hereafter" value="nachher"/>
- </cd:variables>
+ <cd:elements>
+ <cd:element name='answerlines' value='answerlines'/>
+ <cd:element name='answerspace' value='answerspace'/>
+ <cd:element name='begin' value='anfang'/>
+ <cd:element name='complete' value='vollende'/>
+ <cd:element name='coupled' value='verknuepft'/>
+ <cd:element name='currentlocal' value='aktuelllokal'/>
+ <cd:element name='emptyone' value='vuoto'/>
+ <cd:element name='emptytwo' value='leer'/>
+ <cd:element name='end' value='ende'/>
+ <cd:element name='endsetup' value='ein'/>
+ <cd:element name='get' value='get'/>
+ <cd:element name='increment' value='erhoehen'/>
+ <cd:element name='list' value='auflisten'/>
+ <cd:element name='listof' value='auflistenvon'/>
+ <cd:element name='load' value='laden'/>
+ <cd:element name='local' value='lokal'/>
+ <cd:element name='makeup' value='umbruch'/>
+ <cd:element name='next' value='folgende'/>
+ <cd:element name='place' value='platziere'/>
+ <cd:element name='previous' value='vorige'/>
+ <cd:element name='previouslocal' value='voriglokal'/>
+ <cd:element name='reserve' value='reservieren'/>
+ <cd:element name='see' value='sieh'/>
+ <cd:element name='setup' value='stelle'/>
+ <cd:element name='start' value='start'/>
+ <cd:element name='stop' value='stop'/>
+ <cd:element name='text' value='text'/>
+ <cd:element name='type' value='type'/>
+ </cd:element>
- <cd:variables>
- <cd:variable name="part" value="teil"/>
- <cd:variable name="chapter" value="kapitel"/>
- <cd:variable name="subject" value="thema"/>
- <cd:variable name="section" value="absatz"/>
- <cd:variable name="title" value="titel"/>
- <cd:variable name="margintitle" value="marginaltitel"/>
- <cd:variable name="content" value="inhalt"/>
- <cd:variable name="contents" value="inhalte"/>
- <cd:variable name="appendix" value="anhang"/>
- <cd:variable name="appendices" value="anhaenge"/>
- <cd:variable name="bodypart" value="haupttext"/>
- <cd:variable name="bodymatter" value="haupttexte"/>
- <cd:variable name="frontpart" value="einleitung"/>
- <cd:variable name="frontmatter" value="einleitungen"/>
- <cd:variable name="backpart" value="epilog"/>
- <cd:variable name="backmatter" value="epiloge"/>
- <cd:variable name="footnote" value="fussnote"/>
- <cd:variable name="endnote" value="endnote"/>
- <cd:variable name="system" value="systeme"/>
- </cd:variables>
+ <!-- definitions for interface commands for language de -->
- <cd:variables>
- <cd:variable name="subsection" value="unterabsatz"/>
- <cd:variable name="subsubsection" value="unterunterabsatz"/>
- <cd:variable name="subsubsubsection" value="unterunterunterabsatz"/>
- <cd:variable name="subsubsubsubsection" value="unterunterunterunterabsatz"/>
- <cd:variable name="subsubsubsubsubsection" value="unterunterunterunterunterabsatz"/>
- <cd:variable name="subsubject" value="unterthema"/>
- <cd:variable name="subsubsubject" value="unterunterthema"/>
- <cd:variable name="subsubsubsubject" value="unterunterunterthema"/>
- <cd:variable name="subsubsubsubsubject" value="unterunterunterunterthema"/>
- <cd:variable name="subsubsubsubsubsubject" value="unterunterunterunterunterthema"/>
- </cd:variables>
+ <cd:commands>
+ <cd:command name='CAPPED' value='KAP'/>
+ <cd:command name='Character' value='Buchstabe'/>
+ <cd:command name='Characters' value='Buchstaben'/>
+ <cd:command name='LABELTEXT' value='LABELTEXT'/>
+ <cd:command name='MONTH' value='MONAT'/>
+ <cd:command name='Numbers' value='Ziffern'/>
+ <cd:command name='Romannumerals' value='Roemischezahlen'/>
+ <cd:command name='SmallCapped' value='Kap'/>
+ <cd:command name='SmallCaps' value='Kaps'/>
+ <cd:command name='WEEKDAY' value='WOCHENTAG'/>
+ <cd:command name='WORD' value='WORT'/>
+ <cd:command name='WORDS' value='WOERTER'/>
+ <cd:command name='Word' value='Wort'/>
+ <cd:command name='Words' value='Woerter'/>
+ <cd:command name='about' value='ueber'/>
+ <cd:command name='adaptlayout' value='passelayoutan'/>
+ <cd:command name='arg' value='arg'/>
+ <cd:command name='at' value='bei'/>
+ <cd:command name='atleftmargin' value='atleftmargin'/>
+ <cd:command name='atpage' value='aufseite'/>
+ <cd:command name='atrightmargin' value='atrightmargin'/>
+ <cd:command name='background' value='hintergrund'/>
+ <cd:command name='backspace' value='rumpfweite'/>
+ <cd:command name='blackrule' value='rechteck'/>
+ <cd:command name='blackrules' value='rechtecke'/>
+ <cd:command name='blank' value='blanko'/>
+ <cd:command name='bookmark' value='bookmark'/>
+ <cd:command name='bottomdistance' value='abstandunten'/>
+ <cd:command name='bottomheight' value='hoeheunten'/>
+ <cd:command name='bottomspace' value='bottomspace'/>
+ <cd:command name='but' value='but'/>
+ <cd:command name='button' value='knopf'/>
+ <cd:command name='bypassblocks' value='bypassblocks'/>
+ <cd:command name='character' value='buchstabe'/>
+ <cd:command name='characters' value='buchstaben'/>
+ <cd:command name='chem' value='chem'/>
+ <cd:command name='clip' value='ausschnitt'/>
+ <cd:command name='clonefield' value='klonierefeld'/>
+ <cd:command name='color' value='farbe'/>
+ <cd:command name='colorbar' value='farbbalken'/>
+ <cd:command name='colorvalue' value='farbewert'/>
+ <cd:command name='column' value='spalte'/>
+ <cd:command name='comment' value='kommentar'/>
+ <cd:command name='comparecolorgroup' value='vergleichefarbengruppe'/>
+ <cd:command name='comparepalet' value='vergleichepalette'/>
+ <cd:command name='completepagenumber' value='completepagenumber'/>
+ <cd:command name='completeregister' value='completeregister'/>
+ <cd:command name='component' value='komponente'/>
+ <cd:command name='convertnumber' value='konvertierezahl'/>
+ <cd:command name='copyfield' value='kopierefeld'/>
+ <cd:command name='correctwhitespace' value='korrigierezwischenraum'/>
+ <cd:command name='coupledocument' value='verknuepfedokument'/>
+ <cd:command name='couplemarking' value='verknuepfebeschriftung'/>
+ <cd:command name='couplepage' value='doppelseite'/>
+ <cd:command name='couplepaper' value='doppelseitigespapier'/>
+ <cd:command name='coupleregister' value='verknuepfregister'/>
+ <cd:command name='crlf' value='crlf'/>
+ <cd:command name='currentdate' value='heutigesdatum'/>
+ <cd:command name='currentheadnumber' value='heutigeskopfnummer'/>
+ <cd:command name='cutspace' value='cutspace'/>
+ <cd:command name='date' value='datum'/>
+ <cd:command name='decouplemarking' value='entknuepfebeschriftung'/>
+ <cd:command name='decrementnumber' value='decrementnumber'/>
+ <cd:command name='define' value='definieren'/>
+ <cd:command name='defineaccent' value='definiereakzent'/>
+ <cd:command name='defineblank' value='definiereblanko'/>
+ <cd:command name='defineblock' value='definiereblock'/>
+ <cd:command name='definebodyfont' value='definierefliesstext'/>
+ <cd:command name='definebodyfontenvironment' value='definierefliesstextumgebung'/>
+ <cd:command name='definebuffer' value='definierepuffer'/>
+ <cd:command name='definecharacter' value='definierezeichen'/>
+ <cd:command name='definecolor' value='definierefarbe'/>
+ <cd:command name='definecolorgroup' value='definierefarbengruppe'/>
+ <cd:command name='definecolumnbreak' value='definecolumnbreak'/>
+ <cd:command name='definecolumnset' value='definecolumnset'/>
+ <cd:command name='definecombination' value='definecombination'/>
+ <cd:command name='definecombinedlist' value='definierezusammengestellteliste'/>
+ <cd:command name='definecommand' value='definierebefehl'/>
+ <cd:command name='defineconversion' value='definierekonversion'/>
+ <cd:command name='definedescription' value='definierebeschreibung'/>
+ <cd:command name='defineenumeration' value='definierenummerierung'/>
+ <cd:command name='definefield' value='definierefeld'/>
+ <cd:command name='definefieldstack' value='definierefeldstapel'/>
+ <cd:command name='definefiguresymbol' value='definiereabbsymbol'/>
+ <cd:command name='definefloat' value='definieregleitobjekt'/>
+ <cd:command name='definefont' value='definiereschrift'/>
+ <cd:command name='definefontstyle' value='definiereschriftstil'/>
+ <cd:command name='definefontsynonym' value='defineschriftsynonym'/>
+ <cd:command name='defineframed' value='definiereumrahmt'/>
+ <cd:command name='defineframedtext' value='definiereumrahmtertext'/>
+ <cd:command name='definehbox' value='definierehbox'/>
+ <cd:command name='definehead' value='definiereueberschrift'/>
+ <cd:command name='defineindenting' value='definiereeinzug'/>
+ <cd:command name='defineinmargin' value='defineinmargin'/>
+ <cd:command name='defineinteractionmenu' value='definiereinteraktionsmenue'/>
+ <cd:command name='defineitemgroup' value='defineitemgroup'/>
+ <cd:command name='definelabel' value='definierelabel'/>
+ <cd:command name='definelayer' value='definelayer'/>
+ <cd:command name='definelayout' value='definelayout'/>
+ <cd:command name='definelist' value='definiereliste'/>
+ <cd:command name='definelogo' value='definierelogo'/>
+ <cd:command name='definemainfield' value='definierehauptfeld'/>
+ <cd:command name='definemakeup' value='definiereumbruch'/>
+ <cd:command name='definemarking' value='definierebeschriftung'/>
+ <cd:command name='definemathalignment' value='definemathalignment'/>
+ <cd:command name='defineoutput' value='defineoutput'/>
+ <cd:command name='defineoverlay' value='definiereoverlay'/>
+ <cd:command name='definepagebreak' value='definepagebreak'/>
+ <cd:command name='definepalet' value='definierepalette'/>
+ <cd:command name='definepapersize' value='definierepapierformat'/>
+ <cd:command name='defineparagraphs' value='definiereabsaetze'/>
+ <cd:command name='defineplacement' value='defineplacement'/>
+ <cd:command name='defineprofile' value='definiereprofil'/>
+ <cd:command name='defineprogram' value='definiereprogramme'/>
+ <cd:command name='definerawfont' value='definerawfont'/>
+ <cd:command name='definereference' value='definierereferenz'/>
+ <cd:command name='definereferenceformat' value='definierereferenzformat'/>
+ <cd:command name='definereferencelist' value='definierereferenzliste'/>
+ <cd:command name='defineregister' value='definiereregister'/>
+ <cd:command name='definerule' value='definerule'/>
+ <cd:command name='definesection' value='definiereabschnitt'/>
+ <cd:command name='definesectionblock' value='definiereabschnittsblock'/>
+ <cd:command name='definesorting' value='definieresortieren'/>
+ <cd:command name='definestartstop' value='definierestartstop'/>
+ <cd:command name='definestyle' value='definierestil'/>
+ <cd:command name='definesubfield' value='definieresubfeld'/>
+ <cd:command name='definesymbol' value='definieresymbol'/>
+ <cd:command name='definesynonyms' value='definieresynonyme'/>
+ <cd:command name='definetabletemplate' value='definieretabellenvorlage'/>
+ <cd:command name='definetabulate' value='definieretabulator'/>
+ <cd:command name='definetext' value='definieretext'/>
+ <cd:command name='definetextposition' value='definetextposition'/>
+ <cd:command name='definetextvariable' value='definetextvariable'/>
+ <cd:command name='definetype' value='definetype'/>
+ <cd:command name='definetyping' value='definieretippen'/>
+ <cd:command name='defineversion' value='definiereversion'/>
+ <cd:command name='determineheadnumber' value='bestimmekopfnummer'/>
+ <cd:command name='determinelistcharacteristics' value='bestimmelistencharakeristika'/>
+ <cd:command name='determineregistercharacteristics' value='bestimmeregistercharakteristika'/>
+ <cd:command name='dimension' value='dimension'/>
+ <cd:command name='disableinteractionmenu' value='inaktiviereinteraktionsmenue'/>
+ <cd:command name='domicile' value='wohnort'/>
+ <cd:command name='donttest' value='keintest'/>
+ <cd:command name='edgedistance' value='randabstand'/>
+ <cd:command name='edgewidth' value='randbreite'/>
+ <cd:command name='emptylines' value='emptylines'/>
+ <cd:command name='environment' value='umgebung'/>
+ <cd:command name='externalfigure' value='externeabbildung'/>
+ <cd:command name='fact' value='geg'/>
+ <cd:command name='field' value='feld'/>
+ <cd:command name='fieldstack' value='feldstapel'/>
+ <cd:command name='fillinfield' value='ausfuellfeld'/>
+ <cd:command name='fillinline' value='gefuelltezeile'/>
+ <cd:command name='fillinrules' value='gefuelltesrechteck'/>
+ <cd:command name='fillintext' value='ausfuelltext'/>
+ <cd:command name='fitfield' value='passendfeld'/>
+ <cd:command name='fixedspace' value='festesspatium'/>
+ <cd:command name='fixedspaces' value='festesspatium'/>
+ <cd:command name='followprofile' value='folgeprofil'/>
+ <cd:command name='followprofileversion' value='folgeprofilversion'/>
+ <cd:command name='followversion' value='folgeversion'/>
+ <cd:command name='footerdistance' value='fusszeileabstand'/>
+ <cd:command name='footerheight' value='fusszeilenhoehe'/>
+ <cd:command name='footnote' value='fussnote'/>
+ <cd:command name='footnotetext' value='footnotetext'/>
+ <cd:command name='forceblocks' value='forceblocks'/>
+ <cd:command name='formulanumber' value='formelnummer'/>
+ <cd:command name='fraction' value='bruch'/>
+ <cd:command name='framed' value='umrahmt'/>
+ <cd:command name='from' value='von'/>
+ <cd:command name='getbuffer' value='holepuffer'/>
+ <cd:command name='getmarking' value='holebeschriftung'/>
+ <cd:command name='getnumber' value='getnumber'/>
+ <cd:command name='godown' value='nachunten'/>
+ <cd:command name='goto' value='zu'/>
+ <cd:command name='gotobox' value='zurbox'/>
+ <cd:command name='gotopage' value='zurseite'/>
+ <cd:command name='graycolor' value='graufarbe'/>
+ <cd:command name='greyvalue' value='grauwert'/>
+ <cd:command name='grid' value='gitter'/>
+ <cd:command name='hairline' value='haarlinie'/>
+ <cd:command name='head' value='kopf'/>
+ <cd:command name='headerdistance' value='kopfzeilenabstand'/>
+ <cd:command name='headerheight' value='kopfzeilenhoehe'/>
+ <cd:command name='headlevel' value='kopfniveau'/>
+ <cd:command name='headnumber' value='kopfnummer'/>
+ <cd:command name='headsym' value='headsym'/>
+ <cd:command name='headtext' value='ueberschrifttext'/>
+ <cd:command name='hideblocks' value='verbergebloecke'/>
+ <cd:command name='high' value='hoch'/>
+ <cd:command name='hl' value='hl'/>
+ <cd:command name='immediatebetweenlist' value='immediatebetweenlist'/>
+ <cd:command name='immediatetolist' value='immediatetolist'/>
+ <cd:command name='in' value='in'/>
+ <cd:command name='incrementnumber' value='nummererhoehen'/>
+ <cd:command name='indenting' value='einziehen'/>
+ <cd:command name='inframed' value='imumriss'/>
+ <cd:command name='infull' value='volleswort'/>
+ <cd:command name='ininner' value='ininner'/>
+ <cd:command name='inleft' value='imlinken'/>
+ <cd:command name='inleftedge' value='imlinkenrand'/>
+ <cd:command name='inleftmargin' value='inlinkermarginale'/>
+ <cd:command name='inline' value='inzeile'/>
+ <cd:command name='inmargin' value='inmarginalie'/>
+ <cd:command name='inmframed' value='immaumrise'/>
+ <cd:command name='inneredgedistance' value='inneredgedistance'/>
+ <cd:command name='inneredgewidth' value='inneredgewidth'/>
+ <cd:command name='innermargindistance' value='innermargindistance'/>
+ <cd:command name='innermarginwidth' value='innermarginwidth'/>
+ <cd:command name='inothermargin' value='inanderermarginale'/>
+ <cd:command name='inouter' value='inouter'/>
+ <cd:command name='inright' value='imrechten'/>
+ <cd:command name='inrightedge' value='imrechtenrand'/>
+ <cd:command name='inrightmargin' value='inrechtermarginale'/>
+ <cd:command name='installlanguage' value='installieresprache'/>
+ <cd:command name='interactionbar' value='interaktionsbalken'/>
+ <cd:command name='interactionbuttons' value='interaktionsknopfe'/>
+ <cd:command name='interactionmenu' value='interaktionsmenue'/>
+ <cd:command name='item' value='pos'/>
+ <cd:command name='items' value='posten'/>
+ <cd:command name='its' value='its'/>
+ <cd:command name='keepblocks' value='behaltebloecke'/>
+ <cd:command name='label' value='label'/>
+ <cd:command name='labels' value='labels'/>
+ <cd:command name='labeltext' value='labeltext'/>
+ <cd:command name='language' value='sprache'/>
+ <cd:command name='leftaligned' value='linksbuendig'/>
+ <cd:command name='leftedgedistance' value='abstandlinkerrand'/>
+ <cd:command name='leftedgewidth' value='breitelinkerrand'/>
+ <cd:command name='leftmargindistance' value='linkemarginalafstand'/>
+ <cd:command name='leftmarginwidth' value='linkemarginalbreite'/>
+ <cd:command name='leg' value='leg'/>
+ <cd:command name='linewidth' value='liniendicke'/>
+ <cd:command name='listheight' value='listenhoehe'/>
+ <cd:command name='listlength' value='listenlaenge'/>
+ <cd:command name='listsymbol' value='listsymbol'/>
+ <cd:command name='listwidth' value='listenbreite'/>
+ <cd:command name='logfields' value='registrierefelder'/>
+ <cd:command name='lohi' value='tiho'/>
+ <cd:command name='low' value='tief'/>
+ <cd:command name='macroname' value='name'/>
+ <cd:command name='mainlanguage' value='hauptsprache'/>
+ <cd:command name='makeupheight' value='satzhoehe'/>
+ <cd:command name='makeupwidth' value='satzbreite'/>
+ <cd:command name='mar' value='mar'/>
+ <cd:command name='margindistance' value='marginalafstand'/>
+ <cd:command name='marginrule' value='marginallinie'/>
+ <cd:command name='margintext' value='marginaltext'/>
+ <cd:command name='margintitle' value='marginaltitel'/>
+ <cd:command name='marginwidth' value='marginalbreite'/>
+ <cd:command name='marginword' value='marginalwort'/>
+ <cd:command name='marking' value='beschriftung'/>
+ <cd:command name='markversion' value='beschrifteversion'/>
+ <cd:command name='mathematics' value='mathematik'/>
+ <cd:command name='menubutton' value='menueknopf'/>
+ <cd:command name='mframed' value='maumrise'/>
+ <cd:command name='midaligned' value='zentriert'/>
+ <cd:command name='mirror' value='spiegeln'/>
+ <cd:command name='month' value='monat'/>
+ <cd:command name='moveformula' value='moveformula'/>
+ <cd:command name='moveongrid' value='amgitterneuausrichten'/>
+ <cd:command name='movesidefloat' value='movesidefloat'/>
+ <cd:command name='navigating' value='navigating'/>
+ <cd:command name='nodimension' value='keindimension'/>
+ <cd:command name='noheaderandfooterlines' value='keinekopfundfusszeilen'/>
+ <cd:command name='noindenting' value='nichteinziehen'/>
+ <cd:command name='nolist' value='keineliste'/>
+ <cd:command name='nomarking' value='keinebeschriftung'/>
+ <cd:command name='nomoreblocks' value='keinebloeckemehr'/>
+ <cd:command name='nomorefiles' value='keinedateienmehr'/>
+ <cd:command name='nop' value='nop'/>
+ <cd:command name='nospace' value='keinspatium'/>
+ <cd:command name='note' value='notiz'/>
+ <cd:command name='notopandbottomlines' value='keinzeilenobenundunten'/>
+ <cd:command name='notsmallcapped' value='nokap'/>
+ <cd:command name='nowhitespace' value='keinzwischenraum'/>
+ <cd:command name='numberofsubpages' value='numberofsubpages'/>
+ <cd:command name='numbers' value='ziffern'/>
+ <cd:command name='outeredgedistance' value='outeredgedistance'/>
+ <cd:command name='outeredgewidth' value='outeredgewidth'/>
+ <cd:command name='outermargindistance' value='outermargindistance'/>
+ <cd:command name='outermarginwidth' value='outermarginwidth'/>
+ <cd:command name='overbar' value='ueberstrichen'/>
+ <cd:command name='overbars' value='ueberstreichen'/>
+ <cd:command name='overstrike' value='durchgestrichen'/>
+ <cd:command name='overstrikes' value='durchstreichen'/>
+ <cd:command name='packed' value='kleinerdurchschuss'/>
+ <cd:command name='page' value='seite'/>
+ <cd:command name='pagedepth' value='pagedepth'/>
+ <cd:command name='pagenumber' value='seitenummer'/>
+ <cd:command name='pageoffset' value='pageoffset'/>
+ <cd:command name='pagereference' value='seitenreferenz'/>
+ <cd:command name='pagetype' value='seitentyp'/>
+ <cd:command name='paperheight' value='papierhoehe'/>
+ <cd:command name='paperwidth' value='papierbreite'/>
+ <cd:command name='periods' value='punkt'/>
+ <cd:command name='plaatsruwelijst' value='placerawlist'/>
+ <cd:command name='placebookmarks' value='platzierebookmarks'/>
+ <cd:command name='placecombinedlist' value='platzierezusammengestellteliste'/>
+ <cd:command name='placefloat' value='placefloat'/>
+ <cd:command name='placefootnotes' value='platzierefussnoten'/>
+ <cd:command name='placeformula' value='platziereformel'/>
+ <cd:command name='placeheadnumber' value='placeheadnumber'/>
+ <cd:command name='placeheadtext' value='placeheadtext'/>
+ <cd:command name='placelegend' value='platzierelegende'/>
+ <cd:command name='placelist' value='platziereliste'/>
+ <cd:command name='placelocalfootnotes' value='platzierelokalefussnoten'/>
+ <cd:command name='placelogos' value='platzierelogo'/>
+ <cd:command name='placeongrid' value='amgitterausrichten'/>
+ <cd:command name='placeontopofeachother' value='platziereuntereinander'/>
+ <cd:command name='placepagenumber' value='placepagenumber'/>
+ <cd:command name='placereferencelist' value='placereferencelist'/>
+ <cd:command name='placeregister' value='platziereregister'/>
+ <cd:command name='placerule' value='placerule'/>
+ <cd:command name='placesidebyside' value='platzierenebeneinander'/>
+ <cd:command name='placesubformula' value='platziereunterformel'/>
+ <cd:command name='placetextvariable' value='placetextvariable'/>
+ <cd:command name='position' value='position'/>
+ <cd:command name='positiontext' value='positiontext'/>
+ <cd:command name='printpaperheight' value='printpapierhoehe'/>
+ <cd:command name='printpaperwidth' value='printpapierbreite'/>
+ <cd:command name='processblocks' value='bearbeitebloecke'/>
+ <cd:command name='processpage' value='bearbeiteseite'/>
+ <cd:command name='product' value='produkt'/>
+ <cd:command name='program' value='programm'/>
+ <cd:command name='project' value='projekt'/>
+ <cd:command name='publication' value='publikation'/>
+ <cd:command name='quotation' value='zitat'/>
+ <cd:command name='quote' value='zitieren'/>
+ <cd:command name='ran' value='ran'/>
+ <cd:command name='redo' value='wiederholen'/>
+ <cd:command name='ref' value='ref'/>
+ <cd:command name='reference' value='referenz'/>
+ <cd:command name='referral' value='verweis'/>
+ <cd:command name='referraldate' value='verweisdatum'/>
+ <cd:command name='referring' value='referieren'/>
+ <cd:command name='remark' value='bemerkung'/>
+ <cd:command name='reset' value='ruecksetzten'/>
+ <cd:command name='resetmarking' value='ruecksetztenbeschriftung'/>
+ <cd:command name='resetnumber' value='resetnumber'/>
+ <cd:command name='resettext' value='resettextcontent'/>
+ <cd:command name='rightaligned' value='rechtsbuendig'/>
+ <cd:command name='rightedgedistance' value='abstandrechterrand'/>
+ <cd:command name='rightedgewidth' value='breiterechterrand'/>
+ <cd:command name='rightmargindistance' value='rechtemarginalafstand'/>
+ <cd:command name='rightmarginwidth' value='rechtemarginalbreite'/>
+ <cd:command name='romannumerals' value='roemischezahlen'/>
+ <cd:command name='rotate' value='drehen'/>
+ <cd:command name='scale' value='format'/>
+ <cd:command name='screen' value='bildschirm'/>
+ <cd:command name='selectblocks' value='waehlebloeckeaus'/>
+ <cd:command name='selectpaper' value='waehlepapieraus'/>
+ <cd:command name='selectversion' value='waehleversionaus'/>
+ <cd:command name='setnumber' value='setnumber'/>
+ <cd:command name='settextcontent' value='settext'/>
+ <cd:command name='settextvariable' value='settextvariable'/>
+ <cd:command name='setupalign' value='stelleausrichtungein'/>
+ <cd:command name='setupanswerarea' value='setupanswerarea'/>
+ <cd:command name='setuparranging' value='stelleanordnenein'/>
+ <cd:command name='setupbackground' value='stellehintergrundein'/>
+ <cd:command name='setupbackgrounds' value='stellehintergruendeein'/>
+ <cd:command name='setupblackrules' value='stellerechteckein'/>
+ <cd:command name='setupblank' value='stelleblankoein'/>
+ <cd:command name='setupblock' value='stelleblockein'/>
+ <cd:command name='setupbodyfont' value='stellefliesstextein'/>
+ <cd:command name='setupbodyfontenvironment' value='stellefliesstextumgebungein'/>
+ <cd:command name='setupbottom' value='stelleuntenein'/>
+ <cd:command name='setupbottomtexts' value='stelletextuntenein'/>
+ <cd:command name='setupbuffer' value='stellepufferein'/>
+ <cd:command name='setupbuttons' value='stelleknopfein'/>
+ <cd:command name='setupcapitals' value='stelleversalienein'/>
+ <cd:command name='setupcaption' value='stellebildunterschriftein'/>
+ <cd:command name='setupcaptions' value='stellebilderunterschriftein'/>
+ <cd:command name='setupclipping' value='stelleausschnittein'/>
+ <cd:command name='setupcolor' value='stellefarbeein'/>
+ <cd:command name='setupcolors' value='stellefarbenein'/>
+ <cd:command name='setupcolumns' value='stellespaltenein'/>
+ <cd:command name='setupcolumnset' value='setupcolumnset'/>
+ <cd:command name='setupcolumnsetlines' value='setupcolumnsetlines'/>
+ <cd:command name='setupcolumnsetstart' value='setupcolumnsetstart'/>
+ <cd:command name='setupcombinations' value='stellekombinationein'/>
+ <cd:command name='setupcombinedlist' value='stellezusammengestelltelisteein'/>
+ <cd:command name='setupcomment' value='stellekommentarein'/>
+ <cd:command name='setupdescriptions' value='definierebeschreibungen'/>
+ <cd:command name='setupenumerations' value='stellebeschreibungein'/>
+ <cd:command name='setupexternalfigures' value='stelleexterneabbildungenein'/>
+ <cd:command name='setupfield' value='stellefeldein'/>
+ <cd:command name='setupfields' value='stellefelderin'/>
+ <cd:command name='setupfillinlines' value='stellegefuelltezeileein'/>
+ <cd:command name='setupfillinrules' value='stellegefuelltesrechteckein'/>
+ <cd:command name='setupfloat' value='stellegleitobjektein'/>
+ <cd:command name='setupfloats' value='stellegleitobjekteein'/>
+ <cd:command name='setupfloatsplitting' value='stelleplatziegeteiltegleitobjekt'/>
+ <cd:command name='setupfooter' value='stellefusszeileein'/>
+ <cd:command name='setupfootertexts' value='stellefusszeilentextein'/>
+ <cd:command name='setupfootnotedefinition' value='stellefussnotendefinitionein'/>
+ <cd:command name='setupfootnotes' value='stellefussnotenein'/>
+ <cd:command name='setupforms' value='setupforms'/>
+ <cd:command name='setupformulas' value='stelleformelnein'/>
+ <cd:command name='setupframed' value='stelleumrahmtein'/>
+ <cd:command name='setupframedtexts' value='stelleumrahmtetexteein'/>
+ <cd:command name='setuphead' value='stelleueberschriftein'/>
+ <cd:command name='setupheader' value='stellekopfzeileein'/>
+ <cd:command name='setupheadertexts' value='stellekopfzeilentextein'/>
+ <cd:command name='setupheadnumber' value='stellekopfzahlein'/>
+ <cd:command name='setupheads' value='stelleueberschriftenein'/>
+ <cd:command name='setupheadtext' value='stelleueberschrifttextein'/>
+ <cd:command name='setuphyphenmark' value='stellebindestrichein'/>
+ <cd:command name='setupindentations' value='stelleeinzuegein'/>
+ <cd:command name='setupindenting' value='stelleeinziehenein'/>
+ <cd:command name='setupinmargin' value='stelleinmarginalieein'/>
+ <cd:command name='setupinteraction' value='stelleinteraktionein'/>
+ <cd:command name='setupinteractionbar' value='stelleinteraktionsbalkenein'/>
+ <cd:command name='setupinteractionmenu' value='stelleinteraktionsmenueein'/>
+ <cd:command name='setupinteractionscreen' value='stelleinteraktionsbildschirmein'/>
+ <cd:command name='setupinterlinespace' value='stellezeilenabstandein'/>
+ <cd:command name='setupitemgroup' value='setupitemgroup'/>
+ <cd:command name='setupitemgroups' value='stelleaufzaehlungenein'/>
+ <cd:command name='setupitems' value='stellepostenein'/>
+ <cd:command name='setuplabeltext' value='stellelabeltextein'/>
+ <cd:command name='setuplanguage' value='stellespracheein'/>
+ <cd:command name='setuplayout' value='stellelayoutein'/>
+ <cd:command name='setuplegend' value='stellelegendeein'/>
+ <cd:command name='setuplinenumbering' value='stellezeilennumerierungein'/>
+ <cd:command name='setuplines' value='stellezeilenein'/>
+ <cd:command name='setuplinewidth' value='stellelinienbreiteein'/>
+ <cd:command name='setuplist' value='stellelisteein'/>
+ <cd:command name='setupmakeup' value='stelleumbruchein'/>
+ <cd:command name='setupmarginblocks' value='stellemarginalblockein'/>
+ <cd:command name='setupmarginrules' value='stellemarginallinieein'/>
+ <cd:command name='setupmarking' value='stellebeschriftungein'/>
+ <cd:command name='setupmathalignment' value='setupmathalignment'/>
+ <cd:command name='setupnarrower' value='stelleengerein'/>
+ <cd:command name='setupnumber' value='setupnumber'/>
+ <cd:command name='setupnumbering' value='stellenummerierungein'/>
+ <cd:command name='setupoppositeplacing' value='stellegegenueberplatzierenein'/>
+ <cd:command name='setupoutput' value='stelleausgabeein'/>
+ <cd:command name='setuppagecomment' value='stelleseitenkommentarein'/>
+ <cd:command name='setuppagenumber' value='stelleseitennummerein'/>
+ <cd:command name='setuppagenumbering' value='stelleseitennummeriernungein'/>
+ <cd:command name='setuppagetransitions' value='stelleseitenuebergangein'/>
+ <cd:command name='setuppalet' value='stellepaletteein'/>
+ <cd:command name='setuppaper' value='setuppaper'/>
+ <cd:command name='setuppapersize' value='stellepapierformatein'/>
+ <cd:command name='setupparagraphnumbering' value='stelleabsatznummerierungein'/>
+ <cd:command name='setupparagraphs' value='stelleabsaetzeein'/>
+ <cd:command name='setupplacement' value='setupplacement'/>
+ <cd:command name='setuppositioning' value='stellepositionierenein'/>
+ <cd:command name='setupprofiles' value='stelleprofilein'/>
+ <cd:command name='setupprograms' value='stelleprogrammein'/>
+ <cd:command name='setuppublications' value='stellepublikationein'/>
+ <cd:command name='setupquote' value='stellezitierenein'/>
+ <cd:command name='setupreferencelist' value='stellereferenzlisteein'/>
+ <cd:command name='setupreferencing' value='stellereferenzierenein'/>
+ <cd:command name='setupregister' value='stelleregisterein'/>
+ <cd:command name='setuprotate' value='stelledrehenein'/>
+ <cd:command name='setuprule' value='setuprule'/>
+ <cd:command name='setups' value='einstellungen'/>
+ <cd:command name='setupscreens' value='stellerasterein'/>
+ <cd:command name='setupsection' value='stelleabschnittein'/>
+ <cd:command name='setupsectionblock' value='stelleabschnittsblockein'/>
+ <cd:command name='setupsorting' value='stellesortierenein'/>
+ <cd:command name='setupspacing' value='stellespatiumein'/>
+ <cd:command name='setupstartstop' value='setupstartstop'/>
+ <cd:command name='setupstrut' value='setupstrut'/>
+ <cd:command name='setupsubpagenumber' value='stelleunterseitennummerein'/>
+ <cd:command name='setupsymbolset' value='stellesymbolsetein'/>
+ <cd:command name='setupsynchronization' value='stellesynchronisationein'/>
+ <cd:command name='setupsynchronizationbar' value='stellesynchronisationsbalkenein'/>
+ <cd:command name='setupsynonyms' value='stellesynonymein'/>
+ <cd:command name='setupsystem' value='stellesystemein'/>
+ <cd:command name='setuptab' value='stelletabein'/>
+ <cd:command name='setuptables' value='stelletabellenein'/>
+ <cd:command name='setuptabulate' value='stelletabulatorein'/>
+ <cd:command name='setuptext' value='stelletextein'/>
+ <cd:command name='setuptextposition' value='setuptextposition'/>
+ <cd:command name='setuptextrules' value='stelletextumrissein'/>
+ <cd:command name='setuptexttexts' value='stelletexttexteein'/>
+ <cd:command name='setuptextvariable' value='setuptextvariable'/>
+ <cd:command name='setupthinrules' value='stelleduennerumrissein'/>
+ <cd:command name='setuptolerance' value='stelletoleranzein'/>
+ <cd:command name='setuptop' value='stellenobenein'/>
+ <cd:command name='setuptoptexts' value='stelletextobenein'/>
+ <cd:command name='setuptype' value='stelletipein'/>
+ <cd:command name='setuptyping' value='stelletippenein'/>
+ <cd:command name='setupunderbar' value='stelleunterstreichenein'/>
+ <cd:command name='setupurl' value='stelleurlein'/>
+ <cd:command name='setupversions' value='stelleversionein'/>
+ <cd:command name='setupwhitespace' value='stellezwischenraumein'/>
+ <cd:command name='showbodyfont' value='zeigefliesstext'/>
+ <cd:command name='showbodyfontenvironment' value='zeigefliesstextumgebung'/>
+ <cd:command name='showcolor' value='zeigefarbe'/>
+ <cd:command name='showcolorgroup' value='zeigefarbengruppe'/>
+ <cd:command name='showexternalfigures' value='zeigeexterneabbildungen'/>
+ <cd:command name='showfields' value='zeigefelder'/>
+ <cd:command name='showframe' value='zeigerahmen'/>
+ <cd:command name='showgrid' value='zeigegitter'/>
+ <cd:command name='showlayout' value='zeigelayout'/>
+ <cd:command name='showmakeup' value='zeigeumbruch'/>
+ <cd:command name='showpalet' value='zeigepalette'/>
+ <cd:command name='showprint' value='zeigedruck'/>
+ <cd:command name='showsetups' value='zeigeeinstellungen'/>
+ <cd:command name='showstruts' value='zeigestruts'/>
+ <cd:command name='showsymbolset' value='showsymbolset'/>
+ <cd:command name='smallcapped' value='kap'/>
+ <cd:command name='someline' value='einezeile'/>
+ <cd:command name='somewhere' value='irgendwo'/>
+ <cd:command name='space' value='spatium'/>
+ <cd:command name='splitfloat' value='teilegleitobjekt'/>
+ <cd:command name='startalignment' value='startausrichtung'/>
+ <cd:command name='startbackground' value='starthintergrund'/>
+ <cd:command name='startcoding' value='startkodierung'/>
+ <cd:command name='startcolor' value='startfarbe'/>
+ <cd:command name='startcolumnmakeup' value='startcolumnmakeup'/>
+ <cd:command name='startcolumns' value='startspalten'/>
+ <cd:command name='startcolumnset' value='startcolumnset'/>
+ <cd:command name='startcombination' value='startkombination'/>
+ <cd:command name='startcomponent' value='startkomponente'/>
+ <cd:command name='startdocument' value='startdokument'/>
+ <cd:command name='startenvironment' value='startumgebung'/>
+ <cd:command name='startfigure' value='startabbildung'/>
+ <cd:command name='startglobal' value='startglobal'/>
+ <cd:command name='startline' value='startzeile'/>
+ <cd:command name='startlinecorrection' value='startzeilenkorrektur'/>
+ <cd:command name='startlinenumbering' value='startzeilennumerierung'/>
+ <cd:command name='startlines' value='startzeilen'/>
+ <cd:command name='startlocal' value='startlokal'/>
+ <cd:command name='startlocalfootnotes' value='startlokalefussnoten'/>
+ <cd:command name='startmakeup' value='startumbruch'/>
+ <cd:command name='startmarginblock' value='startmarginalblock'/>
+ <cd:command name='startmarginrule' value='startmarginallinie'/>
+ <cd:command name='startnarrower' value='startenger'/>
+ <cd:command name='startopposite' value='startgegenueber'/>
+ <cd:command name='startoverlay' value='startoverlay'/>
+ <cd:command name='startoverzicht' value='startueberblick'/>
+ <cd:command name='startpacked' value='startkleinerdurchschuss'/>
+ <cd:command name='startpositioning' value='startpositionieren'/>
+ <cd:command name='startproduct' value='startprodukt'/>
+ <cd:command name='startprofile' value='startprofil'/>
+ <cd:command name='startproject' value='startprojekt'/>
+ <cd:command name='startquotation' value='startzitat'/>
+ <cd:command name='startraster' value='startraster'/>
+ <cd:command name='startsymbolset' value='startsymbolset'/>
+ <cd:command name='startsynchronization' value='startsynchronisation'/>
+ <cd:command name='starttable' value='starttabelle'/>
+ <cd:command name='starttables' value='starttabellen'/>
+ <cd:command name='starttext' value='starttext'/>
+ <cd:command name='starttextrule' value='starttextlinie'/>
+ <cd:command name='startunpacked' value='startgrosserdurchschuss'/>
+ <cd:command name='startversion' value='startversion'/>
+ <cd:command name='stopalignment' value='stopausrichtung'/>
+ <cd:command name='stopbackground' value='stophintergrund'/>
+ <cd:command name='stopcoding' value='stopkodierung'/>
+ <cd:command name='stopcolor' value='stopfarbe'/>
+ <cd:command name='stopcolumnmakeup' value='stopcolumnmakeup'/>
+ <cd:command name='stopcolumns' value='stopspalten'/>
+ <cd:command name='stopcolumnset' value='stopcolumnset'/>
+ <cd:command name='stopcombination' value='stopkombination'/>
+ <cd:command name='stopcomponent' value='stopkomponente'/>
+ <cd:command name='stopdocument' value='stopdokument'/>
+ <cd:command name='stopenvironment' value='stopumgebung'/>
+ <cd:command name='stopglobal' value='stopglobal'/>
+ <cd:command name='stopline' value='stopzeile'/>
+ <cd:command name='stoplinecorrection' value='stopzeilenkorrektur'/>
+ <cd:command name='stoplinenumbering' value='stopzeilennumerierung'/>
+ <cd:command name='stoplines' value='stopzeilen'/>
+ <cd:command name='stoplocal' value='stoplokal'/>
+ <cd:command name='stoplocalfootnotes' value='stoplokalefussnoten'/>
+ <cd:command name='stopmakeup' value='stopumbruch'/>
+ <cd:command name='stopmarginblock' value='stopmarginalblock'/>
+ <cd:command name='stopmarginrule' value='stopmarginallinie'/>
+ <cd:command name='stopnarrower' value='stopenger'/>
+ <cd:command name='stopopposite' value='stopgegenueber'/>
+ <cd:command name='stopoverlay' value='stopoverlay'/>
+ <cd:command name='stopoverzicht' value='stopueberblick'/>
+ <cd:command name='stoppacked' value='stopkleinerdurchschuss'/>
+ <cd:command name='stoppositioning' value='stoppositionieren'/>
+ <cd:command name='stopproduct' value='stopprodukt'/>
+ <cd:command name='stopprofile' value='stopprofil'/>
+ <cd:command name='stopproject' value='stopprojekt'/>
+ <cd:command name='stopquotation' value='stopzitat'/>
+ <cd:command name='stopraster' value='stopraster'/>
+ <cd:command name='stopsynchronization' value='stopsynchronisation'/>
+ <cd:command name='stoptable' value='stoptabelle'/>
+ <cd:command name='stoptables' value='stoptabellen'/>
+ <cd:command name='stoptext' value='stoptext'/>
+ <cd:command name='stoptextrule' value='stoptextlinie'/>
+ <cd:command name='stopunpacked' value='stopgrosserdurchschuss'/>
+ <cd:command name='stopversion' value='stopversion'/>
+ <cd:command name='stretched' value='gestreckt'/>
+ <cd:command name='subformulanumber' value='unterformelnummer'/>
+ <cd:command name='subpagenumber' value='subpagenumber'/>
+ <cd:command name='switchtobodyfont' value='wechselezumfliesstext'/>
+ <cd:command name='switchtorawfont' value='switchtorawfont'/>
+ <cd:command name='sym' value='sym'/>
+ <cd:command name='symbol' value='symbol'/>
+ <cd:command name='synchronizationbar' value='synchronisationsbalken'/>
+ <cd:command name='synchronize' value='synchronisieren'/>
+ <cd:command name='tab' value='tab'/>
+ <cd:command name='testcolumn' value='testcolumn'/>
+ <cd:command name='testpage' value='testpage'/>
+ <cd:command name='tex' value='tex'/>
+ <cd:command name='textheight' value='texthoehe'/>
+ <cd:command name='textreference' value='textreferenz'/>
+ <cd:command name='textrule' value='textlinie'/>
+ <cd:command name='textvariable' value='textvariable'/>
+ <cd:command name='textwidth' value='textbreite'/>
+ <cd:command name='thinrule' value='duennelinie'/>
+ <cd:command name='thinrules' value='duennerumriss'/>
+ <cd:command name='tooltip' value='tooltip'/>
+ <cd:command name='topdistance' value='abstandoben'/>
+ <cd:command name='topheight' value='hoeheoben'/>
+ <cd:command name='topspace' value='kopfweite'/>
+ <cd:command name='totalnumberofpages' value='gesamtseitenanzahl'/>
+ <cd:command name='translate' value='uebersetzten'/>
+ <cd:command name='txt' value='txt'/>
+ <cd:command name='typ' value='tip'/>
+ <cd:command name='type' value='tippen'/>
+ <cd:command name='typebuffer' value='tippepuffer'/>
+ <cd:command name='typefile' value='tippedatei'/>
+ <cd:command name='underbar' value='unterstrichen'/>
+ <cd:command name='underbars' value='unterstreichen'/>
+ <cd:command name='unitmeaning' value='bedeutung'/>
+ <cd:command name='unknown' value='unbekant'/>
+ <cd:command name='useJSscripts' value='verwendeJSscript'/>
+ <cd:command name='useURL' value='verwendeURL'/>
+ <cd:command name='useXMLfilter' value='useXMLfilter'/>
+ <cd:command name='useblocks' value='verwendebloecke'/>
+ <cd:command name='usecommands' value='verwendebefehl'/>
+ <cd:command name='useencoding' value='benutzekodierung'/>
+ <cd:command name='useexternaldocument' value='verwendeexteresdokument'/>
+ <cd:command name='useexternalfigure' value='verwendeexterneabbildung'/>
+ <cd:command name='useexternalfile' value='verwendeexternedatei'/>
+ <cd:command name='useexternalfiles' value='verwendeexternedateien'/>
+ <cd:command name='useexternalsoundtrack' value='verwendeexternestonstueck'/>
+ <cd:command name='usemodule' value='verwendemodul'/>
+ <cd:command name='usemodules' value='verwendemodule'/>
+ <cd:command name='usepath' value='benutzeverzeichnis'/>
+ <cd:command name='usereferences' value='verwendereferenzen'/>
+ <cd:command name='usespecials' value='benutzespezielles'/>
+ <cd:command name='usesymbols' value='verwendesymbole'/>
+ <cd:command name='usetypescript' value='usetypescript'/>
+ <cd:command name='usetypescriptfile' value='usetypescriptfile'/>
+ <cd:command name='useurl' value='verwendeurl'/>
+ <cd:command name='version' value='version'/>
+ <cd:command name='vl' value='vl'/>
+ <cd:command name='weekday' value='wochentag'/>
+ <cd:command name='whitespace' value='zwischenraum'/>
+ <cd:command name='wordright' value='wortrechts'/>
+ <cd:command name='writebetweenlist' value='schreibezwischenliste'/>
+ <cd:command name='writetolist' value='schreibezurliste'/>
+ <cd:command name='writetoreferencelist' value='schreibezurreferenzliste'/>
+ <cd:command name='writetoregister' value='schreibezumregister'/>
+ </cd:command>
- <cd:variables>
- <cd:variable name="flushleft" value="flushleft"/>
- <cd:variable name="flushright" value="flushright"/>
- <cd:variable name="center" value="center"/>
- <cd:variable name="flushouter" value="flushouter"/>
- <cd:variable name="flushinner" value="flushinner"/>
- </cd:variables>
-
- <cd:variables>
- <cd:variable name="typing" value="tippen"/>
- <cd:variable name="file" value="datei"/>
- </cd:variables>
-
- <cd:variables>
- <cd:variable name="formula" value="formel"/>
- <cd:variable name="subformula" value="subformel"/>
- <cd:variable name="formulae" value="formeln"/>
- <cd:variable name="figure" value="abbildung"/>
- <cd:variable name="figures" value="abbildungen"/>
- <cd:variable name="table" value="tabelle"/>
- <cd:variable name="tables" value="tabellen"/>
- <cd:variable name="graphic" value="grafik"/>
- <cd:variable name="graphics" value="grafiken"/>
- <cd:variable name="intermezzo" value="intermezzo"/>
- <cd:variable name="intermezzi" value="intermezzi"/>
- <cd:variable name="index" value="index"/>
- <cd:variable name="indices" value="indizies"/>
- <cd:variable name="abbreviation" value="abkuerzung"/>
- <cd:variable name="abbreviations" value="abkuerzungen"/>
- <cd:variable name="logo" value="logo"/>
- <cd:variable name="logos" value="logos"/>
- <cd:variable name="unit" value="einheit"/>
- <cd:variable name="units" value="einheiten"/>
- <cd:variable name="line" value="zeile"/>
- <cd:variable name="lines" value="zeilen"/>
- <cd:variable name="framedtext" value="umrahmtertext"/>
- <cd:variable name="quotation" value="zitat"/>
- <cd:variable name="blockquote" value="blockquote"/>
- <cd:variable name="quote" value="zitieren"/>
- <cd:variable name="speech" value="speech"/>
- <cd:variable name="itemize" value="aufzaehlung"/>
- <cd:variable name="mathalignment" value="mathalignment"/>
- <cd:variable name="mathcases" value="mathcases"/>
- <cd:variable name="mathmatrix" value="mathmatrix"/>
- </cd:variables>
-
- <cd:constants>
- <cd:constant name="sorttype" value="sorttype"/>
- <cd:constant name="compress" value="compress"/>
- <cd:constant name="autohang" value="autohang"/>
- <cd:constant name="suffix" value="suffix"/>
- <cd:constant name="leftquotation" value="linkerzitat"/>
- <cd:constant name="rightquotation" value="rechterzitat"/>
- <cd:constant name="leftquote" value="linkerzitieren"/>
- <cd:constant name="rightquote" value="rechterzitieren"/>
- <cd:constant name="compoundhyphen" value="compoundhyphen"/>
- <cd:constant name="leftcompoundhyphen" value="leftcompoundhyphen"/>
- <cd:constant name="rightcompoundhyphen" value="rightcompoundhyphen"/>
- <cd:constant name="midsentence" value="midsentence"/>
- <cd:constant name="leftsentence" value="linkersatz"/>
- <cd:constant name="rightsentence" value="rechtersatz"/>
- <cd:constant name="leftsubsentence" value="linkersubsatz"/>
- <cd:constant name="rightsubsentence" value="rechtersubsatz"/>
- <cd:constant name="leftspeech" value="leftspeech"/>
- <cd:constant name="middlespeech" value="middlespeech"/>
- <cd:constant name="rightspeech" value="rightspeech"/>
- <cd:constant name="limittext" value="limittext"/>
- <cd:constant name="date" value="datum"/>
- <cd:constant name="spacebefore" value="vorspatium"/>
- <cd:constant name="spaceinbetween" value="spaceinbetween"/>
- <cd:constant name="spaceafter" value="nachspatium"/>
- <cd:constant name="sidespacebefore" value="nebenvorspatium"/>
- <cd:constant name="sidespaceafter" value="nebennachspatium"/>
- <cd:constant name="to" value="zu"/>
- <cd:constant name="indicator" value="indikator"/>
- <cd:constant name="background" value="hintergrund"/>
- <cd:constant name="backgrounddepth" value="hintergrundtiefe"/>
- <cd:constant name="backgroundcorner" value="hintergrundwinkel"/>
- <cd:constant name="splitcolor" value="splitcolor"/>
- <cd:constant name="backgroundcolor" value="hintergrundfarbe"/>
- <cd:constant name="foregroundcolor" value="foregroundcolor"/>
- <cd:constant name="foregroundstyle" value="foregroundstyle"/>
- <cd:constant name="clipoffset" value="clipoffset"/>
- <cd:constant name="backgroundoffset" value="hintergrundoffset"/>
- <cd:constant name="backgroundscreen" value="hintergrundraster"/>
- <cd:constant name="backgroundradius" value="hintergrundradius"/>
- <cd:constant name="address" value="adresse"/>
- <cd:constant name="stopper" value="abschnitttrenner"/>
- <cd:constant name="distance" value="abstand"/>
- <cd:constant name="paragraph" value="absatz"/>
- <cd:constant name="axis" value="achsen"/>
- <cd:constant name="author" value="autor"/>
- <cd:constant name="auto" value="auto"/>
- <cd:constant name="autofile" value="autofile"/>
- <cd:constant name="balance" value="ausgleichen"/>
- <cd:constant name="bookmark" value="bookmark"/>
- <cd:constant name="wfactor" value="bfaktor"/>
- <cd:constant name="inner" value="innen"/>
- <cd:constant name="blank" value="blanko"/>
- <cd:constant name="obstruction" value="gesperrt"/>
- <cd:constant name="blockway" value="blockauf"/>
- <cd:constant name="bottomspace" value="bottomspace"/>
- <cd:constant name="top" value="oben"/>
- <cd:constant name="topdistance" value="obenabstand"/>
- <cd:constant name="topframe" value="obenrahmen"/>
- <cd:constant name="topoffset" value="obenoffset"/>
- <cd:constant name="topstate" value="statusoben"/>
- <cd:constant name="width" value="breite"/>
- <cd:constant name="autowidth" value="autobreite"/>
- <cd:constant name="maxwidth" value="maxbreite"/>
- <cd:constant name="minwidth" value="minbreite"/>
- <cd:constant name="source" value="quelle"/>
- <cd:constant name="command" value="befehl"/>
- <cd:constant name="commands" value="befehle"/>
- <cd:constant name="component" value="component"/>
- <cd:constant name="contrastcolor" value="kontrastfarbe"/>
- <cd:constant name="conversion" value="konversion"/>
- <cd:constant name="headconversion" value="headconversion"/>
- <cd:constant name="headlabel" value="headlabel"/>
- <cd:constant name="criterium" value="kriterium"/>
- <cd:constant name="date" value="datum"/>
- <cd:constant name="default" value="default"/>
- <cd:constant name="depth" value="tiefe"/>
- <cd:constant name="depthcorrection" value="tiefekorrektur"/>
- <cd:constant name="continue" value="fortsetzen"/>
- <cd:constant name="doublesided" value="doppelseitig"/>
- <cd:constant name="dummy" value="dummy"/>
- <cd:constant name="unit" value="einheit"/>
- <cd:constant name="ownnumber" value="eigenenummer"/>
- <cd:constant name="evenmargin" value="geraderand"/>
- <cd:constant name="expansion" value="expansion"/>
- <cd:constant name="keyexpansion" value="keyexpansion"/>
- <cd:constant name="factor" value="faktor"/>
- <cd:constant name="convertfile" value="konvertieredatei"/>
- <cd:constant name="file" value="datei"/>
- <cd:constant name="inputfile" value="inputfile"/>
- <cd:constant name="size" value="groesse"/>
- <cd:constant name="autofocus" value="autofocus"/>
- <cd:constant name="focus" value="focus"/>
- <cd:constant name="directory" value="verzeichnis"/>
- <cd:constant name="cache" value="cache"/>
- <cd:constant name="grid" value="gritter"/>
- <cd:constant name="big" value="gross"/>
- <cd:constant name="get" value="hole"/>
- <cd:constant name="hang" value="haengend"/>
- <cd:constant name="repeat" value="wiederholen"/>
- <cd:constant name="hfactor" value="hfaktor"/>
- <cd:constant name="corner" value="winkel"/>
- <cd:constant name="hoffset" value="hoffset"/>
- <cd:constant name="frames" value="umrahmen"/>
- <cd:constant name="header" value="kopfzeile"/>
- <cd:constant name="headerdistance" value="kopfzeilenabstand"/>
- <cd:constant name="headerstate" value="kopfzeilenstatus"/>
- <cd:constant name="height" value="hoehe"/>
- <cd:constant name="maxheight" value="maxhoehe"/>
- <cd:constant name="minheight" value="minhoehe"/>
- <cd:constant name="mindepth" value="mindepth"/>
- <cd:constant name="current" value="aktuell"/>
- <cd:constant name="in" value="in"/>
- <cd:constant name="indenting" value="einziehen"/>
- <cd:constant name="interaction" value="interaktion"/>
- <cd:constant name="interlinespace" value="zeilenabstande"/>
- <cd:constant name="items" value="posten"/>
- <cd:constant name="fallback" value="fallback"/>
- <cd:constant name="frame" value="rahmen"/>
- <cd:constant name="framedepth" value="rahmentiefe"/>
- <cd:constant name="framecorner" value="rahmenwinkel"/>
- <cd:constant name="framecolor" value="rahmenfarbe"/>
- <cd:constant name="frameoffset" value="rahmenoffset"/>
- <cd:constant name="frameradius" value="rahmenradius"/>
- <cd:constant name="marginedge" value="marginalkante"/>
- <cd:constant name="marginedgetext" value="marginalkantetext"/>
- <cd:constant name="aligncharacter" value="aligncharacter"/>
- <cd:constant name="alignmentcharacter" value="alignmentcharacter"/>
- <cd:constant name="small" value="klein"/>
- <cd:constant name="color" value="farbe"/>
- <cd:constant name="column" value="spalte"/>
- <cd:constant name="columns" value="spalten"/>
- <cd:constant name="columndistance" value="spaltenabstand"/>
- <cd:constant name="headcommand" value="headcommand"/>
- <cd:constant name="headcolor" value="kopffarbe"/>
- <cd:constant name="headstyle" value="kopfstil"/>
- <cd:constant name="afterhead" value="nachkopf"/>
- <cd:constant name="veroffset" value="kopfoffset"/>
- <cd:constant name="coupling" value="verknuepfung"/>
- <cd:constant name="couplingway" value="verkopplungsart"/>
- <cd:constant name="beforehead" value="vorkopf"/>
- <cd:constant name="topspace" value="kopfspatium"/>
- <cd:constant name="bodyfont" value="fliesstext"/>
- <cd:constant name="label" value="label"/>
- <cd:constant name="empty" value="leer"/>
- <cd:constant name="style" value="stil"/>
- <cd:constant name="rule" value="linie"/>
- <cd:constant name="rulethickness" value="liniendicke"/>
- <cd:constant name="rulecolor" value="linienfarbe"/>
- <cd:constant name="list" value="liste"/>
- <cd:constant name="leftwidth" value="linkerbreite"/>
- <cd:constant name="leftframe" value="linkerrahmen"/>
- <cd:constant name="leftcolor" value="linkerfarbe"/>
- <cd:constant name="leftstyle" value="linkerstil"/>
- <cd:constant name="leftmargin" value="linkerrand"/>
- <cd:constant name="innermargin" value="innermargin"/>
- <cd:constant name="outermargin" value="outermargin"/>
- <cd:constant name="leftmargindistance" value="linkerrandabstand"/>
- <cd:constant name="leftoffset" value="linkeroffset"/>
- <cd:constant name="leftedge" value="linkekante"/>
- <cd:constant name="leftedgedistance" value="linkerkantenabstand"/>
- <cd:constant name="lefttext" value="linkertext"/>
- <cd:constant name="left" value="links"/>
- <cd:constant name="nleft" value="nlinks"/>
- <cd:constant name="logo" value="logo"/>
- <cd:constant name="logos" value="logos"/>
- <cd:constant name="local" value="lokal"/>
- <cd:constant name="margin" value="marginalie"/>
- <cd:constant name="margindistance" value="marginalabstand"/>
- <cd:constant name="margintext" value="marginaltext"/>
- <cd:constant name="marking" value="beschriftung"/>
- <cd:constant name="marcolor" value="beschrfarbe"/>
- <cd:constant name="marstyle" value="beschrstil"/>
- <cd:constant name="menu" value="menue"/>
- <cd:constant name="splitmethod" value="splitmethod"/>
- <cd:constant name="textmethod" value="textmethod"/>
- <cd:constant name="sidemethod" value="sidemethod"/>
- <cd:constant name="method" value="methode"/>
- <cd:constant name="middle" value="mittig"/>
- <cd:constant name="middletext" value="mittigertext"/>
- <cd:constant name="max" value="max"/>
- <cd:constant name="min" value="min"/>
- <cd:constant name="sample" value="muster"/>
- <cd:constant name="after" value="nach"/>
- <cd:constant name="name" value="name"/>
- <cd:constant name="commandafter" value="zumbefehl"/>
- <cd:constant name="ntop" value="noben"/>
- <cd:constant name="level" value="niveau"/>
- <cd:constant name="levels" value="niveaus"/>
- <cd:constant name="nbottom" value="nunten"/>
- <cd:constant name="norm" value="norm"/>
- <cd:constant name="nlines" value="zzeile"/>
- <cd:constant name="number" value="nummer"/>
- <cd:constant name="numbercommand" value="nummerbefehl"/>
- <cd:constant name="numbering" value="nummerierung"/>
- <cd:constant name="numbercolor" value="nummernfarbe"/>
- <cd:constant name="numberstyle" value="nummernstil"/>
- <cd:constant name="numberseparator" value="nummernseperator"/>
- <cd:constant name="object" value="objekt"/>
- <cd:constant name="offset" value="offset"/>
- <cd:constant name="bottom" value="unten"/>
- <cd:constant name="bottomdistance" value="abstandunten"/>
- <cd:constant name="bottomframe" value="untenrahmen"/>
- <cd:constant name="bottomoffset" value="untenoffset"/>
- <cd:constant name="bottomstate" value="untenstatus"/>
- <cd:constant name="oddmargin" value="ungeraderand"/>
- <cd:constant name="at" value="bei"/>
- <cd:constant name="option" value="option"/>
- <cd:constant name="page" value="seite"/>
- <cd:constant name="pagecommand" value="seitenbefehl"/>
- <cd:constant name="pagecolor" value="seitenfarbe"/>
- <cd:constant name="pagestyle" value="seitenstil"/>
- <cd:constant name="pagenumber" value="seitennummer"/>
- <cd:constant name="headnumber" value="kopfnummer"/>
- <cd:constant name="pageboundaries" value="seitenbegrenzung"/>
- <cd:constant name="pagestate" value="pagestate"/>
- <cd:constant name="palet" value="palette"/>
- <cd:constant name="paper" value="papier"/>
- <cd:constant name="location" value="platz"/>
- <cd:constant name="placestopper" value="setzetrenner"/>
- <cd:constant name="place" value="platziere"/>
- <cd:constant name="placehead" value="setzekopf"/>
- <cd:constant name="position" value="position"/>
- <cd:constant name="prefix" value="prefix"/>
- <cd:constant name="preset" value="voreinstellung"/>
- <cd:constant name="preview" value="vorschau"/>
- <cd:constant name="process" value="process"/>
- <cd:constant name="spot" value="spot"/>
- <cd:constant name="dot" value="punkt"/>
- <cd:constant name="arrow" value="pfeil"/>
- <cd:constant name="edge" value="kante"/>
- <cd:constant name="edgedistance" value="kantenabstand"/>
- <cd:constant name="screen" value="raster"/>
- <cd:constant name="rightwidth" value="rechterbreite"/>
- <cd:constant name="rightframe" value="rechterrahmen"/>
- <cd:constant name="rightcolor" value="rechterfarbe"/>
- <cd:constant name="rightstyle" value="rechterstil"/>
- <cd:constant name="rightmargin" value="rechterrand"/>
- <cd:constant name="rightmargindistance" value="rechterrandabstand"/>
- <cd:constant name="rightoffset" value="rechterabstand"/>
- <cd:constant name="rightedge" value="rechtekante"/>
- <cd:constant name="rightedgedistance" value="rechterkantenabstand"/>
- <cd:constant name="righttext" value="rechtertext"/>
- <cd:constant name="right" value="rechts"/>
- <cd:constant name="nright" value="nrechts"/>
- <cd:constant name="reduction" value="reduktion"/>
- <cd:constant name="referencing" value="referieren"/>
- <cd:constant name="line" value="zeile"/>
- <cd:constant name="linecorrection" value="zeilekorrektur"/>
- <cd:constant name="lines" value="zeilen"/>
- <cd:constant name="stretch" value="strecken"/>
- <cd:constant name="resolution" value="aufloesung"/>
- <cd:constant name="rotation" value="rotation"/>
- <cd:constant name="orientation" value="orientation"/>
- <cd:constant name="horoffset" value="rumpfabstand"/>
- <cd:constant name="backspace" value="rumpfspatium"/>
- <cd:constant name="direction" value="richtung"/>
- <cd:constant name="scale" value="format"/>
- <cd:constant name="separator" value="seperator"/>
- <cd:constant name="display" value="bildschirm"/>
- <cd:constant name="scope" value="bereich"/>
- <cd:constant name="section" value="abschnitt"/>
- <cd:constant name="sectionnumber" value="abschnittsnummer"/>
- <cd:constant name="setups" value="setups"/>
- <cd:constant name="cutspace" value="cutspace"/>
- <cd:constant name="family" value="familie"/>
- <cd:constant name="space" value="spatium"/>
- <cd:constant name="spacing" value="spatiumausgleich"/>
- <cd:constant name="split" value="split"/>
- <cd:constant name="splitoffset" value="splitoffset"/>
- <cd:constant name="indentnext" value="ziehefolgendeein"/>
- <cd:constant name="step" value="schritt"/>
- <cd:constant name="stack" value="stack"/>
- <cd:constant name="start" value="start"/>
- <cd:constant name="state" value="status"/>
- <cd:constant name="stop" value="stop"/>
- <cd:constant name="radius" value="radius"/>
- <cd:constant name="dash" value="strich"/>
- <cd:constant name="sub" value="unter"/>
- <cd:constant name="subtitle" value="untertitel"/>
- <cd:constant name="symbol" value="symbol"/>
- <cd:constant name="closesymbol" value="closesymbol"/>
- <cd:constant name="closecommand" value="closecommand"/>
- <cd:constant name="symbolset" value="symbolset"/>
- <cd:constant name="symcolor" value="symfarbe"/>
- <cd:constant name="symstyle" value="symstil"/>
- <cd:constant name="synonym" value="synonym"/>
- <cd:constant name="synonymcolor" value="synonymfarbe"/>
- <cd:constant name="synonymstyle" value="synonymstil"/>
- <cd:constant name="tab" value="tab"/>
- <cd:constant name="sign" value="zeichen"/>
- <cd:constant name="text" value="text"/>
- <cd:constant name="listtext" value="listtext"/>
- <cd:constant name="textwidth" value="textbreite"/>
- <cd:constant name="numberwidth" value="numberwidth"/>
- <cd:constant name="textcommand" value="textbefehl"/>
- <cd:constant name="textsize" value="textgroesse"/>
- <cd:constant name="textcolor" value="textfarbe"/>
- <cd:constant name="textstyle" value="textstil"/>
- <cd:constant name="textseparator" value="textseparator"/>
- <cd:constant name="textstate" value="textstatus"/>
- <cd:constant name="title" value="titel"/>
- <cd:constant name="titlestyle" value="titelstil"/>
- <cd:constant name="titlecolor" value="titelfarbe"/>
- <cd:constant name="titledistance" value="titelabstand"/>
- <cd:constant name="titleleft" value="titleleft"/>
- <cd:constant name="titleright" value="titleright"/>
- <cd:constant name="titlecommand" value="titlecommand"/>
- <cd:constant name="aligntitle" value="titelausrichten"/>
- <cd:constant name="tolerance" value="toleranz"/>
- <cd:constant name="inbetween" value="zwischen"/>
- <cd:constant name="type" value="typ"/>
- <cd:constant name="align" value="ausrichtung"/>
- <cd:constant name="symalign" value="symausrichtung"/>
- <cd:constant name="urlspace" value="urlspatium"/>
- <cd:constant name="urlalternative" value="urlalternative"/>
- <cd:constant name="from" value="von"/>
- <cd:constant name="alternative" value="alternative"/>
- <cd:constant name="increment" value="erhoehen"/>
- <cd:constant name="incrementnumber" value="nummererhoehen"/>
- <cd:constant name="resetnumber" value="resetnumber"/>
- <cd:constant name="reference" value="referenz"/>
- <cd:constant name="unknownreference" value="unbekantereferenz"/>
- <cd:constant name="footer" value="fusszeile"/>
- <cd:constant name="footerdistance" value="fusszeilenabstand"/>
- <cd:constant name="footerstate" value="fusszeilenstatus"/>
- <cd:constant name="voffset" value="voffset"/>
- <cd:constant name="next" value="folgende"/>
- <cd:constant name="before" value="vor"/>
- <cd:constant name="commandbefore" value="vorbefehl"/>
- <cd:constant name="previous" value="vorige"/>
- <cd:constant name="previousnumber" value="vorigenummer"/>
- <cd:constant name="delay" value="wartezeit"/>
- <cd:constant name="way" value="art"/>
- <cd:constant name="random" value="zufaellig"/>
- <cd:constant name="white" value="weiss"/>
- <cd:constant name="xfactor" value="xfaktor"/>
- <cd:constant name="xmax" value="xmax"/>
- <cd:constant name="xoffset" value="xoffset"/>
- <cd:constant name="xscale" value="xformat"/>
- <cd:constant name="xstep" value="xschritt"/>
- <cd:constant name="yfactor" value="yfaktor"/>
- <cd:constant name="ymax" value="ymax"/>
- <cd:constant name="yoffset" value="yoffset"/>
- <cd:constant name="yscale" value="yformat"/>
- <cd:constant name="ystep" value="yschritt"/>
- <cd:constant name="samepage" value="selbeseite"/>
- <cd:constant name="itemalign" value="itemalign"/>
- <cd:constant name="sidealign" value="sidealign"/>
- <cd:constant name="side" value="objektabstand"/>
- <cd:constant name="fieldlayer" value="fieldlayer"/>
- <cd:constant name="textlayer" value="textlayer"/>
- <cd:constant name="fieldbackgroundcolor" value="feldhintergrundfarbe"/>
- <cd:constant name="fieldframecolor" value="feldrahmenfarbe"/>
- <cd:constant name="fieldoffset" value="feldoffset"/>
- <cd:constant name="action" value="aktion"/>
- <cd:constant name="openaction" value="oeffenaktion"/>
- <cd:constant name="closeaction" value="schliessenaktion"/>
- <cd:constant name="openpageaction" value="openpageaction"/>
- <cd:constant name="closepageaction" value="closepageaction"/>
- <cd:constant name="clickin" value="klickin"/>
- <cd:constant name="clickout" value="klickaus"/>
- <cd:constant name="regionin" value="regionin"/>
- <cd:constant name="regionout" value="regionaus"/>
- <cd:constant name="focusin" value="focusin"/>
- <cd:constant name="focusout" value="focusout"/>
- <cd:constant name="afterkey" value="nachtaste"/>
- <cd:constant name="format" value="formatieren"/>
- <cd:constant name="validate" value="validieren"/>
- <cd:constant name="calculate" value="berechnen"/>
- <cd:constant name="click" value="klick"/>
- <cd:constant name="vcommand" value="vbefehl"/>
- <cd:constant name="icommand" value="ibefehl"/>
- <cd:constant name="ccommand" value="cbefehl"/>
- <cd:constant name="textdistance" value="textdistance"/>
- <cd:constant name="numberdistance" value="numberdistance"/>
- <cd:constant name="textmargin" value="textmargin"/>
- <cd:constant name="keyword" value="keyword"/>
- <cd:constant name="deeptextcommand" value="deeptextcommand"/>
- <cd:constant name="deepnumbercommand" value="deepnumbercommand"/>
- </cd:constants>
-
- <cd:constants>
- <cd:constant name="extras" value="extras"/>
- </cd:constants>
-
- <cd:variables>
- <cd:variable name="on" value="an"/>
- <cd:variable name="test" value="test"/>
- <cd:variable name="serried" value="kleinerabstand"/>
- <cd:variable name="joinedup" value="keinabstand"/>
- <cd:variable name="absolute" value="absolut"/>
- <cd:variable name="background" value="hintergrund"/>
- <cd:variable name="backward" value="rueckwaerts"/>
- <cd:variable name="subbackward" value="unterrueckwaerts"/>
- <cd:variable name="action" value="aktion"/>
- <cd:variable name="stopper" value="trenner"/>
- <cd:variable name="paragraph" value="absatz"/>
- <cd:variable name="all" value="alles"/>
- <cd:variable name="always" value="immer"/>
- <cd:variable name="auto" value="auto"/>
- <cd:variable name="autointro" value="autointro"/>
- <cd:variable name="both" value="beide"/>
- <cd:variable name="inner" value="innen"/>
- <cd:variable name="blank" value="blanko"/>
- <cd:variable name="disable" value="sperren"/>
- <cd:variable name="top" value="oben"/>
- <cd:variable name="wide" value="breit"/>
- <cd:variable name="width" value="breite"/>
- <cd:variable name="minwidth" value="minbreite"/>
- <cd:variable name="outer" value="aussen"/>
- <cd:variable name="numbers" value="ziffern"/>
- <cd:variable name="Numbers" value="Ziffern"/>
- <cd:variable name="command" value="befehl"/>
- <cd:variable name="commands" value="befehle"/>
- <cd:variable name="concept" value="konzept"/>
- <cd:variable name="day" value="tag"/>
- <cd:variable name="date" value="datum"/>
- <cd:variable name="default" value="default"/>
- <cd:variable name="final" value="endfassung"/>
- <cd:variable name="float" value="gleitobjekt"/>
- <cd:variable name="depth" value="tiefe"/>
- <cd:variable name="doublesided" value="doppelseitig"/>
- <cd:variable name="first" value="erste"/>
- <cd:variable name="each" value="jede"/>
- <cd:variable name="singlesided" value="einzelseitig"/>
- <cd:variable name="somewhere" value="irgendwo"/>
- <cd:variable name="nowhere" value="nirgens"/>
- <cd:variable name="even" value="gerade"/>
- <cd:variable name="external" value="extern"/>
- <cd:variable name="file" value="datei"/>
- <cd:variable name="flexible" value="flexibel"/>
- <cd:variable name="force" value="zwinge"/>
- <cd:variable name="used" value="verwende"/>
- <cd:variable name="none" value="kein"/>
- <cd:variable name="nomarking" value="keinebeschriftung"/>
- <cd:variable name="nonumber" value="nonumber"/>
- <cd:variable name="nowhite" value="keinweiss"/>
- <cd:variable name="rotated" value="gedreht"/>
- <cd:variable name="mirrored" value="gespiegelt"/>
- <cd:variable name="global" value="global"/>
- <cd:variable name="grid" value="gritter"/>
- <cd:variable name="nogrid" value="nogrid"/>
- <cd:variable name="big" value="gross"/>
- <cd:variable name="bigbodyfont" value="bigbodyfont"/>
- <cd:variable name="bigpreference" value="grosszuegig"/>
- <cd:variable name="gray" value="grau"/>
- <cd:variable name="halfline" value="halbezeile"/>
- <cd:variable name="keep" value="behalte"/>
- <cd:variable name="hanging" value="haengend"/>
- <cd:variable name="spacing" value="spatiumausgleich"/>
- <cd:variable name="nospacing" value="nospacing"/>
- <cd:variable name="repeat" value="wiederholen"/>
- <cd:variable name="fix" value="stellewiederher"/>
- <cd:variable name="here" value="hier"/>
- <cd:variable name="header" value="kopfzeile"/>
- <cd:variable name="high" value="hoch"/>
- <cd:variable name="height" value="hoehe"/>
- <cd:variable name="minheight" value="minhoehe"/>
- <cd:variable name="horizontal" value="horizontal"/>
- <cd:variable name="current" value="aktuell"/>
- <cd:variable name="hz" value="hz"/>
- <cd:variable name="nohz" value="nohz"/>
- <cd:variable name="italic" value="italic"/>
- <cd:variable name="inherit" value="inherit"/>
- <cd:variable name="inleft" value="imlinken"/>
- <cd:variable name="inmargin" value="imrand"/>
- <cd:variable name="inright" value="imrechten"/>
- <cd:variable name="interaction" value="interaktion"/>
- <cd:variable name="intext" value="imtext"/>
- <cd:variable name="intro" value="intro"/>
- <cd:variable name="its" value="its"/>
- <cd:variable name="yes" value="ja"/>
- <cd:variable name="year" value="jahr"/>
- <cd:variable name="frame" value="rahmen"/>
- <cd:variable name="marginedge" value="marginalkante"/>
- <cd:variable name="cap" value="kap"/>
- <cd:variable name="capital" value="versalien"/>
- <cd:variable name="referral" value="merkmal"/>
- <cd:variable name="small" value="klein"/>
- <cd:variable name="smallnormal" value="kleinnormal"/>
- <cd:variable name="smallslanted" value="kleingeneigt"/>
- <cd:variable name="smallslantedbold" value="kleingeneigtfett"/>
- <cd:variable name="smallitalic" value="kleinitalic"/>
- <cd:variable name="smallitalicbold" value="kleinitalicfett"/>
- <cd:variable name="smalltype" value="kleintippen"/>
- <cd:variable name="smallbold" value="kleinfett"/>
- <cd:variable name="smallboldslanted" value="kleinfettgeneigt"/>
- <cd:variable name="smallbolditalic" value="kleinfettitalic"/>
- <cd:variable name="smallbodyfont" value="smallbodyfont"/>
- <cd:variable name="split" value="split"/>
- <cd:variable name="toggle" value="toggle"/>
- <cd:variable name="color" value="farbe"/>
- <cd:variable name="column" value="column"/>
- <cd:variable name="columns" value="spalten"/>
- <cd:variable name="head" value="kopf"/>
- <cd:variable name="low" value="tief"/>
- <cd:variable name="last" value="letzte"/>
- <cd:variable name="label" value="label"/>
- <cd:variable name="lohi" value="hoti"/>
- <cd:variable name="tall" value="lang"/>
- <cd:variable name="empty" value="leer"/>
- <cd:variable name="Character" value="Buchstabe"/>
- <cd:variable name="character" value="buchstabe"/>
- <cd:variable name="Characters" value="Buchstaben"/>
- <cd:variable name="characters" value="buchstaben"/>
- <cd:variable name="landscape" value="querformat"/>
- <cd:variable name="rule" value="linie"/>
- <cd:variable name="list" value="liste"/>
- <cd:variable name="leftmargin" value="linkerrand"/>
- <cd:variable name="leftpage" value="linkerseite"/>
- <cd:variable name="leftedge" value="linkekante"/>
- <cd:variable name="left" value="links"/>
- <cd:variable name="local" value="lokal"/>
- <cd:variable name="new" value="neu"/>
- <cd:variable name="old" value="old"/>
- <cd:variable name="MONTH" value="MONAT"/>
- <cd:variable name="month" value="monat"/>
- <cd:variable name="mar" value="mar"/>
- <cd:variable name="item" value="pos"/>
- <cd:variable name="marking" value="beschriftung"/>
- <cd:variable name="margin" value="marginalie"/>
- <cd:variable name="max" value="max"/>
- <cd:variable name="min" value="min"/>
- <cd:variable name="mediaeval" value="mittelalterlich"/>
- <cd:variable name="medium" value="mittel"/>
- <cd:variable name="middle" value="mittig"/>
- <cd:variable name="after" value="nach"/>
- <cd:variable name="name" value="name"/>
- <cd:variable name="opposite" value="gegenueber"/>
- <cd:variable name="no" value="nein"/>
- <cd:variable name="negative" value="negativ"/>
- <cd:variable name="positive" value="positiv"/>
- <cd:variable name="not" value="nicht"/>
- <cd:variable name="never" value="nie"/>
- <cd:variable name="normal" value="normal"/>
- <cd:variable name="number" value="nummer"/>
- <cd:variable name="offset" value="offset"/>
- <cd:variable name="unknown" value="unbekannt"/>
- <cd:variable name="bottom" value="unten"/>
- <cd:variable name="odd" value="ungerade"/>
- <cd:variable name="packed" value="gepackt"/>
- <cd:variable name="unpacked" value="ungepackt"/>
- <cd:variable name="makeup" value="umbruch"/>
- <cd:variable name="atmargin" value="amrand"/>
- <cd:variable name="overlay" value="overlay"/>
- <cd:variable name="page" value="seite"/>
- <cd:variable name="pagenumber" value="seitennummer"/>
- <cd:variable name="paper" value="papier"/>
- <cd:variable name="display" value="bildschirm"/>
- <cd:variable name="reverse" value="reverse"/>
- <cd:variable name="fit" value="passend"/>
- <cd:variable name="nofit" value="nofit"/>
- <cd:variable name="postscript" value="postscript"/>
- <cd:variable name="preview" value="vorschau"/>
- <cd:variable name="program" value="programm"/>
- <cd:variable name="process" value="process"/>
- <cd:variable name="spot" value="spot"/>
- <cd:variable name="dot" value="punkt"/>
- <cd:variable name="ran" value="ran"/>
- <cd:variable name="edge" value="kante"/>
- <cd:variable name="screen" value="raster"/>
- <cd:variable name="rectangular" value="rechteckig"/>
- <cd:variable name="rightmargin" value="rechterrand"/>
- <cd:variable name="rightpage" value="rechterseite"/>
- <cd:variable name="rightedge" value="rechterkante"/>
- <cd:variable name="right" value="rechts"/>
- <cd:variable name="line" value="zeile"/>
- <cd:variable name="hang" value="haengend"/>
- <cd:variable name="register" value="register"/>
- <cd:variable name="relative" value="relativ"/>
- <cd:variable name="reset" value="zuruecksetzten"/>
- <cd:variable name="Romannumerals" value="Roemischezahlen"/>
- <cd:variable name="romannumerals" value="roemischezahlen"/>
- <cd:variable name="greek" value="griechisch"/>
- <cd:variable name="Greek" value="Griechisch"/>
- <cd:variable name="round" value="rund"/>
- <cd:variable name="rotate" value="drehe"/>
- <cd:variable name="stretch" value="strecken"/>
- <cd:variable name="backspace" value="rumpfspatium"/>
- <cd:variable name="broad" value="breit"/>
- <cd:variable name="row" value="row"/>
- <cd:variable name="slanted" value="geneigt"/>
- <cd:variable name="slantedbold" value="geneigtfett"/>
- <cd:variable name="synchronize" value="synchronize"/>
- <cd:variable name="italicbold" value="italicfett"/>
- <cd:variable name="sectionnumber" value="abschnittsnummer"/>
- <cd:variable name="narrow" value="schmall"/>
- <cd:variable name="cutspace" value="cutspace"/>
- <cd:variable name="tolerant" value="tolerant"/>
- <cd:variable name="space" value="spatium"/>
- <cd:variable name="standard" value="standard"/>
- <cd:variable name="start" value="start"/>
- <cd:variable name="stop" value="stop"/>
- <cd:variable name="strict" value="streng"/>
- <cd:variable name="strut" value="strut"/>
- <cd:variable name="sub" value="unter"/>
- <cd:variable name="sym" value="sym"/>
- <cd:variable name="txt" value="txt"/>
- <cd:variable name="symbol" value="symbol"/>
- <cd:variable name="text" value="text"/>
- <cd:variable name="back" value="zurueck"/>
- <cd:variable name="test" value="test"/>
- <cd:variable name="inbetween" value="zwischen"/>
- <cd:variable name="type" value="tippen"/>
- <cd:variable name="off" value="aus"/>
- <cd:variable name="url" value="url"/>
- <cd:variable name="URL" value="URL"/>
- <cd:variable name="fixed" value="fest"/>
- <cd:variable name="loose" value="lose"/>
- <cd:variable name="continue" value="fortsetzten"/>
- <cd:variable name="vertical" value="vertikal"/>
- <cd:variable name="bold" value="fett"/>
- <cd:variable name="sansbold" value="sansfett"/>
- <cd:variable name="boldslanted" value="fettgeneigt"/>
- <cd:variable name="bolditalic" value="fettitalic"/>
- <cd:variable name="quadruple" value="viertel"/>
- <cd:variable name="footer" value="fusszeile"/>
- <cd:variable name="next" value="folgende"/>
- <cd:variable name="before" value="vor"/>
- <cd:variable name="foreground" value="vordergrund"/>
- <cd:variable name="preference" value="einstellung"/>
- <cd:variable name="temporary" value="temporaer"/>
- <cd:variable name="forward" value="vorwaerts"/>
- <cd:variable name="subforward" value="untervorwaerts"/>
- <cd:variable name="previous" value="vorig"/>
- <cd:variable name="value" value="wert"/>
- <cd:variable name="week" value="woche"/>
- <cd:variable name="weekday" value="wochentag"/>
- <cd:variable name="WEEKDAY" value="WOCHENTAG"/>
- <cd:variable name="random" value="zufaellig"/>
- <cd:variable name="white" value="weiss"/>
- <cd:variable name="very" value="sehr"/>
- <cd:variable name="verytolerant" value="sehrtolerant"/>
- <cd:variable name="verystrict" value="sehrstreng"/>
- <cd:variable name="see" value="sieh"/>
- <cd:variable name="smallcaps" value="smallcaps"/>
- <cd:variable name="WORD" value="WORT"/>
- <cd:variable name="firstpage" value="ersteseite"/>
- <cd:variable name="firstcolumn" value="firstcolumn"/>
- <cd:variable name="previouspage" value="vorigeseite"/>
- <cd:variable name="nextpage" value="folgendeseite"/>
- <cd:variable name="lastpage" value="letzteseite"/>
- <cd:variable name="lastcolumn" value="lastcolumn"/>
- <cd:variable name="lastpagenumber" value="lastpagenumber"/>
- <cd:variable name="subpage" value="unterseite"/>
- <cd:variable name="firstsubpage" value="ersteunterseite"/>
- <cd:variable name="previoussubpage" value="vorigeunterseite"/>
- <cd:variable name="nextsubpage" value="folgendeunterseite"/>
- <cd:variable name="lastsubpage" value="letzteunterseite"/>
- <cd:variable name="nextevenpage" value="naechstegeradeseite"/>
- <cd:variable name="nextoddpage" value="naechsteungeradeseite"/>
- <cd:variable name="previousevenpage" value="vorigegeradeseite"/>
- <cd:variable name="previousoddpage" value="vorigeungeradeseite"/>
- <cd:variable name="readonly" value="nurlesbar"/>
- <cd:variable name="required" value="obligatorisch"/>
- <cd:variable name="protected" value="geschuetzt"/>
- <cd:variable name="sorted" value="sortiert"/>
- <cd:variable name="unavailable" value="nichtverfuegbar"/>
- <cd:variable name="hidden" value="versteckt"/>
- <cd:variable name="printable" value="druckbar"/>
- <cd:variable name="bookmark" value="bookmark"/>
- <cd:variable name="nocheck" value="nocheck"/>
- <cd:variable name="innermargin" value="innermargin"/>
- <cd:variable name="outermargin" value="outermargin"/>
- <cd:variable name="inneredge" value="inneredge"/>
- <cd:variable name="outeredge" value="outeredge"/>
- <cd:variable name="controls" value="controls"/>
- <cd:variable name="nothanging" value="nothanging"/>
- <cd:variable name="hyphenated" value="hyphenate"/>
- <cd:variable name="nothyphenated" value="nothyphenated"/>
- <cd:variable name="overprint" value="overprint"/>
- <cd:variable name="knockout" value="knockout"/>
- <cd:variable name="xml" value="xml"/>
- <cd:variable name="enumeration" value="nummerierung"/>
- <cd:variable name="description" value="beschreibung"/>
- <cd:variable name="lefthanging" value="lefthanging"/>
- <cd:variable name="righthanging" value="righthanging"/>
- </cd:variables>
-
- <cd:constants>
- <cd:constant name="controls" value="controls"/>
- <cd:constant name="global" value="global"/>
- <cd:constant name="overprint" value="overprint"/>
- </cd:constants>
-
- <cd:variables>
- <cd:variable name="conversion" value="konversion"/>
- <cd:variable name="by" value="pro"/>
- </cd:variables>
-
- <cd:constants>
- <cd:constant name="dx" value="dx"/>
- <cd:constant name="dy" value="dy"/>
- <cd:constant name="nx" value="nx"/>
- <cd:constant name="ny" value="ny"/>
- <cd:constant name="nr" value="nr"/>
- <cd:constant name="nl" value="nl"/>
- <cd:constant name="nc" value="nc"/>
- <cd:constant name="sx" value="sx"/>
- <cd:constant name="sy" value="sy"/>
- <cd:constant name="n" value="n"/>
- <cd:constant name="vfil" value="vfil"/>
- <cd:constant name="hfil" value="hfil"/>
- <cd:constant name="strut" value="strut"/>
- <cd:constant name="autostrut" value="autostrut"/>
- <cd:constant name="reset" value="reset"/>
- <cd:constant name="set" value="set"/>
- <cd:constant name="escape" value="escape"/>
- <cd:constant name="apa" value="apa"/>
- </cd:constants>
-
- <cd:variables>
- <cd:variable name="calligraphic" value="kalligraphie"/>
- <cd:variable name="handwritten" value="handschrift"/>
- <cd:variable name="sansserif" value="grotesk"/>
- <cd:variable name="roman" value="antiqua"/>
- <cd:variable name="teletype" value="fernschreiber"/>
- <cd:variable name="type" value="tippen"/>
- <cd:variable name="serif" value="serif"/>
- <cd:variable name="regular" value="regular"/>
- <cd:variable name="support" value="support"/>
- <cd:variable name="sans" value="sans"/>
- <cd:variable name="mono" value="mono"/>
- </cd:variables>
-
- <cd:elements>
- <cd:element name="begin" value="anfang"/>
- <cd:element name="end" value="ende"/>
- <cd:element name="coupled" value="verknuepft"/>
- <cd:element name="get" value="get"/>
- <cd:element name="currentlocal" value="aktuelllokal"/>
- <cd:element name="endsetup" value="ein"/>
- <cd:element name="load" value="laden"/>
- <cd:element name="emptyone" value="vuoto"/>
- <cd:element name="emptytwo" value="leer"/>
- <cd:element name="list" value="auflisten"/>
- <cd:element name="listof" value="auflistenvon"/>
- <cd:element name="local" value="lokal"/>
- <cd:element name="place" value="platziere"/>
- <cd:element name="reserve" value="reservieren"/>
- <cd:element name="start" value="start"/>
- <cd:element name="setup" value="stelle"/>
- <cd:element name="stop" value="stop"/>
- <cd:element name="increment" value="erhoehen"/>
- <cd:element name="next" value="folgende"/>
- <cd:element name="complete" value="vollende"/>
- <cd:element name="previous" value="vorige"/>
- <cd:element name="previouslocal" value="voriglokal"/>
- <cd:element name="see" value="sieh"/>
- <cd:element name="type" value="type"/>
- <cd:element name="makeup" value="umbruch"/>
- <cd:element name="text" value="text"/>
- </cd:elements>
-
- <cd:variables>
- <cd:variable name="buffer" value="puffer"/>
- <cd:variable name="linenote" value="linenote"/>
- <cd:variable name="comment" value="kommentar"/>
- <cd:variable name="interactionmenu" value="interaktionsmenue"/>
- <cd:variable name="postponing" value="verschieben"/>
- <cd:variable name="hiding" value="verbergen"/>
- <cd:variable name="tabulate" value="tabulator"/>
- <cd:variable name="tabulatehead" value="tabulatehead"/>
- <cd:variable name="tabulatetail" value="tabulatetail"/>
- <cd:variable name="fact" value="gegeben"/>
- <cd:variable name="legend" value="legende"/>
- <cd:variable name="formula" value="formel"/>
- <cd:variable name="tablehead" value="tabellenueberschrift"/>
- <cd:variable name="tabletail" value="tabellenende"/>
- <cd:variable name="setups" value="impostazioni"/>
- <cd:variable name="helptext" value="hilfetext"/>
- <cd:variable name="localenvironment" value="lokaleumgebung"/>
- <cd:variable name="sectionblockenvironment" value="sectionblockenvironment"/>
- <cd:variable name="pagecomment" value="pagecomment"/>
- </cd:variables>
-
- <cd:variables>
- <cd:variable name="FirstPage" value="ErsteSeite"/>
- <cd:variable name="PreviousPage" value="VorigeSeite"/>
- <cd:variable name="NextPage" value="FolgendeSeite"/>
- <cd:variable name="LastPage" value="LetzteSeite"/>
- <cd:variable name="PreviousJump" value="VorigerSprung"/>
- <cd:variable name="NextJump" value="NaechsterSprung"/>
- <cd:variable name="ToggleViewer" value="WechseleViewer"/>
- <cd:variable name="ExitViewer" value="BeendeViewer"/>
- <cd:variable name="CloseDocument" value="SchliesseDokument"/>
- <cd:variable name="SaveDocument" value="SpeichereDokument"/>
- <cd:variable name="SaveNamedDocument" value="SaveNamedDocument"/>
- <cd:variable name="OpenNamedDocument" value="OpenNamedDocument"/>
- <cd:variable name="ViewerHelp" value="ViewerHilfe"/>
- <cd:variable name="PrintDocument" value="DruckeDokument"/>
- <cd:variable name="SearchDocument" value="DokumentDurchsuchen"/>
- <cd:variable name="SearchAgain" value="WeiterSuchen"/>
- <cd:variable name="Query" value="Query"/>
- <cd:variable name="QueryAgain" value="QueryAgain"/>
- <cd:variable name="GotoPage" value="GotoPage"/>
- <cd:variable name="StartMovie" value="StartFilm"/>
- <cd:variable name="StopMovie" value="StopFilm"/>
- <cd:variable name="PauseMovie" value="PauseFilm"/>
- <cd:variable name="ResumeMovie" value="FortsetzenFilm"/>
- <cd:variable name="StartSound" value="StartSound"/>
- <cd:variable name="StopSound" value="StopSound"/>
- <cd:variable name="PauseSound" value="PauseSound"/>
- <cd:variable name="ResumeSound" value="ResumeSound"/>
- <cd:variable name="StartRendering" value="StartRendering"/>
- <cd:variable name="StopRendering" value="StopRendering"/>
- <cd:variable name="PauseRendering" value="PauseRendering"/>
- <cd:variable name="ResumeRendering" value="ResumeRendering"/>
- <cd:variable name="SaveForm" value="SpeicheFormular"/>
- <cd:variable name="LoadForm" value="LadeFormular"/>
- <cd:variable name="ResetForm" value="ZuruecksetzenFormular"/>
- <cd:variable name="SubmitForm" value="VersendeFormular"/>
- <cd:variable name="HideField" value="VerbergeFeld"/>
- <cd:variable name="ShowField" value="ZeigeFeld"/>
- <cd:variable name="FitWidth" value="BreitePassend"/>
- <cd:variable name="FitHeight" value="HoehePassend"/>
- <cd:variable name="HideLayer" value="HideLayer"/>
- <cd:variable name="VideLayer" value="VideLayer"/>
- <cd:variable name="ToggleLayer" value="ToggleLayer"/>
- <cd:variable name="ShowThumbs" value="ShowThumbs"/>
- <cd:variable name="ShowBookmarks" value="ShowBookmarks"/>
- </cd:variables>
-
- <cd:variables>
- <cd:variable name="New" value="Neu"/>
- <cd:variable name="Balloon" value="Ballon"/>
- <cd:variable name="Addition" value="Zusatz"/>
- <cd:variable name="Help" value="Hilfe"/>
- <cd:variable name="Paragraph" value="Absatz"/>
- <cd:variable name="Key" value="Schluessel"/>
- </cd:variables>
-
- <cd:constants>
- <cd:constant name="bet" value="bet"/>
- <cd:constant name="dat" value="dat"/>
- <cd:constant name="ken" value="ken"/>
- <cd:constant name="ref" value="ref"/>
- </cd:constants>
-
- <cd:variables>
- <cd:variable name="formeel" value="formeel"/>
- <cd:variable name="informeel" value="informeel"/>
- <cd:variable name="rekening" value="rekening"/>
- <cd:variable name="sticker" value="sticker"/>
- <cd:variable name="sheet" value="sheet"/>
- <cd:variable name="brief" value="brief"/>
- <cd:variable name="ls" value="ls"/>
- </cd:variables>
-
- <cd:commands>
- <cd:command name="language" value="sprache"/>
- <cd:command name="mainlanguage" value="hauptsprache"/>
- <cd:command name="translate" value="uebersetzten"/>
- <cd:command name="installlanguage" value="installieresprache"/>
- <cd:command name="setuplanguage" value="stellespracheein"/>
- <cd:command name="showmakeup" value="zeigeumbruch"/>
- <cd:command name="useencoding" value="benutzekodierung"/>
- <cd:command name="usespecials" value="benutzespezielles"/>
- <cd:command name="defineoutput" value="defineoutput"/>
- <cd:command name="setupoutput" value="stelleausgabeein"/>
- <cd:command name="defineaccent" value="definiereakzent"/>
- <cd:command name="definecharacter" value="definierezeichen"/>
- <cd:command name="definecommand" value="definierebefehl"/>
- <cd:command name="startcoding" value="startkodierung"/>
- <cd:command name="stopcoding" value="stopkodierung"/>
- <cd:command name="definebodyfontenvironment" value="definierefliesstextumgebung"/>
- <cd:command name="setupbodyfontenvironment" value="stellefliesstextumgebungein"/>
- <cd:command name="definebodyfont" value="definierefliesstext"/>
- <cd:command name="definefont" value="definiereschrift"/>
- <cd:command name="definefontsynonym" value="defineschriftsynonym"/>
- <cd:command name="definestyle" value="definierestil"/>
- <cd:command name="definefontstyle" value="definiereschriftstil"/>
- <cd:command name="setupstrut" value="setupstrut"/>
- <cd:command name="setuptype" value="stelletipein"/>
- <cd:command name="type" value="tippen"/>
- <cd:command name="typ" value="tip"/>
- <cd:command name="arg" value="arg"/>
- <cd:command name="tex" value="tex"/>
- <cd:command name="definetyping" value="definieretippen"/>
- <cd:command name="definetype" value="definetype"/>
- <cd:command name="setuptyping" value="stelletippenein"/>
- <cd:command name="typefile" value="tippedatei"/>
- <cd:command name="setupfootnotes" value="stellefussnotenein"/>
- <cd:command name="setupfootnotedefinition" value="stellefussnotendefinitionein"/>
- <cd:command name="note" value="notiz"/>
- <cd:command name="footnote" value="fussnote"/>
- <cd:command name="footnotetext" value="footnotetext"/>
- <cd:command name="startlocalfootnotes" value="startlokalefussnoten"/>
- <cd:command name="stoplocalfootnotes" value="stoplokalefussnoten"/>
- <cd:command name="placelocalfootnotes" value="platzierelokalefussnoten"/>
- <cd:command name="placefootnotes" value="platzierefussnoten"/>
- <cd:command name="currentdate" value="heutigesdatum"/>
- <cd:command name="date" value="datum"/>
- <cd:command name="weekday" value="wochentag"/>
- <cd:command name="WEEKDAY" value="WOCHENTAG"/>
- <cd:command name="month" value="monat"/>
- <cd:command name="MONTH" value="MONAT"/>
- <cd:command name="Numbers" value="Ziffern"/>
- <cd:command name="numbers" value="ziffern"/>
- <cd:command name="romannumerals" value="roemischezahlen"/>
- <cd:command name="Romannumerals" value="Roemischezahlen"/>
- <cd:command name="character" value="buchstabe"/>
- <cd:command name="Character" value="Buchstabe"/>
- <cd:command name="characters" value="buchstaben"/>
- <cd:command name="Characters" value="Buchstaben"/>
- <cd:command name="unknown" value="unbekant"/>
- <cd:command name="definesymbol" value="definieresymbol"/>
- <cd:command name="definefiguresymbol" value="definiereabbsymbol"/>
- <cd:command name="symbol" value="symbol"/>
- <cd:command name="setupsymbolset" value="stellesymbolsetein"/>
- <cd:command name="showsymbolset" value="showsymbolset"/>
- <cd:command name="startsymbolset" value="startsymbolset"/>
- <cd:command name="usesymbols" value="verwendesymbole"/>
- <cd:command name="defineconversion" value="definierekonversion"/>
- <cd:command name="convertnumber" value="konvertierezahl"/>
- <cd:command name="setupcapitals" value="stelleversalienein"/>
- <cd:command name="smallcapped" value="kap"/>
- <cd:command name="notsmallcapped" value="nokap"/>
- <cd:command name="CAPPED" value="KAP"/>
- <cd:command name="SmallCapped" value="Kap"/>
- <cd:command name="SmallCaps" value="Kaps"/>
- <cd:command name="WORD" value="WORT"/>
- <cd:command name="WORDS" value="WOERTER"/>
- <cd:command name="Word" value="Wort"/>
- <cd:command name="Words" value="Woerter"/>
- <cd:command name="stretched" value="gestreckt"/>
- <cd:command name="overstrike" value="durchgestrichen"/>
- <cd:command name="overstrikes" value="durchstreichen"/>
- <cd:command name="overbar" value="ueberstrichen"/>
- <cd:command name="overbars" value="ueberstreichen"/>
- <cd:command name="underbar" value="unterstrichen"/>
- <cd:command name="underbars" value="unterstreichen"/>
- <cd:command name="setupunderbar" value="stelleunterstreichenein"/>
- <cd:command name="setupbodyfont" value="stellefliesstextein"/>
- <cd:command name="switchtobodyfont" value="wechselezumfliesstext"/>
- <cd:command name="showbodyfont" value="zeigefliesstext"/>
- <cd:command name="showbodyfontenvironment" value="zeigefliesstextumgebung"/>
- <cd:command name="headtext" value="ueberschrifttext"/>
- <cd:command name="labeltext" value="labeltext"/>
- <cd:command name="LABELTEXT" value="LABELTEXT"/>
- <cd:command name="setupheadtext" value="stelleueberschrifttextein"/>
- <cd:command name="setuplabeltext" value="stellelabeltextein"/>
- <cd:command name="marginrule" value="marginallinie"/>
- <cd:command name="startmarginrule" value="startmarginallinie"/>
- <cd:command name="stopmarginrule" value="stopmarginallinie"/>
- <cd:command name="setupmarginrules" value="stellemarginallinieein"/>
- <cd:command name="blackrule" value="rechteck"/>
- <cd:command name="blackrules" value="rechtecke"/>
- <cd:command name="setupblackrules" value="stellerechteckein"/>
- <cd:command name="setupscreens" value="stellerasterein"/>
- <cd:command name="framed" value="umrahmt"/>
- <cd:command name="inframed" value="imumriss"/>
- <cd:command name="mframed" value="maumrise"/>
- <cd:command name="inmframed" value="immaumrise"/>
- <cd:command name="setupframed" value="stelleumrahmtein"/>
- <cd:command name="setuplinewidth" value="stellelinienbreiteein"/>
- <cd:command name="setupthinrules" value="stelleduennerumrissein"/>
- <cd:command name="thinrule" value="duennelinie"/>
- <cd:command name="thinrules" value="duennerumriss"/>
- <cd:command name="hairline" value="haarlinie"/>
- <cd:command name="vl" value="vl"/>
- <cd:command name="hl" value="hl"/>
- <cd:command name="defineframed" value="definiereumrahmt"/>
- <cd:command name="defineframedtext" value="definiereumrahmtertext"/>
- <cd:command name="setupframedtexts" value="stelleumrahmtetexteein"/>
- <cd:command name="defineoverlay" value="definiereoverlay"/>
- <cd:command name="definelayer" value="definelayer"/>
- <cd:command name="background" value="hintergrund"/>
- <cd:command name="startbackground" value="starthintergrund"/>
- <cd:command name="stopbackground" value="stophintergrund"/>
- <cd:command name="setupbackground" value="stellehintergrundein"/>
- <cd:command name="fillinrules" value="gefuelltesrechteck"/>
- <cd:command name="setupfillinrules" value="stellegefuelltesrechteckein"/>
- <cd:command name="fillintext" value="ausfuelltext"/>
- <cd:command name="setupfillinlines" value="stellegefuelltezeileein"/>
- <cd:command name="fillinline" value="gefuelltezeile"/>
- <cd:command name="setuptextrules" value="stelletextumrissein"/>
- <cd:command name="textrule" value="textlinie"/>
- <cd:command name="starttextrule" value="starttextlinie"/>
- <cd:command name="stoptextrule" value="stoptextlinie"/>
- <cd:command name="usemodule" value="verwendemodul"/>
- <cd:command name="usemodules" value="verwendemodule"/>
- <cd:command name="starttext" value="starttext"/>
- <cd:command name="stoptext" value="stoptext"/>
- <cd:command name="margintitle" value="marginaltitel"/>
- <cd:command name="marginword" value="marginalwort"/>
- <cd:command name="margintext" value="marginaltext"/>
- <cd:command name="inleft" value="imlinken"/>
- <cd:command name="inmargin" value="inmarginalie"/>
- <cd:command name="inothermargin" value="inanderermarginale"/>
- <cd:command name="inright" value="imrechten"/>
- <cd:command name="ininner" value="ininner"/>
- <cd:command name="inouter" value="inouter"/>
- <cd:command name="startmarginblock" value="startmarginalblock"/>
- <cd:command name="stopmarginblock" value="stopmarginalblock"/>
- <cd:command name="defineinmargin" value="defineinmargin"/>
- <cd:command name="setupinmargin" value="stelleinmarginalieein"/>
- <cd:command name="setupmarginblocks" value="stellemarginalblockein"/>
- <cd:command name="inleftedge" value="imlinkenrand"/>
- <cd:command name="inleftmargin" value="inlinkermarginale"/>
- <cd:command name="inrightmargin" value="inrechtermarginale"/>
- <cd:command name="inrightedge" value="imrechtenrand"/>
- <cd:command name="atleftmargin" value="atleftmargin"/>
- <cd:command name="atrightmargin" value="atrightmargin"/>
- <cd:command name="wordright" value="wortrechts"/>
- <cd:command name="defineblank" value="definiereblanko"/>
- <cd:command name="blank" value="blanko"/>
- <cd:command name="setupblank" value="stelleblankoein"/>
- <cd:command name="correctwhitespace" value="korrigierezwischenraum"/>
- <cd:command name="fixedspaces" value="festesspatium"/>
- <cd:command name="fixedspace" value="festesspatium"/>
- <cd:command name="nospace" value="keinspatium"/>
- <cd:command name="space" value="spatium"/>
- <cd:command name="nowhitespace" value="keinzwischenraum"/>
- <cd:command name="packed" value="kleinerdurchschuss"/>
- <cd:command name="startpacked" value="startkleinerdurchschuss"/>
- <cd:command name="stoppacked" value="stopkleinerdurchschuss"/>
- <cd:command name="startunpacked" value="startgrosserdurchschuss"/>
- <cd:command name="stopunpacked" value="stopgrosserdurchschuss"/>
- <cd:command name="startlinecorrection" value="startzeilenkorrektur"/>
- <cd:command name="stoplinecorrection" value="stopzeilenkorrektur"/>
- <cd:command name="godown" value="nachunten"/>
- <cd:command name="whitespace" value="zwischenraum"/>
- <cd:command name="noindenting" value="nichteinziehen"/>
- <cd:command name="indenting" value="einziehen"/>
- <cd:command name="setupindenting" value="stelleeinziehenein"/>
- <cd:command name="startalignment" value="startausrichtung"/>
- <cd:command name="stopalignment" value="stopausrichtung"/>
- <cd:command name="startlines" value="startzeilen"/>
- <cd:command name="stoplines" value="stopzeilen"/>
- <cd:command name="setupparagraphnumbering" value="stelleabsatznummerierungein"/>
- <cd:command name="setuplinenumbering" value="stellezeilennumerierungein"/>
- <cd:command name="startlinenumbering" value="startzeilennumerierung"/>
- <cd:command name="stoplinenumbering" value="stopzeilennumerierung"/>
- <cd:command name="startline" value="startzeile"/>
- <cd:command name="stopline" value="stopzeile"/>
- <cd:command name="someline" value="einezeile"/>
- <cd:command name="inline" value="inzeile"/>
- <cd:command name="crlf" value="crlf"/>
- <cd:command name="emptylines" value="emptylines"/>
- <cd:command name="setuplines" value="stellezeilenein"/>
- <cd:command name="startnarrower" value="startenger"/>
- <cd:command name="stopnarrower" value="stopenger"/>
- <cd:command name="setupnarrower" value="stelleengerein"/>
- <cd:command name="definetabulate" value="definieretabulator"/>
- <cd:command name="setuptabulate" value="stelletabulatorein"/>
- <cd:command name="starttable" value="starttabelle"/>
- <cd:command name="stoptable" value="stoptabelle"/>
- <cd:command name="starttables" value="starttabellen"/>
- <cd:command name="stoptables" value="stoptabellen"/>
- <cd:command name="setuptables" value="stelletabellenein"/>
- <cd:command name="definetabletemplate" value="definieretabellenvorlage"/>
- <cd:command name="page" value="seite"/>
- <cd:command name="testcolumn" value="testcolumn"/>
- <cd:command name="testpage" value="testpage"/>
- <cd:command name="couplepage" value="doppelseite"/>
- <cd:command name="pagetype" value="seitentyp"/>
- <cd:command name="processpage" value="bearbeiteseite"/>
- <cd:command name="couplepaper" value="doppelseitigespapier"/>
- <cd:command name="selectpaper" value="waehlepapieraus"/>
- <cd:command name="screen" value="bildschirm"/>
- <cd:command name="definesection" value="definiereabschnitt"/>
- <cd:command name="definesectionblock" value="definiereabschnittsblock"/>
- <cd:command name="setupsectionblock" value="stelleabschnittsblockein"/>
- <cd:command name="setupsection" value="stelleabschnittein"/>
- <cd:command name="notopandbottomlines" value="keinzeilenobenundunten"/>
- <cd:command name="noheaderandfooterlines" value="keinekopfundfusszeilen"/>
- <cd:command name="setuptop" value="stellenobenein"/>
- <cd:command name="setuptoptexts" value="stelletextobenein"/>
- <cd:command name="setupheader" value="stellekopfzeileein"/>
- <cd:command name="setupheadertexts" value="stellekopfzeilentextein"/>
- <cd:command name="setuppagenumbering" value="stelleseitennummeriernungein"/>
- <cd:command name="getnumber" value="getnumber"/>
- <cd:command name="incrementnumber" value="nummererhoehen"/>
- <cd:command name="decrementnumber" value="decrementnumber"/>
- <cd:command name="resetnumber" value="resetnumber"/>
- <cd:command name="setnumber" value="setnumber"/>
- <cd:command name="setupnumber" value="setupnumber"/>
- <cd:command name="setupbottom" value="stelleuntenein"/>
- <cd:command name="setupbottomtexts" value="stelletextuntenein"/>
- <cd:command name="setupfooter" value="stellefusszeileein"/>
- <cd:command name="setupfootertexts" value="stellefusszeilentextein"/>
- <cd:command name="setuppagenumber" value="stelleseitennummerein"/>
- <cd:command name="setupsubpagenumber" value="stelleunterseitennummerein"/>
- <cd:command name="subpagenumber" value="subpagenumber"/>
- <cd:command name="setuptext" value="stelletextein"/>
- <cd:command name="setuptexttexts" value="stelletexttexteein"/>
- <cd:command name="settextcontent" value="settext"/>
- <cd:command name="resettext" value="resettextcontent"/>
- <cd:command name="definetext" value="definieretext"/>
- <cd:command name="pagenumber" value="seitenummer"/>
- <cd:command name="completepagenumber" value="completepagenumber"/>
- <cd:command name="placepagenumber" value="placepagenumber"/>
- <cd:command name="items" value="posten"/>
- <cd:command name="setupitems" value="stellepostenein"/>
- <cd:command name="leftaligned" value="linksbuendig"/>
- <cd:command name="midaligned" value="zentriert"/>
- <cd:command name="rightaligned" value="rechtsbuendig"/>
- <cd:command name="startcolumns" value="startspalten"/>
- <cd:command name="stopcolumns" value="stopspalten"/>
- <cd:command name="setupcolumns" value="stellespaltenein"/>
- <cd:command name="column" value="spalte"/>
- <cd:command name="head" value="kopf"/>
- <cd:command name="but" value="but"/>
- <cd:command name="item" value="pos"/>
- <cd:command name="nop" value="nop"/>
- <cd:command name="mar" value="mar"/>
- <cd:command name="sym" value="sym"/>
- <cd:command name="txt" value="txt"/>
- <cd:command name="its" value="its"/>
- <cd:command name="ran" value="ran"/>
- <cd:command name="headsym" value="headsym"/>
- <cd:command name="defineitemgroup" value="defineitemgroup"/>
- <cd:command name="setupitemgroup" value="setupitemgroup"/>
- <cd:command name="setupitemgroups" value="setupitemgroups"/>
- <cd:command name="definehead" value="definiereueberschrift"/>
- <cd:command name="setuphead" value="stelleueberschriftein"/>
- <cd:command name="setupheads" value="stelleueberschriftenein"/>
- <cd:command name="setupheadnumber" value="stellekopfzahlein"/>
- <cd:command name="headnumber" value="kopfnummer"/>
- <cd:command name="currentheadnumber" value="heutigeskopfnummer"/>
- <cd:command name="determineheadnumber" value="bestimmekopfnummer"/>
- <cd:command name="resetmarking" value="ruecksetztenbeschriftung"/>
- <cd:command name="setupmarking" value="stellebeschriftungein"/>
- <cd:command name="definemarking" value="definierebeschriftung"/>
- <cd:command name="nomarking" value="keinebeschriftung"/>
- <cd:command name="marking" value="beschriftung"/>
- <cd:command name="decouplemarking" value="entknuepfebeschriftung"/>
- <cd:command name="couplemarking" value="verknuepfebeschriftung"/>
- <cd:command name="getmarking" value="holebeschriftung"/>
- <cd:command name="definelayout" value="definelayout"/>
- <cd:command name="setuplayout" value="stellelayoutein"/>
- <cd:command name="adaptlayout" value="passelayoutan"/>
- <cd:command name="placeongrid" value="amgitterausrichten"/>
- <cd:command name="moveongrid" value="amgitterneuausrichten"/>
- <cd:command name="showsetups" value="zeigeeinstellungen"/>
- <cd:command name="showframe" value="zeigerahmen"/>
- <cd:command name="showgrid" value="zeigegitter"/>
- <cd:command name="showlayout" value="zeigelayout"/>
- <cd:command name="showprint" value="zeigedruck"/>
- <cd:command name="showstruts" value="zeigestruts"/>
- <cd:command name="definepapersize" value="definierepapierformat"/>
- <cd:command name="setuppapersize" value="stellepapierformatein"/>
- <cd:command name="setuppaper" value="setuppaper"/>
- <cd:command name="setuparranging" value="stelleanordnenein"/>
- <cd:command name="version" value="version"/>
- <cd:command name="setupbackgrounds" value="stellehintergruendeein"/>
- <cd:command name="setupalign" value="stelleausrichtungein"/>
- <cd:command name="setupwhitespace" value="stellezwischenraumein"/>
- <cd:command name="setupinteraction" value="stelleinteraktionein"/>
- <cd:command name="setupinteractionmenu" value="stelleinteraktionsmenueein"/>
- <cd:command name="defineinteractionmenu" value="definiereinteraktionsmenue"/>
- <cd:command name="disableinteractionmenu" value="inaktiviereinteraktionsmenue"/>
- <cd:command name="interactionmenu" value="interaktionsmenue"/>
- <cd:command name="interactionbuttons" value="interaktionsknopfe"/>
- <cd:command name="interactionbar" value="interaktionsbalken"/>
- <cd:command name="setupinteractionbar" value="stelleinteraktionsbalkenein"/>
- <cd:command name="setupinteractionscreen" value="stelleinteraktionsbildschirmein"/>
- <cd:command name="placebookmarks" value="platzierebookmarks"/>
- <cd:command name="bookmark" value="bookmark"/>
- <cd:command name="definelogo" value="definierelogo"/>
- <cd:command name="placelogos" value="platzierelogo"/>
- <cd:command name="definecolor" value="definierefarbe"/>
- <cd:command name="definecolorgroup" value="definierefarbengruppe"/>
- <cd:command name="definepalet" value="definierepalette"/>
- <cd:command name="graycolor" value="graufarbe"/>
- <cd:command name="color" value="farbe"/>
- <cd:command name="startcolor" value="startfarbe"/>
- <cd:command name="stopcolor" value="stopfarbe"/>
- <cd:command name="setupcolors" value="stellefarbenein"/>
- <cd:command name="setupcolor" value="stellefarbeein"/>
- <cd:command name="setuppalet" value="stellepaletteein"/>
- <cd:command name="showcolor" value="zeigefarbe"/>
- <cd:command name="showcolorgroup" value="zeigefarbengruppe"/>
- <cd:command name="showpalet" value="zeigepalette"/>
- <cd:command name="comparecolorgroup" value="vergleichefarbengruppe"/>
- <cd:command name="comparepalet" value="vergleichepalette"/>
- <cd:command name="colorvalue" value="farbewert"/>
- <cd:command name="greyvalue" value="grauwert"/>
- <cd:command name="startraster" value="startraster"/>
- <cd:command name="stopraster" value="stopraster"/>
- <cd:command name="defineblock" value="definiereblock"/>
- <cd:command name="setupblock" value="stelleblockein"/>
- <cd:command name="useblocks" value="verwendebloecke"/>
- <cd:command name="processblocks" value="bearbeitebloecke"/>
- <cd:command name="keepblocks" value="behaltebloecke"/>
- <cd:command name="selectblocks" value="waehlebloeckeaus"/>
- <cd:command name="hideblocks" value="verbergebloecke"/>
- <cd:command name="bypassblocks" value="bypassblocks"/>
- <cd:command name="forceblocks" value="forceblocks"/>
- <cd:command name="nomoreblocks" value="keinebloeckemehr"/>
- <cd:command name="definelist" value="definiereliste"/>
- <cd:command name="definecombinedlist" value="definierezusammengestellteliste"/>
- <cd:command name="listsymbol" value="listsymbol"/>
- <cd:command name="placelist" value="platziereliste"/>
- <cd:command name="plaatsruwelijst" value="placerawlist"/>
- <cd:command name="placecombinedlist" value="platzierezusammengestellteliste"/>
- <cd:command name="writetolist" value="schreibezurliste"/>
- <cd:command name="writebetweenlist" value="schreibezwischenliste"/>
- <cd:command name="immediatetolist" value="immediatetolist"/>
- <cd:command name="immediatebetweenlist" value="immediatebetweenlist"/>
- <cd:command name="setuplist" value="stellelisteein"/>
- <cd:command name="setupcombinedlist" value="stellezusammengestelltelisteein"/>
- <cd:command name="determinelistcharacteristics" value="bestimmelistencharakeristika"/>
- <cd:command name="listlength" value="listenlaenge"/>
- <cd:command name="listwidth" value="listenbreite"/>
- <cd:command name="listheight" value="listenhoehe"/>
- <cd:command name="nolist" value="keineliste"/>
- <cd:command name="definereferencelist" value="definierereferenzliste"/>
- <cd:command name="placereferencelist" value="platzierereferenzliste"/>
- <cd:command name="writetoreferencelist" value="schreibezurreferenzliste"/>
- <cd:command name="setupreferencelist" value="stellereferenzlisteein"/>
- <cd:command name="definefloat" value="definieregleitobjekt"/>
- <cd:command name="setupfloat" value="stellegleitobjektein"/>
- <cd:command name="setupfloats" value="stellegleitobjekteein"/>
- <cd:command name="splitfloat" value="teilegleitobjekt"/>
- <cd:command name="setupfloatsplitting" value="stelleplatziegeteiltegleitobjekt"/>
- <cd:command name="placefloat" value="placefloat"/>
- <cd:command name="movesidefloat" value="movesidefloat"/>
- <cd:command name="defineplacement" value="defineplacement"/>
- <cd:command name="setupplacement" value="setupplacement"/>
- <cd:command name="definecombination" value="definecombination"/>
- <cd:command name="startcombination" value="startkombination"/>
- <cd:command name="stopcombination" value="stopkombination"/>
- <cd:command name="placesidebyside" value="platzierenebeneinander"/>
- <cd:command name="placeontopofeachother" value="platziereuntereinander"/>
- <cd:command name="setupcaption" value="stellebildunterschriftein"/>
- <cd:command name="setupcaptions" value="stellebilderunterschriftein"/>
- <cd:command name="setupcombinations" value="stellekombinationein"/>
- <cd:command name="startoverlay" value="startoverlay"/>
- <cd:command name="stopoverlay" value="stopoverlay"/>
- <cd:command name="defineregister" value="definiereregister"/>
- <cd:command name="coupleregister" value="verknuepfregister"/>
- <cd:command name="setupregister" value="stelleregisterein"/>
- <cd:command name="writetoregister" value="schreibezumregister"/>
- <cd:command name="completeregister" value="completeregister"/>
- <cd:command name="placeregister" value="platziereregister"/>
- <cd:command name="determineregistercharacteristics" value="bestimmeregistercharakteristika"/>
- <cd:command name="definesorting" value="definieresortieren"/>
- <cd:command name="definesynonyms" value="definieresynonyme"/>
- <cd:command name="setupsorting" value="stellesortierenein"/>
- <cd:command name="setupsynonyms" value="stellesynonymein"/>
- <cd:command name="startsynchronization" value="startsynchronisation"/>
- <cd:command name="stopsynchronization" value="stopsynchronisation"/>
- <cd:command name="setupsynchronizationbar" value="stellesynchronisationsbalkenein"/>
- <cd:command name="setupsynchronization" value="stellesynchronisationein"/>
- <cd:command name="synchronizationbar" value="synchronisationsbalken"/>
- <cd:command name="synchronize" value="synchronisieren"/>
- <cd:command name="useexternaldocument" value="verwendeexteresdokument"/>
- <cd:command name="useURL" value="verwendeURL"/>
- <cd:command name="useurl" value="verwendeurl"/>
- <cd:command name="setupurl" value="stelleurlein"/>
- <cd:command name="coupledocument" value="verknuepfedokument"/>
- <cd:command name="setupprograms" value="stelleprogrammein"/>
- <cd:command name="defineprogram" value="definiereprogramme"/>
- <cd:command name="program" value="programm"/>
- <cd:command name="setuppagetransitions" value="stelleseitenuebergangein"/>
- <cd:command name="defineprofile" value="definiereprofil"/>
- <cd:command name="defineversion" value="definiereversion"/>
- <cd:command name="markversion" value="beschrifteversion"/>
- <cd:command name="selectversion" value="waehleversionaus"/>
- <cd:command name="startprofile" value="startprofil"/>
- <cd:command name="startversion" value="startversion"/>
- <cd:command name="setupprofiles" value="stelleprofilein"/>
- <cd:command name="setupversions" value="stelleversionein"/>
- <cd:command name="stopprofile" value="stopprofil"/>
- <cd:command name="stopversion" value="stopversion"/>
- <cd:command name="followprofile" value="folgeprofil"/>
- <cd:command name="followprofileversion" value="folgeprofilversion"/>
- <cd:command name="followversion" value="folgeversion"/>
- <cd:command name="definedescription" value="definierebeschreibung"/>
- <cd:command name="definelabel" value="definierelabel"/>
- <cd:command name="defineenumeration" value="definierenummerierung"/>
- <cd:command name="defineindenting" value="definiereeinzug"/>
- <cd:command name="setupdescriptions" value="definierebeschreibungen"/>
- <cd:command name="setupenumerations" value="stellebeschreibungein"/>
- <cd:command name="setupindentations" value="stelleeinzuegein"/>
- <cd:command name="setuptab" value="stelletabein"/>
- <cd:command name="tab" value="tab"/>
- <cd:command name="setupexternalfigures" value="stelleexterneabbildungenein"/>
- <cd:command name="showexternalfigures" value="zeigeexterneabbildungen"/>
- <cd:command name="externalfigure" value="externeabbildung"/>
- <cd:command name="useexternalfigure" value="verwendeexterneabbildung"/>
- <cd:command name="startfigure" value="startabbildung"/>
- <cd:command name="referring" value="referieren"/>
- <cd:command name="remark" value="bemerkung"/>
- <cd:command name="colorbar" value="farbbalken"/>
- <cd:command name="grid" value="gitter"/>
- <cd:command name="button" value="knopf"/>
- <cd:command name="menubutton" value="menueknopf"/>
- <cd:command name="setupbuttons" value="stelleknopfein"/>
- <cd:command name="usereferences" value="verwendereferenzen"/>
- <cd:command name="placereferencelist" value="placereferencelist"/>
- <cd:command name="setupreferencelist" value="stellereferenzlisteein"/>
- <cd:command name="setupreferencing" value="stellereferenzierenein"/>
- <cd:command name="textreference" value="textreferenz"/>
- <cd:command name="pagereference" value="seitenreferenz"/>
- <cd:command name="reference" value="referenz"/>
- <cd:command name="definereference" value="definierereferenz"/>
- <cd:command name="definereferenceformat" value="definierereferenzformat"/>
- <cd:command name="useJSscripts" value="verwendeJSscript"/>
- <cd:command name="from" value="von"/>
- <cd:command name="in" value="in"/>
- <cd:command name="at" value="bei"/>
- <cd:command name="about" value="ueber"/>
- <cd:command name="goto" value="zu"/>
- <cd:command name="atpage" value="aufseite"/>
- <cd:command name="somewhere" value="irgendwo"/>
- <cd:command name="navigating" value="navigating"/>
- <cd:command name="ref" value="ref"/>
- <cd:command name="gotobox" value="zurbox"/>
- <cd:command name="gotopage" value="zurseite"/>
- <cd:command name="placeformula" value="platziereformel"/>
- <cd:command name="placesubformula" value="platziereunterformel"/>
- <cd:command name="moveformula" value="moveformula"/>
- <cd:command name="setupformulas" value="stelleformelnein"/>
- <cd:command name="formulanumber" value="formelnummer"/>
- <cd:command name="subformulanumber" value="unterformelnummer"/>
- <cd:command name="leg" value="leg"/>
- <cd:command name="fact" value="geg"/>
- <cd:command name="mathematics" value="mathematik"/>
- <cd:command name="dimension" value="dimension"/>
- <cd:command name="nodimension" value="keindimension"/>
- <cd:command name="startenvironment" value="startumgebung"/>
- <cd:command name="stopenvironment" value="stopumgebung"/>
- <cd:command name="startcomponent" value="startkomponente"/>
- <cd:command name="stopcomponent" value="stopkomponente"/>
- <cd:command name="startproduct" value="startprodukt"/>
- <cd:command name="stopproduct" value="stopprodukt"/>
- <cd:command name="startproject" value="startprojekt"/>
- <cd:command name="stopproject" value="stopprojekt"/>
- <cd:command name="setups" value="einstellungen"/>
- <cd:command name="project" value="projekt"/>
- <cd:command name="component" value="komponente"/>
- <cd:command name="product" value="produkt"/>
- <cd:command name="environment" value="umgebung"/>
- <cd:command name="nomorefiles" value="keinedateienmehr"/>
- <cd:command name="getbuffer" value="holepuffer"/>
- <cd:command name="setupbuffer" value="stellepufferein"/>
- <cd:command name="typebuffer" value="tippepuffer"/>
- <cd:command name="definebuffer" value="definierepuffer"/>
- <cd:command name="unitmeaning" value="bedeutung"/>
- <cd:command name="infull" value="volleswort"/>
- <cd:command name="quotation" value="zitat"/>
- <cd:command name="quote" value="zitieren"/>
- <cd:command name="startquotation" value="startzitat"/>
- <cd:command name="stopquotation" value="stopzitat"/>
- <cd:command name="setupquote" value="stellezitierenein"/>
- <cd:command name="define" value="definieren"/>
- <cd:command name="redo" value="wiederholen"/>
- <cd:command name="usecommands" value="verwendebefehl"/>
- <cd:command name="definestartstop" value="definierestartstop"/>
- <cd:command name="setupstartstop" value="setupstartstop"/>
- <cd:command name="startlocal" value="startlokal"/>
- <cd:command name="stoplocal" value="stoplokal"/>
- <cd:command name="startglobal" value="startglobal"/>
- <cd:command name="stopglobal" value="stopglobal"/>
- <cd:command name="macroname" value="name"/>
- <cd:command name="definemakeup" value="definiereumbruch"/>
- <cd:command name="setupmakeup" value="stelleumbruchein"/>
- <cd:command name="startmakeup" value="startumbruch"/>
- <cd:command name="stopmakeup" value="stopumbruch"/>
- <cd:command name="useexternalsoundtrack" value="verwendeexternestonstueck"/>
- <cd:command name="useexternalfile" value="verwendeexternedatei"/>
- <cd:command name="useexternalfiles" value="verwendeexternedateien"/>
- <cd:command name="referral" value="verweis"/>
- <cd:command name="referraldate" value="verweisdatum"/>
- <cd:command name="high" value="hoch"/>
- <cd:command name="lohi" value="tiho"/>
- <cd:command name="low" value="tief"/>
- <cd:command name="fraction" value="bruch"/>
- <cd:command name="chem" value="chem"/>
- <cd:command name="startopposite" value="startgegenueber"/>
- <cd:command name="stopopposite" value="stopgegenueber"/>
- <cd:command name="setupoppositeplacing" value="stellegegenueberplatzierenein"/>
- <cd:command name="startpositioning" value="startpositionieren"/>
- <cd:command name="stoppositioning" value="stoppositionieren"/>
- <cd:command name="position" value="position"/>
- <cd:command name="setuppositioning" value="stellepositionierenein"/>
- <cd:command name="rotate" value="drehen"/>
- <cd:command name="setuprotate" value="stelledrehenein"/>
- <cd:command name="mirror" value="spiegeln"/>
- <cd:command name="scale" value="format"/>
- <cd:command name="setupnumbering" value="stellenummerierungein"/>
- <cd:command name="reset" value="ruecksetzten"/>
- <cd:command name="setuppublications" value="stellepublikationein"/>
- <cd:command name="publication" value="publikation"/>
- <cd:command name="definehbox" value="definierehbox"/>
- <cd:command name="adding" value="zusatz"/>
- <cd:command name="periods" value="punkt"/>
- <cd:command name="setuphyphenmark" value="stellebindestrichein"/>
- <cd:command name="setupinterlinespace" value="stellezeilenabstandein"/>
- <cd:command name="setupspacing" value="stellespatiumein"/>
- <cd:command name="setuptolerance" value="stelletoleranzein"/>
- <cd:command name="setupsystem" value="stellesystemein"/>
- <cd:command name="usepath" value="benutzeverzeichnis"/>
- <cd:command name="defineparagraphs" value="definiereabsaetze"/>
- <cd:command name="setupparagraphs" value="stelleabsaetzeein"/>
- <cd:command name="donttest" value="keintest"/>
- <cd:command name="setupcomment" value="stellekommentarein"/>
- <cd:command name="comment" value="kommentar"/>
- <cd:command name="definefield" value="definierefeld"/>
- <cd:command name="definemainfield" value="definierehauptfeld"/>
- <cd:command name="definesubfield" value="definieresubfeld"/>
- <cd:command name="clonefield" value="klonierefeld"/>
- <cd:command name="copyfield" value="kopierefeld"/>
- <cd:command name="setupfield" value="stellefeldein"/>
- <cd:command name="setupfields" value="stellefelderin"/>
- <cd:command name="field" value="feld"/>
- <cd:command name="fitfield" value="passendfeld"/>
- <cd:command name="logfields" value="registrierefelder"/>
- <cd:command name="showfields" value="zeigefelder"/>
- <cd:command name="tooltip" value="tooltip"/>
- <cd:command name="fillinfield" value="ausfuellfeld"/>
- <cd:command name="definefieldstack" value="definierefeldstapel"/>
- <cd:command name="fieldstack" value="feldstapel"/>
- <cd:command name="setupforms" value="setupforms"/>
- <cd:command name="setupclipping" value="stelleausschnittein"/>
- <cd:command name="clip" value="ausschnitt"/>
- <cd:command name="placelegend" value="platzierelegende"/>
- <cd:command name="setuplegend" value="stellelegendeein"/>
- <cd:command name="setuppagecomment" value="stelleseitenkommentarein"/>
- <cd:command name="setupstrut" value="setupstrut"/>
- <cd:command name="definerule" value="definerule"/>
- <cd:command name="placerule" value="placerule"/>
- <cd:command name="setuprule" value="setuprule"/>
- <cd:command name="definetextvariable" value="definetextvariable"/>
- <cd:command name="setuptextvariable" value="setuptextvariable"/>
- <cd:command name="settextvariable" value="settextvariable"/>
- <cd:command name="placetextvariable" value="placetextvariable"/>
- <cd:command name="textvariable" value="textvariable"/>
- <cd:command name="definetextposition" value="definetextposition"/>
- <cd:command name="setuptextposition" value="setuptextposition"/>
- <cd:command name="positiontext" value="positiontext"/>
- <cd:command name="definerawfont" value="definerawfont"/>
- <cd:command name="switchtorawfont" value="switchtorawfont"/>
- <cd:command name="placeheadtext" value="placeheadtext"/>
- <cd:command name="placeheadnumber" value="placeheadnumber"/>
- <cd:command name="definepagebreak" value="definepagebreak"/>
- <cd:command name="definecolumnbreak" value="definecolumnbreak"/>
- <cd:command name="definemathalignment" value="definemathalignment"/>
- <cd:command name="setupmathalignment" value="setupmathalignment"/>
- </cd:commands>
-
- <cd:commands>
- <cd:command name="setupitemgroups" value="stelleaufzaehlungenein"/>
- </cd:commands>
-
- <cd:commands>
- <cd:command name="topheight" value="hoeheoben"/>
- <cd:command name="topdistance" value="abstandoben"/>
- <cd:command name="headerheight" value="kopfzeilenhoehe"/>
- <cd:command name="headerdistance" value="kopfzeilenabstand"/>
- <cd:command name="textheight" value="texthoehe"/>
- <cd:command name="footerdistance" value="fusszeileabstand"/>
- <cd:command name="footerheight" value="fusszeilenhoehe"/>
- <cd:command name="bottomdistance" value="abstandunten"/>
- <cd:command name="bottomheight" value="hoeheunten"/>
- <cd:command name="marginwidth" value="marginalbreite"/>
- <cd:command name="leftmarginwidth" value="linkemarginalbreite"/>
- <cd:command name="rightmarginwidth" value="rechtemarginalbreite"/>
- <cd:command name="margindistance" value="marginalafstand"/>
- <cd:command name="leftmargindistance" value="linkemarginalafstand"/>
- <cd:command name="rightmargindistance" value="rechtemarginalafstand"/>
- <cd:command name="edgewidth" value="randbreite"/>
- <cd:command name="leftedgewidth" value="breitelinkerrand"/>
- <cd:command name="rightedgewidth" value="breiterechterrand"/>
- <cd:command name="edgedistance" value="randabstand"/>
- <cd:command name="leftedgedistance" value="abstandlinkerrand"/>
- <cd:command name="rightedgedistance" value="abstandrechterrand"/>
- <cd:command name="innermarginwidth" value="innermarginwidth"/>
- <cd:command name="outermarginwidth" value="outermarginwidth"/>
- <cd:command name="innermargindistance" value="innermargindistance"/>
- <cd:command name="outermargindistance" value="outermargindistance"/>
- <cd:command name="inneredgewidth" value="inneredgewidth"/>
- <cd:command name="outeredgewidth" value="outeredgewidth"/>
- <cd:command name="inneredgedistance" value="inneredgedistance"/>
- <cd:command name="outeredgedistance" value="outeredgedistance"/>
- <cd:command name="textwidth" value="textbreite"/>
- <cd:command name="makeupwidth" value="satzbreite"/>
- <cd:command name="makeupheight" value="satzhoehe"/>
- <cd:command name="topspace" value="kopfweite"/>
- <cd:command name="bottomspace" value="bottomspace"/>
- <cd:command name="backspace" value="rumpfweite"/>
- <cd:command name="cutspace" value="cutspace"/>
- <cd:command name="paperwidth" value="papierbreite"/>
- <cd:command name="paperheight" value="papierhoehe"/>
- <cd:command name="printpaperwidth" value="printpapierbreite"/>
- <cd:command name="printpaperheight" value="printpapierhoehe"/>
- <cd:command name="pageoffset" value="pageoffset"/>
- <cd:command name="pagedepth" value="pagedepth"/>
- <cd:command name="headlevel" value="kopfniveau"/>
- <cd:command name="linewidth" value="liniendicke"/>
- <cd:command name="totalnumberofpages" value="gesamtseitenanzahl"/>
- <cd:command name="numberofsubpages" value="numberofsubpages"/>
- <cd:command name="useXMLfilter" value="useXMLfilter"/>
- <cd:command name="definecolumnset" value="definecolumnset"/>
- <cd:command name="setupcolumnset" value="setupcolumnset"/>
- <cd:command name="startcolumnset" value="startcolumnset"/>
- <cd:command name="stopcolumnset" value="stopcolumnset"/>
- <cd:command name="setupcolumnsetlines" value="setupcolumnsetlines"/>
- <cd:command name="setupcolumnsetstart" value="setupcolumnsetstart"/>
- <cd:command name="startcolumnmakeup" value="startcolumnmakeup"/>
- <cd:command name="stopcolumnmakeup" value="stopcolumnmakeup"/>
- <cd:command name="usetypescript" value="usetypescript"/>
- <cd:command name="usetypescriptfile" value="usetypescriptfile"/>
- </cd:commands>
-
- <cd:commands>
- <cd:command name="startdocument" value="startdokument"/>
- <cd:command name="stopdocument" value="stopdokument"/>
- <cd:command name="startoverzicht" value="startueberblick"/>
- <cd:command name="stopoverzicht" value="stopueberblick"/>
- <cd:command name="label" value="label"/>
- <cd:command name="labels" value="labels"/>
- <cd:command name="domicile" value="wohnort"/>
- </cd:commands>
-
-</cd:interface>
+</cd:interface> \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/interface/keys-en.xml b/Master/texmf-dist/tex/context/interface/keys-en.xml
index b627027a9b4..2b7c68915c6 100644
--- a/Master/texmf-dist/tex/context/interface/keys-en.xml
+++ b/Master/texmf-dist/tex/context/interface/keys-en.xml
@@ -1,1656 +1,1649 @@
-<?xml version="1.0"?>
+<?xml version='1.0'?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="en" version="2008.05.21 15:21">
+<cd:interface xmlns:cd='http://www.pragma-ade.com/commands' name='context' language='en' version='2008.10.21 19:42'>
- <cd:variables>
- <cd:variable name="lesshyphenation" value="lesshyphenation"/>
- <cd:variable name="morehyphenation" value="morehyphenation"/>
- </cd:variables>
+ <!-- definitions for interface variables for language en -->
- <cd:variables>
- <cd:variable name="one" value="one"/>
- <cd:variable name="two" value="two"/>
- <cd:variable name="three" value="three"/>
- <cd:variable name="four" value="four"/>
- <cd:variable name="five" value="five"/>
- </cd:variables>
+ <cd:variables>
+ <cd:variable name='Addition' value='Addition'/>
+ <cd:variable name='Balloon' value='Balloon'/>
+ <cd:variable name='Character' value='Character'/>
+ <cd:variable name='Characters' value='Characters'/>
+ <cd:variable name='CloseDocument' value='CloseDocument'/>
+ <cd:variable name='ExitViewer' value='ExitViewer'/>
+ <cd:variable name='FirstPage' value='FirstPage'/>
+ <cd:variable name='FitHeight' value='FitHeight'/>
+ <cd:variable name='FitWidth' value='FitWidth'/>
+ <cd:variable name='GotoPage' value='GotoPage'/>
+ <cd:variable name='Greek' value='Greek'/>
+ <cd:variable name='Help' value='Help'/>
+ <cd:variable name='HideField' value='HideField'/>
+ <cd:variable name='HideLayer' value='HideLayer'/>
+ <cd:variable name='Key' value='Key'/>
+ <cd:variable name='LastPage' value='LastPage'/>
+ <cd:variable name='LoadForm' value='LoadForm'/>
+ <cd:variable name='MONTH' value='MONTH'/>
+ <cd:variable name='New' value='New'/>
+ <cd:variable name='NextJump' value='NextJump'/>
+ <cd:variable name='NextPage' value='NextPage'/>
+ <cd:variable name='Numbers' value='Numbers'/>
+ <cd:variable name='OpenNamedDocument' value='OpenNamedDocument'/>
+ <cd:variable name='Paragraph' value='Paragraph'/>
+ <cd:variable name='PauseMovie' value='PauseMovie'/>
+ <cd:variable name='PauseRendering' value='PauseRendering'/>
+ <cd:variable name='PauseSound' value='PauseSound'/>
+ <cd:variable name='PreviousJump' value='PreviousJump'/>
+ <cd:variable name='PreviousPage' value='PreviousPage'/>
+ <cd:variable name='PrintDocument' value='PrintDocument'/>
+ <cd:variable name='Query' value='Query'/>
+ <cd:variable name='QueryAgain' value='QueryAgain'/>
+ <cd:variable name='ResetForm' value='ResetForm'/>
+ <cd:variable name='ResumeMovie' value='ResumeMovie'/>
+ <cd:variable name='ResumeRendering' value='ResumeRendering'/>
+ <cd:variable name='ResumeSound' value='ResumeSound'/>
+ <cd:variable name='Romannumerals' value='Romannumerals'/>
+ <cd:variable name='SaveDocument' value='SaveDocument'/>
+ <cd:variable name='SaveForm' value='SaveForm'/>
+ <cd:variable name='SaveNamedDocument' value='SaveNamedDocument'/>
+ <cd:variable name='SearchAgain' value='SearchAgain'/>
+ <cd:variable name='SearchDocument' value='SearchDocument'/>
+ <cd:variable name='ShowBookmarks' value='ShowBookmarks'/>
+ <cd:variable name='ShowField' value='ShowField'/>
+ <cd:variable name='ShowThumbs' value='ShowThumbs'/>
+ <cd:variable name='StartMovie' value='StartMovie'/>
+ <cd:variable name='StartRendering' value='StartRendering'/>
+ <cd:variable name='StartSound' value='StartSound'/>
+ <cd:variable name='StopMovie' value='StopMovie'/>
+ <cd:variable name='StopRendering' value='StopRendering'/>
+ <cd:variable name='StopSound' value='StopSound'/>
+ <cd:variable name='SubmitForm' value='SubmitForm'/>
+ <cd:variable name='ToggleLayer' value='ToggleLayer'/>
+ <cd:variable name='ToggleViewer' value='ToggleViewer'/>
+ <cd:variable name='URL' value='URL'/>
+ <cd:variable name='VideLayer' value='VideLayer'/>
+ <cd:variable name='ViewerHelp' value='ViewerHelp'/>
+ <cd:variable name='WEEKDAY' value='WEEKDAY'/>
+ <cd:variable name='WORD' value='WORD'/>
+ <cd:variable name='abbreviation' value='abbreviation'/>
+ <cd:variable name='abbreviations' value='abbreviations'/>
+ <cd:variable name='absolute' value='absolute'/>
+ <cd:variable name='action' value='action'/>
+ <cd:variable name='after' value='after'/>
+ <cd:variable name='all' value='all'/>
+ <cd:variable name='always' value='always'/>
+ <cd:variable name='answerarea' value='answerarea'/>
+ <cd:variable name='appendices' value='appendices'/>
+ <cd:variable name='appendix' value='appendix'/>
+ <cd:variable name='april' value='April'/>
+ <cd:variable name='atmargin' value='atmargin'/>
+ <cd:variable name='atpage' value='atpage'/>
+ <cd:variable name='august' value='August'/>
+ <cd:variable name='auto' value='auto'/>
+ <cd:variable name='autointro' value='autointro'/>
+ <cd:variable name='back' value='back'/>
+ <cd:variable name='background' value='background'/>
+ <cd:variable name='backmatter' value='backmatter'/>
+ <cd:variable name='backpart' value='backpart'/>
+ <cd:variable name='backspace' value='backspace'/>
+ <cd:variable name='backward' value='backward'/>
+ <cd:variable name='before' value='before'/>
+ <cd:variable name='big' value='big'/>
+ <cd:variable name='bigbodyfont' value='bigbodyfont'/>
+ <cd:variable name='bigpreference' value='bigpreference'/>
+ <cd:variable name='blank' value='blank'/>
+ <cd:variable name='blockquote' value='blockquote'/>
+ <cd:variable name='bodymatter' value='bodymatter'/>
+ <cd:variable name='bodypart' value='bodypart'/>
+ <cd:variable name='bold' value='bold'/>
+ <cd:variable name='bolditalic' value='bolditalic'/>
+ <cd:variable name='boldslanted' value='boldslanted'/>
+ <cd:variable name='bookmark' value='bookmark'/>
+ <cd:variable name='both' value='both'/>
+ <cd:variable name='bottom' value='bottom'/>
+ <cd:variable name='brief' value='brief'/>
+ <cd:variable name='broad' value='broad'/>
+ <cd:variable name='buffer' value='buffer'/>
+ <cd:variable name='by' value='by'/>
+ <cd:variable name='calligraphic' value='calligraphic'/>
+ <cd:variable name='cap' value='cap'/>
+ <cd:variable name='capital' value='capital'/>
+ <cd:variable name='center' value='center'/>
+ <cd:variable name='chapter' value='chapter'/>
+ <cd:variable name='character' value='character'/>
+ <cd:variable name='characters' value='characters'/>
+ <cd:variable name='color' value='color'/>
+ <cd:variable name='column' value='column'/>
+ <cd:variable name='columns' value='columns'/>
+ <cd:variable name='command' value='command'/>
+ <cd:variable name='commands' value='commands'/>
+ <cd:variable name='comment' value='comment'/>
+ <cd:variable name='component' value='component'/>
+ <cd:variable name='concept' value='concept'/>
+ <cd:variable name='content' value='content'/>
+ <cd:variable name='contents' value='contents'/>
+ <cd:variable name='continue' value='continue'/>
+ <cd:variable name='controls' value='controls'/>
+ <cd:variable name='conversion' value='conversion'/>
+ <cd:variable name='current' value='current'/>
+ <cd:variable name='cutspace' value='cutspace'/>
+ <cd:variable name='date' value='date'/>
+ <cd:variable name='day' value='day'/>
+ <cd:variable name='december' value='December'/>
+ <cd:variable name='default' value='default'/>
+ <cd:variable name='depth' value='depth'/>
+ <cd:variable name='description' value='description'/>
+ <cd:variable name='disable' value='disable'/>
+ <cd:variable name='display' value='display'/>
+ <cd:variable name='dot' value='dot'/>
+ <cd:variable name='doublesided' value='doublesided'/>
+ <cd:variable name='each' value='each'/>
+ <cd:variable name='edge' value='edge'/>
+ <cd:variable name='empty' value='empty'/>
+ <cd:variable name='endnote' value='endnote'/>
+ <cd:variable name='enumeration' value='enumeration'/>
+ <cd:variable name='environment' value='environment'/>
+ <cd:variable name='even' value='even'/>
+ <cd:variable name='external' value='external'/>
+ <cd:variable name='fact' value='fact'/>
+ <cd:variable name='february' value='February'/>
+ <cd:variable name='figure' value='figure'/>
+ <cd:variable name='figures' value='figures'/>
+ <cd:variable name='file' value='file'/>
+ <cd:variable name='final' value='final'/>
+ <cd:variable name='first' value='first'/>
+ <cd:variable name='firstcolumn' value='firstcolumn'/>
+ <cd:variable name='firstpage' value='firstpage'/>
+ <cd:variable name='firstsubpage' value='firstsubpage'/>
+ <cd:variable name='fit' value='fit'/>
+ <cd:variable name='five' value='five'/>
+ <cd:variable name='fix' value='fix'/>
+ <cd:variable name='fixed' value='fixed'/>
+ <cd:variable name='flexible' value='flexible'/>
+ <cd:variable name='float' value='float'/>
+ <cd:variable name='flushinner' value='flushinner'/>
+ <cd:variable name='flushleft' value='flushleft'/>
+ <cd:variable name='flushouter' value='flushouter'/>
+ <cd:variable name='flushright' value='flushright'/>
+ <cd:variable name='footer' value='footer'/>
+ <cd:variable name='footnote' value='footnote'/>
+ <cd:variable name='force' value='force'/>
+ <cd:variable name='foreground' value='foreground'/>
+ <cd:variable name='formeel' value='formeel'/>
+ <cd:variable name='formula' value='formula'/>
+ <cd:variable name='formulae' value='formulae'/>
+ <cd:variable name='forward' value='forward'/>
+ <cd:variable name='four' value='four'/>
+ <cd:variable name='frame' value='frame'/>
+ <cd:variable name='framedtext' value='framedtext'/>
+ <cd:variable name='friday' value='friday'/>
+ <cd:variable name='frontmatter' value='frontmatter'/>
+ <cd:variable name='frontpart' value='frontpart'/>
+ <cd:variable name='global' value='global'/>
+ <cd:variable name='graphic' value='graphic'/>
+ <cd:variable name='graphics' value='graphics'/>
+ <cd:variable name='gray' value='gray'/>
+ <cd:variable name='greek' value='greek'/>
+ <cd:variable name='grid' value='grid'/>
+ <cd:variable name='halfline' value='halfline'/>
+ <cd:variable name='handwritten' value='handwritten'/>
+ <cd:variable name='hang' value='hang'/>
+ <cd:variable name='hanging' value='hanging'/>
+ <cd:variable name='head' value='head'/>
+ <cd:variable name='header' value='header'/>
+ <cd:variable name='height' value='height'/>
+ <cd:variable name='helptext' value='helptext'/>
+ <cd:variable name='hencefore' value='hencefore'/>
+ <cd:variable name='here' value='here'/>
+ <cd:variable name='hereafter' value='hereafter'/>
+ <cd:variable name='hidden' value='hidden'/>
+ <cd:variable name='hiding' value='hiding'/>
+ <cd:variable name='high' value='high'/>
+ <cd:variable name='horizontal' value='horizontal'/>
+ <cd:variable name='hyphenated' value='hyphenated'/>
+ <cd:variable name='hz' value='hz'/>
+ <cd:variable name='inbetween' value='inbetween'/>
+ <cd:variable name='index' value='index'/>
+ <cd:variable name='indices' value='indices'/>
+ <cd:variable name='informeel' value='informeel'/>
+ <cd:variable name='inherit' value='inherit'/>
+ <cd:variable name='inleft' value='inleft'/>
+ <cd:variable name='inmargin' value='inmargin'/>
+ <cd:variable name='inner' value='inner'/>
+ <cd:variable name='inneredge' value='inneredge'/>
+ <cd:variable name='innermargin' value='innermargin'/>
+ <cd:variable name='inright' value='inright'/>
+ <cd:variable name='interaction' value='interaction'/>
+ <cd:variable name='interactionmenu' value='interactionmenu'/>
+ <cd:variable name='intermezzi' value='intermezzi'/>
+ <cd:variable name='intermezzo' value='intermezzo'/>
+ <cd:variable name='intext' value='intext'/>
+ <cd:variable name='intro' value='intro'/>
+ <cd:variable name='italic' value='italic'/>
+ <cd:variable name='italicbold' value='italicbold'/>
+ <cd:variable name='item' value='item'/>
+ <cd:variable name='itemize' value='itemize'/>
+ <cd:variable name='its' value='its'/>
+ <cd:variable name='january' value='January'/>
+ <cd:variable name='joinedup' value='joinedup'/>
+ <cd:variable name='july' value='July'/>
+ <cd:variable name='june' value='June'/>
+ <cd:variable name='keep' value='keep'/>
+ <cd:variable name='knockout' value='knockout'/>
+ <cd:variable name='label' value='label'/>
+ <cd:variable name='landscape' value='landscape'/>
+ <cd:variable name='last' value='last'/>
+ <cd:variable name='lastcolumn' value='lastcolumn'/>
+ <cd:variable name='lastpage' value='lastpage'/>
+ <cd:variable name='lastpagenumber' value='lastpagenumber'/>
+ <cd:variable name='lastsubpage' value='lastsubpage'/>
+ <cd:variable name='layer' value='layer'/>
+ <cd:variable name='left' value='left'/>
+ <cd:variable name='leftedge' value='leftedge'/>
+ <cd:variable name='lefthanging' value='lefthanging'/>
+ <cd:variable name='leftmargin' value='leftmargin'/>
+ <cd:variable name='leftpage' value='leftpage'/>
+ <cd:variable name='lefttoright' value='lefttoright'/>
+ <cd:variable name='legend' value='legend'/>
+ <cd:variable name='lesshyphenation' value='lesshyphenation'/>
+ <cd:variable name='line' value='line'/>
+ <cd:variable name='linenote' value='linenote'/>
+ <cd:variable name='lines' value='lines'/>
+ <cd:variable name='list' value='list'/>
+ <cd:variable name='local' value='local'/>
+ <cd:variable name='localenvironment' value='localenvironment'/>
+ <cd:variable name='logo' value='logo'/>
+ <cd:variable name='logos' value='logos'/>
+ <cd:variable name='lohi' value='lohi'/>
+ <cd:variable name='loose' value='loose'/>
+ <cd:variable name='low' value='low'/>
+ <cd:variable name='ls' value='ls'/>
+ <cd:variable name='makeup' value='makeup'/>
+ <cd:variable name='mar' value='mar'/>
+ <cd:variable name='march' value='March'/>
+ <cd:variable name='margin' value='margin'/>
+ <cd:variable name='marginedge' value='marginedge'/>
+ <cd:variable name='margintitle' value='margintitle'/>
+ <cd:variable name='marking' value='marking'/>
+ <cd:variable name='mathalignment' value='mathalignment'/>
+ <cd:variable name='mathcases' value='mathcases'/>
+ <cd:variable name='mathmatrix' value='mathmatrix'/>
+ <cd:variable name='max' value='max'/>
+ <cd:variable name='may' value='May'/>
+ <cd:variable name='mediaeval' value='mediaeval'/>
+ <cd:variable name='medium' value='medium'/>
+ <cd:variable name='middle' value='middle'/>
+ <cd:variable name='min' value='min'/>
+ <cd:variable name='minheight' value='minheight'/>
+ <cd:variable name='minwidth' value='minwidth'/>
+ <cd:variable name='mirrored' value='mirrored'/>
+ <cd:variable name='monday' value='monday'/>
+ <cd:variable name='mono' value='mono'/>
+ <cd:variable name='month' value='month'/>
+ <cd:variable name='morehyphenation' value='morehyphenation'/>
+ <cd:variable name='name' value='name'/>
+ <cd:variable name='narrow' value='narrow'/>
+ <cd:variable name='negative' value='negative'/>
+ <cd:variable name='never' value='never'/>
+ <cd:variable name='new' value='new'/>
+ <cd:variable name='next' value='next'/>
+ <cd:variable name='nextevenpage' value='nextevenpage'/>
+ <cd:variable name='nextoddpage' value='nextoddpage'/>
+ <cd:variable name='nextpage' value='nextpage'/>
+ <cd:variable name='nextsubpage' value='nextsubpage'/>
+ <cd:variable name='no' value='no'/>
+ <cd:variable name='nocheck' value='nocheck'/>
+ <cd:variable name='nofit' value='nofit'/>
+ <cd:variable name='nogrid' value='nogrid'/>
+ <cd:variable name='nohz' value='nohz'/>
+ <cd:variable name='nomarking' value='nomarking'/>
+ <cd:variable name='none' value='none'/>
+ <cd:variable name='nonumber' value='nonumber'/>
+ <cd:variable name='normal' value='normal'/>
+ <cd:variable name='nospacing' value='nospacing'/>
+ <cd:variable name='not' value='not'/>
+ <cd:variable name='note' value='note'/>
+ <cd:variable name='nothanging' value='nothanging'/>
+ <cd:variable name='nothyphenated' value='nothyphenated'/>
+ <cd:variable name='november' value='November'/>
+ <cd:variable name='nowhere' value='nowhere'/>
+ <cd:variable name='nowhite' value='nowhite'/>
+ <cd:variable name='number' value='number'/>
+ <cd:variable name='numbers' value='numbers'/>
+ <cd:variable name='october' value='October'/>
+ <cd:variable name='odd' value='odd'/>
+ <cd:variable name='off' value='off'/>
+ <cd:variable name='offset' value='offset'/>
+ <cd:variable name='old' value='old'/>
+ <cd:variable name='on' value='on'/>
+ <cd:variable name='one' value='one'/>
+ <cd:variable name='opposite' value='opposite'/>
+ <cd:variable name='outer' value='outer'/>
+ <cd:variable name='outeredge' value='outeredge'/>
+ <cd:variable name='outermargin' value='outermargin'/>
+ <cd:variable name='overlay' value='overlay'/>
+ <cd:variable name='overprint' value='overprint'/>
+ <cd:variable name='packed' value='packed'/>
+ <cd:variable name='page' value='page'/>
+ <cd:variable name='pagecomment' value='pagecomment'/>
+ <cd:variable name='pagenumber' value='pagenumber'/>
+ <cd:variable name='paper' value='paper'/>
+ <cd:variable name='paragraph' value='paragraph'/>
+ <cd:variable name='part' value='part'/>
+ <cd:variable name='positive' value='positive'/>
+ <cd:variable name='postponing' value='postponing'/>
+ <cd:variable name='postscript' value='postscript'/>
+ <cd:variable name='preference' value='preference'/>
+ <cd:variable name='preview' value='preview'/>
+ <cd:variable name='previous' value='previous'/>
+ <cd:variable name='previousevenpage' value='previousevenpage'/>
+ <cd:variable name='previousoddpage' value='previousoddpage'/>
+ <cd:variable name='previouspage' value='previouspage'/>
+ <cd:variable name='previoussubpage' value='previoussubpage'/>
+ <cd:variable name='printable' value='printable'/>
+ <cd:variable name='process' value='process'/>
+ <cd:variable name='product' value='product'/>
+ <cd:variable name='program' value='program'/>
+ <cd:variable name='project' value='project'/>
+ <cd:variable name='protected' value='protected'/>
+ <cd:variable name='quadruple' value='quadruple'/>
+ <cd:variable name='quotation' value='quotation'/>
+ <cd:variable name='quote' value='quote'/>
+ <cd:variable name='ran' value='ran'/>
+ <cd:variable name='random' value='random'/>
+ <cd:variable name='readonly' value='readonly'/>
+ <cd:variable name='rectangular' value='rectangular'/>
+ <cd:variable name='referral' value='referral'/>
+ <cd:variable name='register' value='register'/>
+ <cd:variable name='regular' value='regular'/>
+ <cd:variable name='rekening' value='rekening'/>
+ <cd:variable name='relative' value='relative'/>
+ <cd:variable name='repeat' value='repeat'/>
+ <cd:variable name='required' value='required'/>
+ <cd:variable name='reset' value='reset'/>
+ <cd:variable name='reverse' value='reverse'/>
+ <cd:variable name='right' value='right'/>
+ <cd:variable name='rightedge' value='rightedge'/>
+ <cd:variable name='righthanging' value='righthanging'/>
+ <cd:variable name='rightmargin' value='rightmargin'/>
+ <cd:variable name='rightpage' value='rightpage'/>
+ <cd:variable name='righttoleft' value='righttoleft'/>
+ <cd:variable name='roman' value='roman'/>
+ <cd:variable name='romannumerals' value='romannumerals'/>
+ <cd:variable name='rotate' value='rotate'/>
+ <cd:variable name='rotated' value='rotated'/>
+ <cd:variable name='round' value='round'/>
+ <cd:variable name='row' value='row'/>
+ <cd:variable name='rule' value='rule'/>
+ <cd:variable name='samepage' value='samepage'/>
+ <cd:variable name='sans' value='sans'/>
+ <cd:variable name='sansbold' value='sansbold'/>
+ <cd:variable name='sansserif' value='sansserif'/>
+ <cd:variable name='saturday' value='saturday'/>
+ <cd:variable name='screen' value='screen'/>
+ <cd:variable name='section' value='section'/>
+ <cd:variable name='sectionblockenvironment' value='sectionblockenvironment'/>
+ <cd:variable name='sectionnumber' value='sectionnumber'/>
+ <cd:variable name='see' value='see'/>
+ <cd:variable name='september' value='September'/>
+ <cd:variable name='serif' value='serif'/>
+ <cd:variable name='serried' value='serried'/>
+ <cd:variable name='setups' value='setups'/>
+ <cd:variable name='sheet' value='sheet'/>
+ <cd:variable name='singlesided' value='singlesided'/>
+ <cd:variable name='slanted' value='slanted'/>
+ <cd:variable name='slantedbold' value='slantedbold'/>
+ <cd:variable name='small' value='small'/>
+ <cd:variable name='smallbodyfont' value='smallbodyfont'/>
+ <cd:variable name='smallbold' value='smallbold'/>
+ <cd:variable name='smallbolditalic' value='smallbolditalic'/>
+ <cd:variable name='smallboldslanted' value='smallboldslanted'/>
+ <cd:variable name='smallcaps' value='smallcaps'/>
+ <cd:variable name='smallitalic' value='smallitalic'/>
+ <cd:variable name='smallitalicbold' value='smallitalicbold'/>
+ <cd:variable name='smallnormal' value='smallnormal'/>
+ <cd:variable name='smallslanted' value='smallslanted'/>
+ <cd:variable name='smallslantedbold' value='smallslantedbold'/>
+ <cd:variable name='smalltype' value='smalltype'/>
+ <cd:variable name='somewhere' value='somewhere'/>
+ <cd:variable name='sorted' value='sorted'/>
+ <cd:variable name='space' value='space'/>
+ <cd:variable name='spacing' value='spacing'/>
+ <cd:variable name='speech' value='speech'/>
+ <cd:variable name='split' value='split'/>
+ <cd:variable name='spot' value='spot'/>
+ <cd:variable name='standard' value='standard'/>
+ <cd:variable name='start' value='start'/>
+ <cd:variable name='sticker' value='sticker'/>
+ <cd:variable name='stop' value='stop'/>
+ <cd:variable name='stopper' value='stopper'/>
+ <cd:variable name='stretch' value='stretch'/>
+ <cd:variable name='strict' value='strict'/>
+ <cd:variable name='strong' value='sterk'/>
+ <cd:variable name='strut' value='strut'/>
+ <cd:variable name='sub' value='sub'/>
+ <cd:variable name='subbackward' value='subbackward'/>
+ <cd:variable name='subformula' value='subformula'/>
+ <cd:variable name='subforward' value='subforward'/>
+ <cd:variable name='subject' value='subject'/>
+ <cd:variable name='subpage' value='subpage'/>
+ <cd:variable name='subsection' value='subsection'/>
+ <cd:variable name='subsubject' value='subsubject'/>
+ <cd:variable name='subsubsection' value='subsubsection'/>
+ <cd:variable name='subsubsubject' value='subsubsubject'/>
+ <cd:variable name='subsubsubsection' value='subsubsubsection'/>
+ <cd:variable name='subsubsubsubject' value='subsubsubsubject'/>
+ <cd:variable name='subsubsubsubsection' value='subsubsubsubsection'/>
+ <cd:variable name='subsubsubsubsubject' value='subsubsubsubsubject'/>
+ <cd:variable name='subsubsubsubsubsection' value='subsubsubsubsubsection'/>
+ <cd:variable name='subsubsubsubsubsubject' value='subsubsubsubsubsubject'/>
+ <cd:variable name='subsubsubsubsubsubsection' value='subsubsubsubsubsubsection'/>
+ <cd:variable name='subsubsubsubsubsubsubject' value='subsubsubsubsubsubsubject'/>
+ <cd:variable name='subsubsubsubsubsubsubsection' value='subsubsubsubsubsubsubsection'/>
+ <cd:variable name='subsubsubsubsubsubsubsubject' value='subsubsubsubsubsubsubsubject'/>
+ <cd:variable name='subsubsubsubsubsubsubsubsection' value='subsubsubsubsubsubsubsubsection'/>
+ <cd:variable name='subsubsubsubsubsubsubsubsubject' value='subsubsubsubsubsubsubsubsubject'/>
+ <cd:variable name='subsubsubsubsubsubsubsubsubsection' value='subsubsubsubsubsubsubsubsubsection'/>
+ <cd:variable name='subsubsubsubsubsubsubsubsubsubject' value='subsubsubsubsubsubsubsubsubsubject'/>
+ <cd:variable name='sunday' value='sunday'/>
+ <cd:variable name='support' value='support'/>
+ <cd:variable name='sym' value='sym'/>
+ <cd:variable name='symbol' value='symbol'/>
+ <cd:variable name='synchronize' value='synchronize'/>
+ <cd:variable name='system' value='system'/>
+ <cd:variable name='table' value='table'/>
+ <cd:variable name='tablehead' value='tablehead'/>
+ <cd:variable name='tables' value='tables'/>
+ <cd:variable name='tabletail' value='tabletail'/>
+ <cd:variable name='tabulate' value='tabulate'/>
+ <cd:variable name='tabulatehead' value='tabulatehead'/>
+ <cd:variable name='tabulatetail' value='tabulatetail'/>
+ <cd:variable name='tall' value='tall'/>
+ <cd:variable name='teletype' value='teletype'/>
+ <cd:variable name='temporary' value='temporary'/>
+ <cd:variable name='test' value='test'/>
+ <cd:variable name='text' value='text'/>
+ <cd:variable name='three' value='three'/>
+ <cd:variable name='thursday' value='thursday'/>
+ <cd:variable name='title' value='title'/>
+ <cd:variable name='toggle' value='wissel'/>
+ <cd:variable name='tolerant' value='tolerant'/>
+ <cd:variable name='top' value='top'/>
+ <cd:variable name='tuesday' value='tuesday'/>
+ <cd:variable name='two' value='two'/>
+ <cd:variable name='txt' value='txt'/>
+ <cd:variable name='type' value='type'/>
+ <cd:variable name='typing' value='typing'/>
+ <cd:variable name='unavailable' value='unavailable'/>
+ <cd:variable name='unit' value='unit'/>
+ <cd:variable name='units' value='units'/>
+ <cd:variable name='unknown' value='unknown'/>
+ <cd:variable name='unpacked' value='unpacked'/>
+ <cd:variable name='url' value='url'/>
+ <cd:variable name='used' value='used'/>
+ <cd:variable name='value' value='value'/>
+ <cd:variable name='vertical' value='vertical'/>
+ <cd:variable name='very' value='very'/>
+ <cd:variable name='verystrict' value='verystrict'/>
+ <cd:variable name='verytolerant' value='verytolerant'/>
+ <cd:variable name='weak' value='zwak'/>
+ <cd:variable name='wednesday' value='wednesday'/>
+ <cd:variable name='week' value='week'/>
+ <cd:variable name='weekday' value='weekday'/>
+ <cd:variable name='white' value='white'/>
+ <cd:variable name='wide' value='wide'/>
+ <cd:variable name='width' value='width'/>
+ <cd:variable name='xml' value='xml'/>
+ <cd:variable name='year' value='year'/>
+ <cd:variable name='yes' value='yes'/>
+ </cd:variable>
- <cd:variables>
- <cd:variable name="environment" value="environment"/>
- <cd:variable name="component" value="component"/>
- <cd:variable name="product" value="product"/>
- <cd:variable name="project" value="project"/>
- </cd:variables>
+ <!-- definitions for interface constants for language en -->
- <cd:variables>
- <cd:variable name="sunday" value="sunday"/>
- <cd:variable name="monday" value="monday"/>
- <cd:variable name="tuesday" value="tuesday"/>
- <cd:variable name="wednesday" value="wednesday"/>
- <cd:variable name="thursday" value="thursday"/>
- <cd:variable name="friday" value="friday"/>
- <cd:variable name="saturday" value="saturday"/>
- </cd:variables>
+ <cd:constants>
+ <cd:constant name='action' value='action'/>
+ <cd:constant name='address' value='address'/>
+ <cd:constant name='after' value='after'/>
+ <cd:constant name='afterhead' value='afterhead'/>
+ <cd:constant name='afterkey' value='afterkey'/>
+ <cd:constant name='align' value='align'/>
+ <cd:constant name='aligncharacter' value='aligncharacter'/>
+ <cd:constant name='alignmentcharacter' value='alignmentcharacter'/>
+ <cd:constant name='aligntitle' value='aligntitle'/>
+ <cd:constant name='alternative' value='alternative'/>
+ <cd:constant name='apa' value='apa'/>
+ <cd:constant name='arrow' value='arrow'/>
+ <cd:constant name='at' value='at'/>
+ <cd:constant name='author' value='author'/>
+ <cd:constant name='auto' value='auto'/>
+ <cd:constant name='autofile' value='autofile'/>
+ <cd:constant name='autofocus' value='autofocus'/>
+ <cd:constant name='autohang' value='autohang'/>
+ <cd:constant name='autostrut' value='autostrut'/>
+ <cd:constant name='autowidth' value='autowidth'/>
+ <cd:constant name='axis' value='axis'/>
+ <cd:constant name='background' value='background'/>
+ <cd:constant name='backgroundcolor' value='backgroundcolor'/>
+ <cd:constant name='backgroundcorner' value='backgroundcorner'/>
+ <cd:constant name='backgrounddepth' value='backgrounddepth'/>
+ <cd:constant name='backgroundoffset' value='backgroundoffset'/>
+ <cd:constant name='backgroundradius' value='backgroundradius'/>
+ <cd:constant name='backgroundscreen' value='backgroundscreen'/>
+ <cd:constant name='backspace' value='backspace'/>
+ <cd:constant name='balance' value='balance'/>
+ <cd:constant name='before' value='before'/>
+ <cd:constant name='beforehead' value='beforehead'/>
+ <cd:constant name='bet' value='bet'/>
+ <cd:constant name='big' value='big'/>
+ <cd:constant name='blank' value='blank'/>
+ <cd:constant name='blockway' value='blockway'/>
+ <cd:constant name='bodyfont' value='bodyfont'/>
+ <cd:constant name='bookmark' value='bookmark'/>
+ <cd:constant name='bottom' value='bottom'/>
+ <cd:constant name='bottomafter' value='bottomafter'/>
+ <cd:constant name='bottombefore' value='bottombefore'/>
+ <cd:constant name='bottomdistance' value='bottomdistance'/>
+ <cd:constant name='bottomframe' value='bottomframe'/>
+ <cd:constant name='bottomoffset' value='bottomoffset'/>
+ <cd:constant name='bottomspace' value='bottomspace'/>
+ <cd:constant name='bottomstate' value='bottomstate'/>
+ <cd:constant name='cache' value='cache'/>
+ <cd:constant name='calculate' value='calculate'/>
+ <cd:constant name='ccommand' value='ccommand'/>
+ <cd:constant name='click' value='click'/>
+ <cd:constant name='clickin' value='clickin'/>
+ <cd:constant name='clickout' value='clickout'/>
+ <cd:constant name='clipoffset' value='clipoffset'/>
+ <cd:constant name='closeaction' value='closeaction'/>
+ <cd:constant name='closecommand' value='closecommand'/>
+ <cd:constant name='closepageaction' value='closepageaction'/>
+ <cd:constant name='closesymbol' value='closesymbol'/>
+ <cd:constant name='color' value='color'/>
+ <cd:constant name='column' value='column'/>
+ <cd:constant name='columndistance' value='columndistance'/>
+ <cd:constant name='columns' value='columns'/>
+ <cd:constant name='command' value='command'/>
+ <cd:constant name='commandafter' value='commandafter'/>
+ <cd:constant name='commandbefore' value='commandbefore'/>
+ <cd:constant name='commands' value='commands'/>
+ <cd:constant name='component' value='component'/>
+ <cd:constant name='compoundhyphen' value='compoundhyphen'/>
+ <cd:constant name='compress' value='compress'/>
+ <cd:constant name='connector' value='connector'/>
+ <cd:constant name='continue' value='continue'/>
+ <cd:constant name='contrastcolor' value='contrastcolor'/>
+ <cd:constant name='controls' value='controls'/>
+ <cd:constant name='conversion' value='conversion'/>
+ <cd:constant name='convertfile' value='convertfile'/>
+ <cd:constant name='corner' value='corner'/>
+ <cd:constant name='coupling' value='coupling'/>
+ <cd:constant name='couplingway' value='couplingway'/>
+ <cd:constant name='criterium' value='criterium'/>
+ <cd:constant name='current' value='current'/>
+ <cd:constant name='cutspace' value='cutspace'/>
+ <cd:constant name='dash' value='dash'/>
+ <cd:constant name='dat' value='dat'/>
+ <cd:constant name='date' value='date'/>
+ <cd:constant name='deepnumbercommand' value='deepnumbercommand'/>
+ <cd:constant name='deeptextcommand' value='deeptextcommand'/>
+ <cd:constant name='default' value='default'/>
+ <cd:constant name='delay' value='delay'/>
+ <cd:constant name='depth' value='depth'/>
+ <cd:constant name='depthcorrection' value='depthcorrection'/>
+ <cd:constant name='direction' value='direction'/>
+ <cd:constant name='directory' value='directory'/>
+ <cd:constant name='display' value='display'/>
+ <cd:constant name='distance' value='distance'/>
+ <cd:constant name='dot' value='dot'/>
+ <cd:constant name='doublesided' value='doublesided'/>
+ <cd:constant name='dummy' value='dummy'/>
+ <cd:constant name='dx' value='dx'/>
+ <cd:constant name='dy' value='dy'/>
+ <cd:constant name='edge' value='edge'/>
+ <cd:constant name='edgedistance' value='edgedistance'/>
+ <cd:constant name='empty' value='empty'/>
+ <cd:constant name='equalheight' value='equalheight'/>
+ <cd:constant name='equalwidth' value='equalwidth'/>
+ <cd:constant name='escape' value='escape'/>
+ <cd:constant name='evenmargin' value='evenmargin'/>
+ <cd:constant name='expansion' value='expansion'/>
+ <cd:constant name='extras' value='extras'/>
+ <cd:constant name='factor' value='factor'/>
+ <cd:constant name='fallback' value='fallback'/>
+ <cd:constant name='family' value='family'/>
+ <cd:constant name='fieldbackgroundcolor' value='fieldbackgroundcolor'/>
+ <cd:constant name='fieldframecolor' value='fieldframecolor'/>
+ <cd:constant name='fieldlayer' value='fieldlayer'/>
+ <cd:constant name='fieldoffset' value='fieldoffset'/>
+ <cd:constant name='file' value='file'/>
+ <cd:constant name='filtercommand' value='filtercommand'/>
+ <cd:constant name='focus' value='focus'/>
+ <cd:constant name='focusin' value='focusin'/>
+ <cd:constant name='focusout' value='focusout'/>
+ <cd:constant name='footer' value='footer'/>
+ <cd:constant name='footerdistance' value='footerdistance'/>
+ <cd:constant name='footerstate' value='footerstate'/>
+ <cd:constant name='foregroundcolor' value='foregroundcolor'/>
+ <cd:constant name='foregroundstyle' value='foregroundstyle'/>
+ <cd:constant name='format' value='format'/>
+ <cd:constant name='frame' value='frame'/>
+ <cd:constant name='framecolor' value='framecolor'/>
+ <cd:constant name='framecorner' value='framecorner'/>
+ <cd:constant name='framedepth' value='framedepth'/>
+ <cd:constant name='frameoffset' value='frameoffset'/>
+ <cd:constant name='frameradius' value='frameradius'/>
+ <cd:constant name='frames' value='frames'/>
+ <cd:constant name='from' value='from'/>
+ <cd:constant name='get' value='get'/>
+ <cd:constant name='global' value='global'/>
+ <cd:constant name='grid' value='grid'/>
+ <cd:constant name='hang' value='hang'/>
+ <cd:constant name='headcolor' value='headcolor'/>
+ <cd:constant name='headcommand' value='headcommand'/>
+ <cd:constant name='headconversion' value='headconversion'/>
+ <cd:constant name='header' value='header'/>
+ <cd:constant name='headerdistance' value='headerdistance'/>
+ <cd:constant name='headerstate' value='headerstate'/>
+ <cd:constant name='headlabel' value='headlabel'/>
+ <cd:constant name='headnumber' value='headnumber'/>
+ <cd:constant name='headstyle' value='headstyle'/>
+ <cd:constant name='height' value='height'/>
+ <cd:constant name='hfactor' value='hfactor'/>
+ <cd:constant name='hfil' value='hfil'/>
+ <cd:constant name='hidenumber' value='hidenumber'/>
+ <cd:constant name='hoffset' value='hoffset'/>
+ <cd:constant name='horoffset' value='horoffset'/>
+ <cd:constant name='hyphen' value='hyphen'/>
+ <cd:constant name='icommand' value='icommand'/>
+ <cd:constant name='in' value='in'/>
+ <cd:constant name='inbetween' value='inbetween'/>
+ <cd:constant name='increment' value='increment'/>
+ <cd:constant name='incrementnumber' value='incrementnumber'/>
+ <cd:constant name='indenting' value='indenting'/>
+ <cd:constant name='indentnext' value='indentnext'/>
+ <cd:constant name='indicator' value='indicator'/>
+ <cd:constant name='inner' value='inner'/>
+ <cd:constant name='innermargin' value='innermargin'/>
+ <cd:constant name='inputfile' value='inputfile'/>
+ <cd:constant name='interaction' value='interaction'/>
+ <cd:constant name='interlinespace' value='interlinespace'/>
+ <cd:constant name='itemalign' value='itemalign'/>
+ <cd:constant name='items' value='items'/>
+ <cd:constant name='ken' value='ken'/>
+ <cd:constant name='keyexpansion' value='keyexpansion'/>
+ <cd:constant name='keyword' value='keyword'/>
+ <cd:constant name='label' value='label'/>
+ <cd:constant name='left' value='left'/>
+ <cd:constant name='leftcolor' value='leftcolor'/>
+ <cd:constant name='leftcompoundhyphen' value='leftcompoundhyphen'/>
+ <cd:constant name='leftedge' value='leftedge'/>
+ <cd:constant name='leftedgedistance' value='leftedgedistance'/>
+ <cd:constant name='leftframe' value='leftframe'/>
+ <cd:constant name='lefthyphen' value='lefthyphen'/>
+ <cd:constant name='leftmargin' value='leftmargin'/>
+ <cd:constant name='leftmargindistance' value='leftmargindistance'/>
+ <cd:constant name='leftoffset' value='leftoffset'/>
+ <cd:constant name='leftquotation' value='leftquotation'/>
+ <cd:constant name='leftquote' value='leftquote'/>
+ <cd:constant name='leftsentence' value='leftsentence'/>
+ <cd:constant name='leftspeech' value='leftspeech'/>
+ <cd:constant name='leftstyle' value='leftstyle'/>
+ <cd:constant name='leftsubsentence' value='leftsubsentence'/>
+ <cd:constant name='lefttext' value='lefttext'/>
+ <cd:constant name='leftwidth' value='leftwidth'/>
+ <cd:constant name='level' value='level'/>
+ <cd:constant name='levels' value='levels'/>
+ <cd:constant name='limittext' value='limittext'/>
+ <cd:constant name='line' value='line'/>
+ <cd:constant name='linecorrection' value='linecorrection'/>
+ <cd:constant name='lines' value='lines'/>
+ <cd:constant name='list' value='list'/>
+ <cd:constant name='listtext' value='listtext'/>
+ <cd:constant name='local' value='local'/>
+ <cd:constant name='location' value='location'/>
+ <cd:constant name='logo' value='logo'/>
+ <cd:constant name='logos' value='logos'/>
+ <cd:constant name='marcolor' value='marcolor'/>
+ <cd:constant name='margin' value='margin'/>
+ <cd:constant name='margindistance' value='margindistance'/>
+ <cd:constant name='marginedge' value='marginedge'/>
+ <cd:constant name='marginedgetext' value='marginedgetext'/>
+ <cd:constant name='margintext' value='margintext'/>
+ <cd:constant name='marking' value='marking'/>
+ <cd:constant name='marstyle' value='marstyle'/>
+ <cd:constant name='max' value='max'/>
+ <cd:constant name='maxheight' value='maxheight'/>
+ <cd:constant name='maxwidth' value='maxwidth'/>
+ <cd:constant name='menu' value='menu'/>
+ <cd:constant name='method' value='method'/>
+ <cd:constant name='middle' value='middle'/>
+ <cd:constant name='middlespeech' value='middlespeech'/>
+ <cd:constant name='middletext' value='middletext'/>
+ <cd:constant name='midsentence' value='midsentence'/>
+ <cd:constant name='min' value='min'/>
+ <cd:constant name='mindepth' value='mindepth'/>
+ <cd:constant name='minheight' value='minheight'/>
+ <cd:constant name='minwidth' value='minwidth'/>
+ <cd:constant name='n' value='n'/>
+ <cd:constant name='name' value='name'/>
+ <cd:constant name='nbottom' value='nbottom'/>
+ <cd:constant name='nc' value='nc'/>
+ <cd:constant name='next' value='next'/>
+ <cd:constant name='nl' value='nl'/>
+ <cd:constant name='nleft' value='nleft'/>
+ <cd:constant name='nlines' value='nlines'/>
+ <cd:constant name='norm' value='norm'/>
+ <cd:constant name='nr' value='nr'/>
+ <cd:constant name='nright' value='nright'/>
+ <cd:constant name='ntop' value='ntop'/>
+ <cd:constant name='number' value='number'/>
+ <cd:constant name='numbercolor' value='numbercolor'/>
+ <cd:constant name='numbercommand' value='numbercommand'/>
+ <cd:constant name='numberconversion' value='numberconversion'/>
+ <cd:constant name='numberconversionset' value='numberconversionset'/>
+ <cd:constant name='numberdistance' value='numberdistance'/>
+ <cd:constant name='numbering' value='numbering'/>
+ <cd:constant name='numberorder' value='numberorder'/>
+ <cd:constant name='numberprefix' value='numberprefix'/>
+ <cd:constant name='numbersegments' value='numbersegments'/>
+ <cd:constant name='numberseparator' value='numberseparator'/>
+ <cd:constant name='numberseparatorset' value='numberseparatorset'/>
+ <cd:constant name='numberset' value='numberset'/>
+ <cd:constant name='numberstopper' value='numberstopper'/>
+ <cd:constant name='numberstyle' value='numberstyle'/>
+ <cd:constant name='numberwidth' value='numberwidth'/>
+ <cd:constant name='nx' value='nx'/>
+ <cd:constant name='ny' value='ny'/>
+ <cd:constant name='object' value='object'/>
+ <cd:constant name='obstruction' value='obstruction'/>
+ <cd:constant name='oddmargin' value='oddmargin'/>
+ <cd:constant name='offset' value='offset'/>
+ <cd:constant name='openaction' value='openaction'/>
+ <cd:constant name='openpageaction' value='openpageaction'/>
+ <cd:constant name='option' value='option'/>
+ <cd:constant name='orientation' value='orientation'/>
+ <cd:constant name='outermargin' value='outermargin'/>
+ <cd:constant name='overprint' value='overprint'/>
+ <cd:constant name='ownnumber' value='ownnumber'/>
+ <cd:constant name='page' value='page'/>
+ <cd:constant name='pageboundaries' value='pageboundaries'/>
+ <cd:constant name='pagecolor' value='pagecolor'/>
+ <cd:constant name='pagecommand' value='pagecommand'/>
+ <cd:constant name='pageconversion' value='pageconversion'/>
+ <cd:constant name='pageconversionset' value='pageconversionset'/>
+ <cd:constant name='pagenumber' value='pagenumber'/>
+ <cd:constant name='pageprefix' value='pageprefix'/>
+ <cd:constant name='pageprefixconnector' value='pageprefixconnector'/>
+ <cd:constant name='pageprefixconversion' value='pageprefixconversion'/>
+ <cd:constant name='pageprefixconversionset' value='pageprefixconversionset'/>
+ <cd:constant name='pageprefixsegments' value='pageprefixsegments'/>
+ <cd:constant name='pageprefixseparatorset' value='pageprefixseparatorset'/>
+ <cd:constant name='pageprefixset' value='pageprefixset'/>
+ <cd:constant name='pageprefixstopper' value='pageprefixstopper'/>
+ <cd:constant name='pagesegments' value='pagesegments'/>
+ <cd:constant name='pageseparatorset' value='pageseparatorset'/>
+ <cd:constant name='pageset' value='pageset'/>
+ <cd:constant name='pagestate' value='pagestate'/>
+ <cd:constant name='pagestopper' value='pagestopper'/>
+ <cd:constant name='pagestyle' value='pagestyle'/>
+ <cd:constant name='palet' value='palet'/>
+ <cd:constant name='paper' value='paper'/>
+ <cd:constant name='paragraph' value='paragraph'/>
+ <cd:constant name='place' value='place'/>
+ <cd:constant name='placehead' value='placehead'/>
+ <cd:constant name='placestopper' value='placestopper'/>
+ <cd:constant name='position' value='position'/>
+ <cd:constant name='prefix' value='prefix'/>
+ <cd:constant name='prefixconnector' value='prefixconnector'/>
+ <cd:constant name='prefixconversion' value='prefixconversion'/>
+ <cd:constant name='prefixconversionset' value='prefixconversionset'/>
+ <cd:constant name='prefixsegments' value='prefixsegments'/>
+ <cd:constant name='prefixseparatorset' value='prefixseparatorset'/>
+ <cd:constant name='prefixset' value='prefixset'/>
+ <cd:constant name='prefixstopper' value='prefixstopper'/>
+ <cd:constant name='preset' value='preset'/>
+ <cd:constant name='preview' value='preview'/>
+ <cd:constant name='previous' value='previous'/>
+ <cd:constant name='previousnumber' value='previousnumber'/>
+ <cd:constant name='process' value='process'/>
+ <cd:constant name='radius' value='radius'/>
+ <cd:constant name='random' value='random'/>
+ <cd:constant name='reduction' value='reduction'/>
+ <cd:constant name='ref' value='ref'/>
+ <cd:constant name='reference' value='reference'/>
+ <cd:constant name='referenceprefix' value='referenceprefix'/>
+ <cd:constant name='referencing' value='referencing'/>
+ <cd:constant name='regionin' value='regionin'/>
+ <cd:constant name='regionout' value='regionout'/>
+ <cd:constant name='repeat' value='repeat'/>
+ <cd:constant name='reset' value='reset'/>
+ <cd:constant name='resetnumber' value='resetnumber'/>
+ <cd:constant name='resolution' value='resolution'/>
+ <cd:constant name='right' value='right'/>
+ <cd:constant name='rightcolor' value='rightcolor'/>
+ <cd:constant name='rightcompoundhyphen' value='rightcompoundhyphen'/>
+ <cd:constant name='rightedge' value='rightedge'/>
+ <cd:constant name='rightedgedistance' value='rightedgedistance'/>
+ <cd:constant name='rightframe' value='rightframe'/>
+ <cd:constant name='righthyphen' value='righthyphen'/>
+ <cd:constant name='rightmargin' value='rightmargin'/>
+ <cd:constant name='rightmargindistance' value='rightmargindistance'/>
+ <cd:constant name='rightoffset' value='rightoffset'/>
+ <cd:constant name='rightquotation' value='rightquotation'/>
+ <cd:constant name='rightquote' value='rightquote'/>
+ <cd:constant name='rightsentence' value='rightsentence'/>
+ <cd:constant name='rightspeech' value='rightspeech'/>
+ <cd:constant name='rightstyle' value='rightstyle'/>
+ <cd:constant name='rightsubsentence' value='rightsubsentence'/>
+ <cd:constant name='righttext' value='righttext'/>
+ <cd:constant name='rightwidth' value='rightwidth'/>
+ <cd:constant name='rotation' value='rotation'/>
+ <cd:constant name='rule' value='rule'/>
+ <cd:constant name='rulecolor' value='rulecolor'/>
+ <cd:constant name='rulethickness' value='rulethickness'/>
+ <cd:constant name='samepage' value='samepage'/>
+ <cd:constant name='sample' value='sample'/>
+ <cd:constant name='saveinlist' value='saveinlist'/>
+ <cd:constant name='scale' value='scale'/>
+ <cd:constant name='scope' value='scope'/>
+ <cd:constant name='screen' value='screen'/>
+ <cd:constant name='section' value='section'/>
+ <cd:constant name='sectionconversion' value='sectionconversion'/>
+ <cd:constant name='sectionconversionset' value='sectionconversionset'/>
+ <cd:constant name='sectionnumber' value='sectionnumber'/>
+ <cd:constant name='sectionresetset' value='sectionresetset'/>
+ <cd:constant name='sectionsegments' value='sectionsegments'/>
+ <cd:constant name='sectionseparatorset' value='sectionseparatorset'/>
+ <cd:constant name='sectionset' value='sectionset'/>
+ <cd:constant name='sectionstopper' value='sectionstopper'/>
+ <cd:constant name='separator' value='separator'/>
+ <cd:constant name='set' value='set'/>
+ <cd:constant name='setups' value='setups'/>
+ <cd:constant name='side' value='side'/>
+ <cd:constant name='sidealign' value='sidealign'/>
+ <cd:constant name='sidemethod' value='sidemethod'/>
+ <cd:constant name='sidespaceafter' value='sidespaceafter'/>
+ <cd:constant name='sidespacebefore' value='sidespacebefore'/>
+ <cd:constant name='sign' value='sign'/>
+ <cd:constant name='size' value='size'/>
+ <cd:constant name='small' value='small'/>
+ <cd:constant name='sorttype' value='sorttype'/>
+ <cd:constant name='source' value='source'/>
+ <cd:constant name='space' value='space'/>
+ <cd:constant name='spaceafter' value='spaceafter'/>
+ <cd:constant name='spacebefore' value='spacebefore'/>
+ <cd:constant name='spaceinbetween' value='spaceinbetween'/>
+ <cd:constant name='spacing' value='spacing'/>
+ <cd:constant name='split' value='split'/>
+ <cd:constant name='splitcolor' value='splitcolor'/>
+ <cd:constant name='splitmethod' value='splitmethod'/>
+ <cd:constant name='splitoffset' value='splitoffset'/>
+ <cd:constant name='spot' value='spot'/>
+ <cd:constant name='stack' value='stack'/>
+ <cd:constant name='start' value='start'/>
+ <cd:constant name='state' value='state'/>
+ <cd:constant name='step' value='step'/>
+ <cd:constant name='stop' value='stop'/>
+ <cd:constant name='stopper' value='stopper'/>
+ <cd:constant name='stretch' value='stretch'/>
+ <cd:constant name='strut' value='strut'/>
+ <cd:constant name='style' value='style'/>
+ <cd:constant name='sub' value='sub'/>
+ <cd:constant name='subtitle' value='subtitle'/>
+ <cd:constant name='suffix' value='suffix'/>
+ <cd:constant name='sx' value='sx'/>
+ <cd:constant name='sy' value='sy'/>
+ <cd:constant name='symalign' value='symalign'/>
+ <cd:constant name='symbol' value='symbol'/>
+ <cd:constant name='symbolset' value='symbolset'/>
+ <cd:constant name='symcolor' value='symcolor'/>
+ <cd:constant name='symstyle' value='symstyle'/>
+ <cd:constant name='synonym' value='synonym'/>
+ <cd:constant name='synonymcolor' value='synonymcolor'/>
+ <cd:constant name='synonymcommand' value='synonymcommand'/>
+ <cd:constant name='synonymstyle' value='synonymstyle'/>
+ <cd:constant name='tab' value='tab'/>
+ <cd:constant name='text' value='text'/>
+ <cd:constant name='textcolor' value='textcolor'/>
+ <cd:constant name='textcommand' value='textcommand'/>
+ <cd:constant name='textdistance' value='textdistance'/>
+ <cd:constant name='textlayer' value='textlayer'/>
+ <cd:constant name='textmargin' value='textmargin'/>
+ <cd:constant name='textmethod' value='textmethod'/>
+ <cd:constant name='textseparator' value='textseparator'/>
+ <cd:constant name='textsize' value='textsize'/>
+ <cd:constant name='textstate' value='textstate'/>
+ <cd:constant name='textstyle' value='textstyle'/>
+ <cd:constant name='textwidth' value='textwidth'/>
+ <cd:constant name='title' value='title'/>
+ <cd:constant name='titlecolor' value='titlecolor'/>
+ <cd:constant name='titlecommand' value='titlecommand'/>
+ <cd:constant name='titledistance' value='titledistance'/>
+ <cd:constant name='titleleft' value='titleleft'/>
+ <cd:constant name='titleright' value='titleright'/>
+ <cd:constant name='titlestyle' value='titlestyle'/>
+ <cd:constant name='to' value='to'/>
+ <cd:constant name='tolerance' value='tolerance'/>
+ <cd:constant name='top' value='top'/>
+ <cd:constant name='topdistance' value='topdistance'/>
+ <cd:constant name='topframe' value='topframe'/>
+ <cd:constant name='topoffset' value='topoffset'/>
+ <cd:constant name='topspace' value='topspace'/>
+ <cd:constant name='topstate' value='topstate'/>
+ <cd:constant name='type' value='type'/>
+ <cd:constant name='unit' value='unit'/>
+ <cd:constant name='unknownreference' value='unknownreference'/>
+ <cd:constant name='urlalternative' value='urlalternative'/>
+ <cd:constant name='urlspace' value='urlspace'/>
+ <cd:constant name='validate' value='validate'/>
+ <cd:constant name='vcommand' value='vcommand'/>
+ <cd:constant name='veroffset' value='veroffset'/>
+ <cd:constant name='vfil' value='vfil'/>
+ <cd:constant name='voffset' value='voffset'/>
+ <cd:constant name='way' value='way'/>
+ <cd:constant name='wfactor' value='wfactor'/>
+ <cd:constant name='white' value='white'/>
+ <cd:constant name='width' value='width'/>
+ <cd:constant name='xfactor' value='xfactor'/>
+ <cd:constant name='xmax' value='xmax'/>
+ <cd:constant name='xoffset' value='xoffset'/>
+ <cd:constant name='xscale' value='xscale'/>
+ <cd:constant name='xstep' value='xstep'/>
+ <cd:constant name='yfactor' value='yfactor'/>
+ <cd:constant name='ymax' value='ymax'/>
+ <cd:constant name='yoffset' value='yoffset'/>
+ <cd:constant name='yscale' value='yscale'/>
+ <cd:constant name='ystep' value='ystep'/>
+ </cd:constant>
- <cd:variables>
- <cd:variable name="january" value="January"/>
- <cd:variable name="february" value="February"/>
- <cd:variable name="march" value="March"/>
- <cd:variable name="april" value="April"/>
- <cd:variable name="may" value="May"/>
- <cd:variable name="june" value="June"/>
- <cd:variable name="july" value="July"/>
- <cd:variable name="august" value="August"/>
- <cd:variable name="september" value="September"/>
- <cd:variable name="october" value="October"/>
- <cd:variable name="november" value="November"/>
- <cd:variable name="december" value="December"/>
- </cd:variables>
+ <!-- definitions for interface elements for language en -->
- <cd:variables>
- <cd:variable name="atpage" value="atpage"/>
- <cd:variable name="hencefore" value="hencefore"/>
- <cd:variable name="hereafter" value="hereafter"/>
- </cd:variables>
+ <cd:elements>
+ <cd:element name='answerlines' value='answerlines'/>
+ <cd:element name='answerspace' value='answerspace'/>
+ <cd:element name='begin' value='begin'/>
+ <cd:element name='complete' value='complete'/>
+ <cd:element name='coupled' value='coupled'/>
+ <cd:element name='currentlocal' value='currentlocal'/>
+ <cd:element name='emptyone' value='empty'/>
+ <cd:element name='emptytwo' value='empty'/>
+ <cd:element name='end' value='end'/>
+ <cd:element name='endsetup' value=''/>
+ <cd:element name='get' value='get'/>
+ <cd:element name='increment' value='increment'/>
+ <cd:element name='list' value='list'/>
+ <cd:element name='listof' value='listof'/>
+ <cd:element name='load' value='load'/>
+ <cd:element name='local' value='local'/>
+ <cd:element name='makeup' value='makeup'/>
+ <cd:element name='next' value='next'/>
+ <cd:element name='place' value='place'/>
+ <cd:element name='previous' value='previous'/>
+ <cd:element name='previouslocal' value='previouslocal'/>
+ <cd:element name='reserve' value='reserve'/>
+ <cd:element name='see' value='see'/>
+ <cd:element name='setup' value='setup'/>
+ <cd:element name='start' value='start'/>
+ <cd:element name='stop' value='stop'/>
+ <cd:element name='text' value='text'/>
+ <cd:element name='type' value='type'/>
+ </cd:element>
- <cd:variables>
- <cd:variable name="part" value="part"/>
- <cd:variable name="chapter" value="chapter"/>
- <cd:variable name="subject" value="subject"/>
- <cd:variable name="section" value="section"/>
- <cd:variable name="title" value="title"/>
- <cd:variable name="margintitle" value="margintitle"/>
- <cd:variable name="content" value="content"/>
- <cd:variable name="contents" value="contents"/>
- <cd:variable name="appendix" value="appendix"/>
- <cd:variable name="appendices" value="appendices"/>
- <cd:variable name="bodypart" value="bodypart"/>
- <cd:variable name="bodymatter" value="bodymatter"/>
- <cd:variable name="frontpart" value="frontpart"/>
- <cd:variable name="frontmatter" value="frontmatter"/>
- <cd:variable name="backpart" value="backpart"/>
- <cd:variable name="backmatter" value="backmatter"/>
- <cd:variable name="footnote" value="footnote"/>
- <cd:variable name="endnote" value="endnote"/>
- <cd:variable name="system" value="system"/>
- </cd:variables>
+ <!-- definitions for interface commands for language en -->
- <cd:variables>
- <cd:variable name="subsection" value="subsection"/>
- <cd:variable name="subsubsection" value="subsubsection"/>
- <cd:variable name="subsubsubsection" value="subsubsubsection"/>
- <cd:variable name="subsubsubsubsection" value="subsubsubsubsection"/>
- <cd:variable name="subsubsubsubsubsection" value="subsubsubsubsubsection"/>
- <cd:variable name="subsubject" value="subsubject"/>
- <cd:variable name="subsubsubject" value="subsubsubject"/>
- <cd:variable name="subsubsubsubject" value="subsubsubsubject"/>
- <cd:variable name="subsubsubsubsubject" value="subsubsubsubsubject"/>
- <cd:variable name="subsubsubsubsubsubject" value="subsubsubsubsubsubject"/>
- </cd:variables>
+ <cd:commands>
+ <cd:command name='CAPPED' value='CAP'/>
+ <cd:command name='Character' value='Character'/>
+ <cd:command name='Characters' value='Characters'/>
+ <cd:command name='LABELTEXT' value='LABELTEXT'/>
+ <cd:command name='MONTH' value='MONTH'/>
+ <cd:command name='Numbers' value='Numbers'/>
+ <cd:command name='Romannumerals' value='Romannumerals'/>
+ <cd:command name='SmallCapped' value='Cap'/>
+ <cd:command name='SmallCaps' value='Caps'/>
+ <cd:command name='WEEKDAY' value='WEEKDAY'/>
+ <cd:command name='WORD' value='WORD'/>
+ <cd:command name='WORDS' value='WORDS'/>
+ <cd:command name='Word' value='Word'/>
+ <cd:command name='Words' value='Words'/>
+ <cd:command name='about' value='about'/>
+ <cd:command name='adaptlayout' value='adaptlayout'/>
+ <cd:command name='arg' value='arg'/>
+ <cd:command name='at' value='at'/>
+ <cd:command name='atleftmargin' value='atleftmargin'/>
+ <cd:command name='atpage' value='atpage'/>
+ <cd:command name='atrightmargin' value='atrightmargin'/>
+ <cd:command name='background' value='background'/>
+ <cd:command name='backspace' value='backspace'/>
+ <cd:command name='blackrule' value='blackrule'/>
+ <cd:command name='blackrules' value='blackrules'/>
+ <cd:command name='blank' value='blank'/>
+ <cd:command name='bookmark' value='bookmark'/>
+ <cd:command name='bottomdistance' value='bottomdistance'/>
+ <cd:command name='bottomheight' value='bottomheight'/>
+ <cd:command name='bottomspace' value='bottomspace'/>
+ <cd:command name='but' value='but'/>
+ <cd:command name='button' value='button'/>
+ <cd:command name='bypassblocks' value='bypassblocks'/>
+ <cd:command name='character' value='character'/>
+ <cd:command name='characters' value='characters'/>
+ <cd:command name='chem' value='chem'/>
+ <cd:command name='clip' value='clip'/>
+ <cd:command name='clonefield' value='clonefield'/>
+ <cd:command name='color' value='color'/>
+ <cd:command name='colorbar' value='colorbar'/>
+ <cd:command name='colorvalue' value='colorvalue'/>
+ <cd:command name='column' value='column'/>
+ <cd:command name='comment' value='comment'/>
+ <cd:command name='comparecolorgroup' value='comparecolorgroup'/>
+ <cd:command name='comparepalet' value='comparepalet'/>
+ <cd:command name='completepagenumber' value='completepagenumber'/>
+ <cd:command name='completeregister' value='completeregister'/>
+ <cd:command name='component' value='component'/>
+ <cd:command name='convertnumber' value='convertnumber'/>
+ <cd:command name='copyfield' value='copyfield'/>
+ <cd:command name='correctwhitespace' value='correctwhitespace'/>
+ <cd:command name='coupledocument' value='coupledocument'/>
+ <cd:command name='couplemarking' value='couplemarking'/>
+ <cd:command name='couplepage' value='couplepage'/>
+ <cd:command name='couplepaper' value='couplepaper'/>
+ <cd:command name='coupleregister' value='coupleregister'/>
+ <cd:command name='crlf' value='crlf'/>
+ <cd:command name='currentdate' value='currentdate'/>
+ <cd:command name='currentheadnumber' value='currentheadnumber'/>
+ <cd:command name='cutspace' value='cutspace'/>
+ <cd:command name='date' value='date'/>
+ <cd:command name='decouplemarking' value='decouplemarking'/>
+ <cd:command name='decrementnumber' value='decrementnumber'/>
+ <cd:command name='define' value='define'/>
+ <cd:command name='defineaccent' value='defineaccent'/>
+ <cd:command name='defineblank' value='defineblank'/>
+ <cd:command name='defineblock' value='defineblock'/>
+ <cd:command name='definebodyfont' value='definebodyfont'/>
+ <cd:command name='definebodyfontenvironment' value='definebodyfontenvironment'/>
+ <cd:command name='definebuffer' value='definebuffer'/>
+ <cd:command name='definecharacter' value='definecharacter'/>
+ <cd:command name='definecolor' value='definecolor'/>
+ <cd:command name='definecolorgroup' value='definecolorgroup'/>
+ <cd:command name='definecolumnbreak' value='definecolumnbreak'/>
+ <cd:command name='definecolumnset' value='definecolumnset'/>
+ <cd:command name='definecombination' value='definecombination'/>
+ <cd:command name='definecombinedlist' value='definecombinedlist'/>
+ <cd:command name='definecommand' value='definecommand'/>
+ <cd:command name='defineconversion' value='defineconversion'/>
+ <cd:command name='definedescription' value='definedescription'/>
+ <cd:command name='defineenumeration' value='defineenumeration'/>
+ <cd:command name='definefield' value='definefield'/>
+ <cd:command name='definefieldstack' value='definefieldstack'/>
+ <cd:command name='definefiguresymbol' value='definefiguresymbol'/>
+ <cd:command name='definefloat' value='definefloat'/>
+ <cd:command name='definefont' value='definefont'/>
+ <cd:command name='definefontstyle' value='definefontstyle'/>
+ <cd:command name='definefontsynonym' value='definefontsynonym'/>
+ <cd:command name='defineframed' value='defineframed'/>
+ <cd:command name='defineframedtext' value='defineframedtext'/>
+ <cd:command name='definehbox' value='definehbox'/>
+ <cd:command name='definehead' value='definehead'/>
+ <cd:command name='defineindenting' value='defineindenting'/>
+ <cd:command name='defineinmargin' value='defineinmargin'/>
+ <cd:command name='defineinteractionmenu' value='defineinteractionmenu'/>
+ <cd:command name='defineitemgroup' value='defineitemgroup'/>
+ <cd:command name='definelabel' value='definelabel'/>
+ <cd:command name='definelayer' value='definelayer'/>
+ <cd:command name='definelayout' value='definelayout'/>
+ <cd:command name='definelist' value='definelist'/>
+ <cd:command name='definelogo' value='definelogo'/>
+ <cd:command name='definemainfield' value='definemainfield'/>
+ <cd:command name='definemakeup' value='definemakeup'/>
+ <cd:command name='definemarking' value='definemarking'/>
+ <cd:command name='definemathalignment' value='definemathalignment'/>
+ <cd:command name='defineoutput' value='defineoutput'/>
+ <cd:command name='defineoverlay' value='defineoverlay'/>
+ <cd:command name='definepagebreak' value='definepagebreak'/>
+ <cd:command name='definepalet' value='definepalet'/>
+ <cd:command name='definepapersize' value='definepapersize'/>
+ <cd:command name='defineparagraphs' value='defineparagraphs'/>
+ <cd:command name='defineplacement' value='defineplacement'/>
+ <cd:command name='defineprofile' value='defineprofile'/>
+ <cd:command name='defineprogram' value='defineprogram'/>
+ <cd:command name='definerawfont' value='definerawfont'/>
+ <cd:command name='definereference' value='definereference'/>
+ <cd:command name='definereferenceformat' value='definereferenceformat'/>
+ <cd:command name='definereferencelist' value='definereferencelist'/>
+ <cd:command name='defineregister' value='defineregister'/>
+ <cd:command name='definerule' value='definerule'/>
+ <cd:command name='definesection' value='definesection'/>
+ <cd:command name='definesectionblock' value='definesectionblock'/>
+ <cd:command name='definesorting' value='definesorting'/>
+ <cd:command name='definestartstop' value='definestartstop'/>
+ <cd:command name='definestyle' value='definestyle'/>
+ <cd:command name='definesubfield' value='definesubfield'/>
+ <cd:command name='definesymbol' value='definesymbol'/>
+ <cd:command name='definesynonyms' value='definesynonyms'/>
+ <cd:command name='definetabletemplate' value='definetabletemplate'/>
+ <cd:command name='definetabulate' value='definetabulate'/>
+ <cd:command name='definetext' value='definetext'/>
+ <cd:command name='definetextposition' value='definetextposition'/>
+ <cd:command name='definetextvariable' value='definetextvariable'/>
+ <cd:command name='definetype' value='definetype'/>
+ <cd:command name='definetyping' value='definetyping'/>
+ <cd:command name='defineversion' value='defineversion'/>
+ <cd:command name='determineheadnumber' value='determineheadnumber'/>
+ <cd:command name='determinelistcharacteristics' value='determinelistcharacteristics'/>
+ <cd:command name='determineregistercharacteristics' value='determineregistercharacteristics'/>
+ <cd:command name='dimension' value='dimension'/>
+ <cd:command name='disableinteractionmenu' value='disableinteractionmenu'/>
+ <cd:command name='domicile' value='domicile'/>
+ <cd:command name='donttest' value='donttest'/>
+ <cd:command name='edgedistance' value='edgedistance'/>
+ <cd:command name='edgewidth' value='edgewidth'/>
+ <cd:command name='emptylines' value='emptylines'/>
+ <cd:command name='environment' value='environment'/>
+ <cd:command name='externalfigure' value='externalfigure'/>
+ <cd:command name='fact' value='fact'/>
+ <cd:command name='field' value='field'/>
+ <cd:command name='fieldstack' value='fieldstack'/>
+ <cd:command name='fillinfield' value='fillinfield'/>
+ <cd:command name='fillinline' value='fillinline'/>
+ <cd:command name='fillinrules' value='fillinrules'/>
+ <cd:command name='fillintext' value='fillintext'/>
+ <cd:command name='fitfield' value='fitfield'/>
+ <cd:command name='fixedspace' value='fixedspace'/>
+ <cd:command name='fixedspaces' value='fixedspaces'/>
+ <cd:command name='followprofile' value='followprofile'/>
+ <cd:command name='followprofileversion' value='followprofileversion'/>
+ <cd:command name='followversion' value='followversion'/>
+ <cd:command name='footerdistance' value='footerdistance'/>
+ <cd:command name='footerheight' value='footerheight'/>
+ <cd:command name='footnote' value='footnote'/>
+ <cd:command name='footnotetext' value='footnotetext'/>
+ <cd:command name='forceblocks' value='forceblocks'/>
+ <cd:command name='formulanumber' value='formulanumber'/>
+ <cd:command name='fraction' value='fraction'/>
+ <cd:command name='framed' value='framed'/>
+ <cd:command name='from' value='from'/>
+ <cd:command name='getbuffer' value='getbuffer'/>
+ <cd:command name='getmarking' value='getmarking'/>
+ <cd:command name='getnumber' value='getnumber'/>
+ <cd:command name='godown' value='godown'/>
+ <cd:command name='goto' value='goto'/>
+ <cd:command name='gotobox' value='gotobox'/>
+ <cd:command name='gotopage' value='gotopage'/>
+ <cd:command name='graycolor' value='graycolor'/>
+ <cd:command name='greyvalue' value='greyvalue'/>
+ <cd:command name='grid' value='grid'/>
+ <cd:command name='hairline' value='hairline'/>
+ <cd:command name='head' value='head'/>
+ <cd:command name='headerdistance' value='headerdistance'/>
+ <cd:command name='headerheight' value='headerheight'/>
+ <cd:command name='headlevel' value='headlevel'/>
+ <cd:command name='headnumber' value='headnumber'/>
+ <cd:command name='headsym' value='headsym'/>
+ <cd:command name='headtext' value='headtext'/>
+ <cd:command name='hideblocks' value='hideblocks'/>
+ <cd:command name='high' value='high'/>
+ <cd:command name='hl' value='hl'/>
+ <cd:command name='immediatebetweenlist' value='immediatebetweenlist'/>
+ <cd:command name='immediatetolist' value='immediatetolist'/>
+ <cd:command name='in' value='in'/>
+ <cd:command name='incrementnumber' value='incrementnumber'/>
+ <cd:command name='indenting' value='indenting'/>
+ <cd:command name='inframed' value='inframed'/>
+ <cd:command name='infull' value='infull'/>
+ <cd:command name='ininner' value='ininner'/>
+ <cd:command name='inleft' value='inleft'/>
+ <cd:command name='inleftedge' value='inleftedge'/>
+ <cd:command name='inleftmargin' value='inleftmargin'/>
+ <cd:command name='inline' value='inline'/>
+ <cd:command name='inmargin' value='inmargin'/>
+ <cd:command name='inmframed' value='inmaframed'/>
+ <cd:command name='inneredgedistance' value='inneredgedistance'/>
+ <cd:command name='inneredgewidth' value='inneredgewidth'/>
+ <cd:command name='innermargindistance' value='innermargindistance'/>
+ <cd:command name='innermarginwidth' value='innermarginwidth'/>
+ <cd:command name='inothermargin' value='inothermargin'/>
+ <cd:command name='inouter' value='inouter'/>
+ <cd:command name='inright' value='inright'/>
+ <cd:command name='inrightedge' value='inrightedge'/>
+ <cd:command name='inrightmargin' value='inrightmargin'/>
+ <cd:command name='installlanguage' value='installlanguage'/>
+ <cd:command name='interactionbar' value='interactionbar'/>
+ <cd:command name='interactionbuttons' value='interactionbuttons'/>
+ <cd:command name='interactionmenu' value='interactionmenu'/>
+ <cd:command name='item' value='item'/>
+ <cd:command name='items' value='items'/>
+ <cd:command name='its' value='its'/>
+ <cd:command name='keepblocks' value='keepblocks'/>
+ <cd:command name='label' value='label'/>
+ <cd:command name='labels' value='labels'/>
+ <cd:command name='labeltext' value='labeltext'/>
+ <cd:command name='language' value='language'/>
+ <cd:command name='leftaligned' value='leftaligned'/>
+ <cd:command name='leftedgedistance' value='leftedgedistance'/>
+ <cd:command name='leftedgewidth' value='leftedgewidth'/>
+ <cd:command name='leftmargindistance' value='leftmargindistance'/>
+ <cd:command name='leftmarginwidth' value='leftmarginwidth'/>
+ <cd:command name='leg' value='leg'/>
+ <cd:command name='linewidth' value='linethickness'/>
+ <cd:command name='listheight' value='listheight'/>
+ <cd:command name='listlength' value='listlength'/>
+ <cd:command name='listsymbol' value='listsymbol'/>
+ <cd:command name='listwidth' value='listwidth'/>
+ <cd:command name='logfields' value='logfields'/>
+ <cd:command name='lohi' value='lohi'/>
+ <cd:command name='low' value='low'/>
+ <cd:command name='macroname' value='name'/>
+ <cd:command name='mainlanguage' value='mainlanguage'/>
+ <cd:command name='makeupheight' value='makeupheight'/>
+ <cd:command name='makeupwidth' value='makeupwidth'/>
+ <cd:command name='mar' value='mar'/>
+ <cd:command name='margindistance' value='margindistance'/>
+ <cd:command name='marginrule' value='marginrule'/>
+ <cd:command name='margintext' value='margintext'/>
+ <cd:command name='margintitle' value='margintitle'/>
+ <cd:command name='marginwidth' value='marginwidth'/>
+ <cd:command name='marginword' value='marginword'/>
+ <cd:command name='marking' value='marking'/>
+ <cd:command name='markversion' value='markversion'/>
+ <cd:command name='mathematics' value='mathematics'/>
+ <cd:command name='menubutton' value='menubutton'/>
+ <cd:command name='mframed' value='maframed'/>
+ <cd:command name='midaligned' value='midaligned'/>
+ <cd:command name='mirror' value='mirror'/>
+ <cd:command name='month' value='month'/>
+ <cd:command name='moveformula' value='moveformula'/>
+ <cd:command name='moveongrid' value='moveongrid'/>
+ <cd:command name='movesidefloat' value='movesidefloat'/>
+ <cd:command name='navigating' value='navigating'/>
+ <cd:command name='nodimension' value='nodimension'/>
+ <cd:command name='noheaderandfooterlines' value='noheaderandfooterlines'/>
+ <cd:command name='noindenting' value='noindenting'/>
+ <cd:command name='nolist' value='nolist'/>
+ <cd:command name='nomarking' value='nomarking'/>
+ <cd:command name='nomoreblocks' value='nomoreblocks'/>
+ <cd:command name='nomorefiles' value='nomorefiles'/>
+ <cd:command name='nop' value='nop'/>
+ <cd:command name='nospace' value='nospace'/>
+ <cd:command name='note' value='note'/>
+ <cd:command name='notopandbottomlines' value='notopandbottomlines'/>
+ <cd:command name='notsmallcapped' value='nocap'/>
+ <cd:command name='nowhitespace' value='nowhitespace'/>
+ <cd:command name='numberofsubpages' value='numberofsubpages'/>
+ <cd:command name='numbers' value='numbers'/>
+ <cd:command name='outeredgedistance' value='outeredgedistance'/>
+ <cd:command name='outeredgewidth' value='outeredgewidth'/>
+ <cd:command name='outermargindistance' value='outermargindistance'/>
+ <cd:command name='outermarginwidth' value='outermarginwidth'/>
+ <cd:command name='overbar' value='overbar'/>
+ <cd:command name='overbars' value='overbars'/>
+ <cd:command name='overstrike' value='overstrike'/>
+ <cd:command name='overstrikes' value='overstrikes'/>
+ <cd:command name='packed' value='packed'/>
+ <cd:command name='page' value='page'/>
+ <cd:command name='pagedepth' value='pagedepth'/>
+ <cd:command name='pagenumber' value='pagenumber'/>
+ <cd:command name='pageoffset' value='pageoffset'/>
+ <cd:command name='pagereference' value='pagereference'/>
+ <cd:command name='pagetype' value='pagetype'/>
+ <cd:command name='paperheight' value='paperheight'/>
+ <cd:command name='paperwidth' value='paperwidth'/>
+ <cd:command name='periods' value='periods'/>
+ <cd:command name='plaatsruwelijst' value='placerawlist'/>
+ <cd:command name='placebookmarks' value='placebookmarks'/>
+ <cd:command name='placecombinedlist' value='placecombinedlist'/>
+ <cd:command name='placefloat' value='placefloat'/>
+ <cd:command name='placefootnotes' value='placefootnotes'/>
+ <cd:command name='placeformula' value='placeformula'/>
+ <cd:command name='placeheadnumber' value='placeheadnumber'/>
+ <cd:command name='placeheadtext' value='placeheadtext'/>
+ <cd:command name='placelegend' value='placelegend'/>
+ <cd:command name='placelist' value='placelist'/>
+ <cd:command name='placelocalfootnotes' value='placelocalfootnotes'/>
+ <cd:command name='placelogos' value='placelogos'/>
+ <cd:command name='placeongrid' value='placeongrid'/>
+ <cd:command name='placeontopofeachother' value='placeontopofeachother'/>
+ <cd:command name='placepagenumber' value='placepagenumber'/>
+ <cd:command name='placereferencelist' value='placereferencelist'/>
+ <cd:command name='placeregister' value='placeregister'/>
+ <cd:command name='placerule' value='placerule'/>
+ <cd:command name='placesidebyside' value='placesidebyside'/>
+ <cd:command name='placesubformula' value='placesubformula'/>
+ <cd:command name='placetextvariable' value='placetextvariable'/>
+ <cd:command name='position' value='position'/>
+ <cd:command name='positiontext' value='positiontext'/>
+ <cd:command name='printpaperheight' value='printpaperheight'/>
+ <cd:command name='printpaperwidth' value='printpaperwidth'/>
+ <cd:command name='processblocks' value='processblocks'/>
+ <cd:command name='processpage' value='processpage'/>
+ <cd:command name='product' value='product'/>
+ <cd:command name='program' value='program'/>
+ <cd:command name='project' value='project'/>
+ <cd:command name='publication' value='publication'/>
+ <cd:command name='quotation' value='quotation'/>
+ <cd:command name='quote' value='quote'/>
+ <cd:command name='ran' value='ran'/>
+ <cd:command name='redo' value='redo'/>
+ <cd:command name='ref' value='ref'/>
+ <cd:command name='reference' value='reference'/>
+ <cd:command name='referral' value='referral'/>
+ <cd:command name='referraldate' value='referraldate'/>
+ <cd:command name='referring' value='referring'/>
+ <cd:command name='remark' value='remark'/>
+ <cd:command name='reset' value='reset'/>
+ <cd:command name='resetmarking' value='resetmarking'/>
+ <cd:command name='resetnumber' value='resetnumber'/>
+ <cd:command name='resettext' value='resettextcontent'/>
+ <cd:command name='rightaligned' value='rightaligned'/>
+ <cd:command name='rightedgedistance' value='rightedgedistance'/>
+ <cd:command name='rightedgewidth' value='rightedgewidth'/>
+ <cd:command name='rightmargindistance' value='rightmargindistance'/>
+ <cd:command name='rightmarginwidth' value='rightmarginwidth'/>
+ <cd:command name='romannumerals' value='romannumerals'/>
+ <cd:command name='rotate' value='rotate'/>
+ <cd:command name='scale' value='scale'/>
+ <cd:command name='screen' value='screen'/>
+ <cd:command name='selectblocks' value='selectblocks'/>
+ <cd:command name='selectpaper' value='selectpaper'/>
+ <cd:command name='selectversion' value='selectversion'/>
+ <cd:command name='setnumber' value='setnumber'/>
+ <cd:command name='settextcontent' value='settextcontent'/>
+ <cd:command name='settextvariable' value='settextvariable'/>
+ <cd:command name='setupalign' value='setupalign'/>
+ <cd:command name='setupanswerarea' value='setupanswerarea'/>
+ <cd:command name='setuparranging' value='setuparranging'/>
+ <cd:command name='setupbackground' value='setupbackground'/>
+ <cd:command name='setupbackgrounds' value='setupbackgrounds'/>
+ <cd:command name='setupblackrules' value='setupblackrules'/>
+ <cd:command name='setupblank' value='setupblank'/>
+ <cd:command name='setupblock' value='setupblock'/>
+ <cd:command name='setupbodyfont' value='setupbodyfont'/>
+ <cd:command name='setupbodyfontenvironment' value='setupbodyfontenvironment'/>
+ <cd:command name='setupbottom' value='setupbottom'/>
+ <cd:command name='setupbottomtexts' value='setupbottomtexts'/>
+ <cd:command name='setupbuffer' value='setupbuffer'/>
+ <cd:command name='setupbuttons' value='setupbuttons'/>
+ <cd:command name='setupcapitals' value='setupcapitals'/>
+ <cd:command name='setupcaption' value='setupcaption'/>
+ <cd:command name='setupcaptions' value='setupcaptions'/>
+ <cd:command name='setupclipping' value='setupclipping'/>
+ <cd:command name='setupcolor' value='setupcolor'/>
+ <cd:command name='setupcolors' value='setupcolors'/>
+ <cd:command name='setupcolumns' value='setupcolumns'/>
+ <cd:command name='setupcolumnset' value='setupcolumnset'/>
+ <cd:command name='setupcolumnsetlines' value='setupcolumnsetlines'/>
+ <cd:command name='setupcolumnsetstart' value='setupcolumnsetstart'/>
+ <cd:command name='setupcombinations' value='setupcombinations'/>
+ <cd:command name='setupcombinedlist' value='setupcombinedlist'/>
+ <cd:command name='setupcomment' value='setupcomment'/>
+ <cd:command name='setupdescriptions' value='setupdescriptions'/>
+ <cd:command name='setupenumerations' value='setupenumerations'/>
+ <cd:command name='setupexternalfigures' value='setupexternalfigures'/>
+ <cd:command name='setupfield' value='setupfield'/>
+ <cd:command name='setupfields' value='setupfields'/>
+ <cd:command name='setupfillinlines' value='setupfillinlines'/>
+ <cd:command name='setupfillinrules' value='setupfillinrules'/>
+ <cd:command name='setupfloat' value='setupfloat'/>
+ <cd:command name='setupfloats' value='setupfloats'/>
+ <cd:command name='setupfloatsplitting' value='setupfloatsplitting'/>
+ <cd:command name='setupfooter' value='setupfooter'/>
+ <cd:command name='setupfootertexts' value='setupfootertexts'/>
+ <cd:command name='setupfootnotedefinition' value='setupfootnotedefinition'/>
+ <cd:command name='setupfootnotes' value='setupfootnotes'/>
+ <cd:command name='setupforms' value='setupforms'/>
+ <cd:command name='setupformulas' value='setupformulae'/>
+ <cd:command name='setupframed' value='setupframed'/>
+ <cd:command name='setupframedtexts' value='setupframedtexts'/>
+ <cd:command name='setuphead' value='setuphead'/>
+ <cd:command name='setupheader' value='setupheader'/>
+ <cd:command name='setupheadertexts' value='setupheadertexts'/>
+ <cd:command name='setupheadnumber' value='setupheadnumber'/>
+ <cd:command name='setupheads' value='setupheads'/>
+ <cd:command name='setupheadtext' value='setupheadtext'/>
+ <cd:command name='setuphyphenmark' value='setuphyphenmark'/>
+ <cd:command name='setupindentations' value='setupindentations'/>
+ <cd:command name='setupindenting' value='setupindenting'/>
+ <cd:command name='setupinmargin' value='setupinmargin'/>
+ <cd:command name='setupinteraction' value='setupinteraction'/>
+ <cd:command name='setupinteractionbar' value='setupinteractionbar'/>
+ <cd:command name='setupinteractionmenu' value='setupinteractionmenu'/>
+ <cd:command name='setupinteractionscreen' value='setupinteractionscreen'/>
+ <cd:command name='setupinterlinespace' value='setupinterlinespace'/>
+ <cd:command name='setupitemgroup' value='setupitemgroup'/>
+ <cd:command name='setupitemgroups' value='setupitemizations'/>
+ <cd:command name='setupitems' value='setupitems'/>
+ <cd:command name='setuplabeltext' value='setuplabeltext'/>
+ <cd:command name='setuplanguage' value='setuplanguage'/>
+ <cd:command name='setuplayout' value='setuplayout'/>
+ <cd:command name='setuplegend' value='setuplegend'/>
+ <cd:command name='setuplinenumbering' value='setuplinenumbering'/>
+ <cd:command name='setuplines' value='setuplines'/>
+ <cd:command name='setuplinewidth' value='setuplinewidth'/>
+ <cd:command name='setuplist' value='setuplist'/>
+ <cd:command name='setupmakeup' value='setupmakeup'/>
+ <cd:command name='setupmarginblocks' value='setupmarginblocks'/>
+ <cd:command name='setupmarginrules' value='setupmarginrules'/>
+ <cd:command name='setupmarking' value='setupmarking'/>
+ <cd:command name='setupmathalignment' value='setupmathalignment'/>
+ <cd:command name='setupnarrower' value='setupnarrower'/>
+ <cd:command name='setupnumber' value='setupnumber'/>
+ <cd:command name='setupnumbering' value='setupnumbering'/>
+ <cd:command name='setupoppositeplacing' value='setupoppositeplacing'/>
+ <cd:command name='setupoutput' value='setupoutput'/>
+ <cd:command name='setuppagecomment' value='setuppagecomment'/>
+ <cd:command name='setuppagenumber' value='setuppagenumber'/>
+ <cd:command name='setuppagenumbering' value='setuppagenumbering'/>
+ <cd:command name='setuppagetransitions' value='setuppagetransitions'/>
+ <cd:command name='setuppalet' value='setuppalet'/>
+ <cd:command name='setuppaper' value='setuppaper'/>
+ <cd:command name='setuppapersize' value='setuppapersize'/>
+ <cd:command name='setupparagraphnumbering' value='setupparagraphnumbering'/>
+ <cd:command name='setupparagraphs' value='setupparagraphs'/>
+ <cd:command name='setupplacement' value='setupplacement'/>
+ <cd:command name='setuppositioning' value='setuppositioning'/>
+ <cd:command name='setupprofiles' value='setupprofiles'/>
+ <cd:command name='setupprograms' value='setupprograms'/>
+ <cd:command name='setuppublications' value='setuppublications'/>
+ <cd:command name='setupquote' value='setupquote'/>
+ <cd:command name='setupreferencelist' value='setupreferencelist'/>
+ <cd:command name='setupreferencing' value='setupreferencing'/>
+ <cd:command name='setupregister' value='setupregister'/>
+ <cd:command name='setuprotate' value='setuprotate'/>
+ <cd:command name='setuprule' value='setuprule'/>
+ <cd:command name='setups' value='setups'/>
+ <cd:command name='setupscreens' value='setupscreens'/>
+ <cd:command name='setupsection' value='setupsection'/>
+ <cd:command name='setupsectionblock' value='setupsectionblock'/>
+ <cd:command name='setupsorting' value='setupsorting'/>
+ <cd:command name='setupspacing' value='setupspacing'/>
+ <cd:command name='setupstartstop' value='setupstartstop'/>
+ <cd:command name='setupstrut' value='setupstrut'/>
+ <cd:command name='setupsubpagenumber' value='setupsubpagenumber'/>
+ <cd:command name='setupsymbolset' value='setupsymbolset'/>
+ <cd:command name='setupsynchronization' value='setupsynchronization'/>
+ <cd:command name='setupsynchronizationbar' value='setupsynchronizationbar'/>
+ <cd:command name='setupsynonyms' value='setupsynonyms'/>
+ <cd:command name='setupsystem' value='setupsystem'/>
+ <cd:command name='setuptab' value='setuptab'/>
+ <cd:command name='setuptables' value='setuptables'/>
+ <cd:command name='setuptabulate' value='setuptabulate'/>
+ <cd:command name='setuptext' value='setuptext'/>
+ <cd:command name='setuptextposition' value='setuptextposition'/>
+ <cd:command name='setuptextrules' value='setuptextrules'/>
+ <cd:command name='setuptexttexts' value='setuptexttexts'/>
+ <cd:command name='setuptextvariable' value='setuptextvariable'/>
+ <cd:command name='setupthinrules' value='setupthinrules'/>
+ <cd:command name='setuptolerance' value='setuptolerance'/>
+ <cd:command name='setuptop' value='setuptop'/>
+ <cd:command name='setuptoptexts' value='setuptoptexts'/>
+ <cd:command name='setuptype' value='setuptype'/>
+ <cd:command name='setuptyping' value='setuptyping'/>
+ <cd:command name='setupunderbar' value='setupunderbar'/>
+ <cd:command name='setupurl' value='setupurl'/>
+ <cd:command name='setupversions' value='setupversions'/>
+ <cd:command name='setupwhitespace' value='setupwhitespace'/>
+ <cd:command name='showbodyfont' value='showbodyfont'/>
+ <cd:command name='showbodyfontenvironment' value='showbodyfontenvironment'/>
+ <cd:command name='showcolor' value='showcolor'/>
+ <cd:command name='showcolorgroup' value='showcolorgroup'/>
+ <cd:command name='showexternalfigures' value='showexternalfigures'/>
+ <cd:command name='showfields' value='showfields'/>
+ <cd:command name='showframe' value='showframe'/>
+ <cd:command name='showgrid' value='showgrid'/>
+ <cd:command name='showlayout' value='showlayout'/>
+ <cd:command name='showmakeup' value='showmakeup'/>
+ <cd:command name='showpalet' value='showpalet'/>
+ <cd:command name='showprint' value='showprint'/>
+ <cd:command name='showsetups' value='showsetups'/>
+ <cd:command name='showstruts' value='showstruts'/>
+ <cd:command name='showsymbolset' value='showsymbolset'/>
+ <cd:command name='smallcapped' value='cap'/>
+ <cd:command name='someline' value='someline'/>
+ <cd:command name='somewhere' value='somewhere'/>
+ <cd:command name='space' value='space'/>
+ <cd:command name='splitfloat' value='splitfloat'/>
+ <cd:command name='startalignment' value='startalignment'/>
+ <cd:command name='startbackground' value='startbackground'/>
+ <cd:command name='startcoding' value='startcoding'/>
+ <cd:command name='startcolor' value='startcolor'/>
+ <cd:command name='startcolumnmakeup' value='startcolumnmakeup'/>
+ <cd:command name='startcolumns' value='startcolumns'/>
+ <cd:command name='startcolumnset' value='startcolumnset'/>
+ <cd:command name='startcombination' value='startcombination'/>
+ <cd:command name='startcomponent' value='startcomponent'/>
+ <cd:command name='startdocument' value='startdocument'/>
+ <cd:command name='startenvironment' value='startenvironment'/>
+ <cd:command name='startfigure' value='startfigure'/>
+ <cd:command name='startglobal' value='startglobal'/>
+ <cd:command name='startline' value='startline'/>
+ <cd:command name='startlinecorrection' value='startlinecorrection'/>
+ <cd:command name='startlinenumbering' value='startlinenumbering'/>
+ <cd:command name='startlines' value='startlines'/>
+ <cd:command name='startlocal' value='startlocal'/>
+ <cd:command name='startlocalfootnotes' value='startlocalfootnotes'/>
+ <cd:command name='startmakeup' value='startmakeup'/>
+ <cd:command name='startmarginblock' value='startmarginblock'/>
+ <cd:command name='startmarginrule' value='startmarginrule'/>
+ <cd:command name='startnarrower' value='startnarrower'/>
+ <cd:command name='startopposite' value='startopposite'/>
+ <cd:command name='startoverlay' value='startoverlay'/>
+ <cd:command name='startoverzicht' value='startoverview'/>
+ <cd:command name='startpacked' value='startpacked'/>
+ <cd:command name='startpositioning' value='startpositioning'/>
+ <cd:command name='startproduct' value='startproduct'/>
+ <cd:command name='startprofile' value='startprofile'/>
+ <cd:command name='startproject' value='startproject'/>
+ <cd:command name='startquotation' value='startquotation'/>
+ <cd:command name='startraster' value='startraster'/>
+ <cd:command name='startsymbolset' value='startsymbolset'/>
+ <cd:command name='startsynchronization' value='startsynchronization'/>
+ <cd:command name='starttable' value='starttable'/>
+ <cd:command name='starttables' value='starttables'/>
+ <cd:command name='starttext' value='starttext'/>
+ <cd:command name='starttextrule' value='starttextrule'/>
+ <cd:command name='startunpacked' value='startunpacked'/>
+ <cd:command name='startversion' value='startversion'/>
+ <cd:command name='stopalignment' value='stopalignment'/>
+ <cd:command name='stopbackground' value='stopbackground'/>
+ <cd:command name='stopcoding' value='stopcoding'/>
+ <cd:command name='stopcolor' value='stopcolor'/>
+ <cd:command name='stopcolumnmakeup' value='stopcolumnmakeup'/>
+ <cd:command name='stopcolumns' value='stopcolumns'/>
+ <cd:command name='stopcolumnset' value='stopcolumnset'/>
+ <cd:command name='stopcombination' value='stopcombination'/>
+ <cd:command name='stopcomponent' value='stopcomponent'/>
+ <cd:command name='stopdocument' value='stopdocument'/>
+ <cd:command name='stopenvironment' value='stopenvironment'/>
+ <cd:command name='stopglobal' value='stopglobal'/>
+ <cd:command name='stopline' value='stopline'/>
+ <cd:command name='stoplinecorrection' value='stoplinecorrection'/>
+ <cd:command name='stoplinenumbering' value='stoplinenumbering'/>
+ <cd:command name='stoplines' value='stoplines'/>
+ <cd:command name='stoplocal' value='stoplocal'/>
+ <cd:command name='stoplocalfootnotes' value='stoplocalfootnotes'/>
+ <cd:command name='stopmakeup' value='stopmakeup'/>
+ <cd:command name='stopmarginblock' value='stopmarginblock'/>
+ <cd:command name='stopmarginrule' value='stopmarginrule'/>
+ <cd:command name='stopnarrower' value='stopnarrower'/>
+ <cd:command name='stopopposite' value='stopopposite'/>
+ <cd:command name='stopoverlay' value='stopoverlay'/>
+ <cd:command name='stopoverzicht' value='stopoverview'/>
+ <cd:command name='stoppacked' value='stoppacked'/>
+ <cd:command name='stoppositioning' value='stoppositioning'/>
+ <cd:command name='stopproduct' value='stopproduct'/>
+ <cd:command name='stopprofile' value='stopprofile'/>
+ <cd:command name='stopproject' value='stopproject'/>
+ <cd:command name='stopquotation' value='stopquotation'/>
+ <cd:command name='stopraster' value='stopraster'/>
+ <cd:command name='stopsynchronization' value='stopsynchronization'/>
+ <cd:command name='stoptable' value='stoptable'/>
+ <cd:command name='stoptables' value='stoptables'/>
+ <cd:command name='stoptext' value='stoptext'/>
+ <cd:command name='stoptextrule' value='stoptextrule'/>
+ <cd:command name='stopunpacked' value='stopunpacked'/>
+ <cd:command name='stopversion' value='stopversion'/>
+ <cd:command name='stretched' value='stretched'/>
+ <cd:command name='subformulanumber' value='subformulanumber'/>
+ <cd:command name='subpagenumber' value='subpagenumber'/>
+ <cd:command name='switchtobodyfont' value='switchtobodyfont'/>
+ <cd:command name='switchtorawfont' value='switchtorawfont'/>
+ <cd:command name='sym' value='sym'/>
+ <cd:command name='symbol' value='symbol'/>
+ <cd:command name='synchronizationbar' value='synchronizationbar'/>
+ <cd:command name='synchronize' value='synchronize'/>
+ <cd:command name='tab' value='tab'/>
+ <cd:command name='testcolumn' value='testcolumn'/>
+ <cd:command name='testpage' value='testpage'/>
+ <cd:command name='tex' value='tex'/>
+ <cd:command name='textheight' value='textheight'/>
+ <cd:command name='textreference' value='textreference'/>
+ <cd:command name='textrule' value='textrule'/>
+ <cd:command name='textvariable' value='textvariable'/>
+ <cd:command name='textwidth' value='textwidth'/>
+ <cd:command name='thinrule' value='thinrule'/>
+ <cd:command name='thinrules' value='thinrules'/>
+ <cd:command name='tooltip' value='tooltip'/>
+ <cd:command name='topdistance' value='topdistance'/>
+ <cd:command name='topheight' value='topheight'/>
+ <cd:command name='topspace' value='topspace'/>
+ <cd:command name='totalnumberofpages' value='totalnumberofpages'/>
+ <cd:command name='translate' value='translate'/>
+ <cd:command name='txt' value='txt'/>
+ <cd:command name='typ' value='typ'/>
+ <cd:command name='type' value='type'/>
+ <cd:command name='typebuffer' value='typebuffer'/>
+ <cd:command name='typefile' value='typefile'/>
+ <cd:command name='underbar' value='underbar'/>
+ <cd:command name='underbars' value='underbars'/>
+ <cd:command name='unitmeaning' value='unitmeaning'/>
+ <cd:command name='unknown' value='unknown'/>
+ <cd:command name='useJSscripts' value='useJSscripts'/>
+ <cd:command name='useURL' value='useURL'/>
+ <cd:command name='useXMLfilter' value='useXMLfilter'/>
+ <cd:command name='useblocks' value='useblocks'/>
+ <cd:command name='usecommands' value='usecommands'/>
+ <cd:command name='useencoding' value='useencoding'/>
+ <cd:command name='useexternaldocument' value='useexternaldocument'/>
+ <cd:command name='useexternalfigure' value='useexternalfigure'/>
+ <cd:command name='useexternalfile' value='useexternalfile'/>
+ <cd:command name='useexternalfiles' value='useexternalfiles'/>
+ <cd:command name='useexternalsoundtrack' value='useexternalsoundtrack'/>
+ <cd:command name='usemodule' value='usemodule'/>
+ <cd:command name='usemodules' value='usemodules'/>
+ <cd:command name='usepath' value='usedirectory'/>
+ <cd:command name='usereferences' value='usereferences'/>
+ <cd:command name='usespecials' value='usespecials'/>
+ <cd:command name='usesymbols' value='usesymbols'/>
+ <cd:command name='usetypescript' value='usetypescript'/>
+ <cd:command name='usetypescriptfile' value='usetypescriptfile'/>
+ <cd:command name='useurl' value='useurl'/>
+ <cd:command name='version' value='version'/>
+ <cd:command name='vl' value='vl'/>
+ <cd:command name='weekday' value='weekday'/>
+ <cd:command name='whitespace' value='whitespace'/>
+ <cd:command name='wordright' value='wordright'/>
+ <cd:command name='writebetweenlist' value='writebetweenlist'/>
+ <cd:command name='writetolist' value='writetolist'/>
+ <cd:command name='writetoreferencelist' value='writetoreferencelist'/>
+ <cd:command name='writetoregister' value='writetoregister'/>
+ </cd:command>
- <cd:variables>
- <cd:variable name="flushleft" value="flushleft"/>
- <cd:variable name="flushright" value="flushright"/>
- <cd:variable name="center" value="center"/>
- <cd:variable name="flushouter" value="flushouter"/>
- <cd:variable name="flushinner" value="flushinner"/>
- </cd:variables>
-
- <cd:variables>
- <cd:variable name="typing" value="typing"/>
- <cd:variable name="file" value="file"/>
- </cd:variables>
-
- <cd:variables>
- <cd:variable name="formula" value="formula"/>
- <cd:variable name="subformula" value="subformula"/>
- <cd:variable name="formulae" value="formulae"/>
- <cd:variable name="figure" value="figure"/>
- <cd:variable name="figures" value="figures"/>
- <cd:variable name="table" value="table"/>
- <cd:variable name="tables" value="tables"/>
- <cd:variable name="graphic" value="graphic"/>
- <cd:variable name="graphics" value="graphics"/>
- <cd:variable name="intermezzo" value="intermezzo"/>
- <cd:variable name="intermezzi" value="intermezzi"/>
- <cd:variable name="index" value="index"/>
- <cd:variable name="indices" value="indices"/>
- <cd:variable name="abbreviation" value="abbreviation"/>
- <cd:variable name="abbreviations" value="abbreviations"/>
- <cd:variable name="logo" value="logo"/>
- <cd:variable name="logos" value="logos"/>
- <cd:variable name="unit" value="unit"/>
- <cd:variable name="units" value="units"/>
- <cd:variable name="line" value="line"/>
- <cd:variable name="lines" value="lines"/>
- <cd:variable name="framedtext" value="framedtext"/>
- <cd:variable name="quotation" value="quotation"/>
- <cd:variable name="blockquote" value="blockquote"/>
- <cd:variable name="quote" value="quote"/>
- <cd:variable name="speech" value="speech"/>
- <cd:variable name="itemize" value="itemize"/>
- <cd:variable name="mathalignment" value="mathalignment"/>
- <cd:variable name="mathcases" value="mathcases"/>
- <cd:variable name="mathmatrix" value="mathmatrix"/>
- </cd:variables>
-
- <cd:constants>
- <cd:constant name="sorttype" value="sorttype"/>
- <cd:constant name="compress" value="compress"/>
- <cd:constant name="autohang" value="autohang"/>
- <cd:constant name="suffix" value="suffix"/>
- <cd:constant name="leftquotation" value="leftquotation"/>
- <cd:constant name="rightquotation" value="rightquotation"/>
- <cd:constant name="leftquote" value="leftquote"/>
- <cd:constant name="rightquote" value="rightquote"/>
- <cd:constant name="compoundhyphen" value="compoundhyphen"/>
- <cd:constant name="leftcompoundhyphen" value="leftcompoundhyphen"/>
- <cd:constant name="rightcompoundhyphen" value="rightcompoundhyphen"/>
- <cd:constant name="midsentence" value="midsentence"/>
- <cd:constant name="leftsentence" value="leftsentence"/>
- <cd:constant name="rightsentence" value="rightsentence"/>
- <cd:constant name="leftsubsentence" value="leftsubsentence"/>
- <cd:constant name="rightsubsentence" value="rightsubsentence"/>
- <cd:constant name="leftspeech" value="leftspeech"/>
- <cd:constant name="middlespeech" value="middlespeech"/>
- <cd:constant name="rightspeech" value="rightspeech"/>
- <cd:constant name="limittext" value="limittext"/>
- <cd:constant name="date" value="date"/>
- <cd:constant name="spacebefore" value="spacebefore"/>
- <cd:constant name="spaceinbetween" value="spaceinbetween"/>
- <cd:constant name="spaceafter" value="spaceafter"/>
- <cd:constant name="sidespacebefore" value="sidespacebefore"/>
- <cd:constant name="sidespaceafter" value="sidespaceafter"/>
- <cd:constant name="to" value="to"/>
- <cd:constant name="indicator" value="indicator"/>
- <cd:constant name="background" value="background"/>
- <cd:constant name="backgrounddepth" value="backgrounddepth"/>
- <cd:constant name="backgroundcorner" value="backgroundcorner"/>
- <cd:constant name="splitcolor" value="splitcolor"/>
- <cd:constant name="backgroundcolor" value="backgroundcolor"/>
- <cd:constant name="foregroundcolor" value="foregroundcolor"/>
- <cd:constant name="foregroundstyle" value="foregroundstyle"/>
- <cd:constant name="clipoffset" value="clipoffset"/>
- <cd:constant name="backgroundoffset" value="backgroundoffset"/>
- <cd:constant name="backgroundscreen" value="backgroundscreen"/>
- <cd:constant name="backgroundradius" value="backgroundradius"/>
- <cd:constant name="address" value="address"/>
- <cd:constant name="stopper" value="stopper"/>
- <cd:constant name="distance" value="distance"/>
- <cd:constant name="paragraph" value="paragraph"/>
- <cd:constant name="axis" value="axis"/>
- <cd:constant name="author" value="author"/>
- <cd:constant name="auto" value="auto"/>
- <cd:constant name="autofile" value="autofile"/>
- <cd:constant name="balance" value="balance"/>
- <cd:constant name="bookmark" value="bookmark"/>
- <cd:constant name="wfactor" value="wfactor"/>
- <cd:constant name="inner" value="inner"/>
- <cd:constant name="blank" value="blank"/>
- <cd:constant name="obstruction" value="obstruction"/>
- <cd:constant name="blockway" value="blockway"/>
- <cd:constant name="bottomspace" value="bottomspace"/>
- <cd:constant name="top" value="top"/>
- <cd:constant name="topdistance" value="topdistance"/>
- <cd:constant name="topframe" value="topframe"/>
- <cd:constant name="topoffset" value="topoffset"/>
- <cd:constant name="topstate" value="topstate"/>
- <cd:constant name="width" value="width"/>
- <cd:constant name="autowidth" value="autowidth"/>
- <cd:constant name="maxwidth" value="maxwidth"/>
- <cd:constant name="minwidth" value="minwidth"/>
- <cd:constant name="source" value="source"/>
- <cd:constant name="command" value="command"/>
- <cd:constant name="commands" value="commands"/>
- <cd:constant name="component" value="component"/>
- <cd:constant name="contrastcolor" value="contrastcolor"/>
- <cd:constant name="conversion" value="conversion"/>
- <cd:constant name="headconversion" value="headconversion"/>
- <cd:constant name="headlabel" value="headlabel"/>
- <cd:constant name="criterium" value="criterium"/>
- <cd:constant name="date" value="date"/>
- <cd:constant name="default" value="default"/>
- <cd:constant name="depth" value="depth"/>
- <cd:constant name="depthcorrection" value="depthcorrection"/>
- <cd:constant name="continue" value="continue"/>
- <cd:constant name="doublesided" value="doublesided"/>
- <cd:constant name="dummy" value="dummy"/>
- <cd:constant name="unit" value="unit"/>
- <cd:constant name="ownnumber" value="ownnumber"/>
- <cd:constant name="evenmargin" value="evenmargin"/>
- <cd:constant name="expansion" value="expansion"/>
- <cd:constant name="keyexpansion" value="keyexpansion"/>
- <cd:constant name="factor" value="factor"/>
- <cd:constant name="convertfile" value="convertfile"/>
- <cd:constant name="file" value="file"/>
- <cd:constant name="inputfile" value="inputfile"/>
- <cd:constant name="size" value="size"/>
- <cd:constant name="autofocus" value="autofocus"/>
- <cd:constant name="focus" value="focus"/>
- <cd:constant name="directory" value="directory"/>
- <cd:constant name="cache" value="cache"/>
- <cd:constant name="grid" value="grid"/>
- <cd:constant name="big" value="big"/>
- <cd:constant name="get" value="get"/>
- <cd:constant name="hang" value="hang"/>
- <cd:constant name="repeat" value="repeat"/>
- <cd:constant name="hfactor" value="hfactor"/>
- <cd:constant name="corner" value="corner"/>
- <cd:constant name="hoffset" value="hoffset"/>
- <cd:constant name="frames" value="frames"/>
- <cd:constant name="header" value="header"/>
- <cd:constant name="headerdistance" value="headerdistance"/>
- <cd:constant name="headerstate" value="headerstate"/>
- <cd:constant name="height" value="height"/>
- <cd:constant name="maxheight" value="maxheight"/>
- <cd:constant name="minheight" value="minheight"/>
- <cd:constant name="mindepth" value="mindepth"/>
- <cd:constant name="current" value="current"/>
- <cd:constant name="in" value="in"/>
- <cd:constant name="indenting" value="indenting"/>
- <cd:constant name="interaction" value="interaction"/>
- <cd:constant name="interlinespace" value="interlinespace"/>
- <cd:constant name="items" value="items"/>
- <cd:constant name="fallback" value="fallback"/>
- <cd:constant name="frame" value="frame"/>
- <cd:constant name="framedepth" value="framedepth"/>
- <cd:constant name="framecorner" value="framecorner"/>
- <cd:constant name="framecolor" value="framecolor"/>
- <cd:constant name="frameoffset" value="frameoffset"/>
- <cd:constant name="frameradius" value="frameradius"/>
- <cd:constant name="marginedge" value="marginedge"/>
- <cd:constant name="marginedgetext" value="marginedgetext"/>
- <cd:constant name="aligncharacter" value="aligncharacter"/>
- <cd:constant name="alignmentcharacter" value="alignmentcharacter"/>
- <cd:constant name="small" value="small"/>
- <cd:constant name="color" value="color"/>
- <cd:constant name="column" value="column"/>
- <cd:constant name="columns" value="columns"/>
- <cd:constant name="columndistance" value="columndistance"/>
- <cd:constant name="headcommand" value="headcommand"/>
- <cd:constant name="headcolor" value="headcolor"/>
- <cd:constant name="headstyle" value="headstyle"/>
- <cd:constant name="afterhead" value="afterhead"/>
- <cd:constant name="veroffset" value="veroffset"/>
- <cd:constant name="coupling" value="coupling"/>
- <cd:constant name="couplingway" value="couplingway"/>
- <cd:constant name="beforehead" value="beforehead"/>
- <cd:constant name="topspace" value="topspace"/>
- <cd:constant name="bodyfont" value="bodyfont"/>
- <cd:constant name="label" value="label"/>
- <cd:constant name="empty" value="empty"/>
- <cd:constant name="style" value="style"/>
- <cd:constant name="rule" value="rule"/>
- <cd:constant name="rulethickness" value="rulethickness"/>
- <cd:constant name="rulecolor" value="rulecolor"/>
- <cd:constant name="list" value="list"/>
- <cd:constant name="leftwidth" value="leftwidth"/>
- <cd:constant name="leftframe" value="leftframe"/>
- <cd:constant name="leftcolor" value="leftcolor"/>
- <cd:constant name="leftstyle" value="leftstyle"/>
- <cd:constant name="leftmargin" value="leftmargin"/>
- <cd:constant name="innermargin" value="innermargin"/>
- <cd:constant name="outermargin" value="outermargin"/>
- <cd:constant name="leftmargindistance" value="leftmargindistance"/>
- <cd:constant name="leftoffset" value="leftoffset"/>
- <cd:constant name="leftedge" value="leftedge"/>
- <cd:constant name="leftedgedistance" value="leftedgedistance"/>
- <cd:constant name="lefttext" value="lefttext"/>
- <cd:constant name="left" value="left"/>
- <cd:constant name="nleft" value="nleft"/>
- <cd:constant name="logo" value="logo"/>
- <cd:constant name="logos" value="logos"/>
- <cd:constant name="local" value="local"/>
- <cd:constant name="margin" value="margin"/>
- <cd:constant name="margindistance" value="margindistance"/>
- <cd:constant name="margintext" value="margintext"/>
- <cd:constant name="marking" value="marking"/>
- <cd:constant name="marcolor" value="marcolor"/>
- <cd:constant name="marstyle" value="marstyle"/>
- <cd:constant name="menu" value="menu"/>
- <cd:constant name="splitmethod" value="splitmethod"/>
- <cd:constant name="textmethod" value="textmethod"/>
- <cd:constant name="sidemethod" value="sidemethod"/>
- <cd:constant name="method" value="method"/>
- <cd:constant name="middle" value="middle"/>
- <cd:constant name="middletext" value="middletext"/>
- <cd:constant name="max" value="max"/>
- <cd:constant name="min" value="min"/>
- <cd:constant name="sample" value="sample"/>
- <cd:constant name="after" value="after"/>
- <cd:constant name="name" value="name"/>
- <cd:constant name="commandafter" value="commandafter"/>
- <cd:constant name="ntop" value="ntop"/>
- <cd:constant name="level" value="level"/>
- <cd:constant name="levels" value="levels"/>
- <cd:constant name="nbottom" value="nbottom"/>
- <cd:constant name="norm" value="norm"/>
- <cd:constant name="nlines" value="nlines"/>
- <cd:constant name="number" value="number"/>
- <cd:constant name="numbercommand" value="numbercommand"/>
- <cd:constant name="numbering" value="numbering"/>
- <cd:constant name="numbercolor" value="numbercolor"/>
- <cd:constant name="numberstyle" value="numberstyle"/>
- <cd:constant name="numberseparator" value="numberseparator"/>
- <cd:constant name="object" value="object"/>
- <cd:constant name="offset" value="offset"/>
- <cd:constant name="bottom" value="bottom"/>
- <cd:constant name="bottomdistance" value="bottomdistance"/>
- <cd:constant name="bottomframe" value="bottomframe"/>
- <cd:constant name="bottomoffset" value="bottomoffset"/>
- <cd:constant name="bottomstate" value="bottomstate"/>
- <cd:constant name="oddmargin" value="oddmargin"/>
- <cd:constant name="at" value="at"/>
- <cd:constant name="option" value="option"/>
- <cd:constant name="page" value="page"/>
- <cd:constant name="pagecommand" value="pagecommand"/>
- <cd:constant name="pagecolor" value="pagecolor"/>
- <cd:constant name="pagestyle" value="pagestyle"/>
- <cd:constant name="pagenumber" value="pagenumber"/>
- <cd:constant name="headnumber" value="headnumber"/>
- <cd:constant name="pageboundaries" value="pageboundaries"/>
- <cd:constant name="pagestate" value="pagestate"/>
- <cd:constant name="palet" value="palet"/>
- <cd:constant name="paper" value="paper"/>
- <cd:constant name="location" value="location"/>
- <cd:constant name="placestopper" value="placestopper"/>
- <cd:constant name="place" value="place"/>
- <cd:constant name="placehead" value="placehead"/>
- <cd:constant name="position" value="position"/>
- <cd:constant name="prefix" value="prefix"/>
- <cd:constant name="preset" value="preset"/>
- <cd:constant name="preview" value="preview"/>
- <cd:constant name="process" value="process"/>
- <cd:constant name="spot" value="spot"/>
- <cd:constant name="dot" value="dot"/>
- <cd:constant name="arrow" value="arrow"/>
- <cd:constant name="edge" value="edge"/>
- <cd:constant name="edgedistance" value="edgedistance"/>
- <cd:constant name="screen" value="screen"/>
- <cd:constant name="rightwidth" value="rightwidth"/>
- <cd:constant name="rightframe" value="rightframe"/>
- <cd:constant name="rightcolor" value="rightcolor"/>
- <cd:constant name="rightstyle" value="rightstyle"/>
- <cd:constant name="rightmargin" value="rightmargin"/>
- <cd:constant name="rightmargindistance" value="rightmargindistance"/>
- <cd:constant name="rightoffset" value="rightoffset"/>
- <cd:constant name="rightedge" value="rightedge"/>
- <cd:constant name="rightedgedistance" value="rightedgedistance"/>
- <cd:constant name="righttext" value="righttext"/>
- <cd:constant name="right" value="right"/>
- <cd:constant name="nright" value="nright"/>
- <cd:constant name="reduction" value="reduction"/>
- <cd:constant name="referencing" value="referencing"/>
- <cd:constant name="line" value="line"/>
- <cd:constant name="linecorrection" value="linecorrection"/>
- <cd:constant name="lines" value="lines"/>
- <cd:constant name="stretch" value="stretch"/>
- <cd:constant name="resolution" value="resolution"/>
- <cd:constant name="rotation" value="rotation"/>
- <cd:constant name="orientation" value="orientation"/>
- <cd:constant name="horoffset" value="horoffset"/>
- <cd:constant name="backspace" value="backspace"/>
- <cd:constant name="direction" value="direction"/>
- <cd:constant name="scale" value="scale"/>
- <cd:constant name="separator" value="separator"/>
- <cd:constant name="display" value="display"/>
- <cd:constant name="scope" value="scope"/>
- <cd:constant name="section" value="section"/>
- <cd:constant name="sectionnumber" value="sectionnumber"/>
- <cd:constant name="setups" value="setups"/>
- <cd:constant name="cutspace" value="cutspace"/>
- <cd:constant name="family" value="family"/>
- <cd:constant name="space" value="space"/>
- <cd:constant name="spacing" value="spacing"/>
- <cd:constant name="split" value="split"/>
- <cd:constant name="splitoffset" value="splitoffset"/>
- <cd:constant name="indentnext" value="indentnext"/>
- <cd:constant name="step" value="step"/>
- <cd:constant name="stack" value="stack"/>
- <cd:constant name="start" value="start"/>
- <cd:constant name="state" value="state"/>
- <cd:constant name="stop" value="stop"/>
- <cd:constant name="radius" value="radius"/>
- <cd:constant name="dash" value="dash"/>
- <cd:constant name="sub" value="sub"/>
- <cd:constant name="subtitle" value="subtitle"/>
- <cd:constant name="symbol" value="symbol"/>
- <cd:constant name="closesymbol" value="closesymbol"/>
- <cd:constant name="closecommand" value="closecommand"/>
- <cd:constant name="symbolset" value="symbolset"/>
- <cd:constant name="symcolor" value="symcolor"/>
- <cd:constant name="symstyle" value="symstyle"/>
- <cd:constant name="synonym" value="synonym"/>
- <cd:constant name="synonymcolor" value="synonymcolor"/>
- <cd:constant name="synonymstyle" value="synonymstyle"/>
- <cd:constant name="tab" value="tab"/>
- <cd:constant name="sign" value="sign"/>
- <cd:constant name="text" value="text"/>
- <cd:constant name="listtext" value="listtext"/>
- <cd:constant name="textwidth" value="textwidth"/>
- <cd:constant name="numberwidth" value="numberwidth"/>
- <cd:constant name="textcommand" value="textcommand"/>
- <cd:constant name="textsize" value="textsize"/>
- <cd:constant name="textcolor" value="textcolor"/>
- <cd:constant name="textstyle" value="textstyle"/>
- <cd:constant name="textseparator" value="textseparator"/>
- <cd:constant name="textstate" value="textstate"/>
- <cd:constant name="title" value="title"/>
- <cd:constant name="titlestyle" value="titlestyle"/>
- <cd:constant name="titlecolor" value="titlecolor"/>
- <cd:constant name="titledistance" value="titledistance"/>
- <cd:constant name="titleleft" value="titleleft"/>
- <cd:constant name="titleright" value="titleright"/>
- <cd:constant name="titlecommand" value="titlecommand"/>
- <cd:constant name="aligntitle" value="aligntitle"/>
- <cd:constant name="tolerance" value="tolerance"/>
- <cd:constant name="inbetween" value="inbetween"/>
- <cd:constant name="type" value="type"/>
- <cd:constant name="align" value="align"/>
- <cd:constant name="symalign" value="symalign"/>
- <cd:constant name="urlspace" value="urlspace"/>
- <cd:constant name="urlalternative" value="urlalternative"/>
- <cd:constant name="from" value="from"/>
- <cd:constant name="alternative" value="alternative"/>
- <cd:constant name="increment" value="increment"/>
- <cd:constant name="incrementnumber" value="incrementnumber"/>
- <cd:constant name="resetnumber" value="resetnumber"/>
- <cd:constant name="reference" value="reference"/>
- <cd:constant name="unknownreference" value="unknownreference"/>
- <cd:constant name="footer" value="footer"/>
- <cd:constant name="footerdistance" value="footerdistance"/>
- <cd:constant name="footerstate" value="footerstate"/>
- <cd:constant name="voffset" value="voffset"/>
- <cd:constant name="next" value="next"/>
- <cd:constant name="before" value="before"/>
- <cd:constant name="commandbefore" value="commandbefore"/>
- <cd:constant name="previous" value="previous"/>
- <cd:constant name="previousnumber" value="previousnumber"/>
- <cd:constant name="delay" value="delay"/>
- <cd:constant name="way" value="way"/>
- <cd:constant name="random" value="random"/>
- <cd:constant name="white" value="white"/>
- <cd:constant name="xfactor" value="xfactor"/>
- <cd:constant name="xmax" value="xmax"/>
- <cd:constant name="xoffset" value="xoffset"/>
- <cd:constant name="xscale" value="xscale"/>
- <cd:constant name="xstep" value="xstep"/>
- <cd:constant name="yfactor" value="yfactor"/>
- <cd:constant name="ymax" value="ymax"/>
- <cd:constant name="yoffset" value="yoffset"/>
- <cd:constant name="yscale" value="yscale"/>
- <cd:constant name="ystep" value="ystep"/>
- <cd:constant name="samepage" value="samepage"/>
- <cd:constant name="itemalign" value="itemalign"/>
- <cd:constant name="sidealign" value="sidealign"/>
- <cd:constant name="side" value="side"/>
- <cd:constant name="fieldlayer" value="fieldlayer"/>
- <cd:constant name="textlayer" value="textlayer"/>
- <cd:constant name="fieldbackgroundcolor" value="fieldbackgroundcolor"/>
- <cd:constant name="fieldframecolor" value="fieldframecolor"/>
- <cd:constant name="fieldoffset" value="fieldoffset"/>
- <cd:constant name="action" value="action"/>
- <cd:constant name="openaction" value="openaction"/>
- <cd:constant name="closeaction" value="closeaction"/>
- <cd:constant name="openpageaction" value="openpageaction"/>
- <cd:constant name="closepageaction" value="closepageaction"/>
- <cd:constant name="clickin" value="clickin"/>
- <cd:constant name="clickout" value="clickout"/>
- <cd:constant name="regionin" value="regionin"/>
- <cd:constant name="regionout" value="regionout"/>
- <cd:constant name="focusin" value="focusin"/>
- <cd:constant name="focusout" value="focusout"/>
- <cd:constant name="afterkey" value="afterkey"/>
- <cd:constant name="format" value="format"/>
- <cd:constant name="validate" value="validate"/>
- <cd:constant name="calculate" value="calculate"/>
- <cd:constant name="click" value="click"/>
- <cd:constant name="vcommand" value="vcommand"/>
- <cd:constant name="icommand" value="icommand"/>
- <cd:constant name="ccommand" value="ccommand"/>
- <cd:constant name="textdistance" value="textdistance"/>
- <cd:constant name="numberdistance" value="numberdistance"/>
- <cd:constant name="textmargin" value="textmargin"/>
- <cd:constant name="keyword" value="keyword"/>
- <cd:constant name="deeptextcommand" value="deeptextcommand"/>
- <cd:constant name="deepnumbercommand" value="deepnumbercommand"/>
- </cd:constants>
-
- <cd:constants>
- <cd:constant name="extras" value="extras"/>
- </cd:constants>
-
- <cd:variables>
- <cd:variable name="on" value="on"/>
- <cd:variable name="test" value="test"/>
- <cd:variable name="serried" value="serried"/>
- <cd:variable name="joinedup" value="joinedup"/>
- <cd:variable name="absolute" value="absolute"/>
- <cd:variable name="background" value="background"/>
- <cd:variable name="backward" value="backward"/>
- <cd:variable name="subbackward" value="subbackward"/>
- <cd:variable name="action" value="action"/>
- <cd:variable name="stopper" value="stopper"/>
- <cd:variable name="paragraph" value="paragraph"/>
- <cd:variable name="all" value="all"/>
- <cd:variable name="always" value="always"/>
- <cd:variable name="auto" value="auto"/>
- <cd:variable name="autointro" value="autointro"/>
- <cd:variable name="both" value="both"/>
- <cd:variable name="inner" value="inner"/>
- <cd:variable name="blank" value="blank"/>
- <cd:variable name="disable" value="disable"/>
- <cd:variable name="top" value="top"/>
- <cd:variable name="wide" value="wide"/>
- <cd:variable name="width" value="width"/>
- <cd:variable name="minwidth" value="minwidth"/>
- <cd:variable name="outer" value="outer"/>
- <cd:variable name="numbers" value="numbers"/>
- <cd:variable name="Numbers" value="Numbers"/>
- <cd:variable name="command" value="command"/>
- <cd:variable name="commands" value="commands"/>
- <cd:variable name="concept" value="concept"/>
- <cd:variable name="day" value="day"/>
- <cd:variable name="date" value="date"/>
- <cd:variable name="default" value="default"/>
- <cd:variable name="final" value="final"/>
- <cd:variable name="float" value="float"/>
- <cd:variable name="depth" value="depth"/>
- <cd:variable name="doublesided" value="doublesided"/>
- <cd:variable name="first" value="first"/>
- <cd:variable name="each" value="each"/>
- <cd:variable name="singlesided" value="singlesided"/>
- <cd:variable name="somewhere" value="somewhere"/>
- <cd:variable name="nowhere" value="nowhere"/>
- <cd:variable name="even" value="even"/>
- <cd:variable name="external" value="external"/>
- <cd:variable name="file" value="file"/>
- <cd:variable name="flexible" value="flexible"/>
- <cd:variable name="force" value="force"/>
- <cd:variable name="used" value="used"/>
- <cd:variable name="none" value="none"/>
- <cd:variable name="nomarking" value="nomarking"/>
- <cd:variable name="nonumber" value="nonumber"/>
- <cd:variable name="nowhite" value="nowhite"/>
- <cd:variable name="rotated" value="rotated"/>
- <cd:variable name="mirrored" value="mirrored"/>
- <cd:variable name="global" value="global"/>
- <cd:variable name="grid" value="grid"/>
- <cd:variable name="nogrid" value="nogrid"/>
- <cd:variable name="big" value="big"/>
- <cd:variable name="bigbodyfont" value="bigbodyfont"/>
- <cd:variable name="bigpreference" value="bigpreference"/>
- <cd:variable name="gray" value="gray"/>
- <cd:variable name="halfline" value="halfline"/>
- <cd:variable name="keep" value="keep"/>
- <cd:variable name="hanging" value="hanging"/>
- <cd:variable name="spacing" value="spacing"/>
- <cd:variable name="nospacing" value="nospacing"/>
- <cd:variable name="repeat" value="repeat"/>
- <cd:variable name="fix" value="fix"/>
- <cd:variable name="here" value="here"/>
- <cd:variable name="header" value="header"/>
- <cd:variable name="high" value="high"/>
- <cd:variable name="height" value="height"/>
- <cd:variable name="minheight" value="minheight"/>
- <cd:variable name="horizontal" value="horizontal"/>
- <cd:variable name="current" value="current"/>
- <cd:variable name="hz" value="hz"/>
- <cd:variable name="nohz" value="nohz"/>
- <cd:variable name="italic" value="italic"/>
- <cd:variable name="inherit" value="inherit"/>
- <cd:variable name="inleft" value="inleft"/>
- <cd:variable name="inmargin" value="inmargin"/>
- <cd:variable name="inright" value="inright"/>
- <cd:variable name="interaction" value="interaction"/>
- <cd:variable name="intext" value="intext"/>
- <cd:variable name="intro" value="intro"/>
- <cd:variable name="its" value="its"/>
- <cd:variable name="yes" value="yes"/>
- <cd:variable name="year" value="year"/>
- <cd:variable name="frame" value="frame"/>
- <cd:variable name="marginedge" value="marginedge"/>
- <cd:variable name="cap" value="cap"/>
- <cd:variable name="capital" value="capital"/>
- <cd:variable name="referral" value="referral"/>
- <cd:variable name="small" value="small"/>
- <cd:variable name="smallnormal" value="smallnormal"/>
- <cd:variable name="smallslanted" value="smallslanted"/>
- <cd:variable name="smallslantedbold" value="smallslantedbold"/>
- <cd:variable name="smallitalic" value="smallitalic"/>
- <cd:variable name="smallitalicbold" value="smallitalicbold"/>
- <cd:variable name="smalltype" value="smalltype"/>
- <cd:variable name="smallbold" value="smallbold"/>
- <cd:variable name="smallboldslanted" value="smallboldslanted"/>
- <cd:variable name="smallbolditalic" value="smallbolditalic"/>
- <cd:variable name="smallbodyfont" value="smallbodyfont"/>
- <cd:variable name="split" value="split"/>
- <cd:variable name="toggle" value="wissel"/>
- <cd:variable name="color" value="color"/>
- <cd:variable name="column" value="column"/>
- <cd:variable name="columns" value="columns"/>
- <cd:variable name="head" value="head"/>
- <cd:variable name="low" value="low"/>
- <cd:variable name="last" value="last"/>
- <cd:variable name="label" value="label"/>
- <cd:variable name="lohi" value="lohi"/>
- <cd:variable name="tall" value="tall"/>
- <cd:variable name="empty" value="empty"/>
- <cd:variable name="Character" value="Character"/>
- <cd:variable name="character" value="character"/>
- <cd:variable name="Characters" value="Characters"/>
- <cd:variable name="characters" value="characters"/>
- <cd:variable name="landscape" value="landscape"/>
- <cd:variable name="rule" value="rule"/>
- <cd:variable name="list" value="list"/>
- <cd:variable name="leftmargin" value="leftmargin"/>
- <cd:variable name="leftpage" value="leftpage"/>
- <cd:variable name="leftedge" value="leftedge"/>
- <cd:variable name="left" value="left"/>
- <cd:variable name="local" value="local"/>
- <cd:variable name="new" value="new"/>
- <cd:variable name="old" value="old"/>
- <cd:variable name="MONTH" value="MONTH"/>
- <cd:variable name="month" value="month"/>
- <cd:variable name="mar" value="mar"/>
- <cd:variable name="item" value="item"/>
- <cd:variable name="marking" value="marking"/>
- <cd:variable name="margin" value="margin"/>
- <cd:variable name="max" value="max"/>
- <cd:variable name="min" value="min"/>
- <cd:variable name="mediaeval" value="mediaeval"/>
- <cd:variable name="medium" value="medium"/>
- <cd:variable name="middle" value="middle"/>
- <cd:variable name="after" value="after"/>
- <cd:variable name="name" value="name"/>
- <cd:variable name="opposite" value="opposite"/>
- <cd:variable name="no" value="no"/>
- <cd:variable name="negative" value="negative"/>
- <cd:variable name="positive" value="positive"/>
- <cd:variable name="not" value="not"/>
- <cd:variable name="never" value="never"/>
- <cd:variable name="normal" value="normal"/>
- <cd:variable name="number" value="number"/>
- <cd:variable name="offset" value="offset"/>
- <cd:variable name="unknown" value="unknown"/>
- <cd:variable name="bottom" value="bottom"/>
- <cd:variable name="odd" value="odd"/>
- <cd:variable name="packed" value="packed"/>
- <cd:variable name="unpacked" value="unpacked"/>
- <cd:variable name="makeup" value="makeup"/>
- <cd:variable name="atmargin" value="atmargin"/>
- <cd:variable name="overlay" value="overlay"/>
- <cd:variable name="page" value="page"/>
- <cd:variable name="pagenumber" value="pagenumber"/>
- <cd:variable name="paper" value="paper"/>
- <cd:variable name="display" value="display"/>
- <cd:variable name="reverse" value="reverse"/>
- <cd:variable name="fit" value="fit"/>
- <cd:variable name="nofit" value="nofit"/>
- <cd:variable name="postscript" value="postscript"/>
- <cd:variable name="preview" value="preview"/>
- <cd:variable name="program" value="program"/>
- <cd:variable name="process" value="process"/>
- <cd:variable name="spot" value="spot"/>
- <cd:variable name="dot" value="dot"/>
- <cd:variable name="ran" value="ran"/>
- <cd:variable name="edge" value="edge"/>
- <cd:variable name="screen" value="screen"/>
- <cd:variable name="rectangular" value="rectangular"/>
- <cd:variable name="rightmargin" value="rightmargin"/>
- <cd:variable name="rightpage" value="rightpage"/>
- <cd:variable name="rightedge" value="rightedge"/>
- <cd:variable name="right" value="right"/>
- <cd:variable name="line" value="line"/>
- <cd:variable name="hang" value="hang"/>
- <cd:variable name="register" value="register"/>
- <cd:variable name="relative" value="relative"/>
- <cd:variable name="reset" value="reset"/>
- <cd:variable name="Romannumerals" value="Romannumerals"/>
- <cd:variable name="romannumerals" value="romannumerals"/>
- <cd:variable name="greek" value="greek"/>
- <cd:variable name="Greek" value="Greek"/>
- <cd:variable name="round" value="round"/>
- <cd:variable name="rotate" value="rotate"/>
- <cd:variable name="stretch" value="stretch"/>
- <cd:variable name="backspace" value="backspace"/>
- <cd:variable name="broad" value="broad"/>
- <cd:variable name="row" value="row"/>
- <cd:variable name="slanted" value="slanted"/>
- <cd:variable name="slantedbold" value="slantedbold"/>
- <cd:variable name="synchronize" value="synchronize"/>
- <cd:variable name="italicbold" value="italicbold"/>
- <cd:variable name="sectionnumber" value="sectionnumber"/>
- <cd:variable name="narrow" value="narrow"/>
- <cd:variable name="cutspace" value="cutspace"/>
- <cd:variable name="tolerant" value="tolerant"/>
- <cd:variable name="space" value="space"/>
- <cd:variable name="standard" value="standard"/>
- <cd:variable name="start" value="start"/>
- <cd:variable name="stop" value="stop"/>
- <cd:variable name="strict" value="strict"/>
- <cd:variable name="strut" value="strut"/>
- <cd:variable name="sub" value="sub"/>
- <cd:variable name="sym" value="sym"/>
- <cd:variable name="txt" value="txt"/>
- <cd:variable name="symbol" value="symbol"/>
- <cd:variable name="text" value="text"/>
- <cd:variable name="back" value="back"/>
- <cd:variable name="test" value="test"/>
- <cd:variable name="inbetween" value="inbetween"/>
- <cd:variable name="type" value="type"/>
- <cd:variable name="off" value="off"/>
- <cd:variable name="url" value="url"/>
- <cd:variable name="URL" value="URL"/>
- <cd:variable name="fixed" value="fixed"/>
- <cd:variable name="loose" value="loose"/>
- <cd:variable name="continue" value="continue"/>
- <cd:variable name="vertical" value="vertical"/>
- <cd:variable name="bold" value="bold"/>
- <cd:variable name="sansbold" value="sansbold"/>
- <cd:variable name="boldslanted" value="boldslanted"/>
- <cd:variable name="bolditalic" value="bolditalic"/>
- <cd:variable name="quadruple" value="quadruple"/>
- <cd:variable name="footer" value="footer"/>
- <cd:variable name="next" value="next"/>
- <cd:variable name="before" value="before"/>
- <cd:variable name="foreground" value="foreground"/>
- <cd:variable name="preference" value="preference"/>
- <cd:variable name="temporary" value="temporary"/>
- <cd:variable name="forward" value="forward"/>
- <cd:variable name="subforward" value="subforward"/>
- <cd:variable name="previous" value="previous"/>
- <cd:variable name="value" value="value"/>
- <cd:variable name="week" value="week"/>
- <cd:variable name="weekday" value="weekday"/>
- <cd:variable name="WEEKDAY" value="WEEKDAY"/>
- <cd:variable name="random" value="random"/>
- <cd:variable name="white" value="white"/>
- <cd:variable name="very" value="very"/>
- <cd:variable name="verytolerant" value="verytolerant"/>
- <cd:variable name="verystrict" value="verystrict"/>
- <cd:variable name="see" value="see"/>
- <cd:variable name="smallcaps" value="smallcaps"/>
- <cd:variable name="WORD" value="WORD"/>
- <cd:variable name="firstpage" value="firstpage"/>
- <cd:variable name="firstcolumn" value="firstcolumn"/>
- <cd:variable name="previouspage" value="previouspage"/>
- <cd:variable name="nextpage" value="nextpage"/>
- <cd:variable name="lastpage" value="lastpage"/>
- <cd:variable name="lastcolumn" value="lastcolumn"/>
- <cd:variable name="lastpagenumber" value="lastpagenumber"/>
- <cd:variable name="subpage" value="subpage"/>
- <cd:variable name="firstsubpage" value="firstsubpage"/>
- <cd:variable name="previoussubpage" value="previoussubpage"/>
- <cd:variable name="nextsubpage" value="nextsubpage"/>
- <cd:variable name="lastsubpage" value="lastsubpage"/>
- <cd:variable name="nextevenpage" value="nextevenpage"/>
- <cd:variable name="nextoddpage" value="nextoddpage"/>
- <cd:variable name="previousevenpage" value="previousevenpage"/>
- <cd:variable name="previousoddpage" value="previousoddpage"/>
- <cd:variable name="readonly" value="readonly"/>
- <cd:variable name="required" value="required"/>
- <cd:variable name="protected" value="protected"/>
- <cd:variable name="sorted" value="sorted"/>
- <cd:variable name="unavailable" value="unavailable"/>
- <cd:variable name="hidden" value="hidden"/>
- <cd:variable name="printable" value="printable"/>
- <cd:variable name="bookmark" value="bookmark"/>
- <cd:variable name="nocheck" value="nocheck"/>
- <cd:variable name="innermargin" value="innermargin"/>
- <cd:variable name="outermargin" value="outermargin"/>
- <cd:variable name="inneredge" value="inneredge"/>
- <cd:variable name="outeredge" value="outeredge"/>
- <cd:variable name="controls" value="controls"/>
- <cd:variable name="nothanging" value="nothanging"/>
- <cd:variable name="hyphenated" value="hyphenated"/>
- <cd:variable name="nothyphenated" value="nothyphenated"/>
- <cd:variable name="overprint" value="overprint"/>
- <cd:variable name="knockout" value="knockout"/>
- <cd:variable name="xml" value="xml"/>
- <cd:variable name="enumeration" value="enumeration"/>
- <cd:variable name="description" value="description"/>
- <cd:variable name="lefthanging" value="lefthanging"/>
- <cd:variable name="righthanging" value="righthanging"/>
- </cd:variables>
-
- <cd:constants>
- <cd:constant name="controls" value="controls"/>
- <cd:constant name="global" value="global"/>
- <cd:constant name="overprint" value="overprint"/>
- </cd:constants>
-
- <cd:variables>
- <cd:variable name="conversion" value="conversion"/>
- <cd:variable name="by" value="by"/>
- </cd:variables>
-
- <cd:constants>
- <cd:constant name="dx" value="dx"/>
- <cd:constant name="dy" value="dy"/>
- <cd:constant name="nx" value="nx"/>
- <cd:constant name="ny" value="ny"/>
- <cd:constant name="nr" value="nr"/>
- <cd:constant name="nl" value="nl"/>
- <cd:constant name="nc" value="nc"/>
- <cd:constant name="sx" value="sx"/>
- <cd:constant name="sy" value="sy"/>
- <cd:constant name="n" value="n"/>
- <cd:constant name="vfil" value="vfil"/>
- <cd:constant name="hfil" value="hfil"/>
- <cd:constant name="strut" value="strut"/>
- <cd:constant name="autostrut" value="autostrut"/>
- <cd:constant name="reset" value="reset"/>
- <cd:constant name="set" value="set"/>
- <cd:constant name="escape" value="escape"/>
- <cd:constant name="apa" value="apa"/>
- </cd:constants>
-
- <cd:variables>
- <cd:variable name="calligraphic" value="calligraphic"/>
- <cd:variable name="handwritten" value="handwritten"/>
- <cd:variable name="sansserif" value="sansserif"/>
- <cd:variable name="roman" value="roman"/>
- <cd:variable name="teletype" value="teletype"/>
- <cd:variable name="type" value="type"/>
- <cd:variable name="serif" value="serif"/>
- <cd:variable name="regular" value="regular"/>
- <cd:variable name="support" value="support"/>
- <cd:variable name="sans" value="sans"/>
- <cd:variable name="mono" value="mono"/>
- </cd:variables>
-
- <cd:elements>
- <cd:element name="begin" value="begin"/>
- <cd:element name="end" value="end"/>
- <cd:element name="coupled" value="coupled"/>
- <cd:element name="get" value="get"/>
- <cd:element name="currentlocal" value="currentlocal"/>
- <cd:element name="endsetup" value="endsetup"/>
- <cd:element name="load" value="load"/>
- <cd:element name="emptyone" value="empty"/>
- <cd:element name="emptytwo" value="empty"/>
- <cd:element name="list" value="list"/>
- <cd:element name="listof" value="listof"/>
- <cd:element name="local" value="local"/>
- <cd:element name="place" value="place"/>
- <cd:element name="reserve" value="reserve"/>
- <cd:element name="start" value="start"/>
- <cd:element name="setup" value="setup"/>
- <cd:element name="stop" value="stop"/>
- <cd:element name="increment" value="increment"/>
- <cd:element name="next" value="next"/>
- <cd:element name="complete" value="complete"/>
- <cd:element name="previous" value="previous"/>
- <cd:element name="previouslocal" value="previouslocal"/>
- <cd:element name="see" value="see"/>
- <cd:element name="type" value="type"/>
- <cd:element name="makeup" value="makeup"/>
- <cd:element name="text" value="text"/>
- </cd:elements>
-
- <cd:variables>
- <cd:variable name="buffer" value="buffer"/>
- <cd:variable name="linenote" value="linenote"/>
- <cd:variable name="comment" value="comment"/>
- <cd:variable name="interactionmenu" value="interactionmenu"/>
- <cd:variable name="postponing" value="postponing"/>
- <cd:variable name="hiding" value="hiding"/>
- <cd:variable name="tabulate" value="tabulate"/>
- <cd:variable name="tabulatehead" value="tabulatehead"/>
- <cd:variable name="tabulatetail" value="tabulatetail"/>
- <cd:variable name="fact" value="fact"/>
- <cd:variable name="legend" value="legend"/>
- <cd:variable name="formula" value="formula"/>
- <cd:variable name="tablehead" value="tablehead"/>
- <cd:variable name="tabletail" value="tabletail"/>
- <cd:variable name="setups" value="setups"/>
- <cd:variable name="helptext" value="helptext"/>
- <cd:variable name="localenvironment" value="localenvironment"/>
- <cd:variable name="sectionblockenvironment" value="sectionblockenvironment"/>
- <cd:variable name="pagecomment" value="pagecomment"/>
- </cd:variables>
-
- <cd:variables>
- <cd:variable name="FirstPage" value="FirstPage"/>
- <cd:variable name="PreviousPage" value="PreviousPage"/>
- <cd:variable name="NextPage" value="NextPage"/>
- <cd:variable name="LastPage" value="LastPage"/>
- <cd:variable name="PreviousJump" value="PreviousJump"/>
- <cd:variable name="NextJump" value="NextJump"/>
- <cd:variable name="ToggleViewer" value="ToggleViewer"/>
- <cd:variable name="ExitViewer" value="ExitViewer"/>
- <cd:variable name="CloseDocument" value="CloseDocument"/>
- <cd:variable name="SaveDocument" value="SaveDocument"/>
- <cd:variable name="SaveNamedDocument" value="SaveNamedDocument"/>
- <cd:variable name="OpenNamedDocument" value="OpenNamedDocument"/>
- <cd:variable name="ViewerHelp" value="ViewerHelp"/>
- <cd:variable name="PrintDocument" value="PrintDocument"/>
- <cd:variable name="SearchDocument" value="SearchDocument"/>
- <cd:variable name="SearchAgain" value="SearchAgain"/>
- <cd:variable name="Query" value="Query"/>
- <cd:variable name="QueryAgain" value="QueryAgain"/>
- <cd:variable name="GotoPage" value="GotoPage"/>
- <cd:variable name="StartMovie" value="StartMovie"/>
- <cd:variable name="StopMovie" value="StopMovie"/>
- <cd:variable name="PauseMovie" value="PauseMovie"/>
- <cd:variable name="ResumeMovie" value="ResumeMovie"/>
- <cd:variable name="StartSound" value="StartSound"/>
- <cd:variable name="StopSound" value="StopSound"/>
- <cd:variable name="PauseSound" value="PauseSound"/>
- <cd:variable name="ResumeSound" value="ResumeSound"/>
- <cd:variable name="StartRendering" value="StartRendering"/>
- <cd:variable name="StopRendering" value="StopRendering"/>
- <cd:variable name="PauseRendering" value="PauseRendering"/>
- <cd:variable name="ResumeRendering" value="ResumeRendering"/>
- <cd:variable name="SaveForm" value="SaveForm"/>
- <cd:variable name="LoadForm" value="LoadForm"/>
- <cd:variable name="ResetForm" value="ResetForm"/>
- <cd:variable name="SubmitForm" value="SubmitForm"/>
- <cd:variable name="HideField" value="HideField"/>
- <cd:variable name="ShowField" value="ShowField"/>
- <cd:variable name="FitWidth" value="FitWidth"/>
- <cd:variable name="FitHeight" value="FitHeight"/>
- <cd:variable name="HideLayer" value="HideLayer"/>
- <cd:variable name="VideLayer" value="VideLayer"/>
- <cd:variable name="ToggleLayer" value="ToggleLayer"/>
- <cd:variable name="ShowThumbs" value="ShowThumbs"/>
- <cd:variable name="ShowBookmarks" value="ShowBookmarks"/>
- </cd:variables>
-
- <cd:variables>
- <cd:variable name="New" value="New"/>
- <cd:variable name="Balloon" value="Balloon"/>
- <cd:variable name="Addition" value="Addition"/>
- <cd:variable name="Help" value="Help"/>
- <cd:variable name="Paragraph" value="Paragraph"/>
- <cd:variable name="Key" value="Key"/>
- </cd:variables>
-
- <cd:constants>
- <cd:constant name="bet" value="bet"/>
- <cd:constant name="dat" value="dat"/>
- <cd:constant name="ken" value="ken"/>
- <cd:constant name="ref" value="ref"/>
- </cd:constants>
-
- <cd:variables>
- <cd:variable name="formeel" value="formeel"/>
- <cd:variable name="informeel" value="informeel"/>
- <cd:variable name="rekening" value="rekening"/>
- <cd:variable name="sticker" value="sticker"/>
- <cd:variable name="sheet" value="sheet"/>
- <cd:variable name="brief" value="brief"/>
- <cd:variable name="ls" value="ls"/>
- </cd:variables>
-
- <cd:commands>
- <cd:command name="language" value="language"/>
- <cd:command name="mainlanguage" value="mainlanguage"/>
- <cd:command name="translate" value="translate"/>
- <cd:command name="installlanguage" value="installlanguage"/>
- <cd:command name="setuplanguage" value="setuplanguage"/>
- <cd:command name="showmakeup" value="showmakeup"/>
- <cd:command name="useencoding" value="useencoding"/>
- <cd:command name="usespecials" value="usespecials"/>
- <cd:command name="defineoutput" value="defineoutput"/>
- <cd:command name="setupoutput" value="setupoutput"/>
- <cd:command name="defineaccent" value="defineaccent"/>
- <cd:command name="definecharacter" value="definecharacter"/>
- <cd:command name="definecommand" value="definecommand"/>
- <cd:command name="startcoding" value="startcoding"/>
- <cd:command name="stopcoding" value="stopcoding"/>
- <cd:command name="definebodyfontenvironment" value="definebodyfontenvironment"/>
- <cd:command name="setupbodyfontenvironment" value="setupbodyfontenvironment"/>
- <cd:command name="definebodyfont" value="definebodyfont"/>
- <cd:command name="definefont" value="definefont"/>
- <cd:command name="definefontsynonym" value="definefontsynonym"/>
- <cd:command name="definestyle" value="definestyle"/>
- <cd:command name="definefontstyle" value="definefontstyle"/>
- <cd:command name="setupstrut" value="setupstrut"/>
- <cd:command name="setuptype" value="setuptype"/>
- <cd:command name="type" value="type"/>
- <cd:command name="typ" value="typ"/>
- <cd:command name="arg" value="arg"/>
- <cd:command name="tex" value="tex"/>
- <cd:command name="definetyping" value="definetyping"/>
- <cd:command name="definetype" value="definetype"/>
- <cd:command name="setuptyping" value="setuptyping"/>
- <cd:command name="typefile" value="typefile"/>
- <cd:command name="setupfootnotes" value="setupfootnotes"/>
- <cd:command name="setupfootnotedefinition" value="setupfootnotedefinition"/>
- <cd:command name="note" value="note"/>
- <cd:command name="footnote" value="footnote"/>
- <cd:command name="footnotetext" value="footnotetext"/>
- <cd:command name="startlocalfootnotes" value="startlocalfootnotes"/>
- <cd:command name="stoplocalfootnotes" value="stoplocalfootnotes"/>
- <cd:command name="placelocalfootnotes" value="placelocalfootnotes"/>
- <cd:command name="placefootnotes" value="placefootnotes"/>
- <cd:command name="currentdate" value="currentdate"/>
- <cd:command name="date" value="date"/>
- <cd:command name="weekday" value="weekday"/>
- <cd:command name="WEEKDAY" value="WEEKDAY"/>
- <cd:command name="month" value="month"/>
- <cd:command name="MONTH" value="MONTH"/>
- <cd:command name="Numbers" value="Numbers"/>
- <cd:command name="numbers" value="numbers"/>
- <cd:command name="romannumerals" value="romannumerals"/>
- <cd:command name="Romannumerals" value="Romannumerals"/>
- <cd:command name="character" value="character"/>
- <cd:command name="Character" value="Character"/>
- <cd:command name="characters" value="characters"/>
- <cd:command name="Characters" value="Characters"/>
- <cd:command name="unknown" value="unknown"/>
- <cd:command name="definesymbol" value="definesymbol"/>
- <cd:command name="definefiguresymbol" value="definefiguresymbol"/>
- <cd:command name="symbol" value="symbol"/>
- <cd:command name="setupsymbolset" value="setupsymbolset"/>
- <cd:command name="showsymbolset" value="showsymbolset"/>
- <cd:command name="startsymbolset" value="startsymbolset"/>
- <cd:command name="usesymbols" value="usesymbols"/>
- <cd:command name="defineconversion" value="defineconversion"/>
- <cd:command name="convertnumber" value="convertnumber"/>
- <cd:command name="setupcapitals" value="setupcapitals"/>
- <cd:command name="smallcapped" value="cap"/>
- <cd:command name="notsmallcapped" value="nocap"/>
- <cd:command name="CAPPED" value="CAP"/>
- <cd:command name="SmallCapped" value="Cap"/>
- <cd:command name="SmallCaps" value="Caps"/>
- <cd:command name="WORD" value="WORD"/>
- <cd:command name="WORDS" value="WORDS"/>
- <cd:command name="Word" value="Word"/>
- <cd:command name="Words" value="Words"/>
- <cd:command name="stretched" value="stretched"/>
- <cd:command name="overstrike" value="overstrike"/>
- <cd:command name="overstrikes" value="overstrikes"/>
- <cd:command name="overbar" value="overbar"/>
- <cd:command name="overbars" value="overbars"/>
- <cd:command name="underbar" value="underbar"/>
- <cd:command name="underbars" value="underbars"/>
- <cd:command name="setupunderbar" value="setupunderbar"/>
- <cd:command name="setupbodyfont" value="setupbodyfont"/>
- <cd:command name="switchtobodyfont" value="switchtobodyfont"/>
- <cd:command name="showbodyfont" value="showbodyfont"/>
- <cd:command name="showbodyfontenvironment" value="showbodyfontenvironment"/>
- <cd:command name="headtext" value="headtext"/>
- <cd:command name="labeltext" value="labeltext"/>
- <cd:command name="LABELTEXT" value="LABELTEXT"/>
- <cd:command name="setupheadtext" value="setupheadtext"/>
- <cd:command name="setuplabeltext" value="setuplabeltext"/>
- <cd:command name="marginrule" value="marginrule"/>
- <cd:command name="startmarginrule" value="startmarginrule"/>
- <cd:command name="stopmarginrule" value="stopmarginrule"/>
- <cd:command name="setupmarginrules" value="setupmarginrules"/>
- <cd:command name="blackrule" value="blackrule"/>
- <cd:command name="blackrules" value="blackrules"/>
- <cd:command name="setupblackrules" value="setupblackrules"/>
- <cd:command name="setupscreens" value="setupscreens"/>
- <cd:command name="framed" value="framed"/>
- <cd:command name="inframed" value="inframed"/>
- <cd:command name="mframed" value="maframed"/>
- <cd:command name="inmframed" value="inmaframed"/>
- <cd:command name="setupframed" value="setupframed"/>
- <cd:command name="setuplinewidth" value="setuplinewidth"/>
- <cd:command name="setupthinrules" value="setupthinrules"/>
- <cd:command name="thinrule" value="thinrule"/>
- <cd:command name="thinrules" value="thinrules"/>
- <cd:command name="hairline" value="hairline"/>
- <cd:command name="vl" value="vl"/>
- <cd:command name="hl" value="hl"/>
- <cd:command name="defineframed" value="defineframed"/>
- <cd:command name="defineframedtext" value="defineframedtext"/>
- <cd:command name="setupframedtexts" value="setupframedtexts"/>
- <cd:command name="defineoverlay" value="defineoverlay"/>
- <cd:command name="definelayer" value="definelayer"/>
- <cd:command name="background" value="background"/>
- <cd:command name="startbackground" value="startbackground"/>
- <cd:command name="stopbackground" value="stopbackground"/>
- <cd:command name="setupbackground" value="setupbackground"/>
- <cd:command name="fillinrules" value="fillinrules"/>
- <cd:command name="setupfillinrules" value="setupfillinrules"/>
- <cd:command name="fillintext" value="fillintext"/>
- <cd:command name="setupfillinlines" value="setupfillinlines"/>
- <cd:command name="fillinline" value="fillinline"/>
- <cd:command name="setuptextrules" value="setuptextrules"/>
- <cd:command name="textrule" value="textrule"/>
- <cd:command name="starttextrule" value="starttextrule"/>
- <cd:command name="stoptextrule" value="stoptextrule"/>
- <cd:command name="usemodule" value="usemodule"/>
- <cd:command name="usemodules" value="usemodules"/>
- <cd:command name="starttext" value="starttext"/>
- <cd:command name="stoptext" value="stoptext"/>
- <cd:command name="margintitle" value="margintitle"/>
- <cd:command name="marginword" value="marginword"/>
- <cd:command name="margintext" value="margintext"/>
- <cd:command name="inleft" value="inleft"/>
- <cd:command name="inmargin" value="inmargin"/>
- <cd:command name="inothermargin" value="inothermargin"/>
- <cd:command name="inright" value="inright"/>
- <cd:command name="ininner" value="ininner"/>
- <cd:command name="inouter" value="inouter"/>
- <cd:command name="startmarginblock" value="startmarginblock"/>
- <cd:command name="stopmarginblock" value="stopmarginblock"/>
- <cd:command name="defineinmargin" value="defineinmargin"/>
- <cd:command name="setupinmargin" value="setupinmargin"/>
- <cd:command name="setupmarginblocks" value="setupmarginblocks"/>
- <cd:command name="inleftedge" value="inleftedge"/>
- <cd:command name="inleftmargin" value="inleftmargin"/>
- <cd:command name="inrightmargin" value="inrightmargin"/>
- <cd:command name="inrightedge" value="inrightedge"/>
- <cd:command name="atleftmargin" value="atleftmargin"/>
- <cd:command name="atrightmargin" value="atrightmargin"/>
- <cd:command name="wordright" value="wordright"/>
- <cd:command name="defineblank" value="defineblank"/>
- <cd:command name="blank" value="blank"/>
- <cd:command name="setupblank" value="setupblank"/>
- <cd:command name="correctwhitespace" value="correctwhitespace"/>
- <cd:command name="fixedspaces" value="fixedspaces"/>
- <cd:command name="fixedspace" value="fixedspace"/>
- <cd:command name="nospace" value="nospace"/>
- <cd:command name="space" value="space"/>
- <cd:command name="nowhitespace" value="nowhitespace"/>
- <cd:command name="packed" value="packed"/>
- <cd:command name="startpacked" value="startpacked"/>
- <cd:command name="stoppacked" value="stoppacked"/>
- <cd:command name="startunpacked" value="startunpacked"/>
- <cd:command name="stopunpacked" value="stopunpacked"/>
- <cd:command name="startlinecorrection" value="startlinecorrection"/>
- <cd:command name="stoplinecorrection" value="stoplinecorrection"/>
- <cd:command name="godown" value="godown"/>
- <cd:command name="whitespace" value="whitespace"/>
- <cd:command name="noindenting" value="noindenting"/>
- <cd:command name="indenting" value="indenting"/>
- <cd:command name="setupindenting" value="setupindenting"/>
- <cd:command name="startalignment" value="startalignment"/>
- <cd:command name="stopalignment" value="stopalignment"/>
- <cd:command name="startlines" value="startlines"/>
- <cd:command name="stoplines" value="stoplines"/>
- <cd:command name="setupparagraphnumbering" value="setupparagraphnumbering"/>
- <cd:command name="setuplinenumbering" value="setuplinenumbering"/>
- <cd:command name="startlinenumbering" value="startlinenumbering"/>
- <cd:command name="stoplinenumbering" value="stoplinenumbering"/>
- <cd:command name="startline" value="startline"/>
- <cd:command name="stopline" value="stopline"/>
- <cd:command name="someline" value="someline"/>
- <cd:command name="inline" value="inline"/>
- <cd:command name="crlf" value="crlf"/>
- <cd:command name="emptylines" value="emptylines"/>
- <cd:command name="setuplines" value="setuplines"/>
- <cd:command name="startnarrower" value="startnarrower"/>
- <cd:command name="stopnarrower" value="stopnarrower"/>
- <cd:command name="setupnarrower" value="setupnarrower"/>
- <cd:command name="definetabulate" value="definetabulate"/>
- <cd:command name="setuptabulate" value="setuptabulate"/>
- <cd:command name="starttable" value="starttable"/>
- <cd:command name="stoptable" value="stoptable"/>
- <cd:command name="starttables" value="starttables"/>
- <cd:command name="stoptables" value="stoptables"/>
- <cd:command name="setuptables" value="setuptables"/>
- <cd:command name="definetabletemplate" value="definetabletemplate"/>
- <cd:command name="page" value="page"/>
- <cd:command name="testcolumn" value="testcolumn"/>
- <cd:command name="testpage" value="testpage"/>
- <cd:command name="couplepage" value="couplepage"/>
- <cd:command name="pagetype" value="pagetype"/>
- <cd:command name="processpage" value="processpage"/>
- <cd:command name="couplepaper" value="couplepaper"/>
- <cd:command name="selectpaper" value="selectpaper"/>
- <cd:command name="screen" value="screen"/>
- <cd:command name="definesection" value="definesection"/>
- <cd:command name="definesectionblock" value="definesectionblock"/>
- <cd:command name="setupsectionblock" value="setupsectionblock"/>
- <cd:command name="setupsection" value="setupsection"/>
- <cd:command name="notopandbottomlines" value="notopandbottomlines"/>
- <cd:command name="noheaderandfooterlines" value="noheaderandfooterlines"/>
- <cd:command name="setuptop" value="setuptop"/>
- <cd:command name="setuptoptexts" value="setuptoptexts"/>
- <cd:command name="setupheader" value="setupheader"/>
- <cd:command name="setupheadertexts" value="setupheadertexts"/>
- <cd:command name="setuppagenumbering" value="setuppagenumbering"/>
- <cd:command name="getnumber" value="getnumber"/>
- <cd:command name="incrementnumber" value="incrementnumber"/>
- <cd:command name="decrementnumber" value="decrementnumber"/>
- <cd:command name="resetnumber" value="resetnumber"/>
- <cd:command name="setnumber" value="setnumber"/>
- <cd:command name="setupnumber" value="setupnumber"/>
- <cd:command name="setupbottom" value="setupbottom"/>
- <cd:command name="setupbottomtexts" value="setupbottomtexts"/>
- <cd:command name="setupfooter" value="setupfooter"/>
- <cd:command name="setupfootertexts" value="setupfootertexts"/>
- <cd:command name="setuppagenumber" value="setuppagenumber"/>
- <cd:command name="setupsubpagenumber" value="setupsubpagenumber"/>
- <cd:command name="subpagenumber" value="subpagenumber"/>
- <cd:command name="setuptext" value="setuptext"/>
- <cd:command name="setuptexttexts" value="setuptexttexts"/>
- <cd:command name="settextcontent" value="settextcontent"/>
- <cd:command name="resettext" value="resettextcontent"/>
- <cd:command name="definetext" value="definetext"/>
- <cd:command name="pagenumber" value="pagenumber"/>
- <cd:command name="completepagenumber" value="completepagenumber"/>
- <cd:command name="placepagenumber" value="placepagenumber"/>
- <cd:command name="items" value="items"/>
- <cd:command name="setupitems" value="setupitems"/>
- <cd:command name="leftaligned" value="leftaligned"/>
- <cd:command name="midaligned" value="midaligned"/>
- <cd:command name="rightaligned" value="rightaligned"/>
- <cd:command name="startcolumns" value="startcolumns"/>
- <cd:command name="stopcolumns" value="stopcolumns"/>
- <cd:command name="setupcolumns" value="setupcolumns"/>
- <cd:command name="column" value="column"/>
- <cd:command name="head" value="head"/>
- <cd:command name="but" value="but"/>
- <cd:command name="item" value="item"/>
- <cd:command name="nop" value="nop"/>
- <cd:command name="mar" value="mar"/>
- <cd:command name="sym" value="sym"/>
- <cd:command name="txt" value="txt"/>
- <cd:command name="its" value="its"/>
- <cd:command name="ran" value="ran"/>
- <cd:command name="headsym" value="headsym"/>
- <cd:command name="defineitemgroup" value="defineitemgroup"/>
- <cd:command name="setupitemgroup" value="setupitemgroup"/>
- <cd:command name="setupitemgroups" value="setupitemgroups"/>
- <cd:command name="definehead" value="definehead"/>
- <cd:command name="setuphead" value="setuphead"/>
- <cd:command name="setupheads" value="setupheads"/>
- <cd:command name="setupheadnumber" value="setupheadnumber"/>
- <cd:command name="headnumber" value="headnumber"/>
- <cd:command name="currentheadnumber" value="currentheadnumber"/>
- <cd:command name="determineheadnumber" value="determineheadnumber"/>
- <cd:command name="resetmarking" value="resetmarking"/>
- <cd:command name="setupmarking" value="setupmarking"/>
- <cd:command name="definemarking" value="definemarking"/>
- <cd:command name="nomarking" value="nomarking"/>
- <cd:command name="marking" value="marking"/>
- <cd:command name="decouplemarking" value="decouplemarking"/>
- <cd:command name="couplemarking" value="couplemarking"/>
- <cd:command name="getmarking" value="getmarking"/>
- <cd:command name="definelayout" value="definelayout"/>
- <cd:command name="setuplayout" value="setuplayout"/>
- <cd:command name="adaptlayout" value="adaptlayout"/>
- <cd:command name="placeongrid" value="placeongrid"/>
- <cd:command name="moveongrid" value="moveongrid"/>
- <cd:command name="showsetups" value="showsetups"/>
- <cd:command name="showframe" value="showframe"/>
- <cd:command name="showgrid" value="showgrid"/>
- <cd:command name="showlayout" value="showlayout"/>
- <cd:command name="showprint" value="showprint"/>
- <cd:command name="showstruts" value="showstruts"/>
- <cd:command name="definepapersize" value="definepapersize"/>
- <cd:command name="setuppapersize" value="setuppapersize"/>
- <cd:command name="setuppaper" value="setuppaper"/>
- <cd:command name="setuparranging" value="setuparranging"/>
- <cd:command name="version" value="version"/>
- <cd:command name="setupbackgrounds" value="setupbackgrounds"/>
- <cd:command name="setupalign" value="setupalign"/>
- <cd:command name="setupwhitespace" value="setupwhitespace"/>
- <cd:command name="setupinteraction" value="setupinteraction"/>
- <cd:command name="setupinteractionmenu" value="setupinteractionmenu"/>
- <cd:command name="defineinteractionmenu" value="defineinteractionmenu"/>
- <cd:command name="disableinteractionmenu" value="disableinteractionmenu"/>
- <cd:command name="interactionmenu" value="interactionmenu"/>
- <cd:command name="interactionbuttons" value="interactionbuttons"/>
- <cd:command name="interactionbar" value="interactionbar"/>
- <cd:command name="setupinteractionbar" value="setupinteractionbar"/>
- <cd:command name="setupinteractionscreen" value="setupinteractionscreen"/>
- <cd:command name="placebookmarks" value="placebookmarks"/>
- <cd:command name="bookmark" value="bookmark"/>
- <cd:command name="definelogo" value="definelogo"/>
- <cd:command name="placelogos" value="placelogos"/>
- <cd:command name="definecolor" value="definecolor"/>
- <cd:command name="definecolorgroup" value="definecolorgroup"/>
- <cd:command name="definepalet" value="definepalet"/>
- <cd:command name="graycolor" value="graycolor"/>
- <cd:command name="color" value="color"/>
- <cd:command name="startcolor" value="startcolor"/>
- <cd:command name="stopcolor" value="stopcolor"/>
- <cd:command name="setupcolors" value="setupcolors"/>
- <cd:command name="setupcolor" value="setupcolor"/>
- <cd:command name="setuppalet" value="setuppalet"/>
- <cd:command name="showcolor" value="showcolor"/>
- <cd:command name="showcolorgroup" value="showcolorgroup"/>
- <cd:command name="showpalet" value="showpalet"/>
- <cd:command name="comparecolorgroup" value="comparecolorgroup"/>
- <cd:command name="comparepalet" value="comparepalet"/>
- <cd:command name="colorvalue" value="colorvalue"/>
- <cd:command name="greyvalue" value="greyvalue"/>
- <cd:command name="startraster" value="startraster"/>
- <cd:command name="stopraster" value="stopraster"/>
- <cd:command name="defineblock" value="defineblock"/>
- <cd:command name="setupblock" value="setupblock"/>
- <cd:command name="useblocks" value="useblocks"/>
- <cd:command name="processblocks" value="processblocks"/>
- <cd:command name="keepblocks" value="keepblocks"/>
- <cd:command name="selectblocks" value="selectblocks"/>
- <cd:command name="hideblocks" value="hideblocks"/>
- <cd:command name="bypassblocks" value="bypassblocks"/>
- <cd:command name="forceblocks" value="forceblocks"/>
- <cd:command name="nomoreblocks" value="nomoreblocks"/>
- <cd:command name="definelist" value="definelist"/>
- <cd:command name="definecombinedlist" value="definecombinedlist"/>
- <cd:command name="listsymbol" value="listsymbol"/>
- <cd:command name="placelist" value="placelist"/>
- <cd:command name="plaatsruwelijst" value="placerawlist"/>
- <cd:command name="placecombinedlist" value="placecombinedlist"/>
- <cd:command name="writetolist" value="writetolist"/>
- <cd:command name="writebetweenlist" value="writebetweenlist"/>
- <cd:command name="immediatetolist" value="immediatetolist"/>
- <cd:command name="immediatebetweenlist" value="immediatebetweenlist"/>
- <cd:command name="setuplist" value="setuplist"/>
- <cd:command name="setupcombinedlist" value="setupcombinedlist"/>
- <cd:command name="determinelistcharacteristics" value="determinelistcharacteristics"/>
- <cd:command name="listlength" value="listlength"/>
- <cd:command name="listwidth" value="listwidth"/>
- <cd:command name="listheight" value="listheight"/>
- <cd:command name="nolist" value="nolist"/>
- <cd:command name="definereferencelist" value="definereferencelist"/>
- <cd:command name="placereferencelist" value="placereferencelist"/>
- <cd:command name="writetoreferencelist" value="writetoreferencelist"/>
- <cd:command name="setupreferencelist" value="setupreferencelist"/>
- <cd:command name="definefloat" value="definefloat"/>
- <cd:command name="setupfloat" value="setupfloat"/>
- <cd:command name="setupfloats" value="setupfloats"/>
- <cd:command name="splitfloat" value="splitfloat"/>
- <cd:command name="setupfloatsplitting" value="setupfloatsplitting"/>
- <cd:command name="placefloat" value="placefloat"/>
- <cd:command name="movesidefloat" value="movesidefloat"/>
- <cd:command name="defineplacement" value="defineplacement"/>
- <cd:command name="setupplacement" value="setupplacement"/>
- <cd:command name="definecombination" value="definecombination"/>
- <cd:command name="startcombination" value="startcombination"/>
- <cd:command name="stopcombination" value="stopcombination"/>
- <cd:command name="placesidebyside" value="placesidebyside"/>
- <cd:command name="placeontopofeachother" value="placeontopofeachother"/>
- <cd:command name="setupcaption" value="setupcaption"/>
- <cd:command name="setupcaptions" value="setupcaptions"/>
- <cd:command name="setupcombinations" value="setupcombinations"/>
- <cd:command name="startoverlay" value="startoverlay"/>
- <cd:command name="stopoverlay" value="stopoverlay"/>
- <cd:command name="defineregister" value="defineregister"/>
- <cd:command name="coupleregister" value="coupleregister"/>
- <cd:command name="setupregister" value="setupregister"/>
- <cd:command name="writetoregister" value="writetoregister"/>
- <cd:command name="completeregister" value="completeregister"/>
- <cd:command name="placeregister" value="placeregister"/>
- <cd:command name="determineregistercharacteristics" value="determineregistercharacteristics"/>
- <cd:command name="definesorting" value="definesorting"/>
- <cd:command name="definesynonyms" value="definesynonyms"/>
- <cd:command name="setupsorting" value="setupsorting"/>
- <cd:command name="setupsynonyms" value="setupsynonyms"/>
- <cd:command name="startsynchronization" value="startsynchronization"/>
- <cd:command name="stopsynchronization" value="stopsynchronization"/>
- <cd:command name="setupsynchronizationbar" value="setupsynchronizationbar"/>
- <cd:command name="setupsynchronization" value="setupsynchronization"/>
- <cd:command name="synchronizationbar" value="synchronizationbar"/>
- <cd:command name="synchronize" value="synchronize"/>
- <cd:command name="useexternaldocument" value="useexternaldocument"/>
- <cd:command name="useURL" value="useURL"/>
- <cd:command name="useurl" value="useurl"/>
- <cd:command name="setupurl" value="setupurl"/>
- <cd:command name="coupledocument" value="coupledocument"/>
- <cd:command name="setupprograms" value="setupprograms"/>
- <cd:command name="defineprogram" value="defineprogram"/>
- <cd:command name="program" value="program"/>
- <cd:command name="setuppagetransitions" value="setuppagetransitions"/>
- <cd:command name="defineprofile" value="defineprofile"/>
- <cd:command name="defineversion" value="defineversion"/>
- <cd:command name="markversion" value="markversion"/>
- <cd:command name="selectversion" value="selectversion"/>
- <cd:command name="startprofile" value="startprofile"/>
- <cd:command name="startversion" value="startversion"/>
- <cd:command name="setupprofiles" value="setupprofiles"/>
- <cd:command name="setupversions" value="setupversions"/>
- <cd:command name="stopprofile" value="stopprofile"/>
- <cd:command name="stopversion" value="stopversion"/>
- <cd:command name="followprofile" value="followprofile"/>
- <cd:command name="followprofileversion" value="followprofileversion"/>
- <cd:command name="followversion" value="followversion"/>
- <cd:command name="definedescription" value="definedescription"/>
- <cd:command name="definelabel" value="definelabel"/>
- <cd:command name="defineenumeration" value="defineenumeration"/>
- <cd:command name="defineindenting" value="defineindenting"/>
- <cd:command name="setupdescriptions" value="setupdescriptions"/>
- <cd:command name="setupenumerations" value="setupenumerations"/>
- <cd:command name="setupindentations" value="setupindentations"/>
- <cd:command name="setuptab" value="setuptab"/>
- <cd:command name="tab" value="tab"/>
- <cd:command name="setupexternalfigures" value="setupexternalfigures"/>
- <cd:command name="showexternalfigures" value="showexternalfigures"/>
- <cd:command name="externalfigure" value="externalfigure"/>
- <cd:command name="useexternalfigure" value="useexternalfigure"/>
- <cd:command name="startfigure" value="startfigure"/>
- <cd:command name="referring" value="referring"/>
- <cd:command name="remark" value="remark"/>
- <cd:command name="colorbar" value="colorbar"/>
- <cd:command name="grid" value="grid"/>
- <cd:command name="button" value="button"/>
- <cd:command name="menubutton" value="menubutton"/>
- <cd:command name="setupbuttons" value="setupbuttons"/>
- <cd:command name="usereferences" value="usereferences"/>
- <cd:command name="placereferencelist" value="placereferencelist"/>
- <cd:command name="setupreferencelist" value="setupreferencelist"/>
- <cd:command name="setupreferencing" value="setupreferencing"/>
- <cd:command name="textreference" value="textreference"/>
- <cd:command name="pagereference" value="pagereference"/>
- <cd:command name="reference" value="reference"/>
- <cd:command name="definereference" value="definereference"/>
- <cd:command name="definereferenceformat" value="definereferenceformat"/>
- <cd:command name="useJSscripts" value="useJSscripts"/>
- <cd:command name="from" value="from"/>
- <cd:command name="in" value="in"/>
- <cd:command name="at" value="at"/>
- <cd:command name="about" value="about"/>
- <cd:command name="goto" value="goto"/>
- <cd:command name="atpage" value="atpage"/>
- <cd:command name="somewhere" value="somewhere"/>
- <cd:command name="navigating" value="navigating"/>
- <cd:command name="ref" value="ref"/>
- <cd:command name="gotobox" value="gotobox"/>
- <cd:command name="gotopage" value="gotopage"/>
- <cd:command name="placeformula" value="placeformula"/>
- <cd:command name="placesubformula" value="placesubformula"/>
- <cd:command name="moveformula" value="moveformula"/>
- <cd:command name="setupformulas" value="setupformulae"/>
- <cd:command name="formulanumber" value="formulanumber"/>
- <cd:command name="subformulanumber" value="subformulanumber"/>
- <cd:command name="leg" value="leg"/>
- <cd:command name="fact" value="fact"/>
- <cd:command name="mathematics" value="mathematics"/>
- <cd:command name="dimension" value="dimension"/>
- <cd:command name="nodimension" value="nodimension"/>
- <cd:command name="startenvironment" value="startenvironment"/>
- <cd:command name="stopenvironment" value="stopenvironment"/>
- <cd:command name="startcomponent" value="startcomponent"/>
- <cd:command name="stopcomponent" value="stopcomponent"/>
- <cd:command name="startproduct" value="startproduct"/>
- <cd:command name="stopproduct" value="stopproduct"/>
- <cd:command name="startproject" value="startproject"/>
- <cd:command name="stopproject" value="stopproject"/>
- <cd:command name="setups" value="setups"/>
- <cd:command name="project" value="project"/>
- <cd:command name="component" value="component"/>
- <cd:command name="product" value="product"/>
- <cd:command name="environment" value="environment"/>
- <cd:command name="nomorefiles" value="nomorefiles"/>
- <cd:command name="getbuffer" value="getbuffer"/>
- <cd:command name="setupbuffer" value="setupbuffer"/>
- <cd:command name="typebuffer" value="typebuffer"/>
- <cd:command name="definebuffer" value="definebuffer"/>
- <cd:command name="unitmeaning" value="unitmeaning"/>
- <cd:command name="infull" value="infull"/>
- <cd:command name="quotation" value="quotation"/>
- <cd:command name="quote" value="quote"/>
- <cd:command name="startquotation" value="startquotation"/>
- <cd:command name="stopquotation" value="stopquotation"/>
- <cd:command name="setupquote" value="setupquote"/>
- <cd:command name="define" value="define"/>
- <cd:command name="redo" value="redo"/>
- <cd:command name="usecommands" value="usecommands"/>
- <cd:command name="definestartstop" value="definestartstop"/>
- <cd:command name="setupstartstop" value="setupstartstop"/>
- <cd:command name="startlocal" value="startlocal"/>
- <cd:command name="stoplocal" value="stoplocal"/>
- <cd:command name="startglobal" value="startglobal"/>
- <cd:command name="stopglobal" value="stopglobal"/>
- <cd:command name="macroname" value="name"/>
- <cd:command name="definemakeup" value="definemakeup"/>
- <cd:command name="setupmakeup" value="setupmakeup"/>
- <cd:command name="startmakeup" value="startmakeup"/>
- <cd:command name="stopmakeup" value="stopmakeup"/>
- <cd:command name="useexternalsoundtrack" value="useexternalsoundtrack"/>
- <cd:command name="useexternalfile" value="useexternalfile"/>
- <cd:command name="useexternalfiles" value="useexternalfiles"/>
- <cd:command name="referral" value="referral"/>
- <cd:command name="referraldate" value="referraldate"/>
- <cd:command name="high" value="high"/>
- <cd:command name="lohi" value="lohi"/>
- <cd:command name="low" value="low"/>
- <cd:command name="fraction" value="fraction"/>
- <cd:command name="chem" value="chem"/>
- <cd:command name="startopposite" value="startopposite"/>
- <cd:command name="stopopposite" value="stopopposite"/>
- <cd:command name="setupoppositeplacing" value="setupoppositeplacing"/>
- <cd:command name="startpositioning" value="startpositioning"/>
- <cd:command name="stoppositioning" value="stoppositioning"/>
- <cd:command name="position" value="position"/>
- <cd:command name="setuppositioning" value="setuppositioning"/>
- <cd:command name="rotate" value="rotate"/>
- <cd:command name="setuprotate" value="setuprotate"/>
- <cd:command name="mirror" value="mirror"/>
- <cd:command name="scale" value="scale"/>
- <cd:command name="setupnumbering" value="setupnumbering"/>
- <cd:command name="reset" value="reset"/>
- <cd:command name="setuppublications" value="setuppublications"/>
- <cd:command name="publication" value="publication"/>
- <cd:command name="definehbox" value="definehbox"/>
- <cd:command name="adding" value="adding"/>
- <cd:command name="periods" value="periods"/>
- <cd:command name="setuphyphenmark" value="setuphyphenmark"/>
- <cd:command name="setupinterlinespace" value="setupinterlinespace"/>
- <cd:command name="setupspacing" value="setupspacing"/>
- <cd:command name="setuptolerance" value="setuptolerance"/>
- <cd:command name="setupsystem" value="setupsystem"/>
- <cd:command name="usepath" value="usedirectory"/>
- <cd:command name="defineparagraphs" value="defineparagraphs"/>
- <cd:command name="setupparagraphs" value="setupparagraphs"/>
- <cd:command name="donttest" value="donttest"/>
- <cd:command name="setupcomment" value="setupcomment"/>
- <cd:command name="comment" value="comment"/>
- <cd:command name="definefield" value="definefield"/>
- <cd:command name="definemainfield" value="definemainfield"/>
- <cd:command name="definesubfield" value="definesubfield"/>
- <cd:command name="clonefield" value="clonefield"/>
- <cd:command name="copyfield" value="copyfield"/>
- <cd:command name="setupfield" value="setupfield"/>
- <cd:command name="setupfields" value="setupfields"/>
- <cd:command name="field" value="field"/>
- <cd:command name="fitfield" value="fitfield"/>
- <cd:command name="logfields" value="logfields"/>
- <cd:command name="showfields" value="showfields"/>
- <cd:command name="tooltip" value="tooltip"/>
- <cd:command name="fillinfield" value="fillinfield"/>
- <cd:command name="definefieldstack" value="definefieldstack"/>
- <cd:command name="fieldstack" value="fieldstack"/>
- <cd:command name="setupforms" value="setupforms"/>
- <cd:command name="setupclipping" value="setupclipping"/>
- <cd:command name="clip" value="clip"/>
- <cd:command name="placelegend" value="placelegend"/>
- <cd:command name="setuplegend" value="setuplegend"/>
- <cd:command name="setuppagecomment" value="setuppagecomment"/>
- <cd:command name="setupstrut" value="setupstrut"/>
- <cd:command name="definerule" value="definerule"/>
- <cd:command name="placerule" value="placerule"/>
- <cd:command name="setuprule" value="setuprule"/>
- <cd:command name="definetextvariable" value="definetextvariable"/>
- <cd:command name="setuptextvariable" value="setuptextvariable"/>
- <cd:command name="settextvariable" value="settextvariable"/>
- <cd:command name="placetextvariable" value="placetextvariable"/>
- <cd:command name="textvariable" value="textvariable"/>
- <cd:command name="definetextposition" value="definetextposition"/>
- <cd:command name="setuptextposition" value="setuptextposition"/>
- <cd:command name="positiontext" value="positiontext"/>
- <cd:command name="definerawfont" value="definerawfont"/>
- <cd:command name="switchtorawfont" value="switchtorawfont"/>
- <cd:command name="placeheadtext" value="placeheadtext"/>
- <cd:command name="placeheadnumber" value="placeheadnumber"/>
- <cd:command name="definepagebreak" value="definepagebreak"/>
- <cd:command name="definecolumnbreak" value="definecolumnbreak"/>
- <cd:command name="definemathalignment" value="definemathalignment"/>
- <cd:command name="setupmathalignment" value="setupmathalignment"/>
- </cd:commands>
-
- <cd:commands>
- <cd:command name="setupitemgroups" value="setupitemizations"/>
- </cd:commands>
-
- <cd:commands>
- <cd:command name="topheight" value="topheight"/>
- <cd:command name="topdistance" value="topdistance"/>
- <cd:command name="headerheight" value="headerheight"/>
- <cd:command name="headerdistance" value="headerdistance"/>
- <cd:command name="textheight" value="textheight"/>
- <cd:command name="footerdistance" value="footerdistance"/>
- <cd:command name="footerheight" value="footerheight"/>
- <cd:command name="bottomdistance" value="bottomdistance"/>
- <cd:command name="bottomheight" value="bottomheight"/>
- <cd:command name="marginwidth" value="marginwidth"/>
- <cd:command name="leftmarginwidth" value="leftmarginwidth"/>
- <cd:command name="rightmarginwidth" value="rightmarginwidth"/>
- <cd:command name="margindistance" value="margindistance"/>
- <cd:command name="leftmargindistance" value="leftmargindistance"/>
- <cd:command name="rightmargindistance" value="rightmargindistance"/>
- <cd:command name="edgewidth" value="edgewidth"/>
- <cd:command name="leftedgewidth" value="leftedgewidth"/>
- <cd:command name="rightedgewidth" value="rightedgewidth"/>
- <cd:command name="edgedistance" value="edgedistance"/>
- <cd:command name="leftedgedistance" value="leftedgedistance"/>
- <cd:command name="rightedgedistance" value="rightedgedistance"/>
- <cd:command name="innermarginwidth" value="innermarginwidth"/>
- <cd:command name="outermarginwidth" value="outermarginwidth"/>
- <cd:command name="innermargindistance" value="innermargindistance"/>
- <cd:command name="outermargindistance" value="outermargindistance"/>
- <cd:command name="inneredgewidth" value="inneredgewidth"/>
- <cd:command name="outeredgewidth" value="outeredgewidth"/>
- <cd:command name="inneredgedistance" value="inneredgedistance"/>
- <cd:command name="outeredgedistance" value="outeredgedistance"/>
- <cd:command name="textwidth" value="textwidth"/>
- <cd:command name="makeupwidth" value="makeupwidth"/>
- <cd:command name="makeupheight" value="makeupheight"/>
- <cd:command name="topspace" value="topspace"/>
- <cd:command name="bottomspace" value="bottomspace"/>
- <cd:command name="backspace" value="backspace"/>
- <cd:command name="cutspace" value="cutspace"/>
- <cd:command name="paperwidth" value="paperwidth"/>
- <cd:command name="paperheight" value="paperheight"/>
- <cd:command name="printpaperwidth" value="printpaperwidth"/>
- <cd:command name="printpaperheight" value="printpaperheight"/>
- <cd:command name="pageoffset" value="pageoffset"/>
- <cd:command name="pagedepth" value="pagedepth"/>
- <cd:command name="headlevel" value="headlevel"/>
- <cd:command name="linewidth" value="linethickness"/>
- <cd:command name="totalnumberofpages" value="totalnumberofpages"/>
- <cd:command name="numberofsubpages" value="numberofsubpages"/>
- <cd:command name="useXMLfilter" value="useXMLfilter"/>
- <cd:command name="definecolumnset" value="definecolumnset"/>
- <cd:command name="setupcolumnset" value="setupcolumnset"/>
- <cd:command name="startcolumnset" value="startcolumnset"/>
- <cd:command name="stopcolumnset" value="stopcolumnset"/>
- <cd:command name="setupcolumnsetlines" value="setupcolumnsetlines"/>
- <cd:command name="setupcolumnsetstart" value="setupcolumnsetstart"/>
- <cd:command name="startcolumnmakeup" value="startcolumnmakeup"/>
- <cd:command name="stopcolumnmakeup" value="stopcolumnmakeup"/>
- <cd:command name="usetypescript" value="usetypescript"/>
- <cd:command name="usetypescriptfile" value="usetypescriptfile"/>
- </cd:commands>
-
- <cd:commands>
- <cd:command name="startdocument" value="startdocument"/>
- <cd:command name="stopdocument" value="stopdocument"/>
- <cd:command name="startoverzicht" value="startoverview"/>
- <cd:command name="stopoverzicht" value="stopoverview"/>
- <cd:command name="label" value="label"/>
- <cd:command name="labels" value="labels"/>
- <cd:command name="domicile" value="domicile"/>
- </cd:commands>
-
-</cd:interface>
+</cd:interface> \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/interface/keys-fr.xml b/Master/texmf-dist/tex/context/interface/keys-fr.xml
index be84294493e..d03d72a8808 100644
--- a/Master/texmf-dist/tex/context/interface/keys-fr.xml
+++ b/Master/texmf-dist/tex/context/interface/keys-fr.xml
@@ -1,1655 +1,1649 @@
-<?xml version="1.0"?>
+<?xml version='1.0'?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="fr" version="2008.05.21 15:21">
+<cd:interface xmlns:cd='http://www.pragma-ade.com/commands' name='context' language='fr' version='2008.10.21 19:42'>
- <cd:variables>
- <cd:variable name="lesshyphenation" value="lesshyphenation"/>
- <cd:variable name="morehyphenation" value="morehyphenation"/>
- </cd:variables>
+ <!-- definitions for interface variables for language fr -->
- <cd:variables>
- <cd:variable name="one" value="un"/>
- <cd:variable name="two" value="deux"/>
- <cd:variable name="three" value="trois"/>
- <cd:variable name="four" value="quatre"/>
- <cd:variable name="five" value="cinq"/>
- </cd:variables>
+ <cd:variables>
+ <cd:variable name='Addition' value='Ajout'/>
+ <cd:variable name='Balloon' value='Ballon'/>
+ <cd:variable name='Character' value='Caratere'/>
+ <cd:variable name='Characters' value='Caracteres'/>
+ <cd:variable name='CloseDocument' value='FermeDocument'/>
+ <cd:variable name='ExitViewer' value='SortVisualisateur'/>
+ <cd:variable name='FirstPage' value='PremierePage'/>
+ <cd:variable name='FitHeight' value='AjusteHauteur'/>
+ <cd:variable name='FitWidth' value='AjusteLargeur'/>
+ <cd:variable name='GotoPage' value='VaalaPage'/>
+ <cd:variable name='Greek' value='Grec'/>
+ <cd:variable name='Help' value='Aide'/>
+ <cd:variable name='HideField' value='CacheChamp'/>
+ <cd:variable name='HideLayer' value='CacheCalque'/>
+ <cd:variable name='Key' value='Cle'/>
+ <cd:variable name='LastPage' value='DernierePage'/>
+ <cd:variable name='LoadForm' value='ChargeForm'/>
+ <cd:variable name='MONTH' value='MOIS'/>
+ <cd:variable name='New' value='Nouveau'/>
+ <cd:variable name='NextJump' value='SautSuivant'/>
+ <cd:variable name='NextPage' value='PageSuivante'/>
+ <cd:variable name='Numbers' value='Numeros'/>
+ <cd:variable name='OpenNamedDocument' value='OuvreDocumentNomme'/>
+ <cd:variable name='Paragraph' value='Paragraphe'/>
+ <cd:variable name='PauseMovie' value='PauseFilm'/>
+ <cd:variable name='PauseRendering' value='PauseRendering'/>
+ <cd:variable name='PauseSound' value='PauseSon'/>
+ <cd:variable name='PreviousJump' value='SautPrecedent'/>
+ <cd:variable name='PreviousPage' value='PagePrecedente'/>
+ <cd:variable name='PrintDocument' value='ImprimeDocument'/>
+ <cd:variable name='Query' value='Query'/>
+ <cd:variable name='QueryAgain' value='QueryAgain'/>
+ <cd:variable name='ResetForm' value='RazForm'/>
+ <cd:variable name='ResumeMovie' value='ReprendFilm'/>
+ <cd:variable name='ResumeRendering' value='ResumeRendering'/>
+ <cd:variable name='ResumeSound' value='ReprendSon'/>
+ <cd:variable name='Romannumerals' value='Chiffresromains'/>
+ <cd:variable name='SaveDocument' value='SauvegardeDocument'/>
+ <cd:variable name='SaveForm' value='SauvegardeForm'/>
+ <cd:variable name='SaveNamedDocument' value='SauvegardeDocumentNomme'/>
+ <cd:variable name='SearchAgain' value='RechercheSuivant'/>
+ <cd:variable name='SearchDocument' value='RechercheDocument'/>
+ <cd:variable name='ShowBookmarks' value='ShowBookmarks'/>
+ <cd:variable name='ShowField' value='MontreChamp'/>
+ <cd:variable name='ShowThumbs' value='ShowThumbs'/>
+ <cd:variable name='StartMovie' value='DemarreFilm'/>
+ <cd:variable name='StartRendering' value='StartRendering'/>
+ <cd:variable name='StartSound' value='DemarreSon'/>
+ <cd:variable name='StopMovie' value='StoppeFilm'/>
+ <cd:variable name='StopRendering' value='StopRendering'/>
+ <cd:variable name='StopSound' value='StoppeSon'/>
+ <cd:variable name='SubmitForm' value='SoumettreForm'/>
+ <cd:variable name='ToggleLayer' value='ToggleLayer'/>
+ <cd:variable name='ToggleViewer' value='ChangeVisualisateur'/>
+ <cd:variable name='URL' value='URL'/>
+ <cd:variable name='VideLayer' value='VideLayer'/>
+ <cd:variable name='ViewerHelp' value='AideVisualisateur'/>
+ <cd:variable name='WEEKDAY' value='JOURSEMAINE'/>
+ <cd:variable name='WORD' value='MOT'/>
+ <cd:variable name='abbreviation' value='abreviation'/>
+ <cd:variable name='abbreviations' value='abreviations'/>
+ <cd:variable name='absolute' value='absolute'/>
+ <cd:variable name='action' value='action'/>
+ <cd:variable name='after' value='apres'/>
+ <cd:variable name='all' value='tout'/>
+ <cd:variable name='always' value='toujours'/>
+ <cd:variable name='answerarea' value='answerarea'/>
+ <cd:variable name='appendices' value='annexes'/>
+ <cd:variable name='appendix' value='annexe'/>
+ <cd:variable name='april' value='avril'/>
+ <cd:variable name='atmargin' value='alamarge'/>
+ <cd:variable name='atpage' value='alapage'/>
+ <cd:variable name='august' value='aout'/>
+ <cd:variable name='auto' value='auto'/>
+ <cd:variable name='autointro' value='autointro'/>
+ <cd:variable name='back' value='retour'/>
+ <cd:variable name='background' value='arriereplan'/>
+ <cd:variable name='backmatter' value='epilogue'/>
+ <cd:variable name='backpart' value='postface'/>
+ <cd:variable name='backspace' value='retourarriere'/>
+ <cd:variable name='backward' value='retourarriere'/>
+ <cd:variable name='before' value='avant'/>
+ <cd:variable name='big' value='grand'/>
+ <cd:variable name='bigbodyfont' value='grandepolicecorp'/>
+ <cd:variable name='bigpreference' value='grandepreference'/>
+ <cd:variable name='blank' value='vide'/>
+ <cd:variable name='blockquote' value='blockquote'/>
+ <cd:variable name='bodymatter' value='texteprincipal'/>
+ <cd:variable name='bodypart' value='corpsdetexte'/>
+ <cd:variable name='bold' value='gras'/>
+ <cd:variable name='bolditalic' value='italiquegras'/>
+ <cd:variable name='boldslanted' value='inclinegras'/>
+ <cd:variable name='bookmark' value='marquepage'/>
+ <cd:variable name='both' value='lesdeux'/>
+ <cd:variable name='bottom' value='inf'/>
+ <cd:variable name='brief' value='brief'/>
+ <cd:variable name='broad' value='large'/>
+ <cd:variable name='buffer' value='buffer'/>
+ <cd:variable name='by' value='par'/>
+ <cd:variable name='calligraphic' value='calligraphique'/>
+ <cd:variable name='cap' value='cap'/>
+ <cd:variable name='capital' value='capitale'/>
+ <cd:variable name='center' value='center'/>
+ <cd:variable name='chapter' value='chapitre'/>
+ <cd:variable name='character' value='caractere'/>
+ <cd:variable name='characters' value='caracteres'/>
+ <cd:variable name='color' value='couleur'/>
+ <cd:variable name='column' value='colonne'/>
+ <cd:variable name='columns' value='colonnes'/>
+ <cd:variable name='command' value='commande'/>
+ <cd:variable name='commands' value='commandes'/>
+ <cd:variable name='comment' value='commentaire'/>
+ <cd:variable name='component' value='composant'/>
+ <cd:variable name='concept' value='concept'/>
+ <cd:variable name='content' value='contenu'/>
+ <cd:variable name='contents' value='contenus'/>
+ <cd:variable name='continue' value='continue'/>
+ <cd:variable name='controls' value='controles'/>
+ <cd:variable name='conversion' value='conversion'/>
+ <cd:variable name='current' value='courant'/>
+ <cd:variable name='cutspace' value='cutspace'/>
+ <cd:variable name='date' value='date'/>
+ <cd:variable name='day' value='jour'/>
+ <cd:variable name='december' value='decembre'/>
+ <cd:variable name='default' value='defaut'/>
+ <cd:variable name='depth' value='profondeur'/>
+ <cd:variable name='description' value='description'/>
+ <cd:variable name='disable' value='desactiver'/>
+ <cd:variable name='display' value='affichage'/>
+ <cd:variable name='dot' value='point'/>
+ <cd:variable name='doublesided' value='rectoverso'/>
+ <cd:variable name='each' value='chaque'/>
+ <cd:variable name='edge' value='bord'/>
+ <cd:variable name='empty' value='vide'/>
+ <cd:variable name='endnote' value='notefin'/>
+ <cd:variable name='enumeration' value='enumeration'/>
+ <cd:variable name='environment' value='environement'/>
+ <cd:variable name='even' value='paire'/>
+ <cd:variable name='external' value='external'/>
+ <cd:variable name='fact' value='fait'/>
+ <cd:variable name='february' value='fevrier'/>
+ <cd:variable name='figure' value='figure'/>
+ <cd:variable name='figures' value='figures'/>
+ <cd:variable name='file' value='fichier'/>
+ <cd:variable name='final' value='final'/>
+ <cd:variable name='first' value='premier'/>
+ <cd:variable name='firstcolumn' value='premierecolonne'/>
+ <cd:variable name='firstpage' value='premierepage'/>
+ <cd:variable name='firstsubpage' value='premieresouspage'/>
+ <cd:variable name='fit' value='adapte'/>
+ <cd:variable name='five' value='cinq'/>
+ <cd:variable name='fix' value='fixe'/>
+ <cd:variable name='fixed' value='fixe'/>
+ <cd:variable name='flexible' value='flexible'/>
+ <cd:variable name='float' value='flottant'/>
+ <cd:variable name='flushinner' value='flushinner'/>
+ <cd:variable name='flushleft' value='flushleft'/>
+ <cd:variable name='flushouter' value='flushouter'/>
+ <cd:variable name='flushright' value='flushright'/>
+ <cd:variable name='footer' value='pdp'/>
+ <cd:variable name='footnote' value='notepdp'/>
+ <cd:variable name='force' value='force'/>
+ <cd:variable name='foreground' value='premierplan'/>
+ <cd:variable name='formeel' value='formeel'/>
+ <cd:variable name='formula' value='formule'/>
+ <cd:variable name='formulae' value='formules'/>
+ <cd:variable name='forward' value='avance'/>
+ <cd:variable name='four' value='quatre'/>
+ <cd:variable name='frame' value='cadre'/>
+ <cd:variable name='framedtext' value='texteencadre'/>
+ <cd:variable name='friday' value='vendredi'/>
+ <cd:variable name='frontmatter' value='preambule'/>
+ <cd:variable name='frontpart' value='preface'/>
+ <cd:variable name='global' value='global'/>
+ <cd:variable name='graphic' value='graphique'/>
+ <cd:variable name='graphics' value='graphiques'/>
+ <cd:variable name='gray' value='gris'/>
+ <cd:variable name='greek' value='grec'/>
+ <cd:variable name='grid' value='grille'/>
+ <cd:variable name='halfline' value='demiligne'/>
+ <cd:variable name='handwritten' value='manuscript'/>
+ <cd:variable name='hang' value='suspend'/>
+ <cd:variable name='hanging' value='suspend'/>
+ <cd:variable name='head' value='tete'/>
+ <cd:variable name='header' value='entete'/>
+ <cd:variable name='height' value='hauteur'/>
+ <cd:variable name='helptext' value='texteaide'/>
+ <cd:variable name='hencefore' value='precedent'/>
+ <cd:variable name='here' value='ici'/>
+ <cd:variable name='hereafter' value='suivant'/>
+ <cd:variable name='hidden' value='cache'/>
+ <cd:variable name='hiding' value='cache'/>
+ <cd:variable name='high' value='haut'/>
+ <cd:variable name='horizontal' value='horizontale'/>
+ <cd:variable name='hyphenated' value='hyphenated'/>
+ <cd:variable name='hz' value='hz'/>
+ <cd:variable name='inbetween' value='entre'/>
+ <cd:variable name='index' value='index'/>
+ <cd:variable name='indices' value='indices'/>
+ <cd:variable name='informeel' value='informeel'/>
+ <cd:variable name='inherit' value='herite'/>
+ <cd:variable name='inleft' value='dansgauche'/>
+ <cd:variable name='inmargin' value='dansmarge'/>
+ <cd:variable name='inner' value='interieur'/>
+ <cd:variable name='inneredge' value='bordinterieur'/>
+ <cd:variable name='innermargin' value='margeinterieure'/>
+ <cd:variable name='inright' value='dansdroit'/>
+ <cd:variable name='interaction' value='interaction'/>
+ <cd:variable name='interactionmenu' value='menuinteraction'/>
+ <cd:variable name='intermezzi' value='intermezzi'/>
+ <cd:variable name='intermezzo' value='intermezzo'/>
+ <cd:variable name='intext' value='danstexte'/>
+ <cd:variable name='intro' value='intro'/>
+ <cd:variable name='italic' value='italique'/>
+ <cd:variable name='italicbold' value='grasitalique'/>
+ <cd:variable name='item' value='element'/>
+ <cd:variable name='itemize' value='lister'/>
+ <cd:variable name='its' value='its'/>
+ <cd:variable name='january' value='janvier'/>
+ <cd:variable name='joinedup' value='joinedup'/>
+ <cd:variable name='july' value='juillet'/>
+ <cd:variable name='june' value='juin'/>
+ <cd:variable name='keep' value='maintient'/>
+ <cd:variable name='knockout' value='knockout'/>
+ <cd:variable name='label' value='etiquette'/>
+ <cd:variable name='landscape' value='paysage'/>
+ <cd:variable name='last' value='dernier'/>
+ <cd:variable name='lastcolumn' value='dernierecolonne'/>
+ <cd:variable name='lastpage' value='dernierepage'/>
+ <cd:variable name='lastpagenumber' value='derniernumeropage'/>
+ <cd:variable name='lastsubpage' value='dernieresouspage'/>
+ <cd:variable name='layer' value='layer'/>
+ <cd:variable name='left' value='gauche'/>
+ <cd:variable name='leftedge' value='bordgauche'/>
+ <cd:variable name='lefthanging' value='lefthanging'/>
+ <cd:variable name='leftmargin' value='margegauche'/>
+ <cd:variable name='leftpage' value='pagegauche'/>
+ <cd:variable name='lefttoright' value='lefttoright'/>
+ <cd:variable name='legend' value='legende'/>
+ <cd:variable name='lesshyphenation' value='lesshyphenation'/>
+ <cd:variable name='line' value='ligne'/>
+ <cd:variable name='linenote' value='noteligne'/>
+ <cd:variable name='lines' value='lignes'/>
+ <cd:variable name='list' value='liste'/>
+ <cd:variable name='local' value='local'/>
+ <cd:variable name='localenvironment' value='environementlocal'/>
+ <cd:variable name='logo' value='logo'/>
+ <cd:variable name='logos' value='logos'/>
+ <cd:variable name='lohi' value='baha'/>
+ <cd:variable name='loose' value='perte'/>
+ <cd:variable name='low' value='bas'/>
+ <cd:variable name='ls' value='ls'/>
+ <cd:variable name='makeup' value='makeup'/>
+ <cd:variable name='mar' value='mar'/>
+ <cd:variable name='march' value='mars'/>
+ <cd:variable name='margin' value='marge'/>
+ <cd:variable name='marginedge' value='bordmarge'/>
+ <cd:variable name='margintitle' value='titremarge'/>
+ <cd:variable name='marking' value='marquage'/>
+ <cd:variable name='mathalignment' value='mathalignment'/>
+ <cd:variable name='mathcases' value='mathcases'/>
+ <cd:variable name='mathmatrix' value='mathmatrix'/>
+ <cd:variable name='max' value='max'/>
+ <cd:variable name='may' value='mai'/>
+ <cd:variable name='mediaeval' value='medieval'/>
+ <cd:variable name='medium' value='moyen'/>
+ <cd:variable name='middle' value='milieu'/>
+ <cd:variable name='min' value='min'/>
+ <cd:variable name='minheight' value='hauteurmin'/>
+ <cd:variable name='minwidth' value='largeurmin'/>
+ <cd:variable name='mirrored' value='reflete'/>
+ <cd:variable name='monday' value='lundi'/>
+ <cd:variable name='mono' value='mono'/>
+ <cd:variable name='month' value='mois'/>
+ <cd:variable name='morehyphenation' value='morehyphenation'/>
+ <cd:variable name='name' value='nom'/>
+ <cd:variable name='narrow' value='etroit'/>
+ <cd:variable name='negative' value='negatif'/>
+ <cd:variable name='never' value='jamais'/>
+ <cd:variable name='new' value='nouveau'/>
+ <cd:variable name='next' value='prochain'/>
+ <cd:variable name='nextevenpage' value='pagepairesuivante'/>
+ <cd:variable name='nextoddpage' value='pageimpairesuivante'/>
+ <cd:variable name='nextpage' value='pagesuivante'/>
+ <cd:variable name='nextsubpage' value='souspagesuivante'/>
+ <cd:variable name='no' value='non'/>
+ <cd:variable name='nocheck' value='nonverifie'/>
+ <cd:variable name='nofit' value='nofit'/>
+ <cd:variable name='nogrid' value='nogrid'/>
+ <cd:variable name='nohz' value='nohz'/>
+ <cd:variable name='nomarking' value='sansmarquage'/>
+ <cd:variable name='none' value='rien'/>
+ <cd:variable name='nonumber' value='sansnumero'/>
+ <cd:variable name='normal' value='normal'/>
+ <cd:variable name='nospacing' value='sansespacement'/>
+ <cd:variable name='not' value='pas'/>
+ <cd:variable name='note' value='note'/>
+ <cd:variable name='nothanging' value='nonsuspendu'/>
+ <cd:variable name='nothyphenated' value='nothyphenated'/>
+ <cd:variable name='november' value='novembre'/>
+ <cd:variable name='nowhere' value='nulpart'/>
+ <cd:variable name='nowhite' value='sansblanc'/>
+ <cd:variable name='number' value='numero'/>
+ <cd:variable name='numbers' value='numeros'/>
+ <cd:variable name='october' value='octobre'/>
+ <cd:variable name='odd' value='impair'/>
+ <cd:variable name='off' value='desactive'/>
+ <cd:variable name='offset' value='offset'/>
+ <cd:variable name='old' value='old'/>
+ <cd:variable name='on' value='actif'/>
+ <cd:variable name='one' value='un'/>
+ <cd:variable name='opposite' value='opposition'/>
+ <cd:variable name='outer' value='exterieur'/>
+ <cd:variable name='outeredge' value='bordexterieur'/>
+ <cd:variable name='outermargin' value='margeexterieure'/>
+ <cd:variable name='overlay' value='revetement'/>
+ <cd:variable name='overprint' value='overprint'/>
+ <cd:variable name='packed' value='groupe'/>
+ <cd:variable name='page' value='page'/>
+ <cd:variable name='pagecomment' value='commentairepage'/>
+ <cd:variable name='pagenumber' value='numeropage'/>
+ <cd:variable name='paper' value='papier'/>
+ <cd:variable name='paragraph' value='paragraphe'/>
+ <cd:variable name='part' value='partie'/>
+ <cd:variable name='positive' value='positif'/>
+ <cd:variable name='postponing' value='postponing'/>
+ <cd:variable name='postscript' value='postscript'/>
+ <cd:variable name='preference' value='preference'/>
+ <cd:variable name='preview' value='previsualisation'/>
+ <cd:variable name='previous' value='precedent'/>
+ <cd:variable name='previousevenpage' value='pagepaireprecedente'/>
+ <cd:variable name='previousoddpage' value='pageimpaireprecedente'/>
+ <cd:variable name='previouspage' value='pageprecedente'/>
+ <cd:variable name='previoussubpage' value='souspageprecedente'/>
+ <cd:variable name='printable' value='editable'/>
+ <cd:variable name='process' value='process'/>
+ <cd:variable name='product' value='produit'/>
+ <cd:variable name='program' value='programme'/>
+ <cd:variable name='project' value='projet'/>
+ <cd:variable name='protected' value='protege'/>
+ <cd:variable name='quadruple' value='quadruple'/>
+ <cd:variable name='quotation' value='citation'/>
+ <cd:variable name='quote' value='citer'/>
+ <cd:variable name='ran' value='cours'/>
+ <cd:variable name='random' value='aleatoire'/>
+ <cd:variable name='readonly' value='lectureseule'/>
+ <cd:variable name='rectangular' value='rectangulaire'/>
+ <cd:variable name='referral' value='referral'/>
+ <cd:variable name='register' value='registre'/>
+ <cd:variable name='regular' value='regulier'/>
+ <cd:variable name='rekening' value='rekening'/>
+ <cd:variable name='relative' value='relatif'/>
+ <cd:variable name='repeat' value='repete'/>
+ <cd:variable name='required' value='recquis'/>
+ <cd:variable name='reset' value='raz'/>
+ <cd:variable name='reverse' value='inverse'/>
+ <cd:variable name='right' value='droite'/>
+ <cd:variable name='rightedge' value='borddroit'/>
+ <cd:variable name='righthanging' value='righthanging'/>
+ <cd:variable name='rightmargin' value='margedroite'/>
+ <cd:variable name='rightpage' value='pagedroite'/>
+ <cd:variable name='righttoleft' value='righttoleft'/>
+ <cd:variable name='roman' value='roman'/>
+ <cd:variable name='romannumerals' value='chiffresromains'/>
+ <cd:variable name='rotate' value='oriente'/>
+ <cd:variable name='rotated' value='tourne'/>
+ <cd:variable name='round' value='rond'/>
+ <cd:variable name='row' value='rang'/>
+ <cd:variable name='rule' value='regle'/>
+ <cd:variable name='samepage' value='memepage'/>
+ <cd:variable name='sans' value='sans'/>
+ <cd:variable name='sansbold' value='sansgras'/>
+ <cd:variable name='sansserif' value='sansserif'/>
+ <cd:variable name='saturday' value='samedi'/>
+ <cd:variable name='screen' value='ecran'/>
+ <cd:variable name='section' value='section'/>
+ <cd:variable name='sectionblockenvironment' value='environementblocsection'/>
+ <cd:variable name='sectionnumber' value='numerosection'/>
+ <cd:variable name='see' value='voit'/>
+ <cd:variable name='september' value='septembre'/>
+ <cd:variable name='serif' value='serif'/>
+ <cd:variable name='serried' value='serried'/>
+ <cd:variable name='setups' value='reglages'/>
+ <cd:variable name='sheet' value='sheet'/>
+ <cd:variable name='singlesided' value='recto'/>
+ <cd:variable name='slanted' value='incline'/>
+ <cd:variable name='slantedbold' value='grasincline'/>
+ <cd:variable name='small' value='petit'/>
+ <cd:variable name='smallbodyfont' value='petitepolicecorps'/>
+ <cd:variable name='smallbold' value='graspetit'/>
+ <cd:variable name='smallbolditalic' value='italiquegraspetit'/>
+ <cd:variable name='smallboldslanted' value='inclinegraspetit'/>
+ <cd:variable name='smallcaps' value='petitescapitales'/>
+ <cd:variable name='smallitalic' value='italiquepetit'/>
+ <cd:variable name='smallitalicbold' value='grasitaliquepetit'/>
+ <cd:variable name='smallnormal' value='normalpetit'/>
+ <cd:variable name='smallslanted' value='inclinepetit'/>
+ <cd:variable name='smallslantedbold' value='grasinclinepetit'/>
+ <cd:variable name='smalltype' value='petittype'/>
+ <cd:variable name='somewhere' value='qqpart'/>
+ <cd:variable name='sorted' value='trie'/>
+ <cd:variable name='space' value='espace'/>
+ <cd:variable name='spacing' value='espacement'/>
+ <cd:variable name='speech' value='discours'/>
+ <cd:variable name='split' value='split'/>
+ <cd:variable name='spot' value='spot'/>
+ <cd:variable name='standard' value='standard'/>
+ <cd:variable name='start' value='demarre'/>
+ <cd:variable name='sticker' value='sticker'/>
+ <cd:variable name='stop' value='stoppe'/>
+ <cd:variable name='stopper' value='stopper'/>
+ <cd:variable name='stretch' value='etire'/>
+ <cd:variable name='strict' value='strict'/>
+ <cd:variable name='strong' value='strong'/>
+ <cd:variable name='strut' value='strut'/>
+ <cd:variable name='sub' value='sous'/>
+ <cd:variable name='subbackward' value='sousretourarriere'/>
+ <cd:variable name='subformula' value='subformule'/>
+ <cd:variable name='subforward' value='sousavance'/>
+ <cd:variable name='subject' value='sujet'/>
+ <cd:variable name='subpage' value='souspage'/>
+ <cd:variable name='subsection' value='soussection'/>
+ <cd:variable name='subsubject' value='soussujet'/>
+ <cd:variable name='subsubsection' value='soussoussection'/>
+ <cd:variable name='subsubsubject' value='soussoussujet'/>
+ <cd:variable name='subsubsubsection' value='soussoussoussection'/>
+ <cd:variable name='subsubsubsubject' value='soussoussoussujet'/>
+ <cd:variable name='subsubsubsubsection' value='soussoussoussoussection'/>
+ <cd:variable name='subsubsubsubsubject' value='soussoussoussoussujet'/>
+ <cd:variable name='subsubsubsubsubsection' value='soussoussoussoussoussection'/>
+ <cd:variable name='subsubsubsubsubsubject' value='soussoussoussoussoussujet'/>
+ <cd:variable name='subsubsubsubsubsubsection' value='soussoussoussoussoussoussection'/>
+ <cd:variable name='subsubsubsubsubsubsubject' value='soussoussoussoussoussoussujet'/>
+ <cd:variable name='subsubsubsubsubsubsubsection' value='soussoussoussoussoussoussoussection'/>
+ <cd:variable name='subsubsubsubsubsubsubsubject' value='soussoussoussoussoussoussoussujet'/>
+ <cd:variable name='subsubsubsubsubsubsubsubsection' value='soussoussoussoussoussoussoussoussection'/>
+ <cd:variable name='subsubsubsubsubsubsubsubsubject' value='soussoussoussoussoussoussoussoussujet'/>
+ <cd:variable name='subsubsubsubsubsubsubsubsubsection' value='soussoussoussoussoussoussoussoussoussection'/>
+ <cd:variable name='subsubsubsubsubsubsubsubsubsubject' value='soussoussoussoussoussoussoussoussoussujet'/>
+ <cd:variable name='sunday' value='dimanche'/>
+ <cd:variable name='support' value='support'/>
+ <cd:variable name='sym' value='sym'/>
+ <cd:variable name='symbol' value='symbole'/>
+ <cd:variable name='synchronize' value='synchronize'/>
+ <cd:variable name='system' value='systeme'/>
+ <cd:variable name='table' value='tableau'/>
+ <cd:variable name='tablehead' value='tetetableau'/>
+ <cd:variable name='tables' value='tables'/>
+ <cd:variable name='tabletail' value='queuetableau'/>
+ <cd:variable name='tabulate' value='tabule'/>
+ <cd:variable name='tabulatehead' value='tetetabule'/>
+ <cd:variable name='tabulatetail' value='queuetabule'/>
+ <cd:variable name='tall' value='long'/>
+ <cd:variable name='teletype' value='teletype'/>
+ <cd:variable name='temporary' value='temporaire'/>
+ <cd:variable name='test' value='test'/>
+ <cd:variable name='text' value='texte'/>
+ <cd:variable name='three' value='trois'/>
+ <cd:variable name='thursday' value='jeudi'/>
+ <cd:variable name='title' value='titre'/>
+ <cd:variable name='toggle' value='toggle'/>
+ <cd:variable name='tolerant' value='tolerant'/>
+ <cd:variable name='top' value='sup'/>
+ <cd:variable name='tuesday' value='mardi'/>
+ <cd:variable name='two' value='deux'/>
+ <cd:variable name='txt' value='txt'/>
+ <cd:variable name='type' value='type'/>
+ <cd:variable name='typing' value='typing'/>
+ <cd:variable name='unavailable' value='indisponible'/>
+ <cd:variable name='unit' value='unite'/>
+ <cd:variable name='units' value='unites'/>
+ <cd:variable name='unknown' value='inconnu'/>
+ <cd:variable name='unpacked' value='degroupe'/>
+ <cd:variable name='url' value='url'/>
+ <cd:variable name='used' value='used'/>
+ <cd:variable name='value' value='valeur'/>
+ <cd:variable name='vertical' value='verticale'/>
+ <cd:variable name='very' value='tres'/>
+ <cd:variable name='verystrict' value='tresstrict'/>
+ <cd:variable name='verytolerant' value='trestolerant'/>
+ <cd:variable name='weak' value='weak'/>
+ <cd:variable name='wednesday' value='mercredi'/>
+ <cd:variable name='week' value='semaine'/>
+ <cd:variable name='weekday' value='joursemaine'/>
+ <cd:variable name='white' value='blanc'/>
+ <cd:variable name='wide' value='ample'/>
+ <cd:variable name='width' value='largeur'/>
+ <cd:variable name='xml' value='xml'/>
+ <cd:variable name='year' value='annee'/>
+ <cd:variable name='yes' value='oui'/>
+ </cd:variable>
- <cd:variables>
- <cd:variable name="environment" value="environement"/>
- <cd:variable name="component" value="composant"/>
- <cd:variable name="product" value="produit"/>
- <cd:variable name="project" value="projet"/>
- </cd:variables>
+ <!-- definitions for interface constants for language fr -->
- <cd:variables>
- <cd:variable name="sunday" value="dimanche"/>
- <cd:variable name="monday" value="lundi"/>
- <cd:variable name="tuesday" value="mardi"/>
- <cd:variable name="wednesday" value="mercredi"/>
- <cd:variable name="thursday" value="jeudi"/>
- <cd:variable name="friday" value="vendredi"/>
- <cd:variable name="saturday" value="samedi"/>
- </cd:variables>
+ <cd:constants>
+ <cd:constant name='action' value='action'/>
+ <cd:constant name='address' value='adresse'/>
+ <cd:constant name='after' value='apres'/>
+ <cd:constant name='afterhead' value='aprestete'/>
+ <cd:constant name='afterkey' value='aprescle'/>
+ <cd:constant name='align' value='alignement'/>
+ <cd:constant name='aligncharacter' value='caracterealigne'/>
+ <cd:constant name='alignmentcharacter' value='alignementcaractere'/>
+ <cd:constant name='aligntitle' value='alignementtitre'/>
+ <cd:constant name='alternative' value='alternative'/>
+ <cd:constant name='apa' value='apa'/>
+ <cd:constant name='arrow' value='fleche'/>
+ <cd:constant name='at' value='a'/>
+ <cd:constant name='author' value='auteur'/>
+ <cd:constant name='auto' value='auto'/>
+ <cd:constant name='autofile' value='autofile'/>
+ <cd:constant name='autofocus' value='autofocus'/>
+ <cd:constant name='autohang' value='autohang'/>
+ <cd:constant name='autostrut' value='autostrut'/>
+ <cd:constant name='autowidth' value='autolargeur'/>
+ <cd:constant name='axis' value='axe'/>
+ <cd:constant name='background' value='arriereplan'/>
+ <cd:constant name='backgroundcolor' value='couleurarriereplan'/>
+ <cd:constant name='backgroundcorner' value='coinarriereplan'/>
+ <cd:constant name='backgrounddepth' value='profondeurarriereplan'/>
+ <cd:constant name='backgroundoffset' value='decalagearriereplan'/>
+ <cd:constant name='backgroundradius' value='rayonarriereplan'/>
+ <cd:constant name='backgroundscreen' value='ecranarriereplan'/>
+ <cd:constant name='backspace' value='retour'/>
+ <cd:constant name='balance' value='equilibre'/>
+ <cd:constant name='before' value='avant'/>
+ <cd:constant name='beforehead' value='avanttete'/>
+ <cd:constant name='bet' value='bet'/>
+ <cd:constant name='big' value='grand'/>
+ <cd:constant name='blank' value='vide'/>
+ <cd:constant name='blockway' value='blockway'/>
+ <cd:constant name='bodyfont' value='policecorps'/>
+ <cd:constant name='bookmark' value='marquepage'/>
+ <cd:constant name='bottom' value='inf'/>
+ <cd:constant name='bottomafter' value='bottomafter'/>
+ <cd:constant name='bottombefore' value='bottombefore'/>
+ <cd:constant name='bottomdistance' value='distanceinf'/>
+ <cd:constant name='bottomframe' value='cadreinf'/>
+ <cd:constant name='bottomoffset' value='decalageinf'/>
+ <cd:constant name='bottomspace' value='espaceinf'/>
+ <cd:constant name='bottomstate' value='etatinf'/>
+ <cd:constant name='cache' value='cache'/>
+ <cd:constant name='calculate' value='calculer'/>
+ <cd:constant name='ccommand' value='ccommande'/>
+ <cd:constant name='click' value='clic'/>
+ <cd:constant name='clickin' value='clicinterieur'/>
+ <cd:constant name='clickout' value='clicexterieur'/>
+ <cd:constant name='clipoffset' value='clipoffset'/>
+ <cd:constant name='closeaction' value='actionfermeture'/>
+ <cd:constant name='closecommand' value='closecommand'/>
+ <cd:constant name='closepageaction' value='actionfermeturepage'/>
+ <cd:constant name='closesymbol' value='closesymbol'/>
+ <cd:constant name='color' value='couleur'/>
+ <cd:constant name='column' value='colonne'/>
+ <cd:constant name='columndistance' value='distancecolonne'/>
+ <cd:constant name='columns' value='colonnes'/>
+ <cd:constant name='command' value='commande'/>
+ <cd:constant name='commandafter' value='commandeapres'/>
+ <cd:constant name='commandbefore' value='commandeavant'/>
+ <cd:constant name='commands' value='commandes'/>
+ <cd:constant name='component' value='composant'/>
+ <cd:constant name='compoundhyphen' value='compoundhyphen'/>
+ <cd:constant name='compress' value='compress'/>
+ <cd:constant name='connector' value='connector'/>
+ <cd:constant name='continue' value='continue'/>
+ <cd:constant name='contrastcolor' value='coleurcontraste'/>
+ <cd:constant name='controls' value='controles'/>
+ <cd:constant name='conversion' value='conversion'/>
+ <cd:constant name='convertfile' value='conversionfichier'/>
+ <cd:constant name='corner' value='coin'/>
+ <cd:constant name='coupling' value='couplage'/>
+ <cd:constant name='couplingway' value='modecouplage'/>
+ <cd:constant name='criterium' value='critere'/>
+ <cd:constant name='current' value='courant'/>
+ <cd:constant name='cutspace' value='cutspace'/>
+ <cd:constant name='dash' value='pointille'/>
+ <cd:constant name='dat' value='dat'/>
+ <cd:constant name='date' value='date'/>
+ <cd:constant name='deepnumbercommand' value='deepnumbercommand'/>
+ <cd:constant name='deeptextcommand' value='deeptextcommand'/>
+ <cd:constant name='default' value='defaut'/>
+ <cd:constant name='delay' value='delai'/>
+ <cd:constant name='depth' value='profondeur'/>
+ <cd:constant name='depthcorrection' value='correctionprofondeur'/>
+ <cd:constant name='direction' value='direction'/>
+ <cd:constant name='directory' value='repertoire'/>
+ <cd:constant name='display' value='affichage'/>
+ <cd:constant name='distance' value='distance'/>
+ <cd:constant name='dot' value='point'/>
+ <cd:constant name='doublesided' value='rectoverso'/>
+ <cd:constant name='dummy' value='dummy'/>
+ <cd:constant name='dx' value='dx'/>
+ <cd:constant name='dy' value='dy'/>
+ <cd:constant name='edge' value='bord'/>
+ <cd:constant name='edgedistance' value='distancebord'/>
+ <cd:constant name='empty' value='vide'/>
+ <cd:constant name='equalheight' value='equalheight'/>
+ <cd:constant name='equalwidth' value='equalwidth'/>
+ <cd:constant name='escape' value='escape'/>
+ <cd:constant name='evenmargin' value='margepaire'/>
+ <cd:constant name='expansion' value='expansion'/>
+ <cd:constant name='extras' value='extras'/>
+ <cd:constant name='factor' value='facteur'/>
+ <cd:constant name='fallback' value='fallback'/>
+ <cd:constant name='family' value='famille'/>
+ <cd:constant name='fieldbackgroundcolor' value='couleurarrierreplanchamp'/>
+ <cd:constant name='fieldframecolor' value='couleurcadrechamp'/>
+ <cd:constant name='fieldlayer' value='calquechamp'/>
+ <cd:constant name='fieldoffset' value='offsetchamp'/>
+ <cd:constant name='file' value='fichier'/>
+ <cd:constant name='filtercommand' value='filtercommand'/>
+ <cd:constant name='focus' value='focus'/>
+ <cd:constant name='focusin' value='focusin'/>
+ <cd:constant name='focusout' value='focusout'/>
+ <cd:constant name='footer' value='pdp'/>
+ <cd:constant name='footerdistance' value='dsitancepdp'/>
+ <cd:constant name='footerstate' value='etatpdp'/>
+ <cd:constant name='foregroundcolor' value='couleurpremierplan'/>
+ <cd:constant name='foregroundstyle' value='stylepremierplan'/>
+ <cd:constant name='format' value='formatter'/>
+ <cd:constant name='frame' value='cadre'/>
+ <cd:constant name='framecolor' value='couleurcadre'/>
+ <cd:constant name='framecorner' value='coincadre'/>
+ <cd:constant name='framedepth' value='profondeurcadre'/>
+ <cd:constant name='frameoffset' value='decalagecadre'/>
+ <cd:constant name='frameradius' value='rayoncadre'/>
+ <cd:constant name='frames' value='cadres'/>
+ <cd:constant name='from' value='de'/>
+ <cd:constant name='get' value='obtient'/>
+ <cd:constant name='global' value='global'/>
+ <cd:constant name='grid' value='grille'/>
+ <cd:constant name='hang' value='suspend'/>
+ <cd:constant name='headcolor' value='couleurtete'/>
+ <cd:constant name='headcommand' value='commandetete'/>
+ <cd:constant name='headconversion' value='conversiontete'/>
+ <cd:constant name='header' value='entete'/>
+ <cd:constant name='headerdistance' value='distanceentete'/>
+ <cd:constant name='headerstate' value='etatentete'/>
+ <cd:constant name='headlabel' value='etiquettetete'/>
+ <cd:constant name='headnumber' value='numerotete'/>
+ <cd:constant name='headstyle' value='styletete'/>
+ <cd:constant name='height' value='hauteur'/>
+ <cd:constant name='hfactor' value='facteurhauteur'/>
+ <cd:constant name='hfil' value='hfil'/>
+ <cd:constant name='hidenumber' value='hidenumber'/>
+ <cd:constant name='hoffset' value='decalagehauteur'/>
+ <cd:constant name='horoffset' value='horoffset'/>
+ <cd:constant name='hyphen' value='hyphen'/>
+ <cd:constant name='icommand' value='icommande'/>
+ <cd:constant name='in' value='in'/>
+ <cd:constant name='inbetween' value='entre'/>
+ <cd:constant name='increment' value='incremente'/>
+ <cd:constant name='incrementnumber' value='incrementenumero'/>
+ <cd:constant name='indenting' value='composeenalinea'/>
+ <cd:constant name='indentnext' value='indentesuivant'/>
+ <cd:constant name='indicator' value='indicateur'/>
+ <cd:constant name='inner' value='interieur'/>
+ <cd:constant name='innermargin' value='margeinterieure'/>
+ <cd:constant name='inputfile' value='fichierentree'/>
+ <cd:constant name='interaction' value='interaction'/>
+ <cd:constant name='interlinespace' value='espaceinterligne'/>
+ <cd:constant name='itemalign' value='itemalign'/>
+ <cd:constant name='items' value='elements'/>
+ <cd:constant name='ken' value='ken'/>
+ <cd:constant name='keyexpansion' value='keyexpansion'/>
+ <cd:constant name='keyword' value='motcle'/>
+ <cd:constant name='label' value='etiquette'/>
+ <cd:constant name='left' value='gauche'/>
+ <cd:constant name='leftcolor' value='couleurgauche'/>
+ <cd:constant name='leftcompoundhyphen' value='leftcompoundhyphen'/>
+ <cd:constant name='leftedge' value='bordgauche'/>
+ <cd:constant name='leftedgedistance' value='distancebordgauche'/>
+ <cd:constant name='leftframe' value='cadregauche'/>
+ <cd:constant name='lefthyphen' value='lefthyphen'/>
+ <cd:constant name='leftmargin' value='margegauche'/>
+ <cd:constant name='leftmargindistance' value='distancemargegauche'/>
+ <cd:constant name='leftoffset' value='decalagegauche'/>
+ <cd:constant name='leftquotation' value='citationgauche'/>
+ <cd:constant name='leftquote' value='citergauche'/>
+ <cd:constant name='leftsentence' value='phrasegauche'/>
+ <cd:constant name='leftspeech' value='leftspeech'/>
+ <cd:constant name='leftstyle' value='leftstyle'/>
+ <cd:constant name='leftsubsentence' value='sousphrasegauche'/>
+ <cd:constant name='lefttext' value='textegauche'/>
+ <cd:constant name='leftwidth' value='largeurgauche'/>
+ <cd:constant name='level' value='niveau'/>
+ <cd:constant name='levels' value='niveaux'/>
+ <cd:constant name='limittext' value='limittext'/>
+ <cd:constant name='line' value='ligne'/>
+ <cd:constant name='linecorrection' value='correctionligne'/>
+ <cd:constant name='lines' value='lignes'/>
+ <cd:constant name='list' value='liste'/>
+ <cd:constant name='listtext' value='texteliste'/>
+ <cd:constant name='local' value='local'/>
+ <cd:constant name='location' value='emplacement'/>
+ <cd:constant name='logo' value='logo'/>
+ <cd:constant name='logos' value='logos'/>
+ <cd:constant name='marcolor' value='couleurmarquage'/>
+ <cd:constant name='margin' value='marge'/>
+ <cd:constant name='margindistance' value='distancemarge'/>
+ <cd:constant name='marginedge' value='bordmarge'/>
+ <cd:constant name='marginedgetext' value='textebordmarge'/>
+ <cd:constant name='margintext' value='textemarge'/>
+ <cd:constant name='marking' value='marquage'/>
+ <cd:constant name='marstyle' value='stylemarquage'/>
+ <cd:constant name='max' value='max'/>
+ <cd:constant name='maxheight' value='hauteurmax'/>
+ <cd:constant name='maxwidth' value='largeurmax'/>
+ <cd:constant name='menu' value='menu'/>
+ <cd:constant name='method' value='methode'/>
+ <cd:constant name='middle' value='milieu'/>
+ <cd:constant name='middlespeech' value='middlespeech'/>
+ <cd:constant name='middletext' value='textecentre'/>
+ <cd:constant name='midsentence' value='midsentence'/>
+ <cd:constant name='min' value='min'/>
+ <cd:constant name='mindepth' value='profondeurmin'/>
+ <cd:constant name='minheight' value='hauteurmin'/>
+ <cd:constant name='minwidth' value='largeurmin'/>
+ <cd:constant name='n' value='n'/>
+ <cd:constant name='name' value='nom'/>
+ <cd:constant name='nbottom' value='ninf'/>
+ <cd:constant name='nc' value='nc'/>
+ <cd:constant name='next' value='suivant'/>
+ <cd:constant name='nl' value='nl'/>
+ <cd:constant name='nleft' value='ngauche'/>
+ <cd:constant name='nlines' value='nlignes'/>
+ <cd:constant name='norm' value='norme'/>
+ <cd:constant name='nr' value='nr'/>
+ <cd:constant name='nright' value='ndroite'/>
+ <cd:constant name='ntop' value='nsup'/>
+ <cd:constant name='number' value='numero'/>
+ <cd:constant name='numbercolor' value='couleurnumero'/>
+ <cd:constant name='numbercommand' value='commandenumero'/>
+ <cd:constant name='numberconversion' value='numberconversion'/>
+ <cd:constant name='numberconversionset' value='numberconversionset'/>
+ <cd:constant name='numberdistance' value='numberdistance'/>
+ <cd:constant name='numbering' value='numerotation'/>
+ <cd:constant name='numberorder' value='numberorder'/>
+ <cd:constant name='numberprefix' value='numberprefix'/>
+ <cd:constant name='numbersegments' value='numbersegments'/>
+ <cd:constant name='numberseparator' value='separateurnumbero'/>
+ <cd:constant name='numberseparatorset' value='numberseparatorset'/>
+ <cd:constant name='numberset' value='numberset'/>
+ <cd:constant name='numberstopper' value='numberstopper'/>
+ <cd:constant name='numberstyle' value='stylenumero'/>
+ <cd:constant name='numberwidth' value='numberwidth'/>
+ <cd:constant name='nx' value='nx'/>
+ <cd:constant name='ny' value='ny'/>
+ <cd:constant name='object' value='objet'/>
+ <cd:constant name='obstruction' value='obstruction'/>
+ <cd:constant name='oddmargin' value='margepaire'/>
+ <cd:constant name='offset' value='offset'/>
+ <cd:constant name='openaction' value='actionouverture'/>
+ <cd:constant name='openpageaction' value='actionouverturepage'/>
+ <cd:constant name='option' value='option'/>
+ <cd:constant name='orientation' value='orientation'/>
+ <cd:constant name='outermargin' value='margeexterieure'/>
+ <cd:constant name='overprint' value='overprint'/>
+ <cd:constant name='ownnumber' value='numeroproprio'/>
+ <cd:constant name='page' value='page'/>
+ <cd:constant name='pageboundaries' value='limitespage'/>
+ <cd:constant name='pagecolor' value='couleurpage'/>
+ <cd:constant name='pagecommand' value='commandepage'/>
+ <cd:constant name='pageconversion' value='pageconversion'/>
+ <cd:constant name='pageconversionset' value='pageconversionset'/>
+ <cd:constant name='pagenumber' value='numeropage'/>
+ <cd:constant name='pageprefix' value='pageprefix'/>
+ <cd:constant name='pageprefixconnector' value='pageprefixconnector'/>
+ <cd:constant name='pageprefixconversion' value='pageprefixconversion'/>
+ <cd:constant name='pageprefixconversionset' value='pageprefixconversionset'/>
+ <cd:constant name='pageprefixsegments' value='pageprefixsegments'/>
+ <cd:constant name='pageprefixseparatorset' value='pageprefixseparatorset'/>
+ <cd:constant name='pageprefixset' value='pageprefixset'/>
+ <cd:constant name='pageprefixstopper' value='pageprefixstopper'/>
+ <cd:constant name='pagesegments' value='pagesegments'/>
+ <cd:constant name='pageseparatorset' value='pageseparatorset'/>
+ <cd:constant name='pageset' value='pageset'/>
+ <cd:constant name='pagestate' value='etatpage'/>
+ <cd:constant name='pagestopper' value='pagestopper'/>
+ <cd:constant name='pagestyle' value='stylepage'/>
+ <cd:constant name='palet' value='palette'/>
+ <cd:constant name='paper' value='papier'/>
+ <cd:constant name='paragraph' value='paragraphe'/>
+ <cd:constant name='place' value='place'/>
+ <cd:constant name='placehead' value='placetete'/>
+ <cd:constant name='placestopper' value='emplacementstopper'/>
+ <cd:constant name='position' value='position'/>
+ <cd:constant name='prefix' value='prefixe'/>
+ <cd:constant name='prefixconnector' value='prefixconnector'/>
+ <cd:constant name='prefixconversion' value='prefixconversion'/>
+ <cd:constant name='prefixconversionset' value='prefixconversionset'/>
+ <cd:constant name='prefixsegments' value='prefixsegments'/>
+ <cd:constant name='prefixseparatorset' value='prefixseparatorset'/>
+ <cd:constant name='prefixset' value='prefixset'/>
+ <cd:constant name='prefixstopper' value='prefixstopper'/>
+ <cd:constant name='preset' value='prereglage'/>
+ <cd:constant name='preview' value='previsualisation'/>
+ <cd:constant name='previous' value='precedent'/>
+ <cd:constant name='previousnumber' value='numeroprecedent'/>
+ <cd:constant name='process' value='process'/>
+ <cd:constant name='radius' value='rayon'/>
+ <cd:constant name='random' value='aleatoire'/>
+ <cd:constant name='reduction' value='reduction'/>
+ <cd:constant name='ref' value='ref'/>
+ <cd:constant name='reference' value='reference'/>
+ <cd:constant name='referenceprefix' value='referenceprefix'/>
+ <cd:constant name='referencing' value='referencing'/>
+ <cd:constant name='regionin' value='entreregion'/>
+ <cd:constant name='regionout' value='regionexterieure'/>
+ <cd:constant name='repeat' value='repete'/>
+ <cd:constant name='reset' value='reset'/>
+ <cd:constant name='resetnumber' value='raznumero'/>
+ <cd:constant name='resolution' value='resolution'/>
+ <cd:constant name='right' value='droite'/>
+ <cd:constant name='rightcolor' value='couleurdroite'/>
+ <cd:constant name='rightcompoundhyphen' value='rightcompoundhyphen'/>
+ <cd:constant name='rightedge' value='borddroit'/>
+ <cd:constant name='rightedgedistance' value='distanceborddroit'/>
+ <cd:constant name='rightframe' value='cadredroit'/>
+ <cd:constant name='righthyphen' value='righthyphen'/>
+ <cd:constant name='rightmargin' value='margedroite'/>
+ <cd:constant name='rightmargindistance' value='distancemargedroite'/>
+ <cd:constant name='rightoffset' value='rightoffset'/>
+ <cd:constant name='rightquotation' value='citationdroite'/>
+ <cd:constant name='rightquote' value='citerdroite'/>
+ <cd:constant name='rightsentence' value='phrasedroite'/>
+ <cd:constant name='rightspeech' value='rightspeech'/>
+ <cd:constant name='rightstyle' value='styledroit'/>
+ <cd:constant name='rightsubsentence' value='sousphrasedroite'/>
+ <cd:constant name='righttext' value='textedroit'/>
+ <cd:constant name='rightwidth' value='largeurdroite'/>
+ <cd:constant name='rotation' value='rotation'/>
+ <cd:constant name='rule' value='ligne'/>
+ <cd:constant name='rulecolor' value='couleurligne'/>
+ <cd:constant name='rulethickness' value='epaisseurligne'/>
+ <cd:constant name='samepage' value='memepage'/>
+ <cd:constant name='sample' value='echantillon'/>
+ <cd:constant name='saveinlist' value='saveinlist'/>
+ <cd:constant name='scale' value='echelle'/>
+ <cd:constant name='scope' value='scope'/>
+ <cd:constant name='screen' value='ecran'/>
+ <cd:constant name='section' value='section'/>
+ <cd:constant name='sectionconversion' value='sectionconversion'/>
+ <cd:constant name='sectionconversionset' value='sectionconversionset'/>
+ <cd:constant name='sectionnumber' value='numerosection'/>
+ <cd:constant name='sectionresetset' value='sectionresetset'/>
+ <cd:constant name='sectionsegments' value='sectionsegments'/>
+ <cd:constant name='sectionseparatorset' value='sectionseparatorset'/>
+ <cd:constant name='sectionset' value='sectionset'/>
+ <cd:constant name='sectionstopper' value='sectionstopper'/>
+ <cd:constant name='separator' value='separateur'/>
+ <cd:constant name='set' value='set'/>
+ <cd:constant name='setups' value='reglages'/>
+ <cd:constant name='side' value='cote'/>
+ <cd:constant name='sidealign' value='sidealign'/>
+ <cd:constant name='sidemethod' value='sidemethod'/>
+ <cd:constant name='sidespaceafter' value='espacelateralapres'/>
+ <cd:constant name='sidespacebefore' value='espacelateralavant'/>
+ <cd:constant name='sign' value='signe'/>
+ <cd:constant name='size' value='dimension'/>
+ <cd:constant name='small' value='petit'/>
+ <cd:constant name='sorttype' value='sorttype'/>
+ <cd:constant name='source' value='origine'/>
+ <cd:constant name='space' value='espace'/>
+ <cd:constant name='spaceafter' value='espaceapres'/>
+ <cd:constant name='spacebefore' value='espaceavant'/>
+ <cd:constant name='spaceinbetween' value='spaceinbetween'/>
+ <cd:constant name='spacing' value='espacement'/>
+ <cd:constant name='split' value='split'/>
+ <cd:constant name='splitcolor' value='splitcolor'/>
+ <cd:constant name='splitmethod' value='splitmethod'/>
+ <cd:constant name='splitoffset' value='splitoffset'/>
+ <cd:constant name='spot' value='spot'/>
+ <cd:constant name='stack' value='stack'/>
+ <cd:constant name='start' value='demarre'/>
+ <cd:constant name='state' value='etat'/>
+ <cd:constant name='step' value='pas'/>
+ <cd:constant name='stop' value='stoppe'/>
+ <cd:constant name='stopper' value='taquet'/>
+ <cd:constant name='stretch' value='etire'/>
+ <cd:constant name='strut' value='strut'/>
+ <cd:constant name='style' value='style'/>
+ <cd:constant name='sub' value='sous'/>
+ <cd:constant name='subtitle' value='soustitre'/>
+ <cd:constant name='suffix' value='suffix'/>
+ <cd:constant name='sx' value='sx'/>
+ <cd:constant name='sy' value='sy'/>
+ <cd:constant name='symalign' value='symalignement'/>
+ <cd:constant name='symbol' value='symbole'/>
+ <cd:constant name='symbolset' value='jeusymbole'/>
+ <cd:constant name='symcolor' value='couleursym'/>
+ <cd:constant name='symstyle' value='stylesym'/>
+ <cd:constant name='synonym' value='synonyme'/>
+ <cd:constant name='synonymcolor' value='couleursynonyme'/>
+ <cd:constant name='synonymcommand' value='synonymcommand'/>
+ <cd:constant name='synonymstyle' value='stylesynonyme'/>
+ <cd:constant name='tab' value='tab'/>
+ <cd:constant name='text' value='texte'/>
+ <cd:constant name='textcolor' value='couleurtexte'/>
+ <cd:constant name='textcommand' value='commandetexte'/>
+ <cd:constant name='textdistance' value='distancetexte'/>
+ <cd:constant name='textlayer' value='calquetexte'/>
+ <cd:constant name='textmargin' value='margetexte'/>
+ <cd:constant name='textmethod' value='textmethod'/>
+ <cd:constant name='textseparator' value='separateurtexte'/>
+ <cd:constant name='textsize' value='tailletexte'/>
+ <cd:constant name='textstate' value='etattexte'/>
+ <cd:constant name='textstyle' value='styletexte'/>
+ <cd:constant name='textwidth' value='largeurtexte'/>
+ <cd:constant name='title' value='titre'/>
+ <cd:constant name='titlecolor' value='couleurtitre'/>
+ <cd:constant name='titlecommand' value='titlecommand'/>
+ <cd:constant name='titledistance' value='distancetitre'/>
+ <cd:constant name='titleleft' value='titleleft'/>
+ <cd:constant name='titleright' value='titleright'/>
+ <cd:constant name='titlestyle' value='styletitre'/>
+ <cd:constant name='to' value='vers'/>
+ <cd:constant name='tolerance' value='tolerance'/>
+ <cd:constant name='top' value='sup'/>
+ <cd:constant name='topdistance' value='distancesup'/>
+ <cd:constant name='topframe' value='cadresup'/>
+ <cd:constant name='topoffset' value='decalagesup'/>
+ <cd:constant name='topspace' value='espacesup'/>
+ <cd:constant name='topstate' value='etatsup'/>
+ <cd:constant name='type' value='type'/>
+ <cd:constant name='unit' value='unite'/>
+ <cd:constant name='unknownreference' value='referenceinconnue'/>
+ <cd:constant name='urlalternative' value='alternativeurl'/>
+ <cd:constant name='urlspace' value='espaceurl'/>
+ <cd:constant name='validate' value='valider'/>
+ <cd:constant name='vcommand' value='vcommande'/>
+ <cd:constant name='veroffset' value='veroffset'/>
+ <cd:constant name='vfil' value='vfil'/>
+ <cd:constant name='voffset' value='voffset'/>
+ <cd:constant name='way' value='mode'/>
+ <cd:constant name='wfactor' value='facteurlargeur'/>
+ <cd:constant name='white' value='blanc'/>
+ <cd:constant name='width' value='largeur'/>
+ <cd:constant name='xfactor' value='xfactor'/>
+ <cd:constant name='xmax' value='xmax'/>
+ <cd:constant name='xoffset' value='xoffset'/>
+ <cd:constant name='xscale' value='xscale'/>
+ <cd:constant name='xstep' value='xstep'/>
+ <cd:constant name='yfactor' value='yfactor'/>
+ <cd:constant name='ymax' value='ymax'/>
+ <cd:constant name='yoffset' value='yoffset'/>
+ <cd:constant name='yscale' value='yscale'/>
+ <cd:constant name='ystep' value='ystep'/>
+ </cd:constant>
- <cd:variables>
- <cd:variable name="january" value="janvier"/>
- <cd:variable name="february" value="fevrier"/>
- <cd:variable name="march" value="mars"/>
- <cd:variable name="april" value="avril"/>
- <cd:variable name="may" value="mai"/>
- <cd:variable name="june" value="juin"/>
- <cd:variable name="july" value="juillet"/>
- <cd:variable name="august" value="aout"/>
- <cd:variable name="september" value="septembre"/>
- <cd:variable name="october" value="octobre"/>
- <cd:variable name="november" value="novembre"/>
- <cd:variable name="december" value="decembre"/>
- </cd:variables>
+ <!-- definitions for interface elements for language fr -->
- <cd:variables>
- <cd:variable name="atpage" value="alapage"/>
- <cd:variable name="hencefore" value="precedent"/>
- <cd:variable name="hereafter" value="suivant"/>
- </cd:variables>
+ <cd:elements>
+ <cd:element name='answerlines' value='answerlines'/>
+ <cd:element name='answerspace' value='answerspace'/>
+ <cd:element name='begin' value='debut'/>
+ <cd:element name='complete' value='complete'/>
+ <cd:element name='coupled' value='couple'/>
+ <cd:element name='currentlocal' value='localcourant'/>
+ <cd:element name='emptyone' value='vide'/>
+ <cd:element name='emptytwo' value='vide'/>
+ <cd:element name='end' value='fin'/>
+ <cd:element name='endsetup' value=''/>
+ <cd:element name='get' value='obtient'/>
+ <cd:element name='increment' value='incremente'/>
+ <cd:element name='list' value='liste'/>
+ <cd:element name='listof' value='listede'/>
+ <cd:element name='load' value='charge'/>
+ <cd:element name='local' value='local'/>
+ <cd:element name='makeup' value='makeup'/>
+ <cd:element name='next' value='suivant'/>
+ <cd:element name='place' value='place'/>
+ <cd:element name='previous' value='precedent'/>
+ <cd:element name='previouslocal' value='localprecedent'/>
+ <cd:element name='reserve' value='reserver'/>
+ <cd:element name='see' value='voit'/>
+ <cd:element name='setup' value='regle'/>
+ <cd:element name='start' value='demarre'/>
+ <cd:element name='stop' value='stoppe'/>
+ <cd:element name='text' value='texte'/>
+ <cd:element name='type' value='type'/>
+ </cd:element>
- <cd:variables>
- <cd:variable name="part" value="partie"/>
- <cd:variable name="chapter" value="chapitre"/>
- <cd:variable name="subject" value="sujet"/>
- <cd:variable name="section" value="section"/>
- <cd:variable name="title" value="titre"/>
- <cd:variable name="margintitle" value="titremarge"/>
- <cd:variable name="content" value="contenu"/>
- <cd:variable name="contents" value="contenus"/>
- <cd:variable name="appendix" value="annexe"/>
- <cd:variable name="appendices" value="annexes"/>
- <cd:variable name="bodypart" value="corpsdetexte"/>
- <cd:variable name="bodymatter" value="texteprincipal"/>
- <cd:variable name="frontpart" value="preface"/>
- <cd:variable name="frontmatter" value="preambule"/>
- <cd:variable name="backpart" value="postface"/>
- <cd:variable name="backmatter" value="epilogue"/>
- <cd:variable name="footnote" value="notepdp"/>
- <cd:variable name="endnote" value="notefin"/>
- <cd:variable name="system" value="systeme"/>
- </cd:variables>
+ <!-- definitions for interface commands for language fr -->
- <cd:variables>
- <cd:variable name="subsection" value="soussection"/>
- <cd:variable name="subsubsection" value="soussoussection"/>
- <cd:variable name="subsubsubsection" value="soussoussoussection"/>
- <cd:variable name="subsubsubsubsection" value="soussoussoussoussection"/>
- <cd:variable name="subsubsubsubsubsection" value="soussoussoussoussoussection"/>
- <cd:variable name="subsubject" value="soussujet"/>
- <cd:variable name="subsubsubject" value="soussoussujet"/>
- <cd:variable name="subsubsubsubject" value="soussoussoussujet"/>
- <cd:variable name="subsubsubsubsubject" value="soussoussoussoussujet"/>
- <cd:variable name="subsubsubsubsubsubject" value="soussoussoussoussoussujet"/>
- </cd:variables>
+ <cd:commands>
+ <cd:command name='CAPPED' value='CAP'/>
+ <cd:command name='Character' value='Caractere'/>
+ <cd:command name='Characters' value='Caracteres'/>
+ <cd:command name='LABELTEXT' value='LABELTEXTE'/>
+ <cd:command name='MONTH' value='MOIS'/>
+ <cd:command name='Numbers' value='Numeros'/>
+ <cd:command name='Romannumerals' value='Chiffresromains'/>
+ <cd:command name='SmallCapped' value='Cap'/>
+ <cd:command name='SmallCaps' value='Caps'/>
+ <cd:command name='WEEKDAY' value='JOURSEMAINE'/>
+ <cd:command name='WORD' value='MOT'/>
+ <cd:command name='WORDS' value='MOTS'/>
+ <cd:command name='Word' value='Mot'/>
+ <cd:command name='Words' value='Mots'/>
+ <cd:command name='about' value='concernant'/>
+ <cd:command name='adaptlayout' value='adaptedisposition'/>
+ <cd:command name='arg' value='arg'/>
+ <cd:command name='at' value='a'/>
+ <cd:command name='atleftmargin' value='atleftmargin'/>
+ <cd:command name='atpage' value='alapage'/>
+ <cd:command name='atrightmargin' value='atrightmargin'/>
+ <cd:command name='background' value='arriereplan'/>
+ <cd:command name='backspace' value='retourarriere'/>
+ <cd:command name='blackrule' value='lignenoire'/>
+ <cd:command name='blackrules' value='lignesnoires'/>
+ <cd:command name='blank' value='vide'/>
+ <cd:command name='bookmark' value='marquepage'/>
+ <cd:command name='bottomdistance' value='distanceinf'/>
+ <cd:command name='bottomheight' value='hauteurinf'/>
+ <cd:command name='bottomspace' value='espaceinf'/>
+ <cd:command name='but' value='but'/>
+ <cd:command name='button' value='bouton'/>
+ <cd:command name='bypassblocks' value='sauteblocs'/>
+ <cd:command name='character' value='caractere'/>
+ <cd:command name='characters' value='caracteres'/>
+ <cd:command name='chem' value='chem'/>
+ <cd:command name='clip' value='clip'/>
+ <cd:command name='clonefield' value='clonechamp'/>
+ <cd:command name='color' value='couleur'/>
+ <cd:command name='colorbar' value='barrecouleur'/>
+ <cd:command name='colorvalue' value='valeurcouleur'/>
+ <cd:command name='column' value='colonne'/>
+ <cd:command name='comment' value='commentaire'/>
+ <cd:command name='comparecolorgroup' value='comparegroupecouleur'/>
+ <cd:command name='comparepalet' value='comparepalette'/>
+ <cd:command name='completepagenumber' value='completenumeropage'/>
+ <cd:command name='completeregister' value='completeregistre'/>
+ <cd:command name='component' value='composant'/>
+ <cd:command name='convertnumber' value='convertitnumero'/>
+ <cd:command name='copyfield' value='copitchamp'/>
+ <cd:command name='correctwhitespace' value='corrigeespaceblanc'/>
+ <cd:command name='coupledocument' value='coupledocument'/>
+ <cd:command name='couplemarking' value='couplemarquage'/>
+ <cd:command name='couplepage' value='pagedouble'/>
+ <cd:command name='couplepaper' value='couplepapier'/>
+ <cd:command name='coupleregister' value='coupleregistre'/>
+ <cd:command name='crlf' value='crlf'/>
+ <cd:command name='currentdate' value='datecourante'/>
+ <cd:command name='currentheadnumber' value='numerotetecourant'/>
+ <cd:command name='cutspace' value='cutspace'/>
+ <cd:command name='date' value='date'/>
+ <cd:command name='decouplemarking' value='decouplemarquage'/>
+ <cd:command name='decrementnumber' value='decrementenumero'/>
+ <cd:command name='define' value='definit'/>
+ <cd:command name='defineaccent' value='definitaccent'/>
+ <cd:command name='defineblank' value='definitvide'/>
+ <cd:command name='defineblock' value='definitbloc'/>
+ <cd:command name='definebodyfont' value='definitpolicecorps'/>
+ <cd:command name='definebodyfontenvironment' value='definitenvironnementpolicecorps'/>
+ <cd:command name='definebuffer' value='definitbuffer'/>
+ <cd:command name='definecharacter' value='definicaractere'/>
+ <cd:command name='definecolor' value='definitcouleur'/>
+ <cd:command name='definecolorgroup' value='definitgroupecouleur'/>
+ <cd:command name='definecolumnbreak' value='definitsautdecolonne'/>
+ <cd:command name='definecolumnset' value='definitjeucolonne'/>
+ <cd:command name='definecombination' value='definecombination'/>
+ <cd:command name='definecombinedlist' value='definitlisteimbriquee'/>
+ <cd:command name='definecommand' value='definitcommande'/>
+ <cd:command name='defineconversion' value='definitconversion'/>
+ <cd:command name='definedescription' value='definitdescription'/>
+ <cd:command name='defineenumeration' value='definitenumeration'/>
+ <cd:command name='definefield' value='definitchamp'/>
+ <cd:command name='definefieldstack' value='definitpilechamp'/>
+ <cd:command name='definefiguresymbol' value='definitsymbolefigure'/>
+ <cd:command name='definefloat' value='definitflottant'/>
+ <cd:command name='definefont' value='definitpolice'/>
+ <cd:command name='definefontstyle' value='definitstylepolice'/>
+ <cd:command name='definefontsynonym' value='definitsynonymepolice'/>
+ <cd:command name='defineframed' value='defineframed'/>
+ <cd:command name='defineframedtext' value='defineframedtext'/>
+ <cd:command name='definehbox' value='definithbox'/>
+ <cd:command name='definehead' value='definittete'/>
+ <cd:command name='defineindenting' value='definitcompoalinea'/>
+ <cd:command name='defineinmargin' value='definitdansmarge'/>
+ <cd:command name='defineinteractionmenu' value='definitmenuinteraction'/>
+ <cd:command name='defineitemgroup' value='defineitemgroup'/>
+ <cd:command name='definelabel' value='definitetiquette'/>
+ <cd:command name='definelayer' value='definitcalque'/>
+ <cd:command name='definelayout' value='definitdisposition'/>
+ <cd:command name='definelist' value='definitliste'/>
+ <cd:command name='definelogo' value='definitlogo'/>
+ <cd:command name='definemainfield' value='definitchampprincipal'/>
+ <cd:command name='definemakeup' value='definitmakeup'/>
+ <cd:command name='definemarking' value='definitmarquage'/>
+ <cd:command name='definemathalignment' value='definemathalignment'/>
+ <cd:command name='defineoutput' value='definitsortie'/>
+ <cd:command name='defineoverlay' value='definitrevetement'/>
+ <cd:command name='definepagebreak' value='definitsautdepage'/>
+ <cd:command name='definepalet' value='definitpalette'/>
+ <cd:command name='definepapersize' value='definittaillepapier'/>
+ <cd:command name='defineparagraphs' value='definitparagraphes'/>
+ <cd:command name='defineplacement' value='defineplacement'/>
+ <cd:command name='defineprofile' value='definitprofil'/>
+ <cd:command name='defineprogram' value='definitprogramme'/>
+ <cd:command name='definerawfont' value='definitpolicebrute'/>
+ <cd:command name='definereference' value='definitreference'/>
+ <cd:command name='definereferenceformat' value='definitformatreference'/>
+ <cd:command name='definereferencelist' value='definitlistereference'/>
+ <cd:command name='defineregister' value='definitregistre'/>
+ <cd:command name='definerule' value='definitregle'/>
+ <cd:command name='definesection' value='definitsection'/>
+ <cd:command name='definesectionblock' value='definitblocsection'/>
+ <cd:command name='definesorting' value='definittri'/>
+ <cd:command name='definestartstop' value='definitdemarrestoppe'/>
+ <cd:command name='definestyle' value='definitstyle'/>
+ <cd:command name='definesubfield' value='definitsouschamp'/>
+ <cd:command name='definesymbol' value='definitsymbole'/>
+ <cd:command name='definesynonyms' value='definitsynonymes'/>
+ <cd:command name='definetabletemplate' value='definittrametableau'/>
+ <cd:command name='definetabulate' value='definittabulation'/>
+ <cd:command name='definetext' value='definittexte'/>
+ <cd:command name='definetextposition' value='definitpositiontexte'/>
+ <cd:command name='definetextvariable' value='definitvariabletexte'/>
+ <cd:command name='definetype' value='definittype'/>
+ <cd:command name='definetyping' value='definitdactylo'/>
+ <cd:command name='defineversion' value='definitversion'/>
+ <cd:command name='determineheadnumber' value='determinenumerotete'/>
+ <cd:command name='determinelistcharacteristics' value='determinecaracteristiqueliste'/>
+ <cd:command name='determineregistercharacteristics' value='determinecaracteristiquesregistre'/>
+ <cd:command name='dimension' value='dimension'/>
+ <cd:command name='disableinteractionmenu' value='inhibemenuinteraction'/>
+ <cd:command name='domicile' value='domicile'/>
+ <cd:command name='donttest' value='sanstest'/>
+ <cd:command name='edgedistance' value='distancebord'/>
+ <cd:command name='edgewidth' value='largeurbord'/>
+ <cd:command name='emptylines' value='emptylines'/>
+ <cd:command name='environment' value='environement'/>
+ <cd:command name='externalfigure' value='figureexterne'/>
+ <cd:command name='fact' value='fait'/>
+ <cd:command name='field' value='champ'/>
+ <cd:command name='fieldstack' value='pilechamp'/>
+ <cd:command name='fillinfield' value='remplitchamp'/>
+ <cd:command name='fillinline' value='remplitligne'/>
+ <cd:command name='fillinrules' value='remplitlignesreglees'/>
+ <cd:command name='fillintext' value='remplittexte'/>
+ <cd:command name='fitfield' value='ajustechamp'/>
+ <cd:command name='fixedspace' value='espacefixe'/>
+ <cd:command name='fixedspaces' value='espacesfixes'/>
+ <cd:command name='followprofile' value='suivantprofil'/>
+ <cd:command name='followprofileversion' value='suivantversionprofil'/>
+ <cd:command name='followversion' value='suivantversion'/>
+ <cd:command name='footerdistance' value='distancepdp'/>
+ <cd:command name='footerheight' value='hauteurpdp'/>
+ <cd:command name='footnote' value='notepdp'/>
+ <cd:command name='footnotetext' value='textenotepdp'/>
+ <cd:command name='forceblocks' value='forceblocs'/>
+ <cd:command name='formulanumber' value='numeroformule'/>
+ <cd:command name='fraction' value='fraction'/>
+ <cd:command name='framed' value='framed'/>
+ <cd:command name='from' value='de'/>
+ <cd:command name='getbuffer' value='prendbuffer'/>
+ <cd:command name='getmarking' value='obtientmarquage'/>
+ <cd:command name='getnumber' value='getnumber'/>
+ <cd:command name='godown' value='vaenbas'/>
+ <cd:command name='goto' value='va'/>
+ <cd:command name='gotobox' value='vaalaboite'/>
+ <cd:command name='gotopage' value='vaalapage'/>
+ <cd:command name='graycolor' value='couleurgrise'/>
+ <cd:command name='greyvalue' value='valeurgris'/>
+ <cd:command name='grid' value='grille'/>
+ <cd:command name='hairline' value='ligneh'/>
+ <cd:command name='head' value='tete'/>
+ <cd:command name='headerdistance' value='distanceentete'/>
+ <cd:command name='headerheight' value='hauteurentete'/>
+ <cd:command name='headlevel' value='niveautete'/>
+ <cd:command name='headnumber' value='numerotete'/>
+ <cd:command name='headsym' value='headsym'/>
+ <cd:command name='headtext' value='textetete'/>
+ <cd:command name='hideblocks' value='cacheblocs'/>
+ <cd:command name='high' value='haut'/>
+ <cd:command name='hl' value='hl'/>
+ <cd:command name='immediatebetweenlist' value='immediatebetweenlist'/>
+ <cd:command name='immediatetolist' value='immediatetolist'/>
+ <cd:command name='in' value='dans'/>
+ <cd:command name='incrementnumber' value='incrementenumero'/>
+ <cd:command name='indenting' value='composeenalinea'/>
+ <cd:command name='inframed' value='inframed'/>
+ <cd:command name='infull' value='infull'/>
+ <cd:command name='ininner' value='ininner'/>
+ <cd:command name='inleft' value='dansgauche'/>
+ <cd:command name='inleftedge' value='dansbordgauche'/>
+ <cd:command name='inleftmargin' value='dansmargegauche'/>
+ <cd:command name='inline' value='alaligne'/>
+ <cd:command name='inmargin' value='dansmarge'/>
+ <cd:command name='inmframed' value='inmframed'/>
+ <cd:command name='inneredgedistance' value='inneredgedistance'/>
+ <cd:command name='inneredgewidth' value='inneredgewidth'/>
+ <cd:command name='innermargindistance' value='innermargindistance'/>
+ <cd:command name='innermarginwidth' value='innermarginwidth'/>
+ <cd:command name='inothermargin' value='dansautremarge'/>
+ <cd:command name='inouter' value='inouter'/>
+ <cd:command name='inright' value='dansdroite'/>
+ <cd:command name='inrightedge' value='dansborddroit'/>
+ <cd:command name='inrightmargin' value='dansmargedroite'/>
+ <cd:command name='installlanguage' value='installelangue'/>
+ <cd:command name='interactionbar' value='barreinteraction'/>
+ <cd:command name='interactionbuttons' value='boutonsinteraction'/>
+ <cd:command name='interactionmenu' value='menuinteraction'/>
+ <cd:command name='item' value='element'/>
+ <cd:command name='items' value='elements'/>
+ <cd:command name='its' value='el'/>
+ <cd:command name='keepblocks' value='gardeblocs'/>
+ <cd:command name='label' value='etiquette'/>
+ <cd:command name='labels' value='etiquettes'/>
+ <cd:command name='labeltext' value='labeltexte'/>
+ <cd:command name='language' value='langue'/>
+ <cd:command name='leftaligned' value='aligneagauche'/>
+ <cd:command name='leftedgedistance' value='distancebordgauche'/>
+ <cd:command name='leftedgewidth' value='largeurbordgauche'/>
+ <cd:command name='leftmargindistance' value='distancemargegauche'/>
+ <cd:command name='leftmarginwidth' value='largeurmargegauche'/>
+ <cd:command name='leg' value='leg'/>
+ <cd:command name='linewidth' value='largeurligne'/>
+ <cd:command name='listheight' value='hauteurliste'/>
+ <cd:command name='listlength' value='llongueurliste'/>
+ <cd:command name='listsymbol' value='listesymbole'/>
+ <cd:command name='listwidth' value='largeurliste'/>
+ <cd:command name='logfields' value='logchamp'/>
+ <cd:command name='lohi' value='baha'/>
+ <cd:command name='low' value='bas'/>
+ <cd:command name='macroname' value='nommacro'/>
+ <cd:command name='mainlanguage' value='langueprincipale'/>
+ <cd:command name='makeupheight' value='hauteurmakeup'/>
+ <cd:command name='makeupwidth' value='largeurmakeup'/>
+ <cd:command name='mar' value='mar'/>
+ <cd:command name='margindistance' value='distancemarge'/>
+ <cd:command name='marginrule' value='margereglee'/>
+ <cd:command name='margintext' value='textemarge'/>
+ <cd:command name='margintitle' value='titremarge'/>
+ <cd:command name='marginwidth' value='largeurmarge'/>
+ <cd:command name='marginword' value='motmarge'/>
+ <cd:command name='marking' value='marquage'/>
+ <cd:command name='markversion' value='marquageversion'/>
+ <cd:command name='mathematics' value='mathematique'/>
+ <cd:command name='menubutton' value='boutonmenu'/>
+ <cd:command name='mframed' value='mframed'/>
+ <cd:command name='midaligned' value='aligneaumilieu'/>
+ <cd:command name='mirror' value='reflete'/>
+ <cd:command name='month' value='mois'/>
+ <cd:command name='moveformula' value='deplaceformule'/>
+ <cd:command name='moveongrid' value='deplacesurgrille'/>
+ <cd:command name='movesidefloat' value='movesidefloat'/>
+ <cd:command name='navigating' value='navigating'/>
+ <cd:command name='nodimension' value='sansdimension'/>
+ <cd:command name='noheaderandfooterlines' value='sanslignesenteteetpdp'/>
+ <cd:command name='noindenting' value='sansalinea'/>
+ <cd:command name='nolist' value='sansliste'/>
+ <cd:command name='nomarking' value='sansmarquage'/>
+ <cd:command name='nomoreblocks' value='pasplusdeblocs'/>
+ <cd:command name='nomorefiles' value='pasplusdefichiers'/>
+ <cd:command name='nop' value='nop'/>
+ <cd:command name='nospace' value='sansespace'/>
+ <cd:command name='note' value='note'/>
+ <cd:command name='notopandbottomlines' value='sanslignessupetinf'/>
+ <cd:command name='notsmallcapped' value='nocap'/>
+ <cd:command name='nowhitespace' value='sansespaceblanc'/>
+ <cd:command name='numberofsubpages' value='nombredesouspages'/>
+ <cd:command name='numbers' value='numeros'/>
+ <cd:command name='outeredgedistance' value='outeredgedistance'/>
+ <cd:command name='outeredgewidth' value='outeredgewidth'/>
+ <cd:command name='outermargindistance' value='outermargindistance'/>
+ <cd:command name='outermarginwidth' value='outermarginwidth'/>
+ <cd:command name='overbar' value='overbar'/>
+ <cd:command name='overbars' value='overbars'/>
+ <cd:command name='overstrike' value='surlignetout'/>
+ <cd:command name='overstrikes' value='surligne'/>
+ <cd:command name='packed' value='groupe'/>
+ <cd:command name='page' value='page'/>
+ <cd:command name='pagedepth' value='pagedepth'/>
+ <cd:command name='pagenumber' value='numeropage'/>
+ <cd:command name='pageoffset' value='pageoffset'/>
+ <cd:command name='pagereference' value='referencepage'/>
+ <cd:command name='pagetype' value='tapepage'/>
+ <cd:command name='paperheight' value='hauteurpapier'/>
+ <cd:command name='paperwidth' value='largeurpapier'/>
+ <cd:command name='periods' value='periodes'/>
+ <cd:command name='plaatsruwelijst' value='placerawlist'/>
+ <cd:command name='placebookmarks' value='placemarquespages'/>
+ <cd:command name='placecombinedlist' value='placelisteinmbriquee'/>
+ <cd:command name='placefloat' value='placeflottant'/>
+ <cd:command name='placefootnotes' value='placenotespdp'/>
+ <cd:command name='placeformula' value='placeformule'/>
+ <cd:command name='placeheadnumber' value='placenumerotete'/>
+ <cd:command name='placeheadtext' value='placetextetete'/>
+ <cd:command name='placelegend' value='placelegende'/>
+ <cd:command name='placelist' value='placeliste'/>
+ <cd:command name='placelocalfootnotes' value='placenotespdplocales'/>
+ <cd:command name='placelogos' value='placelogos'/>
+ <cd:command name='placeongrid' value='placesurgrille'/>
+ <cd:command name='placeontopofeachother' value='placelesunsaudessusdesautres'/>
+ <cd:command name='placepagenumber' value='placenumeropage'/>
+ <cd:command name='placereferencelist' value='placelistereference'/>
+ <cd:command name='placeregister' value='placeregistre'/>
+ <cd:command name='placerule' value='placeregle'/>
+ <cd:command name='placesidebyside' value='placecoteacote'/>
+ <cd:command name='placesubformula' value='placesousformule'/>
+ <cd:command name='placetextvariable' value='placevariabletexte'/>
+ <cd:command name='position' value='position'/>
+ <cd:command name='positiontext' value='positionnetexte'/>
+ <cd:command name='printpaperheight' value='hauteureditionpapier'/>
+ <cd:command name='printpaperwidth' value='largeureditionpapier'/>
+ <cd:command name='processblocks' value='traiteblocs'/>
+ <cd:command name='processpage' value='traitepage'/>
+ <cd:command name='product' value='produit'/>
+ <cd:command name='program' value='programme'/>
+ <cd:command name='project' value='projet'/>
+ <cd:command name='publication' value='publication'/>
+ <cd:command name='quotation' value='citation'/>
+ <cd:command name='quote' value='citer'/>
+ <cd:command name='ran' value='ran'/>
+ <cd:command name='redo' value='refait'/>
+ <cd:command name='ref' value='ref'/>
+ <cd:command name='reference' value='reference'/>
+ <cd:command name='referral' value='recommandation'/>
+ <cd:command name='referraldate' value='daterecommandation'/>
+ <cd:command name='referring' value='faitreference'/>
+ <cd:command name='remark' value='commentaire'/>
+ <cd:command name='reset' value='raz'/>
+ <cd:command name='resetmarking' value='razmarquage'/>
+ <cd:command name='resetnumber' value='raznumero'/>
+ <cd:command name='resettext' value='resettextcontent'/>
+ <cd:command name='rightaligned' value='aligneadroite'/>
+ <cd:command name='rightedgedistance' value='distanceborddroit'/>
+ <cd:command name='rightedgewidth' value='largeurborddroit'/>
+ <cd:command name='rightmargindistance' value='distancemargedroite'/>
+ <cd:command name='rightmarginwidth' value='largeurmargedroite'/>
+ <cd:command name='romannumerals' value='chiffresromains'/>
+ <cd:command name='rotate' value='oriente'/>
+ <cd:command name='scale' value='echelle'/>
+ <cd:command name='screen' value='ecran'/>
+ <cd:command name='selectblocks' value='selectionneblocs'/>
+ <cd:command name='selectpaper' value='selectionnepapier'/>
+ <cd:command name='selectversion' value='selectionneversion'/>
+ <cd:command name='setnumber' value='affectenumero'/>
+ <cd:command name='settextcontent' value='settext'/>
+ <cd:command name='settextvariable' value='affectevariabletexte'/>
+ <cd:command name='setupalign' value='reglealignement'/>
+ <cd:command name='setupanswerarea' value='setupanswerarea'/>
+ <cd:command name='setuparranging' value='reglearrangement'/>
+ <cd:command name='setupbackground' value='reglearriereplan'/>
+ <cd:command name='setupbackgrounds' value='reglearriereplans'/>
+ <cd:command name='setupblackrules' value='reglelignesnoires'/>
+ <cd:command name='setupblank' value='definitvide'/>
+ <cd:command name='setupblock' value='reglebloc'/>
+ <cd:command name='setupbodyfont' value='reglepolicecorps'/>
+ <cd:command name='setupbodyfontenvironment' value='regleenvironnementpolicecorps'/>
+ <cd:command name='setupbottom' value='regleinf'/>
+ <cd:command name='setupbottomtexts' value='regletextesinf'/>
+ <cd:command name='setupbuffer' value='reglebuffer'/>
+ <cd:command name='setupbuttons' value='regleboutons'/>
+ <cd:command name='setupcapitals' value='reglecapitales'/>
+ <cd:command name='setupcaption' value='regleintitule'/>
+ <cd:command name='setupcaptions' value='regleintitules'/>
+ <cd:command name='setupclipping' value='regleclipping'/>
+ <cd:command name='setupcolor' value='reglecouleur'/>
+ <cd:command name='setupcolors' value='reglecouleurs'/>
+ <cd:command name='setupcolumns' value='reglecolonnes'/>
+ <cd:command name='setupcolumnset' value='reglejeucolonne'/>
+ <cd:command name='setupcolumnsetlines' value='setupcolumnsetlines'/>
+ <cd:command name='setupcolumnsetstart' value='setupcolumnsetstart'/>
+ <cd:command name='setupcombinations' value='reglecombinaisons'/>
+ <cd:command name='setupcombinedlist' value='reglelisteimbriquee'/>
+ <cd:command name='setupcomment' value='reglecommentaire'/>
+ <cd:command name='setupdescriptions' value='regledescriptions'/>
+ <cd:command name='setupenumerations' value='regleenumerations'/>
+ <cd:command name='setupexternalfigures' value='reglefiguresexternes'/>
+ <cd:command name='setupfield' value='reglechamp'/>
+ <cd:command name='setupfields' value='reglechamps'/>
+ <cd:command name='setupfillinlines' value='regleremplitligne'/>
+ <cd:command name='setupfillinrules' value='regleremplitlignesreglees'/>
+ <cd:command name='setupfloat' value='regleflottant'/>
+ <cd:command name='setupfloats' value='regleflottants'/>
+ <cd:command name='setupfloatsplitting' value='regleseparationflottant'/>
+ <cd:command name='setupfooter' value='reglepdp'/>
+ <cd:command name='setupfootertexts' value='regletextespdp'/>
+ <cd:command name='setupfootnotedefinition' value='definitnotepdp'/>
+ <cd:command name='setupfootnotes' value='reglenotepdp'/>
+ <cd:command name='setupforms' value='regleformulaires'/>
+ <cd:command name='setupformulas' value='regleformules'/>
+ <cd:command name='setupframed' value='regleencadre'/>
+ <cd:command name='setupframedtexts' value='setupframedtexts'/>
+ <cd:command name='setuphead' value='regletete'/>
+ <cd:command name='setupheader' value='regleentete'/>
+ <cd:command name='setupheadertexts' value='regletextesentete'/>
+ <cd:command name='setupheadnumber' value='reglenumerotete'/>
+ <cd:command name='setupheads' value='regletetes'/>
+ <cd:command name='setupheadtext' value='regletextetete'/>
+ <cd:command name='setuphyphenmark' value='reglemarquagehyphenation'/>
+ <cd:command name='setupindentations' value='reglealineas'/>
+ <cd:command name='setupindenting' value='reglecomposeenalinea'/>
+ <cd:command name='setupinmargin' value='regledansmarge'/>
+ <cd:command name='setupinteraction' value='regleinteraction'/>
+ <cd:command name='setupinteractionbar' value='reglebarreinteraction'/>
+ <cd:command name='setupinteractionmenu' value='reglemenuinteraction'/>
+ <cd:command name='setupinteractionscreen' value='regleecraninteraction'/>
+ <cd:command name='setupinterlinespace' value='regleespacementinterligne'/>
+ <cd:command name='setupitemgroup' value='setupitemgroup'/>
+ <cd:command name='setupitemgroups' value='reglegroupeselements'/>
+ <cd:command name='setupitems' value='regleelements'/>
+ <cd:command name='setuplabeltext' value='reglelabeltexte'/>
+ <cd:command name='setuplanguage' value='reglelangue'/>
+ <cd:command name='setuplayout' value='regledisposition'/>
+ <cd:command name='setuplegend' value='reglelegende'/>
+ <cd:command name='setuplinenumbering' value='reglenumerotationligne'/>
+ <cd:command name='setuplines' value='reglelignes'/>
+ <cd:command name='setuplinewidth' value='regleepaisseurligne'/>
+ <cd:command name='setuplist' value='regleliste'/>
+ <cd:command name='setupmakeup' value='reglemakeup'/>
+ <cd:command name='setupmarginblocks' value='regleblocmarge'/>
+ <cd:command name='setupmarginrules' value='reglemargereglee'/>
+ <cd:command name='setupmarking' value='reglemarquage'/>
+ <cd:command name='setupmathalignment' value='setupmathalignment'/>
+ <cd:command name='setupnarrower' value='reglecompoetroite'/>
+ <cd:command name='setupnumber' value='reglenumero'/>
+ <cd:command name='setupnumbering' value='reglenumerotation'/>
+ <cd:command name='setupoppositeplacing' value='regleplacementopposition'/>
+ <cd:command name='setupoutput' value='reglesortie'/>
+ <cd:command name='setuppagecomment' value='reglecommentairepage'/>
+ <cd:command name='setuppagenumber' value='reglenumeropage'/>
+ <cd:command name='setuppagenumbering' value='reglenumerotationpage'/>
+ <cd:command name='setuppagetransitions' value='regletransitionspage'/>
+ <cd:command name='setuppalet' value='reglepalette'/>
+ <cd:command name='setuppaper' value='reglepapier'/>
+ <cd:command name='setuppapersize' value='regletaillepapier'/>
+ <cd:command name='setupparagraphnumbering' value='reglenumerotationparagraphe'/>
+ <cd:command name='setupparagraphs' value='regleparagraphes'/>
+ <cd:command name='setupplacement' value='setupplacement'/>
+ <cd:command name='setuppositioning' value='reglepositionnement'/>
+ <cd:command name='setupprofiles' value='regleprofils'/>
+ <cd:command name='setupprograms' value='regleprogrammes'/>
+ <cd:command name='setuppublications' value='reglepublications'/>
+ <cd:command name='setupquote' value='demarreciter'/>
+ <cd:command name='setupreferencelist' value='reglelistereference'/>
+ <cd:command name='setupreferencing' value='reglereferencage'/>
+ <cd:command name='setupregister' value='regleregistre'/>
+ <cd:command name='setuprotate' value='regleoriente'/>
+ <cd:command name='setuprule' value='regleregle'/>
+ <cd:command name='setups' value='reglages'/>
+ <cd:command name='setupscreens' value='regleecrans'/>
+ <cd:command name='setupsection' value='reglesection'/>
+ <cd:command name='setupsectionblock' value='regleblocsection'/>
+ <cd:command name='setupsorting' value='regletri'/>
+ <cd:command name='setupspacing' value='regleespacement'/>
+ <cd:command name='setupstartstop' value='regledemarrestoppe'/>
+ <cd:command name='setupstrut' value='reglestrut'/>
+ <cd:command name='setupsubpagenumber' value='reglesousnumeropage'/>
+ <cd:command name='setupsymbolset' value='reglejeusymboles'/>
+ <cd:command name='setupsynchronization' value='reglesynchronisation'/>
+ <cd:command name='setupsynchronizationbar' value='reglebarresynchronisation'/>
+ <cd:command name='setupsynonyms' value='reglesynonymes'/>
+ <cd:command name='setupsystem' value='reglesysteme'/>
+ <cd:command name='setuptab' value='regletab'/>
+ <cd:command name='setuptables' value='regletableaux'/>
+ <cd:command name='setuptabulate' value='regletabulation'/>
+ <cd:command name='setuptext' value='regletexte'/>
+ <cd:command name='setuptextposition' value='reglepositiontexte'/>
+ <cd:command name='setuptextrules' value='reglelignesreglestexte'/>
+ <cd:command name='setuptexttexts' value='regletextestexte'/>
+ <cd:command name='setuptextvariable' value='reglevariabletexte'/>
+ <cd:command name='setupthinrules' value='regletraitsfins'/>
+ <cd:command name='setuptolerance' value='regletolerance'/>
+ <cd:command name='setuptop' value='reglesup'/>
+ <cd:command name='setuptoptexts' value='regletextessup'/>
+ <cd:command name='setuptype' value='regletype'/>
+ <cd:command name='setuptyping' value='regledactylo'/>
+ <cd:command name='setupunderbar' value='reglesouslignage'/>
+ <cd:command name='setupurl' value='regleurl'/>
+ <cd:command name='setupversions' value='regleversions'/>
+ <cd:command name='setupwhitespace' value='regleespaceblanc'/>
+ <cd:command name='showbodyfont' value='montrepolicecorps'/>
+ <cd:command name='showbodyfontenvironment' value='montreenvironnementpolicecorps'/>
+ <cd:command name='showcolor' value='montrecouleur'/>
+ <cd:command name='showcolorgroup' value='montregroupecouleur'/>
+ <cd:command name='showexternalfigures' value='montrefiguresexternes'/>
+ <cd:command name='showfields' value='montrechamps'/>
+ <cd:command name='showframe' value='montrecadre'/>
+ <cd:command name='showgrid' value='montregrille'/>
+ <cd:command name='showlayout' value='montredisposition'/>
+ <cd:command name='showmakeup' value='montremakeup'/>
+ <cd:command name='showpalet' value='montrepalette'/>
+ <cd:command name='showprint' value='montreedition'/>
+ <cd:command name='showsetups' value='montrereglages'/>
+ <cd:command name='showstruts' value='montrestruts'/>
+ <cd:command name='showsymbolset' value='montrejeusymboles'/>
+ <cd:command name='smallcapped' value='cap'/>
+ <cd:command name='someline' value='uneligne'/>
+ <cd:command name='somewhere' value='qqpart'/>
+ <cd:command name='space' value='espace'/>
+ <cd:command name='splitfloat' value='separeflottant'/>
+ <cd:command name='startalignment' value='demarrealignement'/>
+ <cd:command name='startbackground' value='demarrearriereplan'/>
+ <cd:command name='startcoding' value='demarrecodage'/>
+ <cd:command name='startcolor' value='demarrecouleur'/>
+ <cd:command name='startcolumnmakeup' value='startcolumnmakeup'/>
+ <cd:command name='startcolumns' value='demarrecolonnes'/>
+ <cd:command name='startcolumnset' value='demarrejeucolonne'/>
+ <cd:command name='startcombination' value='demarrecombinaison'/>
+ <cd:command name='startcomponent' value='demarrecomposant'/>
+ <cd:command name='startdocument' value='demarredocument'/>
+ <cd:command name='startenvironment' value='demarreenvironement'/>
+ <cd:command name='startfigure' value='demarrefigure'/>
+ <cd:command name='startglobal' value='demarreglobal'/>
+ <cd:command name='startline' value='demarreligne'/>
+ <cd:command name='startlinecorrection' value='demarrecorrectionligne'/>
+ <cd:command name='startlinenumbering' value='demarrenumerotationligne'/>
+ <cd:command name='startlines' value='demarrelignes'/>
+ <cd:command name='startlocal' value='demarrelocal'/>
+ <cd:command name='startlocalfootnotes' value='demarrenotespdplocales'/>
+ <cd:command name='startmakeup' value='demarremakeup'/>
+ <cd:command name='startmarginblock' value='demarreblocmarge'/>
+ <cd:command name='startmarginrule' value='demarremargereglee'/>
+ <cd:command name='startnarrower' value='demarrecompoetroite'/>
+ <cd:command name='startopposite' value='demarreopposition'/>
+ <cd:command name='startoverlay' value='demarrerevetement'/>
+ <cd:command name='startoverzicht' value='demarrevuedensemble'/>
+ <cd:command name='startpacked' value='demarregroupe'/>
+ <cd:command name='startpositioning' value='demarrepositionnement'/>
+ <cd:command name='startproduct' value='demarreproduit'/>
+ <cd:command name='startprofile' value='demarreprofil'/>
+ <cd:command name='startproject' value='demarreprojet'/>
+ <cd:command name='startquotation' value='demarrecitation'/>
+ <cd:command name='startraster' value='demarreraster'/>
+ <cd:command name='startsymbolset' value='demarrejeusymboles'/>
+ <cd:command name='startsynchronization' value='demarresynchronisation'/>
+ <cd:command name='starttable' value='demarretableau'/>
+ <cd:command name='starttables' value='demarretableaux'/>
+ <cd:command name='starttext' value='demarretexte'/>
+ <cd:command name='starttextrule' value='demarreligneregleetexte'/>
+ <cd:command name='startunpacked' value='demarredegroupe'/>
+ <cd:command name='startversion' value='demarreversion'/>
+ <cd:command name='stopalignment' value='stoppealignement'/>
+ <cd:command name='stopbackground' value='stoppearriereplan'/>
+ <cd:command name='stopcoding' value='stoppecodage'/>
+ <cd:command name='stopcolor' value='stoppecouleur'/>
+ <cd:command name='stopcolumnmakeup' value='stopcolumnmakeup'/>
+ <cd:command name='stopcolumns' value='stoppecolonnes'/>
+ <cd:command name='stopcolumnset' value='stoppejeucolonne'/>
+ <cd:command name='stopcombination' value='stoppecombinaison'/>
+ <cd:command name='stopcomponent' value='stoppecomposant'/>
+ <cd:command name='stopdocument' value='stoppedocument'/>
+ <cd:command name='stopenvironment' value='stoppeenvironement'/>
+ <cd:command name='stopglobal' value='stoppeglobal'/>
+ <cd:command name='stopline' value='stoppeligne'/>
+ <cd:command name='stoplinecorrection' value='stoppecorrectionligne'/>
+ <cd:command name='stoplinenumbering' value='stoppenumerotationligne'/>
+ <cd:command name='stoplines' value='stoppelignes'/>
+ <cd:command name='stoplocal' value='stoppelocal'/>
+ <cd:command name='stoplocalfootnotes' value='stoppenotespdplocales'/>
+ <cd:command name='stopmakeup' value='stoppemakeup'/>
+ <cd:command name='stopmarginblock' value='stoppeblocmarge'/>
+ <cd:command name='stopmarginrule' value='stoppemargereglee'/>
+ <cd:command name='stopnarrower' value='stopcompoetroite'/>
+ <cd:command name='stopopposite' value='stoppeopposition'/>
+ <cd:command name='stopoverlay' value='stopperevetement'/>
+ <cd:command name='stopoverzicht' value='stoppevuedensemble'/>
+ <cd:command name='stoppacked' value='stoppegroupe'/>
+ <cd:command name='stoppositioning' value='stoppepositionnement'/>
+ <cd:command name='stopproduct' value='stoppeproduit'/>
+ <cd:command name='stopprofile' value='stoppeprofil'/>
+ <cd:command name='stopproject' value='stoppeprojet'/>
+ <cd:command name='stopquotation' value='stoppecitation'/>
+ <cd:command name='stopraster' value='stopperaster'/>
+ <cd:command name='stopsynchronization' value='stoppesynchronisation'/>
+ <cd:command name='stoptable' value='stoppetableau'/>
+ <cd:command name='stoptables' value='stoppetableaux'/>
+ <cd:command name='stoptext' value='stoppetexte'/>
+ <cd:command name='stoptextrule' value='stoppeligneregleetexte'/>
+ <cd:command name='stopunpacked' value='stoppedegroupe'/>
+ <cd:command name='stopversion' value='stoppeversion'/>
+ <cd:command name='stretched' value='etire'/>
+ <cd:command name='subformulanumber' value='numerosousformule'/>
+ <cd:command name='subpagenumber' value='sousnumeropage'/>
+ <cd:command name='switchtobodyfont' value='changepolicecorps'/>
+ <cd:command name='switchtorawfont' value='changepolicebrute'/>
+ <cd:command name='sym' value='sym'/>
+ <cd:command name='symbol' value='symbole'/>
+ <cd:command name='synchronizationbar' value='barresynchronisation'/>
+ <cd:command name='synchronize' value='synchronise'/>
+ <cd:command name='tab' value='tab'/>
+ <cd:command name='testcolumn' value='testcolumn'/>
+ <cd:command name='testpage' value='testpage'/>
+ <cd:command name='tex' value='tex'/>
+ <cd:command name='textheight' value='hauteurtexte'/>
+ <cd:command name='textreference' value='referencetexte'/>
+ <cd:command name='textrule' value='ligneregleetexte'/>
+ <cd:command name='textvariable' value='variabletexte'/>
+ <cd:command name='textwidth' value='largeurtexte'/>
+ <cd:command name='thinrule' value='traitfin'/>
+ <cd:command name='thinrules' value='traitsfins'/>
+ <cd:command name='tooltip' value='suggestion'/>
+ <cd:command name='topdistance' value='distancesup'/>
+ <cd:command name='topheight' value='hauteursup'/>
+ <cd:command name='topspace' value='espacesup'/>
+ <cd:command name='totalnumberofpages' value='nombretotaldepages'/>
+ <cd:command name='translate' value='traduire'/>
+ <cd:command name='txt' value='txt'/>
+ <cd:command name='typ' value='typ'/>
+ <cd:command name='type' value='dactylographier'/>
+ <cd:command name='typebuffer' value='tapebuffer'/>
+ <cd:command name='typefile' value='fichierdactylo'/>
+ <cd:command name='underbar' value='souslignetout'/>
+ <cd:command name='underbars' value='sousligne'/>
+ <cd:command name='unitmeaning' value='sensunite'/>
+ <cd:command name='unknown' value='inconnu'/>
+ <cd:command name='useJSscripts' value='utiliseJSscripts'/>
+ <cd:command name='useURL' value='utiliseURL'/>
+ <cd:command name='useXMLfilter' value='useXMLfilter'/>
+ <cd:command name='useblocks' value='utiliseblocs'/>
+ <cd:command name='usecommands' value='utilisecommandes'/>
+ <cd:command name='useencoding' value='utiliseencodage'/>
+ <cd:command name='useexternaldocument' value='utilisedocumentexterne'/>
+ <cd:command name='useexternalfigure' value='utilisefigureexterne'/>
+ <cd:command name='useexternalfile' value='utilisefichierexterne'/>
+ <cd:command name='useexternalfiles' value='utilisefichiersexternes'/>
+ <cd:command name='useexternalsoundtrack' value='utilisepsiteaudioexterne'/>
+ <cd:command name='usemodule' value='utilisemodule'/>
+ <cd:command name='usemodules' value='utilisemodules'/>
+ <cd:command name='usepath' value='utilisechemin'/>
+ <cd:command name='usereferences' value='utilisereferences'/>
+ <cd:command name='usespecials' value='utilisespecialites'/>
+ <cd:command name='usesymbols' value='utilisesymboles'/>
+ <cd:command name='usetypescript' value='usetypescript'/>
+ <cd:command name='usetypescriptfile' value='usetypescriptfile'/>
+ <cd:command name='useurl' value='utiliseurl'/>
+ <cd:command name='version' value='version'/>
+ <cd:command name='vl' value='vl'/>
+ <cd:command name='weekday' value='joursemaine'/>
+ <cd:command name='whitespace' value='espaceblanc'/>
+ <cd:command name='wordright' value='motdroit'/>
+ <cd:command name='writebetweenlist' value='ecritentreliste'/>
+ <cd:command name='writetolist' value='ecritdansliste'/>
+ <cd:command name='writetoreferencelist' value='ecritdanslistereference'/>
+ <cd:command name='writetoregister' value='ecritregistre'/>
+ </cd:command>
- <cd:variables>
- <cd:variable name="flushleft" value="flushleft"/>
- <cd:variable name="flushright" value="flushright"/>
- <cd:variable name="center" value="center"/>
- <cd:variable name="flushouter" value="flushouter"/>
- <cd:variable name="flushinner" value="flushinner"/>
- </cd:variables>
-
- <cd:variables>
- <cd:variable name="typing" value="typing"/>
- <cd:variable name="file" value="fichier"/>
- </cd:variables>
-
- <cd:variables>
- <cd:variable name="formula" value="formule"/>
- <cd:variable name="subformula" value="subformule"/>
- <cd:variable name="formulae" value="formules"/>
- <cd:variable name="figure" value="figure"/>
- <cd:variable name="figures" value="figures"/>
- <cd:variable name="table" value="tableau"/>
- <cd:variable name="tables" value="tables"/>
- <cd:variable name="graphic" value="graphique"/>
- <cd:variable name="graphics" value="graphiques"/>
- <cd:variable name="intermezzo" value="intermezzo"/>
- <cd:variable name="intermezzi" value="intermezzi"/>
- <cd:variable name="index" value="index"/>
- <cd:variable name="indices" value="indices"/>
- <cd:variable name="abbreviation" value="abreviation"/>
- <cd:variable name="abbreviations" value="abreviations"/>
- <cd:variable name="logo" value="logo"/>
- <cd:variable name="logos" value="logos"/>
- <cd:variable name="unit" value="unite"/>
- <cd:variable name="units" value="unites"/>
- <cd:variable name="line" value="ligne"/>
- <cd:variable name="lines" value="lignes"/>
- <cd:variable name="framedtext" value="texteencadre"/>
- <cd:variable name="quotation" value="citation"/>
- <cd:variable name="blockquote" value="blockquote"/>
- <cd:variable name="quote" value="citer"/>
- <cd:variable name="speech" value="discours"/>
- <cd:variable name="itemize" value="lister"/>
- <cd:variable name="mathalignment" value="mathalignment"/>
- <cd:variable name="mathcases" value="mathcases"/>
- <cd:variable name="mathmatrix" value="mathmatrix"/>
- </cd:variables>
-
- <cd:constants>
- <cd:constant name="sorttype" value="sorttype"/>
- <cd:constant name="compress" value="compress"/>
- <cd:constant name="autohang" value="autohang"/>
- <cd:constant name="suffix" value="suffix"/>
- <cd:constant name="leftquotation" value="citationgauche"/>
- <cd:constant name="rightquotation" value="citationdroite"/>
- <cd:constant name="leftquote" value="citergauche"/>
- <cd:constant name="rightquote" value="citerdroite"/>
- <cd:constant name="compoundhyphen" value="compoundhyphen"/>
- <cd:constant name="leftcompoundhyphen" value="leftcompoundhyphen"/>
- <cd:constant name="rightcompoundhyphen" value="rightcompoundhyphen"/>
- <cd:constant name="midsentence" value="midsentence"/>
- <cd:constant name="leftsentence" value="phrasegauche"/>
- <cd:constant name="rightsentence" value="phrasedroite"/>
- <cd:constant name="leftsubsentence" value="sousphrasegauche"/>
- <cd:constant name="rightsubsentence" value="sousphrasedroite"/>
- <cd:constant name="leftspeech" value="leftspeech"/>
- <cd:constant name="middlespeech" value="middlespeech"/>
- <cd:constant name="rightspeech" value="rightspeech"/>
- <cd:constant name="limittext" value="limittext"/>
- <cd:constant name="date" value="date"/>
- <cd:constant name="spacebefore" value="espaceavant"/>
- <cd:constant name="spaceinbetween" value="spaceinbetween"/>
- <cd:constant name="spaceafter" value="espaceapres"/>
- <cd:constant name="sidespacebefore" value="espacelateralavant"/>
- <cd:constant name="sidespaceafter" value="espacelateralapres"/>
- <cd:constant name="to" value="vers"/>
- <cd:constant name="indicator" value="indicateur"/>
- <cd:constant name="background" value="arriereplan"/>
- <cd:constant name="backgrounddepth" value="profondeurarriereplan"/>
- <cd:constant name="backgroundcorner" value="coinarriereplan"/>
- <cd:constant name="splitcolor" value="splitcolor"/>
- <cd:constant name="backgroundcolor" value="couleurarriereplan"/>
- <cd:constant name="foregroundcolor" value="couleurpremierplan"/>
- <cd:constant name="foregroundstyle" value="stylepremierplan"/>
- <cd:constant name="clipoffset" value="clipoffset"/>
- <cd:constant name="backgroundoffset" value="decalagearriereplan"/>
- <cd:constant name="backgroundscreen" value="ecranarriereplan"/>
- <cd:constant name="backgroundradius" value="rayonarriereplan"/>
- <cd:constant name="address" value="adresse"/>
- <cd:constant name="stopper" value="taquet"/>
- <cd:constant name="distance" value="distance"/>
- <cd:constant name="paragraph" value="paragraphe"/>
- <cd:constant name="axis" value="axe"/>
- <cd:constant name="author" value="auteur"/>
- <cd:constant name="auto" value="auto"/>
- <cd:constant name="autofile" value="autofile"/>
- <cd:constant name="balance" value="equilibre"/>
- <cd:constant name="bookmark" value="marquepage"/>
- <cd:constant name="wfactor" value="facteurlargeur"/>
- <cd:constant name="inner" value="interieur"/>
- <cd:constant name="blank" value="vide"/>
- <cd:constant name="obstruction" value="obstruction"/>
- <cd:constant name="blockway" value="blockway"/>
- <cd:constant name="bottomspace" value="espaceinf"/>
- <cd:constant name="top" value="sup"/>
- <cd:constant name="topdistance" value="distancesup"/>
- <cd:constant name="topframe" value="cadresup"/>
- <cd:constant name="topoffset" value="decalagesup"/>
- <cd:constant name="topstate" value="etatsup"/>
- <cd:constant name="width" value="largeur"/>
- <cd:constant name="autowidth" value="autolargeur"/>
- <cd:constant name="maxwidth" value="largeurmax"/>
- <cd:constant name="minwidth" value="largeurmin"/>
- <cd:constant name="source" value="origine"/>
- <cd:constant name="command" value="commande"/>
- <cd:constant name="commands" value="commandes"/>
- <cd:constant name="component" value="composant"/>
- <cd:constant name="contrastcolor" value="coleurcontraste"/>
- <cd:constant name="conversion" value="conversion"/>
- <cd:constant name="headconversion" value="conversiontete"/>
- <cd:constant name="headlabel" value="etiquettetete"/>
- <cd:constant name="criterium" value="critere"/>
- <cd:constant name="date" value="date"/>
- <cd:constant name="default" value="defaut"/>
- <cd:constant name="depth" value="profondeur"/>
- <cd:constant name="depthcorrection" value="correctionprofondeur"/>
- <cd:constant name="continue" value="continue"/>
- <cd:constant name="doublesided" value="rectoverso"/>
- <cd:constant name="dummy" value="dummy"/>
- <cd:constant name="unit" value="unite"/>
- <cd:constant name="ownnumber" value="numeroproprio"/>
- <cd:constant name="evenmargin" value="margepaire"/>
- <cd:constant name="expansion" value="expansion"/>
- <cd:constant name="keyexpansion" value="keyexpansion"/>
- <cd:constant name="factor" value="facteur"/>
- <cd:constant name="convertfile" value="conversionfichier"/>
- <cd:constant name="file" value="fichier"/>
- <cd:constant name="inputfile" value="fichierentree"/>
- <cd:constant name="size" value="dimension"/>
- <cd:constant name="autofocus" value="autofocus"/>
- <cd:constant name="focus" value="focus"/>
- <cd:constant name="directory" value="repertoire"/>
- <cd:constant name="cache" value="cache"/>
- <cd:constant name="grid" value="grille"/>
- <cd:constant name="big" value="grand"/>
- <cd:constant name="get" value="obtient"/>
- <cd:constant name="hang" value="suspend"/>
- <cd:constant name="repeat" value="repete"/>
- <cd:constant name="hfactor" value="facteurhauteur"/>
- <cd:constant name="corner" value="coin"/>
- <cd:constant name="hoffset" value="decalagehauteur"/>
- <cd:constant name="frames" value="cadres"/>
- <cd:constant name="header" value="entete"/>
- <cd:constant name="headerdistance" value="distanceentete"/>
- <cd:constant name="headerstate" value="etatentete"/>
- <cd:constant name="height" value="hauteur"/>
- <cd:constant name="maxheight" value="hauteurmax"/>
- <cd:constant name="minheight" value="hauteurmin"/>
- <cd:constant name="mindepth" value="profondeurmin"/>
- <cd:constant name="current" value="courant"/>
- <cd:constant name="in" value="in"/>
- <cd:constant name="indenting" value="composeenalinea"/>
- <cd:constant name="interaction" value="interaction"/>
- <cd:constant name="interlinespace" value="espaceinterligne"/>
- <cd:constant name="items" value="elements"/>
- <cd:constant name="fallback" value="fallback"/>
- <cd:constant name="frame" value="cadre"/>
- <cd:constant name="framedepth" value="profondeurcadre"/>
- <cd:constant name="framecorner" value="coincadre"/>
- <cd:constant name="framecolor" value="couleurcadre"/>
- <cd:constant name="frameoffset" value="decalagecadre"/>
- <cd:constant name="frameradius" value="rayoncadre"/>
- <cd:constant name="marginedge" value="bordmarge"/>
- <cd:constant name="marginedgetext" value="textebordmarge"/>
- <cd:constant name="aligncharacter" value="caracterealigne"/>
- <cd:constant name="alignmentcharacter" value="alignementcaractere"/>
- <cd:constant name="small" value="petit"/>
- <cd:constant name="color" value="couleur"/>
- <cd:constant name="column" value="colonne"/>
- <cd:constant name="columns" value="colonnes"/>
- <cd:constant name="columndistance" value="distancecolonne"/>
- <cd:constant name="headcommand" value="commandetete"/>
- <cd:constant name="headcolor" value="couleurtete"/>
- <cd:constant name="headstyle" value="styletete"/>
- <cd:constant name="afterhead" value="aprestete"/>
- <cd:constant name="veroffset" value="veroffset"/>
- <cd:constant name="coupling" value="couplage"/>
- <cd:constant name="couplingway" value="modecouplage"/>
- <cd:constant name="beforehead" value="avanttete"/>
- <cd:constant name="topspace" value="espacesup"/>
- <cd:constant name="bodyfont" value="policecorps"/>
- <cd:constant name="label" value="etiquette"/>
- <cd:constant name="empty" value="vide"/>
- <cd:constant name="style" value="style"/>
- <cd:constant name="rule" value="ligne"/>
- <cd:constant name="rulethickness" value="epaisseurligne"/>
- <cd:constant name="rulecolor" value="couleurligne"/>
- <cd:constant name="list" value="liste"/>
- <cd:constant name="leftwidth" value="largeurgauche"/>
- <cd:constant name="leftframe" value="cadregauche"/>
- <cd:constant name="leftcolor" value="couleurgauche"/>
- <cd:constant name="leftstyle" value="leftstyle"/>
- <cd:constant name="leftmargin" value="margegauche"/>
- <cd:constant name="innermargin" value="margeinterieure"/>
- <cd:constant name="outermargin" value="margeexterieure"/>
- <cd:constant name="leftmargindistance" value="distancemargegauche"/>
- <cd:constant name="leftoffset" value="decalagegauche"/>
- <cd:constant name="leftedge" value="bordgauche"/>
- <cd:constant name="leftedgedistance" value="distancebordgauche"/>
- <cd:constant name="lefttext" value="textegauche"/>
- <cd:constant name="left" value="gauche"/>
- <cd:constant name="nleft" value="ngauche"/>
- <cd:constant name="logo" value="logo"/>
- <cd:constant name="logos" value="logos"/>
- <cd:constant name="local" value="local"/>
- <cd:constant name="margin" value="marge"/>
- <cd:constant name="margindistance" value="distancemarge"/>
- <cd:constant name="margintext" value="textemarge"/>
- <cd:constant name="marking" value="marquage"/>
- <cd:constant name="marcolor" value="couleurmarquage"/>
- <cd:constant name="marstyle" value="stylemarquage"/>
- <cd:constant name="menu" value="menu"/>
- <cd:constant name="splitmethod" value="splitmethod"/>
- <cd:constant name="textmethod" value="textmethod"/>
- <cd:constant name="sidemethod" value="sidemethod"/>
- <cd:constant name="method" value="methode"/>
- <cd:constant name="middle" value="milieu"/>
- <cd:constant name="middletext" value="textecentre"/>
- <cd:constant name="max" value="max"/>
- <cd:constant name="min" value="min"/>
- <cd:constant name="sample" value="echantillon"/>
- <cd:constant name="after" value="apres"/>
- <cd:constant name="name" value="nom"/>
- <cd:constant name="commandafter" value="commandeapres"/>
- <cd:constant name="ntop" value="nsup"/>
- <cd:constant name="level" value="niveau"/>
- <cd:constant name="levels" value="niveaux"/>
- <cd:constant name="nbottom" value="ninf"/>
- <cd:constant name="norm" value="norme"/>
- <cd:constant name="nlines" value="nlignes"/>
- <cd:constant name="number" value="numero"/>
- <cd:constant name="numbercommand" value="commandenumero"/>
- <cd:constant name="numbering" value="numerotation"/>
- <cd:constant name="numbercolor" value="couleurnumero"/>
- <cd:constant name="numberstyle" value="stylenumero"/>
- <cd:constant name="numberseparator" value="separateurnumbero"/>
- <cd:constant name="object" value="objet"/>
- <cd:constant name="offset" value="offset"/>
- <cd:constant name="bottom" value="inf"/>
- <cd:constant name="bottomdistance" value="distanceinf"/>
- <cd:constant name="bottomframe" value="cadreinf"/>
- <cd:constant name="bottomoffset" value="decalageinf"/>
- <cd:constant name="bottomstate" value="etatinf"/>
- <cd:constant name="oddmargin" value="margepaire"/>
- <cd:constant name="at" value="a"/>
- <cd:constant name="option" value="option"/>
- <cd:constant name="page" value="page"/>
- <cd:constant name="pagecommand" value="commandepage"/>
- <cd:constant name="pagecolor" value="couleurpage"/>
- <cd:constant name="pagestyle" value="stylepage"/>
- <cd:constant name="pagenumber" value="numeropage"/>
- <cd:constant name="headnumber" value="numerotete"/>
- <cd:constant name="pageboundaries" value="limitespage"/>
- <cd:constant name="pagestate" value="etatpage"/>
- <cd:constant name="palet" value="palette"/>
- <cd:constant name="paper" value="papier"/>
- <cd:constant name="location" value="emplacement"/>
- <cd:constant name="placestopper" value="emplacementstopper"/>
- <cd:constant name="place" value="place"/>
- <cd:constant name="placehead" value="placetete"/>
- <cd:constant name="position" value="position"/>
- <cd:constant name="prefix" value="prefixe"/>
- <cd:constant name="preset" value="prereglage"/>
- <cd:constant name="preview" value="previsualisation"/>
- <cd:constant name="process" value="process"/>
- <cd:constant name="spot" value="spot"/>
- <cd:constant name="dot" value="point"/>
- <cd:constant name="arrow" value="fleche"/>
- <cd:constant name="edge" value="bord"/>
- <cd:constant name="edgedistance" value="distancebord"/>
- <cd:constant name="screen" value="ecran"/>
- <cd:constant name="rightwidth" value="largeurdroite"/>
- <cd:constant name="rightframe" value="cadredroit"/>
- <cd:constant name="rightcolor" value="couleurdroite"/>
- <cd:constant name="rightstyle" value="styledroit"/>
- <cd:constant name="rightmargin" value="margedroite"/>
- <cd:constant name="rightmargindistance" value="distancemargedroite"/>
- <cd:constant name="rightoffset" value="rightoffset"/>
- <cd:constant name="rightedge" value="borddroit"/>
- <cd:constant name="rightedgedistance" value="distanceborddroit"/>
- <cd:constant name="righttext" value="textedroit"/>
- <cd:constant name="right" value="droite"/>
- <cd:constant name="nright" value="ndroite"/>
- <cd:constant name="reduction" value="reduction"/>
- <cd:constant name="referencing" value="referencing"/>
- <cd:constant name="line" value="ligne"/>
- <cd:constant name="linecorrection" value="correctionligne"/>
- <cd:constant name="lines" value="lignes"/>
- <cd:constant name="stretch" value="etire"/>
- <cd:constant name="resolution" value="resolution"/>
- <cd:constant name="rotation" value="rotation"/>
- <cd:constant name="orientation" value="orientation"/>
- <cd:constant name="horoffset" value="horoffset"/>
- <cd:constant name="backspace" value="retour"/>
- <cd:constant name="direction" value="direction"/>
- <cd:constant name="scale" value="echelle"/>
- <cd:constant name="separator" value="separateur"/>
- <cd:constant name="display" value="affichage"/>
- <cd:constant name="scope" value="scope"/>
- <cd:constant name="section" value="section"/>
- <cd:constant name="sectionnumber" value="numerosection"/>
- <cd:constant name="setups" value="reglages"/>
- <cd:constant name="cutspace" value="cutspace"/>
- <cd:constant name="family" value="famille"/>
- <cd:constant name="space" value="espace"/>
- <cd:constant name="spacing" value="espacement"/>
- <cd:constant name="split" value="split"/>
- <cd:constant name="splitoffset" value="splitoffset"/>
- <cd:constant name="indentnext" value="indentesuivant"/>
- <cd:constant name="step" value="pas"/>
- <cd:constant name="stack" value="stack"/>
- <cd:constant name="start" value="demarre"/>
- <cd:constant name="state" value="etat"/>
- <cd:constant name="stop" value="stoppe"/>
- <cd:constant name="radius" value="rayon"/>
- <cd:constant name="dash" value="pointille"/>
- <cd:constant name="sub" value="sous"/>
- <cd:constant name="subtitle" value="soustitre"/>
- <cd:constant name="symbol" value="symbole"/>
- <cd:constant name="closesymbol" value="closesymbol"/>
- <cd:constant name="closecommand" value="closecommand"/>
- <cd:constant name="symbolset" value="jeusymbole"/>
- <cd:constant name="symcolor" value="couleursym"/>
- <cd:constant name="symstyle" value="stylesym"/>
- <cd:constant name="synonym" value="synonyme"/>
- <cd:constant name="synonymcolor" value="couleursynonyme"/>
- <cd:constant name="synonymstyle" value="stylesynonyme"/>
- <cd:constant name="tab" value="tab"/>
- <cd:constant name="sign" value="signe"/>
- <cd:constant name="text" value="texte"/>
- <cd:constant name="listtext" value="texteliste"/>
- <cd:constant name="textwidth" value="largeurtexte"/>
- <cd:constant name="numberwidth" value="numberwidth"/>
- <cd:constant name="textcommand" value="commandetexte"/>
- <cd:constant name="textsize" value="tailletexte"/>
- <cd:constant name="textcolor" value="couleurtexte"/>
- <cd:constant name="textstyle" value="styletexte"/>
- <cd:constant name="textseparator" value="separateurtexte"/>
- <cd:constant name="textstate" value="etattexte"/>
- <cd:constant name="title" value="titre"/>
- <cd:constant name="titlestyle" value="styletitre"/>
- <cd:constant name="titlecolor" value="couleurtitre"/>
- <cd:constant name="titledistance" value="distancetitre"/>
- <cd:constant name="titleleft" value="titleleft"/>
- <cd:constant name="titleright" value="titleright"/>
- <cd:constant name="titlecommand" value="titlecommand"/>
- <cd:constant name="aligntitle" value="alignementtitre"/>
- <cd:constant name="tolerance" value="tolerance"/>
- <cd:constant name="inbetween" value="entre"/>
- <cd:constant name="type" value="type"/>
- <cd:constant name="align" value="alignement"/>
- <cd:constant name="symalign" value="symalignement"/>
- <cd:constant name="urlspace" value="espaceurl"/>
- <cd:constant name="urlalternative" value="alternativeurl"/>
- <cd:constant name="from" value="de"/>
- <cd:constant name="alternative" value="alternative"/>
- <cd:constant name="increment" value="incremente"/>
- <cd:constant name="incrementnumber" value="incrementenumero"/>
- <cd:constant name="resetnumber" value="raznumero"/>
- <cd:constant name="reference" value="reference"/>
- <cd:constant name="unknownreference" value="referenceinconnue"/>
- <cd:constant name="footer" value="pdp"/>
- <cd:constant name="footerdistance" value="dsitancepdp"/>
- <cd:constant name="footerstate" value="etatpdp"/>
- <cd:constant name="voffset" value="voffset"/>
- <cd:constant name="next" value="suivant"/>
- <cd:constant name="before" value="avant"/>
- <cd:constant name="commandbefore" value="commandeavant"/>
- <cd:constant name="previous" value="precedent"/>
- <cd:constant name="previousnumber" value="numeroprecedent"/>
- <cd:constant name="delay" value="delai"/>
- <cd:constant name="way" value="mode"/>
- <cd:constant name="random" value="aleatoire"/>
- <cd:constant name="white" value="blanc"/>
- <cd:constant name="xfactor" value="xfactor"/>
- <cd:constant name="xmax" value="xmax"/>
- <cd:constant name="xoffset" value="xoffset"/>
- <cd:constant name="xscale" value="xscale"/>
- <cd:constant name="xstep" value="xstep"/>
- <cd:constant name="yfactor" value="yfactor"/>
- <cd:constant name="ymax" value="ymax"/>
- <cd:constant name="yoffset" value="yoffset"/>
- <cd:constant name="yscale" value="yscale"/>
- <cd:constant name="ystep" value="ystep"/>
- <cd:constant name="samepage" value="memepage"/>
- <cd:constant name="itemalign" value="itemalign"/>
- <cd:constant name="sidealign" value="sidealign"/>
- <cd:constant name="side" value="cote"/>
- <cd:constant name="fieldlayer" value="calquechamp"/>
- <cd:constant name="textlayer" value="calquetexte"/>
- <cd:constant name="fieldbackgroundcolor" value="couleurarrierreplanchamp"/>
- <cd:constant name="fieldframecolor" value="couleurcadrechamp"/>
- <cd:constant name="fieldoffset" value="offsetchamp"/>
- <cd:constant name="action" value="action"/>
- <cd:constant name="openaction" value="actionouverture"/>
- <cd:constant name="closeaction" value="actionfermeture"/>
- <cd:constant name="openpageaction" value="actionouverturepage"/>
- <cd:constant name="closepageaction" value="actionfermeturepage"/>
- <cd:constant name="clickin" value="clicinterieur"/>
- <cd:constant name="clickout" value="clicexterieur"/>
- <cd:constant name="regionin" value="entreregion"/>
- <cd:constant name="regionout" value="regionexterieure"/>
- <cd:constant name="focusin" value="focusin"/>
- <cd:constant name="focusout" value="focusout"/>
- <cd:constant name="afterkey" value="aprescle"/>
- <cd:constant name="format" value="formatter"/>
- <cd:constant name="validate" value="valider"/>
- <cd:constant name="calculate" value="calculer"/>
- <cd:constant name="click" value="clic"/>
- <cd:constant name="vcommand" value="vcommande"/>
- <cd:constant name="icommand" value="icommande"/>
- <cd:constant name="ccommand" value="ccommande"/>
- <cd:constant name="textdistance" value="distancetexte"/>
- <cd:constant name="numberdistance" value="numberdistance"/>
- <cd:constant name="textmargin" value="margetexte"/>
- <cd:constant name="keyword" value="motcle"/>
- <cd:constant name="deeptextcommand" value="deeptextcommand"/>
- <cd:constant name="deepnumbercommand" value="deepnumbercommand"/>
- </cd:constants>
-
- <cd:constants>
- <cd:constant name="extras" value="extras"/>
- </cd:constants>
-
- <cd:variables>
- <cd:variable name="on" value="actif"/>
- <cd:variable name="test" value="test"/>
- <cd:variable name="serried" value="serried"/>
- <cd:variable name="joinedup" value="joinedup"/>
- <cd:variable name="absolute" value="absolute"/>
- <cd:variable name="background" value="arriereplan"/>
- <cd:variable name="backward" value="retourarriere"/>
- <cd:variable name="subbackward" value="sousretourarriere"/>
- <cd:variable name="action" value="action"/>
- <cd:variable name="stopper" value="stopper"/>
- <cd:variable name="paragraph" value="paragraphe"/>
- <cd:variable name="all" value="tout"/>
- <cd:variable name="always" value="toujours"/>
- <cd:variable name="auto" value="auto"/>
- <cd:variable name="autointro" value="autointro"/>
- <cd:variable name="both" value="lesdeux"/>
- <cd:variable name="inner" value="interieur"/>
- <cd:variable name="blank" value="vide"/>
- <cd:variable name="disable" value="desactiver"/>
- <cd:variable name="top" value="sup"/>
- <cd:variable name="wide" value="ample"/>
- <cd:variable name="width" value="largeur"/>
- <cd:variable name="minwidth" value="largeurmin"/>
- <cd:variable name="outer" value="exterieur"/>
- <cd:variable name="numbers" value="numeros"/>
- <cd:variable name="Numbers" value="Numeros"/>
- <cd:variable name="command" value="commande"/>
- <cd:variable name="commands" value="commandes"/>
- <cd:variable name="concept" value="concept"/>
- <cd:variable name="day" value="jour"/>
- <cd:variable name="date" value="date"/>
- <cd:variable name="default" value="defaut"/>
- <cd:variable name="final" value="final"/>
- <cd:variable name="float" value="flottant"/>
- <cd:variable name="depth" value="profondeur"/>
- <cd:variable name="doublesided" value="rectoverso"/>
- <cd:variable name="first" value="premier"/>
- <cd:variable name="each" value="chaque"/>
- <cd:variable name="singlesided" value="recto"/>
- <cd:variable name="somewhere" value="qqpart"/>
- <cd:variable name="nowhere" value="nulpart"/>
- <cd:variable name="even" value="paire"/>
- <cd:variable name="external" value="external"/>
- <cd:variable name="file" value="fichier"/>
- <cd:variable name="flexible" value="flexible"/>
- <cd:variable name="force" value="force"/>
- <cd:variable name="used" value="used"/>
- <cd:variable name="none" value="rien"/>
- <cd:variable name="nomarking" value="sansmarquage"/>
- <cd:variable name="nonumber" value="sansnumero"/>
- <cd:variable name="nowhite" value="sansblanc"/>
- <cd:variable name="rotated" value="tourne"/>
- <cd:variable name="mirrored" value="reflete"/>
- <cd:variable name="global" value="global"/>
- <cd:variable name="grid" value="grille"/>
- <cd:variable name="nogrid" value="nogrid"/>
- <cd:variable name="big" value="grand"/>
- <cd:variable name="bigbodyfont" value="grandepolicecorp"/>
- <cd:variable name="bigpreference" value="grandepreference"/>
- <cd:variable name="gray" value="gris"/>
- <cd:variable name="halfline" value="demiligne"/>
- <cd:variable name="keep" value="maintient"/>
- <cd:variable name="hanging" value="suspend"/>
- <cd:variable name="spacing" value="espacement"/>
- <cd:variable name="nospacing" value="sansespacement"/>
- <cd:variable name="repeat" value="repete"/>
- <cd:variable name="fix" value="fixe"/>
- <cd:variable name="here" value="ici"/>
- <cd:variable name="header" value="entete"/>
- <cd:variable name="high" value="haut"/>
- <cd:variable name="height" value="hauteur"/>
- <cd:variable name="minheight" value="hauteurmin"/>
- <cd:variable name="horizontal" value="horizontale"/>
- <cd:variable name="current" value="courant"/>
- <cd:variable name="hz" value="hz"/>
- <cd:variable name="nohz" value="nohz"/>
- <cd:variable name="italic" value="italique"/>
- <cd:variable name="inherit" value="herite"/>
- <cd:variable name="inleft" value="dansgauche"/>
- <cd:variable name="inmargin" value="dansmarge"/>
- <cd:variable name="inright" value="dansdroit"/>
- <cd:variable name="interaction" value="interaction"/>
- <cd:variable name="intext" value="danstexte"/>
- <cd:variable name="intro" value="intro"/>
- <cd:variable name="its" value="its"/>
- <cd:variable name="yes" value="oui"/>
- <cd:variable name="year" value="annee"/>
- <cd:variable name="frame" value="cadre"/>
- <cd:variable name="marginedge" value="bordmarge"/>
- <cd:variable name="cap" value="cap"/>
- <cd:variable name="capital" value="capitale"/>
- <cd:variable name="referral" value="referral"/>
- <cd:variable name="small" value="petit"/>
- <cd:variable name="smallnormal" value="normalpetit"/>
- <cd:variable name="smallslanted" value="inclinepetit"/>
- <cd:variable name="smallslantedbold" value="grasinclinepetit"/>
- <cd:variable name="smallitalic" value="italiquepetit"/>
- <cd:variable name="smallitalicbold" value="grasitaliquepetit"/>
- <cd:variable name="smalltype" value="petittype"/>
- <cd:variable name="smallbold" value="graspetit"/>
- <cd:variable name="smallboldslanted" value="inclinegraspetit"/>
- <cd:variable name="smallbolditalic" value="italiquegraspetit"/>
- <cd:variable name="smallbodyfont" value="petitepolicecorps"/>
- <cd:variable name="split" value="split"/>
- <cd:variable name="toggle" value="toggle"/>
- <cd:variable name="color" value="couleur"/>
- <cd:variable name="column" value="colonne"/>
- <cd:variable name="columns" value="colonnes"/>
- <cd:variable name="head" value="tete"/>
- <cd:variable name="low" value="bas"/>
- <cd:variable name="last" value="dernier"/>
- <cd:variable name="label" value="etiquette"/>
- <cd:variable name="lohi" value="baha"/>
- <cd:variable name="tall" value="long"/>
- <cd:variable name="empty" value="vide"/>
- <cd:variable name="Character" value="Caratere"/>
- <cd:variable name="character" value="caractere"/>
- <cd:variable name="Characters" value="Caracteres"/>
- <cd:variable name="characters" value="caracteres"/>
- <cd:variable name="landscape" value="paysage"/>
- <cd:variable name="rule" value="regle"/>
- <cd:variable name="list" value="liste"/>
- <cd:variable name="leftmargin" value="margegauche"/>
- <cd:variable name="leftpage" value="pagegauche"/>
- <cd:variable name="leftedge" value="bordgauche"/>
- <cd:variable name="left" value="gauche"/>
- <cd:variable name="local" value="local"/>
- <cd:variable name="new" value="nouveau"/>
- <cd:variable name="old" value="old"/>
- <cd:variable name="MONTH" value="MOIS"/>
- <cd:variable name="month" value="mois"/>
- <cd:variable name="mar" value="mar"/>
- <cd:variable name="item" value="element"/>
- <cd:variable name="marking" value="marquage"/>
- <cd:variable name="margin" value="marge"/>
- <cd:variable name="max" value="max"/>
- <cd:variable name="min" value="min"/>
- <cd:variable name="mediaeval" value="medieval"/>
- <cd:variable name="medium" value="moyen"/>
- <cd:variable name="middle" value="milieu"/>
- <cd:variable name="after" value="apres"/>
- <cd:variable name="name" value="nom"/>
- <cd:variable name="opposite" value="opposition"/>
- <cd:variable name="no" value="non"/>
- <cd:variable name="negative" value="negatif"/>
- <cd:variable name="positive" value="positif"/>
- <cd:variable name="not" value="pas"/>
- <cd:variable name="never" value="jamais"/>
- <cd:variable name="normal" value="normal"/>
- <cd:variable name="number" value="numero"/>
- <cd:variable name="offset" value="offset"/>
- <cd:variable name="unknown" value="inconnu"/>
- <cd:variable name="bottom" value="inf"/>
- <cd:variable name="odd" value="impair"/>
- <cd:variable name="packed" value="groupe"/>
- <cd:variable name="unpacked" value="degroupe"/>
- <cd:variable name="makeup" value="makeup"/>
- <cd:variable name="atmargin" value="alamarge"/>
- <cd:variable name="overlay" value="revetement"/>
- <cd:variable name="page" value="page"/>
- <cd:variable name="pagenumber" value="numeropage"/>
- <cd:variable name="paper" value="papier"/>
- <cd:variable name="display" value="affichage"/>
- <cd:variable name="reverse" value="inverse"/>
- <cd:variable name="fit" value="adapte"/>
- <cd:variable name="nofit" value="nofit"/>
- <cd:variable name="postscript" value="postscript"/>
- <cd:variable name="preview" value="previsualisation"/>
- <cd:variable name="program" value="programme"/>
- <cd:variable name="process" value="process"/>
- <cd:variable name="spot" value="spot"/>
- <cd:variable name="dot" value="point"/>
- <cd:variable name="ran" value="cours"/>
- <cd:variable name="edge" value="bord"/>
- <cd:variable name="screen" value="ecran"/>
- <cd:variable name="rectangular" value="rectangulaire"/>
- <cd:variable name="rightmargin" value="margedroite"/>
- <cd:variable name="rightpage" value="pagedroite"/>
- <cd:variable name="rightedge" value="borddroit"/>
- <cd:variable name="right" value="droite"/>
- <cd:variable name="line" value="ligne"/>
- <cd:variable name="hang" value="suspend"/>
- <cd:variable name="register" value="registre"/>
- <cd:variable name="relative" value="relatif"/>
- <cd:variable name="reset" value="raz"/>
- <cd:variable name="Romannumerals" value="Chiffresromains"/>
- <cd:variable name="romannumerals" value="chiffresromains"/>
- <cd:variable name="greek" value="grec"/>
- <cd:variable name="Greek" value="Grec"/>
- <cd:variable name="round" value="rond"/>
- <cd:variable name="rotate" value="oriente"/>
- <cd:variable name="stretch" value="etire"/>
- <cd:variable name="backspace" value="retourarriere"/>
- <cd:variable name="broad" value="large"/>
- <cd:variable name="row" value="rang"/>
- <cd:variable name="slanted" value="incline"/>
- <cd:variable name="slantedbold" value="grasincline"/>
- <cd:variable name="synchronize" value="synchronize"/>
- <cd:variable name="italicbold" value="grasitalique"/>
- <cd:variable name="sectionnumber" value="numerosection"/>
- <cd:variable name="narrow" value="etroit"/>
- <cd:variable name="cutspace" value="cutspace"/>
- <cd:variable name="tolerant" value="tolerant"/>
- <cd:variable name="space" value="espace"/>
- <cd:variable name="standard" value="standard"/>
- <cd:variable name="start" value="demarre"/>
- <cd:variable name="stop" value="stoppe"/>
- <cd:variable name="strict" value="strict"/>
- <cd:variable name="strut" value="strut"/>
- <cd:variable name="sub" value="sous"/>
- <cd:variable name="sym" value="sym"/>
- <cd:variable name="txt" value="txt"/>
- <cd:variable name="symbol" value="symbole"/>
- <cd:variable name="text" value="texte"/>
- <cd:variable name="back" value="retour"/>
- <cd:variable name="test" value="test"/>
- <cd:variable name="inbetween" value="entre"/>
- <cd:variable name="type" value="type"/>
- <cd:variable name="off" value="desactive"/>
- <cd:variable name="url" value="url"/>
- <cd:variable name="URL" value="URL"/>
- <cd:variable name="fixed" value="fixe"/>
- <cd:variable name="loose" value="perte"/>
- <cd:variable name="continue" value="continue"/>
- <cd:variable name="vertical" value="verticale"/>
- <cd:variable name="bold" value="gras"/>
- <cd:variable name="sansbold" value="sansgras"/>
- <cd:variable name="boldslanted" value="inclinegras"/>
- <cd:variable name="bolditalic" value="italiquegras"/>
- <cd:variable name="quadruple" value="quadruple"/>
- <cd:variable name="footer" value="pdp"/>
- <cd:variable name="next" value="prochain"/>
- <cd:variable name="before" value="avant"/>
- <cd:variable name="foreground" value="premierplan"/>
- <cd:variable name="preference" value="preference"/>
- <cd:variable name="temporary" value="temporaire"/>
- <cd:variable name="forward" value="avance"/>
- <cd:variable name="subforward" value="sousavance"/>
- <cd:variable name="previous" value="precedent"/>
- <cd:variable name="value" value="valeur"/>
- <cd:variable name="week" value="semaine"/>
- <cd:variable name="weekday" value="joursemaine"/>
- <cd:variable name="WEEKDAY" value="JOURSEMAINE"/>
- <cd:variable name="random" value="aleatoire"/>
- <cd:variable name="white" value="blanc"/>
- <cd:variable name="very" value="tres"/>
- <cd:variable name="verytolerant" value="trestolerant"/>
- <cd:variable name="verystrict" value="tresstrict"/>
- <cd:variable name="see" value="voit"/>
- <cd:variable name="smallcaps" value="petitescapitales"/>
- <cd:variable name="WORD" value="MOT"/>
- <cd:variable name="firstpage" value="premierepage"/>
- <cd:variable name="firstcolumn" value="premierecolonne"/>
- <cd:variable name="previouspage" value="pageprecedente"/>
- <cd:variable name="nextpage" value="pagesuivante"/>
- <cd:variable name="lastpage" value="dernierepage"/>
- <cd:variable name="lastcolumn" value="dernierecolonne"/>
- <cd:variable name="lastpagenumber" value="derniernumeropage"/>
- <cd:variable name="subpage" value="souspage"/>
- <cd:variable name="firstsubpage" value="premieresouspage"/>
- <cd:variable name="previoussubpage" value="souspageprecedente"/>
- <cd:variable name="nextsubpage" value="souspagesuivante"/>
- <cd:variable name="lastsubpage" value="dernieresouspage"/>
- <cd:variable name="nextevenpage" value="pagepairesuivante"/>
- <cd:variable name="nextoddpage" value="pageimpairesuivante"/>
- <cd:variable name="previousevenpage" value="pagepaireprecedente"/>
- <cd:variable name="previousoddpage" value="pageimpaireprecedente"/>
- <cd:variable name="readonly" value="lectureseule"/>
- <cd:variable name="required" value="recquis"/>
- <cd:variable name="protected" value="protege"/>
- <cd:variable name="sorted" value="trie"/>
- <cd:variable name="unavailable" value="indisponible"/>
- <cd:variable name="hidden" value="cache"/>
- <cd:variable name="printable" value="editable"/>
- <cd:variable name="bookmark" value="marquepage"/>
- <cd:variable name="nocheck" value="nonverifie"/>
- <cd:variable name="innermargin" value="margeinterieure"/>
- <cd:variable name="outermargin" value="margeexterieure"/>
- <cd:variable name="inneredge" value="bordinterieur"/>
- <cd:variable name="outeredge" value="bordexterieur"/>
- <cd:variable name="controls" value="controles"/>
- <cd:variable name="nothanging" value="nonsuspendu"/>
- <cd:variable name="hyphenated" value="hyphenated"/>
- <cd:variable name="nothyphenated" value="nothyphenated"/>
- <cd:variable name="overprint" value="overprint"/>
- <cd:variable name="knockout" value="knockout"/>
- <cd:variable name="xml" value="xml"/>
- <cd:variable name="enumeration" value="enumeration"/>
- <cd:variable name="description" value="description"/>
- <cd:variable name="lefthanging" value="lefthanging"/>
- <cd:variable name="righthanging" value="righthanging"/>
- </cd:variables>
-
- <cd:constants>
- <cd:constant name="controls" value="controles"/>
- <cd:constant name="global" value="global"/>
- <cd:constant name="overprint" value="overprint"/>
- </cd:constants>
-
- <cd:variables>
- <cd:variable name="conversion" value="conversion"/>
- <cd:variable name="by" value="par"/>
- </cd:variables>
-
- <cd:constants>
- <cd:constant name="dx" value="dx"/>
- <cd:constant name="dy" value="dy"/>
- <cd:constant name="nx" value="nx"/>
- <cd:constant name="ny" value="ny"/>
- <cd:constant name="nr" value="nr"/>
- <cd:constant name="nl" value="nl"/>
- <cd:constant name="nc" value="nc"/>
- <cd:constant name="sx" value="sx"/>
- <cd:constant name="sy" value="sy"/>
- <cd:constant name="n" value="n"/>
- <cd:constant name="vfil" value="vfil"/>
- <cd:constant name="hfil" value="hfil"/>
- <cd:constant name="strut" value="strut"/>
- <cd:constant name="autostrut" value="autostrut"/>
- <cd:constant name="reset" value="reset"/>
- <cd:constant name="set" value="set"/>
- <cd:constant name="escape" value="escape"/>
- <cd:constant name="apa" value="apa"/>
- </cd:constants>
-
- <cd:variables>
- <cd:variable name="calligraphic" value="calligraphique"/>
- <cd:variable name="handwritten" value="manuscript"/>
- <cd:variable name="sansserif" value="sansserif"/>
- <cd:variable name="roman" value="roman"/>
- <cd:variable name="teletype" value="teletype"/>
- <cd:variable name="type" value="type"/>
- <cd:variable name="serif" value="serif"/>
- <cd:variable name="regular" value="regulier"/>
- <cd:variable name="support" value="support"/>
- <cd:variable name="sans" value="sans"/>
- <cd:variable name="mono" value="mono"/>
- </cd:variables>
-
- <cd:elements>
- <cd:element name="begin" value="debut"/>
- <cd:element name="end" value="fin"/>
- <cd:element name="coupled" value="couple"/>
- <cd:element name="get" value="obtient"/>
- <cd:element name="currentlocal" value="localcourant"/>
- <cd:element name="endsetup" value="endsetup"/>
- <cd:element name="load" value="charge"/>
- <cd:element name="emptyone" value="vide"/>
- <cd:element name="emptytwo" value="vide"/>
- <cd:element name="list" value="liste"/>
- <cd:element name="listof" value="listede"/>
- <cd:element name="local" value="local"/>
- <cd:element name="place" value="place"/>
- <cd:element name="reserve" value="reserver"/>
- <cd:element name="start" value="demarre"/>
- <cd:element name="setup" value="regle"/>
- <cd:element name="stop" value="stoppe"/>
- <cd:element name="increment" value="incremente"/>
- <cd:element name="next" value="suivant"/>
- <cd:element name="complete" value="complete"/>
- <cd:element name="previous" value="precedent"/>
- <cd:element name="previouslocal" value="localprecedent"/>
- <cd:element name="see" value="voit"/>
- <cd:element name="type" value="type"/>
- <cd:element name="makeup" value="makeup"/>
- <cd:element name="text" value="texte"/>
- </cd:elements>
-
- <cd:variables>
- <cd:variable name="buffer" value="buffer"/>
- <cd:variable name="linenote" value="noteligne"/>
- <cd:variable name="comment" value="commentaire"/>
- <cd:variable name="interactionmenu" value="menuinteraction"/>
- <cd:variable name="postponing" value="postponing"/>
- <cd:variable name="hiding" value="cache"/>
- <cd:variable name="tabulate" value="tabule"/>
- <cd:variable name="tabulatehead" value="tetetabule"/>
- <cd:variable name="tabulatetail" value="queuetabule"/>
- <cd:variable name="fact" value="fait"/>
- <cd:variable name="legend" value="legende"/>
- <cd:variable name="formula" value="formule"/>
- <cd:variable name="tablehead" value="tetetableau"/>
- <cd:variable name="tabletail" value="queuetableau"/>
- <cd:variable name="setups" value="reglages"/>
- <cd:variable name="helptext" value="texteaide"/>
- <cd:variable name="localenvironment" value="environementlocal"/>
- <cd:variable name="sectionblockenvironment" value="environementblocsection"/>
- <cd:variable name="pagecomment" value="commentairepage"/>
- </cd:variables>
-
- <cd:variables>
- <cd:variable name="FirstPage" value="PremierePage"/>
- <cd:variable name="PreviousPage" value="PagePrecedente"/>
- <cd:variable name="NextPage" value="PageSuivante"/>
- <cd:variable name="LastPage" value="DernierePage"/>
- <cd:variable name="PreviousJump" value="SautPrecedent"/>
- <cd:variable name="NextJump" value="SautSuivant"/>
- <cd:variable name="ToggleViewer" value="ChangeVisualisateur"/>
- <cd:variable name="ExitViewer" value="SortVisualisateur"/>
- <cd:variable name="CloseDocument" value="FermeDocument"/>
- <cd:variable name="SaveDocument" value="SauvegardeDocument"/>
- <cd:variable name="SaveNamedDocument" value="SauvegardeDocumentNomme"/>
- <cd:variable name="OpenNamedDocument" value="OuvreDocumentNomme"/>
- <cd:variable name="ViewerHelp" value="AideVisualisateur"/>
- <cd:variable name="PrintDocument" value="ImprimeDocument"/>
- <cd:variable name="SearchDocument" value="RechercheDocument"/>
- <cd:variable name="SearchAgain" value="RechercheSuivant"/>
- <cd:variable name="Query" value="Query"/>
- <cd:variable name="QueryAgain" value="QueryAgain"/>
- <cd:variable name="GotoPage" value="VaalaPage"/>
- <cd:variable name="StartMovie" value="DemarreFilm"/>
- <cd:variable name="StopMovie" value="StoppeFilm"/>
- <cd:variable name="PauseMovie" value="PauseFilm"/>
- <cd:variable name="ResumeMovie" value="ReprendFilm"/>
- <cd:variable name="StartSound" value="DemarreSon"/>
- <cd:variable name="StopSound" value="StoppeSon"/>
- <cd:variable name="PauseSound" value="PauseSon"/>
- <cd:variable name="ResumeSound" value="ReprendSon"/>
- <cd:variable name="StartRendering" value="StartRendering"/>
- <cd:variable name="StopRendering" value="StopRendering"/>
- <cd:variable name="PauseRendering" value="PauseRendering"/>
- <cd:variable name="ResumeRendering" value="ResumeRendering"/>
- <cd:variable name="SaveForm" value="SauvegardeForm"/>
- <cd:variable name="LoadForm" value="ChargeForm"/>
- <cd:variable name="ResetForm" value="RazForm"/>
- <cd:variable name="SubmitForm" value="SoumettreForm"/>
- <cd:variable name="HideField" value="CacheChamp"/>
- <cd:variable name="ShowField" value="MontreChamp"/>
- <cd:variable name="FitWidth" value="AjusteLargeur"/>
- <cd:variable name="FitHeight" value="AjusteHauteur"/>
- <cd:variable name="HideLayer" value="CacheCalque"/>
- <cd:variable name="VideLayer" value="VideLayer"/>
- <cd:variable name="ToggleLayer" value="ToggleLayer"/>
- <cd:variable name="ShowThumbs" value="ShowThumbs"/>
- <cd:variable name="ShowBookmarks" value="ShowBookmarks"/>
- </cd:variables>
-
- <cd:variables>
- <cd:variable name="New" value="Nouveau"/>
- <cd:variable name="Balloon" value="Ballon"/>
- <cd:variable name="Addition" value="Ajout"/>
- <cd:variable name="Help" value="Aide"/>
- <cd:variable name="Paragraph" value="Paragraphe"/>
- <cd:variable name="Key" value="Cle"/>
- </cd:variables>
-
- <cd:constants>
- <cd:constant name="bet" value="bet"/>
- <cd:constant name="dat" value="dat"/>
- <cd:constant name="ken" value="ken"/>
- <cd:constant name="ref" value="ref"/>
- </cd:constants>
-
- <cd:variables>
- <cd:variable name="formeel" value="formeel"/>
- <cd:variable name="informeel" value="informeel"/>
- <cd:variable name="rekening" value="rekening"/>
- <cd:variable name="sticker" value="sticker"/>
- <cd:variable name="sheet" value="sheet"/>
- <cd:variable name="brief" value="brief"/>
- <cd:variable name="ls" value="ls"/>
- </cd:variables>
-
- <cd:commands>
- <cd:command name="language" value="langue"/>
- <cd:command name="mainlanguage" value="langueprincipale"/>
- <cd:command name="translate" value="traduire"/>
- <cd:command name="installlanguage" value="installelangue"/>
- <cd:command name="setuplanguage" value="reglelangue"/>
- <cd:command name="showmakeup" value="montremakeup"/>
- <cd:command name="useencoding" value="utiliseencodage"/>
- <cd:command name="usespecials" value="utilisespecialites"/>
- <cd:command name="defineoutput" value="definitsortie"/>
- <cd:command name="setupoutput" value="reglesortie"/>
- <cd:command name="defineaccent" value="definitaccent"/>
- <cd:command name="definecharacter" value="definicaractere"/>
- <cd:command name="definecommand" value="definitcommande"/>
- <cd:command name="startcoding" value="demarrecodage"/>
- <cd:command name="stopcoding" value="stoppecodage"/>
- <cd:command name="definebodyfontenvironment" value="definitenvironnementpolicecorps"/>
- <cd:command name="setupbodyfontenvironment" value="regleenvironnementpolicecorps"/>
- <cd:command name="definebodyfont" value="definitpolicecorps"/>
- <cd:command name="definefont" value="definitpolice"/>
- <cd:command name="definefontsynonym" value="definitsynonymepolice"/>
- <cd:command name="definestyle" value="definitstyle"/>
- <cd:command name="definefontstyle" value="definitstylepolice"/>
- <cd:command name="setupstrut" value="reglestrut"/>
- <cd:command name="setuptype" value="regletype"/>
- <cd:command name="type" value="dactylographier"/>
- <cd:command name="typ" value="typ"/>
- <cd:command name="arg" value="arg"/>
- <cd:command name="tex" value="tex"/>
- <cd:command name="definetyping" value="definitdactylo"/>
- <cd:command name="definetype" value="definittype"/>
- <cd:command name="setuptyping" value="regledactylo"/>
- <cd:command name="typefile" value="fichierdactylo"/>
- <cd:command name="setupfootnotes" value="reglenotepdp"/>
- <cd:command name="setupfootnotedefinition" value="definitnotepdp"/>
- <cd:command name="note" value="note"/>
- <cd:command name="footnote" value="notepdp"/>
- <cd:command name="footnotetext" value="textenotepdp"/>
- <cd:command name="startlocalfootnotes" value="demarrenotespdplocales"/>
- <cd:command name="stoplocalfootnotes" value="stoppenotespdplocales"/>
- <cd:command name="placelocalfootnotes" value="placenotespdplocales"/>
- <cd:command name="placefootnotes" value="placenotespdp"/>
- <cd:command name="currentdate" value="datecourante"/>
- <cd:command name="date" value="date"/>
- <cd:command name="weekday" value="joursemaine"/>
- <cd:command name="WEEKDAY" value="JOURSEMAINE"/>
- <cd:command name="month" value="mois"/>
- <cd:command name="MONTH" value="MOIS"/>
- <cd:command name="Numbers" value="Numeros"/>
- <cd:command name="numbers" value="numeros"/>
- <cd:command name="romannumerals" value="chiffresromains"/>
- <cd:command name="Romannumerals" value="Chiffresromains"/>
- <cd:command name="character" value="caractere"/>
- <cd:command name="Character" value="Caractere"/>
- <cd:command name="characters" value="caracteres"/>
- <cd:command name="Characters" value="Caracteres"/>
- <cd:command name="unknown" value="inconnu"/>
- <cd:command name="definesymbol" value="definitsymbole"/>
- <cd:command name="definefiguresymbol" value="definitsymbolefigure"/>
- <cd:command name="symbol" value="symbole"/>
- <cd:command name="setupsymbolset" value="reglejeusymboles"/>
- <cd:command name="showsymbolset" value="montrejeusymboles"/>
- <cd:command name="startsymbolset" value="demarrejeusymboles"/>
- <cd:command name="usesymbols" value="utilisesymboles"/>
- <cd:command name="defineconversion" value="definitconversion"/>
- <cd:command name="convertnumber" value="convertitnumero"/>
- <cd:command name="setupcapitals" value="reglecapitales"/>
- <cd:command name="smallcapped" value="cap"/>
- <cd:command name="notsmallcapped" value="nocap"/>
- <cd:command name="CAPPED" value="CAP"/>
- <cd:command name="SmallCapped" value="Cap"/>
- <cd:command name="SmallCaps" value="Caps"/>
- <cd:command name="WORD" value="MOT"/>
- <cd:command name="WORDS" value="MOTS"/>
- <cd:command name="Word" value="Mot"/>
- <cd:command name="Words" value="Mots"/>
- <cd:command name="stretched" value="etire"/>
- <cd:command name="overstrike" value="surlignetout"/>
- <cd:command name="overstrikes" value="surligne"/>
- <cd:command name="overbar" value="overbar"/>
- <cd:command name="overbars" value="overbars"/>
- <cd:command name="underbar" value="souslignetout"/>
- <cd:command name="underbars" value="sousligne"/>
- <cd:command name="setupunderbar" value="reglesouslignage"/>
- <cd:command name="setupbodyfont" value="reglepolicecorps"/>
- <cd:command name="switchtobodyfont" value="changepolicecorps"/>
- <cd:command name="showbodyfont" value="montrepolicecorps"/>
- <cd:command name="showbodyfontenvironment" value="montreenvironnementpolicecorps"/>
- <cd:command name="headtext" value="textetete"/>
- <cd:command name="labeltext" value="labeltexte"/>
- <cd:command name="LABELTEXT" value="LABELTEXTE"/>
- <cd:command name="setupheadtext" value="regletextetete"/>
- <cd:command name="setuplabeltext" value="reglelabeltexte"/>
- <cd:command name="marginrule" value="margereglee"/>
- <cd:command name="startmarginrule" value="demarremargereglee"/>
- <cd:command name="stopmarginrule" value="stoppemargereglee"/>
- <cd:command name="setupmarginrules" value="reglemargereglee"/>
- <cd:command name="blackrule" value="lignenoire"/>
- <cd:command name="blackrules" value="lignesnoires"/>
- <cd:command name="setupblackrules" value="reglelignesnoires"/>
- <cd:command name="setupscreens" value="regleecrans"/>
- <cd:command name="framed" value="framed"/>
- <cd:command name="inframed" value="inframed"/>
- <cd:command name="mframed" value="mframed"/>
- <cd:command name="inmframed" value="inmframed"/>
- <cd:command name="setupframed" value="regleencadre"/>
- <cd:command name="setuplinewidth" value="regleepaisseurligne"/>
- <cd:command name="setupthinrules" value="regletraitsfins"/>
- <cd:command name="thinrule" value="traitfin"/>
- <cd:command name="thinrules" value="traitsfins"/>
- <cd:command name="hairline" value="ligneh"/>
- <cd:command name="vl" value="vl"/>
- <cd:command name="hl" value="hl"/>
- <cd:command name="defineframed" value="defineframed"/>
- <cd:command name="defineframedtext" value="defineframedtext"/>
- <cd:command name="setupframedtexts" value="setupframedtexts"/>
- <cd:command name="defineoverlay" value="definitrevetement"/>
- <cd:command name="definelayer" value="definitcalque"/>
- <cd:command name="background" value="arriereplan"/>
- <cd:command name="startbackground" value="demarrearriereplan"/>
- <cd:command name="stopbackground" value="stoppearriereplan"/>
- <cd:command name="setupbackground" value="reglearriereplan"/>
- <cd:command name="fillinrules" value="remplitlignesreglees"/>
- <cd:command name="setupfillinrules" value="regleremplitlignesreglees"/>
- <cd:command name="fillintext" value="remplittexte"/>
- <cd:command name="setupfillinlines" value="regleremplitligne"/>
- <cd:command name="fillinline" value="remplitligne"/>
- <cd:command name="setuptextrules" value="reglelignesreglestexte"/>
- <cd:command name="textrule" value="ligneregleetexte"/>
- <cd:command name="starttextrule" value="demarreligneregleetexte"/>
- <cd:command name="stoptextrule" value="stoppeligneregleetexte"/>
- <cd:command name="usemodule" value="utilisemodule"/>
- <cd:command name="usemodules" value="utilisemodules"/>
- <cd:command name="starttext" value="demarretexte"/>
- <cd:command name="stoptext" value="stoppetexte"/>
- <cd:command name="margintitle" value="titremarge"/>
- <cd:command name="marginword" value="motmarge"/>
- <cd:command name="margintext" value="textemarge"/>
- <cd:command name="inleft" value="dansgauche"/>
- <cd:command name="inmargin" value="dansmarge"/>
- <cd:command name="inothermargin" value="dansautremarge"/>
- <cd:command name="inright" value="dansdroite"/>
- <cd:command name="ininner" value="ininner"/>
- <cd:command name="inouter" value="inouter"/>
- <cd:command name="startmarginblock" value="demarreblocmarge"/>
- <cd:command name="stopmarginblock" value="stoppeblocmarge"/>
- <cd:command name="defineinmargin" value="definitdansmarge"/>
- <cd:command name="setupinmargin" value="regledansmarge"/>
- <cd:command name="setupmarginblocks" value="regleblocmarge"/>
- <cd:command name="inleftedge" value="dansbordgauche"/>
- <cd:command name="inleftmargin" value="dansmargegauche"/>
- <cd:command name="inrightmargin" value="dansmargedroite"/>
- <cd:command name="inrightedge" value="dansborddroit"/>
- <cd:command name="atleftmargin" value="atleftmargin"/>
- <cd:command name="atrightmargin" value="atrightmargin"/>
- <cd:command name="wordright" value="motdroit"/>
- <cd:command name="defineblank" value="definitvide"/>
- <cd:command name="blank" value="vide"/>
- <cd:command name="setupblank" value="definitvide"/>
- <cd:command name="correctwhitespace" value="corrigeespaceblanc"/>
- <cd:command name="fixedspaces" value="espacesfixes"/>
- <cd:command name="fixedspace" value="espacefixe"/>
- <cd:command name="nospace" value="sansespace"/>
- <cd:command name="space" value="espace"/>
- <cd:command name="nowhitespace" value="sansespaceblanc"/>
- <cd:command name="packed" value="groupe"/>
- <cd:command name="startpacked" value="demarregroupe"/>
- <cd:command name="stoppacked" value="stoppegroupe"/>
- <cd:command name="startunpacked" value="demarredegroupe"/>
- <cd:command name="stopunpacked" value="stoppedegroupe"/>
- <cd:command name="startlinecorrection" value="demarrecorrectionligne"/>
- <cd:command name="stoplinecorrection" value="stoppecorrectionligne"/>
- <cd:command name="godown" value="vaenbas"/>
- <cd:command name="whitespace" value="espaceblanc"/>
- <cd:command name="noindenting" value="sansalinea"/>
- <cd:command name="indenting" value="composeenalinea"/>
- <cd:command name="setupindenting" value="reglecomposeenalinea"/>
- <cd:command name="startalignment" value="demarrealignement"/>
- <cd:command name="stopalignment" value="stoppealignement"/>
- <cd:command name="startlines" value="demarrelignes"/>
- <cd:command name="stoplines" value="stoppelignes"/>
- <cd:command name="setupparagraphnumbering" value="reglenumerotationparagraphe"/>
- <cd:command name="setuplinenumbering" value="reglenumerotationligne"/>
- <cd:command name="startlinenumbering" value="demarrenumerotationligne"/>
- <cd:command name="stoplinenumbering" value="stoppenumerotationligne"/>
- <cd:command name="startline" value="demarreligne"/>
- <cd:command name="stopline" value="stoppeligne"/>
- <cd:command name="someline" value="uneligne"/>
- <cd:command name="inline" value="alaligne"/>
- <cd:command name="crlf" value="crlf"/>
- <cd:command name="emptylines" value="emptylines"/>
- <cd:command name="setuplines" value="reglelignes"/>
- <cd:command name="startnarrower" value="demarrecompoetroite"/>
- <cd:command name="stopnarrower" value="stopcompoetroite"/>
- <cd:command name="setupnarrower" value="reglecompoetroite"/>
- <cd:command name="definetabulate" value="definittabulation"/>
- <cd:command name="setuptabulate" value="regletabulation"/>
- <cd:command name="starttable" value="demarretableau"/>
- <cd:command name="stoptable" value="stoppetableau"/>
- <cd:command name="starttables" value="demarretableaux"/>
- <cd:command name="stoptables" value="stoppetableaux"/>
- <cd:command name="setuptables" value="regletableaux"/>
- <cd:command name="definetabletemplate" value="definittrametableau"/>
- <cd:command name="page" value="page"/>
- <cd:command name="testcolumn" value="testcolumn"/>
- <cd:command name="testpage" value="testpage"/>
- <cd:command name="couplepage" value="pagedouble"/>
- <cd:command name="pagetype" value="tapepage"/>
- <cd:command name="processpage" value="traitepage"/>
- <cd:command name="couplepaper" value="couplepapier"/>
- <cd:command name="selectpaper" value="selectionnepapier"/>
- <cd:command name="screen" value="ecran"/>
- <cd:command name="definesection" value="definitsection"/>
- <cd:command name="definesectionblock" value="definitblocsection"/>
- <cd:command name="setupsectionblock" value="regleblocsection"/>
- <cd:command name="setupsection" value="reglesection"/>
- <cd:command name="notopandbottomlines" value="sanslignessupetinf"/>
- <cd:command name="noheaderandfooterlines" value="sanslignesenteteetpdp"/>
- <cd:command name="setuptop" value="reglesup"/>
- <cd:command name="setuptoptexts" value="regletextessup"/>
- <cd:command name="setupheader" value="regleentete"/>
- <cd:command name="setupheadertexts" value="regletextesentete"/>
- <cd:command name="setuppagenumbering" value="reglenumerotationpage"/>
- <cd:command name="getnumber" value="getnumber"/>
- <cd:command name="incrementnumber" value="incrementenumero"/>
- <cd:command name="decrementnumber" value="decrementenumero"/>
- <cd:command name="resetnumber" value="raznumero"/>
- <cd:command name="setnumber" value="affectenumero"/>
- <cd:command name="setupnumber" value="reglenumero"/>
- <cd:command name="setupbottom" value="regleinf"/>
- <cd:command name="setupbottomtexts" value="regletextesinf"/>
- <cd:command name="setupfooter" value="reglepdp"/>
- <cd:command name="setupfootertexts" value="regletextespdp"/>
- <cd:command name="setuppagenumber" value="reglenumeropage"/>
- <cd:command name="setupsubpagenumber" value="reglesousnumeropage"/>
- <cd:command name="subpagenumber" value="sousnumeropage"/>
- <cd:command name="setuptext" value="regletexte"/>
- <cd:command name="setuptexttexts" value="regletextestexte"/>
- <cd:command name="settextcontent" value="settext"/>
- <cd:command name="resettext" value="resettextcontent"/>
- <cd:command name="definetext" value="definittexte"/>
- <cd:command name="pagenumber" value="numeropage"/>
- <cd:command name="completepagenumber" value="completenumeropage"/>
- <cd:command name="placepagenumber" value="placenumeropage"/>
- <cd:command name="items" value="elements"/>
- <cd:command name="setupitems" value="regleelements"/>
- <cd:command name="leftaligned" value="aligneagauche"/>
- <cd:command name="midaligned" value="aligneaumilieu"/>
- <cd:command name="rightaligned" value="aligneadroite"/>
- <cd:command name="startcolumns" value="demarrecolonnes"/>
- <cd:command name="stopcolumns" value="stoppecolonnes"/>
- <cd:command name="setupcolumns" value="reglecolonnes"/>
- <cd:command name="column" value="colonne"/>
- <cd:command name="head" value="tete"/>
- <cd:command name="but" value="but"/>
- <cd:command name="item" value="element"/>
- <cd:command name="nop" value="nop"/>
- <cd:command name="mar" value="mar"/>
- <cd:command name="sym" value="sym"/>
- <cd:command name="txt" value="txt"/>
- <cd:command name="its" value="el"/>
- <cd:command name="ran" value="ran"/>
- <cd:command name="headsym" value="headsym"/>
- <cd:command name="defineitemgroup" value="defineitemgroup"/>
- <cd:command name="setupitemgroup" value="setupitemgroup"/>
- <cd:command name="setupitemgroups" value="setupitemgroups"/>
- <cd:command name="definehead" value="definittete"/>
- <cd:command name="setuphead" value="regletete"/>
- <cd:command name="setupheads" value="regletetes"/>
- <cd:command name="setupheadnumber" value="reglenumerotete"/>
- <cd:command name="headnumber" value="numerotete"/>
- <cd:command name="currentheadnumber" value="numerotetecourant"/>
- <cd:command name="determineheadnumber" value="determinenumerotete"/>
- <cd:command name="resetmarking" value="razmarquage"/>
- <cd:command name="setupmarking" value="reglemarquage"/>
- <cd:command name="definemarking" value="definitmarquage"/>
- <cd:command name="nomarking" value="sansmarquage"/>
- <cd:command name="marking" value="marquage"/>
- <cd:command name="decouplemarking" value="decouplemarquage"/>
- <cd:command name="couplemarking" value="couplemarquage"/>
- <cd:command name="getmarking" value="obtientmarquage"/>
- <cd:command name="definelayout" value="definitdisposition"/>
- <cd:command name="setuplayout" value="regledisposition"/>
- <cd:command name="adaptlayout" value="adaptedisposition"/>
- <cd:command name="placeongrid" value="placesurgrille"/>
- <cd:command name="moveongrid" value="deplacesurgrille"/>
- <cd:command name="showsetups" value="montrereglages"/>
- <cd:command name="showframe" value="montrecadre"/>
- <cd:command name="showgrid" value="montregrille"/>
- <cd:command name="showlayout" value="montredisposition"/>
- <cd:command name="showprint" value="montreedition"/>
- <cd:command name="showstruts" value="montrestruts"/>
- <cd:command name="definepapersize" value="definittaillepapier"/>
- <cd:command name="setuppapersize" value="regletaillepapier"/>
- <cd:command name="setuppaper" value="reglepapier"/>
- <cd:command name="setuparranging" value="reglearrangement"/>
- <cd:command name="version" value="version"/>
- <cd:command name="setupbackgrounds" value="reglearriereplans"/>
- <cd:command name="setupalign" value="reglealignement"/>
- <cd:command name="setupwhitespace" value="regleespaceblanc"/>
- <cd:command name="setupinteraction" value="regleinteraction"/>
- <cd:command name="setupinteractionmenu" value="reglemenuinteraction"/>
- <cd:command name="defineinteractionmenu" value="definitmenuinteraction"/>
- <cd:command name="disableinteractionmenu" value="inhibemenuinteraction"/>
- <cd:command name="interactionmenu" value="menuinteraction"/>
- <cd:command name="interactionbuttons" value="boutonsinteraction"/>
- <cd:command name="interactionbar" value="barreinteraction"/>
- <cd:command name="setupinteractionbar" value="reglebarreinteraction"/>
- <cd:command name="setupinteractionscreen" value="regleecraninteraction"/>
- <cd:command name="placebookmarks" value="placemarquespages"/>
- <cd:command name="bookmark" value="marquepage"/>
- <cd:command name="definelogo" value="definitlogo"/>
- <cd:command name="placelogos" value="placelogos"/>
- <cd:command name="definecolor" value="definitcouleur"/>
- <cd:command name="definecolorgroup" value="definitgroupecouleur"/>
- <cd:command name="definepalet" value="definitpalette"/>
- <cd:command name="graycolor" value="couleurgrise"/>
- <cd:command name="color" value="couleur"/>
- <cd:command name="startcolor" value="demarrecouleur"/>
- <cd:command name="stopcolor" value="stoppecouleur"/>
- <cd:command name="setupcolors" value="reglecouleurs"/>
- <cd:command name="setupcolor" value="reglecouleur"/>
- <cd:command name="setuppalet" value="reglepalette"/>
- <cd:command name="showcolor" value="montrecouleur"/>
- <cd:command name="showcolorgroup" value="montregroupecouleur"/>
- <cd:command name="showpalet" value="montrepalette"/>
- <cd:command name="comparecolorgroup" value="comparegroupecouleur"/>
- <cd:command name="comparepalet" value="comparepalette"/>
- <cd:command name="colorvalue" value="valeurcouleur"/>
- <cd:command name="greyvalue" value="valeurgris"/>
- <cd:command name="startraster" value="demarreraster"/>
- <cd:command name="stopraster" value="stopperaster"/>
- <cd:command name="defineblock" value="definitbloc"/>
- <cd:command name="setupblock" value="reglebloc"/>
- <cd:command name="useblocks" value="utiliseblocs"/>
- <cd:command name="processblocks" value="traiteblocs"/>
- <cd:command name="keepblocks" value="gardeblocs"/>
- <cd:command name="selectblocks" value="selectionneblocs"/>
- <cd:command name="hideblocks" value="cacheblocs"/>
- <cd:command name="bypassblocks" value="sauteblocs"/>
- <cd:command name="forceblocks" value="forceblocs"/>
- <cd:command name="nomoreblocks" value="pasplusdeblocs"/>
- <cd:command name="definelist" value="definitliste"/>
- <cd:command name="definecombinedlist" value="definitlisteimbriquee"/>
- <cd:command name="listsymbol" value="listesymbole"/>
- <cd:command name="placelist" value="placeliste"/>
- <cd:command name="plaatsruwelijst" value="placerawlist"/>
- <cd:command name="placecombinedlist" value="placelisteinmbriquee"/>
- <cd:command name="writetolist" value="ecritdansliste"/>
- <cd:command name="writebetweenlist" value="ecritentreliste"/>
- <cd:command name="immediatetolist" value="immediatetolist"/>
- <cd:command name="immediatebetweenlist" value="immediatebetweenlist"/>
- <cd:command name="setuplist" value="regleliste"/>
- <cd:command name="setupcombinedlist" value="reglelisteimbriquee"/>
- <cd:command name="determinelistcharacteristics" value="determinecaracteristiqueliste"/>
- <cd:command name="listlength" value="llongueurliste"/>
- <cd:command name="listwidth" value="largeurliste"/>
- <cd:command name="listheight" value="hauteurliste"/>
- <cd:command name="nolist" value="sansliste"/>
- <cd:command name="definereferencelist" value="definitlistereference"/>
- <cd:command name="placereferencelist" value="placelistereference"/>
- <cd:command name="writetoreferencelist" value="ecritdanslistereference"/>
- <cd:command name="setupreferencelist" value="reglelistereference"/>
- <cd:command name="definefloat" value="definitflottant"/>
- <cd:command name="setupfloat" value="regleflottant"/>
- <cd:command name="setupfloats" value="regleflottants"/>
- <cd:command name="splitfloat" value="separeflottant"/>
- <cd:command name="setupfloatsplitting" value="regleseparationflottant"/>
- <cd:command name="placefloat" value="placeflottant"/>
- <cd:command name="movesidefloat" value="movesidefloat"/>
- <cd:command name="defineplacement" value="defineplacement"/>
- <cd:command name="setupplacement" value="setupplacement"/>
- <cd:command name="definecombination" value="definecombination"/>
- <cd:command name="startcombination" value="demarrecombinaison"/>
- <cd:command name="stopcombination" value="stoppecombinaison"/>
- <cd:command name="placesidebyside" value="placecoteacote"/>
- <cd:command name="placeontopofeachother" value="placelesunsaudessusdesautres"/>
- <cd:command name="setupcaption" value="regleintitule"/>
- <cd:command name="setupcaptions" value="regleintitules"/>
- <cd:command name="setupcombinations" value="reglecombinaisons"/>
- <cd:command name="startoverlay" value="demarrerevetement"/>
- <cd:command name="stopoverlay" value="stopperevetement"/>
- <cd:command name="defineregister" value="definitregistre"/>
- <cd:command name="coupleregister" value="coupleregistre"/>
- <cd:command name="setupregister" value="regleregistre"/>
- <cd:command name="writetoregister" value="ecritregistre"/>
- <cd:command name="completeregister" value="completeregistre"/>
- <cd:command name="placeregister" value="placeregistre"/>
- <cd:command name="determineregistercharacteristics" value="determinecaracteristiquesregistre"/>
- <cd:command name="definesorting" value="definittri"/>
- <cd:command name="definesynonyms" value="definitsynonymes"/>
- <cd:command name="setupsorting" value="regletri"/>
- <cd:command name="setupsynonyms" value="reglesynonymes"/>
- <cd:command name="startsynchronization" value="demarresynchronisation"/>
- <cd:command name="stopsynchronization" value="stoppesynchronisation"/>
- <cd:command name="setupsynchronizationbar" value="reglebarresynchronisation"/>
- <cd:command name="setupsynchronization" value="reglesynchronisation"/>
- <cd:command name="synchronizationbar" value="barresynchronisation"/>
- <cd:command name="synchronize" value="synchronise"/>
- <cd:command name="useexternaldocument" value="utilisedocumentexterne"/>
- <cd:command name="useURL" value="utiliseURL"/>
- <cd:command name="useurl" value="utiliseurl"/>
- <cd:command name="setupurl" value="regleurl"/>
- <cd:command name="coupledocument" value="coupledocument"/>
- <cd:command name="setupprograms" value="regleprogrammes"/>
- <cd:command name="defineprogram" value="definitprogramme"/>
- <cd:command name="program" value="programme"/>
- <cd:command name="setuppagetransitions" value="regletransitionspage"/>
- <cd:command name="defineprofile" value="definitprofil"/>
- <cd:command name="defineversion" value="definitversion"/>
- <cd:command name="markversion" value="marquageversion"/>
- <cd:command name="selectversion" value="selectionneversion"/>
- <cd:command name="startprofile" value="demarreprofil"/>
- <cd:command name="startversion" value="demarreversion"/>
- <cd:command name="setupprofiles" value="regleprofils"/>
- <cd:command name="setupversions" value="regleversions"/>
- <cd:command name="stopprofile" value="stoppeprofil"/>
- <cd:command name="stopversion" value="stoppeversion"/>
- <cd:command name="followprofile" value="suivantprofil"/>
- <cd:command name="followprofileversion" value="suivantversionprofil"/>
- <cd:command name="followversion" value="suivantversion"/>
- <cd:command name="definedescription" value="definitdescription"/>
- <cd:command name="definelabel" value="definitetiquette"/>
- <cd:command name="defineenumeration" value="definitenumeration"/>
- <cd:command name="defineindenting" value="definitcompoalinea"/>
- <cd:command name="setupdescriptions" value="regledescriptions"/>
- <cd:command name="setupenumerations" value="regleenumerations"/>
- <cd:command name="setupindentations" value="reglealineas"/>
- <cd:command name="setuptab" value="regletab"/>
- <cd:command name="tab" value="tab"/>
- <cd:command name="setupexternalfigures" value="reglefiguresexternes"/>
- <cd:command name="showexternalfigures" value="montrefiguresexternes"/>
- <cd:command name="externalfigure" value="figureexterne"/>
- <cd:command name="useexternalfigure" value="utilisefigureexterne"/>
- <cd:command name="startfigure" value="demarrefigure"/>
- <cd:command name="referring" value="faitreference"/>
- <cd:command name="remark" value="commentaire"/>
- <cd:command name="colorbar" value="barrecouleur"/>
- <cd:command name="grid" value="grille"/>
- <cd:command name="button" value="bouton"/>
- <cd:command name="menubutton" value="boutonmenu"/>
- <cd:command name="setupbuttons" value="regleboutons"/>
- <cd:command name="usereferences" value="utilisereferences"/>
- <cd:command name="placereferencelist" value="placelistereference"/>
- <cd:command name="setupreferencelist" value="reglelistereference"/>
- <cd:command name="setupreferencing" value="reglereferencage"/>
- <cd:command name="textreference" value="referencetexte"/>
- <cd:command name="pagereference" value="referencepage"/>
- <cd:command name="reference" value="reference"/>
- <cd:command name="definereference" value="definitreference"/>
- <cd:command name="definereferenceformat" value="definitformatreference"/>
- <cd:command name="useJSscripts" value="utiliseJSscripts"/>
- <cd:command name="from" value="de"/>
- <cd:command name="in" value="dans"/>
- <cd:command name="at" value="a"/>
- <cd:command name="about" value="concernant"/>
- <cd:command name="goto" value="va"/>
- <cd:command name="atpage" value="alapage"/>
- <cd:command name="somewhere" value="qqpart"/>
- <cd:command name="navigating" value="navigating"/>
- <cd:command name="ref" value="ref"/>
- <cd:command name="gotobox" value="vaalaboite"/>
- <cd:command name="gotopage" value="vaalapage"/>
- <cd:command name="placeformula" value="placeformule"/>
- <cd:command name="placesubformula" value="placesousformule"/>
- <cd:command name="moveformula" value="deplaceformule"/>
- <cd:command name="setupformulas" value="regleformules"/>
- <cd:command name="formulanumber" value="numeroformule"/>
- <cd:command name="subformulanumber" value="numerosousformule"/>
- <cd:command name="leg" value="leg"/>
- <cd:command name="fact" value="fait"/>
- <cd:command name="mathematics" value="mathematique"/>
- <cd:command name="dimension" value="dimension"/>
- <cd:command name="nodimension" value="sansdimension"/>
- <cd:command name="startenvironment" value="demarreenvironement"/>
- <cd:command name="stopenvironment" value="stoppeenvironement"/>
- <cd:command name="startcomponent" value="demarrecomposant"/>
- <cd:command name="stopcomponent" value="stoppecomposant"/>
- <cd:command name="startproduct" value="demarreproduit"/>
- <cd:command name="stopproduct" value="stoppeproduit"/>
- <cd:command name="startproject" value="demarreprojet"/>
- <cd:command name="stopproject" value="stoppeprojet"/>
- <cd:command name="setups" value="reglages"/>
- <cd:command name="project" value="projet"/>
- <cd:command name="component" value="composant"/>
- <cd:command name="product" value="produit"/>
- <cd:command name="environment" value="environement"/>
- <cd:command name="nomorefiles" value="pasplusdefichiers"/>
- <cd:command name="getbuffer" value="prendbuffer"/>
- <cd:command name="setupbuffer" value="reglebuffer"/>
- <cd:command name="typebuffer" value="tapebuffer"/>
- <cd:command name="definebuffer" value="definitbuffer"/>
- <cd:command name="unitmeaning" value="sensunite"/>
- <cd:command name="infull" value="infull"/>
- <cd:command name="quotation" value="citation"/>
- <cd:command name="quote" value="citer"/>
- <cd:command name="startquotation" value="demarrecitation"/>
- <cd:command name="stopquotation" value="stoppecitation"/>
- <cd:command name="setupquote" value="demarreciter"/>
- <cd:command name="define" value="definit"/>
- <cd:command name="redo" value="refait"/>
- <cd:command name="usecommands" value="utilisecommandes"/>
- <cd:command name="definestartstop" value="definitdemarrestoppe"/>
- <cd:command name="setupstartstop" value="regledemarrestoppe"/>
- <cd:command name="startlocal" value="demarrelocal"/>
- <cd:command name="stoplocal" value="stoppelocal"/>
- <cd:command name="startglobal" value="demarreglobal"/>
- <cd:command name="stopglobal" value="stoppeglobal"/>
- <cd:command name="macroname" value="nommacro"/>
- <cd:command name="definemakeup" value="definitmakeup"/>
- <cd:command name="setupmakeup" value="reglemakeup"/>
- <cd:command name="startmakeup" value="demarremakeup"/>
- <cd:command name="stopmakeup" value="stoppemakeup"/>
- <cd:command name="useexternalsoundtrack" value="utilisepsiteaudioexterne"/>
- <cd:command name="useexternalfile" value="utilisefichierexterne"/>
- <cd:command name="useexternalfiles" value="utilisefichiersexternes"/>
- <cd:command name="referral" value="recommandation"/>
- <cd:command name="referraldate" value="daterecommandation"/>
- <cd:command name="high" value="haut"/>
- <cd:command name="lohi" value="baha"/>
- <cd:command name="low" value="bas"/>
- <cd:command name="fraction" value="fraction"/>
- <cd:command name="chem" value="chem"/>
- <cd:command name="startopposite" value="demarreopposition"/>
- <cd:command name="stopopposite" value="stoppeopposition"/>
- <cd:command name="setupoppositeplacing" value="regleplacementopposition"/>
- <cd:command name="startpositioning" value="demarrepositionnement"/>
- <cd:command name="stoppositioning" value="stoppepositionnement"/>
- <cd:command name="position" value="position"/>
- <cd:command name="setuppositioning" value="reglepositionnement"/>
- <cd:command name="rotate" value="oriente"/>
- <cd:command name="setuprotate" value="regleoriente"/>
- <cd:command name="mirror" value="reflete"/>
- <cd:command name="scale" value="echelle"/>
- <cd:command name="setupnumbering" value="reglenumerotation"/>
- <cd:command name="reset" value="raz"/>
- <cd:command name="setuppublications" value="reglepublications"/>
- <cd:command name="publication" value="publication"/>
- <cd:command name="definehbox" value="definithbox"/>
- <cd:command name="adding" value="ajout"/>
- <cd:command name="periods" value="periodes"/>
- <cd:command name="setuphyphenmark" value="reglemarquagehyphenation"/>
- <cd:command name="setupinterlinespace" value="regleespacementinterligne"/>
- <cd:command name="setupspacing" value="regleespacement"/>
- <cd:command name="setuptolerance" value="regletolerance"/>
- <cd:command name="setupsystem" value="reglesysteme"/>
- <cd:command name="usepath" value="utilisechemin"/>
- <cd:command name="defineparagraphs" value="definitparagraphes"/>
- <cd:command name="setupparagraphs" value="regleparagraphes"/>
- <cd:command name="donttest" value="sanstest"/>
- <cd:command name="setupcomment" value="reglecommentaire"/>
- <cd:command name="comment" value="commentaire"/>
- <cd:command name="definefield" value="definitchamp"/>
- <cd:command name="definemainfield" value="definitchampprincipal"/>
- <cd:command name="definesubfield" value="definitsouschamp"/>
- <cd:command name="clonefield" value="clonechamp"/>
- <cd:command name="copyfield" value="copitchamp"/>
- <cd:command name="setupfield" value="reglechamp"/>
- <cd:command name="setupfields" value="reglechamps"/>
- <cd:command name="field" value="champ"/>
- <cd:command name="fitfield" value="ajustechamp"/>
- <cd:command name="logfields" value="logchamp"/>
- <cd:command name="showfields" value="montrechamps"/>
- <cd:command name="tooltip" value="suggestion"/>
- <cd:command name="fillinfield" value="remplitchamp"/>
- <cd:command name="definefieldstack" value="definitpilechamp"/>
- <cd:command name="fieldstack" value="pilechamp"/>
- <cd:command name="setupforms" value="regleformulaires"/>
- <cd:command name="setupclipping" value="regleclipping"/>
- <cd:command name="clip" value="clip"/>
- <cd:command name="placelegend" value="placelegende"/>
- <cd:command name="setuplegend" value="reglelegende"/>
- <cd:command name="setuppagecomment" value="reglecommentairepage"/>
- <cd:command name="setupstrut" value="reglestrut"/>
- <cd:command name="definerule" value="definitregle"/>
- <cd:command name="placerule" value="placeregle"/>
- <cd:command name="setuprule" value="regleregle"/>
- <cd:command name="definetextvariable" value="definitvariabletexte"/>
- <cd:command name="setuptextvariable" value="reglevariabletexte"/>
- <cd:command name="settextvariable" value="affectevariabletexte"/>
- <cd:command name="placetextvariable" value="placevariabletexte"/>
- <cd:command name="textvariable" value="variabletexte"/>
- <cd:command name="definetextposition" value="definitpositiontexte"/>
- <cd:command name="setuptextposition" value="reglepositiontexte"/>
- <cd:command name="positiontext" value="positionnetexte"/>
- <cd:command name="definerawfont" value="definitpolicebrute"/>
- <cd:command name="switchtorawfont" value="changepolicebrute"/>
- <cd:command name="placeheadtext" value="placetextetete"/>
- <cd:command name="placeheadnumber" value="placenumerotete"/>
- <cd:command name="definepagebreak" value="definitsautdepage"/>
- <cd:command name="definecolumnbreak" value="definitsautdecolonne"/>
- <cd:command name="definemathalignment" value="definemathalignment"/>
- <cd:command name="setupmathalignment" value="setupmathalignment"/>
- </cd:commands>
-
- <cd:commands>
- <cd:command name="setupitemgroups" value="reglegroupeselements"/>
- </cd:commands>
-
- <cd:commands>
- <cd:command name="topheight" value="hauteursup"/>
- <cd:command name="topdistance" value="distancesup"/>
- <cd:command name="headerheight" value="hauteurentete"/>
- <cd:command name="headerdistance" value="distanceentete"/>
- <cd:command name="textheight" value="hauteurtexte"/>
- <cd:command name="footerdistance" value="distancepdp"/>
- <cd:command name="footerheight" value="hauteurpdp"/>
- <cd:command name="bottomdistance" value="distanceinf"/>
- <cd:command name="bottomheight" value="hauteurinf"/>
- <cd:command name="marginwidth" value="largeurmarge"/>
- <cd:command name="leftmarginwidth" value="largeurmargegauche"/>
- <cd:command name="rightmarginwidth" value="largeurmargedroite"/>
- <cd:command name="margindistance" value="distancemarge"/>
- <cd:command name="leftmargindistance" value="distancemargegauche"/>
- <cd:command name="rightmargindistance" value="distancemargedroite"/>
- <cd:command name="edgewidth" value="largeurbord"/>
- <cd:command name="leftedgewidth" value="largeurbordgauche"/>
- <cd:command name="rightedgewidth" value="largeurborddroit"/>
- <cd:command name="edgedistance" value="distancebord"/>
- <cd:command name="leftedgedistance" value="distancebordgauche"/>
- <cd:command name="rightedgedistance" value="distanceborddroit"/>
- <cd:command name="innermarginwidth" value="innermarginwidth"/>
- <cd:command name="outermarginwidth" value="outermarginwidth"/>
- <cd:command name="innermargindistance" value="innermargindistance"/>
- <cd:command name="outermargindistance" value="outermargindistance"/>
- <cd:command name="inneredgewidth" value="inneredgewidth"/>
- <cd:command name="outeredgewidth" value="outeredgewidth"/>
- <cd:command name="inneredgedistance" value="inneredgedistance"/>
- <cd:command name="outeredgedistance" value="outeredgedistance"/>
- <cd:command name="textwidth" value="largeurtexte"/>
- <cd:command name="makeupwidth" value="largeurmakeup"/>
- <cd:command name="makeupheight" value="hauteurmakeup"/>
- <cd:command name="topspace" value="espacesup"/>
- <cd:command name="bottomspace" value="espaceinf"/>
- <cd:command name="backspace" value="retourarriere"/>
- <cd:command name="cutspace" value="cutspace"/>
- <cd:command name="paperwidth" value="largeurpapier"/>
- <cd:command name="paperheight" value="hauteurpapier"/>
- <cd:command name="printpaperwidth" value="largeureditionpapier"/>
- <cd:command name="printpaperheight" value="hauteureditionpapier"/>
- <cd:command name="pageoffset" value="pageoffset"/>
- <cd:command name="pagedepth" value="pagedepth"/>
- <cd:command name="headlevel" value="niveautete"/>
- <cd:command name="linewidth" value="largeurligne"/>
- <cd:command name="totalnumberofpages" value="nombretotaldepages"/>
- <cd:command name="numberofsubpages" value="nombredesouspages"/>
- <cd:command name="useXMLfilter" value="useXMLfilter"/>
- <cd:command name="definecolumnset" value="definitjeucolonne"/>
- <cd:command name="setupcolumnset" value="reglejeucolonne"/>
- <cd:command name="startcolumnset" value="demarrejeucolonne"/>
- <cd:command name="stopcolumnset" value="stoppejeucolonne"/>
- <cd:command name="setupcolumnsetlines" value="setupcolumnsetlines"/>
- <cd:command name="setupcolumnsetstart" value="setupcolumnsetstart"/>
- <cd:command name="startcolumnmakeup" value="startcolumnmakeup"/>
- <cd:command name="stopcolumnmakeup" value="stopcolumnmakeup"/>
- <cd:command name="usetypescript" value="usetypescript"/>
- </cd:commands>
-
- <cd:commands>
- <cd:command name="startdocument" value="demarredocument"/>
- <cd:command name="stopdocument" value="stoppedocument"/>
- <cd:command name="startoverzicht" value="demarrevuedensemble"/>
- <cd:command name="stopoverzicht" value="stoppevuedensemble"/>
- <cd:command name="label" value="etiquette"/>
- <cd:command name="labels" value="etiquettes"/>
- <cd:command name="domicile" value="domicile"/>
- </cd:commands>
-
-</cd:interface>
+</cd:interface> \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/interface/keys-it.xml b/Master/texmf-dist/tex/context/interface/keys-it.xml
index 0f0fbbd51d9..b2c01b9168d 100644
--- a/Master/texmf-dist/tex/context/interface/keys-it.xml
+++ b/Master/texmf-dist/tex/context/interface/keys-it.xml
@@ -1,1656 +1,1649 @@
-<?xml version="1.0"?>
+<?xml version='1.0'?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="it" version="2008.05.21 15:21">
+<cd:interface xmlns:cd='http://www.pragma-ade.com/commands' name='context' language='it' version='2008.10.21 19:42'>
- <cd:variables>
- <cd:variable name="lesshyphenation" value="lesshyphenation"/>
- <cd:variable name="morehyphenation" value="morehyphenation"/>
- </cd:variables>
+ <!-- definitions for interface variables for language it -->
- <cd:variables>
- <cd:variable name="one" value="uno"/>
- <cd:variable name="two" value="due"/>
- <cd:variable name="three" value="tre"/>
- <cd:variable name="four" value="quattro"/>
- <cd:variable name="five" value="cinque"/>
- </cd:variables>
+ <cd:variables>
+ <cd:variable name='Addition' value='Aggiunta'/>
+ <cd:variable name='Balloon' value='Pallone'/>
+ <cd:variable name='Character' value='Lettera'/>
+ <cd:variable name='Characters' value='Lettere'/>
+ <cd:variable name='CloseDocument' value='ChiudiDocumento'/>
+ <cd:variable name='ExitViewer' value='EsciVisualizzatore'/>
+ <cd:variable name='FirstPage' value='PrimaPagina'/>
+ <cd:variable name='FitHeight' value='FitHeight'/>
+ <cd:variable name='FitWidth' value='FitWidth'/>
+ <cd:variable name='GotoPage' value='VaiAPagina'/>
+ <cd:variable name='Greek' value='Greco'/>
+ <cd:variable name='Help' value='Aiuto'/>
+ <cd:variable name='HideField' value='NascondiCampo'/>
+ <cd:variable name='HideLayer' value='HideLayer'/>
+ <cd:variable name='Key' value='Tasto'/>
+ <cd:variable name='LastPage' value='UltimaPagina'/>
+ <cd:variable name='LoadForm' value='CaricaForm'/>
+ <cd:variable name='MONTH' value='MESE'/>
+ <cd:variable name='New' value='Nuovo'/>
+ <cd:variable name='NextJump' value='SaltoSuccessivo'/>
+ <cd:variable name='NextPage' value='PaginaSuccessiva'/>
+ <cd:variable name='Numbers' value='Numeri'/>
+ <cd:variable name='OpenNamedDocument' value='OpenNamedDocument'/>
+ <cd:variable name='Paragraph' value='Capoverso'/>
+ <cd:variable name='PauseMovie' value='PausaFilm'/>
+ <cd:variable name='PauseRendering' value='PauseRendering'/>
+ <cd:variable name='PauseSound' value='PausaSuono'/>
+ <cd:variable name='PreviousJump' value='SaltoPrecedente'/>
+ <cd:variable name='PreviousPage' value='PaginaPrecedente'/>
+ <cd:variable name='PrintDocument' value='StampaDocumento'/>
+ <cd:variable name='Query' value='Richiesta'/>
+ <cd:variable name='QueryAgain' value='RinnovaRichiesta'/>
+ <cd:variable name='ResetForm' value='ReimpostaForm'/>
+ <cd:variable name='ResumeMovie' value='RiprendiFilm'/>
+ <cd:variable name='ResumeRendering' value='ResumeRendering'/>
+ <cd:variable name='ResumeSound' value='RiprendiSuono'/>
+ <cd:variable name='Romannumerals' value='Numeriromani'/>
+ <cd:variable name='SaveDocument' value='SalvaDocumento'/>
+ <cd:variable name='SaveForm' value='SalvaForm'/>
+ <cd:variable name='SaveNamedDocument' value='SaveNamedDocument'/>
+ <cd:variable name='SearchAgain' value='CercaAncora'/>
+ <cd:variable name='SearchDocument' value='CercaDocumento'/>
+ <cd:variable name='ShowBookmarks' value='MostraSegnalibro'/>
+ <cd:variable name='ShowField' value='MostraCampo'/>
+ <cd:variable name='ShowThumbs' value='MostraThumbs'/>
+ <cd:variable name='StartMovie' value='IniziaFilm'/>
+ <cd:variable name='StartRendering' value='StartRendering'/>
+ <cd:variable name='StartSound' value='IniziaSuono'/>
+ <cd:variable name='StopMovie' value='FermaFilm'/>
+ <cd:variable name='StopRendering' value='StopRendering'/>
+ <cd:variable name='StopSound' value='FermaSuono'/>
+ <cd:variable name='SubmitForm' value='MandaForm'/>
+ <cd:variable name='ToggleLayer' value='ToggleLayer'/>
+ <cd:variable name='ToggleViewer' value='ScambiaVisualizzatore'/>
+ <cd:variable name='URL' value='URL'/>
+ <cd:variable name='VideLayer' value='VideLayer'/>
+ <cd:variable name='ViewerHelp' value='AiutoVisualizzatore'/>
+ <cd:variable name='WEEKDAY' value='GIORNOSETTIMANA'/>
+ <cd:variable name='WORD' value='PAROLA'/>
+ <cd:variable name='abbreviation' value='abbreviazione'/>
+ <cd:variable name='abbreviations' value='abbreviazioni'/>
+ <cd:variable name='absolute' value='assoluto'/>
+ <cd:variable name='action' value='azione'/>
+ <cd:variable name='after' value='dopo'/>
+ <cd:variable name='all' value='tutti'/>
+ <cd:variable name='always' value='sempre'/>
+ <cd:variable name='answerarea' value='answerarea'/>
+ <cd:variable name='appendices' value='appendici'/>
+ <cd:variable name='appendix' value='appendice'/>
+ <cd:variable name='april' value='aprile'/>
+ <cd:variable name='atmargin' value='almargine'/>
+ <cd:variable name='atpage' value='apagina'/>
+ <cd:variable name='august' value='agosto'/>
+ <cd:variable name='auto' value='auto'/>
+ <cd:variable name='autointro' value='autointro'/>
+ <cd:variable name='back' value='dietro'/>
+ <cd:variable name='background' value='sfondo'/>
+ <cd:variable name='backmatter' value='postambolo'/>
+ <cd:variable name='backpart' value='postfazione'/>
+ <cd:variable name='backspace' value='backspace'/>
+ <cd:variable name='backward' value='indietro'/>
+ <cd:variable name='before' value='prima'/>
+ <cd:variable name='big' value='grande'/>
+ <cd:variable name='bigbodyfont' value='grossofontdeltesto'/>
+ <cd:variable name='bigpreference' value='grandepreferenza'/>
+ <cd:variable name='blank' value='rigovuoto'/>
+ <cd:variable name='blockquote' value='blockquote'/>
+ <cd:variable name='bodymatter' value='testiprincipali'/>
+ <cd:variable name='bodypart' value='testoprincipale'/>
+ <cd:variable name='bold' value='grassetto'/>
+ <cd:variable name='bolditalic' value='grassettocorsivo'/>
+ <cd:variable name='boldslanted' value='grassettoinclinato'/>
+ <cd:variable name='bookmark' value='segnalibro'/>
+ <cd:variable name='both' value='entrambi'/>
+ <cd:variable name='bottom' value='fondo'/>
+ <cd:variable name='brief' value='brief'/>
+ <cd:variable name='broad' value='ampio'/>
+ <cd:variable name='buffer' value='buffer'/>
+ <cd:variable name='by' value='da'/>
+ <cd:variable name='calligraphic' value='calligrafico'/>
+ <cd:variable name='cap' value='cap'/>
+ <cd:variable name='capital' value='maiuscolo'/>
+ <cd:variable name='center' value='center'/>
+ <cd:variable name='chapter' value='capitolo'/>
+ <cd:variable name='character' value='lettera'/>
+ <cd:variable name='characters' value='lettere'/>
+ <cd:variable name='color' value='colore'/>
+ <cd:variable name='column' value='colonna'/>
+ <cd:variable name='columns' value='colonne'/>
+ <cd:variable name='command' value='comando'/>
+ <cd:variable name='commands' value='comandi'/>
+ <cd:variable name='comment' value='commento'/>
+ <cd:variable name='component' value='componente'/>
+ <cd:variable name='concept' value='concetto'/>
+ <cd:variable name='content' value='indice'/>
+ <cd:variable name='contents' value='indici'/>
+ <cd:variable name='continue' value='continua'/>
+ <cd:variable name='controls' value='controlli'/>
+ <cd:variable name='conversion' value='coversione'/>
+ <cd:variable name='current' value='corrente'/>
+ <cd:variable name='cutspace' value='cutspace'/>
+ <cd:variable name='date' value='data'/>
+ <cd:variable name='day' value='giorno'/>
+ <cd:variable name='december' value='dicembre'/>
+ <cd:variable name='default' value='implicito'/>
+ <cd:variable name='depth' value='profondita'/>
+ <cd:variable name='description' value='descrizione'/>
+ <cd:variable name='disable' value='disattiva'/>
+ <cd:variable name='display' value='schermo'/>
+ <cd:variable name='dot' value='punto'/>
+ <cd:variable name='doublesided' value='doppiafaccia'/>
+ <cd:variable name='each' value='ogni'/>
+ <cd:variable name='edge' value='bordo'/>
+ <cd:variable name='empty' value='vuoto'/>
+ <cd:variable name='endnote' value='endnote'/>
+ <cd:variable name='enumeration' value='enumerazione'/>
+ <cd:variable name='environment' value='ambiente'/>
+ <cd:variable name='even' value='pari'/>
+ <cd:variable name='external' value='esterno'/>
+ <cd:variable name='fact' value='fatto'/>
+ <cd:variable name='february' value='febbraio'/>
+ <cd:variable name='figure' value='figura'/>
+ <cd:variable name='figures' value='figure'/>
+ <cd:variable name='file' value='file'/>
+ <cd:variable name='final' value='finale'/>
+ <cd:variable name='first' value='primo'/>
+ <cd:variable name='firstcolumn' value='firstcolumn'/>
+ <cd:variable name='firstpage' value='primapagina'/>
+ <cd:variable name='firstsubpage' value='primasottopagina'/>
+ <cd:variable name='fit' value='adatta'/>
+ <cd:variable name='five' value='cinque'/>
+ <cd:variable name='fix' value='fisso'/>
+ <cd:variable name='fixed' value='fisso'/>
+ <cd:variable name='flexible' value='flessibile'/>
+ <cd:variable name='float' value='oggettomobile'/>
+ <cd:variable name='flushinner' value='flushinner'/>
+ <cd:variable name='flushleft' value='flushleft'/>
+ <cd:variable name='flushouter' value='flushouter'/>
+ <cd:variable name='flushright' value='flushright'/>
+ <cd:variable name='footer' value='piedipagina'/>
+ <cd:variable name='footnote' value='notapdp'/>
+ <cd:variable name='force' value='forza'/>
+ <cd:variable name='foreground' value='foreground'/>
+ <cd:variable name='formeel' value='formeel'/>
+ <cd:variable name='formula' value='formula'/>
+ <cd:variable name='formulae' value='formule'/>
+ <cd:variable name='forward' value='avanti'/>
+ <cd:variable name='four' value='quattro'/>
+ <cd:variable name='frame' value='cornice'/>
+ <cd:variable name='framedtext' value='testoincorniciato'/>
+ <cd:variable name='friday' value='venerdi'/>
+ <cd:variable name='frontmatter' value='preambolo'/>
+ <cd:variable name='frontpart' value='prefazione'/>
+ <cd:variable name='global' value='globale'/>
+ <cd:variable name='graphic' value='grafico'/>
+ <cd:variable name='graphics' value='grafici'/>
+ <cd:variable name='gray' value='grigio'/>
+ <cd:variable name='greek' value='greco'/>
+ <cd:variable name='grid' value='griglia'/>
+ <cd:variable name='halfline' value='mezzariga'/>
+ <cd:variable name='handwritten' value='grafiamanuale'/>
+ <cd:variable name='hang' value='sospendi'/>
+ <cd:variable name='hanging' value='sospeso'/>
+ <cd:variable name='head' value='testa'/>
+ <cd:variable name='header' value='intestazione'/>
+ <cd:variable name='height' value='altezza'/>
+ <cd:variable name='helptext' value='testoaiuto'/>
+ <cd:variable name='hencefore' value='precedente'/>
+ <cd:variable name='here' value='qui'/>
+ <cd:variable name='hereafter' value='seguente'/>
+ <cd:variable name='hidden' value='nascosto'/>
+ <cd:variable name='hiding' value='nascondere'/>
+ <cd:variable name='high' value='alto'/>
+ <cd:variable name='horizontal' value='orizzontale'/>
+ <cd:variable name='hyphenated' value='sillabato'/>
+ <cd:variable name='hz' value='hz'/>
+ <cd:variable name='inbetween' value='tra'/>
+ <cd:variable name='index' value='indiceanalitico'/>
+ <cd:variable name='indices' value='indicianalitici'/>
+ <cd:variable name='informeel' value='informeel'/>
+ <cd:variable name='inherit' value='inherit'/>
+ <cd:variable name='inleft' value='insinistra'/>
+ <cd:variable name='inmargin' value='inmargine'/>
+ <cd:variable name='inner' value='interno'/>
+ <cd:variable name='inneredge' value='bordointerno'/>
+ <cd:variable name='innermargin' value='margineinterno'/>
+ <cd:variable name='inright' value='indestra'/>
+ <cd:variable name='interaction' value='interazione'/>
+ <cd:variable name='interactionmenu' value='menuinterattivo'/>
+ <cd:variable name='intermezzi' value='intermezzi'/>
+ <cd:variable name='intermezzo' value='intermezzo'/>
+ <cd:variable name='intext' value='intesto'/>
+ <cd:variable name='intro' value='intro'/>
+ <cd:variable name='italic' value='corsivo'/>
+ <cd:variable name='italicbold' value='corsivograssetto'/>
+ <cd:variable name='item' value='elemento'/>
+ <cd:variable name='itemize' value='elenco'/>
+ <cd:variable name='its' value='its'/>
+ <cd:variable name='january' value='gennaio'/>
+ <cd:variable name='joinedup' value='unito'/>
+ <cd:variable name='july' value='luglio'/>
+ <cd:variable name='june' value='giugno'/>
+ <cd:variable name='keep' value='mantieni'/>
+ <cd:variable name='knockout' value='knockout'/>
+ <cd:variable name='label' value='etichetta'/>
+ <cd:variable name='landscape' value='orizzontale'/>
+ <cd:variable name='last' value='ultimo'/>
+ <cd:variable name='lastcolumn' value='lastcolumn'/>
+ <cd:variable name='lastpage' value='ultimapagina'/>
+ <cd:variable name='lastpagenumber' value='lastpagenumber'/>
+ <cd:variable name='lastsubpage' value='ultimasottopagina'/>
+ <cd:variable name='layer' value='layer'/>
+ <cd:variable name='left' value='sinistra'/>
+ <cd:variable name='leftedge' value='bordosinistro'/>
+ <cd:variable name='lefthanging' value='lefthanging'/>
+ <cd:variable name='leftmargin' value='marginesinistro'/>
+ <cd:variable name='leftpage' value='paginasinistra'/>
+ <cd:variable name='lefttoright' value='lefttoright'/>
+ <cd:variable name='legend' value='legenda'/>
+ <cd:variable name='lesshyphenation' value='lesshyphenation'/>
+ <cd:variable name='line' value='riga'/>
+ <cd:variable name='linenote' value='linenote'/>
+ <cd:variable name='lines' value='righe'/>
+ <cd:variable name='list' value='elenco'/>
+ <cd:variable name='local' value='locale'/>
+ <cd:variable name='localenvironment' value='ambientelocale'/>
+ <cd:variable name='logo' value='logo'/>
+ <cd:variable name='logos' value='loghi'/>
+ <cd:variable name='lohi' value='pedap'/>
+ <cd:variable name='loose' value='lento'/>
+ <cd:variable name='low' value='basso'/>
+ <cd:variable name='ls' value='ls'/>
+ <cd:variable name='makeup' value='makeup'/>
+ <cd:variable name='mar' value='mar'/>
+ <cd:variable name='march' value='marzo'/>
+ <cd:variable name='margin' value='margine'/>
+ <cd:variable name='marginedge' value='bordomargine'/>
+ <cd:variable name='margintitle' value='titoloinmargine'/>
+ <cd:variable name='marking' value='marcatura'/>
+ <cd:variable name='mathalignment' value='mathalignment'/>
+ <cd:variable name='mathcases' value='mathcases'/>
+ <cd:variable name='mathmatrix' value='mathmatrix'/>
+ <cd:variable name='max' value='max'/>
+ <cd:variable name='may' value='maggio'/>
+ <cd:variable name='mediaeval' value='medievale'/>
+ <cd:variable name='medium' value='medio'/>
+ <cd:variable name='middle' value='centro'/>
+ <cd:variable name='min' value='min'/>
+ <cd:variable name='minheight' value='altezzamin'/>
+ <cd:variable name='minwidth' value='ampiezzamin'/>
+ <cd:variable name='mirrored' value='riflesso'/>
+ <cd:variable name='monday' value='lunedi'/>
+ <cd:variable name='mono' value='mono'/>
+ <cd:variable name='month' value='mese'/>
+ <cd:variable name='morehyphenation' value='morehyphenation'/>
+ <cd:variable name='name' value='nome'/>
+ <cd:variable name='narrow' value='stretto'/>
+ <cd:variable name='negative' value='negativo'/>
+ <cd:variable name='never' value='mai'/>
+ <cd:variable name='new' value='nuovo'/>
+ <cd:variable name='next' value='successivo'/>
+ <cd:variable name='nextevenpage' value='paginaparisuccessiva'/>
+ <cd:variable name='nextoddpage' value='paginadisparisuccessiva'/>
+ <cd:variable name='nextpage' value='paginasuccessiva'/>
+ <cd:variable name='nextsubpage' value='sottopaginasuccessiva'/>
+ <cd:variable name='no' value='no'/>
+ <cd:variable name='nocheck' value='nocheck'/>
+ <cd:variable name='nofit' value='nofit'/>
+ <cd:variable name='nogrid' value='nogrid'/>
+ <cd:variable name='nohz' value='nohz'/>
+ <cd:variable name='nomarking' value='nomarcature'/>
+ <cd:variable name='none' value='nessuno'/>
+ <cd:variable name='nonumber' value='nonumber'/>
+ <cd:variable name='normal' value='normale'/>
+ <cd:variable name='nospacing' value='nospacing'/>
+ <cd:variable name='not' value='non'/>
+ <cd:variable name='note' value='note'/>
+ <cd:variable name='nothanging' value='nonsospeso'/>
+ <cd:variable name='nothyphenated' value='nonsillabato'/>
+ <cd:variable name='november' value='novembre'/>
+ <cd:variable name='nowhere' value='danessunaparte'/>
+ <cd:variable name='nowhite' value='nobianco'/>
+ <cd:variable name='number' value='numero'/>
+ <cd:variable name='numbers' value='numeri'/>
+ <cd:variable name='october' value='ottobre'/>
+ <cd:variable name='odd' value='dispari'/>
+ <cd:variable name='off' value='disattivo'/>
+ <cd:variable name='offset' value='offset'/>
+ <cd:variable name='old' value='old'/>
+ <cd:variable name='on' value='attivo'/>
+ <cd:variable name='one' value='uno'/>
+ <cd:variable name='opposite' value='opposto'/>
+ <cd:variable name='outer' value='esterno'/>
+ <cd:variable name='outeredge' value='bordoesterno'/>
+ <cd:variable name='outermargin' value='margineesterno'/>
+ <cd:variable name='overlay' value='sovrapponi'/>
+ <cd:variable name='overprint' value='overprint'/>
+ <cd:variable name='packed' value='impaccato'/>
+ <cd:variable name='page' value='pagina'/>
+ <cd:variable name='pagecomment' value='commentopagina'/>
+ <cd:variable name='pagenumber' value='numeropagina'/>
+ <cd:variable name='paper' value='carta'/>
+ <cd:variable name='paragraph' value='capoverso'/>
+ <cd:variable name='part' value='parte'/>
+ <cd:variable name='positive' value='positivo'/>
+ <cd:variable name='postponing' value='posporre'/>
+ <cd:variable name='postscript' value='postscript'/>
+ <cd:variable name='preference' value='preferenza'/>
+ <cd:variable name='preview' value='anteprima'/>
+ <cd:variable name='previous' value='precedente'/>
+ <cd:variable name='previousevenpage' value='paginapariprecedente'/>
+ <cd:variable name='previousoddpage' value='paginadispariprecedente'/>
+ <cd:variable name='previouspage' value='paginaprecedente'/>
+ <cd:variable name='previoussubpage' value='sottopaginaprecedente'/>
+ <cd:variable name='printable' value='stampabile'/>
+ <cd:variable name='process' value='process'/>
+ <cd:variable name='product' value='prodotto'/>
+ <cd:variable name='program' value='programma'/>
+ <cd:variable name='project' value='progetto'/>
+ <cd:variable name='protected' value='protetto'/>
+ <cd:variable name='quadruple' value='quadruplo'/>
+ <cd:variable name='quotation' value='citazione'/>
+ <cd:variable name='quote' value='menzione'/>
+ <cd:variable name='ran' value='corse'/>
+ <cd:variable name='random' value='casuale'/>
+ <cd:variable name='readonly' value='solalettura'/>
+ <cd:variable name='rectangular' value='rettangolare'/>
+ <cd:variable name='referral' value='referral'/>
+ <cd:variable name='register' value='registro'/>
+ <cd:variable name='regular' value='regolare'/>
+ <cd:variable name='rekening' value='rekening'/>
+ <cd:variable name='relative' value='relativo'/>
+ <cd:variable name='repeat' value='ripeti'/>
+ <cd:variable name='required' value='richiestp'/>
+ <cd:variable name='reset' value='reimposta'/>
+ <cd:variable name='reverse' value='invertito'/>
+ <cd:variable name='right' value='destra'/>
+ <cd:variable name='rightedge' value='bordodestro'/>
+ <cd:variable name='righthanging' value='righthanging'/>
+ <cd:variable name='rightmargin' value='marginedestro'/>
+ <cd:variable name='rightpage' value='paginadestra'/>
+ <cd:variable name='righttoleft' value='righttoleft'/>
+ <cd:variable name='roman' value='roman'/>
+ <cd:variable name='romannumerals' value='numeriromani'/>
+ <cd:variable name='rotate' value='ruota'/>
+ <cd:variable name='rotated' value='ruotato'/>
+ <cd:variable name='round' value='rotondo'/>
+ <cd:variable name='row' value='row'/>
+ <cd:variable name='rule' value='linea'/>
+ <cd:variable name='samepage' value='stessapagina'/>
+ <cd:variable name='sans' value='sans'/>
+ <cd:variable name='sansbold' value='sansgrassetto'/>
+ <cd:variable name='sansserif' value='sansserif'/>
+ <cd:variable name='saturday' value='sabato'/>
+ <cd:variable name='screen' value='schermo'/>
+ <cd:variable name='section' value='capoverso'/>
+ <cd:variable name='sectionblockenvironment' value='ambientebloccosezione'/>
+ <cd:variable name='sectionnumber' value='numerosezione'/>
+ <cd:variable name='see' value='vedi'/>
+ <cd:variable name='september' value='settembre'/>
+ <cd:variable name='serif' value='serif'/>
+ <cd:variable name='serried' value='vicino'/>
+ <cd:variable name='setups' value='nastaveni'/>
+ <cd:variable name='sheet' value='sheet'/>
+ <cd:variable name='singlesided' value='facciasingola'/>
+ <cd:variable name='slanted' value='inclinato'/>
+ <cd:variable name='slantedbold' value='inclinatograssetto'/>
+ <cd:variable name='small' value='piccolo'/>
+ <cd:variable name='smallbodyfont' value='piccolofontdelcorpo'/>
+ <cd:variable name='smallbold' value='piccolograssetto'/>
+ <cd:variable name='smallbolditalic' value='piccolograssettocorsivo'/>
+ <cd:variable name='smallboldslanted' value='piccolograssettoinclinato'/>
+ <cd:variable name='smallcaps' value='maiuscoletto'/>
+ <cd:variable name='smallitalic' value='piccolocorsivo'/>
+ <cd:variable name='smallitalicbold' value='piccolocorsivograssetto'/>
+ <cd:variable name='smallnormal' value='piccolonormale'/>
+ <cd:variable name='smallslanted' value='piccoloinclinato'/>
+ <cd:variable name='smallslantedbold' value='piccoloinclinatograssetto'/>
+ <cd:variable name='smalltype' value='piccolotype'/>
+ <cd:variable name='somewhere' value='daqualcheparte'/>
+ <cd:variable name='sorted' value='ordinato'/>
+ <cd:variable name='space' value='spazio'/>
+ <cd:variable name='spacing' value='spaziatura'/>
+ <cd:variable name='speech' value='speech'/>
+ <cd:variable name='split' value='separa'/>
+ <cd:variable name='spot' value='spot'/>
+ <cd:variable name='standard' value='standard'/>
+ <cd:variable name='start' value='inizia'/>
+ <cd:variable name='sticker' value='sticker'/>
+ <cd:variable name='stop' value='termina'/>
+ <cd:variable name='stopper' value='stopper'/>
+ <cd:variable name='stretch' value='dilata'/>
+ <cd:variable name='strict' value='rigido'/>
+ <cd:variable name='strong' value='strong'/>
+ <cd:variable name='strut' value='strut'/>
+ <cd:variable name='sub' value='sotto'/>
+ <cd:variable name='subbackward' value='sottoindietro'/>
+ <cd:variable name='subformula' value='subformula'/>
+ <cd:variable name='subforward' value='sottoavanti'/>
+ <cd:variable name='subject' value='argomento'/>
+ <cd:variable name='subpage' value='sottopagina'/>
+ <cd:variable name='subsection' value='sottocapoverso'/>
+ <cd:variable name='subsubject' value='sottoargomento'/>
+ <cd:variable name='subsubsection' value='sottosottocapoverso'/>
+ <cd:variable name='subsubsubject' value='sottosottoargomento'/>
+ <cd:variable name='subsubsubsection' value='sottosottosottocapoverso'/>
+ <cd:variable name='subsubsubsubject' value='sottosottosottoargomento'/>
+ <cd:variable name='subsubsubsubsection' value='sottosottosottosottocapoverso'/>
+ <cd:variable name='subsubsubsubsubject' value='sottosottosottosottoargomento'/>
+ <cd:variable name='subsubsubsubsubsection' value='sottosottosottosottosottocapoverso'/>
+ <cd:variable name='subsubsubsubsubsubject' value='sottosottosottosottosottoargomento'/>
+ <cd:variable name='subsubsubsubsubsubsection' value='sottosottosottosottosottosottocapoverso'/>
+ <cd:variable name='subsubsubsubsubsubsubject' value='sottosottosottosottosottosottoargomento'/>
+ <cd:variable name='subsubsubsubsubsubsubsection' value='sottosottosottosottosottosottosottocapoverso'/>
+ <cd:variable name='subsubsubsubsubsubsubsubject' value='sottosottosottosottosottosottosottoargomento'/>
+ <cd:variable name='subsubsubsubsubsubsubsubsection' value='sottosottosottosottosottosottosottosottocapoverso'/>
+ <cd:variable name='subsubsubsubsubsubsubsubsubject' value='sottosottosottosottosottosottosottosottoargomento'/>
+ <cd:variable name='subsubsubsubsubsubsubsubsubsection' value='sottosottosottosottosottosottosottosottosottocapoverso'/>
+ <cd:variable name='subsubsubsubsubsubsubsubsubsubject' value='sottosottosottosottosottosottosottosottosottoargomento'/>
+ <cd:variable name='sunday' value='domenica'/>
+ <cd:variable name='support' value='supporto'/>
+ <cd:variable name='sym' value='sim'/>
+ <cd:variable name='symbol' value='simbolo'/>
+ <cd:variable name='synchronize' value='synchronize'/>
+ <cd:variable name='system' value='sistema'/>
+ <cd:variable name='table' value='tabella'/>
+ <cd:variable name='tablehead' value='testatabella'/>
+ <cd:variable name='tables' value='tabelle'/>
+ <cd:variable name='tabletail' value='codatabella'/>
+ <cd:variable name='tabulate' value='tabulato'/>
+ <cd:variable name='tabulatehead' value='testatabulato'/>
+ <cd:variable name='tabulatetail' value='codatabulato'/>
+ <cd:variable name='tall' value='alto'/>
+ <cd:variable name='teletype' value='teletype'/>
+ <cd:variable name='temporary' value='temporaneo'/>
+ <cd:variable name='test' value='test'/>
+ <cd:variable name='text' value='testo'/>
+ <cd:variable name='three' value='tre'/>
+ <cd:variable name='thursday' value='giovedi'/>
+ <cd:variable name='title' value='titolo'/>
+ <cd:variable name='toggle' value='toggle'/>
+ <cd:variable name='tolerant' value='tollerante'/>
+ <cd:variable name='top' value='cima'/>
+ <cd:variable name='tuesday' value='martedi'/>
+ <cd:variable name='two' value='due'/>
+ <cd:variable name='txt' value='txt'/>
+ <cd:variable name='type' value='type'/>
+ <cd:variable name='typing' value='typing'/>
+ <cd:variable name='unavailable' value='nondisponibile'/>
+ <cd:variable name='unit' value='unita'/>
+ <cd:variable name='units' value='unita'/>
+ <cd:variable name='unknown' value='ignoto'/>
+ <cd:variable name='unpacked' value='unpacked'/>
+ <cd:variable name='url' value='url'/>
+ <cd:variable name='used' value='usato'/>
+ <cd:variable name='value' value='valore'/>
+ <cd:variable name='vertical' value='verticale'/>
+ <cd:variable name='very' value='molto'/>
+ <cd:variable name='verystrict' value='moltorigido'/>
+ <cd:variable name='verytolerant' value='moltotollerante'/>
+ <cd:variable name='weak' value='weak'/>
+ <cd:variable name='wednesday' value='mercoledi'/>
+ <cd:variable name='week' value='settimana'/>
+ <cd:variable name='weekday' value='giornosettimana'/>
+ <cd:variable name='white' value='bianco'/>
+ <cd:variable name='wide' value='ampio'/>
+ <cd:variable name='width' value='ampiezza'/>
+ <cd:variable name='xml' value='xml'/>
+ <cd:variable name='year' value='anno'/>
+ <cd:variable name='yes' value='si'/>
+ </cd:variable>
- <cd:variables>
- <cd:variable name="environment" value="ambiente"/>
- <cd:variable name="component" value="componente"/>
- <cd:variable name="product" value="prodotto"/>
- <cd:variable name="project" value="progetto"/>
- </cd:variables>
+ <!-- definitions for interface constants for language it -->
- <cd:variables>
- <cd:variable name="sunday" value="domenica"/>
- <cd:variable name="monday" value="lunedi"/>
- <cd:variable name="tuesday" value="martedi"/>
- <cd:variable name="wednesday" value="mercoledi"/>
- <cd:variable name="thursday" value="giovedi"/>
- <cd:variable name="friday" value="venerdi"/>
- <cd:variable name="saturday" value="sabato"/>
- </cd:variables>
+ <cd:constants>
+ <cd:constant name='action' value='azione'/>
+ <cd:constant name='address' value='indirizzo'/>
+ <cd:constant name='after' value='dopo'/>
+ <cd:constant name='afterhead' value='dopotesta'/>
+ <cd:constant name='afterkey' value='dopotasto'/>
+ <cd:constant name='align' value='allinea'/>
+ <cd:constant name='aligncharacter' value='allineacarattere'/>
+ <cd:constant name='alignmentcharacter' value='carattereallineamento'/>
+ <cd:constant name='aligntitle' value='allineatitolo'/>
+ <cd:constant name='alternative' value='alternativa'/>
+ <cd:constant name='apa' value='apa'/>
+ <cd:constant name='arrow' value='freccia'/>
+ <cd:constant name='at' value='ad'/>
+ <cd:constant name='author' value='autore'/>
+ <cd:constant name='auto' value='auto'/>
+ <cd:constant name='autofile' value='autofile'/>
+ <cd:constant name='autofocus' value='autofocus'/>
+ <cd:constant name='autohang' value='autohang'/>
+ <cd:constant name='autostrut' value='autostrut'/>
+ <cd:constant name='autowidth' value='autoampiezza'/>
+ <cd:constant name='axis' value='asse'/>
+ <cd:constant name='background' value='sfondo'/>
+ <cd:constant name='backgroundcolor' value='coloresfondo'/>
+ <cd:constant name='backgroundcorner' value='angolosfondo'/>
+ <cd:constant name='backgrounddepth' value='profonditasfondo'/>
+ <cd:constant name='backgroundoffset' value='offsetsfondo'/>
+ <cd:constant name='backgroundradius' value='raggiosfondo'/>
+ <cd:constant name='backgroundscreen' value='schermosfondo'/>
+ <cd:constant name='backspace' value='backspace'/>
+ <cd:constant name='balance' value='bilanciamento'/>
+ <cd:constant name='before' value='prima'/>
+ <cd:constant name='beforehead' value='primaditesta'/>
+ <cd:constant name='bet' value='bet'/>
+ <cd:constant name='big' value='grande'/>
+ <cd:constant name='blank' value='rigovuoto'/>
+ <cd:constant name='blockway' value='blockway'/>
+ <cd:constant name='bodyfont' value='fonttesto'/>
+ <cd:constant name='bookmark' value='segnalibro'/>
+ <cd:constant name='bottom' value='fondo'/>
+ <cd:constant name='bottomafter' value='bottomafter'/>
+ <cd:constant name='bottombefore' value='bottombefore'/>
+ <cd:constant name='bottomdistance' value='distanzafondo'/>
+ <cd:constant name='bottomframe' value='cornicefondo'/>
+ <cd:constant name='bottomoffset' value='offsetfondo'/>
+ <cd:constant name='bottomspace' value='spaziofondo'/>
+ <cd:constant name='bottomstate' value='statofondo'/>
+ <cd:constant name='cache' value='cache'/>
+ <cd:constant name='calculate' value='calcola'/>
+ <cd:constant name='ccommand' value='ccomando'/>
+ <cd:constant name='click' value='click'/>
+ <cd:constant name='clickin' value='clickdentro'/>
+ <cd:constant name='clickout' value='clickfuori'/>
+ <cd:constant name='clipoffset' value='clipoffset'/>
+ <cd:constant name='closeaction' value='azionechiudi'/>
+ <cd:constant name='closecommand' value='closecommand'/>
+ <cd:constant name='closepageaction' value='azionechiudipagina'/>
+ <cd:constant name='closesymbol' value='closesymbol'/>
+ <cd:constant name='color' value='colore'/>
+ <cd:constant name='column' value='colonna'/>
+ <cd:constant name='columndistance' value='distanzacolonne'/>
+ <cd:constant name='columns' value='colonne'/>
+ <cd:constant name='command' value='comando'/>
+ <cd:constant name='commandafter' value='comdandodopo'/>
+ <cd:constant name='commandbefore' value='comandoprima'/>
+ <cd:constant name='commands' value='comandi'/>
+ <cd:constant name='component' value='component'/>
+ <cd:constant name='compoundhyphen' value='compoundhyphen'/>
+ <cd:constant name='compress' value='compress'/>
+ <cd:constant name='connector' value='connector'/>
+ <cd:constant name='continue' value='continua'/>
+ <cd:constant name='contrastcolor' value='colorecontrasto'/>
+ <cd:constant name='controls' value='controlli'/>
+ <cd:constant name='conversion' value='conversione'/>
+ <cd:constant name='convertfile' value='convertifile'/>
+ <cd:constant name='corner' value='angolo'/>
+ <cd:constant name='coupling' value='accoppiamento'/>
+ <cd:constant name='couplingway' value='modoaccoppiamento'/>
+ <cd:constant name='criterium' value='criterio'/>
+ <cd:constant name='current' value='corrente'/>
+ <cd:constant name='cutspace' value='cutspace'/>
+ <cd:constant name='dash' value='dash'/>
+ <cd:constant name='dat' value='dat'/>
+ <cd:constant name='date' value='data'/>
+ <cd:constant name='deepnumbercommand' value='deepnumbercommand'/>
+ <cd:constant name='deeptextcommand' value='deeptextcommand'/>
+ <cd:constant name='default' value='implicito'/>
+ <cd:constant name='delay' value='attesa'/>
+ <cd:constant name='depth' value='profondita'/>
+ <cd:constant name='depthcorrection' value='correzioneprofondita'/>
+ <cd:constant name='direction' value='direzione'/>
+ <cd:constant name='directory' value='directory'/>
+ <cd:constant name='display' value='display'/>
+ <cd:constant name='distance' value='distanza'/>
+ <cd:constant name='dot' value='punto'/>
+ <cd:constant name='doublesided' value='doppiafaccia'/>
+ <cd:constant name='dummy' value='dummy'/>
+ <cd:constant name='dx' value='dx'/>
+ <cd:constant name='dy' value='dy'/>
+ <cd:constant name='edge' value='bordo'/>
+ <cd:constant name='edgedistance' value='distanzabordo'/>
+ <cd:constant name='empty' value='vuoto'/>
+ <cd:constant name='equalheight' value='equalheight'/>
+ <cd:constant name='equalwidth' value='equalwidth'/>
+ <cd:constant name='escape' value='escape'/>
+ <cd:constant name='evenmargin' value='marginepari'/>
+ <cd:constant name='expansion' value='espansione'/>
+ <cd:constant name='extras' value='extras'/>
+ <cd:constant name='factor' value='fattore'/>
+ <cd:constant name='fallback' value='fallback'/>
+ <cd:constant name='family' value='famiglia'/>
+ <cd:constant name='fieldbackgroundcolor' value='coloresfondocampo'/>
+ <cd:constant name='fieldframecolor' value='colorecornicecampo'/>
+ <cd:constant name='fieldlayer' value='fieldlayer'/>
+ <cd:constant name='fieldoffset' value='offsetcampo'/>
+ <cd:constant name='file' value='file'/>
+ <cd:constant name='filtercommand' value='filtercommand'/>
+ <cd:constant name='focus' value='focus'/>
+ <cd:constant name='focusin' value='focusin'/>
+ <cd:constant name='focusout' value='focusout'/>
+ <cd:constant name='footer' value='piedipagina'/>
+ <cd:constant name='footerdistance' value='distanzapdp'/>
+ <cd:constant name='footerstate' value='statopdp'/>
+ <cd:constant name='foregroundcolor' value='coloreprimopiano'/>
+ <cd:constant name='foregroundstyle' value='foregroundstyle'/>
+ <cd:constant name='format' value='format'/>
+ <cd:constant name='frame' value='cornice'/>
+ <cd:constant name='framecolor' value='colorecornice'/>
+ <cd:constant name='framecorner' value='angolocornice'/>
+ <cd:constant name='framedepth' value='profonditacornice'/>
+ <cd:constant name='frameoffset' value='offsetcornice'/>
+ <cd:constant name='frameradius' value='raggiocornice'/>
+ <cd:constant name='frames' value='cornici'/>
+ <cd:constant name='from' value='da'/>
+ <cd:constant name='get' value='prendi'/>
+ <cd:constant name='global' value='globale'/>
+ <cd:constant name='grid' value='griglia'/>
+ <cd:constant name='hang' value='sospendi'/>
+ <cd:constant name='headcolor' value='coloretesta'/>
+ <cd:constant name='headcommand' value='headcommand'/>
+ <cd:constant name='headconversion' value='conversionetesta'/>
+ <cd:constant name='header' value='intestazione'/>
+ <cd:constant name='headerdistance' value='distanzaintestazione'/>
+ <cd:constant name='headerstate' value='statointestazione'/>
+ <cd:constant name='headlabel' value='etichettatesta'/>
+ <cd:constant name='headnumber' value='numerotesta'/>
+ <cd:constant name='headstyle' value='stiletesta'/>
+ <cd:constant name='height' value='altezza'/>
+ <cd:constant name='hfactor' value='hfactor'/>
+ <cd:constant name='hfil' value='hfil'/>
+ <cd:constant name='hidenumber' value='hidenumber'/>
+ <cd:constant name='hoffset' value='hoffset'/>
+ <cd:constant name='horoffset' value='horoffset'/>
+ <cd:constant name='hyphen' value='hyphen'/>
+ <cd:constant name='icommand' value='icomando'/>
+ <cd:constant name='in' value='in'/>
+ <cd:constant name='inbetween' value='tra'/>
+ <cd:constant name='increment' value='incremento'/>
+ <cd:constant name='incrementnumber' value='incrementanumero'/>
+ <cd:constant name='indenting' value='rientro'/>
+ <cd:constant name='indentnext' value='rientrasuccessivo'/>
+ <cd:constant name='indicator' value='indicatore'/>
+ <cd:constant name='inner' value='interno'/>
+ <cd:constant name='innermargin' value='margineinterno'/>
+ <cd:constant name='inputfile' value='inputfile'/>
+ <cd:constant name='interaction' value='interazione'/>
+ <cd:constant name='interlinespace' value='interlinea'/>
+ <cd:constant name='itemalign' value='itemalign'/>
+ <cd:constant name='items' value='elementi'/>
+ <cd:constant name='ken' value='ken'/>
+ <cd:constant name='keyexpansion' value='keyexpansion'/>
+ <cd:constant name='keyword' value='parolachiave'/>
+ <cd:constant name='label' value='etichetta'/>
+ <cd:constant name='left' value='sinistra'/>
+ <cd:constant name='leftcolor' value='coloresinistra'/>
+ <cd:constant name='leftcompoundhyphen' value='leftcompoundhyphen'/>
+ <cd:constant name='leftedge' value='bordosinistro'/>
+ <cd:constant name='leftedgedistance' value='distanzabordosinistro'/>
+ <cd:constant name='leftframe' value='cornicesinistra'/>
+ <cd:constant name='lefthyphen' value='lefthyphen'/>
+ <cd:constant name='leftmargin' value='marginesinistro'/>
+ <cd:constant name='leftmargindistance' value='distanzamarginesinistro'/>
+ <cd:constant name='leftoffset' value='offsetsinistro'/>
+ <cd:constant name='leftquotation' value='citazionesinistra'/>
+ <cd:constant name='leftquote' value='menzionesinistra'/>
+ <cd:constant name='leftsentence' value='frasesinistra'/>
+ <cd:constant name='leftspeech' value='leftspeech'/>
+ <cd:constant name='leftstyle' value='stilesinistra'/>
+ <cd:constant name='leftsubsentence' value='sottofrasesinistra'/>
+ <cd:constant name='lefttext' value='testosinistro'/>
+ <cd:constant name='leftwidth' value='ampiezzasinistra'/>
+ <cd:constant name='level' value='livello'/>
+ <cd:constant name='levels' value='livelli'/>
+ <cd:constant name='limittext' value='limittext'/>
+ <cd:constant name='line' value='riga'/>
+ <cd:constant name='linecorrection' value='correzioneriga'/>
+ <cd:constant name='lines' value='righe'/>
+ <cd:constant name='list' value='elenco'/>
+ <cd:constant name='listtext' value='listtext'/>
+ <cd:constant name='local' value='locale'/>
+ <cd:constant name='location' value='luogo'/>
+ <cd:constant name='logo' value='logo'/>
+ <cd:constant name='logos' value='loghi'/>
+ <cd:constant name='marcolor' value='coloremarcatura'/>
+ <cd:constant name='margin' value='margine'/>
+ <cd:constant name='margindistance' value='distanzamargine'/>
+ <cd:constant name='marginedge' value='bordomargine'/>
+ <cd:constant name='marginedgetext' value='testobordomargine'/>
+ <cd:constant name='margintext' value='testomargine'/>
+ <cd:constant name='marking' value='marcatura'/>
+ <cd:constant name='marstyle' value='stilemarcatura'/>
+ <cd:constant name='max' value='max'/>
+ <cd:constant name='maxheight' value='altezzamax'/>
+ <cd:constant name='maxwidth' value='ampiezzamax'/>
+ <cd:constant name='menu' value='menu'/>
+ <cd:constant name='method' value='metodo'/>
+ <cd:constant name='middle' value='centro'/>
+ <cd:constant name='middlespeech' value='middlespeech'/>
+ <cd:constant name='middletext' value='testocentro'/>
+ <cd:constant name='midsentence' value='midsentence'/>
+ <cd:constant name='min' value='min'/>
+ <cd:constant name='mindepth' value='mindeoth'/>
+ <cd:constant name='minheight' value='altezzamin'/>
+ <cd:constant name='minwidth' value='ampiezzamin'/>
+ <cd:constant name='n' value='n'/>
+ <cd:constant name='name' value='nome'/>
+ <cd:constant name='nbottom' value='nfondo'/>
+ <cd:constant name='nc' value='nc'/>
+ <cd:constant name='next' value='successivo'/>
+ <cd:constant name='nl' value='nl'/>
+ <cd:constant name='nleft' value='nsinistra'/>
+ <cd:constant name='nlines' value='nrighe'/>
+ <cd:constant name='norm' value='norma'/>
+ <cd:constant name='nr' value='nr'/>
+ <cd:constant name='nright' value='ndestra'/>
+ <cd:constant name='ntop' value='ncima'/>
+ <cd:constant name='number' value='numero'/>
+ <cd:constant name='numbercolor' value='colorenumero'/>
+ <cd:constant name='numbercommand' value='comandonumero'/>
+ <cd:constant name='numberconversion' value='numberconversion'/>
+ <cd:constant name='numberconversionset' value='numberconversionset'/>
+ <cd:constant name='numberdistance' value='numberdistance'/>
+ <cd:constant name='numbering' value='numerazione'/>
+ <cd:constant name='numberorder' value='numberorder'/>
+ <cd:constant name='numberprefix' value='numberprefix'/>
+ <cd:constant name='numbersegments' value='numbersegments'/>
+ <cd:constant name='numberseparator' value='separatorenumero'/>
+ <cd:constant name='numberseparatorset' value='numberseparatorset'/>
+ <cd:constant name='numberset' value='numberset'/>
+ <cd:constant name='numberstopper' value='numberstopper'/>
+ <cd:constant name='numberstyle' value='stilenumero'/>
+ <cd:constant name='numberwidth' value='numberwidth'/>
+ <cd:constant name='nx' value='nx'/>
+ <cd:constant name='ny' value='ny'/>
+ <cd:constant name='object' value='oggetto'/>
+ <cd:constant name='obstruction' value='ostruzione'/>
+ <cd:constant name='oddmargin' value='marginedispari'/>
+ <cd:constant name='offset' value='offset'/>
+ <cd:constant name='openaction' value='azioneapri'/>
+ <cd:constant name='openpageaction' value='azioneapripagina'/>
+ <cd:constant name='option' value='opzione'/>
+ <cd:constant name='orientation' value='orientation'/>
+ <cd:constant name='outermargin' value='margineesterno'/>
+ <cd:constant name='overprint' value='overprint'/>
+ <cd:constant name='ownnumber' value='numeroproprio'/>
+ <cd:constant name='page' value='pagina'/>
+ <cd:constant name='pageboundaries' value='limitipagina'/>
+ <cd:constant name='pagecolor' value='colorepagina'/>
+ <cd:constant name='pagecommand' value='comandopagina'/>
+ <cd:constant name='pageconversion' value='pageconversion'/>
+ <cd:constant name='pageconversionset' value='pageconversionset'/>
+ <cd:constant name='pagenumber' value='numeropagina'/>
+ <cd:constant name='pageprefix' value='pageprefix'/>
+ <cd:constant name='pageprefixconnector' value='pageprefixconnector'/>
+ <cd:constant name='pageprefixconversion' value='pageprefixconversion'/>
+ <cd:constant name='pageprefixconversionset' value='pageprefixconversionset'/>
+ <cd:constant name='pageprefixsegments' value='pageprefixsegments'/>
+ <cd:constant name='pageprefixseparatorset' value='pageprefixseparatorset'/>
+ <cd:constant name='pageprefixset' value='pageprefixset'/>
+ <cd:constant name='pageprefixstopper' value='pageprefixstopper'/>
+ <cd:constant name='pagesegments' value='pagesegments'/>
+ <cd:constant name='pageseparatorset' value='pageseparatorset'/>
+ <cd:constant name='pageset' value='pageset'/>
+ <cd:constant name='pagestate' value='statopagina'/>
+ <cd:constant name='pagestopper' value='pagestopper'/>
+ <cd:constant name='pagestyle' value='stilepagina'/>
+ <cd:constant name='palet' value='tavolozza'/>
+ <cd:constant name='paper' value='carta'/>
+ <cd:constant name='paragraph' value='capoverso'/>
+ <cd:constant name='place' value='metti'/>
+ <cd:constant name='placehead' value='mettitesta'/>
+ <cd:constant name='placestopper' value='mettistopper'/>
+ <cd:constant name='position' value='posizione'/>
+ <cd:constant name='prefix' value='prefisso'/>
+ <cd:constant name='prefixconnector' value='prefixconnector'/>
+ <cd:constant name='prefixconversion' value='prefixconversion'/>
+ <cd:constant name='prefixconversionset' value='prefixconversionset'/>
+ <cd:constant name='prefixsegments' value='prefixsegments'/>
+ <cd:constant name='prefixseparatorset' value='prefixseparatorset'/>
+ <cd:constant name='prefixset' value='prefixset'/>
+ <cd:constant name='prefixstopper' value='prefixstopper'/>
+ <cd:constant name='preset' value='preimpostato'/>
+ <cd:constant name='preview' value='anteprima'/>
+ <cd:constant name='previous' value='precedente'/>
+ <cd:constant name='previousnumber' value='numeroprecedente'/>
+ <cd:constant name='process' value='process'/>
+ <cd:constant name='radius' value='raggio'/>
+ <cd:constant name='random' value='casuale'/>
+ <cd:constant name='reduction' value='riduzione'/>
+ <cd:constant name='ref' value='ref'/>
+ <cd:constant name='reference' value='riferimento'/>
+ <cd:constant name='referenceprefix' value='referenceprefix'/>
+ <cd:constant name='referencing' value='referencing'/>
+ <cd:constant name='regionin' value='entraregione'/>
+ <cd:constant name='regionout' value='esciregione'/>
+ <cd:constant name='repeat' value='ripeti'/>
+ <cd:constant name='reset' value='reset'/>
+ <cd:constant name='resetnumber' value='resetnumber'/>
+ <cd:constant name='resolution' value='risoluzione'/>
+ <cd:constant name='right' value='destra'/>
+ <cd:constant name='rightcolor' value='coloredestra'/>
+ <cd:constant name='rightcompoundhyphen' value='rightcompoundhyphen'/>
+ <cd:constant name='rightedge' value='bordodestro'/>
+ <cd:constant name='rightedgedistance' value='distanzabordodestro'/>
+ <cd:constant name='rightframe' value='cornicedestra'/>
+ <cd:constant name='righthyphen' value='righthyphen'/>
+ <cd:constant name='rightmargin' value='marginedestro'/>
+ <cd:constant name='rightmargindistance' value='distanzamarginedestro'/>
+ <cd:constant name='rightoffset' value='offsetdestro'/>
+ <cd:constant name='rightquotation' value='citazionedestra'/>
+ <cd:constant name='rightquote' value='menzionedestra'/>
+ <cd:constant name='rightsentence' value='frasedestra'/>
+ <cd:constant name='rightspeech' value='rightspeech'/>
+ <cd:constant name='rightstyle' value='stiledestra'/>
+ <cd:constant name='rightsubsentence' value='sottofrasedestra'/>
+ <cd:constant name='righttext' value='testodestro'/>
+ <cd:constant name='rightwidth' value='ampiezzadestra'/>
+ <cd:constant name='rotation' value='rotazione'/>
+ <cd:constant name='rule' value='linea'/>
+ <cd:constant name='rulecolor' value='colorelinea'/>
+ <cd:constant name='rulethickness' value='spessorelinea'/>
+ <cd:constant name='samepage' value='stessapagina'/>
+ <cd:constant name='sample' value='campione'/>
+ <cd:constant name='saveinlist' value='saveinlist'/>
+ <cd:constant name='scale' value='scala'/>
+ <cd:constant name='scope' value='scope'/>
+ <cd:constant name='screen' value='schermo'/>
+ <cd:constant name='section' value='sezione'/>
+ <cd:constant name='sectionconversion' value='sectionconversion'/>
+ <cd:constant name='sectionconversionset' value='sectionconversionset'/>
+ <cd:constant name='sectionnumber' value='numerosezione'/>
+ <cd:constant name='sectionresetset' value='sectionresetset'/>
+ <cd:constant name='sectionsegments' value='sectionsegments'/>
+ <cd:constant name='sectionseparatorset' value='sectionseparatorset'/>
+ <cd:constant name='sectionset' value='sectionset'/>
+ <cd:constant name='sectionstopper' value='sectionstopper'/>
+ <cd:constant name='separator' value='separatore'/>
+ <cd:constant name='set' value='set'/>
+ <cd:constant name='setups' value='setups'/>
+ <cd:constant name='side' value='lato'/>
+ <cd:constant name='sidealign' value='sidealign'/>
+ <cd:constant name='sidemethod' value='sidemethod'/>
+ <cd:constant name='sidespaceafter' value='spaziolateraledopo'/>
+ <cd:constant name='sidespacebefore' value='spaziolateraleprima'/>
+ <cd:constant name='sign' value='segno'/>
+ <cd:constant name='size' value='dimensione'/>
+ <cd:constant name='small' value='piccolo'/>
+ <cd:constant name='sorttype' value='sorttype'/>
+ <cd:constant name='source' value='origine'/>
+ <cd:constant name='space' value='spazio'/>
+ <cd:constant name='spaceafter' value='spaziodopo'/>
+ <cd:constant name='spacebefore' value='spazioprima'/>
+ <cd:constant name='spaceinbetween' value='spaceinbetween'/>
+ <cd:constant name='spacing' value='spaziatura'/>
+ <cd:constant name='split' value='separa'/>
+ <cd:constant name='splitcolor' value='splitcolor'/>
+ <cd:constant name='splitmethod' value='splitmethod'/>
+ <cd:constant name='splitoffset' value='splitoffset'/>
+ <cd:constant name='spot' value='spot'/>
+ <cd:constant name='stack' value='stack'/>
+ <cd:constant name='start' value='inizia'/>
+ <cd:constant name='state' value='stato'/>
+ <cd:constant name='step' value='passo'/>
+ <cd:constant name='stop' value='termina'/>
+ <cd:constant name='stopper' value='stopper'/>
+ <cd:constant name='stretch' value='dilata'/>
+ <cd:constant name='strut' value='strut'/>
+ <cd:constant name='style' value='stile'/>
+ <cd:constant name='sub' value='sotto'/>
+ <cd:constant name='subtitle' value='sottotitolo'/>
+ <cd:constant name='suffix' value='suffix'/>
+ <cd:constant name='sx' value='sx'/>
+ <cd:constant name='sy' value='sy'/>
+ <cd:constant name='symalign' value='symallinea'/>
+ <cd:constant name='symbol' value='simbolo'/>
+ <cd:constant name='symbolset' value='setsimboli'/>
+ <cd:constant name='symcolor' value='coloresimbolo'/>
+ <cd:constant name='symstyle' value='stilesimbolo'/>
+ <cd:constant name='synonym' value='sinonimo'/>
+ <cd:constant name='synonymcolor' value='coloresinonimi'/>
+ <cd:constant name='synonymcommand' value='synonymcommand'/>
+ <cd:constant name='synonymstyle' value='stilesinonimi'/>
+ <cd:constant name='tab' value='tab'/>
+ <cd:constant name='text' value='testo'/>
+ <cd:constant name='textcolor' value='coloretesto'/>
+ <cd:constant name='textcommand' value='comandotesto'/>
+ <cd:constant name='textdistance' value='distanzatesto'/>
+ <cd:constant name='textlayer' value='textlayer'/>
+ <cd:constant name='textmargin' value='textmargin'/>
+ <cd:constant name='textmethod' value='textmethod'/>
+ <cd:constant name='textseparator' value='separatoretesto'/>
+ <cd:constant name='textsize' value='dimensionetesto'/>
+ <cd:constant name='textstate' value='statotesto'/>
+ <cd:constant name='textstyle' value='stiletesto'/>
+ <cd:constant name='textwidth' value='ampiezzatesto'/>
+ <cd:constant name='title' value='titolo'/>
+ <cd:constant name='titlecolor' value='coloretitolo'/>
+ <cd:constant name='titlecommand' value='titlecommand'/>
+ <cd:constant name='titledistance' value='distanzatitolo'/>
+ <cd:constant name='titleleft' value='titleleft'/>
+ <cd:constant name='titleright' value='titleright'/>
+ <cd:constant name='titlestyle' value='stiletitolo'/>
+ <cd:constant name='to' value='verso'/>
+ <cd:constant name='tolerance' value='tolleranza'/>
+ <cd:constant name='top' value='cima'/>
+ <cd:constant name='topdistance' value='distanzacima'/>
+ <cd:constant name='topframe' value='cornicecima'/>
+ <cd:constant name='topoffset' value='offsetcima'/>
+ <cd:constant name='topspace' value='spaziocima'/>
+ <cd:constant name='topstate' value='statocima'/>
+ <cd:constant name='type' value='type'/>
+ <cd:constant name='unit' value='unita'/>
+ <cd:constant name='unknownreference' value='riferimentoingoto'/>
+ <cd:constant name='urlalternative' value='alternativaurl'/>
+ <cd:constant name='urlspace' value='spaziourl'/>
+ <cd:constant name='validate' value='verifica'/>
+ <cd:constant name='vcommand' value='vcomando'/>
+ <cd:constant name='veroffset' value='veroffset'/>
+ <cd:constant name='vfil' value='vfil'/>
+ <cd:constant name='voffset' value='voffset'/>
+ <cd:constant name='way' value='modo'/>
+ <cd:constant name='wfactor' value='wfactor'/>
+ <cd:constant name='white' value='bianco'/>
+ <cd:constant name='width' value='ampiezza'/>
+ <cd:constant name='xfactor' value='xfactor'/>
+ <cd:constant name='xmax' value='xmax'/>
+ <cd:constant name='xoffset' value='xoffset'/>
+ <cd:constant name='xscale' value='xscale'/>
+ <cd:constant name='xstep' value='xstep'/>
+ <cd:constant name='yfactor' value='yfactor'/>
+ <cd:constant name='ymax' value='ymax'/>
+ <cd:constant name='yoffset' value='yoffset'/>
+ <cd:constant name='yscale' value='yscale'/>
+ <cd:constant name='ystep' value='ystep'/>
+ </cd:constant>
- <cd:variables>
- <cd:variable name="january" value="gennaio"/>
- <cd:variable name="february" value="febbraio"/>
- <cd:variable name="march" value="marzo"/>
- <cd:variable name="april" value="aprile"/>
- <cd:variable name="may" value="maggio"/>
- <cd:variable name="june" value="giugno"/>
- <cd:variable name="july" value="luglio"/>
- <cd:variable name="august" value="agosto"/>
- <cd:variable name="september" value="settembre"/>
- <cd:variable name="october" value="ottobre"/>
- <cd:variable name="november" value="novembre"/>
- <cd:variable name="december" value="dicembre"/>
- </cd:variables>
+ <!-- definitions for interface elements for language it -->
- <cd:variables>
- <cd:variable name="atpage" value="apagina"/>
- <cd:variable name="hencefore" value="precedente"/>
- <cd:variable name="hereafter" value="seguente"/>
- </cd:variables>
+ <cd:elements>
+ <cd:element name='answerlines' value='answerlines'/>
+ <cd:element name='answerspace' value='answerspace'/>
+ <cd:element name='begin' value='inizio'/>
+ <cd:element name='complete' value='completo'/>
+ <cd:element name='coupled' value='accoppiato'/>
+ <cd:element name='currentlocal' value='correntelocale'/>
+ <cd:element name='emptyone' value='prazdne'/>
+ <cd:element name='emptytwo' value='vuoti'/>
+ <cd:element name='end' value='fine'/>
+ <cd:element name='endsetup' value=''/>
+ <cd:element name='get' value='prendi'/>
+ <cd:element name='increment' value='incrementa'/>
+ <cd:element name='list' value='elenco'/>
+ <cd:element name='listof' value='elencodi'/>
+ <cd:element name='load' value='carica'/>
+ <cd:element name='local' value='locale'/>
+ <cd:element name='makeup' value='makeup'/>
+ <cd:element name='next' value='successivo'/>
+ <cd:element name='place' value='metti'/>
+ <cd:element name='previous' value='precedente'/>
+ <cd:element name='previouslocal' value='precedentelocale'/>
+ <cd:element name='reserve' value='riserva'/>
+ <cd:element name='see' value='vedi'/>
+ <cd:element name='setup' value='imposta'/>
+ <cd:element name='start' value='inizia'/>
+ <cd:element name='stop' value='termina'/>
+ <cd:element name='text' value='testo'/>
+ <cd:element name='type' value='type'/>
+ </cd:element>
- <cd:variables>
- <cd:variable name="part" value="parte"/>
- <cd:variable name="chapter" value="capitolo"/>
- <cd:variable name="subject" value="argomento"/>
- <cd:variable name="section" value="capoverso"/>
- <cd:variable name="title" value="titolo"/>
- <cd:variable name="margintitle" value="titoloinmargine"/>
- <cd:variable name="content" value="indice"/>
- <cd:variable name="contents" value="indici"/>
- <cd:variable name="appendix" value="appendice"/>
- <cd:variable name="appendices" value="appendici"/>
- <cd:variable name="bodypart" value="testoprincipale"/>
- <cd:variable name="bodymatter" value="testiprincipali"/>
- <cd:variable name="frontpart" value="prefazione"/>
- <cd:variable name="frontmatter" value="preambolo"/>
- <cd:variable name="backpart" value="postfazione"/>
- <cd:variable name="backmatter" value="postambolo"/>
- <cd:variable name="footnote" value="notapdp"/>
- <cd:variable name="endnote" value="endnote"/>
- <cd:variable name="system" value="sistema"/>
- </cd:variables>
+ <!-- definitions for interface commands for language it -->
- <cd:variables>
- <cd:variable name="subsection" value="sottocapoverso"/>
- <cd:variable name="subsubsection" value="sottosottocapoverso"/>
- <cd:variable name="subsubsubsection" value="sottosottosottocapoverso"/>
- <cd:variable name="subsubsubsubsection" value="sottosottosottosottocapoverso"/>
- <cd:variable name="subsubsubsubsubsection" value="sottosottosottosottosottocapoverso"/>
- <cd:variable name="subsubject" value="sottoargomento"/>
- <cd:variable name="subsubsubject" value="sottosottoargomento"/>
- <cd:variable name="subsubsubsubject" value="sottosottosottoargomento"/>
- <cd:variable name="subsubsubsubsubject" value="sottosottosottosottoargomento"/>
- <cd:variable name="subsubsubsubsubsubject" value="sottosottosottosottosottoargomento"/>
- </cd:variables>
+ <cd:commands>
+ <cd:command name='CAPPED' value='CAP'/>
+ <cd:command name='Character' value='Lettera'/>
+ <cd:command name='Characters' value='Lettere'/>
+ <cd:command name='LABELTEXT' value='TESTOETICHETTA'/>
+ <cd:command name='MONTH' value='MESE'/>
+ <cd:command name='Numbers' value='Numeri'/>
+ <cd:command name='Romannumerals' value='Numeriromani'/>
+ <cd:command name='SmallCapped' value='Cap'/>
+ <cd:command name='SmallCaps' value='Caps'/>
+ <cd:command name='WEEKDAY' value='GIORNOSETTIMANA'/>
+ <cd:command name='WORD' value='PAROLA'/>
+ <cd:command name='WORDS' value='PAROLE'/>
+ <cd:command name='Word' value='Parola'/>
+ <cd:command name='Words' value='Parole'/>
+ <cd:command name='about' value='intorno'/>
+ <cd:command name='adaptlayout' value='adattalayout'/>
+ <cd:command name='arg' value='arg'/>
+ <cd:command name='at' value='al'/>
+ <cd:command name='atleftmargin' value='atleftmargin'/>
+ <cd:command name='atpage' value='apagina'/>
+ <cd:command name='atrightmargin' value='atrightmargin'/>
+ <cd:command name='background' value='sfondo'/>
+ <cd:command name='backspace' value='spaziodietro'/>
+ <cd:command name='blackrule' value='lineanera'/>
+ <cd:command name='blackrules' value='lineenere'/>
+ <cd:command name='blank' value='rigovuoto'/>
+ <cd:command name='bookmark' value='segnalibro'/>
+ <cd:command name='bottomdistance' value='distanzafondo'/>
+ <cd:command name='bottomheight' value='altezzafondo'/>
+ <cd:command name='bottomspace' value='spaziofondo'/>
+ <cd:command name='but' value='fondo'/>
+ <cd:command name='button' value='pulsante'/>
+ <cd:command name='bypassblocks' value='saltablocchi'/>
+ <cd:command name='character' value='lettera'/>
+ <cd:command name='characters' value='lettere'/>
+ <cd:command name='chem' value='chim'/>
+ <cd:command name='clip' value='clip'/>
+ <cd:command name='clonefield' value='clonacampo'/>
+ <cd:command name='color' value='colore'/>
+ <cd:command name='colorbar' value='barracolori'/>
+ <cd:command name='colorvalue' value='valorecolore'/>
+ <cd:command name='column' value='colonna'/>
+ <cd:command name='comment' value='commento'/>
+ <cd:command name='comparecolorgroup' value='confrontagruppocolori'/>
+ <cd:command name='comparepalet' value='confrontatavolozza'/>
+ <cd:command name='completepagenumber' value='numeropaginacompleto'/>
+ <cd:command name='completeregister' value='completeregister'/>
+ <cd:command name='component' value='componenet'/>
+ <cd:command name='convertnumber' value='convertinumero'/>
+ <cd:command name='copyfield' value='copiacampo'/>
+ <cd:command name='correctwhitespace' value='correggispaziobianco'/>
+ <cd:command name='coupledocument' value='accoppiadocumento'/>
+ <cd:command name='couplemarking' value='accoppiamarcatura'/>
+ <cd:command name='couplepage' value='accoppiapagina'/>
+ <cd:command name='couplepaper' value='accoppiacarta'/>
+ <cd:command name='coupleregister' value='accoppiaregistro'/>
+ <cd:command name='crlf' value='crlf'/>
+ <cd:command name='currentdate' value='datadioggi'/>
+ <cd:command name='currentheadnumber' value='numerotestacorrente'/>
+ <cd:command name='cutspace' value='cutspace'/>
+ <cd:command name='date' value='data'/>
+ <cd:command name='decouplemarking' value='separamarcatura'/>
+ <cd:command name='decrementnumber' value='decrementnumber'/>
+ <cd:command name='define' value='definisci'/>
+ <cd:command name='defineaccent' value='definisciaccento'/>
+ <cd:command name='defineblank' value='definiscirigovuoto'/>
+ <cd:command name='defineblock' value='definisciblocco'/>
+ <cd:command name='definebodyfont' value='definiscifontdeltesto'/>
+ <cd:command name='definebodyfontenvironment' value='definisciambientefontdeltesto'/>
+ <cd:command name='definebuffer' value='definiscibuffer'/>
+ <cd:command name='definecharacter' value='definiscicarattere'/>
+ <cd:command name='definecolor' value='definiscicolore'/>
+ <cd:command name='definecolorgroup' value='definiscigruppocolori'/>
+ <cd:command name='definecolumnbreak' value='definecolumnbreak'/>
+ <cd:command name='definecolumnset' value='definiscigruppocolonne'/>
+ <cd:command name='definecombination' value='definecombination'/>
+ <cd:command name='definecombinedlist' value='definiscielencocombinato'/>
+ <cd:command name='definecommand' value='definiscicomando'/>
+ <cd:command name='defineconversion' value='definisciconversione'/>
+ <cd:command name='definedescription' value='definiscidescrizione'/>
+ <cd:command name='defineenumeration' value='definiscienumerazione'/>
+ <cd:command name='definefield' value='definiscicampo'/>
+ <cd:command name='definefieldstack' value='definiscistackcampi'/>
+ <cd:command name='definefiguresymbol' value='definiscifigurasimbolo'/>
+ <cd:command name='definefloat' value='definiscioggettomobile'/>
+ <cd:command name='definefont' value='definiscifont'/>
+ <cd:command name='definefontstyle' value='definiscistilefont'/>
+ <cd:command name='definefontsynonym' value='definiscisinonimofont'/>
+ <cd:command name='defineframed' value='definisciincorniciato'/>
+ <cd:command name='defineframedtext' value='definiscitestoincorniciato'/>
+ <cd:command name='definehbox' value='definiscihbox'/>
+ <cd:command name='definehead' value='definiscitesta'/>
+ <cd:command name='defineindenting' value='definiscirientro'/>
+ <cd:command name='defineinmargin' value='defineinmargin'/>
+ <cd:command name='defineinteractionmenu' value='definiscimenuinterazione'/>
+ <cd:command name='defineitemgroup' value='defineitemgroup'/>
+ <cd:command name='definelabel' value='definiscietichetta'/>
+ <cd:command name='definelayer' value='definelayer'/>
+ <cd:command name='definelayout' value='definiscilayout'/>
+ <cd:command name='definelist' value='definiscielenco'/>
+ <cd:command name='definelogo' value='definiscilogo'/>
+ <cd:command name='definemainfield' value='definiscicampoprincipale'/>
+ <cd:command name='definemakeup' value='definiscimakeup'/>
+ <cd:command name='definemarking' value='definiscimarcatura'/>
+ <cd:command name='definemathalignment' value='definemathalignment'/>
+ <cd:command name='defineoutput' value='definiscioutput'/>
+ <cd:command name='defineoverlay' value='definiscisovrapposizione'/>
+ <cd:command name='definepagebreak' value='definepagebreak'/>
+ <cd:command name='definepalet' value='definiscitavolozza'/>
+ <cd:command name='definepapersize' value='definiscidimensionicarta'/>
+ <cd:command name='defineparagraphs' value='definiscicapoversi'/>
+ <cd:command name='defineplacement' value='defineplacement'/>
+ <cd:command name='defineprofile' value='definisciprofilo'/>
+ <cd:command name='defineprogram' value='definisciprogramma'/>
+ <cd:command name='definerawfont' value='definiscifontgrezzo'/>
+ <cd:command name='definereference' value='definisciriferimento'/>
+ <cd:command name='definereferenceformat' value='definisciformatoriferimento'/>
+ <cd:command name='definereferencelist' value='definiscilistariferimenti'/>
+ <cd:command name='defineregister' value='definisciregistro'/>
+ <cd:command name='definerule' value='definiscilinea'/>
+ <cd:command name='definesection' value='definiscisezione'/>
+ <cd:command name='definesectionblock' value='definiscibloccosezione'/>
+ <cd:command name='definesorting' value='definisciordinamento'/>
+ <cd:command name='definestartstop' value='definisciiniziatermina'/>
+ <cd:command name='definestyle' value='definiscistile'/>
+ <cd:command name='definesubfield' value='definiscisottocampo'/>
+ <cd:command name='definesymbol' value='definiscisimbolo'/>
+ <cd:command name='definesynonyms' value='definiscisinonimi'/>
+ <cd:command name='definetabletemplate' value='definiscimodellotabella'/>
+ <cd:command name='definetabulate' value='definiscitabulato'/>
+ <cd:command name='definetext' value='definiscitesto'/>
+ <cd:command name='definetextposition' value='definisciposizionetesto'/>
+ <cd:command name='definetextvariable' value='definiscivariabiletesto'/>
+ <cd:command name='definetype' value='definiscitype'/>
+ <cd:command name='definetyping' value='definiscityping'/>
+ <cd:command name='defineversion' value='definisciversion'/>
+ <cd:command name='determineheadnumber' value='determinanumerotesta'/>
+ <cd:command name='determinelistcharacteristics' value='determinacarattersticheelenco'/>
+ <cd:command name='determineregistercharacteristics' value='determinacaratteristicheregistro'/>
+ <cd:command name='dimension' value='dimensione'/>
+ <cd:command name='disableinteractionmenu' value='disabilitamenuinterazione'/>
+ <cd:command name='domicile' value='domicilio'/>
+ <cd:command name='donttest' value='notest'/>
+ <cd:command name='edgedistance' value='distanzabordo'/>
+ <cd:command name='edgewidth' value='ampiezzabordo'/>
+ <cd:command name='emptylines' value='emptylines'/>
+ <cd:command name='environment' value='ambiente'/>
+ <cd:command name='externalfigure' value='figuraesterna'/>
+ <cd:command name='fact' value='fatto'/>
+ <cd:command name='field' value='campi'/>
+ <cd:command name='fieldstack' value='stackcampi'/>
+ <cd:command name='fillinfield' value='camporiempimento'/>
+ <cd:command name='fillinline' value='rigariempimento'/>
+ <cd:command name='fillinrules' value='lineeriempimento'/>
+ <cd:command name='fillintext' value='testoriempimento'/>
+ <cd:command name='fitfield' value='adattacampo'/>
+ <cd:command name='fixedspace' value='spaziofisso'/>
+ <cd:command name='fixedspaces' value='spazifissi'/>
+ <cd:command name='followprofile' value='seguiprofilo'/>
+ <cd:command name='followprofileversion' value='seguiversioneprofilo'/>
+ <cd:command name='followversion' value='seguiversione'/>
+ <cd:command name='footerdistance' value='distanzapdp'/>
+ <cd:command name='footerheight' value='altezzapdp'/>
+ <cd:command name='footnote' value='notapdp'/>
+ <cd:command name='footnotetext' value='testonotapdp'/>
+ <cd:command name='forceblocks' value='forzablocchi'/>
+ <cd:command name='formulanumber' value='numeroformula'/>
+ <cd:command name='fraction' value='frazione'/>
+ <cd:command name='framed' value='incorniciato'/>
+ <cd:command name='from' value='da'/>
+ <cd:command name='getbuffer' value='prendibuffer'/>
+ <cd:command name='getmarking' value='prendimarcatura'/>
+ <cd:command name='getnumber' value='getnumber'/>
+ <cd:command name='godown' value='vaigiu'/>
+ <cd:command name='goto' value='vaia'/>
+ <cd:command name='gotobox' value='vaiabox'/>
+ <cd:command name='gotopage' value='vaiapagina'/>
+ <cd:command name='graycolor' value='coloregrigio'/>
+ <cd:command name='greyvalue' value='valoregrigio'/>
+ <cd:command name='grid' value='griglia'/>
+ <cd:command name='hairline' value='capello'/>
+ <cd:command name='head' value='testa'/>
+ <cd:command name='headerdistance' value='distanzaintestazione'/>
+ <cd:command name='headerheight' value='altezzaintestazione'/>
+ <cd:command name='headlevel' value='livellotesta'/>
+ <cd:command name='headnumber' value='numerotesta'/>
+ <cd:command name='headsym' value='headsym'/>
+ <cd:command name='headtext' value='testoinstestazioni'/>
+ <cd:command name='hideblocks' value='nascondiblocchi'/>
+ <cd:command name='high' value='ap'/>
+ <cd:command name='hl' value='hl'/>
+ <cd:command name='immediatebetweenlist' value='immediatebetweenlist'/>
+ <cd:command name='immediatetolist' value='immediatetolist'/>
+ <cd:command name='in' value='in'/>
+ <cd:command name='incrementnumber' value='incrementanumero'/>
+ <cd:command name='indenting' value='rientro'/>
+ <cd:command name='inframed' value='circondato'/>
+ <cd:command name='infull' value='perlungo'/>
+ <cd:command name='ininner' value='ininner'/>
+ <cd:command name='inleft' value='insinistra'/>
+ <cd:command name='inleftedge' value='inlatosinistro'/>
+ <cd:command name='inleftmargin' value='inmarginesinistro'/>
+ <cd:command name='inline' value='inriga'/>
+ <cd:command name='inmargin' value='inmargine'/>
+ <cd:command name='inmframed' value='inmaframed'/>
+ <cd:command name='inneredgedistance' value='inneredgedistance'/>
+ <cd:command name='inneredgewidth' value='inneredgewidth'/>
+ <cd:command name='innermargindistance' value='innermargindistance'/>
+ <cd:command name='innermarginwidth' value='innermarginwidth'/>
+ <cd:command name='inothermargin' value='inaltromargine'/>
+ <cd:command name='inouter' value='inouter'/>
+ <cd:command name='inright' value='indestra'/>
+ <cd:command name='inrightedge' value='inlatodestro'/>
+ <cd:command name='inrightmargin' value='inmarginedestro'/>
+ <cd:command name='installlanguage' value='installalingua'/>
+ <cd:command name='interactionbar' value='barrainterazione'/>
+ <cd:command name='interactionbuttons' value='pulsantinterazione'/>
+ <cd:command name='interactionmenu' value='menuinterattivo'/>
+ <cd:command name='item' value='elemento'/>
+ <cd:command name='items' value='elementi'/>
+ <cd:command name='its' value='el'/>
+ <cd:command name='keepblocks' value='tieniblocchi'/>
+ <cd:command name='label' value='etichetta'/>
+ <cd:command name='labels' value='etichette'/>
+ <cd:command name='labeltext' value='testoetichetta'/>
+ <cd:command name='language' value='lingua'/>
+ <cd:command name='leftaligned' value='allineasinistra'/>
+ <cd:command name='leftedgedistance' value='distanzabordosinistro'/>
+ <cd:command name='leftedgewidth' value='ampiezzabordosinistro'/>
+ <cd:command name='leftmargindistance' value='distanzamarginesinistro'/>
+ <cd:command name='leftmarginwidth' value='ampiezzamarginesinistro'/>
+ <cd:command name='leg' value='leg'/>
+ <cd:command name='linewidth' value='spessoreriga'/>
+ <cd:command name='listheight' value='altezzaelenco'/>
+ <cd:command name='listlength' value='lunghezzaelenco'/>
+ <cd:command name='listsymbol' value='listsymbol'/>
+ <cd:command name='listwidth' value='ampiezzaelenco'/>
+ <cd:command name='logfields' value='logcampi'/>
+ <cd:command name='lohi' value='pedap'/>
+ <cd:command name='low' value='ped'/>
+ <cd:command name='macroname' value='nome'/>
+ <cd:command name='mainlanguage' value='linguaprincipale'/>
+ <cd:command name='makeupheight' value='altezzamakeup'/>
+ <cd:command name='makeupwidth' value='ampiezzamakeup'/>
+ <cd:command name='mar' value='mar'/>
+ <cd:command name='margindistance' value='distanzamargine'/>
+ <cd:command name='marginrule' value='lineamargine'/>
+ <cd:command name='margintext' value='testoinmargine'/>
+ <cd:command name='margintitle' value='titoloinmargine'/>
+ <cd:command name='marginwidth' value='ampiezzamargine'/>
+ <cd:command name='marginword' value='parolainmargine'/>
+ <cd:command name='marking' value='marcatura'/>
+ <cd:command name='markversion' value='marcaversione'/>
+ <cd:command name='mathematics' value='matematica'/>
+ <cd:command name='menubutton' value='pulsantemenu'/>
+ <cd:command name='mframed' value='maframed'/>
+ <cd:command name='midaligned' value='allineacentro'/>
+ <cd:command name='mirror' value='riflessione'/>
+ <cd:command name='month' value='mese'/>
+ <cd:command name='moveformula' value='spostaformula'/>
+ <cd:command name='moveongrid' value='spostaagriglia'/>
+ <cd:command name='movesidefloat' value='movesidefloat'/>
+ <cd:command name='navigating' value='navigating'/>
+ <cd:command name='nodimension' value='nientedimensioni'/>
+ <cd:command name='noheaderandfooterlines' value='nientelineintestazionepdp'/>
+ <cd:command name='noindenting' value='nienterientro'/>
+ <cd:command name='nolist' value='nienteelenco'/>
+ <cd:command name='nomarking' value='nientemarcatura'/>
+ <cd:command name='nomoreblocks' value='bastablocchi'/>
+ <cd:command name='nomorefiles' value='bastafile'/>
+ <cd:command name='nop' value='nop'/>
+ <cd:command name='nospace' value='nientespazio'/>
+ <cd:command name='note' value='nota'/>
+ <cd:command name='notopandbottomlines' value='nientelineecimafondo'/>
+ <cd:command name='notsmallcapped' value='nocap'/>
+ <cd:command name='nowhitespace' value='nientespaziobianco'/>
+ <cd:command name='numberofsubpages' value='numberofsubpages'/>
+ <cd:command name='numbers' value='numeri'/>
+ <cd:command name='outeredgedistance' value='outeredgedistance'/>
+ <cd:command name='outeredgewidth' value='outeredgewidth'/>
+ <cd:command name='outermargindistance' value='outermargindistance'/>
+ <cd:command name='outermarginwidth' value='outermarginwidth'/>
+ <cd:command name='overbar' value='sopralinea'/>
+ <cd:command name='overbars' value='sopralinee'/>
+ <cd:command name='overstrike' value='sbarrato'/>
+ <cd:command name='overstrikes' value='sbarrati'/>
+ <cd:command name='packed' value='impaccato'/>
+ <cd:command name='page' value='pagina'/>
+ <cd:command name='pagedepth' value='pagedepth'/>
+ <cd:command name='pagenumber' value='numeropagina'/>
+ <cd:command name='pageoffset' value='pageoffset'/>
+ <cd:command name='pagereference' value='riferimentopagina'/>
+ <cd:command name='pagetype' value='tipopagina'/>
+ <cd:command name='paperheight' value='altezzacarta'/>
+ <cd:command name='paperwidth' value='ampiezzacarta'/>
+ <cd:command name='periods' value='punti'/>
+ <cd:command name='plaatsruwelijst' value='placerawlist'/>
+ <cd:command name='placebookmarks' value='mettisegnalibro'/>
+ <cd:command name='placecombinedlist' value='mettielencocombinato'/>
+ <cd:command name='placefloat' value='placefloat'/>
+ <cd:command name='placefootnotes' value='mettinotepdp'/>
+ <cd:command name='placeformula' value='mettiformula'/>
+ <cd:command name='placeheadnumber' value='posizionanumerotesta'/>
+ <cd:command name='placeheadtext' value='posizionatestotesta'/>
+ <cd:command name='placelegend' value='mettilegenda'/>
+ <cd:command name='placelist' value='mettielenco'/>
+ <cd:command name='placelocalfootnotes' value='mettinotepdplocali'/>
+ <cd:command name='placelogos' value='mettiloghi'/>
+ <cd:command name='placeongrid' value='mettiingriglia'/>
+ <cd:command name='placeontopofeachother' value='mettiunosullaltro'/>
+ <cd:command name='placepagenumber' value='mettinumeropagina'/>
+ <cd:command name='placereferencelist' value='placereferencelist'/>
+ <cd:command name='placeregister' value='mettiregistro'/>
+ <cd:command name='placerule' value='mettilinea'/>
+ <cd:command name='placesidebyside' value='mettifiancoafianco'/>
+ <cd:command name='placesubformula' value='mettisottoformula'/>
+ <cd:command name='placetextvariable' value='mettivariabiletesto'/>
+ <cd:command name='position' value='posizione'/>
+ <cd:command name='positiontext' value='posizionatesto'/>
+ <cd:command name='printpaperheight' value='altezzacartastampa'/>
+ <cd:command name='printpaperwidth' value='ampiezzacartastampa'/>
+ <cd:command name='processblocks' value='elaborablocchi'/>
+ <cd:command name='processpage' value='elaborapagina'/>
+ <cd:command name='product' value='prodotto'/>
+ <cd:command name='program' value='programma'/>
+ <cd:command name='project' value='progetto'/>
+ <cd:command name='publication' value='pubblicazione'/>
+ <cd:command name='quotation' value='citazione'/>
+ <cd:command name='quote' value='menzione'/>
+ <cd:command name='ran' value='ran'/>
+ <cd:command name='redo' value='rifai'/>
+ <cd:command name='ref' value='rif'/>
+ <cd:command name='reference' value='riferimento'/>
+ <cd:command name='referral' value='referral'/>
+ <cd:command name='referraldate' value='datareferral'/>
+ <cd:command name='referring' value='referring'/>
+ <cd:command name='remark' value='commento'/>
+ <cd:command name='reset' value='reimposta'/>
+ <cd:command name='resetmarking' value='reimpostamarcatura'/>
+ <cd:command name='resetnumber' value='resetnumber'/>
+ <cd:command name='resettext' value='resettextcontent'/>
+ <cd:command name='rightaligned' value='allineadestra'/>
+ <cd:command name='rightedgedistance' value='distanzabordodestro'/>
+ <cd:command name='rightedgewidth' value='ampiezzabordodestro'/>
+ <cd:command name='rightmargindistance' value='distanzamarginedestro'/>
+ <cd:command name='rightmarginwidth' value='ampiezzamarginedestro'/>
+ <cd:command name='romannumerals' value='numeriromani'/>
+ <cd:command name='rotate' value='ruota'/>
+ <cd:command name='scale' value='scala'/>
+ <cd:command name='screen' value='schermo'/>
+ <cd:command name='selectblocks' value='selezionablocchi'/>
+ <cd:command name='selectpaper' value='selezionacarta'/>
+ <cd:command name='selectversion' value='selezionaversione'/>
+ <cd:command name='setnumber' value='setnumber'/>
+ <cd:command name='settextcontent' value='settext'/>
+ <cd:command name='settextvariable' value='setvariabiletesto'/>
+ <cd:command name='setupalign' value='impostaallineamento'/>
+ <cd:command name='setupanswerarea' value='setupanswerarea'/>
+ <cd:command name='setuparranging' value='impostaparranging'/>
+ <cd:command name='setupbackground' value='impostasfondo'/>
+ <cd:command name='setupbackgrounds' value='impostasfondi'/>
+ <cd:command name='setupblackrules' value='impostalineenere'/>
+ <cd:command name='setupblank' value='impostarigovuoto'/>
+ <cd:command name='setupblock' value='impostablocco'/>
+ <cd:command name='setupbodyfont' value='impostafontdeltesto'/>
+ <cd:command name='setupbodyfontenvironment' value='impostaambientefontdeltesto'/>
+ <cd:command name='setupbottom' value='impostafondo'/>
+ <cd:command name='setupbottomtexts' value='impostatestifondo'/>
+ <cd:command name='setupbuffer' value='impostabuffer'/>
+ <cd:command name='setupbuttons' value='impostapulsanti'/>
+ <cd:command name='setupcapitals' value='impostamaiuscole'/>
+ <cd:command name='setupcaption' value='impostacaption'/>
+ <cd:command name='setupcaptions' value='impostacaptions'/>
+ <cd:command name='setupclipping' value='impostaclippling'/>
+ <cd:command name='setupcolor' value='impostacolore'/>
+ <cd:command name='setupcolors' value='impostacolori'/>
+ <cd:command name='setupcolumns' value='impostacolonne'/>
+ <cd:command name='setupcolumnset' value='impostagruppocolonne'/>
+ <cd:command name='setupcolumnsetlines' value='setupcolumnsetlines'/>
+ <cd:command name='setupcolumnsetstart' value='setupcolumnsetstart'/>
+ <cd:command name='setupcombinations' value='impostacombinazioni'/>
+ <cd:command name='setupcombinedlist' value='impostaelencocombinato'/>
+ <cd:command name='setupcomment' value='impostacommento'/>
+ <cd:command name='setupdescriptions' value='impostadescrizioni'/>
+ <cd:command name='setupenumerations' value='impostaenumerazioni'/>
+ <cd:command name='setupexternalfigures' value='impostafigureesterne'/>
+ <cd:command name='setupfield' value='impostacampo'/>
+ <cd:command name='setupfields' value='impostacampi'/>
+ <cd:command name='setupfillinlines' value='impostarigheriempimento'/>
+ <cd:command name='setupfillinrules' value='impostalineeriempimento'/>
+ <cd:command name='setupfloat' value='impostaoggettomobile'/>
+ <cd:command name='setupfloats' value='impostaoggettimobili'/>
+ <cd:command name='setupfloatsplitting' value='impostaspezzamentooggettomobile'/>
+ <cd:command name='setupfooter' value='impostapdp'/>
+ <cd:command name='setupfootertexts' value='impostatestipdp'/>
+ <cd:command name='setupfootnotedefinition' value='impostadefinizionenotepdp'/>
+ <cd:command name='setupfootnotes' value='impostanotepdp'/>
+ <cd:command name='setupforms' value='impostaforms'/>
+ <cd:command name='setupformulas' value='impostaformule'/>
+ <cd:command name='setupframed' value='impostaincorniciato'/>
+ <cd:command name='setupframedtexts' value='impostatestiincorniciati'/>
+ <cd:command name='setuphead' value='impostatesta'/>
+ <cd:command name='setupheader' value='impostainstestazione'/>
+ <cd:command name='setupheadertexts' value='impostatestiintestazioni'/>
+ <cd:command name='setupheadnumber' value='impostanumerotesta'/>
+ <cd:command name='setupheads' value='impostateste'/>
+ <cd:command name='setupheadtext' value='impostatestointestazioni'/>
+ <cd:command name='setuphyphenmark' value='impostasegnosillabazione'/>
+ <cd:command name='setupindentations' value='impostarientri'/>
+ <cd:command name='setupindenting' value='impostarientro'/>
+ <cd:command name='setupinmargin' value='impostainmargine'/>
+ <cd:command name='setupinteraction' value='impostainterazione'/>
+ <cd:command name='setupinteractionbar' value='impostabarrainterazione'/>
+ <cd:command name='setupinteractionmenu' value='impostamenuinterazione'/>
+ <cd:command name='setupinteractionscreen' value='impostaschermointerazione'/>
+ <cd:command name='setupinterlinespace' value='impostainterlinea'/>
+ <cd:command name='setupitemgroup' value='setupitemgroup'/>
+ <cd:command name='setupitemgroups' value='impostaelencazioni'/>
+ <cd:command name='setupitems' value='impostaelementi'/>
+ <cd:command name='setuplabeltext' value='impostatestoetichette'/>
+ <cd:command name='setuplanguage' value='impostalingua'/>
+ <cd:command name='setuplayout' value='impostalayout'/>
+ <cd:command name='setuplegend' value='impostalegenda'/>
+ <cd:command name='setuplinenumbering' value='impostanumerazionerighe'/>
+ <cd:command name='setuplines' value='impostarighe'/>
+ <cd:command name='setuplinewidth' value='impostaampiezzariga'/>
+ <cd:command name='setuplist' value='impostaelenco'/>
+ <cd:command name='setupmakeup' value='impostamakeup'/>
+ <cd:command name='setupmarginblocks' value='impostablocchimargine'/>
+ <cd:command name='setupmarginrules' value='impostalineemargine'/>
+ <cd:command name='setupmarking' value='impostamarcatura'/>
+ <cd:command name='setupmathalignment' value='setupmathalignment'/>
+ <cd:command name='setupnarrower' value='impostapiustretto'/>
+ <cd:command name='setupnumber' value='impostanumerazione'/>
+ <cd:command name='setupnumbering' value='impostanumerazione'/>
+ <cd:command name='setupoppositeplacing' value='impostaposizionamentoopposti'/>
+ <cd:command name='setupoutput' value='impostaoutput'/>
+ <cd:command name='setuppagecomment' value='impostacommentopagina'/>
+ <cd:command name='setuppagenumber' value='impostanumeropagina'/>
+ <cd:command name='setuppagenumbering' value='impostanumerazionepagina'/>
+ <cd:command name='setuppagetransitions' value='impostatransizionepagina'/>
+ <cd:command name='setuppalet' value='impostatavolozza'/>
+ <cd:command name='setuppaper' value='setuppaper'/>
+ <cd:command name='setuppapersize' value='impostadimensionicarta'/>
+ <cd:command name='setupparagraphnumbering' value='impostanumerazionecapoversi'/>
+ <cd:command name='setupparagraphs' value='impostacapoversi'/>
+ <cd:command name='setupplacement' value='setupplacement'/>
+ <cd:command name='setuppositioning' value='impostaposizionamento'/>
+ <cd:command name='setupprofiles' value='impostaprofili'/>
+ <cd:command name='setupprograms' value='impostaprogrammi'/>
+ <cd:command name='setuppublications' value='impostapubblicazioni'/>
+ <cd:command name='setupquote' value='impostamenzione'/>
+ <cd:command name='setupreferencelist' value='impostalistariferimenti'/>
+ <cd:command name='setupreferencing' value='impostariferimento'/>
+ <cd:command name='setupregister' value='impostaregistro'/>
+ <cd:command name='setuprotate' value='impostarotazione'/>
+ <cd:command name='setuprule' value='impostalinea'/>
+ <cd:command name='setups' value='impostazioni'/>
+ <cd:command name='setupscreens' value='impostaschermi'/>
+ <cd:command name='setupsection' value='impostasezione'/>
+ <cd:command name='setupsectionblock' value='impostabloccosezione'/>
+ <cd:command name='setupsorting' value='impostaordinamento'/>
+ <cd:command name='setupspacing' value='impostaspaziatura'/>
+ <cd:command name='setupstartstop' value='impostainiziatermina'/>
+ <cd:command name='setupstrut' value='impostastrut'/>
+ <cd:command name='setupsubpagenumber' value='impostanumerosottopagina'/>
+ <cd:command name='setupsymbolset' value='impostasetsimboli'/>
+ <cd:command name='setupsynchronization' value='impostasincronizzazione'/>
+ <cd:command name='setupsynchronizationbar' value='impostabarrasincronizzazione'/>
+ <cd:command name='setupsynonyms' value='impostasinonimi'/>
+ <cd:command name='setupsystem' value='impostasistema'/>
+ <cd:command name='setuptab' value='impostatab'/>
+ <cd:command name='setuptables' value='impostatabelle'/>
+ <cd:command name='setuptabulate' value='impostatabulato'/>
+ <cd:command name='setuptext' value='impostatesto'/>
+ <cd:command name='setuptextposition' value='impostaposizionetesto'/>
+ <cd:command name='setuptextrules' value='impostalineetesto'/>
+ <cd:command name='setuptexttexts' value='impostatestotesti'/>
+ <cd:command name='setuptextvariable' value='impostavariabiletesto'/>
+ <cd:command name='setupthinrules' value='impostalineesottili'/>
+ <cd:command name='setuptolerance' value='impostatolleranza'/>
+ <cd:command name='setuptop' value='impostacima'/>
+ <cd:command name='setuptoptexts' value='impostatesticima'/>
+ <cd:command name='setuptype' value='impostatype'/>
+ <cd:command name='setuptyping' value='impostatyping'/>
+ <cd:command name='setupunderbar' value='impostasottolinea'/>
+ <cd:command name='setupurl' value='impostaurl'/>
+ <cd:command name='setupversions' value='impostaversioni'/>
+ <cd:command name='setupwhitespace' value='impostaspaziobianco'/>
+ <cd:command name='showbodyfont' value='mostrafontdeltesto'/>
+ <cd:command name='showbodyfontenvironment' value='mostraambientefontdeltesto'/>
+ <cd:command name='showcolor' value='mostracolore'/>
+ <cd:command name='showcolorgroup' value='mostragruppocolori'/>
+ <cd:command name='showexternalfigures' value='mostrafiguresterne'/>
+ <cd:command name='showfields' value='mostracampi'/>
+ <cd:command name='showframe' value='mostracornice'/>
+ <cd:command name='showgrid' value='mostragriglia'/>
+ <cd:command name='showlayout' value='mostralyout'/>
+ <cd:command name='showmakeup' value='mostramakeup'/>
+ <cd:command name='showpalet' value='mostratavolozza'/>
+ <cd:command name='showprint' value='mostrastampa'/>
+ <cd:command name='showsetups' value='mostraimpostazioni'/>
+ <cd:command name='showstruts' value='mostrastruts'/>
+ <cd:command name='showsymbolset' value='mostrasetsimboli'/>
+ <cd:command name='smallcapped' value='cap'/>
+ <cd:command name='someline' value='qualcheriga'/>
+ <cd:command name='somewhere' value='daqualcheparte'/>
+ <cd:command name='space' value='spazio'/>
+ <cd:command name='splitfloat' value='spezzaoggettomobile'/>
+ <cd:command name='startalignment' value='iniziaallineamento'/>
+ <cd:command name='startbackground' value='iniziasfondo'/>
+ <cd:command name='startcoding' value='iniziacodifica'/>
+ <cd:command name='startcolor' value='iniziacolore'/>
+ <cd:command name='startcolumnmakeup' value='startcolumnmakeup'/>
+ <cd:command name='startcolumns' value='iniziacolonne'/>
+ <cd:command name='startcolumnset' value='iniziagruppocolonne'/>
+ <cd:command name='startcombination' value='iniziacombinazione'/>
+ <cd:command name='startcomponent' value='iniziacomponente'/>
+ <cd:command name='startdocument' value='iniziadocumento'/>
+ <cd:command name='startenvironment' value='iniziaambiente'/>
+ <cd:command name='startfigure' value='iniziafigura'/>
+ <cd:command name='startglobal' value='iniziaglobale'/>
+ <cd:command name='startline' value='iniziariga'/>
+ <cd:command name='startlinecorrection' value='iniziacorrezioneriga'/>
+ <cd:command name='startlinenumbering' value='inizianumerazionerighe'/>
+ <cd:command name='startlines' value='iniziarighe'/>
+ <cd:command name='startlocal' value='inizialocale'/>
+ <cd:command name='startlocalfootnotes' value='inizianotepdplocali'/>
+ <cd:command name='startmakeup' value='iniziamakeup'/>
+ <cd:command name='startmarginblock' value='iniziabloccomargine'/>
+ <cd:command name='startmarginrule' value='inizialineamargine'/>
+ <cd:command name='startnarrower' value='iniziapiustretto'/>
+ <cd:command name='startopposite' value='iniziaopposto'/>
+ <cd:command name='startoverlay' value='iniziasovrapposizione'/>
+ <cd:command name='startoverzicht' value='iniziaoverview'/>
+ <cd:command name='startpacked' value='iniziaimpaccato'/>
+ <cd:command name='startpositioning' value='iniziaposizionamento'/>
+ <cd:command name='startproduct' value='iniziaprodotto'/>
+ <cd:command name='startprofile' value='iniziaprofilo'/>
+ <cd:command name='startproject' value='iniziaprogetto'/>
+ <cd:command name='startquotation' value='iniziacitazione'/>
+ <cd:command name='startraster' value='iniziaraster'/>
+ <cd:command name='startsymbolset' value='iniziasetsimboli'/>
+ <cd:command name='startsynchronization' value='iniziasincronizzazione'/>
+ <cd:command name='starttable' value='iniziatabella'/>
+ <cd:command name='starttables' value='iniziatabelle'/>
+ <cd:command name='starttext' value='iniziatesto'/>
+ <cd:command name='starttextrule' value='inizialineatesto'/>
+ <cd:command name='startunpacked' value='iniziaunpacked'/>
+ <cd:command name='startversion' value='iniziaversione'/>
+ <cd:command name='stopalignment' value='terminaallineamento'/>
+ <cd:command name='stopbackground' value='terminasfondo'/>
+ <cd:command name='stopcoding' value='terminacodifica'/>
+ <cd:command name='stopcolor' value='terminacolore'/>
+ <cd:command name='stopcolumnmakeup' value='stopcolumnmakeup'/>
+ <cd:command name='stopcolumns' value='terminacolonne'/>
+ <cd:command name='stopcolumnset' value='terminagruppocolonne'/>
+ <cd:command name='stopcombination' value='terminacombinazione'/>
+ <cd:command name='stopcomponent' value='terminacomponente'/>
+ <cd:command name='stopdocument' value='terminadocumento'/>
+ <cd:command name='stopenvironment' value='terminaambiente'/>
+ <cd:command name='stopglobal' value='terminaglobale'/>
+ <cd:command name='stopline' value='terminariga'/>
+ <cd:command name='stoplinecorrection' value='terminacorrezioneriga'/>
+ <cd:command name='stoplinenumbering' value='terminanumerazionerighe'/>
+ <cd:command name='stoplines' value='terminarighe'/>
+ <cd:command name='stoplocal' value='terminalocale'/>
+ <cd:command name='stoplocalfootnotes' value='terminanotepdplocali'/>
+ <cd:command name='stopmakeup' value='terminamakeup'/>
+ <cd:command name='stopmarginblock' value='terminabloccomargine'/>
+ <cd:command name='stopmarginrule' value='terminalineamargine'/>
+ <cd:command name='stopnarrower' value='terminapiustretto'/>
+ <cd:command name='stopopposite' value='terminaopposto'/>
+ <cd:command name='stopoverlay' value='terminasovrapposizione'/>
+ <cd:command name='stopoverzicht' value='terminaoverview'/>
+ <cd:command name='stoppacked' value='terminaimpaccato'/>
+ <cd:command name='stoppositioning' value='terminaposizionamento'/>
+ <cd:command name='stopproduct' value='terminaprodotto'/>
+ <cd:command name='stopprofile' value='terminaprofili'/>
+ <cd:command name='stopproject' value='terminaprogetto'/>
+ <cd:command name='stopquotation' value='terminacitazione'/>
+ <cd:command name='stopraster' value='terminaraster'/>
+ <cd:command name='stopsynchronization' value='terminasincronizzazione'/>
+ <cd:command name='stoptable' value='terminatabella'/>
+ <cd:command name='stoptables' value='terminatabelle'/>
+ <cd:command name='stoptext' value='terminatesto'/>
+ <cd:command name='stoptextrule' value='terminalineatesto'/>
+ <cd:command name='stopunpacked' value='terminaunpacked'/>
+ <cd:command name='stopversion' value='terminaversioni'/>
+ <cd:command name='stretched' value='stirato'/>
+ <cd:command name='subformulanumber' value='numerosottoformula'/>
+ <cd:command name='subpagenumber' value='subpagenumber'/>
+ <cd:command name='switchtobodyfont' value='cambiaafontdeltesto'/>
+ <cd:command name='switchtorawfont' value='passaafontgrezzo'/>
+ <cd:command name='sym' value='sim'/>
+ <cd:command name='symbol' value='simbolo'/>
+ <cd:command name='synchronizationbar' value='barrasincronizzazione'/>
+ <cd:command name='synchronize' value='sincronizza'/>
+ <cd:command name='tab' value='tab'/>
+ <cd:command name='testcolumn' value='testcolumn'/>
+ <cd:command name='testpage' value='testpage'/>
+ <cd:command name='tex' value='tex'/>
+ <cd:command name='textheight' value='altezzatesto'/>
+ <cd:command name='textreference' value='riferimentotesto'/>
+ <cd:command name='textrule' value='lineatesto'/>
+ <cd:command name='textvariable' value='variabiletesto'/>
+ <cd:command name='textwidth' value='ampiezzatesto'/>
+ <cd:command name='thinrule' value='lineasottile'/>
+ <cd:command name='thinrules' value='lineesottili'/>
+ <cd:command name='tooltip' value='tooltip'/>
+ <cd:command name='topdistance' value='distanzacima'/>
+ <cd:command name='topheight' value='altezzacima'/>
+ <cd:command name='topspace' value='spaziocima'/>
+ <cd:command name='totalnumberofpages' value='numerototaledipagine'/>
+ <cd:command name='translate' value='traduci'/>
+ <cd:command name='txt' value='txt'/>
+ <cd:command name='typ' value='typ'/>
+ <cd:command name='type' value='type'/>
+ <cd:command name='typebuffer' value='typebuffer'/>
+ <cd:command name='typefile' value='typefile'/>
+ <cd:command name='underbar' value='sottolinea'/>
+ <cd:command name='underbars' value='sottolinee'/>
+ <cd:command name='unitmeaning' value='nomeunita'/>
+ <cd:command name='unknown' value='ignoto'/>
+ <cd:command name='useJSscripts' value='usaJSscripts'/>
+ <cd:command name='useURL' value='usaURL'/>
+ <cd:command name='useXMLfilter' value='useXMLfilter'/>
+ <cd:command name='useblocks' value='usablocco'/>
+ <cd:command name='usecommands' value='usacomandi'/>
+ <cd:command name='useencoding' value='usacodifica'/>
+ <cd:command name='useexternaldocument' value='usadocumentoesterno'/>
+ <cd:command name='useexternalfigure' value='usafiguraesterna'/>
+ <cd:command name='useexternalfile' value='usafileesterno'/>
+ <cd:command name='useexternalfiles' value='usafileesterni'/>
+ <cd:command name='useexternalsoundtrack' value='usacolonnasonoraesterna'/>
+ <cd:command name='usemodule' value='usamodulo'/>
+ <cd:command name='usemodules' value='usamoduli'/>
+ <cd:command name='usepath' value='usacartella'/>
+ <cd:command name='usereferences' value='usariferimenti'/>
+ <cd:command name='usespecials' value='usaspecialita'/>
+ <cd:command name='usesymbols' value='usasimboli'/>
+ <cd:command name='usetypescript' value='usetypescript'/>
+ <cd:command name='usetypescriptfile' value='usetypescriptfile'/>
+ <cd:command name='useurl' value='usaurl'/>
+ <cd:command name='version' value='versione'/>
+ <cd:command name='vl' value='vl'/>
+ <cd:command name='weekday' value='giornosettimana'/>
+ <cd:command name='whitespace' value='spaziobianco'/>
+ <cd:command name='wordright' value='paroladestra'/>
+ <cd:command name='writebetweenlist' value='scrividentroelenco'/>
+ <cd:command name='writetolist' value='scriviinelenco'/>
+ <cd:command name='writetoreferencelist' value='scriviinlistariferimenti'/>
+ <cd:command name='writetoregister' value='scriviinregistro'/>
+ </cd:command>
- <cd:variables>
- <cd:variable name="flushleft" value="flushleft"/>
- <cd:variable name="flushright" value="flushright"/>
- <cd:variable name="center" value="center"/>
- <cd:variable name="flushouter" value="flushouter"/>
- <cd:variable name="flushinner" value="flushinner"/>
- </cd:variables>
-
- <cd:variables>
- <cd:variable name="typing" value="typing"/>
- <cd:variable name="file" value="file"/>
- </cd:variables>
-
- <cd:variables>
- <cd:variable name="formula" value="formula"/>
- <cd:variable name="subformula" value="subformula"/>
- <cd:variable name="formulae" value="formule"/>
- <cd:variable name="figure" value="figura"/>
- <cd:variable name="figures" value="figure"/>
- <cd:variable name="table" value="tabella"/>
- <cd:variable name="tables" value="tabelle"/>
- <cd:variable name="graphic" value="grafico"/>
- <cd:variable name="graphics" value="grafici"/>
- <cd:variable name="intermezzo" value="intermezzo"/>
- <cd:variable name="intermezzi" value="intermezzi"/>
- <cd:variable name="index" value="indiceanalitico"/>
- <cd:variable name="indices" value="indicianalitici"/>
- <cd:variable name="abbreviation" value="abbreviazione"/>
- <cd:variable name="abbreviations" value="abbreviazioni"/>
- <cd:variable name="logo" value="logo"/>
- <cd:variable name="logos" value="loghi"/>
- <cd:variable name="unit" value="unita"/>
- <cd:variable name="units" value="unita"/>
- <cd:variable name="line" value="riga"/>
- <cd:variable name="lines" value="righe"/>
- <cd:variable name="framedtext" value="testoincorniciato"/>
- <cd:variable name="quotation" value="citazione"/>
- <cd:variable name="blockquote" value="blockquote"/>
- <cd:variable name="quote" value="menzione"/>
- <cd:variable name="speech" value="speech"/>
- <cd:variable name="itemize" value="elenco"/>
- <cd:variable name="mathalignment" value="mathalignment"/>
- <cd:variable name="mathcases" value="mathcases"/>
- <cd:variable name="mathmatrix" value="mathmatrix"/>
- </cd:variables>
-
- <cd:constants>
- <cd:constant name="sorttype" value="sorttype"/>
- <cd:constant name="compress" value="compress"/>
- <cd:constant name="autohang" value="autohang"/>
- <cd:constant name="suffix" value="suffix"/>
- <cd:constant name="leftquotation" value="citazionesinistra"/>
- <cd:constant name="rightquotation" value="citazionedestra"/>
- <cd:constant name="leftquote" value="menzionesinistra"/>
- <cd:constant name="rightquote" value="menzionedestra"/>
- <cd:constant name="compoundhyphen" value="compoundhyphen"/>
- <cd:constant name="leftcompoundhyphen" value="leftcompoundhyphen"/>
- <cd:constant name="rightcompoundhyphen" value="rightcompoundhyphen"/>
- <cd:constant name="midsentence" value="midsentence"/>
- <cd:constant name="leftsentence" value="frasesinistra"/>
- <cd:constant name="rightsentence" value="frasedestra"/>
- <cd:constant name="leftsubsentence" value="sottofrasesinistra"/>
- <cd:constant name="rightsubsentence" value="sottofrasedestra"/>
- <cd:constant name="leftspeech" value="leftspeech"/>
- <cd:constant name="middlespeech" value="middlespeech"/>
- <cd:constant name="rightspeech" value="rightspeech"/>
- <cd:constant name="limittext" value="limittext"/>
- <cd:constant name="date" value="data"/>
- <cd:constant name="spacebefore" value="spazioprima"/>
- <cd:constant name="spaceinbetween" value="spaceinbetween"/>
- <cd:constant name="spaceafter" value="spaziodopo"/>
- <cd:constant name="sidespacebefore" value="spaziolateraleprima"/>
- <cd:constant name="sidespaceafter" value="spaziolateraledopo"/>
- <cd:constant name="to" value="verso"/>
- <cd:constant name="indicator" value="indicatore"/>
- <cd:constant name="background" value="sfondo"/>
- <cd:constant name="backgrounddepth" value="profonditasfondo"/>
- <cd:constant name="backgroundcorner" value="angolosfondo"/>
- <cd:constant name="splitcolor" value="splitcolor"/>
- <cd:constant name="backgroundcolor" value="coloresfondo"/>
- <cd:constant name="foregroundcolor" value="coloreprimopiano"/>
- <cd:constant name="foregroundstyle" value="foregroundstyle"/>
- <cd:constant name="clipoffset" value="clipoffset"/>
- <cd:constant name="backgroundoffset" value="offsetsfondo"/>
- <cd:constant name="backgroundscreen" value="schermosfondo"/>
- <cd:constant name="backgroundradius" value="raggiosfondo"/>
- <cd:constant name="address" value="indirizzo"/>
- <cd:constant name="stopper" value="stopper"/>
- <cd:constant name="distance" value="distanza"/>
- <cd:constant name="paragraph" value="capoverso"/>
- <cd:constant name="axis" value="asse"/>
- <cd:constant name="author" value="autore"/>
- <cd:constant name="auto" value="auto"/>
- <cd:constant name="autofile" value="autofile"/>
- <cd:constant name="balance" value="bilanciamento"/>
- <cd:constant name="bookmark" value="segnalibro"/>
- <cd:constant name="wfactor" value="wfactor"/>
- <cd:constant name="inner" value="interno"/>
- <cd:constant name="blank" value="rigovuoto"/>
- <cd:constant name="obstruction" value="ostruzione"/>
- <cd:constant name="blockway" value="blockway"/>
- <cd:constant name="bottomspace" value="spaziofondo"/>
- <cd:constant name="top" value="cima"/>
- <cd:constant name="topdistance" value="distanzacima"/>
- <cd:constant name="topframe" value="cornicecima"/>
- <cd:constant name="topoffset" value="offsetcima"/>
- <cd:constant name="topstate" value="statocima"/>
- <cd:constant name="width" value="ampiezza"/>
- <cd:constant name="autowidth" value="autoampiezza"/>
- <cd:constant name="maxwidth" value="ampiezzamax"/>
- <cd:constant name="minwidth" value="ampiezzamin"/>
- <cd:constant name="source" value="origine"/>
- <cd:constant name="command" value="comando"/>
- <cd:constant name="commands" value="comandi"/>
- <cd:constant name="component" value="component"/>
- <cd:constant name="contrastcolor" value="colorecontrasto"/>
- <cd:constant name="conversion" value="conversione"/>
- <cd:constant name="headconversion" value="conversionetesta"/>
- <cd:constant name="headlabel" value="etichettatesta"/>
- <cd:constant name="criterium" value="criterio"/>
- <cd:constant name="date" value="data"/>
- <cd:constant name="default" value="implicito"/>
- <cd:constant name="depth" value="profondita"/>
- <cd:constant name="depthcorrection" value="correzioneprofondita"/>
- <cd:constant name="continue" value="continua"/>
- <cd:constant name="doublesided" value="doppiafaccia"/>
- <cd:constant name="dummy" value="dummy"/>
- <cd:constant name="unit" value="unita"/>
- <cd:constant name="ownnumber" value="numeroproprio"/>
- <cd:constant name="evenmargin" value="marginepari"/>
- <cd:constant name="expansion" value="espansione"/>
- <cd:constant name="keyexpansion" value="keyexpansion"/>
- <cd:constant name="factor" value="fattore"/>
- <cd:constant name="convertfile" value="convertifile"/>
- <cd:constant name="file" value="file"/>
- <cd:constant name="inputfile" value="inputfile"/>
- <cd:constant name="size" value="dimensione"/>
- <cd:constant name="autofocus" value="autofocus"/>
- <cd:constant name="focus" value="focus"/>
- <cd:constant name="directory" value="directory"/>
- <cd:constant name="cache" value="cache"/>
- <cd:constant name="grid" value="griglia"/>
- <cd:constant name="big" value="grande"/>
- <cd:constant name="get" value="prendi"/>
- <cd:constant name="hang" value="sospendi"/>
- <cd:constant name="repeat" value="ripeti"/>
- <cd:constant name="hfactor" value="hfactor"/>
- <cd:constant name="corner" value="angolo"/>
- <cd:constant name="hoffset" value="hoffset"/>
- <cd:constant name="frames" value="cornici"/>
- <cd:constant name="header" value="intestazione"/>
- <cd:constant name="headerdistance" value="distanzaintestazione"/>
- <cd:constant name="headerstate" value="statointestazione"/>
- <cd:constant name="height" value="altezza"/>
- <cd:constant name="maxheight" value="altezzamax"/>
- <cd:constant name="minheight" value="altezzamin"/>
- <cd:constant name="mindepth" value="mindeoth"/>
- <cd:constant name="current" value="corrente"/>
- <cd:constant name="in" value="in"/>
- <cd:constant name="indenting" value="rientro"/>
- <cd:constant name="interaction" value="interazione"/>
- <cd:constant name="interlinespace" value="interlinea"/>
- <cd:constant name="items" value="elementi"/>
- <cd:constant name="fallback" value="fallback"/>
- <cd:constant name="frame" value="cornice"/>
- <cd:constant name="framedepth" value="profonditacornice"/>
- <cd:constant name="framecorner" value="angolocornice"/>
- <cd:constant name="framecolor" value="colorecornice"/>
- <cd:constant name="frameoffset" value="offsetcornice"/>
- <cd:constant name="frameradius" value="raggiocornice"/>
- <cd:constant name="marginedge" value="bordomargine"/>
- <cd:constant name="marginedgetext" value="testobordomargine"/>
- <cd:constant name="aligncharacter" value="allineacarattere"/>
- <cd:constant name="alignmentcharacter" value="carattereallineamento"/>
- <cd:constant name="small" value="piccolo"/>
- <cd:constant name="color" value="colore"/>
- <cd:constant name="column" value="colonna"/>
- <cd:constant name="columns" value="colonne"/>
- <cd:constant name="columndistance" value="distanzacolonne"/>
- <cd:constant name="headcommand" value="headcommand"/>
- <cd:constant name="headcolor" value="coloretesta"/>
- <cd:constant name="headstyle" value="stiletesta"/>
- <cd:constant name="afterhead" value="dopotesta"/>
- <cd:constant name="veroffset" value="veroffset"/>
- <cd:constant name="coupling" value="accoppiamento"/>
- <cd:constant name="couplingway" value="modoaccoppiamento"/>
- <cd:constant name="beforehead" value="primaditesta"/>
- <cd:constant name="topspace" value="spaziocima"/>
- <cd:constant name="bodyfont" value="fonttesto"/>
- <cd:constant name="label" value="etichetta"/>
- <cd:constant name="empty" value="vuoto"/>
- <cd:constant name="style" value="stile"/>
- <cd:constant name="rule" value="linea"/>
- <cd:constant name="rulethickness" value="spessorelinea"/>
- <cd:constant name="rulecolor" value="colorelinea"/>
- <cd:constant name="list" value="elenco"/>
- <cd:constant name="leftwidth" value="ampiezzasinistra"/>
- <cd:constant name="leftframe" value="cornicesinistra"/>
- <cd:constant name="leftcolor" value="coloresinistra"/>
- <cd:constant name="leftstyle" value="stilesinistra"/>
- <cd:constant name="leftmargin" value="marginesinistro"/>
- <cd:constant name="innermargin" value="margineinterno"/>
- <cd:constant name="outermargin" value="margineesterno"/>
- <cd:constant name="leftmargindistance" value="distanzamarginesinistro"/>
- <cd:constant name="leftoffset" value="offsetsinistro"/>
- <cd:constant name="leftedge" value="bordosinistro"/>
- <cd:constant name="leftedgedistance" value="distanzabordosinistro"/>
- <cd:constant name="lefttext" value="testosinistro"/>
- <cd:constant name="left" value="sinistra"/>
- <cd:constant name="nleft" value="nsinistra"/>
- <cd:constant name="logo" value="logo"/>
- <cd:constant name="logos" value="loghi"/>
- <cd:constant name="local" value="locale"/>
- <cd:constant name="margin" value="margine"/>
- <cd:constant name="margindistance" value="distanzamargine"/>
- <cd:constant name="margintext" value="testomargine"/>
- <cd:constant name="marking" value="marcatura"/>
- <cd:constant name="marcolor" value="coloremarcatura"/>
- <cd:constant name="marstyle" value="stilemarcatura"/>
- <cd:constant name="menu" value="menu"/>
- <cd:constant name="splitmethod" value="splitmethod"/>
- <cd:constant name="textmethod" value="textmethod"/>
- <cd:constant name="sidemethod" value="sidemethod"/>
- <cd:constant name="method" value="metodo"/>
- <cd:constant name="middle" value="centro"/>
- <cd:constant name="middletext" value="testocentro"/>
- <cd:constant name="max" value="max"/>
- <cd:constant name="min" value="min"/>
- <cd:constant name="sample" value="campione"/>
- <cd:constant name="after" value="dopo"/>
- <cd:constant name="name" value="nome"/>
- <cd:constant name="commandafter" value="comdandodopo"/>
- <cd:constant name="ntop" value="ncima"/>
- <cd:constant name="level" value="livello"/>
- <cd:constant name="levels" value="livelli"/>
- <cd:constant name="nbottom" value="nfondo"/>
- <cd:constant name="norm" value="norma"/>
- <cd:constant name="nlines" value="nrighe"/>
- <cd:constant name="number" value="numero"/>
- <cd:constant name="numbercommand" value="comandonumero"/>
- <cd:constant name="numbering" value="numerazione"/>
- <cd:constant name="numbercolor" value="colorenumero"/>
- <cd:constant name="numberstyle" value="stilenumero"/>
- <cd:constant name="numberseparator" value="separatorenumero"/>
- <cd:constant name="object" value="oggetto"/>
- <cd:constant name="offset" value="offset"/>
- <cd:constant name="bottom" value="fondo"/>
- <cd:constant name="bottomdistance" value="distanzafondo"/>
- <cd:constant name="bottomframe" value="cornicefondo"/>
- <cd:constant name="bottomoffset" value="offsetfondo"/>
- <cd:constant name="bottomstate" value="statofondo"/>
- <cd:constant name="oddmargin" value="marginedispari"/>
- <cd:constant name="at" value="ad"/>
- <cd:constant name="option" value="opzione"/>
- <cd:constant name="page" value="pagina"/>
- <cd:constant name="pagecommand" value="comandopagina"/>
- <cd:constant name="pagecolor" value="colorepagina"/>
- <cd:constant name="pagestyle" value="stilepagina"/>
- <cd:constant name="pagenumber" value="numeropagina"/>
- <cd:constant name="headnumber" value="numerotesta"/>
- <cd:constant name="pageboundaries" value="limitipagina"/>
- <cd:constant name="pagestate" value="statopagina"/>
- <cd:constant name="palet" value="tavolozza"/>
- <cd:constant name="paper" value="carta"/>
- <cd:constant name="location" value="luogo"/>
- <cd:constant name="placestopper" value="mettistopper"/>
- <cd:constant name="place" value="metti"/>
- <cd:constant name="placehead" value="mettitesta"/>
- <cd:constant name="position" value="posizione"/>
- <cd:constant name="prefix" value="prefisso"/>
- <cd:constant name="preset" value="preimpostato"/>
- <cd:constant name="preview" value="anteprima"/>
- <cd:constant name="process" value="process"/>
- <cd:constant name="spot" value="spot"/>
- <cd:constant name="dot" value="punto"/>
- <cd:constant name="arrow" value="freccia"/>
- <cd:constant name="edge" value="bordo"/>
- <cd:constant name="edgedistance" value="distanzabordo"/>
- <cd:constant name="screen" value="schermo"/>
- <cd:constant name="rightwidth" value="ampiezzadestra"/>
- <cd:constant name="rightframe" value="cornicedestra"/>
- <cd:constant name="rightcolor" value="coloredestra"/>
- <cd:constant name="rightstyle" value="stiledestra"/>
- <cd:constant name="rightmargin" value="marginedestro"/>
- <cd:constant name="rightmargindistance" value="distanzamarginedestro"/>
- <cd:constant name="rightoffset" value="offsetdestro"/>
- <cd:constant name="rightedge" value="bordodestro"/>
- <cd:constant name="rightedgedistance" value="distanzabordodestro"/>
- <cd:constant name="righttext" value="testodestro"/>
- <cd:constant name="right" value="destra"/>
- <cd:constant name="nright" value="ndestra"/>
- <cd:constant name="reduction" value="riduzione"/>
- <cd:constant name="referencing" value="referencing"/>
- <cd:constant name="line" value="riga"/>
- <cd:constant name="linecorrection" value="correzioneriga"/>
- <cd:constant name="lines" value="righe"/>
- <cd:constant name="stretch" value="dilata"/>
- <cd:constant name="resolution" value="risoluzione"/>
- <cd:constant name="rotation" value="rotazione"/>
- <cd:constant name="orientation" value="orientation"/>
- <cd:constant name="horoffset" value="horoffset"/>
- <cd:constant name="backspace" value="backspace"/>
- <cd:constant name="direction" value="direzione"/>
- <cd:constant name="scale" value="scala"/>
- <cd:constant name="separator" value="separatore"/>
- <cd:constant name="display" value="display"/>
- <cd:constant name="scope" value="scope"/>
- <cd:constant name="section" value="sezione"/>
- <cd:constant name="sectionnumber" value="numerosezione"/>
- <cd:constant name="setups" value="setups"/>
- <cd:constant name="cutspace" value="cutspace"/>
- <cd:constant name="family" value="famiglia"/>
- <cd:constant name="space" value="spazio"/>
- <cd:constant name="spacing" value="spaziatura"/>
- <cd:constant name="split" value="separa"/>
- <cd:constant name="splitoffset" value="splitoffset"/>
- <cd:constant name="indentnext" value="rientrasuccessivo"/>
- <cd:constant name="step" value="passo"/>
- <cd:constant name="stack" value="stack"/>
- <cd:constant name="start" value="inizia"/>
- <cd:constant name="state" value="stato"/>
- <cd:constant name="stop" value="termina"/>
- <cd:constant name="radius" value="raggio"/>
- <cd:constant name="dash" value="dash"/>
- <cd:constant name="sub" value="sotto"/>
- <cd:constant name="subtitle" value="sottotitolo"/>
- <cd:constant name="symbol" value="simbolo"/>
- <cd:constant name="closesymbol" value="closesymbol"/>
- <cd:constant name="closecommand" value="closecommand"/>
- <cd:constant name="symbolset" value="setsimboli"/>
- <cd:constant name="symcolor" value="coloresimbolo"/>
- <cd:constant name="symstyle" value="stilesimbolo"/>
- <cd:constant name="synonym" value="sinonimo"/>
- <cd:constant name="synonymcolor" value="coloresinonimi"/>
- <cd:constant name="synonymstyle" value="stilesinonimi"/>
- <cd:constant name="tab" value="tab"/>
- <cd:constant name="sign" value="segno"/>
- <cd:constant name="text" value="testo"/>
- <cd:constant name="listtext" value="listtext"/>
- <cd:constant name="textwidth" value="ampiezzatesto"/>
- <cd:constant name="numberwidth" value="numberwidth"/>
- <cd:constant name="textcommand" value="comandotesto"/>
- <cd:constant name="textsize" value="dimensionetesto"/>
- <cd:constant name="textcolor" value="coloretesto"/>
- <cd:constant name="textstyle" value="stiletesto"/>
- <cd:constant name="textseparator" value="separatoretesto"/>
- <cd:constant name="textstate" value="statotesto"/>
- <cd:constant name="title" value="titolo"/>
- <cd:constant name="titlestyle" value="stiletitolo"/>
- <cd:constant name="titlecolor" value="coloretitolo"/>
- <cd:constant name="titledistance" value="distanzatitolo"/>
- <cd:constant name="titleleft" value="titleleft"/>
- <cd:constant name="titleright" value="titleright"/>
- <cd:constant name="titlecommand" value="titlecommand"/>
- <cd:constant name="aligntitle" value="allineatitolo"/>
- <cd:constant name="tolerance" value="tolleranza"/>
- <cd:constant name="inbetween" value="tra"/>
- <cd:constant name="type" value="type"/>
- <cd:constant name="align" value="allinea"/>
- <cd:constant name="symalign" value="symallinea"/>
- <cd:constant name="urlspace" value="spaziourl"/>
- <cd:constant name="urlalternative" value="alternativaurl"/>
- <cd:constant name="from" value="da"/>
- <cd:constant name="alternative" value="alternativa"/>
- <cd:constant name="increment" value="incremento"/>
- <cd:constant name="incrementnumber" value="incrementanumero"/>
- <cd:constant name="resetnumber" value="resetnumber"/>
- <cd:constant name="reference" value="riferimento"/>
- <cd:constant name="unknownreference" value="riferimentoingoto"/>
- <cd:constant name="footer" value="piedipagina"/>
- <cd:constant name="footerdistance" value="distanzapdp"/>
- <cd:constant name="footerstate" value="statopdp"/>
- <cd:constant name="voffset" value="voffset"/>
- <cd:constant name="next" value="successivo"/>
- <cd:constant name="before" value="prima"/>
- <cd:constant name="commandbefore" value="comandoprima"/>
- <cd:constant name="previous" value="precedente"/>
- <cd:constant name="previousnumber" value="numeroprecedente"/>
- <cd:constant name="delay" value="attesa"/>
- <cd:constant name="way" value="modo"/>
- <cd:constant name="random" value="casuale"/>
- <cd:constant name="white" value="bianco"/>
- <cd:constant name="xfactor" value="xfactor"/>
- <cd:constant name="xmax" value="xmax"/>
- <cd:constant name="xoffset" value="xoffset"/>
- <cd:constant name="xscale" value="xscale"/>
- <cd:constant name="xstep" value="xstep"/>
- <cd:constant name="yfactor" value="yfactor"/>
- <cd:constant name="ymax" value="ymax"/>
- <cd:constant name="yoffset" value="yoffset"/>
- <cd:constant name="yscale" value="yscale"/>
- <cd:constant name="ystep" value="ystep"/>
- <cd:constant name="samepage" value="stessapagina"/>
- <cd:constant name="itemalign" value="itemalign"/>
- <cd:constant name="sidealign" value="sidealign"/>
- <cd:constant name="side" value="lato"/>
- <cd:constant name="fieldlayer" value="fieldlayer"/>
- <cd:constant name="textlayer" value="textlayer"/>
- <cd:constant name="fieldbackgroundcolor" value="coloresfondocampo"/>
- <cd:constant name="fieldframecolor" value="colorecornicecampo"/>
- <cd:constant name="fieldoffset" value="offsetcampo"/>
- <cd:constant name="action" value="azione"/>
- <cd:constant name="openaction" value="azioneapri"/>
- <cd:constant name="closeaction" value="azionechiudi"/>
- <cd:constant name="openpageaction" value="azioneapripagina"/>
- <cd:constant name="closepageaction" value="azionechiudipagina"/>
- <cd:constant name="clickin" value="clickdentro"/>
- <cd:constant name="clickout" value="clickfuori"/>
- <cd:constant name="regionin" value="entraregione"/>
- <cd:constant name="regionout" value="esciregione"/>
- <cd:constant name="focusin" value="focusin"/>
- <cd:constant name="focusout" value="focusout"/>
- <cd:constant name="afterkey" value="dopotasto"/>
- <cd:constant name="format" value="format"/>
- <cd:constant name="validate" value="verifica"/>
- <cd:constant name="calculate" value="calcola"/>
- <cd:constant name="click" value="click"/>
- <cd:constant name="vcommand" value="vcomando"/>
- <cd:constant name="icommand" value="icomando"/>
- <cd:constant name="ccommand" value="ccomando"/>
- <cd:constant name="textdistance" value="distanzatesto"/>
- <cd:constant name="numberdistance" value="numberdistance"/>
- <cd:constant name="textmargin" value="textmargin"/>
- <cd:constant name="keyword" value="parolachiave"/>
- <cd:constant name="deeptextcommand" value="deeptextcommand"/>
- <cd:constant name="deepnumbercommand" value="deepnumbercommand"/>
- </cd:constants>
-
- <cd:constants>
- <cd:constant name="extras" value="extras"/>
- </cd:constants>
-
- <cd:variables>
- <cd:variable name="on" value="attivo"/>
- <cd:variable name="test" value="test"/>
- <cd:variable name="serried" value="vicino"/>
- <cd:variable name="joinedup" value="unito"/>
- <cd:variable name="absolute" value="assoluto"/>
- <cd:variable name="background" value="sfondo"/>
- <cd:variable name="backward" value="indietro"/>
- <cd:variable name="subbackward" value="sottoindietro"/>
- <cd:variable name="action" value="azione"/>
- <cd:variable name="stopper" value="stopper"/>
- <cd:variable name="paragraph" value="capoverso"/>
- <cd:variable name="all" value="tutti"/>
- <cd:variable name="always" value="sempre"/>
- <cd:variable name="auto" value="auto"/>
- <cd:variable name="autointro" value="autointro"/>
- <cd:variable name="both" value="entrambi"/>
- <cd:variable name="inner" value="interno"/>
- <cd:variable name="blank" value="rigovuoto"/>
- <cd:variable name="disable" value="disattiva"/>
- <cd:variable name="top" value="cima"/>
- <cd:variable name="wide" value="ampio"/>
- <cd:variable name="width" value="ampiezza"/>
- <cd:variable name="minwidth" value="ampiezzamin"/>
- <cd:variable name="outer" value="esterno"/>
- <cd:variable name="numbers" value="numeri"/>
- <cd:variable name="Numbers" value="Numeri"/>
- <cd:variable name="command" value="comando"/>
- <cd:variable name="commands" value="comandi"/>
- <cd:variable name="concept" value="concetto"/>
- <cd:variable name="day" value="giorno"/>
- <cd:variable name="date" value="data"/>
- <cd:variable name="default" value="implicito"/>
- <cd:variable name="final" value="finale"/>
- <cd:variable name="float" value="oggettomobile"/>
- <cd:variable name="depth" value="profondita"/>
- <cd:variable name="doublesided" value="doppiafaccia"/>
- <cd:variable name="first" value="primo"/>
- <cd:variable name="each" value="ogni"/>
- <cd:variable name="singlesided" value="facciasingola"/>
- <cd:variable name="somewhere" value="daqualcheparte"/>
- <cd:variable name="nowhere" value="danessunaparte"/>
- <cd:variable name="even" value="pari"/>
- <cd:variable name="external" value="esterno"/>
- <cd:variable name="file" value="file"/>
- <cd:variable name="flexible" value="flessibile"/>
- <cd:variable name="force" value="forza"/>
- <cd:variable name="used" value="usato"/>
- <cd:variable name="none" value="nessuno"/>
- <cd:variable name="nomarking" value="nomarcature"/>
- <cd:variable name="nonumber" value="nonumber"/>
- <cd:variable name="nowhite" value="nobianco"/>
- <cd:variable name="rotated" value="ruotato"/>
- <cd:variable name="mirrored" value="riflesso"/>
- <cd:variable name="global" value="globale"/>
- <cd:variable name="grid" value="griglia"/>
- <cd:variable name="nogrid" value="nogrid"/>
- <cd:variable name="big" value="grande"/>
- <cd:variable name="bigbodyfont" value="grossofontdeltesto"/>
- <cd:variable name="bigpreference" value="grandepreferenza"/>
- <cd:variable name="gray" value="grigio"/>
- <cd:variable name="halfline" value="mezzariga"/>
- <cd:variable name="keep" value="mantieni"/>
- <cd:variable name="hanging" value="sospeso"/>
- <cd:variable name="spacing" value="spaziatura"/>
- <cd:variable name="nospacing" value="nospacing"/>
- <cd:variable name="repeat" value="ripeti"/>
- <cd:variable name="fix" value="fisso"/>
- <cd:variable name="here" value="qui"/>
- <cd:variable name="header" value="intestazione"/>
- <cd:variable name="high" value="alto"/>
- <cd:variable name="height" value="altezza"/>
- <cd:variable name="minheight" value="altezzamin"/>
- <cd:variable name="horizontal" value="orizzontale"/>
- <cd:variable name="current" value="corrente"/>
- <cd:variable name="hz" value="hz"/>
- <cd:variable name="nohz" value="nohz"/>
- <cd:variable name="italic" value="corsivo"/>
- <cd:variable name="inherit" value="inherit"/>
- <cd:variable name="inleft" value="insinistra"/>
- <cd:variable name="inmargin" value="inmargine"/>
- <cd:variable name="inright" value="indestra"/>
- <cd:variable name="interaction" value="interazione"/>
- <cd:variable name="intext" value="intesto"/>
- <cd:variable name="intro" value="intro"/>
- <cd:variable name="its" value="its"/>
- <cd:variable name="yes" value="si"/>
- <cd:variable name="year" value="anno"/>
- <cd:variable name="frame" value="cornice"/>
- <cd:variable name="marginedge" value="bordomargine"/>
- <cd:variable name="cap" value="cap"/>
- <cd:variable name="capital" value="maiuscolo"/>
- <cd:variable name="referral" value="referral"/>
- <cd:variable name="small" value="piccolo"/>
- <cd:variable name="smallnormal" value="piccolonormale"/>
- <cd:variable name="smallslanted" value="piccoloinclinato"/>
- <cd:variable name="smallslantedbold" value="piccoloinclinatograssetto"/>
- <cd:variable name="smallitalic" value="piccolocorsivo"/>
- <cd:variable name="smallitalicbold" value="piccolocorsivograssetto"/>
- <cd:variable name="smalltype" value="piccolotype"/>
- <cd:variable name="smallbold" value="piccolograssetto"/>
- <cd:variable name="smallboldslanted" value="piccolograssettoinclinato"/>
- <cd:variable name="smallbolditalic" value="piccolograssettocorsivo"/>
- <cd:variable name="smallbodyfont" value="piccolofontdelcorpo"/>
- <cd:variable name="split" value="separa"/>
- <cd:variable name="toggle" value="toggle"/>
- <cd:variable name="color" value="colore"/>
- <cd:variable name="column" value="colonna"/>
- <cd:variable name="columns" value="colonne"/>
- <cd:variable name="head" value="testa"/>
- <cd:variable name="low" value="basso"/>
- <cd:variable name="last" value="ultimo"/>
- <cd:variable name="label" value="etichetta"/>
- <cd:variable name="lohi" value="pedap"/>
- <cd:variable name="tall" value="alto"/>
- <cd:variable name="empty" value="vuoto"/>
- <cd:variable name="Character" value="Lettera"/>
- <cd:variable name="character" value="lettera"/>
- <cd:variable name="Characters" value="Lettere"/>
- <cd:variable name="characters" value="lettere"/>
- <cd:variable name="landscape" value="orizzontale"/>
- <cd:variable name="rule" value="linea"/>
- <cd:variable name="list" value="elenco"/>
- <cd:variable name="leftmargin" value="marginesinistro"/>
- <cd:variable name="leftpage" value="paginasinistra"/>
- <cd:variable name="leftedge" value="bordosinistro"/>
- <cd:variable name="left" value="sinistra"/>
- <cd:variable name="local" value="locale"/>
- <cd:variable name="new" value="nuovo"/>
- <cd:variable name="old" value="old"/>
- <cd:variable name="MONTH" value="MESE"/>
- <cd:variable name="month" value="mese"/>
- <cd:variable name="mar" value="mar"/>
- <cd:variable name="item" value="elemento"/>
- <cd:variable name="marking" value="marcatura"/>
- <cd:variable name="margin" value="margine"/>
- <cd:variable name="max" value="max"/>
- <cd:variable name="min" value="min"/>
- <cd:variable name="mediaeval" value="medievale"/>
- <cd:variable name="medium" value="medio"/>
- <cd:variable name="middle" value="centro"/>
- <cd:variable name="after" value="dopo"/>
- <cd:variable name="name" value="nome"/>
- <cd:variable name="opposite" value="opposto"/>
- <cd:variable name="no" value="no"/>
- <cd:variable name="negative" value="negativo"/>
- <cd:variable name="positive" value="positivo"/>
- <cd:variable name="not" value="non"/>
- <cd:variable name="never" value="mai"/>
- <cd:variable name="normal" value="normale"/>
- <cd:variable name="number" value="numero"/>
- <cd:variable name="offset" value="offset"/>
- <cd:variable name="unknown" value="ignoto"/>
- <cd:variable name="bottom" value="fondo"/>
- <cd:variable name="odd" value="dispari"/>
- <cd:variable name="packed" value="impaccato"/>
- <cd:variable name="unpacked" value="unpacked"/>
- <cd:variable name="makeup" value="makeup"/>
- <cd:variable name="atmargin" value="almargine"/>
- <cd:variable name="overlay" value="sovrapponi"/>
- <cd:variable name="page" value="pagina"/>
- <cd:variable name="pagenumber" value="numeropagina"/>
- <cd:variable name="paper" value="carta"/>
- <cd:variable name="display" value="schermo"/>
- <cd:variable name="reverse" value="invertito"/>
- <cd:variable name="fit" value="adatta"/>
- <cd:variable name="nofit" value="nofit"/>
- <cd:variable name="postscript" value="postscript"/>
- <cd:variable name="preview" value="anteprima"/>
- <cd:variable name="program" value="programma"/>
- <cd:variable name="process" value="process"/>
- <cd:variable name="spot" value="spot"/>
- <cd:variable name="dot" value="punto"/>
- <cd:variable name="ran" value="corse"/>
- <cd:variable name="edge" value="bordo"/>
- <cd:variable name="screen" value="schermo"/>
- <cd:variable name="rectangular" value="rettangolare"/>
- <cd:variable name="rightmargin" value="marginedestro"/>
- <cd:variable name="rightpage" value="paginadestra"/>
- <cd:variable name="rightedge" value="bordodestro"/>
- <cd:variable name="right" value="destra"/>
- <cd:variable name="line" value="riga"/>
- <cd:variable name="hang" value="sospendi"/>
- <cd:variable name="register" value="registro"/>
- <cd:variable name="relative" value="relativo"/>
- <cd:variable name="reset" value="reimposta"/>
- <cd:variable name="Romannumerals" value="Numeriromani"/>
- <cd:variable name="romannumerals" value="numeriromani"/>
- <cd:variable name="greek" value="greco"/>
- <cd:variable name="Greek" value="Greco"/>
- <cd:variable name="round" value="rotondo"/>
- <cd:variable name="rotate" value="ruota"/>
- <cd:variable name="stretch" value="dilata"/>
- <cd:variable name="backspace" value="backspace"/>
- <cd:variable name="broad" value="ampio"/>
- <cd:variable name="row" value="row"/>
- <cd:variable name="slanted" value="inclinato"/>
- <cd:variable name="slantedbold" value="inclinatograssetto"/>
- <cd:variable name="synchronize" value="synchronize"/>
- <cd:variable name="italicbold" value="corsivograssetto"/>
- <cd:variable name="sectionnumber" value="numerosezione"/>
- <cd:variable name="narrow" value="stretto"/>
- <cd:variable name="cutspace" value="cutspace"/>
- <cd:variable name="tolerant" value="tollerante"/>
- <cd:variable name="space" value="spazio"/>
- <cd:variable name="standard" value="standard"/>
- <cd:variable name="start" value="inizia"/>
- <cd:variable name="stop" value="termina"/>
- <cd:variable name="strict" value="rigido"/>
- <cd:variable name="strut" value="strut"/>
- <cd:variable name="sub" value="sotto"/>
- <cd:variable name="sym" value="sim"/>
- <cd:variable name="txt" value="txt"/>
- <cd:variable name="symbol" value="simbolo"/>
- <cd:variable name="text" value="testo"/>
- <cd:variable name="back" value="dietro"/>
- <cd:variable name="test" value="test"/>
- <cd:variable name="inbetween" value="tra"/>
- <cd:variable name="type" value="type"/>
- <cd:variable name="off" value="disattivo"/>
- <cd:variable name="url" value="url"/>
- <cd:variable name="URL" value="URL"/>
- <cd:variable name="fixed" value="fisso"/>
- <cd:variable name="loose" value="lento"/>
- <cd:variable name="continue" value="continua"/>
- <cd:variable name="vertical" value="verticale"/>
- <cd:variable name="bold" value="grassetto"/>
- <cd:variable name="sansbold" value="sansgrassetto"/>
- <cd:variable name="boldslanted" value="grassettoinclinato"/>
- <cd:variable name="bolditalic" value="grassettocorsivo"/>
- <cd:variable name="quadruple" value="quadruplo"/>
- <cd:variable name="footer" value="piedipagina"/>
- <cd:variable name="next" value="successivo"/>
- <cd:variable name="before" value="prima"/>
- <cd:variable name="foreground" value="foreground"/>
- <cd:variable name="preference" value="preferenza"/>
- <cd:variable name="temporary" value="temporaneo"/>
- <cd:variable name="forward" value="avanti"/>
- <cd:variable name="subforward" value="sottoavanti"/>
- <cd:variable name="previous" value="precedente"/>
- <cd:variable name="value" value="valore"/>
- <cd:variable name="week" value="settimana"/>
- <cd:variable name="weekday" value="giornosettimana"/>
- <cd:variable name="WEEKDAY" value="GIORNOSETTIMANA"/>
- <cd:variable name="random" value="casuale"/>
- <cd:variable name="white" value="bianco"/>
- <cd:variable name="very" value="molto"/>
- <cd:variable name="verytolerant" value="moltotollerante"/>
- <cd:variable name="verystrict" value="moltorigido"/>
- <cd:variable name="see" value="vedi"/>
- <cd:variable name="smallcaps" value="maiuscoletto"/>
- <cd:variable name="WORD" value="PAROLA"/>
- <cd:variable name="firstpage" value="primapagina"/>
- <cd:variable name="firstcolumn" value="firstcolumn"/>
- <cd:variable name="previouspage" value="paginaprecedente"/>
- <cd:variable name="nextpage" value="paginasuccessiva"/>
- <cd:variable name="lastpage" value="ultimapagina"/>
- <cd:variable name="lastcolumn" value="lastcolumn"/>
- <cd:variable name="lastpagenumber" value="lastpagenumber"/>
- <cd:variable name="subpage" value="sottopagina"/>
- <cd:variable name="firstsubpage" value="primasottopagina"/>
- <cd:variable name="previoussubpage" value="sottopaginaprecedente"/>
- <cd:variable name="nextsubpage" value="sottopaginasuccessiva"/>
- <cd:variable name="lastsubpage" value="ultimasottopagina"/>
- <cd:variable name="nextevenpage" value="paginaparisuccessiva"/>
- <cd:variable name="nextoddpage" value="paginadisparisuccessiva"/>
- <cd:variable name="previousevenpage" value="paginapariprecedente"/>
- <cd:variable name="previousoddpage" value="paginadispariprecedente"/>
- <cd:variable name="readonly" value="solalettura"/>
- <cd:variable name="required" value="richiestp"/>
- <cd:variable name="protected" value="protetto"/>
- <cd:variable name="sorted" value="ordinato"/>
- <cd:variable name="unavailable" value="nondisponibile"/>
- <cd:variable name="hidden" value="nascosto"/>
- <cd:variable name="printable" value="stampabile"/>
- <cd:variable name="bookmark" value="segnalibro"/>
- <cd:variable name="nocheck" value="nocheck"/>
- <cd:variable name="innermargin" value="margineinterno"/>
- <cd:variable name="outermargin" value="margineesterno"/>
- <cd:variable name="inneredge" value="bordointerno"/>
- <cd:variable name="outeredge" value="bordoesterno"/>
- <cd:variable name="controls" value="controlli"/>
- <cd:variable name="nothanging" value="nonsospeso"/>
- <cd:variable name="hyphenated" value="sillabato"/>
- <cd:variable name="nothyphenated" value="nonsillabato"/>
- <cd:variable name="overprint" value="overprint"/>
- <cd:variable name="knockout" value="knockout"/>
- <cd:variable name="xml" value="xml"/>
- <cd:variable name="enumeration" value="enumerazione"/>
- <cd:variable name="description" value="descrizione"/>
- <cd:variable name="lefthanging" value="lefthanging"/>
- <cd:variable name="righthanging" value="righthanging"/>
- </cd:variables>
-
- <cd:constants>
- <cd:constant name="controls" value="controlli"/>
- <cd:constant name="global" value="globale"/>
- <cd:constant name="overprint" value="overprint"/>
- </cd:constants>
-
- <cd:variables>
- <cd:variable name="conversion" value="coversione"/>
- <cd:variable name="by" value="da"/>
- </cd:variables>
-
- <cd:constants>
- <cd:constant name="dx" value="dx"/>
- <cd:constant name="dy" value="dy"/>
- <cd:constant name="nx" value="nx"/>
- <cd:constant name="ny" value="ny"/>
- <cd:constant name="nr" value="nr"/>
- <cd:constant name="nl" value="nl"/>
- <cd:constant name="nc" value="nc"/>
- <cd:constant name="sx" value="sx"/>
- <cd:constant name="sy" value="sy"/>
- <cd:constant name="n" value="n"/>
- <cd:constant name="vfil" value="vfil"/>
- <cd:constant name="hfil" value="hfil"/>
- <cd:constant name="strut" value="strut"/>
- <cd:constant name="autostrut" value="autostrut"/>
- <cd:constant name="reset" value="reset"/>
- <cd:constant name="set" value="set"/>
- <cd:constant name="escape" value="escape"/>
- <cd:constant name="apa" value="apa"/>
- </cd:constants>
-
- <cd:variables>
- <cd:variable name="calligraphic" value="calligrafico"/>
- <cd:variable name="handwritten" value="grafiamanuale"/>
- <cd:variable name="sansserif" value="sansserif"/>
- <cd:variable name="roman" value="roman"/>
- <cd:variable name="teletype" value="teletype"/>
- <cd:variable name="type" value="type"/>
- <cd:variable name="serif" value="serif"/>
- <cd:variable name="regular" value="regolare"/>
- <cd:variable name="support" value="supporto"/>
- <cd:variable name="sans" value="sans"/>
- <cd:variable name="mono" value="mono"/>
- </cd:variables>
-
- <cd:elements>
- <cd:element name="begin" value="inizio"/>
- <cd:element name="end" value="fine"/>
- <cd:element name="coupled" value="accoppiato"/>
- <cd:element name="get" value="prendi"/>
- <cd:element name="currentlocal" value="correntelocale"/>
- <cd:element name="endsetup" value="endsetup"/>
- <cd:element name="load" value="carica"/>
- <cd:element name="emptyone" value="prazdne"/>
- <cd:element name="emptytwo" value="vuoti"/>
- <cd:element name="list" value="elenco"/>
- <cd:element name="listof" value="elencodi"/>
- <cd:element name="local" value="locale"/>
- <cd:element name="place" value="metti"/>
- <cd:element name="reserve" value="riserva"/>
- <cd:element name="start" value="inizia"/>
- <cd:element name="setup" value="imposta"/>
- <cd:element name="stop" value="termina"/>
- <cd:element name="increment" value="incrementa"/>
- <cd:element name="next" value="successivo"/>
- <cd:element name="complete" value="completo"/>
- <cd:element name="previous" value="precedente"/>
- <cd:element name="previouslocal" value="precedentelocale"/>
- <cd:element name="see" value="vedi"/>
- <cd:element name="type" value="type"/>
- <cd:element name="makeup" value="makeup"/>
- <cd:element name="text" value="testo"/>
- </cd:elements>
-
- <cd:variables>
- <cd:variable name="buffer" value="buffer"/>
- <cd:variable name="linenote" value="linenote"/>
- <cd:variable name="comment" value="commento"/>
- <cd:variable name="interactionmenu" value="menuinterattivo"/>
- <cd:variable name="postponing" value="posporre"/>
- <cd:variable name="hiding" value="nascondere"/>
- <cd:variable name="tabulate" value="tabulato"/>
- <cd:variable name="tabulatehead" value="testatabulato"/>
- <cd:variable name="tabulatetail" value="codatabulato"/>
- <cd:variable name="fact" value="fatto"/>
- <cd:variable name="legend" value="legenda"/>
- <cd:variable name="formula" value="formula"/>
- <cd:variable name="tablehead" value="testatabella"/>
- <cd:variable name="tabletail" value="codatabella"/>
- <cd:variable name="setups" value="nastaveni"/>
- <cd:variable name="helptext" value="testoaiuto"/>
- <cd:variable name="localenvironment" value="ambientelocale"/>
- <cd:variable name="sectionblockenvironment" value="ambientebloccosezione"/>
- <cd:variable name="pagecomment" value="commentopagina"/>
- </cd:variables>
-
- <cd:variables>
- <cd:variable name="FirstPage" value="PrimaPagina"/>
- <cd:variable name="PreviousPage" value="PaginaPrecedente"/>
- <cd:variable name="NextPage" value="PaginaSuccessiva"/>
- <cd:variable name="LastPage" value="UltimaPagina"/>
- <cd:variable name="PreviousJump" value="SaltoPrecedente"/>
- <cd:variable name="NextJump" value="SaltoSuccessivo"/>
- <cd:variable name="ToggleViewer" value="ScambiaVisualizzatore"/>
- <cd:variable name="ExitViewer" value="EsciVisualizzatore"/>
- <cd:variable name="CloseDocument" value="ChiudiDocumento"/>
- <cd:variable name="SaveDocument" value="SalvaDocumento"/>
- <cd:variable name="SaveNamedDocument" value="SaveNamedDocument"/>
- <cd:variable name="OpenNamedDocument" value="OpenNamedDocument"/>
- <cd:variable name="ViewerHelp" value="AiutoVisualizzatore"/>
- <cd:variable name="PrintDocument" value="StampaDocumento"/>
- <cd:variable name="SearchDocument" value="CercaDocumento"/>
- <cd:variable name="SearchAgain" value="CercaAncora"/>
- <cd:variable name="Query" value="Richiesta"/>
- <cd:variable name="QueryAgain" value="RinnovaRichiesta"/>
- <cd:variable name="GotoPage" value="VaiAPagina"/>
- <cd:variable name="StartMovie" value="IniziaFilm"/>
- <cd:variable name="StopMovie" value="FermaFilm"/>
- <cd:variable name="PauseMovie" value="PausaFilm"/>
- <cd:variable name="ResumeMovie" value="RiprendiFilm"/>
- <cd:variable name="StartSound" value="IniziaSuono"/>
- <cd:variable name="StopSound" value="FermaSuono"/>
- <cd:variable name="PauseSound" value="PausaSuono"/>
- <cd:variable name="ResumeSound" value="RiprendiSuono"/>
- <cd:variable name="StartRendering" value="StartRendering"/>
- <cd:variable name="StopRendering" value="StopRendering"/>
- <cd:variable name="PauseRendering" value="PauseRendering"/>
- <cd:variable name="ResumeRendering" value="ResumeRendering"/>
- <cd:variable name="SaveForm" value="SalvaForm"/>
- <cd:variable name="LoadForm" value="CaricaForm"/>
- <cd:variable name="ResetForm" value="ReimpostaForm"/>
- <cd:variable name="SubmitForm" value="MandaForm"/>
- <cd:variable name="HideField" value="NascondiCampo"/>
- <cd:variable name="ShowField" value="MostraCampo"/>
- <cd:variable name="FitWidth" value="FitWidth"/>
- <cd:variable name="FitHeight" value="FitHeight"/>
- <cd:variable name="HideLayer" value="HideLayer"/>
- <cd:variable name="VideLayer" value="VideLayer"/>
- <cd:variable name="ToggleLayer" value="ToggleLayer"/>
- <cd:variable name="ShowThumbs" value="MostraThumbs"/>
- <cd:variable name="ShowBookmarks" value="MostraSegnalibro"/>
- </cd:variables>
-
- <cd:variables>
- <cd:variable name="New" value="Nuovo"/>
- <cd:variable name="Balloon" value="Pallone"/>
- <cd:variable name="Addition" value="Aggiunta"/>
- <cd:variable name="Help" value="Aiuto"/>
- <cd:variable name="Paragraph" value="Capoverso"/>
- <cd:variable name="Key" value="Tasto"/>
- </cd:variables>
-
- <cd:constants>
- <cd:constant name="bet" value="bet"/>
- <cd:constant name="dat" value="dat"/>
- <cd:constant name="ken" value="ken"/>
- <cd:constant name="ref" value="ref"/>
- </cd:constants>
-
- <cd:variables>
- <cd:variable name="formeel" value="formeel"/>
- <cd:variable name="informeel" value="informeel"/>
- <cd:variable name="rekening" value="rekening"/>
- <cd:variable name="sticker" value="sticker"/>
- <cd:variable name="sheet" value="sheet"/>
- <cd:variable name="brief" value="brief"/>
- <cd:variable name="ls" value="ls"/>
- </cd:variables>
-
- <cd:commands>
- <cd:command name="language" value="lingua"/>
- <cd:command name="mainlanguage" value="linguaprincipale"/>
- <cd:command name="translate" value="traduci"/>
- <cd:command name="installlanguage" value="installalingua"/>
- <cd:command name="setuplanguage" value="impostalingua"/>
- <cd:command name="showmakeup" value="mostramakeup"/>
- <cd:command name="useencoding" value="usacodifica"/>
- <cd:command name="usespecials" value="usaspecialita"/>
- <cd:command name="defineoutput" value="definiscioutput"/>
- <cd:command name="setupoutput" value="impostaoutput"/>
- <cd:command name="defineaccent" value="definisciaccento"/>
- <cd:command name="definecharacter" value="definiscicarattere"/>
- <cd:command name="definecommand" value="definiscicomando"/>
- <cd:command name="startcoding" value="iniziacodifica"/>
- <cd:command name="stopcoding" value="terminacodifica"/>
- <cd:command name="definebodyfontenvironment" value="definisciambientefontdeltesto"/>
- <cd:command name="setupbodyfontenvironment" value="impostaambientefontdeltesto"/>
- <cd:command name="definebodyfont" value="definiscifontdeltesto"/>
- <cd:command name="definefont" value="definiscifont"/>
- <cd:command name="definefontsynonym" value="definiscisinonimofont"/>
- <cd:command name="definestyle" value="definiscistile"/>
- <cd:command name="definefontstyle" value="definiscistilefont"/>
- <cd:command name="setupstrut" value="impostastrut"/>
- <cd:command name="setuptype" value="impostatype"/>
- <cd:command name="type" value="type"/>
- <cd:command name="typ" value="typ"/>
- <cd:command name="arg" value="arg"/>
- <cd:command name="tex" value="tex"/>
- <cd:command name="definetyping" value="definiscityping"/>
- <cd:command name="definetype" value="definiscitype"/>
- <cd:command name="setuptyping" value="impostatyping"/>
- <cd:command name="typefile" value="typefile"/>
- <cd:command name="setupfootnotes" value="impostanotepdp"/>
- <cd:command name="setupfootnotedefinition" value="impostadefinizionenotepdp"/>
- <cd:command name="note" value="nota"/>
- <cd:command name="footnote" value="notapdp"/>
- <cd:command name="footnotetext" value="testonotapdp"/>
- <cd:command name="startlocalfootnotes" value="inizianotepdplocali"/>
- <cd:command name="stoplocalfootnotes" value="terminanotepdplocali"/>
- <cd:command name="placelocalfootnotes" value="mettinotepdplocali"/>
- <cd:command name="placefootnotes" value="mettinotepdp"/>
- <cd:command name="currentdate" value="datadioggi"/>
- <cd:command name="date" value="data"/>
- <cd:command name="weekday" value="giornosettimana"/>
- <cd:command name="WEEKDAY" value="GIORNOSETTIMANA"/>
- <cd:command name="month" value="mese"/>
- <cd:command name="MONTH" value="MESE"/>
- <cd:command name="Numbers" value="Numeri"/>
- <cd:command name="numbers" value="numeri"/>
- <cd:command name="romannumerals" value="numeriromani"/>
- <cd:command name="Romannumerals" value="Numeriromani"/>
- <cd:command name="character" value="lettera"/>
- <cd:command name="Character" value="Lettera"/>
- <cd:command name="characters" value="lettere"/>
- <cd:command name="Characters" value="Lettere"/>
- <cd:command name="unknown" value="ignoto"/>
- <cd:command name="definesymbol" value="definiscisimbolo"/>
- <cd:command name="definefiguresymbol" value="definiscifigurasimbolo"/>
- <cd:command name="symbol" value="simbolo"/>
- <cd:command name="setupsymbolset" value="impostasetsimboli"/>
- <cd:command name="showsymbolset" value="mostrasetsimboli"/>
- <cd:command name="startsymbolset" value="iniziasetsimboli"/>
- <cd:command name="usesymbols" value="usasimboli"/>
- <cd:command name="defineconversion" value="definisciconversione"/>
- <cd:command name="convertnumber" value="convertinumero"/>
- <cd:command name="setupcapitals" value="impostamaiuscole"/>
- <cd:command name="smallcapped" value="cap"/>
- <cd:command name="notsmallcapped" value="nocap"/>
- <cd:command name="CAPPED" value="CAP"/>
- <cd:command name="SmallCapped" value="Cap"/>
- <cd:command name="SmallCaps" value="Caps"/>
- <cd:command name="WORD" value="PAROLA"/>
- <cd:command name="WORDS" value="PAROLE"/>
- <cd:command name="Word" value="Parola"/>
- <cd:command name="Words" value="Parole"/>
- <cd:command name="stretched" value="stirato"/>
- <cd:command name="overstrike" value="sbarrato"/>
- <cd:command name="overstrikes" value="sbarrati"/>
- <cd:command name="overbar" value="sopralinea"/>
- <cd:command name="overbars" value="sopralinee"/>
- <cd:command name="underbar" value="sottolinea"/>
- <cd:command name="underbars" value="sottolinee"/>
- <cd:command name="setupunderbar" value="impostasottolinea"/>
- <cd:command name="setupbodyfont" value="impostafontdeltesto"/>
- <cd:command name="switchtobodyfont" value="cambiaafontdeltesto"/>
- <cd:command name="showbodyfont" value="mostrafontdeltesto"/>
- <cd:command name="showbodyfontenvironment" value="mostraambientefontdeltesto"/>
- <cd:command name="headtext" value="testoinstestazioni"/>
- <cd:command name="labeltext" value="testoetichetta"/>
- <cd:command name="LABELTEXT" value="TESTOETICHETTA"/>
- <cd:command name="setupheadtext" value="impostatestointestazioni"/>
- <cd:command name="setuplabeltext" value="impostatestoetichette"/>
- <cd:command name="marginrule" value="lineamargine"/>
- <cd:command name="startmarginrule" value="inizialineamargine"/>
- <cd:command name="stopmarginrule" value="terminalineamargine"/>
- <cd:command name="setupmarginrules" value="impostalineemargine"/>
- <cd:command name="blackrule" value="lineanera"/>
- <cd:command name="blackrules" value="lineenere"/>
- <cd:command name="setupblackrules" value="impostalineenere"/>
- <cd:command name="setupscreens" value="impostaschermi"/>
- <cd:command name="framed" value="incorniciato"/>
- <cd:command name="inframed" value="circondato"/>
- <cd:command name="mframed" value="maframed"/>
- <cd:command name="inmframed" value="inmaframed"/>
- <cd:command name="setupframed" value="impostaincorniciato"/>
- <cd:command name="setuplinewidth" value="impostaampiezzariga"/>
- <cd:command name="setupthinrules" value="impostalineesottili"/>
- <cd:command name="thinrule" value="lineasottile"/>
- <cd:command name="thinrules" value="lineesottili"/>
- <cd:command name="hairline" value="capello"/>
- <cd:command name="vl" value="vl"/>
- <cd:command name="hl" value="hl"/>
- <cd:command name="defineframed" value="definisciincorniciato"/>
- <cd:command name="defineframedtext" value="definiscitestoincorniciato"/>
- <cd:command name="setupframedtexts" value="impostatestiincorniciati"/>
- <cd:command name="defineoverlay" value="definiscisovrapposizione"/>
- <cd:command name="definelayer" value="definelayer"/>
- <cd:command name="background" value="sfondo"/>
- <cd:command name="startbackground" value="iniziasfondo"/>
- <cd:command name="stopbackground" value="terminasfondo"/>
- <cd:command name="setupbackground" value="impostasfondo"/>
- <cd:command name="fillinrules" value="lineeriempimento"/>
- <cd:command name="setupfillinrules" value="impostalineeriempimento"/>
- <cd:command name="fillintext" value="testoriempimento"/>
- <cd:command name="setupfillinlines" value="impostarigheriempimento"/>
- <cd:command name="fillinline" value="rigariempimento"/>
- <cd:command name="setuptextrules" value="impostalineetesto"/>
- <cd:command name="textrule" value="lineatesto"/>
- <cd:command name="starttextrule" value="inizialineatesto"/>
- <cd:command name="stoptextrule" value="terminalineatesto"/>
- <cd:command name="usemodule" value="usamodulo"/>
- <cd:command name="usemodules" value="usamoduli"/>
- <cd:command name="starttext" value="iniziatesto"/>
- <cd:command name="stoptext" value="terminatesto"/>
- <cd:command name="margintitle" value="titoloinmargine"/>
- <cd:command name="marginword" value="parolainmargine"/>
- <cd:command name="margintext" value="testoinmargine"/>
- <cd:command name="inleft" value="insinistra"/>
- <cd:command name="inmargin" value="inmargine"/>
- <cd:command name="inothermargin" value="inaltromargine"/>
- <cd:command name="inright" value="indestra"/>
- <cd:command name="ininner" value="ininner"/>
- <cd:command name="inouter" value="inouter"/>
- <cd:command name="startmarginblock" value="iniziabloccomargine"/>
- <cd:command name="stopmarginblock" value="terminabloccomargine"/>
- <cd:command name="defineinmargin" value="defineinmargin"/>
- <cd:command name="setupinmargin" value="impostainmargine"/>
- <cd:command name="setupmarginblocks" value="impostablocchimargine"/>
- <cd:command name="inleftedge" value="inlatosinistro"/>
- <cd:command name="inleftmargin" value="inmarginesinistro"/>
- <cd:command name="inrightmargin" value="inmarginedestro"/>
- <cd:command name="inrightedge" value="inlatodestro"/>
- <cd:command name="atleftmargin" value="atleftmargin"/>
- <cd:command name="atrightmargin" value="atrightmargin"/>
- <cd:command name="wordright" value="paroladestra"/>
- <cd:command name="defineblank" value="definiscirigovuoto"/>
- <cd:command name="blank" value="rigovuoto"/>
- <cd:command name="setupblank" value="impostarigovuoto"/>
- <cd:command name="correctwhitespace" value="correggispaziobianco"/>
- <cd:command name="fixedspaces" value="spazifissi"/>
- <cd:command name="fixedspace" value="spaziofisso"/>
- <cd:command name="nospace" value="nientespazio"/>
- <cd:command name="space" value="spazio"/>
- <cd:command name="nowhitespace" value="nientespaziobianco"/>
- <cd:command name="packed" value="impaccato"/>
- <cd:command name="startpacked" value="iniziaimpaccato"/>
- <cd:command name="stoppacked" value="terminaimpaccato"/>
- <cd:command name="startunpacked" value="iniziaunpacked"/>
- <cd:command name="stopunpacked" value="terminaunpacked"/>
- <cd:command name="startlinecorrection" value="iniziacorrezioneriga"/>
- <cd:command name="stoplinecorrection" value="terminacorrezioneriga"/>
- <cd:command name="godown" value="vaigiu"/>
- <cd:command name="whitespace" value="spaziobianco"/>
- <cd:command name="noindenting" value="nienterientro"/>
- <cd:command name="indenting" value="rientro"/>
- <cd:command name="setupindenting" value="impostarientro"/>
- <cd:command name="startalignment" value="iniziaallineamento"/>
- <cd:command name="stopalignment" value="terminaallineamento"/>
- <cd:command name="startlines" value="iniziarighe"/>
- <cd:command name="stoplines" value="terminarighe"/>
- <cd:command name="setupparagraphnumbering" value="impostanumerazionecapoversi"/>
- <cd:command name="setuplinenumbering" value="impostanumerazionerighe"/>
- <cd:command name="startlinenumbering" value="inizianumerazionerighe"/>
- <cd:command name="stoplinenumbering" value="terminanumerazionerighe"/>
- <cd:command name="startline" value="iniziariga"/>
- <cd:command name="stopline" value="terminariga"/>
- <cd:command name="someline" value="qualcheriga"/>
- <cd:command name="inline" value="inriga"/>
- <cd:command name="crlf" value="crlf"/>
- <cd:command name="emptylines" value="emptylines"/>
- <cd:command name="setuplines" value="impostarighe"/>
- <cd:command name="startnarrower" value="iniziapiustretto"/>
- <cd:command name="stopnarrower" value="terminapiustretto"/>
- <cd:command name="setupnarrower" value="impostapiustretto"/>
- <cd:command name="definetabulate" value="definiscitabulato"/>
- <cd:command name="setuptabulate" value="impostatabulato"/>
- <cd:command name="starttable" value="iniziatabella"/>
- <cd:command name="stoptable" value="terminatabella"/>
- <cd:command name="starttables" value="iniziatabelle"/>
- <cd:command name="stoptables" value="terminatabelle"/>
- <cd:command name="setuptables" value="impostatabelle"/>
- <cd:command name="definetabletemplate" value="definiscimodellotabella"/>
- <cd:command name="page" value="pagina"/>
- <cd:command name="testcolumn" value="testcolumn"/>
- <cd:command name="testpage" value="testpage"/>
- <cd:command name="couplepage" value="accoppiapagina"/>
- <cd:command name="pagetype" value="tipopagina"/>
- <cd:command name="processpage" value="elaborapagina"/>
- <cd:command name="couplepaper" value="accoppiacarta"/>
- <cd:command name="selectpaper" value="selezionacarta"/>
- <cd:command name="screen" value="schermo"/>
- <cd:command name="definesection" value="definiscisezione"/>
- <cd:command name="definesectionblock" value="definiscibloccosezione"/>
- <cd:command name="setupsectionblock" value="impostabloccosezione"/>
- <cd:command name="setupsection" value="impostasezione"/>
- <cd:command name="notopandbottomlines" value="nientelineecimafondo"/>
- <cd:command name="noheaderandfooterlines" value="nientelineintestazionepdp"/>
- <cd:command name="setuptop" value="impostacima"/>
- <cd:command name="setuptoptexts" value="impostatesticima"/>
- <cd:command name="setupheader" value="impostainstestazione"/>
- <cd:command name="setupheadertexts" value="impostatestiintestazioni"/>
- <cd:command name="setuppagenumbering" value="impostanumerazionepagina"/>
- <cd:command name="getnumber" value="getnumber"/>
- <cd:command name="incrementnumber" value="incrementanumero"/>
- <cd:command name="decrementnumber" value="decrementnumber"/>
- <cd:command name="resetnumber" value="resetnumber"/>
- <cd:command name="setnumber" value="setnumber"/>
- <cd:command name="setupnumber" value="impostanumerazione"/>
- <cd:command name="setupbottom" value="impostafondo"/>
- <cd:command name="setupbottomtexts" value="impostatestifondo"/>
- <cd:command name="setupfooter" value="impostapdp"/>
- <cd:command name="setupfootertexts" value="impostatestipdp"/>
- <cd:command name="setuppagenumber" value="impostanumeropagina"/>
- <cd:command name="setupsubpagenumber" value="impostanumerosottopagina"/>
- <cd:command name="subpagenumber" value="subpagenumber"/>
- <cd:command name="setuptext" value="impostatesto"/>
- <cd:command name="setuptexttexts" value="impostatestotesti"/>
- <cd:command name="settextcontent" value="settext"/>
- <cd:command name="resettext" value="resettextcontent"/>
- <cd:command name="definetext" value="definiscitesto"/>
- <cd:command name="pagenumber" value="numeropagina"/>
- <cd:command name="completepagenumber" value="numeropaginacompleto"/>
- <cd:command name="placepagenumber" value="mettinumeropagina"/>
- <cd:command name="items" value="elementi"/>
- <cd:command name="setupitems" value="impostaelementi"/>
- <cd:command name="leftaligned" value="allineasinistra"/>
- <cd:command name="midaligned" value="allineacentro"/>
- <cd:command name="rightaligned" value="allineadestra"/>
- <cd:command name="startcolumns" value="iniziacolonne"/>
- <cd:command name="stopcolumns" value="terminacolonne"/>
- <cd:command name="setupcolumns" value="impostacolonne"/>
- <cd:command name="column" value="colonna"/>
- <cd:command name="head" value="testa"/>
- <cd:command name="but" value="fondo"/>
- <cd:command name="item" value="elemento"/>
- <cd:command name="nop" value="nop"/>
- <cd:command name="mar" value="mar"/>
- <cd:command name="sym" value="sim"/>
- <cd:command name="txt" value="txt"/>
- <cd:command name="its" value="el"/>
- <cd:command name="ran" value="ran"/>
- <cd:command name="headsym" value="headsym"/>
- <cd:command name="defineitemgroup" value="defineitemgroup"/>
- <cd:command name="setupitemgroup" value="setupitemgroup"/>
- <cd:command name="setupitemgroups" value="setupitemgroups"/>
- <cd:command name="definehead" value="definiscitesta"/>
- <cd:command name="setuphead" value="impostatesta"/>
- <cd:command name="setupheads" value="impostateste"/>
- <cd:command name="setupheadnumber" value="impostanumerotesta"/>
- <cd:command name="headnumber" value="numerotesta"/>
- <cd:command name="currentheadnumber" value="numerotestacorrente"/>
- <cd:command name="determineheadnumber" value="determinanumerotesta"/>
- <cd:command name="resetmarking" value="reimpostamarcatura"/>
- <cd:command name="setupmarking" value="impostamarcatura"/>
- <cd:command name="definemarking" value="definiscimarcatura"/>
- <cd:command name="nomarking" value="nientemarcatura"/>
- <cd:command name="marking" value="marcatura"/>
- <cd:command name="decouplemarking" value="separamarcatura"/>
- <cd:command name="couplemarking" value="accoppiamarcatura"/>
- <cd:command name="getmarking" value="prendimarcatura"/>
- <cd:command name="definelayout" value="definiscilayout"/>
- <cd:command name="setuplayout" value="impostalayout"/>
- <cd:command name="adaptlayout" value="adattalayout"/>
- <cd:command name="placeongrid" value="mettiingriglia"/>
- <cd:command name="moveongrid" value="spostaagriglia"/>
- <cd:command name="showsetups" value="mostraimpostazioni"/>
- <cd:command name="showframe" value="mostracornice"/>
- <cd:command name="showgrid" value="mostragriglia"/>
- <cd:command name="showlayout" value="mostralyout"/>
- <cd:command name="showprint" value="mostrastampa"/>
- <cd:command name="showstruts" value="mostrastruts"/>
- <cd:command name="definepapersize" value="definiscidimensionicarta"/>
- <cd:command name="setuppapersize" value="impostadimensionicarta"/>
- <cd:command name="setuppaper" value="setuppaper"/>
- <cd:command name="setuparranging" value="impostaparranging"/>
- <cd:command name="version" value="versione"/>
- <cd:command name="setupbackgrounds" value="impostasfondi"/>
- <cd:command name="setupalign" value="impostaallineamento"/>
- <cd:command name="setupwhitespace" value="impostaspaziobianco"/>
- <cd:command name="setupinteraction" value="impostainterazione"/>
- <cd:command name="setupinteractionmenu" value="impostamenuinterazione"/>
- <cd:command name="defineinteractionmenu" value="definiscimenuinterazione"/>
- <cd:command name="disableinteractionmenu" value="disabilitamenuinterazione"/>
- <cd:command name="interactionmenu" value="menuinterattivo"/>
- <cd:command name="interactionbuttons" value="pulsantinterazione"/>
- <cd:command name="interactionbar" value="barrainterazione"/>
- <cd:command name="setupinteractionbar" value="impostabarrainterazione"/>
- <cd:command name="setupinteractionscreen" value="impostaschermointerazione"/>
- <cd:command name="placebookmarks" value="mettisegnalibro"/>
- <cd:command name="bookmark" value="segnalibro"/>
- <cd:command name="definelogo" value="definiscilogo"/>
- <cd:command name="placelogos" value="mettiloghi"/>
- <cd:command name="definecolor" value="definiscicolore"/>
- <cd:command name="definecolorgroup" value="definiscigruppocolori"/>
- <cd:command name="definepalet" value="definiscitavolozza"/>
- <cd:command name="graycolor" value="coloregrigio"/>
- <cd:command name="color" value="colore"/>
- <cd:command name="startcolor" value="iniziacolore"/>
- <cd:command name="stopcolor" value="terminacolore"/>
- <cd:command name="setupcolors" value="impostacolori"/>
- <cd:command name="setupcolor" value="impostacolore"/>
- <cd:command name="setuppalet" value="impostatavolozza"/>
- <cd:command name="showcolor" value="mostracolore"/>
- <cd:command name="showcolorgroup" value="mostragruppocolori"/>
- <cd:command name="showpalet" value="mostratavolozza"/>
- <cd:command name="comparecolorgroup" value="confrontagruppocolori"/>
- <cd:command name="comparepalet" value="confrontatavolozza"/>
- <cd:command name="colorvalue" value="valorecolore"/>
- <cd:command name="greyvalue" value="valoregrigio"/>
- <cd:command name="startraster" value="iniziaraster"/>
- <cd:command name="stopraster" value="terminaraster"/>
- <cd:command name="defineblock" value="definisciblocco"/>
- <cd:command name="setupblock" value="impostablocco"/>
- <cd:command name="useblocks" value="usablocco"/>
- <cd:command name="processblocks" value="elaborablocchi"/>
- <cd:command name="keepblocks" value="tieniblocchi"/>
- <cd:command name="selectblocks" value="selezionablocchi"/>
- <cd:command name="hideblocks" value="nascondiblocchi"/>
- <cd:command name="bypassblocks" value="saltablocchi"/>
- <cd:command name="forceblocks" value="forzablocchi"/>
- <cd:command name="nomoreblocks" value="bastablocchi"/>
- <cd:command name="definelist" value="definiscielenco"/>
- <cd:command name="definecombinedlist" value="definiscielencocombinato"/>
- <cd:command name="listsymbol" value="listsymbol"/>
- <cd:command name="placelist" value="mettielenco"/>
- <cd:command name="plaatsruwelijst" value="placerawlist"/>
- <cd:command name="placecombinedlist" value="mettielencocombinato"/>
- <cd:command name="writetolist" value="scriviinelenco"/>
- <cd:command name="writebetweenlist" value="scrividentroelenco"/>
- <cd:command name="immediatetolist" value="immediatetolist"/>
- <cd:command name="immediatebetweenlist" value="immediatebetweenlist"/>
- <cd:command name="setuplist" value="impostaelenco"/>
- <cd:command name="setupcombinedlist" value="impostaelencocombinato"/>
- <cd:command name="determinelistcharacteristics" value="determinacarattersticheelenco"/>
- <cd:command name="listlength" value="lunghezzaelenco"/>
- <cd:command name="listwidth" value="ampiezzaelenco"/>
- <cd:command name="listheight" value="altezzaelenco"/>
- <cd:command name="nolist" value="nienteelenco"/>
- <cd:command name="definereferencelist" value="definiscilistariferimenti"/>
- <cd:command name="placereferencelist" value="mettilistariferimenti"/>
- <cd:command name="writetoreferencelist" value="scriviinlistariferimenti"/>
- <cd:command name="setupreferencelist" value="impostalistariferimenti"/>
- <cd:command name="definefloat" value="definiscioggettomobile"/>
- <cd:command name="setupfloat" value="impostaoggettomobile"/>
- <cd:command name="setupfloats" value="impostaoggettimobili"/>
- <cd:command name="splitfloat" value="spezzaoggettomobile"/>
- <cd:command name="setupfloatsplitting" value="impostaspezzamentooggettomobile"/>
- <cd:command name="placefloat" value="placefloat"/>
- <cd:command name="movesidefloat" value="movesidefloat"/>
- <cd:command name="defineplacement" value="defineplacement"/>
- <cd:command name="setupplacement" value="setupplacement"/>
- <cd:command name="definecombination" value="definecombination"/>
- <cd:command name="startcombination" value="iniziacombinazione"/>
- <cd:command name="stopcombination" value="terminacombinazione"/>
- <cd:command name="placesidebyside" value="mettifiancoafianco"/>
- <cd:command name="placeontopofeachother" value="mettiunosullaltro"/>
- <cd:command name="setupcaption" value="impostacaption"/>
- <cd:command name="setupcaptions" value="impostacaptions"/>
- <cd:command name="setupcombinations" value="impostacombinazioni"/>
- <cd:command name="startoverlay" value="iniziasovrapposizione"/>
- <cd:command name="stopoverlay" value="terminasovrapposizione"/>
- <cd:command name="defineregister" value="definisciregistro"/>
- <cd:command name="coupleregister" value="accoppiaregistro"/>
- <cd:command name="setupregister" value="impostaregistro"/>
- <cd:command name="writetoregister" value="scriviinregistro"/>
- <cd:command name="completeregister" value="completeregister"/>
- <cd:command name="placeregister" value="mettiregistro"/>
- <cd:command name="determineregistercharacteristics" value="determinacaratteristicheregistro"/>
- <cd:command name="definesorting" value="definisciordinamento"/>
- <cd:command name="definesynonyms" value="definiscisinonimi"/>
- <cd:command name="setupsorting" value="impostaordinamento"/>
- <cd:command name="setupsynonyms" value="impostasinonimi"/>
- <cd:command name="startsynchronization" value="iniziasincronizzazione"/>
- <cd:command name="stopsynchronization" value="terminasincronizzazione"/>
- <cd:command name="setupsynchronizationbar" value="impostabarrasincronizzazione"/>
- <cd:command name="setupsynchronization" value="impostasincronizzazione"/>
- <cd:command name="synchronizationbar" value="barrasincronizzazione"/>
- <cd:command name="synchronize" value="sincronizza"/>
- <cd:command name="useexternaldocument" value="usadocumentoesterno"/>
- <cd:command name="useURL" value="usaURL"/>
- <cd:command name="useurl" value="usaurl"/>
- <cd:command name="setupurl" value="impostaurl"/>
- <cd:command name="coupledocument" value="accoppiadocumento"/>
- <cd:command name="setupprograms" value="impostaprogrammi"/>
- <cd:command name="defineprogram" value="definisciprogramma"/>
- <cd:command name="program" value="programma"/>
- <cd:command name="setuppagetransitions" value="impostatransizionepagina"/>
- <cd:command name="defineprofile" value="definisciprofilo"/>
- <cd:command name="defineversion" value="definisciversion"/>
- <cd:command name="markversion" value="marcaversione"/>
- <cd:command name="selectversion" value="selezionaversione"/>
- <cd:command name="startprofile" value="iniziaprofilo"/>
- <cd:command name="startversion" value="iniziaversione"/>
- <cd:command name="setupprofiles" value="impostaprofili"/>
- <cd:command name="setupversions" value="impostaversioni"/>
- <cd:command name="stopprofile" value="terminaprofili"/>
- <cd:command name="stopversion" value="terminaversioni"/>
- <cd:command name="followprofile" value="seguiprofilo"/>
- <cd:command name="followprofileversion" value="seguiversioneprofilo"/>
- <cd:command name="followversion" value="seguiversione"/>
- <cd:command name="definedescription" value="definiscidescrizione"/>
- <cd:command name="definelabel" value="definiscietichetta"/>
- <cd:command name="defineenumeration" value="definiscienumerazione"/>
- <cd:command name="defineindenting" value="definiscirientro"/>
- <cd:command name="setupdescriptions" value="impostadescrizioni"/>
- <cd:command name="setupenumerations" value="impostaenumerazioni"/>
- <cd:command name="setupindentations" value="impostarientri"/>
- <cd:command name="setuptab" value="impostatab"/>
- <cd:command name="tab" value="tab"/>
- <cd:command name="setupexternalfigures" value="impostafigureesterne"/>
- <cd:command name="showexternalfigures" value="mostrafiguresterne"/>
- <cd:command name="externalfigure" value="figuraesterna"/>
- <cd:command name="useexternalfigure" value="usafiguraesterna"/>
- <cd:command name="startfigure" value="iniziafigura"/>
- <cd:command name="referring" value="referring"/>
- <cd:command name="remark" value="commento"/>
- <cd:command name="colorbar" value="barracolori"/>
- <cd:command name="grid" value="griglia"/>
- <cd:command name="button" value="pulsante"/>
- <cd:command name="menubutton" value="pulsantemenu"/>
- <cd:command name="setupbuttons" value="impostapulsanti"/>
- <cd:command name="usereferences" value="usariferimenti"/>
- <cd:command name="placereferencelist" value="placereferencelist"/>
- <cd:command name="setupreferencelist" value="impostalistariferimenti"/>
- <cd:command name="setupreferencing" value="impostariferimento"/>
- <cd:command name="textreference" value="riferimentotesto"/>
- <cd:command name="pagereference" value="riferimentopagina"/>
- <cd:command name="reference" value="riferimento"/>
- <cd:command name="definereference" value="definisciriferimento"/>
- <cd:command name="definereferenceformat" value="definisciformatoriferimento"/>
- <cd:command name="useJSscripts" value="usaJSscripts"/>
- <cd:command name="from" value="da"/>
- <cd:command name="in" value="in"/>
- <cd:command name="at" value="al"/>
- <cd:command name="about" value="intorno"/>
- <cd:command name="goto" value="vaia"/>
- <cd:command name="atpage" value="apagina"/>
- <cd:command name="somewhere" value="daqualcheparte"/>
- <cd:command name="navigating" value="navigating"/>
- <cd:command name="ref" value="rif"/>
- <cd:command name="gotobox" value="vaiabox"/>
- <cd:command name="gotopage" value="vaiapagina"/>
- <cd:command name="placeformula" value="mettiformula"/>
- <cd:command name="placesubformula" value="mettisottoformula"/>
- <cd:command name="moveformula" value="spostaformula"/>
- <cd:command name="setupformulas" value="impostaformule"/>
- <cd:command name="formulanumber" value="numeroformula"/>
- <cd:command name="subformulanumber" value="numerosottoformula"/>
- <cd:command name="leg" value="leg"/>
- <cd:command name="fact" value="fatto"/>
- <cd:command name="mathematics" value="matematica"/>
- <cd:command name="dimension" value="dimensione"/>
- <cd:command name="nodimension" value="nientedimensioni"/>
- <cd:command name="startenvironment" value="iniziaambiente"/>
- <cd:command name="stopenvironment" value="terminaambiente"/>
- <cd:command name="startcomponent" value="iniziacomponente"/>
- <cd:command name="stopcomponent" value="terminacomponente"/>
- <cd:command name="startproduct" value="iniziaprodotto"/>
- <cd:command name="stopproduct" value="terminaprodotto"/>
- <cd:command name="startproject" value="iniziaprogetto"/>
- <cd:command name="stopproject" value="terminaprogetto"/>
- <cd:command name="setups" value="impostazioni"/>
- <cd:command name="project" value="progetto"/>
- <cd:command name="component" value="componenet"/>
- <cd:command name="product" value="prodotto"/>
- <cd:command name="environment" value="ambiente"/>
- <cd:command name="nomorefiles" value="bastafile"/>
- <cd:command name="getbuffer" value="prendibuffer"/>
- <cd:command name="setupbuffer" value="impostabuffer"/>
- <cd:command name="typebuffer" value="typebuffer"/>
- <cd:command name="definebuffer" value="definiscibuffer"/>
- <cd:command name="unitmeaning" value="nomeunita"/>
- <cd:command name="infull" value="perlungo"/>
- <cd:command name="quotation" value="citazione"/>
- <cd:command name="quote" value="menzione"/>
- <cd:command name="startquotation" value="iniziacitazione"/>
- <cd:command name="stopquotation" value="terminacitazione"/>
- <cd:command name="setupquote" value="impostamenzione"/>
- <cd:command name="define" value="definisci"/>
- <cd:command name="redo" value="rifai"/>
- <cd:command name="usecommands" value="usacomandi"/>
- <cd:command name="definestartstop" value="definisciiniziatermina"/>
- <cd:command name="setupstartstop" value="impostainiziatermina"/>
- <cd:command name="startlocal" value="inizialocale"/>
- <cd:command name="stoplocal" value="terminalocale"/>
- <cd:command name="startglobal" value="iniziaglobale"/>
- <cd:command name="stopglobal" value="terminaglobale"/>
- <cd:command name="macroname" value="nome"/>
- <cd:command name="definemakeup" value="definiscimakeup"/>
- <cd:command name="setupmakeup" value="impostamakeup"/>
- <cd:command name="startmakeup" value="iniziamakeup"/>
- <cd:command name="stopmakeup" value="terminamakeup"/>
- <cd:command name="useexternalsoundtrack" value="usacolonnasonoraesterna"/>
- <cd:command name="useexternalfile" value="usafileesterno"/>
- <cd:command name="useexternalfiles" value="usafileesterni"/>
- <cd:command name="referral" value="referral"/>
- <cd:command name="referraldate" value="datareferral"/>
- <cd:command name="high" value="ap"/>
- <cd:command name="lohi" value="pedap"/>
- <cd:command name="low" value="ped"/>
- <cd:command name="fraction" value="frazione"/>
- <cd:command name="chem" value="chim"/>
- <cd:command name="startopposite" value="iniziaopposto"/>
- <cd:command name="stopopposite" value="terminaopposto"/>
- <cd:command name="setupoppositeplacing" value="impostaposizionamentoopposti"/>
- <cd:command name="startpositioning" value="iniziaposizionamento"/>
- <cd:command name="stoppositioning" value="terminaposizionamento"/>
- <cd:command name="position" value="posizione"/>
- <cd:command name="setuppositioning" value="impostaposizionamento"/>
- <cd:command name="rotate" value="ruota"/>
- <cd:command name="setuprotate" value="impostarotazione"/>
- <cd:command name="mirror" value="riflessione"/>
- <cd:command name="scale" value="scala"/>
- <cd:command name="setupnumbering" value="impostanumerazione"/>
- <cd:command name="reset" value="reimposta"/>
- <cd:command name="setuppublications" value="impostapubblicazioni"/>
- <cd:command name="publication" value="pubblicazione"/>
- <cd:command name="definehbox" value="definiscihbox"/>
- <cd:command name="adding" value="adding"/>
- <cd:command name="periods" value="punti"/>
- <cd:command name="setuphyphenmark" value="impostasegnosillabazione"/>
- <cd:command name="setupinterlinespace" value="impostainterlinea"/>
- <cd:command name="setupspacing" value="impostaspaziatura"/>
- <cd:command name="setuptolerance" value="impostatolleranza"/>
- <cd:command name="setupsystem" value="impostasistema"/>
- <cd:command name="usepath" value="usacartella"/>
- <cd:command name="defineparagraphs" value="definiscicapoversi"/>
- <cd:command name="setupparagraphs" value="impostacapoversi"/>
- <cd:command name="donttest" value="notest"/>
- <cd:command name="setupcomment" value="impostacommento"/>
- <cd:command name="comment" value="commento"/>
- <cd:command name="definefield" value="definiscicampo"/>
- <cd:command name="definemainfield" value="definiscicampoprincipale"/>
- <cd:command name="definesubfield" value="definiscisottocampo"/>
- <cd:command name="clonefield" value="clonacampo"/>
- <cd:command name="copyfield" value="copiacampo"/>
- <cd:command name="setupfield" value="impostacampo"/>
- <cd:command name="setupfields" value="impostacampi"/>
- <cd:command name="field" value="campi"/>
- <cd:command name="fitfield" value="adattacampo"/>
- <cd:command name="logfields" value="logcampi"/>
- <cd:command name="showfields" value="mostracampi"/>
- <cd:command name="tooltip" value="tooltip"/>
- <cd:command name="fillinfield" value="camporiempimento"/>
- <cd:command name="definefieldstack" value="definiscistackcampi"/>
- <cd:command name="fieldstack" value="stackcampi"/>
- <cd:command name="setupforms" value="impostaforms"/>
- <cd:command name="setupclipping" value="impostaclippling"/>
- <cd:command name="clip" value="clip"/>
- <cd:command name="placelegend" value="mettilegenda"/>
- <cd:command name="setuplegend" value="impostalegenda"/>
- <cd:command name="setuppagecomment" value="impostacommentopagina"/>
- <cd:command name="setupstrut" value="impostastrut"/>
- <cd:command name="definerule" value="definiscilinea"/>
- <cd:command name="placerule" value="mettilinea"/>
- <cd:command name="setuprule" value="impostalinea"/>
- <cd:command name="definetextvariable" value="definiscivariabiletesto"/>
- <cd:command name="setuptextvariable" value="impostavariabiletesto"/>
- <cd:command name="settextvariable" value="setvariabiletesto"/>
- <cd:command name="placetextvariable" value="mettivariabiletesto"/>
- <cd:command name="textvariable" value="variabiletesto"/>
- <cd:command name="definetextposition" value="definisciposizionetesto"/>
- <cd:command name="setuptextposition" value="impostaposizionetesto"/>
- <cd:command name="positiontext" value="posizionatesto"/>
- <cd:command name="definerawfont" value="definiscifontgrezzo"/>
- <cd:command name="switchtorawfont" value="passaafontgrezzo"/>
- <cd:command name="placeheadtext" value="posizionatestotesta"/>
- <cd:command name="placeheadnumber" value="posizionanumerotesta"/>
- <cd:command name="definepagebreak" value="definepagebreak"/>
- <cd:command name="definecolumnbreak" value="definecolumnbreak"/>
- <cd:command name="definemathalignment" value="definemathalignment"/>
- <cd:command name="setupmathalignment" value="setupmathalignment"/>
- </cd:commands>
-
- <cd:commands>
- <cd:command name="setupitemgroups" value="impostaelencazioni"/>
- </cd:commands>
-
- <cd:commands>
- <cd:command name="topheight" value="altezzacima"/>
- <cd:command name="topdistance" value="distanzacima"/>
- <cd:command name="headerheight" value="altezzaintestazione"/>
- <cd:command name="headerdistance" value="distanzaintestazione"/>
- <cd:command name="textheight" value="altezzatesto"/>
- <cd:command name="footerdistance" value="distanzapdp"/>
- <cd:command name="footerheight" value="altezzapdp"/>
- <cd:command name="bottomdistance" value="distanzafondo"/>
- <cd:command name="bottomheight" value="altezzafondo"/>
- <cd:command name="marginwidth" value="ampiezzamargine"/>
- <cd:command name="leftmarginwidth" value="ampiezzamarginesinistro"/>
- <cd:command name="rightmarginwidth" value="ampiezzamarginedestro"/>
- <cd:command name="margindistance" value="distanzamargine"/>
- <cd:command name="leftmargindistance" value="distanzamarginesinistro"/>
- <cd:command name="rightmargindistance" value="distanzamarginedestro"/>
- <cd:command name="edgewidth" value="ampiezzabordo"/>
- <cd:command name="leftedgewidth" value="ampiezzabordosinistro"/>
- <cd:command name="rightedgewidth" value="ampiezzabordodestro"/>
- <cd:command name="edgedistance" value="distanzabordo"/>
- <cd:command name="leftedgedistance" value="distanzabordosinistro"/>
- <cd:command name="rightedgedistance" value="distanzabordodestro"/>
- <cd:command name="innermarginwidth" value="innermarginwidth"/>
- <cd:command name="outermarginwidth" value="outermarginwidth"/>
- <cd:command name="innermargindistance" value="innermargindistance"/>
- <cd:command name="outermargindistance" value="outermargindistance"/>
- <cd:command name="inneredgewidth" value="inneredgewidth"/>
- <cd:command name="outeredgewidth" value="outeredgewidth"/>
- <cd:command name="inneredgedistance" value="inneredgedistance"/>
- <cd:command name="outeredgedistance" value="outeredgedistance"/>
- <cd:command name="textwidth" value="ampiezzatesto"/>
- <cd:command name="makeupwidth" value="ampiezzamakeup"/>
- <cd:command name="makeupheight" value="altezzamakeup"/>
- <cd:command name="topspace" value="spaziocima"/>
- <cd:command name="bottomspace" value="spaziofondo"/>
- <cd:command name="backspace" value="spaziodietro"/>
- <cd:command name="cutspace" value="cutspace"/>
- <cd:command name="paperwidth" value="ampiezzacarta"/>
- <cd:command name="paperheight" value="altezzacarta"/>
- <cd:command name="printpaperwidth" value="ampiezzacartastampa"/>
- <cd:command name="printpaperheight" value="altezzacartastampa"/>
- <cd:command name="pageoffset" value="pageoffset"/>
- <cd:command name="pagedepth" value="pagedepth"/>
- <cd:command name="headlevel" value="livellotesta"/>
- <cd:command name="linewidth" value="spessoreriga"/>
- <cd:command name="totalnumberofpages" value="numerototaledipagine"/>
- <cd:command name="numberofsubpages" value="numberofsubpages"/>
- <cd:command name="useXMLfilter" value="useXMLfilter"/>
- <cd:command name="definecolumnset" value="definiscigruppocolonne"/>
- <cd:command name="setupcolumnset" value="impostagruppocolonne"/>
- <cd:command name="startcolumnset" value="iniziagruppocolonne"/>
- <cd:command name="stopcolumnset" value="terminagruppocolonne"/>
- <cd:command name="setupcolumnsetlines" value="setupcolumnsetlines"/>
- <cd:command name="setupcolumnsetstart" value="setupcolumnsetstart"/>
- <cd:command name="startcolumnmakeup" value="startcolumnmakeup"/>
- <cd:command name="stopcolumnmakeup" value="stopcolumnmakeup"/>
- <cd:command name="usetypescript" value="usetypescript"/>
- <cd:command name="usetypescriptfile" value="usetypescriptfile"/>
- </cd:commands>
-
- <cd:commands>
- <cd:command name="startdocument" value="iniziadocumento"/>
- <cd:command name="stopdocument" value="terminadocumento"/>
- <cd:command name="startoverzicht" value="iniziaoverview"/>
- <cd:command name="stopoverzicht" value="terminaoverview"/>
- <cd:command name="label" value="etichetta"/>
- <cd:command name="labels" value="etichette"/>
- <cd:command name="domicile" value="domicilio"/>
- </cd:commands>
-
-</cd:interface>
+</cd:interface> \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/interface/keys-nl.xml b/Master/texmf-dist/tex/context/interface/keys-nl.xml
index 43705937417..9bb953e9bfa 100644
--- a/Master/texmf-dist/tex/context/interface/keys-nl.xml
+++ b/Master/texmf-dist/tex/context/interface/keys-nl.xml
@@ -1,1656 +1,1649 @@
-<?xml version="1.0"?>
+<?xml version='1.0'?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="nl" version="2008.05.21 15:21">
+<cd:interface xmlns:cd='http://www.pragma-ade.com/commands' name='context' language='nl' version='2008.10.21 19:42'>
- <cd:variables>
- <cd:variable name="lesshyphenation" value="lesshyphenation"/>
- <cd:variable name="morehyphenation" value="morehyphenation"/>
- </cd:variables>
+ <!-- definitions for interface variables for language nl -->
- <cd:variables>
- <cd:variable name="one" value="een"/>
- <cd:variable name="two" value="twee"/>
- <cd:variable name="three" value="drie"/>
- <cd:variable name="four" value="vier"/>
- <cd:variable name="five" value="vijf"/>
- </cd:variables>
+ <cd:variables>
+ <cd:variable name='Addition' value='Toevoeging'/>
+ <cd:variable name='Balloon' value='Ballon'/>
+ <cd:variable name='Character' value='Letter'/>
+ <cd:variable name='Characters' value='Letters'/>
+ <cd:variable name='CloseDocument' value='SluitDocument'/>
+ <cd:variable name='ExitViewer' value='VerlaatViewer'/>
+ <cd:variable name='FirstPage' value='EerstePagina'/>
+ <cd:variable name='FitHeight' value='HoogtePassend'/>
+ <cd:variable name='FitWidth' value='BreedtePassend'/>
+ <cd:variable name='GotoPage' value='GaNaarPagina'/>
+ <cd:variable name='Greek' value='Grieks'/>
+ <cd:variable name='Help' value='Help'/>
+ <cd:variable name='HideField' value='VerbergVeld'/>
+ <cd:variable name='HideLayer' value='VerbergLaag'/>
+ <cd:variable name='Key' value='Sleutel'/>
+ <cd:variable name='LastPage' value='LaatstePagina'/>
+ <cd:variable name='LoadForm' value='LaadFormulier'/>
+ <cd:variable name='MONTH' value='MAAND'/>
+ <cd:variable name='New' value='Nieuw'/>
+ <cd:variable name='NextJump' value='VolgendeSprong'/>
+ <cd:variable name='NextPage' value='VolgendePagina'/>
+ <cd:variable name='Numbers' value='Cijfers'/>
+ <cd:variable name='OpenNamedDocument' value='OpenDocumentOpNaam'/>
+ <cd:variable name='Paragraph' value='Paragraaf'/>
+ <cd:variable name='PauseMovie' value='PauzeerFilm'/>
+ <cd:variable name='PauseRendering' value='PauzeerRendering'/>
+ <cd:variable name='PauseSound' value='PauzeerGeluid'/>
+ <cd:variable name='PreviousJump' value='VorigeSprong'/>
+ <cd:variable name='PreviousPage' value='VorigePagina'/>
+ <cd:variable name='PrintDocument' value='PrintDocument'/>
+ <cd:variable name='Query' value='RaadpleegDocument'/>
+ <cd:variable name='QueryAgain' value='HerhaalRaadplegen'/>
+ <cd:variable name='ResetForm' value='ResetFormulier'/>
+ <cd:variable name='ResumeMovie' value='HervatFilm'/>
+ <cd:variable name='ResumeRendering' value='HervatRendering'/>
+ <cd:variable name='ResumeSound' value='HervatGeluid'/>
+ <cd:variable name='Romannumerals' value='Romeins'/>
+ <cd:variable name='SaveDocument' value='BewaarDocument'/>
+ <cd:variable name='SaveForm' value='BewaarFormulier'/>
+ <cd:variable name='SaveNamedDocument' value='BewaarDocumentOpNaam'/>
+ <cd:variable name='SearchAgain' value='HerhaalZoeken'/>
+ <cd:variable name='SearchDocument' value='DoorzoekDocument'/>
+ <cd:variable name='ShowBookmarks' value='ShowBookmarks'/>
+ <cd:variable name='ShowField' value='ToonVeld'/>
+ <cd:variable name='ShowThumbs' value='ShowThumbs'/>
+ <cd:variable name='StartMovie' value='StartFilm'/>
+ <cd:variable name='StartRendering' value='StartRendering'/>
+ <cd:variable name='StartSound' value='StartGeluid'/>
+ <cd:variable name='StopMovie' value='StopFilm'/>
+ <cd:variable name='StopRendering' value='StopRendering'/>
+ <cd:variable name='StopSound' value='StopGeluid'/>
+ <cd:variable name='SubmitForm' value='VerzendFormulier'/>
+ <cd:variable name='ToggleLayer' value='WisselLaag'/>
+ <cd:variable name='ToggleViewer' value='WisselViewer'/>
+ <cd:variable name='URL' value='URL'/>
+ <cd:variable name='VideLayer' value='ToonLaag'/>
+ <cd:variable name='ViewerHelp' value='ViewerHelp'/>
+ <cd:variable name='WEEKDAY' value='WEEKDAG'/>
+ <cd:variable name='WORD' value='WOORD'/>
+ <cd:variable name='abbreviation' value='afkorting'/>
+ <cd:variable name='abbreviations' value='afkortingen'/>
+ <cd:variable name='absolute' value='absoluut'/>
+ <cd:variable name='action' value='actie'/>
+ <cd:variable name='after' value='na'/>
+ <cd:variable name='all' value='alles'/>
+ <cd:variable name='always' value='altijd'/>
+ <cd:variable name='answerarea' value='antwoordgebied'/>
+ <cd:variable name='appendices' value='bijlagen'/>
+ <cd:variable name='appendix' value='bijlage'/>
+ <cd:variable name='april' value='april'/>
+ <cd:variable name='atmargin' value='opmarge'/>
+ <cd:variable name='atpage' value='oppagina'/>
+ <cd:variable name='august' value='augustus'/>
+ <cd:variable name='auto' value='auto'/>
+ <cd:variable name='autointro' value='autointro'/>
+ <cd:variable name='back' value='terug'/>
+ <cd:variable name='background' value='achtergrond'/>
+ <cd:variable name='backmatter' value='uitleidingen'/>
+ <cd:variable name='backpart' value='uitleiding'/>
+ <cd:variable name='backspace' value='rugwit'/>
+ <cd:variable name='backward' value='achteruit'/>
+ <cd:variable name='before' value='voor'/>
+ <cd:variable name='big' value='groot'/>
+ <cd:variable name='bigbodyfont' value='grootkorps'/>
+ <cd:variable name='bigpreference' value='grotevoorkeur'/>
+ <cd:variable name='blank' value='blanko'/>
+ <cd:variable name='blockquote' value='blokcitaat'/>
+ <cd:variable name='bodymatter' value='hoofdteksten'/>
+ <cd:variable name='bodypart' value='hoofdtekst'/>
+ <cd:variable name='bold' value='vet'/>
+ <cd:variable name='bolditalic' value='vetitalic'/>
+ <cd:variable name='boldslanted' value='vetschuin'/>
+ <cd:variable name='bookmark' value='bookmark'/>
+ <cd:variable name='both' value='beide'/>
+ <cd:variable name='bottom' value='onder'/>
+ <cd:variable name='brief' value='brief'/>
+ <cd:variable name='broad' value='ruim'/>
+ <cd:variable name='buffer' value='buffer'/>
+ <cd:variable name='by' value='per'/>
+ <cd:variable name='calligraphic' value='calligrafie'/>
+ <cd:variable name='cap' value='kap'/>
+ <cd:variable name='capital' value='kapitaal'/>
+ <cd:variable name='center' value='centreer'/>
+ <cd:variable name='chapter' value='hoofdstuk'/>
+ <cd:variable name='character' value='letter'/>
+ <cd:variable name='characters' value='letters'/>
+ <cd:variable name='color' value='kleur'/>
+ <cd:variable name='column' value='kolom'/>
+ <cd:variable name='columns' value='kolommen'/>
+ <cd:variable name='command' value='commando'/>
+ <cd:variable name='commands' value='commandos'/>
+ <cd:variable name='comment' value='commentaar'/>
+ <cd:variable name='component' value='onderdeel'/>
+ <cd:variable name='concept' value='concept'/>
+ <cd:variable name='content' value='inhoud'/>
+ <cd:variable name='contents' value='inhouden'/>
+ <cd:variable name='continue' value='verder'/>
+ <cd:variable name='controls' value='sturing'/>
+ <cd:variable name='conversion' value='conversie'/>
+ <cd:variable name='current' value='huidige'/>
+ <cd:variable name='cutspace' value='snijwit'/>
+ <cd:variable name='date' value='datum'/>
+ <cd:variable name='day' value='dag'/>
+ <cd:variable name='december' value='december'/>
+ <cd:variable name='default' value='default'/>
+ <cd:variable name='depth' value='diepte'/>
+ <cd:variable name='description' value='doordefinitie'/>
+ <cd:variable name='disable' value='blokkeer'/>
+ <cd:variable name='display' value='scherm'/>
+ <cd:variable name='dot' value='punt'/>
+ <cd:variable name='doublesided' value='dubbelzijdig'/>
+ <cd:variable name='each' value='elk'/>
+ <cd:variable name='edge' value='rand'/>
+ <cd:variable name='empty' value='leeg'/>
+ <cd:variable name='endnote' value='eindnoot'/>
+ <cd:variable name='enumeration' value='doornummering'/>
+ <cd:variable name='environment' value='omgeving'/>
+ <cd:variable name='even' value='even'/>
+ <cd:variable name='external' value='extern'/>
+ <cd:variable name='fact' value='gegeven'/>
+ <cd:variable name='february' value='februari'/>
+ <cd:variable name='figure' value='figuur'/>
+ <cd:variable name='figures' value='figuren'/>
+ <cd:variable name='file' value='file'/>
+ <cd:variable name='final' value='definitief'/>
+ <cd:variable name='first' value='eerste'/>
+ <cd:variable name='firstcolumn' value='eerstekolom'/>
+ <cd:variable name='firstpage' value='eerstepagina'/>
+ <cd:variable name='firstsubpage' value='eerstesubpagina'/>
+ <cd:variable name='fit' value='passend'/>
+ <cd:variable name='five' value='vijf'/>
+ <cd:variable name='fix' value='herstel'/>
+ <cd:variable name='fixed' value='vast'/>
+ <cd:variable name='flexible' value='flexibel'/>
+ <cd:variable name='float' value='blok'/>
+ <cd:variable name='flushinner' value='lijnbinnen'/>
+ <cd:variable name='flushleft' value='lijnlinks'/>
+ <cd:variable name='flushouter' value='lijnbuiten'/>
+ <cd:variable name='flushright' value='lijnrechts'/>
+ <cd:variable name='footer' value='voet'/>
+ <cd:variable name='footnote' value='voetnoot'/>
+ <cd:variable name='force' value='forceer'/>
+ <cd:variable name='foreground' value='voorgrond'/>
+ <cd:variable name='formeel' value='formeel'/>
+ <cd:variable name='formula' value='formule'/>
+ <cd:variable name='formulae' value='formules'/>
+ <cd:variable name='forward' value='vooruit'/>
+ <cd:variable name='four' value='vier'/>
+ <cd:variable name='frame' value='kader'/>
+ <cd:variable name='framedtext' value='kadertekst'/>
+ <cd:variable name='friday' value='vrijdag'/>
+ <cd:variable name='frontmatter' value='inleidingen'/>
+ <cd:variable name='frontpart' value='inleiding'/>
+ <cd:variable name='global' value='globaal'/>
+ <cd:variable name='graphic' value='grafiek'/>
+ <cd:variable name='graphics' value='grafieken'/>
+ <cd:variable name='gray' value='grijs'/>
+ <cd:variable name='greek' value='grieks'/>
+ <cd:variable name='grid' value='grid'/>
+ <cd:variable name='halfline' value='halveregel'/>
+ <cd:variable name='handwritten' value='handschrift'/>
+ <cd:variable name='hang' value='hang'/>
+ <cd:variable name='hanging' value='hangend'/>
+ <cd:variable name='head' value='kop'/>
+ <cd:variable name='header' value='hoofd'/>
+ <cd:variable name='height' value='hoogte'/>
+ <cd:variable name='helptext' value='helptekst'/>
+ <cd:variable name='hencefore' value='hierboven'/>
+ <cd:variable name='here' value='hier'/>
+ <cd:variable name='hereafter' value='hieronder'/>
+ <cd:variable name='hidden' value='verborgen'/>
+ <cd:variable name='hiding' value='verbergen'/>
+ <cd:variable name='high' value='hoog'/>
+ <cd:variable name='horizontal' value='horizontaal'/>
+ <cd:variable name='hyphenated' value='afgebroken'/>
+ <cd:variable name='hz' value='hz'/>
+ <cd:variable name='inbetween' value='tussen'/>
+ <cd:variable name='index' value='index'/>
+ <cd:variable name='indices' value='indices'/>
+ <cd:variable name='informeel' value='informeel'/>
+ <cd:variable name='inherit' value='erf'/>
+ <cd:variable name='inleft' value='inlinker'/>
+ <cd:variable name='inmargin' value='inmarge'/>
+ <cd:variable name='inner' value='binnen'/>
+ <cd:variable name='inneredge' value='binnenrand'/>
+ <cd:variable name='innermargin' value='binnenmarge'/>
+ <cd:variable name='inright' value='inrechter'/>
+ <cd:variable name='interaction' value='interactie'/>
+ <cd:variable name='interactionmenu' value='interactiemenu'/>
+ <cd:variable name='intermezzi' value='intermezzos'/>
+ <cd:variable name='intermezzo' value='intermezzo'/>
+ <cd:variable name='intext' value='intekst'/>
+ <cd:variable name='intro' value='intro'/>
+ <cd:variable name='italic' value='italic'/>
+ <cd:variable name='italicbold' value='italicvet'/>
+ <cd:variable name='item' value='som'/>
+ <cd:variable name='itemize' value='opsomming'/>
+ <cd:variable name='its' value='its'/>
+ <cd:variable name='january' value='januari'/>
+ <cd:variable name='joinedup' value='aansluitend'/>
+ <cd:variable name='july' value='juli'/>
+ <cd:variable name='june' value='juni'/>
+ <cd:variable name='keep' value='handhaaf'/>
+ <cd:variable name='knockout' value='knockout'/>
+ <cd:variable name='label' value='label'/>
+ <cd:variable name='landscape' value='liggend'/>
+ <cd:variable name='last' value='laatste'/>
+ <cd:variable name='lastcolumn' value='laatstekolom'/>
+ <cd:variable name='lastpage' value='laatstepagina'/>
+ <cd:variable name='lastpagenumber' value='laatstepaginanummer'/>
+ <cd:variable name='lastsubpage' value='laatstesubpagina'/>
+ <cd:variable name='layer' value='layer'/>
+ <cd:variable name='left' value='links'/>
+ <cd:variable name='leftedge' value='linkerrand'/>
+ <cd:variable name='lefthanging' value='linkshangend'/>
+ <cd:variable name='leftmargin' value='linkermarge'/>
+ <cd:variable name='leftpage' value='linkerpagina'/>
+ <cd:variable name='lefttoright' value='lefttoright'/>
+ <cd:variable name='legend' value='legenda'/>
+ <cd:variable name='lesshyphenation' value='lesshyphenation'/>
+ <cd:variable name='line' value='regel'/>
+ <cd:variable name='linenote' value='regelnoot'/>
+ <cd:variable name='lines' value='regels'/>
+ <cd:variable name='list' value='lijst'/>
+ <cd:variable name='local' value='lokaal'/>
+ <cd:variable name='localenvironment' value='deelomgeving'/>
+ <cd:variable name='logo' value='logo'/>
+ <cd:variable name='logos' value='logos'/>
+ <cd:variable name='lohi' value='laho'/>
+ <cd:variable name='loose' value='los'/>
+ <cd:variable name='low' value='laag'/>
+ <cd:variable name='ls' value='ls'/>
+ <cd:variable name='makeup' value='opmaak'/>
+ <cd:variable name='mar' value='mar'/>
+ <cd:variable name='march' value='maart'/>
+ <cd:variable name='margin' value='marge'/>
+ <cd:variable name='marginedge' value='kantlijn'/>
+ <cd:variable name='margintitle' value='margetitel'/>
+ <cd:variable name='marking' value='markering'/>
+ <cd:variable name='mathalignment' value='wiskundeuitlijnen'/>
+ <cd:variable name='mathcases' value='mathcases'/>
+ <cd:variable name='mathmatrix' value='wiskundematrix'/>
+ <cd:variable name='max' value='max'/>
+ <cd:variable name='may' value='mei'/>
+ <cd:variable name='mediaeval' value='mediaeval'/>
+ <cd:variable name='medium' value='middel'/>
+ <cd:variable name='middle' value='midden'/>
+ <cd:variable name='min' value='min'/>
+ <cd:variable name='minheight' value='minhoogte'/>
+ <cd:variable name='minwidth' value='minbreedte'/>
+ <cd:variable name='mirrored' value='gespiegeld'/>
+ <cd:variable name='monday' value='maandag'/>
+ <cd:variable name='mono' value='mono'/>
+ <cd:variable name='month' value='maand'/>
+ <cd:variable name='morehyphenation' value='morehyphenation'/>
+ <cd:variable name='name' value='naam'/>
+ <cd:variable name='narrow' value='smal'/>
+ <cd:variable name='negative' value='negatief'/>
+ <cd:variable name='never' value='nooit'/>
+ <cd:variable name='new' value='nieuw'/>
+ <cd:variable name='next' value='volgende'/>
+ <cd:variable name='nextevenpage' value='volgendeevenpagina'/>
+ <cd:variable name='nextoddpage' value='volgendeonevenpagina'/>
+ <cd:variable name='nextpage' value='volgendepagina'/>
+ <cd:variable name='nextsubpage' value='volgendesubpagina'/>
+ <cd:variable name='no' value='nee'/>
+ <cd:variable name='nocheck' value='geencontrole'/>
+ <cd:variable name='nofit' value='nietpassend'/>
+ <cd:variable name='nogrid' value='geengrid'/>
+ <cd:variable name='nohz' value='geenhz'/>
+ <cd:variable name='nomarking' value='geenmarkering'/>
+ <cd:variable name='none' value='geen'/>
+ <cd:variable name='nonumber' value='geennummer'/>
+ <cd:variable name='normal' value='normaal'/>
+ <cd:variable name='nospacing' value='geenspatiering'/>
+ <cd:variable name='not' value='niet'/>
+ <cd:variable name='note' value='note'/>
+ <cd:variable name='nothanging' value='niethangend'/>
+ <cd:variable name='nothyphenated' value='nietafgebroken'/>
+ <cd:variable name='november' value='november'/>
+ <cd:variable name='nowhere' value='nergens'/>
+ <cd:variable name='nowhite' value='geenwit'/>
+ <cd:variable name='number' value='nummer'/>
+ <cd:variable name='numbers' value='cijfers'/>
+ <cd:variable name='october' value='oktober'/>
+ <cd:variable name='odd' value='oneven'/>
+ <cd:variable name='off' value='uit'/>
+ <cd:variable name='offset' value='offset'/>
+ <cd:variable name='old' value='oud'/>
+ <cd:variable name='on' value='aan'/>
+ <cd:variable name='one' value='een'/>
+ <cd:variable name='opposite' value='naast'/>
+ <cd:variable name='outer' value='buiten'/>
+ <cd:variable name='outeredge' value='buitenrand'/>
+ <cd:variable name='outermargin' value='buitenmarge'/>
+ <cd:variable name='overlay' value='overlay'/>
+ <cd:variable name='overprint' value='overprint'/>
+ <cd:variable name='packed' value='opelkaar'/>
+ <cd:variable name='page' value='pagina'/>
+ <cd:variable name='pagecomment' value='paginacommentaar'/>
+ <cd:variable name='pagenumber' value='paginanummer'/>
+ <cd:variable name='paper' value='papier'/>
+ <cd:variable name='paragraph' value='alinea'/>
+ <cd:variable name='part' value='deel'/>
+ <cd:variable name='positive' value='positief'/>
+ <cd:variable name='postponing' value='uitstellen'/>
+ <cd:variable name='postscript' value='postscript'/>
+ <cd:variable name='preference' value='voorkeur'/>
+ <cd:variable name='preview' value='preview'/>
+ <cd:variable name='previous' value='vorige'/>
+ <cd:variable name='previousevenpage' value='vorigeevenpagina'/>
+ <cd:variable name='previousoddpage' value='vorigeonevenpagina'/>
+ <cd:variable name='previouspage' value='vorigepagina'/>
+ <cd:variable name='previoussubpage' value='vorigesubpagina'/>
+ <cd:variable name='printable' value='printbaar'/>
+ <cd:variable name='process' value='proces'/>
+ <cd:variable name='product' value='produkt'/>
+ <cd:variable name='program' value='programma'/>
+ <cd:variable name='project' value='project'/>
+ <cd:variable name='protected' value='beschermd'/>
+ <cd:variable name='quadruple' value='viertal'/>
+ <cd:variable name='quotation' value='citaat'/>
+ <cd:variable name='quote' value='citeer'/>
+ <cd:variable name='ran' value='ran'/>
+ <cd:variable name='random' value='willekeurig'/>
+ <cd:variable name='readonly' value='alleenleesbaar'/>
+ <cd:variable name='rectangular' value='recht'/>
+ <cd:variable name='referral' value='kenmerk'/>
+ <cd:variable name='register' value='register'/>
+ <cd:variable name='regular' value='regular'/>
+ <cd:variable name='rekening' value='rekening'/>
+ <cd:variable name='relative' value='relatief'/>
+ <cd:variable name='repeat' value='herhaal'/>
+ <cd:variable name='required' value='verplicht'/>
+ <cd:variable name='reset' value='reset'/>
+ <cd:variable name='reverse' value='omgekeerd'/>
+ <cd:variable name='right' value='rechts'/>
+ <cd:variable name='rightedge' value='rechterrand'/>
+ <cd:variable name='righthanging' value='rechtshangend'/>
+ <cd:variable name='rightmargin' value='rechtermarge'/>
+ <cd:variable name='rightpage' value='rechterpagina'/>
+ <cd:variable name='righttoleft' value='righttoleft'/>
+ <cd:variable name='roman' value='romaan'/>
+ <cd:variable name='romannumerals' value='romeins'/>
+ <cd:variable name='rotate' value='roteer'/>
+ <cd:variable name='rotated' value='geroteerd'/>
+ <cd:variable name='round' value='rond'/>
+ <cd:variable name='row' value='rij'/>
+ <cd:variable name='rule' value='lijn'/>
+ <cd:variable name='samepage' value='zelfdepagina'/>
+ <cd:variable name='sans' value='sans'/>
+ <cd:variable name='sansbold' value='sansvet'/>
+ <cd:variable name='sansserif' value='schreefloos'/>
+ <cd:variable name='saturday' value='zaterdag'/>
+ <cd:variable name='screen' value='raster'/>
+ <cd:variable name='section' value='paragraaf'/>
+ <cd:variable name='sectionblockenvironment' value='sectieblokomgeving'/>
+ <cd:variable name='sectionnumber' value='sectienummer'/>
+ <cd:variable name='see' value='zie'/>
+ <cd:variable name='september' value='september'/>
+ <cd:variable name='serif' value='serif'/>
+ <cd:variable name='serried' value='aanelkaar'/>
+ <cd:variable name='setups' value='instellingen'/>
+ <cd:variable name='sheet' value='sheet'/>
+ <cd:variable name='singlesided' value='enkelzijdig'/>
+ <cd:variable name='slanted' value='schuin'/>
+ <cd:variable name='slantedbold' value='schuinvet'/>
+ <cd:variable name='small' value='klein'/>
+ <cd:variable name='smallbodyfont' value='kleinkorps'/>
+ <cd:variable name='smallbold' value='kleinvet'/>
+ <cd:variable name='smallbolditalic' value='kleinvetitalic'/>
+ <cd:variable name='smallboldslanted' value='kleinvetschuin'/>
+ <cd:variable name='smallcaps' value='smallcaps'/>
+ <cd:variable name='smallitalic' value='kleinitalic'/>
+ <cd:variable name='smallitalicbold' value='kleinitalicvet'/>
+ <cd:variable name='smallnormal' value='kleinnormaal'/>
+ <cd:variable name='smallslanted' value='kleinschuin'/>
+ <cd:variable name='smallslantedbold' value='kleinschuinvet'/>
+ <cd:variable name='smalltype' value='kleintype'/>
+ <cd:variable name='somewhere' value='ergens'/>
+ <cd:variable name='sorted' value='gesorteerd'/>
+ <cd:variable name='space' value='spatie'/>
+ <cd:variable name='spacing' value='spatiering'/>
+ <cd:variable name='speech' value='spraak'/>
+ <cd:variable name='split' value='splitsen'/>
+ <cd:variable name='spot' value='spot'/>
+ <cd:variable name='standard' value='standaard'/>
+ <cd:variable name='start' value='start'/>
+ <cd:variable name='sticker' value='sticker'/>
+ <cd:variable name='stop' value='stop'/>
+ <cd:variable name='stopper' value='afsluiter'/>
+ <cd:variable name='stretch' value='rek'/>
+ <cd:variable name='strict' value='streng'/>
+ <cd:variable name='strong' value='strong'/>
+ <cd:variable name='strut' value='strut'/>
+ <cd:variable name='sub' value='sub'/>
+ <cd:variable name='subbackward' value='subachteruit'/>
+ <cd:variable name='subformula' value='subformule'/>
+ <cd:variable name='subforward' value='subvooruit'/>
+ <cd:variable name='subject' value='onderwerp'/>
+ <cd:variable name='subpage' value='subpagina'/>
+ <cd:variable name='subsection' value='subparagraaf'/>
+ <cd:variable name='subsubject' value='subonderwerp'/>
+ <cd:variable name='subsubsection' value='subsubparagraaf'/>
+ <cd:variable name='subsubsubject' value='subsubonderwerp'/>
+ <cd:variable name='subsubsubsection' value='subsubsubparagraaf'/>
+ <cd:variable name='subsubsubsubject' value='subsubsubonderwerp'/>
+ <cd:variable name='subsubsubsubsection' value='subsubsubsubparagraaf'/>
+ <cd:variable name='subsubsubsubsubject' value='subsubsubsubonderwerp'/>
+ <cd:variable name='subsubsubsubsubsection' value='subsubsubsubsubparagraaf'/>
+ <cd:variable name='subsubsubsubsubsubject' value='subsubsubsubsubonderwerp'/>
+ <cd:variable name='subsubsubsubsubsubsection' value='subsubsubsubsubsubparagraaf'/>
+ <cd:variable name='subsubsubsubsubsubsubject' value='subsubsubsubsubsubonderwerp'/>
+ <cd:variable name='subsubsubsubsubsubsubsection' value='subsubsubsubsubsubsubparagraaf'/>
+ <cd:variable name='subsubsubsubsubsubsubsubject' value='subsubsubsubsubsubsubonderwerp'/>
+ <cd:variable name='subsubsubsubsubsubsubsubsection' value='subsubsubsubsubsubsubsubparagraaf'/>
+ <cd:variable name='subsubsubsubsubsubsubsubsubject' value='subsubsubsubsubsubsubsubonderwerp'/>
+ <cd:variable name='subsubsubsubsubsubsubsubsubsection' value='subsubsubsubsubsubsubsubsubparagraaf'/>
+ <cd:variable name='subsubsubsubsubsubsubsubsubsubject' value='subsubsubsubsubsubsubsubsubonderwerp'/>
+ <cd:variable name='sunday' value='zondag'/>
+ <cd:variable name='support' value='support'/>
+ <cd:variable name='sym' value='sym'/>
+ <cd:variable name='symbol' value='symbool'/>
+ <cd:variable name='synchronize' value='synchroniseer'/>
+ <cd:variable name='system' value='systeem'/>
+ <cd:variable name='table' value='tabel'/>
+ <cd:variable name='tablehead' value='tabelkop'/>
+ <cd:variable name='tables' value='tabellen'/>
+ <cd:variable name='tabletail' value='tabelstaart'/>
+ <cd:variable name='tabulate' value='tabulatie'/>
+ <cd:variable name='tabulatehead' value='tabulatiekop'/>
+ <cd:variable name='tabulatetail' value='tabulatiestaart'/>
+ <cd:variable name='tall' value='lang'/>
+ <cd:variable name='teletype' value='teletype'/>
+ <cd:variable name='temporary' value='voorlopig'/>
+ <cd:variable name='test' value='test'/>
+ <cd:variable name='text' value='tekst'/>
+ <cd:variable name='three' value='drie'/>
+ <cd:variable name='thursday' value='donderdag'/>
+ <cd:variable name='title' value='titel'/>
+ <cd:variable name='toggle' value='toggle'/>
+ <cd:variable name='tolerant' value='soepel'/>
+ <cd:variable name='top' value='boven'/>
+ <cd:variable name='tuesday' value='dinsdag'/>
+ <cd:variable name='two' value='twee'/>
+ <cd:variable name='txt' value='txt'/>
+ <cd:variable name='type' value='type'/>
+ <cd:variable name='typing' value='typen'/>
+ <cd:variable name='unavailable' value='nietbeschikbaar'/>
+ <cd:variable name='unit' value='eenheid'/>
+ <cd:variable name='units' value='eenheden'/>
+ <cd:variable name='unknown' value='onbekend'/>
+ <cd:variable name='unpacked' value='vanelkaar'/>
+ <cd:variable name='url' value='url'/>
+ <cd:variable name='used' value='gebruikt'/>
+ <cd:variable name='value' value='waarde'/>
+ <cd:variable name='vertical' value='vertikaal'/>
+ <cd:variable name='very' value='zeer'/>
+ <cd:variable name='verystrict' value='zeerstreng'/>
+ <cd:variable name='verytolerant' value='zeersoepel'/>
+ <cd:variable name='weak' value='weak'/>
+ <cd:variable name='wednesday' value='woensdag'/>
+ <cd:variable name='week' value='week'/>
+ <cd:variable name='weekday' value='weekdag'/>
+ <cd:variable name='white' value='wit'/>
+ <cd:variable name='wide' value='breed'/>
+ <cd:variable name='width' value='breedte'/>
+ <cd:variable name='xml' value='xml'/>
+ <cd:variable name='year' value='jaar'/>
+ <cd:variable name='yes' value='ja'/>
+ </cd:variable>
- <cd:variables>
- <cd:variable name="environment" value="omgeving"/>
- <cd:variable name="component" value="onderdeel"/>
- <cd:variable name="product" value="produkt"/>
- <cd:variable name="project" value="project"/>
- </cd:variables>
+ <!-- definitions for interface constants for language nl -->
- <cd:variables>
- <cd:variable name="sunday" value="zondag"/>
- <cd:variable name="monday" value="maandag"/>
- <cd:variable name="tuesday" value="dinsdag"/>
- <cd:variable name="wednesday" value="woensdag"/>
- <cd:variable name="thursday" value="donderdag"/>
- <cd:variable name="friday" value="vrijdag"/>
- <cd:variable name="saturday" value="zaterdag"/>
- </cd:variables>
+ <cd:constants>
+ <cd:constant name='action' value='actie'/>
+ <cd:constant name='address' value='adres'/>
+ <cd:constant name='after' value='na'/>
+ <cd:constant name='afterhead' value='kopna'/>
+ <cd:constant name='afterkey' value='natoets'/>
+ <cd:constant name='align' value='uitlijnen'/>
+ <cd:constant name='aligncharacter' value='karakteruitlijnen'/>
+ <cd:constant name='alignmentcharacter' value='uitlijnkarakter'/>
+ <cd:constant name='aligntitle' value='titeluitlijnen'/>
+ <cd:constant name='alternative' value='variant'/>
+ <cd:constant name='apa' value='apa'/>
+ <cd:constant name='arrow' value='pijl'/>
+ <cd:constant name='at' value='op'/>
+ <cd:constant name='author' value='auteur'/>
+ <cd:constant name='auto' value='auto'/>
+ <cd:constant name='autofile' value='autofile'/>
+ <cd:constant name='autofocus' value='autofocus'/>
+ <cd:constant name='autohang' value='autohang'/>
+ <cd:constant name='autostrut' value='autostrut'/>
+ <cd:constant name='autowidth' value='autobreedte'/>
+ <cd:constant name='axis' value='assenstelsel'/>
+ <cd:constant name='background' value='achtergrond'/>
+ <cd:constant name='backgroundcolor' value='achtergrondkleur'/>
+ <cd:constant name='backgroundcorner' value='achtergrondhoek'/>
+ <cd:constant name='backgrounddepth' value='achtergronddiepte'/>
+ <cd:constant name='backgroundoffset' value='achtergrondoffset'/>
+ <cd:constant name='backgroundradius' value='achtergrondstraal'/>
+ <cd:constant name='backgroundscreen' value='achtergrondraster'/>
+ <cd:constant name='backspace' value='rugwit'/>
+ <cd:constant name='balance' value='balanceren'/>
+ <cd:constant name='before' value='voor'/>
+ <cd:constant name='beforehead' value='kopvoor'/>
+ <cd:constant name='bet' value='bet'/>
+ <cd:constant name='big' value='groot'/>
+ <cd:constant name='blank' value='blanko'/>
+ <cd:constant name='blockway' value='blokwijze'/>
+ <cd:constant name='bodyfont' value='korps'/>
+ <cd:constant name='bookmark' value='bookmark'/>
+ <cd:constant name='bottom' value='onder'/>
+ <cd:constant name='bottomafter' value='bottomafter'/>
+ <cd:constant name='bottombefore' value='bottombefore'/>
+ <cd:constant name='bottomdistance' value='onderafstand'/>
+ <cd:constant name='bottomframe' value='onderkader'/>
+ <cd:constant name='bottomoffset' value='onderoffset'/>
+ <cd:constant name='bottomspace' value='bodemwit'/>
+ <cd:constant name='bottomstate' value='onderstatus'/>
+ <cd:constant name='cache' value='cache'/>
+ <cd:constant name='calculate' value='bereken'/>
+ <cd:constant name='ccommand' value='ccommando'/>
+ <cd:constant name='click' value='klik'/>
+ <cd:constant name='clickin' value='klikin'/>
+ <cd:constant name='clickout' value='klikuit'/>
+ <cd:constant name='clipoffset' value='clipoffset'/>
+ <cd:constant name='closeaction' value='sluitactie'/>
+ <cd:constant name='closecommand' value='sluitcommando'/>
+ <cd:constant name='closepageaction' value='sluitpaginaactie'/>
+ <cd:constant name='closesymbol' value='sluitsymbool'/>
+ <cd:constant name='color' value='kleur'/>
+ <cd:constant name='column' value='kolom'/>
+ <cd:constant name='columndistance' value='kolomafstand'/>
+ <cd:constant name='columns' value='kolommen'/>
+ <cd:constant name='command' value='commando'/>
+ <cd:constant name='commandafter' value='nacommando'/>
+ <cd:constant name='commandbefore' value='voorcommando'/>
+ <cd:constant name='commands' value='commandos'/>
+ <cd:constant name='component' value='component'/>
+ <cd:constant name='compoundhyphen' value='koppelteken'/>
+ <cd:constant name='compress' value='comprimeren'/>
+ <cd:constant name='connector' value='connector'/>
+ <cd:constant name='continue' value='doorgaan'/>
+ <cd:constant name='contrastcolor' value='contrastkleur'/>
+ <cd:constant name='controls' value='sturing'/>
+ <cd:constant name='conversion' value='conversie'/>
+ <cd:constant name='convertfile' value='converteerfile'/>
+ <cd:constant name='corner' value='hoek'/>
+ <cd:constant name='coupling' value='koppeling'/>
+ <cd:constant name='couplingway' value='koppelwijze'/>
+ <cd:constant name='criterium' value='criterium'/>
+ <cd:constant name='current' value='huidige'/>
+ <cd:constant name='cutspace' value='snijwit'/>
+ <cd:constant name='dash' value='streep'/>
+ <cd:constant name='dat' value='dat'/>
+ <cd:constant name='date' value='datum'/>
+ <cd:constant name='deepnumbercommand' value='diepnummercommando'/>
+ <cd:constant name='deeptextcommand' value='dieptekstcommando'/>
+ <cd:constant name='default' value='default'/>
+ <cd:constant name='delay' value='wachttijd'/>
+ <cd:constant name='depth' value='diepte'/>
+ <cd:constant name='depthcorrection' value='dieptecorrectie'/>
+ <cd:constant name='direction' value='richting'/>
+ <cd:constant name='directory' value='gebied'/>
+ <cd:constant name='display' value='scherm'/>
+ <cd:constant name='distance' value='afstand'/>
+ <cd:constant name='dot' value='punt'/>
+ <cd:constant name='doublesided' value='dubbelzijdig'/>
+ <cd:constant name='dummy' value='dummy'/>
+ <cd:constant name='dx' value='dx'/>
+ <cd:constant name='dy' value='dy'/>
+ <cd:constant name='edge' value='rand'/>
+ <cd:constant name='edgedistance' value='randafstand'/>
+ <cd:constant name='empty' value='leeg'/>
+ <cd:constant name='equalheight' value='equalheight'/>
+ <cd:constant name='equalwidth' value='equalwidth'/>
+ <cd:constant name='escape' value='escape'/>
+ <cd:constant name='evenmargin' value='evenmarge'/>
+ <cd:constant name='expansion' value='expansie'/>
+ <cd:constant name='extras' value='extras'/>
+ <cd:constant name='factor' value='factor'/>
+ <cd:constant name='fallback' value='terugval'/>
+ <cd:constant name='family' value='soort'/>
+ <cd:constant name='fieldbackgroundcolor' value='veldachtergrondkleur'/>
+ <cd:constant name='fieldframecolor' value='veldkaderkleur'/>
+ <cd:constant name='fieldlayer' value='veldlaag'/>
+ <cd:constant name='fieldoffset' value='veldoffset'/>
+ <cd:constant name='file' value='file'/>
+ <cd:constant name='filtercommand' value='filtercommand'/>
+ <cd:constant name='focus' value='focus'/>
+ <cd:constant name='focusin' value='focusin'/>
+ <cd:constant name='focusout' value='focusuit'/>
+ <cd:constant name='footer' value='voet'/>
+ <cd:constant name='footerdistance' value='voetafstand'/>
+ <cd:constant name='footerstate' value='voetstatus'/>
+ <cd:constant name='foregroundcolor' value='voorgrondkleur'/>
+ <cd:constant name='foregroundstyle' value='voorgrondletter'/>
+ <cd:constant name='format' value='formatteer'/>
+ <cd:constant name='frame' value='kader'/>
+ <cd:constant name='framecolor' value='kaderkleur'/>
+ <cd:constant name='framecorner' value='kaderhoek'/>
+ <cd:constant name='framedepth' value='kaderdiepte'/>
+ <cd:constant name='frameoffset' value='kaderoffset'/>
+ <cd:constant name='frameradius' value='kaderstraal'/>
+ <cd:constant name='frames' value='hokjes'/>
+ <cd:constant name='from' value='van'/>
+ <cd:constant name='get' value='haal'/>
+ <cd:constant name='global' value='globaal'/>
+ <cd:constant name='grid' value='grid'/>
+ <cd:constant name='hang' value='hang'/>
+ <cd:constant name='headcolor' value='kopkleur'/>
+ <cd:constant name='headcommand' value='kopcommando'/>
+ <cd:constant name='headconversion' value='kopconversie'/>
+ <cd:constant name='header' value='hoofd'/>
+ <cd:constant name='headerdistance' value='hoofdafstand'/>
+ <cd:constant name='headerstate' value='hoofdstatus'/>
+ <cd:constant name='headlabel' value='koplabel'/>
+ <cd:constant name='headnumber' value='kopnummer'/>
+ <cd:constant name='headstyle' value='kopletter'/>
+ <cd:constant name='height' value='hoogte'/>
+ <cd:constant name='hfactor' value='hfactor'/>
+ <cd:constant name='hfil' value='hfil'/>
+ <cd:constant name='hidenumber' value='hidenumber'/>
+ <cd:constant name='hoffset' value='hoffset'/>
+ <cd:constant name='horoffset' value='rugoffset'/>
+ <cd:constant name='hyphen' value='hyphen'/>
+ <cd:constant name='icommand' value='icommando'/>
+ <cd:constant name='in' value='in'/>
+ <cd:constant name='inbetween' value='tussen'/>
+ <cd:constant name='increment' value='verhoog'/>
+ <cd:constant name='incrementnumber' value='verhoognummer'/>
+ <cd:constant name='indenting' value='inspringen'/>
+ <cd:constant name='indentnext' value='springvolgendein'/>
+ <cd:constant name='indicator' value='aanduiding'/>
+ <cd:constant name='inner' value='binnen'/>
+ <cd:constant name='innermargin' value='binnenmarge'/>
+ <cd:constant name='inputfile' value='inputfile'/>
+ <cd:constant name='interaction' value='interactie'/>
+ <cd:constant name='interlinespace' value='interlinie'/>
+ <cd:constant name='itemalign' value='itemuitlijnen'/>
+ <cd:constant name='items' value='items'/>
+ <cd:constant name='ken' value='ken'/>
+ <cd:constant name='keyexpansion' value='sleutelexpansie'/>
+ <cd:constant name='keyword' value='trefwoord'/>
+ <cd:constant name='label' value='label'/>
+ <cd:constant name='left' value='links'/>
+ <cd:constant name='leftcolor' value='linkerkleur'/>
+ <cd:constant name='leftcompoundhyphen' value='linkerkoppelteken'/>
+ <cd:constant name='leftedge' value='linkerrand'/>
+ <cd:constant name='leftedgedistance' value='linkerrandafstand'/>
+ <cd:constant name='leftframe' value='linkerkader'/>
+ <cd:constant name='lefthyphen' value='lefthyphen'/>
+ <cd:constant name='leftmargin' value='linkermarge'/>
+ <cd:constant name='leftmargindistance' value='linkermargeafstand'/>
+ <cd:constant name='leftoffset' value='linkeroffset'/>
+ <cd:constant name='leftquotation' value='linkercitaat'/>
+ <cd:constant name='leftquote' value='linkerciteer'/>
+ <cd:constant name='leftsentence' value='linkerzin'/>
+ <cd:constant name='leftspeech' value='linkeruitspraak'/>
+ <cd:constant name='leftstyle' value='linkerletter'/>
+ <cd:constant name='leftsubsentence' value='linkersubzin'/>
+ <cd:constant name='lefttext' value='linkertekst'/>
+ <cd:constant name='leftwidth' value='linkerbreedte'/>
+ <cd:constant name='level' value='niveau'/>
+ <cd:constant name='levels' value='niveaus'/>
+ <cd:constant name='limittext' value='limiettekst'/>
+ <cd:constant name='line' value='regel'/>
+ <cd:constant name='linecorrection' value='regelcorrectie'/>
+ <cd:constant name='lines' value='regels'/>
+ <cd:constant name='list' value='lijst'/>
+ <cd:constant name='listtext' value='lijsttekst'/>
+ <cd:constant name='local' value='lokaal'/>
+ <cd:constant name='location' value='plaats'/>
+ <cd:constant name='logo' value='logo'/>
+ <cd:constant name='logos' value='logos'/>
+ <cd:constant name='marcolor' value='markleur'/>
+ <cd:constant name='margin' value='marge'/>
+ <cd:constant name='margindistance' value='margeafstand'/>
+ <cd:constant name='marginedge' value='kantlijn'/>
+ <cd:constant name='marginedgetext' value='kantlijntekst'/>
+ <cd:constant name='margintext' value='margetekst'/>
+ <cd:constant name='marking' value='markering'/>
+ <cd:constant name='marstyle' value='marletter'/>
+ <cd:constant name='max' value='max'/>
+ <cd:constant name='maxheight' value='maxhoogte'/>
+ <cd:constant name='maxwidth' value='maxbreedte'/>
+ <cd:constant name='menu' value='menu'/>
+ <cd:constant name='method' value='methode'/>
+ <cd:constant name='middle' value='midden'/>
+ <cd:constant name='middlespeech' value='middenuitspraak'/>
+ <cd:constant name='middletext' value='middentekst'/>
+ <cd:constant name='midsentence' value='middenzin'/>
+ <cd:constant name='min' value='min'/>
+ <cd:constant name='mindepth' value='mindiepte'/>
+ <cd:constant name='minheight' value='minhoogte'/>
+ <cd:constant name='minwidth' value='minbreedte'/>
+ <cd:constant name='n' value='n'/>
+ <cd:constant name='name' value='naam'/>
+ <cd:constant name='nbottom' value='nonder'/>
+ <cd:constant name='nc' value='nc'/>
+ <cd:constant name='next' value='volgende'/>
+ <cd:constant name='nl' value='nl'/>
+ <cd:constant name='nleft' value='nlinks'/>
+ <cd:constant name='nlines' value='nregels'/>
+ <cd:constant name='norm' value='norm'/>
+ <cd:constant name='nr' value='nr'/>
+ <cd:constant name='nright' value='nrechts'/>
+ <cd:constant name='ntop' value='nboven'/>
+ <cd:constant name='number' value='nummer'/>
+ <cd:constant name='numbercolor' value='nummerkleur'/>
+ <cd:constant name='numbercommand' value='nummercommando'/>
+ <cd:constant name='numberconversion' value='numberconversion'/>
+ <cd:constant name='numberconversionset' value='numberconversionset'/>
+ <cd:constant name='numberdistance' value='nummerafstand'/>
+ <cd:constant name='numbering' value='nummeren'/>
+ <cd:constant name='numberorder' value='numberorder'/>
+ <cd:constant name='numberprefix' value='numberprefix'/>
+ <cd:constant name='numbersegments' value='numbersegments'/>
+ <cd:constant name='numberseparator' value='nummerscheider'/>
+ <cd:constant name='numberseparatorset' value='numberseparatorset'/>
+ <cd:constant name='numberset' value='numberset'/>
+ <cd:constant name='numberstopper' value='numberstopper'/>
+ <cd:constant name='numberstyle' value='nummerletter'/>
+ <cd:constant name='numberwidth' value='nummerbreedte'/>
+ <cd:constant name='nx' value='nx'/>
+ <cd:constant name='ny' value='ny'/>
+ <cd:constant name='object' value='object'/>
+ <cd:constant name='obstruction' value='blokkade'/>
+ <cd:constant name='oddmargin' value='onevenmarge'/>
+ <cd:constant name='offset' value='offset'/>
+ <cd:constant name='openaction' value='openactie'/>
+ <cd:constant name='openpageaction' value='openpaginaactie'/>
+ <cd:constant name='option' value='optie'/>
+ <cd:constant name='orientation' value='orientatie'/>
+ <cd:constant name='outermargin' value='buitenmarge'/>
+ <cd:constant name='overprint' value='overprint'/>
+ <cd:constant name='ownnumber' value='eigennummer'/>
+ <cd:constant name='page' value='pagina'/>
+ <cd:constant name='pageboundaries' value='paginaovergangen'/>
+ <cd:constant name='pagecolor' value='paginakleur'/>
+ <cd:constant name='pagecommand' value='paginacommando'/>
+ <cd:constant name='pageconversion' value='pageconversion'/>
+ <cd:constant name='pageconversionset' value='pageconversionset'/>
+ <cd:constant name='pagenumber' value='paginanummer'/>
+ <cd:constant name='pageprefix' value='pageprefix'/>
+ <cd:constant name='pageprefixconnector' value='pageprefixconnector'/>
+ <cd:constant name='pageprefixconversion' value='pageprefixconversion'/>
+ <cd:constant name='pageprefixconversionset' value='pageprefixconversionset'/>
+ <cd:constant name='pageprefixsegments' value='pageprefixsegments'/>
+ <cd:constant name='pageprefixseparatorset' value='pageprefixseparatorset'/>
+ <cd:constant name='pageprefixset' value='pageprefixset'/>
+ <cd:constant name='pageprefixstopper' value='pageprefixstopper'/>
+ <cd:constant name='pagesegments' value='pagesegments'/>
+ <cd:constant name='pageseparatorset' value='pageseparatorset'/>
+ <cd:constant name='pageset' value='pageset'/>
+ <cd:constant name='pagestate' value='paginastatus'/>
+ <cd:constant name='pagestopper' value='pagestopper'/>
+ <cd:constant name='pagestyle' value='paginaletter'/>
+ <cd:constant name='palet' value='palet'/>
+ <cd:constant name='paper' value='papier'/>
+ <cd:constant name='paragraph' value='alinea'/>
+ <cd:constant name='place' value='plaatsen'/>
+ <cd:constant name='placehead' value='plaatskop'/>
+ <cd:constant name='placestopper' value='plaatsafsluiter'/>
+ <cd:constant name='position' value='positie'/>
+ <cd:constant name='prefix' value='prefix'/>
+ <cd:constant name='prefixconnector' value='prefixconnector'/>
+ <cd:constant name='prefixconversion' value='prefixconversion'/>
+ <cd:constant name='prefixconversionset' value='prefixconversionset'/>
+ <cd:constant name='prefixsegments' value='prefixsegments'/>
+ <cd:constant name='prefixseparatorset' value='prefixseparatorset'/>
+ <cd:constant name='prefixset' value='prefixset'/>
+ <cd:constant name='prefixstopper' value='prefixstopper'/>
+ <cd:constant name='preset' value='preset'/>
+ <cd:constant name='preview' value='preview'/>
+ <cd:constant name='previous' value='vorige'/>
+ <cd:constant name='previousnumber' value='vorigenummer'/>
+ <cd:constant name='process' value='proces'/>
+ <cd:constant name='radius' value='straal'/>
+ <cd:constant name='random' value='willekeur'/>
+ <cd:constant name='reduction' value='reductie'/>
+ <cd:constant name='ref' value='ref'/>
+ <cd:constant name='reference' value='verwijzing'/>
+ <cd:constant name='referenceprefix' value='referenceprefix'/>
+ <cd:constant name='referencing' value='refereren'/>
+ <cd:constant name='regionin' value='gebiedin'/>
+ <cd:constant name='regionout' value='gebieduit'/>
+ <cd:constant name='repeat' value='herhaal'/>
+ <cd:constant name='reset' value='reset'/>
+ <cd:constant name='resetnumber' value='resetnummer'/>
+ <cd:constant name='resolution' value='resolutie'/>
+ <cd:constant name='right' value='rechts'/>
+ <cd:constant name='rightcolor' value='rechterkleur'/>
+ <cd:constant name='rightcompoundhyphen' value='rechterkoppelteken'/>
+ <cd:constant name='rightedge' value='rechterrand'/>
+ <cd:constant name='rightedgedistance' value='rechterrandafstand'/>
+ <cd:constant name='rightframe' value='rechterkader'/>
+ <cd:constant name='righthyphen' value='righthyphen'/>
+ <cd:constant name='rightmargin' value='rechtermarge'/>
+ <cd:constant name='rightmargindistance' value='rechtermargeafstand'/>
+ <cd:constant name='rightoffset' value='rechteroffset'/>
+ <cd:constant name='rightquotation' value='rechtercitaat'/>
+ <cd:constant name='rightquote' value='rechterciteer'/>
+ <cd:constant name='rightsentence' value='rechterzin'/>
+ <cd:constant name='rightspeech' value='rechteruitspraak'/>
+ <cd:constant name='rightstyle' value='rechterletter'/>
+ <cd:constant name='rightsubsentence' value='rechtersubzin'/>
+ <cd:constant name='righttext' value='rechtertekst'/>
+ <cd:constant name='rightwidth' value='rechterbreedte'/>
+ <cd:constant name='rotation' value='rotatie'/>
+ <cd:constant name='rule' value='lijn'/>
+ <cd:constant name='rulecolor' value='lijnkleur'/>
+ <cd:constant name='rulethickness' value='lijndikte'/>
+ <cd:constant name='samepage' value='zelfdepagina'/>
+ <cd:constant name='sample' value='monster'/>
+ <cd:constant name='saveinlist' value='saveinlist'/>
+ <cd:constant name='scale' value='schaal'/>
+ <cd:constant name='scope' value='scope'/>
+ <cd:constant name='screen' value='raster'/>
+ <cd:constant name='section' value='sectie'/>
+ <cd:constant name='sectionconversion' value='sectionconversion'/>
+ <cd:constant name='sectionconversionset' value='sectionconversionset'/>
+ <cd:constant name='sectionnumber' value='sectienummer'/>
+ <cd:constant name='sectionresetset' value='sectionresetset'/>
+ <cd:constant name='sectionsegments' value='sectionsegments'/>
+ <cd:constant name='sectionseparatorset' value='sectionseparatorset'/>
+ <cd:constant name='sectionset' value='sectionset'/>
+ <cd:constant name='sectionstopper' value='sectionstopper'/>
+ <cd:constant name='separator' value='scheider'/>
+ <cd:constant name='set' value='set'/>
+ <cd:constant name='setups' value='setups'/>
+ <cd:constant name='side' value='zij'/>
+ <cd:constant name='sidealign' value='zijuitlijnen'/>
+ <cd:constant name='sidemethod' value='zijmethode'/>
+ <cd:constant name='sidespaceafter' value='zijnawit'/>
+ <cd:constant name='sidespacebefore' value='zijvoorwit'/>
+ <cd:constant name='sign' value='teken'/>
+ <cd:constant name='size' value='formaat'/>
+ <cd:constant name='small' value='klein'/>
+ <cd:constant name='sorttype' value='sortering'/>
+ <cd:constant name='source' value='bron'/>
+ <cd:constant name='space' value='spatie'/>
+ <cd:constant name='spaceafter' value='nawit'/>
+ <cd:constant name='spacebefore' value='voorwit'/>
+ <cd:constant name='spaceinbetween' value='tussenwit'/>
+ <cd:constant name='spacing' value='spatiering'/>
+ <cd:constant name='split' value='splitsen'/>
+ <cd:constant name='splitcolor' value='splitskleur'/>
+ <cd:constant name='splitmethod' value='splitsmethode'/>
+ <cd:constant name='splitoffset' value='splitsoffset'/>
+ <cd:constant name='spot' value='spot'/>
+ <cd:constant name='stack' value='stapel'/>
+ <cd:constant name='start' value='start'/>
+ <cd:constant name='state' value='status'/>
+ <cd:constant name='step' value='stap'/>
+ <cd:constant name='stop' value='stop'/>
+ <cd:constant name='stopper' value='afsluiter'/>
+ <cd:constant name='stretch' value='rek'/>
+ <cd:constant name='strut' value='strut'/>
+ <cd:constant name='style' value='letter'/>
+ <cd:constant name='sub' value='sub'/>
+ <cd:constant name='subtitle' value='subtitel'/>
+ <cd:constant name='suffix' value='suffix'/>
+ <cd:constant name='sx' value='sx'/>
+ <cd:constant name='sy' value='sy'/>
+ <cd:constant name='symalign' value='symuitlijnen'/>
+ <cd:constant name='symbol' value='symbool'/>
+ <cd:constant name='symbolset' value='symboolset'/>
+ <cd:constant name='symcolor' value='symkleur'/>
+ <cd:constant name='symstyle' value='symletter'/>
+ <cd:constant name='synonym' value='synoniem'/>
+ <cd:constant name='synonymcolor' value='synoniemkleur'/>
+ <cd:constant name='synonymcommand' value='synoniemcommando'/>
+ <cd:constant name='synonymstyle' value='synoniemletter'/>
+ <cd:constant name='tab' value='tab'/>
+ <cd:constant name='text' value='tekst'/>
+ <cd:constant name='textcolor' value='tekstkleur'/>
+ <cd:constant name='textcommand' value='tekstcommando'/>
+ <cd:constant name='textdistance' value='tekstafstand'/>
+ <cd:constant name='textlayer' value='tekstlaag'/>
+ <cd:constant name='textmargin' value='tekstmarge'/>
+ <cd:constant name='textmethod' value='tekstmethode'/>
+ <cd:constant name='textseparator' value='tekstscheider'/>
+ <cd:constant name='textsize' value='tekstformaat'/>
+ <cd:constant name='textstate' value='tekststatus'/>
+ <cd:constant name='textstyle' value='tekstletter'/>
+ <cd:constant name='textwidth' value='tekstbreedte'/>
+ <cd:constant name='title' value='titel'/>
+ <cd:constant name='titlecolor' value='titelkleur'/>
+ <cd:constant name='titlecommand' value='titelcommando'/>
+ <cd:constant name='titledistance' value='titelafstand'/>
+ <cd:constant name='titleleft' value='titellinks'/>
+ <cd:constant name='titleright' value='titelrechts'/>
+ <cd:constant name='titlestyle' value='titelletter'/>
+ <cd:constant name='to' value='aan'/>
+ <cd:constant name='tolerance' value='tolerantie'/>
+ <cd:constant name='top' value='boven'/>
+ <cd:constant name='topdistance' value='bovenafstand'/>
+ <cd:constant name='topframe' value='bovenkader'/>
+ <cd:constant name='topoffset' value='bovenoffset'/>
+ <cd:constant name='topspace' value='kopwit'/>
+ <cd:constant name='topstate' value='bovenstatus'/>
+ <cd:constant name='type' value='type'/>
+ <cd:constant name='unit' value='eenheid'/>
+ <cd:constant name='unknownreference' value='onbekendeverwijzing'/>
+ <cd:constant name='urlalternative' value='urlvariant'/>
+ <cd:constant name='urlspace' value='urlspatie'/>
+ <cd:constant name='validate' value='valideer'/>
+ <cd:constant name='vcommand' value='vcommando'/>
+ <cd:constant name='veroffset' value='kopoffset'/>
+ <cd:constant name='vfil' value='vfil'/>
+ <cd:constant name='voffset' value='voffset'/>
+ <cd:constant name='way' value='wijze'/>
+ <cd:constant name='wfactor' value='bfactor'/>
+ <cd:constant name='white' value='wit'/>
+ <cd:constant name='width' value='breedte'/>
+ <cd:constant name='xfactor' value='xfactor'/>
+ <cd:constant name='xmax' value='xmax'/>
+ <cd:constant name='xoffset' value='xoffset'/>
+ <cd:constant name='xscale' value='xschaal'/>
+ <cd:constant name='xstep' value='xstap'/>
+ <cd:constant name='yfactor' value='yfactor'/>
+ <cd:constant name='ymax' value='ymax'/>
+ <cd:constant name='yoffset' value='yoffset'/>
+ <cd:constant name='yscale' value='yschaal'/>
+ <cd:constant name='ystep' value='ystap'/>
+ </cd:constant>
- <cd:variables>
- <cd:variable name="january" value="januari"/>
- <cd:variable name="february" value="februari"/>
- <cd:variable name="march" value="maart"/>
- <cd:variable name="april" value="april"/>
- <cd:variable name="may" value="mei"/>
- <cd:variable name="june" value="juni"/>
- <cd:variable name="july" value="juli"/>
- <cd:variable name="august" value="augustus"/>
- <cd:variable name="september" value="september"/>
- <cd:variable name="october" value="oktober"/>
- <cd:variable name="november" value="november"/>
- <cd:variable name="december" value="december"/>
- </cd:variables>
+ <!-- definitions for interface elements for language nl -->
- <cd:variables>
- <cd:variable name="atpage" value="oppagina"/>
- <cd:variable name="hencefore" value="hierboven"/>
- <cd:variable name="hereafter" value="hieronder"/>
- </cd:variables>
+ <cd:elements>
+ <cd:element name='answerlines' value='antwoordregels'/>
+ <cd:element name='answerspace' value='antwoordruimte'/>
+ <cd:element name='begin' value='beginvan'/>
+ <cd:element name='complete' value='volledige'/>
+ <cd:element name='coupled' value='gekoppelde'/>
+ <cd:element name='currentlocal' value='huidigelokale'/>
+ <cd:element name='emptyone' value='leeg'/>
+ <cd:element name='emptytwo' value='lege'/>
+ <cd:element name='end' value='eindvan'/>
+ <cd:element name='endsetup' value='in'/>
+ <cd:element name='get' value='haal'/>
+ <cd:element name='increment' value='verhoog'/>
+ <cd:element name='list' value='lijst'/>
+ <cd:element name='listof' value='lijstmet'/>
+ <cd:element name='load' value='laad'/>
+ <cd:element name='local' value='lokale'/>
+ <cd:element name='makeup' value='opmaak'/>
+ <cd:element name='next' value='volgende'/>
+ <cd:element name='place' value='plaats'/>
+ <cd:element name='previous' value='vorige'/>
+ <cd:element name='previouslocal' value='vorigelokale'/>
+ <cd:element name='reserve' value='reserveer'/>
+ <cd:element name='see' value='zie'/>
+ <cd:element name='setup' value='stel'/>
+ <cd:element name='start' value='start'/>
+ <cd:element name='stop' value='stop'/>
+ <cd:element name='text' value='tekst'/>
+ <cd:element name='type' value='type'/>
+ </cd:element>
- <cd:variables>
- <cd:variable name="part" value="deel"/>
- <cd:variable name="chapter" value="hoofdstuk"/>
- <cd:variable name="subject" value="onderwerp"/>
- <cd:variable name="section" value="paragraaf"/>
- <cd:variable name="title" value="titel"/>
- <cd:variable name="margintitle" value="margetitel"/>
- <cd:variable name="content" value="inhoud"/>
- <cd:variable name="contents" value="inhouden"/>
- <cd:variable name="appendix" value="bijlage"/>
- <cd:variable name="appendices" value="bijlagen"/>
- <cd:variable name="bodypart" value="hoofdtekst"/>
- <cd:variable name="bodymatter" value="hoofdteksten"/>
- <cd:variable name="frontpart" value="inleiding"/>
- <cd:variable name="frontmatter" value="inleidingen"/>
- <cd:variable name="backpart" value="uitleiding"/>
- <cd:variable name="backmatter" value="uitleidingen"/>
- <cd:variable name="footnote" value="voetnoot"/>
- <cd:variable name="endnote" value="eindnoot"/>
- <cd:variable name="system" value="systeem"/>
- </cd:variables>
+ <!-- definitions for interface commands for language nl -->
- <cd:variables>
- <cd:variable name="subsection" value="subparagraaf"/>
- <cd:variable name="subsubsection" value="subsubparagraaf"/>
- <cd:variable name="subsubsubsection" value="subsubsubparagraaf"/>
- <cd:variable name="subsubsubsubsection" value="subsubsubsubparagraaf"/>
- <cd:variable name="subsubsubsubsubsection" value="subsubsubsubsubparagraaf"/>
- <cd:variable name="subsubject" value="subonderwerp"/>
- <cd:variable name="subsubsubject" value="subsubonderwerp"/>
- <cd:variable name="subsubsubsubject" value="subsubsubonderwerp"/>
- <cd:variable name="subsubsubsubsubject" value="subsubsubsubonderwerp"/>
- <cd:variable name="subsubsubsubsubsubject" value="subsubsubsubsubonderwerp"/>
- </cd:variables>
+ <cd:commands>
+ <cd:command name='CAPPED' value='KAP'/>
+ <cd:command name='Character' value='Letter'/>
+ <cd:command name='Characters' value='Letters'/>
+ <cd:command name='LABELTEXT' value='LABELTEKST'/>
+ <cd:command name='MONTH' value='MAAND'/>
+ <cd:command name='Numbers' value='Cijfers'/>
+ <cd:command name='Romannumerals' value='Romeins'/>
+ <cd:command name='SmallCapped' value='Kap'/>
+ <cd:command name='SmallCaps' value='Kaps'/>
+ <cd:command name='WEEKDAY' value='WEEKDAG'/>
+ <cd:command name='WORD' value='WOORD'/>
+ <cd:command name='WORDS' value='WOORDEN'/>
+ <cd:command name='Word' value='Woord'/>
+ <cd:command name='Words' value='Woorden'/>
+ <cd:command name='about' value='about'/>
+ <cd:command name='adaptlayout' value='paslayoutaan'/>
+ <cd:command name='arg' value='arg'/>
+ <cd:command name='at' value='op'/>
+ <cd:command name='atleftmargin' value='oplinkermarge'/>
+ <cd:command name='atpage' value='oppagina'/>
+ <cd:command name='atrightmargin' value='oprechtermarge'/>
+ <cd:command name='background' value='achtergrond'/>
+ <cd:command name='backspace' value='rugwit'/>
+ <cd:command name='blackrule' value='blokje'/>
+ <cd:command name='blackrules' value='blokjes'/>
+ <cd:command name='blank' value='blanko'/>
+ <cd:command name='bookmark' value='bookmark'/>
+ <cd:command name='bottomdistance' value='onderafstand'/>
+ <cd:command name='bottomheight' value='onderhoogte'/>
+ <cd:command name='bottomspace' value='bodemwit'/>
+ <cd:command name='but' value='but'/>
+ <cd:command name='button' value='button'/>
+ <cd:command name='bypassblocks' value='passeerblokken'/>
+ <cd:command name='character' value='letter'/>
+ <cd:command name='characters' value='letters'/>
+ <cd:command name='chem' value='chem'/>
+ <cd:command name='clip' value='clip'/>
+ <cd:command name='clonefield' value='kloonveld'/>
+ <cd:command name='color' value='kleur'/>
+ <cd:command name='colorbar' value='kleurenbalk'/>
+ <cd:command name='colorvalue' value='kleurwaarde'/>
+ <cd:command name='column' value='kolom'/>
+ <cd:command name='comment' value='commentaar'/>
+ <cd:command name='comparecolorgroup' value='vergelijkkleurgroep'/>
+ <cd:command name='comparepalet' value='vergelijkpalet'/>
+ <cd:command name='completepagenumber' value='volledigepaginanummer'/>
+ <cd:command name='completeregister' value='volledigregister'/>
+ <cd:command name='component' value='onderdeel'/>
+ <cd:command name='convertnumber' value='converteernummer'/>
+ <cd:command name='copyfield' value='copieerveld'/>
+ <cd:command name='correctwhitespace' value='corrigeerwitruimte'/>
+ <cd:command name='coupledocument' value='koppeldocument'/>
+ <cd:command name='couplemarking' value='koppelmarkering'/>
+ <cd:command name='couplepage' value='koppelpagina'/>
+ <cd:command name='couplepaper' value='koppelpapier'/>
+ <cd:command name='coupleregister' value='koppelregister'/>
+ <cd:command name='crlf' value='crlf'/>
+ <cd:command name='currentdate' value='huidigedatum'/>
+ <cd:command name='currentheadnumber' value='huidigekopnummer'/>
+ <cd:command name='cutspace' value='snijwit'/>
+ <cd:command name='date' value='datum'/>
+ <cd:command name='decouplemarking' value='ontkoppelmarkering'/>
+ <cd:command name='decrementnumber' value='verlaagnummer'/>
+ <cd:command name='define' value='definieer'/>
+ <cd:command name='defineaccent' value='definieeraccent'/>
+ <cd:command name='defineblank' value='definieerblanko'/>
+ <cd:command name='defineblock' value='definieerblok'/>
+ <cd:command name='definebodyfont' value='definieerkorps'/>
+ <cd:command name='definebodyfontenvironment' value='definieerkorpsomgeving'/>
+ <cd:command name='definebuffer' value='definieerbuffer'/>
+ <cd:command name='definecharacter' value='definieerkarakter'/>
+ <cd:command name='definecolor' value='definieerkleur'/>
+ <cd:command name='definecolorgroup' value='definieerkleurgroep'/>
+ <cd:command name='definecolumnbreak' value='definieerkolomovergang'/>
+ <cd:command name='definecolumnset' value='definieerkolomgroep'/>
+ <cd:command name='definecombination' value='definieercombinatie'/>
+ <cd:command name='definecombinedlist' value='definieersamengesteldelijst'/>
+ <cd:command name='definecommand' value='definieercommando'/>
+ <cd:command name='defineconversion' value='definieerconversie'/>
+ <cd:command name='definedescription' value='doordefinieren'/>
+ <cd:command name='defineenumeration' value='doornummeren'/>
+ <cd:command name='definefield' value='definieerveld'/>
+ <cd:command name='definefieldstack' value='definieerveldstapel'/>
+ <cd:command name='definefiguresymbol' value='definieerfiguursymbool'/>
+ <cd:command name='definefloat' value='definieerplaatsblok'/>
+ <cd:command name='definefont' value='definieerfont'/>
+ <cd:command name='definefontstyle' value='definieerfontstijl'/>
+ <cd:command name='definefontsynonym' value='definieerfontsynoniem'/>
+ <cd:command name='defineframed' value='definieeromlijnd'/>
+ <cd:command name='defineframedtext' value='definieerkadertekst'/>
+ <cd:command name='definehbox' value='definieerhbox'/>
+ <cd:command name='definehead' value='definieerkop'/>
+ <cd:command name='defineindenting' value='doorspringen'/>
+ <cd:command name='defineinmargin' value='definieerinmarge'/>
+ <cd:command name='defineinteractionmenu' value='definieerinteractiemenu'/>
+ <cd:command name='defineitemgroup' value='definieeritemgroep'/>
+ <cd:command name='definelabel' value='doorlabelen'/>
+ <cd:command name='definelayer' value='definieerlayer'/>
+ <cd:command name='definelayout' value='definieerlayout'/>
+ <cd:command name='definelist' value='definieerlijst'/>
+ <cd:command name='definelogo' value='definieerbeeldmerk'/>
+ <cd:command name='definemainfield' value='definieerhoofdveld'/>
+ <cd:command name='definemakeup' value='definieeropmaak'/>
+ <cd:command name='definemarking' value='definieermarkering'/>
+ <cd:command name='definemathalignment' value='definieerwiskundeuitlijnen'/>
+ <cd:command name='defineoutput' value='definieeruitvoer'/>
+ <cd:command name='defineoverlay' value='definieeroverlay'/>
+ <cd:command name='definepagebreak' value='definieerpaginaovergang'/>
+ <cd:command name='definepalet' value='definieerpalet'/>
+ <cd:command name='definepapersize' value='definieerpapierformaat'/>
+ <cd:command name='defineparagraphs' value='definieeralineas'/>
+ <cd:command name='defineplacement' value='definieerplaats'/>
+ <cd:command name='defineprofile' value='definieerprofiel'/>
+ <cd:command name='defineprogram' value='definieerprogramma'/>
+ <cd:command name='definerawfont' value='definerawfont'/>
+ <cd:command name='definereference' value='definieerreferentie'/>
+ <cd:command name='definereferenceformat' value='definieerreferentieformaat'/>
+ <cd:command name='definereferencelist' value='definieerreferentielijst'/>
+ <cd:command name='defineregister' value='definieerregister'/>
+ <cd:command name='definerule' value='definieerlijn'/>
+ <cd:command name='definesection' value='definieersectie'/>
+ <cd:command name='definesectionblock' value='definieersectieblok'/>
+ <cd:command name='definesorting' value='definieersorteren'/>
+ <cd:command name='definestartstop' value='definieerstartstop'/>
+ <cd:command name='definestyle' value='definieerletter'/>
+ <cd:command name='definesubfield' value='definieersubveld'/>
+ <cd:command name='definesymbol' value='definieersymbool'/>
+ <cd:command name='definesynonyms' value='definieersynoniemen'/>
+ <cd:command name='definetabletemplate' value='definieertabelvorm'/>
+ <cd:command name='definetabulate' value='definieertabulatie'/>
+ <cd:command name='definetext' value='definieertekst'/>
+ <cd:command name='definetextposition' value='definieertekstpositie'/>
+ <cd:command name='definetextvariable' value='definieertekstvariabele'/>
+ <cd:command name='definetype' value='definieertype'/>
+ <cd:command name='definetyping' value='definieertypen'/>
+ <cd:command name='defineversion' value='definieerversie'/>
+ <cd:command name='determineheadnumber' value='bepaalkopnummer'/>
+ <cd:command name='determinelistcharacteristics' value='bepaallijstkenmerken'/>
+ <cd:command name='determineregistercharacteristics' value='bepaalregisterkenmerken'/>
+ <cd:command name='dimension' value='dimensie'/>
+ <cd:command name='disableinteractionmenu' value='blokkeerinteractiemenu'/>
+ <cd:command name='domicile' value='woonplaats'/>
+ <cd:command name='donttest' value='geentest'/>
+ <cd:command name='edgedistance' value='randafstand'/>
+ <cd:command name='edgewidth' value='randbreedte'/>
+ <cd:command name='emptylines' value='legeregels'/>
+ <cd:command name='environment' value='omgeving'/>
+ <cd:command name='externalfigure' value='externfiguur'/>
+ <cd:command name='fact' value='geg'/>
+ <cd:command name='field' value='veld'/>
+ <cd:command name='fieldstack' value='veldstapel'/>
+ <cd:command name='fillinfield' value='invulveld'/>
+ <cd:command name='fillinline' value='invulregel'/>
+ <cd:command name='fillinrules' value='invullijnen'/>
+ <cd:command name='fillintext' value='invultekst'/>
+ <cd:command name='fitfield' value='passendveld'/>
+ <cd:command name='fixedspace' value='vastespatie'/>
+ <cd:command name='fixedspaces' value='vastespaties'/>
+ <cd:command name='followprofile' value='volgprofiel'/>
+ <cd:command name='followprofileversion' value='volgprofielversie'/>
+ <cd:command name='followversion' value='volgversie'/>
+ <cd:command name='footerdistance' value='voetafstand'/>
+ <cd:command name='footerheight' value='voethoogte'/>
+ <cd:command name='footnote' value='voetnoot'/>
+ <cd:command name='footnotetext' value='voetnoottekst'/>
+ <cd:command name='forceblocks' value='forceerblokken'/>
+ <cd:command name='formulanumber' value='formulenummer'/>
+ <cd:command name='fraction' value='breuk'/>
+ <cd:command name='framed' value='omlijnd'/>
+ <cd:command name='from' value='uit'/>
+ <cd:command name='getbuffer' value='haalbuffer'/>
+ <cd:command name='getmarking' value='haalmarkering'/>
+ <cd:command name='getnumber' value='haalnummer'/>
+ <cd:command name='godown' value='omlaag'/>
+ <cd:command name='goto' value='naar'/>
+ <cd:command name='gotobox' value='naarbox'/>
+ <cd:command name='gotopage' value='naarpagina'/>
+ <cd:command name='graycolor' value='grijskleur'/>
+ <cd:command name='greyvalue' value='grijswaarde'/>
+ <cd:command name='grid' value='rooster'/>
+ <cd:command name='hairline' value='haarlijn'/>
+ <cd:command name='head' value='kop'/>
+ <cd:command name='headerdistance' value='hoofdafstand'/>
+ <cd:command name='headerheight' value='hoofdhoogte'/>
+ <cd:command name='headlevel' value='kopniveau'/>
+ <cd:command name='headnumber' value='kopnummer'/>
+ <cd:command name='headsym' value='kopsym'/>
+ <cd:command name='headtext' value='koptekst'/>
+ <cd:command name='hideblocks' value='verbergblokken'/>
+ <cd:command name='high' value='hoog'/>
+ <cd:command name='hl' value='hl'/>
+ <cd:command name='immediatebetweenlist' value='directtussenlijst'/>
+ <cd:command name='immediatetolist' value='directnaarlijst'/>
+ <cd:command name='in' value='in'/>
+ <cd:command name='incrementnumber' value='verhoognummer'/>
+ <cd:command name='indenting' value='inspringen'/>
+ <cd:command name='inframed' value='inlijnd'/>
+ <cd:command name='infull' value='voluit'/>
+ <cd:command name='ininner' value='inbinnen'/>
+ <cd:command name='inleft' value='inlinker'/>
+ <cd:command name='inleftedge' value='inlinkerrand'/>
+ <cd:command name='inleftmargin' value='inlinkermarge'/>
+ <cd:command name='inline' value='inregel'/>
+ <cd:command name='inmargin' value='inmarge'/>
+ <cd:command name='inmframed' value='inwilijnd'/>
+ <cd:command name='inneredgedistance' value='binnenrandafstand'/>
+ <cd:command name='inneredgewidth' value='binnenrandbreedte'/>
+ <cd:command name='innermargindistance' value='binnenmargeafstand'/>
+ <cd:command name='innermarginwidth' value='binnenmargebreedte'/>
+ <cd:command name='inothermargin' value='inanderemarge'/>
+ <cd:command name='inouter' value='inbuiten'/>
+ <cd:command name='inright' value='inrechter'/>
+ <cd:command name='inrightedge' value='inrechterrand'/>
+ <cd:command name='inrightmargin' value='inrechtermarge'/>
+ <cd:command name='installlanguage' value='installeertaal'/>
+ <cd:command name='interactionbar' value='interactiebalk'/>
+ <cd:command name='interactionbuttons' value='interactiebuttons'/>
+ <cd:command name='interactionmenu' value='interactiemenu'/>
+ <cd:command name='item' value='som'/>
+ <cd:command name='items' value='items'/>
+ <cd:command name='its' value='its'/>
+ <cd:command name='keepblocks' value='handhaafblokken'/>
+ <cd:command name='label' value='label'/>
+ <cd:command name='labels' value='labels'/>
+ <cd:command name='labeltext' value='labeltekst'/>
+ <cd:command name='language' value='taal'/>
+ <cd:command name='leftaligned' value='regellinks'/>
+ <cd:command name='leftedgedistance' value='linkerrandafstand'/>
+ <cd:command name='leftedgewidth' value='linkerrandbreedte'/>
+ <cd:command name='leftmargindistance' value='linkermargeafstand'/>
+ <cd:command name='leftmarginwidth' value='linkermargebreedte'/>
+ <cd:command name='leg' value='leg'/>
+ <cd:command name='linewidth' value='lijndikte'/>
+ <cd:command name='listheight' value='lijsthoogte'/>
+ <cd:command name='listlength' value='lijstlengte'/>
+ <cd:command name='listsymbol' value='lijstsymbool'/>
+ <cd:command name='listwidth' value='lijstbreedte'/>
+ <cd:command name='logfields' value='registreervelden'/>
+ <cd:command name='lohi' value='laho'/>
+ <cd:command name='low' value='laag'/>
+ <cd:command name='macroname' value='naam'/>
+ <cd:command name='mainlanguage' value='hoofdtaal'/>
+ <cd:command name='makeupheight' value='zethoogte'/>
+ <cd:command name='makeupwidth' value='zetbreedte'/>
+ <cd:command name='mar' value='mar'/>
+ <cd:command name='margindistance' value='margeafstand'/>
+ <cd:command name='marginrule' value='kantlijn'/>
+ <cd:command name='margintext' value='margetekst'/>
+ <cd:command name='margintitle' value='margetitel'/>
+ <cd:command name='marginwidth' value='margebreedte'/>
+ <cd:command name='marginword' value='margewoord'/>
+ <cd:command name='marking' value='markeer'/>
+ <cd:command name='markversion' value='markeerversie'/>
+ <cd:command name='mathematics' value='wiskunde'/>
+ <cd:command name='menubutton' value='menubutton'/>
+ <cd:command name='mframed' value='wilijnd'/>
+ <cd:command name='midaligned' value='regelmidden'/>
+ <cd:command name='mirror' value='spiegel'/>
+ <cd:command name='month' value='maand'/>
+ <cd:command name='moveformula' value='verplaatsformule'/>
+ <cd:command name='moveongrid' value='verplaatsopgrid'/>
+ <cd:command name='movesidefloat' value='verplaatszijblok'/>
+ <cd:command name='navigating' value='navigerend'/>
+ <cd:command name='nodimension' value='geendimensie'/>
+ <cd:command name='noheaderandfooterlines' value='geenhoofdenvoetregels'/>
+ <cd:command name='noindenting' value='nietinspringen'/>
+ <cd:command name='nolist' value='geenlijst'/>
+ <cd:command name='nomarking' value='geenmarkering'/>
+ <cd:command name='nomoreblocks' value='geenblokkenmeer'/>
+ <cd:command name='nomorefiles' value='geenfilesmeer'/>
+ <cd:command name='nop' value='nop'/>
+ <cd:command name='nospace' value='geenspatie'/>
+ <cd:command name='note' value='noot'/>
+ <cd:command name='notopandbottomlines' value='geenbovenenonderregels'/>
+ <cd:command name='notsmallcapped' value='nokap'/>
+ <cd:command name='nowhitespace' value='geenwitruimte'/>
+ <cd:command name='numberofsubpages' value='aantalsubpaginas'/>
+ <cd:command name='numbers' value='cijfers'/>
+ <cd:command name='outeredgedistance' value='buitenrandafstand'/>
+ <cd:command name='outeredgewidth' value='buitenrandbreedte'/>
+ <cd:command name='outermargindistance' value='buitenmargeafstand'/>
+ <cd:command name='outermarginwidth' value='buitenmargebreedte'/>
+ <cd:command name='overbar' value='overstreep'/>
+ <cd:command name='overbars' value='overstrepen'/>
+ <cd:command name='overstrike' value='doorstreep'/>
+ <cd:command name='overstrikes' value='doorstrepen'/>
+ <cd:command name='packed' value='opelkaar'/>
+ <cd:command name='page' value='pagina'/>
+ <cd:command name='pagedepth' value='paginadiepte'/>
+ <cd:command name='pagenumber' value='paginanummer'/>
+ <cd:command name='pageoffset' value='paginaoffset'/>
+ <cd:command name='pagereference' value='paginareferentie'/>
+ <cd:command name='pagetype' value='soortpagina'/>
+ <cd:command name='paperheight' value='papierhoogte'/>
+ <cd:command name='paperwidth' value='papierbreedte'/>
+ <cd:command name='periods' value='punten'/>
+ <cd:command name='plaatsruwelijst' value='plaatsruwelijst'/>
+ <cd:command name='placebookmarks' value='plaatsbookmarks'/>
+ <cd:command name='placecombinedlist' value='plaatssamengesteldelijst'/>
+ <cd:command name='placefloat' value='plaatsplaatsblok'/>
+ <cd:command name='placefootnotes' value='plaatsvoetnoten'/>
+ <cd:command name='placeformula' value='plaatsformule'/>
+ <cd:command name='placeheadnumber' value='plaatskopnummer'/>
+ <cd:command name='placeheadtext' value='plaatskoptekst'/>
+ <cd:command name='placelegend' value='plaatslegenda'/>
+ <cd:command name='placelist' value='plaatslijst'/>
+ <cd:command name='placelocalfootnotes' value='plaatslokalevoetnoten'/>
+ <cd:command name='placelogos' value='plaatsbeeldmerken'/>
+ <cd:command name='placeongrid' value='plaatsopgrid'/>
+ <cd:command name='placeontopofeachother' value='plaatsonderelkaar'/>
+ <cd:command name='placepagenumber' value='plaatspaginanummer'/>
+ <cd:command name='placereferencelist' value='plaatsreferentielijst'/>
+ <cd:command name='placeregister' value='plaatsregister'/>
+ <cd:command name='placerule' value='plaatslijn'/>
+ <cd:command name='placesidebyside' value='plaatsnaastelkaar'/>
+ <cd:command name='placesubformula' value='plaatssubformule'/>
+ <cd:command name='placetextvariable' value='plaatstekstvariabele'/>
+ <cd:command name='position' value='positioneer'/>
+ <cd:command name='positiontext' value='positioneertekst'/>
+ <cd:command name='printpaperheight' value='printpapierhoogte'/>
+ <cd:command name='printpaperwidth' value='printpapierbreedte'/>
+ <cd:command name='processblocks' value='verwerkblokken'/>
+ <cd:command name='processpage' value='verwerkpagina'/>
+ <cd:command name='product' value='produkt'/>
+ <cd:command name='program' value='programma'/>
+ <cd:command name='project' value='projekt'/>
+ <cd:command name='publication' value='publicatie'/>
+ <cd:command name='quotation' value='citaat'/>
+ <cd:command name='quote' value='citeer'/>
+ <cd:command name='ran' value='ran'/>
+ <cd:command name='redo' value='herhaal'/>
+ <cd:command name='ref' value='ref'/>
+ <cd:command name='reference' value='referentie'/>
+ <cd:command name='referral' value='kenmerk'/>
+ <cd:command name='referraldate' value='kenmerkdatum'/>
+ <cd:command name='referring' value='refereer'/>
+ <cd:command name='remark' value='toelichting'/>
+ <cd:command name='reset' value='reset'/>
+ <cd:command name='resetmarking' value='resetmarkering'/>
+ <cd:command name='resetnumber' value='resetnummer'/>
+ <cd:command name='resettext' value='resettekstinhoud'/>
+ <cd:command name='rightaligned' value='regelrechts'/>
+ <cd:command name='rightedgedistance' value='rechterrandafstand'/>
+ <cd:command name='rightedgewidth' value='rechterrandbreedte'/>
+ <cd:command name='rightmargindistance' value='rechtermargeafstand'/>
+ <cd:command name='rightmarginwidth' value='rechtermargebreedte'/>
+ <cd:command name='romannumerals' value='romeins'/>
+ <cd:command name='rotate' value='roteer'/>
+ <cd:command name='scale' value='schaal'/>
+ <cd:command name='screen' value='scherm'/>
+ <cd:command name='selectblocks' value='selecteerblokken'/>
+ <cd:command name='selectpaper' value='selecteerpapier'/>
+ <cd:command name='selectversion' value='selecteerversie'/>
+ <cd:command name='setnumber' value='setnummer'/>
+ <cd:command name='settextcontent' value='steltekstinhoudin'/>
+ <cd:command name='settextvariable' value='kentekstvariabeletoe'/>
+ <cd:command name='setupalign' value='steluitlijnenin'/>
+ <cd:command name='setupanswerarea' value='stelantwoordgebiedin'/>
+ <cd:command name='setuparranging' value='stelarrangerenin'/>
+ <cd:command name='setupbackground' value='stelachtergrondin'/>
+ <cd:command name='setupbackgrounds' value='stelachtergrondenin'/>
+ <cd:command name='setupblackrules' value='stelblokjesin'/>
+ <cd:command name='setupblank' value='stelblankoin'/>
+ <cd:command name='setupblock' value='stelblokin'/>
+ <cd:command name='setupbodyfont' value='stelkorpsin'/>
+ <cd:command name='setupbodyfontenvironment' value='stelkorpsomgevingin'/>
+ <cd:command name='setupbottom' value='stelonderin'/>
+ <cd:command name='setupbottomtexts' value='stelondertekstenin'/>
+ <cd:command name='setupbuffer' value='stelbufferin'/>
+ <cd:command name='setupbuttons' value='stelbuttonsin'/>
+ <cd:command name='setupcapitals' value='stelkapitalenin'/>
+ <cd:command name='setupcaption' value='stelblokkopjein'/>
+ <cd:command name='setupcaptions' value='stelblokkopjesin'/>
+ <cd:command name='setupclipping' value='stelclipin'/>
+ <cd:command name='setupcolor' value='stelkleurin'/>
+ <cd:command name='setupcolors' value='stelkleurenin'/>
+ <cd:command name='setupcolumns' value='stelkolommenin'/>
+ <cd:command name='setupcolumnset' value='stelkolomgroepin'/>
+ <cd:command name='setupcolumnsetlines' value='stelkolomgroepregelsin'/>
+ <cd:command name='setupcolumnsetstart' value='stelkolomgroepstartin'/>
+ <cd:command name='setupcombinations' value='stelcombinatiesin'/>
+ <cd:command name='setupcombinedlist' value='stelsamengesteldelijstin'/>
+ <cd:command name='setupcomment' value='stelcommentaarin'/>
+ <cd:command name='setupdescriptions' value='steldoordefinierenin'/>
+ <cd:command name='setupenumerations' value='steldoornummerenin'/>
+ <cd:command name='setupexternalfigures' value='stelexternefigurenin'/>
+ <cd:command name='setupfield' value='stelveldin'/>
+ <cd:command name='setupfields' value='stelveldenin'/>
+ <cd:command name='setupfillinlines' value='stelinvulregelsin'/>
+ <cd:command name='setupfillinrules' value='stelinvullijnenin'/>
+ <cd:command name='setupfloat' value='stelplaatsblokin'/>
+ <cd:command name='setupfloats' value='stelplaatsblokkenin'/>
+ <cd:command name='setupfloatsplitting' value='stelplaatsbloksplitsenin'/>
+ <cd:command name='setupfooter' value='stelvoetin'/>
+ <cd:command name='setupfootertexts' value='stelvoettekstenin'/>
+ <cd:command name='setupfootnotedefinition' value='stelvoetnootdefinitiein'/>
+ <cd:command name='setupfootnotes' value='stelvoetnotenin'/>
+ <cd:command name='setupforms' value='stelformulierenin'/>
+ <cd:command name='setupformulas' value='stelformulesin'/>
+ <cd:command name='setupframed' value='stelomlijndin'/>
+ <cd:command name='setupframedtexts' value='stelkadertekstenin'/>
+ <cd:command name='setuphead' value='stelkopin'/>
+ <cd:command name='setupheader' value='stelhoofdin'/>
+ <cd:command name='setupheadertexts' value='stelhoofdtekstenin'/>
+ <cd:command name='setupheadnumber' value='stelkopnummerin'/>
+ <cd:command name='setupheads' value='stelkoppenin'/>
+ <cd:command name='setupheadtext' value='stelkoptekstin'/>
+ <cd:command name='setuphyphenmark' value='stelkoppeltekenin'/>
+ <cd:command name='setupindentations' value='steldoorspringenin'/>
+ <cd:command name='setupindenting' value='stelinspringenin'/>
+ <cd:command name='setupinmargin' value='stelinmargein'/>
+ <cd:command name='setupinteraction' value='stelinteractiein'/>
+ <cd:command name='setupinteractionbar' value='stelinteractiebalkin'/>
+ <cd:command name='setupinteractionmenu' value='stelinteractiemenuin'/>
+ <cd:command name='setupinteractionscreen' value='stelinteractieschermin'/>
+ <cd:command name='setupinterlinespace' value='stelinterliniein'/>
+ <cd:command name='setupitemgroup' value='stelitemgroepin'/>
+ <cd:command name='setupitemgroups' value='stelopsommingenin'/>
+ <cd:command name='setupitems' value='stelitemsin'/>
+ <cd:command name='setuplabeltext' value='stellabeltekstin'/>
+ <cd:command name='setuplanguage' value='steltaalin'/>
+ <cd:command name='setuplayout' value='stellayoutin'/>
+ <cd:command name='setuplegend' value='stellegendain'/>
+ <cd:command name='setuplinenumbering' value='stelregelnummerenin'/>
+ <cd:command name='setuplines' value='stelregelsin'/>
+ <cd:command name='setuplinewidth' value='stellijndiktein'/>
+ <cd:command name='setuplist' value='stellijstin'/>
+ <cd:command name='setupmakeup' value='stelopmaakin'/>
+ <cd:command name='setupmarginblocks' value='stelmargeblokkenin'/>
+ <cd:command name='setupmarginrules' value='stelkantlijnin'/>
+ <cd:command name='setupmarking' value='stelmarkeringin'/>
+ <cd:command name='setupmathalignment' value='stelwiskundeuitlijnenin'/>
+ <cd:command name='setupnarrower' value='stelsmallerin'/>
+ <cd:command name='setupnumber' value='stelnummerin'/>
+ <cd:command name='setupnumbering' value='stelnummerenin'/>
+ <cd:command name='setupoppositeplacing' value='stelnaastplaatsenin'/>
+ <cd:command name='setupoutput' value='steluitvoerin'/>
+ <cd:command name='setuppagecomment' value='stelpaginacommentaarin'/>
+ <cd:command name='setuppagenumber' value='stelpaginanummerin'/>
+ <cd:command name='setuppagenumbering' value='stelpaginanummeringin'/>
+ <cd:command name='setuppagetransitions' value='stelpaginaovergangenin'/>
+ <cd:command name='setuppalet' value='stelpaletin'/>
+ <cd:command name='setuppaper' value='stelpapierin'/>
+ <cd:command name='setuppapersize' value='stelpapierformaatin'/>
+ <cd:command name='setupparagraphnumbering' value='stelparagraafnummerenin'/>
+ <cd:command name='setupparagraphs' value='stelalineasin'/>
+ <cd:command name='setupplacement' value='stelplaatsin'/>
+ <cd:command name='setuppositioning' value='stelpositionerenin'/>
+ <cd:command name='setupprofiles' value='stelprofielenin'/>
+ <cd:command name='setupprograms' value='stelprogrammasin'/>
+ <cd:command name='setuppublications' value='stelpublicatiesin'/>
+ <cd:command name='setupquote' value='stelciterenin'/>
+ <cd:command name='setupreferencelist' value='stelreferentielijstin'/>
+ <cd:command name='setupreferencing' value='stelrefererenin'/>
+ <cd:command name='setupregister' value='stelregisterin'/>
+ <cd:command name='setuprotate' value='stelroterenin'/>
+ <cd:command name='setuprule' value='stellijnin'/>
+ <cd:command name='setups' value='instellingen'/>
+ <cd:command name='setupscreens' value='stelrastersin'/>
+ <cd:command name='setupsection' value='stelsectiein'/>
+ <cd:command name='setupsectionblock' value='stelsectieblokin'/>
+ <cd:command name='setupsorting' value='stelsorterenin'/>
+ <cd:command name='setupspacing' value='stelspatieringin'/>
+ <cd:command name='setupstartstop' value='stelstartstopin'/>
+ <cd:command name='setupstrut' value='stelstrutin'/>
+ <cd:command name='setupsubpagenumber' value='stelsubpaginanummerin'/>
+ <cd:command name='setupsymbolset' value='stelsymboolsetin'/>
+ <cd:command name='setupsynchronization' value='stelsynchronisatiein'/>
+ <cd:command name='setupsynchronizationbar' value='stelsynchronisatiebalkin'/>
+ <cd:command name='setupsynonyms' value='stelsynoniemenin'/>
+ <cd:command name='setupsystem' value='stelsysteemin'/>
+ <cd:command name='setuptab' value='steltabin'/>
+ <cd:command name='setuptables' value='steltabellenin'/>
+ <cd:command name='setuptabulate' value='steltabulatiein'/>
+ <cd:command name='setuptext' value='steltekstin'/>
+ <cd:command name='setuptextposition' value='steltekstpositiein'/>
+ <cd:command name='setuptextrules' value='steltekstlijnenin'/>
+ <cd:command name='setuptexttexts' value='stelteksttekstenin'/>
+ <cd:command name='setuptextvariable' value='steltekstvariabelein'/>
+ <cd:command name='setupthinrules' value='steldunnelijnenin'/>
+ <cd:command name='setuptolerance' value='steltolerantiein'/>
+ <cd:command name='setuptop' value='stelbovenin'/>
+ <cd:command name='setuptoptexts' value='stelboventekstenin'/>
+ <cd:command name='setuptype' value='steltypein'/>
+ <cd:command name='setuptyping' value='steltypenin'/>
+ <cd:command name='setupunderbar' value='stelonderstrepenin'/>
+ <cd:command name='setupurl' value='stelurlin'/>
+ <cd:command name='setupversions' value='stelversiesin'/>
+ <cd:command name='setupwhitespace' value='stelwitruimtein'/>
+ <cd:command name='showbodyfont' value='toonkorps'/>
+ <cd:command name='showbodyfontenvironment' value='toonkorpsomgeving'/>
+ <cd:command name='showcolor' value='toonkleur'/>
+ <cd:command name='showcolorgroup' value='toonkleurgroep'/>
+ <cd:command name='showexternalfigures' value='toonexternefiguren'/>
+ <cd:command name='showfields' value='toonvelden'/>
+ <cd:command name='showframe' value='toonkader'/>
+ <cd:command name='showgrid' value='toongrid'/>
+ <cd:command name='showlayout' value='toonlayout'/>
+ <cd:command name='showmakeup' value='toonopmaak'/>
+ <cd:command name='showpalet' value='toonpalet'/>
+ <cd:command name='showprint' value='toonprint'/>
+ <cd:command name='showsetups' value='tooninstellingen'/>
+ <cd:command name='showstruts' value='toonstruts'/>
+ <cd:command name='showsymbolset' value='toonsymboolset'/>
+ <cd:command name='smallcapped' value='kap'/>
+ <cd:command name='someline' value='eenregel'/>
+ <cd:command name='somewhere' value='ergens'/>
+ <cd:command name='space' value='spatie'/>
+ <cd:command name='splitfloat' value='splitsplaatsblok'/>
+ <cd:command name='startalignment' value='startuitlijnen'/>
+ <cd:command name='startbackground' value='startachtergrond'/>
+ <cd:command name='startcoding' value='startcodering'/>
+ <cd:command name='startcolor' value='startkleur'/>
+ <cd:command name='startcolumnmakeup' value='startkolomopmaak'/>
+ <cd:command name='startcolumns' value='startkolommen'/>
+ <cd:command name='startcolumnset' value='startkolomgroep'/>
+ <cd:command name='startcombination' value='startcombinatie'/>
+ <cd:command name='startcomponent' value='startonderdeel'/>
+ <cd:command name='startdocument' value='startdocument'/>
+ <cd:command name='startenvironment' value='startomgeving'/>
+ <cd:command name='startfigure' value='startfiguur'/>
+ <cd:command name='startglobal' value='startglobaal'/>
+ <cd:command name='startline' value='startregel'/>
+ <cd:command name='startlinecorrection' value='startregelcorrectie'/>
+ <cd:command name='startlinenumbering' value='startregelnummeren'/>
+ <cd:command name='startlines' value='startregels'/>
+ <cd:command name='startlocal' value='startlokaal'/>
+ <cd:command name='startlocalfootnotes' value='startlokalevoetnoten'/>
+ <cd:command name='startmakeup' value='startopmaak'/>
+ <cd:command name='startmarginblock' value='startmargeblok'/>
+ <cd:command name='startmarginrule' value='startkantlijn'/>
+ <cd:command name='startnarrower' value='startsmaller'/>
+ <cd:command name='startopposite' value='startnaast'/>
+ <cd:command name='startoverlay' value='startoverlay'/>
+ <cd:command name='startoverzicht' value='startoverzicht'/>
+ <cd:command name='startpacked' value='startopelkaar'/>
+ <cd:command name='startpositioning' value='startpositioneren'/>
+ <cd:command name='startproduct' value='startprodukt'/>
+ <cd:command name='startprofile' value='startprofiel'/>
+ <cd:command name='startproject' value='startprojekt'/>
+ <cd:command name='startquotation' value='startcitaat'/>
+ <cd:command name='startraster' value='startraster'/>
+ <cd:command name='startsymbolset' value='startsymboolset'/>
+ <cd:command name='startsynchronization' value='startsynchronisatie'/>
+ <cd:command name='starttable' value='starttabel'/>
+ <cd:command name='starttables' value='starttabellen'/>
+ <cd:command name='starttext' value='starttekst'/>
+ <cd:command name='starttextrule' value='starttekstlijn'/>
+ <cd:command name='startunpacked' value='startvanelkaar'/>
+ <cd:command name='startversion' value='startversie'/>
+ <cd:command name='stopalignment' value='stopuitlijnen'/>
+ <cd:command name='stopbackground' value='stopachtergrond'/>
+ <cd:command name='stopcoding' value='stopcodering'/>
+ <cd:command name='stopcolor' value='stopkleur'/>
+ <cd:command name='stopcolumnmakeup' value='stopkolomopmaak'/>
+ <cd:command name='stopcolumns' value='stopkolommen'/>
+ <cd:command name='stopcolumnset' value='stopkolomgroep'/>
+ <cd:command name='stopcombination' value='stopcombinatie'/>
+ <cd:command name='stopcomponent' value='stoponderdeel'/>
+ <cd:command name='stopdocument' value='stopdocument'/>
+ <cd:command name='stopenvironment' value='stopomgeving'/>
+ <cd:command name='stopglobal' value='stopglobaal'/>
+ <cd:command name='stopline' value='stopregel'/>
+ <cd:command name='stoplinecorrection' value='stopregelcorrectie'/>
+ <cd:command name='stoplinenumbering' value='stopregelnummeren'/>
+ <cd:command name='stoplines' value='stopregels'/>
+ <cd:command name='stoplocal' value='stoplokaal'/>
+ <cd:command name='stoplocalfootnotes' value='stoplokalevoetnoten'/>
+ <cd:command name='stopmakeup' value='stopopmaak'/>
+ <cd:command name='stopmarginblock' value='stopmargeblok'/>
+ <cd:command name='stopmarginrule' value='stopkantlijn'/>
+ <cd:command name='stopnarrower' value='stopsmaller'/>
+ <cd:command name='stopopposite' value='stopnaast'/>
+ <cd:command name='stopoverlay' value='stopoverlay'/>
+ <cd:command name='stopoverzicht' value='stopoverzicht'/>
+ <cd:command name='stoppacked' value='stopopelkaar'/>
+ <cd:command name='stoppositioning' value='stoppositioneren'/>
+ <cd:command name='stopproduct' value='stopprodukt'/>
+ <cd:command name='stopprofile' value='stopprofiel'/>
+ <cd:command name='stopproject' value='stopprojekt'/>
+ <cd:command name='stopquotation' value='stopcitaat'/>
+ <cd:command name='stopraster' value='stopraster'/>
+ <cd:command name='stopsynchronization' value='stopsynchronisatie'/>
+ <cd:command name='stoptable' value='stoptabel'/>
+ <cd:command name='stoptables' value='stoptabellen'/>
+ <cd:command name='stoptext' value='stoptekst'/>
+ <cd:command name='stoptextrule' value='stoptekstlijn'/>
+ <cd:command name='stopunpacked' value='stopvanelkaar'/>
+ <cd:command name='stopversion' value='stopversie'/>
+ <cd:command name='stretched' value='uitgerekt'/>
+ <cd:command name='subformulanumber' value='subformulenummer'/>
+ <cd:command name='subpagenumber' value='subpaginanummer'/>
+ <cd:command name='switchtobodyfont' value='switchnaarkorps'/>
+ <cd:command name='switchtorawfont' value='switchtorawfont'/>
+ <cd:command name='sym' value='sym'/>
+ <cd:command name='symbol' value='symbool'/>
+ <cd:command name='synchronizationbar' value='synchronisatiebalk'/>
+ <cd:command name='synchronize' value='synchroniseer'/>
+ <cd:command name='tab' value='tab'/>
+ <cd:command name='testcolumn' value='testkolom'/>
+ <cd:command name='testpage' value='testpagina'/>
+ <cd:command name='tex' value='tex'/>
+ <cd:command name='textheight' value='teksthoogte'/>
+ <cd:command name='textreference' value='tekstreferentie'/>
+ <cd:command name='textrule' value='tekstlijn'/>
+ <cd:command name='textvariable' value='tekstvariabele'/>
+ <cd:command name='textwidth' value='tekstbreedte'/>
+ <cd:command name='thinrule' value='dunnelijn'/>
+ <cd:command name='thinrules' value='dunnelijnen'/>
+ <cd:command name='tooltip' value='suggestie'/>
+ <cd:command name='topdistance' value='bovenafstand'/>
+ <cd:command name='topheight' value='bovenhoogte'/>
+ <cd:command name='topspace' value='kopwit'/>
+ <cd:command name='totalnumberofpages' value='totaalaantalpaginas'/>
+ <cd:command name='translate' value='vertaal'/>
+ <cd:command name='txt' value='txt'/>
+ <cd:command name='typ' value='typ'/>
+ <cd:command name='type' value='type'/>
+ <cd:command name='typebuffer' value='typebuffer'/>
+ <cd:command name='typefile' value='typefile'/>
+ <cd:command name='underbar' value='onderstreep'/>
+ <cd:command name='underbars' value='onderstrepen'/>
+ <cd:command name='unitmeaning' value='betekenis'/>
+ <cd:command name='unknown' value='onbekend'/>
+ <cd:command name='useJSscripts' value='gebruikJSscripts'/>
+ <cd:command name='useURL' value='gebruikURL'/>
+ <cd:command name='useXMLfilter' value='gebruikXMLfilter'/>
+ <cd:command name='useblocks' value='gebruikblokken'/>
+ <cd:command name='usecommands' value='gebruikcommandos'/>
+ <cd:command name='useencoding' value='usecodering'/>
+ <cd:command name='useexternaldocument' value='gebruikexterndocument'/>
+ <cd:command name='useexternalfigure' value='gebruikexternfiguur'/>
+ <cd:command name='useexternalfile' value='gebruikexternefile'/>
+ <cd:command name='useexternalfiles' value='gebruikexternefiles'/>
+ <cd:command name='useexternalsoundtrack' value='gebruikexterngeluidsfragment'/>
+ <cd:command name='usemodule' value='gebruikmodule'/>
+ <cd:command name='usemodules' value='gebruikmodules'/>
+ <cd:command name='usepath' value='gebruikgebied'/>
+ <cd:command name='usereferences' value='gebruikreferenties'/>
+ <cd:command name='usespecials' value='gebruikspecials'/>
+ <cd:command name='usesymbols' value='gebruiksymbolen'/>
+ <cd:command name='usetypescript' value='gebruiktypescript'/>
+ <cd:command name='usetypescriptfile' value='gebruiktypescriptfile'/>
+ <cd:command name='useurl' value='gebruikurl'/>
+ <cd:command name='version' value='versie'/>
+ <cd:command name='vl' value='vl'/>
+ <cd:command name='weekday' value='weekdag'/>
+ <cd:command name='whitespace' value='witruimte'/>
+ <cd:command name='wordright' value='woordrechts'/>
+ <cd:command name='writebetweenlist' value='schrijftussenlijst'/>
+ <cd:command name='writetolist' value='schrijfnaarlijst'/>
+ <cd:command name='writetoreferencelist' value='schrijfnaarreferentielijst'/>
+ <cd:command name='writetoregister' value='schrijfnaarregister'/>
+ </cd:command>
- <cd:variables>
- <cd:variable name="flushleft" value="lijnlinks"/>
- <cd:variable name="flushright" value="lijnrechts"/>
- <cd:variable name="center" value="centreer"/>
- <cd:variable name="flushouter" value="lijnbuiten"/>
- <cd:variable name="flushinner" value="lijnbinnen"/>
- </cd:variables>
-
- <cd:variables>
- <cd:variable name="typing" value="typen"/>
- <cd:variable name="file" value="file"/>
- </cd:variables>
-
- <cd:variables>
- <cd:variable name="formula" value="formule"/>
- <cd:variable name="subformula" value="subformule"/>
- <cd:variable name="formulae" value="formules"/>
- <cd:variable name="figure" value="figuur"/>
- <cd:variable name="figures" value="figuren"/>
- <cd:variable name="table" value="tabel"/>
- <cd:variable name="tables" value="tabellen"/>
- <cd:variable name="graphic" value="grafiek"/>
- <cd:variable name="graphics" value="grafieken"/>
- <cd:variable name="intermezzo" value="intermezzo"/>
- <cd:variable name="intermezzi" value="intermezzos"/>
- <cd:variable name="index" value="index"/>
- <cd:variable name="indices" value="indices"/>
- <cd:variable name="abbreviation" value="afkorting"/>
- <cd:variable name="abbreviations" value="afkortingen"/>
- <cd:variable name="logo" value="logo"/>
- <cd:variable name="logos" value="logos"/>
- <cd:variable name="unit" value="eenheid"/>
- <cd:variable name="units" value="eenheden"/>
- <cd:variable name="line" value="regel"/>
- <cd:variable name="lines" value="regels"/>
- <cd:variable name="framedtext" value="kadertekst"/>
- <cd:variable name="quotation" value="citaat"/>
- <cd:variable name="blockquote" value="blokcitaat"/>
- <cd:variable name="quote" value="citeer"/>
- <cd:variable name="speech" value="spraak"/>
- <cd:variable name="itemize" value="opsomming"/>
- <cd:variable name="mathalignment" value="wiskundeuitlijnen"/>
- <cd:variable name="mathcases" value="mathcases"/>
- <cd:variable name="mathmatrix" value="wiskundematrix"/>
- </cd:variables>
-
- <cd:constants>
- <cd:constant name="sorttype" value="sortering"/>
- <cd:constant name="compress" value="comprimeren"/>
- <cd:constant name="autohang" value="autohang"/>
- <cd:constant name="suffix" value="suffix"/>
- <cd:constant name="leftquotation" value="linkercitaat"/>
- <cd:constant name="rightquotation" value="rechtercitaat"/>
- <cd:constant name="leftquote" value="linkerciteer"/>
- <cd:constant name="rightquote" value="rechterciteer"/>
- <cd:constant name="compoundhyphen" value="koppelteken"/>
- <cd:constant name="leftcompoundhyphen" value="linkerkoppelteken"/>
- <cd:constant name="rightcompoundhyphen" value="rechterkoppelteken"/>
- <cd:constant name="midsentence" value="middenzin"/>
- <cd:constant name="leftsentence" value="linkerzin"/>
- <cd:constant name="rightsentence" value="rechterzin"/>
- <cd:constant name="leftsubsentence" value="linkersubzin"/>
- <cd:constant name="rightsubsentence" value="rechtersubzin"/>
- <cd:constant name="leftspeech" value="linkeruitspraak"/>
- <cd:constant name="middlespeech" value="middenuitspraak"/>
- <cd:constant name="rightspeech" value="rechteruitspraak"/>
- <cd:constant name="limittext" value="limiettekst"/>
- <cd:constant name="date" value="datum"/>
- <cd:constant name="spacebefore" value="voorwit"/>
- <cd:constant name="spaceinbetween" value="tussenwit"/>
- <cd:constant name="spaceafter" value="nawit"/>
- <cd:constant name="sidespacebefore" value="zijvoorwit"/>
- <cd:constant name="sidespaceafter" value="zijnawit"/>
- <cd:constant name="to" value="aan"/>
- <cd:constant name="indicator" value="aanduiding"/>
- <cd:constant name="background" value="achtergrond"/>
- <cd:constant name="backgrounddepth" value="achtergronddiepte"/>
- <cd:constant name="backgroundcorner" value="achtergrondhoek"/>
- <cd:constant name="splitcolor" value="splitskleur"/>
- <cd:constant name="backgroundcolor" value="achtergrondkleur"/>
- <cd:constant name="foregroundcolor" value="voorgrondkleur"/>
- <cd:constant name="foregroundstyle" value="voorgrondletter"/>
- <cd:constant name="clipoffset" value="clipoffset"/>
- <cd:constant name="backgroundoffset" value="achtergrondoffset"/>
- <cd:constant name="backgroundscreen" value="achtergrondraster"/>
- <cd:constant name="backgroundradius" value="achtergrondstraal"/>
- <cd:constant name="address" value="adres"/>
- <cd:constant name="stopper" value="afsluiter"/>
- <cd:constant name="distance" value="afstand"/>
- <cd:constant name="paragraph" value="alinea"/>
- <cd:constant name="axis" value="assenstelsel"/>
- <cd:constant name="author" value="auteur"/>
- <cd:constant name="auto" value="auto"/>
- <cd:constant name="autofile" value="autofile"/>
- <cd:constant name="balance" value="balanceren"/>
- <cd:constant name="bookmark" value="bookmark"/>
- <cd:constant name="wfactor" value="bfactor"/>
- <cd:constant name="inner" value="binnen"/>
- <cd:constant name="blank" value="blanko"/>
- <cd:constant name="obstruction" value="blokkade"/>
- <cd:constant name="blockway" value="blokwijze"/>
- <cd:constant name="bottomspace" value="bodemwit"/>
- <cd:constant name="top" value="boven"/>
- <cd:constant name="topdistance" value="bovenafstand"/>
- <cd:constant name="topframe" value="bovenkader"/>
- <cd:constant name="topoffset" value="bovenoffset"/>
- <cd:constant name="topstate" value="bovenstatus"/>
- <cd:constant name="width" value="breedte"/>
- <cd:constant name="autowidth" value="autobreedte"/>
- <cd:constant name="maxwidth" value="maxbreedte"/>
- <cd:constant name="minwidth" value="minbreedte"/>
- <cd:constant name="source" value="bron"/>
- <cd:constant name="command" value="commando"/>
- <cd:constant name="commands" value="commandos"/>
- <cd:constant name="component" value="component"/>
- <cd:constant name="contrastcolor" value="contrastkleur"/>
- <cd:constant name="conversion" value="conversie"/>
- <cd:constant name="headconversion" value="kopconversie"/>
- <cd:constant name="headlabel" value="koplabel"/>
- <cd:constant name="criterium" value="criterium"/>
- <cd:constant name="date" value="datum"/>
- <cd:constant name="default" value="default"/>
- <cd:constant name="depth" value="diepte"/>
- <cd:constant name="depthcorrection" value="dieptecorrectie"/>
- <cd:constant name="continue" value="doorgaan"/>
- <cd:constant name="doublesided" value="dubbelzijdig"/>
- <cd:constant name="dummy" value="dummy"/>
- <cd:constant name="unit" value="eenheid"/>
- <cd:constant name="ownnumber" value="eigennummer"/>
- <cd:constant name="evenmargin" value="evenmarge"/>
- <cd:constant name="expansion" value="expansie"/>
- <cd:constant name="keyexpansion" value="sleutelexpansie"/>
- <cd:constant name="factor" value="factor"/>
- <cd:constant name="convertfile" value="converteerfile"/>
- <cd:constant name="file" value="file"/>
- <cd:constant name="inputfile" value="inputfile"/>
- <cd:constant name="size" value="formaat"/>
- <cd:constant name="autofocus" value="autofocus"/>
- <cd:constant name="focus" value="focus"/>
- <cd:constant name="directory" value="gebied"/>
- <cd:constant name="cache" value="cache"/>
- <cd:constant name="grid" value="grid"/>
- <cd:constant name="big" value="groot"/>
- <cd:constant name="get" value="haal"/>
- <cd:constant name="hang" value="hang"/>
- <cd:constant name="repeat" value="herhaal"/>
- <cd:constant name="hfactor" value="hfactor"/>
- <cd:constant name="corner" value="hoek"/>
- <cd:constant name="hoffset" value="hoffset"/>
- <cd:constant name="frames" value="hokjes"/>
- <cd:constant name="header" value="hoofd"/>
- <cd:constant name="headerdistance" value="hoofdafstand"/>
- <cd:constant name="headerstate" value="hoofdstatus"/>
- <cd:constant name="height" value="hoogte"/>
- <cd:constant name="maxheight" value="maxhoogte"/>
- <cd:constant name="minheight" value="minhoogte"/>
- <cd:constant name="mindepth" value="mindiepte"/>
- <cd:constant name="current" value="huidige"/>
- <cd:constant name="in" value="in"/>
- <cd:constant name="indenting" value="inspringen"/>
- <cd:constant name="interaction" value="interactie"/>
- <cd:constant name="interlinespace" value="interlinie"/>
- <cd:constant name="items" value="items"/>
- <cd:constant name="fallback" value="terugval"/>
- <cd:constant name="frame" value="kader"/>
- <cd:constant name="framedepth" value="kaderdiepte"/>
- <cd:constant name="framecorner" value="kaderhoek"/>
- <cd:constant name="framecolor" value="kaderkleur"/>
- <cd:constant name="frameoffset" value="kaderoffset"/>
- <cd:constant name="frameradius" value="kaderstraal"/>
- <cd:constant name="marginedge" value="kantlijn"/>
- <cd:constant name="marginedgetext" value="kantlijntekst"/>
- <cd:constant name="aligncharacter" value="karakteruitlijnen"/>
- <cd:constant name="alignmentcharacter" value="uitlijnkarakter"/>
- <cd:constant name="small" value="klein"/>
- <cd:constant name="color" value="kleur"/>
- <cd:constant name="column" value="kolom"/>
- <cd:constant name="columns" value="kolommen"/>
- <cd:constant name="columndistance" value="kolomafstand"/>
- <cd:constant name="headcommand" value="kopcommando"/>
- <cd:constant name="headcolor" value="kopkleur"/>
- <cd:constant name="headstyle" value="kopletter"/>
- <cd:constant name="afterhead" value="kopna"/>
- <cd:constant name="veroffset" value="kopoffset"/>
- <cd:constant name="coupling" value="koppeling"/>
- <cd:constant name="couplingway" value="koppelwijze"/>
- <cd:constant name="beforehead" value="kopvoor"/>
- <cd:constant name="topspace" value="kopwit"/>
- <cd:constant name="bodyfont" value="korps"/>
- <cd:constant name="label" value="label"/>
- <cd:constant name="empty" value="leeg"/>
- <cd:constant name="style" value="letter"/>
- <cd:constant name="rule" value="lijn"/>
- <cd:constant name="rulethickness" value="lijndikte"/>
- <cd:constant name="rulecolor" value="lijnkleur"/>
- <cd:constant name="list" value="lijst"/>
- <cd:constant name="leftwidth" value="linkerbreedte"/>
- <cd:constant name="leftframe" value="linkerkader"/>
- <cd:constant name="leftcolor" value="linkerkleur"/>
- <cd:constant name="leftstyle" value="linkerletter"/>
- <cd:constant name="leftmargin" value="linkermarge"/>
- <cd:constant name="innermargin" value="binnenmarge"/>
- <cd:constant name="outermargin" value="buitenmarge"/>
- <cd:constant name="leftmargindistance" value="linkermargeafstand"/>
- <cd:constant name="leftoffset" value="linkeroffset"/>
- <cd:constant name="leftedge" value="linkerrand"/>
- <cd:constant name="leftedgedistance" value="linkerrandafstand"/>
- <cd:constant name="lefttext" value="linkertekst"/>
- <cd:constant name="left" value="links"/>
- <cd:constant name="nleft" value="nlinks"/>
- <cd:constant name="logo" value="logo"/>
- <cd:constant name="logos" value="logos"/>
- <cd:constant name="local" value="lokaal"/>
- <cd:constant name="margin" value="marge"/>
- <cd:constant name="margindistance" value="margeafstand"/>
- <cd:constant name="margintext" value="margetekst"/>
- <cd:constant name="marking" value="markering"/>
- <cd:constant name="marcolor" value="markleur"/>
- <cd:constant name="marstyle" value="marletter"/>
- <cd:constant name="menu" value="menu"/>
- <cd:constant name="splitmethod" value="splitsmethode"/>
- <cd:constant name="textmethod" value="tekstmethode"/>
- <cd:constant name="sidemethod" value="zijmethode"/>
- <cd:constant name="method" value="methode"/>
- <cd:constant name="middle" value="midden"/>
- <cd:constant name="middletext" value="middentekst"/>
- <cd:constant name="max" value="max"/>
- <cd:constant name="min" value="min"/>
- <cd:constant name="sample" value="monster"/>
- <cd:constant name="after" value="na"/>
- <cd:constant name="name" value="naam"/>
- <cd:constant name="commandafter" value="nacommando"/>
- <cd:constant name="ntop" value="nboven"/>
- <cd:constant name="level" value="niveau"/>
- <cd:constant name="levels" value="niveaus"/>
- <cd:constant name="nbottom" value="nonder"/>
- <cd:constant name="norm" value="norm"/>
- <cd:constant name="nlines" value="nregels"/>
- <cd:constant name="number" value="nummer"/>
- <cd:constant name="numbercommand" value="nummercommando"/>
- <cd:constant name="numbering" value="nummeren"/>
- <cd:constant name="numbercolor" value="nummerkleur"/>
- <cd:constant name="numberstyle" value="nummerletter"/>
- <cd:constant name="numberseparator" value="nummerscheider"/>
- <cd:constant name="object" value="object"/>
- <cd:constant name="offset" value="offset"/>
- <cd:constant name="bottom" value="onder"/>
- <cd:constant name="bottomdistance" value="onderafstand"/>
- <cd:constant name="bottomframe" value="onderkader"/>
- <cd:constant name="bottomoffset" value="onderoffset"/>
- <cd:constant name="bottomstate" value="onderstatus"/>
- <cd:constant name="oddmargin" value="onevenmarge"/>
- <cd:constant name="at" value="op"/>
- <cd:constant name="option" value="optie"/>
- <cd:constant name="page" value="pagina"/>
- <cd:constant name="pagecommand" value="paginacommando"/>
- <cd:constant name="pagecolor" value="paginakleur"/>
- <cd:constant name="pagestyle" value="paginaletter"/>
- <cd:constant name="pagenumber" value="paginanummer"/>
- <cd:constant name="headnumber" value="kopnummer"/>
- <cd:constant name="pageboundaries" value="paginaovergangen"/>
- <cd:constant name="pagestate" value="paginastatus"/>
- <cd:constant name="palet" value="palet"/>
- <cd:constant name="paper" value="papier"/>
- <cd:constant name="location" value="plaats"/>
- <cd:constant name="placestopper" value="plaatsafsluiter"/>
- <cd:constant name="place" value="plaatsen"/>
- <cd:constant name="placehead" value="plaatskop"/>
- <cd:constant name="position" value="positie"/>
- <cd:constant name="prefix" value="prefix"/>
- <cd:constant name="preset" value="preset"/>
- <cd:constant name="preview" value="preview"/>
- <cd:constant name="process" value="proces"/>
- <cd:constant name="spot" value="spot"/>
- <cd:constant name="dot" value="punt"/>
- <cd:constant name="arrow" value="pijl"/>
- <cd:constant name="edge" value="rand"/>
- <cd:constant name="edgedistance" value="randafstand"/>
- <cd:constant name="screen" value="raster"/>
- <cd:constant name="rightwidth" value="rechterbreedte"/>
- <cd:constant name="rightframe" value="rechterkader"/>
- <cd:constant name="rightcolor" value="rechterkleur"/>
- <cd:constant name="rightstyle" value="rechterletter"/>
- <cd:constant name="rightmargin" value="rechtermarge"/>
- <cd:constant name="rightmargindistance" value="rechtermargeafstand"/>
- <cd:constant name="rightoffset" value="rechteroffset"/>
- <cd:constant name="rightedge" value="rechterrand"/>
- <cd:constant name="rightedgedistance" value="rechterrandafstand"/>
- <cd:constant name="righttext" value="rechtertekst"/>
- <cd:constant name="right" value="rechts"/>
- <cd:constant name="nright" value="nrechts"/>
- <cd:constant name="reduction" value="reductie"/>
- <cd:constant name="referencing" value="refereren"/>
- <cd:constant name="line" value="regel"/>
- <cd:constant name="linecorrection" value="regelcorrectie"/>
- <cd:constant name="lines" value="regels"/>
- <cd:constant name="stretch" value="rek"/>
- <cd:constant name="resolution" value="resolutie"/>
- <cd:constant name="rotation" value="rotatie"/>
- <cd:constant name="orientation" value="orientatie"/>
- <cd:constant name="horoffset" value="rugoffset"/>
- <cd:constant name="backspace" value="rugwit"/>
- <cd:constant name="direction" value="richting"/>
- <cd:constant name="scale" value="schaal"/>
- <cd:constant name="separator" value="scheider"/>
- <cd:constant name="display" value="scherm"/>
- <cd:constant name="scope" value="scope"/>
- <cd:constant name="section" value="sectie"/>
- <cd:constant name="sectionnumber" value="sectienummer"/>
- <cd:constant name="setups" value="setups"/>
- <cd:constant name="cutspace" value="snijwit"/>
- <cd:constant name="family" value="soort"/>
- <cd:constant name="space" value="spatie"/>
- <cd:constant name="spacing" value="spatiering"/>
- <cd:constant name="split" value="splitsen"/>
- <cd:constant name="splitoffset" value="splitsoffset"/>
- <cd:constant name="indentnext" value="springvolgendein"/>
- <cd:constant name="step" value="stap"/>
- <cd:constant name="stack" value="stapel"/>
- <cd:constant name="start" value="start"/>
- <cd:constant name="state" value="status"/>
- <cd:constant name="stop" value="stop"/>
- <cd:constant name="radius" value="straal"/>
- <cd:constant name="dash" value="streep"/>
- <cd:constant name="sub" value="sub"/>
- <cd:constant name="subtitle" value="subtitel"/>
- <cd:constant name="symbol" value="symbool"/>
- <cd:constant name="closesymbol" value="sluitsymbool"/>
- <cd:constant name="closecommand" value="sluitcommando"/>
- <cd:constant name="symbolset" value="symboolset"/>
- <cd:constant name="symcolor" value="symkleur"/>
- <cd:constant name="symstyle" value="symletter"/>
- <cd:constant name="synonym" value="synoniem"/>
- <cd:constant name="synonymcolor" value="synoniemkleur"/>
- <cd:constant name="synonymstyle" value="synoniemletter"/>
- <cd:constant name="tab" value="tab"/>
- <cd:constant name="sign" value="teken"/>
- <cd:constant name="text" value="tekst"/>
- <cd:constant name="listtext" value="lijsttekst"/>
- <cd:constant name="textwidth" value="tekstbreedte"/>
- <cd:constant name="numberwidth" value="nummerbreedte"/>
- <cd:constant name="textcommand" value="tekstcommando"/>
- <cd:constant name="textsize" value="tekstformaat"/>
- <cd:constant name="textcolor" value="tekstkleur"/>
- <cd:constant name="textstyle" value="tekstletter"/>
- <cd:constant name="textseparator" value="tekstscheider"/>
- <cd:constant name="textstate" value="tekststatus"/>
- <cd:constant name="title" value="titel"/>
- <cd:constant name="titlestyle" value="titelletter"/>
- <cd:constant name="titlecolor" value="titelkleur"/>
- <cd:constant name="titledistance" value="titelafstand"/>
- <cd:constant name="titleleft" value="titellinks"/>
- <cd:constant name="titleright" value="titelrechts"/>
- <cd:constant name="titlecommand" value="titelcommando"/>
- <cd:constant name="aligntitle" value="titeluitlijnen"/>
- <cd:constant name="tolerance" value="tolerantie"/>
- <cd:constant name="inbetween" value="tussen"/>
- <cd:constant name="type" value="type"/>
- <cd:constant name="align" value="uitlijnen"/>
- <cd:constant name="symalign" value="symuitlijnen"/>
- <cd:constant name="urlspace" value="urlspatie"/>
- <cd:constant name="urlalternative" value="urlvariant"/>
- <cd:constant name="from" value="van"/>
- <cd:constant name="alternative" value="variant"/>
- <cd:constant name="increment" value="verhoog"/>
- <cd:constant name="incrementnumber" value="verhoognummer"/>
- <cd:constant name="resetnumber" value="resetnummer"/>
- <cd:constant name="reference" value="verwijzing"/>
- <cd:constant name="unknownreference" value="onbekendeverwijzing"/>
- <cd:constant name="footer" value="voet"/>
- <cd:constant name="footerdistance" value="voetafstand"/>
- <cd:constant name="footerstate" value="voetstatus"/>
- <cd:constant name="voffset" value="voffset"/>
- <cd:constant name="next" value="volgende"/>
- <cd:constant name="before" value="voor"/>
- <cd:constant name="commandbefore" value="voorcommando"/>
- <cd:constant name="previous" value="vorige"/>
- <cd:constant name="previousnumber" value="vorigenummer"/>
- <cd:constant name="delay" value="wachttijd"/>
- <cd:constant name="way" value="wijze"/>
- <cd:constant name="random" value="willekeur"/>
- <cd:constant name="white" value="wit"/>
- <cd:constant name="xfactor" value="xfactor"/>
- <cd:constant name="xmax" value="xmax"/>
- <cd:constant name="xoffset" value="xoffset"/>
- <cd:constant name="xscale" value="xschaal"/>
- <cd:constant name="xstep" value="xstap"/>
- <cd:constant name="yfactor" value="yfactor"/>
- <cd:constant name="ymax" value="ymax"/>
- <cd:constant name="yoffset" value="yoffset"/>
- <cd:constant name="yscale" value="yschaal"/>
- <cd:constant name="ystep" value="ystap"/>
- <cd:constant name="samepage" value="zelfdepagina"/>
- <cd:constant name="itemalign" value="itemuitlijnen"/>
- <cd:constant name="sidealign" value="zijuitlijnen"/>
- <cd:constant name="side" value="zij"/>
- <cd:constant name="fieldlayer" value="veldlaag"/>
- <cd:constant name="textlayer" value="tekstlaag"/>
- <cd:constant name="fieldbackgroundcolor" value="veldachtergrondkleur"/>
- <cd:constant name="fieldframecolor" value="veldkaderkleur"/>
- <cd:constant name="fieldoffset" value="veldoffset"/>
- <cd:constant name="action" value="actie"/>
- <cd:constant name="openaction" value="openactie"/>
- <cd:constant name="closeaction" value="sluitactie"/>
- <cd:constant name="openpageaction" value="openpaginaactie"/>
- <cd:constant name="closepageaction" value="sluitpaginaactie"/>
- <cd:constant name="clickin" value="klikin"/>
- <cd:constant name="clickout" value="klikuit"/>
- <cd:constant name="regionin" value="gebiedin"/>
- <cd:constant name="regionout" value="gebieduit"/>
- <cd:constant name="focusin" value="focusin"/>
- <cd:constant name="focusout" value="focusuit"/>
- <cd:constant name="afterkey" value="natoets"/>
- <cd:constant name="format" value="formatteer"/>
- <cd:constant name="validate" value="valideer"/>
- <cd:constant name="calculate" value="bereken"/>
- <cd:constant name="click" value="klik"/>
- <cd:constant name="vcommand" value="vcommando"/>
- <cd:constant name="icommand" value="icommando"/>
- <cd:constant name="ccommand" value="ccommando"/>
- <cd:constant name="textdistance" value="tekstafstand"/>
- <cd:constant name="numberdistance" value="nummerafstand"/>
- <cd:constant name="textmargin" value="tekstmarge"/>
- <cd:constant name="keyword" value="trefwoord"/>
- <cd:constant name="deeptextcommand" value="dieptekstcommando"/>
- <cd:constant name="deepnumbercommand" value="diepnummercommando"/>
- </cd:constants>
-
- <cd:constants>
- <cd:constant name="extras" value="extras"/>
- </cd:constants>
-
- <cd:variables>
- <cd:variable name="on" value="aan"/>
- <cd:variable name="test" value="test"/>
- <cd:variable name="serried" value="aanelkaar"/>
- <cd:variable name="joinedup" value="aansluitend"/>
- <cd:variable name="absolute" value="absoluut"/>
- <cd:variable name="background" value="achtergrond"/>
- <cd:variable name="backward" value="achteruit"/>
- <cd:variable name="subbackward" value="subachteruit"/>
- <cd:variable name="action" value="actie"/>
- <cd:variable name="stopper" value="afsluiter"/>
- <cd:variable name="paragraph" value="alinea"/>
- <cd:variable name="all" value="alles"/>
- <cd:variable name="always" value="altijd"/>
- <cd:variable name="auto" value="auto"/>
- <cd:variable name="autointro" value="autointro"/>
- <cd:variable name="both" value="beide"/>
- <cd:variable name="inner" value="binnen"/>
- <cd:variable name="blank" value="blanko"/>
- <cd:variable name="disable" value="blokkeer"/>
- <cd:variable name="top" value="boven"/>
- <cd:variable name="wide" value="breed"/>
- <cd:variable name="width" value="breedte"/>
- <cd:variable name="minwidth" value="minbreedte"/>
- <cd:variable name="outer" value="buiten"/>
- <cd:variable name="numbers" value="cijfers"/>
- <cd:variable name="Numbers" value="Cijfers"/>
- <cd:variable name="command" value="commando"/>
- <cd:variable name="commands" value="commandos"/>
- <cd:variable name="concept" value="concept"/>
- <cd:variable name="day" value="dag"/>
- <cd:variable name="date" value="datum"/>
- <cd:variable name="default" value="default"/>
- <cd:variable name="final" value="definitief"/>
- <cd:variable name="float" value="blok"/>
- <cd:variable name="depth" value="diepte"/>
- <cd:variable name="doublesided" value="dubbelzijdig"/>
- <cd:variable name="first" value="eerste"/>
- <cd:variable name="each" value="elk"/>
- <cd:variable name="singlesided" value="enkelzijdig"/>
- <cd:variable name="somewhere" value="ergens"/>
- <cd:variable name="nowhere" value="nergens"/>
- <cd:variable name="even" value="even"/>
- <cd:variable name="external" value="extern"/>
- <cd:variable name="file" value="file"/>
- <cd:variable name="flexible" value="flexibel"/>
- <cd:variable name="force" value="forceer"/>
- <cd:variable name="used" value="gebruikt"/>
- <cd:variable name="none" value="geen"/>
- <cd:variable name="nomarking" value="geenmarkering"/>
- <cd:variable name="nonumber" value="geennummer"/>
- <cd:variable name="nowhite" value="geenwit"/>
- <cd:variable name="rotated" value="geroteerd"/>
- <cd:variable name="mirrored" value="gespiegeld"/>
- <cd:variable name="global" value="globaal"/>
- <cd:variable name="grid" value="grid"/>
- <cd:variable name="nogrid" value="geengrid"/>
- <cd:variable name="big" value="groot"/>
- <cd:variable name="bigbodyfont" value="grootkorps"/>
- <cd:variable name="bigpreference" value="grotevoorkeur"/>
- <cd:variable name="gray" value="grijs"/>
- <cd:variable name="halfline" value="halveregel"/>
- <cd:variable name="keep" value="handhaaf"/>
- <cd:variable name="hanging" value="hangend"/>
- <cd:variable name="spacing" value="spatiering"/>
- <cd:variable name="nospacing" value="geenspatiering"/>
- <cd:variable name="repeat" value="herhaal"/>
- <cd:variable name="fix" value="herstel"/>
- <cd:variable name="here" value="hier"/>
- <cd:variable name="header" value="hoofd"/>
- <cd:variable name="high" value="hoog"/>
- <cd:variable name="height" value="hoogte"/>
- <cd:variable name="minheight" value="minhoogte"/>
- <cd:variable name="horizontal" value="horizontaal"/>
- <cd:variable name="current" value="huidige"/>
- <cd:variable name="hz" value="hz"/>
- <cd:variable name="nohz" value="geenhz"/>
- <cd:variable name="italic" value="italic"/>
- <cd:variable name="inherit" value="erf"/>
- <cd:variable name="inleft" value="inlinker"/>
- <cd:variable name="inmargin" value="inmarge"/>
- <cd:variable name="inright" value="inrechter"/>
- <cd:variable name="interaction" value="interactie"/>
- <cd:variable name="intext" value="intekst"/>
- <cd:variable name="intro" value="intro"/>
- <cd:variable name="its" value="its"/>
- <cd:variable name="yes" value="ja"/>
- <cd:variable name="year" value="jaar"/>
- <cd:variable name="frame" value="kader"/>
- <cd:variable name="marginedge" value="kantlijn"/>
- <cd:variable name="cap" value="kap"/>
- <cd:variable name="capital" value="kapitaal"/>
- <cd:variable name="referral" value="kenmerk"/>
- <cd:variable name="small" value="klein"/>
- <cd:variable name="smallnormal" value="kleinnormaal"/>
- <cd:variable name="smallslanted" value="kleinschuin"/>
- <cd:variable name="smallslantedbold" value="kleinschuinvet"/>
- <cd:variable name="smallitalic" value="kleinitalic"/>
- <cd:variable name="smallitalicbold" value="kleinitalicvet"/>
- <cd:variable name="smalltype" value="kleintype"/>
- <cd:variable name="smallbold" value="kleinvet"/>
- <cd:variable name="smallboldslanted" value="kleinvetschuin"/>
- <cd:variable name="smallbolditalic" value="kleinvetitalic"/>
- <cd:variable name="smallbodyfont" value="kleinkorps"/>
- <cd:variable name="split" value="splitsen"/>
- <cd:variable name="toggle" value="toggle"/>
- <cd:variable name="color" value="kleur"/>
- <cd:variable name="column" value="kolom"/>
- <cd:variable name="columns" value="kolommen"/>
- <cd:variable name="head" value="kop"/>
- <cd:variable name="low" value="laag"/>
- <cd:variable name="last" value="laatste"/>
- <cd:variable name="label" value="label"/>
- <cd:variable name="lohi" value="laho"/>
- <cd:variable name="tall" value="lang"/>
- <cd:variable name="empty" value="leeg"/>
- <cd:variable name="Character" value="Letter"/>
- <cd:variable name="character" value="letter"/>
- <cd:variable name="Characters" value="Letters"/>
- <cd:variable name="characters" value="letters"/>
- <cd:variable name="landscape" value="liggend"/>
- <cd:variable name="rule" value="lijn"/>
- <cd:variable name="list" value="lijst"/>
- <cd:variable name="leftmargin" value="linkermarge"/>
- <cd:variable name="leftpage" value="linkerpagina"/>
- <cd:variable name="leftedge" value="linkerrand"/>
- <cd:variable name="left" value="links"/>
- <cd:variable name="local" value="lokaal"/>
- <cd:variable name="new" value="nieuw"/>
- <cd:variable name="old" value="oud"/>
- <cd:variable name="MONTH" value="MAAND"/>
- <cd:variable name="month" value="maand"/>
- <cd:variable name="mar" value="mar"/>
- <cd:variable name="item" value="som"/>
- <cd:variable name="marking" value="markering"/>
- <cd:variable name="margin" value="marge"/>
- <cd:variable name="max" value="max"/>
- <cd:variable name="min" value="min"/>
- <cd:variable name="mediaeval" value="mediaeval"/>
- <cd:variable name="medium" value="middel"/>
- <cd:variable name="middle" value="midden"/>
- <cd:variable name="after" value="na"/>
- <cd:variable name="name" value="naam"/>
- <cd:variable name="opposite" value="naast"/>
- <cd:variable name="no" value="nee"/>
- <cd:variable name="negative" value="negatief"/>
- <cd:variable name="positive" value="positief"/>
- <cd:variable name="not" value="niet"/>
- <cd:variable name="never" value="nooit"/>
- <cd:variable name="normal" value="normaal"/>
- <cd:variable name="number" value="nummer"/>
- <cd:variable name="offset" value="offset"/>
- <cd:variable name="unknown" value="onbekend"/>
- <cd:variable name="bottom" value="onder"/>
- <cd:variable name="odd" value="oneven"/>
- <cd:variable name="packed" value="opelkaar"/>
- <cd:variable name="unpacked" value="vanelkaar"/>
- <cd:variable name="makeup" value="opmaak"/>
- <cd:variable name="atmargin" value="opmarge"/>
- <cd:variable name="overlay" value="overlay"/>
- <cd:variable name="page" value="pagina"/>
- <cd:variable name="pagenumber" value="paginanummer"/>
- <cd:variable name="paper" value="papier"/>
- <cd:variable name="display" value="scherm"/>
- <cd:variable name="reverse" value="omgekeerd"/>
- <cd:variable name="fit" value="passend"/>
- <cd:variable name="nofit" value="nietpassend"/>
- <cd:variable name="postscript" value="postscript"/>
- <cd:variable name="preview" value="preview"/>
- <cd:variable name="program" value="programma"/>
- <cd:variable name="process" value="proces"/>
- <cd:variable name="spot" value="spot"/>
- <cd:variable name="dot" value="punt"/>
- <cd:variable name="ran" value="ran"/>
- <cd:variable name="edge" value="rand"/>
- <cd:variable name="screen" value="raster"/>
- <cd:variable name="rectangular" value="recht"/>
- <cd:variable name="rightmargin" value="rechtermarge"/>
- <cd:variable name="rightpage" value="rechterpagina"/>
- <cd:variable name="rightedge" value="rechterrand"/>
- <cd:variable name="right" value="rechts"/>
- <cd:variable name="line" value="regel"/>
- <cd:variable name="hang" value="hang"/>
- <cd:variable name="register" value="register"/>
- <cd:variable name="relative" value="relatief"/>
- <cd:variable name="reset" value="reset"/>
- <cd:variable name="Romannumerals" value="Romeins"/>
- <cd:variable name="romannumerals" value="romeins"/>
- <cd:variable name="greek" value="grieks"/>
- <cd:variable name="Greek" value="Grieks"/>
- <cd:variable name="round" value="rond"/>
- <cd:variable name="rotate" value="roteer"/>
- <cd:variable name="stretch" value="rek"/>
- <cd:variable name="backspace" value="rugwit"/>
- <cd:variable name="broad" value="ruim"/>
- <cd:variable name="row" value="rij"/>
- <cd:variable name="slanted" value="schuin"/>
- <cd:variable name="slantedbold" value="schuinvet"/>
- <cd:variable name="synchronize" value="synchroniseer"/>
- <cd:variable name="italicbold" value="italicvet"/>
- <cd:variable name="sectionnumber" value="sectienummer"/>
- <cd:variable name="narrow" value="smal"/>
- <cd:variable name="cutspace" value="snijwit"/>
- <cd:variable name="tolerant" value="soepel"/>
- <cd:variable name="space" value="spatie"/>
- <cd:variable name="standard" value="standaard"/>
- <cd:variable name="start" value="start"/>
- <cd:variable name="stop" value="stop"/>
- <cd:variable name="strict" value="streng"/>
- <cd:variable name="strut" value="strut"/>
- <cd:variable name="sub" value="sub"/>
- <cd:variable name="sym" value="sym"/>
- <cd:variable name="txt" value="txt"/>
- <cd:variable name="symbol" value="symbool"/>
- <cd:variable name="text" value="tekst"/>
- <cd:variable name="back" value="terug"/>
- <cd:variable name="test" value="test"/>
- <cd:variable name="inbetween" value="tussen"/>
- <cd:variable name="type" value="type"/>
- <cd:variable name="off" value="uit"/>
- <cd:variable name="url" value="url"/>
- <cd:variable name="URL" value="URL"/>
- <cd:variable name="fixed" value="vast"/>
- <cd:variable name="loose" value="los"/>
- <cd:variable name="continue" value="verder"/>
- <cd:variable name="vertical" value="vertikaal"/>
- <cd:variable name="bold" value="vet"/>
- <cd:variable name="sansbold" value="sansvet"/>
- <cd:variable name="boldslanted" value="vetschuin"/>
- <cd:variable name="bolditalic" value="vetitalic"/>
- <cd:variable name="quadruple" value="viertal"/>
- <cd:variable name="footer" value="voet"/>
- <cd:variable name="next" value="volgende"/>
- <cd:variable name="before" value="voor"/>
- <cd:variable name="foreground" value="voorgrond"/>
- <cd:variable name="preference" value="voorkeur"/>
- <cd:variable name="temporary" value="voorlopig"/>
- <cd:variable name="forward" value="vooruit"/>
- <cd:variable name="subforward" value="subvooruit"/>
- <cd:variable name="previous" value="vorige"/>
- <cd:variable name="value" value="waarde"/>
- <cd:variable name="week" value="week"/>
- <cd:variable name="weekday" value="weekdag"/>
- <cd:variable name="WEEKDAY" value="WEEKDAG"/>
- <cd:variable name="random" value="willekeurig"/>
- <cd:variable name="white" value="wit"/>
- <cd:variable name="very" value="zeer"/>
- <cd:variable name="verytolerant" value="zeersoepel"/>
- <cd:variable name="verystrict" value="zeerstreng"/>
- <cd:variable name="see" value="zie"/>
- <cd:variable name="smallcaps" value="smallcaps"/>
- <cd:variable name="WORD" value="WOORD"/>
- <cd:variable name="firstpage" value="eerstepagina"/>
- <cd:variable name="firstcolumn" value="eerstekolom"/>
- <cd:variable name="previouspage" value="vorigepagina"/>
- <cd:variable name="nextpage" value="volgendepagina"/>
- <cd:variable name="lastpage" value="laatstepagina"/>
- <cd:variable name="lastcolumn" value="laatstekolom"/>
- <cd:variable name="lastpagenumber" value="laatstepaginanummer"/>
- <cd:variable name="subpage" value="subpagina"/>
- <cd:variable name="firstsubpage" value="eerstesubpagina"/>
- <cd:variable name="previoussubpage" value="vorigesubpagina"/>
- <cd:variable name="nextsubpage" value="volgendesubpagina"/>
- <cd:variable name="lastsubpage" value="laatstesubpagina"/>
- <cd:variable name="nextevenpage" value="volgendeevenpagina"/>
- <cd:variable name="nextoddpage" value="volgendeonevenpagina"/>
- <cd:variable name="previousevenpage" value="vorigeevenpagina"/>
- <cd:variable name="previousoddpage" value="vorigeonevenpagina"/>
- <cd:variable name="readonly" value="alleenleesbaar"/>
- <cd:variable name="required" value="verplicht"/>
- <cd:variable name="protected" value="beschermd"/>
- <cd:variable name="sorted" value="gesorteerd"/>
- <cd:variable name="unavailable" value="nietbeschikbaar"/>
- <cd:variable name="hidden" value="verborgen"/>
- <cd:variable name="printable" value="printbaar"/>
- <cd:variable name="bookmark" value="bookmark"/>
- <cd:variable name="nocheck" value="geencontrole"/>
- <cd:variable name="innermargin" value="binnenmarge"/>
- <cd:variable name="outermargin" value="buitenmarge"/>
- <cd:variable name="inneredge" value="binnenrand"/>
- <cd:variable name="outeredge" value="buitenrand"/>
- <cd:variable name="controls" value="sturing"/>
- <cd:variable name="nothanging" value="niethangend"/>
- <cd:variable name="hyphenated" value="afgebroken"/>
- <cd:variable name="nothyphenated" value="nietafgebroken"/>
- <cd:variable name="overprint" value="overprint"/>
- <cd:variable name="knockout" value="knockout"/>
- <cd:variable name="xml" value="xml"/>
- <cd:variable name="enumeration" value="doornummering"/>
- <cd:variable name="description" value="doordefinitie"/>
- <cd:variable name="lefthanging" value="linkshangend"/>
- <cd:variable name="righthanging" value="rechtshangend"/>
- </cd:variables>
-
- <cd:constants>
- <cd:constant name="controls" value="sturing"/>
- <cd:constant name="global" value="globaal"/>
- <cd:constant name="overprint" value="overprint"/>
- </cd:constants>
-
- <cd:variables>
- <cd:variable name="conversion" value="conversie"/>
- <cd:variable name="by" value="per"/>
- </cd:variables>
-
- <cd:constants>
- <cd:constant name="dx" value="dx"/>
- <cd:constant name="dy" value="dy"/>
- <cd:constant name="nx" value="nx"/>
- <cd:constant name="ny" value="ny"/>
- <cd:constant name="nr" value="nr"/>
- <cd:constant name="nl" value="nl"/>
- <cd:constant name="nc" value="nc"/>
- <cd:constant name="sx" value="sx"/>
- <cd:constant name="sy" value="sy"/>
- <cd:constant name="n" value="n"/>
- <cd:constant name="vfil" value="vfil"/>
- <cd:constant name="hfil" value="hfil"/>
- <cd:constant name="strut" value="strut"/>
- <cd:constant name="autostrut" value="autostrut"/>
- <cd:constant name="reset" value="reset"/>
- <cd:constant name="set" value="set"/>
- <cd:constant name="escape" value="escape"/>
- <cd:constant name="apa" value="apa"/>
- </cd:constants>
-
- <cd:variables>
- <cd:variable name="calligraphic" value="calligrafie"/>
- <cd:variable name="handwritten" value="handschrift"/>
- <cd:variable name="sansserif" value="schreefloos"/>
- <cd:variable name="roman" value="romaan"/>
- <cd:variable name="teletype" value="teletype"/>
- <cd:variable name="type" value="type"/>
- <cd:variable name="serif" value="serif"/>
- <cd:variable name="regular" value="regular"/>
- <cd:variable name="support" value="support"/>
- <cd:variable name="sans" value="sans"/>
- <cd:variable name="mono" value="mono"/>
- </cd:variables>
-
- <cd:elements>
- <cd:element name="begin" value="beginvan"/>
- <cd:element name="end" value="eindvan"/>
- <cd:element name="coupled" value="gekoppelde"/>
- <cd:element name="get" value="haal"/>
- <cd:element name="currentlocal" value="huidigelokale"/>
- <cd:element name="endsetup" value="in"/>
- <cd:element name="load" value="laad"/>
- <cd:element name="emptyone" value="leeg"/>
- <cd:element name="emptytwo" value="lege"/>
- <cd:element name="list" value="lijst"/>
- <cd:element name="listof" value="lijstmet"/>
- <cd:element name="local" value="lokale"/>
- <cd:element name="place" value="plaats"/>
- <cd:element name="reserve" value="reserveer"/>
- <cd:element name="start" value="start"/>
- <cd:element name="setup" value="stel"/>
- <cd:element name="stop" value="stop"/>
- <cd:element name="increment" value="verhoog"/>
- <cd:element name="next" value="volgende"/>
- <cd:element name="complete" value="volledige"/>
- <cd:element name="previous" value="vorige"/>
- <cd:element name="previouslocal" value="vorigelokale"/>
- <cd:element name="see" value="zie"/>
- <cd:element name="type" value="type"/>
- <cd:element name="makeup" value="opmaak"/>
- <cd:element name="text" value="tekst"/>
- </cd:elements>
-
- <cd:variables>
- <cd:variable name="buffer" value="buffer"/>
- <cd:variable name="linenote" value="regelnoot"/>
- <cd:variable name="comment" value="commentaar"/>
- <cd:variable name="interactionmenu" value="interactiemenu"/>
- <cd:variable name="postponing" value="uitstellen"/>
- <cd:variable name="hiding" value="verbergen"/>
- <cd:variable name="tabulate" value="tabulatie"/>
- <cd:variable name="tabulatehead" value="tabulatiekop"/>
- <cd:variable name="tabulatetail" value="tabulatiestaart"/>
- <cd:variable name="fact" value="gegeven"/>
- <cd:variable name="legend" value="legenda"/>
- <cd:variable name="formula" value="formule"/>
- <cd:variable name="tablehead" value="tabelkop"/>
- <cd:variable name="tabletail" value="tabelstaart"/>
- <cd:variable name="setups" value="instellingen"/>
- <cd:variable name="helptext" value="helptekst"/>
- <cd:variable name="localenvironment" value="deelomgeving"/>
- <cd:variable name="sectionblockenvironment" value="sectieblokomgeving"/>
- <cd:variable name="pagecomment" value="paginacommentaar"/>
- </cd:variables>
-
- <cd:variables>
- <cd:variable name="FirstPage" value="EerstePagina"/>
- <cd:variable name="PreviousPage" value="VorigePagina"/>
- <cd:variable name="NextPage" value="VolgendePagina"/>
- <cd:variable name="LastPage" value="LaatstePagina"/>
- <cd:variable name="PreviousJump" value="VorigeSprong"/>
- <cd:variable name="NextJump" value="VolgendeSprong"/>
- <cd:variable name="ToggleViewer" value="WisselViewer"/>
- <cd:variable name="ExitViewer" value="VerlaatViewer"/>
- <cd:variable name="CloseDocument" value="SluitDocument"/>
- <cd:variable name="SaveDocument" value="BewaarDocument"/>
- <cd:variable name="SaveNamedDocument" value="BewaarDocumentOpNaam"/>
- <cd:variable name="OpenNamedDocument" value="OpenDocumentOpNaam"/>
- <cd:variable name="ViewerHelp" value="ViewerHelp"/>
- <cd:variable name="PrintDocument" value="PrintDocument"/>
- <cd:variable name="SearchDocument" value="DoorzoekDocument"/>
- <cd:variable name="SearchAgain" value="HerhaalZoeken"/>
- <cd:variable name="Query" value="RaadpleegDocument"/>
- <cd:variable name="QueryAgain" value="HerhaalRaadplegen"/>
- <cd:variable name="GotoPage" value="GaNaarPagina"/>
- <cd:variable name="StartMovie" value="StartFilm"/>
- <cd:variable name="StopMovie" value="StopFilm"/>
- <cd:variable name="PauseMovie" value="PauzeerFilm"/>
- <cd:variable name="ResumeMovie" value="HervatFilm"/>
- <cd:variable name="StartSound" value="StartGeluid"/>
- <cd:variable name="StopSound" value="StopGeluid"/>
- <cd:variable name="PauseSound" value="PauzeerGeluid"/>
- <cd:variable name="ResumeSound" value="HervatGeluid"/>
- <cd:variable name="StartRendering" value="StartRendering"/>
- <cd:variable name="StopRendering" value="StopRendering"/>
- <cd:variable name="PauseRendering" value="PauzeerRendering"/>
- <cd:variable name="ResumeRendering" value="HervatRendering"/>
- <cd:variable name="SaveForm" value="BewaarFormulier"/>
- <cd:variable name="LoadForm" value="LaadFormulier"/>
- <cd:variable name="ResetForm" value="ResetFormulier"/>
- <cd:variable name="SubmitForm" value="VerzendFormulier"/>
- <cd:variable name="HideField" value="VerbergVeld"/>
- <cd:variable name="ShowField" value="ToonVeld"/>
- <cd:variable name="FitWidth" value="BreedtePassend"/>
- <cd:variable name="FitHeight" value="HoogtePassend"/>
- <cd:variable name="HideLayer" value="VerbergLaag"/>
- <cd:variable name="VideLayer" value="ToonLaag"/>
- <cd:variable name="ToggleLayer" value="WisselLaag"/>
- <cd:variable name="ShowThumbs" value="ShowThumbs"/>
- <cd:variable name="ShowBookmarks" value="ShowBookmarks"/>
- </cd:variables>
-
- <cd:variables>
- <cd:variable name="New" value="Nieuw"/>
- <cd:variable name="Balloon" value="Ballon"/>
- <cd:variable name="Addition" value="Toevoeging"/>
- <cd:variable name="Help" value="Help"/>
- <cd:variable name="Paragraph" value="Paragraaf"/>
- <cd:variable name="Key" value="Sleutel"/>
- </cd:variables>
-
- <cd:constants>
- <cd:constant name="bet" value="bet"/>
- <cd:constant name="dat" value="dat"/>
- <cd:constant name="ken" value="ken"/>
- <cd:constant name="ref" value="ref"/>
- </cd:constants>
-
- <cd:variables>
- <cd:variable name="formeel" value="formeel"/>
- <cd:variable name="informeel" value="informeel"/>
- <cd:variable name="rekening" value="rekening"/>
- <cd:variable name="sticker" value="sticker"/>
- <cd:variable name="sheet" value="sheet"/>
- <cd:variable name="brief" value="brief"/>
- <cd:variable name="ls" value="ls"/>
- </cd:variables>
-
- <cd:commands>
- <cd:command name="language" value="taal"/>
- <cd:command name="mainlanguage" value="hoofdtaal"/>
- <cd:command name="translate" value="vertaal"/>
- <cd:command name="installlanguage" value="installeertaal"/>
- <cd:command name="setuplanguage" value="steltaalin"/>
- <cd:command name="showmakeup" value="toonopmaak"/>
- <cd:command name="useencoding" value="usecodering"/>
- <cd:command name="usespecials" value="gebruikspecials"/>
- <cd:command name="defineoutput" value="definieeruitvoer"/>
- <cd:command name="setupoutput" value="steluitvoerin"/>
- <cd:command name="defineaccent" value="definieeraccent"/>
- <cd:command name="definecharacter" value="definieerkarakter"/>
- <cd:command name="definecommand" value="definieercommando"/>
- <cd:command name="startcoding" value="startcodering"/>
- <cd:command name="stopcoding" value="stopcodering"/>
- <cd:command name="definebodyfontenvironment" value="definieerkorpsomgeving"/>
- <cd:command name="setupbodyfontenvironment" value="stelkorpsomgevingin"/>
- <cd:command name="definebodyfont" value="definieerkorps"/>
- <cd:command name="definefont" value="definieerfont"/>
- <cd:command name="definefontsynonym" value="definieerfontsynoniem"/>
- <cd:command name="definestyle" value="definieerletter"/>
- <cd:command name="definefontstyle" value="definieerfontstijl"/>
- <cd:command name="setupstrut" value="stelstrutin"/>
- <cd:command name="setuptype" value="steltypein"/>
- <cd:command name="type" value="type"/>
- <cd:command name="typ" value="typ"/>
- <cd:command name="arg" value="arg"/>
- <cd:command name="tex" value="tex"/>
- <cd:command name="definetyping" value="definieertypen"/>
- <cd:command name="definetype" value="definieertype"/>
- <cd:command name="setuptyping" value="steltypenin"/>
- <cd:command name="typefile" value="typefile"/>
- <cd:command name="setupfootnotes" value="stelvoetnotenin"/>
- <cd:command name="setupfootnotedefinition" value="stelvoetnootdefinitiein"/>
- <cd:command name="note" value="noot"/>
- <cd:command name="footnote" value="voetnoot"/>
- <cd:command name="footnotetext" value="voetnoottekst"/>
- <cd:command name="startlocalfootnotes" value="startlokalevoetnoten"/>
- <cd:command name="stoplocalfootnotes" value="stoplokalevoetnoten"/>
- <cd:command name="placelocalfootnotes" value="plaatslokalevoetnoten"/>
- <cd:command name="placefootnotes" value="plaatsvoetnoten"/>
- <cd:command name="currentdate" value="huidigedatum"/>
- <cd:command name="date" value="datum"/>
- <cd:command name="weekday" value="weekdag"/>
- <cd:command name="WEEKDAY" value="WEEKDAG"/>
- <cd:command name="month" value="maand"/>
- <cd:command name="MONTH" value="MAAND"/>
- <cd:command name="Numbers" value="Cijfers"/>
- <cd:command name="numbers" value="cijfers"/>
- <cd:command name="romannumerals" value="romeins"/>
- <cd:command name="Romannumerals" value="Romeins"/>
- <cd:command name="character" value="letter"/>
- <cd:command name="Character" value="Letter"/>
- <cd:command name="characters" value="letters"/>
- <cd:command name="Characters" value="Letters"/>
- <cd:command name="unknown" value="onbekend"/>
- <cd:command name="definesymbol" value="definieersymbool"/>
- <cd:command name="definefiguresymbol" value="definieerfiguursymbool"/>
- <cd:command name="symbol" value="symbool"/>
- <cd:command name="setupsymbolset" value="stelsymboolsetin"/>
- <cd:command name="showsymbolset" value="toonsymboolset"/>
- <cd:command name="startsymbolset" value="startsymboolset"/>
- <cd:command name="usesymbols" value="gebruiksymbolen"/>
- <cd:command name="defineconversion" value="definieerconversie"/>
- <cd:command name="convertnumber" value="converteernummer"/>
- <cd:command name="setupcapitals" value="stelkapitalenin"/>
- <cd:command name="smallcapped" value="kap"/>
- <cd:command name="notsmallcapped" value="nokap"/>
- <cd:command name="CAPPED" value="KAP"/>
- <cd:command name="SmallCapped" value="Kap"/>
- <cd:command name="SmallCaps" value="Kaps"/>
- <cd:command name="WORD" value="WOORD"/>
- <cd:command name="WORDS" value="WOORDEN"/>
- <cd:command name="Word" value="Woord"/>
- <cd:command name="Words" value="Woorden"/>
- <cd:command name="stretched" value="uitgerekt"/>
- <cd:command name="overstrike" value="doorstreep"/>
- <cd:command name="overstrikes" value="doorstrepen"/>
- <cd:command name="overbar" value="overstreep"/>
- <cd:command name="overbars" value="overstrepen"/>
- <cd:command name="underbar" value="onderstreep"/>
- <cd:command name="underbars" value="onderstrepen"/>
- <cd:command name="setupunderbar" value="stelonderstrepenin"/>
- <cd:command name="setupbodyfont" value="stelkorpsin"/>
- <cd:command name="switchtobodyfont" value="switchnaarkorps"/>
- <cd:command name="showbodyfont" value="toonkorps"/>
- <cd:command name="showbodyfontenvironment" value="toonkorpsomgeving"/>
- <cd:command name="headtext" value="koptekst"/>
- <cd:command name="labeltext" value="labeltekst"/>
- <cd:command name="LABELTEXT" value="LABELTEKST"/>
- <cd:command name="setupheadtext" value="stelkoptekstin"/>
- <cd:command name="setuplabeltext" value="stellabeltekstin"/>
- <cd:command name="marginrule" value="kantlijn"/>
- <cd:command name="startmarginrule" value="startkantlijn"/>
- <cd:command name="stopmarginrule" value="stopkantlijn"/>
- <cd:command name="setupmarginrules" value="stelkantlijnin"/>
- <cd:command name="blackrule" value="blokje"/>
- <cd:command name="blackrules" value="blokjes"/>
- <cd:command name="setupblackrules" value="stelblokjesin"/>
- <cd:command name="setupscreens" value="stelrastersin"/>
- <cd:command name="framed" value="omlijnd"/>
- <cd:command name="inframed" value="inlijnd"/>
- <cd:command name="mframed" value="wilijnd"/>
- <cd:command name="inmframed" value="inwilijnd"/>
- <cd:command name="setupframed" value="stelomlijndin"/>
- <cd:command name="setuplinewidth" value="stellijndiktein"/>
- <cd:command name="setupthinrules" value="steldunnelijnenin"/>
- <cd:command name="thinrule" value="dunnelijn"/>
- <cd:command name="thinrules" value="dunnelijnen"/>
- <cd:command name="hairline" value="haarlijn"/>
- <cd:command name="vl" value="vl"/>
- <cd:command name="hl" value="hl"/>
- <cd:command name="defineframed" value="definieeromlijnd"/>
- <cd:command name="defineframedtext" value="definieerkadertekst"/>
- <cd:command name="setupframedtexts" value="stelkadertekstenin"/>
- <cd:command name="defineoverlay" value="definieeroverlay"/>
- <cd:command name="definelayer" value="definieerlayer"/>
- <cd:command name="background" value="achtergrond"/>
- <cd:command name="startbackground" value="startachtergrond"/>
- <cd:command name="stopbackground" value="stopachtergrond"/>
- <cd:command name="setupbackground" value="stelachtergrondin"/>
- <cd:command name="fillinrules" value="invullijnen"/>
- <cd:command name="setupfillinrules" value="stelinvullijnenin"/>
- <cd:command name="fillintext" value="invultekst"/>
- <cd:command name="setupfillinlines" value="stelinvulregelsin"/>
- <cd:command name="fillinline" value="invulregel"/>
- <cd:command name="setuptextrules" value="steltekstlijnenin"/>
- <cd:command name="textrule" value="tekstlijn"/>
- <cd:command name="starttextrule" value="starttekstlijn"/>
- <cd:command name="stoptextrule" value="stoptekstlijn"/>
- <cd:command name="usemodule" value="gebruikmodule"/>
- <cd:command name="usemodules" value="gebruikmodules"/>
- <cd:command name="starttext" value="starttekst"/>
- <cd:command name="stoptext" value="stoptekst"/>
- <cd:command name="margintitle" value="margetitel"/>
- <cd:command name="marginword" value="margewoord"/>
- <cd:command name="margintext" value="margetekst"/>
- <cd:command name="inleft" value="inlinker"/>
- <cd:command name="inmargin" value="inmarge"/>
- <cd:command name="inothermargin" value="inanderemarge"/>
- <cd:command name="inright" value="inrechter"/>
- <cd:command name="ininner" value="inbinnen"/>
- <cd:command name="inouter" value="inbuiten"/>
- <cd:command name="startmarginblock" value="startmargeblok"/>
- <cd:command name="stopmarginblock" value="stopmargeblok"/>
- <cd:command name="defineinmargin" value="definieerinmarge"/>
- <cd:command name="setupinmargin" value="stelinmargein"/>
- <cd:command name="setupmarginblocks" value="stelmargeblokkenin"/>
- <cd:command name="inleftedge" value="inlinkerrand"/>
- <cd:command name="inleftmargin" value="inlinkermarge"/>
- <cd:command name="inrightmargin" value="inrechtermarge"/>
- <cd:command name="inrightedge" value="inrechterrand"/>
- <cd:command name="atleftmargin" value="oplinkermarge"/>
- <cd:command name="atrightmargin" value="oprechtermarge"/>
- <cd:command name="wordright" value="woordrechts"/>
- <cd:command name="defineblank" value="definieerblanko"/>
- <cd:command name="blank" value="blanko"/>
- <cd:command name="setupblank" value="stelblankoin"/>
- <cd:command name="correctwhitespace" value="corrigeerwitruimte"/>
- <cd:command name="fixedspaces" value="vastespaties"/>
- <cd:command name="fixedspace" value="vastespatie"/>
- <cd:command name="nospace" value="geenspatie"/>
- <cd:command name="space" value="spatie"/>
- <cd:command name="nowhitespace" value="geenwitruimte"/>
- <cd:command name="packed" value="opelkaar"/>
- <cd:command name="startpacked" value="startopelkaar"/>
- <cd:command name="stoppacked" value="stopopelkaar"/>
- <cd:command name="startunpacked" value="startvanelkaar"/>
- <cd:command name="stopunpacked" value="stopvanelkaar"/>
- <cd:command name="startlinecorrection" value="startregelcorrectie"/>
- <cd:command name="stoplinecorrection" value="stopregelcorrectie"/>
- <cd:command name="godown" value="omlaag"/>
- <cd:command name="whitespace" value="witruimte"/>
- <cd:command name="noindenting" value="nietinspringen"/>
- <cd:command name="indenting" value="inspringen"/>
- <cd:command name="setupindenting" value="stelinspringenin"/>
- <cd:command name="startalignment" value="startuitlijnen"/>
- <cd:command name="stopalignment" value="stopuitlijnen"/>
- <cd:command name="startlines" value="startregels"/>
- <cd:command name="stoplines" value="stopregels"/>
- <cd:command name="setupparagraphnumbering" value="stelparagraafnummerenin"/>
- <cd:command name="setuplinenumbering" value="stelregelnummerenin"/>
- <cd:command name="startlinenumbering" value="startregelnummeren"/>
- <cd:command name="stoplinenumbering" value="stopregelnummeren"/>
- <cd:command name="startline" value="startregel"/>
- <cd:command name="stopline" value="stopregel"/>
- <cd:command name="someline" value="eenregel"/>
- <cd:command name="inline" value="inregel"/>
- <cd:command name="crlf" value="crlf"/>
- <cd:command name="emptylines" value="legeregels"/>
- <cd:command name="setuplines" value="stelregelsin"/>
- <cd:command name="startnarrower" value="startsmaller"/>
- <cd:command name="stopnarrower" value="stopsmaller"/>
- <cd:command name="setupnarrower" value="stelsmallerin"/>
- <cd:command name="definetabulate" value="definieertabulatie"/>
- <cd:command name="setuptabulate" value="steltabulatiein"/>
- <cd:command name="starttable" value="starttabel"/>
- <cd:command name="stoptable" value="stoptabel"/>
- <cd:command name="starttables" value="starttabellen"/>
- <cd:command name="stoptables" value="stoptabellen"/>
- <cd:command name="setuptables" value="steltabellenin"/>
- <cd:command name="definetabletemplate" value="definieertabelvorm"/>
- <cd:command name="page" value="pagina"/>
- <cd:command name="testcolumn" value="testkolom"/>
- <cd:command name="testpage" value="testpagina"/>
- <cd:command name="couplepage" value="koppelpagina"/>
- <cd:command name="pagetype" value="soortpagina"/>
- <cd:command name="processpage" value="verwerkpagina"/>
- <cd:command name="couplepaper" value="koppelpapier"/>
- <cd:command name="selectpaper" value="selecteerpapier"/>
- <cd:command name="screen" value="scherm"/>
- <cd:command name="definesection" value="definieersectie"/>
- <cd:command name="definesectionblock" value="definieersectieblok"/>
- <cd:command name="setupsectionblock" value="stelsectieblokin"/>
- <cd:command name="setupsection" value="stelsectiein"/>
- <cd:command name="notopandbottomlines" value="geenbovenenonderregels"/>
- <cd:command name="noheaderandfooterlines" value="geenhoofdenvoetregels"/>
- <cd:command name="setuptop" value="stelbovenin"/>
- <cd:command name="setuptoptexts" value="stelboventekstenin"/>
- <cd:command name="setupheader" value="stelhoofdin"/>
- <cd:command name="setupheadertexts" value="stelhoofdtekstenin"/>
- <cd:command name="setuppagenumbering" value="stelpaginanummeringin"/>
- <cd:command name="getnumber" value="haalnummer"/>
- <cd:command name="incrementnumber" value="verhoognummer"/>
- <cd:command name="decrementnumber" value="verlaagnummer"/>
- <cd:command name="resetnumber" value="resetnummer"/>
- <cd:command name="setnumber" value="setnummer"/>
- <cd:command name="setupnumber" value="stelnummerin"/>
- <cd:command name="setupbottom" value="stelonderin"/>
- <cd:command name="setupbottomtexts" value="stelondertekstenin"/>
- <cd:command name="setupfooter" value="stelvoetin"/>
- <cd:command name="setupfootertexts" value="stelvoettekstenin"/>
- <cd:command name="setuppagenumber" value="stelpaginanummerin"/>
- <cd:command name="setupsubpagenumber" value="stelsubpaginanummerin"/>
- <cd:command name="subpagenumber" value="subpaginanummer"/>
- <cd:command name="setuptext" value="steltekstin"/>
- <cd:command name="setuptexttexts" value="stelteksttekstenin"/>
- <cd:command name="settextcontent" value="steltekstinhoudin"/>
- <cd:command name="resettext" value="resettekstinhoud"/>
- <cd:command name="definetext" value="definieertekst"/>
- <cd:command name="pagenumber" value="paginanummer"/>
- <cd:command name="completepagenumber" value="volledigepaginanummer"/>
- <cd:command name="placepagenumber" value="plaatspaginanummer"/>
- <cd:command name="items" value="items"/>
- <cd:command name="setupitems" value="stelitemsin"/>
- <cd:command name="leftaligned" value="regellinks"/>
- <cd:command name="midaligned" value="regelmidden"/>
- <cd:command name="rightaligned" value="regelrechts"/>
- <cd:command name="startcolumns" value="startkolommen"/>
- <cd:command name="stopcolumns" value="stopkolommen"/>
- <cd:command name="setupcolumns" value="stelkolommenin"/>
- <cd:command name="column" value="kolom"/>
- <cd:command name="head" value="kop"/>
- <cd:command name="but" value="but"/>
- <cd:command name="item" value="som"/>
- <cd:command name="nop" value="nop"/>
- <cd:command name="mar" value="mar"/>
- <cd:command name="sym" value="sym"/>
- <cd:command name="txt" value="txt"/>
- <cd:command name="its" value="its"/>
- <cd:command name="ran" value="ran"/>
- <cd:command name="headsym" value="kopsym"/>
- <cd:command name="defineitemgroup" value="definieeritemgroep"/>
- <cd:command name="setupitemgroup" value="stelitemgroepin"/>
- <cd:command name="setupitemgroups" value="stelitemgroepenin"/>
- <cd:command name="definehead" value="definieerkop"/>
- <cd:command name="setuphead" value="stelkopin"/>
- <cd:command name="setupheads" value="stelkoppenin"/>
- <cd:command name="setupheadnumber" value="stelkopnummerin"/>
- <cd:command name="headnumber" value="kopnummer"/>
- <cd:command name="currentheadnumber" value="huidigekopnummer"/>
- <cd:command name="determineheadnumber" value="bepaalkopnummer"/>
- <cd:command name="resetmarking" value="resetmarkering"/>
- <cd:command name="setupmarking" value="stelmarkeringin"/>
- <cd:command name="definemarking" value="definieermarkering"/>
- <cd:command name="nomarking" value="geenmarkering"/>
- <cd:command name="marking" value="markeer"/>
- <cd:command name="decouplemarking" value="ontkoppelmarkering"/>
- <cd:command name="couplemarking" value="koppelmarkering"/>
- <cd:command name="getmarking" value="haalmarkering"/>
- <cd:command name="definelayout" value="definieerlayout"/>
- <cd:command name="setuplayout" value="stellayoutin"/>
- <cd:command name="adaptlayout" value="paslayoutaan"/>
- <cd:command name="placeongrid" value="plaatsopgrid"/>
- <cd:command name="moveongrid" value="verplaatsopgrid"/>
- <cd:command name="showsetups" value="tooninstellingen"/>
- <cd:command name="showframe" value="toonkader"/>
- <cd:command name="showgrid" value="toongrid"/>
- <cd:command name="showlayout" value="toonlayout"/>
- <cd:command name="showprint" value="toonprint"/>
- <cd:command name="showstruts" value="toonstruts"/>
- <cd:command name="definepapersize" value="definieerpapierformaat"/>
- <cd:command name="setuppapersize" value="stelpapierformaatin"/>
- <cd:command name="setuppaper" value="stelpapierin"/>
- <cd:command name="setuparranging" value="stelarrangerenin"/>
- <cd:command name="version" value="versie"/>
- <cd:command name="setupbackgrounds" value="stelachtergrondenin"/>
- <cd:command name="setupalign" value="steluitlijnenin"/>
- <cd:command name="setupwhitespace" value="stelwitruimtein"/>
- <cd:command name="setupinteraction" value="stelinteractiein"/>
- <cd:command name="setupinteractionmenu" value="stelinteractiemenuin"/>
- <cd:command name="defineinteractionmenu" value="definieerinteractiemenu"/>
- <cd:command name="disableinteractionmenu" value="blokkeerinteractiemenu"/>
- <cd:command name="interactionmenu" value="interactiemenu"/>
- <cd:command name="interactionbuttons" value="interactiebuttons"/>
- <cd:command name="interactionbar" value="interactiebalk"/>
- <cd:command name="setupinteractionbar" value="stelinteractiebalkin"/>
- <cd:command name="setupinteractionscreen" value="stelinteractieschermin"/>
- <cd:command name="placebookmarks" value="plaatsbookmarks"/>
- <cd:command name="bookmark" value="bookmark"/>
- <cd:command name="definelogo" value="definieerbeeldmerk"/>
- <cd:command name="placelogos" value="plaatsbeeldmerken"/>
- <cd:command name="definecolor" value="definieerkleur"/>
- <cd:command name="definecolorgroup" value="definieerkleurgroep"/>
- <cd:command name="definepalet" value="definieerpalet"/>
- <cd:command name="graycolor" value="grijskleur"/>
- <cd:command name="color" value="kleur"/>
- <cd:command name="startcolor" value="startkleur"/>
- <cd:command name="stopcolor" value="stopkleur"/>
- <cd:command name="setupcolors" value="stelkleurenin"/>
- <cd:command name="setupcolor" value="stelkleurin"/>
- <cd:command name="setuppalet" value="stelpaletin"/>
- <cd:command name="showcolor" value="toonkleur"/>
- <cd:command name="showcolorgroup" value="toonkleurgroep"/>
- <cd:command name="showpalet" value="toonpalet"/>
- <cd:command name="comparecolorgroup" value="vergelijkkleurgroep"/>
- <cd:command name="comparepalet" value="vergelijkpalet"/>
- <cd:command name="colorvalue" value="kleurwaarde"/>
- <cd:command name="greyvalue" value="grijswaarde"/>
- <cd:command name="startraster" value="startraster"/>
- <cd:command name="stopraster" value="stopraster"/>
- <cd:command name="defineblock" value="definieerblok"/>
- <cd:command name="setupblock" value="stelblokin"/>
- <cd:command name="useblocks" value="gebruikblokken"/>
- <cd:command name="processblocks" value="verwerkblokken"/>
- <cd:command name="keepblocks" value="handhaafblokken"/>
- <cd:command name="selectblocks" value="selecteerblokken"/>
- <cd:command name="hideblocks" value="verbergblokken"/>
- <cd:command name="bypassblocks" value="passeerblokken"/>
- <cd:command name="forceblocks" value="forceerblokken"/>
- <cd:command name="nomoreblocks" value="geenblokkenmeer"/>
- <cd:command name="definelist" value="definieerlijst"/>
- <cd:command name="definecombinedlist" value="definieersamengesteldelijst"/>
- <cd:command name="listsymbol" value="lijstsymbool"/>
- <cd:command name="placelist" value="plaatslijst"/>
- <cd:command name="plaatsruwelijst" value="plaatsruwelijst"/>
- <cd:command name="placecombinedlist" value="plaatssamengesteldelijst"/>
- <cd:command name="writetolist" value="schrijfnaarlijst"/>
- <cd:command name="writebetweenlist" value="schrijftussenlijst"/>
- <cd:command name="immediatetolist" value="directnaarlijst"/>
- <cd:command name="immediatebetweenlist" value="directtussenlijst"/>
- <cd:command name="setuplist" value="stellijstin"/>
- <cd:command name="setupcombinedlist" value="stelsamengesteldelijstin"/>
- <cd:command name="determinelistcharacteristics" value="bepaallijstkenmerken"/>
- <cd:command name="listlength" value="lijstlengte"/>
- <cd:command name="listwidth" value="lijstbreedte"/>
- <cd:command name="listheight" value="lijsthoogte"/>
- <cd:command name="nolist" value="geenlijst"/>
- <cd:command name="definereferencelist" value="definieerreferentielijst"/>
- <cd:command name="placereferencelist" value="plaatsreferentielijst"/>
- <cd:command name="writetoreferencelist" value="schrijfnaarreferentielijst"/>
- <cd:command name="setupreferencelist" value="stelreferentielijstin"/>
- <cd:command name="definefloat" value="definieerplaatsblok"/>
- <cd:command name="setupfloat" value="stelplaatsblokin"/>
- <cd:command name="setupfloats" value="stelplaatsblokkenin"/>
- <cd:command name="splitfloat" value="splitsplaatsblok"/>
- <cd:command name="setupfloatsplitting" value="stelplaatsbloksplitsenin"/>
- <cd:command name="placefloat" value="plaatsplaatsblok"/>
- <cd:command name="movesidefloat" value="verplaatszijblok"/>
- <cd:command name="defineplacement" value="definieerplaats"/>
- <cd:command name="setupplacement" value="stelplaatsin"/>
- <cd:command name="definecombination" value="definieercombinatie"/>
- <cd:command name="startcombination" value="startcombinatie"/>
- <cd:command name="stopcombination" value="stopcombinatie"/>
- <cd:command name="placesidebyside" value="plaatsnaastelkaar"/>
- <cd:command name="placeontopofeachother" value="plaatsonderelkaar"/>
- <cd:command name="setupcaption" value="stelblokkopjein"/>
- <cd:command name="setupcaptions" value="stelblokkopjesin"/>
- <cd:command name="setupcombinations" value="stelcombinatiesin"/>
- <cd:command name="startoverlay" value="startoverlay"/>
- <cd:command name="stopoverlay" value="stopoverlay"/>
- <cd:command name="defineregister" value="definieerregister"/>
- <cd:command name="coupleregister" value="koppelregister"/>
- <cd:command name="setupregister" value="stelregisterin"/>
- <cd:command name="writetoregister" value="schrijfnaarregister"/>
- <cd:command name="completeregister" value="volledigregister"/>
- <cd:command name="placeregister" value="plaatsregister"/>
- <cd:command name="determineregistercharacteristics" value="bepaalregisterkenmerken"/>
- <cd:command name="definesorting" value="definieersorteren"/>
- <cd:command name="definesynonyms" value="definieersynoniemen"/>
- <cd:command name="setupsorting" value="stelsorterenin"/>
- <cd:command name="setupsynonyms" value="stelsynoniemenin"/>
- <cd:command name="startsynchronization" value="startsynchronisatie"/>
- <cd:command name="stopsynchronization" value="stopsynchronisatie"/>
- <cd:command name="setupsynchronizationbar" value="stelsynchronisatiebalkin"/>
- <cd:command name="setupsynchronization" value="stelsynchronisatiein"/>
- <cd:command name="synchronizationbar" value="synchronisatiebalk"/>
- <cd:command name="synchronize" value="synchroniseer"/>
- <cd:command name="useexternaldocument" value="gebruikexterndocument"/>
- <cd:command name="useURL" value="gebruikURL"/>
- <cd:command name="useurl" value="gebruikurl"/>
- <cd:command name="setupurl" value="stelurlin"/>
- <cd:command name="coupledocument" value="koppeldocument"/>
- <cd:command name="setupprograms" value="stelprogrammasin"/>
- <cd:command name="defineprogram" value="definieerprogramma"/>
- <cd:command name="program" value="programma"/>
- <cd:command name="setuppagetransitions" value="stelpaginaovergangenin"/>
- <cd:command name="defineprofile" value="definieerprofiel"/>
- <cd:command name="defineversion" value="definieerversie"/>
- <cd:command name="markversion" value="markeerversie"/>
- <cd:command name="selectversion" value="selecteerversie"/>
- <cd:command name="startprofile" value="startprofiel"/>
- <cd:command name="startversion" value="startversie"/>
- <cd:command name="setupprofiles" value="stelprofielenin"/>
- <cd:command name="setupversions" value="stelversiesin"/>
- <cd:command name="stopprofile" value="stopprofiel"/>
- <cd:command name="stopversion" value="stopversie"/>
- <cd:command name="followprofile" value="volgprofiel"/>
- <cd:command name="followprofileversion" value="volgprofielversie"/>
- <cd:command name="followversion" value="volgversie"/>
- <cd:command name="definedescription" value="doordefinieren"/>
- <cd:command name="definelabel" value="doorlabelen"/>
- <cd:command name="defineenumeration" value="doornummeren"/>
- <cd:command name="defineindenting" value="doorspringen"/>
- <cd:command name="setupdescriptions" value="steldoordefinierenin"/>
- <cd:command name="setupenumerations" value="steldoornummerenin"/>
- <cd:command name="setupindentations" value="steldoorspringenin"/>
- <cd:command name="setuptab" value="steltabin"/>
- <cd:command name="tab" value="tab"/>
- <cd:command name="setupexternalfigures" value="stelexternefigurenin"/>
- <cd:command name="showexternalfigures" value="toonexternefiguren"/>
- <cd:command name="externalfigure" value="externfiguur"/>
- <cd:command name="useexternalfigure" value="gebruikexternfiguur"/>
- <cd:command name="startfigure" value="startfiguur"/>
- <cd:command name="referring" value="refereer"/>
- <cd:command name="remark" value="toelichting"/>
- <cd:command name="colorbar" value="kleurenbalk"/>
- <cd:command name="grid" value="rooster"/>
- <cd:command name="button" value="button"/>
- <cd:command name="menubutton" value="menubutton"/>
- <cd:command name="setupbuttons" value="stelbuttonsin"/>
- <cd:command name="usereferences" value="gebruikreferenties"/>
- <cd:command name="placereferencelist" value="plaatsreferentielijst"/>
- <cd:command name="setupreferencelist" value="stelreferentielijstin"/>
- <cd:command name="setupreferencing" value="stelrefererenin"/>
- <cd:command name="textreference" value="tekstreferentie"/>
- <cd:command name="pagereference" value="paginareferentie"/>
- <cd:command name="reference" value="referentie"/>
- <cd:command name="definereference" value="definieerreferentie"/>
- <cd:command name="definereferenceformat" value="definieerreferentieformaat"/>
- <cd:command name="useJSscripts" value="gebruikJSscripts"/>
- <cd:command name="from" value="uit"/>
- <cd:command name="in" value="in"/>
- <cd:command name="at" value="op"/>
- <cd:command name="about" value="about"/>
- <cd:command name="goto" value="naar"/>
- <cd:command name="atpage" value="oppagina"/>
- <cd:command name="somewhere" value="ergens"/>
- <cd:command name="navigating" value="navigerend"/>
- <cd:command name="ref" value="ref"/>
- <cd:command name="gotobox" value="naarbox"/>
- <cd:command name="gotopage" value="naarpagina"/>
- <cd:command name="placeformula" value="plaatsformule"/>
- <cd:command name="placesubformula" value="plaatssubformule"/>
- <cd:command name="moveformula" value="verplaatsformule"/>
- <cd:command name="setupformulas" value="stelformulesin"/>
- <cd:command name="formulanumber" value="formulenummer"/>
- <cd:command name="subformulanumber" value="subformulenummer"/>
- <cd:command name="leg" value="leg"/>
- <cd:command name="fact" value="geg"/>
- <cd:command name="mathematics" value="wiskunde"/>
- <cd:command name="dimension" value="dimensie"/>
- <cd:command name="nodimension" value="geendimensie"/>
- <cd:command name="startenvironment" value="startomgeving"/>
- <cd:command name="stopenvironment" value="stopomgeving"/>
- <cd:command name="startcomponent" value="startonderdeel"/>
- <cd:command name="stopcomponent" value="stoponderdeel"/>
- <cd:command name="startproduct" value="startprodukt"/>
- <cd:command name="stopproduct" value="stopprodukt"/>
- <cd:command name="startproject" value="startprojekt"/>
- <cd:command name="stopproject" value="stopprojekt"/>
- <cd:command name="setups" value="instellingen"/>
- <cd:command name="project" value="projekt"/>
- <cd:command name="component" value="onderdeel"/>
- <cd:command name="product" value="produkt"/>
- <cd:command name="environment" value="omgeving"/>
- <cd:command name="nomorefiles" value="geenfilesmeer"/>
- <cd:command name="getbuffer" value="haalbuffer"/>
- <cd:command name="setupbuffer" value="stelbufferin"/>
- <cd:command name="typebuffer" value="typebuffer"/>
- <cd:command name="definebuffer" value="definieerbuffer"/>
- <cd:command name="unitmeaning" value="betekenis"/>
- <cd:command name="infull" value="voluit"/>
- <cd:command name="quotation" value="citaat"/>
- <cd:command name="quote" value="citeer"/>
- <cd:command name="startquotation" value="startcitaat"/>
- <cd:command name="stopquotation" value="stopcitaat"/>
- <cd:command name="setupquote" value="stelciterenin"/>
- <cd:command name="define" value="definieer"/>
- <cd:command name="redo" value="herhaal"/>
- <cd:command name="usecommands" value="gebruikcommandos"/>
- <cd:command name="definestartstop" value="definieerstartstop"/>
- <cd:command name="setupstartstop" value="stelstartstopin"/>
- <cd:command name="startlocal" value="startlokaal"/>
- <cd:command name="stoplocal" value="stoplokaal"/>
- <cd:command name="startglobal" value="startglobaal"/>
- <cd:command name="stopglobal" value="stopglobaal"/>
- <cd:command name="macroname" value="naam"/>
- <cd:command name="definemakeup" value="definieeropmaak"/>
- <cd:command name="setupmakeup" value="stelopmaakin"/>
- <cd:command name="startmakeup" value="startopmaak"/>
- <cd:command name="stopmakeup" value="stopopmaak"/>
- <cd:command name="useexternalsoundtrack" value="gebruikexterngeluidsfragment"/>
- <cd:command name="useexternalfile" value="gebruikexternefile"/>
- <cd:command name="useexternalfiles" value="gebruikexternefiles"/>
- <cd:command name="referral" value="kenmerk"/>
- <cd:command name="referraldate" value="kenmerkdatum"/>
- <cd:command name="high" value="hoog"/>
- <cd:command name="lohi" value="laho"/>
- <cd:command name="low" value="laag"/>
- <cd:command name="fraction" value="breuk"/>
- <cd:command name="chem" value="chem"/>
- <cd:command name="startopposite" value="startnaast"/>
- <cd:command name="stopopposite" value="stopnaast"/>
- <cd:command name="setupoppositeplacing" value="stelnaastplaatsenin"/>
- <cd:command name="startpositioning" value="startpositioneren"/>
- <cd:command name="stoppositioning" value="stoppositioneren"/>
- <cd:command name="position" value="positioneer"/>
- <cd:command name="setuppositioning" value="stelpositionerenin"/>
- <cd:command name="rotate" value="roteer"/>
- <cd:command name="setuprotate" value="stelroterenin"/>
- <cd:command name="mirror" value="spiegel"/>
- <cd:command name="scale" value="schaal"/>
- <cd:command name="setupnumbering" value="stelnummerenin"/>
- <cd:command name="reset" value="reset"/>
- <cd:command name="setuppublications" value="stelpublicatiesin"/>
- <cd:command name="publication" value="publicatie"/>
- <cd:command name="definehbox" value="definieerhbox"/>
- <cd:command name="adding" value="toevoegen"/>
- <cd:command name="periods" value="punten"/>
- <cd:command name="setuphyphenmark" value="stelkoppeltekenin"/>
- <cd:command name="setupinterlinespace" value="stelinterliniein"/>
- <cd:command name="setupspacing" value="stelspatieringin"/>
- <cd:command name="setuptolerance" value="steltolerantiein"/>
- <cd:command name="setupsystem" value="stelsysteemin"/>
- <cd:command name="usepath" value="gebruikgebied"/>
- <cd:command name="defineparagraphs" value="definieeralineas"/>
- <cd:command name="setupparagraphs" value="stelalineasin"/>
- <cd:command name="donttest" value="geentest"/>
- <cd:command name="setupcomment" value="stelcommentaarin"/>
- <cd:command name="comment" value="commentaar"/>
- <cd:command name="definefield" value="definieerveld"/>
- <cd:command name="definemainfield" value="definieerhoofdveld"/>
- <cd:command name="definesubfield" value="definieersubveld"/>
- <cd:command name="clonefield" value="kloonveld"/>
- <cd:command name="copyfield" value="copieerveld"/>
- <cd:command name="setupfield" value="stelveldin"/>
- <cd:command name="setupfields" value="stelveldenin"/>
- <cd:command name="field" value="veld"/>
- <cd:command name="fitfield" value="passendveld"/>
- <cd:command name="logfields" value="registreervelden"/>
- <cd:command name="showfields" value="toonvelden"/>
- <cd:command name="tooltip" value="suggestie"/>
- <cd:command name="fillinfield" value="invulveld"/>
- <cd:command name="definefieldstack" value="definieerveldstapel"/>
- <cd:command name="fieldstack" value="veldstapel"/>
- <cd:command name="setupforms" value="stelformulierenin"/>
- <cd:command name="setupclipping" value="stelclipin"/>
- <cd:command name="clip" value="clip"/>
- <cd:command name="placelegend" value="plaatslegenda"/>
- <cd:command name="setuplegend" value="stellegendain"/>
- <cd:command name="setuppagecomment" value="stelpaginacommentaarin"/>
- <cd:command name="setupstrut" value="stelstrutin"/>
- <cd:command name="definerule" value="definieerlijn"/>
- <cd:command name="placerule" value="plaatslijn"/>
- <cd:command name="setuprule" value="stellijnin"/>
- <cd:command name="definetextvariable" value="definieertekstvariabele"/>
- <cd:command name="setuptextvariable" value="steltekstvariabelein"/>
- <cd:command name="settextvariable" value="kentekstvariabeletoe"/>
- <cd:command name="placetextvariable" value="plaatstekstvariabele"/>
- <cd:command name="textvariable" value="tekstvariabele"/>
- <cd:command name="definetextposition" value="definieertekstpositie"/>
- <cd:command name="setuptextposition" value="steltekstpositiein"/>
- <cd:command name="positiontext" value="positioneertekst"/>
- <cd:command name="definerawfont" value="definerawfont"/>
- <cd:command name="switchtorawfont" value="switchtorawfont"/>
- <cd:command name="placeheadtext" value="plaatskoptekst"/>
- <cd:command name="placeheadnumber" value="plaatskopnummer"/>
- <cd:command name="definepagebreak" value="definieerpaginaovergang"/>
- <cd:command name="definecolumnbreak" value="definieerkolomovergang"/>
- <cd:command name="definemathalignment" value="definieerwiskundeuitlijnen"/>
- <cd:command name="setupmathalignment" value="stelwiskundeuitlijnenin"/>
- </cd:commands>
-
- <cd:commands>
- <cd:command name="setupitemgroups" value="stelopsommingenin"/>
- </cd:commands>
-
- <cd:commands>
- <cd:command name="topheight" value="bovenhoogte"/>
- <cd:command name="topdistance" value="bovenafstand"/>
- <cd:command name="headerheight" value="hoofdhoogte"/>
- <cd:command name="headerdistance" value="hoofdafstand"/>
- <cd:command name="textheight" value="teksthoogte"/>
- <cd:command name="footerdistance" value="voetafstand"/>
- <cd:command name="footerheight" value="voethoogte"/>
- <cd:command name="bottomdistance" value="onderafstand"/>
- <cd:command name="bottomheight" value="onderhoogte"/>
- <cd:command name="marginwidth" value="margebreedte"/>
- <cd:command name="leftmarginwidth" value="linkermargebreedte"/>
- <cd:command name="rightmarginwidth" value="rechtermargebreedte"/>
- <cd:command name="margindistance" value="margeafstand"/>
- <cd:command name="leftmargindistance" value="linkermargeafstand"/>
- <cd:command name="rightmargindistance" value="rechtermargeafstand"/>
- <cd:command name="edgewidth" value="randbreedte"/>
- <cd:command name="leftedgewidth" value="linkerrandbreedte"/>
- <cd:command name="rightedgewidth" value="rechterrandbreedte"/>
- <cd:command name="edgedistance" value="randafstand"/>
- <cd:command name="leftedgedistance" value="linkerrandafstand"/>
- <cd:command name="rightedgedistance" value="rechterrandafstand"/>
- <cd:command name="innermarginwidth" value="binnenmargebreedte"/>
- <cd:command name="outermarginwidth" value="buitenmargebreedte"/>
- <cd:command name="innermargindistance" value="binnenmargeafstand"/>
- <cd:command name="outermargindistance" value="buitenmargeafstand"/>
- <cd:command name="inneredgewidth" value="binnenrandbreedte"/>
- <cd:command name="outeredgewidth" value="buitenrandbreedte"/>
- <cd:command name="inneredgedistance" value="binnenrandafstand"/>
- <cd:command name="outeredgedistance" value="buitenrandafstand"/>
- <cd:command name="textwidth" value="tekstbreedte"/>
- <cd:command name="makeupwidth" value="zetbreedte"/>
- <cd:command name="makeupheight" value="zethoogte"/>
- <cd:command name="topspace" value="kopwit"/>
- <cd:command name="bottomspace" value="bodemwit"/>
- <cd:command name="backspace" value="rugwit"/>
- <cd:command name="cutspace" value="snijwit"/>
- <cd:command name="paperwidth" value="papierbreedte"/>
- <cd:command name="paperheight" value="papierhoogte"/>
- <cd:command name="printpaperwidth" value="printpapierbreedte"/>
- <cd:command name="printpaperheight" value="printpapierhoogte"/>
- <cd:command name="pageoffset" value="paginaoffset"/>
- <cd:command name="pagedepth" value="paginadiepte"/>
- <cd:command name="headlevel" value="kopniveau"/>
- <cd:command name="linewidth" value="lijndikte"/>
- <cd:command name="totalnumberofpages" value="totaalaantalpaginas"/>
- <cd:command name="numberofsubpages" value="aantalsubpaginas"/>
- <cd:command name="useXMLfilter" value="gebruikXMLfilter"/>
- <cd:command name="definecolumnset" value="definieerkolomgroep"/>
- <cd:command name="setupcolumnset" value="stelkolomgroepin"/>
- <cd:command name="startcolumnset" value="startkolomgroep"/>
- <cd:command name="stopcolumnset" value="stopkolomgroep"/>
- <cd:command name="setupcolumnsetlines" value="stelkolomgroepregelsin"/>
- <cd:command name="setupcolumnsetstart" value="stelkolomgroepstartin"/>
- <cd:command name="startcolumnmakeup" value="startkolomopmaak"/>
- <cd:command name="stopcolumnmakeup" value="stopkolomopmaak"/>
- <cd:command name="usetypescript" value="gebruiktypescript"/>
- <cd:command name="usetypescriptfile" value="gebruiktypescriptfile"/>
- </cd:commands>
-
- <cd:commands>
- <cd:command name="startdocument" value="startdocument"/>
- <cd:command name="stopdocument" value="stopdocument"/>
- <cd:command name="startoverzicht" value="startoverzicht"/>
- <cd:command name="stopoverzicht" value="stopoverzicht"/>
- <cd:command name="label" value="label"/>
- <cd:command name="labels" value="labels"/>
- <cd:command name="domicile" value="woonplaats"/>
- </cd:commands>
-
-</cd:interface>
+</cd:interface> \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/interface/keys-pe.xml b/Master/texmf-dist/tex/context/interface/keys-pe.xml
new file mode 100644
index 00000000000..0086e5d13a4
--- /dev/null
+++ b/Master/texmf-dist/tex/context/interface/keys-pe.xml
@@ -0,0 +1,1649 @@
+<?xml version='1.0'?>
+
+<cd:interface xmlns:cd='http://www.pragma-ade.com/commands' name='context' language='pe' version='2008.10.21 19:42'>
+
+ <!-- definitions for interface variables for language pe -->
+
+ <cd:variables>
+ <cd:variable name='Addition' value='جمع'/>
+ <cd:variable name='Balloon' value='بادکنک'/>
+ <cd:variable name='Character' value='Character'/>
+ <cd:variable name='Characters' value='Characters'/>
+ <cd:variable name='CloseDocument' value='بستن‌نوشتار'/>
+ <cd:variable name='ExitViewer' value='خروج‌نمایشگر'/>
+ <cd:variable name='FirstPage' value='صفحه‌اول'/>
+ <cd:variable name='FitHeight' value='پرکردن‌ارتفاع'/>
+ <cd:variable name='FitWidth' value='پرکردن‌عرض'/>
+ <cd:variable name='GotoPage' value='برو‌به‌صفحه'/>
+ <cd:variable name='Greek' value='یونانی'/>
+ <cd:variable name='Help' value='کمک'/>
+ <cd:variable name='HideField' value='پنهان‌میدان'/>
+ <cd:variable name='HideLayer' value='پنهان‌لایه'/>
+ <cd:variable name='Key' value='کلید'/>
+ <cd:variable name='LastPage' value='صفحه‌آخر'/>
+ <cd:variable name='LoadForm' value='بارگذاشتن‌فرم'/>
+ <cd:variable name='MONTH' value='ماه'/>
+ <cd:variable name='New' value='جدید'/>
+ <cd:variable name='NextJump' value='پرش‌بعدی'/>
+ <cd:variable name='NextPage' value='صفحه‌بعدی'/>
+ <cd:variable name='Numbers' value='شماره‌ها'/>
+ <cd:variable name='OpenNamedDocument' value='بازکردن‌نوشتار‌ذخیره‌شده'/>
+ <cd:variable name='Paragraph' value='پاراگراف'/>
+ <cd:variable name='PauseMovie' value='ایست‌فیلم'/>
+ <cd:variable name='PauseRendering' value='توقف‌تعبیر'/>
+ <cd:variable name='PauseSound' value='ایست‌صدا'/>
+ <cd:variable name='PreviousJump' value='پرش‌قبلی'/>
+ <cd:variable name='PreviousPage' value='صفحه‌قبلی'/>
+ <cd:variable name='PrintDocument' value='چاپ‌نوشتار'/>
+ <cd:variable name='Query' value='پرسش'/>
+ <cd:variable name='QueryAgain' value='پرسش‌دوباره'/>
+ <cd:variable name='ResetForm' value='دوباره‌نشانی‌فرم'/>
+ <cd:variable name='ResumeMovie' value='ادامه‌فیلم'/>
+ <cd:variable name='ResumeRendering' value='ادامه‌تعبیر'/>
+ <cd:variable name='ResumeSound' value='ادامه‌صدا'/>
+ <cd:variable name='Romannumerals' value='اعداد‌بزرگ‌لاتین'/>
+ <cd:variable name='SaveDocument' value='ذخیره‌نوشتار'/>
+ <cd:variable name='SaveForm' value='ذخیره‌فرم'/>
+ <cd:variable name='SaveNamedDocument' value='ذخیره‌نوشتار‌بانام'/>
+ <cd:variable name='SearchAgain' value='جستجوی‌دوباره'/>
+ <cd:variable name='SearchDocument' value='جستجوی‌نوشتار'/>
+ <cd:variable name='ShowBookmarks' value='نمایش‌چوبخط'/>
+ <cd:variable name='ShowField' value='نمایش‌میدان'/>
+ <cd:variable name='ShowThumbs' value='نمایش‌شصت'/>
+ <cd:variable name='StartMovie' value='شروع‌فیلم'/>
+ <cd:variable name='StartRendering' value='شروع‌تعبیر'/>
+ <cd:variable name='StartSound' value='شروع‌صدا'/>
+ <cd:variable name='StopMovie' value='پایان‌فیلم'/>
+ <cd:variable name='StopRendering' value='پایان‌تعبیر'/>
+ <cd:variable name='StopSound' value='پایان‌صدا'/>
+ <cd:variable name='SubmitForm' value='تسلیم‌فرم'/>
+ <cd:variable name='ToggleLayer' value='تغییرلایه'/>
+ <cd:variable name='ToggleViewer' value='تغییرنمایشگر'/>
+ <cd:variable name='URL' value='URL'/>
+ <cd:variable name='VideLayer' value='VideLayer'/>
+ <cd:variable name='ViewerHelp' value='کمک‌نمایشگر'/>
+ <cd:variable name='WEEKDAY' value='روزهفته'/>
+ <cd:variable name='WORD' value='کلمه'/>
+ <cd:variable name='abbreviation' value='اختصار'/>
+ <cd:variable name='abbreviations' value='اختصارات'/>
+ <cd:variable name='absolute' value='قطعی'/>
+ <cd:variable name='action' value='کنش'/>
+ <cd:variable name='after' value='بعداز'/>
+ <cd:variable name='all' value='همه'/>
+ <cd:variable name='always' value='همواره'/>
+ <cd:variable name='answerarea' value='answerarea'/>
+ <cd:variable name='appendices' value='پیوستها'/>
+ <cd:variable name='appendix' value='پیوست'/>
+ <cd:variable name='april' value='آوریل'/>
+ <cd:variable name='atmargin' value='درحاشیه'/>
+ <cd:variable name='atpage' value='درصفحه'/>
+ <cd:variable name='august' value='آگوست'/>
+ <cd:variable name='auto' value='خودکار'/>
+ <cd:variable name='autointro' value='پیشگفتارخودکار'/>
+ <cd:variable name='back' value='پشت'/>
+ <cd:variable name='background' value='پس‌زمینه'/>
+ <cd:variable name='backmatter' value='پس‌مطلب'/>
+ <cd:variable name='backpart' value='پس‌قسمت'/>
+ <cd:variable name='backspace' value='فضای‌پشت'/>
+ <cd:variable name='backward' value='عقب‌گرد'/>
+ <cd:variable name='before' value='قبل‌از'/>
+ <cd:variable name='big' value='بزرگ'/>
+ <cd:variable name='bigbodyfont' value='قلم‌بدنه‌بزرگ'/>
+ <cd:variable name='bigpreference' value='اولویت‌بزرگ'/>
+ <cd:variable name='blank' value='خالی'/>
+ <cd:variable name='blockquote' value='نقل‌بلوک'/>
+ <cd:variable name='bodymatter' value='مطلب‌بدنه'/>
+ <cd:variable name='bodypart' value='قسمت‌بدنه'/>
+ <cd:variable name='bold' value='مشکی'/>
+ <cd:variable name='bolditalic' value='ایتالیک‌مشکی'/>
+ <cd:variable name='boldslanted' value='خوابیده‌مشکی'/>
+ <cd:variable name='bookmark' value='چوبخط'/>
+ <cd:variable name='both' value='هردو'/>
+ <cd:variable name='bottom' value='پایین'/>
+ <cd:variable name='brief' value='مختصر'/>
+ <cd:variable name='broad' value='گسترده'/>
+ <cd:variable name='buffer' value='بافر'/>
+ <cd:variable name='by' value='بوسیله'/>
+ <cd:variable name='calligraphic' value='خوشنویسی'/>
+ <cd:variable name='cap' value='cap'/>
+ <cd:variable name='capital' value='capital'/>
+ <cd:variable name='center' value='مرکز'/>
+ <cd:variable name='chapter' value='فصل'/>
+ <cd:variable name='character' value='حرف'/>
+ <cd:variable name='characters' value='حرفها'/>
+ <cd:variable name='color' value='رنگ'/>
+ <cd:variable name='column' value='ستون'/>
+ <cd:variable name='columns' value='ستونها'/>
+ <cd:variable name='command' value='فرمان'/>
+ <cd:variable name='commands' value='فرمانها'/>
+ <cd:variable name='comment' value='توضیح'/>
+ <cd:variable name='component' value='مولفه'/>
+ <cd:variable name='concept' value='مفهوم'/>
+ <cd:variable name='content' value='محتوا'/>
+ <cd:variable name='contents' value='محتویات'/>
+ <cd:variable name='continue' value='ادامه'/>
+ <cd:variable name='controls' value='کنترلها'/>
+ <cd:variable name='conversion' value='تبدیل'/>
+ <cd:variable name='current' value='جاری'/>
+ <cd:variable name='cutspace' value='فضای‌برش'/>
+ <cd:variable name='date' value='تاریخ'/>
+ <cd:variable name='day' value='روز'/>
+ <cd:variable name='december' value='دسامبر'/>
+ <cd:variable name='default' value='پیش‌فرض'/>
+ <cd:variable name='depth' value='عمق'/>
+ <cd:variable name='description' value='شرح'/>
+ <cd:variable name='disable' value='ناتوان'/>
+ <cd:variable name='display' value='نمایش'/>
+ <cd:variable name='dot' value='نقطه'/>
+ <cd:variable name='doublesided' value='دورو'/>
+ <cd:variable name='each' value='هر'/>
+ <cd:variable name='edge' value='لبه'/>
+ <cd:variable name='empty' value='تهی'/>
+ <cd:variable name='endnote' value='ته‌نوشت'/>
+ <cd:variable name='enumeration' value='شماره‌بندی'/>
+ <cd:variable name='environment' value='محیط'/>
+ <cd:variable name='even' value='زوج'/>
+ <cd:variable name='external' value='خارجی'/>
+ <cd:variable name='fact' value='fact'/>
+ <cd:variable name='february' value='فوریه'/>
+ <cd:variable name='figure' value='شکل'/>
+ <cd:variable name='figures' value='شکلها'/>
+ <cd:variable name='file' value='پرونده'/>
+ <cd:variable name='final' value='نهایی'/>
+ <cd:variable name='first' value='اولی'/>
+ <cd:variable name='firstcolumn' value='ستون‌اول'/>
+ <cd:variable name='firstpage' value='صفحه‌اول'/>
+ <cd:variable name='firstsubpage' value='زیرصفحه‌اول'/>
+ <cd:variable name='fit' value='پرکردن'/>
+ <cd:variable name='five' value='پنج'/>
+ <cd:variable name='fix' value='ثابت‌کن'/>
+ <cd:variable name='fixed' value='ثابت'/>
+ <cd:variable name='flexible' value='انعطافپذیر'/>
+ <cd:variable name='float' value='شناور'/>
+ <cd:variable name='flushinner' value='پمپ‌داخلی'/>
+ <cd:variable name='flushleft' value='پمپ‌چپ'/>
+ <cd:variable name='flushouter' value='پمپ‌خارجی'/>
+ <cd:variable name='flushright' value='پمپ‌راست'/>
+ <cd:variable name='footer' value='ته‌برگ'/>
+ <cd:variable name='footnote' value='پانوشت'/>
+ <cd:variable name='force' value='اجبار'/>
+ <cd:variable name='foreground' value='پیش‌زمینه'/>
+ <cd:variable name='formeel' value='formeel'/>
+ <cd:variable name='formula' value='فرمول'/>
+ <cd:variable name='formulae' value='فرمولها'/>
+ <cd:variable name='forward' value='به‌جلو'/>
+ <cd:variable name='four' value='چهار'/>
+ <cd:variable name='frame' value='قالب'/>
+ <cd:variable name='framedtext' value='متن‌قالبی'/>
+ <cd:variable name='friday' value='جمعه'/>
+ <cd:variable name='frontmatter' value='پیش‌مطلب'/>
+ <cd:variable name='frontpart' value='پیش‌قسمت'/>
+ <cd:variable name='global' value='سراسری'/>
+ <cd:variable name='graphic' value='گرافیک'/>
+ <cd:variable name='graphics' value='گرافیکها'/>
+ <cd:variable name='gray' value='خاکستری'/>
+ <cd:variable name='greek' value='یونانی'/>
+ <cd:variable name='grid' value='توری'/>
+ <cd:variable name='halfline' value='نیم‌خط'/>
+ <cd:variable name='handwritten' value='دست‌نوشته'/>
+ <cd:variable name='hang' value='بیاویز'/>
+ <cd:variable name='hanging' value='آویزان'/>
+ <cd:variable name='head' value='سر'/>
+ <cd:variable name='header' value='سربرگ'/>
+ <cd:variable name='height' value='ارتفاع'/>
+ <cd:variable name='helptext' value='متن‌کمکی'/>
+ <cd:variable name='hencefore' value='hencefore'/>
+ <cd:variable name='here' value='اینجا'/>
+ <cd:variable name='hereafter' value='ازاین‌به‌بعد'/>
+ <cd:variable name='hidden' value='پنهانی'/>
+ <cd:variable name='hiding' value='پنهان‌کردن'/>
+ <cd:variable name='high' value='بلند'/>
+ <cd:variable name='horizontal' value='افقی'/>
+ <cd:variable name='hyphenated' value='شکسته'/>
+ <cd:variable name='hz' value='hz'/>
+ <cd:variable name='inbetween' value='دربین'/>
+ <cd:variable name='index' value='نمایه'/>
+ <cd:variable name='indices' value='نمایه‌ها'/>
+ <cd:variable name='informeel' value='informeel'/>
+ <cd:variable name='inherit' value='ارث‌بردن'/>
+ <cd:variable name='inleft' value='درون‌چپ'/>
+ <cd:variable name='inmargin' value='درون‌حاشیه'/>
+ <cd:variable name='inner' value='داخلی'/>
+ <cd:variable name='inneredge' value='لبه‌داخلی'/>
+ <cd:variable name='innermargin' value='حاشیه‌داخلی'/>
+ <cd:variable name='inright' value='درون‌راست'/>
+ <cd:variable name='interaction' value='پانل'/>
+ <cd:variable name='interactionmenu' value='منوی‌پانل'/>
+ <cd:variable name='intermezzi' value='میان‌پرده‌ها'/>
+ <cd:variable name='intermezzo' value='میان‌پرده'/>
+ <cd:variable name='intext' value='درون‌متن'/>
+ <cd:variable name='intro' value='پیشگفتار'/>
+ <cd:variable name='italic' value='ایتالیک'/>
+ <cd:variable name='italicbold' value='مشکی‌ایتالیک'/>
+ <cd:variable name='item' value='آیتم'/>
+ <cd:variable name='itemize' value='آیتم‌بندی'/>
+ <cd:variable name='its' value='آیم'/>
+ <cd:variable name='january' value='ژانویه'/>
+ <cd:variable name='joinedup' value='متصل‌بالا'/>
+ <cd:variable name='july' value='ژولای'/>
+ <cd:variable name='june' value='ژوئن'/>
+ <cd:variable name='keep' value='نگهدار'/>
+ <cd:variable name='knockout' value='knockout'/>
+ <cd:variable name='label' value='برچسب'/>
+ <cd:variable name='landscape' value='صفحه‌گسترده'/>
+ <cd:variable name='last' value='آخرین'/>
+ <cd:variable name='lastcolumn' value='آخرین‌ستون'/>
+ <cd:variable name='lastpage' value='صفحه‌آخر'/>
+ <cd:variable name='lastpagenumber' value='شماه‌صفحه‌آخر'/>
+ <cd:variable name='lastsubpage' value='زیرصفحه‌آخر'/>
+ <cd:variable name='layer' value='layer'/>
+ <cd:variable name='left' value='چپ'/>
+ <cd:variable name='leftedge' value='لبه‌چپ'/>
+ <cd:variable name='lefthanging' value='آویزان‌چپ'/>
+ <cd:variable name='leftmargin' value='حاشیه‌چپ'/>
+ <cd:variable name='leftpage' value='صفحه‌چپ'/>
+ <cd:variable name='lefttoright' value='lefttoright'/>
+ <cd:variable name='legend' value='راهنما'/>
+ <cd:variable name='lesshyphenation' value='شکست‌کلمات‌کمتر'/>
+ <cd:variable name='line' value='خط'/>
+ <cd:variable name='linenote' value='خط‌نوشت'/>
+ <cd:variable name='lines' value='خطها'/>
+ <cd:variable name='list' value='لیست'/>
+ <cd:variable name='local' value='موضعی'/>
+ <cd:variable name='localenvironment' value='محیط‌موضعی'/>
+ <cd:variable name='logo' value='آرم'/>
+ <cd:variable name='logos' value='آرمها'/>
+ <cd:variable name='lohi' value='پابا'/>
+ <cd:variable name='loose' value='شل'/>
+ <cd:variable name='low' value='پایین'/>
+ <cd:variable name='ls' value='ls'/>
+ <cd:variable name='makeup' value='آرایش'/>
+ <cd:variable name='mar' value='حاش'/>
+ <cd:variable name='march' value='مارس'/>
+ <cd:variable name='margin' value='حاشیه'/>
+ <cd:variable name='marginedge' value='لبه‌حاشیه'/>
+ <cd:variable name='margintitle' value='عنوان‌حاشیه'/>
+ <cd:variable name='marking' value='نشانه‌گذاری'/>
+ <cd:variable name='mathalignment' value='تنظیم‌ریاضی'/>
+ <cd:variable name='mathcases' value='حالتهای‌ریاضی'/>
+ <cd:variable name='mathmatrix' value='ماتریش‌ریاضی'/>
+ <cd:variable name='max' value='بیشترین'/>
+ <cd:variable name='may' value='مه'/>
+ <cd:variable name='mediaeval' value='mediaeval'/>
+ <cd:variable name='medium' value='متوسط'/>
+ <cd:variable name='middle' value='میان'/>
+ <cd:variable name='min' value='کمترین'/>
+ <cd:variable name='minheight' value='کمترین‌ارتفاع'/>
+ <cd:variable name='minwidth' value='کمترین‌عرض'/>
+ <cd:variable name='mirrored' value='منعکس'/>
+ <cd:variable name='monday' value='دوشنبه'/>
+ <cd:variable name='mono' value='مونو'/>
+ <cd:variable name='month' value='ماه'/>
+ <cd:variable name='morehyphenation' value='شکست‌کلمات‌بیشتر'/>
+ <cd:variable name='name' value='نام'/>
+ <cd:variable name='narrow' value='نازک'/>
+ <cd:variable name='negative' value='منفی'/>
+ <cd:variable name='never' value='هیچگاه'/>
+ <cd:variable name='new' value='جدید'/>
+ <cd:variable name='next' value='بعدی'/>
+ <cd:variable name='nextevenpage' value='صفحه‌زوج‌بعدی'/>
+ <cd:variable name='nextoddpage' value='صفحه‌فردبعدی'/>
+ <cd:variable name='nextpage' value='صفحه‌بعدی'/>
+ <cd:variable name='nextsubpage' value='زیرصفحه‌بعدی'/>
+ <cd:variable name='no' value='نه'/>
+ <cd:variable name='nocheck' value='بدون‌بررسی'/>
+ <cd:variable name='nofit' value='بدون‌پرکردن'/>
+ <cd:variable name='nogrid' value='بدون‌توری'/>
+ <cd:variable name='nohz' value='nohz'/>
+ <cd:variable name='nomarking' value='بدون‌نشانه‌گذاری'/>
+ <cd:variable name='none' value='هیچکدام'/>
+ <cd:variable name='nonumber' value='بدون‌شماره'/>
+ <cd:variable name='normal' value='نرمال'/>
+ <cd:variable name='nospacing' value='بدون‌فضاگذاری'/>
+ <cd:variable name='not' value='بدون'/>
+ <cd:variable name='note' value='note'/>
+ <cd:variable name='nothanging' value='بدون‌آویزان‌کردن'/>
+ <cd:variable name='nothyphenated' value='بدون‌شکست'/>
+ <cd:variable name='november' value='نوامبر'/>
+ <cd:variable name='nowhere' value='هیچ‌حا'/>
+ <cd:variable name='nowhite' value='سفید‌نه'/>
+ <cd:variable name='number' value='شماره'/>
+ <cd:variable name='numbers' value='شماره‌ها'/>
+ <cd:variable name='october' value='اکتبر'/>
+ <cd:variable name='odd' value='فرد'/>
+ <cd:variable name='off' value='خاموش'/>
+ <cd:variable name='offset' value='آفست'/>
+ <cd:variable name='old' value='قدیمی'/>
+ <cd:variable name='on' value='روی'/>
+ <cd:variable name='one' value='یک'/>
+ <cd:variable name='opposite' value='مخالف'/>
+ <cd:variable name='outer' value='خارجی'/>
+ <cd:variable name='outeredge' value='لبه‌خارجی'/>
+ <cd:variable name='outermargin' value='حاشیه‌خارجی'/>
+ <cd:variable name='overlay' value='پوشش'/>
+ <cd:variable name='overprint' value='overprint'/>
+ <cd:variable name='packed' value='فشرده'/>
+ <cd:variable name='page' value='صفحه'/>
+ <cd:variable name='pagecomment' value='توضیح‌صفحه'/>
+ <cd:variable name='pagenumber' value='شماره‌صفحه'/>
+ <cd:variable name='paper' value='برگ'/>
+ <cd:variable name='paragraph' value='پاراگراف'/>
+ <cd:variable name='part' value='قسمت'/>
+ <cd:variable name='positive' value='مثبت'/>
+ <cd:variable name='postponing' value='تاخیر'/>
+ <cd:variable name='postscript' value='پست‌اسکریپت'/>
+ <cd:variable name='preference' value='ترجیح'/>
+ <cd:variable name='preview' value='پیش‌دید'/>
+ <cd:variable name='previous' value='قبلی'/>
+ <cd:variable name='previousevenpage' value='صفحه‌زوج‌قبلی'/>
+ <cd:variable name='previousoddpage' value='صفحه‌فردقبلی'/>
+ <cd:variable name='previouspage' value='صفحه‌قبلی'/>
+ <cd:variable name='previoussubpage' value='زیرصفحه‌قبلی'/>
+ <cd:variable name='printable' value='قابل‌چاپ'/>
+ <cd:variable name='process' value='پردازش'/>
+ <cd:variable name='product' value='محصول'/>
+ <cd:variable name='program' value='برنامه'/>
+ <cd:variable name='project' value='پروژه'/>
+ <cd:variable name='protected' value='حفاظت‌شده'/>
+ <cd:variable name='quadruple' value='quadruple'/>
+ <cd:variable name='quotation' value='نقل‌قول'/>
+ <cd:variable name='quote' value='نقل'/>
+ <cd:variable name='ran' value='برد'/>
+ <cd:variable name='random' value='تصادفی'/>
+ <cd:variable name='readonly' value='تنهاخواندنی'/>
+ <cd:variable name='rectangular' value='چهارگوشه'/>
+ <cd:variable name='referral' value='مراجعه'/>
+ <cd:variable name='register' value='ثبت'/>
+ <cd:variable name='regular' value='منظم'/>
+ <cd:variable name='rekening' value='rekening'/>
+ <cd:variable name='relative' value='نسبی'/>
+ <cd:variable name='repeat' value='تکرار'/>
+ <cd:variable name='required' value='موردنیاز'/>
+ <cd:variable name='reset' value='بازنشانی'/>
+ <cd:variable name='reverse' value='برعکس'/>
+ <cd:variable name='right' value='راست'/>
+ <cd:variable name='rightedge' value='لبه‌راست'/>
+ <cd:variable name='righthanging' value='آویزان‌کردن‌راست'/>
+ <cd:variable name='rightmargin' value='حاشیه‌راست'/>
+ <cd:variable name='rightpage' value='صفحه‌راست'/>
+ <cd:variable name='righttoleft' value='righttoleft'/>
+ <cd:variable name='roman' value='رومن'/>
+ <cd:variable name='romannumerals' value='شماره‌لاتین'/>
+ <cd:variable name='rotate' value='دوران'/>
+ <cd:variable name='rotated' value='دوران‌یافته'/>
+ <cd:variable name='round' value='گرد'/>
+ <cd:variable name='row' value='سطر'/>
+ <cd:variable name='rule' value='خط'/>
+ <cd:variable name='samepage' value='همان‌صفحه'/>
+ <cd:variable name='sans' value='سانز'/>
+ <cd:variable name='sansbold' value='مشکی‌سانز'/>
+ <cd:variable name='sansserif' value='سانزسریف'/>
+ <cd:variable name='saturday' value='شنبه'/>
+ <cd:variable name='screen' value='پرده'/>
+ <cd:variable name='section' value='بخش'/>
+ <cd:variable name='sectionblockenvironment' value='محیط‌بلوک‌بخش'/>
+ <cd:variable name='sectionnumber' value='شماره‌بخش'/>
+ <cd:variable name='see' value='ببینید'/>
+ <cd:variable name='september' value='سپتامبر'/>
+ <cd:variable name='serif' value='سریف'/>
+ <cd:variable name='serried' value='تنگ‌هم'/>
+ <cd:variable name='setups' value='بارگذاریها'/>
+ <cd:variable name='sheet' value='ورقه'/>
+ <cd:variable name='singlesided' value='یک‌رو'/>
+ <cd:variable name='slanted' value='خوابیده'/>
+ <cd:variable name='slantedbold' value='مشکی‌خوابیده'/>
+ <cd:variable name='small' value='کوچک'/>
+ <cd:variable name='smallbodyfont' value='قلم‌بدنه‌کوچک'/>
+ <cd:variable name='smallbold' value='مشکی‌کوچک'/>
+ <cd:variable name='smallbolditalic' value='ایتالیک‌مشکی‌کوچک'/>
+ <cd:variable name='smallboldslanted' value='خوابیده‌مشکی‌کوچک'/>
+ <cd:variable name='smallcaps' value='smallcaps'/>
+ <cd:variable name='smallitalic' value='ایتالیک‌کوچک'/>
+ <cd:variable name='smallitalicbold' value='مشکی‌ایتالیک‌کوچک'/>
+ <cd:variable name='smallnormal' value='نرمال‌کوچک'/>
+ <cd:variable name='smallslanted' value='خوابیده‌کوچک'/>
+ <cd:variable name='smallslantedbold' value='مشکی‌خوابیده‌کوچک'/>
+ <cd:variable name='smalltype' value='تایپ‌کوچک'/>
+ <cd:variable name='somewhere' value='جایی'/>
+ <cd:variable name='sorted' value='مرتب'/>
+ <cd:variable name='space' value='فضا'/>
+ <cd:variable name='spacing' value='فضاگذاری'/>
+ <cd:variable name='speech' value='سخنرانی'/>
+ <cd:variable name='split' value='شکافتن'/>
+ <cd:variable name='spot' value='لکه'/>
+ <cd:variable name='standard' value='استاندارد'/>
+ <cd:variable name='start' value='شروع'/>
+ <cd:variable name='sticker' value='دشنه'/>
+ <cd:variable name='stop' value='پایان'/>
+ <cd:variable name='stopper' value='ایست'/>
+ <cd:variable name='stretch' value='بکش'/>
+ <cd:variable name='strict' value='اکید'/>
+ <cd:variable name='strong' value='محکم'/>
+ <cd:variable name='strut' value='بست'/>
+ <cd:variable name='sub' value='زیر'/>
+ <cd:variable name='subbackward' value='زیرعقب‌گرد'/>
+ <cd:variable name='subformula' value='زیرفرمول'/>
+ <cd:variable name='subforward' value='زیرجلوگرد'/>
+ <cd:variable name='subject' value='موضوع'/>
+ <cd:variable name='subpage' value='زیرصفحه'/>
+ <cd:variable name='subsection' value='زیربخش'/>
+ <cd:variable name='subsubject' value='زیرموضوع'/>
+ <cd:variable name='subsubsection' value='زیرزیربخش'/>
+ <cd:variable name='subsubsubject' value='زیرزیرموضوع'/>
+ <cd:variable name='subsubsubsection' value='زیرزیرزیربخش'/>
+ <cd:variable name='subsubsubsubject' value='زیرزیرزیرموضوع'/>
+ <cd:variable name='subsubsubsubsection' value='زیرزیرزیرزیربخش'/>
+ <cd:variable name='subsubsubsubsubject' value='زیرزیرزیرزیرموضوع'/>
+ <cd:variable name='subsubsubsubsubsection' value='زیرزیرزیرزیرزیربخش'/>
+ <cd:variable name='subsubsubsubsubsubject' value='زیرزیرزیرزیرزیرموضوع'/>
+ <cd:variable name='subsubsubsubsubsubsection' value='زیرزیرزیرزیرزیرزیربخش'/>
+ <cd:variable name='subsubsubsubsubsubsubject' value='زیرزیرزیرزیرزیرزیرموضوع'/>
+ <cd:variable name='subsubsubsubsubsubsubsection' value='زیرزیرزیرزیرزیرزیرزیربخش'/>
+ <cd:variable name='subsubsubsubsubsubsubsubject' value='زیرزیرزیرزیرزیرزیرزیرموضوع'/>
+ <cd:variable name='subsubsubsubsubsubsubsubsection' value='زیرزیرزیرزیرزیرزیرزیرزیربخش'/>
+ <cd:variable name='subsubsubsubsubsubsubsubsubject' value='زیرزیرزیرزیرزیرزیرزیرزیرموضوع'/>
+ <cd:variable name='subsubsubsubsubsubsubsubsubsection' value='زیرزیرزیرزیرزیرزیرزیرزیرزیربخش'/>
+ <cd:variable name='subsubsubsubsubsubsubsubsubsubject' value='زیرزیرزیرزیرزیرزیرزیرزیرزیرموضوع'/>
+ <cd:variable name='sunday' value='یک‌شنبه'/>
+ <cd:variable name='support' value='حمایت'/>
+ <cd:variable name='sym' value='نم'/>
+ <cd:variable name='symbol' value='نماد'/>
+ <cd:variable name='synchronize' value='تطابق'/>
+ <cd:variable name='system' value='سیستم'/>
+ <cd:variable name='table' value='جدول'/>
+ <cd:variable name='tablehead' value='سرجدول'/>
+ <cd:variable name='tables' value='جدولها'/>
+ <cd:variable name='tabletail' value='دنباله‌جدول'/>
+ <cd:variable name='tabulate' value='جدول‌بندی'/>
+ <cd:variable name='tabulatehead' value='سرجدول‌بندی'/>
+ <cd:variable name='tabulatetail' value='دنباله‌جدول‌بندی'/>
+ <cd:variable name='tall' value='دراز'/>
+ <cd:variable name='teletype' value='دورنگاره'/>
+ <cd:variable name='temporary' value='موقتی'/>
+ <cd:variable name='test' value='تست'/>
+ <cd:variable name='text' value='متن'/>
+ <cd:variable name='three' value='سه'/>
+ <cd:variable name='thursday' value='پنج‌شنبه'/>
+ <cd:variable name='title' value='عنوان'/>
+ <cd:variable name='toggle' value='تغییر'/>
+ <cd:variable name='tolerant' value='بردبار'/>
+ <cd:variable name='top' value='بالا'/>
+ <cd:variable name='tuesday' value='سه‌شنبه'/>
+ <cd:variable name='two' value='دو'/>
+ <cd:variable name='txt' value='txt'/>
+ <cd:variable name='type' value='تایپ'/>
+ <cd:variable name='typing' value='تایپ‌کردن'/>
+ <cd:variable name='unavailable' value='غیرموجود'/>
+ <cd:variable name='unit' value='واحد'/>
+ <cd:variable name='units' value='واحدها'/>
+ <cd:variable name='unknown' value='ناشناس'/>
+ <cd:variable name='unpacked' value='غیرفشرده'/>
+ <cd:variable name='url' value='url'/>
+ <cd:variable name='used' value='استفاده‌شده'/>
+ <cd:variable name='value' value='مقدار'/>
+ <cd:variable name='vertical' value='عمودی'/>
+ <cd:variable name='very' value='خیلی'/>
+ <cd:variable name='verystrict' value='خیلی‌سختگیر'/>
+ <cd:variable name='verytolerant' value='خیلی‌بردبار'/>
+ <cd:variable name='weak' value='هفته'/>
+ <cd:variable name='wednesday' value='چهارشنبه'/>
+ <cd:variable name='week' value='هفته'/>
+ <cd:variable name='weekday' value='روزهفته'/>
+ <cd:variable name='white' value='سفید'/>
+ <cd:variable name='wide' value='گسترده'/>
+ <cd:variable name='width' value='عرض'/>
+ <cd:variable name='xml' value='xml'/>
+ <cd:variable name='year' value='سال'/>
+ <cd:variable name='yes' value='بله'/>
+ </cd:variable>
+
+ <!-- definitions for interface constants for language pe -->
+
+ <cd:constants>
+ <cd:constant name='action' value='کنش'/>
+ <cd:constant name='address' value='نشانی'/>
+ <cd:constant name='after' value='بعداز'/>
+ <cd:constant name='afterhead' value='بعدازسر'/>
+ <cd:constant name='afterkey' value='بعدازکلید'/>
+ <cd:constant name='align' value='تنظیم'/>
+ <cd:constant name='aligncharacter' value='حرف‌تنظیم'/>
+ <cd:constant name='alignmentcharacter' value='حرف‌تنظیم‌کردن'/>
+ <cd:constant name='aligntitle' value='عنوان‌تنظیم'/>
+ <cd:constant name='alternative' value='جایگزین'/>
+ <cd:constant name='apa' value='apa'/>
+ <cd:constant name='arrow' value='پیکان'/>
+ <cd:constant name='at' value='در'/>
+ <cd:constant name='author' value='نویسنده'/>
+ <cd:constant name='auto' value='خودکار'/>
+ <cd:constant name='autofile' value='پرونده‌خودکار'/>
+ <cd:constant name='autofocus' value='تمرکز‌خودکار'/>
+ <cd:constant name='autohang' value='آویزان‌خودکار'/>
+ <cd:constant name='autostrut' value='بست‌خودکار'/>
+ <cd:constant name='autowidth' value='عرض‌خودکار'/>
+ <cd:constant name='axis' value='محورها'/>
+ <cd:constant name='background' value='پس‌زمینه'/>
+ <cd:constant name='backgroundcolor' value='رنگ‌پس‌زمینه'/>
+ <cd:constant name='backgroundcorner' value='گوشه‌پس‌زمینه'/>
+ <cd:constant name='backgrounddepth' value='عمق‌پس‌زمینه'/>
+ <cd:constant name='backgroundoffset' value='آفست‌پس‌زمینه'/>
+ <cd:constant name='backgroundradius' value='شعاع‌پس‌زمینه'/>
+ <cd:constant name='backgroundscreen' value='پرده‌پس‌زمینه'/>
+ <cd:constant name='backspace' value='فضای‌پس'/>
+ <cd:constant name='balance' value='تعادل'/>
+ <cd:constant name='before' value='قبل‌از'/>
+ <cd:constant name='beforehead' value='قبل‌ازسر'/>
+ <cd:constant name='bet' value='bet'/>
+ <cd:constant name='big' value='بزرگ'/>
+ <cd:constant name='blank' value='خالی'/>
+ <cd:constant name='blockway' value='راه‌بلوک'/>
+ <cd:constant name='bodyfont' value='قلم‌بدنه'/>
+ <cd:constant name='bookmark' value='چوبخط'/>
+ <cd:constant name='bottom' value='پایین'/>
+ <cd:constant name='bottomafter' value='bottomafter'/>
+ <cd:constant name='bottombefore' value='bottombefore'/>
+ <cd:constant name='bottomdistance' value='فاصله‌پایین'/>
+ <cd:constant name='bottomframe' value='قالب‌پایین'/>
+ <cd:constant name='bottomoffset' value='آفست‌پایین'/>
+ <cd:constant name='bottomspace' value='فضای‌پایین'/>
+ <cd:constant name='bottomstate' value='وضعیت‌پایین'/>
+ <cd:constant name='cache' value='میانگیر'/>
+ <cd:constant name='calculate' value='محاسبه'/>
+ <cd:constant name='ccommand' value='فرمان'/>
+ <cd:constant name='click' value='فشردن'/>
+ <cd:constant name='clickin' value='فشردن‌داخل'/>
+ <cd:constant name='clickout' value='فشردن‌خارج'/>
+ <cd:constant name='clipoffset' value='آفست‌کلیپ'/>
+ <cd:constant name='closeaction' value='بستن‌کنش'/>
+ <cd:constant name='closecommand' value='بستن‌فرمان'/>
+ <cd:constant name='closepageaction' value='بستن‌عمل‌صفحه'/>
+ <cd:constant name='closesymbol' value='بستن‌نماد'/>
+ <cd:constant name='color' value='رنگ'/>
+ <cd:constant name='column' value='ستون'/>
+ <cd:constant name='columndistance' value='فاصله‌ستون'/>
+ <cd:constant name='columns' value='ستونها'/>
+ <cd:constant name='command' value='فرمان'/>
+ <cd:constant name='commandafter' value='فرمان‌بعداز'/>
+ <cd:constant name='commandbefore' value='فرمان‌قبل‌از'/>
+ <cd:constant name='commands' value='فرمانها'/>
+ <cd:constant name='component' value='مولفه'/>
+ <cd:constant name='compoundhyphen' value='compoundhyphen'/>
+ <cd:constant name='compress' value='فشردن'/>
+ <cd:constant name='connector' value='connector'/>
+ <cd:constant name='continue' value='ادامه'/>
+ <cd:constant name='contrastcolor' value='contrastcolor'/>
+ <cd:constant name='controls' value='کنترلها'/>
+ <cd:constant name='conversion' value='تبدیل'/>
+ <cd:constant name='convertfile' value='پرونده‌تبدیل'/>
+ <cd:constant name='corner' value='گوشه'/>
+ <cd:constant name='coupling' value='تزویج'/>
+ <cd:constant name='couplingway' value='روش‌تزویج'/>
+ <cd:constant name='criterium' value='criterium'/>
+ <cd:constant name='current' value='جاری'/>
+ <cd:constant name='cutspace' value='فضای‌برش'/>
+ <cd:constant name='dash' value='دش'/>
+ <cd:constant name='dat' value='dat'/>
+ <cd:constant name='date' value='تاریخ'/>
+ <cd:constant name='deepnumbercommand' value='فرمان‌شماره‌عمیق'/>
+ <cd:constant name='deeptextcommand' value='فرمان‌متن‌عمیق'/>
+ <cd:constant name='default' value='پیش‌فرض'/>
+ <cd:constant name='delay' value='تاخیر'/>
+ <cd:constant name='depth' value='عمق'/>
+ <cd:constant name='depthcorrection' value='تصحیح‌عمق'/>
+ <cd:constant name='direction' value='جهت'/>
+ <cd:constant name='directory' value='پوشه'/>
+ <cd:constant name='display' value='نمایش'/>
+ <cd:constant name='distance' value='فاصله'/>
+ <cd:constant name='dot' value='نقطه'/>
+ <cd:constant name='doublesided' value='دورو'/>
+ <cd:constant name='dummy' value='مصنوعی'/>
+ <cd:constant name='dx' value='dx'/>
+ <cd:constant name='dy' value='dy'/>
+ <cd:constant name='edge' value='لبه'/>
+ <cd:constant name='edgedistance' value='فاصله‌لبه'/>
+ <cd:constant name='empty' value='تهی'/>
+ <cd:constant name='equalheight' value='ارتفاع‌یکسان'/>
+ <cd:constant name='equalwidth' value='عرض‌یکسان'/>
+ <cd:constant name='escape' value='فرار'/>
+ <cd:constant name='evenmargin' value='حاشیه‌زوج'/>
+ <cd:constant name='expansion' value='گسترش'/>
+ <cd:constant name='extras' value='extras'/>
+ <cd:constant name='factor' value='عامل'/>
+ <cd:constant name='fallback' value='عقب‌ریختن'/>
+ <cd:constant name='family' value='خانواده'/>
+ <cd:constant name='fieldbackgroundcolor' value='رنگ‌پس‌زمینه‌میدان'/>
+ <cd:constant name='fieldframecolor' value='رنگ‌قالب‌میدان'/>
+ <cd:constant name='fieldlayer' value='لایه‌میدان'/>
+ <cd:constant name='fieldoffset' value='آفست‌میدان'/>
+ <cd:constant name='file' value='پرونده'/>
+ <cd:constant name='filtercommand' value='filtercommand'/>
+ <cd:constant name='focus' value='تمرکز'/>
+ <cd:constant name='focusin' value='تمرکزدرون'/>
+ <cd:constant name='focusout' value='تمرکزبیرون'/>
+ <cd:constant name='footer' value='ته‌برگ'/>
+ <cd:constant name='footerdistance' value='فاصله‌ته‌برگ'/>
+ <cd:constant name='footerstate' value='وضعیت‌ته‌برگ'/>
+ <cd:constant name='foregroundcolor' value='رنگ‌پیش‌زمینه'/>
+ <cd:constant name='foregroundstyle' value='سبک‌پیش‌زمینه'/>
+ <cd:constant name='format' value='شمایل'/>
+ <cd:constant name='frame' value='قالب'/>
+ <cd:constant name='framecolor' value='رنگ‌قالب'/>
+ <cd:constant name='framecorner' value='گوشه‌قالب'/>
+ <cd:constant name='framedepth' value='عمق‌قالب'/>
+ <cd:constant name='frameoffset' value='آفست‌قالب'/>
+ <cd:constant name='frameradius' value='شعاع‌قالب'/>
+ <cd:constant name='frames' value='قالبها'/>
+ <cd:constant name='from' value='از'/>
+ <cd:constant name='get' value='بگیر'/>
+ <cd:constant name='global' value='سراسری'/>
+ <cd:constant name='grid' value='توری'/>
+ <cd:constant name='hang' value='بیاویز'/>
+ <cd:constant name='headcolor' value='رنگ‌سر'/>
+ <cd:constant name='headcommand' value='فرمان‌سر'/>
+ <cd:constant name='headconversion' value='تبدیل‌سر'/>
+ <cd:constant name='header' value='سربرگ'/>
+ <cd:constant name='headerdistance' value='فاصله‌سربرگ'/>
+ <cd:constant name='headerstate' value='وضعیت‌سربرگ'/>
+ <cd:constant name='headlabel' value='برچسب‌سر'/>
+ <cd:constant name='headnumber' value='شماره‌سر'/>
+ <cd:constant name='headstyle' value='سبک‌سر'/>
+ <cd:constant name='height' value='ارتفاع'/>
+ <cd:constant name='hfactor' value='عامل‌ارتفاع'/>
+ <cd:constant name='hfil' value='پرکردن‌ارتفاع'/>
+ <cd:constant name='hidenumber' value='hidenumber'/>
+ <cd:constant name='hoffset' value='آفست‌ا'/>
+ <cd:constant name='horoffset' value='آفست‌افق'/>
+ <cd:constant name='hyphen' value='شکستن'/>
+ <cd:constant name='icommand' value='icommand'/>
+ <cd:constant name='in' value='درون'/>
+ <cd:constant name='inbetween' value='دربین'/>
+ <cd:constant name='increment' value='افزایش'/>
+ <cd:constant name='incrementnumber' value='شماره‌افزایش'/>
+ <cd:constant name='indenting' value='تورفتگی'/>
+ <cd:constant name='indentnext' value='متن‌تورفته'/>
+ <cd:constant name='indicator' value='اندیکاتور'/>
+ <cd:constant name='inner' value='داخلی'/>
+ <cd:constant name='innermargin' value='حاشیه‌داخلی'/>
+ <cd:constant name='inputfile' value='پرونده‌ورودی'/>
+ <cd:constant name='interaction' value='پانل'/>
+ <cd:constant name='interlinespace' value='فضای‌بین‌خط'/>
+ <cd:constant name='itemalign' value='تنظیم‌آیتم'/>
+ <cd:constant name='items' value='آیتمها'/>
+ <cd:constant name='ken' value='ken'/>
+ <cd:constant name='keyexpansion' value='گسترش‌کلید'/>
+ <cd:constant name='keyword' value='کلید‌واژه'/>
+ <cd:constant name='label' value='برچسب'/>
+ <cd:constant name='left' value='چپ'/>
+ <cd:constant name='leftcolor' value='رنگ‌چپ'/>
+ <cd:constant name='leftcompoundhyphen' value='leftcompoundhyphen'/>
+ <cd:constant name='leftedge' value='لبه‌چپ'/>
+ <cd:constant name='leftedgedistance' value='فاصله‌لبه‌چپ'/>
+ <cd:constant name='leftframe' value='قالب‌چپ'/>
+ <cd:constant name='lefthyphen' value='شکست‌چپ'/>
+ <cd:constant name='leftmargin' value='حاشیه‌چپ'/>
+ <cd:constant name='leftmargindistance' value='فاصله‌حاشیه‌چپ'/>
+ <cd:constant name='leftoffset' value='آفست‌چپ'/>
+ <cd:constant name='leftquotation' value='نقل‌قول‌چپ'/>
+ <cd:constant name='leftquote' value='نقل‌چپ'/>
+ <cd:constant name='leftsentence' value='جمله‌چپ'/>
+ <cd:constant name='leftspeech' value='سخنرانی‌چپ'/>
+ <cd:constant name='leftstyle' value='سبک‌چپ'/>
+ <cd:constant name='leftsubsentence' value='زیرجمله‌چپ'/>
+ <cd:constant name='lefttext' value='متن‌چپ'/>
+ <cd:constant name='leftwidth' value='عرض‌خط'/>
+ <cd:constant name='level' value='مرحله'/>
+ <cd:constant name='levels' value='مرحله‌ها'/>
+ <cd:constant name='limittext' value='مرزمتن'/>
+ <cd:constant name='line' value='خط'/>
+ <cd:constant name='linecorrection' value='تصحیح‌خط'/>
+ <cd:constant name='lines' value='خطها'/>
+ <cd:constant name='list' value='لیست'/>
+ <cd:constant name='listtext' value='متن‌لیست'/>
+ <cd:constant name='local' value='موضعی'/>
+ <cd:constant name='location' value='مکان'/>
+ <cd:constant name='logo' value='آرم'/>
+ <cd:constant name='logos' value='آرمها'/>
+ <cd:constant name='marcolor' value='رنگ‌حاش'/>
+ <cd:constant name='margin' value='حاشیه'/>
+ <cd:constant name='margindistance' value='فاصله‌حاشیه'/>
+ <cd:constant name='marginedge' value='لبه‌حاشیه'/>
+ <cd:constant name='marginedgetext' value='متن‌لبه‌حاشیه'/>
+ <cd:constant name='margintext' value='متن‌حاشیه'/>
+ <cd:constant name='marking' value='نشانه‌گذاری'/>
+ <cd:constant name='marstyle' value='سبک‌حاش'/>
+ <cd:constant name='max' value='بیشترین'/>
+ <cd:constant name='maxheight' value='بیشترین‌ارتفاع'/>
+ <cd:constant name='maxwidth' value='بیشترین‌عرض'/>
+ <cd:constant name='menu' value='منو'/>
+ <cd:constant name='method' value='روش'/>
+ <cd:constant name='middle' value='میان'/>
+ <cd:constant name='middlespeech' value='سخنرانی‌میانی'/>
+ <cd:constant name='middletext' value='متن‌میانی'/>
+ <cd:constant name='midsentence' value='جمله‌میانی'/>
+ <cd:constant name='min' value='کمترین'/>
+ <cd:constant name='mindepth' value='کمترین‌عمق'/>
+ <cd:constant name='minheight' value='کمترین‌ارتفاع'/>
+ <cd:constant name='minwidth' value='کمترین‌عرض'/>
+ <cd:constant name='n' value='n'/>
+ <cd:constant name='name' value='نام'/>
+ <cd:constant name='nbottom' value='nbottom'/>
+ <cd:constant name='nc' value='nc'/>
+ <cd:constant name='next' value='بعدی'/>
+ <cd:constant name='nl' value='nl'/>
+ <cd:constant name='nleft' value='nleft'/>
+ <cd:constant name='nlines' value='nlines'/>
+ <cd:constant name='norm' value='norm'/>
+ <cd:constant name='nr' value='nr'/>
+ <cd:constant name='nright' value='nright'/>
+ <cd:constant name='ntop' value='ntop'/>
+ <cd:constant name='number' value='شماره'/>
+ <cd:constant name='numbercolor' value='رنگ‌شماره'/>
+ <cd:constant name='numbercommand' value='فرمان‌شماره'/>
+ <cd:constant name='numberconversion' value='numberconversion'/>
+ <cd:constant name='numberconversionset' value='numberconversionset'/>
+ <cd:constant name='numberdistance' value='فاصله‌شماره'/>
+ <cd:constant name='numbering' value='شماره‌گذاری'/>
+ <cd:constant name='numberorder' value='numberorder'/>
+ <cd:constant name='numberprefix' value='numberprefix'/>
+ <cd:constant name='numbersegments' value='numbersegments'/>
+ <cd:constant name='numberseparator' value='جداکننده‌شماره'/>
+ <cd:constant name='numberseparatorset' value='numberseparatorset'/>
+ <cd:constant name='numberset' value='numberset'/>
+ <cd:constant name='numberstopper' value='numberstopper'/>
+ <cd:constant name='numberstyle' value='سبک‌شماره'/>
+ <cd:constant name='numberwidth' value='عرض‌شماره'/>
+ <cd:constant name='nx' value='nx'/>
+ <cd:constant name='ny' value='ny'/>
+ <cd:constant name='object' value='شیئ'/>
+ <cd:constant name='obstruction' value='انسداد'/>
+ <cd:constant name='oddmargin' value='حاشیه‌فرد'/>
+ <cd:constant name='offset' value='آفست'/>
+ <cd:constant name='openaction' value='عمل‌باز'/>
+ <cd:constant name='openpageaction' value='عمل‌صفحه‌باز'/>
+ <cd:constant name='option' value='گزینه'/>
+ <cd:constant name='orientation' value='جهت‌دهی'/>
+ <cd:constant name='outermargin' value='حاشیه‌خارجی'/>
+ <cd:constant name='overprint' value='overprint'/>
+ <cd:constant name='ownnumber' value='شماره‌خود'/>
+ <cd:constant name='page' value='صفحه'/>
+ <cd:constant name='pageboundaries' value='مرزهای‌صفحه'/>
+ <cd:constant name='pagecolor' value='رنگ‌صفحه'/>
+ <cd:constant name='pagecommand' value='فرمان‌صفحه'/>
+ <cd:constant name='pageconversion' value='pageconversion'/>
+ <cd:constant name='pageconversionset' value='pageconversionset'/>
+ <cd:constant name='pagenumber' value='شماره‌صفحه'/>
+ <cd:constant name='pageprefix' value='pageprefix'/>
+ <cd:constant name='pageprefixconnector' value='pageprefixconnector'/>
+ <cd:constant name='pageprefixconversion' value='pageprefixconversion'/>
+ <cd:constant name='pageprefixconversionset' value='pageprefixconversionset'/>
+ <cd:constant name='pageprefixsegments' value='pageprefixsegments'/>
+ <cd:constant name='pageprefixseparatorset' value='pageprefixseparatorset'/>
+ <cd:constant name='pageprefixset' value='pageprefixset'/>
+ <cd:constant name='pageprefixstopper' value='pageprefixstopper'/>
+ <cd:constant name='pagesegments' value='pagesegments'/>
+ <cd:constant name='pageseparatorset' value='pageseparatorset'/>
+ <cd:constant name='pageset' value='pageset'/>
+ <cd:constant name='pagestate' value='وضعیت‌صفحه'/>
+ <cd:constant name='pagestopper' value='pagestopper'/>
+ <cd:constant name='pagestyle' value='سبک‌صفحه'/>
+ <cd:constant name='palet' value='لوح'/>
+ <cd:constant name='paper' value='برگ'/>
+ <cd:constant name='paragraph' value='پاراگراف'/>
+ <cd:constant name='place' value='بگذار'/>
+ <cd:constant name='placehead' value='بگذارسر'/>
+ <cd:constant name='placestopper' value='بگذارایست'/>
+ <cd:constant name='position' value='موقعیت'/>
+ <cd:constant name='prefix' value='پیشوند'/>
+ <cd:constant name='prefixconnector' value='prefixconnector'/>
+ <cd:constant name='prefixconversion' value='prefixconversion'/>
+ <cd:constant name='prefixconversionset' value='prefixconversionset'/>
+ <cd:constant name='prefixsegments' value='prefixsegments'/>
+ <cd:constant name='prefixseparatorset' value='prefixseparatorset'/>
+ <cd:constant name='prefixset' value='prefixset'/>
+ <cd:constant name='prefixstopper' value='prefixstopper'/>
+ <cd:constant name='preset' value='preset'/>
+ <cd:constant name='preview' value='پیش‌دید'/>
+ <cd:constant name='previous' value='قبلی'/>
+ <cd:constant name='previousnumber' value='شماره‌قبلی'/>
+ <cd:constant name='process' value='پردازش'/>
+ <cd:constant name='radius' value='شعاع'/>
+ <cd:constant name='random' value='تصادفی'/>
+ <cd:constant name='reduction' value='کاهش'/>
+ <cd:constant name='ref' value='رج'/>
+ <cd:constant name='reference' value='مرجع'/>
+ <cd:constant name='referenceprefix' value='referenceprefix'/>
+ <cd:constant name='referencing' value='مراجعه'/>
+ <cd:constant name='regionin' value='ناحیه‌درون'/>
+ <cd:constant name='regionout' value='ناحیه‌بیرون'/>
+ <cd:constant name='repeat' value='تکرار'/>
+ <cd:constant name='reset' value='بازنشانی'/>
+ <cd:constant name='resetnumber' value='بازنشانی‌شماره'/>
+ <cd:constant name='resolution' value='کیفیت'/>
+ <cd:constant name='right' value='راست'/>
+ <cd:constant name='rightcolor' value='رنگ‌راست'/>
+ <cd:constant name='rightcompoundhyphen' value='rightcompoundhyphen'/>
+ <cd:constant name='rightedge' value='لبه‌راست'/>
+ <cd:constant name='rightedgedistance' value='فاصله‌لبه‌راست'/>
+ <cd:constant name='rightframe' value='قالب‌راست'/>
+ <cd:constant name='righthyphen' value='righthyphen'/>
+ <cd:constant name='rightmargin' value='حاشیه‌راست'/>
+ <cd:constant name='rightmargindistance' value='فاصله‌حاشیه‌راست'/>
+ <cd:constant name='rightoffset' value='آفست‌راست'/>
+ <cd:constant name='rightquotation' value='نقل‌قول‌راست'/>
+ <cd:constant name='rightquote' value='نقل‌راست'/>
+ <cd:constant name='rightsentence' value='جمله‌راست'/>
+ <cd:constant name='rightspeech' value='سخنرانی‌راست'/>
+ <cd:constant name='rightstyle' value='سبک‌راست'/>
+ <cd:constant name='rightsubsentence' value='زیرجمله‌راست'/>
+ <cd:constant name='righttext' value='متن‌راست'/>
+ <cd:constant name='rightwidth' value='عرض‌راست'/>
+ <cd:constant name='rotation' value='دوران'/>
+ <cd:constant name='rule' value='خط'/>
+ <cd:constant name='rulecolor' value='رنگ‌خط'/>
+ <cd:constant name='rulethickness' value='ضخامت‌خط'/>
+ <cd:constant name='samepage' value='همان‌صفحه'/>
+ <cd:constant name='sample' value='نمونه'/>
+ <cd:constant name='saveinlist' value='saveinlist'/>
+ <cd:constant name='scale' value='مقیاس'/>
+ <cd:constant name='scope' value='طرح'/>
+ <cd:constant name='screen' value='پرده'/>
+ <cd:constant name='section' value='بخش'/>
+ <cd:constant name='sectionconversion' value='sectionconversion'/>
+ <cd:constant name='sectionconversionset' value='sectionconversionset'/>
+ <cd:constant name='sectionnumber' value='شماره‌بخش'/>
+ <cd:constant name='sectionresetset' value='sectionresetset'/>
+ <cd:constant name='sectionsegments' value='sectionsegments'/>
+ <cd:constant name='sectionseparatorset' value='sectionseparatorset'/>
+ <cd:constant name='sectionset' value='sectionset'/>
+ <cd:constant name='sectionstopper' value='sectionstopper'/>
+ <cd:constant name='separator' value='جداکننده'/>
+ <cd:constant name='set' value='قراربده'/>
+ <cd:constant name='setups' value='بارگذاریها'/>
+ <cd:constant name='side' value='کنار'/>
+ <cd:constant name='sidealign' value='تنظیم‌کنار'/>
+ <cd:constant name='sidemethod' value='روش‌کنار'/>
+ <cd:constant name='sidespaceafter' value='فضای‌کناری‌بعد'/>
+ <cd:constant name='sidespacebefore' value='فضای‌کناری‌قبل'/>
+ <cd:constant name='sign' value='علامت'/>
+ <cd:constant name='size' value='اندازه'/>
+ <cd:constant name='small' value='کوچک'/>
+ <cd:constant name='sorttype' value='ترتیب‌تایپ'/>
+ <cd:constant name='source' value='منبع'/>
+ <cd:constant name='space' value='فضا'/>
+ <cd:constant name='spaceafter' value='فضا‌بعداز'/>
+ <cd:constant name='spacebefore' value='فضا‌قبل‌از'/>
+ <cd:constant name='spaceinbetween' value='فضا‌دربین'/>
+ <cd:constant name='spacing' value='فضاگذاری'/>
+ <cd:constant name='split' value='شکافتن'/>
+ <cd:constant name='splitcolor' value='شکافتن‌رنگ'/>
+ <cd:constant name='splitmethod' value='روش‌شکافتن'/>
+ <cd:constant name='splitoffset' value='شکافتن‌آفست'/>
+ <cd:constant name='spot' value='لکه'/>
+ <cd:constant name='stack' value='توده'/>
+ <cd:constant name='start' value='شروع'/>
+ <cd:constant name='state' value='وضعیت'/>
+ <cd:constant name='step' value='گام'/>
+ <cd:constant name='stop' value='پایان'/>
+ <cd:constant name='stopper' value='ایست'/>
+ <cd:constant name='stretch' value='کشیدن'/>
+ <cd:constant name='strut' value='بست'/>
+ <cd:constant name='style' value='سبک'/>
+ <cd:constant name='sub' value='زیر'/>
+ <cd:constant name='subtitle' value='زیرعنوان'/>
+ <cd:constant name='suffix' value='پسوند'/>
+ <cd:constant name='sx' value='sx'/>
+ <cd:constant name='sy' value='sy'/>
+ <cd:constant name='symalign' value='تنظیم‌نماد'/>
+ <cd:constant name='symbol' value='نماد'/>
+ <cd:constant name='symbolset' value='مجموعه‌نماد'/>
+ <cd:constant name='symcolor' value='رنگ‌نماد'/>
+ <cd:constant name='symstyle' value='سبک‌نماد'/>
+ <cd:constant name='synonym' value='مترادف'/>
+ <cd:constant name='synonymcolor' value='رنگ‌مترادف'/>
+ <cd:constant name='synonymcommand' value='synonymcommand'/>
+ <cd:constant name='synonymstyle' value='سبک‌مترادف'/>
+ <cd:constant name='tab' value='تب'/>
+ <cd:constant name='text' value='متن'/>
+ <cd:constant name='textcolor' value='رنگ‌متن'/>
+ <cd:constant name='textcommand' value='فرمان‌متن'/>
+ <cd:constant name='textdistance' value='فاصله‌متن'/>
+ <cd:constant name='textlayer' value='لایه‌متن'/>
+ <cd:constant name='textmargin' value='حاشیه‌متن'/>
+ <cd:constant name='textmethod' value='روش‌متن'/>
+ <cd:constant name='textseparator' value='جداکننده‌متن'/>
+ <cd:constant name='textsize' value='اندازه‌متن'/>
+ <cd:constant name='textstate' value='وضعیت‌متن'/>
+ <cd:constant name='textstyle' value='سبک‌متن'/>
+ <cd:constant name='textwidth' value='عرض‌متن'/>
+ <cd:constant name='title' value='عنوان'/>
+ <cd:constant name='titlecolor' value='رنگ‌عنوان'/>
+ <cd:constant name='titlecommand' value='فرمان‌عنوان'/>
+ <cd:constant name='titledistance' value='فاصله‌عنوان'/>
+ <cd:constant name='titleleft' value='عنوان‌چپ'/>
+ <cd:constant name='titleright' value='عنوان‌راست'/>
+ <cd:constant name='titlestyle' value='سبک‌عنوان'/>
+ <cd:constant name='to' value='به'/>
+ <cd:constant name='tolerance' value='بردباری'/>
+ <cd:constant name='top' value='بالا'/>
+ <cd:constant name='topdistance' value='فاصله‌بالا'/>
+ <cd:constant name='topframe' value='قالب‌راست'/>
+ <cd:constant name='topoffset' value='آفست‌بالا'/>
+ <cd:constant name='topspace' value='فضای‌بالا'/>
+ <cd:constant name='topstate' value='وضعیت‌بالا'/>
+ <cd:constant name='type' value='تایپ'/>
+ <cd:constant name='unit' value='واحد'/>
+ <cd:constant name='unknownreference' value='مرجع‌ناشناس'/>
+ <cd:constant name='urlalternative' value='urlalternative'/>
+ <cd:constant name='urlspace' value='urlspace'/>
+ <cd:constant name='validate' value='تاییداعتبار'/>
+ <cd:constant name='vcommand' value='vcommand'/>
+ <cd:constant name='veroffset' value='آفست‌عم'/>
+ <cd:constant name='vfil' value='vfil'/>
+ <cd:constant name='voffset' value='آفست‌ع'/>
+ <cd:constant name='way' value='راه'/>
+ <cd:constant name='wfactor' value='wfactor'/>
+ <cd:constant name='white' value='سفید'/>
+ <cd:constant name='width' value='عرض'/>
+ <cd:constant name='xfactor' value='فاکتورایکس'/>
+ <cd:constant name='xmax' value='xmax'/>
+ <cd:constant name='xoffset' value='آفست‌ایکس'/>
+ <cd:constant name='xscale' value='مقیاس‌ایکس'/>
+ <cd:constant name='xstep' value='گام‌ایکس'/>
+ <cd:constant name='yfactor' value='فاکتوروای'/>
+ <cd:constant name='ymax' value='ymax'/>
+ <cd:constant name='yoffset' value='آفست‌وای'/>
+ <cd:constant name='yscale' value='مقیاس‌وای'/>
+ <cd:constant name='ystep' value='گام‌وای'/>
+ </cd:constant>
+
+ <!-- definitions for interface elements for language pe -->
+
+ <cd:elements>
+ <cd:element name='answerlines' value='answerlines'/>
+ <cd:element name='answerspace' value='answerspace'/>
+ <cd:element name='begin' value='عنصرها'/>
+ <cd:element name='complete' value='کامل'/>
+ <cd:element name='coupled' value='مزدوج'/>
+ <cd:element name='currentlocal' value='موضعی‌جاری'/>
+ <cd:element name='emptyone' value='یک‌خالی'/>
+ <cd:element name='emptytwo' value='دوخالی'/>
+ <cd:element name='end' value='انتها'/>
+ <cd:element name='endsetup' value='انتهای‌بارگذاری'/>
+ <cd:element name='get' value='بگیر'/>
+ <cd:element name='increment' value='افزایش'/>
+ <cd:element name='list' value='لیست'/>
+ <cd:element name='listof' value='لیست‌از'/>
+ <cd:element name='load' value='بارگذاشتن'/>
+ <cd:element name='local' value='موضعی'/>
+ <cd:element name='makeup' value='آرایش'/>
+ <cd:element name='next' value='بعدی'/>
+ <cd:element name='place' value='مکان'/>
+ <cd:element name='previous' value='قبلی'/>
+ <cd:element name='previouslocal' value='موضع‌قبلی'/>
+ <cd:element name='reserve' value='رزرو'/>
+ <cd:element name='see' value='ببینید'/>
+ <cd:element name='setup' value='بارگذاری'/>
+ <cd:element name='start' value='شروع'/>
+ <cd:element name='stop' value='پایان'/>
+ <cd:element name='text' value='متن'/>
+ <cd:element name='type' value='تایپ'/>
+ </cd:element>
+
+ <!-- definitions for interface commands for language pe -->
+
+ <cd:commands>
+ <cd:command name='CAPPED' value='CAP'/>
+ <cd:command name='Character' value='Character'/>
+ <cd:command name='Characters' value='Characters'/>
+ <cd:command name='LABELTEXT' value='LABELTEXT'/>
+ <cd:command name='MONTH' value='MONTH'/>
+ <cd:command name='Numbers' value='Numbers'/>
+ <cd:command name='Romannumerals' value='Romannumerals'/>
+ <cd:command name='SmallCapped' value='Cap'/>
+ <cd:command name='SmallCaps' value='Caps'/>
+ <cd:command name='WEEKDAY' value='WEEKDAY'/>
+ <cd:command name='WORD' value='WORD'/>
+ <cd:command name='WORDS' value='WORDS'/>
+ <cd:command name='Word' value='Word'/>
+ <cd:command name='Words' value='Words'/>
+ <cd:command name='about' value='درمورد'/>
+ <cd:command name='adaptlayout' value='تنظیم‌طرح‌بندی'/>
+ <cd:command name='arg' value='افزودن'/>
+ <cd:command name='at' value='در'/>
+ <cd:command name='atleftmargin' value='درحاشیه‌چپ'/>
+ <cd:command name='atpage' value='درصفحه'/>
+ <cd:command name='atrightmargin' value='درحاشیه‌راست'/>
+ <cd:command name='background' value='پس‌زمینه'/>
+ <cd:command name='backspace' value='فاصله‌پشت'/>
+ <cd:command name='blackrule' value='خط‌سیاه'/>
+ <cd:command name='blackrules' value='خطهای‌سیاه'/>
+ <cd:command name='blank' value='خالی'/>
+ <cd:command name='bookmark' value='چوبخط'/>
+ <cd:command name='bottomdistance' value='فاصله‌پایین'/>
+ <cd:command name='bottomheight' value='ارتفاع‌پایین'/>
+ <cd:command name='bottomspace' value='فضای‌پایین'/>
+ <cd:command name='but' value='اما'/>
+ <cd:command name='button' value='دکمه'/>
+ <cd:command name='bypassblocks' value='عبوربلوکها'/>
+ <cd:command name='character' value='حرف'/>
+ <cd:command name='characters' value='حرفها'/>
+ <cd:command name='chem' value='chem'/>
+ <cd:command name='clip' value='گیره'/>
+ <cd:command name='clonefield' value='میدان‌شبیه‌سازی'/>
+ <cd:command name='color' value='رنگ'/>
+ <cd:command name='colorbar' value='میله‌رنگ'/>
+ <cd:command name='colorvalue' value='مقداررنگ'/>
+ <cd:command name='column' value='ستون'/>
+ <cd:command name='comment' value='توضیح'/>
+ <cd:command name='comparecolorgroup' value='مقایسه‌گروه‌رنگ'/>
+ <cd:command name='comparepalet' value='لوح‌مقایسه'/>
+ <cd:command name='completepagenumber' value='شماره‌صفحه‌کامل'/>
+ <cd:command name='completeregister' value='ثبت‌کامل'/>
+ <cd:command name='component' value='مولفه'/>
+ <cd:command name='convertnumber' value='شماره‌مبدل'/>
+ <cd:command name='copyfield' value='میدان‌کپی'/>
+ <cd:command name='correctwhitespace' value='فضای‌سفیدصحیح'/>
+ <cd:command name='coupledocument' value='نوشتارزوج'/>
+ <cd:command name='couplemarking' value='نشانه‌گذاری‌زوج'/>
+ <cd:command name='couplepage' value='صفحه‌زوج'/>
+ <cd:command name='couplepaper' value='کاغذزوج'/>
+ <cd:command name='coupleregister' value='ثبت‌زوج'/>
+ <cd:command name='crlf' value='crlf'/>
+ <cd:command name='currentdate' value='تاریخ‌جاری'/>
+ <cd:command name='currentheadnumber' value='شماره‌سرجاری'/>
+ <cd:command name='cutspace' value='فضای‌برش'/>
+ <cd:command name='date' value='تاریخ'/>
+ <cd:command name='decouplemarking' value='جداسازی‌نشانه‌گذاری'/>
+ <cd:command name='decrementnumber' value='شماره‌کاهش'/>
+ <cd:command name='define' value='تعریف'/>
+ <cd:command name='defineaccent' value='تعریف‌لهجه'/>
+ <cd:command name='defineblank' value='تعریف‌خالی'/>
+ <cd:command name='defineblock' value='تعریف‌بلوک'/>
+ <cd:command name='definebodyfont' value='تعریف‌قلم‌متن'/>
+ <cd:command name='definebodyfontenvironment' value='تعریف‌محیط‌قلم‌بدنه'/>
+ <cd:command name='definebuffer' value='تعریف‌بافر'/>
+ <cd:command name='definecharacter' value='تعریف‌حرف'/>
+ <cd:command name='definecolor' value='تعریف‌رنگ'/>
+ <cd:command name='definecolorgroup' value='تعریف‌گروه‌رنگ'/>
+ <cd:command name='definecolumnbreak' value='تعریف‌شکستن‌ستون'/>
+ <cd:command name='definecolumnset' value='تعریف‌مجموعه‌ستون'/>
+ <cd:command name='definecombination' value='تعریف‌ترکیب'/>
+ <cd:command name='definecombinedlist' value='تعریف‌لیست‌ترکیبی'/>
+ <cd:command name='definecommand' value='تعریف‌فرمان'/>
+ <cd:command name='defineconversion' value='تعریف‌تبدیل'/>
+ <cd:command name='definedescription' value='تعریف‌شرح'/>
+ <cd:command name='defineenumeration' value='تعریف‌شماره‌بندی'/>
+ <cd:command name='definefield' value='تعریف‌میدان'/>
+ <cd:command name='definefieldstack' value='تعریف‌توده‌میدان'/>
+ <cd:command name='definefiguresymbol' value='تعریف‌نمادشکل'/>
+ <cd:command name='definefloat' value='تعریف‌شناور'/>
+ <cd:command name='definefont' value='تعریف‌قلم'/>
+ <cd:command name='definefontstyle' value='تعریف‌سبک‌قلم'/>
+ <cd:command name='definefontsynonym' value='تعریف‌مترادف‌قلم'/>
+ <cd:command name='defineframed' value='تعریف‌قالبی'/>
+ <cd:command name='defineframedtext' value='تعریف‌متن‌قالبی'/>
+ <cd:command name='definehbox' value='تعریف‌جعبه‌‌افقی'/>
+ <cd:command name='definehead' value='تعریف‌سر'/>
+ <cd:command name='defineindenting' value='تعریف‌تورفتگی'/>
+ <cd:command name='defineinmargin' value='تعریف‌درون‌حاشیه'/>
+ <cd:command name='defineinteractionmenu' value='تعریف‌منوی‌پانل'/>
+ <cd:command name='defineitemgroup' value='تعریف‌گروه‌آیتم'/>
+ <cd:command name='definelabel' value='تعریف‌برچسب'/>
+ <cd:command name='definelayer' value='تعریف‌لایه'/>
+ <cd:command name='definelayout' value='تعریف‌طرح‌بندی'/>
+ <cd:command name='definelist' value='تعریف‌لیست'/>
+ <cd:command name='definelogo' value='تعریف‌آرم'/>
+ <cd:command name='definemainfield' value='تعریف‌میدان‌اصلی'/>
+ <cd:command name='definemakeup' value='تعریف‌آرایش'/>
+ <cd:command name='definemarking' value='تعریف‌نشانه‌گذاری'/>
+ <cd:command name='definemathalignment' value='تعریف‌تنظیم‌ریاضی'/>
+ <cd:command name='defineoutput' value='تعریف‌خروجی'/>
+ <cd:command name='defineoverlay' value='تعریف‌پوشش'/>
+ <cd:command name='definepagebreak' value='تعریف‌شکست‌صفحه'/>
+ <cd:command name='definepalet' value='تعریف‌لوح'/>
+ <cd:command name='definepapersize' value='تعریف‌اندازه‌برگ'/>
+ <cd:command name='defineparagraphs' value='تعریف‌پاراگرافها'/>
+ <cd:command name='defineplacement' value='تعریف‌جانشانی'/>
+ <cd:command name='defineprofile' value='تعریف‌پروفایل'/>
+ <cd:command name='defineprogram' value='تعریف‌برنامه'/>
+ <cd:command name='definerawfont' value='تعریف‌قلم‌خام'/>
+ <cd:command name='definereference' value='تعریف‌مرجع'/>
+ <cd:command name='definereferenceformat' value='تعریف‌شمایل‌مرجع'/>
+ <cd:command name='definereferencelist' value='تعریف‌لیست‌مرجع'/>
+ <cd:command name='defineregister' value='تعریف‌ثبت'/>
+ <cd:command name='definerule' value='تعریف‌خط‌حائل'/>
+ <cd:command name='definesection' value='تعریف‌بخش'/>
+ <cd:command name='definesectionblock' value='تعریف‌بلوک‌بخش'/>
+ <cd:command name='definesorting' value='تعریف‌ترتیب'/>
+ <cd:command name='definestartstop' value='تعریف‌شروع‌پایان'/>
+ <cd:command name='definestyle' value='تعریف‌سبک'/>
+ <cd:command name='definesubfield' value='تعریف‌زیرمیدان'/>
+ <cd:command name='definesymbol' value='تعریف‌نماد'/>
+ <cd:command name='definesynonyms' value='تعریف‌مترادفها'/>
+ <cd:command name='definetabletemplate' value='تعریف‌الگوی‌جدول'/>
+ <cd:command name='definetabulate' value='تعریف‌جدول‌بندی'/>
+ <cd:command name='definetext' value='تعریف‌متن'/>
+ <cd:command name='definetextposition' value='تعریف‌مکان‌متن'/>
+ <cd:command name='definetextvariable' value='تعریف‌متغیرمتن'/>
+ <cd:command name='definetype' value='تعریف‌تایپ'/>
+ <cd:command name='definetyping' value='تعریف‌تایپ‌کردن'/>
+ <cd:command name='defineversion' value='تعریف‌نسخه'/>
+ <cd:command name='determineheadnumber' value='تعیین‌شماره‌سر'/>
+ <cd:command name='determinelistcharacteristics' value='تعیین‌مشخصات‌لیست'/>
+ <cd:command name='determineregistercharacteristics' value='تعیین‌مشخصات‌ثبت'/>
+ <cd:command name='dimension' value='بعد'/>
+ <cd:command name='disableinteractionmenu' value='ازکارانداختن‌منوی‌پانل'/>
+ <cd:command name='domicile' value='مسکن'/>
+ <cd:command name='donttest' value='امتحان‌نکن'/>
+ <cd:command name='edgedistance' value='فاصله‌لبه'/>
+ <cd:command name='edgewidth' value='عرض‌لبه'/>
+ <cd:command name='emptylines' value='خطها‌خالی'/>
+ <cd:command name='environment' value='محیط'/>
+ <cd:command name='externalfigure' value='شکل‌خارجی'/>
+ <cd:command name='fact' value='حقیقت'/>
+ <cd:command name='field' value='میدان'/>
+ <cd:command name='fieldstack' value='میدان‌پشته'/>
+ <cd:command name='fillinfield' value='درج‌درمیدان'/>
+ <cd:command name='fillinline' value='درج‌درخط'/>
+ <cd:command name='fillinrules' value='درج‌درخطها'/>
+ <cd:command name='fillintext' value='درج‌درمتن'/>
+ <cd:command name='fitfield' value='پرکردن‌میدان'/>
+ <cd:command name='fixedspace' value='فضای‌ثابت'/>
+ <cd:command name='fixedspaces' value='فضاهای‌ثابت'/>
+ <cd:command name='followprofile' value='پیروی‌پروفایل'/>
+ <cd:command name='followprofileversion' value='پیروی‌نسخه‌پروفایل'/>
+ <cd:command name='followversion' value='پیروی‌نسخه'/>
+ <cd:command name='footerdistance' value='فاصله‌ته‌برگ'/>
+ <cd:command name='footerheight' value='ارتفاع‌ته‌برگ'/>
+ <cd:command name='footnote' value='پانوشت'/>
+ <cd:command name='footnotetext' value='متن‌پانوشت'/>
+ <cd:command name='forceblocks' value='اجباربلوکها'/>
+ <cd:command name='formulanumber' value='شماره‌فرمول'/>
+ <cd:command name='fraction' value='کسر'/>
+ <cd:command name='framed' value='قالبی'/>
+ <cd:command name='from' value='از'/>
+ <cd:command name='getbuffer' value='دریافت‌بافر'/>
+ <cd:command name='getmarking' value='دریافت‌نشانه'/>
+ <cd:command name='getnumber' value='دریافت‌شماره'/>
+ <cd:command name='godown' value='بروپایین'/>
+ <cd:command name='goto' value='بروبه'/>
+ <cd:command name='gotobox' value='بروبه‌جعبه'/>
+ <cd:command name='gotopage' value='بروبه‌صفحه'/>
+ <cd:command name='graycolor' value='رنگ‌خاکستری'/>
+ <cd:command name='greyvalue' value='مقدارخاکستری'/>
+ <cd:command name='grid' value='توری'/>
+ <cd:command name='hairline' value='خط‌مو'/>
+ <cd:command name='head' value='سر'/>
+ <cd:command name='headerdistance' value='فاصله‌سربرگ'/>
+ <cd:command name='headerheight' value='ارتفاع‌سربرگ'/>
+ <cd:command name='headlevel' value='مرحله‌سر'/>
+ <cd:command name='headnumber' value='شماره‌سر'/>
+ <cd:command name='headsym' value='نمادسر'/>
+ <cd:command name='headtext' value='متن‌سر'/>
+ <cd:command name='hideblocks' value='بلوکها‌پنهان'/>
+ <cd:command name='high' value='بلند'/>
+ <cd:command name='hl' value='خ‌ا'/>
+ <cd:command name='immediatebetweenlist' value='فوری‌بین‌لیست'/>
+ <cd:command name='immediatetolist' value='فوری‌به‌لیست'/>
+ <cd:command name='in' value='درون'/>
+ <cd:command name='incrementnumber' value='شماره‌افزایش'/>
+ <cd:command name='indenting' value='تورفتگی'/>
+ <cd:command name='inframed' value='درقالبی'/>
+ <cd:command name='infull' value='درپر'/>
+ <cd:command name='ininner' value='درداخلی'/>
+ <cd:command name='inleft' value='درچپ'/>
+ <cd:command name='inleftedge' value='درلبه‌چپ'/>
+ <cd:command name='inleftmargin' value='درحاشیه‌چپ'/>
+ <cd:command name='inline' value='درخط'/>
+ <cd:command name='inmargin' value='درحاشیه'/>
+ <cd:command name='inmframed' value='inmframed'/>
+ <cd:command name='inneredgedistance' value='فاصله‌لبه‌داخلی'/>
+ <cd:command name='inneredgewidth' value='عرض‌لبه‌داخلی'/>
+ <cd:command name='innermargindistance' value='فاصله‌حاشیه‌داخلی'/>
+ <cd:command name='innermarginwidth' value='عرض‌حاشیه‌داخلی'/>
+ <cd:command name='inothermargin' value='درحاشیه‌دیگر'/>
+ <cd:command name='inouter' value='درخارجی'/>
+ <cd:command name='inright' value='درراست'/>
+ <cd:command name='inrightedge' value='درلبه‌راست'/>
+ <cd:command name='inrightmargin' value='درحاشیه‌راست'/>
+ <cd:command name='installlanguage' value='نصب‌زبان'/>
+ <cd:command name='interactionbar' value='میله‌پانل'/>
+ <cd:command name='interactionbuttons' value='دکمه‌پانل'/>
+ <cd:command name='interactionmenu' value='منوی‌پانل'/>
+ <cd:command name='item' value='آیتم'/>
+ <cd:command name='items' value='آیتمها'/>
+ <cd:command name='its' value='its'/>
+ <cd:command name='keepblocks' value='حفظ‌بلوکها'/>
+ <cd:command name='label' value='برچسب'/>
+ <cd:command name='labels' value='برچسبها'/>
+ <cd:command name='labeltext' value='متن‌برچسب'/>
+ <cd:command name='language' value='زبان'/>
+ <cd:command name='leftaligned' value='چپ‌چین'/>
+ <cd:command name='leftedgedistance' value='فاصله‌لبه‌چپ'/>
+ <cd:command name='leftedgewidth' value='عرض‌لبه‌چپ'/>
+ <cd:command name='leftmargindistance' value='فاصله‌حاشیه‌چپ'/>
+ <cd:command name='leftmarginwidth' value='عرض‌حاشیه‌چپ'/>
+ <cd:command name='leg' value='پا'/>
+ <cd:command name='linewidth' value='عرض‌خط'/>
+ <cd:command name='listheight' value='ارتفاع‌خط'/>
+ <cd:command name='listlength' value='طول‌لیست'/>
+ <cd:command name='listsymbol' value='نمادلیست'/>
+ <cd:command name='listwidth' value='عرض‌لیست'/>
+ <cd:command name='logfields' value='میدانهای‌گزارش'/>
+ <cd:command name='lohi' value='پابا'/>
+ <cd:command name='low' value='پایین'/>
+ <cd:command name='macroname' value='نام‌ماکرو'/>
+ <cd:command name='mainlanguage' value='زبان‌اصلی'/>
+ <cd:command name='makeupheight' value='ارتفاع‌آرایش'/>
+ <cd:command name='makeupwidth' value='عرض‌آرایش'/>
+ <cd:command name='mar' value='حاش'/>
+ <cd:command name='margindistance' value='فاصله‌حاشیه'/>
+ <cd:command name='marginrule' value='خط‌حاشیه'/>
+ <cd:command name='margintext' value='متن‌حاشیه'/>
+ <cd:command name='margintitle' value='عنوان‌حاشیه'/>
+ <cd:command name='marginwidth' value='عرض‌حاشیه'/>
+ <cd:command name='marginword' value='کلمه‌حاشیه'/>
+ <cd:command name='marking' value='نشانه‌گذاری'/>
+ <cd:command name='markversion' value='نسخه‌نشانه'/>
+ <cd:command name='mathematics' value='ریاضی'/>
+ <cd:command name='menubutton' value='دکمه‌منو'/>
+ <cd:command name='mframed' value='mframed'/>
+ <cd:command name='midaligned' value='تنظیم‌وسط'/>
+ <cd:command name='mirror' value='آینه'/>
+ <cd:command name='month' value='ماه'/>
+ <cd:command name='moveformula' value='انتقال‌فرمول'/>
+ <cd:command name='moveongrid' value='انتقال‌به‌توری'/>
+ <cd:command name='movesidefloat' value='انتقال‌کنار‌شناور'/>
+ <cd:command name='navigating' value='هدایت'/>
+ <cd:command name='nodimension' value='بدون‌بعد'/>
+ <cd:command name='noheaderandfooterlines' value='بدون‌خط‌سروته‌برگ'/>
+ <cd:command name='noindenting' value='بدون‌تورفتگی'/>
+ <cd:command name='nolist' value='بدون‌لیست'/>
+ <cd:command name='nomarking' value='بدون‌نشانه‌گذاری'/>
+ <cd:command name='nomoreblocks' value='بدون‌بلوکهای‌بیشتر'/>
+ <cd:command name='nomorefiles' value='بدون‌فایلهای‌بیشتر'/>
+ <cd:command name='nop' value='منفی'/>
+ <cd:command name='nospace' value='بدون‌فضا'/>
+ <cd:command name='note' value='یادداشت'/>
+ <cd:command name='notopandbottomlines' value='بدون‌خط‌بالاوپایین'/>
+ <cd:command name='notsmallcapped' value='سرپوش‌کوچک‌نه'/>
+ <cd:command name='nowhitespace' value='بدون‌فضای‌سفید'/>
+ <cd:command name='numberofsubpages' value='شماره‌زیرصفحه'/>
+ <cd:command name='numbers' value='شماره‌ها'/>
+ <cd:command name='outeredgedistance' value='فاصله‌لبه‌خارجی'/>
+ <cd:command name='outeredgewidth' value='عرض‌لبه‌خارجی'/>
+ <cd:command name='outermargindistance' value='فاصله‌حاشیه‌خارجی'/>
+ <cd:command name='outermarginwidth' value='عرض‌حاشیه‌خارجی'/>
+ <cd:command name='overbar' value='میله‌رو'/>
+ <cd:command name='overbars' value='میله‌ها‌رو'/>
+ <cd:command name='overstrike' value='خط‌زدن'/>
+ <cd:command name='overstrikes' value='خط‌زدنها'/>
+ <cd:command name='packed' value='فشرده'/>
+ <cd:command name='page' value='صفحه'/>
+ <cd:command name='pagedepth' value='عمق‌صفحه'/>
+ <cd:command name='pagenumber' value='شماره‌صفحه'/>
+ <cd:command name='pageoffset' value='آفست‌صفحه'/>
+ <cd:command name='pagereference' value='مرجع‌صفحه'/>
+ <cd:command name='pagetype' value='نوع‌صفحه'/>
+ <cd:command name='paperheight' value='ارتفاع‌برگ'/>
+ <cd:command name='paperwidth' value='عرض‌برگ'/>
+ <cd:command name='periods' value='نقطه‌ها'/>
+ <cd:command name='plaatsruwelijst' value='درج‌لیست‌خام'/>
+ <cd:command name='placebookmarks' value='درج‌چوب‌خط'/>
+ <cd:command name='placecombinedlist' value='درج‌لیست‌مختلط'/>
+ <cd:command name='placefloat' value='درج‌شناور'/>
+ <cd:command name='placefootnotes' value='درج‌پانوشتها'/>
+ <cd:command name='placeformula' value='درج‌فرمول'/>
+ <cd:command name='placeheadnumber' value='درج‌شماره‌سر'/>
+ <cd:command name='placeheadtext' value='درج‌متن‌سر'/>
+ <cd:command name='placelegend' value='درج‌راهنما'/>
+ <cd:command name='placelist' value='درج‌لیست'/>
+ <cd:command name='placelocalfootnotes' value='درج‌پانوشتهای‌موضعی'/>
+ <cd:command name='placelogos' value='درج‌آرمها'/>
+ <cd:command name='placeongrid' value='درج‌در‌توری'/>
+ <cd:command name='placeontopofeachother' value='درج‌در‌بالای‌یکدیگر'/>
+ <cd:command name='placepagenumber' value='درج‌شماره‌صفحه'/>
+ <cd:command name='placereferencelist' value='درج‌لیست‌مرجع'/>
+ <cd:command name='placeregister' value='درج‌ثبت'/>
+ <cd:command name='placerule' value='درج‌خط'/>
+ <cd:command name='placesidebyside' value='درج‌کنار‌به‌کنار'/>
+ <cd:command name='placesubformula' value='درج‌زیرفرمول'/>
+ <cd:command name='placetextvariable' value='درج‌متغیرمتن'/>
+ <cd:command name='position' value='مکان'/>
+ <cd:command name='positiontext' value='مکان‌متن'/>
+ <cd:command name='printpaperheight' value='چاپ‌ارتفاع‌برگ'/>
+ <cd:command name='printpaperwidth' value='چاپ‌عرض‌برگ'/>
+ <cd:command name='processblocks' value='بلوکهای‌پردازش'/>
+ <cd:command name='processpage' value='صفحه‌پردازش'/>
+ <cd:command name='product' value='تولید'/>
+ <cd:command name='program' value='برنامه'/>
+ <cd:command name='project' value='پروژه'/>
+ <cd:command name='publication' value='نشر'/>
+ <cd:command name='quotation' value='نقل‌قول'/>
+ <cd:command name='quote' value='نقل'/>
+ <cd:command name='ran' value='ran'/>
+ <cd:command name='redo' value='انجام‌دوباره'/>
+ <cd:command name='ref' value='رج'/>
+ <cd:command name='reference' value='مرجع'/>
+ <cd:command name='referral' value='رجوع'/>
+ <cd:command name='referraldate' value='تاریخ‌رجوع'/>
+ <cd:command name='referring' value='مراجعه'/>
+ <cd:command name='remark' value='توجه'/>
+ <cd:command name='reset' value='بازنشانی'/>
+ <cd:command name='resetmarking' value='بازنشانی‌نشانه‌گذاری'/>
+ <cd:command name='resetnumber' value='بازنشانی‌شماره'/>
+ <cd:command name='resettext' value='بازنشانی‌متن'/>
+ <cd:command name='rightaligned' value='تنظیم‌راست'/>
+ <cd:command name='rightedgedistance' value='فاصله‌لبه‌راست'/>
+ <cd:command name='rightedgewidth' value='عرض‌لبه‌راست'/>
+ <cd:command name='rightmargindistance' value='فاصله‌حاشیه‌راست'/>
+ <cd:command name='rightmarginwidth' value='عرض‌حاشیه‌راست'/>
+ <cd:command name='romannumerals' value='اعدادلاتین'/>
+ <cd:command name='rotate' value='دوران'/>
+ <cd:command name='scale' value='مقیاس'/>
+ <cd:command name='screen' value='پرده'/>
+ <cd:command name='selectblocks' value='انتخاب‌بلوکها'/>
+ <cd:command name='selectpaper' value='انتخاب‌برگ'/>
+ <cd:command name='selectversion' value='انتخاب‌نسخه'/>
+ <cd:command name='setnumber' value='تعیین‌شماره'/>
+ <cd:command name='settextcontent' value='تعیین‌محتوای‌متن'/>
+ <cd:command name='settextvariable' value='تعیین‌متغیر‌متن'/>
+ <cd:command name='setupalign' value='بارگذاری‌تنظیم'/>
+ <cd:command name='setupanswerarea' value='setupanswerarea'/>
+ <cd:command name='setuparranging' value='بارگذاری‌ترتیب'/>
+ <cd:command name='setupbackground' value='بارگذاری‌پس‌زمینه'/>
+ <cd:command name='setupbackgrounds' value='بارگذاری‌پس‌زمینه‌ها'/>
+ <cd:command name='setupblackrules' value='بارگذاری‌خطهای‌سیاه'/>
+ <cd:command name='setupblank' value='بارگذاری‌خالی'/>
+ <cd:command name='setupblock' value='بارگذاری‌بلوک'/>
+ <cd:command name='setupbodyfont' value='بارگذاری‌قلم‌متن'/>
+ <cd:command name='setupbodyfontenvironment' value='بارگذاری‌محیط‌قلم‌متن'/>
+ <cd:command name='setupbottom' value='بارگذاری‌پایین'/>
+ <cd:command name='setupbottomtexts' value='بارگذاری‌متن‌پایین'/>
+ <cd:command name='setupbuffer' value='بارگذاری‌بافر'/>
+ <cd:command name='setupbuttons' value='بارگذاری‌دکمه‌ها'/>
+ <cd:command name='setupcapitals' value='setupcapitals'/>
+ <cd:command name='setupcaption' value='بارگذاری‌شرح'/>
+ <cd:command name='setupcaptions' value='بارگذاری‌شرحها'/>
+ <cd:command name='setupclipping' value='بارگذاری‌چیدن'/>
+ <cd:command name='setupcolor' value='بارگذاری‌رنگ'/>
+ <cd:command name='setupcolors' value='بارگذاری‌رنگها'/>
+ <cd:command name='setupcolumns' value='بارگذاری‌ستونها'/>
+ <cd:command name='setupcolumnset' value='بارگذاری‌مجموعه‌ستون'/>
+ <cd:command name='setupcolumnsetlines' value='بارگذاری‌خطهای‌مجموعه‌ستون'/>
+ <cd:command name='setupcolumnsetstart' value='بارگذاری‌شروع‌مجموعه‌ستون'/>
+ <cd:command name='setupcombinations' value='بارگذاری‌ترکیب‌ها'/>
+ <cd:command name='setupcombinedlist' value='بارگذاری‌لیست‌ترکیبی'/>
+ <cd:command name='setupcomment' value='بارگذاری‌توضیح'/>
+ <cd:command name='setupdescriptions' value='بارگذاری‌شرح'/>
+ <cd:command name='setupenumerations' value='بارگذاری‌شماره‌گذاریها'/>
+ <cd:command name='setupexternalfigures' value='بارگذاری‌شکلهای‌خارجی'/>
+ <cd:command name='setupfield' value='بارگذاری‌میدان'/>
+ <cd:command name='setupfields' value='بارگذاری‌میدانها'/>
+ <cd:command name='setupfillinlines' value='بارگذاری‌پرکردن‌خطها'/>
+ <cd:command name='setupfillinrules' value='بارگذاری‌درج‌درخطها'/>
+ <cd:command name='setupfloat' value='بارگذاری‌شناور'/>
+ <cd:command name='setupfloats' value='بارگذاری‌شناورها'/>
+ <cd:command name='setupfloatsplitting' value='بارگذاری‌شکافتن‌شناورها'/>
+ <cd:command name='setupfooter' value='بارگذاری‌ته‌برگ'/>
+ <cd:command name='setupfootertexts' value='بارگذاری‌متن‌پانوشت'/>
+ <cd:command name='setupfootnotedefinition' value='بارگذاری‌تعریف‌پانوشت'/>
+ <cd:command name='setupfootnotes' value='بارگذاری‌پانوشتها'/>
+ <cd:command name='setupforms' value='بارگذاری‌طرح'/>
+ <cd:command name='setupformulas' value='بارگذاری‌فرمولها'/>
+ <cd:command name='setupframed' value='بارگذاری‌قالبی'/>
+ <cd:command name='setupframedtexts' value='بارگذاری‌متن‌قالبی'/>
+ <cd:command name='setuphead' value='بارگذاری‌سر'/>
+ <cd:command name='setupheader' value='بارگذاری‌سربرگ'/>
+ <cd:command name='setupheadertexts' value='بارگذاری‌متن‌سربرگ'/>
+ <cd:command name='setupheadnumber' value='بارگذاری‌شماره‌سر'/>
+ <cd:command name='setupheads' value='بارگذاری‌سرها'/>
+ <cd:command name='setupheadtext' value='بارگذاری‌متن‌سر'/>
+ <cd:command name='setuphyphenmark' value='بارگذاری‌نشانه‌شکستن'/>
+ <cd:command name='setupindentations' value='بارگذاری‌تورفتگیها'/>
+ <cd:command name='setupindenting' value='بارگذاری‌تورفتگی'/>
+ <cd:command name='setupinmargin' value='بارگذاری‌درون‌حاشیه'/>
+ <cd:command name='setupinteraction' value='بارگذاری‌پانل'/>
+ <cd:command name='setupinteractionbar' value='بارگذاری‌میله‌پانل'/>
+ <cd:command name='setupinteractionmenu' value='بارگذاری‌منوی‌پانل'/>
+ <cd:command name='setupinteractionscreen' value='بارگذاری‌پرده‌پانل'/>
+ <cd:command name='setupinterlinespace' value='بارگذاری‌فاصله‌بین‌خط'/>
+ <cd:command name='setupitemgroup' value='بارگذاری‌گروه‌آیتم'/>
+ <cd:command name='setupitemgroups' value='بارگذاری‌گروههای‌آیتم'/>
+ <cd:command name='setupitems' value='بارگذاری‌آیتمها'/>
+ <cd:command name='setuplabeltext' value='باگذاری‌متن‌برچسب'/>
+ <cd:command name='setuplanguage' value='بارگذاری‌زبان'/>
+ <cd:command name='setuplayout' value='بارگذاری‌طرح‌بندی'/>
+ <cd:command name='setuplegend' value='بارگذاری‌راهنما'/>
+ <cd:command name='setuplinenumbering' value='بارگذاری‌شماره‌‌گذاری‌خط'/>
+ <cd:command name='setuplines' value='بارگذاری‌خطها'/>
+ <cd:command name='setuplinewidth' value='بارگذاری‌عرض‌خط'/>
+ <cd:command name='setuplist' value='بارگذاری‌لیست'/>
+ <cd:command name='setupmakeup' value='بارگذاری‌آرایش'/>
+ <cd:command name='setupmarginblocks' value='بارگذاری‌بلوکهای‌حاشیه'/>
+ <cd:command name='setupmarginrules' value='بارگذاری‌خطهای‌حاشیه'/>
+ <cd:command name='setupmarking' value='بارگذاری‌نشانه‌گذاری'/>
+ <cd:command name='setupmathalignment' value='بارگذاری‌تنظیم‌ریاضی'/>
+ <cd:command name='setupnarrower' value='بارگذاری‌باریکتر'/>
+ <cd:command name='setupnumber' value='بارگذاری‌شماره'/>
+ <cd:command name='setupnumbering' value='بارگذاری‌شماره‌گذاری'/>
+ <cd:command name='setupoppositeplacing' value='بارگذاری‌درج‌مخالف'/>
+ <cd:command name='setupoutput' value='بارگذاری‌خروجی'/>
+ <cd:command name='setuppagecomment' value='بارگذاری‌توضیح‌صفحه'/>
+ <cd:command name='setuppagenumber' value='بارگذاری‌شماره‌صفحه'/>
+ <cd:command name='setuppagenumbering' value='بارگذاری‌شماره‌گذاری‌صفحه'/>
+ <cd:command name='setuppagetransitions' value='بارگذاری‌گذارصفحه'/>
+ <cd:command name='setuppalet' value='بارگذاری‌لوح'/>
+ <cd:command name='setuppaper' value='بارگذاری‌برگ'/>
+ <cd:command name='setuppapersize' value='بارگذاری‌اندازه‌برگ'/>
+ <cd:command name='setupparagraphnumbering' value='بارگذاری‌شماره‌گذاری‌پاراگراف'/>
+ <cd:command name='setupparagraphs' value='بارگذاری‌پاراگرافها'/>
+ <cd:command name='setupplacement' value='بارگذاری‌جانشانی'/>
+ <cd:command name='setuppositioning' value='بارگذاری‌مکان‌گذاری'/>
+ <cd:command name='setupprofiles' value='بارگذاری‌پروفایلها'/>
+ <cd:command name='setupprograms' value='بارگذاری‌برنامه‌ها'/>
+ <cd:command name='setuppublications' value='بارگذاری‌نشرها'/>
+ <cd:command name='setupquote' value='بارگذاری‌نقل'/>
+ <cd:command name='setupreferencelist' value='بارگذاری‌لیست‌مرجع'/>
+ <cd:command name='setupreferencing' value='بارگذاری‌ارجاع'/>
+ <cd:command name='setupregister' value='بارگذاری‌ثبت'/>
+ <cd:command name='setuprotate' value='بارگذاری‌دوران'/>
+ <cd:command name='setuprule' value='بارگذاری‌خط'/>
+ <cd:command name='setups' value='بارگذاریها'/>
+ <cd:command name='setupscreens' value='بارگذاری‌پرده‌ها'/>
+ <cd:command name='setupsection' value='بارگذاری‌بخش'/>
+ <cd:command name='setupsectionblock' value='بارگذاری‌بلوک‌بخش'/>
+ <cd:command name='setupsorting' value='بارگذاری‌ترتیب'/>
+ <cd:command name='setupspacing' value='بارگذاری‌فضا‌گذاری'/>
+ <cd:command name='setupstartstop' value='بارگذاری‌شروع‌پایان'/>
+ <cd:command name='setupstrut' value='بارگذاری‌بست'/>
+ <cd:command name='setupsubpagenumber' value='بارگذاری‌شماره‌زیرصفحه'/>
+ <cd:command name='setupsymbolset' value='بارگذاری‌مجموعه‌نماد'/>
+ <cd:command name='setupsynchronization' value='بارگذاری‌تطابق'/>
+ <cd:command name='setupsynchronizationbar' value='بارگذاری‌میله‌تطابق'/>
+ <cd:command name='setupsynonyms' value='بارگذاری‌مترادفها'/>
+ <cd:command name='setupsystem' value='بارگذاری‌سیستم'/>
+ <cd:command name='setuptab' value='بارگذاری‌تب'/>
+ <cd:command name='setuptables' value='بارگذاری‌جدولها'/>
+ <cd:command name='setuptabulate' value='بارگذاری‌جدول‌بندی'/>
+ <cd:command name='setuptext' value='بارگذاری‌متن'/>
+ <cd:command name='setuptextposition' value='بارگذاری‌مکان‌متن'/>
+ <cd:command name='setuptextrules' value='بارگذاری‌خطهای‌متن'/>
+ <cd:command name='setuptexttexts' value='بارگذاری‌متن‌متنها'/>
+ <cd:command name='setuptextvariable' value='بارگذاری‌متغیر‌متن'/>
+ <cd:command name='setupthinrules' value='بارگذاری‌خطها‌ی‌نازک'/>
+ <cd:command name='setuptolerance' value='بارگذاری‌بردباری'/>
+ <cd:command name='setuptop' value='بارگذاری‌بالا'/>
+ <cd:command name='setuptoptexts' value='بارگذاری‌متنهای‌بالا'/>
+ <cd:command name='setuptype' value='بارگذاری‌تایپ'/>
+ <cd:command name='setuptyping' value='بارگذاری‌تایپ‌کردن'/>
+ <cd:command name='setupunderbar' value='بارگذاری‌میله‌زیر'/>
+ <cd:command name='setupurl' value='setupurl'/>
+ <cd:command name='setupversions' value='بارگذاری‌نسخه‌ها'/>
+ <cd:command name='setupwhitespace' value='بارگذاری‌فضای‌سفید'/>
+ <cd:command name='showbodyfont' value='نمایش‌قلم‌بدنه'/>
+ <cd:command name='showbodyfontenvironment' value='نمایش‌محیط‌قلم‌بدنه'/>
+ <cd:command name='showcolor' value='نمایش‌رنگ'/>
+ <cd:command name='showcolorgroup' value='نمایش‌گروه‌رنگ'/>
+ <cd:command name='showexternalfigures' value='نمایش‌شکلهای‌خارجی'/>
+ <cd:command name='showfields' value='نمایش‌میدانها'/>
+ <cd:command name='showframe' value='نمایش‌قالب'/>
+ <cd:command name='showgrid' value='نمایش‌توری'/>
+ <cd:command name='showlayout' value='نمایش‌طرح‌بندی'/>
+ <cd:command name='showmakeup' value='نمایش‌آرایش'/>
+ <cd:command name='showpalet' value='نمایش‌لوح'/>
+ <cd:command name='showprint' value='نمایش‌چاپ'/>
+ <cd:command name='showsetups' value='نمایش‌بارگذاریها'/>
+ <cd:command name='showstruts' value='نمایش‌بستها'/>
+ <cd:command name='showsymbolset' value='نمایش‌مجموعه‌علامت'/>
+ <cd:command name='smallcapped' value='cap'/>
+ <cd:command name='someline' value='یک‌خط'/>
+ <cd:command name='somewhere' value='یک‌جا'/>
+ <cd:command name='space' value='فضا'/>
+ <cd:command name='splitfloat' value='شکافتن‌شناور'/>
+ <cd:command name='startalignment' value='شروع‌تنظیم'/>
+ <cd:command name='startbackground' value='شروع‌پس‌زمینه'/>
+ <cd:command name='startcoding' value='شروع‌کد'/>
+ <cd:command name='startcolor' value='شروع‌رنگ'/>
+ <cd:command name='startcolumnmakeup' value='شروع‌آرایش‌ستون'/>
+ <cd:command name='startcolumns' value='شروع‌ستونها'/>
+ <cd:command name='startcolumnset' value='شروع‌مجموعه‌ستون'/>
+ <cd:command name='startcombination' value='شروع‌ترکیب'/>
+ <cd:command name='startcomponent' value='شروع‌مولفه'/>
+ <cd:command name='startdocument' value='شروع‌نوشتار'/>
+ <cd:command name='startenvironment' value='شروع‌محیط'/>
+ <cd:command name='startfigure' value='شروع‌شکل'/>
+ <cd:command name='startglobal' value='شروع‌سراسری'/>
+ <cd:command name='startline' value='شروع‌خط'/>
+ <cd:command name='startlinecorrection' value='شروع‌تصحیح‌خط'/>
+ <cd:command name='startlinenumbering' value='شروع‌شماره‌گذاری‌خط'/>
+ <cd:command name='startlines' value='شروع‌خطها'/>
+ <cd:command name='startlocal' value='شروع‌موضعی'/>
+ <cd:command name='startlocalfootnotes' value='شروع‌پانوشتهای‌موضعی'/>
+ <cd:command name='startmakeup' value='شروع‌آرایش'/>
+ <cd:command name='startmarginblock' value='شروع‌بلوک‌حاشیه'/>
+ <cd:command name='startmarginrule' value='شروع‌خط‌حاشیه'/>
+ <cd:command name='startnarrower' value='شروع‌باریکتر'/>
+ <cd:command name='startopposite' value='شروع‌مخالف'/>
+ <cd:command name='startoverlay' value='شروع‌پوشش'/>
+ <cd:command name='startoverzicht' value='شروع‌بازبینی'/>
+ <cd:command name='startpacked' value='شروع‌فشرده'/>
+ <cd:command name='startpositioning' value='شروع‌مکان‌گذاری'/>
+ <cd:command name='startproduct' value='شروع‌تولید'/>
+ <cd:command name='startprofile' value='شروع‌پروفایل'/>
+ <cd:command name='startproject' value='شروع‌پروژه'/>
+ <cd:command name='startquotation' value='شروع‌نقل‌قول'/>
+ <cd:command name='startraster' value='startraster'/>
+ <cd:command name='startsymbolset' value='شروع‌مجموعه‌نماد'/>
+ <cd:command name='startsynchronization' value='شروع‌تطابق'/>
+ <cd:command name='starttable' value='شروع‌جدول'/>
+ <cd:command name='starttables' value='شروع‌جدولها'/>
+ <cd:command name='starttext' value='شروع‌متن'/>
+ <cd:command name='starttextrule' value='شروع‌خط‌متن'/>
+ <cd:command name='startunpacked' value='شروع‌غیر‌فشرده'/>
+ <cd:command name='startversion' value='شروع‌نسخه'/>
+ <cd:command name='stopalignment' value='پایان‌تنظیم'/>
+ <cd:command name='stopbackground' value='پایان‌پس‌زمینه'/>
+ <cd:command name='stopcoding' value='پایان‌کد'/>
+ <cd:command name='stopcolor' value='پایان‌رنگ'/>
+ <cd:command name='stopcolumnmakeup' value='پایان‌آرایش‌ستون'/>
+ <cd:command name='stopcolumns' value='پایان‌ستونها'/>
+ <cd:command name='stopcolumnset' value='پایان‌مجموعه‌ستون'/>
+ <cd:command name='stopcombination' value='پایان‌ترکیب'/>
+ <cd:command name='stopcomponent' value='پایان‌مولفه'/>
+ <cd:command name='stopdocument' value='پایان‌نوشتار'/>
+ <cd:command name='stopenvironment' value='پایان‌محیط'/>
+ <cd:command name='stopglobal' value='پایان‌سراسری'/>
+ <cd:command name='stopline' value='پایان‌خط'/>
+ <cd:command name='stoplinecorrection' value='پایان‌تصحیح‌خط'/>
+ <cd:command name='stoplinenumbering' value='پایان‌شماره‌گذاری‌خط'/>
+ <cd:command name='stoplines' value='پایان‌خطها'/>
+ <cd:command name='stoplocal' value='پایان‌موضعی'/>
+ <cd:command name='stoplocalfootnotes' value='پایان‌پانوشتهای‌موضعی'/>
+ <cd:command name='stopmakeup' value='پایان‌آرایش'/>
+ <cd:command name='stopmarginblock' value='پایان‌بلوک‌حاشیه'/>
+ <cd:command name='stopmarginrule' value='پایان‌خط‌حاشیه'/>
+ <cd:command name='stopnarrower' value='پایان‌نازکتر'/>
+ <cd:command name='stopopposite' value='پایان‌مخالف'/>
+ <cd:command name='stopoverlay' value='پایان‌پوشش'/>
+ <cd:command name='stopoverzicht' value='پایان‌بازبینی'/>
+ <cd:command name='stoppacked' value='پایان‌فشرده'/>
+ <cd:command name='stoppositioning' value='پایان‌مکان‌گذاری'/>
+ <cd:command name='stopproduct' value='پایان‌تولید'/>
+ <cd:command name='stopprofile' value='پایان‌پروفایل'/>
+ <cd:command name='stopproject' value='پایان‌پروژه'/>
+ <cd:command name='stopquotation' value='پایان‌نقل‌قول'/>
+ <cd:command name='stopraster' value='stopraster'/>
+ <cd:command name='stopsynchronization' value='پایان‌تطابق'/>
+ <cd:command name='stoptable' value='پایان‌جدول'/>
+ <cd:command name='stoptables' value='پایان‌جدولها'/>
+ <cd:command name='stoptext' value='پایان‌متن'/>
+ <cd:command name='stoptextrule' value='پایان‌خط‌متن'/>
+ <cd:command name='stopunpacked' value='پایان‌غیرفشرده'/>
+ <cd:command name='stopversion' value='پایان‌نسخه'/>
+ <cd:command name='stretched' value='کشیده'/>
+ <cd:command name='subformulanumber' value='شماره‌زیرفرمول'/>
+ <cd:command name='subpagenumber' value='شماره‌زیرصفحه'/>
+ <cd:command name='switchtobodyfont' value='تغییربه‌قلم‌بدنه'/>
+ <cd:command name='switchtorawfont' value='تغییربه‌قلم‌خام'/>
+ <cd:command name='sym' value='نم'/>
+ <cd:command name='symbol' value='نماد'/>
+ <cd:command name='synchronizationbar' value='میله‌تطابق'/>
+ <cd:command name='synchronize' value='تطابق'/>
+ <cd:command name='tab' value='تب'/>
+ <cd:command name='testcolumn' value='ستون‌امتحان'/>
+ <cd:command name='testpage' value='صفحه‌تست'/>
+ <cd:command name='tex' value='تک'/>
+ <cd:command name='textheight' value='ارتفاع‌متن'/>
+ <cd:command name='textreference' value='مرجع‌متن'/>
+ <cd:command name='textrule' value='خط‌متن'/>
+ <cd:command name='textvariable' value='متغیر متن'/>
+ <cd:command name='textwidth' value='عرض‌متن'/>
+ <cd:command name='thinrule' value='خط‌نازک'/>
+ <cd:command name='thinrules' value='خطهای‌نازک'/>
+ <cd:command name='tooltip' value='tooltip'/>
+ <cd:command name='topdistance' value='فاصله‌بالا'/>
+ <cd:command name='topheight' value='ارتفاع‌بالا'/>
+ <cd:command name='topspace' value='فضای‌بالا'/>
+ <cd:command name='totalnumberofpages' value='شماره‌کل‌صفحه‌ها'/>
+ <cd:command name='translate' value='ترجمه'/>
+ <cd:command name='txt' value='txt'/>
+ <cd:command name='typ' value='typ'/>
+ <cd:command name='type' value='تایپ'/>
+ <cd:command name='typebuffer' value='تایپ‌بافر'/>
+ <cd:command name='typefile' value='تایپ‌پرونده'/>
+ <cd:command name='underbar' value='میله‌زیر'/>
+ <cd:command name='underbars' value='میله‌‌های‌زیر'/>
+ <cd:command name='unitmeaning' value='معنی‌واحد'/>
+ <cd:command name='unknown' value='ناشناس'/>
+ <cd:command name='useJSscripts' value='useJSscripts'/>
+ <cd:command name='useURL' value='useURL'/>
+ <cd:command name='useXMLfilter' value='useXMLfilter'/>
+ <cd:command name='useblocks' value='استفاده‌بلوکها'/>
+ <cd:command name='usecommands' value='استفاده‌فرمانها'/>
+ <cd:command name='useencoding' value='استفاده‌رمزینه'/>
+ <cd:command name='useexternaldocument' value='استفاده‌نوشتارخارجی'/>
+ <cd:command name='useexternalfigure' value='استفاده‌شکل‌خارجی'/>
+ <cd:command name='useexternalfile' value='استفاده‌پرونده‌خارجی'/>
+ <cd:command name='useexternalfiles' value='استفاده‌پرونده‌های‌خارجی'/>
+ <cd:command name='useexternalsoundtrack' value='استفاده‌قطعه‌موزیک‌خارجی'/>
+ <cd:command name='usemodule' value='استفاده‌مدول'/>
+ <cd:command name='usemodules' value='استفاده‌مدولها'/>
+ <cd:command name='usepath' value='استفاده‌مسیر'/>
+ <cd:command name='usereferences' value='استفاده‌مرجعها'/>
+ <cd:command name='usespecials' value='استفاده‌ویژگیها'/>
+ <cd:command name='usesymbols' value='استفاده‌نمادها'/>
+ <cd:command name='usetypescript' value='استفاده‌دستخط‌تایپ'/>
+ <cd:command name='usetypescriptfile' value='استفاده‌پرونده‌دستخط‌تایپ'/>
+ <cd:command name='useurl' value='useurl'/>
+ <cd:command name='version' value='نسخه'/>
+ <cd:command name='vl' value='خ‌ع'/>
+ <cd:command name='weekday' value='روزهفته'/>
+ <cd:command name='whitespace' value='فضای‌سفید'/>
+ <cd:command name='wordright' value='کلمه‌راست'/>
+ <cd:command name='writebetweenlist' value='بنویس‌بین‌لیست'/>
+ <cd:command name='writetolist' value='بنویس‌در‌لیست'/>
+ <cd:command name='writetoreferencelist' value='بنویس‌درلیست‌مرجع'/>
+ <cd:command name='writetoregister' value='بنویس‌درثبت'/>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/interface/keys-ro.xml b/Master/texmf-dist/tex/context/interface/keys-ro.xml
index 8ef0f6158e6..964c8a71414 100644
--- a/Master/texmf-dist/tex/context/interface/keys-ro.xml
+++ b/Master/texmf-dist/tex/context/interface/keys-ro.xml
@@ -1,1656 +1,1649 @@
-<?xml version="1.0"?>
+<?xml version='1.0'?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="ro" version="2008.05.21 15:21">
+<cd:interface xmlns:cd='http://www.pragma-ade.com/commands' name='context' language='ro' version='2008.10.21 19:42'>
- <cd:variables>
- <cd:variable name="lesshyphenation" value="lesshyphenation"/>
- <cd:variable name="morehyphenation" value="morehyphenation"/>
- </cd:variables>
+ <!-- definitions for interface variables for language ro -->
- <cd:variables>
- <cd:variable name="one" value="unu"/>
- <cd:variable name="two" value="doi"/>
- <cd:variable name="three" value="trei"/>
- <cd:variable name="four" value="patru"/>
- <cd:variable name="five" value="cinci"/>
- </cd:variables>
+ <cd:variables>
+ <cd:variable name='Addition' value='Adaugare'/>
+ <cd:variable name='Balloon' value='Balon'/>
+ <cd:variable name='Character' value='Caracter'/>
+ <cd:variable name='Characters' value='Caractere'/>
+ <cd:variable name='CloseDocument' value='InchideDocument'/>
+ <cd:variable name='ExitViewer' value='IesireVizualizator'/>
+ <cd:variable name='FirstPage' value='PrimaPagina'/>
+ <cd:variable name='FitHeight' value='AjustatInaltime'/>
+ <cd:variable name='FitWidth' value='AjustatLatime'/>
+ <cd:variable name='GotoPage' value='LaPagina'/>
+ <cd:variable name='Greek' value='Grec'/>
+ <cd:variable name='Help' value='Ajutor'/>
+ <cd:variable name='HideField' value='AscundeCamp'/>
+ <cd:variable name='HideLayer' value='HideLayer'/>
+ <cd:variable name='Key' value='Cheie'/>
+ <cd:variable name='LastPage' value='UltimaPagina'/>
+ <cd:variable name='LoadForm' value='IncarcaFormular'/>
+ <cd:variable name='MONTH' value='LUNA'/>
+ <cd:variable name='New' value='Nou'/>
+ <cd:variable name='NextJump' value='SaltUrmator'/>
+ <cd:variable name='NextPage' value='PaginaUrmatoare'/>
+ <cd:variable name='Numbers' value='Numere'/>
+ <cd:variable name='OpenNamedDocument' value='OpenNamedDocument'/>
+ <cd:variable name='Paragraph' value='Paragraf'/>
+ <cd:variable name='PauseMovie' value='PauzaFilm'/>
+ <cd:variable name='PauseRendering' value='PauseRendering'/>
+ <cd:variable name='PauseSound' value='PauzaSunet'/>
+ <cd:variable name='PreviousJump' value='SaltPrecedent'/>
+ <cd:variable name='PreviousPage' value='PaginaPrecedenta'/>
+ <cd:variable name='PrintDocument' value='TiparesteDocument'/>
+ <cd:variable name='Query' value='Query'/>
+ <cd:variable name='QueryAgain' value='QueryAgain'/>
+ <cd:variable name='ResetForm' value='ResetareFormular'/>
+ <cd:variable name='ResumeMovie' value='RepornesteFilm'/>
+ <cd:variable name='ResumeRendering' value='ResumeRendering'/>
+ <cd:variable name='ResumeSound' value='RepornesteSunet'/>
+ <cd:variable name='Romannumerals' value='Numereromane'/>
+ <cd:variable name='SaveDocument' value='SalvareDocument'/>
+ <cd:variable name='SaveForm' value='SalveazaFormular'/>
+ <cd:variable name='SaveNamedDocument' value='SaveNamedDocument'/>
+ <cd:variable name='SearchAgain' value='CautaDinNou'/>
+ <cd:variable name='SearchDocument' value='CautaDocument'/>
+ <cd:variable name='ShowBookmarks' value='ShowBookmarks'/>
+ <cd:variable name='ShowField' value='AfiseazaCamp'/>
+ <cd:variable name='ShowThumbs' value='ShowThumbs'/>
+ <cd:variable name='StartMovie' value='StartFilm'/>
+ <cd:variable name='StartRendering' value='StartRendering'/>
+ <cd:variable name='StartSound' value='StartSunet'/>
+ <cd:variable name='StopMovie' value='StopFilm'/>
+ <cd:variable name='StopRendering' value='StopRendering'/>
+ <cd:variable name='StopSound' value='StopSunet'/>
+ <cd:variable name='SubmitForm' value='TrimiteFormular'/>
+ <cd:variable name='ToggleLayer' value='ToggleLayer'/>
+ <cd:variable name='ToggleViewer' value='SchimbaVizualizator'/>
+ <cd:variable name='URL' value='URL'/>
+ <cd:variable name='VideLayer' value='VideLayer'/>
+ <cd:variable name='ViewerHelp' value='AjutorVizualizator'/>
+ <cd:variable name='WEEKDAY' value='ZISAPTAMANA'/>
+ <cd:variable name='WORD' value='CUVANT'/>
+ <cd:variable name='abbreviation' value='abreviere'/>
+ <cd:variable name='abbreviations' value='abrevieri'/>
+ <cd:variable name='absolute' value='absolut'/>
+ <cd:variable name='action' value='actiune'/>
+ <cd:variable name='after' value='dupa'/>
+ <cd:variable name='all' value='tot'/>
+ <cd:variable name='always' value='totdeauna'/>
+ <cd:variable name='answerarea' value='answerarea'/>
+ <cd:variable name='appendices' value='apendixuri'/>
+ <cd:variable name='appendix' value='apendix'/>
+ <cd:variable name='april' value='aprilie'/>
+ <cd:variable name='atmargin' value='lamargine'/>
+ <cd:variable name='atpage' value='lapagina'/>
+ <cd:variable name='august' value='august'/>
+ <cd:variable name='auto' value='auto'/>
+ <cd:variable name='autointro' value='autointro'/>
+ <cd:variable name='back' value='inapot'/>
+ <cd:variable name='background' value='fundal'/>
+ <cd:variable name='backmatter' value='epilogul'/>
+ <cd:variable name='backpart' value='epilog'/>
+ <cd:variable name='backspace' value='spatiuspate'/>
+ <cd:variable name='backward' value='inapoi'/>
+ <cd:variable name='before' value='inainte'/>
+ <cd:variable name='big' value='mare'/>
+ <cd:variable name='bigbodyfont' value='bigbodyfont'/>
+ <cd:variable name='bigpreference' value='preferintamare'/>
+ <cd:variable name='blank' value='blank'/>
+ <cd:variable name='blockquote' value='blockquote'/>
+ <cd:variable name='bodymatter' value='principalul'/>
+ <cd:variable name='bodypart' value='principal'/>
+ <cd:variable name='bold' value='aldin'/>
+ <cd:variable name='bolditalic' value='aldinitalic'/>
+ <cd:variable name='boldslanted' value='aldininclinat'/>
+ <cd:variable name='bookmark' value='semncarte'/>
+ <cd:variable name='both' value='ambele'/>
+ <cd:variable name='bottom' value='subsol'/>
+ <cd:variable name='brief' value='brief'/>
+ <cd:variable name='broad' value='broad'/>
+ <cd:variable name='buffer' value='buffer'/>
+ <cd:variable name='by' value='de'/>
+ <cd:variable name='calligraphic' value='caligrafic'/>
+ <cd:variable name='cap' value='cap'/>
+ <cd:variable name='capital' value='majuscula'/>
+ <cd:variable name='center' value='center'/>
+ <cd:variable name='chapter' value='capitol'/>
+ <cd:variable name='character' value='caracter'/>
+ <cd:variable name='characters' value='caractere'/>
+ <cd:variable name='color' value='culoare'/>
+ <cd:variable name='column' value='coloana'/>
+ <cd:variable name='columns' value='coloane'/>
+ <cd:variable name='command' value='comanda'/>
+ <cd:variable name='commands' value='comenzi'/>
+ <cd:variable name='comment' value='comentariu'/>
+ <cd:variable name='component' value='componenta'/>
+ <cd:variable name='concept' value='concept'/>
+ <cd:variable name='content' value='cuprins'/>
+ <cd:variable name='contents' value='cuprinsuri'/>
+ <cd:variable name='continue' value='continuu'/>
+ <cd:variable name='controls' value='controale'/>
+ <cd:variable name='conversion' value='conversie'/>
+ <cd:variable name='current' value='curent'/>
+ <cd:variable name='cutspace' value='cutspace'/>
+ <cd:variable name='date' value='data'/>
+ <cd:variable name='day' value='zi'/>
+ <cd:variable name='december' value='decembrie'/>
+ <cd:variable name='default' value='implicit'/>
+ <cd:variable name='depth' value='adancime'/>
+ <cd:variable name='description' value='descriere'/>
+ <cd:variable name='disable' value='dezactivat'/>
+ <cd:variable name='display' value='display'/>
+ <cd:variable name='dot' value='punct'/>
+ <cd:variable name='doublesided' value='douafete'/>
+ <cd:variable name='each' value='fiecare'/>
+ <cd:variable name='edge' value='bordura'/>
+ <cd:variable name='empty' value='gol'/>
+ <cd:variable name='endnote' value='endnote'/>
+ <cd:variable name='enumeration' value='enumerare'/>
+ <cd:variable name='environment' value='mediu'/>
+ <cd:variable name='even' value='par'/>
+ <cd:variable name='external' value='extern'/>
+ <cd:variable name='fact' value='fapt'/>
+ <cd:variable name='february' value='februarie'/>
+ <cd:variable name='figure' value='figura'/>
+ <cd:variable name='figures' value='figure'/>
+ <cd:variable name='file' value='fisier'/>
+ <cd:variable name='final' value='final'/>
+ <cd:variable name='first' value='primul'/>
+ <cd:variable name='firstcolumn' value='firstcolumn'/>
+ <cd:variable name='firstpage' value='primapagina'/>
+ <cd:variable name='firstsubpage' value='primasubpagina'/>
+ <cd:variable name='fit' value='ajustat'/>
+ <cd:variable name='five' value='cinci'/>
+ <cd:variable name='fix' value='fix'/>
+ <cd:variable name='fixed' value='fixat'/>
+ <cd:variable name='flexible' value='flexibil'/>
+ <cd:variable name='float' value='obiectmobil'/>
+ <cd:variable name='flushinner' value='flushinner'/>
+ <cd:variable name='flushleft' value='flushleft'/>
+ <cd:variable name='flushouter' value='flushouter'/>
+ <cd:variable name='flushright' value='flushright'/>
+ <cd:variable name='footer' value='subsol'/>
+ <cd:variable name='footnote' value='notasubsol'/>
+ <cd:variable name='force' value='fortat'/>
+ <cd:variable name='foreground' value='primplan'/>
+ <cd:variable name='formeel' value='formeel'/>
+ <cd:variable name='formula' value='formula'/>
+ <cd:variable name='formulae' value='formule'/>
+ <cd:variable name='forward' value='avans'/>
+ <cd:variable name='four' value='patru'/>
+ <cd:variable name='frame' value='incadrat'/>
+ <cd:variable name='framedtext' value='textinconjurat'/>
+ <cd:variable name='friday' value='vineri'/>
+ <cd:variable name='frontmatter' value='prologul'/>
+ <cd:variable name='frontpart' value='prolog'/>
+ <cd:variable name='global' value='global'/>
+ <cd:variable name='graphic' value='graficul'/>
+ <cd:variable name='graphics' value='graficele'/>
+ <cd:variable name='gray' value='gri'/>
+ <cd:variable name='greek' value='grec'/>
+ <cd:variable name='grid' value='grila'/>
+ <cd:variable name='halfline' value='jumatatelinie'/>
+ <cd:variable name='handwritten' value='scrismanual'/>
+ <cd:variable name='hang' value='suspenda'/>
+ <cd:variable name='hanging' value='suspendat'/>
+ <cd:variable name='head' value='antet'/>
+ <cd:variable name='header' value='antet'/>
+ <cd:variable name='height' value='inaltime'/>
+ <cd:variable name='helptext' value='textajutator'/>
+ <cd:variable name='hencefore' value='precedent'/>
+ <cd:variable name='here' value='aici'/>
+ <cd:variable name='hereafter' value='urmator'/>
+ <cd:variable name='hidden' value='ascuns'/>
+ <cd:variable name='hiding' value='ascundere'/>
+ <cd:variable name='high' value='inalt'/>
+ <cd:variable name='horizontal' value='orizontal'/>
+ <cd:variable name='hyphenated' value='despsilabe'/>
+ <cd:variable name='hz' value='hz'/>
+ <cd:variable name='inbetween' value='intre'/>
+ <cd:variable name='index' value='index'/>
+ <cd:variable name='indices' value='indexuri'/>
+ <cd:variable name='informeel' value='informeel'/>
+ <cd:variable name='inherit' value='inherit'/>
+ <cd:variable name='inleft' value='instanga'/>
+ <cd:variable name='inmargin' value='inmargine'/>
+ <cd:variable name='inner' value='intern'/>
+ <cd:variable name='inneredge' value='inneredge'/>
+ <cd:variable name='innermargin' value='innermargin'/>
+ <cd:variable name='inright' value='indreapta'/>
+ <cd:variable name='interaction' value='interactiune'/>
+ <cd:variable name='interactionmenu' value='meniuinteractiune'/>
+ <cd:variable name='intermezzi' value='intermezzi'/>
+ <cd:variable name='intermezzo' value='intermezzo'/>
+ <cd:variable name='intext' value='intext'/>
+ <cd:variable name='intro' value='intro'/>
+ <cd:variable name='italic' value='italic'/>
+ <cd:variable name='italicbold' value='italicaldin'/>
+ <cd:variable name='item' value='element'/>
+ <cd:variable name='itemize' value='enumerare'/>
+ <cd:variable name='its' value='propriu'/>
+ <cd:variable name='january' value='ianuarie'/>
+ <cd:variable name='joinedup' value='unit'/>
+ <cd:variable name='july' value='iulie'/>
+ <cd:variable name='june' value='iunie'/>
+ <cd:variable name='keep' value='mentine'/>
+ <cd:variable name='knockout' value='knockout'/>
+ <cd:variable name='label' value='eticheta'/>
+ <cd:variable name='landscape' value='vedere'/>
+ <cd:variable name='last' value='ultim'/>
+ <cd:variable name='lastcolumn' value='lastcolumn'/>
+ <cd:variable name='lastpage' value='ultimapagina'/>
+ <cd:variable name='lastpagenumber' value='lastpagenumber'/>
+ <cd:variable name='lastsubpage' value='ultimasubpagina'/>
+ <cd:variable name='layer' value='layer'/>
+ <cd:variable name='left' value='stanga'/>
+ <cd:variable name='leftedge' value='bordurastanga'/>
+ <cd:variable name='lefthanging' value='lefthanging'/>
+ <cd:variable name='leftmargin' value='marginestanga'/>
+ <cd:variable name='leftpage' value='paginastanga'/>
+ <cd:variable name='lefttoright' value='lefttoright'/>
+ <cd:variable name='legend' value='legenda'/>
+ <cd:variable name='lesshyphenation' value='lesshyphenation'/>
+ <cd:variable name='line' value='linie'/>
+ <cd:variable name='linenote' value='linenote'/>
+ <cd:variable name='lines' value='linii'/>
+ <cd:variable name='list' value='lista'/>
+ <cd:variable name='local' value='local'/>
+ <cd:variable name='localenvironment' value='mediulocal'/>
+ <cd:variable name='logo' value='logo'/>
+ <cd:variable name='logos' value='logos'/>
+ <cd:variable name='lohi' value='lohi'/>
+ <cd:variable name='loose' value='larg'/>
+ <cd:variable name='low' value='jos'/>
+ <cd:variable name='ls' value='ls'/>
+ <cd:variable name='makeup' value='marcaj'/>
+ <cd:variable name='mar' value='mar'/>
+ <cd:variable name='march' value='martie'/>
+ <cd:variable name='margin' value='margine'/>
+ <cd:variable name='marginedge' value='marginebordura'/>
+ <cd:variable name='margintitle' value='titlumarginal'/>
+ <cd:variable name='marking' value='marcaje'/>
+ <cd:variable name='mathalignment' value='mathalignment'/>
+ <cd:variable name='mathcases' value='mathcases'/>
+ <cd:variable name='mathmatrix' value='mathmatrix'/>
+ <cd:variable name='max' value='max'/>
+ <cd:variable name='may' value='mai'/>
+ <cd:variable name='mediaeval' value='medieval'/>
+ <cd:variable name='medium' value='mediu'/>
+ <cd:variable name='middle' value='centru'/>
+ <cd:variable name='min' value='min'/>
+ <cd:variable name='minheight' value='inaltimeminima'/>
+ <cd:variable name='minwidth' value='latimeminima'/>
+ <cd:variable name='mirrored' value='oglindit'/>
+ <cd:variable name='monday' value='luni'/>
+ <cd:variable name='mono' value='mono'/>
+ <cd:variable name='month' value='luna'/>
+ <cd:variable name='morehyphenation' value='morehyphenation'/>
+ <cd:variable name='name' value='nume'/>
+ <cd:variable name='narrow' value='ingust'/>
+ <cd:variable name='negative' value='negativ'/>
+ <cd:variable name='never' value='niciodata'/>
+ <cd:variable name='new' value='nou'/>
+ <cd:variable name='next' value='urmatorul'/>
+ <cd:variable name='nextevenpage' value='paginaparaurmatoarea'/>
+ <cd:variable name='nextoddpage' value='paginaimparaurmatoarea'/>
+ <cd:variable name='nextpage' value='paginaurmatoare'/>
+ <cd:variable name='nextsubpage' value='urmatoareasubpagina'/>
+ <cd:variable name='no' value='nu'/>
+ <cd:variable name='nocheck' value='nocheck'/>
+ <cd:variable name='nofit' value='nofit'/>
+ <cd:variable name='nogrid' value='nogrid'/>
+ <cd:variable name='nohz' value='nohz'/>
+ <cd:variable name='nomarking' value='faramarcare'/>
+ <cd:variable name='none' value='niciunul'/>
+ <cd:variable name='nonumber' value='nonumber'/>
+ <cd:variable name='normal' value='normal'/>
+ <cd:variable name='nospacing' value='nospacing'/>
+ <cd:variable name='not' value='nu'/>
+ <cd:variable name='note' value='note'/>
+ <cd:variable name='nothanging' value='nothanging'/>
+ <cd:variable name='nothyphenated' value='nedespsilabe'/>
+ <cd:variable name='november' value='noiembrie'/>
+ <cd:variable name='nowhere' value='niciunde'/>
+ <cd:variable name='nowhite' value='faraalb'/>
+ <cd:variable name='number' value='numar'/>
+ <cd:variable name='numbers' value='numere'/>
+ <cd:variable name='october' value='octombrie'/>
+ <cd:variable name='odd' value='impar'/>
+ <cd:variable name='off' value='dezactivat'/>
+ <cd:variable name='offset' value='offset'/>
+ <cd:variable name='old' value='old'/>
+ <cd:variable name='on' value='on'/>
+ <cd:variable name='one' value='unu'/>
+ <cd:variable name='opposite' value='opus'/>
+ <cd:variable name='outer' value='extern'/>
+ <cd:variable name='outeredge' value='outeredge'/>
+ <cd:variable name='outermargin' value='outermargin'/>
+ <cd:variable name='overlay' value='overlay'/>
+ <cd:variable name='overprint' value='overprint'/>
+ <cd:variable name='packed' value='impachetat'/>
+ <cd:variable name='page' value='pagina'/>
+ <cd:variable name='pagecomment' value='comentariupagina'/>
+ <cd:variable name='pagenumber' value='numarpagina'/>
+ <cd:variable name='paper' value='foaie'/>
+ <cd:variable name='paragraph' value='paragraf'/>
+ <cd:variable name='part' value='parte'/>
+ <cd:variable name='positive' value='positiv'/>
+ <cd:variable name='postponing' value='postponing'/>
+ <cd:variable name='postscript' value='postscript'/>
+ <cd:variable name='preference' value='preferinta'/>
+ <cd:variable name='preview' value='previzualizare'/>
+ <cd:variable name='previous' value='precedent'/>
+ <cd:variable name='previousevenpage' value='paginaparaprecedenta'/>
+ <cd:variable name='previousoddpage' value='paginaimparaprecedenta'/>
+ <cd:variable name='previouspage' value='paginaanterioara'/>
+ <cd:variable name='previoussubpage' value='subpaginaanterioara'/>
+ <cd:variable name='printable' value='tiparibil'/>
+ <cd:variable name='process' value='process'/>
+ <cd:variable name='product' value='produs'/>
+ <cd:variable name='program' value='program'/>
+ <cd:variable name='project' value='proiect'/>
+ <cd:variable name='protected' value='protejat'/>
+ <cd:variable name='quadruple' value='cvadrupul'/>
+ <cd:variable name='quotation' value='citat'/>
+ <cd:variable name='quote' value='minicitat'/>
+ <cd:variable name='ran' value='rulat'/>
+ <cd:variable name='random' value='aleator'/>
+ <cd:variable name='readonly' value='readonly'/>
+ <cd:variable name='rectangular' value='rectangular'/>
+ <cd:variable name='referral' value='referinta'/>
+ <cd:variable name='register' value='registru'/>
+ <cd:variable name='regular' value='regular'/>
+ <cd:variable name='rekening' value='rekening'/>
+ <cd:variable name='relative' value='relativ'/>
+ <cd:variable name='repeat' value='repetat'/>
+ <cd:variable name='required' value='obligatoriu'/>
+ <cd:variable name='reset' value='reset'/>
+ <cd:variable name='reverse' value='reverse'/>
+ <cd:variable name='right' value='dreapta'/>
+ <cd:variable name='rightedge' value='borduradreapta'/>
+ <cd:variable name='righthanging' value='righthanging'/>
+ <cd:variable name='rightmargin' value='marginedreapta'/>
+ <cd:variable name='rightpage' value='paginadreapta'/>
+ <cd:variable name='righttoleft' value='righttoleft'/>
+ <cd:variable name='roman' value='roman'/>
+ <cd:variable name='romannumerals' value='numereromane'/>
+ <cd:variable name='rotate' value='rotit'/>
+ <cd:variable name='rotated' value='rotat'/>
+ <cd:variable name='round' value='rotund'/>
+ <cd:variable name='row' value='rand'/>
+ <cd:variable name='rule' value='rigla'/>
+ <cd:variable name='samepage' value='aceeasipagina'/>
+ <cd:variable name='sans' value='sans'/>
+ <cd:variable name='sansbold' value='sansaldin'/>
+ <cd:variable name='sansserif' value='sansserif'/>
+ <cd:variable name='saturday' value='sambata'/>
+ <cd:variable name='screen' value='ecran'/>
+ <cd:variable name='section' value='sectiune'/>
+ <cd:variable name='sectionblockenvironment' value='blocsectiuneambient'/>
+ <cd:variable name='sectionnumber' value='numarsetiune'/>
+ <cd:variable name='see' value='vezi'/>
+ <cd:variable name='september' value='septembrie'/>
+ <cd:variable name='serif' value='serif'/>
+ <cd:variable name='serried' value='serried'/>
+ <cd:variable name='setups' value='setari'/>
+ <cd:variable name='sheet' value='sheet'/>
+ <cd:variable name='singlesided' value='ofata'/>
+ <cd:variable name='slanted' value='inclinat'/>
+ <cd:variable name='slantedbold' value='inclinataldin'/>
+ <cd:variable name='small' value='mic'/>
+ <cd:variable name='smallbodyfont' value='smallbodyfont'/>
+ <cd:variable name='smallbold' value='micaldin'/>
+ <cd:variable name='smallbolditalic' value='micaldininclinat'/>
+ <cd:variable name='smallboldslanted' value='micaldininclinat'/>
+ <cd:variable name='smallcaps' value='majusculemici'/>
+ <cd:variable name='smallitalic' value='micitalic'/>
+ <cd:variable name='smallitalicbold' value='micitalicaldin'/>
+ <cd:variable name='smallnormal' value='micnormal'/>
+ <cd:variable name='smallslanted' value='micinclinat'/>
+ <cd:variable name='smallslantedbold' value='micinclinataldin'/>
+ <cd:variable name='smalltype' value='mictype'/>
+ <cd:variable name='somewhere' value='undeva'/>
+ <cd:variable name='sorted' value='sortat'/>
+ <cd:variable name='space' value='spatiu'/>
+ <cd:variable name='spacing' value='spatiere'/>
+ <cd:variable name='speech' value='speech'/>
+ <cd:variable name='split' value='split'/>
+ <cd:variable name='spot' value='spot'/>
+ <cd:variable name='standard' value='standard'/>
+ <cd:variable name='start' value='start'/>
+ <cd:variable name='sticker' value='sticker'/>
+ <cd:variable name='stop' value='stop'/>
+ <cd:variable name='stopper' value='stopper'/>
+ <cd:variable name='stretch' value='dilatat'/>
+ <cd:variable name='strict' value='strict'/>
+ <cd:variable name='strong' value='strong'/>
+ <cd:variable name='strut' value='strut'/>
+ <cd:variable name='sub' value='sub'/>
+ <cd:variable name='subbackward' value='subinapoi'/>
+ <cd:variable name='subformula' value='subformula'/>
+ <cd:variable name='subforward' value='subavans'/>
+ <cd:variable name='subject' value='subiect'/>
+ <cd:variable name='subpage' value='subpagina'/>
+ <cd:variable name='subsection' value='subsectiune'/>
+ <cd:variable name='subsubject' value='subsubiect'/>
+ <cd:variable name='subsubsection' value='subsubsectiune'/>
+ <cd:variable name='subsubsubject' value='subsubsubiect'/>
+ <cd:variable name='subsubsubsection' value='subsubsubsectiune'/>
+ <cd:variable name='subsubsubsubject' value='subsubsubsubiect'/>
+ <cd:variable name='subsubsubsubsection' value='subsubsubsubsectiune'/>
+ <cd:variable name='subsubsubsubsubject' value='subsubsubsubsubiect'/>
+ <cd:variable name='subsubsubsubsubsection' value='subsubsubsubsubsectiune'/>
+ <cd:variable name='subsubsubsubsubsubject' value='subsubsubsubsubsubiect'/>
+ <cd:variable name='subsubsubsubsubsubsection' value='subsubsubsubsubsubsectiune'/>
+ <cd:variable name='subsubsubsubsubsubsubject' value='subsubsubsubsubsubsubiect'/>
+ <cd:variable name='subsubsubsubsubsubsubsection' value='subsubsubsubsubsubsubsectiune'/>
+ <cd:variable name='subsubsubsubsubsubsubsubject' value='subsubsubsubsubsubsubsubiect'/>
+ <cd:variable name='subsubsubsubsubsubsubsubsection' value='subsubsubsubsubsubsubsubsectiune'/>
+ <cd:variable name='subsubsubsubsubsubsubsubsubject' value='subsubsubsubsubsubsubsubsubiect'/>
+ <cd:variable name='subsubsubsubsubsubsubsubsubsection' value='subsubsubsubsubsubsubsubsubsectiune'/>
+ <cd:variable name='subsubsubsubsubsubsubsubsubsubject' value='subsubsubsubsubsubsubsubsubsubiect'/>
+ <cd:variable name='sunday' value='duminica'/>
+ <cd:variable name='support' value='suport'/>
+ <cd:variable name='sym' value='sym'/>
+ <cd:variable name='symbol' value='simbol'/>
+ <cd:variable name='synchronize' value='synchronize'/>
+ <cd:variable name='system' value='sistem'/>
+ <cd:variable name='table' value='tabelul'/>
+ <cd:variable name='tablehead' value='antettabel'/>
+ <cd:variable name='tables' value='tabelele'/>
+ <cd:variable name='tabletail' value='subsoltabel'/>
+ <cd:variable name='tabulate' value='tabulate'/>
+ <cd:variable name='tabulatehead' value='tabulatehead'/>
+ <cd:variable name='tabulatetail' value='tabulatetail'/>
+ <cd:variable name='tall' value='inalt'/>
+ <cd:variable name='teletype' value='teletype'/>
+ <cd:variable name='temporary' value='temporar'/>
+ <cd:variable name='test' value='test'/>
+ <cd:variable name='text' value='text'/>
+ <cd:variable name='three' value='trei'/>
+ <cd:variable name='thursday' value='joi'/>
+ <cd:variable name='title' value='titlu'/>
+ <cd:variable name='toggle' value='toggle'/>
+ <cd:variable name='tolerant' value='tolerant'/>
+ <cd:variable name='top' value='sus'/>
+ <cd:variable name='tuesday' value='marti'/>
+ <cd:variable name='two' value='doi'/>
+ <cd:variable name='txt' value='txt'/>
+ <cd:variable name='type' value='type'/>
+ <cd:variable name='typing' value='typing'/>
+ <cd:variable name='unavailable' value='nedisponibil'/>
+ <cd:variable name='unit' value='unitate'/>
+ <cd:variable name='units' value='unitati'/>
+ <cd:variable name='unknown' value='necunoscut'/>
+ <cd:variable name='unpacked' value='despachetat'/>
+ <cd:variable name='url' value='url'/>
+ <cd:variable name='used' value='folosit'/>
+ <cd:variable name='value' value='valoare'/>
+ <cd:variable name='vertical' value='vertical'/>
+ <cd:variable name='very' value='foarte'/>
+ <cd:variable name='verystrict' value='foartestrict'/>
+ <cd:variable name='verytolerant' value='foartetolerant'/>
+ <cd:variable name='weak' value='weak'/>
+ <cd:variable name='wednesday' value='miercuri'/>
+ <cd:variable name='week' value='saptamana'/>
+ <cd:variable name='weekday' value='zisaptamana'/>
+ <cd:variable name='white' value='alb'/>
+ <cd:variable name='wide' value='larg'/>
+ <cd:variable name='width' value='latime'/>
+ <cd:variable name='xml' value='xml'/>
+ <cd:variable name='year' value='an'/>
+ <cd:variable name='yes' value='da'/>
+ </cd:variable>
- <cd:variables>
- <cd:variable name="environment" value="mediu"/>
- <cd:variable name="component" value="componenta"/>
- <cd:variable name="product" value="produs"/>
- <cd:variable name="project" value="proiect"/>
- </cd:variables>
+ <!-- definitions for interface constants for language ro -->
- <cd:variables>
- <cd:variable name="sunday" value="duminica"/>
- <cd:variable name="monday" value="luni"/>
- <cd:variable name="tuesday" value="marti"/>
- <cd:variable name="wednesday" value="miercuri"/>
- <cd:variable name="thursday" value="joi"/>
- <cd:variable name="friday" value="vineri"/>
- <cd:variable name="saturday" value="sambata"/>
- </cd:variables>
+ <cd:constants>
+ <cd:constant name='action' value='actiune'/>
+ <cd:constant name='address' value='adresa'/>
+ <cd:constant name='after' value='dupa'/>
+ <cd:constant name='afterhead' value='dupatitlu'/>
+ <cd:constant name='afterkey' value='dupatasta'/>
+ <cd:constant name='align' value='aliniere'/>
+ <cd:constant name='aligncharacter' value='aliniazacaracter'/>
+ <cd:constant name='alignmentcharacter' value='alierecaracter'/>
+ <cd:constant name='aligntitle' value='alinieretitlu'/>
+ <cd:constant name='alternative' value='alternativ'/>
+ <cd:constant name='apa' value='apa'/>
+ <cd:constant name='arrow' value='sageata'/>
+ <cd:constant name='at' value='la'/>
+ <cd:constant name='author' value='autor'/>
+ <cd:constant name='auto' value='auto'/>
+ <cd:constant name='autofile' value='autofile'/>
+ <cd:constant name='autofocus' value='autofocus'/>
+ <cd:constant name='autohang' value='autohang'/>
+ <cd:constant name='autostrut' value='autostrut'/>
+ <cd:constant name='autowidth' value='autolatime'/>
+ <cd:constant name='axis' value='axa'/>
+ <cd:constant name='background' value='fundal'/>
+ <cd:constant name='backgroundcolor' value='culoarefundal'/>
+ <cd:constant name='backgroundcorner' value='coltfundal'/>
+ <cd:constant name='backgrounddepth' value='adancimefundal'/>
+ <cd:constant name='backgroundoffset' value='offsetfundal'/>
+ <cd:constant name='backgroundradius' value='razafundal'/>
+ <cd:constant name='backgroundscreen' value='ecranfundal'/>
+ <cd:constant name='backspace' value='spatiuspate'/>
+ <cd:constant name='balance' value='balanta'/>
+ <cd:constant name='before' value='inainte'/>
+ <cd:constant name='beforehead' value='inaintetitlu'/>
+ <cd:constant name='bet' value='bet'/>
+ <cd:constant name='big' value='mare'/>
+ <cd:constant name='blank' value='blanc'/>
+ <cd:constant name='blockway' value='blockway'/>
+ <cd:constant name='bodyfont' value='fonttext'/>
+ <cd:constant name='bookmark' value='semncarte'/>
+ <cd:constant name='bottom' value='jos'/>
+ <cd:constant name='bottomafter' value='bottomafter'/>
+ <cd:constant name='bottombefore' value='bottombefore'/>
+ <cd:constant name='bottomdistance' value='distantajos'/>
+ <cd:constant name='bottomframe' value='framejos'/>
+ <cd:constant name='bottomoffset' value='offsetjos'/>
+ <cd:constant name='bottomspace' value='spatiujos'/>
+ <cd:constant name='bottomstate' value='starejos'/>
+ <cd:constant name='cache' value='cache'/>
+ <cd:constant name='calculate' value='calculeaza'/>
+ <cd:constant name='ccommand' value='comandac'/>
+ <cd:constant name='click' value='click'/>
+ <cd:constant name='clickin' value='clickintru'/>
+ <cd:constant name='clickout' value='clickies'/>
+ <cd:constant name='clipoffset' value='clipoffset'/>
+ <cd:constant name='closeaction' value='actiuneinchidere'/>
+ <cd:constant name='closecommand' value='closecommand'/>
+ <cd:constant name='closepageaction' value='actiuneinchiderepagina'/>
+ <cd:constant name='closesymbol' value='closesymbol'/>
+ <cd:constant name='color' value='culoare'/>
+ <cd:constant name='column' value='coloana'/>
+ <cd:constant name='columndistance' value='distantacoloane'/>
+ <cd:constant name='columns' value='coloane'/>
+ <cd:constant name='command' value='comanda'/>
+ <cd:constant name='commandafter' value='comandadupa'/>
+ <cd:constant name='commandbefore' value='comandainainte'/>
+ <cd:constant name='commands' value='comenzi'/>
+ <cd:constant name='component' value='component'/>
+ <cd:constant name='compoundhyphen' value='compoundhyphen'/>
+ <cd:constant name='compress' value='compress'/>
+ <cd:constant name='connector' value='connector'/>
+ <cd:constant name='continue' value='continua'/>
+ <cd:constant name='contrastcolor' value='culoarecontrast'/>
+ <cd:constant name='controls' value='controale'/>
+ <cd:constant name='conversion' value='conversie'/>
+ <cd:constant name='convertfile' value='convertestefisier'/>
+ <cd:constant name='corner' value='colt'/>
+ <cd:constant name='coupling' value='cuplare'/>
+ <cd:constant name='couplingway' value='modcuplare'/>
+ <cd:constant name='criterium' value='criteriu'/>
+ <cd:constant name='current' value='curent'/>
+ <cd:constant name='cutspace' value='cutspace'/>
+ <cd:constant name='dash' value='dash'/>
+ <cd:constant name='dat' value='dat'/>
+ <cd:constant name='date' value='data'/>
+ <cd:constant name='deepnumbercommand' value='deepnumbercommand'/>
+ <cd:constant name='deeptextcommand' value='deeptextcommand'/>
+ <cd:constant name='default' value='implicit'/>
+ <cd:constant name='delay' value='intarziere'/>
+ <cd:constant name='depth' value='inaltime'/>
+ <cd:constant name='depthcorrection' value='corectieadancime'/>
+ <cd:constant name='direction' value='directie'/>
+ <cd:constant name='directory' value='director'/>
+ <cd:constant name='display' value='display'/>
+ <cd:constant name='distance' value='distanta'/>
+ <cd:constant name='dot' value='punct'/>
+ <cd:constant name='doublesided' value='douafete'/>
+ <cd:constant name='dummy' value='dummy'/>
+ <cd:constant name='dx' value='dx'/>
+ <cd:constant name='dy' value='dy'/>
+ <cd:constant name='edge' value='bordura'/>
+ <cd:constant name='edgedistance' value='distantabordura'/>
+ <cd:constant name='empty' value='gol'/>
+ <cd:constant name='equalheight' value='equalheight'/>
+ <cd:constant name='equalwidth' value='equalwidth'/>
+ <cd:constant name='escape' value='escape'/>
+ <cd:constant name='evenmargin' value='marginepara'/>
+ <cd:constant name='expansion' value='expansiune'/>
+ <cd:constant name='extras' value='extras'/>
+ <cd:constant name='factor' value='factor'/>
+ <cd:constant name='fallback' value='fallback'/>
+ <cd:constant name='family' value='familie'/>
+ <cd:constant name='fieldbackgroundcolor' value='culoarefundalcamp'/>
+ <cd:constant name='fieldframecolor' value='culoareframecamp'/>
+ <cd:constant name='fieldlayer' value='fieldlayer'/>
+ <cd:constant name='fieldoffset' value='offsetcamp'/>
+ <cd:constant name='file' value='fisier'/>
+ <cd:constant name='filtercommand' value='filtercommand'/>
+ <cd:constant name='focus' value='focus'/>
+ <cd:constant name='focusin' value='focusin'/>
+ <cd:constant name='focusout' value='focusout'/>
+ <cd:constant name='footer' value='subsol'/>
+ <cd:constant name='footerdistance' value='distantasubsol'/>
+ <cd:constant name='footerstate' value='staresubsol'/>
+ <cd:constant name='foregroundcolor' value='foregroundcolor'/>
+ <cd:constant name='foregroundstyle' value='foregroundstyle'/>
+ <cd:constant name='format' value='format'/>
+ <cd:constant name='frame' value='frame'/>
+ <cd:constant name='framecolor' value='culoareframe'/>
+ <cd:constant name='framecorner' value='coltframe'/>
+ <cd:constant name='framedepth' value='adancimeframe'/>
+ <cd:constant name='frameoffset' value='offsetframe'/>
+ <cd:constant name='frameradius' value='razaframe'/>
+ <cd:constant name='frames' value='frames'/>
+ <cd:constant name='from' value='dela'/>
+ <cd:constant name='get' value='adu'/>
+ <cd:constant name='global' value='global'/>
+ <cd:constant name='grid' value='grid'/>
+ <cd:constant name='hang' value='suspenda'/>
+ <cd:constant name='headcolor' value='culoaretitlu'/>
+ <cd:constant name='headcommand' value='headcommand'/>
+ <cd:constant name='headconversion' value='conversietitlu'/>
+ <cd:constant name='header' value='antet'/>
+ <cd:constant name='headerdistance' value='distantaantet'/>
+ <cd:constant name='headerstate' value='stareantet'/>
+ <cd:constant name='headlabel' value='etichetatitlu'/>
+ <cd:constant name='headnumber' value='numartitlu'/>
+ <cd:constant name='headstyle' value='stiltitlu'/>
+ <cd:constant name='height' value='inaltime'/>
+ <cd:constant name='hfactor' value='hfactor'/>
+ <cd:constant name='hfil' value='hfil'/>
+ <cd:constant name='hidenumber' value='hidenumber'/>
+ <cd:constant name='hoffset' value='hoffset'/>
+ <cd:constant name='horoffset' value='offsetoriz'/>
+ <cd:constant name='hyphen' value='hyphen'/>
+ <cd:constant name='icommand' value='comandai'/>
+ <cd:constant name='in' value='in'/>
+ <cd:constant name='inbetween' value='intre'/>
+ <cd:constant name='increment' value='increment'/>
+ <cd:constant name='incrementnumber' value='numarincrement'/>
+ <cd:constant name='indenting' value='aliniat'/>
+ <cd:constant name='indentnext' value='aliniaturmator'/>
+ <cd:constant name='indicator' value='indicator'/>
+ <cd:constant name='inner' value='intern'/>
+ <cd:constant name='innermargin' value='innermargin'/>
+ <cd:constant name='inputfile' value='inputfile'/>
+ <cd:constant name='interaction' value='interactiune'/>
+ <cd:constant name='interlinespace' value='spatiereinterliniara'/>
+ <cd:constant name='itemalign' value='itemalign'/>
+ <cd:constant name='items' value='elemente'/>
+ <cd:constant name='ken' value='ken'/>
+ <cd:constant name='keyexpansion' value='keyexpansion'/>
+ <cd:constant name='keyword' value='keyword'/>
+ <cd:constant name='label' value='eticheta'/>
+ <cd:constant name='left' value='stanga'/>
+ <cd:constant name='leftcolor' value='culoarestanga'/>
+ <cd:constant name='leftcompoundhyphen' value='leftcompoundhyphen'/>
+ <cd:constant name='leftedge' value='bordurastanga'/>
+ <cd:constant name='leftedgedistance' value='distantabordurastanga'/>
+ <cd:constant name='leftframe' value='framestanga'/>
+ <cd:constant name='lefthyphen' value='lefthyphen'/>
+ <cd:constant name='leftmargin' value='marginestanga'/>
+ <cd:constant name='leftmargindistance' value='distantamarginestanga'/>
+ <cd:constant name='leftoffset' value='offsetstanga'/>
+ <cd:constant name='leftquotation' value='citatstanga'/>
+ <cd:constant name='leftquote' value='minicitatstanga'/>
+ <cd:constant name='leftsentence' value='propozitiestanga'/>
+ <cd:constant name='leftspeech' value='leftspeech'/>
+ <cd:constant name='leftstyle' value='stilstanga'/>
+ <cd:constant name='leftsubsentence' value='subpropozitiestanga'/>
+ <cd:constant name='lefttext' value='textstanga'/>
+ <cd:constant name='leftwidth' value='latimestanga'/>
+ <cd:constant name='level' value='nivel'/>
+ <cd:constant name='levels' value='nivele'/>
+ <cd:constant name='limittext' value='limittext'/>
+ <cd:constant name='line' value='linie'/>
+ <cd:constant name='linecorrection' value='corectielinie'/>
+ <cd:constant name='lines' value='linii'/>
+ <cd:constant name='list' value='lista'/>
+ <cd:constant name='listtext' value='listtext'/>
+ <cd:constant name='local' value='local'/>
+ <cd:constant name='location' value='locatie'/>
+ <cd:constant name='logo' value='logo'/>
+ <cd:constant name='logos' value='logos'/>
+ <cd:constant name='marcolor' value='culoaremarcaj'/>
+ <cd:constant name='margin' value='margine'/>
+ <cd:constant name='margindistance' value='distantamargine'/>
+ <cd:constant name='marginedge' value='coltbordura'/>
+ <cd:constant name='marginedgetext' value='textcoltbordura'/>
+ <cd:constant name='margintext' value='textmargine'/>
+ <cd:constant name='marking' value='marcaje'/>
+ <cd:constant name='marstyle' value='stilmarcaj'/>
+ <cd:constant name='max' value='max'/>
+ <cd:constant name='maxheight' value='inaltimemaxima'/>
+ <cd:constant name='maxwidth' value='latimemaxima'/>
+ <cd:constant name='menu' value='meniu'/>
+ <cd:constant name='method' value='metoda'/>
+ <cd:constant name='middle' value='mijloc'/>
+ <cd:constant name='middlespeech' value='middlespeech'/>
+ <cd:constant name='middletext' value='textmijloc'/>
+ <cd:constant name='midsentence' value='midsentence'/>
+ <cd:constant name='min' value='min'/>
+ <cd:constant name='mindepth' value='mindepth'/>
+ <cd:constant name='minheight' value='inaltimeminima'/>
+ <cd:constant name='minwidth' value='latimeminima'/>
+ <cd:constant name='n' value='n'/>
+ <cd:constant name='name' value='nume'/>
+ <cd:constant name='nbottom' value='njos'/>
+ <cd:constant name='nc' value='nc'/>
+ <cd:constant name='next' value='urmatorul'/>
+ <cd:constant name='nl' value='nl'/>
+ <cd:constant name='nleft' value='nstanga'/>
+ <cd:constant name='nlines' value='nlinii'/>
+ <cd:constant name='norm' value='norm'/>
+ <cd:constant name='nr' value='nr'/>
+ <cd:constant name='nright' value='ndreapta'/>
+ <cd:constant name='ntop' value='nsus'/>
+ <cd:constant name='number' value='numar'/>
+ <cd:constant name='numbercolor' value='culoarenumar'/>
+ <cd:constant name='numbercommand' value='comandanumar'/>
+ <cd:constant name='numberconversion' value='numberconversion'/>
+ <cd:constant name='numberconversionset' value='numberconversionset'/>
+ <cd:constant name='numberdistance' value='numberdistance'/>
+ <cd:constant name='numbering' value='numerotare'/>
+ <cd:constant name='numberorder' value='numberorder'/>
+ <cd:constant name='numberprefix' value='numberprefix'/>
+ <cd:constant name='numbersegments' value='numbersegments'/>
+ <cd:constant name='numberseparator' value='separatornumar'/>
+ <cd:constant name='numberseparatorset' value='numberseparatorset'/>
+ <cd:constant name='numberset' value='numberset'/>
+ <cd:constant name='numberstopper' value='numberstopper'/>
+ <cd:constant name='numberstyle' value='stilnumar'/>
+ <cd:constant name='numberwidth' value='numberwidth'/>
+ <cd:constant name='nx' value='nx'/>
+ <cd:constant name='ny' value='ny'/>
+ <cd:constant name='object' value='obiect'/>
+ <cd:constant name='obstruction' value='obstructie'/>
+ <cd:constant name='oddmargin' value='margineimpara'/>
+ <cd:constant name='offset' value='offset'/>
+ <cd:constant name='openaction' value='actiunedeschidere'/>
+ <cd:constant name='openpageaction' value='actiunedeschiderepagina'/>
+ <cd:constant name='option' value='optiune'/>
+ <cd:constant name='orientation' value='orientation'/>
+ <cd:constant name='outermargin' value='outermargin'/>
+ <cd:constant name='overprint' value='overprint'/>
+ <cd:constant name='ownnumber' value='numarpropriu'/>
+ <cd:constant name='page' value='pagina'/>
+ <cd:constant name='pageboundaries' value='marginipagina'/>
+ <cd:constant name='pagecolor' value='culoarepagina'/>
+ <cd:constant name='pagecommand' value='comandapagina'/>
+ <cd:constant name='pageconversion' value='pageconversion'/>
+ <cd:constant name='pageconversionset' value='pageconversionset'/>
+ <cd:constant name='pagenumber' value='numarpagina'/>
+ <cd:constant name='pageprefix' value='pageprefix'/>
+ <cd:constant name='pageprefixconnector' value='pageprefixconnector'/>
+ <cd:constant name='pageprefixconversion' value='pageprefixconversion'/>
+ <cd:constant name='pageprefixconversionset' value='pageprefixconversionset'/>
+ <cd:constant name='pageprefixsegments' value='pageprefixsegments'/>
+ <cd:constant name='pageprefixseparatorset' value='pageprefixseparatorset'/>
+ <cd:constant name='pageprefixset' value='pageprefixset'/>
+ <cd:constant name='pageprefixstopper' value='pageprefixstopper'/>
+ <cd:constant name='pagesegments' value='pagesegments'/>
+ <cd:constant name='pageseparatorset' value='pageseparatorset'/>
+ <cd:constant name='pageset' value='pageset'/>
+ <cd:constant name='pagestate' value='pagestate'/>
+ <cd:constant name='pagestopper' value='pagestopper'/>
+ <cd:constant name='pagestyle' value='stilpagina'/>
+ <cd:constant name='palet' value='paleta'/>
+ <cd:constant name='paper' value='hartie'/>
+ <cd:constant name='paragraph' value='paragraf'/>
+ <cd:constant name='place' value='pune'/>
+ <cd:constant name='placehead' value='punetitlu'/>
+ <cd:constant name='placestopper' value='punestopper'/>
+ <cd:constant name='position' value='pozitie'/>
+ <cd:constant name='prefix' value='prefix'/>
+ <cd:constant name='prefixconnector' value='prefixconnector'/>
+ <cd:constant name='prefixconversion' value='prefixconversion'/>
+ <cd:constant name='prefixconversionset' value='prefixconversionset'/>
+ <cd:constant name='prefixsegments' value='prefixsegments'/>
+ <cd:constant name='prefixseparatorset' value='prefixseparatorset'/>
+ <cd:constant name='prefixset' value='prefixset'/>
+ <cd:constant name='prefixstopper' value='prefixstopper'/>
+ <cd:constant name='preset' value='preset'/>
+ <cd:constant name='preview' value='previzualizare'/>
+ <cd:constant name='previous' value='precendent'/>
+ <cd:constant name='previousnumber' value='numarprecedent'/>
+ <cd:constant name='process' value='process'/>
+ <cd:constant name='radius' value='raza'/>
+ <cd:constant name='random' value='aleator'/>
+ <cd:constant name='reduction' value='reducere'/>
+ <cd:constant name='ref' value='ref'/>
+ <cd:constant name='reference' value='referinta'/>
+ <cd:constant name='referenceprefix' value='referenceprefix'/>
+ <cd:constant name='referencing' value='referinta'/>
+ <cd:constant name='regionin' value='regiuneintrare'/>
+ <cd:constant name='regionout' value='regiuneiesire'/>
+ <cd:constant name='repeat' value='repeta'/>
+ <cd:constant name='reset' value='reset'/>
+ <cd:constant name='resetnumber' value='resetnumber'/>
+ <cd:constant name='resolution' value='rezolutie'/>
+ <cd:constant name='right' value='dreapta'/>
+ <cd:constant name='rightcolor' value='culoaredreapta'/>
+ <cd:constant name='rightcompoundhyphen' value='rightcompoundhyphen'/>
+ <cd:constant name='rightedge' value='borduradreapta'/>
+ <cd:constant name='rightedgedistance' value='distantacoltdreapta'/>
+ <cd:constant name='rightframe' value='framedreapta'/>
+ <cd:constant name='righthyphen' value='righthyphen'/>
+ <cd:constant name='rightmargin' value='marginedreapta'/>
+ <cd:constant name='rightmargindistance' value='distantamarginedreapta'/>
+ <cd:constant name='rightoffset' value='offsetdreapta'/>
+ <cd:constant name='rightquotation' value='citatdreapta'/>
+ <cd:constant name='rightquote' value='minicitatdreapta'/>
+ <cd:constant name='rightsentence' value='propozitiedreapta'/>
+ <cd:constant name='rightspeech' value='rightspeech'/>
+ <cd:constant name='rightstyle' value='stildreapta'/>
+ <cd:constant name='rightsubsentence' value='subpropozitiedreapta'/>
+ <cd:constant name='righttext' value='textdreapta'/>
+ <cd:constant name='rightwidth' value='marginedreapta'/>
+ <cd:constant name='rotation' value='rotatie'/>
+ <cd:constant name='rule' value='rigla'/>
+ <cd:constant name='rulecolor' value='culoarerigla'/>
+ <cd:constant name='rulethickness' value='grosimerigla'/>
+ <cd:constant name='samepage' value='aceeasipagina'/>
+ <cd:constant name='sample' value='exemplu'/>
+ <cd:constant name='saveinlist' value='saveinlist'/>
+ <cd:constant name='scale' value='scala'/>
+ <cd:constant name='scope' value='scop'/>
+ <cd:constant name='screen' value='ecran'/>
+ <cd:constant name='section' value='sectiune'/>
+ <cd:constant name='sectionconversion' value='sectionconversion'/>
+ <cd:constant name='sectionconversionset' value='sectionconversionset'/>
+ <cd:constant name='sectionnumber' value='numarsectiune'/>
+ <cd:constant name='sectionresetset' value='sectionresetset'/>
+ <cd:constant name='sectionsegments' value='sectionsegments'/>
+ <cd:constant name='sectionseparatorset' value='sectionseparatorset'/>
+ <cd:constant name='sectionset' value='sectionset'/>
+ <cd:constant name='sectionstopper' value='sectionstopper'/>
+ <cd:constant name='separator' value='separator'/>
+ <cd:constant name='set' value='set'/>
+ <cd:constant name='setups' value='setups'/>
+ <cd:constant name='side' value='parte'/>
+ <cd:constant name='sidealign' value='sidealign'/>
+ <cd:constant name='sidemethod' value='sidemethod'/>
+ <cd:constant name='sidespaceafter' value='spatiulateraldupa'/>
+ <cd:constant name='sidespacebefore' value='spatiulateralinainte'/>
+ <cd:constant name='sign' value='semn'/>
+ <cd:constant name='size' value='dimensiune'/>
+ <cd:constant name='small' value='mic'/>
+ <cd:constant name='sorttype' value='sorttype'/>
+ <cd:constant name='source' value='sursa'/>
+ <cd:constant name='space' value='spatiu'/>
+ <cd:constant name='spaceafter' value='spatiudupa'/>
+ <cd:constant name='spacebefore' value='spatiuinainte'/>
+ <cd:constant name='spaceinbetween' value='spaceinbetween'/>
+ <cd:constant name='spacing' value='spatiere'/>
+ <cd:constant name='split' value='split'/>
+ <cd:constant name='splitcolor' value='splitcolor'/>
+ <cd:constant name='splitmethod' value='splitmethod'/>
+ <cd:constant name='splitoffset' value='splitoffset'/>
+ <cd:constant name='spot' value='spot'/>
+ <cd:constant name='stack' value='stack'/>
+ <cd:constant name='start' value='start'/>
+ <cd:constant name='state' value='stare'/>
+ <cd:constant name='step' value='pas'/>
+ <cd:constant name='stop' value='stop'/>
+ <cd:constant name='stopper' value='stopper'/>
+ <cd:constant name='stretch' value='dilatat'/>
+ <cd:constant name='strut' value='strut'/>
+ <cd:constant name='style' value='stil'/>
+ <cd:constant name='sub' value='sub'/>
+ <cd:constant name='subtitle' value='subtitlu'/>
+ <cd:constant name='suffix' value='suffix'/>
+ <cd:constant name='sx' value='sx'/>
+ <cd:constant name='sy' value='sy'/>
+ <cd:constant name='symalign' value='symaliniere'/>
+ <cd:constant name='symbol' value='simbol'/>
+ <cd:constant name='symbolset' value='setsimbol'/>
+ <cd:constant name='symcolor' value='culoaresimbol'/>
+ <cd:constant name='symstyle' value='stilsimbol'/>
+ <cd:constant name='synonym' value='sinonim'/>
+ <cd:constant name='synonymcolor' value='culoaresinonim'/>
+ <cd:constant name='synonymcommand' value='synonymcommand'/>
+ <cd:constant name='synonymstyle' value='stilsinonim'/>
+ <cd:constant name='tab' value='tab'/>
+ <cd:constant name='text' value='text'/>
+ <cd:constant name='textcolor' value='culoaretext'/>
+ <cd:constant name='textcommand' value='comandatext'/>
+ <cd:constant name='textdistance' value='textdistance'/>
+ <cd:constant name='textlayer' value='textlayer'/>
+ <cd:constant name='textmargin' value='textmargin'/>
+ <cd:constant name='textmethod' value='textmethod'/>
+ <cd:constant name='textseparator' value='separatortext'/>
+ <cd:constant name='textsize' value='dimensiunetext'/>
+ <cd:constant name='textstate' value='staretext'/>
+ <cd:constant name='textstyle' value='stiltext'/>
+ <cd:constant name='textwidth' value='latimetext'/>
+ <cd:constant name='title' value='titlu'/>
+ <cd:constant name='titlecolor' value='culoaretitlu'/>
+ <cd:constant name='titlecommand' value='titlecommand'/>
+ <cd:constant name='titledistance' value='distantatitlu'/>
+ <cd:constant name='titleleft' value='titleleft'/>
+ <cd:constant name='titleright' value='titleright'/>
+ <cd:constant name='titlestyle' value='stiltitlu'/>
+ <cd:constant name='to' value='catre'/>
+ <cd:constant name='tolerance' value='toleranta'/>
+ <cd:constant name='top' value='sus'/>
+ <cd:constant name='topdistance' value='distantasus'/>
+ <cd:constant name='topframe' value='framesus'/>
+ <cd:constant name='topoffset' value='offsetsus'/>
+ <cd:constant name='topspace' value='spatiusus'/>
+ <cd:constant name='topstate' value='staresus'/>
+ <cd:constant name='type' value='type'/>
+ <cd:constant name='unit' value='unitate'/>
+ <cd:constant name='unknownreference' value='referintanecunoscuta'/>
+ <cd:constant name='urlalternative' value='urlalternativ'/>
+ <cd:constant name='urlspace' value='spatiuurl'/>
+ <cd:constant name='validate' value='verifica'/>
+ <cd:constant name='vcommand' value='comandav'/>
+ <cd:constant name='veroffset' value='veroffset'/>
+ <cd:constant name='vfil' value='vfil'/>
+ <cd:constant name='voffset' value='voffset'/>
+ <cd:constant name='way' value='mod'/>
+ <cd:constant name='wfactor' value='factorw'/>
+ <cd:constant name='white' value='alb'/>
+ <cd:constant name='width' value='latime'/>
+ <cd:constant name='xfactor' value='xfactor'/>
+ <cd:constant name='xmax' value='xmax'/>
+ <cd:constant name='xoffset' value='xoffset'/>
+ <cd:constant name='xscale' value='xscala'/>
+ <cd:constant name='xstep' value='xstep'/>
+ <cd:constant name='yfactor' value='yfactor'/>
+ <cd:constant name='ymax' value='ymax'/>
+ <cd:constant name='yoffset' value='yoffset'/>
+ <cd:constant name='yscale' value='yscala'/>
+ <cd:constant name='ystep' value='ystep'/>
+ </cd:constant>
- <cd:variables>
- <cd:variable name="january" value="ianuarie"/>
- <cd:variable name="february" value="februarie"/>
- <cd:variable name="march" value="martie"/>
- <cd:variable name="april" value="aprilie"/>
- <cd:variable name="may" value="mai"/>
- <cd:variable name="june" value="iunie"/>
- <cd:variable name="july" value="iulie"/>
- <cd:variable name="august" value="august"/>
- <cd:variable name="september" value="septembrie"/>
- <cd:variable name="october" value="octombrie"/>
- <cd:variable name="november" value="noiembrie"/>
- <cd:variable name="december" value="decembrie"/>
- </cd:variables>
+ <!-- definitions for interface elements for language ro -->
- <cd:variables>
- <cd:variable name="atpage" value="lapagina"/>
- <cd:variable name="hencefore" value="precedent"/>
- <cd:variable name="hereafter" value="urmator"/>
- </cd:variables>
+ <cd:elements>
+ <cd:element name='answerlines' value='answerlines'/>
+ <cd:element name='answerspace' value='answerspace'/>
+ <cd:element name='begin' value='inceput'/>
+ <cd:element name='complete' value='complet'/>
+ <cd:element name='coupled' value='cuplat'/>
+ <cd:element name='currentlocal' value='localcurent'/>
+ <cd:element name='emptyone' value='gol'/>
+ <cd:element name='emptytwo' value='gol'/>
+ <cd:element name='end' value='sfarsit'/>
+ <cd:element name='endsetup' value=''/>
+ <cd:element name='get' value='get'/>
+ <cd:element name='increment' value='increment'/>
+ <cd:element name='list' value='lista'/>
+ <cd:element name='listof' value='listade'/>
+ <cd:element name='load' value='incarca'/>
+ <cd:element name='local' value='local'/>
+ <cd:element name='makeup' value='makeup'/>
+ <cd:element name='next' value='urmatorul'/>
+ <cd:element name='place' value='pune'/>
+ <cd:element name='previous' value='precedent'/>
+ <cd:element name='previouslocal' value='precedentlocal'/>
+ <cd:element name='reserve' value='rezervat'/>
+ <cd:element name='see' value='vezi'/>
+ <cd:element name='setup' value='setare'/>
+ <cd:element name='start' value='start'/>
+ <cd:element name='stop' value='stop'/>
+ <cd:element name='text' value='text'/>
+ <cd:element name='type' value='type'/>
+ </cd:element>
- <cd:variables>
- <cd:variable name="part" value="parte"/>
- <cd:variable name="chapter" value="capitol"/>
- <cd:variable name="subject" value="subiect"/>
- <cd:variable name="section" value="sectiune"/>
- <cd:variable name="title" value="titlu"/>
- <cd:variable name="margintitle" value="titlumarginal"/>
- <cd:variable name="content" value="cuprins"/>
- <cd:variable name="contents" value="cuprinsuri"/>
- <cd:variable name="appendix" value="apendix"/>
- <cd:variable name="appendices" value="apendixuri"/>
- <cd:variable name="bodypart" value="principal"/>
- <cd:variable name="bodymatter" value="principalul"/>
- <cd:variable name="frontpart" value="prolog"/>
- <cd:variable name="frontmatter" value="prologul"/>
- <cd:variable name="backpart" value="epilog"/>
- <cd:variable name="backmatter" value="epilogul"/>
- <cd:variable name="footnote" value="notasubsol"/>
- <cd:variable name="endnote" value="endnote"/>
- <cd:variable name="system" value="sistem"/>
- </cd:variables>
+ <!-- definitions for interface commands for language ro -->
- <cd:variables>
- <cd:variable name="subsection" value="subsectiune"/>
- <cd:variable name="subsubsection" value="subsubsectiune"/>
- <cd:variable name="subsubsubsection" value="subsubsubsectiune"/>
- <cd:variable name="subsubsubsubsection" value="subsubsubsubsectiune"/>
- <cd:variable name="subsubsubsubsubsection" value="subsubsubsubsubsectiune"/>
- <cd:variable name="subsubject" value="subsubiect"/>
- <cd:variable name="subsubsubject" value="subsubsubiect"/>
- <cd:variable name="subsubsubsubject" value="subsubsubsubiect"/>
- <cd:variable name="subsubsubsubsubject" value="subsubsubsubsubiect"/>
- <cd:variable name="subsubsubsubsubsubject" value="subsubsubsubsubsubiect"/>
- </cd:variables>
+ <cd:commands>
+ <cd:command name='CAPPED' value='KAP'/>
+ <cd:command name='Character' value='Litera'/>
+ <cd:command name='Characters' value='Litere'/>
+ <cd:command name='LABELTEXT' value='TEXTETICHETA'/>
+ <cd:command name='MONTH' value='LUNA'/>
+ <cd:command name='Numbers' value='Numere'/>
+ <cd:command name='Romannumerals' value='Numereromane'/>
+ <cd:command name='SmallCapped' value='Kap'/>
+ <cd:command name='SmallCaps' value='Kaps'/>
+ <cd:command name='WEEKDAY' value='ZIDINSAPTAMANA'/>
+ <cd:command name='WORD' value='CUVANT'/>
+ <cd:command name='WORDS' value='CUVINTE'/>
+ <cd:command name='Word' value='Cuvant'/>
+ <cd:command name='Words' value='Cuvinte'/>
+ <cd:command name='about' value='despre'/>
+ <cd:command name='adaptlayout' value='adapteazaaspect'/>
+ <cd:command name='arg' value='arg'/>
+ <cd:command name='at' value='la'/>
+ <cd:command name='atleftmargin' value='atleftmargin'/>
+ <cd:command name='atpage' value='lapagina'/>
+ <cd:command name='atrightmargin' value='atrightmargin'/>
+ <cd:command name='background' value='fundal'/>
+ <cd:command name='backspace' value='spatiuspate'/>
+ <cd:command name='blackrule' value='linieneagra'/>
+ <cd:command name='blackrules' value='liniinegre'/>
+ <cd:command name='blank' value='blanc'/>
+ <cd:command name='bookmark' value='semncarte'/>
+ <cd:command name='bottomdistance' value='distantajos'/>
+ <cd:command name='bottomheight' value='inaltimejos'/>
+ <cd:command name='bottomspace' value='spatiujos'/>
+ <cd:command name='but' value='but'/>
+ <cd:command name='button' value='buton'/>
+ <cd:command name='bypassblocks' value='saripesteblocuri'/>
+ <cd:command name='character' value='litera'/>
+ <cd:command name='characters' value='litere'/>
+ <cd:command name='chem' value='chem'/>
+ <cd:command name='clip' value='clip'/>
+ <cd:command name='clonefield' value='cloneazacamp'/>
+ <cd:command name='color' value='culoare'/>
+ <cd:command name='colorbar' value='baraculoare'/>
+ <cd:command name='colorvalue' value='valoareculoare'/>
+ <cd:command name='column' value='coloana'/>
+ <cd:command name='comment' value='comentariu'/>
+ <cd:command name='comparecolorgroup' value='comparagrupculoare'/>
+ <cd:command name='comparepalet' value='comparapaleta'/>
+ <cd:command name='completepagenumber' value='completeazanumarpagina'/>
+ <cd:command name='completeregister' value='completeregister'/>
+ <cd:command name='component' value='componenta'/>
+ <cd:command name='convertnumber' value='convertestenumar'/>
+ <cd:command name='copyfield' value='copiazacamp'/>
+ <cd:command name='correctwhitespace' value='corecteazaspatiualb'/>
+ <cd:command name='coupledocument' value='cupleazadocument'/>
+ <cd:command name='couplemarking' value='cupleazamarcaje'/>
+ <cd:command name='couplepage' value='paginadubla'/>
+ <cd:command name='couplepaper' value='hartiedubla'/>
+ <cd:command name='coupleregister' value='cupleazaregistru'/>
+ <cd:command name='crlf' value='crlf'/>
+ <cd:command name='currentdate' value='datacurenta'/>
+ <cd:command name='currentheadnumber' value='numartitlucurent'/>
+ <cd:command name='cutspace' value='cutspace'/>
+ <cd:command name='date' value='data'/>
+ <cd:command name='decouplemarking' value='decupleazamarcaje'/>
+ <cd:command name='decrementnumber' value='decrementnumber'/>
+ <cd:command name='define' value='defineste'/>
+ <cd:command name='defineaccent' value='definesteaccent'/>
+ <cd:command name='defineblank' value='definesteblanc'/>
+ <cd:command name='defineblock' value='definestebloc'/>
+ <cd:command name='definebodyfont' value='definestefonttext'/>
+ <cd:command name='definebodyfontenvironment' value='definestemediulfonttext'/>
+ <cd:command name='definebuffer' value='definestebuffer'/>
+ <cd:command name='definecharacter' value='definestecaracter'/>
+ <cd:command name='definecolor' value='definesteculoare'/>
+ <cd:command name='definecolorgroup' value='definestegrupculori'/>
+ <cd:command name='definecolumnbreak' value='definecolumnbreak'/>
+ <cd:command name='definecolumnset' value='definecolumnset'/>
+ <cd:command name='definecombination' value='definecombination'/>
+ <cd:command name='definecombinedlist' value='definestelistacombinata'/>
+ <cd:command name='definecommand' value='definestecomanda'/>
+ <cd:command name='defineconversion' value='definesteconversie'/>
+ <cd:command name='definedescription' value='definestedescriere'/>
+ <cd:command name='defineenumeration' value='definesteenumerare'/>
+ <cd:command name='definefield' value='definestecamp'/>
+ <cd:command name='definefieldstack' value='definestestivacampuri'/>
+ <cd:command name='definefiguresymbol' value='definestesimbolfigura'/>
+ <cd:command name='definefloat' value='definestefloat'/>
+ <cd:command name='definefont' value='definestefont'/>
+ <cd:command name='definefontstyle' value='definestestilfont'/>
+ <cd:command name='definefontsynonym' value='definestesinonimfont'/>
+ <cd:command name='defineframed' value='definesteinconjurare'/>
+ <cd:command name='defineframedtext' value='definestetextinconjurat'/>
+ <cd:command name='definehbox' value='definestehbox'/>
+ <cd:command name='definehead' value='definesteantet'/>
+ <cd:command name='defineindenting' value='definestealiat'/>
+ <cd:command name='defineinmargin' value='defineinmargin'/>
+ <cd:command name='defineinteractionmenu' value='definestemeniuinteractiune'/>
+ <cd:command name='defineitemgroup' value='defineitemgroup'/>
+ <cd:command name='definelabel' value='definesteeticheta'/>
+ <cd:command name='definelayer' value='definelayer'/>
+ <cd:command name='definelayout' value='definelayout'/>
+ <cd:command name='definelist' value='definestelista'/>
+ <cd:command name='definelogo' value='definestelogo'/>
+ <cd:command name='definemainfield' value='definestecampprincipal'/>
+ <cd:command name='definemakeup' value='definestemakeup'/>
+ <cd:command name='definemarking' value='definestemarcaje'/>
+ <cd:command name='definemathalignment' value='definemathalignment'/>
+ <cd:command name='defineoutput' value='definesteoutput'/>
+ <cd:command name='defineoverlay' value='definesteoverlay'/>
+ <cd:command name='definepagebreak' value='definepagebreak'/>
+ <cd:command name='definepalet' value='definestepaleta'/>
+ <cd:command name='definepapersize' value='definestedimensiunehartie'/>
+ <cd:command name='defineparagraphs' value='definesteparagraf'/>
+ <cd:command name='defineplacement' value='defineplacement'/>
+ <cd:command name='defineprofile' value='definesteprofil'/>
+ <cd:command name='defineprogram' value='definesteprogram'/>
+ <cd:command name='definerawfont' value='definestefontraw'/>
+ <cd:command name='definereference' value='definestereferinte'/>
+ <cd:command name='definereferenceformat' value='definesteformatreferinte'/>
+ <cd:command name='definereferencelist' value='definestelistareferinte'/>
+ <cd:command name='defineregister' value='definesteregistru'/>
+ <cd:command name='definerule' value='definesterigla'/>
+ <cd:command name='definesection' value='definestesectiune'/>
+ <cd:command name='definesectionblock' value='definesteblocsectiune'/>
+ <cd:command name='definesorting' value='definestesortare'/>
+ <cd:command name='definestartstop' value='definestestartstop'/>
+ <cd:command name='definestyle' value='definestestil'/>
+ <cd:command name='definesubfield' value='definestesubcamp'/>
+ <cd:command name='definesymbol' value='definestesimbol'/>
+ <cd:command name='definesynonyms' value='definestesinonim'/>
+ <cd:command name='definetabletemplate' value='definestesablontabel'/>
+ <cd:command name='definetabulate' value='definestetabulatori'/>
+ <cd:command name='definetext' value='definestetext'/>
+ <cd:command name='definetextposition' value='definestepozitietext'/>
+ <cd:command name='definetextvariable' value='definestevariabilatext'/>
+ <cd:command name='definetype' value='definetype'/>
+ <cd:command name='definetyping' value='definestetyping'/>
+ <cd:command name='defineversion' value='definesteversiune'/>
+ <cd:command name='determineheadnumber' value='determinanumartitlu'/>
+ <cd:command name='determinelistcharacteristics' value='determinacaracteristicilelistei'/>
+ <cd:command name='determineregistercharacteristics' value='determinacaracteristiciregistru'/>
+ <cd:command name='dimension' value='dimensiune'/>
+ <cd:command name='disableinteractionmenu' value='dezactiveazameniuinteractiune'/>
+ <cd:command name='domicile' value='domiciliu'/>
+ <cd:command name='donttest' value='nutesta'/>
+ <cd:command name='edgedistance' value='distantacolt'/>
+ <cd:command name='edgewidth' value='latimecolturi'/>
+ <cd:command name='emptylines' value='emptylines'/>
+ <cd:command name='environment' value='mediu'/>
+ <cd:command name='externalfigure' value='figuraexterna'/>
+ <cd:command name='fact' value='fact'/>
+ <cd:command name='field' value='camp'/>
+ <cd:command name='fieldstack' value='stivacampuri'/>
+ <cd:command name='fillinfield' value='campumplere'/>
+ <cd:command name='fillinline' value='linieumplere'/>
+ <cd:command name='fillinrules' value='rigleumplere'/>
+ <cd:command name='fillintext' value='textumplere'/>
+ <cd:command name='fitfield' value='potrivestecamp'/>
+ <cd:command name='fixedspace' value='spatiufixat'/>
+ <cd:command name='fixedspaces' value='spatiifixate'/>
+ <cd:command name='followprofile' value='urmeazaprofil'/>
+ <cd:command name='followprofileversion' value='urmeazaversiuneprofil'/>
+ <cd:command name='followversion' value='urmeazaversiune'/>
+ <cd:command name='footerdistance' value='distantasubsol'/>
+ <cd:command name='footerheight' value='inaltimesubsol'/>
+ <cd:command name='footnote' value='notasubsol'/>
+ <cd:command name='footnotetext' value='footnotetext'/>
+ <cd:command name='forceblocks' value='forteazablocuri'/>
+ <cd:command name='formulanumber' value='numarformula'/>
+ <cd:command name='fraction' value='fractie'/>
+ <cd:command name='framed' value='framed'/>
+ <cd:command name='from' value='din'/>
+ <cd:command name='getbuffer' value='adubuffer'/>
+ <cd:command name='getmarking' value='adumarcaje'/>
+ <cd:command name='getnumber' value='getnumber'/>
+ <cd:command name='godown' value='injos'/>
+ <cd:command name='goto' value='dute'/>
+ <cd:command name='gotobox' value='dutebox'/>
+ <cd:command name='gotopage' value='dutepagina'/>
+ <cd:command name='graycolor' value='culoaregri'/>
+ <cd:command name='greyvalue' value='valoaregri'/>
+ <cd:command name='grid' value='grid'/>
+ <cd:command name='hairline' value='firdepar'/>
+ <cd:command name='head' value='titlu'/>
+ <cd:command name='headerdistance' value='distantaantet'/>
+ <cd:command name='headerheight' value='inaltimeantet'/>
+ <cd:command name='headlevel' value='niveltitlu'/>
+ <cd:command name='headnumber' value='numartitlu'/>
+ <cd:command name='headsym' value='headsym'/>
+ <cd:command name='headtext' value='texttitlu'/>
+ <cd:command name='hideblocks' value='ascundeblocuri'/>
+ <cd:command name='high' value='inalt'/>
+ <cd:command name='hl' value='hl'/>
+ <cd:command name='immediatebetweenlist' value='immediatebetweenlist'/>
+ <cd:command name='immediatetolist' value='immediatetolist'/>
+ <cd:command name='in' value='in'/>
+ <cd:command name='incrementnumber' value='numarincrement'/>
+ <cd:command name='indenting' value='aliniat'/>
+ <cd:command name='inframed' value='inframed'/>
+ <cd:command name='infull' value='pelung'/>
+ <cd:command name='ininner' value='ininner'/>
+ <cd:command name='inleft' value='instanga'/>
+ <cd:command name='inleftedge' value='inparteastanga'/>
+ <cd:command name='inleftmargin' value='inmargineastanga'/>
+ <cd:command name='inline' value='inlinie'/>
+ <cd:command name='inmargin' value='marginal'/>
+ <cd:command name='inmframed' value='inmaframed'/>
+ <cd:command name='inneredgedistance' value='inneredgedistance'/>
+ <cd:command name='inneredgewidth' value='inneredgewidth'/>
+ <cd:command name='innermargindistance' value='innermargindistance'/>
+ <cd:command name='innermarginwidth' value='innermarginwidth'/>
+ <cd:command name='inothermargin' value='inaltamargine'/>
+ <cd:command name='inouter' value='inouter'/>
+ <cd:command name='inright' value='indreapta'/>
+ <cd:command name='inrightedge' value='inparteadreapta'/>
+ <cd:command name='inrightmargin' value='inmargineadreapta'/>
+ <cd:command name='installlanguage' value='instalarelimba'/>
+ <cd:command name='interactionbar' value='barainteractiune'/>
+ <cd:command name='interactionbuttons' value='butoaneinteractiune'/>
+ <cd:command name='interactionmenu' value='meniuinteractiune'/>
+ <cd:command name='item' value='element'/>
+ <cd:command name='items' value='element'/>
+ <cd:command name='its' value='el'/>
+ <cd:command name='keepblocks' value='pastreazablocuri'/>
+ <cd:command name='label' value='eticheta'/>
+ <cd:command name='labels' value='etichete'/>
+ <cd:command name='labeltext' value='texteticheta'/>
+ <cd:command name='language' value='limba'/>
+ <cd:command name='leftaligned' value='aliniatstanga'/>
+ <cd:command name='leftedgedistance' value='distantacoltstanga'/>
+ <cd:command name='leftedgewidth' value='latimecoltstanga'/>
+ <cd:command name='leftmargindistance' value='distantamarginestanga'/>
+ <cd:command name='leftmarginwidth' value='latimemarginestanga'/>
+ <cd:command name='leg' value='leg'/>
+ <cd:command name='linewidth' value='grosimelinie'/>
+ <cd:command name='listheight' value='inaltimelista'/>
+ <cd:command name='listlength' value='lungimelista'/>
+ <cd:command name='listsymbol' value='listsymbol'/>
+ <cd:command name='listwidth' value='latimelista'/>
+ <cd:command name='logfields' value='logcampuri'/>
+ <cd:command name='lohi' value='jossus'/>
+ <cd:command name='low' value='jos'/>
+ <cd:command name='macroname' value='nume'/>
+ <cd:command name='mainlanguage' value='limbaprincipala'/>
+ <cd:command name='makeupheight' value='inaltimemakeup'/>
+ <cd:command name='makeupwidth' value='latimemakeup'/>
+ <cd:command name='mar' value='mar'/>
+ <cd:command name='margindistance' value='distantamargine'/>
+ <cd:command name='marginrule' value='liniemargine'/>
+ <cd:command name='margintext' value='textmarginal'/>
+ <cd:command name='margintitle' value='titlumarginal'/>
+ <cd:command name='marginwidth' value='latimemargine'/>
+ <cd:command name='marginword' value='cuvantmarginal'/>
+ <cd:command name='marking' value='marcaje'/>
+ <cd:command name='markversion' value='marcheazaversiune'/>
+ <cd:command name='mathematics' value='matematica'/>
+ <cd:command name='menubutton' value='butonmeniu'/>
+ <cd:command name='mframed' value='maframed'/>
+ <cd:command name='midaligned' value='aliniatcentru'/>
+ <cd:command name='mirror' value='reflexie'/>
+ <cd:command name='month' value='luna'/>
+ <cd:command name='moveformula' value='moveformula'/>
+ <cd:command name='moveongrid' value='mutapegrid'/>
+ <cd:command name='movesidefloat' value='movesidefloat'/>
+ <cd:command name='navigating' value='navigating'/>
+ <cd:command name='nodimension' value='faradimensiune'/>
+ <cd:command name='noheaderandfooterlines' value='faraliniiantetsisubsol'/>
+ <cd:command name='noindenting' value='faraaliniat'/>
+ <cd:command name='nolist' value='faralista'/>
+ <cd:command name='nomarking' value='faramarcaje'/>
+ <cd:command name='nomoreblocks' value='gatablocuri'/>
+ <cd:command name='nomorefiles' value='farafisiere'/>
+ <cd:command name='nop' value='nop'/>
+ <cd:command name='nospace' value='faraspatiu'/>
+ <cd:command name='note' value='nota'/>
+ <cd:command name='notopandbottomlines' value='faraliniisussijos'/>
+ <cd:command name='notsmallcapped' value='nokap'/>
+ <cd:command name='nowhitespace' value='faraspatiualb'/>
+ <cd:command name='numberofsubpages' value='numberofsubpages'/>
+ <cd:command name='numbers' value='numere'/>
+ <cd:command name='outeredgedistance' value='outeredgedistance'/>
+ <cd:command name='outeredgewidth' value='outeredgewidth'/>
+ <cd:command name='outermargindistance' value='outermargindistance'/>
+ <cd:command name='outermarginwidth' value='outermarginwidth'/>
+ <cd:command name='overbar' value='barasus'/>
+ <cd:command name='overbars' value='supralinie'/>
+ <cd:command name='overstrike' value='liniepeste'/>
+ <cd:command name='overstrikes' value='liniipeste'/>
+ <cd:command name='packed' value='impachetat'/>
+ <cd:command name='page' value='pagina'/>
+ <cd:command name='pagedepth' value='pagedepth'/>
+ <cd:command name='pagenumber' value='numarpagina'/>
+ <cd:command name='pageoffset' value='pageoffset'/>
+ <cd:command name='pagereference' value='referintapagina'/>
+ <cd:command name='pagetype' value='tippagina'/>
+ <cd:command name='paperheight' value='inaltimehartie'/>
+ <cd:command name='paperwidth' value='latimehartie'/>
+ <cd:command name='periods' value='puncte'/>
+ <cd:command name='plaatsruwelijst' value='placerawlist'/>
+ <cd:command name='placebookmarks' value='plaseazasemnecarte'/>
+ <cd:command name='placecombinedlist' value='punelistacombinata'/>
+ <cd:command name='placefloat' value='placefloat'/>
+ <cd:command name='placefootnotes' value='punenotesubsol'/>
+ <cd:command name='placeformula' value='puneformula'/>
+ <cd:command name='placeheadnumber' value='placeheadnumber'/>
+ <cd:command name='placeheadtext' value='placeheadtext'/>
+ <cd:command name='placelegend' value='punelegenda'/>
+ <cd:command name='placelist' value='punelista'/>
+ <cd:command name='placelocalfootnotes' value='punenotesubsollocale'/>
+ <cd:command name='placelogos' value='punelogouri'/>
+ <cd:command name='placeongrid' value='plaseazapegrid'/>
+ <cd:command name='placeontopofeachother' value='punedeasuprafiecareia'/>
+ <cd:command name='placepagenumber' value='punenumarpagina'/>
+ <cd:command name='placereferencelist' value='placereferencelist'/>
+ <cd:command name='placeregister' value='puneregistru'/>
+ <cd:command name='placerule' value='punerigla'/>
+ <cd:command name='placesidebyside' value='punefatainfata'/>
+ <cd:command name='placesubformula' value='punesubformula'/>
+ <cd:command name='placetextvariable' value='punevariabilatext'/>
+ <cd:command name='position' value='pozitie'/>
+ <cd:command name='positiontext' value='pozitietext'/>
+ <cd:command name='printpaperheight' value='inaltimehartieimprimanta'/>
+ <cd:command name='printpaperwidth' value='latimehartieimprimanta'/>
+ <cd:command name='processblocks' value='proceseazabloc'/>
+ <cd:command name='processpage' value='proceseazapagina'/>
+ <cd:command name='product' value='produs'/>
+ <cd:command name='program' value='program'/>
+ <cd:command name='project' value='proiect'/>
+ <cd:command name='publication' value='publicatie'/>
+ <cd:command name='quotation' value='citat'/>
+ <cd:command name='quote' value='minicitat'/>
+ <cd:command name='ran' value='ran'/>
+ <cd:command name='redo' value='refa'/>
+ <cd:command name='ref' value='ref'/>
+ <cd:command name='reference' value='referinta'/>
+ <cd:command name='referral' value='referit'/>
+ <cd:command name='referraldate' value='datareferit'/>
+ <cd:command name='referring' value='referring'/>
+ <cd:command name='remark' value='remarca'/>
+ <cd:command name='reset' value='reset'/>
+ <cd:command name='resetmarking' value='reseteazamarcaje'/>
+ <cd:command name='resetnumber' value='resetnumber'/>
+ <cd:command name='resettext' value='resettextcontent'/>
+ <cd:command name='rightaligned' value='aliniatdreapta'/>
+ <cd:command name='rightedgedistance' value='distantacoltdreapta'/>
+ <cd:command name='rightedgewidth' value='latimecoltdreapta'/>
+ <cd:command name='rightmargindistance' value='distantamarginedreapta'/>
+ <cd:command name='rightmarginwidth' value='latimemarginedreapta'/>
+ <cd:command name='romannumerals' value='numereromane'/>
+ <cd:command name='rotate' value='roteste'/>
+ <cd:command name='scale' value='scala'/>
+ <cd:command name='screen' value='ecran'/>
+ <cd:command name='selectblocks' value='selecteazablocuri'/>
+ <cd:command name='selectpaper' value='selecteazahartie'/>
+ <cd:command name='selectversion' value='selecteazaversiune'/>
+ <cd:command name='setnumber' value='setnumber'/>
+ <cd:command name='settextcontent' value='settextcontent'/>
+ <cd:command name='settextvariable' value='setvariabilatext'/>
+ <cd:command name='setupalign' value='seteazaalinierea'/>
+ <cd:command name='setupanswerarea' value='setupanswerarea'/>
+ <cd:command name='setuparranging' value='seteazaaranjareapag'/>
+ <cd:command name='setupbackground' value='seteazafundal'/>
+ <cd:command name='setupbackgrounds' value='seteazafundaluri'/>
+ <cd:command name='setupblackrules' value='seteazaliniinegre'/>
+ <cd:command name='setupblank' value='seteazablanc'/>
+ <cd:command name='setupblock' value='seteazabloc'/>
+ <cd:command name='setupbodyfont' value='seteazafonttext'/>
+ <cd:command name='setupbodyfontenvironment' value='seteazamediulfonttext'/>
+ <cd:command name='setupbottom' value='seteazajos'/>
+ <cd:command name='setupbottomtexts' value='seteazatextejos'/>
+ <cd:command name='setupbuffer' value='seteazabuffer'/>
+ <cd:command name='setupbuttons' value='seteazabutoane'/>
+ <cd:command name='setupcapitals' value='seteazamajuscule'/>
+ <cd:command name='setupcaption' value='seteazalegenda'/>
+ <cd:command name='setupcaptions' value='seteazalegendele'/>
+ <cd:command name='setupclipping' value='seteazaclipping'/>
+ <cd:command name='setupcolor' value='seteazaculoare'/>
+ <cd:command name='setupcolors' value='seteazaculori'/>
+ <cd:command name='setupcolumns' value='seteazacoloane'/>
+ <cd:command name='setupcolumnset' value='setupcolumnset'/>
+ <cd:command name='setupcolumnsetlines' value='setupcolumnsetlines'/>
+ <cd:command name='setupcolumnsetstart' value='setupcolumnsetstart'/>
+ <cd:command name='setupcombinations' value='seteazacombinari'/>
+ <cd:command name='setupcombinedlist' value='seteazalistacombinata'/>
+ <cd:command name='setupcomment' value='seteazacomentariu'/>
+ <cd:command name='setupdescriptions' value='seteazadescriere'/>
+ <cd:command name='setupenumerations' value='seteazaenumerare'/>
+ <cd:command name='setupexternalfigures' value='seteazafiguriexterne'/>
+ <cd:command name='setupfield' value='seteazacamp'/>
+ <cd:command name='setupfields' value='seteazacampuri'/>
+ <cd:command name='setupfillinlines' value='seteazaliniiumplere'/>
+ <cd:command name='setupfillinrules' value='seteazarigleumplere'/>
+ <cd:command name='setupfloat' value='seteazafloat'/>
+ <cd:command name='setupfloats' value='seteazafloats'/>
+ <cd:command name='setupfloatsplitting' value='seteazaimpartireafloat'/>
+ <cd:command name='setupfooter' value='seteazasubsol'/>
+ <cd:command name='setupfootertexts' value='seteazatextesubsol'/>
+ <cd:command name='setupfootnotedefinition' value='seteazadefinireanotasubsol'/>
+ <cd:command name='setupfootnotes' value='seteazanotasubsol'/>
+ <cd:command name='setupforms' value='seteazaformulare'/>
+ <cd:command name='setupformulas' value='seteazaformule'/>
+ <cd:command name='setupframed' value='seteazainconjurat'/>
+ <cd:command name='setupframedtexts' value='definestetexteinconjurate'/>
+ <cd:command name='setuphead' value='seteazatitlu'/>
+ <cd:command name='setupheader' value='seteazaantet'/>
+ <cd:command name='setupheadertexts' value='seteazatexteantet'/>
+ <cd:command name='setupheadnumber' value='seteazanumartitlu'/>
+ <cd:command name='setupheads' value='seteazatitluri'/>
+ <cd:command name='setupheadtext' value='seteazatexttitlu'/>
+ <cd:command name='setuphyphenmark' value='seteazaliniesilabe'/>
+ <cd:command name='setupindentations' value='seteazaaliniate'/>
+ <cd:command name='setupindenting' value='seteazaaliniat'/>
+ <cd:command name='setupinmargin' value='seteazamarginal'/>
+ <cd:command name='setupinteraction' value='seteazainteractiunea'/>
+ <cd:command name='setupinteractionbar' value='seteazabarainteractiune'/>
+ <cd:command name='setupinteractionmenu' value='seteazameniuinteractiune'/>
+ <cd:command name='setupinteractionscreen' value='seteazaecraninteractiune'/>
+ <cd:command name='setupinterlinespace' value='seteazaspatiuinterliniar'/>
+ <cd:command name='setupitemgroup' value='setupitemgroup'/>
+ <cd:command name='setupitemgroups' value='setareitemization'/>
+ <cd:command name='setupitems' value='seteazaelemente'/>
+ <cd:command name='setuplabeltext' value='seteazatexteticheta'/>
+ <cd:command name='setuplanguage' value='setarelimba'/>
+ <cd:command name='setuplayout' value='seteazaaspect'/>
+ <cd:command name='setuplegend' value='seteazalegenda'/>
+ <cd:command name='setuplinenumbering' value='seteazanumerotarelinii'/>
+ <cd:command name='setuplines' value='seteazalinii'/>
+ <cd:command name='setuplinewidth' value='seteazagrosimelinie'/>
+ <cd:command name='setuplist' value='seteazalista'/>
+ <cd:command name='setupmakeup' value='seteazamakeup'/>
+ <cd:command name='setupmarginblocks' value='seteazablocurimarginale'/>
+ <cd:command name='setupmarginrules' value='seteazaliniimargine'/>
+ <cd:command name='setupmarking' value='seteazamarcaje'/>
+ <cd:command name='setupmathalignment' value='setupmathalignment'/>
+ <cd:command name='setupnarrower' value='seteazaingust'/>
+ <cd:command name='setupnumber' value='setupnumber'/>
+ <cd:command name='setupnumbering' value='seteazanumerotare'/>
+ <cd:command name='setupoppositeplacing' value='seteazaplasareaopozita'/>
+ <cd:command name='setupoutput' value='setareoutput'/>
+ <cd:command name='setuppagecomment' value='seteazacomentariupagina'/>
+ <cd:command name='setuppagenumber' value='seteazanumarpagina'/>
+ <cd:command name='setuppagenumbering' value='seteazanumerotarepagina'/>
+ <cd:command name='setuppagetransitions' value='seteazatranzitiepagina'/>
+ <cd:command name='setuppalet' value='seteazapaleta'/>
+ <cd:command name='setuppaper' value='setuppaper'/>
+ <cd:command name='setuppapersize' value='seteazadimensiunihartie'/>
+ <cd:command name='setupparagraphnumbering' value='seteazanumerotareparagrafe'/>
+ <cd:command name='setupparagraphs' value='seteazaparagrafe'/>
+ <cd:command name='setupplacement' value='setupplacement'/>
+ <cd:command name='setuppositioning' value='setarepozitie'/>
+ <cd:command name='setupprofiles' value='seteazaprofile'/>
+ <cd:command name='setupprograms' value='seteazaprograme'/>
+ <cd:command name='setuppublications' value='seteazapublicatii'/>
+ <cd:command name='setupquote' value='seteazaminicitat'/>
+ <cd:command name='setupreferencelist' value='seteazalistareferinte'/>
+ <cd:command name='setupreferencing' value='seteazareferinte'/>
+ <cd:command name='setupregister' value='seteazaregistru'/>
+ <cd:command name='setuprotate' value='seteazarotare'/>
+ <cd:command name='setuprule' value='seteazarigla'/>
+ <cd:command name='setups' value='setari'/>
+ <cd:command name='setupscreens' value='seteazaecrane'/>
+ <cd:command name='setupsection' value='seteazasectiune'/>
+ <cd:command name='setupsectionblock' value='seteazablocsectiune'/>
+ <cd:command name='setupsorting' value='seteazasortare'/>
+ <cd:command name='setupspacing' value='seteazaspatiu'/>
+ <cd:command name='setupstartstop' value='setupstartstop'/>
+ <cd:command name='setupstrut' value='seteazastrut'/>
+ <cd:command name='setupsubpagenumber' value='seteazanumarsubpagina'/>
+ <cd:command name='setupsymbolset' value='seteazasimbol'/>
+ <cd:command name='setupsynchronization' value='setaresincronizare'/>
+ <cd:command name='setupsynchronizationbar' value='setarebarasincronizare'/>
+ <cd:command name='setupsynonyms' value='seteazasinonime'/>
+ <cd:command name='setupsystem' value='seteazasistem'/>
+ <cd:command name='setuptab' value='seteazatab'/>
+ <cd:command name='setuptables' value='seteazatabele'/>
+ <cd:command name='setuptabulate' value='seteazatabulatori'/>
+ <cd:command name='setuptext' value='seteazatext'/>
+ <cd:command name='setuptextposition' value='seteazapozitietext'/>
+ <cd:command name='setuptextrules' value='seteazarigletext'/>
+ <cd:command name='setuptexttexts' value='seteazatextetext'/>
+ <cd:command name='setuptextvariable' value='seteazavariabilatext'/>
+ <cd:command name='setupthinrules' value='seteazaliniesubtire'/>
+ <cd:command name='setuptolerance' value='seteazatoleranta'/>
+ <cd:command name='setuptop' value='seteazasus'/>
+ <cd:command name='setuptoptexts' value='seteazatextesus'/>
+ <cd:command name='setuptype' value='seteazatype'/>
+ <cd:command name='setuptyping' value='seteazatyping'/>
+ <cd:command name='setupunderbar' value='seteazasublinie'/>
+ <cd:command name='setupurl' value='seteazaurl'/>
+ <cd:command name='setupversions' value='seteazaversiuni'/>
+ <cd:command name='setupwhitespace' value='seteazaspatiualb'/>
+ <cd:command name='showbodyfont' value='afiseazafonttext'/>
+ <cd:command name='showbodyfontenvironment' value='afiseazamediufonttext'/>
+ <cd:command name='showcolor' value='afiseazaculoare'/>
+ <cd:command name='showcolorgroup' value='afiseazagrupculoare'/>
+ <cd:command name='showexternalfigures' value='afiseazafiguriexterne'/>
+ <cd:command name='showfields' value='afiseazacampuri'/>
+ <cd:command name='showframe' value='afiseazarama'/>
+ <cd:command name='showgrid' value='afiseazagrid'/>
+ <cd:command name='showlayout' value='afiseazaaspect'/>
+ <cd:command name='showmakeup' value='afiseazamakeup'/>
+ <cd:command name='showpalet' value='afiseazapaleta'/>
+ <cd:command name='showprint' value='afiseazatiparire'/>
+ <cd:command name='showsetups' value='afiseazasetari'/>
+ <cd:command name='showstruts' value='afiseazastruts'/>
+ <cd:command name='showsymbolset' value='afiseazasetsimboluri'/>
+ <cd:command name='smallcapped' value='kap'/>
+ <cd:command name='someline' value='olinie'/>
+ <cd:command name='somewhere' value='undeva'/>
+ <cd:command name='space' value='spatiu'/>
+ <cd:command name='splitfloat' value='impartefloat'/>
+ <cd:command name='startalignment' value='startaliniere'/>
+ <cd:command name='startbackground' value='startfundal'/>
+ <cd:command name='startcoding' value='startcodificare'/>
+ <cd:command name='startcolor' value='startculoare'/>
+ <cd:command name='startcolumnmakeup' value='startcolumnmakeup'/>
+ <cd:command name='startcolumns' value='startcoloane'/>
+ <cd:command name='startcolumnset' value='startcolumnset'/>
+ <cd:command name='startcombination' value='startcombinare'/>
+ <cd:command name='startcomponent' value='startcomponenta'/>
+ <cd:command name='startdocument' value='startdocument'/>
+ <cd:command name='startenvironment' value='startmediu'/>
+ <cd:command name='startfigure' value='startfigura'/>
+ <cd:command name='startglobal' value='startglobal'/>
+ <cd:command name='startline' value='startlinie'/>
+ <cd:command name='startlinecorrection' value='startcorectielinie'/>
+ <cd:command name='startlinenumbering' value='startnumerotarelinii'/>
+ <cd:command name='startlines' value='startlinii'/>
+ <cd:command name='startlocal' value='startlocal'/>
+ <cd:command name='startlocalfootnotes' value='startnotesubsollocale'/>
+ <cd:command name='startmakeup' value='startmakeup'/>
+ <cd:command name='startmarginblock' value='startblocmarginal'/>
+ <cd:command name='startmarginrule' value='startliniemargine'/>
+ <cd:command name='startnarrower' value='startingust'/>
+ <cd:command name='startopposite' value='startopozit'/>
+ <cd:command name='startoverlay' value='startoverlay'/>
+ <cd:command name='startoverzicht' value='startoverview'/>
+ <cd:command name='startpacked' value='startimpachetat'/>
+ <cd:command name='startpositioning' value='startpozitionare'/>
+ <cd:command name='startproduct' value='startprodus'/>
+ <cd:command name='startprofile' value='startprofil'/>
+ <cd:command name='startproject' value='startproiect'/>
+ <cd:command name='startquotation' value='startcitat'/>
+ <cd:command name='startraster' value='startraster'/>
+ <cd:command name='startsymbolset' value='startsetsimboluri'/>
+ <cd:command name='startsynchronization' value='startsincronizare'/>
+ <cd:command name='starttable' value='starttabel'/>
+ <cd:command name='starttables' value='starttabele'/>
+ <cd:command name='starttext' value='starttext'/>
+ <cd:command name='starttextrule' value='startriglatext'/>
+ <cd:command name='startunpacked' value='startneimpachetat'/>
+ <cd:command name='startversion' value='startversiune'/>
+ <cd:command name='stopalignment' value='stopaliniere'/>
+ <cd:command name='stopbackground' value='stopfundal'/>
+ <cd:command name='stopcoding' value='stopcodificare'/>
+ <cd:command name='stopcolor' value='stopculoare'/>
+ <cd:command name='stopcolumnmakeup' value='stopcolumnmakeup'/>
+ <cd:command name='stopcolumns' value='stopcoloane'/>
+ <cd:command name='stopcolumnset' value='stopcolumnset'/>
+ <cd:command name='stopcombination' value='stopcombinare'/>
+ <cd:command name='stopcomponent' value='stopcomponenta'/>
+ <cd:command name='stopdocument' value='stopdocument'/>
+ <cd:command name='stopenvironment' value='stopmediu'/>
+ <cd:command name='stopglobal' value='stopblobal'/>
+ <cd:command name='stopline' value='stoplinie'/>
+ <cd:command name='stoplinecorrection' value='stopcorectielinie'/>
+ <cd:command name='stoplinenumbering' value='stopnumerotarelinii'/>
+ <cd:command name='stoplines' value='stoplinii'/>
+ <cd:command name='stoplocal' value='stoplocal'/>
+ <cd:command name='stoplocalfootnotes' value='stopnotesubsollocale'/>
+ <cd:command name='stopmakeup' value='stopmakeup'/>
+ <cd:command name='stopmarginblock' value='stopblocmarginal'/>
+ <cd:command name='stopmarginrule' value='stopliniemargine'/>
+ <cd:command name='stopnarrower' value='stopingust'/>
+ <cd:command name='stopopposite' value='stopopozit'/>
+ <cd:command name='stopoverlay' value='stopoverlay'/>
+ <cd:command name='stopoverzicht' value='stopoverview'/>
+ <cd:command name='stoppacked' value='stopimpachetat'/>
+ <cd:command name='stoppositioning' value='stoppozitionare'/>
+ <cd:command name='stopproduct' value='stopprodus'/>
+ <cd:command name='stopprofile' value='stopprofil'/>
+ <cd:command name='stopproject' value='stopproiect'/>
+ <cd:command name='stopquotation' value='stopcitat'/>
+ <cd:command name='stopraster' value='stopraster'/>
+ <cd:command name='stopsynchronization' value='stopsincronizare'/>
+ <cd:command name='stoptable' value='stoptabel'/>
+ <cd:command name='stoptables' value='stoptabele'/>
+ <cd:command name='stoptext' value='stoptext'/>
+ <cd:command name='stoptextrule' value='stopriglatext'/>
+ <cd:command name='stopunpacked' value='stopneimpachetat'/>
+ <cd:command name='stopversion' value='stopversiune'/>
+ <cd:command name='stretched' value='intins'/>
+ <cd:command name='subformulanumber' value='numarsubformula'/>
+ <cd:command name='subpagenumber' value='subpagenumber'/>
+ <cd:command name='switchtobodyfont' value='trecilafonttext'/>
+ <cd:command name='switchtorawfont' value='trecilafontraw'/>
+ <cd:command name='sym' value='sim'/>
+ <cd:command name='symbol' value='simbol'/>
+ <cd:command name='synchronizationbar' value='barasincronizare'/>
+ <cd:command name='synchronize' value='sincronizeaza'/>
+ <cd:command name='tab' value='tab'/>
+ <cd:command name='testcolumn' value='testcolumn'/>
+ <cd:command name='testpage' value='testpage'/>
+ <cd:command name='tex' value='tex'/>
+ <cd:command name='textheight' value='inaltimetext'/>
+ <cd:command name='textreference' value='referintatext'/>
+ <cd:command name='textrule' value='riglatext'/>
+ <cd:command name='textvariable' value='variabilatext'/>
+ <cd:command name='textwidth' value='latimetext'/>
+ <cd:command name='thinrule' value='liniesubtire'/>
+ <cd:command name='thinrules' value='liniisubtiri'/>
+ <cd:command name='tooltip' value='tooltip'/>
+ <cd:command name='topdistance' value='distantasus'/>
+ <cd:command name='topheight' value='inaltimesus'/>
+ <cd:command name='topspace' value='spatiusus'/>
+ <cd:command name='totalnumberofpages' value='numartotalpagini'/>
+ <cd:command name='translate' value='traduce'/>
+ <cd:command name='txt' value='txt'/>
+ <cd:command name='typ' value='typ'/>
+ <cd:command name='type' value='type'/>
+ <cd:command name='typebuffer' value='scriebuffer'/>
+ <cd:command name='typefile' value='typefile'/>
+ <cd:command name='underbar' value='sublinie'/>
+ <cd:command name='underbars' value='sublinii'/>
+ <cd:command name='unitmeaning' value='numeunitate'/>
+ <cd:command name='unknown' value='necunoscut'/>
+ <cd:command name='useJSscripts' value='folosestescriptJS'/>
+ <cd:command name='useURL' value='folosesteURL'/>
+ <cd:command name='useXMLfilter' value='useXMLfilter'/>
+ <cd:command name='useblocks' value='folosestebloc'/>
+ <cd:command name='usecommands' value='folosestecomenzi'/>
+ <cd:command name='useencoding' value='folosestecodificarea'/>
+ <cd:command name='useexternaldocument' value='folosestedocumentextern'/>
+ <cd:command name='useexternalfigure' value='folosestefiguraexterna'/>
+ <cd:command name='useexternalfile' value='folosestefisierextern'/>
+ <cd:command name='useexternalfiles' value='folosestefisiereexterne'/>
+ <cd:command name='useexternalsoundtrack' value='folosestemuzicaexterna'/>
+ <cd:command name='usemodule' value='folosestemodul'/>
+ <cd:command name='usemodules' value='folosestemodule'/>
+ <cd:command name='usepath' value='folosestedirector'/>
+ <cd:command name='usereferences' value='folosestereferinte'/>
+ <cd:command name='usespecials' value='folosestespeciale'/>
+ <cd:command name='usesymbols' value='folosestesimboluri'/>
+ <cd:command name='usetypescript' value='usetypescript'/>
+ <cd:command name='usetypescriptfile' value='usetypescriptfile'/>
+ <cd:command name='useurl' value='folosesteurl'/>
+ <cd:command name='version' value='versiune'/>
+ <cd:command name='vl' value='vl'/>
+ <cd:command name='weekday' value='zidinsaptamana'/>
+ <cd:command name='whitespace' value='spatiualb'/>
+ <cd:command name='wordright' value='cuvantdreapta'/>
+ <cd:command name='writebetweenlist' value='scrieintreliste'/>
+ <cd:command name='writetolist' value='scrieinlista'/>
+ <cd:command name='writetoreferencelist' value='scrieinlistareferinte'/>
+ <cd:command name='writetoregister' value='scrieinregistru'/>
+ </cd:command>
- <cd:variables>
- <cd:variable name="flushleft" value="flushleft"/>
- <cd:variable name="flushright" value="flushright"/>
- <cd:variable name="center" value="center"/>
- <cd:variable name="flushouter" value="flushouter"/>
- <cd:variable name="flushinner" value="flushinner"/>
- </cd:variables>
-
- <cd:variables>
- <cd:variable name="typing" value="typing"/>
- <cd:variable name="file" value="fisier"/>
- </cd:variables>
-
- <cd:variables>
- <cd:variable name="formula" value="formula"/>
- <cd:variable name="subformula" value="subformula"/>
- <cd:variable name="formulae" value="formule"/>
- <cd:variable name="figure" value="figura"/>
- <cd:variable name="figures" value="figure"/>
- <cd:variable name="table" value="tabelul"/>
- <cd:variable name="tables" value="tabelele"/>
- <cd:variable name="graphic" value="graficul"/>
- <cd:variable name="graphics" value="graficele"/>
- <cd:variable name="intermezzo" value="intermezzo"/>
- <cd:variable name="intermezzi" value="intermezzi"/>
- <cd:variable name="index" value="index"/>
- <cd:variable name="indices" value="indexuri"/>
- <cd:variable name="abbreviation" value="abreviere"/>
- <cd:variable name="abbreviations" value="abrevieri"/>
- <cd:variable name="logo" value="logo"/>
- <cd:variable name="logos" value="logos"/>
- <cd:variable name="unit" value="unitate"/>
- <cd:variable name="units" value="unitati"/>
- <cd:variable name="line" value="linia"/>
- <cd:variable name="lines" value="linii"/>
- <cd:variable name="framedtext" value="textinconjurat"/>
- <cd:variable name="quotation" value="citat"/>
- <cd:variable name="blockquote" value="blockquote"/>
- <cd:variable name="quote" value="minicitat"/>
- <cd:variable name="speech" value="speech"/>
- <cd:variable name="itemize" value="enumerare"/>
- <cd:variable name="mathalignment" value="mathalignment"/>
- <cd:variable name="mathcases" value="mathcases"/>
- <cd:variable name="mathmatrix" value="mathmatrix"/>
- </cd:variables>
-
- <cd:constants>
- <cd:constant name="sorttype" value="sorttype"/>
- <cd:constant name="compress" value="compress"/>
- <cd:constant name="autohang" value="autohang"/>
- <cd:constant name="suffix" value="suffix"/>
- <cd:constant name="leftquotation" value="citatstanga"/>
- <cd:constant name="rightquotation" value="citatdreapta"/>
- <cd:constant name="leftquote" value="minicitatstanga"/>
- <cd:constant name="rightquote" value="minicitatdreapta"/>
- <cd:constant name="compoundhyphen" value="compoundhyphen"/>
- <cd:constant name="leftcompoundhyphen" value="leftcompoundhyphen"/>
- <cd:constant name="rightcompoundhyphen" value="rightcompoundhyphen"/>
- <cd:constant name="midsentence" value="midsentence"/>
- <cd:constant name="leftsentence" value="propozitiestanga"/>
- <cd:constant name="rightsentence" value="propozitiedreapta"/>
- <cd:constant name="leftsubsentence" value="subpropozitiestanga"/>
- <cd:constant name="rightsubsentence" value="subpropozitiedreapta"/>
- <cd:constant name="leftspeech" value="leftspeech"/>
- <cd:constant name="middlespeech" value="middlespeech"/>
- <cd:constant name="rightspeech" value="rightspeech"/>
- <cd:constant name="limittext" value="limittext"/>
- <cd:constant name="date" value="data"/>
- <cd:constant name="spacebefore" value="spatiuinainte"/>
- <cd:constant name="spaceinbetween" value="spaceinbetween"/>
- <cd:constant name="spaceafter" value="spatiudupa"/>
- <cd:constant name="sidespacebefore" value="spatiulateralinainte"/>
- <cd:constant name="sidespaceafter" value="spatiulateraldupa"/>
- <cd:constant name="to" value="catre"/>
- <cd:constant name="indicator" value="indicator"/>
- <cd:constant name="background" value="fundal"/>
- <cd:constant name="backgrounddepth" value="adancimefundal"/>
- <cd:constant name="backgroundcorner" value="coltfundal"/>
- <cd:constant name="splitcolor" value="splitcolor"/>
- <cd:constant name="backgroundcolor" value="culoarefundal"/>
- <cd:constant name="foregroundcolor" value="foregroundcolor"/>
- <cd:constant name="foregroundstyle" value="foregroundstyle"/>
- <cd:constant name="clipoffset" value="clipoffset"/>
- <cd:constant name="backgroundoffset" value="offsetfundal"/>
- <cd:constant name="backgroundscreen" value="ecranfundal"/>
- <cd:constant name="backgroundradius" value="razafundal"/>
- <cd:constant name="address" value="adresa"/>
- <cd:constant name="stopper" value="stopper"/>
- <cd:constant name="distance" value="distanta"/>
- <cd:constant name="paragraph" value="paragraf"/>
- <cd:constant name="axis" value="axa"/>
- <cd:constant name="author" value="autor"/>
- <cd:constant name="auto" value="auto"/>
- <cd:constant name="autofile" value="autofile"/>
- <cd:constant name="balance" value="balanta"/>
- <cd:constant name="bookmark" value="semncarte"/>
- <cd:constant name="wfactor" value="factorw"/>
- <cd:constant name="inner" value="intern"/>
- <cd:constant name="blank" value="blanc"/>
- <cd:constant name="obstruction" value="obstructie"/>
- <cd:constant name="blockway" value="blockway"/>
- <cd:constant name="bottomspace" value="spatiujos"/>
- <cd:constant name="top" value="sus"/>
- <cd:constant name="topdistance" value="distantasus"/>
- <cd:constant name="topframe" value="framesus"/>
- <cd:constant name="topoffset" value="offsetsus"/>
- <cd:constant name="topstate" value="staresus"/>
- <cd:constant name="width" value="latime"/>
- <cd:constant name="autowidth" value="autolatime"/>
- <cd:constant name="maxwidth" value="latimemaxima"/>
- <cd:constant name="minwidth" value="latimeminima"/>
- <cd:constant name="source" value="sursa"/>
- <cd:constant name="command" value="comanda"/>
- <cd:constant name="commands" value="comenzi"/>
- <cd:constant name="component" value="component"/>
- <cd:constant name="contrastcolor" value="culoarecontrast"/>
- <cd:constant name="conversion" value="conversie"/>
- <cd:constant name="headconversion" value="conversietitlu"/>
- <cd:constant name="headlabel" value="etichetatitlu"/>
- <cd:constant name="criterium" value="criteriu"/>
- <cd:constant name="date" value="data"/>
- <cd:constant name="default" value="implicit"/>
- <cd:constant name="depth" value="inaltime"/>
- <cd:constant name="depthcorrection" value="corectieadancime"/>
- <cd:constant name="continue" value="continua"/>
- <cd:constant name="doublesided" value="douafete"/>
- <cd:constant name="dummy" value="dummy"/>
- <cd:constant name="unit" value="unitate"/>
- <cd:constant name="ownnumber" value="numarpropriu"/>
- <cd:constant name="evenmargin" value="marginepara"/>
- <cd:constant name="expansion" value="expansiune"/>
- <cd:constant name="keyexpansion" value="keyexpansion"/>
- <cd:constant name="factor" value="factor"/>
- <cd:constant name="convertfile" value="convertestefisier"/>
- <cd:constant name="file" value="fisier"/>
- <cd:constant name="inputfile" value="inputfile"/>
- <cd:constant name="size" value="dimensiune"/>
- <cd:constant name="autofocus" value="autofocus"/>
- <cd:constant name="focus" value="focus"/>
- <cd:constant name="directory" value="director"/>
- <cd:constant name="cache" value="cache"/>
- <cd:constant name="grid" value="grid"/>
- <cd:constant name="big" value="mare"/>
- <cd:constant name="get" value="adu"/>
- <cd:constant name="hang" value="suspenda"/>
- <cd:constant name="repeat" value="repeta"/>
- <cd:constant name="hfactor" value="hfactor"/>
- <cd:constant name="corner" value="colt"/>
- <cd:constant name="hoffset" value="hoffset"/>
- <cd:constant name="frames" value="frames"/>
- <cd:constant name="header" value="antet"/>
- <cd:constant name="headerdistance" value="distantaantet"/>
- <cd:constant name="headerstate" value="stareantet"/>
- <cd:constant name="height" value="inaltime"/>
- <cd:constant name="maxheight" value="inaltimemaxima"/>
- <cd:constant name="minheight" value="inaltimeminima"/>
- <cd:constant name="mindepth" value="mindepth"/>
- <cd:constant name="current" value="curent"/>
- <cd:constant name="in" value="in"/>
- <cd:constant name="indenting" value="aliniat"/>
- <cd:constant name="interaction" value="interactiune"/>
- <cd:constant name="interlinespace" value="spatiereinterliniara"/>
- <cd:constant name="items" value="elemente"/>
- <cd:constant name="fallback" value="fallback"/>
- <cd:constant name="frame" value="frame"/>
- <cd:constant name="framedepth" value="adancimeframe"/>
- <cd:constant name="framecorner" value="coltframe"/>
- <cd:constant name="framecolor" value="culoareframe"/>
- <cd:constant name="frameoffset" value="offsetframe"/>
- <cd:constant name="frameradius" value="razaframe"/>
- <cd:constant name="marginedge" value="coltbordura"/>
- <cd:constant name="marginedgetext" value="textcoltbordura"/>
- <cd:constant name="aligncharacter" value="aliniazacaracter"/>
- <cd:constant name="alignmentcharacter" value="alierecaracter"/>
- <cd:constant name="small" value="mic"/>
- <cd:constant name="color" value="culoare"/>
- <cd:constant name="column" value="coloana"/>
- <cd:constant name="columns" value="coloane"/>
- <cd:constant name="columndistance" value="distantacoloane"/>
- <cd:constant name="headcommand" value="headcommand"/>
- <cd:constant name="headcolor" value="culoaretitlu"/>
- <cd:constant name="headstyle" value="stiltitlu"/>
- <cd:constant name="afterhead" value="dupatitlu"/>
- <cd:constant name="veroffset" value="veroffset"/>
- <cd:constant name="coupling" value="cuplare"/>
- <cd:constant name="couplingway" value="modcuplare"/>
- <cd:constant name="beforehead" value="inaintetitlu"/>
- <cd:constant name="topspace" value="spatiusus"/>
- <cd:constant name="bodyfont" value="fonttext"/>
- <cd:constant name="label" value="eticheta"/>
- <cd:constant name="empty" value="gol"/>
- <cd:constant name="style" value="stil"/>
- <cd:constant name="rule" value="rigla"/>
- <cd:constant name="rulethickness" value="grosimerigla"/>
- <cd:constant name="rulecolor" value="culoarerigla"/>
- <cd:constant name="list" value="lista"/>
- <cd:constant name="leftwidth" value="latimestanga"/>
- <cd:constant name="leftframe" value="framestanga"/>
- <cd:constant name="leftcolor" value="culoarestanga"/>
- <cd:constant name="leftstyle" value="stilstanga"/>
- <cd:constant name="leftmargin" value="marginestanga"/>
- <cd:constant name="innermargin" value="innermargin"/>
- <cd:constant name="outermargin" value="outermargin"/>
- <cd:constant name="leftmargindistance" value="distantamarginestanga"/>
- <cd:constant name="leftoffset" value="offsetstanga"/>
- <cd:constant name="leftedge" value="bordurastanga"/>
- <cd:constant name="leftedgedistance" value="distantabordurastanga"/>
- <cd:constant name="lefttext" value="textstanga"/>
- <cd:constant name="left" value="stanga"/>
- <cd:constant name="nleft" value="nstanga"/>
- <cd:constant name="logo" value="logo"/>
- <cd:constant name="logos" value="logos"/>
- <cd:constant name="local" value="local"/>
- <cd:constant name="margin" value="margine"/>
- <cd:constant name="margindistance" value="distantamargine"/>
- <cd:constant name="margintext" value="textmargine"/>
- <cd:constant name="marking" value="marcaje"/>
- <cd:constant name="marcolor" value="culoaremarcaj"/>
- <cd:constant name="marstyle" value="stilmarcaj"/>
- <cd:constant name="menu" value="meniu"/>
- <cd:constant name="splitmethod" value="splitmethod"/>
- <cd:constant name="textmethod" value="textmethod"/>
- <cd:constant name="sidemethod" value="sidemethod"/>
- <cd:constant name="method" value="metoda"/>
- <cd:constant name="middle" value="mijloc"/>
- <cd:constant name="middletext" value="textmijloc"/>
- <cd:constant name="max" value="max"/>
- <cd:constant name="min" value="min"/>
- <cd:constant name="sample" value="exemplu"/>
- <cd:constant name="after" value="dupa"/>
- <cd:constant name="name" value="nume"/>
- <cd:constant name="commandafter" value="comandadupa"/>
- <cd:constant name="ntop" value="nsus"/>
- <cd:constant name="level" value="nivel"/>
- <cd:constant name="levels" value="nivele"/>
- <cd:constant name="nbottom" value="njos"/>
- <cd:constant name="norm" value="norm"/>
- <cd:constant name="nlines" value="nlinii"/>
- <cd:constant name="number" value="numar"/>
- <cd:constant name="numbercommand" value="comandanumar"/>
- <cd:constant name="numbering" value="numerotare"/>
- <cd:constant name="numbercolor" value="culoarenumar"/>
- <cd:constant name="numberstyle" value="stilnumar"/>
- <cd:constant name="numberseparator" value="separatornumar"/>
- <cd:constant name="object" value="obiect"/>
- <cd:constant name="offset" value="offset"/>
- <cd:constant name="bottom" value="jos"/>
- <cd:constant name="bottomdistance" value="distantajos"/>
- <cd:constant name="bottomframe" value="framejos"/>
- <cd:constant name="bottomoffset" value="offsetjos"/>
- <cd:constant name="bottomstate" value="starejos"/>
- <cd:constant name="oddmargin" value="margineimpara"/>
- <cd:constant name="at" value="la"/>
- <cd:constant name="option" value="optiune"/>
- <cd:constant name="page" value="pagina"/>
- <cd:constant name="pagecommand" value="comandapagina"/>
- <cd:constant name="pagecolor" value="culoarepagina"/>
- <cd:constant name="pagestyle" value="stilpagina"/>
- <cd:constant name="pagenumber" value="numarpagina"/>
- <cd:constant name="headnumber" value="numartitlu"/>
- <cd:constant name="pageboundaries" value="marginipagina"/>
- <cd:constant name="pagestate" value="pagestate"/>
- <cd:constant name="palet" value="paleta"/>
- <cd:constant name="paper" value="hartie"/>
- <cd:constant name="location" value="locatie"/>
- <cd:constant name="placestopper" value="punestopper"/>
- <cd:constant name="place" value="pune"/>
- <cd:constant name="placehead" value="punetitlu"/>
- <cd:constant name="position" value="pozitie"/>
- <cd:constant name="prefix" value="prefix"/>
- <cd:constant name="preset" value="preset"/>
- <cd:constant name="preview" value="previzualizare"/>
- <cd:constant name="process" value="process"/>
- <cd:constant name="spot" value="spot"/>
- <cd:constant name="dot" value="punct"/>
- <cd:constant name="arrow" value="sageata"/>
- <cd:constant name="edge" value="bordura"/>
- <cd:constant name="edgedistance" value="distantabordura"/>
- <cd:constant name="screen" value="ecran"/>
- <cd:constant name="rightwidth" value="marginedreapta"/>
- <cd:constant name="rightframe" value="framedreapta"/>
- <cd:constant name="rightcolor" value="culoaredreapta"/>
- <cd:constant name="rightstyle" value="stildreapta"/>
- <cd:constant name="rightmargin" value="marginedreapta"/>
- <cd:constant name="rightmargindistance" value="distantamarginedreapta"/>
- <cd:constant name="rightoffset" value="offsetdreapta"/>
- <cd:constant name="rightedge" value="borduradreapta"/>
- <cd:constant name="rightedgedistance" value="distantacoltdreapta"/>
- <cd:constant name="righttext" value="textdreapta"/>
- <cd:constant name="right" value="dreapta"/>
- <cd:constant name="nright" value="ndreapta"/>
- <cd:constant name="reduction" value="reducere"/>
- <cd:constant name="referencing" value="referinta"/>
- <cd:constant name="line" value="linie"/>
- <cd:constant name="linecorrection" value="corectielinie"/>
- <cd:constant name="lines" value="linii"/>
- <cd:constant name="stretch" value="dilatat"/>
- <cd:constant name="resolution" value="rezolutie"/>
- <cd:constant name="rotation" value="rotatie"/>
- <cd:constant name="orientation" value="orientation"/>
- <cd:constant name="horoffset" value="offsetoriz"/>
- <cd:constant name="backspace" value="spatiuspate"/>
- <cd:constant name="direction" value="directie"/>
- <cd:constant name="scale" value="scala"/>
- <cd:constant name="separator" value="separator"/>
- <cd:constant name="display" value="display"/>
- <cd:constant name="scope" value="scop"/>
- <cd:constant name="section" value="sectiune"/>
- <cd:constant name="sectionnumber" value="numarsectiune"/>
- <cd:constant name="setups" value="setups"/>
- <cd:constant name="cutspace" value="cutspace"/>
- <cd:constant name="family" value="familie"/>
- <cd:constant name="space" value="spatiu"/>
- <cd:constant name="spacing" value="spatiere"/>
- <cd:constant name="split" value="split"/>
- <cd:constant name="splitoffset" value="splitoffset"/>
- <cd:constant name="indentnext" value="aliniaturmator"/>
- <cd:constant name="step" value="pas"/>
- <cd:constant name="stack" value="stack"/>
- <cd:constant name="start" value="start"/>
- <cd:constant name="state" value="stare"/>
- <cd:constant name="stop" value="stop"/>
- <cd:constant name="radius" value="raza"/>
- <cd:constant name="dash" value="dash"/>
- <cd:constant name="sub" value="sub"/>
- <cd:constant name="subtitle" value="subtitlu"/>
- <cd:constant name="symbol" value="simbol"/>
- <cd:constant name="closesymbol" value="closesymbol"/>
- <cd:constant name="closecommand" value="closecommand"/>
- <cd:constant name="symbolset" value="setsimbol"/>
- <cd:constant name="symcolor" value="culoaresimbol"/>
- <cd:constant name="symstyle" value="stilsimbol"/>
- <cd:constant name="synonym" value="sinonim"/>
- <cd:constant name="synonymcolor" value="culoaresinonim"/>
- <cd:constant name="synonymstyle" value="stilsinonim"/>
- <cd:constant name="tab" value="tab"/>
- <cd:constant name="sign" value="semn"/>
- <cd:constant name="text" value="text"/>
- <cd:constant name="listtext" value="listtext"/>
- <cd:constant name="textwidth" value="latimetext"/>
- <cd:constant name="numberwidth" value="numberwidth"/>
- <cd:constant name="textcommand" value="comandatext"/>
- <cd:constant name="textsize" value="dimensiunetext"/>
- <cd:constant name="textcolor" value="culoaretext"/>
- <cd:constant name="textstyle" value="stiltext"/>
- <cd:constant name="textseparator" value="separatortext"/>
- <cd:constant name="textstate" value="staretext"/>
- <cd:constant name="title" value="titlu"/>
- <cd:constant name="titlestyle" value="stiltitlu"/>
- <cd:constant name="titlecolor" value="culoaretitlu"/>
- <cd:constant name="titledistance" value="distantatitlu"/>
- <cd:constant name="titleleft" value="titleleft"/>
- <cd:constant name="titleright" value="titleright"/>
- <cd:constant name="titlecommand" value="titlecommand"/>
- <cd:constant name="aligntitle" value="alinieretitlu"/>
- <cd:constant name="tolerance" value="toleranta"/>
- <cd:constant name="inbetween" value="intre"/>
- <cd:constant name="type" value="type"/>
- <cd:constant name="align" value="aliniere"/>
- <cd:constant name="symalign" value="symaliniere"/>
- <cd:constant name="urlspace" value="spatiuurl"/>
- <cd:constant name="urlalternative" value="urlalternativ"/>
- <cd:constant name="from" value="dela"/>
- <cd:constant name="alternative" value="alternativ"/>
- <cd:constant name="increment" value="increment"/>
- <cd:constant name="incrementnumber" value="numarincrement"/>
- <cd:constant name="resetnumber" value="resetnumber"/>
- <cd:constant name="reference" value="referinta"/>
- <cd:constant name="unknownreference" value="referintanecunoscuta"/>
- <cd:constant name="footer" value="subsol"/>
- <cd:constant name="footerdistance" value="distantasubsol"/>
- <cd:constant name="footerstate" value="staresubsol"/>
- <cd:constant name="voffset" value="voffset"/>
- <cd:constant name="next" value="urmatorul"/>
- <cd:constant name="before" value="inainte"/>
- <cd:constant name="commandbefore" value="comandainainte"/>
- <cd:constant name="previous" value="precendent"/>
- <cd:constant name="previousnumber" value="numarprecedent"/>
- <cd:constant name="delay" value="intarziere"/>
- <cd:constant name="way" value="mod"/>
- <cd:constant name="random" value="aleator"/>
- <cd:constant name="white" value="alb"/>
- <cd:constant name="xfactor" value="xfactor"/>
- <cd:constant name="xmax" value="xmax"/>
- <cd:constant name="xoffset" value="xoffset"/>
- <cd:constant name="xscale" value="xscala"/>
- <cd:constant name="xstep" value="xstep"/>
- <cd:constant name="yfactor" value="yfactor"/>
- <cd:constant name="ymax" value="ymax"/>
- <cd:constant name="yoffset" value="yoffset"/>
- <cd:constant name="yscale" value="yscala"/>
- <cd:constant name="ystep" value="ystep"/>
- <cd:constant name="samepage" value="aceeasipagina"/>
- <cd:constant name="itemalign" value="itemalign"/>
- <cd:constant name="sidealign" value="sidealign"/>
- <cd:constant name="side" value="parte"/>
- <cd:constant name="fieldlayer" value="fieldlayer"/>
- <cd:constant name="textlayer" value="textlayer"/>
- <cd:constant name="fieldbackgroundcolor" value="culoarefundalcamp"/>
- <cd:constant name="fieldframecolor" value="culoareframecamp"/>
- <cd:constant name="fieldoffset" value="offsetcamp"/>
- <cd:constant name="action" value="actiune"/>
- <cd:constant name="openaction" value="actiunedeschidere"/>
- <cd:constant name="closeaction" value="actiuneinchidere"/>
- <cd:constant name="openpageaction" value="actiunedeschiderepagina"/>
- <cd:constant name="closepageaction" value="actiuneinchiderepagina"/>
- <cd:constant name="clickin" value="clickintru"/>
- <cd:constant name="clickout" value="clickies"/>
- <cd:constant name="regionin" value="regiuneintrare"/>
- <cd:constant name="regionout" value="regiuneiesire"/>
- <cd:constant name="focusin" value="focusin"/>
- <cd:constant name="focusout" value="focusout"/>
- <cd:constant name="afterkey" value="dupatasta"/>
- <cd:constant name="format" value="format"/>
- <cd:constant name="validate" value="verifica"/>
- <cd:constant name="calculate" value="calculeaza"/>
- <cd:constant name="click" value="click"/>
- <cd:constant name="vcommand" value="comandav"/>
- <cd:constant name="icommand" value="comandai"/>
- <cd:constant name="ccommand" value="comandac"/>
- <cd:constant name="textdistance" value="textdistance"/>
- <cd:constant name="numberdistance" value="numberdistance"/>
- <cd:constant name="textmargin" value="textmargin"/>
- <cd:constant name="keyword" value="keyword"/>
- <cd:constant name="deeptextcommand" value="deeptextcommand"/>
- <cd:constant name="deepnumbercommand" value="deepnumbercommand"/>
- </cd:constants>
-
- <cd:constants>
- <cd:constant name="extras" value="extras"/>
- </cd:constants>
-
- <cd:variables>
- <cd:variable name="on" value="on"/>
- <cd:variable name="test" value="test"/>
- <cd:variable name="serried" value="serried"/>
- <cd:variable name="joinedup" value="unit"/>
- <cd:variable name="absolute" value="absolut"/>
- <cd:variable name="background" value="fundal"/>
- <cd:variable name="backward" value="inapoi"/>
- <cd:variable name="subbackward" value="subinapoi"/>
- <cd:variable name="action" value="actiune"/>
- <cd:variable name="stopper" value="stopper"/>
- <cd:variable name="paragraph" value="paragraf"/>
- <cd:variable name="all" value="tot"/>
- <cd:variable name="always" value="totdeauna"/>
- <cd:variable name="auto" value="auto"/>
- <cd:variable name="autointro" value="autointro"/>
- <cd:variable name="both" value="ambele"/>
- <cd:variable name="inner" value="intern"/>
- <cd:variable name="blank" value="blank"/>
- <cd:variable name="disable" value="dezactivat"/>
- <cd:variable name="top" value="sus"/>
- <cd:variable name="wide" value="larg"/>
- <cd:variable name="width" value="latime"/>
- <cd:variable name="minwidth" value="latimeminima"/>
- <cd:variable name="outer" value="extern"/>
- <cd:variable name="numbers" value="numere"/>
- <cd:variable name="Numbers" value="Numere"/>
- <cd:variable name="command" value="comanda"/>
- <cd:variable name="commands" value="comenzi"/>
- <cd:variable name="concept" value="concept"/>
- <cd:variable name="day" value="zi"/>
- <cd:variable name="date" value="data"/>
- <cd:variable name="default" value="implicit"/>
- <cd:variable name="final" value="final"/>
- <cd:variable name="float" value="obiectmobil"/>
- <cd:variable name="depth" value="adancime"/>
- <cd:variable name="doublesided" value="douafete"/>
- <cd:variable name="first" value="primul"/>
- <cd:variable name="each" value="fiecare"/>
- <cd:variable name="singlesided" value="ofata"/>
- <cd:variable name="somewhere" value="undeva"/>
- <cd:variable name="nowhere" value="niciunde"/>
- <cd:variable name="even" value="par"/>
- <cd:variable name="external" value="extern"/>
- <cd:variable name="file" value="fisier"/>
- <cd:variable name="flexible" value="flexibil"/>
- <cd:variable name="force" value="fortat"/>
- <cd:variable name="used" value="folosit"/>
- <cd:variable name="none" value="niciunul"/>
- <cd:variable name="nomarking" value="faramarcare"/>
- <cd:variable name="nonumber" value="nonumber"/>
- <cd:variable name="nowhite" value="faraalb"/>
- <cd:variable name="rotated" value="rotat"/>
- <cd:variable name="mirrored" value="oglindit"/>
- <cd:variable name="global" value="global"/>
- <cd:variable name="grid" value="grila"/>
- <cd:variable name="nogrid" value="nogrid"/>
- <cd:variable name="big" value="mare"/>
- <cd:variable name="bigbodyfont" value="bigbodyfont"/>
- <cd:variable name="bigpreference" value="preferintamare"/>
- <cd:variable name="gray" value="gri"/>
- <cd:variable name="halfline" value="jumatatelinie"/>
- <cd:variable name="keep" value="mentine"/>
- <cd:variable name="hanging" value="suspendat"/>
- <cd:variable name="spacing" value="spatiere"/>
- <cd:variable name="nospacing" value="nospacing"/>
- <cd:variable name="repeat" value="repetat"/>
- <cd:variable name="fix" value="fix"/>
- <cd:variable name="here" value="aici"/>
- <cd:variable name="header" value="antet"/>
- <cd:variable name="high" value="inalt"/>
- <cd:variable name="height" value="inaltime"/>
- <cd:variable name="minheight" value="inaltimeminima"/>
- <cd:variable name="horizontal" value="orizontal"/>
- <cd:variable name="current" value="curent"/>
- <cd:variable name="hz" value="hz"/>
- <cd:variable name="nohz" value="nohz"/>
- <cd:variable name="italic" value="italic"/>
- <cd:variable name="inherit" value="inherit"/>
- <cd:variable name="inleft" value="instanga"/>
- <cd:variable name="inmargin" value="inmargine"/>
- <cd:variable name="inright" value="indreapta"/>
- <cd:variable name="interaction" value="interactiune"/>
- <cd:variable name="intext" value="intext"/>
- <cd:variable name="intro" value="intro"/>
- <cd:variable name="its" value="propriu"/>
- <cd:variable name="yes" value="da"/>
- <cd:variable name="year" value="an"/>
- <cd:variable name="frame" value="incadrat"/>
- <cd:variable name="marginedge" value="marginebordura"/>
- <cd:variable name="cap" value="cap"/>
- <cd:variable name="capital" value="majuscula"/>
- <cd:variable name="referral" value="referinta"/>
- <cd:variable name="small" value="mic"/>
- <cd:variable name="smallnormal" value="micnormal"/>
- <cd:variable name="smallslanted" value="micinclinat"/>
- <cd:variable name="smallslantedbold" value="micinclinataldin"/>
- <cd:variable name="smallitalic" value="micitalic"/>
- <cd:variable name="smallitalicbold" value="micitalicaldin"/>
- <cd:variable name="smalltype" value="mictype"/>
- <cd:variable name="smallbold" value="micaldin"/>
- <cd:variable name="smallboldslanted" value="micaldininclinat"/>
- <cd:variable name="smallbolditalic" value="micaldininclinat"/>
- <cd:variable name="smallbodyfont" value="smallbodyfont"/>
- <cd:variable name="split" value="split"/>
- <cd:variable name="toggle" value="toggle"/>
- <cd:variable name="color" value="culoare"/>
- <cd:variable name="column" value="coloana"/>
- <cd:variable name="columns" value="coloane"/>
- <cd:variable name="head" value="antet"/>
- <cd:variable name="low" value="jos"/>
- <cd:variable name="last" value="ultim"/>
- <cd:variable name="label" value="eticheta"/>
- <cd:variable name="lohi" value="lohi"/>
- <cd:variable name="tall" value="inalt"/>
- <cd:variable name="empty" value="gol"/>
- <cd:variable name="Character" value="Caracter"/>
- <cd:variable name="character" value="caracter"/>
- <cd:variable name="Characters" value="Caractere"/>
- <cd:variable name="characters" value="caractere"/>
- <cd:variable name="landscape" value="vedere"/>
- <cd:variable name="rule" value="rigla"/>
- <cd:variable name="list" value="lista"/>
- <cd:variable name="leftmargin" value="marginestanga"/>
- <cd:variable name="leftpage" value="paginastanga"/>
- <cd:variable name="leftedge" value="bordurastanga"/>
- <cd:variable name="left" value="stanga"/>
- <cd:variable name="local" value="local"/>
- <cd:variable name="new" value="nou"/>
- <cd:variable name="old" value="old"/>
- <cd:variable name="MONTH" value="LUNA"/>
- <cd:variable name="month" value="luna"/>
- <cd:variable name="mar" value="mar"/>
- <cd:variable name="item" value="element"/>
- <cd:variable name="marking" value="marcaje"/>
- <cd:variable name="margin" value="margine"/>
- <cd:variable name="max" value="max"/>
- <cd:variable name="min" value="min"/>
- <cd:variable name="mediaeval" value="medieval"/>
- <cd:variable name="medium" value="mediu"/>
- <cd:variable name="middle" value="centru"/>
- <cd:variable name="after" value="dupa"/>
- <cd:variable name="name" value="nume"/>
- <cd:variable name="opposite" value="opus"/>
- <cd:variable name="no" value="nu"/>
- <cd:variable name="negative" value="negativ"/>
- <cd:variable name="positive" value="positiv"/>
- <cd:variable name="not" value="nu"/>
- <cd:variable name="never" value="niciodata"/>
- <cd:variable name="normal" value="normal"/>
- <cd:variable name="number" value="numar"/>
- <cd:variable name="offset" value="offset"/>
- <cd:variable name="unknown" value="necunoscut"/>
- <cd:variable name="bottom" value="subsol"/>
- <cd:variable name="odd" value="impar"/>
- <cd:variable name="packed" value="impachetat"/>
- <cd:variable name="unpacked" value="despachetat"/>
- <cd:variable name="makeup" value="marcaj"/>
- <cd:variable name="atmargin" value="lamargine"/>
- <cd:variable name="overlay" value="overlay"/>
- <cd:variable name="page" value="pagina"/>
- <cd:variable name="pagenumber" value="numarpagina"/>
- <cd:variable name="paper" value="foaie"/>
- <cd:variable name="display" value="display"/>
- <cd:variable name="reverse" value="reverse"/>
- <cd:variable name="fit" value="ajustat"/>
- <cd:variable name="nofit" value="nofit"/>
- <cd:variable name="postscript" value="postscript"/>
- <cd:variable name="preview" value="previzualizare"/>
- <cd:variable name="program" value="program"/>
- <cd:variable name="process" value="process"/>
- <cd:variable name="spot" value="spot"/>
- <cd:variable name="dot" value="punct"/>
- <cd:variable name="ran" value="rulat"/>
- <cd:variable name="edge" value="bordura"/>
- <cd:variable name="screen" value="ecran"/>
- <cd:variable name="rectangular" value="rectangular"/>
- <cd:variable name="rightmargin" value="marginedreapta"/>
- <cd:variable name="rightpage" value="paginadreapta"/>
- <cd:variable name="rightedge" value="borduradreapta"/>
- <cd:variable name="right" value="dreapta"/>
- <cd:variable name="line" value="linie"/>
- <cd:variable name="hang" value="suspenda"/>
- <cd:variable name="register" value="registru"/>
- <cd:variable name="relative" value="relativ"/>
- <cd:variable name="reset" value="reset"/>
- <cd:variable name="Romannumerals" value="Numereromane"/>
- <cd:variable name="romannumerals" value="numereromane"/>
- <cd:variable name="greek" value="grec"/>
- <cd:variable name="Greek" value="Grec"/>
- <cd:variable name="round" value="rotund"/>
- <cd:variable name="rotate" value="rotit"/>
- <cd:variable name="stretch" value="dilatat"/>
- <cd:variable name="backspace" value="spatiuspate"/>
- <cd:variable name="broad" value="broad"/>
- <cd:variable name="row" value="rand"/>
- <cd:variable name="slanted" value="inclinat"/>
- <cd:variable name="slantedbold" value="inclinataldin"/>
- <cd:variable name="synchronize" value="synchronize"/>
- <cd:variable name="italicbold" value="italicaldin"/>
- <cd:variable name="sectionnumber" value="numarsetiune"/>
- <cd:variable name="narrow" value="ingust"/>
- <cd:variable name="cutspace" value="cutspace"/>
- <cd:variable name="tolerant" value="tolerant"/>
- <cd:variable name="space" value="spatiu"/>
- <cd:variable name="standard" value="standard"/>
- <cd:variable name="start" value="start"/>
- <cd:variable name="stop" value="stop"/>
- <cd:variable name="strict" value="strict"/>
- <cd:variable name="strut" value="strut"/>
- <cd:variable name="sub" value="sub"/>
- <cd:variable name="sym" value="sym"/>
- <cd:variable name="txt" value="txt"/>
- <cd:variable name="symbol" value="simbol"/>
- <cd:variable name="text" value="text"/>
- <cd:variable name="back" value="inapot"/>
- <cd:variable name="test" value="test"/>
- <cd:variable name="inbetween" value="intre"/>
- <cd:variable name="type" value="type"/>
- <cd:variable name="off" value="dezactivat"/>
- <cd:variable name="url" value="url"/>
- <cd:variable name="URL" value="URL"/>
- <cd:variable name="fixed" value="fixat"/>
- <cd:variable name="loose" value="larg"/>
- <cd:variable name="continue" value="continuu"/>
- <cd:variable name="vertical" value="vertical"/>
- <cd:variable name="bold" value="aldin"/>
- <cd:variable name="sansbold" value="sansaldin"/>
- <cd:variable name="boldslanted" value="aldininclinat"/>
- <cd:variable name="bolditalic" value="aldinitalic"/>
- <cd:variable name="quadruple" value="cvadrupul"/>
- <cd:variable name="footer" value="subsol"/>
- <cd:variable name="next" value="urmatorul"/>
- <cd:variable name="before" value="inainte"/>
- <cd:variable name="foreground" value="primplan"/>
- <cd:variable name="preference" value="preferinta"/>
- <cd:variable name="temporary" value="temporar"/>
- <cd:variable name="forward" value="avans"/>
- <cd:variable name="subforward" value="subavans"/>
- <cd:variable name="previous" value="precedent"/>
- <cd:variable name="value" value="valoare"/>
- <cd:variable name="week" value="saptamana"/>
- <cd:variable name="weekday" value="zisaptamana"/>
- <cd:variable name="WEEKDAY" value="ZISAPTAMANA"/>
- <cd:variable name="random" value="aleator"/>
- <cd:variable name="white" value="alb"/>
- <cd:variable name="very" value="foarte"/>
- <cd:variable name="verytolerant" value="foartetolerant"/>
- <cd:variable name="verystrict" value="foartestrict"/>
- <cd:variable name="see" value="vezi"/>
- <cd:variable name="smallcaps" value="majusculemici"/>
- <cd:variable name="WORD" value="CUVANT"/>
- <cd:variable name="firstpage" value="primapagina"/>
- <cd:variable name="firstcolumn" value="firstcolumn"/>
- <cd:variable name="previouspage" value="paginaanterioara"/>
- <cd:variable name="nextpage" value="paginaurmatoare"/>
- <cd:variable name="lastpage" value="ultimapagina"/>
- <cd:variable name="lastcolumn" value="lastcolumn"/>
- <cd:variable name="lastpagenumber" value="lastpagenumber"/>
- <cd:variable name="subpage" value="subpagina"/>
- <cd:variable name="firstsubpage" value="primasubpagina"/>
- <cd:variable name="previoussubpage" value="subpaginaanterioara"/>
- <cd:variable name="nextsubpage" value="urmatoareasubpagina"/>
- <cd:variable name="lastsubpage" value="ultimasubpagina"/>
- <cd:variable name="nextevenpage" value="paginaparaurmatoarea"/>
- <cd:variable name="nextoddpage" value="paginaimparaurmatoarea"/>
- <cd:variable name="previousevenpage" value="paginaparaprecedenta"/>
- <cd:variable name="previousoddpage" value="paginaimparaprecedenta"/>
- <cd:variable name="readonly" value="readonly"/>
- <cd:variable name="required" value="obligatoriu"/>
- <cd:variable name="protected" value="protejat"/>
- <cd:variable name="sorted" value="sortat"/>
- <cd:variable name="unavailable" value="nedisponibil"/>
- <cd:variable name="hidden" value="ascuns"/>
- <cd:variable name="printable" value="tiparibil"/>
- <cd:variable name="bookmark" value="semncarte"/>
- <cd:variable name="nocheck" value="nocheck"/>
- <cd:variable name="innermargin" value="innermargin"/>
- <cd:variable name="outermargin" value="outermargin"/>
- <cd:variable name="inneredge" value="inneredge"/>
- <cd:variable name="outeredge" value="outeredge"/>
- <cd:variable name="controls" value="controale"/>
- <cd:variable name="nothanging" value="nothanging"/>
- <cd:variable name="hyphenated" value="despsilabe"/>
- <cd:variable name="nothyphenated" value="nedespsilabe"/>
- <cd:variable name="overprint" value="overprint"/>
- <cd:variable name="knockout" value="knockout"/>
- <cd:variable name="xml" value="xml"/>
- <cd:variable name="enumeration" value="enumerare"/>
- <cd:variable name="description" value="descriere"/>
- <cd:variable name="lefthanging" value="lefthanging"/>
- <cd:variable name="righthanging" value="righthanging"/>
- </cd:variables>
-
- <cd:constants>
- <cd:constant name="controls" value="controale"/>
- <cd:constant name="global" value="global"/>
- <cd:constant name="overprint" value="overprint"/>
- </cd:constants>
-
- <cd:variables>
- <cd:variable name="conversion" value="conversie"/>
- <cd:variable name="by" value="de"/>
- </cd:variables>
-
- <cd:constants>
- <cd:constant name="dx" value="dx"/>
- <cd:constant name="dy" value="dy"/>
- <cd:constant name="nx" value="nx"/>
- <cd:constant name="ny" value="ny"/>
- <cd:constant name="nr" value="nr"/>
- <cd:constant name="nl" value="nl"/>
- <cd:constant name="nc" value="nc"/>
- <cd:constant name="sx" value="sx"/>
- <cd:constant name="sy" value="sy"/>
- <cd:constant name="n" value="n"/>
- <cd:constant name="vfil" value="vfil"/>
- <cd:constant name="hfil" value="hfil"/>
- <cd:constant name="strut" value="strut"/>
- <cd:constant name="autostrut" value="autostrut"/>
- <cd:constant name="reset" value="reset"/>
- <cd:constant name="set" value="set"/>
- <cd:constant name="escape" value="escape"/>
- <cd:constant name="apa" value="apa"/>
- </cd:constants>
-
- <cd:variables>
- <cd:variable name="calligraphic" value="caligrafic"/>
- <cd:variable name="handwritten" value="scrismanual"/>
- <cd:variable name="sansserif" value="sansserif"/>
- <cd:variable name="roman" value="roman"/>
- <cd:variable name="teletype" value="teletype"/>
- <cd:variable name="type" value="type"/>
- <cd:variable name="serif" value="serif"/>
- <cd:variable name="regular" value="regular"/>
- <cd:variable name="support" value="suport"/>
- <cd:variable name="sans" value="sans"/>
- <cd:variable name="mono" value="mono"/>
- </cd:variables>
-
- <cd:elements>
- <cd:element name="begin" value="inceput"/>
- <cd:element name="end" value="sfarsit"/>
- <cd:element name="coupled" value="cuplat"/>
- <cd:element name="get" value="get"/>
- <cd:element name="currentlocal" value="localcurent"/>
- <cd:element name="endsetup" value="endsetup"/>
- <cd:element name="load" value="incarca"/>
- <cd:element name="emptyone" value="gol"/>
- <cd:element name="emptytwo" value="gol"/>
- <cd:element name="list" value="lista"/>
- <cd:element name="listof" value="listade"/>
- <cd:element name="local" value="local"/>
- <cd:element name="place" value="pune"/>
- <cd:element name="reserve" value="rezervat"/>
- <cd:element name="start" value="start"/>
- <cd:element name="setup" value="setare"/>
- <cd:element name="stop" value="stop"/>
- <cd:element name="increment" value="increment"/>
- <cd:element name="next" value="urmatorul"/>
- <cd:element name="complete" value="complet"/>
- <cd:element name="previous" value="precedent"/>
- <cd:element name="previouslocal" value="precedentlocal"/>
- <cd:element name="see" value="vezi"/>
- <cd:element name="type" value="type"/>
- <cd:element name="makeup" value="makeup"/>
- <cd:element name="text" value="text"/>
- </cd:elements>
-
- <cd:variables>
- <cd:variable name="buffer" value="buffer"/>
- <cd:variable name="linenote" value="linenote"/>
- <cd:variable name="comment" value="comentariu"/>
- <cd:variable name="interactionmenu" value="meniuinteractiune"/>
- <cd:variable name="postponing" value="postponing"/>
- <cd:variable name="hiding" value="ascundere"/>
- <cd:variable name="tabulate" value="tabulate"/>
- <cd:variable name="tabulatehead" value="tabulatehead"/>
- <cd:variable name="tabulatetail" value="tabulatetail"/>
- <cd:variable name="fact" value="fapt"/>
- <cd:variable name="legend" value="legenda"/>
- <cd:variable name="formula" value="formula"/>
- <cd:variable name="tablehead" value="antettabel"/>
- <cd:variable name="tabletail" value="subsoltabel"/>
- <cd:variable name="setups" value="setari"/>
- <cd:variable name="helptext" value="textajutator"/>
- <cd:variable name="localenvironment" value="mediulocal"/>
- <cd:variable name="sectionblockenvironment" value="blocsectiuneambient"/>
- <cd:variable name="pagecomment" value="comentariupagina"/>
- </cd:variables>
-
- <cd:variables>
- <cd:variable name="FirstPage" value="PrimaPagina"/>
- <cd:variable name="PreviousPage" value="PaginaPrecedenta"/>
- <cd:variable name="NextPage" value="PaginaUrmatoare"/>
- <cd:variable name="LastPage" value="UltimaPagina"/>
- <cd:variable name="PreviousJump" value="SaltPrecedent"/>
- <cd:variable name="NextJump" value="SaltUrmator"/>
- <cd:variable name="ToggleViewer" value="SchimbaVizualizator"/>
- <cd:variable name="ExitViewer" value="IesireVizualizator"/>
- <cd:variable name="CloseDocument" value="InchideDocument"/>
- <cd:variable name="SaveDocument" value="SalvareDocument"/>
- <cd:variable name="SaveNamedDocument" value="SaveNamedDocument"/>
- <cd:variable name="OpenNamedDocument" value="OpenNamedDocument"/>
- <cd:variable name="ViewerHelp" value="AjutorVizualizator"/>
- <cd:variable name="PrintDocument" value="TiparesteDocument"/>
- <cd:variable name="SearchDocument" value="CautaDocument"/>
- <cd:variable name="SearchAgain" value="CautaDinNou"/>
- <cd:variable name="Query" value="Query"/>
- <cd:variable name="QueryAgain" value="QueryAgain"/>
- <cd:variable name="GotoPage" value="LaPagina"/>
- <cd:variable name="StartMovie" value="StartFilm"/>
- <cd:variable name="StopMovie" value="StopFilm"/>
- <cd:variable name="PauseMovie" value="PauzaFilm"/>
- <cd:variable name="ResumeMovie" value="RepornesteFilm"/>
- <cd:variable name="StartSound" value="StartSunet"/>
- <cd:variable name="StopSound" value="StopSunet"/>
- <cd:variable name="PauseSound" value="PauzaSunet"/>
- <cd:variable name="ResumeSound" value="RepornesteSunet"/>
- <cd:variable name="StartRendering" value="StartRendering"/>
- <cd:variable name="StopRendering" value="StopRendering"/>
- <cd:variable name="PauseRendering" value="PauseRendering"/>
- <cd:variable name="ResumeRendering" value="ResumeRendering"/>
- <cd:variable name="SaveForm" value="SalveazaFormular"/>
- <cd:variable name="LoadForm" value="IncarcaFormular"/>
- <cd:variable name="ResetForm" value="ResetareFormular"/>
- <cd:variable name="SubmitForm" value="TrimiteFormular"/>
- <cd:variable name="HideField" value="AscundeCamp"/>
- <cd:variable name="ShowField" value="AfiseazaCamp"/>
- <cd:variable name="FitWidth" value="AjustatLatime"/>
- <cd:variable name="FitHeight" value="AjustatInaltime"/>
- <cd:variable name="HideLayer" value="HideLayer"/>
- <cd:variable name="VideLayer" value="VideLayer"/>
- <cd:variable name="ToggleLayer" value="ToggleLayer"/>
- <cd:variable name="ShowThumbs" value="ShowThumbs"/>
- <cd:variable name="ShowBookmarks" value="ShowBookmarks"/>
- </cd:variables>
-
- <cd:variables>
- <cd:variable name="New" value="Nou"/>
- <cd:variable name="Balloon" value="Balon"/>
- <cd:variable name="Addition" value="Adaugare"/>
- <cd:variable name="Help" value="Ajutor"/>
- <cd:variable name="Paragraph" value="Paragraf"/>
- <cd:variable name="Key" value="Cheie"/>
- </cd:variables>
-
- <cd:constants>
- <cd:constant name="bet" value="bet"/>
- <cd:constant name="dat" value="dat"/>
- <cd:constant name="ken" value="ken"/>
- <cd:constant name="ref" value="ref"/>
- </cd:constants>
-
- <cd:variables>
- <cd:variable name="formeel" value="formeel"/>
- <cd:variable name="informeel" value="informeel"/>
- <cd:variable name="rekening" value="rekening"/>
- <cd:variable name="sticker" value="sticker"/>
- <cd:variable name="sheet" value="sheet"/>
- <cd:variable name="brief" value="brief"/>
- <cd:variable name="ls" value="ls"/>
- </cd:variables>
-
- <cd:commands>
- <cd:command name="language" value="limba"/>
- <cd:command name="mainlanguage" value="limbaprincipala"/>
- <cd:command name="translate" value="traduce"/>
- <cd:command name="installlanguage" value="instalarelimba"/>
- <cd:command name="setuplanguage" value="setarelimba"/>
- <cd:command name="showmakeup" value="afiseazamakeup"/>
- <cd:command name="useencoding" value="folosestecodificarea"/>
- <cd:command name="usespecials" value="folosestespeciale"/>
- <cd:command name="defineoutput" value="definesteoutput"/>
- <cd:command name="setupoutput" value="setareoutput"/>
- <cd:command name="defineaccent" value="definesteaccent"/>
- <cd:command name="definecharacter" value="definestecaracter"/>
- <cd:command name="definecommand" value="definestecomanda"/>
- <cd:command name="startcoding" value="startcodificare"/>
- <cd:command name="stopcoding" value="stopcodificare"/>
- <cd:command name="definebodyfontenvironment" value="definestemediulfonttext"/>
- <cd:command name="setupbodyfontenvironment" value="seteazamediulfonttext"/>
- <cd:command name="definebodyfont" value="definestefonttext"/>
- <cd:command name="definefont" value="definestefont"/>
- <cd:command name="definefontsynonym" value="definestesinonimfont"/>
- <cd:command name="definestyle" value="definestestil"/>
- <cd:command name="definefontstyle" value="definestestilfont"/>
- <cd:command name="setupstrut" value="seteazastrut"/>
- <cd:command name="setuptype" value="seteazatype"/>
- <cd:command name="type" value="type"/>
- <cd:command name="typ" value="typ"/>
- <cd:command name="arg" value="arg"/>
- <cd:command name="tex" value="tex"/>
- <cd:command name="definetyping" value="definestetyping"/>
- <cd:command name="definetype" value="definetype"/>
- <cd:command name="setuptyping" value="seteazatyping"/>
- <cd:command name="typefile" value="typefile"/>
- <cd:command name="setupfootnotes" value="seteazanotasubsol"/>
- <cd:command name="setupfootnotedefinition" value="seteazadefinireanotasubsol"/>
- <cd:command name="note" value="nota"/>
- <cd:command name="footnote" value="notasubsol"/>
- <cd:command name="footnotetext" value="footnotetext"/>
- <cd:command name="startlocalfootnotes" value="startnotesubsollocale"/>
- <cd:command name="stoplocalfootnotes" value="stopnotesubsollocale"/>
- <cd:command name="placelocalfootnotes" value="punenotesubsollocale"/>
- <cd:command name="placefootnotes" value="punenotesubsol"/>
- <cd:command name="currentdate" value="datacurenta"/>
- <cd:command name="date" value="data"/>
- <cd:command name="weekday" value="zidinsaptamana"/>
- <cd:command name="WEEKDAY" value="ZIDINSAPTAMANA"/>
- <cd:command name="month" value="luna"/>
- <cd:command name="MONTH" value="LUNA"/>
- <cd:command name="Numbers" value="Numere"/>
- <cd:command name="numbers" value="numere"/>
- <cd:command name="romannumerals" value="numereromane"/>
- <cd:command name="Romannumerals" value="Numereromane"/>
- <cd:command name="character" value="litera"/>
- <cd:command name="Character" value="Litera"/>
- <cd:command name="characters" value="litere"/>
- <cd:command name="Characters" value="Litere"/>
- <cd:command name="unknown" value="necunoscut"/>
- <cd:command name="definesymbol" value="definestesimbol"/>
- <cd:command name="definefiguresymbol" value="definestesimbolfigura"/>
- <cd:command name="symbol" value="simbol"/>
- <cd:command name="setupsymbolset" value="seteazasimbol"/>
- <cd:command name="showsymbolset" value="afiseazasetsimboluri"/>
- <cd:command name="startsymbolset" value="startsetsimboluri"/>
- <cd:command name="usesymbols" value="folosestesimboluri"/>
- <cd:command name="defineconversion" value="definesteconversie"/>
- <cd:command name="convertnumber" value="convertestenumar"/>
- <cd:command name="setupcapitals" value="seteazamajuscule"/>
- <cd:command name="smallcapped" value="kap"/>
- <cd:command name="notsmallcapped" value="nokap"/>
- <cd:command name="CAPPED" value="KAP"/>
- <cd:command name="SmallCapped" value="Kap"/>
- <cd:command name="SmallCaps" value="Kaps"/>
- <cd:command name="WORD" value="CUVANT"/>
- <cd:command name="WORDS" value="CUVINTE"/>
- <cd:command name="Word" value="Cuvant"/>
- <cd:command name="Words" value="Cuvinte"/>
- <cd:command name="stretched" value="intins"/>
- <cd:command name="overstrike" value="liniepeste"/>
- <cd:command name="overstrikes" value="liniipeste"/>
- <cd:command name="overbar" value="barasus"/>
- <cd:command name="overbars" value="supralinie"/>
- <cd:command name="underbar" value="sublinie"/>
- <cd:command name="underbars" value="sublinii"/>
- <cd:command name="setupunderbar" value="seteazasublinie"/>
- <cd:command name="setupbodyfont" value="seteazafonttext"/>
- <cd:command name="switchtobodyfont" value="trecilafonttext"/>
- <cd:command name="showbodyfont" value="afiseazafonttext"/>
- <cd:command name="showbodyfontenvironment" value="afiseazamediufonttext"/>
- <cd:command name="headtext" value="texttitlu"/>
- <cd:command name="labeltext" value="texteticheta"/>
- <cd:command name="LABELTEXT" value="TEXTETICHETA"/>
- <cd:command name="setupheadtext" value="seteazatexttitlu"/>
- <cd:command name="setuplabeltext" value="seteazatexteticheta"/>
- <cd:command name="marginrule" value="liniemargine"/>
- <cd:command name="startmarginrule" value="startliniemargine"/>
- <cd:command name="stopmarginrule" value="stopliniemargine"/>
- <cd:command name="setupmarginrules" value="seteazaliniimargine"/>
- <cd:command name="blackrule" value="linieneagra"/>
- <cd:command name="blackrules" value="liniinegre"/>
- <cd:command name="setupblackrules" value="seteazaliniinegre"/>
- <cd:command name="setupscreens" value="seteazaecrane"/>
- <cd:command name="framed" value="framed"/>
- <cd:command name="inframed" value="inframed"/>
- <cd:command name="mframed" value="maframed"/>
- <cd:command name="inmframed" value="inmaframed"/>
- <cd:command name="setupframed" value="seteazainconjurat"/>
- <cd:command name="setuplinewidth" value="seteazagrosimelinie"/>
- <cd:command name="setupthinrules" value="seteazaliniesubtire"/>
- <cd:command name="thinrule" value="liniesubtire"/>
- <cd:command name="thinrules" value="liniisubtiri"/>
- <cd:command name="hairline" value="firdepar"/>
- <cd:command name="vl" value="vl"/>
- <cd:command name="hl" value="hl"/>
- <cd:command name="defineframed" value="definesteinconjurare"/>
- <cd:command name="defineframedtext" value="definestetextinconjurat"/>
- <cd:command name="setupframedtexts" value="definestetexteinconjurate"/>
- <cd:command name="defineoverlay" value="definesteoverlay"/>
- <cd:command name="definelayer" value="definelayer"/>
- <cd:command name="background" value="fundal"/>
- <cd:command name="startbackground" value="startfundal"/>
- <cd:command name="stopbackground" value="stopfundal"/>
- <cd:command name="setupbackground" value="seteazafundal"/>
- <cd:command name="fillinrules" value="rigleumplere"/>
- <cd:command name="setupfillinrules" value="seteazarigleumplere"/>
- <cd:command name="fillintext" value="textumplere"/>
- <cd:command name="setupfillinlines" value="seteazaliniiumplere"/>
- <cd:command name="fillinline" value="linieumplere"/>
- <cd:command name="setuptextrules" value="seteazarigletext"/>
- <cd:command name="textrule" value="riglatext"/>
- <cd:command name="starttextrule" value="startriglatext"/>
- <cd:command name="stoptextrule" value="stopriglatext"/>
- <cd:command name="usemodule" value="folosestemodul"/>
- <cd:command name="usemodules" value="folosestemodule"/>
- <cd:command name="starttext" value="starttext"/>
- <cd:command name="stoptext" value="stoptext"/>
- <cd:command name="margintitle" value="titlumarginal"/>
- <cd:command name="marginword" value="cuvantmarginal"/>
- <cd:command name="margintext" value="textmarginal"/>
- <cd:command name="inleft" value="instanga"/>
- <cd:command name="inmargin" value="marginal"/>
- <cd:command name="inothermargin" value="inaltamargine"/>
- <cd:command name="inright" value="indreapta"/>
- <cd:command name="ininner" value="ininner"/>
- <cd:command name="inouter" value="inouter"/>
- <cd:command name="startmarginblock" value="startblocmarginal"/>
- <cd:command name="stopmarginblock" value="stopblocmarginal"/>
- <cd:command name="defineinmargin" value="defineinmargin"/>
- <cd:command name="setupinmargin" value="seteazamarginal"/>
- <cd:command name="setupmarginblocks" value="seteazablocurimarginale"/>
- <cd:command name="inleftedge" value="inparteastanga"/>
- <cd:command name="inleftmargin" value="inmargineastanga"/>
- <cd:command name="inrightmargin" value="inmargineadreapta"/>
- <cd:command name="inrightedge" value="inparteadreapta"/>
- <cd:command name="atleftmargin" value="atleftmargin"/>
- <cd:command name="atrightmargin" value="atrightmargin"/>
- <cd:command name="wordright" value="cuvantdreapta"/>
- <cd:command name="defineblank" value="definesteblanc"/>
- <cd:command name="blank" value="blanc"/>
- <cd:command name="setupblank" value="seteazablanc"/>
- <cd:command name="correctwhitespace" value="corecteazaspatiualb"/>
- <cd:command name="fixedspaces" value="spatiifixate"/>
- <cd:command name="fixedspace" value="spatiufixat"/>
- <cd:command name="nospace" value="faraspatiu"/>
- <cd:command name="space" value="spatiu"/>
- <cd:command name="nowhitespace" value="faraspatiualb"/>
- <cd:command name="packed" value="impachetat"/>
- <cd:command name="startpacked" value="startimpachetat"/>
- <cd:command name="stoppacked" value="stopimpachetat"/>
- <cd:command name="startunpacked" value="startneimpachetat"/>
- <cd:command name="stopunpacked" value="stopneimpachetat"/>
- <cd:command name="startlinecorrection" value="startcorectielinie"/>
- <cd:command name="stoplinecorrection" value="stopcorectielinie"/>
- <cd:command name="godown" value="injos"/>
- <cd:command name="whitespace" value="spatiualb"/>
- <cd:command name="noindenting" value="faraaliniat"/>
- <cd:command name="indenting" value="aliniat"/>
- <cd:command name="setupindenting" value="seteazaaliniat"/>
- <cd:command name="startalignment" value="startaliniere"/>
- <cd:command name="stopalignment" value="stopaliniere"/>
- <cd:command name="startlines" value="startlinii"/>
- <cd:command name="stoplines" value="stoplinii"/>
- <cd:command name="setupparagraphnumbering" value="seteazanumerotareparagrafe"/>
- <cd:command name="setuplinenumbering" value="seteazanumerotarelinii"/>
- <cd:command name="startlinenumbering" value="startnumerotarelinii"/>
- <cd:command name="stoplinenumbering" value="stopnumerotarelinii"/>
- <cd:command name="startline" value="startlinie"/>
- <cd:command name="stopline" value="stoplinie"/>
- <cd:command name="someline" value="olinie"/>
- <cd:command name="inline" value="inlinie"/>
- <cd:command name="crlf" value="crlf"/>
- <cd:command name="emptylines" value="emptylines"/>
- <cd:command name="setuplines" value="seteazalinii"/>
- <cd:command name="startnarrower" value="startingust"/>
- <cd:command name="stopnarrower" value="stopingust"/>
- <cd:command name="setupnarrower" value="seteazaingust"/>
- <cd:command name="definetabulate" value="definestetabulatori"/>
- <cd:command name="setuptabulate" value="seteazatabulatori"/>
- <cd:command name="starttable" value="starttabel"/>
- <cd:command name="stoptable" value="stoptabel"/>
- <cd:command name="starttables" value="starttabele"/>
- <cd:command name="stoptables" value="stoptabele"/>
- <cd:command name="setuptables" value="seteazatabele"/>
- <cd:command name="definetabletemplate" value="definestesablontabel"/>
- <cd:command name="page" value="pagina"/>
- <cd:command name="testcolumn" value="testcolumn"/>
- <cd:command name="testpage" value="testpage"/>
- <cd:command name="couplepage" value="paginadubla"/>
- <cd:command name="pagetype" value="tippagina"/>
- <cd:command name="processpage" value="proceseazapagina"/>
- <cd:command name="couplepaper" value="hartiedubla"/>
- <cd:command name="selectpaper" value="selecteazahartie"/>
- <cd:command name="screen" value="ecran"/>
- <cd:command name="definesection" value="definestesectiune"/>
- <cd:command name="definesectionblock" value="definesteblocsectiune"/>
- <cd:command name="setupsectionblock" value="seteazablocsectiune"/>
- <cd:command name="setupsection" value="seteazasectiune"/>
- <cd:command name="notopandbottomlines" value="faraliniisussijos"/>
- <cd:command name="noheaderandfooterlines" value="faraliniiantetsisubsol"/>
- <cd:command name="setuptop" value="seteazasus"/>
- <cd:command name="setuptoptexts" value="seteazatextesus"/>
- <cd:command name="setupheader" value="seteazaantet"/>
- <cd:command name="setupheadertexts" value="seteazatexteantet"/>
- <cd:command name="setuppagenumbering" value="seteazanumerotarepagina"/>
- <cd:command name="getnumber" value="getnumber"/>
- <cd:command name="incrementnumber" value="numarincrement"/>
- <cd:command name="decrementnumber" value="decrementnumber"/>
- <cd:command name="resetnumber" value="resetnumber"/>
- <cd:command name="setnumber" value="setnumber"/>
- <cd:command name="setupnumber" value="setupnumber"/>
- <cd:command name="setupbottom" value="seteazajos"/>
- <cd:command name="setupbottomtexts" value="seteazatextejos"/>
- <cd:command name="setupfooter" value="seteazasubsol"/>
- <cd:command name="setupfootertexts" value="seteazatextesubsol"/>
- <cd:command name="setuppagenumber" value="seteazanumarpagina"/>
- <cd:command name="setupsubpagenumber" value="seteazanumarsubpagina"/>
- <cd:command name="subpagenumber" value="subpagenumber"/>
- <cd:command name="setuptext" value="seteazatext"/>
- <cd:command name="setuptexttexts" value="seteazatextetext"/>
- <cd:command name="settextcontent" value="settextcontent"/>
- <cd:command name="resettext" value="resettextcontent"/>
- <cd:command name="definetext" value="definestetext"/>
- <cd:command name="pagenumber" value="numarpagina"/>
- <cd:command name="completepagenumber" value="completeazanumarpagina"/>
- <cd:command name="placepagenumber" value="punenumarpagina"/>
- <cd:command name="items" value="element"/>
- <cd:command name="setupitems" value="seteazaelemente"/>
- <cd:command name="leftaligned" value="aliniatstanga"/>
- <cd:command name="midaligned" value="aliniatcentru"/>
- <cd:command name="rightaligned" value="aliniatdreapta"/>
- <cd:command name="startcolumns" value="startcoloane"/>
- <cd:command name="stopcolumns" value="stopcoloane"/>
- <cd:command name="setupcolumns" value="seteazacoloane"/>
- <cd:command name="column" value="coloana"/>
- <cd:command name="head" value="titlu"/>
- <cd:command name="but" value="but"/>
- <cd:command name="item" value="element"/>
- <cd:command name="nop" value="nop"/>
- <cd:command name="mar" value="mar"/>
- <cd:command name="sym" value="sim"/>
- <cd:command name="txt" value="txt"/>
- <cd:command name="its" value="el"/>
- <cd:command name="ran" value="ran"/>
- <cd:command name="headsym" value="headsym"/>
- <cd:command name="defineitemgroup" value="defineitemgroup"/>
- <cd:command name="setupitemgroup" value="setupitemgroup"/>
- <cd:command name="setupitemgroups" value="setupitemgroups"/>
- <cd:command name="definehead" value="definesteantet"/>
- <cd:command name="setuphead" value="seteazatitlu"/>
- <cd:command name="setupheads" value="seteazatitluri"/>
- <cd:command name="setupheadnumber" value="seteazanumartitlu"/>
- <cd:command name="headnumber" value="numartitlu"/>
- <cd:command name="currentheadnumber" value="numartitlucurent"/>
- <cd:command name="determineheadnumber" value="determinanumartitlu"/>
- <cd:command name="resetmarking" value="reseteazamarcaje"/>
- <cd:command name="setupmarking" value="seteazamarcaje"/>
- <cd:command name="definemarking" value="definestemarcaje"/>
- <cd:command name="nomarking" value="faramarcaje"/>
- <cd:command name="marking" value="marcaje"/>
- <cd:command name="decouplemarking" value="decupleazamarcaje"/>
- <cd:command name="couplemarking" value="cupleazamarcaje"/>
- <cd:command name="getmarking" value="adumarcaje"/>
- <cd:command name="definelayout" value="definelayout"/>
- <cd:command name="setuplayout" value="seteazaaspect"/>
- <cd:command name="adaptlayout" value="adapteazaaspect"/>
- <cd:command name="placeongrid" value="plaseazapegrid"/>
- <cd:command name="moveongrid" value="mutapegrid"/>
- <cd:command name="showsetups" value="afiseazasetari"/>
- <cd:command name="showframe" value="afiseazarama"/>
- <cd:command name="showgrid" value="afiseazagrid"/>
- <cd:command name="showlayout" value="afiseazaaspect"/>
- <cd:command name="showprint" value="afiseazatiparire"/>
- <cd:command name="showstruts" value="afiseazastruts"/>
- <cd:command name="definepapersize" value="definestedimensiunehartie"/>
- <cd:command name="setuppapersize" value="seteazadimensiunihartie"/>
- <cd:command name="setuppaper" value="setuppaper"/>
- <cd:command name="setuparranging" value="seteazaaranjareapag"/>
- <cd:command name="version" value="versiune"/>
- <cd:command name="setupbackgrounds" value="seteazafundaluri"/>
- <cd:command name="setupalign" value="seteazaalinierea"/>
- <cd:command name="setupwhitespace" value="seteazaspatiualb"/>
- <cd:command name="setupinteraction" value="seteazainteractiunea"/>
- <cd:command name="setupinteractionmenu" value="seteazameniuinteractiune"/>
- <cd:command name="defineinteractionmenu" value="definestemeniuinteractiune"/>
- <cd:command name="disableinteractionmenu" value="dezactiveazameniuinteractiune"/>
- <cd:command name="interactionmenu" value="meniuinteractiune"/>
- <cd:command name="interactionbuttons" value="butoaneinteractiune"/>
- <cd:command name="interactionbar" value="barainteractiune"/>
- <cd:command name="setupinteractionbar" value="seteazabarainteractiune"/>
- <cd:command name="setupinteractionscreen" value="seteazaecraninteractiune"/>
- <cd:command name="placebookmarks" value="plaseazasemnecarte"/>
- <cd:command name="bookmark" value="semncarte"/>
- <cd:command name="definelogo" value="definestelogo"/>
- <cd:command name="placelogos" value="punelogouri"/>
- <cd:command name="definecolor" value="definesteculoare"/>
- <cd:command name="definecolorgroup" value="definestegrupculori"/>
- <cd:command name="definepalet" value="definestepaleta"/>
- <cd:command name="graycolor" value="culoaregri"/>
- <cd:command name="color" value="culoare"/>
- <cd:command name="startcolor" value="startculoare"/>
- <cd:command name="stopcolor" value="stopculoare"/>
- <cd:command name="setupcolors" value="seteazaculori"/>
- <cd:command name="setupcolor" value="seteazaculoare"/>
- <cd:command name="setuppalet" value="seteazapaleta"/>
- <cd:command name="showcolor" value="afiseazaculoare"/>
- <cd:command name="showcolorgroup" value="afiseazagrupculoare"/>
- <cd:command name="showpalet" value="afiseazapaleta"/>
- <cd:command name="comparecolorgroup" value="comparagrupculoare"/>
- <cd:command name="comparepalet" value="comparapaleta"/>
- <cd:command name="colorvalue" value="valoareculoare"/>
- <cd:command name="greyvalue" value="valoaregri"/>
- <cd:command name="startraster" value="startraster"/>
- <cd:command name="stopraster" value="stopraster"/>
- <cd:command name="defineblock" value="definestebloc"/>
- <cd:command name="setupblock" value="seteazabloc"/>
- <cd:command name="useblocks" value="folosestebloc"/>
- <cd:command name="processblocks" value="proceseazabloc"/>
- <cd:command name="keepblocks" value="pastreazablocuri"/>
- <cd:command name="selectblocks" value="selecteazablocuri"/>
- <cd:command name="hideblocks" value="ascundeblocuri"/>
- <cd:command name="bypassblocks" value="saripesteblocuri"/>
- <cd:command name="forceblocks" value="forteazablocuri"/>
- <cd:command name="nomoreblocks" value="gatablocuri"/>
- <cd:command name="definelist" value="definestelista"/>
- <cd:command name="definecombinedlist" value="definestelistacombinata"/>
- <cd:command name="listsymbol" value="listsymbol"/>
- <cd:command name="placelist" value="punelista"/>
- <cd:command name="plaatsruwelijst" value="placerawlist"/>
- <cd:command name="placecombinedlist" value="punelistacombinata"/>
- <cd:command name="writetolist" value="scrieinlista"/>
- <cd:command name="writebetweenlist" value="scrieintreliste"/>
- <cd:command name="immediatetolist" value="immediatetolist"/>
- <cd:command name="immediatebetweenlist" value="immediatebetweenlist"/>
- <cd:command name="setuplist" value="seteazalista"/>
- <cd:command name="setupcombinedlist" value="seteazalistacombinata"/>
- <cd:command name="determinelistcharacteristics" value="determinacaracteristicilelistei"/>
- <cd:command name="listlength" value="lungimelista"/>
- <cd:command name="listwidth" value="latimelista"/>
- <cd:command name="listheight" value="inaltimelista"/>
- <cd:command name="nolist" value="faralista"/>
- <cd:command name="definereferencelist" value="definestelistareferinte"/>
- <cd:command name="placereferencelist" value="punelistareferinte"/>
- <cd:command name="writetoreferencelist" value="scrieinlistareferinte"/>
- <cd:command name="setupreferencelist" value="seteazalistareferinte"/>
- <cd:command name="definefloat" value="definestefloat"/>
- <cd:command name="setupfloat" value="seteazafloat"/>
- <cd:command name="setupfloats" value="seteazafloats"/>
- <cd:command name="splitfloat" value="impartefloat"/>
- <cd:command name="setupfloatsplitting" value="seteazaimpartireafloat"/>
- <cd:command name="placefloat" value="placefloat"/>
- <cd:command name="movesidefloat" value="movesidefloat"/>
- <cd:command name="defineplacement" value="defineplacement"/>
- <cd:command name="setupplacement" value="setupplacement"/>
- <cd:command name="definecombination" value="definecombination"/>
- <cd:command name="startcombination" value="startcombinare"/>
- <cd:command name="stopcombination" value="stopcombinare"/>
- <cd:command name="placesidebyside" value="punefatainfata"/>
- <cd:command name="placeontopofeachother" value="punedeasuprafiecareia"/>
- <cd:command name="setupcaption" value="seteazalegenda"/>
- <cd:command name="setupcaptions" value="seteazalegendele"/>
- <cd:command name="setupcombinations" value="seteazacombinari"/>
- <cd:command name="startoverlay" value="startoverlay"/>
- <cd:command name="stopoverlay" value="stopoverlay"/>
- <cd:command name="defineregister" value="definesteregistru"/>
- <cd:command name="coupleregister" value="cupleazaregistru"/>
- <cd:command name="setupregister" value="seteazaregistru"/>
- <cd:command name="writetoregister" value="scrieinregistru"/>
- <cd:command name="completeregister" value="completeregister"/>
- <cd:command name="placeregister" value="puneregistru"/>
- <cd:command name="determineregistercharacteristics" value="determinacaracteristiciregistru"/>
- <cd:command name="definesorting" value="definestesortare"/>
- <cd:command name="definesynonyms" value="definestesinonim"/>
- <cd:command name="setupsorting" value="seteazasortare"/>
- <cd:command name="setupsynonyms" value="seteazasinonime"/>
- <cd:command name="startsynchronization" value="startsincronizare"/>
- <cd:command name="stopsynchronization" value="stopsincronizare"/>
- <cd:command name="setupsynchronizationbar" value="setarebarasincronizare"/>
- <cd:command name="setupsynchronization" value="setaresincronizare"/>
- <cd:command name="synchronizationbar" value="barasincronizare"/>
- <cd:command name="synchronize" value="sincronizeaza"/>
- <cd:command name="useexternaldocument" value="folosestedocumentextern"/>
- <cd:command name="useURL" value="folosesteURL"/>
- <cd:command name="useurl" value="folosesteurl"/>
- <cd:command name="setupurl" value="seteazaurl"/>
- <cd:command name="coupledocument" value="cupleazadocument"/>
- <cd:command name="setupprograms" value="seteazaprograme"/>
- <cd:command name="defineprogram" value="definesteprogram"/>
- <cd:command name="program" value="program"/>
- <cd:command name="setuppagetransitions" value="seteazatranzitiepagina"/>
- <cd:command name="defineprofile" value="definesteprofil"/>
- <cd:command name="defineversion" value="definesteversiune"/>
- <cd:command name="markversion" value="marcheazaversiune"/>
- <cd:command name="selectversion" value="selecteazaversiune"/>
- <cd:command name="startprofile" value="startprofil"/>
- <cd:command name="startversion" value="startversiune"/>
- <cd:command name="setupprofiles" value="seteazaprofile"/>
- <cd:command name="setupversions" value="seteazaversiuni"/>
- <cd:command name="stopprofile" value="stopprofil"/>
- <cd:command name="stopversion" value="stopversiune"/>
- <cd:command name="followprofile" value="urmeazaprofil"/>
- <cd:command name="followprofileversion" value="urmeazaversiuneprofil"/>
- <cd:command name="followversion" value="urmeazaversiune"/>
- <cd:command name="definedescription" value="definestedescriere"/>
- <cd:command name="definelabel" value="definesteeticheta"/>
- <cd:command name="defineenumeration" value="definesteenumerare"/>
- <cd:command name="defineindenting" value="definestealiat"/>
- <cd:command name="setupdescriptions" value="seteazadescriere"/>
- <cd:command name="setupenumerations" value="seteazaenumerare"/>
- <cd:command name="setupindentations" value="seteazaaliniate"/>
- <cd:command name="setuptab" value="seteazatab"/>
- <cd:command name="tab" value="tab"/>
- <cd:command name="setupexternalfigures" value="seteazafiguriexterne"/>
- <cd:command name="showexternalfigures" value="afiseazafiguriexterne"/>
- <cd:command name="externalfigure" value="figuraexterna"/>
- <cd:command name="useexternalfigure" value="folosestefiguraexterna"/>
- <cd:command name="startfigure" value="startfigura"/>
- <cd:command name="referring" value="referring"/>
- <cd:command name="remark" value="remarca"/>
- <cd:command name="colorbar" value="baraculoare"/>
- <cd:command name="grid" value="grid"/>
- <cd:command name="button" value="buton"/>
- <cd:command name="menubutton" value="butonmeniu"/>
- <cd:command name="setupbuttons" value="seteazabutoane"/>
- <cd:command name="usereferences" value="folosestereferinte"/>
- <cd:command name="placereferencelist" value="placereferencelist"/>
- <cd:command name="setupreferencelist" value="seteazalistareferinte"/>
- <cd:command name="setupreferencing" value="seteazareferinte"/>
- <cd:command name="textreference" value="referintatext"/>
- <cd:command name="pagereference" value="referintapagina"/>
- <cd:command name="reference" value="referinta"/>
- <cd:command name="definereference" value="definestereferinte"/>
- <cd:command name="definereferenceformat" value="definesteformatreferinte"/>
- <cd:command name="useJSscripts" value="folosestescriptJS"/>
- <cd:command name="from" value="din"/>
- <cd:command name="in" value="in"/>
- <cd:command name="at" value="la"/>
- <cd:command name="about" value="despre"/>
- <cd:command name="goto" value="dute"/>
- <cd:command name="atpage" value="lapagina"/>
- <cd:command name="somewhere" value="undeva"/>
- <cd:command name="navigating" value="navigating"/>
- <cd:command name="ref" value="ref"/>
- <cd:command name="gotobox" value="dutebox"/>
- <cd:command name="gotopage" value="dutepagina"/>
- <cd:command name="placeformula" value="puneformula"/>
- <cd:command name="placesubformula" value="punesubformula"/>
- <cd:command name="moveformula" value="moveformula"/>
- <cd:command name="setupformulas" value="seteazaformule"/>
- <cd:command name="formulanumber" value="numarformula"/>
- <cd:command name="subformulanumber" value="numarsubformula"/>
- <cd:command name="leg" value="leg"/>
- <cd:command name="fact" value="fact"/>
- <cd:command name="mathematics" value="matematica"/>
- <cd:command name="dimension" value="dimensiune"/>
- <cd:command name="nodimension" value="faradimensiune"/>
- <cd:command name="startenvironment" value="startmediu"/>
- <cd:command name="stopenvironment" value="stopmediu"/>
- <cd:command name="startcomponent" value="startcomponenta"/>
- <cd:command name="stopcomponent" value="stopcomponenta"/>
- <cd:command name="startproduct" value="startprodus"/>
- <cd:command name="stopproduct" value="stopprodus"/>
- <cd:command name="startproject" value="startproiect"/>
- <cd:command name="stopproject" value="stopproiect"/>
- <cd:command name="setups" value="setari"/>
- <cd:command name="project" value="proiect"/>
- <cd:command name="component" value="componenta"/>
- <cd:command name="product" value="produs"/>
- <cd:command name="environment" value="mediu"/>
- <cd:command name="nomorefiles" value="farafisiere"/>
- <cd:command name="getbuffer" value="adubuffer"/>
- <cd:command name="setupbuffer" value="seteazabuffer"/>
- <cd:command name="typebuffer" value="scriebuffer"/>
- <cd:command name="definebuffer" value="definestebuffer"/>
- <cd:command name="unitmeaning" value="numeunitate"/>
- <cd:command name="infull" value="pelung"/>
- <cd:command name="quotation" value="citat"/>
- <cd:command name="quote" value="minicitat"/>
- <cd:command name="startquotation" value="startcitat"/>
- <cd:command name="stopquotation" value="stopcitat"/>
- <cd:command name="setupquote" value="seteazaminicitat"/>
- <cd:command name="define" value="defineste"/>
- <cd:command name="redo" value="refa"/>
- <cd:command name="usecommands" value="folosestecomenzi"/>
- <cd:command name="definestartstop" value="definestestartstop"/>
- <cd:command name="setupstartstop" value="setupstartstop"/>
- <cd:command name="startlocal" value="startlocal"/>
- <cd:command name="stoplocal" value="stoplocal"/>
- <cd:command name="startglobal" value="startglobal"/>
- <cd:command name="stopglobal" value="stopblobal"/>
- <cd:command name="macroname" value="nume"/>
- <cd:command name="definemakeup" value="definestemakeup"/>
- <cd:command name="setupmakeup" value="seteazamakeup"/>
- <cd:command name="startmakeup" value="startmakeup"/>
- <cd:command name="stopmakeup" value="stopmakeup"/>
- <cd:command name="useexternalsoundtrack" value="folosestemuzicaexterna"/>
- <cd:command name="useexternalfile" value="folosestefisierextern"/>
- <cd:command name="useexternalfiles" value="folosestefisiereexterne"/>
- <cd:command name="referral" value="referit"/>
- <cd:command name="referraldate" value="datareferit"/>
- <cd:command name="high" value="inalt"/>
- <cd:command name="lohi" value="jossus"/>
- <cd:command name="low" value="jos"/>
- <cd:command name="fraction" value="fractie"/>
- <cd:command name="chem" value="chem"/>
- <cd:command name="startopposite" value="startopozit"/>
- <cd:command name="stopopposite" value="stopopozit"/>
- <cd:command name="setupoppositeplacing" value="seteazaplasareaopozita"/>
- <cd:command name="startpositioning" value="startpozitionare"/>
- <cd:command name="stoppositioning" value="stoppozitionare"/>
- <cd:command name="position" value="pozitie"/>
- <cd:command name="setuppositioning" value="setarepozitie"/>
- <cd:command name="rotate" value="roteste"/>
- <cd:command name="setuprotate" value="seteazarotare"/>
- <cd:command name="mirror" value="reflexie"/>
- <cd:command name="scale" value="scala"/>
- <cd:command name="setupnumbering" value="seteazanumerotare"/>
- <cd:command name="reset" value="reset"/>
- <cd:command name="setuppublications" value="seteazapublicatii"/>
- <cd:command name="publication" value="publicatie"/>
- <cd:command name="definehbox" value="definestehbox"/>
- <cd:command name="adding" value="adauga"/>
- <cd:command name="periods" value="puncte"/>
- <cd:command name="setuphyphenmark" value="seteazaliniesilabe"/>
- <cd:command name="setupinterlinespace" value="seteazaspatiuinterliniar"/>
- <cd:command name="setupspacing" value="seteazaspatiu"/>
- <cd:command name="setuptolerance" value="seteazatoleranta"/>
- <cd:command name="setupsystem" value="seteazasistem"/>
- <cd:command name="usepath" value="folosestedirector"/>
- <cd:command name="defineparagraphs" value="definesteparagraf"/>
- <cd:command name="setupparagraphs" value="seteazaparagrafe"/>
- <cd:command name="donttest" value="nutesta"/>
- <cd:command name="setupcomment" value="seteazacomentariu"/>
- <cd:command name="comment" value="comentariu"/>
- <cd:command name="definefield" value="definestecamp"/>
- <cd:command name="definemainfield" value="definestecampprincipal"/>
- <cd:command name="definesubfield" value="definestesubcamp"/>
- <cd:command name="clonefield" value="cloneazacamp"/>
- <cd:command name="copyfield" value="copiazacamp"/>
- <cd:command name="setupfield" value="seteazacamp"/>
- <cd:command name="setupfields" value="seteazacampuri"/>
- <cd:command name="field" value="camp"/>
- <cd:command name="fitfield" value="potrivestecamp"/>
- <cd:command name="logfields" value="logcampuri"/>
- <cd:command name="showfields" value="afiseazacampuri"/>
- <cd:command name="tooltip" value="tooltip"/>
- <cd:command name="fillinfield" value="campumplere"/>
- <cd:command name="definefieldstack" value="definestestivacampuri"/>
- <cd:command name="fieldstack" value="stivacampuri"/>
- <cd:command name="setupforms" value="seteazaformulare"/>
- <cd:command name="setupclipping" value="seteazaclipping"/>
- <cd:command name="clip" value="clip"/>
- <cd:command name="placelegend" value="punelegenda"/>
- <cd:command name="setuplegend" value="seteazalegenda"/>
- <cd:command name="setuppagecomment" value="seteazacomentariupagina"/>
- <cd:command name="setupstrut" value="seteazastrut"/>
- <cd:command name="definerule" value="definesterigla"/>
- <cd:command name="placerule" value="punerigla"/>
- <cd:command name="setuprule" value="seteazarigla"/>
- <cd:command name="definetextvariable" value="definestevariabilatext"/>
- <cd:command name="setuptextvariable" value="seteazavariabilatext"/>
- <cd:command name="settextvariable" value="setvariabilatext"/>
- <cd:command name="placetextvariable" value="punevariabilatext"/>
- <cd:command name="textvariable" value="variabilatext"/>
- <cd:command name="definetextposition" value="definestepozitietext"/>
- <cd:command name="setuptextposition" value="seteazapozitietext"/>
- <cd:command name="positiontext" value="pozitietext"/>
- <cd:command name="definerawfont" value="definestefontraw"/>
- <cd:command name="switchtorawfont" value="trecilafontraw"/>
- <cd:command name="placeheadtext" value="placeheadtext"/>
- <cd:command name="placeheadnumber" value="placeheadnumber"/>
- <cd:command name="definepagebreak" value="definepagebreak"/>
- <cd:command name="definecolumnbreak" value="definecolumnbreak"/>
- <cd:command name="definemathalignment" value="definemathalignment"/>
- <cd:command name="setupmathalignment" value="setupmathalignment"/>
- </cd:commands>
-
- <cd:commands>
- <cd:command name="setupitemgroups" value="setareitemization"/>
- </cd:commands>
-
- <cd:commands>
- <cd:command name="topheight" value="inaltimesus"/>
- <cd:command name="topdistance" value="distantasus"/>
- <cd:command name="headerheight" value="inaltimeantet"/>
- <cd:command name="headerdistance" value="distantaantet"/>
- <cd:command name="textheight" value="inaltimetext"/>
- <cd:command name="footerdistance" value="distantasubsol"/>
- <cd:command name="footerheight" value="inaltimesubsol"/>
- <cd:command name="bottomdistance" value="distantajos"/>
- <cd:command name="bottomheight" value="inaltimejos"/>
- <cd:command name="marginwidth" value="latimemargine"/>
- <cd:command name="leftmarginwidth" value="latimemarginestanga"/>
- <cd:command name="rightmarginwidth" value="latimemarginedreapta"/>
- <cd:command name="margindistance" value="distantamargine"/>
- <cd:command name="leftmargindistance" value="distantamarginestanga"/>
- <cd:command name="rightmargindistance" value="distantamarginedreapta"/>
- <cd:command name="edgewidth" value="latimecolturi"/>
- <cd:command name="leftedgewidth" value="latimecoltstanga"/>
- <cd:command name="rightedgewidth" value="latimecoltdreapta"/>
- <cd:command name="edgedistance" value="distantacolt"/>
- <cd:command name="leftedgedistance" value="distantacoltstanga"/>
- <cd:command name="rightedgedistance" value="distantacoltdreapta"/>
- <cd:command name="innermarginwidth" value="innermarginwidth"/>
- <cd:command name="outermarginwidth" value="outermarginwidth"/>
- <cd:command name="innermargindistance" value="innermargindistance"/>
- <cd:command name="outermargindistance" value="outermargindistance"/>
- <cd:command name="inneredgewidth" value="inneredgewidth"/>
- <cd:command name="outeredgewidth" value="outeredgewidth"/>
- <cd:command name="inneredgedistance" value="inneredgedistance"/>
- <cd:command name="outeredgedistance" value="outeredgedistance"/>
- <cd:command name="textwidth" value="latimetext"/>
- <cd:command name="makeupwidth" value="latimemakeup"/>
- <cd:command name="makeupheight" value="inaltimemakeup"/>
- <cd:command name="topspace" value="spatiusus"/>
- <cd:command name="bottomspace" value="spatiujos"/>
- <cd:command name="backspace" value="spatiuspate"/>
- <cd:command name="cutspace" value="cutspace"/>
- <cd:command name="paperwidth" value="latimehartie"/>
- <cd:command name="paperheight" value="inaltimehartie"/>
- <cd:command name="printpaperwidth" value="latimehartieimprimanta"/>
- <cd:command name="printpaperheight" value="inaltimehartieimprimanta"/>
- <cd:command name="pageoffset" value="pageoffset"/>
- <cd:command name="pagedepth" value="pagedepth"/>
- <cd:command name="headlevel" value="niveltitlu"/>
- <cd:command name="linewidth" value="grosimelinie"/>
- <cd:command name="totalnumberofpages" value="numartotalpagini"/>
- <cd:command name="numberofsubpages" value="numberofsubpages"/>
- <cd:command name="useXMLfilter" value="useXMLfilter"/>
- <cd:command name="definecolumnset" value="definecolumnset"/>
- <cd:command name="setupcolumnset" value="setupcolumnset"/>
- <cd:command name="startcolumnset" value="startcolumnset"/>
- <cd:command name="stopcolumnset" value="stopcolumnset"/>
- <cd:command name="setupcolumnsetlines" value="setupcolumnsetlines"/>
- <cd:command name="setupcolumnsetstart" value="setupcolumnsetstart"/>
- <cd:command name="startcolumnmakeup" value="startcolumnmakeup"/>
- <cd:command name="stopcolumnmakeup" value="stopcolumnmakeup"/>
- <cd:command name="usetypescript" value="usetypescript"/>
- <cd:command name="usetypescriptfile" value="usetypescriptfile"/>
- </cd:commands>
-
- <cd:commands>
- <cd:command name="startdocument" value="startdocument"/>
- <cd:command name="stopdocument" value="stopdocument"/>
- <cd:command name="startoverzicht" value="startoverview"/>
- <cd:command name="stopoverzicht" value="stopoverview"/>
- <cd:command name="label" value="eticheta"/>
- <cd:command name="labels" value="etichete"/>
- <cd:command name="domicile" value="domiciliu"/>
- </cd:commands>
-
-</cd:interface>
+</cd:interface> \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/interface/t-bib.xml b/Master/texmf-dist/tex/context/interface/t-bib.xml
index e7a8689db72..faa728fa6bc 100644
--- a/Master/texmf-dist/tex/context/interface/t-bib.xml
+++ b/Master/texmf-dist/tex/context/interface/t-bib.xml
@@ -199,6 +199,9 @@
<cd:parameter name="otherstext">
<cd:constant type="cd:text"/>
</cd:parameter>
+ <cd:parameter name="namesep">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
<cd:parameter name="pubsep">
<cd:constant type="cd:text"/>
</cd:parameter>
@@ -266,6 +269,7 @@
<cd:constant type="author"/>
<cd:constant type="short"/>
<cd:constant type="no" default="yes"/>
+ <cd:constant type="cd:file"/>
</cd:parameter>
</cd:assignments>
</cd:arguments>
diff --git a/Master/texmf-dist/tex/context/patterns/lang-bg.hyp b/Master/texmf-dist/tex/context/patterns/lang-bg.hyp
new file mode 100644
index 00000000000..368ff0ecd1f
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/lang-bg.hyp
@@ -0,0 +1,8 @@
+% generated by mtxrun --script pattern --convert
+
+% for comment and copyright, see ./lang-bg.rme
+
+% used:
+
+\hyphenation{
+} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-bg.pat b/Master/texmf-dist/tex/context/patterns/lang-bg.pat
new file mode 100644
index 00000000000..f90258acb87
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/lang-bg.pat
@@ -0,0 +1,1667 @@
+% generated by mtxrun --script pattern --convert
+
+% for comment and copyright, see ./lang-bg.rme
+
+% used: а б в г д е ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ь ю я
+
+\patterns{
+1а1
+1б1
+1в1
+1г1
+1д1
+1е1
+1ж1
+1з1
+1и1
+1й1
+1к1
+1л1
+1м1
+1н1
+1о1
+1п1
+1р1
+1с1
+1т1
+1у1
+1ф1
+1х1
+1ц1
+1ч1
+1ш1
+1щ1
+1ъ1
+0ь0
+1ю1
+1я1
+б4а
+б4е
+б4и
+б4о
+б4у
+б4ъ
+б4ю
+б4я
+в4а
+в4е
+в4и
+в4о
+в4у
+в4ъ
+в4ю
+в4я
+г4а
+г4е
+г4и
+г4о
+г4у
+г4ъ
+г4ю
+г4я
+д4а
+д4е
+д4и
+д4о
+д4у
+д4ъ
+д4ю
+д4я
+ж4а
+ж4е
+ж4и
+ж4о
+ж4у
+ж4ъ
+ж4ю
+ж4я
+з4а
+з4е
+з4и
+з4о
+з4у
+з4ъ
+з4ю
+з4я
+й4а
+й4е
+й4и
+й4о
+й4у
+й4ъ
+й4ю
+й4я
+к4а
+к4е
+к4и
+к4о
+к4у
+к4ъ
+к4ю
+к4я
+л4а
+л4е
+л4и
+л4о
+л4у
+л4ъ
+л4ю
+л4я
+м4а
+м4е
+м4и
+м4о
+м4у
+м4ъ
+м4ю
+м4я
+н4а
+н4е
+н4и
+н4о
+н4у
+н4ъ
+н4ю
+н4я
+п4а
+п4е
+п4и
+п4о
+п4у
+п4ъ
+п4ю
+п4я
+р4а
+р4е
+р4и
+р4о
+р4у
+р4ъ
+р4ю
+р4я
+с4а
+с4е
+с4и
+с4о
+с4у
+с4ъ
+с4ю
+с4я
+т4а
+т4е
+т4и
+т4о
+т4у
+т4ъ
+т4ю
+т4я
+ф4а
+ф4е
+ф4и
+ф4о
+ф4у
+ф4ъ
+ф4ю
+ф4я
+х4а
+х4е
+х4и
+х4о
+х4у
+х4ъ
+х4ю
+х4я
+ц4а
+ц4е
+ц4и
+ц4о
+ц4у
+ц4ъ
+ц4ю
+ц4я
+ч4а
+ч4е
+ч4и
+ч4о
+ч4у
+ч4ъ
+ч4ю
+ч4я
+ш4а
+ш4е
+ш4и
+ш4о
+ш4у
+ш4ъ
+ш4ю
+ш4я
+щ4а
+щ4е
+щ4и
+щ4о
+щ4у
+щ4ъ
+щ4ю
+щ4я
+ь4а
+ь4е
+ь4и
+ь4о
+ь4у
+ь4ъ
+ь4ю
+ь4я
+4б3б4
+2б3в2
+2б3г2
+2б3д2
+2б3ж2
+2б3з2
+2б3й2
+2б3к2
+2б3л2
+2б3м2
+2б3н2
+2б3п2
+2б3р2
+2б3с2
+2б3т2
+2б3ф2
+2б3х2
+2б3ц2
+2б3ч2
+2б3ш2
+2б3щ2
+2в3б2
+4в3в4
+2в3г2
+2в3д2
+2в3ж2
+2в3з2
+2в3й2
+2в3к2
+2в3л2
+2в3м2
+2в3н2
+2в3п2
+2в3р2
+2в3с2
+2в3т2
+2в3ф2
+2в3х2
+2в3ц2
+2в3ч2
+2в3ш2
+2в3щ2
+2г3б2
+2г3в2
+4г3г4
+2г3д2
+2г3ж2
+2г3з2
+2г3й2
+2г3к2
+2г3л2
+2г3м2
+2г3н2
+2г3п2
+2г3р2
+2г3с2
+2г3т2
+2г3ф2
+2г3х2
+2г3ц2
+2г3ч2
+2г3ш2
+2г3щ2
+2д3б2
+2д3в2
+2д3г2
+4д3д4
+3д4ж
+2д3з2
+2д3й2
+2д3к2
+2д3л2
+2д3м2
+2д3н2
+2д3п2
+2д3р2
+2д3с2
+2д3т2
+2д3ф2
+2д3х2
+2д3ц2
+2д3ч2
+2д3ш2
+2д3щ2
+2ж3б2
+2ж3в2
+2ж3г2
+2ж3д2
+4ж3ж4
+2ж3з2
+2ж3й2
+2ж3к2
+2ж3л2
+2ж3м2
+2ж3н2
+2ж3п2
+2ж3р2
+2ж3с2
+2ж3т2
+2ж3ф2
+2ж3х2
+2ж3ц2
+2ж3ч2
+2ж3ш2
+2ж3щ2
+2з3б2
+2з3в2
+2з3г2
+2з3д2
+2з3ж2
+4з3з4
+2з3й2
+2з3к2
+2з3л2
+2з3м2
+2з3н2
+2з3п2
+2з3р2
+2з3с2
+2з3т2
+2з3ф2
+2з3х2
+2з3ц2
+2з3ч2
+2з3ш2
+2з3щ2
+2й3б2
+2й3в2
+2й3г2
+2й3д2
+2й3ж2
+2й3з2
+4й3й4
+2й3к2
+2й3л2
+2й3м2
+2й3н2
+2й3п2
+2й3р2
+2й3с2
+2й3т2
+2й3ф2
+2й3х2
+2й3ц2
+2й3ч2
+2й3ш2
+2й3щ2
+2к3б2
+2к3в2
+2к3г2
+2к3д2
+2к3ж2
+2к3з2
+2к3й2
+4к3к4
+2к3л2
+2к3м2
+2к3н2
+2к3п2
+2к3р2
+2к3с2
+2к3т2
+2к3ф2
+2к3х2
+2к3ц2
+2к3ч2
+2к3ш2
+2к3щ2
+2л3б2
+2л3в2
+2л3г2
+2л3д2
+2л3ж2
+2л3з2
+2л3й2
+2л3к2
+4л3л4
+2л3м2
+2л3н2
+2л3п2
+2л3р2
+2л3с2
+2л3т2
+2л3ф2
+2л3х2
+2л3ц2
+2л3ч2
+2л3ш2
+2л3щ2
+2м3б2
+2м3в2
+2м3г2
+2м3д2
+2м3ж2
+2м3з2
+2м3й2
+2м3к2
+2м3л2
+4м3м4
+2м3н2
+2м3п2
+2м3р2
+2м3с2
+2м3т2
+2м3ф2
+2м3х2
+2м3ц2
+2м3ч2
+2м3ш2
+2м3щ2
+2н3б2
+2н3в2
+2н3г2
+2н3д2
+2н3ж2
+2н3з2
+2н3й2
+2н3к2
+2н3л2
+2н3м2
+4н3н4
+2н3п2
+2н3р2
+2н3с2
+2н3т2
+2н3ф2
+2н3х2
+2н3ц2
+2н3ч2
+2н3ш2
+2н3щ2
+2п3б2
+2п3в2
+2п3г2
+2п3д2
+2п3ж2
+2п3з2
+2п3й2
+2п3к2
+2п3л2
+2п3м2
+2п3н2
+4п3п4
+2п3р2
+2п3с2
+2п3т2
+2п3ф2
+2п3х2
+2п3ц2
+2п3ч2
+2п3ш2
+2п3щ2
+2р3б2
+2р3в2
+2р3г2
+2р3д2
+2р3ж2
+2р3з2
+2р3й2
+2р3к2
+2р3л2
+2р3м2
+2р3н2
+2р3п2
+4р3р4
+2р3с2
+2р3т2
+2р3ф2
+2р3х2
+2р3ц2
+2р3ч2
+2р3ш2
+2р3щ2
+2с3б2
+2с3в2
+2с3г2
+2с3д2
+2с3ж2
+2с3з2
+2с3й2
+2с3к2
+2с3л2
+2с3м2
+2с3н2
+2с3п2
+2с3р2
+4с3с4
+2с3т2
+2с3ф2
+2с3х2
+2с3ц2
+2с3ч2
+2с3ш2
+2с3щ2
+2т3б2
+2т3в2
+2т3г2
+2т3д2
+2т3ж2
+2т3з2
+2т3й2
+2т3к2
+2т3л2
+2т3м2
+2т3н2
+2т3п2
+2т3р2
+2т3с2
+4т3т4
+2т3ф2
+2т3х2
+2т3ц2
+2т3ч2
+2т3ш2
+2т3щ2
+2ф3б2
+2ф3в2
+2ф3г2
+2ф3д2
+2ф3ж2
+2ф3з2
+2ф3й2
+2ф3к2
+2ф3л2
+2ф3м2
+2ф3н2
+2ф3п2
+2ф3р2
+2ф3с2
+2ф3т2
+4ф3ф4
+2ф3х2
+2ф3ц2
+2ф3ч2
+2ф3ш2
+2ф3щ2
+2х3б2
+2х3в2
+2х3г2
+2х3д2
+2х3ж2
+2х3з2
+2х3й2
+2х3к2
+2х3л2
+2х3м2
+2х3н2
+2х3п2
+2х3р2
+2х3с2
+2х3т2
+2х3ф2
+4х3х4
+2х3ц2
+2х3ч2
+2х3ш2
+2х3щ2
+2ц3б2
+2ц3в2
+2ц3г2
+2ц3д2
+2ц3ж2
+2ц3з2
+2ц3й2
+2ц3к2
+2ц3л2
+2ц3м2
+2ц3н2
+2ц3п2
+2ц3р2
+2ц3с2
+2ц3т2
+2ц3ф2
+2ц3х2
+4ц3ц4
+2ц3ч2
+2ц3ш2
+2ц3щ2
+2ч3б2
+2ч3в2
+2ч3г2
+2ч3д2
+2ч3ж2
+2ч3з2
+2ч3й2
+2ч3к2
+2ч3л2
+2ч3м2
+2ч3н2
+2ч3п2
+2ч3р2
+2ч3с2
+2ч3т2
+2ч3ф2
+2ч3х2
+2ч3ц2
+4ч3ч4
+2ч3ш2
+2ч3щ2
+2ш3б2
+2ш3в2
+2ш3г2
+2ш3д2
+2ш3ж2
+2ш3з2
+2ш3й2
+2ш3к2
+2ш3л2
+2ш3м2
+2ш3н2
+2ш3п2
+2ш3р2
+2ш3с2
+2ш3т2
+2ш3ф2
+2ш3х2
+2ш3ц2
+2ш3ч2
+4ш3ш4
+2ш3щ2
+2щ3б2
+2щ3в2
+2щ3г2
+2щ3д2
+2щ3ж2
+2щ3з2
+2щ3й2
+2щ3к2
+2щ3л2
+2щ3м2
+2щ3н2
+2щ3п2
+2щ3р2
+2щ3с2
+2щ3т2
+2щ3ф2
+2щ3х2
+2щ3ц2
+2щ3ч2
+2щ3ш2
+4щ3щ4
+ааа4
+аае4
+ааи4
+аао4
+аау4
+ааъ4
+ааю4
+аая4
+аеа4
+аее4
+аеи4
+аео4
+аеу4
+аеъ4
+аею4
+аея4
+аиа4
+аие4
+аии4
+аио4
+аиу4
+аиъ4
+аию4
+аия4
+аоа4
+аое4
+аои4
+аоо4
+аоу4
+аоъ4
+аою4
+аоя4
+ауа4
+ауе4
+ауи4
+ауо4
+ауу4
+ауъ4
+аую4
+ауя4
+аъа4
+аъе4
+аъи4
+аъо4
+аъу4
+аъъ4
+аъю4
+аъя4
+аюа4
+аюе4
+аюи4
+аюо4
+аюу4
+аюъ4
+аюю4
+аюя4
+аяа4
+аяе4
+аяи4
+аяо4
+аяу4
+аяъ4
+аяю4
+аяя4
+еаа4
+еае4
+еаи4
+еао4
+еау4
+еаъ4
+еаю4
+еая4
+ееа4
+еее4
+ееи4
+еео4
+ееу4
+ееъ4
+еею4
+еея4
+еиа4
+еие4
+еии4
+еио4
+еиу4
+еиъ4
+еию4
+еия4
+еоа4
+еое4
+еои4
+еоо4
+еоу4
+еоъ4
+еою4
+еоя4
+еуа4
+еуе4
+еуи4
+еуо4
+еуу4
+еуъ4
+еую4
+еуя4
+еъа4
+еъе4
+еъи4
+еъо4
+еъу4
+еъъ4
+еъю4
+еъя4
+еюа4
+еюе4
+еюи4
+еюо4
+еюу4
+еюъ4
+еюю4
+еюя4
+еяа4
+еяе4
+еяи4
+еяо4
+еяу4
+еяъ4
+еяю4
+еяя4
+иаа4
+иае4
+иаи4
+иао4
+иау4
+иаъ4
+иаю4
+иая4
+иеа4
+иее4
+иеи4
+иео4
+иеу4
+иеъ4
+иею4
+иея4
+ииа4
+иие4
+иии4
+иио4
+ииу4
+ииъ4
+иию4
+иия4
+иоа4
+иое4
+иои4
+иоо4
+иоу4
+иоъ4
+иою4
+иоя4
+иуа4
+иуе4
+иуи4
+иуо4
+иуу4
+иуъ4
+иую4
+иуя4
+иъа4
+иъе4
+иъи4
+иъо4
+иъу4
+иъъ4
+иъю4
+иъя4
+июа4
+июе4
+июи4
+июо4
+июу4
+июъ4
+июю4
+июя4
+ияа4
+ияе4
+ияи4
+ияо4
+ияу4
+ияъ4
+ияю4
+ияя4
+оаа4
+оае4
+оаи4
+оао4
+оау4
+оаъ4
+оаю4
+оая4
+оеа4
+оее4
+оеи4
+оео4
+оеу4
+оеъ4
+оею4
+оея4
+оиа4
+оие4
+оии4
+оио4
+оиу4
+оиъ4
+оию4
+оия4
+ооа4
+оое4
+оои4
+ооо4
+ооу4
+ооъ4
+оою4
+ооя4
+оуа4
+оуе4
+оуи4
+оуо4
+оуу4
+оуъ4
+оую4
+оуя4
+оъа4
+оъе4
+оъи4
+оъо4
+оъу4
+оъъ4
+оъю4
+оъя4
+оюа4
+оюе4
+оюи4
+оюо4
+оюу4
+оюъ4
+оюю4
+оюя4
+ояа4
+ояе4
+ояи4
+ояо4
+ояу4
+ояъ4
+ояю4
+ояя4
+уаа4
+уае4
+уаи4
+уао4
+уау4
+уаъ4
+уаю4
+уая4
+уеа4
+уее4
+уеи4
+уео4
+уеу4
+уеъ4
+уею4
+уея4
+уиа4
+уие4
+уии4
+уио4
+уиу4
+уиъ4
+уию4
+уия4
+уоа4
+уое4
+уои4
+уоо4
+уоу4
+уоъ4
+уою4
+уоя4
+ууа4
+ууе4
+ууи4
+ууо4
+ууу4
+ууъ4
+уую4
+ууя4
+уъа4
+уъе4
+уъи4
+уъо4
+уъу4
+уъъ4
+уъю4
+уъя4
+уюа4
+уюе4
+уюи4
+уюо4
+уюу4
+уюъ4
+уюю4
+уюя4
+уяа4
+уяе4
+уяи4
+уяо4
+уяу4
+уяъ4
+уяю4
+уяя4
+ъаа4
+ъае4
+ъаи4
+ъао4
+ъау4
+ъаъ4
+ъаю4
+ъая4
+ъеа4
+ъее4
+ъеи4
+ъео4
+ъеу4
+ъеъ4
+ъею4
+ъея4
+ъиа4
+ъие4
+ъии4
+ъио4
+ъиу4
+ъиъ4
+ъию4
+ъия4
+ъоа4
+ъое4
+ъои4
+ъоо4
+ъоу4
+ъоъ4
+ъою4
+ъоя4
+ъуа4
+ъуе4
+ъуи4
+ъуо4
+ъуу4
+ъуъ4
+ъую4
+ъуя4
+ъъа4
+ъъе4
+ъъи4
+ъъо4
+ъъу4
+ъъъ4
+ъъю4
+ъъя4
+ъюа4
+ъюе4
+ъюи4
+ъюо4
+ъюу4
+ъюъ4
+ъюю4
+ъюя4
+ъяа4
+ъяе4
+ъяи4
+ъяо4
+ъяу4
+ъяъ4
+ъяю4
+ъяя4
+юаа4
+юае4
+юаи4
+юао4
+юау4
+юаъ4
+юаю4
+юая4
+юеа4
+юее4
+юеи4
+юео4
+юеу4
+юеъ4
+юею4
+юея4
+юиа4
+юие4
+юии4
+юио4
+юиу4
+юиъ4
+юию4
+юия4
+юоа4
+юое4
+юои4
+юоо4
+юоу4
+юоъ4
+юою4
+юоя4
+юуа4
+юуе4
+юуи4
+юуо4
+юуу4
+юуъ4
+юую4
+юуя4
+юъа4
+юъе4
+юъи4
+юъо4
+юъу4
+юъъ4
+юъю4
+юъя4
+ююа4
+ююе4
+ююи4
+ююо4
+ююу4
+ююъ4
+ююю4
+ююя4
+юяа4
+юяе4
+юяи4
+юяо4
+юяу4
+юяъ4
+юяю4
+юяя4
+яаа4
+яае4
+яаи4
+яао4
+яау4
+яаъ4
+яаю4
+яая4
+яеа4
+яее4
+яеи4
+яео4
+яеу4
+яеъ4
+яею4
+яея4
+яиа4
+яие4
+яии4
+яио4
+яиу4
+яиъ4
+яию4
+яия4
+яоа4
+яое4
+яои4
+яоо4
+яоу4
+яоъ4
+яою4
+яоя4
+яуа4
+яуе4
+яуи4
+яуо4
+яуу4
+яуъ4
+яую4
+яуя4
+яъа4
+яъе4
+яъи4
+яъо4
+яъу4
+яъъ4
+яъю4
+яъя4
+яюа4
+яюе4
+яюи4
+яюо4
+яюу4
+яюъ4
+яюю4
+яюя4
+яяа4
+яяе4
+яяи4
+яяо4
+яяу4
+яяъ4
+яяю4
+яяя4
+й4бб
+й4бв
+й4бг
+й4бд
+й4бж
+й4бз
+й4бй
+й4бк
+й4бл
+й4бм
+й4бн
+й4бп
+й4бр
+й4бс
+й4бт
+й4бф
+й4бх
+й4бц
+й4бч
+й4бш
+й4бщ
+й4вб
+й4вв
+й4вг
+й4вд
+й4вж
+й4вз
+й4вй
+й4вк
+й4вл
+й4вм
+й4вн
+й4вп
+й4вр
+й4вс
+й4вт
+й4вф
+й4вх
+й4вц
+й4вч
+й4вш
+й4вщ
+й4гб
+й4гв
+й4гг
+й4гд
+й4гж
+й4гз
+й4гй
+й4гк
+й4гл
+й4гм
+й4гн
+й4гп
+й4гр
+й4гс
+й4гт
+й4гф
+й4гх
+й4гц
+й4гч
+й4гш
+й4гщ
+й4дб
+й4дв
+й4дг
+й4дд
+й4дж
+й4дз
+й4дй
+й4дк
+й4дл
+й4дм
+й4дн
+й4дп
+й4др
+й4дс
+й4дт
+й4дф
+й4дх
+й4дц
+й4дч
+й4дш
+й4дщ
+й4жб
+й4жв
+й4жг
+й4жд
+й4жж
+й4жз
+й4жй
+й4жк
+й4жл
+й4жм
+й4жн
+й4жп
+й4жр
+й4жс
+й4жт
+й4жф
+й4жх
+й4жц
+й4жч
+й4жш
+й4жщ
+й4зб
+й4зв
+й4зг
+й4зд
+й4зж
+й4зз
+й4зй
+й4зк
+й4зл
+й4зм
+й4зн
+й4зп
+й4зр
+й4зс
+й4зт
+й4зф
+й4зх
+й4зц
+й4зч
+й4зш
+й4зщ
+й4йб
+й4йв
+й4йг
+й4йд
+й4йж
+й4йз
+й4йй
+й4йк
+й4йл
+й4йм
+й4йн
+й4йп
+й4йр
+й4йс
+й4йт
+й4йф
+й4йх
+й4йц
+й4йч
+й4йш
+й4йщ
+й4кб
+й4кв
+й4кг
+й4кд
+й4кж
+й4кз
+й4кй
+й4кк
+й4кл
+й4км
+й4кн
+й4кп
+й4кр
+й4кс
+й4кт
+й4кф
+й4кх
+й4кц
+й4кч
+й4кш
+й4кщ
+й4лб
+й4лв
+й4лг
+й4лд
+й4лж
+й4лз
+й4лй
+й4лк
+й4лл
+й4лм
+й4лн
+й4лп
+й4лр
+й4лс
+й4лт
+й4лф
+й4лх
+й4лц
+й4лч
+й4лш
+й4лщ
+й4мб
+й4мв
+й4мг
+й4мд
+й4мж
+й4мз
+й4мй
+й4мк
+й4мл
+й4мм
+й4мн
+й4мп
+й4мр
+й4мс
+й4мт
+й4мф
+й4мх
+й4мц
+й4мч
+й4мш
+й4мщ
+й4нб
+й4нв
+й4нг
+й4нд
+й4нж
+й4нз
+й4нй
+й4нк
+й4нл
+й4нм
+й4нн
+й4нп
+й4нр
+й4нс
+й4нт
+й4нф
+й4нх
+й4нц
+й4нч
+й4нш
+й4нщ
+й4пб
+й4пв
+й4пг
+й4пд
+й4пж
+й4пз
+й4пй
+й4пк
+й4пл
+й4пм
+й4пн
+й4пп
+й4пр
+й4пс
+й4пт
+й4пф
+й4пх
+й4пц
+й4пч
+й4пш
+й4пщ
+й4рб
+й4рв
+й4рг
+й4рд
+й4рж
+й4рз
+й4рй
+й4рк
+й4рл
+й4рм
+й4рн
+й4рп
+й4рр
+й4рс
+й4рт
+й4рф
+й4рх
+й4рц
+й4рч
+й4рш
+й4рщ
+й4сб
+й4св
+й4сг
+й4сд
+й4сж
+й4сз
+й4сй
+й4ск
+й4сл
+й4см
+й4сн
+й4сп
+й4ср
+й4сс
+й4ст
+й4сф
+й4сх
+й4сц
+й4сч
+й4сш
+й4сщ
+й4тб
+й4тв
+й4тг
+й4тд
+й4тж
+й4тз
+й4тй
+й4тк
+й4тл
+й4тм
+й4тн
+й4тп
+й4тр
+й4тс
+й4тт
+й4тф
+й4тх
+й4тц
+й4тч
+й4тш
+й4тщ
+й4фб
+й4фв
+й4фг
+й4фд
+й4фж
+й4фз
+й4фй
+й4фк
+й4фл
+й4фм
+й4фн
+й4фп
+й4фр
+й4фс
+й4фт
+й4фф
+й4фх
+й4фц
+й4фч
+й4фш
+й4фщ
+й4хб
+й4хв
+й4хг
+й4хд
+й4хж
+й4хз
+й4хй
+й4хк
+й4хл
+й4хм
+й4хн
+й4хп
+й4хр
+й4хс
+й4хт
+й4хф
+й4хх
+й4хц
+й4хч
+й4хш
+й4хщ
+й4цб
+й4цв
+й4цг
+й4цд
+й4цж
+й4цз
+й4цй
+й4цк
+й4цл
+й4цм
+й4цн
+й4цп
+й4цр
+й4цс
+й4цт
+й4цф
+й4цх
+й4цц
+й4цч
+й4цш
+й4цщ
+й4чб
+й4чв
+й4чг
+й4чд
+й4чж
+й4чз
+й4чй
+й4чк
+й4чл
+й4чм
+й4чн
+й4чп
+й4чр
+й4чс
+й4чт
+й4чф
+й4чх
+й4чц
+й4чч
+й4чш
+й4чщ
+й4шб
+й4шв
+й4шг
+й4шд
+й4шж
+й4шз
+й4шй
+й4шк
+й4шл
+й4шм
+й4шн
+й4шп
+й4шр
+й4шс
+й4шт
+й4шф
+й4шх
+й4шц
+й4шч
+й4шш
+й4шщ
+й4щб
+й4щв
+й4щг
+й4щд
+й4щж
+й4щз
+й4щй
+й4щк
+й4щл
+й4щм
+й4щн
+й4щп
+й4щр
+й4щс
+й4щт
+й4щф
+й4щх
+й4щц
+й4щч
+й4щш
+й4щщ
+б4ь
+в4ь
+г4ь
+д4ь
+ж4ь
+з4ь
+й4ь
+к4ь
+л4ь
+м4ь
+н4ь
+п4ь
+р4ь
+с4ь
+т4ь
+ф4ь
+х4ь
+ц4ь
+ч4ь
+ш4ь
+щ4ь
+ь4ь
+.дз4в
+.дж4р
+.дж4л
+.вг4л
+.вд4л
+.вг4р
+.вг4н
+.вп4л
+.вк4л
+.вк4р
+.вт4р
+.сг4л
+.зд4р
+.сг4р
+.сб4р
+.сд4р
+.жд4р
+.ск4л
+.сп4л
+.сп4р
+.ст4р
+.ск4р
+.шп4р
+.ск4в
+.вз4р
+.вс4л
+.вс4м
+.вс4р
+.св4р
+.сх4л
+.сх4р
+.хв4р
+.вс4т
+.сх4в
+.см4р
+н4кт.
+н4кс.
+к4ст.} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-bg.rme b/Master/texmf-dist/tex/context/patterns/lang-bg.rme
new file mode 100644
index 00000000000..890f04fba12
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/lang-bg.rme
@@ -0,0 +1,43 @@
+% generated by mtxrun --script pattern --convert
+
+% Bulgarian hyphenation patterns, version 1.7, July 2008
+% Copyright 1994-2008 Georgi Boshnakov
+% Georgi dot Boshnakov at manchester dot ac dot uk
+%
+% This file can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt; either
+% version 1 of the License, or any later version.
+%
+%
+% First version: 1994
+% Modified: June 2000 (minor changes)
+% Modified: May 2006 (added copyright notice)
+% Modified: June 2008 (changed encoding to utf-8)
+%
+% Please send wrongly hyphenated words and suggestions for
+% corrections to the address given towards the beginning of this
+% file.
+%
+%
+% Note: The original name of this file was 'bghyphsi.tex' which is
+% part of the package 'bghyphen'. The package 'bghyphen' is now
+% obsolete but it is still available on CTAN and currently (June 2008)
+% gives the same hyphenation results.
+%
+%
+%
+% To make TeX use these patterns:
+%
+% (1) Make sure that the hyph-utf8 package is present in your TeX
+% system.
+%
+% (2) generate the necessary formats (TeX, LaTeX, pdfLaTeX, etc),
+% instructing TeX to load 'loadhyph-bg.tex' for Bulgarian
+% hyphenation.
+%
+% The LaTeX babel package sets \lefthyphenmin and \righthyphenmin to 2
+% when the language is switched to Bulgarian. Developers who write
+% support for Bulgarian outside LaTeX and/or babel need to take care
+% of this.
+% \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-ca.hyp b/Master/texmf-dist/tex/context/patterns/lang-ca.hyp
index 269c4245055..3446df9f5c3 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-ca.hyp
+++ b/Master/texmf-dist/tex/context/patterns/lang-ca.hyp
@@ -1,34 +1,10 @@
-% context hyphenation file, see lang-all.xml for original comment
+% generated by mtxrun --script pattern --convert
-% source of data: cahyph.tex
+% for comment and copyright, see ./lang-ca.rme
-% begin description data
+% used: a b c d e g h i j k l n o p r s t u v w x y
-% <!-- copied from lang-all.xml
-%
-% <?xml version='1.0' standalone='yes'?>
-%
-% <description language='ca'>
-% <sourcefile>cahyph.tex</sourcefile>
-% <title>TeX hyphenation patterns for the Catalan language</title>
-% <remarks>Version 1.11</remarks>
-% <copyright>
-% <year>1991-1995 </year>
-% <owner>Gon\c{c}al Badenes,Francina Turon</owner>
-% </copyright>
-% <copyright>
-% <year>1991-2003</year>
-% <owner>Gon\c{c}al Badenes</owner>
-% </copyright>
-% </description>
-%
-% end of copy -->
-
-% end description data
-
-% begin hyphenation data
-
-\hyphenation {
+\hyphenation{
cu-rie
cu-ries
gei-sha
@@ -54,8 +30,4 @@ ro-yal-ties
ro-yal-ty
vos-al-tres
whis-ky
-whis-kies
-}
-
-% end hyphenation data
-
+whis-kies} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-ca.pat b/Master/texmf-dist/tex/context/patterns/lang-ca.pat
index 4461e94f8ce..f27dc24ab01 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-ca.pat
+++ b/Master/texmf-dist/tex/context/patterns/lang-ca.pat
@@ -1,34 +1,10 @@
-% context pattern file, see lang-all.xml for original comment
+% generated by mtxrun --script pattern --convert
-% source of data: cahyph.tex
+% for comment and copyright, see ./lang-ca.rme
-% begin description data
+% used: a b c d e f g h i j l m n o p q r s t u v x y z à ç è é í ï ò ó ú ü
-% <!-- copied from lang-all.xml
-%
-% <?xml version='1.0' standalone='yes'?>
-%
-% <description language='ca'>
-% <sourcefile>cahyph.tex</sourcefile>
-% <title>TeX hyphenation patterns for the Catalan language</title>
-% <remarks>Version 1.11</remarks>
-% <copyright>
-% <year>1991-1995 </year>
-% <owner>Gon\c{c}al Badenes,Francina Turon</owner>
-% </copyright>
-% <copyright>
-% <year>1991-2003</year>
-% <owner>Gon\c{c}al Badenes</owner>
-% </copyright>
-% </description>
-%
-% end of copy -->
-
-% end description data
-
-% begin pattern data
-
-\patterns {
+\patterns{
1ba
1be
1bi
@@ -897,8 +873,4 @@ s3emp
s3esp
sub3a
ui3et
-o3gnò
-}
-
-% end pattern data
-
+o3gnò} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-ca.rme b/Master/texmf-dist/tex/context/patterns/lang-ca.rme
new file mode 100644
index 00000000000..e64e6b0df09
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/lang-ca.rme
@@ -0,0 +1,125 @@
+% generated by mtxrun --script pattern --convert
+
+% This file is part of hyph-utf8 package and resulted from
+% semi-manual conversions of hyphenation patterns into UTF-8 in June 2008.
+%
+% Source: cahyph.tex (2003-09-08)
+% Author: Gonçal Badenes <g.badenes at ieee.org>
+%
+% The above mentioned file should become obsolete,
+% and the author of the original file should preferaby modify this file instead.
+%
+% Modificatios were needed in order to support native UTF-8 engines,
+% but functionality (hopefully) didn't change in any way, at least not intentionally.
+% This file is no longer stand-alone; at least for 8-bit engines
+% you probably want to use loadhyph-foo.tex (which will load this file) instead.
+%
+% Modifications were done by Jonathan Kew, Mojca Miklavec & Arthur Reutenauer
+% with help & support from:
+% - Karl Berry, who gave us free hands and all resources
+% - Taco Hoekwater, with useful macros
+% - Hans Hagen, who did the unicodifisation of patterns already long before
+% and helped with testing, suggestions and bug reports
+% - Norbert Preining, who tested & integrated patterns into TeX Live
+%
+% However, the "copyright/copyleft" owner of patterns remains the original author.
+%
+% The copyright statement of this file is thus:
+%
+% Do with this file whatever needs to be done in future for the sake of
+% "a better world" as long as you respect the copyright of original file.
+% If you're the original author of patterns or taking over a new revolution,
+% plese remove all of the TUG comments & credits that we added here -
+% you are the Queen / the King, we are only the servants.
+%
+% If you want to change this file, rather than uploading directly to CTAN,
+% we would be grateful if you could send it to us (http://tug.org/tex-hyphen)
+% or ask for credentials for SVN repository and commit it yourself;
+% we will then upload the whole "package" to CTAN.
+%
+% Before a new "pattern-revolution" starts,
+% please try to follow some guidelines if possible:
+%
+% - \lccode is *forbidden*, and I really mean it
+% - all the patterns should be in UTF-8
+% - the only "allowed" TeX commands in this file are: \patterns, \hyphenation,
+% and if you really cannot do without, also \message
+% - in particular, please no \catcode or \lccode changes,
+% they belong to loadhyph-foo.tex,
+% and no \lefthyphenmin and \righthyphenmin,
+% they have no influence here and belong elsewhere
+% - \begingroup and/or \endinput is not needed
+% - feel free to do whatever you want inside comments
+%
+% We know that TeX is extremely powerful, but give a stupid parser
+% at least a chance to read your patterns.
+%
+% For more unformation see
+%
+% http://tug.org/tex-hyphen
+%
+%------------------------------------------------------------------------------
+%
+% Hyphenation patterns for Catalan.
+% This is version 1.11
+% Compiled by Gonçal Badenes and Francina Turon,
+% December 1991-January 1995.
+%
+% Copyright (C) 1991-2003 Gonçal Badenes
+%
+% -----------------------------------------------------------------
+% IMPORTANT NOTICE:
+%
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt; either
+% version 1 of the License, or any later version.
+% -----------------------------------------------------------------
+%
+%%% ====================================================================
+%%% @TeX-hyphen-file{
+%%% author = "Gonçal Badenes",
+%%% version = "1.11",
+%%% date = "15 July 2003",
+%%% time = "15:08:12 CET",
+%%% filename = "cahyph.tex",
+%%% email = "g.badenes@ieee.org",
+%%% codetable = "UTF-8",
+%%% keywords = "TeX, hyphen, catalan",
+%%% supported = "yes",
+%%% abstract = "Catalan hyphenation patterns",
+%%% docstring = "This file contains the hyphenation patterns
+%%% for the catalan language",
+%%% }
+%%% ====================================================================
+%
+% NOTICE: Version 1.11 is identical to version 1.10 (issued on January 17,
+% 1995) except for the updated copyright notice above.
+%
+% The macros used were created for ghyph31.tex by Bernd Raichle (see the
+% German hyphenation pattern files for further details)
+%
+% This patterns have been created using standard, conservative
+% hyphenation rules for catalan. The results have refined running them
+% through patgen. In that way, the number of hits has been increased.
+%
+% These rules produce no wrong patterns (Results checked against the
+% ``Diccionari Ortogr\`afic i de Pron\'uncia'', Enciclop\`edia
+% Catalana. The percentage of valid hyphen misses is lower than 1%
+%
+% Some of the patterns below represent combinations that never
+% happen in Catalan. We have tried to keep them to a minimum.
+%
+% *** IMPORTANT ***
+% \lefthyphenmin and \righthyphenmin should be set to 2 and 2
+% respectively. If you set them below these values incorrect breaks
+% will happen (specially at the beginning of foreign words and words
+% which begin with some prefixes).
+% *** IMPORTANT ***
+%
+% Please report any problem you might have to the authors!!!
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \message{Catalan Hyphenation Patterns `cahyphen' Version 1.11 <2003/07/15>}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-cs.hyp b/Master/texmf-dist/tex/context/patterns/lang-cs.hyp
new file mode 100644
index 00000000000..b4bbe1ecb06
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/lang-cs.hyp
@@ -0,0 +1,12 @@
+% generated by mtxrun --script pattern --convert
+
+% for comment and copyright, see ./lang-cs.rme
+
+% used: a c e f h i j k l n o p r t y í ú č ř
+
+\hyphenation{
+koe-fi-ci-ent
+koe-fi-ci-en-ty
+pro-jek-ční
+úhlo-příč-ka
+úhlo-příč-ky} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-cz.pat b/Master/texmf-dist/tex/context/patterns/lang-cs.pat
index 244d070f194..4e7fc9ef766 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-cz.pat
+++ b/Master/texmf-dist/tex/context/patterns/lang-cs.pat
@@ -1,47 +1,10 @@
-% context pattern file, see lang-all.xml for original comment
+% generated by mtxrun --script pattern --convert
-% source of data: czhyphen.tex czhyphen.ex
+% for comment and copyright, see ./lang-cs.rme
-% begin description data
+% used: a b c d e f g h i j k l m n o p q r s t u v w x y z á é í ó ú ý č ď ě ň ř š ť ů ž
-% <!-- copied from lang-all.xml
-%
-% <?xml version='1.0' standalone='yes'?>
-%
-% <description language='cz'>
-% <sourcefile>czhyphen.tex</sourcefile>
-% <title>TeX hyphenation patterns for the Czech language</title>
-% <copyright>
-% <year>1991</year>
-% <owner>Karel Horak</owner>
-% <comment>List of exceptions</comment>
-% </copyright>
-% <copyright>
-% <year>1995</year>
-% <owner>Pavel Sevecek (\v{S}eve\v{c}ek) (pavel@lingea.cz)</owner>
-% <comment>Macros, adaption for TeX 2</comment>
-% </copyright>
-% <!-- samples>
-% <sample>au-to-ma-tic-k</sample>
-% <sample>bram-bo-rk</sample>
-% <sample>da-ta-b-ze</sample>
-% <sample>kr-ka-vec</sample>
-% <sample>Kro-me-r</sample>
-% <sample>ob-hos-po-da-ro-vat</sample>
-% <sample>rem-dich</sample>
-% <sample>scvrk-nout</sample>
-% <sample>za-les-nit</sample>
-% <sample>e-u-lic-ka</sample>
-% </samples -->
-% </description>
-%
-% end of copy -->
-
-% end description data
-
-% begin pattern data
-
-\patterns {
+\patterns{
.a2
.a4da
.a4de
@@ -3677,8 +3640,4 @@ zů3s
2žň
2žš
žš4ti
-žš4tě
-}
-
-% end pattern data
-
+žš4tě} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-cs.rme b/Master/texmf-dist/tex/context/patterns/lang-cs.rme
new file mode 100644
index 00000000000..672dac5a990
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/lang-cs.rme
@@ -0,0 +1,85 @@
+% generated by mtxrun --script pattern --convert
+
+% This file is part of hyph-utf8 package and resulted from
+% semi-manual conversions of hyphenation patterns into UTF-8 in June 2008.
+%
+% Source: czhyphen.tex (), czhyphen.ex ()
+% Author: Pavel Ševeček <pavel at lingea.cz>
+%
+% The above mentioned file should become obsolete,
+% and the author of the original file should preferaby modify this file instead.
+%
+% Modificatios were needed in order to support native UTF-8 engines,
+% but functionality (hopefully) didn't change in any way, at least not intentionally.
+% This file is no longer stand-alone; at least for 8-bit engines
+% you probably want to use loadhyph-foo.tex (which will load this file) instead.
+%
+% Modifications were done by Jonathan Kew, Mojca Miklavec & Arthur Reutenauer
+% with help & support from:
+% - Karl Berry, who gave us free hands and all resources
+% - Taco Hoekwater, with useful macros
+% - Hans Hagen, who did the unicodifisation of patterns already long before
+% and helped with testing, suggestions and bug reports
+% - Norbert Preining, who tested & integrated patterns into TeX Live
+%
+% However, the "copyright/copyleft" owner of patterns remains the original author.
+%
+% The copyright statement of this file is thus:
+%
+% Do with this file whatever needs to be done in future for the sake of
+% "a better world" as long as you respect the copyright of original file.
+% If you're the original author of patterns or taking over a new revolution,
+% plese remove all of the TUG comments & credits that we added here -
+% you are the Queen / the King, we are only the servants.
+%
+% If you want to change this file, rather than uploading directly to CTAN,
+% we would be grateful if you could send it to us (http://tug.org/tex-hyphen)
+% or ask for credentials for SVN repository and commit it yourself;
+% we will then upload the whole "package" to CTAN.
+%
+% Before a new "pattern-revolution" starts,
+% please try to follow some guidelines if possible:
+%
+% - \lccode is *forbidden*, and I really mean it
+% - all the patterns should be in UTF-8
+% - the only "allowed" TeX commands in this file are: \patterns, \hyphenation,
+% and if you really cannot do without, also \input and \message
+% - in particular, please no \catcode or \lccode changes,
+% they belong to loadhyph-foo.tex,
+% and no \lefthyphenmin and \righthyphenmin,
+% they have no influence here and belong elsewhere
+% - \begingroup and/or \endinput is not needed
+% - feel free to do whatever you want inside comments
+%
+% We know that TeX is extremely powerful, but give a stupid parser
+% at least a chance to read your patterns.
+%
+% For more unformation see
+%
+% http://tug.org/tex-hyphen
+%
+%------------------------------------------------------------------------------
+%
+%%% ====================================================================
+% This is CZHYPHEN.TEX, containing czech hyphenation patterns.
+% Prepared by:
+% Pavel Ševeček
+% Lingea s.r.o., Brno, Czech Republic
+% E-mail: pavel@lingea.cz
+%
+% This is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2 of the License, or
+% (at your option) any later version.
+%
+% This file is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with this program; if not, write to the Free Software
+% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+%%% --------------------------------------------------------------------
+% \message {Czech Hyphenation Patterns (Pavel Sevecek, v3, 1995)}
+%\lefthyphenmin=2\righthyphenmin=2 \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-cz.hyp b/Master/texmf-dist/tex/context/patterns/lang-cz.hyp
deleted file mode 100644
index 2c199443973..00000000000
--- a/Master/texmf-dist/tex/context/patterns/lang-cz.hyp
+++ /dev/null
@@ -1,53 +0,0 @@
-% context hyphenation file, see lang-all.xml for original comment
-
-% source of data: czhyphen.tex czhyphen.ex
-
-% begin description data
-
-% <!-- copied from lang-all.xml
-%
-% <?xml version='1.0' standalone='yes'?>
-%
-% <description language='cz'>
-% <sourcefile>czhyphen.tex</sourcefile>
-% <title>TeX hyphenation patterns for the Czech language</title>
-% <copyright>
-% <year>1991</year>
-% <owner>Karel Horak</owner>
-% <comment>List of exceptions</comment>
-% </copyright>
-% <copyright>
-% <year>1995</year>
-% <owner>Pavel Sevecek (\v{S}eve\v{c}ek) (pavel@lingea.cz)</owner>
-% <comment>Macros, adaption for TeX 2</comment>
-% </copyright>
-% <!-- samples>
-% <sample>au-to-ma-tic-k</sample>
-% <sample>bram-bo-rk</sample>
-% <sample>da-ta-b-ze</sample>
-% <sample>kr-ka-vec</sample>
-% <sample>Kro-me-r</sample>
-% <sample>ob-hos-po-da-ro-vat</sample>
-% <sample>rem-dich</sample>
-% <sample>scvrk-nout</sample>
-% <sample>za-les-nit</sample>
-% <sample>e-u-lic-ka</sample>
-% </samples -->
-% </description>
-%
-% end of copy -->
-
-% end description data
-
-% begin hyphenation data
-
-\hyphenation {
-koe-fi-ci-ent
-koe-fi-ci-en-ty
-pro-jek-ční
-úhlo-příč-ka
-úhlo-příč-ky
-}
-
-% end hyphenation data
-
diff --git a/Master/texmf-dist/tex/context/patterns/lang-da.hyp b/Master/texmf-dist/tex/context/patterns/lang-da.hyp
index 858442ca532..d6cefa307e9 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-da.hyp
+++ b/Master/texmf-dist/tex/context/patterns/lang-da.hyp
@@ -1,26 +1,8 @@
-% context hyphenation file, see lang-all.xml for original comment
+% generated by mtxrun --script pattern --convert
-% source of data: dkspecial.tex dkcommon.tex
+% for comment and copyright, see ./lang-da.rme
-% begin description data
-
-% <!-- copied from lang-all.xml
-%
-% <?xml version='1.0' standalone='yes'?>
-%
-% <description language='da'>
-% <sourcefile>dkspecial.tex dkcommon.tex</sourcefile>
-% <title>TeX hyphenation patterns for the Danish language</title>
-% <copyright/>
-% </description>
-%
-% end of copy -->
-
-% end description data
-
-% begin hyphenation data
-
-\hyphenation {}
-
-% end hyphenation data
+% used:
+\hyphenation{
+} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-da.pat b/Master/texmf-dist/tex/context/patterns/lang-da.pat
index c8c25bba158..73f938599c7 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-da.pat
+++ b/Master/texmf-dist/tex/context/patterns/lang-da.pat
@@ -1,26 +1,10 @@
-% context pattern file, see lang-all.xml for original comment
+% generated by mtxrun --script pattern --convert
-% source of data: dkspecial.tex dkcommon.tex
+% for comment and copyright, see ./lang-da.rme
-% begin description data
+% used: a b c d e f g h i j k l m n o p q r s t u v w x y z å æ ø
-% <!-- copied from lang-all.xml
-%
-% <?xml version='1.0' standalone='yes'?>
-%
-% <description language='da'>
-% <sourcefile>dkspecial.tex dkcommon.tex</sourcefile>
-% <title>TeX hyphenation patterns for the Danish language</title>
-% <copyright/>
-% </description>
-%
-% end of copy -->
-
-% end description data
-
-% begin pattern data
-
-\patterns {
+\patterns{
.ae3
.an3k
.an1s
@@ -1042,7 +1026,126 @@ y3ti
y5t3r
y5ve
zi5o
-}
-
-% end pattern data
-
+.så3
+.ær5i
+.øv3r
+a3tø
+a5væ
+brød3
+5bæ
+5drøv
+dstå4
+3dæ
+3dø
+e3læ
+e3lø
+e3rø
+er5øn
+e5tæ
+e5tø
+e1væ
+e3æ
+e5å
+3fæ
+3fø
+fø4r5en
+giø4
+g4sø
+g5så
+3gæ
+3gø1
+3gå
+i5tæ
+i3ø
+3kø
+3kå
+lingeniø4
+l3væ
+5løs
+m5tå
+1mæ
+3mø
+3må
+n3kæ
+n5tæ
+3næ
+4n5æb
+5nø
+o5læ
+or3ø
+o5å
+5præ
+5pæd
+på3
+r5kæ
+r5tæ
+r5tø
+r3væ
+r5æl
+4røn
+5rør
+3råd
+r5år
+s4kå
+3slå
+s4næ
+5stø
+1stå
+1sæ
+4s5æn
+1sø
+s5øk
+så4r5
+ti4ø
+3træk.
+t4sø
+t5så
+t3væ
+u3læ
+3værd
+1værk
+5vå
+y5væ
+æb3l
+æ3c
+æ3e
+æg5a
+æ4gek
+æ4g5r
+ægs5
+æ5i
+æ5kv
+ælle4
+æn1dr
+æ5o
+æ1re
+ær4g5r
+æ3ri
+ær4ma
+ær4mo
+ær5s
+æ5si
+æ3so
+æ3ste
+æ3ve
+øde5
+ø3e
+ø1je
+ø3ke
+ø3le
+øms5
+øn3st
+øn4t3
+ø1re
+ø3ri
+ørne3
+ør5o
+ø1ve
+å1d
+å1e
+å5h
+å3l
+å3re
+års5t
+å5sk
+å3t} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-da.rme b/Master/texmf-dist/tex/context/patterns/lang-da.rme
new file mode 100644
index 00000000000..2b9c01b54ae
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/lang-da.rme
@@ -0,0 +1,74 @@
+% generated by mtxrun --script pattern --convert
+
+% This file is part of hyph-utf8 package and resulted from
+% semi-manual conversions of hyphenation patterns into UTF-8 in June 2008.
+%
+% Source: dkcommon.tex (yyyy-mm-dd), dkspecial.tex (yyyy-mm-dd)
+% Author: Frank Jensen <frank.jensen at hugin.com>
+%
+% The above mentioned file should become obsolete,
+% and the author of the original file should preferaby modify this file instead.
+%
+% Modificatios were needed in order to support native UTF-8 engines,
+% but functionality (hopefully) didn't change in any way, at least not intentionally.
+% This file is no longer stand-alone; at least for 8-bit engines
+% you probably want to use loadhyph-foo.tex (which will load this file) instead.
+%
+% Modifications were done by Jonathan Kew, Mojca Miklavec & Arthur Reutenauer
+% with help & support from:
+% - Karl Berry, who gave us free hands and all resources
+% - Taco Hoekwater, with useful macros
+% - Hans Hagen, who did the unicodifisation of patterns already long before
+% and helped with testing, suggestions and bug reports
+% - Norbert Preining, who tested & integrated patterns into TeX Live
+%
+% However, the "copyright/copyleft" owner of patterns remains the original author.
+%
+% The copyright statement of this file is thus:
+%
+% Do with this file whatever needs to be done in future for the sake of
+% "a better world" as long as you respect the copyright of original file.
+% If you're the original author of patterns or taking over a new revolution,
+% plese remove all of the TUG comments & credits that we added here -
+% you are the Queen / the King, we are only the servants.
+%
+% If you want to change this file, rather than uploading directly to CTAN,
+% we would be grateful if you could send it to us (http://tug.org/tex-hyphen)
+% or ask for credentials for SVN repository and commit it yourself;
+% we will then upload the whole "package" to CTAN.
+%
+% Before a new "pattern-revolution" starts,
+% please try to follow some guidelines if possible:
+%
+% - \lccode is *forbidden*, and I really mean it
+% - all the patterns should be in UTF-8
+% - the only "allowed" TeX commands in this file are: \patterns, \hyphenation,
+% and if you really cannot do without, also \input and \message
+% - in particular, please no \catcode or \lccode changes,
+% they belong to loadhyph-foo.tex,
+% and no \lefthyphenmin and \righthyphenmin,
+% they have no influence here and belong elsewhere
+% - \begingroup and/or \endinput is not needed
+% - feel free to do whatever you want inside comments
+%
+% We know that TeX is extremely powerful, but give a stupid parser
+% at least a chance to read your patterns.
+%
+% For more unformation see
+%
+% http://tug.org/tex-hyphen
+%
+%------------------------------------------------------------------------------
+%
+% This file contains the hyphenation patterns for Danish.
+%
+%% Copyright 1994 Frank Jensen (Frank.Jensen@hugin.com)
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2003/12/01 or later.
+% \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-de.hyp b/Master/texmf-dist/tex/context/patterns/lang-de.hyp
index 7ec51a0d5d2..15485d1e1ae 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-de.hyp
+++ b/Master/texmf-dist/tex/context/patterns/lang-de.hyp
@@ -1,40 +1,8 @@
-% context hyphenation file, see lang-all.xml for original comment
+% generated by mtxrun --script pattern --convert
-% source of data: dehyphn.tex
+% for comment and copyright, see ./lang-de.rme
-% begin description data
-
-% <!-- copied from lang-all.xml
-%
-% <?xml version='1.0' standalone='yes'?>
-%
-% <description language='de'>
-% <sourcefile>dehyphn.tex</sourcefile>
-% <title>TeX hyphenation patterns for the German language (new orthography)</title>
-% <copyright>
-% <year>1988, 1991</year>
-% <owner>Rechenzentrum der Ruhr-Universitaet Bochum</owner>
-% <comment>German hyphen patterns</comment>
-% </copyright>
-% <copyright>
-% <year>1993, 1994, 1999</year>
-% <owner>Bernd Raichle/DANTE e.V.</owner>
-% <comment>Macros, adaption for TeX 2</comment>
-% </copyright>
-% <copyright>
-% <year>1998-2001</year>
-% <owner>Walter Schmidt</owner>
-% <comment>Adaption to new German orthography</comment>
-% </copyright>
-% </description>
-%
-% end of copy -->
-
-% end description data
-
-% begin hyphenation data
-
-\hyphenation {}
-
-% end hyphenation data
+% used:
+\hyphenation{
+}
diff --git a/Master/texmf-dist/tex/context/patterns/lang-de.pat b/Master/texmf-dist/tex/context/patterns/lang-de.pat
index 0a31dac79b2..836fa7080bd 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-de.pat
+++ b/Master/texmf-dist/tex/context/patterns/lang-de.pat
@@ -1,5842 +1,14520 @@
-% context pattern file, see lang-all.xml for original comment
+% generated by mtxrun --script pattern --convert
-% source of data: dehyphn.tex
+% for comment and copyright, see ./lang-de.rme
-% begin description data
+% used: a b c d e f g h i j k l m n o p q r s t u v w x y z ß à á â ä ç è é ê ë í ñ ó ô ö ü
-% <!-- copied from lang-all.xml
-%
-% <?xml version='1.0' standalone='yes'?>
-%
-% <description language='de'>
-% <sourcefile>dehyphn.tex</sourcefile>
-% <title>TeX hyphenation patterns for the German language (new orthography)</title>
-% <copyright>
-% <year>1988, 1991</year>
-% <owner>Rechenzentrum der Ruhr-Universitaet Bochum</owner>
-% <comment>German hyphen patterns</comment>
-% </copyright>
-% <copyright>
-% <year>1993, 1994, 1999</year>
-% <owner>Bernd Raichle/DANTE e.V.</owner>
-% <comment>Macros, adaption for TeX 2</comment>
-% </copyright>
-% <copyright>
-% <year>1998-2001</year>
-% <owner>Walter Schmidt</owner>
-% <comment>Adaption to new German orthography</comment>
-% </copyright>
-% </description>
-%
-% end of copy -->
-
-% end description data
-
-% begin pattern data
-
-\patterns {
-.aa6l
-.ab3a4s
-.ab3ei
-.abi2
-.ab3it
-.ab1l
-.ab1r
-.ab3u
-.ad3o4r
-.alti6
-.ana3c
-.an5alg
-.an1e
-.ang8s2t1
-.an1s
-.ap1p
-.ar6sc
-.ar6ta
-.ar6tei
-.as2z
-.au2f1
-.au2s3
-.be5erb
-.be3na
-.ber6t5r
-.bie6r5
-.bim6s5t
-.brot3
-.bru6s
-.ch6
-.che6f5
-.da8c
-.da2r
-.dar5in
-.dar5u
-.den6ka
-.de5r6en
-.des6pe
-.de8spo
-.de3sz
-.dia3s4
+\patterns{
+.a6
+.ab3b
+.aben2
+.ab5l
+.abo4
+.ab3ol
+.ab1or
+.ab5r
+.ab3s
+.ag4r
+.ag2u
+.aid2
+.ai2s
+.al3br
+.al2e
+.al3l4en
+.al3ph
+.al4tei
+.alt3s
+.amt4
+.amt6s3
+.an3alg
+.an3d
+.ang4
+.an1gl
+.angs4
+.angst3
+.an3k
+.an3s
+.an4si.
+.ans2p
+.an3z
+.ap3s2
+.ar3k2a
+.ar4m3ac
+.ar4s
+.ar4t3ei
+.as1t
+.as4ta
+.au3d
+.au2f5
+.au4s1
+.ausch3
+.aus5s
+.ä4
+.äm5
+.ät2s
+.b6
+.bau1s
+.be3erb
+.bei6ge.
+.be3ra
+.be3r2e
+.ber4g3a
+.ber4g3r
+.bi4os
+.boge2
+.bo4s3k
+.c4
+.ch2
+.con3
+.d4
+.dab6
+.da2r1
+.dar3in
+.dar2m
+.da4te.
+.da4tes
+.de4al
+.de1i
+.de3o2
+.de3r4en
+.de1s
+.de3sk
+.de3s2t
+.deut2
.dien4
-.dy2s1
-.ehren5
-.eine6
-.ei6n5eh
-.ei8nen
-.ein5sa
-.en6der
-.en6d5r
-.en3k4
-.en8ta8
-.en8tei
-.en4t3r
-.epo1
-.er6ban
-.er6b5ei
-.er6bla
-.er6d5um
-.er3ei
-.er5er
-.er3in
-.er3o4b
-.erwi5s
-.es1p
-.es8t1l
-.es8t1n
-.ex1a2
-.ex3em
-.fal6sc
-.fe6st5a
-.flu4g3
-.furch8
-.ga6ner
-.ge3n4a
-.ge5rö
-.ges6
-.halb5
-.halbe6
-.hal6br
+.do3b
+.do2mo
+.do1pe
+.dor2f1
+.dü1b
+.e4
+.ebe2
+.ehe3i
+.ei3e2
+.ei4ne
+.ei5nen.
+.ei5ner
+.ei5nes
+.ei4sp
+.ei4st
+.ei2tr
+.el2bi
+.elb3s
+.els7t
+.em3m2
+.en1
+.en4d3er
+.en4d3r
+.enn2
+.en4t3
+.er4dei
+.er4der
+.er1e
+.er1i
+.er8stein
+.es3k
+.es3p
+.es1ta
+.es5t4e
+.es1th
+.es3tr
+.et4s
+.eu3
+.eug4
+.ext4
+.f6
+.fi3est
+.fi4le.
+.fi4len
+.fin6s
+.fi2s
+.frau3
+.fs4
+.fu2sc
+.g4
+.ga4t
+.gd2
+.gel2d
+.ge5nar
+.ge3ne
+.ge3r2a
+.ge3r2e
+.ge3s4a
+.ge1u
+.gros4
+.gs2
+.gus4s3
+.gu4ter
+.h4
+.ha3bi
+.haft5s
+.hal5te
.haup4
-.hau4t
-.heima6
-.he4r3e
-.her6za
-.he5x
-.hin3
-.hir8sc
-.ho4c
-.hu3sa
-.hy5o
-.ibe5
-.ima6ge
-.in1
-.ini6
-.is5chi
-.jagd5
-.kal6k5o
-.ka6ph
+.hau4t1
+.he2
+.he3cke
+.he3ri
+.he6r5inn
+.he5xe
+.his1
+.ho4met
+.i6
+.ia4
+.im2a
+.in3
+.ink4
+.inu3
+.is2a
+.is3tr
+.jor5
+.k6
+.ka2b5l
+.ka2i
+.kamp2
+.ka6t3io
.ki4e
-.kop6f3
-.kraf6
-.kü5ra
-.lab6br
-.liie6
-.lo6s5k
-.lö4s3t
-.ma5d
-.mi2t1
-.no6th
-.no6top
-.obe8ri
-.ob1l
-.obs2
-.ob6st5e
-.or3c
-.ort6s5e
-.ost3a
-.oste8r
-.pe4re
-.pe3ts
-.ph6
-.po8str
-.rau4m3
-.re5an
-.ro8q
-.ru5the
-.rü5be
-.sch8
-.se6e
-.se5n6h
-.se5ra
+.klan4
+.ks2
+.kü1b
+.l4
+.la3b
+.le4a
+.le5ni
+.lib6
+.lo4g3in
+.lo3ver
+.m4
+.ma3d
+.ma3ge
+.ma3le
+.ma4st
+.me3l4a
+.me3ne
+.men8schw
+.ment2
+.mi2s
+.mi4t
+.n4
+.näs3c
+.ne6s
+.nich2
+.ni4e
+.nob4
+.no2th
+.nus4
+.o6
+.oa3
+.ob1a
+.obe2
+.oben3
+.ober3i
+.ob3l
+.oper4
+.or2a
+.ort2
+.ort6s
+.orts3e
+.oste2
+.os4tel
+.os8t7ende
+.oste6r5e
+.ost3r
+.ozo4
+.ö6
+.p6
+.pa6r1e
+.par3t4h
+.pat4s
+.pe5la
+.pf6
+.ph4
+.poka2
+.po4st
+.ps2
+.r6
+.reb3s2
+.re3cha
+.rein4t
+.reli1
+.reli3e
+.res4tr
+.rich5t6e
+.ro3be
+.ro2h
+.ro3m2a
+.rö4s
+.rös3c
+.rut2
+.ru3th
+.rü1b
+.rü6cker
+.s6
+.sali3e
+.sch4
+.sen5s
+.ser2u
+.se2t
+.sha2
.si2e
-.spi6ke
-.st4
-.sy2n
-.tages5
-.tan6kl
-.ta8th
-.te6e
-.te8str
-.to6der
-.to8nin
-.to6we
-.um1
-.umpf4
-.un1
-.une6
-.unge5n
-.ur1c
-.ur5en
-.ve6rin
-.vora8
-.wah6l5
-.we8ges
-.we8s2t
-.wes3te
-.wo6r
-.wor3a
-.wun4s
-.zi4e
-.zuch8
-.ände8re
-.öch8
+.sim3p4
+.si4te
+.ski1e
+.spra2
+.st6
+.sto4re
+.t6
+.ta5ge4s
+.ta3mi
+.tan6k5l
+.ta2to
+.te2e
+.tehe3
+.te3no
+.te4st
+.th4
+.ti4a
+.ti2s
+.ti3ta
+.to2n
+.to4ni
+.ton3s
+.to4pl
+.to4st
+.to2w
+.tri3es
+.ts2
+.tu3ra
+.tu3ri
+.u6
+.uf2e2
+.ul4mei
+.um3
+.umo2
+.un3a2
+.un3d
+.un3e
+.unen2
+.un3g
+.uni4t
+.un3s
+.un5s4t
+.ur1
+.urin4
+.ur5o2m
+.uro2p
+.ur3s2
+.ut2a
+.ut3r
+.ü2
+.v2
+.ve5n2e
+.ve4r
+.vol2
+.vo4r
+.w2
+.wah2
+.wah4l
+.wa3re
+.we2
+.weg3
+.welt3
+.wi4e
+.wor2
+.wor6t5en
+.wor4tu
+.wun4sc
+.x4
+.xe3
+.y4
+.ya4l
+.z2
+.zah2n
+.za4s
+.zi2e
+.zin6s5t
+.zuch2
+.zwe4
+6a.
+4aa
+a1ab
+aa2be
aa1c
aa2gr
-aal5e
-aa6r5a
-a5arti
-aa2s1t
-aat2s
-6aba
-ab3art
-1abdr
-6abel
-aben6dr
-ab5erk
-ab5err
-ab5esse
+aale5ne
+aa4lö
+a1a2n
+aa2r1a
+aa5re
+aar3f4
+aar3k4
+aart4
+aar3tr
+aas3t
+aat6s3
+a3au
+a1ä
+2aba
+ab2am
+ab1ar
+ab1auf
+ab1ä
+ab2äu
+1abd
+a1be
+ab1eb
+abe1e
+abei3
+ab1eil
+4a3bel
+abe2la
+abe4na
+2aber
+a3beri
+ab1erk
+ab1err
+ab1erz
+ab3esse
+4abet
+2abew
1abf
+3abfi
1abg
-1abhä
+1abh
+2abi
+ab1ins
ab1ir
-1abko
-a1bl
-ab1la
-5ablag
-a6blaß
-ab4ler
-ab1lu
-a8blä
-5a6blö
-abma5c
-1abn
-ab1ra
-ab1re
-5a6brec
-ab1ro
-ab1s
-ab8sk
-abs2z
-3abtei
-ab1ur
+ab1iso
+ab1it
+1abk
+ab3l
+1a2b5la
+3a2b5lä
+2able
+ab4le.
+ab5li
+a3blis
+3a2b5lö
+a2blu
+3abn
+2abo
+a2bo.
+ab4of
+3a2bon
+ab3r
+ab5rec
+1abs
+2abs.
+abs2a
+2absar
+ab3s2i
+ab3sp
+abst6
+2abst.
+ab5sta
+ab5ste
+ab3sz
+1abtei
+2a1bu
+ab3ur
+2abü
+ab3üb
1abw
-5abze
-5abzu
-ab1än
-abäu8
-a4ce.
-a5chal
-ach5art
-ach5au
+2aby
+1abz
+2ac.
+a2ce.
+a1cem
+ach1a
+ach3ak
+a1chal
+ach3au
a1che
-a8chent
-ach6er.
-a6ch5erf
+a2ch1e2c
+ach1ei
+a4cherf
+ach3erw
+a3ches
+4achf
a1chi
-ach1l
-ach3m
-ach5n
+a3chis
+ach5l
+ach5m
+ach3n
a1cho
-ach3re
+a3cho.
+ach1o4b
+ach1or
+ach1ö
+ach3r
+ach3spr
+ach3su
+ach6t5erg
+ach4th
+ach2t1o
a1chu
-ach1w
-a1chy
-ach5äf
-ack1o
-acks6t
-ack5sta
-a1d
-8ad.
-a6d5ac
-ad3ant
-ad8ar
-5addi
-a8dein
-ade5o8
-adi5en
-1adj
-1adle
-ad1op
-a2dre
-3adres
-adt1
-1adv
-a6dä
+ach1u2f
+ach3ü
+4achv
+2ach3w
+ac1in
+2ack.
+a1ckar
+ack2en
+a3cki
+a4ckin
+ack2se
+ack3sl
+ack5sta4
+acon4n
+2acu
+a1ç
+2a1d
+4ad.
+ada1b
+a4d1ac
+ad1ama
+a2d1an
+3a4d5ap
+a3dar3
+3a2dä
+ade4al
+adefi4
+ad1ein
+ade1ra
+4ades
+ade3s2p
+ades6s
+4adi
+adi3en
+ad2ob
+ado3c
+a2dr
+ad5rah
+4ad3rec
+ad4res
+ad5ru
+ad1s2
+ad3sä
+ad3sp
+ad3st
+ad3sz
+ad4t1
+adt3a
+2ae
+a1e2b
+a1e2c
a1e2d
+a1ei
+a1el.
+a2ele
+a2eli
+a1els
+a1em
+ae2o3
+a1e2p
ae1r
-a1er.
-1aero
-8afa
+3a2er2o
+a1e2s1
+aes3t
+a1e2x
+a2f1a
+a3fah
a3fal
-af1an
-a5far
-a5fat
-af1au
-a6fentl
-a2f1ex
-af1fr
-af5rau
-af1re
-1afri
-af6tent
-af6tra
-aft5re
-a6f5um
-8afä
-ag5abe
-5a4gent
-ag8er
-ages5e
-1aggr
-ag5las
-ag1lo
-a1gn
-ag2ne
-1agog
-a6g5und
-a1ha
-a1he
-ah5ein
-a4h3erh
+af3an
+a3f2ar
+a3fat
+2afe
+a2f1ec
+a2fent
+af1erl
+af4f5l
+2a3fi
+2af3l
+af3ra
+af3rä
+af3re
+af3rö
+af3ru
+af3s2a
+af2sp
+afs4t
+af3ste
+2aft
+af2t1a
+af3tab
+af2tei
+af4t3erl
+af2t3r
+af4t5re
+af2tur
+a2f1ur
+a1g
+2aga
+ag1a2b
+ag3a2d
+ag1ar
+ag1au
+ag2d
+a2gem
+a5gen.
+age4na
+a2gent
+age2nu
+age2se
+age4si
+age4s3p
+ages3s
+a4g5esse
+age4s3ti
+ag3gl
+2agi
+3a2git
+4a2g3l
+ag4la
+ag4lei
+ag5lo
+a4glö
+ag1lu
+ag4n
+a4g5na
+a5gnat
+a2go
+a3gob
+a5gon.
+a5gons
+a3gor
+a2g3re
+a2g3ri
+ag4ro
+a3gru
+2ags
+agsa2
+ag4sam
+ag4set
+ag6s5p
+ag7spi
+ag3sta
+ag3ste
+ags4tei
+2agt
+2agu
+a2g1und
+2ah.
+2a1ha
+ah4at
+2a1he
+a2h1erh
a1hi
-ahl1a
-ah1le
-ah4m3ar
-ahn1a
-a5ho
-ahra6
-ahr5ab
-ah1re
-ah8rei
-ahren8s
-ahre4s3
-ahr8ti
-ah1ru
+ahl5a2
+ahl1ei
+ah4l3erh
+ahl1o
+ah4lö
+ahl3sz
+ah3ma
+ah3me
+ah4n3a
+ahn5th
+ah1os
+a2h1ö
+ahr1a
+ah3re
+ah4rei
+ahre6s3
+ah1ri
+2ahs
+aht3sp
a1hu
-ah8ö
-ai3d2s
-ai1e
-aif6
-a3inse
-ai4re.
-a5isch.
-ais8e
-a3ismu
-ais6n
-aiso6
+ah1w
+a1hy
+2ai
+ai1a
+aib3l
+ai1er
+aif2
+ai3g4
+a3ik.
+ai3ku
+a2il
+ai2lo
+a1ind
+ai3n4e
+a1ing
+ain3sp
+ai2nu
+ai3o
+ai2sa
+a3isch.
+ai5s2e
+ais3s
+a2it
+a3iv.
+a3ivl
+a3ivs
a1j
-1akad
-a4kade
-a1ke
-a1ki
-1akko
-5akro1
-a5lal
-al5ans
-3al8arm
-al8beb
-al8berw
-alb5la
-3album
-al1c
-a1le
-a6l5e6be
-a4l3ein
-a8lel
-a8lerb
-a8lerh
-a6lert
-5a6l5eth
-1algi
-al4gli
-al3int
-al4lab
-al8lan
-al4l3ar
-alle3g
-a1lo
-a4l5ob
-al6schm
-al4the
-al4t3re
-8a1lu
-alu5i
-a6lur
-alu3ta
+aje4
+2ak.
+a2kad
+2akam
+2akar
+ak4at
+aka2ta
+2akb
+2akc
+2akd
+4a1ke
+a2kef
+a2kes
+a2keu
+2a1ki
+2ak3l
+ak4la
+ak4li
+ak3n
+4ako
+2a1kr
+ak3rau
+ak3res
+2aks
+ak3sh
+2akta
+ak3t2an
+2aktb
+ak5ten
+2aktik
+akt2o
+ak4t5r
+ak5t6ri
+2aktst
+2a1ku
+a2kun
+4a3kü
+1akz
+al1ab
+a1lac
+ala5ch
+al1af
+ala4g
+al1age
+a3l2al
+a1lala
+al3all
+al1am
+al5amp
+al1ana
+al1ang
+al1ans
+al3anz
+a2lar
+a3lar.
+a3lare
+a3lari
+al2arm
+al3arr
+ala4s
+al3asi
+al3ass
+al1au
+al3aug
a1lä
-a6mate
-8ame.
-5a6meise
-am6m5ei
-am6mum
-am2n
-ampf3a
-am6schw
-am2ta
-a1mu
-a1mä
-a3nac
-a1nad
-anadi5e
-an3ako
-an3alp
-3analy
-an3ame
+al1äm
+alb3ein
+alb3eis
+al4berh
+al4b3erw
+al2b3l
+al2boh
+al2br
+alb3ru
+alb3s
+al2da
+al2dä
+al3dri
+alds2
+ald3st
+al3du
+2ale
+3a2l1e2b
+3a2l1ef
+a4l1eh
+a2l1ei
+a4lein
+a2l1el
+al3ends
+a2leng
+al2ent
+a2le2p
+al1epo
+4a5ler.
+a2l1erf
+a2l1erh
+a2l1erl
+a2l1ert
+3a2lerz
+a2l1esk
+ale4t
+al3eta
+al3eth
+a4l1eu
+3alex
+al1exi
+al2gli
+2ali
+ali4e3ne
+ali4nal
+ali5ne
+a2l1ins
+a2linv
+al2k1ar
+1alkoh
+alk3s4
+al2lan
+al2l3a6r
+al2lau
+al4lec
+al3lend
+all5erfa
+al3les
+alli5er.
+alli7ers.
+2alo
+a2l1ob
+alo2ga
+al1ope
+al1orc
+al1ö
+al2ös
+3alpe.
+1alph
+al3skl
+al3sp
+al4spal
+al5s6terb
+al2ta
+al3tam
+alt3eig
+al4te4l
+al4t3erf
+al2tö
+al2tri
+alt3ric
+al2tro
+alt4stü
+3alty
+a1lu
+al2uf
+a2lum
+al1ur
+4aly
+am2a
+amab4
+ama5d
+am4e
+4ame.
+a2meb
+ame2n
+amer2a
+a2meri
+a4mese
+a5met
+a2mew
+a3mie
+a3mil
+2a3mir
+amit2a
+ami5ti
+2ammal
+am2min
+ammu2
+2amo
+a2mö
+2amp
+amp2f3a2
+am3pr
+am2s
+am3sa
+am3so
+am3sp
+am3str
+3amt.
+am2t1a
+am2t1ä
+am4tel
+am4t3ern
+am2to
+am2tö
+am4t3r
+am2tu
+4amu
+am3unt
+4ana.
+2anab
+ana3c
+a3na3d
+anadi3
+a3nak
+2anan
an3ara
-a1nas
-an5asti
-a1nat
-anat5s
-an8dent
-ande4s3
-an1ec
-an5eis
+2anas2
+2anat
+an1äs
+1anb
+3anbr
+an5cht
+4and.
+an5de6s
+an2d1ex
+2ando
+an4d5rü
+and4sas
+an2d1ur
+4ane
+an3e4c
+a3nee
+an3eif
an1e2k
-4aner.
-a6n5erd
-a8nerf
-a6n5erke
-1anfa
-5anfert
+5a4n1erb
+an3eth
1anfä
-3angab
-5angebo
-an3gli
-ang6lis
-an2gn
-3angri
-ang5t6
-5anhä
-ani5g
-ani4ka
-an5i8on
-an1kl
-an6kno
-an4kro
+anft5s
+4ang.
+3angeb
+an4g5ei
+ang5erl
+ang5erz
+2angf
+2angh
+2angie
+ang3l
+an2gla
+an2glä
+ang5le.
+2ango
+ang3ra
+4angs.
+ang5sc
+ang6s5po
+1anh
+4a3ni
+ani3els
+ani5ers.
+5a4nim
+4anj
+2ank.
+an2k1an
+an3k4l
+an4klö
+an2k3no
+an2k1r
+ank3ra
+ank3rä
+ank5ti
+an2ky
1anl
-anma5c
-anmar4
-3annah
-anne4s3
-a1no
-5a6n1o2d
-5a6n3oma
-5a6nord
-1anr
-an1sa
-5anschl
-an4soz
-an1st
-5anstal
-an1s2z
-5antenn
-an1th
-5anwä
-a5ny
-an4z3ed
-5anzeig
-5anzieh
-3anzug
-an1ä
-5anäs
+2anmu
+2ann
+3an3na
+3annä
+an5n4e
+an3od
+an1or
a1nö
-anö8d
-a1os
-a1pa
-3apfel
-a2ph1t
-aph5ä6
-a1pi
-8apl
-apo1c
+1anr
+2ans.
+3ansä
+1ansc
+an5se
+ans2en
+an6seu
+an3skr
+an2s1pa
+1anspr
+an3s2t
+an5stei
+an5str
+an3s2z
+2ant.
+ant2a
+an2t3a4r
+1antá
+1antei
+3antenn
+an3th
+ant2he
+1anthr
+2anto
+1antr
+an2tro
+3antw
+4a3nu
+a4nunt
+a5nus
+a1nü
+1anw
+2anwet
+2anz
+3anzah
+3anzei
+anz5erst
+an2z1i4n
+3anzu
+3anzü
+an2zw
+ao1i
+a1op
+a1or
+a1o4s5
+aot2
+a3ot.
+ao3ts
+a1ö
+a1p
+2ap.
+4apa
+2ape
+a2pé
+ap2fa
+a3pfl
+a3phä
+ap1hel
+2a2p3l
+ap2n
apo1s
-a6pos2t
-a6poth
-1appa
-ap1pr
-a1pr
-a5pä
-a3pü
-a1ra
-a4r3af
-ar3all
-3arbei
+a2pot
+ap3pl
+2apr
+2apu
+2ar.
+2a1ra
+a3ra.
+ar2ab4
+ar3abt
+ara3d2
+a2r3al
+ar1ang
+ar1ans
+ar3anz
+a2r3app
+ara4st
+a2r1au
+a1rä
+2arb.
+4arba
+ar2bau
+ar2bec
+arb3eie
+arb3eim
+2arben
+2arbi
+ar2b5l
+2arbr
+ar2bre
+2arbs2
+arb3sp
2arbt
+2arbu
+ar2b3un
ar1c
-2a1re
-ar3ein
+1archi
+ar2dr
+2are
+4are.
+a2rea
+are5b
+a2ref
+ar1eff
+a4re3g
+ar1ehr
+a2rein
+a5ren
+a2rena
+a2rene
+are3r2a
+a3r2erf
+a2r1erh
+a2reri
+are3u
+ar2ew
+2arf
+ar2f1r
+arf3ra
ar2gl
-2a1ri
-ari5es
-ar8kers
-ar6les
-ar4nan
-ar5o6ch
-ar1o2d
-a1rol
-ar3ony
-a8ror
-a3ros
-ar5ox
-ar6schl
-8artei
-ar6t5ri
-a1ru
-a1ry
+ar2gn
+2arh
+4a1ri
+ar2ia
+ari3e2n
+arien3e
+ari3erd
+ari3erg
+a2r1im
+ar1ind
+ar1ins
+ar1int
+a3riu
+2ark
+ark5amt
+ar2k1ar
+ark3aue
+ar2kl
+ark3lag
+ar2kor
+ark1r
+ar4kri
+arks2
+ark3sa
+ark3sh
+ar4les
+2arma
+arm2ä
+arm3erk
+arm2or
+2arn
+ar5n2e
+2a1ro
+ar1ob
+ar3o2d
+a3rodo
+a3rol
+a2r1op
+a2ror
+2arp
+ar5pr
+2arr
+4arr.
+ar2r3ad
+arre4n
+ar2rh
+arr3he
+2ar2s
+ar3sa
+ar4schl
+ar4schr
+ar5se
+ar3s2h
+ars3k
+ar3sta
+ar3su
+ar2tau
+1artd
+ar4t3erl
+art2ho
+artin2
+2arto
+ar2t3r
+2arts
+2a1ru
+ar1ums
+ar3ü
+2arv
+2ary
+ar2zä
+2arze
+1arzn
1arzt
-arz1w
-ar8zä
-arä8m
-arö6
-ar5öm
-ar1ü2
-a1sa
-a6schec
-asch5l
-asch3m
-a6schn
-a3s4hi
-as1pa
-asp5l
-as5tev
-1asth
-a1str
-ast3re
-8a1ta
-ata5c
-ata3la
-a6tapf
-ata5pl
-a1te
-a6teli
-aten5a
-ate5ran
-6atf
-6atg
-a1th
-at3hal
-1athl
-2a1ti
-5atlant
-3atlas
-8atmus
-6atn
-a1to
-a6t5ops
-ato6ra
-a6t5ort.
-4a1tr
-a6t5ru
-at2t1h
-at5t6hä
-6a1tu
-atz1w
-a1tä
-a1tü
-au1a
-au6bre
-auch3a
-au1e
-aue4l
-5aufent
-3auffü
-3aufga
-1aufn
-auf1t
-3auftr
-1aufw
-3auge.
-au4kle
-aule8s
-6aum
-au8mar
-aum5p
-1ausb
-3ausd
-1ausf
-1ausg
-au8sin
-au4sta
-1ausw
-1ausz
-aut5eng
-au1th
-1auto
-auße8
-a1v
-ave5r6a
-aver6i
-a1w
-a6wes
+ar2z1w
+2as
+as2al
+as3ala
+a4s3au
+a2s1ä
+a6sca
+a4schec
+asch3la
+a2schm
+4as2e
+a2seb
+ase3le
+aseli5
+a2s3e2m
+a3ses
+4ash
+a3s2hi
+a5si.
+4asis
+a3skop
+as1o2f
+a3sol
+a3som
+as1or
+a2s1ö
+a2s1p
+as3pan
+as3pe
+as2ph
+as2po
+as2pu
+as3s2a
+as5se
+as6sei
+asse3le
+as3s2i
+as5so
+as2s1p
+as2st
+ass3ti
+as4sto
+as3str
+a2st
+4a4s1ta
+a5s4tas
+as2tau
+a5stä
+as3te
+as3ti
+4a3str
+ast3rau
+ast3rä
+as4t3re
+a2sü
+3asy
+a1ß
+aße2
+2a1t
+4ata1
+a2t1ab
+ata2be
+at2af
+at4a5g
+at1akt
+a3tam
+at1apf
+a2t1au2
+a3tau.
+at1än
+at2c
+4a3te
+a4teb
+at1eig
+a4teli
+a4tep
+ater3st
+a4tew
+4atf
+4atg
+at2he
+5athl
+a4thr
+4a3ti
+at1int
+3atm
+4atmus
+ato4man
+a2t1ort
+a2t1ö
+4atp
+4atr
+atra4t
+at3rä
+at3re
+at3rom
+at2s
+at3sc
+at4set
+ats1p
+3attac
+att3ang
+at2t1au
+at2tei
+at5thä
+att3rau
+at4t3rä
+atts4
+4atu
+a3tub
+atu4n
+atu3ren
+atu4rer
+at3w
+4atz
+atz1er
+at2z1in
+atzt2
+atz3th
+a2u
+2au.
+au1a2
+2aub
+au2bl
+au2bri
+4auc
+auch4se
+auch3ta
+au3di
+au2dr
+2aue
+aue2b
+aue3re
+au5erein
+au5erl
+aue4s
+au3et
+au2fa
+auf1an
+2aufe.
+2aufeh
+auf1er
+au5fer.
+3aufn
+au2fo
+2aug
+au3g6e
+4augeh
+2au1i
+au2is
+4auj
+au2kl
+aule2s
+aul3ese
+aul4s
+au3lü
+4aum
+au2mal
+au2mar
+au2mau
+au2mer
+au2m1o
+aum3p2
+aums2
+aum3st
+aum3sz
+4au3n2
+au4nio
+aun3k
+aun3s
+a4unz
+au1o
+aup2
+2au3r2
+au2s1ah
+ausan8ne.
+4au2sc
+au3schl
+au3schw
+2ause
+aus3erp
+au4s3erw
+au2so
+au2sp
+aus3s4
+3aussag
+aus4se.
+au2st
+aus3tri
+2aut.
+au3tan
+au2tä
+aut1äu
+2aute
+au4t3erh
+3auto
+2auts4
+aut5st
+2aux
+auz2w
+2a1ü
+2a1v
+av4a
+ava3t
+a2vr
+2a1w
+awi3e
a1x
-a2xia
-a6xio
-a1ya
-a1z
-azi5er.
-8aß
+ax2a
+ax3an
+ax2e
+2a1ya
+a1yeu
+ays2
+aysi1e
+ay3ste
+2a1z
+az4a
+azo3
+az2u
+ä1a
+ä1b
+ä2b3l
+äb2s
+ä1che
+äche1e
+ä1chi
+äch3l
+ä2chr
+äch2sp
+äch4st
+ä1chu
+ä1ck
+ä1d
+ä3di
+ä4d1ia
+ä3do
+ä2d3r
+2ä3e
+äf2fl
+äf5l
+äf3r
+äf2s
+äft4s3
+ä1g
+äge1i
+äges4
+ä2g3l
+ä3g2n
+ä2g3r
+äg3s2tr
+1ä2gy
+äh1a
+2ä3he
+ä3hi
+ähl1a
+äh5l2e
+äh6l3e4be
+äh3li
+2ähm
+äh5ne
+äh5ri
+2ähs
+2äht4
+äh3tr
+ä3hu
+äh1w
+ä1im
+ä1is.
+ä3isch.
+ä1isk
+ä1j
+ä1k
+ä2k3l
+ä2k3r
+ä1la
+älbe2
+äl2bl
+äle3ru
+äl2l1a
+äl2p3
+äl2sc
+ä1lu
+ä3me
+ämi3en
+2äml
+ämt2e
+2än.
+än2dr
+2ä3ne
+äne2n1
+än2f3
+2änge
+än2gl
+än2gr
+äng3se
+2ä3ni
+än5k2e
+än2k3l
+än2kr
+änk2s
+än5n4e2
+2äns
+än4s3c
+änse3h
+ä1on
+ä1pa
+äp2pr
+äp4s3c
+äp2st
+1äq
+ä2r3a2
+är4af
+är1ä
+är1c
+4äre
+ä2r1ei
+äre2n
+ä2r3ene
+är2gr
+ä1ri
+är1int
+är2k5l
+ärk2s
+är1o2
+ä1rö
+ärse2
+är6si
+är2st
+ärt4e
+ärt2s3
+ä1ru
+är3ü
+är2z1w
+äs2a
+äs4e
+äse3g
+äse3re
+äser4ei
+äse4ren
+äse3r2i
+äse3t
+äskop2
+ä3s2kr
+ä2s1p
+äs4s3c
+äs4s3erk
+äs4st
+ä4s3t
+äs5ti
+äs4tr
+ä3su
+ä1ß
+äß1erk
+2ät
+ä4t3a2
+ä3te
+äte1i
+äte2n
+ät2ha
+ä1to
+ät1ob
+ät3r
+ät2sä
+ät4schl
+ät4schr
+ät2s1i
+äts3l
+ät3so
+äts1p
+ät2st
+äts3ti
+ät2tr
+ä3tu
+ät5ze
+äu2br
+äu1c
+äu3el
+ä2uf
+äuf2e
+äug3l
+2äul
+2äum
+äu2ma
+äum2s
+äums1p
+ä2u3n2
+2äu5r
+2ä3us.
+äu2sc
+äu6schä
+äu4schm
+äu5se
+ä1usg
+ä1usk
+ä1usn
+äu2sp
+äus4s3c
+1äuß
+äu2tr
+4ä1v
+1äx
+ä1z
+â1t
+6b.
1ba
-8ba8del
+2babs
+ba3char
+bach7t4e
+backs4
+2b3adr
+2baf
+3bah
+bah2nu
+bah5re
+bais4
+ba2ka
+ba2k3er
+ba2k1i
+bak5l
+ba2kra
+3bal
ba1la
-ba1na
-ban6k5r
-ba5ot
-bardi6n
-ba1ro
-basten6
-bau3sp
-2b1b
-bb6le
+bal4l3eh
+bal6lerg
+bal3th
+2b1am
+ban2a
+3b2and
+ban2dr
+ba3n4e
+ba5ner
+2bang
+ban2k1a
+ban4kl
+2banl
+2b1ans
+b3anz
+ba2ran
+bar3b
+b2ard
+bar3de
+ba2rei
+bar2en
+bar3zw
+3bas
+ba5sa
+ba2sc
+ba4st
+ba2to
+bau3b
+bau3g
+bau3s
+bau1s2k
+ba1yo
+3b2ä1c
+1bäe
+1b2är
+1b2äs
+1bäu
+b1äug
+bäu3s
+4b1b
+b3ba
+bben3s2
+bbe4p
+b3bi
+bb5ler
b2bli
-2b1c
-2b1d
-1be
-be1a
-be8at.
-be1ch
-8becht
-8becke.
-be5el
-be1en
-bee8rei
-be5eta
-bef2
-8beff
-be1g2
-behö8
-bei1s
-6b5eisen
-bei3tr
-b8el
-bel8o
-belu3t
-be3nac
-bend6o
-be6ners
-be6nerw
-be4nor
-ben4se6
-bens5el
-be1nä
-be1nü
-be1o2
-b8er.
+bb3lin
+b3blo
+b3blö
+bbru2
+bb2s
+bbu1
+b7by
+2b3c
+2b5d
+bde1st
+bdo3
+bdu3s
+1be.
+3be3a
+be5an
+be4au.
+b2ebe
+1be1c
+be2del
+bedi4
+be1eh
+be1erl
+be3eta
+3bef
+be3g4
+2beier
+bei1f4
+beil2
+bei3la
+2beime
+3b2ein
+bei5na
+be1ind
+be1in4h
+bei3sc
+beis2e
+bei3st
+beit2s
+3bek
+be3las
+be3lec
+be3lei
+be2l1en
+be2let
+be3li
+bel3la
+bel3sp
+bel3sz
+belt4
+bel3ta
+bel3tr
+1bem
+1ben.
+be3na
+be4nal
+ben3ar
+be4nau
+be3ne
+ben4erg
+be4ners
+ben3g
+be3ni
+ben4se
+ben2sp
+ben4su
+ben4th
+3b2enti
+b1ents
+4bentw
+ben1un
+ben3z2
+be1o
be1ra
-be8rac
-ber8gab.
-ber1r
-be1rü
-bes8c
-bes5erh
-bes2p
-be5tha
-bet5sc
-be1un
+ber3am
+be2ran
+ber3as
+berd4
+ber3eiw
+be3rel
+bere4s
+ber3esc
+ber4in.
+ber3iss
+ber3na
+b1ernt
+be1rop
+ber3st4a
+ber3th
+be3rum
+1be1s
+be3sa
+be2s1er
+be3slo
+be3spo
+be3spr
+bes5s4e
+b3esst.
+bes3sz
+bes2to2
+be4s3tol
+be3s4ze
+3bet
+be2tap
+be3tha
be1ur
-8bex
-be6zwec
-2b1f8
-2b1g2
-bga2s5
-bge1
-2b1h
-bhole6
+3b2ew
+2b1ex
+1bez
+2b5f4
+bfal2
+4b3g4
+b5ga
+bge3
+bge5n
+bges4
+2b3h
1bi
-bi1bl
-b6ie
-bi1el
-bi1la
-bilä5
-bi1na
-bi4nok
-bi6stu
-bi5tr
-bit4t5r
-b1j
-2b1k2
-bkü6
-bl8
-b6la.
-6b1lad
-6blag
-8blam
-1blat
-b8latt
-3blau.
-b6lav
-3ble.
-b1leb
-b1led
-8b1leg
-8b1leh
-8bleid
-8bleih
-6b3lein
-ble4m3o
-4blich
-b4lind
-8bling
-b2lio
-5blit
-b4litz
-b1loh
-8b1los
-1blu
-5blum
-2blun
-blut3a
-blut5sc
-3blä
-bläs5c
-5blö
+bi1ak
+bibe4
+bi2e
+bi3ens
+bi3ent
+bie2s
+bi3k2a
+bi2ke.
+bi2kes
+bi3ki
+3b2il
+bil4a
+4b3illu
+bi2lu
+2b1inb
+bi3n2e
+2b1inf
+2b3int
+bi2o3
+bi3on
+biri1
+bi5se
+bi2sol
+bis4s3c
+bi4st
+bi2t
+b2i3ta
+bi3te
+bi3to
+bi3tr
+bit3st
+2bi4tu
+bi5tum
+b2i5tus
+biz2
+bi3za
+4b3j
+bjek4to
+2b3k4
+b2l2
+2bl.
+bla3b6
+4b5lad
+b6lanc
+6blasser
+b6latt
+b3law
+3b4le2a
+b3leb
+2b5leg
+b3leh
+2b3leid
+b5lein
+blei3sc
+ble3l
+b4lem
+b4ler
+b5lese
+ble5sz
+3b4let
+2b3lich
+3blick
+b4lie
+2b3lis
+b4lit
+3b6litz
+1b4lo
+b6loc
+b5lok
+2b3lun
+blu4ter
3blü
-blü8sc
-2b1m
-2b1n
+2b3m
+6b3n2
+bni2
+bnis3
1bo
-bo1ch
-bo5d6s
-boe5
-8boff
-8bonk
-bo1ra
+bo5as
+bo2b3l
+bo3b4r
+bo2c
+bo3ch2
+bo3d2
+bo2e3i
+2b3of
+bo5fe
+bo1is
+bo2l1an
+3bon.
+bon2d1e
+bo2ne
+3bons
+b1op
+bo1r2a
+bo4rä
+bor2d1i
+bor2d3r
+bo2rei
+bor2s
b1ort
-2b1p2
-b1q
-1br
-brail6
-brast8
-bre4a
-b5red
-8bref
-8b5riem
-b6riga
-bro1s
-b1rup
-b2ruz
-8bröh
-brös5c
-8bs
-b1sa
-b8sang
-b2s1ar
-b1sc
-bs3erl
-bs3erz
-b8sof
-b1s2p
+bor4tei
+bor2t3r
+bo2sc
+bo5se
+bo4s3p
+3bot
+bote5n4e
+bo3th
+bot2st
+bö2b3
+2b3öf
+bö3sc
+2b3p2
+bpa4g
+2b3q
+b2r4
+2br.
+b4ra.
+2b3rad
+b6rah
+b6ra3k
+bra1st4
+2bre.
+6b5rechte
+2b3ref
+2breg
+b3reif
+b3rek
+3brem
+2b3rep
+b4rer
+b4ri
+2b5riem
+bri2er
+2b5rig
+b5ris
+b5roh
+2b3rol
+b4ruc
+brust1
+4b1s
+bs3ad
+bs1an
+b3sand
+bs3ar
+bsat2
+b3sä
+b4sär
+b3sc
+b4schan
+b7schl
+bs4cu
+b3se
+b5se.
+bs1e2b
+b5sel.
+bs1ele
+bse2n
+b5sen.
+bs1ent
+bs1er
+bs5e4r3in
+b5ses
+b5set
+bs1ex
+bsi4t
+bs5ko
+bs2ku
+b4sl
+b2s1of
+bs1op
+bso2r
+b2sö
+bs1par
+bs2pl
+b3s2pu
+bs5s2
+bs2t
+bst1a2b
+bst1ac
+bst1ak
+bst3ank
+bs3tät
+bs4tem
+bst1er
bst1h
-b3stru
-b5stä
-b6sun
-2b1t
+b3sto
+b2s3trä
+bs3treu
+b3stu
+b3stü
+b4stüb
+b2s1un
+4b1t
+b3ta
+btal3
+bta4s
+btast3r
+b3tä
+b5te
b2t1h
-1bu
-bu1ie
-bul6k
-b8ure
-bu6sin
-6b1v
-2b1w
-1by1
-by6te.
-8b1z
-1bä
-b5ä6s5
-1bü
-b6ü5bere
-büge6
-bügel5e
-bür6sc
-1ca
-cag6
-ca5la
-ca6re
-ca5y
-c1c
-1ce
-celi4c
-celich5
+b3ti
+bti2s
+b3to
+b3tr
+bts2
+b3tu
+btü1
+b2u
+bu2chi
+bu2e3
+bu2f
+bu5li
+bul2la
+2b3umk
+bu3na
+bunde6s
+bun4th
+b4urg
+bu3r4i
+bu2s
+bus3cha
+bu3se
+bu4s1er
+bus1p
+bus1u
+bu3ße
+1b2ü
+bü1c
+büge4
+bügel3e
+2b3v
+2b5w
+1by
+by1a
+by3p
+by4t
+by5th
+2b3z2
+b5ze
+bzei2t1
+2c.
+1c4a
+2ca1b
+ca1ch
+ca2e3
+3caf
+ca3g4
+ca1h
+3cal
+ca3la
+cal3t
+3cam
+ca2pe
+ca3pel
+3car
+car3n
+carri1
+ca3s2a3
+ca4st
+ca3th
+ca1y2
+cä3
+4c1c
+cch2
+4cd
+c1do
+2cec
+ce2dr
+2cef
+ce1i
+2cek
+3cen
+cen3g
+cen3ta
+ce3n1u
+1cer
ce1ro
-c8h
-2ch.
-1chae
+ce3sh
+ce1st
+1cet
+2ceta
+cet3am
+ce3ty
+ce1u
+1cé
+2c1f
+c4h
+4ch.
+2chab
+ch3abi
ch1ah
-ch3akt
-cha6mer
-8chanz
-5chara
-3chari
-5chato
-6chb
-1chef
-6chei
-ch3eil
-ch3eis
-6cherkl
-6chf
-4chh
-5chiad
-5chias
-6chins
-8chj
-chl6
-5chlor
-6ch2m
-2chn6
-ch8nie
-5cho.
-8chob
-choi8d
-6chp
-ch3ren
-ch6res
-ch3rü
-2chs
-2cht
-cht5ha
-cht3hi
-5chthon
-ch6tin
-6chuh
-chu4la
-6ch3unt
-chut6t
-8chw
+ch1ak
+ch2anb
+5chanc
+ch1ang
+ch3anst
+4chanz
+3chao
+ch1ap
+4char.
+ch3arm.
+3charta
+cha2sc
+chasi1
+3chato
+4chatu
+ch1ärm
+ch1äs
+1châ
+2chb
+4chc
+2chd
+ch3e4ben
+ch3echt
+3chef
+che2fe
+4chei
+ch1eim
+che4ler
+4chents
+4chentw
+cher3a
+che3rei
+6chergeb
+2cherö
+ch1ess
+2ch3eta
+2ch1ex
+1ché
+2chf
+2chg
+2chh
+ch1ia
+3chia.
+3chias
+6chind
+3chines
+ch1inf
+2ch1inh
+ch1ins
+ch1int
+ch1inv
+3chiru
+2chj
+2chk
+2ch2l2
+ch3lein
+2ch2m
+ch4mu
+2chn4
+2chob
+cho6cker
+cho2f
+ch1off
+ch1oh
+ch1orc
+2chp
+ch2r2
+4chre
+ch3rh
+3chron
+4chs
+4cht
+2chuf
+2chuh
+2chum
+2ch1unf
+2chunt
+4chü
+2chv
+2chw
+2chz
1ci
-ci5tr
-c2k
-2ck.
-ck1ei
-4ckh
-ck3l
-ck3n
-ck5o8f
-ck1r
-2cks
-ck5stra
-ck6s5u
-c2l
-1c8o
-con6ne
-8corb
-cos6t
-c3q
-1c6r
-8c1t
-1cu
+ci1c
+ci2s
+c1j
+c4k
+4ck.
+ck1a
+3cka.
+ck5aa
+2ckac
+2ckal
+ck5am
+2ck3an
+cka4r1
+2ckau
+ck1ä
+4ckb
+2ckc
+2ckd
+1cke
+3cked
+4ckeff
+4ckeh
+ck1ehe
+4ck3ei
+3ckel
+3cken
+4ck3ense
+ck1ent
+4ckentw
+cke2ra
+cke5reig
+4ckerhö
+4ckerke
+2ckero
+2ck1err
+cke2s
+2ck1ese
+2ckex
+4ckf
+4ckg
+2ckh
+1cki
+2ck1id
+ck1im
+ck1in
+3ckis
+2ckk
+2ck5l
+2ckm
+2ck3n
+2ck1o2
+ck1ö
+2ckp
+2ck5r
+4cks
+ck3spo
+4ckt
+ck5t2e
+ck3ther
+3cku
+4ck1um3
+4ckunt
+4ck1up
+2ckv
+4ckw
+1cky
+4ckz
+3c6l2
+clet4
+clo1c
+c2m
+3co
+co2c
+co3ch
+co2d
+co4der.
+co3di
+coff4
+coi2
+co1it
+co2ke
+co2le
+co5l2o
+com4te.
+comtes4
+con2ne
+co2pe
+co1ra
+co4re
+cor5t
+cos4
+co4te
+cô4
+2cp
+2c1q
+c4r2
+cre2
+cre4mes
+cry2
+2c2s
+cs2a
+c3se
+cst4
+c3s2tr
+2c1t
+cte3e
+c3ti4
+c3to
+ctur6
+3cu
+cu2p3
+cup1e
+cussi4
1cy
-5cä1
-cö5
-1da.
-8daas
-2dabg
-8dabr
-6dabt
-6dabw
-1dac
-da2gr
-6d5alk
-8d5amt
-dan6ce.
-dani5er
-dan8ker
+2cz
+4d.
+3da.
+da1a
+2dab
+d2abä
+da2ben
+3d2a1b4l
+3dac
+dach5a
+da2cho
+4dachse
+3dad
+da2de
+da3dr
+da1er
+2d1af
+d1ag
+dagi4
+dah3l
+da1ho
+3d4ai
+da1in
+da1is
+da1l2a
+2d1alar
+dal3b4
+da1lö
+2d1alt
+2d1amma
+2d1ammä
+damo3
+damp7f8erf
+2d1amt
+d2an.
+2dana
+dan2c
+2d1and
+2d1ang
+3dank
+dan4kl
+dan4k1o
+dank3r
2danl
-danla6
-6dans
-8danzi
-6danzu
-d1ap
-da2r1a8
-2d1arb
-d3arc
-dar6men
-4d3art
-8darz
-1dat
-8datm
-2d1auf
+4d1ans
+2danw
+d4anz.
+2d1ap
+d2aph
+4dapp
+da2r3a
+2darb6
+3d2arl
+dar2ma
+dar2m1i
+da2ro
+2darr
+dar3s
+2dart
+d1artg
+da2ru
+d2arw
+das4
+da3s2h
+da5s2t
+3dat
+da3ta
+dat2e4
+4d3atl
+4datm
+3dau3e4
+2d1au2f
2d1aus
-2d1b
+2d1äh
+2d1ämt
+2d1änd
+2d1äng
+2d1äp
+2d1ärz
+dä2um
+dä1us
+2d7b6
+dbu2
2d1c
-2d1d
+4d3d2
+ddar2
+ddar4m
d5de
-d3d2h
-ddämme8
1de
-2deal
-de5an
-de3cha
-de1e
-defe6
-6deff
+de3am
+de3an
+de3as
+de5a4t
+de3b6
+4d1e4ben
+3de1c
+de2cka
+deco3
+de1e2
+2d1eff
+deg4
+dehe2
+de3ho
2d1ehr
-5d4eic
-de5isc
-de8lar
-del6s5e
-del6spr
-de4mag
-de8mun
-de8nep
-dene6r
-8denge.
-8dengen
-de5o6d
+2dei
+d2eic
+3d2e1im
+de2l1a4g
+de4l3aug
+de4l1än
+del1ec
+de3l2ei
+2delek
+2delem
+de2len
+2d1elfm
+3delik
+delle2
+del4leb
+del4lei
+de2l1ob
+de3lor
+de2lö
+del2s5e
+del2so
+del2s1p
+del5ster
+delt4
+del3ta
+del3tr
+de6ments
+2d1emp
+d2en.
+dend2
+dend4s
+de4n3end
+den3g
+de2ni
+den4k5li
+den3sc
+den4sen
+dens5tau
+den3th
+2dentw
+de2ob
2deol
-de5ram
-8derdb
-der5ein
+de1on
+deo4no
+depi2
+d4er.
+de1rad
+de2r3ap
+der2bl
+de2r1e2b
+de4reck
+der3edi
+de3r4erb
+de3r4erf
+de4r3ero
+4d3erhöh
+de5ric
+de3rik
+4d3erklä
de1ro
-der1r
-d8ers
-der5um
-de4s3am
-de4s3an
-de4sau
-de6sil
-de4sin
-de8sor
-de4spr
-de2su
-8deul
-de5us.
-2d1f
-df2l
+de2rop
+d3ersat
+dert2a
+der6t5end
+dert2s
+de3ru
+de4ruh
+de4rum
+de2s
+de4s3a
+de5sac
+de5säc
+des1än
+de5sc
+de3se
+des1en
+des1in
+des1o
+des1p
+des3pot
+des3s4
+des5se
+dest5alt
+de5stang
+de5star
+de5stat
+de7stel
+de4sto
+de3str
+dest5rat
+de5stri
+de5stro
+des1u
+deten6t
+2d3etw
+de1un
+de1url
+de1us
+de2xis
+2dexp
+2d3f
2d1g
-2d1h
+dga2
+d2ge.
+d3gem
+dge2ta
+dge6t5e
+d3gl
+2d1h2
+dhas2
+d2his
+d3hu
1di
-dia5c
-di5ara
-dice5
-di3chr
-di5ena
-di1gn
-di1la
-dil8s
-di1na
-8dind
-6dinf
-4d3inh
+3di.
+di2a
+di4ab
+di4am
+dia5ne
+di4at
+3dic
+di1ce
+dich3te
+di2de
+di2e
+di3e2d
+die3ner
+di3eni
+di3ens.
+dienst5r
+die4s3c
+die2t5
+dige4s
+di3gn
+di3ka
+dil2s3
+2d1imb
+din2a
+2d1ind
+2d1inf
+2d1inh
+2d1init
+4dinner
2d1ins
-di5o6d
-di3p4t
-di8sen
-dis1p
-di5s8per
-di6s5to
-dis3tr
-di8tan
-di8tin
-d1j
-6dje
-2dju
-2d1k
-2d1l
-2d1m
-2d1n6
-dni6
-dnje6
-1do
-6d5obe
-do6berf
-6d5ony
-do3ran
-6dord
-2d1org
-dor4t3h
-6doth
-dott8e
-2d1p
-d5q
-dr4
-1drah
-8drak
-d5rand
-6dre.
-4drech
-d6reck
-4d3reg
-8d3reic
-d5reife
-8drem
-8d1ren
-2drer
-8dres.
-6d5rh
-1dria
-d1ric
-8drind
-droi6
-dro5x
-1dru
-8drut
-drös5c
-1drü
-drü5b
-drü8sc
+2d1int
+di2o3b
+di3o2d
+di3p
+di2ra
+di4re.
+di2ren
+di2ris
+2d1irl
+2d1isr
+dist4
+di4ste
+di2ta
+di3te
+di4tei
+di4teng
+di4t3erl
+di4t3erm
+di4t3ers
+di2t3r
+di2tu
+diz2
+di3zi
+2d1j
+2d1k4
+4d1l
+d3l2e
+dle2r3a
+2d5m
+d3me
+4d1n4
+d5ne
+dni2
+dnis1
+d3no
+3do.
+2dob
+3doba
+d1o2be
+dob4l
+3dobr
+3doby
+do2c
+do3chi
+3dog
+do3ha
+3dok
+dol3l2
+do2mar
+3don
+do5n4a
+doni1e
+do2o
+4d1opf
+d2opp
+d2o3r4a
+4dorc
+3dorf
+dor2f1a
+dor2fä
+dor2fl
+dor2fr
+4d1org
+do2rie
+d2orp
+d2os.
+do3sp
+dos3s
+dost3
+do4sta
+do3str
+3dot
+dot4h
+do3un
+do1y2
+2dö
+d1öf
+d1öl1
+3dör
+dö4s3c
+2d3p2
+2d1q
+d2r4
+3d4ra.
+2d3rad
+drag4
+d4rah
+2d5rahm
+3d4ram
+d3rand
+2drast
+2drat
+2drauc
+d3raum
+2d3räd
+2d3rät
+2dräu
+4dre.
+d4rea
+d5real
+3d4reck
+2dreg
+5dreh
+2d3reic
+d4rein
+drei3t
+d4reiv
+4drem
+4d3ren
+d3rep
+4d3rer
+4dres.
+d4resc
+2d3rh
+d4ria
+2d3ric
+d3rieg
+d4rif
+d3rind
+3drisc
+3d4rit
+4dritu
+2drob
+d3roc
+2d3rod
+d4roi
+2d3rot
+d3rou
+2d3rov
+drö4s3
+3d4ru
+d5rub
+4d5ruf
+4d5ruh
+4d5rut
+3d4rü
+drü1b
+drü5cke
2ds
-d1sa
-d6san
-dsat6
-d1sc
-5d6scha.
-5dschik
-dse8e
-d8serg
-8dsl
-d1sp
-d4spak
-ds2po
-d8spä
-d1st
-d1sü
-2dt
+ds3ab
+d4s3amt
+d2s3an
+ds3assi
+d2s1au2
+d2s1än
+4dsb
+d4schin
+d2s1e2b
+d3sec
+d2s1ef
+d5s4eig
+d2sein
+d2s1eng
+d2s1ent
+d2s1erf
+d2s1erk
+ds1err
+d2s1erz
+dse4t
+d4s1eta
+d3s2ha
+ds3han
+d3sho
+ds3hu
+d2s1im
+ds2inf
+d3s2kan
+d3skul
+4dsl
+d2s1op
+dso2r
+ds1ori
+d2sö
+d2s1par
+d2s1pas
+d2s1pä
+d3s2po
+d4spro
+dss2
+ds3st
+dst4
+d2s1tab
+d4s3täti
+d5stei
+d5stell
+d3s4tern
+ds1th
+d1s2ti
+ds4til
+d3stip
+d1str
+d5stre
+ds2tri
+d1s2tu
+ds1ums
+d2sun
+d1sy
+ds2zen
+4dt
d1ta
-d1te
-d1ti
-d1to
-dt1s6
-d1tu
-d5tä
+dt3a2d
+d1tä
+d5tea
+dte5na
+dt3ha
+d3ti
+d1to4
+d1tö
+dt3r
+dtran2
+dts2
+dt3sa
+dt5sc
+dt3sp
+dt5str
+dt3t
+d1tü
1du
-du5als
-du1b6
-du1e
-duf4t3r
-4d3uh
-du5ie
-8duml
-8dumw
-2d1und
-du8ni
-6d5unt
-dur2c
-durch3
-6durl
-6dursa
-8durt
+du1alv
+du1ar
+du2b3l
+du3e
+du2f
+2d1ufe
+2d1uh
+du1i
+3dum.
+d1umb
+2dumd
+d3u2m1e
+2dumf
+2dumg
+4dumk
+2duml
+d2ump
+2dumr
+2d1ums
+3dums.
+d1umv
+dun3d
+2d1unf
+dun3ke
+dun2kl
+2dunr
+dun2st
+2dunt
+du1os
+dup4
+dur2
+2d1url
+3du2s
+du3scha
+du3se
dus1t
-du8schr
-2d1v
+2düb
+3düf
+3dün
+3dür
+dürn3
+2d1v2
2d1w
-dwa8l
+dwa4
+dwa2l
+dwes4
+dwest1
+dy3n
2d1z
-1dä
-6däh
-8dänd
-dä6r
-dö8bl
-d5öl
-dör6fl
-dö8sc
-d5ö4st
-1dü
-ea4ben
-e1ac
-e1ah
-e1akt
-e1al.
-e5alf
-e1alg
-e5a8lin
-e1alk
-e1all
-e5alp
-e1alt
-e5alw
-e1am
-e1and
-ea6nim
-e1ar.
-e5arf
-e1ark
-e5arm
+4e.
+2e1a
+e3a2b
+ea2c
+eadli4
+e2ag4
+ea2ge
+ea3gl
+eakt4
+eak3to
+e2al
+e3al.
+e3alb
+e3alei
+e3alf
+e3alg
+e3alk
+e3all
+e3aln
+e3alp
+e3als
+e3alta
+e3alv
+e3alw
+e3alz
+e2am
+eam3a
+e4ame
+eam1o
+eam3to
+ea2na
+e5and
+e4ano
+e3anz
+e2ap
+e3ar.
+ea2ra
+e3arb
+e4are
+e5a6rene
+e3arm
e3art
-e5at.
-e6ate
-e6a5t6l
-e8ats
-e5att
-e6au.
-e1aus
+eas3s
+e4at.
+eat4e2
+eate4r
+e4atl
+e4ats2
+eat3t4
+eatu4
+eau3b
+e3au2f
+e3aug
+e3ä4
e1b
-e6b5am
-ebens5e
-eb4lie
-eb4ser
-eb4s3in
-e1che
-e8cherz
+2eba
+e3b2ak
+eba3ra
+ebe2i
+eb4en
+e3beng
+eben6s5e
+2ebet
+2ebl
+eb5ler
+eb4leu
+eb3li
+e3blie
+eb5lo
+2eb2o
+ebö4s
+2ebr
+e3bra
+eb3rei
+eb2s
+ebs1au
+eb4se2
+ebs1i
+ebs1o
+ebs1p
+ebs3pa
+eb4stät
+ebs5tem
+ebs3th
+ebs3ti
+eb3str
+ebs1u
+e3bu
+ebu2t1
+eb3üb
+2e3ca
+e1ce
+ech1ä
+2e3che
+ech1ei
+e6ch5erzi
e1chi
+ech3l
ech3m
-8ech3n
-ech1r
-ech8send
-ech4su
+ech5n
+e2cho.
+ech1o4b
+e2ch3r
+ech3ta
+ech3t4ei
e1chu
-eck5an
-e5cl
+ech1uh
+ech3w
+eci6a
+e1cka
+eck3se
+2eckt
+2ecl
+2eco
+e5cr
+ecs1
+2ect
e1d
-ee5a
-ee3e
-ee5g
-e1ei
-ee5isc
-eei4s3t
-ee6lend
-e1ell
-ee5lö
+ed4dr
+ed4e
+e3dei
+ede3n2e
+eden2s
+eden4se
+edens3p
+ede2r
+ed2ge
+edi4a
+e3d2o
+e3dö
+ed3s2ä
+ed2s1es
+ed2s1o
+ed2s1p
+ed2s1tr
+ed2su
+e3dy
+6ee
+ee5a2
+eeb4l
+ee2ce
+ee1ch
+ee2cho
+ee2ck
+eede3
+eed3s2
+ee1e
+ee3ei
+e1eff
+eef3s
+eeg4
+e1ei2
+eei3e
+ee1im
+ee3ing
+eel2e
+e1e2lek
+ee3len
+e1emp
+e1en
+eena4
+e2enä
+e2enc
+ee5ni
+e2eno
+e1e2pi
+e2e1ra
+e1erbt
e1erd
-ee3r4e
-ee8reng
-eere6s5
-ee5rä
-ee6tat
-e1ex
+ee3r2e
+ee4r3eng
+eere4s
+ee4ret
+e2e1ro
+ee1r2ö
+eer3öf
+eert2
+e1ertr
+e2erü
+e1erz
+ees2
+ee3sh
+ees3k
+ee3st
+ee2tat
+ee2th
+ee1u2
+eewa4r
+e1e2x
e1f
-e6fau
-e8fe8b
-3effek
+2ef.
+2efa
+e3fab
+ef3ad
+e3fah
+ef1ana
+ef1ank
+ef1arc
+ef1aus
+ef1äu
+2efe
+e2f1e2b
+e2f1em
+e4fent
+ef2er
+2eff.
+1effi
+ef2fl
+2efi
+e2f1i2d
+e2f1ins
+efi2s
+1efku
+2efl
+e3flu
+e3flü
+2e3f2o
+e3f4ra
+ef3rea
+ef4rie
+ef1rol
ef3rom
-ege6ra
-eglo6si
-1egy
-e1ha
-e6h5ach
-eh5ans
-e6hap
-eh5auf
+ef3rot
+efs2
+ef5sc
+ef3so
+ef3sp
+ef2tan
+eft4r
+2efu
+ef1um
+2efü
+e1g
+e3ge
+ege4n1a
+ege2ra
+ege1u
+eg4li
+eg3lo
+eg3lu
+e2gn
+eg3ni
+eg4sal
+eg6ser1
+egs2pe
+egs2t6
+eg1ste
+eg4sto
+eg1str
+egs3trä
+2e3gu
+egus1
+2e1ha
+eh1ach
+eh3aka
+e3h2al
+eh1ap
+eh2aus
+2e3hä
e1he
-e1hi
-ehl3a
-eh1le
-ehl5ein
-eh1mu
-ehn5ec
+eh1eff
+ehen2t3
+1e2hep
+ehe1ra
+eher4an
+ehe3str
+e3h2i
+eh3int
+eh1lam
+eh1lä
+ehl2e2
+ehl3ein
+ehl3ent
+eh3lo
+ehl2se
+eh3ma
+eh3mi
+eh3mu
+eh5nat
e1ho
+e3hol
ehr1a
-eh1re
-ehre6n
+ehr1ä
+ehr3e2c
+eh2r3ei
eh1ri
-eh1ru
-ehr5um
+eh1ro
+ehr1ob
+ehr1of
+ehr5sch
+ehs2
+eh3sh
+eh3sp
+eh3te
e1hu
+e1hü
+eh3üb
+e3hüt
eh1w
e1hy
-e1hä
-e1hö
-e3hüt
-ei1a
-eia6s
-ei6bar
-eich3a
-eich5r
-ei4dar
-ei6d5ei
-ei8derf
-ei3d4sc
+2ei.
+2ei3a2
+4eib
+ei2b3l
+eibu4t
+ei4b3ute
+ei2cho
+eich5te
+e2id
+ei2d1a
+ei3de
+ei4d3err
+2eidn
+ei3dra
ei1e
-8eifen
-3eifri
-1eign
-eil1d
-ei6mab
-ei8mag
-ein1a4
-ei8nat
-ei8nerh
-ei8ness
-ei6nete
-ein1g
-e8ini
-ein1k
-ei6n5od
-ei8nok
-ei4nor
-e3insä
-ei1o
+ei3el
+2eien
+eien3st
+ei3erv
+ei3et
+1eifr
+ei3g2a
+eig2e
+ei3g6er
+2eigew
+ei3gl
+1ei2g3n
+2eigru
+2eigt
+2eigu
+4eih
+ei3k2a
+eik4r
+e2il
+2eil.
+ei4lant
+ei2lar
+2eilb
+eil3d
+ei4lein
+eile2n1
+eil3f4
+ei4l3ins
+2eiln
+ei2m1ag
+eim3all
+ei2mor
+e1imp
+ei4n1a
+ein3an
+ei2nä
+ein5de
+ein3dr
+2eindu
+ei5ne.
+ei4neng
+2einfo
+e2in1g2
+ein3ga
+ein2i
+e1init
+ein3k
+ein6karn
+3einna
+ei2no
+ein1ob
+3einsat
+ein4sz
+e4inver
+ei3o2
+ei3p
+eip2f
+2eir
+ei3re
e1irr
-ei5ru
-ei8sab
-ei5schn
-ei6s5ent
-ei8sol
-ei4t3al
-eit3ar
+e2is.
+ei2sa6
+ei2sä
+ei4s3erw
+ei3sp
+eis2pe
+ei3sto
+ei2ta
+2eitä
eit1h
-ei6thi
-ei8tho
-eit8samt
-ei6t5um
-e1j
+ei2tro
+eit3t2
+ei4t3um
+2eiu
+2e1j
+e1k
+e3k2a
1ekd
-e1ke
-e1ki
-e1k2l
-e1kn
-ekni4
-e1la
-e2l1al
-6elan
-e6lanf
-e8lanl
-e6l5ans
-el3arb
-el3arm
-e6l3art
-5e6lasti
-e6lauge
-elbst5a
-e1le
-6elef
-ele6h
-e6l5ehe
-e8leif
-e6l5einh
-1elek
-e8lel
-3eleme
-e6lemen
-e6lente
-el5epi
-e4l3err
-e6l5ersc
-elf2l
-elg2
-e6l5ins
-ell8er
-4e1lo
-e4l3ofe
-el8soh
-el8tent
-5eltern
-e1lu
-elut2
-e1lä
+eke2
+e3ke.
+e3ken
+eke3ri
+e3kes
+e3key
+ek4l
+ek5lip
+ek4n
+2ek2o
+ek3s4t
+2ekt
+ekt4ant
+ekt3erf
+ekt3erg
+ek4t3erz
+ek3t2o
+e3k2w
+2e1la
+e3lab
+el3aben
+ela2c
+el1af
+el3agi
+ela2h
+el1aho
+e2l1ak
+el1a2m
+el3ans
+e2lant
+e2l3anz
+el1ap
+e2l1a2r
+el5ari
+ela4s
+el3asi
+el3asp
+e3law
+2e1lä
+1elbis
+elb4l
+el2da
+eld5erst
+eld3erw
+el3des
+el3dr
+elds2
+e5le.
+elea2
+ele4c
+2elei
+e3leie
+e6l5eier.
+el3eig
+e2l1ein
+e3leine
+e4leing
+e2l1el
+1e2lem
+e3lem.
+el1emp
+2e3len.
+e4lense
+e2l1ent
+e3ler.
+el1erd
+el1erf
+e4lerfa
+e2l1erg
+el1erk
+e4l3erla
+e4l3ernä
+e2l1err
+el1ess
+e3let.
+e2l3e4ta
+2elev
+ele2x
+el1exi
+el3fe
+elf3ein
+elf4l
+elgi5er.
+elgi5ers
+e2l1id
+e3lie
+e2lim
+eli4n
+el1ita
+ell2a
+el3lan
+el5le.
+ell3ebe
+el4l3ein
+ell3eis
+el3les
+el5lin
+ell5sp
+elm2a
+2eln
+el5na
+2elo
+el1obl
+e2lof
+e2lol
+e3lom
+el1ope
+e2l1or
+elo2ri
+e3los
+e5lose
+e1lö
+el2san
+el2ser
+el2spr
+els6tern
+el2su
+el2ta
+el3tak
+elte2k
+elt3eng
+el4t3in
+el2to2
+el2t3r
+el3tri
+el3tro
+elts2
+elt3sk
+elt5sp
+2e1lu
+e2l1um
+e3lung
+el1ur
+el1use
e1lü
-em8dei
-em8meis
-4emo
+e2ly
+2elz
+el3zwe
+2ema
+e2m3ad
+ema2k
+em1anf
+e3mann
+em1ans
+3emanz
+e5mä
+em4d3a2
+2eme
+eme4n
+emen4t3h
+e2m1erw
+eme2s
+3e2meti
+em1ex
+em1im
+em1int
+emi5ti
+2emm
+emma3u
+e3mon
+e2mop
emo5s
-1emp1f
-1empt
-1emto
-e1mu
-emurk4
-emurks5
-e1mä
-en5a6ben
-en5achs
-en5ack
-e1nad
-en5af
-en5all
-en3alt
-en1am
-en3an.
-en3ant
+3empf
+em3pfl
+em2p3le
+em2sa
+em3spo
+em3t2
+2emü
+e2na
+4ena.
+e4na2b
+2e3nac
+e3nad
+e4naf
+4enah
+e4nak
+en1al
+ena3l2i
+4en1am
+en4ame
+e4nand
+e5nann
en3anz
-en1a6p
-en1ar
-en1a6s
-6e1nat
+en1ap
+e4nar
+en3are
+4enat
+e5nati
+en3att
+e3naue
en3auf
-en3aus
+e2nä
+e3näc
+en1är
+en1äu
en2ce
-enda6l
-end5erf
-end5erg
-en8dess
-4ene.
-en5eck
-e8neff
-e6n5ehr
-e6n5eim
-en3eis
-6enem.
-6enen
-e4nent
+en3del
+end3ess
+en3do
+end4ort
+end3ras
+end7si
+end3s2p
+end3sz
+en3dum
+2ene
+en1e2c
+ene4ck
+e2nef
+en1ehr
+en3ei.
+e2n1el
+ene4le
+e4nelt
+4enen
+e4n1ent
+e5n4entr
+en1epo
4ener.
-e8nerd
-e6n3erf
-e4nerg
-5energi
-e6n5erla
-en5ers
-e6nerst
-en5erw
-6enes
-e6n5ess
-e2nex
+e4n1erd
+3e2n3erg
+e4n3erh
+4e3neri
+e2n3erk
+e2n1erl
+en3ermo
+4enern
+e2n1err
+en1ers
+e2n3ert
+e2n3eru
+e4n1erw
+en3erz
+e4n3ess
+en3eta
+en3eth
+en1eup
+e4nex
+en3fa
+en3ga
+1engad
+3engag
+en5g2i
+en2gl
en3glo
+1engp
+eng5sc
+eng3se
2eni
-enni6s5
-ennos4
-enns8
-e1no
-e6nober
-eno8f
-en5opf
-e4n3ord
-en8sers
-ens8kl
-en1sp
-ens6por
-en5t6ag
-enta5go
-en8terbu
-en6tid
+e3nic
+e4n1id
+e3nie
+eni3er.
+eni5ers.
+e2n1i4m
+en3imi
+e2n1in
+e5nit
+en3k2ü
+e2n1ob
+enob4le
+e2n3oh
+e3n4ol
+eno2ma
+en1on
+e2n1op
+en1o2r
+en2os
+e3not
+e3now
+2e1nö
+en1ö2d
+4enpe
+e6nr
+en2san
+en5sche
+en7schen
+en4seb
+1ensem
+ens3eng
+en3sho
+en2sid
+en3s2ka
+en3s2po
+enst5alt
+en4s3tät
+4ensto
+en3stoc
+en5t4ag
+en3tanz
+1entd
+en4teb
+ente2n
+en6t5erb
+1entfa
+1entga
3entla
-ent5ric
-5entwic
-5entwu
+1entna
+3entspr
+3entw
+4entwet
1entz
-enu5i
-e3ny
-en8zan
-en1öf
-e1nös
-e1nüg
-eo1c
-e5o6fe
-e5okk
+3entzü
+e2n1uf
+e2n1um
+en1unf
+en1ur
+e3nus
+2enut
+e1nü
+4enwü
+e1ny
+enz3erf
+enz3erg
+enz3erk
+enz3ert
+e1ñ
+eo5a
+e1o2b1
+eo3ben
+e1of
+eo2fe
+e1oh
e1on.
-e3onf
-e5onk
-e5onl
-e5onr
-e5opf
-e5ops
-e5or.
-e1ord
-e1org
-eo5r6h
-eo1t
-e1pa
-e8pee
-e6p5e6g
-ep5ent
-e1p2f
-e1pi
-5epid
-e6pidem
-e1pl
-5epos
-e6pos.
-ep4p3a
-e1pr
-e1pä
+eo3na
+e1ond
+e1onf
+e1onl
+e1onr
+e1ons
+e1ope
+e3opf
+eop4t
+e1or
+e3or.
+e3orb
+e3ord
+eorgi1
+e3ort
+e3orw
+eo3s2
+e3os.
+eo1st
+eo3ul
+e1o2v
+e1ö2
+e1p
+e3pa
+epa4g
+e3p2f6
+1episo
+ep3le
+e2poc
+ep2pa
+ep4pl
+ep2pr
+ept2
+ep3ta
+ep4tal
+ep5ti
e1q
-e1ra.
-er5aal
-8eraba
-e5rabel
-er5a6ben
-e5rabi
+er1a
+e5ra.
+era2be
+e1rabi
er3abs
-er3ach
-era5e
-era5k6l
+er3abt
+e3rad.
+er3adm
+er3adr
+era5f4a
+era1fr
+era2g
+er3agi
+e1rai
+er3aic
+e2rak
+er3akr
+e1ral
+era5le
er3all
-er3amt
-e3rand
+er3ana
+er3and
e3rane
-er3ans
-e5ranz.
+e2ranh
+er3anm
e1rap
-er3arc
+er3apf
+er3ar
e3rari
-er3a6si
-e1rat
-erat3s
-er3auf
-e3raum
-3erbse
+e1ras
+e2r3a4si
+era2ß
+e2rath
+e3rati
+e1raub
+er3aue
+er3aug
+e1raum
+e1raw
+e1raz
+2e1rä
+e3räd
+er1äh
+er1äm
+er3ätz
+erb2e
+er3blu
+er3br
er1c
-e1re
+er3chl
+1erdb
+er3de
+2erdec
+erd3erw
+2ere
4e5re.
-er3eck
-er5egg
-er5e2h
-2erei
-e3rei.
-e8reine
-er5einr
-6eren.
-e4r3enm
-4erer.
-e6r5erm
-er5ero
-er5erst
-e4r3erz
-er3ess
-5erfül
-er8gan.
-5ergebn
-er2g5h
-5ergänz
-5erhöhu
-2e1ri
-eri5ak
-e6r5iat
-e4r3ind
-e6r5i6n5i6
-er5ins
-e6r5int
-er5itio
-er1kl
-3erklä
-5erlös.
-ermen6s
-er6nab
-3ernst
-6e1ro.
-e1rod
-er1o2f
+e3rech
+er3echs
+er1e4ck
+ere4dit
+er1eff
+er1e2h
+4e3r4ei.
+er1eig
+e2rein
+er3eing
+er3einr
+er3eis.
+ere2l
+e2r1ele
+4e3rem
+e5rem.
+e4remp
+er3emu
+4eren
+e5ren.
+e5rena
+e4rense
+e4r3entf
+e4rentn
+e3reo
+4e5rer.
+er3erf
+e2r1erh
+e2rerk
+4erern
+er1err
+er1ers
+e4rersc
+e2rert
+e2r1erw
+4eres
+e5res.
+er1ess
+er3e4ti
+er1eul
+ere3us
+er3e4vid
+er3fä
+4erfür
+3ergebn
+4ergehä
+erg3ise
+erg3s4
+e2r3h
+3erhab
+4e1ri
+e2riat
+e3rib
+6e3rie
+eri5e4n3
+erien5e
+e5rif
+erik6
+6e3rin.
+er1inb
+er1ind
+e4r1ini
+er1ink
+er1ins
+e4r1int
+e3rio
+er1ita
+2erkol
+erk5te
+erk5tr
+4erl.
+3erlebn
+4erln
+erm2
+er3ma
+erm3ers
+er3nan
+er2n1o4s
+e1ro.
+er3oa
+er1ob
+er1of
e1rog
-6e3roi
-ero8ide
-e3rol
+e2r1oh
+e1rok
+e1rol
+er3oly
e1rom
-e1ron
-e3rop8
-e2r1or
+e5ron
+er1o2p
+e4ro2r
e1ros
-e1rot
-er5ox
-ersch4
-5erstat
-er6t5ein
-er2t1h
-er5t6her
+e1rou
+e1row
+e1roz
+er1ö2
+e1röh
+4erök
+er5p
+er3ra
+er5rä
+2errü
+er3sa
+ers2au
+er5sen
+er7s2i
+er3sk
+er3smo
+er3sn
+er3sum
+er3s2z
+ert3abe
+ert2ak
+er3tä
+ert3ein
+er6terei
+er4tho
+4erti
+ert3ins
+er3to
+erts2e
2e1ru
-eruf4s3
-e4r3uhr
-er3ums
-e5rus
-5erwerb
-e1ry
-er5zwa
-er3zwu
-erä8m
-er5äs
-erö8
-e3rös.
-e6r1ü2b
-e1sa
-esa8b
-e8sap
-e6s5a6v
-e1sc
-esch4l
-ese1a
-es5ebe
-eserve5
-e8sh
-es5ill
+er1uhr
+er1u2m
+er1uns
+e3rus
+er1uz
+e1rü
+er3ü2b
+e5rüg
+2erv
+3erweck
+6erweis
+2erzy
+e4s3ab
+es4ach
+es3ad
+es3ak
+e5s4a4s
+es3aus
+es3av
+esä2c
+2esb
+e3sc
+es3cap
+e5s4ce
+esch4
+e6schan
+esch2n
+e6scu
+es1ebe
+es3ehr
+es3ein
+es1eis
+es1eta
+es3eva
+2esf
+6esh
+es2har
+es3he
+es2hu
+e3sid
+e5sie
+es1il
+es1ini
es3int
-es4kop
-e2sl
-eso8b
-e1sp
-espei6s5
+e3sir
+e7sis
+es3ke
+es3ki
+es3kl
+es3ku
+e4s3ky
+es3l
+es4log
+2esm
+e3sof
+e3sol
+eso2r
+es2ort
+es4pei
+e3spek
es2po
-es2pu
-5essenz
-e6stabs
-e6staf
-e6st5ak
-est3ar
-e8stob
-e1str
-est5res
-es3ur
-e2sz
-e1sü
+e5spor
+e5s4pra
+2esr
+1essay
+es3sc
+es5sec
+6essem
+ess4e3re
+es4s3erg
+2esso
+es2sof
+es2sp
+ess1pa
+es2st
+ess3tie
+es3str
+e5staa
+e2stab
+estab4b
+est1ak
+e3star
+e4starb
+es2tau
+es3taum
+e3stec
+est5eink
+e5stel
+es4t3eng
+es4t3erh
+es4t3ess
+e1stil
+estmo6de
+est3ori
+e1s2tr
+es3trop
+e1s2tu
+es3tus
+e3s4tü
+e2s1um
+es3ums
+es1ur
+es3w
+e3sy
+es3z
+e1ß
+eße3r2e
+2et
e1ta
-et8ag
-etari5e
-eta8ta
-e1te
-eten6te
-et5hal
-e5thel
-e1ti
-1etn
-e1to
-e1tr
-et3rec
-e8tscha
-et8se
-et6tei
-et2th
-et2t1r
-e1tu
-etu1s
-et8zent
-et8zw
+eta3b6
+et1am
+et4at
e1tä
+et1äh
+e3te
+e5te.
+et1ein
+e5t2en
+etend4
+e1t2h
+et3hai
+et3hal
+et3hä
+et3hei
+et3hü
+e3ti
+eti2m
+eti2ta
+e3to
+eto4b
+e4t1of
+etons4
+eto4s
e1tö
+4e1tr
+e4t3raum
+et3rec
+e2t3res
+et4ri
+et4ro
+et2s
+et3sc
+et5schu
+etsch3w
+et3se
+et3so
+et3sp
+et3sto
+et3str
+et3su
+et2ta2
+et4tang
+ett3au
+et2tei
+ette4n1
+ett1h
+et4t3r
+ett3sz
+et4t1um
+et1ups
e1tü
-eu1a2
-eu1e
-eue8rei
-eu5fe
-euin5
-euk2
-e1um.
-eu6nio
-e5unter
-eu1o6
-eu5p
-3europ
-eu1sp
-eu5str
-eu8zo
-e1v
-eval6s
-eve5r6en
-ever4i
+et4z3ent
+et3zo
+eu1a
+eu3ere
+eu3erz
+eu2esc
+eu2ga
+eug6er
+eug3l
+eu4gla
+eugs4
+euho2
+euil4
+eu1in3
+eu2kä
+e1um
+e3um.
+e3umb
+e3uml
+e3um4s
+eums1p
+eum5st
+2eun
+eu3n2e
+e3ung
+eu4nio
+eu1o2
+eu3p
+eu2rau
+eu3r2e
+eur4er
+1eu3ro
+eu4sk
+eu3sp
+e4ust4
+eu1str
+2eut
+eu5te
+eu3to
+2eux
+eu2zw
+e3ü
+2e1v
+4eve
+e2vela
+e2vent
e1w
-e2wig
-ex1or
-1exp
-1extr
-ey3er.
+2e3wa
+ewa3s
+e3wä
+ewä2s
+2ewe
+e2we.
+ew3et.
+e3wir
+ewi2s
+e3wit
+e5wo
+ew2s
+2ex.
+1exam
+ex3at
+1e6xem
+e4x1er
+e2x1in
+3exp
+2ext.
+e1xy
+2ey
+ey4n
+ey3st
e1z
-e1ä2
-e5ö8
-e1ü
-e8ßes
-fa6ch5i
-fade8
-fa6del
-fa5el.
-fal6lo
-falt8e
-fa1na
-fan4gr
-6fanl
-6fap
-far6ba
-far4bl
-far6r5a
-2f1art
-fa1sc
-fau8str
-fa3y
-2f1b2
-6f1c
-2f1d
+e3z2a
+e2z1enn
+e3zi
+ezin4
+ezi2s
+é1b
+é1c
+é1g
+é1h
+é1l
+élu2
+é1o
+é1p
+é1r
+é1t
+é1u4
+é1v
+é1z2
+è1c
+è1m
+è1n
+è1r
+ê1p
+ê4t
+6f.
+1fa
+3fa.
+fa1b
+fa2ben
+3fac
+fa4cheb
+fa2ch1i
+fa2cho
+2fad
+fa2da
+3fa1e
+fa3fa
+fa3g
+f2ah
+fa2ke
+f2al
+fa1l2a
+fal2kl
+fal6l5erk
+fal2s
+fal3te
+falt4s
+fal2z1
+2fanb
+fan3da
+2fanf
+fan2gr
+2fanl
+2fanr
+2fanw
+2f3anz
+2f1ap
+far2b3r
+3fari
+farr3s
+3f2art
+fa5ru
+f1arz
+3fas
+fa3s2a
+fa5se
+fa3sh
+2fat
+fa2to5
+2f1auf
+f3aug
+f1ausb
+3fav
+1fä
+fä1c
+fäh2r1u
+2f1ärm
+f1ärz
+fä2ßer
+2fäu
+2f1b
+2f1c
+2f1d4
+f3ds
1fe
-2f1eck
-fe6dr
-feh6lei
-f6eim
-8feins
-f5eis
-fel5en
-8feltern
-8femp
-fe5rant
-4ferd.
-ferri8
-fe8stof
-fe6str
-fe6stum
-fe8tag
-fet6ta
-fex1
-2ff
-f1fa
-f6f5arm
-f5fe
-ffe5in
-ffe6la
-ffe8ler
-ff1f
-f1fla
-ff3lei
-ff4lie
-ff8sa
-ff6s5ta
-2f1g2
-fgewen6
-4f1h
+3fe.
+fe4c
+f2ech
+fe5che
+4f3eck
+fe2dr
+fe2ei
+fe1em
+f4eie
+4feinh
+fei2nu
+fek2ta
+3fel
+fe2l1a
+fel4dr
+fel5eise
+4f1e2lek
+fe2l1er
+fe2l1o
+fel4soh
+fel3to
+3f2em.
+2femi
+fem4m
+fen3a
+fe4nä
+3fend
+fen3g
+fe2ni
+fe2no
+fen3sa
+fen7sc
+fenst2
+f1ent
+f2er.
+fe1r2a
+fe4rang
+fe4ranz
+fe2r3au
+3ferei
+fer3eis
+fer2er
+fer3erz
+2f1erfa
+fe1ro
+f4erpa
+f2ers.
+f2ert
+f1erw
+fe2s
+fe4st1a
+fes3tat
+fest3ei
+2f3e4ta
+3fete
+fet4t1a
+3few
+2f1ex
+4fexp
+3fez
+1fé
+4f1f
+ff1ar
+ff3at
+ff1au
+ff2e
+ffe2e
+f2f3ef
+ff3ei
+ffe3in
+ffe2m
+ff3emi
+f5fen
+f5fer
+fff4
+ffi3k
+ff6lei
+ff3li
+f3flu
+f3flü
+ff1ox
+ff1rak
+f3f4rä
+ff3ro
+ff3rö
+ff3ru
+ff2s
+ff3sho
+fft2
+fft3h
+2f3g4
+fge1
+2f1h
1fi
-fid4
-fi3ds
-fieb4
-fi1la
-fi8lei
-fil4m5a
-f8in.
-fi1na
-8finf
-fi8scho
-fi6u
-6f1j
-2f1k2
-f8lanz
-fl8e
-4f3lein
-8flib
-4fling
-f2lix
-6f3lon
-5flop
-1flor
-5f8läc
-3flöt
+3fi.
+fi3at
+fien3
+fi1er2f
+fi2ki
+fi3kl
+fi2k1o4
+fi2kr
+fi2l3an
+fi3l4auf
+fil3d
+fi2les
+fi5li
+fi6lin
+fil2ip
+fin4a
+fi3ni
+fin4s3
+2f1int
+fi3ol
+fi2r
+fi3ra
+3fis
+fi3s4a
+fisch3o
+fi3so
+fi5s2p
+fi4s3t
+fi3te
+fi2t1o2
+fit3st
+fi3tu
+5fiz
+2f1j
+2f1k4
+f2l4
+2fl.
+f3lad
+1f4lä
+3fläc
+2f5läd
+f5län
+f5läu
+2f3leb
+2f3lein
+f3ler
+3flim
+fli4ne
+2f5lon
+1f4lop
+1f4lot
+flo2w
+f4lu
+f6lug
+flug1a
+f4lü
2f1m
-2f1n
+2f3n2
+fni2s
1fo
-foh1
-f2on
-fo6na
+fob4l
+2f1of
+fo2na
+fon3st
+fo2nu
2f1op
-fo5ra
-for8mei
-for8str
-for8th
-for6t5r
-fo5ru
-6f5otte
-2f1p8
-f1q
-fr6
-f5ram
-1f8ran
-f8raß
-f8re.
-frei1
-5frei.
-f3reic
-f3rest
-f1rib
-8f1ric
-6frig
-1fris
-fro8na
-fräs5t
-2fs
-f1sc
+fo1ra
+4f3org
+fo3rin
+3form
+for4m3a4g
+forni7er.
+for4st
+for2t
+for4te
+for4th
+fort3r
+for3tu
+2fo2x
+2f1öf
+2f1ök
+2f1öl
+förs3
+2f3p2
+fper1
+2f1q
+f2r2
+f4rac
+f5rad
+fra4m
+f3rand
+1f4rän
+2f5re.
+f5ref
+2freg
+frei3ba
+frei5n2
+f3rep
+f4reu
+2f3ric
+fri3d
+fri2e
+2frig
+fri3k
+1f4ris
+f3roc
+1f4ron
+fro2s
+fru2h
+4fs
+fs1all
+f2s1an
+fs3ar
+f2s3as
+fs1auf
+f2saut
+f3sc
+f4schan
+f5schl
+fs4co
+fs1e2b
+fs3ehr
+f2s1em
+f4s1ent
f2s1er
-f5str
+fse4t
+f4s1eta
+f3si
+fsi2d
+f2s1o2
+fs3ol
+f3span
+f2s1pas
+fs1pen
+f3s2pl
+f3s2por
+f2s1pr
+fs2pra
+fs2pri
+fs3s2
+f1s2t
+fs3tak
fs3tät
-2ft
-f1tak
-f1te
-ft5e6h
-ftere6
-ft1h
-f1ti
-f5to
-f1tr
-ft5rad
-ft1sc
-ft2so
-f1tu
-ftwi3d4
-ft1z
+f4stäti
+f4stech
+f3stei
+f5stel
+f3stern
+fs3th
+f3st4r
+f4s3tres
+fs4tro
+f3stü
+f4s3tüte
+f2s1un
+f2sü
+f5sy
+4f1t
+f4ta.
+ft1a2be
+ft1af
+ft1al
+ft1an
+ft3anz
+ft1ar
+f3tat
+ft1auf
+ft1e2h
+ft1eig
+ft1ein
+ft1eis
+fte3ma
+f4t1ent
+f2t3e4ti
+f2t1h
+f4t3hei
+f3ti
+ft1op
+ft3rau
+f2t3ro
+ft3rö
+f3t4ru
+ft2s1
+ft4s3a2
+ft3sc
+ft6sche
+ftse2
+ft3st
+fts3tan
+ft4s3tä
+ft5sti
+ft3t
+ft1url
+ft3z2
1fu
-6f5ums
-6funf
-fun4ka
-fu8ßend
-6f1v
+2fum
+2f1unf
+2f1u4ni
+fun2kl
+fun4ko
+fun2k3r
+2f1unm
+2funt
+furch4
+fu4re.
+fu5ru
+fus2sa
+fus2s1p
+fus2st
+fu2ß1er
+3fut
+1fü
+2füb
+fü2r
+2f1v
2f1w
+fwa3s
+1fy
2f1z
-1fä
-fä1c
-8färm
-6fäug
-fä8ß
-föde3
-8föf
-3för
-1fü
-fün4f3u
+fz2a
+fzei8tend
+fz4s
+6g.
1ga
-ga6bl
-6gabw
-8gabz
-g3a4der
-ga8ho
-ga5isc
-4gak
-ga1la
-6g5amt
-ga1na
-gan5erb
-gan6g5a
-ga5nj
-6ganl
-8gansc
-6garb
+5ga.
+gabe4n
+2gabf
+gab5l
+ga1br
+ga3bu
+2gabz
+ga1c
+ga3di
+ga1e
+ga1fl
+ga3g
+ga1k
+ga2ka
+ga1l2a
+5g4amo
+2g1amt
+2ganb
+gan3d
+g1anf
+gan2g1a
+4gangeb
+gan2gr
+2ganh
+2g3anku
+2ganl
+g3anla
+3gano
+2ganw
+ga1ny
+2g1arb
2g1arc
+3gard
2g1arm
-ga5ro
-6g3arti
-ga8sa
-ga8sc
-ga6stre
-2g1atm
-6g5auf
-gau5fr
-g5aus
-2g1b
-g5c
-6gd
+ga3r2o
+g1arti
+2garz
+ga2s1a
+ga4sal
+gas3ei
+ga2si
+ga2so
+gas3s
+ga4st
+gas4t3el
+gas4tra
+ga3t2a
+ga3th
+2gatm
+gat4r
+gau1c
+2g1auf
+g2auk
+2g1aus
+2g1aut
+1gä
+2g1äp
+g1ärz
+3gäs
+gä4u
+4g1b
+g5be
+gber2
+g5bo
+2g1c
+2gd
g1da
-1ge
-ge1a2
-ge6an
-ge8at.
+gda3de
+g3dal
+gd1au
+g3de
+g4d1er
+gd1in
+g1do
+g3dö
+g1dr
+gd3re
+gds2
+gd3sz
+gd1t4
+gd1un
+gd1ur
+1g4e
+ge3a2
+ge3ba
+gebe4am
+geb4r
+ge3c
+ge3d
ge1e2
-ge6es
-gef2
-8geff
-ge1g2l
+ge3ec
+ge2es
+gef4
+ge3ha
ge1im
-4g3eise
-geist5r
-gel8bra
-gelt8s
-ge5lö
-ge8nin
+ge1ins
+ge1inv
+ge1ir
+ge2is
+4geise
+gei3sh
+g2el
+gel6ders
+ge3le
+ge4l3ers
+ge4less
+ge3lor
+gel3sa
+gels2t
+gel3ste
+gel3sz
+gel3t2a
+ge3lum
+ge3lü
+gel3z2
+3gema
+3gemä
+3gemö
+ge3na
+ge4nam
+gen2au
+gen4aug
+gen2d3r
+ge3nec
+gen3eid
+gen3ern
+gen3g
gen3k
-6g5entf
-ge3nä
-ge1or
+ge3nor
+gens3am
+gen7stern
+gen3sz
+g1entf
+gen3th
+geo2r
+ge3ou
+ge3p6
+3ger.
ge1ra
-ge6rab
-ger8au
-8gerhö
-ger8ins
+ge2rab
+ge2ral
+ger3amp
+3gerä
+g5ereig
+ge5rem
+ge4reng
+ge4rens
+ge4r3ent
+ger2er
+germ4
+ger3no
ge1ro
-6g5erz.
-ge1rä
-ge1rü
-ge1s
-ges2p
-ge2s7te.
-ge2s7ten
-ge2s7ter
-ge2s7tik
-ge5unt
-4g3ex3
-2g1f8
-2g1g
-g1ha
-6g1hei
-5ghel.
-g5henn
-6g1hi
-g1ho
-1ghr
-g1hö
+ge1r2ö
+ger4sto
+3gerw
+ges2
+ge5s4am
+ges3auf
+ge5s4c
+ges3elt
+ge2s3er
+ge3ses
+ge3si
+ge3sp
+ges4pi
+gess4t
+ge1st
+ge3ste
+ge5stei
+ges4tem
+ge4s3ter
+get2a
+4getap
+ge3t2u
+ge1ul
+4g5ex
+2g3f2
+4g1g
+gga4t
+g5ge
+gge2ne
+g2g3l
+gg4lo
+g2g3n
+gg4r
+g3grä
+2g1h
+4gh.
+3g2het
+3g2hie
+gh3l
+3gh2r
+gh3te
+g2hu
+gh1w
1gi
-gi5la
-gi8me.
-gi1na
-4g3ins
-gis1tr
-g1j
-2g1k
-8gl.
-1glad
-g5lag
-glan4z3
-1glas
-6glass
-5glaub
-g3lauf
-1gle.
-g5leb
-3gleic
-g3lein
-5gleis
-1glem
-2gler
-8g3leu
-gli8a
-g2lie
-3glied
-1g2lik
-1g2lim
-g6lio
-1gloa
-5glom
-1glon
-1glop
-g1los
-g4loss
-g5luf
-1g2ly
-1glü
-2g1m
-gn8
-6gn.
-1gna
-8gnach
-2gnah
-g1nas
-g8neu
+gi2a
+gi3alo
+gie3f
+gie3g
+gi2e1i
+gi2el
+gien2e1
+gie3re
+gie3t
+gi2gu
+gi2m
+gi4mes
+3gin
+4g1ind
+gi3ne
+gin2ga
+4g1ins
+gi2o
+3gip
+gi3ro
+2gisel
+git2a
+gi3tu
+gi2us
+2g1j
+2g5k
+g2l
+6gl.
+1gla
+2g3lab
+3glad
+2g3lag
+3glanz
+3g4laub
+2g3lauf
+1glä
+3glät
+2gläuf
+1gl4e
+2gle.
+2g3leb
+g5lec
+g3leg
+2g3leh
+g4leic
+4glein
+glei4t5r
+3glem
+g3len
+4g5ler
+g3lese
+g3lev
+g3li
+g4lia
+2glib
+3g4lid
+5g4lie
+2glif
+1g4lik
+g5lin
+1g4lio
+gli2s
+4glisc
+1g4lit
+1g4liz
+1g4loa
+g4lob
+1g4loc
+g5loch
+1g4lok
+g4lom
+1g4lop
+2glos
+1g4lot
+g3lö
+2gls
+2glu
+glu2t
+3glü
+3gly
+4g1m2
+gn2
+4gn.
+g2na
+g6na.
+g6nat
+1g2nä
+g5neh
+2gneu
+4gn3g
+2gni2
g2nie
-g3nis
-1gno
-8gnot
+g2nif
+g4nin
+4g5nis1
+g2no
+gno1r
+2g3not
+4gnp
+4gns
+4gnt
+2gnu
+3g2num.
+g2ny
+4gn3z
1go
-goe1
-8gof
-2gog
-5gogr
-6g5oh
-goni5e
-6gonist
-go1ra
-8gord
-2g1p2
-g1q
-1gr4
-g5rahm
-gra8m
-gra4s3t
-6g1rec
-gre6ge
-4g3reic
-g5reit
-8grenn
-gri4e
-g5riem
-5grif
+3go.
+go4a
+goa3li
+go3be
+2g1of
+2g1oh
+go1i
+gol2a
+3gon
+2g1ope
+2g1opf
+3g2o1ra
+3gos
+go2si
+go3st
+go3t2h
+got6t5erg
+3gou
+3go1y
+1gö
+g1öf
+2g3p2
+2g5q
+1g2r4
+gra2bi
+2gradl
+g3rah
+3grai
+2g3rak
+gram8m7end
+3gran
+g3räd
+2gräu
+2g5re.
+g4reb
+2g3rec
+g3rede
+g4re2e
+2g3reic
+g3reit
+g3rek
+g4rem
+2g3renn
+gre3no
+gren6z5ei
+2gret
+2g3ric
+gri2e
+g3riese
+3grif
2grig
-g5ring
-6groh
-2grot
-gro6ß
-4grut
-2gs
-gs1ab
-g5sah
-gs1ak
-gs1an
-gs8and
-gs1ar
-gs1au
-g1sc
-gs1ef
-g5seil
-gs5ein
-g2s1er
-gs1in
-g2s1o
-gso2r
-gs1pr
-g2s1u
-2g1t
-g3te
-g2t1h
+2g3ring
+gro3be
+2groc
+2groh
+gron4
+g4ros
+gross5el
+gro4u
+2g3röh
+g4ruf
+2g3rui
+2grum
+3g4runs
+3g4rup
+2g3rut
+grü1b
+2g3rüc
+3g4rün
+4g2s1
+gs3ad
+g4sa2g
+g3s2ah
+gs5a2k
+g3sal
+gs3ama
+gs3amb
+gs3an
+gs3ar
+gs3as
+g5sat
+gs3aug
+g5sät
+g3sc
+g6sca
+g6sce
+gsch4
+g4schan
+g6schef
+gs4chi
+gs3cr
+gse2
+g3s2eil
+g3sel.
+g3seln
+g4s5er
+gse4t
+gsi2d
+g5sil
+g4s3l
+gso2
+g3sol
+g5soz
+g3spek
+gs2pi
+gs6pie
+g4s3pin
+g5s4por
+gsrü2
+gs5s4
+g3star
+gs4tati
+gst1au
+g4stä
+g5stäm
+gs3te
+g3s4tel
+gst3ent
+gst3err
+gs4teu
+g3stir
+g3s2to
+g4s3tor
+gs2tö
+gs4tör
+g1stre
+gs4t3ros
+gs3trü
+g3stu
+gs2tüc
+g4s5w
+g3sy
+2g1t2
+g5te
+g2t3h
+g5ti
+gti2m
+gts3
+gt3t
+gt3w
1gu
-gu5as
+gu1an.
+gu1ant
+gu1c
gu2e
-2gue.
-6gued
-4g3uh
-8gums
-6g5unt
-gut3h
-gu2tu
-4g1v
-2g1w
-gy1n
-g1z
-1gä
-8gä8m
-6gärm
-1gö
+guet4
+2g1u2f
+2g1uh
+gu3ins
+gu1is
+gu5me
+gun2e
+2g1unf
+g2ung.
+gunge6
+4gungew
+2g1ungl
+3g2un4s
+4gunt
+gu3re
+2g1url
+gu4s
+gus3a
+gu5sc
+guschi5
+gu5se
+gus5se.
+gus2st
+5gu2t1
1gü
-6güb
-1haa
-hab8r
-ha8del
-hade4n
-8hae
-ha5el.
-haf6tr
-2hal.
+2güb
+gür1
+güs1
+2g1v
+4g5w
+1gy
+gy3n
+2g3z2
+4h.
+2ha.
+hab2a
+hab2e
+h2abs
+ha2cho
+hade2
+ha2del
+h3adle
+ha3dri
+ha1el
+ha3fa
+haf5fl
+haft4s
+hafts3p
+ha3go
+ha3ha
+hai1es
+h2aka
+haki3
+ha1kl
+4h2al.
ha1la
-hal4b5a
-6hale
-8han.
-ha1na
-han6dr
-han6ge.
-2hani
-h5anth
-6hanz
-6harb
-h3arbe
-h3arme
-ha5ro
-ha2t1h
-h1atm
-hau6san
-ha8ß
-h1b2
-h1c
-h1d
+halan4c
+ha4lang
+ha2lau
+hal2ba
+hal4bei
+halb3r
+halb5s
+2ha3le
+ha3li
+hal6lerf
+h1alp
+hal4st
+halt3r
+h1amt
+h2an.
+2hana
+h2and
+h4ann
+2hanr
+2hant
+ha3os
+2hap
+ha2pr
+h4a3ra
+2h1arb
+h2ard
+har3ma
+har4me.
+har4mes
+har5te
+har4th
+h1arti
+2has.
+4ha3sa
+ha5sta
+hau3f4li
+2h1aufm
+h1aukt
+hau2sa
+hau4sc
+hau5stei
+hau2ta
+2hauto
+hau2tr
+h1äff
+3häp
+h1ärz
+hä6s5chen
+häu4s3c
+hä1usp
+2h5b6
+hba2r3a
+2h1c
+2h1d
+2hea
+he3al
+1heb
+he3be
+he4b1ei
he2bl
-he3cho
-h3echt
-he5d6s
-5heft
-h5e6he.
-hei8ds
+he3br
+he5che
+he1cho
+he2el
+hee3le
+hee2s
+he2fa
+he2fä
+he2f1ei
+he3fen
+hef3erm
+2heff
+he4f3ing
+he2f3l
+he2f3r
+he3fri
+he2fu
+he2i
+h1eie
h1eif
+h1eig
+heim3p
+hei4mu
2hein
+heine2
+hei4neh
+h1eink
he3ism
-he5ist.
-heit8s3
-hek6ta
-hel8lau
-8helt
-he6mer
-1hemm
-6h1emp
-hen5end
-hen5klo
-hen6tri
+he3ist
+heit6s3
+h1eiw
+hekt5a
+he2l3au
+hel1ec
+h1e2lek
+he3len
+hel3ers
+he3li
+hel4l3au
+hel4mei
+he3lo
+he4lö
+3hemd
+he3mi
+3hemm
+4h1emp
+h2en.
+he6n3a2
+he4nä
+hend4s
+h4ene
+he2n1e2b
+hen3end
+he2net
+he2ni
+he2no
+henst2
+h1ents
he2nu
-8heo
-he8q
-her3ab
-he5rak
+hen3z
+4he2o
+he3on
+he3op
+he3ph
+her3a2b
+he2ral
her3an
-4herap
-her3au
-h3erbi
-he1ro
-he8ro8b
-he4r3um
-her6z5er
-he4spe
-he1st
-heta6
-het5am
-he5th
-heu3sc
-he1xa
-hey5e
-h1f2
-h1g
-hgol8
-h1h
-h1iat
-hie6r5i
-hi5kt
-hil1a2
-hil4fr
-hi5nak
-hin4ta
-hi2nu
-hi5ob
-hirn5e
-hir6ner
-hi1sp
+he3ras
+herb4
+he4reck
+4her4eig
+he4r3eis
+he2rel
+h1erfo
+h1erfü
+he6r5innu
+h1erke
+2herm
+he3ro
+he4r3o2b
+h1erö
+hert2
+her3th
+her2z1w
+he2s3tr
+he2tap
+heter2
+he3th
+he5ti
+he3t6s
+he2u
+heu3g
+he3x
+he1x2a
+he1y2
+1hè
+2h5f4
+hfel2l1
+hfi2s
+2h5g2
+hge1
+hgin4s
+2h1h
+2hi.
+2hi2a
+hi1ce
+2h2i3d
+h3i4di
+hi2e
+hi3ens
+hie4r3in
+hif3f6r
+hi2kr
+h2il
+hi2l5a4
+hil2fr
+hi2n
+hi3nel
+hin2en
+hi5n4i
+hi3no
+hin4t3a
+2hio
+hi4on
+hi3or
+hi3os
+4hi2p
+hi3pe
+hip1h
+hip1i
+h2i2r
+hi3ra
+2hi3re
+hi3ri
+hir4n
+hi3ro
+his2a
+hi4se
+hi5s2p
+hi4st
hi1th
-hi5tr
-5hitz
+hi5ti
h1j
-h6jo
-h1k2
-hlabb4
-hla4ga
-hla6gr
-h5lai
-hl8am
-h1las
-h1laß
-hl1c
-h1led
-h3lein
+2h1k4
+2hl
+h4lac
+h3lad
+h4laf
+h3lai
+h5land
+hl3anz
+hl1ar
+h3las
+h3lat
+h3laug
+h3laut
+h3law
+h3läd
+hl1är
+h3läs
+h3läu
+hlb4
+hl3d4
+h5le.
+h3leb
+h3led
+hle3e
+h3leh
+h2lein
+hle3l
+h5len.
+hlen3g
+hl2enn
+h3ler
h5ler.
-h2lif
-h2lim
-h8linf
-hl5int
-h2lip
-h2lit
-h4lor
-h3lose
-h1läs
-hme5e
-h2nee
-h2nei
+hle2r3a
+h5lere
+h4l1erg
+h4l3ernä
+hle3run
+hl1erw
+h3les
+h4lesi
+h3lex
+hlg4
+h2li
+h3lic
+h3lik
+hl1ind
+hll2
+hlm2
+h2lo
+h5loc
+hl1of
+hl1op
+h6lor
+hlo2re
+h3losi
+h3lö
+h5löc
+h4lös
+hl2san
+hl2ser
+hl3sku
+hl3slo
+hl3sp
+hlt2
+h3luf
+h3luk
+h3lüf
+hlzu5
+2h1m
+h2ma
+h4mab
+h3mag
+h3man
+h3mar
+h3mä
+h4mäc
+h4mäh
+h4mäl
+h4mäu
+h3me.
+hme1e
+hme1in
+hmen4s
+hmen6sc
+hme2ra
+h2mi
+h3mir.
+h2mo
+h3mot
+h3mö
+hm3p2
+hm3sa
+hm2s1p
+h2mu
+h5musi
+h2mü
+2hn
+h2n2a
+hn3ab
+h3nac
+hn3ad
+h3nam
+hn3an
+h4nat
+h5nati
+h2nä
+hn1är
+h3näs
+hn3d4
+hn2e
hn3eig
+hn3ein
h2nel
-hne8n
-hne4p3f
-hn8erz
-h6netz
+hne4n1
+h2nep
+hner3ei
+h5nerz
+h2neu
+hn3ex
+hn1g
+hngen5
+h2nic
+hn1id
+h2nie
+hn3im
+hn1in
h2nip
-h2nit
-h1nol
-hn5sp
-h2nuc
-h2nud
+hn3k4
+h3nof
+hn3s2k
+hn4th
+hnts2
h2nul
-hoch1
-1hoh
-hoh8lei
-2hoi
-ho4l3ar
-1holz
+hn1unf
+h3nunge
+ho3be
+ho2bl
+ho2c
+ho4ch5
+ho3ck
+ho4cka
+ho7cker.
+hoe4
+ho2ef
+ho4fa
+ho2f3r
+hohen3
+hol1au
+ho2l1ei
+hol3g4
+2holo
+ho4lor
+1hols
+h3oly
+3holz
+hol6zene
+hom2e
+ho2mec
+ho2med
+ho5mu
h2on
+hon3str
+2hoo
+2hop
ho1ra
-6horg
-5horn.
+hor3d
+h1org
ho3sl
-hos1p
-ho4spi
-h1p
-hpi6
+ho4sp
+ho4st
+4hot.
+ho5th
+4hot3s2
+1hou2
+3hov
+4ho2w
+how1e
+h1o2x
+ho1y2
+1hö
+hö2c
+hö3ck
+h2ör
+hö4s
+hös3c
+h1öst
+2h3p2
h1q
-6hr
+4hr
+hr1ac
+hr3a2d
h1rai
-h8rank
-h5raum
+h1rane
+h3raum
+h3räu
hr1c
-hrcre8
-h1red
-h3reg
-h8rei.
-h4r3erb
-h8rert
-hrg2
-h1ric
-hr5ins
-h2rom
-hr6t5erl
-hr2t1h
-hr6t5ra
-hr8tri
-h6rum
-hr1z
-hs3ach
-h6s5amt
-h1sc
-h6s5ec
-h6s5erl
-hs8erle
-h4sob
-h1sp
-h8spaß
-h8spel
-hs6po
-h4spun
-h1str
-h4s3tum
-hs3und
-h1sü
-h5ta.
-h5tab
-ht3ac
-ht1ak
-ht3ang
-h5tanz
-ht1ar
-ht1at
-h5taub
-h1te
-h2t1ec
-ht3eff
-ht3ehe
-h4t3eif
-h8teim
-h4t3ein
-ht3eis
-h6temp
-h8tentf
-hte8ren
-h6terfü
-h8tergr
-h4t3erh
-h6t5ersc
-h8terst
-h8tese
-h8tess
-h2t1eu
-h4t3ex
-ht1he
-ht5hu
-h1ti
-ht5rak
-hts3ah
-ht1sc
-ht6sex
-ht8sk
-ht8so
-h1tu
-htz8
-h5tüm
-hub5l
-hu6b5r
-huh1l
-h5uhr.
-huld5a6
-hu8lent
-hu8lä
-h5up.
-h1v
-h5weib
-h3weis
+hr3d
+hr2e
+h2rec
+h3r4ech
+h3red
+h3ref
+h4rei.
+h3reic
+h4r5eig
+h3rel
+h3ren
+h3rep
+h4r3erla
+h3rerle
+h6rerleb
+h3re4s1
+hre2t
+h2r3eta
+h3rev
+hrf2
+hrg4
+h3ric
+hri4e
+h3riesl
+h3rin
+hr1ind
+h4rine
+hr1ins
+h4ris
+h2rob
+h3roh
+h3rol
+h4rom
+h4ron
+h2ror
+h3rou
+hr2s1ac
+hr2s3an
+hrs1au
+hr4se
+hr2s1en
+hr2ser
+hr2set
+hr6s1in
+hrs3k
+hr4s1of
+hrst2
+hr2su
+hr4sw
+hr4tab
+hr2tan
+hr2t3ri
+hr2tro
+hrt2se
+h1ru
+h3ruh
+hr1ums
+h3rut
+h3rü
+hr3üb
+h2ry
+hrz2
+4hs
+h2s1ach
+h2s1an
+h2s1au
+h4schan
+hs1e4c
+hs2ei
+hs3eins
+hs3eis
+h3sel
+h3sen
+h3ser
+h4s1erl
+h3sex
+h2s1ing
+hs3l
+h2s1of
+h2s1par
+h2sper
+h3s2por
+h2sprä
+hs3s2
+h2stal
+hst3alt
+h2stau
+h1stec
+h3s4terb
+hs1the
+h1s2ti
+h2s3tie
+hs4tief
+h2stor
+h1s2tr
+hst3ran
+hst3ri
+h1stun
+h2s1un
+hs2ung
+h1sy
+4h1t
+h2t1a
+htab2s
+h3t4akt.
+h3takts
+h3t2al
+h4t3alt
+h4tam
+ht3a4n
+ht5ane
+h3t4ank
+h4t3ass
+h4tasy
+ht3a2t
+h2t1är
+h5te.
+h2t1e4c
+h3tech
+h2t1ef
+ht1e2h
+h3teha
+h2teif
+h4t1eim
+ht1ein
+h2t1eis
+h4t3elit
+h4temp
+h4tentf
+h4t3ents
+ht3erfo
+ht3erfü
+h2t1erh
+h2t1erk
+ht4erko
+h4t3erre
+ht3ersc
+h6t5erspa
+h4t3erst
+h2t1erz
+hte2s
+h4t3ese
+h4t3ess
+h5tet
+ht1eu
+h2t1ex
+h2t1h
+h3ti
+h4t1in
+hti2s
+h2t3oly
+h2top
+h2tö
+h3töp
+h4t3rak
+ht3rand
+h2t3rat
+ht3raus
+h4tref
+ht4ri
+h2t5rin
+h2t3rol
+h2t3ros
+h2t3rö
+h2t3ru
+h2t3rü
+ht2sen
+ht3spri
+ht4stab
+ht4s3tur
+ht4s3tür
+ht3t
+htti2
+htue3
+ht1und
+h2t1urs
+htwa5re
+ht3z4
+hu2b
+hub1a
+hu4b3ei
+hu4b1en
+hub3l
+hub5r
+hu1c
+hu2h1a
+hu2h1i
+huko3
+huk3t6
+hu2l3a
+hu2lä
+hu2l3ei
+hu4l3eng
+hu4lent
+hu2ler
+hu2let
+hu2l1in
+hu2lo
+hu3ma
+h1ums
+h1una
+huni1
+2hunt
+h1up.
+h1ups
+2hur
+hur3g
+hu3sa
+hu2sc
+hu2so
+hus4sa
+hu2tab
+hu3t2h
+hu2ti
+hut2t
+hut4zen
+hut4z3er
+hutz1i
+h2ü
+hü1bel
+h4übs
+hüf2
+hüh3
+hühne4
+hüs3
+2h1v
+hvi2
+hvil4
+2hw
+h2wal
+hwas7
+hwe1c
+h1weib
+h1wet
+3hyd
+1hyp
+hy2pe.
h1z
-hä8kl
-häl8s
-häma8tu8
-hä8sche.
-hät1s
-häu4s3c
-2hö.
-2höe
-8höi
-hö6s
-hös5c
-hühne6
-hül4s3t
-hütte8re
-i5adn
-i1af
-i5ak.
-i1al.
-i1al1a
-i1alb
-i1ald
-i5alei
-i1alf
-i1alg
+hz4s
+2i.
+2ia.
+ia1b4
+iab5s
+2iac
+i5ad.
+i3adn
+iaf4l
+i4a3g
+i3ak.
+i1akt
+2i1al
+i5al.
+i3al3a
+ia2lä
+i3al3b
+i3alc
+i3al3d
+i3alei
+i3alent
+i3alerf
+i3alerh
+i3a4l3erm
+i3a2let
+i3alf
+i3alg
i3alh
-i1alk
-i1all
-i1alp
-i1alr
-i1als
-i1alt
-i1alv
-i5alw
-i3alz
-i1an.
-ia5na
-i3and
-ian8e
-ia8ne8b
-i1ang
-i3ank
-i5ann
-i1ant
-i1anz
-i6apo
-i1ar.
-ia6rab
-i5arr
-i1as.
-i1asm
-i1ass
-i5ast.
-i1at.
-i5ats
-i1au
-i5azz
-i6b5eig
-i6b5eis
-ib2le
-i4blis
-i6brig
-i6b5unt
-i6büb
+i3a2lia
+i3alj
+i3al3k2
+i5al3l
+i3alm
+i3aln
+ia2lor
+i3alp
+i3alr
+i3als
+i3al3t4
+ia2lu
+i3alv
+i3alw
+i3al3z2
+2ian
+i5an.
+i1ana
+ia2nal
+i1anc
+i5and
+ia3n2e
+i3ann
+i2ano
+i5ans
+i3ant
+i3anz
+ia3p2f
+ia1q
+i3ar
+ia2ra
+iard2
+2i3as
+i5as.
+i4asc
+ia3sh
+i4asi
+i4a3sp
+iast4
+ia5sta
+ia1str
+i5at.
+ia4ta
+i3at2h
+1iatr
+i3ats
+i3au
+ia3un
+2iav
+i1äm
+iär2
+i1är.
+i1ärs
+i3ät.
+iä5te
+i3ät3s
+i1b
+i2b1ar
+i2b1auf
+ib2bl
+i2b1ei
+ibe4n1
+ibi4k
+i3b4la
+i3b4le
+i2b1ö
+i2b3rä
+ib3ren
+ib2s
+ib3sa
+ib3sp
+ib3sta
+ib4ste
+i2bunk
+i2b3unt
+ibus3
+2ic
+ich1a
+ich3ä
i1che
-ich5ei
-i6cherb
+ich3ei
+i3cher
i1chi
-ich5ins
-ich1l
-ich3m
-ich1n
+i2chin
+ich3l
+i3chlo
+ich5m
i1cho
-icht5an
-icht3r
+i2ch3r
+ich2t3r
i1chu
-ich1w
-ick6s5te
-ic5l
+ich3w
+i2cka
+i3ck2e
+icks2
+i1cr
+i5cu
i1d
-id3arm
-3ideal
-ide8na
-3ideol
-ide5rö
-i6diot
-id5rec
-id1t
-ie1a
-ie6b5ar
-iebe4s3
-ie2bl
-ieb1r
-ie8bra
-ie4bre
-ie8bä
+i3d2am
+id2an
+i2d1au
+1i2dee
+id1ei
+i3del
+ide5l2ä
+ide3le
+ide1ra
+ide3so
+1i2dio
+i2dol
+1idol.
+i3dos
+i2d3r
+id4ra
+id2s1p
+id1t4
+1i2dy
+ie5a2
+ie2bä
+ie2b3l
+ie2br
+ieb4sto
+ieb4str
+ie1c
+ie2cho
+ie4ck
+ied3g
ie2dr
-ie1e8
-ie6f5ad
-ief5f
-ie2f1l
-ie4fro
-ief1t
+ie1e2
+ie2f1ak
+ie2f1an
+ie2fau
+ie3fer
+ief3f4
+ie2f3l
+ie2f1r
+ie2g5l
+ie3g4n
+ie2g3r
+ieg4ra
+iegs3c
+ie3her
i1ei
-ie4l3ec
-ie8lei
-ie4lek
-i3ell
-i1en.
-i1end
-ien6e
+ie2l1a2
+iel3ad
+ie3las
+iel3au
+iel3d
+i2ele
+iel1ec
+i2eli
+i1ell
+ielo2b
+i2els
+iel3sp
+iel3sz
+ielt4
+iel3ta
+i1en
+i3en.
+i3ena
+ie4n1ag
+i3e4nä
+i3end
+ie2n1e2b
+ien2er
+ie4nerg
+ie3nern
i3enf
-i5enn
-ien6ne.
-i1enp
-i1enr
-i5ensa
-ien8stal
-i5env
-i1enz
-ie5o
-ier3a4b
-ie4rap
-i2ere
-ie4rec
-ie6r5ein
-ie6r5eis
-ier8er
+i3en3g
+i3enh
+i3enj
+i3enk
+i3enm
+i3enn
+i3e2no
+i3enö
+i3enp
+i3enr
+ien5s2e
+ien2st
+iens4tr
+ienst5rä
+ien3sz
+i3env
+i3enw
+i3enz
+ie1o2
+ier3a2
+ie2rap
+ie2rec
+ie3rel
+ie3r2er
+ie4rerf
+ier4ert
+ie4r3erz
+ie3res
+i3ereu
+ier3k2
+i1ern
i3ern.
-ie8rum
-ie8rund
-ie6s5che
-ie6tau
-ie8tert
-ie5the
-ie6t5ri
-i1ett
-ie5un
-iex5
-2if
-i1fa
-if5ang
-i6fau
-if1fr
-if5lac
-i5f6lie
-i1fre
-ift5a
-if6t5r
-ig3art
-2ige
-i8gess
-ig5he
-i5gla
-ig2ni
-i5go
-ig3rot
-ig3s2p
-i1ha
-i8ham
-i8hans
-i1he
-i1hi
-ih1n
+ier5ni
+iers2e
+ier4s3eh
+ier7sei
+ier3sta
+ier3ste
+iesen3s4
+ie3su
+ie2t1a
+ie4tei
+ie4t3erh
+ie4t3ert
+ie2th
+iet3ho
+ie4t1o
+ie2t3ö2
+iet4se
+i3ett
+ieu2e
+ie1un
+i1eura
+i1ex
+4if
+i2f1arm
+if3au
+i3fe
+i5f2en
+ifen3st
+if1erg
+if1erh
+ife4s
+if2fl
+i3fi
+if3l
+i1f4la
+if1lö
+if5lu
+i1flug
+i1flü
+i1fö
+if3r
+if4ra
+i1frau
+i1f4re
+if5reg
+if2s
+if3se
+if3sp
+if2ta
+ift3erk
+if2top
+if2t3ri
+ift3sp
+ift3sz
+2i1g
+ig2ab
+iga3i
+i2g1ang
+ig1art
+iga5s
+i4gefar
+ig5eise
+i3gen
+ige4na
+ige4rau
+i2g5erz
+ig2gr
+i2g1im
+i2g3l
+ig1lä
+ig4le
+ig5lein
+i4gli
+ig1lu
+ig4na
+i4gnä
+i3g4neu
+ig4no
+i3g4ra
+ig4sal
+ig5sä
+ig4se
+ig3so
+ig3spr
+ig3s4tei
+ig4s3to
+ig4stö
+ig3str
+ig4stre
+ig5stu
+2i1h
+i2h1am
+i2h1ar
+i5he
+ihe1e
+ihe4n
+ih3l
+ih3m
+ih3n
ih1r
-i1hu
-i8hum
+i2h1um
+ihu3s
ih1w
-8i1i
-ii2s
-ii2t
+2i1i4
+i2i5a4
+i3ig
+i3in
+i2is.
+i2i5t
i1j
i1k
-i6kak
-i8kerz
-i6kes
-ik4ler
-i6k5unt
-2il
-i5lac
-i1lag
-il3ans
-i5las
-i1lau
-il6auf
-i1le
-ile8h
-i8lel
-il2fl
-il3ipp
-il6l5enn
-i1lo
-ilt8e
+i4k3a4k
+ik5amt
+i4k3anl
+i2k1ano
+ik3ansa
+i2k3anz
+i2k1ar
+ik3att
+i2k1au
+ik3aufr
+ik1är
+2ike
+i2k1ei
+ike2l
+ike2re
+i2k3eta
+i3ki.
+i3kic
+i3kil
+i2k1in
+i2k3l
+i3k4la
+i3k4lä
+ik1lö
+i2k3n
+ik2o3p6
+ikot3t
+ik3ra
+ik3rä
+ik3re
+i3kri
+ik1s
+ik3so
+iks2p
+ik3s2z
+ikt2e
+ikt3erk
+ik2t3r
+i2kun
+i3kus
+i1la
+il5ab
+il3a2d
+i2l1ak
+i2l3a4m
+il1ans
+il3asp
+i2l1au
+il4aufb
+il5aus
+i1lä1
+2ilb
+il2c
+il2da
+il3de
+il4d3ent
+ild2er
+il2d1o
+il1e4c
+ile2h
+il1ehe
+il1ein
+i2l1el
+i3len
+i4l1ent
+i2l1erf
+i2l1erg
+i2l1err
+il2f3l
+il2f3re
+ilf4s
+ilg4r
+ili5en3
+iliga2
+ili4g3ab
+i2l1ind
+i2l1ip
+i3lip.
+i3lips
+il3l2a
+ill4an
+il3l2er
+il5l2i
+il2mak
+il4mang
+il2m5at
+il2mau
+il2min
+2ilo
+i2l1or
+i1lö
+il1öf
+il3t2h
+il3tr
i1lu
-i1lä
-i8mart
-imb2
-i8mele
-i8mid
-imme6l5a
-i1mu
-i1mä
-i5mö
-ina5he
-i1nat
-in1au
-inau8s
-8ind.
-in4d3an
-5index
-ind2r
-3indus
-i5nec
-i2n1ei
-i8nerw
-3infek
-1info
-5ingeni
-ing5s6o
-5inhab
-ini5er.
-5inj
-in8kät
-in8nan
-i1no
-inoi8d
-in3o4ku
-in5sau
-in1sp
-5inspe
-5instit
-5instru
-ins4ze
-5intere
-5interv
-in3the
-in5t2r
-i5ny
-inä2
-i1när
+i2lum
+i3lus
+il3v2
+il2zar
+ilz3erk
+4im.
+ima2g
+i2manw
+i2m1arm
+ima2tr
+ima4tur
+i2m1ele
+i2m1elf
+i2m1erf
+i2m1erz
+i2meti
+im1ex
+2imi
+i2m1inf
+i2m1ins
+im4m3ent
+3immo
+im1org
+1impo
+imp2s
+im3pse
+1impu
+im2str
+2imt
+2imu
+im3unt
+2in.
+2ina
+in1a4c
+in3ad
+in2af
+in3a2m
+in2ant
+i3nap
+i6narb
+ina4s
+in3asi
+inasy3
+i2n3au
in1äs
-inö8
-in5öd
-i1nös
-2io
-io1a8
+in1äu
+in3dau
+in4dene
+1index
+in3do
+2indr
+ind3se
+1indus
+2ine
+i2n1e2be
+i2ned
+in1ehe
+in3ei
+i5nend
+in1eng
+i3n2er
+i5ner.
+in3erbe
+i4n3erlö
+i5ners
+i5nerv
+in3erz
+i2n1eu
+ine3un
+ine2x
+inf4
+1info.
+4inga
+ing1af
+in2g1a4g
+ing5sc
+1inhab
+2inhar
+2inhau
+4inhe
+i3ni3d
+2inig
+in3ins
+in2ir
+2inis
+ini5se
+i3nitz
+3inkarn
+ink4ste
+2inn.
+in4n3erm
+2innl
+1innta
+2ino
+in3od
+in3ole
+in3ols
+in1or
+inos2
+ino3st
+ino3t
+i1nö
+in1ö2d
+2inp
+2inr
+ins2
+2ins.
+ins4am
+ins3än
+insch4
+in7schl
+in4seb
+2insen
+ins3erg
+ins3ert
+in3skan
+in5spe
+in3st
+3instal
+in4s3tät
+in5s4tr
+in5su
+1insuf
+in6s3um
+in3sze
+1integ
+in3t2h
+in3t4r
+i2n1uf
+i3n2um
+in1unz
+invil4
+i1ny
+inze2
+in3z2w
+i1ñ
+i1o
+io5a4
io1c
-iode4
-io2di
-ioi8
-i1ol.
-i1om.
-i1on.
-i5onb
-ion2s1
-i1ont
-i5ops
-i5o8pt
-i1or.
-i3oral
-io3rat
-i5orc
-i1os.
-i1ot.
-i1o8x
-2ip
+i4o3di
+io3e4
+i2of
+io1f4l
+i2o3h
+io2i3d
+i4ok4
+io3kr
+i3ol.
+i5om.
+i5oms
+ion4
+i3on.
+io3na
+ional3a
+io4n5au
+ion5d
+i3ons3
+ion6sc
+io2nu
+i2ony
+i2o1p
+i3ops
+i3opt
+2i2or
+i3or.
+io1ra
+i3orc
+iore4n
+io1rh
+i3orp
+i3ors
+i3ort
+i2os2
+i3os.
+io3sh
+io3sp
+io3st
+i3ot.
+i3ots
+i2ov
+io2x
+i3oz.
+i1ö4k
+i3ön
+i1ös.
+2ip.
i1pa
-i1pi
-i1p2l
+ip4an
+i1pä
+i1pe
+ipen3
+i3per
+ip3fa
+iph4
+2i1pi
+ipi3el
+ipi3en
+ipi2s
+ip4l
i1pr
+2ips
+2i1pu
i1q
-i1ra
-ir6bl
-i1re
-i1ri
-ir8me8d
-ir2m1o2
-ir8nak
+i1r6a
+i3ra.
+1irak
+i3ras
+i1rä
+ir2bl
+ir1c
+ir4e
+i5ree
+2irek
+i5ré
+irg4
+ir2g5l
+irg6s
+ir2he
+i1r2i
+2irig
+2irk
+ir2k5l
+irli4n
+ir2mau
+ir2mä
+ir2m1ei
+ir2mum
+ir4m3unt
+ir5nen
+irn3ers
+ir2no
i1ro
-ir5rho
-ir6schl
-ir6sch5r
-i5rus
-i5ry
-i5rä
-i1sa
-i8samt
-i6sar
+1i2ron
+iro2s
+i1rö
+irpla4
+ir4s
+ir5se
+ir5sh
+irt2st
+i1ru
+iru2s1
+i3sac
+i4s3amt
+is1an
+is2ap
+is3are
i2s1au
-i8scheh
-i8schei
-isch5m
-isch3r
-ischä8
-is8ele
-ise3ra
-i4s3erh
-is3err
-isi6de
-i8sind
-is4kop
-ison5e
-is6por
-i8s5tum
-i5sty
-i5sö
+is1än
+2isb
+i2sca
+isch3ar
+i4sch3e4h
+i4sch3ei
+isch6er
+i4schin
+i5sching
+i2sch3l
+i2schm
+isch3ob
+isch3re
+isch3ru
+isch3wu
+is3chy
+i2s3cr
+2i3se
+ise3e
+ise3ha
+ise5hi
+ise3il
+ise3inf
+i4seint
+ise2n
+ise4nal
+is2end
+ise1ra
+i4s1erm
+iser2u
+i4s1ess
+is4et
+i4s5etat
+i4sex
+isi2a
+i2s1id
+is3la
+ismu2
+i2s1of
+iso2n
+iso6nend
+is1op
+5i2sot
+i2sp
+is1pa
+i4spar
+is1pe
+is1pic
+is2pit
+i4spl
+i4spo
+i4spro
+is3sa
+is4s1ac
+is4sau
+is4s3che
+is2st
+iss1tr
+i2st
+is1t2a
+is2t3ab
+is2tat
+is3tec
+i3stel
+iste4n
+is1th
+i1stil
+is1to
+is2toc
+is1tr
+is2t3re
+i3stru
+i3stü
+isum3p
+i2sü
+i1sy
+i1ß
+i2ß1ers
+ißler3
+2it.
i1ta
-it5ab.
-i2t1a2m
-i8tax
-i1te
-i8tersc
-i1thi
-i1tho
+it1ab.
+it1ac
+i3tak
+ital1a
+it1alt
+it1am
+it1ang
+it3a6re
+it1art
+i3tat
+it1au
+i3tauc
+i4t1ax
+2i3tä
+i4t1äs
+ität4
+2ite
+i2t1eig
+it1ein
+6i3tel
+ite2n
+iten3g
+itens2
+iten3st
+i2t1epo
+i4tex
+it1he
i5thr
-it8hä
-i1ti
-i8ti8d
-iti6kl
-itmen4
+it1hu
+i3ti
+1itia
+i4t1id
+1itii
+iti4kan
+i4t1in
i1to
-i8tof
-it3ran
+i5toc
+i2t1of
+i1tö
+i1tr
+it3raf
+it3rah
+i2t3ran
+it3ras
it3rau
-i1tri
-itri5o
-it1sc
-it2se
-it5spa
-it8tru
-i1tu
-it6z5erg
-it6z1w
-i1tä
-itä6r5e
-ität2
-itäts5
+it3räu
+it3re
+it3ric
+it3rom
+i3tru
+it3run
+it4s3ag
+it2sä
+it2s1e2
+it6s5er1
+its1pe
+it4staf
+its3tie
+it2sto
+it2str
+it3te
+it4teb
+itt3hä
+it2tr
+it1uh
+i2t1um
+i2tuns
+itu5re.
+it1urg
+itut6
i1tü
-i1u
-iu6r
+i3tül
+i3ty
+2itz
+it4z3erg
+2i1u4
+ium3a
+ium1i
+i3un
+i1ü
2i1v
-i6vad
-iva8tin
-i8vei
-i6v5ene
-i8verh
-i2vob
-i8vur
-i1w
-iwi2
-i5xa
-i1xe
+iv1ak
+iv1ang
+i2veb
+i2v1ei
+iv1elt
+ive4n
+i2v3ene
+i2v1ent
+i3vol
+i2vr
+i2v1ur
+2i1w
+iwur2
+ix2em
+i3xi
+i1xo
+ix3tu
i1z
-ize8n
-i8zir
-i6z5w
-iä8m
-i1ä6r
-i5ät.
-i5äv
-i1ö8
-iü8
-i6ß5ers
-ja5la
-je2t3r
-6jm
-5jo
-jo5as
+i2zan
+iz1ap
+iz1au
+izei3c
+ize2n
+i2z3ene
+iz4er
+i2z1ir
+iz1ob
+i2z1ö
+izt2
+iz3th
+i2z1w
+í1l
+2j.
+ja1c
+jahr3ei
+jahr4s
+ja3la3
+ja3ne
+jani1
+ja5sa
+ja3st
+2jat
+je2a
+jean6s
+je1c
+je2g5
+jek4ter
+jekto2
+jek4tr
+je3na
+je2p
+jes1t
+je2t
+jet1a
+jet3h
+jet3r
+jet3st
+jet5t
+jet1u4
+je5v
+jit3
+ji2v
+j2o
+joa3
+jo2b1
+job3r
+jo2i
+joni1
jo1ra
-jou6l
-ju5cha
-jugen4
+jord2
+jo2sc
+jou2
+jou4l
+joy3
+4jö
+2js
+j2u
+ju2bl
+juden3
+jugen6
jugend5
-jung5s6
-3jä
+ju2k
+jung5s4
+jur2o
+ju2s
+jute1
+2j1v
+4k.
1ka
-8kachs
-8kakz
+3ka.
+ka2a
+ka3ar
+kab2bl
+ka2ben
+2kabh
+ka1bl
+2kabla
+2kablä
+kab4le
+2k3a2bo
+ka3b4r
+4k3abs
+2k1abt
+ka1c
+2kada
+ka3dab
+2k3adr
+ka1f4l
+ka1fr
+kaf3t
+k2a3g
+ka1in
+ka3ka
+kaken4
ka1la
-kal5d
-kam5t
-ka1na
+ka2lan
+kal3bl
+ka3lei
+ka3len.
+ka4lens
+kal5eri
+kal2ka
+kal2kr
+2kall
+kal4tr
+3k4am
+4k5a2ma
+ka3mar
+kamme2
+ka4n3a4s
+ka2nau
+kan3d4
+2kanda
+kan2e
+2k1ang
+kan3k4
2kanl
-8kapf
-ka6pl
-ka5r6a
-6k3arbe
-ka1ro
-kar6p5f
-4k3arti
-8karz
-ka1rä
-kasi5e
-ka6teb
-kat8ta
-kauf6s
-kau3t2
-2k1b
-2k1c
-4k1d
-kehr6s
-kehrs5a
-8keic
+2k1anna
+2k1ans
+6kantenn
+kan4th
+2kanw
+k4anz.
+ka2o
+2kapf
+3kara
+2karb
+k1arc
+k2ard
+3ka3re
+k2arg
+ka3r2i
+kari3es
+2karm
+kar4p3
+k2ar3ta
+2karti
+karu2
+k2arw
+3kas
+ka3se
+kasi1
+ka4sp
+kas3s
+ka4s1t
+ka3th
+ka2t3r
+2katt
+kau4f1o
+4kaufr
+kauf4sp
+2kaus
+kau3t4
+2kauto
+1kä
+3käf
+2käh
+k1ämi
+kär2
+kä4s3c
+kä5se
+kä1th
+2k1b4
+k5be
+kbo4n
+2k3c
+2k3d
+kdamp2
+2ke1c
+ke3d
+k3eff
+kefi4
+kege4
+ke2gl
+ke2he.
+kehr4s
+kehrs3o
+2k1eic
2k1eig
-6k5ein
-6k5eis
-ke6lar
-ke8leis
-ke8lo
-8kemp
-k5ente.
-k3entf
-8k5ents
-6kentz
-ke1ra
-k5erlau
-2k1f8
-2k1g
-2k1h
-ki5fl
-8kik
-king6s5
-6kinh
-ki5os
-ki5sp
-ki5th
-8ki8ö
-2k1k2
-kl8
-1kla
-8klac
-k5lager
-kle4br
-k3leib
-3kleid
-kle5isc
-4k3leit
-k3lek
-6k5ler.
-5klet
-2klic
-8klig
-k2lim
-k2lin
-5klip
-5klop
-k3lor
-1klä
+2kein
+ke1ind
+2k1eise
+ke2la
+kel1ac
+ke3lag
+kel1au
+ke2lä
+kel3b
+2k1e2lek
+ke2len
+2ke3let
+kel3sk
+2k1emp
+ken3a
+4kengag
+ken3sz
+k2ente
+k3enten
+ken3th
+2k1ents
+2kentw
+2keo
+4kep
+ke2pl
+k2er.
+ke1rad
+k2erc
+k3erhö
+ke5rin.
+ke6r5innu
+k2erko
+k2erl
+k3erleb
+k4erlö
+k2ern
+ker4neu
+k1ero
+k2ers.
+ker3z2
+2k1erzi
+ke4t1a
+keten3
+ke2t3h
+ke1up
+keu6schl
+2k1e2x
+2k5f
+kfi2s
+2k1g4
+kge1
+2k1h4
+kho3m
+ki3a6
+ki1c
+ki2d
+ki3da
+2k1ide
+ki3di
+ki3d4r
+ki2el
+kie2l3o
+ki2en
+kif4
+ki1fl
+ki1fr
+ki3k4
+2ki3l2a
+ki5li
+ki3lo
+3kin.
+k2ing
+2kinh
+k2ini
+k2inn
+ki3n4o
+2k1inse
+kin3sh
+2k1int
+ki3o
+3kirc
+ki5s2p
+kis2to
+2kiz
+ki3zi
+2k5j
+2k1k
+k2l2
+4kl.
+2kla.
+klan2
+k5last
+2k5le.
+kle5ari
+4k5leh
+k4leid
+4k5leit
+k3lem.
+2k3ler
+kle2r3a
+2k3leu
+kle3us
+k5lich
+3klim
+k4lin
+k4lip
+k4lir
+k4lisc
+klit2s
+4k5liz
+2k3loc
+klo2i3
+k4lop
+k3lu
+k3lüc
+k3ly
2k1m
-kmani5e
-kn8
-6kner
-k2ni
-knä8
-1k2o
-ko1a2
-ko6de.
-ko1i
-koi8t
-ko6min
-ko1op
-ko1or
-ko6pht
-ko3ra
-kor6d5er
-ko5ru
-ko5t6sc
-k3ou
+k2n2
+3k4nab
+k4nei
+2k3ner
+kno2bl
+2knor
+3k4nü
+1ko
+ko5ad
+ko2al
+ko5ar
+ko3be
+2kobj
+2k1o2fe
+koff4
+koh3le
+koh3lu
+ko1i2
+kol4k5
+3kom
+ko2min
+ko4mu
+k2on3
+ko3n4e
+kon4i
+kons4
+ko3nu
+2kop.
+ko1pe
+kop4f3en
+kopf5err
+kop2t
+ko3r2a
+4k1orc
+kor6derg
+ko3ri
+kor3m
+3kort
+k2os
+ko3str
+3kot
+ko3ta
+kots2
+kot3sp
+2k3ou
3kow
-6k5ox
-2k1p2
+k1o2x
+3kö
+kö2f
+4köl
+2k3p2
k1q
-1kr8
-4k3rad
-2k1rec
-4k3reic
-kre5ie
+k2r4
+2k3rad
+k3rats
+2k1raum
+k4raz
+2krät
+2k3räum
+2kre.
+kreb4
+2k5rec
+2krede
+2kreg
+k3reic
+kre1i2e
+k3reih
+2k3rh
2krib
-6krig
+4k3ric
+k3ries
2krip
-6kroba
-2ks
-k1sa
-k6sab
-ksal8s
-k8samt
-k6san
-k1sc
-k2s1ex
-k5spat
-k5spe
-k8spil
-ks6por
-k1spr
-kst8
-k2s1uf
-2k1t
-kta8l
-kt5a6re
-k8tein
-kte8re
+k4ron
+kro3st
+2kruf
+krü1b
+4ks
+ks3amt
+k2s1an
+k2s1au
+ks4än
+ksch4
+ks1e2b
+k2s1em
+k2sent
+ks1erl
+k2s1ers
+k2s1erw
+ks1ex
+k2s1id
+k2s1in
+k2s1o2
+k3sof
+ks1pa
+k3spe
+ks2por
+ks3s2
+ks2t4
+k5stab
+ks3tanz
+kstat4
+k1ste
+k5stei
+k6steil
+k1sti
+k2stor
+k1str
+k2strä
+k1stu
+k2stum
+k2s1u
+k1sy
+ks2zen
+4k1t
+k2t3ad
+k3taf
+kt1akt
+k3tal
+kt1am
+kt1an
+kt3anz
+k2t3a2r
+kt5a4re
+k5tat
+k2t1au
+ktä3s
+k3te
+kte3en
+k4t1ei
+k4temp
+k4tent
+k4t3erfo
+k4t1erh
+k5ters.
+k4tex
k2t1h
-k8tinf
-kt3rec
-kt1s
-1ku
-ku1ch
-kuck8
-k3uhr
-ku5ie
+k2t1id
+ktien3
+kt1im
+k2t1ing
+kt1ins
+k2t1of
+k3top
+kt1ope
+k4torga
+kt3orie
+k2tö
+k3t4ra
+kt5ras
+kt5rau
+kt4ro
+ktro5s
+kt3run
+kts4
+kt3se
+kt3sp
+kt3st
+kt3su
+kt3s2z
+kt3t2
+k2tuns
+kt3z
+ku1c
+kuh3
+2k1uhr
+ku3la
+ku3l2e
+ku3l2i
+4kulp
+2k3uml
kum2s1
-kunfts5
-kun2s
+k2u3n2a
+kun6s4
kunst3
-ku8rau
-ku4ro
-kurz1
-4kusti
-ku1ta
-ku8ß
-6k1v
-2k1w
-ky5n
-2k1z
-1kä
-kä4m
-4k3ämi
-käse5
-1kö
-kö1c
-kö1s
+2kunt
+2k1up.
+ku2rei
+kuri2e
+kuri4er
+ku2ro
+kur4sp
+kur4zen
+ku4schl
+ku2so
+ku2sp
+ku2s1t
+ku2su
1kü
+2küb
+kü1bel
kü1c
-kür6sc
-1la.
-8labf
-8labh
-lab2r
-2l1abs
-lach3r
-la8dr
+kür4s
+2k1v
+2k1w
+3kys
+ky3t
+2k5z2
+6l.
+5la.
+2lab
+la3ba
+4labb
+4la2ben
+3labi
+4l1abl
+3la3b2o
+3l2a1b4r
+lab5re
+lab6ri
+4l3abs
+4labw
+la1ce
+1lad
+la3den
+la3d2i
+l3adl
+4ladm
+2l3adr
5ladu
-8ladv
-6laff
-laf5t
+l3adv
+1la1e
+la2ga
+la3ge
+lag5eis
la2gn
-5laken
-8lamb
-la6mer
-5lampe.
+lago4
+la4g1ob
+la2gr
+lahn3
+2la1ho
+1lai
+1laj
+la3ke
+la2k1i
+3l2akk
+la1k4l
+2l1al
+4lall
+4l3alp
+l2a3ma
+l2ami
+la3min
+3lammf
+l4amp
2l1amt
-la1na
-1land
-lan4d3a
-lan4d3r
-lan4gr
-8lanme
-6lann
-8lanw
-6lanä
-8lappa
-lap8pl
-lap6pr
-l8ar.
-la5ra
-lar4af
-la8rag
-la8ran
-la6r5a6s
-l3arbe
-la8rei
-6larm.
-la8sa
-la1sc
-la8sta
-lat8i
-6l5atm
-4lauss
-4lauto
-1law
-2lb
-l8bab
-l8bauf
-l8bede
-l4b3ins
-l5blo
-lbst5an
-lbst3e
-8lc
-l1che
-l8chert
-l1chi
-lch3m
-l5cho
-lch5w
-6ld
-l4d3ei
-ld1re
-l6düb
+lamt6s
+la4mun
+la2na
+la3nac
+l1anal
+2lanb
+3l2and
+lan2d3a
+lan4dad
+lan6d5erw
+lan6d5erz
+land5inn
+lan2dr
+2l1anf
+lang3s4
+4lanl
+l3anli
+2l3ann
+l1anp
+2lans
+4lansä
+4lanw
+lanz1w
+3lao
+l1a2po
+lap4pl
+la2r1an
+2l1arb
+l1arc
+la2r1ei
+la6rene
+l4ar3g
+lar3ini
+lar3st
+2l1art
+lar3th
+l3arti
+la3ru
+la3se
+2lash
+la2so
+2la4sp
+5lasseri
+5lassern
+5lassers
+la4st
+last1o
+lat2a
+la4tel
+2l3ath
+la2t3ra
+lat4s
+2latta
+lat4tan
+lat4t3in
+lat4t3r
+laub6se
+lau4fer
+lau4fo
+l2aufz
+l1ausg
+2l1ausl
+2l1ausr
+2l1auss
+l1ausz
+2lauto
+2law
+lawa4
+1lax
+la3xa
+lä1c
+4läf
+2l1ähn
+3länd
+lär2m1a
+l1ärz
+lä4s3c
+4lät
+4läub
+4läuc
+4läue
+3läuf
+1là
+4l1b2
+l3bac
+lb3af
+lb3am
+lb3ang
+lb3arb
+lb3b
+l2b3ede
+l4b3eta
+l2b3id
+l2b3ins
+lb4lat
+l3blä
+lb3le
+l2b5li
+l3blo
+lb3ohn
+l4bre.
+lb5rit
+lb4ro
+l3brü
+lbs4
+lb3sa
+lb4sk
+lb3sp
+lbs6t
+lbst1e
+lb4sto
+lb4stu
+l2b3uf
+4l1c
+l3che
+l5chi
+lch3l
+lch3r
+lch3ü
+lch1w
+4l1d
+ld3a2b
+ld1a2ck
+l4d3ad
+lda2g
+l2d1ak
+ld1al
+l3dam
+ld1amm
+l2d5a2n
+ld1a2r
+ld5ari
+l3das
+ld1au
+ld1är
+l3de.
+ld1ei
+l4dele
+l3der.
+l2derd
+l3derl
+l3dern
+l2d1erp
+l2d1e4se
+l2dex
+l2d1id
+l2d1im
+ldo2r
+l3d2os
+l3dö4
+l2d3r
+ld1ra
+l4dran
+ld1rä
+l4dre
+ld5rea
+ld1ri
+ld1ro
+ld1rö
+ld3sa
+ld3ska
+ld3sp
+ld1st
+ld1t4
+l2d1um
+l2dü
+1le
+3le.
+le3ar
+le3ba
+leben4s3
le2bl
-le8bre
-lecht6s5
-led2r
-6leff
-le4gas
-1lehr
-lei6br
-le8inf
-8leinn
-5leistu
-4lektr
-le6l5ers
-lemo2
-8lemp
-l8en.
-8lends
-6lendun
-le8nend
-len8erw
-6l5ents
-4l3entw
-4lentz
-8lenzy
-8leoz
-6lepi
-le6pip
-8lepo
-1ler
-l6er.
-8lerbs
-6l5erde
-le8reis
-le8rend
-le4r3er
-4l3erg
-l8ergr
-6lerkl
-6l5erzie
-8lerö
-8lesel
-lesi5e
-le3sko
-le3tha
-let1s
-5leuc
-4leuro
-leu4s3t
+2lec
+lech1a
+le2chi
+lech5t4e
+le3de
+le2e
+le3ei
+le3en.
+le3f4a
+3lefo
+le2g3as
+le2gä
+le2g5l
+le3gr
+legs4
+3lehr
+leh3r4e
+3lei.
+lei2br
+l2eic
+l2eid
+4l1eig
+l2ein.
+l2eind
+l2eine
+l2eint
+lei2s
+lei3so
+leis6s5er
+l4eist
+lei3su
+l2eit
+lei8t7ersc
+leit3st
+lekt2a
+2lektr
+3lela
+le2le
+2l1elek
+le3len
+le3ler
+le3les
+3l2eli
+lel3s
+3lemes
+le2m1o2
+4lemp
+l2en.
+le4nad
+le4nä
+3lene
+le4n3end
+4lenerg
+le4ners
+l2enf
+le3ni
+len3kl
+2l1enni
+l2e2no
+len3st
+len3sz
+2l1ents
+4lentw
+lent4wä
+5lentwet
+len2zi
+le1os
+2lepo
+lepositi8
+l2er.
+l2e1r2a
+le2r3a4g
+le2r3au
+ler5b6
+4l3ereig
+le4r3eim
+le4rers
+l1erfo
+l2erfr
+l2erfü
+3lergeh
+4l3ergen
+3l4ergew
+2l1ergi
+lerk4
+l2erka
+l2erko
+l2erle
+le1ro
+2l1er2ö
+3l2erra
+l4ers.
+lers4k
+ler3ste
+le2ru
+le3rung
+l1erz
+l2erza
+les4am
+les4e
+2lesel
+le5ser
+le3sh
+lesi1
+le3s2k
+les2t
+leste3
+4lesw
+2lesy
+le4sz
+le2tat
+2le3th
+2leto
+let4tu
+le2u
+4leud
+2leuro
+3leut
+3leva
+2lex
+3lexd
le5xe
-6lexp
-l1f
+le2xis
+3ley
+2l1f
+l3fa
+l5fah
+l2f1ec
+lfe1e
+l4f1eis
+l3flä
+lf3lo
+l3flu
+lf3ram
+lf2s
+lfs3tau
+lfs3tr
+lf2tr
+lf4u
+lfur1
2l1g
-lgend8
-l8gh
-lglie3
-lglied6
-6l1h
+lge3ra
+l2geti
+lg3lo
+lg3re
+l3gro
+2l1h
+l3he
+3lhi.
1li
-li1ar
-li1as
-2lick
-li8dr
-li1en
-lien6n
-li8ers
-li8ert
-2ließ
-3lig
-li8ga8b
-li1g6n
-li1l8a
-8limb
-li1na
-4l3indu
-lings5
-4l3inh
-6linj
-link4s3
-4linkt
-2lint
-8linv
-4lipp
+3li.
+li1ac
+li1ak
+li3bi
+li1c
+5lichem
+5licher
+li3chi
+6lick
+li3da
+2l1i2do
+3lie.
+liebe4s
+lie2n
+li3ene
+li5enp
+lie4s3c
+lie2st
+li3fa
+li4fe
+5lig
+li3g4n
+li3ke
+li3ki
+li3kli
+li2kr
+lik2sp
+lik4ter
+li3l2a
+li3li
+4lim
+li3m2a
+lima3g
+2limb
+5limo
+2limp
+li3na
+lin1al
+2l1indu
+li4nef
+li4neh
+li2nep
+li4nes
+2l1inf
+ling4s
+2l1inh
+li5ni
+2l1i6nit
+2l1inj
+lin2k3a
+3linn
+li2nol
+l2insa
+l2insc
+2l1int
+l1inv
+4linz
+li2o
+li2p3a
5lipt
-4lisam
-livi5e
-6l1j
-6l1k
-l8keim
-l8kj
-lk2l
-lko8f
-lkor8
-lk2sa
-lk2se
-6ll
-l1la
-ll3a4be
-l8labt
-ll8anl
-ll1b
-ll1c
-ll1d6
-l1le
-l4l3eim
-l6l5eise
-ller3a
-l4leti
-l5lip
-l1lo
-ll3ort
-ll5ov
-ll6spr
-llte8
-l1lu
-ll3urg
-l1lä
-l5lü
-l6lüb
+3lis.
+li3s2a
+li4schu
+6lish
+2l1isl
+2l1i2so
+liss4
+3list
+li2tal
+li3te
+li1t2h
+lits2
+lit3st
+lit3sz
+li3tu
+li4tur
+3liu
+2lixi
+li2za
+lizei5
+4l3j
+2l1k
+lk1alp
+l3k2an
+l3kar.
+lk1arm
+l3ke
+lken3t
+l2kep
+lkir5
+lk3lo
+l3k6lu
+lk3nu
+lkor2b1
+l3k4ra
+lk3ro
+l2k3ru
+lk2s3
+lk3sä
+lk4stä
+l3k2ü
+lkü1b
+4l1l
+ll1abb
+ll1abe
+ll3aben
+ll1abt
+l3labu
+ll1aff
+ll1akt
+l3l2al
+l2l3a4m
+l2l3anz
+l3lap
+ll1arm
+ll3art
+ll1au
+ll3aug
+l2l3aus
+l2l1äm
+llb4
+ll3d
+l3lec
+ll1ech
+l2l1ef
+ll1eim
+llei4ne
+l3l2em
+l3len.
+lle4n1a
+ll3endl
+ll3endu
+llen3g
+l3ler.
+lle2r3a
+l3lere
+l4l3ergo
+ll3ernt
+l2lerz
+ll2es
+llg4
+ll1imb
+ll1imp
+l2l1ind
+lli5ne
+l2l1ins
+ll3l4
+ll5m
+l2l1ob6
+l2l1of
+ll1opf
+l2l1o2r
+l2l3ou
+ll1ov
+l3low
+l4l1öf
+ll3ö2se
+ll3sh
+ll3s2k
+ll3sp
+ll4spr
+llt4
+ll3th
+llti2m
+ll3tr
+llt5s2
+ll1ur
+l3lus
+llust6
+llus5tr
+ll3z2
2l1m
-l6m5o6d
-6ln
-l1na
-l1no
-8lobl
-lo6br
-3loch.
-l5o4fen
-5loge.
-5lohn
-4l3ohr
-1lok
-l2on
-4l3o4per
+lm3a2b
+lm1aka
+l2m1arc
+lm1aus
+lm3eins
+l2m1e2p
+l2m1erz
+lmin2
+lm1ind
+lm1ins
+lm1orc
+l2möl
+lm3p
+lmpf4
+lm1s2t
+lm3ste
+lm3sz
+lm3th
+4ln
+lna6r
+ln3are
+l3n2e
+l3ni
+l3no
+l1nü
+1lo
+3l2ob.
+3lobb
+2lobj
+2lo2bl
+l2obr
+lo3bri
+lof4
+4l1o2fe
+lo1fl
+lo3ha
+loh2e
+2l1oh4r
+3lok
+lo2k3r
+lol2a
+l3oly
+lo2min
+lo4n1o
+lon3st
+lo2o
+2lope
+2lopf
+2lopt
lo1ra
-2l1ord
-6lorg
-4lort
-lo1ru
-1los.
-lo8sei
-3losig
-lo6ve
-lowi5
-6l1p
-lp2f
-l8pho
-l8pn
-lp4s3te
-l2pt
-l1q
-8l1r
-2ls
-l1sa
-l6sarm
-l1sc
-l8sec
-l6s5erg
-l4s3ers
-l8sh
-l5s6la
-l1sp
-ls4por
-ls2pu
-l1str
-l8suni
-l1sü
-2l1t
-lt5amp
-l4t3ein
-l5ten
-l6t5eng
-l6t5erp
-l4t3hei
-lt3her
-l2t1ho
-l6t5i6b
-lti1l
-l8trö
-lt1sc
-lt6ser
-lt4s3o
-lt5ums
-lu8br
+lo4rä
+2lorc
+lo3ren
+4l1or3g
+lo3ro
+3lorq
+3los.
+lo4sa
+3lose
+los5se
+lost4
+lo4ste
+los1tr
+lo2ta
+lo3th
+loti4o
+2lo2v
+lo3vi
+2lox
+lö2b3
+lö3du
+3lö2f
+4l1öfe
+l3öhr
+2l1öl
+5lösc
+5lösu
+4löß
+2l1p
+lpe2n3
+l3p2f
+l4p1ho
+l3prei
+l3pro
+lp3t4
+2l1q
+lque3r
+2l5r2
+lrat6s
+lru3t2
+lrü1b
+4ls
+l3sac
+l2s3a2d
+l5s2al
+l4s3amb
+ls3amp
+ls1anf
+ls1ang
+l2s1ann
+l3sare
+l2s1au2
+l4schin
+l2s1e2b
+ls1ec
+l2s1em
+ls3ere
+ls1erg
+ls1erl
+l2s1ers
+l2s1erw
+l3sex
+l4sha
+lsho2
+l2s1imp
+ls2log
+ls3ohne
+l4s3ort.
+ls2pi
+l3s2po
+l3spri
+l3s2pu
+ls3s2
+lst2a
+l5s2taf
+ls3täti
+l1stec
+l5stei
+l5stel
+l5steu
+l1sti
+ls2tie
+l2stit
+ls2tol
+l1s2tr
+l1s2tu
+ls1um
+l3sur
+l1sy
+ls2zen
+4l1t
+lt1ac
+lt1ak
+lt1am
+l4tame
+lt3and
+lt1ang
+l3tar
+lt1art
+l3tat
+l4t3ato
+lt1au
+l5tef
+lt1eh
+lt1ein
+l2t1eis
+lte5lei
+lt2en
+lter3a
+l3t4erg
+lt2erö
+lter4sp
+l4t3es3k
+lte3str
+lt3e2th
+lt1eu
+l2t1h
+l4t5hei
+l3thu
+l3ti
+ltimo4
+l2tob
+l3toc
+lt1of
+l2t1op
+l2t1o2ri
+lto3we
+lt1öl
+lt1ös
+lt3öt
+ltra1l
+l3trä
+lt3räu
+l2t3re
+lt4rie
+lt3roc
+lt3ros
+l2t3rö
+lt5sc
+lt2se
+lt3spa
+lt3spr
+lt4spre
+lt4stab
+lt4stoc
+lt3t
+lt1uh
+l2t1um
+ltu4ran
+ltu4rer
+ltu2r3i
+lt3z2w
+1lu.
+lu1an
+4lu2b1
+luba2
+lub3l
+lub3r
+lubs2
+lub3sz
+lub3u
lu2dr
-lu1en8
-8lu8fe
-luft3a
-luf8tr
-lu6g5r
-2luh
-l1uhr
-lu5it
-5luk
-2l1umf
-2l1umw
-1lun
-6l5u6nio
-4l3unte
-lu5ol
-4lurg
-6lurs
-l3urt
-lu4sto
-lus1tr
-lu6st5re
-lu8su
-lu6tal
-lu6t5e6g
-lu8terg
-lu3the
-lu6t5or
-lu2t1r
-lu6ß5
-l1v
-lve5r6u
-2l1w
+lu2es
+lu2f2
+2l1ufe
+lu3fo
+luft1a
+luft1e
+luft5r
+lu2ga
+lu2g5e2b
+lu2ger
+lug5erp
+lug5l
+lu2go
+lu2g3r
+lug3sa
+lug3sp
+lugs4t
+lu2gu
+2l1uh
+lu1id.
+lu1is.
+lume2
+2lumf
+2luml
+l2ump
+l1ums
+l1umw
+1lu4n
+2l1una
+2l1unf
+4l1uni
+2lunt
+2lunw
+lu4pf
+2lur
+lu1rä
+l1urn
+l1urt
+2luse
+lu2sp
+lus4s3a
+lus2s3c
+lus4ser
+lus2s1o
+lus4s3p
+lus4st
+5lu4st
+lus2t3a
+lust3re
+lu2s1u
+lu2t1a
+lu2tä
+lut3erg
+lu5terk
+lut1o2f
+lu2top
+lu4t5r
+3lux
+2lüb
+5lüd
+lüh1l
+lü2s
+2l1v
+l3vo
+l2vr
+2l3w
+l5wa
1ly
-lya6
-6lymp
-ly1no
-l8zess
-l8zo8f
-l3zwei
-lz5wu
-3länd
-lä5on
-lä6sc
-lät1s
-5läuf
-2läug
-läu6s5c
-lä5v
-l1öl
-1lös
-lö1ß6t
-6l1übe
+ly1ar
+ly3c
+ly3et
+2lym
+3ly3n
+ly1o
+ly3th
+ly3u
+2l1z
+l3z2an
+lz1ar
+lz1erz
+lz1ind
+lz1o2f
+l2zö
+lzt2
+lz3th
+l2z1u4fe
+l2z1w
+lz2wec
+6m.
1ma
-8mabg
-ma5chan
-mad2
-ma5el
-4magg
-mag8n
+maa4
+2m1ab
+m2abe
+ma1bl
+3m2a1b4r
+mach4tr
+ma2ci
+mad4
+ma3da
+ma3de
+ma4d2s
+ma1e
+ma1f
+2m1agg
+magi5er.
+magi5ers
+ma5g6n
+2m1ago
+3mah
+ma3ha
+mah4ler
+mah3li
+mai6se
+2m1akt
ma1la
-ma8lau
-mal5d
-8malde
-mali5e
-malu8
-ma8lut
-2m1amp
-3man
-mand2
+ma2l1ak
+ma2lan
+ma2l5at
+ma2lau
+ma3law
+mal3d
+mali3er
+mal3lo
+2mallt
+malu4
+ma2l3ut
+mam3m
+2m1anal
+ma2nau
+2manb
+man2ce
+mand4
+man3do
man3ds
-8mangr
-mani5o
-8m5anst
-6mappa
-4m3arbe
-mar8kr
-ma1r4o
-mar8schm
-3mas
-ma1sc
-ma1tö
-4m5auf
-ma5yo
-2m1b
-mb6r
-2m1c
+man3ers
+ma2net
+mang2
+2mangr
+m2anh
+2manl
+m4ann
+manu3
+2manz
+ma2or
+5m4app
+2m1arb
+mar3g2
+ma3ri
+3mark
+4mar4o
+maro3d
+4marr
+mar6schm
+mar5te
+ma3ru
+3m4as
+ma3s2p
+ma3sto
+ma1s2tr
+3maß
+m4at
+ma2tan
+ma2tä
+mat4c
+ma4tel
+ma4t3erd
+mat3se
+mat3sp
+3maue
+2m1au2f
+ma3un
+2mausg
+m4ay
+ma1yo
+ma3zu
+1mä
+m1ähn
+mä1i2
+6m1änd
+m1ärg
+mät4
+mä1tr
+mäu4s3c
+2m1b4
+mb2a
+mbe2e
+mbe4n
+m3b6r
+2m3c
2m1d
-md6sä
+md1ar
+m2d1ä
+md1ei
+md3s2e
+m2d1um
+mdu3s
1me
-me1ch
-me5isc
-5meld
-mel8sa
-8memp
-me5nal
-men4dr
-men8schl
-men8schw
-8mentsp
+meb6
+me1c
+medi3
+medi5e4
+medien3
+2medy
+me1ef
+me3e2n
+mega5
+3meh
+2m1eif
+m2eil
+me1i2so
+3meist
+2mej
+me3lant
+3meld
+me2lek
+melet4
+2m1elf.
+mell2
+melt4
+6m5eltern
+mel3tr
+2m1e2mi
+3m2en
+me3nal
+men3ar
+men3au
+m3endl
+men3gl
+me3nor
+men4s3k
+men4so
+men3st
+men3ta
+men6tanz
+4m3entn
+ment6sc
+4mentw
+me1o
+2me3ou
+2meö
+3mer.
me1ra
-mer4gl
-me1ro
+mera3li
+me2r3ap
+mer2er
+4m3ergän
+me5ric
+3merin
+mer2kl
+3mers
+me3run
+mer3z4en
3mes
-me6s5ei
-meta3s2
-me1th
-me8ß
-2m1f6
-2m1g
+me2s1a
+me2sä
+mes2e
+4me3sh
+4mes2sa
+mes2s1o
+mess1p
+meste2
+4mesu
+me3t4a
+mete2
+me3th
+meu1
+2mex
+1mé
+2m3f
+mfi4l
+4m1g2
+mge1
2m1h
1mi
-mi1a
-mi6ale
-mi1la
-2m1imm
-mi1na
-mi5nü
-mi4s3an
-mit1h
-mi5t6ra
-3mitt
-mitta8
-mi6ß5
-6mj
-2m1k8
+3mi.
+mi1ak
+mi3an
+mibi3e
+mi1c
+mi3da
+mie3dr
+mi2e1i
+mi2er
+miet1i
+3mig
+mi2ki
+mi2ku
+mi3l2a
+3mil4c
+milch1
+2m1imp
+min5de
+min2e
+mi3neu
+min2ga
+mings4
+ming3st
+mi3ni
+mi3n2o
+3miri
+3mirs
+mir5sc
+3mirw
+mi2sa
+mise1
+mi3sp
+mis2s3c
+mi4ste
+3mi2t1
+mit3es
+mit3h
+mit3s4
+mit5sa
+mi5tsu
+4mitz
+2m1j
+2m1k4
+m3ka
+mk5re.
2m1l
+m3la
+m3le
+m5li
+mlö3
2m1m
-m6mad
-m6m5ak
-m8menth
-m8mentw
-mme6ra
-m2mn
-mm5sp
-mm5ums
-mmut5s
-m8män
-m1n8
-m5ni
+mma4ge.
+m2m1ak
+m2m1al
+m2m1ang
+m2m1ans
+mm1anz
+mma3s4t
+m2m1au
+m2m1ei
+mme4lin
+mme4na
+mme2ra
+mme4rec
+mmer3k
+mm1inb
+mm1inf
+mm1inh
+mm1ins
+mm1int
+mmi3sc
+mmi3s2t
+mm3m2
+mm3p
+mm3sp
+m2m3um
+mmül2
+2m1n2
+m4nesi
+m3ni
1mo
-mo5ar
-mo4dr
-8mof
-mo8gal
-mo4kla
-mol5d
+mo4a3
+2mobj
+3mod
+mo2dr
+4mog.
+mo2gal
+3moh
+mo2i
+moi5r
+mo2k1l
+4mol.
+3mom
+mo5m4e
m2on
-mon8do
-mo4n3od
-mon2s1tr
-mont8a
-6m5ony
-mopa6
-mo1ra
-mor8d5a
-mo1sc
-mo1sp
-5mot
-moy5
-2mp
-m1pa
-mpfa6
-mpf3l
-mphe6
-m1pi
-mpin6
-m1pl
-mp2li
-m2plu
-mpo8ste
-m1pr
-mprä5
-mp8th
-mput6
-mpu5ts
-m1pö
-8m1q
-2m1r
-2ms
-ms5au
-m1sc
-msch4l
-ms6po
-m3spri
-m1str
-2m1t
+mo3ne
+mo4n1er
+mons1
+mon5su
+3mo2o
+2mo1pe
+mo2per
+2mopt
+mo1r4a
+mor5ar
+2morc
+mor4d3a
+morgens6
+mo4sk
+mo3sp
+mo5s2ta
+mo3to
+m1o2x
+mo1y
+1mö
+möbe2
+mö2c
+4mök
+2m1p
+mp4f3erg
+mpf3erp
+mpf3err
+mp4f3erz
+mp2fl
+mpf3li
+mpf1or
+mp6lif
+mp3lu
+mp3ta
+2m1q
+4m3r
+4ms
+msa3l
+m2s1an
+ms3and
+m4sap
+ms3as
+m2s1au
+m3se
+m4s1ef
+ms1erw
+m4s1ex
+ms1ini
+mso2r
+ms1ori
+m2spä
+ms2po
+ms3s2
+m6stag
+m2stal
+ms2tau
+m1stec
+m1s2ti
+ms2to
+m1s2tr
+m2strä
+m1s2tu
+m3s2tü
+ms1um
+m2sü
+m3sy
+ms2ze
+4m1t
+mt1ab
+mt1ak
+m3t2am
mt1ar
-m8tein
+mt3are
+mt1ein
+mt1elt
+m2t1erf
+m2t1erg
+m2t1erl
+m2t1ers
+m4t1ert
+m4t3eta
+mt1eu
m2t1h
-mt6se
-mt8sä
-mu5e
-6m5uh
-mumi1
-1mun
-mun6dr
-muse5e
-mu1ta
+mt5ho
+m3ti
+m4t1im
+m4t1ins
+mt1int
+mti2s
+mt1ös
+mt2s
+mt3sc
+mt5sco
+mts1e
+mt3s2ka
+mts1p
+mt3spa
+mt3st
+mts3ti
+mt3t
+mt1um
+mtu3re
+mt1urt
+mt3z2
+1m2u
+mu1a
+mu3cke
+2m3uh
+mu3la
+2muls
+m3umg
+3mun
+mu3na
+mun2d1a
+mu3ne
+4m3unf
+4m3ungeb
+m4unk
+mu3no
+mu3ra
+mur3ma
+mu3ru2
+mu4r1uf
+mu4s3a
+mu2s1o
+mu2sp
+mu2s1t
+mu2su
+mut1au
+mut2s3
+1mü
+2müb
+3mün
+3müt
2m1v
-mvol2
-mvoll3
-2m1w
+mvol2l1
+2m1w2
+mwa4
+mwel4
1my
+my4s3
+my3t
2m1z
-mä6kl
-1män
-mä1s
-mä5tr
-mäu4s3c
-3mäß
-möb2
-6möl
-1mü
-5mün
-3müt
-1na.
-n5ab.
-8nabn
-n1abs
-n1abz
-na6bä
+6n.
+1na
+5na.
+2n1ab
+3naba
+na3ber
+4nabw
na2c
-nach3e
-3nacht
-1nae
-na5el
-n1afr
-1nag
-1n2ah
-na8ha
-na8ho
-1nai
-6nair
-na4kol
-n1akt
-nal1a
-8naly
-1nama
-na4mer
-na1mn
-n1amp
-8n1amt
-5nanc
-nan6ce
-n1and
-n6and.
-2n1ang
-1nani
-1nann
-n1ans
-8nanw
-5napf.
-1n2ar.
-na2ra
-2n1arc
-n8ard
-1nari
-n8ark
-6n1arm
-5n6ars
-2n1art
-n8arv
-6natm
-nat6s5e
-1naue
+nach1
+na3chen
+nachs2
+5nachw
+na3cke
+4n3add
+4n3adr
+na1e
+n1af
+na1f4r
+3nag
+5n2ah
+na2h1a
+n4ahm
+n3ahn
+3nai
+n3aig
+n3air
+2n1ak
+na2ka
+3nako
+n3akt
+n2al.
+nal1a2
+na2l3ad
+na2lä
+5n2ald
+nal3ent
+na2let
+nal3k
+nal3l2a
+nalmo2
+n2als.
+nal3t4
+na2lu
+2naly
+n4am.
+3n2ame
+5na3me.
+5n4amen
+4n3a2mer
+5nami
+na3m4n
+3namo
+n3amp
+nam4sp
+4n3amt
+namt6s
+n1an
+4nan.
+4na2na
+4n3anb
+n2anc
+4n3ang4
+4nani
+4nank
+4n3anl
+na3no
+4n3anr
+4n3ans
+4n3antr
+2n3anw
+n1ar
+5n4ar.
+na2r1a
+n4ard
+3nare
+5nari
+n2arl
+n3arl.
+2narm
+2n3art
+na3ru
+3nas
+na4schw
+4n3asp
+na5sta
+4nasy
+3nat
+5nat.
+5nate
+na3t2h
+5nats1
+nat4sa
+nat6sc
+nat3st
+4natt
+n1au
4nauf
+nauf4fr
n3aug
5naui
-n5auk
-na5um
-6nausb
-6nauto
-1nav
-2nax
-3naz
-1naß
-n1b2
-nbau5s
-n1c
-nche5e
-nch5m
-2n1d
-nda8d
+3n2aul
+4n3ausb
+nau3sc
+4n3ausg
+n3ausl
+4n3auss
+4n3ausw
+nau5te
+navi5er.
+navi5ers
+1nä
+n2äc
+3näe
+3näh
+n1ähn
+2n1ä2m
+2n3än
+när4s1
+n1ärz
+2näs
+nä4sc
+2näu
+5nä1um
+4n7b6
+nbe2in
+nber2e
+4n1c
+nc5ab
+nce4n
+n3cer
+n3ces.
+n3che
+nch3m
+n3chu
+n2ck
+n5cu
+4n1d
+nd1ab
+n3daf
+nd2ag
n2d1ak
-nd5ans
-n2d1ei
-nde8lac
-ndel6sa
-n8derhi
-nde4se
-nde8stal
-n2dj
-ndnis5
-n6d5or6t
-nd3rec
-nd3rot
-nd8samt
-nd6sau
-ndt1h
-n8dumd
+n4dakt
+nd1ana
+nd1ann
+n2d1anz
+nd1arb
+nd3arr
+nda3ru
+n2d1au
+n3de.
+nde4al.
+nde3alt
+nd1ei
+nd3ei.
+ndel4st
+n3den.
+n4d3ents
+nde3o
+n5der.
+n5deri
+nde4rob
+nder5ste
+nde4s
+ndes1e
+ndo1c
+n3dol
+nd1op
+n2d1or
+ndo3st
+nd3rat
+nd3räu
+n2d3re
+nd3rob
+nd3rol
+nd3ros
+n2d3rö
+n4drui
+n4d5run
+nd2sor
+nd2spr
+nds3tau
+nd3te
+nd1th
+nd1t4r
+n2dum
+nd2ums
+n2d1und
+n2dü
1ne
-ne5as
+3ne.
+ne2a
+ne3am
+ne3an
+ne3as
+ne3at
+ne3au
ne2bl
-6n5ebn
+2n1ebn
2nec
-5neei
-ne5en
-ne1g4l
-2negy
-4n1ein
-8neis
-4n3e4lem
-8nemb
-2n1emp
-nen1a
-6n5energ
+3neca
+4nech
+2ne2e1
+nee3i4
+ne3ein
+ne3en
+nee3t
+n1ef
+3nefe
+4neff
+ne3g6
+3n2eh
+n3ehe
+4ne2he.
+6n3ehr
+2n1ei
+n2eid
+6neif
+3neigt
+5neigu
+4nein
+6n3eing
+6n3eink
+ne2ke
+nek3t
+ne2l
+nel3b
+4n1ele
+ne3len
+ne3li
+nel4la
+3ne3l2o
+ne3lu
+5n2em.
+2n1emb
+n1e2mi
+2n3emp
+2n1ems
+3nen
+n2en.
+ne4n3a
+nen3dam
+4n1endb
+4n1endd
+4n1endf
+n1endg
+4n1endh
+4n1endk
+4n1endp
+4n1endt
+4nendu
+4n1endw
+ne2n1e2b
+nen3ei
+ne4nene
+ne2ni
nen3k
-8nentb
-4n3en3th
-8nentl
-8n5entn
-8n5ents
+5nenn
+ne2no
+nen7s4e
+nen3sk
+5n2en5t2a
+n1entb
+4n3entl
+4n1entn
+4n3ents
+4nentw
+6nentz
+ne2n1u
+n2env
+ne2ob
+ne1os
+ne4pf
+2nepo
+ne2pos
+3n2er.
ne1ra
-ne5r8al
-ne8ras
-8nerbi
-6n5erde.
-nere5i6d
-nerfor6
-6n5erhö
-8nerlö
-2n1err
-n8ers.
-6n5ertra
-2n1erz
-nesi3e
-net1h
-neu4ra
-neu5sc
-8neuß
-n1f
-nf5f
-nf2l
-nflei8
-nf5lin
-nft8st
-n8g5ac
+ne2rab
+ne5r4al
+ne2r3am
+ne2r3ap
+ne2rau
+4n3erbi
+2n1erf
+4n3erfo
+nerfor4
+4n3erfü
+n1erg
+2n1erh
+n3erhö
+ne3ri
+n1erk
+n3ermä
+ner4mit
+2nermo
+4n3ernt
+ne1rös
+n2ers.
+2n3ersa
+ner8schle
+3n4ert.
+4n3ertr
+ne2rup
+4n1erz
+3n2es
+n4es.
+ne3san
+ne2sä
+nes4c
+nesi1e
+nes2k
+ne3ska
+ne2s1o
+ne2s1p
+4n3essi
+5nest
+ne2ste
+nes3ti
+net1ak
+net1an
+ne2tap
+n3etat
+net1au
+ne2th
+net3ha
+ne2tre
+nett6sc
+2n3e2tu
+net2zi
+ne2u
+neu3c
+neu3g
+5n2ew
+2n1ex
+3nez
+1né
+2n1f
+n3fä
+n3f2e
+n5fi
+nfi3le
+nf3läd
+nf3lin
+n3f2o
+nfo3s
+nf3st
+nft2o
+nft4s3
+4ng
+ng2abs
+n2g1ac
+n2g3ad
+nga2ge
+n2g1ak
+n2g1a2m
+n2g1and
+n4ganl
+ng1anz
+n3gap
+n4garb
+n3gas
+n2g1äl
ng5d
-ng8en
-nge8ram
-ngg2
-ng1h
-n6glic
-ng3rip
-ng8ru
-ng2se4
-ng2si
-n2g1um
-n1gy
-n8gäl
-n1h
-nhe6r5e
+n3ge
+n4g5ein
+n5g2en
+ngen4da
+nge5nerw
+nge4ram
+n4g5erse
+n5ges
+ng3g4
+ng5ho
+ng5hu
+n2g1i2d
+ng4lad
+n3gläs
+ng3lein
+ng3lo
+ng3lu
+ng5m
+ng3ne
+n2g1or
+ng3rat
+ng3räu
+ng3rein
+ng3rev
+ng3roc
+ng4sau
+ng4s3c
+ng4s3e4h
+ng5stel
+ng5stö
+ng3ts
+n2gue
+n2gum
+4n3h
+n5han
+n5har
+n5hau
+n5hä
+n5he
+nhe2r
1ni
-ni1bl
-ni5chä
-ni8dee
-n6ie
-ni1en
-nie6s5te
-niet5h
-ni8etn
-4n3i6gel
-n6ik
-ni1la
-2n1imp
-ni5na
-2n1ind
-8ninf
-6n5inh
-ni8nit
-6n5inn
-2n1ins
-4n1int
-n6is
-nis1tr
+3ni.
+3ni2a
+ni3ba
+nib3b
+2ni2d
+ni3de.
+ni3di
+ni3dr
+n4ie
+nie3b
+nie3fr
+ni1el
+nie3l2a
+nie4n
+ni5ene
+ni1ero
+ni3fa
+nifi3
+3nig
+nig2a
+4n3i2gel
+ni2g3r
+nig4sp
+3nik
+nik1al
+ni2kä
+nik3ing
+ni3kl
+ni2kr
+3nil
+n2imm
+nim2o
+4n3imp
+3n4in.
+nin2a
+4n3ind
+2ninf
+3n2ing4
+4n3inh
+nin1i
+4n1ins
+4n3int
+2n3inv
+3nio
+ni2ob
+ni5ok
+ni3ol
+ni3os
+3n4is
+ni4schw
+ni4s1e
+ni5se.
+niso2
+nis1p
+nis3s2
+nis3tr
+ni2s1u
+2nit
ni1th
-ni1tr
-n1j
-n6ji
-n8kad
-nk5ans
-n1ke
-n8kerla
-n1ki
-nk5inh
-n5klö
-n1k2n
-n8k5not
-nk3rot
-n8krü
-nk5spo
-nk6t5r
-n8kuh
-n6küb
-n5l6
-nli4mi
-n1m
-nmen4s
-n1na
-n8nerg
-nni5o
-n1no
-nn4t3ak
-nnt1h
-nnu1e
-n1ny
-n1nä
-n1nö
-n1nü
-no5a
-no4b3la
-4n3obs
-2nobt
-noche8
-no6die
-no4dis
-no8ia
-no5isc
-6n5o6leu
-no4mal
-noni6er
-2n1onk
-n1ony
-4n3o4per
-6nopf
-6nopti
-no3ra
-no4ram
-nor6da
-4n1org
-2n1ort
-n6os
-no1st
-8nost.
-no8tan
-no8ter
-noty6pe
-6n5ox
-n1p2
-n1q
-n1r
-nrös3
-6ns
-n1sac
-ns3ang
-n1sc
-n8self
-n8s5erf
-n8serg
-n6serk
-ns5erw
-n8sint
-n1s2pe
-n1spr
-n6s5tat.
-n6stob
-n1str
-n1ta
-n4t3a4go
-nt5anh
+ni4ti
+ni3t4r
+nit2s
+ni3tsc
+nitt4sa
+ni3tu
+3niu
+3niv
+3nix
+2n1j
+4n1k
+n2k3ad
+n2k1ak
+n3k2al
+n4k3alg
+nk1apf
+nk1arb
+nk1arm
+nk3arti
+nk1aus
+nk1äh
+n2k1är
+nk1e2c
+nk1ein
+n4k3erfa
+nk1inh
+n2k1ins
+n3kir
+n5klag
+nk3len
+nk3les
+n2k3li
+n3klin
+nk4lu
+nk5lun
+n3k4na
+nk3ne
+nk3nor
+n3ko
+nkor5d
+n4k1ort
+nk3rät
+n4kre.
+nk3rede
+n3kri
+nk3ro
+nk2s1al
+nks2ei
+nk2spa
+nk3spo
+nk3s2z
+nk2ta
+nk3ti
+nk4t5i2t
+nk4top
+nk2tru
+6n5l
+4n3m4
+nmen2s
+4n1n
+nna2be
+n2nada
+n4n1all
+n2nan
+n2nau
+nn3d
+n3n2e
+nn3ein
+n4n3eis
+nn3ele
+nnen3g
+nne5p
+nne2rö
+n4n3er4wa
+nn3er2z
+nne2s
+nnes1e
+nne4st
+n5neu
+nn3f
+nn3g
+n3ni
+nnis3t
+nno3b
+nn1o2r
+nn5sc
+nn3s2p
+nn3ste
+nns2tr
+nn4th
+n4n1uf
+n2n1unf
+nn1ur
+1no
+5no.
+n2obl
+no2bla
+3noblo
+2n1obs
+no1c
+2no2d4
+no3dr
+2n1of
+4n3o2fe
+n4oi
+2nole
+no2leu
+nom4e
+n2on.
+no3n4a
+non3s
+3n2opa
+2nopt
+2nor
+3nor.
+nor2a
+no2rad
+no1rak
+no3ral
+nor4d5r
+3norh
+3nors
+n1ort
+3n2os.
+no5se
+no3sh
+3n2o3ste
+n1osth
+no3st4r
+no5tab
+no2tä
+no4t1ei
+no4t1el
+no4t3in
+no2t1op
+no2tr
+3nov
+4n1o4x
+3noz
+2nöd
+2n1ö2f
+n1ök
+4n1öl
+4n5p2
+npa4g
+npir5
+npro3
+npsy3
+2n1q
+4n3r2
+nre3sz
+nrö4s3
+n5ru
+4n1s
+ns3ab
+n2s3a2d
+ns3ak
+n2s1all
+ns1an
+n3sand
+ns3ans
+ns3art
+ns1au
+ns3auf
+n2s1än
+n2s1äus
+n5sche.
+n5sches
+n5schi
+n6schlic
+n5schr
+n6schro
+nsch7werd
+n3se
+ns1e2b
+ns3ebe
+ns1e2d
+nseh5ere
+nseh3i
+n5senk
+nsen4sp
+n4s1ent
+n4s1ep
+ns1erf
+n4s1erg
+ns3erh
+n4s1erk
+n4s1erö
+n4s1ers
+n4s3erw
+n4s1erz
+nse2t
+n4s1eta
+ns3h
+nsho2f
+n3sil
+n2simp
+n2s1ini
+ns3int
+nsi4te
+ns2kal
+ns3ko
+ns3ku
+ns3ky
+ns3l
+n3so
+ns3ob
+n4s1op
+n4s3ort.
+ns3park
+ns4pei
+n3s4pek
+ns3ph
+ns2pi
+n2sprä
+n4s3prie
+n4spro
+nsrü2
+ns3s2
+nst1ak
+n3star
+n4s3tate
+ns2tau
+n2ste
+n3stei
+nst3eif
+n3stel
+n4stem
+n5stemm
+ns4tent
+n3step
+n5s6terbe
+n5s6terne
+n5s6terns
+n5steu
+ns2tie
+ns2to
+n4strac
+n4strie
+ns2tu
+nst4ü
+nstü1b
+n4sty
+n3su
+ns2um
+n4s1un
+ns2unr
+n3sy
+ns3zi
+4n1t
+nt3abs
+nta3c
+nt2al
+nta3m
+nt1ang
+n4tanza
+nt2arb
nt3ark
-nt3art
-n1te
-nt3eis
-nte5n6ar
-nte8nei
-nter3a
-nte6rei
-nt1ha
-nt6har
-n3ther
-nt5hie
-n3thus
-n1ti
-nti1c
-n8tinh
-nti1t
-ntlo6b
-ntmen8
-n1to
-nt3o4ti
-n1tr
-ntra5f
-ntra5ut
-nt8rea
+n5tarm
+nt4as
+nt4at
+n4t1auf
+n3taur
+n3taus
+nt1äm
+n2t1äu
+n3te
+n5te.
+nte3au
+nte2b
+nt1ebe
+nte1e
+nte3g6
+n4t1eh
+n4teig
+n4t1ein
+ntem3p4
+n5t4en
+nten6te.
+nt5ents
+n5t4er
+nte3ru
+n5tes
+n6t3ess
+n5tet
+nte3v
+n2th
+n3the
+nt1hi
+nt1ho
+n3thol
+n5thr
+n5t4hu
+n3ti
+nti3c
+nti3k4l
+n4tinf
+n4t1inh
+ntini1
+n5ti1t
+ntmo2
+n5to
+nto5me
+nton4s1
+ntons3c
+n3tö
nt3rec
-nt8rep
-n4t3rin
-nt8rop
-n4t3rot
-n4trü
-nt1s
-nts6an
-nt2sk
-n1tu
-nt1z
-n1tä
-n1tö
-n8töl
-n1tü
+n5tree
+nt3reif
+n5t4rep
+n2t3rin
+n5trop
+n2t3rü
+n4ts
+nt3sa
+nt3s2o
+nt3s2p
+nt4s3par
+nt2sto
+nt3t
+n3tu
+ntum4
+nt3z2
1nu
nu1a
-nu5el
-nu5en
-4n1uhr
-nu5ie
-8numl
-6n5ums
-6n5umw
+nu4ale
+nu3ar
+nu3as
+nubi3
+2nu1c
+3nue
+nu2es
+nu3et
+nuf2
+nu2fe
+2n1uh
+3nu3k4
+n2um.
+2n5umb
+2numf
+2numg
+3numm
+2numr
+2n1ums
+2n5umz
+nu4n
+n1una
2n1und
-6nuni
-6n5unr
-2n1unt
+3nung.
+n1ungl
+2n1uni
+2nunt
2nup
-2nu6r
-n5uri
-nu3skr
-nu5ta
-n1v
-8n1w
+2nur
+n2u2s
+nu3sc
+nu3se
+nu3sl
+nu3spo
+nu2ta
+nu5te
+nu2t3r
+5nü.
+2nü2b
+nür1c
+3nüs
+1nüt
+4n1v2
+n3ver
+n3vi
+4n1w
+n3wa
+1ny.
+1nyh
+2nymu
+n1yo
+1nyr
1nys
-n1za
-n6zab
+1nyw
+4n1z
+n2zad
+n2z1a2g
+nz3am
+n2zan
n2z1ar
-n6zaus
-nzi4ga
-n8zof
-n6z5unt
-n1zw
-n6zwir
-1näc
-5näe
-5näi
-n8äl
-nä6m
-nä6re
-n5ärz
-5näus
-n1öl
-1nöt
-n5öz
-5nü.
-6n1ü2b
-5nüß
-o5ab.
-oa2l
-o8ala
-o1a2m
-o1an
-ob1ac
-obe4ra
-o6berh
-5o4bers
-o4beru
-obe6ser
+n2z1au
+n2z1än
+n2z1är
+n2z1ec
+n4zense
+n4zentz
+nz3erwe
+nzi2ga
+nz1ini
+nz1of
+n2z1or
+nz3th
+n2z1wa
+n2z1wä
+nz1wer
+nz1wet
+nz1wir
+n2z1wu
+nzzol3
+ño1
+4o.
+2o3a2
+o5abs
+o4ac
+oa3che
+oa3chi
+o4ad
+oa3de
+o4ah
+o4a3i
+oa3ke
+oa4k5l
+o4a3la
+o4a3mi
+oanne4
+o4ar
+o4as
+3oa3se
+o5asi
+o4at
+o1b
+ob2al
+o3bar
+2o3b2ä
+2obb
+ob2e
+2o3be.
+ob3ein
+2oben
+oben5se
+o2ber
+obe4ris
+obe6sp
+2obi
1obj
-o1bl
-o2bli
-ob5sk
-3obst.
-ob8sta
-obst5re
-ob5sz
+ob1l
+ob3la
+o2b5li
+1obm
+2obo
+o2b3re
+ob6ris
+ob2s
+ob3s2h
+ob3sk
+ob3so
+ob3s2p
+ob3str
+2o3bu
+2o3bü
+2oc
+o3ca
+o1ce
+och1a
+ocha2b
o1che
-oche8b
-o8chec
-o3chi
-och1l
-och3m
-ocho8f
-o3chro
+oche4b
+o2ch1ec
+och1ei
+och3l
+och5m
+och1o
+och1ö2
+och3r
+ocht2
+och3te
och3to
-o3chu
-och1w
-o1d
-o2d1ag
-od2dr
-ode5i
-ode6n5e
-od1tr
-o5e6b
-o5e6der.
-oe8du
-o1ef
-o1e2l
-o1e2p
-o1er.
-o5e8x
-o1fa
-of8fan
-1offi
-of8fin
-of6f5la
-o5fla
-o1fr
-8o1g
-og2n
+o1chu
+ochu2f
+och3w
+o3ci
+o1ck
+o2ckar
+o3ck2e
+o3cki
+ock3sz
+o3cr
+o1ç
+2o1d
+o3dar
+o3deb
+o3de3i
+ode2n
+oden1e2
+ode3sp
+o3dex
+o3dir
+odo4s
+4odr
+o2dre
+od1t4
+4o3du
+2o1e2
+o2ec
+o3en1
+o2e3s
+oe3t
+o3et.
+o3ets
+o1ë
+2ofa
+of1a2c
+of1am
+of1au
+o2f1ei
+of2en
+o3fer
+ofes3
+of2f1a
+of2f1in
+1offiz
+of2f3l
+of2f3r
+offs2
+of2fu
+2ofi
+ofi3k
+of3l
+of1la
+2ofo
+o1f1r
+of3ra
+of3rä
+of2s
+of4s3a
+of3sä
+of3st
+ofs1u
+2oft
+of2tei
+of3th
+4o1g
+o2g1ab
+oga3d
+og1ala
+og1ang
+oga4t3
+oga5te
+o2g5ei
+oge2l1i
+o3gh
+ogi2er
+og3ins
+o2gl
+o3glo
+o3g6n
+ogs4
+og3sp
o1ha
+o1hä
o1he
-o6h5eis
+o3he.
+oh1eis
+o3heit
+o3hem
+o3hen.
+o3her.
+o3here
+oh1ert
+oh1erz
+o3hes
o1hi
ohl1a
-oh1le
-oh4l3er
-5ohm.
+oh3lec
+ohl1ei
+oh5lem
+oh5len
+oh3lep
+ohl3erh
+oh5les
+oh3li
+oh3lo
+ohls2e
+oh2lu
+oh3m
+2ohn
+ohn3a
oh2ni
+oh2n1o
o1ho
-oh1re
-oh1ru
+oho2la
+oh1o2p
+o2h1ö
+ohr1a
+oh4rin
+oh1s
+oh3ta
o1hu
oh1w
-o1hy
-o1hä
-o5ia
-o1id.
-o8idi
-oi8dr
-o5ids
-o5isch.
-oiset6
+2o1hy
+2oi
+o1i2d
+o3ie
+o1im
+oimmu4
+o1i2n
+o4i3ne
+oi4r
+o2isc
+o3isch.
o1ism
-o3ist.
-o5i6tu
-o1j
-o1k
-ok2l
+oi1th
+2o1j
+2o1k
+oka3i
+oka2la
+okale2
+3o4kel
+o3ki
+oki4o
ok3lau
-o8klä
-1okta
+ok3lä
+okna3
+ok2s1p
+ok3t4
+2ol
o1la
-old5am
-old5r
-o1le
-ole5in
-ole1r
-ole3u
-ol6gl
+o2l1ak
+ol2ar
+ol1auf
+o1lä
+4olc
+ol4dam
+ol4d5r
+oldwa5s
+ol1eie
+ol1eis
+ole3s
+ol1ex
+o1lé
+ol4fa
+ol2f3l
+olf1r
+ol2fra
+olf3sp
+olge4ne
+ol2gl
+ol2gr
+ol2i
+olib6
+oli5en
+oli5f
+oli5tu
ol2kl
-olk4s1
-ol8lak
-ol8lauf.
-ol6lel
-ol8less
-o1lo
-ol1s
-ol2ster
-ol6sk
+ol2k3r
+ol2lak
+ol2lau
+ol4l1e2c
+ol2l1ei
+oll1el
+oll5ends
+ol4l3erk
+oll5erwe
+ol3les
+ol3lo
+ol2lu
+o3lo
+o5l2of
+olo3p2
+ol1ort
+o1lö
+ol2pr
+ol2str
o1lu
-oly1e2
-5olym
-o2mab
-om6an
-o8mau
-ombe4
-o8merz
-om5sp
-o1mu
-o8munt
-o1mä
-o1mö
-o1na
-ona8m
-on1ax
-on8ent
-o6n5erb
-8oni
-oni5er.
-on1k
-on6n5a6b
-o1no
-ono1c
-o4nokt
-1ons
-onts8
-o1nä
-oo8f
-1oog
-oo2pe
-oo2sa
+ol2z1a
+ol6z3ern
+ol2zin
+4om
+oma4ner
+om2anw
+om1art
+o2m1au
+o3me.
+o2meb
+ome3c
+o2m1ei
+o3m2eis
+o2mel
+o5men.
+om3ene
+o2mep
+o2meru
+om1erz
+omie4t1
+o2m1ind
+om1ing
+o3mini
+om1int
+om3ma
+om3me
+omme4r
+om1org
+om3pf
+omp6l
+oms2
+om3sp
+om1st
+o4m3un
+o5m4ung
+omy1
+2on2a
+on3a2b
+o2nae
+on3ak
+o3nal
+on3ap
+o2n3ar
+on4are
+on4at
+on3aus
+2o3nä
+onbe3
+2onc
+2one
+on4eh
+on4e2n1
+onen3g
+onens2
+o2n1erb
+on1erd
+on1erö
+o3nett
+on5f
+4ong4
+on3gl
+ong5sc
+ong5st
+4o3ni
+o5ni.
+oni3d
+o4ni4kr
+o4n1im
+on3ing
+on5k4
+onli4
+onlo2c
+on3nan
+o3no3
+o4noke
+on1orc
+on4os
+on2s
+ons3a2
+on3sch
+on4seb
+onse2l
+onsi2
+ons1p
+ont2a
+ont3ant
+on6t5end
+ont5erw
+on2t1ri
+2onuk
+on5v
+1ony
+on5z
+o1ñ
+oof4
+oo2k
+ook3l
+o1op
+o1or
+oor3f
+oo4sk
+oo2tr
+oot2st
+2o1ö
o1pa
-3o4pera
-o3pfli
-opf3lo
-opf3r
-o1pi
-o1pl
-o2pli
-o5p6n
-op8pa
-op6pl
-o1pr
-o3p4ter
-1opti
+opa1b4
+o2p3ad
+op1akt
+opa5st
o1pä
-o5pö
+o1ped
+o1pei
+o3pek
+o1pe4n
+2opf.
+op2f1a
+op3fah
+opf3l
+opf4li
+op1flu
+op1flü
+4oph2
+o1pi
+opi5a6
+opi3er.
+opi5ers.
+opin2
+op5lag
+op3le
+op3li
+2o3po
+op4pl
+op2pr
+2o1pr
+1opsi
+op3sz
+1opt4
+op3th
+op3tr
+o1pu
o1q
-o1ra.
-o3rad
-o8radd
-1oram
-o6rang
-o5ras
-o8rauf
-or5cha
-or4d3a4m
-or8dei
-or8deu
+2or.
+or1a
+or3a2b
+o1rad
+or3adr
+2orak
+2oral
+ora3li
+o4r3alm
+or4alt
+o2ranh
+orani1
+or3arb
+o1ras
+or3au
+o3r2ä
+or3änd
+or3ät
+or2bar
+or1c
+2orca
+or2ce
+4or2da
+ord1am
+ord3ele
+or4d3eng
+or2deu
+or2d1ir
1ordn
-or4dos
-o1re
-o5re.
+or2do
+2ords
+ord3s2t
+2ordw
+4ore
+ore4a
+o2r1e2ck
+o5ree
+o2r1ef
ore2h
-o8r5ein
-ore5isc
-or6enn
-or8fla
-or8fli
-1orga
-5orgel.
+or1eig
+o2rein
+o2r1er
+or3eth
+2orf
+or2fle
+or3ga
+2orget
+or3g2h
+2orgia
or2gl
+or3gle
+2orh
o1ri
-5o6rient
-or8nan
-or8nä
-o1ro
-or1r2h
-or6t5an
-or8tau
-or8tere
-o1rus
-o1ry
-o1rä
-or1ü2
-o1sa
-osa3i
-6ose
-o8serk
-o1sk
-o6ske
-o6ski
-os2kl
-os2ko
-os2kr
-osni5e
-o2s1o2d
-o3s4per
-o4stam
-o6stau
-o3stra
+2o3ric
+o3rier
+4oril
+4orin
+or1ins
+2orit
+or3k2a
+or4k3ar
+ork2s
+2orm
+or2mor
+or3na
+or3n2o
+orn3st
+2o1ro
+or3oly
+oro3n4a
+2o1rö
+2orq
+2orr
+or3rh
+2ors2
+or5sa
+ors4c
+orsch5li
+or3sh
+or3sz
+or2ta
+or3tad
+or4t1ak
+or4t3an
+ort1au
+ort3eig
+ort3ein
+or4tem
+or4t3ent
+or4t3ere
+or4t3erf
+or4t5ev
+or4the
+or4tin
+ort3ins
+or4t3off
+or2tö
+or4t3rau
+or4t3räu
+ort3re
+ort3ric
+ort5sch
+or2t1um
+o3ru
+or2uf
+o4r3un
+o5rus
+or3ü
+2orw
+o2rya
+o3s2a
+os3ad
+os4an
+osa3s
+os4co
+2o3se
+ose3ei
+o4s1ei
+ose2n
+o3s2hi
+o3sho
+2osi
+osit4
+osi3tr
+o3s2k
+os3ka
+os3ke
+os3ki
+os2lo
+o2s1p
+o4sper
+o3s2po
+os2sa
+oss3and
+os4sä
+os5se.
+os4sei
+oss3enk
+os5sent
+oss3enz
+os4s3o
+os4s3p
+os4st
+oss1ta
+oss1tr
+o2st
+os4t1a
+os5ta.
+osta2b
+os5tali
+os5tarr
+os2tau
+oster3e
+os6t5er6we
+ost1h
+os3til
+os1to
+os2t1ob
+ost3rä
ost3re
-osu6
-o6s5ur
-o5s6ze
-o1ta
-ot3auf
-o6taus
-o1te
-o6terw
-o1th
-othe5u
-o2th1r
-o1ti
-o1to
-oto1a
-ot1re
-o1tri
-o1tro
-ot1sc
-o3tsu
-ot6t5erg
-ot2t3h
-ot2t5r
-ot8tö
-o1tu
+ost3rot
+ost1uf
+osu4
+o1sy
+o3s2ze
+o2ß1el
+o2ß1enk
+o2ß1enz
+oße2r
+o2ß3ere
+o2ß1erf
+2o1t
+ota3m
+o3tark
+o2t1au
+ot3aug
+ot1är
+4o3te
+o4teb
+ote1i
+ote3i6n
+ote4l1a
+ot4em3
+otemp2
+o4t1erw
+4oth
+ot2he
+ot3hel
+o4t1hi
+ot1hos
+o4thr
+o3t2i
+o4t3i2m
+o4tl
+otli4
+4oto
+ot1opf
+ot2or
+o3tra
+o2t3re
+ot3rin
+ot3rut
+ots1p
+ot4spa
+ot3spe
+ot3stra
+ot2tau
+ot3te
+ot4t3erk
+ot2t3r
+ott3se
+2o2u
+oub4
+ou2ce
ou3e
-ouf1
-ou5f6l
-o5u6gr
-ou5ie
-ou6rar
-ou1t6a
+ou1f4l
+ou2ge
+ou3gl
+o3uh
+ou4le.
+o3um
+o3unds
+oun4ge.
+ouri4
+our6ne.
+our3st
+ou3s2i
+outu4
+2o1ü
o1v
+ove3s
+oviso3
+2o3vo
+2ow
o1wa
+o1wä
o1we
-o6wer.
+o3wec
+ow1ef
+owe2r1
o1wi
-owid6
o1wo
-o5wu
-o1xe
-oy5al.
-oy1e
-oy1i
-o5yo
-o1z
-oza2r
-1o2zea
-ozo3is
-oö8
-oß5elt
-oß1t
-3paa
-pa6ce
-5pad
-pag2
+o1x2a
+ox2e
+o1xo
+o2xu
+1oxy
+o1yo
+oys2
+oy3st
+2o1z2
+oz4e
+o3zi
+ozon3a
+ór3
+ö1b
+öbe4li
+ö2ble
+ö2b3r
+öb2s5
+2ö1c
+ö4ch3l
+ö2chr
+öch2s
+öchs4tu
+öcht4
+ö1d
+ödi3en
+ö2du
+ö1e
+öf2fl
+öf3l
+ög3
+ögen4s1
+ö2gl
+ö2gr
+ög4s
+ög4u
+2öh
+ö1he
+öh3l2e
+öh3m
+öh1ri
+ö1hu
+ö2k
+ö3ke
+öko3
+ök3r
+ö6l
+3öl.
+öl1a
+öl1ei
+öl1em
+öl2f1ei
+ölf3s
+öl1im
+öl1in
+öl2k5l
+öl3la
+öl4nar
+öl1o2
+öl3sa
+öl3s2z
+öl1u
+öl2ung
+öl3z2w
+2ön
+ön3d
+ön2e
+ö3ni
+ön2s
+ön3sc
+öo1
+ö1pe
+öpf3l
+öp2s3t
+ör3a2
+ör1c
+örden3
+ör2dr
+ö2r1ec
+ö2r1ei
+ö2r1e2l
+ör2erg
+ö3r2erz
+ör2f3l
+ör2gl
+ö1ri
+ö2r1im
+ör2kl
+ör1o2
+örs2e
+ör3sk
+ör2st
+ör2tr
+ö1ru6
+ö2r1une
+ö2sa
+ö2sc
+ö4sch3ei
+ösch3m
+2öse
+ö2s1ei
+ö2sp
+ös4s3c
+ös2st
+ö2st
+ös3te
+ös1tr
+ö1ß
+2ö1t
+ö2t3a
+ö3te
+öte4n1
+öt2sc
+öt2tr
+ö1v
+ö1w
+öwe4
+ö1z
+öze3
+özes2
+4p.
+1pa.
+1paa
+1pack
+pa3da
+pa3fa
+pa1f4r
+pa3g2
+pa1ho
1pak
-pa1la
-pa8na8t
-pani5el
-pa4nor
-pan1s2
-1pap
-pap8s
-pa8rei
-par8kr
-paro8n
-par5o6ti
-part8e
-5partei
-3partn
-pas6sep
-pa4tha
-1pau
-6paug
-pau3sc
-p1b
-8p5c
+pa1kl
+1pa1la
+pala3t
+1palä
+pa5li
+2palt
+p2an
+pa2nar
+pan3d
+pan4ds
+pa3nei
+pa2neu
+pan3k4
+2panl
+3pano
+pans4
+pan3sl
+3panz4
+3pap
+papie8r7end
+3parad
+pa2r3af
+par3akt
+pa5reg
+2par2er
+2parg
+1park.
+par4kam
+par4kau
+par4kl
+par2kr
+pa2ro
+1parol
+2parp
+1partn
+1party
+par3z2
+pa4s
+pa5sa
+pa5sc
+pa5se
+pa5si
+pa5s2p
+pa5str
+2paß
+p4at
+pa5ta
+pat4c
+pat2e2
+1pati
+1pat4r
+1pau3
+p1auf
+pa3uni
+pau4st
+pä2
+1päc
+pä3cke
+1päd
+pä3de
+1pärc
+pä3ß
+pä4t1e2h
+pä4t3ent
+pät1h
+pät3s
+2p1b
+2p3c
4p1d
-1pe
-4peic
-pe5isc
+pda4
+1pe.
+pe4a2
+pea4r
+1ped4a
+peed1
+2pef
+pei1
+pe1im
+3peit
2pek
-pen3k
-pen8to8
-p8er
+pekt4s
+1pel
+pe4l3a4
+pel5d
+pe2let
+pe3lin
+pe4l3ink
+pell4e
+1pem
+pena6
+pe3n4al
+pen3da
+pe4nen
+1penn
+3pensi
+1pensu
+pe2nu
+pen3z2
pe1ra
-pere6
-per5ea
-per5eb
-pe4rem
-2perr
-per8ran
-3pers
-4persi
-pe3rü
-pe4sta
-pet2s
-p2f1ec
-p4fei
-pf1f
-pf2l
-5pflanz
-pf8leg
+per4an
+pere2
+1perle
+per6na
+perne4
+per4r3a
+5pers
+perwa4
+pe3sa
+pes4e
+pese2n
+pes5s2
+pe2st
+3pet
+1pé
+2pf
+4pf.
+p2fab
+pf1abe
+p2faf
+pf3ai
+p2f1ak
+pf1ans
+p2fa6r
+pf3are
+p2f1au
+p2fei
+pf1eim
+pf1ein
+pf1eis
+pfe2l
+p3fen.
+p2fent
+p3fer.
+pf2erw
+p3fes
+pff4
+p2f1ins
+p2f5lä
pf3lei
-2pft
-pf3ta
-p1g
+pf3lie
+pf3lo
+pf3lö
+pf5lu
+p2for
+pf3r
+pf1ra
+pf1ri
+pfs2
+pf3sl
+pf3sp
+pf3sz
+pft2
+pf3th
+2p1g
+pgra2
1ph
-2ph.
-2p1haf
-6phb
-8phd
-6p5heit
-ph5eme
-6phg
-phi6e
-8phk
-6phn
-p5holl
-pht2
-ph3tha
-4ph3the
-phu6
-6phz
-pi1en
-pi5err
-pi1la
-pi1na
-5pinse
-pioni8e
+4ph.
+ph2a
+2phab
+2phä
+2phb
+4phd
+2p1hei
+phen3
+2ph1ers
+2phf
+4phg
+phi2ka
+4phk
+ph2l
+2ph3m
+2phn
+p3hop
+4phö
+ph4r
+2phs
+2ph3t2
+4ph5the
+phu4s
+4p1hü
+2phz
+pi4a3
+pia5l
+pia5s
+pi3chl
+p4id
+pie3fr
+pi2el
+pie4la
+3pi2er
+1pil
+pil4zer
+pi2na
+pin2e
+ping3s
+3pinse
+pi2n1u
+pi2o
+pi3oi
+pi3onu
+pi2pe
+pi5ri
1pis
-pi1s2k
+2piso
+pit2a
pi1th
-p1k
-pl8
-5pla
-p2lau
-4plei
-p3lein
-2pler
-6p5les
-2plig
-p6lik
-6p5ling
-p2liz
-plo8min
-6p1m
-p1n
+pit2s
+pi2z1in
+p1je
+2p1k4
+pku2
+pkur1
+1p2l4
+4pl.
+3p4la
+p5lad
+plan3g
+3plä
+2ple.
+ple1c
+ple4e
+p4leg
+3ple5n4
+p5lic
+p5lif
+4plig
+p4lis
+p4lo
+2p1m
+2p1n
1p2o
-8poh
-5pol
-po8lan
-poly1
-po3ny
-po1ra
+po3b4
+po1c
+2p3oh
+po2i
+po3id
+3poin
+3pol
+po2lau
+po5li
+po3ly
+po1ob
+po2p1ak
+po2p1ar
+po1pe
+po2pl
+po3pt
+po1ral
+po1rau
2porn
-por4t3h
-po5rö
-5poti
-p1pa
-p6p5ei
-ppe6la
-pp5f
+por5s
+por4tri
+po5s2e
+po3sp
+po4sta
+post3ag
+po4stä
+post3ei
+po4sti
+po3s4tr
+post3ra
+po3ta
+3pote
+pot2h
+3poti
+po2t1u
+po2w
+po1x
+pö2bl
+pö2c
+4p1p
+p2p1ab
+pp3anl
+p3pe
+ppe1e
+ppe4ler
+ppe2n1
+pp1f4
p2p1h
-p1pi
-pp1l
-ppp6
-pp5ren
-pp1s
-pp2ste
-p5pö
-pr6
+p3p2ho
+p2p3l
+pp5lan
+p4ple
+pp4li
+p2p3ra
+p2p3re
+p2pri
+pp3sa
+pp3sp
+ppt2
+pp3ta
+pp3to
+p2r2
+3prak
+3prax
+1präd
+1präg
+3präm
+3präs
+4pre.
+2prec
+1pred
+pre2e1
+1prei
3preis
-1pres
-2p3rig
-5prinz
-1prob
-1prod
-5prog
-pro8pt
-pro6t5a
-prote5i
-8proß
-prä3l
-1präs
-präte4
+2p3rer
+3pres
+pri4e
+1prinz
+2prit
+1p4ro
+3prob
+pro3be
+2proc
+3prod
+3prog
+3proj
+pro3st
+3proto
1prüf
-p5schl
-2pst
-1p2sy
-p1t
-p8to8d
-pt1s
-5p6ty
-1pu
-pu1b2
-2puc
+2prün
+2ps
+4ps.
+ps2an
+p3s2h
+4psi
+p2s1id
+p2s1ö
+ps2po
+p3stea
+p1s2ti
+pst3r
+ps2tu
+3psy
+ps2ze
+2p1t
+p2t1a
+pt3alb
+pt3as
+pt3at
+p3te
+p5te.
+p4t3ec
+p4t1ei
+pte4l
+p4tele
+p4t1ent
+pt3erei
+p4t1erw
+p4t1erz
+p5tes
+p2t1h
+p3ti
+p4t1in
+pto5me
+p2tos
+p2t3r
+pts2
+pt3sa
+pt3so
+pt3sp
+pt3st
+pt3su
+pt3t
+pt1um
+pt1urs
+p2tü
+3p2ty
+pt3z2
+pu3as
+1pub4
pu2dr
-puf8fr
-6p5uh
-pun8s
-pu8rei
-pu5s6h
-pu1ta
-p1v
-p3w
-5py
-py5l
-p1z
-pä6der
-p5ä6m
-pä8nu
-8pär
-pät5h
-pät1s
-qu6
-1qui
-8rabk
-ra6bla
-3rable
-ra2br
-r1abt
-6rabz
-ra4dan
-ra2dr
-5rafal
-ra4f3er
-ra5gla
-ra2g3n
-6raha
-ral5am
-5rald
+1puf
+2p1uh
+pul4sp
+1pulv
+1pum
+1pun
+4pund
+pun2s
+2punt
+1pup
+pu3ri
+pur3st
+pu2s
+pu4s3t
+1put
+3put2s
+3putz
+1püf
+2pül
+2p1v
+2p1w
+pwa4r
+3py3
+4p1z
+q2u4
+3quen
+que3rel
+1queu
+6r.
+1ra.
+ra2ab
+2r5aac
+r5aal
+ra1ar
+r1ab
+ra2bar
+rab2bl
+2rabd
+ra3ber
+2rabf
+2rabg
+r4abi
+ra1bl
+rab4le
+ra2bli
+rab5r
+2rabs
+2rabt
+2r3abw
+1raby
+ra1ce
+2r1acet
+ra3che.
+ra4cheb
+ra3chen
+ra3chet
+rach4t3r
+ra2chu
+r2ack
+rada2
+ra2dam
+2radap
+3radf
+ra3di
+3radle
+ra4d3r
+rad5t
+1rae
+ra1er
+r2af
+ra4f3ar
+ra2fer
+r2ag
+ra3ge
+ra3gle
+ra2g5n
+r2ahm
+2raic
+rail2
+rail4l
+r3air
+ra3ke
+3ra1k4l
+ra2kre
+ra2kro
+2rakti
+3rakü
+r2al
+r4al.
+rala4
+ra4l3ab
+r3alar
+ral3b
+3r4ald
+ra3le
4ralg
-ra8lins
-2rall
-ral5t
-8ramei
-r3anal
-r6and
-ran8der
-ran4dr
-8ranf
-6ranga
-5rangi
-ran8gli
-r3angr
-rans5pa
-8ranw
-r8anz.
-ra5or
-6rapf
-ra5pl
-rap6s5er
-2r1arb
-1rarh
-r1arm
-ra5ro
-2r1art
-6r1arz
-ra8tei
-ra6t5he
-6ratl
-ra4t3ro
-r5atta
-raue4n
-6raus.
-r5austa
-rau8tel
+rali5er.
+rali5ers
+ral3k2
+rall2e
+2r3alm.
+r3alp.
+4ralpe
+r4als
+r3al3t
+r4alth
+ra2lu
+3raly
+r2am
+ra3ma
+ra2mer
+1rami
+ram6m5ers
+ram4m3u
+r3amn
+ram2p3l
+ram3ste
+2r3amt
+ramt6s
+r2an.
+4ranc
+r2and
+r4anda
+r4ande
+ran4dep
+ran4d3er
+4r5anei
+2r3anf
+1rangi
+4r3anl
+2r1anm
+r1anp
+2ranr
+2rans
+r4ans.
+r2ansp
+2rantr
+2r3anw
+r2ap
+2rapf
+ra3pl
+2r1ar
+3rarei
+rar3f4
+ra2r1in
+r3arz
+r4as.
+ra3s4a
+ra4schl
+2raß
+1rat
+r4at.
+ra2ta
+ra2t1ä
+2ratm
+rat4r
+2ratta
+4rau.
+3raub.
+rau3bl
+4raud
+rau3en
+2rau2f
+2raug
+rau4m3ag
+rau4man
+rau2mi
+ra3umsa
+2rausg
+rau4sp
+raus5se
+rau4sti
raut5s
-ray1
-r1b
-rb5lass
-r6bler
-rb4lie
-rbon6n
-r8brecht
-rb6s5tä
-r8ces
-r1che
-rch1l
+1raü
+r2ax
+r2äd
+4räf
+4räg
+4räh
+2räm
+3rän.
+3räni
+2r1är
+rä3ra
+r3ärz
+rä4s3c
+3rätse
+rä2u
+4räut
+2r1b
+r2b1ab
+r2b3a2de
+r2bak
+rba3re
+rb1art
+rb1auf
+rb3b4
+rb1ech
+r2belä
+r2b1ent
+rbe3r2e
+r3bla
+rbla2d
+rb7lasser
+r4b3last
+r3blä
+r2b5le.
+rb5ler
+rb2o
+rb3res
+rb6ri
+rb2s
+rbs1a
+rb4sei
+rb4ser
+rb3ska
+rbs1o
+rb4stä
+rb3str
+4rc
+r1ce
+rcha2
+r1che.
+r1chen
+r1chi
+rch3l
rch3m
-rch3re
-rch3tr
+rch3r
+rch1s4
+rch3sp
+rch3ta
rch1w
-8rd
-r1da
-r8dachs
-r8dap
-rda5ro
-rde5ins
-rdio5
-r8dir
-rd3ost
-r1dr
-r8drau
-1re.
-re1ak
-3reakt
-re3als
-re6am.
-re1as
-4reben
-re6bl
-rech5a
-r8edi
+r2ck1
+r1cr
+r1ç
+2r1d
+rd5achse
+r2d1ak
+rd1al
+r3dan
+rdani1
+r4d1ant
+r4d3anz
+rd1arb
+rd1ei
+r2d1elb
+rde7me
+r3den
+rde5nar
+rden4gl
+rde3r2e
+r4d3ernt
+rde3sp
+rde3sta
+rdi3a2
+rdi5a6l
+r2d1inn
+r2d1it
+rd1os
+rd1ös
+rd3rat
+rd3rau
+rd1st
+rdt4
+rd1th
+rd1tr
+1re
+3re.
+re3ad
+rea3g
+re3aler
+re3as
+re5at.
+re5ats
+re2b1a
+re2b3l
+reb1r
+re4b3ra
+re2bü
+rech3ar
+4rechs
+2reck.
+re2cka
+3reda
+4redd
+3rede.
+2redit
+re1el
re3er
-8reff
+3refe
+4reff
3refl
-2reh
-5reha
-r4ei.
-reich6s5
-8reier
-6reign
-re5imp
-4r3eina
-6r3einb
-6reing
-6r5einn
-6reinr
-4r3eins
-r3eint
-reli3e
-8r5elt
-6rempf
-2remt
-ren5a6b
-ren8gl
-r3enni
-1reno
-5rente
-4r3enth
-8rentl
-4r3entw
-8rentz
-ren4zw
-re1on
-requi5
-1rer
-rer4bl
-6rerbs
-4r3erd
-8rerhö
-8rerkl
-4r3erla
-8rerlö
+3refo
+3refro
+3reg
+5reg.
+rege4l3ä
+re2gl
+4reh
+re2hac
+re4h3ent
+reh3l4
+re2h1o
+r2eie
+2reig
+r5eign
+rei3l2a
+rei3l2i
+r1ein
+rei3nec
+4reing
+4reinn
+4reinr
+rein6sta
+rein8s7tre
+re1in2v
+2reis.
+2reiwe
+re2ke
+re3la
+2r1elb
+rel2e
+re3lei
+re2lek
+2r1elf
+re3lo
+2r1elt
+relu2
+r2em
+re3mo
+4remu
+r2en.
+r2ena
+re3nal
+re3näu
+3rendit
+ren3dr
+re4n3end
+ren4gl
+2rengp
+re2ni
+2r1entl
+2r1ents
+2rentw
+2r3entz
+r2enz
+ren4zer
+re3or
+3repe
+5re3po
+4repp
+3r2er.
+re2ra
+2r3erb
+r4erba
+r4erbo
+r4erbr
+r4erbü
+2r1erd
+3rere
+r3ereig
+r4erer
+2r1erf
+r1erg
+r4ergen
+r1erk
+4r3erken
+3r2erki
+2r1erl
+5r4erlag
+r5erlau
+r3erlö
+2r1erm
+2r1ernä
4r3erns
-6r5ernä
-rer5o
-6r5erreg
-r5ertr
-r5erwec
-r5erö
+4r3ernt
+3r2e1ro
+re2rob
+r1erö
+3r2ers.
+2r3ersa
+r2erse
+2rersp
+r1er5t
+2r3ertr
+2r1erz
+3r2es.
re2sa
-re8schm
+res1au
+3rese
+3resol
+re3sp
2ress
-re5u8ni
-6rewo
-2r1ex
-r1f
-r8ferd
-rf4lie
-8r1g
-r8gah
-rge4bl
-rge5na
-rgest4
-rg6ne
-r2gni2
-r8gob
-r4g3ret
-rg8sel
-r1h8
+ress2e
+res6s5erw
+re2stu
+3resu
+re2thy
+re2u
+reu3g2
+2reul
+re3uni
+2r1eur
+2revid
+r1e2w
+rewa4
+re3we
+4r3e2x1
+3rez
+4rezi
+1ré
+2r1f
+rf1ält
+r2fent
+r3f2es
+rfi4le.
+rfin6s
+rf3lic
+rf3lin
+r3flü
+r3fre
+rf2s
+rfs1ä
+rf3sen
+rf4s1id
+rfs3pr
+rf3sto
+rf2ta
+rf3tau
+rf3t4r
+r3fu
+4r1g
+rg2ab
+r2g1ah
+r2g1ak
+rg2an
+r3ge
+rge4an
+rge2bl
+rge4l3er
+rg5e4tap
+r4geto
+rgi4sel
+r2glan
+r2gleu
+r2glig
+rg3lo
+rg3lu
+rg2ne
+rg3neu
+r2g1ob
+r2g3ral
+r2greg
+r2g3res
+rg3ret
+rg3rin
+rg3s2p
+rg3str
+rgt4
+rg3th
+r1h4
+2rh.
+2r3ha
+r4ha.
+2r3hä
+3r4he.
+3r4hen
+r3her
+r3hof
+rho2i3
+2r3hol
+2rhö
+2rhs
r2hy
-5rhyt
-ri1ar
-ri5cha
-rid2g
+ri1am
+ri1an
+ri3at
+ri1ce
+ri1cha
+rich3te
+4rick
+rid2
+ri2d3an
+2ridol
r2ie
-rieg4s5
-ri8ei
ri1el
-ri6ele
-ri1en
-ri3er.
-ri5ers.
-ri6fan
-ri8fer
-ri8fr
-1r2ig
-ri8kn
-ri5la
-rimä8
-ri1na
-r8inde
-rin4ga
-rin6gr
+ri3els
+riene4
+ri3eni
+rie2nu
+ri1er.
+ri4e3re
+ri3ers.
+ri3esti
+rie5te
+ri1eu
+ri2f1a
+ri4f1ei
+ri4fer
+ri2f1o
+ri2f5r
+rif3st
+rif4ter
+3rig
+ri4g5ene
+4rigg
+5rigj
+rig1l
+4rigr
+r2ik
+ri4k5l
+ri5kle
+ri3ma
+r2imb
+2rimp
+rim2s
+rim4sc
+rin4a
+2rind
+ri5n4e
+rine1i
+2r1inf
+rin2g3l
+rin2gr
+4r1inh
+2rinit
+2rink
1rinn
-6rinner
-rino1
-r8insp
-4rinst
-ri1nä
-ri5o6ch
-ri1o2d
-ri3o6st
-2r1ir
+6r5innenm
+4r3inner
+2rins
+3r4ins.
+r4inspi
+2rint
+rin4t5r
+2r1inv
+3r2inva
+ri2o
+4r1ir
r2is
-ri3sko
-ri8spr
-ri5sv
+ri3s4a
+ri4scho
+ri4schw
+3risik
+5risk
+ri3so
+ri4s3p
+3riss
+ris4sa
+ri4st
+ris6t5ers
r2it
-6r5i6tal
-ri5tr
-ri6ve.
-8r1j
-6rk
-r1ke
-rkehrs5
-r1ki
-r3klin
-r1k2n
-rk3str
-rk4t3an
-rk6to
-r6kuh
-rkä4s3t
-r1l
-r5li
-rline5a
-6r1m
-r6manl
-rma4p
-r4m3aph
-r8minf
-r8mob
-rm5sa
-2rn
-r1na
-rna8be
-r5ne
-rn2ei
-r6neif
-r6nex
-r6nh
-rn1k
-r1no
-r6n5oc
-rn1sp
-r1nä
+r3i2tal
+riten3
+ri5ti
+ri3t4r
+5ritu
+ri2x1
+1rí
+2r1j
+2r1k
+rk1all
+rk1aus
+rk1äh
+rke2s
+r3kla
+r5klau
+rk3li
+rk4lo
+rk4lu
+rk3nor
+r2k3nu
+rk3rau
+rk3räu
+r2k3rea
+r3kri
+rk3rin
+rk2s1e
+rk3sen
+rk3shi
+rk2sp
+rkstati6
+rk4stec
+rks3ti
+rk2ta
+rk4t3eng
+rk4t3erf
+rk4t3ers
+rk4t3erw
+rk2tin
+rk2t1o2
+rkto4b
+rk4t3r
+rk5tra
+r2k1uh
+rk2um
+rku4n
+rk1uni
+2r1l
+r3la
+r3le
+rle2a
+r3l2i
+rli2s
+rlon3
+rlös3s
+rl2s1p
+rl2sto
+rl3th
+4r1m
+r2m1ald
+r2m1ans
+rm3anz
+r4m3a2p
+rm1aus
+rm3d
+r3me.
+r2m1ef
+rmen4sc
+r2meo
+r2mide
+r2m1im
+rm1ope
+rm1o2ri
+rmo3s
+rm3sa
+rm3sta
+rmt2
+rmt3h
+rm3ums
+4rn
+rna2b
+r2na4n
+rn5ani
+rn2ant
+r4n3anz
+rn2a2r
+rn3are
+rn5ari
+r2n3au
+rn4aue
+rnd4
+rn3do
+rn3dr
+r3ne
+r5ne.
+rn3e4ben
+r4nef
+rn4eh
+r5n2ei
+rn3eif
+r6n3eis
+rne2n
+r4n3ene
+r4nerf
+r4nerg
+rn4erhi
+r4nerk
+r4n1ert
+r5ne2s
+rn4e2t
+r4nex
+rn3g2
+r3ni
+r4n1in3
+r3nod
+r2n1op
+rn1or
+rn1ö
+r1nöt
+rn3s2ä
+rn3s2p
+rn3s2z
+rn5t2e
+rn3th
+rn1ur
r1nü
-ro6bern
-6robs
-ro1ch
+r1ny
+ro5ar
+ro4bei
+2robj
+1robo
+2robs
+ro1c
3rock.
-ro5de
-ro1e
-4rofe
-ro8hert
-1rohr
-ro5id
-ro1in
-ro5isc
-6rolym
+r4o3de
+r4odo
+roe4
+ro3et
+2rof
+roh1l
+roh5n
+3r2ohr
+3roi
+ro3in
+ro1ir
+ro3le
+roll4en
+2roly
+ro2mad
+ro2mer
+4romm
r2on
-6roog
-ro6phan
-r3ort
-ro1s2p
-ro5s6w
-ro4tau
-ro1tr
-ro6ts
-5rout
-r1p
-rpe8re
-rp2f
-r2ps
-r2pt
+ronen3
+3ronn
+rons2
+ron3sp
+ron3str
+ron4tan
+ro1ny
+ro1pe
+2ropf
+ro3ph
+rop2s
+r1or
+r2or3a
+ro2rat
+ro1rau
+ro2rei
+ro2r1o
+ror5th
+ro1sé
+ro3sh
+ro3s2i
+ro5sk
+ro3smo
+ro3sp
+ros4s3c
+ro4ste
+4roß
+ro2ßu
+ro2tho
+ro2tri
+rots2
+rot3so
+ro3tu
+ro3unt
+3rout
+ro3xa
+ro3z
+rö2b3l
+rö3ch
+2r1öf
+4rög
+röh3
+r1ök
+r2öl
+rö7le
+3römi
+r1ör
+r2ös.
+rö3sc
+rö3se
+3rötu
+2r3p2
+r5pa
+r5p4e
+rpe2re
+rpe4r3in
+rpf4
+r4pli
+rpo4st
+rpro1
+r4ps
+rp3se
+r4pt
r1q
-2rr
-r1ra
-r1re
-rrer6
-rr6hos
-r5rhö
-r1ri
-r1ro
-rro8f
-rr8or
-rror5a
-r1ru
-r3ry
-r1rä
-r1rö
-r1rü
-2r1s
-r2ste
-r2sti
-r6sab
-r4sanf
-rse6e
-rse5na
-r2sh
-r6ska
-r6ski
+4r1r
+rr2a
+r3rar
+rr1äm
+rrb2
+rr1c
+r3r2e
+rrer4
+rre2st
+r4rew
+rr2h
+rr3hö
+rri3k
+rr2na
+rr2o
+r2r3ob
+rro3m
+rr2st
+r3ru
+r5rü
+rrü1b
+4r1s
+r4sab
+r2s3a2d
+rsa4ler
+r2s3amp
+r4s3amt
+r4s1ang
+rs1anp
+r4sar
+r3sc
+r5sch2e
+r6scherl
+rsch4l
+r5schu
+r3se
+r5sei
+r6sein
+r5sel
+rse3le
+rse2n
+rs2end
+rse4ne
+rs3ere
+rs1erö
+rs1ers
+rs1erz
+rs1eta
+r3sho
+r5si
+rs2ka
+r5skal
+r5skan
+rs3kat
+rs2ki
rs2kl
-r8sko
-r2sl
-rs2p
-r6stauf
-r8sterw
-r8stran
-rswi3d4
-r2sz
-2r1t
-rt3art
-r8taut
-r5tei
-rt5eige
-r8tepe
-r4t3erh
-r8terla
-r4t3hei
-r5t6hu
-r4t3int
-rt5reif
-rt1sc
-rt6ser
-rt6s5o
-rt6s5u
-rt5und
-r8turt
-rube6
-ru1en
-1r4uf
-ruf4st
-ru1ie
-2r1umg
-2r1uml
-2rums
-run8der
-run4d5r
-6rundz
-6runf
-8runs
-2r1unt
-2r1ur
-r6us
-ru6sta
-rus1tr
-ru6tr
-1ruts
-r1v
-rven1
-rvi2c
-r1w
-r1x
-r1za
-rz5ac
-r6z5al
-r8z1ar
-r8zerd
-r6z5erf
-rz8erh
-rz4t3h
-r8zum
-rä4ste
-räu8sc
-r1öf
-5röhr
-rö5le
-3röll
-5römis
-r1ör
-rö2sc
-3rümp
-1sa.
-1saa
-s3a4ben
-sa2bl
-2s1abs
-6s1abt
-6sabw
-3sack.
-6s3a4der
-1saf
-sa1fa
+r4sko
+r4skr
+r4sku
+rs3l
+rs4no
+r3so
+r4s1op
+r4s3ort.
+r3s2p
+r4s3ph
+rs3s2
+rs2t
+r4stant
+rst5eing
+rs4temp
+r3sterb
+rst3erw
+r3stie
+r2stin
+rst3ing
+r3sto
+r4stot
+r3str
+r4st3ran
+r3stu
+r3stü
+r3s2wi
+r3sy
+4r1t
+r3tab
+rt1ac
+r2tad
+r3taf
+rt3akr
+r3tal2
+r4t1alm
+rtals1
+rt1am
+rt1an
+rt1ar
+rt3a6re
+r3tat
+r2t3att
+rt1auf
+r2t1är
+r3te
+r5te.
+rtee2
+rt2ei
+rtei3la
+rtei3s2
+rte5m4e
+rte2n1
+r7ten.
+rtens2
+rten3st
+rte1ra
+rte4ran
+rt3erei
+r4t1erh
+r4t1erk
+rt3erle
+r5terli
+r4t3ernä
+rter4re
+r4t3ersc
+rte3sk
+r2th
+rt1he
+rt1hi
+r3tho
+rt1hol
+r3thu
+r3thy
+r3ti
+r4t1id
+r4t1ima
+rt1int
+rto3p
+r2t1o2r
+r4trak
+rt3rec
+r2t3res
+rtrü2
+rt4sam
+rt3sch
+rt7scha
+rts1eh
+rt3spe
+rtt4
+r2t1urt
+r3tün
+rt3w
+r3ty
+rt3z2
+ru1a
+ru3a2r
+rube2
+ru3cker
+ru4cku
+ru3de
+rude2a
+ru2dr
+3ruf
+ru2fa
+ruf4s
+4rug
+2ruhr
+5ruin
+ru3ins
+ru1is
+4ruk
+2rum
+4rumf
+ru2mi
+4ruml
+r2ums.
+4rumz
+ru4n
+2r1una
+run2d1a
+2rundd
+run4d3er
+2rundv
+2rundz
+ru5ne
+2r1unf
+2rungl
+2r1uni
+ru5nis
+4runk
+run2kr
+2r1unl
+r1unm
+4runn
+ru5no
+2runs
+4runt
+2runw
+ru3pr
+4r1u2r
+r3ur1e
+5ru3ro
+ru2si
+rus2s1p
+rus4st
+ru4st
+ru5s2ta
+ru2th
+rut1he
+ru2t1o2
+ru2t3r
+rut2s
+6ruz
+ru2z1w
+r2ü
+4rüb
+rü1ben
+rü1ch
+4rüg
+4rümm
+2r1v
+rve4n1e
+2r1w
+4r1x
+1ry
+ry2c
+ry3t
+2r1z
+rz1a2c
+rz2ach
+rz2an
+r2z1ar
+r2z3as
+rz1eck
+r2z1eng
+rz3ents
+r2z1erf
+r2z1erg
+r2z1erk
+rz1erq
+r2z1erw
+rz1id
+r3zof
+r2z1op
+rz1or
+rz2t3ro
+rzu3g2u
+rz1urs
+r3z2wä
+r3z2wec
+6s.
+1sa
+5sa.
+5saa
+2s1ab
+sa2be
+3sabet
+sa1b4le
+4sabs
+sa2chi
+sa2cho2
+sa1cr
+2sada
+s3adm
+2s3adr
+sa3fa
+sa4fe
4s1aff
-sa5fr
-1sag
-1sai
-sa1i2k1
-4s1akt
-1sal
-sa1la
-4s3alpi
-6salter
-salz3a
-1sam
-s5anb
-san2c
-1sand
-s5angeh
-6sanl
+sa1f4r
+3sag
+s1a2gr
+5s4ai
+sa1ik
+sail4
+2s1ak
+sa2ka
+3saki
+s4akr
+4sakt
+3s2al.
+3s2a1la
+sal3erb
+sa2l1id
+5s4alo
+sal2se
+4s1alt
+5s4alz
+3s2am
+s3ameri
+5s4amm
+6s5amma
+4s3amn
+4samp
+3s2an.
+2s1a2na
+2sanb
+s2an2c
+s2and
+san4d3ri
+3sang.
+2s3anh
+5sani
+2s3anl
2s1ans
-6s3antr
-8s1anw
-s1ap
-s6aph
-8sapo
-sap5p6
-s8ar.
-2s1arb
-3sarg
-s1arm
-sa5ro
-2s1art
-6s1arz
-1sas
-1sat
-sat8a
-2s1atl
-sa8tom
-3s8aue
-s5auff
-sau5i
-s6aur
+san4sk
+san3sp
+4sanw
+2s3anz
+2s1ap
+sa2po
+3sapr
+2s1ar
+3sar.
+3sara
+4s3arb
+3s2ard
+3sari
+s3arm
+s3arr
+3sars
+4sart
+s3arz
+s3a4sp
+sa3stu
+6s5asy
+s2aß
+3sat
+sat2a
+5sate
+4s3ath
+4s3atl
+4satm
+sa2tr
+sa3ts
+5satz
+sat4z3en
+sat4zer
+3sau.
+3saue
+2sauf
+4s3aufb
+3saug
+sau2gr
+3saum
+5saur
+sauri1
2s1aus
-5s6ause
-2s1b2
-2sca
-s4ce
-8sch.
-3scha.
-5schade
-3schaf
-3schal
-sch5ame
-8schanc
-8schb
-1sche
-6schef
-8schex
-2schf
-2schg
-2schh
-1schi
-2schk
-5schlag
-5schlu
-6schmäß
-6schnaß
-1scho
-6schord
-6schp
-3schri
-8schric
-8schrig
-8schrou
+4s3ausb
+3sause
+s3ausf
+s3ausg
+s1auß
+sa2vo
+3s2ax
+3say
+1sä
+3säc
+s3ähn
+3säle
+s1ält
+2s1äm
+2s3änd
+3sänge
+2s1är
+3sät
+3säul
+2säuß
+4s5b6
+sba4n
+sber2
+sbe3re
+sby5
+1s2c
+2sc.
+6scar
+4s3ce
+6sch.
+2schak
+5s4ch2al
+4schanc
+5schanz
+6schao
+5s4chä
+4schb
+4schc
+3sche
+4schef
+sch3ei.
+5scheib
+4schemp
+sch5erla
+4schess
+4schex
+4schf
+4schg
+4schh
+3schi
+7schic
+schi4e
+s4chim
+4schiru
+4schk
+s4chl
+4schle.
+6schlein
+sch6lit
+4schn.
+5s4chö
+6schöl
+4schp
+4schre.
+sch5rom
6schs
-2scht
-sch3ta
-sch3tr
-1schu
-8schunt
-6schv
-2schz
-5schö
+schs4e
+sch3s2k
+sch3sti
+6scht
+sch3t4a
+sch5te
+3s4chu
+4schunt
+sch2up
5schü
-2sco
-scre6
-6scu
-2s1d
+4schv
+4schwet
+4schz
+2scj
+4scl
+4sco
+5s4cop
+2scs
+2scu
+4s3d
+sda3me
+sde3s
+sdi1st
1se
-se5an
-se1ap
-se6ben
-se5ec
-see5i6g
-se3erl
-8seff
-se6han
-se8hi
-se8hö
-6s5eid.
-2s1eig
-s8eil
-5sein.
-sei5n6e
-6s5einh
-3s8eit
-3sel.
-se4lar
-selb4
-6s3e4lem
-se8lerl
-2s1emp
-sen3ac
-se5nec
-6s5ents
-4sentz
-s8er.
-se8reim
-ser5inn
-8sermä
-8s5erzi
-6seröf
-se1um
-8sexa
-6sexp
-2s1f2
-sfal8ler
-2s3g2
-sge5b2
-s1h
-s8hew
-5s6hip
-5s4hop
+se3a
+se4al
+se5al.
+se5at.
+4s1e2ben
+se3b4r
+2sec
+4s1echo
+sech2s
+s1echt
+se2ck
+5secl
+5seco
+4sede
+7see
+se1ec
+se2e1i4
+see3ig
+se1er
+2s1eff
+3seg
+se2gal
+se2gl
+seg4r
+3s2eh
+se2h1a2
+se3he
+se4h1ei
+se4hel
+se4h3erk
+se4hin
+seh1l
+seh1ra
+seh3re
+seh1s
+se2hü
+2s3ei.
+3sei3b
+4s3eig
+s1ein
+7s4ein.
+4seinb
+sei5n4e
+4seing
+2s3einh
+4s3eink
+2seinl
+4s3einn
+4seinr
+s4eins.
+4seinst
+2seinw
+4seis
+7s2eit
+5s2ek
+s2el.
+se2l1a2
+se3lad
+sela4g
+se3lam
+sel1ec
+4selem
+se2ler
+sel3erl
+sel3ers
+s1elix
+se4l1ö
+s2els
+sel3sz
+sel3tr
+5sem.
+s4e3ma
+4s1emp
+s2en.
+3sena
+se4nag
+se3nal
+4s1endl
+se4ners
+sen3gl
+5s4eni
+sen3ob
+3s2ens
+s2ent.
+4s1entf
+2s3entg
+s2enti
+4s3ents
+4sentw
+2sentz
+se2n1u
+seo2r
+4s1e2pos
+3seq
+5s2er.
+ser3a2d
+se2r3al
+se5ref
+s3ereig
+se4r3eim
+se4r3enk
+ser2er
+4s3erfo
+s2erfr
+6s3erfü
+ser3g
+s1ergä
+s2ergr
+4s1erh
+5seri
+s1erkl
+s1ernä
+4s3ernt
+se1rot
+s2ers.
+s4ert.
+ser3the
+seru2
+se4r1uf
+se3rum
+7s6erv
+5ses.
+se3su
+3set
+s3eta
+4s5e4tap
+se2tat
+4s3e2th
+se1u4n
+2sex
+4sexa
+s1e2xe
+4sexp
+sex3t
+4s3f
+sfal6l5er
+s5fi
+sfi3le
+s5fü
+4s3g4
+sge3s4a
+2s1h
+3sha.
+sha2k
+4shan
+1shas
+s3hä
+3shi.
+3shid
+1shi4r
+sh3n
+s3hoc
+4shof
+3s4hop
+sho4r
+3show
+s3hö
+sh4r
1si
-2siat
-si1b
-sicht6s
-6s5i6dee
-siege6s5
-si1en
-si5err
-si1f2
-si1g2n
-si6g5r
-si8kau
-sik1i
-si4kin
-si2kl
-si8kü
-si1la
-sil6br
-si1na
-2s1inf
-sin5gh
-2s1inh
-sinne6s5
+si3ach.
+5siak
+si1am.
+si3b4
+3si1c
+s1ideo
+s2ido
+3s2ie
+siege4s
+si3ene
+si3err
+sie2s
+3si1f4
+5sig
+si2g1a2
+si3g4n
+si2g3r
+sig4s
+si2k1ab
+si4k3ere
+si4k3erl
+si2ki
+si4k5l
+si4kr
+sik3s
+sik3t4
+si2ku
+si5l2e
+3silo
+2s1imm
+3sin.
+si3n4a
+2s1ind
+6s1inf
+sin2g1a
+sin3gh
+sin3g4l
+sin2gr
+sing3sa
+6s1inh
+sin1i
+sini1e
+2s1inq
2s1ins
-si5ru
-si5str
-4s1j
-s1k2
-6sk.
-2skau
-skel6c
-skelch5
-s6kele
-1s2ki.
-3s4kin.
-s6kiz
-s8kj
-6skn
-2skow
-3skrib
-3skrip
-2sku
-8skü
-s1l
-s8lal
-slei3t
-s4low
-2s1m
-s1n
-6sna
-6snot
+2s1int
+6s1inv
+3s4io
+si3od
+si3os
+5s2is
+si2sa
+si4schu
+si4s1e
+si2s1o
+sis1p
+sis3s
+7s2it
+si2tau
+si3te
+si2t3r
+sit3s
+si3tu
+5siu
+si2va
+six3
+1sí
+4s5j
+2s1k4
+4sk.
+s3kad
+s2kala
+4skam
+4s3kanz
+s3kar
+4skas
+ska4te.
+ska4tes
+s3kä
+4skb
+4ske
+3s2ki.
+3s2kik
+4skir
+ski3s
+3skiz
+s3klas
+s3kn
+skna3
+4skom
+4skor
+4skö
+s3kra
+4sks
+4sk5t
+3skulp
+2s1l2
+3s4lal
+4slan
+s3lä
+sl3b
+s5le
+s5li
+3s6lip
+s3lo.
+slo3be
+s3loe
+2s3m2
+2s3n2
+4sna
+sna1b4
+s5ne
+sni3er.
+sni3ers
+4s5not
+4snö
+s5ny
1so
-so1ch
-2s1odo
-so4dor
-6s5o4fen
-solo3
-s2on
-so5of
-4sope
-so1ra
-2s1ord
-4sorga
-sou5c
-so3un
-4s3ox
-sp2
-8spaa
-5spal
-1span
-2spap
-s2pec
-s4peis
-1spek
-s6perg
-4spers
-s6pes
-2s1pf
-8sphi
-1s2phä
-1spi
-spi4e
-6s5pig
-6spinse
-2spis
-2spla
-2spol
-5s6pom
-6s5pos
-6spoti
-1spra
-3s8prec
-6spreis
-5spring
-6sprob
-1spru
-s2pul
-1s2pur
-6spy
-5spän
-1spü
-s1q
-2s1r
-2ssa
-2sse
-2ssi
-2sso
-2ssä
-2ssö
-2ssü
-2s1sch
-sse8nu
-ssini6s
-ssoi6r
-2st.
+3so.
+3so4a
+4s1o2b
+6sobj
+so1c
+so3et
+3soft
+3sog
+so3gl
+so2h
+s1ohe
+so3hi
+4s5ohng
+so3ho
+2s1ohr
+3sol.
+so3la
+so4l3ei
+so3li
+4s3oly
+3s2on
+son3au
+sone2
+son5ende
+son3sä
+so2ny
+so3o
+s1opf
+3sor.
+so1ral
+s1orc
+4s3ord
+so2rei
+so3ren
+4s1orga
+4s1o2rie
+so2r1o
+3sors
+so4ru
+3s2os
+5s4os.
+s3ost
+3sota
+so3tr
+3sou
+so3unt
+3sov
+s1o2ve
+s1ox
+s4oz
+1sö
+sö2c
+sö2f
+2s1ök
+2söl
+s1ös
+1sp2
+4sp.
+4spaa
+2spak
+3spalt
+s2pan
+spani7er.
+4spano
+4spap
+4spara
+spar5sc
+3spaß
+2spat
+2spau
+s2paz
+2spär
+2sped
+3s2pee
+3s2pei
+4spel
+2s1peri
+4sperl
+3s2perr
+2spers
+2spet
+3s4pez
+4s3pf
+2sph
+3sphä
+s3phe
+3spi
+5s2pi4e
+7spiel
+spier4
+spi2k
+4s3pil
+4spip
+4s3pis
+2spl
+4spla
+4splä
+4sple
+3s2pli
+4s3plu
+2spo
+4s3pod
+3s2poi
+4s3pok
+4spol
+4s3pos
+4spr.
+s2prac
+4sprax
+4spräm
+4spräs
+5s4prec
+2spred
+4spres
+2spro
+4sprob
+3s2pru
+5sprun
+2sprüf
+3sprün
+4s3ps
+4spun
+2spup
+5s2pur
+4sput
+3spü
+4spy
+2s1q
+4s3r4
+srat6s
+sret3
+srö4s
+srös3c
+srü2d
+4s1s
+ssa3bo
+ss1a2ck
+ss1aj
+s3sal
+s4s3ala
+s4s1alb
+s4s1amt
+s4s3ang
+ss1ano
+s4s3ans
+s4sanz
+s3sas2
+ss3att
+ss1au
+s3s2ä
+s3se
+s4s1ec
+sse4ck
+s4s1ega
+sse3ha
+sse3inf
+sse3int
+ss1eis
+s5sen.
+ss2er
+sse6r5att
+ss3erhö
+s4s3erö
+s4s3erse
+s5s4es
+ss4et
+sse3ta
+ss5g
+s5sie
+s3skala
+ss3la
+ss1off
+s6s1op
+s2s1ori
+s3spe
+s3s2po
+ss5re
+ss3s4
+s3st2a
+s5stad
+sst6e
+ss3tec
+s3stel
+ss2ti
+s3stip
+s3sto
+s3stu
+ss2tur
+s3stü
+ss1ums
+4st.
1sta
-4stafe
-2stag
-sta3la
-6stale
-4s2talg
-8stalk
-8stamt
-6st5anf
-4stans
-6stanw
-6starb
-sta4te
-6staus
-2stb
-6stc
-6std
-s1te
-4steil
-6steppi
-8stesse
-6stf
+2sta.
+3staa
+stab4s
+3s2tad
+5staff
+4stag
+3stah
+2stak
+s5tal.
+sta5li
+2stalk
+st1alp
+st3ami
+4stan.
+st3ana
+3s4tand
+2stani
+4stann
+2stans
+s3tans.
+2stanw
+s2tar
+3s4tar.
+3s4tars
+st2art
+2sta2s
+st3a4si
+3stat
+4stat.
+3stau.
+2st1auf
+2staum
+5staur
+2staus
+3staus.
+2stax
+3stä
+4stäg
+4stält
+5stätt
+4stb
+2stc
+st3ch
+2std
+4ste.
+2stea
+s2tec
+3steck
+1s2teg
+ste2g5r
+3steh
+1s2te2i
+3steig
+2steil
+4steing
+1s2tel
+2stel.
+2stele
+stel4l3ä
+2stels
+2stem
+4stem.
+ste4mar
+4sten
+s4t3ends
+ste2ne
+s4t3engl
+s5t4ens
+s4t3entf
+s2tep
+2ster
+6ster.
+s3tera
+st6erb
+4sterk
+3sternc
+s3ters
+4stes
+s4t3ese
+stes6se.
+ste4st
+2stet
+4stet.
+3s4tett
+3steu
+5steue
+4steuf
+st3ev
+4stex
+2stf
2stg
-2sth
-st1ha
-st3hei
-s8t1hi
-st1ho
-st5hu
-s1ti
-s2ti4el
-4s2tigm
-6s2tind
-4s2tinf
-s2ti8r
-2stk
-2stl
-2stm
+4sth
+st3ha
+s2t1hi
+st3ho
+st1hu
+2stia
+2stib
+2stie.
+1s2tiel
+2stien
+3s2tif
+5stift
+4stig
+2stik
+3s2til
+3s4tim
+st1ins
+st1int
+2stio
+2stip
+1s2tir
+2stis
+st3iso
+1stitu
+2stiv
+2stj
+4stk
+4s4tl
+st5le
+4stm
+2stn
1sto
-6stoll.
-4st3ope
-6stopf.
-6stord
-6stp
-4strai
-s3tral
-6s5traum
-3straß
-3strec
-6s3tref
-8streib
+4sto.
+4stod
+sto3de
+s2toff
+s2t5om
+4ston
+2stopo
+2stor.
+2store
+2storg
+2stori
+2s3tose
+stos2t
+3stoß
+4stou
+4stow
+4stoz
+3stö
+4stöch
+4stön
+4stöt
+4stp
+2stq
+2strad
+5straf
+2strag
+3s2trah
+6strai
+4strak
+4stral
+4strans
+5s2tras
+5straß
+4sträg
+4sträne
+4stref
5streif
-6streno
-6stres
-6strev
-2st5rig
-8s2t1ris
-s8troma
-st5rose
-2s1trua
-4struf
-3strum
-6sträg
-2st1s6
-2stt
-1stu
-stu5a
+st3renn
+s2tric
+2s2trig
+3s2tri2k
+s2trip
+2s3tris
+st3roll
+stro2m
+2strop
+1stru
+4strua
+3struk
+4st3run
+4st3s4
+st1sk
+st1sl
+st1sz
+2st3t2
+5stub
4stuc
-2stue
-8stun.
-2stv
-2stw
-s2tyl
-6stz
-1stä
-8stäg
-1stö
-1stü
-8stüch
-4stür.
+5stud
+4stue
+3stuf
+3stuh
+stum2s
+stu4n
+4stun.
+3stund
+s2t1uni
+4s3tuns
+4stunt
+stu5re
+st1url
+4sturn
+stur4s
+4st1urt
+2stus
+1st2ü
+3stüc
+4stüch
+3stüh
+2stür.
+3s2tüt
+4stv
+4stw
+5styl
+4st3z2
1su
-su2b1
-3suc
-su1e
-su2fe
-su8mar
-6sumfa
-8sumk
-2s1unt
-sup1p2
-6s5u6ran
-6surte
-2s1v
+su1an
+3su2b5
+su4ba
+4su3bi
+5su1c
+2s1u2f
+4s1uh
+3sui
+su1is
+su3it.
+su3la
+sul2i
+su2mar
+su2mau
+3sume
+su2m1el
+su6m5ents
+2sumf
+s3umfe
+2sumk
+2suml
+3summ
+sumo2
+su2m1or
+2sums
+s3umsa
+s3umst
+su4n
+5sun.
+sun6derh
+s1unf
+2s1uni
+6s3unt
+5s2up
+su2ra
+2s1url
+s1urt
+3su2s1
+su3sa
+su3sh
+su3si
+3suv
+1sü
+2s3ü2b
+3süc
+3sü2d1
+3sün
+4s3v
+s5va
2s1w
-1sy
-8syl.
-sy5la
-syn1
-sy2na
-syne4
-s1z
-s4zend
-5s6zene.
-8szu
-1sä
-6s5änd
-6säugi
-6säuß
-5söm
-2s1ü2b
-1süc
-sü8di
-1sün
-5süß
-taats3
-4tab.
-taba6k
-ta8ban
-tab2l
-ta6bre
+s3wa
+s3we
+sweh2
+4s3wie
+4s3wil
+s3wir
+s3wis
+s2y
+3sy.
+sy2l
+sy4n1
+1sys5
+sy3t
+2s1z
+s3za
+4s3zei
+3s2zena
+5s4zene
+4s3zent
+s2zes
+s2zis
+4s3zu
+s3zü
+s3zw
+2ß.
+2ß3a2
+2ß1b
+4ß1c
+2ß1d
+1ße
+2ß1ec
+2ß1e2g
+2ß1ei
+ße2l1a
+ßen3a
+ßene4
+ßen3g
+ße2ni
+ßen3st
+ßen3sz
+ße2nu
+ße3rin
+3ß2ers.
+2ß1f
+2ß5g2
+ßge2bl
+2ß1h
+1ßi
+ßi2g1a2
+ßig4s
+2ß1in
+ß1j
+2ß1k4
+ßkir5
+2ß1l
+2ß1m
+2ß5n2
+ß1o2
+2ß3p2
+2ß3r2
+2ß3s2
+ßst2
+2ß1t
+ß3ti
+1ßu
+2ß1um1
+2ß1ü
+2ß1v
+2ß1w
+ßwa3
+2ß1z
+4t.
+3ta.
+2taa
+3taan
+2tab.
+ta2b1an
+2t1abb
+3tabel
+4taben
+ta4bend
+4tabf
+4tabg
+4tabh
+4tabk
+ta1b4l
+1table
+2tabn
4tabs
-t3absc
-8tabz
-6t3acht
-ta6der
-6tadr
-tad6s
-tad2t
-1tafe4
-1tag
-ta6ga6
-ta8gei
-tage4s
-tag6s5t
-tah8
-tahl3
-tai6ne.
-ta5ir.
-tak8ta
-tal3au
-1tale
-ta8leng
-tal5ert
-6t5a6mer
-6tamp
-tampe6
-2t1amt
-tan5d6a
-tan8dr
-tands5a
-tani5e
-6tanl
-2tanr
-t3ans
-8t5antr
-tanu6
-t5anw
-8tanwa
-tan8zw
-ta8rau
-6tarbe
-1tari
+4t1abt
+ta2bü
+2tabw
+4tabz
+ta1c
+tach3te
+t3ada
+tadi3
+t3adr
+1taf.
+1taf2e
+3tafel
+4taff
+t1afg
+t1af4r
+3t2ag
+5tag.
+ta2ga
+ta2g5ei
+4t3agent
+ta3ges
+2ta3gl
+ta3gn
+4t3a4go
+tag4s
+tag5sc
+tah4
+tah3le
+tahl5sk
+3tai
+ta1i2k
+tai2l
+ta1ins
+tai4r
+ta1ir.
+4t1a2ka
+ta3kes
+3takr
+ta2kro
+tak4ta
+3taktb
+3t2aktu
+3t2al.
+ta1lag
+ta1lak
+1talbu
+tal3d
+1t4ale
+ta3len
+ta4lens
+1talia
+5talis
+tal2lö
+1talo
+ta2l1op
+ta3lum
+2ta2m
+3tam.
+ta3ma
+3tame
+3tamg
+ta3mo
+t3ampl
+t1amt
+3t2an.
+t1a2na
+ta4nat
+2t2and
+tan3da
+tand4st
+ta3ne
+4t1anf
+3tanis
+t2ank
+tan4kl
+tan3kr
+4tanl
+2t1anme
+4t1anna
+1tanne
+t1ans
+1tans.
+2t3ansi
+2t3ansp
+ta4nu
+2tanwa
+2tanwä
+t4anz.
+tan6zerh
+t1anzu
+ta3or
+ta2pe.
+ta2pes
+2tapf
+t4ar.
+2t1arb
+t1arc
+3tard
+ta6rens
+3ta3ri
2tark
-2t1arm
-ta1ro
+4t1arm
2tart
t3arti
-6tarz
-ta1sc
-ta6sien
-ta8stem
-ta8sto
-t5aufb
-4taufn
-8taus.
-5tause
-8tausf
-6tausg
-t5ausl
-2t1b2
-2t1c
-t6chu
-2t1d
-te2am
-tea4s
-te8ben
-5techn
+ta2ru
+2t1arz
+3tas
+1tas.
+ta3sa
+1ta3sc
+2ta3se
+4t3asp
+1tast
+ta3sta
+ta1str
+1tat.
+ta2tan
+ta4t1ei
+ta4tem
+ta4t1er
+ta2th
+tat3he
+t3atl
+t4atm
+ta2tom
+4tatt
+ta2t1um
+tau4fer
+tau3f4li
+2taufw
+t1auk
+2taur
+1taus
+t1ausb
+3tausc
+tau6schw
+t1ausd
+3tause
+t1ausf
+t3ausg
+t1ausk
+2t1ausl
+t1ausr
+2t3auss
+t1ausü
+4t1ausw
+1tav
+ta3va
+3tax
+ta3xi
+1taz
+tä1c
+1täg
+2tägy
+2täh
+4t1ält
+2täm
+t1ämt
+t1ängs
+3tänz
+t2är.
+tä2ru
+tä2s4
+4tätt
+t1äug
+1täu3s
+4täx
+1tà
+4t3b
+tbe3r2e
+tblock7en
+4t1c
+t3cha
+t3che
+tch2i
+tch3l
+t2chu
+tch1w
+t2ck
+t3cr
+2t3d4
+tdun2
+tdu3s
+1te
+3te.
+te2a2
+2teak
+te3al
+3team
+te3an
+5teba
+5t4ebb
+2t1e2ben
+t2ech
+te5cha
+3techn
+4teck
+te2cka
+te2cki
+3tee
+te1ele
+te1em
+te2e4n1
+te1erw
+4tefe
4teff
-te4g3re
-te6hau
-2tehe
-te4hel
-2t1ehr
-te5id.
-teig5l
-6teign
-tei8gr
-1teil
-4teinh
-t5einhe
-4teis
-t5eisen
-8teiw
-te8lam
-te4lar
-4telek
-8telem
-te6man
-te6n5ag
-ten8erw
-ten5k
-tens4p
-ten8tro
-4t3entw
-8tentz
-te6pli
-5teppi
-ter5a6b
-te3ral
-ter5au
-8terbar
-t5erbe.
-6terben
-8terbs
-4t3erbt
-t5erde.
-ter5ebe
-ter5ein
-te8rers
-terf4
-8terhö
-6terklä
-ter8nor
-ter6re.
-t8erscha
-t5e6sel
-te8stau
-t3euro
-te1xa
-tex3e
-8texp
-tex6ta
-2t1f2
-2t1g2
-2th.
-th6a
-5tha.
-2thaa
-6t1hab
-6t5haf
-t5hah
-8thak
+te2fl
+teg4
+teg3re
+2teh
+te3han
+3tehä
+5tei.
+t2eie
+3teil
+4teilhe
+2tein
+tein3e4c
+t3einge
+t3einla
+4t1einn
+4teinr
+4teinz
+t1eis.
+t1eisb
+tek5te
+5tel.
+3te2la
+te4l1ab
+tel1ac
+te3lan
+tel1au
+3telb
+3tele
+tel1e2b
+tel1ec
+5telef
+te4l1eh
+te3lem
+tel1en
+te3lep
+te3lex
+3telf
+4t1elf.
+3telg
+tel1in
+te2lit
+3telk
+t4ell
+tel3l2e
+5teln
+te2lo
+te2l1ö
+3telp
+5tels
+tel3s2k
+3telt4
+tel3ta
+3tem
+5tem.
+te2man
+te2m1ei
+te2mi
+te3mis
+4temm
+2temme
+te2m1o2r
+5temper
+4tempf
+tem1st
+te4m3u
+3ten
+5t6en.
+te4n3a2
+te5nac
+t4enb
+ten3da
+6t5endf
+4t1endl
+6t5endp
+ten3dr
+te2n1e2b
+te3n4ei.
+ten3eid
+4tenerg
+t1eng.
+te2ni
+ten3im
+ten3in
+t2enl
+t2enm
+t2eno
+t2ens
+tens2e
+4t3ensem
+ten3si
+tens3th
+t1entb
+4tentd
+t1entn
+4tentw
+te2nu
+ten4zer
+ten3zw
+te2o
+te3ob
+t1e2pi
+5t6er.
+te1raf
+ter3am
+te3ran.
+te2r3as
+t2erb
+6t5erbs
+6t5erbt
+4t3erde.
+3tere.
+te2r1e2b
+te4r3eif
+te2rel
+3terem
+3teren
+ter3end
+3terer
+3teres
+5t4erfr
+4terfül
+ter3g
+t6ergru
+te3ria
+ter3k4
+3t2erka
+4t3erklä
+3terkr
+t4erli
+4t1erlö
+t4erlu
+3term
+ter4mer
+ter4n3ar
+t3erneu
+t1erö
+3terr
+ter4re.
+t6ers.
+t6erscha
+ter4ser
+ter4sk
+terst4
+t4erst.
+t4erste
+5t4ersti
+ter5sto
+ter5str
+5t4erstu
+3tert2
+3teru2
+te4r1uf
+ter3z2a
+2t1erzb
+3t2es
+tesa2
+tes1ac
+te2sel
+tes3si
+5te2st
+tes3tan
+tes3tät
+test3ei
+tes6terg
+te2su
+3tet
+te2tat
+4teth
+4teti
+6tetl
+2teu
+3teuf
+3teum
+te1un
+3teur.
+teu2r5a4
+t5euro
+te2vi
+5tewo
+te2x
+te3xa
+2t1exe
+4t1exi
+4texp
+3text
+2t1exz
+1té
+2t3f
+tfi4l
+4t1g4
+tg2a
+t3ge
+tger2
+4th.
+2t1h2a
+3tha.
+3t2hag
+t2hak
3thal.
-6thals
-6t3hand
-2t1hau
-1the.
+t3hap
+t2har
+4t3hau
+4t1hä
+2thc
+t2he.
3t4hea
-t1heb
-t5heil
-t3heit
-t3helf
-1theo
-5therap
-5therf
-6t5herz
-1thes
-1thet
-5thi.
+4theb
+t2hec
+2t1hei
+3t2hek
+t1hel
+3t2hem
+5thema
+5theme
+1then
+3theo
+t2hera
+t1herd
+t1herr
+t1herz
+1these
+3thia
2t1hil
-t3him
-8thir
-3this
-t5hj
-2th1l
-2th1m
-th1n
-t5hob
-t5hof
+t1him
+t1hin
+2thk
+4th3l
+4th3m
+2th3n
+4t1hoc
+t1hof
+2t3hoh
+t2hol.
4tholz
-6thopti
-1thr6
+t2hon
+4t3hot
+4t3hö
+2thp
+3thr2
+5thrine
4ths
-t1hum
-1thy
-4t1hä
-2t1hö
+4t1hub
+4thun
t1hü
-ti1a2m
-ti1b
-tie6fer
-ti1en
-ti8gerz
-tig3l
-ti8kin
-ti5lat
-1tilg
-t1ind
-tin4k3l
-ti3spa
-ti5str
-5tite
-ti5tr
-ti8vel
-ti8vr
+2thv
+1ti
+ti2a
+ti3a2m
+ti3an
+tib4
+3tibe
+3tibl
+2tic
+ti1ce
+ti4d3end
+t2ie
+tie3br
+3tief.
+2tieg4
+2tieh
+ti1el
+ti2el.
+ti3e2n1
+ti2er
+3tiera
+4tieß
+ti3et
+ti1eu
+3tif.
+ti3fa
+ti1fr
+3tig
+3tik
+ti4kam
+ti3k2an
+ti2kr
+tik5t
+ti2lei
+til1ep
+3tilg
+ti3lo
+ti4lö
+tilt4
+ti2lu
+2tim
+ti2mag
+tim2m1a
+4t1imp
+5tin.
+ti3na
+t1inb
+4t1ind
+ti5n4e
+2t1inf
+tin2g1a
+tin2g3l
+tings2
+ting3st
+t1init
+4t1inj
+tin2k3l
+t2inn
+3tins.
+4t1inse
+4tint
+4t1inv
+5tio
+ti3or
+3tip.
+ti3pl
+3tipp
+3tips
+ti2rak
+ti1rh
+5t2is
+tisch3w
+ti4sei
+ti2sol
+t4it
+3tite
+tit2h
+2ti3tu
+tiu6
+tium2
+5tiv
+ti2van
+ti2vel
+ti4v3erl
+ti2v1o
+ti4v1r
+ti2za
2t1j
-2t1k2
-2t1l
-tl8a
-2t1m8
-2t1n
-3tobe
-8tobj
-to3cha
-5tocht
-8tock
+2t3k4
+tkü1b
+2t3l2
+tl4e
+tle2r5a
+4t5li
+tli5f
+tlings3
+tlö3s
+2t1m2
+t5ma
+tmen2s
+tmen6t
+tmin4s
+tmo4des
+t3mu
+tmüll4s3
+2t5n4
+tna5me
+tnes4
+3to.
+toa4
+to5ar
+to5at
+1tob
+to3be
+2tobj
+tob4l
+to2c
+to3ch
+3tocht
+to6ckent
+3tod
tode4
-to8del
-to8du
-to1e
-6t5o6fen
-to1in
-toi6r
-5toll.
-to8mene
-t2ons
-2t1ony
-to4per
-5topf.
-6topt
+4to2d1er
+tode6s
+to4d1u
+1tok4
+1tol
+to3la
+3tole
+2tolz
+tome2
+to4men
+2tomg
+3ton
+to5nik
+to3ny
+3too
+to2pak
+to2pat
+to1pec
+t3opfer
+to3phe
+to2pl
+1topo
+2topp
+1tor
+3tor.
to1ra
-to1s
-to2ste
-to6ska
-tos2l
-2toti
-to1tr
-t8ou
-2t1p2
-6t1q
-tr6
-tra5cha
-tra8far
-traf5t
-1trag
-tra6gl
-tra6gr
-t3rahm
-1trai
-t6rans
-tra3sc
-tra6st
-3traue
-t4re.
+to2rau
+to4rän
+4torc
+t1ord
+3tore
+to2r1el
+to3ren
+2t1org
+t3orga
+3torh
+tor3int
+to2rö
+3tors
+t1ort.
+to4ru
+2tory
+to5sc
+1to5se
+to4sk
+to5s2p
+2toss
+1to3st4
+2toß
+3to5te
+to2tho
+1totr
+5t4ou
+touil4
+to3un
+3tow
+1toz
+3töch
+2t1öf
+2t1ök
+3tön
+tör3ste
+t1öst
+1töt
+4t3p2
+tpf4
+2t1q
+t2r4
+2tr.
+5tra.
+tra3bl
+1t4rac
+3trach
+tra3cha
+t3rad.
+tra4dem
+3trag
+2t3rahm
+5t4rai
+3trak
+3tral
+3t4ran.
+2trand
+3trank
+t3rann
+5trans
+t3rase
+t3rasi
+tra4st
+2traß
+1traum
+3träc
+t3räd
+3träg
+3träne
+2träs
+2träß
+4t5re.
+2treb
2trec
t3rech
-t8reck
-6t1red
-t8ree
-4t1reg
-3treib
-4treif
-8t3reis
-8trepo
-tre6t5r
+t4reck
+2t3red
+t4ree
+3tref
+4trefe
+4trefo
+2treg
+t4rei.
+3t4reib
+2treic
+2treif
+t3reig
+2t3reih
+t3rein
+2t3reis
+4treit
+t3reiz
+2t3rek
+2t3rel
+t4rem
+t4ren.
+3trend
+4trendi
+t3rent
+2trepe
+2trepo
+t4rer
+3t4res.
+t4ret
+tre2t5r
+t4reu
+3treuh
t3rev
-4t3rez
-1trib
-t6rick
-tri6er
-2trig
-t8rink
-tri6o5d
-trizi5
-tro1a
-3troc
-trocke6
-troi8d
-tro8man.
-tro3ny
-5tropf
-6t5rosa
-t5roß
-5trub
-5trup
-trut5
-1träg
-6t1röh
-5trüb
-trü3bu
-t1rüc
-t1rüs
+2trez
+5t4ré
+2t3rh
+1tri
+t4riche
+3trieb
+tri4er
+3trigg
+t3rind
+tri3ni
+3trio
+t4rip
+trizi1
+1tro.
+tro3b
+1troe
+3t4roi
+tro2ke
+2trom.
+tro2mi
+2troml
+1tron
+2t3roo
+t4rop
+3tropf
+1tros
+3troy
+t3röc
+3trög
+1trös
+2tröt
+1trua
+3trug
+2truk
+trum2
+trums1
+3trunk
+3t4rup
+trü1be
+trü1bu
+2t3rüc
+3trümm
+try1
2ts
-ts1ab
-t1sac
-tsa8d
-ts1ak
-t6s5alt
-ts1an
-ts1ar
-ts3auf
-t3schr
-t5schä
-tse6e
-tsee5i
-tsein6s
-ts3ent
-ts1er
-t8serf
-t4serk
-t8sh
-5t6sik
-t4s3int
-ts5ort.
-t5s6por
-t6sprei
-t1st
-t2ste
-t6s5tanz
-ts1th
+4ts.
+t2s1a
+t4s3ab
+t5s4ac
+ts3ad
+t3saf
+ts2ag
+t4s3amt6
+t4s3ar
+ts3as
+t4sau
+t5sau.
+t2s1än
+t2sca
+t4schar
+t5sch2e
+tsch4li
+t4schro
+ts4cor
+t2s1e2b
+tse4c
+ts1eck
+t4s3e4h
+t3seil
+t4seind
+ts1em
+tse2n
+t3sen.
+ts1eng
+t2s1ent
+t2s1er
+t4s3esse
+ts1ex
+t2s1i2d
+ts1ini
+t2s1ir
+t3skala
+ts3kr
+t2s1o2
+t3sol
+t3som
+t3soz
+t2sö
+t2sp
+t3spal
+t3span
+ts1par
+ts4pare
+t3spas
+t3spek
+ts2pi
+t3s2pon
+t3s2por
+ts3s2
+t1s2t
+ts3taf
+ts3tak
+ts3täti
+ts3tep
+t3stero
+t5steu
+ts3th
+ts4til
t6stit
-t4s3tor
-1t2sua
-t2s1uf
-t8sum.
-t2s1u8n
-t2s1ur
-2t1t
-tt5eif
-tte6sa
-tt1ha
-tt8ret
-tt1sc
-tt8ser
-tt5s6z
-1tuc
-tuch5a
-1tu1e
-6tuh
-t5uhr
-tu1i
-tu6it
-1tumh
-6t5umr
-1tums
-8tumt
-6tund
-6tunf
-2t1unt
-tu5ra
-tu6rau
-tu6re.
-tu4r3er
-2t1v
-2t1w
-1ty1
-ty6a
-ty8la
-8tym
-6ty6o
-2tz
-tz5al
-tz1an
-tz1ar
-t8zec
-tzeh6
-tzehn5
-t6z5ei.
-t6zor
-t4z3um
-t6zäu
-5täg
-6täh
-t5ält
-t8än
-täre8
-8tä8st
-6täuß
-t5öffen
-8tö8k
-1tön
-4tüb
-t6ü5ber.
-5tüch
+ts3toc
+ts3tor
+ts3trad
+t4s3trau
+t2s3trä
+t2s3tri
+t3strö
+ts3trü
+t3stu
+t3stü
+t2s1u
+1tsub
+t3sy
+4t1t
+tt1ab
+tt3ad
+t2t1ak
+t3tal
+t3tan
+t4tanb
+tt1art
+tt1auf
+tt1ebe
+tt1eif
+tt1ein
+tt1eis
+t3te2l
+tte4la
+tte4l1o
+tte2s
+tte4s1ä
+t2teti
+t2th
+tt3ha
+tt2häu
+tt1ho
+tt1hu
+t3ti
+t3tra
+t2trau
+t3trä
+t3t4ro
+tt5rom
+tt3ru
+tt3rü
+tt2se
+tt3sec
+tt5se5h
+tt3sel
+tts1p
+tt2s3ti
+ttt4
+t3tu
+tt3z2
+1tu
+tu1alm
+tu3an
+2tub
+3tuch
+tu2chi
+2tud
+3tue
+tue3re
+tu3et
+2tuf
+tuf2e
+tu3fen
+t1u2fer
+2tuh
+2tu2k
+tu3ka
+t1ukr
+tu3la
+3t2um.
+5tume
+2tumf
+2tumg
+2tumk
+tum2si
+tum2so
+2t1umt
+3tun.
+2t1una
+2tund
+3tu3ne
+2t1unf
+3tung
+t1unga
+tun2gl
+tung6s
+2tunif
+2t1u4nio
+2tunt
+3tuö
+t1up.
+tu2ra
+tur3a4g
+tu3ras
+tur3b
+tur1c
+tu4re.
+tu2rei
+tu2r1er
+tur3ere
+tu4res
+tu2r3e4t
+3turn
+tu2ro
+tu3rol
+tur3s2
+tu2ru
+t2us
+tu2sa
+tu4schl
+tu4so
+tu3ta
+2tüb
+t3übe
+3tüch
+tück2s
+1tüf
+1tüm
1tür.
-u3al.
-u5alb
-u5alf
-u3alh
-u5alk
-u3alp
-u3an.
-ua5na
-u3and
-u5ans
-u5ar.
-ua6th
-u1au
-ua1y
-u2bab
-ubi5er.
-u6b5rit
-ubs2k
-u5bö
-u8büb
-2uc
+tür1c
+1türe
+1türg
+1tür3s
+3tüten
+2t1v
+t5vo
+4t1w
+twa4r
+twi4e
+1ty
+2tyl
+ty4le
+3typ
+ty2pa
+ty3st
+2t1z
+t2z1a2
+tz3an
+tz3as
+t2z1ä
+t5ze.
+t2z1e4c
+t2z1eie
+t2z1eis
+tze4n
+tz4ene
+tz3ents
+t2z1erl
+t3ze2s
+tz1imp
+tz1ind
+tz1int
+t2zo
+tz1of
+t3zon
+tz1or
+tz4tin
+t2z1w
+2u.
+u3a2b
+u1a2c
+ua3d
+uad4r
+u1al.
+u3alet
+u1alf
+u3a2lo
+u1alr
+u1als
+ual3t
+ua2lu
+u1am
+u3ans
+ua2p
+u3ar.
+uar3a2b
+u3ars
+ua3sa
+ua2t3h
+ua5t2i
+u3au
+u1ay
+u1äm
+u1äu
+2u1b
+u3be
+ub6i
+ub3lic
+ub5los
+u3blö
+ub3lu
+u2bop
+ub3rä
+ub5rit
+ub2sa
+ub2s1o
+ub2spa
+ub3um
+u2b3üb
+4uc
+u1ce2
+u2ch1a
+u3cha.
+uch3an
+uch1ä
u1che
-u6ch5ec
+u2ch1e2c
+uch1ei
+u3ches
u1chi
-uch1l
-uch3m
-uch5n
-uch1r
-uch5to
-ucht5re
+uch3il
+uch1in
+uch3l
+uch5m
+uch3n
+u2ch3r
+uch2so
+uch4spr
+uchst4
+uch4tor
+uch2t3r
u1chu
-uch1w
-uck1a
-uck5in
-u1d
-ud4a
-u1ei
-u6ela
-uene8
-u6ep
-u1er
-uer1a
-ue8rerl
-uer5o
-u8esc
-u2est
-u8ev
-u1fa
+uch3ü
+uch3w
+u2ckem
+u4ckent
+uck2er
+u4ck3erl
+u2cki
+uck4sta
+u1cr
+2u1d
+u5d2a
+udens2
+ude3r2e
+udi3en
+uditi4
+u4don
+ud3ra
+u1e
+ue4ck
+u2ed
+ue2en
+u2eg
+u4ela
+ue2le
+ue2mi
+ue2n1
+u3eni
+uen3k
+uen2zu
+u2ep
+ue2r3a
+u3e2r1ä
+ue2rei
+uer5eife
+u5eremp
+u5erent
+ue4rerg
+uer3g2
+u5erinf
+u5erint
+uerk4
+uer4ne
+uern3s4t
+uer3o
+u3err
+uert2
+u3erum
+u3erunf
+u3erunt
+u3erur
+u3erv
+uer3z
+ue2ta
+ue4tek
+uet4s
+uf3ad
+u3fah
+uf1ak
+ufall2
+uf1ar
+uf1au
+u2f1äs
+u2f1ä2ß
u2f1ei
-u4f3ent
-u8ferh
-uf1fr
-uf1l
-uf1ra
-uf1re
-uf1rä
-uf1rü
-uf1s2p
-uf1st
-uft1s
-u8gabt
-u8gad
-u6gap
-ugeb8
-u8gn
-ugo3s4
-u1ha
-u1he
-u1hi
-uh1le
-u1ho
-uh1re
-u1hu
+u2f1em
+u3fen.
+u2fent
+u2f1erh
+uf2ern
+2uff
+uf3fe
+uff4l
+uf2fro
+uf3l
+u3fo2r
+uf1ori
+u1fö
+uf3r
+uf5sä
+uft1eb
+uft3s4
+uft5sa
+2u1g
+u4gabte
+ug1af
+ug1ak
+u2g1ap
+uga4s
+ug3asc
+ug1au
+u4g7e2i
+u2g5ent
+ug5erf
+ug5erl
+uge7sc
+ugge4st
+ug3hu
+u2g1l
+ug3lä
+ug5lo
+u3g4lö
+u4g3lu
+u2g3n
+ugo3
+ug1or
+u2gö
+u4g3reis
+ug3ro
+ug3rum
+ug3rüs
+ug5sc
+ug3s2e
+ug3si
+ug3spa
+ug4spr
+ugs2t
+ug5stä
+ug3str
+ugut2
+u2gü
+u1h
+2uh.
+uhe1ra
+uhe1s4
+uhe3st
+uh1la
+uh1lä
+uh3ma
+uh5me4
+uhr1a
+uhr3er
+uh1ri
+uh4rin
+uhrt4
+uhr3tr
+uh2ru
uh1w
-u1hä
-u1hö
-6ui
-ui5en
-u1ig
-u3ins
-uin8tes
-u5isch.
+4ui
+ui2ch
+u1ie
+ui1em
+u3ig
+u4ige
+u3in.
+u3isch.
+u3ischs
+uisi4n
+ui4s3t
u1j
-6uk
+ukä2
+u3käu
u1ke
u1ki
u1kl
-u8klu
-u1k6n
-u5ky
-u1la
-uld8se
-u1le
-ul8lac
-ul6lau
-ul6le6l
-ul6lo
-ulni8
-u1lo
-ulo6i
-ult6a
-ult8e
-u1lu
-ul2vr
-u1lä
-u1lö
-3umfan
-5umlau
-umo8f
-um8pho
-u1mu
-umu8s
-u5mö
-u1n1a
-un2al
-un6at
+u3kla
+ukle1i
+u3klo
+u3klö
+u5kö
+u1k4r
+uk2ta
+uk2t3in
+uk2t3r
+u1ku
+uku2s
+u1l
+ul1ab
+ul1am
+ul2ar
+ula2s
+ul1äm
+ulb4
+uld2se
+u2l1el
+ule4n
+ul1erf
+ul1erh
+ul1erw
+ules1a
+ule2t
+ul3eta
+ul3fe
+ulg4
+uli2k
+uli5ne
+ul1ins
+ul3ka
+ul2kn
+ull2a
+ul2les
+ull1s
+ulm3ein
+ulo2i
+ul1or
+ulö3s
+ul2p1h
+ul2sa
+ul2sei
+ul3sp
+ulsu3
+uls3z
+ul4tar
+ul2tau
+ul3th
+ul2tri
+u2lü
+ulz2
+ul3zw
+u2m3a2k
+um1all
+um2an
+uman4s
+um1anz
+um1ar
+um1aus
+1umd
+2ume
+um4en
+ument4s
+umer2a
+um1erg
+um1erl
+um1erw
+1umf
+1umg
+um1ins
+um1ir
+1umk
+1uml
+2umm
+um3m2a
+um3n
+u3mon
+umpf4li
+um2pl
+ump3le
+1umr
+1umsat
+um4ser
+um2sim
+um2s1pe
+um1st
+um2su
+umt2
+um3th
+u2m3ur
+1umz
+u2n
+2un.
+2una.
+1unab
+un1ac
+un4al
+u3nam
+u4n3an
+un1ap
+2u5nas
+un3at
unau2
-6und.
-5undein
+un1ä
+4unc
+un4dab
+un4d1ac
+1unddr
+un4dei
+und3erf
+und5erha
+un2did
+un2do
+un2d3r
+und5re
+4unds.
+und3sp
un4d3um
-3undzw
-undü8
-un8düb
-une2b
-un1ec
-une2h
-un3eis
-3unfal
-1unfä
-5ungea
-3unglü
-ung2s1
-un8gä
-1u2nif
-un4it
-un8kro
-unk5s
-u1no
-unpa2
-uns2p
-unvol4
-unvoll5
-u5os.
+1undvi
+1undzw
+un1e2
+un3ein
+un3el
+une3re
+un4es4
+un3et
+un2gä
+1unget
+1ungew
+un1gl
+1unglü
+un2g1r
+ung3ra
+ung3ri
+ung4s3
+u3ni
+un1ide
+1u4nif
+un1in
+un1ir
+2unis
+un5isl
+1u4niv
+un2k1a
+un2kn
+un2kre
+un2kro
+unks2
+unk3sp
+unk4t3r
+3unku
+un2n3a2d
+un5n4e
+un3no
+unn3s
+un1o
+uno4r
+un2os
+1unr
+uns2
+2uns.
+unsch5el
+un5se
+1unsi
+un3sk
+un3sp
+un2stu
+1unt
+un3ta
+unte2
+un3th
+un3t4r
+2untu
+un1u
+u3nut
+unvol2
+unvoll3
+1unw
+u1o2b
+u3of
+u3or.
+u1or3c
+u1os.
u1pa
-u1pi
-u1p2l
+u1pe2
+uper1
+up2fa
+up3f2e
+up2f1i
+u3pfl
+u3pi
+up2pr
u1pr
-up4s3t
-up2t1a
+up1ru
+up1sl
+up4t3a2
+upt3erg
+upt1o
+up4tr
+u1pu
u1q
+4ur.
u1ra
-ur5abs
-ura8d
-ur5ah
-u6rak
-ur3alt
-u6rana
-u6r5ans
-u8rap
-ur5a6ri
-u8ratt
-u1re
-ur3eig
-ur8gri
-u1ri
-ur5ins
-3urlau
-urmen6
-ur8nan
-u1ro
-3ursac
-ur8sau
-ur8sei
-ur4sk
-3urtei
+u3ra.
+u3raba
+ura2be
+u3rak
+u3ral
+ur3alg
+u2r3a2m
+ur1ana
+ur2anb
+u3rand
+ur1ang
+ur2anh
+ur1ans
+u3rant
+ur3a6ren
+u3rati
+ur3att
+ur1au
+u3raz
+2urä
+ur1än
+urb2
+ur3ba
+ur2ble
+urch1
+urch3s
+urd2
+ur3di
+2ure
+ur1eff
+ure3g
+u2rele
+ure4n
+u5ren.
+u2rent
+ur1erh
+ur1erw
+2urf
+urg2a
+ur2gri
+urgros4
+urgs2
+urg3st
+u1r2i
+uri2c
+u2r3im
+ur3ind
+ur1ini
+ur3ins
+ur1int
+ur3inv
+urk2s
+1urlau
+urm2a
+urm3ang
+2u1ro
+uro3st
+u1rö
+2urr
+ur3sac
+ur2san
+urs1au
+ur6sei
+ur4ser
+ur6sin
+ur2st
+ur5st4r
+ur4sw
+urt2
+ur5t4e
+ur3th
u1ru
-uru5i6
-uru6r
-u1ry
+urü2
ur2za
-ur6zä
-ur5ä6m
-u5rö
-u1rü
-urück3
-u1sa
-usa4gi
-u2s1ar
+ur2zä
+ur2zi
+ur2zo
+ur2z1w
+u4saf
+us1an
+us4ann
u2s1au
-u8schec
-usch5wi
+u6schent
+usch5wer
+us1ec
u2s1ei
-use8kel
-u8sl
-u4st3a4b
-us3tau
-u2s1uf
-u8surn
-ut1ac
-u1tal
-uta8m
-u1tan
-ut1ar
-u1tas
-ut1au
-u1te
-u8teic
+u3seid
+u5sep
+use1ra
+u2serp
+us4et
+usi3er.
+usi5ers.
+u3sik
+us3oc
+u3soh
+u3sol
+us1op
+us3ou
+u3sow
+us3part
+us1pas
+us1pe
+u3spek
+us1pic
+u5s2piz
+us2por
+us4sei
+usse4n
+uss5erfa
+uss3erk
+uss5ersu
+us4sez
+us2sof
+uss3tät
+ust1a2b
+u3stal
+u3stel
+us1tr
+us4tris
+u3stu
+u4stun
+u4stur
+us2ur
+u2sü
+u1sy
+u1ß
+ußen3
+2u1t
+u3taf
+ut1alt
+ut1a4m
+u2t1ap
+u2t3ar
+ut1är
+u3tät
+u3te
+u5te.
+u4t1e4g
+ute2l
+ut2em
+ute2n1
+uten3e
u4tent
-u8terf
-u6terin
-u4t3hei
-ut5ho
-ut1hu
-u1ti
-utine5
-uti6q
-u1to
+ute5r4er
+u5tern
+ut3ersa
+u5tet
+u4tev
+u4t1ex
+u2t1hi
+u2t1ho
+u2t1hu
+uti2q
+uto4ber
uto5c
-u1tr
-ut1sa
-ut1s6p
-ut6stro
-u1tu
-utz5w
-u1u
-u1v
-uve5n
-uve3r4ä
+uto3n4
+ut1opf
+u2tops
+ut4or
+u3tos
+ut3rea
+ut3rü
+ut5sa
+ut2s1ä
+ut4schl
+ut6schö
+ut3sp
+ut4spa
+ut3te
+ut3t4l
+utts2
+utt3sp
+utu3ru
+utz3eng
+ut2zin
+u1u4
+uufe2
+u1ü2
+u1v4
+u2ve.
+uve3rä
u1w
-u1xe
-u5ya
-uy5e6
-u1yi
-u2z1eh
-u8zerh
-u5ö
-uße6n
-ußen5e
-8vanb
-6vang
-6varb
-var8d
-va6t5a
-va8tei
-va2t1r
+uwa3s
+u1x2
+ux3t
+u1ya
+u1z
+uze2
+uz3ot
+uz1we
+uz3z4
+1üb
+2übd
+übe2
+übe3c
+übe4r1
+ü2b5l
+3üb5r
+üb2st
+3übu
+2üc
+ü1che
+üch3l
+üch4s3c
+üch5t4e
+ück1er
+ück5e4ri
+ü4ckers
+ück4spe
+ü4d3a4
+ü3den.
+üden4g
+ü3d2ens
+üd1o4
+üd1ö
+ü4d5r
+üd3s2
+üdsa1
+üd1t4
+ü2f3a
+ü2f1ei
+ü2f1erg
+üf2fl
+ü2f1i
+üf3l
+ü1g
+ü3ge
+ü2g3l
+ü2gn
+üg3s
+üg4st
+üh1a
+ü1he
+ü2h1ei
+ü2h1eng
+ü2h1erk
+ü2h1erz
+üh1i
+ühla2
+ühl1ac
+ühl1ag
+üh5l2e
+üh3li
+üh3mi
+üh3mo
+üh5ne
+ühner5ei
+üh3r4e
+ühr5ei.
+üh5ro
+ühr5ta
+üh1s
+üh3s2p
+üh5te
+ü1hu
+üh1w
+ü1k
+2ül
+ül1a
+ül2c
+ü5l4e
+ül2la
+ül2l1ei
+ül2lo
+ül4lö
+ü1lu
+ü4ment
+2ün
+ü2n1a
+ün2c
+ün2da
+ün2dr
+ünd1s
+ün2f1
+ün4f3ei
+ün3fl
+ün4fli
+ünf3r
+ün2g3l
+ünn4s
+ün2s
+ün3sc
+ün3sp
+ün4st
+ün5sta
+ün5str
+ün3th
+ün2za
+ü1pe
+ü1pi
+ü1pu
+ür1a
+ü2r1ei
+ür2fl
+ür4f3r
+ür4g5eng
+ü1ri
+ü1r2o
+üro3b
+ü3rofe
+üro1r
+üro3st
+ürr2
+ür2s
+ürs3tin
+ürt2h
+ür3the
+ü1ru
+ü2schl
+üse3h
+üse3l
+üs4s3c
+üs5se
+üs2st
+ü2st
+üste3ne
+ü1ß
+ü1ta
+ü2t1al
+üt3r
+üt2s1
+üt2tr
+ü1v
+ü1z
+2v.
+3va.
+2v1ab
+va3c
+va3ge
+val2s
+2vang
+2v1arb
+va3st
+v4at
+va2t3a6
+va4tei
+va2t3h
+va4t1in
+vati8ons.
+va2t3r
+vat3s2
+vat3t
+va2t1u
+2v1au
2v1b
-6v5c
-6vd
-1ve
-6ve5g6
+2v1d
+ve2
+3vea
+ve3ar
+ve3b
+ve3c
+ve3d
+ve3g
+ve3h
+veit4
+veits3
+vek3
+ve3la
+ve4l1au
+ve3le
+ve3li
+veli5ne
+ve3lo
+ve3ma
+ve3mu
+ve3nal
+ve3ne
+ve3ni
+ven3k
+ve3nö
+ve3nu
+ve3o
ver1
-ver5b
-verb8l
-ve2re2
-verg8
-ve2ru8
-ve1s
-ve2s3p
-ve3xe
-2v1f
+ver3a
+ve3rad
+ve5rand
+ve5ras
+ver3b4
+ver3d2
+vere2
+ve3reie
+ve3ren
+verf4
+verg4
+ve3ri
+ve5ris
+ve5rit
+ver3st
+2vesc
+2ve3se
+ves1p
+ves3ti
+ve3ta
+vete1
+vete3r
+ve3tr
+2veü
+ve3v
+ve5x2
+ve7xe
+2v1f4
2v1g
-6v5h
-vi6el
-vie6w5
-vi1g4
-vi8leh
-vil6le.
-8vint
-vi1ru
-vi1tr
+2v1h
+vi2a
+vi3an
+vi4a3t
+vi4c
+vi3de
+vid3s2t
+vie2h3a
+vi2el
+vi2er
+vie2w1
+vig2
+vi3ka
+vi2l1a
+vi2leh
+vi2l1in
+2v1i2m
+vi4na
+vin2s
+2v1int
+3vio
+vi3sa
+vise4
+vi5s2o
+vi3s2u
+vize5
2v1k
-2v1l
+2v1l2
2v1m
-4v5n
-8vo8f
-voi6le
-vol8lend
-vol8li
-v2or1
-vo2re
-vo8rin
-vo2ro
+2v1n
+2v1ob
+vo2gu
+voll1a
+voll5end
+von3
+2v1op
+vo2r1
+vor3a
+vor3d
+vor3g
+vo3ri
+vo5rig
+vor3o
+3voy
+vö2c
2v1p
-8vra
-v6re
-2v2s
+v3pf
+v1ra
+3vri
+v1ro
+2vs
+vs2e
+v3s2z
2v1t
+2vumf
2v1v
-4v3w
+2v1w
2v1z
-waffe8
-wa6g5n
-1wah
-wah8n
-wa5la
-wal8din
-wal6ta
-wan4dr
-5ware
-wa8ru
-war4za
-1was
-w5c
+4w.
+w2a
+wab2bl
+wa5che
+wa3d
+waffe2
+1wag
+wa5ge
+wa2g5n
+wa2gr
+wa3gra
+3wah
+wahl5ent
+wah3ru
+wai2b
+1wal
+3wald
+wal4da
+walt4st
+wa5na
+wang6s
+wan4s
+wa2p
+wa2r
+wa3ra
+1war2e
+ware1i
+wa3ri
+war3ste
+wart4e
+wa3ru
+1wa2s
+wa3sa
+wa3se
+wa3sh
+wa3si
+wass4
+was7se
+1wäh
+1wäl
+1wäs
+wäs4c
+wä5sche
+wäs5se
+w1b
+2w1c
w1d
-5wech
-we6fl
-1weg
-we8geng
-weg5h
-weg3l
-we2g1r
-weh6r5er
-5weise
-weit3r
-wel2t
-welt3r
-we6rat
-8werc
-5werdu
-wer4fl
-5werk.
-wer4ka
-wer8ku
-wer4ta
-wer8term
-we2sp
-we8s4tend
-we8str
-we8stö
-wet8ta
-wich6s5t
-1wid
-wi2dr
-wiede4
-wieder5
-wik6
-wim6ma
-win4d3r
-5wirt
-wisch5l
-1wj
-6wk
+weat3
+we3be
+4webeb
+we3cke
+we5cke.
+we5cken.
+we5ckes
+we3d
+we2e2
+weed1
+we2fl
+3weg
+we2g1a
+we2g5l
+we4g3r
+wegs4
+weg3sp
+1weh
+we3he
+wei4bl
+2weie
+weis4s3p
+wei3str
+wei3ße
+wei4tr
+weit3s
+wel2s
+wel3se
+wel2t1
+wel4t3a
+wel6tend
+wel4tr
+wen3a6
+we3ni
+wen4k3ri
+we2r3a
+wer2bl
+1werbu
+werd2
+werde3i
+5werdens
+1werdu
+wer2fl
+2werg
+we4r1io
+1werk.
+1werke
+wer2kl
+wer2ku
+wer2s
+wer2t3a
+wer4tei
+wer6t5erm
+wer4to
+1werts
+1we3se
+we3si
+we2s1p
+we4st
+west1a
+west3ei
+wes2t1o2
+west3r
+wes4tu
+wet4s
+wet4ta
+wett3s
+2w1g
+w5ho
+wi3cka
+3wid
+wi2e
+wie3l
+wie5ne
+wie2st
+wi3k2
+wim2ma
+wim4m3u
+win4d3e4c
+win2dr
+win2e
+win8n7ersc
+wi4r
+1wirt
+wi5s4e
+1wiss
+wi3th
+1witzl
+3wj
+2wk
2w1l
-8w1n
-wo1c
-woche6
-wol6f
-wor6t5r
-6ws2
-w1sk
-6w5t
-5wunde.
-wun6gr
-wu1sc
-wu2t1
-6w5w
-wy5a
-wärme5
-wä1sc
-1xag
-x1ak
-x3a4men
-8xamt
-x1an
-8x1b
+2w1m
+wn3sh
+1wo1c
+wo2cha
+woche4
+1woh
+woh4l
+1wolf
+wolf4s
+wol4ler
+wor3a
+wo2r3i
+wor2t3r
+wo4r3u
+wot2
+1wöc
+wört2h
+wör3the
+2w1p
+1wr
+w1ro
+2ws
+w3s4k
+w1s2t
+2w1t
+w3ti2
+w2u
+1wuc
+wul2
+wul3se
+wun2s
+4wur.
+wur2fa
+wur4s
+1wurst
+wus2
+wus3te
+1wu4t1
+1wüh
+wül2
+wün3
+2w1w
+6x.
+x1a
+1xa.
+2x3ab
+1xad
+1xae
+xa1fl
+1x2a3g
+xa4m
+xa3me
+xa5mer
+2xan
+x4anz
+3xas
+2x1b
x1c
-1xe.
-x3e4g
-1xen
-xe1ro
-x1erz
-1xes
-8xf
-x1g
-8x1h
+4x1d
+1xe
+x1e4g
+2xek
+xe2l
+xe3lei
+x1em
+7x2em.
+xemp6
+3x2en
+xens4
+xen3sa
+x2er.
+5xere
+xers2
+3xes
+2x3eu
+2x1f
+2x1g
+xge1
+2x3h
1xi
-8xid
-xi8so
-4xiste
-x1k
-6x1l
+xib4
+xi1c
+xich2
+2xid
+xide2
+xi2d1em
+x1i2do
+xie3l
+xi3g4
+xi2lo
+xi2l1u
+xin3sk
+x2i2s1
+xi3sc
+xi4se
+xiso2
+xis3s
+xis2tä
+x1i2tu
+x1j
+x1k4
+2x3l
+xlib6
x1m
-8xn
-1xo
-8x5o6d
-8x3p2
+2x1n
+x1or
+4x3p
+x1q
x1r
-x1s6
-8x1t
-x6tak
-x8terf
-x2t1h
+2x3s2
+4x1t
+x2t1a
+xt3an
+xt4as
+x2t1ä
+x3tät
+xtblo4
+x2t1e2d
+x2t1ei
+x4tent
+x2t1erf
+xtra1b6
+x2t3ran
+xt3s2
+x2t1u
+x3tur
1xu
-xu1e
-x5ul
-6x3w
+xu1a
+x1u4n
+xu2s1
+x1v
+2x1w
+1xy.
+1xys
x1z
-5ya.
-y5an.
-y5ank
+2y1ab
+1yac
+y1al.
+y1a2m
+yan2g
+y3ät
y1b
+yb6r
y1c
-y6cha
-y4chia
+y2chi
+y3chis
+ych5n
y1d
-yen6n
-y5ern
+y3d4r
+y1e
+y2ef
+yen4n
+y2es
+ye3sp
+y3est
+ye2th
+y1f
y1g
-y5h
-y5in
+ygie5
+y1h
+yhr2
+y1i4
y1j
-y1k2
-y1lak
-yl1al
-yla8m
-y5lax
-y1le
-y1lo
-y5lu
-y8mn
-ym1p2
-y3mu
-y1na
-yno2d
-yn1t
-y1on.
-y1o4p
-y5ou
-ypo1
-y1pr
-y8ps
+y1k4
+yk5s
+y1l
+yl3a2m
+y3lant.
+y3lante
+yl3c
+y5len
+y5ler
+yli4n
+yloni1
+yls2
+yl1st
+y2l1u
+yma4t
+ym3p4
+ympi3e
+y2ne
+y2n3o
+yn3t
+y1of
+yom2
+yon4i
+y1ont
+y3ou
+y1p
+ypa2
+yp3an
+ype2
+yper3t
+y3ph
+y2p1in
+ypo3
+y4ps
+yp3t
y1r
-yri3e
-yr1r2
-ys5iat
-ys8ty
+y3r2e
+y3ri
+yri1e
+y5s4c
+y1sé
+ys2h
+y3s2p
+y2st4
+ys1tr
+y3s2ty
+y3s2z
y1t
-y3w
-y1z
-yä8m
-z5a6b
-zab5l
-8za6d
-1zah
-za5is
-4z3ak
-6z1am
-5zange.
-8zanl
-2z1ara
-6z5as
-z5auf
+y2t2h
+yu2r
+yure3
+y1v
+y1w
+y1y
+y1z2
+6z.
+2z3a2b
+za1c
+z3a2d
+za3de
+2z1af
+za3gr
+3z2ah
+2z3a2k
+2z1all
+2z1am
+z3ambik
+3zambiq
+z1an
+za2na
+2z3anf
+3zani
+z3anl
+3zar.
+2z1arb
+3za3re
+z1arm
+3zaro
+za3st4
+2z3at
+3zaub
+z1au2f
+z3aug
3zaun
-2z1b
-6z1c
-6z1d
+zä2
+2z1äc
+3z2äh
+2z1äm
+z1ärg
+z1ärm
+4z3b6
+zbü1b
+zbübe5
+4z3c
+2z3d
+zdä1
+zdi1st
1ze
-ze4dik
-4z3eff
-8zein
-zei4ta
-zei8ters
-ze6la
-ze8lec
-zel8th
-4zemp
-6z5engel
-zen8zin
-8zergä
-zer8i
-ze1ro
-zers8
-zerta8
-zer8tab
-zer8tag
-8zerz
-ze8ste
-zeu6gr
+ze3a
+2zeck
+ze1e
+2z1eff
+zei3la
+zeile4
+2z1ein
+zei3s2
+zei5sp
+zeist4
+zeit1a
+zei4tak
+zeit7ende
+zei4t3er
+zei2tr
+zeit3sp
+ze4l1a2
+zel3ad
+zel1er
+zel1in
+zel5la
+zel3sz
+zel3th
+zelu2
+ze5m4e
+2z1emp
+5zen.
+ze4n1ac
+zen5s2e
+zen2ta
+5zentr
+zent3sk
+2zentw
+ze2nu
+zen4zer
+5z2er.
+ze2r3a
+ze2r1e2b
+2z1ergä
+4z3ergeb
+z3erhal
+2zerhö
+ze3ri
+zer3k2
+3zerl.
+5z2ern
+zer4neb
+zer6n3ei
+2zerq
+5zerr
+z2ers
+2z3ersa
+4zerste
+zert2a2
+zer4t3ag
+zer4ter
+zer4tin
+zer6t5rau
+2zerz
+3zerza
+z1erzi
+ze2sä
+ze2s1i
+ze3sku
+ze2sp
+zes6s5end
+ze2st
+zes3tr
+ze2tr
2z1ex
-2z1f8
-z1g
-4z1h
-1zi
-zi1en
-zi5es.
-4z3imp
-zi1na
-6z5inf
-6z5inni
-zin6s5er
-8zinsuf
-zist5r
-zi5th
-zi1tr
-6z1j
-2z1k
+2z3f
+2z1g
+zger2a
+2z1h
+z2hen
+zhir5
+zi3alo
+zid5r
+zi1erh
+zi1es.
+zig4s
+zil2e
+2zimp
+3zine
+zin4er
+2z1inf
+2z1inh
+zin4ser
+4zinsuf
+2z1inv
+zi2o
+zi3op
+zirk4
+zirk6s
+zi3s2z
+zi1t2h
+2z1j
+2z3k4
+zkü1b
2z1l
+z3la
2z1m
-6z1n
-1zo
-zo6gl
-4z3oh
-zo1on
-zor6na8
-4z1p
-z5q
-6z1r
-2z1s8
+2z3n2
+znei3
+2zob
+2zof
+z1oh
+3zol
+zol3lu
+zon6ter
+zo2o
+zo2r
+zo3re
+zor4ne
+zo5se
+2z1osz
+2zot
+2z1ö2f
+zö7li
+2z3p2
+2z1q
+2z3r2
+4z3s2
2z1t
-z4t3end
+z2t1au
+z3te
+z4tehe
+zte3ma
+zte3o
+zte3str
+z2t1h
z4t3hei
-z8thi
-1zu
-zu3al
-zu1b4
-zu1f2
-6z5uhr
-zun2a
-8zunem
-zunf8
-8zungl
-zu1o
-zup8fi
-zu1s8
-zu1z
+z3t2her
+zt3ho
+z3ti
+zt1ins
+zt3rec
+zt3s
+zu1
+zu3a
+zub4
+zu5cke
+zud4
+zu3f4
+zu2g1ar
+zu3gl
+zu2g1un
+2z1uhr
+2z1um.
+zumen2
+2zumf
+2zumg
+2zuml
+2z1ums
+zu3nä
+zu3n2e
+2zunt
+zu3nu
+zu3nü
+zu3r2a
+2z1urk
+2z1url
+2zurs
+2z1urt
+zu3s4
+zu3t
+zuz2
+2züb
+zür1c
2z1v
-zw8
-z1wal
-5zweck
-zwei3s
-z1wel
-z1wer
-z6werg
-8z5wes
-1zwi
-zwi1s
-6z1wo
-1zy
-2z1z
-zz8a
-zzi1s
-1zä
-1zö
-6zöl.
-zö1le
-1zü
-2z1ü2b
-ä1a6
-äb1l
-ä1che
-ä3chi
-äch8sc
-äch8sp
-ä5chu
-äck5a
-äd1a
-äd5era
-ä6d5ia
-ä1e
-ä5fa
-äf1l
-äft6s
-äg1h
-äg3le
-ä6g5nan
-äg5str
-ä1he
-ä1hi
-äh1le
-äh5ne
-1ähnl
-äh1re
-äh5ri
-äh1ru
-ä1hu
-äh1w
-6äi
-ä1isc
-ä6ische
-ä5ism
-ä5j
-ä1k
-äl1c
-ä1le
-ä8lei
-äl6schl
-ämi1e
-äm8n
-äm8s
-ä5na
-5änderu
-äne5i8
-äng3l
-änk5l
-ä1no
-än6s5c
-ä1pa
-äp6s5c
-3äq
-är1c
-ä1re
-äre8m
-5ärgern
-är6gl
-ä1ri
-3ärmel
-ä1ro
-ärt6s5
-ä1ru
-3ärztl
-ä5rö
-ä6s5chen
-äsen8s
-äs1th
-äta8b
-ä1te
-äteri4
-äter5it
-ä6thy
-ä1ti
-3ätk
-ä1to
-ät8schl
-äts1p
-ä5tu
-äub1l
-äu1e
-1äug
-äu8ga
-äu5i
-ä1um.
-ä1us.
-1äuß
-ä1z
-ö1b
-ö1che
-ö5chi
-öch8s2tei
-öch8str
-öcht6
-5ö6dem
-5öffn
-ö1he
-öh1l8
-öh1re
-ö1hu
-ö1is
-ö1ke
-1ö2ko
-1öl.
-öl6k5l
-öl8pl
-ö1mu
-ö5na
-önig6s3
-ö1no
-ö5o6t
-öpf3l
-öp6s5c
-ö1re
-ör8gli
-ö1ri
-ör8tr
-ö1ru
-5österr
-ö1te
-ö5th
-ö1ti
-ö1tu
-ö1v
-ö1w
-öwe8
-ö2z
-üb6e2
-3ü4ber1
-üb1l
-üb1r
-5ü2bu
-ü1che
-ü1chi
-ü8ch3l
-üch6s5c
-ü8ck
-ück1a
-ück5ers
-üd1a2
-ü6deu
-üdi8t
-ü2d1o4
-üd5s6
-üge4l5a
-üg1l
-üh5a
-ü1he
-ü8heh
-ü6h5erk
-üh1le
-üh1re
-üh1ru
-ü1hu
-üh1w
-ü3k
-ü1le
-ül4l5a
-ül8lo
-ül4ps
-ül6s5c
-ü1lu
-ün8da
-ün8fei
-ünk5l
-ün8za
-ün6zw
-ü5pi
-ü1re
-ü8rei
-ür8fl
-ür8fr
-ür8geng
-ü1ri
-ü1ro
-ür8sta
-ü1ru
-üse8n
-ü8sta
-ü8stes
-ü3ta
-ü1te
-ü1ti
-üt8tr
-ü1tu
-üt8zei
-ü1v
-ß1a8
-5ßa.
-ß8as
-ß1b8
-ß1c
-ß1d
-1ße
-ß5ec
-8ße8g
-8ße8h
-2ß1ei
-8ßem
-ß1f8
-ß1g
-ß1h
-1ßi
-ß1k
-ß1l
-ß1m
-ß1n
-ß1o
-ß1p8
-ß5q
-ß1r
-ß1s2
-ßst8
-ß1ta
-ß1te
-ßt3hei
-ß1ti
-ß5to
-ß1tr
-1ßu8
-6ß5um
-ß1v
-ß1w
-ß1z
-2s1ta.
-i2s1tal
-2s1tani
-2s1tan.
-fe2s1ta
-ta2s1ta
-te2s1ta
-nd2ste
-ve2ste
-3s2tec
-4s3techn
-3s2teg
-3s2teh
-3s2tein
-3s2teig
-3s2teif
-3s2tell
-3s2telz
-a4s3tel
-3s2temm
-3s2temp
-3s2tep
-s3s2ter
-t3s2tern
-3s2teue
-6s4teuro
-bs2ti
-te2s3ti
-ve2sti
-3s2tic
-3s2tieb
-3s2tieg
-3s2tif
-3s2til
-3s2tim
-3s2tink
-3s2titu
-a2s1to
-gu2s1to
-ku2s1to
-i2s1tol
-i2s1tor
-ve2s1to
-2s1tung
-2s7tus
-o2s1tul
-aus3s4
-ens3s4
-gs3s4
-.mis2s1
-s2s1b8
-s2s3chen
-s2s3d
-s2s5ec
-2s2s1ei
-s2s3f
-s2s1g
-s2s3h
-s2s3k
-s2s3l
-s2s3m
-s2s3n
-s2s3p8
-s2s5q
-s2s3r
-s2s3s2
-sss2t8
-as2s3te
-is2s3te
-us2s3te
-üs2s3te
-s2st3hei
-s2s3ti
-s2s1to
-s2s1tr
-6ss5um
-s2s3v
-s2s3w
-s2s3z
-1cker.
-1ckert
-1ckad
-1cke.
-1ckel
-1cken
-4ck1ent
-1ckere
-1ckern
-1ckeru
-1ckie
-1ckig
-1ckun
-}
-
-% end pattern data
-
+zw2
+4zwah
+zwan2d1
+4z3wäl
+2zweg
+z2weig
+2z1wel
+2z1wen
+2zwer
+4zwerk
+z1wes
+4zwir
+z2wit
+2z1wo
+2zwö
+z1wur
+2z1wü
+zy1ank
+4z1z
+z3z4a
+z3zi
+zzi3s2
+z3zo
+zzoll2}
diff --git a/Master/texmf-dist/tex/context/patterns/lang-de.rme b/Master/texmf-dist/tex/context/patterns/lang-de.rme
new file mode 100644
index 00000000000..8bfa03fdb91
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/lang-de.rme
@@ -0,0 +1,31 @@
+% generated by mtxrun --script pattern --convert
+
+% dehyphn-x-2008-06-18.pat
+
+\message{German Hyphenation Patterns (Reformed Orthography, 2006) `dehyphn-x' 2008-06-18 (WL)}
+
+% TeX-Trennmuster für die reformierte (2006) deutsche Rechtschreibung
+%
+%
+% Copyright (C) 2007, 2008 Werner Lemberg <wl@gnu.org>
+%
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt; either
+% version 1 of the License, or any later version.
+%
+%
+% The word list is available from
+%
+% http://repo.or.cz/w/wortliste.git?a=commit;h=469951d78911b130c2c50f0bc327d2c5d1204895
+%
+% The used patgen parameters are
+%
+% 1 1 | 2 5 | 1 1 1
+% 2 2 | 2 5 | 1 1 1
+% 3 3 | 2 6 | 1 1 1
+% 4 4 | 2 6 | 1 1 1
+% 5 5 | 2 7 | 1 1 1
+% 6 6 | 2 7 | 1 1 1
+% 7 7 | 2 9 | 1 4 1
+% 8 8 | 2 9 | 1 4 1
diff --git a/Master/texmf-dist/tex/context/patterns/lang-deo.hyp b/Master/texmf-dist/tex/context/patterns/lang-deo.hyp
index d6f3799cdd8..0ca53c25f7f 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-deo.hyp
+++ b/Master/texmf-dist/tex/context/patterns/lang-deo.hyp
@@ -1,35 +1,8 @@
-% context hyphenation file, see lang-all.xml for original comment
+% generated by mtxrun --script pattern --convert
-% source of data: dehypht.tex
+% for comment and copyright, see ./lang-deo.rme
-% begin description data
-
-% <!-- copied from lang-all.xml
-%
-% <?xml version='1.0' standalone='yes'?>
-%
-% <description language='deo'>
-% <sourcefile>dehypht.tex</sourcefile>
-% <title>TeX hyphenation patterns for the German language (traditional orthography)</title>
-% <copyright>
-% <year>1988, 1991</year>
-% <owner>Rechenzentrum der Ruhr-Universitaet Bochum</owner>
-% <comment>German hyphen patterns</comment>
-% </copyright>
-% <copyright>
-% <year>1993, 1994, 1999</year>
-% <owner>Bernd Raichle/DANTE e.V.</owner>
-% <comment>Macros, adaption for TeX 2</comment>
-% </copyright>
-% </description>
-%
-% end of copy -->
-
-% end description data
-
-% begin hyphenation data
-
-\hyphenation {}
-
-% end hyphenation data
+% used:
+\hyphenation{
+}
diff --git a/Master/texmf-dist/tex/context/patterns/lang-deo.pat b/Master/texmf-dist/tex/context/patterns/lang-deo.pat
index dfc871d68db..a82b144ce69 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-deo.pat
+++ b/Master/texmf-dist/tex/context/patterns/lang-deo.pat
@@ -1,5755 +1,14316 @@
-% context pattern file, see lang-all.xml for original comment
+% generated by mtxrun --script pattern --convert
-% source of data: dehypht.tex
+% for comment and copyright, see ./lang-deo.rme
-% begin description data
+% used: a b c d e f g h i j k l m n o p q r s t u v w x y z ß à á â ä ç è é ê ë í ñ ó ô ö ü
-% <!-- copied from lang-all.xml
-%
-% <?xml version='1.0' standalone='yes'?>
-%
-% <description language='deo'>
-% <sourcefile>dehypht.tex</sourcefile>
-% <title>TeX hyphenation patterns for the German language (traditional orthography)</title>
-% <copyright>
-% <year>1988, 1991</year>
-% <owner>Rechenzentrum der Ruhr-Universitaet Bochum</owner>
-% <comment>German hyphen patterns</comment>
-% </copyright>
-% <copyright>
-% <year>1993, 1994, 1999</year>
-% <owner>Bernd Raichle/DANTE e.V.</owner>
-% <comment>Macros, adaption for TeX 2</comment>
-% </copyright>
-% </description>
-%
-% end of copy -->
-
-% end description data
-
-% begin pattern data
-
-\patterns {
-.aa6l
-.ab3a4s
-.ab3ei
-.abi2
-.ab3it
-.ab1l
-.ab1r
-.ab3u
-.ad3o4r
-.alti6
-.ana3c
-.an5alg
-.an1e
-.ang8s
-.an1s
-.ap1p
-.ar6sc
-.ar6ta
-.ar6tei
-.as2z
-.au2f1
-.au2s3
-.be5erb
-.be3na
-.ber6t5r
-.bie6r5
-.bim6s5t
-.brot3
-.bru6s
-.ch6
-.che6f5
-.da8c
-.da2r
-.dar5in
-.dar5u
-.den6ka
-.de5r6en
-.des6pe
-.de8spo
-.de3sz
-.dia3s4
+\patterns{
+.a6
+.ab3b
+.ab5l
+.abo4
+.ab3ol
+.ab1or
+.ab3s
+.ag4r
+.ag2u
+.aid4
+.ai2s
+.al3br
+.al2e
+.al3l4en
+.al3ph
+.alt3s
+.amt4
+.amts3
+.an3alg
+.an3d
+.ang4
+.an1gl
+.ang6s2
+.angst3
+.an3k
+.an3s
+.an4si.
+.ans2p
+.an3z
+.ao5
+.ap3s2
+.ar3k2a
+.ar4m3ac
+.ar2s
+.ar4t3ei
+.ata1
+.au3d
+.au2f5
+.au4s1
+.ausch3
+.au6stes
+.ax2
+.ä6
+.äm3
+.ät2s
+.b6
+.be3erb
+.bei6ge.
+.be3ra
+.be3r2e
+.ber4g3a
+.ber4g3r
+.bi4os
+.boge2
+.bo4s3k
+.c4
+.ch2
+.d4
+.dab6
+.da2r1
+.dar3in
+.dar2m1
+.da4te.
+.da4tes
+.de4al
+.de1i
+.de3o2
+.de3r4en
+.de3sk
+.deut2
.dien4
-.dy2s1
-.ehren5
-.eine6
-.ei6n5eh
-.ei8nen
-.ein5sa
-.en6der
-.en6d5r
-.en3k4
-.en8ta8
-.en8tei
-.en4t3r
-.epo1
-.er6ban
-.er6b5ei
-.er6bla
-.er6d5um
-.er3ei
-.er5er
-.er3in
-.er3o4b
-.erwi5s
-.es1p
-.es8t
-.ex1a2
-.ex3em
-.fal6sc
-.fe6st5a
-.flu4g3
-.furch8
-.ga6ner
-.ge3n4a
-.ge5rö
-.ges6
-.halb5
-.halbe6
-.hal6br
+.do3b
+.do2mo
+.do1pe
+.dor2f1
+.dü1b
+.e4
+.ebe2
+.ehe3i
+.ei3e2
+.ei4ne
+.ei5nen.
+.ei5ner
+.ei5nes
+.ei4sp
+.ei4s1t
+.ei2tr
+.el2bi
+.em3m2
+.en1
+.en4d3er
+.en4d3r
+.enn4
+.en4t3
+.epi1
+.er4dei
+.er4der
+.er1e
+.er1i
+.ers2
+.er8stein
+.es3p
+.es2t
+.est4e
+.et2s
+.eu3
+.eug4
+.ext4
+.f6
+.fa2c
+.fe6sta
+.fi4le.
+.fi4len
+.fi2s
+.frau3
+.fs2
+.fus2
+.fu2sc
+.g6
+.gang5
+.ga2t
+.gd2
+.gel2d
+.ge5nar
+.ge3ne
+.ge3r2a
+.ge3r2e
+.ge5s4
+.ge7sta
+.ge1u
+.grif8fes
+.gros2
+.gs2
+.gus2
+.guss3
+.gu4ter
+.h4
+.ha3bi
+.haft5s
+.hal4s
+.hal3te
.haup4
-.hau4t
-.heima6
-.he4r3e
-.her6za
-.he5x
-.hin3
-.hir8sc
-.ho4c
-.hu3sa
-.hy5o
-.ibe5
-.ima6ge
-.in1
-.ini6
-.is5chi
-.jagd5
-.kal6k5o
-.ka6ph
+.hau2t1
+.he2
+.he3ri
+.he6r5inn
+.he5xe
+.ho4met
+.i6
+.ia4
+.il3
+.illu5
+.im2a
+.in3
+.ink4
+.inu3
+.is4a
+.jor5
+.k4
+.ka2b5l
+.ka2i
+.kamp2
+.ka4t3io
+.ken6num
+.ker5s
.ki4e
-.kop6f3
-.kraf6
-.kü5ra
-.lab6br
-.liie6
-.lo6s5k
-.lö4s3t
-.ma5d
-.mi2t1
-.no6th
-.no6top
-.obe8ri
-.ob1l
-.obs2
-.ob6st5e
-.or3c
-.ort6s5e
-.ost3a
-.oste8r
-.pe4re
-.pe3ts
-.ph6
-.po8str
-.rau4m3
-.re5an
-.ro8q
-.ru5the
-.rü5be
-.rü8stet
-.sch8
-.se6e
-.se5n6h
-.se5ra
+.klan4
+.ks2
+.kü1b
+.l4
+.la3b
+.lat5s
+.le4a
+.lea7se
+.le5ni
+.lo4g3in
+.lo3ver
+.lu4str
+.m4
+.ma3d
+.ma3ge
+.ma3le
+.ma4str
+.me3l4a
+.me3ne
+.men8schw
+.ment2
+.mi2sc
+.mi4t
+.n4
+.näs1c
+.nich2
+.ni4e
+.ni3ka
+.nob4
+.no2c
+.no2th
+.nul2
+.nus6
+.o6
+.ob1a
+.obe2
+.oben3
+.ober3i
+.ob3l
+.oper4
+.or2a
+.ort4
+.orts3e
+.oste2
+.ost7ende
+.oste6r5e
+.ost3r
+.ozo4
+.ö6
+.p6
+.pa6r1e
+.par3t4h
+.pat4s
+.pe5la
+.pf6
+.ph4
+.poka2
+.po4str
+.ps2
+.pu3s
+.r4
+.reb5s2
+.re3cha
+.rein4t
+.reli1
+.reli3e
+.rich5t6e
+.ro3be
+.ro2h
+.ro3m
+.rom4a
+.rö4s1c
+.rut2
+.ru3th
+.rü1b
+.s6
+.sa2c
+.sali1
+.sch4
+.sen3s
+.ser2u
+.se2t
+.sha2
.si2e
-.spi6ke
-.st4
-.sy2n
-.tages5
-.tan6kl
-.ta8th
-.te6e
-.te8str
-.to6der
-.to8nin
-.to6we
-.um1
-.umpf4
-.un1
-.une6
-.unge5n
-.ur1c
-.ur5en
-.ve6rin
-.vora8
-.wah6l5
-.we8ges
-.wo6r
-.wor3a
-.wun4s
-.zi4e
-.zuch8
-.ände8re
-.öch8
+.sim3p4
+.si2te
+.ski1e
+.spra2
+.st6
+.sto4re
+.t6
+.ta5ge4s
+.ta3mi
+.tan6k5l
+.ta2to
+.te2e
+.tehe3
+.te3no
+.te6ster
+.th4
+.ti4a
+.ti2s
+.to2n
+.to4ni
+.to4pl
+.to2w
+.tri3e4s
+.ts2
+.tu3ra
+.tu3ri
+.u6
+.uf2e2
+.ul4mei
+.um3
+.umo2
+.un3a2
+.un3d
+.un3e
+.unen2
+.un3g
+.uni4t
+.ur1
+.urin4
+.ur3o2m
+.uro2p
+.ur3s2
+.ut2a
+.ut3r
+.ü2
+.v2
+.ve5n2e
+.ve4r
+.vo4r
+.w2
+.wah2
+.wah4l
+.wa5re
+.we2
+.welt3
+.wi4e
+.wor2
+.wor6t5en
+.wun4sc
+.x4
+.xe3
+.y4
+.ya4l
+.z2
+.zah2n
+.zi2e
+.zin4st
+.zuch2
+6a.
+2aa
+a1ab
+aa2be
aa1c
aa2gr
-aal5e
-aa6r5a
-a5arti
-aa2s1t
-aat2s
-6aba
-ab3art
-1abdr
-6abel
-aben6dr
-ab5erk
-ab5err
-ab5esse
+aale5ne
+aa4lö
+a1a2n
+aa2r1a
+aa5re
+aar3f4
+aar3k4
+aart4
+aar3tr
+aas3t
+aat6s3
+a3au
+a1ä
+2aba
+ab2am
+ab1ar
+ab1auf
+ab1ä
+ab2äu
+3abd
+a1be
+ab1eb
+abe1e
+ab1eil
+4a3bel
+abe2la
+2aber
+ab1erk
+ab1err
+ab1erz
+ab3esse
+ab1eß
+2abet
+2abew
1abf
+3abfi
1abg
-1abhä
+1abh
+2abi
+ab1ins
ab1ir
-1abko
-a1bl
-ab1la
-5ablag
-a6blaß
-ab4ler
-ab1lu
-a8blä
-5a6blö
-abma5c
-1abn
-ab1ra
-ab1re
-5a6brec
-ab1ro
-ab1s
-ab8sk
-abs2z
-3abtei
-ab1ur
-1abw
-5abze
-5abzu
-ab1än
-abäu8
-a4ce.
-a5chal
-ach5art
-ach5au
+ab1iso
+ab1it
+1abk
+ab3l
+1a2b5la
+3a2b5lä
+2able
+ab4le.
+ab5li
+a3blis
+3a2b5lö
+a2blu
+3abn
+2abo
+a2bo.
+ab4of
+3a2bon
+ab3r
+ab5re
+1abs
+2abs.
+abs2a
+2absar
+ab5s2i
+ab5sp
+abs4t6
+2abst.
+ab7sta
+ab7ste
+ab3sz
+1abtei
+2a1bu
+ab3ur
+2abü
+ab5üb
+3abw
+2aby
+1abz
+2ac.
+a2ce.
+a1cem
+a3cet
+ach1a
+ach3ak
+a3chal
+ach3au
a1che
-a8chent
-ach6er.
-a6ch5erf
+a2ch1e2c
+ach1ei
+a3chen
+a3cher.
+a4cherf
+ach3erw
+a3ches
+4achf
a1chi
-ach1l
-ach3m
-ach5n
+ach5l
+ach5m
+ach3n
a1cho
-ach3re
+a3cho.
+ach1o4b
+ach1or
+ach1ö
+ach3r
+ach3spr
+ach3su
+a4cht
+ach6t5erg
+ach4th
+ach2t1o
a1chu
-ach1w
-a1chy
-ach5äf
-ack1o
-acks6t
-ack5sta
-a1d
-8ad.
-a6d5ac
-ad3ant
-ad8ar
-5addi
-a8dein
-ade5o8
-adi5en
-1adj
-1adle
-ad1op
-a2dre
-3adres
-adt1
-1adv
-a6dä
+ach1u2f
+ach3ü
+4achv
+2ach3w
+ac1in
+4ack.
+ack2en
+ackmu6
+ackmus3
+ack2se
+ack3sl
+ack7sta4
+a3co
+acon4n
+2acu
+a1ç
+2a1d
+4ad.
+ada1b
+a4d1ac
+ad1ama
+a2d1an
+3a4d5ap
+a3dar
+3a2dä
+ade4al
+adefi4
+ad1ein
+ade1ra
+4ades4
+ade3sp
+ades6s
+4adi
+adi3en
+ad2ob
+a2dr
+ad5rah
+4ad3rec
+ad4res
+ad5ru
+ads2
+ad3sä
+ad3sp
+ad3sz
+ad2t1
+adt3a
+2ae
+a1e2b
+a1ec
a1e2d
+a1ei
+a1el.
+a2ele
+a2eli
+a1els
+a1em
+ae2o3
+a1e2p
ae1r
-a1er.
-1aero
-8afa
+3a2er2o
+a3estri
+a1e2x
+a2f1a
+a3fah
a3fal
-af1an
-a5far
-a5fat
-af1au
-a6fentl
-a2f1ex
-af1fr
-af5rau
-af1re
-1afri
-af6tent
-af6tra
+af3an
+a3f2ar
+a3fat
+2afe
+a2f1ec
+a2fent
+af1erl
+af4f5l
+2afi
+2af3l
+af3ra
+af3rä
+af3re
+af3rö
+af3ru
+af3s2a
+af2sp
+afs2t
+af2t1a
+af4t3erl
+af2t3r
aft5re
-a6f5um
-8afä
-ag5abe
-5a4gent
-ag8er
-ages5e
-1aggr
-ag5las
-ag1lo
-a1gn
-ag2ne
-1agog
-a6g5und
-a1ha
-a1he
-ah5ein
-a4h3erh
+af2tur
+a2f1ur
+a1g
+4aga
+ag1a2b
+ag3a2d
+ag1ar
+ag1au
+ag2d
+a2gem
+a5gen.
+age4na
+a2gent
+age2nu
+age2se
+age4si
+age4s3p
+ages5s
+a4g5esse
+ag3gl
+2agi
+3a2git
+4a2g3l
+ag4la
+ag4lei
+ag5lo
+a4glö
+ag1lu
+ag4n
+a4g5na
+a5gnat
+a2go
+a3gob
+a5gon.
+a5gons
+a3gor
+a2g3re
+a2g3ri
+ag4ro
+a3gru
+ag4s
+agsa2
+ag7sat
+ag5säu
+ag6s3p
+ag7spi
+ag5sta
+ag5ste
+a2g1und
+2ah.
+2a1ha
+ah4at
+2a1he
+a2h1erh
a1hi
-ahl1a
-ah1le
-ah4m3ar
-ahn1a
-a5ho
-ahra6
-ahr5ab
-ah1re
-ah8rei
-ahren8s
-ahre4s3
-ahr8ti
-ah1ru
+ahl5a2
+ahl1ei
+ah4l3erh
+ahl1o
+ah4lö
+ahl3sz
+ah3ma
+ah3me
+ah4n3a
+ahn5th
+ah1os
+a2h1ö
+ahr1a
+ah3re
+ah4rei
+ah1ri
+2ah2s
+aht3sp
a1hu
-ah8ö
-ai3d2s
-ai1e
-aif6
-a3inse
-ai4re.
-a5isch.
-ais8e
-a3ismu
-ais6n
-aiso6
+ah1w
+a1hy
+2ai
+ai1a
+aib3l
+aids1t
+ai1er
+aif2
+ai3g4
+a1ik.
+ai3ku
+ai2lo
+a1ind
+ai3n4e
+a1ing
+ain3sp
+ai2nu
+ai3o
+ai2sa
+a3isch.
+ai3s2e
+ai5se.
+ais4se
+ais5st
+a2it
+a3iv.
+a3ivl
+a3ivs
a1j
-1akad
-a4kade
-a1ke
-a1ki
-1akko
-5akro1
-a5lal
-al5ans
-3al8arm
-al8beb
-al8berw
-alb5la
-3album
-al1c
-a1le
-a6l5e6be
-a4l3ein
-a8lel
-a8lerb
-a8lerh
-a6lert
-5a6l5eth
-1algi
-al4gli
-al3int
-al4lab
-al8lan
-al4l3ar
-alle3g
-a1lo
-a4l5ob
-al6schm
-al4the
-altist5
-al4t3re
-8a1lu
-alu5i
-a6lur
-alu3ta
+2ak.
+a2kad
+2a3kam
+2akar
+ak4at
+aka4ta
+2akb
+2akc
+2akd
+4a1ke
+a2kef
+a2kes
+a2keu
+4a1ki
+2ak3l
+ak4la
+ak4li
+ak3n
+4ako
+2a1kr
+ak3rau
+ak3res
+2aks
+ak3sh
+2akta
+akt2an
+2aktb
+ak3te
+ak4tei
+2aktik
+akt2o
+ak4t5r
+ak5t6ri
+2aktst
+a1ku
+a2kun
+4a3kü
+1akz
+al1ab
+a1lac
+ala5ch
+al1af
+ala4g
+al1age
+a3l2al
+a1lala
+al3all
+al1am
+al5amp
+al1ana
+al1ang
+al1ans
+al3anz
+a2lar
+a3lar.
+a3lare
+a3lari
+al2arm
+al3arr
+ala4s
+al3asi
+al3ass
+al1au
+al3aug
a1lä
-a6mate
-8ame.
-5a6meise
-am6m5ei
-am6mum
-am2n
-ampf3a
-am6schw
-am2ta
-a1mu
-a1mä
-a3nac
-a1nad
-anadi5e
-an3ako
-an3alp
-3analy
-an3ame
+al1äm
+alb3ein
+alb3eis
+al4berh
+al4b3erw
+al2b3l
+al2boh
+al2br
+alb3ru
+al2da
+al2dä
+al3dri
+al3du
+2ale
+3a2l1e2b
+3a2l1ef
+a4l1eh
+a2l1ei
+a4lein
+a2l1el
+ale2n
+al3ends
+a2leng
+al2ent
+a2le2p
+al1epo
+4a5ler.
+a2l1erf
+a2l1erh
+a2l1erl
+a2l1ert
+3a2lerz
+a2l1esk
+ale4t
+al3eta
+al3eth
+a4l1eu
+3alex
+al2gli
+1algo
+2ali
+ali4e3ne
+ali4nal
+ali5ne
+a2l1ins
+a2linv
+al2k1ar
+1alkoh
+alk5s2
+al2lan
+al2l3a6r
+al4län
+al4lec
+al3lend
+all5erfa
+al3les
+alli5er.
+alli7ers.
+2allo
+a2l1ob
+2alog
+alo2ga
+al1ope
+al1orc
+al1ö
+al2ös
+3alpe.
+1alph
+al3skl
+al3sp
+al4spal
+al2ta
+alt3eig
+al2te4l
+al3ter
+al4t3erf
+al2tö
+al2tri
+alt3ric
+al2tro
+alt4stü
+3alty
+a1lu
+al2uf
+a2lum
+al1ur
+4aly
+am2a
+amab4
+ama5d
+am4e
+4ame.
+a2meb
+ame2n
+amer2a
+a2meri
+a4mese
+a5met
+a2mew
+a3mie
+a3mil
+2a3mir
+amit2a
+ami3te
+am2mac
+2ammal
+am2min
+am4mod
+am2mus
+2amo
+a2mö
+amp2f3a2
+am3pr
+2ams
+am3sa
+am4sc
+am3so
+1amt.
+am2t1a
+am2t1ä
+am2tel
+am4t3ern
+am2to
+am2tö
+am2t3r
+am2tu
+4amu
+am3unt
+4ana.
+2anab
+ana3c
+a3na3d
+anadi3
+a3nak
+2anan
an3ara
-a1nas
-an5asti
-a1nat
-anat5s
-an8dent
-ande4s3
-an1ec
-an5eis
+2anas
+2anat
+an1äs
+1anb
+an3cht
+4and.
+an5de6s
+an2dex
+2ando
+an4d5rü
+and4sas
+and6s5paß
+an2d1ur
+4ane
+an3ec
+a3nee
+an3eif
an1e2k
-4aner.
-a6n5erd
-a8nerf
-a6n5erke
-1anfa
-5anfert
+5a4n1erb
+an3eth
1anfä
-3angab
-5angebo
-an3gli
-ang6lis
-an2gn
-3angri
-ang5t6
-5anhä
-ani5g
-ani4ka
-an5i8on
-an1kl
-an6kno
-an4kro
-1anl
-anma5c
-anmar4
-3annah
-anne4s3
-a1no
-5a6n1o2d
-5a6n3oma
-5a6nord
-1anr
-an1sa
-5anschl
-an4soz
-an1st
-5anstal
-an1s2z
-5antenn
-an1th
-5anwä
-a5ny
-an4z3ed
-5anzeig
-5anzieh
-3anzug
-an1ä
-5anäs
+anft5s
+4ang.
+3angeb
+an4g5ei
+ang5erl
+ang5erz
+2angf
+2angh
+2angie
+ang3l
+an2gla
+an2glä
+ang5le.
+2ango
+ang3ra
+1angri
+4angs.
+ang6s3po
+4a3ni
+ani3els
+ani5ers.
+5a4nim
+4anj
+2ank.
+an2k1an
+an3k4l
+an4klö
+an2k3no
+an2k1r
+ank3ra
+ank3rä
+ank5ti
+an2ky
+3anl
+2anmu
+2ann
+3an3na
+3annä
+an5n4e
+an3od
+an1or
a1nö
-anö8d
-a1os
-a1pa
-3apfel
-a2ph1t
-aph5ä6
-a1pi
-8apl
-apo1c
-apo1s
-a6poste
-a6poth
-1appa
-ap1pr
-a1pr
-a5pä
-a3pü
-a1ra
-a4r3af
-ar3all
-3arbei
+3anr
+anrö5
+2ans.
+3ansä
+1ansc
+an3s2en
+an2seu
+2ansk
+an3skr
+an2s1pa
+1anspr
+an5s2te
+an3s2z
+2ant.
+ant2a
+an2t3a4r
+1antá
+1antei
+3antenn
+an3th
+ant2he
+1anthr
+2anto
+3antr
+an2tro
+3antw
+4a3nu
+a4nunt
+a5nus
+a1nü
+1anw
+2anwet
+2anz
+3anzah
+3anzei
+anz5erst
+4anzg
+an2z1i4n
+3anzu
+3anzü
+an2zw
+ao1i4
+a1op
+a1or
+a1o2s
+aot4
+a3ot.
+ao3ts
+a1ö
+a1p
+2ap.
+4apa
+2ape
+3a2pé
+ap2fa
+a3pfl
+a3phä
+ap1hel
+2a2p3l
+ap2n
+a2pot
+ap3pl
+2apr
+2apu
+2ar.
+2a1ra
+a3ra.
+ar2a1b4
+ar3abt
+ara3d2
+a2r3al
+ar1ang
+ar1ans
+ar3anz
+a2r3app
+a2r1au
+a1rä
+2arb.
+4arba
+ar2bau
+ar2bec
+arb3eie
+arb3eim
+2arben
+2arbi
+ar2b5l
+2arbr
+ar2bre
+2arbs2
+arb5se
+arb3sp
2arbt
+2arbu
+ar2b3un
ar1c
-2a1re
-ar3ein
+1archi
+ar2dr
+2are
+4are.
+a2rea
+are5b
+a2ref
+ar1eff
+are3g
+ar1ehr
+a2rein
+a5ren
+a2rena
+a2rene
+are3r2a
+a3r2erf
+a2r1erh
+a2reri
+are3u
+ar2ew
+2arf
+ar2f1r
+arf3ra
ar2gl
-2a1ri
-ari5es
-ar8kers
-ar6les
-ar4nan
-ar5o6ch
-ar1o2d
-a1rol
-ar3ony
-a8ror
-a3ros
-ar5ox
-ar6schl
-8artei
-ar6t5ri
-a1ru
-a1ry
+ar2gn
+2arh
+4a1ri
+ar2ia
+ari3e2n
+arien3e
+ari3erd
+ari3erg
+a2r1im
+ar1ind
+ar1ins
+ar1int
+a3riu
+2ark
+ark3amt
+ar2k1ar
+ark3aue
+ar2kl
+ark3lag
+ar2kor
+ark1r
+ar4kri
+arks4
+ark3sa
+ark3sh
+ar4les
+2arma
+arm2ä
+arm2or
+2arn
+ar5n2e
+4a1ro
+ar1ob
+ar3o2d
+a3rodo
+a3rol
+a2r1op
+a2ror
+2arp
+ar5pr
+2arr
+4arr.
+ar2r3ad
+arre4n
+ar2rh
+arr3he
+2ars
+ar4schl
+ar4schr
+ar3se
+ar3s2h
+ars3k
+ar2tau
+1artd
+ar4t3erl
+art2ho
+artin2
+2arto
+ar2t3r
+ar3tres
+4arts
+2a1ru
+ar1ums
+ar3ü
+2arv
+2ary
+ar2zä
+2arze
+1arzn
1arzt
-arz1w
-ar8zä
-arä8m
-arö6
-ar5öm
-ar1ü2
-a1sa
-a6schec
-asch5l
-asch3m
-a6schn
-a3s4hi
-as1pa
-asp5l
-a8steb
-as5tev
-1asth
-a6stoc
-a1str
-ast3re
-8a1ta
-ata5c
-ata3la
-a6tapf
-ata5pl
-a1te
-a6teli
-aten5a
-ate5ran
-6atf
-6atg
-a1th
-at3hal
-1athl
-2a1ti
-5atlant
-3atlas
-8atmus
-6atn
-a1to
-a6t5ops
-ato6ra
-a6t5ort.
-4a1tr
-a6t5ru
-at2t1h
-at5t6hä
-6a1tu
-atz1w
-a1tä
-a1tü
-au1a
-au6bre
-auch3a
-au1e
-aue4l
-5aufent
-3auffü
-3aufga
-1aufn
-auf1t
-3auftr
-1aufw
-3auge.
-au4kle
-aule8s
-6aum
-au8mar
-aum5p
-1ausb
-3ausd
-1ausf
-1ausg
-au8sin
-3auss
-au4sta
-1ausw
-1ausz
-aut5eng
-au1th
-1auto
-auße8
-a1v
-ave5r6a
-aver6i
-a1w
-a6wes
+ar2z1w
+2as
+as2a
+as3ab
+as1ala
+a4s3au
+asaus1
+a2s1ä
+a2sca
+a4schec
+asch3la
+a2schm
+4a3se
+a4seb
+ase3le
+aseli5
+a4s1e2m
+a5s2en
+as2er
+a5s2es
+a4sex
+4ash
+a3s2hi
+a5si.
+4a5sis
+asi4st
+a3skop
+as3m
+aso1
+as1o2f
+a3sol
+a3som
+as1or
+a2s1ö
+a2s1p
+as3pan
+as3pe
+as2ph
+as2po
+as2pu
+as3s4a
+as4sä
+as3se
+as4sei
+asse3le
+as3s2i
+as3so
+as2s1p
+as4st
+as6s1to
+as5str
+4asta
+as2te
+as3tec
+a4s3tep
+as4ti
+as2to
+4as2tr
+ast3rau
+a4st3rä
+a4st3re
+a4strol
+a2stum
+a3su
+a2sü
+3asy
+aße2
+2a1t
+4ata
+a2t1ab
+ata2be
+at2a1f
+at4a5g
+at1akt
+ata1la
+a3tam
+at1apf
+a5tas
+a2t1au2
+a5tau.
+at1än
+at2c
+4ate
+a2teb
+at1eig
+a4teli
+a2tep
+a2tew
+4atf
+4atg
+at2he
+5athl
+a4thr
+4a3ti
+at1int
+3atm
+4atmus
+a3to.
+ato4man
+a2t1ort
+a2t1ö
+4atp
+4atr
+atra4t
+at3rä
+at3re
+at3rom
+at2s
+at3sc
+at5sche
+at5schü
+ats1e
+at4set
+ats1in
+ats1p
+at4st
+at5stä
+3attac
+att3ang
+at2t1au
+at2tei
+at5thä
+atts4
+at3tu
+4atu
+a3tub
+atu4n
+atu3ren
+atu4rer
+at3w
+atz1er
+at2z1i
+atzt2
+atz3th
+a2u
+2au.
+au1a2
+2aub
+au2bl
+au2bri
+4auc
+auch4se
+auch3ta
+au3di
+au2dr
+2aue
+aue2b
+aue3re
+au5erein
+au5erl
+aue2s
+au3et
+au2fa
+auf1an
+2aufe.
+2aufeh
+auf1er
+au5fer.
+3aufn
+au2fo
+2aug
+au3g6e
+4augeh
+2auh
+2au1i
+au2is
+4auj
+au2kl
+aule2s
+aul3ese
+au3lü
+4aum
+au2mal
+au2mar
+au2mau
+au2mer
+au2m1o
+aum3p2
+aum5str
+aum3sz
+4au3n2
+au4nio
+aun3k
+aun3s
+a4unz
+au1o
+aup2
+2au3r2
+au2s1ah
+ausan8ne.
+2au2sc
+au3schl
+au3schw
+aus3erp
+au4s3erw
+au2so
+au2sp
+auss4
+aus7sa
+3aussag
+aus4se.
+aus3so
+au4st
+au6stec
+aus3tie
+aus3tri
+2aut.
+au3tan
+au2tä
+aut1äu
+2aute
+au4t3erh
+au3tes
+3auto
+2auts
+aut5st
+2aux
+auz2w
+2a1ü
+2a1v
+av4a
+ava3t
+a2vr
+av2s
+2a1w
+awi3e
a1x
-a2xia
-a6xio
-a1ya
-a1z
-azi5er.
-8aß
+ax2am
+ax2e
+axi4s
+2a1ya
+a1yeu
+aysi1e
+2a1z
+az4a
+azo3
+az2u
+ä1a
+ä1b
+ä2b3l
+äb2s
+ä1che
+äche1e
+ä1chi
+äch3l
+ä2chr
+äch2sp
+ä1chu
+ä1d
+ä2da
+ä2d1ia
+ä2d3r
+äd2s
+2ä1e
+äf2fl
+äf5l
+äf3r
+äf2s
+äft4s
+ä1g
+äge1i
+ä2g3l
+ä3g2n
+ä2g3r
+äg4s2
+äg5sa
+äg5ste
+äg5str
+1ä2gy
+äh1a
+2ä3he
+ä3hi
+ähl1a
+äh5l2e
+äh6l3e4be
+äh3li
+2ähm
+äh5ne
+äh5ri
+2äh2s
+2äht4
+äh3tr
+ä1hu
+äh1w
+ä1im
+ä1is.
+ä3isch.
+ä1isk
+ä1j
+ä1k
+ä2k3l
+ä2k3r
+ä1la
+älbe2
+äl2bl
+äle3ru
+äl2l1a
+äl2p3
+äl2s
+äl3se
+ä1lu
+ä3me
+ämi3en
+2äml
+äm4ma
+äm2s
+ämt2e
+2än.
+än2dr
+2äne
+äne2n1
+än2f3
+2änge
+än2gl
+än2gr
+äng5se
+äng5ste
+2ä3ni
+än5k2e
+än2k3l
+än2kr
+än5n4e2
+2äns
+än4s1c
+änse3h
+ä1on
+ä1pa
+äp2pr
+äp4s1c
+1äq
+ä2r3a2
+är4af
+är1ä
+är1c
+4äre
+ä2r1ei
+äre2n
+ä2r3ene
+är2gr
+ä1ri
+är1int
+är2k5l
+ärme5s
+är1o2
+ä1rö
+ärse2
+är2seb
+är4si
+ärt4e
+ärt4s3
+ä1ru
+är3ü
+är2z1w
+äs2a
+ä3s4e
+äse3g
+äse3re
+äser4ei
+äse4ren
+äse3r2i
+äse3t
+ä3si
+äskop2
+ä3s2kr
+ä2s1p
+äs4s1c
+äs3se
+äs4s3erk
+äs6st
+äs2te
+ä4str
+ä3su
+ä1ß
+äß1erk
+2ät
+ä2t3a2
+ä3te
+äte1i
+äte2n
+ä2th
+ät2ha
+ä1ti
+ä1to
+ät1ob
+ät3r
+ät2sä
+ät4schl
+ät4schr
+äts1ei
+ät2s1i
+äts3l
+ät3so
+äts1p
+ät4st
+äts3te
+ät2tr
+ä1tu
+ät5ze
+äu2br
+äu1c
+äu3el
+ä2uf
+äuf2e
+äug3l
+2äul
+2äum
+äu2ma
+äum4s
+äums1p
+ä2u3n2
+2äu5r
+2ä3us.
+äu2sc
+äu4schm
+äu3se
+ä1usg
+ä1usk
+ä1usn
+äu2sp
+äus4s1c
+1äuß
+äu2tr
+4ä1v
+1äx
+ä1z
+â1t
+4b.
1ba
-8ba8del
+2babs
+ba3char
+bach7t4e
+backs4
+2b3adr
+2baf
+3bah
+bah2nu
+bah5re
+bai1
+bais2
+ba2ka
+ba2k3er
+ba2k1i
+bak5l
+ba2kra
+3bal
ba1la
-ba1na
-ban6k5r
-ba5ot
-bardi6n
-ba1ro
-basten6
+bal4leh
+bal6lerg
+bal6lig
+bal3th
+2b1am
+ban2a
+3b2and
+ban2dr
+ba3n4e
+ba5ner
+2bang
+ban2k1a
+ban4kl
+2banl
+2b1ans
+b3anz
+ba2ran
+bar3b
+b2ard
+bar3de
+ba2rei
+ba3r2en
+bar3zw
+3bas
+ba7sa
+ba2sc
+ba6str
+ba2to
+ba3tor
+bau3b
+bau3g
+bau3s2k
bau3sp
-2b1b
-bb6le
+bau5str
+ba1yo
+3b2äc
+bä1ch
+1bäe
+1b2är
+1b2äs
+1bäu
+b1äug
+bäu3s
+4b1b
+b5ba
+bbau3sc
+bbe4p
+b5bi
+bb5ler
b2bli
-2b1c
-2b1d
-1be
-be1a
-be8at.
+bb3lin
+b3blo
+b3blö
+bbru2
+bb2s
+bbu1
+2b5c
+2b5d
+bdu3s
+1be.
+3be3a
+be5an
+be4au.
+b2ebe
+1bec
be1ch
-8becht
-8becke.
-be5el
-be1en
-bee8rei
-be5eta
-bef2
-8beff
-be1g2
-behö8
-bei1s
-6b5eisen
-bei3tr
-b8el
-bel8o
-belu3t
-be3nac
-bend6o
-be6ners
-be6nerw
-be4nor
-ben4se6
-bens5el
-be1nä
-be1nü
-be1o2
-b8er.
+be2del
+bedi4
+be1eh
+be1erl
+be3eta
+3bef
+be3g4
+2beier
+bei1f4
+beil2
+bei3la
+2beime
+3b2ein
+bei5na
+be1ind
+be1in4h
+bei3sc
+beis2e
+bei5st
+beit2s
+3bek
+be3las
+be5le
+be3lec
+be3lei
+be6l1en
+be6let
+be3li
+bel5la
+bel5li
+bel3sp
+bel3sz
+belt4
+bel3ta
+bel3tr
+1bem
+1ben.
+be4na
+ben3ar
+be3ne
+ben4erg
+be4nerl
+be4ners
+ben3g
+be3ni
+ben2se
+ben2sp
+ben2su
+ben4th
+3b2enti
+b1ents
+4bentw
+ben1un
+ben3z2
+be1o
be1ra
-be8rac
-ber8gab.
-ber1r
-be1rü
-bes8c
-bes5erh
-bes2p
-be5tha
-bet5sc
-be1un
+ber3am
+be2ran
+ber3as
+berd4
+ber3eiw
+be3rel
+bere4s
+ber3esc
+ber4in.
+ber3iss
+ber3na
+b1ernt
+be1rop
+ber5st4a
+ber3th
+be3rum
+1be3s
+be4s1er
+be4sk
+be5slo
+bes5s4e
+b3esst.
+bes3sz
+bes2t
+be4s3tol
+be4stor
+be4sum
+be1s2ze
+3bet
+be2tap
+be3tha
be1ur
-8bex
-be6zwec
-2b1f8
-bfe6st5e
-2b1g2
-bga2s5
-bge1
-2b1h
-bhole6
+3b2ew
+2b1ex
+1bez
+2b5f4
+bfal2
+bfrä5
+4b5g4
+bga4s1
+bgas3t
+bge3
+bge5n
+bge5s
+2b5h
1bi
-bi1bl
-b6ie
-bi1el
-bi1la
-bilä5
-bi1na
-bi4nok
-bi5str
-bi6stu
-bi5tr
-bit4t5r
-b1j
-2b1k2
-bkü6
-bl8
-b6la.
-6b1lad
-6blag
-8blam
-1blat
-b8latt
-3blau.
-b6lav
-3ble.
-b1leb
-b1led
-8b1leg
-8b1leh
-8bleid
-8bleih
-6b3lein
-blei3s
-ble4m3o
-4blich
-b4lind
-8bling
-b2lio
-5blit
-b4litz
-b1loh
-8b1los
-1blu
-5blum
-2blun
-blut3a
-blut5sc
-3blä
-bläs5c
-5blö
+bi1ak
+bibe4
+bi2e
+bi3ens
+bi3ent
+bi3k2a
+bi2ke.
+bi2kes
+bi3ki
+3b2il
+bil4a
+4b3illu
+bi2lu
+2b1inb
+bi3n2e
+2b1inf
+2b3int
+bi2o3
+bi3on
+biri1
+bi3se
+bi2sol
+bis4s1c
+bi2s1t
+bi4stü
+bi2t
+b2i3ta
+bi3te
+bi3ti
+bi3to
+bi3tr
+bit5st
+2bitu
+bi3tum
+b2i3tus
+biz2
+bi3za
+4b3j
+bjek4to
+2b5k2
+b2l2
+2bl.
+b4la.
+bla3b6
+4b5lad
+b6lanc
+6blasser
+b6latt
+b3law
+1ble.
+3ble2a
+b3leb
+2b5leg
+b3leh
+2b3leid
+b5lein
+ble3l
+1b4lem
+b4ler
+b5lese
+ble3sz
+3b4let
+2b3lich
+3blick
+b4lie
+2b3lis
+b4lit
+3b6litz
+1b4lo
+b6loc
+b5lok
+2b3lun
3blü
-blü8sc
-2b1m
-2b1n
+2b5m
+4b5n2
+bni4
+bnis1
1bo
-bo1ch
-bo5d6s
-boe5
-8boff
-8bonk
-bo1ra
+bo5as
+bo2b3l
+bo3b4r
+bo3ch2
+bo3d2
+bo2e3i
+2b3of
+bo5fe
+bo1is
+bo2l1an
+3bon.
+bon2d1e
+bo2ne
+3bons
+b1op
+bo1r2a
+bo4rä
+bor2d1i
+bor2d3r
+bo2rei
b1ort
-2b1p2
-b1q
-1br
-brail6
-brast8
-bre4a
-b5red
-8bref
-8b5riem
-b6riga
-bro1s
-b1rup
-b2ruz
-8bröh
-brös5c
-8bs
-b1sa
-b8sang
-b2s1ar
-b1sc
-bs3erl
-bs3erz
-b8sof
-b1s2p
-bst1h
-b3stru
+bor4tei
+bor2t3r
+bo2sc
+bo5se
+bo4s3p
+3bot
+bote5n4e
+bo3th
+bot4st
+bö2b3
+2b3öf
+bö3sc
+2b5p2
+bpa4g
+2b5q
+b2r4
+2br.
+b4ra.
+2b3rad
+b4rah
+b4ra3k
+bra5st4
+2bre.
+6b5rechte
+2b3ref
+2breg
+b3reif
+b3rek
+3brem
+2b3rep
+b6rer
+2b3riem
+bri2er
+2brig
+b4rio
+bro1
+b5roh
+2b3rol
+b4ruc
+bru6s
+brust1
+4b1s
+bs3ad
+b3sand
+bs3ar
+b5sat2
+b3sä
+b5sc
+b6schan
+b7schl
+b3se
+b5se.
+bs1e2b
+bs1ein
+b5sel.
+bs1ele
+bse2n
+bs1ent
+bs1er
+bs3e4r3in
+b5ses
+b5set
+bsi2t
+b2s1of
+bs1op
+bso2r
+b2sö
+bs1par
+bs2pl
+b3s2pu
+bs3s2
+bs2t
+bst1a2b
+bst1ac
+bst1ak
+bst3ank
b5stä
-b6sun
-2b1t
+bs3tät
+bst1er
+b4stern
+bst1h
+bs3tip
+b5stra
+b4s3trä
+bs3treu
+b3stu
+bs3ty
+b2s1un
+bs3w
+4b1t
+b5ta
+btal3
+bta4st3r
+b3tä
+b5te
b2t1h
-1bu
-bu1ie
-bul6k
-b8ure
-bu6sin
-6b1v
-2b1w
+bti2s
+b3to
+b5tr
+b5tu
+btü1
+b2u
+bu2chi
+bu2e3
+bu2f
+bu5li
+2b3umk
+bu3na
+bunde6s
+bun4th
+b4urg
+bu3r4i
+bu2s
+bus3cha
+bu3se
+bu4s1er
+bus1p
+bu6sterm
+bu4s1tr
+bus1u
+bu3ße
+1b2ü
+bü1c
+büge4
+bügel3e
+2b3v
+2b5w
+bwa5re
1by1
-by6te.
-8b1z
-bzi1s
-1bä
-b5ä6s5
-1bü
-b6ü5bere
-büge6
-bügel5e
-bür6sc
-1ca
-cag6
-ca5la
-ca6re
-ca5y
-c1c
-1ce
-celi4c
-celich5
+by3p
+by2t
+by3th
+2b5z2
+bzei2t1
+2c.
+1c4a
+2ca1b4
+ca1ch
+cae3
+3caf
+ca3g4
+ca1h
+3cal
+ca3la
+cal3t
+3cam
+ca2pe
+ca3pel
+3car
+car3n
+carri1
+ca3s4a3
+ca3th
+ca1y2
+cä3
+4c1c
+cch2
+4cd
+c1do
+2cec
+ce2dr
+2cef
+ce1i
+2cek
+3cen
+cen3g
+cen3ta
+ce3n1u
+1cer
ce1ro
-c8h
-2ch.
-1chae
+ce5sh
+1cet
+4ceta
+cet3am
+ce3ty
+ce1u
+1cé
+c1f
+c4h
+4ch.
+2chab
+ch3abi
ch1ah
-ch3akt
-cha6mer
-8chanz
-5chara
-3chari
-5chato
-6chb
+ch1ak
+ch2anb
+3chanc
+ch1ang
+ch3anst
+2chanz
+1chao
+ch1ap
+2char.
+ch3arm.
+3charta
+cha2sc
+chasi1
+1chato
+ch1ärm
+ch1äs
+1châ
+2chb
+2chc
+2chd
+ch3e4ben
+ch3echt
1chef
-6chei
-ch3eil
-ch3eis
-6cherkl
-6chf
-4chh
-5chiad
-5chias
-6chins
-8chj
-chl6
-5chlor
-6ch2m
-2chn6
-ch8nie
-5cho.
-8chob
-choi8d
-6chp
-ch3ren
-ch6res
-ch3rü
-2chs
+3chef.
+che2fe
+3chefs
+4chei
+ch1eim
+che4ler
+4chents
+4chentw
+cher3a
+che3rei
+6chergeb
+ch1ess
+2ch3eta
+ch1ex
+1ché
+2chf
+2chg
+2chh
+ch1ia
+1chia.
+1chias
+6chind
+3chines
+ch1inf
+2ch1inh
+ch1ins
+ch1int
+ch1inv
+3chiru
+2chj
+2chk
+2ch2l2
+ch3lein
+2ch2m
+ch4mu
+2chn4
+cho2f
+ch1off
+ch1oh
+ch1orc
+2chp
+ch2r2
+2chre
+chre5s
+ch3rh
+3chron
+4chs
2cht
-cht5ha
-cht3hi
-5chthon
-ch6tin
-6chuh
-chu4la
-6ch3unt
-chut6t
-8chw
+ch5tes
+2chuf
+2chuh
+2chum
+2ch1unf
+chus4si
+2chü
+2chv
+2chw
+2chz
1ci
-ci5tr
-c2k
-2ck.
-ck1ei
-4ckh
-ck3l
+ci1c
+cil3l
+ci2s
+c1j
+2c4k
+ck1a
+ck3aa
+ck3am
+ck3an
+cka4r1
+ck1ä
+ck1ehe
+ck3ei
+ck3ense
+ck1ent
+cke2ra
+cke5reig
+ck1err
+cke2s
+ck1ese
+ck1id
+ck1im
+ck1in
+ck5l
ck3n
-ck5o8f
-ck1r
-2cks
-ck5stra
-ck6s5u
-c2l
-1c8o
-con6ne
-8corb
-cos6t
-c3q
-1c6r
-8c1t
+ck1o2
+ck1ö
+ck5r
+ck3spo
+ck5ste
+ck4stro
+ck3t2e
+ck3ther
+ck1um
+ck1up
+3c6l2
+clet2
+clo1c
+c2m
+1co
+3coa
+3coc
+co1ch
+co2d
+co4der.
+co3di
+coff4
+coi2
+co1it
+co2ke
+co2le
+co5l2o
+com4te.
+comtes4
+con2ne
+co2pe
+co1ra
+co4re
+cor5t
+cos4
+co4st
+co2te
+2cp
+c1q
+c4r2
+cre2
+cre4mes
+cry2
+2cs2
+c2si
+cst4
+2c1t
+cte3e
+cti4
+ction5
+ctur6
1cu
+cu2p3
+cup1e
+cussi4
1cy
-5cä1
-cö5
-1da.
-8daas
-2dabg
-8dabr
-6dabt
-6dabw
-1dac
-da2gr
-6d5alk
-8d5amt
-dan6ce.
-dani5er
-dan8ker
+4d.
+3da.
+da1a
+2dab
+d2abä
+da2ben
+3d2a1b4l
+3dac
+dach5a
+da2cho
+4dachse
+3dad
+da2de
+da3dr
+da1er
+2d1af
+d1ag
+dagi4o
+dah3l
+da1ho
+3d4ai4
+da1in
+da1is
+da1l2a
+2d1alar
+dal3b4
+da1lö
+2d1alt
+2d1amma
+2d1ammä
+damo3
+d2amp
+damp7f8erf
+2d1amt
+d2an.
+2dana
+dan2c
+2d1and
+2d1ang
+3dank
+dan4kl
+dan4k1o
+dank3r
2danl
-danla6
-6dans
-8danzi
-6danzu
-d1ap
-da2r1a8
-2d1arb
-d3arc
-dar6men
-4d3art
-8darz
-1dat
-8datm
-2d1auf
+4d1ans
+2danw
+d4anz.
+2d1ap
+d2aph
+4dapp
+da2r3a
+2darb6
+dar3bl
+3d2arl
+dar2ma
+dar2m1i
+da2ro
+2darr
+2dart
+d1artg
+da2ru
+d2arw
+da3s2h
+3dat
+da3ta
+dat2e4
+da3tei
+4d3atl
+4datm
+3dau3e4
+2d1au2f
2d1aus
-2d1b
+2d1äh
+2d1ämt
+2d1änd
+2d1äng5
+2d1äp
+2d1ärz
+dä2um
+dä1us
+2d7b
+dbu2
2d1c
-2d1d
+4d3d2
+ddar4m
d5de
-d3d2h
-ddämme8
1de
-2deal
-de5an
-de3cha
-de1e
-defe6
-6deff
+de3am
+de3an
+de3as
+de5a2t
+de3b4
+4d1e4ben
+3dec
+de1ch
+deco3
+de1e2
+2d1eff
+deg4
+dehe2
+de3ho
2d1ehr
-5d4eic
-de5isc
-de8lar
-del6s5e
-del6spr
-de4mag
-de8mun
-de8nep
-dene6r
-8denge.
-8dengen
-de5o6d
+2dei
+d2eic
+3d2e1im
+de2l1a4g
+delat5
+de4l3aug
+de4l1än
+del1ec
+de3l2ei
+2delek
+2delem
+de2len
+2d1elfm
+3delik
+del4la
+delle2
+del4lei
+del2lö
+de2l1ob
+de3lor
+de2lö
+del2s1e
+del2so
+del2s1p
+delt4
+del3ta
+del3te
+del3tr
+de6ments
+2d1emp
+d2en.
+de4n3end
+den3g
+de2ni
+den4k5li
+4densem
+den4sen
+den6s5tau
+den3th
+2dentw
+de2ob
2deol
-de5ram
-8derdb
-der5ein
+de1on
+deo4no
+depi4so
+d4er.
+de1rad
+de2r3ap
+der2bl
+de2r1e2b
+de4reck
+der3edi
+de3r4erb
+de3r4erf
+de4r3ero
+4d3erhöh
+d4eri
+de5ric
+de3rik
+4d3erklä
de1ro
-der1r
-d8ers
-der5um
-de4s3am
-de4s3an
-de4sau
-de6sil
-de4sin
-de8sor
-de4spr
-de2su
-8deul
-de5us.
-2d1f
-df2l
+de2rop
+d3ersat
+dert2a
+der6t5end
+de3ru
+de4ruh
+de4rum
+de2s
+de4s3a
+de5sac
+de5säc
+des1än
+de5sc
+de3se
+des1en
+des1in
+des1o
+des3p
+des5s4
+dest5alt
+de5stang
+de5ste
+de6s3tei
+de5sti
+de7stin
+dest5rat
+de5stri
+de5stro
+des1u
+deten6t
+2d3etw
+de1un
+de1url
+de1us
+de2xis
+2dexp
+2d3f
2d1g
-2d1h
+d2ge.
+d3gem
+dge2ta
+dge6t5e
+d3gl
+2d1h2
+d2his
+d3hu
1di
-dia5c
-di5ara
-dice5
-di3chr
-di5ena
-di1gn
-di1la
-dil8s
-di1na
-8dind
-6dinf
-4d3inh
+3di.
+di2a
+di4ab
+di4am
+dia5ne
+di4at
+3dic
+di1ce
+dich3te
+di2de
+di2e
+di3e2d
+die5ner
+di3eni
+di3ens.
+dienst5r
+die4s1c
+die2t5
+dige6s
+di3gn
+di3ka
+dil4s1
+2d1imb
+din2a
+2d1ind
+2d1inf
+2d1inh
+2d1init
+4dinner
2d1ins
-di5o6d
-di3p4t
-di8sen
-dis1p
-di5s8per
-di6s5to
-dis5tra
-di8tan
-di8tin
-d1j
-6dje
-2dju
-2d1k
-2d1l
-2d1m
-2d1n6
-dni6
-dnje6
-1do
-6d5obe
-do6berf
-6d5ony
-do3ran
-6dord
-2d1org
-dor4t3h
-do6ste
-6doth
-dott8e
-2d1p
-d5q
-dr4
-1drah
-8drak
-d5rand
-6dre.
-4drech
-d6reck
-4d3reg
-8d3reic
-d5reife
-8drem
-8d1ren
-2drer
-8dres.
-6d5rh
-1dria
-d1ric
-8drind
-droi6
-dro5x
-1dru
-8drut
-drös5c
-1drü
-drü5b
-drü8sc
-2ds
-d1sa
-d6san
-dsat6
-d1sc
-5d6scha.
-5dschik
-dse8e
-d8serg
-8dsl
-d1sp
-d4spak
-ds2po
-d8spä
-d1st
-d1sü
-2dt
+2d1int
+di2o3b
+di3o2d
+di3p
+di2ra
+di4re.
+di2ren
+di2ris
+2d1irl
+2d1isr
+dist4
+di2ta
+di4teng
+di4t3erl
+di4t3erm
+di4t3ers
+di2t3r
+di2tu
+diz2
+2d1j
+2d1k4
+4d1l
+d3l2e
+dle2r3a
+2d5m
+d3me
+4d1n4
+d5ne
+dni2
+dnis1
+d3no
+3do.
+2dob
+3doba
+d1o2be
+dob4l
+3dobr
+3doby
+do1chi
+3dog
+do3ha
+3dok
+dol3l2
+do2mar
+3don
+do5n4a
+doni1
+do2o
+4d1opf
+d2opp
+d2o3r4a
+4dorc
+3dorf
+dor2f1a
+dor2fä
+dor2fl
+dor2fr
+4d1org
+do2rie
+d2orp
+d2os.
+do3sp
+dos3s4
+dost3
+do6sta
+3dot
+dot4h
+do3un
+do1y2
+2dö
+d1öf
+d1öl1
+3dör
+dö4s1c
+2d3p2
+2d1q
+d2r4
+3d4ra.
+2d3rad
+d4rah
+2d5rahm
+3d4ram
+d3rand
+2drast
+2drat
+2drauc
+d3raum
+2d3räd
+2d3rät
+2dräu
+4dre.
+d4rea
+d5real
+3d4reck
+2dreg
+5dreh
+2d3reic
+d4rein
+drei3t
+d4reiv
+4drem
+4d3ren
+d3rep
+4d3rer
+4dres.
+d4resc
+2d3rh
+d4ria
+2d3ric
+d3rieg
+d4rif
+d3rind
+3drisc
+2driß
+3d4rit
+4dritu
+2drob
+d3roc
+2d3rod
+d4roi
+dro3ma
+2d3rot
+d3rou
+2d3rov
+drö4s1
+3d4ru
+d5rub
+4d5ruf
+4d5ruh
+4d5rut
+3d4rü
+drü1b
+2d1s
+ds3ab
+d4s1amt
+d2s3an
+ds3assi
+d2sau2
+d2s1än
+4dsb
+d4schin
+d2s1e2b
+d3sec
+d2s1ef
+d3s2eig
+d2s1ein
+d2s1eng
+d2s1ent
+d2s1erf
+d2s1erk
+ds1err
+d2s1erz
+dse4t
+d4s1eta
+d3s2ha
+ds3han
+d3sho
+d2s1im
+ds2inf
+d3s2kan
+d3skul
+4dsl
+ds3m
+d2s1op
+dso2r
+ds1ori
+d2sö
+d2s1par
+d2s1pas
+d2s1pä
+d3s2po
+d4spro
+dss2
+ds5st
+dst4
+d4s1tab
+d4s3täti
+d6stea
+ds2til
+d5stip
+d4s1tis
+d2stod
+d5stre
+ds1ums
+d2sun
+ds2zen
+4dt
d1ta
+dt3a2d
+d1tä
d1te
+d3tea
+dte5na
+dt3ha
d1ti
-d1to
-dt1s6
+d1to4
+d1tö
+dt3r
+dtran2
+dts2
+dt3sa
+dt5sc
+dt3sp
+dt5str
+dt3t
d1tu
-d5tä
+d1tü
1du
-du5als
-du1b6
-du1e
-duf4t3r
-4d3uh
-du5ie
-8duml
-8dumw
-2d1und
-du8ni
-6d5unt
+du1alv
+du1ar
+du2b3l
+du3e
+du2f
+2d1ufe
+2d1uh
+du1i4
+3dum.
+d1umb
+2dumd
+d3u2m1e
+2dumf
+2dumg
+4dumk
+2duml
+d2ump
+2dumr
+2d1ums
+3dums.
+d1umv
+dun3d
+2d1unf
+dun3ke
+dun2kl
+2dunr
+2dunt
+du1os
+dup4
dur2c
-durch3
-6durl
-6dursa
-8durt
-du1s
-du8schr
-2d1v
+2d1url
+3dus
+du2sc
+du3scha
+2düb
+3düf
+3dün
+3dür
+2d1v2
2d1w
-dwa8l
+dwa2l
+dwe4s
+dwest1
+dy3n
2d1z
-1dä
-6däh
-8dänd
-dä6r
-dö8bl
-d5öl
-dör6fl
-dö8sc
-d5ö4st
-dös3te
-1dü
-ea4ben
-e1ac
-e1ah
-e1akt
-e1al.
-e5alf
-e1alg
-e5a8lin
-e1alk
-e1all
-e5alp
-e1alt
-e5alw
-e1am
-e1and
-ea6nim
-e1ar.
-e5arf
-e1ark
-e5arm
+6e.
+2e1a
+e3a2b
+eadli4
+e2ag4
+ea2ge
+ea3gl
+eakt4
+e2al
+e3al.
+e3alb
+e3alei
+e3alf
+e3alg
+e3alk
+e3all
+e3aln
+e3alp
+e3als
+e3alta
+e3alv
+e3alw
+e3alz
+e2am
+eam3a
+e4ame
+eam1o
+eam3to
+eam3tu
+ea2na
+e5and
+e4ano
+e3anz
+e2ap
+e3ar.
+ea2ra
+e3arb
+e4are
+e5a6rene
+e3arm
e3art
-e5at.
-e6ate
-e6a5t6l
-e8ats
-e5att
-e6au.
-e1aus
+ea6se.
+eas5s
+ea4st
+e4at.
+eat4e2
+eate4r
+e4atl
+e4ats2
+eat3t4
+eatu4
+eau3b
+e3au2f
+e3aug
+e3ä4
+eäng5
e1b
-e6b5am
-ebens5e
-eb4lie
-eb4ser
-eb4s3in
-e1che
-e8cherz
+2eba
+e3b2ak
+eba3ra
+ebe2i
+eb4en
+e3beng
+eben4s3e
+2ebet
+2ebl
+eb5ler
+eb4leu
+eb3li
+e3blie
+eb5lo
+2eb2o
+ebö4s
+2ebr
+e3bra
+eb3rei
+eb2s
+eb6sche
+eb4se2
+ebs1i
+ebs1o
+ebs1p
+ebs3pa
+eb6stät
+eb4stec
+ebs3tei
+ebs3th
+ebs3ti
+ebs3tot
+ebs1u
+e3bu
+ebu2t1
+eb3üb
+2eca
+e1ce
+ech1ä
+2e3che
+ech1ei
+e6ch5erzi
e1chi
+ech3l
ech3m
-8ech3n
-ech1r
-ech8send
-ech4su
+ech5n
+e2cho.
+ech1o4b
+e2ch3r
+ech3ta
+ech3t4ei
e1chu
-eck5an
-e5cl
+ech1uh
+ech3w
+eci6a
+eck3se
+2eckt
+2ecl
+e1cr
+2ect
e1d
-ee5a
-ee3e
-ee5g
-e1ei
-ee5isc
-eei4s3t
-ee6lend
-e1ell
-ee5lö
+ed4dr
+ed4e
+ede4c
+e3dei
+ede3n2e
+eden4se
+eden4s3p
+ede2r
+ed2ge
+edi4a
+e3d2o
+e3dö
+ed3s2ä
+ed2s1es
+ed2s1o
+ed2s1p
+ed5sta
+ed4s1tr
+ed2su
+e3dy
+4ee
+ee5a2
+eeb4l
+ee2ce
+ee1ch
+eede3
+eeds2
+ee1e
+ee3ei
+e1eff
+eef5s
+eeg4
+e1ei2
+eei3e
+ee1im
+ee3ing
+eei3se
+eel2e
+e1elek
+ee3len
+e1emp
+e1en
+eena4
+e2enä
+e2enc
+ee5ni
+e2eno
+e1e2pi
+e2e1ra
+e1erbt
e1erd
-ee3r4e
-ee8reng
-eere6s5
-ee5rä
-ee6tat
-e1ex
+eerde3c
+ee3r2e
+ee4r3eng
+eere4s5
+ee4ret
+e2e1ro
+ee1r2ö5
+eer3öf
+eert2
+e1ertr
+e2erü
+e1erz
+ee5sh
+ee3st
+ee2tat
+ee2th
+ee1u2
+e1e2x
e1f
-e6fau
-e8fe8b
-3effek
+2ef.
+2efa
+e3fab
+ef3ad
+e3fah
+ef1ana
+ef1ank
+ef1arc
+ef1aus
+ef1äu
+2efe
+e2f1e2b
+e2f1em
+e4fent
+ef2er
+2eff.
+1effi
+ef2fl
+2efi
+e2f1i2d
+e2f1ins
+efi2s
+1efku
+2efl
+e3flu
+e3flü
+2e3f2o
+e3f4ra
+ef3rea
+ef4rie
+ef1rol
ef3rom
-ege6ra
-eglo6si
-1egy
-e1ha
-e6h5ach
-eh5ans
-e6hap
-eh5auf
+ef3rot
+efs2
+ef7sc
+ef3so
+ef3sp
+ef2tan
+eft4r
+2efu
+ef1um
+2efü
+e1g
+e3ge
+ege4n1a
+ege2ra
+ege4s3to
+ege4str
+ege1u
+eg3la
+eg4li
+eg3lo
+eg3lu
+e2gn
+eg3ni
+eg6sal
+egser1
+eg3spe
+egst6
+eg6sto
+2e3gu
+2e1ha
+eh1ach
+eh3aka
+e3h2al
+eh1ap
+eh2aus
+2e3hä
e1he
-e1hi
-ehl3a
-eh1le
-ehl5ein
-eh1mu
-ehn5ec
+eh1eff
+ehen2t3
+1e2hep
+ehe1ra
+eher4an
+e3h2i
+eh3int
+eh1lam
+eh1lä
+ehl2e2
+ehl3ein
+ehl3ent
+eh3lo
+ehl2se
+eh3ma
+eh3mi
+eh3mu
+eh5nat
e1ho
+e3hol
ehr1a
-eh1re
-ehre6n
+ehr1ä
+ehr3ec
+eh2r3ei
eh1ri
-eh1ru
-ehr5um
+eh1ro
+ehr1ob
+ehr1of
+eh2s2
+eh3se
+eh3sh
+eh3si
+eh3so
+eh3sp
+eh3te
e1hu
+e1hü
+eh3üb
+e3hüt
eh1w
e1hy
-e1hä
-e1hö
-e3hüt
-ei1a
-eia6s
-ei6bar
-eich3a
-eich5r
-ei4dar
-ei6d5ei
-ei8derf
-ei3d4sc
+2ei.
+2ei3a2
+4eib
+ei2b3l
+eibu2t
+ei4b3ute
+ei2cho
+eichs7test
+eich5te
+e2id
+ei2d1a
+ei3de
+ei4d3err
+2eidn
+ei3dra
ei1e
-8eifen
-3eifri
-1eign
-eil1d
-ei6mab
-ei8mag
-ein1a4
-ei8nat
-ei8nerh
-ei8ness
-ei6nete
-ein1g
-e8ini
-ein1k
-ei6n5od
-ei8nok
-ei4nor
-e3insä
-ei1o
+ei3el
+2eien
+eie4s
+ei3et
+1eifr
+ei3g2a
+eig2e
+ei3g6er
+2eigew
+ei3gl
+1ei2g3n
+2eigru
+2eigt
+2eigu
+4eih
+ei3k2a
+eik4r
+e2il
+2eil.
+ei4lant
+ei2lar
+2eilb
+eil3d
+ei4lein
+eile2n1
+eil3f4
+ei4l3ins
+2eiln
+ei2m1ag
+eim3all
+ei2mor
+e1imp
+ei4n1a
+ein3an
+ei2nä
+ein5de
+ein3dr
+2eindu
+ei5ne.
+ei4neng
+2einfo
+e2in1g2
+ein3ga
+ein2i
+e1init
+ein3k
+ein6karn
+3einna
+ei2no
+ein1ob
+3einsat
+ein4sz
+e4inver
+ei3o2
+ei3p
+eip2f
+2eir
+ei3re
e1irr
-ei5ru
-ei8sab
-ei5schn
-ei6s5ent
-ei8sol
-ei4t3al
-eit3ar
-eit1h
-ei6thi
-ei8tho
-eit8samt
-ei6t5um
-e1j
+e2is.
+ei2sa6
+ei2sä
+ei4s3erw
+ei3sp
+eis2pe
+ei4str
+ei2sum
+ei2ta
+2eitä
+ei3ten
+ei2t1h
+ei2tro
+eit3t2
+eit3um
+2eiu
+2e1j
+e1k
+e3k2a
1ekd
-e1ke
-e1ki
-e1k2l
-e1kn
-ekni4
-e1la
-e2l1al
-6elan
-e6lanf
-e8lanl
-e6l5ans
-el3arb
-el3arm
-e6l3art
-5e6lasti
-e6lauge
-elbst5a
-e1le
-6elef
-ele6h
-e6l5ehe
-e8leif
-e6l5einh
-1elek
-e8lel
-3eleme
-e6lemen
-e6lente
-el5epi
-e4l3err
-e6l5ersc
-elf2l
-elg2
-e6l5ins
-ell8er
-4e1lo
-e4l3ofe
-el8soh
-el8tent
-5eltern
-e1lu
-elut2
-e1lä
+eke2
+e3ke.
+e3ken
+eke3ri
+e3kes
+e3key
+ek4l
+ek5lip
+ek4n
+2ek2o
+2ekt
+ekt4ant
+ekt3erf
+ekt3erg
+ek4t3erz
+ekt2o
+e3k2w
+2e1la
+e3lab
+el3aben
+el1af
+el3agi
+ela2h
+el1aho
+e2l1ak
+el1a2m
+el3ans
+e2lant
+e2l3anz
+el1ap
+e2l1a2r
+el5ari
+el3asi
+el3asp
+e3law
+2e1lä
+elb4
+1elbis
+el2da
+eld5erst
+eld3erw
+el3des
+el3dr
+elds2
+e5le.
+elea4
+2elei
+e3leie
+e6l5eier.
+el3eig
+e2l1ein
+e3leine
+e4leing
+e2l1el
+1e2lem
+e3lem.
+el1emp
+2e3len.
+e4lense
+e2l1ent
+e3ler.
+el1erd
+el1erf
+e4lerfa
+e2l1erg
+el1erk
+e4l3erla
+e4l3ernä
+e2l1err
+el1ess
+e3let.
+e2l3e4ta
+2elev
+ele2x
+el3fe
+elf3ein
+elf4l
+elgi5er.
+elgi5ers
+e2l1id
+e3lie
+e2lim
+eli4n
+el1ita
+elks2
+el3l2a
+el4läu
+el5le.
+ell3ebe
+el4l3ein
+ell3eis
+el3les
+el2lic
+el3l2in
+elm2a
+2eln
+el5na
+2elo
+el1obl
+e2lof
+e2lol
+e3lom
+el1ope
+e2l1or
+elo2ri
+e3los
+e5lose
+e1lö
+el2san
+el2ser
+el2spr
+el2su
+el2ta
+el3t2ak
+elte2k
+elt3eng
+el3tes
+elt3in
+el2to2
+el2t3r
+el3tri
+el3tro
+elts2
+elt3sk
+elt3sp
+2e1lu
+e2l1um
+e3lung
+el1ur
+el1use
e1lü
-em8dei
-em8meis
-4emo
+e2ly
+2elz
+el3zwe
+2ema
+e2m3ad
+ema2k
+e2m1anf
+em1ans
+3emanz
+e5mä
+em4d3a2
+2eme
+eme4n
+emen4t3h
+e2m1erw
+3e2meti
+em1ex
+em1im
+em1int
+emi3te
+2emm
+em2map
+emma3u
+e3mon
+e2mop
emo5s
-1emp1f
-1empt
-1emto
-e1mu
-emurk4
-emurks5
-e1mä
-en5a6ben
-en5achs
-en5ack
-e1nad
-en5af
-en5all
-en3alt
-en1am
-en3an.
-en3ant
+3empf
+em3pfl
+em2p3le
+em2sa
+em3spo
+em3t2
+2emü
+e2na
+4ena.
+e4na2b
+2e5nac
+e3nad
+e4naf
+4enah
+e4nak
+en1al
+ena3l2i
+4en1am
+en4ame
+e4nand
en3anz
-en1a6p
-en1ar
-en1a6s
-6e1nat
+en1ap
+e4nar
+en3are
+4enat
+e5nati
+en3att
+e3naue
en3auf
-en3aus
+e2nä
+e3näc
+en1är
+en1äu
en2ce
-enda6l
-end5erf
-end5erg
-en8dess
-4ene.
-en5eck
-e8neff
-e6n5ehr
-e6n5eim
-en3eis
-6enem.
-6enen
-e4nent
+en4d3ess
+en3do
+end4ort
+end3ras
+end5si
+end3s2p
+end3sz
+en3dum
+2ene
+en1ec
+e2nef
+en1ehr
+en3ei.
+e2n1el
+ene4le
+e4nelt
+4enen
+e4n1ent
+e5n4entr
+en1epo
4ener.
-e8nerd
-e6n3erf
-e4nerg
-5energi
-e6n5erla
-en5ers
-e6nerst
-en5erw
-6enes
-e6n5ess
-e2nex
+e4n1erd
+e4nerf
+3e2n3erg
+e4n3erh
+4e3neri
+e2n3erk
+e2n1erl
+en3ermo
+4enern
+e2n1err
+en1ers
+e2n3ert
+e2n3eru
+e4n1erw
+en3erwe
+e6n3erz
+e4n3ess
+en3eta
+en3eth
+ene3tr
+en1eup
+e4nex
+en3fa
+en3ga
+1engad
+3engag
+en5g2i
+en2gl
en3glo
+1engp
+eng5s
+eng7sc
2eni
-enni6s5
-ennos4
-enns8
-e1no
-e6nober
-eno8f
-en5opf
-e4n3ord
-en8sers
-ens8kl
-en1sp
-ens6por
-en5t6ag
-enta5go
-en8terbu
-en6tid
+e3nic
+e4n1id
+e3nie
+eni3er.
+eni5ers.
+e2n1i4m
+en3imi
+e2n1in
+e5nit
+en3k2ü
+e2n1ob
+enob4le
+e2n1oh
+e3nol
+eno2ma
+en1on
+e2n1op
+en1o2r
+en2os
+e3not
+e3now
+2e1nö
+en1ö2d
+4enpe
+e6nr
+en2san
+en5sche
+en7schen
+en2seb
+1ensem
+ens3eng
+en3sho
+en2sid
+en3ska
+en3s2po
+enst5alt
+en4s3tät
+en6s5test
+4ensto
+en7stric
+ens5trie
+en5t4ag
+en3tanz
+1entd
+en4teb
+ente2n
+en6t5erb
+1entfa
+1entga
3entla
-ent5ric
-5entwic
-5entwu
+1entna
+3entspr
+3entw
+4entwet
1entz
-enu5i
-e3ny
-en8zan
-en1öf
-e1nös
-e1nüg
-eo1c
-e5o6fe
-e5okk
+3entzü
+e2n1uf
+e2n1um
+en1unf
+en1ur
+e3nus
+2enut
+e1nü
+4enwü
+e1ny
+enz3erf
+enz3erg
+enz3erk
+enz3ert
+e1ñ
+eo5a
+e1o2b1
+eo3ben
+e1of
+eo2fe
+e1oh
e1on.
-e3onf
-e5onk
-e5onl
-e5onr
-e5opf
-e5ops
-e5or.
-e1ord
-e1org
-eo5r6h
-eo1t
-e1pa
-e8pee
-e6p5e6g
-ep5ent
-e1p2f
-e1pi
-5epid
-e6pidem
-e1pl
-5epos
-e6pos.
-ep4p3a
-e1pr
-e1pä
+eo3na
+e1ond
+e1onf
+e1onl
+e1onr
+e1ons
+e1ope
+e3opf
+eop4t
+e1or
+e3or.
+e3orb
+e3ord
+eorgi1
+e3ort
+e3orw
+eos2
+e3os.
+eo5st
+eo3ul
+e1o2v
+e1ö2
+e1p
+e3pa
+epa4g
+e3p2f6
+1episo
+ep3le
+e2poc
+epor5te
+ep2pa
+ep4pl
+ep2pr
+ept2
+ep3ta
+ep4tal
e1q
-e1ra.
-er5aal
-8eraba
-e5rabel
-er5a6ben
-e5rabi
+er1a
+e5ra.
+era2be
+e1rabi
er3abs
-er3ach
-era5e
-era5k6l
+er3abt
+e3rad.
+er3adm
+er3adr
+era5f4a
+era1fr
+era2g
+er3agi
+e1rai
+er3aic
+e2rak
+er3akr
+e1ral
+era5le
er3all
-er3amt
-e3rand
+er3ana
+er3and
e3rane
-er3ans
-e5ranz.
+e2ranh
+er3anm
e1rap
-er3arc
+er3apf
+er3ar
e3rari
-er3a6si
-e1rat
-erat3s
-er3auf
-e3raum
-3erbse
+e1ras
+e2r3a4si
+era2ß
+e2rath
+e3rati
+e1raub
+er3aue
+er3aug
+e1raum
+e1raw
+e1raz
+2e1rä
+e3räd
+er1äh
+er1äm
+er3ätz
+erb2e
+er3blu
+er3br
er1c
-e1re
+er3chl
+1erdb
+er3de
+2erdec
+erd3erw
+2ere
4e5re.
-er3eck
-er5egg
-er5e2h
-2erei
-e3rei.
-e8reine
-er5einr
-6eren.
-e4r3enm
-4erer.
-e6r5erm
-er5ero
-er5erst
-e4r3erz
-er3ess
-5erfül
-er8gan.
-5ergebn
-er2g5h
-5ergänz
-5erhöhu
+e3rech
+er3echs
+er1eck
+ere4dit
+er1eff
+er1e2h
+4e3r4ei.
+er1eig
+e2rein
+er3eing
+er3einr
+er3eis.
+ere2l
+e2r1ele
+4e3rem
+e5rem.
+e4remp
+er3emu
+4eren
+e5ren.
+e5rena
+e4rense
+e4r3entf
+e4rentn
+e3reo
+4e5rer.
+er3erf
+e2r1erh
+e2rerk
+4erern
+er1err
+er1ers
+e4rersc
+e2rert
+e2r1erw
+4eres
+e5res.
+er1ess
+er1eß
+er3e4ti
+er1eul
+ere3us
+er3e4vid
+er3fä
+4erfür
+3ergebn
+4ergehä
+erg3ise
+e2r3h
+3erhab
2e1ri
-eri5ak
-e6r5iat
-e4r3ind
-e6r5i6n5i6
-er5ins
-e6r5int
-er5itio
-er1kl
-3erklä
-5erlös.
-ermen6s
-er6nab
-3ernst
-6e1ro.
-e1rod
-er1o2f
+e2riat
+e3rib
+4e3rie
+eri5e4n3
+e5rif
+erik6
+4e3rin.
+er1inb
+er1ind
+e4r1ini
+er1ink
+er1ins
+e4r1int
+e3rio
+er1ita
+2erkol
+erk3te
+erk3tr
+4erl.
+3erlebn
+4erln
+erm2
+er3ma
+erm3ers
+er3nan
+er2n1os
+e1ro.
+er3oa
+er1ob
+er1of
e1rog
-6e3roi
-ero8ide
-e3rol
+e2r1oh
+e1rok
+e1rol
+er3oly
e1rom
-e1ron
-e3rop8
-e2r1or
+e5ron
+er1o2p
+e4ro2r
e1ros
-e1rot
-er5ox
-ersch4
-5erstat
-er6t5ein
-er2t1h
-er5t6her
+e1rou
+e1row
+e1roz
+er1ö2
+e1röh
+2erök
+erö4s
+er5p
+er3ra
+2errü
+er3sa
+ers4au
+er3se
+er5s2i
+er3sk
+er3smo
+er3sn
+er3s2z
+ert3abe
+ert2ak
+er3tä
+ert3ein
+er6terei
+er4tho
+4erti
+ert3ins
+er3to
+erts2e
2e1ru
-eruf4s3
-e4r3uhr
-er3ums
-e5rus
-5erwerb
-e1ry
-er5zwa
-er3zwu
-erä8m
-er5äs
-erö8
-e3rös.
-e6r1ü2b
-e1sa
-esa8b
-e8sap
-e6s5a6v
-e1sc
-esch4l
-ese1a
-es5ebe
-eserve5
-e8sh
-es5ill
+eruf6s
+er1uhr
+er1u2m
+er1uns
+e3rus
+er1uz
+e1rü
+er3ü2b
+e5rüg
+3erweck
+6erweis
+2erzy
+es2a
+e4s3ab
+es3ad
+es3ak
+es3alt
+es3ar
+e5s4as
+es3av
+2esb
+e3sc
+es3cap
+es4ce
+esch4
+e6schan
+esch2n
+e4sco
+e6scu
+es1ebe
+es3ehr
+es1ein
+es1eis
+es1eta
+es3eva
+2esf
+6e4sh
+es2har
+es2hu
+e3sid
+e5sie
+es1il
+es1ini
es3int
-es4kop
-e2sl
-eso8b
-e1sp
-espei6s5
+e3sir
+e7sis
+e5sit
+es5ke
+es3ki
+e4s3ky
+e4sl
+es2log
+2e4sm
+e4sn
+e3sof
+e3sol
+eso2r
+es2ort
+es4pei
+e3s4pek
+e5spi
es2po
-es2pu
-5essenz
-e6stabs
-e6staf
-e6st5ak
-est3ar
-e8stob
-e1str
-est5res
-es3ur
-e2sz
-e1sü
+e5s4por
+es2pr
+e5s4pra
+2esr
+es6saa
+1essay
+es3sec
+ess4e3re
+es4s3erg
+es4sit
+2esso
+es2sof
+es2sp
+ess1pa
+es4st
+ess3tie
+es5str
+es5su
+e2st
+estab6b
+est1ak
+e4starb
+es6tau
+es7taum
+es2te
+es6te.
+est5eink
+e7stel
+e4st3eng
+e4st3erh
+e7stern
+e7sters
+e4st3ess
+es4ti
+es5tip
+estmo6de
+est3o4ri
+es3trop
+e3stu
+es4tü
+e2s1um
+es1ur
+e3sy
+eße3r2e
+2et
e1ta
-et8ag
-etari5e
-eta8ta
-e1te
-eten6te
-et5hal
-e5thel
-e1ti
-1etn
-e1to
-e1tr
-et3rec
-e8tscha
-et8se
-et6tei
-et2th
-et2t1r
-e1tu
-etu1s
-et8zent
-et8zw
+eta3b6
+et1am
+etari1
+et4at
e1tä
+et1äh
+e3te
+e5te.
+et1ein
+e5t2en
+etend4
+e1t2h
+et3hai
+et3hal
+et3hä
+et3hei
+et3hü
+e3ti
+eti2m
+eti2ta
+e3to
+eto4b
+e4t1of
e1tö
+4e1tr
+e4t3raum
+et3rec
+e2t3res
+et4ri
+et4ro
+etsch3w
+et3so
+et3sp
+et3su
+et2ta2
+et4tang
+ett3au
+et2tä
+et2tei
+ette4n1
+ett1h
+et4t3r
+ett3sz
+et2t1um
+et2tur
+et2tü
+e1tu
+et1ups
e1tü
-eu1a2
-eu1e
-eue8rei
-eu5fe
-euin5
-euk2
-e1um.
-eu6nio
-e5unter
-eu1o6
-eu5p
-3europ
-eu1sp
-eu5str
-eu8zo
-e1v
-eval6s
-eve5r6en
-ever4i
+et4z3ent
+et3zo
+eu1a
+eu3ere
+eu3erz
+eu2e5sc
+eu2ga
+eug6er
+eug3l
+eu4gla
+eugs4
+euho2
+euil4
+eu1in3
+eu2kä
+e1um
+e3um.
+e3umb
+e3uml
+e3um6s
+eums1p
+eum5st
+eum7str
+2eun
+eu3n2e
+e3ung
+eu4nio
+eun3ka
+eu1o2
+eu3p
+eu2rau
+eu3r2e
+eur4er
+1eu3ro1
+eu4sk
+eu3sp
+e4ust4
+2eut
+eu3te
+2eux
+eu2zw
+e3ü
+2e1v
+4eve
+e2vela
+e2vent
+ev2s
e1w
-e2wig
-ex1or
-1exp
-1extr
-ey3er.
+2e3wa
+ewa3s
+e3wä
+ewä2s
+2ewe
+e2we.
+ew3et.
+e3wir
+ewi2s
+e3wit
+ew2s
+2ex.
+ex3at
+1e6xem
+e4x1er
+e2x1in
+1exis
+3exp
+2ext.
+ex2tin
+2exu
+2e1xy
+2ey
+ey4n
e1z
-e1ä2
-e5ö8
-e1ü
-e8ßes
-fa6ch5i
-fade8
-fa6del
-fa5el.
-fal6lo
-falt8e
-fa1na
-fan4gr
-6fanl
-6fap
-far6ba
-far4bl
-far6r5a
-2f1art
-fa1sc
-fau8str
-fa3y
-2f1b2
-6f1c
-2f1d
+e5z2a
+e2z1enn
+e3zi
+ezi2s
+é1b
+é1c
+é1g
+é1h
+é1l
+élu2
+é1o
+é1p
+é1r
+é1t
+é1u4
+é1v
+é1z2
+è1c
+è1m
+è1n
+è1r
+ê1p
+6f.
+1fa
+3fa.
+fa1b4
+fa2ben
+f3abf
+fab5s
+3fac
+fa3che.
+fa3chem
+fa2ch1i
+2fad
+fa2da
+3fa1e
+fa3fa
+fa3g
+f2ah
+fa2ke
+f2al
+fa1l2a
+fal2kl
+fal6lenk
+fal6l5erk
+fal2li
+fal2s
+falt4s
+fal2z1
+3fam
+2fanb
+fan3da
+2fanf
+fan2gr
+2fanl
+2fanr
+2fanw
+2f3anz
+2f1ap
+far2b3r
+3fari
+3f2art
+fa5ru
+f1arz
+3fas
+fa3s4a
+fa3sh
+3faß
+2fat
+fa2to5
+2f1auf
+f3aug
+f1ausb
+3fav
+1fä
+fä1c
+fäh2r1u
+2f1ärm
+f1ärz
+fä2ßer
+2fäu
+2f1b
+2f1c
+2f1d4
+f3ds
1fe
-2f1eck
-fe6dr
-feh6lei
-f6eim
-8feins
-f5eis
-fel5en
-8feltern
-8femp
-fe5rant
-4ferd.
-ferri8
-fe8stof
-fe6str
-fe6stum
-fe8tag
-fet6ta
-fex1
-2ff
-f1fa
-f6f5arm
-f5fe
-ffe5in
-ffe6la
-ffe8ler
-ff1f
-f1fla
-ff3lei
-ff4lie
-ff8sa
-ff6s5ta
-2f1g2
-fgewen6
-4f1h
+3fe.
+f2ech
+4f3eck
+fe2dr
+fe2ei
+fe1em
+f4eie
+4feinh
+fei2nu
+fei5st
+fek2ta
+3fel
+fe2l1a
+fel4dr
+fel5eise
+4f1e2lek
+fe2l1er
+fel5lä
+fe2l1o
+fel4soh
+fel3to
+fel3tr
+fel3tu
+3f2em.
+2femi
+fem4m
+fen3a
+fe4nä
+3fend
+fen3g
+fe2ni
+fe2no
+fen3sa
+fen7sc
+fens2t2
+fen5ste
+f1ent
+f2er.
+fe1r2a
+fe4rang
+fe4ranz
+fe2r3au
+3ferei
+fer3eis
+fer2er
+fer3erz
+2f1erfa
+fe1ro
+f4erpa
+f2ers.
+f2ert
+f1erw
+fes2t
+fe4st1a
+fe4st3ei
+fe4str
+2f3e4ta
+3fete
+fet4t1a
+3few
+2f1ex
+4fexp
+3fez
+1fé
+6f1f
+ff2ab
+ff1ar
+ff2arb
+ff3at
+ff1au
+ff2e
+ffe2e
+f2f3ef
+ff3ei
+ffe3in
+ffe2m
+ff3emi
+f5fen
+f5fer
+f2fetz
+fff4
+ffi3k
+ff6lei
+ff3li
+f3flu
+f3flü
+ff1ox
+ff1rak
+f3f4rä
+ff3ro
+ff3rö
+ff3ru
+ff2s
+ff3sho
+fft2
+fft3h
+2f3g4
+2f1h
1fi
-fid4
-fi3ds
-fieb4
-fi1la
-fi8lei
-fil4m5a
-f8in.
-fi1na
-8finf
-fi8scho
-fi6u
-6f1j
-2f1k2
-f8lanz
-fl8e
-4f3lein
-8flib
-4fling
-f2lix
-6f3lon
-5flop
-1flor
-5f8läc
-3flöt
+3fi.
+fi3at
+fi1er2f
+fi2ki
+fi3kl
+fi2k1o4
+fi2kr
+fi2l3an
+fi3l4auf
+fil3d
+fi2les
+fi5li
+fi6lin
+fil2ip
+fin4a
+fi3ni
+2f1int
+fi3ol
+fi2r
+fi3ra
+3fis
+fi3s4a
+fi4scha
+fisch3o
+fi3so
+fi5s2p
+fi2t1o2
+fit5st
+fi3tu
+5fiz
+2f1j
+2f1k4
+f2l4
+2fl.
+f3lad
+1f4lä
+3fläc
+2f5läd
+f5län
+f5läu
+2f3leb
+2f3lein
+f3ler
+3flim
+fli4ne
+2f5lon
+1f4lop
+1f4lot
+flo2w
+f4lu
+f6lug
+flug1a
+f4lü
2f1m
-2f1n
+2f3n2
+fni2
1fo
-foh1
-f2on
-fo6na
+fob4l
+2f1of
+fo2na
+fo2nu
2f1op
-fo5ra
-for8mei
-for8str
-for8th
-for6t5r
-fo5ru
-6f5otte
-2f1p8
-f1q
-fr6
-f5ram
-1f8ran
-f8raß
-f8re.
-frei1
-5frei.
-f3reic
-f3rest
-f1rib
-8f1ric
-6frig
-1fris
-fro8na
-fräs5t
-2fs
-f1sc
+fo1ra
+4f3org
+fo3rin
+3form
+for4m3a4g
+forni7er.
+for4sta
+for2t
+for4te
+for4th
+fort3r
+for3tu
+fo5st
+2fo2x
+2f1öf
+2f1ök
+2f1öl
+2f3p2
+fper1
+2f1q
+f2r2
+f4rac
+f5rad
+fra4m
+f3rand
+1f4rän
+frä5st
+2f5re.
+f5ref
+2freg
+frei3ba
+frei5n2
+f3rep
+f4reu
+2f3ric
+fri3d
+fri2e
+2frig
+fri3k
+1f4ris
+fri6ster
+f4riß
+f3roc
+1f4ron
+fro2sc
+fru2h
+4fs
+f2san
+fs3ar
+f2s3as
+f2saut
+f3sc
+f4sce
+f4schan
+fs1e2b
+fs3ehr
+fs1ein
+f2s1em
+f4s1ent
f2s1er
-f5str
-fs3tät
-2ft
-f1tak
-f1te
-ft5e6h
-ftere6
-ft1h
-f1ti
-f5to
-f1tr
-ft5rad
-ft1sc
-ft2so
-f1tu
-ftwi3d4
-ft1z
+fse4t
+f4s1eta
+f3si
+f2si2d
+f2s1o2
+fs3ol
+f3span
+f2s1pas
+fs1pen
+f3s2pl
+f3s2por
+f2s1pr
+fs2pra
+fs2pri
+fs3s2
+fs1tak
+f4stas
+fs2tau
+fs1tät
+f4stäti
+f4stech
+f5stel
+f4stemp
+f4s1tis
+fst4r
+f4s3tres
+fs2tro
+f4s3tüte
+f2s1un
+f2sü
+f5sy
+4f1t
+f4ta.
+ft1a2be
+ft1af
+ft1al
+ft1an
+ft3anz
+ft1ar
+f3tat
+ft1auf
+ft1e2h
+ft1eig
+ft1ein
+ft1eis
+f2t1ent
+f2t3e4ti
+f2t1h
+f4t3hei
+f3ti
+ft1op
+ft3rau
+f2t3ro
+ft3rö
+f3t4ru
+ft2s1
+ft4sa2
+ft3sc
+ftse2
+ft4stä
+ft5s4ten
+ft5s2ti
+ft3sü
+ft3t
+ft1url
+ft3z2
1fu
-6f5ums
-6funf
-fun4ka
-fu8ßend
-6f1v
+2fum
+2f1unf
+2f1u4ni
+fun2kl
+fun4ko
+fun2k3r
+2f1unm
+2funt
+furch2
+fu4re.
+fu5ru
+fus3se
+fus6senk
+fus4ser
+fuss1p
+fus4s1t
+fu2ß1er
+3fut
+1fü
+2füb
+fü2r
+2f1v
2f1w
+fwa3s
+1fy
2f1z
-1fä
-fä1c
-8färm
-6fäug
-fä8ß
-föde3
-8föf
-3för
-1fü
-fün4f3u
+fz2a
+fzei8tend
+fz4s
+6g.
1ga
-ga6bl
-6gabw
-8gabz
-g3a4der
-ga8ho
-ga5isc
-4gak
-ga1la
-6g5amt
-ga1na
-gan5erb
-gan6g5a
-ga5nj
-6ganl
-8gansc
-6garb
+5ga.
+2gabf
+ga2b5l
+ga1b4r
+ga3bu
+2gabz
+ga1ch
+ga3di
+ga1e
+ga1fl
+ga3g
+ga1k
+ga2ka
+ga1l2a
+5g4amo
+2g1amt
+2ganb
+gan3d
+g1anf
+gan2g1a
+4gangeb
+gan2gr
+2g1anh
+2g3anku
+2ganl
+3gano
+g4ant
+2ganw
+ga1ny
+2g1arb
2g1arc
+3gard
2g1arm
-ga5ro
-6g3arti
-ga8sa
-ga8sc
-ga6stre
-2g1atm
-6g5auf
-gau5fr
-g5aus
-2g1b
-g5c
-6gd
+ga3r2o
+g1arti
+2garz
+ga2s
+gas3a
+ga4sal
+ga3sc
+ga5se.
+gas1ei
+gas5s
+ga4sta
+gas3tan
+ga4st3el
+ga4stra
+gas1tu
+ga3t2a
+ga3th
+2gatm
+gat4r
+gau1c
+2g1auf
+g2auk
+2g1aus
+2g1aut
+1gä
+2g1äp
+g1ärz
+3gäs4
+gä5st
+gä4u
+6g1b
+g5be
+gber2
+g5bo
+2g1c
+2gd
g1da
-1ge
-ge1a2
-ge6an
-ge8at.
+gda3de
+g3dal
+gd1au
+g3de
+g4d1er
+gd1in
+g1do
+g3dö
+g1dr
+gd3re
+gds2
+gd3sz
+gd1t4
+gd1un
+gd1ur
+1g4e
+ge3a2
+ge3ba
+gebe4am
+geb4r
+ge1c
+ge3d
ge1e2
-ge6es
-gef2
-8geff
-ge1g2l
+ge3ec
+ge2es
+gef4
+geg4l
+ge3ha
ge1im
-4g3eise
-geist5r
-gel8bra
-gelt8s
-ge5lö
-ge8nin
+ge1ins
+ge1inv
+ge1ir
+4geise
+gei3sh
+gei4sta
+g2el
+gel6ders
+ge3le
+ge4l3ers
+ge4less
+ge3lor
+gel3sa
+gels2t
+gel3sz
+gel3t2a
+gel3to
+ge3lum
+ge3lü
+gel3z2
+3gema
+3gemä
+3gemö
+ge3na
+ge4nam
+gen2au
+gen4aug
+gen2d3r
+ge3nec
+gen3eid
+gen3ern
+gen3g
gen3k
-6g5entf
-ge3nä
-ge1or
+genmes4
+ge3nor
+gen3sz
+g1entf
+gen3th
+geo2r
+ge3ou
+ge3p6
+3ger.
ge1ra
-ge6rab
-ger8au
-8gerhö
-ger8ins
+ge2rab
+ge2ral
+ger3amp
+3gerä
+g5ereig
+ge5rem
+ge4reng
+ge4rens
+ge4r3ent
+ger2er
+germ4
+ger3no
ge1ro
-6g5erz.
-ge1rä
-ge1rü
-ge1s
-ges2p
-ge5unt
-4g3ex3
-2g1f8
+ge1r2ö
+ger4sto
+3gerw
+g6es
+ges3auf
+ge5s2c
+ges3elt
+ge2s1er
+ge3ses
+ge3s2i
+ge3sp
+gess2t
+ge3st
+get2a
+ge3tan
+4getap
+ge3t2u
+ge1ul
+gewa5re
+4g5ex
+2g3f2
2g1g
-g1ha
-6g1hei
-5ghel.
-g5henn
-6g1hi
-g1ho
-1ghr
-g1hö
+gga2t
+g5ge
+gge2ne
+g2g3l
+gg4lo
+g2g3n
+gg4r
+g3grä
+gg4s
+2g1h
+4gh.
+3g2het
+3g2hie
+gh3l
+3gh2r
+gh3te
+g2hu
+gh1w
1gi
-gi5la
-gi8me.
-gi1na
-4g3ins
-gi3str
-g1j
-2g1k
-8gl.
-1glad
-g5lag
-glan4z3
-1glas
-6glass
-5glaub
-g3lauf
-1gle.
-g5leb
-3gleic
-g3lein
-5gleis
-1glem
-2gler
-8g3leu
-gli8a
-g2lie
-3glied
-1g2lik
-1g2lim
-g6lio
-1gloa
-5glom
-1glon
-1glop
-g1los
-g4loss
-g5luf
-1g2ly
-1glü
-2g1m
-gn8
-6gn.
-1gna
-8gnach
-2gnah
-g1nas
-g8neu
+gi2a
+gi3alo
+gie3f
+gie3g
+gi2e1i
+gi2el
+gien2e1
+gie3re
+gie3t
+gi2gu
+gi2m
+gi4mes
+3gin
+4g1ind
+gi3ne
+gin2ga
+4g1ins
+gi2o
+3gip
+gi3ro
+2gisel
+git2a
+gi2us
+2g1j
+2g5k
+g2l
+6gl.
+1gla
+2g3lab
+3glad
+2g3lag
+3glanz
+gla4s5ti
+gla4stu
+3g4laub
+2g3lauf
+1glä
+3gläs
+g3läß
+3glät
+2gläuf
+1gl4e
+2gle.
+2g3leb
+g5lec
+g3leg
+2g3leh
+g4leic
+4glein
+glei4t5r
+3glem
+g3len
+4g5ler
+g3lese
+g3lev
+g3li
+g4lia
+2glib
+3g4lid
+5g6lie
+2glif
+1g4lik
+g5lin
+1g6lio
+4glisc
+1g4lit
+1g4liz
+1g4loa
+g4lob
+1g4loc
+g5loch
+1g4lok
+g4lom
+1g4lop
+2glos
+1g4lot
+g3lö
+2gls
+2glu2
+glu3te
+3glü
+3gly
+2g1m2
+gmi3te
+gn2
+4gn.
+g2na
+g6na.
+g6nat
+1g2nä
+g5neh
+2gneu
+4gn3g
+2gni2
g2nie
-g3nis
-1gno
-8gnot
+g2nif
+g4nin
+4g5ni4s1
+g2no
+gno1r
+2g3not
+4gnp
+4gns
+4gnt
+2gnu
+3g2num.
+g2ny
+4gn3z
1go
-goe1
-8gof
-2gog
-5gogr
-6g5oh
-goni5e
-6gonist
-go1ra
-8gord
-2g1p2
-g1q
-1gr4
-g5rahm
-gra8m
-gra4s3t
-6g1rec
-gre6ge
-4g3reic
-g5reit
-8grenn
-gri4e
-g5riem
-5grif
+3go.
+go4a
+goa3li
+go3be
+2g1of
+2g1oh
+go1i4
+gol2a
+3gon
+2g1ope
+2g1opf
+3g2o1ra
+3gos
+go2si
+go3t2h
+got6t5erg
+3gou
+3go1y
+1gö
+g1öf
+2g3p2
+2g5q
+1g2r4
+gra2bi
+2gradl
+g3rah
+3grai
+2g3rak
+gram8m7end
+3gran
+g3räd
+2gräu
+2g5re.
+g4reb
+2g3rec
+g3rede
+g4re2e
+2g3reic
+g3reit
+g3rek
+g4rem
+2g3renn
+gre3no
+gren6z5ei
+2gret
+2g3ric
+gri2e
+g3riese
+3grif
2grig
-g5ring
-6groh
-2grot
-gro6ß
-4grut
-2gs
-gs1ab
+2g3ring
+gro3be
+2groc
+2groh
+gron4
+g4ros
+gross5el
+gros8seri
+g4roß
+gro4u
+2g3röh
+g4ruf
+2g3rui
+2grum
+3g4runs
+3g4rup
+2g3rut
+grü1b
+2g3rüc
+3g4rün
+4g2s
+gs1ac
+gs3ad
+gs1af
+gs1a2g
g5sah
-gs1ak
-gs1an
-gs8and
-gs1ar
-gs1au
-g1sc
-gs1ef
-g5seil
-gs5ein
-g2s1er
-gs1in
-g2s1o
-gso2r
-gs1pr
-g2s1u
+gs5a2k
+g5sal
+gs1ama
+gs1amb
+gs3an
+gs3ar
+gs3as
+g5sat
+gs3aug
+gs1ä
+g7sät
+g5sc
+gsch4
+g6schan
+g7schä
+g6schef
+g7s2chi
+g7schl
+g7schö
+g7schu
+g7schü
+gs1cr
+gs1e2
+g5s2eil
+g5sel.
+g5seln
+gs3ene
+g4s3er
+gse4t
+gs1i
+gsi2d
+g7sil
+gs3l
+gs1o2
+g3sol
+g7soz
+gs1ö
+gs1p
+g5spek
+gs2pi
+gs3pin
+g5s2por
+g4spu
+gs3s2
+g3st
+gs1ta
+g5s2tar
+gst1au
+gs1tä
+g5ste.
+gs3teil
+g7stel
+g5sten
+gst3ent
+g5ster.
+gst3err
+gs3test
+gs4teu
+g5sti
+gs3tier
+gs1tis
+g5sto
+g6ston
+g6s1tor
+gs1tot
+g5stö
+gs1tr
+gst4ri
+gst3ros
+g5stuf
+g5stun
+gs1tü
+gs2tüc
+gs1u
+g5sub
+g5sy
2g1t
-g3te
+g5te
g2t1h
+g5ti
+gti2m
+g5tr
+gt4se
1gu
-gu5as
+gu1an.
+gu1ant
gu2e
-2gue.
-6gued
-4g3uh
-8gums
-6g5unt
-gu1s
-gut3h
-gu2tu
-4g1v
-2g1w
-gy1n
-g1z
-1gä
-8gä8m
-6gärm
-1gö
+guet2
+2g1u2f
+2g1uh
+gu3ins
+gu1is
+gu5me
+3gumm
+gun2e
+2g1unf
+g2ung.
+gunge2
+4gungew
+2g1ungl
+3g2uns
+4gunt
+gu3re
+2g1url
+gu4s3a
+guschi5
+gus6saa
+gus6sam
+gus4st
+gu2ß1
+5gu2t1
+gu3te
1gü
-6güb
-1haa
-hab8r
-ha8del
-hade4n
-8hae
-ha5el.
-haf6tr
-2hal.
+2güb
+gür1
+gü5st
+2g1v
+4g5w
+gwa5re
+1gy
+gy3n
+2g3z2
+6h.
+2ha.
+hab2a
+hab2e
+h2abs
+ha2cho
+hade2
+ha2del
+h3adle
+ha3dri
+ha1el
+ha3fa
+haf5fl
+haft4s
+hafts3p
+ha3go
+ha3ha
+hai1es
+h2aka
+ha1kl
+4h2al.
ha1la
-hal4b5a
-6hale
-8han.
-ha1na
-han6dr
-han6ge.
-2hani
-h5anth
-6hanz
-6harb
-h3arbe
-h3arme
-ha5ro
-ha2t1h
-h1atm
-hau6san
-ha8ß
-h1b2
-h1c
-h1d
+halan4c
+ha4lang
+ha2lau
+hal2ba
+hal4bei
+halb3r
+2hale
+hal4leh
+hal6lerf
+h1alp
+halt3r
+h1amt
+h2an.
+2hana
+h2and
+h4ann
+2hanr
+2hant
+haos5
+2hap
+ha2pr
+h4a3ra
+2h1arb
+h2ard
+har3ma
+har4me.
+har4mes
+har5te
+har4th
+h1arti
+h2arts
+2has.
+2ha3sa
+ha2ß1
+hau3f4li
+2h1aufm
+h1aukt
+hau2sa
+hau4sc
+hau6s3ti
+hau2ta
+2hauto
+hau2tr
+h1äff
+h1ärz
+hä6s5chen
+häu4s1c
+hä1usp
+2h5b
+hba2r3a
+2h1c
+2h1d
+2hea
+he3al
+1heb
+he3be
+he4b1ei
he2bl
-he3cho
-h3echt
-he5d6s
-5heft
-h5e6he.
-hei8ds
+he3br
+he5che
+he1cho
+he2el
+hee3le
+hee2s
+he2fa
+he2fä
+he2f1ei
+he3fen
+hef3erm
+2heff
+he4f3ing
+he2f3l
+he2f3r
+he3fri
+he2fu
+he2i
+h1eie
h1eif
+h1eig
+heim3p
+hei4mu
2hein
+heine2
+hei4neh
+h1eink
he3ism
-he5ist.
-heit8s3
-hek6ta
-hel8lau
-8helt
-he6mer
-1hemm
-6h1emp
-hen5end
-hen5klo
-hen6tri
+he3i4st
+heit4s3
+h1eiw
+hekt5a
+he2l3au
+hel1ec
+h1e2lek
+he3len
+hel3ers
+he3li
+hel4l3au
+hel4mei
+he3lo
+he4lö
+3hemd
+he3mi
+3hemm
+4h1emp
+h2en.
+he6n3a2
+he4nä
+h4ene
+he2n1e2b
+hen3end
+he2net
+he2ni
+he2no
+hen5st2
+h1ents
he2nu
-8heo
-he8q
-her3ab
-he5rak
+hen3z
+4he2o
+he3on
+he3op
+he3ph
+her3a2b
+he2ral
her3an
-4herap
-her3au
-h3erbi
-he1ro
-he8ro8b
-he4r3um
-her6z5er
-he4spe
-he1st
-heta6
-het5am
-he5th
-heu3sc
-he1xa
-hey5e
-h1f2
-h1g
-hgol8
-h1h
-h1iat
-hie6r5i
-hi5kt
-hil1a2
-hil4fr
-hi5nak
-hin4ta
-hi2nu
-hi5ob
-hirn5e
-hir6ner
-hi1sp
-hi1th
-hi5tr
-5hitz
+he3ras
+herb4
+he4reck
+4her4eig
+he4r3eis
+he2rel
+h1erfo
+h1erfü
+he6r5innu
+h1erke
+2herm
+he3ro
+he4r3o2b
+h1erö
+hert2
+her3th
+her2z1w
+hes4t
+he2tap
+heter2
+he3th
+he5ti
+he3t4s
+he2u
+heu3g
+he3x
+he1x2a
+he1y2
+1hè
+2h5f4
+hfel2l1
+hfi2s
+2h5g2
+2h1h
+2hi.
+2hi2a
+hi1ce
+2h2i3d
+h3i4di
+hi2e
+hi3ens
+hie4r3in
+hif3f6r
+h2ig
+hi2kr
+h2il
+hi4l5a4
+hil2fr
+hi2n
+hi3nel
+hin2en
+hi5n4i
+hi3no
+hin2t3a
+2hio
+hi4on
+hi3or
+hi3os
+2hi2p
+hi3pe
+hip1h
+hip1i
+h2i2r
+hi3ra
+2hi3re
+hi3ri
+hir4n
+hi3ro
+his2a
+hi4se
+hi5s2p
+hi3ti
h1j
-h6jo
-h1k2
-hlabb4
-hla4ga
-hla6gr
-h5lai
-hl8am
-h1las
-h1laß
-hl1c
-h1led
-h3lein
+2h1k4
+2hl
+h4lac
+h3lad
+h4laf
+h3lai
+h5land
+hl3anz
+hl1ar
+h3las
+h3laß
+h3lat
+h3laug
+h3laut
+h3law
+h3läd
+hl1är
+h3läs
+h3läß
+h3läu
+hlb4
+hl3d4
+h5le.
+h3leb
+h3led
+hle3e
+h3leh
+h2lein
+hle3l
+h5len.
+hlen3g
+hl2enn
+h3ler
h5ler.
-h2lif
-h2lim
-h8linf
-hl5int
-h2lip
-h2lit
-h4lor
-h3lose
-h1läs
-hme5e
-h2nee
-h2nei
+hle2r3a
+h5lere
+h4l1erg
+h4l3ernä
+hle3run
+hl1erw
+h3les
+h4lesi
+h3lex
+hlg4
+h2li
+h3lic
+h3lik
+hl1ind
+h3list
+hl3l2
+hlm2
+h2lo
+h5loc
+hl1of
+hl1op
+h6lor
+hlo2re
+h3losi
+h3lö
+h5löc
+h4lös
+hl2san
+hl2ser
+hl3sku
+hl3slo
+hl3sp
+hl2sto
+hlt2
+h3luf
+h3luk
+h3lüf
+2h1m
+h2ma
+h4mab
+h3mag
+h3man
+h3mar
+h3mä
+h4mäc
+h4mäh
+h4mäl
+h4mäu
+h3me.
+hme1e
+hme1in
+h3meist
+hmen2s
+hmen6sc
+hme2ra
+h2mi
+h3mir.
+h2mo
+h3mot
+h3mö
+hm3p2
+hm3sa
+hm2s1p
+h2mu
+h5musi
+h2mü
+2hn
+h2n2a
+hn3ab
+h3nac
+hn3ad
+h3nam
+hn3an
+h4nat
+h5nati
+h2nä
+hn1är
+h3näs
+hn3d4
+hn2e
hn3eig
+hn3ein
h2nel
-hne8n
-hne4p3f
-hn8erz
-h6netz
+hne4n1
+h2nep
+hner3ei
+h5nerz
+h2neu
+hn3ex
+hn1g
+hngen5
+h2nic
+hn1id
+h2nie
+hn3im
+hn1in
h2nip
-h2nit
-h1nol
-hn5sp
-h2nuc
-h2nud
+hn3k4
+h3nof
+hn3s2k
+hn4th
h2nul
-hoch1
-1hoh
-hoh8lei
-2hoi
-ho4l3ar
-1holz
+hn1unf
+h3nunge
+ho3be
+ho2bl
+ho2c
+hoch5
+hoe4
+ho2ef
+ho4fa
+ho2f3r
+hol1au
+ho2l1ei
+hol3g4
+2holo
+ho4lor
+1hols
+h3oly
+3holz
+hol6zene
+hom2e
+ho2mec
+ho2med
+ho5mu
h2on
+2hoo
+2hop
ho1ra
-6horg
-5horn.
+hor3d
+h1org
+ho5ri
ho3sl
-hos1p
-ho4spi
-h1p
-hpi6
+ho4sp
+ho4st
+ho6sta
+ho5ste
+2hot.
+ho5th
+2hot3s2
+1hou
+3hov
+2ho2w
+how1e
+h1o2x
+ho1y2
+hô1
+1hö
+hö2c
+h2ör
+hö4s
+hös1c
+h1öst
+2h3p2
h1q
-6hr
+4hr
+hr1ac
+hr3a2d
h1rai
-h8rank
-h5raum
+h1rane
+h3raum
+h3räu
hr1c
-hrcre8
-h1red
-h3reg
-h8rei.
-h4r3erb
-h8rert
-hrg2
-h1ric
-hr5ins
-h2rom
-hr6t5erl
-hr2t1h
-hr6t5ra
-hr8tri
-h6rum
-hr1z
-hs3ach
-h6s5amt
-h1sc
-h6s5ec
-h6s5erl
-hs8erle
-h4sob
-h1sp
-h8spaß
-h8spel
-hs6po
-h4spun
-h1str
-h4s3tum
-hs3und
-h1sü
-h5ta.
-h5tab
-ht3ac
-ht1ak
-ht3ang
-h5tanz
-ht1ar
-ht1at
-h5taub
-h1te
+hr3d
+hr2e
+h2rec
+h3r4ech
+h3red
+h3ref
+h4rei.
+h3reic
+h4r5eig
+h3rel
+h3ren
+h3rep
+h4r3erla
+h3rerle
+h6rerleb
+h3re4s5
+hre6su
+hre2t
+h2r3eta
+h3rev
+hrf2
+hrg4
+hrga4
+h3ric
+hri4e
+h3riesl
+h3rin
+hr1ind
+h4rine
+hr1ins
+h4ris
+h2rob
+h3roh
+h3rol
+h4rom
+hro3man
+h4ron
+h2ror
+h3rou
+hr2s3ac
+hr2s3an
+hrs3au
+hr5sch
+hr2s1en
+hr2ser
+hr4set
+hr4s1in
+hrs3k
+hr2s1of
+hrst2
+hr2su
+hr6sw
+hr4tab
+hr2tan
+hr2t3ri
+hr2tro
+hrt2se
+hrt4ste
+h1ru
+h3ruh
+hr1ums
+h3rut
+h3rü
+hr3üb
+h2ry
+hrz2
+4h1s
+h2s1ach
+h2san
+h2sau
+h3sc
+h4schan
+hs1ec
+hs3eins
+hs1eis
+h2s1erl
+h3s2ex
+h2s1ing
+hs3l
+h2s1of
+h2s1par
+h2sper
+h3s2por
+h2sprä
+hs3s2
+h4stal
+hst3alt
+h4starb
+h4stau
+h4stäl
+h5ste.
+h5stem
+h5sten
+h4sterm
+h2steu
+h4s1tie
+h4stin
+h4s1tor
+hst3ran
+h4st3ri
+h2s1tu
+h3stun
+h2s1un
+hs2ung
+h3sy
+4h1t
+h2t1a
+htab2s
+h3t4akt.
+h3takts
+h3t2al
+h4t3alt
+ht3a4n
+ht5ane
+h3t4ank
+h3tas
+h4t3ass
+h4tasy
+ht3a2t
+h2t1är
+h5te.
h2t1ec
-ht3eff
-ht3ehe
-h4t3eif
-h8teim
-h4t3ein
-ht3eis
-h6temp
-h8tentf
-hte8ren
-h6terfü
-h8tergr
-h4t3erh
-h6t5ersc
-h8terst
-h8tese
-h8tess
+h3tech
+h2t1ef
+ht1e2h
+h3teha
+h3tehä
+h2teif
+h4t1eim
+ht1ein
+h2t1eis
+h4t3elit
+h2temp
+h3ten
+h4tentf
+h4t3ents
+ht3erfo
+ht3erfü
+h2t1erh
+h2t1erk
+ht4erko
+ht3erre
+ht3ersc
+h6t5erspa
+h4t3erst
+h2t1erz
+hte2s
+h2t3ese
+h6t3ess
+h5tet
h2t1eu
-h4t3ex
-ht1he
-ht5hu
-h1ti
-ht5rak
-hts3ah
-ht1sc
-ht6sex
-ht8sk
-ht8so
-h1tu
-htz8
-h5tüm
-hub5l
-hu6b5r
-huh1l
-h5uhr.
-huld5a6
-hu8lent
-hu8lä
-h5up.
-h1v
-h5weib
-h3weis
+h2t1ex
+h2t1h
+h3ti
+h4t1in
+hti2s
+htni4
+h2t3oly
+h2top
+h2torg
+h2tö
+h3töp
+ht3rak
+ht3rand
+h2t3rat
+ht3raus
+ht4ri
+h2t5rin
+h2t3rol
+h2t3ros
+ht3roß
+h2t3rö
+h2t3ru
+h2t3rü
+ht2sen
+ht4s3ess
+ht3spri
+ht4stab
+ht4ster
+hts2ti
+ht4s3tur
+ht4s3tür
+ht3t
+htti2
+htue3
+ht1und
+h2t1urs
+htwa5re
+ht3z4
+hu2b
+hub1a
+hu4bei
+hu4b1en
+hub3l
+hub3r
+hu2h1a
+hu2h1i
+huk3t4
+hu2l3a
+hu2lä
+hu2l3ei
+hu4l3eng
+hu4lent
+hu2ler
+hu2let
+hu2l1in
+hul3l
+hu2lo
+hu3ma
+h1ums
+h1una
+huni1
+2hunt
+h1up.
+h1ups
+2hur
+hur3g
+hu3sa
+hu2sc
+hu2so
+hu2tab
+hu3t2h
+hu2ti
+hut2t
+hut4zen
+hut4z3er
+hutz1i
+h2ü
+hü1bel
+h4übs
+hüf2
+hüh3
+hühne4
+2h1v
+hvi2
+hvil4
+2hw
+h2wal
+hwa5re
+hwe1c
+h1weib
+h1wet
+3hyd
+1hyp
+hy2pe.
h1z
-hä8kl
-häl8s
-häma8tu8
-hä8sche.
-hät1s
-häu4s3c
-2hö.
-2höe
-8höi
-hö6s
-hös5c
-hühne6
-hül4s3t
-hütte8re
-i5adn
-i1af
-i5ak.
-i1al.
-i1al1a
-i1alb
-i1ald
-i5alei
-i1alf
-i1alg
+hz4s
+2i.
+2ia.
+i4aa
+ia1b4
+iab5s
+2iac
+i5ad.
+i3adn
+ia1f4l
+i4a3g
+i3ak.
+i1akt
+2i1al
+i5al.
+i3al3a
+ia2lä
+i3al3b
+i3alc
+i3al3d
+i3alei
+i3alent
+i3alerf
+i3alerh
+i3a4l3erm
+i3a2let
+i3alf
+i3alg
i3alh
-i1alk
-i1all
-i1alp
-i1alr
-i1als
-i1alt
-i1alv
-i5alw
-i3alz
-i1an.
-ia5na
-i3and
-ian8e
-ia8ne8b
-i1ang
-i3ank
-i5ann
-i1ant
-i1anz
-i6apo
-i1ar.
-ia6rab
-i5arr
-i1as.
-i1asm
-i1ass
-i5ast.
-i1at.
-i5ats
-i1au
-i5azz
-i6b5eig
-i6b5eis
-ib2le
-i4blis
-i6brig
-i6b5unt
-i6büb
+i3a2lia
+i3alj
+i3al3k2
+i5al5l
+i3alm
+i3aln
+ia2lor
+i3alp
+i3alr
+i3als
+i3al3t4
+ia2lu
+i3alv
+i3alw
+i3al3z2
+iam4
+2ian
+i5an.
+i1ana
+ia2nal
+i1anc
+i5and
+ia3n2e
+i3ann
+i2ano
+i5ans
+i3ant
+i3anz
+ia3p2f
+ia1q
+i3ar
+ia2ra
+2i3as
+i5as.
+i4asc
+ia3sh
+i4asi
+i4a3sp
+ia4st4
+ia5str
+i5at.
+ia6ta
+i3at2h
+1iatr
+i3ats
+i3au
+ia3un
+iaus1
+2iav
+i1äm
+i1är.
+i1ärs
+i3ät.
+i3ät3s4
+i1b
+i2b1ar
+i2b1auf
+ib2bl
+i2b1ei
+ibe6n1
+ibi4k
+i3b4la
+i3b4le
+i2b1ö
+i2b3rä
+ib3ren
+ib2s
+ib3sa
+ib3sp
+ib4ste
+i2bunk
+i2b3unt
+ibus1c
+ibwa5
+2ic
+ich1a
+ich3ä
i1che
-ich5ei
-i6cherb
+ich3ei
i1chi
-ich5ins
-ich1l
-ich3m
-ich1n
+i2chin
+ich3l
+i3chlo
+ich5m
i1cho
-icht5an
-icht3r
+i2ch3r
+ich2t3r
i1chu
-ich1w
-ick6s5te
-ic5l
+ich3w
+ick2e
+i1cr
+i5cu
i1d
-id3arm
-3ideal
-ide8na
-3ideol
-ide5rö
-i6diot
-id5rec
-id1t
-ie1a
-ie6b5ar
-iebe4s3
-ie2bl
-ieb1r
-ie8bra
-ie4bre
-ie8bä
+i3d2am
+id2an
+i2d1au
+1i2dee
+id1ei
+i3del
+ide5l2ä
+ide3le
+ide1ra
+ide3so
+1i2dio
+i2dol
+1idol.
+i3dos
+i2d3r
+id4ra
+id2s1p
+id1t4
+1i2dy
+ie5a2
+ie2bä
+ie2b3l
+ie2br
+ieb4sto
+ieb4str
+ie1c
+ie2cho
+ied3g
ie2dr
-ie1e8
-ie6f5ad
-ief5f
-ie2f1l
-ie4fro
-ief1t
+ie1e2
+ie2f1ak
+ie2f1an
+ie2fau
+ie3fer
+ief3f4
+ie2f3l
+ie2f1r
+ie2g7l
+ie3g4n
+ie2g3r
+ieg4ra
+iegs1c
+ieg4st
+ie3her
i1ei
-ie4l3ec
-ie8lei
-ie4lek
-i3ell
-i1en.
-i1end
-ien6e
+ie2l1a2
+iel3ad
+ie3las
+iel3au
+iel3d
+i2ele
+iel1ec
+i2eli
+i1ell
+ielo2b
+i2els
+iel3sp
+iel3sz
+ielt4
+iel3ta
+iel3to
+i1en
+i3en.
+i3ena
+ie4n1ag
+i3e4nä
+i3end
+ie2n1e2b
+ien2er
+ie6nerg
i3enf
-i5enn
-ien6ne.
-i1enp
-i1enr
-i5ensa
-ien8stal
-i5env
-i1enz
-ie5o
-ier3a4b
-ie4rap
-i2ere
-ie4rec
-ie6r5ein
-ie6r5eis
-ier8er
+i3en3g
+i3enh
+i3enj
+i3enk
+i3enm
+i3enn
+i3e2no
+i3enö
+i3enp
+i3enr
+iens2
+ien3se
+ien6sto
+ienst5rä
+ien3sz
+i3env
+i3enw
+i3enz
+ie1o2
+ier3a2
+ie2rap
+ie2rec
+ie3rel
+ie3r2er
+ie4rerf
+ier4ert
+ie4r3erz
+ie3res
+i3ereu
+i4eri
+ier3k4
+i1ern
i3ern.
-ie8rum
-ie8rund
-ie6s5che
-ie6tau
-ie8tert
-ie5the
-ie6t5ri
-i1ett
-ie5un
-iex5
+ier5ni
+iers2e
+ier4s3eh
+ier5sta
+i3e4stas
+ie3su
+ie2t1a
+ie4tei
+ie4t3erh
+ie4t3ert
+ie2th
+iet3ho
+ie4t1o
+ie2t3ö6
+iet2se
+i3ett
+ieu2e
+ie1un
+i1eura
+iewa5r
+i1ex
2if
-i1fa
-if5ang
-i6fau
-if1fr
-if5lac
-i5f6lie
-i1fre
-ift5a
-if6t5r
-ig3art
-2ige
-i8gess
-ig5he
-i5gla
-ig2ni
-i5go
-ig3rot
-ig3s2p
-i1ha
-i8ham
-i8hans
-i1he
-i1hi
-ih1n
+if1an
+i2f1arm
+if1au
+i3fe
+i5f2en
+if1erg
+if1erh
+if2fa
+if6feste
+if2fl
+i3fi
+if3l
+i1f4la
+if1lö
+if5lu
+i1flug
+i1flü
+i1fö
+if3r
+if4ra
+i1frau
+i1f4re
+if5reg
+if2s
+if3se
+if3sp
+if2ta
+ift3erk
+if2top
+if2t3ri
+ift3sp
+ift3sz
+i1g
+ig2ab
+iga1i
+i2g1ang
+ig1art
+iga5s
+i4gefar
+ig5eise
+i3gen
+ige4na
+ige4rau
+i2g5erz
+ig2gr
+i2g1im
+i2g3l
+ig1lä
+ig4le
+ig5lein
+i4gli
+ig1lu
+2igm
+ig4na
+i4gnä
+i3g4neu
+ig4no
+i3g4ra
+ig6sal
+ig3sau
+ig3sä
+ig4se
+ig3so
+ig6sti
+ig6s1to
+ig6stö
+ig4stre
+2i1h
+i2h1am
+i2h1ar
+i5he
+ihe1e
+ihe4n
+ih3l
+ih3m
+ih3n
ih1r
-i1hu
-i8hum
+ih2s
+i2h1um
+ihu3s
ih1w
-8i1i
-ii2s
-ii2t
+2i1i4
+i2i5a4
+i3in
+i2is.
+i2i5t
i1j
i1k
-i6kak
-i8kerz
-i6kes
-ik4ler
-i6k5unt
-2il
-i5lac
-i1lag
-il3ans
-i5las
-i1lau
-il6auf
-i1le
-ile8h
-i8lel
-il2fl
-il3ipp
-il6l5enn
-i1lo
-ilt8e
+i4k3a4k
+ik3amt
+i4kanl
+i2k1ano
+ik3ansa
+i2k3anz
+i2k1ar
+ik3att
+i2k1au
+ik3aufr
+ik1är
+2ike
+i2k1ei
+ike2l
+ike2re
+i2k3eta
+i3ki.
+i3kic
+i3kil
+i2k1in
+i2k3l
+i3k4la
+i3k4lä
+ik1lö
+i2k3n
+ik2o3p4
+ikot3t
+ik3ra
+ik3rä
+ik3re
+i3kri
+ik3so
+iks2p
+ik3s2z
+ik3t2e
+ikt3erk
+ik2t3r
+i2kun
+i3kus
+i1la
+il5ab
+il3a2d
+i2l1ak
+i2l3a4m
+il1ans
+il3asp
+i3lat
+i2l1au
+il4aufb
+il5aus
+i1lä1
+2ilb
+il2c
+il2da
+il3de
+il4d3ent
+ild2er
+il2d1o
+il1ec
+ile2h
+il1ehe
+ileid4
+il1ein
+i2l1el
+i3len
+i4l1ent
+i2l1erf
+i2l1erg
+i2l1err
+il2f3l
+il2f3re
+ilf4s
+ilg4r
+ili5en
+iliga2
+ili4g3ab
+i2l1ind
+i2l1ip
+i3lip.
+i3lips
+il3l4a
+il4lad
+il2leg
+il3l2er
+il5l2i
+il2mak
+il4mang
+il2m5at
+il2mau
+il2min
+2ilo
+i2l1or
+i1lö
+il1öf
+il3t2h
+il3tr
i1lu
-i1lä
-i8mart
-imb2
-i8mele
-i8mid
-imme6l5a
-i1mu
-i1mä
-i5mö
-ina5he
-i1nat
-in1au
-inau8s
-8ind.
-in4d3an
-5index
-ind2r
-3indus
-i5nec
-i2n1ei
-i8nerw
-3infek
-1info
-5ingeni
-ing5s6o
-5inhab
-ini5er.
-5inj
-in8kät
-in8nan
-i1no
-inoi8d
-in3o4ku
-in5sau
-in1sp
-5inspe
-5instit
-5instru
-ins4ze
-5intere
-5interv
-in3the
-in5t2r
-i5ny
-inä2
-i1när
+i2lum
+i3lus
+il3v2
+il2zar
+ilz3erk
+4im.
+ima2g
+i2manw
+i2m1arm
+ima2tr
+ima4tur
+1imbi
+i2m1ele
+i2m1elf
+i2m1erf
+i2m1erz
+i2meti
+im1ex
+2imi
+i2m1inf
+iming7
+i2m1ins
+imi3te
+immei4
+im4m3ent
+3immo
+imni4
+im1org
+1impo
+imp2s
+im3pse
+1impu
+im4str
+2imt
+2imu
+im3unt
+2in.
+2ina
+in1ac
+in3ad
+in2af
+in3a2m
+in2ant
+i3nap
+i6narb
+ina4s
+in3asi
+inasy3
+i2n3au
+inaus1
in1äs
-inö8
-in5öd
-i1nös
-2io
-io1a8
+in1äu
+in3dau
+in4dene
+indes4t
+1index
+in3do
+2indr
+ind3se
+1indus
+2ine
+i2n1e2be
+i2ned
+in1ehe
+in3ei
+i5nend
+in1eng
+i3n2er
+i5ner.
+in3erbe
+i4n3erlö
+i5ners
+i5nerv
+in3erz
+i2n1eu
+ine3un
+ine2x
+1info.
+4inga
+ing1af
+in2g1a4g
+ings2c
+ing7sch
+ing3ska
+ing5ste
+1inhab
+2inhar
+2inhau
+2inhe
+i3ni3d
+2inig
+in3ins
+in2ir
+2inis
+i3nitz
+3inkarn
+ink4st
+2inn.
+in4n3erm
+2innl
+inn6sta
+1innta
+2ino
+in3od
+in3ole
+in3ols
+in1or
+ino5st
+ino3t
+i1nö
+in1ö2d
+2inp
+2inr
+2ins.
+ins2am
+insch4
+in7schl
+in2seb
+in3sel
+2insen
+ins3ert
+in3skan
+3instal
+in4s3tät
+in5sto
+in3s2u
+1insuf
+in4s3um
+ins2z
+in3sze
+1integ
+in3t2h
+in3t4r
+i2n1uf
+i3n2um
+in1unz
+invil4
+i1ny
+inze2
+in3z2w
+i1ñ
+i1o
+io5a4
io1c
-iode4
-io2di
-ioi8
-i1ol.
-i1om.
-i1on.
-i5onb
-ion2s1
-i1ont
-i5ops
-i5o8pt
-i1or.
-i3oral
-io3rat
-i5orc
-i1os.
-i1ot.
-i1o8x
-2ip
+i4o3di
+io3e4
+i2of
+io1f4l
+i2o3h
+io2i3d
+i4ok4
+io3kr
+i3ol.
+i3om.
+i3oms
+ion4
+i3on.
+io3na
+ional3a
+io4n5au
+ion5d
+i3ons1
+ion6sc
+ions3p
+io2nu
+i2ony
+i2o1p
+i3ops
+i3opt
+2i2or
+i3or.
+io1ra
+i3orc
+iore4n
+io1rh
+i3orp
+i3ors
+i3ort
+i2os2
+i3os.
+io3sh
+io3sp
+io5st
+i3ot.
+i3ots
+i2ov
+io2x
+i3oz.
+i1ö4k
+i3ön
+i1ös.
+2ip.
i1pa
-i1pi
-i1p2l
+i1pä
+i1pe
+ipen3
+i3per
+ip3fa
+iph4
+2i1pi
+ipi3el
+ipi3en
+ip4l
i1pr
+2ips
+ip3ta
+2i1pu
i1q
-i1ra
-ir6bl
-i1re
-i1ri
-ir8me8d
-ir2m1o2
-ir8nak
+i1r2a
+i3ra.
+1irak
+i3ras
+i1rä
+ir2bl
+ir1c
+ir4e
+i5ree
+2irek
+i5ré
+irg4
+ir2g5l
+irg6s
+ir2he
+i1r2i
+iri3a
+2irig
+2irk
+ir2k5l
+irli4n
+ir2mau
+ir2mä
+ir2m1ei
+ir2mum
+ir4m3unt
+ir5nen
+irn3ers
+ir2no
i1ro
-ir5rho
-ir6schl
-ir6sch5r
-i5rus
-i5ry
-i5rä
-i1sa
-i8samt
-i6sar
-i2s1au
-i8scheh
-i8schei
-isch5m
-isch3r
-ischä8
-is8ele
-ise3ra
-i4s3erh
-is3err
-isi6de
-i8sind
-is4kop
-ison5e
-is6por
-i8s5tum
-i5sty
-i5sö
+1i2ron
+iro2s
+iro5st
+i1rö
+irpla4
+ir4rei
+ir2s
+ir3sh
+irt4st
+i1ru
+iru2s1
+i1s
+i3sac
+i4s1amt
+is2ap
+is3are
+i2sau
+is1än
+2isb
+i2sca
+isch3ar
+is2che
+i4sch3e4h
+i4sch3ei
+isch6er
+i4schin
+i5sching
+i2sch3l
+i2schm
+isch3ob
+isch3re
+isch3ru
+i4schwa
+i6schwir
+i4schwo
+i4sch3wu
+is1chy
+i2s1cr
+2ise
+i3sec
+ise3e
+ise3ha
+ise5hi
+ise3il
+is1ein
+ise3inf
+i4seint
+ise2n
+ise4nal
+is2end
+ise1ra
+i2s1erm
+iser2u
+i2s1ess
+is4et
+i4s5etat
+isi2a
+i2s1id
+is3la
+is3m
+i2s1of
+iso2n
+iso6nend
+is1op
+3i2sot
+i2sp
+is1pa
+i4spar
+is1pe
+is1pic
+is2pit
+i4spl
+i4spo
+i4spro
+is3sa
+is6saa
+is4s3ac
+is4sau
+is3sä
+is4s3che
+is4st
+iss1tr
+is2sum
+ist2a
+i4st3ab
+i4staf
+i4stam
+is2te4n
+is2ter
+is2ti
+ist3re
+is2tro
+is1trü
+i2stur
+isum3p
+i2sü
+i2ß1ers
+2it.
i1ta
-it5ab.
-i2t1a2m
-i8tax
-i1te
-i8tersc
-i1thi
-i1tho
+it1ab.
+it1ac
+i3tak
+ital1a
+ital3l
+it1alt
+it1am
+it1ang
+it3a6re
+it1art
+i3tat
+it1au
+i3tauc
+i4t1ax
+2i3tä
+i4t1äs
+ität4
+2i1te
+it1eig
+it1ein
+6i3tel
+ite2n
+iten3g
+itens2
+i2t1epo
+i2tex
+it1he
i5thr
-it8hä
+it1hu
i1ti
-i8ti8d
-iti6kl
-itmen4
+1itia
+i2t1id
+1itii
+iti4kan
+i2t1in
+i3tis
+i3tiv
i1to
-i8tof
-it3ran
+i3to.
+i5toc
+i2t1of
+i1tö
+i1tr
+i5tra.
+it3raf
+it3rah
+i2t3ran
+it3ras
it3rau
-i1tri
-itri5o
-it1sc
-it2se
-it5spa
-it8tru
+it3räu
+it3re
+it3ric
+it3rom
+i3tru
+it3run
+it4s1ag
+it2sä
+it2s1e2
+it4s3er1
+its1pe
+it4staf
+it4stec
+it4s3tem
+its3tes
+it4sti
+it4sto
+it4str
+it2teb
+it4temp
+itt3hä
+it2tr
i1tu
-it6z5erg
-it6z1w
-i1tä
-itä6r5e
-ität2
-itäts5
+it1uh
+i2t1um
+i2tuns
+itu5re.
+it1urg
+itut4
i1tü
-i1u
-iu6r
+i3tül
+i3ty
+2itz
+it4z3erg
+2i1u6
+ium1
+ium3a
+i3un
+ius1t
+i1ü
2i1v
-i6vad
-iva8tin
-i8vei
-i6v5ene
-i8verh
-i2vob
-i8vur
-i1w
-iwi2
-i5xa
-i1xe
+iv1ak
+iv1ang
+i2veb
+i2v1ei
+iv1elt
+ive4n
+i2v3ene
+i2v1ent
+i3vol
+i2vr
+i2v1ur
+2i1w
+iwa5r
+iwur2
+ix2em
+i3xi
+i1xo
+ix3tu
i1z
-ize8n
-i8zir
-i6z5w
-iä8m
-i1ä6r
-i5ät.
-i5äv
-i1ö8
-iü8
-i6ß5ers
-ja5la
-je2t3r
-6jm
-5jo
-jo5as
+i2zan
+iz1ap
+iz1au
+izei3c
+ize2n
+i2z3ene
+iz4er
+i2z1ir
+iz1ob
+i2z1ö
+izt2
+iz3th
+i2z1w
+í1l
+2j.
+jahr3ei
+jahr4s
+ja3la3
+ja3ne
+jani1
+ja5sa
+2jat
+je2a
+jean4s
+je2g5
+jek4ter
+jekto2
+jek4tr
+je3na
+je2p
+je3s
+je2t
+jet1a
+jet3h
+jet3r
+jet5t
+jet1u4
+jit3
+ji2v
+j2o
+joa3
+jo2b1
+job3r
+jo2i
+joni1
jo1ra
-jou6l
-ju5cha
-jugen4
+jord4
+jo2sc
+jou2
+jou4l
+4jö
+2js
+j2u
+ju2bl
+jugen6
jugend5
-jung5s6
-ju1s
-3jä
+ju2k
+jung7s
+jur2o
+ju3te1
+2j1v
+4k.
1ka
-8kachs
-8kakz
+3ka.
+ka2a
+ka3ar
+kab2bl
+ka2ben
+2kabh
+ka1bl
+2kabla
+2kablä
+kab4le
+2k3a2bo
+ka3b6r
+4k3abs
+2k1abt
+ka1c
+2kada
+ka3dab
+2k3adr
+ka1e
+ka1f4l
+ka1fr
+kaf3t
+k2a3g
+ka1in
+ka3ka
+kaken4
ka1la
-kal5d
-kam5t
-ka1na
+2kala.
+ka2lan
+kal3bl
+ka3lei
+ka3len.
+ka4lens
+kal3eri
+kal2ka
+kal2kr
+2kall
+kal4tr
+k2am
+k3a2ma
+ka3mar
+kamme2
+ka4n3a4s
+ka2nau
+kan3d4
+2kanda
+kan2e
+2k1ang
+kan3k4
2kanl
-8kapf
-ka6pl
-ka5r6a
-6k3arbe
-ka1ro
-kar6p5f
-4k3arti
-8karz
-ka1rä
-kasi5e
-ka6teb
-kat8ta
-kauf6s
-kau3t2
-2k1b
-2k1c
-4k1d
-kehr6s
-kehrs5a
-8keic
+2k1anna
+2k1ans
+6kantenn
+kan4th
+2kanw
+k4anz.
+ka2o
+2kapf
+2karb
+k1arc
+k2ard
+3ka3re
+k2arg
+ka3r2i
+kari3es
+2karm
+kar4p3
+k2ar3ta
+2karti
+kar3to
+karu2
+k2arw
+ka5se
+kasi1
+ka4sp
+ka3ta
+ka3th
+ka2t3r
+2katt
+kau4f1o
+4kaufr
+kauf4sp
+2kaus
+kau5st
+kau3t4
+2kauto
+1kä
+3käf
+2käh
+k1ämi
+kär2
+kä4s1c
+kä5se
+kä3th
+2k1b4
+k5be
+kbo4n
+2k3c
+2k3d
+kdamp2
+2kec
+ke3d
+k3eff
+kefi4
+kege4
+ke2gl
+ke2he.
+kehr4s
+kehrs3o
+ke2i
+2k1eic
2k1eig
-6k5ein
-6k5eis
-ke6lar
-ke8leis
-ke8lo
-8kemp
-k5ente.
-k3entf
-8k5ents
-6kentz
-ke1ra
-k5erlau
-2k1f8
-2k1g
-2k1h
-ki5fl
-8kik
-king6s5
-6kinh
-ki5os
-ki5sp
-ki5th
-8ki8ö
-2k1k2
-kl8
-1kla
-8klac
-k5lager
-kle4br
-k3leib
-3kleid
-kle5isc
-4k3leit
-k3lek
-6k5ler.
-5klet
-2klic
-8klig
-k2lim
-k2lin
-5klip
-5klop
-k3lor
-1klä
+2kein
+ke3ind
+2k1eise
+keit4s
+ke2la
+kel1ac
+ke3lag
+kel1au
+ke2lä
+kel3b
+2k1e2lek
+ke2len
+2ke3let
+kel3s2k
+2k1emp
+ken3a
+4kengag
+kens2k
+ken5st
+ken7s4te
+ken3sz
+k2ente
+k3enten
+ken3th
+2k1ents
+2kentw
+2keo
+4kep
+ke2pl
+k2er.
+ke1rad
+k2erc
+k3erhö
+ke5rin.
+ke6r5innu
+k2erko
+k2erl
+k3erleb
+k4erlö
+k2ern
+ker4neu
+k1ero
+k2ers.
+ker3z2
+2k1erzi
+ke4t1a
+keten3
+ke2t3h
+ke1up
+keu6schl
+2k1e2x
+2k5f
+kfi2s
+2k1g4
+2k1h4
+kho3m
+ki3a6
+ki1ch
+ki2d
+ki3da
+2k1ide
+ki3di
+ki3d4r
+ki2el
+kie2l3o
+ki2en
+kif4
+kif2a
+ki1fl
+ki1fr
+ki3k4
+2ki3l2a
+ki5li
+ki3lo
+3kin.
+k2ing
+2kinh
+k2ini
+k2inn
+ki3n4o
+2k1inse
+kin3sh
+2k1int
+ki3o
+3kirc
+ki5s2p
+2kiz
+ki3zi
+2k5j
+2k1k
+k2l2
+4kl.
+2kla.
+klan2
+k5last
+2k5le.
+kle5ari
+4k5leh
+k4leid
+4k5leit
+k3lem.
+2k3ler
+kle2r3a
+2k3leu
+kle3us
+k5lich
+3klim
+k4lin
+k4lip
+k4lir
+k4lisc
+klit2s
+4k5liz
+2k3loc
+klo2i3
+k4lop
+k3lu
+k3lüc
+k3ly
2k1m
-kmani5e
-kn8
-6kner
-k2ni
-knä8
-1k2o
-ko1a2
-ko6de.
-ko1i
-koi8t
-ko6min
-ko1op
-ko1or
-ko6pht
-ko3ra
-kor6d5er
-ko5ru
-ko5t6sc
-k3ou
+k2n2
+3k4nab
+k4nei
+2k3ner
+kno2bl
+2knor
+3k4nü
+1ko
+ko5ad
+ko2al
+ko5ar
+ko3be
+2kobj
+2k1o2fe
+koff4
+koh3le
+koh3lu
+ko1i2
+kol4k5
+3kom
+ko2min
+ko4mu
+k2on
+kon3d
+ko3n2e
+kons4
+ko3nu
+2kop.
+ko1pe
+kop4f3en
+kopf5err
+ko3r2a
+4k1orc
+kor6derg
+ko3ri
+kor3m
+3kort
+k2os
+ko3ta
+kots2
+kot3sp
+2k3ou
3kow
-6k5ox
-2k1p2
+k1o2x
+3kö
+kö2f
+4köl
+2k3p2
k1q
-1kr8
-4k3rad
-2k1rec
-4k3reic
-kre5ie
+k2r4
+2k3rad
+k3rats
+2k1raum
+k4raz
+2krät
+2k3räum
+2kre.
+kreb4
+2k5rec
+2krede
+2kreg
+k3reic
+kre1i2e
+k3reih
+2k3rh
2krib
-6krig
+4k3ric
+k3ries
2krip
-6kroba
-2ks
-k1sa
-k6sab
-ksal8s
-k8samt
-k6san
-k1sc
-k2s1ex
-k5spat
-k5spe
-k8spil
-ks6por
-k1spr
-kst8
-k2s1uf
-2k1t
-kta8l
-kt5a6re
-k8tein
-kte8re
+k4ron
+kro5st
+2kruf
+krü1b
+4ks
+ks1amt
+k2san
+k2sau
+ks2än
+ksch4
+ks1e2b
+k2s1em
+k2sent
+ks1erl
+k2s1ers
+k2s1erw
+k2s1id
+k2s1in
+k2s1o2
+k3sof
+k5son
+ks1pa
+k3spe
+ks2por
+ks3s2
+kst4
+k5stab
+ks3tanz
+kstat4
+k4s1tis
+k4s1tor
+k4strä
+k2s1tum
+k2s1u
+k1sy
+ks2zen
+4k1t
+k2t3ad
+k3taf
+kt1akt
+k3tal
+kt1am
+kt1an
+kt3anz
+k2t3a2r
+kt5a4re
+k5tat
+k2t1au
+ktä3s
+kte3en
+k2t1ei
+k2temp
+k2tent
+k4t3erfo
+k2t1erh
+k5ters.
+k2tex
k2t1h
-k8tinf
-kt3rec
-kt1s
-1ku
-ku1ch
-kuck8
-k3uhr
-ku5ie
-kum2s1
-kunfts5
-kun2s
+k2t1id
+k2t1im
+k2t1ing
+kt1ins
+k2t1of
+k3top
+kt1ope
+k4torga
+kt3orie
+k2tö
+k3t4ra
+kt5ras
+kt5rau
+kt4ro
+kt3run
+kts4
+kt3se
+kt3sp
+kt5st
+kt3su
+kt3sz
+kt3t2
+k2tuns
+kt3z
+ku1c
+kuh5
+2k1uhr
+ku3la
+ku3l2e
+ku3l2i
+2kulp
+2k3uml
+kum2s
+k2u3n2a
+kun6s
kunst3
-ku8rau
-ku4ro
-kurz1
-ku1st
-4kusti
-ku1ta
-ku8ß
-6k1v
-2k1w
-ky5n
-2k1z
-1kä
-kä4m
-4k3ämi
-käse5
-1kö
-kö1c
-kö1s
+2kunt
+2k1up.
+ku2rei
+kuri2e
+kuri4er
+ku2ro
+kur4sp
+kur4s3t
+kur4zen
+ku4schl
+ku2so
+ku2sp
+ku5s4t
+ku2su
+ku2ß
1kü
+2küb
+kü1bel
kü1c
-kür6sc
-kü1s
-1la.
-8labf
-8labh
-lab2r
-2l1abs
-lach3r
-la8dr
+kür2s
+2k1v
+2k1w
+kwa5re
+ky3t
+2k5z2
+6l.
+5la.
+2lab
+la3ba
+4labb
+4la2ben
+3labi
+6l1abl
+3la3b2o
+3l2a1b4r
+4l3abs
+4labw
+la1ce
+1lad
+la3den
+la3d2i
+l3adl
+4ladm
+4l3adr
5ladu
-8ladv
-6laff
-laf5t
+l3adv
+1la1e
+laf3ta
+la2ga
+la3ge
+lag5eis
la2gn
-5laken
-8lamb
-la6mer
-5lampe.
+lago4
+la4g1ob
+la2gr
+lag5se
+2la1ho
+1lai
+lai4s1t
+1laj
+la3ke
+la2k1i
+3l2akk
+la1k4l
+2l1al
+4lall
+4l3alp
+l2a3ma
+l2ami
+la3min
+lam4ma
+3lammf
+l4amp
2l1amt
-la1na
-1land
-lan4d3a
-lan4d3r
-lan4gr
-8lanme
-6lann
-8lanw
-6lanä
-8lappa
-lap8pl
-lap6pr
-l8ar.
-la5ra
-lar4af
-la8rag
-la8ran
-la6r5a6s
-l3arbe
-la8rei
-6larm.
-la8sa
-la1sc
-la8sta
-lat8i
-6l5atm
-4lauss
-4lauto
-1law
-2lb
-l8bab
-l8bauf
-l8bede
-l4b3ins
-l5blo
-lbst5an
-lbst3e
-8lc
-l1che
-l8chert
-l1chi
-lch3m
-l5cho
-lch5w
-6ld
-l4d3ei
-ld1re
-l6düb
+lamt4s
+la4mun
+la2na
+la3nac
+l1anal
+2lanb
+3l2and
+lan2d3a
+lan4dad
+lan6d5erw
+lan6d5erz
+land5inn
+lan2dr
+2l1anf
+lang5s2
+l1anh
+4lanl
+2l3ann
+l1anp
+2lans
+4lanw
+lanz1w
+3lao
+l1a2po
+lap4pl
+la2r1an
+2l1arb
+l1arc
+la2r1ei
+la6rene
+l4ar3g
+lar3ini
+2l1art
+lar3th
+l3arti
+la3ru
+la5se
+2lash
+la2so
+2la4sp
+5lasseri
+5lassern
+5lassers
+la4sta
+la5ste
+las3tei
+last1o
+la4str
+las3tur
+la4stü
+la2ß
+laß3th
+lat2a
+la3te
+la4tel
+4l3ath
+la2t3ra
+lat4s
+2latta
+lat4tan
+lat4t3in
+lat4t3r
+laub4se
+lau4fer
+lau4fo
+l2aufz
+l1ausg
+2l1ausl
+2l1ausr
+2l1auss
+lau5str
+l1ausz
+2lauto
+2law
+1lax
+la3xa
+lä1c
+4läf
+2l1ähn
+3länd
+lär2m1a
+l1ärz
+lä4s1c
+4lät
+4läub
+4läuc
+4läue
+3läuf
+1là
+4l1b2
+l3bac
+lb3af
+lb3am
+lb3ang
+lb3arb
+lb5b
+l2b3ede
+lbe4n
+l4b3eta
+l2b3id
+l2b5ins
+lb4lat
+l3blä
+lb3le
+l2b5li
+l3blo
+lb3ohn
+l4bre.
+lb3rit
+lb4ro
+l3brü
+lb5sa
+lb5sp
+lbst1e
+l2b5uf
+lb5v
+4l1c
+l3che
+l5chi
+lch3l
+lch3r
+lch3ü
+lch1w
+l3co
+4l1d
+ld3a2b
+ld1ack
+l4d3ad
+lda2g
+l2d1ak
+ld1al
+l3dam
+ld1amm
+l2d5a2n
+ld1a2r
+ld5ari
+l3das
+ld1au
+ld1är
+l3de.
+ld1ei
+l4dele
+l3der.
+l2derd
+l3derl
+l3dern
+l2d1erp
+l2d1e4se
+l2dex
+ldi2c
+l2d1id
+l2d1im
+ldo2r
+l3d2os
+l3dö4
+l2d3r
+ld1ra
+l4dran
+ld1rä
+l4dre
+ld5rea
+ld1ri
+ld1ro
+ld1rö
+ld3sa
+ld3ska
+ld3sp
+lds2t
+ld1t4
+l2d1um
+l2dü
+1le
+3le.
+le3ar
+lea5s
+3le3ba
+leben4s3
le2bl
-le8bre
-lecht6s5
-led2r
-6leff
-le4gas
-1lehr
-lei6br
-le8inf
-8leinn
-5leistu
-4lektr
-le6l5ers
-lemo2
-8lemp
-l8en.
-8lends
-6lendun
-le8nend
-len8erw
-6l5ents
-4l3entw
-4lentz
-8lenzy
-8leoz
-6lepi
-le6pip
-8lepo
-1ler
-l6er.
-8lerbs
-6l5erde
-le8reis
-le8rend
-le4r3er
-4l3erg
-l8ergr
-6lerkl
-6l5erzie
-8lerö
-8lesel
-lesi5e
-le3sko
-le3tha
-let1s
-5leuc
-4leuro
-leu4s3t
+2lec
+lech1a
+le2chi
+lech5t4e
+le3de
+le2e
+le3ei
+le3en.
+le3f4a
+3lefo
+le2g3as
+le2gä
+le2g5l
+3le3gr
+3lehr
+leh3r4e
+3lei.
+lei2br
+l2eic
+l2eid
+4l1eig
+l2ein.
+l2eind
+l2eine
+l2eint
+leis6s5er
+l4eist
+l2eit
+lei8t7ersc
+lekt2a
+2lektr
+3lela
+le2le
+2l1elek
+le3len
+le3ler
+le3les
+3l2eli
+lel3s
+3lemes
+le2m1o2
+4lemp
+l2en.
+le4nad
+le4nä
+4lendet
+2lendu
+3lene
+le4n3end
+4lenerg
+le4ners
+l2enf
+le3ni
+len3kl
+2l1enni
+l2e2no
+len5st
+len3sz
+2l1ents
+4lentw
+lent4wä
+5lentwet
+len2zi
+le1os
+2lepo
+lepositi8
+l2er.
+l2e1r2a
+le2r3a4g
+le2r3au
+ler5b6
+4l3ereig
+le4r3eim
+le4rers
+2l1erfo
+l2erfr
+l2erfü
+3lergeh
+4l3ergen
+3l4ergew
+2l1ergi
+lerk4
+l2erka
+l2erko
+l2erle
+le1ro
+2l1er2ö
+3l2erra
+l4ers.
+lers4k
+le2ru
+le3rung
+l1erz
+l2erza
+les4e
+2lesel
+le3ser
+le5sh
+lesi1
+le3s2k
+les7sa
+leste3
+4lesw
+2lesy
+le2tat
+2le3th
+2leto
+le2u
+4leud
+2leuro
+3leut
+3leva
+2lex
+3lexd
le5xe
-6lexp
-l1f
+le2xis
+2l1f
+l3fa
+l5fah
+l2f1ec
+lfe1e
+l4f1eis
+l3flä
+lf3lo
+l3flu
+lf3ram
+lf2s
+lfs1e
+lfs3tau
+lfs1tr
+lf2tr
+lf4u
+lfur1
2l1g
-lgend8
-l8gh
-lglie3
-lglied6
-6l1h
+lge3ra
+l2geti
+lg3lo
+lg3re
+l3gro
+lg4sc
+lg6st
+2l1h2
+l3he
+3lhi.
1li
-li1ar
-li1as
-2lick
-li8dr
-li1en
-lien6n
-li8ers
-li8ert
-2ließ
-3lig
-li8ga8b
-li1g6n
-li1l8a
-8limb
-li1na
-4l3indu
-lings5
-4l3inh
-6linj
-link4s3
-4linkt
-2lint
-8linv
-lion5s6t
-4lipp
+3li.
+l4ia
+li1ac
+li1ak
+li3bi
+li1c
+5lichem
+5licher
+li3chi
+6lick
+li3da
+2l1i2do
+3lie.
+liebe4s
+lie2n
+li3ene
+li5enp
+lie4s1c
+li3fa
+li4fe
+5lig
+li3g4n
+lig3s2
+li3ke
+li3ki
+li3kli
+li2kr
+lik2sp
+lik4ter
+li3l2a
+li3li
+4lim
+li3m2a
+lima3g
+2limb
+5limo
+2limp
+li3na
+lin1al
+2l1indu
+li4nef
+li4neh
+li2nep
+li4nes
+2l1inf
+ling6s
+2l1inh
+li5ni
+2l1i6nit
+2l1inj
+lin2k3a
+3linn
+li2nol
+l2insa
+l2insc
+2l1int
+l1inv
+4linz
+li2o
+lion5s
+li2p5a
5lipt
-4lisam
-livi5e
-6l1j
-6l1k
-l8keim
-l8kj
-lk2l
-lko8f
-lkor8
-lk2sa
-lk2se
-6ll
-l1la
-ll3a4be
-l8labt
-ll8anl
-ll1b
-ll1c
-ll1d6
-l1le
-l4l3eim
-l6l5eise
-ller3a
-l4leti
-l5lip
-l1lo
-ll3ort
-ll5ov
-ll6spr
-llte8
-l1lu
-ll3urg
-l1lä
-l5lü
-l6lüb
-2l1m
-l6m5o6d
-6ln
-l1na
-l1no
-8lobl
-lo6br
-3loch.
-l5o4fen
-5loge.
-5lohn
-4l3ohr
-1lok
-l2on
-4l3o4per
+3lis.
+li3s2a
+li4schu
+6lish
+2l1isl
+2l1i2so
+liss4
+li2tal
+li3te
+li1t2h
+lits2
+lit5st
+lit3sz
+li2tur
+3liu
+2lixi
+li2za
+lizei5
+4l3j
+2l1k
+lk1alp
+l3k4an
+l3kar.
+lk1arm
+lken3t
+l2kep
+lk3lo
+l3k6lu
+lk3nu
+lkor2b1
+l3k4ra
+lk3ro
+l2k3ru
+lk4s1
+lk5sä
+lk5ste
+l3k2ü
+lkü1b
+2l1l
+ll1abb
+ll1abe
+ll5aben
+ll1abt
+l3labu
+ll1aff
+ll1akt
+l3l2al
+l4l3a4m
+l2l3anz
+l3lap
+ll1arm
+l4l3art
+l2l1au
+ll4aufe
+ll3aug
+l4l3aus
+l2l1äm
+llb4
+ll3d
+l2leb
+l3lec
+ll1ech
+l2l1ef
+ll1eim
+llei4ne
+l3l2em
+l3len.
+lle6n1a
+ll3endl
+ll3endu
+llen3g
+l3ler.
+lle2r3a
+l4l3ergo
+ll3ernt
+l2lerz
+ll2es
+llg4
+l6lieg
+ll1imp
+l2l1ind
+lli5ne
+l2l1ins
+ll5m
+l2l1ob
+l2l1of
+ll1opf
+l2l1o2r
+l2l3ou
+ll1ov
+l4l1öf
+ll3ö6se
+ll3sh
+ll3s2k
+ll4s3tor
+llt4
+ll3th
+llti2m
+ll3tr
+llt5s2
+ll1ur
+l3lus
+llust6
+ll3z2
+4l1m
+lm3a2b
+lm1aka
+l2m1arc
+lm1aus
+lm3eins
+l2m1e2p
+l2m1erz
+lmin2
+lm1ind
+lm1ins
+lm1orc
+l2möl
+lm3p
+lmpf4
+lm3sz
+lm3th
+4ln
+lna6r
+ln3are
+l3n2e
+l3ni
+l3no
+l1nü
+1lo
+3l2ob.
+3lobb
+2lobj
+2lo2bl
+l2obr
+lo3b4ri
+lof4
+4l1o2fe
+lo1fl
+lo3ha
+loh2e
+2l1oh4r
+3lok
+lo2k3r
+lol2a
+l3oly
+lo2min
+l4on
+lo4n1o
+lo2o
+2lope
+2lopf
+2lopt
lo1ra
-2l1ord
-6lorg
-4lort
-lo1ru
-1los.
-lo8sei
-3losig
-lo6ve
-lowi5
-6l1p
-lp2f
-l8pho
-l8pn
-lp4s3te
-l2pt
-l1q
-8l1r
-2ls
-l1sa
-l6sarm
-l1sc
-l8sec
-l6s5erg
-l4s3ers
-l8sh
-l5s6la
-l1sp
-ls4por
-ls2pu
-l1str
-l8suni
-l1sü
-2l1t
-lt5amp
-l4t3ein
-l5ten
-l6t5eng
-l6t5erp
-l4t3hei
-lt3her
-l2t1ho
-l6t5i6b
-lti1l
-l8trö
-lt1sc
-lt6ser
-lt4s3o
-lt5ums
-lu8br
+lo4rä
+2lorc
+lo3ren
+4l1or3g
+lo3ro
+3lorq
+3los.
+lo4sa
+3lose
+los3se
+lost4
+lo4steu
+lo4s3to
+lo4s3tr
+lo2ßu
+lo2ta
+lo3th
+loti4o
+2lo2v
+lo3vi
+2lox
+lö2b3
+lö3du
+3lö2f
+4l1öfe
+l3öhr
+2l1öl
+5lösc
+4löß
+2l1p
+lpe2n3
+l3p2f
+l4p1ho
+l3prei
+l3pro
+lp3t4
+2l1q
+lque3r
+2l5r2
+lrat6s
+lro3m
+lru3t2
+lrü1b
+4l1s
+l3s2ac
+l2s3a2d
+l7s2al
+l4s1amb
+l2sann
+l3sare
+l2sau2
+l4schin
+l5se.
+l2s1e2b
+ls1ec
+ls1ein
+l2s1em
+ls3ere
+ls1erg
+ls1erl
+l2s1ers
+l2s1erw
+l5ses
+l3sex
+l4sha
+lsho2
+l2s1imp
+ls2log
+ls3ohne
+l4s3ort.
+ls2pi
+l3s2po
+l3s2pu
+ls3s2
+lst2a
+l5s2taf
+ls3täti
+l5stei
+l5stel
+l5ster
+l4s1tis
+l4stit
+ls1um
+l3sur
+l3sus
+ls2zen
+6l1t
+lt1ac
+lt1ak
+lt1am
+l3tami
+l3tan.
+lt3and
+lt1ang
+l3tar
+lt1art
+l3tas
+l3tat
+l4t3ato
+lt1au
+l3te.
+l5tef
+lt1eh
+lt1ein
+l2t1eis
+lte5lei
+l3t2en
+l5ten.
+lter3a
+l3t4erg
+lt2erö
+lter4sp
+l2t3esk
+lte5str
+l3tet.
+lt3e2th
+l2t1eu
+l2t1h
+l4t5hei
+l3thu
+ltimo4
+l2tob
+l3toc
+lt1of
+l3ton
+l2t1op
+l2t1o2ri
+lto3we
+lt1öl
+lt1ös
+lt3öt
+lt4rak
+ltra1l
+l3trä
+lt3räu
+l2t3re
+lt4rie
+lt3roc
+lt3ros
+l2t3rö
+lt5sc
+lt2se
+lts1ei
+lt3spa
+lt3spr
+lt4stab
+lt5ste
+lt4stoc
+lt3t
+lt1uh
+l2t1um
+ltu4ran
+ltu4rer
+ltu2r3i
+lt3z2w
+1lu.
+lu1an
+4lu2b1
+luba2
+lub3l
+lub3r
+lubs2
+lub3sz
+lub3u
lu2dr
-lu1en8
-8lu8fe
-luft3a
-luf8tr
-lu6g5r
-2luh
-l1uhr
-lu5it
-5luk
-2l1umf
-2l1umw
-1lun
-6l5u6nio
-4l3unte
-lu5ol
-4lurg
-6lurs
-l3urt
-lu4sto
-lu3str
-lu6st5re
-lu8su
-lu6tal
-lu6t5e6g
-lu8terg
-lu3the
-lu6t5or
-lu2t1r
-lu6ß5
-l1v
-lve5r6u
-2l1w
+lu2es
+lu2f2
+2l1ufe
+lu3fo
+luft1a
+luft1e
+luft5r
+lu2ga
+lu2g5e2b
+lu2ger
+lug5erp
+lug5l
+lu2go
+lu2g3r
+lug3sa
+lug3sp
+lu2gu
+2l1uh
+lu1id.
+lu1is.
+lume2
+2lumf
+2luml
+l2ump
+l1ums
+l1umw
+1lu4n
+2l1una
+2l1unf
+4l1uni
+2lunt
+2lunw
+lu4pf
+2lur
+lu1rä
+l1urn
+l1urt
+2luse
+lu2sp
+lus4sä
+lus4ser
+lus4si
+lus2s1o
+lus2s3p
+lus6st
+lus8suc
+5lus2t
+lu4st3a
+lu6stä
+lust3re
+lu2s1u
+lu2ß1
+lu2t1a
+lut3erg
+lut1o2f
+lu2top
+lu2t5r
+3lux
+2lüb
+5lüd
+lüh1l
+2l1v
+l2vr
+2l3w
+l5wa
+lwa5re
1ly
-lya6
-6lymp
-ly1no
-l8zess
-l8zo8f
-l3zwei
-lz5wu
-3länd
-lä5on
-lä6sc
-lät1s
-5läuf
-2läug
-läu6s5c
-lä5v
-l1öl
-1lös
-lö1ß6t
-6l1übe
+ly1ar
+ly3c
+ly3et
+2lym
+3ly3n
+ly1o
+ly3th
+ly3u
+2l1z
+l3z2an
+lz1ar
+lz1erz
+lz1ind
+lz1o2f
+l2zö
+lzt2
+lz3th
+l2z1u4fe
+lzug4s
+l2z1w
+lz2wec
+6m.
1ma
-8mabg
-ma5chan
-mad2
-ma5el
-4magg
-mag8n
+maa4
+2m1ab
+m2abe
+ma1bl
+3m2a1b4r
+mach4tr
+ma2ci
+mad4
+ma3da
+ma3de
+ma4d2s
+ma1e
+ma2es
+ma1f
+2m1agg
+magi5er.
+magi5ers
+ma5g6n
+2m1ago
+3mah
+ma3ha
+mah4ler
+mah3li
+mai4se
+2m1akt
ma1la
-ma8lau
-mal5d
-8malde
-mali5e
-malu8
-ma8lut
-2m1amp
-3man
-mand2
+ma2l1ak
+ma2lan
+ma2l5at
+ma2lau
+ma3law
+mal3d
+mali3er
+mal3lo
+2mallt
+malu2
+ma2l3ut
+mam3m
+2m1anal
+ma2nau
+2manb
+man2ce
+mand4
+man3do
man3ds
-8mangr
-mani5o
-8m5anst
-6mappa
-4m3arbe
-mar8kr
-ma1r4o
-mar8schm
-3mas
-ma1sc
-ma1tö
-4m5auf
-ma5yo
-2m1b
-mb6r
-2m1c
+man3ers
+ma2net
+mang2
+2mangr
+2manl
+m4ann
+2mans
+2mantw
+manu3
+2manz
+ma2or
+m4app
+2m1arb
+mar3g2
+ma3ri
+3mark
+4mar4o
+maro3d
+4marr
+mar6schm
+mar5te
+ma3ru
+3m4as
+ma3s2p
+mas4t
+3maß
+m4at
+ma2tan
+ma2tä
+mat4c
+ma2tel
+ma4t3erd
+mats2
+mat3se
+mat3sp
+3maue
+2m1au2f
+ma3un
+2mausg
+m4ay
+ma1yo
+ma3zu
+1mä
+m1ähn
+mä1i2
+6m1änd
+m1ärg
+mät4
+mä1tr
+mäu4s1c
+2m1b4
+mb2a
+mbe2e
+m3br
+2m3c
2m1d
-md6sä
+md1ar
+m2d1ä
+md1ei
+md3s2e
+m2d1um
+mdu3s
1me
-me1ch
-me5isc
-5meld
-mel8sa
-8memp
-me5nal
-men4dr
-men8schl
-men8schw
-8mentsp
+meb6
+me1c
+medi3
+medi5e6
+medien3
+2medy
+me1ef
+me3e2n
+mega5
+3meh
+2m1eif
+m2eil
+me1i2so
+m2eist
+2mej
+me3lant
+3meld
+me2lek
+melet2
+2m1elf.
+melt4
+6m5eltern
+mel3tr
+2m1e2mi
+3m2en
+me3nal
+men3ar
+men3au
+m3endl
+men3gl
+me3nor
+men4sk
+men2so
+men3ta
+4m3entn
+4mentw
+me1o
+2me3ou
+2meö
+3mer.
me1ra
-mer4gl
-me1ro
+mera3li
+me2r3ap
+mer2er
+4m3ergän
+me5ric
+3merin
+mer2kl
+3mers
+me3run
+mer3z4en
3mes
-me6s5ei
-me1th
-me8ß
-2m1f6
-2m1g
+me2s3a
+me2sä
+mes2e
+4me5sh
+4mes2sa
+mes6sig
+mes2s1o
+mess1p
+meste2
+me4str
+4mesu
+3me2ß1
+me3t4a
+mete2
+me3th
+meu1
+2mex
+1mé
+2m3f
+mfi4l
+4m1g2
2m1h
1mi
-mi1a
-mi6ale
-mi1la
-2m1imm
-mi1na
-mi5nü
-mi4s3an
-mit1h
-mi5t6ra
-3mitt
-mitta8
-mi6ß5
-6mj
-2m1k8
-2m1l
-2m1m
-m6mad
-m6m5ak
-m8menth
-m8mentw
-mme6ra
-m2mn
-mm5sp
-mm5ums
-mmut5s
-m8män
-m1n8
-m5ni
+3mi.
+mi1ak
+mi3an
+mibi3e
+mi1ch
+mi3da
+mie3dr
+mi2e1i
+mi2er
+miet1i
+3mig
+mi2ki
+mi2ku
+mi3l2a
+3mil4c
+milch1
+2m1imp
+min5de
+min2e
+mi3neu
+min2ga
+mi3ni
+mi3n2o
+3miri
+3mirs
+mir3sc
+3mirw
+mi2sa
+mise1
+mi3sp
+mis2s1c
+mis6st
+mi2ß1
+3mi2t1
+mi3te.
+mit3es
+mit3h
+mi3ti
+mit5s2
+mi5tsu
+4mitz
+2m1j
+6m1k4
+m3ka
+mk5re.
+6m1l
+m3la
+m3le
+m5li
+mlö3
+4m1m
+mma4ge.
+m2m1ak
+m2m1al
+m2m1ang
+mm1ans
+mm1anz
+m2m1au
+m2m1ei
+mmeis3t
+mme4lin
+mme4na
+mme2ra
+mme4rec
+mmer3k
+mm1inb
+mm1inf
+mm1inh
+mm1ins
+mm1int
+mmi3sc
+mm3p
+mm2s2
+mm3si
+mm3sp
+m2m3um
+mmül2
+2m1n2
+m4nesi
+m3ni
1mo
-mo5ar
-mo4dr
-8mof
-mo8gal
-mo4kla
-mol5d
+mo4a3
+2mobj
+3mod
+mo2dr
+2mog.
+mo2gal
+3moh
+mo2i
+moi5r
+mo2k1l
+4mol.
+3mom
+mo5m4e
m2on
-mon8do
-mo4n3od
-mont8a
-6m5ony
-mopa6
-mo1ra
-mor8d5a
-mo1sc
-mo1sp
-5mot
-moy5
-2mp
-m1pa
-mpfa6
-mpf3l
-mphe6
-m1pi
-mpin6
-m1pl
-mp2li
-m2plu
-mpo8ste
-m1pr
-mprä5
-mp8th
-mput6
-mpu5ts
-m1pö
-8m1q
-2m1r
-2ms
-ms5au
-m1sc
-msch4l
-ms6po
-m3spri
-m1str
-2m1t
+mo3ne
+mo4n1er
+mon3su
+3mo2o
+2mo1pe
+mo2per
+2mopt
+mo1r4a
+mor5ar
+2morc
+mor4d3a
+mo4sk
+mo3sp
+m1o2x
+mo1y
+1mö
+möbe2
+mö2c
+4mök
+2m1p
+mp4f3erg
+mpf3erp
+mpf3err
+mp4f3erz
+mp2fl
+mpf3li
+mpf1or
+mp6lif
+mp3lu
+mp3ta
+2m1q
+4m3r
+4m1s
+msa3l
+m2san
+ms3and
+m4sap
+ms3as
+m5sat
+m2sau
+m3sc
+m5sche
+m4sco
+m2s1ef
+ms1erf
+ms1erw
+ms1ini
+mso2r
+ms1ori
+m2spä
+ms2po
+ms3s2
+m4stal
+m4strä
+m3stu
+ms1um
+m2sü
+m3süc
+m3sy
+ms2ze
+4m1t
+mt1ab
+mt1ak
+m3t2am
mt1ar
-m8tein
+mt3are
+mt1ein
+mt1elt
+m2t1erf
+m2t1erg
+m2t1erl
+m2t1ers
+m2t1ert
+m2t3eta
+m2t1eu
m2t1h
-mt6se
-mt8sä
-mu5e
-6m5uh
-mumi1
-1mun
-mun6dr
-muse5e
-mu1ta
-2m1v
-mvol2
-mvoll3
-2m1w
-1my
-2m1z
-mä6kl
-1män
-mä1s
-mä5tr
-mäu4s3c
-3mäß
-möb2
-6möl
+mt5ho
+m2t1im
+m2t1ins
+mt1int
+mti2s
+mt1ös
+mt2s
+mt3sc
+mt7sco
+mts1e
+mt3s2ka
+mts1p
+mt3spa
+mt3st
+mt3t
+mt1um
+mtu3re
+mt1urt
+mt3z2
+1m2u
+mu1a
+2m3uh
+mu3la
+2muls
+m3umg
+3mun
+mu3na
+mun2d1a
+mu3ne
+4m3unf
+4m3ungeb
+m4unk
+mu3no
+mur3ma
+mu3ru2
+mu4r1uf
+mu4s1a
+mu2s1o
+mu2sp
+mus4st
+mu6s1to
+mu4str
+mu2su
+mu2t1au
+mut4s3
+mut5sc
1mü
-5mün
+2müb
+3mün
3müt
-1na.
-n5ab.
-8nabn
-n1abs
-n1abz
-na6bä
+2m1v
+mvol2l1
+2m1w2
+mwel4
+1my3
+my4an
+2m1z
+mzug4
+6n.
+1na
+5na.
+2n1ab
+3naba
+na3ber
+4nabw
na2c
-nach3e
-3nacht
-1nae
-na5el
-n1afr
-1nag
-1n2ah
-na8ha
-na8ho
-1nai
-6nair
-na4kol
-n1akt
-nal1a
-8naly
-1nama
-na4mer
-na1mn
-n1amp
-8n1amt
-5nanc
-nan6ce
-n1and
-n6and.
-2n1ang
-1nani
-1nann
-n1ans
-8nanw
-5napf.
-1n2ar.
-na2ra
-2n1arc
-n8ard
-1nari
-n8ark
-6n1arm
-5n6ars
-2n1art
-n8arv
-6natm
-nat6s5e
-1naue
+nach1
+nachs2
+5nachw
+4n3add
+4n3adr
+na1e
+n1af
+na1f4r
+3nag
+5n2ah
+na2h1a
+n4ahm
+n3ahn
+3nai
+n3aig
+n3air
+2n1ak
+na2ka
+3nako
+n3akt
+n2al.
+nal1a2
+na2l3ad
+na2lä
+5n2ald
+nal3ent
+na2let
+nal3k
+nal3l2a
+nalmo2
+n2als.
+nal3t4
+na2lu
+2naly
+n4am.
+3n2ame
+5na3me.
+5n4amen
+4n3a2mer
+5nami
+na3m4n
+3namo
+nam2s
+2n3amt
+namt4s
+n1an
+4na2na
+4n3anb
+n2anc
+4n3ang4
+4nani
+4nank
+4nanl
+5nann
+na3no
+4nanr
+2n3ans
+4nantr
+2n3anw
+n1ar
+5n4ar.
+na2r1a
+n4ard
+3nare
+5nari
+n2arl
+n3arl.
+2narm
+2n3art
+na3ru
+3nas
+na4schw
+4n3asp
+4nasy
+nasyl2
+3naß
+3nat
+5nat.
+5nate
+na3t2h
+5nats
+nat4sa
+nat6s3c
+nat5st
+4natt
+n1au
4nauf
+nauf4fr
n3aug
5naui
-n5auk
-na5um
-6nausb
-6nauto
-1nav
-2nax
-3naz
-1naß
-n1b2
-nbau5s
-n1c
-nche5e
-nch5m
-2n1d
-nda8d
+3n2aul
+4n3ausb
+nau3sc
+4n3ausg
+n3ausl
+4n3auss
+4n3ausw
+nau3te
+navi5er.
+navi5ers
+1nä
+n2äc
+3näe
+3näh
+n1ähn
+2n1ä2m
+2n3än
+näng5
+n1ärz
+2nä2s
+nä4sc
+3näß
+2näu
+5nä1um
+4n7b4
+nbau3sc
+nbe2in
+nbe5n
+nber2e
+4n1c
+nc5ab
+nce4n
+n3cer
+n3ces.
+n3che
+nch3m
+n3chu
+n5cu
+6n1d
+nd1ab
+n3daf
+nd2ag
n2d1ak
-nd5ans
-n2d1ei
-nde8lac
-ndel6sa
-n8derhi
-nde4se
-nde8stal
-n2dj
-ndnis5
-n6d5or6t
-nd3rec
-nd3rot
-nd8samt
-nd6sau
-ndt1h
-n8dumd
+n4dakt
+nd1ana
+nd1ann
+n2d1anz
+nd1arb
+nd3arr
+nda3ru
+n2d1au
+nde4al.
+nde3alt
+nd1ei
+nd3ei.
+ndel4st
+n4d3ents
+nde3o
+n5der.
+n5deri
+nde4rob
+n3de4s
+ndes1e
+ndni4
+n3dol
+nd1op
+n2d1or
+nd3rat
+nd3räu
+n2d3re
+nd3rob
+nd3rol
+nd3ros
+n2d3rö
+n4drui
+n4d5run
+nd2sor
+nd2spr
+nds3tau
+nd5ste
+nd2sum
+nd1t4r
+n2dum
+nd2ums
+n2d1und
+n2dü
1ne
-ne5as
+3ne.
+ne2a
+ne3am
+ne3an
+ne3as
+ne3at
+ne3au
ne2bl
-6n5ebn
+2n1ebn
2nec
-5neei
-ne5en
-ne1g4l
-2negy
-4n1ein
-8neis
-4n3e4lem
-8nemb
-2n1emp
-nen1a
-6n5energ
+3neca
+2ne2e
+nee1i4
+ne3ein
+ne3en
+nee3t
+n1ef
+3nefe
+4neff
+ne3g6
+3n2eh
+n3ehe
+4ne2he.
+6n3ehr
+2n1ei
+n2eid
+6neif
+3neigt
+4nein
+6n3eing
+6n3eink
+ne2ke
+nek3t
+ne2l
+nel3b
+4n1ele
+ne3len
+ne3li
+nel4la
+3ne3l2o
+ne3lu
+5n2em.
+2n1emb
+n1e2mi
+2n3emp
+2n1ems
+3nen
+n2en.
+ne4n3a
+nen3dam
+4n1endb
+4n1endd
+4n1endf
+n1endg
+4n1endh
+4n1endk
+4n1endp
+4n1endt
+4nendu
+4n1endw
+ne2n1e2b
+nen3ei
+ne4nene
+ne2ni
nen3k
-8nentb
-4n3en3th
-8nentl
-8n5entn
-8n5ents
+ne2no
+nen5s4e
+nen3sk
+nen5st
+5n2en5t2a
+n1entb
+4n3entl
+4n1entn
+4n3ents
+4nentw
+6nentz
+ne2n1u
+n2env
+ne2ob
+ne1os
+ne4pf
+2nepo
+ne2pos
+3n2er.
ne1ra
-ne5r8al
-ne8ras
-8nerbi
-6n5erde.
-nere5i6d
-nerfor6
-6n5erhö
-8nerlö
-2n1err
-n8ers.
-6n5ertra
-2n1erz
-nesi3e
-net1h
-neu4ra
-neu5sc
-8neuß
-n1f
-nf5f
-nf2l
-nflei8
-nf5lin
-nft8st
-n8g5ac
+ne2rab
+ne5r4al
+ne2r3am
+ne2r3ap
+ne2rau
+4n3erbi
+2n1erf
+6n3erfo
+nerfor4
+4n3erfü
+n1erg
+2n1erh
+n3erhö
+ne3ri
+n1erk
+n3ermä
+ner4mit
+2nermo
+3nern.
+4n3ernt
+ne1rös
+n2ers.
+2n3ersa
+ner8schle
+3n4ert.
+4n3ertr
+ne2rup
+n2erv
+4n1erz
+3n2es
+n4es.
+ne3san
+ne2sä
+nes2c
+nesi1e
+nes2k
+ne3ska
+ne2s1o
+ne2s1p
+4n3essi
+5nest
+nes3tei
+net1ak
+net1an
+ne2tap
+n3etat
+net1au
+ne2th
+net3ha
+ne2tre
+2n3e2tu
+net2zi
+ne2u
+neu3c
+neu3g
+5n2ew
+2n1ex
+3nez
+1né
+2n1f
+n3fä
+n3f2e
+n5fi
+nfi3le
+nf3läd
+nf3lin
+n3f2o
+nf4r
+nft2o
+nft4s3
+4ng
+ng2abs
+n2g1ac
+n2g3ad
+nga2ge
+n2g1ak
+n2g1a2m
+n2g1and
+n4ganl
+ng1anz
+n3gap
+n4garb
+n3gas
+n2g1äl
ng5d
-ng8en
-nge8ram
-ngg2
-ng1h
-n6glic
-ng3rip
-ng8ru
-ng2se4
-ng2si
-n2g1um
-n1gy
-n8gäl
-n1h
-nhe6r5e
+n3ge
+n4g5ein
+n5g2en
+ngen4da
+nge5nerw
+nge4ram
+n4g5erse
+n5ges
+ng3g4
+ng5ho
+ng5hu
+n2g1i2d
+ng4lad
+ng3lein
+ng3lo
+ng3lu
+n4g5m
+ng3ne
+n2g1or
+ng3rat
+ng3räu
+ng3rein
+ng3rev
+ng3roc
+ng4s
+ng6s1c
+ngs3e4h
+ng3send
+ngs3pa
+ng3ts
+n2gue
+n2gum
+4n3h
+n5han
+n5har
+n5hau
+n5hä
+n5he
+nhe2r
1ni
-ni1bl
-ni5chä
-ni8dee
-n6ie
-ni1en
-nie6s5te
-niet5h
-ni8etn
-4n3i6gel
-n6ik
-ni1la
-2n1imp
-ni5na
-2n1ind
-8ninf
-6n5inh
-ni8nit
-6n5inn
-2n1ins
-4n1int
-n6is
-ni3str
+3ni.
+3ni2a
+ni3ba
+nib3b
+2ni2d
+ni3de.
+ni3di
+ni3dr
+n2ie
+nie3b
+nie3fr
+ni1el
+nie3l2a
+nie4n
+ni5ene
+ni1ero
+ni3fa
+nifi3
+3nig
+nig2a
+4n3i2gel
+ni2g3r
+3nik
+nik1al
+ni2kä
+nik3ing
+ni3kl
+ni2kr
+3nil
+n2imm
+nim2o
+4n3imp
+3nin.
+nin2a
+4n3ind
+2ninf
+3n2ing6
+4n3inh
+nin1i
+4n1ins
+4n3int
+2n3inv
+3nio
+ni2ob
+ni5ok
+ni3ol
+ni3os
+3n2is
+ni4schw
+nis1e
+niso2
+nis1p
+nis5s2
+nis3sz
+ni2stu
+ni2s1u
+2nit
+ni3ta
ni1th
-ni1tr
-n1j
-n6ji
-n8kad
-nk5ans
-n1ke
-n8kerla
-n1ki
-nk5inh
-n5klö
-n1k2n
-n8k5not
-nk3rot
-n8krü
-nk5spo
-nk6t5r
-n8kuh
-n6küb
-n5l6
-nli4mi
-n1m
-nmen4s
-n1na
-n8nerg
-nni5o
-n1no
-nn4t3ak
-nnt1h
-nnu1e
-n1ny
-n1nä
-n1nö
-n1nü
-no5a
-no4b3la
-4n3obs
-2nobt
-noche8
-no6die
-no4dis
-no8ia
-no5isc
-6n5o6leu
-no4mal
-noni6er
-2n1onk
-n1ony
-4n3o4per
-6nopf
-6nopti
-no3ra
-no4ram
-nor6da
-4n1org
-2n1ort
-n6os
-no1st
-8nost.
-no8tan
-no8ter
-noty6pe
-6n5ox
-n1p2
-n1q
-n1r
-nrös3
-6ns
-n1sac
-ns3ang
-n1sc
-n8self
-n8s5erf
-n8serg
-n6serk
-ns5erw
-n8sint
-n1s2pe
-n1spr
-n6s5tat.
-n5s6te.
-n6stob
-n1str
-n1ta
-n4t3a4go
-nt5anh
+ni2ti
+ni3to
+ni3t4r
+nit2s
+ni3tsc
+nit4tec
+nitt6sa
+ni3tu
+3niu
+3ni3v
+3nix
+2n1j
+4n1k
+n2k3ad
+n2k1ak
+n3k2al
+n4k3alg
+nk1apf
+nk1arb
+nk1arm
+nk3arti
+nk1au6s
+nk1äh
+n2k1är
+nk1ec
+nk1ein
+n4k3erfa
+nk1inh
+n2k1ins
+n3kir
+n5klag
+nk3len
+nk3les
+n2k3li
+n3klin
+nk4lu
+nk5lun
+n3k4na
+nk3ne
+nk3nor
+n3ko
+nkor5d
+n4k1ort
+nk3rät
+n4kre.
+nk3rede
+n3kri
+nk3ro
+nk2sal
+nk2spa
+nk3spo
+nk5sti
+nk3s2z
+nk2ta
+nk3ti
+nk4t5i2t
+nk4top
+nk2tru
+6n5l
+4n3m4
+nmen2s
+4n1n
+nna2be
+n2nada
+n4n1all
+n2nan
+n2nau
+nn3d
+n3n2e
+nn3ein
+n4n3eis
+nn3ele
+nnen3g
+nne5p
+nne2rö
+n4n3er4wa
+nn3er2z
+nne2s
+nnes1e
+n5neu
+nn3f
+nn3g
+n3ni
+nno3b
+nn1o2r
+nn5se
+nn3s2p
+nn4th
+n4n1uf
+n2n1unf
+nn1ur
+1no
+5no.
+n2obl
+no2bla
+3noblo
+2n1obs
+no1c
+2no2d4
+no3dr
+2n1of
+4n3o2fe
+2nole
+no2leu
+n4om
+nom4e
+n2on.
+no3n4a
+3n2opa
+2nopt
+2nor
+3nor.
+nor2a
+no2rad
+no1rak
+no3ral
+nor4d5r
+3norh
+3nors
+n1ort
+3n2os.
+no5se
+no3sh
+3n2oste
+n1osth
+nost4r
+no5tab
+no2tä
+no4t1ei
+no2t1el
+no2t3in
+no2t1op
+no2tr
+3nov
+4n1o4x
+3noz
+2nöd
+2n1ö2f
+n1ök
+4n1öl
+4n5p2
+npa4g
+npsy3
+2n1q
+4n3r2
+nre3sz
+nrö4s1
+n5ru
+4n1s
+n2s3a2d
+n2sall
+n3sand
+n2s1än
+n2s1äus
+n5sche.
+n5sches
+n5schi
+n6schlic
+n5schr
+n6schro
+nsch7werd
+ns1e2b
+n3sec
+ns1e2d
+nseh5ere
+nseh3i
+n3senk
+nsen4sp
+n2s1ent
+n2s1ep
+ns1erf
+n2s1erg
+n2s1erk
+n2s1erö
+n2s1ers
+n2s1erw
+n2s1erz
+nse2t
+n4s1eta
+n3sex
+nsho2f
+n2simp
+n2s1ini
+nsi2te
+ns2kal
+n2s1op
+n4s3ort.
+n2spat
+ns4pei
+n3spek
+ns2pi
+n2sprä
+n4s3prie
+n4spro
+ns3s2
+nst1ak
+n6stat.
+n6s3tate
+n4stau
+n5s2te.
+n4stech
+nst3eif
+n5stel
+ns4tem.
+n5s4ten.
+n4stent
+ns2ter
+n5s4tes.
+n5steu
+n4stor
+n4strac
+nst4ü
+nstü1b
+ns2um
+n2s1un
+ns2unr
+ns3zi
+4n1t
+nt3abs
+nta3c
+nt2al
+nta3m
+nt1ang
+n4tanza
+nt2arb
nt3ark
-nt3art
-n1te
-nt3eis
-nte5n6ar
-nte8nei
-nter3a
-nte6rei
-nt1ha
-nt6har
-n3ther
-nt5hie
-n3thus
-n1ti
-nti1c
-n8tinh
-nti1t
-ntlo6b
-ntmen8
-n1to
-nt3o4ti
-n1tr
-ntra5f
-ntra5ut
-nt8rea
+n5tarm
+nt4as
+nt4at
+n4t1auf
+n3taur
+n3taus
+nt1äm
+n2t1äu
+n3te
+n5te.
+nte3au
+nte2b
+nt1ebe
+nte1e
+nte3g6
+n4t1eh
+n4teig
+n4t1ein
+ntem3p4
+n5t4en
+nten6te.
+nt5ents
+n5t4er
+nte3ru
+n5tes
+n6t3ess
+n5tet
+nte3v
+n2th
+n3the
+nt1hi
+nt1ho
+n3thol
+n5thr
+n5t4hu
+nti3k4l
+n2tinf
+n2t1inh
+ntini1
+n5tit
+ntmo2
+n5to
+nto5me
+nton4s1
+n3tö
nt3rec
-nt8rep
-n4t3rin
-nt8rop
-n4t3rot
-n4trü
-nt1s
-nts6an
-nt2sk
-n1tu
-nt1z
-n1tä
-n1tö
-n8töl
-n1tü
+n5tree
+nt3reif
+n5t4rep
+nt4rig
+n2t3rin
+n5trop
+n2t3rü
+nt3sa
+nt3s2o
+nt3s2p
+nt4s3par
+nts2t
+nt4sto
+nt3t
+n3tu
+ntum2
+nt3z2
1nu
nu1a
-nu5el
-nu5en
-4n1uhr
-nu5ie
-8numl
-6n5ums
-6n5umw
+nu4ale
+nu3ar
+nu3as
+nubi3
+2nuc
+3nue
+nu2es
+nu3et
+nuf2
+nu2fe
+2n1uh
+3nu3k4
+n2um.
+2n5umb
+2numf
+2numg
+3numm
+2numr
+2n1ums
+2n5umz
+nu4n
+n1una
2n1und
-6nuni
-6n5unr
-2n1unt
+3nung.
+n1ungl
+2n1uni
+2nunt
2nup
-2nu6r
-n5uri
-nu3skr
-nu5ta
-n1v
-8n1w
+2nur
+n2u2s
+nu3sc
+nu3se
+nu3sl
+nu3spo
+nu6s1t
+nu2ß
+nu2ta
+nu3te
+nu2t3r
+5nü.
+2nü2b
+nür1c
+3nüs
+1nüt
+4n1v2
+n3ver
+n3vi
+nvol7ler
+4n1w
+n3wa
+nwa5re
+2nx
+1ny.
+1nyh
+2nymu
+n1yo
+1nyr
1nys
-n1za
-n6zab
+1nyw
+4n1z
+nza2
+n2zad
+n2z1ag
+n2zan
n2z1ar
-n6zaus
-nzi4ga
-n8zof
-n6z5unt
-n1zw
-n6zwir
-1näc
-5näe
-5näi
-n8äl
-nä6m
-nä6re
-n5ärz
-5näus
-n1öl
-1nöt
-n5öz
-5nü.
-6n1ü2b
-5nüß
-o5ab.
-oa2l
-o8ala
-o1a2m
-o1an
-ob1ac
-obe4ra
-o6berh
-5o4bers
-o4beru
-obe6ser
+n2z1au
+n2z1än
+n2z1är
+n2z1ec
+n4zense
+n4zentz
+nz3erwe
+nzi2ga
+n2zinh
+nz1ini
+nz1of
+n2z1or
+nz3th
+nzug4
+n2z1wa
+n2z1wä
+nz1wer
+nz1wet
+nz1wir
+n2z1wu
+nzzol3
+ño1
+4o.
+2o3a2
+o5abs
+o4ac
+oa3che
+oa3chi
+o4ad
+oa3de
+o4ah
+o4a3i
+oa3ke
+oak5l
+o4a3la
+o4a3mi
+oanne4
+o4ar
+o4a3s
+3oase
+o5a4si
+o4at
+oa3te
+o1b
+ob2al
+o3bar
+2o3b2ä
+2obb
+ob2e
+2o3be.
+ob3ein
+2oben
+oben3se
+o2ber
+obe4ris
+obe6sp
+2obi
1obj
-o1bl
-o2bli
-ob5sk
-3obst.
-ob8sta
-obst5re
-ob5sz
+ob1l
+ob3la
+o2b5li
+1obm
+2obo
+o2b3re
+ob2s2
+ob3sh
+ob3sk
+ob3so
+ob3sp
+ob4sta
+ob3sü
+2o3bu
+2o3bü
+2oc
+o1ce
+och1a
+ocha2b
o1che
-oche8b
-o8chec
-o3chi
-och1l
-och3m
-ocho8f
-o3chro
+oche4b
+o2ch1ec
+och1ei
+och3l
+och5m
+och1o
+och1ö2
+och3r
+ocht2
+och3te
och3to
-o3chu
-och1w
-o1d
-o2d1ag
-od2dr
-ode5i
-ode6n5e
-od1tr
-o5e6b
-o5e6der.
-oe8du
-o1ef
-o1e2l
-o1e2p
-o1er.
-o5e8x
-o1fa
-of8fan
-1offi
-of8fin
-of6f5la
-o5fla
-o1fr
-8o1g
-og2n
+o1chu
+ochu2f
+och3w
+ock2e
+ock3sz
+o3co
+o1cr
+o1ç
+2o1d
+o3dar
+o3deb
+o3de3i
+ode2n
+oden1e2
+ode3sp
+o3dex
+o3dir
+odo4s
+4odr
+o2dre
+od1t4
+4o3du
+2o1e2
+o2ec
+o3en1
+o2e3s
+oe3t
+o3et.
+o3ets
+o1ë
+2ofa
+of1ac
+of1am
+of1au
+o2f1ei
+of2en
+o3fer
+ofes3
+of2f1a
+of2f1in
+of2fir
+1offiz
+of2f3l
+of2fo
+of2f3r
+offs2
+of2fu
+2ofi
+ofi3k
+of3l
+of1la
+2ofo
+o1f1r
+of3ra
+of3rä
+of4s1a
+of2se
+of2sp
+of2s1u
+2oft
+of2tei
+of3th
+2o1g
+o2g1ab
+oga3d
+og1ala
+og1ang
+oga4t3
+oga5te
+o2g5ei
+oge2l1i
+o3gh
+ogi2er
+og3ins
+o2gl
+o3glo
+o3g6n
+ogoi5
+og4s2
+og5sp
+og5ste
o1ha
+o1hä
o1he
-o6h5eis
+o3he.
+oh1eis
+o3heit
+o3hem
+o3hen.
+o3her.
+o3here
+oh1ert
+oh1erz
+o3hes
o1hi
ohl1a
-oh1le
-oh4l3er
-5ohm.
+oh3lec
+ohl1ei
+oh5lem
+oh5len
+oh3lep
+ohl3erh
+oh5les
+oh3li
+oh3lo
+ohls2
+oh2lu
+oh3m
+ohn3a
oh2ni
+oh2n1o
o1ho
-oh1re
-oh1ru
+oho2la
+oh1o2p
+o2h1ö
+ohr1a
+oh4rin
+oh3ta
o1hu
oh1w
-o1hy
-o1hä
-o5ia
-o1id.
-o8idi
-oi8dr
-o5ids
-o5isch.
-oiset6
+ohwa5
+2o1hy
+2oi
+o1i2d
+o3ie
+o1im
+oimmu4
+o1i2n
+o4i3ne
+oi4r
+o2isc
+o3isch.
+oi5se
o1ism
-o3ist.
-o5i6tu
-o1j
-o1k
-ok2l
+oi4st
+2o1j
+2o1k
+oka3i
+oka2la
+okale2
+3o4kel
+o3ki
+oki4o
ok3lau
-o8klä
-1okta
+ok3lä
+ok2s1p
+okt4
+2ol
o1la
-old5am
-old5r
-o1le
-ole5in
-ole1r
-ole3u
-ol6gl
+o2l1ak
+ol2ar
+ol1auf
+o1lä
+ol4dam
+ol4d5r
+ol1eie
+ol1eis
+ol1ex
+o1lé
+ol4fa
+ol2f3l
+olf1r
+ol2fra
+olf3sp
+olge4ne
+ol2gl
+ol2gr
+ol2i
+oli5en
+oli5f
+oli3tu
ol2kl
-olk4s1
-ol8lak
-ol8lauf.
-ol6lel
-ol8less
-o1lo
-ol1s
-ol6sk
+ol2k3r
+ol2lad
+ol2lak
+oll3ans
+ol2las
+ol2läd
+ol4l1ec
+ol2l1ei
+ol2l1el
+oll5ends
+ol4l3erk
+oll5erwe
+ol3les
+ol3lo
+ol2lu
+o3lo
+o5l2of
+olo3p2
+ol1ort
+o1lö
+ol2pr
+ols2
+ol4str
o1lu
-oly1e2
-5olym
-o2mab
-om6an
-o8mau
-ombe4
-o8merz
-om5sp
-o1mu
-o8munt
-o1mä
-o1mö
-o1na
-ona8m
-on1ax
-on8ent
-o6n5erb
-8oni
-oni5er.
-on1k
-on6n5a6b
-o1no
-ono1c
-o4nokt
-1ons
-onts8
-o1nä
-oo8f
-1oog
-oo2pe
-oo2sa
+ol2z1a
+ol6z3ern
+ol2zin
+2om
+oma4ner
+om2anw
+om1art
+o2m1au
+o2meb
+ome3c
+o2m1ei
+o3m2eis
+o2mel
+o5men.
+om3ene
+o2mep
+o2meru
+om1erz
+omie4t1
+omil3l
+o2m1ind
+om1ing
+o3mini
+om1int
+omi3te
+om3ma
+om3me
+omme4r
+om1org
+om3pf
+omp6l
+oms2
+om3sp
+o4m3un
+o5m4ung
+omy1
+2on2a
+on3a2b
+o2nae
+on3ak
+o3nal
+on3ap
+o2n3ar
+on4are
+on3aus
+2o3nä
+onbe3
+2onc
+2one
+on4eh
+one2n1
+onen3g
+o2n1erb
+on1erd
+on1erö
+o3nett
+on5f
+ong4
+on3gl
+ong7sc
+ong5st
+4o3ni
+o5ni.
+oni3d
+o4ni4kr
+o4n1im
+on3ing
+on5k4
+onli4n
+onlo2c
+on3nan
+o3no3
+o4noke
+on1orc
+ons1a2
+ons3as
+on2seb
+onse2l
+onsi2d
+ons3l
+ons1p
+on3t2a
+on6t5end
+ont5erw
+on2t1ri
+2onuk
+on5v
+1ony
+on5z
+o1ñ
+oo2k
+ook3l
+o1op
+o1or
+oor3f
+oo4sk
+oo2tr
+oot4st
+2o1ö
o1pa
-3o4pera
-o3pfli
-opf3lo
-opf3r
-o1pi
-o1pl
-o2pli
-o5p6n
-op8pa
-op6pl
-o1pr
-o3p4ter
-1opti
+opa1b4
+o2p3ad
+op1akt
o1pä
-o5pö
+o1ped
+o1pei
+o3pek
+o1pe4n
+2opf.
+op2f1a
+op3fah
+opf3l
+opf4li
+op1flu
+op1flü
+4oph2
+o1pi
+opi5a6
+opi3er.
+opi5ers.
+opin2
+op5lag
+op3le
+op3li
+2o3po
+op4pl
+op2pr
+2o1pr
+1opsi
+op3sz
+1opt4
+op3th
+op3tr
+o1pu
o1q
-o1ra.
-o3rad
-o8radd
-1oram
-o6rang
-o5ras
-o8rauf
-or5cha
-or4d3a4m
-or8dei
-or8deu
+2or.
+or1a
+or3a2b
+o1rad
+or3adr
+2orak
+2oral
+ora3li
+o4r3alm
+or4alt
+o2ranh
+orani1
+or3arb
+o1ras
+or3att
+o3r2ä
+or3änd
+or3ät
+or2bar
+or1c
+2orca
+or2ce
+2or2da
+ord1am
+ord3ele
+or4d3eng
+or2deu
+or2d1ir
1ordn
-or4dos
-o1re
-o5re.
+or2do
+2ords
+2ordw
+4ore
+ore4a
+o2r1eck
+o5ree
+o2r1ef
ore2h
-o8r5ein
-ore5isc
-or6enn
-or8fla
-or8fli
-1orga
-5orgel.
+or1eig
+o2rein
+o2r1er
+or3eth
+2orf
+or2fle
+or3g4a
+2orget
+or3g2h
+2orgia
or2gl
+or3gle
+2orh
o1ri
-5o6rient
-or8nan
-or8nä
-o1ro
-or1r2h
-or6t5an
-or8tau
-or8tere
-o1rus
-o1ry
-o1rä
-or1ü2
-o1sa
-osa3i
-6ose
-o8serk
-o1sk
-o6ske
-o6ski
-os2kl
-os2ko
-os2kr
-osni5e
-o2s1o2d
-o3s4per
-o4stam
-o6stau
-o3stra
+2o3ric
+o3rier
+4o5ril
+4orin
+or1ins
+2orit
+o5riz
+or3k2a
+or4k3ar
+ork1s
+2orm
+or2mor
+or3na
+or3n2o
+2o1ro
+or3oly
+oro3n4a
+2o1rö
+2orq
+2orr
+or3rh
+2ors4
+or5sa
+orsch5li
+or3sh
+or3sz
+or2ta
+or3tad
+or4t1ak
+ort3an
+ort1au
+ort3eig
+ort3ein
+or4t3ent
+or4t3ere
+or4t3erf
+or4t5ev
+or4the
+or3ti
+or4tin
+ort3ins
+or4t3off
+or2tö
+or4t3rau
+or4t3räu
+ort3re
+ort3ric
+ort3sc
+or2t1um
+o3ru
+or2uf
+o4r3un
+o5rus
+or3ü
+2orw
+o2rya
+o1s
+o3s2a
+os3ad
+os4an
+os2c
+2o3s2e
+ose3ei
+o4s3ei
+ose2n
+o2sé
+o3s2hi
+o3sho
+2osi
+osit4
+osi3tr
+o3s2k
+os3ka
+os3ke
+os3ki
+os2lo
+o2s1p
+o4sper
+o3s2po
+os2s3a
+os2sä
+os2seg
+os2sei
+oss3enk
+os3sent
+oss3enz
+os2seu
+os4s3o
+os4s3p
+os6st
+oss1ta
+oss1to
+oss1tr
+os2t
+o4s4t1a
+osta2b
+o5stal.
+o4sterd
+oster3e
+ost5er6we
+ost3h
+o5stie
+o4stin
+ost1ob
+os3ton.
+o5stons
+o4st3rä
ost3re
-osu6
-o6s5ur
-o5s6ze
-o1ta
-ot3auf
-o6taus
-o1te
-o6terw
-o1th
-othe5u
-o2th1r
-o1ti
-o1to
-oto1a
-ot1re
-o1tri
-o1tro
-ot1sc
-o3tsu
-ot6t5erg
-ot2t3h
-ot2t5r
-ot8tö
-o1tu
+ost3rot
+ost1uf
+osu4
+o3s2ze
+o2ß1el
+o2ß1enk
+o2ß1enz
+oße2r
+o2ß3ere
+o2ß1erf
+oß3th
+2o1t
+ota3m
+o3tark
+o2t1au
+ot3aug
+otau6s
+ot1är
+4ote
+o2teb
+o3te1i
+ote3i6n
+ote4l1a
+ot4em3
+otemp2
+o2t1erw
+4oth
+ot2he
+ot3hel
+o4t1hi
+ot1hos
+o4thr
+ot2i
+o2t3i2m
+o4tl
+otli4
+4oto
+ot1opf
+ot2or
+o3tra
+o2t3re
+ot3rin
+ot3rut
+ots1p
+ot4spa
+ot3spe
+ots2t
+ot5stra
+ots3tri
+ot2tau
+ot3te
+ot4t3erk
+ot2t3r
+ott3se
+2o2u
+oub4
+ou2ce
ou3e
-ouf1
-ou5f6l
-o5u6gr
-ou5ie
-ou6rar
-ou1t6a
+ou1f4l
+ou2ge
+ou3gl
+o3uh
+ou4le.
+o3um
+o3unds
+oung5
+oun4ge.
+oung7s2
+ouri4e
+our6ne.
+ou3s2i
+ou5s2t
+ou3te
+outu4
+2o1ü
o1v
+oviso3
+2o3vo
+2ow
o1wa
+owa5re
+o1wä
o1we
-o6wer.
+o3wec
+ow1ef
+owe2r1
o1wi
-owid6
o1wo
-o5wu
-o1xe
-oy5al.
-oy1e
-oy1i
-o5yo
-o1z
-oza2r
-1o2zea
-ozo3is
-oö8
-oß5elt
-oß1t
-3paa
-pa6ce
-5pad
-pag2
+o1x2a
+ox2e
+o1xo
+o2xu
+1oxy
+o1yo
+2o1z2
+oz4e
+o3zi
+ozon3a
+ór3
+ö1b
+öbe4li
+ö2ble
+ö2b3r
+2öc
+ö1ch
+ö4ch3l
+ö2chr
+öchs2t
+öch4str
+ö4cht4
+ö1d
+ödel5l
+ödi3en
+ö2du
+ö1e
+öf2fl
+öf3l
+ög3
+ögen4s1
+ö2gl
+ö2gr
+ög4s
+ög4u
+2öh
+ö1he
+öh3l2e
+öh3m
+öh1ri
+öh2s
+ö1hu
+ö2k
+ö3ke
+öko5
+ök3r
+ök2s
+ö6l
+3öl.
+öl1a
+öl1ei
+öl1em
+öl2f1ei
+ölf3s
+öl1im
+öl1in
+öl2k5l
+öl5la
+öl4nar
+öl1o2
+öls2
+öl3sa
+öl3sz
+öl1u
+öl2ung
+öl3z2w
+öm2s
+2ön
+ön3d
+ön2e
+ö3ni
+öo1
+ö1pe
+öpf3l
+ör3a
+ör1c
+örden3
+ör2dr
+ö2r1ec
+ö2r1ei
+ö2r1e2l
+ör2erg
+ö3r2erz
+ör2f3l
+ör2gl
+ö1ri
+ö2r1im
+ör2kl
+ör1o2
+örs2e
+ör3sk
+ör2tr
+ö1ru6
+ö2r1une
+ö1s
+ö2sa
+ö2sc
+ö4sch3ei
+ösch3m
+2ö5se
+ö6s1ei
+ö2sp
+ös4s1c
+ös4st
+ös2t
+ö4sta
+ö5stet
+ö1ß
+2ö1t
+ö2t3a
+ö3te
+öte4n1
+öt2sc
+öt2tr
+ö1v
+ö1w
+öwe4
+ö1z
+öze3
+özes4
+4p.
+1pa.
+1paa
+1pack
+pa3da
+pa3fa
+pa1f4r
+pa3g2
+pa1ho
1pak
-pa1la
-pa8na8t
-pani5el
-pa4nor
-pan1s2
+pa1kl
+pak2to
+1pa1la
+pala3t
+1palä
+pa5li
+2palt
+p4an
+pa2nar
+pan3d
+pan4ds
+pa3nei
+pa2neu
+pan3k4
+2panl
+3pano
+pan3sl
+3panz4
1pap
-pap8s
-pa8rei
-par8kr
-paro8n
-par5o6ti
-part8e
-5partei
-3partn
-pas6sep
-pa4tha
-1pau
-6paug
-pau3sc
-p1b
-8p5c
+papie8r7end
+1parad
+pa2r3af
+par3akt
+2par2er
+2parg
+1park.
+par4kam
+par4kau
+par4kl
+par2kr
+pa2ro
+1parol
+2parp
+1partn
+1party
+par3z2
+pa3s2p
+pa2ßu
+p4at
+pa5ta
+pat4c
+pat2e2
+1pati
+1pat4r
+1pau3
+p1auf
+pa3uni
+1päc
+1päd
+1pärc
+pä4t1e2h
+pä4t3ent
+pät1h
+pä2to
+pät5s
+2p1b
+pbe1
+2p3c
4p1d
-1pe
+pda2
+1pe.
+pe4a2
+pea4r
+1ped4a
+peed3
+2pef
+pei1
4peic
-pe5isc
+pe1im
+3peit
2pek
-pen3k
-pen8to8
-p8er
+pekt4s
+1pel
+pe4l3a4
+pel5d
+pe2let
+pe3lin
+pe4l3ink
+pel5lä
+pel3l4e
+pel3li
+pel3to
+1pem
+pena6
+pe3n4al
+pen3da
+pe4nen
+1penn
+pens2
+3pensi
+1pensu
+pe2nu
+pen3z2
pe1ra
-pere6
-per5ea
-per5eb
-pe4rem
-2perr
-per8ran
-3pers
-4persi
-pe3rü
-pe4sta
-pet2s
-p2f1ec
-p4fei
-pf1f
-pf2l
-5pflanz
-pf8leg
+per4an
+1perle
+per6na
+perne4
+per4ra
+perr3an
+per2rä
+per4rie
+5pers
+perwa6
+pe3sa
+pes4e
+pese2n
+pes5s4
+3pet
+1pé
+2pf
+4pf.
+p2fab
+pf1abe
+p2faf
+pf3ai
+p2f1ak
+pf1ans
+p2fa6r
+pf3are
+p2f1au
+p2fei
+pf1eim
+pf1ein
+pf1eis
+pfe2l
+p3fen.
+p2fent
+p3fer.
+pf2erw
+p3fes
+pff4
+p2f1ins
+p2f5lä
pf3lei
-2pft
-pf3ta
-p1g
+pf3lie
+pf3lo
+pf3lö
+pf5lu
+p2for
+pf3r
+pf1ra
+pf1ri
+pfs2
+pf3sl
+pf3sp
+pf3sz
+pft2
+pf3th
+2p1g
+pgra2
1ph
-2ph.
-2p1haf
-6phb
-8phd
-6p5heit
-ph5eme
-6phg
-phi6e
-8phk
-6phn
-p5holl
-pht2
-ph3tha
-4ph3the
-phu6
-6phz
-pi1en
-pi5err
-pi1la
-pi1na
-5pinse
-pioni8e
+4ph.
+2phab
+2phä
+2phb
+4phd
+2p1hei
+phen3d4
+phen3s
+2ph1ers
+2phf
+4phg
+phi2ka
+4phk
+ph2l
+2ph3m
+2phn
+p3hop
+4phö
+ph4r
+2phs
+2ph3t2
+4ph5the
+phu4s
+4p1hü
+2phz
+pi4a5
+pi3chl
+p4id
+pie3fr
+pi2el
+pie4la
+5pi2er
+1pil
+pil4zer
+pi2na
+pin2e
+ping5s
+3pinse
+pi2n1u
+pi2o
+pi3oi
+pi3onu
+pi2pe
+pi5ri
1pis
-pi1s2k
-pi1th
-p1k
-pl8
-5pla
-p2lau
-4plei
-p3lein
-2pler
-6p5les
-2plig
-p6lik
-6p5ling
-p2liz
-plo8min
-6p1m
-p1n
+2piso
+pis2t
+pi5sto
+pit2a
+pit2s
+pi2z1in
+p1je
+2p1k4
+pku2
+pkur1
+1p2l4
+4pl.
+3p4la
+p5lad
+plan3g
+3plä
+2ple.
+ple1c
+ple4e
+p4leg
+3ple5n4
+p5lic
+p5lif
+4plig
+p4lo
+plü2
+2p1m
+pma1
+2p1n
1p2o
-8poh
-5pol
-po8lan
-poly1
-po3ny
-po1ra
+po3b4
+po1c
+2p3oh
+po2i
+po3id
+3pol
+po2lau
+po5li
+po3ly
+pont4
+po1ob
+po2p1ak
+po2p1ar
+po1pe
+po2pl
+po3pt
+po1ral
+po1rau
2porn
-por4t3h
-po5rö
-5poti
-p1pa
-p6p5ei
-ppe6la
-pp5f
+por5s
+por4tri
+po5s4e
+po3sp
+post3ag
+po4stä
+po4st3ei
+post3ra
+po3ta
+3pote
+pot2h
+po2t1u
+po2w
+po1x
+pö2bl
+pö2c
+4p1p
+p2p1ab
+pp5anl
+p3pe
+ppe1e
+ppe2n1
+pp1f4
p2p1h
-p1pi
-pp1l
-ppp6
-pp5ren
-pp1s
-p5pö
-pr6
+p3p2ho
+p2p3l
+pp5lan
+p4ple
+pp4li
+p2p3ra
+p2p3re
+p2pri
+pps2
+pp3sa
+pp3sp
+ppt2
+pp3ta
+p2r2
+3prak
+3prax
+1präd
+1präg
+3präm
+3präs
+4pre.
+2prec
+1pred
+pre2e1
+1prei
3preis
-1pres
-2p3rig
-5prinz
-1prob
-1prod
-5prog
-pro8pt
-pro6t5a
-prote5i
-8proß
-prä3l
-1präs
-präte4
+2p3rer
+3pres
+1preß
+pri4e
+1prinz
+2prit
+1p4ro1
+3prob
+pro3be
+2proc
+3prod
+3prog
+3proj
+3proto
1prüf
-p5schl
-2pst
-1p2sy
-p1t
-p8to8d
-pt1s
-5p6ty
-1pu
-pu1b2
-2puc
+2prün
+2ps
+4ps.
+ps4an
+p3s2h
+4psi
+p2s1id
+p2s1ö
+ps2t
+p5ste
+p4st3r
+p2stu
+ps3tur
+3psy
+ps2ze
+2p1t
+p2t1a
+pt3alb
+pt3as
+pt3at
+p3te
+p5te.
+p4t3ec
+p4t1ei
+pte4l
+p4tele
+p4t1ent
+pt3erei
+p4t1erw
+p4t1erz
+p5tes
+p2t1h
+pt1in
+pto5me
+p2tos
+p2t3r
+pts2
+pt3sa
+pt3so
+pt3sp
+pt3st
+pt3su
+pt3t
+pt1um
+p3tung
+pt1urs
+p2tü
+3p2ty
+pt3z2
+pu3as
+1pub4
pu2dr
-puf8fr
-6p5uh
-pun8s
-pu8rei
-pu5s6h
-pu1ta
-p1v
-p3w
-5py
-py5l
-p1z
-pä6der
-p5ä6m
-pä8nu
-8pär
-pät5h
-pät1s
-qu6
-1qui
-8rabk
-ra6bla
-3rable
-ra2br
-r1abt
-6rabz
-ra4dan
-ra2dr
-5rafal
-ra4f3er
-ra5gla
-ra2g3n
-6raha
-ral5am
-5rald
+1puf
+2p1uh
+pul4sp
+1pulv
+1pum
+1pun
+2pund
+pun2s
+2punt
+1pup
+pu3ri
+pu2sc
+1put
+3put2s
+3putz
+1püf
+2pül
+2p1v
+2p1w
+3py1
+py3t
+4p1z
+q2u4
+3quen
+que3rel
+1queu
+qui5s
+6r.
+1ra.
+ra2ab
+2r3aac
+r3aal
+ra1ar
+r1ab
+ra2bar
+rab2bl
+2rabd
+ra3ber
+2rabf
+2rabg
+r4abi
+ra1b4le
+2rabs
+2rabt
+2rabw
+1raby
+ra1ce
+2r1acet
+ra3che.
+ra4cheb
+ra3chet
+rach4t3r
+ra2chu
+r2ack
+rada2
+ra2dam
+2radap
+3radf
+ra3di
+3radle
+ra4d3r
+rad3t
+1rae
+ra1er
+r2af
+ra4f3ar
+ra2fer
+r2ag
+ra3ge
+ra3gle
+ra2g5n
+r2ahm
+2raic
+rail2
+rail4l
+r3air
+ra3ke
+3ra1k4l
+ra2kre
+ra2kro
+2rakti
+3rakü
+r2al
+r4al.
+rala4
+ra4l3ab
+r3alar
+ral3b
+3r4ald
+ra3le
4ralg
-ra8lins
-2rall
-ral5t
-8ramei
-r3anal
-r6and
-ran8der
-ran4dr
-8ranf
-6ranga
-5rangi
-ran8gli
-r3angr
-rans5pa
-8ranw
-r8anz.
-ra5or
-6rapf
-ra5pl
-rap6s5er
-2r1arb
-1rarh
-r1arm
-ra5ro
-2r1art
-6r1arz
-ra8tei
-ra6t5he
-6ratl
-ra4t3ro
-r5atta
-raue4n
-6raus.
-r5austa
-rau8tel
+rali5er.
+rali5ers
+ral3k2
+rall2e
+2r3alm.
+r3alp.
+4ralpe
+r4als
+r3al3t
+r4alth
+ra2lu
+3raly
+r2am
+ra3ma
+ra2mer
+1rami
+ram6m5ers
+ram4m3u
+r3amn
+ram2p3l
+2r3amt
+ramt4s
+r2an.
+4ranc
+r2and
+r4anda
+r4ande
+ran4dep
+ran4d3er
+4r5anei
+2r3anf
+1rangi
+4ranl
+2r1anm
+r1anp
+2ranr
+2rans
+r4ans.
+r2ansp
+2rantr
+2r3anw
+r2ap
+2rapf
+ra3pl
+2r1ar
+3rarei
+rar3f4
+ra2r1in
+r3arz
+r4as.
+ra3s4a
+ra4schl
+2raß
+1rat
+r4at.
+ra2ta
+ra2t1ä
+ra3te
+2ratm
+rat4r
+2ratta
+4rau.
+3raub.
+rau3bl
+4raud
+rau3en
+2rau2f
+2raug
+rau4m3ag
+rau4man
+rau2mi
+ra3umsa
+2rausg
+rau4sp
+raus5se
+raus3tr
raut5s
-ray1
-r1b
-rb5lass
-r6bler
-rb4lie
-rbon6n
-r8brecht
-rb6s5tä
-r8ces
-r1che
-rch1l
+1raü
+r2ax
+raxis1
+räch4s
+r2äd
+4räf
+4räg
+4räh
+2räm
+3rän.
+3räni
+2r1är
+rä3ra
+r3ärz
+rä4s1c
+rä4st
+3rätse
+rä2u
+4räut
+2r1b
+r2b1ab
+r2b3a2de
+r2bak
+rba3re
+rb1art
+rb1auf
+rb3b4
+rb1ech
+r2belä
+r2b1ent
+rbe3r2e
+r3bla
+rbla2d
+rb7lasser
+r4b3last
+r3blä
+r2b5le.
+rb5ler
+rb2o
+rb3res
+rb4ri
+rb2s
+rb4sei
+rb4ser
+rb3ska
+rbs1o
+rb6stä
+rb5ste
+4rc
+r1ce
+r1che.
+r1chen
+r1chi
+rch3l
+rch5lö
rch3m
-rch3re
-rch3tr
+rch3r
+rchs2
+rch3sp
+rch3ta
rch1w
-8rd
-r1da
-r8dachs
-r8dap
-rda5ro
-rde5ins
-rdio5
-r8dir
-rd3ost
-r1dr
-r8drau
-1re.
-re1ak
-3reakt
-re3als
-re6am.
-re1as
-4reben
-re6bl
-rech5a
-r8edi
+r1cr
+r1ç
+2r1d
+rd5achse
+r2d1ak
+rd1al
+r3dan
+rdani1
+r4d1ant
+r4d3anz
+rd1arb
+rd1ei
+r2d1elb
+rde7me
+r3den
+rde5nar
+rdend4
+rden4gl
+rde3r2e
+r4d3ernt
+rdes4
+rde3sp
+rdga4
+rdi3a2
+rdi5a6l
+r2d1inn
+r2d1it
+rd1os
+rdo4st
+rd1ös
+rd3rat
+rd3rau
+rdt4
+rd1tr
+rdwe5ste
+1re
+3re.
+re3ad
+rea3g
+re3aler
+re3as
+re5at.
+re5ats
+re2b1a
+re2b3l
+reb1r
+re4b3ra
+re2bü
+rech3ar
+4rechs
+2reck.
+3reda
+4redd
+3rede.
+2redit
+re1el
re3er
-8reff
+3refe
+4reff
3refl
-2reh
-5reha
-r4ei.
-reich6s5
-8reier
-6reign
-re5imp
-4r3eina
-6r3einb
-6reing
-6r5einn
-6reinr
-4r3eins
-r3eint
-reli3e
-8r5elt
-6rempf
-2remt
-ren5a6b
-ren8gl
-r3enni
-1reno
-5rente
-4r3enth
-8rentl
-4r3entw
-8rentz
-ren4zw
-re1on
-requi5
-1rer
-rer4bl
-6rerbs
-4r3erd
-8rerhö
-8rerkl
-4r3erla
-8rerlö
+3refo
+3refr
+3reg
+rege4l3ä
+re2gl
+4reh
+re2hac
+re4h3ent
+reh3l4
+re2h1o
+r2eie
+2reig
+r5eign
+rei3l2a
+rei3l2i
+r1ein
+rei3nec
+4reing
+4reinn
+4reinr
+rein6sta
+rein8s7tre
+re1in2v
+2reis.
+reis5tro
+2reiwe
+re2ke
+re3la
+2r1elb
+rel2e
+re3lei
+re2lek
+2r1elf
+re3lo
+2r1elt
+relu2
+r2em
+re3mo
+4remu
+r2en.
+r2ena
+re3nal
+re3näu
+3rendit
+ren3dr
+re4n3end
+ren4gl
+2rengp
+re2ni
+ren4nes
+2r1entl
+2r1ents
+2rentw
+2r3entz
+r2enz
+ren4zer
+re3or
+3repe
+5re3po
+4repp
+3r2er.
+re2ra
+2r3erb
+r4erba
+r4erbo
+r4erbr
+r4erbü
+2r1erd
+3rere
+r3ereig
+r4erer
+2r1erf
+r1erg
+r4ergen
+r1erk
+4r3erken
+3r2erki
+2r1erl
+5r4erlag
+r5erlau
+r3erlö
+2r1erm
+2r1ernä
4r3erns
-6r5ernä
-rer5o
-6r5erreg
-r5ertr
-r5erwec
-r5erö
+4r3ernt
+3r2e1ro
+re2rob
+r1erö
+3r2ers.
+2r3ersa
+r2erse
+2rersp
+r1er5t
+2r3ertr
+2r1erz
+3r2es.
re2sa
-re8schm
+res3au
+3rese
+3resol
+re3sp
2ress
-re5u8ni
-6rewo
-2r1ex
-r1f
-r8ferd
-rf4lie
-8r1g
-r8gah
-rge4bl
-rge5na
-rgest4
-rg6ne
-r2gni2
-r8gob
-r4g3ret
-rg8sel
-r1h8
+ress2e
+res6s5erw
+re4stu
+3resu
+4re2ß1
+re2thy
+re2u
+reu3g2
+2reul
+re3uni
+2r1eur
+2revid
+r1e2w
+rewa4
+re3we
+re3wo
+4r3e2x1
+3rez
+4rezi
+1ré
+2r1f
+rfall6s
+rf1ält
+r2fent
+r3f2es
+rfi4le.
+rf3lic
+rf3lin
+r3flü
+r3fre
+rf2sa
+rf2s1ä
+rf2se
+rf3sen
+rf4s1id
+rfs3pr
+rf2ta
+rf3tau
+rf3t4r
+r3fu
+4r1g
+rg2ab
+r2g1ah
+r2g1ak
+rg2an
+rga5ste
+r3ge
+rge4an
+rge2bl
+rge4l3er
+rg5e4tap
+r4geto
+rgi4sel
+r2glan
+rgleich8s
+r2gleu
+r2glig
+rg3lo
+rg3lu
+rg2ne
+rg3neu
+r2g1ob
+r2g3ral
+r2greg
+r2g3res
+rg3ret
+rg3rin
+rg3s2p
+rgs2t
+rg3th
+r1h4
+2rh.
+2r3ha
+r4ha.
+2r3hä
+3r4he.
+3r4hen
+r3her
+r3hof
+rho2i3
+2r3hol
+2rhö
+2rhs
r2hy
-5rhyt
-ri1ar
-ri5cha
-rid2g
+ri1am
+ri1an
+ri3at
+ri1ce
+ri1cha
+rich3te
+4rick
+rid2
+ri2dan
+2ridol
r2ie
-rieg4s5
-ri8ei
+rieb4st
ri1el
-ri6ele
-ri1en
-ri3er.
-ri5ers.
-ri6fan
-ri8fer
-ri8fr
-1r2ig
-ri8kn
-ri5la
-rimä8
-ri1na
-r8inde
-rin4ga
-rin6gr
+ri3els
+riene4
+ri3eni
+rie2nu
+ri1er.
+ri4e3re
+ri3ers.
+ri3e4sti
+rie5te
+ri1eu
+ri2fa
+ri4f1ei
+ri4fer
+ri2f1o
+ri2f5r
+rif4ter
+3r2ig
+ri4g5ene
+5rigj
+rig1l
+4rigr
+rigs2
+r2ik
+ri4k5l
+ri5kle
+ri3ma
+r2imb
+2rimp
+rim4s
+rim6sc
+rin4a
+2rind
+ri5n4e
+rine1i
+2r1inf
+rin2g3l
+rin2gr
+4r1inh
+2rinit
+2rink
1rinn
-6rinner
-rino1
-r8insp
-4rinst
-ri1nä
-ri5o6ch
-ri1o2d
-ri3o6st
-2r1ir
+6r5innenm
+4r3inner
+2rins
+3r4ins.
+r4inspi
+2rint
+rin4t5r
+2r1inv
+3r2inva
+ri2o
+4r1ir
r2is
-ri3sko
-ri8spr
-ri8stü
-ri5sv
+ri3s4a
+ri4scho
+ri4schw
+3risik
+5risk
+ri3so
+ri4s3p
+3riss
+ris4sa
+rist5ers
+ristes4
+3ri2ß1
r2it
-6r5i6tal
-ri5tr
-ri6ve.
-8r1j
-6rk
-r1ke
-rkehrs5
-r1ki
-r3klin
-r1k2n
-rk3str
-rk4t3an
-rk6to
-r6kuh
-rkä4s3t
-r1l
-r5li
-rline5a
-6r1m
-r6manl
-rma4p
-r4m3aph
-r8minf
-r8mob
-rm5sa
-2rn
-r1na
-rna8be
-r5ne
-rn2ei
-r6neif
-r6nex
-r6nh
-rn1k
-r1no
-r6n5oc
-rn1sp
-r1nä
+r3i2tal
+ri3ti
+rit4r
+5ritu
+ri2x1
+4riz
+1rí
+2r1j
+2r1k
+rk1all
+rk1aus
+rk1äh
+r3kla
+r5klau
+rk3li
+rk4lo
+rk4lu
+rk3nor
+r2k3nu
+rk3rau
+rk3räu
+r2k3rea
+r3kri
+rk3rin
+rk2s1e
+rk3shi
+rk2sp
+rkstati6
+rk4stec
+rks1ti
+rk2ta
+rk4t3eng
+rk4t3erf
+rk4t3ers
+rk4t3erw
+rk2tin
+rk2t1o2
+rkto4b
+rk2t3r
+r2k1uh
+rk2um
+rku4n
+rk1uni
+rku6s5t
+2r1l
+r3la
+r3le
+rle2a
+r3l2i
+rlös5s
+rl2s1p
+rl4s1to
+rl3th
+rlu4str
+4r1m
+r2m1ald
+rm1ans
+rm3anz
+r4m3a2p
+r5mapp
+rm1aus
+rm3d
+r3me.
+r2m1ef
+rmen4sc
+r2meo
+rm2es
+r2mide
+r2m1im
+rmi3te
+rm1ope
+rm1o2ri
+rm3sa
+rms2t
+rm5sta
+rmt2
+rmt3h
+rm3ums
+4rn
+rna2b
+r2na4n
+rn5ani
+rn2ant
+r4n3anz
+rn2a2r
+rn3are
+rn5ari
+r2n3au
+rn4aue
+rn3do
+rn3d4r
+r3ne
+r5ne.
+rn3e4ben
+r4nef
+rn4eh
+r5n2ei
+rn3eif
+r6n3eis
+rne2n
+r4n3ene
+r4nerf
+r4nerg
+rn4erhi
+r4nerk
+r4n1ert
+r5nes
+rn4e2t
+r4nex
+rn3g2
+r3ni
+r4n1in3
+r3nod
+r2n1op
+rn1or
+rn1ö
+r1nöt
+rn3s2ä
+rn3s2p
+rn3s2z
+rn5t2e
+rn3th
+rn1ur
r1nü
-ro6bern
-6robs
+r1ny
+ro5ar
+ro4bei
+2robj
+1robo
+2robs
ro1ch
3rock.
-ro5de
-ro1e
-4rofe
-ro8hert
-1rohr
-ro5id
-ro1in
-ro5isc
-6rolym
+r4o3de
+r4odo
+roe4
+ro3et
+2rof
+roh1l
+roh5n
+3r2ohr
+3roi
+ro3in
+ro3le
+rol3l4en
+2roly
+ro2mad
+ro2mer
+4romm
r2on
-6roog
-ro6phan
-r3ort
-ro1s2p
-ro5s6w
-ro4tau
-ro1tr
-ro6ts
-5rout
-r1p
-rpe8re
-rp2f
-r2ps
-r2pt
+3ronn
+rons2
+ron4tan
+ro1ny
+ro1pe
+2ropf
+ro3ph
+r1or
+r2ora
+ror3al
+ro2rat
+ro2rei
+ro2r1o
+ror5th
+ro3sé
+ro3sh
+ro3s2i
+ro5sk
+ro3smo
+ro3sp
+ros4s1c
+ros4sie
+ro4str
+ro2ßu
+ro2tho
+ro2tri
+rots2
+rot3so
+ro3tu
+ro3unt
+3rout
+ro3xa
+ro3z
+rö2b3l
+rö3ch
+2r1öf
+4rög
+röh3
+r1ök
+r2öl
+rö7le
+3römi
+r1ör
+r2ös.
+rö3sc
+3rötu
+2r3p2
+r5pa
+r5p4e
+rpe2re
+rpe4r3in
+rpf4
+r4pli
+rpo4str
+r4ps
+rp3se
+r4p3t
r1q
-2rr
-r1ra
-r1re
-rrer6
-rr6hos
-r5rhö
-r1ri
-r1ro
-rro8f
-rr8or
-rror5a
-r1ru
-r3ry
-r1rä
-r1rö
-r1rü
-2r1s
-r6sab
-r4sanf
-rse6e
-rse5na
-r2sh
-r6ska
-r6ski
+4r1r
+rr2a
+r3rar
+r5räh
+rr1äm
+rrb2
+rr1c
+r3r2e
+rrer4
+r4rew
+rr2h
+rr3hö
+r5ries
+rri3k
+rr2na
+rr2o
+r2r3ob
+rro3m
+r3ru
+r5rü
+rrü1b
+4r1s
+rs2a
+r4s3ab
+r2s3a2d
+rsa4ler
+r2s3amp
+r4s3amt
+r4s3ang
+rs3anp
+r4s3ar
+rsch2e
+r6scherl
+rsch4l
+rs1ebe
+r2s1ein
+rse3le
+rse2n
+rs2end
+rse4ne
+rs3ere
+rs1erö
+rs1ers
+rs1erz
+rs1eta
+r3sho
+r3si
+rs2ka
+r5skal
+r5skan
+rs3kat
+rs2ki
rs2kl
-r8sko
-r2sl
-rs2p
-r6stauf
-r8sterw
-r8stran
-rswi3d4
-r2sz
-2r1t
-rt3art
-r8taut
-r5tei
-rt5eige
-r8tepe
-r4t3erh
-r8terla
-r4t3hei
-r5t6hu
-r4t3int
-rt5reif
-rt1sc
-rt6ser
-rt6s5o
-rt6s5u
-rt5und
-r8turt
-rube6
-ru1en
-1r4uf
-ruf4st
-ru1ie
-2r1umg
-2r1uml
-2rums
-run8der
-run4d5r
-6rundz
-6runf
-8runs
-2r1unt
-2r1ur
-r6us
-ru6sta
-ru3str
-ru6tr
-1ruts
-r1v
-rven1
-rvi2c
-r1w
-r1x
-r1za
-rz5ac
-r6z5al
-r8z1ar
-r8zerd
-r6z5erf
-rz8erh
-rz4t3h
-r8zum
-rä4ste
-räu8sc
-r1öf
-5röhr
-rö5le
-3röll
-5römis
-r1ör
-rö2sc
-3rümp
-1sa.
-1saa
-s3a4ben
-sa2bl
-2s1abs
-6s1abt
-6sabw
-3sack.
-6s3a4der
-1saf
-sa1fa
-4s1aff
-sa5fr
-1sag
-1sai
-sa1i2k1
-4s1akt
-1sal
-sa1la
-4s3alpi
-6salter
-salz3a
-1sam
-s5anb
-san2c
-1sand
-s5angeh
-6sanl
-2s1ans
-6s3antr
-8s1anw
-s1ap
-s6aph
-8sapo
-sap5p6
-s8ar.
-2s1arb
-3sarg
-s1arm
-sa5ro
-2s1art
-6s1arz
-1sas
-1sat
-sat8a
-2s1atl
-sa8tom
-3s8aue
-s5auff
-sau5i
-s6aur
-2s1aus
-5s6ause
-2s1b2
-2sca
-s4ce
-8sch.
-3scha.
-5schade
-3schaf
-3schal
-sch5ame
-8schanc
-8schb
-1sche
-6schef
-8schex
-2schf
+r4sko
+r4skr
+r4sku
+rs3l
+rs4no
+r2s1op
+r4s3ort.
+r3s2p
+r4s3ph
+rs5s2
+r4stant
+rs2tau
+rs2te
+rst5eing
+r4st3erw
+rs2th
+r4stin
+rst3ing
+r5s2tob
+r4s1tot
+r4st3ran
+r5s2wi
+6r1t
+r3tab
+rt1ac
+r2tad
+r3taf
+rt3akr
+r3tal2
+r4t1alm
+rtals1
+rt1am
+rt1an
+rt3anz
+rt1ar
+rt3a6re
+r3tas
+r3tat
+r2t3att
+rt1auf
+r2t1är
+r3te
+r5te.
+rtee2
+rt2ei
+rtei3la
+rte5m4e
+rte2n1
+r7ten.
+r5ter.
+rte1ra
+rte4ran
+rt3erei
+r4t1erh
+r4t1erk
+rt3erle
+r5terli
+r4t3ernä
+rter4re
+r4t3ersc
+rtes2
+rte3sk
+r2th
+rt1he
+rt1hi
+r3tho
+rt1hol
+r3thu
+r3thy
+r4t1id
+r4t1ima
+rt1int
+rt5le
+rto3p
+r2t1o2r
+rt3rec
+r4treis
+r2t3res
+rt4sam
+rt5scha
+rts1eh
+rts1ei
+rt3spe
+rtt4
+r2t1urt
+r3tün
+rt5w
+r3ty
+rt3z2
+ru1a
+ru3a2r
+rube2
+ru3de
+rude2a
+ru2dr
+3ruf
+ru2fa
+ruf4s
+ruf5sc
+4rug
+2ruhr
+5ruin
+ru3ins
+ru1is
+4ruk
+2rum
+4rumf
+ru2mi
+4ruml
+r2ums.
+4rumz
+ru4n
+2r1una
+run2d1a
+2rundd
+run4d3er
+2rundv
+2rundz
+ru5ne
+2r1unf
+2rungl
+2r1uni
+ru5nis
+4runk
+run2kr
+2r1unl
+r1unm
+4runn
+ru5no
+2runs
+4runt
+2runw
+ru3pr
+4r1u2r
+r3ur1e
+5ru3ro
+ru2si
+rus2s1p
+rus6st
+ru2th
+rut1he
+ru2t1o2
+ru2t3r
+rut2s
+4ruz
+ru2z1w
+r2ü
+4rüb
+rü1ben
+rü1ch
+4rüg
+4rümm
+2r1v
+rve4n1e
+rv2s
+2r1w
+rwa5re
+4r1x
+1ry
+ry2c
+ry3t
+2r1z
+rz1ac
+rz2ach
+rz2an
+r2z1ar
+r2z3as
+rz1eck
+r2z1eng
+rz3ents
+r2z1erf
+r2z1erg
+r2z1erk
+rz1erq
+r2z1erw
+rz1id
+r3zof
+r2z1op
+rz1or
+rz2t3ro
+rzu3g2u
+rz1urs
+r3z2wä
+r3z2wec
+8s.
+1sa
+5sa.
+5s4aa
+2s1ab
+sa2be
+3sabet
+sa1b4le
+4sabs
+sa3che
+sacho6
+sa3cr
+2sada
+s3adm
+2s3adr
+sa3fa
+sa4fe
+4s3aff
+sa1f4r
+3sag
+s3a2gr
+5s4ai
+sa1ik
+sail4
+2s1ak
+sa2ka
+3saki
+s4akr
+4s3akt
+3sal.
+3s2a1la
+sal3erb
+sa2l1id
+s1all
+5s4alo
+sal2se
+6s1alt
+5s4alz
+3sam
+5sam.
+5same
+s3ameri
+5samf
+5samk
+5s4amm
+6s5amma
+4s1amn
+4samp
+5sams
+5samu
+s1an
+3s4an.
+2s3a2na
+2s3anb
+s2an2c
+s2and
+san4d3ri
+5sang.
+2s3anh
+3sani
+2sanl
+2s3ans
+san4sk
+san3sp
+4s3anw
+2s3anz
+2s1ap
+sa2po
+3sapr
+2s1ar
+3s4ar.
+3sara
+4s5arb
+3s2ard
+3sari
+s3arl
+s3arm
+s3arr
+3s4ars
+4s3art
+s3a4sp
+6s5asy
+3sat
+sat2a
+5sa3te
+4s3ath
+4s3atl
+4satm
+sa2tr
+sa3ts
+5satz
+sat4z3en
+sat4zer
+s1au
+3sau.
+3saue
+2sauf
+4s5aufb
+3saug
+sau2gr
+3saum
+sauri1
+2s3aus
+4s5ausb
+3s4ause
+s3auß
+sa2vo
+3sax
+3say
+1sä
+3säb
+3säc
+s3ähn
+3säle
+s1ält
+2s1äm
+2s1änd
+3sänge
+2s1är
+sä2s
+3sät
+3säul
+2säuß
+6s3b4
+sba4n
+sber2
+sbe3re
+sby3
+1sc
+2sc.
+s2ca
+2scam
+6scar
+2s1ce
+6sch.
+7s2ch2al
+4schanc
+7schanz
+6schao
+s2chau
+s2chä
+3schäd
+4schb
+2schc
+3sche
+4schef
+sch3ei.
+5scheib
+4schemp
+sch5erla
+4schess
+4schex
+4schf
2schg
2schh
-1schi
-2schk
-5schlag
-5schlu
-6schmäß
-6schnaß
-1scho
-6schord
-6schp
-3schri
-8schric
-8schrig
-8schrou
-6schs
-2scht
-sch3ta
-sch3tr
-1schu
-8schunt
-6schv
+3schi
+schi4e
+s4chim
+4schiru
+4schk
+4schle.
+6schlein
+sch6lit
+4schn.
+s2chö
+2schp
+2schq
+4schre.
+sch5rom
+6schs4
+sch3sk
+sch5ste
+sch5sti
+6scht
+sch3t4a
+sch5te
+3s4chu
+4schunt
+sch2up
+2schv
+4schwet
2schz
-5schö
-5schü
-2sco
-scre6
-6scu
-2s1d
+s2ci
+2scj
+6scl
+6sco
+7s2cop
+2scs
+2scu
+4s1d
+s3da
+sda3me
+s3do
1se
-se5an
-se1ap
-se6ben
-se5ec
-see5i6g
-se3erl
-8seff
-se6han
-se8hi
-se8hö
-6s5eid.
+3se.
+se3a
+se4al
+se5al.
+se5at.
+2s1e2ben
+se3b4r
+2sec
+4s1echo
+4s1echt
+3secl
+3seco
+2sede
+5see
+se1ec
+se2e1i4
+se1er
+2s1eff
+se2gal
+se2gl
+seg4r
+3s2eh
+se2h1a2
+se3he
+se4h1ei
+se4hel
+se4h3erk
+se4hin
+seh1l
+seh1ra
+seh3re
+seh3s
+se2hü
+2s3ei.
+3sei3b
2s1eig
-s8eil
-5sein.
-sei5n6e
-6s5einh
-3s8eit
-3sel.
-se4lar
-selb4
-6s3e4lem
-se8lerl
+5s4ein.
+2s1einb
+s1eind
+sei5n4e
+2seing
+2s1einh
+4s1eink
+4seinl
+2s1einn
+2seinr
+s3einsa
+s3einsä
+4s3einst
+2s1einw
+2seis
+7s4eit
+5s2ek
+s2el.
+se2l1a2
+se3lad
+sela4g
+se3lam
+sel1ec
+2selem
+se2ler
+sel3erl
+sel3ers
+s1elix
+se4l1ö
+s2els
+sel3sz
+sel3tr
+3sem.
+se3ma
2s1emp
-sen3ac
-se5nec
-6s5ents
+5s2en.
+3sena
+se4nag
+se3nal
+2s1endl
+se4ners
+sen3gl
+7seni
+sen3ob
+3s2ens
+sen6stri
+s2ent.
+2s1entf
+6s3entg
+s2enti
+4s3ents
+2sentw
4sentz
-s8er.
-se8reim
-ser5inn
-8sermä
-8s5erzi
-6seröf
-se1um
-8sexa
-6sexp
-2s1f2
-sfal8ler
-2s3g2
-sge5b2
-s1h
-s8hew
-5s6hip
-5s4hop
+se2n1u
+seo2r
+4s1e2pos
+3seq
+5s2er.
+ser3a2d
+se2r3al
+se5ref
+s3ereig
+se4r3eim
+se4r3enk
+ser2er
+2s3erfo
+s2erfr
+4s3erfü
+ser3g
+s1ergä
+s2ergr
+2s1erh
+3seri
+s1erkl
+s1ernä
+2s3ernt
+se1rot
+2s3eröf
+s2ers.
+s4ert.
+ser3the
+seru2
+se4r1uf
+se3rum
+5s6erv
+5ses.
+se3su
+3set
+s3eta
+4se2tap
+se2tat
+4s3e2th
+5setz
+3seum
+se1u4n
+2s1ex
+se2xe
+4sexp
+sex3t
+6s3f
+sfal6l5er
+sfi3le
+4s3g4
+sges4
+sge3sa
+2s1h
+3sha.
+sha2k
+4shan
+3shi.
+3shid
+1shi4r
+sh3n
+4shof
+3shop
+sho6r
+5show
+sh4r
+s3hü
1si
+si3ach.
+5siak
+si1am.
2siat
-si1b
-sicht6s
-6s5i6dee
-siege6s5
-si1en
-si5err
-si1f2
-si1g2n
-si6g5r
-si8kau
-sik1i
-si4kin
-si2kl
-si8kü
-si1la
-sil6br
-si1na
-2s1inf
-sin5gh
-2s1inh
-sinne6s5
+si3b4
+3si1c
+s1ideo
+s2ido
+3s2ie
+si3ene
+si3err
+3si1f4
+5s2ig
+si2g1a
+si3g4n
+si2g3r
+si2k1ab
+si4k3ere
+si4k3erl
+si2ki
+si4k5l
+si4kr
+sik3s
+sik3t4
+si2ku
+si5l2e
+3silo
+2s1imm
+si3n4a
+2s1ind
+4s1inf
+sin2g1a
+sin3gh
+sin3g4l
+sin2gr
+sing5sa
+4s1inh
+sin1i1
+3sinn.
+3sinnl
+2s1inq
2s1ins
-si5ru
-si5str
-4s1j
-s1k2
-6sk.
-2skau
-skel6c
-skelch5
-s6kele
-1s2ki.
-3s4kin.
-s6kiz
-s8kj
-6skn
-2skow
-3skrib
-3skrip
-2sku
-8skü
-s1l
-s8lal
-slei3t
-s4low
-2s1m
-s1n
-6sna
-6snot
+2s1int
+4s1inv
+3s4io
+si3od
+si3os
+3s2is
+si2sa
+si4schu
+si2s1e
+si2s1o
+sis1p
+sis5s
+si2stu
+3s2it
+si2tau
+si2t3r
+sit5s
+si3tu
+5siu
+si2va
+six3
+1sí
+4s5j
+2s1k4
+4sk.
+s3kad
+4s3kam
+4skanz
+4s3kas
+ska4te.
+ska4tes
+4skb
+4ske
+3s2ki.
+3s2kik
+4skir
+3skiz
+s3klas
+4skom
+4skor
+4skö
+s3kra
+4sks
+4sk5t
+3skulp
+2s1l2
+3slal
+4slan
+sl3b
+s5le
+s5li
+3s6lip
+s3lo.
+slo3be
+s3loe
+2s1m2
+s3mu
+2s3n2
+4sna
+sna1b4
+s5ne
+sni3er.
+sni3ers
+4s5not
+4snö
1so
-so1ch
-2s1odo
-so4dor
-6s5o4fen
-solo3
-s2on
-so5of
-4sope
-so1ra
+3so.
+3so4a
+2s1o2b
+so3et
+3soft
+3sog
+so3gl
+so2h
+s1ohe
+so3hi
+6s5ohng
+so3ho
+2s1ohr
+3sol.
+so3la
+so4l3ei
+so3li
+4s3oly
+3s2on
+son3au
+sone2
+son5ende
+son3sä
+so2ny
+so3o
+s1opf
+3sor.
+so1ral
+s1orc
2s1ord
-4sorga
-sou5c
-so3un
-4s3ox
-sp2
-8spaa
-5spal
-1span
-2spap
-s2pec
-s4peis
-1spek
-s6perg
-4spers
-s6pes
-2s1pf
-8sphi
-1s2phä
-1spi
-spi4e
-6s5pig
-6spinse
-2spis
-2spla
-2spol
-5s6pom
-6s5pos
-6spoti
-1spra
-3s8prec
-6spreis
-5spring
-6sprob
-1spru
-s2pul
-1s2pur
-6spy
-5spän
-1spü
-s1q
-2s1r
-2s1s2
-sse8nu
-ssini6s
-ssoi6r
-2st.
-1sta
-4stafe
-2stag
-sta3la
-6stale
-4stalg
-8stalk
-8stamt
-6st5anf
-4stans
-6stanw
-6starb
-sta4te
-6staus
-2stb
-6stc
-6std
-1ste
-4steil
-3s2tel
-st3elb
-8stemb
-6steppi
-8stese
-8stesse
-6stf
-2stg
-2sth
-st1ha
-st3hei
-s8t1hi
-st1ho
-st5hu
-1sti
-sti4el
-4stigm
-sti3na
-6stind
+so2rei
+so3ren
+2s1orga
+2s1o2rie
+so2r1o
+5sorp
+3sors
+so4ru
+3s2os
+5s4os.
+s3ost
+3sota
+so3tr
+3sou
+so3unt
+3sov
+s1o2ve
+s1ox
+1sö
+sö2f
+2s1ök
+2söl
+s1ö4s
+1sp2
+4sp.
+4spaa
+2spak
+3spalt
+s2pan
+spani7er.
+4spano
+4spap
+4spara
+2sparo
+spar5sc
+3s4paß
+2spau
+s2paz
+4spär
+2sped
+s2pee
+3s2pei
+4spel
+2s1peri
+4sperl
+3s2perr
+2spers
+2spet
+3s4pez
+4s3pf
+2sph
+3sphä
+s3phe
+3spi
+5s4pi4e
+7spiel
+spier4
+spi2k
+6s3pil
+4spip
+4s3pis
+2spl
+4spla
+4splä
+4sple
+3s2pli
+4s3plu
+2spo
+4s3pod
+3s2poi
+4s3pok
+4spol
+4s3pos
+s2pott
+4spr.
+3s2prac
+4sprax
+4spräm
+4spräs
+5s4prec
+2spred
+4sprei
+4spres
+2spro
+4sprob
+3s2pru
+5sprun
+2sprüf
+3sprün
+4s3ps
+2spun
+2spup
+5s2pur
+4sput
+3spü
+4spy
+2s1q
+6s3r4
+srat6s
+sret3
+sro3m
+srö4s
+srös1c
+srü2d
+6s1s
+ss2a
+ss3ab
+ssa3be
+ssa3bo
+ss1ack
+ss4ag
+ss3aj
+s3s4al
+s4s5ala
+s4s5alb
+ss4am
+s4s5ang
+ss3ano
+s4s5anz
+s3s4as
+ss3auf
+ss2ä
+ss1ech
+ss1eck
+ssee2
+s2s1ega
+sse3ha
+ss1ein
+sse3inf
+sse3int
+ss1eis
+ss2er
+s3ser.
+sse6r5att
+s3serh
+ss3erhö
+s4s3erse
+s5s4es
+ss4et
+sse3ta
+s3skala
+ss1off
+s4s1op
+s2s1ori
+s3spe
+s3s2po
+ss5re
+ss3s2
+s5st2a
+s7stad
+s5stä
+ss1t6e
+s4ste.
+s5stel
+ss2th
+s5stil
+ss1tis
+s5sto
+s5stu
+s5stü
+ss1ums
+ss2zen
+1st
+6st.
+3sta
+s4ta.
+5staa
+4stabb
+4stabh
+4stabl
+stab6s
+4stabt
+4stabz
+5s4tad
+6stada
+6stadr
+5staff
+6stag
+5stah
+4stak
+4stal.
+5sta5li
+4stalk
+st1alp
+st3ami
+4stamt
+st3ana
+5stand
+4stanl
+6stann
+4stanw
+5star.
+5stars
+5st2art
+sta2s
+st3a4si
+5stat
+4stat.
+s2tati
+5stau.
+5staub
+4st1auf
+4staum
+5staur
+4staus
+5staus.
+4stax
+3stä
+4stäg
+4stält
+4stämt
+5stär
+2stäti
+5stätt
+4stäus
+4stb
+2stc
+st3ch
+2std
+3ste
+4stea
+5stean
+7steck
+4stee
+ste2g5r
+ste2i
+5s4teig
+6steil
+s4tein
+4steing
+s2tel
+s3telem
+stel4l3ä
+ste4mar
+4stempf
+4st3ends
+ste2ne
+st3engl
+st4ens
+6st3entf
+4stentw
+4stepi
+5st6erb
+st2erg
+5sterj
+s2tern
+s2ters
+6st3ese
+4stesse
+ste4stä
+4stests
+5steß
+s2teu
+4steuf
+st3ev
+6stex
+4stf
+4stg
+6sth
+st3ha
+st1hi
+st3ho
+st1hu
+3sti
+5stic
+5stif
+5stil.
+5stile
+5stim
4stinf
-sti8r
-2stk
-2stl
-2stm
-1sto
-6stoll.
-4st3ope
-6stopf.
-6stord
-6stp
-5stra.
-4strai
-3s4tral
-6s5traum
-3straß
-3strec
-6s3tref
-8streib
+st1ins
+st1int
+4stip
+sti2r
+st3iso
+2stj
+4stk
+4stl
+st5le
+4stm
+4stn
+3sto
+4stob
+7stock
+4stod
+5s4to3de
+5stof
+4st3om
+4ston
+4stopo
+4storg
+sto5rin
+4stou
+s4tow
+3stö
+4stöch
+7s2tör
+4s3töt
+4stp
+2stq
+3str
+5s2traf
+4strag
+5strah
+6strai
+5s2tral
+4strans
+5s2tras
+7straß
+6sträg
+4sträne
+4stre.
+4strech
+4stref
5streif
-6streno
-6stres
-6strev
-5s6tria
+st3renn
+4strev
+4stri.
+5s4tria
+4strib
6strig
-5strik
-8strisi
-3s4troa
-s8troma
-st5rose
-4struf
-3strum
-6sträg
-2st1s6
-2stt
-1stu
-stu5a
-4stuc
+stri2k
+2strin
+2stris
+4strisi
+4stroc
+5s2trof
+5s2trok
+st3roll
+stro4ma
+s2tros
+5s2trö
+5struk
+s2trum
+4st3run
+4strup
+6st3s4
+st1sk
+st1sl
+st1sz
+2st3t2
+5stub
+6stuc
+5s2tud
2stue
-8stun.
-2stv
-2stw
-s2tyl
-6stz
-1stä
-8stäg
-1stö
-1stü
-8stüch
+3stuh
+4stuk
+4stumr
+stum4s
+4stumz
+s2tu4n
+6stun.
+2stunf
+3stung
+2st1uni
+2s3tuns
+2stunt
+stu5re
+st1url
+2sturn
+2st1urt
+3st2ü
+4stüch
+s2tück
4stür.
+s2tüt
+2stüte
+6stv
+4stw
+2sty
+3styl
+4st3z2
1su
-su2b1
-3suc
-su1e
-su2fe
-su8mar
-6sumfa
-8sumk
-2s1unt
-sup1p2
-6s5u6ran
-6surte
-2s1v
-2s1w
-1sy
-8syl.
-sy5la
-syn1
-sy2na
-syne4
-s1z
-s4zend
-5s6zene.
-8szu
-1sä
-6s5änd
-6säugi
-6säuß
-5söm
-2s1ü2b
-1süc
-sü8di
-1sün
-5süß
-taats3
-4tab.
-taba6k
-ta8ban
-tab2l
-ta6bre
+su1an5
+3su2b5
+su4ba
+6su3bi
+7su1c
+2s1u2f
+2s1uh
+3sui
+su1is
+su3it.
+su3la
+sul2i
+su2mar
+su2mau
+3sume
+su2m1el
+su6m5ents
+s3umfa
+s3umfe
+3summ
+sumo2
+su2m1or
+s3umsa
+s3umst
+su4n
+3sun.
+sun6derh
+s1unf
+2s1uni
+4s3unt
+3s2up
+su2ra
+2s1url
+s1urt
+su2s1
+su3sa
+su3sh
+su3si
+sus3s
+1sü
+4sü2b
+3sü2d1
+5sün
+4s1v
+4s1w
+swa5re
+sweh2
+6s3wie
+6s3wil
+s3wir
+s3wis
+s2y
+3sy.
+sy2l1
+sy4n1
+1sys
+sy5st
+sy3t
+2s1z
+4s3za
+4s3zei
+3s2zena
+5s2zene
+4s3zent
+s2zes
+s2zeß
+s2zis
+s3zö
+4s3zu
+s3zw
+2ß.
+ß3a2
+ß1ä
+ß1b
+2ß1c
+ß1d
+1ße
+2ß1ec
+2ß1e2g
+2ß1ei
+ße2l
+ßel1a
+ße3lu
+ßen3a
+ßen3g
+ße2ni
+ßen5st
+ßen3sz
+ße2nu
+ße3rin
+3ß2ers.
+ße2t
+ß1ex
+ß1f
+ß3g2
+ßge2bl
+2ß1h
+1ßi
+ßi2g1a
+2ß1in
+ß1j
+2ß1k4
+2ß1l
+ß3la
+2ß1m
+ß5n2
+ß1o2
+ß1ö
+ß3p2
+ß1q
+2ß3r2
+2ß3s2
+ßst2
+2ß1t
+ß2t1h
+ßts4
+1ßu4
+ß1uf
+2ß1um
+ß1uni
+ß1ü
+2ß1v
+2ß1w
+ßwa5r
+ßwa3s
+2ß1z
+6t.
+3ta.
+2taa
+tab4
+2tab.
+ta2b5an
+2t1abb
+1tabel
+4taben
+ta4bend
+2tabf
+4tabg
+4tabh
+4tabk
+ta1bl
+1table
+2tabn
4tabs
-t3absc
-8tabz
-6t3acht
-ta6der
-6tadr
-tad6s
-tad2t
-1tafe4
-1tag
-ta6ga6
-ta8gei
-tage4s
-tag6s5t
-tah8
-tahl3
-tai6ne.
-ta5ir.
-tak8ta
-tal3au
-1tale
-ta8leng
-tal5ert
-6t5a6mer
-6tamp
-tampe6
-2t1amt
-tan5d6a
-tan8dr
-tands5a
-tani5e
-6tanl
-2tanr
-t3ans
-8t5antr
-tanu6
-t5anw
-8tanwa
-tan8zw
-ta8rau
-6tarbe
-1tari
+4t1abt
+ta2bü
+2tabw
+4tabz
+tach3te
+t3ada
+tadi3
+t3adr
+1taf2e
+3tafel
+t1afg
+t1af4r
+3t2ag
+5tag.
+ta2ga
+ta2g5ei
+4t3agent
+ta3ges
+ta3gl
+ta3gn
+4t3a4go
+tag6s
+tag7sc
+tah4
+tah3le
+tahl5sk
+3tai
+ta1i2k
+tai2l
+ta1ins
+tai4r
+ta1ir.
+4t3a2ka
+ta3kes
+3takr
+ta2kro
+tak2ta
+3taktb
+3t2aktu
+3t2al.
+ta1lag
+ta1lak
+1talbu
+tal3d
+3t4ale
+ta3len
+ta4lens
+tal4leg
+tal2lö
+ta2l1op
+ta3lum
+2ta2m
+3tam.
+ta3ma
+3tamg
+ta3mo
+t1ampl
+t1amt
+t2an.
+t1a2na
+ta4nat
+4tanb
+t2and
+tan3da
+tand4st
+ta3ne
+4t1anf
+t2ank
+tan4kl
+tan3kr
+2tanl
+2t1anme
+4t1anna
+1tanne
+t1ans
+4t3ansi
+2t3ansp
+ta4nu
+2tanwa
+2tanwä
+t4anz.
+4tanzei
+tan6zerh
+t1anzu
+ta3or
+ta2pe.
+ta2pes
+2tapf
+t4ar.
+2t1arb
+t1arc
+ta6rens
+3ta3ri
2tark
-2t1arm
-ta1ro
+4t1arm
2tart
t3arti
-6tarz
-ta1sc
-ta6sien
-ta8stem
-ta8sto
-t5aufb
-4taufn
-8taus.
-5tause
-8tausf
-6tausg
-t5ausl
-2t1b2
+ta2ru
+2t1arz
+ta3sa
+1ta3sc
+4t3asp
+1tas2t
+1tat.
+ta2tan
+tat1ei
+ta2tem
+ta2t1er
+ta2th
+tat3he
+t3atl
+t4atm
+ta2tom
+4tatt
+ta2t1um
+tau4fer
+tau3f4li
+2taufw
+1taug
+t1auk
+2taur
+1taus
+2taus.
+t1ausb
+tau6schw
+t1ausd
+3t2ause
+t1ausf
+t3ausg
+t1ausk
+2t1ausl
+t1ausr
+2t3auss
+t1ausü
+4t1ausw
+ta3va
+3tax
+ta3xi
+tä1c
+1täg
+2tägy
+2täh
+3täle
+4t1ält
+2täm
+t1ämt
+t1ängs
+1tänz
+t2är.
+tä2ru
+tä2s4
+tä4st
+2tätt
+t1äug
+1täu3s
+4täx
+1tà
+2t5b
+tbe3r2e
+tblock7en
2t1c
-t6chu
-2t1d
-te2am
-tea4s
-te8ben
-5techn
-4teff
-te4g3re
-te6hau
-2tehe
-te4hel
-2t1ehr
-te5id.
-teig5l
-6teign
-tei8gr
+t3cha
+t3che
+tch2i
+tch3l
+t2chu
+tch1w
+t3cr
+2t3d4
+tdun2
+tdu3s
+1te2a4
+te3al
+te3an
+5t4ebb
+2t1e2ben
+1t2ech
+te1cha
+3techn
+2teck
+3tee
+te1ele
+te1em
+te2e4n1
+te1erw
+4tefe
+2teff
+te2fl
+teg4
+teg3re
+2teh
+te3han
+t2eie
+2teig
1teil
-4teinh
-t5einhe
-4teis
-t5eisen
-8teiw
-te8lam
-te4lar
-4telek
-8telem
-te6man
-te6n5ag
-ten8erw
-ten5k
-tens4p
-ten8tro
-4t3entw
-8tentz
-te6pli
-5teppi
-ter5a6b
-te3ral
-ter5au
-8terbar
-t5erbe.
-6terben
-8terbs
-4t3erbt
-t5erde.
-ter5ebe
-ter5ein
-te8rers
-terf4
-8terhö
-6terklä
-ter8nor
-ter6re.
-t8erscha
-t5e6sel
-te8stau
-t3euro
-te1xa
-tex3e
-8texp
-tex6ta
-2t1f2
-2t1g2
-2th.
-th6a
-5tha.
-2thaa
-6t1hab
-6t5haf
-t5hah
-8thak
+3teiln
+3teilz
+2tein
+tein3ec
+t3einge
+t3einla
+4t1einn
+4teinr
+t1eis.
+t1eisb
+tei5st
+tek3te
+te2la4
+te4l1ab
+tel1ac
+te3lan
+tel1au
+tel1e2b
+tel1ec
+3telef
+3teleg
+te4l1eh
+1te3lem
+tel1en
+te3lep
+te3lex
+4t1elf.
+tel1in
+te2lit
+t4ell
+tel3l2e
+te2lo
+te2l1ö
+tel3s2k
+tel3ta
+tel3t4r
+te2m1ei
+te2mi
+te3mis
+4temo
+te2m1o2r
+3temper
+1tempo
+te4m3u
+t6en.
+te4n3a2
+t4enb
+ten3da
+6t5endf
+4t1endl
+6t5endp
+ten3dr
+te2n1e2b
+te3n4ei.
+ten3eid
+4tenerg
+t1eng.
+te2ni
+ten3im
+ten3in
+t2enl
+t2enm
+t2eno
+t2ens
+4t3ensem
+ten3si
+ten5st
+t1entb
+4tentd
+t1entn
+4tentw
+te2nu
+ten4zer
+ten3zw
+te2o
+te3ob
+t1e2pi
+t6er.
+te1raf
+ter3am
+te3ran.
+te2r3as
+t2erb
+6t5erbs
+6t5erbt
+t3erde.
+te2r1e2b
+te4r3eif
+te2rel
+ter3end
+t4erfr
+4terfül
+ter3g
+t6ergru
+2t1ergu
+2tergü
+te3ria
+ter3k4
+t2erka
+4t3erklä
+t4erli
+4t1erlö
+t4erlu
+1term
+ter4mer
+3termi
+ter4n3ar
+t3erneu
+t1erö
+ter4re.
+1terro
+t6ers.
+t6erscha
+ter4ser
+ter4sk
+terst4
+t4erst.
+t4erste
+t4ersti
+ter5str
+t4erstu
+tert4a
+teru2
+te4r1uf
+ter3z2a
+4t1erzb
+t2es
+tes3ac
+te2sel
+3tesse.
+tes3si
+tes2t
+tes3tät
+te4st3ei
+te7ster.
+te4str
+1tests
+te4stu
+te2su
+te2tat
+6tetl
+3teuf
+te1un
+teu2r5a4
+t5euro
+te2vi
+1te2x
+te3xa
+t1exe
+4t1exi
+4texp
+3text
+2t1exz
+1té
+2t3f
+tfi4l
+2t1g4
+tg2a
+t3ge
+tger2
+4th.
+2t1h2a
+3tha.
+3t2hag
+t2hak
3thal.
-6thals
-6t3hand
-2t1hau
-1the.
-3t4hea
-t1heb
-t5heil
-t3heit
-t3helf
-1theo
-5therap
-5therf
-6t5herz
-1thes
-1thet
-5thi.
+t3hap
+t2har
+4t3hau
+4t1hä
+4thc
+1the
+t2he.
+3thea
+4theb
+t2hec
+2t1hei
+3t2hek
+t1hel
+3t2hem
+5thema
+5theme
+3theo
+t2hera
+t1herd
+2t1herr
+t1herz
+t2hes
+3these
+1thi.
+3thia
2t1hil
-t3him
-8thir
-3this
-t5hj
-2th1l
-2th1m
-th1n
-t5hob
-t5hof
+t1him
+t1hin
+2thk
+4th3l
+4th3m
+2th3n
+4t1hoc
+t1hof
+2t3hoh
+t2hol.
4tholz
-6thopti
-1thr6
+t2hon
+4t3hot
+thou4
+4t3hö
+2thp
+3thr2
+5thrine
4ths
-t1hum
-1thy
-4t1hä
-2t1hö
+4t1hub
+4thun
t1hü
-ti1a2m
-ti1b
-tie6fer
-ti1en
-ti8gerz
-tig3l
-ti8kin
-ti5lat
+2thv
+ti2a
+ti3a2m
+ti3an
+tib4
+ti1ce
+ti3chr
+ti4d3end
+t2ie
+tie3br
+5tief.
+tieg6
+ti1el
+ti2el.
+ti3e2n1
+ti2er
+1tierr
+2tieß
+ti3et
+ti1eu
+5tif.
+ti3fa
+tif3f
+ti1fr
+tihi4
+ti2kam
+ti3k2an
+ti2kr
+ti2la
+ti3las
+ti2lei
+til1ep
1tilg
-t1ind
-tin4k3l
-ti3spa
-ti5str
-5tite
-ti5tr
-ti8vel
-ti8vr
+ti3lo
+ti4lö
+tilt4
+ti2lu
+ti2mag
+tim2m1a
+4t1imp
+ti3na
+t1inb
+4t1ind
+ti5n4e
+t1inf
+tin2g1a
+tin2g3l
+tings2
+ting5st
+t1init
+4t1inj
+tin2k3l
+t2inn
+4t1inse
+4tint
+4t1inv
+3tio
+ti3or
+3tiö
+3tip.
+ti3pl
+1tipp
+1tips
+ti1rh
+t2is
+tisch3w
+ti2sei
+ti2sol
+t4it
+3tite
+5titel
+tium4
+ti2van
+ti2vel
+ti4v3erl
+ti2v1o
+ti4v1r
+ti2za
2t1j
-2t1k2
-2t1l
-tl8a
-2t1m8
-2t1n
-3tobe
-8tobj
-to3cha
-5tocht
-8tock
+2t3k4
+tklat5
+t5kr
+tkü1b
+2t3l2
+tl4e
+tle2r5a
+4t5li
+tli5f
+tlings3
+tli5s
+t5lo
+tlö3s
+2t5m2
+tmen2s
+tmen6t
+tmo4des
+t3mu
+tmüll4s3
+2t5n4
+tna5me
+tnes6
+to5ar
+to5a4t
+1tob
+to3be
+2tobj
+tob4l
+to1ch
+3tocht
+3tod
tode4
-to8del
-to8du
-to1e
-6t5o6fen
-to1in
-toi6r
-5toll.
-to8mene
-t2ons
-2t1ony
-to4per
-5topf.
-6topt
+to2d1er
+tode6s1
+to4d1u
+tok4
+to3la
+tome2
+to4men
+2tomg
+1ton
+to5nik
+to3ny
+3too
+to2pak
+to2pat
+to1pec
+t3opfer
+to3phe
+to2pl
+1topo
to1ra
-to1s
-to6ska
-tos2l
-2toti
-to1tr
-t8ou
-2t1p2
-6t1q
-tr6
-tra5cha
-tra8far
-traf5t
+to2rau
+to4rän
+4torc
+t1ord
+1tore.
+to2r1el
+to3ren
+t1org
+t3orga
+3torh
+tor3int
+to2rö
+1tort
+t1ort.
+to4ru
+to7sc
+to5se
+to4sk
+to3s2p
+tost4
+to5sta
+1toten
+to2tho
+3t4ou
+touil4
+to3un
+3tow
+tö2c
+1töch
+2t1öf
+2t1ök
+3tön
+tö4s
+t1öst
+1töt
+4t3p2
+t5pf4
+2t1q
+t2r4
+2tr.
+tra3bl
+t4rac
+1trach
+tra3cha
+t3rad.
+tra4dem
1trag
-tra6gl
-tra6gr
-t3rahm
-1trai
-t6rans
-tra3sc
-tra6st
-3traue
-t4re.
+3tragö
+2t3rahm
+5t4rai
+3t4ran.
+2trand
+3trank
+t3rann
+3trans
+t3rase
+t3rasi
+2traß
+1traum
+1träc
+t3räd
+1träg
+1träne
+4t5re.
+2treb
2trec
t3rech
-t8reck
-6t1red
-t8ree
-4t1reg
-3treib
-4treif
-8t3reis
-8trepo
-tre6t5r
+t4reck
+2t3red
+t4ree
+1tref
+2trefe
+2trefo
+2treg
+t4rei.
+1t4reib
+2treif
+t3reig
+2t3reih
+t3rein
+t3reis
+t3reiz
+2t3rek
+2t3rel
+t4rem
+t4ren.
+1trend
+t3rent
+2trepe
+2trepo
+1trepp
+t4rer
+t4res.
+1t4ret
+tre2t5r
+t4reu
t3rev
-4t3rez
+2trez
+5t4ré
+2t3rh
1trib
-t6rick
-tri6er
-2trig
-t8rink
-tri6o5d
-trizi5
-tro1a
-3troc
-trocke6
-troi8d
-tro8man.
-tro3ny
-5tropf
-6t5rosa
-t5roß
-5trub
-5trup
-trut5
-1träg
-6t1röh
-5trüb
-trü3bu
-t1rüc
-t1rüs
+t4riche
+3trieb.
+3triebs
+tri4er
+t3rind
+tri3ni
+3trio
+t4rip
+1triu
+trizi1
+tro3b
+1troc
+t4roi
+tro2ke
+tro2mi
+2t3roo
+t4rop
+3tropf
+2troß
+t3röc
+3trög
+2tröt
+3trug
+2truk
+trum2
+trums1
+1trunk
+3t4rup
+t3ruß
+trü1be
+trü1bu
+2t3rüc
+3trümm
+try1
2ts
-ts1ab
-t1sac
-tsa8d
-ts1ak
-t6s5alt
-ts1an
-ts1ar
-ts3auf
-t3schr
-t5schä
-tse6e
-tsee5i
-tsein6s
-ts3ent
-ts1er
-t8serf
-t4serk
-t8sh
-5t6sik
-t4s3int
-ts5ort.
-t5s6por
-t6sprei
-t1st
-t6s5tanz
-ts1th
+4ts.
+t2sa
+t4s3ab
+t5s2ac
+ts3ad
+t3saf
+ts1ah
+ts1al
+t4s1amt
+t4s3ar
+ts3as
+t4sau
+t5sau.
+t2s1än
+ts2c
+t4schar
+tsch2e
+tsch4li
+t4schro
+t2s1e2b
+t3seg
+t4s3e4h
+t3seil
+t4seind
+ts3einl
+ts1em
+tse2n
+ts1eng
+t2s1ent
+t2s1er
+t2s1i2d
+ts1ini
+t2s1ir
+t7sit
+t3skala
+ts3kr
+t2s1o2
+t3sol
+t3som
+t3soz
+t2sö
+t2sp
+t3spal
+t3span
+ts1par
+ts4pare
+t3spas
+t3spek
+ts2pi
+t3s2pon
+t3s2por
+ts5s2
+ts1tak
+ts2tat
+ts3täti
+t4s1tep
+t5s4ter.
+t4sterm
+t5stero
+ts3terr
+t5s4tes.
+t5steu
+ts1tie
+t4s3tis
t6stit
-t4s3tor
-1t2sua
-t2s1uf
-t8sum.
-t2s1u8n
-t2s1ur
-2t1t
-tt5eif
-tte6sa
-tt1ha
-tt8ret
-tt1sc
-tt8ser
-tt5s6z
+ts2to
+ts3toc
+ts3tor
+t4s3trad
+t4strau
+t4s1trä
+t4s1tri
+ts2tro
+t4strop
+ts3trü
+t2s1u
+1tsub
+t3sy
+4t1t
+tt1ab
+tt3ad
+ttag7ess
+t2t1ak
+t3tal
+t3tan
+tt1art
+tta5st
+tt1auf
+tt1ebe
+tt1eif
+tt1ein
+tt1eis
+t3te2l
+tte4la
+tte4l1o
+t3t2er
+tte2s
+tte4s1ä
+t2teti
+t2th
+tt3ha
+tt2häu
+tt1ho
+tt1hu
+t3tra
+t3trä
+t3t4ro
+tt5rom
+tt3ru
+tt3rü
+tt2se
+tt3sec
+tt5se5h
+tt3sel
+tts1p
+tt4s3tem
+tt4ster
+tt4sti
+ttt4
+t2tuc
+tt3z2
+tu1alm
+tu3an
+2tub
1tuc
-tuch5a
-1tu1e
-6tuh
-t5uhr
-tu1i
-tu6it
-1tumh
-6t5umr
-1tums
-8tumt
-6tund
-6tunf
-2t1unt
-tu5ra
-tu6rau
-tu6re.
-tu4r3er
-2t1v
-2t1w
-1ty1
-ty6a
-ty8la
-8tym
-6ty6o
-2tz
-tz5al
-tz1an
-tz1ar
-t8zec
-tzeh6
-tzehn5
-t6z5ei.
-t6zor
-t4z3um
-t6zäu
-5täg
-6täh
-t5ält
-t8än
-täre8
-8tä8st
-6täuß
-t5öffen
-8tö8k
-1tön
-4tüb
-t6ü5ber.
-5tüch
+tu2chi
+1tue
+tue3re
+tu3et
+tuf2e
+tu3fen
+t1u2fer
+2tuh
+tu2k
+tu3ka
+t1ukr
+tu3la
+t2um.
+2tumf
+2tumk
+tum2si
+tum2so
+2t1umt
+3tun.
+2t1una
+2tund
+3tu3ne
+2t1unf
+t1unga
+tun2gl
+tung8s
+2tunif
+2t1u4nio
+3tunn
+1tuns
+2tunt
+t1up.
+tu2ra
+tur3a4g
+tu3ras
+tur3b
+tur1c
+tu4re.
+tu2rei
+tu2r1er
+tur3ere
+tu4res
+tu2r3e4t
+1turn
+tu2ro
+tu3rol
+tur3s2
+tu2ru
+t2us
+tu2sa
+tu4schl
+tu4so
+tu3ta
+tuts3c
+2tüb
+t3übe
+1tüch
+tück4s
+1tüf
1tür.
-u3al.
-u5alb
-u5alf
-u3alh
-u5alk
-u3alp
-u3an.
-ua5na
-u3and
-u5ans
-u5ar.
-ua6th
-u1au
-ua1y
-u2bab
-ubi5er.
-u6b5rit
-ubs2k
-u5bö
-u8büb
+tür1c
+1türe
+1türg
+1türs
+3tüten
+2t1v
+t5vo
+4t1w
+twi4e
+1ty
+2tyl
+ty4le
+ty2pa
+2t1z
+t2z1a2
+tz3an
+tz3as
+t2z1ä
+t5ze.
+t2z1ec
+t2z1eie
+t2z1eis
+tze4n
+tz4ene
+tz3ents
+t2z1erl
+t3ze4s
+tz1imp
+tz1int
+t2zo
+tz1of
+t3zon
+tz1or
+tz2tin
+t2z1w
+2u.
+u3a2b
+u1a4c
+ua3d
+uad4r
+u1al.
+u3alet
+u1alf
+ual3l
+ua2lo
+u1alr
+u1als
+ual3t
+ua2lu
+u1am
+u3ans
+ua2p
+u3ar.
+uar3a2b
+u3ars
+ua3sa
+ua2t3h
+ua5t2i
+u3au
+u1ay
+u1äm
+u1äu
+2u1b
+u3be
+ub3ein
+ub6i
+ub3lic
+ub5los
+u3blö
+ub3lu
+u2bop
+ub3rä
+ub3rit
+ub2sa
+ub2s1o
+ub2spa
+ub3um
+u2b3üb
2uc
+u1ce4
+uces3
+u2ch1a
+u3cha.
+uch3an
+uch1ä
u1che
-u6ch5ec
+u2ch1ec
+uch1ei
+u3ches
u1chi
-uch1l
-uch3m
-uch5n
-uch1r
-uch5to
-ucht5re
+uch3il
+uch1in
+uch3l
+uch5m
+uch3n
+u2ch3r
+uch2so
+uchst4
+uch5str
+uch4tor
+uch2t3r
u1chu
-uch1w
-uck1a
-uck5in
-u1d
-ud4a
-u1ei
-u6ela
-uene8
-u6ep
-u1er
-uer1a
-ue8rerl
-uer5o
-u8esc
-u2est
-u8ev
-u1fa
+uch3ü
+uch3w
+uck2er
+uck3erl
+uck4sta
+u1cr
+2u1d
+u5d2a
+ude3r2e
+ude5sa
+udi3en
+uditi4
+u4don
+ud3ra
+ud2s
+ud3sc
+u1e
+u2ed
+ue2en
+u2eg
+u4ela
+ue2le
+ue2mi
+ue2n1
+u3eni
+uen3k
+uen2zu
+u2ep
+ue2r3a
+u3e2r1ä
+ue2rei
+uer5eife
+u5eremp
+u5erent
+ue4rerg
+uer3g2
+u3erinf
+u3erint
+uerk4
+uer4ne
+uer3o
+u3err
+uert2
+u3erum
+u3erunf
+u3erunt
+u3erur
+uer3z
+ue4s
+ue5se
+ue5sp
+ue2ta
+ue4tek
+uet2s
+uf3ad
+u3fah
+uf1ak
+ufall2
+uf1ar
+uf1au
+u2f1äs
+u2f1ä2ß
u2f1ei
-u4f3ent
-u8ferh
-uf1fr
-uf1l
-uf1ra
-uf1re
-uf1rä
-uf1rü
-uf1s2p
-uf1st
-uft1s
-u8gabt
-u8gad
-u6gap
-ugeb8
-u8gn
-ugo3s4
-u1ha
-u1he
-u1hi
-uh1le
-u1ho
-uh1re
-u1hu
+u2f1em
+u3fen.
+u2fent
+u2f1erh
+uf2ern
+u2f1eß
+2uff
+uf3fe
+uff4l
+uf2fro
+uf3l
+u3fo2r
+uf1ori
+u1fö
+uf3r
+uf5sä
+uf4s3tem
+ufs3ten
+uf4ster
+uft1eb
+uf3ten
+uft3s2
+uft5sa
+2u1g
+u4gabte
+ug1af
+ug1ak
+u2g1ap
+uga4s
+ug3asc
+ug1au
+u4g7e2i
+u2g5ent
+ug5erf
+ug5erl
+uge7sc
+ug3hu
+u2g1l
+ug3lä
+ug5lo
+u3g4lö
+u4g3lu
+u2g3n
+ugo3
+ug1or
+u2gö
+u4g3reis
+ug3ro
+ug3rum
+ug3rüs
+ug3sau
+ug7sc
+ug3s2e
+ug3si
+ug3spa
+ug4spr
+ugs2t
+ugs3te
+ugut2
+u2gü
+u1h
+2uh.
+uhe1ra
+uh1la
+uh1lä
+uh3ma
+uh5me6
+uh3mi
+uh3na
+uhr1a
+uhr3er
+uh1ri
+uh4rin
+uhrt4
+uhr3tr
+uh2ru
uh1w
-u1hä
-u1hö
-6ui
-ui5en
+4ui
+ui2c
+u1ie
+ui1em
u1ig
-u3ins
-uin8tes
-u5isch.
+u2ige
+u3in.
+ui5ne
+u3isch.
+u3ischs
+uisi4n
+ui4st
u1j
-6uk
+ukä2
+u3käu
u1ke
u1ki
u1kl
-u8klu
-u1k6n
-u5ky
-u1la
-uld8se
-u1le
-ul8lac
-ul6lau
-ul6le6l
-ul6lo
-ulni8
-u1lo
-ulo6i
-ult6a
-ult8e
-u1lu
-ul2vr
-u1lä
-u1lö
-3umfan
-5umlau
-umo8f
-um8pho
-u1mu
-umu8s
-u5mö
-u1n1a
-un2al
-un6at
+u3kla
+ukle1i
+u3klo
+u3klö
+u3ko
+u5kö
+u1k4r
+uk2ta
+uk2t3in
+uk2t3r
+u1ku
+uku2s
+u1l
+ul1ab
+ul1am
+ul2ar
+ul1äm
+ulb4
+uld2se
+u2l1el
+ule4n
+ul1erf
+ul1erh
+ul1erw
+ules3a
+ule2t
+ul3eta
+ulg4
+uli2k
+uli5ne
+ul1ins
+ul3ka
+ul2kn
+ull2a
+ul3len
+ul2les
+ul2lö
+ulm3ein
+ulo2i
+ul1or
+ulö3s
+ul2p1h
+ul2s1a
+ul3sp
+uls2t
+uls3z
+ul4tar
+ul2tau
+ul3th
+ul2tri
+u2lü
+ulz2
+ul3zw
+u2m1a2k
+um1all
+um2an
+um1anz
+um1ar
+um1aus
+1umd
+2ume
+um4en
+ument4s
+umer2a
+um1erg
+um1erl
+um1erw
+1umf
+1umg
+um1ins
+um1ir
+1umk
+1uml
+2umm
+um3m2a
+um3n
+u3mon
+umpf4li
+um2pl
+ump3le
+1umr
+1umsat
+um2ser
+um2sim
+um2s1pe
+um2su
+umt2
+um3th
+u2m3ur
+1umz
+u2n
+2un.
+2una.
+1unab
+un1ac
+un4al
+u3nam
+u4n3an
+un1ap
+2u5nas
+un3at
unau2
-6und.
-5undein
+un1ä
+4unc
+un4dab
+un4d1ac
+1unddr
+un4dei
+und3erf
+und5erha
+un2did
+un2do
+un2d3r
+und5re
+4unds.
+und3sp
un4d3um
-3undzw
-undü8
-un8düb
-une2b
-un1ec
-une2h
-un3eis
-3unfal
-1unfä
-5ungea
-3unglü
-ung2s1
-un8gä
-1u2nif
-un4it
-un8kro
-unk5s
-u1no
-unpa2
-uns2p
-unvol4
-unvoll5
-u5os.
+1undvi
+1undzw
+un1e2
+un3ein
+un3el
+une3re
+un4es4
+un3et
+un2gä
+1unget
+1ungew
+un1gl
+1unglü
+un2g1r
+ung3ra
+ung3ri
+ung6s1
+u3ni
+un1ide
+1u4nif
+un1in
+un1ir
+2unis
+un3isl
+1u4niv
+un2k1a
+un2kn
+un2kre
+un2kro
+unks2
+unk3sp
+unk4t3r
+3unku
+un2n3a2d
+un5n4e
+un3no
+un1o
+uno4r
+un2os
+1unr
+uns2
+2uns.
+unsch5el
+un3se
+1unsi
+un3sk
+un3sp
+1unt
+un3ta
+unte2
+un3th
+un3t4r
+2untu
+un1u
+u3nut
+unvol2
+unvoll3
+1unw
+u1o2b
+u3of
+u3or.
+u1or3c
+u1os.
u1pa
-u1pi
-u1p2l
+u1pe2
+uper1
+up2fa
+up3f2e
+up2f1i
+u3pfl
+u3pi
+up2pr
u1pr
-up4s3t
-up2t1a
+up1ru
+up1sl
+upt3a2
+upt3erg
+upt1o
+u1pu
u1q
+2ur.
u1ra
-ur5abs
-ura8d
-ur5ah
-u6rak
-ur3alt
-u6rana
-u6r5ans
-u8rap
-ur5a6ri
-u8ratt
-u1re
-ur3eig
-ur8gri
-u1ri
-ur5ins
-3urlau
-urmen6
-ur8nan
-u1ro
-3ursac
-ur8sau
-ur8sei
-ur4sk
-3urtei
+u3ra.
+u3raba
+ura2be
+u3rak
+u3ral
+ur3alg
+u2r3a2m
+ur1ana
+ur2anb
+u3rand
+ur1ang
+ur2anh
+ur1ans
+u3rant
+ur3a6ren
+u3rati
+ur3att
+ur1au
+u3raz
+2urä
+ur1än
+urb2
+ur3ba
+ur2ble
+urch1
+urch5s
+ur3d2i
+2ure
+ur1eff
+ure3g
+u2rele
+ure4n
+u5ren.
+u2rent
+ur1erh
+ur1erw
+2urf
+urg2a
+ur2gri
+urgros4
+u1r2i
+uri2c
+u2r3im
+ur3ind
+ur1ini
+ur3ins
+ur1int
+ur3inv
+1urlau
+2u1ro
+uro5st
+u1rö
+2urr
+ur2san
+urs3au
+ur2sei
+ur2ser
+ur4sin
+ur5st4r
+ur6sw
+urt4
+ur5te
+ur3th
u1ru
-uru5i6
-uru6r
-u1ry
ur2za
-ur6zä
-ur5ä6m
-u5rö
-u1rü
-urück3
-u1sa
-usa4gi
-u2s1ar
-u2s1au
-u8schec
-usch5wi
+ur2zä
+ur2zi
+ur2zo
+ur2z1w
+u4saf
+us4ann
+u2sau
+u6schent
+usch5wer
+us1ec
u2s1ei
-use8kel
-u8sl
-u4st3a4b
-us3tau
-u3s4ter
-u2s1uf
-u8surn
-ut1ac
-u1tal
-uta8m
-u1tan
-ut1ar
-u1tas
-ut1au
-u1te
-u8teic
-u4tent
-u8terf
-u6terin
-u4t3hei
-ut5ho
-ut1hu
-u1ti
-utine5
-uti6q
-u1to
-uto5c
-u1tr
-ut1sa
-ut1s6p
-ut6stro
-u1tu
-utz5w
-u1u
-u1v
-uve5n
-uve3r4ä
+u3seid
+u7sep
+use1ra
+u2serp
+us4et
+usi3er.
+usi5ers.
+us3li
+us3oc
+u3soh
+u3sol
+us1op
+us3ou
+u3sow
+us3part
+us1pas
+us1pe
+u3spek
+us1pic
+u5s2piz
+us2por
+us2sac
+us6sat
+us2sei
+us3sel
+usse4n
+uss5erfa
+uss3erk
+us5sers
+us2sez
+us2sir
+uss3tät
+us2sü
+u4st1a2b
+u5stal
+us2tat
+u5stä
+u5ste
+us2ten
+us2ter
+us2th
+u5stis
+u5stop
+us1tor
+u4strä
+u5s4trop
+u5stu
+u6s1tur
+u5stüc
+us2ur
+u2sü
+u1sy
+u4sz
+uß3et
+u2ß1u
+2u1t
+u3taf
+ut1alt
+ut1a4m
+u2tanz
+u2t1ap
+u2t3ar
+ut1är
+u3tät
+u3te.
+u2t1e4g
+ute2l
+ut2em
+ute2n1
+u3ten.
+uten3e
+u2tent
+u5ter.
+ute5r4er
+u4t3ersa
+u3tet
+u2tev
+u4t1ex
+u2t1hi
+u2t1ho
+u2t1hu
+uti2q
+u3to.
+uto4ber
+uto3c
+uto3n4
+ut1opf
+u2tops
+ut4or
+u3tos
+ut3rea
+ut3rü
+ut5sa
+ut2s1ä
+ut4schl
+ut3sp
+ut4spa
+ut3te
+ut3t4l
+utts2
+utt3sp
+utu3ru
+utz3eng
+ut2zin
+u1u4
+uufe2
+u1ü2
+u1v4
+u2ve.
+uve3rä
u1w
-u1xe
-u5ya
-uy5e6
-u1yi
-u2z1eh
-u8zerh
-u5ö
-uße6n
-ußen5e
-8vanb
-6vang
-6varb
-var8d
-va6t5a
-va8tei
-va2t1r
+uwa3s
+u1x2
+ux3t
+u1ya
+u1z
+uze4
+uz3ot
+uz1we
+uz3z4
+1üb
+2übd
+übe4
+über1
+ü2b5l
+3üb3r
+3übu
+2üc
+ü1che
+üch3l
+üch4s1c
+üch5t4e
+ück1er
+ück3e4ri
+ü4d3a4
+üdau5
+ü3den.
+üden4g
+ü3d2ens
+üd1o4
+üd1ö4
+ü4d5r
+üd3s
+üdsa1
+üd1t4
+ü4f3a
+ü2f1ei
+ü2f1erg
+üf2fl
+ü2f1i
+üf3l
+üf3te
+ü1g
+ü2g3l
+ü2gn
+üg3s
+üh1a
+ü1he
+ü2h1ei
+ü2h1eng
+ü2h1erk
+ü2h1erz
+üh1i
+ühl1ac
+ühl1ag
+üh5l2e
+üh3li
+üh3mi
+üh3mo
+üh5ne
+ühner5ei
+üh3r4e
+ühr5ei.
+üh5ro
+ühr5ta
+ühs2
+üh3sp
+üh3stu
+üh3te
+ü1hu
+üh1w
+ü1k2
+2ül
+ül1a
+ül2c
+ü5l4e
+ül2la
+ül2l1ei
+ül2lo
+ül4lö
+ü1lu
+ü4ment
+ü2n1a
+ün2c
+ün2da
+ün2dr
+ün2f1
+ün4f3ei
+ün3fl
+ün4fli
+ünf5r
+ün2g3l
+üng5s
+ün3th
+ün2za
+ü1pe
+ü1pi
+ü1pu
+ür1a
+ü2r1ei
+ür2fl
+ür4f3r
+ür4g5eng
+ü1ri
+ü1r2o1
+üro3b
+ü3rofe
+ür4ster
+ür5sti
+ürt2h
+ür3the
+ü1ru
+üs2a
+ü2schl
+üse3h
+üse3l
+üs4sa
+üs4s1c
+üs3se
+üs4st
+ü4sta
+üste3ne
+ü4str
+ü1ß
+ü1ta
+ü2t1al
+ü1te
+ü1ti
+üt3r
+üt2s1
+üt2tr
+ü1tu
+ü1v
+ü1z
+4v.
+3va.
+2v1ab
+va3c
+va3ge
+val2s
+2vang
+2v1arb
+v4at
+va2t3a6
+va2t3h
+va4t1in
+vati8ons.
+va2t3r
+vat5s4
+vat3t
+va2t1u
+vat3z
+2v1au
+vä1
2v1b
-6v5c
-6vd
-1ve
-6ve5g6
+2v1d
+ve2
+ve3ar
+ve3b
+ve3c
+ve3d
+ve3g
+ve3h
+veit4
+veits1
+ve3la
+ve4l1au
+ve3le
+ve3li
+veli5ne
+ve3lo
+ve3ma
+ve3mu
+ve3nal
+ve3ne
+ve3ni
+ven3k
+ve3nö
+ve3nu
+ve3o
ver1
-ver5b
-verb8l
-ve2re2
-verg8
-ve2ru8
-ve1s
-ve2s3p
-ve3xe
-2v1f
+ver3a
+ve3rad
+ve5rand
+ve5ras
+ver3b4
+ver3d2
+vere2
+ve3reie
+ve3ren
+verf4
+verg4
+ve3ri
+ve5ris
+ve5rit
+ver5sta
+ve3s
+2vesc
+2vese
+ve4s1p
+ves2t
+ve3ta
+vete1
+vete3r
+ve3tr
+2veü
+ve3v
+ve5x2
+ve7xe
+2v1f4
2v1g
-6v5h
-vi6el
-vie6w5
-vi1g4
-vi8leh
-vil6le.
-8vint
-vi1ru
-vi1tr
+2v1h
+vi2a
+vi3an
+vi4a3t
+vi4c
+vi3de
+vie2h3a
+vi2el
+vi2er
+vie2w1
+vig2
+vi3ka
+vi2l1a
+vi2leh
+vi2l1in
+vil3l
+2v1i2m
+vi4na
+vin2s
+2v1int
+3vio
+vi3sa
+vise4
+vi3s2o
+vis2u
+vize5
2v1k
-2v1l
+2v1l2
2v1m
-4v5n
-8vo8f
-voi6le
-vol8lend
-vol8li
-v2or1
-vo2re
-vo8rin
-vo2ro
+2v1n
+2v1ob
+vo2gu
+vol6l5end
+vol6lerw
+vol2li
+2v1op
+vo2r1
+vor3a
+vor3d
+vor3g
+vo3ri
+vo5rig
+vor3o
+vorö4
+3voy
2v1p
-8vra
-v6re
+v3pf
+v1ra
+3vri
+v1ro
2v1s
+v3s2z
2v1t
+2vumf
2v1v
-4v3w
+2v1w
2v1z
-waffe8
-wa6g5n
-1wah
-wah8n
-wa5la
-wal8din
-wal6ta
-wan4dr
-5ware
-wa8ru
-war4za
-1was
-w5c
+4w.
+w2a
+wab2bl
+wa3d
+waffe2
+1wag
+wa3ge
+wa2g5n
+wa2gr
+wa3gra
+3wah
+wahl5ent
+wah3ru
+wai2b
+1wal
+3wald
+wal4da
+wal2to
+walt4st
+wa2p
+wa4r
+wa5ra
+1wa3r2e
+ware1i
+wa5ri
+wart4e
+wa5ru
+1wa2s
+wa3sa
+wa3sh
+wa3si
+was5s4
+1wäh
+1wäl
+wäm3
+1wäs
+wäs2c
+wä5sche
+w1b
+2w1c
w1d
-5wech
-we6fl
-1weg
-we8geng
-weg5h
-weg3l
-we2g1r
-weh6r5er
-5weise
-weit3r
-wel2t
-welt3r
-we6rat
-8werc
-5werdu
-wer4fl
-5werk.
-wer4ka
-wer8ku
-wer4ta
-wer8term
-we2sp
-we8stend
+weat3
+we3be
+4webeb
+we3d
+we2e2
+weed1
+we2fl
+3weg
+we2g5a
+we2g5l
+we4g3r
+wegs2
+weg3sp
+1weh
+we3he
+wei4bl
+2weie
+weis4s3p
+wei5str
+wei3ße
+wei4tr
+weit3s
+wel2s
+wel3se
+wel2t1
+wel4t3a
+wel6tend
+wel4tr
+wen3a6
+we3ni
+wen4k3ri
+we2r3a
+wer2bl
+1werbu
+werd2
+werde3i
+5werdens
+1werdu
+wer2fl
+2werg
+we4r1io
+1werk.
+1werke
+wer2kl
+wer2ku
+wer4sta
+wer2ta
+wer4tei
+wer6t5erm
+wer4to
+1werts
+1we5se
+wesen4s3
+we3si
+we2s1p
+wes2t
+we4st1a
+we4st3ei
+we5sten.
+we5stens
we6steu
-we8str
-we8stö
-wet8ta
-wich6s5t
-1wid
-wi2dr
-wiede4
-wieder5
-wik6
-wim6ma
-win4d3r
-5wirt
-wisch5l
-1wj
-6wk
+we6sti
+we4st1o2
+we4stö
+we4st3r
+we4stu
+wet2s
+wett3s
+2w1g
+w3ho
+3wid
+wi2e
+wie3l
+wie5ne
+wie4st
+wi3k2
+wim4m3u
+win4d3ec
+win2dr
+win2e
+win8n7ersc
+win4num
+wi4r
+1wirt
+wi5s4e
+1wiss
+wi3th
+1witzl
+3wj
+2wk
2w1l
-8w1n
-wo1c
-woche6
-wol6f
-wor6t5r
-6ws2
-w1sk
-6w5t
-5wunde.
-wun6gr
-wu1sc
-wu2t1
-6w5w
-wy5a
-wärme5
-wä1sc
-1xag
-x1ak
-x3a4men
-8xamt
-x1an
-8x1b
+2w1m
+2wn
+wn3sh
+1wo1c
+wo2cha
+woche4
+1woh
+woh4l
+1wolf
+wolf4s
+wol4la
+wol4ler
+wor3a
+wo2r3i
+wor2t3r
+wo4r3u
+wot2
+1wöc
+wört2h
+wör3the
+2w1p
+1wr
+w1ro
+2ws
+w3s2k
+2w1t
+wti2
+w2u
+1wuc
+wuls2
+wun2s
+4wur.
+wur2fa
+1wurst
+wus4
+1wu2t1
+1wüh
+wüs4
+2w1w
+6x.
+x1a
+1xa.
+2xab
+1xad
+1xae
+xa1fl
+1x2a3g
+xa4m
+xa3me
+xa5mer
+2xan
+3xas
+2x1b
x1c
-1xe.
-x3e4g
-1xen
-xe1ro
-x1erz
-1xes
-8xf
-x1g
-8x1h
+4x1d
+1xe
+x1e4g
+2xek
+xe2l
+xe3lei
+x1em
+7x2em.
+xemp6
+3x2en
+xens2
+xen3sa
+x2er.
+5xere
+xers2
+3xes
+2x3eu
+2x1f
+2x1g
+2x3h
1xi
-8xid
-xi8so
-4xiste
-x1k
-6x1l
+xib4
+xi1c
+xich2
+2xid
+xide2
+xi2d1em
+x1i2do
+xie3l
+xi3g4
+xi2lo
+xi2l1u
+xins2
+xin3sk
+x2is
+xi2s1e
+xi2s1o2
+xis5s
+xi5stä
+xi2su
+x1i2tu
+x1j
+x1k4
+2x3l
x1m
-8xn
-1xo
-8x5o6d
-8x3p2
+2x1n
+x1or
+4x3p
+x1q
x1r
-x1s6
-8x1t
-x6tak
-x8terf
-x2t1h
+2x3s2
+4x1t
+x2t1a
+xt3an
+x3t4as
+x2t1ä
+x3tät
+x2t1e2d
+x2t1ei
+x3teil
+x2tent
+x2t1erf
+xtra1b6
+x2t3ran
+xt3s2
+x2t1u
+x3tur
1xu
-xu1e
-x5ul
-6x3w
+xu1a
+x1u4n
+xu2s
+x1v
+2x1w
+1xy.
+1xys
x1z
-5ya.
-y5an.
-y5ank
+2y1ab
+1yac
+y1al.
+y1a2m
+yan2g
+y3ät
y1b
y1c
-y6cha
-y4chia
+y2chi
+y3chis
+ych5n
y1d
-yen6n
-y5ern
+y3d4r
+y1e
+y2ef
+yen4n
+y2es2
+ye3sp
+y3e4st
+ye2th
+y1f
y1g
-y5h
-y5in
+ygie5
+y1h
+yhr2
+y1i4
y1j
-y1k2
-y1lak
-yl1al
-yla8m
-y5lax
-y1le
-y1lo
-y5lu
-y8mn
-ym1p2
-y3mu
-y1na
-yno2d
-yn1t
-y1on.
-y1o4p
-y5ou
-ypo1
-y1pr
-y8ps
+y1k4
+yk5s
+y1l
+yl3a2m
+y3lant.
+y3l4ante
+yl3c
+y5len
+y5ler
+yli4n
+yloni1
+y2l1u
+yma2t
+ym3p2
+ympi3e
+y2ne
+y2n3o
+yn3t
+y1of
+yom2
+yon4i
+y1ont
+y3ou
+y1p
+ypa2
+yp5an
+ype2
+yper3t
+y3ph
+y2p1in
+ypo3
+y4ps
+yp3t
y1r
-yri3e
-yr1r2
-y1s
-ys5iat
-ys8ty
+y3r2e
+y3ri
+yri1e
+y3ro
+y1s2
+y5sc
+y3sh
+ys3k
+y3sp
+ys3s
+yst4
+y3sty
+y3sz
y1t
-y3w
-y1z
-yä8m
-z5a6b
-zab5l
-8za6d
-1zah
-za5is
-4z3ak
-6z1am
-5zange.
-8zanl
-2z1ara
-6z5as
-z5auf
+y2t2h
+yto5s
+yu2r
+yure3
+y1v
+y1w
+y1y
+y1z2
+6z.
+2z3a2b
+za1cha
+za1chä
+z3a2d
+za3de
+2z1af
+za3gr
+3z2ah
+2z3a2k
+za3li
+2z1all
+2z1am
+z3ambik
+3zambiq
+z1an
+2z3anf
+3zani
+3zar.
+2z1arb
+3za3re
+z1arm
+3za3ro
+za5st4
+2z3at
+3zaub
+z1au2f
+z3aug
3zaun
-2z1b
-6z1c
-6z1d
+za3v
+zä2
+2z1äc
+3z2äh
+2z1äm
+zäng5
+z1ärg
+z1ärm
+4z3b4
+zbü1b
+zbübe5
+4z3c
+2z3d
+zdä1
1ze
-ze4dik
-4z3eff
-8zein
-zei4ta
-zei8ters
-ze6la
-ze8lec
-zel8th
-4zemp
-6z5engel
-zen8zin
-8zergä
-zer8i
-ze1ro
-zers8
-zerta8
-zer8tab
-zer8tag
-8zerz
-ze8ste
-zeu6gr
+ze3a
+2zeck
+ze1e
+2z1eff
+zei3la
+zeile4
+2z1ein
+zei5s2
+zei3sk
+zeist4
+zeit1a
+zei4tak
+zeit7ende
+zei4t3er
+zei2tr
+zeit3sp
+ze4l1a2
+zel3ad
+zel1er
+zel1in
+zel5l4a
+zel5lä
+zel4leh
+zel4lin
+zel3spr
+zel3sz
+zel3th
+zelu2
+ze5m4e
+2z1emp
+5zen.
+ze6n1ac
+zen3s2e
+zen2ta
+5zentr
+zent3sk
+2zentw
+ze2nu
+zen4zer
+5z2er.
+ze2r3a
+ze2r1e2b
+2z1ergä
+4z3ergeb
+z3erhal
+2zerhö
+ze3ri
+zer3k2
+3zerl.
+5z2ern
+zer4neb
+zer6n3ei
+2zerq
+5zerr
+z2ers
+2z3ersa
+4zerste
+zert2a2
+zer4t3ag
+zer4ter
+zer4tin
+zer6t5rau
+2zerz
+3zerza
+z1erzi
+ze2sä
+ze5sc
+ze2s1i
+ze3sku
+ze2s3p
+zes4ser
+zes1tr
+ze2ß1
+ze2tr
2z1ex
-2z1f8
-z1g
-4z1h
-1zi
-zi1en
-zi5es.
-4z3imp
-zi1na
-6z5inf
-6z5inni
-zin6s5er
-8zinsuf
-zist5r
-zi5th
-zi1tr
-6z1j
-2z1k
+2z3f
+2z1g
+zger2a
+2z1h
+z2hen
+3zi.
+zid5r
+zi1erh
+zi1es.
+3z2ig
+zil2e
+zil3l
+z2imm
+2zimp
+3zine
+zin4er
+2z1inf
+z1inh
+zin4ser
+4zinsuf
+2z1inv
+zi2o
+zi3op
+zirk4
+zirk6s
+zi3s2z
+zit2h
+2z1j
+2z3k4
+zkü1b
2z1l
+z3la
2z1m
-6z1n
-1zo
-zo6gl
-4z3oh
-zo1on
-zor6na8
-4z1p
-z5q
-6z1r
-2z1s8
+2z3n2
+2zob
+2zof
+z1oh
+3zol
+zol3lu
+zon6ter
+zo2o
+zo2r
+zo3re
+zor4ne
+zo5se
+2z1osz
+2zot
+2z1ö2f
+zö7li
+2z3p2
+2z1q
+2z3r2
+4z3s2
2z1t
-z4t3end
+z2t1au
+z3te
+z4tehe
+zte3o
+zte5str
+z2t1h
z4t3hei
-z8thi
-1zu
-zu3al
-zu1b4
-zu1f2
-6z5uhr
-zun2a
-8zunem
-zunf8
-8zungl
-zu1o
-zup8fi
-zu1s8
-zu1z
+z3t2her
+zt3ho
+zt1ins
+zt3rec
+zt3s2
+zu1
+zu3a
+zub4
+zu2c
+zud4
+zu3f4
+zu2g1ar
+zu3gl
+zu2g1un
+2z1uhr
+2z1um.
+zumen2
+2zumf
+2zumg
+2zuml
+2z1ums
+zu3nä
+zu3n2e
+2zunt
+zu3nu
+zu3nü
+zu3r2a
+2z1urk
+2z1url
+2zurs
+2z1urt
+zu3s2
+zu3t
+zuz2
+2züb
+zür1c
2z1v
-zw8
-z1wal
-5zweck
-zwei3s
-z1wel
-z1wer
-z6werg
-8z5wes
-1zwi
-zwi1s
-6z1wo
-1zy
-2z1z
-zz8a
-zzi1s
-1zä
-1zö
-6zöl.
-zö1le
-1zü
-2z1ü2b
-ä1a6
-äb1l
-ä1che
-ä3chi
-äch8sc
-äch8sp
-ä5chu
-äck5a
-äd1a
-äd5era
-ä6d5ia
-ä1e
-ä5fa
-äf1l
-äft6s
-äg1h
-äg3le
-ä6g5nan
-äg5str
-ä1he
-ä1hi
-äh1le
-äh5ne
-1ähnl
-äh1re
-äh5ri
-äh1ru
-ä1hu
-äh1w
-6äi
-ä1isc
-ä6ische
-ä5ism
-ä5j
-ä1k
-äl1c
-ä1le
-ä8lei
-äl6schl
-ämi1e
-äm8n
-äm8s
-ä5na
-5änderu
-äne5i8
-äng3l
-änk5l
-ä1no
-än6s5c
-ä1pa
-äp6s5c
-3äq
-är1c
-ä1re
-äre8m
-5ärgern
-är6gl
-ä1ri
-3ärmel
-ä1ro
-ärt6s5
-ä1ru
-3ärztl
-ä5rö
-ä6s5chen
-äsen8s
-äs1th
-äta8b
-ä1te
-äteri4
-äter5it
-ä6thy
-ä1ti
-3ätk
-ä1to
-ät8schl
-äts1p
-ä5tu
-äub1l
-äu1e
-1äug
-äu8ga
-äu5i
-ä1um.
-ä1us.
-1äuß
-ä1z
-ö1b
-ö1che
-ö5chi
-öch8stei
-öch8str
-öcht6
-5ö6dem
-5öffn
-ö1he
-öh1l8
-öh1re
-ö1hu
-ö1is
-ö1ke
-1ö2ko
-1öl.
-öl6k5l
-öl8pl
-ö1mu
-ö5na
-önig6s3
-ö1no
-ö5o6t
-öpf3l
-öp6s5c
-ö1re
-ör8gli
-ö1ri
-ör8tr
-ö1ru
-5österr
-ö1te
-ö5th
-ö1ti
-ö1tu
-ö1v
-ö1w
-öwe8
-ö2z
-üb6e2
-3ü4ber1
-üb1l
-üb1r
-5ü2bu
-ü1che
-ü1chi
-ü8ch3l
-üch6s5c
-ü8ck
-ück1a
-ück5ers
-üd1a2
-ü6deu
-üdi8t
-ü2d1o4
-üd5s6
-üge4l5a
-üg1l
-üh5a
-ü1he
-ü8heh
-ü6h5erk
-üh1le
-üh1re
-üh1ru
-ü1hu
-üh1w
-ü3k
-ü1le
-ül4l5a
-ül8lo
-ül4ps
-ül6s5c
-ü1lu
-ün8da
-ün8fei
-ünk5l
-ün8za
-ün6zw
-ü5pi
-ü1re
-ü8rei
-ür8fl
-ür8fr
-ür8geng
-ü1ri
-ü1ro
-ür8sta
-ür8ster
-ü1ru
-üse8n
-ü8sta
-ü8stes
-ü6s5tete
-ü3ta
-ü1te
-ü1ti
-üt8tr
-ü1tu
-üt8zei
-ü1v
-ß1a8
-5ßa.
-ß8as
-ß1b8
-ß1c
-ß1d
-1ße
-ß5ec
-8ße8g
-8ße8h
-2ß1ei
-8ßem
-ß1f8
-ß1g
-ß1h
-1ßi
-ß1k
-ß1l
-ß1m
-ßmana8
-ß1n
-ß1o
-ß1p8
-ß5q
-ß1r
-ß1s2
-ßst8
-ß1ta
-ß1te
-ßt3hei
-ß1ti
-ß5to
-ß1tr
-1ßu8
-6ß5um
-ß1v
-ß1w
-ß1z
-}
-
-% end pattern data
-
+zw2
+4zwah
+zwan2d1
+4z3wäl
+2zweg
+z2weig
+2z1wel
+2z1wen
+2zwer
+4zwerk
+z1wes
+4zwir
+z2wit
+2z1wo
+2zwö
+z1wur
+2z1wü
+zy1ank
+6z1z
+z3z4a
+z3zi
+z3zo
+zzoll2}
diff --git a/Master/texmf-dist/tex/context/patterns/lang-deo.rme b/Master/texmf-dist/tex/context/patterns/lang-deo.rme
new file mode 100644
index 00000000000..3997cda14a9
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/lang-deo.rme
@@ -0,0 +1,31 @@
+% generated by mtxrun --script pattern --convert
+
+% dehypht-x-2008-06-18.pat
+
+\message{German Hyphenation Patterns (Traditional Orthography) `dehypht-x' 2008-06-18 (WL)}
+
+% TeX-Trennmuster für die traditionelle deutsche Rechtschreibung
+%
+%
+% Copyright (C) 2008 Werner Lemberg <wl@gnu.org>
+%
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt; either
+% version 1 of the License, or any later version.
+%
+%
+% The word list is available from
+%
+% http://repo.or.cz/w/wortliste.git?a=commit;h=469951d78911b130c2c50f0bc327d2c5d1204895
+%
+% The used patgen parameters are
+%
+% 1 1 | 2 5 | 1 1 1
+% 2 2 | 2 5 | 1 1 1
+% 3 3 | 2 6 | 1 1 1
+% 4 4 | 2 6 | 1 1 1
+% 5 5 | 2 7 | 1 1 1
+% 6 6 | 2 7 | 1 1 1
+% 7 7 | 2 9 | 1 4 1
+% 8 8 | 2 9 | 1 4 1
diff --git a/Master/texmf-dist/tex/context/patterns/lang-en.hyp b/Master/texmf-dist/tex/context/patterns/lang-en.hyp
deleted file mode 100644
index ec2165d8110..00000000000
--- a/Master/texmf-dist/tex/context/patterns/lang-en.hyp
+++ /dev/null
@@ -1,42 +0,0 @@
-% context hyphenation file, see lang-all.xml for original comment
-
-% source of data: ushyphmax.tex ushyph.tex hyphen.tex
-
-% begin description data
-
-% <!-- copied from lang-all.xml
-%
-% <?xml version='1.0' standalone='yes'?>
-%
-% <description language='en'>
-% <sourcefile>hyphen.tex</sourcefile>
-% <title>Plain TeX hyphenation patterns for the English language (US) </title>
-% <remarks>[NOT TO BE CHANGED IN ANY WAY!]</remarks>
-% <copyright/>
-% </description>
-%
-% end of copy -->
-
-% end description data
-
-% begin hyphenation data
-
-\hyphenation {
-as-so-ciate
-as-so-ciates
-dec-li-na-tion
-oblig-a-tory
-phil-an-thropic
-present
-presents
-project
-projects
-reci-procity
-re-cog-ni-zance
-ref-or-ma-tion
-ret-ri-bu-tion
-ta-ble
-}
-
-% end hyphenation data
-
diff --git a/Master/texmf-dist/tex/context/patterns/lang-en.pat b/Master/texmf-dist/tex/context/patterns/lang-en.pat
deleted file mode 100644
index 0ec0deb130e..00000000000
--- a/Master/texmf-dist/tex/context/patterns/lang-en.pat
+++ /dev/null
@@ -1,4966 +0,0 @@
-% context pattern file, see lang-all.xml for original comment
-
-% source of data: ushyphmax.tex ushyph.tex hyphen.tex
-
-% begin description data
-
-% <!-- copied from lang-all.xml
-%
-% <?xml version='1.0' standalone='yes'?>
-%
-% <description language='en'>
-% <sourcefile>hyphen.tex</sourcefile>
-% <title>Plain TeX hyphenation patterns for the English language (US) </title>
-% <remarks>[NOT TO BE CHANGED IN ANY WAY!]</remarks>
-% <copyright/>
-% </description>
-%
-% end of copy -->
-
-% end description data
-
-% begin pattern data
-
-\patterns {
-.ach4
-.ad4der
-.af1t
-.al3t
-.am5at
-.an5c
-.ang4
-.ani5m
-.ant4
-.an3te
-.anti5s
-.ar5s
-.ar4tie
-.ar4ty
-.as3c
-.as1p
-.as1s
-.aster5
-.atom5
-.au1d
-.av4i
-.awn4
-.ba4g
-.ba5na
-.bas4e
-.ber4
-.be5ra
-.be3sm
-.be5sto
-.bri2
-.but4ti
-.cam4pe
-.can5c
-.capa5b
-.car5ol
-.ca4t
-.ce4la
-.ch4
-.chill5i
-.ci2
-.cit5r
-.co3e
-.co4r
-.cor5ner
-.de4moi
-.de3o
-.de3ra
-.de3ri
-.des4c
-.dictio5
-.do4t
-.du4c
-.dumb5
-.earth5
-.eas3i
-.eb4
-.eer4
-.eg2
-.el5d
-.el3em
-.enam3
-.en3g
-.en3s
-.eq5ui5t
-.er4ri
-.es3
-.eu3
-.eye5
-.fes3
-.for5mer
-.ga2
-.ge2
-.gen3t4
-.ge5og
-.gi5a
-.gi4b
-.go4r
-.hand5i
-.han5k
-.he2
-.hero5i
-.hes3
-.het3
-.hi3b
-.hi3er
-.hon5ey
-.hon3o
-.hov5
-.id4l
-.idol3
-.im3m
-.im5pin
-.in1
-.in3ci
-.ine2
-.in2k
-.in3s
-.ir5r
-.is4i
-.ju3r
-.la4cy
-.la4m
-.lat5er
-.lath5
-.le2
-.leg5e
-.len4
-.lep5
-.lev1
-.li4g
-.lig5a
-.li2n
-.li3o
-.li4t
-.mag5a5
-.mal5o
-.man5a
-.mar5ti
-.me2
-.mer3c
-.me5ter
-.mis1
-.mist5i
-.mon3e
-.mo3ro
-.mu5ta
-.muta5b
-.ni4c
-.od2
-.odd5
-.of5te
-.or5ato
-.or3c
-.or1d
-.or3t
-.os3
-.os4tl
-.oth3
-.out3
-.ped5al
-.pe5te
-.pe5tit
-.pi4e
-.pio5n
-.pi2t
-.pre3m
-.ra4c
-.ran4t
-.ratio5na
-.ree2
-.re5mit
-.res2
-.re5stat
-.ri4g
-.rit5u
-.ro4q
-.ros5t
-.row5d
-.ru4d
-.sci3e
-.self5
-.sell5
-.se2n
-.se5rie
-.sh2
-.si2
-.sing4
-.st4
-.sta5bl
-.sy2
-.ta4
-.te4
-.ten5an
-.th2
-.ti2
-.til4
-.tim5o5
-.ting4
-.tin5k
-.ton4a
-.to4p
-.top5i
-.tou5s
-.trib5ut
-.un1a
-.un3ce
-.under5
-.un1e
-.un5k
-.un5o
-.un3u
-.up3
-.ure3
-.us5a
-.ven4de
-.ve5ra
-.wil5i
-.ye4
-4ab.
-a5bal
-a5ban
-abe2
-ab5erd
-abi5a
-ab5it5ab
-ab5lat
-ab5o5liz
-4abr
-ab5rog
-ab3ul
-a4car
-ac5ard
-ac5aro
-a5ceou
-ac1er
-a5chet
-4a2ci
-a3cie
-ac1in
-a3cio
-ac5rob
-act5if
-ac3ul
-ac4um
-a2d
-ad4din
-ad5er.
-2adi
-a3dia
-ad3ica
-adi4er
-a3dio
-a3dit
-a5diu
-ad4le
-ad3ow
-ad5ran
-ad4su
-4adu
-a3duc
-ad5um
-ae4r
-aeri4e
-a2f
-aff4
-a4gab
-aga4n
-ag5ell
-age4o
-4ageu
-ag1i
-4ag4l
-ag1n
-a2go
-3agog
-ag3oni
-a5guer
-ag5ul
-a4gy
-a3ha
-a3he
-ah4l
-a3ho
-ai2
-a5ia
-a3ic.
-ai5ly
-a4i4n
-ain5in
-ain5o
-ait5en
-a1j
-ak1en
-al5ab
-al3ad
-a4lar
-4aldi
-2ale
-al3end
-a4lenti
-a5le5o
-al1i
-al4ia.
-ali4e
-al5lev
-4allic
-4alm
-a5log.
-a4ly.
-4alys
-5a5lyst
-5alyt
-3alyz
-4ama
-am5ab
-am3ag
-ama5ra
-am5asc
-a4matis
-a4m5ato
-am5era
-am3ic
-am5if
-am5ily
-am1in
-ami4no
-a2mo
-a5mon
-amor5i
-amp5en
-a2n
-an3age
-3analy
-a3nar
-an3arc
-anar4i
-a3nati
-4and
-ande4s
-an3dis
-an1dl
-an4dow
-a5nee
-a3nen
-an5est.
-a3neu
-2ang
-ang5ie
-an1gl
-a4n1ic
-a3nies
-an3i3f
-an4ime
-a5nimi
-a5nine
-an3io
-a3nip
-an3ish
-an3it
-a3niu
-an4kli
-5anniz
-ano4
-an5ot
-anoth5
-an2sa
-an4sco
-an4sn
-an2sp
-ans3po
-an4st
-an4sur
-antal4
-an4tie
-4anto
-an2tr
-an4tw
-an3ua
-an3ul
-a5nur
-4ao
-apar4
-ap5at
-ap5ero
-a3pher
-4aphi
-a4pilla
-ap5illar
-ap3in
-ap3ita
-a3pitu
-a2pl
-apoc5
-ap5ola
-apor5i
-apos3t
-aps5es
-a3pu
-aque5
-2a2r
-ar3act
-a5rade
-ar5adis
-ar3al
-a5ramete
-aran4g
-ara3p
-ar4at
-a5ratio
-ar5ativ
-a5rau
-ar5av4
-araw4
-arbal4
-ar4chan
-ar5dine
-ar4dr
-ar5eas
-a3ree
-ar3ent
-a5ress
-ar4fi
-ar4fl
-ar1i
-ar5ial
-ar3ian
-a3riet
-ar4im
-ar5inat
-ar3io
-ar2iz
-ar2mi
-ar5o5d
-a5roni
-a3roo
-ar2p
-ar3q
-arre4
-ar4sa
-ar2sh
-4as.
-as4ab
-as3ant
-ashi4
-a5sia.
-a3sib
-a3sic
-5a5si4t
-ask3i
-as4l
-a4soc
-as5ph
-as4sh
-as3ten
-as1tr
-asur5a
-a2ta
-at3abl
-at5ac
-at3alo
-at5ap
-ate5c
-at5ech
-at3ego
-at3en.
-at3era
-ater5n
-a5terna
-at3est
-at5ev
-4ath
-ath5em
-a5then
-at4ho
-ath5om
-4ati.
-a5tia
-at5i5b
-at1ic
-at3if
-ation5ar
-at3itu
-a4tog
-a2tom
-at5omiz
-a4top
-a4tos
-a1tr
-at5rop
-at4sk
-at4tag
-at5te
-at4th
-a2tu
-at5ua
-at5ue
-at3ul
-at3ura
-a2ty
-au4b
-augh3
-au3gu
-au4l2
-aun5d
-au3r
-au5sib
-aut5en
-au1th
-a2va
-av3ag
-a5van
-ave4no
-av3era
-av5ern
-av5ery
-av1i
-avi4er
-av3ig
-av5oc
-a1vor
-3away
-aw3i
-aw4ly
-aws4
-ax4ic
-ax4id
-ay5al
-aye4
-ays4
-azi4er
-azz5i
-5ba.
-bad5ger
-ba4ge
-bal1a
-ban5dag
-ban4e
-ban3i
-barbi5
-bari4a
-bas4si
-1bat
-ba4z
-2b1b
-b2be
-b3ber
-bbi4na
-4b1d
-4be.
-beak4
-beat3
-4be2d
-be3da
-be3de
-be3di
-be3gi
-be5gu
-1bel
-be1li
-be3lo
-4be5m
-be5nig
-be5nu
-4bes4
-be3sp
-be5str
-3bet
-bet5iz
-be5tr
-be3tw
-be3w
-be5yo
-2bf
-4b3h
-bi2b
-bi4d
-3bie
-bi5en
-bi4er
-2b3if
-1bil
-bi3liz
-bina5r4
-bin4d
-bi5net
-bi3ogr
-bi5ou
-bi2t
-3bi3tio
-bi3tr
-3bit5ua
-b5itz
-b1j
-bk4
-b2l2
-blath5
-b4le.
-blen4
-5blesp
-b3lis
-b4lo
-blun4t
-4b1m
-4b3n
-bne5g
-3bod
-bod3i
-bo4e
-bol3ic
-bom4bi
-bon4a
-bon5at
-3boo
-5bor.
-4b1ora
-bor5d
-5bore
-5bori
-5bos4
-b5ota
-both5
-bo4to
-bound3
-4bp
-4brit
-broth3
-2b5s2
-bsor4
-2bt
-bt4l
-b4to
-b3tr
-buf4fer
-bu4ga
-bu3li
-bumi4
-bu4n
-bunt4i
-bu3re
-bus5ie
-buss4e
-5bust
-4buta
-3butio
-b5uto
-b1v
-4b5w
-5by.
-bys4
-1ca
-cab3in
-ca1bl
-cach4
-ca5den
-4cag4
-2c5ah
-ca3lat
-cal4la
-call5in
-4calo
-can5d
-can4e
-can4ic
-can5is
-can3iz
-can4ty
-cany4
-ca5per
-car5om
-cast5er
-cas5tig
-4casy
-ca4th
-4cativ
-cav5al
-c3c
-ccha5
-cci4a
-ccompa5
-ccon4
-ccou3t
-2ce.
-4ced.
-4ceden
-3cei
-5cel.
-3cell
-1cen
-3cenc
-2cen4e
-4ceni
-3cent
-3cep
-ce5ram
-4cesa
-3cessi
-ces5si5b
-ces5t
-cet4
-c5e4ta
-cew4
-2ch
-4ch.
-4ch3ab
-5chanic
-ch5a5nis
-che2
-cheap3
-4ched
-che5lo
-3chemi
-ch5ene
-ch3er.
-ch3ers
-4ch1in
-5chine.
-ch5iness
-5chini
-5chio
-3chit
-chi2z
-3cho2
-ch4ti
-1ci
-3cia
-ci2a5b
-cia5r
-ci5c
-4cier
-5cific.
-4cii
-ci4la
-3cili
-2cim
-2cin
-c4ina
-3cinat
-cin3em
-c1ing
-c5ing.
-5cino
-cion4
-4cipe
-ci3ph
-4cipic
-4cista
-4cisti
-2c1it
-cit3iz
-5ciz
-ck1
-ck3i
-1c4l4
-4clar
-c5laratio
-5clare
-cle4m
-4clic
-clim4
-cly4
-c5n
-1co
-co5ag
-coe2
-2cog
-co4gr
-coi4
-co3inc
-col5i
-5colo
-col3or
-com5er
-con4a
-c4one
-con3g
-con5t
-co3pa
-cop3ic
-co4pl
-4corb
-coro3n
-cos4e
-cov1
-cove4
-cow5a
-coz5e
-co5zi
-c1q
-cras5t
-5crat.
-5cratic
-cre3at
-5cred
-4c3reta
-cre4v
-cri2
-cri5f
-c4rin
-cris4
-5criti
-cro4pl
-crop5o
-cros4e
-cru4d
-4c3s2
-2c1t
-cta4b
-ct5ang
-c5tant
-c2te
-c3ter
-c4ticu
-ctim3i
-ctu4r
-c4tw
-cud5
-c4uf
-c4ui
-cu5ity
-5culi
-cul4tis
-3cultu
-cu2ma
-c3ume
-cu4mi
-3cun
-cu3pi
-cu5py
-cur5a4b
-cu5ria
-1cus
-cuss4i
-3c4ut
-cu4tie
-4c5utiv
-4cutr
-1cy
-cze4
-1d2a
-5da.
-2d3a4b
-dach4
-4daf
-2dag
-da2m2
-dan3g
-dard5
-dark5
-4dary
-3dat
-4dativ
-4dato
-5dav4
-dav5e
-5day
-d1b
-d5c
-d1d4
-2de.
-deaf5
-deb5it
-de4bon
-decan4
-de4cil
-de5com
-2d1ed
-4dee.
-de5if
-deli4e
-del5i5q
-de5lo
-d4em
-5dem.
-3demic
-dem5ic.
-de5mil
-de4mons
-demor5
-1den
-de4nar
-de3no
-denti5f
-de3nu
-de1p
-de3pa
-depi4
-de2pu
-d3eq
-d4erh
-5derm
-dern5iz
-der5s
-des2
-d2es.
-de1sc
-de2s5o
-des3ti
-de3str
-de4su
-de1t
-de2to
-de1v
-dev3il
-4dey
-4d1f
-d4ga
-d3ge4t
-dg1i
-d2gy
-d1h2
-5di.
-1d4i3a
-dia5b
-di4cam
-d4ice
-3dict
-3did
-5di3en
-d1if
-di3ge
-di4lato
-d1in
-1dina
-3dine.
-5dini
-di5niz
-1dio
-dio5g
-di4pl
-dir2
-di1re
-dirt5i
-dis1
-5disi
-d4is3t
-d2iti
-1di1v
-d1j
-d5k2
-4d5la
-3dle.
-3dled
-3dles.
-4dless
-2d3lo
-4d5lu
-2dly
-d1m
-4d1n4
-1do
-3do.
-do5de
-5doe
-2d5of
-d4og
-do4la
-doli4
-do5lor
-dom5iz
-do3nat
-doni4
-doo3d
-dop4p
-d4or
-3dos
-4d5out
-do4v
-3dox
-d1p
-1dr
-drag5on
-4drai
-dre4
-drea5r
-5dren
-dri4b
-dril4
-dro4p
-4drow
-5drupli
-4dry
-2d1s2
-ds4p
-d4sw
-d4sy
-d2th
-1du
-d1u1a
-du2c
-d1uca
-duc5er
-4duct.
-4ducts
-du5el
-du4g
-d3ule
-dum4be
-du4n
-4dup
-du4pe
-d1v
-d1w
-d2y
-5dyn
-dy4se
-dys5p
-e1a4b
-e3act
-ead1
-ead5ie
-ea4ge
-ea5ger
-ea4l
-eal5er
-eal3ou
-eam3er
-e5and
-ear3a
-ear4c
-ear5es
-ear4ic
-ear4il
-ear5k
-ear2t
-eart3e
-ea5sp
-e3ass
-east3
-ea2t
-eat5en
-eath3i
-e5atif
-e4a3tu
-ea2v
-eav3en
-eav5i
-eav5o
-2e1b
-e4bel.
-e4bels
-e4ben
-e4bit
-e3br
-e4cad
-ecan5c
-ecca5
-e1ce
-ec5essa
-ec2i
-e4cib
-ec5ificat
-ec5ifie
-ec5ify
-ec3im
-eci4t
-e5cite
-e4clam
-e4clus
-e2col
-e4comm
-e4compe
-e4conc
-e2cor
-ec3ora
-eco5ro
-e1cr
-e4crem
-ec4tan
-ec4te
-e1cu
-e4cul
-ec3ula
-2e2da
-4ed3d
-e4d1er
-ede4s
-4edi
-e3dia
-ed3ib
-ed3ica
-ed3im
-ed1it
-edi5z
-4edo
-e4dol
-edon2
-e4dri
-e4dul
-ed5ulo
-ee2c
-eed3i
-ee2f
-eel3i
-ee4ly
-ee2m
-ee4na
-ee4p1
-ee2s4
-eest4
-ee4ty
-e5ex
-e1f
-e4f3ere
-1eff
-e4fic
-5efici
-efil4
-e3fine
-ef5i5nite
-3efit
-efor5es
-e4fuse.
-4egal
-eger4
-eg5ib
-eg4ic
-eg5ing
-e5git5
-eg5n
-e4go.
-e4gos
-eg1ul
-e5gur
-5egy
-e1h4
-eher4
-ei2
-e5ic
-ei5d
-eig2
-ei5gl
-e3imb
-e3inf
-e1ing
-e5inst
-eir4d
-eit3e
-ei3th
-e5ity
-e1j
-e4jud
-ej5udi
-eki4n
-ek4la
-e1la
-e4la.
-e4lac
-elan4d
-el5ativ
-e4law
-elaxa4
-e3lea
-el5ebra
-5elec
-e4led
-el3ega
-e5len
-e4l1er
-e1les
-el2f
-el2i
-e3libe
-e4l5ic.
-el3ica
-e3lier
-el5igib
-e5lim
-e4l3ing
-e3lio
-e2lis
-el5ish
-e3liv3
-4ella
-el4lab
-ello4
-e5loc
-el5og
-el3op.
-el2sh
-el4ta
-e5lud
-el5ug
-e4mac
-e4mag
-e5man
-em5ana
-em5b
-e1me
-e2mel
-e4met
-em3ica
-emi4e
-em5igra
-em1in2
-em5ine
-em3i3ni
-e4mis
-em5ish
-e5miss
-em3iz
-5emniz
-emo4g
-emoni5o
-em3pi
-e4mul
-em5ula
-emu3n
-e3my
-en5amo
-e4nant
-ench4er
-en3dic
-e5nea
-e5nee
-en3em
-en5ero
-en5esi
-en5est
-en3etr
-e3new
-en5ics
-e5nie
-e5nil
-e3nio
-en3ish
-en3it
-e5niu
-5eniz
-4enn
-4eno
-eno4g
-e4nos
-en3ov
-en4sw
-ent5age
-4enthes
-en3ua
-en5uf
-e3ny.
-4en3z
-e5of
-eo2g
-e4oi4
-e3ol
-eop3ar
-e1or
-eo3re
-eo5rol
-eos4
-e4ot
-eo4to
-e5out
-e5ow
-e2pa
-e3pai
-ep5anc
-e5pel
-e3pent
-ep5etitio
-ephe4
-e4pli
-e1po
-e4prec
-ep5reca
-e4pred
-ep3reh
-e3pro
-e4prob
-ep4sh
-ep5ti5b
-e4put
-ep5uta
-e1q
-equi3l
-e4q3ui3s
-er1a
-era4b
-4erand
-er3ar
-4erati.
-2erb
-er4bl
-er3ch
-er4che
-2ere.
-e3real
-ere5co
-ere3in
-er5el.
-er3emo
-er5ena
-er5ence
-4erene
-er3ent
-ere4q
-er5ess
-er3est
-eret4
-er1h
-er1i
-e1ria4
-5erick
-e3rien
-eri4er
-er3ine
-e1rio
-4erit
-er4iu
-eri4v
-e4riva
-er3m4
-er4nis
-4ernit
-5erniz
-er3no
-2ero
-er5ob
-e5roc
-ero4r
-er1ou
-er1s
-er3set
-ert3er
-4ertl
-er3tw
-4eru
-eru4t
-5erwau
-e1s4a
-e4sage.
-e4sages
-es2c
-e2sca
-es5can
-e3scr
-es5cu
-e1s2e
-e2sec
-es5ecr
-es5enc
-e4sert.
-e4serts
-e4serva
-4esh
-e3sha
-esh5en
-e1si
-e2sic
-e2sid
-es5iden
-es5igna
-e2s5im
-es4i4n
-esis4te
-esi4u
-e5skin
-es4mi
-e2sol
-es3olu
-e2son
-es5ona
-e1sp
-es3per
-es5pira
-es4pre
-2ess
-es4si4b
-estan4
-es3tig
-es5tim
-4es2to
-e3ston
-2estr
-e5stro
-estruc5
-e2sur
-es5urr
-es4w
-eta4b
-eten4d
-e3teo
-ethod3
-et1ic
-e5tide
-etin4
-eti4no
-e5tir
-e5titio
-et5itiv
-4etn
-et5ona
-e3tra
-e3tre
-et3ric
-et5rif
-et3rog
-et5ros
-et3ua
-et5ym
-et5z
-4eu
-e5un
-e3up
-eu3ro
-eus4
-eute4
-euti5l
-eu5tr
-eva2p5
-e2vas
-ev5ast
-e5vea
-ev3ell
-evel3o
-e5veng
-even4i
-ev1er
-e5verb
-e1vi
-ev3id
-evi4l
-e4vin
-evi4v
-e5voc
-e5vu
-e1wa
-e4wag
-e5wee
-e3wh
-ewil5
-ew3ing
-e3wit
-1exp
-5eyc
-5eye.
-eys4
-1fa
-fa3bl
-fab3r
-fa4ce
-4fag
-fain4
-fall5e
-4fa4ma
-fam5is
-5far
-far5th
-fa3ta
-fa3the
-4fato
-fault5
-4f5b
-4fd
-4fe.
-feas4
-feath3
-fe4b
-4feca
-5fect
-2fed
-fe3li
-fe4mo
-fen2d
-fend5e
-fer1
-5ferr
-fev4
-4f1f
-f4fes
-f4fie
-f5fin.
-f2f5is
-f4fly
-f2fy
-4fh
-1fi
-fi3a
-2f3ic.
-4f3ical
-f3ican
-4ficate
-f3icen
-fi3cer
-fic4i
-5ficia
-5ficie
-4fics
-fi3cu
-fi5del
-fight5
-fil5i
-fill5in
-4fily
-2fin
-5fina
-fin2d5
-fi2ne
-f1in3g
-fin4n
-fis4ti
-f4l2
-f5less
-flin4
-flo3re
-f2ly5
-4fm
-4fn
-1fo
-5fon
-fon4de
-fon4t
-fo2r
-fo5rat
-for5ay
-fore5t
-for4i
-fort5a
-fos5
-4f5p
-fra4t
-f5rea
-fres5c
-fri2
-fril4
-frol5
-2f3s
-2ft
-f4to
-f2ty
-3fu
-fu5el
-4fug
-fu4min
-fu5ne
-fu3ri
-fusi4
-fus4s
-4futa
-1fy
-1ga
-gaf4
-5gal.
-3gali
-ga3lo
-2gam
-ga5met
-g5amo
-gan5is
-ga3niz
-gani5za
-4gano
-gar5n4
-gass4
-gath3
-4gativ
-4gaz
-g3b
-gd4
-2ge.
-2ged
-geez4
-gel4in
-ge5lis
-ge5liz
-4gely
-1gen
-ge4nat
-ge5niz
-4geno
-4geny
-1geo
-ge3om
-g4ery
-5gesi
-geth5
-4geto
-ge4ty
-ge4v
-4g1g2
-g2ge
-g3ger
-gglu5
-ggo4
-gh3in
-gh5out
-gh4to
-5gi.
-1gi4a
-gia5r
-g1ic
-5gicia
-g4ico
-gien5
-5gies.
-gil4
-g3imen
-3g4in.
-gin5ge
-5g4ins
-5gio
-3gir
-gir4l
-g3isl
-gi4u
-5giv
-3giz
-gl2
-gla4
-glad5i
-5glas
-1gle
-gli4b
-g3lig
-3glo
-glo3r
-g1m
-g4my
-gn4a
-g4na.
-gnet4t
-g1ni
-g2nin
-g4nio
-g1no
-g4non
-1go
-3go.
-gob5
-5goe
-3g4o4g
-go3is
-gon2
-4g3o3na
-gondo5
-go3ni
-5goo
-go5riz
-gor5ou
-5gos.
-gov1
-g3p
-1gr
-4grada
-g4rai
-gran2
-5graph.
-g5rapher
-5graphic
-4graphy
-4gray
-gre4n
-4gress.
-4grit
-g4ro
-gruf4
-gs2
-g5ste
-gth3
-gu4a
-3guard
-2gue
-5gui5t
-3gun
-3gus
-4gu4t
-g3w
-1gy
-2g5y3n
-gy5ra
-h3ab4l
-hach4
-hae4m
-hae4t
-h5agu
-ha3la
-hala3m
-ha4m
-han4ci
-han4cy
-5hand.
-han4g
-hang5er
-hang5o
-h5a5niz
-han4k
-han4te
-hap3l
-hap5t
-ha3ran
-ha5ras
-har2d
-hard3e
-har4le
-harp5en
-har5ter
-has5s
-haun4
-5haz
-haz3a
-h1b
-1head
-3hear
-he4can
-h5ecat
-h4ed
-he5do5
-he3l4i
-hel4lis
-hel4ly
-h5elo
-hem4p
-he2n
-hena4
-hen5at
-heo5r
-hep5
-h4era
-hera3p
-her4ba
-here5a
-h3ern
-h5erou
-h3ery
-h1es
-he2s5p
-he4t
-het4ed
-heu4
-h1f
-h1h
-hi5an
-hi4co
-high5
-h4il2
-himer4
-h4ina
-hion4e
-hi4p
-hir4l
-hi3ro
-hir4p
-hir4r
-his3el
-his4s
-hith5er
-hi2v
-4hk
-4h1l4
-hlan4
-h2lo
-hlo3ri
-4h1m
-hmet4
-2h1n
-h5odiz
-h5ods
-ho4g
-hoge4
-hol5ar
-3hol4e
-ho4ma
-home3
-hon4a
-ho5ny
-3hood
-hoon4
-hor5at
-ho5ris
-hort3e
-ho5ru
-hos4e
-ho5sen
-hos1p
-1hous
-house3
-hov5el
-4h5p
-4hr4
-hree5
-hro5niz
-hro3po
-4h1s2
-h4sh
-h4tar
-ht1en
-ht5es
-h4ty
-hu4g
-hu4min
-hun5ke
-hun4t
-hus3t4
-hu4t
-h1w
-h4wart
-hy3pe
-hy3ph
-hy2s
-2i1a
-i2al
-iam4
-iam5ete
-i2an
-4ianc
-ian3i
-4ian4t
-ia5pe
-iass4
-i4ativ
-ia4tric
-i4atu
-ibe4
-ib3era
-ib5ert
-ib5ia
-ib3in
-ib5it.
-ib5ite
-i1bl
-ib3li
-i5bo
-i1br
-i2b5ri
-i5bun
-4icam
-5icap
-4icar
-i4car.
-i4cara
-icas5
-i4cay
-iccu4
-4iceo
-4ich
-2ici
-i5cid
-ic5ina
-i2cip
-ic3ipa
-i4cly
-i2c5oc
-4i1cr
-5icra
-i4cry
-ic4te
-ictu2
-ic4t3ua
-ic3ula
-ic4um
-ic5uo
-i3cur
-2id
-i4dai
-id5anc
-id5d
-ide3al
-ide4s
-i2di
-id5ian
-idi4ar
-i5die
-id3io
-idi5ou
-id1it
-id5iu
-i3dle
-i4dom
-id3ow
-i4dr
-i2du
-id5uo
-2ie4
-ied4e
-5ie5ga
-ield3
-ien5a4
-ien4e
-i5enn
-i3enti
-i1er.
-i3esc
-i1est
-i3et
-4if.
-if5ero
-iff5en
-if4fr
-4ific.
-i3fie
-i3fl
-4ift
-2ig
-iga5b
-ig3era
-ight3i
-4igi
-i3gib
-ig3il
-ig3in
-ig3it
-i4g4l
-i2go
-ig3or
-ig5ot
-i5gre
-igu5i
-ig1ur
-i3h
-4i5i4
-i3j
-4ik
-i1la
-il3a4b
-i4lade
-i2l5am
-ila5ra
-i3leg
-il1er
-ilev4
-il5f
-il1i
-il3ia
-il2ib
-il3io
-il4ist
-2ilit
-il2iz
-ill5ab
-4iln
-il3oq
-il4ty
-il5ur
-il3v
-i4mag
-im3age
-ima5ry
-imenta5r
-4imet
-im1i
-im5ida
-imi5le
-i5mini
-4imit
-im4ni
-i3mon
-i2mu
-im3ula
-2in.
-i4n3au
-4inav
-incel4
-in3cer
-4ind
-in5dling
-2ine
-i3nee
-iner4ar
-i5ness
-4inga
-4inge
-in5gen
-4ingi
-in5gling
-4ingo
-4ingu
-2ini
-i5ni.
-i4nia
-in3io
-in1is
-i5nite.
-5initio
-in3ity
-4ink
-4inl
-2inn
-2i1no
-i4no4c
-ino4s
-i4not
-2ins
-in3se
-insur5a
-2int.
-2in4th
-in1u
-i5nus
-4iny
-2io
-4io.
-ioge4
-io2gr
-i1ol
-io4m
-ion3at
-ion4ery
-ion3i
-io5ph
-ior3i
-i4os
-io5th
-i5oti
-io4to
-i4our
-2ip
-ipe4
-iphras4
-ip3i
-ip4ic
-ip4re4
-ip3ul
-i3qua
-iq5uef
-iq3uid
-iq3ui3t
-4ir
-i1ra
-ira4b
-i4rac
-ird5e
-ire4de
-i4ref
-i4rel4
-i4res
-ir5gi
-ir1i
-iri5de
-ir4is
-iri3tu
-5i5r2iz
-ir4min
-iro4g
-5iron.
-ir5ul
-2is.
-is5ag
-is3ar
-isas5
-2is1c
-is3ch
-4ise
-is3er
-3isf
-is5han
-is3hon
-ish5op
-is3ib
-isi4d
-i5sis
-is5itiv
-4is4k
-islan4
-4isms
-i2so
-iso5mer
-is1p
-is2pi
-is4py
-4is1s
-is4sal
-issen4
-is4ses
-is4ta.
-is1te
-is1ti
-ist4ly
-4istral
-i2su
-is5us
-4ita.
-ita4bi
-i4tag
-4ita5m
-i3tan
-i3tat
-2ite
-it3era
-i5teri
-it4es
-2ith
-i1ti
-4itia
-4i2tic
-it3ica
-5i5tick
-it3ig
-it5ill
-i2tim
-2itio
-4itis
-i4tism
-i2t5o5m
-4iton
-i4tram
-it5ry
-4itt
-it3uat
-i5tud
-it3ul
-4itz.
-i1u
-2iv
-iv3ell
-iv3en.
-i4v3er.
-i4vers.
-iv5il.
-iv5io
-iv1it
-i5vore
-iv3o3ro
-i4v3ot
-4i5w
-ix4o
-4iy
-4izar
-izi4
-5izont
-5ja
-jac4q
-ja4p
-1je
-jer5s
-4jestie
-4jesty
-jew3
-jo4p
-5judg
-3ka.
-k3ab
-k5ag
-kais4
-kal4
-k1b
-k2ed
-1kee
-ke4g
-ke5li
-k3en4d
-k1er
-kes4
-k3est.
-ke4ty
-k3f
-kh4
-k1i
-5ki.
-5k2ic
-k4ill
-kilo5
-k4im
-k4in.
-kin4de
-k5iness
-kin4g
-ki4p
-kis4
-k5ish
-kk4
-k1l
-4kley
-4kly
-k1m
-k5nes
-1k2no
-ko5r
-kosh4
-k3ou
-kro5n
-4k1s2
-k4sc
-ks4l
-k4sy
-k5t
-k1w
-lab3ic
-l4abo
-laci4
-l4ade
-la3dy
-lag4n
-lam3o
-3land
-lan4dl
-lan5et
-lan4te
-lar4g
-lar3i
-las4e
-la5tan
-4lateli
-4lativ
-4lav
-la4v4a
-2l1b
-lbin4
-4l1c2
-lce4
-l3ci
-2ld
-l2de
-ld4ere
-ld4eri
-ldi4
-ld5is
-l3dr
-l4dri
-le2a
-le4bi
-left5
-5leg.
-5legg
-le4mat
-lem5atic
-4len.
-3lenc
-5lene.
-1lent
-le3ph
-le4pr
-lera5b
-ler4e
-3lerg
-3l4eri
-l4ero
-les2
-le5sco
-5lesq
-3less
-5less.
-l3eva
-lev4er.
-lev4era
-lev4ers
-3ley
-4leye
-2lf
-l5fr
-4l1g4
-l5ga
-lgar3
-l4ges
-lgo3
-2l3h
-li4ag
-li2am
-liar5iz
-li4as
-li4ato
-li5bi
-5licio
-li4cor
-4lics
-4lict.
-l4icu
-l3icy
-l3ida
-lid5er
-3lidi
-lif3er
-l4iff
-li4fl
-5ligate
-3ligh
-li4gra
-3lik
-4l4i4l
-lim4bl
-lim3i
-li4mo
-l4im4p
-l4ina
-1l4ine
-lin3ea
-lin3i
-link5er
-li5og
-4l4iq
-lis4p
-l1it
-l2it.
-5litica
-l5i5tics
-liv3er
-l1iz
-4lj
-lka3
-l3kal
-lka4t
-l1l
-l4law
-l2le
-l5lea
-l3lec
-l3leg
-l3lel
-l3le4n
-l3le4t
-ll2i
-l2lin4
-l5lina
-ll4o
-lloqui5
-ll5out
-l5low
-2lm
-l5met
-lm3ing
-l4mod
-lmon4
-2l1n2
-3lo.
-lob5al
-lo4ci
-4lof
-3logic
-l5ogo
-3logu
-lom3er
-5long
-lon4i
-l3o3niz
-lood5
-5lope.
-lop3i
-l3opm
-lora4
-lo4rato
-lo5rie
-lor5ou
-5los.
-los5et
-5losophiz
-5losophy
-los4t
-lo4ta
-loun5d
-2lout
-4lov
-2lp
-lpa5b
-l3pha
-l5phi
-lp5ing
-l3pit
-l4pl
-l5pr
-4l1r
-2l1s2
-l4sc
-l2se
-l4sie
-4lt
-lt5ag
-ltane5
-l1te
-lten4
-ltera4
-lth3i
-l5ties.
-ltis4
-l1tr
-ltu2
-ltur3a
-lu5a
-lu3br
-luch4
-lu3ci
-lu3en
-luf4
-lu5id
-lu4ma
-5lumi
-l5umn.
-5lumnia
-lu3o
-luo3r
-4lup
-luss4
-lus3te
-1lut
-l5ven
-l5vet4
-2l1w
-1ly
-4lya
-4lyb
-ly5me
-ly3no
-2lys4
-l5yse
-1ma
-2mab
-ma2ca
-ma5chine
-ma4cl
-mag5in
-5magn
-2mah
-maid5
-4mald
-ma3lig
-ma5lin
-mal4li
-mal4ty
-5mania
-man5is
-man3iz
-4map
-ma5rine.
-ma5riz
-mar4ly
-mar3v
-ma5sce
-mas4e
-mas1t
-5mate
-math3
-ma3tis
-4matiza
-4m1b
-mba4t5
-m5bil
-m4b3ing
-mbi4v
-4m5c
-4me.
-2med
-4med.
-5media
-me3die
-m5e5dy
-me2g
-mel5on
-mel4t
-me2m
-mem1o3
-1men
-men4a
-men5ac
-men4de
-4mene
-men4i
-mens4
-mensu5
-3ment
-men4te
-me5on
-m5ersa
-2mes
-3mesti
-me4ta
-met3al
-me1te
-me5thi
-m4etr
-5metric
-me5trie
-me3try
-me4v
-4m1f
-2mh
-5mi.
-mi3a
-mid4a
-mid4g
-mig4
-3milia
-m5i5lie
-m4ill
-min4a
-3mind
-m5inee
-m4ingl
-min5gli
-m5ingly
-min4t
-m4inu
-miot4
-m2is
-mis4er.
-mis5l
-mis4ti
-m5istry
-4mith
-m2iz
-4mk
-4m1l
-m1m
-mma5ry
-4m1n
-mn4a
-m4nin
-mn4o
-1mo
-4mocr
-5mocratiz
-mo2d1
-mo4go
-mois2
-moi5se
-4mok
-mo5lest
-mo3me
-mon5et
-mon5ge
-moni3a
-mon4ism
-mon4ist
-mo3niz
-monol4
-mo3ny.
-mo2r
-4mora.
-mos2
-mo5sey
-mo3sp
-moth3
-m5ouf
-3mous
-mo2v
-4m1p
-mpara5
-mpa5rab
-mpar5i
-m3pet
-mphas4
-m2pi
-mpi4a
-mp5ies
-m4p1in
-m5pir
-mp5is
-mpo3ri
-mpos5ite
-m4pous
-mpov5
-mp4tr
-m2py
-4m3r
-4m1s2
-m4sh
-m5si
-4mt
-1mu
-mula5r4
-5mult
-multi3
-3mum
-mun2
-4mup
-mu4u
-4mw
-1na
-2n1a2b
-n4abu
-4nac.
-na4ca
-n5act
-nag5er.
-nak4
-na4li
-na5lia
-4nalt
-na5mit
-n2an
-nanci4
-nan4it
-nank4
-nar3c
-4nare
-nar3i
-nar4l
-n5arm
-n4as
-nas4c
-nas5ti
-n2at
-na3tal
-nato5miz
-n2au
-nau3se
-3naut
-nav4e
-4n1b4
-ncar5
-n4ces.
-n3cha
-n5cheo
-n5chil
-n3chis
-nc1in
-nc4it
-ncour5a
-n1cr
-n1cu
-n4dai
-n5dan
-n1de
-nd5est.
-ndi4b
-n5d2if
-n1dit
-n3diz
-n5duc
-ndu4r
-nd2we
-2ne.
-n3ear
-ne2b
-neb3u
-ne2c
-5neck
-2ned
-ne4gat
-neg5ativ
-5nege
-ne4la
-nel5iz
-ne5mi
-ne4mo
-1nen
-4nene
-3neo
-ne4po
-ne2q
-n1er
-nera5b
-n4erar
-n2ere
-n4er5i
-ner4r
-1nes
-2nes.
-4nesp
-2nest
-4nesw
-3netic
-ne4v
-n5eve
-ne4w
-n3f
-n4gab
-n3gel
-nge4n4e
-n5gere
-n3geri
-ng5ha
-n3gib
-ng1in
-n5git
-n4gla
-ngov4
-ng5sh
-n1gu
-n4gum
-n2gy
-4n1h4
-nha4
-nhab3
-nhe4
-3n4ia
-ni3an
-ni4ap
-ni3ba
-ni4bl
-ni4d
-ni5di
-ni4er
-ni2fi
-ni5ficat
-n5igr
-nik4
-n1im
-ni3miz
-n1in
-5nine.
-nin4g
-ni4o
-5nis.
-nis4ta
-n2it
-n4ith
-3nitio
-n3itor
-ni3tr
-n1j
-4nk2
-n5kero
-n3ket
-nk3in
-n1kl
-4n1l
-n5m
-nme4
-nmet4
-4n1n2
-nne4
-nni3al
-nni4v
-nob4l
-no3ble
-n5ocl
-4n3o2d
-3noe
-4nog
-noge4
-nois5i
-no5l4i
-5nologis
-3nomic
-n5o5miz
-no4mo
-no3my
-no4n
-non4ag
-non5i
-n5oniz
-4nop
-5nop5o5li
-nor5ab
-no4rary
-4nosc
-nos4e
-nos5t
-no5ta
-1nou
-3noun
-nov3el3
-nowl3
-n1p4
-npi4
-npre4c
-n1q
-n1r
-nru4
-2n1s2
-ns5ab
-nsati4
-ns4c
-n2se
-n4s3es
-nsid1
-nsig4
-n2sl
-ns3m
-n4soc
-ns4pe
-n5spi
-nsta5bl
-n1t
-nta4b
-nter3s
-nt2i
-n5tib
-nti4er
-nti2f
-n3tine
-n4t3ing
-nti4p
-ntrol5li
-nt4s
-ntu3me
-nu1a
-nu4d
-nu5en
-nuf4fe
-n3uin
-3nu3it
-n4um
-nu1me
-n5umi
-3nu4n
-n3uo
-nu3tr
-n1v2
-n1w4
-nym4
-nyp4
-4nz
-n3za
-4oa
-oad3
-o5a5les
-oard3
-oas4e
-oast5e
-oat5i
-ob3a3b
-o5bar
-obe4l
-o1bi
-o2bin
-ob5ing
-o3br
-ob3ul
-o1ce
-och4
-o3chet
-ocif3
-o4cil
-o4clam
-o4cod
-oc3rac
-oc5ratiz
-ocre3
-5ocrit
-octor5a
-oc3ula
-o5cure
-od5ded
-od3ic
-odi3o
-o2do4
-odor3
-od5uct.
-od5ucts
-o4el
-o5eng
-o3er
-oe4ta
-o3ev
-o2fi
-of5ite
-ofit4t
-o2g5a5r
-og5ativ
-o4gato
-o1ge
-o5gene
-o5geo
-o4ger
-o3gie
-1o1gis
-og3it
-o4gl
-o5g2ly
-3ogniz
-o4gro
-ogu5i
-1ogy
-2ogyn
-o1h2
-ohab5
-oi2
-oic3es
-oi3der
-oiff4
-oig4
-oi5let
-o3ing
-oint5er
-o5ism
-oi5son
-oist5en
-oi3ter
-o5j
-2ok
-o3ken
-ok5ie
-o1la
-o4lan
-olass4
-ol2d
-old1e
-ol3er
-o3lesc
-o3let
-ol4fi
-ol2i
-o3lia
-o3lice
-ol5id.
-o3li4f
-o5lil
-ol3ing
-o5lio
-o5lis.
-ol3ish
-o5lite
-o5litio
-o5liv
-olli4e
-ol5ogiz
-olo4r
-ol5pl
-ol2t
-ol3ub
-ol3ume
-ol3un
-o5lus
-ol2v
-o2ly
-om5ah
-oma5l
-om5atiz
-om2be
-om4bl
-o2me
-om3ena
-om5erse
-o4met
-om5etry
-o3mia
-om3ic.
-om3ica
-o5mid
-om1in
-o5mini
-5ommend
-omo4ge
-o4mon
-om3pi
-ompro5
-o2n
-on1a
-on4ac
-o3nan
-on1c
-3oncil
-2ond
-on5do
-o3nen
-on5est
-on4gu
-on1ic
-o3nio
-on1is
-o5niu
-on3key
-on4odi
-on3omy
-on3s
-onspi4
-onspir5a
-onsu4
-onten4
-on3t4i
-ontif5
-on5um
-onva5
-oo2
-ood5e
-ood5i
-oo4k
-oop3i
-o3ord
-oost5
-o2pa
-ope5d
-op1er
-3opera
-4operag
-2oph
-o5phan
-o5pher
-op3ing
-o3pit
-o5pon
-o4posi
-o1pr
-op1u
-opy5
-o1q
-o1ra
-o5ra.
-o4r3ag
-or5aliz
-or5ange
-ore5a
-o5real
-or3ei
-ore5sh
-or5est.
-orew4
-or4gu
-4o5ria
-or3ica
-o5ril
-or1in
-o1rio
-or3ity
-o3riu
-or2mi
-orn2e
-o5rof
-or3oug
-or5pe
-3orrh
-or4se
-ors5en
-orst4
-or3thi
-or3thy
-or4ty
-o5rum
-o1ry
-os3al
-os2c
-os4ce
-o3scop
-4oscopi
-o5scr
-os4i4e
-os5itiv
-os3ito
-os3ity
-osi4u
-os4l
-o2so
-os4pa
-os4po
-os2ta
-o5stati
-os5til
-os5tit
-o4tan
-otele4g
-ot3er.
-ot5ers
-o4tes
-4oth
-oth5esi
-oth3i4
-ot3ic.
-ot5ica
-o3tice
-o3tif
-o3tis
-oto5s
-ou2
-ou3bl
-ouch5i
-ou5et
-ou4l
-ounc5er
-oun2d
-ou5v
-ov4en
-over4ne
-over3s
-ov4ert
-o3vis
-oviti4
-o5v4ol
-ow3der
-ow3el
-ow5est
-ow1i
-own5i
-o4wo
-oy1a
-1pa
-pa4ca
-pa4ce
-pac4t
-p4ad
-5pagan
-p3agat
-p4ai
-pain4
-p4al
-pan4a
-pan3el
-pan4ty
-pa3ny
-pa1p
-pa4pu
-para5bl
-par5age
-par5di
-3pare
-par5el
-p4a4ri
-par4is
-pa2te
-pa5ter
-5pathic
-pa5thy
-pa4tric
-pav4
-3pay
-4p1b
-pd4
-4pe.
-3pe4a
-pear4l
-pe2c
-2p2ed
-3pede
-3pedi
-pedia4
-ped4ic
-p4ee
-pee4d
-pek4
-pe4la
-peli4e
-pe4nan
-p4enc
-pen4th
-pe5on
-p4era.
-pera5bl
-p4erag
-p4eri
-peri5st
-per4mal
-perme5
-p4ern
-per3o
-per3ti
-pe5ru
-per1v
-pe2t
-pe5ten
-pe5tiz
-4pf
-4pg
-4ph.
-phar5i
-phe3no
-ph4er
-ph4es.
-ph1ic
-5phie
-ph5ing
-5phisti
-3phiz
-ph2l
-3phob
-3phone
-5phoni
-pho4r
-4phs
-ph3t
-5phu
-1phy
-pi3a
-pian4
-pi4cie
-pi4cy
-p4id
-p5ida
-pi3de
-5pidi
-3piec
-pi3en
-pi4grap
-pi3lo
-pi2n
-p4in.
-pind4
-p4ino
-3pi1o
-pion4
-p3ith
-pi5tha
-pi2tu
-2p3k2
-1p2l2
-3plan
-plas5t
-pli3a
-pli5er
-4plig
-pli4n
-ploi4
-plu4m
-plum4b
-4p1m
-2p3n
-po4c
-5pod.
-po5em
-po3et5
-5po4g
-poin2
-5point
-poly5t
-po4ni
-po4p
-1p4or
-po4ry
-1pos
-pos1s
-p4ot
-po4ta
-5poun
-4p1p
-ppa5ra
-p2pe
-p4ped
-p5pel
-p3pen
-p3per
-p3pet
-ppo5site
-pr2
-pray4e
-5preci
-pre5co
-pre3em
-pref5ac
-pre4la
-pre3r
-p3rese
-3press
-pre5ten
-pre3v
-5pri4e
-prin4t3
-pri4s
-pris3o
-p3roca
-prof5it
-pro3l
-pros3e
-pro1t
-2p1s2
-p2se
-ps4h
-p4sib
-2p1t
-pt5a4b
-p2te
-p2th
-pti3m
-ptu4r
-p4tw
-pub3
-pue4
-puf4
-pul3c
-pu4m
-pu2n
-pur4r
-5pus
-pu2t
-5pute
-put3er
-pu3tr
-put4ted
-put4tin
-p3w
-qu2
-qua5v
-2que.
-3quer
-3quet
-2rab
-ra3bi
-rach4e
-r5acl
-raf5fi
-raf4t
-r2ai
-ra4lo
-ram3et
-r2ami
-rane5o
-ran4ge
-r4ani
-ra5no
-rap3er
-3raphy
-rar5c
-rare4
-rar5ef
-4raril
-r2as
-ration4
-rau4t
-ra5vai
-rav3el
-ra5zie
-r1b
-r4bab
-r4bag
-rbi2
-rbi4f
-r2bin
-r5bine
-rb5ing.
-rb4o
-r1c
-r2ce
-rcen4
-r3cha
-rch4er
-r4ci4b
-rc4it
-rcum3
-r4dal
-rd2i
-rdi4a
-rdi4er
-rdin4
-rd3ing
-2re.
-re1al
-re3an
-re5arr
-5reav
-re4aw
-r5ebrat
-rec5oll
-rec5ompe
-re4cre
-2r2ed
-re1de
-re3dis
-red5it
-re4fac
-re2fe
-re5fer.
-re3fi
-re4fy
-reg3is
-re5it
-re1li
-re5lu
-r4en4ta
-ren4te
-re1o
-re5pin
-re4posi
-re1pu
-r1er4
-r4eri
-rero4
-re5ru
-r4es.
-re4spi
-ress5ib
-res2t
-re5stal
-re3str
-re4ter
-re4ti4z
-re3tri
-reu2
-re5uti
-rev2
-re4val
-rev3el
-r5ev5er.
-re5vers
-re5vert
-re5vil
-rev5olu
-re4wh
-r1f
-rfu4
-r4fy
-rg2
-rg3er
-r3get
-r3gic
-rgi4n
-rg3ing
-r5gis
-r5git
-r1gl
-rgo4n
-r3gu
-rh4
-4rh.
-4rhal
-ri3a
-ria4b
-ri4ag
-r4ib
-rib3a
-ric5as
-r4ice
-4rici
-5ricid
-ri4cie
-r4ico
-rid5er
-ri3enc
-ri3ent
-ri1er
-ri5et
-rig5an
-5rigi
-ril3iz
-5riman
-rim5i
-3rimo
-rim4pe
-r2ina
-5rina.
-rin4d
-rin4e
-rin4g
-ri1o
-5riph
-riph5e
-ri2pl
-rip5lic
-r4iq
-r2is
-r4is.
-ris4c
-r3ish
-ris4p
-ri3ta3b
-r5ited.
-rit5er.
-rit5ers
-rit3ic
-ri2tu
-rit5ur
-riv5el
-riv3et
-riv3i
-r3j
-r3ket
-rk4le
-rk4lin
-r1l
-rle4
-r2led
-r4lig
-r4lis
-rl5ish
-r3lo4
-r1m
-rma5c
-r2me
-r3men
-rm5ers
-rm3ing
-r4ming.
-r4mio
-r3mit
-r4my
-r4nar
-r3nel
-r4ner
-r5net
-r3ney
-r5nic
-r1nis4
-r3nit
-r3niv
-rno4
-r4nou
-r3nu
-rob3l
-r2oc
-ro3cr
-ro4e
-ro1fe
-ro5fil
-rok2
-ro5ker
-5role.
-rom5ete
-rom4i
-rom4p
-ron4al
-ron4e
-ro5n4is
-ron4ta
-1room
-5root
-ro3pel
-rop3ic
-ror3i
-ro5ro
-ros5per
-ros4s
-ro4the
-ro4ty
-ro4va
-rov5el
-rox5
-r1p
-r4pea
-r5pent
-rp5er.
-r3pet
-rp4h4
-rp3ing
-r3po
-r1r4
-rre4c
-rre4f
-r4reo
-rre4st
-rri4o
-rri4v
-rron4
-rros4
-rrys4
-4rs2
-r1sa
-rsa5ti
-rs4c
-r2se
-r3sec
-rse4cr
-rs5er.
-rs3es
-rse5v2
-r1sh
-r5sha
-r1si
-r4si4b
-rson3
-r1sp
-r5sw
-rtach4
-r4tag
-r3teb
-rten4d
-rte5o
-r1ti
-rt5ib
-rti4d
-r4tier
-r3tig
-rtil3i
-rtil4l
-r4tily
-r4tist
-r4tiv
-r3tri
-rtroph4
-rt4sh
-ru3a
-ru3e4l
-ru3en
-ru4gl
-ru3in
-rum3pl
-ru2n
-runk5
-run4ty
-r5usc
-ruti5n
-rv4e
-rvel4i
-r3ven
-rv5er.
-r5vest
-r3vey
-r3vic
-rvi4v
-r3vo
-r1w
-ry4c
-5rynge
-ry3t
-sa2
-2s1ab
-5sack
-sac3ri
-s3act
-5sai
-salar4
-sal4m
-sa5lo
-sal4t
-3sanc
-san4de
-s1ap
-sa5ta
-5sa3tio
-sat3u
-sau4
-sa5vor
-5saw
-4s5b
-scan4t5
-sca4p
-scav5
-s4ced
-4scei
-s4ces
-sch2
-s4cho
-3s4cie
-5scin4d
-scle5
-s4cli
-scof4
-4scopy
-scour5a
-s1cu
-4s5d
-4se.
-se4a
-seas4
-sea5w
-se2c3o
-3sect
-4s4ed
-se4d4e
-s5edl
-se2g
-seg3r
-5sei
-se1le
-5self
-5selv
-4seme
-se4mol
-sen5at
-4senc
-sen4d
-s5ened
-sen5g
-s5enin
-4sentd
-4sentl
-sep3a3
-4s1er.
-s4erl
-ser4o
-4servo
-s1e4s
-se5sh
-ses5t
-5se5um
-5sev
-sev3en
-sew4i
-5sex
-4s3f
-2s3g
-s2h
-2sh.
-sh1er
-5shev
-sh1in
-sh3io
-3ship
-shiv5
-sho4
-sh5old
-shon3
-shor4
-short5
-4shw
-si1b
-s5icc
-3side.
-5sides
-5sidi
-si5diz
-4signa
-sil4e
-4sily
-2s1in
-s2ina
-5sine.
-s3ing
-1sio
-5sion
-sion5a
-si2r
-sir5a
-1sis
-3sitio
-5siu
-1siv
-5siz
-sk2
-4ske
-s3ket
-sk5ine
-sk5ing
-s1l2
-s3lat
-s2le
-slith5
-2s1m
-s3ma
-small3
-sman3
-smel4
-s5men
-5smith
-smol5d4
-s1n4
-1so
-so4ce
-soft3
-so4lab
-sol3d2
-so3lic
-5solv
-3som
-3s4on.
-sona4
-son4g
-s4op
-5sophic
-s5ophiz
-s5ophy
-sor5c
-sor5d
-4sov
-so5vi
-2spa
-5spai
-spa4n
-spen4d
-2s5peo
-2sper
-s2phe
-3spher
-spho5
-spil4
-sp5ing
-4spio
-s4ply
-s4pon
-spor4
-4spot
-squal4l
-s1r
-2ss
-s1sa
-ssas3
-s2s5c
-s3sel
-s5seng
-s4ses.
-s5set
-s1si
-s4sie
-ssi4er
-ss5ily
-s4sl
-ss4li
-s4sn
-sspend4
-ss2t
-ssur5a
-ss5w
-2st.
-s2tag
-s2tal
-stam4i
-5stand
-s4ta4p
-5stat.
-s4ted
-stern5i
-s5tero
-ste2w
-stew5a
-s3the
-st2i
-s4ti.
-s5tia
-s1tic
-5stick
-s4tie
-s3tif
-st3ing
-5stir
-s1tle
-5stock
-stom3a
-5stone
-s4top
-3store
-st4r
-s4trad
-5stratu
-s4tray
-s4trid
-4stry
-4st3w
-s2ty
-1su
-su1al
-su4b3
-su2g3
-su5is
-suit3
-s4ul
-su2m
-sum3i
-su2n
-su2r
-4sv
-sw2
-4swo
-s4y
-4syc
-3syl
-syn5o
-sy5rin
-1ta
-3ta.
-2tab
-ta5bles
-5taboliz
-4taci
-ta5do
-4taf4
-tai5lo
-ta2l
-ta5la
-tal5en
-tal3i
-4talk
-tal4lis
-ta5log
-ta5mo
-tan4de
-tanta3
-ta5per
-ta5pl
-tar4a
-4tarc
-4tare
-ta3riz
-tas4e
-ta5sy
-4tatic
-ta4tur
-taun4
-tav4
-2taw
-tax4is
-2t1b
-4tc
-t4ch
-tch5et
-4t1d
-4te.
-tead4i
-4teat
-tece4
-5tect
-2t1ed
-te5di
-1tee
-teg4
-te5ger
-te5gi
-3tel.
-teli4
-5tels
-te2ma2
-tem3at
-3tenan
-3tenc
-3tend
-4tenes
-1tent
-ten4tag
-1teo
-te4p
-te5pe
-ter3c
-5ter3d
-1teri
-ter5ies
-ter3is
-teri5za
-5ternit
-ter5v
-4tes.
-4tess
-t3ess.
-teth5e
-3teu
-3tex
-4tey
-2t1f
-4t1g
-2th.
-than4
-th2e
-4thea
-th3eas
-the5at
-the3is
-3thet
-th5ic.
-th5ica
-4thil
-5think
-4thl
-th5ode
-5thodic
-4thoo
-thor5it
-tho5riz
-2ths
-1tia
-ti4ab
-ti4ato
-2ti2b
-4tick
-t4ico
-t4ic1u
-5tidi
-3tien
-tif2
-ti5fy
-2tig
-5tigu
-till5in
-1tim
-4timp
-tim5ul
-2t1in
-t2ina
-3tine.
-3tini
-1tio
-ti5oc
-tion5ee
-5tiq
-ti3sa
-3tise
-tis4m
-ti5so
-tis4p
-5tistica
-ti3tl
-ti4u
-1tiv
-tiv4a
-1tiz
-ti3za
-ti3zen
-2tl
-t5la
-tlan4
-3tle.
-3tled
-3tles.
-t5let.
-t5lo
-4t1m
-tme4
-2t1n2
-1to
-to3b
-to5crat
-4todo
-2tof
-to2gr
-to5ic
-to2ma
-tom4b
-to3my
-ton4ali
-to3nat
-4tono
-4tony
-to2ra
-to3rie
-tor5iz
-tos2
-5tour
-4tout
-to3war
-4t1p
-1tra
-tra3b
-tra5ch
-traci4
-trac4it
-trac4te
-tras4
-tra5ven
-trav5es5
-tre5f
-tre4m
-trem5i
-5tria
-tri5ces
-5tricia
-4trics
-2trim
-tri4v
-tro5mi
-tron5i
-4trony
-tro5phe
-tro3sp
-tro3v
-tru5i
-trus4
-4t1s2
-t4sc
-tsh4
-t4sw
-4t3t2
-t4tes
-t5to
-ttu4
-1tu
-tu1a
-tu3ar
-tu4bi
-tud2
-4tue
-4tuf4
-5tu3i
-3tum
-tu4nis
-2t3up.
-3ture
-5turi
-tur3is
-tur5o
-tu5ry
-3tus
-4tv
-tw4
-4t1wa
-twis4
-4two
-1ty
-4tya
-2tyl
-type3
-ty5ph
-4tz
-tz4e
-4uab
-uac4
-ua5na
-uan4i
-uar5ant
-uar2d
-uar3i
-uar3t
-u1at
-uav4
-ub4e
-u4bel
-u3ber
-u4bero
-u1b4i
-u4b5ing
-u3ble.
-u3ca
-uci4b
-uc4it
-ucle3
-u3cr
-u3cu
-u4cy
-ud5d
-ud3er
-ud5est
-udev4
-u1dic
-ud3ied
-ud3ies
-ud5is
-u5dit
-u4don
-ud4si
-u4du
-u4ene
-uens4
-uen4te
-uer4il
-3ufa
-u3fl
-ugh3en
-ug5in
-2ui2
-uil5iz
-ui4n
-u1ing
-uir4m
-uita4
-uiv3
-uiv4er.
-u5j
-4uk
-u1la
-ula5b
-u5lati
-ulch4
-5ulche
-ul3der
-ul4e
-u1len
-ul4gi
-ul2i
-u5lia
-ul3ing
-ul5ish
-ul4lar
-ul4li4b
-ul4lis
-4ul3m
-u1l4o
-4uls
-uls5es
-ul1ti
-ultra3
-4ultu
-u3lu
-ul5ul
-ul5v
-um5ab
-um4bi
-um4bly
-u1mi
-u4m3ing
-umor5o
-um2p
-unat4
-u2ne
-un4er
-u1ni
-un4im
-u2nin
-un5ish
-uni3v
-un3s4
-un4sw
-unt3ab
-un4ter.
-un4tes
-unu4
-un5y
-un5z
-u4ors
-u5os
-u1ou
-u1pe
-uper5s
-u5pia
-up3ing
-u3pl
-up3p
-upport5
-upt5ib
-uptu4
-u1ra
-4ura.
-u4rag
-u4ras
-ur4be
-urc4
-ur1d
-ure5at
-ur4fer
-ur4fr
-u3rif
-uri4fic
-ur1in
-u3rio
-u1rit
-ur3iz
-ur2l
-url5ing.
-ur4no
-uros4
-ur4pe
-ur4pi
-urs5er
-ur5tes
-ur3the
-urti4
-ur4tie
-u3ru
-2us
-u5sad
-u5san
-us4ap
-usc2
-us3ci
-use5a
-u5sia
-u3sic
-us4lin
-us1p
-us5sl
-us5tere
-us1tr
-u2su
-usur4
-uta4b
-u3tat
-4ute.
-4utel
-4uten
-uten4i
-4u1t2i
-uti5liz
-u3tine
-ut3ing
-ution5a
-u4tis
-5u5tiz
-u4t1l
-ut5of
-uto5g
-uto5matic
-u5ton
-u4tou
-uts4
-u3u
-uu4m
-u1v2
-uxu3
-uz4e
-1va
-5va.
-2v1a4b
-vac5il
-vac3u
-vag4
-va4ge
-va5lie
-val5o
-val1u
-va5mo
-va5niz
-va5pi
-var5ied
-3vat
-4ve.
-4ved
-veg3
-v3el.
-vel3li
-ve4lo
-v4ely
-ven3om
-v5enue
-v4erd
-5vere.
-v4erel
-v3eren
-ver5enc
-v4eres
-ver3ie
-vermi4n
-3verse
-ver3th
-v4e2s
-4ves.
-ves4te
-ve4te
-vet3er
-ve4ty
-vi5ali
-5vian
-5vide.
-5vided
-4v3iden
-5vides
-5vidi
-v3if
-vi5gn
-vik4
-2vil
-5vilit
-v3i3liz
-v1in
-4vi4na
-v2inc
-vin5d
-4ving
-vio3l
-v3io4r
-vi1ou
-vi4p
-vi5ro
-vis3it
-vi3so
-vi3su
-4viti
-vit3r
-4vity
-3viv
-5vo.
-voi4
-3vok
-vo4la
-v5ole
-5volt
-3volv
-vom5i
-vor5ab
-vori4
-vo4ry
-vo4ta
-4votee
-4vv4
-v4y
-w5abl
-2wac
-wa5ger
-wag5o
-wait5
-w5al.
-wam4
-war4t
-was4t
-wa1te
-wa5ver
-w1b
-wea5rie
-weath3
-wed4n
-weet3
-wee5v
-wel4l
-w1er
-west3
-w3ev
-whi4
-wi2
-wil2
-will5in
-win4de
-win4g
-wir4
-3wise
-with3
-wiz5
-w4k
-wl4es
-wl3in
-w4no
-1wo2
-wom1
-wo5ven
-w5p
-wra4
-wri4
-writa4
-w3sh
-ws4l
-ws4pe
-w5s4t
-4wt
-wy4
-x1a
-xac5e
-x4ago
-xam3
-x4ap
-xas5
-x3c2
-x1e
-xe4cuto
-x2ed
-xer4i
-xe5ro
-x1h
-xhi2
-xhil5
-xhu4
-x3i
-xi5a
-xi5c
-xi5di
-x4ime
-xi5miz
-x3o
-x4ob
-x3p
-xpan4d
-xpecto5
-xpe3d
-x1t2
-x3ti
-x1u
-xu3a
-xx4
-y5ac
-3yar4
-y5at
-y1b
-y1c
-y2ce
-yc5er
-y3ch
-ych4e
-ycom4
-ycot4
-y1d
-y5ee
-y1er
-y4erf
-yes4
-ye4t
-y5gi
-4y3h
-y1i
-y3la
-ylla5bl
-y3lo
-y5lu
-ymbol5
-yme4
-ympa3
-yn3chr
-yn5d
-yn5g
-yn5ic
-5ynx
-y1o4
-yo5d
-y4o5g
-yom4
-yo5net
-y4ons
-y4os
-y4ped
-yper5
-yp3i
-y3po
-y4poc
-yp2ta
-y5pu
-yra5m
-yr5ia
-y3ro
-yr4r
-ys4c
-y3s2e
-ys3ica
-ys3io
-3ysis
-y4so
-yss4
-ys1t
-ys3ta
-ysur4
-y3thin
-yt3ic
-y1w
-za1
-z5a2b
-zar2
-4zb
-2ze
-ze4n
-ze4p
-z1er
-ze3ro
-zet4
-2z1i
-z4il
-z4is
-5zl
-4zm
-1zo
-zo4m
-zo5ol
-zte4
-4z1z2
-z4zy
-.con5gr
-.de5riva
-.dri5v4
-.eth1y6l1
-.eu4ler
-.ev2
-.ever5si5b
-.ga4s1om1
-.ge4ome
-.ge5ot1
-.he3mo1
-.he3p6a
-.he3roe
-.in5u2t
-.kil2n3i
-.ko6r1te1
-.le6ices
-.me4ga1l
-.met4ala
-.mim5i2c1
-.mi1s4ers
-.ne6o3f
-.noe1th
-.non1e2m
-.poly1s
-.post1am
-.pre1am
-.rav5en1o
-.semi5
-.sem4ic
-.semid6
-.semip4
-.semir4
-.sem6is4
-.semiv4
-.sph6in1
-.spin1o
-.ta5pes1tr
-.te3legr
-.to6pog
-.to2q
-.un3at5t
-.un5err5
-.vi2c3ar
-.we2b1l
-.re1e4c
-a5bolic
-a2cabl
-af6fish
-am1en3ta5b
-anal6ys
-ano5a2c
-ans5gr
-ans3v
-anti1d
-an3ti1n2
-anti1re
-a4pe5able
-ar3che5t
-ar2range
-as5ymptot
-ath3er1o1s
-at6tes.
-augh4tl
-au5li5f
-av3iou
-back2er.
-ba6r1onie
-ba1thy
-bbi4t
-be2vie
-bi5d2if
-bil2lab
-bio5m
-bi1orb
-bio1rh
-b1i3tive
-blan2d1
-blin2d1
-blon2d2
-bor1no5
-bo2t1u1l
-brus4q
-bus6i2er
-bus6i2es
-buss4ing
-but2ed.
-but4ted
-cad5e1m
-cat1a1s2
-4chs.
-chs3hu
-chie5vo
-cig3a3r
-cin2q
-cle4ar
-co6ph1o3n
-cous2ti
-cri3tie
-croc1o1d
-cro5e2co
-c2tro3me6c
-1cu2r1ance
-2d3alone
-data1b
-dd5a5b
-d2d5ib
-de4als.
-de5clar1
-de2c5lina
-de3fin3iti
-de2mos
-des3ic
-de2tic
-dic1aid
-dif5fra
-3di1methy
-di2ren
-di2rer
-2d1lead
-2d1li2e
-3do5word
-dren1a5l
-drif2t1a
-d1ri3pleg5
-drom3e5d
-d3tab
-du2al.
-du1op1o1l
-ea4n3ies
-e3chas
-edg1l
-ed1uling
-eli2t1is
-e1loa
-en1dix
-eo3grap
-1e6p3i3neph1
-e2r3i4an.
-e3spac6i
-eth1y6l1ene
-5eu2clid1
-feb1rua
-fermi1o
-3fich
-fit5ted.
-fla1g6el
-flow2er.
-3fluor
-gen2cy.
-ge3o1d
-ght1we
-g1lead
-get2ic.
-4g1lish
-5glo5bin
-1g2nac
-gnet1ism
-gno5mo
-g2n1or.
-g2noresp
-2g1o4n3i1za
-graph5er.
-griev1
-g1utan
-hair1s
-ha2p3ar5r
-hatch1
-hex2a3
-hite3sid
-h3i5pel1a4
-hnau3z
-ho6r1ic.
-h2t1eou
-hypo1tha
-id4ios
-ifac1et
-ign4it
-ignit1er
-i4jk
-im3ped3a
-infra1s2
-i5nitely.
-irre6v3oc
-i1tesima
-ith5i2l
-itin5er5ar
-janu3a
-japan1e2s
-je1re1m
-1ke6ling
-1ki5netic
-1kovian
-k3sha
-la4c3i5e
-lai6n3ess
-lar5ce1n
-l3chai
-l3chil6d1
-lead6er.
-lea4s1a
-1lec3ta6b
-le3g6en2dre
-1le1noid
-lith1o5g
-ll1fl
-l2l3ish
-l5mo3nell
-lo1bot1o1
-lo2ges.
-load4ed.
-load6er.
-l3tea
-lth5i2ly
-lue1p
-1lunk3er
-1lum5bia.
-3lyg1a1mi
-ly5styr
-ma1la1p
-m2an.
-man3u1sc
-mar1gin1
-medi2c
-med3i3cin
-medio6c1
-me3gran3
-m2en.
-3mi3da5b
-3milita
-mil2l1ag
-mil5li5li
-mi6n3is.
-mi1n2ut1er
-mi1n2ut1est
-m3ma1b
-5maph1ro1
-5moc1ra1t
-mo5e2las
-mol1e5c
-mon4ey1l
-mono3ch
-mo4no1en
-moro6n5is
-mono1s6
-moth4et2
-m1ou3sin
-m5shack2
-mu2dro
-mul2ti5u
-n3ar4chs.
-n3ch2es1t
-ne3back
-2ne1ski
-n1dieck
-nd3thr
-nfi6n3ites
-4n5i4an.
-nge5nes
-ng1ho
-ng1spr
-nk3rup
-n5less
-5noc3er1os
-nom1a6l
-nom5e1no
-n1o1mist
-non1eq
-non1i4so
-5nop1oly.
-no1vemb
-ns5ceiv
-ns4moo
-ntre1p
-obli2g1
-o3chas
-odel3li
-odit1ic
-oerst2
-oke1st
-o3les3ter
-oli3gop1o1
-o1lo3n4om
-o3mecha6
-onom1ic
-o3norma
-o3no2t1o3n
-o3nou
-op1ism.
-or4tho3ni4t
-orth1ri
-or5tively
-o4s3pher
-o5test1er
-o5tes3tor
-oth3e1o1s
-ou3ba3do
-o6v3i4an.
-oxi6d1ic
-pal6mat
-parag6ra4
-par4a1le
-param4
-para3me
-pee2v1
-phi2l3ant
-phi5lat1e3l
-pi2c1a3d
-pli2c1ab
-pli5nar
-poin3ca
-1pole.
-poly1e
-po3lyph1ono
-1prema3c
-pre1neu
-pres2pli
-pro2cess
-proc3i3ty.
-pro2g1e
-3pseu2d
-pseu3d6o3d2
-pseu3d6o3f2
-pto3mat4
-p5trol3
-pu5bes5c
-quain2t1e
-qu6a3si3
-quasir6
-quasis6
-quin5tes5s
-qui3v4ar
-r1abolic
-3rab1o1loi
-ra3chu
-r3a3dig
-radi1o6g
-r2amen
-3ra4m5e1triz
-ra3mou
-ra5n2has
-ra1or
-r3bin1ge
-re2c3i1pr
-rec5t6ang
-re4t1ribu
-r3ial.
-riv1o1l
-6rk.
-rk1ho
-r1krau
-6rks.
-r5le5qu
-ro1bot1
-ro5e2las
-ro5epide1
-ro3mesh
-ro1tron
-r3pau5li
-rse1rad1i
-r1thou
-r1treu
-r1veil
-rz1sc
-sales3c
-sales5w
-5sa3par5il
-sca6p1er
-sca2t1ol
-s4chitz
-schro1ding1
-1sci2utt
-scrap4er.
-scy4th1
-sem1a1ph
-se3mes1t
-se1mi6t5ic
-sep3temb
-shoe1st
-sid2ed.
-side5st
-side5sw
-si5resid
-sky1sc
-3slova1kia
-3s2og1a1my
-so2lute
-3s2pace
-1s2pacin
-spe3cio
-spher1o
-spi2c1il
-spokes5w
-sports3c
-sports3w
-s3qui3to
-s2s1a3chu1
-ss3hat
-s2s3i4an.
-s5sign5a3b
-1s2tamp
-s2t1ant5shi
-star3tli
-sta1ti
-st5b
-1stor1ab
-strat1a1g
-strib5ut
-st5scr
-stu1pi4d1
-styl1is
-su2per1e6
-1sync
-1syth3i2
-swimm6
-5tab1o1lism
-ta3gon.
-talk1a5
-t1a1min
-t6ap6ath
-5tar2rh
-tch1c
-tch3i1er
-t1cr
-teach4er.
-tele2g
-tele1r6o
-3ter1gei
-ter2ic.
-t3ess2es
-tha4l1am
-tho3don
-th1o5gen1i
-tho1k2er
-thy4l1an
-thy3sc
-2t3i4an.
-ti2n3o1m
-t1li2er
-tolo2gy
-tot3ic
-trai3tor1
-tra1vers
-travers3a3b
-treach1e
-tr4ial.
-3tro1le1um
-trof4ic.
-tro3fit
-tro1p2is
-3trop1o5les
-3trop1o5lis
-t1ro1pol3it
-tsch3ie
-ttrib1ut1
-turn3ar
-t1wh
-ty2p5al
-ua3drati
-uad1ratu
-u5do3ny
-uea1m
-u2r1al.
-uri4al.
-us2er.
-v1ativ
-v1oir5du1
-va6guer
-vaude3v
-1verely.
-v1er1eig
-ves1tite
-vi1vip3a3r
-voice1p
-waste3w6a2
-wave1g4
-w3c
-week1n
-wide5sp
-wo4k1en
-wrap3aro
-writ6er.
-x1q
-xquis3
-y5che3d
-ym5e5try
-y1stro
-yes5ter1y
-z3ian.
-z3o1phr
-z2z3w
-}
-
-% end pattern data
-
diff --git a/Master/texmf-dist/tex/context/patterns/lang-es.hyp b/Master/texmf-dist/tex/context/patterns/lang-es.hyp
index 52657280b89..3768bbd79e7 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-es.hyp
+++ b/Master/texmf-dist/tex/context/patterns/lang-es.hyp
@@ -1,32 +1,8 @@
-% context hyphenation file, see lang-all.xml for original comment
+% generated by mtxrun --script pattern --convert
-% source of data: eshyph.tex
+% for comment and copyright, see ./lang-es.rme
-% begin description data
-
-% <!-- copied from lang-all.xml
-%
-% <?xml version='1.0' standalone='yes'?>
-%
-% <description language='es'>
-% <sourcefile>eshyph.tex</sourcefile>
-% <title>TeX hyphenation patterns for the Spanish language</title>
-% <copyright>
-% <year>1993</year>
-% <owner>Francesc Carmona (franc@porthos.bio.ub.es)</owner>
-% </copyright>
-% </description>
-%
-% end of copy -->
-
-% end description data
-
-% begin hyphenation data
-
-\hyphenation {
-no-s-o-tros
-vo-s-o-tros
-}
-
-% end hyphenation data
+% used:
+\hyphenation{
+} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-es.pat b/Master/texmf-dist/tex/context/patterns/lang-es.pat
index eb97ea72823..10449d76b78 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-es.pat
+++ b/Master/texmf-dist/tex/context/patterns/lang-es.pat
@@ -1,271 +1,2860 @@
-% context pattern file, see lang-all.xml for original comment
+% generated by mtxrun --script pattern --convert
-% source of data: eshyph.tex
+% for comment and copyright, see ./lang-es.rme
-% begin description data
+% used: X a b c d e f g h i j k l m n o p q r s t u v w x y z á é í ñ ó ú ü
-% <!-- copied from lang-all.xml
-%
-% <?xml version='1.0' standalone='yes'?>
-%
-% <description language='es'>
-% <sourcefile>eshyph.tex</sourcefile>
-% <title>TeX hyphenation patterns for the Spanish language</title>
-% <copyright>
-% <year>1993</year>
-% <owner>Francesc Carmona (franc@porthos.bio.ub.es)</owner>
-% </copyright>
-% </description>
-%
-% end of copy -->
-
-% end description data
-
-% begin pattern data
-
-\patterns {
-1ba
-1be
-1bi
-1bo
-1bu
-1bá
-1bé
-1bí
-1bó
-1bú
-1ca
-1ce
-1ci
-1co
-1cu
-1c2h
-1cá
-1cé
-1cí
-1có
-1cú
-1da
-1de
-1di
-1do
-1du
-1dá
-1dé
-1dí
-1dó
-1dú
-1fa
-1fe
-1fi
-1fo
-1fu
-1fá
-1fé
-1fí
-1fó
-1fú
-1ga
-1ge
-1gi
-1go
-1gu
-1gá
-1gé
-1gí
-1gó
-1gú
-1gü
-1ha
-1he
-1hi
-1ho
-1hu
-1há
-1hé
-1hí
-1hó
-1hú
-1ja
-1je
-1ji
-1jo
-1ju
-1já
-1jé
-1jí
-1jó
-1jú
-1ka
-1ke
-1ki
-1ko
-1ku
-1ká
-1ké
-1kí
-1kó
-1kú
-1la
-1le
-1li
-1lo
-1lu
-1l2l
-1lá
-1lé
-1lí
-1ló
-1lú
-1ma
-1me
-1mi
-1mo
-1mu
-1má
-1mé
-1mí
-1mó
-1mú
-1na
-1ne
-1ni
-1no
-1nu
-1ná
-1né
-1ní
-1nó
-1nú
-1ña
-1ñe
-1ñi
-1ño
-1ñu
-1ñá
-1ñé
-1ñí
-1ñó
-1ñú
-1pa
-1pe
-1pi
-1po
-1pu
-1pá
-1pé
-1pí
-1pó
-1pú
-1qu
-1ra
-1re
-1ri
-1ro
-1ru
+\patterns{
+1ñ
+1b
+2bb
+2bc
+2bd
+2bf
+2bg
+2b1h
+2bj
+2bk
+b2l
+2bl.
+2bm
+2bn
+2bp
+2bq
+b2r
+2br.
+2bs
+2bt
+2bv
+2bw
+2bx
+2by
+2bz
+1c
+2cb
+2cc
+2cd
+2cf
+2cg
+c4h
+2ch.
+2cj
+c2k
+c2l
+2cl.
+2cm
+2cn
+2cp
+2cq
+c2r
+2cr.
+2cs
+2ct
+2cv
+2cw
+2cx
+2cy
+2cz
+1d
+2db
+2dc
+2dd
+2df
+2dg
+2d1h
+2dj
+2dk
+2dl
+2dm
+2dn
+2dp
+2dq
+d2r
+2dr.
+2ds
+2dt
+2dv
+2dw
+2dx
+2dy
+2dz
+1f
+2fb
+2fc
+2fd
+2ff
+2fg
+2f1h
+2fj
+2fk
+f2l
+2fl.
+2fm
+2fn
+2fp
+2fq
+f2r
+2fr.
+2fs
+2ft
+2fv
+2fw
+2fx
+2fy
+2fz
+1g
+2gb
+2gc
+2gd
+2gf
+2gg
+2g2h
+2gj
+2gk
+g2l
+2gl.
+2gm
+2gn
+2gp
+2gq
+g2r
+2gr.
+2gs
+2gt
+2gv
+2gw
+2gx
+2gy
+2gz
+2hb
+2hc
+2hd
+2hf
+2hg
+2h1h
+2hj
+2hk
+2hl
+2hm
+2hn
+2hp
+2hq
+2hr
+2hs
+2ht
+2hv
+2hw
+2hx
+2hy
+2hz
+1j
+2jb
+2jc
+2jd
+2jf
+2jg
+2j1h
+2jj
+2jk
+2jl
+2jm
+2jn
+2jp
+2jq
+2jr
+2js
+2jt
+2jv
+2jw
+2jx
+2jy
+2jz
+1k
+2kb
+2kc
+2kd
+2kf
+2kg
+2k2h
+2kj
+2kk
+k2l
+2kl.
+2km
+2kn
+2kp
+2kq
+k2r
+2kr.
+2ks
+2kt
+2kv
+2kw
+2kx
+2ky
+2kz
+1l
+2lb
+2lc
+2ld
+2lf
+2lg
+2l1h
+2lj
+2lk
+l4l
+2ll.
+2lm
+2ln
+2lp
+2lq
+2lr
+2ls
+2lt
+2lv
+2lw
+2lx
+2ly
+2lz
+1m
+2mb
+2mc
+2md
+2mf
+2mg
+2m1h
+2mj
+2mk
+2ml
+2mm
+2mn
+2mp
+2mq
+2mr
+2ms
+2mt
+2mv
+2mw
+2mx
+2my
+2mz
+1n
+2nb
+2nc
+2nd
+2nf
+2ng
+2n1h
+2nj
+2nk
+2nl
+2nm
+2nn
+2np
+2nq
+2nr
+2ns
+2nt
+2nv
+2nw
+2nx
+2ny
+2nz
+1p
+2pb
+2pc
+2pd
+2pf
+2pg
+2p1h
+2pj
+2pk
+p2l
+2pl.
+2pm
+2pn
+2pp
+2pq
+p2r
+2pr.
+2ps
+2pt
+2pv
+2pw
+2px
+2py
+2pz
+1q
+2qb
+2qc
+2qd
+2qf
+2qg
+2q1h
+2qj
+2qk
+2ql
+2qm
+2qn
+2qp
+2qq
+2qr
+2qs
+2qt
+2qv
+2qw
+2qx
+2qy
+2qz
+1r
+2rb
+2rc
+2rd
+2rf
+2rg
+2r1h
+2rj
+2rk
+2rl
+2rm
+2rn
+2rp
+2rq
r2r
-1rá
-1ré
-1rí
-1ró
-1rú
-1sa
-1se
-1si
-1so
-1su
-1sá
-1sé
-1sí
-1só
-1sú
-1ta
-1te
-1ti
-1to
-1tu
-1tá
-1té
-1tí
-1tó
-1tú
-1va
-1ve
-1vi
-1vo
-1vu
-1vá
-1vé
-1ví
-1vó
-1vú
-1wa
-1we
-1wi
-1wo
-1wu
-1wá
-1wé
-1wí
-1wó
-1wú
-1xa
-1xe
-1xi
-1xo
-1xu
-1xá
-1xé
-1xí
-1xó
-1xú
-1ya
-1ye
-1yi
-1yo
-1yu
-1yá
-1yé
-1yí
-1yó
-1yú
-1za
-1ze
-1zi
-1zo
-1zu
-1zá
-1zé
-1zí
-1zó
-1zú
-1b2l
-1c2l
-1f2l
-1g2l
-1p2l
-1tl
-1b2r
-1c2r
-1d2r
-1f2r
-1g2r
-1p2r
-1t2r
-.ae2
-.ai2
-.ao2
-.au2
-.ante1a
-.ante1i
-.ante1o
-.anti1a
-.anti1e
-.anti1i
-.anti1ox
-.auto1
-.auto2ct
-.auto2ps
+2rr.
+2rs
+2rt
+2rv
+2rw
+2rx
+2ry
+2rz
+1s
+2sb
+2sc
+2sd
+2sf
+2sg
+2s1h
+2sj
+2sk
+2sl
+2sm
+2sn
+2sp
+2sq
+2sr
+2ss
+2st
+2sv
+2sw
+2sx
+2sy
+2sz
+1t
+2tb
+2tc
+2td
+2tf
+2tg
+2t1h
+2tj
+2tk
+2tm
+2tn
+2tp
+2tq
+t2r
+2tr.
+2ts
+2tt
+2tv
+2tw
+t2x
+2ty
+2tz
+1v
+2vb
+2vc
+2vd
+2vf
+2vg
+2v1h
+2vj
+2vk
+v2l
+2vl.
+2vm
+2vn
+2vp
+2vq
+v2r
+2vr.
+2vs
+2vt
+2vv
+2vw
+2vx
+2vy
+2vz
+1w
+2wb
+2wc
+2wd
+2wf
+2wg
+2w1h
+2wj
+2wk
+w2l
+2wl.
+2wm
+2wn
+2wp
+2wq
+w2r
+2wr.
+2ws
+2wt
+2wv
+2ww
+2wx
+2wy
+2wz
+1x
+2xb
+2xc
+2xd
+2xf
+2xg
+2x1h
+2xj
+2xk
+2xl
+2xm
+2xn
+2xp
+2xq
+2xr
+2xs
+2xt
+2xv
+2xw
+2xx
+2xy
+2xz
+1y
+2yb
+2yc
+2yd
+2yf
+2yg
+2y1h
+2yj
+2yk
+2yl
+2ym
+2yn
+2yp
+2yq
+2yr
+2ys
+2yt
+2yv
+2yw
+2yx
+2yy
+2yz
+1z
+2zb
+2zc
+2zd
+2zf
+2zg
+2z1h
+2zj
+2zk
+2zl
+2zm
+2zn
+2zp
+2zq
+2zr
+2zs
+2zt
+2zv
+2zw
+2zx
+2zy
+2zz
+2t2l
+2b3p2t
+2c3p2t
+2d3p2t
+2l3p2t
+2m3p2t
+2n3p2t
+2r3p2t
+2s3p2t
+2t3p2t
+2x3p2t
+2y3p2t
+4pt.
+2b3c2t
+2c3c2t
+2d3c2t
+2l3c2t
+2m3c2t
+2n3c2t
+2r3c2t
+2s3c2t
+2t3c2t
+2x3c2t
+2y3c2t
+4ct.
+2b3c2n
+2c3c2n
+2d3c2n
+2l3c2n
+2m3c2n
+2n3c2n
+2r3c2n
+2s3c2n
+2t3c2n
+2x3c2n
+2y3c2n
+4cn.
+2b3p2s
+2c3p2s
+2d3p2s
+2l3p2s
+2m3p2s
+2n3p2s
+2r3p2s
+2s3p2s
+2t3p2s
+2x3p2s
+2y3p2s
+4pc.
+2b3m2n
+2c3m2n
+2d3m2n
+2l3m2n
+2m3m2n
+2n3m2n
+2r3m2n
+2s3m2n
+2t3m2n
+2x3m2n
+2y3m2n
+4mn.
+2b3g2n
+2c3g2n
+2d3g2n
+2l3g2n
+2m3g2n
+2n3g2n
+2r3g2n
+2s3g2n
+2t3g2n
+2x3g2n
+2y3g2n
+4gn.
+2b3f2t
+2c3f2t
+2d3f2t
+2l3f2t
+2m3f2t
+2n3f2t
+2r3f2t
+2s3f2t
+2t3f2t
+2x3f2t
+2y3f2t
+4ft.
+2b3p2n
+2c3p2n
+2d3p2n
+2l3p2n
+2m3p2n
+2n3p2n
+2r3p2n
+2s3p2n
+2t3p2n
+2x3p2n
+2y3p2n
+4pn.
+2b3c2z
+2c3c2z
+2d3c2z
+2l3c2z
+2m3c2z
+2n3c2z
+2r3c2z
+2s3c2z
+2t3c2z
+2x3c2z
+2y3c2z
+4cz.
+2b3t2z
+2c3t2z
+2d3t2z
+2l3t2z
+2m3t2z
+2n3t2z
+2r3t2z
+2s3t2z
+2t3t2z
+2x3t2z
+2y3t2z
+4tz.
+2b3t2s
+2c3t2s
+2d3t2s
+2l3t2s
+2m3t2s
+2n3t2s
+2r3t2s
+2s3t2s
+2t3t2s
+2x3t2s
+2y3t2s
+4ts.
+san4c5t
+plan4c5t
+2no.
+4caca4
+4cago4
+4caga4
+4cagas.
+4teta.
+4tetas.
+4puta4
+4puto4
+.hu4mea
+.hu4meo
+.he4mee
+4meo.
+4meable.
+4meables.
+4pedo4
+4culo4
+3mente.
+4i3go.
+4es.
+4és
+4e.
+4e3mos.
+4éis.
+4en.
+4ía.
+4ías.
+4ía3mos.
+4íais.
+4ían.
+4í.
+4í4s3te.
+4í4s3tes.
+4í3tes.
+4í3mos.
+4ís3teis.
+4e3ré.
+4e3rás.
+4e3rés.
+4e3rís.
+4e3rá.
+4e3re3mos.
+4e3réis.
+4e3rán.
+4i3ga.
+4i3gas.
+4i3gás.
+4i3gamos.
+4i3gáis.
+4a4i3gan.
+4e3ría.
+4e3rías.
+4e3ríamos.
+4e3ríais.
+4e3rían.
+4i3gá3mosme.
+4i3gá3mosmele.
+4i3gá3mosmelo.
+4i3gá3mos3mela.
+4i3gá3mosmeles.
+4i3gá3mosmelos.
+4i3gá3mos3melas.
+4i3gá3moste.
+4i3gá3mostele.
+4i3gá3mostelo.
+4i3gá3mos3tela.
+4i3gá3mosteles.
+4i3gá3mostelos.
+4i3gá3mos3telas.
+4i3gá3mosle.
+4i3gá3mosla.
+4i3gá3moslo.
+4i3gá3mosele.
+4i3gá3moselo.
+4i3gá3mosela.
+4i3gá3moseles.
+4i3gá3moselos.
+4i3gá3moselas.
+4i3gá3monos.
+4i3gá3monosle.
+4i3gá3monoslo.
+4i3gá3monosla.
+4i3gá3monosles.
+4i3gá3monoslos.
+4i3gá3monoslas.
+4i3gá3moos.
+4i3gá3moosle.
+4i3gá3mooslo.
+4i3gá3moosla.
+4i3gá3moosles.
+4i3gá3mooslos.
+4i3gá3mooslas.
+4i3gá3mosles.
+4i3gá3moslas.
+4i3gá3moslos.
+4ed.
+4é.
+4edme.
+4édmele.
+4édmelo.
+4éd3mela.
+4édmeles.
+4édmelos.
+4éd3melas.
+4edte.
+4édtele.
+4édtelo.
+4éd3tela.
+4édteles.
+4édtelos.
+4éd3telas.
+4edle.
+4eedla.
+4edlo.
+4édsele.
+4édselo.
+4édsela.
+4édseles.
+4édselos.
+4édselas.
+4ednos.
+4édnosle.
+4édnoslo.
+4édnosla.
+4édnosles.
+4édnoslos.
+4édnoslas.
+4eos.
+4éosle.
+4éoslo.
+4éosla.
+4éosles.
+4éoslos.
+4éoslas.
+4edles.
+4edlas.
+4edlos.
+4er.
+4erme.
+4érmele.
+4érmelo.
+4ér3mela.
+4érmeles.
+4érmelos.
+4ér3melas.
+4erte.
+4értele.
+4értelo.
+4ér3tela.
+4érteles.
+4értelos.
+4ér3telas.
+4erle.
+4erla.
+4erlo.
+4erse.
+4érsele.
+4érselo.
+4érsela.
+4érseles.
+4érselos.
+4érselas.
+4ernos.
+4érnosle.
+4érnoslo.
+4érnosla.
+4érnosles.
+4érnoslos.
+4érnoslas.
+4e3ros.
+4é3rosle.
+4é3roslo.
+4é3rosla.
+4é3rosles.
+4é3roslos.
+4é3roslas.
+4erles.
+4erlas.
+4erlos.
+4í3do.
+4í3da.
+4í3dos.
+4í3das.
+4as.
+4ás.
+4a3mos.
+4áis.
+4an.
+4aste.
+4astes.
+4ates.
+4asteis.
+4a3ron.
+4a3ba.
+4a3bas.
+4á3bamos.
+4a3bais.
+4a3ban.
+4a3ría.
+4a3rías.
+4a3ríamos.
+4a3ríais
+4a3rían.
+4a3ré.
+4a3rás.
+4a3rés.
+4a3rís.
+4a3rá.
+4a3remos.
+4a3réis.
+4a3rán.
+4a3ra.
+4a3ras.
+4á3ramos.
+4a3rais.
+4a3ran.
+4a3re.
+4a3res.
+4á3remos.
+4a3reis.
+4a3ren.
+4a3se.
+4a3ses.
+4á3semos.
+4a3seis.
+4a3sen.
+4ad.
+e5r4as.
+e5r4a3mos.
+e5r4áis.
+e5r4an.
+e5r4aste.
+e5r4astes.
+e5r4ates.
+e5r4asteis.
+e5r4a3ron.
+e5r4a3ba.
+e5r4a3bas.
+e5r4á3bamos.
+e5r4a3bais.
+e5r4a3ban.
+e5r4a3ría.
+e5r4a3rías.
+e5r4a3ríamos.
+e5r4a3ríais
+e5r4a3rían.
+e5r4a3ré.
+e5r4a3rás.
+e5r4a3rés.
+e5r4a3rís.
+e5r4a3rá.
+e5r4a3remos.
+e5r4a3réis.
+e5r4a3rán.
+e5r4a3ra.
+e5r4a3ras.
+e5r4á3ramos.
+e5r4a3rais.
+e5r4a3ran.
+e5r4a3re.
+e5r4a3res.
+e5r4á3remos.
+e5r4a3reis.
+e5r4a3ren.
+e5r4a3se.
+e5r4a3ses.
+e5r4á3semos.
+e5r4a3seis.
+e5r4a3sen.
+e5r4ad.
+4adme.
+4ádmele.
+4ádmelo.
+4ád3mela.
+4ádmeles.
+4ádmelos.
+4ád3melas.
+4adte.
+4ádtele.
+4ádtelo.
+4ád3tela.
+4ádteles.
+4ádtelos.
+4ád3telas.
+4adle.
+4eadla.
+4adlo.
+4ádsele.
+4ádselo.
+4ádsela.
+4ádseles.
+4ádselos.
+4ádselas.
+4adnos.
+4ádnosle.
+4ádnoslo.
+4ádnosla.
+4ádnosles.
+4ádnoslos.
+4ádnoslas.
+4aos.
+4áosle.
+4áoslo.
+4áosla.
+4áosles.
+4áoslos.
+4áoslas.
+4adles.
+4adlas.
+4adlos.
+4ar.
+4a4rme.
+4á4rmele.
+4á4rmelo.
+4á4r3mela.
+4á4r3meles.
+4á4r3melos.
+4á4r3melas.
+4a4r3te.
+4á4r3tele.
+4á4r3telo.
+4á4r3tela.
+4á4r3teles.
+4á4r3telos.
+4á4r3telas.
+4a4r3le.
+4a4r3la.
+4a4r3lo.
+4a4r3se.
+4á4r3sele.
+4á4r3selo.
+4á4r3sela.
+4á4r3seles.
+4á4r3selos.
+4á4r3selas.
+4a4r3nos.
+4á4r3nosle.
+4á4r3noslo.
+4á4r3nosla.
+4á4r3nosles.
+4á4r3noslos.
+4á4r3noslas.
+4a3ros.
+4árosle.
+4ároslo.
+4árosla.
+4árosles.
+4ároslos.
+4ároslas.
+4a4r3les.
+4a4r3las.
+4a4r3los.
+4a3do.
+4a3da.
+4a3dos.
+4a3das.
+e5r4a3do.
+e5r4a3da.
+e5r4a3dos.
+e5r4a3das.
+4ando
+4ándole.
+4ándolo.
+4ándola.
+4ándoles.
+4ándolos.
+4ándolas.
+4ándonos.
+4ándoos.
+4ándome.
+4ándomelo.
+4ándomela.
+4ándomele.
+4ándomelos.
+4ándomelas.
+4ándomeles.
+4ándote.
+4ándoteme.
+4ándotelo.
+4ándotela.
+4ándotele.
+4ándotelos.
+4ándotelas.
+4ándoteles.
+4ándotenos.
+4ándose.
+4ándoseme.
+4ándoselo.
+4ándosela.
+4ándosele.
+4ándoselos.
+4ándoselas.
+4ándoseles.
+4ándosenos.
+4a3dor.
+4a3dora.
+4a3dores.
+4a3doras.
+e5r4a3dor.
+e5r4a3dora.
+e5r4a3dores.
+e5r4a3doras.
+acto1a2
+acto1e2
+acto1i2
+acto1o2
+acto1u2
+acto1h
+acto1á2
+acto1é2
+acto1í2
+acto1ó2
+acto1ú2
+afro1a2
+afro1e2
+afro1i2
+afro1o2
+afro1u2
+afro1h
+afro1á2
+afro1é2
+afro1í2
+afro1ó2
+afro1ú2
+.a2
+.an2a2
+.an2e2
+.an2i2
+.an2o2
+.an2u2
+.an2á2
+.an2é2
+.an2í2
+.an2ó2
+.an2ú2.
+ana3lí
+.aná3li
+.ana3li
+.an3aero
+.an3e2pigr
+.ane3xa
+.ane3xá
+.ane3xe
+.ane3xé
+.ane3xio
+.ane3xió
+.an3h
+.ani3mad
+.ani3mád
+.ani3dar
+.ani3ll
+.ani3m
+.aniña
+.ani3q
+.an3i2so
+.an3i2só
+.ani3vel
+.ano5che
+.ano5din
+.ano5mal
+.ano5nad
+.anó3nim
+.anó5mal
+.ano5nim
+.ano5ta
+.ano3tá
+.anua3l
+.anua4lm
+.anu3bl
+.anu3da
+.anu3l
+asu3b2
+aero1a2
+aero1e2
+aero1i2
+aero1o2
+aero1u2
+aero1h
+aero1á2
+aero1é2
+aero1í2
+aero1ó2
+aero1ú2
+anfi1a2
+anfi1e2
+anfi1i2
+anfi1o2
+anfi1u2
+anfi1h
+anfi1á2
+anfi1é2
+anfi1í2
+anfi1ó2
+anfi1ú2
+anglo1a2
+anglo1e2
+anglo1i2
+anglo1o2
+anglo1u2
+anglo1h
+anglo1á2
+anglo1é2
+anglo1í2
+anglo1ó2
+anglo1ú2
+ante1a2
+ante1e2
+ante1i2
+ante1o2
+ante1u2
+ante1h
+ante1á2
+ante1é2
+ante1í2
+ante1ó2
+ante1ú2
+.ante2o3je
+acante2
+4ísmo.
+4ísmos.
+4ísta.
+4ístas.
+4ístico.
+4ísticos.
+4ística.
+4ísticas.
+t4eo3nes.
+mante4a
+e4a3miento
+.anti1a2
+.anti1e2
+.anti1i2
+.anti1o2
+.anti1u2
+.anti1h
+.anti1á2
+.anti1é2
+.anti1í2
+.anti1ó2
+.anti1ú2
+ti2o3qu
+ti2o3co
+archi1a2
+archi1e2
+archi1i2
+archi1o2
+archi1u2
+archi1h
+archi1á2
+archi1é2
+archi1í2
+archi1ó2
+archi1ú2
+auto1a2
+auto1e2
+auto1i2
+auto1o2
+auto1u2
+auto1h
+auto1á2
+auto1é2
+auto1í2
+auto1ó2
+auto1ú2
+biblio1a2
+biblio1e2
+biblio1i2
+biblio1o2
+biblio1u2
+biblio1h
+biblio1á2
+biblio1é2
+biblio1í2
+biblio1ó2
+biblio1ú2
+bio1a2
+bio1e2
+bio1i2
+bio1o2
+bio1u2
+bio1h
+bio1á2
+bio1é2
+bio1í2
+bio1ó2
+bio1ú2
+bi1u2ní
+cardio1a2
+cardio1e2
+cardio1i2
+cardio1o2
+cardio1u2
+cardio1h
+cardio1á2
+cardio1é2
+cardio1í2
+cardio1ó2
+cardio1ú2
+cefalo1a2
+cefalo1e2
+cefalo1i2
+cefalo1o2
+cefalo1u2
+cefalo1h
+cefalo1á2
+cefalo1é2
+cefalo1í2
+cefalo1ó2
+cefalo1ú2
+centi1a2
+centi1e2
+centi1i2
+centi1o2
+centi1u2
+centi1h
+centi1á2
+centi1é2
+centi1í2
+centi1ó2
+centi1ú2
+centi5área
+ciclo1a2
+ciclo1e2
+ciclo1i2
+ciclo1o2
+ciclo1u2
+ciclo1h
+ciclo1á2
+ciclo1é2
+ciclo1í2
+ciclo1ó2
+ciclo1ú2
+o4i3dea.
+o4i3deas.
+o4i3dal.
+o4i3dales.
+4o2i3de.
+4o2i3des.
+4i2dal.
+4i2dales.
+4i3deo.
+4i3deos.
+cito1a2
+cito1e2
+cito1i2
+cito1o2
+cito1u2
+cito1h
+cito1á2
+cito1é2
+cito1í2
+cito1ó2
+cito1ú2
+3c2neor
+cnico1a2
+cnico1e2
+cnico1i2
+cnico1o2
+cnico1u2
+cnico1h
+cnico1á2
+cnico1é2
+cnico1í2
+cnico1ó2
+cnico1ú2
+.co2a2
+.co2e2
+.co2i2
+.co3o4
+.co2u2
+.co2á2
+.co2é2
+.co2í2
+.co2ó2
+.co2ú2
+co4á3gul
+co4acci
+co4acti
+co4adju
+co4a3dun
+co4adyu
+co3agen
+co4a3gul
+co4a3lic
+co4aptac
+co4art
+co4árt
+co4e3fic
+co4erc
+co4erz
+co4e3tá
+co3exis
+co4imbr
+co4inci
+co4i3to
+co3n4imbri
+co4o3per
+co4o3pér
+co4opt
+co4ord
+con1imbr
+con1urb
+cripto1a2
+cripto1e2
+cripto1i2
+cripto1o2
+cripto1u2
+cripto1h
+cripto1á2
+cripto1é2
+cripto1í2
+cripto1ó2
+cripto1ú2
+crono1a2
+crono1e2
+crono1i2
+crono1o2
+crono1u2
+crono1h
+crono1á2
+crono1é2
+crono1í2
+crono1ó2
+crono1ú2
+contra1a2
+contra1e2
+contra1i2
+contra1o2
+contra1u2
+contra1h
+contra1á2
+contra1é2
+contra1í2
+contra1ó2
+contra1ú2
+deca1a2
+deca1e2
+deca1i2
+deca1o2
+deca1u2
+deca1h
+deca1á2
+deca1é2
+deca1í2
+deca1ó2
+deca1ú2
+4e3dro.
+4e3dros.
+4é3drico.
+4é3dricos.
+4é3drica.
+4é3dricas.
+.de2s2a2
+.de2s2e2
+.de2s2i2
+.de2s2o2
+.de2s2u2
+.de2s2á2
+.de2s2é2
+.de2s2í2
+.de2s2ó2
+.de2s2ú2
+deca2i3mient
+decimo1
+3sa.
+3sas.
+de4s3órde
+de4s3orde
+de4s3abast
+de4s3aboll
+de4s3aboto
+de4s3abr
+desa3brid
+de4s3abroch
+de4s3aceit
+de4s3aceler
+desa3cert
+desa3ciert
+de4s3acobar
+de4s3acomod
+de4s3acomp
+de4s3acons
+de4s3acopl
+de4s3acorr
+de4s3acostum
+de4s3acot
+desa3craliz
+de4s3acredit
+de4s3activ
+de4s3acuart
+de4s3aderez
+de4s3adeud
+de4s3adorar
+de4s3adormec
+de4s3adorn
+de4s3advert
+desa3fí
+de4s3aferr
+desa3fi
+de4s3afic
+de4s3afil
+de4s3afin
+de4s3afor
+desa3gü
+desa3garr
+de4s3agraci
+de4s3agrad
+de4s3agravi
+de4s3agreg
+de4s3agrup
+de4s3agu
+desa3guisado
+de4s3aherr
+de4s3ahij
+de4s3ajust
+de4s3alagar
+de4s3alent
+de4s3alfom
+de4s3alfor
+de4s3aliñ
+desa3lin
+de4s3alien
+de4s3aline
+desa3liv
+de4s3alm
+de4s3almid
+desa3loj
+de4s3alquil
+de4s3alter
+de4s3alumbr
+desa3marr
+desa3mobl
+de4s3amold
+de4s3amort
+de4s3amuebl
+de4s3and
+de4s3angel
+de4s3anid
+de4s3anim
+de4s3aním
+de4s3anud
+desa3pañ
+desa3pacib
+de4s3apadr
+de4s3apare
+desa3parec
+desa3paric
+desa3peg
+desa3percib
+de4s3aplic
+de4s3apolill
+de4s3apoy
+desa3prensi
+de4s3aprend
+de4s3apret
+de4s3apriet
+de4s3aprob
+de4s3apropi
+de4s3aprovech
+de4s3arbol
+de4s3aren
+de4s3arm
+des4arme
+de4s3arraig
+de4s3arregl
+de4s3arrend
+de4s3arrim
+desa3rroll
+de4s3arrop
+de4s3arrug
+de4s3articul
+de4s3asent
+de4s3asist
+de4s3asn
+desa3soseg
+desa3sosieg
+de4s3atenc
+de4s3atend
+de4s3atiend
+de4s3atent
+desa3tin
+de4s3atorn
+de4s3atranc
+de4s3autor
+de4s3avis
+desa3yun
+desa3zón
+desa3zon
+de4s3embal
+de4s3embál
+de4s3embar
+de4s3embár
+de4s3embarg
+de4s3embols
+de4s3emborr
+de4s3embosc
+de4s3embot
+de4s3embrag
+de4s3embrág
+de4s3embrave
+de4s3embráve
+de4s3embroll
+de4s3embróll
+de4s3embruj
+de4s3embrúj
+de3semej
+de4s3empañ
+de4s3empáñ
+de4s3empac
+de4s3empaquet
+de4s3empaquét
+de4s3emparej
+de4s3emparéj
+de4s3emparent
+de4s3empat
+de4s3empé
+de4s3empedr
+de4s3empeg
+de4s3empeor
+de4s3emperez
+de4s3empern
+de4s3emple
+de4s3empolv
+de4s3empotr
+de4s3empoz
+de4s3enam
+de4s3encab
+de4s3encad
+de4s3encaj
+de4s3encáj
+de4s3encall
+de4s3encáll
+de4s3encam
+de3sencant
+de4s3encap
+de4s3encar
+de4s3encár
+de4s3ench
+de4s3encl
+de4s3enco
+de4s3encr
+de4s3encu
+de4s3end
+de3senfad
+de3senfád
+de4s3enfi
+de4s3enfo
+de4s3enfó
+de3senfren
+de4s3enfund
+de4s3enfur
+de3sengañ
+de3sengáñ
+de4s3enganch
+de4s3engar
+de4s3engas
+de4s3engom
+de4s3engoz
+de4s3engra
+de4s3enhebr
+de4s3enj
+de4s3enlad
+de4s3enlaz
+de4s3enlo
+de4s3enm
+de4s3enr
+de4s3ens
+de4s3enta
+de3sentend
+de3sentien
+de3sentién
+de4s3enter
+de4s3entier
+de4s3entiér
+de4s3ento
+de4s3entr
+de4s3entu
+de4s3envain
+de3senvolvim
+de3seo
+de4s3eq
+de3s4erci
+de3s4ert
+de3s4ért
+de4s3espa
+de3sesperac
+de4s3esperanz
+de3sesper
+de4s3estabil
+de4s3estim
+de3sider
+de3sidia
+de3sidio
+de3siert
+de3sign
+de3sigual
+de3silusi
+de4s3imagin
+de4s3iman
+de4s3impon
+de4s3impresX
+de4s3incent
+de4s3inclin
+de4s3incorp
+de4s3incrust
+de3sinenc
+de3sinfec
+de3su3dar
+de3su3das
+de3su3dan
+de4s3inflam
+de4s3infl
+de4s3inform
+de4s3inhib
+de4s3insect
+de4s3instal
+de3s4integr
+de3s4inter
+de4s3intox
+de4s3inver
+de3sisten
+de4s3impres
+de4s3obedec
+de4s3oblig
+de4s3obstr
+de3socup
+de4s3odor
+de3solac
+de3solad
+de3soll
+de4s3orej
+de3suell
+de3sonce
+de4s3ova
+de4s3ovi
+de4s3oxi
+de4s3oye
+de4s3oyé
+de3s4ubstan
+de3s4ustan
+de3s4oseg
+de4s3ub4ic
+de4s3unir
+de4s3unier
+de4s3unim
+.dieci1o2
+dodeca1a2
+dodeca1e2
+dodeca1i2
+dodeca1o2
+dodeca1u2
+dodeca1h
+dodeca1á2
+dodeca1é2
+dodeca1í2
+dodeca1ó2
+dodeca1ú2
+ecano1a2
+ecano1e2
+ecano1i2
+ecano1o2
+ecano1u2
+ecano1h
+ecano1á2
+ecano1é2
+ecano1í2
+ecano1ó2
+ecano1ú2
+eco1a2
+eco1e2
+eco1i2
+eco1o2
+eco1u2
+eco1h
+eco1á2
+eco1é2
+eco1í2
+eco1ó2
+eco1ú2
+ectro1a2
+ectro1e2
+ectro1i2
+ectro1o2
+ectro1u2
+ectro1h
+ectro1á2
+ectro1é2
+ectro1í2
+ectro1ó2
+ectro1ú2
+.en2a2
+.en2e2
+.en2i2
+.en2o2
+.en2u2
+.en2á2
+.en2é2
+.en2í2
+.en2ó2
+.en2ú2
+.eno3jar
+.enu3mera
+.enu3merá
+.enu3mere
+4o3lógico.
+4o3lógica.
+4o3lógicos.
+4o3lógicas.
+4o3lógicamente.
+4o3logía.
+4o3logías.
+4ó3logo.
+4ó3loga.
+4ó3logos.
+4ó3logas.
+endo1a2
+endo1e2
+endo1i2
+endo1o2
+endo1u2
+endo1h
+endo1á2
+endo1é2
+endo1í2
+endo1ó2
+endo1ú2
+ento1a2
+ento1e2
+ento1i2
+ento1o2
+ento1u2
+ento1h
+ento1á2
+ento1é2
+ento1í2
+ento1ó2
+ento1ú2
+4emboca
+entre1a2
+entre1e2
+entre1i2
+entre1o2
+entre1u2
+entre1h
+entre1á2
+entre1é2
+entre1í2
+entre1ó2
+entre1ú2
+euco1a2
+euco1e2
+euco1i2
+euco1o2
+euco1u2
+euco1h
+euco1á2
+euco1é2
+euco1í2
+euco1ó2
+euco1ú2
+euro1a2
+euro1e2
+euro1i2
+euro1o2
+euro1u2
+euro1h
+euro1á2
+euro1é2
+euro1í2
+euro1ó2
+euro1ú2
+extra1a2
+extra1e2
+extra1i2
+extra1o2
+extra1u2
+extra1h
+extra1á2
+extra1é2
+extra1í2
+extra1ó2
+extra1ú2
+u4teri
+fono1a2
+fono1e2
+fono1i2
+fono1o2
+fono1u2
+fono1h
+fono1á2
+fono1é2
+fono1í2
+fono1ó2
+fono1ú2
+foto1a2
+foto1e2
+foto1i2
+foto1o2
+foto1u2
+foto1h
+foto1á2
+foto1é2
+foto1í2
+foto1ó2
+foto1ú2
+gastro1a2
+gastro1e2
+gastro1i2
+gastro1o2
+gastro1u2
+gastro1h
+gastro1á2
+gastro1é2
+gastro1í2
+gastro1ó2
+gastro1ú2
+geo1a2
+geo1e2
+geo1i2
+geo1o2
+geo1u2
+geo1h
+geo1á2
+geo1é2
+geo1í2
+geo1ó2
+geo1ú2
+gluco1a2
+gluco1e2
+gluco1i2
+gluco1o2
+gluco1u2
+gluco1h
+gluco1á2
+gluco1é2
+gluco1í2
+gluco1ó2
+gluco1ú2
+hecto1a2
+hecto1e2
+hecto1i2
+hecto1o2
+hecto1u2
+hecto1h
+hecto1á2
+hecto1é2
+hecto1í2
+hecto1ó2
+hecto1ú2
+helio1a2
+helio1e2
+helio1i2
+helio1o2
+helio1u2
+helio1h
+helio1á2
+helio1é2
+helio1í2
+helio1ó2
+helio1ú2
+hemato1a2
+hemato1e2
+hemato1i2
+hemato1o2
+hemato1u2
+hemato1h
+hemato1á2
+hemato1é2
+hemato1í2
+hemato1ó2
+hemato1ú2
+hemi1a2
+hemi1e2
+hemi1i2
+hemi1o2
+hemi1u2
+hemi1h
+hemi1á2
+hemi1é2
+hemi1í2
+hemi1ó2
+hemi1ú2
+hemo1a2
+hemo1e2
+hemo1i2
+hemo1o2
+hemo1u2
+hemo1h
+hemo1á2
+hemo1é2
+hemo1í2
+hemo1ó2
+hemo1ú2
+2al.
+2ales.
+hexa1a2
+hexa1e2
+hexa1i2
+hexa1o2
+hexa1u2
+hexa1h
+hexa1á2
+hexa1é2
+hexa1í2
+hexa1ó2
+hexa1ú2
+hidro1a2
+hidro1e2
+hidro1i2
+hidro1o2
+hidro1u2
+hidro1h
+hidro1á2
+hidro1é2
+hidro1í2
+hidro1ó2
+hidro1ú2
+hipe2r1a2
+hipe2r1e2
+hipe2r1i2
+hipe2r1o2
+hipe2r1u2
+hipe2r3r
+hipe2r1á2
+hipe2r1é2
+hipe2r1í2
+hipe2r1ó2
+hipe2r1ú2
+pe3r4e3mia
+histo1a2
+histo1e2
+histo1i2
+histo1o2
+histo1u2
+histo1h
+histo1á2
+histo1é2
+histo1í2
+histo1ó2
+histo1ú2
+homo1a2
+homo1e2
+homo1i2
+homo1o2
+homo1u2
+homo1h
+homo1á2
+homo1é2
+homo1í2
+homo1ó2
+homo1ú2
+icono1a2
+icono1e2
+icono1i2
+icono1o2
+icono1u2
+icono1h
+icono1á2
+icono1é2
+icono1í2
+icono1ó2
+icono1ú2
+.in2a2
+.in2e2
+.in2i2
+.in2o2
+.in2u2
+.in2á2
+.in2é2
+.in2í2
+.in2ó2
+.in2ú2
+.in3abord
+.in3abarc
+.in3acent
+.in3aguant
+.in3adapt
+.ina3movib
+.in3analiz
+.ina3nic
+.in3anim
+.iná3nim
+.in3apel
+.in3aplic
+.in3aprens
+.in3apreci
+.in3arrug
+.in3asist
+.iné3dit
+.in3efic
+.in3efici
+.in3eludi
+.ine3narr
+.ini3cia
+.ini3ciá
+.ini3cie
+.ino3cuo
+.ino3cua
+.ino3cula
+.ino3culá
+.ino3cule
+.inú3til
+.inu3tiliz
+infra1a2
+infra1e2
+infra1i2
+infra1o2
+infra1u2
+infra1h
+infra1á2
+infra1é2
+infra1í2
+infra1ó2
+infra1ú2
+.inte2r1a2
+.inte2r1e2
+.inte2r1i2
+.inte2r1o2
+.inte2r1u2
+.inte2r3r
+.inte2r1á2
+.inte2r1é2
+.inte2r1í2
+.inte2r1ó2
+.inte2r1ú2
+.in3ter2e3sa
+.in3ter2e3se
+.in3ter2e3so
+.in3ter2e3sá
+.in3ter2e3sé
+.in3ter2e3só
+.de3s4in3ter2e3sa
+.de3s4in3ter2e3se
+.de3s4in3ter2e3so
+.de3s4in3ter2e3sá
+.de3s4in3ter2e3sé
+.de3s4in3ter2e3só
+3te3ri3n
+4te4r5i4nsu
+.in3te3r4rog
+.in3te3r4rupc
+.in3te3r4rupt
+.in3te3r4rump
+intra1a2
+intra1e2
+intra1i2
+intra1o2
+intra1u2
+intra1h
+intra1á2
+intra1é2
+intra1í2
+intra1ó2
+intra1ú2
+iso1a2
+iso1e2
+iso1i2
+iso1o2
+iso1u2
+iso1h
+iso1á2
+iso1é2
+iso1í2
+iso1ó2
+iso1ú2
+kilo1a2
+kilo1e2
+kilo1i2
+kilo1o2
+kilo1u2
+kilo1h
+kilo1á2
+kilo1é2
+kilo1í2
+kilo1ó2
+kilo1ú2
+macro1a2
+macro1e2
+macro1i2
+macro1o2
+macro1u2
+macro1h
+macro1á2
+macro1é2
+macro1í2
+macro1ó2
+macro1ú2
+mal2
+ma4l3h
+.ma4l3e4du
+mal3b
+mal3c
+mal3d
+mal3f
+mal3g
+mal3m
+mal3p
+mal3q
+mal3s
+mal3t
+mal3v
+bien2
+bien3h
+bien3v
+bien3q
+bien3m
+bien3t
+b4ien3do.
+.su3b4ien
+b4ien3das.
+maxi1a2
+maxi1e2
+maxi1i2
+maxi1o2
+maxi1u2
+maxi1h
+maxi1á2
+maxi1é2
+maxi1í2
+maxi1ó2
+maxi1ú2
+megalo1a2
+megalo1e2
+megalo1i2
+megalo1o2
+megalo1u2
+megalo1h
+megalo1á2
+megalo1é2
+megalo1í2
+megalo1ó2
+megalo1ú2
+mega1a2
+mega1e2
+mega1i2
+mega1o2
+mega1u2
+mega1h
+mega1á2
+mega1é2
+mega1í2
+mega1ó2
+mega1ú2
+melano1a2
+melano1e2
+melano1i2
+melano1o2
+melano1u2
+melano1h
+melano1á2
+melano1é2
+melano1í2
+melano1ó2
+melano1ú2
+micro1a2
+micro1e2
+micro1i2
+micro1o2
+micro1u2
+micro1h
+micro1á2
+micro1é2
+micro1í2
+micro1ó2
+micro1ú2
+mili1a2
+mili1e2
+mili1i2
+mili1o2
+mili1u2
+mili1h
+mili1á2
+mili1é2
+mili1í2
+mili1ó2
+mili1ú2
+familia3ri
+ia5res.
+li5área
+mini1a2
+mini1e2
+mini1i2
+mini1o2
+mini1u2
+mini1h
+mini1á2
+mini1é2
+mini1í2
+mini1ó2
+mini1ú2
+2o.
+2os.
+2o3so.
+2o3sos.
+2o3sa.
+2o3sas.
+2o3samente.
+mini4a5tur
+multi1a2
+multi1e2
+multi1i2
+multi1o2
+multi1u2
+multi1h
+multi1á2
+multi1é2
+multi1í2
+multi1ó2
+multi1ú2
+miria1a2
+miria1e2
+miria1i2
+miria1o2
+miria1u2
+miria1h
+miria1á2
+miria1é2
+miria1í2
+miria1ó2
+miria1ú2
+mono1a2
+mono1e2
+mono1i2
+mono1o2
+mono1u2
+mono1h
+mono1á2
+mono1é2
+mono1í2
+mono1ó2
+mono1ú2
+2i3co.
+2i3cos.
+2i3ca.
+2i3cas.
+namo1a2
+namo1e2
+namo1i2
+namo1o2
+namo1u2
+namo1h
+namo1á2
+namo1é2
+namo1í2
+namo1ó2
+namo1ú2
+necro1a2
+necro1e2
+necro1i2
+necro1o2
+necro1u2
+necro1h
+necro1á2
+necro1é2
+necro1í2
+necro1ó2
+necro1ú2
+neo1a2
+neo1e2
+neo1i2
+neo1o2
+neo1u2
+neo1h
+neo1á2
+neo1é2
+neo1í2
+neo1ó2
+neo1ú2
+neto1a2
+neto1e2
+neto1i2
+neto1o2
+neto1u2
+neto1h
+neto1á2
+neto1é2
+neto1í2
+neto1ó2
+neto1ú2
+norte1a2
+norte1e2
+norte1i2
+norte1o2
+norte1u2
+norte1h
+norte1á2
+norte1é2
+norte1í2
+norte1ó2
+norte1ú2
+octo1a2
+octo1e2
+octo1i2
+octo1o2
+octo1u2
+octo1h
+octo1á2
+octo1é2
+octo1í2
+octo1ó2
+octo1ú2
+octa1a2
+octa1e2
+octa1i2
+octa1o2
+octa1u2
+octa1h
+octa1á2
+octa1é2
+octa1í2
+octa1ó2
+octa1ú2
+oligo1a2
+oligo1e2
+oligo1i2
+oligo1o2
+oligo1u2
+oligo1h
+oligo1á2
+oligo1é2
+oligo1í2
+oligo1ó2
+oligo1ú2
+omni1a2
+omni1e2
+omni1i2
+omni1o2
+omni1u2
+omni1h
+omni1á2
+omni1é2
+omni1í2
+omni1ó2
+omni1ú2
+i2o.
+i2os.
+paleo1a2
+paleo1e2
+paleo1i2
+paleo1o2
+paleo1u2
+paleo1h
+paleo1á2
+paleo1é2
+paleo1í2
+paleo1ó2
+paleo1ú2
+para1a2
+para1e2
+para1i2
+para1o2
+para1u2
+para1h
+para1á2
+para1é2
+para1í2
+para1ó2
+para1ú2
+para2is.
+aí5so.
+aí5sos.
+penta1a2
+penta1e2
+penta1i2
+penta1o2
+penta1u2
+penta1h
+penta1á2
+penta1é2
+penta1í2
+penta1ó2
+penta1ú2
+piezo1a2
+piezo1e2
+piezo1i2
+piezo1o2
+piezo1u2
+piezo1h
+piezo1á2
+piezo1é2
+piezo1í2
+piezo1ó2
+piezo1ú2
+pluri1a2
+pluri1e2
+pluri1i2
+pluri1o2
+pluri1u2
+pluri1h
+pluri1á2
+pluri1é2
+pluri1í2
+pluri1ó2
+pluri1ú2
+poli1a2
+poli1e2
+poli1i2
+poli1o2
+poli1u2
+poli1h
+poli1á2
+poli1é2
+poli1í2
+poli1ó2
+poli1ú2
+poli4u3r
+poli4o5mie
+poli4arq
+poli4árq
+poli4éste
+poli4andr
+poli4antea
+expoli4
+.pos2t2a2
+.pos2t2e2
+.pos2t2i2
+.pos2t2o2
+.pos2t2u2
+.pos2t2á2
+.pos2t2é2
+.pos2t2í2
+.pos2t2ó2
+.pos2t2ú2
+.pos3tin
+.pos3tín
+pos3ta.
+pos3tas.
+s3te.
+s3tes.
+s3tal.
+s3ta3les.
+s3ti3lla.
+s3ti3llas.
+s3ti3llón.
+s3ti3llones.
+.pos3tó3ni
+.pos3terg
+.pos3te3ri
+.pos3ti3go
+.pos3ti3la
+.pos3ti3ne
+.pos3ti3za
+.pos3ti3zo
+.pos3tu3ra
+s3tor.
+s3tora.
+s3toras.
+s3tores.
+.pos3tu3la
+.pos3tu3lá
+.pos3tu3le
+.pos3tu3lé
+.post3elec
+.post3impr
+.post3ind
+.post3ope
+.post3rev
+.pre2a2
+.pre2e2
+.pre2i2
+.pre2o2
+.pre2u2
+.pre2h2
+.pre2á2
+.pre2é2
+.pre2í2
+.pre2ó2
+.pre2ú2
+pre3elij
+pre3elig
+pre3exis
+pre3emin
+preo3cup
+preo2cúp
+pre3olí
+pre3opin
+.pro2a2
+.pro2e2
+.pro2i2
+.pro2o2
+.pro2u2
+.pro2h2
+.pro2á2
+.pro2é2
+.pro2í2
+.pro2ó2
+.pro2ú2
+proto1a2
+proto1e2
+proto1i2
+proto1o2
+proto1u2
+proto1h
+proto1á2
+proto1é2
+proto1í2
+proto1ó2
+proto1ú2
+radio1a2
+radio1e2
+radio1i2
+radio1o2
+radio1u2
+radio1h
+radio1á2
+radio1é2
+radio1í2
+radio1ó2
+radio1ú2
+ranco1a2
+ranco1e2
+ranco1i2
+ranco1o2
+ranco1u2
+ranco1h
+ranco1á2
+ranco1é2
+ranco1í2
+ranco1ó2
+ranco1ú2
+.re2a2
+.re3e4
+.re2i2
+.re2o2
+.re2u2
+.re2á2
+.re2é2
+.re2í2
+.re2ó2
+.re2ú2
+ea3cio.
+ea3cios.
+ea3cia.
+ea3cias.
+.re3abr
+.re3ábr
+.re3afirm
+.re3afírm
+.re3ajust
+.rea3júst
+.rea3liza
+.rea3lizá
+.rea3líza
+.re3alim
+.rea3lism
+.rea3list
+.re3anim
+.re3aním
+.re3aparec
+.re3ubica
+.re3ubíca
+.reu3mati
+.reu3máti
+.re3unir
+.re3unír
+.re3usar
+.re3usár
+.re3utiliz
+.re3utilíz
+rmano1a2
+rmano1e2
+rmano1i2
+rmano1o2
+rmano1u2
+rmano1h
+rmano1á2
+rmano1é2
+rmano1í2
+rmano1ó2
+rmano1ú2
+retro1a2
+retro1e2
+retro1i2
+retro1o2
+retro1u2
+retro1h
+retro1á2
+retro1é2
+retro1í2
+retro1ó2
+retro1ú2
+romo1a2
+romo1e2
+romo1i2
+romo1o2
+romo1u2
+romo1h
+romo1á2
+romo1é2
+romo1í2
+romo1ó2
+romo1ú2
+sobre1a2
+sobre1e2
+sobre1i2
+sobre1o2
+sobre1u2
+sobre1h
+sobre1á2
+sobre1é2
+sobre1í2
+sobre1ó2
+sobre1ú2
+semi1a2
+semi1e2
+semi1i2
+semi1o2
+semi1u2
+semi1h
+semi1á2
+semi1é2
+semi1í2
+semi1ó2
+semi1ú2
+i2a.
+i2as.
+2ótic
+emi2o2
+seudo1a2
+seudo1e2
+seudo1i2
+seudo1o2
+seudo1u2
+seudo1h
+seudo1á2
+seudo1é2
+seudo1í2
+seudo1ó2
+seudo1ú2
+o2os.
+.so3a4s
+socio1a2
+socio1e2
+socio1i2
+socio1o2
+socio1u2
+socio1h
+socio1á2
+socio1é2
+socio1í2
+socio1ó2
+socio1ú2
+a3rio.
+a3rios.
+4ón.
+4ones.
+4i4er.
+4o2ico.
+4o2icos.
+4o2ica.
+4o2icas.
+.su2b2a2
+.su2b2e2
+.su2b2i2
+.su2b2o2
+.su2b2u2
+.su2b2á2
+.su2b2é2
+.su2b2í2
+.su2b2ó2
+.su2b2ú2
+.sub2i3ll
+.sub2i3mien
+.sub3índ
+.sub3ími
+.su4b3ray
+.sub3aflue
+.sub3arr
+.sub3enten
+.sub3estim
+.sub3estím
+.sub3ofici
+.sub3urba
+supe2r1a2
+supe2r1e2
+supe2r1i2
+supe2r1o2
+supe2r1u2
+supe2r3r
+supe2r1á2
+supe2r1é2
+supe2r1í2
+supe2r1ó2
+supe2r1ú2
+supe4r4a3r
+supe4r4á3r
+supe3r4á3vit.
+supe3r4á3vits.
+4a3ción.
+4a3ciones.
+4e3rior.
+4e3riores.
+4e3riora.
+4e3rioras.
+4e3riormente.
+4e3rioridad.
+4e3rioridades.
+4e3ra3ble.
+4e3ra3bles.
+4e3ra3blemente.
+pe5r4ante
+perpon5d6r
+supra1a2
+supra1e2
+supra1i2
+supra1o2
+supra1u2
+supra1h
+supra1á2
+supra1é2
+supra1í2
+supra1ó2
+supra1ú2
+sup6ra
+talmo1a2
+talmo1e2
+talmo1i2
+talmo1o2
+talmo1u2
+talmo1h
+talmo1á2
+talmo1é2
+talmo1í2
+talmo1ó2
+talmo1ú2
+tele1a2
+tele1e2
+tele1i2
+tele1o2
+tele1u2
+tele1h
+tele1á2
+tele1é2
+tele1í2
+tele1ó2
+tele1ú2
+4ósteo.
+4ósteos.
+termo1a2
+termo1e2
+termo1i2
+termo1o2
+termo1u2
+termo1h
+termo1á2
+termo1é2
+termo1í2
+termo1ó2
+termo1ú2
+tetra1a2
+tetra1e2
+tetra1i2
+tetra1o2
+tetra1u2
+tetra1h
+tetra1á2
+tetra1é2
+tetra1í2
+tetra1ó2
+tetra1ú2
+topo1a2
+topo1e2
+topo1i2
+topo1o2
+topo1u2
+topo1h
+topo1á2
+topo1é2
+topo1í2
+topo1ó2
+topo1ú2
+tropo1a2
+tropo1e2
+tropo1i2
+tropo1o2
+tropo1u2
+tropo1h
+tropo1á2
+tropo1é2
+tropo1í2
+tropo1ó2
+tropo1ú2
+poi3de.
+poi3des.
+ultra1a2
+ultra1e2
+ultra1i2
+ultra1o2
+ultra1u2
+ultra1h
+ultra1á2
+ultra1é2
+ultra1í2
+ultra1ó2
+ultra1ú2
+xeno1a2
+xeno1e2
+xeno1i2
+xeno1o2
+xeno1u2
+xeno1h
+xeno1á2
+xeno1é2
+xeno1í2
+xeno1ó2
+xeno1ú2
+inter4és
+inter4esar
+inter4in
+inter4ino
+inter4ior
+mili4ar
+mili4ario
+para4íso
+para4ulata
+super4able
+super4ación
+super4ior
+tran4sacc
+trans4ar
+trans4eúnte
+trans4iber
+trans4ición
+trans4ido
+trans4igen
+trans4igir
+trans4istor
+trans4itab
+trans4it
+trans4itorio
+trans4ubsta
+ultra4ísmo
+wa3s4h
.bi1anual
.bi1aur
.bien1and
@@ -274,172 +2863,8 @@ r2r
.bien1est
.bien1int
.bi1ox
-.bi1óx
+.bi1ó2x
.bi1un
-.co1adm
-.co1adq
-.co1agent
-.co1am
-.co1após
-.co1arr
-.co1aut
-.co1ed
-.co1ef
-.co1esp
-.co1ex
-.co1inquil
-.contra1a
-.contra1ind
-.des1abar
-.des1acat
-.des1acel
-.des1acer
-.des1aco
-.des1acred
-.des1afi
-.des2afic
-.des2afil
-.des1afo
-.des2afort
-.des1afuc
-.des1agot
-.des1agrad
-.des1agreg
-.des1aguaz
-.des1aguis
-.des1ahij
-.des1ahog
-.des1ahu
-.des1air
-.des1aju
-.des1alab
-.des1alag
-.des1alin
-.des1aloj
-.des1alt
-.des1amabl
-.des1amart
-.des1amasad
-.des1ami
-.des1amold
-.des1amorr
-.des1amort
-.des1amot
-.des1amp
-.des1anc
-.des1andr
-.des1ani
-.des1anu
-.des1añu
-.des1aoj
-.des1apaci
-.des1apañ
-.des1aparec
-.des1aparroq
-.des1apeg
-.des1apiol
-.des1aplac
-.des1apli
-.des1apose
-.des1apro
-.des1apt
-.des1apuest
-.des1apuntal
-.des1aq
-.des1arm
-.des1arr
-.des2arreboz
-.des2arrim
-.des2arrop
-.des2arrug
-.des1artill
-.des1aseg
-.des1asimil
-.des1asist
-.des1asn
-.des1atal
-.des1atanc
-.des1atap
-.des1atasc
-.des1atesad
-.des1atib
-.des1atin
-.des1atont
-.des1atra
-.des2atrac
-.des2atrav
-.des1atu
-.des1au
-.des1av
-.des2avec
-.des2avent
-.des1ayun
-.des1edi
-.des1ele
-.des1embal
-.des1embar
-.des1embe
-.des1emboc
-.des1emboj
-.des1embor
-.des1embot
-.des1embroz
-.des1empac
-.des2empach
-.des1empalag
-.des1emparv
-.des1empl
-.des1enast
-.des1encabestr
-.des1encalabr
-.des1encalc
-.des1encapri
-.des1encast
-.des1encen
-.des1enclavi
-.des1engañil
-.des1engarraf
-.des1enh
-.des1enmall
-.des1enmo
-.des1enmu
-.des1enq
-.des1enraz
-.des1ensañ
-.des1enseñ
-.des1ental
-.des1entoll
-.des1entren
-.des1entrop
-.des1entum
-.des1envel
-.des1enven
-.des1envio
-.des1errad
-.des1esper
-.des2esperanz
-.des1igualez
-.des1iman
-.des2imant
-.des1incru
-.des1infe
-.des1ob
-.des1opil
-.des1orden
-.des1org
-.des1orient
-.des1os
-.des2oseg
-.des2osie
-.des1ov
-.des1oxi
-.des1un
-.des2unc
-.des2uno
-.des1urd
-.des1us
-.dis1artr
-.dis1osm
.en1aceit
.en1aciy
.en1aguach
@@ -450,59 +2875,9 @@ r2r
.en1art
.en2artr
.en1ej
-.entre1a
-.entre1o
-.ex1abrup
-.gastro1en
-.gastro1in
-1g2nosis
.hepta1e
-.hexa1e
-.hidro1a
-.hidro1e
-.hiper1e
-.hiper1é
-.hiper1o
-.ia2
-.io2
-.in1a
-.in2am
-.in2an
-.in3ana
-.in2au
-.in1edu
-.in1efi
-.in1eluc
-.in1em
-.in1eq
-.in1err
-.in1es
-.in1ex
-.in2exo
-.in1ig
-.in1ima
-.in1imi
-.in1in
-.in1ob
-.in1ocult
-.in1olv
-.in1oper
-.in1opor
-.in1ord
-.in1org
-.in1ox
-.in1usad
-.infra1e
-.infra1o
-.inter1a
-.inter1est
-.inter1ind
-.inter1ins
-.inter1o
-.inter1u
.intra1o
.intra1u
-.macro1e
.mal1acon
.mal1acos
.mala1e
@@ -510,99 +2885,42 @@ r2r
.mal1andanz
.mal1est
.mal1int
-.micro1e
-.micro1o
-.neo1
-.neuro1e
-.norte1ame
-.oa2
-.oe2
-.oi2
-.octa1e
-.octa1é
-.oligo1e
-.pan1ame
-.pan1esl
-.pan1eur
-.pan1isl
-.pan1ópt
-1p2teríneo
-.pluri1em
-.pre1ad
-.pre1ám
-.pre1e
-.pre1i
-.pre1opi
-.pre1u
-.proto1a
-1p2sico
-1p2siq
-.re1a
-.re2al
-.re3alc
-.re3aleg
-.re3alq
-.re3alz
-.re1e
-.re1im
-.re1inc
-.re1ing
-.re1ins
-.re1int
-.re1ob
+.pa4n1a4meri
+.pa4n1europ
+.pa4n1afri
+.pa4n1ópti
+3p2sic
+3p2siq
+.re3a2eg
+.re3a2q
+.re3a2z
+.re3a2grup
+.re3i2m
+.re3inc
+.re3ing
+.re3ins
+.re3int
+.re3o2b
.re1oc
.re1oj
-.re1org
+.re3orga
.re1unt
.retro1a
-1s2copia
-.semi1aut
-.semi1e
-.semi1of
-.so1a
-.sobre1a
-.sobre1e
-.sobre1i
-.sub1a
-.sub1á
-.sub2ast
-.sub1ej
-.sub1en
-.sub1esp
-.sub1est
-.sub1ín
-.sub1insp
-.sub1inten
-.sub1of
-.sub1orden
-.sub1urban
-.su2b3ray
-.su2b3rei
-.su2b3rog
-.sud1afr
-.sud1ame
-.sud1est
-sud1oes
-.super1abund
-.super1int
-.sur1ame
+.su2d1a2fr
+.su2d1a2me
+.su2d1est
+su4d3oes
+.sur1a2me
.sur1est
.sur1oes
.tele1imp
.tele1obj
-.termo1e
-.termo1i
-.tetra1e
-.tras1a
-.tras1o
-.tras2oñ
+.tra2s1a
+.tra2s1o
+.tra2s2oñ
.tran2s1alp
.tran2s1and
.tran2s1atl
.tran2s1oce
.tran2s1ur
-.tri1óx
-}
-
-% end pattern data
-
+.tri1ó2x} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-es.rme b/Master/texmf-dist/tex/context/patterns/lang-es.rme
new file mode 100644
index 00000000000..02bb1fcab75
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/lang-es.rme
@@ -0,0 +1,99 @@
+% generated by mtxrun --script pattern --convert
+
+% This file is part of hyph-utf8 package and resulted from
+% semi-manual conversions of hyphenation patterns into UTF-8 in June 2008.
+%
+% Source: eshyph.tex (2006-01-11)
+% Author: Javier Bezos
+%
+% The above mentioned file should become obsolete,
+% and the author of the original file should preferaby modify this file instead.
+%
+% Modificatios were needed in order to support native UTF-8 engines,
+% but functionality (hopefully) didn't change in any way, at least not intentionally.
+% This file is no longer stand-alone; at least for 8-bit engines
+% you probably want to use loadhyph-foo.tex (which will load this file) instead.
+%
+% Modifications were done by Jonathan Kew, Mojca Miklavec & Arthur Reutenauer
+% with help & support from:
+% - Karl Berry, who gave us free hands and all resources
+% - Taco Hoekwater, with useful macros
+% - Hans Hagen, who did the unicodifisation of patterns already long before
+% and helped with testing, suggestions and bug reports
+% - Norbert Preining, who tested & integrated patterns into TeX Live
+%
+% However, the "copyright/copyleft" owner of patterns remains the original author.
+%
+% The copyright statement of this file is thus:
+%
+% Do with this file whatever needs to be done in future for the sake of
+% "a better world" as long as you respect the copyright of original file.
+% If you're the original author of patterns or taking over a new revolution,
+% plese remove all of the TUG comments & credits that we added here -
+% you are the Queen / the King, we are only the servants.
+%
+% If you want to change this file, rather than uploading directly to CTAN,
+% we would be grateful if you could send it to us (http://tug.org/tex-hyphen)
+% or ask for credentials for SVN repository and commit it yourself;
+% we will then upload the whole "package" to CTAN.
+%
+% Before a new "pattern-revolution" starts,
+% please try to follow some guidelines if possible:
+%
+% - \lccode is *forbidden*, and I really mean it
+% - all the patterns should be in UTF-8
+% - the only "allowed" TeX commands in this file are: \patterns, \hyphenation,
+% and if you really cannot do without, also \input and \message
+% - in particular, please no \catcode or \lccode changes,
+% they belong to loadhyph-foo.tex,
+% and no \lefthyphenmin and \righthyphenmin,
+% they have no influence here and belong elsewhere
+% - \begingroup and/or \endinput is not needed
+% - feel free to do whatever you want inside comments
+%
+% We know that TeX is extremely powerful, but give a stupid parser
+% at least a chance to read your patterns.
+%
+% For more unformation see
+%
+% http://tug.org/tex-hyphen
+%
+%------------------------------------------------------------------------------
+%
+% DIVISI'ON DE PALABRAS
+% ~~~~~~~~~~~~~~~~~~~~~
+% eshyph.tex 4.1a
+%
+% Why 4.x? Well, I know at least other three files with the
+% same name, so this one is the fourth. The others should
+% vanish as soon as posible.
+%
+% (c) Javier Bezos 1993 1997.
+% (c) Javier Bezos and CervanTeX 2001-2006
+% Some parts, (c) by Francesc Carmona
+% Licence: LPPL
+%
+% CervanTeX, the Spanish TeX User Group, has tackled the task of
+% writing a more complete set of patterns, but unfortunately the work
+% is a lot slower we expected. The file division.pdf is a draft of an
+% article (in Spanish) explaining the rules to be applied and how they
+% are being translated into TeX in a unified set of patterns.
+%
+% There is still a lot of work to be done. However, even if
+% incomplete it should provide in its current form a better option to
+% other patterns. However, if you experience problems, you might want
+% to return to one of these pattern files.
+%
+% For bug reports and comments:
+%
+% http://www.texytipografia.com/contact.php
+%
+% I would like to thanks Francesc Carmona for his permission
+% to steal parts of his work without restrictions.
+%
+% 2006/01/09
+%
+% _____________________________________________________________
+% Javier Bezos | http://www.cervantex.org/
+% .............................................................
+% TeX y tipografia | http://www.texytipografia.com/
diff --git a/Master/texmf-dist/tex/context/patterns/lang-et.hyp b/Master/texmf-dist/tex/context/patterns/lang-et.hyp
index c89901afb48..d392bb95bbc 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-et.hyp
+++ b/Master/texmf-dist/tex/context/patterns/lang-et.hyp
@@ -1,10 +1,8 @@
-% context hyphenation file, see lang-et.rme for original comment
+% generated by mtxrun --script pattern --convert
-% source of data: ethyph.tex
+% for comment and copyright, see ./lang-et.rme
-% begin hyphenation data
-
-\hyphenation {}
-
-% end hyphenation data
+% used:
+\hyphenation{
+} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-et.pat b/Master/texmf-dist/tex/context/patterns/lang-et.pat
index f49086df574..475621beff0 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-et.pat
+++ b/Master/texmf-dist/tex/context/patterns/lang-et.pat
@@ -1,1278 +1,3698 @@
-% context pattern file, see lang-et.rme for original comment
+% generated by mtxrun --script pattern --convert
-% source of data: ethyph.tex
+% for comment and copyright, see ./lang-et.rme
-% begin pattern data
+% used: a b d e f g h i j k l m n o p r s t u v z ä õ ö ü š ž
-\patterns {
-.au1a
-.ee2l
-.eel1e
-.eel1u
-.ee2s1
-.era1a
-.ise1e
-.ki2p3r
-.lep3l
+\patterns{
+.aa4
+.aasta5
+.ahe4li
+.al4a
+.al4gas
+.antiik5
+.ap3l
+.ap3r
+.art5r
+.au3a
+.eba3
+.ee4
+.eela4
+.ek3l
+.ek5r
+.gu4a
+.hie5
+.idi4
+.inim5a
+.ise5e
+.is4o
+.ja4e
+.ja4t
+.ka4e
+.ka2o
+.ke5hi
+.kip5r
+.ku4pl
+.ku5sa
+.kusee4
+.la4pl
+.le4e
+.le5hi
+.lemmik5
+.le5se
.lõpp3
-.moe3
-.pe2a
+.ma4a
+.maa5a
+.ma5j
+.mi5sa
+.mo4e
+.nek3
+.ni4p
+.nisu5
+.noa3
+.oa3
+.oo4
+.pap4p
+.pea3a
+.raadio5
+.re4a
.re2o
-.re2pr
-.se2a
-.sk2
-.sp2
-.st2
-.supe2
+.rep3r
+.re5so
+.rü5hi
+.sak5r
+.sap3r
+.se4a
+.sk4
+.skaa5
+.so5li
+.sp4
+.st4
+.teoo4
+.tet3r
+.tina5
+.toa3
+.ts4
+.tsi4s
+.turba5
+.tus2
.tu3sa
-.uudi2
-.vere1
-.üle1e
-aa1al
-aa1ar
+.ul4ga
+.ulu4k
+.um2b
+.uu4
+.vaa3l
+.vask3
+.vere3
+.õppe5
+.ää4
+.õõ4
+.öö4
+.ühi4s
+.üle3e
+.ür2
+.üü4
+aaa5l
a1aas
-aadi1a
-aadio3
+4aab
+aa4bi.
+5aadel.
+aadio5a
a1ae
-a1a2he
+a4aer
+aa4fe
+aa4gan
+aa2h
+aa4has
aa1i
-a1ait
-aa2ju
-a1aken
-aal1e2l
-aalk2
-aal1t
-aa2l1õ
-aari2s
-aase2
-aa2s1o
-1aasta
-a1asul
-aas1ü
+aai4g
+aa4is
+a5ait
+aa2j
+aa2la
+aa4lae
+aala4r
+aa4las
+aa4leh
+aa4lek
+aa4lel
+aalg4
+aali4ke
+aal3k
+a5allik
+aal3t4
+aa2l3õ
+aa4lü
+aa4mad
+aa4man
+aa4mee
+a5ameer
+aa4mö
+4aan
+aa4nam
+aa4nat
+a5andm
+aan4duu
+aa5ni
+aant4
+aa4pek
+aa4pen
+aa4ra4b
+aa4raf
+aa4raj
+aara4l
+a5arter
+aa2r3õ
+aa4rö
+aa4rü
+aa4sab
+aa4sai
+aa4sar
+aa2se4
+aa4so
+3aas5ta
+a5a4sul
+aa4sut
+aa4sü
+4aat
+aa4taa
+aa4tas
+aa4teh
+5aatom
+aa4tõ
+aa4tüh
a1au
+aaši5
a1b
-1abie
+4a3ba
+a5be
+3abie
+a4bij
+5abs
a1d
-1admir
-a1eali
+a4dad
+a4deo
+a2der
+a3di
+adu4r
+adu3se
+a4dö
+a5eali
ae2d
-1aed.
-aed1o
+3aed.
2aee
-a1ees
+a3ees
+ae4f
1aeg.
+ae4ga4j
+ae4gi
+3aegn
2a1e2h
-a1eks
+4aei
+4aek
+a3eks
2ael
-a1ett
+a5elani
+ae2le
+ae4lo
+ae4lu.
+4ae2m
+4aen
+ae4pi
+ae2s
+a3esi
+4aett
a1f
-a2fr
+a4fek
a1g
-1a2gent
-a3graa
+3a4gent
+agia4
+a3go
+5agreg
+agud4
1a2hi.
+ah4kar
+5ahnu
+4ai.
ai2a
-a1ilm
-a1ins
+5aian
+ai4hu
+ai4ke
+ai4kl
+a3ilm
+ai4lu
+ai4me.
+aimp4
+4ain.
+a5inf
+a5inime
+4ains
+a3inse
+ai4pr
+ai2sa
+5aistin
+aist4r
+ai4va
a1j
-1ajam
-a2jami
-1aken.
-a1k2las
-akna1
-ak2re
-a1kree
-a1krii
-a3kroo
-1a2ku.
-1a2lald
-al1do
-ali1sp
-al2l1ü
-a2l1ol
-alp2l
+a3ja.
+a4jale
+5ajalo
+a4jalu
+1a2jam
+4ajo
+ajut4
+a1k
+akaa4s
+a4kaat
+ak4as
+3aken.
+a3ki
+ak4kis
+ak4kr
+a3klas
+ak4lau
+a5klii
+a3krii
+ak3ro
+4aks
+ak4te4l
+a2ku.
+aku4map
+a5kvali
+3alald
+ala4mas
+a4laüh
+ale4le
+al4et
+alet4t
+5algat
+al4ged
+a3li
+ali4san
+a4liste
+5allee.
+al4le4h
+al4luj
+al2lü
+a4lob
+als4
+4alt
+4alu.
+a4lud
1alun
-2aluni
+alü4h
+a4lüt
a1m
-1ametn
-ami2sa
-1analü
-1ansam
-1anten
-a1o2m
-a1or
-ao2s
+4am.
+a5ma.
+a4maad
+3ametn
+amit4
+am4o
+am4pal
+5amper.
+4amü
+2an.
+3analü
+5anatoom
+an4das
+an4deo
+an4dog
+2ane
+a4neh
+a3ni
+a4niso
+4anj
+an4kr
+3anku
+an4nah
+4ano
+anos4
+3ansam
+4anst
+3anten
+5antilo
+ao4d
+ao4he
+a3oht
+ao4j
+ao2le
+ao2lu
+ao2m
+a3oma
+ao4nu
+aoo4p
+ao2pe
+a5opera
+ao2r
+a5oras
a1osa
+ao4su
a1ots
-a1plaa
-1aretu
-1arhit
+a1p
+a2par
+5aparaa
+a5part
+a3parv
+a3pi
+a3pla
+a3po
+ap4pal
+ap4pin
+ap4pis
+ap3ri
+ap3ron
+a4pru
+a3pä
+4ara
+arak4k
+a4rase
+5areng
+3aretu
+3arhit
+2ari
+ari4al
+ari4ap
+4ark
+ar4kel
+5armast
+5armee.
+a4ro4l
1arst
-1arter
-1a2rua
-1arvam
+5artikk
+3arua
+3arvam
+5arvestus
1arvu
-1asend
-a1so
-as1ole
-asp2
-a1s2por
-atii2v
-a1t2ree
-atu1a
-auba1a
-a1ui
-a1u2j
-aulu1
-a1umb
-au2sul
+ar4vää
+asa4las
+a4same
+a4sau
+ase4ma
+as5ema.
+1a2sen
+a4seos
+a4sese
+a4sett
+3a4setu
+as4fä
+1a2si.
+asi4ala
+asi3an
+a4sind
+asip4
+5asjan
+askõ4
+as4kõl
+a5slaav
+a4sok
+as3ole
+aso4p
+as4pet
+as3pl
+as2po
+a3spor
+as4san
+ass5t
+4asti
+5astme
+ast4rak
+a4su4b
+a4sud
+asui4
+a4suss
+a5suu
+a1t
+a3ta
+a4taž
+5ateljee
+atii4v
+atmi4k
+5atroo
+at4ros
+at4rus
+at4soo
+ats4p
+at4sü
+att4s
+4atu
+au2a
+aua3l
+au4ba.
+4aud
+au4de.
+a3ui
+4au2j
+au4ke
+aulu3
+aulus4
+au4pü4
+a5urg
+aus4o
+au2su
+a3usul
1auto
+autoo4
+auto5s
+aut4r
a1v
-1avald
-av2s
+av4a
+a4vans
+a3var
+a4veh
a1õ2
-a1ö
+a1ö2
a1ä2
a1ü2
-a1ž
-1ba
-ba1e
-ba1k2r
-ba1o
-ba1p2r
-ba1u2s
-2b1d
-1be
-be1a2
-bek2
-be2r1õ
-1bi
-2bi1e2
-2binõ
+až4ni
+4a1š
+5baa
+baa4g
+baa4k
+baa4s
+bab4
+bae4
+bag4
+ba4he
+ba4ju.
+ba3k4r
+bak4s
+bak4v
+bap4l
+bap4r
+ba4rõ
+basa4s
+bas4ko
+bas4pe
+bat4r
+4bb
+2bd
+be3a4
+beb2
+bef4
+beg4
+be4lü4
+be2ra2
+berk4
+bero4
+be4rõ4
+be4si
+be4st
+bes4tis
+bet4r
+4bf
+4bh
+bha4
+bi4ala
+bia4v
+2bi1e
+bi4en
+4binõ
+bi4pla
+bis4a
+bi4si
+bis4k
2b1j
2b1k
2b1l
-2b1m
-2b1n
-1bo
+bl4e
+blet4
+b2lon
+2bm
+2bn
+4bort
2bp
2b1r
-3b2rig
-3b2roka
+3brig
+bros4
2bs
-b1so
-2b1t
-1bu
-bu1a2
-2b1v
+b3so
+2bt4
+4buks
+bu4lõ
+3bum
+buse5
+bu4si4
+bus4kr
+2b3v
1da
-dae2
-d1ain
-da2la.
-da1o
-2d1arv
-d1b
+daa2
+da5ab
+daala4
+da4do
+dae4
+daf4
+d5ain
+da4leh
+da4lum
+da4lus
+5dam
+4dann
+da4num
+dao4
+darat4
+4darb
+dar4de
+4da4re
+4daru
+2darv
+d3arv.
+4dasen
+da4sum
+2d5b2
+2dd
1de
-de1ar
-dek2s1a
-de2pre
-2d1f
-d1g
+dea2
+2deaa
+de5av
+ded4
+2dee.
+dee4le
+4dehe
+dek3l
+dek4s
+5del.
+de4lau
+4de4lek
+4deluv
+de4pr
+dep5ressi
+dere4
+de4rel
+de4rep
+5dero
+deru4
+2df
+2d5g
2d1h
1di
-di1a2re
-di1es
-dis2kr
+dia4v
+did4
+dig4
+dii4g
+diina4
+dii4sa
+dii4su
+4dilm
+4dini
+di2os
+di4plo
+dis4ai
+di4sar
+di4sas
+dis4pr
+dit4r
2d1j
-2d3k2
+2d3k4
+dkop4
2d1l
+dle4v
+dlust4
2d1m
+dmee4
+dmi4k
2d1n
-d1o2sa
-2d1p2
-2d1r
-3d2reen
+1do
+do4h
+doi4r
+2dos
+d3osa
+5dosk
+2d3p4
+2d1r4
+5draama.
+drao4
+3dreen
+d4rel
+d2ren
3drena
-2d1s
+2d1s4
+dsar4
2d3t2
1du
-du2s1a2
-dusk2
+du4b
+due4
+2d5uks
+d4u2s
+du4s1a
+du4see
+dusk4
2d1v
-2dži
+2dõ
+dõ4l
+4dä
+2dül
+dü4li
+4dü4r
+5düü
+4dž
+2d2š
+3dšem
eaa2
-ea1aj
+ea3aj
e1aas
+ea2b
+e3abi
e1ae
-e1a2gen
+ea2hi
e1ai
-e1a2j
-e1a2la.
-e1alu
-e1arm
-e1arv
-e1a2se
-ea2sut
-e1au
+ea2j
+eak4s
+eak4v
+ea2la
+e3ala.
+e1a4lu
+ea2me
+e5amet
+e5ann
+ea4nu
+eao4
+ea2pa
+e1ar
+ea4re
+ea2s
+e4ass
+e5aste
+e5asut
+e3au
+ea2v
+e3ava.
e1b
e1d
-e2dž
-e1eali
-e1ees
-ee2hi
-1eelar
-e1e2lu.
-ee2pra
-ee2r1ap
-ee2s1ü
-e1e2ten
+ed4a
+e3eali
+e3ees
+ee4fe
+eei4
+eek4r
+ee2la
+3eelar
+e5elekt
+eel5uu
+ee4nai
+ee4nal
+ee4nam
+ee4no
+eent4
+ee4pai
+e5e4pit
+5eepos
+ee4ral
+eer5ap
+ee4ros
+ee4rot
+ee4sin
+e5esine
+ee4s5ist
+5eeskir
+ee4sü
+ee4tõm
+ee4tä
+e1f
e1g
-1ehit
-e2hiti
-eh2t1a
-e1iga.
-e1ilm
-e1i2nim
-e1ins
-e1istm
-e1j
-e1k2lo
-ek2ra
-e1kram
-1eksem
-1ekska
-eks2pr
-1ekstr
-1ekviv
-1e2lamu
-1eleme
+egaa4
+egas4t
+e4goi
+4eha
+e2he.
+e2hi
+e3hin
+5ehist
+1e4hit
+5ehiti
+eh4ta4
+4ehä
+ei4dul
+ei4e
+eie5ri
+ei2ga
+e3iga.
+ei4ha
+ei4he
+e3ilm
+ei2lu
+ei4mem
+5eine.
+ei4roo
+e5i4sa.
+ei4sist
+ei4tau
+ei4tõ
+ei4va.
+e3j
+e3ka
+e4kahi
+e3ke
+ek4kap
+ek2l
+ek4lo
+e3k4o
+ek3re
+e3krii
+4eks.
+5eksam.
+3eksem
+eksi3k
+3ekska
+eksp3r
+5ekstr
+ek4tül
+e3kü
+elaa4v
+e4lagr
+e2lam
+3elamu
+el4an
+5elanik
+eleis4
+e4leks
+5elektro
+3eleme
+5elevaato
e3li
-e2l1ol
-el1t2r
-1elun
+e4lid
+elii4t
+el4kus
+e4l4ob
+elo4p
+els4t
+elt2r
+el4tü
+e2lu
+1elu.
+e5lub
+elu5i4
+1e4lun
+e3lus.
+e4luss
+el5uss.
+el4üh
e1m
-emne1
-1e2nerg
-eo2hu
-e1o2le
-e1o2lu
-eo1p2
-e1o2sak
-e1ots
+5emand.
+e5mat
+emne3
+emos4
+emp4r
+5emuls
+endus3
+5enelas
+e5nem
+3energ
+e4nese
+e4nesl
+enk5l
+enk4r
+en4sal
+en4tos
+en4tü
+eo5a
+eo4ja
+e3o4le
+eo2lu
+eo2ma
+eoo4p
+eo5pl
+e3osa.
+e3osak
+e5osali
+e5osav
+eos4f
+e3ots.
e1p
-ep2l
-ep2ri
-ep2ru
-er1ain
-ere1el
-1ergu
-er1kr
-er2pre
-e3saa
+e3pl
+e4pli
+ep4lu
+e1r
+e3raa
+5erakon
+5erald
+e4rao
+erei2
+erek4
+5ergut
+erih4
+eri4uu
+er4nau
+e4ro4r
+erp4
+er2pr
+ers4k
+er4taa
+er4tak
+er4tes
+e4rud
es1an
-1ese.
-esi1e
-1esine
-es2kl
-es2kr
-es2k1ö
-e1so
-es1ole
-es2por
+1e2se.
+e5sek
+e5sen
+e5sil
+eska4j
+eska4s
+eske4
+es5kel
+esk3l
+esk3r
+es2k5ö
+es4laa
+es3ole
+es4or
+es2po
+e3spor
+es4sist
+4est
+es4tü
+e3su
+esup4
+e1t
+e3t4a
+e2ten
+5etendus.
+etii4s
+et2ra
+et4sin
+et4soo
+et4sü
+et4taj
1ette
-e1ug
-e1u2j
-e1u2l
-e1usk
-eu2tr
-e1uu
+et4tru
+et4tä
+et4tü
+4etu
+e4tõ4d
+e4tüm
+eu4de
+e3u2j
+e3u2l
+e5u2n
+eu4p
+eu4s
+e5usk
+e3uu
e1v
+e3v4a
e1õ2
-e1ö
+e3ö4
e1ä2
-e1ü2
-e1ž
-1fa
-1fe
-2f1f
+e1ü4
+e1š
+5faa
+faa4n
+4fa4d
+2ff
1fi
+fii4t
+4fj
+4fk
2f1l
-flu2
+f2lo
+5floora
2f1n
1fo
-2fra
-f2rees
+folk5
+fo4ro
+2f1r
+f2re
+3frees
+2fs
2f1t
-1ga
-ga1k2
-ga1o
-ga1p2
-gasi1a
-2gatsu
-g1b
-1ge
-ge1a
-ge1k2l
+ftat4
+3fu
+3gaa
+gaa4r
+4gaast
+4gab
+4gaed
+gag4
+2gah
+ga2hi
+gai4g
+ga5is
+ga3k4
+5gam
+ga3o
+ga3p
+4gart
+4garv
+g4as
+4ga4suk
+5gata
+gat4r
+gau4
+ga4va.
+ga4van
+2g3b
+2gd4
+gea4
+ge4du.
+gek4
+ge5kl
+4gekse
+ge4lah
+gela4s
+ge4leh
+ge3lu
+ge4lä
+ge4nan
+geok4
+ge4or
+4geos
+4gerg
+ge4rus
+4gf
+4gg
2g1h
-1gi
-gik2
+gi2aj
+gii4s
+gi3k
+4ginf
+4gint
+gio4r
+gi3pl
+gi4san
+gi4sil
+gi4sö
+git4r
+gi4vaj
2g1j
2g1k
2g1l
+g4lüt
2g1m
2g1n
-1gol
-g1o2sa
-2g1p2
+gne4ta
+gne4te4
+4goh
+go4le
+go4ma
+go4po
+2g1p4
2g1r
-3g2rana
+g2ran
+5granaa
3g2rav
-3g2rup
-2g1s
-2g1t
-1gu
-gu1e
-gulu2
-gu3p2
-gu1spo
+g2ru
+3grup
+4g1s4
+2g1t2
+g3tr
+3gu
+gub4
+gue4
+gu5i
+gu4nel
+gu3o
+gup4
+gu4sen
+gu4sä
+guu4j
2g1v
-2g1õ
-1gü
-1ha
-haa2s
-ha1e
+2g3õ4
+4gä
+gü4l
+3ha
+haa4ri
+haa4s
+hal4lai
+5har
+hasa4
+hat4r
1he
-he2rai
-h1h
+hee4m
+hee4s
+hei4s
+hek4v
+2hel.
+hels4
+het4r
+4h1h
+hhe4l
1hi
hia2
-hi2kl
+hii4s
+5hil
+5him
+hio2
+hi4san
+hi4sar
+hise4l
+hi4st4
+hi4sü
+5hits
h1j
+hjaa4
+4hk
+h4kal
+h4kas
+h4kis
+hk3l
+h4ko4
+hk3r
+hks4
+hkt4
+h4kusk
+h4ku4su
+h4kõ
+h4kä
h1l
-h1m
+hle4n
+4h1m
+h4mo4
+h4mü
h1n
+hnika5
1ho
-hoa2
-2h1p
-h2t1ae
-h2t1a2j
-h2t1ar
-htea2
-ht3s
-htu1
-h2t1ö
+hom4o
+4hp4
+hrs4
+4ht
+h2ta
+hta2j
+h5tak
+hta4l
+ht5ar
+hta4su
+h4teg
+hte4n
+hte4r
+h4tid
+h4to
+h4tr
+ht5s4
+h4tö
+h4tä
1hu
-hu1a
-hu2lo
+hu3a
+hue4
+hui4d
+huk4l
+hup4
+hu3sa
2h1v
-hva1a
+hvad4
+hvast4
+hve4l
+h4vini
+h4vo
+hvu4s
1hõ
-1hö
+3hö
1hä
-1hü
-iaa2l
-i1aast
-i1a2bi
+3hü
+4ia
+iaa2
+iaa4l
+ia5alane
+i3aast
+i5a4bi
+ia4bo
i1ae
-i1a2hi
-i1aine
-ia2ja
-i1akt
-ia2la
-i1ala.
-i1alb
-i1all
+ia2g
+ia2h
+i3aine
+i1a2j
+ia4kr
+i3akt
+i1a2la
+i5alb
+i3alli
i1a2lu
-i1amet
-i1anal
-ia1o
-ia1p2
-i1a2par
-i1arm
-i1ars
+ia2me
+i5amet.
+ia2na
+i5andj
+i5andm
+ia4ne
+i5anne
+ia2p4
+i3apar
+ia5pr
+ia2re
+i3arm
+ia4ru
i1arv
-i1a2si
-i1a2su
-i1a2tel
+ia2s
+ias4ke
+i5aste.
+i3asu
+ia4tel
+iat4r
i1au
-i1a2vaj
+iau4l
+i5a4vaj
+i5avald
i1b
+i4bad
+i4bau
i1d
-idu1u
-i1eal
+5ideaa
+idii4
+idlu4
+ie2
+i3eali
i1eel
-i1e2h
-iek3r
+iei4
i1eks
-ie2lu
-i1eos
-ie2sin
+i5elani
+i1elu
+i3eos
+ie4ri
+iers4
+i3esi
+ie5so
+i5ess
+ie4st
+i3eten
+ietu4s
i1f
-i2fr
i1g
-igi1a
-igio2
-i3g2ram
-ii2kl
-ii2kr
-iima1a
-i1inde
-iin1k2
-i1istu
+i4ga4g
+i5gar
+5igatsu
+i4gav
+ig4ram
+ih4le
+ih4te
+ih4tin
+ii4a
+ii4deo
+ii4du.
+iie3
+ii4es
+ii4gaa
+ii4ga4s
+ii4ha
+iika4
+ii4kis
+iik4ro
+iiks4t
+iikt4
+ii4lab
+ii4lad
+ii4lae
+ii4last
+ii4leh
+ii4lel
+ii4les
+ii2lõ4
+ii4lü
+ii4mai
+iimat4
+ii4met
+ii4nai
+ii4nau
+i5inde
+i5inf
+ii3ni
+i5inimen
+iinit4
+iink4
+iino4
+ii4nol
+ii4nos
+ii4nõ
+ii4pr
+ii4ran
+ii4rau
+iirs4
+ii4rü
+ii4san
+iise4l
+ii4sev
+ii4sik.
+ii2ta
+ii4teh
+iito4
+ii4tom
+ii4tos
+iit5re
+ii4tõ
+ii4tü
+ii4ves
+ii4vet
ii2vo
i1j
i1k
-i2kaut
-ikk2r
-ik2laa
-ik2las
-i2kli
-ik2re
-ik1t2r
-1ilme
-1ilmut
-il2pl
-1i2lust
+i4kalu
+i4ka4re
+i4kark
+i4kaut
+i4k5elu
+ike4si
+i3klaa
+i3klas
+ik4ler
+i5klub
+ikop4
+ikos4
+i4kov
+i3kre
+ik3ro
+ik4sar
+iks4k
+iks4po
+ik3t2r
+i3ku
+iku3a
+il4a
+ila4s
+i4lasi
+ilia4
+i4lisi
+il4kan
+il4kõ
+ille5s
+illo4
+5ilme.
+il4mot
+3ilmut
+ilo5g2
+ilp3l
+il4ti
+i5lun
+ilu3sa
+5ilustu
+ilü4h
i1m
-imi2s1
+i4melu
+imi4g
+imisu4
+i4mo4l
+5imper
i1n
-in2d1al
-1indek
-indo1
-1iniml
-inna1a
-1insen
+ind3al
+5indeks
+inde4r
+ind4re
+2ine
+inee4s
+i4neh
+i4neks
+ini4kü
+i2nim
+ini4mas
+i4nime
+5inimene
+5iniml
+i4nini
+inna5a
+inni4si
+3insen
1insp
-1inven
-i1oht
-i1o2lek
-i1o2lu.
-i1o2man
-ioo2na
-iooni1
-i1o2per
-i1o2sa
-i1ots.
+1inst
+3inven
+io4de
+io4h
+i3oht
+i5ohv
+io4j
+i5oks.
+io2le
+i3olek
+io2lu
+i5oluk
+io4lü
+io2ma
+i5oman
+ioo4da
+ioo4ne
+iooni3
+io2p
+i3oper
+i5ork
+i1osa
+ios4f
+ios4p
+ios4t
+iost4r
+io4su
+i3ots.
+i3otsi
+io4tü
i1p
-ip2la
-i2plo
-ip2r
-ip2sp
-irja1o
-i2s1au
-i2selu
-1isola
-i1sot
-isp2
-is2por
-is1üh
-is1ü2l
+i3pla
+ip4lu
+ip4ro
+ip4sas
+ipse4
+ip4sep
+ip4sus
+i4ra4b
+i4rase
+ir4dis
+ir4nõ
+i2rui
+iruu4
+isaa4v
+isa4ja
+i4sana
+isa4re
+i4sarh
+i4selo
+i3sem
+iset4s
+isi4g
+i2so
+3isola
+i5soli
+is5oma
+iso4r
+i3sot
+i3s4pek
+is3pl
+i3s4por
+is3sp
+5istand
+i5s4tiil
+5istme
+ist4ru
+ist4se
+i5stsee
+5istutu
+i3su
+i4sõm
+i2sü4l
+isü4r
2it
-it2or
-i1traf
-i3tseh
+itaa2
+itee4l
+it4rak
+it4ras
+it2ru4
+its3k
+it4so
itte1
-iu2ju
+itt4s
+iu4b
+iu2da
+iu4gi
+iu2j
+i3uju
+iu4la
+iu4mar
+iu4me4
iu2mo
-ium1p
+iu4ni
+iu4pu
+iu5sa
+i5uss.
+iu2su
+iuti4
+i3uu
i1v
-ivii2l
+i4vad
+i4vakt
+i4va4lus
+i4vant
+i4vau
+i4veh
+ive4l
+iviil5
+i4vü
i1õ2
-i1ä
+i1ä4
i1ü2
-i1š
i1ž
+j4a
3jaa
-ja1aa
ja1aj
-ja1ann
-ja1arm
-ja1as
-ja1ee
-ja1e2l
-ja1i2
-2jam.
-ja1ost
-ja1p2
-je1a2
-je1i
-ju1a
+jaa4l
+jaa4r
+jaa4s
+jab4
+jad4
+ja5el
+jae4r
+jag4
+ja3i2
+ja5kra
+5jama
+5jame
+jao4h
+ja3p4
+jas4ke
+jas4tii
+jat4r
+jat4su
+jau4b
+jau4l
+je3lu
+3jo
+joo4k
+jue4
+5juma
+ju4sei
+juse4l
+5jõ
+5jä
1ka
-2k1aed
-2k1aeg
-2k1a2lus
-kar2pl
-2k1asj
-2k1b
-2k1d
-1ke
-2keem.
-ke1in
-ke1kr
-2kelet
+kaa4da
+kaa3de
+ka5aj
+ka4al
+kaa4ra
+kaa4sis
+kaa4ta
+4kader
+4kaed
+4kaeg
+kae3lu
+kag4
+kahe5i
+4kaia
+2kain
+ka5ist
+kaitse5
+ka4jav
+ka4ju.
+k5a4lus
+ka4pl
+ka2pr
+4karm
+4kaset
+k5asj
+kat4r
+2k3b
+2kd4
+1k2e
+ke4el
+kee3lu
+2kehi
+4keks
+ke4laj
+ke4lak
+ke4lok
+4kemb
2ken.
-ke1o
-kes2k1a2
-2k1f
-k1g
-2k1h
+5kene
+keo2
+kes2k
+kesk3a4
+ket5ra
+ket4te4
+2kf4
+4kg
+2k1h4
1ki
-kiu2d
+kie4
+kik4r
+4kinf
+kio4
+ki4pr
+kis4a
+ki4san
+ki4sik
+4kiste
+kit4r
+kiu4d
+kiu3su
2k1j
-2k1k
-kk3s2
-kku1k
-1k2laas
-2klai
-k2lamb
-2klan
-k2lapp
-1k2leit
-2klem
+4k1k
+k3kra
+kks4
+kku4ro
+2k1l4
+k2la
+k3la.
+3klaas
+k3lai
+3k4lamb
+k3lan
+3klapp
+5klassi
+k3lat
+5klaver
+kle4a
+k4lee
+k2lei
+3kleit
+k3lem
+k4lib
+5klibu
+klig4
+k2lii
3kliim
-2kloom
-2klu
+5kliiste
+k3lik
+k3lin
+k4link
+k2lo
+k3loom
+3klots
+k2lub
+k3lus.
+klu4sa
+klu4sõ
+k4lut
2k1m
2k1n
+knaa4
+k4nip
1ko
-2k1p2
-k2raan
-1kraav
-1krab
-k2rae
-1k2reem
-2kreep
-k2res
-k2rii
-2kro
+2koks
+k4ol
+ko4len
+koo4sa
+4ko4rie
+4korpi
+k5osa.
+ko4va
+2k3p4
+2k2r
+k4raan
+5kraana
+3kraav
+3krab
+3k4rae
+k3rai
+3kramp
+4kran
+k3rau
+5kredii
+3k4reem
+4kreg
+5k4res
+k5ret
+4krip
+5kristal
+k4roh
3krohv
-k2ruu
-k2ruv
-1kruvi
-2ks
-ks2kr
-k1so
-ks2pl
+k4rook
+k3rut
+3kruu
+3kruvi
+4k3rü
+4k1s
+k5sae
+k4sai
+ksek4
+ksi2k
+ksika4
+ksit4
+ksk4l
+ks5kõ
+ksp5lo
+ks2pr
+kst3r
+ks4tü
2kt
+kt2ra
1ku
-ku1a
-kuu1k
+kui4s
+4kujuj
+4kujum
+kuk3la
+4kuks
+kul2d
+2kulp
+kumi4su4
+kummi5
+3kus
+ku4siv
+kut4r
+kuu4ni
+kuuse5
+4kuž
2k1v
-3k2vant
+k4van
3kvart
+5kviitu
1kõ
+kõ4de.
+2kõi
+k5õis
+4kõp
1kö
+4köd
1kä
+käi5s
+2käk
+4käm
1kü
-kü2h
-2k1ühe
-k1š
+2kühe
+4küle
+4küll.
+2kž4
+4kš
1la
-laa2r1a
-l1a2la.
-l1alk
-2lanik
-2l1arv
-2lauto
+5laag
+la4aj
+laa2r
+laar5a
+laa4sa
+2laav
+5laava
+4ladj
+5ladu
+lae4r
+3laev
+4lahv
+lai5ek5
+lai4ga
+la4jap
+la4jav
+la3k4r
+lak4v
+la4la.
+4lald
+la4les
+4lals
+la4lus
+3lama
+3lamp
+4lams
+la4nes
+2lani
+lap4l
+4l1arv
+4larü
+la4sas
+4lasb
+la4sei
+la4sem
+4lasen
+l2asi
+4la4sut
+3lau
+5laud
+lau4n
+lau5su
+4lavh
2l1b
+l4bau
+lb4lo
+4l1d
+l4dala
+l5dist
+l4don
+l4dü
1le
le1a2
-le1ee
-2lekk
-2lektr
-le1oh
-le2sa
-l1f
-lf2re
-lgu2sa
+3lee
+leek5l
+lee4le
+leep5r
+le3hi
+4lehit
+5leht
+3lej
+4lekk
+5leks.
+4lektr
+lektri5
+4lele
+le4lek
+5lema.
+le4mor
+lenaa4
+leo2
+le3oh
+le5olu
+le4pl
+le2s
+4lese.
+le3sõ
+3let
+4lette
+4l1f
+lfoo4
+lf4t
+l1g
+l4gae
+l4gai
+l4gall
+l4gann
+l4gase
+lgas4k
+l4ge4le
+l4gi4d
+l2go
+l4gu4j
2l1h
1li
-li1aas
-li1aj
-li1ar
-li1a2s
-li1e2
-2lii.
-2liia
-2liima
-li2kra
-2l1ilm
-li1o2l
-lip2l
-li1t2re
-li1uj
+li4ala
+li5am
+lia4v
+3lid
+li4dan
+li4ga.
+4liia
+liie4
+5liig
+lii4na
+5lik.
+likai4
+li3kla
+lik4ro
+4lilm
+4li4lus
+limi4s
+4linf
+4linim
+4lins
+lin4te
+4linv
+lio4k
+li3p4l
+li4sah
+li4sik
+4lisol
+li4suj
+li4sõl
+li4sö
+lit4r
+li5tu
+2liže
2l1j
+lja1a
+lja5os
2l1k
+lkk4
+l4kli
+lk4lu
+l3kr
2l1l
-llk2
+l5ler
+lli3tr
l2lor
+l4lots
+llp4
+lls4
+llt4
l3lu
+l4lää
2l1m
-lmi1a2
+lmaa4v
+lmat4
+l4mau
+l4meks
+lmp4
2l1n
1lo
-2l1o2le
-lo2lij
-l1orn
-2l1o2sa.
+lod4r
+lof4
+lo4gal
+4loha
+4lohv
+5loi
+lok4r
+2lo2l
+l1ole
+l3olij
+3lolo
+lo4man
+5loog
+loo4ram
+4lord
+4lorn
+2losa
+l3osa.
2l1p
-lp2r
+l3plaa
+lp4le
+l4puk
2l1r
+lrih4
2l1s
+ls4ka
+lske4
+ls4o
+lste4
2lt
+l4tau
+lti4l
+l4tok
+lt4sel
+lt4sis
+l4tuk
+l4tõm
+l4tää
+l4tüt
1lu
-lu1ah
-lu1ai
-lu1al
-lu1as
-lue2
-lu1el
-lu1il
-l1uks.
+3lua
+lu3al
+lud4
+lue4
+3lug4
+4luhk
+4luim
+lu4juk
+4luk.
+3lukk
2lun
-lusa2
-2luss.
+lu4nin
+lu4nio
+luo3r
+lu4rau
+lu4see
+lus4tii
+lu4sum
+lu4sö
+3luta
+lut4r
+3luu
2l1v
-lve1a
+lvel4
1lõ
+4lõd
+4lõie
+5lõik
+4lõis
+4lõit
+lõ4l
+lõ3pe
+lõp2p
1lö
+4löe
1lä
+4län
+län4gi
+lääne5
1lü
-l1š
+lü3h
+lü4ma
1ma
-ma1a2bi
+3maa
+maa2b4
+ma3abi
+maa3la
+maa3p
+ma4bi
ma1e2
-ma1k2l
-map2
-ma1pl
-2mb
-mbe2r
-mber1a
-2m1d
+mag4l
+5mahl
+4mahv
+4majam
+4ma4ju.
+ma3kl
+mak4v
+3mal
+ma4la.
+mal4ma
+ma4om
+ma3pl
+4mart
+4marv
+ma5se
+ma5sin
+ma4st
+4ma4sul
+ma4sä
+4maut
+2m1b
+mbat4
+mbe2r3
+mblu4
+mbo4j
+mb5usa
+2md4
1me
-me1a2
-meo2
-me1os
+me1a4
+me4an
+3mee
+mee5la
+mee4s
+me3hi
+4mekv
+mers4
+mert4
+me5s4o
+m4et
+4met.
+4metl
2metn
+met4se
+4mett
+me5u4
2m1f
+4mg4
2m1h
1mi
-mi1aj
-mi1e
-mip2
-misa2
+mia4m
+mia4r
+4mide
+mi4kaj
+mi4nah
+4minf
+mi3ni
+mip4
+mi2s
+mis1a2
mi3si
-misk2
-miso2
-mis3tr
-mi2sü
+mi4sig
+mi4sih
+4mi4sik
+mi4sil
+mis3k4
+mis4tii
+mist4r
+mis3ts
+mitte3
2m1j
-2m1k2
+2m3k4
2m1l
2m1m
-2m1n
+m4maat
+mma4s
+mm4e
+mme4r
+mmika4
+mmi4kal
+m4mor
+2m1n4
1mo
-m1oks
+4moh
+mo4ha
+m3oks
+4morg
+4morn
+mo3sa
2mp
+mpa4l
+m4pap
+mp3l
+mp3r
2m1r
+mruu4
2m1s
-m2st
-2m3t2
+ms4o
+ms4p
+2m1t2
+m5ts
1mu
-mua2
-mu1ah
+mua4
+mu5ah
+mud4
+mue4
+mui4m
+4muls
+mup4
+5mus
+mut4ra
2m1v
-1mö
-1mä
-1mü
+mõ4d
+4mõig
+4mõp
+3mö
+4mök
+3mä
+4mäk
+mär4gel
+3mü
+4müh
+4mž
1na
-na1aa
-naa2ra
-na1i2ni
-2nalü
-na1o
-na1p2l
-na1p2r
-na1us
-2n1d
-nde1a2
-ndu2s
-n2dž
+n4aa
+na5ah
+naa4lu
+naa4r5a
+nad4
+na5ei
+nag4l
+nah4ke
+nai4d
+nai4si
+na4kru
+2nal4ü
+4na4mer
+na4mii
+n5amiid
+nants5a
+na3o4
+nap4l
+na4ret
+4narv
+n4as
+4nasb
+nass4
+nat4ra
+nau4b
+4nb4
+4n1d
+n4daas
+n4dab
+n4dae
+nda4ko
+nda4l
+n4dau
+ndif4
+ndip4
+n4do4r
+n4duj
+ndu4sõ
+n4dü
1ne
-2ne2hit
-nese1i
+5ne.
+nea2
+nee3la
+nee4le
+nee3lu
+nei4v
+ne4lah
+4nelas
+ne4lek
+neo4d
+ne4pl
+2nerg
+n4es
+ne4tan
+ne4tõm
2n1f
2n1g
+n4gai
+n4gall
+n4gase
+n4gau
+ng4lü
+n4go4r
+ng3r
+ngud4
+ngus4t
+n2gü
2n1h
1ni
-ni1aj
-ni1as
-ni1e2
-2nimen
-2niml
-ni1so
-nisu1
+ni3ap
+nia4v
+nig4
+nii4g
+nii4tu
+nikkel5
+4nilm
+5nima
+nima4s
+5nimet
+3nimi
+ni4mig
+4niml
+4nint
+ni4sid
+nis4ke
+4nisl
2n1j
2nk
-nksp2
-2n1l
+n4ka4n
+nk3r
+nk4se
+nkst4
+2n1l4
2n1m
2n1n
-nnaa2
-nna1e2
-nna1i2
+nna3e
+nna5i
+nnak4r
+n4ne4f
+nnio4
+nnk4
1no
-2n1p2
+4nob
+nod4
+4noks
+noo4na
+n4or
+2n3p4
2n1r
2ns
-ns2kr
-ns2lav
-n1so
-nsti1
+n4salp
+ns4e
+nsk5r
+n3so
+nso4r
+nste4
+ns4tee
+ns4tem
+nstis4
+nst3r
+ns4tu
+nsu4s
2nt
-nte2l
+ntaa4r
+n4teh
+nte4l
+ntig4
+n4tiso
+n4tots
+n4tr
nt3ra
+nt3re
+nt4sab
+nt4sal
+nt4san
+nt4sar
+nt5sü
+ntt4
+n4tüh
+n4tük
1nu
-nu1spo
+nu4da
+nui4g
+nur2k
+nus4p
2n1v
1nõ
+nõ4l
+4nõli
1nö
1nä
1nü
-n1š
-n1ž
-o1a2d
+4nül
+4nž
+4nš
+oa2
+oa4a
o1ae
-o1a2j
-o1aku
-o1a2mat
-o1an
+o5aku
+o3anal
+o5apa
+oau4b
o1b
+oba4s
1obj
-o1d
-odaa2
-odaal1
-oe2le
-o1elek
+4o1d
+odaa4
+odaal3
+o4deh
+odu4sõ
+od4š
+oe5a4
+oe4fe
+oe2l
+o3ele
+oe4mi
+oe4mu
+o4eo
+oe4rah
+oe4rõ
+oe4si
+oet4r
o1f
-o2fr
-o1go
-1ohak
-o2haka
-o1iso
-oi2t1ai
-oiu1a
+of5r
+o1g
+og4la
+og4li
+3ohaka
+oh5to
+5ohvits
+oi2ta
+oiu5a
o1j
-1o2lek.
-o2lev
-o2lija
-o2mad
-1omadu
-o1opti
-2oos
-opsu1
-o2r1ai
-1orav
-1or3g2
-2orgr
-ori1sp
-1orju
-1orkes
-1orna
-os2kl
-1oskus
-os1o2l
-1otsa
-o3tsö
+oju2s
+okast4
+okku5
+ok3la
+ok5liin
+okoos4
+ok3r
+ok4re
+ok4ri
+o5kris
+ok4ru
+o3la
+o4lae
+olag4
+ola4las
+ola4su
+ol4do
+ole4an
+3olek.
+o4lend
+olig4
+o3lii
+olii4g
+o4li4lu
+o3lis
+4olj
+ol4lae
+ollis4
+ol4lü
+ol4mai
+4o3lo
+ol4tam
+ol4tar
+1olu.
+5olukor
+o4luks
+olõ4
+o4lä
+3omadu
+om4baj
+om4ban
+o4mok
+ona4a
+o4naj
+ona4ko
+o4neh
+o4nele
+on4gos
+onit4r
+oniu4
+onsoo4
+ont4re
+o4nuu
+2o2o
+oo1a
+oo4kal
+ook4r
+oo4kää
+oo4lau
+oo4lee
+oo4lig
+oo4list
+oo4log
+oo4lõ
+oo4lü
+oo4nah
+oo4nar
+oo4nau
+oon4dee
+oonk4
+oono4
+oo4noh
+oons4
+oon5t4
+o5opti
+oo4rat
+oo4ree
+oo3sa
+oo4sel
+oo4tõ
+o3pa
+op5last.
+op4lu
+op3ra
+op3ri
+o2r3ai
+o4ralg
+ora4mii
+o4rana
+5orav
+3order
+1org
+org4r
+oria4
+3orju
+5orkeste
+3orna
+or4nel
+or4tal
+ort3r
+oru4s
+or4võ
+o2sa
+o4sake
+3osako
+4o3sau
+4ose
+o4seks
+4osf
+o2si.
+4osin
+3oskus
+4osl
+4oso
+o4sok
+os1ol
+os4pa
+4oss
+os4saj
+os4sü
+os5taas
+os4tem
+4osto
+ost4ru
+5osuti
+4osõ
+oto5a
+otok4
+ot2ra
+o3tran
+3otsa
+o5tsö
+ot4ta
+ot4teo
+otus4ta
+otü4l
+ou4b
+ou4n
o1v
-o1õ
-o1ü2
-o1že
+ovaa4l
+ovio4
+ovol4
+o4vu4n
+o3õ4
+oü2
1pa
-pa1a2m
-pan3sl
+paa4ka
+pa3a2m
+paa4tel
+pa4e
+pa4lus
+pans4
+pa4pr
+5paras
+3park
+4parta
+pa4sp
+4pb
+4pd
1pe
-pea1a
-pe2a3j
-2p1eksk
-pep2r
-p1f2
-p1h
+pe2a
+pea5j
+peas4
+pe4au
+pea3v
+pe4f
+4pektr
+pela4
+4pe4lev
+pel4t
+pe4lü4
+p4em
+pe4ol
+5perd
+pe4tap
+peti4k
+2pf4
+pg4
+2ph
1pi
-pi2kl
-pila2s
-pi2p3r
+pii4v
+pik5r
+pin2d
+pin4gis
+pip3r
+pis5ta
+piu4g
2p1j
2p1k
-p2laat
-3plak
-1p2lasm
-plek2s1
-2plem
-2pli
-3pliia
-p2luus
+2p2l4
+4pla.
+p4laa
+p5laasi
+3plaat
+p4lak
+p3lam
+p5lane.
+3plasm
+5plastik
+plek2
+3plekk
+4p3lem
+p3li
+5pliia
+pliig4
+3plok
+p3lom
+p3lu
+3pluus
+4plõ
2p1m
2p1n
-3p2neu
-1po
-pordi1
-2pp
-p2p1as
-ppe1a
-p2raa
-p2rep
-1p2roo
-1p2rot
+p4neu
+1p4o
+5po4e
+3pon
+3poo
+poo4la
+poola4v
+pordi5
+4p1p
+ppa4k
+p4pas
+ppe3a
+ppee4
+pp3l
+p2p3r
+pps4
+p4pud
+p4põ
+p4pü
+p2r4
+2pra
+3praa
+3prag
+3prakt
+p5rau
+p4rep
+p4resi
+4prib
+2prii
+p5riit
+p4rog
+p4roo
+4p4ros
+3p4rot
+4prum
+5pruu
2p1s
-p2st
+ps4a
+p4sor
3p2sü
2p1t
-1pu
+p4tak
+3pu
+pua4
+pu4da
+puha4
+pui4t
+puk4k
+pul4ti
+4purt
+pus4p
2p1v
-1põ
-1pö
+3põ
+põhi3
+p4õi
+põi4s
+põli4
+5pö
1pä
-1pü
+pär4gu
+4päs
+3pü
+pü3he
+4pž
+4pš
1ra
-raa2l1a
-2raav
-2rafo
-ra1kr
-2r1anal
-ra2par
-ra1pr
+raal3a
+4raale
+5raalne
+raa4lu
+raamatu5
+raa4ta4
+4raatt
+raa4tu
+4raav
+5raaš
+raie3
+2rain
+r3aine
+rai4si
+r5a4la.
+ral4t
+ra4lus
+3rame
+ran4dem
+ra3om
+4rapa
+ra4pl
+4rapt
+4rarb
+ra4ren
+4rars
+2rarv
+ra4sal
+4rasen
+ra4sis
+rast4r
+ra4suk
+ra4sul
+ra4sut
+5ratas
+ratiiv5a
+rat4sen
raua3
-raud1
-rau2da
+rau2d
+raud5o
2rauk
-2raum
-2rauto
-r1b
-r1d
-rde1a
+4raum
+4raur
+rau4te
+5ravi
+2r1b
+r4bae
+4r1d
+r4dae
+r2dar
+rde3a
+rd4re
+r4duj
+r4dü
1re
-2reene
-2rehit
-re2pre
-2rette
-r1f
-r1g
-r2g1ae
-r2g1ah
-r1h
+5re.
+5rea
+reb2
+ree4le
+ree4ma.
+ree4man
+3reer
+3reet
+5reg
+2rehi
+rei4se
+rek3l
+4reks
+re4lai
+re4liit
+5relv
+re4mää
+4repp
+re2pr
+rep3re
+re4sin
+re3te
+ret4k
+re4tr
+ret5s
+2r1f
+rf4r
+2r1g
+r4gae
+rg3ah
+rga4re
+r4geh
+rgi4me
+r5g2ra
+2r1h
1ri
-ri1aj
-ri1ala
-ri1a2m
-ri3br
-ri1ek
-ri1el
-2riip.
-ri1om
-ri1ots
-rip2p
-rippa2
-ri1t2r
-r1j
-r1l
-r1m
-r1n
+3ria
+ri3am
+ri5ast
+5rid
+2rig
+ri4ga.
+3rige
+rig4r
+2riib
+5riie
+4riinu
+ri4kis
+ri3k4r
+4rilm
+3rim
+ri5oks
+rio4r
+3rip
+rip4li
+4rip2p
+4ri4sa.
+ri4sah
+ri4sar
+ri4ses
+4risol
+ri4tol
+ri3t2r
+5riu
+5riv
+4riö
+2r1j
+2r1k
+r4kad
+rk5ain
+rka4se
+r4kek
+rkt4
+2r1l
+2r1m
+r4mald
+r4me4le
+r4mig
+rmo4ra
+rmo4s
+rmp4
+rms4
+2r1n
+r4nad
+r4neh
+rnk4
1ro
-roa2
-ro1e2
-2rohv
-r1p
+roa4
+ro3e2
+rok4k
+rol4la
+rol4le
+4romb
+2romi
+ro4nop
+roo4ga
+4rosa
+ros4po
+ro5staati
+rost4r
+4rož
+2r1p
+rp5ret
2r1r
-r1so
-r1s2po
+r3ri
+2rs
+rsaa4l
+rs4l
+rs4o
+r5s2po
+rs4tak
+2rt
+r4tah
+r4tos
+rt2r
+rt4ra
+r4tri
+rt5roo
+rt4sai
1ru
-rua2
-ru1k2r
-ruum1a2
-r1v
+2rua4
+rud4
+r4uj
+ru3kr
+3ruma
+4rumb
+2rumm
+4rump
+5rus.
+ru4set
+ru4sin
+ru4sul
+rut4r
+ruum5a
+4ruur
+2r1v
+rva4la
+rva4lu
+r4vann
+rvas5k
+rvis4k
+r4voh
+r4vok
1rõ
-1rö
+2rõ2l
+r5õli
+rõn4gu
+4rõr
+3rö
+4rök
+röö4pe
+rööp5l
1rä
+4rä4r
1rü
-r1š
-r1ž
+4rük
+4rüm
+4rü4r
+4rž
+4rš
1sa
-s1aas
+3s2aa
+saa5j
+saa4lu
+sa4an
+4s3aas
+3saba
+sa4bi.
+4sabo
+s4ad
+5sada
+4sade
+s5ader
2s1ae
-s1agr
-s1ahi
+sae4l
+5sa5ga
+s4age
+sa4gu
+4sahv
+3sai.
+4saia
s1ain
-2saine
-2sala.
-sa3li
-s1alus
-2s1ann
-2sarvu
-s1asen
-sa1spo
-2s1aut
-s3b2
-s3d2
+s4ajan
+sa4ju.
+sak4ro
+5saks
+4saku.
+sa4kää
+4s3a4la.
+4salas
+s4alat
+5salat.
+sa4lev
+4salla
+4sallu
+3salt
+sa4lum
+5salv
+3s4am
+4samp
+4sank
+4s5ann
+s4ant
+4santi
+s4anu
+sa4num
+sa2pr
+sa4ris
+s4arv.
+sar4va
+sase4
+3sasti
+sas4tii
+sa4suk
+sa4sum
+3sat
+4satl
+s5avald
+2s3b2
+2s3d2
1se
-se1ala
-se1ar
-se1eh
-2s1ees
-2sehh
-2se2hit
-sei2g
-se1k2l
-se2lam
-2sellu
-2semen
-2sensu
-sep2r
-2se2se.
-2s1esit
-2s1e2ten
-se1t2r
-2sette
-s1f
-s3g2
+3sead
+se3ala
+s5eali
+se5aval
+se4du.
+4seela
+see4le
+s5eeln
+see4ma
+4seepi
+3seer
+see4si
+see4ta4
+4se4fe
+5seg
+sega5a
+2seh
+3seha
+3seho
+5sehu
+5sehä
+3sei
+sei4d
+sei4si
+3seka
+se3kl
+4s5eksp
+se4laj
+4selek
+5seli
+4sellu
+3selt
+2selu
+4sens
+se5oh
+seo4k
+se5om
+seo4p
+seo4r
+3sep
+sepat4
+4serem
+4sese.
+se4si.
+4se4sin
+s5esit
+ses4k
+3sest
+4s5eten
+se3t2r
+4sette
+2s1f2
+2s1g2
2s1h
1si
-si1aj
-si1ar
-sie2
-si1el
-s1i2ha.
-s1ins
-si1os
-si1s2p
-sisse1
-si1ur
+3sia
+sia4h
+sie4
+5sign
+sig4ra
+s5i4ha.
+sii4g
+sii4sa
+sii4se
+4siits
+sii4tu
+si4ket
+siko4d
+siks4p
+sikt4
+sik4vi
+4sinim
+s5inime
+4sins
+sio4le
+si4pro
+4sirr
+5siru
+4si4sa.
+si3se
+s5i4sik
+sis2p
+sisse3
+s5istuj
+5sisu
2s1j
-sjaa2
+sja5ar
2s1k
-ske1a2
-sk2lei
-3sk2ler
-s2kli
-3s2kulp
-s3kvar
-s2k1õ2li
+4ska
+5skaa5la
+ska4no
+5skeem.
+s4kela
+5skelet
+s5ken
+ski4g
+sk2l
+s5klas
+5skler
+skuk4
+3skulp
+sku4si
2s1l
-2s1m
+4s1m
+sma4sa
2s1n
-1sobi
+sne4p
+1so
+3sobi
+3soe
s1oht
-1soi
-s1oks
-2sole
-s1o2lek
-1son
-1soo
-s1orj
-1sort
-s1os
-2so2sa
-s1p
-s2prii
-2spu
+3soi
+s5oks.
+2so2l
+s3olek
+s3olij
+5solo
+so3lut
+so2ma
+3son
+3soo
+soo5o
+4so4pe
+so4pr
+5sor.
+s3orj
+3sort
+2s1os
+4sotsu
+2s1p
+s5per
2s1r
2s1s
-ss2po
-s1t
-1staad
-2ste
-2sto
-s2tr
-st2rei
-s3tseh
-s3t2sü
-stus1a
-stu2si
-1s2tuud
+ssel4l
+ss2fä
+ssin4
+s4sinf
+ssk4
+ss4ke
+ss2p
+s5spor
+ss2t
+s5stat
+ss4ti
+sst5r
+s4suss
+2s1t
+s2taa
+3staad
+5staaš
+s4tain
+4stam
+5standard
+3start
+s4tati
+5statis
+s4teno
+5stepp
+stet4
+s4toh
+s4top
+s4tot
+5streik
+5strek
+5struktu
+st4so
+stt4
+stu2s
+stu4s5a
+3stuud
+stä4
+s4tär
+s4tüh
1su
-2sula.
-2s1uss.
+sua2
+su4bar
+sud4r
+su4du
+su5e
+su4jul
+4suks
+s5uks.
+5sulg
+sul4ga
+sun4de4
+su4nis
+supe4
+supe5s
+su4pr
+4surb
+5sus.
+sus4aa
+su4ses
+s5uss.
+sus4ti
+su4sun
+sut4r
+sut4ü
+4suug
+suu4ra
+suusa3
2s1v
+svus4t
1sõ
-2s1õh
+5sõda
+sõ4de
+4s3õh
+3sõid
+4sõie
2s1õig
-s1õ2li
-2s1õ2p
+2s5õis
+3sõit
+sõ2l
+2s3õli
+3sõlm
+3sõn
+2s1õp
+5sõr
+sõsa4
+2s3õu
1sö
-2s1ö2k
+4söd
+sö2k
2sön
1sä
+4säk
+4säm
1sü
-2sü2h
-2sülek
-s1š
+4süa
+5süd
+5süg
+2süh
+s3ühi
+2sük
+s3üks
+sü4la
+sül5di
+sü3lem
+4sülo
+sü4ra
+3süs
+3süü
+4sž
1ta
-2taad
-taa2r1e
-2tabii
-2tahi.
-2t1aine
+3ta.
+3taat.
+2tabi
+4t3aed
+t3aine
+4tais
+4ta4ko
+t2al
+4ta4laj
+ta4lev
+tal4las
ta3lu
-2tatis
-t1b
-2t3d2
-1te
-te1al
-te1an
-te1a2s
-te1a2va
-teis2t
-te1k2l
-te1s2p
-t1f
-t1g
+ta4lus
+3tam
+5tama
+4tanda
+ta4ot
+ta4pla
+ta4pr
+4ta4ret
+4tarm
+2tart
+ta4se4r
+ta4ses
+ta4set
+ta4sis
+ta4sü
+2taut
+3tav
+ta4vaj
+2t1b4
+2td2
+1t2e
+te4aa
+tea4g
+tea4h
+te3an
+te5as
+3tee
+tee5lu
+te4et
+te3hi
+tehi4s
+te3kl
+tek4r
+tek4v
+tel4ke
+te4lok
+te3lu.
+4tepiv
+tep4l
+2tepp
+3ter
+5ter.
+te5r4a
+terd4
+4terg
+ters4
+tes4a
+te4sin
+tes4k
+2t1f
+4t1g4
2t1h
-1ti
-ti1aj
-ti1al
-ti1as
-ti1e2
-ti1os
+thõl4
+3ti
+tia2
+ti3e
+tii2k
+tii4ma
+tii4sa
+tii4ve
+tik4o
+ti3k4r
+tik4vi
+4tilm
+5tima
+4tinf
+tin4ga
+ti4sai
+tisa4v
+ti4sik
+titee4
2t1j
-2t1k
-tk2la
-tk2r
-2t1l
-tlu2sa
+2t1k2
+t3kl
+t3kr
+2t1l4
+tlu4
2t1m
-tmi2s1
+tmika4
+tmis3
2t1n
-1to
-to1el
-to1in
-2t1o2sa.
-2t1p2
-t1r
-t2rall
-1t2ran
-1traum
-3treim
-1t2rep
-1triip
-1t2ruu
-1t2rü
+3t2o
+4to4da
+toen4
+tog6
+4toks.
+toksi5k
+to4lek
+to4lu.
+to4lum
+tonis4
+to4o
+too4no
+too4pe
+to4rau
+tos4p
+tost4
+2t3p4
+2t1r
+t4rad
+t2raf
+3trafo
+t4rahh
+5trall
+t2ran
+3trans
+t4rate
+5traum
+t2re
+3treen
+t4rei
+5treim
+3trep
+t3rig
+5triib
+5triip
+5trikoo.
+tri4pl
+t4ross
+3trumm
+5t4rup
+3t2ruu
+3t2rü
+4trüü
2t1s
-t3sae
-tsea2
-1tseh
+t3s2a
+ts4aa
+tsa5is
+t4saju
+tsa4lan
3tsehh
-t2sp2
-t2st
+tse3la
+5tsellu
+5tsemen
+4tsena
+5tsensu
+tsig4
+5tsiitsi
+t4sink
+5tsiste
+ts4laa
+t2soo
+t4sor
+tsp4
+t4suss
2t1t
-tte1e
-1tu
-tu1ar
-tua2s
-tu1kr
-tu2sa
-tus1a2j
-tusk2
-tuss2
+t4tad
+ttee2
+ttes2
+t5tsem
+3tu
+4tuim
+tu4raj
+tus1a
+tu4s5ee
+tu2si
+tus3s
+4t5uss.
tus3t2
-tu2sõ
-tu2sül
+tu5su
+tu4sä4
+tusü4
+4tutop
+4tuud
+tuule5
2t1v
1tõ
-2tõmbl
+5tõb
+2tõi
+tõ4l
+4tõ4n
+4tõp
+2t5õun
1tö
-töök2
-töö1p2
+4töe
+4tök
+töö5k
+töö3p
1tä
-täi2s1
+täh4t3a
+tä5ke
+4täm
1tü
-2t1ü2hen
-t1š
-1tšek
-1tšem
-uaa2l
+tü5he.
+tü3hi
+2t1ž
+t2že
+5tžek
+3tžem
+uaa4
+u3aast
+ua2b
+u5abi
u1ae
-u1ain
-u1akt
-ua2la
-u1alu
+ua4he
+uai4k
+u3ain
+ua2ja
+u3akt
+ua2l
+u3all
+u3amet
u1an
-ua1o
-ua1p2
-ua2se
-ua2si.
-u1ast
+ua4nu
+u5apar
+ua2re
+ua5ree
+u5art
+ua2s
+u3ast
u1au
-ua2val
+uau4d
+ua2v
+u5avald
u1b
-u1do
-u3d2raa
-u1eh
-u1ei
-u1eks
-ue2l
-u1elu
+u4dalu
+u4deh
+udeo4
+udo4r
+u5eal
+u3eel
+u3eks
+ue2ma
+ueo4
+ue4r
u1f
u1g
-u1i2ga.
-u1i2h
-ui2kl
-u1ilm
-1uim.
+u4gi4d
+ug2ra
+u5graa
+u4gü
+uh4tem
+uh4ter
+uh4tin
+uh4tis
+uidu5
+ui2ga
+ui4h
+u3iha
+u3ilm
+5uim.
+uina2
+uinas5
+ui4si
+3uisut
+uite4h
+ui4to
+ui4vala
+ui4vel
+ui4vo
u1j
-u2jumi
-u1kraa
-u1kruv
-u2l1ol
+u5ja
+u4juj
+u4jum
+3ujumi
+u1k
+ukaa4s
+ukii4g
+ukki5
+ukop4
+u3kraa
+u5kro
+uku4sa
+uk4vi
+ul4a
+ul4deh
+uldi4
+ul4kr
+ul4len
+ul4lui
+ultra5
u3lu
-u1m
-unaa2
-u1o
-uo2l
-uo2m
-uo2p
-uo2s
+uluo4
+4u1m
+umaf4
+u4mau
+5umbroh
+umet4
+umf4
+umia4
+umit4
+um5p4r
+unaa4
+unaal5
+un4dak
+un4dan
+un4das
+un4do
+u4ni.
+u1o2
+uo4h
+u2or
+u3org
u1p
-u2pl
-u3p2la
-up2r
-uraa2l
-ur1auk
-1urb.
-urp2
-us1abi
-us1ais
-us1akt
-usa2l
-us1ala
-us1a2p
-us1are
-us1arm
-u2sasu
-use1an
-u2s1iso
-usk2r
-us1oh
-us1o2l
-usp2
-u1s2por
-1u2suli
-us1üh
-u2s1ük
+u3pla
+up3le
+uppe4
+up4pis
+uraa4l
+u4rag
+ura4ju
+u4rala
+u4rap
+ur5auk
+ura4va
+3urb.
+urde3
+urea4
+u4reos
+ures4k
+u4rett
+urgas4
+5urge.
+u4ri4met
+u4rini
+uris4k
+urka4v
+uro4r
+u4rulu
+u2sa2
+u5sa.
+usad4
+u4sae
+u4salu
+us5aste
+u3sea
+useg4
+us5elek
+u4sett
+u3setu
+u5sev
+us4fä
+us5g
+u4si4d
+usi4g
+u4si4h
+us5ind
+usi4va
+us3kr
+u2so
+us5o2h
+us3ole
+uso4r
+us3p4
+u3s4por
+usui4
+3usuli
+u4suss
+u2sõ
+u2sü
+us3üh
u1t
-u2tri
-utus1a
-u2tš
-1uuen
-uule1
-u1uu
+ut4kl
+utos2
+utot4
+ut4ru
+ut4so
+utt4r
+utu4s
+utü4h
+uu5al
+4uud
+uu4du.
+uu4kak
+uuk5ri
+uu4mal
+uu4mis
+uu4pü
+uu4ran
+uu4ras
+uu4rau
+uu4rav
+uu3sa
+uusa3k
+uus4ke
+u3uss.
+uu4sul
+4uut
+uu4tas
+uu4tis
+uu4tüh
+u5uuri
u1v
+u4vau
u1õ2
-u1ö
-u1ä2
+uä2
+u3är
u1ü2
-u1ž
-1va
-va1a2j
-2v1ain
-va1kr
-va1p2l
+už4l
+vaa4re4
+va4as
+4vabi
+vae4r
+vag4
+va5he
+4vaia
+4v3ain
+vak4v
+va4la.
+va4lai
+4valdi
+val4ga4
+va4lü
+vana5i
+vane2
+4vanku
+van4ta
+van4te
+vap4r
+v4ar
+4varm
+var4p
2vart
-vas2k1a
+4varuh
+4varve
+va4sas
+vas4k
+vast4r
+vat4r
+4vatud
+vau4d
+vav4
+4vb
2v1d
-1ve
-vee1a
-vee1k
-vee1sp
-2v3g2
+3ve
+vee3a
+vee3k
+vee5la
+vee3sp
+4vehi
+vei4sa
+ve4ol
+veot4
+ve4rah
+ves4p
+2vf
+2vg4
2v1h
-1vi
-2viitu
+3vi
+via2
+vid4
+4videa
+vip4
+vi3pl
+vir4k
+vi4sak
+vis4ko4d
2v1j
2v1k
2v1l
2v1m
2v1n
-2v1p2
+voo5lu
+2v5p
2v1r
2v1s
-2v1t
+2v1t2
+v3tr
+vu4sa
+vu4su4
2v1v
-1zo
+3võ
+4võig
+4võ4li
+4võm
+võr4k5
+3vä
+vää4re4
+vää4ru
+3zo
+zook4
+zoos4
õ1b
-õbe1
+õbe3
+õ1d
+õea4
+õe4lan
+õe3lu
+õet2
+õeu4
õ1g
-õhi1
-õhie2
-1õigu
-õi2kl
+õh4vu
+õi4a
+õi4b
+õie5k
+3õiel
+3õigu
+õi4ko
+õise4
+õi4su4
õ1j
-õja1
-1õmbl
-õ2petu
-õra2s1
-õu1a2r
-õude1
-1õun.
-õ1v
-ö1a2
+õk4kõ
+õl2d
+õ4lim
+õ4lit
+õl4mad
+3õmbl
+õnet4s
+õ2p
+õ3pa
+õpi5e
+õp2pa
+4õp3r
+õranda5
+õra4s
+õr4da
+õr4gaa
+õr4gar
+õr4go
+4õs
+õs4a
+õ4tü4
+õude3
+õ1v4
+õõ5p
+õõre4
+õõ4rel
+õõ4ta
+öa2
ö1b
ö1d
-ö2dee
-ö1g
+5ö2dee
+ödi4k
+3öeld
+öep4
+öet4r
+ö1g4
ö1h
+öi4a
+öi4g
+öi4s
ö1j
ö1k
-1ö2kon
+ö2kon
+3ökono
+ök4v
ö1l
-öli2s1
+öli2s
+ölis5a
ö1m
-ö2p1au
-ö1p2la
+öo2
+ö2p3au
+öp4lu
+ö4raa
+ö4rau
+ör4da
+ör4dell
+ör4e
+ö4ri4l
+ö4ro4
+ö4rä
+ö4rül
+ös4tii
+ö4to4
+ö4tü4
ö1v
-ö1õ
-öö1e
-öö1i
-öö1o2
+ö3õ
+öö3a
+öö3e4
+öö5i
+3öölan
+öö3o
+ööt4r
+öü4
+äa4
ä1b
+äbus5
+äbut4
ä1d
-äe1a
-äe1o2
+äe3a4
+äe1o
ä1g
-ä1j
-1ä2ke.
-äli2sa
-ära1a
-ära1o
+äga4ri
+ähe5a
+äidi4s
+äike3
+äi4lo
+äi4lu
+äi2s
+äisa4
+äi4sõ
+äi4tar
+ä3j
+ä2ke
+3äke.
+ä5ker
+ä4kõ
+äli2s
+äl4ko
+5ämbl
+ä4nah
+än4deo
+änet4
+än4to4
+äok4
+ä4ra5a
+ära3o4
+ä4rar
+äre4lis
+äret4
+ärge4l
+ärii4
+äri4kl
+äri4sel
+ä4riste
+är4kar
+ä4ro
+5ärrit
+är4ta
+är2va
+ä4rõ
+äs4ko
+äs4nai
+äs4p
+äs4san
+äs4so
+ät4ri
+äu4d
+ä1v
+ävee4
+ää4kin
+ääo4
+ää4rase
+5ääris.
+üaa4
ü1b
+üdame5
ü1g
-ühi1a
-1ühik
-ü2hik.
+ü2h
+ühe5i4
+1ühen
+3ühik.
+ü3hit
ü1j
-ü2lek
-1üleka
-1ü2les
-üle2se
-1ü2liko
-ü1so
-1ütle
+ükan4
+ük4kas
+ük3l
+ül2d
+üld5a2
+ü2le
+3ülek
+ü5lel
+üle4mas
+1üles
+ülesä4
+ül4gav
+ül4gee
+ü4lih
+ülii4
+3üliko
+ü4liõ
+ül5kl
+ül5la
+ül4mei
+ülo4r
+ülp4
+ült4
+üma4rak
+üma4ru
+ümi4ko
+ü5ne
+üni4s
+üot4
+üp3l
+üp5p4
+üp3r
+üpsu4
+ürd4
+ürik4
+üs4o
+üs4pr
+üs4tal
+üs4tas
+üta4r
+ütee4l
+5ütlev
+ü4t3r
+üt4ru
ü1v
-üügi1
-üü2l1a2
-1ša
-1še
-2šek
-2šem
-1ši
-š1k
-š1m
-š1p
-1šö
-1šü
+ü4ü
+üü2l3a2
+üü4le
+üü4lo
+üü4pe
1ža
+4žb
+1že
+5žee
+5žer
+4žf
1ži
-1žo
-}
-
-% end pattern data
-
+4žj
+4žk
+4žl
+4žm
+4žn
+3žo
+4žp
+4žt
+5žö
+5žü
+2žž
+3ša
+4šak
+4šau
+1še
+3š4i
+šis4k
+4šk
+5šo
+4št
+3šu4} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-et.rme b/Master/texmf-dist/tex/context/patterns/lang-et.rme
index 073de4c5464..366ddcb9089 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-et.rme
+++ b/Master/texmf-dist/tex/context/patterns/lang-et.rme
@@ -1,30 +1,80 @@
-% comment copied from public hyphenation files}
-
-% source of data: ethyph.tex
-
-% begin original comment
-
-
-% preamble of file c:/data/develop/tex/texmf/tex/generic/hyphen/ethyph.tex
-%%% ====================================================================
-%%% @LaTeX-file{
-%%% author = "Enn Saar",
-%%% version = "1.0",
-%%% date = "1992-03-18"
-%%% time = ""
-%%% filename = "ethyphen.tex",
-%%% address = ""
-%%% telephone = "",
-%%% FAX = "",
-%%% checksum = "",
-%%% email = "saar@fuug.fi",
-%%% codetable = "DC/EC",
-%%% keywords = "",
-%%% supported = "yes",
-%%% docstring = "\lefthyphenmin=?\righthyphenmin=?"
-%%% }
-%%% ====================================================================
-\input cathyph.tex
-
-% end original comment
+% generated by mtxrun --script pattern --convert
+% This file is part of hyph-utf8 package and resulted from
+% semi-manual conversions of hyphenation patterns into UTF-8 in June 2008.
+%
+% Source: eehyph.tex (2004-04-13)
+% Author: E. Saar
+%
+% The above mentioned file should become obsolete,
+% and the author of the original file should preferaby modify this file instead.
+%
+% Modificatios were needed in order to support native UTF-8 engines,
+% but functionality (hopefully) didn't change in any way, at least not intentionally.
+% This file is no longer stand-alone; at least for 8-bit engines
+% you probably want to use loadhyph-foo.tex (which will load this file) instead.
+%
+% Modifications were done by Jonathan Kew, Mojca Miklavec & Arthur Reutenauer
+% with help & support from:
+% - Karl Berry, who gave us free hands and all resources
+% - Taco Hoekwater, with useful macros
+% - Hans Hagen, who did the unicodifisation of patterns already long before
+% and helped with testing, suggestions and bug reports
+% - Norbert Preining, who tested & integrated patterns into TeX Live
+%
+% However, the "copyright/copyleft" owner of patterns remains the original author.
+%
+% The copyright statement of this file is thus:
+%
+% Do with this file whatever needs to be done in future for the sake of
+% "a better world" as long as you respect the copyright of original file.
+% If you're the original author of patterns or taking over a new revolution,
+% plese remove all of the TUG comments & credits that we added here -
+% you are the Queen / the King, we are only the servants.
+%
+% If you want to change this file, rather than uploading directly to CTAN,
+% we would be grateful if you could send it to us (http://tug.org/tex-hyphen)
+% or ask for credentials for SVN repository and commit it yourself;
+% we will then upload the whole "package" to CTAN.
+%
+% Before a new "pattern-revolution" starts,
+% please try to follow some guidelines if possible:
+%
+% - \lccode is *forbidden*, and I really mean it
+% - all the patterns should be in UTF-8
+% - the only "allowed" TeX commands in this file are: \patterns, \hyphenation,
+% and if you really cannot do without, also \input and \message
+% - in particular, please no \catcode or \lccode changes,
+% they belong to loadhyph-foo.tex,
+% and no \lefthyphenmin and \righthyphenmin,
+% they have no influence here and belong elsewhere
+% - \begingroup and/or \endinput is not needed
+% - feel free to do whatever you want inside comments
+%
+% We know that TeX is extremely powerful, but give a stupid parser
+% at least a chance to read your patterns.
+%
+% For more unformation see
+%
+% http://tug.org/tex-hyphen
+%
+%------------------------------------------------------------------------------
+%
+% Estonian hyphenation patterns
+% Copyright 2003 E. Saar
+%
+% This work may be distributed and/or modified under the conditions
+% of the LaTeX Project Public License, either version 1.3 of this
+% license or (at your option) any later version. The latest version
+% of this license is in http://www.latex-project.org/lppl.txt and
+% version 1.3 or later is part of all distributions of LaTeX
+% version 2003/12/01 or later.
+%
+% This work has the LPPL maintenance status "author-maintained".
+% This work consists of this file only (eehyph.tex).
+%
+% The patterns were generated long ago by applying patgen to
+% an Estonian dictionary; a few patterns were added later manually
+% to prohibit aa-bits type cases.
+% Declare the special characters
+% \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-eu.hyp b/Master/texmf-dist/tex/context/patterns/lang-eu.hyp
new file mode 100644
index 00000000000..0502086ac58
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/lang-eu.hyp
@@ -0,0 +1,8 @@
+% generated by mtxrun --script pattern --convert
+
+% for comment and copyright, see ./lang-eu.rme
+
+% used:
+
+\hyphenation{
+} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-eu.pat b/Master/texmf-dist/tex/context/patterns/lang-eu.pat
new file mode 100644
index 00000000000..97d52056304
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/lang-eu.pat
@@ -0,0 +1,199 @@
+% generated by mtxrun --script pattern --convert
+
+% for comment and copyright, see ./lang-eu.rme
+
+% used: a b c d e f g i j k l m n o p q r s t u v w x y z ñ
+
+\patterns{
+1ba
+1be
+1bo
+1bi
+1bu
+1ca
+1ce
+1co
+1ci
+1cu
+1da
+1de
+1do
+1di
+1du
+1fa
+1fe
+1fo
+1fi
+1fu
+1ga
+1ge
+1go
+1gi
+1gu
+1ja
+1je
+1jo
+1ji
+1ju
+1ka
+1ke
+1ko
+1ki
+1ku
+1la
+1le
+1lo
+1li
+1lu
+1ma
+1me
+1mo
+1mi
+1mu
+1na
+1ne
+1no
+1ni
+1nu
+1ña
+1ñe
+1ño
+1ñi
+1ñu
+1pa
+1pe
+1po
+1pi
+1pu
+1qa
+1qe
+1qo
+1qi
+1qu
+1ra
+1re
+1ro
+1ri
+1ru
+1sa
+1se
+1so
+1si
+1su
+1ta
+1te
+1to
+1ti
+1tu
+1va
+1ve
+1vo
+1vi
+1vu
+1wa
+1we
+1wo
+1wi
+1wu
+1xa
+1xe
+1xo
+1xi
+1xu
+1ya
+1ye
+1yo
+1yi
+1yu
+1za
+1ze
+1zo
+1zi
+1zu
+1l2la
+1l2le
+1l2lo
+1l2li
+1l2lu
+1r2ra
+1r2re
+1r2ro
+1r2ri
+1r2ru
+1t2sa
+1t2se
+1t2so
+1t2si
+1t2su
+1t2xa
+1t2xe
+1t2xo
+1t2xi
+1t2xu
+1t2za
+1t2ze
+1t2zo
+1t2zi
+1t2zu
+1b2la
+1b2le
+1b2lo
+1b2li
+1b2lu
+1b2ra
+1b2re
+1b2ro
+1b2ri
+1b2ru
+1d2ra
+1d2re
+1d2ro
+1d2ri
+1d2ru
+1f2la
+1f2le
+1f2lo
+1f2li
+1f2lu
+1f2ra
+1f2re
+1f2ro
+1f2ri
+1f2ru
+1g2la
+1g2le
+1g2lo
+1g2li
+1g2lu
+1g2ra
+1g2re
+1g2ro
+1g2ri
+1g2ru
+1k2la
+1k2le
+1k2lo
+1k2li
+1k2lu
+1k2ra
+1k2re
+1k2ro
+1k2ri
+1k2ru
+1p2la
+1p2le
+1p2lo
+1p2li
+1p2lu
+1p2ra
+1p2re
+1p2ro
+1p2ri
+1p2ru
+1t2ra
+1t2re
+1t2ro
+1t2ri
+1t2ru
+su2b2r
+su2b2l} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-eu.rme b/Master/texmf-dist/tex/context/patterns/lang-eu.rme
new file mode 100644
index 00000000000..9ad59af7dd8
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/lang-eu.rme
@@ -0,0 +1,45 @@
+% generated by mtxrun --script pattern --convert
+
+% Hyphenation patterns for Basque.
+%
+% This file has first been written by Juan M. Aguirregabiria
+% (juanmari.aguirregabiria@ehu.es) on February 1997 based on the
+% shyphen.sh script that generates the Spanish patterns as compiled
+% by Julio Sanchez (jsanchez@gmv.es) on September 1991.
+%
+% In June 2008 the generating script has been rewritten into ruby and
+% adapted for native UTF-8 TeX engines. Patterns became part of hyph-utf8
+% package and were renamed from bahyph.tex into hyph-eu.tex.
+% Functionality should not change apart from adding ñ by default.
+%
+% The original Copyright followed and applied also to precessor of this file
+% whose last version will be always available by anonymous ftp
+% from tp.lc.ehu.es or by poynting your Web browser to
+% http://tp.lc.ehu.es/jma/basque.html
+%
+% For more information about the new UTF-8 hyphenation patterns and
+% links to this file see
+% http://www.tug.org/tex-hyphen/
+%
+% COPYRIGHT NOTICE
+%
+% These patterns and the generating script are Copyright (c) JMA 1997, 2008
+% These patterns are made public in the hope that they will benefit others.
+% You can use this software for any purpose.
+% However, this is given for free and WITHOUT ANY WARRANTY.
+%
+% You are kindly requested to send any changes to the author.
+% If you change the generating script, you must include code
+% in it such that any output is clearly labeled as generated
+% by a modified script.
+%
+% END OF COPYRIGHT NOTICE
+%
+% Open vowels: a e o
+% Closed vowels: i u
+% Consonants: b c d f g j k l m n ñ p q r s t v w x y z
+%
+% Some of the patterns below represent combinations that never
+% happen in Basque. Would they happen, they would be hyphenated
+% according to the rules.
+% \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-fi.hyp b/Master/texmf-dist/tex/context/patterns/lang-fi.hyp
index 2caf8cc2522..0b4c40422c3 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-fi.hyp
+++ b/Master/texmf-dist/tex/context/patterns/lang-fi.hyp
@@ -1,45 +1,8 @@
-% context hyphenation file, see lang-all.xml for original comment
+% generated by mtxrun --script pattern --convert
-% source of data: fihyph.tex
+% for comment and copyright, see ./lang-fi.rme
-% begin description data
-
-% <!-- copied from lang-all.xml
-%
-% <?xml version='1.0' standalone='yes'?>
-%
-% <description language='fi'>
-% <sourcefile>fihyph.tex</sourcefile>
-% <title>TeX hyphenation patterns for the Finnish language</title>
-% <copyright>
-% <year>1986</year>
-% <owner>Kauko Saarinen</owner>
-% <comment>First release</comment>
-% </copyright>
-% <copyright>
-% <year>1988</year>
-% <owner>Fred Karlsson</owner>
-% <comment>Completely rewritten patterns</comment>
-% </copyright>
-% <copyright>
-% <year>1989</year>
-% <owner>Fred Karlsson</owner>
-% <comment>Some vowel tripples added</comment>
-% </copyright>
-% <copyright>
-% <year>1995</year>
-% <owner>Thomas Esser</owner>
-% <comment>Added \uccode and \lccode </comment>
-% </copyright>
-% </description>
-%
-% end of copy -->
-
-% end description data
-
-% begin hyphenation data
-
-\hyphenation {}
-
-% end hyphenation data
+% used:
+\hyphenation{
+} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-fi.pat b/Master/texmf-dist/tex/context/patterns/lang-fi.pat
index d9ccdf2d939..f7e6a296d15 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-fi.pat
+++ b/Master/texmf-dist/tex/context/patterns/lang-fi.pat
@@ -1,45 +1,10 @@
-% context pattern file, see lang-all.xml for original comment
+% generated by mtxrun --script pattern --convert
-% source of data: fihyph.tex
+% for comment and copyright, see ./lang-fi.rme
-% begin description data
+% used: a b c d e f g h i j k l m n o p q r s t u v y ä ö
-% <!-- copied from lang-all.xml
-%
-% <?xml version='1.0' standalone='yes'?>
-%
-% <description language='fi'>
-% <sourcefile>fihyph.tex</sourcefile>
-% <title>TeX hyphenation patterns for the Finnish language</title>
-% <copyright>
-% <year>1986</year>
-% <owner>Kauko Saarinen</owner>
-% <comment>First release</comment>
-% </copyright>
-% <copyright>
-% <year>1988</year>
-% <owner>Fred Karlsson</owner>
-% <comment>Completely rewritten patterns</comment>
-% </copyright>
-% <copyright>
-% <year>1989</year>
-% <owner>Fred Karlsson</owner>
-% <comment>Some vowel tripples added</comment>
-% </copyright>
-% <copyright>
-% <year>1995</year>
-% <owner>Thomas Esser</owner>
-% <comment>Added \uccode and \lccode </comment>
-% </copyright>
-% </description>
-%
-% end of copy -->
-
-% end description data
-
-% begin pattern data
-
-\patterns {
+\patterns{
1ba
1be
1bi
@@ -325,8 +290,4 @@ q2v
1q2vi
sc2h
ts2h
-ch2r
-}
-
-% end pattern data
-
+ch2r} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-fi.rme b/Master/texmf-dist/tex/context/patterns/lang-fi.rme
new file mode 100644
index 00000000000..e41b98a9e4a
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/lang-fi.rme
@@ -0,0 +1,78 @@
+% generated by mtxrun --script pattern --convert
+
+% This file is part of hyph-utf8 package and resulted from
+% semi-manual conversions of hyphenation patterns into UTF-8 in June 2008.
+%
+% Source: fihyph.tex (yyyy-mm-dd)
+% Author: Kauko Saarinen
+%
+% The above mentioned file should become obsolete,
+% and the author of the original file should preferaby modify this file instead.
+%
+% Modificatios were needed in order to support native UTF-8 engines,
+% but functionality (hopefully) didn't change in any way, at least not intentionally.
+% This file is no longer stand-alone; at least for 8-bit engines
+% you probably want to use loadhyph-foo.tex (which will load this file) instead.
+%
+% Modifications were done by Jonathan Kew, Mojca Miklavec & Arthur Reutenauer
+% with help & support from:
+% - Karl Berry, who gave us free hands and all resources
+% - Taco Hoekwater, with useful macros
+% - Hans Hagen, who did the unicodifisation of patterns already long before
+% and helped with testing, suggestions and bug reports
+% - Norbert Preining, who tested & integrated patterns into TeX Live
+%
+% However, the "copyright/copyleft" owner of patterns remains the original author.
+%
+% The copyright statement of this file is thus:
+%
+% Do with this file whatever needs to be done in future for the sake of
+% "a better world" as long as you respect the copyright of original file.
+% If you're the original author of patterns or taking over a new revolution,
+% plese remove all of the TUG comments & credits that we added here -
+% you are the Queen / the King, we are only the servants.
+%
+% If you want to change this file, rather than uploading directly to CTAN,
+% we would be grateful if you could send it to us (http://tug.org/tex-hyphen)
+% or ask for credentials for SVN repository and commit it yourself;
+% we will then upload the whole "package" to CTAN.
+%
+% Before a new "pattern-revolution" starts,
+% please try to follow some guidelines if possible:
+%
+% - \lccode is *forbidden*, and I really mean it
+% - all the patterns should be in UTF-8
+% - the only "allowed" TeX commands in this file are: \patterns, \hyphenation,
+% and if you really cannot do without, also \input and \message
+% - in particular, please no \catcode or \lccode changes,
+% they belong to loadhyph-foo.tex,
+% and no \lefthyphenmin and \righthyphenmin,
+% they have no influence here and belong elsewhere
+% - \begingroup and/or \endinput is not needed
+% - feel free to do whatever you want inside comments
+%
+% We know that TeX is extremely powerful, but give a stupid parser
+% at least a chance to read your patterns.
+%
+% For more unformation see
+%
+% http://tug.org/tex-hyphen
+%
+%------------------------------------------------------------------------------
+%
+% -----> Finnish hyphenation patterns for MLPCTeX <------
+% First release January -86 by Kauko Saarinen,
+% Computing Centre, University of Jyvaskyla, Finland
+%
+% Completely rewritten January -88. The new patterns make
+% much less mistakes with foreign and compound words.
+% The article "Automatic Hyphenation of Finnish"
+% by Professor Fred Karlsson is also referred
+% ---------------------------------------------------------
+%
+% 8th March -89 (vers. 2.2), some vowel triples by Fred Karlsson added.
+% 9th January - 95: added \uccode and \lccode by Thomas Esser
+%
+% ********* Patterns may be freely distributed **********
+%
+% \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-fr.hyp b/Master/texmf-dist/tex/context/patterns/lang-fr.hyp
index 7afc597f07e..d13d72d9c99 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-fr.hyp
+++ b/Master/texmf-dist/tex/context/patterns/lang-fr.hyp
@@ -1,34 +1,8 @@
-% context hyphenation file, see lang-all.xml for original comment
+% generated by mtxrun --script pattern --convert
-% source of data: frhyph.tex
+% for comment and copyright, see ./lang-fr.rme
-% begin description data
-
-% <!-- copied from lang-all.xml
-%
-% <?xml version='1.0' standalone='yes'?>
-%
-% <description language='fr'>
-% <sourcefile>frhyph.tex</sourcefile>
-% <title>TeX hyphenation patterns for the French language</title>
-% <remarks>V2.11</remarks>
-% <copyright>
-% <owner>Jacques Desarmenien, Norman Buckle, Michael Ferguson, Justin Bur, Daniel Flipo and Bernard Gaulle</owner>
-% </copyright>
-% <copyright>
-% <year>1996</year>
-% <owner>Bernd Raichle/DANTE e.V.</owner>
-% <comment>Adaption for TeX 3.x and MLTeX 3.x (2.x)</comment>
-% </copyright>
-% </description>
-%
-% end of copy -->
-
-% end description data
-
-% begin hyphenation data
-
-\hyphenation {}
-
-% end hyphenation data
+% used:
+\hyphenation{
+} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-fr.pat b/Master/texmf-dist/tex/context/patterns/lang-fr.pat
index c7efff40b35..44f9095fa74 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-fr.pat
+++ b/Master/texmf-dist/tex/context/patterns/lang-fr.pat
@@ -1,69 +1,31 @@
-% context pattern file, see lang-all.xml for original comment
+% generated by mtxrun --script pattern --convert
-% source of data: frhyph.tex
+% for comment and copyright, see ./lang-fr.rme
-% begin description data
+% used: a b c d e f g h i j k l m n o p q r s t u v w x y z à â ç è é ê î ï ô û œ
-% <!-- copied from lang-all.xml
-%
-% <?xml version='1.0' standalone='yes'?>
-%
-% <description language='fr'>
-% <sourcefile>frhyph.tex</sourcefile>
-% <title>TeX hyphenation patterns for the French language</title>
-% <remarks>V2.11</remarks>
-% <copyright>
-% <owner>Jacques Desarmenien, Norman Buckle, Michael Ferguson, Justin Bur, Daniel Flipo and Bernard Gaulle</owner>
-% </copyright>
-% <copyright>
-% <year>1996</year>
-% <owner>Bernd Raichle/DANTE e.V.</owner>
-% <comment>Adaption for TeX 3.x and MLTeX 3.x (2.x)</comment>
-% </copyright>
-% </description>
-%
-% end of copy -->
-
-% end description data
-
-% begin pattern data
-
-\patterns {
-2'2
+\patterns{
.a4
-'a4
.â4
-'â4
ab2h
.ab3réa
-'ab3réa
ad2h
a1è2dre
.ae3s4ch
-'ae3s4ch
1alcool
a2l1algi
.amino1a2c
-'amino1a2c
.ana3s4tr
-'ana3s4tr
1a2nesthési
.anti1a2
-'anti1a2
.anti1e2
-'anti1e2
.anti1é2
.anti2enne
-'anti2enne
-'anti1é2
.anti1s2
-'anti1s2
.apo2s3ta
-'apo2s3ta
apo2s3tr
archi1é2pis
.as2ta
-'as2ta
a2s3tro
1ba
1bâ
@@ -171,8 +133,7 @@ co1assoc
co1assur
co1au
co1ax
-1cö0
-1cöOT
+1cœ
co1é2
co1ef
co1en
@@ -192,7 +153,6 @@ co2nurb
1cû
1cy
.cul4
-1d'
1da
1dâ
.dacryo1a2
@@ -238,8 +198,7 @@ pru3dent.
.dé3s2i3r
.dé3s2ist
.dé3s2o3dé
-.dé2s1ö0
-.dé2s1öOT
+.dé2s1œ
.dé3s2o3l
.dé3s2o3pil
.dé3s2orm
@@ -277,29 +236,22 @@ d1s2
.dy2s1o2
.dy2s1u2
.e4
-'e4
.ê4
-'ê4
.é4
-'é4
.è4
-'è4
éd2hi
1é2drie
1é2drique
1é2lectr
1é2lément
.en1a2
-'en1a2
1é2nerg
e2n1i2vr
.en1o2
-'en1o2
épi2s3cop
épi3s4cope
e2s3cop
.eu2r1a2
-'eu2r1a2
eu1s2tat
extra1
extra2c
@@ -348,7 +300,6 @@ tan3gent.
rin3gent.
contin3gent.
.ar3gent.
-'ar3gent.
ser3gent.
ter3gent.
résur3gent.
@@ -364,13 +315,10 @@ résur3gent.
4gles.
2glent.
1g2n
-'a2g3nat
.a2g3nat
a2g3nos
co2g3niti
-'i2g3né
.i2g3né
-'i2g3ni
.i2g3ni
.ma2g3nicide
.ma2g3nificat
@@ -399,7 +347,6 @@ g1s2
4gues.
2guent.
.on3guent.
-'on3guent.
1gy
1ha
1hâ
@@ -434,9 +381,7 @@ hypo1o2
hypo1s2
hypo1u2
.i4
-'i4
.î4
-'î4
i1algi
i1arthr
i1è2dre
@@ -481,65 +426,35 @@ uvil4l
xil3l
1informat
.in1a2
-'in1a2
.in2a3nit
-'in2a3nit
.in2augur
-'in2augur
.in1e2
-'in1e2
.in1é2
-'in1é2
.in2effab
-'in2effab
.in2é3lucta
-'in2é3lucta
.in2é3narra
-'in2é3narra
.in2ept
-'in2ept
.in2er
-'in2er
.in2exora
-'in2exora
.in1i2
-'in1i2
.in2i3miti
-'in2i3miti
.in2i3q
-'in2i3q
.in2i3t
-'in2i3t
.in1o2
-'in1o2
.in2o3cul
-'in2o3cul
.in2ond
-'in2ond
.in1s2tab
-'in1s2tab
-'inte4r3
.intera2
-'intera2
.intere2
-'intere2
.interé2
-'interé2
.interi2
-'interi2
.intero2
-'intero2
.inte4r3
.interu2
-'interu2
.inters2
-'inters2
.in1u2
-'in1u2
.in2uit
-'in2uit
.in2u3l
-'in2u3l
io1a2ct
i1oxy
i1s2tat
@@ -698,8 +613,7 @@ tu2ment.
1m2nési
1mo
1mô
-1mö0
-1möOT
+1mœ
.mono1a2
.mono1e2
.mono1é2
@@ -738,8 +652,7 @@ absti3nent.
1nî
1no
1nô
-1nö0
-1nöOT
+1nœ
.no2n1obs
1nu
1nû
@@ -748,8 +661,6 @@ n3s2ats.
n1x
1ny
.o4
-'o4
-'ô4
.ô4
o2b3long
1octet
@@ -767,9 +678,7 @@ o1s2trad
o1s2tratu
o1s2triction
.oua1ou
-'oua1ou
.ovi1s2c
-'ovi1s2c
oxy1a2
1pa
1pâ
@@ -793,7 +702,6 @@ paléo1é2
2pent.
re3pent.
.ar3pent.
-'ar3pent.
ser3pent.
.pen2ta
per3h
@@ -1004,8 +912,7 @@ pré3sent.
1s2lov
1so
1sô
-1sö0
-1söOT
+1sœ
1s2patia
1s2perm
1s2por
@@ -1118,9 +1025,7 @@ t1t2l
tung2s3
1ty
.u4
-'u4
.û4
-'û4
uni1o2v
uni1a2x
u2s3tr
@@ -1159,7 +1064,6 @@ vol2t1amp
1w2r
2xent.
.y4
-'y4
y1asth
y1s2tom
y1algi
@@ -1174,8 +1078,4 @@ privatdo3zent.
1zi
1zo
1zu
-1zy
-}
-
-% end pattern data
-
+1zy} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-fr.rme b/Master/texmf-dist/tex/context/patterns/lang-fr.rme
new file mode 100644
index 00000000000..04967549f55
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/lang-fr.rme
@@ -0,0 +1,106 @@
+% generated by mtxrun --script pattern --convert
+
+% This file is part of hyph-utf8 package and resulted from
+% semi-manual conversions of hyphenation patterns into UTF-8 in June 2008.
+%
+% Source: frhyph.tex <2006-10-20>
+% Author: R. Bastian, D. Flipo, B. Gaulle <cesure-l at gutenberg.eu.org>
+%
+% The above mentioned file should become obsolete,
+% and the author of the original file should preferaby modify this file instead.
+%
+% Modificatios were needed in order to support native UTF-8 engines,
+% but functionality (hopefully) didn't change in any way, at least not intentionally.
+% This file is no longer stand-alone; at least for 8-bit engines
+% you probably want to use loadhyph-foo.tex (which will load this file) instead.
+%
+% Modifications were done by Jonathan Kew, Mojca Miklavec & Arthur Reutenauer
+% with help & support from:
+% - Karl Berry, who gave us free hands and all resources
+% - Taco Hoekwater, with useful macros
+% - Hans Hagen, who did the unicodifisation of patterns already long before
+% and helped with testing, suggestions and bug reports
+% - Norbert Preining, who tested & integrated patterns into TeX Live
+%
+% However, the "copyright/copyleft" owner of patterns remains the original author.
+%
+% The copyright statement of this file is thus:
+%
+% Do with this file whatever needs to be done in future for the sake of
+% "a better world" as long as you respect the copyright of original file.
+% If you're the original author of patterns or taking over a new revolution,
+% plese remove all of the TUG comments & credits that we added here -
+% you are the Queen / the King, we are only the servants.
+%
+% If you want to change this file, rather than uploading directly to CTAN,
+% we would be grateful if you could send it to us (http://tug.org/tex-hyphen)
+% or ask for credentials for SVN repository and commit it yourself;
+% we will then upload the whole "package" to CTAN.
+%
+% Before a new "pattern-revolution" starts,
+% please try to follow some guidelines if possible:
+%
+% - \lccode is *forbidden*, and I really mean it
+% - all the patterns should be in UTF-8
+% - the only "allowed" TeX commands in this file are: \patterns, \hyphenation,
+% and if you really cannot do without, also \input and \message
+% - in particular, please no \catcode or \lccode changes,
+% they belong to loadhyph-foo.tex,
+% and no \lefthyphenmin and \righthyphenmin,
+% they have no influence here and belong elsewhere
+% - \begingroup and/or \endinput is not needed
+% - feel free to do whatever you want inside comments
+%
+% We know that TeX is extremely powerful, but give a stupid parser
+% at least a chance to read your patterns.
+%
+% For more unformation see
+%
+% http://tug.org/tex-hyphen
+%
+%------------------------------------------------------------------------------
+%
+% French hyphenation patterns
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% This file is available for free and can used and redistributed
+% asis for free. Modified versions should have another name.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \message{frhyph.tex - French hyphenation patterns (V2.12) <2002/12/11>}
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% *BEFORE* using this file *PLEASE* run checksum on it: %
+% checksum -v frhyph.tex %
+% to make sure that it hasn't been damaged. %
+% Then if you notice anything wrong in french hyphenation please report to %
+% R. Bastian, D. Flipo, B. Gaulle at the email address: %
+% cesure-l@gutenberg.eu.org %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% checksum = "37208 1458 3078 34821"
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%% The most famous good guys who worked hard to obtain something usable.
+% Jacques Desarmenien, Universite de Strasbourg :
+% - << how to run TeX in a French environment: hyphenation, fonts,
+% typography. >> in Tugboat, 5 (1984) 91-102. and TeX85 conference
+% - << La division par ordinateur des mots francais :
+% application a TeX >> in TSI vol. 5 No 4, 1986 (C) AFCET-
+% Gauthier-Villars
+% Norman Buckle, UQAH (nb; many additions)
+% Michael Ferguson, INRS-Telecommunications (mjf) June 1988
+% Justin Bur, Universite de Montreal (jbb; checked against original list)
+% all patterns including apostrophe missing from nb list
+% after that, GUTenberg and specially Daniel Flipo and Bernard Gaulle
+% did their best effort to improve the list of patterns.
+%
+% -----------------------------------------------------------------
+%
+% Adaption of these patterns for
+% - TeX Version 3.x and MLTeX 3.x (2.x)
+% and
+% - all fonts in T1/`Cork' and/or CM/OT1 encoding
+% by Bernd Raichle 1996/08/28 (using ideas from `ghyph31.tex'
+% as of 1994-02-13 maintained by Bernd Raichle).
+% (An adaption for the old MLTeX 2.x exists but can not be
+% tested in lack of an executable.)
+%
+% -----------------------------------------------------------------
+% \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-gb.hyp b/Master/texmf-dist/tex/context/patterns/lang-gb.hyp
new file mode 100644
index 00000000000..b19ea459ad8
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/lang-gb.hyp
@@ -0,0 +1,15 @@
+% generated by mtxrun --script pattern --convert
+
+% for comment and copyright, see ./lang-gb.rme
+
+% used: a c e g h i m n o p r s t u v w y
+
+\hyphenation{
+uni-ver-sity
+uni-ver-sit-ies
+how-ever
+ma-nu-script
+ma-nu-scripts
+re-ci-pro-city
+through-out
+some-thing} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-gb.pat b/Master/texmf-dist/tex/context/patterns/lang-gb.pat
new file mode 100644
index 00000000000..827a7238493
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/lang-gb.pat
@@ -0,0 +1,8534 @@
+% generated by mtxrun --script pattern --convert
+
+% for comment and copyright, see ./lang-gb.rme
+
+% used: a b c d e f g h i j k l m n o p q r s t u v w x y z
+
+\patterns{
+.ab4i
+.ab3ol
+.ace4
+.acet3
+.ach4
+.ac5tiva
+.ad4din
+.ad3e
+.ad3o
+.ae5d
+.aer3i
+.af3f
+.af3t
+.ag4a
+.ag5n
+.air3
+.al5im
+.al1k
+.al3le
+.am5ar
+.ama5te
+.am2i
+.am3pe
+.am3ph
+.an1
+.ana3b
+.ana3s
+.and2
+.an5da
+.an4el
+.an4en
+.an4gl
+.an4on.
+.an3s
+.ant3a
+.an3ti3
+.ant4ic
+.an4t5o
+.any5
+.aph5or
+.ap4i
+.ar5ab
+.ar5ap
+.ar4ci
+.ar5d
+.ar4e
+.ari4
+.ar4ise
+.ar4isi
+.ar5sen
+.art5icl
+.as1
+.as4q
+.as5sib
+.at5ar
+.ateli4
+.at5omise
+.at5omiz
+.at3r
+.at3t
+.au3b
+.au3g4u
+.aur4e5
+.aus5
+.authen5
+.av4
+.av5era
+.bap5tism
+.barri5c
+.bas4i
+.ba5sic
+.be3di
+.be3lo
+.be5r4a
+.be5sm
+.bi4er
+.blaz5o
+.bo3lo
+.bos5om
+.boun4d
+.bov4
+.bra5ch
+.bre2
+.burn5i
+.ca3de
+.ca4gin
+.cam5i
+.cam3o
+.can1
+.can5ta
+.ca5pitu
+.car4i
+.cas5ual
+.ca4ti
+.cen5so
+.cen5tena
+.cent5ri
+.cer4i
+.ch4
+.cit4a
+.clem5e
+.clima5to
+.co5it
+.co3pa
+.cop5ro
+.co3ru
+.co3si
+.co5ter
+.cotyle5
+.cri5tici
+.custom5
+.dav5
+.dea5co
+.de5lec
+.del5eg
+.de3li
+.deli5r
+.de1m
+.de5nit
+.de3no
+.der2
+.de3ra
+.de5res
+.de3ri
+.de5scrib
+.de5serv
+.de5signe
+.de5sir
+.de5sis
+.de5spoi
+.determ5i
+.de3ve
+.de4w
+.di4al.
+.dia3s
+.di4at
+.din4a
+.dio5c
+.do2
+.do4e
+.domest5
+.du4al.
+.du4c
+.dys3
+.east5
+.echin5
+.eco3
+.ec3t
+.ed5em
+.ed4it.
+.ed4iti
+.eg4
+.ei3d
+.ei5r
+.el3ev3
+.el2i
+.elu5s
+.em3b
+.em5in
+.emp4
+.em5py
+.en1
+.en5c
+.en4ded
+.en3s
+.ent2
+.en5ta
+.eos5
+.epi1
+.epi3d
+.er2a
+.er5em5
+.er4i4
+.er4o2
+.eros4
+.erot3
+.er4ri
+.es1
+.escal5
+.es3p
+.es3t
+.etern5
+.eth3e
+.eu1
+.eur4
+.eval3
+.evol5ut
+.ew4
+.ex1
+.ex3a
+.eye3
+.fal4le
+.far4i
+.fec5unda
+.fen4d
+.feoff5
+.fi2
+.fi5lia
+.fil5tr
+.fin5ess
+.fin3g
+.fi5n4it
+.fis4c5
+.fo3c
+.fran5ch
+.fu5ga
+.ga4m
+.gam5et
+.gen4et
+.ge5neti
+.gen5ia
+.ge3ro
+.glor5io
+.gnost4
+.go3no
+.gos3
+.hab2
+.ha5bili
+.hama5
+.han4de
+.hast5i
+.he4i
+.hem5a
+.hi2
+.hi3b
+.ho2l
+.ho5rol
+.hov3
+.hy3lo
+.ico3s
+.idi2
+.ig3
+.ig1n
+.il4i
+.im5b
+.in1
+.in3d
+.in3e2
+.in2i
+.in3o
+.in3t
+.invest5i
+.ir3r
+.is4c
+.is4li
+.is4o
+.iso5m
+.ka5ro
+.ki4e
+.kin3e
+.lab4o
+.la4me
+.lam5enta
+.lan5i
+.lash4e
+.le4m
+.len5ti
+.le2p
+.lep5r
+.les5son
+.le5van
+.librar5
+.lig3a
+.li3o
+.li4ons
+.li4p
+.loc3a
+.lo4gia
+.lo2p
+.loph3
+.lous5i
+.lov5er
+.lub3
+.lyo3
+.mac5u
+.mal5ad5
+.ma5lin
+.mar5ti
+.math5
+.me5lodio
+.ment4
+.men5ta
+.me5rid
+.me5rin
+.met4er
+.mi4e
+.mi3gr
+.min5ue
+.mirk4
+.mis1
+.mi5to
+.mo3bi
+.mo5lec
+.mon3a
+.mor5ti
+.mu3ni
+.mu3si
+.musi5co
+.myth3
+.na5k
+.nari4
+.nast4
+.nas5ti
+.nec3t
+.ni4c
+.ni5tro
+.no4c
+.nom3o
+.nos3t
+.no5tic
+.nucle5
+.obed5
+.ob3el
+.ob3l
+.od4
+.oed5
+.oe5so
+.of5t
+.oi4
+.ol4d
+.ome2
+.om5el
+.on4ce
+.on4e
+.op2i
+.opt5a
+.or1
+.or4at4
+.ora5tori
+.or5che
+.or3d
+.ore4
+.or3eo
+.or4i
+.orner4
+.or2o
+.os1
+.osi4
+.oth5
+.out1
+.ov4
+.pal5i
+.para5dis
+.par5af
+.para5t
+.pa5ta
+.pa4tio
+.pec3t4
+.pecu3
+.ped3e
+.pend4
+.pen5de
+.pep3t
+.peri5n
+.perse5c
+.pe5titi
+.ph2
+.phe5nom
+.phon4i
+.pi2e
+.pi3la
+.plast4
+.plic4
+.plica4
+.plos4
+.po3la
+.po5lite
+.po2p
+.pop5l
+.po5sitio
+.pos5si
+.pro5bat
+.pur4r
+.put4te
+.ra5cem
+.ran5gi
+.re3ca
+.ref5ere
+.re5gar
+.re1i
+.re5lin
+.re1m
+.re5o
+.res5ci
+.re5sen
+.re5spo
+.re5stat
+.re5store
+.re5str
+.re3ta
+.re5u
+.re3w
+.rib5a
+.rin4
+.rit2
+.rol4la
+.ros3a
+.sa2
+.sac5r
+.sal4i
+.sa5lin
+.salt5er
+.sanc5
+.sap5a
+.sa3vo
+.sci3e
+.sea3s
+.sect4
+.sec5to
+.se3gr
+.sen3t
+.se1q
+.ser4ie
+.ses1
+.sev5era
+.sh2
+.si5gno
+.sis3
+.st4
+.stat4o
+.stra5to
+.string5i
+.su5da
+.sulph5a
+.sul3t
+.tact4i
+.tac5tic
+.ta4m
+.tamar5
+.tar5o
+.tect4
+.tel5a
+.tell5e
+.te4m
+.te5ra5t
+.ter4p
+.th4
+.tho4
+.thol4
+.ti2
+.til4
+.ti5ni
+.tit4is
+.tor1
+.tran4c
+.tri5bal
+.tri3d
+.trin4a
+.tri5sti
+.tro4ph
+.troph5o
+.tro4v
+.tular5
+.turb4
+.turi4
+.tu5te
+.tu3to
+.ul4l
+.ulti5mat
+.un5ce
+.un5ch
+.un3d2
+.under5
+.un3e
+.un3g
+.uni3c
+.uni3o
+.un3k4
+.un5s
+.un3t4
+.un5u
+.up1
+.up3l
+.ura4
+.ur5eth
+.ur4o
+.va5led
+.ve2
+.vec5
+.ve5lo
+.vent5il
+.ver4ie
+.ver3n
+.vic5to
+.vi2s
+.vis3i
+.vi5so
+.vo1c
+.vo5lut
+.wine5s
+.xy3l
+.za5r
+a4a
+1ab
+2ab.
+2aba
+ab5are
+abay4
+2abb
+ab5ber
+2abe4
+ab3erd
+ab3err
+a3bet
+ab1ic
+a3bie
+2abin
+4abio
+abi5on
+ab3ita
+ab4itu
+ab3la
+abli4
+4abolic
+ab3om
+ab3ota
+3about
+ab1r
+2abs.
+ab1ul
+abu4lo
+ab3use
+ab3usi
+2aby
+ac2a
+ac5abl
+ac3al
+5acanth
+ac5ard
+a5cat
+ach5al
+a5chini
+ach5ism
+achro4
+ach5ur
+2aci
+a4cic
+aci4ers
+acif4
+4acit
+ack5a
+ac3li
+4aco.
+aco3d
+ac5onr
+4acos
+4acou
+ac1r
+ac3ry
+act5ate
+act5ile
+ac2to
+act5ory
+ac2t5r
+ac5uat
+a5dai
+ada3v
+4adee
+ad5eni
+ad4ha
+ad3ica
+a5dif
+4adil
+adi4op
+adi4p
+adis4i
+a3diti
+3adju
+5admit
+a2do
+4adoe
+4adoi
+ad3ol
+a3dos
+ad1ow
+ad1r
+adram4
+4a2du
+ad3ula
+ad3um
+4ady
+ae5a
+ae4cit
+aeco3
+4aed
+aed5is
+ae5g
+ae3on
+ae5p
+aerody5
+ae4s
+ae5si
+aes3t
+aet4a
+aeth4
+aet4or.
+aev3a
+4af.
+4afe
+af5ta
+a4fu
+ag4ari
+4ageri
+a5ghe
+a5gia
+agi4as
+4agino
+4agl
+agli4
+4ag1n
+ag3oni
+agor4a
+ag5ot
+a2gr
+ag3ri
+agru5
+2ah
+a1h2a
+ahar2
+aha5ra
+a1he
+ah4n
+a5hoo
+2ai2
+4ai.
+ai3a
+a1ic
+aid4a
+aid5er
+aig2
+ai5gu
+ail3er
+ail3o
+aim5er
+ain5ders
+ai5nea
+a3ing.
+ain3i
+ain5o
+aint5er
+air5a
+air5p
+air3s
+ais1i
+a5ism
+2a1j
+a4ju
+2ak
+akel4
+ak5u
+al5abl
+alact4
+a1lae
+al5ais
+ala3ma
+al5ance
+al3at
+a5lav
+alc3at
+al3ch
+ald5ri
+2ale
+a3lec
+aleg4
+ale5ma
+al5ende
+a1leo
+a2let
+al3ibr
+ali4ci
+al5ics
+al1id
+al3if
+5alig
+al1in
+a5lini
+alin5o
+al5ipe
+al5ipot
+4alis.
+4aliu
+4alk
+alk5ie
+al4lab
+al4lag
+alli5an
+allig4
+al4lish
+a5loe
+al3ogr
+a3lom
+a3loo
+al1or
+al4orim
+alos4
+a4lou
+al3ous
+a5low
+al5pen
+al3ph
+al5tati
+al3tie
+alu3b
+al5ued
+al3ues
+a5lumnia
+al1va
+al5ver
+alv5u
+2a1ly4
+a5lyn
+2a2m
+a5mad
+ama4g
+aman5d
+a5marine
+a3mas.
+am1at
+a5m4atic
+am5atu
+am4bin
+3ambu
+am5elo
+a3men
+amen4d
+am3era
+am5erl
+am1i
+ami2c
+am5ica
+amic5r
+3amid
+a3mili
+am5ily
+amini4f
+am5iniz
+aminos4
+a5mis.
+a4mium.
+a3mon
+amor5a
+amort3
+am5ose
+am2p
+am5peri
+amphi5g
+amp3li
+ampo5l
+am3ul
+amyl5
+a2n
+an2a
+a5nadi
+an3ae
+an3age
+ana5k
+an3ali
+an3arc
+a5nast
+an4con
+an3d4at
+and5au
+and5eer
+an5del
+an5dif
+and5ist
+an5dit
+an4doni
+an4ea
+an5eer
+an3ell
+anel5li
+an3eu
+an3gan
+angov4
+an4gur
+4anh
+an3ic
+ani3f
+an5ifo
+4anig
+an5ion
+anis5te
+4anity
+4aniu
+an5no
+4anny
+an1o
+an2oe
+an3oma
+anor3
+an2os
+an5ot
+an2s
+an3sc
+an4sco
+ans3il
+an4sur
+an2t2a
+ant5abl
+an3tal
+an5tam
+an2te
+1anth
+an4thi
+3anthr
+4antic
+an4tie
+an4ting
+ant4iv
+an4tone
+ant4r
+an4tus
+an5tym
+an3ul
+an3um.
+an5ums
+a3nur
+a5nut
+an2y
+an5ya
+a5nyi
+2ao
+aol3i
+5aow
+2ap
+4ap.
+4apa
+a1pac
+ap3al
+ap5aro
+ape5li
+a5peu
+aph5em
+aph3i
+aph5ol
+aphyl3
+ap1i
+ap5icu
+ap3in
+ap4ine
+a5pir
+a3plan
+ap5li
+apo5str
+apo3th
+a2pr
+ap5ron
+4aps
+apt5at
+apu5lar
+a5pun
+a4q
+a5qui
+a2r
+4arabi
+ara5bo
+aract4i
+ara2g
+ar3age
+ar4aged
+ar5agi
+ar3ago
+a3raj
+ar3all
+ara3m
+aran4g
+aran5te
+ar5apa
+ar1at
+a3rau
+ara3v
+ar3ba
+arb5et
+ar4bid
+ar4bl
+arb3li
+ar4bul
+ar5chet
+arch5o
+ar5dina
+ar4done
+ar3en
+aren5d
+ar5ett
+ar3ev5
+ar5gh
+ar3gu
+ar3h
+ar1i
+ar5iff
+ar4ill
+a5ri5net
+ar5ini
+a5rishi
+arm3er
+ar5mit
+ar3nal
+ar3nis
+ar3od
+ar5oid
+aro4mas
+aro4n
+a5roti
+a5rouc
+ar3ox
+arp5ers
+ar4pu
+2arr
+ar2rh
+ar2s
+ars5al
+ar3so
+art5at
+ar2th
+arth4e
+arth3r
+ar5tiz
+2aru
+ar3um
+ar5un4
+a3ryo
+a5ryt
+ar5z
+as1a
+as4af
+asan2
+2asc
+as5con
+as5cot
+as2cr
+as2e
+as3ect
+4ased
+asep4
+ash5ay
+ash5il
+as5ily
+as3in
+a5sio
+a3sit
+as5iv
+ask5er
+aski4
+as4la
+as4lo
+2aso
+as5och
+a4soned
+as5or
+as3ph
+ass2
+assa5gi
+ass5ibl
+as4sil
+assit5
+2asta
+as4tat
+as4tia
+as3tis
+as4tit
+4asto2
+as3tra
+as4tri
+as1u
+as4un
+as5ur
+2a2ta
+4atabi
+a5talis
+atam4
+ata3p
+atar3a
+ata3s
+ata3t4
+at3eau
+at3ech
+at5eer
+a5tel.
+ate5le
+at5enat
+at3ent
+4ater
+at3era
+at5ernis
+at5erniz
+4atess
+at5et
+4a2th
+ath3a
+a3then
+ath5erin
+ath5ero
+ath5ete
+ath3i
+ath3od
+a5thon
+ath5r
+4a3tia
+ati2c
+at5icis
+ati5cit
+at5iciz
+a2tif
+a4t1i4l
+a4tim
+a2t3in
+4atina
+at5ing
+4at4is.
+at1it
+atit3u
+atitud5i
+4atiu
+at4ivi
+a5tiviz
+a2to
+5at5od
+4atog
+2atol
+4aton
+a3too
+a4tops
+a5torian
+a4tory
+atos4
+a5toz
+2a2tr
+at3ra
+a4tre
+5at5ress
+at1ri
+atric5u
+at3ron
+at5rou
+at4tag
+2a2tu
+at1ul
+atu4m
+at3ura
+at3urg
+4a2ty
+2au2
+4au.
+aub5i
+4auc
+au5cer
+auc3o
+aud5er
+audic4
+aul3i
+aul4t
+aul5ted
+ault5er
+ault5i
+au3ma
+aun2
+aun5chie
+aun3d
+aun4dre
+au5reo
+aur4o
+au5ror
+4aus.
+aus5er
+aus5p
+aus4ted
+aut3ar
+aut3er
+au3th
+2av
+av4ab
+ava4g
+av3age
+ava5la
+av5alr
+av5ant
+av5ar
+avas3
+av3end
+av3ern
+av3ig
+aviol4
+av1is
+aw5er.
+aw5ers
+aw1i
+aw5nie
+aw5y
+a4x
+ax2id
+4ay
+ay5la
+ay3m
+ayn4
+ays2
+ay5si
+ay5sta
+ayth4
+2az2
+az3ar
+aze4
+az5ee
+azyg4
+azz4l
+2ba.
+ba5bir
+3back
+baen4
+bag4a
+5bah
+ba4i
+bal3a
+balm5i
+ba5lon
+bal5u
+bam4a
+ban4a
+ba5nan
+b4ane
+5bang
+b4aniti
+b4ans
+ba4p1
+5barb
+bar4d
+bardi4
+bar4n
+ba5rom
+bar3on
+5bars
+1bas
+bas4te
+ba4th4
+3batic
+ba5tio
+bat5on
+battle5
+2b1b2
+b4bata
+b3bli
+b4bone
+b1c2
+bcord4
+2b1d
+bdeac5
+bde4b
+bdi4v
+b2e
+4be.
+3bea
+4beas
+be3ca
+3becu
+2bed
+be3da
+bed5el
+bed2i
+be4do
+be5dra
+be4du
+5bee
+3bef
+be3go
+be5gr
+be3gu
+1bel
+be3la
+2bele
+be3lit
+bel4t
+be3m
+ben4d
+bend5a
+bend5er
+be1ne
+be5nig
+be5nu
+4beo
+be3q
+2bere
+berga5m
+berl4
+5berr
+ber5s
+b5ertin
+be1s2
+2bes.
+be3sl
+be3tr
+be3w
+2b1f
+bfa4
+4b1h
+b4ha
+2bi.
+1bia
+bi4b1
+bicen5
+3b2id
+bid5i
+b4ie
+bi4ers
+bif4
+bi4fid.
+bi5ga
+bigu3
+b1il
+b2ile
+5biles
+3b2ill
+4bim
+bimet5
+5bina
+5bin4d
+bind3e
+bin5et
+bin5i4
+1bi2o
+bio3l
+bio5m
+bi3ou
+bip4
+bi5q
+bir4
+bi3re4
+bi5rus
+b2is
+5bism
+bis4o
+bisul5
+3bitua
+4bity
+bi5ve
+b1j
+4b5k4
+2bl2
+5blac
+blag4
+b3lan
+5blast
+bla5tu
+blem5at
+3bler
+5blesp
+4blik
+blim3a
+bli3o
+bli2q
+b3lis
+4bly
+2b1m
+bment4
+bmi4
+4b1n
+bo2
+4bo.
+3boa
+bo5am
+5bob
+bod5i
+bo5h
+2boid
+4boke
+bol4e
+4boled
+bol3i
+bol4t
+3bon
+bon4c
+bon4e
+bon4ie
+boni4f
+bon4sp
+1boo
+b3orat
+bor3d
+bor5ee
+bor5et
+3bori
+bor5ic
+bor5io
+bor4n
+bot3an
+5boti
+boun5ti
+3bour
+bous4
+bow2
+bow3s
+4boxy
+5boy
+br4
+3brach
+4bral
+bram4
+b2ran
+bran4d
+4bre.
+b4reas
+4b2res
+brev5et
+b2rid
+5brief
+bring5
+bri4os
+b5rist
+b4roa
+bro4ma
+bros4
+brum4
+4bry.
+4b1s2
+b3sc
+bscon4
+bsen4
+bserv5an
+b5si
+bsin4
+bso2
+bsol3e
+bso3lu
+b4stac
+bstupe5
+2b1t
+b5tlet
+4bu.
+5bub
+buf5fer
+b4uli
+b4ulos
+bun2
+bun4a
+b5u5nat
+bunt4
+bur3e
+bur4ri
+busi4e
+buss2
+bus5si
+3bust
+bu5tar
+b3ute
+b5utin
+3butio
+but4iv
+b5ut5o
+b1v
+4b3w
+2by
+4by.
+3byi
+bys4
+5byt
+2ca.
+cab5in
+c4ace
+caco3
+cad4r
+5caf
+ca3go
+5cai
+5cak
+c1al
+c4ala
+ca5laman
+cal5ar
+3calc
+ca5lef
+call5in
+cal4m
+ca3ly
+ca3ma
+cam4i
+ca5nar
+c2an4e
+c4ano
+ca3noe
+can5tar
+can5ted
+can4tic
+can4tr
+5cao
+1cap
+ca5pil
+capt4
+cap3ti
+cap3u
+1car
+ca3ra5c
+car5ame
+ca3ree
+ca3r4i3c
+car3if
+car5m
+car3ni
+car3ol
+car5on
+car5oo
+ca3rou
+car4v
+case5
+cashi4
+3cas3s
+cas5tig
+3casu3
+c1at
+c4at.
+c2atc
+c4atom
+ca3t2r
+c4ats
+cat4u
+3cau
+caulk4i
+cav3il
+3cay
+c1c4
+ccent5r
+cces4sa
+c3ch
+cci3d4
+ccip4
+ccle3
+4ce.
+4ceab
+cean3
+3ceas
+ce4ci
+2ced
+5ceda
+ce3dar
+3cede
+3cedi
+4cef
+ce5g
+3ceiv
+cel3ai
+cel5ib5
+5cell
+cel5lin
+celo4
+ce5lom
+4cely
+2cem
+ce4met
+3cemi
+ce4mo
+1cen2
+5cenc
+cen5ci
+cen5ded
+cend5en
+cend5er
+cen3i
+2cenn
+3cent
+cent4a
+cen5ted
+cen5ter.
+cen5ters
+cen5tes
+1cep
+cept3a
+cep5tic
+3cera
+cer4bi
+3cerd
+ce3rem
+5cern
+5cess
+cest5o
+ces5tr
+ce2t
+cew4
+2ch
+4ch.
+4chab
+3chae
+3chai
+cham5per
+chan5gi
+cha3pa
+chec4
+4ched
+3chee
+3chem
+che3ol
+ch1er
+ch4eri
+5cherin
+ch4erl
+4ches
+3chete
+ch5eu
+che5va
+3chew
+ch5ex
+5chi.
+3chia
+3chico
+ch3ily
+ch4in.
+ch3inn
+3chio
+5chip
+chizz4
+ch5k
+5chlor
+4chm
+1cho
+cho3a
+5choc
+4choi
+ch5oid
+3chor
+4chored
+chor5ol
+4choso
+3chot
+4choti
+ch5ous
+chow5
+3chr
+chur4
+3chut
+5chyd
+3chyl
+3chym
+1c2i2
+4ci.
+4ciac
+cia4m
+ci3ca
+4cids
+4cie.
+ci3er
+ci3est
+ci5et
+ci3f
+cifi4
+4cig
+ci3ga
+cigar5
+3cil
+cil5lin
+2cim
+cim3a
+ci3me
+5cimen
+4cinab
+4cind
+cine5a
+cine5mat
+ci5ness
+4cint
+ci3ol
+ci5om
+ci4po
+cisi4
+cit3r
+ck1
+ckar5
+cka5t
+c4ke
+ck5if
+ck4sc
+cl2
+cla5rif
+3clas
+c2le2
+2cle.
+c5lec
+clemat4
+clev3
+cli1m
+c3ling
+cli2q
+clo4q
+c4lotr
+clue4
+clyp5
+5clys
+cn2
+c3ni
+1c2o2
+4co.
+3coa
+co5ba
+3coc
+co3ci
+co5cu
+co3dic
+co3dif
+4cody
+3coe
+co5et
+co3gr
+4c3oid
+co3inc
+4col.
+col3a
+co3log
+5colou
+co5ly
+co5mas
+co4me
+co3mo4
+comp4
+con1
+con4ati
+con4ch
+cond5er
+con4ey
+con4ie
+con3s
+con3t
+conta5d
+3coo
+coop4
+co3or
+cop4e
+co3ph
+co5pl
+co3po
+cop4t
+2cora
+cor5ded
+cord5er
+4cored
+co3rel
+3corn
+4coro
+co5rol
+5cort
+3cos.
+cost3a
+cost5er
+co5ta
+3co3tr
+5coty
+cous5t
+cov1
+co3va
+cow5a
+coz4
+co5zi
+c1q
+cr2
+5craf
+craft5i
+c4ran
+5crani
+cra5niu
+cras3t
+cra4te
+c2re
+4crean
+cre3at
+cre4p3
+5creti
+cre4to
+cret5or
+cri3l
+cron4
+crost4
+4crou
+5c4rus
+cry2
+crym3
+cryo3
+4c5s4
+csim5
+2ct
+c2ta
+c3tac
+ctac5u
+c5ta5g
+ct1an
+ct5ant
+c5taria
+c3tato
+c1te
+c4tea
+c2t5ee
+c4tent
+cter4ia
+ct5es
+ct5et
+ct2ic
+c5ticia
+c4tics
+ctifi4e
+c3tim
+ct4in.
+ct4ina
+ct5ing
+c3tini
+c5tin5o
+c5tio
+c3t2is
+c3tit
+c4titu
+c4tity
+ct5ive
+ct4ivit
+ct5olo
+c1tom
+c3ton
+c5toris
+c5toriz
+c1tr
+c2tre
+ctro5t
+c1tu
+c2tum
+c1ty
+cub3at
+c4uf
+cu5ity
+cul5ab
+c2uli
+cull5er
+cull5in
+1c2ult
+cu4mi
+5cuna
+cun4e
+5cuni
+5cuol
+cu5pa
+cu3pi
+c3upl
+1cur
+cur4er
+cur5ial
+4cur4o
+1cus
+cus5a
+c3utiv
+c3utr
+5cuu
+cu5v
+2cy.
+cy4bi
+1cyc
+cyl3
+cy4m
+cy5no
+cys4
+cys5to
+cy4t
+cz2
+4da.
+d4abr
+1d2ac
+dach4
+d5ache
+3dact
+d1ag
+d4a4gi
+d4ale
+d4alg
+dal5ler
+dam5a
+3dame
+d3ami
+da5mu
+3dang
+d1an4t
+d3ap
+d3ard
+5darm
+3d4as2
+dast5a
+d1at
+dativ4
+dat4u
+daugh3
+daun5te
+3dav
+d3b
+d3c4
+d1d4
+d4dere
+d3di
+d3dler
+d3dli
+d3dyi
+2de.
+deac3t
+de5aw
+de4bi
+deb5it
+3dec
+de5cant
+de4cil
+de1cr
+4dect
+ded3i
+defor5e
+de4fy.
+de3g
+de4gu
+de3io
+5de3is
+de3lat
+deli4e
+del5ler
+del5li
+de5lo
+1d4em
+4demie
+4dem4is
+demo4n
+de4mons
+de3mor
+de4mos
+4demy
+de1n2a
+den4d
+4dene
+d3enh
+deni4e
+dens5a
+dens5er
+den5tit
+de3od
+deo3l
+deon2
+deont5
+de1p
+depen4
+deposi4
+de2pu
+d3eq
+derac4
+de3rai
+d4ere
+4dered
+de5reg
+3derer
+1deri
+der3k
+3derm
+der4mi
+der5min
+5derne
+3dero4
+der5os
+der3s
+5deru
+4des.
+de3sa
+5desc
+des4ca
+de5scal
+de3sec
+des4i
+de3sid
+des5igna
+des1p
+des5pon
+de3sq
+d3est.
+des3ti
+1de1t
+de3tes
+de5th
+de2ti
+dev3il
+de3vis
+de3vit
+de4voi
+devol5u
+3dex
+2d5f
+dfol4
+d2g
+dg4a
+dgel4
+d4gen
+d3gr
+4d1h
+dhot4
+d4hu
+4di.
+1dia
+di2ad
+3diar
+diat5om
+4d1ib
+d1ic.
+dic5am
+di4ce
+di3ch
+d5icl
+dic5ol
+1dict
+dic5tat
+dic4te
+5dicul
+d5icur
+1did
+di4ers
+3di3ev
+d4ifo
+dig3al
+di3gam
+dil4
+5dill
+dilo4
+di3lu
+di5mer
+dimet4
+di1mi
+2d1in
+din4e
+din5gi
+di5nos
+3di1o
+dio4c
+di4ola
+dip5t
+3dire
+di3ri
+4d5iro
+di4s1
+d4isc
+disen3
+3disia
+3diss
+d4itas
+d4iter
+dithe4
+d3ito
+ditor3
+2dity
+1diu
+1di1v2
+di4val
+di5vine
+dix4i
+d1j
+2dl4
+d1la
+5dlef
+5dlest
+3dlew
+dlin4
+d1lo
+d5lu
+2d1m
+4d1n2
+1do
+4do.
+d4ob
+do4c3u
+dog4a
+do4j
+d4ol.
+dol3en
+do5line
+dol5it
+do4lon
+d4ols
+5dom.
+doman4
+domin5
+dom5ino
+dom5it
+do5mo
+don4at
+4dony
+3doo
+d2or
+4dor.
+dor4m
+dort4
+d4os
+do5sim
+dossi4
+dot1a
+dot4tin
+2dous
+d4own
+3dox
+d1p
+dr2
+d5rail
+d3ral
+3dram
+dran4
+d4ras
+drast4
+3drel
+dres4
+dress5o
+dri4e
+d4rif
+dri4g3
+d4rom
+dropho4
+drunk3
+4d1s2
+d5sl
+ds3m
+ds4mi
+d4sw
+dt4
+dt5ho
+1du
+2du.
+du1at
+3duc
+duch5
+duci5an
+du4co
+du5eli
+du5ell
+du5en
+du5ett
+du5in
+dul3c
+d3ule
+dul4l
+dum4be
+dun4a
+d5un4c
+du2p
+du3pl
+5duro
+d5use
+dust5er
+du3u
+d1v
+dver2
+dvert3
+dvoc5at
+2d1w
+dwell3
+2d2y
+dy4ad.
+dy5ar
+5dy4e
+5dyk
+dyl2
+dyll3
+5dymi
+3dyn
+dys3p
+d3zo
+ea2
+4eab
+e1act
+eac4te
+ea5cu
+e5add
+ead3er
+ead1i
+ead3li
+ea4g
+eak1
+eal3a
+eal3er
+ea3log
+eam4bl
+eam3er
+ean5i
+eap2
+eap5er
+e3app
+ear3a
+ear3er
+ear4li
+e5ar2r
+ear4te
+earth5i
+eas5er
+ea4soni
+e1as1s
+eassem4
+eas4t
+east5i
+eat5eni
+eat3er
+eat5ie
+e3atif
+eatit4
+eat4itu
+e3atri
+e4atu
+eau3
+eav5i
+eavi4e
+eav5ou
+eaz5i
+e1b
+ebar4
+eb2b
+ebe4
+e4bel.
+e4bels
+e2ben
+eb5et
+eb2i
+e5bil
+e4bin
+e4bis
+e4bl
+e4bos
+ebot3o
+e2br
+eb1ra
+eb2t
+e4buc
+ebus5i
+ec2a
+ec3ade
+ecad5en
+ecal5e
+e5cam
+e4capo
+ec3at
+ec5ath
+e1ce
+ecent5o
+ech3i
+e4cib
+eci4f
+ecip5i
+e1cl
+ec3lip
+econ4sc
+econstit5
+ec3ora
+ec5oro
+ec3rat
+ec5rean
+e4crem
+ec1ro
+ect5ati
+ec4ter
+ecti4c
+ec4tit
+ec4t5us
+ec1ul
+e5culi
+2ed
+e5dans
+e2dat
+ede2
+e4ded
+e5deh
+e4dele
+edes3t
+ede3te
+edeter5
+e3dev
+e5dew
+ed4g
+edi4als
+ed5ical
+ed5ics
+ediges4
+ed5igr
+ed3ime
+ed1it
+edi2v
+ediv5id
+ed3li
+edor4
+e4dox
+ed1ro
+edu5cer
+e2dul
+ed3ulo
+e4d5ur
+ee4ce
+eed3er
+ee4do
+ee2f
+ee5g
+ee1i
+ee2l1i
+ee2m
+eem5er
+eem3i
+eep1
+ee4pa
+eer4ine
+eesi4
+ee3to
+e1f
+efact5o
+efal4
+ef5eree
+ef5inite
+e4fite
+ef4l
+efor5est
+2efu
+e4fug
+efut5a
+egel3
+egi5a
+e4gib
+e3gla
+eg3le
+eg4mi
+eg5nab
+e5g4on
+e2gr
+e5gur
+e1h2
+e5ho
+eh5s
+ehy2
+ehyd5r
+eid4
+5eido
+4eif
+eig2
+e5ignit
+e4in.
+e3inc
+e2ine
+e1ing
+ein5i
+e4ins.
+ei4p4
+eir3o
+4eis
+eis3i
+eit5er
+eith4
+e2iv
+eiv3er
+e2iz
+e1j
+ejudic4
+ek3en
+ek5is
+ek4l
+e4lac
+e5lad
+el5age
+elam4
+el5anc
+elast3
+e4lates
+el5ative
+elch5er
+eld3er
+2ele
+elea5g
+4e4led
+el5eni
+el3eno
+ele3o
+ele5ph
+el1er
+e1les
+e5less
+e4leste
+el3et3o
+elev3a
+ele3vi
+el5ex
+e4l3ica4
+e1lie
+eli4ers
+e3lim
+el3ing
+eli3on
+e4li4s
+elit4t
+e3liv
+el4lab
+ell5iz
+e3loa
+e3loc
+elo5ca
+eloc3u
+elo4di
+e2log
+elom5ate
+el5op.
+el5ops
+elp5in
+el3so
+el5tie
+e1lu
+elu4m
+elus4
+elv4
+e5lyi
+3elyt
+em3ago
+em3ana
+emar4
+emarc5a
+em5atiz
+emat5ol
+em5bi
+e1me4
+e4mee
+e4mel
+e3mem
+e4m3era
+em5ero
+emet4e
+em4icis
+e4mie
+e2mig
+emig5ra
+em3ina
+em5ing
+e3mio
+em3ism
+e4mita
+e4miu
+em4mae
+4emnit
+emo3bi
+emod4u
+e2mog
+e4moi
+em3olo
+em5om
+4emon
+e3moni
+emon5ol
+e2mor
+em5oris
+em3orr
+e4motic
+e5moz
+empa5r
+empara5
+em5pes
+4empli.
+em4pre
+em3um
+e5mut
+en3ac
+e4nal
+en3am3o
+en4ann
+e2n3ar
+en3as.
+ena5ture
+3encep
+en4cile
+enct4
+2end
+en4d5al
+en4dedl
+end5rit
+4ene
+ene5d
+en3ee
+e5nelle
+e5nep
+e2ner
+e5nereo
+ener5v
+en5esi
+e3ness
+en1et
+en4ett
+e2n3eu
+e3new
+en3gi
+en3ic
+en5ier
+en3ig3r
+en5in
+enit5u
+en3k
+en1o
+en3oi
+eno2m
+en3oty
+enov3
+en2s
+ens5al
+en3sp
+en4sum
+en4sus
+ent3ar
+en4ters
+en5tia
+en4tify
+en2to
+en4tri
+ent5rin
+ent5up
+en4tus
+4enu
+en3ua
+en3uf
+en3ur
+en5ut
+5enwa
+eo3b
+e4och
+e4oda
+eof2
+eo2l
+eol5ar.
+eol5at
+eologi4
+e5olu
+eo3m
+eon4a
+e3ont
+eop4t
+e1or1
+eor4de
+eor3e
+eor5o
+eo1s2
+eo4to
+e1pa
+ep4al
+ep5arc
+epa4t
+epend5en
+ep5ert
+e4pete
+epe5titio
+ep5ex
+eph1
+eph4i
+e2pig
+e5pla
+ep3lic
+epol3a
+epol3i
+epolit5
+ep3reh
+epres5e
+ep5rim
+e4p5rob5
+ept3or
+e1p4u
+e3pur5
+e4puta
+equin4
+equi5no
+er1
+era4cie
+era4do
+era4g
+era4l
+er3aph
+er3api
+er3apy
+4erati.
+4eratim
+er5atu
+er3bat
+er3be
+erb5os
+2erc
+er3ch
+er3cl
+2erd
+erd5ar
+erdi4e
+2ere
+er3eal
+4ered
+er3egr
+er5el.
+er5ell
+er5els
+e4reme
+er3en
+5erend
+eren4e
+ere5ol
+e3req
+er3er
+ere4s
+er5ese
+er3esi
+er5este
+er5esti
+eres5tr
+eret4
+er3et.
+er3ets
+er3ett
+ere4v
+er3ex
+ergi3v
+er3gl
+er3ia.
+er4ian
+eri4cid
+5er5ick
+er2id
+er3ie
+er3iff
+er4imet
+er3in
+eri4na
+eri4on
+er3iou
+er4isc
+eri5sta
+4eri2t
+e3riv
+er5iz
+4erj
+erk4
+er3me
+er4moi
+5ernacl
+er5nalis
+ern3er
+ern3is
+ern3it
+4ero.
+er3oid
+ero5is
+ero5st
+erpent5in
+erre5la
+er4rep
+er5sine
+er5ted
+er4ter
+ert5er.
+ert5ers
+er4thi
+ert5iz
+2eru
+eru4b
+eru5d
+erund5
+er4vil
+5erwau
+eryth3
+2erz
+4es.
+es5am
+es5an
+e2sc
+es5can
+es5che
+esci5e
+escut5
+e3sea
+e3sect
+e5see
+e5seg5
+ese4l
+es5enc
+e3sh4a
+e1shi
+e5shu
+esi4an
+es5ic.
+e5sick
+es5iden
+esi5diu
+es5ies
+es3im
+es3in
+e5sion
+e4sit
+es4it.
+es4its
+e3skin
+e3s4mi
+es4od
+es3ola
+es3ol3u
+es3ona
+eso3p
+e1sor
+es3per3
+es5pira
+es5pit
+es4pl
+esplen5
+es5pot
+e5s2pr
+es4s3an
+essar5
+ess5ee
+es4sil
+es2so
+esta4b
+est3an
+e5star
+es5tau
+e2sti
+est5ifi
+est5igati
+e3stoc
+es5too
+est4r
+estud4
+e1su
+e2s3ul
+es4ur5
+et2a
+et3al.
+et5allis
+et3al5o
+eta5me
+eta3p
+et3ari
+et5ary
+et4as
+et3ate
+et3ati
+et5ay
+et3eer
+etell5i
+etend5er
+et5eni
+eter2
+et3er3a
+et5eria
+etex4
+e2th1
+ethyl3
+2etia
+e3ticu
+eti4gi
+e5tim
+et3in
+eti4na
+e3tir
+et5itiv
+eti4u
+et5olo
+e5tomete
+e2ton
+et3ona
+etor3i
+etra5g
+4e4tral
+etra5m
+et4ran
+et5ress
+et1ri
+et4ria
+etrib5a
+e4trim
+et1ro
+et2t
+et3ter
+etud4
+et3ude
+e4tum
+et4we
+et5z
+eudio5
+eue4
+euk5
+4eum
+e3urg
+eur5i
+eus4
+eu5ten
+eu3ter
+eut3i
+ev4abi
+eval5e
+eva2p3
+ev3ast
+ev3at
+ev5eli
+eve4n
+ev5erat
+ev5eren
+ever4er
+e4veri
+e4ves
+e1via
+e4viab
+e2vic
+evictu4
+evid3
+ev5ig
+ev4ile
+ev5ish
+evis5in
+evis5o
+e4viu
+evoc3
+evol5e
+evol5ute
+evu4
+e1wa
+e4wag
+e5way
+ew1er
+e3wh
+ew5ie
+ew1in
+ew5ish
+e3wit
+e1wr
+ex5ic
+ex4on.
+1exp
+4ey.
+ey4as
+eyl4
+ey3s2
+ez5er.
+ez5ers
+ez5ie
+1f2a
+2fa.
+fab4i
+fa3cet
+fact2
+fa2c3u
+2f3ag
+fall5in
+5falo
+fa5lon
+fals5ifie
+4fan3a
+fan5tasiz
+fant3i
+5far
+far3i
+5faw
+4f5b
+2f5d
+2fe.
+3feas
+fea3tu
+feb5r
+3fec
+2fed1
+5fei
+fe1li
+fem3i
+femin5
+fend5er
+f5eni
+4fered
+fer3ee
+3fero
+fe5roc
+fer5om
+3ferr
+fer3v
+2fes.
+fess3o
+fest3a
+fest5i
+fe4t
+fet4al
+fet4in
+fet4o
+3feu
+fe5veri
+2ff
+f1fe
+ffec4te
+f5fet
+f1fi
+f5fia
+f3fic
+f5fie
+ffil3
+f2f3is
+ff4le
+ff3lin
+ffoc3
+ffoni4
+ffor3e
+f3fr
+ffranch5
+4f5h
+fi5ance
+fib5u
+4fic.
+4fical
+3fici
+4fics
+fi5del
+fid3en
+fiel4
+fier4c
+fight5
+1fi2l
+2fin
+fin2a
+fi3nal
+find3
+fin2e
+f1ing
+5finin
+fin4ni
+fir2m1
+f3ita
+f5itee
+fl2
+3fla
+fle2s
+f3lica
+flin4
+3flo
+flo5ric
+3flu
+flum4i
+1fo
+4fo.
+3foc
+fo2e
+foeti4
+fo1l4i
+fo4lie
+foment4
+fo2n
+fon4de
+3foo
+fo5ram
+for5ay
+for5b
+for4di
+fore3t
+5form
+for4m3a
+fortu5na
+fo3v
+1fr2
+frag5a
+frant4
+frar4
+fratch4
+fre4s
+frost5i
+fruc4
+2f3s
+fs4p
+2ft
+f1ted
+f4ter.
+ft5es
+fti4et
+ft4ine
+3fu
+4fu.
+fu4c
+fuel5li
+fug4a
+fu4min
+fun2g
+4fured
+fur3n
+fu3sil
+fus5o
+fu5til
+4ga.
+ga4cie
+gadi4
+ga4dos
+3gag
+3gai
+3gale
+ga5len
+gali4a
+gal5ler
+3galo
+gam4bl
+gan5at
+4ganed
+gang5er
+g5ant.
+gan4tr
+g5ants
+g5arc
+g4are
+gar3ee
+gariz4a
+ga5rot
+gar5p
+5garr
+1ga4s
+gas5i
+gas3o
+gasol5
+gass5in
+gast3r
+g1at
+g4at.
+gat5iv
+g4ato.
+g4atos
+g4att
+gat5u
+gaud5
+ga5za
+g1b
+g5d4
+2ge.
+5geal
+3gean
+2ge4d
+3gedi
+5gedn
+4gef
+1gel
+4gele
+ge4li
+gel4in
+gel5li
+ge4lu
+2gely
+gem3i
+5gemo
+3gen
+gen4du
+gen5it
+gen3o
+gen5ti
+ge4o
+geo3lo
+4gere
+3germ4
+2ges.
+5gess
+gest5at
+3get
+get3a
+2g1f
+2g1g
+gg4a
+g2ge
+g5gedl
+g3ger
+g5gerer
+ggi4a5
+g3gli
+gglu3
+g5gly
+ggrav3
+g4gro
+2gh
+g5hai
+gh5eni
+g3ho
+g4hos
+gh2t
+1g2i
+4gi.
+gi4all
+gi4at
+3gib
+gi5co
+gi4g
+gi5gan
+gin5gi
+3gio
+gi4or
+gi4ot
+5gip
+gi5pa
+g4i4s
+5gis.
+gi2t1
+5gitu
+giv5en.
+2gl2
+g3lar
+5glass.
+glec4
+3gler
+g4leto
+g4letr
+g4ley
+gli5on
+g5lis4
+3glo
+4g5lod
+glom3
+4glop
+3glu
+glu5te
+glu5ti
+3glyp
+2g1m4
+2gn2
+g1na
+g4nab
+g5nate
+5gnath
+g5nati
+gna5tur
+gn5edl
+gn5ee
+gn3er
+g1ni
+g4nia
+g2n3in
+gn4in.
+g4ni2o
+g2no
+5gnori
+gno4s
+2go.
+5goa
+3goc
+5god
+3goe
+go4et
+go4ge
+4gogram
+g5oid
+go3is
+go2me
+5gonn
+go5nom
+3goo
+goph4
+4gor.
+5gorg
+4gors
+g4ory
+3gos
+gos4t
+2gou
+gour4i
+g1ous
+gov1
+g3p
+1gr2
+grab4
+3gram
+4grame
+gra2p
+g4re
+gril4
+grim3a
+g4ro
+gro4g
+g5ron
+grop4
+3gru
+gru3en
+gru5i
+grum4b
+2g1s
+gs4c
+gs4t
+g4sti
+gth5eni
+g5to
+g4u2a
+gu5ab
+5guan
+3guard
+g5uat
+2gue
+5gueu
+5guit4
+gui5ta
+gu2ma
+gu4mi
+3gun
+g4uras
+g4ured
+gur4n
+gur4u
+4gury
+gust5a
+2g1w
+2gy
+gy2b
+5gym
+3gyn
+gyn5o
+g5z2
+ha2
+4ha.
+h4ac
+hadi4e
+had4ine
+hae3o
+haged5
+hagi3o
+hag5u
+ha5ic
+hais4
+hak4ine
+hal5ant
+ha4m
+ham5an
+han4cro
+han2g
+h1ani4
+h5aniz
+han4t
+hant3a
+ha4pe
+hap3l
+har1a
+har5b
+har4d
+har5die
+harge4
+ha5rism
+har3o
+har4ted
+har4ti
+has4te
+hat5o
+haught5
+havel4
+hav5ersi
+hav5o
+h1b
+h1c
+h1d
+hdeac5
+hdu4
+he2
+4he.
+h2ea
+1head
+3hear
+hearch4
+heast5
+heav5en
+hec3t4
+he5del
+he3do
+heek4
+h4ei
+he3is
+he5lat
+h5elin
+he3lio
+he5liu
+hel4li
+h3el3o
+hem1a
+he3men
+hemis4
+he5mop
+hem4p
+hende5
+he3or
+hep1
+h1er.
+her4as
+her2b
+herb3a
+herb3i
+here3a
+here3o
+h5erett
+h5erh
+her5ial
+h5erine
+h1erl
+her5om
+h4eron
+h1ers
+h5erwa
+hes3tr
+het1
+h4et3a
+het3i
+het4ted
+heu2
+heum3
+heumat5
+he4v4
+hev5i
+hex5o
+h1f
+h5h
+2hi.
+hi4ar
+h1ic
+hi3c4an
+hi4cin
+h4icl
+h5ie.
+h1ier
+h4i4ers
+h1ies
+h3ifi4
+h3ify
+hig4o
+hi5ka
+hi4l
+hi5ma4
+hi5mer
+himos4
+h1in
+hin4d
+h2in2e
+hi5nie
+h5iniz
+hi5nop
+h2ins
+hio5lo
+h4ior
+hi2p
+hip3l
+h4ir
+hir4r
+hirr5i
+hit4a
+hiv5a
+4hl
+h3la
+h1le
+h3let
+h1l2i
+hli4a
+2h1m
+h4manic
+h5mica
+2h1n2
+hnocen5
+4ho.
+ho3an
+ho4co
+ho3don
+ho5du
+ho5ep
+hol3ar
+hold1
+hol4is.
+ho5lys
+ho4mag
+hom5in
+h2o4n
+hon5em
+ho5neu
+hon3ey
+hong3i
+ho5nio
+hon1o
+1hood
+hoo5r
+h4ope
+ho2p5r
+h4op4te
+hor5et
+h4orn
+horn5i
+ho5rog
+hort5h
+hosi4
+ho4ton
+h2ou
+3house3
+4h1p
+2hr
+hras5eo
+hre4
+hre5ma
+hr5er
+hres4
+hri4
+hrill5in
+hrim4
+h5rit
+h3rod
+hrom4i
+hry4
+h3rym3
+2h1s
+hsi4
+h4sk
+ht5ag
+ht5ee
+ht3en.
+ht5ener
+ht3eni
+ht3ens
+ht5eo
+ht5es
+ht4foo
+h1th
+ht4ine
+hu4g
+hu4mat
+hu5mer
+hu4min
+hun4c
+hunk4
+hun4t
+hur3i
+hu3sia
+huz4
+h1w
+h4wart
+h2y
+hy2l
+hyl5en
+hy2m
+hyn4
+hy3o
+hyol5i
+hy1pe
+hy3ph
+hyr4
+hys3te
+hy4t
+2i1a2
+ia4bl
+iab5olis
+iab5oliz
+i2ach
+iac3o
+i2ac2r
+ia5cri
+ia5dem
+i5ae
+iaf4
+i2ag4
+ia3gn
+i5a4g5o
+ia3gr
+i3ah
+i5ai
+ialect4
+i3alit
+ial5li
+4ialn
+i2a3lo
+ia5ly
+i5amb
+ia3me
+ianch5
+i3ant
+i5ape
+ia3ph
+i2ard
+4iarit
+i3at
+ia5the
+i5atom
+iat4u
+iatur4a
+i3au
+iav4
+ib3era
+ib1i
+ibio4
+ibios4
+ib5li
+4ibo
+i4bon
+ibor4
+i4bose
+i5bou
+ib1ri
+4ibu
+ib3uta
+ic3ac
+ic5ado
+i4cal
+ic1an
+2icar
+iccu4
+4ice
+i5ceo
+4ich
+ich4i
+ich5ing
+ich5ol
+4icin
+i5cio
+2ick
+ic4lo
+2i2co
+ico3c
+ic5ola
+icon3o
+i5cop
+icotyle5
+2i1cr
+i4cri
+i4cru
+i4cry
+ic4tedl
+ic4ter
+ict5ic
+2icu
+icu4lu
+ic3um
+i5cun4
+i5cut
+2i1cy
+i2d
+id1a
+i5day
+ide4m
+id3enc
+id3era
+iderm5
+i3dicu
+id3if
+i5dig
+i5dil
+i3dim
+id4ines
+idios4
+idir4
+id1is4
+id4ist
+2i4d1it
+idi4v
+id3li
+id3ol
+idol3a
+4idomi
+id3ow
+4idr
+id5ri
+id3ul
+ie2
+4iec
+2ieg2
+ie3ga
+ie5i
+i5ell
+4iem
+2i1en
+ien2d
+i1er
+i3eres
+i2eri
+ieri4n
+4iern
+ier2o
+i4ert
+i3esc
+ies3el
+i1es2t
+i3est.
+2i1et
+i4et.
+iet3ie
+4ieu
+i5euti
+iev3a
+iev3er
+iev3o
+2i1f
+i2fe
+if4fa
+iff5ler
+if3ic.
+i4ficac
+if5ics
+ifi4d
+ifi4n
+4i2fl
+i3fo
+ifoc5
+if5tee
+i3fy
+2ig
+i3gad
+ig3and
+3igar
+i1ge
+i3ger
+ight5er.
+ight5ers
+4igi
+ign5iz
+igno5m
+i3gon
+ig1or
+ig3ot
+i5gret
+i4g5ro
+igu5it
+ig1ur
+2i1h
+ihy4
+2ii
+i5in
+ija4
+4iju
+2ik2
+ik5an
+ike4b
+i2l3a
+ila4g
+ila5tel
+i5later
+il4ax
+il5dr
+il4du
+i3len
+ilesi4
+il3f
+il3ia.
+il3iar
+ili4arl
+i3lici
+i5lien
+ili4er
+ili4fe
+il4ific
+il1in
+il5ine.
+4iliou
+il5ipp
+il5iq
+il4ite
+ilit5u
+il4mo
+i5lon
+il3ou
+ilth4
+il2tr
+4ilu
+il5ul
+i5lum
+il5ure
+il3v
+4ilym
+ima4c
+im2ag
+im3age
+im1al
+im5am
+i5m2as
+i4mated
+i4matin
+imat5u
+im1i
+i3m2ie
+im4ine
+im5ino
+im5mes
+i2mo
+i5mog
+i3mon
+im5oo
+i3mos.
+impar5a
+imparad5
+im5pie
+impot5
+im5pr
+impu4
+im1ul
+im5um
+in3ab
+4inace
+in4ado
+in5agl
+in3air
+ina4l
+4inalit
+in5am
+in3an
+in3ap
+in4ars
+i3nas.
+4inata
+inator5
+in3au
+in4aw
+2inc
+inc4tua
+2ind
+in5dar
+inde5p
+indes5
+inde3t
+indeterm5
+in5dro
+4inea
+4ined
+in5ee
+in5ega
+4in5eo
+ine4s
+in3esi
+ine5te
+4ineu
+inev5
+infilt5
+infol4
+4infu
+4inga
+in5gal
+4inge
+ing5ha
+4ingi
+4ingle
+4ingli
+4ingo
+4ingu
+ing3um
+2ini
+in5ia.
+4inic
+in4ici
+in3ion
+in4itud
+4ink
+ink4ine
+4inl
+2inn
+2ino
+4ino.
+in3oi
+i5nole
+4inos
+i3nos.
+in5ose
+in3osi
+4inq
+ins2
+in4sch5
+inse2
+insect5
+insec5u
+in3si
+5insk
+insolv5
+in4tee
+int5ess
+in3til
+int5res
+intu5m
+2inu
+in5ul
+in5um
+in3un
+in3ur
+invol5u
+2io2
+ioact4
+i1od
+iod3i4
+iod5o
+ioe4
+io3gr
+4i1ol
+io3ma
+i4omani
+io3mo
+i5ope
+io3ph
+i5opo
+iop4s
+i1or
+iora4m
+4iore
+4iorit
+5ioriz
+4iorl
+ior4n
+io3sc
+i3ose
+i3osi
+i4oso
+io5sta
+i3ot
+iot4a
+io5th
+iot5ic
+io5tr
+i4oty
+i4our.
+i4ours
+i5ox
+2ip
+ip3al
+ipap4
+ipar3o
+ipart5ite
+ip1at
+i3pend
+i1ph2e
+iphen3
+i5pheri
+iphi4
+i4phu
+ip3id
+i5pil
+ip3in
+ip4ine
+ipir4
+ip5is
+ip1i4t
+ip4iti
+ip3lin
+ip3lo
+i3po
+i4pog
+i4poli
+i4pom
+ipon3
+i4pow
+ip2pl
+ip3pli
+ip4re
+ip5tori
+ip1ul
+i5put
+ipy4
+2iq
+i3qua
+2ir
+ir1a
+ir4abi
+ira4c
+ir4ae.
+ir4ag
+ir4alin
+ir4alli
+i5raso
+irassi4
+iray4
+ird3i
+ire3a
+ir3ec
+ir5ee
+irel4
+ire5li
+ires4
+ir5ess
+ir1i
+ir2i4d
+ir4im
+ir4is.
+5iriz
+irl5ing
+ir5och
+ir5ol
+ir3om
+ir4q
+ir2s
+ir5ta
+ir5tee
+irwo4me
+i4sa
+is5ad
+is3age
+is1al
+is3am
+is1an
+is3ar
+is5av
+4isb
+i2s3c
+is5chi
+isci5c
+4i1sec
+ise5cr
+is3ell
+4is3en
+is2er
+is5ere
+i2s3et
+4iseu
+is3har
+ish5ee
+4ishio
+ish3op
+is5hor
+2isia
+is5ic
+is3ie
+4isim
+is3inc
+4isis
+is4ke
+is1l
+islun4
+2isma
+is1on
+is5oner
+iso5p
+is1p
+i3s2ph
+5ispr
+2is1s
+iss5ad
+is4sal
+is5san
+iss4iv
+iss4o
+4ista
+is4tal
+ist5enc
+ist5ent
+is5terer
+4isth
+is4t3ic
+4istl
+i4s1to
+4is4tom
+is1tr
+3istry
+4isty
+i5sul
+is3ur
+2isy
+it1a
+it5ab
+ita4c
+4itai
+it3am
+it4ana
+it4as
+it3at
+i3tect
+it3ee
+it3enc
+it3ent
+it3era
+2ith
+itha5l
+ith5i
+i5thol
+ith3r
+ithy5
+2itia
+iti4co
+it5icu
+it1ie
+it3ig
+4itim
+it4in.
+it4ins
+4itio.
+4itione
+i5tiq
+4i5tit
+it3iv
+it4li
+it5lo
+4ito.
+it5ol
+2iton
+it1ou
+2itr
+it5ress
+i4tric
+2itt
+it4tit
+itu4als
+it5uar
+4itue
+it1ul
+it1ur
+it3us
+2i1u2
+i3um
+iur5e
+2iva
+iv5anc
+iv1at
+i4ved
+iv5el.
+iv5eling
+iv5els
+i4ver.
+iv3eri
+i4vers.
+iver5sal
+ives4
+iv3et
+i4vie
+iv3if
+i5vilit
+5ivist.
+5ivists
+iv1it
+i2vo
+ivoc3
+i5vore
+2i1w
+2ix
+ix3o
+i5ye
+1iz
+4izah
+iz3i2
+2izo
+iz5oi
+2izz
+1ja
+2ja.
+3jac
+ja2c5o
+jac3u
+jag5u
+jal4
+ja5lo
+ja5pan
+jel5la
+jeo2
+jeop3
+4jes
+jeu4
+jew3
+2ji
+3jig
+jil4
+jill5
+5jis.
+3jo2
+4jo.
+joc5o
+joc5u
+jol4e
+4jr
+4js
+ju1di
+jui4
+ju5l
+ju3ni
+juscu4
+jut3a
+ju1v
+k4abi
+k2a5bu
+kach4
+k3a4g
+kais5
+ka4l
+ka5lim
+kal4is
+k4an
+ka3o
+kap4
+kar4i
+1kas.
+kaur4
+kav4
+k1b4
+k1c
+kcom4
+k5d2
+kdo4
+kdol5
+4ked
+ke5da
+k5ede
+3kee
+ke4g
+ken4d
+keno4
+kep5t
+ker5a
+k4ere
+k5erel
+ker4j
+ker5o
+kes4i
+ket5a
+key4wo
+k1f
+kfur4
+k3ho
+5kih
+ki2l
+kilo3
+k1in
+k2in.
+3kind
+kinema4
+kin5et
+k3ing
+kin4i
+k2ins
+kir3m
+kir4r
+kis4
+3kis.
+k1ish
+kit5c
+ki4w
+kk4
+k5ker
+k2l2
+k3la
+k5lea
+k3ler
+k3let
+k3li
+k3lo
+k1m
+kn2
+k2no
+1know
+ko5a
+kol4
+ko5mi
+ko5pe
+k1p
+k5ro4
+k3ru
+4k1s
+k3sl
+ks2mi
+ks4t
+k1t
+kur5
+k5v
+k1w
+3kyl
+l2a
+4la.
+5laa
+lab5ar
+label4
+5labr
+l4ac
+la2ca
+la5ceo
+la5cer
+la4ch
+la2co
+5la5col
+lac5on
+la3cu
+la4de
+l5adm
+l4ae
+l4af
+la3ger
+la4gis
+lag3r
+5lah4
+la4ic.
+l4al
+4lale
+5lamandr
+la5melli
+lam4ie
+lam1o
+l5amu
+lan3at
+lan2d
+3land.
+land3i
+3lands
+lan4er
+lan3et
+lan5tine
+lan4tr
+la4p
+lapi4
+lar5an
+lar5de
+4lared
+l4as
+lat5al
+la4te
+5latilis
+5latiliz
+5latini
+lat5us
+l4au
+5laur
+lav5at
+l4aw
+4laz
+l3b
+lbe4
+l4bit
+l4by
+l1c2
+l2cat
+lce4
+lcen4
+l4cere
+lch4e
+l3dar
+l3ded
+l3deh
+l5dera
+ld3est
+l5dew
+ldi2
+l3die
+ld4ine
+l5di5nes
+ld3ish
+ld5li
+l3do
+4le.
+3leagu
+le5atio
+leav5er
+l3eb5ra
+le3ca
+le5cha
+lect5ica
+2led
+le5dr
+leg1a
+l3egan
+3legg
+le4gin
+leg3o
+le3gra
+lek4
+4leled
+lel5o
+lelu5
+lem5enc
+lem3is
+l5emiz
+5lemm
+l3emn
+le2mo
+lem5on
+l5enda
+len5dar
+lend4e
+len4do
+le1ne
+le5nie
+len3o
+4lentio
+len5u
+le3on
+leo4s
+le5q
+2ler
+le5rec
+5l4eria
+l4eric
+le5rig
+ler3om
+leros4
+ler3ot
+4les.
+le3sco
+3les4s
+1let
+le5tra
+le5tre
+5le5tu5
+leur5
+2lev
+l3eva
+5leve
+lev5ita
+le4wi
+l5exa
+1ley
+lf5id
+l2fo
+lf3on
+l1g2
+l4gal
+l4gem
+lgi4a
+l4gid
+l4goi
+l3h
+4li.
+li4ani
+lias4
+lib1r
+l1ic.
+5lich
+li4cie
+5licio
+l3ic3on
+lict4o
+li4cu
+l3ida
+l4idar
+5lidif
+3lieu
+l4ife
+l4ifo
+lift5er
+1lig
+li5ger
+light5i
+5lih
+3lik
+1l4il
+lil4i
+lim2b
+limet4e
+lim4p
+l4ina.
+l4inas
+lin4d
+l4ine
+5lin3ea
+lin4er.
+lin4ers
+lin4ger
+ling3i
+5lingt
+3lingu
+3linq
+lint5i
+3liog
+li4ol
+lio3m
+liot4
+li3ou
+5liph
+lipt5
+li1q
+3lir
+l1is
+l4isk
+5lisse
+l1it
+l2it.
+l3it5a
+5liter
+3lith
+5litia
+3litr
+lit4u
+l4iv
+l5ivat
+liv3er
+liv5id
+lkal5o
+lk5at
+lk3er.
+lk3ers
+ll2
+l1la
+lla4ba
+llact4
+l5las
+l4law
+l5leb
+l1lec
+l1leg
+l3lei
+l1lel
+lle5m
+l1len
+l3lep
+l3leu
+l3lev
+ll3f
+l1li
+lli5am
+lli4an
+llib4e
+llic4
+l4licl
+lli5co
+l5lie
+lligat4
+l2lin
+l5lin.
+l3lina
+l3line
+l5lio
+lli5v
+ll3m
+l1lo
+lloc3a
+lloc5u
+llo2q
+l4lov
+llow5er
+ll3p
+ll3s
+ll5t
+l1lu
+llun4
+l5lya
+l3lyc
+l3lyg
+l3lyh
+l3lyi
+l5lym
+lm2
+l1ma
+l1me
+l4mer
+lm3ing
+l5mip
+l2m3od
+l1n4
+l3ne
+lneo4
+2lo.
+5load
+5lob3a
+1loc
+loc3al
+loc5ul
+lo4cus.
+2locy
+l3odis
+3lo3dr
+1log
+lo5gan
+4loi.
+lo5mi
+lom4m
+lon4al
+lon4e
+l5onel
+lo5ney
+long5in
+3lonia
+loni4e
+l3onis
+l3oniz
+loom5er
+lop4e
+5lo5pen
+l3opm
+1lo1q
+l4ored
+lor5iat
+lor4ife
+lo5rof
+loros4
+l4os.
+lo1so
+loss4
+los5sie
+lot5at
+loth4ie
+lo5tu
+5loup
+lp1at
+lp3er
+lph2
+l5phe
+l3phin
+l2pho
+l3pie
+l3pit
+lr4
+l3ri
+l3ro
+l5ru
+4ls
+l5sam
+ls5an
+lsi4fia
+lsi4m
+ls4is
+l5sk
+ls4p
+l1s2t
+ltan3e
+l4tang
+lt5ant
+l5tar
+l1te
+l4tei
+ltern3
+lth3i
+lti4ci
+ltim4a
+ltin4
+lti3t
+l3t4iv
+lt4or
+l1tr
+ltramont5
+l1tu
+l4tus
+4lu.
+lu1a
+luch4
+lu2c5o
+luc5ra
+lu4cu
+4lue
+lu1en
+lu5er
+lu1i
+lu4it
+lum4bri
+lu4mo
+5lump
+lu2m5u
+lunch5eo
+5lune
+l3unta
+lu3ori
+5lup
+3lur3o
+lusk5
+luss4
+lut5an
+4lut5ar
+5lutioniz
+lu5toc
+lut5r
+lu1v
+lv5ate
+l5vet4
+l4vi
+l4vor
+l3w
+lx4
+2ly
+4ly.
+ly1c
+ly4ca
+lyc4l
+lyc5os
+lym2
+lymph5
+lyp2
+ly4pa
+lypt5o
+3lyr
+lys5er
+3lyw
+3lyz
+lz4
+4ma.
+m4aca
+mac3ad
+ma5chine
+5machy
+ma4cis
+mact4
+4mad.
+4mada
+4mads
+ma4ge
+5magn
+2mago4
+2mah
+ma5ho
+3ma4i
+4mai.
+maid3
+5mak
+mal3ap
+mal5ari
+5male2
+mal5ed
+mal3ef
+m3alg
+m3alis
+mal4is.
+mal3le
+mal4li
+2mam
+mament4
+m5ament.
+1man
+3m4an.
+man3a
+man5dar
+man3dr
+manic4
+man4ica
+ma5nil
+m4ans
+mantel5
+2map
+m3aph
+1mar
+5maran
+mar5ol
+ma5ron
+ma3roo
+mar5ri
+mar4shi
+mar3v
+ma3son
+massi4
+mass5ing
+3mas1t
+mas4ted
+mast4ic
+mas4tin
+m4at.
+m4aten
+ma3ter
+mater5n4
+m4atit
+mat4iti
+m4atiza
+ma3tog
+mat5om
+ma3top
+m4ats
+3m4att
+ma5ture
+mav4
+2m1b
+mbat4t
+mb4d
+m5bec
+m5berer
+m4bery
+m4bes
+mb2i
+m2bic
+m5bil5
+m4b3ing
+m4bis
+mb5ist
+mbival5
+m5bler
+m3bli
+mbru4
+mbu3l
+mbur4
+m1c
+m5d
+m2e
+2me.
+mea5g
+me5and
+me4ba
+me4bi
+2med
+4med.
+3media
+med5icat
+4medie
+m5ed5ies
+3medit
+me4do
+m5edy
+me2g
+5meg2a1
+mega5t
+4mele
+mel5ee
+mel5ler
+mel3on
+mel4t
+melt5er
+me2m
+4m5eme
+1men
+3men.
+2mena
+men4ag
+mend5er
+mend5o
+me1ne
+ment5or
+5ments
+5meog
+me4p
+m5eran
+4mere
+mer4ia
+2me2s
+mes5en
+me5si4a
+mes5q
+3mesti4
+1me2t
+meta3t
+met1e
+4meted
+meth4i
+meti4c
+met5ici
+met3o
+met3ri
+m1f
+4m3h
+4mi.
+m1ic
+mi4cin
+mi3co
+3micro
+m4ict
+mi3cul
+mi4cus
+m4idi
+mid4in
+mid5on
+mi5fi
+mig5a
+migh5ti
+mi2gr
+4mij
+mi5ka
+m2il
+m3ila
+mil4ad
+4m5ilie
+mil5ies
+3mill
+mi5lo
+mil4t
+3m2im
+mim5i
+5min4d
+mind5er
+min4er.
+min4ers
+ming5li
+min5ie
+m4init
+min3ol
+1m4int
+minth5o
+mi3o
+mi3p
+mirab4
+mi5racu
+m2is.
+m4isc
+mi4se
+4misem
+mis3ha
+5missi
+m3ist.
+mis4tin
+m3ists
+mi2t
+m5itan
+4mity
+3miu
+5mix
+4m1l
+mlo5cuti
+mlun4
+2m1m2
+mman4d
+mmand5er
+m3medi
+mmel5li
+mmet4e
+mmig3
+mmin3u
+mmis3
+mmob3
+m5moc
+mmor3
+mmut3a
+4m1n2
+mnif4
+m4nin
+mni5o
+mnis4
+mno5l
+1mo
+4mo.
+2moc
+mod1
+mod5ifie
+mogast4
+mo4go
+mog5ri
+m5oir
+mok4i
+mol3a
+4molog.
+4mologs
+4mologu
+mo3ly
+mo1m
+mo4mis
+m4on
+mona4
+4moned
+mon1g
+mo4no
+monolo4
+monolog5i
+m4op
+mophil5i
+mop4t
+m3orab
+m3orat4
+mor4ato
+m5ord
+mo5rel
+3moria
+m5oriz
+mor5on
+3morp
+3morse
+mor5tal
+mo3sp
+5most
+mo3sta
+2m1ous
+m1p
+m3pa
+m4panc
+m4pant
+mpath3
+mpel5li
+m5perer
+mper3i
+mpet5it
+mphal5o
+m4phe
+m4phl
+m2pi
+mp5id
+m5pig
+mp3ily
+mp1in
+m3pir
+mp3is
+m3po
+mpol5it
+mpo2t
+mpov5
+mp3to
+mp5tr
+m3pu
+m5q
+m3r
+m4ry
+4m1s
+msel5f
+m5si
+msol4
+mtu4
+muck4e
+muff4
+mul1t2
+m5unc
+mu5nio
+mun3is
+mus5co
+mu4se
+mus5ke
+mu3til
+m1v
+m3w
+2my
+5my3c
+my4d
+my3e
+3myi
+5myst4
+3myt
+n1a
+2na.
+na2c
+nach4
+na5cious.
+na5ciousl
+nac4te
+nac5tiva
+na5culari
+na4d4a
+nadi4
+nad4op
+n2ae.
+naffil4
+nag4a
+n4agen
+5na5geri
+na4gi
+n5ago
+5n4a3gr
+5nah
+5nail
+na5iv
+nak2
+4naled
+n5alg
+n4alia
+na3ly
+1nam
+3name
+nam4n
+na5nas
+nannot4
+nan4ta
+nan5ted
+nan4to
+na5o
+4n4ard
+nar5tisti
+n2as
+nas5i
+nas5p
+nas3s
+nas5te
+nat5al
+na5tat
+n4atee
+na3the
+nath4l
+nati4
+n4ati.
+nat5ic
+n4ato.
+na3tom
+na4tos
+nat4r
+na5turi
+naugh5ti
+naus3
+3naut
+naut3i
+na2v
+na5vel
+n3b4
+nbarric5
+nbeau4
+nbe4n
+nbene4
+nbet4
+nbit4
+n1c2a
+n4cal.
+ncarn5at
+ncel4i
+ncent5ri
+n4cept.
+n3cer
+ncer4e
+n4ces.
+n5cet
+n5cey
+n3cha
+nch4ie
+n3cho
+nch5olo
+n3chu
+n4cic
+ncid5en
+n4cif
+ncip5ie
+n1c2l
+n4cles
+ncoc4
+nco5pat
+n1cr
+nc1t
+nc4tin
+nct4ivi
+nct2o
+n1cu
+ncu4lo
+n4cun
+n4curvi
+ncus4t
+4nd
+n2da
+n3da4c
+n3dal
+n4dale
+n3dam
+nd3anc
+nde2
+n3dea
+nde3ci
+n1ded
+nde4l
+ndeleg4
+nd3enc
+ndepre4
+n3derl
+nde4s
+ndes5cr
+n5dez
+nd4hi
+n1dic
+ndic5u
+ndid5a
+n3die
+nd5ily
+nd4ine
+nd3ise
+nd5is4i
+nd5ism.
+nd5ity
+nd3ler
+nd1li
+n5doc
+ndor4
+n2dou
+nd5our
+ndrag5
+ndram4
+n5dron
+ndu4b
+nduct5iv
+n4dun
+nd2we
+n3dyi
+2ne.
+ne3alo
+n3ear
+ne2b3u
+5neck
+ne4cl
+ne2co
+n5ectom
+2ned
+3nedi
+ne4du4
+neg3a
+ne3go
+5negu
+neis4
+2nele
+ne5lia
+neli4g
+n4ely
+ne2mo
+4n1en
+n3end
+neo3l
+neon4
+ne2p
+n1er
+4nered
+5nering
+ner5o
+ner4r5
+ner2v
+nerv5in
+2nes.
+n1esc
+ne3sia
+1ness
+n1est
+nes3tr
+net3a
+net3ic
+ne4tog
+net1r
+neuma5to
+neut5r
+nev5er
+n4ew
+news3
+n4eys.
+n3f
+nfo4
+nform5er
+nfortu5
+nfran3
+4ng
+ng2a
+n4gae
+n5gee
+n3geri
+n5gero
+ngh4
+n2gi
+n5gic
+ngio4g
+n5glem
+n3glie
+n5glio
+ng1n
+n1go
+n4gry
+n1gu
+n2gum
+n1h2
+nhab3
+nho4
+nhy2
+nhyd5
+n1i
+4ni.
+3niac
+ni3ba
+n4icab
+ni4cen
+4nicl
+nict5a
+ni4cul4
+ni4dio
+n2ie
+ni4ers
+nif4f
+nift4
+nif5ti
+ni2g
+night5i
+n3igm
+3nign
+nik5e
+n2il
+nil4a
+n3im1
+n4ime
+5nimet
+n4ines
+nin4j
+5ninn
+n4inu
+5niol
+ni1ou
+3nipu
+5niq
+n4is.
+n4isk
+nis4l
+nis4o
+n5iss
+nis5ter.
+nis5ters
+nitch4
+ni4te
+ni3tho
+n4itos
+ni5tra
+nit5res
+ni3tri
+nit4ur
+n2iv
+niv4a
+ni3vo
+nivoc4
+niz5en
+n1j
+njam2
+njur5i
+4n2k
+nk5ar
+n5kero
+n3key
+nk5if
+nk5il
+4n1l2
+nland5
+n3le
+nlet4
+n3m
+nmater4
+nmor5ti
+n1n4
+nne4
+nnel5li
+nnerv5a
+n3ni
+nni3ki
+nnov3
+n5nyi
+4no.
+n5obi
+no5bil
+nob4l
+no5blem
+nobser4
+n5ocula
+no4di
+n4ody
+noe4c
+no4fa
+nois5i
+n5ol.
+no3la
+nol4i
+nom3al
+1nomi
+no2mo
+4none
+3nonic
+5nood
+nop5i
+nora4t
+nor5di
+nor4ia
+nor4is
+nor3ma
+n4oro
+nor4t
+n4os.
+nos4o
+no3sp
+not1a
+3note
+n1ou
+n4oug
+3noun
+2nous
+nou5v
+nova4l
+nove2
+nov3el
+novel5e
+n4ow
+now5er
+now3l
+n3p4
+npil4
+npla4
+npoin4
+npo5la
+npos4
+npri4
+n1q
+n4quef
+n1r
+nre4i
+nre3m
+nres5tr
+4n1s
+ns2c
+n2sco
+ns3cot
+n4scu
+n5sec
+nsec4te
+n2ses
+n5seu
+n3sh2
+n2si
+ns3ib
+n4sic
+n5sick
+n3sid
+n3sie
+ns5ifi
+ns3ing
+n3sio
+n3s2is
+nsi2t
+ns3iv
+nsolu4
+n5son
+n4sore
+n4sory
+n3spir
+n3s2t
+nsta4
+nstil4
+n3su
+nsur4e
+n3swa
+ntab4u
+nt3age
+nt1al
+n4t3anc
+nt5and
+ntan5eo
+n4t3ant
+nt4ariu
+n5tasis
+nt3ast
+nt1at
+nt5ath
+nt3ati
+nt5ativ
+n5tau
+n1te
+n4tec
+n4tee.
+n4tees
+n3tel
+ntend5en
+n4teo
+n4ter.
+n3teri
+n5tern
+ntern5al
+nter5nat
+nth2
+n1the
+nther5
+nth5ine
+nt2i
+nt4ib
+n4tic.
+n5ticis
+n5ticiz
+n4tics
+ntic4u4
+n3tid4
+n1tie
+n4tify.
+n3tig
+nt5ilati
+n5till
+nt3ing
+nt5ing.
+nti3p
+n4tipar
+n4tis.
+nt3ism
+nt3ist
+n5titio
+nt3iz
+n2tj
+n1t2o
+n3tom
+ntoni4
+n5top
+n1tr
+ntra3d
+nt3ral
+n4trant
+n3trat
+nt5ress
+nt3ril
+ntrol5ler
+n5trym
+n1tu
+n3tua
+ntub5
+ntup5li
+n5tur
+n2ty
+n2u
+nu1a
+5nuc
+3nud
+nud5i
+nu3en
+nug4a
+nu3i
+nu4is
+5nuk
+n4ulo
+n3ult
+nultim5
+nu1me
+5numenta
+5numer
+5numi
+3nunc
+nu3tat
+n5utiv
+nu4to
+nu1tr
+n3v2
+nve2
+nvel3
+nven4e
+nven5o
+nvers5an
+nvi4t
+nvoc5at
+n5w
+nwin4
+nwom4
+n2x4
+2ny2
+5nyc
+nym5it
+nyth4
+n1z2
+nzy4
+2oa2
+o5ace
+o3act
+oad5er
+oad5i
+o3ag
+oak5er
+o3ales
+oal4i
+oal5in
+o5alit
+oan4t
+oap5i
+oar5er
+oar4se
+oast5er
+oat5a
+oat5ee
+oat5er
+4oba
+obe4l
+ob2i
+ob3ing
+2obi3o
+ob3it
+o3bla
+ob1li
+4obo
+ob3oc
+o5bol
+o5bot
+o3bra
+obrom4
+ob5t
+ob3ul
+o3bus
+2oc
+oc2a
+o4cab
+o3cad
+oc5ag
+o5calli
+o4c5ativ
+oc5ato
+4o3ce2
+o4cea
+ocen5o
+ocess4i
+och4e
+och5in
+o3chon
+ochro4n
+o5chu
+oci3ab
+oci4al
+o1cl
+o2cle
+o1cr
+ocre3
+oct2
+oc2te
+oc1to
+ocu4lu
+ocum4
+oc5uo
+ocuss4
+ocus5si
+ocut5r
+o1cy
+o5cyt
+ocyt5o
+od3al.
+ode4c
+o5deg
+ode4ga
+o5dend
+o3dent
+odes4
+od3ica
+o4d1ie
+od3iga
+od4il
+od1is2
+odis5ia
+od5it
+5odiz
+od3li
+o2do
+od5olo
+od5ous
+o3dro
+od5ru
+o2du
+odu5cer
+o4duct.
+o4ducts
+od3ul
+o5dyt
+oe3a
+oe4bi
+oe5cu
+oe4d
+o5ee
+oe5ic
+o3elec
+oelli4
+oelo4
+oe3o4p
+oep5
+o5eq
+o3er
+oes3t
+o1et
+o4et.
+oet3i
+oet4r
+3oeu
+o3ev
+o3ex
+oflu4
+4ofo
+o4ful
+ofun4
+2o1g
+o2ga
+o3gam
+og5ar5
+o3gas
+ogen1
+o5gey
+o3gi
+o4gio
+og2na
+ogoni4
+o4got
+o2gri
+o4gro
+og4sh
+o2gu
+o5gyr
+o1h2
+o3ha
+ohab3
+o3he
+oher4er
+o3ho4
+ohy4
+2oi
+oi4c
+o3ic.
+oi5ch
+o2i4d
+4oide
+oig4
+oi5ki5
+oil3er
+oil5i
+oin3de
+o3ing
+oin4t5er
+oin4tr
+oi4o
+4ois
+o3ism
+oi4t
+oit4al
+oith4
+o1j
+ok4ine
+ok3l
+ok5u
+ola4c
+o4lack
+o5lali
+ol4an
+olan5d
+ol5ast
+olat5er
+ol5ch
+ole2c4
+ol5eci
+ol5efi
+o3leo
+ole4on
+o3lep
+ol1er
+o3lest
+o3leu
+o1lia
+ol3ica
+o3lice
+ol5iciz
+ol5ick
+ol3ics
+ol5id.
+oli2e
+o3lier
+ol5ies.
+o5lif
+oli4f3e
+oli5go
+o5lina
+ol3ing
+oli5os
+ol5ip4
+olis4
+ol2it
+olle2
+ollim3
+ol4lope
+ol4lyi
+ol3mi
+o1lo
+4oloc
+ol3oid
+o4lona
+olon5el
+ol1or
+o3los
+ol1ou
+4ol1ub
+o3lumi
+o5lunte
+ol3us.
+oly3ph
+4olyt
+2om
+o1ma
+o4mab
+o2mac
+o2mal
+o4mane
+omast4
+o3mat
+om4be
+ome4d
+ome4g
+omeg5a
+ome3li
+om3ena
+omen4t
+o3meri
+om1i
+o3mia
+omi2c
+omic5r
+om4ie.
+omil4
+om4iny
+omiss4
+om2it
+omme4
+om2na
+omni3
+o4moi
+omoli3
+o2mo4n
+om5ony
+o4mos.
+omot5iv
+o2mou
+om5pil
+ompt5er
+ona4d
+on3ai
+o5nas.
+onast5i
+on5ativ
+4onau
+on1c
+oncat3
+on4cho
+5ond5ar
+ond5ent
+on3der
+on3dr
+on5dy
+o2ne
+4onea
+onec4r
+4oned
+on1ee
+on5ell
+o3neo
+on3ess
+on1et
+ong3at
+on4gu
+4onh
+4o1nia
+on5iar
+2oni4c
+onic5a
+onical4
+on4id
+on3ies
+on3if
+o5nig
+o1nio
+onk4s
+4onnes
+on5odi
+on5oi
+ono4mi
+4o5nomic
+ono3s
+o5nota
+ons2
+2ont
+ont5ane.
+on4ter
+onti5fi
+onton5
+ont4r
+on4tre
+on5ur
+o5nus
+onvo5lu
+on2z
+2oo
+oof3er
+oo1i
+ook3er
+ook3i
+oo4le
+ool5ie
+oo4m
+oon3i
+oo2p
+oop4ie
+o3opt
+oo4se
+oost5er
+oo2t
+oot3er
+ooz5er
+o1pa
+o4pab
+o5pali
+opa5ra
+opath5
+o5pec
+opens4
+op1er
+3opera
+4operag
+o1pha
+o4phe
+oph4ie
+o5phil
+op5hol
+o1phy
+ophy5la
+op1i
+op3ies
+op5ing
+o3p2it
+4opl
+oplast4
+o4poi
+opol3i
+opon4
+op5ony
+op5ori
+opoun4
+o2p5ov
+op2pl
+op5pli
+oprac4
+op3ran
+opre4
+opro4l
+op5rop
+op5so
+1op1t
+op2ta
+op1u
+o5quial
+or1a
+or5ado
+ora4g
+o5rai
+or5al
+4orals
+oram4
+oran3e
+orator5
+orb3in
+or4ch
+orch3i
+or4du
+2ore
+or5ead
+ore5ar
+ore5ca
+ore3f
+ore3g
+or3ei
+oreo5l
+or3esc
+ore3sh
+or3ess
+orest5at
+or5este
+or5ett
+ore4v
+5orex
+or4fr
+or5gn
+or1i
+4ori.
+or3ia.
+4orian
+ori4ci
+ori5cid
+orien4
+or3if
+5orig
+ori5ga
+ori4no
+4orio.
+or5ion
+4orios
+ork5a
+2orm
+orm1i
+or3n4a
+5ornis
+or3nit
+or3one
+o5roo
+or5ose
+or5oso
+or1ou
+orrel3
+orres3
+or4sc
+or4sey
+or4sti
+2ort
+ort3an
+ort3at
+ort3er
+or5tes.
+or3thi
+or4thr
+or4tit
+ort3iz
+or4tor
+or5tra
+ort3re
+4or1u
+or4un
+ory5p
+osa5i
+os3al
+osar5
+o1sc
+os4ca
+os4ce
+o2sch
+o4sci
+osclero5s
+o3sec
+osec3u
+ose5g
+os5enc
+osens4
+os5eo
+oser4
+o2set
+os5eu
+o3sia
+osi4al
+osi4an
+os5ide
+o3sier
+os5if
+os1in
+o4sis
+o5ske
+o5son
+o3soph
+os3opo
+4osp
+o3spec
+os1pi
+os4sa
+oss5ar
+os4sit
+4osta
+ost5age
+os4tar
+os5tee
+os5ten
+osten5t
+ost5ica
+os3til
+o5stome
+ost3or
+4osu
+os1ur
+2ot
+ot3a4g
+o5talit
+ot3am
+ot4anic
+o3tap
+ot4atio
+o5ta5v
+o3tax
+o4ted
+oter4m
+ot5esta
+4oth
+othalam5
+oth5erin
+o5therm
+otherm5a
+o5thor
+o5tia
+o5till
+5ot5iniz
+ot4iv
+o3tiva
+o5tivi
+o1t2o
+o5tone
+o4torn
+o4tou
+4o1tr
+oturi4
+oty3le
+o4u2
+5ou3a
+oub2
+ou5br
+ou5ca
+ou5co
+oud5i
+4oue
+ou3et
+oug4
+ou5ga
+ought5i
+ou5gi
+oul4t
+oult5i
+ou3m
+2oun
+oun2d
+ound5a
+ound5el
+oun5gin
+oun3tr
+oup5li
+our3er
+ou5san
+2ouse
+5ousia
+ouss4
+out5ish
+ouv5a
+ova3le
+o5var
+4ovati
+ov5eling
+o4ver.
+over3b
+over3s
+ov4ete
+ovid5en
+o1vis
+ovis5o
+o2v5os
+ow3ag
+ow3an
+o5way
+owd4i
+owd3l
+ow1el
+owel5li
+ow5ha
+owhith4
+ow1i
+ow5in
+owi5ne
+ows4
+ow5sh
+ow5sl
+ow5y
+o4x
+ox3i
+oxic5ol
+ox5o
+2oy
+oy5a
+oys4
+2oz
+o1zo
+ozo5i
+o3zyg
+4pa.
+pac4te
+pa5dou
+pad4r
+paes4
+pa3gan
+4pagat
+pag4ati
+pain2
+4pairm
+pa5lan
+pal3in
+pa3lo
+p4als
+pan5ac
+pan1e
+pan3i
+pa4pa
+pa3pe
+pap3u
+pa3py
+1par
+para5s
+par3l
+pa3roc
+pa3rol
+par5on
+1p4as
+pass5ive
+pas1t
+pas4tin
+pa3ter
+pati4n
+p5ato
+pat4ric
+pa5tricia
+5pau
+paul5e
+pau3p
+pa5vil
+5paw
+pawk4
+paw5ki
+2p1b
+p1c4
+p5d2
+2pe.
+pearl5i
+pe4co
+pec4tu
+2ped
+5ped3a
+3pede
+3pedi
+ped3is
+3peds
+pe2du
+p4ee
+pe2f
+4pele
+pe5leo
+pel5v
+pen4at
+5p4enc
+pend5er
+pen5dr
+pen4ic
+3p4enn
+pens5ati
+pen5u
+pe5on
+5perc
+percent5
+4pere
+perem5i
+p4eri
+5p4er3n
+p3eron
+per4os.
+per5tin
+pert5is
+per3v
+p4ery
+2pes
+pes4s3
+pes5til
+3pet
+pet5all
+pet3en
+pe2ti
+pet3r
+pe4wa
+4pex
+p1f
+p5g
+2ph.
+4phae
+pha5ged
+ph5al.
+ph2an
+phant5i
+phe4
+ph5esi
+ph3et
+3phib
+4phic
+1phil
+phi4n
+ph1is
+phi5th
+ph2l
+1pho
+4phobl
+4phoned
+3phor
+ph5oriz
+phos3p
+ph3ou
+3phra
+4phs
+1phu
+phu5i
+2phy.
+3phyl
+4pi.
+3piar
+4pica
+p5ical
+pi3co
+pi4cr
+pict4
+p2ie
+p4iest
+pi5eti
+p5ifie
+pig3n
+p2il
+3pile
+pill5in
+5pilo
+pi3lot
+pim2
+pin4e
+pin5et
+3pinge
+p4inn
+5p4ins
+3pi1o
+pip4a
+pi4pe
+5piq
+pir5ac
+pir4t
+p4is.
+p4isc
+pis2s
+piss5a
+pis5til
+pis4tr
+p2itu
+2p3k2
+p2l2
+1pla
+pla5no
+plant5er
+plas5tici
+pla5t4o
+4ple.
+4pled.
+3pleg
+3plen
+2ples
+4plism
+4plist
+plu2m
+plum4be
+plumb5er
+p4ly
+2p1m
+2pn
+pnos4
+1po
+4po.
+po3ca
+3pod
+4pof
+2p5oid
+pois5i
+po5lemic
+po4ly1
+poly3s
+poman5
+pom4e
+p4o2n
+pon4ac
+pon4ce
+pon4i4e
+3ponif
+pon5ta
+2pony
+po4pa
+po5ple
+4porato
+por3ea
+4pored
+pori4f
+por3p
+3port
+por5tie
+3p4os
+pos1s2
+po1te
+poult5e
+pound5er
+pout5er
+p5oxi
+5poy
+4p1p2
+ppar3
+pparat5
+p4pene
+ppet3
+pph4
+ppi4c
+p4pled
+p5pler
+p5plet
+ppress5o
+pprob5a
+1pr2
+prac1
+pra5d
+prar4
+4pre.
+preb3
+pre1d
+pref5ere
+prel5ate
+3prem
+pre5mat
+pren3
+pres3a
+pre5scin
+p3rese
+5pressi
+5prici
+pri4es
+4pri4m
+pring5er
+pring5i
+4prio
+p5riol
+pri4os
+pris5in
+priv2
+4priva
+4pro.
+pro3bo
+p3roc3a
+pro4ch
+pro1l
+pron4a
+proph5e
+propyl5
+pro3r2
+pros4i
+pros5tr
+pro3th
+4pry
+2ps2
+p3sac
+psal5t
+p3sh
+p1si
+p5sin.
+pso3m
+p1st
+psul3i
+3psyc
+2pt2
+pt3ab
+p4tad
+p4tan
+p2tar
+pt5arc
+p1ted
+p5tena
+pt5enn
+5ptery
+p5tet
+pt4ic
+p5tie
+p3til
+p2t3in
+pt4ine
+p3tise
+p5tisi
+p5tom
+p4tr
+p1tu
+pub1
+pu5be
+puc4
+puch4
+pudi4c
+pu5er
+puff5er
+pu4lar
+pu5lar.
+pu5lis
+p4u4m
+pum4o
+p4un
+pun4a
+3punc
+pun5gi
+pun3i
+pun2t
+pu3pi
+pur5b
+pur3c
+p4us
+push4ie
+pu3tat
+p5u5tis
+pu3tr
+4p1w
+2p4y
+py3e
+3pyg
+3pyl
+pyr3e
+py5t
+4qf
+qu4
+5quak
+4quar
+qua5tio
+2que.
+3quera
+4quere
+4ques.
+1quet
+5quina
+5quir
+3quito
+4quitu
+4ra.
+ra3ba
+5rabe
+3ra3bin
+r2abo
+ra3bol
+rac4a
+r2acu
+rac5ula
+ra5culo
+r2ad
+ra4de
+rad4ine
+rag5ou
+ra3gr
+3raill
+ra5ist
+4ralia
+ra3ly
+r5amn
+ra3mu
+r4andi
+ran5dish
+ran4du
+ra5nee
+ran4gen
+ra3nia
+ra3noi
+ran2t
+ran5ted
+5rantel
+rant5in
+rant5o
+rapol5
+rap5to
+4rarc
+rare2
+rar3ef
+rar5ia.
+ras2
+ras3c
+r2ase
+r4ask
+ra3so
+rass5a
+rass5in
+r4as5te
+ra5tap
+ra5tat
+rat5eu
+rath4e
+rat3if
+rat4in.
+ra5toc
+5ra5tol
+4r4atom
+ra4tos
+ra5tui
+rat5um
+rat3ur
+rav5ai
+rav5eli
+rav3it
+rawn4
+ra3zie
+r1b
+r2ba
+r4bag
+rb3ali
+rb1an
+rbar3
+r2be
+rbe5c
+r3bel
+rbel5o
+rb3ent
+r4bes
+rb2i
+rbic4
+rbic5u
+r2bin
+r5bine
+rbit1
+r2bos
+r4bum
+rbu5t4
+r1c2
+rcant5
+rca4s
+r4cele
+rcen5er
+rcen5tena
+r2ces
+rcha3i
+rch3al
+rch5ard
+rch5ate
+r3cheo
+r4cher
+rch4ier
+r4chin
+rch3is
+r3chit
+rcil4
+rci5nog
+rcis2
+rciz4i
+r2cl
+r4cle
+r5clo
+rcolo4
+rcrit5
+rcriti4
+rct4
+rc5ti
+r5dam
+r4d1an4
+rd4an.
+r2dar
+r5de4l
+r3dens
+r4des
+rd5ess
+rd5ian
+r4die
+r5dig
+rd2in
+rd3ing
+rdi3o
+rd1is2
+rd5ler
+rd3li
+r4dol
+rd5ous
+r2e
+4re.
+rea4
+r4ea.
+react5iv
+re3af
+re3ag
+re5alt
+re5amb
+re3ani
+re5ant
+re5asc
+reas3o
+r5eau
+3reav
+r5ebrate
+reb5uc
+re3cal
+rec4ce
+re3ce
+reced5en
+re3cha
+reci5si
+r4e1c2r
+rec4t3r
+re3cu
+2r4ed
+re1de
+re3dis
+re4dol
+re1dr
+reed5i
+ree3m
+3reer
+re2fe
+re3fin
+re5gali
+re5gra
+re3gre
+reg3ri
+re3gro
+reg3ul
+rei4
+re3if
+re1in
+re3is
+reit3
+reit4i
+re1la
+re1le
+4reled
+re3lia
+rel3ic
+re5lig
+reli4q
+rel3li
+r5em.
+rem5ac
+reman4d
+rem5ato
+r3emp
+rem5ul
+rena4
+ren5at
+r4endi
+rene2
+ren4es
+r4eni
+renic5
+ren4it
+ren4ter
+re5num
+re3oc
+3reog
+re5ola
+re3oli
+3reos
+re1pe
+re4per
+re5ph
+rep5id
+re3pin
+re3ple
+re4pre
+re1q
+rer4a
+rere4
+re5rea
+re3r2u
+2res.
+re3scr
+re3sel
+re3sem
+re3ser
+res5ist
+re5sit
+re3spe
+r3esq
+re5stal
+rest5er
+re5stu
+3retar
+re3ten
+re4t4er3
+re5term
+re1t2o
+re5ton
+re3tra
+re3tre
+re5tri
+re3tu
+re3un
+reur4
+re1v
+rev3el
+revi4t
+r1f
+rf4l
+rfu4m
+r1g2
+r4gag
+rgal4
+r2ge
+r5gee
+r4gene
+r3geo
+r3ger
+rg5li
+rgu5f
+rh2
+r5hel4
+rhe5ol
+rhos4
+3r2hy
+4ri.
+ri3am
+ri5ap
+2r2ib
+ri3bo
+rica5tu
+2rice
+rich5om
+rick4en
+r4icl
+ri5cli
+ri3col
+ri5cor
+ri4cra
+2ricu
+rid4al
+rid4e
+ri5el
+ri3er
+ri2es
+rift5er
+rif5tie
+5rifuga
+ri5gam
+rig5ant
+ri5l4a
+r4ile
+rill5er.
+rill5ings
+4rim.
+ri2ma
+rima4g
+rim5an4
+rim3at
+r4imb
+rimen4
+4rimm
+4rims
+rin4e
+r4inet
+ring5ie
+rink5er
+r4ino
+rin4s
+rins5i
+rin4t5er
+ri3o
+rio4g
+5rione
+ri4op
+ri5or
+ri5p2a
+ri5pie
+rip5lica
+ri5r
+ris4c
+ris4is
+r2isp
+ris4pa
+ris4pe
+ris5ter
+4risti
+ri3ton
+r5it5r
+r2i4v
+riv4al
+ri5vall
+riv5eli
+riv3en
+riv3il
+5ri5zo
+r1j
+r2k
+r5kas
+rk5ati
+r5kell
+rk5eni
+rk1er
+r3ket
+r3key
+r3kier
+r5kiest
+r5kin.
+r5kins
+rks4me
+r1la
+rlat3
+r1le
+r3l4ic
+r3line
+r5lins
+r4lit
+r1lo
+r3mac
+rma5ce
+r5mad
+r2mal
+r4manc
+r4mano
+r4mari
+r4mary
+rm4as
+r4m3ati
+rma5toc
+r5ma5tol
+rme2a
+r2mic
+rm4ica
+r5m2id
+rm4ie
+r5mig
+rmil5
+rmin4e
+rm3ing
+r4ming.
+r4mite.
+r3moc
+rmol4
+r1mu
+rmu3li
+r2n2
+rn3ab
+r3nac
+r5nad
+rn5ar
+rn3ate
+rn5atin
+rn5edl
+r3nel
+r3ness
+rn5est
+r3net
+r3ney
+r5nia
+rn5ib
+r3nic
+rn3in
+rn4ine
+r1nis
+rn3ist
+rni5v
+rn3iz
+rn5n
+r3noc
+r5nog
+rnt4
+rnuc4
+r5nut
+4ro.
+ro4be
+rob3le
+ro5br
+5rocc
+ro3cu
+r2od
+ro3do
+rody4n
+ro1fe
+ro3gn
+4roi
+ro3ic
+roid3
+ro3la
+r4oled
+rol5ite
+ro3ly
+romant4
+ro5mel
+ro3mit
+romolec5
+rom4p
+ro3mu
+ron4ac
+4ronal
+ro5nate
+ron5ch
+ron4do
+rong5i
+r5onme
+ro1no
+ron4ton
+roo4
+1room
+5root
+r2op
+4rop.
+ro3pel
+rop4ine
+r4opr
+r5opte
+ror5d
+4rore
+r4osa
+rosi4a
+ro5sol
+4ross
+ro5stat
+ros4ti
+ros5tit
+ro3tat
+ro1te
+ro4ter
+ro3tu
+5roue
+roul3
+round5er
+rou5sel
+4rouss
+r4out
+r4ow
+row3er
+4rox
+rpass5in
+rp3at
+rpe2
+r3pent
+rp5er.
+r2ph
+rph5e
+r3phol
+rp3ing
+rp5is
+rpol3a
+r2p5ou
+rpre4
+rpret5er
+r3pu
+r1q
+4r1r4
+rra4h
+rran5gi
+rrap4
+rre2l
+r4reo4
+rrhe3
+r3ri
+rric4
+rricu4
+rri4fy.
+rrin5ge
+rri4os
+rrob3
+rrog5
+rro4t
+r5ru
+rry5
+r3ryi
+r3rym
+2r1s2
+r4sag
+r2sal
+r5salis
+r5saliz
+r2san
+r4sar
+r2se
+r3sea
+r3sec
+rsel4
+rsell5
+rs3er.
+rs3ers
+r3set
+r3sha
+r3shi
+r4shie
+r5si2a
+rs3ib
+r5sie
+r4sil
+rs3ing
+r3sio
+r4sit
+rs3iv
+rs5li
+rstor4
+rstrat4
+r3su
+r4sus
+rswear4
+rt2
+rt3ab
+rta4g
+rt3age
+r3tar
+r4tare
+rt3c
+r1ted
+r4tedl
+r3tel4
+r5tend
+rt3eni
+r5terer
+r5tet
+r5teu
+r4thene
+rth2i
+rth5ing.
+rth3ri
+r1t4ic
+r4ticl
+r5tiet
+r5tila
+r5till
+rtil5le
+rt5ily
+r2tin
+r3tina
+rt3ing
+r3titi
+rti5tu
+rt3iv
+r2tiz
+rt5let
+rt3li
+r1t4o
+rto5l
+rt5rid
+rt5si
+r1tu
+r4tus
+rtwis4
+ru3a
+r4ube
+rub3r
+ru4ce
+r2ud
+rue4l
+r4uf
+ru3in
+ruis5i
+ru2l
+r4ume
+r4umi
+ru4more
+run4cl
+runcu4
+runcul5
+run2d4
+run2e
+ru5net
+run4g
+run4t
+ru2p
+rup5lic
+ru3pu
+rur4i
+rus4p
+rust5at
+rust5ee
+rus5tic
+rus4t5u
+ru3tal
+ru3ti
+r1v2
+r4vanc
+r2ve
+rvel4i
+r3ven
+rven4e
+rv5er.
+rv5ers.
+r3vest
+r3vet
+r3vey
+rvi4t
+r1w
+2r2y
+ry5er
+5rygm
+ry4go
+rym4b
+3ryngo
+4ryngol
+ryp5a
+ry2t
+ryth4i
+r2z
+2sa.
+2sab
+s3abl
+5sack
+sac4q
+s3act
+sac4te
+sad5i
+sad5o
+5sae
+sa4g
+3sai
+sain4t
+5sak
+sa2l
+sa5lac
+3sale
+sa3lie
+s4al4t
+sa3lu
+sa4m
+sa5min
+sam5o
+samp4
+san3a
+san4ded
+s4an4e
+san5gar
+san5if
+2sant
+sant5ri
+s3ap
+sap3r
+sar5s
+3sas.
+sas3s
+sassem4
+s2a1t
+sa2te
+s5ativ
+s5atory
+sat1u
+1sau
+sau5ci
+saur5
+savi2
+sa3vou
+4s3b
+s4bei
+sbe4s
+sby3
+sc2
+s1ca
+sca5len
+sca2p
+scar4c
+scav3
+s1ce
+s4ced
+4scei
+4s4ces
+sch2
+scid5
+s2co
+scof4
+s4coi
+3s4cope
+5scopic
+5scripti
+2s1cu
+4scura.
+4scuras
+2s1d2
+2se.
+se2a
+s4eam
+seas4
+sea3w
+sec4a
+sec5an
+se2co
+secon4
+2sed
+se4da
+sed4it
+3seed
+3sei
+sei3g
+5sela
+4sele
+se3lec
+selen5
+5self
+2s4eme
+sem2i
+semi5d
+sem4o
+sen5g
+3sens
+sen5sati
+sen5sori
+sent5ee
+5sentm
+seo5log
+se2p
+sep3a
+sep4si
+3sept
+sep3ti
+ser4an
+se5rene
+ser4to
+4servo
+s2es
+4ses.
+se5sh
+s5esta
+1set
+5seum
+3sev
+sev3en
+sewo4
+3sex
+sexo2
+3sey
+2s1f
+sfact5o
+sfi4
+sfor5e
+sfran5
+2s1g4
+s2h
+4shab
+sh4abi
+sh1er
+sh5et
+shil5li
+sh5iness
+sh3io
+5ship
+s3hon
+4shu4
+shys4
+si4all
+siast5
+4s1ib
+s3icat
+3sicc
+2s5icl
+si4cu
+si5cul
+s4id
+4sid.
+si4de
+side5l
+sid3en
+sid5eri
+4sids
+5sid5u4a
+si4ers
+sif4
+sif5f
+si4g
+1sili
+sim4ply
+2sin
+s2ine
+sin5et
+5sing5er
+sin3i
+5sink
+si5nol
+si3nus
+1sio4
+4sio.
+si5o5s
+3sip
+si4pr
+s1is2
+4sish
+4sism
+sist3a
+sist3o
+s1it
+si4te
+sit5om
+4s1iv
+5siva
+s1j
+s2k2
+4sk.
+s5kar
+ske2
+s3ket
+s5key
+s3kier
+s5kiest
+sk5ily
+sk5ines
+4sks
+sky3l
+2sl4
+slang5i
+s1lat
+3slau
+slav5eri
+s2le
+s5lea
+s3let
+s5ley
+s3lit
+slo3c
+slov5
+s5luc
+2s1m4
+s3man
+smas4
+s3men
+smi3g
+3smith
+smo4d
+smu5tatio
+s1n2
+s2na
+2so.
+2s3od
+sod3o
+sody4
+3soe
+4s3oid
+s2ol
+sol3a
+so5lan
+sol4er
+so3lic
+3solve
+solv5er
+1so2m
+soma5to
+3some.
+so5mete
+so3mo
+s2ona
+son5at
+s4one
+son5or
+s2o2p
+4sor3ie
+5sorio
+sor4it
+s5oriz
+sor3o
+s3ory
+sos4
+4sose
+so5th
+3sou
+sov5e
+so3vi
+spast4
+spens5a
+4speo
+3sperm
+s5pero
+spers5a
+sph2
+s3pha
+3spher
+spic5ul
+s2pid
+sp5id.
+s5pier
+spil4l
+s2pin
+sp3ing
+spi5ni
+spital5
+s1pl
+sple2
+s4ply
+s2po
+5spom
+spon5gi
+3spons
+3spoon
+spru5d
+s4py
+s1r
+sre2
+sreg5
+srep5u
+sre4s
+4ss
+s1sa
+s5sam2
+s1sel
+s5seng
+s3sent
+ssent5er
+ss3er.
+s5seri
+ss3ers
+s5seu
+ssev3
+s3sia
+s1sic
+s1sif
+ss1in
+ss4in.
+s4sine
+ss4is.
+s3s2it
+ss4ivi
+ss5li
+ss3m
+s4sn
+s1so
+ssol3u
+ssolu4b
+s4sore
+ssor5ial
+ss5po
+s1su
+ss3w
+st2
+4st.
+stab2
+sta3bi
+4stak
+s4tale
+stant5iv
+s3tas.
+5static
+st3c
+ste2
+ste5ar
+ste5at
+s4teb
+s4tec
+4s1ted
+s4tedl
+s4tedn
+4stere
+ster4ia
+s4tern.
+s3tero
+st5est
+s1th
+s4tha
+s4thu
+s3ti3a
+3stick
+s3ticu
+stil5ler
+s4tily
+st3ing
+5s4tir
+s5tiz
+4stl
+st3ler
+st3li
+s4toe
+3ston
+stone3
+ston4ie
+s5torat
+stor5ian
+s4tose
+s2tou
+s4tray
+stre4
+strep3
+3struc
+stru5d
+2st3s
+s1tu
+s4tud
+stu4m
+stur4e
+4stw
+s4ty
+1styl
+4su.
+su5an
+su4b1
+subt2
+suct4
+sud4a
+su3et
+suf3f
+sug3
+3sui
+sui5c
+su5ing
+1s2ul
+s4u2m
+sum3i
+sun4a
+su5pe
+su3pin
+supra3
+sur4as
+sur3c
+s4urg
+sur3pl
+su5su
+su5z
+2s3v
+svers5a
+sves4
+svest5i
+sw2
+5swee
+swell5i
+4swered
+2swo
+s2y
+4sy.
+sy4bi
+sy1c
+sy4ce
+sy4chr
+sy4d
+1syl
+3syn
+syn5e
+sy5pho
+syr5i
+2ta.
+2tab
+ta5blem
+3tabli
+t2abo
+ta3bol
+ta4bou
+t4a3ce
+ta5chom
+ta3chy
+ta4cid
+t5ade
+tad4i
+5t2adj
+ta5dor
+tad2r
+tae5n
+taf4
+tage5o
+ta5gog
+3tagr
+3tah
+1tai
+3tail
+2tair
+t4ais
+1tak
+tal2c
+tal5ent
+ta5lep
+t4alia
+t4alin
+tal4l3a
+5tallu
+t2alo4
+ta3ly
+tam5ari
+5ta3met
+tamorph5
+tan5at
+tand5er
+t4ane
+5tanel
+tan5ie
+t5aniz
+tant5an
+ta4pa
+1tard
+tar5ia.
+tark5i
+tar3n
+3tarr
+tas3i
+t3asm
+5tass
+tas4t
+ta3sta
+tast5i4c
+t4ateu
+3tatis
+t4ato.
+tat4ou
+tat4r
+tat3ut
+tau3to
+t5awa
+tawn4
+t4ax
+4t3b
+2tc2
+t1ca
+tcas4
+tch5ett
+tch5u
+4t1d4
+4te.
+te5cha
+5techn
+te3cr
+t4ed
+te5d2a
+4tedd
+4tedo
+4teei
+te2g
+5tegic
+t3ego
+teg1r
+teg3u
+tei4
+te2l
+4teled
+tel5iz
+1tell
+4te3lo
+3tels
+tem3a
+4teme
+te5mon
+ten4ag
+4tenar
+4tene
+t5enm
+5tenna
+4teno
+te5nog
+tent4a
+te2o
+teo5l
+2tep
+te3pe
+tep5i
+tera4c
+t4erag
+t4erato
+3ter3b
+5terd
+2tere4
+ter3eb
+ter5ec
+5terel
+te3reo
+3teres4
+1teri
+ter3ia
+ter5id
+ter5if
+t4erin
+ter5iorit
+ter3it
+ter5k
+5ternit
+ter5no
+3terr
+2t2es
+4tes.
+tesi4
+t3esq
+t3ess.
+t5esses
+tes4t
+test3a
+5teste
+test5er
+test5in
+test5or
+tes5tu
+teti4
+tet1r
+tetr5o
+tew3ar
+3tex
+2t3f
+t3g
+2th.
+tha4
+th5al.
+thal3m
+4the.
+4thea
+th5eas
+4thed
+1thei
+3theo
+theo3l
+t4her
+5therap
+th5erc
+t5herd
+4thered
+th3ern
+th3ery
+4thi.
+t5hill
+3think
+5th4io
+th4is.
+th5lo
+2thm2
+th4mi
+th3oli
+4t5hoo
+4thopt
+4thores
+3thot
+5thoug
+1th2r
+2ths
+5thur
+5thym
+3thyr
+thys4
+4ti.
+1ti2a
+ti3ab
+2t3ib
+5ti5bu
+t1ic
+t3ic.
+tic5as
+t2ici
+tici5ar
+3ti3cin
+t4icity
+ti3col
+tic1u
+4ticule
+t3id.
+t4ida
+3tidi
+ti3die
+t5ids
+3ti2en
+1tif2
+ti3fe
+4tiff
+4tific.
+3tigi
+tigi5o
+4tigm
+5tigu
+ti4ka
+ti4let
+5tilin
+t4ill
+til4l5ag
+t4ilt
+1tim
+tim1a
+5timet4
+t1in
+5ti5nad
+4tined
+tin3et
+ting5ing
+3tinn
+4tins
+t4int
+tin4te
+tin5ted
+tint5er
+tin3ue
+1tio
+ti3oc
+tiol3a
+ti5omo
+4tionem
+1tip
+ti5plex
+ti3pli
+ti4q
+ti5qua
+t3iris
+2t1is
+3tisan
+tis4c
+tish5i
+3tiss
+tis2t
+5t4iste
+t4istr
+ti5t4an
+tith4e
+tit5il
+t3itis
+3titl
+ti3tra
+3tiu
+2t1iv
+tiv5all
+t3ive
+tiv3is
+2tl
+t1la
+tlant4
+5tleb
+5tledr
+3tlef
+3tlem
+5tlen
+5tletr
+5tlew
+t1li
+tlin4
+4t3m
+tmet2
+tmo4t5
+2t3n2
+t4nere
+2to.
+toas4
+to1b
+4tocc
+tode5c
+tod4i
+to5do
+3toe
+1tog
+2t3oid
+5tok
+4toled
+tol4l
+tolu5
+to5ly
+tom3ac
+toma4n
+tomat5ol
+tom4b
+to4mog
+tom5os
+ton4e
+ton5ea
+3tonn
+ton3s
+top4e
+to5pia
+to4pos
+t1or
+to5rad
+4tore
+tor5er
+tori4as
+tor5oi
+tor5p
+tor4q
+3tos.
+to3s4p
+tos4t
+to5str
+to5talis
+to5taliz
+to3tem
+tot5u
+tou4f
+5tour
+t3ous
+4tov
+to3war
+t3p
+tr2
+tra4co
+4tradd
+4traist
+tra5q
+trarch4
+tra5ven
+tra5vers
+trav5est
+3tray
+4tre.
+4tred
+tre4mo
+tren4
+trend5i
+tre5pr
+tres4s
+4trew
+t5ricl
+3tricu
+t2rie
+tri5fli
+trifu5ga
+2tril
+tri3li
+tri3me
+t2rit
+4trix
+t4rod
+tro5f
+5troop
+tro4pha
+tro3sp
+t2rot
+t5roto
+tro1v
+3troy
+t4ruc
+tru3i
+2t4ry
+trys4
+4t1s
+t2sc
+ts4h
+ts2i
+t4sil
+tstay4
+2t1t4
+tta4
+t3tab
+t5tan
+t5tas
+t3ted
+t4tere
+t5terer
+t5test
+t3ti
+tti3tu
+ttitud4
+ttitu5di
+t3tler
+t3tli
+t5toi
+t5tor
+t3tos
+tt5s
+t4tupe
+t2ty
+4tu.
+tu1a
+tu4al5li
+tuari4
+tu4bin
+tu5bu
+tu5den
+tud5ie
+tu5en
+4tuf
+tu1i
+tu4is
+2tum.
+3tumi
+4tums
+3tun
+tun4a
+tu4ne
+tun5it
+tup5let
+tup5lic
+tu5rac
+t4uran
+turb3a
+tur4d
+turf5i
+5turit
+tur4n
+5tur5o
+1tut
+4tut4iv
+t1w
+t3wa4
+t2wi
+twi5li
+t3wit
+t3wo
+twon4
+4ty.
+ty4a
+5tych
+ty4let
+tyl5i
+ty5mi
+1typ
+3type
+1tyr1
+2tz2
+t5zia
+t5zie
+2ua2
+ua3ci
+u2ag
+ua5h
+u1al
+ua5lu
+uan4o
+uant5is
+uant5it
+uar3a
+uar2d
+uar3i
+uari4n
+uar5ters
+uar4t5i
+ua5tern
+uba4
+ub5bly
+u1b2i
+u4bicu
+ub3lin
+ub5lo
+ub3ra
+4uc
+u1c2a
+uccen5
+u4cend
+u4ch
+u5chr
+uc3l
+u4com
+uco5t
+uc2tr
+uc3ub
+uc5ul
+u5cum
+u5dac
+ud1al
+ud4e
+ud5ep
+u4der
+udev4
+ud4g
+udi4cin
+ud3ied
+u5dinis
+udi3o
+u5ditio
+u2do
+u5doi
+ud5on
+u5dor
+ueb4
+u4ed
+uen4o
+uen4ter
+uer3a
+ues4s
+uest5rat
+ues5tri
+ue4t
+uf2
+3ufa
+u3fl
+u4fo
+uft4
+uga4c
+ug5lif
+ug2ni
+u4go
+ug3ul
+ug3ura
+uhem3
+2ui2
+ui3al
+u2ic
+uicent5
+uid5o
+uil4a
+uild5er
+ui3lib
+uil4t
+uinc5u
+uin4s
+uint4
+uin4ta
+ui5pr
+uis3er
+uis4t
+uisti4
+uit5er
+ui5val5
+ui3vo
+u2iz
+4ul.
+u1la
+u4lab
+4ulac
+ul5ard
+u5lat
+ul4bo
+ul3ca
+ul4ch
+5ulche
+5ulchre
+4ulea
+u5lee
+u1len4
+4ulenci
+u5lent
+ulet4
+ul4ev
+ul2fa
+ul2i
+ul4ia
+u3line
+ul3ing
+ul5ish
+u5liti
+u5lity
+4ull
+ul4lat
+ul4l5ib
+ul4lis
+ul4lit
+ul3m
+u1lo
+u5lom
+ulph3i
+ulph3o
+ulp5ing
+ul4po
+2uls
+ul3sif
+u1lu
+ul1v4
+u1ma
+um3am
+umar4
+u5mas
+um4bar.
+um2bi
+umen4t
+u1mi
+u4mic
+u2m5if
+umi4fy
+umi5lia
+umin4ar
+u4mined
+u4m3ing
+u4mora
+u4mos
+um2p
+um4pa
+ump3er
+ump5li
+umpt4
+ump5te
+u1mu
+umu4lo
+un1
+u4n3a4
+un5ab
+unabu4
+un4ae
+un4as.
+un2ce
+un4dal
+un3ded
+unde4t
+undeter5m
+undi4c
+un4die
+un3do
+un4dus
+u3n2er
+unho5li
+un2i
+u1nic
+un4ie
+un3in
+un4ine
+uni5p
+uni3so
+un3ist
+uni1v
+un3iz
+unk5eri
+un5ket
+un3kn
+2unn
+un4nag
+un5o
+un5r
+un3s4
+un5sh
+un2ti
+until4
+unu4
+un3us
+uo3de
+uodent4
+u5oros
+u3os
+uo5tatio
+u1ou
+2up
+u1pat
+u1pe
+u5pee
+uper3
+u1ph
+u5pid
+up3ing
+u4po
+u5pol
+u2pr
+upre4
+u5quet
+u4r
+ur1a
+4ura.
+ura4ci
+4urae
+ura2g
+4uranti
+uras5
+urb5ing
+ur2c
+urc3a
+ur5den.
+ur5deni
+ur5die
+ur4du
+ur3ea
+ur5ee
+ur1er
+ur3ers
+ur1e2t
+ur3ett
+ur2f
+ur3fa
+ur1i
+u5ri5cu
+ur4ie.
+ur5ifie
+uril4
+ur4ili
+ur5ion
+uri4os.
+url5er
+ur5lie
+url5ing
+ur1m4
+urn3al
+urn3er
+urn5s
+ur1o
+uro4d
+ur5o4m
+ur5ot
+uroti4
+urpen5t
+urph4
+ur2s
+urs5al
+urs5er
+ur3sh
+urs3or
+ur5ta
+ur1te
+ur5tes
+urth2
+ur3the
+urti4
+ur1u
+ur4va
+u3sad
+us3ag
+us3al
+us4ap
+us3at
+2usc
+us4can
+ush5a
+us5ian
+usil5
+u4s1in
+usk5er
+us1p
+us4pa
+uss4e
+4ust
+us3tac
+us5tan
+ust4ic
+us5tici
+ust5ig
+ust3il
+us1to4
+us1tr
+us4tre
+usur4e
+us5uri
+u3tane
+utch4e
+ut5eni
+u5teo
+u4tere
+ut2i
+u3tie
+ut3ing
+u5tini
+u3tio
+ut5ism
+ut3ist
+5u5tiz
+ut3le
+utli4
+ut2o
+u4to5s
+u4t1ra
+uts2
+ut5sm
+ut4tone
+u3tu
+u4tul
+uu4
+uv2
+u4va
+uve2
+uven3
+uv5eri
+u5vin
+ux2o
+uy4a
+uy5er
+4va.
+2v3ab
+5vac
+va1ca
+va5ceo
+vacu1
+v4ad
+3vag3a
+va4ge
+4vaged
+vager4
+vag5r
+v1al.
+1vale
+vali2
+va5lie
+val4ise
+5valu
+5val4v
+vam4i
+va5mo
+5vann
+vanta4
+4vantl
+var4is
+4vase
+vas5el5
+v5a4so
+vast3a
+v4at.
+5vatee
+vat4ina
+4vatu
+2ve.
+vect4
+ve3g
+3vei
+2vel
+vel3at
+4vele
+v3eler
+ve5line
+v1ell
+v4ella
+vel5ler
+vel3li
+vel5opi
+ven4al
+ven4do
+ve1ne
+ve5nia
+vent5o
+ven4tr
+4venu
+v5en5ue
+5ve3o
+5verb
+verde5v
+4v4ere4
+ver5ea
+ver3ei
+v5erie
+ver3m4
+ver4ne
+5verse
+4ves.
+4vi.
+5vialit
+vi4atr
+vi1b4
+vic2
+vi4ca
+vi5cari
+vice3r
+5vict2
+5vicu
+5vider
+vign3
+vi4l
+vil3i
+3vili4a
+v5ilise
+v5ilize
+vil5lin
+vim4
+5vime
+2v1in
+vin4ac
+3vinci
+vin2e
+5vinit
+v5iniz
+vint4
+vin5ta
+3vi1o
+viol3
+vi5om
+5vi3p
+vire4
+vi5rid
+vir3u
+5visecti
+5visio
+v3ism
+2v5ist
+vi2t
+vit2a
+vi3tal
+vi5tel
+v5itie
+vit1r
+vi3tu
+v3ity
+viv5al
+viv5or
+vi5zo
+1vo
+2vo.
+vo2l
+vo5litio
+vol4ubi
+volv4
+4von
+vo5rac
+3vorc
+4vore
+3voro
+vo3tar
+2vow
+vr4
+v5ra4
+v5ri
+v5ro
+vrot4
+4vs
+v3ure
+2vv2
+v5ver
+v5vi
+4vy
+4wab
+wag3o
+wais4
+w3al.
+wall5er
+w3als
+wan5gli
+wank5er
+war5ded
+ward5er
+ward5r
+war4f
+war4te
+war5thi
+wass4
+was4t
+wa1te
+wav4ine
+w1b4
+w4bon
+w5c
+w5die
+w3dr
+we4b
+w4ed
+3weed
+5wei
+weight5i
+weir4
+wel3i
+weliz4
+wel4izi
+wel4li
+went4
+wes4
+west3
+w5est.
+w5f
+wh2
+w5hid
+wi2
+wid4e
+wi5er
+will5in
+wim2p
+win2e
+wing5er
+win4tr
+3w4ise
+with5eri
+w3la
+wl1er
+wl1i
+wl4ie
+w1m
+1wo
+wol4
+wol5ver
+3wom
+won2t
+word5i
+wotch4
+woun4
+wp5in
+wra4
+ws5ing
+w5ster
+wt4
+w5te
+w3to
+wy2
+wz4
+x1a
+x4ach
+x4ade
+x2ag
+x3agg
+xa5met
+x3ami
+xan5d
+xano4
+x2as
+xas5p
+x3c4
+xcav3
+xcor5
+xe4
+x1ec
+xec3r
+xe5cutio
+xecut5o
+xe2d
+x5edl
+x5edn
+x5eg
+x1em
+x3en
+xen4op
+x3er
+xer4g
+xer3o
+x1h
+xhort4a
+x1i
+x3ia.
+x4ias
+xi4c
+x5ige
+xim3a
+x4ime
+ximet4
+x3io
+xi4p
+x4it.
+x4its
+x1o
+x4ode
+x5om
+xo4mat
+xo4n
+x4os
+xotrop4
+x3p
+xpel4
+xpo5n2
+xpoun4
+x1s2
+x1t2
+x4ted
+xtens5o
+xter3i
+xter4m3
+xtern3
+x4th
+xti4
+xtra5d
+xtra3v
+xtre4
+xu4o
+x1ur
+xur4b
+x5us
+x5w
+xx4
+xys4
+xy3t
+y1a2
+y5ac
+1y2ar
+3yard
+yas4i
+4y1b
+yb2i
+yca5m
+y5chede
+ych5is
+y3cho
+y4chose
+yc1l
+yclam4
+y4coli
+y4coll
+ycom4
+y2cos
+y1d4
+yda4
+yder4
+ydro5s
+y4drou
+y3ee
+yel5o
+y3en
+y1er
+y3est.
+yes5te
+y5ett
+y5f
+y1g
+ygi2
+ygi5a
+y3gl
+ygo4i
+y1h
+y1i
+y3in
+yle2
+ylin5de
+yllab5i
+yl3os
+yl5ou
+y1me4
+y3men
+y5met
+y5mia
+ym5in
+ymot4
+ym4pha
+yn1
+ynago4
+ynand5
+yn5ap4
+yn5ast
+yn4ci
+ynd4
+yn2e
+yn3er
+yng4
+yn4gol
+yni4c
+yn4y
+y1o2
+yo3d
+yo4gis
+youn4
+young5
+2yp
+yp5al
+yper3
+y5pere
+y4peri
+y4pero
+y4pet
+y2ph
+yph4e
+yph3i
+y4p1i
+yp1n
+ypo1
+y4pox
+y2pr
+yp5ri
+yp4si
+yp5syf
+ypt3a
+y5pu
+y3rag
+yr3at
+yr3ic
+y5rig
+yr3is
+yr3i4t
+yr5olo
+yr4r
+yr4s
+yr5u
+4y2s
+ys5ag
+ys5at
+y3s2c
+y3sh
+ys1ic
+ys3in
+ysi4o
+yso5
+ys4so
+ys1t
+ys4to
+y3u
+yv4
+y3w
+yz5er
+yzy4
+z1a1
+2za.
+za4bi
+za2i
+z4as
+za4te
+zd4
+zeb4
+ze4d
+zen4a
+z5eng
+zer5a
+z3et4
+z1i
+zib5
+5zic4
+z2ie
+zi5m
+zin4c3i
+z3ing
+zing5i
+z4is
+3zlem
+z3ler
+z3li
+4zo.
+5zoa
+zo3an
+3zoo2
+zo3ol
+zo3on
+zo5op
+zo5oti
+zo5p
+zot2
+z5s
+5zum
+4zy.
+zz2
+z3zar
+z5zas
+z3zie
+zzo3
+z5zot} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-gb.rme b/Master/texmf-dist/tex/context/patterns/lang-gb.rme
new file mode 100644
index 00000000000..ce156c82421
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/lang-gb.rme
@@ -0,0 +1,60 @@
+% generated by mtxrun --script pattern --convert
+
+% This file has been renamed from ukhyphen.tex to hyph-en-gb.tex in June 2008
+% for consistency with other files with hyphenation patterns in hyph-utf8 package.
+% No other changes made. See http://www.tug.org/tex-hyphen for more details.
+
+% File: ukhyphen.tex
+% TeX hyphenation patterns for UK English
+
+% Unlimited copying and redistribution of this file
+% is permitted so long as the file is not modified
+% in any way.
+%
+% Modifications may be made for private purposes (though
+% this is discouraged, as it could result in documents
+% hyphenating differently on different systems) but if
+% such modifications are re-distributed, the modified
+% file must not be capable of being confused with the
+% original. In particular, this means
+%
+%(a) the filename (the portion before the extension, if any)
+% must not match any of :
+%
+% UKHYPH UK-HYPH
+% UKHYPHEN UK-HYPHEN
+% UKHYPHENS UK-HYPHENS
+% UKHYPHENATION UK-HYPHENATION
+% UKHYPHENISATION UK-HYPHENISATION
+% UKHYPHENIZATION UK-HYPHENIZATION
+%
+% regardless of case, and
+%
+%(b) the file must contain conditions identical to these,
+% except that the modifier/distributor may, if he or she
+% wishes, augment the list of proscribed filenames.
+
+% $Log: ukhyph.tex $
+% Revision 2.0 1996/09/10 15:04:04 ucgadkw
+% o added list of hyphenation exceptions at the end of this file.
+%
+%
+% Version 1.0a. Released 18th October 2005/PT.
+%
+% Created by Dominik Wujastyk and Graham Toal using Frank Liang's PATGEN 1.0.
+% Like the US patterns, these UK patterns correctly hyphenate about 90% of
+% the words in the input list, and produce no hyphens not in the list
+% (see TeXbook pp. 451--2).
+%
+% These patterns are based on a file of 114925 British-hyphenated words
+% generously made available to Dominik Wujastyk by Oxford University Press.
+% This list of words is copyright to the OUP and may not be redistributed.
+% The hyphenation break points in the words in the abovementioned file is
+% also copyright to the OUP.
+%
+% We are very grateful to Oxford University Press for allowing us to use
+% their list of hyphenated words to produce the following TeX hyphenation
+% patterns. This file of hyphenation patterns may be freely distributed.
+%
+% These patterns require a value of about 14000 for TeX's pattern memory size.
+% \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-hr.hyp b/Master/texmf-dist/tex/context/patterns/lang-hr.hyp
index 598cc36400f..6040f7fb9f2 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-hr.hyp
+++ b/Master/texmf-dist/tex/context/patterns/lang-hr.hyp
@@ -1,29 +1,8 @@
-% context hyphenation file, see lang-all.xml for original comment
+% generated by mtxrun --script pattern --convert
-% source of data: hrhyph.tex
+% for comment and copyright, see ./lang-hr.rme
-% begin description data
-
-% <!-- copied from lang-all.xml
-%
-% <?xml version='1.0' standalone='yes'?>
-%
-% <description language='hr'>
-% <sourcefile> hrhyph.tex</sourcefile>
-% <title>TeX hyphenation patterns for the Croatian language</title>
-% <copyright>
-% <year>1994, 1996</year>
-% <owner>Marinovi\'c Igor (migor@student.math.hr)</owner>
-% </copyright>
-% </description>
-%
-% end of copy -->
-
-% end description data
-
-% begin hyphenation data
-
-\hyphenation {}
-
-% end hyphenation data
+% used:
+\hyphenation{
+} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-hr.pat b/Master/texmf-dist/tex/context/patterns/lang-hr.pat
index 9043e0a3bd1..d45882eae59 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-hr.pat
+++ b/Master/texmf-dist/tex/context/patterns/lang-hr.pat
@@ -1,29 +1,10 @@
-% context pattern file, see lang-all.xml for original comment
+% generated by mtxrun --script pattern --convert
-% source of data: hrhyph.tex
+% for comment and copyright, see ./lang-hr.rme
-% begin description data
+% used: a b c d e f g h i j k l m n o p r s t u v z ć č đ š ž
-% <!-- copied from lang-all.xml
-%
-% <?xml version='1.0' standalone='yes'?>
-%
-% <description language='hr'>
-% <sourcefile> hrhyph.tex</sourcefile>
-% <title>TeX hyphenation patterns for the Croatian language</title>
-% <copyright>
-% <year>1994, 1996</year>
-% <owner>Marinovi\'c Igor (migor@student.math.hr)</owner>
-% </copyright>
-% </description>
-%
-% end of copy -->
-
-% end description data
-
-% begin pattern data
-
-\patterns {
+\patterns{
a1a2
a1e2
a1i2
@@ -1498,8 +1479,4 @@ r2t1n
r2v1n
r1s2t
n2s1t
-l2f1t
-}
-
-% end pattern data
-
+l2f1t} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-hr.rme b/Master/texmf-dist/tex/context/patterns/lang-hr.rme
new file mode 100644
index 00000000000..31dd3308abb
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/lang-hr.rme
@@ -0,0 +1,70 @@
+% generated by mtxrun --script pattern --convert
+
+% This file is part of hyph-utf8 package and resulted from
+% semi-manual conversions of hyphenation patterns into UTF-8 in June 2008.
+%
+% Source: hrhyph.tex (1996-04-10)
+% Author: Marinović Igor <migor at student.math.hr>
+%
+% The above mentioned file should become obsolete,
+% and the author of the original file should preferaby modify this file instead.
+%
+% Modificatios were needed in order to support native UTF-8 engines,
+% but functionality (hopefully) didn't change in any way, at least not intentionally.
+% This file is no longer stand-alone; at least for 8-bit engines
+% you probably want to use loadhyph-foo.tex (which will load this file) instead.
+%
+% Modifications were done by Jonathan Kew, Mojca Miklavec & Arthur Reutenauer
+% with help & support from:
+% - Karl Berry, who gave us free hands and all resources
+% - Taco Hoekwater, with useful macros
+% - Hans Hagen, who did the unicodifisation of patterns already long before
+% and helped with testing, suggestions and bug reports
+% - Norbert Preining, who tested & integrated patterns into TeX Live
+%
+% However, the "copyright/copyleft" owner of patterns remains the original author.
+%
+% The copyright statement of this file is thus:
+%
+% Do with this file whatever needs to be done in future for the sake of
+% "a better world" as long as you respect the copyright of original file.
+% If you're the original author of patterns or taking over a new revolution,
+% plese remove all of the TUG comments & credits that we added here -
+% you are the Queen / the King, we are only the servants.
+%
+% If you want to change this file, rather than uploading directly to CTAN,
+% we would be grateful if you could send it to us (http://tug.org/tex-hyphen)
+% or ask for credentials for SVN repository and commit it yourself;
+% we will then upload the whole "package" to CTAN.
+%
+% Before a new "pattern-revolution" starts,
+% please try to follow some guidelines if possible:
+%
+% - \lccode is *forbidden*, and I really mean it
+% - all the patterns should be in UTF-8
+% - the only "allowed" TeX commands in this file are: \patterns, \hyphenation,
+% and if you really cannot do without, also \input and \message
+% - in particular, please no \catcode or \lccode changes,
+% they belong to loadhyph-foo.tex,
+% and no \lefthyphenmin and \righthyphenmin,
+% they have no influence here and belong elsewhere
+% - \begingroup and/or \endinput is not needed
+% - feel free to do whatever you want inside comments
+%
+% We know that TeX is extremely powerful, but give a stupid parser
+% at least a chance to read your patterns.
+%
+% For more unformation see
+%
+% http://tug.org/tex-hyphen
+%
+%------------------------------------------------------------------------------
+%
+% Hyphenation patterns for Croatian language
+%
+% The first version was realised in late 1994.
+% Second, much more improved version was realised in the beginning of 1996.
+% Date of the last change: 19.03.1996.
+%
+% Marinović Igor
+% migor@student.math.hr \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-hu.hyp b/Master/texmf-dist/tex/context/patterns/lang-hu.hyp
index 4ae05b37e9c..05443476b78 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-hu.hyp
+++ b/Master/texmf-dist/tex/context/patterns/lang-hu.hyp
@@ -1,25 +1,8 @@
-% context hyphenation file, see lang-all.xml for original comment
+% generated by mtxrun --script pattern --convert
-% source of data: huhyphn.tex
+% for comment and copyright, see ./lang-hu.rme
-% begin description data
-
-% <!-- copied from lang-all.xml
-%
-% <?xml version='1.0' standalone='yes'?>
-%
-% <description language='hu'>
-% <sourcefile> huhyphn.tex</sourcefile>
-% <title>TeX hyphenation patterns for the Hungarian language</title>
-% </description>
-%
-% end of copy -->
-
-% end description data
-
-% begin hyphenation data
-
-\hyphenation {}
-
-% end hyphenation data
+% used:
+\hyphenation{
+} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-hu.pat b/Master/texmf-dist/tex/context/patterns/lang-hu.pat
index fff2f455088..a917da76512 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-hu.pat
+++ b/Master/texmf-dist/tex/context/patterns/lang-hu.pat
@@ -1,25 +1,10 @@
-% context pattern file, see lang-all.xml for original comment
+% generated by mtxrun --script pattern --convert
-% source of data: huhyphn.tex
+% for comment and copyright, see ./lang-hu.rme
-% begin description data
+% used: a b c d e f g h i j k l m n o p q r s t u v w x y z á ä é í ó ö ú ü ő ű
-% <!-- copied from lang-all.xml
-%
-% <?xml version='1.0' standalone='yes'?>
-%
-% <description language='hu'>
-% <sourcefile> huhyphn.tex</sourcefile>
-% <title>TeX hyphenation patterns for the Hungarian language</title>
-% </description>
-%
-% end of copy -->
-
-% end description data
-
-% begin pattern data
-
-\patterns {
+\patterns{
.a2
.adás1s
.ae1
@@ -13478,8 +13463,4 @@ z1ű2ző
zz1áll
z2zs2
z3zsí
-zz3st
-}
-
-% end pattern data
-
+zz3st} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-hu.rme b/Master/texmf-dist/tex/context/patterns/lang-hu.rme
new file mode 100644
index 00000000000..c4c8d760599
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/lang-hu.rme
@@ -0,0 +1,70 @@
+% generated by mtxrun --script pattern --convert
+
+% This file is part of hyph-utf8 package and resulted from
+% semi-manual conversions of hyphenation patterns into UTF-8 in June 2008.
+%
+% Source: huhyphn.tex (2003-11-07)
+% Author: NAGY Bence <huhyphn at tipogral.hu>
+%
+% The above mentioned file should become obsolete,
+% and the author of the original file should preferaby modify this file instead.
+%
+% Modificatios were needed in order to support native UTF-8 engines,
+% but functionality (hopefully) didn't change in any way, at least not intentionally.
+% This file is no longer stand-alone; at least for 8-bit engines
+% you probably want to use loadhyph-foo.tex (which will load this file) instead.
+%
+% Modifications were done by Jonathan Kew, Mojca Miklavec & Arthur Reutenauer
+% with help & support from:
+% - Karl Berry, who gave us free hands and all resources
+% - Taco Hoekwater, with useful macros
+% - Hans Hagen, who did the unicodifisation of patterns already long before
+% and helped with testing, suggestions and bug reports
+% - Norbert Preining, who tested & integrated patterns into TeX Live
+%
+% However, the "copyright/copyleft" owner of patterns remains the original author.
+%
+% The copyright statement of this file is thus:
+%
+% Do with this file whatever needs to be done in future for the sake of
+% "a better world" as long as you respect the copyright of original file.
+% If you're the original author of patterns or taking over a new revolution,
+% plese remove all of the TUG comments & credits that we added here -
+% you are the Queen / the King, we are only the servants.
+%
+% If you want to change this file, rather than uploading directly to CTAN,
+% we would be grateful if you could send it to us (http://tug.org/tex-hyphen)
+% or ask for credentials for SVN repository and commit it yourself;
+% we will then upload the whole "package" to CTAN.
+%
+% Before a new "pattern-revolution" starts,
+% please try to follow some guidelines if possible:
+%
+% - \lccode is *forbidden*, and I really mean it
+% - all the patterns should be in UTF-8
+% - the only "allowed" TeX commands in this file are: \patterns, \hyphenation,
+% and if you really cannot do without, also \input and \message
+% - in particular, please no \catcode or \lccode changes,
+% they belong to loadhyph-foo.tex,
+% and no \lefthyphenmin and \righthyphenmin,
+% they have no influence here and belong elsewhere
+% - \begingroup and/or \endinput is not needed
+% - feel free to do whatever you want inside comments
+%
+% We know that TeX is extremely powerful, but give a stupid parser
+% at least a chance to read your patterns.
+%
+% For more unformation see
+%
+% http://tug.org/tex-hyphen
+%
+%------------------------------------------------------------------------------
+%
+% Huhyphn - hungarian hyphenation patterns v20031107
+%
+% Copyright (C) 2003, NAGY Bence <huhyphn@tipogral.hu>
+% This file can be distributed under the terms of the
+% GNU General Public License version 2.
+%
+% \message{Huhyphn - hungarian hyphenation patterns v20031107}
+% \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-il.hyp b/Master/texmf-dist/tex/context/patterns/lang-il.hyp
new file mode 100644
index 00000000000..cce19dd7d0d
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/lang-il.hyp
@@ -0,0 +1,8 @@
+% generated by mtxrun --script pattern --convert
+
+% for comment and copyright, see ./lang-il.rme
+
+% used:
+
+\hyphenation{
+} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-il.pat b/Master/texmf-dist/tex/context/patterns/lang-il.pat
new file mode 100644
index 00000000000..5d809e3b717
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/lang-il.pat
@@ -0,0 +1,1905 @@
+% generated by mtxrun --script pattern --convert
+
+% for comment and copyright, see ./lang-il.rme
+
+% used: а б в г д е ж з и й к л м н о п р с т у ф х ц ч ш щ ь ю я є і ї ґ
+
+\patterns{
+2а1
+а3а
+а3е
+а3і
+а3о
+а3у
+а3ю
+а3я
+а3є
+а3ї
+2е1
+е3а
+е3е
+е3і
+е3о
+е3у
+е3ю
+е3я
+е3є
+е3ї
+2и1
+и3а
+и3е
+и3і
+и3о
+и3у
+и3ю
+и3я
+и3є
+и3ї
+2і1
+і3а
+і3е
+і3и
+і3о
+і3у
+і3ю
+і3я
+і3є
+і3ї
+2о1
+о3а
+о3е
+о3і
+о3о
+о3у
+о3ю
+о3я
+о3є
+о3ї
+2у1
+у3а
+у3е
+у3і
+у3о
+у3у
+у3ю
+у3я
+у3є
+у3ї
+2ю1
+ю3а
+ю3е
+ю3і
+ю3о
+ю3у
+ю3ю
+ю3я
+ю3є
+ю3ї
+2я1
+я3а
+я3е
+я3о
+я3у
+я3ю
+я3я
+я3є
+я3ї
+2є1
+є3у
+є3ю
+є3є
+є3ї
+2ї1
+ї3е
+ї3о
+ї3ю
+2б1к
+2б1п
+2б1с
+2б1т
+2б1ф
+2б1х
+2б1ц
+2б1ч
+2б1ш
+2б1щ
+2в1б
+2в1г
+2в1д
+2в1ж
+2в1з
+2в1к
+2в1л
+2в1м
+2в1н
+2в1п
+2в1р
+2в1с
+2в1т
+2в1ф
+2в1х
+2в1ц
+2в1ч
+2в1ш
+2в1щ
+2в1й
+2г1к
+2г1п
+2г1с
+2г1т
+2г1ф
+2г1ц
+2г1ч
+2г1ш
+2д1к
+2д1п
+2д1с
+2д1т
+2д1ф
+2д1х
+2д1ц
+2д1ч
+2д1ш
+2д1щ
+2ж1к
+2ж1п
+2ж1с
+2ж1т
+2ж1ф
+2ж1х
+2ж1ц
+2ж1ч
+2ж1ш
+2з1к
+2з1п
+2з1с
+2з1т
+2з1ф
+2з1х
+2з1ц
+2з1ч
+2з1ш
+2з1щ
+2к1б
+2к1г
+2к1д
+2к1з
+2л1б
+2л1в
+2л1г
+2л1ґ
+2л1д
+2л1ж
+2л1з
+2л1к
+2л1м
+2л1н
+2л1п
+2л1р
+2л1с
+2л1т
+2л1ф
+2л1х
+2л1ц
+2л1ч
+2м1б
+2м1в
+2м1г
+2м1д
+2м1ж
+2м1з
+2м1к
+2м1л
+2м1н
+2м1п
+2м1р
+2м1с
+2м1т
+2м1ф
+2м1х
+2м1ц
+2м1ч
+2м1ш
+2м1щ
+2н1б
+2н1в
+2н1г
+2н1д
+2н1ж
+2н1з
+2н1к
+2н1л
+2н1м
+2н1п
+2н1р
+2н1с
+2н1т
+2н1ф
+2н1х
+2н1ц
+2н1ч
+2н1ш
+2н1щ
+2п1б
+2п1д
+2п1з
+2р1б
+2р1в
+2р1г
+2р1ґ
+2р1д
+2р1ж
+2р1з
+2р1к
+2р1л
+2р1м
+2р1н
+2р1п
+2р1с
+2р1т
+2р1ф
+2р1х
+2р1ц
+2р1ч
+2р1ш
+2р1щ
+2р1й
+2с1б
+2с1г
+2с1д
+2т1б
+2т1г
+2т1д
+2т1ж
+2т1з
+2ф1б
+2ф1г
+2ф1з
+2х1г
+2х1д
+2ц1б
+2ц1г
+2ц1д
+2ц1з
+2ч1б
+2ч1д
+2ч1ж
+2ш1б
+2ш1г
+2й1б
+2й1в
+2й1г
+2й1д
+2й1ж
+2й1з
+2й1к
+2й1л
+2й1м
+2й1н
+2й1п
+2й1р
+2й1с
+2й1т
+2й1ф
+2й1х
+2й1ц
+2й1ч
+2й1ш
+2й1щ
+2дь1к
+2дь1с
+2дь1т
+2дь1ц
+2зь1к
+2зь1с
+2зь1т
+2ль1б
+2ль1в
+2ль1г
+2ль1д
+2ль1ж
+2ль1з
+2ль1к
+2ль1м
+2ль1н
+2ль1п
+2ль1р
+2ль1с
+2ль1т
+2ль1ф
+2ль1х
+2ль1ц
+2ль1ч
+2ль1ш
+2ль1щ
+2ль1й
+2нь1б
+2нь1г
+2нь1з
+2нь1к
+2нь1л
+2нь1м
+2нь1с
+2нь1т
+2нь1х
+2нь1ц
+2нь1ч
+2нь1ш
+2нь1й
+2рь1к
+2рь1ц
+2сь1б
+2сь1д
+2ть1б
+2к1сп
+2к1ст
+2к1ськ
+2п1сп
+2п1ст
+2п1ськ
+2с1пк
+2с1пп
+2с1пс
+2с1пт
+2с1пх
+2с1пч
+2с1ськ
+2с1тк
+2с1тп
+2с1тс
+2с1тсь
+2с1тт
+2с1тф
+2с1тц
+2с1шт
+2сь1кк
+2сь1кс
+2сь1кт
+2т1ск
+2т1сп
+2т1ст
+2т1ськ
+2т1шк
+2ф1сп
+2ф1ст
+2ф1ськ
+2ф1шт
+2х1ст
+2х1ськ
+2ц1ст
+2ц1шк
+2ш1тк
+2ш1тсь
+2б1б
+2в1в
+2г1г
+2ґ1ґ
+2д1д
+2ж1ж
+2з1з
+2к1к
+2л1л
+2м1м
+2н1н
+2п1п
+2р1р
+2с1с
+2т1т
+2ф1ф
+2х1х
+2ц1ц
+2ч1ч
+2ш1ш
+2щ1щ
+2й1й
+3ння
+3ття
+3ттю
+3лля
+3ллє
+3ллю
+3ддя
+д4ж
+д4з
+а2й
+е2й
+и2й
+і2й
+о2й
+у2й
+ю2й
+я2й
+є2й
+ї2й
+3й6о
+ь6о
+6ь
+.бд6
+.бр6
+.вб6
+.вг6
+.вд6
+.вж6
+.вз6
+.вз6д6
+.вк6
+.вл6
+.вм6
+.вп6
+.вп6х6
+.вс6
+.вс6т6
+.вт6
+.вш6к6
+.дж6
+.дз6
+.дл6
+.дс6
+.зб6
+.зг6
+.зд6
+.зд6з6
+.зл6
+.зс6
+.зс6к6
+.зс6т6
+.зч6
+.зш6
+.зш6к6
+.зґ6
+.йш6
+.кл6
+.кп6
+.кс6
+.кх6
+.кш6
+.лк6с6
+.лс6
+.ль6
+.мс6
+.мф6
+.нб6
+.пр6
+.пс6
+.пх6
+.рт6
+.ск6
+.ск6л6
+.сл6
+.сп6
+.сп6л6
+.сп6х6
+.ст6
+.сх6
+.сх6л6
+.тк6
+.тр6
+.тх6
+.ть6
+.фл6
+.хл6
+.ць6
+.чх6
+.шк6
+.шл6
+.шп6
+.шт6
+6бв.
+6бз.
+6бй.
+6бл.
+6б6ль.
+6бн.
+6бр.
+6бс.
+6б6ст.
+6б6с6тв.
+6б6с6тр.
+6б6с6ьк.
+6б6ць.
+6вб.
+6вв.
+6вд.
+6в6др.
+6в6дь.
+6вж.
+6вз.
+6в6зь.
+6вй.
+6вк.
+6вл.
+6в6ль.
+6вм.
+6вн.
+6вп.
+6вр.
+6вс.
+6в6с6тв.
+6в6с6ть.
+6в6сь.
+6в6с6ьк.
+6вт.
+6вх.
+6в6ць.
+6вч.
+6вш.
+6вщ.
+6гв.
+6гг.
+6гд.
+6гл.
+6г6ль.
+6гм.
+6гн.
+6гр.
+6гс.
+6г6с6тв.
+6г6сь.
+6гт.
+6дж.
+6дз.
+6д6зь.
+6дл.
+6дм.
+6дн.
+6др.
+6д6с6тв.
+6д6с6ьк.
+6дт.
+6дь.
+6д6ь6сь.
+6жб.
+6жв.
+6ж6дь.
+6ж6сь.
+6зв.
+6зг.
+6зд.
+6з6дв.
+6з6дн.
+6з6дь.
+6зк.
+6зл.
+6зм.
+6зн.
+6з6нь.
+6зр.
+6з6сь.
+6зь.
+6з6ьб.
+6з6ьк.
+6йб.
+6йв.
+6йг.
+6йд.
+6йз.
+6йк.
+6й6кл.
+6йл.
+6й6ль.
+6йм.
+6й6мс.
+6йн.
+6й6нс.
+6йп.
+6йр.
+6йс.
+6й6ст.
+6й6с6тв.
+6й6с6тр.
+6й6сь.
+6й6с6ьк.
+6йт.
+6й6тс.
+6йф.
+6йх.
+6йц.
+6йч.
+6йш.
+6кв.
+6кк.
+6кл.
+6к6ль.
+6кр.
+6кс.
+6к6ст.
+6к6сь.
+6кт.
+6к6тр.
+6кх.
+6кш.
+6лб.
+6лг.
+6лд.
+6лк.
+6лл.
+6л6ль.
+6лм.
+6л6мс.
+6лн.
+6лп.
+6лс.
+6лт.
+6л6хв.
+6ль.
+6л6ьб.
+6л6ьв.
+6л6ьг.
+6л6ьд.
+6л6ь6дс.
+6л6ьз.
+6л6ьк.
+6л6ьм.
+6л6ьн.
+6л6ьп.
+6л6ьс.
+6л6ь6ств.
+6л6ь6сь.
+6л6ь6ськ.
+6л6ьт.
+6л6ь6тр.
+6л6ьф.
+6л6ьх.
+6л6ьц.
+6л6ьч.
+6л6ьш.
+6л6ьщ.
+6мб.
+6м6б6ль.
+6м6бр.
+6мг.
+6мж.
+6мк.
+6мл.
+6м6ль.
+6мм.
+6мн.
+6мп.
+6мр.
+6мс.
+6м6с6тв.
+6м6сь.
+6м6с6ьк.
+6мт.
+6мф.
+6мх.
+6мш.
+6нв.
+6нг.
+6н6гл.
+6н6г6ль.
+6н6гр.
+6н6гс.
+6нд.
+6н6дж.
+6н6дз.
+6н6дп.
+6н6др.
+6нж.
+6нз.
+6нк.
+6н6кс.
+6н6кт.
+6нм.
+6нн.
+6нр.
+6нс.
+6н6ск.
+6н6ст.
+6н6с6тв.
+6н6с6тр.
+6н6с6ьк.
+6н6с6ькй.
+6нт.
+6н6тк.
+6н6тр.
+6н6т6ств.
+6н6ть.
+6нф.
+6нх.
+6нц.
+6н6ць.
+6нч.
+6нш.
+6нь.
+6н6ьб.
+6н6ьг.
+6н6ьк.
+6н6ь6сь.
+6пд.
+6пл.
+6пр.
+6пс.
+6п6с6тв.
+6п6сь.
+6пт.
+6п6тр.
+6пф.
+6пц.
+6рб.
+6рв.
+6рг.
+6рд.
+6р6дв.
+6р6дж.
+6р6дь.
+6рж.
+6рз.
+6р6зн.
+6р6зь.
+6рк.
+6р6кс.
+6р6кт.
+6рл.
+6р6ль.
+6р6л6ьз.
+6рм.
+6рн.
+6р6нс.
+6р6н6ст.
+6р6нь.
+6рп.
+6рр.
+6рс.
+6р6ср.
+6р6ст.
+6р6с6тв.
+6р6с6ть.
+6р6сь.
+6р6с6ьк.
+6рт.
+6р6тв.
+6р6тр.
+6р6ть.
+6рф.
+6рх.
+6рц.
+6р6ць.
+6рч.
+6рш.
+6рщ.
+6р6щ6сь.
+6рь.
+6с6дп.
+6с6д6рп.
+6ск.
+6сл.
+6с6ль.
+6см.
+6сн.
+6сп.
+6сс.
+6ст.
+6с6тв.
+6с6тй.
+6с6тм.
+6с6тр.
+6с6т6рь.
+6с6ть.
+6с6ць.
+6сь.
+6с6ьб.
+6с6ьк.
+6с6ьм.
+6тв.
+6т6вт.
+6т6зт.
+6тл.
+6т6ль.
+6тм.
+6т6мр.
+6тр.
+6тс.
+6т6с6тв.
+6т6с6ьк.
+6тт.
+6тц.
+6тч.
+6ть.
+6т6ь6сь.
+6фм.
+6фр.
+6ф6с6тв.
+6фт.
+6ф6ть.
+6фф.
+6фь.
+6хв.
+6хм.
+6хн.
+6хр.
+6хт.
+6хш.
+6ц6тв.
+6ць.
+6ц6ьк.
+6чб.
+6чм.
+6чн.
+6чт.
+6шв.
+6ш6ль.
+6шм.
+6шн.
+6ш6нл.
+6ш6сь.
+6шт.
+6ш6тв.
+6щ6сь.
+.бе4з3
+.безу4
+.бе5з4о3д
+.без5о4соб
+.безві4д3
+.без3ро4з3
+виї4
+.ві5д4ом
+.ві5д4озв
+.ві5д4ун
+віду4ч
+.ві5д4а
+.ві5д4ер
+.ві5д4і
+.ві4д3
+.мі4ж3
+безві4д3
+ові4д3
+ді4єві4д3
+за4вві4д3
+неві4д3
+про4ф3ві4д3
+спе4ц3ві4д3
+співві4д3
+те4х3ві4д3
+.пере4д3бач
+.пере4д3виб
+.пере4д3г
+.пере4д3д
+.пере4д3м
+.пере4д3ост
+.пере4д3пла
+.пере4д3пок
+.пере4д3р
+.пере4д3св
+.пере4д3умов
+.пере4д3усі
+.пере4д3фр
+.пере4д3ч
+.пере3
+.пона4д3
+.пона5д4і
+.пона5д4и
+.пона5д4я
+3п4ре
+3п4ри
+приї4
+3п4ро
+3п4рі
+.пі5д4о
+.пі5д4і
+.пі4д3
+.пі5д4е
+.пі5д4и
+.пі5д4у
+.пі4в3
+.спі4в3
+.напі4в3
+.ро5з4і
+.ро5з4е
+ро5з4йом
+.ро5з4а
+.ро4з3
+.чере4з3
+оо4б
+ооб3м
+ооб3ро
+за5о4р
+до5о4р
+по5о4р
+пере5о4р
+пі6д5о4р
+бе4з5і4дей
+за3ю4ш
+за3я4ло
+коу4роч
+зу4роч
+наду4роч
+позау4роч
+поу4роч
+приу4роч
+на4й3у4бог
+нао4р
+прио4р
+неу4к
+3в4б4лаг
+3в4к4лад
+3в4п4лив
+3в4п4равн
+3в4р4одлив
+3в4т4рут
+3в4т4руч
+3з4б4рой
+3з4б4рою
+3з4б4роє
+3й4ш4л
+3м4к4не
+3м4к4ну
+3м4к4ні
+3п4с4ков
+3с4к4лад
+3с4к4ле
+3с4к4лит
+3с4к4ло
+3с4к4рипт
+3с4п4лав
+3с4п4лат
+3с4п4лач
+3с4п4рав
+3с4п4ритн
+3с4п4рият
+3с4п4ромо
+3с4т4вор
+3с4т4ражд
+3с4т4рах
+3с4т4риб
+3с4т4риж
+3с4т4рой
+3с4т4рок
+3с4т4ром
+3с4т4роф
+3с4т4роч
+3с4т4рою
+3с4т4роя
+3с4т4роє
+3с4т4рої
+3с4т4рукт
+3с4т4рукц
+3с4т4рій
+3с4т4ріл
+3с4т4річ
+3т4к4нен
+3т4ь4мар
+3т4ь4мяні
+3у4п4рав
+3блаж
+3ближ
+3близ
+3блиск
+3блок
+3блоці
+3бран
+3брати
+3брест
+3бризк
+3британ
+3бруд
+3в4бив
+3в4веден
+3в4дал
+3в4довз
+3в4довол
+3в4живан
+3в4лад
+3в4ласн
+3в4лашт
+3в4лов
+3в4певн
+3в4поряд
+3в4разлив
+3в4рожай
+3в4сюд
+3в4тіл
+3глад
+3глиб
+3глин
+3глоб
+3глуз
+3глуш
+3гляд
+3глян
+3гнан
+3гнил
+3гноз
+3гнучк
+3грав
+3град
+3грай
+3грам
+3гран
+3грати
+3граф
+3граш
+3граю
+3грає
+3грес
+3грець
+3гроб
+3грож
+3гроз
+3громад
+3груван
+3грунт
+3груп
+3грів
+3гріт
+3гріш
+3г4ідро
+3д4ан
+3д4бав
+3д4бал
+3д4бан
+3д4бат
+3д4бає
+3двиг
+3двою
+3двоє
+3двій
+3двір
+3двічі
+3драж
+3дром
+3друж
+3друк
+3дряп
+3дріб
+3дріма
+3жвав
+3жміть
+3жріть
+3з4бага
+3з4баланс
+3з4був
+3з4бут
+3зваж
+3зван
+3звед
+3звел
+3звест
+3звись
+3звич
+3звищ
+3зворуш
+3звук
+3звуч
+3звіт
+3з4год
+3з4дат
+3з4довж
+3з4доров
+3з4дійсн
+3змін
+3зйом
+3зміш
+3знав
+3знай
+3знак
+3знал
+3знан
+3знат
+3знаход
+3знач
+3знаю
+3знає
+3зниж
+3знім
+3зрозум
+3зрюв
+3зрів
+3зріл
+3зрін
+3з4чеп
+3й4ма
+3й4менн
+3й4мищ
+3й4мовірн
+3й4му.
+3й4муть
+3й4міть
+3й4шов
+3м4нож
+3м4ріть
+3м4щен
+3п4сов
+3п4сон
+3п4сув
+3р4вав
+3р4вати
+3р4віть
+3с4кид
+3с4кок
+3с4коп
+3с4кор
+3с4короч
+3с4коч
+3с4кіль
+3с4кіпл
+3с4пад
+3с4пект
+3с4перм
+3с4пин
+3с4повід
+3с4пожив
+3с4постер
+3с4пі
+3с4піть
+3с4піш
+3с4табіл
+3с4тав
+3с4тад
+3с4таз
+3с4тайн
+3с4тал
+3с4тан
+3с4тар
+3с4тара
+3с4тат
+3с4тач
+3с4тає
+3с4теп
+3с4тереж
+3с4теріг
+3с4тиг
+3с4тиж
+3с4тисл
+3с4титу
+3с4товб
+3с4той
+3с4торон
+3с4торін
+3с4тосо
+3с4тосу
+3с4тою
+3с4тоян
+3с4туп
+3с4тяг
+3с4тіб
+3с4тій
+3с4тіль
+3с4тір
+3с4фер
+3с4хил
+3с4хов
+3с4хід
+3т4кан
+3х4то
+3ш4код
+3ш4кол
+3ш4кідл
+3ш4кіл
+3ш4кір
+3ш4таб
+3ш4туч
+3ґрунт
+3а4вторит
+3а4гент
+3а4грес
+3а4декват
+3а4дитив
+3а4зарт
+3а4ктив
+3а4ктуал
+3а4курат
+3а4куст
+3а4кцепт
+3а4кциз
+3а4лергі
+3а4матор
+3а4наліз
+3а4натом
+3а4парат
+3а4пеляц
+3а4постол
+3а4птеч
+3а4ргумен
+3а4ромат
+3а4соці
+3а4спект
+3а4тлет
+3а4халі
+3е4колог
+3е4коном
+3е4легант
+3е4лектр
+3е4лемент
+3е4моці
+3е4мігр
+3е4нерг
+3е4стакад
+3е4стет
+3е4тап
+3о4береж
+3о4бира
+3о4борон
+3о4бід
+3о4біц
+3о4даль
+3о4дяг
+3о4збро
+3о4крем
+3о4перат
+3о4плат
+3о4птим
+3о4пуст
+3о4пуше
+3о4пуще
+3о4рдинац
+3о4ренд
+3о4соб
+3о4сяжн
+3о4холо
+3о4хорон
+3о4хоч
+3о4чисн
+3о4чищ
+3у4ваг
+3у4важ
+3у4гав
+3у4згод
+3у4клад
+3у4компл
+3у4крупн
+3у4люблен
+3у4мит
+3у4міл
+3у4перед
+3у4разлив
+3у4рбан
+3у4рочист
+3у4ряд
+3у4рядов
+3у4спіш
+3у4станов
+3у4стпіш
+3у4сувати
+3у4твор
+3у4тробн
+3я4дерн
+3я4зик
+3я4кіс
+3я4рус
+3я4скрав
+3є4д3н
+3є4дин
+3є4писк
+3є4рей
+3і4зотоп
+3і4люстр
+3і4мовір
+3і4нтенс
+3і4нформ
+3і4ніціат
+3і4снув
+3ї4ждж
+3ї4зд
+3ї4ст
+3ї4хав
+3ї4хат
+.заї4к
+.заї4ц
+.заї4ч
+.наї4д
+аві4а
+авої4д
+ае4тил
+альбі5он
+ахої4д
+ауді4о
+ай4с3берг
+бактері4о
+ба4с3енер
+ба4с3антра
+.бе5зе.
+бей4сбол
+бе5кон
+бйор4нс
+бі4о3
+бо4г3дан
+бран4д
+брі4дж3порт
+без5і4мен
+бо4є3гол
+бо4є3гот
+бо4є3зап
+бо4є3здат
+бо4є3комп
+бо4є3пост
+бо4є3прип
+бори4с5п
+4в3антрац
+вер4х3н
+ви3й4д
+вина3й4д
+ви3й4т
+вина3й4т
+від7зна
+ві5д4ен
+ві5д4е4о
+ві5д4ом
+від5о4браж
+від5о4браз
+во4с5ко
+водо5с4ток
+водо5з4бір
+воль4т3метр
+воль4т3ампер
+ге2ть3ман
+ге4о
+го4с4п5роз
+гі4д5ро5мет
+4д7зем
+дер4ж5а4том
+дер4ж5а4дм
+дер4ж5бюдж
+дер4ж5вид
+дер4ж5дум
+дер4ж5замов
+дер4ж5ком
+дер4ж5нафт
+дер4ж5реєс
+дер4ж3без
+дер4ж3резерв
+дер4ж5стр
+дер4ж5служ
+двох4а5том
+джен4тль
+дисбаланс
+ди4с3гарм
+ди4с3квал
+ди4с3комф
+ди4с3конт
+ди4с3кред
+ди4с3крет
+ди4с3крец
+ди4с3крим
+ди4с3кусі
+ди4с3куту
+ди4с3лок
+ди4с3парит
+ди4с3перс
+ди4с3петч
+ди4с3пле
+ди4с3плей
+ди4с3пози
+ди4с3проп
+ди4с3пут
+ди4с3тил
+ди4с3триб
+ди4с3троф
+ди4с3функц
+ді3й4т
+ді3й4д
+д4ні3п4р
+.дої4в
+.дої4л
+.дої5ль
+дої4д
+дої4м
+дої4х
+дої4ж
+дої4ст
+до3з4вол
+до3з4віл
+дорого5в4каз
+еу4стр
+ео4сві
+енерго3з4береж
+енерго3з4беріг
+ек2с1к
+ек2с1п
+ек2с1т
+ек2с1ц
+єв4р3атом
+єпі4с5коп
+єпи4с5коп
+за4п3част
+заї4д
+заї4ж
+заї4з
+заї4л
+заї4м
+заї4х
+зе4кономити
+зна3й4д
+зна3й4т
+зо4ка
+зо4ке
+зо4ки
+зо4ку
+зо4кі
+игої4д
+ий4ти
+іе4тил
+і4л3е4тил
+ій4ти
+інфор4м3аген
+йо4сві
+каза4х3стан
+квої4д
+корої4д
+квар4т3плат
+киї4венер
+кон4трре
+кон4тр3арг
+жко4м5а4том
+кому4ненерг
+мі4н5е4ко
+мі4н5е4нер
+мо4к5рий
+на3б4лиз
+на3в4ряд
+на3в4ча
+на3з4в
+на4д7з4в
+наї4вс
+наї4вш
+наї4ж
+наї4з
+наї4л
+наї4м
+наї4с
+наї4х
+на4й3а
+на4й3е
+на4й3обереж
+на4й7о4бер
+на4й7о4гид
+на4й7о4гол
+на4й7о4гряд
+на4й7о4пук
+на4й7о4хай
+на4й3масл
+на4й3спри
+на4й3якіс
+на3в4чен
+на3в4чіть
+не3в4том
+не3д4бан
+на3д4бан
+не3з4вич
+не3з4важ
+нео4пал
+недої4
+неї4ст
+на5п4лив
+ні4т5рат
+оної4д
+оо4пал
+ео4пал
+обі3д4ран
+обі3й4д
+обі3й4т
+об5у4мов
+онаї4д
+оо4сві
+оо4к
+оу4стр
+оа4том
+об4лдер4ж
+об4л3а4дмін
+переї4д
+переї4ж
+переї4з
+переї4л
+переї4с
+переї4х
+пере5п4лив
+пере3й4д
+пре4й4с
+пере3й4т
+перег4ній
+перед5о4бід
+пере3в4том
+пере4д5см
+перед5у4мов
+під5о4дин
+пів5о4с4тр
+пі5в4ень
+по3б4лизу
+по3в4тор
+поч4не
+поч4ни
+поч4ну
+поя4в
+по3в4чен
+по3в4чіть
+по3д4роб
+по3д4раз
+по3д4во
+по5ж4ніть
+по5з4бав
+.пої4
+пої4д
+прої4
+пої4зд
+по4с4т5радян
+по4с4т5кому
+по4с4т3декр
+по4с4т3контра
+по4с4т3менопауз
+по4с4тприват
+по4с4т3раді
+по4с4т5соці
+пос4т3кап
+пос4т3ком
+пос4т3нат
+пос4т3проц
+пос4т3соц
+пос4т3фікс
+при3й4т
+про3с4тирад
+про4ф3с
+полі4т5екон
+пор4т3н
+пор4т3рет
+пор4т3фел
+при3й4д
+при4нцип
+про4ект3н
+про3б4лем
+про4м3май
+пр4о5плат
+раді4о
+рай3в4но
+ро4з5д4во
+ро4з5мінний
+роз5у4чен
+роз5і4мен
+роз5вант
+роз5вин
+роз5вит
+ро4з5діл
+ро4з5гор
+ро4з5вер
+ро4з5чеп
+руко5с4тиск
+ро5з4ум
+ро4з3гром
+ро4з3лив
+рмої4д
+сан4к4т3
+сеї4д
+серцеї4д
+спе4ц3кур
+спе4ц3мон
+спе4цпр
+спе4ц3с
+спор4т3вир
+спор4т3зал
+спор4т3ком
+спор4т3клуб
+спор4т3май
+спор4т4с3ме
+сор4тн
+3с4промож
+сь4квуг
+стат5упр
+тор4г3пред
+тран4с3
+тур4к3мен
+цук3ро
+у4к4р
+укр3а4вт
+укр3а4гр
+укр3е4кс
+укр3і4н4банк
+убої4д
+чорно3б4рив
+цен4т4р3енерг
+ясої4д
+ви3у4ч
+за3у4ч
+на3у4ч
+недо3у4ч
+не3у4ч
+під3у4ч
+пед3у4чи
+пере3у4ч
+само3у4ч
+вия4в
+зая4в
+ная4в
+уя4в
+во4євод
+во4єнач
+сво4єчас
+сво4єкорис
+сво4єрід
+хво4є3г4риз
+гелі4о
+ді4о
+еті4о
+мі4о
+і4он
+полі4о
+соці4о
+фізі4о
+хімі4о
+гоме4о
+ді4алог
+ді4оген
+дея4к
+оо4динок
+ао4пік
+ао4ха
+ео4ха
+зо6о
+ка5нал
+оі4зол
+міжу4соб
+мете4о
+абия4к
+нія4к
+вия4сн
+най3я4сн
+нея4сн
+поя4сн
+проя4сн
+ро5з4ора.
+ро5з4о5рам
+ро5з4орах
+ро5з4ори
+ро5з4оро
+ро5з4ору
+ро5з4оря
+ро5з4орю
+ро5з4орі
+ро6з5о4ри.
+розо4ра
+розо4ре
+розо4реш
+розо4рн
+напоу4м
+неа4би
+ео4цін
+оо4цін
+доу4к
+доу4м
+ео4бур
+ео4голош
+ео4зор
+бальне4о
+не4оліт
+не4омальт
+не4оклас
+не4окомун
+не4оландш
+не4олог
+не4олібер
+не4онац
+не4офіт
+нею4н
+нея4к
+нея4рок
+но4к3а4ут
+пі5в4оні
+піво4с
+пале4о
+па4н3о4тець
+.пе4ом.
+д3у4сім
+п4о5бере
+ао4хот
+ое4ко
+ео4хот
+ео4щад
+ао4щад
+оо4чищ
+поя4с
+те4одоліт
+те4олог
+те4ософ
+оо4біг
+оу4сун
+оу4ком
+пів3о4вал
+а3у4дар
+о3у4дар
+з3у4дар
+в3у4дар
+контр3у4дар
+о3о4кисл
+и3о4кисл
+ень7о4кисл
+е3о4кисл
+х3о4кисл
+и3і4стор
+о3і4стор
+і3і4стор
+а3і4стор
+я3і4стор
+е3і4стор
+наді4стор
+най3і4стор
+пів3і4стор
+перед3і4стор
+пост3і4стор
+ар4т3афіш
+ар4т3взвод
+ар4т3десант
+ар4т3кафе
+ар4т3майс
+ар4т3медіа
+ар4т3мейс
+ар4т3мін
+ар4т3о4бстр
+ар4т3о4дин
+ар4т3о4збр
+ар4т3під
+ар4т3рин
+ар4т3у4стан
+ар4т3факт
+ар4т3хім
+ар4т3центр
+наді4стот
+найі4стот
+еі4стот
+оі4стот
+ау4т3екол
+оо4чист
+з3а4кт
+оа4кт
+еа4кт
+гіпер3а4кт
+найа4кт
+піва4кт
+ао4браз
+ео4браз
+оо4браз
+граф3о4браз
+най3о4браз
+супер3о4браз
+ар4т3мейст
+баге4р3мейст
+бале4т3мейст
+бран4д3мейст
+ва4ль4д3мейст
+ве4ль4т3мейст
+го4ф3мейст
+гро4с3мейст
+декре4т3мейст
+до4к3мейст
+капе4ль3мейст
+кварти4р3мейст
+конце4р4т3мейст
+кра4н3мейст
+полі4ц3мейст
+по4ш4т3мейст
+фо4р4с4т3мейст
+хо4р3мейст
+шапі4т3мейст
+шта4л3мейст
+єге4р3мейст
+иа4варі
+яа4варі
+оа4варі
+еа4варі
+беза4варі
+між3а4варі
+над3а4варі
+пост3а4варі
+напів3а4варі
+перед3а4варі
+супер3а4варі
+аа4дрес
+еа4дрес
+оа4дрес
+іа4дрес
+без3а4дрес
+ае4фект
+ее4фект
+ое4фект
+най3е4фект
+супер3е4фект
+ое4місі
+ие4місі
+яе4місі
+ее4місі
+безе4місі
+гіпер3е4місі
+еу4бог
+й3у4бог
+ий4ня
+зай4ня
+здій4ня
+най4ня
+обій4ня
+перей4ня
+підій4ня
+прий4м
+пій4м
+дій4ма
+вий4м
+най4ма
+зай4м
+д4о3й4м
+обой4м
+прой4м
+обій4м
+перей4м
+безу4гл
+безу4пин
+бло4к3пост
+.блі4ц3ана
+.блі4ц3криг
+.блі4ц3опит
+.блі4ц3торг
+.блі4ц3тур
+.блі4ц3і4спит
+о3а4наліз
+бак3а4наліз
+ц3а4наліз
+ген3а4наліз
+з3а4наліз
+м3а4наліз
+нт3а4наліз
+між3а4наліз
+полі3а4наліз
+ре3а4наліз
+оу4год
+ау4год
+еу4год
+пів3у4год
+роз3у4год
+гос4п3у4год
+ео4пис
+оо4пис
+ао4пис
+бо4р4т3мех
+бо4р4т3о4пер
+бо4р4т3про
+бо4р4т3рад
+бо4р4т3і4нж
+оа4каці
+оу4с
+оо4держ
+оа4на
+біблі4о
+.на3в4ч
+.ви3в4ч
+.до3в4ч
+.за3в4ч
+.по3в4ч
+.при3в4ч
+ана3в4ч
+ена3в4ч
+мона3в4ч
+жона3в4ч
+іона3в4ч
+ови3в4ч
+еви3в4ч
+едо3в4ч
+оза3в4ч
+по3в4ча
+.ом4рі
+е3м4рій
+.ви3м4р
+.віді3м4р
+.зав3м4р
+.за3м4р
+.зі3м4р
+.на3м4р
+.пере3м4р
+.по3м4р
+.при3м4р
+.роз3м4р
+.ум4ри
+.ум4рі
+.ум4ру
+.ум4ре
+во4станнє
+най3о4станн
+перед3о4станн
+ие4стет
+ое4стет
+ее4стет
+й3е4стет
+пан3е4стет
+пар3е4стет
+оо4ктан
+іо4ктан
+оо4плачув
+ео4плачув
+перед3о4пла
+виу4ди
+о3в4каз
+е3в4каз} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-il.rme b/Master/texmf-dist/tex/context/patterns/lang-il.rme
new file mode 100644
index 00000000000..3ab365eedc6
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/lang-il.rme
@@ -0,0 +1,70 @@
+% generated by mtxrun --script pattern --convert
+
+% This file is part of hyph-utf8 package and resulted from
+% semi-manual conversions of hyphenation patterns into UTF-8 in June 2008.
+%
+% Source: TODO:WRITEME (yyyy-mm-dd)
+% Author: Maksym Polyakov <polyama at auburn.edu>, <mpoliak at i.com.ua>
+%
+% The above mentioned file should become obsolete,
+% and the author of the original file should preferaby modify this file instead.
+%
+% Modificatios were needed in order to support native UTF-8 engines,
+% but functionality (hopefully) didn't change in any way, at least not intentionally.
+% This file is no longer stand-alone; at least for 8-bit engines
+% you probably want to use loadhyph-foo.tex (which will load this file) instead.
+%
+% Modifications were done by Jonathan Kew, Mojca Miklavec & Arthur Reutenauer
+% with help & support from:
+% - Karl Berry, who gave us free hands and all resources
+% - Taco Hoekwater, with useful macros
+% - Hans Hagen, who did the unicodifisation of patterns already long before
+% and helped with testing, suggestions and bug reports
+% - Norbert Preining, who tested & integrated patterns into TeX Live
+%
+% However, the "copyright/copyleft" owner of patterns remains the original author.
+%
+% The copyright statement of this file is thus:
+%
+% Do with this file whatever needs to be done in future for the sake of
+% "a better world" as long as you respect the copyright of original file.
+% If you're the original author of patterns or taking over a new revolution,
+% plese remove all of the TUG comments & credits that we added here -
+% you are the Queen / the King, we are only the servants.
+%
+% If you want to change this file, rather than uploading directly to CTAN,
+% we would be grateful if you could send it to us (http://tug.org/tex-hyphen)
+% or ask for credentials for SVN repository and commit it yourself;
+% we will then upload the whole "package" to CTAN.
+%
+% Before a new "pattern-revolution" starts,
+% please try to follow some guidelines if possible:
+%
+% - \lccode is *forbidden*, and I really mean it
+% - all the patterns should be in UTF-8
+% - the only "allowed" TeX commands in this file are: \patterns, \hyphenation,
+% and if you really cannot do without, also \message
+% - in particular, please no \catcode or \lccode changes,
+% they belong to loadhyph-foo.tex,
+% and no \lefthyphenmin and \righthyphenmin,
+% they have no influence here and belong elsewhere
+% - \begingroup and/or \endinput is not needed
+% - feel free to do whatever you want inside comments
+%
+% We know that TeX is extremely powerful, but give a stupid parser
+% at least a chance to read your patterns.
+%
+% For more unformation see
+%
+% http://tug.org/tex-hyphen
+%
+%------------------------------------------------------------------------------
+%
+% Ukrainian hyphenation patterns in LCY (cp866nav) encoding.
+% Copyright 1998-2001 Maksym Polyakov.
+% Released 2001/05/10.
+% This file can be redistributed and/or modified
+% under the terms of the LaTeX Project Public License (lppl).
+% Please, send bug reports via e-mail:
+% polyama@auburn.edu
+% mpoliak@i.com.ua \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-it.hyp b/Master/texmf-dist/tex/context/patterns/lang-it.hyp
index a2d424778d6..6a2b5be2bc6 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-it.hyp
+++ b/Master/texmf-dist/tex/context/patterns/lang-it.hyp
@@ -1,38 +1,8 @@
-% context hyphenation file, see lang-all.xml for original comment
+% generated by mtxrun --script pattern --convert
-% source of data: ithyph.tex
+% for comment and copyright, see ./lang-it.rme
-% begin description data
-
-% <!-- copied from lang-all.xml
-%
-% <?xml version='1.0' standalone='yes'?>
-%
-% <description language='it'>
-% <sourcefile>ithyph.tex</sourcefile>
-% <title>TeX hyphenation patterns for the Italian language</title>
-% <remarks>v4.8d</remarks>
-% <copyright>
-% <year>1998, 2001</year>
-% <owner>Claudio Beccari</owner>
-% </copyright>
-% <copyright>
-% <year>1993, 1994, 1999</year>
-% <owner>Bernd Raichle/DANTE e.V.</owner>
-% <comment>Macros, adaption for TeX 2</comment>
-% </copyright>
-% </description>
-%
-% end of copy -->
-
-% end description data
-
-% begin hyphenation data
-
-\hyphenation {
-su-per-in-dut-to-re
-su-per-in-dut-to-ri
-}
-
-% end hyphenation data
+% used:
+\hyphenation{
+} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-it.pat b/Master/texmf-dist/tex/context/patterns/lang-it.pat
index 345be19501e..da2bfc2b233 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-it.pat
+++ b/Master/texmf-dist/tex/context/patterns/lang-it.pat
@@ -1,35 +1,10 @@
-% context pattern file, see lang-all.xml for original comment
+% generated by mtxrun --script pattern --convert
-% source of data: ithyph.tex
+% for comment and copyright, see ./lang-it.rme
-% begin description data
+% used: a b c d e f g h i j k l m n o p q r s t u v w x y z
-% <!-- copied from lang-all.xml
-%
-% <?xml version='1.0' standalone='yes'?>
-%
-% <description language='it'>
-% <sourcefile>ithyph.tex</sourcefile>
-% <title>TeX hyphenation patterns for the Italian language</title>
-% <remarks>v4.8d</remarks>
-% <copyright>
-% <year>1998, 2001</year>
-% <owner>Claudio Beccari</owner>
-% </copyright>
-% <copyright>
-% <year>1993, 1994, 1999</year>
-% <owner>Bernd Raichle/DANTE e.V.</owner>
-% <comment>Macros, adaption for TeX 2</comment>
-% </copyright>
-% </description>
-%
-% end of copy -->
-
-% end description data
-
-% begin pattern data
-
-\patterns {
+\patterns{
.a3p2n
.anti1
.anti3m2n
@@ -41,6 +16,7 @@
.e2x1eu
.fran2k3
.free3
+.li3p2sa
.narco1
.opto1
.orto3p2
@@ -61,7 +37,6 @@
.su2b3r
.wa2g3n
.wel2t1
-'2
a1ia
a1ie
a1io
@@ -89,7 +64,6 @@ o1iu
b2l
b2r
2b.
-2b'
1c
2cb
2cc
@@ -110,7 +84,6 @@ ch2r
c2l
c2r
2c.
-2c'
.c2
1d
2db
@@ -126,7 +99,6 @@ d2r
2dv
2dw
2d.
-2d'
.d2
1f
2fb
@@ -138,7 +110,6 @@ f2r
2fs
2ft
2f.
-2f'
1g
2gb
2gd
@@ -157,7 +128,6 @@ g2r
2gz
2gh2t
2g.
-2g'
1h
2hb
2hd
@@ -169,10 +139,8 @@ h2l
2hr
2hv
2h.
-2h'
1j
2j.
-2j'
1k
2kg
2kf
@@ -184,7 +152,6 @@ k2r
2ks
2kt
2k.
-2k'
1l
2lb
2lc
@@ -205,8 +172,6 @@ l2h
2lw
2lz
2l.
-2l'.
-2l''
1m
2mb
2mc
@@ -222,7 +187,6 @@ l2h
2mv
2mw
2m.
-2m'
1n
2nb
2nc
@@ -244,7 +208,6 @@ n2s3fer
n2g3n
2nheit
2n.
-2n'
1p
2pd
p2h
@@ -258,11 +221,9 @@ p2r
2pt
2pz
2p.
-2p'
1q
2qq
2q.
-2q'
1r
2rb
2rc
@@ -285,9 +246,9 @@ r2t2s3
2rw
2rz
2r.
-2r'
1s2
2shm
+2sh.
2s3s
s4s3m
2s3p2n
@@ -304,8 +265,6 @@ s4s3m
2stv
2sz
4s.
-4s'.
-4s''
1t
2tb
2tc
@@ -328,22 +287,17 @@ t2z
2tzk
tz2s
2t.
-2t'.
-2t''
1v
2vc
v2l
v2r
2vv
2v.
-2v'.
-2v''
1w
w2h
wa2r
2w1y
2w.
-2w'
1x
2xb
2xc
@@ -354,7 +308,6 @@ wa2r
2xt
2xw
2x.
-2x'
y1ou
y1i
1z
@@ -368,10 +321,4 @@ y1i
2zv
2zz
2z.
-2z'.
-2z''
-.z2
-}
-
-% end pattern data
-
+.z2} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-it.rme b/Master/texmf-dist/tex/context/patterns/lang-it.rme
new file mode 100644
index 00000000000..2078e7259d1
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/lang-it.rme
@@ -0,0 +1,88 @@
+% generated by mtxrun --script pattern --convert
+
+% This file is part of hyph-utf8 package and resulted from
+% semi-manual conversions of hyphenation patterns into UTF-8 in June 2008.
+%
+% Source: ithyph.tex (2008-03-08)
+% Author: Claudio Beccari <claudio.beccari at polito.it>
+%
+% The above mentioned file should become obsolete,
+% and the author of the original file should preferaby modify this file instead.
+%
+% Modificatios were needed in order to support native UTF-8 engines,
+% but functionality (hopefully) didn't change in any way, at least not intentionally.
+% This file is no longer stand-alone; at least for 8-bit engines
+% you probably want to use loadhyph-foo.tex (which will load this file) instead.
+%
+% Modifications were done by Jonathan Kew, Mojca Miklavec & Arthur Reutenauer
+% with help & support from:
+% - Karl Berry, who gave us free hands and all resources
+% - Taco Hoekwater, with useful macros
+% - Hans Hagen, who did the unicodifisation of patterns already long before
+% and helped with testing, suggestions and bug reports
+% - Norbert Preining, who tested & integrated patterns into TeX Live
+%
+% However, the "copyright/copyleft" owner of patterns remains the original author.
+%
+% The copyright statement of this file is thus:
+%
+% Do with this file whatever needs to be done in future for the sake of
+% "a better world" as long as you respect the copyright of original file.
+% If you're the original author of patterns or taking over a new revolution,
+% plese remove all of the TUG comments & credits that we added here -
+% you are the Queen / the King, we are only the servants.
+%
+% If you want to change this file, rather than uploading directly to CTAN,
+% we would be grateful if you could send it to us (http://tug.org/tex-hyphen)
+% or ask for credentials for SVN repository and commit it yourself;
+% we will then upload the whole "package" to CTAN.
+%
+% Before a new "pattern-revolution" starts,
+% please try to follow some guidelines if possible:
+%
+% - \lccode is *forbidden*, and I really mean it
+% - all the patterns should be in UTF-8
+% - the only "allowed" TeX commands in this file are: \patterns, \hyphenation,
+% and if you really cannot do without, also \input and \message
+% - in particular, please no \catcode or \lccode changes,
+% they belong to loadhyph-foo.tex,
+% and no \lefthyphenmin and \righthyphenmin,
+% they have no influence here and belong elsewhere
+% - \begingroup and/or \endinput is not needed
+% - feel free to do whatever you want inside comments
+%
+% We know that TeX is extremely powerful, but give a stupid parser
+% at least a chance to read your patterns.
+%
+% For more unformation see
+%
+% http://tug.org/tex-hyphen
+%
+%------------------------------------------------------------------------------
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%% file ithyph.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Prepared by Claudio Beccari e-mail claudio.beccari@polito.it
+%
+% Dipartimento di Elettronica
+% Politecnico di Torino
+% Corso Duca degli Abruzzi, 24
+% 10129 TORINO
+%
+% Copyright 1998, 2008 Claudio Beccari
+%
+% This program is free software; it can be redistributed and/or modified
+% under the terms of the GNU Lesser General Public Licence,
+% as published by the Free Software Foundation, either version 2.1 of the
+% Licence or (at your option) any later version.
+%
+% \versionnumber{4.8g} \versiondate{2008/03/08}
+%
+% These hyphenation patterns for the Italian language are supposed to comply
+% with the Recommendation UNI 6461 on hyphenation issued by the Italian
+% Standards Institution (Ente Nazionale di Unificazione UNI). No guarantee
+% or declaration of fitness to any particular purpose is given and any
+% liability is disclaimed.
+%
+% See comments at the end of the file after the \endinput line
+% \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-la.hyp b/Master/texmf-dist/tex/context/patterns/lang-la.hyp
index 3a14c1d06dc..11ad9d17aae 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-la.hyp
+++ b/Master/texmf-dist/tex/context/patterns/lang-la.hyp
@@ -1,35 +1,8 @@
-% context hyphenation file, see lang-all.xml for original comment
+% generated by mtxrun --script pattern --convert
-% source of data: lahyph.tex
+% for comment and copyright, see ./lang-la.rme
-% begin description data
-
-% <!-- copied from lang-all.xml
-%
-% <?xml version='1.0' standalone='yes'?>
-%
-% <description language='la'>
-% <sourcefile>lahyph.tex</sourcefile>
-% <title>TeX hyphenation patterns for the Latin language</title>
-% <remarks>v3.0b</remarks>
-% <copyright>
-% <year>1999-2001</year>
-% <owner>Claudio Beccari</owner>
-% </copyright>
-% <copyright>
-% <year>1993, 1994, 1998, 1999</year>
-% <owner>Bernd Raichle/DANTE e.V.</owner>
-% <comment>Macro code in 'dehypht.tex'</comment>
-% </copyright>
-% </description>
-%
-% end of copy -->
-
-% end description data
-
-% begin hyphenation data
-
-\hyphenation {}
-
-% end hyphenation data
+% used:
+\hyphenation{
+} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-la.pat b/Master/texmf-dist/tex/context/patterns/lang-la.pat
index 0eb65cb143b..b89e20b2a85 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-la.pat
+++ b/Master/texmf-dist/tex/context/patterns/lang-la.pat
@@ -1,41 +1,13 @@
-% context pattern file, see lang-all.xml for original comment
+% generated by mtxrun --script pattern --convert
-% source of data: lahyph.tex
+% for comment and copyright, see ./lang-la.rme
-% begin description data
+% used: a b c d e f g h i j k l m n o p q r s t u v x z æ œ
-% <!-- copied from lang-all.xml
-%
-% <?xml version='1.0' standalone='yes'?>
-%
-% <description language='la'>
-% <sourcefile>lahyph.tex</sourcefile>
-% <title>TeX hyphenation patterns for the Latin language</title>
-% <remarks>v3.0b</remarks>
-% <copyright>
-% <year>1999-2001</year>
-% <owner>Claudio Beccari</owner>
-% </copyright>
-% <copyright>
-% <year>1993, 1994, 1998, 1999</year>
-% <owner>Bernd Raichle/DANTE e.V.</owner>
-% <comment>Macro code in 'dehypht.tex'</comment>
-% </copyright>
-% </description>
-%
-% end of copy -->
-
-% end description data
-
-% begin pattern data
-
-\patterns {
-2'2
-.ab2s3
+\patterns{
.a2b3l
.anti1
.anti3m2n
-.ca4p3s
.circu2m1
.co2n1iun
.di2s3cine
@@ -43,16 +15,12 @@
.o2b3
.para1i
.para1u
-.pre1i
-.pro1i
.su2b3lu
.su2b3r
2s3que.
2s3dem.
3p2sic
3p2neu
-æe1
-œe1
æ1
œ1
a1ia
@@ -371,8 +339,4 @@ u2r1ua
u2r1ue
u2r1ui
u2r1uo
-u2r1uu
-}
-
-% end pattern data
-
+u2r1uu} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-la.rme b/Master/texmf-dist/tex/context/patterns/lang-la.rme
new file mode 100644
index 00000000000..3f238d03729
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/lang-la.rme
@@ -0,0 +1,105 @@
+% generated by mtxrun --script pattern --convert
+
+% This file is part of hyph-utf8 package and resulted from
+% semi-manual conversions of hyphenation patterns into UTF-8 in June 2008.
+%
+% Source: lahyph.tex (2007-09-03)
+% Author: Claudio Beccari <claudio.beccari at polito.it>
+%
+% The above mentioned file should become obsolete,
+% and the author of the original file should preferaby modify this file instead.
+%
+% Modificatios were needed in order to support native UTF-8 engines,
+% but functionality (hopefully) didn't change in any way, at least not intentionally.
+% This file is no longer stand-alone; at least for 8-bit engines
+% you probably want to use loadhyph-foo.tex (which will load this file) instead.
+%
+% Modifications were done by Jonathan Kew, Mojca Miklavec & Arthur Reutenauer
+% with help & support from:
+% - Karl Berry, who gave us free hands and all resources
+% - Taco Hoekwater, with useful macros
+% - Hans Hagen, who did the unicodifisation of patterns already long before
+% and helped with testing, suggestions and bug reports
+% - Norbert Preining, who tested & integrated patterns into TeX Live
+%
+% However, the "copyright/copyleft" owner of patterns remains the original author.
+%
+% The copyright statement of this file is thus:
+%
+% Do with this file whatever needs to be done in future for the sake of
+% "a better world" as long as you respect the copyright of original file.
+% If you're the original author of patterns or taking over a new revolution,
+% plese remove all of the TUG comments & credits that we added here -
+% you are the Queen / the King, we are only the servants.
+%
+% If you want to change this file, rather than uploading directly to CTAN,
+% we would be grateful if you could send it to us (http://tug.org/tex-hyphen)
+% or ask for credentials for SVN repository and commit it yourself;
+% we will then upload the whole "package" to CTAN.
+%
+% Before a new "pattern-revolution" starts,
+% please try to follow some guidelines if possible:
+%
+% - \lccode is *forbidden*, and I really mean it
+% - all the patterns should be in UTF-8
+% - the only "allowed" TeX commands in this file are: \patterns, \hyphenation,
+% and if you really cannot do without, also \input and \message
+% - in particular, please no \catcode or \lccode changes,
+% they belong to loadhyph-foo.tex,
+% and no \lefthyphenmin and \righthyphenmin,
+% they have no influence here and belong elsewhere
+% - \begingroup and/or \endinput is not needed
+% - feel free to do whatever you want inside comments
+%
+% We know that TeX is extremely powerful, but give a stupid parser
+% at least a chance to read your patterns.
+%
+% For more unformation see
+%
+% http://tug.org/tex-hyphen
+%
+%------------------------------------------------------------------------------
+%
+% ********** lahyph.tex *************
+%
+% Copyright 1999- 2001 Claudio Beccari
+% [latin hyphenation patterns]
+%
+% -----------------------------------------------------------------
+% IMPORTANT NOTICE:
+%
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt; either
+% version 1 of the License, or any later version.
+% -----------------------------------------------------------------
+%
+% Patterns for the latin language mainly in modern spelling
+% (u when u is needed and v when v is needed); medieval spelling
+% with the ligatures \ae and \oe and the (uncial) lowercase `v'
+% written as a `u' is also supported; apparently there is no conflict
+% between the patterns of modern Latin and those of medieval Latin.
+%
+% Support for font encoding OT1 with 128-character set and
+% for font encoding T1 with a 256-character set.
+%
+% Prepared by Claudio Beccari
+% Politecnico di Torino
+% Torino, Italy
+% e-mail beccari@polito.it
+%
+% 1999/03/10 Integration of `lahyph7.tex' and `lahyph8.tex' into
+% one file `lahyph.tex' supporting fonts in OT1 and T1 encoding by
+% Bernd Raichle using the macro code from `dehypht.tex' (this code
+% is Copyright 1993,1994,1998,1999 Bernd Raichle/DANTE e.V.).
+%
+%
+% \versionnumber{3.1} \versiondate{2007/04/16}
+%
+% Information after \endinput.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \message{Latin Hyphenation Patterns `lahyph' Version 3.1 <2007/04/16>}
+%
+% \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-nb.hyp b/Master/texmf-dist/tex/context/patterns/lang-nb.hyp
new file mode 100644
index 00000000000..4c0b225c8be
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/lang-nb.hyp
@@ -0,0 +1,52 @@
+% generated by mtxrun --script pattern --convert
+
+% for comment and copyright, see ./lang-nb.rme
+
+% used: D N S a b c d e f g h i j k l m n o p r s t u v w y z å æ ø ü
+
+\hyphenation{
+atten-de
+aust-røn
+aviser
+betre
+bortan-for
+bortre
+Dansk-øya
+der-etter
+dess-uak-tet
+dit-over
+finger-spitzen-ge-fühl
+finger-spitz-ge-fühl
+fram-ifrå
+før-enn
+her-etter
+her-etter-dags
+hvor-etter
+hvor-over
+høyt-ærede
+gi-vet-vis
+lands-øl
+lands-ølet
+lands-ølets
+langt-ifra
+ned-imot
+noens
+Not-odden
+Not-oddens
+nøye-reg-nen-de
+opp-imot
+oven-ikjøpet
+promp-te
+spleen
+sel-ves-te
+smal-enden
+sørpe-is
+sørpe-isen
+skrov-is
+skrov-isen
+Steins-land
+syd-enden
+tvert-om
+velan
+velet
+welt-schmerz} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-nb.pat b/Master/texmf-dist/tex/context/patterns/lang-nb.pat
new file mode 100644
index 00000000000..992e67d6c73
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/lang-nb.pat
@@ -0,0 +1,27154 @@
+% generated by mtxrun --script pattern --convert
+
+% for comment and copyright, see ./lang-nb.rme
+
+% used: a b c d e f g h i j k l m n o p q r s t u v w x y z å æ è é ê ò ó ô ø
+
+\patterns{
+.a4
+.aa4
+.ab4ba
+.ab7be
+.ab6s5t
+.ac6tin
+.adel4s
+.ad8la.
+.ad6le.
+.ad2r
+.ad1s2
+.af7f
+.af5t4
+.af5f6u
+.ag6na.
+.ag6ne.
+.ag4r
+.ai2
+.a6k
+.ak6ka.
+.ak6ke.
+.ak3kl
+.ak3kr
+.ak6ne.
+.ak6r
+.ak8sa.
+.ak4se.
+.ak6ta
+.ak4te.
+.akte4r
+.akter5e
+.ak5tr
+.akva7
+.a6l
+.albu5en
+.alfa3
+.al4ge.
+.al5gi
+.al6ka.
+.al4ke.
+.al4kom
+.al4la.
+.al4le.
+.al5leg
+.al5lo
+.all5s6
+.al4ma.
+.al8me.
+.al5m6in
+.al4na
+.al6s7k
+.als5o
+.alt4a
+.al4ta.
+.al5tar
+.al4te.
+.alt3o
+.al6ve.
+.am7b
+.a6me
+.am6ma.
+.am4me.
+.am4s4
+.am6ta
+.a6n
+.ana3b
+.an4da.
+.an4de.
+.an5d4ra
+.an4d5ø
+.an3er
+.anes5
+.an4ga.
+.an3ge
+.an4ge.
+.ange4s
+.an4ja.
+.an4ka.
+.an4ke.
+.an4la.
+.an3n
+.an4na.
+.an7nal
+.ann4e
+.an4ne.
+.an5s8
+.an4sa.
+.an4se.
+.ant2
+.an4ta.
+.an4te.
+.an5tem
+.an5tep
+.an4ti.
+.an6tin
+.an4tis
+.an4tiv
+.ap8lan
+.ap1p6
+.ap8t
+.arbi5
+.ar6de.
+.are4o7
+.ar4ge.
+.ar5ges
+.ari6a
+.ari8e
+.arie5ne
+.ar5ka
+.ar8ka.
+.arlan9
+.ar4me.
+.ar7mea
+.ar4na.
+.ar3ne
+.ar4ne.
+.ar5nes
+.ar6ra.
+.ar6r7u
+.ar6ta.
+.ar4te.
+.ar9ti
+.ar6va.
+.ar4ve.
+.ar4ved
+.ar4ver
+.arvi6
+.a6s
+.as8ka
+.as4ke.
+.as5kese
+.as4le.
+.as6pa.
+.as5s
+.ast5ru
+.at4h
+.at4ki
+.at4le.
+.at4na.
+.at2o4
+.at3s
+.atte4
+.att6r
+.a5ty
+.au8de
+.au6e
+.au8ga
+.au4ge
+.au4ka.
+.au8le.
+.au4r
+.au6sa.
+.au6se.
+.aus9k
+.au4sp
+.avi2
+.av7i6d
+.av7inde
+.av4la.
+.av4le.
+.av7s6
+.b6
+.ba6by
+.ba6la.
+.ba4le.
+.ba4ne.
+.ban4k3l
+.ba4re.
+.ba4ri.
+.ba8te.
+.be4de.
+.bede4n
+.be6d5ene
+.be4d5et
+.be8di.
+.be3e4d
+.be6ke.
+.be4la.
+.be9nar
+.be4ne.
+.be6ra.
+.be6re.
+.be4res
+.ber6ett
+.be8ri.
+.be7ska
+.be6sten
+.be4ta.
+.be6te.
+.be5t4v
+.bi6de.
+.bi6en
+.bi4le.
+.bilet5
+.bi6t3r
+.bl4
+.bla4d
+.ble4k3
+.ble5k4e
+.blek4k3f
+.blekk3s4t6
+.blekk9s8v4
+.bling5
+.bo8da
+.bo8de.
+.bogs8
+.bok5
+.bo4k4en.
+.bo8la
+.bon2
+.bo4na.
+.bor6t5
+.bort6e
+.bor8ti8
+.bort9r
+.brudd7s6
+.bruddså7
+.bu6da.
+.bu3d6r
+.bu4et
+.bus6sy
+.by6de.
+.by8ta.
+.bæ2
+.bø6k5a
+.bø8nen
+.bø8ner
+.c4
+.ca4en.
+.car4s5
+.ca6se
+.ce6b
+.cos1
+.co4st
+.d6
+.da4ge.
+.da4le.
+.dags6e
+.da2m
+.da4ne.
+.da4ta
+.dau3s
+.deka9r
+.deko7d
+.de4le.
+.de4l5ei
+.del5s6
+.de4mi.
+.demo7e
+.den5sl
+.de4re.
+.de4r5et
+.de4ri.
+.de6r3i4
+.de7r4i5v
+.de4r5om
+.de6s5m
+.de4so
+.de4sto
+.de4u
+.devi5s
+.di2a
+.di5e4l
+.di6er
+.di4et.
+.di9f6t
+.di4ne.
+.dings7a
+.di4sk
+.di8s3t
+.do4en
+.do4er
+.do8et
+.dome5
+.do4ra
+.do6re.
+.drau4m
+.ds4
+.du4a
+.du4en.
+.du4er
+.duft3
+.du4ge.
+.duk3n
+.du4se.
+.du4st
+.dy4re.
+.dø6la.
+.dø6r3
+.dø7r4a
+.dø7r4e
+.dø4ve.
+.då5ren
+.då7ret
+.e6
+.eb4ba
+.ecu6
+.ed4da
+.ed4le.
+.efo7
+.ef4ta
+.efta5s
+.ef6ter
+.eg8de.
+.ege2
+.ege5l
+.eg6ga.
+.eg4ge.
+.eg4gel
+.eg8la.
+.eg4le.
+.eg6na.
+.eg4ne.
+.ego7t8
+.egs4
+.eg8se.
+.eg5si
+.ei2
+.eid5a
+.ei5den
+.ei4ga.
+.ei7ger
+.eik5a
+.ei4ke.
+.ei3l
+.ei3m
+.ei8ma.
+.ei8me.
+.ein7as
+.ei3ni
+.ein5og5
+.ein5s6ta
+.ein8s7to
+.ei9rar
+.ei5res
+.eir9u
+.ei5te
+.eit9r
+.ekk4o
+.ek4le.
+.ek3li
+.ek6ne.
+.ek4r
+.ek8sa.
+.ek3se
+.ek8se.
+.ek4sp
+.eks6pi
+.eks3t4
+.ek5s4ta
+.ek8ta
+.ek4te.
+.ek7to
+.el8da.
+.el4de.
+.el4g5r
+.eli5ne
+.el3k
+.el5l
+.el6s
+.els6a
+.els4kl
+.els6t
+.el6ta.
+.el6te.
+.el6veg
+.em3b2
+.emfa9
+.em4ma.
+.em8me.
+.em6na.
+.em5p
+.en5a
+.en4da.
+.en4de.
+.end5r
+.en4ga.
+.en6gav
+.en3ge
+.en4ge.
+.en6g5r
+.engs6
+.en6ka
+.en4ke.
+.en5og5
+.en6sa
+.en4se.
+.en5so
+.en3sp
+.en5t
+.en6te.
+.ent4r
+.en6t5ra
+.ent8re
+.en3ø4
+.ep6t
+.er8a
+.er4e
+.er4g5r
+.er4ke
+.er4la.
+.er4le.
+.er6ma.
+.er4me.
+.er4mek
+.er4na.
+.er6ta.
+.er4te.
+.es9ast
+.es1k
+.es3ka
+.es8ka.
+.es4ke.
+.es5l
+.es8la.
+.es8le.
+.es3p
+.es6pa.
+.es6r
+.es8sa.
+.es4se.
+.es4so
+.es5ta
+.es3te
+.es6te.
+.es7tet
+.es5ti
+.est3r
+.es7tu
+.et8la.
+.et8le.
+.et4na
+.et4ne.
+.et4s
+.et8sa.
+.et5s4e
+.et6se.
+.ets4i
+.et1te4
+.et6ter
+.et6ti
+.ev8ja
+.ev4je.
+.ev4ne.
+.ex4
+.f4
+.fa2e
+.fag3s4
+.fa4ne.
+.fan3t4o
+.fe4e
+.feil5i
+.fe2l
+.fela9
+.fel5l
+.fel4ta
+.fe4ma
+.fe8me
+.fem5o6g5
+.fem5t
+.fer8ro
+.fer6s
+.fe8sl
+.fe8st5
+.fes3t6e
+.fi4b5
+.fi6a
+.fi4le.
+.fire5o6g5
+.fis6k
+.fjel4
+.fla4t5o
+.fo4bi.
+.fol2
+.fo2r
+.for3d6ri
+.for7d6ra
+.for5en.
+.form5s
+.for7s6o
+.fre6e
+.fri5e6re
+.fug2
+.fu6ge.
+.ful2
+.fu8se.
+.fy8se
+.fø8rel
+.g6
+.gaf7
+.ga4le.
+.ga8li.
+.ga4me
+.ga4ne.
+.gang5s4
+.gas4
+.gas5ta
+.ga2t
+.ga4ve.
+.ga9vee
+.ge2a
+.gel4e
+.ge3ne
+.ge6ni5
+.gen5s
+.ge4o
+.ge4st
+.ge5s6tap
+.ge9sv
+.gha5
+.gift5s
+.gi4n
+.gi4s
+.gis7p
+.gi8v3a
+.gl6
+.glo6i
+.glo9v
+.gly5s
+.glø9se
+.gnå7la
+.go5des
+.gos7
+.gra4v3end
+.grei4e
+.grunn5s
+.grus5s
+.gu4de.
+.gud3v4
+.gu4lat
+.gus1
+.gu4tu.
+.gø2
+.gås4e5
+.gå4v
+.h4
+.hai5s6
+.ha6ka.
+.ha8ma.
+.hand5s6l
+.handsla9
+.ha6v5ak
+.ha6vi
+.he4er.
+.hei5e
+.he2n
+.hen3i2
+.he6r5i6
+.he6r5o6
+.he9r6oe
+.he7r6oi
+.he7r6ol
+.he9r8os
+.hes4s5
+.het6s5
+.het7s6e
+.he4t5
+.he5t6e
+.hil4l
+.hi4n
+.hi6re.
+.ho2d
+.ho2e
+.ho4re.
+.ho5ren
+.ho7ret
+.ho8ta.
+.ho8va.
+.hu4di
+.hus6val
+.hvit3
+.hvi3t4e
+.hy6ra.
+.hy4re.
+.høi5
+.hø4re
+.hø4va
+.hø4ve.
+.høy6st5æ
+.hå8en.
+.hå8er
+.hånd5s6l
+.i2
+.i3a4
+.i3bl
+.i4da
+.ifø5re
+.ig8la.
+.ig4le.
+.i4her
+.ik2
+.ik6k
+.ikke5
+.i3k6l
+.ik5t
+.ik8te.
+.i5kv
+.i3la
+.i4la.
+.i8lande
+.ilbo8da
+.il6d3r
+.il6de.
+.i3leg
+.i6les
+.il4ja
+.il6je.
+.il6ke.
+.il4le.
+.il6sk
+.il4te.
+.i6me
+.imø5te.
+.in5ad
+.in5de
+.in8ga.
+.in4ge.
+.in3gr
+.in6gri
+.in5k6
+.in6ka.
+.in4n3
+.in4ne.
+.in5n6e
+.in6n7eks
+.in6n7ets
+.in6n7ett
+.in4n3i
+.in5s
+.in7tes
+.io4na
+.io4nom
+.i4rer
+.ir7k8
+.ir8ra.
+.ir6re.
+.i6sa
+.i3sc
+.i6se
+.is7k6
+.isla8ga
+.is6lam
+.is4le.
+.is4let
+.is4me.
+.is8na.
+.is8ne.
+.is5pa
+.i5spe
+.is3s4
+.is6sa.
+.is4se.
+.is5sk
+.ist6
+.is8te.
+.i5sted
+.i5stem
+.is7ti
+.i6s7tj
+.i6s7tr
+.is8ut.
+.i6s5ø
+.i5ti
+.i3va
+.i4van
+.i4var.
+.i3ve
+.i4vel
+.i6ven
+.i4ver.
+.i4vere
+.iv8ra.
+.iv6re.
+.i3ø
+.j4
+.ja4de.
+.ja6e
+.ja4ne
+.ja8se.
+.ja4va.
+.je2a
+.je2l
+.je2m
+.je5re
+.jern5s4
+.je4ta
+.ji4
+.jo8en.
+.jo4se.
+.ju6a
+.ju6la
+.jule3
+.ju4li3
+.jø4dep
+.k6
+.kaf2
+.ka6la.
+.ka6li.
+.kalve5l8
+.ka5me
+.ka3na
+.ka4ne.
+.ka4p3r
+.ka4ra.
+.ka5r6a5v
+.ka6re.
+.ka5rin
+.ka4te.
+.ka5t6h
+.kau9k
+.ka6va.
+.ka4ve.
+.ke6e
+.kel3
+.kier3
+.ki4na
+.ki7ni
+.kino3
+.kir2
+.ki4se.
+.ki8va.
+.ki6ve.
+.kje3de5
+.kje4k
+.kjek7l
+.kjønn4
+.kle4s
+.kli5ne
+.klo9va
+.kly7sa
+.kna7se
+.kne4p3r
+.ko6da.
+.ko7gr
+.ko4la
+.ko3le
+.ko8le.
+.kol5j
+.ko3pe
+.ko6pe.
+.kor6s5ed
+.ko4se.
+.ko6ta.
+.ko4te.
+.ko6ve.
+.kring5s
+.ks6
+.ku5f4l
+.ku4le
+.ku8ra.
+.ku4re.
+.ku8ta.
+.ku8te.
+.kva4r1a
+.kve9ka
+.kve5ke
+.ky8la.
+.ky4le.
+.ky6te.
+.kø3s
+.kå6pa
+.l6
+.la4da.
+.la4de.
+.la4ga
+.la4ge.
+.la5ger
+.la4ma.
+.la6ta.
+.la4te.
+.la3tr
+.la4va
+.la3ve
+.la4ve.
+.le8ar
+.le4da.
+.le4de.
+.le4er
+.le6et
+.le2f
+.lef3l
+.lega5ta
+.le4ge.
+.le4gel
+.le8gi.
+.lei5er.
+.lei4ve
+.le4ke.
+.le4k5r
+.lemu9
+.le4ne.
+.le6o7
+.le7s6a
+.le4se.
+.le4sek
+.le4ses
+.le4s5p
+.le2t
+.le7ta
+.let6tan
+.le2u3
+.le3va
+.le4va.
+.le4ve.
+.le4ves
+.li8a
+.li4de.
+.li4e4
+.li5ene
+.li2g
+.liga3
+.li2k
+.lik5k6
+.lik3o
+.lik3s
+.li4ma
+.link6
+.li6ra
+.li4re.
+.li4sa
+.li4se.
+.li4ta.
+.li4te.
+.li5ti
+.li4ve.
+.li4v5en
+.liv8s7u6
+.liv4s5v
+.lo4e
+.lo6ge.
+.lo8gi.
+.lo6g5r
+.lo4i
+.lo6na
+.lo8o
+.lo6ri
+.lo8sa.
+.lo4se.
+.lo6te
+.lo4va
+.lo3ve
+.lo4ve.
+.lu4d
+.lu2e
+.lu4na
+.lu6pa
+.lu4pe.
+.lu6ra.
+.lu4re.
+.lu6se.
+.lu4ta.
+.lu9tas
+.ly4de.
+.lyd3s
+.ly8e
+.ly8ge
+.ly4se.
+.ly4sk
+.ly5s6e
+.lys5s6
+.ly8str
+.ly4te.
+.ly4ve.
+.lø8de.
+.lø6en.
+.lø8ne.
+.lø6pa.
+.lø4pe.
+.løv5i
+.løye5ne
+.lå8ma
+.lå5re
+.lå6re.
+.lå4te.
+.m8
+.ma4ge.
+.mag9r
+.ma3ka
+.ma4ke.
+.mak6t5at
+.makt5s
+.ma4le.
+.ma4li.
+.ma4na.
+.ma4ne.
+.ma4ni.
+.ma4ra.
+.ma4re.
+.ma4ri.
+.ma4sa.
+.ma4si
+.ma6st
+.ma8ta
+.ma6t8h
+.mat5t8o
+.ma4v
+.me4d3
+.me6d5ei
+.me6d4i
+.me6d7in
+.me6d5r
+.mei5er.
+.mei5et
+.mek5l
+.me6la.
+.mel3l6o
+.me4l5ø
+.me4ne.
+.me3ri
+.me4sk
+.me2t6a3
+.me3ta4ll
+.mes5ti
+.me4tri
+.mi6kj
+.mi4le.
+.mi4me.
+.mi4ni.
+.mi4nik
+.min4k3
+.min5k4e
+.mi6s3t4
+.mne6
+.mo5de
+.mo6er
+.mo4na.
+.mo8ne.
+.mon4st
+.mons6t5r
+.mor5d6e
+.mo4re.
+.mor3t6a5
+.mo4se.
+.mo4ta
+.mo4tek
+.mo4ter
+.mo4tr
+.mo5v
+.mu8ga
+.mu8ge.
+.mu6le.
+.mul5es
+.mur7
+.mu5r8e
+.my8ka
+.my4ke.
+.mø4re.
+.mø5res
+.mø2t
+.må6la.
+.mål3o
+.n8
+.nabo3
+.na6ge.
+.nak2
+.na8ke.
+.nan5s
+.na4r
+.na4sa.
+.nat2
+.na3tr
+.nat6tr
+.ne4de.
+.ne4den
+.ne4d5i
+.ne4d3r
+.ned3s4
+.nei5e
+.ne8pa.
+.ne6pe.
+.ne2s
+.ne4t
+.ni8ar
+.ni6er
+.nig4l
+.ni4na.
+.ni5o6g5
+.ni4pa.
+.ni6pe.
+.ni8sa
+.ni6se.
+.nita9
+.ni4to
+.ni4va
+.no6de.
+.no6e
+.no8ka
+.no4me.
+.no8mi.
+.no4r
+.no8se
+.no8si.
+.no4va.
+.nu4e
+.ny5a
+.ny8sa.
+.ny6se.
+.ny4te.
+.nær9ast.
+.næ4re.
+.nød4d
+.nø4re.
+.nå4de.
+.nå6le.
+.o6
+.obo5e
+.od4da.
+.od4de.
+.od8la.
+.od8le.
+.offsi6
+.of4te.
+.of5teb
+.og4
+.ok1k
+.ok8ka.
+.ok8ke
+.ok4se.
+.old3s
+.ol4ga.
+.oli5
+.ol8la
+.ol8le.
+.ol6m
+.om1
+.om4ar.
+.om6bo.
+.om4e6n
+.om4gå.
+.om4me
+.om5s2
+.on4de.
+.on5des
+.ond3s
+.on6kl
+.on6na
+.on8ne.
+.op5ar
+.op4pa
+.op4pe
+.opp7el
+.op4pi
+.opp3l
+.oppla8te.
+.opp5s6
+.op7r
+.opt6
+.or4da
+.or4de.
+.or4del
+.or4dr
+.ord5s4
+.or5ga
+.or6ka.
+.or4ke.
+.or6me.
+.or4re.
+.ort6
+.or6va
+.osa5
+.os4k
+.os4s
+.os4te.
+.ot5r
+.ot7t8a
+.ot4ta.
+.ot4te.
+.ot4tes
+.ot3to
+.ot4to.
+.ove6
+.over3
+.overen6d
+.over3i4
+.over5k8
+.ov8re
+.ov5u
+.p6
+.pa8la.
+.pa4le.
+.pa5n6e
+.pa6n7eu
+.pa5n6i
+.pa6re.
+.pe3do
+.pe4ke.
+.pek5t
+.pel4sj
+.pe4ne.
+.pe2p
+.pep3r
+.pe8sa.
+.pese5t
+.pe4st
+.ph2
+.pi6le.
+.pi6p
+.pi9ra
+.pi2s
+.plen5g6
+.plus6s5
+.plus7s6e
+.plø7se
+.po4et
+.po3la
+.po8la.
+.po4le.
+.po4log
+.po2p1
+.po2p2e
+.pop3p
+.po3p2u
+.po8ra
+.po6re.
+.po4res
+.po6st
+.po8ta.
+.po6tek
+.ps2
+.pøn3
+.pøn9s6
+.på5d6
+.r6
+.ra6da.
+.ra6et
+.ra4ga.
+.ra4ge.
+.ra4ja.
+.ra4ka
+.raks7
+.ra2m
+.ra4na
+.ra4ne.
+.ran7s6a
+.ra6pa.
+.ra6pe.
+.rap4s
+.rap5s4e
+.rap5s4o4
+.ra4re.
+.ra6sa.
+.ra7ti
+.ra6va.
+.ra4ve.
+.re4al
+.re6da.
+.re4de.
+.ree6l
+.rege4l
+.re4gi.
+.rei2
+.rei7de
+.rei5er.
+.re4ins
+.re6ka.
+.re4ke.
+.re8klar
+.re8kle
+.re4kli
+.re6kn
+.re8le.
+.re4ma.
+.re4na.
+.re4ne.
+.ren6sk
+.ren4t
+.rep5s
+.res9s
+.re5s6tan
+.rett7s8kri
+.re4ve.
+.re4ves
+.rev9n
+.ri2d
+.ri8e
+.rie5ne
+.ri6ka.
+.ri6ma
+.ri4me.
+.ri4pa.
+.ri4pe.
+.ri4p5o
+.ri4sa.
+.ri4se.
+.ris5ko
+.ri4s3ø
+.ri4ta.
+.ri6te.
+.ri6va.
+.ri4ve.
+.ro4an
+.ro4de.
+.ro8di
+.ro4e
+.ro8ke.
+.ro4ma.
+.ro4mi
+.ro6pa
+.ro9par
+.ro3pe
+.ro4pe.
+.ro4sa
+.ro9sar
+.ro4se.
+.ro4sed
+.ro4ta.
+.ro4te.
+.ro4tek4
+.ro8va
+.ro3ve
+.ro8ve.
+.ru8ga.
+.ru4ge.
+.rug9le
+.ru8ka
+.ru4na.
+.ru4ne.
+.runes6
+.run7g
+.ru4se.
+.ru4sk
+.ru8va.
+.ru4ve.
+.ry2e
+.rye7ne
+.ry6ke.
+.rød2
+.rød7s4
+.rø8le.
+.rø4re.
+.rø1v
+.rø8va.
+.rø4ve.
+.røy7e
+.rå8da.
+.rå4de.
+.rå4en
+.rå8er.
+.råg8
+.rå6ka.
+.rå4ke.
+.rå3k4l
+.rå6na.
+.rå8sa.
+.s6
+.sa4ge.
+.sag6n
+.sa4la.
+.sa4le.
+.sa4me.
+.sa4mer
+.san6d7
+.san7d8e
+.san7d8i
+.san8s7ku
+.sau6e
+.sch6
+.se2b
+.se2e
+.se4i
+.se4k5l
+.sek4s5o6g5
+.sel4v5
+.sel4v5i6
+.se6na.
+.se4ne.
+.sen7s
+.se4ra.
+.ser7vel
+.se4te.
+.sha9ke.
+.si2d
+.si6er
+.si6ga.
+.si4ge.
+.sik5k6e
+.si8la.
+.si4le.
+.si4ne.
+.sinn6s5
+.si4ra.
+.si5str
+.si4va
+.si4ve.
+.sje4i
+.sju5o6g5
+.sk4
+.ska7ka
+.ska5ke
+.skat4
+.skei5d
+.ski6n
+.skinns6
+.sko7de.
+.skog5u
+.skritt9s8
+.skudd5s6
+.skuddså7
+.sku6m5
+.sky6f7la
+.skå5ra
+.slim5
+.slotts5
+.slu9ka
+.slu5ke.
+.slø5se
+.sma4s
+.smas5k
+.smo9g
+.små3
+.små7k6
+.små9l
+.små5t4
+.småt5t
+.sn4
+.sne3
+.snitt5s6
+.snø3k
+.soa8
+.so8de
+.somma4
+.son6a
+.sop4pa
+.sor4t5
+.so4ta.
+.s8p6
+.spa5ra
+.spe6e
+.spi9la
+.spri5s6
+.st6
+.sta9ka
+.sta5li
+.stat4s
+.sted4s
+.ste4i
+.stein7a8
+.stein7s8
+.stem4m
+.stev9na
+.sti7me
+.sto5ne
+.sto6ra
+.strek5s6
+.stu8a
+.stu9va
+.stål5l6
+.sund5s6
+.su4ri
+.su5te
+.sv8
+.sva5la
+.sva5ra.
+.sva5re
+.svar5s
+.sver8n
+.syd5
+.sy5d6e
+.sy6na.
+.sy4ne.
+.sy5ter
+.sy3ti
+.sy6v5
+.sy6v5o6g5
+.sz6
+.sæ2
+.sær1
+.sær3e4g
+.sø8ka
+.sø4ke.
+.søl6v5
+.sør3a
+.søye5
+.søy6en
+.så5pen
+.så3re
+.t8
+.ta8ke.
+.tak9r
+.tak5sk
+.tak9s8p
+.ta4la.
+.ta4le.
+.ta4les
+.tal4li
+.tam5m
+.tan5de
+.ta4p5r
+.ta4ra.
+.ta4re.
+.ta2s
+.te4e
+.te6i
+.tei9er
+.te8ke.
+.te4ma.
+.te6o
+.te8ne.
+.te4se.
+.te7si
+.te4sta
+.te4str
+.th2
+.ti8a
+.tid5r
+.tid6s3
+.ti4de.
+.ti4e
+.ti4g3r
+.ti4ki
+.ti4l5
+.tili6
+.ti4med
+.ti4na.
+.ti4ne.
+.ti4p5l
+.ti4s
+.to5arm
+.to6en.
+.to4er.
+.to6et.
+.tokk8
+.to6le.
+.to6na.
+.to5o6g5
+.to4ra.
+.to4re.
+.to6reb
+.to3ro
+.torsk6e5
+.tor4s5v
+.to5rye
+.to4str
+.tota9la.
+.to5t8
+.to8te.
+.to6va
+.to4ve.
+.tr6
+.tra7c
+.tre3b
+.tre7p
+.tre5o6g5
+.tre6skja
+.tre3s8ko
+.tre3sp
+.tre5s6t
+.ts2
+.tsj2
+.tu4en.
+.tu6na
+.tu4ne.
+.tu6ra.
+.tu4re.
+.tu8ve.
+.tve6n
+.tver6r5a6
+.två7g
+.ty6da.
+.ty4de.
+.ty8et
+.ty8re.
+.tyr8s9
+.ty5ter
+.ty5ti
+.tæ4re.
+.tøv9d
+.tø6ve.
+.tø9ver
+.tø5vet
+.tå5ker
+.tå4le.
+.tåp9n
+.tå5ren
+.tå7ret
+.u5a6
+.u1b2
+.u6berg
+.u3d2
+.u7de
+.u3e6
+.u4er.
+.u6era
+.u4ere
+.uf4f
+.uf8sa
+.u4ga
+.u5gi
+.ug6la.
+.ug8n
+.u1i
+.ui6m
+.u1k6
+.u4ka.
+.u6ke
+.u7kn
+.u3le
+.u4le.
+.ule8k
+.ulen4d
+.u6lende
+.u8lene
+.u6let
+.u4lin
+.ul6ka
+.ul4ke.
+.ul4la.
+.ul8le.
+.ul8ma.
+.ul4me.
+.ul4ne.
+.ul5t
+.ul6te
+.u1lu
+.ul4v5i
+.u1ly
+.u3lå
+.u5ma
+.umu7
+.u2n
+.unde6ri
+.und5r
+.une8
+.u5nek
+.u9net
+.un4ge.
+.un2n
+.unn3s
+.u3no
+.un4se.
+.un4t
+.u5nu
+.u1o
+.u1p
+.u4pi
+.up2l
+.u2ra
+.u5raf
+.ur6an
+.u6rane
+.ur4d
+.ure4n
+.u4ret.
+.u6rets
+.u2r2i
+.ur4ke
+.ur6na
+.ur4ne.
+.u1ro
+.ur1s
+.ur8ta
+.ur4te.
+.urte5m8
+.ur6tet
+.u5rut
+.u3ry
+.u5rå
+.u1s2
+.u4sa.
+.u4sas
+.u5se
+.u3ska
+.u5sn
+.u7sp
+.us3se
+.us6t4
+.u7stek
+.u5stel
+.usy5r
+.u2t
+.uta4g
+.ut5age
+.u3tak
+.u4ten.
+.ut5esk
+.ut6e7sko
+.u4ti.
+.ut3kan6t5
+.ut4ne.
+.u5tol
+.ut3o6v
+.ut6rer
+.ut6rov
+.u3trø
+.ut6se.
+.ut4si.
+.ut3t4
+.u3tu
+.v6
+.va4da.
+.va4de.
+.vai4
+.va4ke.
+.va6les
+.valg5s
+.va4ne.
+.van4n5
+.vann5s4
+.va6reta
+.vari4e
+.var5sk
+.ve8en.
+.ve4ga.
+.ve6ge.
+.ve4g3i
+.veg3s4
+.vei3g4
+.vei3s
+.vei4ta
+.ve4l3
+.ve5l4ar
+.ve6l5art
+.vel5d
+.ve4l3e
+.vel5l
+.ve5l4os
+.ve4l5ov
+.ve4ly
+.ve8læ
+.ve4ne.
+.ve4net
+.ve4ra.
+.ve4ras
+.ve6re.
+.vermo9
+.vers4t
+.ver5ste
+.ve4sl
+.ve4st
+.vete5
+.ve8te.
+.ve4ve.
+.vi4da.
+.vide4
+.vi6de.
+.vi4d5å4
+.vi2e
+.vi4ka.
+.vil5l6a5l
+.vil5l6a5t
+.vi6ma.
+.vi8me.
+.ving7s
+.vin5n
+.vi4sa.
+.vi4se.
+.vi6seri
+.vi4ta.
+.vi4te.
+.vi5tr
+.vok4s3
+.vok5s6e
+.vo6r
+.vo6ta.
+.vy4
+.vye5ne
+.væ4ra
+.væ4re.
+.vå4d
+.vå4r3
+.vårs6
+.wa4r
+.wi6e
+.xe2
+.y6
+.ye4
+.yn8da.
+.yn4de.
+.yn6ge.
+.yn8ka.
+.yn6ke.
+.yn4kv
+.yns2
+.yp8pa.
+.yp4pe.
+.yr8ja.
+.yr8je.
+.yr8ka
+.yr4ke.
+.yrkes5
+.yr6t
+.ys4
+.ysterie8
+.yt9ren
+.yt5t
+.yt6te.
+.yv6
+.z4
+.zj8
+.æ8
+.ære4s5a
+.ære4st
+.æt4te.
+.ø6
+.øg8la
+.øg4le.
+.øi5
+.øi6e
+.øko5
+.øk6ta
+.øk4te.
+.øl3ed
+.øl3s6
+.øl3v6
+.øm4me.
+.øres8t
+.ør4je
+.ør5k
+.ør8na.
+.ør4ne.
+.ør6ski
+.ør9sm
+.ør3st
+.ør8ta
+.ørt9an
+.ør8te.
+.øs2
+.øs4t
+.øv4d
+.øve4r5
+.øve4r6s
+.øv4re.
+.øy6de.
+.øy2e
+.øyele8ge.
+.øy5ene
+.øy4n
+.øy6na
+.øy6ra
+.øy4re
+.øy8rer
+.øy4str
+.å2
+.å6e
+.å6f
+.å6g
+.å6k4
+.å8l
+.ål6t
+.ål8ut.
+.å8m
+.ån8da.
+.ån4de.
+.ånd6s5
+.åp6na
+.års3k
+.å6se
+.ås3k
+.ås7l
+.ås3m
+.å3ste
+.ås5v
+.å4t
+.åt4te.
+.åtte5o6g5
+.å6v
+a1ad
+4aaf
+a3aft
+aa4g
+a1aks
+aak5v
+aa3la
+aa2m
+a1a2n
+a6an.
+aans9t
+a7antr
+a1ap
+aa4ri6
+aarie9ne
+aar5n
+aa2s
+3aase
+aa5t6h
+a1av
+a6bab
+ab7av
+ab9b8l
+ab4but
+abe4lei
+abel5t4
+abe9na.
+abes9ka
+4abev
+a5bh
+abie6
+abi9er
+abi9la
+a4bist
+ab1l
+ab9lara
+ab4lok
+abl7u
+a5bo9a
+abo3b
+abo3e
+a3boer
+abo3kl
+a3bord
+5aborte
+ab1r
+ab8re
+ab2sl
+abu5e
+a4buel
+a4buf
+a6busk
+a4bute
+a4by.
+a4byb
+a4byk
+aby3r
+8ac
+aca5
+a6ca.
+ache3a
+ack3
+a1co
+6ada
+a5dal
+ad5ant
+a4dart
+ad9da
+a2deb
+ade5i6s
+a2dek
+a4del
+a4d5elv
+a5dend
+a3dene
+a2deo
+a2dep
+a5der.
+aderle7
+a2des
+a5de4ser
+a3desl
+a3det.
+a3dets
+3adfer
+1adg
+ad8ge
+adi4ene
+ad1j
+1adju
+2adl
+1adm
+ad5n
+ado7a
+a4dob
+ad7opp
+4ador
+a7dora
+ad5raf
+ad7ran
+a2dre
+ad7rel
+ad5rep
+ad3ret
+ad3rid
+ad1ro
+a7drø
+ad4s5amt
+ad4si
+adsle6ge.
+ad5s4let
+ads5te
+ad5s6tek
+ad3str
+ad5un
+1adv
+adva5re
+2adve
+a4dy.
+a4d5øy
+2a1e2
+4aea
+a4ed
+ae3de
+aed7r
+aek5t
+a4el.
+ae5la
+ae3li
+ael5o
+aen5t
+a3ep
+aes8ke.
+aes4t
+6afa
+6afc
+a4fe.
+afei5
+af4fan
+af4fei
+affe3s
+af7fi.
+affi3d
+af5f4u
+af4i
+afia1
+afi5an
+a2fib
+a6f5inn
+afi7re
+a4fiti
+a5fjo
+af9la.
+af9lar
+af3le
+af5li
+a4frik
+6afo
+afo7ra.
+afo7r8e
+afore5ne
+afra5s
+1afri
+afs1l
+aft5ei
+af4t5e4l
+af6t5o
+aft1s4
+af5yr
+afø4r
+afø5ri
+4aga
+a2gaa
+a5gae
+a4ganf
+agang7s8
+a4gart
+a5gas.
+aga6ve.
+ag5de
+a7gelen
+a2gem
+3a4gent
+age4r3a
+age6rek
+age5risk
+a7gers
+a5geru
+age5s2
+a4geta
+a4gé
+ag5gar
+ag4gas
+ag5ge
+agg1s2
+agg7u
+ag6gut
+a4gi.
+ag5id
+agi6s
+ag1la
+ag4lem
+ag6lesa
+ag5lå
+agmo8e
+agn5om
+4ago
+ago5d8
+ag1or
+a5gos
+a3got
+ag5ov
+ag7ras
+ag1re
+ag1ri
+4a3gru
+ag1rå
+ag4samb
+ags4ang
+ag3s4ei
+ag4sel
+ag3sem
+ag5s6ing
+ag6sju
+ag4ska
+ags4kul
+ag2sl
+agsmå6la
+ags3tr
+ags3t2v
+ag2sy
+a6gu.
+agu3ay
+agå8va
+agå8ve.
+a1h
+a5hi
+ah4n5
+ah4v
+ai1a4
+ai3e2
+ai3er.
+ai4is
+ai5ke.
+ai5ko
+ai9kv
+ai5ne
+a3ing
+a1inn
+ai4n5o4
+ai1ro
+ais4e
+ai4s3k
+aisk2h
+ai8sm
+ais6om
+ais5s
+ai5s4v
+ai5ve
+ai5ø
+a1j
+aja9d
+a7je
+a8je.
+ajes7
+a4jé
+a4ji
+a6jl
+6ak.
+a1ka
+4aka.
+1a2kad
+6akaf
+ak3aks
+6akan
+aka4o5
+4akar
+ak6arb
+aka4t5r
+ak4au
+2akd
+2ake
+a9kec
+a2keh
+a3kei5
+a6kek
+akel8e
+akelei9er
+ake5l4i
+ake4rek
+a4kerø
+ake5sm
+akes6p
+a8kete
+akhe6n
+4a1ki
+a6kid
+a6kik
+ak7ind
+akis1
+2a1kj
+akk6and
+ak5ke.
+ak3ken
+akk5erst
+ak4kes
+akki4
+ak5kim
+ak4k5is
+ak6kj
+ak1ko
+akk3ol
+ak6k5ri
+ak1ku
+ak4kul
+ak4k5v
+2ak1l
+ak3lev
+ak6lik
+ak6lus
+6akn
+ak5ne
+a5kno
+2a1ko
+ak5om.
+a5kon
+a7kos
+ak1o2v
+ak4pe6
+akra8sa
+ak5reg
+akregi4
+ak3res
+ak3ro.
+ak3roe
+ak1ru
+ak4s5and
+ak4sek
+akse3l4o
+ak4s5elv
+ak4ses
+ak7s6id
+3aksje
+ak2s1k
+ak7sku
+ak6sl
+4akso
+4aksr
+aks5ti
+ak5stol
+aks4tr
+akst7ren
+4aksu
+ak4tab
+ak4tai
+ak4tak
+akta6le.
+akt5all
+ak6tam
+ak6tans
+ak4tap
+ak4tas
+ak4tav
+ak4teg
+ak4tek
+ak5teme
+4akth
+7aktig
+ak5tit
+aktle6ge.
+ak2tr
+ak6tre
+akt3rå
+akt5s4la
+5aktue
+akut2
+2akv
+ak3val
+ak5øl
+a5kå
+8ala.
+al7adr
+ala4g
+ala9ga
+a5lagm
+alag8ra
+a5lah
+a1lai
+al3all
+al3a4me
+al3ana
+a3land
+a5lande.
+a5lane
+alan5gr
+al3anl
+al3anv
+ala4o
+ala5pr
+a5lar.
+a3lara
+a5laren
+al3ark
+a7larl
+3a4larm
+al5arr
+a5lars
+al3art
+a7larv
+al3a4si
+2alat
+ala7tr
+4alau
+al5auk
+al1av
+ala4va
+al4ba.
+albo4g
+albu7er.
+5album
+al3de
+al7der
+4aldo
+ald3re
+2ale
+a2lef
+a2leg
+a9leg.
+aleie6n
+a9l8eik
+a5leke
+a4leks
+a4leli
+a2lem
+al5e4mu
+al8en.
+a4l3enh
+a4l5en5tr
+ale4pos
+a7lept
+a4lered
+alere6de.
+a4le5ro
+a4leru
+ale1s2
+ale7se
+a4lesk
+ale6s5kr
+a4lesl
+a6lesu
+a4leta
+a4le3te
+a2leu
+ale5v
+a4leva
+a4levi
+3alfab
+2alg.
+al3geb
+al2gu
+al4går
+al3ill
+a2lim
+a9lin.
+ali5na.
+a4l3ind
+a4l3ins
+al3int
+al9ja.
+al3je.
+alj5end
+al3jer
+al1jo
+al4jor
+al2j1u
+al1jø
+alj5ø6v
+al9kera
+alk7s6
+alla4ga
+alla6ge.
+al4lap
+all5art
+al5lea
+alle6ge.
+al4lek
+al5len.
+all5erst
+alle3s4
+al4lest
+al5let
+3allia
+al4lid
+5alli5e
+alli9ne
+al6list.
+al4lo3m
+all4sen
+all4sti
+al6lul
+al6løs.
+al4løse
+al8løst
+al6lå
+al6mek
+al4met
+4aln
+a5lo.
+al1o4b
+a5loi
+al1om
+a1lon
+al3ope
+al7ord
+alori5
+alo6rit
+al3ove
+alow7
+alp2
+al3ps
+2als
+al7sed
+al9skap
+al7skare
+als1l
+als5lø
+al2sn
+al6spu
+als4te
+als6ter
+6alsu
+alt6ak
+alta8le.
+al3ted
+al7tema
+5alterna
+alte4t
+al4t5eta
+al4t5ete
+al4t3op
+a4l5u4k
+alul8la
+al5und
+alu8re.
+al5va.
+alv5aks
+alvak8se.
+al4ved
+al5v6er
+al8v9er8m
+alve5s
+al9ves.
+alvi8se
+al1vo
+alv3s
+6a1ly
+a2l5y4te
+alø5se
+al3øv
+a1lå
+al7å6t
+a4mah
+ama5is
+a2mak
+a5maki
+am3aks
+a2mal
+am5ald
+a3man
+a3mar.
+a5mara
+a7mas.
+amaso7
+3a4matø
+am4bar
+3ambas
+am4bat
+am5be
+a2mei
+am3eie
+a3meis
+a2mek
+am3eks
+amen8de.
+amen4s3
+amen6t7arv
+ame4ram
+a4meret
+3a4meri
+4amerin
+ame5u
+amhu7
+2ami
+ami7na
+ami7ne
+amisk3
+amis4ku
+am4lese
+am6lest
+am4mad
+6amn.
+am4ned
+a2mo
+amo5e
+am1op
+am1or
+amo6ve
+am4pap
+am4pare
+amp5ei
+am8peria
+am6perie
+ampes6
+amp7inn
+am2p3l
+am5p4let
+am4p4re
+am4pun
+am2på
+amru4
+am5rå
+am1s
+am7s6ku
+ams4l
+amst6
+am4s3tr
+ams9ut
+ams2v
+am4s5ve
+am2sø
+am3ti
+amti5da
+5amtm
+am7tv
+am6ul
+am5yr
+am5øy
+6ana.
+anak8te.
+ana3la
+anal4f
+3analy
+8anan
+a3nane
+a5nang
+anant8
+4anar
+a6narb
+an5art
+ana3to
+6an7au
+anaus7
+an9av.
+3anbef
+4and.
+an4da5m6
+anda5ta
+an4dek
+an5den
+anderle7
+an9det
+6ando
+an4dos
+4ands
+and4sel
+and8send
+and7slet
+and5s6tre
+a2ned
+an5egg
+a4n5elv
+a2nem
+2anen
+2aner
+ane3ru
+a5nes.
+a4nest
+ane5sv
+an5e6tika
+a5netike
+an5e6tikk
+an5e4tis
+a2nev
+3anfal
+anfø5re.
+ang4e
+an4ged
+an4g5enh
+ang5erme
+an8geste
+an4gi.
+5angiv
+ang5of
+an5gos
+an4g9ra
+an4gre.
+an6gres
+an4gret
+an4g3ry
+ang4sm
+angs6tro
+angs8t9rå
+angst5y
+ang5sva
+ang6søy
+ang4t5re
+ang5t6ve
+an4gun
+an4gå.
+ania7
+a6nib
+a4nisj
+4aniv
+an4kana
+4anki
+4ankj
+an4kob
+an4kop
+an4kos
+an2k1r
+ankra8na.
+ank3re
+ank3ut
+8an2kv
+an4kø
+an6k5å6
+2anla
+anland6
+anlø9pa
+ann5ans
+an6neme
+an5nen
+an5ner
+an5nid
+an4ninn
+an4nom
+5annon
+an4nov
+ann4sei
+ann4sid
+ann6s7kå
+ann6sl
+ann3st
+ann5sta
+ann4s3u
+an4ny
+an2nø
+a3no.
+a9noa.
+ano6deb
+2anog
+a7norm
+a6not
+a2no4v
+ano5va
+an3ove
+anri7ke
+ans5aft
+ansa7ka
+4ansan
+3ansat
+an4sek
+an4sent
+anseri8e9ne
+an4ses
+3ansik
+ans5ind
+ans5ins
+an4ski
+an3skj
+ans4k3l
+ans6kun
+an5skø
+an6slø
+an4sn
+ans5or
+an4s3pi
+ansport7s6
+an1st6
+6anstar
+ans4te4
+2ansu
+an9s6und
+5ansunda
+1an1sv
+4ansve
+6ansy
+an4så
+anta8la
+an5t6and
+an4tans
+an3ted
+ant5emi
+5antenn
+an4tesl
+anti7kl
+an4tim
+an5toi
+ant5ord
+ant5rab
+ant7rom
+ant5ryg
+ant5s6
+an4tul
+antus4t
+2anu
+anus7a
+an5ut
+3anven
+6anvin
+6any
+a4nya
+a2n1æ2
+anær8
+2anø
+a2nøk
+an7å
+a1o
+ao9a
+aog9
+a2oi
+ao6k6
+aon8de.
+ao2p
+ao4r
+a5pea
+a7pé
+a1pi
+a2pia
+ap1id
+a6pik
+a6pins
+a2pio
+api6r5
+api7r6e
+api7se
+ap1j
+a1pla
+a5p6las
+ap3li
+ap9lo
+ap2ly
+4apol
+a4pon
+a4poo
+apo3p
+apo5s4ti
+a2pot
+3ap3par
+4appar.
+6appare
+app7esk
+ap5plas
+ap4ple
+ap5pli
+ap6pri
+ap3ra
+ap5ren
+ap5ret
+ap3rin
+ap2s1
+apsa4
+ap3sel
+apse4s
+ap8s9l
+a3psy
+ap4s5ø
+8apu
+a6p5ut
+a1py
+ap7ø
+a3p8øls
+a5på.
+a1ra
+ara9bi
+ar5aks
+arak5t
+ar3alt
+a4rami
+2aran
+a4ranor
+a4rans
+a4ranv
+2arar
+a4r5ass
+ara5te.
+ar5aug
+ar7auk
+arau9ken
+ar7avh
+1arb
+2arba
+arba8ne.
+6arbeh
+4arben
+6arbet
+2arbi
+4arbj
+6arbl
+2arbo
+arbo8da
+2arbr
+2arbu
+2arby
+2arbø
+4arbå
+ar7deb
+ar6deli
+ardfø5re
+ard3re
+ard5sta
+a1re
+1a2rea
+4arear
+a4reb
+areba4r
+a2red
+a2ref
+a2rei
+are3in
+a2rek
+a6r5ekt
+a4rela
+ar7elek
+a4r6eli
+ar7emn
+a5remo.
+3arena
+a6r5eng
+a4reni
+aren5tes
+a2reo
+a2rep
+a6rerel
+a4r5erfa
+a6rerk
+a4rero
+a6rerø
+a5res.
+ares8ka
+ar4et
+a7reta.
+a4rev
+ar7e6va
+ar3evn
+arev6ne.
+8a1ré
+6arf
+ar7g6h
+ar5g6i
+6argj
+arg4l
+ar7go
+arg5stj
+2a1ri
+aria7ne
+a3rib
+ariba9
+ar5idr
+a4rim
+ar3inn
+ar3ins
+arins9k
+ar3int
+ari3se
+arise4a
+a4risto
+a2riv
+ar4kau
+ar3ke
+ar4ke5s
+ar5kha
+3arkit
+3arkiv
+ar4kle
+ar4k5løf
+ar6kod
+ark6ste
+ark4str
+ark7veg
+ar4køy
+arla4ga
+ar4map
+5armbå
+ar4medi
+arme7t
+ar6metr
+ar4minf
+armle6ne.
+armå6la
+2ar2n
+ar4nad
+ar4nal
+arneva7la
+ar3ni
+ar3no
+ar3nu
+ar3nå
+a1ro.
+aro8de.
+a5rok
+a1ron
+ar1op
+aro6pa
+a4r1o4r
+a1ros
+ar7ost
+a1rot
+ar3ove
+ar6ped
+ar9po
+arp5ret
+1arra
+ar5ree
+ar7resk
+arri8e7
+arrå6da
+2ars
+arsa6ka
+ars5ans
+ar3sel
+ar6s5ers
+ar4sin
+ars5kam
+ar5skar
+ars5kes
+ars7kre
+ar4spr
+ars6tr
+ars4vei
+ars7æ
+arta4la
+arta6le.
+ar3te
+ar7tele
+8artets
+art4ha.
+art4has
+ar4tika
+6ar4tim
+4artn
+4arto
+ar4top
+6artr
+art9ra
+ar6trin
+art6s5t
+arts5ø
+6artu
+8arty
+ar4tyv
+ar1ul
+ar1un
+ar5u6r
+a1rus
+ar5utb
+ar5utn
+arve3s
+ar6vete
+arvi8sa
+arvi8se.
+a1ry
+ar7æ6
+arø8ve.
+ar1øy
+a1rå
+arå8de.
+ar7åp
+a6r5åt
+6as.
+4a1sa
+asab4
+asak4
+a4salo
+as6an
+as7aug
+asbe2
+a1sc
+a2se.
+asea4
+a2sed
+a2seg
+a2sek
+as4el
+ase5le
+a2sem
+a6senet
+a4senk
+a7seol
+a2se5s
+a6sest
+a4sete
+a2se3u
+as2h
+as5hu
+a4sib
+a2sip
+a2sir
+a7sis.
+asis5t
+a2siv
+as4ja
+a6sjett
+as5jor
+as3kar
+ask6et
+as5keti
+ask2i
+as5kis
+a5skj
+as5ko.
+as5koe
+a4s5kopi
+as3kor
+as3kot
+a1skr
+as7kra
+as3kul
+a5s6kula
+as6kule
+ask9u8t
+as4kv
+ask5øy
+as1l
+a5s4lag
+asla8ga
+as4lev
+as4lit
+a1so
+a4so.
+a2s5om
+as5ov
+as4pan
+as3pe
+as7pis
+as5pl
+as9sa.
+as4sab
+as4sal
+ass5ald
+ass5alt
+as4sam
+as5se.
+as4sed
+as4sek
+asseri7e6
+as4serv
+as4ses
+as6sifr
+as5sing
+assi3s
+as4sit
+as2sj
+as6s1k
+assku6le.
+as2s3n
+as5so.
+asso9a
+as7sos.
+as6s1p
+as2s3t
+as4stan
+as4str
+ass5tru
+as2s1v
+as4sys
+as4søk
+as2s5å
+as1ta
+as6tab
+a6stande
+a4statu
+as5te.
+as3ted
+as4teg
+as4tek
+as4t5enh
+a1stj
+a9stof
+a5stok
+ast5ov
+ast5ren
+as4tro
+as9tua
+astu8ve.
+ast5ø4v
+a1su
+asu3n
+asu9sa
+as1va
+a6sym
+asyn7d
+as7øye
+as5å
+4at.
+4ata1
+a5taene
+at6af
+ata8ka.
+ata8la.
+a4tang
+ata9rar
+a6t7arv
+atas4
+a5tas.
+atat8
+a2tau
+at5avh
+atch5
+a2tea
+a2tec
+at7edd
+a2tee
+a4tei
+at5eid
+at3eig
+ate3in
+a4teka
+ate5k8e
+ateke7ta
+a6t5ekte
+ate7le
+at3emb
+4aten
+a5tene.
+a4teni
+a4tenu
+a2teo
+4ater
+a5ter.
+a6terat
+a8terek
+a4teril
+a2tes
+a4t3ett
+at6e5u
+a4té
+3atfer
+at4ha.
+at8has
+4ati
+atik6ka
+atili5
+ati5nea
+ati4rep
+ati8sta
+at3jo
+5atlant
+atl9øy
+3atmos
+at4nel
+ato5a
+ato5gr
+at1oi
+a2tom
+a6t5oppr
+a1tor
+a5tose
+a3to1v
+a1tra
+at5reg
+at3ren
+at3rer
+a4trif
+at3rin
+at5rot
+a9tru
+at5røs
+at5røy
+2ats
+at3ser
+at7sje
+at7s6kat
+at7skj
+ats6kul
+at2s3ø
+4att.
+at6tat
+4at5te.
+at5tens
+attfø7re
+at4tid
+atti4s
+att5ise
+at3tit
+att1o
+att7o6p
+atto6v
+at1tr
+at4traf
+at4t3re
+at6trin
+att3s6k
+att5s8l
+att3sp
+att3sv
+at6tys
+at2t3ø2
+a1tu
+atu5e4
+a2tut
+at5v
+atvi5er.
+a3t3w
+a1ty
+atyr8ke.
+a5t6yv
+a1tø
+atør3s
+atø9se
+a4t5øy
+a3tå.
+a7tåa
+a1tåe
+at5år
+at5å4se
+at7åt8
+4au.
+8a8ua
+au9ar.
+4au5b
+auba6ne.
+au3c
+au5da.
+au9det
+au4di.
+4a6ue
+au7en
+au7er
+aue5re
+au3est
+au6e5ta
+au5e6te.
+au4gal
+au4gas
+au4gel
+augele8ge.
+5aug2n
+3augu
+au5i
+au5keli
+au5ket
+auk5la
+1auk7s6
+au5kve
+au6las
+au4lat
+aul5l
+aul8la
+au5lu
+au9men
+au6mo
+aum5s6k
+aum7s4t
+a5und
+au5rae
+aure5s
+au5ret
+au5ri
+aur5s6
+au1ru
+auru4e
+au1sa
+aus9kj
+au6skr
+au1so
+aus5s
+au6s8tas
+aus8tett
+austi6s
+aus6t7ise
+aus6ton
+au5str
+au6stri
+au1su
+au4sun
+au2s5ø4
+aut6a
+au3ta.
+au7tar
+au5te
+1auto
+auto5v
+au3t4re
+au4ty
+2aux
+a1va
+av5ab
+a5vae
+ava7g
+6aval
+av3alv
+a4v3and
+av3ang
+a4v5anl
+3a4van5s
+a9var.
+av3art
+avar6ta.
+4avas
+5avbi
+1avd
+3avdel
+2a1ve
+a2ve3d2
+a5vede.
+a7veil
+ave3in
+a2vek
+a4vela
+a4vele
+a5veleg
+avens4
+a5ver.
+ave7ras
+aver5d
+a6verei
+a2ves
+a2vev
+1avfa
+1avg
+avi4ar
+4a5vig
+a1vik
+avi9ke
+a1vin
+a4v5int
+2avir
+5avisa
+avi5sa.
+3a6vise
+av5ising
+avis3t
+a5vit
+avlu9t
+avlø5se
+6avn
+av7na
+av4nes
+a1vo
+a4vok
+avo3r
+avo4v
+av1r
+av4res
+av5ri
+av1sa
+av5seg
+avs2i
+avsko7g
+3avsni
+av1s2p
+avspe9g4
+avs4te
+av5su
+av1s2v
+1avt
+avta9ka
+2avu
+1avvi
+av3øl
+4a1vå
+a6v7å6l
+a1wa
+awat4
+a5we
+awe9ne
+a1wi
+ay2a
+ay7ane.
+ay5ar
+ay9s8t
+a5y4t
+a5zu
+azz3o
+a1ø
+a7å6
+1b4a
+ba3a
+baby5
+ba4bys
+ba5cl
+ba2d
+ba4da.
+ba7dan
+b5add
+ba8de.
+ba4deb
+ba5den.
+ba7dens
+ba3di
+bad1s
+4baf
+ba2k
+ba5kan7
+ba3kar
+bakars9
+ba3ken
+ba4k5end
+baken6de.
+ba3ker
+bake3s
+ba9ket.
+bak9ett
+ba3ki
+ba8ki.
+bak6kers
+bak6ko
+bak5kr
+4bakr
+bak4re
+ba5kri
+bak3ro
+bak3sm
+bak5sp
+bak5s6ti
+bak5str
+bak7t6
+bak1v
+ba3la
+bal7ak
+ba4les
+ba4li.
+bal3j
+bal4lag
+bal4lan
+bal4led
+bal4leg
+bal4lei
+bal4lev
+bal4lig
+bal6lov
+ball5s6
+bal6læ
+ba1lo
+bal5t
+ba1lu
+ban4a
+ba4na.
+ba5nan
+ba5nar
+ban9da
+ba4nel
+ba4nes
+ban6kap
+ban4kor
+ban2k3u
+bantu5
+ba3re
+baret5t
+ba3ri
+bari6e7n
+bark5s
+bar5skr
+bar5tr
+ba5ru
+ba5sen
+ba4seru
+ba4set
+ba3si
+ba2s1k
+bas6sak
+bas4san
+bassi4
+bassis5
+bas4so
+bas4st
+bass6tr
+ba2st
+ba7s8u
+ba1ta
+2ba1tr
+bat6ti
+bau9la
+6bav
+ba5z
+2b1b
+b3ba
+b6bak
+b4b5arb
+b6base
+b3be.
+b4beb
+b4beda
+b2bef
+b4beg
+b6beh
+b2bei
+bb3eie
+bb5eig
+b2bek
+b6belo
+bbel6t3
+bbelte4
+b4bem
+b9bene.
+b2beo
+b3ber
+b4b5erf
+b4bes6
+b7beska
+b6beta
+b6beten
+b4beti
+b6beto
+b6betr
+b2bev
+b8b1h
+b3bi
+bbi9e8
+b4b5inn
+b2b1l
+bb7len
+bb5op
+bb5rek
+bbu9ra
+bb5ut.
+bb5ute
+b2by5
+bby3e
+bby1k
+b4bø
+b6bå
+2bc
+2b1d
+b2dek
+b7den
+b4dep
+1be
+be2au
+be4bo.
+bebo5er.
+bebo9k
+be4da.
+be9dar
+be3der
+bedi9e8
+be4dre
+bed5red
+bed2s1
+bedy9ra
+be1då3
+2bee
+be5ed
+be6ef
+b4ef
+befa5re
+be3g
+bega9
+be4ga.
+be4gi.
+be4gn
+be5go
+be4g5re.
+be4g5rene.
+be4gå.
+be6ha.
+beha7g
+behers7
+4behu
+behå4r
+be6i
+be5ke
+be2k3i
+bek6kel
+bekke5r
+bek4kes
+bek6l
+4beks
+be4l3ab
+bela9ga
+bel5eie
+bel5eig
+bel5ein
+be4lek
+beli9na
+beli9v
+belle5sa
+bel5let
+bel5læ
+be2l1o
+bel5s4p
+bel7s4t
+bel4tag
+bel4te5s
+bel4t3ø
+bel3u
+bel5v
+belæ5re
+belå7ne
+be4na
+be5nat
+be3ne
+4bened
+be4nest
+ben5gu
+be5ni
+ben5s4i
+ben5skj
+ben5sp
+ben5te
+2bep
+b4er
+4berai
+be7ras
+ber5d
+be4rep
+8berest
+bere5te
+ber4ga
+ber4g5ende
+ber5ges
+berg3j
+berg3l
+berg3o
+ber4g3å
+be5rib
+beri5ke
+be7ris
+ber6kl
+ber5na
+ber5ne
+be1ro
+be4ro.
+bero9a
+berri6
+ber5te
+ber5ti
+be1ru
+beru9sa
+berø5v
+b4e1s2
+5bes.
+be4se.
+be5s4i
+4besik
+6besj
+bes5ke
+bes6k5n
+be3sn
+bes7ne
+4be3so
+beso9v
+be5sp
+bes3s
+bes6s7a6
+bes6sel
+bes7si
+bes7tens
+bes6tes
+be5stes.
+be6så
+3b4et
+5bet.
+be4tab
+be3te
+4betei
+be7tes
+beto5ne
+be6trar
+be6tre.
+be4t3ri
+4betu
+be4ty.
+beva5re
+be6ve.
+bevi5se.
+be9vo
+bev9r
+6beå
+beån9
+7bé
+2b5f
+6bg
+2bh
+bhu1
+1b4i
+bi5ak
+bi6bla
+bi5ce
+bi1d
+bi5dee
+bi8dé
+bid6r
+bidu8
+bi5el
+bi6ele
+bi5erv
+4bifa
+bi5g
+bi3ka
+bik1k
+bik6ki
+bi5k4l
+4bi7kr
+bi6la.
+bi4las
+bi4lau
+bi3let
+bilet5r
+bi4lin
+bil3j
+bil5la
+billa8ga
+bil5leg
+bil5m6
+bil1o
+6bi5m
+bi4nans
+bingo5
+bin4gol
+bi7no
+4b5int
+bio7
+bi3o8m3s4
+4bip
+bi4ri5
+bi7ris.
+bir4ken
+bi1ro
+bis2a
+bi3se
+b5ish
+bis6hi
+bis7ke
+bi5s4la
+8bisn
+bi4sp
+bis4p5i
+bis5se
+bi1st
+bi5s6ta
+bis4til
+bis5tru
+bi3s4v
+bi6ta.
+bi4te.
+bi5tes
+bi8ti.
+bi4tre
+bi6tri
+bjar3
+bjek4t5o
+bjø6r
+2b1k4
+b5kh
+bl2
+1b2lad
+blad3a
+bla6f3
+bla8ga
+blak5r
+bla5me
+blan9da
+b4lank
+blan5ke
+b4lant
+b1lar
+b8larar
+b3lat
+bla4u
+b4lef
+bleie5
+blei5er
+b4lek
+ble4k3a
+ble5kes
+ble4mo
+b3ler
+ble7r6a
+b6lesa
+blesse9ne
+b4lest
+2blet
+bli9ke
+bli5ma
+bli5me
+blings6i
+blis3s
+b5lj
+blja4
+blo6dr
+1blok
+blom5m
+b6lu
+blues3
+blu9sa
+bly7gl
+blæ5re.
+blå5n
+blå3r
+blå7sa
+blå5se.
+2b1m
+6bn
+b3ne.
+b3ner
+b7nes.
+b7ni
+b2o
+boa5s4
+bobba6ne.
+bob5by.
+bob9bye
+bo2bl
+bob7la
+bobs4
+bo3de
+bo6din
+bo6d7r
+bo2dø
+4boef
+1boen
+bo2er
+bo4et.
+2bo3f6
+bo4gel
+bogn7
+bog1s
+2boh
+2boj
+3bok.
+bo2ka
+bo6kel
+bo4k3et
+bok1i
+bok1k
+bo6kop
+bo6k5ri
+5bok1s
+boksi8da
+boks4p
+bo2ku
+bok3ve
+b4ol
+bol5eie
+bo7li
+boli7n
+bo7lo.
+bo5loi
+bo4l5o4r
+bol5s4p
+bolst6
+1bomb
+bom4bel
+bom5m
+bo6mo
+bom1s4
+bo5nap
+bon5ato
+4bonn
+bon5ne
+bons4
+bo5nus
+boo6
+boom1
+bo1p4
+bo1ra
+bo4ra.
+bo6re.
+bo7rel
+bo3ren
+bo3ret
+bo4rete
+bo6ri.
+bo3ro
+bor6t7ef
+bor6tei
+bor4tes
+bor6t7et
+bor4ti
+bort5s6
+b4o1s
+bose8te.
+3boska
+bo2sl
+bos5se
+bo4sto
+1bot
+bo4ta.
+bo4tak
+bo4tal
+bo6te.
+2bo7to
+4bot6r
+4bot4v
+bou3c
+4bo1v
+bow4e
+bo6y
+4bp
+b7pl
+br8
+1b4ra
+bra5ka
+brak5s
+bra5se
+bred5sp
+brei5e
+brei3s
+bret7te
+b6rev
+brevi9er.
+bre4vin
+bri5a
+b4rio
+b2ro
+bro9ar
+bro1s4
+3b4ru
+bru5ke
+bruk4s3
+bru4na
+bru7na.
+bru5nes
+bru5pl
+bru7ren
+bru5sa
+brus4l
+1bry
+bryn4s
+b4rø
+brø5de
+bråe6
+brå9ne
+brå5te.
+6b1s
+bs4e
+b5s6e6a5m4
+b4s5el
+b5s6i
+bsk4
+b4sli
+b2sm
+b2s1of
+bs2t6
+b6st7f
+b7s6v
+bså5
+6b5t
+b7t6s
+1b2u
+bu4ar
+4bub
+bu3da
+bud5d6h
+bu3de
+4bu3em
+bu4en.
+bu9ene
+bu4er.
+bue5s
+bu1i
+bu6is
+6buki
+buk3l
+bu5la
+bu4le.
+bul3le
+bun7de
+bund4s3
+bun8ge.
+bunk3r
+bunnla8ga
+bunn3s
+2bu3o
+bu1p
+bu6ra.
+bu4re.
+4bu3ro
+bu3ru
+bus6e
+bu4se.
+bus4h5e
+busk7ø
+bus6sek
+bus4sel
+bus6sent
+bus6set
+busse6te.
+bus6sj
+bus4sn
+bus4sp
+bus4st
+buss3v
+bu1st
+4bustr
+4busy
+bu1ta
+bu4tal
+bu7tem
+b5utg
+4butst
+bu2tu
+bu1tø
+4buv
+6buø
+2b1v
+4b5w
+1by
+bya2
+by5al
+by9are
+by7dep
+by4en.
+by7ene
+by5ens
+by2er
+by3ers
+by4ge.
+byg3l
+3byi
+by1lo
+4bylø
+by5n
+by1re
+by6re.
+by1s
+5bys.
+4byse
+6bysi
+6bysp
+byst4
+by4ste
+4bysv
+by5tar
+by4te.
+by1tr
+2byv
+bæ5rar
+bæ6rar.
+bæ4re.
+bæ5ren
+bæ5rer.
+bæ5rere
+bæ5res.
+bæ5ret.
+bæ3ri
+bæ4r5is
+bæ3ru
+1b4ø
+bø4e
+bø7ens
+bøf3
+bø4kes
+bø6la.
+bø6le.
+bø2n
+bøne5
+bøn6nes
+bøn7o
+bø6re.
+bør4s5k
+bør4sp
+børs3t
+børs8ta.
+børs3v
+bø5ta
+bø1v
+bøy7ar
+bøye5
+bøy4ene
+bøy4es
+bøy4et
+1b4å
+bå4de
+bå9des
+bå6e
+bå7ene
+bå4la
+bå1re
+bå6reg
+bå4rep
+bå4s3te
+bå6s7ti
+bå6t5j
+bå6to
+båt5r
+1c4a
+cab4
+ca4e
+ca5le
+ca5me
+ca5mo
+ca4pe.
+cap1r
+ca6pris
+ca3ra
+car5n
+ca5ro
+car4te.
+ca2sa3
+ca6set
+cash5
+ca5s4til
+cas5to
+ca1t
+cath5
+ca4to.
+6cb
+4cc
+c1ci
+c2d
+cde6
+cebo9
+ce3d
+ce1i
+1cel
+ce5le
+cel4les
+cel4lev
+3cen.
+ce4ned
+ce4nee
+ce4nem
+ce4ne5s4
+ce5nes.
+ce4net
+ce4nev
+5cens
+cen4ti9m
+cen6to
+ce5o4
+1cer
+cerba6ne.
+ce3re
+ce1ro5
+cer3t
+6ceru
+cest3o
+2ch.
+cha5le
+3cham4
+cha7ne
+cha5t
+2chb
+4chei
+chel5s
+che7te
+chi4li
+4ch3h
+2chm
+4chn
+ch5ne
+chom4
+cho5s6
+2chp
+8chs
+6cht
+ch1v
+ci1c
+3cid
+ci2e
+cie8n
+cie2s5
+cil5l
+ci3ne
+ci5ta
+2c6k
+ck5ar.
+ck5art
+ck1en
+ck3er.
+ck4ere
+ck5e4t3
+ck5et.
+cke8y5
+ck1i
+ck1k
+ck1o2
+ck7r
+ck5s2
+cku6
+ckup3
+ck9ut
+c2l
+clai4r5
+cly4
+c1m
+cmini4
+coa6
+coat5
+co6bid
+1co4c
+2cod
+6cof
+6cog
+co4la.
+co4lab
+co4lak
+co4la5r
+co2m
+co5ma
+com5t
+co6n5os
+con5s
+con7t
+co2o
+co7pa
+2cor
+co3r6a
+co1re
+co4so
+4cost
+co4ver
+c1pr
+cr8
+cras4h
+crack4
+cre2e
+creen7
+cros2
+5cru
+4c4s
+4c1t
+c6ta
+cty5
+1cu
+4cu.
+cu5la
+cu5le
+cu5lu
+cup1l
+cu6po
+cup1r
+cup7s
+cu4på
+2cur
+cures4
+cu6t
+cy2a
+cy6p7
+cys3
+c6z
+cæ5
+1da
+4daa
+4daber
+8dabo
+d5abs
+6d5adel
+d4adg
+dadø4
+dadør5
+4daef
+2daf
+5dagb
+da4gev
+4dagj
+dag7l
+da6go.
+da4g1r
+da6gun
+4dagå
+4dahe
+5dahl
+da1i
+2daka
+4dako
+4dakr
+dak4se.
+4daktig
+da5kv
+7d6al5j
+da1la
+da8la.
+da4las
+6dalau
+dalbu8er
+4d5ald
+da4les
+dal6so
+da1lu
+da4ma.
+da4man
+da3mas
+da4me.
+da3men
+6d5ameri
+dame3s
+dame5t6
+da3mo
+dam7pe
+5dan.
+6danal
+d8ane
+9dani
+2d1anl
+3dann
+dan5neb
+4danno
+7dano
+d4ans.
+dan3sa
+dan4sel
+dan9s8kan
+4dansv
+9dant.
+9danti
+8dany
+2da3o
+2dap
+da3pe
+d3app
+3dar.
+5dara
+2darb
+dard3s4
+4darea
+da4res
+d5arn
+da2ro
+dar5os.
+dar5s6
+dar4ta.
+dar6va.
+dar8ve.
+4dasei
+2dash
+6dasi
+4dasjef
+da4sk
+da9sko
+6dastr
+6dasu
+data5
+4da4tal
+data6le.
+datali8na
+da4tek
+7d6ato
+da3toa
+4da5tr
+dats6j
+d6aud
+daud7s8
+dau5go
+2daut
+2dav
+d5avb
+d1avl
+d3av5s
+4daø
+2d1b2
+dba8le.
+dba4ne.
+dbe8ta.
+dbe6te.
+dbling7
+dbo6en.
+d6byf
+4d1c
+6d1d
+d2dad
+ddag4
+d4dak
+d4d5arm
+dd3eie
+d2dek
+dde4lap
+dde4l5o
+ddel5sv
+d4demi
+dder5s
+d4desu
+ddie8
+d7dom
+d4d1re
+dd5run
+ddsa4
+dd4sala
+dd4skap
+dds5tab
+dd3s4te
+dds5tr
+d2dyb
+ddø2
+ddør3
+d4d5øy
+dd1år
+1de
+2dea
+deak3
+de2al
+de7b
+6debar
+4debas
+3debat
+2debe
+4debl
+2debo
+5debon.
+2debr
+3debut
+2deby
+4debø
+de1c
+5ded.
+2deda
+6d7edd
+7dede.
+4dedek
+4dedel
+4dedia
+2ded4r
+2dedy
+2dee
+5dee.
+de7er
+2def
+d5eff
+d5eft
+2deg
+6d6e5ge
+5degg
+de3gl
+2deh
+5dehavs
+2dei
+dei4d
+dei4ene
+3deig.
+dei8ge.
+5deigen
+dei4g5r
+5deik
+d2e1in
+3deir
+de5is.
+de3ist
+7de7it
+2dej
+8deka
+2deke
+2deki
+2dekj
+5dekk
+dekk3a
+dek4kan
+dek4kel
+de6k6kv
+dek2l
+6dekly
+5dekni
+de5ko
+4dekod
+4dekon
+4dekos
+2de5k6r
+dek6st
+deks7ti
+deks6tr
+5dekt
+2deku
+4dekv
+4dekø
+4dekå
+d4el.
+6delad
+6delage
+de6lans
+4delau
+4deled
+de4lef
+4delei
+del5ei4d
+del5eie
+4de4lek
+de5lele
+4d5elem
+de4lest
+6d3e4lev
+4delid
+6delinj
+del5int
+4delis
+4deliv
+del4lap
+del6lei
+del4lek
+del6lerf
+del6lig
+d4els
+del4s5at
+del3se
+delses7
+del4si
+del4spo
+d4elt
+del6tala
+del3te
+del7tr
+6deluk
+del5ve
+4dely
+4delæ
+2delø
+delø6pa.
+6deløy
+2delå
+2de5ma
+d3emb
+2deme
+demie4
+4demj
+dem8na.
+de4mo.
+de4mog
+5demok
+4demol
+demo5no
+5demos
+dem5pe
+3demr
+5dems
+4demu
+2demø
+2demå
+d2en.
+4dena
+de7nak
+6d5en6den.
+de5neb
+4dened
+6denel
+4denem
+4denet
+4denev
+6d5engen.
+4deni
+4deno
+de4nom
+d2ens
+den4sin
+den4s3t8
+den6t5ant
+4dentif
+4dentit
+dent3o
+den4tr
+dent5s8
+den6t5u6
+den6tå
+4denu
+2denæ
+2denø
+de2ob
+de4og
+2deol
+4deopp
+4de3or
+de4ove
+4depak
+4depap
+2depe
+4depi
+4depl
+6depu
+d2er
+der8am
+de6rant
+de4rare
+de4rark
+5de7rast
+dera5te
+der3av
+der5d
+4derea
+4dered
+de4r5edd
+de4ref
+4dereg
+4derep
+6deresi
+der5est
+8derest.
+6dereste
+4derett
+de4rif
+de4ril
+5derin
+de4rinæ
+der5k
+der5ne
+de5rob
+4derog
+4deros
+de5rose
+dero8se.
+6de7rot
+dero4v
+der5s6n
+der4sp
+der3t
+der5un
+de5rup
+6derus
+der3v
+4derør
+2derå
+de1s
+3d6es.
+2desa
+4desc
+2dese
+de5seg
+des5ers
+4desho
+de8s9hop
+desi4s5t
+2desj
+2desk
+9desk.
+5deske
+4des4le
+2deso
+2desp
+7despl
+6de5s6pr
+d4es2t
+5dest.
+5deste.
+des6tem
+de5sti
+4destj
+4desto
+4destrå
+4destu
+6desty
+de4s3tå
+6desup
+des6v
+2desy
+deså7
+d2et.
+2deta
+deta8ka.
+de3te
+4detea
+6deteg
+6detekk
+4detel
+4deten
+4detep
+detes7
+2deti
+2detj
+4deto
+4det6r
+2detu
+4dety
+4detø
+6detå
+2deu
+d1eur
+5deus
+2dev
+deva8ne.
+devi9er.
+3devik
+d7ev8n
+de5vu
+2dey
+4deø
+2deå
+2d1f
+dfø6rarar
+2d1g4
+d4gel
+d5gi
+dgi6n
+dgjø6re7n6h
+d3go
+2d1h
+dhav4s
+dheim2s5
+dhu9ga
+dhø4r
+1di
+di6ak
+di5alg
+dia5li
+di1ar
+dia3re
+dia1s
+dia7sp
+dias6t
+diats4
+2diav
+2dib
+did5ri
+di7ell
+di5en.
+4di5end
+di1er
+dies4
+3diff
+diffe5
+3diful
+4difø
+di8g9and
+di4gat
+di3ge4s5
+dig7g
+2digj
+dig8la.
+dig6le.
+4digren
+dig5ret
+4digru
+di2gu
+4dih
+4dii
+2dij
+di5ka
+di8ka.
+di5kem
+2dikj
+6dikn
+2diko
+2di1kr
+dik7v
+2dili
+dil4les
+di5ma
+6dimed
+6d5i6mel
+4dimes
+4dimet
+2dimo
+4d5imp
+4dimå
+di5na
+2d1ind
+di7nen
+4d5ingk
+din3gr
+ding8s5en
+ding6s5er
+din8g9å
+dini4
+di4ni.
+4d1inn
+2dino
+2dinv
+4dinø
+3diog
+7diol
+dio3na
+dio4no
+di3ori
+dio5tr
+2dip
+3dipl
+4dired
+4direg
+4d5irs
+5dis.
+di6sc
+di6sed
+dis4i
+disie5ne
+d6isk
+dis6kam
+di4skj
+dis6k7l
+di4sk6o
+dis5ko.
+dis7koe
+dis7ku
+dis5s
+dis1t
+dis7tik
+di5sv
+dis4vi
+2disy
+di4tal
+di7te
+4ditek
+dit4tet
+ditt3r
+di9us.
+di4va.
+4dival
+di7van
+4divek
+div6i
+2divu
+2diøk
+d1ja
+d1je.
+d1jen
+djer5ve
+d7jes.
+dje9ve
+d6jingan
+d6jingar
+d1jo
+dju8la.
+5djup
+6djupar
+d4jø.
+2d5k2
+dka8ra.
+dki6
+d5kj
+dko2r
+dku4le.
+4d1l4
+d3la
+dla4ga
+dland7as
+dla6te.
+dla4v
+d4ledi
+d2lef
+d4lega
+d7legar
+dle3ge
+dlei7er.
+d5leka
+d2lel
+dlem4st
+d4lenet
+d4leru
+dleva8ne.
+d5li
+dli4f
+dli5ke
+d5lo
+dly8se.
+dlø8pa.
+d5lå
+dlå9re
+2d1m
+dme6la.
+dmo4e
+dmors6
+dmo8s
+dmø4re.
+dmå6la.
+8d1n
+dn6a
+dno8de.
+1do
+2doav
+do2b3
+4doba
+do3be
+8do9b8lan
+2dobå
+do4da
+dodø4
+dodør5
+4doeu
+2dof
+d3off
+d5ofr
+dog6med
+dog4me5s
+2dogr
+6do5i
+do3ki
+4dokine
+dok6kan
+4dokn
+do5le
+4doled
+doli8ne.
+4dolinj
+6dolis
+4dolj
+dol5l4
+4domes
+do5mis
+4doml
+do4mo
+dom7p
+2domr
+dom8sa
+dom8s5e6
+dom6s5i
+dom4s3k
+doms3l
+domsla6ga
+dom4so
+do4mu
+do4na.
+don5g
+4donke
+6d7on6kl
+don5st
+don5t4
+2dop
+do4pa.
+do4pe.
+3dopi
+d6o1ra
+do5ran
+2d1ord
+dor4da
+do1re
+dor6gest
+d5orie
+dorm8
+do3ro
+5dorp
+3dorr
+dors6
+dors7ke
+do1ru
+do7rye
+5dos.
+do4se.
+do4set
+do1sk
+6do7s6l
+2doso
+4dosp
+2dost
+do3str
+4dotr
+2dov
+do5va
+do5ven
+do4ver
+dov9n
+4doø
+2d7p8
+5dq
+dr4
+d1ra.
+d5raa
+d9rad.
+d5rade
+1d6rag
+dra5gen
+dra6kes
+3drakt
+1dram
+5d6rang
+3drap.
+5drapa
+3drape
+d3rapp
+d1rar
+d6rarar
+d3rarb
+dra6ret
+d5rarm
+d5rarr
+d9ra8sa
+9dratt
+drau7ma
+2dre.
+5dreass
+2dred
+d5rede.
+d5reder
+dre7d6r
+d5reds
+9dreg.
+9drege.
+d3regj
+3dreie
+drei5en
+drei5er.
+drei7ern
+d5rej
+d6reka
+d7rekk
+3drekt
+4drel
+d7relig
+4drem
+d1ren
+4drer
+d3ret.
+d3retn
+d6retr
+d3rets
+drett4
+dretts5
+5drevet
+3drevn
+4dria
+3d2rif
+2d1rig
+d2rik
+d3rik.
+dri8ka.
+d3rike
+3drikk
+drik7s6
+d9rikt
+5d4ril
+2d1rin
+dring6
+drit7tr
+drit5u
+dritun8ge.
+1d2riv
+3dronn
+dro6pa.
+drop5s
+2d1ror
+3d4ros
+dro8ta.
+2d1rov
+dro5va
+dro3ve
+2dru
+3druk
+d1rul
+d1rum
+d3rup
+6d5rut
+2dryk
+drykk4
+d2rys
+d4røm
+drø6re.
+d7røt
+drø3ve
+d1råd
+drå4de.
+3dråp
+8ds
+d5sa.
+d3sabl
+ds1ad
+ds3a6del
+d1sag
+dsa9ga
+dsak6se.
+d1sal
+dsa8la.
+d4s3alf
+d6sall
+d9same
+ds1a6n
+ds5ane
+ds1a2r
+d2sas
+d4satf
+dsbø6n
+d5se.
+dse4d
+ds1ef
+d2s1ei
+ds7eks
+ds3ela
+dsel4s5a
+dse2m
+ds3emi
+d6s7enda
+dsen8de.
+d4s3eng
+d5sens
+ds3e2p
+d7ser.
+d6serf
+ds5erk
+d4s5e4sk
+ds5e4st
+ds3eta
+dse4te.
+d5setj
+ds1ev
+d2s1i
+d3s2id
+d7sida
+ds5ident
+ds3idr
+d7sil
+ds5ind
+d3sir
+ds3i4s
+dsi4ve
+d4s3jen
+d2sjo
+ds7jor
+ds6ju
+ds5kab
+d4s3kan
+ds3kar
+d4skat
+d1skj
+ds5kjen
+d6s5kjøt
+ds1ko
+d5skot
+ds3kro
+ds1kv
+ds1l
+ds5la.
+ds5lan
+ds6lem
+dsli6k
+ds6lo.
+d9slott.
+ds4luk
+ds3ma
+d6smo
+dsmå6la
+ds3ne
+ds5no
+ds1o2
+d7somst
+d4s5os
+d7sot
+ds1p
+d3spek
+d3spel
+ds2pi
+d9s8py
+ds5s4
+dst4
+ds3tak
+d4s3tal
+d3s8tar
+d5s4tat
+ds6tau
+dss8t
+d8s9te.
+ds9teik
+dste6ma.
+d6s5temp
+ds5teo
+d3s4tig
+d3s4tik
+d5stilli
+ds1tj
+d3stor
+d3stri
+dstu8na
+d5stund
+ds3tv
+dsty8e
+ds3tyv
+ds1u2
+dsure6
+d5s6us
+d6s7usk
+ds1v
+dsva8ne.
+d3s4vet
+dsvi6ka.
+d5syk
+d3syn
+dsy6na
+ds1yt
+d2s1ø
+d6sør
+ds1å6
+4d1t
+d3t4a
+dta6la.
+dta4le.
+dta4s
+d3tem
+dte4ma.
+dt4eng
+dterle7
+dte4se.
+d5t4et
+d3ti
+dt6j
+d7to
+d5t4rag
+d6troc
+d5t4rø
+d6t1s2
+d3t2va
+dtø8
+dt6øk
+dtørs3
+dtå4
+1du
+dub5b
+dub5l
+du1c
+du9ene
+du9ens
+due5s
+4dufo
+3dug
+4dugu
+duit6
+du6ka.
+dul5l
+4duly
+dums2
+du4na.
+dun7de
+4d5uni
+dun5s6
+dun7sta
+7duo
+d3upk
+3dur
+du6ra.
+du6re.
+du6rei
+dur8ta
+du1s
+du5s4a
+du9sem
+du5s2i
+du2sk
+du2sl
+du2sp
+duss4
+dust4
+du2sv
+2d1ut
+du6va.
+du4ve.
+2d1v
+dva6la.
+dva6lel
+dva4ne.
+dve6s
+dve6va
+dve8ve.
+d7vo
+dvo8r
+2d1w
+1dy
+dy9a
+2dyba
+2dyf
+dy5ke.
+4dykl
+4dykø
+2dyl
+dy4na.
+dy4ne.
+4dynk
+dynk6s5
+dy3pes
+dy2p3r
+dy4ra.
+dy5reba
+dyrle8ge.
+dyr5s4
+dy2r5u
+dyr5ø
+7dys.
+dy8sa
+4dyse
+dy6se.
+dys7s
+dyst7r
+dy2t
+d5z
+8dz.
+1dæ
+dærs4
+1dø
+4dø.
+død2s1
+dø3gr
+2døk
+d5økn
+dø4ma
+dø4pe.
+dø4pen
+d2ør
+dør3i
+2døs
+d6øs.
+dø2st3
+døt3
+dø9va
+dø3vel
+dø1vi
+6døvl
+døv8le.
+2døy.
+døya8
+døy8g
+4d9øys
+1dåd
+dåd6s5
+då8na.
+1dåp
+då8ra.
+då5ri
+d3ås.
+då8sa.
+då7sem
+d7åt.
+2ea
+e1a2b
+e1ad
+ea2d1i
+eadli5
+e1af
+ea2gu
+e1a2k
+e4akr
+6eakt
+eak6se.
+e1al.
+e5alle
+eal8le.
+ea4lov
+e3alte
+ea2lø
+ea4m1
+e3aman
+e5amn
+e1an
+e2an.
+ea4ne.
+e6a5net
+e4ani
+ean7n
+ea4nor
+e6ans.
+ean3sl
+e1ap
+ea4pe
+e1ar
+ea2re
+ea5rer
+ea5ret
+ea5r4i
+ear6ka.
+ear8ma.
+ear4ta.
+ea2s1i
+e3asp
+e1ass
+ea7ta
+e5a4tel
+eate6ren
+ea4t3et
+eat8h
+eat6le
+e8ato
+ea5tri
+e1att
+e1au
+eau6ga
+eau6ge.
+eau8ra.
+eau6re
+eau5s
+eau8sa
+eau8se.
+e1av
+eav8la
+eav8le.
+2e1b2
+eba3d
+eba4ne.
+eb3be
+eb4be.
+ebe4d3e6
+ebei7er.
+eben6s5k
+ebers6
+ebesku5
+ebet5s
+eb3h
+e5b6lo
+eblæ5
+ebob3
+ebo4da
+ebo5ers.
+ebo6kr
+ebo6la
+eb5s
+ebu4e5re
+ebu5ern
+ebu6et
+eby4ta
+ebø6n
+2ec
+e4ca
+ec4c
+e1ce
+e5cha
+e3com
+e2dad
+ed5ad.
+e5d4ag
+edag4s5
+e2dar
+ed3ark
+ed3arv
+ed7dela
+ed4dyr
+e3de.
+ed5e6ge
+ed5eg4n
+ed3eie
+e4deks
+ede8le.
+e4denf
+e8d5eng
+eden5t
+e6depr
+ede4ra
+e4derø
+e4desk
+ede4sl
+ede4sm
+e4desn
+ede4s5p
+ede4ta
+e6d5ett
+e8dé
+e5d6ia
+edi6a5ne
+edi4ene
+edi6gj
+ed4is
+edi3si
+edi4s5k
+e7div
+edle6ge.
+ed8ob
+edok8se.
+e4dol
+ed1op
+ed1ov
+e1dr
+ed2ra
+ed3reg
+e5drev.
+ed3rom
+e6d5ryg
+ed7ski
+ed3skr
+ed3s4la
+ed2sm
+ed5ta
+ed3te
+edt6r
+edu8a
+ed7va
+edvi6s
+e3dyk
+ed5ynk
+edyr6ke.
+edæ4
+e3d6ø1r
+e3e2
+eea7
+ee3b
+e2ed
+ee3di
+eeg4ga
+eeg6n
+ee5gå
+eei4d
+eei7ni
+eek1e
+eek4te
+ee3la
+e5e4li
+eem6na
+ee4n
+e5enb
+een3in
+een6k
+een5t
+e3epl
+ee8ra
+eer3en
+ee3ri
+e4er3l
+eer4me.
+e6e5sh
+ees8ka
+ees6ke.
+e3e6t
+eev4ne.
+e1f
+4efa
+efal6s7
+e4fana
+ef3ank
+e4fark
+efar6s5
+ef7ea
+ef5ef
+ef3fe
+3effek
+ef3fo
+4efi
+e4f3id
+e5fig
+e5f4ilm
+efi7ren
+efisken8
+4e3fj
+2efl
+efle6ge.
+eflå3
+e2fn
+efo8bi.
+efo4no
+8efr
+ef2sj
+ef2sk
+ef2sp
+ef6str
+e8ft
+ef2ta
+efta5r
+eft5ei
+ef5ter
+eftle8ge.
+eft1s4
+6efu
+efyrs5
+e3fæ
+4efø
+efø5le
+eføy9
+2ega
+e3gaf
+e6gala
+e7gam
+ega4ve.
+egde8l
+eg7des
+e5gedo
+egei9e
+ege4let
+e2gem
+e3geme
+egen5s
+3e4gensk
+e7geom
+e2ges2
+ege5sp
+eg9gen
+egg3l
+eg8g9ut
+egi3an
+egie2
+e4giko
+egis4p
+e3g6lad
+e3g4led
+eg7lesa
+e5g4lit
+eg7ly
+e5g6lø
+6egm
+e9g8nag
+eg4nem
+eg6no
+e7gnå
+4ego
+e4go.
+7egoi
+eg2r
+egrans5
+e7g8rø
+egs4am
+egs4ki
+egs4ta
+e1gø
+egøy6e5ne
+4egå
+egå4va
+egå4ve.
+e1h
+ehea4
+ehei9e
+eh5er.
+e4h5ere
+eh7ern
+eher4s
+ehog5
+ehov2
+ehy6re.
+ehø8va
+e6hå.
+2e8ia
+e9iakt
+ei9a4n
+ei7ar.
+ei4c
+e8id.
+ei3d8ar
+e3idea
+e3ideo
+ei9der
+ei5det
+5eidf
+5eidg
+e6i2do
+e1idr
+ei3d4u
+ei7e
+eie5d
+ei8eg
+eie2n
+ei9en.
+eier3a
+ei4ert
+ei6es
+ei1fl
+8eig.
+ei3ga
+eig6e
+ei6gev
+ei5gi
+ei6gra
+ei6gu
+4eii
+ei5kaa
+ei3ke.
+ei6kee
+ei6keh
+ei4kel
+ei6keri
+ei4ket
+ei1kr
+eiks3a
+eik6se
+eik4so
+4eil
+ei9led
+eil5egg
+e3illu
+ei3lo.
+ei9loa
+eil5op
+ei5los
+eil5s6
+4eim
+ei7ma.
+e5imag
+ei4m5a6l
+ei4med
+ei6mei
+ei7men
+ei4me5s
+ei4met
+eim9ett
+ei6mo
+8e1imp
+ei4n3al
+ei4nans
+ein5ant
+ei7nare
+ein1d
+4e3indu
+ei5ned
+ei7nel
+ein9f
+einga6
+ein3gr
+e4ini
+6ei6nit
+ein3k4
+e5inkar
+4e1inn
+ei4nom
+ei4nov
+einsi9d
+ein4s3l
+eins6o
+e4inspi
+ein7sto
+ei2n1u4
+ei3num
+6einv
+ei2n3ø
+ei5or
+e4ip
+ei9pa
+ei3pe
+eip5s
+2eir
+eir9ak
+ei7ren
+ei3ri
+eir5s
+2eis
+ei5sar
+e4ise
+ei3se.
+eise5i
+ei3sen
+eiseri9e8
+ei3s4ha
+ei4sil
+e3isk.
+e3iske
+ei6s3kj
+eis3ko
+ei3s4pe
+ei4spi
+ei4tek
+ei4tera
+ei4tere
+ei2to
+eit7ta
+ei6t7ut
+ei3tve
+ei6t7ø
+ei4vak
+eiva9r
+ei9ven
+ei3vi
+eiv5s4
+e1j
+ejo8en.
+eju6la
+4e1ka
+ekali7
+ekalie6
+ekam6s5
+eka6ra.
+e5kavr
+ek3eie
+e4kero
+e4kes
+ek5e4ta
+e6key
+e5k6hov
+e1ki
+e4ki.
+4e1kj
+2ekk
+ekke7le
+ekk9ist
+ek1kj
+ek4kjø
+ekk3l
+ek5kok
+ekko5v
+ek6ku
+ek4ky
+e1kl
+e8klane
+ek6leg
+e6klen
+ek5let
+e3klu
+e5klæ
+ek2lø
+4ekn
+ek9na.
+e3knek
+ekne7s
+ekni7p
+ek3no
+e3k4nok
+e1knu
+e5knø
+e1k2o
+e4ko.
+eko7le
+ekords8
+eko6te.
+e4kov
+2e1kr
+e3k2ra
+e3k4red
+e7kref
+e3kren
+e4k5ret.
+e5krets
+e5k4rev
+e3k2ri
+e3kro
+ek4ry
+e3k4rå
+ek5råd
+ek3s4ak
+ek4sal
+3eksam
+ek3sel
+3eksem
+ek4sig
+eks1k
+ek4ska
+1eksp
+eks5pe
+ek4sta
+ek7s6tel
+ek3sti
+ek4stil
+ekst5o
+ekst3å
+ek4sæ
+ek6t7arm
+ekt3av
+ek3tef
+5ek3tep
+ek5tes
+ek6test
+ek4tid
+ekti5m
+ek5tiv
+4ekto
+ektori6a
+ek4t3ra
+e1ku
+eku4le.
+e1k2v
+ek4val
+ek6var.
+6ekve
+e4k5ve4d
+e4k5vik
+ek4vin
+ek6vis
+3ekviv
+6e5kw
+e5ky
+eky6te.
+e3kæ
+e1kø
+e1kå
+ekå6pa
+2e1la
+ela4ga
+el3agg
+e2l1ak
+e5lake
+elak8se.
+el7akt
+el1al
+e8lame
+el3anl
+e6l5arg
+e4larr
+el7arti
+e5las.
+e5lase
+ela4te.
+el5ato
+el5avl
+el3avs
+elbo8da
+el4ch
+el5do
+eld4rer
+eld5sle
+4eled
+e4ledi
+e4ledr
+e3lee
+eleg5d
+ele7ger
+eleg8na
+e7leir
+e7leis
+e5leke
+e2lel
+e2lem
+e5lem.
+e5lemat
+5elemen
+e5lemet
+e3lemm
+e3lemp
+4elen
+ele9na
+e4l5enh
+elens3
+e4lentu
+e5lepa
+2e3ler
+ele8ra.
+e7leret
+e6l7erg
+ele3sk
+e6lesku
+e4leta
+e4lete
+5e8lev.
+ele4vak
+6e5levn
+el5fi
+el9ga.
+el5gele
+el5gi
+elg3s8
+2eli
+e9lie
+eli5e6rer
+e4lif
+e4li5g4r
+e4l3ind
+elin5es
+e4linsp
+eli6o5s
+eli8ta.
+eli4tet
+6e5litt
+eli6v7en
+el1j
+elk2
+el6k5al
+el4ke5s
+el4kete
+el3kn
+el5la.
+el5l6ar
+el4led
+el4leg
+ell5eie
+el5ler
+el3le4s
+el6lete
+elli7ga.
+el4lisj
+ell7sa
+ell5sk
+ell5s4l
+ell5sp
+ell5sv
+el5l4ur
+el4læ
+el5m4o
+el5mu
+el5n
+2e1lo
+elo6ka.
+e2lom
+e3lomm
+el3omn
+el3oms
+el1op
+e2l1or
+e3lort
+el3ost
+el4ot
+elo7vers.
+e4l5ovn
+el4pet
+el5ph
+elro4s
+el4sei
+els5eie
+el3sen
+el3se6s3
+el3si
+el4sje
+el4skal
+7elskand
+els5kare
+els1l
+el6sno
+el4spe
+el3spr
+els4ten
+el4sti
+el4stj
+el2sø
+els5øk
+el5s6åpe
+elta8le.
+el5te.
+el6teg
+el4tero
+el4t5ett
+el4t3op
+el4tro
+elt5rop
+el2tu
+e3lua
+e1lu2e
+e4lu4he
+e3luk
+e7lum
+el3ung
+elun6ge.
+e7lup
+elu8pe.
+e1lur
+e7lus
+el3utr
+elv3an
+el4ve3d
+el4vei
+el6vere
+elv1r
+5elvs.
+elvæ6re.
+4e1ly
+ely8et.
+el5ynd
+2elæ
+elæ5res
+el9ærv
+e6l5æt
+2elø
+e4l3ø4r
+el3øy.
+el5øya
+el5øyd
+e6l3øyn
+2e1lå
+el1år
+e5låt
+4em.
+e2mad
+emafo5
+ema4ge.
+e4magr
+e2mah
+ema4ke.
+e4mako
+em5akti
+e4maku
+ema6le.
+5e4malj
+e4mam
+e4mana
+ema4ni.
+e6manu
+e4mare
+em7ar8m
+e4masi
+e6masku
+e4mata
+ema3uk
+ema5ve
+5emball
+3embed
+embe6r5
+3embet
+6emd
+8eme
+emei9e
+eme4li
+e4mend
+eme5tri
+eme6trisk
+em5e4v
+e4mib
+emi5ert
+e4mig
+4emin
+emi5ni
+emini6st
+e4minor
+e6mir
+emi9sa
+em7je
+e5mju
+em5le
+emle6s
+em5me.
+em5men
+em8mi.
+8emnd
+em4ne.
+em4ned
+em4nem
+6emni
+emo5nol
+em1op
+e2m3o4v
+em4ped
+em6peri
+em2p3l
+emp9lane.
+em6pli
+empo3
+em4pol
+em4pos
+em4ses
+emse8te.
+em4s5ju
+em4s1l
+em2sn
+em4sor
+em1st8
+ems4te
+ems3u
+emta8la
+em4til
+e3mug
+e2muk
+e5my
+emy4k
+6emø
+emø8r
+e5møy
+emå4la
+emå9lan
+emål4s
+em1å8r
+2ena
+en1ak
+en3ald
+ena5li
+en3all
+en5and
+e5nane
+e6n7ang
+e4n3ant
+e5nar.
+en8are
+e4narr
+en3ass
+enat6s5p
+ena2v
+en3avi
+4enb
+enbe9na
+en4d5and
+en4dek
+en3del
+endelø7se
+en5demi
+en3der
+en4desl
+end5l
+1endr
+en4d3ro
+end3st
+en7dø
+endø4r
+endør5e
+en5egg
+eneg8ga
+en3eie
+en5eks
+e3nekt
+4enem
+2enen
+en5eng
+3energ
+e4nesk
+4enev
+ene7ven
+eng6a
+en7gar
+en4gem
+en4geri
+enge6r5u
+en4gle
+eng4les
+eng4r
+eng3s4e
+eng5so
+eng5sp
+engs4ti
+en4gut
+en4g5å
+4enhj
+e4ni.
+e4nierk
+e2nif
+e5nir
+en4kera
+en4keri
+2enna
+en9nal
+2enne
+en4nem
+ennes6t
+enne4s5v
+enn2i
+enn2o
+enn4sj
+enn5sta
+enn7ø
+2eno
+en3ok
+en3og
+en3om.
+en1op
+e6n5ord
+2enp
+en4pås
+en4rem
+en5sab
+ens5af
+en6s7a6ker
+en4sek
+en4seli
+5ensemb
+en4ses4
+ense3u
+en3si
+ensi8de.
+ensi5ert
+en4sim
+ensle7g
+ens6lev
+en7s6opt
+en1st
+en6s7tal
+ens4ter
+ens4ti
+ens7und
+ens4ve
+ensvi6
+en2sø
+ens3øk
+ens7å
+en5ta.
+en4tap
+en5te.
+en4tec
+en4teg
+en4tel
+en3ti
+en5tie
+en5tig
+en5tik
+en9tima
+en7timen
+en4to4r
+ent5ori
+ent5rab
+en4tre
+ent5ren
+en4t5rol
+entropi5
+en4t3rå
+en6tul
+entun6ge.
+3entus
+2enu
+e2n7ul
+e4n5ur
+2en3v
+4enw
+e4ny.
+e2nyb
+e6nyr
+e2nys
+e4nyta
+4e7næ
+enæ8m
+enø4k
+e2n3øv
+en5øyd
+4enå
+en1ås
+en6ås.
+e3o6
+eo3a
+e6obe
+eo2bl
+eo5d
+eod8de.
+e1og1
+eo7gr
+e2o1i
+e2ok
+e3oks
+e2ol
+e4o7lo
+eom1s4
+eon8de.
+eo5ne
+e7onk
+eon4kl
+e3ont
+eo2p
+eo3pa
+eo5pl
+eopo3
+eopp5r
+eo3pr
+eor4da
+eo9re
+e2ori
+eo4rid
+eori5e6
+eo4rik
+eo4ris
+eo1ro
+eo1s
+eos6l
+e2o1u
+2e1p
+epa3t
+e6peno
+epe6p
+eper5r
+e3pes
+epe4st
+e4peta
+e6peu
+3epid
+epi6ka.
+epi7kr
+3episo
+ep2l
+e8plen
+ep5lene
+ep5ler
+eple9s6
+3eplet
+epo6et
+3epoke
+epp2s
+ep6sem
+ep4ses4
+ep6s5lu
+eps1t
+ep2su
+e3p2sy
+ep6tin
+ept6r
+2e1ra
+e4r3abb
+era8da.
+e4rael
+e2raf
+er3aft
+e4ra4g
+e2r1ak
+e3rake
+era5kl
+eral3u
+e4rama
+era6na.
+e5rande.
+e5ra7ne
+er7anli
+era4no
+er5ape.
+er5aper
+er5a4pin
+er3apo
+er5appe
+e5rar.
+e4rarg
+e5rasane
+e5rasar
+e4rasje
+e4rask
+e6raso
+e4r3ass
+er6ast
+e4ratek
+era7tor
+e4ratr
+er5att
+e2rau
+er5auk
+erau9ken
+erau8s
+er3av.
+er3avh
+er5avl
+e3ravn
+er3avr
+er3avs
+4erb
+erbi9ti
+erbo8da
+erbo8de.
+er8byl
+erd2e
+er4ded
+erden8s
+er4dis
+er1dr
+erd4ra
+erd8re
+erd4skj
+erds3t
+erd4sto
+erdsto8ga
+er3d4v
+e1re
+er3eff
+er3eft
+er5e4gen
+er3eid
+er3eie
+ere6ka
+ere6ke.
+e4r3eks
+e6r5ekte
+e4r3e4le
+ere4lit
+e6relli
+e4r3els
+e9rem.
+e5remm
+er3emn
+er5enden
+e4r3eng
+e4r5enh
+e3re4o7
+er8er.
+e4r3erf
+e5reri
+er3ess
+ere4t
+e5ret.
+e4r3eta
+eret6h
+ere5to
+e7rets
+6erett
+eretts5
+e4r3e4va
+e4r5e4ve
+e4r3evn
+erev6ne.
+e8ré
+5erfari
+6erfi
+4erfr
+2erg
+erg5elv
+ergi3f
+er6gli
+er4go.
+erg5ret
+erg5sko
+erg5sp
+2erh
+erhø6re.
+e1ri
+e4riad
+e4riak
+erib3b
+eri3bl
+e4rice
+e2rid
+e5rid.
+e5ridn
+eri4kat
+e6rikn
+4eril
+e7ri6ma.
+er3ind
+e3ring
+6eringar
+ering6si
+er3inn
+er3ins
+er3int
+e5riori
+e5ris.
+e4risa
+eri3se
+e4riso
+e6risp
+e5rist.
+e7rista
+e5riste
+eri5stil
+e4ri5s6to
+eri5sø
+e4rite
+e4rito
+er7ivo
+er7jes.
+4erka
+8erke
+erkeri6e
+er4kesa
+er4kese
+er4kete
+er6k5ett
+3erklæ
+6erkn
+4er5k4o
+4erkr
+erland7as
+erle6ge.
+erle7s8t
+er3me
+ermo8de.
+erm1s
+ermå6la.
+2ern
+er4nad
+er4ned
+er5nede
+er6nee
+er4nero
+er4nest
+er2no
+er3nob
+2ero
+e3roa
+er3obl
+5ero4b7r
+e1roe
+er3off
+e1rog
+er5oks
+e1rol
+er3oly
+e1rom
+er5omk
+ero5mo
+e1ron
+er5ond
+erono5
+er1op
+e5rop.
+e7ro6pa
+e5ropen
+er1o2r
+e5ror.
+e3rore
+e7ro4sa
+3erosj
+er3osl
+ero4ta
+er1ov
+2erp
+2err
+er3ra
+er4rae
+er4rel
+errie9n
+6ersa
+ersa8ka
+ers6al
+er3sep
+6ersj
+er1sk
+er3ska
+ers4ka.
+er8skaran
+er9s6karar
+ers5kor
+er1sl
+ers4la
+ers6led
+ers4mi
+er5sne
+6ersp
+ers5tens
+ers5ter
+er7stev
+er1su
+4ersv
+er4sva
+ers4ve
+er1så
+er4s5år
+2erta
+er4tare
+er4te3s4
+er5tia
+er3tib
+erti4e
+er5til
+erti4mo
+er4top
+ert5rol
+4erts
+ert3sa
+erty6e
+ertå7ren
+2eru
+e1rua
+e5rud3
+e1rui
+er1u2k
+e3rum
+e4r3ung
+er3uni
+e3rup.
+er1u8r
+erure8
+e1rus
+er5ut.
+e5ruta
+e3rute
+er5utn
+er9uto
+e4ruts
+er7u6v
+ervele8
+6ervi
+ervs3
+ervæ6re.
+e1ry4
+e2r3ya
+erye7ne
+er1yr
+erys3
+e1ræ
+e9r4ære
+2e1rø
+er5økn
+e4røko
+er1ø4l
+e4r5øn
+e5r6ønn
+erø8ra
+e6r5ør6s
+er3øya
+e4r5øy7e
+erøy4n
+e4r5øys.
+er7øysk
+2e1rå
+e9rå.
+erå4da
+erå8de.
+erå6e
+erå4k
+er5åke
+er3å4l
+e2r1ån
+er3å4p
+er3å4se
+erå6t
+er7åta9
+e6råv
+2es.
+e1sa
+es5aa
+e2sad
+esag6
+es4al
+esa6la.
+esa9met
+e4s3ant
+es5arab
+es5arv
+esbi9e
+2ese
+es5ege
+es3ei4d
+es5eie.
+es3eig
+esei8ge.
+e3sek
+e4seku
+esel5s4
+e3s2en
+e5ser.
+e5sere
+e5seri
+e4s3erk
+ese5s2
+e3sest
+e4sesv
+ese5tas
+ese4te.
+e5setj
+e9sets
+e4seu
+e4sha
+es6har
+esh9ar.
+es4h5er
+e4shi
+e1sho
+e7s8hop
+esi6ar
+esi5ert
+e4sil
+e5sili
+es3ill
+e4s3ins
+esi6v
+esi3st
+es3jor
+e5skab
+es6ked
+es4kee
+es4ker
+8eskil
+e4sking
+eskinns5
+e1skj
+e8s9kjer.
+es4kjæ
+e6skjøn
+es5k4n
+e5sko.
+es7koa
+e3skot
+e1skr
+e1sku
+esku5et
+es3kvi
+e5sky
+e6skyr
+e1skø
+e7skå
+eskå7r
+e1sla
+es4lek
+es4let
+es7let.
+es7lets
+es4lit
+e4s5lok
+es4løk
+es4løv
+es4make
+e7s4mett
+es9na.
+es4ner
+es2no
+es4nu
+es2ny
+esnæ5re
+4e1so
+eso4b
+e2s3od
+e2s1of
+es3oks
+e2som
+e3somm
+e4s3ori
+e1s2p
+espa9ra
+es3pas
+es5pe.
+e4s4ped
+es5perm
+es3pl
+es4p5le
+es3pol
+e3spor
+es3pun
+es4sed
+es4see
+es4seg
+esse7i
+es6sendi
+es4s5enk
+es4ses
+es4sete
+ess5e4va
+es4s3ja
+es4sje
+es4skr
+ess4let
+ess3om
+es4sos
+es4spa
+ess5tilt
+es4stol
+ess5tor
+ess9tua
+ess5tue
+esstu8en.
+4essu
+es2s1v
+es7så
+e7stad
+es5tae
+es7takt
+es9tala
+e8stane
+e5stans
+es5tant
+es3tap
+e5start
+e3stat
+es5tato
+e4s3tau
+e7stav.
+est5avs
+e6s5te.
+es4teg
+est5eie
+est5eig
+es4tek
+es4tel
+e5stell
+es5tels
+e4stema
+e6steme
+e4stemo
+es5temp
+6esten
+e7steng
+es5tenk
+e8s7ter.
+e5s6terk
+esterne8
+este3s4
+es4test
+es4tien
+e3stif
+es4tig
+e3stik
+es4tikk
+5e6s5tima
+es4tis
+e4stiv
+e1stj
+es3t6on
+e4stog
+e3stok
+e3s4tol
+es6tone
+est5ord
+est5ori
+es5trak
+est5rene
+est5rer
+est9ré
+es5trib
+e5stryk
+e3strå
+e1stu
+e5stud
+es5tus
+8estå
+estå5ren
+estå6s
+est7åse
+e1su
+es5ut
+esva5re
+e5s4vek
+es5vig
+e5svikt
+es3vis
+2e3sy
+esy4na
+e4s5yt
+es5øvi
+es7øye
+e1ta
+4eta.
+e4tae
+e2taf
+etafo7
+e3tak
+e6tako
+e3tal
+eta3la
+eta4la.
+et5ald
+eta5le
+4e5tall
+etal6list
+etall5s6
+etal4s7
+et3amb
+e6tand
+eta4nen
+et4ap
+e9tapa
+e5tape
+3etappe
+et8ar.
+et8are
+et5art
+5e6tasjes
+1e2tat
+4e5tati
+e5tato
+e3tatt
+et5aun
+e8tax
+et1c
+2ete
+e4teie
+e4teka
+ete4ma.
+e5teran
+ete5ru
+etes5i
+e4tesl
+et8et
+e5tet.
+e7tets
+4eté
+4eth
+2eti
+e3tit
+2e1tj
+e7tjer
+et3jø
+6etl
+et5m
+2etn
+et6nev
+etning4
+etnings7
+2e1to
+eto4er
+et5oppd
+et3ord
+e4tot
+2e1tr
+e5t4rad
+e7t6rak
+8etre
+e5tree
+e5tref
+e4t3ris
+e9tru.
+et5rum
+ets1
+et9sar.
+et4sku
+etsku8le.
+ets7l
+etsla8ga
+etsnæ4
+et2sø
+et4tak
+et4tal
+etta6le.
+ett5alt
+et4tank
+et8tap
+et5te.
+et6tei
+et6telt
+et4tenk
+et4tenn
+ettera4
+etter5at
+et5t6erf
+5etterk
+5etterr
+ett5esk
+2etti
+et6tia
+ettian8
+et4til
+et2tj
+etto5a
+et4tr
+ett3re
+ett4ski
+ett4sti
+et3tug
+et4tur
+ettvi5se
+et2ty
+2e1tu
+5e6tui
+etu6na
+et3uni
+2e3t2v
+e4t3va
+e5t6vang
+2e1ty
+4etz
+4etæ
+etæ3ra
+e1tø
+e1tå
+etå5re
+e1u
+eu4a
+e8uf
+eug8la
+eu4h
+eu4ka.
+eu2ke
+eu5kem
+eu7kr
+eu2l
+eum2
+e3u2n
+eun4ge.
+eu5nu
+e4up5a
+e6upk
+e2ur
+eu6rat
+eure4
+2euri
+e3urn
+eur8na
+eur6ne.
+euro1
+3europ
+e3urt
+e2us
+eu4si
+eu1ta
+e3uts
+eut7t
+e4u3z
+e1v
+evad6r
+ev5akti
+eva4la
+evann4s
+e4v5anta
+e4varar
+e4varb
+e4v5ark
+e6vatf
+6eved
+eve5d6a
+eve5del
+6eveg
+e5vegg
+evei6s5
+6evenn
+even5s
+5eventy
+e4veny
+e9ver.
+e5ves.
+e5veta
+e5vev.
+evi4e
+evi5ere
+evi5ert
+evin4s
+evi4se.
+evis3t
+e2vj
+ev2na
+evn5a4k
+ev7nu
+ev7oms
+e4vre
+e7vri.
+ev9rå
+ev1s
+evs8v
+evta8la
+evti4
+e2v3un
+e5vyrk
+e2vø
+ew3a
+ey1
+eybal4
+e1y2d
+ey5k
+e1yng
+e1yr
+eyr6ka
+eyr4ke.
+e1y2t
+e7yti
+ey3tr
+e3zi
+e1zu
+e1æ2
+eær3
+e1ø4
+eør6na.
+eøy4
+eøy9an
+eøy7en
+e1å6
+eåk4
+eån8da
+eåt8t
+é1a
+é1b
+é1d
+édø4r5
+é5e8
+é1f
+é1g
+é1h
+é1i
+é1k
+é1l
+é1m
+é4n5e
+é5n6et
+é5o
+é1p
+é1r
+é2rj
+é1s
+ése2
+é1t
+é1v
+éva8la
+évo8re.
+é5å
+è1r
+è2red
+è2ref
+è2rek4
+è4rener
+è2rep
+ère3s2
+è4rest
+è2rev
+è6ves
+ê8lan
+ê6ra
+ê1re
+êr7o
+êr9sl
+1fa
+4fabo
+fac8
+fa1ci
+fa3de
+fa6de.
+6fadm
+fa4f
+fa2g1a
+fa5ger
+fage4t
+fag5eti
+fa2gi
+fa2go
+fa2gr
+6f5agro
+fag3sk
+fa2g1u
+fai5
+2fakr
+fakse9t
+fakta3
+fa1ku
+5fal
+fa1la
+fal6kes
+fal4k3l
+fal6lers
+fal5m
+fa4lo
+fal4sk
+4fa5mo
+fa4na.
+7fan5d
+5fane
+fanfa5
+fang4s
+fangst7ev
+4fank
+2f3anl
+fan5s6
+fan7tesk
+fan5ti
+fan3to
+fan4try
+6fanu
+2fap
+3far
+9f8ar.
+fa3ra
+fa4ra.
+fa4re.
+fa4res
+far4gel
+far4ges
+fa4rit
+far5n
+far6skj
+fart2
+far4vel
+4fary
+fa7sa
+fa4sel
+fa4seru
+2fasl
+fast3r
+fa3tal
+fa4te.
+fa6t7ers
+fa1to
+fat2r
+fa3t6re
+fav5ne
+fa1vø
+2f1b
+fba4ne.
+2f1d
+1fe
+3fe.
+2fe1a4
+5fea.
+fe5a6l
+2fec
+fe4da
+3fede
+fe2dr
+fe3dra
+fe3d4ri
+fe7ene
+2fef
+2fe3g
+2fehj
+fei5en
+fei5er.
+feig4de
+fei5ge
+feil5es
+fei4li
+9fein.
+7feine
+fei7ter
+8fej
+2fek4a
+4fekl
+2feko
+4fekr
+fek6tes
+fekt5ev
+fe5lag
+fe5len
+fe5li
+feli7e6
+6felik
+felles5
+fel7læ
+2felo
+fel5ok
+fel9ta.
+fel4tek
+fel4ti
+fel4tra
+fem5ak
+fem9b
+fem9ne
+fe4mo
+fem5s
+fem4tid
+fe2m1ø
+5fen.
+4fena
+fend9r
+4feni
+5fens
+fentleg5
+2feo
+2fe3p2
+5fer.
+fe6ral
+4feram
+fe5ras
+fer6at
+fer4dam
+fer5de
+4ferea
+4fereg
+fe4rek
+fer6en
+fe7rer.
+fer5ers
+feri6e
+feri8e5ne
+7fern
+fer2r
+fers9kar
+fers7ke
+2fe1ru
+3fes.
+2fesi
+2fe1sk
+fe2st
+fes9t6i
+fes8t3r
+fes9tum
+fe6st9ø
+4fesy
+fe6ta.
+4fetap
+fe4te.
+4fetea
+fe5ti
+4fetil
+2fet6r
+fett5j
+fett7s6
+4fe4ty
+2feu
+2fev
+fe4ven
+2feø
+fe6øy.
+2feå
+1fér
+2ff
+f7fa.
+f4fab
+f2f3a2g
+f4f3ak
+ffa7l
+f6fann
+f4farb
+ffar6d
+ffa7re
+f9fas
+f6fat
+f8f9au
+f2f3av
+f2feb
+f2fe3d
+f2fee
+f6feh
+f2fem
+f6ferdi
+ffe4rer
+f2fes
+f4feti
+f4feto
+ff5eve
+f2fib
+f4fice
+f2fid
+f9fien
+f4finn
+ff5int
+f2fip
+ffi5s4
+f2fj
+ff3la
+ffla8ga
+ff9leg
+ff3li
+f2fo
+ff4ol
+f2f3re
+ff1ro
+ff5sl
+ff5t4
+ffu6r
+ff5ut
+f3fæ
+f4fø
+2f3g2
+2f1h
+1fi
+fia7l
+fia4n
+4fiap
+fi4as1
+fibi6en
+fi9cen
+fici7
+fi7di
+fie2
+fi1er
+fi7e6re
+fi4f
+fi5fi
+fi5fo
+fi7fl
+f6ig
+figh9t
+fi7g6r
+4fih
+fi9ka
+fikali7
+fikalie6
+fi7ken
+fik6ka
+fik6k5n
+fi5ko
+fik7sa
+4fiku
+fi4la.
+fi3li
+fil6lel
+fil6leri
+fil4les
+fil7leti
+fil8m7at
+fi1lo
+filt6re
+fil7tres
+fil4tri
+4filæ
+fin5art
+fin5d
+fi4ne.
+fi5ner
+fing3r
+6finj
+finn5ei
+6finnsa
+fi4n3o
+fi9nor
+2fins
+fin6sleg
+fin6te5s
+fi2nu
+7fio5
+fi2r
+fi3ra
+fi6ra.
+fi9rene
+fi5res.
+fi3ri
+fi5s4a
+4fisc
+fi6se.
+fiser6s
+fi8si.
+fi2sk
+fi6ska
+fisk5a6d
+fis7kal
+fisk5and
+fis6kart
+fis6k5end
+fis4k3l
+6fiskol
+6fisku
+fis5ti
+6fistu
+fiti6me.
+4fitr
+fitt5s
+fi7ty
+fi4ve.
+1fj
+f1jeg
+fjel6lend
+f5jen
+fjer5ne
+fje4sk
+fje2t3
+f5ju
+fjære5
+fjæ4res8
+2f5k6
+f2l2
+f5lag.
+f6lagg
+fla7ke
+f4las
+2fleg
+fle6i
+f4lek
+f6lel
+fle4sl
+f4lett
+f3lev
+fli7ne
+flis7t
+flit9t8
+1flo
+flo9ga
+flok9s
+flo2m3
+flo6r5o
+flos6kl
+f6lu
+flue3s
+flus8
+fl5ut
+3fly
+fly3s4
+f3løn
+flø5s
+1flå
+flå9sa
+flå7se
+2f1m
+fn6
+1fo
+2fo.
+fo9ar
+6fobs
+2foe
+4fof
+foi7la
+fo8ke.
+fo6la.
+fol4dr
+fo4le.
+fo5led
+fol6k5v
+fol9ler
+fol5lese
+folke5s6
+fol5li
+fo4lu
+3fon
+fo4na
+fond2
+fo5ne
+fo3n4id
+fo4nin
+fon1s2
+f1op
+for1a
+for9drev
+for7dro
+for5d6u
+fo6re.
+for9ei
+for7e6n
+for5ent
+for5ess
+for4et
+for9e8te.
+for9e8ten
+for9g6
+forh6
+fo4r9in
+fork8
+forlo7v
+forlø9pa
+forlø9se
+formo9r
+for3n
+foro6
+for5p
+for3se
+forsi9da
+forsi7de.
+for3s4m
+fors8t
+for9ste
+fors4v
+forta8le.
+for5t6e
+fortei9e
+for7t6i
+forti5da
+for3t4v
+for3u4l
+for7v6
+forva9re
+for5æ4
+for5ø4
+for9å
+fo9se
+fosfo5re
+4fosj
+fo4ta
+fo6te.
+foto5
+fo4tok
+fo4tom
+fo6top
+fo4tor
+fot3s
+fots6v
+fot3t
+4f1ov
+3fô
+2f3p2
+fpo6e
+fr2
+1fra
+fra5l
+fra4m5e
+fra6mi
+framma8ne.
+franko5
+fran7se
+fra7r8
+fra1s
+fra5se.
+fra7sep
+frasi8e
+fra7sk
+fras6p
+fra7v
+fra7v6r
+f2re.
+fred8sel
+freds5t
+fre4e3
+8freg
+f4rek
+fre4m5
+fremma8ne.
+frems4
+fre7ne
+fre6sk
+fres7ko.
+fres5koe
+fre8s9v
+fri5a6re
+6f5ridi
+fri4erf
+f1rin
+fris6ka
+fri5s4p
+fri5s6til
+frite8re.
+friti8me.
+6froc
+fro7f
+fronta9le
+fro8st
+frus1
+fruta6le.
+f1ryt
+frø5b
+frø7ko
+frå9r
+fråve4
+2f1s
+fs2h
+fsho6
+fsi2
+f5sjuk
+f2sl
+fsle6ge.
+f4sm
+f2sn
+fs7ne8
+fs5ov
+fs2t
+f2s3tab
+f6s5tan
+f4s9v
+2ft
+f1ta
+f3ta.
+fta7f
+ft1ak
+fta8la.
+ft3alg
+f2t1am
+f4tana
+f7tane
+ft3anl
+f5tar.
+ft8as4
+f6t1av
+f2tea
+f3ted
+f4tee
+f2teg
+f2tei
+f2tek
+f6tem
+fte4na
+ften3d
+f4t3enh
+ften5s6v
+f2teo
+fte4r5a4
+f4terin
+fter5s
+f4test
+f4teta
+f4t5ett
+ft3ind
+f2t5i4s
+ft5l
+ft7n
+f2t1o2
+f5tog
+3fton
+ft3r
+fts5alt
+fts3ei
+fts5ers
+fts5erv
+ft2s1i
+fts1k
+ft2skaf
+ftsla6ga
+ft5s4lan
+ftsle6ge.
+ft3sto
+ft6s5top
+ft5s6tri
+ft5stø
+fts1u
+ft2s1ø4
+ft5t4
+ftta8ka
+ft1u
+1fu
+fu8ga.
+fug9le.
+fug6l7eg
+fu6le
+full3
+ful9lar
+fulle6
+ful9le.
+ful4len
+fullen8de.
+ful4ler
+ful7les
+fullfø7re
+funn2
+funns3
+funnsla8ga
+fu6ra.
+fu6re.
+fu9ret
+fu7ro
+furu1
+fu7sel
+fu6sk
+fus6o7
+fu4s5t
+fut4h
+futu1
+4f1v
+fva8la
+1fy
+fy5la
+fyr2
+fy8ra.
+fy4r5a4b
+fy1re
+fy4re.
+fyr7k
+fyr8ke.
+fyr5t
+fy3s
+fysa7
+fy8sa.
+2fæ1
+1fø
+fø4da.
+fø4dek
+fø5den
+fø4des
+fø5des.
+fø1f
+2føk
+fø4le.
+f8ør
+før6a
+fø5rar
+fø4re.
+fø4res
+fø7resv
+fø8rete
+før6tin
+4få
+få7ren
+få7ret
+få5ri
+får7u
+få7va
+1ga
+4gaba
+ga1bo
+6gabø
+ga3da
+ga4ded
+4gadg
+2gadm
+4g5adr
+ga4e5k
+6gaflo
+g3aft
+6gah
+6gak
+g1aks
+gak8ta.
+gak8te
+ga3kv
+ga1la
+ga4la.
+galei5
+ga7len
+gal4les
+4galli
+5ga7lo
+ga4ma.
+4gamb
+ga5mer
+gamme6l5
+6gand.
+6ganden
+9gane
+gan5g6en
+gan4g5j
+4gan5k
+2g1anl
+4gann
+4gansa
+4gansv
+4g5antre
+ga6pa.
+ga4pe.
+ga4p5l
+gap3s2
+ga6p7u
+9gar.
+ga6raf
+ga6r5ak
+2garb
+5garbr
+5garby
+gar4dek
+7gare.
+4garea
+gar5es
+gares6ke.
+gar2i
+4garki
+gar3ne
+gar6ta.
+g5arte
+gar8te.
+g3arti
+gart5s6la
+gar4un
+ga4ryl
+ga4sc
+ga5s2i
+gas8ka.
+gas8ke.
+ga6ski
+4gasp
+gas6sel
+gas5sen
+gas7ser
+gass5ett
+gass3l
+5gast
+gas5te
+ga5sto
+gas7t6ra
+gas9tri
+g2at
+ga4te.
+ga5tens
+gate5s
+ga3ti
+ga1to
+ga3tr
+gat6tap
+gau5la.
+9gav.
+2gavd
+6ga4vei
+ga4veri
+4gavg
+g5avk
+2g1avs
+2gavt
+4gavv
+2gaw
+4gaø
+2g1b
+gba4ne.
+g6byk
+2g1c
+8g1d
+gd5alt
+g6d5au
+gde3a
+g2deb
+g3deba
+g4dedi
+gde5lo
+g2dem
+g4dend
+g2de5o
+g4dera
+g4de5re
+g6dero
+g2des
+g2det
+g3det.
+gdevi8sa
+gd5op
+gd1or
+gdy4d
+g6d1øy
+1ge
+2ge1a
+geak8ta
+geak6te.
+gea7ren
+ge4ark
+2geb
+6geba
+4ge5be
+3gebri
+4gebrå
+3gebyr
+ged4
+4gedan
+6gedel
+gedia5
+9gedom.
+7gedoma
+9gedome
+7gedomme
+6gedoms
+4gedos
+2gedr
+2gedy
+2gedø
+2gee
+geen8de.
+2gef
+g5eft
+3gefæ
+2ge1g2
+g5egg
+g3e2gn
+2geh
+gehø8ve.
+2gei
+g1eie
+g4e1in
+gei4r3
+gei9re
+gei8s7p
+gei6st5
+3geit
+geit3a
+geit3o
+gei4t3r
+2gej
+2gek2
+ge9kl
+ge3kn
+g1eks
+6gekt
+5gel.
+ge4lar
+4gelau
+ge6le.
+ge7lea
+4geled
+4gelei
+gelei5er
+4gelek
+4g3elem
+ge5len.
+ge5lens
+5gelet
+gel5ett
+3geli
+4gelid
+6geligg
+4gelit
+6geliv
+2gelo
+ge5lov
+7gels4
+gel3se
+gel5si
+gelsk7l
+gel5t4
+4gelu
+ge5lun
+gel7ve
+4gely
+2gelæ
+2gelø
+2gelå
+5gem.
+2gema
+9gema.
+2gemi
+3geml
+4g5emn
+gem6na
+2gemo
+9gemr
+3gems
+3gem4s5t
+ge3mu
+2gemy
+2gemø
+2gemå
+g2en
+3gen.
+ge2n1a
+ge7n6am
+gends6t
+ge3nea
+4genem
+gen5erf
+ge5nes
+gene4t
+gen5eti
+4genev
+gene5ve.
+gen8ga.
+gen5gr
+ge4ni6n
+6geniv
+gen5k
+genle6ge.
+gen3n
+gens5l
+gen6sun
+gen5tr
+4genum
+4geny
+4genæ
+4genø
+2geo
+5geog
+3geol
+geome5
+geomet4
+ge5on
+6geop
+ge9ope
+2gep
+g2er
+3ger.
+ge5ra.
+ge6ral
+ge4r5ant
+ge9ras
+ger5di
+4gered
+4geref
+4gereg
+4gerek
+ge6rene
+4gerep
+6gerese
+4gerett
+ger4i5d
+4gerik
+geri8ka
+6gerike
+ge4rim
+ge4ris
+ge4rit
+ge4riv
+gerle9g
+g9er8ma.
+ger3n
+gerne6
+4geroa
+4gerom.
+4geromm
+6gerop.
+4gerope
+ger5p
+ger4s5af
+5gerud
+ge5rup
+ger5v
+gerø6re.
+ge4r3ø4v
+4gerå
+g6es
+5ges.
+2gesa
+2gese
+5gesen.
+5gesens
+4gesi
+4ge5sja
+4gesje
+2ge1sk
+ge1sl
+geslu7
+ges4lø
+4geso
+4gespe
+ge4spr
+ge5spra
+2ge1st
+3gest.
+gesta7b6l
+5geste.
+ges6tekk
+ges8ti.
+gest5rid
+gestri8de.
+6gestå
+2gesu
+ges5vik.
+2gesy
+6gesæ
+2gesø
+2ge1så
+geså5re
+5get.
+ge5tak
+geta6le.
+6getat.
+6getate
+4ge3te
+5gete.
+2geti
+2getj
+2geto
+2getr
+5get5s
+2getu
+2gety
+gety8e
+2getø
+2geu
+g2ev
+2ge7v8a
+2geve
+4gevir
+gevi6sa
+4g5evn
+gev6ne.
+4ge5vo
+5gevå
+2gey
+4geæ
+2geø
+2geå
+1gé
+2g1f
+gfe2l
+4g1g
+g6g5al
+gg5ask
+g2g1av
+g4gedi
+gg1ei
+g4gela
+g4gele
+g2gem
+g4genu
+g6gerei
+gge4rin
+g4gerø
+gges6b
+gges5l
+g4gesm
+g6geso
+g4gesp
+g6ges6tio
+g6ge5sv
+g2gev
+ggie6
+g4gif
+g4g5i4m
+gg4je
+ggje5s
+g2gl
+g7glu
+g4gn
+g2g1o2
+g3go.
+g5gos
+gg3rad
+ggra6da
+gg5rat
+gg8re.
+gg3red
+gg7rek
+gg5s4par
+gg3sto
+gg4sy
+gg3sø
+g7g8ud
+g4g5u4r
+2g1h
+ghe8n
+ght5ene
+gh4to
+ghæ8
+1gi
+3gi.
+4giak
+gi1ar
+4giarb
+6giav
+2gib
+gi8c
+2gid
+gi3de
+gi1e
+4giek
+3gien
+gi9end
+5gier
+4gifa
+2gifo
+4gifr
+4gifu
+gi6ga.
+2gigr
+2gih
+2gii
+5gika
+3gike
+4giki
+3gikk
+gi5k4r
+4giku
+gi5le
+4gimess
+gi4metr
+4gimi
+4gimø
+2g1ind
+6gingeni
+gi4nin
+2g1inn
+gin5nu
+4gino
+4g1ins
+4g1int
+2ginv
+4gi5om
+2gi1op
+gio4r
+2gip
+gip5si
+6gira
+gi3re
+gi4re.
+giro3
+gi6rob
+5gis.
+2gisa
+gi3se
+4gisel
+4gisen
+5gisk
+6giska
+gis8lu
+gis4lø
+4giso
+4gisp
+gi3s4pa
+gi5s4pr
+giste6ru
+gis5ti
+gist5ra
+gi5stré
+gi6st5rer
+4gistu
+6gisty
+gi5ta
+4gi5te
+gite4s
+gi2t9r
+git5te
+2giu
+gi7va
+4gival
+4givo
+4givu
+1gj
+2g1jak
+g5jarn
+2gjaz
+gje5f
+4g3jeg
+gjels4
+gje2n
+gjen1opp3s4
+gjen5s8
+6gjent
+3gjer
+gje7sk
+gje4s3p
+gje8v9ak
+2gjob
+2g1ju
+7g6jut
+gjø9de
+2g3k2
+gkly9
+gl2a
+6gla.
+gla3de
+4glag
+gla4ga
+gla8ge.
+g3land
+g1lar
+gl5art
+glar7v
+1g2las
+7glase
+g6lass
+6glast
+g5last.
+3glat
+g5lau
+gl6e
+gle6dero
+g2lef
+gle3ge
+gleg8ga
+6glei
+glei7er.
+g2lek
+g7lek.
+g5leke
+g2lel
+3glemt
+4glen
+g9len.
+g9lene.
+g9lenes
+g9lens
+gle9pl
+4gler
+gle4ra
+glere8de.
+g9les.
+gle6se.
+g4le5sk
+g6le7sm
+4glet
+g2lev
+1g2lid
+gli4del
+gli7e6n
+gli8er
+glig1
+3g2lim
+gli9me
+4glio
+glitt4
+6g7liv
+4glj
+gl7ja
+gl5l
+g4lo.
+g2loa
+5glob
+5g6lome
+1g4lor
+gloria7
+glori6an
+glorie7ne
+g4los
+glo5ste
+6glov
+gls4
+5glug
+g5luk
+6glun
+gl5ung
+glun8ge.
+gl5ut
+g5lyd
+3glyf
+gly4se.
+g2løg
+glø8pa
+2gløs
+gl7øy.
+5gløym
+2g1m
+g4mete
+g4metr
+g5mé
+gmini6
+gmo4e
+g3mu
+gmu8le.
+gmå6la
+g1n
+gn1ak
+gna5lem
+gna4lo
+g2nav
+gn1d
+gndø6
+gndør5
+gn4e
+g2nee
+g4nelo
+g6nero
+g6nerø
+gne1s4
+gne8se.
+g4nesk
+g4nest
+g5net
+g6netr
+g2nev
+g4nib
+g4nid
+g6nik
+gning4
+gnings5
+gni4s
+g6ni5sk
+gni6st
+gnist9r
+gn5k4
+g2nom
+gn5o6p
+gn7o6v
+gn5r
+gn1s
+gn4skr
+gn6sm
+gn4som
+gns4pr
+gn4sti
+gn2s1v
+gn5t4
+gnu5re
+gnæ6re
+g2nå
+1go
+7goan
+go1ar
+7goar.
+2gob
+gobe5
+go4da
+go5dal
+god5ar
+2godd
+go4de.
+gods9t
+2gof
+go9ga
+go5ge.
+go9g8r
+6goi
+2gok
+gok4se.
+go3le
+gol6fa
+go5lo
+gol4va
+gol6var
+go4lå
+2gom
+g7o6ma
+6gometris
+7gomm
+go4n5and
+go9ne.
+go7ni
+go5nok
+gon9s
+2g1op
+3g6or4a5
+go5ra.
+go7rae
+go7ras
+2gord
+gor6da
+go1re
+gore8a7
+2gorg
+g4ori
+gori5e6
+g5orv
+gor8va
+go5rø
+gos3p
+4gost
+6goto
+got6r
+4gov
+go8ve.
+go8vi.
+2g3p6
+1gr4
+8gr.
+4grab
+6grac
+gra5ce
+9grads
+graf5f
+graf5t6
+gra4m5
+grand3s4
+gran5to
+grant4r
+gra9se.
+gra9set
+gra6sk
+gras3t
+gra5t
+gra8te.
+grati4s
+gra4u
+gra4v3ak
+gra7vis
+gravta8
+2grea
+4g5reds
+gre4en
+2gref
+g7refe
+g4rega
+greie5n
+grei6ene
+6g3reis
+4grek
+2g5rel
+g5rent
+4grepi
+grep4s3
+g7rese
+gres6sak
+gres6sent
+6g5rest
+4grett
+4g5ri.
+grib3
+4grid
+4grif
+4g1rig
+gri5sete
+4grit
+gro9ar
+g4ro7i
+grom5m
+g4ron
+gro5sk
+gro3ve
+4g5rui
+4g3rul
+grun7g
+5g4rup
+gru7sa
+grus5t
+2g1rut
+2gryd
+4g5ryg
+6g5rytm
+grø5de.
+6g5rør
+4g5røv
+grø5ve
+4grøy
+gr7øy.
+6gråd
+grå6da
+gråk4
+grå7n
+grå5te.
+8gs1
+gsa2
+gs5akers
+g7sal.
+g7sale
+g5salg.
+g5salge
+gsam3
+gs3amb
+gs7amn
+g3s6ank
+g5sard
+g2sas
+g7sast
+gsbø6n
+gs2ce
+gs5ef
+g2seg
+g2sei
+g2sek
+g5sekr
+g7sekv
+gse9la.
+gsel4s5a
+gsel4st
+g2sem
+gs6ende.
+gsen6ke.
+g5sens
+g3sent
+g2ser
+g5ser.
+g3seri
+gse4st
+gse4t
+g3sete
+gs3eti
+g9sets
+gs4ett
+gse2v
+gsfø2
+g2si
+g5sider
+gs5is
+gsi2v
+gs4jar
+g3sjef
+g5sji
+g2sjo
+g5sjå
+gs4ka.
+g5skad
+gs4kal
+g5skall
+g6skam
+g4skan
+g4skapa
+g5skape
+g4skapi
+gs7kav
+g5skilt
+g7s4kj
+g7s6kjæ
+g3skot
+g5skren
+g7skug
+g6skv
+gsla6ga
+gsle6ge.
+gs6leri
+g4sluk
+gs4lun
+gsl9ut.
+g5slyn
+gs5med
+g9s6mert
+g7snel
+g5sog
+gs9ope
+g5spal
+g3spel
+gs2pi
+gs5pik
+g3spil
+gs5pile
+g6s5pors
+g3spur
+gs3s4
+gsse4e
+gs5tak
+g9s8tand
+g5stang
+gs4tasj
+g7s4tat
+gstatsrå7
+gst6e
+gs5te.
+g5ste4e
+gs4tell
+gs5tema
+gste6ma.
+g7stemt
+gs4tere
+g5s4terf
+g5s4terk
+g5s4tern
+g5s4ters
+g5s4terv
+gst7evnen
+g5s4ti.
+g3s4tie
+g3stif
+g3s4tig
+gs5tiå
+g5sto.
+gs4tol
+g5stol.
+g7stola
+g5stole
+gs5toll
+gs4trap
+g5strau
+gst5rea
+g5strede
+gst5rei
+g5streke
+gs6tret
+gstri8de.
+g5s4trof
+g3strø
+g5s6trå
+g5stue
+gst5ut
+gstyr8ka
+gs4tør
+g5s4tå
+gsu2
+gsu5g
+gs4vane
+gs5vik
+gs7væ
+gsy2d
+g7sym
+gsy6na
+gsy6t
+g2sø
+gsø6ki
+gs6øt
+gså4
+2g1t
+g3ta
+gta8ka.
+gta8ke.
+gta6la.
+gta4le.
+g9t6e
+gte6ke.
+gte6ma.
+g3ti
+gti8de.
+g4t5if
+gt6re.
+gtråd5s6
+gt7sv
+gt5t
+gtu8en.
+gtvek8
+gty8e
+gt9yt
+1gu
+4g5u4bå
+gu2di
+guds3t
+gu4el
+6gug
+g5ug6l
+gui4d
+guid5ar
+gu4le.
+4g5ulk
+gul8ke.
+gul4la
+gul5o
+gul7ø
+7gum
+gun4g
+gur2g
+gu4ri
+gur8na
+gur6ne.
+gu5rua
+gu3rue
+gu4st
+gu1ta
+2gutb
+4gutd
+g5ute.
+6gutg
+g7utl
+4gutn
+2guts
+gut4tak
+gut4tes
+4guttr
+2g1v
+gva4ke.
+gva8la
+gvedli6
+gvi8ta
+6g1w
+1gy
+g9y8a
+gy4da.
+7gym
+gy3ne
+gyr6
+gy8sa.
+gy6se.
+gy4te.
+gy4ve.
+g5æt
+4g5øk
+gør3s
+2g3øv
+gøy9a
+gøye6r
+gøy5n
+1gå
+gå6as
+gå6en.
+gå4er.
+4g5å4k
+4gåm
+4g3ån
+gån8da
+2g1å4p
+2g3åre
+gå2s
+gå3st
+gå9ven
+gå4vet
+h2a
+ha4a
+haba9
+4hae
+ha2el
+4hafi
+ha2g
+ha3ga
+ha4ga.
+ha3gen
+hai1
+ha7ism
+ha5ka
+ha4ke.
+ha5ken
+ha7kera
+ha4ke5s
+ha1la
+ha6la.
+hald4s7
+ha4le.
+ha4lev
+hal6lei
+hal6lø
+hal4s3k
+hal4so
+hal4s3t
+ha5lu
+hal4v5
+ha5ma
+ha8me.
+ham6nest
+ha5mo
+ham4st
+hams4t7r
+ha5na
+han6d5r
+hand7skr
+hand5ø
+ha4ne.
+hani1
+hanis4
+han2n3
+han4ne
+han6nel
+han5nen
+han5n4o5
+han3se
+han4sk
+ha4pe
+ha4re.
+ha5rei
+ha4rel
+ha3rem
+ha4res
+har5k
+ha5rov
+har7se
+har5tre
+har4tri
+ha4sj
+hasj5e
+ha2sl
+has6p7l
+has5v
+ha3tar
+ha4te.
+hat6le
+h4au
+hau5ke.
+hau6st
+hau4t5r
+hav4a
+ha4va.
+ha5van5
+ha4ve.
+ha4veg
+ha4vei
+have3s
+ha1vi
+ha4vo
+hav4sl
+ha6vu6
+hav1ø
+4havå
+2h1b
+hba4ne.
+4hc
+2he.
+he2a
+he7ans
+heat4r
+heb5n
+he4de.
+heder6s5
+he2d9r
+hef9ta
+hef7tes
+he3ge
+he4ge.
+he2g3r
+he2i
+heia3
+hei5en
+3heim
+he3ins
+hei4sk
+heit4s
+he2k
+hek4sek
+hek6serin
+hel1a
+he4la.
+he4le.
+he4l5ei4
+hel6lesu
+hel3o
+hel2s2
+hel3sa
+hel4se7
+helses4
+hel3sk
+hel5sp
+hel5ste
+hel3sv
+hel4tes
+hel9ve
+he4mak
+hem5ne
+hem3s8k
+henfø5re
+hen5o6
+hen1s2
+hen5se
+hera9da
+he5ret
+he4ri.
+her5j
+herle9ge
+herli9ga
+4her5n
+he1ro
+he4ro.
+hero9a
+her7p
+her6rei
+her6resi
+her6ret
+her6ska.
+her8s7kare
+her6sv
+her5un4
+he2r3ø
+he4se.
+he2sp
+hes7pa
+hes5pel
+hes5pen
+hes9per
+heste5ri
+hes4tes
+he6stø
+het2
+he4te.
+he5t6i
+het4s3a4
+het4s5p
+het3t
+he6va.
+he6v7arm
+he4ve.
+hev9na.
+2hf
+2hh
+h5hu
+hi5ao
+hi4bak
+hie4n
+hi2et
+hi4f1
+hiff2
+hif9r
+hi6ge.
+hik7e
+himme6l5o
+hi6n7an
+hin4nes
+hins4
+hins9ke
+hi4pl
+hip3p
+hi1ro
+hi2s1
+hi9se.
+hi3sen
+hi5s4i
+4hisk
+hit7o
+hi4t5r
+hit5ti
+hi8va.
+hi4ve.
+hiv1s
+hjar4
+hje4
+hjem7e
+hjorte5
+hju6l7
+hju7l8e
+2hl
+h5lan
+2h1m
+hma8n
+2hn
+h2na
+hne6n
+hn1s
+h4o
+ho5ar.
+hob6
+ho6da
+ho4de.
+ho5den
+hode3r
+ho5der.
+ho5dy
+hof4f3
+hof4f3a4
+hof4f3e4
+hof5f6er
+hof4fi
+hogs6
+hog6str
+hog7stra
+hoi5
+ho2la
+ho5lag
+ho5lan
+ho4le.
+ho4lin
+hol5l
+ho4lom
+hols4
+ho4lu
+hol7ut
+ho4me.
+ho4mo.
+ho4mod
+ho4mos
+ho5n6o
+ho4o
+ho8pa.
+ho4pe.
+ho8pi.
+ho5ra
+ho6ra.
+hor2e1
+ho1ro
+2hort
+ho4s
+hos5a
+ho5sen
+ho5ser
+ho5si5
+hou2
+ho1v
+hove5re
+ho4vé
+2how
+h1p
+2hr
+h1ra
+h1re
+hri5ne
+hri2s3
+6h1s
+h5s4e
+4ht
+h5ter
+htere4
+h1tr
+ht5t
+hu4da
+hu4d3
+hud5s6
+hudså9re
+hu4er
+hu6et.
+hu4ga
+hu4ge.
+hu8ja.
+hu6ka.
+huk8ra
+hu4la
+hu4le.
+hu4leg
+hu5les
+hu4lev
+hu5ma
+hun6des
+hun2n3
+hu1ru4
+hus1a
+hu8sa.
+hu5s6a6r
+hu6s7arr
+husa7r8e
+hu4se.
+hu4s3ed
+hu2s1i
+hu2s5j
+hu2s1k
+hus7m
+hus5s4
+hus1t
+hu8str
+hust9ran
+hus4tre
+hu6sty
+hu6s5u6
+hu2sø
+hu4va
+hu4ve.
+hu4ves
+hv4
+hva5le
+hvas5
+hve2r
+hver3a
+hvi5l6i
+h4v4ir
+hvits4
+hvo2
+hvor5
+hvor5i6
+h6y
+hya3
+hy2bl
+hyd4
+hy2e
+hye5ne.
+hye9nes
+hyg5gel
+hy6la.
+hyldes7
+hy4le.
+hyr4des
+hys3
+hy8sa
+hy4se.
+hy2s1j
+hys5t
+hæ5g
+hærfø9
+hær3s6
+hø4e
+høf5
+hø2g
+høg3ri
+høg7rø
+høk6
+hø6le.
+hø4na
+hø4ne.
+hø5rar
+hø5ren
+hø5rer
+hø4res
+hør6sp
+hø2s
+høst7a
+høst5ø
+hø1va
+hø1ve
+hø1vi
+høy5a6
+høy5k
+høy7n
+høy7rar
+høys4
+høyse6te.
+h6å
+hå7a
+hå8le
+hå6na.
+hånd5skr
+hå5nel
+hå6pa.
+hå4pe.
+hå4p5l
+hå1re
+hå1ri
+hår3s
+hår7u
+hå8va.
+hå4ve.
+ia9al
+i1abl
+ia1bo
+i2a3de
+i1adj
+ia5d8r
+ia1g2
+ia2ge
+ia1in
+ia1kr
+i1aks
+iak8se.
+ia5ku
+i1al.
+ial1a
+ial5ein
+iale4t
+ial5eti
+ia4l5ett
+i2alf
+ial3g
+ia4lin
+i4alk
+ial3op
+ia6lov
+i5als.
+ials4t
+i3alt.
+ial1u
+ia2lø
+i1an.
+i2ana
+ia4nal
+ian5ald
+ia5nar
+i7andr
+i5a4ne.
+ia8nes
+ia7net
+i5ank
+i1anm
+ia2no1
+i1ans
+ian3sa
+ian3sl
+i1ant
+ia7nø
+ia2pa
+i3app
+i1ar.
+iar4do
+iard5s4
+iar4du
+i2are
+i5area
+ia5r6e8l
+i5arn.
+i9arns
+i7arska
+i6asi
+i1asm
+ia4sp
+ias3s6
+i3assi
+i1ast
+i7ast.
+ia1t
+ia5te
+iat6r
+iaty6ra
+i1att
+i7auk
+i1av
+i1b2
+iba4ne.
+ib5bo
+ib3bu
+i3bere
+ibe4ro
+ibi5er.
+ib7lar
+i2b3le
+ib4leg
+ib4le5s
+i5bo
+ibo4e
+ibo7n
+ib4r
+ib3st
+ib8t
+ibya7
+iby9ar.
+8icanarar
+ice5ne
+i1ci
+ick1
+ick7ete
+i1co
+i5cy
+2ida
+i5dal
+i3das
+id1av
+id3del
+iddel5u
+id6dep
+2ide.
+3ideal
+i2deb
+i6def
+id5e4ge
+i7deki
+i9del.
+id3elv
+2iden
+i5dend
+iden5sv
+5identif
+5identit
+ideo3v
+i6derap
+i9de5re.
+i7deren
+i9deres
+iderla8ga
+iderle7g
+i7dern
+i5ders
+i6desm
+id6gem
+id4ges
+idi4en
+1i2dio
+i8dj
+id7jer
+id9na
+1i4dol
+id9ran
+id5reg
+4i3drev
+2idri
+id2s1
+id5sam
+idse4
+id6sel
+id5sim
+ids5l
+idsla6ga
+ids3t
+id4s5tu
+id2t1
+i2d1un
+i2dy
+3idyl
+i3dyr
+i3dø
+i6d7øy
+id7å
+2ie
+ie1a2
+i2ed
+i1eff
+ie4ge
+iego4
+ie1i
+iei6d
+i1eie
+i3eig
+i5eini
+iek8l
+i1eks
+ie5l6a
+i2ele
+i5elem
+ie4lev
+i7e6lim
+i1els
+i9elt
+ielø8pa
+i8e9ma
+iem7b8
+ie3me
+i1en
+ie7na
+i2end
+ien6dela
+ie8né
+i2e5ni
+ien7n
+ie5no
+i5ens
+ien4sk
+ien4s5v
+ien4t3r
+ie5nu
+i6eny
+ie4ran
+i4erd
+ie6re.
+ie5reg
+ie4r5eng
+i6eret
+i2eri
+ie4ril
+ie4ris
+ie4riv
+i2erl
+i6ero
+ie7ro.
+ier4ra
+ier4sp
+iers3v
+ier5t
+ie3run
+ier5v
+i2e1s
+i6es.
+ies4c
+ie3se
+ies5s
+ies4ti
+i8es6v
+i1et
+i2eta
+i5e4tabl
+i3etat
+ie9te
+ie5té
+iet4re
+ieu2
+ie7ved
+2if
+ife4s1
+if2fa
+ifi6e
+ifjø8
+if3le
+if4les
+iform4
+if1re
+i8ft
+if4tal
+if4tere
+ifte5s
+ift2s
+i3fø
+2ig
+i2gae
+ig3ann
+i7gark
+ig4art
+iga3ru
+iga7te
+ig3att
+i2gav
+ig3d
+i6geb
+i6gedi
+i6gedomm
+igedoms5
+i2gem
+i3gen
+ige6no
+i5gers
+i4gerø
+i4gesp
+ig3e4ta
+ig5ett
+ig4ged
+igges4
+ig4gra
+igg9s2
+i6gh
+i2g1ia
+i5gib
+i4gim
+igion4
+igje9va
+ig1l
+igl6d
+igli6se.
+ig5loa
+ig5neu
+ig5no
+igof6
+igo5fr
+ig1om
+igo4no
+ig2ra
+ig2re
+i2g1rø
+ig3råd
+igrå5t
+igs4al
+ig5sel
+igs2j
+ig5s4ka
+ig3s4kr
+igs4mu
+ig3s4pa
+igst4
+igs4ta
+ig4ste
+ig5stek
+ig7stel
+ig5stem
+igs4tra
+ig5s4va
+ig1un
+ig9ut
+i3h
+ihen3
+iho7le.
+i4huk
+ihu9la
+ihu5le.
+i1i
+i5in
+i7is.
+i6ita
+i1j
+2ik
+i1k2a
+i2kab
+i5kabel
+i2kaf
+i2kak
+ikan9d
+i2kao
+i4kapo
+i5kar.
+i5kara
+ika5re
+i4karei
+i6kasa
+ika3sp
+i2ke.
+i2ked
+ik9ei
+i9keleg
+i5keli
+ike5lu
+i5ken.
+i4kena
+i5kene
+i9kens
+i3ker.
+i4kera
+i5kere.
+ike5ri
+ike4r5o
+i2ke1s2
+ike3si
+i6kesk
+i5keso
+ike5su
+i5ket.
+i5kets
+i1ki
+iki9ne
+ik5inn
+iki5st
+i1kj
+ik4kaf
+ik6kana
+ik4kap
+ikk5arv
+ik4kas
+ik4kat
+ikk5att
+ik6k7ent
+ik4keru
+ik8kesk
+ik4kest
+ik3kjø
+ik4kjøp
+ik4kl
+ikk5lag
+ik2ko
+ikk5ord
+ik4kr
+ikk3re
+ikk5sv
+4ik2ku2
+ikk5und
+ik2kv
+ik6ky
+ik1l
+i5klæ
+i1ko
+i2koa
+i9koar
+i2kob
+i4kod
+iko5de
+i2ko3f
+i4kog
+i4koh
+i2kok
+iko5na.
+i2koo
+i5k6ord
+i4kore
+i2kov
+ik1r
+ik4rak
+ik5rem
+ik5robe
+ik3ros
+ik2ry
+ik2sa
+ik4sek
+iksmå8la
+ik7sot
+ik5spel
+iks5ti
+iks5to
+ik8stu
+ik4tav
+ik4teg
+ik2t1r
+iktsla8ga
+i1ku
+iku6le.
+i6k7u6t
+ik1v
+ik4vin
+i1ky
+i3kø
+i3kå
+ikå8pa
+i1la
+il5adr
+il7af
+i2l3ak
+il3al
+i4lana
+il6and
+i4lark
+il3art
+il5ass
+ilas5t6
+ila5t
+il5av
+il4dak
+il4deko
+il4dete
+il7dj
+ild3re
+ildsfa9re
+ild3s4t
+ilea9r
+ile8are
+i3le7e
+i2lef
+ile4ge.
+i4l3egn
+i2l1ei
+i6leig
+i2lek
+i2lel
+i4leno
+i4lero
+ile1s
+i4lese
+i4le5sk
+i4lest
+ile6tri
+ilet5te
+ile4tu
+i1lé
+ilfø5re
+il5ge
+il1gl
+i4lid
+ili5ers
+ili9ga
+i5lik
+i2l1im
+i4l3ind
+i7line
+i4lins
+i4l3i4r
+ili5s6tik
+il3ja.
+il1je
+il5jese
+il1jo
+il1ju
+ilke3
+il5ker
+il4kes
+ilk4o6s
+il5ku
+il4lab
+il6lam
+illan8da
+il6lap
+il9lau
+il4lee
+illei9e
+il6l7ender
+il6lesk
+il4lev
+illi9ga
+il4lo5m
+ill3s2
+ills5kå
+illæ4
+illæ9re.
+il4m5est
+ilm5e4v
+il4mi
+ilm5s
+i1loe
+i9lolo
+i4lom
+il5omv
+i5lon
+il3opp
+i4l1o4r
+i5loso
+ilot3u
+i4love
+ilo1w
+ilret4
+ilset8je
+il3sl
+ilsla7
+ilsle7ge
+ils4mu
+ils2p
+ils2t
+il5str
+il7su
+il3s2v
+ilsva9ra
+ilsva5re
+ilta9la
+ilt5rett
+il6t7å
+ilu4h
+i5luk
+il7ul8
+il3un
+i5lur
+i9lus
+il1ut
+il5v6
+ilve8d
+ilve4r
+i1ly
+il1å8
+ilår6
+8im.
+4ima
+i2mad
+i4maen
+i2mag
+i6m5akk
+i4mako
+imal8n
+i2mam
+i9man
+i2map
+i5mar.
+ima5s
+i4matr
+i8mb2
+i4mee
+i2me1g
+i2mek
+i6melu
+im5enh
+im8et
+i9met.
+i4meta
+i4meti
+i6mey
+i8mé
+imi9la
+imini6
+i7mj
+im4lev
+im8l9u
+im5m
+i6mog
+imo9l
+im5ord
+imor8da
+im7o6v
+imp2
+5imperi
+imp4l
+1impo
+imp9s
+impse8
+1impu
+im4ref
+im4rek
+im4res
+im9se
+ims4k5l
+ims3kr
+im5s4me
+im1s4t
+im6sti
+imta8la
+4imu
+i3mø2
+2in.
+6ina
+i4nag
+in5agg
+i5nakk
+ina4let
+i4na2m
+in3ame
+in2an
+i9nane
+in5ann
+i2nap
+in5app
+i5nar.
+i5nars
+i4nask
+i4nasp
+i4n5ass
+ina4t5ak
+i6nau
+in7auk
+in5avl
+in5avr
+ince2
+in7der
+6indig
+in4dog
+ind9ra
+in3dru
+indr5ø
+ind5sk
+ind3sp
+ind5s4t
+5industr
+ind7å
+4ine
+ine8are
+i2ned
+inedy6
+in5egg
+in5eid
+in3eie
+i6nele
+ine4li
+in7eng
+ine8pa
+ine8pe.
+i7nere.
+i5neren
+i9neres
+ine4rik
+i7nern
+i5nert
+i5nes.
+i4nesk
+ines8ka
+ines8ke.
+ines4st
+ine5s4ti
+i4nesø
+i2nev
+8iné
+3infek
+in4fos
+in4fot
+infu9
+4infy
+in4g5ald
+in4gav
+in5gebj
+in6gem
+5ingeni
+in5geri
+in4geru
+in3gev
+ing5jen
+in4goa
+in4gos
+in2gr
+ing5rep
+ing7ris
+ing2s
+ings5om
+ingst8
+ings5v
+6ingu
+in2g5ø
+i7nia
+ini9ar.
+i2nib
+i5nie
+i4nif
+i2nig
+i4nil
+ini7m
+i4ninn
+i2nip
+i4nisa
+ini3se
+i4nises
+5initia
+i4nito
+5injek
+2ink
+in5kel
+in4kero
+in4k3la
+in4kok
+in5l
+inla8ga
+2inn.
+in4nal
+in4nem
+in4nerø
+in4nesi
+innes6t
+4innet
+in6n7ette
+innfa9s
+1inng
+5innhal
+3innho
+2inni4
+in4ni.
+in4n5om
+in5n6ova
+inn1s4
+6inns.
+3innsa
+inn5se
+inn9sen
+inn9ste
+inn7sve
+1innt
+in4n5u4
+4innæ
+in2nø4
+2ino
+ino5a
+i5noar
+i4nod
+inok6
+in7oks
+in1s
+4ins.
+8insa
+in9sa.
+in7sal
+in5sar
+in5se.
+in4sek
+in3sen
+inseri8e9ne
+in3si
+insis5
+6insj
+in4sja
+in3sje
+4insk
+in9s8kas
+in5skat
+inske4t
+ins4ki
+in3skj
+ins5kjøt
+ins6kor
+ins4k3v
+ins6kø
+insle7g
+ins8lega
+in3slo
+in3s2lø
+in5s4ma
+in3sop
+1insp
+in4spa
+in5s4pl
+ins4po
+5instal
+in8s5te.
+ins5ten.
+ins9tens
+3in3s4ti
+in4stin
+4in3s6to
+in5stra
+inst5rel
+5instru
+in6stå
+in7sul
+in2sv
+6in3sy
+8int.
+2in3ta
+inta8la
+4inte.
+5in7teg
+in8t7ege
+in5ter
+int5ess
+in5te4t5
+4in5ti
+inti5me
+int2r
+intran4
+int4rer
+in5tres
+6inu
+inu6i
+i8n9ul8
+in7ut.
+in9u8te
+1inv
+6invev
+iny4i
+iny4t
+6inø
+in7øk
+i7nøt
+in3øv
+4io
+io1a4
+i2ob
+io4dere
+i1off
+io5gn
+io1i
+i1oks
+iol4
+io3le
+iol7jen
+io3mu
+io4nans
+io4narr
+io6n5erst
+ion3g4
+io4nin
+io4nu
+io1pl
+i1opp
+io5ra.
+ior8da
+io1re
+io4rie
+io4r5in
+iorla8ga
+iosk3v
+io1st
+iota6le.
+io3t4e
+io4tra
+i5pap
+ipa4ti.
+i4pee
+ipela9
+i7pe6p
+i1pi
+ipi1e
+ipi9ne
+i4p5ings
+i1pl
+i2ple
+ip4peli
+ippel7s6
+ipp6lan
+ipplæ8re.
+ip2pr
+ipp4s3t
+ippsy8na
+ipp4sø
+ip7pun
+i1pr
+i6pra
+ip5ru
+ipru8te.
+ips1a
+ipse4l
+ipsfø5
+ip2si
+ip2s1k
+ipsle6ge.
+ips1t
+ip6tar
+i5py7
+i3pø
+2ir
+i1ra
+i9r6and
+ir5ark
+i9rast
+ira6tr
+ir5de
+ird5s
+i1re
+ir3eie
+ir6ek
+i3repo
+i3rer
+ire6r5a
+ire7st
+i3ret
+i8reto
+ir7g
+i1ri
+iri4a
+iri8ka.
+ir3ind
+ir3inn
+ir5inst
+iri9t
+ir5ka.
+ir4kat
+ir5ker.
+irke3s6
+ir4kest
+ir4kle
+ir5kv
+irk5ø
+ir4mag
+ir4mal
+ir4mast
+ir9mé
+i5roa
+i1roe
+i4roi
+i1rol
+ir5opp
+iro1s
+ir3re
+ir7sko
+irs2p
+ir3s4t
+irt6
+ir3ta
+irti6g5r
+i1ru
+ir5u4k
+iru8m
+iru7sa.
+i1rø
+i1rå
+ir7å6l
+i1sa
+i4saks
+i4sanb
+i4s3ang
+is3ann
+i4s3ans
+is3ant
+i7sas
+is5aud
+3isbry
+is6cen
+isch5
+is3co
+i5scr
+i2sed
+i4seel
+i4seen
+ise5ern
+i2s2e3g4
+i2sei
+is3eie
+is5eig
+ise5is
+i2sek
+i3sekt
+i4sekte
+i6s7eld
+is4e5li
+i2sem
+ise5ne
+i4seno
+isensi6
+i5ser.
+i5sers
+i2ses
+is5ess
+i4sete
+iset8je
+i2seu
+8isé
+isha7ne
+3ishav
+is4h5in
+ishø9ve
+isi6ene
+is5ild
+i4s3ind
+isis5t
+is7jun
+is9ka.
+is3kal
+is3kar
+isk9art.
+isk5arte
+i8ske
+is5ke.
+is8kee
+is4kel
+isk5els
+iske5s4
+is3kje
+i3skjo
+iskla8ga
+is6k5le
+isk3lo
+isko5g
+is7kogr
+is3kop
+is3kot
+is1kr
+is6k5rin
+is1ku
+is4kul
+i5skula
+is1kv
+is4kvi
+is1l
+i6slu
+isl7ut
+isl9øy.
+i5smak
+is4med
+ismo5e
+i6smus
+is5ne
+is5nu
+1isol
+6isold
+5isomo
+is5omr
+iso3pa
+iso5pe
+iso7pr
+3isot
+is1ov
+is1p
+is4pan
+is5pane.
+is6pis
+is7pru
+is4ses
+is5si
+issis5
+is6s7kj
+is4sko
+is7skr
+is5sky
+is4skå
+is5sok
+is7sto
+is6sve
+is5svo
+is9s4ær
+is4søk
+i5stab
+ista9le
+is5tane
+is5tap
+i4s5tar
+ist5avb
+ist7avi
+i2ste
+is5te.
+is4tek
+ist5ekt
+istel5l
+iste6ma.
+ist6en
+is5ten.
+is5tene
+is5ter.
+is5tern
+is6terø
+is6té
+is4tik
+is5tilb
+is5tis
+is3tok
+is3tol
+i2str
+i8s8tre.
+i4st5ren
+i5strer
+i6strer.
+i4stres
+i6stret
+is3try
+is3tus
+6isu
+is5uf
+is5ul
+is1un
+is1v
+is4vak
+is7w
+isy8na
+isy5r
+is5yt
+i2s1øk
+i4søy
+is7åk
+is3år
+i1ta
+ita4l3a
+ita6l5ers
+ita4lo
+ita4ly
+i6tang
+itan7s6v
+itau4
+i4tav
+i4tec
+i2teg
+ite8ke.
+i7teky
+i6t7elg
+i4teni
+i2teo
+ite3re
+i4tero
+iter6s5
+i4te5ru
+i2te1s
+ite6se.
+itet6s5
+i1té
+it2i
+iti6er.
+i4ties
+i2tif
+i4tikam
+i4ti3kv
+iti5me
+i2tio
+i2tip
+iti3r
+i4tisa
+i4tisen
+i4tisi
+i4tisj
+i4tisko
+i4ti3sp
+i4tist
+iti5str
+i2tiu
+itiv4
+itivs5
+it7jaran
+it7jer
+it7ji
+itma6le.
+itnes4s
+i1to
+ito9a
+i4tom
+it5ord
+ito4s
+itostra6
+ito8v
+i1tr
+i4tra.
+i6trae
+it3rel
+it3ren
+it5rim
+itri8ma
+it3rin
+i5tris
+it7ro6s
+it1sa
+it4s3ei
+it3ser
+it6ses
+it5sku
+itsla8ga
+it1sn
+it6sti
+it3sun
+it4tag
+it6tak
+it4tal
+itta9la
+it6tann
+it6tap
+it4t5at
+it5ted
+itte4l5o
+it4tenk
+itte5s4
+itt5ett
+it4tid
+it4til
+it4tj
+itt1o
+it6tof
+it7ton
+it4tr
+itt5skr
+itt4sø
+it4ty
+it7tys
+i1tu
+itu5e
+itær1
+i1tø
+i5tå9
+i1u
+iu6a
+iu2b
+i5u6l
+i5um.
+ium4f5ar
+iu2m1i
+ium5m
+iu4mo
+i6umse
+i4um5s4t
+i4umsu
+iu2n
+iu8p
+i2ur
+iu5se
+4i1va
+i4vad
+i6vaj
+i4v3aks
+i5val
+iva6la.
+i4vana
+i4v5ank
+i4varb
+ivar5s6
+i4v5ass
+ivat3t
+i1ve
+i2veg
+ive6ge
+iv5eg6n
+i4vei
+iv7eig
+i2vek
+ive4ra
+ive5ras
+iver5d
+i6veret
+i4vesk
+i4vesti
+i6vesv
+i6vetø
+i2vev
+i1vé
+i1vi
+iv5ins
+iv5is.
+iv5isb
+ivle6ge.
+iv3n
+i1vo
+iv7om
+iv3r
+iv4sal
+iv2si
+iv2sk
+iv2sl
+iv2sn
+iv4so
+ivs5v
+i2v3un
+iv7y
+ivyr8ke.
+i9væ
+iv7åpn
+i1wa
+iwi5
+i5wie6
+i5y
+iyr8ke.
+i5za.
+i7zas
+i4ze
+i1zo
+i1ø
+i1ø4k
+i1ør.
+iør5i
+iør5s
+i4øs
+iø3se
+i1øy
+i1å4
+iårs7l
+iåt4te.
+ja1ak
+ja9ar
+ja4da
+1jae
+ja7en
+5jag.
+ja4ga.
+ja7gar
+ja4ge.
+jag6r
+ja4ha
+ja4hv
+ja4j
+jak4kel
+jak7kele
+jak4ko
+jakk5s4
+ja1k8r
+ja8kre
+jaktel
+ja7ku
+ja3lo
+ja1lu
+jam7b
+6jambi
+jamhø8ve.
+5jamm
+jams2
+jan4gr
+j5anl
+ja6ra.
+ja6r5ap
+ja9rek
+jarn3s4
+jar5ta
+jar5te.
+jar5tet.
+jar7ti
+6jarø
+ja6rå
+ja7se
+ja8ski
+ja5sti
+ja5ta
+jau4ere
+ja9vi
+1jaz
+j1b
+2jd
+j2e
+2je1a2
+je5ak
+2jeb
+jeb9b
+je4deb
+6je4dek
+4jedr
+jeep1
+6jeev
+2jef
+je4f3et
+je2fj
+jef5lag
+je4f3re
+jef4sa
+jef6s5i
+jef3t4r
+je5ge
+jeg5ge
+6jegl
+jeg6les
+4jego
+4jegr
+4jegy
+2jeh
+je1i
+je5i8s
+4jej
+2jeka
+jek6keru
+4jekl
+je4kli
+2jeko
+jekt3a
+jek4tan
+jek6tes
+jekt5ev
+jek4t5in
+jek4t3r
+jekts4t
+4jekø
+2jel
+je6legr
+jelei7er
+je7lele
+je4les
+jel7ge
+jel6lag
+jell5ang
+jel5len
+jel4lo
+jelt3
+jel4tr
+jel9ut
+jel7va.
+2jem
+je4mia
+je4mit
+jemp6
+jem5pl
+jem5se
+jem4sti
+2je7na
+jen1d
+4jendr
+je3ne.
+je7ne8s
+4jenet
+jen5ged
+jeng5s4
+2jeni
+jen3k
+4jenl
+4jeno
+4jenu
+je2n1y4
+4jenæ
+2je5o4
+2jep
+je3raf
+je4r5ant
+jer4dep
+jerd6s
+je3r6e
+4jered
+6jereg
+6jerei
+6jerenn
+je5rik
+je6rim
+je6rinæ
+jer4kes
+jer6k5l
+jer4kv
+jerle7
+jer6mu
+jer6n5as
+jern5sl
+je6ron
+jer4sp
+jert5s
+4je1ru
+6jerå
+5jesf
+5jesh
+jes4kil
+2je3sp
+jes4tea
+je6stim
+je3str
+5jesut
+je5sve
+je4t3ag
+jeta6ka
+je9tar.
+je7tara
+je9tare
+je4t3ru
+jets2
+jet4t5an
+jet6term
+jett3o
+jett5s6
+je4t3v
+jety8e
+2jeu6
+4jev6a
+je7vark
+je6vas
+4jeve
+jevi4s
+jev7na.
+jev7ne
+6jeø
+j1f
+4jg
+j1h
+4ji.
+jib5b
+ji7e6
+6jik
+2j3inf
+ji7ro
+ji6sj
+4jiø
+2j1k
+j4kap
+6j1l
+6j1m
+6j1n
+6jn.
+j5ni
+j2o
+1job
+5joc
+jo4da.
+jo6dat
+jo6dis
+jo4fl
+jok9ker
+jokk9o8
+jol5t6
+j3omr
+jon2
+jo5ne
+jon7n
+jons1
+jons5a
+jonse4
+jons3p
+jons5t
+jon6sti
+jon4str
+jonsu4
+4jop
+jo5ra
+jor6dek
+jor6d7erv
+jor6d7is.
+jor4d3o
+jord3r
+jord5s
+jords4l
+jor6du
+jo1re
+jo4rie
+jort6a
+jor5tet
+jo3r4u
+2jos
+jo3se
+jo4ses
+jo5stei
+1jou
+jour5
+j1p
+4j1r
+2j3s2
+j1t
+ju8are
+1jub
+jubi3
+ju9bo
+ju3de
+ju2do
+ju7doe
+jue7ni
+ju4e5re
+jue9s
+jug9le
+5jugo
+4ju2k
+ju3ka
+ju3ke.
+ju3ken
+juk9sar
+ju2l
+ju3la.
+ju5lar
+ju5las
+ju8l9ei
+ju4li.
+ju6lid
+ju4lik
+jul7inn
+jull6
+1jung
+jun7ge
+j6u6ni
+8jup
+jup7s
+ju6p5å6
+ju4ra
+ju7ras
+3juris
+ju9ro
+ju3ru
+5jury
+1jus
+ju5so5
+ju1ta
+jut5o
+ju6va.
+ju6vak
+ju1å
+j5v
+jy1
+jy8de.
+jy2p3
+jæ5le.
+jæ3ra.
+jæ9ran
+jæ9res.
+jæ7te.
+j2ø
+1jø.
+1jøa.
+jø5b4
+1jøe
+2jøef
+4jøeg
+6jøei
+2jøek
+4jøend
+4jøeng
+4jøeta
+jø1f
+jø3gr
+jø9kj
+4jøl
+jø4les
+jøl6ver
+jø5me
+jøn5ne
+jø5pa
+jør4kel
+jør4sp
+jørs5v
+jør4tel
+jø3ru
+jør7ut
+jø1rø
+jø4ses
+jøst2
+jø5ta
+jø6t7av
+jø3te.
+jøte4t
+jøt5eta
+jø1tr
+jøtte4
+4jø1v
+jø4vel
+2jå
+jå5ar.
+jå9ge.
+jå6la.
+jå4le.
+jå7les
+jå5let
+1ka.
+2kaa
+5kaa.
+5ka4an4
+k3aas
+ka3at
+6kabes
+ka7bo
+4ka1br
+4kaby
+ka3da
+6kadale
+ka5del
+ka6del.
+ka4deri
+4kadg
+kadi7e
+2kadr
+5kadu
+4kady
+3kaen
+ka3fe
+kaf5fere
+2kafo
+ka9fr
+2kaft
+kaf5ta
+6kafø
+2kag
+k5a4gi
+kag2r
+2kah
+ka5isk
+ka5ism
+6kajo
+ka4ka.
+ka4ke.
+ka4ked
+ka4kel
+ka4kes
+ka4ki.
+ka4kis
+6k5aksj
+4kakt
+ka3ku
+ka3lam
+ka3lan
+ka6lant
+ka3las
+kald5s
+5kaldt
+kal2e
+3kalen
+ka5lev
+5kalis
+k6alk
+5kalky
+kal7la
+kal6lero
+kall4s
+ka1lo
+kal3p
+kal7s6v
+kal4ves
+1kam
+ka6ma.
+ka8me.
+4kameri
+4kammel
+kam4p3i
+kam4pr
+7kamu
+1kana
+ka8na.
+4kanda
+kan6da.
+5k6ande.
+1kane
+ka5ner
+kan4i
+ka5nin
+2k1anl
+4k1anm
+k3anno
+5kano
+ka4no.
+ka8nom
+4kansa
+6kansi
+3kansl
+1kant
+kan6t7end
+kan6t9r
+2kap.
+5kapad
+ka4pak
+3kapas
+ka5pe
+5kapell
+4kapen
+3kapit
+1kapp
+kap3re
+kap4s3t
+1kar.
+1kara
+4karab
+4karam
+karan5
+ka3rav
+1karb
+4karbei
+4karea
+ka6rek
+ka5rel
+1karf
+5karg
+ka4ri.
+ka6rid
+6k3arki
+6k5arkt
+1karm
+kar3n
+ka3rol
+kar3om
+kar5pes
+karp3s
+3karri
+7karsj
+kars4t
+1kart
+kar5ti
+5karu
+4karå
+1kas
+7kas.
+ka5se4i
+ka3sek
+kas5ev
+kas2ju
+6kasjø
+ka4sk
+kas3ka
+kasko5
+6kasp
+ka4spi
+kass6
+kas6sad
+kas4sak
+4k3assi
+kas4so
+ka4st
+8kas5to
+kas2t3r
+1ka7t6a
+ka3ted
+3kateg
+ka3tet
+ka1to
+ka4t5op
+4ka1t4r
+kat7s
+kat5ta
+kat4tel
+kat6term
+katte5s
+kat4til
+kat4tri
+ka4t5y
+k7au4r
+2kav
+ka7ves
+k9avis
+kav8l9u
+9kay
+6k1b4
+2kc
+k5ce
+kcen4
+2k1d
+k5d6v
+1ke
+2ke1a8
+ke9al
+2keb
+4kebr
+4kebuk
+4kec
+ked4
+ke5da
+4kedag
+4kedal
+5kedan.
+9kedant
+ke5de
+6kedei
+4kedem
+4kedes
+7kedes.
+2kedi
+2ke5dr
+ked8sk
+kedu6
+4kedy
+2kedø
+2keeg
+2keek
+2keel
+ke4ep
+ke7ern
+2keev
+4kef
+k3eff
+k5eft
+2ke1g
+k3egg
+keg8ga
+5kegladh
+ke5h
+3kehet
+4kehj
+2kei
+k3ei2d
+k1eig
+ke5il
+ke1im
+k6e1in
+keis2
+2kej
+2kek
+kek2l
+ke3kn
+k1eks
+k5ek4t
+k6el.
+2kela
+ke3l4ak
+5kelal
+ke6lans
+ke6lat
+kel5eier
+kel5eig
+kel7eik
+kelei8ke.
+6keleis
+kel3e4l
+4k5elem
+4keleng
+4ke5lep
+4keles
+7k6elet
+4kelev
+keli8e8
+keli9en
+3kelig
+4kelign
+4kelinj
+kel5int
+4kelis
+ke4lise
+5kelit
+4keliv
+kel5l
+4kelof
+6kelov.
+4kelove
+kels4
+kels7kar
+kel5sl
+kel5sp
+kel5st
+kel3sv
+kelsva9
+kel2t
+kelt3e
+6kelua
+4kelue
+kel9uka
+kel5uke
+ke4l3ur
+6keluv
+kel5v
+2kely
+2kelæ
+2kelø
+kelø8pa.
+6ke5l4å
+kelå7re
+2kem
+ke4mit
+5kena.
+6kenam
+ken6ap
+ke4nas
+5kenatts
+ken5de
+6k5en6den
+6k5en4der
+4kend5r
+ke3ne
+4keneb
+4kenek
+4kenel
+4kenem
+6kenett
+4kenev
+3kenf
+ke4ni
+5k6enh
+4ke5niv
+ken3k
+ken7n
+kenne4l3
+ke4nom
+ken1s2
+4k5ense
+kens6t
+ken7te
+ken5t6r
+4k3entu
+6ke3ny
+6kenø
+2keo
+ke3on
+4kep
+5kepi.
+9kepia
+7kepie
+6kepl
+kera7l
+4keram
+ke4ran
+ker5ant
+6kerau
+4kered
+4kereg
+kerei4d
+4kereir
+6kereis
+4kerek
+4ke5rem
+kere6n
+6kerene
+ke6r5eng
+4kerenn
+4kerep
+ke4r5ert
+ke3res
+4keress
+4kerest
+4keresu
+4keret
+5keret.
+5kereta
+7kerets
+3keri
+ke4rif
+6kerik.
+4kerike
+6kerikt
+ke4rim
+ke4rine
+6keringi
+6keringj
+ke4rinæ
+ke4ris
+8kerist.
+8kerista
+6keriste
+3kerm
+7kerop
+5keror
+4ke3ros
+kero6se.
+ke3rot
+k4ert
+ker5to
+ker3t4v
+ker3un
+4kerus
+keru6se.
+kerø6re.
+8ker8øya
+6ker6øye
+2kerå
+5kes.
+4kesam
+9kesam.
+7kesdale
+5kese.
+k5esel
+ke5sil
+4kesit
+2kesj
+k9es8ka.
+4k5eske
+kes8ke.
+4keski
+4keskj
+6keskå
+kesle6ge.
+kes5ped
+5kespot
+5ke4spu
+5kest.
+4ke3sta
+5keste.
+4ke5sted
+4ke5stei
+kes6tem
+4ke5s4ten
+ke3sto
+4kestri
+4ke5stru
+4kestu
+4kestø
+ke4s5un
+kes1v
+2kesy
+kes1å
+2keta
+keta6ka
+keta6le.
+5ketals
+k6etar
+ke3te
+5kete.
+4ketek
+7keth
+2keti
+2ketj
+2keto
+2ket2r
+kets2
+ket6t7enh
+ket8tes
+2ketu
+2kety
+kety6e
+4ketæ
+ketøy6s5
+2ketå
+2keu2
+ke5ur
+2kev
+kev2a
+keva8ne.
+5kevas
+3kevel
+kevi6sa.
+k1evj
+kev6ja
+kev4je.
+k3evn
+kev6ne.
+ke3vr
+kevæ8ra
+ke2yt
+6keæ
+2keø
+2keå
+1ké4
+két5
+2k1f
+k5fi
+4k5g2
+k3ge
+k5gh
+kgu4
+4k1h
+kh5ak
+k4har
+khe4o
+khjul8s
+kh6m
+ki3a2r
+k3ideo
+4kidol
+ki3dr
+k4ie2
+kie5re
+ki6el
+ki3er.
+2kif
+ki5g4
+ki6ka.
+kikk8s9
+ki1k8l
+ki3k2r
+kik4s
+ki8la.
+3kilde
+ki4le.
+ki5li
+4kilj
+kil9ja
+kil6le5st
+ki7loa
+ki4log
+ki3los
+ki4lov
+2kilt
+ki7lå
+ki8ma.
+ki4me.
+5kimo5
+ki4mol
+2k1imp
+kin9and
+ki4nark
+ki5nas.
+6kind
+ki5ne
+ki6ne.
+2kinf
+1king
+king5and
+kin3ge
+kin5ing
+2kinn
+kinnsi8da
+kinnsi8de.
+kinn4sp
+ki2no
+2kins
+kinsi6de.
+2kint
+kinti8me.
+ki6nu
+2kinv
+kio4
+4kiol
+7kios
+2kip
+ki5pe
+ki4p5l
+kip5pe
+kip2s3
+1kir
+ki5re
+ki5ri
+4kirs
+ki3se
+ki5sko
+ki3smu
+ki1s2p
+ki5stav
+ki5str
+ki6ten
+ki7ti
+5kito
+ki4ton
+4kiu
+k6iv
+ki4vek
+ki4v5enh
+ki6vi.
+kiv3s
+kj2
+3k8jan
+kjap5pe
+6k7jarn
+kje7fj
+kje7f6r
+4kjegg
+3kjeld
+kjel7leg
+5kjemas
+3kjemp
+6kjenk
+kje9ny
+kje1s
+kje6t5r
+kjet5t
+6kjor
+kju5le.
+kju5len
+kju9r
+3kjærl
+k5jødi
+1kjøp
+3kjøri
+kjø4tr
+2kk
+k1ka
+k2kab
+kk3aft
+k2k1ak
+k2k3al
+k2kam
+k4kanb
+kk5and
+k8kand.
+k6kanden
+k4k5ang
+k4kann
+k4kao
+k4karb
+k6karg
+k4k7art
+kkar6ta.
+k5kast
+k6kasu
+k6katt
+k2k1au
+kk1av
+k6kedo
+k4kedu
+k2kee
+k2keh
+kk1ei
+k5kel.
+kke6lei
+kk5e4lev
+kkel3t4
+kkelu4
+kke4luk
+kkel5un
+kke6nan
+k5ker.
+k4kerei
+k4kerel
+k6kerent
+k4kerig
+k4kerit
+kke5r6und
+k4kesa
+k5kesau
+k4kese
+k4kesi
+kke3s4l
+k4kesp
+k6kestad
+k4kete
+k5ketet
+k4ketø
+k4k9g2
+k1ki
+kk3ind
+kk3inf
+kk9inn
+kk3ins
+kk3int
+k2kir
+k1kja
+kkjek8
+kk5jent
+k4k5jern
+kkje7t
+kk5ju
+kk5k
+kkla4g
+kk3lan
+kk8lar
+kk7lau
+kk1lo
+kk1ly
+kk3læ
+k4kn
+kk5ne
+kk5ny
+kk6s5v
+k1kod
+k1koe
+k4k1of
+kko6lig
+kk5oml
+kk7oms
+kk9omt
+k6koo
+kk1op
+kko7s
+k4kosi
+k6kosk
+k4kost
+kk3ove
+k4kra
+kk5ram
+kk3rap
+kk3rea
+kk5rei
+kk3ren
+kk3res
+kkri6k
+kk3ro
+kkro8e
+kkro4s
+kk3ru
+kk4rus
+kk7rø
+kk7rå
+kk7s
+kks6al
+kk4sar
+kk5sed
+kk3s4ei
+kk4sin
+kk1sk
+kks4kj
+kks4l
+kk3sla
+kk7sle
+kk5sli
+kk3spe
+kk1s2t
+kks5tak
+kks7tep
+kkst4r
+kk8s7va
+kk5s4å7
+kk3t2
+kk5uk
+k4kuni
+k2k1u6t
+kk1v
+k2kvo
+k1ky6
+kkyl4
+kk5yr
+kk7yt
+k2k1ø
+k8køl
+kkø6r
+kkøy6
+kk1å2
+kl4
+6kl.
+4kla.
+4k5lagt
+2klak
+kla9ke.
+kla4mel
+3k2las
+k7lati
+kla4tr
+kleby7t
+3k4ledd
+kle4deb
+kle4des
+2kleg
+klei9e
+k7leik
+k4leiv
+k2lem
+5k6lem.
+7k4leno
+k6lerik
+kles7j
+kle5sno
+kle4sp
+kle5sti
+kles7s8
+2klet
+8klia
+4klie.
+4klig
+1k2lim2
+3k4lini
+k5linj
+1klip
+4klit
+klon7a8l
+1klos
+2klov
+k3lukt
+4klun
+klun5t
+k5lyd
+6k7lyf
+3k4lyng
+klyse7te
+k2læ
+klæ5res
+klø7na
+k6lør
+6kløs
+klø9va
+klø5ve
+6k1lån
+klå5re
+2k3m
+kmann6
+kmål2
+2k1n2
+3k2nap
+kna5t4re
+kne4b3l
+k4nedi
+5k2nee
+kne8se.
+k4nest
+kn5f
+3k4nip
+knippe6
+kni2t3
+3k2niv
+kno7g
+kno6kl
+5knop
+kno9ta
+kno5te
+3k2nu
+4k3num
+3k2ny
+kny4s
+k2nø
+knø9le
+kn3øy
+9koa.
+4ko1ak
+9koane
+ko7ar
+ko2b3
+ko3bo
+4ko3br
+ko5da
+4kodd
+ko4de.
+3kodek
+5koden
+2kodø
+ko3e
+3koef
+4koek
+4koel
+4koes
+4koev
+ko4g5eng
+kog9ger
+kog3l
+ko4gre
+kogst6
+ko4gu
+ko6gå
+2koi
+koi4e5ne
+ko7i6k
+ko1in
+2koj
+ko8ja.
+ko4ka.
+ko4kab
+ko4ke.
+ko6kel
+ko1ki
+kokk6o
+k3okku
+4kok4l
+4koko
+2koku
+kolba5
+2kole
+ko4leg
+ko4lei
+ko6lel
+ko4let
+ko4leu
+3kolle
+ko5lo.
+kol5p
+4koly
+2kolå
+1kom
+ko4ma.
+4komaf
+ko4me.
+6komg
+ko4mi.
+4komil
+4komisb
+ko4mise
+2komr
+4komse
+kom3sl
+kom5so
+kom4st
+4kom5t
+4komu
+4komå
+k6on
+ko4na.
+kon3d
+kon6dr
+kone5l6å
+4koniv
+kon3s2
+kon6s7v
+kon6ton
+ko4nu
+1ko1o
+4koom
+ko5pa
+ko5pers
+4kopet
+ko4pi.
+ko4pip
+ko4p9l
+4kopo
+kop5per
+2kopr
+ko1ra
+ko4ra.
+kor6da.
+kor4d3o
+kord5s4ø
+kor4du
+ko1r6e
+6koref
+4ko7rei9
+ko5rem
+ko7ret
+ko3ri
+ko6rik
+4korm
+ko5rol
+6korpa
+6korpe
+1kor3r
+kor4sal
+kor6s5inn
+kor4s5l
+kor6str
+kor4sv
+kor5tes
+kor6top
+kor4t5r
+kort5s4
+ko5ru
+ko6rume
+1kos
+2kosa
+ko6sa.
+ko4sed
+ko4sek
+5kosele
+ko5sen
+ko4ses
+ko9si
+kosi9d
+ko2sk
+ko1sl
+4kosmu
+2koso
+2ko1s2p
+ko6sta
+kost7as
+kos6t5ers
+kost5j
+4kosø
+kotes7
+ko5t4i
+4kotil
+4kotr
+ko6tre
+kot2s
+kots5tr
+kot4ti
+kott4s
+kotts5t
+4koty
+2kou4
+kout3
+kou7ta
+ko1va
+kover7e
+4kovr
+1kov4s3
+4koø
+4koå
+6k1p
+kr6
+k3rad
+1k4raf
+5krag
+3krakk
+krani6e7n
+6krank
+3krans
+4krap
+kra9se
+7k8ra4sj
+kras5s
+kra4to
+kra4u
+1krav
+4kred.
+3kredi
+4k1reg
+kregi3
+4krei
+krei9e
+krei5s
+6krek
+kre4kli
+2krel
+k5rela
+4k3renn
+4krent
+6kreo
+k5repr
+5kreps
+5kresj
+4k3ress
+kreta9
+6k7retn
+k4rets
+k3rett
+2krib
+4krif
+7k6rig
+krig6s5
+kri9ga
+4krik
+kri5ke
+kri4kj
+krik6ka
+1krim
+kri4me
+3k6rins
+krin6s7t
+kri2p
+1k2ris
+7krisene
+k2rit
+3krite
+6kriv
+k2ro
+kro5b4
+kro5de
+k3rofo
+k4rofor
+krok7k
+k6roni
+k5ronl
+kro4nom
+k4rop
+krop9n
+kropp4
+k4rost
+kro9t8e
+kroten9
+kro3v
+kru3i4
+krum3
+kru5sa
+krutt5i
+kru3tr
+2k5ryg
+kry7pa
+kry5pe
+kry4pi
+3krys
+krø5ke
+6k5rør
+krø3v
+4kråd
+krå8da
+kråe6
+5kråk
+krå5le
+krå9m
+krå7ne
+k1sa
+k3sa.
+k2s3ad
+ks3alt
+ksa5me
+k3sane
+k4sans
+k4s3ant
+k3sar.
+k7sara
+k6s3ark
+k7sas
+k1sc
+k2sed
+k2see
+kse6ge
+k2s1ei
+k5sekt
+k5sela
+kse5lev
+ksen5to
+k4serf
+ks3erk
+k5serol
+k4sesa
+k4ses6k
+k4se3sm
+k5seso
+kses4p
+k5sess
+kses6sel
+kses8serie
+kses4sp
+kses4st
+kse6te.
+ksfø4
+k5sia
+k2sif
+ksi5ko
+ks3ind
+k3sing
+ksi7ni
+ks3inn
+k4s3ins
+k7sio
+ksi3st
+k4siti
+ks9kab
+k6s3kal
+k6skio
+ks1kj
+ks5kl
+ksko7na
+ksko5ne
+ks1kr
+ksk8u
+ks9ku.
+ks7kua
+ks8kut
+ks1k6v
+ks1l
+ksla8ga.
+ks5lo
+k7s6lu
+k8s7lug
+ks5løs
+kslø8va
+kslø8ve.
+k5s4mak
+ks4mel
+ksmå
+k5s4no
+k7s8nø
+k1so
+k6s7oa
+k6sod
+k4sog
+k4somb
+k2s1or
+k2sot
+ks1ov
+k3spal
+ks3pek
+ks5pio
+ks3pir
+kspor6t5r
+6k6s5pors
+ks1pr
+k8sr
+k3spy
+kss6
+ks3sm
+k5stad
+k4stak
+ks3tal
+ks5tant
+k7s8vak
+ks6tav
+kste4da
+ks4teg
+k3stei
+k4stek
+kst3ev
+kstev6ne.
+ks4til
+k4stin
+ks1tj
+ks1tr
+kst6ran
+ks4t5rek
+k6stren
+k6strer
+ks4tri
+ks4tro
+ks9tum
+k5stus
+ks3tyv
+k2stå
+k1su
+k6sun
+ks1v
+k9s8vake
+ksva8ne.
+ks5veg
+k7s6vert
+k5s4vin
+ks5w
+ksy8na
+ksy8s7m
+ks5ær
+ksø4ke.
+k6s3øl
+ks1å
+k3så.
+k4såp
+ksår4
+ksåt4
+6k1t
+k5ta.
+kta7f6
+k4tag
+kta6ka
+k4t3aks
+k4takt
+kta6la.
+k4t3ana
+kta9na.
+kt3anl
+k4t3ann
+k4tanv
+kt3app
+k9tar.
+k4t3arr
+k4t3art
+k6tass
+k5tast
+k6t7atl
+kt5avh
+kt5avk
+k6t3avl
+k3ted
+k4teda
+k6tee
+k4tefø
+kt5e4ge
+k2te5i
+k6teka
+kte5le
+k6t5elsk
+kt5e4lit
+ktem8
+kt7emn
+k4t3enh
+k9ter.
+kterie5n
+kterie7ns
+kter5s6
+k7tes.
+k6tesa
+k6tese
+kt5eske
+ktes6ke.
+kt5esti
+k4t5e4ta
+k4tete
+kt5evn
+ktev6ne.
+k5tib
+k3til
+k4t3ins
+k5tir
+ktis5t
+kt7i6te
+kti6v7end
+k2tja
+kt7ju
+kto9a
+kt5off
+k6togram
+k4toli
+k2tom
+kt5omf
+k2t1op
+k9tor.
+k7tora
+kt5ord.
+k5tore
+ktori9e8
+ktor7s
+kt1ov
+kt3ral
+k2t1re
+kt2ro
+ktro5s
+k2t1ru
+kt4s5amb
+kts5ar
+kt5sek
+kt7sem
+kt4s5er
+kt6sin
+kts5kra
+kt5sku
+kts4kv
+ktsle6ge.
+kt6sok
+kt4spa
+kt5spre
+kt4sta
+kts6ton
+kts5top
+kt4stå
+kt3t8
+ktu9er.
+k4tuk
+kt7und
+k2t1ut
+kt7yrk
+ktyr8ke.
+ktør7
+ktør8e
+k6t5øs
+kt1øv
+k2t3år
+ku2a
+ku9an
+ku4be.
+ku3bj
+2kud
+ku4dal
+ku4er.
+kue4r5a
+ku4et
+6kuf
+ku4f3l
+6kug
+k5u4gr
+ku7is
+kuit6
+6kuldi
+kuld3r
+ku4led
+ku4leg
+ku6lei
+ku4lem
+ku5len
+ku4let
+ku4lev
+ku5li
+ku6li.
+3kull
+1kult
+ku4man
+kumen6tal
+ku6mi
+kum2s
+3kumu
+1kun
+kund5s6l
+2k1ung
+kun4ge.
+k6unn
+ku4o
+1kup
+ku4pe.
+kup4pl
+ku7ra
+ku4rek
+ku8r7o
+ku7r6op
+kuro8pa
+1kurs
+kur6sk
+kur4sp
+kur4s3t
+kurs3v
+kur3t
+ku5ru6
+kuru9ken
+kuru7ker
+1kurv
+kur4v3i
+1kus
+5kus.
+ku7sa.
+kus5a6k
+kus5ar
+5kuse
+ku4s5el
+ku4ska
+ku7s6pe
+kus3t
+6k1ut.
+ku1ta
+4ku5te.
+ku5to
+ku6t7r
+2kuts
+1kuu8
+kuøy6
+kv2
+kva8ke
+k4vali
+k6vard
+kvari6e5n
+5k6vart
+kva9se
+kve3d2
+kve7e
+k6veil
+kvei9se
+1k4vel
+kve5la
+4k3verd
+5kvern
+kverns8
+2kves
+kves5t
+7k6via
+4kvid
+3k4vie
+kvi4ene
+kvi5er
+kvi7la
+3kvinn
+kvi5se
+7kvist
+2kviv
+1kvo
+k1vog
+6kvok
+k4vot
+k2vu
+4k3væ
+k1vå
+k7we
+k5wu
+ky5a
+ky6el
+4kyf
+kyf5le
+2kyg
+ky4leg
+2k3yns
+kyn6skjer
+ky2p1
+ky4p5r
+1kyr
+kyrie5ne
+kyr8ke.
+ky8sa
+4kyse
+ky6se.
+kyse8te.
+ky3skr
+kys6sk
+1ky4st
+kyst3a
+kys4tel
+2kyt
+ky6ta.
+kyte3s
+k1æt3
+1kø.
+kø2ar
+1køe
+kø4en.
+kø2er
+6k1øk
+kø4le
+k1øn
+køn6skjer
+k3ørr
+køs4
+kø5se
+køy7ar.
+k7øyd
+køy4e5ne
+1k6øyr
+4kåke
+kå3le
+kån8da
+kå5ne
+kå4pe.
+kå7pen
+kå9ras
+kå1re
+kå1ri
+kå2t5
+k5åt6t
+1la.
+2laa
+la1b
+4laba
+la6bl
+1labo
+2l3abon
+4laby
+4lad.
+l6ade
+la4dem
+4ladg
+ladi9e8
+2ladm
+2ladr
+lad3s4
+1lae
+2laei
+4laent
+4laep
+2laf
+la3fl
+4lagg
+lagi4
+6lagne
+la2go8
+lag5om
+la2g1r
+lag5san
+lag4sj
+2laha
+2la1in
+la5ka
+la4ke.
+4lakj
+l2akk
+la2kr
+l7aksj
+l5aksl
+4lakt
+lakterie6
+la5kø
+2lal
+l1alk
+la5mab
+4lamb
+la4mes
+la4met
+la3mo
+l8a8mu
+4l3anal
+lan2c
+lan6das
+lan6deb
+land3r
+l6a3ne
+3lane.
+4lanet
+lan6gel
+lan4gem
+lan6germ
+lan4gr
+lang3s4
+lang4s5e
+lan6g5ø6
+4lanl
+4lann
+l3anno
+la4nor
+6l5ansi
+lan5ti
+4lanv
+l3anvi
+2lao
+la6pal
+la7pi
+la8pl
+lap5sa
+lap5sen
+lap5s4i
+1l8ar.
+6l7arab
+2larb
+l8are.
+4l7area
+la9red
+la5rem
+l6aren.
+4larena
+lare6t
+la6r7eta
+5larf
+la7ria
+lariar
+lari6e7n
+4l3arki
+l2arm
+lar3n
+6l7arr
+4lart
+lar6ta.
+lar7vet
+la6sc
+la5se
+lasi9e
+la2sk
+7laskj
+4lasm
+la5smi
+4la4sp
+las6sak
+las6sam
+las6sat
+las6sel
+l6ast
+4lastr
+las3v
+la1ta
+lat5ang
+6latau
+la4teg
+lat6ek
+la4teno
+late5s4
+la5ti
+la6ti.
+4latm
+la1to
+lat7ra.
+lat9ran
+lat5rar
+lat4t5is
+lat4tra
+latt6u
+lau7a
+2laud
+laue6
+4laun
+4laur
+lau7se
+lau6st
+2laut
+2lav
+la4v5al
+la4vel
+l5avh
+lav5inn
+6lavs
+7lavå
+1law
+la6y5
+2l1b2
+lba3de
+lba4k
+lba5ke.
+lba4ne.
+l5be
+lbe9na
+lbe8re.
+l4boa
+l6buh
+lby4e
+l5bå
+2l1c
+l4ce.
+6ld
+l7da.
+ld5aks
+ld5akt
+l9dand
+lda6t5o
+lda6t5y
+l2deb
+l5den
+l2de5o
+l2dep
+l3der
+l7der.
+lder7a
+l4derek
+l6derik
+l6derklæ
+lderle9g
+lder5s6te
+lder6s5ti
+l4desh
+l6destr
+l9dé
+ldis7k
+ldo9a
+l8d5oks
+l2dol
+l4dore
+ld5ovn
+l3drak
+ld3ran
+ld5ras
+l6dre.
+ld7regn
+ld5rer.
+l8dres.
+ld1ri
+l7dry
+ld1rø
+ldse8
+ld4sek
+ld4sel
+ld4ses
+lds1k
+ld4ska
+lds4kj
+ldsla8ga
+lds6leg
+lds4let
+ld4s9m
+ld5s4om
+lds3tr
+ld6tus
+ldø2
+ldø5d
+ldø5l
+ld7øy
+1le
+2lea
+le7ag
+le3ak
+le1al
+lea5la
+3leas
+le5at
+2leb
+le4bem
+le6bosta
+5lebæk
+lec4
+2leda
+5ledar
+led4dø
+4ledeb
+le4dem
+6ledep
+le5der
+le3des
+2ledo
+3ledop
+5ledov
+le4dro
+le5dry
+led1s2
+6ledu
+4ledy
+2ledø
+4le3då
+2lee
+6leei
+6lefa
+lefa6ne.
+4l1eff
+2lefi
+4lefl
+4lefor
+4lefot
+2lefr
+l1eft
+6lefy
+4lefø
+6legap
+5legas
+3lege
+le4ged
+le9gen
+le4gera
+le9geran
+le9geras
+le4gero
+le4geta
+le4gev
+7leggi
+le3gi
+6legif
+4legj
+2le1g2l
+le4gol
+4legre
+leg3s4
+2legu
+2legå
+2leh
+6lehal
+6lehamr
+6lehan
+6lehau
+6lehave
+le3ido
+l6eie.
+lei5ende
+lei4e5ne
+l6ei8et
+leig6d
+lei4ger
+lei7ger.
+lei4get
+leig4h5
+leig6na
+leig8ne
+2lein
+le3int
+lei6r7u
+leis7t
+l6eit
+2lej
+2leka
+le4ka.
+6lekan
+lek6e
+le3ki
+2lekj
+lekk7s
+2lek2l
+2lekn
+lek4na
+2leko
+2lekr
+4l3ekso
+4leksp
+lekt5ord
+lekt4s5t
+2leku
+2lekv
+4lekø
+4lekå
+2le3la
+8l9eld
+2lele
+l3elem
+4l5elg
+5lelig
+2lelo
+3lels
+4l3elsk
+le1lu
+4leluk
+l5elv
+2lely
+4lelæ
+2lelø
+lelø6pa
+4lema
+le3me
+le8me.
+4lemet
+8lemetrisk
+8l9emn
+lem8na
+2lemo
+lem9ped
+lem5pes
+3lemr
+lem4si
+lem4s5ø
+2lemt
+lem5ti
+2lemu
+6lemy
+4lemø
+2lemå
+le4na.
+le4nal
+4lenav
+lend8a
+len9dan
+6lenden
+l6endre
+4lendri
+4lened
+4lenem
+4lenev
+l4engd
+len4g5r
+leng9u
+le5ni
+4leniv
+lensa4
+len4s5ak
+4lensem
+len5ses
+len4sta
+len4tam
+len4tr
+len8t9ra
+2lenø
+4lenå
+2leo
+5leol
+2lep
+le5pa
+le4pel
+le8p9enden
+le2p3j
+le8pla.
+le4ple
+4lepo
+4leraba
+4leram
+le2r3amb
+ler5d
+l8ere
+le9re.
+6lerea
+4leref
+4lereg
+4le9r8ei
+4lerek
+le5res
+4lereso
+4leresu
+4leret
+4lerev
+9leri.
+7lerie
+le6riei
+le7rina
+le4riv
+4l5ernæ
+le5ro.
+4lerom
+6lerope
+le3ros
+4le3rot
+7lers.
+lers4p
+ler7te
+le1ru
+4lerus
+leru8se.
+2lery
+5leryr
+2lerø
+2lerå
+5l6es.
+le4sab
+4lesam
+7lesar
+4lesau
+2lesc
+le5sed
+le4seg
+4lesek
+le5sen
+le3ser
+4leset
+4lesho
+le6si.
+4lesig
+le7sing
+les5inn
+4lesit
+4lesju
+le7skap
+le4s3kj
+6leskol
+le6sk9u8t
+4lesla
+2lesp
+6lespal
+les3s6
+lesse6ne.
+4lesta
+9lesta.
+7lestal
+le5sted
+le5steg
+le5stel
+le4stim
+le3sto
+4lestrø
+4lestyr
+4lestø
+4lestå
+4lesug
+les1v
+le5s6vi
+4le5sy
+4lesø
+5lesøy
+3let.
+le4tab
+6letak
+leta8ka
+leta8le.
+l5e4tas
+5lete.
+6letea
+4leteg
+4letek
+le5ten
+6letenk
+6le7tep
+le5ter.
+4letes
+2le3ti
+l5e4tik
+2letj
+2leto
+2let2r
+le7tre
+le5t4ri
+3lets
+let6sj
+lets8k
+let6tea
+let6tr
+lett3s4
+2letu
+le4tv
+2lety
+lety8e
+4letø
+8letå
+4leul
+2leun
+l1eur
+2leut
+le4ute
+2lev.
+le6vad
+le6valu
+le4ved
+4leveg
+4levei
+4levek
+6levern
+4le4vev
+levi6d
+lev5n
+2levo
+lev1r
+4levs
+4levæ
+lex1
+4leø
+2leå
+5lée
+1lér
+7lét.
+7lè
+5lê
+4l1f
+l4fa.
+lf5ant
+l5far
+l5fe
+lf3f
+l5fig
+l5f6in
+lf5ja
+l7fje
+l6f3nul
+l4fom
+l4fut
+2lg
+l6gaf
+lga8le.
+l4g5alt
+l4g3ana
+lga5t
+lga4ve.
+l2ged
+l4gela
+l4gele
+l2gem
+lge3na
+lge4r5an
+lge4rap
+lge5ri
+lger5un
+l4gery
+l4gesl
+l6ge7sp
+lg5g
+lgie8n
+lg1lo
+lg5ly
+lg5n
+lg3ob
+lgo2d
+lg1ok
+lg1om
+lg5ov
+lg3ref
+lgr9øy
+lg3s2e
+lg2sk
+lg5s4kre
+lgsle9g
+lg5s4tr
+lgu4l
+lg3un
+lg3ur
+l1gæ
+lg5ø
+l6gå.
+lg5år.
+lgå8va
+lgå8ve.
+8l1h
+lha8ka.
+lhav6s5
+l5hj
+1li
+li1a
+li4ala
+li2am
+li5ans
+li4as
+liba5
+libe5ro
+libi5
+libie6
+liby5e
+li4dak
+li4ded
+li4do.
+2l1idr
+lid3t
+li4ene
+li3er.
+li5ers.
+lie5s
+3lif
+4lifat
+lif5f
+3lig
+li4ga.
+li4g3an
+li4gar
+lig9art
+li8gas.
+li4g5enh
+li4get
+5lign
+li4g3re
+lig3se
+lig3s4i
+lig3sl
+lig3s4p
+lig5s4ti
+lig5str
+li2gu
+4lih
+li5kan
+li9kar
+li7kas
+li5kee
+li3ken
+li5keså
+li9ki
+likk3o
+li1k2l
+9likn
+liks4t
+li5ku
+6lila
+8l5ild
+li3le
+lil5lebe
+lil5let
+li4mar
+li4mas
+li6mate
+l6ime
+li4me.
+4limh
+limp3r
+lim7r
+lim9u
+li4na.
+4lina6l
+lin6c
+linch5
+5l4indr
+4lindu
+lind3s4
+l5indus
+li4ne.
+li3ne6a
+li6nem
+2l1inf
+lin4g3j
+ling5l
+ling7sen.
+5lingv
+4l5inju
+lin5kes
+lin5kle
+lin4kv
+2l1inn
+lin5net
+3linni
+6linns
+6l5inntr
+li4nor
+l4inse
+5linsk
+4l3inst
+4lint
+2linv
+li6n5ø6
+lio4no
+lion5sp
+lion5sv
+li5o6s
+2lip
+lipes4
+lipp4s3
+li9rar
+li4rek
+4lisak
+li5set
+lis4kl
+2liso
+4lisp
+lis6sp
+lis7tan
+lis6terk
+lis5ti
+4lis6til
+list3o
+li6s8tr
+list7rø
+lis4t3u4
+li4st5y
+listyr8ke.
+li4tee
+li4tek
+li4ti3a
+li4tid
+li4tig
+li4til
+li4tim
+liti5st
+li4tiv
+lit5j
+6litn
+li5to
+li2t1r
+lit5rer
+lit6tele
+lit6terk
+lit6term
+litt5s6
+li5ty
+7liu
+li6va.
+li4v3ak
+liv5eg
+livi5e
+liv2s3
+2lj
+l1jan
+l1jar
+l4jarb
+ljar5s6
+ljas4
+l4jed
+l6jee
+l2jei
+l2jek
+lje3l
+lj9elv
+l1jen
+l3jer.
+l4je1s
+l5jes.
+ljes4t
+l5jet.
+l4jete
+l5jete.
+l6je5t6r
+l2jev
+l5jé
+l1ji
+3l2jod
+ljo8e
+l4jom
+lj5ori
+3ljos
+lj5un
+l7jur
+lj7ut
+ljø3
+l5jøs.
+6l1k
+l3ka
+l5ka6l
+lkali9e8
+lk4an
+l6k5b
+lk4e
+l3ke.
+l2ked
+l5kedal
+l3kede
+lkeei4
+l6keh
+l5keleg
+l3ken
+l7ker.
+l4kera
+l4keri
+l4k5ers
+l4ke3ru
+l5kestad
+l5ket.
+l5kets
+lk2l
+lk4li
+l5k4lu
+l6k5nin
+l6ko.
+lko9ma
+lko9sa
+l2kot
+lkras5
+lk5ri6k
+lk4ser
+l4k3s2h
+lk1s4t
+lku4le.
+lku8t
+lk9ute
+l6kveg
+lkå1
+2l1l
+l5la6a
+ll6a5f
+l2lak
+ll1al
+l4lami
+l5lane
+ll3anl
+l4l5ano
+llans4
+ll5ansk
+ll7apa
+llap3s
+ll4as
+ll5asp
+ll5aur
+llau6re
+ll7avl
+ll5avr
+ll3d2
+lle5a
+l5leak
+lle8da.
+lle4d3r
+l3lee
+l2lef
+lle5gev
+lle5gr
+l5leha
+l5leho
+l5lehå
+l4l5eig
+l4leki
+l6l5ekst
+l4leli
+l2lem
+llen6da.
+ll5enden
+l4lendr
+l6lendt
+l4lenk
+l5l8ens
+l4lentu
+l4lenu
+ll5eple
+l6l5e6rik
+l4lerob
+ll6es
+lle4so
+lles5pr
+lle5stø
+l5let.
+l4leta
+l5lets
+llet6tele
+l8letæ
+l2leu
+ll5even
+lle7vev
+l5levå
+lle6y
+l2lé.
+ll7g2
+lli1e
+lli5e4n
+l9lig
+l2lim
+l4l3ind
+l4lins
+ll3int
+l9lint.
+l3lip
+l4lir
+lli6sen
+l4liv
+ll1j
+ll7k2
+ll5m
+llmue9ne
+llmu7ens
+llmu9er
+l5lo.
+llob5
+l2lod
+l4l3off
+llo5id
+ll5oks
+llo2m1
+llom5s6
+ll3op
+ll5opp
+l2l1or
+l4loso
+l6lote
+ll5p
+llra7n
+ll4sak
+llsa6me.
+ll4sem
+lls5end
+llsk4
+lls6kar
+lls5kv
+ll5skå
+lls5lag
+ll3smy
+lls4no
+lls4te
+lls6tig
+lls7øk
+ll3t4
+llto4e
+l8lua
+l4lu4e
+l4luf
+ll7ug
+llu4k
+l8l7uka
+l4l3uke
+l6luks
+l5lum
+l4l1un
+llun6ge.
+llu4pi
+l2l1ur
+l3lus
+l2l1ut
+ll1v4
+llva8n
+lly4se.
+l4løk
+ll5øks
+llø6pa.
+l4løve
+ll7øy.
+ll5øya
+ll3øye
+lløy6er
+ll5øy6n
+ll1å8r
+ll3å2s
+2l1m
+l5ma.
+lm3anm
+l4map
+l4marki
+lm3av
+lm7b
+l4m3els
+l4melu
+lm5e4po
+l4m5erf
+lme7ri
+lme7sti
+lme5t4r
+l5mil
+lmi8le.
+lm3ind
+l5ming
+lmini6
+lmin7ne
+lm3ins
+lm5int
+l7mis
+lm5l
+lm5m
+lm1op
+lm1s
+lms6j
+lm5s2p
+lm3t
+lmu4le.
+lm3ut
+lmyr8ke.
+l4mø.
+l6m5øs
+lm5øy6
+lmøya9
+lmå6la.
+lm5å4r
+l4m5ås
+2l1n
+l2nab
+l3ne
+lni4u
+l7ny
+lo1al
+7loane
+lo1a4r
+5loar.
+2lob
+lob5by.
+lob9byan
+lob9byar.
+lob5bye
+lo2bl
+lo2d3a
+lo3de
+lo4d3ri
+lod3s4m
+lod7ste
+lod7s6v
+lo6d5u
+6loeng
+6lofj
+3loft
+1log
+lo5ge
+lo6g5e8v
+lo4gir
+log2o
+lo3gop
+log8res
+lo6g5ro
+log5sa
+4loh
+lo5id.
+lo3ide
+lo1in
+3loja
+lo1ki
+lok4ko
+lok6kul
+2lo1k4l
+4lokon
+2lok7s4
+lok8se.
+lo1k4v
+lole6ge.
+2lolj
+lolo9
+l5omdr
+lo4m5in
+lom4mel
+lomst9r
+lo4nal
+6lond
+lo5ne
+lon4g3r
+lo4nit
+lon7skj
+2lop
+lo3pa
+lo4pea
+lop5pa
+5l4opt
+lo1ra
+2lord
+lor6da.
+lo1re
+4l1org
+lor4g5l
+lorie6
+lo1ro
+lo7rød
+lo7sa
+lo6sek
+lo4ses
+lo5sev
+los4kle
+lo1sl
+lo7sp
+2lost
+lo9tes
+lo8ti.
+lo3to
+4lottet
+lo1un
+1lov
+lov7ald
+lo3van
+lo9vand
+lo7vane
+lo3var
+lo3ve7d6
+l6over.
+love5re
+l5overn
+6l5overs
+6l5overt
+7lovo
+lov3sa
+2l1p
+l7pa
+lpa5re
+lpas5
+l4pedo
+l4pee
+l2pei
+l2pel
+l5peleg
+l3peli
+l4pelin
+l3pesm
+l4peti
+l2peu
+lp2h
+lp2i
+lpin3e
+lpi5ne.
+lp2l
+lpo6et
+l4put
+l5q
+2l5r4
+lra8da
+lradi4u
+lra6ne.
+lre4de
+lre4i
+lre8ka
+lre8ke.
+lre8va
+lri8ma
+lri4ve.
+lro8de.
+lro6pa.
+lro8sa.
+lro4se.
+lrot5s
+lrø6re.
+lrø5v
+lrå8da.
+lrå4de.
+8l1s
+l2sad
+lsag6
+ls5ald
+ls4am
+l7sana
+lsan6ke.
+l4s5ano
+l4s3ans
+ls5ark
+l4sat.
+l4scu
+l3se.
+l2sed
+l2see
+ls3eid
+ls5eig
+l4s3ele
+l4s3elv
+l2sem
+ls5emb
+l4seno
+l7ser.
+lse2s
+lses5ku
+lses3l
+lses5pa
+lses5s
+lse8s5tr
+lse4te.
+l2seu
+l6sev
+l4sf
+l2sh
+l5sig
+l5sik
+l6s5ill
+l4sim
+l5simu
+l4s3inn
+ls5jakk
+l5sjef
+ls3jeg
+ls3jen
+8lsk.
+ls5kabi
+l4s5kan
+ls5kari
+lsk5art
+l6s5ke
+lskif5
+l2s3kild
+lskinn6
+lskinns5
+ls1kjed
+ls3kjo
+l6skl
+lsk3læ
+ls3koa
+ls5kor
+ls3kov
+l4skra
+ls8ks
+lsk5un
+ls7kva
+ls3kvi
+l4skå
+ls3kåp
+lskå6pa
+l2sl
+lsla4ga
+l7slagn
+lsle6ge.
+ls5lo
+l5s4luk
+l6s5løs
+l2sm
+l5smør
+lsmå6la
+l2snu
+lsok3
+ls5ond
+lson6de.
+l2s1or
+ls7o6se
+l5sot
+ls1ov
+l2spa
+l9speg
+l5spei
+l9spel
+l5spi
+l4spr
+l5spred
+ls3pri
+l8s7s
+l4s3tak
+l4s3tal
+l6stank
+l6ste.
+ls4ted
+l4steg
+l3ste4i
+ls4tel
+ls5terr
+ls6ti.
+ls4tie
+ls6ton
+ls5tren
+l9stri
+l2su
+l5sub
+l3suk
+ls1un
+l2s1v
+ls7vea
+ls5vee
+lsve8en.
+l6s5vek
+lsve7re
+l4svik
+ls6vind
+l4sør
+l2s1øy
+l2s1å
+2l1t
+l4taa
+l4taf
+lt3akt
+l3tal
+lta4la.
+l4t3alb
+lta6lev
+lt3anl
+lta6no
+lt3art
+lta4st
+lta8tes
+lta4t3o
+ltat3r
+lt3avk
+l5tavæ
+lt9b
+l3tede
+l4teka
+lte6ma.
+lt4en.
+l4t5enh
+lt3epi
+l4teras
+l4t5erst
+ltesa8me.
+ltid6s
+l4tiet
+l2tif
+lti6g5
+l2tik
+l4tina
+lt3ind
+lt9inn
+lt3ins
+l4tivi
+l2t1ja
+ltle8ge.
+lt9n
+lto9ar
+l3tog
+lto4s
+lt3ost
+lt2r
+l3tra
+lt3reg
+lt3rei
+l6treko
+l6t5rel
+l6t7rem
+l4trens
+lt3res
+l5t4rest
+l5trev
+l4t5rit
+lt3rol
+lt3rom
+ltro8pa
+l5tros
+l4t5rød
+l5trå
+lt1s2
+ltsa8me.
+lt5s4i
+lt7s6t
+lt2s3v
+lts4vi
+lt7t8
+lt3und
+ltu4ra
+ltur5e6
+ltu5r6en
+ltu5r6er
+ltur5s6
+ltur5å6
+l2tut
+l5tv.
+ltva8la
+l3tvs
+l4t5w
+l3ty
+lty8d
+lt7øl
+lt3øv
+lua8r
+2lub
+lub6band
+lu6bri
+lu5c
+lu7ere
+1luf
+3lugar
+lu7go
+lui6
+luid6er
+1luj
+4luk.
+lu4ka.
+4luket
+luk6keri
+lu3kr
+5l6ukt
+4luly
+l4um
+lu6mel
+lu2mo
+lum6sk
+lu4mø
+lun5d4r
+lu4ne.
+lun4gel
+l7u2ni
+lun5ne
+3lunsj
+4lunt
+lu6o
+lup4s
+lu2p3u
+lur2e
+6lurei
+lu5ren
+lu5ri
+6l5urn
+lur8na
+lur8ne.
+lur8ta
+1lus.
+lusa5
+lu7sak
+lu6sel
+lush7e
+lu2s5k
+lus4o5
+lus4sid
+lus4s3t
+lus1t
+lus2t3r
+luta3
+lu3ta.
+lu7tet
+6lutf
+4lutg
+luth
+3lu5t6he
+lutla9
+lut6m
+lu1to
+lu4t5r
+2luts
+lut4tal
+lut4tap
+lut4t5at
+6lutv
+1luv
+lu4va
+lu4ve.
+lu9ven
+lu9ver
+8lv
+l1va
+l4va.
+lva6k
+l4vakti
+lva6la
+l4va4m
+l4vana
+lv8and
+l7var.
+lv7asa
+l4v5ass
+lve3d4a
+lve5i6s
+l4vela
+l4vele
+lv4en
+lve9ne
+l9ver.
+lve9rau
+l4veru
+l4vesk
+lve5sl
+l7v6et.
+lve5str
+l9vé
+l1vi
+lvi8ene
+lvi9er
+lvi6ka.
+lv9im
+lvin5g6r
+lv3iro
+lv1j
+lvly8se.
+l6v3n
+lv1of
+lv9op
+lvo8re.
+lvor4s
+lv5o4v
+l6v5p
+lvra8r
+lv9ri
+lv1s2
+lv5se
+lv7s6k
+lvs6l
+lv9ta
+l5vøe
+lv1å
+l3våg
+lvå4p4
+lvå6r
+l5w
+ly1a
+2lyb
+ly4d7r
+ly5e
+lyes3
+ly4gel
+ly5g6l
+ly8is
+2lykj
+lyk6keri
+ly5ku
+ly7kv
+6lykø
+ly5l
+ly5me
+2lymp
+ly2n3a
+ly4ne.
+ly4n5il
+lyn3s2
+2lyo
+ly5ok
+ly3pe
+ly1r8
+ly8ra.
+ly6re.
+6l7yrk
+ly4sa.
+ly4s5a4k
+lyse6te.
+lysk4
+lys3kj
+lys9kl
+ly2s1l
+4lysp
+lyst9ra
+6lysy
+ly8ta.
+4lytek
+ly4teri
+lyte5s
+l5y4tin
+ly1tr
+ly3ve
+l3z
+l6z5b
+1læ1
+6læd
+læ6ra.
+læ5rar
+lær4arm
+læ4re.
+lære3i
+læ3rer
+læ4re3s
+læ5res.
+lær6sv
+læ6ta
+1lø
+lø3de.
+lø4del
+lø5dem
+lø4er
+løk5kj
+4l1økn
+2løko
+lø4k5r
+l5ø6l
+lø9me
+lø2na
+løns5t
+løp6s5
+5l4ørd
+lør5k6
+lør5n
+4l5ørr
+5løs.
+lø2sa
+lø5san
+lø5ser
+løs3k
+løs3s
+2løt
+lø9ta.
+lø3te.
+lø4teg
+løva9r
+6l7øv8d
+lø4ve.
+lø3ver
+lø5ves
+6løy.
+4løya
+2løyd
+4løye
+løy8ed
+løy5el
+2løyf
+løy4g
+løyg5e
+4løym
+6l5øys.
+løy5ter
+lå6gal
+lå6gre
+lågs4
+lå4gå
+2låi
+lå1k4
+lå6ke.
+lå9me
+lå2m5o
+lå2n
+6l5ånd
+lån2s1
+2låp
+l1åp9n
+2lår
+lå8ra.
+lå9rar
+lå5ras
+lå3rin
+lå1ru
+lå6sa.
+lå1sk
+lå6sko
+lå4s5l
+lå4ste
+lås7ten
+lås5ter
+lå5su
+lå3te.
+lå4teg
+lå4tek
+lå8ti.
+4lått
+lå4ve.
+1ma
+2maa
+3maa.
+ma3ar
+2mab
+ma5br
+ma3che
+mada5me
+ma4del
+ma3dra
+m6ad9s
+4maef
+4maek
+7maene
+2ma1f
+3mafia
+3mafr
+6mafrå
+ma8ga.
+ma4ged
+ma4gel
+ma4ges
+3magn
+ma2gr
+2mahe
+ma4is
+ma4ja
+2mak.
+ma5kab
+4makad
+ma4kes
+mak7ke
+4makl
+mak6le
+ma4kot
+mak2r
+ma3kre
+mak5ron
+mak4tal
+4m3akti
+mak4to
+makts4t
+ma1ku
+2ma1kv
+ma1la
+ma7leb
+ma6leng
+ma4let
+mali9e8n
+mal5l
+ma4lov
+mals4
+mal4t5ek
+mal3u
+mal3å
+4mamer
+ma3mo
+m4an.
+ma3nak
+m3anal
+6manam
+4manav
+man8ce
+man4dom
+man4don
+ma3ne
+m4anf
+man5g4a
+m6ange
+4mangr
+mania8
+2manl
+m3anle
+4manm
+5m4ann
+man4nem
+manns5l
+ma4no
+2mao
+4mapa
+2mapr
+4marb
+mar5d6
+7mare.
+6mareg
+ma3rei
+ma7rel
+5ma9ren
+ma5res
+3mar4i
+mari8e9ne
+ma3rin
+m4arka
+4markit
+mar4kv
+mar5m
+marmo9ra.
+mar7n
+ma1ro
+ma4ro6p
+mar3s4h
+mar7sl
+mar5te
+ma4ry.
+ma6rå
+4masel
+ma5set
+mash3
+ma4sia
+ma4sik
+ma4sis
+6masju
+mas4ki
+4masko
+4masp
+mas4see
+mas6set
+massø9
+7mast.
+ma5stem
+4masto
+4ma5str
+2masy
+m6at
+ma1ta
+ma5tad
+ma3te
+ma4te.
+ma6ted
+ma4tel
+7maten
+7mater.
+6matera
+7matet
+6m7atfe
+4matil
+7matil.
+ma1to
+ma1tr
+4matra
+ma4t5ras
+ma4t3re
+ma6t7rom
+mat3s2
+mats8l
+mat5ta
+m8at7t8r
+2mau
+mau4k
+mau7l
+ma1un
+5maur
+mau7su
+2mav
+ma6ve.
+ma5ven
+m7avh
+m5avk
+ma4ze
+ma3zo
+2m1b
+m4bao
+mbar3d
+m2bea
+m4beb
+mbe9da
+m4bedø
+m2bef
+m2bek
+m4beli
+m2bem
+m4bena
+m4beo
+m4bereg
+m4bero
+mbet2
+mbi6ar
+m2bib
+m3b4l
+mboe2
+mbo4end
+mbo5er.
+mbo5ere
+mbo5id
+mbo5n
+m4bop
+mbo5re
+mbo9t
+mbu7ar.
+mbu4e
+mbue7re
+mbus5
+m1c
+m6co
+2m1d2
+m3de
+md7om
+1me
+2mea2
+me5al
+mea5m
+2meb
+2mec
+meck4
+4medat
+2medb
+5mede.
+me4ded
+med5ei
+me7den
+me7det
+4medf
+me3di
+4medik
+4medir
+2medm
+me6dok
+4medom
+2medr
+me6dret
+med1s4
+4medu
+me6dun
+me5d4us
+med5v
+7medve
+2medy
+4medå
+me7e
+2meef
+6meek
+2meel
+4mees
+4meev
+2mef
+m3eff
+6me2ga
+me7gal
+2megr
+2megu
+4meh
+mei2e
+meie5n
+m1eig
+me3ild
+me3ind
+mei5ni
+me7isk
+4meiso
+2mej
+4meki
+4mekj
+2mekk
+me2k1l
+me3kn
+4meko
+2me5k8r
+4meks
+mek5t
+6mekte
+m2el
+4mela
+me5l4aks
+5melane
+5melar
+me3le
+me4le.
+4meled
+4melei
+4melek
+6m5e6lem
+me4l5eng
+4melik
+4melis
+4melit
+4meliv
+mel5le
+mello6m3
+4melok
+4melov
+mel4si
+mel2s3j
+melsk4
+mel5s4t
+mel7tr
+me1lu
+mel5v
+melvi6
+2mely
+2melæ
+4melø
+4me5l4å5
+2mem
+me6mo.
+4m5enga
+men5k
+menle6ge.
+m6enn
+men4ny
+me4nom
+me4nor
+men4si
+men3sm
+men5spl
+men5te
+men6tek
+men4tom
+men5tr
+me4nyt
+2me3o
+me6os
+2mep
+5mer.
+me6rab
+4merad
+me4ra5l
+me4r5ant
+mer5di
+4mered
+4mereg
+4merei
+4merek
+4merel
+me6rense
+me3res
+4meress
+mere6t
+m4eri
+4me5rib
+meri5ke
+5merin
+merle7g
+mer9n
+mer5os
+5mers
+mer5sk
+me3run
+mer5und
+4merus
+2mery
+me2r3ø
+2merå
+me4råk
+5mes.
+2me5sa
+4me5s4h
+2mesj
+2me1sk
+mes5ke
+2me1sl
+mes6le
+4me3so
+2mesp
+5mess
+7mest.
+4mesta
+5meste.
+mes4ti
+6me7sto
+mest3r
+me5stro
+6mestrø
+4mestrå
+4mestu
+4mesu
+2mesy
+2mesø
+4metab
+4me9tap
+me4tar
+me3te
+4meteg
+4metei
+4metek
+4metel
+4metep
+4metil
+2metj
+4meton
+me4t3ra
+me4tre
+met5ren
+met7rer
+met5res
+met5rik
+me4tru
+4metræ
+2metu
+4metv
+2mety
+2metø
+4metå
+2meu4
+7m4eu3s
+2mev
+meva8n
+2meø
+2meå
+2mé
+2m1f
+mfa9ra
+mfar8ta
+mfav5
+m2fek
+m6f3ess
+m4fi.
+m4fibr
+m2fit
+m5fru5s6
+m5funn8s5
+mfu6se.
+2m5g6
+m4ga.
+m4gi.
+mgå8va
+mgå8ve.
+2m1h
+mhea4
+m4hu.
+1mi
+mi1a
+5mi6al
+mia2n
+9miane
+7miar.
+2miav
+mi6c
+miche6l
+8m9idé
+2midi
+mid5j
+mid3s4
+mid4t
+4mi3ele
+mi3er.
+mie9s8
+2mi5f
+5migraf
+2mih
+2mii
+4mij
+mik6h
+4mikj
+2miko
+mik5ro.
+mik5ron
+mik5sa
+6miku
+mi4la.
+mile6t
+mil7eti
+mi4lev
+mi7li
+4milin
+mil6s5v
+4milæ
+2mim
+mi8ma.
+5mimo
+m7imp
+mi4na.
+mi5nar
+mi4ne.
+mi4n5ers
+4m3innh
+4m3inns
+6minnt
+min2s
+min3sp
+mins4t
+mi3nu
+m4inv
+mi4n5y
+mi7ov
+2mip
+4misa
+mi4san
+mi3se
+4misek
+4misel
+9misé
+misha9ge
+4mi7si
+mi2sk
+mis4ko
+mi3s4la
+mis9le
+7mism
+mis4s5k
+mis4s7p
+mista9k
+5mis7te
+mis4tra
+4mistu
+2misy
+4miså
+6mita
+mi3te
+4mitj
+4mito
+2mit6r
+mitt3s
+mi5ur
+2miv
+mi5vå
+m6ja.
+m6jan
+m5jar.
+m7jarn
+2mje
+m7je.
+m1ji
+m8jingan
+m8jingar
+8mjo
+mju7ke
+1mjø
+mjøs5t
+2m3k2
+m4ko.
+mkro5
+mku6le.
+mkå8pa
+4m3l
+m7la
+mla6ga
+m2lef
+mlei5er.
+m2lek
+m2lel
+m2lem
+m4lera
+mle6se.
+m4lesk
+m6le5s8v
+m4leta
+mle4ve.
+ml6i
+ml5ja
+mly6se.
+mlø6pe.
+mløy3
+2m1m4
+m6mai
+mma5kl
+mmal5
+mma8le.
+m4mam
+mmando5
+mman6dol
+m5mar
+mmar7in
+mmar7o
+mmatik7ka
+m4medø
+m2meg
+m2mei
+m2me3k2
+m4melu
+m6meni
+m4menu
+mmer5t
+mme4run
+m2me1s
+mmest6
+m5met.
+m4meta
+m4meti
+m4metra
+mme5t6re
+mme3u
+m3mé
+m4mia
+m7mian
+m2mib
+m4mid
+mmie6n
+m2mik
+mmi5sk
+mmi5so
+mmi3st
+mm5n
+m3mu
+mmø2
+mmå8la.
+2m1n
+m2nee
+mn7eid
+m2ne9l
+mne4ra
+m5nese
+m4nesk
+m4nesta
+mnes9tie
+m9net.
+m4nete
+m2nev
+m6nip
+mn7sk
+1mo
+3moa
+mo2ar
+4moba
+5mode
+mo3dem
+mo5di
+mo6di.
+2mody
+3moe
+mo4en.
+m1off
+mofo6bi.
+mo6gi
+5mogl
+mo5go
+m5ogs
+4moh
+2moka
+mo8ka.
+mo8ke
+mo1ki
+mo6la.
+mo3le
+mo4le.
+mo7le6s
+4molt
+mo3ly
+m5om.
+4momf
+2momr
+mom4s5ø
+mo5ne
+mo4nisa
+mo2no
+mon1s
+mon4ste
+mon5t6
+2mop
+5mo1ra
+mo4ra.
+mo4rar
+mo7rar.
+mor5d6e
+4mordl
+mor6d5r
+mo3re
+mores7
+m2ori
+mo4ri.
+mo6rid
+4m3o4rie
+mor4kl
+morla8ga
+mo5rok
+mo4rom
+mor4si
+mor4skj
+mor7sky
+mor4sp
+mo1rø
+mo9sen
+mo2s7k
+mos4o
+6mostab
+4motap
+mo4te.
+mo6te6g6e
+mo4tei
+mote7kl
+mo5ter.
+mo4tes
+mo5to
+4motr
+mot7re
+mot1s2
+6motsagd
+motsva5
+mot7t
+mour5
+3mo3va
+mo5w
+8m1p
+m4pana
+m4p5anta
+m4pee
+m4pelot
+m6pena
+m6pep
+mpera8te.
+mpe5res
+m6peress
+m4p5erfa
+mperi6e7n
+mpes2
+mpes6te
+mpe4sti
+m5pett
+m2pe5u
+mp3id
+m4pinje
+m8pla.
+m3p4lan
+mp5le.
+m6p5lin
+m6p5n
+m6p5ob
+mpoe4
+m4poeta
+m4pog
+m6pok
+m2pop
+mp3opp
+mp1p8
+mp3rad
+mp5ret
+mp3rop
+mpro8pa
+mp1s
+mp3sek
+mps4p
+mp5s6t
+mpun6ge.
+m9pur
+mp5ut.
+mp5ys
+mpø5
+m9på.
+m3q
+2m1r6
+mro8sa.
+mro6se.
+mru7te.
+mrø9de
+m9rår
+6ms
+m5sa.
+ms1ak
+ms5ant
+m1sc
+mse5lu
+m9s6ei
+m4sem
+m4s3eng
+ms5e4pl
+m4serv
+mse5s
+m5s6etn
+mse6t7jare
+mse8t9jas
+msi6e
+ms4ing
+ms3inn
+m4s5ja
+ms5kab
+mska9k
+ms6kin
+msk5ing
+ms3kor
+msk8u
+ms3lan
+ms6lega
+ms9lua
+ms3lue
+ms4ly
+m2sm
+m1s2n
+ms9ne
+ms5no
+ms3næ
+m1so
+m4soms
+ms3ori
+ms1ov
+ms3s2
+m4s3tal
+m8s7te.
+ms7tea
+ms2ti
+ms5tilb
+ms3tim
+m1sto
+m4s5top
+m5s6topp
+mst5ord
+m8strand
+m5strane
+mst5red
+ms5tref
+mst5ren
+ms5trik
+ms4tru
+ms3unn
+msu9ta
+msu7ten
+ms1v
+msva9ra
+msva5re
+m3s4vet
+ms3ynd
+msø4ke.
+m4s5ør
+ms1øy
+ms1å
+2m1t
+m3ta
+mt4b
+mtbe6
+m2tee
+m2teg
+mteks7
+m6te7kv
+m4tel
+m6testu
+mti9a
+m9tida
+mti5e
+m6tien.
+m6tif
+m2tik
+m6tini
+m4tiø
+mtiør6
+m5to
+mt4r
+mt6ve
+mt4vin
+mtå5
+1mu
+mu6a
+m1u2b
+mu2e
+mu3el
+mue7r
+mues1
+2mug
+mug5l
+mu4he
+mu2k
+8m9uka
+4m1uke
+mu5la
+mu4leg
+mule6s
+mull2
+mull6s7
+mul6tiv
+4muly
+7mum
+mu3mi
+mum2s
+mun2c
+munes6
+4mung
+mun6ge.
+6m5univ
+mun3k
+munn5s6
+mun4t3r
+mu6ra.
+mu4re.
+2murn
+murs4
+6murt
+m2us
+mu4se.
+mu4ses4
+mu4sé
+mu2s3k
+muske6l5a
+must4
+mus5tan
+2mut
+3mu1ta
+mu8ta.
+mutsa8la
+mut7t6r
+2m1v
+mvak5t
+mva6la
+mvari6
+mveg5s4
+mvi7e6
+mvi6se.
+2mw
+1my
+my5a
+myg4ga
+my3ke
+myk4kes
+myk3l
+my8kr
+my2ra
+my9ran
+my9rar
+my1re
+my4re.
+4myrk
+m5yrke
+my4r5u
+mys3
+my6sa
+my4se.
+my4so
+my4te.
+mytt6s5
+5mæ
+mæ6la.
+1mø
+møb3l
+mø7des
+mø6e
+mø9ens
+møkk6a
+m3økn
+2møko
+mø6na
+mø4ne.
+møne9s
+mø8nest
+6m5ønsk
+mø2o
+3mørke
+mør4k5r
+mør5sm
+mør3ø
+mø5se
+7møt
+mø9tas
+mø4tere
+møt9t
+2møy
+møy9ar
+m5øys.
+1må
+2må.
+må5a
+6måenh
+må7g2
+må1k
+må4ka.
+må4ke.
+må4kes
+m6ål
+må5lar
+må4le.
+må6led
+måle3i
+målø6pe.
+må4ne5s6
+må9nese
+må8pa.
+må4pe.
+må7pl
+2mår
+måra6r
+må1re
+må1ro
+må1ru
+må1s4
+må6tak
+6måtf
+må5tr
+må3tø
+1na
+na6ans
+2nabo
+7na7bortr
+na6bot
+4naby
+na4ded
+na8dem
+nadi4
+n3adop
+nad2s1
+4nadv
+8naf
+n1aff
+nafo7r
+na3fr
+naf7t
+na8ga.
+na3ge
+4nagen
+nag3s4
+nagså5
+na7gø
+6nah
+4nair
+2nak
+n6akk
+nak7ka
+nak6ko
+5nakl
+na1kr
+n1aks
+nak8sa
+nak8se.
+8n1akt
+nak6ta.
+na7kv
+na9lag
+na6lare
+6nalarv
+na7leg
+na4l3ei
+na4lek
+nal5epo
+na4les
+na4l5ett
+na4lev
+nal5g
+nal6ge.
+na4lil
+nal6lag
+nal4løp
+nal3op
+nal5s2
+nal3t
+na3lur
+2naly
+na2l5ø
+4nalå
+na3lå5r
+5nam.
+na7mere
+na5mes
+na5mo9
+5nams
+2namø
+9nan.
+4nana
+n3anal
+n6ane
+nanfø8
+4n5angr
+nan5k
+nan6ke.
+4n3anl
+6n5anle
+nan4ne
+na4n5o
+n4n5ans
+nan4sin
+nan4skj
+nan4s5t
+4nany
+na7o
+na5pe
+nape4s
+nap3s4
+n4ar.
+na4rap
+2narb
+nar5dr
+4narea
+nar7ei
+4na5rek
+nari4e5n
+7nariksk
+4narkiv
+6n5armé
+6n5arme
+nar8ma.
+nar5s
+nar8ste
+2nart
+nar6ta.
+nar5ti
+nar7v
+nar5ø
+nasa3r
+na4sas
+nas7h
+8nasik
+na4ski
+na2s5t4
+nasta5
+8nasu
+na1ta
+nate8k
+na7tem
+4natl
+4natom
+natori5e6
+nat8ra
+nat3sp
+nat6tak
+nat6tea
+naty5
+2nauk
+naus6p
+na6va.
+4navd
+6navf
+2navg
+2n3avh
+na1vi
+4n5avk
+4navl
+nav4les
+3navn
+6navo
+4navr
+n1avs
+4navt
+4n1b2
+n5ba2
+nba3d
+nba9ser
+nben4s
+nbo5et
+n6buf
+n6butr
+nbyr5
+nbø9le
+nbø6n
+n1c
+n5ca
+ncel5
+n3che
+nch3ei
+n6cot
+n2cy1
+6nd
+n7daa.
+n6dabi
+n4dad
+nda5f
+n7dag4
+ndags5
+n4daks
+n3dal
+n4dalf
+n4d5all
+ndals3
+n4dark
+n6d3art
+n8dask
+nda5tal
+nd5d4
+n3de.
+nde5a
+n2deb
+n2ded
+n5defi
+nd1ei
+nd4ein
+nd6ek
+n4dekl
+n4deko
+n5d4e5l
+nde4le.
+n4delik
+ndel4sk
+ndel4st
+n2dem
+n5dem.
+nde5mo
+n5den.
+n6dener
+n5dens
+n2de5o2
+n2dep
+n4derab
+n4deras
+n4derei
+n4derim
+nd6erk
+nderla6ga
+n4desi
+n4dest
+n4desu
+n1dé
+ndi4en
+n4d3int
+ndi6sk
+nditori5
+nditorie6
+ndit4t5a
+nd3jer
+nd1ju
+nd5k
+nd4lem
+nd4lese
+nd4lest
+nd4lev
+ndo9a
+n6dob
+n6d5okk
+nd4om4s3
+n2doo
+nd1op
+n2dor
+nd3org
+nd5orm
+n6dote
+nd5rae
+n4d3ram
+nd3ran
+nd6rek
+ndre4ra
+nd5resen
+nd5rett
+nd1ri
+n1dro
+nd4sag
+nds3ak
+nd4s5amb
+nds5elv
+nds5ende
+nd4ser
+nd4sje
+nd4skj
+nds7kul
+ndsla6ga
+nds6lett
+nd7spu
+nd3s4te
+nds9teg
+nds5trek
+nd5stry
+ndta6ka.
+n6duf
+ndu3is
+n4dun
+nd3ung
+ndun6ge.
+n2dup
+ndu6si
+ndus7k
+nd7v
+n2dyg
+ndy1k
+n2dys
+ndy5sp
+ndø5l
+n2d1øy
+1ne
+2nea
+5neae
+nea4g
+ne7a6le
+ne5alp
+ne5als
+nea9m
+ne9a8r9an
+nea9ren
+ne1as
+6ne7av
+2neb
+3nebb
+4nebe
+ne4ble
+neck5
+2neda
+3nedal
+ned3d
+6n5eddik
+4nedeb
+4nedeg
+4nedel
+5nedg
+ne4di.
+nedi4s
+2nedo
+ned5over7
+ned1r
+ne6dre
+5neds
+ned3st
+6nedu
+4nedø
+ne5dår
+4neeg
+4neei
+2neek
+5ne4e4r5
+2nef
+n1eff
+n5eft
+2neg
+5negati
+ne3gla
+neg5lesp
+neg8r
+6negru
+6neh
+2nei
+n2eid
+nei8dan
+n5eig
+n2e1in
+n3eini
+5neir
+2nej
+2nek
+ne4ka.
+6nek2l
+ne3kn
+nek2r
+nek5rin
+n7ekser
+nek5t
+4nela
+nel3de
+4neled
+6nelegg
+7neleggj
+4nelei
+nelei5er
+4n3elem
+6nelê
+4nelid
+4neliga
+4nelis
+4nelit
+4neliv
+nel4lov
+nel7s
+2ne1lu
+4nely
+2nelæ
+2nelø
+nelø8pa
+4nelås
+2nema
+4n3emb
+4nemel
+4nemer
+6nemes
+2nemi
+nemie8
+6nemj
+nem6k
+5nemn
+nem5ne.
+nem7nel
+2nemo
+2nemu
+2nemy
+2nemø
+2nemå
+3nen
+4nena
+nen5at.
+6n5en6den
+6nendr
+nene4
+4nened
+4nenem
+ne3nes
+4nenesl
+4nenet
+nen5eta
+4nenev
+nen4ga.
+4n3enhe
+6nenhet
+4neni
+nen5se
+nent5ei
+6n3en5tr
+4nenu
+4neny
+4nenæ
+2neo
+5neo.
+ne5o4r
+7neos
+2nep
+ne5pe
+3n4er.
+4nerad
+6nerap
+3nerb
+4nerea
+4nered
+nere6de.
+4neref
+4nereg
+4nerek
+4nerent
+4nerep
+ne5res
+4neress
+4neresu
+4neret
+4nerev
+4nerfar
+4ner2g
+ner3ga
+ner3ge
+4ne3rib
+4nerik
+4nerit
+ne4ri9v
+5nerl
+nerla8ga
+n3erob
+6neroc
+ne7rof
+ne5rok
+4nerom
+ne5rot
+ne1r4ov
+n6ers.
+ner7se
+ner5s4i
+ners4p
+ners8ten
+4ne3rul
+ner5un
+2nery
+3neryr
+4nerør
+2nerå
+2nesa
+ne4sa.
+5nesar
+4nesc
+4nese
+6nesek
+nes6er
+5nesets
+nes5eva
+ne3si
+nes5ind
+4nesit
+2ne5sj
+ne5skam
+4ne5skar
+nesk4e
+4neski
+5neskins
+4neskj
+4ne5sko
+4neskr
+6nesku
+2nesl
+ne3sli
+ne7slø
+nes6mi
+6nesn
+ne7snø
+2neso
+3nesot
+2nesp
+nes6sam
+nes4stu
+5nest.
+4nestas
+nes9tas.
+nes9te.
+4nesto
+nes5tor
+4ne3str
+4nestu
+4nestø
+2nesu
+2ne1sv
+nes8va
+6nesy
+4nesæ
+5nesøy
+4ne5så
+neså5re
+3net.
+2neta
+4netaks
+neta6le.
+ne3te
+5nete.
+4ne3ti
+6netid
+2netj
+2ne5to
+6netom
+2net4r
+3nets
+net5s4p
+nett3a4
+net6tel
+2netu
+ne4tv
+4nety
+4netå
+netå5ker
+2neu
+neu1r
+ne5us
+ne6va.
+ne4ve.
+6ne8vent
+5nevik
+nevi8sa
+3nevn
+nev1r
+ne4y5t
+2neø
+4neå
+1né
+4néb
+4néd
+2néf
+6néh
+2nél
+4ném
+6néo
+2nép
+5nér
+4név
+4néå
+4n1f
+nfall4
+nfalls5
+nfan5t
+n6foa
+n4fob
+n4fole
+n4fom
+n4fora
+nfor9en.
+nfos4
+nfø5des
+nføy8ed
+6ng
+n8g8ad
+n4gaf
+n6gag
+ng1ak
+ng5and.
+n8gan8da
+ng3ank
+n4g5arm
+n4gart
+ng5art.
+n5garta
+ngar5u
+n2gat
+ng5ato
+nga4ve.
+ng7avi
+ngd4
+ng4ded
+ng4del
+ng4dep
+ng3dr
+n4geda
+n4gela
+n3gen
+n4gena
+n7gene
+n4g3eng
+n6geno
+n4genu
+n3ger
+n4geret
+nge5run
+n2ges
+nge3sl
+n4geta
+n2ge7v
+ngfø4
+ng5g2
+ng5id
+ngjen5g
+ng1l
+n5glem
+ng4lu
+ng7n
+ngo4d
+ng5odd
+n7goe
+n3g4ok
+n8g7o8m
+ng9ome
+ng5ond
+ng7o6pe
+n2gor
+ng5ord
+ng3ork
+ngos6p
+n2got
+ng3ra.
+n5grad.
+ng5rand
+ng7rea
+ng3reg
+ng3ren
+n4grend
+n4grer
+ng5rest
+ng3ret
+ng3rev
+ng3rid
+ng3rin
+ng7ro.
+ng9roa
+ng7roe
+n5g6ros5
+ng3råd
+ng8sa.
+ngs5elv
+ng4sem
+ng4ses
+ng2sj
+ng2sk
+ng6skj
+ngs7leg
+ng5sløy
+ngsmå6la.
+ngs3ne
+ngs7tep
+ngst5rid
+ngstyr8ke.
+ngs9tør
+ng3und
+ngu5ru.
+ngvi4s
+ng5ye
+n1gø
+n2g1øy
+ngå8va
+ngå8ve.
+4n1h2
+nhat5
+nhet4s
+1ni
+ni1ak
+ni1a2n
+nian5dep
+ni2bl
+4niby
+4nibå
+4nicr
+n8ida
+ni4del
+ni7dele
+n5idé
+ni6do
+nid7r
+nids4
+nid5st
+4nieg
+ni1el
+7ni3e2n
+ni3er.
+nie5ri
+ni7ers
+ni5ert
+4n3i4fr
+ni5gla
+ni9glo
+2nih
+8nij
+ni3ke
+2nikj
+4ni5ko
+2nikr
+4nikv
+ni5l4i
+5nilu
+4nimar
+4nimas
+4nimo
+2nimp
+ni6n7al
+2n1ind
+4ninf
+ning3o
+nin5gr
+ning6s5
+ningse4
+nings5te
+2n1inj
+n1inn
+4ninnb
+4ninnh
+4ninns
+4ninnt
+2n1ins
+2n1int
+2ninv
+5nio.
+nion2
+nions3
+4niop
+7nios
+4ni5ov
+ni4pet
+ni9pet.
+ni9pets
+ni2pl
+nip3li
+nip5si
+4nir
+nir7kel
+4nisem
+ni5set
+nis5im
+4ni3skj
+nis4k3o
+ni9sol
+niso5ne
+niss4
+4nistas
+6nistat
+nis5tik
+4nistil
+ni3str
+4nisty
+4nistø
+6nisu
+6nisy
+n4it
+ni3ted
+6nitj
+ni4tog
+ni4tos
+nitt4r
+nitt4s3
+nitt6sk
+4nitu
+ni3ty
+nit5z
+nitær6e
+2niub
+ni4umf
+2niut
+4niva
+2nive
+niv5ei8
+4n5ivo
+niv3s2
+6niå
+4n1j
+n6jah
+njav9
+n2jed
+n5jede.
+n4jee
+n6jei
+n2je1s
+n3jes.
+n2jet
+n3jet.
+njet6r
+n5jett
+2nk
+n1ka
+n2kak
+nk3aks
+nkal5l
+n2kau
+n4kedo
+n4keer
+n4keh
+nk5eie
+nkel5s
+nkelt3
+n4k5enh
+n8keno
+n4k5erfa
+nker4st
+n4ke1s4
+n6ketø
+n1ki
+n4kid
+n4kie
+nk3ier
+nk5ind
+nk7inf
+nk3inn
+nk7int
+n5kj
+nk1k4
+n1kla
+n5k6lang
+n7k4lis
+nk3lok
+n1klu
+nk3ly
+n3klæ
+nk1lå
+n1knu
+n1kny
+n3ko
+n4kof
+nkofi8
+nk5oks
+nko5le
+nkol4la
+n6kot
+n6kov
+n1kr
+n3krav
+nk1s2
+nk4tak
+nk6tal
+nk4tin
+nkt3sk
+n1ku
+nku4le.
+nkuri9
+nkurie8
+n4ku6t
+nk9ute
+n1kv
+nk3ve
+n7kvit
+n6kvo
+n9ky
+n1kø
+n1kå
+nkå6pa
+4n1l
+nland9a
+nland6se
+n5le
+nlei7er.
+nle8ma.
+nli4en.
+n3lj
+nlu4e
+nly6de.
+nly6di
+nly4se.
+nlø6pa.
+n7lå
+4n3m
+nma4le.
+nmik3
+nmi8l
+nmini6
+nmo6se.
+nmusik7k
+nmå6la.
+4nn
+n2nad
+nn5ad.
+nn9aft
+nn5air
+n6n1ak
+n4nala
+nn5alg
+n4name
+nn4an
+nn5ana
+n9nane
+nna8ni
+n4n5ank
+n5nanl
+n6n7anta
+n9nar.
+n4nari
+n6nasi
+n4nask
+n2nat
+n2nav
+nn3avl
+nnbo9e
+nnbu9e
+nn5d2
+nndø4
+nndør3
+n5nea.
+n5neap
+n5nebar
+nnebe8r
+n5nebu
+n4nedi
+n2nee
+n6nef
+nn1ei
+n3neke
+n4nelo
+n3n4en
+nne6nat
+nne4n3o
+n9ner.
+n4nerel
+n4nero
+n7nes.
+n6nesj
+n5nes4la
+n4ne3st
+n5n6et.
+n4nesø
+n4nete
+n2nev
+n2ney
+nn3g2
+nnhø8re.
+n4nid
+nn3ide
+nni3e
+n2nim
+nn7inf
+n5nis
+nni4sj
+nni4s3t6
+nn7k2
+nnle6ge.
+nnlø6pe.
+n4no.
+nn5of
+nno2m1
+nn6oms
+nnomsy8na
+nn1op
+n2n1o4r
+nn7ord
+n4n3o4ve
+nn9r
+nnsa9ka
+nn4s5amb
+nns5and
+nns3ar
+nn5seg
+nnsei8g
+nn4s3em
+nn6s5enk
+nn4s3es
+nnse6te.
+nnsi7da
+nn4s3in
+nn4s5i6s
+nn6s5jak
+nns5kan
+nn5s4kli
+nns5op
+nns3or
+nnst6
+nn6s5tab
+nns5tal
+nns5telt
+nns4ten
+nns5tep
+nns7tin
+nns5top
+nn6s5tre
+nns5tro
+nns3tv
+nn4s5ul
+nns3va
+nn6s5vo
+nnsy8na
+nn2sø
+nns3øk
+nn3så5r
+nn7t4
+nnte6se.
+nnto9ga
+nnu1i
+nn6ung
+nn1ut
+nnvi4s
+nn1yn
+nny4t
+nn7øk
+nn1øv
+nn1å
+1no
+noa4g
+no1ak
+5noane
+no7ar.
+2nob
+nobe4l
+no4bl
+nob5le
+no3b4r
+no5co
+nodi4e5n
+3noe
+4noef
+4noei
+4noek
+4noent
+2nof
+n1off
+3no3ft
+n6ogra
+no5id
+no3in
+2nok
+no1ki
+nok8r
+nok6se.
+n3oksi
+no9le
+2nolj
+no6mid
+no6mik
+no4mil
+4nomj
+nom9m
+nom7s2
+5nomy
+non1s4
+non5t
+2noo
+2nop
+n1opp
+no1r4a
+no5ran
+no5rar
+no5ras
+nor4da
+nor6d5end
+4nordn
+nor4d5r
+nord3s4
+nor4dø
+no9ree
+no3rek
+no3ren
+no7ret
+nor5g
+3norge
+norges5
+n3o4rie
+7norit
+4nork
+nor6kla
+nor6kle
+n4orm
+normlø7se
+nor2s
+nors6ka.
+no3ræ
+no4sel
+no4ses
+nose8te.
+4nosp
+no3stj
+nostra4
+2nosy
+no4ta.
+no4te.
+note5i
+5notek
+no4tel
+no4tes
+not3s
+4noty
+4nou
+no1v
+no3ve
+4no5vi
+4n5ovn
+7nó
+6n3p2
+n5pe
+npo8ta
+n4påk
+n3q
+2n1r2
+n9ra
+nra8na
+nra8sa
+n3re
+n4reb
+nrei7e
+n6renem
+n6reo
+n6ri.
+nro6de.
+nro6t
+nry6
+nrå8da
+6ns
+n1sa.
+ns1a4d
+n5sag
+n5sakk
+n5sa4kr
+ns3aks
+nsak6se.
+6n5akti
+ns5akv
+n3sala
+ns3ald
+n6s5alp
+n5sane
+n4sanf
+n5s6ann
+n5sanse
+ns5ansi
+ns5ant
+n5saren.
+ns6arm
+n6sart
+n4sati
+n1sch
+n3sco
+nse9a8l
+n2sed
+ns5edd
+ns8ede
+n2see
+nse5ei
+nse6er
+n6sef
+n2seg
+ns5ege
+nsei6d
+ns5eie.
+ns9eig
+n4seks
+n4s3elv
+n2sem
+n5sen.
+n5sene.
+n4sener
+n9senes
+n4senet
+n4seni
+n7sens
+n3ser.
+n4sera
+nseri7e6
+n4sesa
+n4sesi
+n4se3sk
+nse3sl
+n4ses4p
+n4sest
+n6sesu
+n4se3s4v
+n4sete
+n9sets
+n2seu
+ns5fr
+n2sh
+ns3ha
+ns7he
+ns5hi
+nsi5de.
+nsi4ent
+nsi6er.
+nsin5d
+n3s4ing
+ns3inn
+n4sinte
+nsi8ra
+nsis7k
+ns3jak
+n4sjav
+n5sjef
+n6s5jord
+n4skan
+n6s5kauk
+ns7kele
+ns4kete
+n9skim
+ns5kir
+n5skis
+n6skja
+n6skjele
+ns5kjen
+n3skjæ
+nskog6s
+ns5kor
+ns3kro
+nsku9et
+n4skug
+ns5kuli
+n5skum
+ns1kv
+n5s6ky.
+n5s4kye
+n5skyss
+n5slang
+n7slarar
+ns5las
+nsle6ge.
+n3s4lekt
+ns6leri
+ns5lid
+n5slyn
+n1slå
+ns3mi
+n4smal
+n4s5mo
+n4smur
+n4smus
+nsmå6la.
+n5s4nar
+ns5nes
+nso4d
+ns1of
+n3s2ok
+n1sol
+n4sond
+nson6de.
+nso5ris
+ns1ov
+n3sovn
+nspa9ra
+ns5pels
+n5spet
+ns1pr
+n6spros
+n7spur
+ns7s6
+nsse4e
+nsså5
+ns4ta.
+n4stak
+n4stag
+ns5take
+n3stam
+n4stank
+nst5art
+nstar8ta.
+ns4tau
+n3s6ted
+n3s4tei
+ns4tel
+nste6ma.
+ns5tenk
+n6step
+n5s4tik
+ns5tild
+ns7tilf
+n4s5tils
+ns4tin
+ns4t3i4s
+ns1tj
+n5sto.
+n3stru
+ns7trøy
+n3stue
+n6stuk
+ns5tur
+nst3ut
+n1su
+ns1uk
+n4sung
+ns5vang
+nsva9ra
+n2s3ve
+ns9veg
+ns5verd
+ns5vern
+ns1vi
+n5s4vill
+ns4vind
+ns9vis
+n4svu
+n3s4væ
+nsy4d
+ns1yt
+n5søn
+n4s1øv
+ns5øya
+n5såpe
+nså7pen
+ns7ås.
+6n1t
+n5tab
+n4tagr
+nta4lan
+ntall4
+nta5na.
+n4t5and
+nt3anl
+nt4anv
+nt3app
+n7tart
+n6t5arvi
+nt6as
+nta5sia
+nt4at
+nt3avi
+nt5avr
+nt7avs
+n2tea
+n5teat
+n2tee
+n4tef
+n4tege
+n4tegi
+n7tegn
+n2tei
+nt5eini
+nte5ins
+n5teis
+n4teka
+n7tekn
+n4tekse
+n9teleg
+n5telig
+n5tell
+n4tels
+n9telt
+nte4ma.
+nt3emb
+nte4mis
+n5ten.
+n4te7na
+n5tene.
+n4t3enh
+n5tens
+n2teo
+n5teori
+n5tepp
+nt4er
+n5ter.
+n7terek
+n6terest
+nte6risk
+nteriø7ra.
+n5ters
+n7tes.
+n4tesel
+n4teta
+n4tete
+nt4e3u
+nt5e4va
+nt9g
+nti1a
+n4tiat
+n4tid
+n5tiem
+n4tig
+n4tikap
+n5tiki
+n4tikl
+nti5kli
+n5tile
+nti3lo
+n9time.
+n7times
+n4t3ind
+nti6net
+n6tini
+n2tio
+n2tip
+n4tisa
+n4ti5sti
+nt5l
+nt5n
+nto3a
+n2tob
+nt5omf
+nt5omn
+nt3oms
+n2t1op
+n5tor.
+n5to5re
+n6torg
+n2tou
+nt1ov
+nt6ran
+n4trep
+n5trer
+nt5resi
+ntres9kjare
+n4t3rin
+ntrol6li
+n6trom
+n6trul
+ntrøy4
+nt5skj
+nt5s6la
+nts2t
+nt3t4
+n6t7ub
+ntu9e
+ntu4l
+n2t1u2n
+n4t5uro
+n2t1ut
+ntva8la
+nty6e
+ntyr3s
+nt7år.
+1nu
+4nu.
+nu3an
+nu4av
+nuft4
+nufts5
+2nug
+nug6la
+4nu4h
+nuit8e
+nuk5
+nul9t8
+4nulu
+6nuly
+nu9me
+2n1un
+nun4ge.
+nuo2
+6nup
+nu3pl
+nu4re
+nu5sa.
+nu5sen
+nu7ser
+nus4k5l
+nus7l
+nuss4
+nu6st
+nus3ta
+2nut
+nu7ta
+nu3te.
+nute6r
+nut5eri
+n7utl
+nu6ume
+6n1v
+nva6la
+nvand5
+nverle9
+nves1
+n5vi
+nvi4et
+nvi4ka.
+nvi5ke
+n3vu
+nvæ8ra
+n3w
+1ny
+ny5ar.
+ny9ast
+2nyd
+ny4de.
+4nyef
+4nyg
+ny5ge
+5n6yhe
+ny3ke
+ny3k4le
+4nyko
+ny1lo
+2nyn
+nyn8da.
+nyn4de.
+4nyo
+4nyp
+ny8pa
+ny6ra.
+ny4re.
+ny7rev
+ny4ru
+ny1s
+ny5se
+ny9s6k
+nyst4
+nystu4
+ny3te
+ny3tr
+2nyv
+ny8va.
+ny5vak
+ny8ve.
+4nyø
+n1z
+1næ1
+næ8ra.
+nær9and
+næ8rast.
+1nø
+nø2da
+4nødd
+nødde5
+nød3sk
+nød5sto
+nø9dun
+2nøe
+4nøf
+nø1fl
+nø1fr
+nø7gr
+4nøko
+4nøks
+nø4le.
+nø9mo
+nø5mu
+nø3p4
+nø7ra
+nø6red
+nø1ry
+nø3se
+nø1sk
+nøs4l
+nø7te
+nø7tr
+n6øtt
+nøtt6r
+nøv4d
+nø3ver
+nøy1
+2n1øy.
+nøy8a9n
+n7øyh
+4nøys
+n3øys.
+nå6as
+1nåd
+nå5ded
+nå8en
+nå6et
+nå8j
+n1å2k4
+1nål
+nå2la
+nå5lev
+nå8ma
+nån6de.
+n1å4p
+nåp8na
+n1å6r
+nå2s
+nå5sa
+nåse4
+2oa
+oa5c
+o1af
+oa4k
+oak6kana
+oak4ku
+o1all
+o3alt
+o1a2m
+o3a6n
+o9and
+o1a6p
+oar6d7e
+oar4d5in
+oa4r5e4g
+oa4r5enh
+oa6ré
+oa4r5i
+oar5m
+oa9té
+o1au
+o1a4v
+2o3ba
+obakk8s
+obb4l
+ob4bo
+ob4b5r
+ob4b3u
+ob4e
+o4bea
+ober5et
+ober4s
+obers5ta
+obers5te
+o3bes
+2o3bi
+obi5e6
+1ob1j
+o1b2l
+ob5la.
+ob3le.
+ob3len
+o2b5li
+3oblig
+ob4lo
+o1b4o
+obo9a
+2obr
+ob5rar
+ob1re
+ob1ri
+3obser
+ob5st
+2obu
+2oby
+obyl5
+o5bø
+o3bå
+4oc
+ock5ers
+o5cy
+2o1d
+o6dab
+oda4f
+od7att
+odd5ei
+od4del
+od4dest
+od9do
+od4e
+o2deb
+o6d5ei
+o4deko
+o5deku
+o2dep
+oderle7
+o2des
+o5det.
+o5dets
+odie4n
+o4d3igl
+o4dj
+odko5
+od3oml
+od3ov
+o2d5re
+o4d3rø
+od3sk
+ods4ka
+od3s4po
+od5s4tol
+ods8t
+odu7s
+o4dy.
+o4dyb
+od5øk
+o5døs
+od5øy
+o2d1å6
+6o1e
+oe6f
+o4ein
+oek6s
+oe2l
+oe4mu
+oe2n
+oen5a
+o7ene
+oeng5d
+oen2g7r
+oeng3s
+oeng3u
+o5ens4
+o7ens.
+oen5t
+o3e4re
+o6erer
+oer8ma
+o3ersk
+o2es
+oe6sip
+oe6sit
+oes8ka
+oes8ke.
+o4etan
+oet2h
+oe5ti
+oev6ne.
+2ofa
+o2fa.
+ofag6a
+o4fara
+ofa4se
+o2fav
+o2feb
+o4fei
+o4fera
+o4fe3st
+o1fé
+off9and
+of4fek
+of5fes
+of6fia
+off5id
+of6fr
+of2fu
+of6fy
+2ofi
+o4fip
+o1fl
+of5le
+2ofo
+o6fra.
+of9ras
+of1re
+6o5fri
+of8sa
+of8se.
+6oft
+of4tel
+oft2s3
+2ofy
+2og
+o2ga.
+og7ank
+o4gare
+o2g7av
+o2ge.
+o4ged
+og1ei
+oge7na.
+o3get
+og4gera
+og4g5j
+ogg3s4
+og6g7u
+ogi3a4
+ogie2
+o4giev
+o2gif
+o6gig
+o4giko
+o2gil
+o2gim
+o2gin
+o3ging
+o2gi1o
+o6gista
+o6gi7str
+o2giv
+og5jer
+og7la
+ogly7
+og4ned
+5o4g5ni
+og6nel
+o5g6nos
+o2go.
+og6ra
+og4re.
+o4g3reg
+o4g3rei
+og4rer
+og7rett
+o4g3ri
+og3ryd
+o4g5rø
+og5rå
+ogs4a
+ogs6an
+og3s2e
+og1sk
+ogs4kj
+og5sl
+ogs4le
+og1s4p
+ogs5pa
+og5ste
+og3sti
+og4s5tj
+ogs4to
+ogs4tr
+ogs5t6ra
+og5stre
+og5sy
+5og5s6y4v3
+ogt6r
+5o4g5åt
+og1un
+og5ø
+og7ås
+2o1h6
+ohe5te
+ohm9a
+o4ho.
+ohø4
+oia4
+o1i2d9i
+o1idr
+oid5t
+oie4n
+oi5er
+oi6es
+oi5k
+oi4la
+o1im
+o3in.
+o1ing
+oi2n1o4
+o4insp
+oi6r
+o1is
+o2is.
+o6isa
+o2ise
+o4isi
+4o1j
+o8je.
+o4jo.
+o1ka
+ok7aft
+ok1ak
+oka4n5i6
+ok2ar
+ok5ark
+o3kas
+ok1ef
+ok5els5
+ok5elv
+o5k6en
+o4kesk
+o6kev
+o1kj
+ok4kand
+4okke
+ok6kera
+ok4ke5s
+ok3kje
+ok3ko.
+ok5kol
+ok4kun
+4okl
+ok8la.
+okla5m
+ok8le.
+o1klu
+ok7lut
+oklå5
+2okn
+okna8sa
+o3ko
+o8ko.
+ok8ol
+o4k3oms
+ok3omt
+oko5pe
+ok5opp
+ok3orm
+oko4s
+oko9se
+o6kov
+o1kr
+ok5reo
+o6kret
+o4k5ru
+oks4al
+oks4e
+ok4sek
+okse5kr
+ok4sem
+ok7sen
+ok6serin
+ok4ses
+okse9te
+ok5s4i
+oksi7da
+okst2
+oks6ti
+ok6s5vi
+oks6tr
+ok5ta
+3oktan
+ok3ti
+ok5to
+okto4r5i
+okt6r
+o1ku
+ok5u4k
+oku8le.
+oku6t
+ok7ute
+o5kva
+o3kvi
+ok5øy
+o3kå
+8ol.
+4o1la
+ola6ded
+ola8ga
+ol5anl
+ol3ant
+o9lar.
+o6larbe
+ola5t
+olber4
+olbo7e
+olbo7ge.
+ol4bol
+olbu7
+2old
+ol9dan
+ol5de.
+ol4dem
+ol4dest
+ol5det
+ol3do
+oldo7ve7
+ol5drev
+ol3dri
+old3s4kr
+2ole
+o5leaks
+o6leb
+o2led
+o2lef
+ol5eig
+ole5in
+o2lek
+o7leki
+o2lel
+olele6ge.
+o2lem
+o5lem.
+o5lems
+o7lene.
+o9lenes
+o4lenet
+o4leni
+o4leno
+o6lered
+o4leru
+o2les
+ole5sta
+ole5str
+o9let.
+o2lev
+o1lé
+ol4f5i
+ol4fj
+ol3g4e
+ol1g4l
+2oli
+o4liba
+oli9e6n
+oli7ert
+oli5ne
+3o6lj
+olke3s4
+ol4kese
+ol4kesk
+ol4kest
+ol2k3l
+ol9ko
+ol6ku
+ol5kv
+ol5la.
+oll3ak
+ol4lam
+ol7le.
+ol4led
+ol4lel
+ol7len
+ol4les
+ol6linj
+ol4log
+ol4lom
+ol5los
+ol4lov
+oll5over
+olls4t
+oll5sv
+ol2lu
+ol4løp
+ol6løs
+ol6løy
+ol2lå
+olme5s
+ol4mest
+ol4må
+ol9n
+2o1lo
+o4lo.
+o5loan
+o3loe
+o4lof
+olo3i
+ol5oks
+ol3oms
+ol3op
+o6l7os.
+o6l7o6se
+o6l5osf
+olo5ve
+ol4ped
+ol7so
+ols8t
+ol5sva
+ols5vik
+ol3ted
+ol5tep
+ol2tr
+ol6t7ra
+olt5re.
+olt5rer
+olt5ret
+o1lu
+olu5l
+o4l3ung
+olun8ge.
+o4l5ur
+ol5va
+ol1vo
+o1ly
+oly7d
+ol5ør
+o1lå
+2om.
+2oma
+om3ald
+o2ma2m
+om5ang
+oma4nif
+omann4
+oman5t
+om3ars
+omar7ø8
+om4as
+om1av
+omb6
+om4bet
+om4bis
+om3bl
+5ombod
+1ombu
+2ome
+o2m1ek
+o5meka
+o7menes
+omer6s
+o6mese
+o5met
+ome4tak
+ome7tar
+om1eu
+3omfan
+3omgre
+8omh
+o2mia
+o2mib
+omi3e4
+o4miek
+o2mig
+o7mikk
+o7mine
+om7inn
+om3in5s
+o4mio
+o2mir
+o4misj
+o4mist
+o2miu
+om1j
+2omm
+om6mat
+om4med
+om4metr
+3ommø
+2omo
+o4mofo
+om1op
+omo1v
+omp2
+ompa3t
+1omr
+2omre
+2omro
+2omru
+6oms.
+oms3al
+om4sek
+3omset
+omsko9d
+omsku9la
+om4som
+oms3un
+oms4ø
+omt2
+3omtal
+om4tes
+om3ti
+om3tv
+o2m1u
+o3mus
+omvæ8re.
+6omy
+omyr8ke.
+o2møk
+omø4r
+om5øy6
+o5må
+2on
+on3abo
+o4nac
+o6nak
+o4n3ang
+o4nap
+on3app
+o6narb
+o4n3arg
+o4n3arv
+onat5r
+o2n1a4v
+on5b
+on4dar
+onder6e
+ond3re
+on4d5ri
+onds4i
+o4ne.
+on5eie
+o4nele
+o7nell
+o2nem
+o3ner
+o4neru
+onesi6
+o4nesk
+o4ne3s8t
+o4nete
+o2nev
+on7f
+on7ga.
+ong3d
+on5ge.
+on6ged
+onges4
+on5gi
+on5go.
+ong2r
+on8gro
+ong9ros
+ongs4j
+on2gu
+on4gy
+on4g5ø
+o9ni.
+o2n3i2d
+oni1e
+o2nil
+on5ild
+o2nim
+oni6mi
+on3inf
+o6n7inn
+o2ni1o
+o4ni5p
+o6niso
+on3j
+on1k
+on5k6a
+3onkel
+on5k6i
+on4kle
+on5ku
+onle6g
+on5nad
+on3ni
+on5ny
+o4no.
+o5nor.
+o4no4v
+on3ove
+on4sh
+ons1i
+onsi3s
+onsi4v
+ons1k4
+ons7ke
+ons1l
+onsla6ga
+onstitue9ra
+onstitue9re
+onst5rum
+ons5und
+ons1v
+on4sve
+ons1å
+ont6a
+on3te
+on4ted
+on5ten
+on5ti
+on4tok
+on5tor
+ont2r
+on7ul8
+on5ur
+onu4sk
+o4n5ø4
+on6øy.
+on7å6
+2oo
+ood1s
+o1off
+oo2k1
+oo5k8a
+ook5es
+ool7a
+oo4m5i
+oo6mo
+o1o2p
+oopa8
+oop9an
+oo4pe
+oop5en
+oop5et
+o6opi
+o1o4r
+oor6da
+oo5s
+oo6sp
+o1o4v
+2op.
+2opa
+o4pab
+o2pak
+opan9d
+o4pa3re
+o7paren
+o4pasj
+o4pau
+o3pea
+ope1i
+opel6lø
+2open
+o4pena
+o9pend
+o4penet
+o7pent
+o2per
+6o3per.
+3opera
+ope6rar
+o7pero
+o5pert
+2opet
+o4peta
+4oph
+o1pi
+o4piek
+oping9s
+o4pir
+2opl
+o1pla
+o4p5land
+op3li
+op9lu
+op4na.
+op4ne
+2o3po
+2opp.
+4oppa
+op4p5art
+op4pas
+4oppe
+1oppg
+op4pi.
+op6pia
+op4pis
+opp3li
+3opply
+op6poe
+op6pr
+opp5rop
+opp5und
+opp1å2
+2o1pr
+op6re
+op7ru
+op7rå
+op6sa.
+o8p8si
+op2t1r
+o4q
+4or.
+o6r7add
+or3adr
+o2rag
+or1ak
+2oral
+or5ald
+o4r5alg
+oral4st
+or6alt.
+o3r4am
+o4rana
+o3rane
+o4rang
+o4rans
+or6ap
+or3att
+o4rau
+ora3uk
+or1a4v
+4orb
+orbit5
+or7by
+4orc
+orda9ta
+or3dea
+6ordel
+ord7e6pl
+or7dik
+ordi4s
+or4d5ise
+ord3it
+1ordn
+ordre8gi.
+ordsa6me.
+ords6e
+ord3st
+ordy9ra
+8ore
+orear8a
+orear8e
+o5rebra
+o8redi
+or1ei
+or1el
+o4rela
+o6reld
+ore6na.
+ore4ned
+ore4net
+or3enk
+oren3s
+ore6o5g6
+o6rerf
+o4rero
+ore1s2
+o5resc
+ores6te
+o4reta
+or9et8n
+o6retv
+o2rev
+2orf
+orfa6re.
+orfi7ne
+orfø9re.
+1or3g4a
+4orga.
+or3ge
+or5ger
+orge4s
+orgi6e5ne
+org4sk
+orha9g
+orha9le
+o1ri
+o3ria
+ori5b4
+ori4e5ne
+5orient
+o7riet
+o2rig
+ori7ka
+o6rim
+or3ind
+or3ink
+or3inn
+or3ins
+oriro8
+6oris
+oris4a
+6orit
+o4riti
+oriti6me.
+or5ka
+3orkes
+or5ko
+orko6se.
+ork7s2
+6orl
+orla7te
+or5le
+orm5ang
+or6map
+or5mel
+or4m3un
+ormæ9
+or4nar
+orned5
+orne6dr
+or5net
+or4nol
+orn3t
+4oro
+o3roa
+o3roe
+or3off
+o5rog
+oro5i
+o1ron
+or1op
+o4r1or
+oror9da
+o5rosa
+o5rot
+or3ove
+or5ovn
+orpe6s
+4orr
+2ors
+ors5alt
+or5sen
+or4serk
+orse9ta
+orse7te.
+or3si
+ors5kar
+orsk5ei4
+ors8k9l
+ors4ku
+or1s4l
+orsmå8la
+or1sn
+or3s2o
+orso9na
+orso9ne
+orso9v
+ors4pa
+ors4ten
+or1su
+orsva9re
+or3sy
+or9sø
+2ort
+or4t3ak
+orta8la.
+or4t5and
+orta9pe
+or4t5av
+orte5i6g
+or4tek
+or3tem
+or6t5erf
+or4t5erm
+or5tii
+or7til
+or5tis
+3ortod
+or6tok
+orto9ne
+orto4r
+ort5ori
+or4tou
+ort5res
+ort5råd
+ortå4
+or4t3år
+or1u
+oru8d
+or9ude
+oru4h
+o5rum
+oru4t5
+oruta4
+or4utf
+orva9ra
+or5veg
+orv3s
+4ory
+o7rya
+or1yn
+o9r4ære
+2orø
+or9ø8k
+orøk8t
+or5ør
+or3ø4v
+orøv8d
+or1øy
+or5ås
+2os
+o1sa
+o4sa5b
+o6sad
+o2saf
+o4saku
+6o5sau
+osbi7
+osefi5
+o2seg
+o5selei
+o2sem
+os2en
+o6sena
+ose5sl
+ose5sm
+oses4sk
+oses6sp
+oses4st
+o4seu
+osfa9ta
+os2hi
+os7his
+osi6e7ne
+osi5ere
+osi5ert
+o2s1ing
+osk3ei
+oskei6e
+o4skil
+osk9lar
+osk5len
+o1sko
+osko5p
+o3skri
+os8k3v
+os2l
+os3le
+oslo1
+os3lod
+os5lu
+os5lø
+os9ma
+os5me
+os3mo
+o2sn
+o3so
+os7ove
+os6pa.
+os6pe.
+os4pil
+os4por
+os4sek
+os3sem
+os5sens
+osseri7e6
+osse5v
+ossis5te
+os6ski
+oss3kj
+os4s5ko
+oss9l
+os6spa
+oss7tro
+os7sty
+os8sv
+ost5adr
+os5tal
+osta5le
+o8ste.
+os4teg
+ost5egg
+os4tek
+ost6el
+os5teo
+o4sti.
+o8stia
+o4stie
+o4stin
+os5tis
+ost1o
+os6tons
+ost5ran
+ost3re
+o3stro
+ost5rup
+ost7rå
+o5stø
+os1v
+os5øy
+os7år
+2ot
+o1ta
+o5tad
+ota4l5a
+ot5ald
+otal7ev
+ota4lov
+o9tane
+o9tar.
+ot3arg
+o8t9arm
+o5tas
+ote7d
+ot6ei
+ote5int
+otek5i
+ote6k7la
+otekla8ga
+ote4kle
+ot5elem
+ote5lev
+otel6lan
+otel6lek
+otel4li
+otel8lø
+o4tena
+o4t5ende
+oten8de.
+o2teo
+o4teram
+o4teret
+o6terev
+o4tero
+oter5s
+ote5r8u
+o4terå
+otes6ter
+ote5sté
+otet5a
+otet5o
+otet3s6
+otfø4
+oti7ert
+oti2k
+otika3
+ot7i6ko
+o1tj
+o6tja
+ot5jer
+ot6nero
+otno7te.
+ot6nå
+o1to
+o2to.
+o4to3a
+o5toa.
+o2tob
+oto6en.
+o6tof
+ot3off
+o6toga
+o6togram
+o4toi
+o2tol
+oto5ne
+oto4ral
+otor5d
+o2tot
+o2tou
+o1tr
+ot7red
+ot5rer
+ot5rev
+o6t7ri
+o6t5rom
+o6t5rø
+ots5el
+ot6sh
+otshusvæ8
+ot4s3ki
+ots6op
+otsopp6
+ots5pr
+ots5tab
+ot7ste
+ots6å
+ot6tank
+ot5tas
+ot5tegn
+ot6tenk
+ot5tese
+ot5tin
+ot5toa
+ott4s3k
+otts5po
+otts4ti
+ot7tug
+ot4typ
+o1tu
+o6t5ut
+o1ty
+oty8e
+ot1yt
+o1tø
+ot7å
+oub8
+oul5l
+oun6ge.
+ou4r
+ou7ri
+ou5ro
+ou9sa
+out8a
+ouve4
+o5vae
+o1vak
+ovanfø8
+ovan9o
+ov3anv
+o7var.
+o6varb
+ova9re
+ov5art
+ov7arv
+oved3
+o1vei
+o1vel
+ove4la
+4oven
+o4vend
+o5vende
+ove6nya
+ove2r
+over3a
+ove7ra.
+ove9ras
+o6verdr
+overe6
+ove8r5es
+3o6verf
+3overg
+o5verks
+5overr
+5oversik
+overs4p
+over9v
+o1vet
+6ovh
+2o1vi
+oviso3
+2ovj
+6ovna
+ov4nes
+2ovni
+4ovo
+o5vo.
+o7vom
+ov1or
+o5vot
+ov1o2v
+ov5sal
+ov4sek
+ov4sen
+ov9ske
+ov4sle
+ovs1p
+ovs5te
+ov4sti
+ov7sun
+ovsy5k
+ovta6le.
+ovveg7i
+ow1
+owa8
+o7was
+owat2
+ow5h
+ox3
+oy9ar
+oys5l
+o1y2t
+o1za
+o3zy
+o1ø
+o1å
+ô6ra
+ô2re
+ôr5ei
+ô1ri
+ô4t
+ó9sa
+ó7t
+ó8v
+ò9re
+1pa
+4paa
+2pac
+pa8cen
+p5ad.
+pa3deb
+p4adg
+pads4
+2paj
+6pak.
+6paka
+4pake
+pak4kas
+pakke4s
+pakk7esl
+4pakti
+3pa1la
+pa3le
+pa7lim
+pal5in
+pal1j
+pal5lø
+5palm
+4palø
+2pam
+pa5me
+p3anal
+pa4nap
+pan9de
+pa5ne
+pang5s6
+pan3ka
+9panne.
+pan5se
+pan5sl
+pant8r
+4panv
+pa4ny
+2papa
+pa8pa.
+pa3pe
+4papo
+pap4pr
+4papr
+pap3ri
+pa4ra.
+5parad
+2parb
+4parek
+4parena
+par5ess
+par5g
+2pari
+pa4ri.
+pa3ris
+4parki
+par6k7l
+par4kv
+par3m8
+pa1ro
+4parr
+par8ra.
+par9s4
+par6tid
+par4tig
+par4tin
+par5u
+par7v
+parvi6
+6parø
+4parå
+p6as
+pasa5
+pa9se
+pase6r5
+4pasp
+3pass
+pas5sab
+pa4s3t
+pas4tar
+pas5ti
+pas9v
+pa1t
+pa3te
+pa4tist
+pa6tre
+p8atta
+pat6tak
+2patu
+p8at6v
+pau7k
+2pav
+pa4ve.
+3pa1vi
+2p1b6
+pba4ne.
+pbo6da
+pce6
+2p1d4
+pde4le.
+pdø2
+pdø9d
+1pe
+2pea
+peak3
+pe4a3re
+4peb
+pec3
+pe7d6a
+5pedas
+4pedd
+pe3de
+pedfø9
+pedi9e8
+pe6doa
+pe6don
+4pedr
+pe4dro
+4pedu
+4pedy6
+2pedø
+pe7då
+pee6
+pe3er
+2pef
+p5eft
+2peg
+p5egg
+peg8ge.
+pego4
+2peh
+pe4il
+pei4leg
+2pe1in
+pe6ism
+2pej
+2pek
+pe8ka.
+pek4l
+pek4tro
+pekt7ros
+8peku
+p6el
+4pela
+pe5l4aks
+5pelal
+pe5lar
+pel9d
+4peled
+pe4lef
+4pelei
+pe6lep
+4peler
+pe6lev
+6peliv
+6pelj
+pel4lo
+4pelov
+pel5s6e
+pel5s4i
+pel7st
+4pelu
+pe5lun
+2pely
+2pelø
+6pelå
+2pem
+p1emb
+pe4nan
+pe4n3ar
+pen3de
+6p5enden.
+4pener
+pe3net
+5peng8
+pen4gel
+pen7gl
+peni4n
+4peniv
+penly4
+pen7s8a
+pensa7k
+pensa8la
+pen5sk
+pen4s5l
+pen3s6m
+pen5s6o
+pens4t
+pen9sta
+pen7ste
+pen7tag
+pen5tr
+6peny
+2penå
+2peo
+pe7o6s
+2pep
+pep5ar.
+pep7p
+pera3a
+4pe4rab
+4perad
+pe4rai
+pe4ral
+4perap
+pera5t
+4perate
+4pered
+4perei
+4perek
+4peresp
+4perest
+4peresu
+4peret
+pe4rev
+3peri
+perie8ns
+4pe5rik
+peri3s4
+4perit
+per5k
+per6les
+per5mu
+per5n
+4pero
+pe3ros
+pero6se.
+per6regj
+per6rei
+5perro
+pers6m
+per4tro
+per4t5rå
+pervi6k
+2pery
+6perø
+4pe7rå
+2pe1s
+3pes.
+pe3se
+pe6se.
+pe7si
+pes8ka.
+p3eske
+pes4ke.
+6pesl
+pes4n
+5pess
+3pest.
+5peste.
+pes5til
+4petab
+peta6ka
+4petal
+4petas
+4petau
+pe3te
+5pete.
+4peted
+6petei
+6petek
+4petel
+4petem
+pe3ti
+4petid
+4petil
+pe4tim
+2petj
+2peto
+2pet4r
+pe4t5ru
+pet1s6
+4pett
+2petu
+4petø
+4petå
+pe2u
+2pev
+peva8ne.
+pe5vi
+p5evn
+pev6ne.
+4peø
+4peå
+3pér
+2p1f
+3p6fenn
+p3fo
+p5fr
+pfri4
+pfø5re
+2p1g2
+pgjer4
+2p1h
+phav2
+pha9va
+phavs5
+phe9te
+phe7va
+phe5ve
+phi5li
+7pi3ane
+7piar
+pi4as
+7piase
+4piav
+4pib
+pi6ca.
+2pid
+pid3s2
+pie2n
+6piend
+pi3er.
+pi9ers
+2pif
+pi9fr
+pig5ge
+pig6g9u
+p7i6gj
+2pih
+6pii
+pi4keh
+pi6kel
+pike5r6o
+pi4ké
+8pikk
+pik3ko
+4pikl
+piku5
+pi5la
+pi6la.
+pi3lep
+pil4lag
+pillba6
+pil6led
+pil4leg
+pillega6
+pille6ra
+pil4le5s6
+pi1lo
+2pim
+pi4na.
+pi4ne.
+pi9ned
+pi4nel
+pine4v
+3ping
+pin6go
+ping3r
+ping5sk
+6pinns
+pin4sl
+pi2nø
+pio6n5an
+pion5s
+3pi2p
+pi4pi
+pip9la
+pi4rar
+pi4res
+pi4rut
+pisi9e
+pi4ski
+2piso
+piss4l
+pis4sp
+pis4st
+pis1t
+pis4t5r
+pis9t8ra.
+1pit
+pi9ta
+pita7la.
+pi5té
+2piti
+4pitj
+4pitr
+pit5t
+2piu
+2pi5v
+4piø
+4p5k4
+pka5v
+pka8va
+pl6
+8pl.
+2plad
+pla8de.
+p4lak
+p4lan.
+plan7de
+4plane.
+plan5g
+plan5s
+plap3
+4p1lar
+p2las
+pla4st
+p2lat
+platina5
+2ple.
+2pled
+4pleis
+p2lek
+p6le5n4u
+ple5n4a
+ple6r5u
+ple8se.
+4plev
+p2li
+4plit
+p3liv
+pli7va
+plo4gj
+p4lo8i
+p1lok
+4p5lov
+plu4e
+p4luk
+plun3
+plun6d7ri
+p1ly
+ply5d8
+plæ5re
+plø6pa
+p1lå
+2p3m
+2p1n4
+p7ner
+pne6se.
+1po
+po9a
+pod8
+po6da.
+po4de.
+po6em
+2pof
+po6f7r
+pog6
+4poh
+po5id
+2poke
+po6lan
+po3le
+po4lek
+6polj
+pol5li
+po6lom
+pol6s4ka
+po2lu
+2pom
+pom6p9u
+pom5s
+4pon.
+pon5d
+pon4gr
+pongs6
+2pon1s
+pon5sa
+pon4sv
+po2p1a
+po6pe.
+p5opn
+pop1s
+2por.
+po1ra
+2p5ord
+po1r4e
+po4ref
+po6reg
+po8ré
+2p1org
+2pori
+2pork
+por6s7v
+por4tor
+por4t5ro
+por4trå
+2porv
+po1ræ
+po1rø
+po4se.
+po4ses
+4posj
+po2st
+po4sta
+pos5tas
+po5stat
+pos3te
+4pos4v
+5pot.
+7pota
+potak9
+po3te
+po4te.
+potek5l
+po5t6ha
+3poti
+4potr
+4pou
+2po4v
+pove6
+pover6n
+pow4
+2pp
+p2pad
+p2pak
+pp3akt
+p2p3a4l
+p9pane
+pp5angr
+pp5ank
+p4p3anl
+p2pap
+p9par.
+pp5arr
+p7past
+p4p7at
+p4pee
+p2pe5i4
+ppel5s6
+p4pena
+p8p9ender
+p4pendr
+ppe9nes
+ppe5p8
+p4penø
+ppe5ra
+p7pere.
+p4perkl
+pp7e6sen
+pp9esn
+ppes8ti
+p4peta
+pp5e4tas
+p4pete
+pp5ett
+p2peu
+p1pi
+pp1id
+p2p1il
+pp5im
+pp3inf
+p4p5inn
+pp7ir
+ppir8re.
+p4pist
+pp1j
+pp3k
+pp1l
+pp5last
+pp3led
+pp5lei
+pp9lev
+pp5n
+pp1of
+p2pol4
+pp3old
+pp5om
+p2p1op
+pp3ork
+pp1ov
+pp5p
+pp1r
+pp5rei
+pp5rin
+pp4ris
+pp7riss
+pp9riv
+pp9ro.
+ppropri6
+pp7rot
+pp1s
+ppse6te.
+pp3ska
+ppska9k
+pps2p
+pp9spe
+pp3spl
+pps2t
+pp7sto
+pp7t2
+p2pu
+pp1uk
+pp5ut
+pp3ø4
+ppøs8
+p6på
+pr6
+4pr.
+4prad
+3praks
+pra7li
+2pran
+pran3s
+5prat.
+5prate
+pra5te.
+4pray
+5pref
+prei7er.
+4preii
+pr5elem
+1prem
+pren4s
+1pres
+6pres.
+pres6sak
+p6restas
+4prett
+p3rif
+pri5ke
+pri4l3e
+4pring
+5prino
+3pr6in6s5
+3pr6in7s6e
+3pr6in7s6i
+1pris
+pri6s5k
+pris3t
+2prit
+pri9ve
+1p2ro
+8pro.
+6p7roc
+3prof
+4prog.
+4proge
+4progl
+4p3roi
+p5rop.
+3pros
+7prose
+6pru
+prun7ge
+pru5ta
+pru5te
+6prør
+prørs5t
+prø5s4
+5prøv
+prø5vels
+2prøy
+4prå
+prå8da
+pråk3i
+prå4ko
+pråk5k6
+2ps
+p1sa.
+ps5a6n
+p1sc
+p3se.
+psei8ge
+p2sek
+p2s1el
+ps5e4ly
+p3sen.
+p5sens
+p7ser.
+p5sete
+p5sets
+p2sh
+p6sib
+ps5ins
+p7sis
+p3s4jo
+p4s3kil
+ps7kjen
+p2s1ko
+p7s6ko.
+p3skod
+p5s4koe
+p2sle
+p9s8lo.
+pslø8va
+pslø6ve.
+p3s4lå
+p2sm
+psmå8la.
+p2sn
+ps4no
+ps1o
+p3sod
+pspi9la
+ps5ple
+p3s4pre
+p4s5pro
+ps5pu
+ps3s2
+pst2
+ps7tal
+p4s5tem
+ps3tv
+p5s6tå
+psu4r
+p3s4us
+ps1v
+p2sva
+p2sve
+ps4ving
+p4svæ
+ps5w
+psy3ke
+3psyko
+4psys
+p2s1ø
+p3s2øk
+psø4ke.
+psøy8
+psøy9ene
+ps1å
+2p1t
+pta8la.
+pta4le.
+pt7ark
+p3te
+pte6k
+pte4ma.
+pte7re
+p5ti
+pto7g
+p4tou
+ptus5t
+p4tut
+1pu
+pu4br
+5puc
+6pu6dy
+pu2k
+pu7la
+pu8le.
+pull6
+5pum
+pu4ma.
+punk4t5
+punk5t6e
+2punn
+2pur
+pu4re.
+pu8rea
+3puri
+3purk
+pur5u
+pur3v
+pu7sa
+pus4h
+pusl7u
+pu1ta
+pu4ta.
+pu5tas
+pu5ter
+pu5tev
+4putg
+2puts
+put6tr
+put4tu
+2putv
+6putø
+2p1v
+pver7
+pvi4se.
+py4dr
+py8o
+3pyra
+py1re
+py1ro
+6pys
+py6sa.
+py4se.
+pys6t
+4p5z
+1pæ
+pæ4re.
+pø1kj
+pør4ret
+pø8sa.
+pø9ta
+pø9te
+p1ø2v8
+5påb
+på4by.
+på1k2
+1pål
+på4la.
+på4le.
+p5ån
+på3pe
+på1pl
+p1åpn
+på1r
+1pås
+på7sko
+på5sm
+på3t2
+6påtå7
+1påv
+qa5
+qu2
+qu9ar.
+1que
+que7r
+4raam
+4raar
+4rabis
+ra1bo4
+4rabr
+2raby
+ra3cet
+ra3ch
+5raci
+ra3d2a
+4radf
+3radio3
+4radir
+4radj
+2radm
+2ra1dr
+r3adre
+rad2s3
+radvi4
+ra5ede
+rael4
+4raerk
+raf4fer
+ra4fiu
+ra2fj
+2rafo
+ra5fo.
+ra4fos
+2rafr
+ra5fre
+6raft
+ra4fu
+ra6fy
+ra7gea
+ra5gee
+2ragl
+2rah6
+7raid
+ra5int
+ra3isk
+6r5akad
+ra9kar
+ra7kel
+ra5k6ha
+r2akk
+rak4kel
+r6akr
+ra5kro
+2raks
+rak6sa
+rak3s4e
+rak6se.
+rakst6
+4rakti
+rakt3r
+r4a5ku
+4rakv
+ral5ans
+6ralbum
+5ralds
+4raled
+ra5leo
+ral3g
+4r5alge
+4r5algo
+rali5e6n
+ra4lin
+ral1j
+ral5le
+ral7m
+ralo6i
+ral3op
+ra5ly
+4ralø
+4ra5l8å
+ra4mag
+ra4mas
+ram3b
+6r9ambi
+rambu9ens
+6ramed
+4ra4mer
+ram8et.
+4ramil
+ram1o
+ramperi8
+ram6p3u
+ramse8te.
+ramta8la.
+ramta6le.
+4ramu
+6ramy
+r4an.
+ra4naa
+6r3anal
+ra5nar
+ran9cs
+r4an9de.
+r5andel
+rand3r
+rand5s6a
+r4ane
+4ranfa
+ran5ge
+6rangi
+rang5st
+rania8
+ra6nin
+ran3kv
+2r5anl
+r6anli
+2r1anm
+r4ann
+ran6n5ett
+ran4n5in
+rann3s4
+rans7kar
+4ransv
+ran4tik
+ra5nu
+ran6ut
+4ranø
+2rao
+4rapa
+ra4pel
+4rapin
+ra4pir
+ra4pis
+ra6pit
+ra1pl
+4rapo
+ra4pos
+4rappa
+4r5appl
+3rappo
+2ra1pr
+4raps
+4rapu
+1r4ar.
+2rarb
+7rarbeh
+4rarea
+4rareg
+rar5e6l
+4ra3rep
+rar7eta
+r1arg
+6rargu
+8rarinna
+6rarinne
+rar8ka.
+4r1arm
+rar8ma.
+6rarn
+4rarr
+rar3re
+rar5s
+2r1ar5t
+rar6ta.
+ra3rø
+4rasa
+2rasc
+ra3sea
+4rasel
+ras3h
+raska8ra
+ras3ke
+ra4ski
+ra7s6ko
+ra6sl
+rass4l
+ras7st
+4rasti
+ra5s4til
+4rastj
+rast5re
+6rasty
+ras7v
+ra1ta
+ratak9
+r6ate
+ra4te.
+6ra5teg
+8r7a6teli
+4ratfe
+ra1to
+ra1t4r
+ra4t5ro
+ra4trø
+ra5t6røy
+rat5tel
+ratte4s
+4ratub
+rat5ut
+6raty
+7raud
+raud3s
+6raug
+rau6ga
+rau6ge.
+4rau4k
+raus6s
+2rav
+6ravd
+rave5s4
+4ravg
+ra1vi
+r3a4vis
+4ravl
+rav8l9ut
+ravlø8pa
+ravlø8s
+rav6r
+4ravt
+ra5vy
+ra3vør
+4raw
+raz5z6
+2raø
+raøy4
+2r1b8
+rba3d
+rbe2d
+rbede4
+rbed5en
+rbed5et
+rbed9ra
+rbie8
+rbi9er
+r2big
+r2bik
+rbist6
+rbis5tr
+rbo8di.
+rbo4ni
+rbon7s
+rbo5re
+rbra5s
+rbrei6
+rbu5en
+r5bø
+r1c
+4rd
+r4dab
+r5dag
+rdag4s5
+r5dah
+r4d5ak
+rdal4
+r4dala
+rda4le.
+rdals5
+rda4mes
+rda8n9o
+r4dant
+rd5anta
+r4d3arm
+r4d3art
+rd5atl
+r4datm
+r4d3au
+rd3d2
+r6dedi
+rde4en
+r3defi
+rd5e4ge
+rd1ei
+r9deka
+r4dekl
+r4deks
+r6delo
+r6demi
+r7dena
+r6d7eng
+r6d7enh
+rden4s3
+rdense4
+rdenta8le.
+r4deo
+r6depo
+r4derik
+r4d5erst
+rde6sm
+rd3e4ta
+r6d7ett
+r8dé
+rdfes5
+rdi3an
+r4diana
+r4dians
+r6diau
+r4did
+rdi3e2
+r2dif
+rdi6gres
+rdig3s4
+r4dika
+r4dikl
+r4diku
+r2dil
+r6dimi
+r2dio
+rdi3ov
+r4dish
+r2dit
+r2diu
+rd5je
+r1dju
+rd7m
+rd3n
+rdnæ4
+r9dob
+r4d5o4d
+r4dol
+rdon8na.
+rd1op
+r6dor
+rd3ost
+rd1o4v
+rdover5
+r9drad
+r3drak
+rd5ran
+rd7rara
+rd3ras
+r3drei
+rd3ret
+r5drev.
+rd1ri
+rd3rot
+rd3sei
+rd8ske
+rds4kv
+rds5tan
+rd3sto
+rdsto5g
+rds7tre
+rds7tu
+rdsva9r
+rd5t
+rdta8ka
+rd5tr
+rd7tø
+rd3und
+rd5ve
+rdvi8ka.
+r4dyg
+rdy5pe
+rdy3re
+r6d7yt
+r6d5æ
+r7d6ær
+r7d6æ5r6e
+rd1øs6
+rdø4ve.
+rd3år
+rd7å6s
+1re.
+2rean
+re7a6r7an
+rear5e
+4reav
+2reb
+3redak
+6redam
+re3def
+re5den
+re3des
+re3di
+3redig
+r1edl
+2redo
+2redr
+re4d5ri
+red5sku
+red4sl
+reds5la
+red7s6led
+3reduk
+6redy
+2redø
+2ree
+re4el.
+re3er
+8refa
+4reff
+4refi
+2refj
+6refos
+6refr
+4reft
+2refø
+4regar
+rega7ta
+re3ge
+4regeb
+re5gel
+4regen
+4reger
+4regg
+1regi
+re4gia
+re4gil
+reg1l
+2regr
+4regub
+4regud
+2regå
+2reh
+2reid
+2reie
+2r1eig
+rei8ga.
+rei8ge.
+4reik
+rei9l
+rei5na.
+rei7nas
+re5inde
+rei5ne.
+rei7nes
+rein6skj
+re4inva
+rei9ra
+rei5sa
+rei3si
+rei7ska
+reis6led
+re7ism
+rei7va
+rei5ve
+2rej
+6rek.
+re5ka.
+re5kav
+re7ken
+4rekj
+rekk6an
+rek4k5v
+5reklam
+rek4led
+re5k6lir
+re7ko
+4rekob
+4rekom
+4rekon
+6rekos
+4rekra
+3rekru
+r3eksa
+6reksp
+rek4ter
+4reku
+r8el.
+re9la
+4relag
+9relandsk.
+9relandske
+2r2ele
+rele8ge.
+r4e5lei
+6relek
+re7len
+7relene
+6relg
+r3elit
+4re3lj
+r2ell
+rel4lag
+rel6land
+rel5led
+rel4lev
+5r4elm
+rel5ses
+rel4sk
+4re1lu
+4relv
+2re5ly
+2relæ
+2relø
+4re7l6å
+relå7r
+2rem
+remann6
+r1emb
+remi6ene
+remi6l
+re7mis
+rem9ji
+remmed5
+6remn
+rem8na
+rem5p4
+rem1s
+remti9da
+4remu
+8remy
+4remå
+2re3na
+ren4del
+4rendr
+8rened
+re5neg
+re7nei
+4renek
+r3e4nel
+4renest
+6renet
+6rengd
+reng5l
+4rengn
+reng5st
+re5ni
+2renk
+ren6kl
+r3enl
+ren8ne8sl
+rennes9la
+re5no
+ren5sa
+r3enss
+6r7entit
+4r3en5tr
+6rentu
+4renu
+5renz
+6renæ
+4renø
+re5og
+2reop
+re3o2r
+5reou
+8repen
+6r5e6pi
+1repu
+6repus
+1rer
+6rerad
+6re9rang
+4rer6at
+re5re.
+4rered
+4reref
+4rereg
+4rerei
+re4rek
+4rerent
+4rerep
+4rerese
+4reresu
+4reret
+6rerfa
+4rerig
+4rerik
+4r3ernæ
+4rerol
+4rerom
+re3ros
+rero6se.
+re5rot
+3rers
+rers4p
+4rerute
+re6r7øy
+2rerå
+1res.
+2resa
+re2s3c
+re3se
+4resel
+re4sem
+4reset
+resi7ere
+4resin
+2resj
+2resk
+res5ke
+re6s7kje.
+res6kl
+res7kod
+re6sky
+6re1sl
+re4slu
+1resm
+re5smo
+re3sov
+re9spe
+4respi
+4respr
+2ress
+res4sal
+res4sek
+res4sit
+res4sj
+res6sk
+res6sort
+res4sp
+res4st
+res4sy
+res9tane
+5restau
+res6t5erv
+res4tes
+res3té
+4re3sti
+res4til
+re3str
+4restre
+7restv
+4re5sty
+4restå
+1resu
+6resuk
+4resun
+re3svi
+2resy
+2resø
+4retaki
+4retal
+re4tap
+4retea
+8retek.
+6reteke
+4retekn
+6retel
+6re5tem
+re5ten
+4re5ti
+4retj
+4retoa
+2re5t2r
+rets4i
+ret4st
+ret7ted
+ret5ter
+rett8o
+rett6set
+4re5tu
+2rety
+2retø
+5retøya.
+7retøyets
+4re7tå
+2reu
+reu6r
+4revak
+re5van
+reva5re.
+6reveg
+4revei
+4revel
+re6v7enh
+re5ver
+reve5s
+r3e4vig
+re4v5inn
+re7vom
+1revy
+re4v5åp
+3rew
+2reå
+2r1f
+rfa5re
+rfat5
+rfe8en.
+rfe8er
+rfe4et.
+rfei5li
+r4fik
+rflå3
+rfe5m6ø
+rft2
+rfu8se
+rfyr4
+r9fæ
+rfø8rarar
+2r1g
+r5ga.
+rga8le.
+rga8li
+rg5and
+r7gann
+r4g5anv
+rga3ri
+rg3art
+rga4ve.
+r6gedi
+r4gef
+r2gem
+rgent4
+r3geo
+r4gerei
+r4geret
+r4ge3ru
+r4gesj
+r4gesl
+r4gesta
+rgi1a
+rgie4n
+r2gik
+r2gil
+r2gim
+r2gio
+r2gir
+rg3i4ri
+rgi7sl
+r2giø
+rg2le
+rg5le.
+rglem5
+rg3len
+rg3ler
+r2gn
+r4gog
+r3gom
+r2got
+rg5rab
+rg3rea
+rg3rel
+rg5reps
+rg5rin
+r3gru
+rg5sc
+rgs6kor
+rg5s4le
+rg1sn
+rg5s6till
+rg5sto
+rg9stu
+rg2sy
+rgu7d
+rg6ut
+rgå9as
+rgå6va
+rgå6ve.
+2r1h
+rhav2
+rhavs3
+rhjul8s
+rho3d
+r7hu
+rhø5re
+rhånd6s9
+rhå9ne
+ri1an
+4rianf
+4rianl
+6riansv
+ri1ar
+4riarb
+4riarr
+6riau
+2riav
+ri4ava
+3ri6avo
+2rib
+ri2b3l
+ri8ca.
+ri4co.
+ri5da
+4ridale
+ri5der
+ri5di
+2r1idr
+rid3t
+4rieie
+4rieig
+4rieks
+ri1el
+6rield
+4rielem
+6rielim
+riel4la
+rie4n
+ri3end
+4rienh
+4rient
+rien5t4r
+ri1er
+rie5ra
+rie5ri
+4rietat
+ri5even
+2rifa
+riferi9e8
+rif4fi
+rifiserba8
+6rifj
+1rifl
+rif5la
+2rifo
+2rifu
+4rifø4
+ri4ga.
+rig4gr
+ri3gi
+4rigj
+4rigre
+rig2s
+rig6s7t
+2rih
+2rii
+2rij
+5rij.
+ri4kali
+ri5kan
+5rikd
+ri3kes
+ri7ki
+rik7ken
+rikk5j
+4rikl
+ri8k9la
+2ri7ko
+6rikon
+2ri1k2r
+rik4sk
+rik4s5u
+rikt6
+rikts3
+riku6m
+ri3k4v
+4rikå
+2rila
+6r5ilde
+6riled
+ri5lei
+ril6lest
+2ri5lo
+ril4sn
+2rilø
+4rima
+ri9mab
+ri9mar
+6rimes
+ri5met
+2rimi
+ri4mi.
+7rimis
+rim7l
+4rimm
+4rimo
+ri4mor
+4r1imp
+4rimu
+rim9ut
+4rimy
+rina5l
+ri5n6am
+4rinas
+4r5inc
+4rind
+r3indu
+ri4nee
+ri4nes
+2r1inf
+rin7gom
+ring3r
+ring4sa4
+rings5ak
+ring8spa
+2r3inj
+2rink
+4rinn
+rin9nes
+4rinor
+2rins
+rins6k
+rin6sm
+2rint
+rin4t5j
+rin4tr
+2rinv
+ri6nø
+2ri1of
+6ri3om
+2ri1op
+2rior
+rio5s4
+riot3r
+2rip
+4ripe
+ripo4s3
+4ri1r
+4risau
+4rised
+rise5i
+6risek
+4risel
+ri4seli
+4rish
+5risiko
+2risj
+ri6sju
+4riska
+ri4ski
+6risku
+4risky
+6ristad
+4ri5sted
+ris5tik
+4ristil
+ri4sto
+ris5tof
+ri5stun
+6ristø
+ri6stå
+4risv
+4risy
+4risø
+ri3te
+6riteo
+ri7ti
+riti9da
+4ritil
+4ritj
+ri5t6o
+ri5tr
+rit1s6
+ritt8s7t
+ri6tun
+4rity
+2riun
+riu4r
+2riut
+4rivar
+ri6ved
+rive9ge
+ri5vei
+4riverk
+2rivi
+ri4vi4s
+riv5ise
+6rivo
+4riøk
+riø4r3a
+8riøya
+4riå
+r1j
+rj7ambi
+r4jere
+r2jes
+r4jeti
+r4jetr
+r4jetu
+rju6la
+2r1k
+rk3akt
+r6kanf
+r4kao
+r4kapr
+r6katr
+r3ke.
+r2keh
+rk5eik
+rkei8ka
+r6kek
+r4kelo
+r4ke3lu
+r3ken.
+r4kenav
+r3kene
+r4keni
+r5kens
+rke5ri
+r4keris
+r4kero
+r5kers
+r4ke3ru
+r4kerø
+rke4se
+rkeslø7se
+r9ket.
+rk4han
+r3ki
+rki3d
+rki3e
+rki4vi
+rkjek8
+rk5jor
+rk1k2
+r5k8led
+rk2li
+rk5lun
+rk9lut
+rklæ5re
+rk2lø
+rklå9ra
+r3knek
+r5knep
+rk7nes
+r3kno
+r2kob
+rko6b5r
+r6kofo
+r2koh
+r4kola
+r4koli
+r4kope
+r4kora
+r4koru
+r4kosel
+rko6sele
+r4kosj
+r6k7ras
+rk5rei
+r5k6rem
+r8ks
+rk4sar
+r6k6seg
+rk2s1i
+rk4ska
+rk1st
+rk6stal
+rk4sten
+rk4s5ti
+rk4stj
+rk4sto
+rk6s5vi
+rk5ti
+rkti4s
+rk5to
+rku4le.
+r6k7u6t
+r4k5ve6d
+rk9vei
+r5kvel
+r4kver
+rk3ves
+rk5vik
+r4k5øl
+r2k3øy
+rk9øys
+rkå4k
+rk5åke
+rkå6pa
+rk5å4s
+2r1l
+rla4te.
+rle4a
+r2lef
+r3lep
+r4l5e4ri
+r6le7sl
+rle4st
+r4lesu
+r4leu
+r3l4i
+rli9ke
+rling3s4
+rli8ta
+rli4te.
+r3lj
+rl6o
+rlog2
+rlo5ve
+rl4sk
+rlu4e
+r3ly
+rlys7k
+r6l5z
+rlø8pa.
+r5løy9
+2r1m
+rma6ge.
+rma5k4l
+r4m5alte
+rm3anl
+rm4ans
+r6manv
+r4mare
+r4marr
+rm5av
+rm3b
+r2me7g
+r2mek
+rme6lap
+rme5ne
+r4menet
+r6merev
+r4mese
+rme9tar
+r4mey
+r4m5ide
+rmi6ene
+rmini6
+rmin5ski
+r6m5inst
+rm5i4v
+rm1je
+rmlø8pa
+rmo4e
+r2mof
+rm1op
+rmo7st
+rm7p
+rm5s6ko
+rm1sl
+rms6n
+rm1st
+rms5til
+rm1su
+rmta8la
+rm3te
+rmu7an
+rmue4
+rmue5ne
+rmu8la.
+rmu6le.
+rm5øy.
+r9må.
+rmål4
+r6m5åp
+r9mår
+r6m7åta
+2rn
+r3na
+r4n1ak
+r4n3ald
+r6n5appar
+r4narb
+r4n3art
+rnat7r
+r4natv
+r6n9a6vis
+rn3avl
+rn3d
+rndø4
+rndør5
+r3ne.
+rne5a2
+r5neboe
+r2nec
+r4nef
+r2nel
+rnele6ge.
+r3nell
+r3nels
+r4n3eng
+r4nenh
+r4nerei
+r6neris
+rne3ro
+rne1s2
+r5nes.
+rne6se.
+r8nesi
+r4ne3sk
+r4nesm
+rne3so
+rn5e4tab
+r4nete
+r2nev
+rne5vr
+r2nés
+rn5g6
+r4ninn
+rn5k4
+rn3n
+r5no.
+r4noa
+rno5b
+r4nod
+r4noi
+r6nok
+r2nom
+rn5omn
+rn3oms
+r4n1op
+rn3ork
+r2nos
+r4n1o4v
+rn7se
+rn4s3in
+rn5ske
+rn3skr
+rn5sla
+rnsle7ge
+rn7s6mi
+rn6s3ovn
+rn5spon
+rn3s4pr
+rn1st
+rn4sti
+rn3te
+rn5ti
+rn7tr
+rntre4
+rnt4v
+rnu4
+rn5ug
+r6n3ut
+r7nøt
+r4n5øv
+rnå8le.
+rn3ås
+ro1ak
+roa4s
+ro5asi
+9roban
+9robar
+1robe
+ro4bed
+ro4bef
+5roben
+ro4bes
+5robølgj
+1roc
+r3odds
+7rodo
+ro5end
+ro7ens
+ro7fa
+ro4fel
+ro4fem
+roff5ri
+ro7ga.
+roga9ta
+ro7ge.
+rog5ret
+ro6gry
+rog1s4
+ro2gu
+1roi
+ro4kel
+ro5ki
+rok6kat
+rok6keri
+rok5kl
+rok4kom
+ro7k6l
+rok5n
+rok7s
+rok8se.
+rok5v
+roli7ga
+4rolj
+rol4lab
+rol4lap
+rol4leg
+rolle8ge.
+rolle8se.
+rol4lis
+rol6ly
+rolo9v
+2roly
+ro6mak
+ro4mal
+3ro5m8an
+ro4mate
+2rom7b
+4ro3me
+rome5d
+4romk
+4r3omn
+ro4mor
+2romr
+rom5sla
+r7omsy
+romsø3
+rom3t
+ro5ne.
+ro7nim
+6ronism
+6ronista
+8roniste
+6ronisti
+4ronn
+ron4na
+rono5s
+ron1s4
+ronta6le.
+ro4pad
+5ropet
+ro4pia
+ro8pla.
+2ropp
+ro9py
+ror3a
+ror6da.
+ro3re
+ro1ru
+ro4sat
+ro5sel
+ro3sen
+4rosl
+ros3la
+ro4sm
+ro6sov
+ro1s1p
+ros4st
+ros4sy
+ros7tas
+ro3sti
+ro3str
+rost7rø
+rot5ekte
+ro5tes
+rote7ster
+roti7ka
+rot5ord
+ro5tu
+6roty
+roun2
+round3
+ro5ut
+ro5va.
+ro9vare
+ro7vas
+ro5vek
+ro7ven
+rove5re
+rov5sm
+rovve6
+rò6te.
+2r1p
+r5pa
+r6parb
+r5pefo
+r4peno
+r6penø
+r5pesk
+r5pet
+rp6j
+rp2l
+rp3lad
+rprø5ve
+r3pu
+rpun7g
+r6p5ut.
+r6p5øy
+r2påk
+2r1r
+r8raa
+r2rag
+rra3r
+r4raro
+rr3d
+rr6e
+r4reb
+r7rebart.
+r2ref
+rre7int
+r4rekl
+r5relat
+r4reo
+r4repl
+r4re3ru
+rre5sk
+r4resm
+r4reso
+r4respe
+r3ress
+rre4st
+rres5ta
+rre7sti
+rre5str
+rret6s5
+rre5u
+r3ri
+rri6ka.
+r6rip
+rri5v
+rr3m4
+rrmå8la
+rro6e
+r5rom
+rro8sa
+rro8se.
+rro8ta
+rr5s2
+r2r3un
+rr5v
+rrå5de
+4rs
+6rs.
+r1sa
+rs3ab
+r2s7ad
+r3sak
+rsa5ka
+r6sakt
+rsa6la.
+r8s9ald
+rs3all
+r5sam
+r4sarr
+rs3arv
+r1sc
+5s6ch6l
+r8sedi
+rse6g7
+r4seku
+rs4ela
+rs7eld
+r4seli
+r4s3elv
+rs5e4rik
+r3ses
+r4sesi
+r6sesu
+rse4te.
+rs6ett
+rsett8o
+r7sim6
+rsimp7
+rs1in
+r5s4ing
+r4sins
+rsis5t
+r7sja
+r4sjh
+rsj3or
+r3skad
+r6s7kaf
+rs4kam
+r3skap
+r4skar.
+r4skas
+r4ski
+r5skil
+rsk7inns
+r1skj
+rs5kjens
+r6skl
+rskla8g
+rsk5lar
+rs4k5le
+rs4k3læ
+r5sko.
+r5skoe
+rsk3op
+r4skor
+r3skot
+r1skr
+r4s3kra
+r5skriv
+r4s3kro
+r1sku
+r5sku.
+r5skue
+rsku7et
+rsk5und
+rsk5var
+rs5kys
+rsk5ø
+rs4lef
+r4slei
+rs4lek
+rs4les
+r5s6lit
+rs3lok
+r4slun
+rs4make
+rs4mo.
+rsmål4
+rs6nev
+r1so
+rso9a
+rs5oml
+rso6n5
+rso7n6al
+rso5n8e
+rso5n6i
+rsons4
+r2s1or
+rs5ord
+rso7ris
+rs1ov
+r1sp
+rs4pan
+rs6pat
+r5spel
+r4sper
+r7spes
+r5spi
+rs4por
+r5spred
+r4spå
+rs3s6
+r1s2t
+r4s5tabb
+rs5tank
+rs3tap
+r6st7b
+rs4ted
+rs4tem
+rs5tend
+rsten6s
+rs5ter.
+rstev9na
+r3stil
+r4s5tilf
+r4s5tilh
+r4s5tils
+r4s5tilv
+r5stis
+r4stit
+r6st5k
+rst4r
+rs9tre.
+rs7tree
+r4strin
+r4s5tro
+r5strø
+rst7ut
+rstu9va
+rstyg7
+r3st6ø
+r7stå
+rs5ukl
+rsu9r
+rsu7sa
+rs5usi
+r1sv
+rs8vak
+rsva9ra
+rsvar4s5
+rs1ve
+r3s4vek
+rs5vit
+rsy4na
+rsy3t
+r1sz
+rsøks3
+rs9øye
+6r1t
+rt5ad
+r4t5af
+rta4ka.
+r4tana
+rt3anl
+rta9pa
+r4tarr
+rt3art
+rt3avs
+r4tec
+r4teda
+r3tede
+r2tee
+r4tego
+r4tegr
+r4teie
+r4te3in
+r4teka
+rte6ke.
+r4teki
+r4teku
+rt5e4lit
+rte6ma.
+r3temp
+rten4s5k
+rtentle8
+r2teo
+r7t6er
+r5terd
+r5teres
+r4teris
+r5terk
+r4terå
+r4tese
+r6tesk
+r6testi
+r4teta
+r4tete
+r4tev
+r4th
+rtian8d
+r4tians
+r4tiar
+rti8ar.
+rti5en
+rti6gra
+r4ti3kv
+r4tila
+r4tili
+r4tilo
+r4ti7na
+r2tio
+r2tip
+rti7sa
+r6tiska
+r4tiski
+rt6i9so
+r4tisp
+rtis3s
+r4ti5str
+r3titu
+r2tiv
+rtma6le.
+r5to.
+rt3off
+r9tofo
+r9tok.
+rt3omk
+r4t3opp
+rt6opp.
+rt3ord
+r6t7o6s
+rt1o4v
+rt2r
+rt8ra
+r9tre.
+rt6red
+rt3reg
+rt3rei
+r4t5reko
+rt5rel
+rt5rep
+r7trib
+r4t3ris
+r4t5ros
+rt3rut
+r5t6rål
+rts3ar
+rt4seg
+rts5eng
+rt2si
+rt4s5ja
+rt5ske
+rt3skj
+rt5s4no
+rt3s4pe
+rt4sti
+rt7s6trek
+rt4s5tøy
+rts5unde
+rt3t4
+rtu6en.
+r7tug
+rt3und
+r2t1ut
+rtu8ve.
+rty8da.
+rty8de.
+rtyr5s
+rty6ra
+rt5yt
+rtæ9ra
+rt5øl
+r6t5ås3
+ru3and
+6ruav
+ru6avh
+ru8bl
+ru5bo
+ru4di.
+rud4r
+ruds4l
+ru4ele
+rue4r
+rue3s4
+ruga8l
+ruga5t
+rui3d6
+4ruk
+ruk4su
+rukt3s
+ru9la
+4ruli
+6r7ulk
+rul8ke.
+r2ull
+r7ulv
+r4um
+rum3al
+rum4p9l
+5r2unde
+run5del
+6r3under
+7r4under.
+r5unders
+rund3r
+rund3s4
+run6ge.
+4ru2ni
+run5kr
+r7uly
+ru4nøy
+ru2r
+ru5ra
+ru8ran
+ru8rar
+ru9rer
+rur8ta
+r4us
+rus2h3
+6r7u6sik
+rus5j
+rus7lu
+ru1s4o
+rus5sel
+rus4st
+ru4s4t3r
+r4uta
+ru3tal
+ruta8la.
+r7utan.
+r4utbe
+4rutd
+rut8e
+rute3i
+ru4tel
+ru9tene.
+ru9ter
+2rutg
+r1utk
+rut9o
+6rutr
+rut4re
+ru6trø
+rutto5
+2rutv
+ru5va
+ru4ved
+ru4veg
+ru4vei
+ru4vel
+ru4vere
+ru4ves
+ruvi8
+ru6v7is
+2r1v
+rv4a
+rva7ka
+rva6la
+rve3de
+rve4den
+r4ve5dr
+r4vega
+r4vegi
+r4vegr
+r4veim
+rveis7e6
+rve5kl
+r4vela
+rvel9le
+r4v5eng
+r5ver.
+rve5re
+r2ves
+r2vev
+rvil9l
+rville9d
+rv2j
+r4vos
+r4vov
+r3vr
+rv2s1
+rv5ung
+rvå7r
+4r1w
+rx1
+ry1a4
+ry2dr
+ry7fe
+ry5fl
+ry5ke.
+2ry1kl
+ry7le
+ryl4l5i8s
+4r5yndl
+ry4nes
+ry5nes.
+ry4pa.
+2ryr
+ry8re
+r1yrk
+ryr4ke.
+ry9ro
+ry5rø
+rys6sal
+ry5ta
+ry4tek
+1rytm
+r3ytr
+r4z
+ræ7le
+8r3æ4re
+8r3æ4ren
+rær5in
+rær8t
+ræ8v
+2rø.
+rø8ar
+6røb
+rø4be.
+rø4dek
+rød1s
+4røep
+røf5l
+rø4ke.
+rø4kero
+røk3l
+4røkn
+røk5s4
+røk7t
+røk1v
+2røl
+rø6m
+røm1a
+røn5nes
+rønn5s4a
+rønn5sk
+røn5sko
+5r6øntg
+rø4pe.
+røp9l
+1rør
+rør5d6
+r6ørende.
+rø7ret
+5rørl
+rø2r3o
+rør4sp
+r8øs.
+rø3se
+rø5sla
+røs5v
+rø8ta
+røt9as
+rø1va
+rø5vede
+rø9vers
+rø1vi
+r4ø5væ
+2r1øy.
+4røya
+røy9ar
+røy6ed
+røy6ene
+røy5es
+røy4et
+5r6øyk
+3røyr
+røy5re
+røy8senes
+6røy4s3k
+røy4st
+2rå.
+rå7a
+4råag
+4råb
+3rådet
+rådy9ra
+rå9ene
+2råf
+4rå5g4
+2råkj
+råk3re
+rå2k3u
+råk1v
+4rål
+råle7s8
+rå4let
+rå5let.
+rå5lu
+r5ånd
+rån6da
+2råp
+2r1år
+rårs5k
+rå5ru
+rå1s
+4råsb
+2råse
+rå5si
+2råsj
+rås4t
+6råta
+råta8ka.
+rå5tr
+rå5tu
+2saa
+5saa.
+sa4ba.
+s6abe
+s8abl
+sa5bok
+s3abon
+sa5by
+sa3ce
+sa4dag
+4sadam
+sa4dere
+4sadm
+sa4do
+2sadv
+sae5d
+3saen
+7saer
+1safe
+5saga
+sa4ga.
+sa4gas
+sa4gat
+6sagent
+6s5agg
+6s5a6gi
+sag8na
+sa6go.
+sa4gog
+2s1a2gr
+sag3s4
+sa3ik
+sa5ir
+sa1is
+5sak.
+sa2ka
+3saka.
+4sakad
+sa5kai
+3sakb
+3sakd
+3s4a3ke
+5sakf
+1sakh
+sakh5e
+1saki
+sa4kj
+sak5kr
+s4akky
+5sakl
+5sakm
+4sako
+3sakp
+sa1k2r
+5s4aks.
+sak4s3i
+4s3aksj
+sak4sp
+5saksr
+5saksu
+2s1akt
+sak6ta.
+5s4akto
+s4aku
+4sa7kø
+1s4al.
+sa1la
+4s5alarm
+7sala.
+5sa5lat
+4salb
+1sa3le
+sa9let
+1salg
+s4alge
+4s5algo
+salg6s5
+s6ali
+sal4mes
+sa5lo
+5sal2s3
+sals4a
+4salter
+sa1lu
+3salv
+sal5ved
+2saly
+1s2am
+5sam.
+sa2ma
+sa5ma.
+sam4an7
+sa5mas
+sam5ei
+sa4mel
+sa4met
+5saml
+sam4lev
+5samm
+sammen5
+sa4my
+4s1a2na
+sa9na.
+sa7nar
+sa3nat
+san6da.
+san7d8al
+5s6ande.
+sand5r
+sand5s6lo
+sand5st
+san4d5ø
+1s2a5ne
+4s3a6nek
+5sang.
+3sange
+4s3angr
+s7anken
+2s1anl
+s5anm
+san5ne
+6sanno
+sa2no
+s5anor
+san5os
+san1s
+5s4ans.
+4sansa
+5s4ansen
+san7s6k
+4s5ans8l
+6sansv
+s8ant.
+san9te
+6santr
+4santy
+4s1anv
+2s1ap
+sa2po
+1s2ar.
+1sara
+6sarab
+2sarb
+s4ard
+9s8are.
+4sareal
+4sareg
+sa5rev
+3sari
+sa4ri.
+sar6ka.
+4s3arki
+2s1arm
+sar5me
+sar8me.
+s1arr
+2s1art
+sar4ta.
+sa4ru
+4sarv
+s4ary
+1sas
+8sasju
+2s1a4sp
+4s1ass
+s6ast
+4sasty
+2sasu
+4sasy
+1sat
+sa1ta
+sa5ten
+sa3ti
+2s1atl
+4s3atmos
+sa1to
+4sa5t6r
+s5atsk
+5satt.
+4s3atta
+6s5atten
+satte4s
+5sau.
+sau4d
+sau5di.
+5saue
+4saug
+sau6ga
+s3auge
+sau6ge.
+2s1auk
+5saum
+3saus
+4saut
+2s1av
+s2ava
+sa4ve.
+5s6a5v6in
+sav5n
+3savu
+8s9b4
+sba4ne.
+sbi6e
+sbo4da
+sbu6et
+s6bug
+sbul3
+sby8ta
+4sca
+1sce
+2scel
+s4cene
+s3cer
+6sch.
+8schl.
+6s7cl
+4sco.
+6scoc
+4scos
+s4cus
+8s9d6
+sdag4s5
+sdam9p
+sde6le.
+sdu8en.
+sdu8er
+sdø8v
+1se
+2se1a
+3sea.
+sea4g
+se3an5d
+se7ansa
+sea9re
+5se4au3sk
+2seb
+4sec
+4sedag
+sed5d
+se3de
+5sede.
+5sedl
+4sedo
+2sedr
+2sedu
+6sedvanle
+2sedø
+5see.
+see3d
+2seef
+2seeg
+se6e3i
+se3e4l
+se5en
+seer1
+5sees
+2seev
+2sef
+s1eff
+4s1eft
+6sega
+sega6l
+se2ge
+se6ges
+se3gev
+seg8ga.
+9segl.
+7seglet
+3segm
+4s2e7g8r
+2seh
+2seid
+sei8dan
+sei9den
+sei8e9nes
+s5ei4et
+2seig
+sei6ga.
+sei5ge
+sei5k
+3se8il
+6seim
+2sein
+se3ind
+s3eini
+se6ink
+se3ins
+se3int
+sei5r
+3seis
+2sej
+5sej.
+2se5ka
+3seke
+4seki
+2sekj
+5sekk
+sek4kes
+2sek4l
+4se3kn
+2seko
+se2k1r
+4sekra
+4sekri
+4sekro
+3s4eksj
+4seksp
+sek4st
+sek2t3an
+sek6te.
+sekte9ra
+3sek5to
+4seky
+4sekå
+s2el
+2sela
+se6la.
+3selak
+5selane
+5selar
+sel5art
+s3e4las
+se6l5at
+sel1d
+se4le.
+4se5led
+6selega
+4selei
+4s3elem
+4seleng
+4seles
+4s3e4lev
+5s6elg
+4selik
+4selil
+4selis
+4s3e4lit
+sel6løp
+2selo
+7selol
+se3lom
+3sels
+sel4sin
+8s5elske
+sel9s8lag
+sel4spo
+sel5t6
+2selu
+se6l7u6r
+sel4v5ak
+sel4van
+selv3e4
+sel4ve.
+selvei4
+sel4ver
+sel8vin
+2sely
+2selæ
+2selø
+selø8pa.
+6selå
+2se3ma
+3semb
+7semd
+se5me
+se4mi.
+semini6
+2s1emn
+sem4na
+9semnd
+2semo
+sem5pe
+2semå
+s2en.
+6senau
+sen9d8a
+sen6dela
+6senden
+4sendr
+s2ene
+4sened
+se3neg
+4senem
+8senesa
+6senese
+sene8se.
+s5engas
+2s1enh
+se6nin
+s3enkj
+5sen3n
+s2ens
+4s5ensem
+sen6s5end
+sen4sj
+sen3so
+7s6ent
+sen5ter
+8s7en5trep
+4senum
+4seny
+2senæ
+6senø
+2seo2
+7seod
+se3or
+2sep
+se3pe
+seperso5
+3sept
+s2er.
+se3ra
+4seram
+5seran
+4serap
+5seras
+6serau
+ser5d
+s2e5r4e
+5sere.
+4serea
+4sered
+4seref
+4sereg
+4serei
+4serek
+4serel
+4serenn
+4serent
+4serep
+4sereso
+4seress
+4serest
+4seresu
+4seret
+4serev
+s1erf
+s2eri
+seri6e5ne
+4serik
+4serkje
+5serkr
+5sern
+ser7nev
+2se1ro
+se4rop
+se4ror
+se4ros
+9s6ert
+ser4tak
+ser6tat
+ser4tr
+se1ru
+4serul
+se4r3un
+ser4ved
+ser4vel
+2sery
+2se5r6ø
+2serå
+5ses.
+ses5ald
+5sesals
+ses5alt
+4sesc
+2sese
+se4sene
+ses5in
+se3sj
+4sesje
+4sesjuk
+ses5kal
+ses5kar
+ses5kv
+ses5lit
+se3sna
+5seso
+ses3pr
+ses4s5in
+se1st
+5sest.
+5seste.
+4sesto
+ses5un
+ses1v
+2sesy
+4sesø
+ses3å
+3s2et.
+2se2t6a
+3seta.
+se5tae
+seta8ka
+se5tar
+6setea
+4seteg
+4setei
+4setek
+se7tel
+se4tera
+se5tero
+4setes
+2se3ti
+se8ti.
+s3e4tik
+s3e4tis
+4setje
+5setje.
+7setl
+5setn
+2seto
+2set6r
+s4ets
+s5etters
+2setu
+2setv
+2sety
+6setø
+3seum
+4seun
+seure9ne
+seu2t
+2sev
+seva6ne.
+s8e5var
+sev4d
+sevi4sa
+s1evn
+sev4ne.
+se3vr
+3sevåg
+2seyn
+2seø
+2seå
+1sé
+2séa
+6séb
+4sée
+4séf
+4séj
+4sék
+2sél
+4séo
+6sép
+9sér
+4sés
+2sév
+2s1f
+sfa4ne.
+6sfe
+sfe6et.
+sfes5
+sfisken8
+sflå3
+s5fo
+sfo8ra
+sforlø9
+sfra5s
+sfri5e6re
+sfyrs5
+3sfæ
+sfø9ren
+sfø5rer
+sfø5ri
+6s9g6
+sga4l
+sga8va
+sga4ve.
+sgen9s
+sge4st
+sgå4va
+sgå4ve.
+s1h
+4sh.
+sha2k
+s7hat
+s3hau
+6she
+shea4
+s5hei5
+7sh6e4rif
+s4hi.
+s6hip
+sh5isk
+4shj
+6s7hopp
+3short
+3show
+6shs
+2shu
+4s5hy
+s5hø
+shø8l
+shø6va
+shø6ve.
+s7hå
+1si
+sial5v6
+4sia5m
+si7ans
+4siap
+4siav
+si2bl
+3si2da
+3si4de.
+3si3den
+si4deo
+s4ider
+si5der.
+si4dete
+2si2do
+4s1idr
+sid8ra
+4sidy
+4sieg
+si1el
+sie4n
+si5er.
+si6eren
+sie4s
+si3est
+6sife
+si3fl
+2sifo
+si4f3r
+2sifu
+4sifø
+3sig
+siger4s
+4sigi
+4s3iglo
+si5gr
+4sih
+3sik
+si3ka
+si5ke.
+sik2h7
+sik4ka
+sikk8artet
+sik4k5el
+sik4ko
+siko3
+si4kom
+si4kop
+si4kos
+si4kot
+sikt4s3
+s2il
+5sil.
+3sild
+sil4del
+sil4der
+sil4des
+sil5j
+sil2k
+sil4les
+2silø
+si6mel
+4simet
+2simp
+si3mu
+4sinde
+4s3indu
+si3nek
+2s1inf
+sing4s5a4
+7singu
+si4ni
+4sinj
+2sinn
+3s4inn.
+7s4inna
+s6inne.
+5sinnet
+s3innh
+s5innk
+s3innl
+4sinnt
+si5nob
+sinsk5e
+2s1int
+4sinv
+si6nø
+4si5ov
+si4pa.
+si8pe.
+si6re.
+si7ren
+si4ri.
+sir8kl
+s2is
+si5sel
+si4serf
+sis5e4v
+si6sin
+6sisju
+si4sk
+sis5ke
+si4sn
+si4s5te
+si4sti
+sis3to
+4sisy
+3s2it
+si5ta
+sit8ji
+si6t7ra
+si4t5re
+si4tri
+sit3s4
+sitsva9
+sit6term
+sit4tes
+si4umf
+4siut
+5siva
+si9van
+si6vek
+si8vi.
+si9våt
+1sj
+2sj.
+s2ja.
+8s5ja9g
+4sjam
+s4jan
+4sjanl
+s7jarn
+2sj3av
+6s7jaz
+2sjb
+6sjd
+5s4je.
+sje4f3i
+sje4fla
+sjef5t
+sje3g
+sjek4t5o
+3sjel
+sje4lev
+3s2jen.
+5s2jene
+4s3jent
+5s4jer.
+s2je5s4
+5s4jet.
+sjet4ti
+2sjf
+2sjg
+s6jim
+2sjk
+2sjl
+2sjm
+2sjn
+2sjob
+5sjok
+4sjom
+9sjon
+sjons7
+2sjor
+2sjou
+2sjp
+2sjr
+2sjs
+2s6jt
+s6j3t6sj
+sju1a
+6sjub
+6s7jug
+sju8la
+4sjun
+4sjur
+2s7jus
+5s2jø
+sjø3k6
+sjø1p
+sjø9rø
+sjø1s2
+sjø3t8
+6sk.
+1ska
+2ska.
+4skab
+skabe3
+s2kad
+8skae
+4s6kag
+2skak
+5s4kal8a
+ska5lar
+2skam
+s4kaml
+4s5kana
+4skande
+4skane
+4skano
+6skant
+5s6kap.
+9s8kapa.
+4skapas
+5skapen.
+6skapit
+4skapp
+2sk2ar
+sk5arab
+sk7arbe
+5skard
+4s5kark
+6skars
+4skart
+3s8karv
+2skas
+4skate
+8skay
+4skb
+6skd
+2ske
+s4keda
+s6kedo
+s2keh
+s6kei
+skei5er.
+s8k5e4lev
+s6kelik
+skel3t
+s4kelu
+s3ken.
+s4kena
+s6kenav
+s4keno
+s5kens
+5skept
+s5ker.
+s4kero
+s5kers
+s2ke1s
+ske3si
+skes4m
+ske5sn
+s4ketet
+s3ke4t3j
+s6kev
+s2key
+2skf
+2skh
+1ski
+5s6ki.
+7skia
+4skid
+5skie
+5skif
+5s4kik
+s6kill
+5s4kilt
+ski6net
+ski4nin
+5sk8inns5
+skino6
+5skiol
+5skip
+2skir
+s4kire
+6s5kirk
+sk5irs
+s6kis.
+7skiss
+4s5kist
+5s2kiv
+s6kje.
+5skjema
+6skjemas
+5s6kjer4m3
+3skjer5m4e
+7skjers
+3skjor
+4s5kjærl
+5skjøn
+6skjøp
+skjø5res
+2sk1k4
+2s1k2l
+6skla
+sk5lak
+s6k5lan
+s5klas
+sk9leg
+s6klei
+sk3lek
+sk5ling
+sk5lit
+s4k5luf
+s2klyd
+2skm
+2skn
+s1knu
+4skoa
+7skodd
+4skof
+3s2kog
+2s3koi
+1skol
+7s4kola
+3skole
+4s3koll
+4skom
+s6koma
+s5k6ome
+6s1kon
+4skoo
+sk5ord
+s6korpi
+s7kors
+4skort
+2skos
+s2kot
+3skott
+sk8ra
+s4k9ra.
+5s4kral
+s4krat
+s2k7re.
+4s3kref
+6skreg
+5s8krek
+4s3kret
+5skrevn
+3skrib
+3skrif
+4skrig
+3skrik
+3skrip
+4skrite
+3skriv
+5s4krog
+s3kron
+4s3krop
+sk6rud
+skru3s6
+6skryss
+1s2krå
+2sk1s2
+2sk3t4
+5skud
+1s4kue
+sku4end
+sku4er
+skue5re
+1skuf
+5skulan
+5skular
+3skule
+6s5kulis
+4skull
+s4kulp
+4skult
+skum3s
+2skun
+s6k5underv
+4skup
+8s5kurs
+8skurv
+2skv
+sk5va.
+3skvad
+sk3vas
+s6kven
+sk3ver
+sk5vit
+3skvu
+1sky
+s6kya
+s6kye
+4skyr
+sky3re
+4skys
+6s6kyss
+5s6kysk
+3skyt
+6skæ
+6skø.
+6s5køa
+4skøe
+1skå
+skå5re
+6skåt
+sl4
+sla8da
+s3lade
+sla5ge
+sla8ge.
+sla5ke
+s5laks
+3slakt
+3slal
+4s3land
+slap5pe
+s5laran
+s5lare
+4s5last
+s1lat
+sla4te.
+4s1lau
+s5laus
+sla1v
+3slave
+sla4vin
+2sle.
+s8leda
+7slegare
+5s6legas
+s4legi
+s4legn
+s6legr
+6slei
+slei5er.
+s4leiv
+8s5leke
+s5lekk
+s2lel
+s4leme
+4sle7ne
+s6lener
+s6len6t3
+2sler
+8s5les
+s6lesj
+s4leso
+s6lest
+s4leta
+s5lev
+s4leva
+4sley
+s5lia
+2slid
+sli4en.
+6slig
+sli5ke
+s4likk
+2slin
+8s3linj
+slin6t5
+3slip
+5s4lit.
+3s4lite
+4s5liv
+slob5b
+slott4
+s6lott.
+7slottet
+1slu
+8slu7a
+2slu2e
+slu5es
+6sluf
+4slug
+sluk3s6
+slum4p5
+slum5p6e
+s3lund
+s5luns
+s6lup
+slu7sa
+s4lut
+s1ly
+sly8et.
+1s4lyn
+4s5lys
+sly8t
+slæ6rari
+2sløn
+8s5løp
+slø4pa.
+s6lør
+2sløs
+slø8s5a
+3s4løsi
+slø5va
+slø5ve
+slø5vi
+5sløyd
+sløye7
+9s4lå.
+s4låe
+s1lån
+slå5ner
+1slåt
+s1m
+sma6d
+3smak.
+5s4maken
+sma9let
+4sman
+s4med.
+s4mede
+6s5medi
+s4medk
+smeg5
+4smei
+smek7l
+s4mekt
+8s5meld
+3s4mell
+5s4melt
+2s5men
+3s4mert
+6smes
+s6mesi
+s6mia
+s4mie
+smi4ene
+s4mig
+s6mil.
+smi7la
+s6mile
+smini6
+s2mit
+smo7a
+smo8de.
+s2mok
+6smot
+3smug
+6s5mugg
+smul2
+s6mula
+s4muld
+s6mule
+5smurt
+1s2my4k
+6smøn
+1s2mør
+smør3s
+4smøt
+5små.
+små5r
+s8mått
+s1n
+8sna.
+s4nab
+7snak
+4s3nas
+6s3nat
+4snav
+4sne.
+4sneb
+4sned
+s6nee
+s4neg
+3snei
+snei5er
+sne4kri
+s7nekt
+s4nel
+2snem
+4sner
+6snes
+sne9sa
+snes9v
+4snet
+s6nif
+sni6gl
+s2nik
+snik5ko
+3s2nil
+6s3nin
+3s2nip
+snir4
+5s2nit
+2s3niv
+s8no.
+s6noe
+s5nord
+6s7not
+5s6nud
+s3num
+s4nur
+7snut
+8snyh
+2snæ
+snæ4re.
+5s6nø.
+snø5d4r
+5snøe
+1s2nør
+snø1s
+snø5vi
+so3al
+so8ar
+4soav
+2s1ob
+so2bl
+1sod
+so4da.
+5soe
+sofa1
+so4fag
+so4fas
+6s5off
+6s5ofre
+soft1
+so2ga
+so8gi
+so7gl
+sog6nem
+6soh
+5s4oi4
+so5id
+5sokn
+4soks
+sok4se.
+7sol.
+so4la.
+sol5av
+1sold
+so4le.
+solei5er
+so4lene
+sol5f6
+1so7li
+2solj
+so2lo
+so8lo.
+sol3s2
+sol5t4
+so4lum
+so4lø
+3som.
+so6mend
+4s3omfa
+4s1omg
+5somh
+2s1omk
+4soml
+1som5m
+sommar5a
+3s6omme
+somme6r5e6
+2somr
+7somren
+5somrer
+6s3områ
+s1oms
+som5sl
+s4omst
+som5sti
+4somsy
+1s2omt
+5somt.
+6somta
+3son
+so4na.
+son7da
+7s6one
+so8nea
+song3s4
+so4n3o
+sons4k
+son5st
+so2nu
+so4ny.
+2s1o2p
+so7pak
+so9par
+so7pet
+3sopp.
+5soppa
+3soppe
+sop4pi
+8sopple
+so3pr
+1sor.
+7sora
+so3ran
+5sorb
+4s1ord
+sor4da
+1so1re
+so4rek
+7sorga.
+sor4gl
+so2ri
+4s3orie
+7soris
+so5riu
+4sorke
+sor5n
+3sor5s
+7s8ort
+1sos
+4s5osc
+so8se.
+6sosf
+4sosj
+so4sl
+so5te
+so8te.
+so4tra
+sots4
+sot5te
+sot4ti
+4sou
+2sov
+so3va
+so4ve.
+so5ven
+sover5e
+sove3s4
+5sovet
+3sovj
+sp2
+4sp.
+spa5g6h
+7spak.
+7spaka
+5spake
+8spakk
+s2pal
+s3pall
+5spalt
+3s4pann
+3spari
+4spas
+5s6paser
+4spe.
+spe4a
+8speda
+spe9dé
+s4pee
+1s2pei
+s2pel
+spe4leg
+spe4les
+5spelet
+3s4penn
+s4pent
+s5pep
+spe4r5and
+6speri
+4sperl
+s4perr
+s3pers
+3spesi
+s4pest
+s9pet.
+1spi
+6s5pilo
+4sping
+s2pio
+2spip
+spi7res
+spi7ri
+spi7ro
+5s6piss
+2s3piz
+2s1pl
+8s9plant
+sp9lar
+4sple
+s4plin
+3split
+sp6o
+2spoe
+spo6et
+2spol
+5s6pole
+6s7poli
+s4pora
+s4pore
+5s4pors
+sport6s5
+3sporv
+2s5pos
+4spot
+s3pote
+spo5v
+9sprag
+5spran
+6s3preg
+5sprei
+s4prek
+spre5ke
+s3prem
+5s4pren
+6s5pres
+5s4pret
+s6print
+s5prio
+8sprinsi
+8s3pris
+8s7pro
+6s5prob
+s3prod
+4sprof
+5sprog.
+5sproge
+5s6pross
+1spru
+s4pry
+3sprøy
+5språ
+2s3ps
+8spub
+2spul
+3s2pyd
+5s2pø
+6s3pøl
+sp5øy
+9spå.
+5spåd
+8s9r
+sre8ka
+sre8ke.
+sri8e9
+sri8ka
+sri8ma
+sri4ve.
+s5ro
+sro4e
+sro6pa
+sro6sa
+sro6se.
+sro2t
+sro9te
+srot5o
+srø1v
+srå4da.
+sråde9r
+srå6ders
+srå8ma
+4s1s
+s7sabel
+s7sabl
+s6sae
+s4saj
+ssa8ke.
+ssa6la.
+ss5all
+ssa4me.
+ss5amp
+s5sane
+s7s8ar.
+ssari8e9n
+s7s6arm
+s4sarr
+ssar8ve.
+ss6as
+ssau8sa
+ssau6se.
+s6seet
+s2seg
+sse5ge
+ss5egg
+ss4el
+sse5li
+ssel5s
+ss9elv.
+ssel5v6å
+s2sem
+s5sen.
+sse8na.
+ss5enden
+s5sene
+s4seni
+ssen6ke.
+s4senu
+s6senå
+s5ser.
+s6serab
+s6serat
+sse7sk
+s4seski
+s4sest
+s7set.
+s9sets
+s2seu
+s4sey
+s2sh
+ssi4a
+ssi7e6rer
+s4siff
+s6silo
+s8s9ime
+s6s3ind
+ss5init
+ss3inj
+ss3inn
+s4s3ins
+s5sis4
+ssis5m
+ssi6v7end
+s5s6jarg
+ss4kape
+ss3kar
+sska8ra
+ss3kof
+s7skog
+s4skor
+ss6ky.
+ss4kye
+ss4kå
+ss5kål
+s7skåp
+s2sl
+ss1lo
+ss5ly
+s2sm
+ss6nar
+ss2no
+ss4nø
+s4s5nød
+ss5nøk
+s2sof
+s4sok6
+sso5lo
+s2som
+ss4oma
+sso3ra
+s4sorga
+ss3ove
+ss6pil
+ss4por
+ss9ri
+ss2t
+s5stad
+ss4ted
+ss3tek
+sstel6li
+ss5tep
+ss7tilp
+s7stip
+sst6r
+ss5tren
+ss4trå
+ss3tus
+ss3t4v
+s2sul
+s3sur
+ssva7ra
+ss1ve
+ssy6na
+ssy5r
+ss7øye
+s6så
+6st.
+2s1ta.
+stabs3
+3s6t2ad
+stad3a
+sta6d3o
+s5tafa
+3stafe
+sta5fl
+st3aft
+sta7ge
+4stah
+sta6ka.
+5stakk
+4stakl
+6stal.
+6sta4la
+sta5lak
+st5ald
+4stale
+sta4le.
+5s6tali
+5stalt
+s3tame
+3stamm
+sta5na.
+3s4tand
+6stande.
+st8ane
+s4tanf
+s4tang
+stang5s6
+st3anl
+sta8n9o
+s6t5antr
+st3anv
+4stao
+2stap
+s7tapa
+s4tapp
+s8tapå
+s3tari
+1stas
+3s8tasj
+4s5tast
+1stat
+4stato
+sta5top
+sta3tu
+3stave
+2s4t5b
+st7c
+2std
+2s3te.
+2stea
+2steb
+3sted.
+s4teda
+5stedt
+s2tee
+2s4tef
+3s6teg.
+stega6l
+s4tege
+3stegh
+4s5tegn
+s4tegr
+4stegsp
+5stegspl
+ste4her
+s2t4ei
+stei5er
+4steikn
+ste6in6s5
+3s4tek.
+4s4teka
+s6teke
+ste4ket
+s4teki
+4s5tekn
+4steko
+v4s5tekst
+s4tekt
+s8te5kv
+4stela
+ste5le.
+s5teleg
+ste5lev
+s5telig
+5stemd
+3s4temm
+5stemn
+4stemø
+sten5a
+ste4nar
+5s4tenen
+s4tener
+4ste5nes
+3s6teng
+s4teni
+6stenk
+4steno
+stens5l
+4steo
+s5teol
+2step
+step7per
+st8er.
+8s5tera
+s4teram
+s6terest
+s4terev
+s7t6erf
+s4terid
+ste7ris
+s6teri6v
+4s3term
+6sterr
+ste5run
+2stes
+s4tese
+ste7sle
+4stet
+s4teta
+ste7t6r
+s6tetø
+4steve
+4stevi
+6stevl
+5stevn
+6steå
+2s4t5f
+2stg
+stga6ve.
+stgå8va
+stgå8ve.
+2s6t5h
+st5he
+2s3tia
+4stib
+s5tibe
+s9tibl
+3stic
+6s5tid
+s6tidel
+sti5en
+s2tif
+3stift
+s4tigen
+7s6tigi
+st9i8gj
+3stign
+s5tij
+6s5tika
+4s5tike
+s4tikl
+3s6til.
+5s4tila
+sti4lag
+4stild
+3stile
+stile9ge
+s6tilk
+6stiln
+s4tilo
+6s5tils
+5s4tilt.
+6s5tilta
+5stilte
+4stime
+sti7mer
+6stimé
+3s6timu
+s6t3ind
+s6tini
+4s6tinn
+s6tinst
+s6tint
+1s2tip
+4s3tipp
+6stips
+5stir
+2stis
+6s7tisk
+4stitt
+4stiå
+s4tja
+5stjel
+4s3tjen
+s6t5jent
+3stjer
+4stju
+2stk
+2stl
+2stm
+2st5n2
+s2to.
+1stof
+2s3tog
+4stoks
+6stokt
+3stoli
+4stolj
+s5toll
+4stom
+s9tomm
+st3oms
+6s5tomt
+4stoni
+st3ope
+st5oppl
+6s8t5ord
+sto4ret
+s6torm
+stor3o
+4stors
+st5o4s
+s1tot
+sto4t5r
+5s6tore.
+st5ou
+5stova
+2stp
+8str.
+st3ra.
+4s5trad
+s8traff
+6strafi
+6strail
+st3ral
+st4ran
+stra8na.
+5strand
+4strane
+6strans
+4strap
+4strar
+st7ras.
+st7rast.
+5s4traum
+s4tre3a
+s4tred
+7s6treik
+st5reis
+7strek.
+st5rekl
+6streni
+st5rer.
+6strers
+6strh
+9stria
+9s8trid
+5strie
+st5rige
+st3rin
+3s4t6rip
+5stri3s
+6stroe
+s5t4rog
+5s4trok
+st3rol
+6s4t5rom
+st3ron
+st7rop.
+st7ro6pa
+s6trope
+s6t7rug
+9s6truk
+st5rum.
+2stry
+6stryg
+s7trykt
+4s3træ
+1s2trø
+6s5trøb
+st6røm
+4strør
+4strøs
+st5røse
+s5trøst
+4strøy
+6stråd
+2st5s6
+stsa6me.
+stsy8na
+4st7t6
+stta6le.
+st3t4r
+s4tua
+1s2tub
+3s4tud
+s2tue
+stu4el
+stu4er
+stue5re
+3s4tum
+6s3tung
+6stunn
+3s8tunt
+6stur
+2s4tut
+2stv
+s3t4ved
+1sty
+2stya
+2styd
+3s4tyk
+sty6l
+2s5tyn
+2s7typ
+3s4tyr
+styrs3
+6stysk
+4styv
+sty5ve
+1stø
+2støk
+5støl
+6støm
+5støp
+6størk
+5støt
+stø7va.
+stø5var
+stø3ve
+stø5vi
+st8øy
+1stå
+5s4tåe
+stå5k
+4su.
+1su4a
+su7a8l
+1su2b
+sub7l
+sub3o
+5subs
+s3ubå
+1sue
+su8er
+su2f
+5s2ug
+su6ga.
+su4ge.
+sug3g
+su2h
+3sui6
+su3is5
+suit5a
+su2k
+4s1uke
+3suk5k
+suk3r
+1suk5s
+su4le.
+3s4ulf
+su4lik
+sul4t5r
+s1ulu
+2suly
+sulæ5
+3s2um
+4s3umid
+su2mo
+sums6
+5sund.
+8s5under
+5sundet
+5s4undi
+sun6d7r
+9sunds
+sun4ge.
+6s7u2ni
+su4o
+3s2up
+su4pe.
+super3
+supi9
+sup4r
+su8pre
+sur5d
+su4re.
+4s3u4rei
+1surf
+su4rie
+su4riu
+surs5k
+sur4sp
+sur4sti
+1sus
+su3san
+su4se.
+su6s5es
+4susi
+su4sik
+sus3p
+sus3s
+su2sy
+2s1u4t1
+sut6ra.
+sut8reg
+7suv
+8s5u6vi
+sv2
+6sv.
+sva5a
+svai5
+5svak.
+3svake
+6svaks
+sva4la
+sva4les
+6svalet
+5s6vali
+7s6vam
+s4var.
+s4varet
+s3varm
+3s4vart
+6s1vas
+6s1veg
+sve6g7i
+s5veie
+3s4veis
+s5veka
+6s5veks
+5s4vens
+sverd5s4
+sve4re
+sve8res
+3s4verg
+5s4verj
+s5verk
+sver4ki
+s4verm
+6s7verv
+7s4vev
+s4vie
+svi6e3l
+4svig
+svi5ke.
+6svikg
+4sviks.
+3svikt
+4s5vikti
+4svil
+s6vindel
+svi4nes
+sving5s4
+ll6svint
+4svir
+2svis
+svi4sa.
+svi4se
+svi5sen
+svi5ser
+s8viv
+svi9ve
+4svol
+5s2vor
+svor7t
+s3vr
+3svul
+5s6vulm
+s3vy4
+svye7ne
+1s2vø
+4svæs
+2s7vå
+1sy
+sy4c
+sy4de.
+sy5den
+5sye
+sy2er
+sy8ka
+sy4ker
+sy5kere
+2syko
+sy6kog
+s4ym
+sy7me
+s2yn
+4s5yndl
+synk4
+syn6sk
+syn3te
+sy4ra
+sy5rar
+s6yre
+sy4re.
+2s1yrk
+syr4ka
+syr4ke.
+3sy1s
+sy4se
+sy2sl
+sy2s3t
+sys4tr
+2sy2t
+sy5ten
+sy5t6h
+9sytt
+sy2vå
+s4z
+sz3c4z
+6szt.
+1sæ
+sæ2l
+8s3æ4re
+8s3æ4ren
+sæ4r1i
+særle9
+sær5s8
+7s6æ5te4
+4sætt
+1sø
+4sø.
+sø2d
+s1øde
+4søf
+søg4
+4søj
+9søk.
+3s6øke
+5søkj
+5søkk
+søk7kj
+3s6økna
+2søko
+søk4sk
+søk6s3e6
+5s6øksm
+søk4ta
+3s4øl
+sø4la.
+sø4le.
+sø5let
+3s2øm
+sø6må
+3sønn
+s1øns
+s4øp
+sø4ras
+sø4re.
+sø4r5end
+søren6de.
+sø8ret
+sør9ett
+7sørl
+sør3s
+sør5ø
+3s2øs
+4søs.
+sø8sa
+7søt
+sø7tast
+sø7tel
+sø5tes
+2søv
+s1øve
+3søvn
+2s5øy.
+4s3øya
+søy8de.
+6s5øyd
+8søye
+3søyl
+6s5øy4n
+søy2r
+2s7øys
+5såg
+s3å2ke
+5s4ål
+så4le.
+6s1ån
+sån4da
+sån6de.
+så2p
+9såpa
+så5pet
+6s1åpn
+såp9u
+så2r
+så6ra
+sår9ast.
+så4re.
+sår3sk
+sår7ø
+så2s
+s7åsa
+s4åsb
+s5åse
+sås5k
+sås5t
+9såv
+såva7
+ta1a
+4tabo
+tab2r
+tab2s
+ta4bu.
+4tabø
+ta1c
+4tad
+ta2da
+ta8d3ei
+ta6d3e4t
+tad5spa
+tad7s6v
+ta6du
+t8ae
+6taei
+4taek
+4tael
+1taen
+4taend
+4taenh
+ta6es
+2ta5fe
+taf7f6
+5tafis
+4tafl
+1tage
+4tagj
+8tah
+ta7is
+1tak.
+ta4ka.
+4takau
+ta7ken
+ta5ker
+tak7kel
+tak5k4l
+ta8k9la
+2takr
+tak4sal
+tak6se.
+tak4si
+4t3aksj
+5takst
+tak4tal
+4taktig
+tak4to
+t5aktø
+ta1ku
+tak3v
+1tal.
+ta9lam
+ta3lan
+tal5ang
+ta7las
+3tale
+ta4lei
+tal5eie
+ta4lek
+ta5ler.
+tale7s6
+1talg
+tal6ge.
+7talj
+talj5es
+tal4led
+tal4leg
+8t7allerg
+tall7es
+tal8lign
+tall6s9a
+tal4ly
+tal3op
+6talter
+t5altern
+ta6l9u
+ta6lå
+2tamb
+tamba6ne.
+t3ambi
+t4ame
+4tamet
+tam4i
+2ta3m4o
+t6an.
+ta2na
+4t3anal
+ta3nar
+ta5nas
+ta5nat
+t5andak
+5t6ande.
+t7andel.
+t5andele
+tand5r
+tandø4
+tandør5e
+1tane
+ta4nel
+ta5nem
+4tanett
+t3anfa
+tanfø6
+6tangf
+6t3angr
+1tank
+2tanl
+t3anle
+2t1anm
+3tannl
+t5anno
+tanns4
+tan6sk
+tans5ka
+t5an5sl
+4t5anstr
+4tansv
+8tantil
+tan4tra
+6t7antre
+t3anve
+2ta3o4
+5tap.
+ta4pa.
+1tape
+ta4pe.
+3tapi
+4tapl
+4tappa
+5tappi
+1t4ar.
+t6ara
+ta4r3ak
+4taram
+ta6rare
+2tarb
+3tarbo
+5tarbø
+4t9arena
+6t7ark.
+tar8ka.
+4t5arke
+4t3arki
+4tarra
+tar9si
+tar7sp
+tars6v
+4tart
+tart7est
+t5artik
+tar7tit
+tar4t3r
+ta6r5å8k
+4tasa
+ta3se
+6t9asf
+t3a4sia
+tasi3e
+ta4sif
+ta4sil
+ta4si5s4
+tas4p
+tas5s4
+6ta7sto
+ta7str
+4tasu
+ta1ta
+ta7tes
+tate8se.
+tat5e4v
+tati1
+tat3op
+tat2s1
+tat3te
+t3attr
+1tau
+9tau.
+7taue
+4t5aug
+2t1a4uk
+4taun
+tau4ne.
+tau4sk
+2taut
+2tav
+6tavin
+3tavl
+4tavli
+ta9xy
+6t1b2
+tba3d
+tba2n
+t6be.
+tbe6te.
+tbe6t7r
+tbe6t8ra
+tbo6da
+tbu8da
+tby3k
+tby4s
+tby7te
+2tc
+t1ce
+tcen4
+tch5e
+t5co
+2t3d
+tdy5pe
+1te
+4tead
+4te3ag
+2teak
+2te9a8l
+tea6m
+2tea2n
+2teap
+2tear
+te5arb
+tea4s
+3teatr
+4teatt
+2teau
+2teav
+4teb
+t5ebb
+tebu8da
+4tecel
+te1co
+2ted
+6t5eddi
+3tede.
+4tedeb
+te7def
+4tedek
+4tedel
+4tedem
+te5den
+4tedi
+5tedil
+4tedo
+tedo6en.
+tedo4er
+tedo8et.
+te4dor
+ted4sk
+ted4sl
+6tedu
+4tedy
+tedyr9k
+4tedø
+te3e4
+2tef
+8tefa
+4tefi
+4tefl
+4tefo
+tefo8r
+t3efte
+3tefø
+2tega
+5tegat
+4t3egd
+te7gea
+te9gee
+4tegg
+teg8ga.
+2tegh
+te4gim
+2tegj
+2tegl
+te3gla
+te9g8li
+8tegs.
+6tegspl
+6tegsv
+2tegu
+tegvi8
+2tegå
+5tegås
+4teh
+5tei.
+2tei4d
+t3eie
+t3eiga
+tei6ga.
+t7ei6ge.
+6teigr
+3teikn
+tei5le
+te1im
+6teinf
+te4inne
+te5inte
+te5i4s
+6teiso
+2tej
+te7ken
+te5ker
+4tekil
+2tekj
+5tek1k
+2tekl
+te5k4la
+tek6lede.
+tek4li
+4teknu
+2teko
+2tekr
+te7kra
+te6k5ru
+9teks.
+4t3eksa
+t3ekse
+4teksp
+t4ek8st
+tek8t9r
+tekt4s
+tek6ty
+2teku
+te2k3v
+4teky
+2tekø
+4tekå
+2te3la
+tel6ak
+5te4l5ar
+3telav
+8te4le.
+4teled
+4telei
+4telek
+4teleme
+te4lene
+6teler
+te4les
+te5lesk
+4te4lev
+te6leva
+4telid
+4telik
+4telil
+4telin
+te4lir
+4telis
+4telit
+4teliv
+tel5lef
+tel4lei
+tel4lev
+tel8lign
+tel4lo
+2telo
+tel3se
+telses5
+t3elsk
+tel7s6v
+5teltet
+2te1lu
+7telut
+2tely
+6telæ
+2telø
+telø8pa.
+2telå
+2tem
+3temae
+6teman
+te4mans
+t5emba
+6temenn
+5temik
+tem9ma
+6temn
+tem5ne.
+tem5ord
+tem5pe
+tempe8l7
+3tempo
+tem3s
+4temø
+3ten.
+te5nab
+te4n5al
+ten8am
+te4nan
+te4nat
+ten5at.
+6t7enc
+6t5en6den
+4tendr
+4tened
+te5neg
+6tenem
+6tenerg
+5tenes
+4tenet
+2teng
+7tengon
+t5e4nig
+7tenik
+5tenis
+4teniv
+ten9no
+te4nom
+te5nor
+6tenorm
+4tenot
+te6nov
+6tenó
+ten3sa
+ten5sko
+ten6slu
+ten3so
+tens5v
+ten4t5in
+tentle8ge.
+4tenum
+4teny
+4tenæ
+2tenø
+ten5øks
+2teom
+5teon
+4teop
+te6ora
+4teord
+2teov
+2tep
+te3pa
+4tepak
+tepa9ra
+4tepas
+4te5pe
+7tepee
+9tepé
+tep6pere
+t5e6ple
+4tepr
+4terac
+te7rakk
+6teramm
+ter7apa
+4terapp
+te4rare
+6terasa
+4terase
+7terast
+terba6ne.
+t6er5d
+4tered
+4teref
+4tereg
+4tereis
+te4rel
+8terem.
+6teremm
+te4r5eng
+teren6ga
+6terenn
+4terep
+te4rerk
+ter5esti
+4terett
+6terevo
+3ter5g
+3terh
+te4rig
+4terik
+4terisi
+te4riv
+ter5j
+4terk.
+4terke
+4terkh
+7terkr
+6terks4
+4terkt
+terla6ga
+terle7ge
+terle6ve.
+ter8ma.
+ter3no
+tern5s
+te5ro.
+tero6e
+te3rof
+4teroll
+4terom
+5teromr
+4te3ros
+4te3rot
+tero6v
+ter5r
+5ters.
+5tersjøo
+ters4kl
+ter7s6ko
+ters4l
+ters4h
+ter3s4m
+ters6ne
+ter5sv
+tersø6ke.
+3ter3t
+ter9to
+ter9ul
+8terum
+ter7v
+tervi6se
+2tery
+ter5ør
+4terøt
+te4r3øv
+4teråd
+te4r3ås
+t4es
+5tes.
+2tesa
+5tesar
+te7sen
+2te1sh
+4tesid
+4tesik
+6te3sin
+4tesit
+4tesj
+6tesjef
+4te1sk
+t9es6ka.
+6teski
+te5sko
+2te1s2m
+7tesmåe
+2te1sn
+2te3so
+6tesp
+5tesr
+3tess
+5test.
+4testaf
+tes5tas
+4testat
+5tes7te.
+4te5stei
+te5s6tiv
+5testid
+tes4tik
+4te5s4til
+4te3sto
+4te3str
+4testy
+4testø
+2tesu
+4te1sv
+tes8væ
+2tesy
+2te3sø
+te7så
+te8sår
+teså9re
+3tet.
+teta6ka
+teta6le.
+te4tap
+te3te
+5tete.
+tete4e
+4teteg
+4tetei
+4tetek
+4tetem
+2teti
+3tetik
+3tetis
+2tetj
+2teto
+2t8et2r
+3tet2s
+tet5ti
+tett3s
+2tetu
+5tetu.
+2tetv
+2tety
+te2t3å
+2teu
+teu8k
+t1eur
+3teus
+2tev
+t6eva
+te4valu
+3tevl
+tevo6r
+te3vr
+2tey6
+2teø
+2teå
+4téa
+2téb
+2téf
+2téh
+2téi
+4téle
+2tém
+2tése
+4tést
+6t1f
+tfe6e
+tfe4l
+tflå3
+t7fo
+2t3g2
+t4ga.
+tge4a
+tgei5
+t4gi.
+tgi5ros
+tgrei9e
+t4gå.
+2t1h
+t4hap
+t4hea3
+thei5m
+tho7li
+tho3re
+3thr
+thu5le
+thu6s
+thy5r
+1ti
+2tiad
+ti3ag
+2ti1ak
+4ti3all
+ti5als
+2tia2m
+2ti1ap
+ti3asp
+4tiau
+2tiav
+2tib
+2tick
+3tid
+ti2da
+4tidan
+tid7d
+6t3idee
+4ti5dem
+4t7idé
+4tidis
+4tido
+4tidr
+2tidu
+tidvi4
+6tidy
+4tidø
+ti1e2
+2tief
+2tiei
+2tiem
+4tienh
+tie5ra
+4tierf
+4tierk
+ti4ert
+ties3
+ti3esk
+ti3et
+4tieta
+4tiett
+2tifa
+tifa8ne.
+2tife
+4tifl
+2tifo
+2ti5f6r
+t8ifrå
+4tift
+tif5te
+2tifu
+4tifø
+ti9ge.
+4tigj
+2tign
+3tigno
+ti6gun
+2tih
+2tii
+2tij
+ti3ka.
+6tikarr
+ti5ke
+4tiket
+4ti5ki
+6tikj
+tik4kj
+2ti3ko
+2ti1k2r
+ti3ku
+6tikular
+6tikult
+6tiky
+4tikø
+t4il
+tila6ga
+til1d4
+3tilde
+2tile
+ti3lei
+3tilfe
+3tilg
+til3id
+4tilke
+3tilkn
+4tille.
+4tillh
+4tillin
+tillø7
+4tilm
+7tilnæ
+3tilst
+til3t4
+4tilte
+2tilu
+2tilø
+ti7mab
+5timat
+ti4me.
+5timedie
+ti4mera
+5timeri
+2timl
+4timo7
+4tim6o8r
+2t1imp
+tim7s
+2timu
+2timy
+2timø
+ti6nab
+tin5art
+4tinaz
+2tind
+t3indu
+ti4nem
+4t1inf
+tin5ge4s
+6ti4nit
+6t5inj
+2tink
+7tinks
+4t1inn
+6t5inne
+ti5no
+tinsk5
+4tinsp
+4t3inst
+4t1int
+2tinv
+4tinva
+4tiny
+9tiol
+6ti7om
+tion9s6
+4tiop
+ti1or
+ti1ov
+ti3pa
+ti6pla
+4tipr
+3tips
+2tir
+tira4t
+ti4ref
+ti1ro
+6tisak
+4tisam
+ti5s6an
+ti3se
+4tis4ei
+4tisek
+4tisel
+4tisem
+4tisep
+tise8ra.
+4tisers
+6tisig
+4tisio
+4tisje
+4tisju
+tis4ka
+4tiskan
+4tiskil
+tis5kok
+6tisku
+tis5l
+4tisn
+4tiso
+6tisprå
+4tistat
+tis4ti.
+tis4til
+ti5stre
+4tisty
+4tistø
+ti8støy
+2tisy
+2tit
+ti7ta
+ti3te
+ti1tj
+3titl
+tit4r
+tit3s
+3titt
+4tiub
+2tiut
+ti4v5and
+tiva9re
+ti4v5art
+tiv6is
+2tivo
+tiv5si
+tiv5sk
+4tiy
+ti5ær.
+ti7ære
+ti9ært.
+ti1ø8
+2tiå
+6t3jag
+2t1jak
+t5jarn
+2t1je.
+2t1jeg
+2tjel
+1tjen
+tjen6st
+6tjep
+2tjer
+t5jev
+2t1ji
+5t6jingan
+5t6jingar
+2tjo
+t5jord
+2tjub
+tju4e
+2tjun
+6tjur
+3t8juv
+tjæ4res
+2tjø
+4tjå
+4t3k2
+t6kag
+tka8ra.
+tkly9
+tku6le.
+tkå8pa
+6t3l6
+tla4ga
+tla8te.
+tle6da.
+t4ledr
+t6lef
+tlei5er.
+tle8se.
+tle5ti
+tligh6
+tlight5
+tli6nes
+tli4te.
+tlu4e
+t6l7ut
+tlø4pa.
+tl7øy.
+tlå3ne
+tlå7r
+2t1m
+tma3d
+tma8ge.
+t6maku
+t2mam
+t2meg4
+tme3in
+t2mek
+tmini6
+tmin5s6
+t2mos
+tmå4la.
+8t1n
+t3na
+t6nee
+t4neli
+t7nelig
+tne4rek
+tne4r5ø
+tne8se.
+t4nesk
+t4nest
+t5ni
+t8no.
+tn5sk
+tnæ6re
+7toan
+7toar.
+toa6t
+6toau
+2toav
+tobe6r
+t3o2bl
+6tobs
+4toc
+to5da
+to9de.
+to4dera
+3todo
+1toe
+2toek
+6toel
+toe4t
+2tof
+6toff.
+t3ofre
+to5fri
+to2g3at
+to7gen
+4togg
+to6gl
+6tograv
+to4gre
+tog3st
+to2gu
+2toh
+toil3
+2to1in
+4toj
+t6ok
+1to3ke
+to3ki
+2tokj
+2tokk
+tokk5end
+to3kl
+5toksi
+5tokt
+2toku
+to4l5arm
+5tolat
+to5lel
+tolele7
+5tolera
+toli8ne.
+2tolj
+1to4l3k
+7tolki
+tol4lab
+tol4lag
+tol6leg
+tol6lett
+3tolo
+tol5tr
+4tolå
+to9ma.
+2tomb
+to5mene.
+2tomf
+4tomg
+to3mi
+to5mise
+to7mist
+4tomk
+tomlø8pa
+t8omm
+2tomr
+4tom1s
+5toms.
+1ton
+to5na
+to4ned
+to4nel
+tong5s4
+to8nib
+2tono
+ton3sa
+ton5s4l
+ton5sp
+2tonu
+to4ny.
+2to3o
+4to1pl
+4toppd
+6toppg
+6t5opple
+4t5opplæ
+top4po
+4toppt
+4topr
+to1ra
+to4rak
+tor5alt
+tor5ang
+to4r5ant
+to4r3as
+4tord
+tor8da.
+to1re
+6toreg
+to4rek
+tor7eks
+to7rem
+6torent
+5torer
+tore4t
+tor5ete
+4torga
+tor5int
+tor7me
+torm5s
+tor5na
+tors4i
+tor5t8
+torvei5
+to4rø
+4torå
+to1s
+4tosa
+4to3se
+to2sh
+6tosj
+tos5ke
+to8sku
+4tos2p
+2tosy
+4tota
+to5te
+to8ti.
+to5to.
+to4tor
+6toty
+2tov
+to1va
+to7veg
+to5verd
+tove7re
+t5overs
+5tow
+4toø
+6t3p2
+t7pa
+tpi7ne
+tpi7pi
+tpo4et
+t4påk
+tr4
+8tr.
+6t9rabat
+3trafi
+tra8ka.
+trak7to
+t5rane
+3t6rans
+tran7ske
+5trap
+tra3pe
+tra5po
+tra5r4
+5trase
+tra5se.
+tra5ses
+5trasé
+t2rat
+t5rate.
+3trav
+tre4al.
+tre1c
+4t3reds
+t3refu
+6t1reg
+t5regi
+4trei
+tre5int
+6trek.
+4treke
+4trekl
+4t3rekor
+4trela
+3t6re7na
+tre5ne
+t6reng
+3t6reni
+4t3renn
+tren6sk
+t7repe
+t5repres
+t2rer
+t4rero
+t4re3ru
+2tres
+6tresi
+tre5sko
+tres4l
+3tresn
+t5resu
+t1ret
+t4reta
+t6reto
+t5retted
+5t6rettel
+4trev
+tre9va
+t6rib
+4t1ric
+4t4rid
+tri7ei
+t5rig.
+t4rikk
+t8rina
+t4ri5ne
+4t5ring
+3trinn
+7t6rio
+t4rist
+tri5to
+t4riu
+t2riv
+tri7vi
+5trix
+3t4ro.
+5troa
+tro9ar
+3troe
+t4rof
+tro5g
+3t2roi
+tro3in
+t4rok
+t2rol
+4t3rom.
+t6rond
+5t4rong
+tro5per
+t2ros
+5t6rosk
+tros3l
+tro1v
+t8ru.
+t8rua
+7trua.
+5trued
+5truet
+3trug
+tru1i
+5trukn
+t3rull
+2t1run9
+t3rund
+4trupe
+tru5sa.
+7t6rusk
+2trut
+t5ruta
+t3rute
+t3ruti
+tru5v
+try3dr
+3t2ryg
+tryg5ge
+7trykk.
+5trykke
+try7pe.
+t6ræ
+trø8a
+t5rød.
+t5rødt
+4trøk
+4trøm
+2trør
+5trøt
+5trøya
+5trøye5
+trøy9et
+4trøyr
+6trøys
+5trøyt
+trå8da.
+4trådet
+trå4dr
+t6råkl
+t3råst
+4ts
+6ts.
+t5sa.
+t5sab
+tsa2g
+tsak6se.
+ts1an
+ts4ang
+tsau6r
+t1sc
+t6scha
+t6sch5k
+t5se.
+tse6d
+tse4er
+ts5ege
+tsei4d
+ts3eig
+ts2em
+t3sen.
+ts4ende
+t5sendi
+tsen8ka
+tsen6ke.
+t5sens
+t4sentu
+t5ser.
+t3seri
+t4s3erk
+tser3o
+t5s6ers.
+ts4es
+t4sesk
+ts5e6st
+ts3eta
+tse4te.
+ts1e4v
+ts3f
+ts4fæ
+t7s8hop
+ts7ill
+ts3inn
+t4s3ins
+t5sir
+ts5jeg
+tsje5t6sj
+ts5jor
+5t6sjov.
+t7sjuk
+t4sjur
+t5skad
+t4skan
+ts6kis
+t4s5kjed
+ts6kjø
+t5skol
+t6skoll
+t7skot
+ts5kren
+tsk5ru
+ts5krø
+ts1k6v
+ts9kvi
+ts6ky.
+t6s7kyn
+ts1l
+t7s6lo.
+t3s4lot
+ts2lu
+ts5lø
+t5smit
+tsmå6la.
+ts1o
+t4s5o4d
+t5sok
+t5somst
+t5spek
+t3spel
+ts2pi
+t2s3pike
+t3s4por
+ts5s4
+t1st4
+t2s3tabb
+t5stad
+ts3tak
+t4s3tal
+t5stand
+t5stang
+t5star
+t5stat
+ts6tau
+t3sted
+t4steg
+t4stek
+ts6tig
+ts4tik
+t4stilk
+t4stin
+t4stit
+t2s1tj
+ts5ton
+ts5tors
+ts5tree
+t4s5tren
+t4s5tro
+ts3try
+ts6trål
+t5stu
+ts3tv
+t4sua
+tsu7ge
+tsu4l
+ts3uli
+ts3u4r
+ts5usi
+ts1v
+t3svik
+ts1w
+t5syk
+ts5yt
+tsø8ka
+ts5økni
+ts5øv
+tsøy8er
+ts1å
+tsåt8
+6tt
+t1ta
+t3ta.
+t2tab
+ttaba6ne.
+tt9abo
+tt5adr
+t2taf
+tta9fr
+tt3aft
+tta4la.
+t6t3ald
+tta7lel
+ttall4
+t4t3ana
+t5t6ane
+t4t3ang
+t4tans
+t4tanv
+tt5appe
+t7t8ar.
+ttare6
+t4tarr
+tt5ar5t
+tt6arta
+t4tase
+t4tasj
+t4tav
+tt3avi
+tt5avk
+tt5avr
+t3te.
+t2tea
+t3ted
+t4teda
+t5tede.
+t8tedr
+t2tee
+t4tef
+tt3eff
+t2teg
+t2tei
+tt7eid
+tte3in
+t2tek
+tte7kv
+tt7elev
+tteli6te.
+t4tem
+tte4ma.
+tt5emn
+ttem8na
+ttem6ne.
+t3ten
+t5ten.
+t4tena
+t5tene.
+t4teni
+tten5s
+t9tens.
+t4t5ense
+t2teo
+t5ter.
+t4terei
+tter5un
+tte4r5ø
+t4terå
+t4tese
+t4tesi
+ttes6ke.
+t4tesl
+t5tet.
+t4teta
+t4tete
+t1té
+t4th
+tt5he
+tti5a
+t4tidel
+tti3e
+t2tif
+t5tig
+tti4g5j
+tt3ind
+t5tine
+t7tiné
+t5ting
+t4tini
+t4t3ins
+t4tisj
+t6tisti
+t7tite
+ttle6de.
+ttlin5
+t1to.
+t5tofr
+tt5om.
+t7tomr
+t2ton
+tton6na
+tt3opp
+t5tora
+tt3ord
+tto5re
+tt5o4ri
+tt3orm
+tto5u
+ttpar4
+tt6pås
+tt9raka
+tt5rake
+tt3ram
+tt3rap
+tt7rat
+t4t3rep
+tt3res
+tt3rev
+tt5rom
+t5trop
+t5try
+t2t1rø
+t6ts
+tt7saf
+tts3ar
+tts5kan
+tts5kj
+ttsla6ga
+tt3sok
+tt5still
+tts5top
+tts5tra
+tts5tøy
+tt3ugl
+t1tum
+tt1un
+ttun6ge.
+tt1ut
+tt8ute
+ttva8la
+tt5ve
+tt6vun
+t5tw
+t5ty.
+tty8e
+tt1y6t
+ttæ6
+tt3ø4l
+t1tør
+tt3øv
+tt7øy6r
+tt1å4
+5tual
+4tu4av
+tuba3
+tu4be.
+tu6bå
+tu6dem
+5tuel
+tu4er.
+tug8la
+tu1in
+tu2k
+t5uka
+t1uke
+7tukt
+3tula
+1tule
+tul5les
+tum5m
+tum4s
+3tun.
+4tund
+3tune
+tun5gesv
+6tungd
+tung9s
+6t5uni
+tu4nio
+5t4un5n
+9tuns
+3t2ur
+tur7ant
+tu4ras
+4tu4rei
+tu4rek
+turi4
+tu4rin
+tur1o
+tur3p
+tur5s4
+tur3uk
+tu5rus
+tur1ø
+1tus.
+tu1sa
+3tusb
+3tusf
+tu4sin
+tu4sm
+tus5o
+tus7s6t
+tust6r
+tus5u
+2tutg
+t5utj
+t5utk
+t1utr
+tut6tenk
+tut5tor
+tutt5ov
+tu8va.
+2t1v
+tv4a
+tva8k
+tva6ne.
+3tvang
+t4v5anl
+8t9var
+tve5del
+3tveit
+4t7ver
+tvert5
+t2vet
+3tvet.
+7tvets
+t5vik
+tvi8ka.
+t8viklas
+5t4vil.
+tvi5la
+5t4vile
+t4vi5l4i
+t6ving
+tvi4sa.
+tvi4se.
+6t7vo
+3tvung
+6twa2
+1tyd
+tyg9gel
+tyg5ges
+6tyh
+tykk5s6
+ty4med
+1tyn
+ty4ne.
+6t5yo
+1typ
+5t6ype
+ty4pere
+ty4pet
+ty4rak
+5tyrann
+6tyreg
+ty4rep
+tyre5st
+ty4ri.
+tyri9e
+ty4ri5s
+ty2s
+3tysk
+tys3t
+2ty2t
+ty8ta
+t3ytel
+ty5ten
+ty4ve.
+2tz
+t5za
+5t6zel
+6t6z5l
+1tæ
+tæ5l
+tær6ene
+tæ4renh
+tær4er
+tær4et
+tær5s4
+tøf3l
+2t1øk
+tø9ket
+tøk8ta
+4tøl
+t7ø4let
+5t4øm5
+tøn5nes
+4tøp
+tøp5se
+t2ør
+tø4r3as
+tør3in
+tørk4
+7tørk.
+9tørka
+5tørke
+tør5ne
+tørs7ta.
+tørs7ter
+tørs5tin
+tør3t
+tøs4
+tø8sa
+4tøt
+tøt5a
+tø5ta.
+tø3te
+tøtt6
+2tøv
+tøv6d
+tø7vele
+t4øy
+tøy5a
+t9øyem
+tøy5r
+tøy5te
+tå4en.
+tå2k
+tå5ket.
+tå5ki
+tåk6r
+tå2l3a
+tå9la.
+tå4leg
+tå7lel
+tål5s4
+tån8da
+tån6de.
+tå3ne
+4tåp
+tå6pe.
+t1åpn
+tå6re.
+tå4rep
+t3året
+4t5åri
+3t8årn
+2t1års1
+tå3s
+tå2t
+t3åtak
+tå7ten
+ua7g
+u1ak
+uak3s
+u1al.
+ua7la
+ual5l
+ual3o
+ual3u
+u3a4ne.
+u5anl
+u3ans
+u1ar.
+uar5d
+u4arr
+u5ars.
+uash3
+ua3t
+u5au8
+u1av
+1uavh
+u4ba.
+ub7alt
+ub7ant
+ub5ark
+ub4bo
+ub2br
+ub4bu
+ubel5s
+ub5h
+ubi6s
+ubis7t
+ub1j
+ub7lande.
+uble3s4
+u1b4r
+ub5rin
+2ubs
+ubu8e
+u4bå
+uch5en
+uch5er
+u1ci
+uck1
+ucu5
+2ud
+u3da.
+u7das.
+ud4dag
+ud2dr
+udd4s5e
+ud2då
+udea9
+ude8are
+u2deb
+udeie5
+udei5er
+u2dek
+ude3lu
+u2dep
+u6dero
+u2des
+u3d2et
+u6d5ett
+u5devo
+udia2
+udi3an
+udi4en
+udio5
+ud7ir
+ud7ji
+ud5leg
+udle6ge.
+u7dob
+u6doe
+u2dot
+udover7
+ud1r
+udse4
+ud3t
+ud5v
+3u4dy
+udy9ra
+ud5å4s
+ue5a8
+u5ei
+u1el
+uem8na
+u1e2n
+uend5r
+u7ene
+uensar4
+ue7o
+u1er
+u5e6rast
+ue4re.
+ue5ren
+ue4rer
+ue4res
+ue5ri
+uerle7
+u2erm
+ue4se
+ue2si
+ue4skj
+ues6n
+u1et
+uet8r
+ueul8
+u4fe.
+u6feb
+ufe6e
+uf1f4
+uf4f5erm
+ufi9l
+ufi5ne
+u1fl
+u6foa
+ufor3s
+u1fr
+uft3a
+uf4tan
+uft5s4la
+uft3sp
+ufø6
+u5gag
+u5gar
+u6g5av
+ugby7
+u2gem
+u5gen
+u3ger
+u4gerø
+u2ge5s4
+u9get.
+u8geta
+u2gev
+ugg3s4
+u5gis
+u4gl
+ug1la
+u5g4lad
+ug9lar.
+ug4le.
+ug9ler.
+ugle7s
+ug5ly
+ug7na
+ug7ne.
+ugo1
+u4go.
+ug4re
+ugrei9er
+u4grø
+ug5s4i
+ugs4k
+ug7so
+ug3s4pr
+ug5s4va7
+uguay7ans
+ug5øyn
+u1h
+3uhel
+ui8a
+u4i6c
+ui2d
+uid5el
+uid5en.
+uid5ens
+uid5er
+uid5in
+ui3e6
+u4il
+uil5l
+u1im
+ui3ne
+u1ing
+uinnsmi8
+uinnsmig9
+u1ism
+uista7
+uit3en
+uit5er
+u1itt
+u1j
+u4jas
+u8je.
+u7jå
+4uk.
+u1k2a
+u7kar
+ukare6
+ukar5t4
+u5kat
+u2ke.
+u4ked
+uke5l4
+4ukem
+uker5an
+uke4rek
+uker5i
+ukho7
+u7ki
+u1kj
+4ukk
+ukk6a
+uk7kestal
+uk8k9l
+ukk7n
+ukks6
+u5klem
+uk8lu
+ukl7ut
+u5k4no
+u1ko
+u4k5og
+u2kra
+uk3rus
+2uks
+uk2sa
+uk4sek
+uk4sel
+ukse7te
+uk2si
+uk2s1k
+uk7ski
+uk2so
+uks5t
+uk4s3un
+uk2sø
+ukt5e4sk
+ukteslø9se
+uk4t3id
+uk6tj
+uk4t5ori
+uk2t7r
+ukts6l
+ukt3sp
+ukt9s6v
+ukt4sti
+uktu8e9ra
+uktue5re
+u1ku
+uku6e
+uku5le
+uk5vik
+ukys8
+uk3ø4
+uk5å4
+6ul.
+u1la
+u4la.
+ula7d
+u6l1af
+ul3aks
+ul5art
+ul4det
+u4lef
+u2lek
+u2lel
+ulele8ge.
+ule5ma
+u3len.
+u6leni
+u3lens
+u5ler.
+u5lere.
+ule3ri
+u2l3erl
+u4lero
+u2les
+ule3st
+u5lest.
+u5leste.
+u2leu
+u1lé
+ul4f5l
+ul4fo
+ul4fr
+u3l4i
+ulie8
+uli9en
+uli5ke.
+3ulikh
+uli9na.
+uli5ne
+u7linj
+ul1j
+ul5ka
+ul4k3v
+ul4lag
+ul4lam
+ull7arm
+ul4leg
+ull5egg
+ulleg8ga
+ul6leng
+ul9lere
+ul4le3s4
+ul8li.
+ul8lig
+ulling7s
+ull5i4v
+ul4l3o6s
+ul8lot
+ullo3v
+ull5sle
+ull3s6m
+ulls4t
+ull3sv
+ul2lu4
+ul6ly
+ul2lø
+ulm4u
+u1lo
+ulo6i
+ul5op
+ulo7va
+ul4sk
+uls4po
+ul8sn
+ulss8
+ul2st
+ul8s3t6r
+4ult
+ul4teg
+ul4tek
+ul4tes
+ul4til
+ul4tim
+ul4to
+ul7tor
+ul4t3re
+ult3ri
+u7lua
+u3lue
+1uluk
+u5lup
+u5lus
+ul9ut.
+u7luta
+u9lute
+ul7va.
+ul5van
+ul4var
+ul4ve.
+ul4veg
+ul4vei
+ul4ves
+ulv3t
+ul4v3u
+1uly
+ulyk5kes
+ulæ6ra
+ulæ5re
+ulø3se
+uløy6e
+ul5å6l
+2uma
+uma8ge.
+u6mare
+um5au
+umau7ken
+um3av
+2umb
+um5be
+4umc
+4umd
+2ume
+u4mend
+u4m3enh
+umen4t5i
+ume5ra
+2umfo
+2umh
+2umi
+u6midd
+umie6n
+umi9na
+u4mint
+um9ja
+2umk
+4uml
+4umm
+um3me
+um4mil
+um4mis
+um3n
+umna8
+4umo
+umo6g
+um5ok
+2ump
+um7pan
+um4ple
+um4p7ut
+4umr
+ums1
+um7se.
+um4sku
+umsku8le.
+um2sn
+um4sor
+ums3t
+6um7t
+umta8l
+um5ut
+4umve
+umør3s
+um7øy
+umå7
+2un.
+una6da
+un5alg
+u4n3ap
+u9nar
+u7nas
+u3nat
+2und.
+6unda
+6unde.
+un4dek
+un4del
+6unden
+5undersk
+5underv
+4undet
+un6d7im
+4unds
+und5s4i
+u2ned
+u4nee
+u9nei.
+u2nel
+unele6ge.
+u4n5eng
+u4neno
+u2ne1s2
+u3nes.
+u2nev
+unev5n
+1ungd
+ungele8ge.
+un4gem
+un2g1j
+un4g5l
+un4go
+un2g1r
+un9g8ru
+ung3s4i
+un6i
+u4ni.
+u2nid
+1u2nif
+u4nim
+u3nin
+3union
+uni4st
+4unk
+un4k5l
+un7ko
+un4kr
+un7nak
+unn5erf
+un4n5ers
+un4n5erv
+un5nes
+un4niv
+un2no
+unn5ste
+unnta8la
+un4n3y
+u4no.
+u2n3os
+uno7t
+4uns
+un6sj5i
+un3skr
+un5s4p
+un3stek
+unst5e6l
+un7s6tenk
+unst3o
+un1s2v
+un4tal
+un4tam
+un4tas
+un3t2r
+unt5rep
+un4tri
+untun8ge.
+unu6
+un5ut
+u3ny
+u3nø
+un5øy6d
+u7nøyg
+u3nå
+uo9a
+u1ob
+u1om
+uom7s
+u1op
+uor8da
+uo1re
+uo5ro
+u1ov
+up3av
+u3pea4
+u5per
+uper3a
+upe6ren
+u4peta
+6upf
+u3pi
+u8pi.
+up3ins
+up3li
+up6nev
+upo9pe
+up1p2
+up4ped
+up4pla
+up6pre
+upp5s
+4upr
+u3pra
+6ups
+up6sen
+up2s3k
+ups4ke
+ups5pr
+6upt
+6upu
+u1på
+upåvi6
+u1ra
+u2rad
+u2raf
+ur3aft
+u2r1ak
+ura6ly
+u4ram
+u5rane
+u3rans
+uran6t5re
+u5rar.
+u6r7arl
+ur3arv
+u9ras.
+ur5asp
+ur3att
+ur7au
+urau9ken
+ur1av
+ur4bod
+ur4c
+urd4
+ur3di
+ur4d5o
+u1re
+ure8al
+ureer6e
+ur5egg
+uregi6
+uregist5
+3urein
+ure4l
+ur3ele
+u4reli
+u7r8ell
+u7r8elt
+u4r3els
+u4r5eng
+u7reom
+ure7o6s
+u4resu
+u4reta
+u4rete
+ur4e5v
+2urf
+ur4feb
+ur6fed
+ur3ge
+u1ri
+u4ri.
+uri6a7ne
+uri9en.
+uri4e5ne
+uri9er.
+u3rik
+u3rim
+uri5ne
+ur3inn
+ur3ins
+ur3int
+uri6sp
+ur4ke5s
+ur7k6j
+ur6k7ja
+ur8kla
+ur4kle
+ur6k5n
+urk5s
+urla8ga
+urle6ge.
+urle8se.
+urma7g
+ur3nea
+urn1s2
+urnæ6re
+u4ro.
+u6roc
+5uroe
+urom5s
+u2rop
+uro7pi
+ur3opp
+ur1or
+uro3s4
+uro4sta
+uro8ta
+ur4pel
+ur6p9ut
+ur3re
+ursa8ka
+ur4sal
+ur4s3el
+ur4sin
+ur4skr
+ur4spe
+ur5ste
+urs5til
+ur4stj
+ur2sv
+urs3va
+ur2s1ø
+ur3teo
+ur5ti
+ur4to
+ur6t5ri
+urts4t
+urue7re
+u6rug8
+ur7ugl
+uruk6
+uru4ke
+uru7kn
+ur6ul
+urumo7
+urun4g
+u7runk
+uru7v
+ur4vel
+urv3s
+u6rys
+urø2
+ur1ød
+ur1øy
+4usa
+u9sane
+us3ang
+u9sar.
+u7saren
+u6s7ark
+us7au
+us1c
+2use
+u5seal
+use4al.
+us7edvanle
+u2s1ei
+u2sek
+u4sele
+u2sem
+u6s5endi
+us7erk
+u4s5erm
+u6sesi
+uset8je
+us3eva
+4usg
+u2sh
+u2s3h4a
+u2s3h4o
+us4id
+us3ind
+us5inn
+us7jag
+u4sji
+us5kaf
+u4s3kan
+uska8ra
+us7kat
+us5ken
+u6s5kis
+usk4l
+us6k5le
+us5klo
+us1ko
+u1skr
+us7kru
+usk7u6t
+us4ky
+us1l
+usle6ge.
+us5lin
+u4slu
+us7mø
+u4sn
+us1ok
+uso5l
+uso6l5d
+us1or
+u3sori
+usove7r6e
+us1p
+u1s2pin
+us5sar
+us6sat
+us4sjå
+us4skj
+uss5kor
+us4skur
+uss1l
+us7smi
+uss7mø
+us4s5ti
+us4str
+us2sv
+u6stande
+u4stat
+us3tav
+u2ste
+us3ted
+u5stei
+us7ten
+ust9ette
+us5ti
+u5s6tig
+us1tj
+ust5of
+uston8
+ust7onn
+us5tor
+ust5o6v
+us8tra.
+us8tran
+us8trar
+u6stre
+ust5ren
+us4tri
+us3tro
+ust5rød
+u6st5rå
+ust7ut
+u4stå
+us3ung
+u2sur
+us1v
+u5svale
+u7s6valt
+usva8n
+usvi8ka.
+6usæ
+usæ9le
+usø6m
+us1øy
+u1tae
+u2tag
+u7tagg
+u9tal.
+ut3alb
+ut5ald
+u3tall
+u5tande
+uta7no
+ut6anv
+ut3arm
+ut3art
+uta1s4
+u5tas.
+u6t5a6sa
+u6t5a6se
+u2ta1u4
+1utb
+ut4ba.
+utbe8d
+4utbi
+ut6by.
+utch5
+1utd
+4utdat
+utda7ta.
+u2te.
+u2tea
+u4tee
+u4tei
+u2tek
+ut3eks
+u5tekst
+ute6ma.
+u5temm
+u9temt
+ut2en
+u6tena
+u3tenk
+u4tenu
+u2teo
+2uter
+u6terø
+u2te1s6
+u4teta
+u3tett
+ut6eu
+uteva9
+1utf
+utfa7s
+utfø5re
+1utg
+8utgåe
+6u3ti
+u4t5if
+utikk6u
+utiku9
+u4tili
+u6tiven
+ut1j
+u5tjen
+ut6ju
+3utlei
+utlø5se
+utlå7na
+utmå5le
+u8tni
+1utny
+2uto
+ut7oms
+uto5s
+uto4v
+3utpr
+ut4på
+ut1r
+u5t4radi
+ut3re
+u5treng
+u3triv
+u3trol
+u3tros
+5utru
+u5t6rul
+ut4rø
+ut9rød
+1ut1s4
+4uts.
+4utsei
+utse8t9ja
+2utsj
+ut3sk
+5utst
+7uttak.
+5uttake
+ut4terk
+utt5eva
+ut4tid
+ut4til
+ut5torea
+ut1tr
+ut4tra
+3uttry
+utt1s2
+u1tu
+utu5e
+u6t5un
+utun8ge.
+u2t5ut
+1utv
+u3t4vil
+utvi5se
+2u3ty
+3u4t6yd
+u8ty.
+8utz
+ut1ø
+u5tør
+ut4ø8s
+utøs7t
+1utø4v
+ut5øya
+ut7åk
+u3tål
+ut1ån
+ut7år
+u1u
+u7uma
+u5ume
+u7ut
+u1v
+uve5di
+uve3in
+uve6ris
+uve3s
+u7ves.
+uvet5ø
+u6vev
+u5vi
+uvi6k
+uv5ra
+uv9sa
+u5vu
+uvø9re
+u1w
+4ux1
+ux4a4
+uy6a
+u7yn
+u1æ
+uærle9ge
+u1ø6
+uøv5
+u9åra
+u7åre
+va3am
+va8an
+4vab
+6vadj
+vad1r
+vaf3
+vaf6r
+vai5r
+vai5s
+va6ka.
+va7kan
+va5ker
+6vakh
+va8ki.
+4vako
+vak3r
+7v6aksi
+4v3aksj
+vak5s6t
+1vakt
+vakt5r
+va1ku
+vak3v
+va3lan
+va4led
+val9eks
+4valel
+val4g3r
+vali9e8
+val3la
+val6mes
+va6l1o
+va1lu
+va4lun
+4valv
+va4løy
+val7å
+vam8pu
+4v3anal
+vand5s
+v4ane
+vane5s
+va4net
+2vang
+van4gr
+vang4s7
+va8ni.
+1v4ann
+van4nan
+van4niv
+vann6sti
+va4nom
+v4ans
+van5sem
+5vansk
+van5s6ki
+van3sm
+van3ti
+van9tr
+va4ny
+2vap
+va5po
+va4ra.
+va6rak
+va4ral
+va4ram
+va4rap
+va4re.
+va4reg
+va6rem
+va4res
+var8ka
+var5ma
+var4mee
+var4sa
+var4sk
+var4s5ti
+var4sv
+varta9la
+var6tem
+var4t5i4s
+4vasa
+va4sa.
+va9set
+6vasid
+va6sie
+va4sif
+va4sik
+va4sil
+va6sis
+va2sk
+vass5a
+vas4sau
+vas4sel
+vas6s7ø
+4vasta
+vat5a
+va3ta.
+va6t7e8l
+va2terf
+vatle6ge.
+5vatn
+va1to
+va6tr
+vat7ra
+vat1s
+4vau
+2v1av
+va4z
+2v1b2
+vba4ne.
+vber5g
+vbo6da
+6v1d
+v7dev
+vding5s4
+v7doi
+v7don
+vd6r
+vdu6en.
+vdu6er
+v7dø
+1ve.
+2ve1a2
+ve6ag
+ve6ar.
+2veb
+2vec
+ve2d1
+ve9dob
+vedom5
+veds2
+ved5s4k
+3ve8d5t
+vedø4
+vedå6
+2vee
+ve4er
+2vef
+ve6g5av
+ve5ge
+3vegg
+veggs4
+2vegj
+4vegl
+ve3gle
+ve5g6lød
+veg5n
+2vego
+6vegre
+veg5rett
+4vegru
+ve4gut
+ve4g5å
+2veh
+1vei1e
+vei3en
+4veill
+6veit
+2vej
+4veka
+5ve4ka.
+ve4ke.
+ve4ked
+4vekee
+2veki
+4vekj
+2vekl
+vek8la
+vek8le
+ve4kli
+2veko
+2vekr
+3veks
+vek4st
+veks4t5r
+1vekt
+vek4t5an
+vek5to
+vek4t5r
+2vekå
+5vel.
+ve4l5as
+5velat.
+5velatp
+6veld.
+vel4del
+8velds
+4veled
+6velei
+7velet
+4velis
+4velit
+6veliv
+2velo
+5veloc
+vels2
+vel3se
+velses5
+vel3sm
+vel5sp
+vel5st
+4velug
+vel5un
+vel5v
+2vely
+2velæ
+2velø
+velø8pa
+2vem
+ve5ma
+1ven
+ve8na.
+4venem
+ve5net
+ve6nete
+4venev
+ve4nin
+ven6n5i
+vennle7
+ve2no
+ven6sti
+ven6str
+vent6a
+ven5t6r
+vent4s
+4venty
+2venu
+ve4nus
+ve5ny.
+4venya
+ve4nym
+2ve3o4
+2vep
+1v8er.
+ver5ak
+ver3al
+8verau
+ver6des
+ver6din
+ver6dir
+verd7v
+ve3re.
+4vered
+4vereg
+5vereig
+4verek
+ve4rel
+ve6r7eng
+4verenn
+4verep
+ve5rer
+ve5res.
+4verett
+4veretu
+verfø5re
+ve9ri.
+veri3a
+ve4rial
+ve7rie
+4verik
+ver3il
+5verkn
+ver5m6
+ver6nal
+vern6s5
+ve9ro.
+ve3rom
+ver8ska.
+ver5ski
+ver7spo
+verta8la.
+verta6le.
+ve1ru
+5verum.
+6very
+verø6
+ver3øs4
+4verå
+v4es
+3ves.
+2ves4a
+ve5san
+4veset
+4vesh
+4vesi
+4vesj
+4veski
+2vesl
+ve9sli
+ve1s2m
+6ve3so
+4vesp
+ve6s3per
+ve5sted
+ves6t5end
+vest5o4v
+4vestr
+4vestu
+4vestø
+vesva7
+5vesynds
+2vesø
+ve1så
+veså5re
+v4et
+1vet.
+2veta
+8vetaka
+4veteg
+4vetek
+ve5te6s7
+6vetev
+2ve7ti
+4vetj
+2veto
+ve4to.
+veto7e
+9vetoke
+9vetoks.
+ve4tor
+2vetr
+1vets
+vett5sk
+6vetv
+4vety
+vety8e
+2veu
+ve8um
+2veva
+ve6vak
+ve5van
+ve9var
+2vevi
+vevi8sa
+vev4sm
+vev4sp
+2veø
+2veå
+1vê
+2v1f
+vfall4
+vfø7re.
+2v1g2
+v4ga.
+vga4le.
+vga6li
+vga8ve.
+v9ge
+v4gi.
+vgjer6s7
+vgo4
+v4gå.
+2v1h
+vhø4re.
+1via
+vi1an
+vi6bl
+vice5s
+1vid
+vi5de
+vide4o7
+vi4d5o4
+vid3r
+vid3s4
+vi1el
+vi5end
+vig4m
+vi4gu
+vi5gø
+vi4kat
+5vikb
+vi5ked
+7vikg
+vik5ke
+vik5n
+vi2k3o6
+3viks.
+vik5sa
+vik5s6l
+4vikt
+5vikti
+vi4k5ø4
+vi2l1a
+vi5la.
+vi4les4
+vi4l3in
+1vilj
+vil4l5an
+vil4led
+ville6de.
+vil4lei
+vill9ep
+6v5illu
+vil5m
+vil1o
+vil4sti
+vilt7o
+vil6tret
+vil4tri
+vi2lø
+4vim
+vim7p
+vim7u
+4vindl
+5vindu
+vine5st
+v6ing
+4vingn
+vin5gom.
+ving3r
+vin8g9u
+vin3na
+vin4ned
+6vinnh
+4v5innl
+4v5inns
+4vinnt
+vi6n5o6ver
+v2in2s
+vin7sja
+vin4tes
+vin5tre
+vi8pa.
+vi6pe.
+vip5s
+1vir
+4viro
+7viru
+vis3ab
+vis3ak
+vis5and
+vi4see
+vi3sen
+vi6seng
+vi2s1k
+visk6re
+vis5m
+vi1so
+vis3om
+vi4sp
+vis9pa
+viss4p
+vis5ti
+vi4tak
+vi5tese
+5vi6t5j
+vi4t3o
+vi4tr
+vit7ra
+vit5re
+vit5skr
+vit6te6s7
+vi4t5un
+vitun6ge.
+vi4t5øy4
+vi4va.
+vi6ves
+vivi3
+v1ja
+v1je
+vje4t5a
+vje5t6e
+vje4t5r
+vjet3t
+vje4tu
+v1ji
+4v5jo
+vju3t
+6v3k6
+vk4le
+vk4ler
+vku4le.
+6v1l2
+v6lab
+vla6ga
+v9led
+v9leg
+vlei9e
+vl6el
+vle4se.
+v5lesn
+vle5str
+v6lesv
+vli7v
+vls9
+vlu9sa
+2v1m
+vma8le.
+vmo8de.
+vmord4
+vmå8la
+2v1n
+v3nad
+vna8ke.
+vn5al
+v9nar
+vn5dy
+vne7b
+v2ned
+vne7de
+v4nele
+v4neli
+v4nelo
+v2nem
+vne5r6e
+v4nero
+vne1s
+v4nesta
+v6neste
+v2nev
+vnor9s8kas
+vn4s5pa
+vn1s4t
+vn5t4
+vnæ4re.
+vn5ør
+vo1al
+vo2ar
+6vob
+2vof
+vof8fan
+vo4gu
+voi1
+1vok
+4voko
+voks3k
+vok6s5
+1vol
+voli7
+vo4litu
+vol4tes
+2vom
+vo4na
+vo9nal
+vo9nar
+von5de
+vons6
+von5sh
+2v1o6p
+2vord
+vor8da.
+vo1re
+vo9ren
+2v1org
+4voro
+vors7k
+1vos
+4vosj
+vos4se
+vo4teg
+vo4tel
+6votr
+vo1v
+vo4ve.
+vo6vi.
+2v1p4
+2vr8
+3v6rak
+v7rar
+v1re
+vregi3
+6vrenge
+4vrengi
+v6rengj
+v6rengt
+vrett4s
+v6ri.
+3vrid
+7vrie
+v6rigas
+vri6ma.
+vri8me.
+v3ring
+vrin5s
+vri6ve.
+v1ro
+v4rob
+v4rof
+v4rok
+v4rop
+vro8te.
+v1ru
+v7ry
+vrø3ve
+v1rå
+vrå8da.
+8vs
+v6sa.
+v7sali
+v6se.
+v4seg
+vs3egg
+v3s4el
+v4s5e4li
+vse4n
+v5sen.
+v4s5eng
+v5s4ens
+v2ser
+v6si.
+vs1in
+v1sk
+vs8ke
+v6s5kum
+vs1kv
+v1sl
+vs3lan
+vs6let
+v6slik
+vsmå8la
+v1s2n
+v6s7na
+vs3ne
+vs3ny
+vs3næ
+v4s3nø
+vs5od
+vsom5
+vs5oms4
+v7son
+vs1or
+vs2pe
+vsre6de.
+vs7s6t
+vs4s5å
+v1s2t2
+vste6ma.
+vs3til
+vs1v
+vsø6ke.
+vsøl5
+v2s5øy
+vsøy4er
+v8så.
+vså7re
+2v1t
+vta1
+v4ta.
+vta8ka.
+vta6led
+vta9len
+vta4lev
+vta6s
+v5tepp
+v5t4i
+vti8na
+vti8ne.
+v5t4r
+v3t2v
+vty8e
+1vu
+vu2d1
+vud5d
+vuden5t
+vuds4
+8vué
+vu8k
+2vul
+2vung
+vun4ge.
+6vu6o
+2v1ut
+2v1v
+vva8la
+vve8g9ing.
+vve6g7inga
+vven7n6i
+vvi5ke
+vvi6k7l
+vvi8s9an
+vvi4se.
+2vy1
+vya4
+vy7ens
+1væ
+væ1ra
+væ9ret
+væ8ta.
+v3ø4d
+vø4l
+vø7li
+vøm4met
+3vøre
+vø6re.
+v3ørke
+vør8na.
+vø3se.
+v5øv
+4v1øy
+vøy6e
+vøy7ene.
+vøy9enes
+1våa
+1våe
+4våend
+v4åk
+vå8ka.
+vå4ke.
+vå4kene
+vå9kene.
+vå4le.
+1vån
+vå5ne
+4vånu
+vå3ren
+vå8sa.
+vå5tes
+6våtf
+våt7å
+w2a
+wa6l
+5wald
+wal4k
+walk5o4
+wal4l
+2wap
+war6d7er
+wash3
+1wat
+wa3z
+w1b
+wboy5
+we2
+weate7
+we7b
+we3g
+we5re
+wes2
+wes3s
+wester6
+western7
+wet5
+wett4
+w4i2
+wi9ar.
+wich3
+3wicz
+wi3d
+5wi6en
+wi9er.
+wi5f
+wi3ni
+wi5ra
+wi3ren
+wi5ta
+wk3r
+w1l
+w1m
+wn5s
+wob5
+wou6
+wout7
+ws5
+ws6k
+wurs6
+wy2
+w1yo
+wyor2
+wyork3
+w1z
+xan5t
+x7b
+x3f
+xga6
+x7h
+x1ic
+5x6id
+xi5e4
+x5k
+x1l
+x1p6
+x3r
+x1s2
+x7t
+x6u
+xy2
+ya7b
+1yac
+ya5f
+ya4h
+y1ak
+yak6te.
+ya2l
+y7am
+y1an
+y6an.
+y2ana
+ya4ne.
+yan7k
+yan7sl
+y1ark
+y7arr
+yas4
+ya5si
+ya5t
+y1av
+y1b
+yba4ne.
+yb4bed
+ybde3
+ybo2
+ybu6er
+ybue7re
+ybu7ern
+ybyg5
+y1c
+y8ce.
+y8cé
+y2co3
+y6dab
+yd5av
+4ydd
+yd6dela
+yd4dep
+y6d7enh
+y4deo
+y2dep
+y4dero
+y2d1is
+yd6je
+yd1ji
+ydo4
+yd3op
+yd5ov
+y1dr
+y4d4r5au
+yd1re
+yd5rem
+y4dro
+y4d4r5oks
+yd3si
+yds4v
+y2du
+yd1un
+ydø4
+y4døm
+ydør5
+yd1øs
+4y1e
+yed8l
+ye6dre
+y2ek
+y5eks
+ye4len
+ye6let
+yel4s5j
+yel4sk
+yels3m
+yel6s5t
+y2em
+ye2n
+y7e6ne
+y8ener
+y2enh
+ye5ni
+y2enk
+y2enl
+yenle6ge.
+yens4
+y4ense
+y3e6re
+ye4rel
+y3ern
+yer8sk
+y4erst
+yes2
+ye5sm
+ye2t
+ye9te
+ye5ty
+y2ev
+y1f
+yfan9
+yfjell4
+y4fle
+yf5le.
+y8ga.
+yga8ve.
+yg4dal
+yg4dek
+yg4del
+yg4dep
+yg2do
+yg2d1r
+yg2d1y
+yg2dø
+yge5i
+ygen5s
+y6geret
+y2ges
+y4gev
+yg6gam
+ygg7art
+ygges4
+yg5gj
+ygg5l
+yg6gr
+ygg3s2
+yg6gu
+yg6g5å
+ygi2
+y5glo
+yg7m
+yg6r
+y1h
+yhes5
+y1i
+y9in.
+yis7t
+y1j
+6yk
+y1ka
+ykap3
+y6kara
+y2ke
+y7kel.
+y5kelen
+y3keli
+y7kels
+y3ken
+y3ker
+y4kerel
+y4kero
+y5ket.
+y9kets
+y1ki
+y1kj
+y4kjar
+y5kjare
+ykjeva8ne.
+yk4kana
+yk4k5enh
+yk5kesj
+ykke6s5ta
+yk1kj
+ykk5ni
+ykk4s5k
+yk8k5vi6
+yk4ky
+yk1la
+yk6lest
+y1klo
+y3klub
+yk3lus
+y5klæ
+y1ko
+y2koa
+y6koli
+y4komo
+y5kosa
+y2kot
+y5koti
+y1kr
+yk1s
+yku6le.
+yk3var
+y1la
+yla8ga
+yl4dan
+yl4derk
+ylde4s
+yld1r
+yld5s6k
+yle6ge.
+y7les
+y4lev
+yligh9
+yl5k8
+ylke2
+ylke4s3
+ylkesla8ga
+yl4lev
+yll5is.
+yl3s6
+ylst7re
+yl5tet
+y8luse
+3ylven
+y1ly
+ylæ7re
+y6mei
+y4mete
+ym4fe5d6
+ym5jara
+y4mo.
+ymo5e
+ym3p2
+ym1s
+ym8sa.
+ym4se
+ym8sl
+ym6ta.
+ym6te.
+ymå6la
+y9n8and
+yndes8
+yn5det
+y2nel
+yn7eld
+yner3g
+yne5s4
+ynesi8
+y6nev
+yn5gel
+yn4gem
+yn2gr
+yn4g5ø
+ynko3
+yn6k5v
+yn5na
+yn5ne
+ynn3s4
+ynn4ø
+y3no
+y4no.
+yns1
+yns6are
+yn4sem
+yn9set
+yn2si
+yn2sk
+yns9ket.
+yns7ki
+yn5skj
+yns7kjele
+yn8s9kjer.
+yn4st
+yn2su
+yn4s5ver
+yn4tap
+yn8teg
+ynt5ei
+yn4tek
+yn6tete
+yo4gat
+yo6gi.
+y1om
+yon4
+yon5nen
+yo6nu
+y1o2p
+y1o2r
+yor6da
+yo5re
+you4
+yout5
+yp8e
+y2pe.
+y4pee
+y4pena
+y4penet
+ype4rel
+y6peta
+y1pi
+y4pi.
+y7ping
+yp5inn
+ypin8na
+y1p2l
+y5po
+yp7p6a
+yp3pe
+y1pr
+yp5s8
+yp4tok
+y3pu
+y1ra
+yra8ka
+y4r3a6l
+y7rarb
+y4r5au
+yr5av
+yr7da
+yr5dø
+y7real
+yre3in
+y5reis
+yrek4
+y7rek7k
+y3rels
+y5rems
+y1ren
+yre9ne
+y4reo
+y6rerel
+y4rero
+yre5sc
+y5rest.
+yre5ste
+y5reste.
+yres6ten
+y1ret
+y4reta
+y4rete
+y4reto
+y7retø
+yr7ga
+y1ri
+yrin5g6
+yri6ene.
+y4rif
+yri8ka.
+yr3inn
+yris6p
+yr4kee
+yrke4s
+yr5kj
+yr3m
+y7roe
+y3romm
+yr1op
+y5rosk
+yr5r8
+yr4san
+yr7set
+yr5sk
+yr6skj
+yr6skr
+yr2sp
+yrs7tan
+yrs5tar
+yrs7tene
+yrs5tens
+yr3sti
+yr4sv
+yr3te
+yr6tek
+yr2t3r
+yr3tra
+yrty8
+y1ru
+yrul8la.
+yr5ut5r
+yr3v
+y1ry
+yr3øk
+yrøy4
+y1rå1
+yråd2
+yrå8da
+yråde7r
+yrå6ders
+y4rådi
+y2råm
+y6råst
+y4råt
+y4råv
+2ys
+y1sa
+ys6a7kers
+ys4e
+yse4bu
+y4sed
+y4see
+yse5ei
+y2seg
+y2sek
+ys7ekte
+y2sem
+y4sera
+yse7rid
+yseri7e6
+y4sesj
+y4sesk
+y4se5s6l
+y4sest
+y5seste
+y6sesu
+y9set.
+y4seu
+ys6i
+ysi8e
+y5sjk
+y7skag
+ys6kara
+ys7kare
+ysk9au
+ys2k3l
+ysk5øs
+ys4mi
+ys4nø
+y1so
+y4s5or
+ys2pe
+ys5pis
+y5s4po
+ys6sak
+ys6sam
+ys4s3ei
+ys4s3ek
+ys4s5il
+ys2sj
+ys4sku
+ys2so
+ys2sp
+yss5pe
+ys4sta
+yss5tab
+ys4s5ti
+ys4su
+ys2s5v
+ys2t
+ys3ta
+y8star.
+ys4tat
+ys3tel
+ys3ten
+y4s3ter
+ysterie7n
+ys7tesl
+y2s3ti
+yst3op
+yst3r
+ys5t6ry
+ys6ty
+y1su
+ys1ve
+ys5år
+y1ta
+y4t3ana
+y2tee
+y4tef
+y2teg
+yt5e4ge
+yte3in
+y4teka
+y4teki
+y4tena
+y4teno
+y2teo
+y4teret
+yte6ro
+yters6
+yter5ske
+yte5r6ø
+y2tes2
+y2tet
+y3t2hi
+6y5til
+y6tj
+yt9ja
+yt5jen
+yt9jer
+yt4mei
+yt4mes
+y3to
+yt8ra
+yt4re.
+yt5rer
+yt1ri
+yt4rik
+y5trå
+yt4s3en
+yt3sk
+yt5sv
+4ytt
+yt5t6a
+ytt4e
+ytte8r9end
+yttes6
+yt4test
+yt8tien.
+yttsa6me.
+2y3tu
+y1ty
+yt4ys
+y7tå8
+y1u
+y6ua
+y8ue
+yu8g
+yu4l
+y1v
+y4vak
+yva8la
+y2ved
+yve4ria
+yve4ris
+y4vese
+y6vesy
+y6vev
+yvi8sa
+yvi6se.
+yv1år
+yvå5te
+y1w
+y5æ
+y5ø
+y1å2
+za5b
+3zae
+4zaes
+za4g5
+za5k6h
+zani4
+zania5
+5za5v
+z1b4
+zbu4
+z1c
+z1d
+1ze
+zea1
+zebu9
+zeli5
+zen3s
+4z3ense
+4z3ent
+z1f
+z1g
+5zha
+z3hi
+z5hu
+5zie
+1zifi
+5zing
+z5int
+1zis
+6zisty
+4zi5s4v
+2zisy
+z1k
+4z1l
+z1m
+5zo.
+5zoe
+zo1f2
+zo4no
+zo5re
+6zos
+z1p
+z5r
+z1s
+4z1t
+zu3e
+z1un
+z1v
+z1za.
+z2z3el
+æ5by
+æ2bø
+æ5de
+æ7di
+æ1f
+æg6
+æ2k
+æ3ke
+æ5ki
+æ8kj
+æk1ja
+æk7je.
+æk9jer.
+ække7
+ækkel6
+æk6l
+æ1la
+æ4le.
+æ2le3d
+æ4lena
+æ4lev
+æl5j
+ælsle9
+æ4r1ak
+æ3rane
+æ4rans
+æ4rarb
+æ6rarbe
+ær4arte
+æ4r1at
+ærbu5e
+ær1d4
+æ1re
+æ2rea
+æ4red
+æ2ref
+æ2reg
+æ8r7ei
+ærei6e
+æ2rek
+æ6r7eld
+ære5ne.
+ære7nes
+æ2rep
+æ5rern
+æresa4m
+ære6skr
+ære4sl
+ære4sp
+æ4reta
+æ4retek
+æ9rets
+æ2rev
+4ærf
+ærgen5
+ærhø8
+æ1ri
+æri6e7ne
+æ4r3il
+ær3ins
+æri6s
+ær5is.
+4ærk2
+ærle6ge.
+4ærm
+ærmå8la
+ær3n
+ær5ne4
+ær4nå
+æ2r7o6
+ærom5
+æroms4
+ær5r
+ær6sel
+ær4s5il
+ær1sk
+ær7s6no
+ær2sp
+æ2r1u
+ærut5
+ær3v
+æ2r1ø4
+ærøy7e
+ær3å4
+æ8se.
+æ2sj
+æ2s1k
+æ5ta
+4æte
+æ4te.
+æt4r
+æt4ta
+æ5va
+ævar5
+æve4s
+æ5vi
+6ø1a2
+øa7re
+øau4
+ø1b
+øbe6lev
+øbe4li
+ø2bl
+øbl9u
+øb4r
+ød3ag
+ø4dak
+ød3d
+ød9de.
+ø2de.
+ø4dede
+ø6def
+ø4dela
+ø4dem
+ø4deo
+ø4deri
+ø4dero
+ø5dj
+ød1r
+ød4red
+ød4rek
+ød4rep
+ød2sc
+ød6s5ek
+øds7ke
+øds4ko
+ød6sku6
+øds4mu
+ød8t5om
+ødt6r
+ø2du
+ød3und
+ø4d5ur
+ø6d5ø
+4ø1e2
+ø4ed
+ø5ene
+ø5ep
+ø3e6re
+øfe8
+øf3fe
+øf6j
+øf8la.
+øf8le.
+øffe8l7a
+ø5fn
+øfte5s
+øg1
+øg2a
+øg5ak
+øg5al
+ø7gar
+ø5gas
+ø3ger
+øg5gl
+øg8gå
+ø7g4j
+øglo8ve
+øgn6s7p
+ø2g2r
+øg5re.
+øg5res.
+øgs2
+øg4ste
+øg4str
+øgta5
+4øg4u
+ø1h
+ø4i
+øi4e
+ø5ing
+ø5isk
+ø4it
+ø1j
+6øk.
+6ø1ka
+ø5kav
+øka8ve.
+ø6keh
+ø4kelo
+ø6kerada
+ø6kerel
+ø4ke5ru
+øke1s
+ø6kese
+ø8kesl
+ø4kest
+ø4kete
+ø1ki
+4økj
+ø5kjare
+ø5kjas
+ø1kje
+2økk
+øk5kel
+øk5ket
+øk4k5l
+økk5r
+øk3lag
+øk3lan
+2økna
+1øko
+øk5opp
+ø1kr
+ø8krar
+øk8sa.
+øk6se.
+øk4ses
+øk4si
+øk2so
+øks1t6
+øks5ti
+øku4r
+øk5ur.
+øk5ure
+øk7ve
+ø7ky
+ø1la
+ø2lah
+ø6lam
+øl3d
+øled
+ø4ledi
+ø6lelu
+ø4lero
+ø6leta
+ø4le5te
+ø2lev
+øl4gera
+ølge5s6v
+øl1j
+øl2ke
+ølke7s
+øl4lese
+øl9leti
+øl6lev
+ø1lo
+øl7op
+ølrå4
+øl6sel
+øl4sere
+øl4se3s
+øls6t4
+øl5s4v
+ø5luk
+øl7ut
+ølva6
+øl4var
+øl4v3ei
+øl6vek
+øl8vel
+ølv7erk
+øl4v3in
+ølv5o
+ølv7r
+ø1ly
+ø4me.
+ø9met
+1ømfi
+ø5mi
+ømini6
+øm4med
+øm4mero
+ømmet6
+øm4metr
+øm3op
+øm4pel
+øm7s6p
+øm1st
+øm5svi
+ø2m1u
+ømå8la
+øn2ad
+ø6n5al
+ø5nas
+ø2nem
+ø3nes.
+ø9nese
+ønhø8re.
+4ønn
+øn4nal
+ønni4
+øn4n5it
+ønns5al
+ønn4s3e
+ønn4s5i4d
+ønns5kje
+ønns5kre
+ønns5ku
+ønns3l
+ønns3t
+øn2nø
+ø6nom
+øn2s
+øn9sa.
+øn5sak
+øn5sam
+øn5se.
+øn3ser
+øn3skj
+øn8skjer.
+ønst3r
+ønst9ra
+ønt1
+øn2ta
+øn2to
+øn7u8
+ø1o
+ø4peda
+ø6pe5i
+ø4penu
+ø5pero
+ø4peru
+øpes4
+ø4pete
+ø4peti
+ø1pi
+øp3li
+øp5p
+øp6pl
+ø1pr
+øp6s1
+øpsa4
+øpsla8ga
+øps8leg
+øp5ste
+øp4s5ø
+ø1ra
+ø2ra.
+ø2r1af
+ø2r1ak
+ø2r1a2m
+ø4rans
+ø4r3ant
+øra8sa
+øra6si
+ø4r7au
+ørd4e
+ø1re
+ø2rea
+ør7edd
+ø6redu
+ø2ref
+ø2reg
+ø6rein
+ø2rek
+ørek6l
+ør3eks
+ør5ekt
+ørele8se
+ø9relet
+ø4r5eng
+ø2re5o4
+ø2rep
+ø6reret
+ø4reru
+øre1s2
+ø5res.
+ø4rese
+ø6resi
+ø7reskrivi
+ø8reso
+ø4rest
+øre6s7v
+ør6et
+ø4reta
+ør1eu
+ø2rev
+ør5fe
+ørge5s
+ø1ri
+øri8m
+ør4jet
+ør4keri
+ør4kes
+ør8k9lag
+ør6k5n
+ør4kve
+ør4kå
+ørla8ga
+ørm9ut
+ørn4e
+ør4nere
+ør4nes4
+ør4n3u
+ør4n5ø
+ør1o
+ø5r6ok
+ø1ros
+ø4r3ost
+øro4v
+ør4rek
+ør4rep
+ørri4
+ør4r5is
+ør4råt
+ør4sak
+ørsa8ka
+ørsa6me.
+ør4sc
+ør6ses
+ør2si
+ør5ski
+ør4skr
+ørs6lev
+ør4som
+ør4spe
+ør2st
+ørs9tar
+ørste5i
+ørs5tens
+ørs5tig
+ør3sto
+ørs9u
+ør2sv
+ørs1å
+ør9tar
+ør4tek
+ør6ti9a
+ør4tide
+ør8tien.
+ør6tif
+ør3to
+ørum5
+ø6rut
+ør5v
+ør1ø2s
+ørø1v
+ør1åp
+ø1sa
+øsa6me.
+ø8sarar
+ø1sc
+ø2se.
+ø2sem
+øse4n5o
+øseri7
+øserie6
+øs5jo
+øs7kar
+øs1l
+øs4lag
+ø4slu
+øs2me
+ø1s2p
+øs8tas
+øst9ast
+øs6teg
+øs5terse
+øst9ett
+østo2
+øst5of
+øst5ov
+øst1r
+øst3re
+østø4
+ø2s1ø2
+4øt
+øt3ak
+ø9tar
+øta4s
+øt5asa
+ø2te.
+ø2tea
+ø6tef
+ø6tege
+ø2tei
+ø2t5eks
+ø2tel
+ø5tela.
+ø3ten
+ø4teni
+ø3ter.
+øte3ru
+ø2te1s
+øte7sn
+ø4teta
+øt7ri
+øt1sa
+øt3s4p
+øt7s6å
+øtså9re
+øt4tero
+øt6test
+øtt5av
+øtt5eks
+øtt5eta
+øtt5ete
+øtt5ra
+øtt7ri
+øtt1s2
+øttså7re
+øt4tur
+øt4ty
+ø1tu
+ø5ty
+ø1u2
+øug8la
+øv5aa
+øv5ans
+øve5in
+ø4vek
+øve5no
+øveren8
+øve1s
+øves4t
+øve3te
+ø5vik
+øv6l7ut
+øv7ne
+øv6nø
+øv9o8
+øv1r
+øv5reb
+øv1s
+øv9sa
+ø5vå
+øy3al
+øya2n
+7øyan.
+9øy8ans
+øy4dek
+øy4dere
+øyd8i
+5øyeb
+øy7e4de
+øy2ee
+øy4ele
+øye4n
+øy4ep
+øy4erf
+øy1gl
+øy3ke.
+øyks4
+øyk5t
+2øyl
+øy4led
+øy4leg
+øy5na
+øy5ni
+øy3o
+6øyp
+øy3pe.
+øy4pel
+øy4ra.
+øy5rer.
+øyri6v
+øy3rø
+øy1s
+øy5s4ar
+øy5si
+øys2l
+øy4sm
+øy4spi
+5øysund
+øy4tei
+øy4tel
+øy4tere
+øyte5s6
+øyti7da
+øy1tr
+øy2t3y6
+øy5tø
+øy4vei
+5øyvå
+ø1ø2
+ø5å6
+å1a
+åak6ta
+åa4n5
+åan8ka.
+åan6ke.
+å2ar
+å5aran
+åau4re
+å1b4
+åba8ne.
+åber2
+åbo9ta
+6å1d
+å7dan
+å9dar
+å4ded
+å4dek
+å4dem
+å4deo
+å4dep
+å4dere
+å4deri
+å6dero
+å2des
+å7di
+åd4ra
+åd8re
+åds1
+åd2sk
+åd3s4la
+åd7slo
+åd3slå
+åd1s2n
+åd3s4pe
+åd7spu
+åd5st
+åd6s7te
+4å1e
+å2ele
+åem8na
+åe2n
+å7ens
+å3er
+å3e6re.
+å1f
+åfe6
+åfø5re
+2åg
+å4ga.
+åg7ald
+å4ge.
+åg7ei
+å2ges
+ågna5
+åg5ne
+åg4r
+åg5rin
+ågs6k
+åg5sl
+åg7sp
+ågs4t
+ågu4l
+åg5ø
+å4gå.
+å1h
+å1i
+å1j
+å1ka
+å3kan
+å3kar
+å4karb
+åk7av
+å4keh
+å3ken
+å4kena
+å4k3enh
+å4kere
+åke5s
+å4kesl
+å5kevi
+å1ki
+å6kid
+å1kj
+åk1k
+åk5ka
+åkk6l
+åk7kr
+åk7lau
+åklist7
+åk3læ
+å1ko
+åk3opp
+åko4s
+åk6ra
+åk5røk
+åk3rå
+åk1s2
+åks7l
+åk3t4
+åku8
+å5k8ul
+åkva8la.
+åkøy8rar.
+å2k3å
+å1la
+å5l6amp
+å6larb
+å9las
+ål5au8
+ål9av
+ål3d
+å2lef
+ål5eini
+å2lek
+å2lem
+å4l5enh
+å4leni
+åle6ris
+å2le1s2
+åle9s6und
+å4lete
+å2lev
+ålgå6
+å6lio
+ål5j
+ålla6ga
+ål3or
+ål4san
+ål4sek
+ål4ser
+åls7i
+ål2sp
+ål4sti
+ålsy8na
+ål5ti
+ålti5d
+ål1u
+ålul8la
+å1ly
+å2l1øy
+åløy4e
+ål5å6k
+ålå8te.
+6åm
+å6me.
+åm4li.
+åm1om
+åm5øy
+å3nar
+å9nas
+ånd3r
+ånd4sa
+ånd4se
+ånd4so
+å4ne.
+åned4
+åneds5
+åne5i6
+å2nel
+ånely6
+å5nes.
+å3net
+å4netr
+å3ni
+ån5o
+å9ny
+å3o
+åp2e
+åpe4n3a
+åpe4n5i
+åpen3s
+å5per
+å6pero
+å1pi
+åp6j
+å1pla
+åp4ne.
+åp7p
+å1pr
+åpra5
+åp2s1
+åp6ta
+å4på
+år3ak
+å9ran
+å7rara
+ård5str
+å2re.
+å5rei
+å6rel
+åre7s
+å4rest
+årfi4
+å7riv
+år3k2
+år4le.
+2årn
+årn5s
+år3on
+år3op
+årpo8
+år2s
+års5af
+års3el
+år3sem
+års3ko
+år8sku
+årsla8ga
+år3sol
+års3ta
+år7ste
+års3ti
+år7sto
+år5stu
+års1u
+års1v
+år5sy
+år5u4k
+år3un
+år5y4
+å1rø
+å5r8å
+ås2
+å1sa
+ås7au
+å4se.
+å4see
+ås5eid
+å4sek
+å4sem
+åseri7e6
+åse3s2
+å4sesm
+å4seso
+åse5ta
+ås3h
+å8si.
+ås5ka.
+ås9kene
+ås8ki
+å1skj
+ås7kop
+å1skr
+å5sku
+å1sl
+ås5ne
+ås3ni
+å5so
+å1sp
+ås7pl
+ås5sa
+ås5se
+ås3si
+åss3k
+4å1st
+å7stei
+åsu4
+ås3un
+ås7ut
+ås7væ
+ås5øy
+åså9
+å1ta
+å4ta.
+åtaks5
+åta2l
+åta9la
+åtale3
+åta5le.
+åta5len
+å4tang
+å4tark
+å4t5arm
+å2te.
+å2tea
+å4tee
+å2t1ei
+åte6ke.
+å4teo
+å9ter
+å2tes
+5åtferd
+å5ti
+åti7da
+2åtn
+å1to
+åt7ov
+6åtp
+åt1re
+åtri6pa.
+åtri8pe.
+åt1ru
+åt5sk
+åt1t
+åt4ted
+åt4ti
+ått3o
+åt4tri
+åtts4
+åt6t5æ
+åt1u
+åt4un
+åtva5ra
+åtva7re
+åt5ve
+å5ty
+åt1øv
+å3u
+åun8ge.
+å1v
+åv4a
+å2ve7d
+å4veg
+åve5l
+å4veni
+å9ver.
+å2vev
+åv7s6
+å7vy
+åvæ4re.
+å1ø8
+åøy4} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-nb.rme b/Master/texmf-dist/tex/context/patterns/lang-nb.rme
new file mode 100644
index 00000000000..48bfa041a4f
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/lang-nb.rme
@@ -0,0 +1,134 @@
+% generated by mtxrun --script pattern --convert
+
+% Adapted to the new pattern-loading scheme.
+% Original file name was nbhyph.tex
+
+% TeX hyphenation patterns for Norwegian Bokmal
+%
+% Version 2007-02-10
+%
+% Copyright (C) 2007 Karl Ove Hufthammer.
+% Copying and distribution of this file, with or without modification,
+% are permitted in any medium without royalty, provided the copyright
+% notice and this notice are preserved.
+%
+% This file contains hyphenation patterns for Norwegian Bokmal.
+% It uses the Norwegian hyphenation patterns from nohyphbx.tex,
+% created by Rune Kleveland and Ole Michael Selberg. Please see
+% that file for copyright information on those patterns.
+%
+% The patterns in nohyphbx are based on both Norwegian Bokmal
+% and Norwegian Nynorsk, and works about equally well for both
+% languages. This file, nbhyph.tex, contains only a few hyphenation
+% exceptions, for words that needs to be hyphenated differently for
+% the two languages.
+%
+% Please send bugs or suggestions to karl@huftis.org.
+%
+
+% This file is part of hyph-utf8 package and resulted from
+% semi-manual conversions of hyphenation patterns into UTF-8 in June 2008.
+%
+% Source: nohyphbx.tex (2007-02-07)
+% Author:
+%
+% The above mentioned file should become obsolete,
+% and the author of the original file should preferaby modify this file instead.
+%
+% Modificatios were needed in order to support native UTF-8 engines,
+% but functionality (hopefully) didn't change in any way, at least not intentionally.
+% This file is no longer stand-alone; at least for 8-bit engines
+% you probably want to use loadhyph-foo.tex (which will load this file) instead.
+%
+% Modifications were done by Jonathan Kew, Mojca Miklavec & Arthur Reutenauer
+% with help & support from:
+% - Karl Berry, who gave us free hands and all resources
+% - Taco Hoekwater, with useful macros
+% - Hans Hagen, who did the unicodifisation of patterns already long before
+% and helped with testing, suggestions and bug reports
+% - Norbert Preining, who tested & integrated patterns into TeX Live
+%
+% However, the "copyright/copyleft" owner of patterns remains the original author.
+%
+% The copyright statement of this file is thus:
+%
+% Do with this file whatever needs to be done in future for the sake of
+% "a better world" as long as you respect the copyright of original file.
+% If you're the original author of patterns or taking over a new revolution,
+% plese remove all of the TUG comments & credits that we added here -
+% you are the Queen / the King, we are only the servants.
+%
+% If you want to change this file, rather than uploading directly to CTAN,
+% we would be grateful if you could send it to us (http://tug.org/tex-hyphen)
+% or ask for credentials for SVN repository and commit it yourself;
+% we will then upload the whole "package" to CTAN.
+%
+% Before a new "pattern-revolution" starts,
+% please try to follow some guidelines if possible:
+%
+% - \lccode is *forbidden*, and I really mean it
+% - all the patterns should be in UTF-8
+% - the only "allowed" TeX commands in this file are: \patterns, \hyphenation,
+% and if you really cannot do without, also \input and \message
+% - in particular, please no \catcode or \lccode changes,
+% they belong to loadhyph-foo.tex,
+% and no \lefthyphenmin and \righthyphenmin,
+% they have no influence here and belong elsewhere
+% - \begingroup and/or \endinput is not needed
+% - feel free to do whatever you want inside comments
+%
+% We know that TeX is extremely powerful, but give a stupid parser
+% at least a chance to read your patterns.
+%
+% For more unformation see
+%
+% http://tug.org/tex-hyphen
+%
+%------------------------------------------------------------------------------
+%
+% TeX hyphenation patterns for Norwegian
+%
+% version of 2007-02-07.
+% Patterns of January 25, 2005, with later additions and changes
+%
+% Copyright (C) 2004, 2005 Rune Kleveland, Ole Michael Selberg.
+% Copying and distribution of this file, with or without modification,
+% are permitted in any medium without royalty provided the copyright
+% notice and this notice are preserved.
+%
+% Please send bugs or suggestions to tex-live (at) tug.org.
+%
+% Originally generated by a script written by Rune Kleveland
+% from dictionaries available from
+% http://folk.uio.no/runekl/dictionary.html.
+%
+% Adjusted manually by Ole Michael Selberg to prevent
+% numerous wrong hyphenations, especially in compounds.
+%
+% Changes from the former version of 2005-06-29:
+% 388 new patterns. Some old patterns have been deleted or changed.
+%
+% In Kleveland's nohyphb.tex there are 26017 patterns.
+% This version of the revised nohyphbx.tex contains 27149 patterns
+% --- plus 45 exceptions in the \hyphenation-list
+% (which you may change to suit your personal needs).
+%
+% To load these hyphenation patterns the parameters
+% of TeX must have the following minimum values:
+% trie_size = 33385
+% trie_op_size = 815
+% (The corresponding values for nohyphb.tex are
+% trie_size = 31900 trie_op_size = 636)
+% If you want to load more than one set of hyphenation
+% patterns the parameters have to be set to a value
+% larger than or equal to the sum of all required values
+% for each set.
+%
+% Notes on other Norwegian hyphenation pattern files, from Dag Langmyhr,
+% tex-live mail of 29 Jun 2005 11:26:21 +0200.
+% nohyph.tex -- manually created by Ivar Aavatsmark and others;
+% hyphenate according to pre-1973 rules; no longer recommended for use.
+% (Sometimes also known as nohyph1.tex.)
+% nohyph2.tex -- created by Dag and a student; the present file,
+% nohyphbx.tex, is more extensive and is recommended.
+% \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-nl.hyp b/Master/texmf-dist/tex/context/patterns/lang-nl.hyp
index 9782158f1a1..2cad20e7149 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-nl.hyp
+++ b/Master/texmf-dist/tex/context/patterns/lang-nl.hyp
@@ -1,34 +1,10 @@
-% context hyphenation file, see lang-all.xml for original comment
+% generated by mtxrun --script pattern --convert
-% source of data: nehyph96.tex
+% for comment and copyright, see ./lang-nl.rme
-% begin description data
+% used: a b c d e f g h i j k l m n o p r s t u v w
-% <!-- copied from lang-all.xml
-%
-% <?xml version='1.0' standalone='yes'?>
-%
-% <description language='nl'>
-% <sourcefile>nehyph96.tex</sourcefile>
-% <title>TeX hyphenation patterns for the Dutch language</title>
-% <copyright>
-% <year>1996</year>
-% <owner> Piet Tutelaers (P.T.H.Tutelaers@tue.nl)</owner>
-% <comment>8-bit hyphenation patterns for TeX based upon the new Dutch
-% spelling, officially since 1 August 1996. These patterns follow
-% the new hyphenation rules in the `Woordenlijst Nederlandse
-% Taal, SDU Uitgevers, Den Haag 1995' (the so called `Groene
-% Boekje') described in section 5.2 (Het afbreekteken)</comment>
-% </copyright>
-% </description>
-%
-% end of copy -->
-
-% end description data
-
-% begin hyphenation data
-
-\hyphenation {
+\hyphenation{
aan-dachts-trek-ker
aan-dachts-trek-kers
acht-en-der
@@ -68,8 +44,4 @@ ver-rechts-te
ver-steeds-te
wals-te
wa-ter-staats-in-ge-ni-eur
-wa-ter-staats-in-ge-ni-eurs
-}
-
-% end hyphenation data
-
+wa-ter-staats-in-ge-ni-eurs} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-nl.pat b/Master/texmf-dist/tex/context/patterns/lang-nl.pat
index 2e4bdfbe870..b56bc6ebbf6 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-nl.pat
+++ b/Master/texmf-dist/tex/context/patterns/lang-nl.pat
@@ -1,34 +1,10 @@
-% context pattern file, see lang-all.xml for original comment
+% generated by mtxrun --script pattern --convert
-% source of data: nehyph96.tex
+% for comment and copyright, see ./lang-nl.rme
-% begin description data
+% used: a b c d e f g h i j k l m n o p q r s t u v w x y z ä ç è é ê ë î ï ñ ö û ü
-% <!-- copied from lang-all.xml
-%
-% <?xml version='1.0' standalone='yes'?>
-%
-% <description language='nl'>
-% <sourcefile>nehyph96.tex</sourcefile>
-% <title>TeX hyphenation patterns for the Dutch language</title>
-% <copyright>
-% <year>1996</year>
-% <owner> Piet Tutelaers (P.T.H.Tutelaers@tue.nl)</owner>
-% <comment>8-bit hyphenation patterns for TeX based upon the new Dutch
-% spelling, officially since 1 August 1996. These patterns follow
-% the new hyphenation rules in the `Woordenlijst Nederlandse
-% Taal, SDU Uitgevers, Den Haag 1995' (the so called `Groene
-% Boekje') described in section 5.2 (Het afbreekteken)</comment>
-% </copyright>
-% </description>
-%
-% end of copy -->
-
-% end description data
-
-% begin pattern data
-
-\patterns {
+\patterns{
.a4
.aan5
.aarts5
@@ -12752,8 +12728,4 @@ zwets5te.
2z3z
zz3in
zz3or
-z4z5w
-}
-
-% end pattern data
-
+z4z5w} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-nl.rme b/Master/texmf-dist/tex/context/patterns/lang-nl.rme
new file mode 100644
index 00000000000..9b3a852abc8
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/lang-nl.rme
@@ -0,0 +1,98 @@
+% generated by mtxrun --script pattern --convert
+
+% This file is part of hyph-utf8 package and resulted from
+% semi-manual conversions of hyphenation patterns into UTF-8 in June 2008.
+%
+% Source: nehyph96.tex (yyyy-mm-dd)
+% Author: Piet Tutelaers
+%
+% The above mentioned file should become obsolete,
+% and the author of the original file should preferaby modify this file instead.
+%
+% Modificatios were needed in order to support native UTF-8 engines,
+% but functionality (hopefully) didn't change in any way, at least not intentionally.
+% This file is no longer stand-alone; at least for 8-bit engines
+% you probably want to use loadhyph-foo.tex (which will load this file) instead.
+%
+% Modifications were done by Jonathan Kew, Mojca Miklavec & Arthur Reutenauer
+% with help & support from:
+% - Karl Berry, who gave us free hands and all resources
+% - Taco Hoekwater, with useful macros
+% - Hans Hagen, who did the unicodifisation of patterns already long before
+% and helped with testing, suggestions and bug reports
+% - Norbert Preining, who tested & integrated patterns into TeX Live
+%
+% However, the "copyright/copyleft" owner of patterns remains the original author.
+%
+% The copyright statement of this file is thus:
+%
+% Do with this file whatever needs to be done in future for the sake of
+% "a better world" as long as you respect the copyright of original file.
+% If you're the original author of patterns or taking over a new revolution,
+% plese remove all of the TUG comments & credits that we added here -
+% you are the Queen / the King, we are only the servants.
+%
+% If you want to change this file, rather than uploading directly to CTAN,
+% we would be grateful if you could send it to us (http://tug.org/tex-hyphen)
+% or ask for credentials for SVN repository and commit it yourself;
+% we will then upload the whole "package" to CTAN.
+%
+% Before a new "pattern-revolution" starts,
+% please try to follow some guidelines if possible:
+%
+% - \lccode is *forbidden*, and I really mean it
+% - all the patterns should be in UTF-8
+% - the only "allowed" TeX commands in this file are: \patterns, \hyphenation,
+% and if you really cannot do without, also \input and \message
+% - in particular, please no \catcode or \lccode changes,
+% they belong to loadhyph-foo.tex,
+% and no \lefthyphenmin and \righthyphenmin,
+% they have no influence here and belong elsewhere
+% - \begingroup and/or \endinput is not needed
+% - feel free to do whatever you want inside comments
+%
+% We know that TeX is extremely powerful, but give a stupid parser
+% at least a chance to read your patterns.
+%
+% For more unformation see
+%
+% http://tug.org/tex-hyphen
+%
+%------------------------------------------------------------------------------
+%
+% PURPOSE: 8-bit hyphenation patterns for TeX based upon the new Dutch
+% spelling, officially since 1 August 1996. These patterns follow
+% the new hyphenation rules in the `Woordenlijst Nederlandse
+% Taal, SDU Uitgevers, Den Haag 1995' (the so called `Groene
+% Boekje') described in section 5.2 (Het afbreekteken).
+%
+% The main differences with our earlier patterns based upon the
+% CELEX dictionary are:
+% (1) provide 8-bit patterns based upon the T1 character encoding
+% (the encoding for DC/EC compatible TeX fonts)
+% (2) don't hyphenate if this results in a syllable of one letter
+% before or after the hyphen (hence hyphens in a-drenaline,
+% studi-o, mensa-pen and vide-oachtig are invalid)
+% (3) handle words derived from other languages (`bastaard
+% woorden') according to the new rules
+%
+% Like the CELEX patterns these patterns don't hyphenate:
+% (4) in a changing syllable (menuutje can not be hyphenated as
+% menu-tje)
+% (5) in words that have different hyphenations according to
+% there meaning (buur-tje/buurt-je)
+%
+% COPYRIGHT (C) 1996: Piet Tutelaers
+%
+% -----------------------------------------------------------------
+% IMPORTANT NOTICE:
+%
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt; either
+% version 1 of the License, or any later version.
+% -----------------------------------------------------------------
+% VERSION: 1.1 (November 1996) Copyright changed March 2000
+%
+% AUTHOR: Piet Tutelaers P.T.H.Tutelaers@tue.nl
+% \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-nn.hyp b/Master/texmf-dist/tex/context/patterns/lang-nn.hyp
new file mode 100644
index 00000000000..45e028584c8
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/lang-nn.hyp
@@ -0,0 +1,52 @@
+% generated by mtxrun --script pattern --convert
+
+% for comment and copyright, see ./lang-nn.rme
+
+% used: D N S a b c d e f g h i j k l m n o p r s t u v w y z å æ ø ü
+
+\hyphenation{
+atten-de
+aust-røn
+aviser
+betre
+bortan-for
+bortre
+Dansk-øya
+der-etter
+dess-uak-tet
+dit-over
+finger-spitzen-ge-fühl
+finger-spitz-ge-fühl
+fram-ifrå
+før-enn
+her-etter
+her-etter-dags
+hvor-etter
+hvor-over
+høyt-ærede
+gi-vet-vis
+lands-øl
+lands-ølet
+lands-ølets
+langt-ifra
+ned-imot
+noens
+Not-odden
+Not-oddens
+nøye-reg-nen-de
+opp-imot
+oven-ikjøpet
+promp-te
+spleen
+sel-ves-te
+smal-enden
+sørpe-is
+sørpe-isen
+skrov-is
+skrov-isen
+Steins-land
+syd-enden
+tvert-om
+velan
+velet
+welt-schmerz} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-nn.pat b/Master/texmf-dist/tex/context/patterns/lang-nn.pat
new file mode 100644
index 00000000000..b0531f596e6
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/lang-nn.pat
@@ -0,0 +1,27154 @@
+% generated by mtxrun --script pattern --convert
+
+% for comment and copyright, see ./lang-nn.rme
+
+% used: a b c d e f g h i j k l m n o p q r s t u v w x y z å æ è é ê ò ó ô ø
+
+\patterns{
+.a4
+.aa4
+.ab4ba
+.ab7be
+.ab6s5t
+.ac6tin
+.adel4s
+.ad8la.
+.ad6le.
+.ad2r
+.ad1s2
+.af7f
+.af5t4
+.af5f6u
+.ag6na.
+.ag6ne.
+.ag4r
+.ai2
+.a6k
+.ak6ka.
+.ak6ke.
+.ak3kl
+.ak3kr
+.ak6ne.
+.ak6r
+.ak8sa.
+.ak4se.
+.ak6ta
+.ak4te.
+.akte4r
+.akter5e
+.ak5tr
+.akva7
+.a6l
+.albu5en
+.alfa3
+.al4ge.
+.al5gi
+.al6ka.
+.al4ke.
+.al4kom
+.al4la.
+.al4le.
+.al5leg
+.al5lo
+.all5s6
+.al4ma.
+.al8me.
+.al5m6in
+.al4na
+.al6s7k
+.als5o
+.alt4a
+.al4ta.
+.al5tar
+.al4te.
+.alt3o
+.al6ve.
+.am7b
+.a6me
+.am6ma.
+.am4me.
+.am4s4
+.am6ta
+.a6n
+.ana3b
+.an4da.
+.an4de.
+.an5d4ra
+.an4d5ø
+.an3er
+.anes5
+.an4ga.
+.an3ge
+.an4ge.
+.ange4s
+.an4ja.
+.an4ka.
+.an4ke.
+.an4la.
+.an3n
+.an4na.
+.an7nal
+.ann4e
+.an4ne.
+.an5s8
+.an4sa.
+.an4se.
+.ant2
+.an4ta.
+.an4te.
+.an5tem
+.an5tep
+.an4ti.
+.an6tin
+.an4tis
+.an4tiv
+.ap8lan
+.ap1p6
+.ap8t
+.arbi5
+.ar6de.
+.are4o7
+.ar4ge.
+.ar5ges
+.ari6a
+.ari8e
+.arie5ne
+.ar5ka
+.ar8ka.
+.arlan9
+.ar4me.
+.ar7mea
+.ar4na.
+.ar3ne
+.ar4ne.
+.ar5nes
+.ar6ra.
+.ar6r7u
+.ar6ta.
+.ar4te.
+.ar9ti
+.ar6va.
+.ar4ve.
+.ar4ved
+.ar4ver
+.arvi6
+.a6s
+.as8ka
+.as4ke.
+.as5kese
+.as4le.
+.as6pa.
+.as5s
+.ast5ru
+.at4h
+.at4ki
+.at4le.
+.at4na.
+.at2o4
+.at3s
+.atte4
+.att6r
+.a5ty
+.au8de
+.au6e
+.au8ga
+.au4ge
+.au4ka.
+.au8le.
+.au4r
+.au6sa.
+.au6se.
+.aus9k
+.au4sp
+.avi2
+.av7i6d
+.av7inde
+.av4la.
+.av4le.
+.av7s6
+.b6
+.ba6by
+.ba6la.
+.ba4le.
+.ba4ne.
+.ban4k3l
+.ba4re.
+.ba4ri.
+.ba8te.
+.be4de.
+.bede4n
+.be6d5ene
+.be4d5et
+.be8di.
+.be3e4d
+.be6ke.
+.be4la.
+.be9nar
+.be4ne.
+.be6ra.
+.be6re.
+.be4res
+.ber6ett
+.be8ri.
+.be7ska
+.be6sten
+.be4ta.
+.be6te.
+.be5t4v
+.bi6de.
+.bi6en
+.bi4le.
+.bilet5
+.bi6t3r
+.bl4
+.bla4d
+.ble4k3
+.ble5k4e
+.blek4k3f
+.blekk3s4t6
+.blekk9s8v4
+.bling5
+.bo8da
+.bo8de.
+.bogs8
+.bok5
+.bo4k4en.
+.bo8la
+.bon2
+.bo4na.
+.bor6t5
+.bort6e
+.bor8ti8
+.bort9r
+.brudd7s6
+.bruddså7
+.bu6da.
+.bu3d6r
+.bu4et
+.bus6sy
+.by6de.
+.by8ta.
+.bæ2
+.bø6k5a
+.bø8nen
+.bø8ner
+.c4
+.ca4en.
+.car4s5
+.ca6se
+.ce6b
+.cos1
+.co4st
+.d6
+.da4ge.
+.da4le.
+.dags6e
+.da2m
+.da4ne.
+.da4ta
+.dau3s
+.deka9r
+.deko7d
+.de4le.
+.de4l5ei
+.del5s6
+.de4mi.
+.demo7e
+.den5sl
+.de4re.
+.de4r5et
+.de4ri.
+.de6r3i4
+.de7r4i5v
+.de4r5om
+.de6s5m
+.de4so
+.de4sto
+.de4u
+.devi5s
+.di2a
+.di5e4l
+.di6er
+.di4et.
+.di9f6t
+.di4ne.
+.dings7a
+.di4sk
+.di8s3t
+.do4en
+.do4er
+.do8et
+.dome5
+.do4ra
+.do6re.
+.drau4m
+.ds4
+.du4a
+.du4en.
+.du4er
+.duft3
+.du4ge.
+.duk3n
+.du4se.
+.du4st
+.dy4re.
+.dø6la.
+.dø6r3
+.dø7r4a
+.dø7r4e
+.dø4ve.
+.då5ren
+.då7ret
+.e6
+.eb4ba
+.ecu6
+.ed4da
+.ed4le.
+.efo7
+.ef4ta
+.efta5s
+.ef6ter
+.eg8de.
+.ege2
+.ege5l
+.eg6ga.
+.eg4ge.
+.eg4gel
+.eg8la.
+.eg4le.
+.eg6na.
+.eg4ne.
+.ego7t8
+.egs4
+.eg8se.
+.eg5si
+.ei2
+.eid5a
+.ei5den
+.ei4ga.
+.ei7ger
+.eik5a
+.ei4ke.
+.ei3l
+.ei3m
+.ei8ma.
+.ei8me.
+.ein7as
+.ei3ni
+.ein5og5
+.ein5s6ta
+.ein8s7to
+.ei9rar
+.ei5res
+.eir9u
+.ei5te
+.eit9r
+.ekk4o
+.ek4le.
+.ek3li
+.ek6ne.
+.ek4r
+.ek8sa.
+.ek3se
+.ek8se.
+.ek4sp
+.eks6pi
+.eks3t4
+.ek5s4ta
+.ek8ta
+.ek4te.
+.ek7to
+.el8da.
+.el4de.
+.el4g5r
+.eli5ne
+.el3k
+.el5l
+.el6s
+.els6a
+.els4kl
+.els6t
+.el6ta.
+.el6te.
+.el6veg
+.em3b2
+.emfa9
+.em4ma.
+.em8me.
+.em6na.
+.em5p
+.en5a
+.en4da.
+.en4de.
+.end5r
+.en4ga.
+.en6gav
+.en3ge
+.en4ge.
+.en6g5r
+.engs6
+.en6ka
+.en4ke.
+.en5og5
+.en6sa
+.en4se.
+.en5so
+.en3sp
+.en5t
+.en6te.
+.ent4r
+.en6t5ra
+.ent8re
+.en3ø4
+.ep6t
+.er8a
+.er4e
+.er4g5r
+.er4ke
+.er4la.
+.er4le.
+.er6ma.
+.er4me.
+.er4mek
+.er4na.
+.er6ta.
+.er4te.
+.es9ast
+.es1k
+.es3ka
+.es8ka.
+.es4ke.
+.es5l
+.es8la.
+.es8le.
+.es3p
+.es6pa.
+.es6r
+.es8sa.
+.es4se.
+.es4so
+.es5ta
+.es3te
+.es6te.
+.es7tet
+.es5ti
+.est3r
+.es7tu
+.et8la.
+.et8le.
+.et4na
+.et4ne.
+.et4s
+.et8sa.
+.et5s4e
+.et6se.
+.ets4i
+.et1te4
+.et6ter
+.et6ti
+.ev8ja
+.ev4je.
+.ev4ne.
+.ex4
+.f4
+.fa2e
+.fag3s4
+.fa4ne.
+.fan3t4o
+.fe4e
+.feil5i
+.fe2l
+.fela9
+.fel5l
+.fel4ta
+.fe4ma
+.fe8me
+.fem5o6g5
+.fem5t
+.fer8ro
+.fer6s
+.fe8sl
+.fe8st5
+.fes3t6e
+.fi4b5
+.fi6a
+.fi4le.
+.fire5o6g5
+.fis6k
+.fjel4
+.fla4t5o
+.fo4bi.
+.fol2
+.fo2r
+.for3d6ri
+.for7d6ra
+.for5en.
+.form5s
+.for7s6o
+.fre6e
+.fri5e6re
+.fug2
+.fu6ge.
+.ful2
+.fu8se.
+.fy8se
+.fø8rel
+.g6
+.gaf7
+.ga4le.
+.ga8li.
+.ga4me
+.ga4ne.
+.gang5s4
+.gas4
+.gas5ta
+.ga2t
+.ga4ve.
+.ga9vee
+.ge2a
+.gel4e
+.ge3ne
+.ge6ni5
+.gen5s
+.ge4o
+.ge4st
+.ge5s6tap
+.ge9sv
+.gha5
+.gift5s
+.gi4n
+.gi4s
+.gis7p
+.gi8v3a
+.gl6
+.glo6i
+.glo9v
+.gly5s
+.glø9se
+.gnå7la
+.go5des
+.gos7
+.gra4v3end
+.grei4e
+.grunn5s
+.grus5s
+.gu4de.
+.gud3v4
+.gu4lat
+.gus1
+.gu4tu.
+.gø2
+.gås4e5
+.gå4v
+.h4
+.hai5s6
+.ha6ka.
+.ha8ma.
+.hand5s6l
+.handsla9
+.ha6v5ak
+.ha6vi
+.he4er.
+.hei5e
+.he2n
+.hen3i2
+.he6r5i6
+.he6r5o6
+.he9r6oe
+.he7r6oi
+.he7r6ol
+.he9r8os
+.hes4s5
+.het6s5
+.het7s6e
+.he4t5
+.he5t6e
+.hil4l
+.hi4n
+.hi6re.
+.ho2d
+.ho2e
+.ho4re.
+.ho5ren
+.ho7ret
+.ho8ta.
+.ho8va.
+.hu4di
+.hus6val
+.hvit3
+.hvi3t4e
+.hy6ra.
+.hy4re.
+.høi5
+.hø4re
+.hø4va
+.hø4ve.
+.høy6st5æ
+.hå8en.
+.hå8er
+.hånd5s6l
+.i2
+.i3a4
+.i3bl
+.i4da
+.ifø5re
+.ig8la.
+.ig4le.
+.i4her
+.ik2
+.ik6k
+.ikke5
+.i3k6l
+.ik5t
+.ik8te.
+.i5kv
+.i3la
+.i4la.
+.i8lande
+.ilbo8da
+.il6d3r
+.il6de.
+.i3leg
+.i6les
+.il4ja
+.il6je.
+.il6ke.
+.il4le.
+.il6sk
+.il4te.
+.i6me
+.imø5te.
+.in5ad
+.in5de
+.in8ga.
+.in4ge.
+.in3gr
+.in6gri
+.in5k6
+.in6ka.
+.in4n3
+.in4ne.
+.in5n6e
+.in6n7eks
+.in6n7ets
+.in6n7ett
+.in4n3i
+.in5s
+.in7tes
+.io4na
+.io4nom
+.i4rer
+.ir7k8
+.ir8ra.
+.ir6re.
+.i6sa
+.i3sc
+.i6se
+.is7k6
+.isla8ga
+.is6lam
+.is4le.
+.is4let
+.is4me.
+.is8na.
+.is8ne.
+.is5pa
+.i5spe
+.is3s4
+.is6sa.
+.is4se.
+.is5sk
+.ist6
+.is8te.
+.i5sted
+.i5stem
+.is7ti
+.i6s7tj
+.i6s7tr
+.is8ut.
+.i6s5ø
+.i5ti
+.i3va
+.i4van
+.i4var.
+.i3ve
+.i4vel
+.i6ven
+.i4ver.
+.i4vere
+.iv8ra.
+.iv6re.
+.i3ø
+.j4
+.ja4de.
+.ja6e
+.ja4ne
+.ja8se.
+.ja4va.
+.je2a
+.je2l
+.je2m
+.je5re
+.jern5s4
+.je4ta
+.ji4
+.jo8en.
+.jo4se.
+.ju6a
+.ju6la
+.jule3
+.ju4li3
+.jø4dep
+.k6
+.kaf2
+.ka6la.
+.ka6li.
+.kalve5l8
+.ka5me
+.ka3na
+.ka4ne.
+.ka4p3r
+.ka4ra.
+.ka5r6a5v
+.ka6re.
+.ka5rin
+.ka4te.
+.ka5t6h
+.kau9k
+.ka6va.
+.ka4ve.
+.ke6e
+.kel3
+.kier3
+.ki4na
+.ki7ni
+.kino3
+.kir2
+.ki4se.
+.ki8va.
+.ki6ve.
+.kje3de5
+.kje4k
+.kjek7l
+.kjønn4
+.kle4s
+.kli5ne
+.klo9va
+.kly7sa
+.kna7se
+.kne4p3r
+.ko6da.
+.ko7gr
+.ko4la
+.ko3le
+.ko8le.
+.kol5j
+.ko3pe
+.ko6pe.
+.kor6s5ed
+.ko4se.
+.ko6ta.
+.ko4te.
+.ko6ve.
+.kring5s
+.ks6
+.ku5f4l
+.ku4le
+.ku8ra.
+.ku4re.
+.ku8ta.
+.ku8te.
+.kva4r1a
+.kve9ka
+.kve5ke
+.ky8la.
+.ky4le.
+.ky6te.
+.kø3s
+.kå6pa
+.l6
+.la4da.
+.la4de.
+.la4ga
+.la4ge.
+.la5ger
+.la4ma.
+.la6ta.
+.la4te.
+.la3tr
+.la4va
+.la3ve
+.la4ve.
+.le8ar
+.le4da.
+.le4de.
+.le4er
+.le6et
+.le2f
+.lef3l
+.lega5ta
+.le4ge.
+.le4gel
+.le8gi.
+.lei5er.
+.lei4ve
+.le4ke.
+.le4k5r
+.lemu9
+.le4ne.
+.le6o7
+.le7s6a
+.le4se.
+.le4sek
+.le4ses
+.le4s5p
+.le2t
+.le7ta
+.let6tan
+.le2u3
+.le3va
+.le4va.
+.le4ve.
+.le4ves
+.li8a
+.li4de.
+.li4e4
+.li5ene
+.li2g
+.liga3
+.li2k
+.lik5k6
+.lik3o
+.lik3s
+.li4ma
+.link6
+.li6ra
+.li4re.
+.li4sa
+.li4se.
+.li4ta.
+.li4te.
+.li5ti
+.li4ve.
+.li4v5en
+.liv8s7u6
+.liv4s5v
+.lo4e
+.lo6ge.
+.lo8gi.
+.lo6g5r
+.lo4i
+.lo6na
+.lo8o
+.lo6ri
+.lo8sa.
+.lo4se.
+.lo6te
+.lo4va
+.lo3ve
+.lo4ve.
+.lu4d
+.lu2e
+.lu4na
+.lu6pa
+.lu4pe.
+.lu6ra.
+.lu4re.
+.lu6se.
+.lu4ta.
+.lu9tas
+.ly4de.
+.lyd3s
+.ly8e
+.ly8ge
+.ly4se.
+.ly4sk
+.ly5s6e
+.lys5s6
+.ly8str
+.ly4te.
+.ly4ve.
+.lø8de.
+.lø6en.
+.lø8ne.
+.lø6pa.
+.lø4pe.
+.løv5i
+.løye5ne
+.lå8ma
+.lå5re
+.lå6re.
+.lå4te.
+.m8
+.ma4ge.
+.mag9r
+.ma3ka
+.ma4ke.
+.mak6t5at
+.makt5s
+.ma4le.
+.ma4li.
+.ma4na.
+.ma4ne.
+.ma4ni.
+.ma4ra.
+.ma4re.
+.ma4ri.
+.ma4sa.
+.ma4si
+.ma6st
+.ma8ta
+.ma6t8h
+.mat5t8o
+.ma4v
+.me4d3
+.me6d5ei
+.me6d4i
+.me6d7in
+.me6d5r
+.mei5er.
+.mei5et
+.mek5l
+.me6la.
+.mel3l6o
+.me4l5ø
+.me4ne.
+.me3ri
+.me4sk
+.me2t6a3
+.me3ta4ll
+.mes5ti
+.me4tri
+.mi6kj
+.mi4le.
+.mi4me.
+.mi4ni.
+.mi4nik
+.min4k3
+.min5k4e
+.mi6s3t4
+.mne6
+.mo5de
+.mo6er
+.mo4na.
+.mo8ne.
+.mon4st
+.mons6t5r
+.mor5d6e
+.mo4re.
+.mor3t6a5
+.mo4se.
+.mo4ta
+.mo4tek
+.mo4ter
+.mo4tr
+.mo5v
+.mu8ga
+.mu8ge.
+.mu6le.
+.mul5es
+.mur7
+.mu5r8e
+.my8ka
+.my4ke.
+.mø4re.
+.mø5res
+.mø2t
+.må6la.
+.mål3o
+.n8
+.nabo3
+.na6ge.
+.nak2
+.na8ke.
+.nan5s
+.na4r
+.na4sa.
+.nat2
+.na3tr
+.nat6tr
+.ne4de.
+.ne4den
+.ne4d5i
+.ne4d3r
+.ned3s4
+.nei5e
+.ne8pa.
+.ne6pe.
+.ne2s
+.ne4t
+.ni8ar
+.ni6er
+.nig4l
+.ni4na.
+.ni5o6g5
+.ni4pa.
+.ni6pe.
+.ni8sa
+.ni6se.
+.nita9
+.ni4to
+.ni4va
+.no6de.
+.no6e
+.no8ka
+.no4me.
+.no8mi.
+.no4r
+.no8se
+.no8si.
+.no4va.
+.nu4e
+.ny5a
+.ny8sa.
+.ny6se.
+.ny4te.
+.nær9ast.
+.næ4re.
+.nød4d
+.nø4re.
+.nå4de.
+.nå6le.
+.o6
+.obo5e
+.od4da.
+.od4de.
+.od8la.
+.od8le.
+.offsi6
+.of4te.
+.of5teb
+.og4
+.ok1k
+.ok8ka.
+.ok8ke
+.ok4se.
+.old3s
+.ol4ga.
+.oli5
+.ol8la
+.ol8le.
+.ol6m
+.om1
+.om4ar.
+.om6bo.
+.om4e6n
+.om4gå.
+.om4me
+.om5s2
+.on4de.
+.on5des
+.ond3s
+.on6kl
+.on6na
+.on8ne.
+.op5ar
+.op4pa
+.op4pe
+.opp7el
+.op4pi
+.opp3l
+.oppla8te.
+.opp5s6
+.op7r
+.opt6
+.or4da
+.or4de.
+.or4del
+.or4dr
+.ord5s4
+.or5ga
+.or6ka.
+.or4ke.
+.or6me.
+.or4re.
+.ort6
+.or6va
+.osa5
+.os4k
+.os4s
+.os4te.
+.ot5r
+.ot7t8a
+.ot4ta.
+.ot4te.
+.ot4tes
+.ot3to
+.ot4to.
+.ove6
+.over3
+.overen6d
+.over3i4
+.over5k8
+.ov8re
+.ov5u
+.p6
+.pa8la.
+.pa4le.
+.pa5n6e
+.pa6n7eu
+.pa5n6i
+.pa6re.
+.pe3do
+.pe4ke.
+.pek5t
+.pel4sj
+.pe4ne.
+.pe2p
+.pep3r
+.pe8sa.
+.pese5t
+.pe4st
+.ph2
+.pi6le.
+.pi6p
+.pi9ra
+.pi2s
+.plen5g6
+.plus6s5
+.plus7s6e
+.plø7se
+.po4et
+.po3la
+.po8la.
+.po4le.
+.po4log
+.po2p1
+.po2p2e
+.pop3p
+.po3p2u
+.po8ra
+.po6re.
+.po4res
+.po6st
+.po8ta.
+.po6tek
+.ps2
+.pøn3
+.pøn9s6
+.på5d6
+.r6
+.ra6da.
+.ra6et
+.ra4ga.
+.ra4ge.
+.ra4ja.
+.ra4ka
+.raks7
+.ra2m
+.ra4na
+.ra4ne.
+.ran7s6a
+.ra6pa.
+.ra6pe.
+.rap4s
+.rap5s4e
+.rap5s4o4
+.ra4re.
+.ra6sa.
+.ra7ti
+.ra6va.
+.ra4ve.
+.re4al
+.re6da.
+.re4de.
+.ree6l
+.rege4l
+.re4gi.
+.rei2
+.rei7de
+.rei5er.
+.re4ins
+.re6ka.
+.re4ke.
+.re8klar
+.re8kle
+.re4kli
+.re6kn
+.re8le.
+.re4ma.
+.re4na.
+.re4ne.
+.ren6sk
+.ren4t
+.rep5s
+.res9s
+.re5s6tan
+.rett7s8kri
+.re4ve.
+.re4ves
+.rev9n
+.ri2d
+.ri8e
+.rie5ne
+.ri6ka.
+.ri6ma
+.ri4me.
+.ri4pa.
+.ri4pe.
+.ri4p5o
+.ri4sa.
+.ri4se.
+.ris5ko
+.ri4s3ø
+.ri4ta.
+.ri6te.
+.ri6va.
+.ri4ve.
+.ro4an
+.ro4de.
+.ro8di
+.ro4e
+.ro8ke.
+.ro4ma.
+.ro4mi
+.ro6pa
+.ro9par
+.ro3pe
+.ro4pe.
+.ro4sa
+.ro9sar
+.ro4se.
+.ro4sed
+.ro4ta.
+.ro4te.
+.ro4tek4
+.ro8va
+.ro3ve
+.ro8ve.
+.ru8ga.
+.ru4ge.
+.rug9le
+.ru8ka
+.ru4na.
+.ru4ne.
+.runes6
+.run7g
+.ru4se.
+.ru4sk
+.ru8va.
+.ru4ve.
+.ry2e
+.rye7ne
+.ry6ke.
+.rød2
+.rød7s4
+.rø8le.
+.rø4re.
+.rø1v
+.rø8va.
+.rø4ve.
+.røy7e
+.rå8da.
+.rå4de.
+.rå4en
+.rå8er.
+.råg8
+.rå6ka.
+.rå4ke.
+.rå3k4l
+.rå6na.
+.rå8sa.
+.s6
+.sa4ge.
+.sag6n
+.sa4la.
+.sa4le.
+.sa4me.
+.sa4mer
+.san6d7
+.san7d8e
+.san7d8i
+.san8s7ku
+.sau6e
+.sch6
+.se2b
+.se2e
+.se4i
+.se4k5l
+.sek4s5o6g5
+.sel4v5
+.sel4v5i6
+.se6na.
+.se4ne.
+.sen7s
+.se4ra.
+.ser7vel
+.se4te.
+.sha9ke.
+.si2d
+.si6er
+.si6ga.
+.si4ge.
+.sik5k6e
+.si8la.
+.si4le.
+.si4ne.
+.sinn6s5
+.si4ra.
+.si5str
+.si4va
+.si4ve.
+.sje4i
+.sju5o6g5
+.sk4
+.ska7ka
+.ska5ke
+.skat4
+.skei5d
+.ski6n
+.skinns6
+.sko7de.
+.skog5u
+.skritt9s8
+.skudd5s6
+.skuddså7
+.sku6m5
+.sky6f7la
+.skå5ra
+.slim5
+.slotts5
+.slu9ka
+.slu5ke.
+.slø5se
+.sma4s
+.smas5k
+.smo9g
+.små3
+.små7k6
+.små9l
+.små5t4
+.småt5t
+.sn4
+.sne3
+.snitt5s6
+.snø3k
+.soa8
+.so8de
+.somma4
+.son6a
+.sop4pa
+.sor4t5
+.so4ta.
+.s8p6
+.spa5ra
+.spe6e
+.spi9la
+.spri5s6
+.st6
+.sta9ka
+.sta5li
+.stat4s
+.sted4s
+.ste4i
+.stein7a8
+.stein7s8
+.stem4m
+.stev9na
+.sti7me
+.sto5ne
+.sto6ra
+.strek5s6
+.stu8a
+.stu9va
+.stål5l6
+.sund5s6
+.su4ri
+.su5te
+.sv8
+.sva5la
+.sva5ra.
+.sva5re
+.svar5s
+.sver8n
+.syd5
+.sy5d6e
+.sy6na.
+.sy4ne.
+.sy5ter
+.sy3ti
+.sy6v5
+.sy6v5o6g5
+.sz6
+.sæ2
+.sær1
+.sær3e4g
+.sø8ka
+.sø4ke.
+.søl6v5
+.sør3a
+.søye5
+.søy6en
+.så5pen
+.så3re
+.t8
+.ta8ke.
+.tak9r
+.tak5sk
+.tak9s8p
+.ta4la.
+.ta4le.
+.ta4les
+.tal4li
+.tam5m
+.tan5de
+.ta4p5r
+.ta4ra.
+.ta4re.
+.ta2s
+.te4e
+.te6i
+.tei9er
+.te8ke.
+.te4ma.
+.te6o
+.te8ne.
+.te4se.
+.te7si
+.te4sta
+.te4str
+.th2
+.ti8a
+.tid5r
+.tid6s3
+.ti4de.
+.ti4e
+.ti4g3r
+.ti4ki
+.ti4l5
+.tili6
+.ti4med
+.ti4na.
+.ti4ne.
+.ti4p5l
+.ti4s
+.to5arm
+.to6en.
+.to4er.
+.to6et.
+.tokk8
+.to6le.
+.to6na.
+.to5o6g5
+.to4ra.
+.to4re.
+.to6reb
+.to3ro
+.torsk6e5
+.tor4s5v
+.to5rye
+.to4str
+.tota9la.
+.to5t8
+.to8te.
+.to6va
+.to4ve.
+.tr6
+.tra7c
+.tre3b
+.tre7p
+.tre5o6g5
+.tre6skja
+.tre3s8ko
+.tre3sp
+.tre5s6t
+.ts2
+.tsj2
+.tu4en.
+.tu6na
+.tu4ne.
+.tu6ra.
+.tu4re.
+.tu8ve.
+.tve6n
+.tver6r5a6
+.två7g
+.ty6da.
+.ty4de.
+.ty8et
+.ty8re.
+.tyr8s9
+.ty5ter
+.ty5ti
+.tæ4re.
+.tøv9d
+.tø6ve.
+.tø9ver
+.tø5vet
+.tå5ker
+.tå4le.
+.tåp9n
+.tå5ren
+.tå7ret
+.u5a6
+.u1b2
+.u6berg
+.u3d2
+.u7de
+.u3e6
+.u4er.
+.u6era
+.u4ere
+.uf4f
+.uf8sa
+.u4ga
+.u5gi
+.ug6la.
+.ug8n
+.u1i
+.ui6m
+.u1k6
+.u4ka.
+.u6ke
+.u7kn
+.u3le
+.u4le.
+.ule8k
+.ulen4d
+.u6lende
+.u8lene
+.u6let
+.u4lin
+.ul6ka
+.ul4ke.
+.ul4la.
+.ul8le.
+.ul8ma.
+.ul4me.
+.ul4ne.
+.ul5t
+.ul6te
+.u1lu
+.ul4v5i
+.u1ly
+.u3lå
+.u5ma
+.umu7
+.u2n
+.unde6ri
+.und5r
+.une8
+.u5nek
+.u9net
+.un4ge.
+.un2n
+.unn3s
+.u3no
+.un4se.
+.un4t
+.u5nu
+.u1o
+.u1p
+.u4pi
+.up2l
+.u2ra
+.u5raf
+.ur6an
+.u6rane
+.ur4d
+.ure4n
+.u4ret.
+.u6rets
+.u2r2i
+.ur4ke
+.ur6na
+.ur4ne.
+.u1ro
+.ur1s
+.ur8ta
+.ur4te.
+.urte5m8
+.ur6tet
+.u5rut
+.u3ry
+.u5rå
+.u1s2
+.u4sa.
+.u4sas
+.u5se
+.u3ska
+.u5sn
+.u7sp
+.us3se
+.us6t4
+.u7stek
+.u5stel
+.usy5r
+.u2t
+.uta4g
+.ut5age
+.u3tak
+.u4ten.
+.ut5esk
+.ut6e7sko
+.u4ti.
+.ut3kan6t5
+.ut4ne.
+.u5tol
+.ut3o6v
+.ut6rer
+.ut6rov
+.u3trø
+.ut6se.
+.ut4si.
+.ut3t4
+.u3tu
+.v6
+.va4da.
+.va4de.
+.vai4
+.va4ke.
+.va6les
+.valg5s
+.va4ne.
+.van4n5
+.vann5s4
+.va6reta
+.vari4e
+.var5sk
+.ve8en.
+.ve4ga.
+.ve6ge.
+.ve4g3i
+.veg3s4
+.vei3g4
+.vei3s
+.vei4ta
+.ve4l3
+.ve5l4ar
+.ve6l5art
+.vel5d
+.ve4l3e
+.vel5l
+.ve5l4os
+.ve4l5ov
+.ve4ly
+.ve8læ
+.ve4ne.
+.ve4net
+.ve4ra.
+.ve4ras
+.ve6re.
+.vermo9
+.vers4t
+.ver5ste
+.ve4sl
+.ve4st
+.vete5
+.ve8te.
+.ve4ve.
+.vi4da.
+.vide4
+.vi6de.
+.vi4d5å4
+.vi2e
+.vi4ka.
+.vil5l6a5l
+.vil5l6a5t
+.vi6ma.
+.vi8me.
+.ving7s
+.vin5n
+.vi4sa.
+.vi4se.
+.vi6seri
+.vi4ta.
+.vi4te.
+.vi5tr
+.vok4s3
+.vok5s6e
+.vo6r
+.vo6ta.
+.vy4
+.vye5ne
+.væ4ra
+.væ4re.
+.vå4d
+.vå4r3
+.vårs6
+.wa4r
+.wi6e
+.xe2
+.y6
+.ye4
+.yn8da.
+.yn4de.
+.yn6ge.
+.yn8ka.
+.yn6ke.
+.yn4kv
+.yns2
+.yp8pa.
+.yp4pe.
+.yr8ja.
+.yr8je.
+.yr8ka
+.yr4ke.
+.yrkes5
+.yr6t
+.ys4
+.ysterie8
+.yt9ren
+.yt5t
+.yt6te.
+.yv6
+.z4
+.zj8
+.æ8
+.ære4s5a
+.ære4st
+.æt4te.
+.ø6
+.øg8la
+.øg4le.
+.øi5
+.øi6e
+.øko5
+.øk6ta
+.øk4te.
+.øl3ed
+.øl3s6
+.øl3v6
+.øm4me.
+.øres8t
+.ør4je
+.ør5k
+.ør8na.
+.ør4ne.
+.ør6ski
+.ør9sm
+.ør3st
+.ør8ta
+.ørt9an
+.ør8te.
+.øs2
+.øs4t
+.øv4d
+.øve4r5
+.øve4r6s
+.øv4re.
+.øy6de.
+.øy2e
+.øyele8ge.
+.øy5ene
+.øy4n
+.øy6na
+.øy6ra
+.øy4re
+.øy8rer
+.øy4str
+.å2
+.å6e
+.å6f
+.å6g
+.å6k4
+.å8l
+.ål6t
+.ål8ut.
+.å8m
+.ån8da.
+.ån4de.
+.ånd6s5
+.åp6na
+.års3k
+.å6se
+.ås3k
+.ås7l
+.ås3m
+.å3ste
+.ås5v
+.å4t
+.åt4te.
+.åtte5o6g5
+.å6v
+a1ad
+4aaf
+a3aft
+aa4g
+a1aks
+aak5v
+aa3la
+aa2m
+a1a2n
+a6an.
+aans9t
+a7antr
+a1ap
+aa4ri6
+aarie9ne
+aar5n
+aa2s
+3aase
+aa5t6h
+a1av
+a6bab
+ab7av
+ab9b8l
+ab4but
+abe4lei
+abel5t4
+abe9na.
+abes9ka
+4abev
+a5bh
+abie6
+abi9er
+abi9la
+a4bist
+ab1l
+ab9lara
+ab4lok
+abl7u
+a5bo9a
+abo3b
+abo3e
+a3boer
+abo3kl
+a3bord
+5aborte
+ab1r
+ab8re
+ab2sl
+abu5e
+a4buel
+a4buf
+a6busk
+a4bute
+a4by.
+a4byb
+a4byk
+aby3r
+8ac
+aca5
+a6ca.
+ache3a
+ack3
+a1co
+6ada
+a5dal
+ad5ant
+a4dart
+ad9da
+a2deb
+ade5i6s
+a2dek
+a4del
+a4d5elv
+a5dend
+a3dene
+a2deo
+a2dep
+a5der.
+aderle7
+a2des
+a5de4ser
+a3desl
+a3det.
+a3dets
+3adfer
+1adg
+ad8ge
+adi4ene
+ad1j
+1adju
+2adl
+1adm
+ad5n
+ado7a
+a4dob
+ad7opp
+4ador
+a7dora
+ad5raf
+ad7ran
+a2dre
+ad7rel
+ad5rep
+ad3ret
+ad3rid
+ad1ro
+a7drø
+ad4s5amt
+ad4si
+adsle6ge.
+ad5s4let
+ads5te
+ad5s6tek
+ad3str
+ad5un
+1adv
+adva5re
+2adve
+a4dy.
+a4d5øy
+2a1e2
+4aea
+a4ed
+ae3de
+aed7r
+aek5t
+a4el.
+ae5la
+ae3li
+ael5o
+aen5t
+a3ep
+aes8ke.
+aes4t
+6afa
+6afc
+a4fe.
+afei5
+af4fan
+af4fei
+affe3s
+af7fi.
+affi3d
+af5f4u
+af4i
+afia1
+afi5an
+a2fib
+a6f5inn
+afi7re
+a4fiti
+a5fjo
+af9la.
+af9lar
+af3le
+af5li
+a4frik
+6afo
+afo7ra.
+afo7r8e
+afore5ne
+afra5s
+1afri
+afs1l
+aft5ei
+af4t5e4l
+af6t5o
+aft1s4
+af5yr
+afø4r
+afø5ri
+4aga
+a2gaa
+a5gae
+a4ganf
+agang7s8
+a4gart
+a5gas.
+aga6ve.
+ag5de
+a7gelen
+a2gem
+3a4gent
+age4r3a
+age6rek
+age5risk
+a7gers
+a5geru
+age5s2
+a4geta
+a4gé
+ag5gar
+ag4gas
+ag5ge
+agg1s2
+agg7u
+ag6gut
+a4gi.
+ag5id
+agi6s
+ag1la
+ag4lem
+ag6lesa
+ag5lå
+agmo8e
+agn5om
+4ago
+ago5d8
+ag1or
+a5gos
+a3got
+ag5ov
+ag7ras
+ag1re
+ag1ri
+4a3gru
+ag1rå
+ag4samb
+ags4ang
+ag3s4ei
+ag4sel
+ag3sem
+ag5s6ing
+ag6sju
+ag4ska
+ags4kul
+ag2sl
+agsmå6la
+ags3tr
+ags3t2v
+ag2sy
+a6gu.
+agu3ay
+agå8va
+agå8ve.
+a1h
+a5hi
+ah4n5
+ah4v
+ai1a4
+ai3e2
+ai3er.
+ai4is
+ai5ke.
+ai5ko
+ai9kv
+ai5ne
+a3ing
+a1inn
+ai4n5o4
+ai1ro
+ais4e
+ai4s3k
+aisk2h
+ai8sm
+ais6om
+ais5s
+ai5s4v
+ai5ve
+ai5ø
+a1j
+aja9d
+a7je
+a8je.
+ajes7
+a4jé
+a4ji
+a6jl
+6ak.
+a1ka
+4aka.
+1a2kad
+6akaf
+ak3aks
+6akan
+aka4o5
+4akar
+ak6arb
+aka4t5r
+ak4au
+2akd
+2ake
+a9kec
+a2keh
+a3kei5
+a6kek
+akel8e
+akelei9er
+ake5l4i
+ake4rek
+a4kerø
+ake5sm
+akes6p
+a8kete
+akhe6n
+4a1ki
+a6kid
+a6kik
+ak7ind
+akis1
+2a1kj
+akk6and
+ak5ke.
+ak3ken
+akk5erst
+ak4kes
+akki4
+ak5kim
+ak4k5is
+ak6kj
+ak1ko
+akk3ol
+ak6k5ri
+ak1ku
+ak4kul
+ak4k5v
+2ak1l
+ak3lev
+ak6lik
+ak6lus
+6akn
+ak5ne
+a5kno
+2a1ko
+ak5om.
+a5kon
+a7kos
+ak1o2v
+ak4pe6
+akra8sa
+ak5reg
+akregi4
+ak3res
+ak3ro.
+ak3roe
+ak1ru
+ak4s5and
+ak4sek
+akse3l4o
+ak4s5elv
+ak4ses
+ak7s6id
+3aksje
+ak2s1k
+ak7sku
+ak6sl
+4akso
+4aksr
+aks5ti
+ak5stol
+aks4tr
+akst7ren
+4aksu
+ak4tab
+ak4tai
+ak4tak
+akta6le.
+akt5all
+ak6tam
+ak6tans
+ak4tap
+ak4tas
+ak4tav
+ak4teg
+ak4tek
+ak5teme
+4akth
+7aktig
+ak5tit
+aktle6ge.
+ak2tr
+ak6tre
+akt3rå
+akt5s4la
+5aktue
+akut2
+2akv
+ak3val
+ak5øl
+a5kå
+8ala.
+al7adr
+ala4g
+ala9ga
+a5lagm
+alag8ra
+a5lah
+a1lai
+al3all
+al3a4me
+al3ana
+a3land
+a5lande.
+a5lane
+alan5gr
+al3anl
+al3anv
+ala4o
+ala5pr
+a5lar.
+a3lara
+a5laren
+al3ark
+a7larl
+3a4larm
+al5arr
+a5lars
+al3art
+a7larv
+al3a4si
+2alat
+ala7tr
+4alau
+al5auk
+al1av
+ala4va
+al4ba.
+albo4g
+albu7er.
+5album
+al3de
+al7der
+4aldo
+ald3re
+2ale
+a2lef
+a2leg
+a9leg.
+aleie6n
+a9l8eik
+a5leke
+a4leks
+a4leli
+a2lem
+al5e4mu
+al8en.
+a4l3enh
+a4l5en5tr
+ale4pos
+a7lept
+a4lered
+alere6de.
+a4le5ro
+a4leru
+ale1s2
+ale7se
+a4lesk
+ale6s5kr
+a4lesl
+a6lesu
+a4leta
+a4le3te
+a2leu
+ale5v
+a4leva
+a4levi
+3alfab
+2alg.
+al3geb
+al2gu
+al4går
+al3ill
+a2lim
+a9lin.
+ali5na.
+a4l3ind
+a4l3ins
+al3int
+al9ja.
+al3je.
+alj5end
+al3jer
+al1jo
+al4jor
+al2j1u
+al1jø
+alj5ø6v
+al9kera
+alk7s6
+alla4ga
+alla6ge.
+al4lap
+all5art
+al5lea
+alle6ge.
+al4lek
+al5len.
+all5erst
+alle3s4
+al4lest
+al5let
+3allia
+al4lid
+5alli5e
+alli9ne
+al6list.
+al4lo3m
+all4sen
+all4sti
+al6lul
+al6løs.
+al4løse
+al8løst
+al6lå
+al6mek
+al4met
+4aln
+a5lo.
+al1o4b
+a5loi
+al1om
+a1lon
+al3ope
+al7ord
+alori5
+alo6rit
+al3ove
+alow7
+alp2
+al3ps
+2als
+al7sed
+al9skap
+al7skare
+als1l
+als5lø
+al2sn
+al6spu
+als4te
+als6ter
+6alsu
+alt6ak
+alta8le.
+al3ted
+al7tema
+5alterna
+alte4t
+al4t5eta
+al4t5ete
+al4t3op
+a4l5u4k
+alul8la
+al5und
+alu8re.
+al5va.
+alv5aks
+alvak8se.
+al4ved
+al5v6er
+al8v9er8m
+alve5s
+al9ves.
+alvi8se
+al1vo
+alv3s
+6a1ly
+a2l5y4te
+alø5se
+al3øv
+a1lå
+al7å6t
+a4mah
+ama5is
+a2mak
+a5maki
+am3aks
+a2mal
+am5ald
+a3man
+a3mar.
+a5mara
+a7mas.
+amaso7
+3a4matø
+am4bar
+3ambas
+am4bat
+am5be
+a2mei
+am3eie
+a3meis
+a2mek
+am3eks
+amen8de.
+amen4s3
+amen6t7arv
+ame4ram
+a4meret
+3a4meri
+4amerin
+ame5u
+amhu7
+2ami
+ami7na
+ami7ne
+amisk3
+amis4ku
+am4lese
+am6lest
+am4mad
+6amn.
+am4ned
+a2mo
+amo5e
+am1op
+am1or
+amo6ve
+am4pap
+am4pare
+amp5ei
+am8peria
+am6perie
+ampes6
+amp7inn
+am2p3l
+am5p4let
+am4p4re
+am4pun
+am2på
+amru4
+am5rå
+am1s
+am7s6ku
+ams4l
+amst6
+am4s3tr
+ams9ut
+ams2v
+am4s5ve
+am2sø
+am3ti
+amti5da
+5amtm
+am7tv
+am6ul
+am5yr
+am5øy
+6ana.
+anak8te.
+ana3la
+anal4f
+3analy
+8anan
+a3nane
+a5nang
+anant8
+4anar
+a6narb
+an5art
+ana3to
+6an7au
+anaus7
+an9av.
+3anbef
+4and.
+an4da5m6
+anda5ta
+an4dek
+an5den
+anderle7
+an9det
+6ando
+an4dos
+4ands
+and4sel
+and8send
+and7slet
+and5s6tre
+a2ned
+an5egg
+a4n5elv
+a2nem
+2anen
+2aner
+ane3ru
+a5nes.
+a4nest
+ane5sv
+an5e6tika
+a5netike
+an5e6tikk
+an5e4tis
+a2nev
+3anfal
+anfø5re.
+ang4e
+an4ged
+an4g5enh
+ang5erme
+an8geste
+an4gi.
+5angiv
+ang5of
+an5gos
+an4g9ra
+an4gre.
+an6gres
+an4gret
+an4g3ry
+ang4sm
+angs6tro
+angs8t9rå
+angst5y
+ang5sva
+ang6søy
+ang4t5re
+ang5t6ve
+an4gun
+an4gå.
+ania7
+a6nib
+a4nisj
+4aniv
+an4kana
+4anki
+4ankj
+an4kob
+an4kop
+an4kos
+an2k1r
+ankra8na.
+ank3re
+ank3ut
+8an2kv
+an4kø
+an6k5å6
+2anla
+anland6
+anlø9pa
+ann5ans
+an6neme
+an5nen
+an5ner
+an5nid
+an4ninn
+an4nom
+5annon
+an4nov
+ann4sei
+ann4sid
+ann6s7kå
+ann6sl
+ann3st
+ann5sta
+ann4s3u
+an4ny
+an2nø
+a3no.
+a9noa.
+ano6deb
+2anog
+a7norm
+a6not
+a2no4v
+ano5va
+an3ove
+anri7ke
+ans5aft
+ansa7ka
+4ansan
+3ansat
+an4sek
+an4sent
+anseri8e9ne
+an4ses
+3ansik
+ans5ind
+ans5ins
+an4ski
+an3skj
+ans4k3l
+ans6kun
+an5skø
+an6slø
+an4sn
+ans5or
+an4s3pi
+ansport7s6
+an1st6
+6anstar
+ans4te4
+2ansu
+an9s6und
+5ansunda
+1an1sv
+4ansve
+6ansy
+an4så
+anta8la
+an5t6and
+an4tans
+an3ted
+ant5emi
+5antenn
+an4tesl
+anti7kl
+an4tim
+an5toi
+ant5ord
+ant5rab
+ant7rom
+ant5ryg
+ant5s6
+an4tul
+antus4t
+2anu
+anus7a
+an5ut
+3anven
+6anvin
+6any
+a4nya
+a2n1æ2
+anær8
+2anø
+a2nøk
+an7å
+a1o
+ao9a
+aog9
+a2oi
+ao6k6
+aon8de.
+ao2p
+ao4r
+a5pea
+a7pé
+a1pi
+a2pia
+ap1id
+a6pik
+a6pins
+a2pio
+api6r5
+api7r6e
+api7se
+ap1j
+a1pla
+a5p6las
+ap3li
+ap9lo
+ap2ly
+4apol
+a4pon
+a4poo
+apo3p
+apo5s4ti
+a2pot
+3ap3par
+4appar.
+6appare
+app7esk
+ap5plas
+ap4ple
+ap5pli
+ap6pri
+ap3ra
+ap5ren
+ap5ret
+ap3rin
+ap2s1
+apsa4
+ap3sel
+apse4s
+ap8s9l
+a3psy
+ap4s5ø
+8apu
+a6p5ut
+a1py
+ap7ø
+a3p8øls
+a5på.
+a1ra
+ara9bi
+ar5aks
+arak5t
+ar3alt
+a4rami
+2aran
+a4ranor
+a4rans
+a4ranv
+2arar
+a4r5ass
+ara5te.
+ar5aug
+ar7auk
+arau9ken
+ar7avh
+1arb
+2arba
+arba8ne.
+6arbeh
+4arben
+6arbet
+2arbi
+4arbj
+6arbl
+2arbo
+arbo8da
+2arbr
+2arbu
+2arby
+2arbø
+4arbå
+ar7deb
+ar6deli
+ardfø5re
+ard3re
+ard5sta
+a1re
+1a2rea
+4arear
+a4reb
+areba4r
+a2red
+a2ref
+a2rei
+are3in
+a2rek
+a6r5ekt
+a4rela
+ar7elek
+a4r6eli
+ar7emn
+a5remo.
+3arena
+a6r5eng
+a4reni
+aren5tes
+a2reo
+a2rep
+a6rerel
+a4r5erfa
+a6rerk
+a4rero
+a6rerø
+a5res.
+ares8ka
+ar4et
+a7reta.
+a4rev
+ar7e6va
+ar3evn
+arev6ne.
+8a1ré
+6arf
+ar7g6h
+ar5g6i
+6argj
+arg4l
+ar7go
+arg5stj
+2a1ri
+aria7ne
+a3rib
+ariba9
+ar5idr
+a4rim
+ar3inn
+ar3ins
+arins9k
+ar3int
+ari3se
+arise4a
+a4risto
+a2riv
+ar4kau
+ar3ke
+ar4ke5s
+ar5kha
+3arkit
+3arkiv
+ar4kle
+ar4k5løf
+ar6kod
+ark6ste
+ark4str
+ark7veg
+ar4køy
+arla4ga
+ar4map
+5armbå
+ar4medi
+arme7t
+ar6metr
+ar4minf
+armle6ne.
+armå6la
+2ar2n
+ar4nad
+ar4nal
+arneva7la
+ar3ni
+ar3no
+ar3nu
+ar3nå
+a1ro.
+aro8de.
+a5rok
+a1ron
+ar1op
+aro6pa
+a4r1o4r
+a1ros
+ar7ost
+a1rot
+ar3ove
+ar6ped
+ar9po
+arp5ret
+1arra
+ar5ree
+ar7resk
+arri8e7
+arrå6da
+2ars
+arsa6ka
+ars5ans
+ar3sel
+ar6s5ers
+ar4sin
+ars5kam
+ar5skar
+ars5kes
+ars7kre
+ar4spr
+ars6tr
+ars4vei
+ars7æ
+arta4la
+arta6le.
+ar3te
+ar7tele
+8artets
+art4ha.
+art4has
+ar4tika
+6ar4tim
+4artn
+4arto
+ar4top
+6artr
+art9ra
+ar6trin
+art6s5t
+arts5ø
+6artu
+8arty
+ar4tyv
+ar1ul
+ar1un
+ar5u6r
+a1rus
+ar5utb
+ar5utn
+arve3s
+ar6vete
+arvi8sa
+arvi8se.
+a1ry
+ar7æ6
+arø8ve.
+ar1øy
+a1rå
+arå8de.
+ar7åp
+a6r5åt
+6as.
+4a1sa
+asab4
+asak4
+a4salo
+as6an
+as7aug
+asbe2
+a1sc
+a2se.
+asea4
+a2sed
+a2seg
+a2sek
+as4el
+ase5le
+a2sem
+a6senet
+a4senk
+a7seol
+a2se5s
+a6sest
+a4sete
+a2se3u
+as2h
+as5hu
+a4sib
+a2sip
+a2sir
+a7sis.
+asis5t
+a2siv
+as4ja
+a6sjett
+as5jor
+as3kar
+ask6et
+as5keti
+ask2i
+as5kis
+a5skj
+as5ko.
+as5koe
+a4s5kopi
+as3kor
+as3kot
+a1skr
+as7kra
+as3kul
+a5s6kula
+as6kule
+ask9u8t
+as4kv
+ask5øy
+as1l
+a5s4lag
+asla8ga
+as4lev
+as4lit
+a1so
+a4so.
+a2s5om
+as5ov
+as4pan
+as3pe
+as7pis
+as5pl
+as9sa.
+as4sab
+as4sal
+ass5ald
+ass5alt
+as4sam
+as5se.
+as4sed
+as4sek
+asseri7e6
+as4serv
+as4ses
+as6sifr
+as5sing
+assi3s
+as4sit
+as2sj
+as6s1k
+assku6le.
+as2s3n
+as5so.
+asso9a
+as7sos.
+as6s1p
+as2s3t
+as4stan
+as4str
+ass5tru
+as2s1v
+as4sys
+as4søk
+as2s5å
+as1ta
+as6tab
+a6stande
+a4statu
+as5te.
+as3ted
+as4teg
+as4tek
+as4t5enh
+a1stj
+a9stof
+a5stok
+ast5ov
+ast5ren
+as4tro
+as9tua
+astu8ve.
+ast5ø4v
+a1su
+asu3n
+asu9sa
+as1va
+a6sym
+asyn7d
+as7øye
+as5å
+4at.
+4ata1
+a5taene
+at6af
+ata8ka.
+ata8la.
+a4tang
+ata9rar
+a6t7arv
+atas4
+a5tas.
+atat8
+a2tau
+at5avh
+atch5
+a2tea
+a2tec
+at7edd
+a2tee
+a4tei
+at5eid
+at3eig
+ate3in
+a4teka
+ate5k8e
+ateke7ta
+a6t5ekte
+ate7le
+at3emb
+4aten
+a5tene.
+a4teni
+a4tenu
+a2teo
+4ater
+a5ter.
+a6terat
+a8terek
+a4teril
+a2tes
+a4t3ett
+at6e5u
+a4té
+3atfer
+at4ha.
+at8has
+4ati
+atik6ka
+atili5
+ati5nea
+ati4rep
+ati8sta
+at3jo
+5atlant
+atl9øy
+3atmos
+at4nel
+ato5a
+ato5gr
+at1oi
+a2tom
+a6t5oppr
+a1tor
+a5tose
+a3to1v
+a1tra
+at5reg
+at3ren
+at3rer
+a4trif
+at3rin
+at5rot
+a9tru
+at5røs
+at5røy
+2ats
+at3ser
+at7sje
+at7s6kat
+at7skj
+ats6kul
+at2s3ø
+4att.
+at6tat
+4at5te.
+at5tens
+attfø7re
+at4tid
+atti4s
+att5ise
+at3tit
+att1o
+att7o6p
+atto6v
+at1tr
+at4traf
+at4t3re
+at6trin
+att3s6k
+att5s8l
+att3sp
+att3sv
+at6tys
+at2t3ø2
+a1tu
+atu5e4
+a2tut
+at5v
+atvi5er.
+a3t3w
+a1ty
+atyr8ke.
+a5t6yv
+a1tø
+atør3s
+atø9se
+a4t5øy
+a3tå.
+a7tåa
+a1tåe
+at5år
+at5å4se
+at7åt8
+4au.
+8a8ua
+au9ar.
+4au5b
+auba6ne.
+au3c
+au5da.
+au9det
+au4di.
+4a6ue
+au7en
+au7er
+aue5re
+au3est
+au6e5ta
+au5e6te.
+au4gal
+au4gas
+au4gel
+augele8ge.
+5aug2n
+3augu
+au5i
+au5keli
+au5ket
+auk5la
+1auk7s6
+au5kve
+au6las
+au4lat
+aul5l
+aul8la
+au5lu
+au9men
+au6mo
+aum5s6k
+aum7s4t
+a5und
+au5rae
+aure5s
+au5ret
+au5ri
+aur5s6
+au1ru
+auru4e
+au1sa
+aus9kj
+au6skr
+au1so
+aus5s
+au6s8tas
+aus8tett
+austi6s
+aus6t7ise
+aus6ton
+au5str
+au6stri
+au1su
+au4sun
+au2s5ø4
+aut6a
+au3ta.
+au7tar
+au5te
+1auto
+auto5v
+au3t4re
+au4ty
+2aux
+a1va
+av5ab
+a5vae
+ava7g
+6aval
+av3alv
+a4v3and
+av3ang
+a4v5anl
+3a4van5s
+a9var.
+av3art
+avar6ta.
+4avas
+5avbi
+1avd
+3avdel
+2a1ve
+a2ve3d2
+a5vede.
+a7veil
+ave3in
+a2vek
+a4vela
+a4vele
+a5veleg
+avens4
+a5ver.
+ave7ras
+aver5d
+a6verei
+a2ves
+a2vev
+1avfa
+1avg
+avi4ar
+4a5vig
+a1vik
+avi9ke
+a1vin
+a4v5int
+2avir
+5avisa
+avi5sa.
+3a6vise
+av5ising
+avis3t
+a5vit
+avlu9t
+avlø5se
+6avn
+av7na
+av4nes
+a1vo
+a4vok
+avo3r
+avo4v
+av1r
+av4res
+av5ri
+av1sa
+av5seg
+avs2i
+avsko7g
+3avsni
+av1s2p
+avspe9g4
+avs4te
+av5su
+av1s2v
+1avt
+avta9ka
+2avu
+1avvi
+av3øl
+4a1vå
+a6v7å6l
+a1wa
+awat4
+a5we
+awe9ne
+a1wi
+ay2a
+ay7ane.
+ay5ar
+ay9s8t
+a5y4t
+a5zu
+azz3o
+a1ø
+a7å6
+1b4a
+ba3a
+baby5
+ba4bys
+ba5cl
+ba2d
+ba4da.
+ba7dan
+b5add
+ba8de.
+ba4deb
+ba5den.
+ba7dens
+ba3di
+bad1s
+4baf
+ba2k
+ba5kan7
+ba3kar
+bakars9
+ba3ken
+ba4k5end
+baken6de.
+ba3ker
+bake3s
+ba9ket.
+bak9ett
+ba3ki
+ba8ki.
+bak6kers
+bak6ko
+bak5kr
+4bakr
+bak4re
+ba5kri
+bak3ro
+bak3sm
+bak5sp
+bak5s6ti
+bak5str
+bak7t6
+bak1v
+ba3la
+bal7ak
+ba4les
+ba4li.
+bal3j
+bal4lag
+bal4lan
+bal4led
+bal4leg
+bal4lei
+bal4lev
+bal4lig
+bal6lov
+ball5s6
+bal6læ
+ba1lo
+bal5t
+ba1lu
+ban4a
+ba4na.
+ba5nan
+ba5nar
+ban9da
+ba4nel
+ba4nes
+ban6kap
+ban4kor
+ban2k3u
+bantu5
+ba3re
+baret5t
+ba3ri
+bari6e7n
+bark5s
+bar5skr
+bar5tr
+ba5ru
+ba5sen
+ba4seru
+ba4set
+ba3si
+ba2s1k
+bas6sak
+bas4san
+bassi4
+bassis5
+bas4so
+bas4st
+bass6tr
+ba2st
+ba7s8u
+ba1ta
+2ba1tr
+bat6ti
+bau9la
+6bav
+ba5z
+2b1b
+b3ba
+b6bak
+b4b5arb
+b6base
+b3be.
+b4beb
+b4beda
+b2bef
+b4beg
+b6beh
+b2bei
+bb3eie
+bb5eig
+b2bek
+b6belo
+bbel6t3
+bbelte4
+b4bem
+b9bene.
+b2beo
+b3ber
+b4b5erf
+b4bes6
+b7beska
+b6beta
+b6beten
+b4beti
+b6beto
+b6betr
+b2bev
+b8b1h
+b3bi
+bbi9e8
+b4b5inn
+b2b1l
+bb7len
+bb5op
+bb5rek
+bbu9ra
+bb5ut.
+bb5ute
+b2by5
+bby3e
+bby1k
+b4bø
+b6bå
+2bc
+2b1d
+b2dek
+b7den
+b4dep
+1be
+be2au
+be4bo.
+bebo5er.
+bebo9k
+be4da.
+be9dar
+be3der
+bedi9e8
+be4dre
+bed5red
+bed2s1
+bedy9ra
+be1då3
+2bee
+be5ed
+be6ef
+b4ef
+befa5re
+be3g
+bega9
+be4ga.
+be4gi.
+be4gn
+be5go
+be4g5re.
+be4g5rene.
+be4gå.
+be6ha.
+beha7g
+behers7
+4behu
+behå4r
+be6i
+be5ke
+be2k3i
+bek6kel
+bekke5r
+bek4kes
+bek6l
+4beks
+be4l3ab
+bela9ga
+bel5eie
+bel5eig
+bel5ein
+be4lek
+beli9na
+beli9v
+belle5sa
+bel5let
+bel5læ
+be2l1o
+bel5s4p
+bel7s4t
+bel4tag
+bel4te5s
+bel4t3ø
+bel3u
+bel5v
+belæ5re
+belå7ne
+be4na
+be5nat
+be3ne
+4bened
+be4nest
+ben5gu
+be5ni
+ben5s4i
+ben5skj
+ben5sp
+ben5te
+2bep
+b4er
+4berai
+be7ras
+ber5d
+be4rep
+8berest
+bere5te
+ber4ga
+ber4g5ende
+ber5ges
+berg3j
+berg3l
+berg3o
+ber4g3å
+be5rib
+beri5ke
+be7ris
+ber6kl
+ber5na
+ber5ne
+be1ro
+be4ro.
+bero9a
+berri6
+ber5te
+ber5ti
+be1ru
+beru9sa
+berø5v
+b4e1s2
+5bes.
+be4se.
+be5s4i
+4besik
+6besj
+bes5ke
+bes6k5n
+be3sn
+bes7ne
+4be3so
+beso9v
+be5sp
+bes3s
+bes6s7a6
+bes6sel
+bes7si
+bes7tens
+bes6tes
+be5stes.
+be6så
+3b4et
+5bet.
+be4tab
+be3te
+4betei
+be7tes
+beto5ne
+be6trar
+be6tre.
+be4t3ri
+4betu
+be4ty.
+beva5re
+be6ve.
+bevi5se.
+be9vo
+bev9r
+6beå
+beån9
+7bé
+2b5f
+6bg
+2bh
+bhu1
+1b4i
+bi5ak
+bi6bla
+bi5ce
+bi1d
+bi5dee
+bi8dé
+bid6r
+bidu8
+bi5el
+bi6ele
+bi5erv
+4bifa
+bi5g
+bi3ka
+bik1k
+bik6ki
+bi5k4l
+4bi7kr
+bi6la.
+bi4las
+bi4lau
+bi3let
+bilet5r
+bi4lin
+bil3j
+bil5la
+billa8ga
+bil5leg
+bil5m6
+bil1o
+6bi5m
+bi4nans
+bingo5
+bin4gol
+bi7no
+4b5int
+bio7
+bi3o8m3s4
+4bip
+bi4ri5
+bi7ris.
+bir4ken
+bi1ro
+bis2a
+bi3se
+b5ish
+bis6hi
+bis7ke
+bi5s4la
+8bisn
+bi4sp
+bis4p5i
+bis5se
+bi1st
+bi5s6ta
+bis4til
+bis5tru
+bi3s4v
+bi6ta.
+bi4te.
+bi5tes
+bi8ti.
+bi4tre
+bi6tri
+bjar3
+bjek4t5o
+bjø6r
+2b1k4
+b5kh
+bl2
+1b2lad
+blad3a
+bla6f3
+bla8ga
+blak5r
+bla5me
+blan9da
+b4lank
+blan5ke
+b4lant
+b1lar
+b8larar
+b3lat
+bla4u
+b4lef
+bleie5
+blei5er
+b4lek
+ble4k3a
+ble5kes
+ble4mo
+b3ler
+ble7r6a
+b6lesa
+blesse9ne
+b4lest
+2blet
+bli9ke
+bli5ma
+bli5me
+blings6i
+blis3s
+b5lj
+blja4
+blo6dr
+1blok
+blom5m
+b6lu
+blues3
+blu9sa
+bly7gl
+blæ5re.
+blå5n
+blå3r
+blå7sa
+blå5se.
+2b1m
+6bn
+b3ne.
+b3ner
+b7nes.
+b7ni
+b2o
+boa5s4
+bobba6ne.
+bob5by.
+bob9bye
+bo2bl
+bob7la
+bobs4
+bo3de
+bo6din
+bo6d7r
+bo2dø
+4boef
+1boen
+bo2er
+bo4et.
+2bo3f6
+bo4gel
+bogn7
+bog1s
+2boh
+2boj
+3bok.
+bo2ka
+bo6kel
+bo4k3et
+bok1i
+bok1k
+bo6kop
+bo6k5ri
+5bok1s
+boksi8da
+boks4p
+bo2ku
+bok3ve
+b4ol
+bol5eie
+bo7li
+boli7n
+bo7lo.
+bo5loi
+bo4l5o4r
+bol5s4p
+bolst6
+1bomb
+bom4bel
+bom5m
+bo6mo
+bom1s4
+bo5nap
+bon5ato
+4bonn
+bon5ne
+bons4
+bo5nus
+boo6
+boom1
+bo1p4
+bo1ra
+bo4ra.
+bo6re.
+bo7rel
+bo3ren
+bo3ret
+bo4rete
+bo6ri.
+bo3ro
+bor6t7ef
+bor6tei
+bor4tes
+bor6t7et
+bor4ti
+bort5s6
+b4o1s
+bose8te.
+3boska
+bo2sl
+bos5se
+bo4sto
+1bot
+bo4ta.
+bo4tak
+bo4tal
+bo6te.
+2bo7to
+4bot6r
+4bot4v
+bou3c
+4bo1v
+bow4e
+bo6y
+4bp
+b7pl
+br8
+1b4ra
+bra5ka
+brak5s
+bra5se
+bred5sp
+brei5e
+brei3s
+bret7te
+b6rev
+brevi9er.
+bre4vin
+bri5a
+b4rio
+b2ro
+bro9ar
+bro1s4
+3b4ru
+bru5ke
+bruk4s3
+bru4na
+bru7na.
+bru5nes
+bru5pl
+bru7ren
+bru5sa
+brus4l
+1bry
+bryn4s
+b4rø
+brø5de
+bråe6
+brå9ne
+brå5te.
+6b1s
+bs4e
+b5s6e6a5m4
+b4s5el
+b5s6i
+bsk4
+b4sli
+b2sm
+b2s1of
+bs2t6
+b6st7f
+b7s6v
+bså5
+6b5t
+b7t6s
+1b2u
+bu4ar
+4bub
+bu3da
+bud5d6h
+bu3de
+4bu3em
+bu4en.
+bu9ene
+bu4er.
+bue5s
+bu1i
+bu6is
+6buki
+buk3l
+bu5la
+bu4le.
+bul3le
+bun7de
+bund4s3
+bun8ge.
+bunk3r
+bunnla8ga
+bunn3s
+2bu3o
+bu1p
+bu6ra.
+bu4re.
+4bu3ro
+bu3ru
+bus6e
+bu4se.
+bus4h5e
+busk7ø
+bus6sek
+bus4sel
+bus6sent
+bus6set
+busse6te.
+bus6sj
+bus4sn
+bus4sp
+bus4st
+buss3v
+bu1st
+4bustr
+4busy
+bu1ta
+bu4tal
+bu7tem
+b5utg
+4butst
+bu2tu
+bu1tø
+4buv
+6buø
+2b1v
+4b5w
+1by
+bya2
+by5al
+by9are
+by7dep
+by4en.
+by7ene
+by5ens
+by2er
+by3ers
+by4ge.
+byg3l
+3byi
+by1lo
+4bylø
+by5n
+by1re
+by6re.
+by1s
+5bys.
+4byse
+6bysi
+6bysp
+byst4
+by4ste
+4bysv
+by5tar
+by4te.
+by1tr
+2byv
+bæ5rar
+bæ6rar.
+bæ4re.
+bæ5ren
+bæ5rer.
+bæ5rere
+bæ5res.
+bæ5ret.
+bæ3ri
+bæ4r5is
+bæ3ru
+1b4ø
+bø4e
+bø7ens
+bøf3
+bø4kes
+bø6la.
+bø6le.
+bø2n
+bøne5
+bøn6nes
+bøn7o
+bø6re.
+bør4s5k
+bør4sp
+børs3t
+børs8ta.
+børs3v
+bø5ta
+bø1v
+bøy7ar
+bøye5
+bøy4ene
+bøy4es
+bøy4et
+1b4å
+bå4de
+bå9des
+bå6e
+bå7ene
+bå4la
+bå1re
+bå6reg
+bå4rep
+bå4s3te
+bå6s7ti
+bå6t5j
+bå6to
+båt5r
+1c4a
+cab4
+ca4e
+ca5le
+ca5me
+ca5mo
+ca4pe.
+cap1r
+ca6pris
+ca3ra
+car5n
+ca5ro
+car4te.
+ca2sa3
+ca6set
+cash5
+ca5s4til
+cas5to
+ca1t
+cath5
+ca4to.
+6cb
+4cc
+c1ci
+c2d
+cde6
+cebo9
+ce3d
+ce1i
+1cel
+ce5le
+cel4les
+cel4lev
+3cen.
+ce4ned
+ce4nee
+ce4nem
+ce4ne5s4
+ce5nes.
+ce4net
+ce4nev
+5cens
+cen4ti9m
+cen6to
+ce5o4
+1cer
+cerba6ne.
+ce3re
+ce1ro5
+cer3t
+6ceru
+cest3o
+2ch.
+cha5le
+3cham4
+cha7ne
+cha5t
+2chb
+4chei
+chel5s
+che7te
+chi4li
+4ch3h
+2chm
+4chn
+ch5ne
+chom4
+cho5s6
+2chp
+8chs
+6cht
+ch1v
+ci1c
+3cid
+ci2e
+cie8n
+cie2s5
+cil5l
+ci3ne
+ci5ta
+2c6k
+ck5ar.
+ck5art
+ck1en
+ck3er.
+ck4ere
+ck5e4t3
+ck5et.
+cke8y5
+ck1i
+ck1k
+ck1o2
+ck7r
+ck5s2
+cku6
+ckup3
+ck9ut
+c2l
+clai4r5
+cly4
+c1m
+cmini4
+coa6
+coat5
+co6bid
+1co4c
+2cod
+6cof
+6cog
+co4la.
+co4lab
+co4lak
+co4la5r
+co2m
+co5ma
+com5t
+co6n5os
+con5s
+con7t
+co2o
+co7pa
+2cor
+co3r6a
+co1re
+co4so
+4cost
+co4ver
+c1pr
+cr8
+cras4h
+crack4
+cre2e
+creen7
+cros2
+5cru
+4c4s
+4c1t
+c6ta
+cty5
+1cu
+4cu.
+cu5la
+cu5le
+cu5lu
+cup1l
+cu6po
+cup1r
+cup7s
+cu4på
+2cur
+cures4
+cu6t
+cy2a
+cy6p7
+cys3
+c6z
+cæ5
+1da
+4daa
+4daber
+8dabo
+d5abs
+6d5adel
+d4adg
+dadø4
+dadør5
+4daef
+2daf
+5dagb
+da4gev
+4dagj
+dag7l
+da6go.
+da4g1r
+da6gun
+4dagå
+4dahe
+5dahl
+da1i
+2daka
+4dako
+4dakr
+dak4se.
+4daktig
+da5kv
+7d6al5j
+da1la
+da8la.
+da4las
+6dalau
+dalbu8er
+4d5ald
+da4les
+dal6so
+da1lu
+da4ma.
+da4man
+da3mas
+da4me.
+da3men
+6d5ameri
+dame3s
+dame5t6
+da3mo
+dam7pe
+5dan.
+6danal
+d8ane
+9dani
+2d1anl
+3dann
+dan5neb
+4danno
+7dano
+d4ans.
+dan3sa
+dan4sel
+dan9s8kan
+4dansv
+9dant.
+9danti
+8dany
+2da3o
+2dap
+da3pe
+d3app
+3dar.
+5dara
+2darb
+dard3s4
+4darea
+da4res
+d5arn
+da2ro
+dar5os.
+dar5s6
+dar4ta.
+dar6va.
+dar8ve.
+4dasei
+2dash
+6dasi
+4dasjef
+da4sk
+da9sko
+6dastr
+6dasu
+data5
+4da4tal
+data6le.
+datali8na
+da4tek
+7d6ato
+da3toa
+4da5tr
+dats6j
+d6aud
+daud7s8
+dau5go
+2daut
+2dav
+d5avb
+d1avl
+d3av5s
+4daø
+2d1b2
+dba8le.
+dba4ne.
+dbe8ta.
+dbe6te.
+dbling7
+dbo6en.
+d6byf
+4d1c
+6d1d
+d2dad
+ddag4
+d4dak
+d4d5arm
+dd3eie
+d2dek
+dde4lap
+dde4l5o
+ddel5sv
+d4demi
+dder5s
+d4desu
+ddie8
+d7dom
+d4d1re
+dd5run
+ddsa4
+dd4sala
+dd4skap
+dds5tab
+dd3s4te
+dds5tr
+d2dyb
+ddø2
+ddør3
+d4d5øy
+dd1år
+1de
+2dea
+deak3
+de2al
+de7b
+6debar
+4debas
+3debat
+2debe
+4debl
+2debo
+5debon.
+2debr
+3debut
+2deby
+4debø
+de1c
+5ded.
+2deda
+6d7edd
+7dede.
+4dedek
+4dedel
+4dedia
+2ded4r
+2dedy
+2dee
+5dee.
+de7er
+2def
+d5eff
+d5eft
+2deg
+6d6e5ge
+5degg
+de3gl
+2deh
+5dehavs
+2dei
+dei4d
+dei4ene
+3deig.
+dei8ge.
+5deigen
+dei4g5r
+5deik
+d2e1in
+3deir
+de5is.
+de3ist
+7de7it
+2dej
+8deka
+2deke
+2deki
+2dekj
+5dekk
+dekk3a
+dek4kan
+dek4kel
+de6k6kv
+dek2l
+6dekly
+5dekni
+de5ko
+4dekod
+4dekon
+4dekos
+2de5k6r
+dek6st
+deks7ti
+deks6tr
+5dekt
+2deku
+4dekv
+4dekø
+4dekå
+d4el.
+6delad
+6delage
+de6lans
+4delau
+4deled
+de4lef
+4delei
+del5ei4d
+del5eie
+4de4lek
+de5lele
+4d5elem
+de4lest
+6d3e4lev
+4delid
+6delinj
+del5int
+4delis
+4deliv
+del4lap
+del6lei
+del4lek
+del6lerf
+del6lig
+d4els
+del4s5at
+del3se
+delses7
+del4si
+del4spo
+d4elt
+del6tala
+del3te
+del7tr
+6deluk
+del5ve
+4dely
+4delæ
+2delø
+delø6pa.
+6deløy
+2delå
+2de5ma
+d3emb
+2deme
+demie4
+4demj
+dem8na.
+de4mo.
+de4mog
+5demok
+4demol
+demo5no
+5demos
+dem5pe
+3demr
+5dems
+4demu
+2demø
+2demå
+d2en.
+4dena
+de7nak
+6d5en6den.
+de5neb
+4dened
+6denel
+4denem
+4denet
+4denev
+6d5engen.
+4deni
+4deno
+de4nom
+d2ens
+den4sin
+den4s3t8
+den6t5ant
+4dentif
+4dentit
+dent3o
+den4tr
+dent5s8
+den6t5u6
+den6tå
+4denu
+2denæ
+2denø
+de2ob
+de4og
+2deol
+4deopp
+4de3or
+de4ove
+4depak
+4depap
+2depe
+4depi
+4depl
+6depu
+d2er
+der8am
+de6rant
+de4rare
+de4rark
+5de7rast
+dera5te
+der3av
+der5d
+4derea
+4dered
+de4r5edd
+de4ref
+4dereg
+4derep
+6deresi
+der5est
+8derest.
+6dereste
+4derett
+de4rif
+de4ril
+5derin
+de4rinæ
+der5k
+der5ne
+de5rob
+4derog
+4deros
+de5rose
+dero8se.
+6de7rot
+dero4v
+der5s6n
+der4sp
+der3t
+der5un
+de5rup
+6derus
+der3v
+4derør
+2derå
+de1s
+3d6es.
+2desa
+4desc
+2dese
+de5seg
+des5ers
+4desho
+de8s9hop
+desi4s5t
+2desj
+2desk
+9desk.
+5deske
+4des4le
+2deso
+2desp
+7despl
+6de5s6pr
+d4es2t
+5dest.
+5deste.
+des6tem
+de5sti
+4destj
+4desto
+4destrå
+4destu
+6desty
+de4s3tå
+6desup
+des6v
+2desy
+deså7
+d2et.
+2deta
+deta8ka.
+de3te
+4detea
+6deteg
+6detekk
+4detel
+4deten
+4detep
+detes7
+2deti
+2detj
+4deto
+4det6r
+2detu
+4dety
+4detø
+6detå
+2deu
+d1eur
+5deus
+2dev
+deva8ne.
+devi9er.
+3devik
+d7ev8n
+de5vu
+2dey
+4deø
+2deå
+2d1f
+dfø6rarar
+2d1g4
+d4gel
+d5gi
+dgi6n
+dgjø6re7n6h
+d3go
+2d1h
+dhav4s
+dheim2s5
+dhu9ga
+dhø4r
+1di
+di6ak
+di5alg
+dia5li
+di1ar
+dia3re
+dia1s
+dia7sp
+dias6t
+diats4
+2diav
+2dib
+did5ri
+di7ell
+di5en.
+4di5end
+di1er
+dies4
+3diff
+diffe5
+3diful
+4difø
+di8g9and
+di4gat
+di3ge4s5
+dig7g
+2digj
+dig8la.
+dig6le.
+4digren
+dig5ret
+4digru
+di2gu
+4dih
+4dii
+2dij
+di5ka
+di8ka.
+di5kem
+2dikj
+6dikn
+2diko
+2di1kr
+dik7v
+2dili
+dil4les
+di5ma
+6dimed
+6d5i6mel
+4dimes
+4dimet
+2dimo
+4d5imp
+4dimå
+di5na
+2d1ind
+di7nen
+4d5ingk
+din3gr
+ding8s5en
+ding6s5er
+din8g9å
+dini4
+di4ni.
+4d1inn
+2dino
+2dinv
+4dinø
+3diog
+7diol
+dio3na
+dio4no
+di3ori
+dio5tr
+2dip
+3dipl
+4dired
+4direg
+4d5irs
+5dis.
+di6sc
+di6sed
+dis4i
+disie5ne
+d6isk
+dis6kam
+di4skj
+dis6k7l
+di4sk6o
+dis5ko.
+dis7koe
+dis7ku
+dis5s
+dis1t
+dis7tik
+di5sv
+dis4vi
+2disy
+di4tal
+di7te
+4ditek
+dit4tet
+ditt3r
+di9us.
+di4va.
+4dival
+di7van
+4divek
+div6i
+2divu
+2diøk
+d1ja
+d1je.
+d1jen
+djer5ve
+d7jes.
+dje9ve
+d6jingan
+d6jingar
+d1jo
+dju8la.
+5djup
+6djupar
+d4jø.
+2d5k2
+dka8ra.
+dki6
+d5kj
+dko2r
+dku4le.
+4d1l4
+d3la
+dla4ga
+dland7as
+dla6te.
+dla4v
+d4ledi
+d2lef
+d4lega
+d7legar
+dle3ge
+dlei7er.
+d5leka
+d2lel
+dlem4st
+d4lenet
+d4leru
+dleva8ne.
+d5li
+dli4f
+dli5ke
+d5lo
+dly8se.
+dlø8pa.
+d5lå
+dlå9re
+2d1m
+dme6la.
+dmo4e
+dmors6
+dmo8s
+dmø4re.
+dmå6la.
+8d1n
+dn6a
+dno8de.
+1do
+2doav
+do2b3
+4doba
+do3be
+8do9b8lan
+2dobå
+do4da
+dodø4
+dodør5
+4doeu
+2dof
+d3off
+d5ofr
+dog6med
+dog4me5s
+2dogr
+6do5i
+do3ki
+4dokine
+dok6kan
+4dokn
+do5le
+4doled
+doli8ne.
+4dolinj
+6dolis
+4dolj
+dol5l4
+4domes
+do5mis
+4doml
+do4mo
+dom7p
+2domr
+dom8sa
+dom8s5e6
+dom6s5i
+dom4s3k
+doms3l
+domsla6ga
+dom4so
+do4mu
+do4na.
+don5g
+4donke
+6d7on6kl
+don5st
+don5t4
+2dop
+do4pa.
+do4pe.
+3dopi
+d6o1ra
+do5ran
+2d1ord
+dor4da
+do1re
+dor6gest
+d5orie
+dorm8
+do3ro
+5dorp
+3dorr
+dors6
+dors7ke
+do1ru
+do7rye
+5dos.
+do4se.
+do4set
+do1sk
+6do7s6l
+2doso
+4dosp
+2dost
+do3str
+4dotr
+2dov
+do5va
+do5ven
+do4ver
+dov9n
+4doø
+2d7p8
+5dq
+dr4
+d1ra.
+d5raa
+d9rad.
+d5rade
+1d6rag
+dra5gen
+dra6kes
+3drakt
+1dram
+5d6rang
+3drap.
+5drapa
+3drape
+d3rapp
+d1rar
+d6rarar
+d3rarb
+dra6ret
+d5rarm
+d5rarr
+d9ra8sa
+9dratt
+drau7ma
+2dre.
+5dreass
+2dred
+d5rede.
+d5reder
+dre7d6r
+d5reds
+9dreg.
+9drege.
+d3regj
+3dreie
+drei5en
+drei5er.
+drei7ern
+d5rej
+d6reka
+d7rekk
+3drekt
+4drel
+d7relig
+4drem
+d1ren
+4drer
+d3ret.
+d3retn
+d6retr
+d3rets
+drett4
+dretts5
+5drevet
+3drevn
+4dria
+3d2rif
+2d1rig
+d2rik
+d3rik.
+dri8ka.
+d3rike
+3drikk
+drik7s6
+d9rikt
+5d4ril
+2d1rin
+dring6
+drit7tr
+drit5u
+dritun8ge.
+1d2riv
+3dronn
+dro6pa.
+drop5s
+2d1ror
+3d4ros
+dro8ta.
+2d1rov
+dro5va
+dro3ve
+2dru
+3druk
+d1rul
+d1rum
+d3rup
+6d5rut
+2dryk
+drykk4
+d2rys
+d4røm
+drø6re.
+d7røt
+drø3ve
+d1råd
+drå4de.
+3dråp
+8ds
+d5sa.
+d3sabl
+ds1ad
+ds3a6del
+d1sag
+dsa9ga
+dsak6se.
+d1sal
+dsa8la.
+d4s3alf
+d6sall
+d9same
+ds1a6n
+ds5ane
+ds1a2r
+d2sas
+d4satf
+dsbø6n
+d5se.
+dse4d
+ds1ef
+d2s1ei
+ds7eks
+ds3ela
+dsel4s5a
+dse2m
+ds3emi
+d6s7enda
+dsen8de.
+d4s3eng
+d5sens
+ds3e2p
+d7ser.
+d6serf
+ds5erk
+d4s5e4sk
+ds5e4st
+ds3eta
+dse4te.
+d5setj
+ds1ev
+d2s1i
+d3s2id
+d7sida
+ds5ident
+ds3idr
+d7sil
+ds5ind
+d3sir
+ds3i4s
+dsi4ve
+d4s3jen
+d2sjo
+ds7jor
+ds6ju
+ds5kab
+d4s3kan
+ds3kar
+d4skat
+d1skj
+ds5kjen
+d6s5kjøt
+ds1ko
+d5skot
+ds3kro
+ds1kv
+ds1l
+ds5la.
+ds5lan
+ds6lem
+dsli6k
+ds6lo.
+d9slott.
+ds4luk
+ds3ma
+d6smo
+dsmå6la
+ds3ne
+ds5no
+ds1o2
+d7somst
+d4s5os
+d7sot
+ds1p
+d3spek
+d3spel
+ds2pi
+d9s8py
+ds5s4
+dst4
+ds3tak
+d4s3tal
+d3s8tar
+d5s4tat
+ds6tau
+dss8t
+d8s9te.
+ds9teik
+dste6ma.
+d6s5temp
+ds5teo
+d3s4tig
+d3s4tik
+d5stilli
+ds1tj
+d3stor
+d3stri
+dstu8na
+d5stund
+ds3tv
+dsty8e
+ds3tyv
+ds1u2
+dsure6
+d5s6us
+d6s7usk
+ds1v
+dsva8ne.
+d3s4vet
+dsvi6ka.
+d5syk
+d3syn
+dsy6na
+ds1yt
+d2s1ø
+d6sør
+ds1å6
+4d1t
+d3t4a
+dta6la.
+dta4le.
+dta4s
+d3tem
+dte4ma.
+dt4eng
+dterle7
+dte4se.
+d5t4et
+d3ti
+dt6j
+d7to
+d5t4rag
+d6troc
+d5t4rø
+d6t1s2
+d3t2va
+dtø8
+dt6øk
+dtørs3
+dtå4
+1du
+dub5b
+dub5l
+du1c
+du9ene
+du9ens
+due5s
+4dufo
+3dug
+4dugu
+duit6
+du6ka.
+dul5l
+4duly
+dums2
+du4na.
+dun7de
+4d5uni
+dun5s6
+dun7sta
+7duo
+d3upk
+3dur
+du6ra.
+du6re.
+du6rei
+dur8ta
+du1s
+du5s4a
+du9sem
+du5s2i
+du2sk
+du2sl
+du2sp
+duss4
+dust4
+du2sv
+2d1ut
+du6va.
+du4ve.
+2d1v
+dva6la.
+dva6lel
+dva4ne.
+dve6s
+dve6va
+dve8ve.
+d7vo
+dvo8r
+2d1w
+1dy
+dy9a
+2dyba
+2dyf
+dy5ke.
+4dykl
+4dykø
+2dyl
+dy4na.
+dy4ne.
+4dynk
+dynk6s5
+dy3pes
+dy2p3r
+dy4ra.
+dy5reba
+dyrle8ge.
+dyr5s4
+dy2r5u
+dyr5ø
+7dys.
+dy8sa
+4dyse
+dy6se.
+dys7s
+dyst7r
+dy2t
+d5z
+8dz.
+1dæ
+dærs4
+1dø
+4dø.
+død2s1
+dø3gr
+2døk
+d5økn
+dø4ma
+dø4pe.
+dø4pen
+d2ør
+dør3i
+2døs
+d6øs.
+dø2st3
+døt3
+dø9va
+dø3vel
+dø1vi
+6døvl
+døv8le.
+2døy.
+døya8
+døy8g
+4d9øys
+1dåd
+dåd6s5
+då8na.
+1dåp
+då8ra.
+då5ri
+d3ås.
+då8sa.
+då7sem
+d7åt.
+2ea
+e1a2b
+e1ad
+ea2d1i
+eadli5
+e1af
+ea2gu
+e1a2k
+e4akr
+6eakt
+eak6se.
+e1al.
+e5alle
+eal8le.
+ea4lov
+e3alte
+ea2lø
+ea4m1
+e3aman
+e5amn
+e1an
+e2an.
+ea4ne.
+e6a5net
+e4ani
+ean7n
+ea4nor
+e6ans.
+ean3sl
+e1ap
+ea4pe
+e1ar
+ea2re
+ea5rer
+ea5ret
+ea5r4i
+ear6ka.
+ear8ma.
+ear4ta.
+ea2s1i
+e3asp
+e1ass
+ea7ta
+e5a4tel
+eate6ren
+ea4t3et
+eat8h
+eat6le
+e8ato
+ea5tri
+e1att
+e1au
+eau6ga
+eau6ge.
+eau8ra.
+eau6re
+eau5s
+eau8sa
+eau8se.
+e1av
+eav8la
+eav8le.
+2e1b2
+eba3d
+eba4ne.
+eb3be
+eb4be.
+ebe4d3e6
+ebei7er.
+eben6s5k
+ebers6
+ebesku5
+ebet5s
+eb3h
+e5b6lo
+eblæ5
+ebob3
+ebo4da
+ebo5ers.
+ebo6kr
+ebo6la
+eb5s
+ebu4e5re
+ebu5ern
+ebu6et
+eby4ta
+ebø6n
+2ec
+e4ca
+ec4c
+e1ce
+e5cha
+e3com
+e2dad
+ed5ad.
+e5d4ag
+edag4s5
+e2dar
+ed3ark
+ed3arv
+ed7dela
+ed4dyr
+e3de.
+ed5e6ge
+ed5eg4n
+ed3eie
+e4deks
+ede8le.
+e4denf
+e8d5eng
+eden5t
+e6depr
+ede4ra
+e4derø
+e4desk
+ede4sl
+ede4sm
+e4desn
+ede4s5p
+ede4ta
+e6d5ett
+e8dé
+e5d6ia
+edi6a5ne
+edi4ene
+edi6gj
+ed4is
+edi3si
+edi4s5k
+e7div
+edle6ge.
+ed8ob
+edok8se.
+e4dol
+ed1op
+ed1ov
+e1dr
+ed2ra
+ed3reg
+e5drev.
+ed3rom
+e6d5ryg
+ed7ski
+ed3skr
+ed3s4la
+ed2sm
+ed5ta
+ed3te
+edt6r
+edu8a
+ed7va
+edvi6s
+e3dyk
+ed5ynk
+edyr6ke.
+edæ4
+e3d6ø1r
+e3e2
+eea7
+ee3b
+e2ed
+ee3di
+eeg4ga
+eeg6n
+ee5gå
+eei4d
+eei7ni
+eek1e
+eek4te
+ee3la
+e5e4li
+eem6na
+ee4n
+e5enb
+een3in
+een6k
+een5t
+e3epl
+ee8ra
+eer3en
+ee3ri
+e4er3l
+eer4me.
+e6e5sh
+ees8ka
+ees6ke.
+e3e6t
+eev4ne.
+e1f
+4efa
+efal6s7
+e4fana
+ef3ank
+e4fark
+efar6s5
+ef7ea
+ef5ef
+ef3fe
+3effek
+ef3fo
+4efi
+e4f3id
+e5fig
+e5f4ilm
+efi7ren
+efisken8
+4e3fj
+2efl
+efle6ge.
+eflå3
+e2fn
+efo8bi.
+efo4no
+8efr
+ef2sj
+ef2sk
+ef2sp
+ef6str
+e8ft
+ef2ta
+efta5r
+eft5ei
+ef5ter
+eftle8ge.
+eft1s4
+6efu
+efyrs5
+e3fæ
+4efø
+efø5le
+eføy9
+2ega
+e3gaf
+e6gala
+e7gam
+ega4ve.
+egde8l
+eg7des
+e5gedo
+egei9e
+ege4let
+e2gem
+e3geme
+egen5s
+3e4gensk
+e7geom
+e2ges2
+ege5sp
+eg9gen
+egg3l
+eg8g9ut
+egi3an
+egie2
+e4giko
+egis4p
+e3g6lad
+e3g4led
+eg7lesa
+e5g4lit
+eg7ly
+e5g6lø
+6egm
+e9g8nag
+eg4nem
+eg6no
+e7gnå
+4ego
+e4go.
+7egoi
+eg2r
+egrans5
+e7g8rø
+egs4am
+egs4ki
+egs4ta
+e1gø
+egøy6e5ne
+4egå
+egå4va
+egå4ve.
+e1h
+ehea4
+ehei9e
+eh5er.
+e4h5ere
+eh7ern
+eher4s
+ehog5
+ehov2
+ehy6re.
+ehø8va
+e6hå.
+2e8ia
+e9iakt
+ei9a4n
+ei7ar.
+ei4c
+e8id.
+ei3d8ar
+e3idea
+e3ideo
+ei9der
+ei5det
+5eidf
+5eidg
+e6i2do
+e1idr
+ei3d4u
+ei7e
+eie5d
+ei8eg
+eie2n
+ei9en.
+eier3a
+ei4ert
+ei6es
+ei1fl
+8eig.
+ei3ga
+eig6e
+ei6gev
+ei5gi
+ei6gra
+ei6gu
+4eii
+ei5kaa
+ei3ke.
+ei6kee
+ei6keh
+ei4kel
+ei6keri
+ei4ket
+ei1kr
+eiks3a
+eik6se
+eik4so
+4eil
+ei9led
+eil5egg
+e3illu
+ei3lo.
+ei9loa
+eil5op
+ei5los
+eil5s6
+4eim
+ei7ma.
+e5imag
+ei4m5a6l
+ei4med
+ei6mei
+ei7men
+ei4me5s
+ei4met
+eim9ett
+ei6mo
+8e1imp
+ei4n3al
+ei4nans
+ein5ant
+ei7nare
+ein1d
+4e3indu
+ei5ned
+ei7nel
+ein9f
+einga6
+ein3gr
+e4ini
+6ei6nit
+ein3k4
+e5inkar
+4e1inn
+ei4nom
+ei4nov
+einsi9d
+ein4s3l
+eins6o
+e4inspi
+ein7sto
+ei2n1u4
+ei3num
+6einv
+ei2n3ø
+ei5or
+e4ip
+ei9pa
+ei3pe
+eip5s
+2eir
+eir9ak
+ei7ren
+ei3ri
+eir5s
+2eis
+ei5sar
+e4ise
+ei3se.
+eise5i
+ei3sen
+eiseri9e8
+ei3s4ha
+ei4sil
+e3isk.
+e3iske
+ei6s3kj
+eis3ko
+ei3s4pe
+ei4spi
+ei4tek
+ei4tera
+ei4tere
+ei2to
+eit7ta
+ei6t7ut
+ei3tve
+ei6t7ø
+ei4vak
+eiva9r
+ei9ven
+ei3vi
+eiv5s4
+e1j
+ejo8en.
+eju6la
+4e1ka
+ekali7
+ekalie6
+ekam6s5
+eka6ra.
+e5kavr
+ek3eie
+e4kero
+e4kes
+ek5e4ta
+e6key
+e5k6hov
+e1ki
+e4ki.
+4e1kj
+2ekk
+ekke7le
+ekk9ist
+ek1kj
+ek4kjø
+ekk3l
+ek5kok
+ekko5v
+ek6ku
+ek4ky
+e1kl
+e8klane
+ek6leg
+e6klen
+ek5let
+e3klu
+e5klæ
+ek2lø
+4ekn
+ek9na.
+e3knek
+ekne7s
+ekni7p
+ek3no
+e3k4nok
+e1knu
+e5knø
+e1k2o
+e4ko.
+eko7le
+ekords8
+eko6te.
+e4kov
+2e1kr
+e3k2ra
+e3k4red
+e7kref
+e3kren
+e4k5ret.
+e5krets
+e5k4rev
+e3k2ri
+e3kro
+ek4ry
+e3k4rå
+ek5råd
+ek3s4ak
+ek4sal
+3eksam
+ek3sel
+3eksem
+ek4sig
+eks1k
+ek4ska
+1eksp
+eks5pe
+ek4sta
+ek7s6tel
+ek3sti
+ek4stil
+ekst5o
+ekst3å
+ek4sæ
+ek6t7arm
+ekt3av
+ek3tef
+5ek3tep
+ek5tes
+ek6test
+ek4tid
+ekti5m
+ek5tiv
+4ekto
+ektori6a
+ek4t3ra
+e1ku
+eku4le.
+e1k2v
+ek4val
+ek6var.
+6ekve
+e4k5ve4d
+e4k5vik
+ek4vin
+ek6vis
+3ekviv
+6e5kw
+e5ky
+eky6te.
+e3kæ
+e1kø
+e1kå
+ekå6pa
+2e1la
+ela4ga
+el3agg
+e2l1ak
+e5lake
+elak8se.
+el7akt
+el1al
+e8lame
+el3anl
+e6l5arg
+e4larr
+el7arti
+e5las.
+e5lase
+ela4te.
+el5ato
+el5avl
+el3avs
+elbo8da
+el4ch
+el5do
+eld4rer
+eld5sle
+4eled
+e4ledi
+e4ledr
+e3lee
+eleg5d
+ele7ger
+eleg8na
+e7leir
+e7leis
+e5leke
+e2lel
+e2lem
+e5lem.
+e5lemat
+5elemen
+e5lemet
+e3lemm
+e3lemp
+4elen
+ele9na
+e4l5enh
+elens3
+e4lentu
+e5lepa
+2e3ler
+ele8ra.
+e7leret
+e6l7erg
+ele3sk
+e6lesku
+e4leta
+e4lete
+5e8lev.
+ele4vak
+6e5levn
+el5fi
+el9ga.
+el5gele
+el5gi
+elg3s8
+2eli
+e9lie
+eli5e6rer
+e4lif
+e4li5g4r
+e4l3ind
+elin5es
+e4linsp
+eli6o5s
+eli8ta.
+eli4tet
+6e5litt
+eli6v7en
+el1j
+elk2
+el6k5al
+el4ke5s
+el4kete
+el3kn
+el5la.
+el5l6ar
+el4led
+el4leg
+ell5eie
+el5ler
+el3le4s
+el6lete
+elli7ga.
+el4lisj
+ell7sa
+ell5sk
+ell5s4l
+ell5sp
+ell5sv
+el5l4ur
+el4læ
+el5m4o
+el5mu
+el5n
+2e1lo
+elo6ka.
+e2lom
+e3lomm
+el3omn
+el3oms
+el1op
+e2l1or
+e3lort
+el3ost
+el4ot
+elo7vers.
+e4l5ovn
+el4pet
+el5ph
+elro4s
+el4sei
+els5eie
+el3sen
+el3se6s3
+el3si
+el4sje
+el4skal
+7elskand
+els5kare
+els1l
+el6sno
+el4spe
+el3spr
+els4ten
+el4sti
+el4stj
+el2sø
+els5øk
+el5s6åpe
+elta8le.
+el5te.
+el6teg
+el4tero
+el4t5ett
+el4t3op
+el4tro
+elt5rop
+el2tu
+e3lua
+e1lu2e
+e4lu4he
+e3luk
+e7lum
+el3ung
+elun6ge.
+e7lup
+elu8pe.
+e1lur
+e7lus
+el3utr
+elv3an
+el4ve3d
+el4vei
+el6vere
+elv1r
+5elvs.
+elvæ6re.
+4e1ly
+ely8et.
+el5ynd
+2elæ
+elæ5res
+el9ærv
+e6l5æt
+2elø
+e4l3ø4r
+el3øy.
+el5øya
+el5øyd
+e6l3øyn
+2e1lå
+el1år
+e5låt
+4em.
+e2mad
+emafo5
+ema4ge.
+e4magr
+e2mah
+ema4ke.
+e4mako
+em5akti
+e4maku
+ema6le.
+5e4malj
+e4mam
+e4mana
+ema4ni.
+e6manu
+e4mare
+em7ar8m
+e4masi
+e6masku
+e4mata
+ema3uk
+ema5ve
+5emball
+3embed
+embe6r5
+3embet
+6emd
+8eme
+emei9e
+eme4li
+e4mend
+eme5tri
+eme6trisk
+em5e4v
+e4mib
+emi5ert
+e4mig
+4emin
+emi5ni
+emini6st
+e4minor
+e6mir
+emi9sa
+em7je
+e5mju
+em5le
+emle6s
+em5me.
+em5men
+em8mi.
+8emnd
+em4ne.
+em4ned
+em4nem
+6emni
+emo5nol
+em1op
+e2m3o4v
+em4ped
+em6peri
+em2p3l
+emp9lane.
+em6pli
+empo3
+em4pol
+em4pos
+em4ses
+emse8te.
+em4s5ju
+em4s1l
+em2sn
+em4sor
+em1st8
+ems4te
+ems3u
+emta8la
+em4til
+e3mug
+e2muk
+e5my
+emy4k
+6emø
+emø8r
+e5møy
+emå4la
+emå9lan
+emål4s
+em1å8r
+2ena
+en1ak
+en3ald
+ena5li
+en3all
+en5and
+e5nane
+e6n7ang
+e4n3ant
+e5nar.
+en8are
+e4narr
+en3ass
+enat6s5p
+ena2v
+en3avi
+4enb
+enbe9na
+en4d5and
+en4dek
+en3del
+endelø7se
+en5demi
+en3der
+en4desl
+end5l
+1endr
+en4d3ro
+end3st
+en7dø
+endø4r
+endør5e
+en5egg
+eneg8ga
+en3eie
+en5eks
+e3nekt
+4enem
+2enen
+en5eng
+3energ
+e4nesk
+4enev
+ene7ven
+eng6a
+en7gar
+en4gem
+en4geri
+enge6r5u
+en4gle
+eng4les
+eng4r
+eng3s4e
+eng5so
+eng5sp
+engs4ti
+en4gut
+en4g5å
+4enhj
+e4ni.
+e4nierk
+e2nif
+e5nir
+en4kera
+en4keri
+2enna
+en9nal
+2enne
+en4nem
+ennes6t
+enne4s5v
+enn2i
+enn2o
+enn4sj
+enn5sta
+enn7ø
+2eno
+en3ok
+en3og
+en3om.
+en1op
+e6n5ord
+2enp
+en4pås
+en4rem
+en5sab
+ens5af
+en6s7a6ker
+en4sek
+en4seli
+5ensemb
+en4ses4
+ense3u
+en3si
+ensi8de.
+ensi5ert
+en4sim
+ensle7g
+ens6lev
+en7s6opt
+en1st
+en6s7tal
+ens4ter
+ens4ti
+ens7und
+ens4ve
+ensvi6
+en2sø
+ens3øk
+ens7å
+en5ta.
+en4tap
+en5te.
+en4tec
+en4teg
+en4tel
+en3ti
+en5tie
+en5tig
+en5tik
+en9tima
+en7timen
+en4to4r
+ent5ori
+ent5rab
+en4tre
+ent5ren
+en4t5rol
+entropi5
+en4t3rå
+en6tul
+entun6ge.
+3entus
+2enu
+e2n7ul
+e4n5ur
+2en3v
+4enw
+e4ny.
+e2nyb
+e6nyr
+e2nys
+e4nyta
+4e7næ
+enæ8m
+enø4k
+e2n3øv
+en5øyd
+4enå
+en1ås
+en6ås.
+e3o6
+eo3a
+e6obe
+eo2bl
+eo5d
+eod8de.
+e1og1
+eo7gr
+e2o1i
+e2ok
+e3oks
+e2ol
+e4o7lo
+eom1s4
+eon8de.
+eo5ne
+e7onk
+eon4kl
+e3ont
+eo2p
+eo3pa
+eo5pl
+eopo3
+eopp5r
+eo3pr
+eor4da
+eo9re
+e2ori
+eo4rid
+eori5e6
+eo4rik
+eo4ris
+eo1ro
+eo1s
+eos6l
+e2o1u
+2e1p
+epa3t
+e6peno
+epe6p
+eper5r
+e3pes
+epe4st
+e4peta
+e6peu
+3epid
+epi6ka.
+epi7kr
+3episo
+ep2l
+e8plen
+ep5lene
+ep5ler
+eple9s6
+3eplet
+epo6et
+3epoke
+epp2s
+ep6sem
+ep4ses4
+ep6s5lu
+eps1t
+ep2su
+e3p2sy
+ep6tin
+ept6r
+2e1ra
+e4r3abb
+era8da.
+e4rael
+e2raf
+er3aft
+e4ra4g
+e2r1ak
+e3rake
+era5kl
+eral3u
+e4rama
+era6na.
+e5rande.
+e5ra7ne
+er7anli
+era4no
+er5ape.
+er5aper
+er5a4pin
+er3apo
+er5appe
+e5rar.
+e4rarg
+e5rasane
+e5rasar
+e4rasje
+e4rask
+e6raso
+e4r3ass
+er6ast
+e4ratek
+era7tor
+e4ratr
+er5att
+e2rau
+er5auk
+erau9ken
+erau8s
+er3av.
+er3avh
+er5avl
+e3ravn
+er3avr
+er3avs
+4erb
+erbi9ti
+erbo8da
+erbo8de.
+er8byl
+erd2e
+er4ded
+erden8s
+er4dis
+er1dr
+erd4ra
+erd8re
+erd4skj
+erds3t
+erd4sto
+erdsto8ga
+er3d4v
+e1re
+er3eff
+er3eft
+er5e4gen
+er3eid
+er3eie
+ere6ka
+ere6ke.
+e4r3eks
+e6r5ekte
+e4r3e4le
+ere4lit
+e6relli
+e4r3els
+e9rem.
+e5remm
+er3emn
+er5enden
+e4r3eng
+e4r5enh
+e3re4o7
+er8er.
+e4r3erf
+e5reri
+er3ess
+ere4t
+e5ret.
+e4r3eta
+eret6h
+ere5to
+e7rets
+6erett
+eretts5
+e4r3e4va
+e4r5e4ve
+e4r3evn
+erev6ne.
+e8ré
+5erfari
+6erfi
+4erfr
+2erg
+erg5elv
+ergi3f
+er6gli
+er4go.
+erg5ret
+erg5sko
+erg5sp
+2erh
+erhø6re.
+e1ri
+e4riad
+e4riak
+erib3b
+eri3bl
+e4rice
+e2rid
+e5rid.
+e5ridn
+eri4kat
+e6rikn
+4eril
+e7ri6ma.
+er3ind
+e3ring
+6eringar
+ering6si
+er3inn
+er3ins
+er3int
+e5riori
+e5ris.
+e4risa
+eri3se
+e4riso
+e6risp
+e5rist.
+e7rista
+e5riste
+eri5stil
+e4ri5s6to
+eri5sø
+e4rite
+e4rito
+er7ivo
+er7jes.
+4erka
+8erke
+erkeri6e
+er4kesa
+er4kese
+er4kete
+er6k5ett
+3erklæ
+6erkn
+4er5k4o
+4erkr
+erland7as
+erle6ge.
+erle7s8t
+er3me
+ermo8de.
+erm1s
+ermå6la.
+2ern
+er4nad
+er4ned
+er5nede
+er6nee
+er4nero
+er4nest
+er2no
+er3nob
+2ero
+e3roa
+er3obl
+5ero4b7r
+e1roe
+er3off
+e1rog
+er5oks
+e1rol
+er3oly
+e1rom
+er5omk
+ero5mo
+e1ron
+er5ond
+erono5
+er1op
+e5rop.
+e7ro6pa
+e5ropen
+er1o2r
+e5ror.
+e3rore
+e7ro4sa
+3erosj
+er3osl
+ero4ta
+er1ov
+2erp
+2err
+er3ra
+er4rae
+er4rel
+errie9n
+6ersa
+ersa8ka
+ers6al
+er3sep
+6ersj
+er1sk
+er3ska
+ers4ka.
+er8skaran
+er9s6karar
+ers5kor
+er1sl
+ers4la
+ers6led
+ers4mi
+er5sne
+6ersp
+ers5tens
+ers5ter
+er7stev
+er1su
+4ersv
+er4sva
+ers4ve
+er1så
+er4s5år
+2erta
+er4tare
+er4te3s4
+er5tia
+er3tib
+erti4e
+er5til
+erti4mo
+er4top
+ert5rol
+4erts
+ert3sa
+erty6e
+ertå7ren
+2eru
+e1rua
+e5rud3
+e1rui
+er1u2k
+e3rum
+e4r3ung
+er3uni
+e3rup.
+er1u8r
+erure8
+e1rus
+er5ut.
+e5ruta
+e3rute
+er5utn
+er9uto
+e4ruts
+er7u6v
+ervele8
+6ervi
+ervs3
+ervæ6re.
+e1ry4
+e2r3ya
+erye7ne
+er1yr
+erys3
+e1ræ
+e9r4ære
+2e1rø
+er5økn
+e4røko
+er1ø4l
+e4r5øn
+e5r6ønn
+erø8ra
+e6r5ør6s
+er3øya
+e4r5øy7e
+erøy4n
+e4r5øys.
+er7øysk
+2e1rå
+e9rå.
+erå4da
+erå8de.
+erå6e
+erå4k
+er5åke
+er3å4l
+e2r1ån
+er3å4p
+er3å4se
+erå6t
+er7åta9
+e6råv
+2es.
+e1sa
+es5aa
+e2sad
+esag6
+es4al
+esa6la.
+esa9met
+e4s3ant
+es5arab
+es5arv
+esbi9e
+2ese
+es5ege
+es3ei4d
+es5eie.
+es3eig
+esei8ge.
+e3sek
+e4seku
+esel5s4
+e3s2en
+e5ser.
+e5sere
+e5seri
+e4s3erk
+ese5s2
+e3sest
+e4sesv
+ese5tas
+ese4te.
+e5setj
+e9sets
+e4seu
+e4sha
+es6har
+esh9ar.
+es4h5er
+e4shi
+e1sho
+e7s8hop
+esi6ar
+esi5ert
+e4sil
+e5sili
+es3ill
+e4s3ins
+esi6v
+esi3st
+es3jor
+e5skab
+es6ked
+es4kee
+es4ker
+8eskil
+e4sking
+eskinns5
+e1skj
+e8s9kjer.
+es4kjæ
+e6skjøn
+es5k4n
+e5sko.
+es7koa
+e3skot
+e1skr
+e1sku
+esku5et
+es3kvi
+e5sky
+e6skyr
+e1skø
+e7skå
+eskå7r
+e1sla
+es4lek
+es4let
+es7let.
+es7lets
+es4lit
+e4s5lok
+es4løk
+es4løv
+es4make
+e7s4mett
+es9na.
+es4ner
+es2no
+es4nu
+es2ny
+esnæ5re
+4e1so
+eso4b
+e2s3od
+e2s1of
+es3oks
+e2som
+e3somm
+e4s3ori
+e1s2p
+espa9ra
+es3pas
+es5pe.
+e4s4ped
+es5perm
+es3pl
+es4p5le
+es3pol
+e3spor
+es3pun
+es4sed
+es4see
+es4seg
+esse7i
+es6sendi
+es4s5enk
+es4ses
+es4sete
+ess5e4va
+es4s3ja
+es4sje
+es4skr
+ess4let
+ess3om
+es4sos
+es4spa
+ess5tilt
+es4stol
+ess5tor
+ess9tua
+ess5tue
+esstu8en.
+4essu
+es2s1v
+es7så
+e7stad
+es5tae
+es7takt
+es9tala
+e8stane
+e5stans
+es5tant
+es3tap
+e5start
+e3stat
+es5tato
+e4s3tau
+e7stav.
+est5avs
+e6s5te.
+es4teg
+est5eie
+est5eig
+es4tek
+es4tel
+e5stell
+es5tels
+e4stema
+e6steme
+e4stemo
+es5temp
+6esten
+e7steng
+es5tenk
+e8s7ter.
+e5s6terk
+esterne8
+este3s4
+es4test
+es4tien
+e3stif
+es4tig
+e3stik
+es4tikk
+5e6s5tima
+es4tis
+e4stiv
+e1stj
+es3t6on
+e4stog
+e3stok
+e3s4tol
+es6tone
+est5ord
+est5ori
+es5trak
+est5rene
+est5rer
+est9ré
+es5trib
+e5stryk
+e3strå
+e1stu
+e5stud
+es5tus
+8estå
+estå5ren
+estå6s
+est7åse
+e1su
+es5ut
+esva5re
+e5s4vek
+es5vig
+e5svikt
+es3vis
+2e3sy
+esy4na
+e4s5yt
+es5øvi
+es7øye
+e1ta
+4eta.
+e4tae
+e2taf
+etafo7
+e3tak
+e6tako
+e3tal
+eta3la
+eta4la.
+et5ald
+eta5le
+4e5tall
+etal6list
+etall5s6
+etal4s7
+et3amb
+e6tand
+eta4nen
+et4ap
+e9tapa
+e5tape
+3etappe
+et8ar.
+et8are
+et5art
+5e6tasjes
+1e2tat
+4e5tati
+e5tato
+e3tatt
+et5aun
+e8tax
+et1c
+2ete
+e4teie
+e4teka
+ete4ma.
+e5teran
+ete5ru
+etes5i
+e4tesl
+et8et
+e5tet.
+e7tets
+4eté
+4eth
+2eti
+e3tit
+2e1tj
+e7tjer
+et3jø
+6etl
+et5m
+2etn
+et6nev
+etning4
+etnings7
+2e1to
+eto4er
+et5oppd
+et3ord
+e4tot
+2e1tr
+e5t4rad
+e7t6rak
+8etre
+e5tree
+e5tref
+e4t3ris
+e9tru.
+et5rum
+ets1
+et9sar.
+et4sku
+etsku8le.
+ets7l
+etsla8ga
+etsnæ4
+et2sø
+et4tak
+et4tal
+etta6le.
+ett5alt
+et4tank
+et8tap
+et5te.
+et6tei
+et6telt
+et4tenk
+et4tenn
+ettera4
+etter5at
+et5t6erf
+5etterk
+5etterr
+ett5esk
+2etti
+et6tia
+ettian8
+et4til
+et2tj
+etto5a
+et4tr
+ett3re
+ett4ski
+ett4sti
+et3tug
+et4tur
+ettvi5se
+et2ty
+2e1tu
+5e6tui
+etu6na
+et3uni
+2e3t2v
+e4t3va
+e5t6vang
+2e1ty
+4etz
+4etæ
+etæ3ra
+e1tø
+e1tå
+etå5re
+e1u
+eu4a
+e8uf
+eug8la
+eu4h
+eu4ka.
+eu2ke
+eu5kem
+eu7kr
+eu2l
+eum2
+e3u2n
+eun4ge.
+eu5nu
+e4up5a
+e6upk
+e2ur
+eu6rat
+eure4
+2euri
+e3urn
+eur8na
+eur6ne.
+euro1
+3europ
+e3urt
+e2us
+eu4si
+eu1ta
+e3uts
+eut7t
+e4u3z
+e1v
+evad6r
+ev5akti
+eva4la
+evann4s
+e4v5anta
+e4varar
+e4varb
+e4v5ark
+e6vatf
+6eved
+eve5d6a
+eve5del
+6eveg
+e5vegg
+evei6s5
+6evenn
+even5s
+5eventy
+e4veny
+e9ver.
+e5ves.
+e5veta
+e5vev.
+evi4e
+evi5ere
+evi5ert
+evin4s
+evi4se.
+evis3t
+e2vj
+ev2na
+evn5a4k
+ev7nu
+ev7oms
+e4vre
+e7vri.
+ev9rå
+ev1s
+evs8v
+evta8la
+evti4
+e2v3un
+e5vyrk
+e2vø
+ew3a
+ey1
+eybal4
+e1y2d
+ey5k
+e1yng
+e1yr
+eyr6ka
+eyr4ke.
+e1y2t
+e7yti
+ey3tr
+e3zi
+e1zu
+e1æ2
+eær3
+e1ø4
+eør6na.
+eøy4
+eøy9an
+eøy7en
+e1å6
+eåk4
+eån8da
+eåt8t
+é1a
+é1b
+é1d
+édø4r5
+é5e8
+é1f
+é1g
+é1h
+é1i
+é1k
+é1l
+é1m
+é4n5e
+é5n6et
+é5o
+é1p
+é1r
+é2rj
+é1s
+ése2
+é1t
+é1v
+éva8la
+évo8re.
+é5å
+è1r
+è2red
+è2ref
+è2rek4
+è4rener
+è2rep
+ère3s2
+è4rest
+è2rev
+è6ves
+ê8lan
+ê6ra
+ê1re
+êr7o
+êr9sl
+1fa
+4fabo
+fac8
+fa1ci
+fa3de
+fa6de.
+6fadm
+fa4f
+fa2g1a
+fa5ger
+fage4t
+fag5eti
+fa2gi
+fa2go
+fa2gr
+6f5agro
+fag3sk
+fa2g1u
+fai5
+2fakr
+fakse9t
+fakta3
+fa1ku
+5fal
+fa1la
+fal6kes
+fal4k3l
+fal6lers
+fal5m
+fa4lo
+fal4sk
+4fa5mo
+fa4na.
+7fan5d
+5fane
+fanfa5
+fang4s
+fangst7ev
+4fank
+2f3anl
+fan5s6
+fan7tesk
+fan5ti
+fan3to
+fan4try
+6fanu
+2fap
+3far
+9f8ar.
+fa3ra
+fa4ra.
+fa4re.
+fa4res
+far4gel
+far4ges
+fa4rit
+far5n
+far6skj
+fart2
+far4vel
+4fary
+fa7sa
+fa4sel
+fa4seru
+2fasl
+fast3r
+fa3tal
+fa4te.
+fa6t7ers
+fa1to
+fat2r
+fa3t6re
+fav5ne
+fa1vø
+2f1b
+fba4ne.
+2f1d
+1fe
+3fe.
+2fe1a4
+5fea.
+fe5a6l
+2fec
+fe4da
+3fede
+fe2dr
+fe3dra
+fe3d4ri
+fe7ene
+2fef
+2fe3g
+2fehj
+fei5en
+fei5er.
+feig4de
+fei5ge
+feil5es
+fei4li
+9fein.
+7feine
+fei7ter
+8fej
+2fek4a
+4fekl
+2feko
+4fekr
+fek6tes
+fekt5ev
+fe5lag
+fe5len
+fe5li
+feli7e6
+6felik
+felles5
+fel7læ
+2felo
+fel5ok
+fel9ta.
+fel4tek
+fel4ti
+fel4tra
+fem5ak
+fem9b
+fem9ne
+fe4mo
+fem5s
+fem4tid
+fe2m1ø
+5fen.
+4fena
+fend9r
+4feni
+5fens
+fentleg5
+2feo
+2fe3p2
+5fer.
+fe6ral
+4feram
+fe5ras
+fer6at
+fer4dam
+fer5de
+4ferea
+4fereg
+fe4rek
+fer6en
+fe7rer.
+fer5ers
+feri6e
+feri8e5ne
+7fern
+fer2r
+fers9kar
+fers7ke
+2fe1ru
+3fes.
+2fesi
+2fe1sk
+fe2st
+fes9t6i
+fes8t3r
+fes9tum
+fe6st9ø
+4fesy
+fe6ta.
+4fetap
+fe4te.
+4fetea
+fe5ti
+4fetil
+2fet6r
+fett5j
+fett7s6
+4fe4ty
+2feu
+2fev
+fe4ven
+2feø
+fe6øy.
+2feå
+1fér
+2ff
+f7fa.
+f4fab
+f2f3a2g
+f4f3ak
+ffa7l
+f6fann
+f4farb
+ffar6d
+ffa7re
+f9fas
+f6fat
+f8f9au
+f2f3av
+f2feb
+f2fe3d
+f2fee
+f6feh
+f2fem
+f6ferdi
+ffe4rer
+f2fes
+f4feti
+f4feto
+ff5eve
+f2fib
+f4fice
+f2fid
+f9fien
+f4finn
+ff5int
+f2fip
+ffi5s4
+f2fj
+ff3la
+ffla8ga
+ff9leg
+ff3li
+f2fo
+ff4ol
+f2f3re
+ff1ro
+ff5sl
+ff5t4
+ffu6r
+ff5ut
+f3fæ
+f4fø
+2f3g2
+2f1h
+1fi
+fia7l
+fia4n
+4fiap
+fi4as1
+fibi6en
+fi9cen
+fici7
+fi7di
+fie2
+fi1er
+fi7e6re
+fi4f
+fi5fi
+fi5fo
+fi7fl
+f6ig
+figh9t
+fi7g6r
+4fih
+fi9ka
+fikali7
+fikalie6
+fi7ken
+fik6ka
+fik6k5n
+fi5ko
+fik7sa
+4fiku
+fi4la.
+fi3li
+fil6lel
+fil6leri
+fil4les
+fil7leti
+fil8m7at
+fi1lo
+filt6re
+fil7tres
+fil4tri
+4filæ
+fin5art
+fin5d
+fi4ne.
+fi5ner
+fing3r
+6finj
+finn5ei
+6finnsa
+fi4n3o
+fi9nor
+2fins
+fin6sleg
+fin6te5s
+fi2nu
+7fio5
+fi2r
+fi3ra
+fi6ra.
+fi9rene
+fi5res.
+fi3ri
+fi5s4a
+4fisc
+fi6se.
+fiser6s
+fi8si.
+fi2sk
+fi6ska
+fisk5a6d
+fis7kal
+fisk5and
+fis6kart
+fis6k5end
+fis4k3l
+6fiskol
+6fisku
+fis5ti
+6fistu
+fiti6me.
+4fitr
+fitt5s
+fi7ty
+fi4ve.
+1fj
+f1jeg
+fjel6lend
+f5jen
+fjer5ne
+fje4sk
+fje2t3
+f5ju
+fjære5
+fjæ4res8
+2f5k6
+f2l2
+f5lag.
+f6lagg
+fla7ke
+f4las
+2fleg
+fle6i
+f4lek
+f6lel
+fle4sl
+f4lett
+f3lev
+fli7ne
+flis7t
+flit9t8
+1flo
+flo9ga
+flok9s
+flo2m3
+flo6r5o
+flos6kl
+f6lu
+flue3s
+flus8
+fl5ut
+3fly
+fly3s4
+f3løn
+flø5s
+1flå
+flå9sa
+flå7se
+2f1m
+fn6
+1fo
+2fo.
+fo9ar
+6fobs
+2foe
+4fof
+foi7la
+fo8ke.
+fo6la.
+fol4dr
+fo4le.
+fo5led
+fol6k5v
+fol9ler
+fol5lese
+folke5s6
+fol5li
+fo4lu
+3fon
+fo4na
+fond2
+fo5ne
+fo3n4id
+fo4nin
+fon1s2
+f1op
+for1a
+for9drev
+for7dro
+for5d6u
+fo6re.
+for9ei
+for7e6n
+for5ent
+for5ess
+for4et
+for9e8te.
+for9e8ten
+for9g6
+forh6
+fo4r9in
+fork8
+forlo7v
+forlø9pa
+forlø9se
+formo9r
+for3n
+foro6
+for5p
+for3se
+forsi9da
+forsi7de.
+for3s4m
+fors8t
+for9ste
+fors4v
+forta8le.
+for5t6e
+fortei9e
+for7t6i
+forti5da
+for3t4v
+for3u4l
+for7v6
+forva9re
+for5æ4
+for5ø4
+for9å
+fo9se
+fosfo5re
+4fosj
+fo4ta
+fo6te.
+foto5
+fo4tok
+fo4tom
+fo6top
+fo4tor
+fot3s
+fots6v
+fot3t
+4f1ov
+3fô
+2f3p2
+fpo6e
+fr2
+1fra
+fra5l
+fra4m5e
+fra6mi
+framma8ne.
+franko5
+fran7se
+fra7r8
+fra1s
+fra5se.
+fra7sep
+frasi8e
+fra7sk
+fras6p
+fra7v
+fra7v6r
+f2re.
+fred8sel
+freds5t
+fre4e3
+8freg
+f4rek
+fre4m5
+fremma8ne.
+frems4
+fre7ne
+fre6sk
+fres7ko.
+fres5koe
+fre8s9v
+fri5a6re
+6f5ridi
+fri4erf
+f1rin
+fris6ka
+fri5s4p
+fri5s6til
+frite8re.
+friti8me.
+6froc
+fro7f
+fronta9le
+fro8st
+frus1
+fruta6le.
+f1ryt
+frø5b
+frø7ko
+frå9r
+fråve4
+2f1s
+fs2h
+fsho6
+fsi2
+f5sjuk
+f2sl
+fsle6ge.
+f4sm
+f2sn
+fs7ne8
+fs5ov
+fs2t
+f2s3tab
+f6s5tan
+f4s9v
+2ft
+f1ta
+f3ta.
+fta7f
+ft1ak
+fta8la.
+ft3alg
+f2t1am
+f4tana
+f7tane
+ft3anl
+f5tar.
+ft8as4
+f6t1av
+f2tea
+f3ted
+f4tee
+f2teg
+f2tei
+f2tek
+f6tem
+fte4na
+ften3d
+f4t3enh
+ften5s6v
+f2teo
+fte4r5a4
+f4terin
+fter5s
+f4test
+f4teta
+f4t5ett
+ft3ind
+f2t5i4s
+ft5l
+ft7n
+f2t1o2
+f5tog
+3fton
+ft3r
+fts5alt
+fts3ei
+fts5ers
+fts5erv
+ft2s1i
+fts1k
+ft2skaf
+ftsla6ga
+ft5s4lan
+ftsle6ge.
+ft3sto
+ft6s5top
+ft5s6tri
+ft5stø
+fts1u
+ft2s1ø4
+ft5t4
+ftta8ka
+ft1u
+1fu
+fu8ga.
+fug9le.
+fug6l7eg
+fu6le
+full3
+ful9lar
+fulle6
+ful9le.
+ful4len
+fullen8de.
+ful4ler
+ful7les
+fullfø7re
+funn2
+funns3
+funnsla8ga
+fu6ra.
+fu6re.
+fu9ret
+fu7ro
+furu1
+fu7sel
+fu6sk
+fus6o7
+fu4s5t
+fut4h
+futu1
+4f1v
+fva8la
+1fy
+fy5la
+fyr2
+fy8ra.
+fy4r5a4b
+fy1re
+fy4re.
+fyr7k
+fyr8ke.
+fyr5t
+fy3s
+fysa7
+fy8sa.
+2fæ1
+1fø
+fø4da.
+fø4dek
+fø5den
+fø4des
+fø5des.
+fø1f
+2føk
+fø4le.
+f8ør
+før6a
+fø5rar
+fø4re.
+fø4res
+fø7resv
+fø8rete
+før6tin
+4få
+få7ren
+få7ret
+få5ri
+får7u
+få7va
+1ga
+4gaba
+ga1bo
+6gabø
+ga3da
+ga4ded
+4gadg
+2gadm
+4g5adr
+ga4e5k
+6gaflo
+g3aft
+6gah
+6gak
+g1aks
+gak8ta.
+gak8te
+ga3kv
+ga1la
+ga4la.
+galei5
+ga7len
+gal4les
+4galli
+5ga7lo
+ga4ma.
+4gamb
+ga5mer
+gamme6l5
+6gand.
+6ganden
+9gane
+gan5g6en
+gan4g5j
+4gan5k
+2g1anl
+4gann
+4gansa
+4gansv
+4g5antre
+ga6pa.
+ga4pe.
+ga4p5l
+gap3s2
+ga6p7u
+9gar.
+ga6raf
+ga6r5ak
+2garb
+5garbr
+5garby
+gar4dek
+7gare.
+4garea
+gar5es
+gares6ke.
+gar2i
+4garki
+gar3ne
+gar6ta.
+g5arte
+gar8te.
+g3arti
+gart5s6la
+gar4un
+ga4ryl
+ga4sc
+ga5s2i
+gas8ka.
+gas8ke.
+ga6ski
+4gasp
+gas6sel
+gas5sen
+gas7ser
+gass5ett
+gass3l
+5gast
+gas5te
+ga5sto
+gas7t6ra
+gas9tri
+g2at
+ga4te.
+ga5tens
+gate5s
+ga3ti
+ga1to
+ga3tr
+gat6tap
+gau5la.
+9gav.
+2gavd
+6ga4vei
+ga4veri
+4gavg
+g5avk
+2g1avs
+2gavt
+4gavv
+2gaw
+4gaø
+2g1b
+gba4ne.
+g6byk
+2g1c
+8g1d
+gd5alt
+g6d5au
+gde3a
+g2deb
+g3deba
+g4dedi
+gde5lo
+g2dem
+g4dend
+g2de5o
+g4dera
+g4de5re
+g6dero
+g2des
+g2det
+g3det.
+gdevi8sa
+gd5op
+gd1or
+gdy4d
+g6d1øy
+1ge
+2ge1a
+geak8ta
+geak6te.
+gea7ren
+ge4ark
+2geb
+6geba
+4ge5be
+3gebri
+4gebrå
+3gebyr
+ged4
+4gedan
+6gedel
+gedia5
+9gedom.
+7gedoma
+9gedome
+7gedomme
+6gedoms
+4gedos
+2gedr
+2gedy
+2gedø
+2gee
+geen8de.
+2gef
+g5eft
+3gefæ
+2ge1g2
+g5egg
+g3e2gn
+2geh
+gehø8ve.
+2gei
+g1eie
+g4e1in
+gei4r3
+gei9re
+gei8s7p
+gei6st5
+3geit
+geit3a
+geit3o
+gei4t3r
+2gej
+2gek2
+ge9kl
+ge3kn
+g1eks
+6gekt
+5gel.
+ge4lar
+4gelau
+ge6le.
+ge7lea
+4geled
+4gelei
+gelei5er
+4gelek
+4g3elem
+ge5len.
+ge5lens
+5gelet
+gel5ett
+3geli
+4gelid
+6geligg
+4gelit
+6geliv
+2gelo
+ge5lov
+7gels4
+gel3se
+gel5si
+gelsk7l
+gel5t4
+4gelu
+ge5lun
+gel7ve
+4gely
+2gelæ
+2gelø
+2gelå
+5gem.
+2gema
+9gema.
+2gemi
+3geml
+4g5emn
+gem6na
+2gemo
+9gemr
+3gems
+3gem4s5t
+ge3mu
+2gemy
+2gemø
+2gemå
+g2en
+3gen.
+ge2n1a
+ge7n6am
+gends6t
+ge3nea
+4genem
+gen5erf
+ge5nes
+gene4t
+gen5eti
+4genev
+gene5ve.
+gen8ga.
+gen5gr
+ge4ni6n
+6geniv
+gen5k
+genle6ge.
+gen3n
+gens5l
+gen6sun
+gen5tr
+4genum
+4geny
+4genæ
+4genø
+2geo
+5geog
+3geol
+geome5
+geomet4
+ge5on
+6geop
+ge9ope
+2gep
+g2er
+3ger.
+ge5ra.
+ge6ral
+ge4r5ant
+ge9ras
+ger5di
+4gered
+4geref
+4gereg
+4gerek
+ge6rene
+4gerep
+6gerese
+4gerett
+ger4i5d
+4gerik
+geri8ka
+6gerike
+ge4rim
+ge4ris
+ge4rit
+ge4riv
+gerle9g
+g9er8ma.
+ger3n
+gerne6
+4geroa
+4gerom.
+4geromm
+6gerop.
+4gerope
+ger5p
+ger4s5af
+5gerud
+ge5rup
+ger5v
+gerø6re.
+ge4r3ø4v
+4gerå
+g6es
+5ges.
+2gesa
+2gese
+5gesen.
+5gesens
+4gesi
+4ge5sja
+4gesje
+2ge1sk
+ge1sl
+geslu7
+ges4lø
+4geso
+4gespe
+ge4spr
+ge5spra
+2ge1st
+3gest.
+gesta7b6l
+5geste.
+ges6tekk
+ges8ti.
+gest5rid
+gestri8de.
+6gestå
+2gesu
+ges5vik.
+2gesy
+6gesæ
+2gesø
+2ge1så
+geså5re
+5get.
+ge5tak
+geta6le.
+6getat.
+6getate
+4ge3te
+5gete.
+2geti
+2getj
+2geto
+2getr
+5get5s
+2getu
+2gety
+gety8e
+2getø
+2geu
+g2ev
+2ge7v8a
+2geve
+4gevir
+gevi6sa
+4g5evn
+gev6ne.
+4ge5vo
+5gevå
+2gey
+4geæ
+2geø
+2geå
+1gé
+2g1f
+gfe2l
+4g1g
+g6g5al
+gg5ask
+g2g1av
+g4gedi
+gg1ei
+g4gela
+g4gele
+g2gem
+g4genu
+g6gerei
+gge4rin
+g4gerø
+gges6b
+gges5l
+g4gesm
+g6geso
+g4gesp
+g6ges6tio
+g6ge5sv
+g2gev
+ggie6
+g4gif
+g4g5i4m
+gg4je
+ggje5s
+g2gl
+g7glu
+g4gn
+g2g1o2
+g3go.
+g5gos
+gg3rad
+ggra6da
+gg5rat
+gg8re.
+gg3red
+gg7rek
+gg5s4par
+gg3sto
+gg4sy
+gg3sø
+g7g8ud
+g4g5u4r
+2g1h
+ghe8n
+ght5ene
+gh4to
+ghæ8
+1gi
+3gi.
+4giak
+gi1ar
+4giarb
+6giav
+2gib
+gi8c
+2gid
+gi3de
+gi1e
+4giek
+3gien
+gi9end
+5gier
+4gifa
+2gifo
+4gifr
+4gifu
+gi6ga.
+2gigr
+2gih
+2gii
+5gika
+3gike
+4giki
+3gikk
+gi5k4r
+4giku
+gi5le
+4gimess
+gi4metr
+4gimi
+4gimø
+2g1ind
+6gingeni
+gi4nin
+2g1inn
+gin5nu
+4gino
+4g1ins
+4g1int
+2ginv
+4gi5om
+2gi1op
+gio4r
+2gip
+gip5si
+6gira
+gi3re
+gi4re.
+giro3
+gi6rob
+5gis.
+2gisa
+gi3se
+4gisel
+4gisen
+5gisk
+6giska
+gis8lu
+gis4lø
+4giso
+4gisp
+gi3s4pa
+gi5s4pr
+giste6ru
+gis5ti
+gist5ra
+gi5stré
+gi6st5rer
+4gistu
+6gisty
+gi5ta
+4gi5te
+gite4s
+gi2t9r
+git5te
+2giu
+gi7va
+4gival
+4givo
+4givu
+1gj
+2g1jak
+g5jarn
+2gjaz
+gje5f
+4g3jeg
+gjels4
+gje2n
+gjen1opp3s4
+gjen5s8
+6gjent
+3gjer
+gje7sk
+gje4s3p
+gje8v9ak
+2gjob
+2g1ju
+7g6jut
+gjø9de
+2g3k2
+gkly9
+gl2a
+6gla.
+gla3de
+4glag
+gla4ga
+gla8ge.
+g3land
+g1lar
+gl5art
+glar7v
+1g2las
+7glase
+g6lass
+6glast
+g5last.
+3glat
+g5lau
+gl6e
+gle6dero
+g2lef
+gle3ge
+gleg8ga
+6glei
+glei7er.
+g2lek
+g7lek.
+g5leke
+g2lel
+3glemt
+4glen
+g9len.
+g9lene.
+g9lenes
+g9lens
+gle9pl
+4gler
+gle4ra
+glere8de.
+g9les.
+gle6se.
+g4le5sk
+g6le7sm
+4glet
+g2lev
+1g2lid
+gli4del
+gli7e6n
+gli8er
+glig1
+3g2lim
+gli9me
+4glio
+glitt4
+6g7liv
+4glj
+gl7ja
+gl5l
+g4lo.
+g2loa
+5glob
+5g6lome
+1g4lor
+gloria7
+glori6an
+glorie7ne
+g4los
+glo5ste
+6glov
+gls4
+5glug
+g5luk
+6glun
+gl5ung
+glun8ge.
+gl5ut
+g5lyd
+3glyf
+gly4se.
+g2løg
+glø8pa
+2gløs
+gl7øy.
+5gløym
+2g1m
+g4mete
+g4metr
+g5mé
+gmini6
+gmo4e
+g3mu
+gmu8le.
+gmå6la
+g1n
+gn1ak
+gna5lem
+gna4lo
+g2nav
+gn1d
+gndø6
+gndør5
+gn4e
+g2nee
+g4nelo
+g6nero
+g6nerø
+gne1s4
+gne8se.
+g4nesk
+g4nest
+g5net
+g6netr
+g2nev
+g4nib
+g4nid
+g6nik
+gning4
+gnings5
+gni4s
+g6ni5sk
+gni6st
+gnist9r
+gn5k4
+g2nom
+gn5o6p
+gn7o6v
+gn5r
+gn1s
+gn4skr
+gn6sm
+gn4som
+gns4pr
+gn4sti
+gn2s1v
+gn5t4
+gnu5re
+gnæ6re
+g2nå
+1go
+7goan
+go1ar
+7goar.
+2gob
+gobe5
+go4da
+go5dal
+god5ar
+2godd
+go4de.
+gods9t
+2gof
+go9ga
+go5ge.
+go9g8r
+6goi
+2gok
+gok4se.
+go3le
+gol6fa
+go5lo
+gol4va
+gol6var
+go4lå
+2gom
+g7o6ma
+6gometris
+7gomm
+go4n5and
+go9ne.
+go7ni
+go5nok
+gon9s
+2g1op
+3g6or4a5
+go5ra.
+go7rae
+go7ras
+2gord
+gor6da
+go1re
+gore8a7
+2gorg
+g4ori
+gori5e6
+g5orv
+gor8va
+go5rø
+gos3p
+4gost
+6goto
+got6r
+4gov
+go8ve.
+go8vi.
+2g3p6
+1gr4
+8gr.
+4grab
+6grac
+gra5ce
+9grads
+graf5f
+graf5t6
+gra4m5
+grand3s4
+gran5to
+grant4r
+gra9se.
+gra9set
+gra6sk
+gras3t
+gra5t
+gra8te.
+grati4s
+gra4u
+gra4v3ak
+gra7vis
+gravta8
+2grea
+4g5reds
+gre4en
+2gref
+g7refe
+g4rega
+greie5n
+grei6ene
+6g3reis
+4grek
+2g5rel
+g5rent
+4grepi
+grep4s3
+g7rese
+gres6sak
+gres6sent
+6g5rest
+4grett
+4g5ri.
+grib3
+4grid
+4grif
+4g1rig
+gri5sete
+4grit
+gro9ar
+g4ro7i
+grom5m
+g4ron
+gro5sk
+gro3ve
+4g5rui
+4g3rul
+grun7g
+5g4rup
+gru7sa
+grus5t
+2g1rut
+2gryd
+4g5ryg
+6g5rytm
+grø5de.
+6g5rør
+4g5røv
+grø5ve
+4grøy
+gr7øy.
+6gråd
+grå6da
+gråk4
+grå7n
+grå5te.
+8gs1
+gsa2
+gs5akers
+g7sal.
+g7sale
+g5salg.
+g5salge
+gsam3
+gs3amb
+gs7amn
+g3s6ank
+g5sard
+g2sas
+g7sast
+gsbø6n
+gs2ce
+gs5ef
+g2seg
+g2sei
+g2sek
+g5sekr
+g7sekv
+gse9la.
+gsel4s5a
+gsel4st
+g2sem
+gs6ende.
+gsen6ke.
+g5sens
+g3sent
+g2ser
+g5ser.
+g3seri
+gse4st
+gse4t
+g3sete
+gs3eti
+g9sets
+gs4ett
+gse2v
+gsfø2
+g2si
+g5sider
+gs5is
+gsi2v
+gs4jar
+g3sjef
+g5sji
+g2sjo
+g5sjå
+gs4ka.
+g5skad
+gs4kal
+g5skall
+g6skam
+g4skan
+g4skapa
+g5skape
+g4skapi
+gs7kav
+g5skilt
+g7s4kj
+g7s6kjæ
+g3skot
+g5skren
+g7skug
+g6skv
+gsla6ga
+gsle6ge.
+gs6leri
+g4sluk
+gs4lun
+gsl9ut.
+g5slyn
+gs5med
+g9s6mert
+g7snel
+g5sog
+gs9ope
+g5spal
+g3spel
+gs2pi
+gs5pik
+g3spil
+gs5pile
+g6s5pors
+g3spur
+gs3s4
+gsse4e
+gs5tak
+g9s8tand
+g5stang
+gs4tasj
+g7s4tat
+gstatsrå7
+gst6e
+gs5te.
+g5ste4e
+gs4tell
+gs5tema
+gste6ma.
+g7stemt
+gs4tere
+g5s4terf
+g5s4terk
+g5s4tern
+g5s4ters
+g5s4terv
+gst7evnen
+g5s4ti.
+g3s4tie
+g3stif
+g3s4tig
+gs5tiå
+g5sto.
+gs4tol
+g5stol.
+g7stola
+g5stole
+gs5toll
+gs4trap
+g5strau
+gst5rea
+g5strede
+gst5rei
+g5streke
+gs6tret
+gstri8de.
+g5s4trof
+g3strø
+g5s6trå
+g5stue
+gst5ut
+gstyr8ka
+gs4tør
+g5s4tå
+gsu2
+gsu5g
+gs4vane
+gs5vik
+gs7væ
+gsy2d
+g7sym
+gsy6na
+gsy6t
+g2sø
+gsø6ki
+gs6øt
+gså4
+2g1t
+g3ta
+gta8ka.
+gta8ke.
+gta6la.
+gta4le.
+g9t6e
+gte6ke.
+gte6ma.
+g3ti
+gti8de.
+g4t5if
+gt6re.
+gtråd5s6
+gt7sv
+gt5t
+gtu8en.
+gtvek8
+gty8e
+gt9yt
+1gu
+4g5u4bå
+gu2di
+guds3t
+gu4el
+6gug
+g5ug6l
+gui4d
+guid5ar
+gu4le.
+4g5ulk
+gul8ke.
+gul4la
+gul5o
+gul7ø
+7gum
+gun4g
+gur2g
+gu4ri
+gur8na
+gur6ne.
+gu5rua
+gu3rue
+gu4st
+gu1ta
+2gutb
+4gutd
+g5ute.
+6gutg
+g7utl
+4gutn
+2guts
+gut4tak
+gut4tes
+4guttr
+2g1v
+gva4ke.
+gva8la
+gvedli6
+gvi8ta
+6g1w
+1gy
+g9y8a
+gy4da.
+7gym
+gy3ne
+gyr6
+gy8sa.
+gy6se.
+gy4te.
+gy4ve.
+g5æt
+4g5øk
+gør3s
+2g3øv
+gøy9a
+gøye6r
+gøy5n
+1gå
+gå6as
+gå6en.
+gå4er.
+4g5å4k
+4gåm
+4g3ån
+gån8da
+2g1å4p
+2g3åre
+gå2s
+gå3st
+gå9ven
+gå4vet
+h2a
+ha4a
+haba9
+4hae
+ha2el
+4hafi
+ha2g
+ha3ga
+ha4ga.
+ha3gen
+hai1
+ha7ism
+ha5ka
+ha4ke.
+ha5ken
+ha7kera
+ha4ke5s
+ha1la
+ha6la.
+hald4s7
+ha4le.
+ha4lev
+hal6lei
+hal6lø
+hal4s3k
+hal4so
+hal4s3t
+ha5lu
+hal4v5
+ha5ma
+ha8me.
+ham6nest
+ha5mo
+ham4st
+hams4t7r
+ha5na
+han6d5r
+hand7skr
+hand5ø
+ha4ne.
+hani1
+hanis4
+han2n3
+han4ne
+han6nel
+han5nen
+han5n4o5
+han3se
+han4sk
+ha4pe
+ha4re.
+ha5rei
+ha4rel
+ha3rem
+ha4res
+har5k
+ha5rov
+har7se
+har5tre
+har4tri
+ha4sj
+hasj5e
+ha2sl
+has6p7l
+has5v
+ha3tar
+ha4te.
+hat6le
+h4au
+hau5ke.
+hau6st
+hau4t5r
+hav4a
+ha4va.
+ha5van5
+ha4ve.
+ha4veg
+ha4vei
+have3s
+ha1vi
+ha4vo
+hav4sl
+ha6vu6
+hav1ø
+4havå
+2h1b
+hba4ne.
+4hc
+2he.
+he2a
+he7ans
+heat4r
+heb5n
+he4de.
+heder6s5
+he2d9r
+hef9ta
+hef7tes
+he3ge
+he4ge.
+he2g3r
+he2i
+heia3
+hei5en
+3heim
+he3ins
+hei4sk
+heit4s
+he2k
+hek4sek
+hek6serin
+hel1a
+he4la.
+he4le.
+he4l5ei4
+hel6lesu
+hel3o
+hel2s2
+hel3sa
+hel4se7
+helses4
+hel3sk
+hel5sp
+hel5ste
+hel3sv
+hel4tes
+hel9ve
+he4mak
+hem5ne
+hem3s8k
+henfø5re
+hen5o6
+hen1s2
+hen5se
+hera9da
+he5ret
+he4ri.
+her5j
+herle9ge
+herli9ga
+4her5n
+he1ro
+he4ro.
+hero9a
+her7p
+her6rei
+her6resi
+her6ret
+her6ska.
+her8s7kare
+her6sv
+her5un4
+he2r3ø
+he4se.
+he2sp
+hes7pa
+hes5pel
+hes5pen
+hes9per
+heste5ri
+hes4tes
+he6stø
+het2
+he4te.
+he5t6i
+het4s3a4
+het4s5p
+het3t
+he6va.
+he6v7arm
+he4ve.
+hev9na.
+2hf
+2hh
+h5hu
+hi5ao
+hi4bak
+hie4n
+hi2et
+hi4f1
+hiff2
+hif9r
+hi6ge.
+hik7e
+himme6l5o
+hi6n7an
+hin4nes
+hins4
+hins9ke
+hi4pl
+hip3p
+hi1ro
+hi2s1
+hi9se.
+hi3sen
+hi5s4i
+4hisk
+hit7o
+hi4t5r
+hit5ti
+hi8va.
+hi4ve.
+hiv1s
+hjar4
+hje4
+hjem7e
+hjorte5
+hju6l7
+hju7l8e
+2hl
+h5lan
+2h1m
+hma8n
+2hn
+h2na
+hne6n
+hn1s
+h4o
+ho5ar.
+hob6
+ho6da
+ho4de.
+ho5den
+hode3r
+ho5der.
+ho5dy
+hof4f3
+hof4f3a4
+hof4f3e4
+hof5f6er
+hof4fi
+hogs6
+hog6str
+hog7stra
+hoi5
+ho2la
+ho5lag
+ho5lan
+ho4le.
+ho4lin
+hol5l
+ho4lom
+hols4
+ho4lu
+hol7ut
+ho4me.
+ho4mo.
+ho4mod
+ho4mos
+ho5n6o
+ho4o
+ho8pa.
+ho4pe.
+ho8pi.
+ho5ra
+ho6ra.
+hor2e1
+ho1ro
+2hort
+ho4s
+hos5a
+ho5sen
+ho5ser
+ho5si5
+hou2
+ho1v
+hove5re
+ho4vé
+2how
+h1p
+2hr
+h1ra
+h1re
+hri5ne
+hri2s3
+6h1s
+h5s4e
+4ht
+h5ter
+htere4
+h1tr
+ht5t
+hu4da
+hu4d3
+hud5s6
+hudså9re
+hu4er
+hu6et.
+hu4ga
+hu4ge.
+hu8ja.
+hu6ka.
+huk8ra
+hu4la
+hu4le.
+hu4leg
+hu5les
+hu4lev
+hu5ma
+hun6des
+hun2n3
+hu1ru4
+hus1a
+hu8sa.
+hu5s6a6r
+hu6s7arr
+husa7r8e
+hu4se.
+hu4s3ed
+hu2s1i
+hu2s5j
+hu2s1k
+hus7m
+hus5s4
+hus1t
+hu8str
+hust9ran
+hus4tre
+hu6sty
+hu6s5u6
+hu2sø
+hu4va
+hu4ve.
+hu4ves
+hv4
+hva5le
+hvas5
+hve2r
+hver3a
+hvi5l6i
+h4v4ir
+hvits4
+hvo2
+hvor5
+hvor5i6
+h6y
+hya3
+hy2bl
+hyd4
+hy2e
+hye5ne.
+hye9nes
+hyg5gel
+hy6la.
+hyldes7
+hy4le.
+hyr4des
+hys3
+hy8sa
+hy4se.
+hy2s1j
+hys5t
+hæ5g
+hærfø9
+hær3s6
+hø4e
+høf5
+hø2g
+høg3ri
+høg7rø
+høk6
+hø6le.
+hø4na
+hø4ne.
+hø5rar
+hø5ren
+hø5rer
+hø4res
+hør6sp
+hø2s
+høst7a
+høst5ø
+hø1va
+hø1ve
+hø1vi
+høy5a6
+høy5k
+høy7n
+høy7rar
+høys4
+høyse6te.
+h6å
+hå7a
+hå8le
+hå6na.
+hånd5skr
+hå5nel
+hå6pa.
+hå4pe.
+hå4p5l
+hå1re
+hå1ri
+hår3s
+hår7u
+hå8va.
+hå4ve.
+ia9al
+i1abl
+ia1bo
+i2a3de
+i1adj
+ia5d8r
+ia1g2
+ia2ge
+ia1in
+ia1kr
+i1aks
+iak8se.
+ia5ku
+i1al.
+ial1a
+ial5ein
+iale4t
+ial5eti
+ia4l5ett
+i2alf
+ial3g
+ia4lin
+i4alk
+ial3op
+ia6lov
+i5als.
+ials4t
+i3alt.
+ial1u
+ia2lø
+i1an.
+i2ana
+ia4nal
+ian5ald
+ia5nar
+i7andr
+i5a4ne.
+ia8nes
+ia7net
+i5ank
+i1anm
+ia2no1
+i1ans
+ian3sa
+ian3sl
+i1ant
+ia7nø
+ia2pa
+i3app
+i1ar.
+iar4do
+iard5s4
+iar4du
+i2are
+i5area
+ia5r6e8l
+i5arn.
+i9arns
+i7arska
+i6asi
+i1asm
+ia4sp
+ias3s6
+i3assi
+i1ast
+i7ast.
+ia1t
+ia5te
+iat6r
+iaty6ra
+i1att
+i7auk
+i1av
+i1b2
+iba4ne.
+ib5bo
+ib3bu
+i3bere
+ibe4ro
+ibi5er.
+ib7lar
+i2b3le
+ib4leg
+ib4le5s
+i5bo
+ibo4e
+ibo7n
+ib4r
+ib3st
+ib8t
+ibya7
+iby9ar.
+8icanarar
+ice5ne
+i1ci
+ick1
+ick7ete
+i1co
+i5cy
+2ida
+i5dal
+i3das
+id1av
+id3del
+iddel5u
+id6dep
+2ide.
+3ideal
+i2deb
+i6def
+id5e4ge
+i7deki
+i9del.
+id3elv
+2iden
+i5dend
+iden5sv
+5identif
+5identit
+ideo3v
+i6derap
+i9de5re.
+i7deren
+i9deres
+iderla8ga
+iderle7g
+i7dern
+i5ders
+i6desm
+id6gem
+id4ges
+idi4en
+1i2dio
+i8dj
+id7jer
+id9na
+1i4dol
+id9ran
+id5reg
+4i3drev
+2idri
+id2s1
+id5sam
+idse4
+id6sel
+id5sim
+ids5l
+idsla6ga
+ids3t
+id4s5tu
+id2t1
+i2d1un
+i2dy
+3idyl
+i3dyr
+i3dø
+i6d7øy
+id7å
+2ie
+ie1a2
+i2ed
+i1eff
+ie4ge
+iego4
+ie1i
+iei6d
+i1eie
+i3eig
+i5eini
+iek8l
+i1eks
+ie5l6a
+i2ele
+i5elem
+ie4lev
+i7e6lim
+i1els
+i9elt
+ielø8pa
+i8e9ma
+iem7b8
+ie3me
+i1en
+ie7na
+i2end
+ien6dela
+ie8né
+i2e5ni
+ien7n
+ie5no
+i5ens
+ien4sk
+ien4s5v
+ien4t3r
+ie5nu
+i6eny
+ie4ran
+i4erd
+ie6re.
+ie5reg
+ie4r5eng
+i6eret
+i2eri
+ie4ril
+ie4ris
+ie4riv
+i2erl
+i6ero
+ie7ro.
+ier4ra
+ier4sp
+iers3v
+ier5t
+ie3run
+ier5v
+i2e1s
+i6es.
+ies4c
+ie3se
+ies5s
+ies4ti
+i8es6v
+i1et
+i2eta
+i5e4tabl
+i3etat
+ie9te
+ie5té
+iet4re
+ieu2
+ie7ved
+2if
+ife4s1
+if2fa
+ifi6e
+ifjø8
+if3le
+if4les
+iform4
+if1re
+i8ft
+if4tal
+if4tere
+ifte5s
+ift2s
+i3fø
+2ig
+i2gae
+ig3ann
+i7gark
+ig4art
+iga3ru
+iga7te
+ig3att
+i2gav
+ig3d
+i6geb
+i6gedi
+i6gedomm
+igedoms5
+i2gem
+i3gen
+ige6no
+i5gers
+i4gerø
+i4gesp
+ig3e4ta
+ig5ett
+ig4ged
+igges4
+ig4gra
+igg9s2
+i6gh
+i2g1ia
+i5gib
+i4gim
+igion4
+igje9va
+ig1l
+igl6d
+igli6se.
+ig5loa
+ig5neu
+ig5no
+igof6
+igo5fr
+ig1om
+igo4no
+ig2ra
+ig2re
+i2g1rø
+ig3råd
+igrå5t
+igs4al
+ig5sel
+igs2j
+ig5s4ka
+ig3s4kr
+igs4mu
+ig3s4pa
+igst4
+igs4ta
+ig4ste
+ig5stek
+ig7stel
+ig5stem
+igs4tra
+ig5s4va
+ig1un
+ig9ut
+i3h
+ihen3
+iho7le.
+i4huk
+ihu9la
+ihu5le.
+i1i
+i5in
+i7is.
+i6ita
+i1j
+2ik
+i1k2a
+i2kab
+i5kabel
+i2kaf
+i2kak
+ikan9d
+i2kao
+i4kapo
+i5kar.
+i5kara
+ika5re
+i4karei
+i6kasa
+ika3sp
+i2ke.
+i2ked
+ik9ei
+i9keleg
+i5keli
+ike5lu
+i5ken.
+i4kena
+i5kene
+i9kens
+i3ker.
+i4kera
+i5kere.
+ike5ri
+ike4r5o
+i2ke1s2
+ike3si
+i6kesk
+i5keso
+ike5su
+i5ket.
+i5kets
+i1ki
+iki9ne
+ik5inn
+iki5st
+i1kj
+ik4kaf
+ik6kana
+ik4kap
+ikk5arv
+ik4kas
+ik4kat
+ikk5att
+ik6k7ent
+ik4keru
+ik8kesk
+ik4kest
+ik3kjø
+ik4kjøp
+ik4kl
+ikk5lag
+ik2ko
+ikk5ord
+ik4kr
+ikk3re
+ikk5sv
+4ik2ku2
+ikk5und
+ik2kv
+ik6ky
+ik1l
+i5klæ
+i1ko
+i2koa
+i9koar
+i2kob
+i4kod
+iko5de
+i2ko3f
+i4kog
+i4koh
+i2kok
+iko5na.
+i2koo
+i5k6ord
+i4kore
+i2kov
+ik1r
+ik4rak
+ik5rem
+ik5robe
+ik3ros
+ik2ry
+ik2sa
+ik4sek
+iksmå8la
+ik7sot
+ik5spel
+iks5ti
+iks5to
+ik8stu
+ik4tav
+ik4teg
+ik2t1r
+iktsla8ga
+i1ku
+iku6le.
+i6k7u6t
+ik1v
+ik4vin
+i1ky
+i3kø
+i3kå
+ikå8pa
+i1la
+il5adr
+il7af
+i2l3ak
+il3al
+i4lana
+il6and
+i4lark
+il3art
+il5ass
+ilas5t6
+ila5t
+il5av
+il4dak
+il4deko
+il4dete
+il7dj
+ild3re
+ildsfa9re
+ild3s4t
+ilea9r
+ile8are
+i3le7e
+i2lef
+ile4ge.
+i4l3egn
+i2l1ei
+i6leig
+i2lek
+i2lel
+i4leno
+i4lero
+ile1s
+i4lese
+i4le5sk
+i4lest
+ile6tri
+ilet5te
+ile4tu
+i1lé
+ilfø5re
+il5ge
+il1gl
+i4lid
+ili5ers
+ili9ga
+i5lik
+i2l1im
+i4l3ind
+i7line
+i4lins
+i4l3i4r
+ili5s6tik
+il3ja.
+il1je
+il5jese
+il1jo
+il1ju
+ilke3
+il5ker
+il4kes
+ilk4o6s
+il5ku
+il4lab
+il6lam
+illan8da
+il6lap
+il9lau
+il4lee
+illei9e
+il6l7ender
+il6lesk
+il4lev
+illi9ga
+il4lo5m
+ill3s2
+ills5kå
+illæ4
+illæ9re.
+il4m5est
+ilm5e4v
+il4mi
+ilm5s
+i1loe
+i9lolo
+i4lom
+il5omv
+i5lon
+il3opp
+i4l1o4r
+i5loso
+ilot3u
+i4love
+ilo1w
+ilret4
+ilset8je
+il3sl
+ilsla7
+ilsle7ge
+ils4mu
+ils2p
+ils2t
+il5str
+il7su
+il3s2v
+ilsva9ra
+ilsva5re
+ilta9la
+ilt5rett
+il6t7å
+ilu4h
+i5luk
+il7ul8
+il3un
+i5lur
+i9lus
+il1ut
+il5v6
+ilve8d
+ilve4r
+i1ly
+il1å8
+ilår6
+8im.
+4ima
+i2mad
+i4maen
+i2mag
+i6m5akk
+i4mako
+imal8n
+i2mam
+i9man
+i2map
+i5mar.
+ima5s
+i4matr
+i8mb2
+i4mee
+i2me1g
+i2mek
+i6melu
+im5enh
+im8et
+i9met.
+i4meta
+i4meti
+i6mey
+i8mé
+imi9la
+imini6
+i7mj
+im4lev
+im8l9u
+im5m
+i6mog
+imo9l
+im5ord
+imor8da
+im7o6v
+imp2
+5imperi
+imp4l
+1impo
+imp9s
+impse8
+1impu
+im4ref
+im4rek
+im4res
+im9se
+ims4k5l
+ims3kr
+im5s4me
+im1s4t
+im6sti
+imta8la
+4imu
+i3mø2
+2in.
+6ina
+i4nag
+in5agg
+i5nakk
+ina4let
+i4na2m
+in3ame
+in2an
+i9nane
+in5ann
+i2nap
+in5app
+i5nar.
+i5nars
+i4nask
+i4nasp
+i4n5ass
+ina4t5ak
+i6nau
+in7auk
+in5avl
+in5avr
+ince2
+in7der
+6indig
+in4dog
+ind9ra
+in3dru
+indr5ø
+ind5sk
+ind3sp
+ind5s4t
+5industr
+ind7å
+4ine
+ine8are
+i2ned
+inedy6
+in5egg
+in5eid
+in3eie
+i6nele
+ine4li
+in7eng
+ine8pa
+ine8pe.
+i7nere.
+i5neren
+i9neres
+ine4rik
+i7nern
+i5nert
+i5nes.
+i4nesk
+ines8ka
+ines8ke.
+ines4st
+ine5s4ti
+i4nesø
+i2nev
+8iné
+3infek
+in4fos
+in4fot
+infu9
+4infy
+in4g5ald
+in4gav
+in5gebj
+in6gem
+5ingeni
+in5geri
+in4geru
+in3gev
+ing5jen
+in4goa
+in4gos
+in2gr
+ing5rep
+ing7ris
+ing2s
+ings5om
+ingst8
+ings5v
+6ingu
+in2g5ø
+i7nia
+ini9ar.
+i2nib
+i5nie
+i4nif
+i2nig
+i4nil
+ini7m
+i4ninn
+i2nip
+i4nisa
+ini3se
+i4nises
+5initia
+i4nito
+5injek
+2ink
+in5kel
+in4kero
+in4k3la
+in4kok
+in5l
+inla8ga
+2inn.
+in4nal
+in4nem
+in4nerø
+in4nesi
+innes6t
+4innet
+in6n7ette
+innfa9s
+1inng
+5innhal
+3innho
+2inni4
+in4ni.
+in4n5om
+in5n6ova
+inn1s4
+6inns.
+3innsa
+inn5se
+inn9sen
+inn9ste
+inn7sve
+1innt
+in4n5u4
+4innæ
+in2nø4
+2ino
+ino5a
+i5noar
+i4nod
+inok6
+in7oks
+in1s
+4ins.
+8insa
+in9sa.
+in7sal
+in5sar
+in5se.
+in4sek
+in3sen
+inseri8e9ne
+in3si
+insis5
+6insj
+in4sja
+in3sje
+4insk
+in9s8kas
+in5skat
+inske4t
+ins4ki
+in3skj
+ins5kjøt
+ins6kor
+ins4k3v
+ins6kø
+insle7g
+ins8lega
+in3slo
+in3s2lø
+in5s4ma
+in3sop
+1insp
+in4spa
+in5s4pl
+ins4po
+5instal
+in8s5te.
+ins5ten.
+ins9tens
+3in3s4ti
+in4stin
+4in3s6to
+in5stra
+inst5rel
+5instru
+in6stå
+in7sul
+in2sv
+6in3sy
+8int.
+2in3ta
+inta8la
+4inte.
+5in7teg
+in8t7ege
+in5ter
+int5ess
+in5te4t5
+4in5ti
+inti5me
+int2r
+intran4
+int4rer
+in5tres
+6inu
+inu6i
+i8n9ul8
+in7ut.
+in9u8te
+1inv
+6invev
+iny4i
+iny4t
+6inø
+in7øk
+i7nøt
+in3øv
+4io
+io1a4
+i2ob
+io4dere
+i1off
+io5gn
+io1i
+i1oks
+iol4
+io3le
+iol7jen
+io3mu
+io4nans
+io4narr
+io6n5erst
+ion3g4
+io4nin
+io4nu
+io1pl
+i1opp
+io5ra.
+ior8da
+io1re
+io4rie
+io4r5in
+iorla8ga
+iosk3v
+io1st
+iota6le.
+io3t4e
+io4tra
+i5pap
+ipa4ti.
+i4pee
+ipela9
+i7pe6p
+i1pi
+ipi1e
+ipi9ne
+i4p5ings
+i1pl
+i2ple
+ip4peli
+ippel7s6
+ipp6lan
+ipplæ8re.
+ip2pr
+ipp4s3t
+ippsy8na
+ipp4sø
+ip7pun
+i1pr
+i6pra
+ip5ru
+ipru8te.
+ips1a
+ipse4l
+ipsfø5
+ip2si
+ip2s1k
+ipsle6ge.
+ips1t
+ip6tar
+i5py7
+i3pø
+2ir
+i1ra
+i9r6and
+ir5ark
+i9rast
+ira6tr
+ir5de
+ird5s
+i1re
+ir3eie
+ir6ek
+i3repo
+i3rer
+ire6r5a
+ire7st
+i3ret
+i8reto
+ir7g
+i1ri
+iri4a
+iri8ka.
+ir3ind
+ir3inn
+ir5inst
+iri9t
+ir5ka.
+ir4kat
+ir5ker.
+irke3s6
+ir4kest
+ir4kle
+ir5kv
+irk5ø
+ir4mag
+ir4mal
+ir4mast
+ir9mé
+i5roa
+i1roe
+i4roi
+i1rol
+ir5opp
+iro1s
+ir3re
+ir7sko
+irs2p
+ir3s4t
+irt6
+ir3ta
+irti6g5r
+i1ru
+ir5u4k
+iru8m
+iru7sa.
+i1rø
+i1rå
+ir7å6l
+i1sa
+i4saks
+i4sanb
+i4s3ang
+is3ann
+i4s3ans
+is3ant
+i7sas
+is5aud
+3isbry
+is6cen
+isch5
+is3co
+i5scr
+i2sed
+i4seel
+i4seen
+ise5ern
+i2s2e3g4
+i2sei
+is3eie
+is5eig
+ise5is
+i2sek
+i3sekt
+i4sekte
+i6s7eld
+is4e5li
+i2sem
+ise5ne
+i4seno
+isensi6
+i5ser.
+i5sers
+i2ses
+is5ess
+i4sete
+iset8je
+i2seu
+8isé
+isha7ne
+3ishav
+is4h5in
+ishø9ve
+isi6ene
+is5ild
+i4s3ind
+isis5t
+is7jun
+is9ka.
+is3kal
+is3kar
+isk9art.
+isk5arte
+i8ske
+is5ke.
+is8kee
+is4kel
+isk5els
+iske5s4
+is3kje
+i3skjo
+iskla8ga
+is6k5le
+isk3lo
+isko5g
+is7kogr
+is3kop
+is3kot
+is1kr
+is6k5rin
+is1ku
+is4kul
+i5skula
+is1kv
+is4kvi
+is1l
+i6slu
+isl7ut
+isl9øy.
+i5smak
+is4med
+ismo5e
+i6smus
+is5ne
+is5nu
+1isol
+6isold
+5isomo
+is5omr
+iso3pa
+iso5pe
+iso7pr
+3isot
+is1ov
+is1p
+is4pan
+is5pane.
+is6pis
+is7pru
+is4ses
+is5si
+issis5
+is6s7kj
+is4sko
+is7skr
+is5sky
+is4skå
+is5sok
+is7sto
+is6sve
+is5svo
+is9s4ær
+is4søk
+i5stab
+ista9le
+is5tane
+is5tap
+i4s5tar
+ist5avb
+ist7avi
+i2ste
+is5te.
+is4tek
+ist5ekt
+istel5l
+iste6ma.
+ist6en
+is5ten.
+is5tene
+is5ter.
+is5tern
+is6terø
+is6té
+is4tik
+is5tilb
+is5tis
+is3tok
+is3tol
+i2str
+i8s8tre.
+i4st5ren
+i5strer
+i6strer.
+i4stres
+i6stret
+is3try
+is3tus
+6isu
+is5uf
+is5ul
+is1un
+is1v
+is4vak
+is7w
+isy8na
+isy5r
+is5yt
+i2s1øk
+i4søy
+is7åk
+is3år
+i1ta
+ita4l3a
+ita6l5ers
+ita4lo
+ita4ly
+i6tang
+itan7s6v
+itau4
+i4tav
+i4tec
+i2teg
+ite8ke.
+i7teky
+i6t7elg
+i4teni
+i2teo
+ite3re
+i4tero
+iter6s5
+i4te5ru
+i2te1s
+ite6se.
+itet6s5
+i1té
+it2i
+iti6er.
+i4ties
+i2tif
+i4tikam
+i4ti3kv
+iti5me
+i2tio
+i2tip
+iti3r
+i4tisa
+i4tisen
+i4tisi
+i4tisj
+i4tisko
+i4ti3sp
+i4tist
+iti5str
+i2tiu
+itiv4
+itivs5
+it7jaran
+it7jer
+it7ji
+itma6le.
+itnes4s
+i1to
+ito9a
+i4tom
+it5ord
+ito4s
+itostra6
+ito8v
+i1tr
+i4tra.
+i6trae
+it3rel
+it3ren
+it5rim
+itri8ma
+it3rin
+i5tris
+it7ro6s
+it1sa
+it4s3ei
+it3ser
+it6ses
+it5sku
+itsla8ga
+it1sn
+it6sti
+it3sun
+it4tag
+it6tak
+it4tal
+itta9la
+it6tann
+it6tap
+it4t5at
+it5ted
+itte4l5o
+it4tenk
+itte5s4
+itt5ett
+it4tid
+it4til
+it4tj
+itt1o
+it6tof
+it7ton
+it4tr
+itt5skr
+itt4sø
+it4ty
+it7tys
+i1tu
+itu5e
+itær1
+i1tø
+i5tå9
+i1u
+iu6a
+iu2b
+i5u6l
+i5um.
+ium4f5ar
+iu2m1i
+ium5m
+iu4mo
+i6umse
+i4um5s4t
+i4umsu
+iu2n
+iu8p
+i2ur
+iu5se
+4i1va
+i4vad
+i6vaj
+i4v3aks
+i5val
+iva6la.
+i4vana
+i4v5ank
+i4varb
+ivar5s6
+i4v5ass
+ivat3t
+i1ve
+i2veg
+ive6ge
+iv5eg6n
+i4vei
+iv7eig
+i2vek
+ive4ra
+ive5ras
+iver5d
+i6veret
+i4vesk
+i4vesti
+i6vesv
+i6vetø
+i2vev
+i1vé
+i1vi
+iv5ins
+iv5is.
+iv5isb
+ivle6ge.
+iv3n
+i1vo
+iv7om
+iv3r
+iv4sal
+iv2si
+iv2sk
+iv2sl
+iv2sn
+iv4so
+ivs5v
+i2v3un
+iv7y
+ivyr8ke.
+i9væ
+iv7åpn
+i1wa
+iwi5
+i5wie6
+i5y
+iyr8ke.
+i5za.
+i7zas
+i4ze
+i1zo
+i1ø
+i1ø4k
+i1ør.
+iør5i
+iør5s
+i4øs
+iø3se
+i1øy
+i1å4
+iårs7l
+iåt4te.
+ja1ak
+ja9ar
+ja4da
+1jae
+ja7en
+5jag.
+ja4ga.
+ja7gar
+ja4ge.
+jag6r
+ja4ha
+ja4hv
+ja4j
+jak4kel
+jak7kele
+jak4ko
+jakk5s4
+ja1k8r
+ja8kre
+jaktel
+ja7ku
+ja3lo
+ja1lu
+jam7b
+6jambi
+jamhø8ve.
+5jamm
+jams2
+jan4gr
+j5anl
+ja6ra.
+ja6r5ap
+ja9rek
+jarn3s4
+jar5ta
+jar5te.
+jar5tet.
+jar7ti
+6jarø
+ja6rå
+ja7se
+ja8ski
+ja5sti
+ja5ta
+jau4ere
+ja9vi
+1jaz
+j1b
+2jd
+j2e
+2je1a2
+je5ak
+2jeb
+jeb9b
+je4deb
+6je4dek
+4jedr
+jeep1
+6jeev
+2jef
+je4f3et
+je2fj
+jef5lag
+je4f3re
+jef4sa
+jef6s5i
+jef3t4r
+je5ge
+jeg5ge
+6jegl
+jeg6les
+4jego
+4jegr
+4jegy
+2jeh
+je1i
+je5i8s
+4jej
+2jeka
+jek6keru
+4jekl
+je4kli
+2jeko
+jekt3a
+jek4tan
+jek6tes
+jekt5ev
+jek4t5in
+jek4t3r
+jekts4t
+4jekø
+2jel
+je6legr
+jelei7er
+je7lele
+je4les
+jel7ge
+jel6lag
+jell5ang
+jel5len
+jel4lo
+jelt3
+jel4tr
+jel9ut
+jel7va.
+2jem
+je4mia
+je4mit
+jemp6
+jem5pl
+jem5se
+jem4sti
+2je7na
+jen1d
+4jendr
+je3ne.
+je7ne8s
+4jenet
+jen5ged
+jeng5s4
+2jeni
+jen3k
+4jenl
+4jeno
+4jenu
+je2n1y4
+4jenæ
+2je5o4
+2jep
+je3raf
+je4r5ant
+jer4dep
+jerd6s
+je3r6e
+4jered
+6jereg
+6jerei
+6jerenn
+je5rik
+je6rim
+je6rinæ
+jer4kes
+jer6k5l
+jer4kv
+jerle7
+jer6mu
+jer6n5as
+jern5sl
+je6ron
+jer4sp
+jert5s
+4je1ru
+6jerå
+5jesf
+5jesh
+jes4kil
+2je3sp
+jes4tea
+je6stim
+je3str
+5jesut
+je5sve
+je4t3ag
+jeta6ka
+je9tar.
+je7tara
+je9tare
+je4t3ru
+jets2
+jet4t5an
+jet6term
+jett3o
+jett5s6
+je4t3v
+jety8e
+2jeu6
+4jev6a
+je7vark
+je6vas
+4jeve
+jevi4s
+jev7na.
+jev7ne
+6jeø
+j1f
+4jg
+j1h
+4ji.
+jib5b
+ji7e6
+6jik
+2j3inf
+ji7ro
+ji6sj
+4jiø
+2j1k
+j4kap
+6j1l
+6j1m
+6j1n
+6jn.
+j5ni
+j2o
+1job
+5joc
+jo4da.
+jo6dat
+jo6dis
+jo4fl
+jok9ker
+jokk9o8
+jol5t6
+j3omr
+jon2
+jo5ne
+jon7n
+jons1
+jons5a
+jonse4
+jons3p
+jons5t
+jon6sti
+jon4str
+jonsu4
+4jop
+jo5ra
+jor6dek
+jor6d7erv
+jor6d7is.
+jor4d3o
+jord3r
+jord5s
+jords4l
+jor6du
+jo1re
+jo4rie
+jort6a
+jor5tet
+jo3r4u
+2jos
+jo3se
+jo4ses
+jo5stei
+1jou
+jour5
+j1p
+4j1r
+2j3s2
+j1t
+ju8are
+1jub
+jubi3
+ju9bo
+ju3de
+ju2do
+ju7doe
+jue7ni
+ju4e5re
+jue9s
+jug9le
+5jugo
+4ju2k
+ju3ka
+ju3ke.
+ju3ken
+juk9sar
+ju2l
+ju3la.
+ju5lar
+ju5las
+ju8l9ei
+ju4li.
+ju6lid
+ju4lik
+jul7inn
+jull6
+1jung
+jun7ge
+j6u6ni
+8jup
+jup7s
+ju6p5å6
+ju4ra
+ju7ras
+3juris
+ju9ro
+ju3ru
+5jury
+1jus
+ju5so5
+ju1ta
+jut5o
+ju6va.
+ju6vak
+ju1å
+j5v
+jy1
+jy8de.
+jy2p3
+jæ5le.
+jæ3ra.
+jæ9ran
+jæ9res.
+jæ7te.
+j2ø
+1jø.
+1jøa.
+jø5b4
+1jøe
+2jøef
+4jøeg
+6jøei
+2jøek
+4jøend
+4jøeng
+4jøeta
+jø1f
+jø3gr
+jø9kj
+4jøl
+jø4les
+jøl6ver
+jø5me
+jøn5ne
+jø5pa
+jør4kel
+jør4sp
+jørs5v
+jør4tel
+jø3ru
+jør7ut
+jø1rø
+jø4ses
+jøst2
+jø5ta
+jø6t7av
+jø3te.
+jøte4t
+jøt5eta
+jø1tr
+jøtte4
+4jø1v
+jø4vel
+2jå
+jå5ar.
+jå9ge.
+jå6la.
+jå4le.
+jå7les
+jå5let
+1ka.
+2kaa
+5kaa.
+5ka4an4
+k3aas
+ka3at
+6kabes
+ka7bo
+4ka1br
+4kaby
+ka3da
+6kadale
+ka5del
+ka6del.
+ka4deri
+4kadg
+kadi7e
+2kadr
+5kadu
+4kady
+3kaen
+ka3fe
+kaf5fere
+2kafo
+ka9fr
+2kaft
+kaf5ta
+6kafø
+2kag
+k5a4gi
+kag2r
+2kah
+ka5isk
+ka5ism
+6kajo
+ka4ka.
+ka4ke.
+ka4ked
+ka4kel
+ka4kes
+ka4ki.
+ka4kis
+6k5aksj
+4kakt
+ka3ku
+ka3lam
+ka3lan
+ka6lant
+ka3las
+kald5s
+5kaldt
+kal2e
+3kalen
+ka5lev
+5kalis
+k6alk
+5kalky
+kal7la
+kal6lero
+kall4s
+ka1lo
+kal3p
+kal7s6v
+kal4ves
+1kam
+ka6ma.
+ka8me.
+4kameri
+4kammel
+kam4p3i
+kam4pr
+7kamu
+1kana
+ka8na.
+4kanda
+kan6da.
+5k6ande.
+1kane
+ka5ner
+kan4i
+ka5nin
+2k1anl
+4k1anm
+k3anno
+5kano
+ka4no.
+ka8nom
+4kansa
+6kansi
+3kansl
+1kant
+kan6t7end
+kan6t9r
+2kap.
+5kapad
+ka4pak
+3kapas
+ka5pe
+5kapell
+4kapen
+3kapit
+1kapp
+kap3re
+kap4s3t
+1kar.
+1kara
+4karab
+4karam
+karan5
+ka3rav
+1karb
+4karbei
+4karea
+ka6rek
+ka5rel
+1karf
+5karg
+ka4ri.
+ka6rid
+6k3arki
+6k5arkt
+1karm
+kar3n
+ka3rol
+kar3om
+kar5pes
+karp3s
+3karri
+7karsj
+kars4t
+1kart
+kar5ti
+5karu
+4karå
+1kas
+7kas.
+ka5se4i
+ka3sek
+kas5ev
+kas2ju
+6kasjø
+ka4sk
+kas3ka
+kasko5
+6kasp
+ka4spi
+kass6
+kas6sad
+kas4sak
+4k3assi
+kas4so
+ka4st
+8kas5to
+kas2t3r
+1ka7t6a
+ka3ted
+3kateg
+ka3tet
+ka1to
+ka4t5op
+4ka1t4r
+kat7s
+kat5ta
+kat4tel
+kat6term
+katte5s
+kat4til
+kat4tri
+ka4t5y
+k7au4r
+2kav
+ka7ves
+k9avis
+kav8l9u
+9kay
+6k1b4
+2kc
+k5ce
+kcen4
+2k1d
+k5d6v
+1ke
+2ke1a8
+ke9al
+2keb
+4kebr
+4kebuk
+4kec
+ked4
+ke5da
+4kedag
+4kedal
+5kedan.
+9kedant
+ke5de
+6kedei
+4kedem
+4kedes
+7kedes.
+2kedi
+2ke5dr
+ked8sk
+kedu6
+4kedy
+2kedø
+2keeg
+2keek
+2keel
+ke4ep
+ke7ern
+2keev
+4kef
+k3eff
+k5eft
+2ke1g
+k3egg
+keg8ga
+5kegladh
+ke5h
+3kehet
+4kehj
+2kei
+k3ei2d
+k1eig
+ke5il
+ke1im
+k6e1in
+keis2
+2kej
+2kek
+kek2l
+ke3kn
+k1eks
+k5ek4t
+k6el.
+2kela
+ke3l4ak
+5kelal
+ke6lans
+ke6lat
+kel5eier
+kel5eig
+kel7eik
+kelei8ke.
+6keleis
+kel3e4l
+4k5elem
+4keleng
+4ke5lep
+4keles
+7k6elet
+4kelev
+keli8e8
+keli9en
+3kelig
+4kelign
+4kelinj
+kel5int
+4kelis
+ke4lise
+5kelit
+4keliv
+kel5l
+4kelof
+6kelov.
+4kelove
+kels4
+kels7kar
+kel5sl
+kel5sp
+kel5st
+kel3sv
+kelsva9
+kel2t
+kelt3e
+6kelua
+4kelue
+kel9uka
+kel5uke
+ke4l3ur
+6keluv
+kel5v
+2kely
+2kelæ
+2kelø
+kelø8pa.
+6ke5l4å
+kelå7re
+2kem
+ke4mit
+5kena.
+6kenam
+ken6ap
+ke4nas
+5kenatts
+ken5de
+6k5en6den
+6k5en4der
+4kend5r
+ke3ne
+4keneb
+4kenek
+4kenel
+4kenem
+6kenett
+4kenev
+3kenf
+ke4ni
+5k6enh
+4ke5niv
+ken3k
+ken7n
+kenne4l3
+ke4nom
+ken1s2
+4k5ense
+kens6t
+ken7te
+ken5t6r
+4k3entu
+6ke3ny
+6kenø
+2keo
+ke3on
+4kep
+5kepi.
+9kepia
+7kepie
+6kepl
+kera7l
+4keram
+ke4ran
+ker5ant
+6kerau
+4kered
+4kereg
+kerei4d
+4kereir
+6kereis
+4kerek
+4ke5rem
+kere6n
+6kerene
+ke6r5eng
+4kerenn
+4kerep
+ke4r5ert
+ke3res
+4keress
+4kerest
+4keresu
+4keret
+5keret.
+5kereta
+7kerets
+3keri
+ke4rif
+6kerik.
+4kerike
+6kerikt
+ke4rim
+ke4rine
+6keringi
+6keringj
+ke4rinæ
+ke4ris
+8kerist.
+8kerista
+6keriste
+3kerm
+7kerop
+5keror
+4ke3ros
+kero6se.
+ke3rot
+k4ert
+ker5to
+ker3t4v
+ker3un
+4kerus
+keru6se.
+kerø6re.
+8ker8øya
+6ker6øye
+2kerå
+5kes.
+4kesam
+9kesam.
+7kesdale
+5kese.
+k5esel
+ke5sil
+4kesit
+2kesj
+k9es8ka.
+4k5eske
+kes8ke.
+4keski
+4keskj
+6keskå
+kesle6ge.
+kes5ped
+5kespot
+5ke4spu
+5kest.
+4ke3sta
+5keste.
+4ke5sted
+4ke5stei
+kes6tem
+4ke5s4ten
+ke3sto
+4kestri
+4ke5stru
+4kestu
+4kestø
+ke4s5un
+kes1v
+2kesy
+kes1å
+2keta
+keta6ka
+keta6le.
+5ketals
+k6etar
+ke3te
+5kete.
+4ketek
+7keth
+2keti
+2ketj
+2keto
+2ket2r
+kets2
+ket6t7enh
+ket8tes
+2ketu
+2kety
+kety6e
+4ketæ
+ketøy6s5
+2ketå
+2keu2
+ke5ur
+2kev
+kev2a
+keva8ne.
+5kevas
+3kevel
+kevi6sa.
+k1evj
+kev6ja
+kev4je.
+k3evn
+kev6ne.
+ke3vr
+kevæ8ra
+ke2yt
+6keæ
+2keø
+2keå
+1ké4
+két5
+2k1f
+k5fi
+4k5g2
+k3ge
+k5gh
+kgu4
+4k1h
+kh5ak
+k4har
+khe4o
+khjul8s
+kh6m
+ki3a2r
+k3ideo
+4kidol
+ki3dr
+k4ie2
+kie5re
+ki6el
+ki3er.
+2kif
+ki5g4
+ki6ka.
+kikk8s9
+ki1k8l
+ki3k2r
+kik4s
+ki8la.
+3kilde
+ki4le.
+ki5li
+4kilj
+kil9ja
+kil6le5st
+ki7loa
+ki4log
+ki3los
+ki4lov
+2kilt
+ki7lå
+ki8ma.
+ki4me.
+5kimo5
+ki4mol
+2k1imp
+kin9and
+ki4nark
+ki5nas.
+6kind
+ki5ne
+ki6ne.
+2kinf
+1king
+king5and
+kin3ge
+kin5ing
+2kinn
+kinnsi8da
+kinnsi8de.
+kinn4sp
+ki2no
+2kins
+kinsi6de.
+2kint
+kinti8me.
+ki6nu
+2kinv
+kio4
+4kiol
+7kios
+2kip
+ki5pe
+ki4p5l
+kip5pe
+kip2s3
+1kir
+ki5re
+ki5ri
+4kirs
+ki3se
+ki5sko
+ki3smu
+ki1s2p
+ki5stav
+ki5str
+ki6ten
+ki7ti
+5kito
+ki4ton
+4kiu
+k6iv
+ki4vek
+ki4v5enh
+ki6vi.
+kiv3s
+kj2
+3k8jan
+kjap5pe
+6k7jarn
+kje7fj
+kje7f6r
+4kjegg
+3kjeld
+kjel7leg
+5kjemas
+3kjemp
+6kjenk
+kje9ny
+kje1s
+kje6t5r
+kjet5t
+6kjor
+kju5le.
+kju5len
+kju9r
+3kjærl
+k5jødi
+1kjøp
+3kjøri
+kjø4tr
+2kk
+k1ka
+k2kab
+kk3aft
+k2k1ak
+k2k3al
+k2kam
+k4kanb
+kk5and
+k8kand.
+k6kanden
+k4k5ang
+k4kann
+k4kao
+k4karb
+k6karg
+k4k7art
+kkar6ta.
+k5kast
+k6kasu
+k6katt
+k2k1au
+kk1av
+k6kedo
+k4kedu
+k2kee
+k2keh
+kk1ei
+k5kel.
+kke6lei
+kk5e4lev
+kkel3t4
+kkelu4
+kke4luk
+kkel5un
+kke6nan
+k5ker.
+k4kerei
+k4kerel
+k6kerent
+k4kerig
+k4kerit
+kke5r6und
+k4kesa
+k5kesau
+k4kese
+k4kesi
+kke3s4l
+k4kesp
+k6kestad
+k4kete
+k5ketet
+k4ketø
+k4k9g2
+k1ki
+kk3ind
+kk3inf
+kk9inn
+kk3ins
+kk3int
+k2kir
+k1kja
+kkjek8
+kk5jent
+k4k5jern
+kkje7t
+kk5ju
+kk5k
+kkla4g
+kk3lan
+kk8lar
+kk7lau
+kk1lo
+kk1ly
+kk3læ
+k4kn
+kk5ne
+kk5ny
+kk6s5v
+k1kod
+k1koe
+k4k1of
+kko6lig
+kk5oml
+kk7oms
+kk9omt
+k6koo
+kk1op
+kko7s
+k4kosi
+k6kosk
+k4kost
+kk3ove
+k4kra
+kk5ram
+kk3rap
+kk3rea
+kk5rei
+kk3ren
+kk3res
+kkri6k
+kk3ro
+kkro8e
+kkro4s
+kk3ru
+kk4rus
+kk7rø
+kk7rå
+kk7s
+kks6al
+kk4sar
+kk5sed
+kk3s4ei
+kk4sin
+kk1sk
+kks4kj
+kks4l
+kk3sla
+kk7sle
+kk5sli
+kk3spe
+kk1s2t
+kks5tak
+kks7tep
+kkst4r
+kk8s7va
+kk5s4å7
+kk3t2
+kk5uk
+k4kuni
+k2k1u6t
+kk1v
+k2kvo
+k1ky6
+kkyl4
+kk5yr
+kk7yt
+k2k1ø
+k8køl
+kkø6r
+kkøy6
+kk1å2
+kl4
+6kl.
+4kla.
+4k5lagt
+2klak
+kla9ke.
+kla4mel
+3k2las
+k7lati
+kla4tr
+kleby7t
+3k4ledd
+kle4deb
+kle4des
+2kleg
+klei9e
+k7leik
+k4leiv
+k2lem
+5k6lem.
+7k4leno
+k6lerik
+kles7j
+kle5sno
+kle4sp
+kle5sti
+kles7s8
+2klet
+8klia
+4klie.
+4klig
+1k2lim2
+3k4lini
+k5linj
+1klip
+4klit
+klon7a8l
+1klos
+2klov
+k3lukt
+4klun
+klun5t
+k5lyd
+6k7lyf
+3k4lyng
+klyse7te
+k2læ
+klæ5res
+klø7na
+k6lør
+6kløs
+klø9va
+klø5ve
+6k1lån
+klå5re
+2k3m
+kmann6
+kmål2
+2k1n2
+3k2nap
+kna5t4re
+kne4b3l
+k4nedi
+5k2nee
+kne8se.
+k4nest
+kn5f
+3k4nip
+knippe6
+kni2t3
+3k2niv
+kno7g
+kno6kl
+5knop
+kno9ta
+kno5te
+3k2nu
+4k3num
+3k2ny
+kny4s
+k2nø
+knø9le
+kn3øy
+9koa.
+4ko1ak
+9koane
+ko7ar
+ko2b3
+ko3bo
+4ko3br
+ko5da
+4kodd
+ko4de.
+3kodek
+5koden
+2kodø
+ko3e
+3koef
+4koek
+4koel
+4koes
+4koev
+ko4g5eng
+kog9ger
+kog3l
+ko4gre
+kogst6
+ko4gu
+ko6gå
+2koi
+koi4e5ne
+ko7i6k
+ko1in
+2koj
+ko8ja.
+ko4ka.
+ko4kab
+ko4ke.
+ko6kel
+ko1ki
+kokk6o
+k3okku
+4kok4l
+4koko
+2koku
+kolba5
+2kole
+ko4leg
+ko4lei
+ko6lel
+ko4let
+ko4leu
+3kolle
+ko5lo.
+kol5p
+4koly
+2kolå
+1kom
+ko4ma.
+4komaf
+ko4me.
+6komg
+ko4mi.
+4komil
+4komisb
+ko4mise
+2komr
+4komse
+kom3sl
+kom5so
+kom4st
+4kom5t
+4komu
+4komå
+k6on
+ko4na.
+kon3d
+kon6dr
+kone5l6å
+4koniv
+kon3s2
+kon6s7v
+kon6ton
+ko4nu
+1ko1o
+4koom
+ko5pa
+ko5pers
+4kopet
+ko4pi.
+ko4pip
+ko4p9l
+4kopo
+kop5per
+2kopr
+ko1ra
+ko4ra.
+kor6da.
+kor4d3o
+kord5s4ø
+kor4du
+ko1r6e
+6koref
+4ko7rei9
+ko5rem
+ko7ret
+ko3ri
+ko6rik
+4korm
+ko5rol
+6korpa
+6korpe
+1kor3r
+kor4sal
+kor6s5inn
+kor4s5l
+kor6str
+kor4sv
+kor5tes
+kor6top
+kor4t5r
+kort5s4
+ko5ru
+ko6rume
+1kos
+2kosa
+ko6sa.
+ko4sed
+ko4sek
+5kosele
+ko5sen
+ko4ses
+ko9si
+kosi9d
+ko2sk
+ko1sl
+4kosmu
+2koso
+2ko1s2p
+ko6sta
+kost7as
+kos6t5ers
+kost5j
+4kosø
+kotes7
+ko5t4i
+4kotil
+4kotr
+ko6tre
+kot2s
+kots5tr
+kot4ti
+kott4s
+kotts5t
+4koty
+2kou4
+kout3
+kou7ta
+ko1va
+kover7e
+4kovr
+1kov4s3
+4koø
+4koå
+6k1p
+kr6
+k3rad
+1k4raf
+5krag
+3krakk
+krani6e7n
+6krank
+3krans
+4krap
+kra9se
+7k8ra4sj
+kras5s
+kra4to
+kra4u
+1krav
+4kred.
+3kredi
+4k1reg
+kregi3
+4krei
+krei9e
+krei5s
+6krek
+kre4kli
+2krel
+k5rela
+4k3renn
+4krent
+6kreo
+k5repr
+5kreps
+5kresj
+4k3ress
+kreta9
+6k7retn
+k4rets
+k3rett
+2krib
+4krif
+7k6rig
+krig6s5
+kri9ga
+4krik
+kri5ke
+kri4kj
+krik6ka
+1krim
+kri4me
+3k6rins
+krin6s7t
+kri2p
+1k2ris
+7krisene
+k2rit
+3krite
+6kriv
+k2ro
+kro5b4
+kro5de
+k3rofo
+k4rofor
+krok7k
+k6roni
+k5ronl
+kro4nom
+k4rop
+krop9n
+kropp4
+k4rost
+kro9t8e
+kroten9
+kro3v
+kru3i4
+krum3
+kru5sa
+krutt5i
+kru3tr
+2k5ryg
+kry7pa
+kry5pe
+kry4pi
+3krys
+krø5ke
+6k5rør
+krø3v
+4kråd
+krå8da
+kråe6
+5kråk
+krå5le
+krå9m
+krå7ne
+k1sa
+k3sa.
+k2s3ad
+ks3alt
+ksa5me
+k3sane
+k4sans
+k4s3ant
+k3sar.
+k7sara
+k6s3ark
+k7sas
+k1sc
+k2sed
+k2see
+kse6ge
+k2s1ei
+k5sekt
+k5sela
+kse5lev
+ksen5to
+k4serf
+ks3erk
+k5serol
+k4sesa
+k4ses6k
+k4se3sm
+k5seso
+kses4p
+k5sess
+kses6sel
+kses8serie
+kses4sp
+kses4st
+kse6te.
+ksfø4
+k5sia
+k2sif
+ksi5ko
+ks3ind
+k3sing
+ksi7ni
+ks3inn
+k4s3ins
+k7sio
+ksi3st
+k4siti
+ks9kab
+k6s3kal
+k6skio
+ks1kj
+ks5kl
+ksko7na
+ksko5ne
+ks1kr
+ksk8u
+ks9ku.
+ks7kua
+ks8kut
+ks1k6v
+ks1l
+ksla8ga.
+ks5lo
+k7s6lu
+k8s7lug
+ks5løs
+kslø8va
+kslø8ve.
+k5s4mak
+ks4mel
+ksmå
+k5s4no
+k7s8nø
+k1so
+k6s7oa
+k6sod
+k4sog
+k4somb
+k2s1or
+k2sot
+ks1ov
+k3spal
+ks3pek
+ks5pio
+ks3pir
+kspor6t5r
+6k6s5pors
+ks1pr
+k8sr
+k3spy
+kss6
+ks3sm
+k5stad
+k4stak
+ks3tal
+ks5tant
+k7s8vak
+ks6tav
+kste4da
+ks4teg
+k3stei
+k4stek
+kst3ev
+kstev6ne.
+ks4til
+k4stin
+ks1tj
+ks1tr
+kst6ran
+ks4t5rek
+k6stren
+k6strer
+ks4tri
+ks4tro
+ks9tum
+k5stus
+ks3tyv
+k2stå
+k1su
+k6sun
+ks1v
+k9s8vake
+ksva8ne.
+ks5veg
+k7s6vert
+k5s4vin
+ks5w
+ksy8na
+ksy8s7m
+ks5ær
+ksø4ke.
+k6s3øl
+ks1å
+k3så.
+k4såp
+ksår4
+ksåt4
+6k1t
+k5ta.
+kta7f6
+k4tag
+kta6ka
+k4t3aks
+k4takt
+kta6la.
+k4t3ana
+kta9na.
+kt3anl
+k4t3ann
+k4tanv
+kt3app
+k9tar.
+k4t3arr
+k4t3art
+k6tass
+k5tast
+k6t7atl
+kt5avh
+kt5avk
+k6t3avl
+k3ted
+k4teda
+k6tee
+k4tefø
+kt5e4ge
+k2te5i
+k6teka
+kte5le
+k6t5elsk
+kt5e4lit
+ktem8
+kt7emn
+k4t3enh
+k9ter.
+kterie5n
+kterie7ns
+kter5s6
+k7tes.
+k6tesa
+k6tese
+kt5eske
+ktes6ke.
+kt5esti
+k4t5e4ta
+k4tete
+kt5evn
+ktev6ne.
+k5tib
+k3til
+k4t3ins
+k5tir
+ktis5t
+kt7i6te
+kti6v7end
+k2tja
+kt7ju
+kto9a
+kt5off
+k6togram
+k4toli
+k2tom
+kt5omf
+k2t1op
+k9tor.
+k7tora
+kt5ord.
+k5tore
+ktori9e8
+ktor7s
+kt1ov
+kt3ral
+k2t1re
+kt2ro
+ktro5s
+k2t1ru
+kt4s5amb
+kts5ar
+kt5sek
+kt7sem
+kt4s5er
+kt6sin
+kts5kra
+kt5sku
+kts4kv
+ktsle6ge.
+kt6sok
+kt4spa
+kt5spre
+kt4sta
+kts6ton
+kts5top
+kt4stå
+kt3t8
+ktu9er.
+k4tuk
+kt7und
+k2t1ut
+kt7yrk
+ktyr8ke.
+ktør7
+ktør8e
+k6t5øs
+kt1øv
+k2t3år
+ku2a
+ku9an
+ku4be.
+ku3bj
+2kud
+ku4dal
+ku4er.
+kue4r5a
+ku4et
+6kuf
+ku4f3l
+6kug
+k5u4gr
+ku7is
+kuit6
+6kuldi
+kuld3r
+ku4led
+ku4leg
+ku6lei
+ku4lem
+ku5len
+ku4let
+ku4lev
+ku5li
+ku6li.
+3kull
+1kult
+ku4man
+kumen6tal
+ku6mi
+kum2s
+3kumu
+1kun
+kund5s6l
+2k1ung
+kun4ge.
+k6unn
+ku4o
+1kup
+ku4pe.
+kup4pl
+ku7ra
+ku4rek
+ku8r7o
+ku7r6op
+kuro8pa
+1kurs
+kur6sk
+kur4sp
+kur4s3t
+kurs3v
+kur3t
+ku5ru6
+kuru9ken
+kuru7ker
+1kurv
+kur4v3i
+1kus
+5kus.
+ku7sa.
+kus5a6k
+kus5ar
+5kuse
+ku4s5el
+ku4ska
+ku7s6pe
+kus3t
+6k1ut.
+ku1ta
+4ku5te.
+ku5to
+ku6t7r
+2kuts
+1kuu8
+kuøy6
+kv2
+kva8ke
+k4vali
+k6vard
+kvari6e5n
+5k6vart
+kva9se
+kve3d2
+kve7e
+k6veil
+kvei9se
+1k4vel
+kve5la
+4k3verd
+5kvern
+kverns8
+2kves
+kves5t
+7k6via
+4kvid
+3k4vie
+kvi4ene
+kvi5er
+kvi7la
+3kvinn
+kvi5se
+7kvist
+2kviv
+1kvo
+k1vog
+6kvok
+k4vot
+k2vu
+4k3væ
+k1vå
+k7we
+k5wu
+ky5a
+ky6el
+4kyf
+kyf5le
+2kyg
+ky4leg
+2k3yns
+kyn6skjer
+ky2p1
+ky4p5r
+1kyr
+kyrie5ne
+kyr8ke.
+ky8sa
+4kyse
+ky6se.
+kyse8te.
+ky3skr
+kys6sk
+1ky4st
+kyst3a
+kys4tel
+2kyt
+ky6ta.
+kyte3s
+k1æt3
+1kø.
+kø2ar
+1køe
+kø4en.
+kø2er
+6k1øk
+kø4le
+k1øn
+køn6skjer
+k3ørr
+køs4
+kø5se
+køy7ar.
+k7øyd
+køy4e5ne
+1k6øyr
+4kåke
+kå3le
+kån8da
+kå5ne
+kå4pe.
+kå7pen
+kå9ras
+kå1re
+kå1ri
+kå2t5
+k5åt6t
+1la.
+2laa
+la1b
+4laba
+la6bl
+1labo
+2l3abon
+4laby
+4lad.
+l6ade
+la4dem
+4ladg
+ladi9e8
+2ladm
+2ladr
+lad3s4
+1lae
+2laei
+4laent
+4laep
+2laf
+la3fl
+4lagg
+lagi4
+6lagne
+la2go8
+lag5om
+la2g1r
+lag5san
+lag4sj
+2laha
+2la1in
+la5ka
+la4ke.
+4lakj
+l2akk
+la2kr
+l7aksj
+l5aksl
+4lakt
+lakterie6
+la5kø
+2lal
+l1alk
+la5mab
+4lamb
+la4mes
+la4met
+la3mo
+l8a8mu
+4l3anal
+lan2c
+lan6das
+lan6deb
+land3r
+l6a3ne
+3lane.
+4lanet
+lan6gel
+lan4gem
+lan6germ
+lan4gr
+lang3s4
+lang4s5e
+lan6g5ø6
+4lanl
+4lann
+l3anno
+la4nor
+6l5ansi
+lan5ti
+4lanv
+l3anvi
+2lao
+la6pal
+la7pi
+la8pl
+lap5sa
+lap5sen
+lap5s4i
+1l8ar.
+6l7arab
+2larb
+l8are.
+4l7area
+la9red
+la5rem
+l6aren.
+4larena
+lare6t
+la6r7eta
+5larf
+la7ria
+lariar
+lari6e7n
+4l3arki
+l2arm
+lar3n
+6l7arr
+4lart
+lar6ta.
+lar7vet
+la6sc
+la5se
+lasi9e
+la2sk
+7laskj
+4lasm
+la5smi
+4la4sp
+las6sak
+las6sam
+las6sat
+las6sel
+l6ast
+4lastr
+las3v
+la1ta
+lat5ang
+6latau
+la4teg
+lat6ek
+la4teno
+late5s4
+la5ti
+la6ti.
+4latm
+la1to
+lat7ra.
+lat9ran
+lat5rar
+lat4t5is
+lat4tra
+latt6u
+lau7a
+2laud
+laue6
+4laun
+4laur
+lau7se
+lau6st
+2laut
+2lav
+la4v5al
+la4vel
+l5avh
+lav5inn
+6lavs
+7lavå
+1law
+la6y5
+2l1b2
+lba3de
+lba4k
+lba5ke.
+lba4ne.
+l5be
+lbe9na
+lbe8re.
+l4boa
+l6buh
+lby4e
+l5bå
+2l1c
+l4ce.
+6ld
+l7da.
+ld5aks
+ld5akt
+l9dand
+lda6t5o
+lda6t5y
+l2deb
+l5den
+l2de5o
+l2dep
+l3der
+l7der.
+lder7a
+l4derek
+l6derik
+l6derklæ
+lderle9g
+lder5s6te
+lder6s5ti
+l4desh
+l6destr
+l9dé
+ldis7k
+ldo9a
+l8d5oks
+l2dol
+l4dore
+ld5ovn
+l3drak
+ld3ran
+ld5ras
+l6dre.
+ld7regn
+ld5rer.
+l8dres.
+ld1ri
+l7dry
+ld1rø
+ldse8
+ld4sek
+ld4sel
+ld4ses
+lds1k
+ld4ska
+lds4kj
+ldsla8ga
+lds6leg
+lds4let
+ld4s9m
+ld5s4om
+lds3tr
+ld6tus
+ldø2
+ldø5d
+ldø5l
+ld7øy
+1le
+2lea
+le7ag
+le3ak
+le1al
+lea5la
+3leas
+le5at
+2leb
+le4bem
+le6bosta
+5lebæk
+lec4
+2leda
+5ledar
+led4dø
+4ledeb
+le4dem
+6ledep
+le5der
+le3des
+2ledo
+3ledop
+5ledov
+le4dro
+le5dry
+led1s2
+6ledu
+4ledy
+2ledø
+4le3då
+2lee
+6leei
+6lefa
+lefa6ne.
+4l1eff
+2lefi
+4lefl
+4lefor
+4lefot
+2lefr
+l1eft
+6lefy
+4lefø
+6legap
+5legas
+3lege
+le4ged
+le9gen
+le4gera
+le9geran
+le9geras
+le4gero
+le4geta
+le4gev
+7leggi
+le3gi
+6legif
+4legj
+2le1g2l
+le4gol
+4legre
+leg3s4
+2legu
+2legå
+2leh
+6lehal
+6lehamr
+6lehan
+6lehau
+6lehave
+le3ido
+l6eie.
+lei5ende
+lei4e5ne
+l6ei8et
+leig6d
+lei4ger
+lei7ger.
+lei4get
+leig4h5
+leig6na
+leig8ne
+2lein
+le3int
+lei6r7u
+leis7t
+l6eit
+2lej
+2leka
+le4ka.
+6lekan
+lek6e
+le3ki
+2lekj
+lekk7s
+2lek2l
+2lekn
+lek4na
+2leko
+2lekr
+4l3ekso
+4leksp
+lekt5ord
+lekt4s5t
+2leku
+2lekv
+4lekø
+4lekå
+2le3la
+8l9eld
+2lele
+l3elem
+4l5elg
+5lelig
+2lelo
+3lels
+4l3elsk
+le1lu
+4leluk
+l5elv
+2lely
+4lelæ
+2lelø
+lelø6pa
+4lema
+le3me
+le8me.
+4lemet
+8lemetrisk
+8l9emn
+lem8na
+2lemo
+lem9ped
+lem5pes
+3lemr
+lem4si
+lem4s5ø
+2lemt
+lem5ti
+2lemu
+6lemy
+4lemø
+2lemå
+le4na.
+le4nal
+4lenav
+lend8a
+len9dan
+6lenden
+l6endre
+4lendri
+4lened
+4lenem
+4lenev
+l4engd
+len4g5r
+leng9u
+le5ni
+4leniv
+lensa4
+len4s5ak
+4lensem
+len5ses
+len4sta
+len4tam
+len4tr
+len8t9ra
+2lenø
+4lenå
+2leo
+5leol
+2lep
+le5pa
+le4pel
+le8p9enden
+le2p3j
+le8pla.
+le4ple
+4lepo
+4leraba
+4leram
+le2r3amb
+ler5d
+l8ere
+le9re.
+6lerea
+4leref
+4lereg
+4le9r8ei
+4lerek
+le5res
+4lereso
+4leresu
+4leret
+4lerev
+9leri.
+7lerie
+le6riei
+le7rina
+le4riv
+4l5ernæ
+le5ro.
+4lerom
+6lerope
+le3ros
+4le3rot
+7lers.
+lers4p
+ler7te
+le1ru
+4lerus
+leru8se.
+2lery
+5leryr
+2lerø
+2lerå
+5l6es.
+le4sab
+4lesam
+7lesar
+4lesau
+2lesc
+le5sed
+le4seg
+4lesek
+le5sen
+le3ser
+4leset
+4lesho
+le6si.
+4lesig
+le7sing
+les5inn
+4lesit
+4lesju
+le7skap
+le4s3kj
+6leskol
+le6sk9u8t
+4lesla
+2lesp
+6lespal
+les3s6
+lesse6ne.
+4lesta
+9lesta.
+7lestal
+le5sted
+le5steg
+le5stel
+le4stim
+le3sto
+4lestrø
+4lestyr
+4lestø
+4lestå
+4lesug
+les1v
+le5s6vi
+4le5sy
+4lesø
+5lesøy
+3let.
+le4tab
+6letak
+leta8ka
+leta8le.
+l5e4tas
+5lete.
+6letea
+4leteg
+4letek
+le5ten
+6letenk
+6le7tep
+le5ter.
+4letes
+2le3ti
+l5e4tik
+2letj
+2leto
+2let2r
+le7tre
+le5t4ri
+3lets
+let6sj
+lets8k
+let6tea
+let6tr
+lett3s4
+2letu
+le4tv
+2lety
+lety8e
+4letø
+8letå
+4leul
+2leun
+l1eur
+2leut
+le4ute
+2lev.
+le6vad
+le6valu
+le4ved
+4leveg
+4levei
+4levek
+6levern
+4le4vev
+levi6d
+lev5n
+2levo
+lev1r
+4levs
+4levæ
+lex1
+4leø
+2leå
+5lée
+1lér
+7lét.
+7lè
+5lê
+4l1f
+l4fa.
+lf5ant
+l5far
+l5fe
+lf3f
+l5fig
+l5f6in
+lf5ja
+l7fje
+l6f3nul
+l4fom
+l4fut
+2lg
+l6gaf
+lga8le.
+l4g5alt
+l4g3ana
+lga5t
+lga4ve.
+l2ged
+l4gela
+l4gele
+l2gem
+lge3na
+lge4r5an
+lge4rap
+lge5ri
+lger5un
+l4gery
+l4gesl
+l6ge7sp
+lg5g
+lgie8n
+lg1lo
+lg5ly
+lg5n
+lg3ob
+lgo2d
+lg1ok
+lg1om
+lg5ov
+lg3ref
+lgr9øy
+lg3s2e
+lg2sk
+lg5s4kre
+lgsle9g
+lg5s4tr
+lgu4l
+lg3un
+lg3ur
+l1gæ
+lg5ø
+l6gå.
+lg5år.
+lgå8va
+lgå8ve.
+8l1h
+lha8ka.
+lhav6s5
+l5hj
+1li
+li1a
+li4ala
+li2am
+li5ans
+li4as
+liba5
+libe5ro
+libi5
+libie6
+liby5e
+li4dak
+li4ded
+li4do.
+2l1idr
+lid3t
+li4ene
+li3er.
+li5ers.
+lie5s
+3lif
+4lifat
+lif5f
+3lig
+li4ga.
+li4g3an
+li4gar
+lig9art
+li8gas.
+li4g5enh
+li4get
+5lign
+li4g3re
+lig3se
+lig3s4i
+lig3sl
+lig3s4p
+lig5s4ti
+lig5str
+li2gu
+4lih
+li5kan
+li9kar
+li7kas
+li5kee
+li3ken
+li5keså
+li9ki
+likk3o
+li1k2l
+9likn
+liks4t
+li5ku
+6lila
+8l5ild
+li3le
+lil5lebe
+lil5let
+li4mar
+li4mas
+li6mate
+l6ime
+li4me.
+4limh
+limp3r
+lim7r
+lim9u
+li4na.
+4lina6l
+lin6c
+linch5
+5l4indr
+4lindu
+lind3s4
+l5indus
+li4ne.
+li3ne6a
+li6nem
+2l1inf
+lin4g3j
+ling5l
+ling7sen.
+5lingv
+4l5inju
+lin5kes
+lin5kle
+lin4kv
+2l1inn
+lin5net
+3linni
+6linns
+6l5inntr
+li4nor
+l4inse
+5linsk
+4l3inst
+4lint
+2linv
+li6n5ø6
+lio4no
+lion5sp
+lion5sv
+li5o6s
+2lip
+lipes4
+lipp4s3
+li9rar
+li4rek
+4lisak
+li5set
+lis4kl
+2liso
+4lisp
+lis6sp
+lis7tan
+lis6terk
+lis5ti
+4lis6til
+list3o
+li6s8tr
+list7rø
+lis4t3u4
+li4st5y
+listyr8ke.
+li4tee
+li4tek
+li4ti3a
+li4tid
+li4tig
+li4til
+li4tim
+liti5st
+li4tiv
+lit5j
+6litn
+li5to
+li2t1r
+lit5rer
+lit6tele
+lit6terk
+lit6term
+litt5s6
+li5ty
+7liu
+li6va.
+li4v3ak
+liv5eg
+livi5e
+liv2s3
+2lj
+l1jan
+l1jar
+l4jarb
+ljar5s6
+ljas4
+l4jed
+l6jee
+l2jei
+l2jek
+lje3l
+lj9elv
+l1jen
+l3jer.
+l4je1s
+l5jes.
+ljes4t
+l5jet.
+l4jete
+l5jete.
+l6je5t6r
+l2jev
+l5jé
+l1ji
+3l2jod
+ljo8e
+l4jom
+lj5ori
+3ljos
+lj5un
+l7jur
+lj7ut
+ljø3
+l5jøs.
+6l1k
+l3ka
+l5ka6l
+lkali9e8
+lk4an
+l6k5b
+lk4e
+l3ke.
+l2ked
+l5kedal
+l3kede
+lkeei4
+l6keh
+l5keleg
+l3ken
+l7ker.
+l4kera
+l4keri
+l4k5ers
+l4ke3ru
+l5kestad
+l5ket.
+l5kets
+lk2l
+lk4li
+l5k4lu
+l6k5nin
+l6ko.
+lko9ma
+lko9sa
+l2kot
+lkras5
+lk5ri6k
+lk4ser
+l4k3s2h
+lk1s4t
+lku4le.
+lku8t
+lk9ute
+l6kveg
+lkå1
+2l1l
+l5la6a
+ll6a5f
+l2lak
+ll1al
+l4lami
+l5lane
+ll3anl
+l4l5ano
+llans4
+ll5ansk
+ll7apa
+llap3s
+ll4as
+ll5asp
+ll5aur
+llau6re
+ll7avl
+ll5avr
+ll3d2
+lle5a
+l5leak
+lle8da.
+lle4d3r
+l3lee
+l2lef
+lle5gev
+lle5gr
+l5leha
+l5leho
+l5lehå
+l4l5eig
+l4leki
+l6l5ekst
+l4leli
+l2lem
+llen6da.
+ll5enden
+l4lendr
+l6lendt
+l4lenk
+l5l8ens
+l4lentu
+l4lenu
+ll5eple
+l6l5e6rik
+l4lerob
+ll6es
+lle4so
+lles5pr
+lle5stø
+l5let.
+l4leta
+l5lets
+llet6tele
+l8letæ
+l2leu
+ll5even
+lle7vev
+l5levå
+lle6y
+l2lé.
+ll7g2
+lli1e
+lli5e4n
+l9lig
+l2lim
+l4l3ind
+l4lins
+ll3int
+l9lint.
+l3lip
+l4lir
+lli6sen
+l4liv
+ll1j
+ll7k2
+ll5m
+llmue9ne
+llmu7ens
+llmu9er
+l5lo.
+llob5
+l2lod
+l4l3off
+llo5id
+ll5oks
+llo2m1
+llom5s6
+ll3op
+ll5opp
+l2l1or
+l4loso
+l6lote
+ll5p
+llra7n
+ll4sak
+llsa6me.
+ll4sem
+lls5end
+llsk4
+lls6kar
+lls5kv
+ll5skå
+lls5lag
+ll3smy
+lls4no
+lls4te
+lls6tig
+lls7øk
+ll3t4
+llto4e
+l8lua
+l4lu4e
+l4luf
+ll7ug
+llu4k
+l8l7uka
+l4l3uke
+l6luks
+l5lum
+l4l1un
+llun6ge.
+llu4pi
+l2l1ur
+l3lus
+l2l1ut
+ll1v4
+llva8n
+lly4se.
+l4løk
+ll5øks
+llø6pa.
+l4løve
+ll7øy.
+ll5øya
+ll3øye
+lløy6er
+ll5øy6n
+ll1å8r
+ll3å2s
+2l1m
+l5ma.
+lm3anm
+l4map
+l4marki
+lm3av
+lm7b
+l4m3els
+l4melu
+lm5e4po
+l4m5erf
+lme7ri
+lme7sti
+lme5t4r
+l5mil
+lmi8le.
+lm3ind
+l5ming
+lmini6
+lmin7ne
+lm3ins
+lm5int
+l7mis
+lm5l
+lm5m
+lm1op
+lm1s
+lms6j
+lm5s2p
+lm3t
+lmu4le.
+lm3ut
+lmyr8ke.
+l4mø.
+l6m5øs
+lm5øy6
+lmøya9
+lmå6la.
+lm5å4r
+l4m5ås
+2l1n
+l2nab
+l3ne
+lni4u
+l7ny
+lo1al
+7loane
+lo1a4r
+5loar.
+2lob
+lob5by.
+lob9byan
+lob9byar.
+lob5bye
+lo2bl
+lo2d3a
+lo3de
+lo4d3ri
+lod3s4m
+lod7ste
+lod7s6v
+lo6d5u
+6loeng
+6lofj
+3loft
+1log
+lo5ge
+lo6g5e8v
+lo4gir
+log2o
+lo3gop
+log8res
+lo6g5ro
+log5sa
+4loh
+lo5id.
+lo3ide
+lo1in
+3loja
+lo1ki
+lok4ko
+lok6kul
+2lo1k4l
+4lokon
+2lok7s4
+lok8se.
+lo1k4v
+lole6ge.
+2lolj
+lolo9
+l5omdr
+lo4m5in
+lom4mel
+lomst9r
+lo4nal
+6lond
+lo5ne
+lon4g3r
+lo4nit
+lon7skj
+2lop
+lo3pa
+lo4pea
+lop5pa
+5l4opt
+lo1ra
+2lord
+lor6da.
+lo1re
+4l1org
+lor4g5l
+lorie6
+lo1ro
+lo7rød
+lo7sa
+lo6sek
+lo4ses
+lo5sev
+los4kle
+lo1sl
+lo7sp
+2lost
+lo9tes
+lo8ti.
+lo3to
+4lottet
+lo1un
+1lov
+lov7ald
+lo3van
+lo9vand
+lo7vane
+lo3var
+lo3ve7d6
+l6over.
+love5re
+l5overn
+6l5overs
+6l5overt
+7lovo
+lov3sa
+2l1p
+l7pa
+lpa5re
+lpas5
+l4pedo
+l4pee
+l2pei
+l2pel
+l5peleg
+l3peli
+l4pelin
+l3pesm
+l4peti
+l2peu
+lp2h
+lp2i
+lpin3e
+lpi5ne.
+lp2l
+lpo6et
+l4put
+l5q
+2l5r4
+lra8da
+lradi4u
+lra6ne.
+lre4de
+lre4i
+lre8ka
+lre8ke.
+lre8va
+lri8ma
+lri4ve.
+lro8de.
+lro6pa.
+lro8sa.
+lro4se.
+lrot5s
+lrø6re.
+lrø5v
+lrå8da.
+lrå4de.
+8l1s
+l2sad
+lsag6
+ls5ald
+ls4am
+l7sana
+lsan6ke.
+l4s5ano
+l4s3ans
+ls5ark
+l4sat.
+l4scu
+l3se.
+l2sed
+l2see
+ls3eid
+ls5eig
+l4s3ele
+l4s3elv
+l2sem
+ls5emb
+l4seno
+l7ser.
+lse2s
+lses5ku
+lses3l
+lses5pa
+lses5s
+lse8s5tr
+lse4te.
+l2seu
+l6sev
+l4sf
+l2sh
+l5sig
+l5sik
+l6s5ill
+l4sim
+l5simu
+l4s3inn
+ls5jakk
+l5sjef
+ls3jeg
+ls3jen
+8lsk.
+ls5kabi
+l4s5kan
+ls5kari
+lsk5art
+l6s5ke
+lskif5
+l2s3kild
+lskinn6
+lskinns5
+ls1kjed
+ls3kjo
+l6skl
+lsk3læ
+ls3koa
+ls5kor
+ls3kov
+l4skra
+ls8ks
+lsk5un
+ls7kva
+ls3kvi
+l4skå
+ls3kåp
+lskå6pa
+l2sl
+lsla4ga
+l7slagn
+lsle6ge.
+ls5lo
+l5s4luk
+l6s5løs
+l2sm
+l5smør
+lsmå6la
+l2snu
+lsok3
+ls5ond
+lson6de.
+l2s1or
+ls7o6se
+l5sot
+ls1ov
+l2spa
+l9speg
+l5spei
+l9spel
+l5spi
+l4spr
+l5spred
+ls3pri
+l8s7s
+l4s3tak
+l4s3tal
+l6stank
+l6ste.
+ls4ted
+l4steg
+l3ste4i
+ls4tel
+ls5terr
+ls6ti.
+ls4tie
+ls6ton
+ls5tren
+l9stri
+l2su
+l5sub
+l3suk
+ls1un
+l2s1v
+ls7vea
+ls5vee
+lsve8en.
+l6s5vek
+lsve7re
+l4svik
+ls6vind
+l4sør
+l2s1øy
+l2s1å
+2l1t
+l4taa
+l4taf
+lt3akt
+l3tal
+lta4la.
+l4t3alb
+lta6lev
+lt3anl
+lta6no
+lt3art
+lta4st
+lta8tes
+lta4t3o
+ltat3r
+lt3avk
+l5tavæ
+lt9b
+l3tede
+l4teka
+lte6ma.
+lt4en.
+l4t5enh
+lt3epi
+l4teras
+l4t5erst
+ltesa8me.
+ltid6s
+l4tiet
+l2tif
+lti6g5
+l2tik
+l4tina
+lt3ind
+lt9inn
+lt3ins
+l4tivi
+l2t1ja
+ltle8ge.
+lt9n
+lto9ar
+l3tog
+lto4s
+lt3ost
+lt2r
+l3tra
+lt3reg
+lt3rei
+l6treko
+l6t5rel
+l6t7rem
+l4trens
+lt3res
+l5t4rest
+l5trev
+l4t5rit
+lt3rol
+lt3rom
+ltro8pa
+l5tros
+l4t5rød
+l5trå
+lt1s2
+ltsa8me.
+lt5s4i
+lt7s6t
+lt2s3v
+lts4vi
+lt7t8
+lt3und
+ltu4ra
+ltur5e6
+ltu5r6en
+ltu5r6er
+ltur5s6
+ltur5å6
+l2tut
+l5tv.
+ltva8la
+l3tvs
+l4t5w
+l3ty
+lty8d
+lt7øl
+lt3øv
+lua8r
+2lub
+lub6band
+lu6bri
+lu5c
+lu7ere
+1luf
+3lugar
+lu7go
+lui6
+luid6er
+1luj
+4luk.
+lu4ka.
+4luket
+luk6keri
+lu3kr
+5l6ukt
+4luly
+l4um
+lu6mel
+lu2mo
+lum6sk
+lu4mø
+lun5d4r
+lu4ne.
+lun4gel
+l7u2ni
+lun5ne
+3lunsj
+4lunt
+lu6o
+lup4s
+lu2p3u
+lur2e
+6lurei
+lu5ren
+lu5ri
+6l5urn
+lur8na
+lur8ne.
+lur8ta
+1lus.
+lusa5
+lu7sak
+lu6sel
+lush7e
+lu2s5k
+lus4o5
+lus4sid
+lus4s3t
+lus1t
+lus2t3r
+luta3
+lu3ta.
+lu7tet
+6lutf
+4lutg
+luth
+3lu5t6he
+lutla9
+lut6m
+lu1to
+lu4t5r
+2luts
+lut4tal
+lut4tap
+lut4t5at
+6lutv
+1luv
+lu4va
+lu4ve.
+lu9ven
+lu9ver
+8lv
+l1va
+l4va.
+lva6k
+l4vakti
+lva6la
+l4va4m
+l4vana
+lv8and
+l7var.
+lv7asa
+l4v5ass
+lve3d4a
+lve5i6s
+l4vela
+l4vele
+lv4en
+lve9ne
+l9ver.
+lve9rau
+l4veru
+l4vesk
+lve5sl
+l7v6et.
+lve5str
+l9vé
+l1vi
+lvi8ene
+lvi9er
+lvi6ka.
+lv9im
+lvin5g6r
+lv3iro
+lv1j
+lvly8se.
+l6v3n
+lv1of
+lv9op
+lvo8re.
+lvor4s
+lv5o4v
+l6v5p
+lvra8r
+lv9ri
+lv1s2
+lv5se
+lv7s6k
+lvs6l
+lv9ta
+l5vøe
+lv1å
+l3våg
+lvå4p4
+lvå6r
+l5w
+ly1a
+2lyb
+ly4d7r
+ly5e
+lyes3
+ly4gel
+ly5g6l
+ly8is
+2lykj
+lyk6keri
+ly5ku
+ly7kv
+6lykø
+ly5l
+ly5me
+2lymp
+ly2n3a
+ly4ne.
+ly4n5il
+lyn3s2
+2lyo
+ly5ok
+ly3pe
+ly1r8
+ly8ra.
+ly6re.
+6l7yrk
+ly4sa.
+ly4s5a4k
+lyse6te.
+lysk4
+lys3kj
+lys9kl
+ly2s1l
+4lysp
+lyst9ra
+6lysy
+ly8ta.
+4lytek
+ly4teri
+lyte5s
+l5y4tin
+ly1tr
+ly3ve
+l3z
+l6z5b
+1læ1
+6læd
+læ6ra.
+læ5rar
+lær4arm
+læ4re.
+lære3i
+læ3rer
+læ4re3s
+læ5res.
+lær6sv
+læ6ta
+1lø
+lø3de.
+lø4del
+lø5dem
+lø4er
+løk5kj
+4l1økn
+2løko
+lø4k5r
+l5ø6l
+lø9me
+lø2na
+løns5t
+løp6s5
+5l4ørd
+lør5k6
+lør5n
+4l5ørr
+5løs.
+lø2sa
+lø5san
+lø5ser
+løs3k
+løs3s
+2løt
+lø9ta.
+lø3te.
+lø4teg
+løva9r
+6l7øv8d
+lø4ve.
+lø3ver
+lø5ves
+6løy.
+4løya
+2løyd
+4løye
+løy8ed
+løy5el
+2løyf
+løy4g
+løyg5e
+4løym
+6l5øys.
+løy5ter
+lå6gal
+lå6gre
+lågs4
+lå4gå
+2låi
+lå1k4
+lå6ke.
+lå9me
+lå2m5o
+lå2n
+6l5ånd
+lån2s1
+2låp
+l1åp9n
+2lår
+lå8ra.
+lå9rar
+lå5ras
+lå3rin
+lå1ru
+lå6sa.
+lå1sk
+lå6sko
+lå4s5l
+lå4ste
+lås7ten
+lås5ter
+lå5su
+lå3te.
+lå4teg
+lå4tek
+lå8ti.
+4lått
+lå4ve.
+1ma
+2maa
+3maa.
+ma3ar
+2mab
+ma5br
+ma3che
+mada5me
+ma4del
+ma3dra
+m6ad9s
+4maef
+4maek
+7maene
+2ma1f
+3mafia
+3mafr
+6mafrå
+ma8ga.
+ma4ged
+ma4gel
+ma4ges
+3magn
+ma2gr
+2mahe
+ma4is
+ma4ja
+2mak.
+ma5kab
+4makad
+ma4kes
+mak7ke
+4makl
+mak6le
+ma4kot
+mak2r
+ma3kre
+mak5ron
+mak4tal
+4m3akti
+mak4to
+makts4t
+ma1ku
+2ma1kv
+ma1la
+ma7leb
+ma6leng
+ma4let
+mali9e8n
+mal5l
+ma4lov
+mals4
+mal4t5ek
+mal3u
+mal3å
+4mamer
+ma3mo
+m4an.
+ma3nak
+m3anal
+6manam
+4manav
+man8ce
+man4dom
+man4don
+ma3ne
+m4anf
+man5g4a
+m6ange
+4mangr
+mania8
+2manl
+m3anle
+4manm
+5m4ann
+man4nem
+manns5l
+ma4no
+2mao
+4mapa
+2mapr
+4marb
+mar5d6
+7mare.
+6mareg
+ma3rei
+ma7rel
+5ma9ren
+ma5res
+3mar4i
+mari8e9ne
+ma3rin
+m4arka
+4markit
+mar4kv
+mar5m
+marmo9ra.
+mar7n
+ma1ro
+ma4ro6p
+mar3s4h
+mar7sl
+mar5te
+ma4ry.
+ma6rå
+4masel
+ma5set
+mash3
+ma4sia
+ma4sik
+ma4sis
+6masju
+mas4ki
+4masko
+4masp
+mas4see
+mas6set
+massø9
+7mast.
+ma5stem
+4masto
+4ma5str
+2masy
+m6at
+ma1ta
+ma5tad
+ma3te
+ma4te.
+ma6ted
+ma4tel
+7maten
+7mater.
+6matera
+7matet
+6m7atfe
+4matil
+7matil.
+ma1to
+ma1tr
+4matra
+ma4t5ras
+ma4t3re
+ma6t7rom
+mat3s2
+mats8l
+mat5ta
+m8at7t8r
+2mau
+mau4k
+mau7l
+ma1un
+5maur
+mau7su
+2mav
+ma6ve.
+ma5ven
+m7avh
+m5avk
+ma4ze
+ma3zo
+2m1b
+m4bao
+mbar3d
+m2bea
+m4beb
+mbe9da
+m4bedø
+m2bef
+m2bek
+m4beli
+m2bem
+m4bena
+m4beo
+m4bereg
+m4bero
+mbet2
+mbi6ar
+m2bib
+m3b4l
+mboe2
+mbo4end
+mbo5er.
+mbo5ere
+mbo5id
+mbo5n
+m4bop
+mbo5re
+mbo9t
+mbu7ar.
+mbu4e
+mbue7re
+mbus5
+m1c
+m6co
+2m1d2
+m3de
+md7om
+1me
+2mea2
+me5al
+mea5m
+2meb
+2mec
+meck4
+4medat
+2medb
+5mede.
+me4ded
+med5ei
+me7den
+me7det
+4medf
+me3di
+4medik
+4medir
+2medm
+me6dok
+4medom
+2medr
+me6dret
+med1s4
+4medu
+me6dun
+me5d4us
+med5v
+7medve
+2medy
+4medå
+me7e
+2meef
+6meek
+2meel
+4mees
+4meev
+2mef
+m3eff
+6me2ga
+me7gal
+2megr
+2megu
+4meh
+mei2e
+meie5n
+m1eig
+me3ild
+me3ind
+mei5ni
+me7isk
+4meiso
+2mej
+4meki
+4mekj
+2mekk
+me2k1l
+me3kn
+4meko
+2me5k8r
+4meks
+mek5t
+6mekte
+m2el
+4mela
+me5l4aks
+5melane
+5melar
+me3le
+me4le.
+4meled
+4melei
+4melek
+6m5e6lem
+me4l5eng
+4melik
+4melis
+4melit
+4meliv
+mel5le
+mello6m3
+4melok
+4melov
+mel4si
+mel2s3j
+melsk4
+mel5s4t
+mel7tr
+me1lu
+mel5v
+melvi6
+2mely
+2melæ
+4melø
+4me5l4å5
+2mem
+me6mo.
+4m5enga
+men5k
+menle6ge.
+m6enn
+men4ny
+me4nom
+me4nor
+men4si
+men3sm
+men5spl
+men5te
+men6tek
+men4tom
+men5tr
+me4nyt
+2me3o
+me6os
+2mep
+5mer.
+me6rab
+4merad
+me4ra5l
+me4r5ant
+mer5di
+4mered
+4mereg
+4merei
+4merek
+4merel
+me6rense
+me3res
+4meress
+mere6t
+m4eri
+4me5rib
+meri5ke
+5merin
+merle7g
+mer9n
+mer5os
+5mers
+mer5sk
+me3run
+mer5und
+4merus
+2mery
+me2r3ø
+2merå
+me4råk
+5mes.
+2me5sa
+4me5s4h
+2mesj
+2me1sk
+mes5ke
+2me1sl
+mes6le
+4me3so
+2mesp
+5mess
+7mest.
+4mesta
+5meste.
+mes4ti
+6me7sto
+mest3r
+me5stro
+6mestrø
+4mestrå
+4mestu
+4mesu
+2mesy
+2mesø
+4metab
+4me9tap
+me4tar
+me3te
+4meteg
+4metei
+4metek
+4metel
+4metep
+4metil
+2metj
+4meton
+me4t3ra
+me4tre
+met5ren
+met7rer
+met5res
+met5rik
+me4tru
+4metræ
+2metu
+4metv
+2mety
+2metø
+4metå
+2meu4
+7m4eu3s
+2mev
+meva8n
+2meø
+2meå
+2mé
+2m1f
+mfa9ra
+mfar8ta
+mfav5
+m2fek
+m6f3ess
+m4fi.
+m4fibr
+m2fit
+m5fru5s6
+m5funn8s5
+mfu6se.
+2m5g6
+m4ga.
+m4gi.
+mgå8va
+mgå8ve.
+2m1h
+mhea4
+m4hu.
+1mi
+mi1a
+5mi6al
+mia2n
+9miane
+7miar.
+2miav
+mi6c
+miche6l
+8m9idé
+2midi
+mid5j
+mid3s4
+mid4t
+4mi3ele
+mi3er.
+mie9s8
+2mi5f
+5migraf
+2mih
+2mii
+4mij
+mik6h
+4mikj
+2miko
+mik5ro.
+mik5ron
+mik5sa
+6miku
+mi4la.
+mile6t
+mil7eti
+mi4lev
+mi7li
+4milin
+mil6s5v
+4milæ
+2mim
+mi8ma.
+5mimo
+m7imp
+mi4na.
+mi5nar
+mi4ne.
+mi4n5ers
+4m3innh
+4m3inns
+6minnt
+min2s
+min3sp
+mins4t
+mi3nu
+m4inv
+mi4n5y
+mi7ov
+2mip
+4misa
+mi4san
+mi3se
+4misek
+4misel
+9misé
+misha9ge
+4mi7si
+mi2sk
+mis4ko
+mi3s4la
+mis9le
+7mism
+mis4s5k
+mis4s7p
+mista9k
+5mis7te
+mis4tra
+4mistu
+2misy
+4miså
+6mita
+mi3te
+4mitj
+4mito
+2mit6r
+mitt3s
+mi5ur
+2miv
+mi5vå
+m6ja.
+m6jan
+m5jar.
+m7jarn
+2mje
+m7je.
+m1ji
+m8jingan
+m8jingar
+8mjo
+mju7ke
+1mjø
+mjøs5t
+2m3k2
+m4ko.
+mkro5
+mku6le.
+mkå8pa
+4m3l
+m7la
+mla6ga
+m2lef
+mlei5er.
+m2lek
+m2lel
+m2lem
+m4lera
+mle6se.
+m4lesk
+m6le5s8v
+m4leta
+mle4ve.
+ml6i
+ml5ja
+mly6se.
+mlø6pe.
+mløy3
+2m1m4
+m6mai
+mma5kl
+mmal5
+mma8le.
+m4mam
+mmando5
+mman6dol
+m5mar
+mmar7in
+mmar7o
+mmatik7ka
+m4medø
+m2meg
+m2mei
+m2me3k2
+m4melu
+m6meni
+m4menu
+mmer5t
+mme4run
+m2me1s
+mmest6
+m5met.
+m4meta
+m4meti
+m4metra
+mme5t6re
+mme3u
+m3mé
+m4mia
+m7mian
+m2mib
+m4mid
+mmie6n
+m2mik
+mmi5sk
+mmi5so
+mmi3st
+mm5n
+m3mu
+mmø2
+mmå8la.
+2m1n
+m2nee
+mn7eid
+m2ne9l
+mne4ra
+m5nese
+m4nesk
+m4nesta
+mnes9tie
+m9net.
+m4nete
+m2nev
+m6nip
+mn7sk
+1mo
+3moa
+mo2ar
+4moba
+5mode
+mo3dem
+mo5di
+mo6di.
+2mody
+3moe
+mo4en.
+m1off
+mofo6bi.
+mo6gi
+5mogl
+mo5go
+m5ogs
+4moh
+2moka
+mo8ka.
+mo8ke
+mo1ki
+mo6la.
+mo3le
+mo4le.
+mo7le6s
+4molt
+mo3ly
+m5om.
+4momf
+2momr
+mom4s5ø
+mo5ne
+mo4nisa
+mo2no
+mon1s
+mon4ste
+mon5t6
+2mop
+5mo1ra
+mo4ra.
+mo4rar
+mo7rar.
+mor5d6e
+4mordl
+mor6d5r
+mo3re
+mores7
+m2ori
+mo4ri.
+mo6rid
+4m3o4rie
+mor4kl
+morla8ga
+mo5rok
+mo4rom
+mor4si
+mor4skj
+mor7sky
+mor4sp
+mo1rø
+mo9sen
+mo2s7k
+mos4o
+6mostab
+4motap
+mo4te.
+mo6te6g6e
+mo4tei
+mote7kl
+mo5ter.
+mo4tes
+mo5to
+4motr
+mot7re
+mot1s2
+6motsagd
+motsva5
+mot7t
+mour5
+3mo3va
+mo5w
+8m1p
+m4pana
+m4p5anta
+m4pee
+m4pelot
+m6pena
+m6pep
+mpera8te.
+mpe5res
+m6peress
+m4p5erfa
+mperi6e7n
+mpes2
+mpes6te
+mpe4sti
+m5pett
+m2pe5u
+mp3id
+m4pinje
+m8pla.
+m3p4lan
+mp5le.
+m6p5lin
+m6p5n
+m6p5ob
+mpoe4
+m4poeta
+m4pog
+m6pok
+m2pop
+mp3opp
+mp1p8
+mp3rad
+mp5ret
+mp3rop
+mpro8pa
+mp1s
+mp3sek
+mps4p
+mp5s6t
+mpun6ge.
+m9pur
+mp5ut.
+mp5ys
+mpø5
+m9på.
+m3q
+2m1r6
+mro8sa.
+mro6se.
+mru7te.
+mrø9de
+m9rår
+6ms
+m5sa.
+ms1ak
+ms5ant
+m1sc
+mse5lu
+m9s6ei
+m4sem
+m4s3eng
+ms5e4pl
+m4serv
+mse5s
+m5s6etn
+mse6t7jare
+mse8t9jas
+msi6e
+ms4ing
+ms3inn
+m4s5ja
+ms5kab
+mska9k
+ms6kin
+msk5ing
+ms3kor
+msk8u
+ms3lan
+ms6lega
+ms9lua
+ms3lue
+ms4ly
+m2sm
+m1s2n
+ms9ne
+ms5no
+ms3næ
+m1so
+m4soms
+ms3ori
+ms1ov
+ms3s2
+m4s3tal
+m8s7te.
+ms7tea
+ms2ti
+ms5tilb
+ms3tim
+m1sto
+m4s5top
+m5s6topp
+mst5ord
+m8strand
+m5strane
+mst5red
+ms5tref
+mst5ren
+ms5trik
+ms4tru
+ms3unn
+msu9ta
+msu7ten
+ms1v
+msva9ra
+msva5re
+m3s4vet
+ms3ynd
+msø4ke.
+m4s5ør
+ms1øy
+ms1å
+2m1t
+m3ta
+mt4b
+mtbe6
+m2tee
+m2teg
+mteks7
+m6te7kv
+m4tel
+m6testu
+mti9a
+m9tida
+mti5e
+m6tien.
+m6tif
+m2tik
+m6tini
+m4tiø
+mtiør6
+m5to
+mt4r
+mt6ve
+mt4vin
+mtå5
+1mu
+mu6a
+m1u2b
+mu2e
+mu3el
+mue7r
+mues1
+2mug
+mug5l
+mu4he
+mu2k
+8m9uka
+4m1uke
+mu5la
+mu4leg
+mule6s
+mull2
+mull6s7
+mul6tiv
+4muly
+7mum
+mu3mi
+mum2s
+mun2c
+munes6
+4mung
+mun6ge.
+6m5univ
+mun3k
+munn5s6
+mun4t3r
+mu6ra.
+mu4re.
+2murn
+murs4
+6murt
+m2us
+mu4se.
+mu4ses4
+mu4sé
+mu2s3k
+muske6l5a
+must4
+mus5tan
+2mut
+3mu1ta
+mu8ta.
+mutsa8la
+mut7t6r
+2m1v
+mvak5t
+mva6la
+mvari6
+mveg5s4
+mvi7e6
+mvi6se.
+2mw
+1my
+my5a
+myg4ga
+my3ke
+myk4kes
+myk3l
+my8kr
+my2ra
+my9ran
+my9rar
+my1re
+my4re.
+4myrk
+m5yrke
+my4r5u
+mys3
+my6sa
+my4se.
+my4so
+my4te.
+mytt6s5
+5mæ
+mæ6la.
+1mø
+møb3l
+mø7des
+mø6e
+mø9ens
+møkk6a
+m3økn
+2møko
+mø6na
+mø4ne.
+møne9s
+mø8nest
+6m5ønsk
+mø2o
+3mørke
+mør4k5r
+mør5sm
+mør3ø
+mø5se
+7møt
+mø9tas
+mø4tere
+møt9t
+2møy
+møy9ar
+m5øys.
+1må
+2må.
+må5a
+6måenh
+må7g2
+må1k
+må4ka.
+må4ke.
+må4kes
+m6ål
+må5lar
+må4le.
+må6led
+måle3i
+målø6pe.
+må4ne5s6
+må9nese
+må8pa.
+må4pe.
+må7pl
+2mår
+måra6r
+må1re
+må1ro
+må1ru
+må1s4
+må6tak
+6måtf
+må5tr
+må3tø
+1na
+na6ans
+2nabo
+7na7bortr
+na6bot
+4naby
+na4ded
+na8dem
+nadi4
+n3adop
+nad2s1
+4nadv
+8naf
+n1aff
+nafo7r
+na3fr
+naf7t
+na8ga.
+na3ge
+4nagen
+nag3s4
+nagså5
+na7gø
+6nah
+4nair
+2nak
+n6akk
+nak7ka
+nak6ko
+5nakl
+na1kr
+n1aks
+nak8sa
+nak8se.
+8n1akt
+nak6ta.
+na7kv
+na9lag
+na6lare
+6nalarv
+na7leg
+na4l3ei
+na4lek
+nal5epo
+na4les
+na4l5ett
+na4lev
+nal5g
+nal6ge.
+na4lil
+nal6lag
+nal4løp
+nal3op
+nal5s2
+nal3t
+na3lur
+2naly
+na2l5ø
+4nalå
+na3lå5r
+5nam.
+na7mere
+na5mes
+na5mo9
+5nams
+2namø
+9nan.
+4nana
+n3anal
+n6ane
+nanfø8
+4n5angr
+nan5k
+nan6ke.
+4n3anl
+6n5anle
+nan4ne
+na4n5o
+n4n5ans
+nan4sin
+nan4skj
+nan4s5t
+4nany
+na7o
+na5pe
+nape4s
+nap3s4
+n4ar.
+na4rap
+2narb
+nar5dr
+4narea
+nar7ei
+4na5rek
+nari4e5n
+7nariksk
+4narkiv
+6n5armé
+6n5arme
+nar8ma.
+nar5s
+nar8ste
+2nart
+nar6ta.
+nar5ti
+nar7v
+nar5ø
+nasa3r
+na4sas
+nas7h
+8nasik
+na4ski
+na2s5t4
+nasta5
+8nasu
+na1ta
+nate8k
+na7tem
+4natl
+4natom
+natori5e6
+nat8ra
+nat3sp
+nat6tak
+nat6tea
+naty5
+2nauk
+naus6p
+na6va.
+4navd
+6navf
+2navg
+2n3avh
+na1vi
+4n5avk
+4navl
+nav4les
+3navn
+6navo
+4navr
+n1avs
+4navt
+4n1b2
+n5ba2
+nba3d
+nba9ser
+nben4s
+nbo5et
+n6buf
+n6butr
+nbyr5
+nbø9le
+nbø6n
+n1c
+n5ca
+ncel5
+n3che
+nch3ei
+n6cot
+n2cy1
+6nd
+n7daa.
+n6dabi
+n4dad
+nda5f
+n7dag4
+ndags5
+n4daks
+n3dal
+n4dalf
+n4d5all
+ndals3
+n4dark
+n6d3art
+n8dask
+nda5tal
+nd5d4
+n3de.
+nde5a
+n2deb
+n2ded
+n5defi
+nd1ei
+nd4ein
+nd6ek
+n4dekl
+n4deko
+n5d4e5l
+nde4le.
+n4delik
+ndel4sk
+ndel4st
+n2dem
+n5dem.
+nde5mo
+n5den.
+n6dener
+n5dens
+n2de5o2
+n2dep
+n4derab
+n4deras
+n4derei
+n4derim
+nd6erk
+nderla6ga
+n4desi
+n4dest
+n4desu
+n1dé
+ndi4en
+n4d3int
+ndi6sk
+nditori5
+nditorie6
+ndit4t5a
+nd3jer
+nd1ju
+nd5k
+nd4lem
+nd4lese
+nd4lest
+nd4lev
+ndo9a
+n6dob
+n6d5okk
+nd4om4s3
+n2doo
+nd1op
+n2dor
+nd3org
+nd5orm
+n6dote
+nd5rae
+n4d3ram
+nd3ran
+nd6rek
+ndre4ra
+nd5resen
+nd5rett
+nd1ri
+n1dro
+nd4sag
+nds3ak
+nd4s5amb
+nds5elv
+nds5ende
+nd4ser
+nd4sje
+nd4skj
+nds7kul
+ndsla6ga
+nds6lett
+nd7spu
+nd3s4te
+nds9teg
+nds5trek
+nd5stry
+ndta6ka.
+n6duf
+ndu3is
+n4dun
+nd3ung
+ndun6ge.
+n2dup
+ndu6si
+ndus7k
+nd7v
+n2dyg
+ndy1k
+n2dys
+ndy5sp
+ndø5l
+n2d1øy
+1ne
+2nea
+5neae
+nea4g
+ne7a6le
+ne5alp
+ne5als
+nea9m
+ne9a8r9an
+nea9ren
+ne1as
+6ne7av
+2neb
+3nebb
+4nebe
+ne4ble
+neck5
+2neda
+3nedal
+ned3d
+6n5eddik
+4nedeb
+4nedeg
+4nedel
+5nedg
+ne4di.
+nedi4s
+2nedo
+ned5over7
+ned1r
+ne6dre
+5neds
+ned3st
+6nedu
+4nedø
+ne5dår
+4neeg
+4neei
+2neek
+5ne4e4r5
+2nef
+n1eff
+n5eft
+2neg
+5negati
+ne3gla
+neg5lesp
+neg8r
+6negru
+6neh
+2nei
+n2eid
+nei8dan
+n5eig
+n2e1in
+n3eini
+5neir
+2nej
+2nek
+ne4ka.
+6nek2l
+ne3kn
+nek2r
+nek5rin
+n7ekser
+nek5t
+4nela
+nel3de
+4neled
+6nelegg
+7neleggj
+4nelei
+nelei5er
+4n3elem
+6nelê
+4nelid
+4neliga
+4nelis
+4nelit
+4neliv
+nel4lov
+nel7s
+2ne1lu
+4nely
+2nelæ
+2nelø
+nelø8pa
+4nelås
+2nema
+4n3emb
+4nemel
+4nemer
+6nemes
+2nemi
+nemie8
+6nemj
+nem6k
+5nemn
+nem5ne.
+nem7nel
+2nemo
+2nemu
+2nemy
+2nemø
+2nemå
+3nen
+4nena
+nen5at.
+6n5en6den
+6nendr
+nene4
+4nened
+4nenem
+ne3nes
+4nenesl
+4nenet
+nen5eta
+4nenev
+nen4ga.
+4n3enhe
+6nenhet
+4neni
+nen5se
+nent5ei
+6n3en5tr
+4nenu
+4neny
+4nenæ
+2neo
+5neo.
+ne5o4r
+7neos
+2nep
+ne5pe
+3n4er.
+4nerad
+6nerap
+3nerb
+4nerea
+4nered
+nere6de.
+4neref
+4nereg
+4nerek
+4nerent
+4nerep
+ne5res
+4neress
+4neresu
+4neret
+4nerev
+4nerfar
+4ner2g
+ner3ga
+ner3ge
+4ne3rib
+4nerik
+4nerit
+ne4ri9v
+5nerl
+nerla8ga
+n3erob
+6neroc
+ne7rof
+ne5rok
+4nerom
+ne5rot
+ne1r4ov
+n6ers.
+ner7se
+ner5s4i
+ners4p
+ners8ten
+4ne3rul
+ner5un
+2nery
+3neryr
+4nerør
+2nerå
+2nesa
+ne4sa.
+5nesar
+4nesc
+4nese
+6nesek
+nes6er
+5nesets
+nes5eva
+ne3si
+nes5ind
+4nesit
+2ne5sj
+ne5skam
+4ne5skar
+nesk4e
+4neski
+5neskins
+4neskj
+4ne5sko
+4neskr
+6nesku
+2nesl
+ne3sli
+ne7slø
+nes6mi
+6nesn
+ne7snø
+2neso
+3nesot
+2nesp
+nes6sam
+nes4stu
+5nest.
+4nestas
+nes9tas.
+nes9te.
+4nesto
+nes5tor
+4ne3str
+4nestu
+4nestø
+2nesu
+2ne1sv
+nes8va
+6nesy
+4nesæ
+5nesøy
+4ne5så
+neså5re
+3net.
+2neta
+4netaks
+neta6le.
+ne3te
+5nete.
+4ne3ti
+6netid
+2netj
+2ne5to
+6netom
+2net4r
+3nets
+net5s4p
+nett3a4
+net6tel
+2netu
+ne4tv
+4nety
+4netå
+netå5ker
+2neu
+neu1r
+ne5us
+ne6va.
+ne4ve.
+6ne8vent
+5nevik
+nevi8sa
+3nevn
+nev1r
+ne4y5t
+2neø
+4neå
+1né
+4néb
+4néd
+2néf
+6néh
+2nél
+4ném
+6néo
+2nép
+5nér
+4név
+4néå
+4n1f
+nfall4
+nfalls5
+nfan5t
+n6foa
+n4fob
+n4fole
+n4fom
+n4fora
+nfor9en.
+nfos4
+nfø5des
+nføy8ed
+6ng
+n8g8ad
+n4gaf
+n6gag
+ng1ak
+ng5and.
+n8gan8da
+ng3ank
+n4g5arm
+n4gart
+ng5art.
+n5garta
+ngar5u
+n2gat
+ng5ato
+nga4ve.
+ng7avi
+ngd4
+ng4ded
+ng4del
+ng4dep
+ng3dr
+n4geda
+n4gela
+n3gen
+n4gena
+n7gene
+n4g3eng
+n6geno
+n4genu
+n3ger
+n4geret
+nge5run
+n2ges
+nge3sl
+n4geta
+n2ge7v
+ngfø4
+ng5g2
+ng5id
+ngjen5g
+ng1l
+n5glem
+ng4lu
+ng7n
+ngo4d
+ng5odd
+n7goe
+n3g4ok
+n8g7o8m
+ng9ome
+ng5ond
+ng7o6pe
+n2gor
+ng5ord
+ng3ork
+ngos6p
+n2got
+ng3ra.
+n5grad.
+ng5rand
+ng7rea
+ng3reg
+ng3ren
+n4grend
+n4grer
+ng5rest
+ng3ret
+ng3rev
+ng3rid
+ng3rin
+ng7ro.
+ng9roa
+ng7roe
+n5g6ros5
+ng3råd
+ng8sa.
+ngs5elv
+ng4sem
+ng4ses
+ng2sj
+ng2sk
+ng6skj
+ngs7leg
+ng5sløy
+ngsmå6la.
+ngs3ne
+ngs7tep
+ngst5rid
+ngstyr8ke.
+ngs9tør
+ng3und
+ngu5ru.
+ngvi4s
+ng5ye
+n1gø
+n2g1øy
+ngå8va
+ngå8ve.
+4n1h2
+nhat5
+nhet4s
+1ni
+ni1ak
+ni1a2n
+nian5dep
+ni2bl
+4niby
+4nibå
+4nicr
+n8ida
+ni4del
+ni7dele
+n5idé
+ni6do
+nid7r
+nids4
+nid5st
+4nieg
+ni1el
+7ni3e2n
+ni3er.
+nie5ri
+ni7ers
+ni5ert
+4n3i4fr
+ni5gla
+ni9glo
+2nih
+8nij
+ni3ke
+2nikj
+4ni5ko
+2nikr
+4nikv
+ni5l4i
+5nilu
+4nimar
+4nimas
+4nimo
+2nimp
+ni6n7al
+2n1ind
+4ninf
+ning3o
+nin5gr
+ning6s5
+ningse4
+nings5te
+2n1inj
+n1inn
+4ninnb
+4ninnh
+4ninns
+4ninnt
+2n1ins
+2n1int
+2ninv
+5nio.
+nion2
+nions3
+4niop
+7nios
+4ni5ov
+ni4pet
+ni9pet.
+ni9pets
+ni2pl
+nip3li
+nip5si
+4nir
+nir7kel
+4nisem
+ni5set
+nis5im
+4ni3skj
+nis4k3o
+ni9sol
+niso5ne
+niss4
+4nistas
+6nistat
+nis5tik
+4nistil
+ni3str
+4nisty
+4nistø
+6nisu
+6nisy
+n4it
+ni3ted
+6nitj
+ni4tog
+ni4tos
+nitt4r
+nitt4s3
+nitt6sk
+4nitu
+ni3ty
+nit5z
+nitær6e
+2niub
+ni4umf
+2niut
+4niva
+2nive
+niv5ei8
+4n5ivo
+niv3s2
+6niå
+4n1j
+n6jah
+njav9
+n2jed
+n5jede.
+n4jee
+n6jei
+n2je1s
+n3jes.
+n2jet
+n3jet.
+njet6r
+n5jett
+2nk
+n1ka
+n2kak
+nk3aks
+nkal5l
+n2kau
+n4kedo
+n4keer
+n4keh
+nk5eie
+nkel5s
+nkelt3
+n4k5enh
+n8keno
+n4k5erfa
+nker4st
+n4ke1s4
+n6ketø
+n1ki
+n4kid
+n4kie
+nk3ier
+nk5ind
+nk7inf
+nk3inn
+nk7int
+n5kj
+nk1k4
+n1kla
+n5k6lang
+n7k4lis
+nk3lok
+n1klu
+nk3ly
+n3klæ
+nk1lå
+n1knu
+n1kny
+n3ko
+n4kof
+nkofi8
+nk5oks
+nko5le
+nkol4la
+n6kot
+n6kov
+n1kr
+n3krav
+nk1s2
+nk4tak
+nk6tal
+nk4tin
+nkt3sk
+n1ku
+nku4le.
+nkuri9
+nkurie8
+n4ku6t
+nk9ute
+n1kv
+nk3ve
+n7kvit
+n6kvo
+n9ky
+n1kø
+n1kå
+nkå6pa
+4n1l
+nland9a
+nland6se
+n5le
+nlei7er.
+nle8ma.
+nli4en.
+n3lj
+nlu4e
+nly6de.
+nly6di
+nly4se.
+nlø6pa.
+n7lå
+4n3m
+nma4le.
+nmik3
+nmi8l
+nmini6
+nmo6se.
+nmusik7k
+nmå6la.
+4nn
+n2nad
+nn5ad.
+nn9aft
+nn5air
+n6n1ak
+n4nala
+nn5alg
+n4name
+nn4an
+nn5ana
+n9nane
+nna8ni
+n4n5ank
+n5nanl
+n6n7anta
+n9nar.
+n4nari
+n6nasi
+n4nask
+n2nat
+n2nav
+nn3avl
+nnbo9e
+nnbu9e
+nn5d2
+nndø4
+nndør3
+n5nea.
+n5neap
+n5nebar
+nnebe8r
+n5nebu
+n4nedi
+n2nee
+n6nef
+nn1ei
+n3neke
+n4nelo
+n3n4en
+nne6nat
+nne4n3o
+n9ner.
+n4nerel
+n4nero
+n7nes.
+n6nesj
+n5nes4la
+n4ne3st
+n5n6et.
+n4nesø
+n4nete
+n2nev
+n2ney
+nn3g2
+nnhø8re.
+n4nid
+nn3ide
+nni3e
+n2nim
+nn7inf
+n5nis
+nni4sj
+nni4s3t6
+nn7k2
+nnle6ge.
+nnlø6pe.
+n4no.
+nn5of
+nno2m1
+nn6oms
+nnomsy8na
+nn1op
+n2n1o4r
+nn7ord
+n4n3o4ve
+nn9r
+nnsa9ka
+nn4s5amb
+nns5and
+nns3ar
+nn5seg
+nnsei8g
+nn4s3em
+nn6s5enk
+nn4s3es
+nnse6te.
+nnsi7da
+nn4s3in
+nn4s5i6s
+nn6s5jak
+nns5kan
+nn5s4kli
+nns5op
+nns3or
+nnst6
+nn6s5tab
+nns5tal
+nns5telt
+nns4ten
+nns5tep
+nns7tin
+nns5top
+nn6s5tre
+nns5tro
+nns3tv
+nn4s5ul
+nns3va
+nn6s5vo
+nnsy8na
+nn2sø
+nns3øk
+nn3så5r
+nn7t4
+nnte6se.
+nnto9ga
+nnu1i
+nn6ung
+nn1ut
+nnvi4s
+nn1yn
+nny4t
+nn7øk
+nn1øv
+nn1å
+1no
+noa4g
+no1ak
+5noane
+no7ar.
+2nob
+nobe4l
+no4bl
+nob5le
+no3b4r
+no5co
+nodi4e5n
+3noe
+4noef
+4noei
+4noek
+4noent
+2nof
+n1off
+3no3ft
+n6ogra
+no5id
+no3in
+2nok
+no1ki
+nok8r
+nok6se.
+n3oksi
+no9le
+2nolj
+no6mid
+no6mik
+no4mil
+4nomj
+nom9m
+nom7s2
+5nomy
+non1s4
+non5t
+2noo
+2nop
+n1opp
+no1r4a
+no5ran
+no5rar
+no5ras
+nor4da
+nor6d5end
+4nordn
+nor4d5r
+nord3s4
+nor4dø
+no9ree
+no3rek
+no3ren
+no7ret
+nor5g
+3norge
+norges5
+n3o4rie
+7norit
+4nork
+nor6kla
+nor6kle
+n4orm
+normlø7se
+nor2s
+nors6ka.
+no3ræ
+no4sel
+no4ses
+nose8te.
+4nosp
+no3stj
+nostra4
+2nosy
+no4ta.
+no4te.
+note5i
+5notek
+no4tel
+no4tes
+not3s
+4noty
+4nou
+no1v
+no3ve
+4no5vi
+4n5ovn
+7nó
+6n3p2
+n5pe
+npo8ta
+n4påk
+n3q
+2n1r2
+n9ra
+nra8na
+nra8sa
+n3re
+n4reb
+nrei7e
+n6renem
+n6reo
+n6ri.
+nro6de.
+nro6t
+nry6
+nrå8da
+6ns
+n1sa.
+ns1a4d
+n5sag
+n5sakk
+n5sa4kr
+ns3aks
+nsak6se.
+6n5akti
+ns5akv
+n3sala
+ns3ald
+n6s5alp
+n5sane
+n4sanf
+n5s6ann
+n5sanse
+ns5ansi
+ns5ant
+n5saren.
+ns6arm
+n6sart
+n4sati
+n1sch
+n3sco
+nse9a8l
+n2sed
+ns5edd
+ns8ede
+n2see
+nse5ei
+nse6er
+n6sef
+n2seg
+ns5ege
+nsei6d
+ns5eie.
+ns9eig
+n4seks
+n4s3elv
+n2sem
+n5sen.
+n5sene.
+n4sener
+n9senes
+n4senet
+n4seni
+n7sens
+n3ser.
+n4sera
+nseri7e6
+n4sesa
+n4sesi
+n4se3sk
+nse3sl
+n4ses4p
+n4sest
+n6sesu
+n4se3s4v
+n4sete
+n9sets
+n2seu
+ns5fr
+n2sh
+ns3ha
+ns7he
+ns5hi
+nsi5de.
+nsi4ent
+nsi6er.
+nsin5d
+n3s4ing
+ns3inn
+n4sinte
+nsi8ra
+nsis7k
+ns3jak
+n4sjav
+n5sjef
+n6s5jord
+n4skan
+n6s5kauk
+ns7kele
+ns4kete
+n9skim
+ns5kir
+n5skis
+n6skja
+n6skjele
+ns5kjen
+n3skjæ
+nskog6s
+ns5kor
+ns3kro
+nsku9et
+n4skug
+ns5kuli
+n5skum
+ns1kv
+n5s6ky.
+n5s4kye
+n5skyss
+n5slang
+n7slarar
+ns5las
+nsle6ge.
+n3s4lekt
+ns6leri
+ns5lid
+n5slyn
+n1slå
+ns3mi
+n4smal
+n4s5mo
+n4smur
+n4smus
+nsmå6la.
+n5s4nar
+ns5nes
+nso4d
+ns1of
+n3s2ok
+n1sol
+n4sond
+nson6de.
+nso5ris
+ns1ov
+n3sovn
+nspa9ra
+ns5pels
+n5spet
+ns1pr
+n6spros
+n7spur
+ns7s6
+nsse4e
+nsså5
+ns4ta.
+n4stak
+n4stag
+ns5take
+n3stam
+n4stank
+nst5art
+nstar8ta.
+ns4tau
+n3s6ted
+n3s4tei
+ns4tel
+nste6ma.
+ns5tenk
+n6step
+n5s4tik
+ns5tild
+ns7tilf
+n4s5tils
+ns4tin
+ns4t3i4s
+ns1tj
+n5sto.
+n3stru
+ns7trøy
+n3stue
+n6stuk
+ns5tur
+nst3ut
+n1su
+ns1uk
+n4sung
+ns5vang
+nsva9ra
+n2s3ve
+ns9veg
+ns5verd
+ns5vern
+ns1vi
+n5s4vill
+ns4vind
+ns9vis
+n4svu
+n3s4væ
+nsy4d
+ns1yt
+n5søn
+n4s1øv
+ns5øya
+n5såpe
+nså7pen
+ns7ås.
+6n1t
+n5tab
+n4tagr
+nta4lan
+ntall4
+nta5na.
+n4t5and
+nt3anl
+nt4anv
+nt3app
+n7tart
+n6t5arvi
+nt6as
+nta5sia
+nt4at
+nt3avi
+nt5avr
+nt7avs
+n2tea
+n5teat
+n2tee
+n4tef
+n4tege
+n4tegi
+n7tegn
+n2tei
+nt5eini
+nte5ins
+n5teis
+n4teka
+n7tekn
+n4tekse
+n9teleg
+n5telig
+n5tell
+n4tels
+n9telt
+nte4ma.
+nt3emb
+nte4mis
+n5ten.
+n4te7na
+n5tene.
+n4t3enh
+n5tens
+n2teo
+n5teori
+n5tepp
+nt4er
+n5ter.
+n7terek
+n6terest
+nte6risk
+nteriø7ra.
+n5ters
+n7tes.
+n4tesel
+n4teta
+n4tete
+nt4e3u
+nt5e4va
+nt9g
+nti1a
+n4tiat
+n4tid
+n5tiem
+n4tig
+n4tikap
+n5tiki
+n4tikl
+nti5kli
+n5tile
+nti3lo
+n9time.
+n7times
+n4t3ind
+nti6net
+n6tini
+n2tio
+n2tip
+n4tisa
+n4ti5sti
+nt5l
+nt5n
+nto3a
+n2tob
+nt5omf
+nt5omn
+nt3oms
+n2t1op
+n5tor.
+n5to5re
+n6torg
+n2tou
+nt1ov
+nt6ran
+n4trep
+n5trer
+nt5resi
+ntres9kjare
+n4t3rin
+ntrol6li
+n6trom
+n6trul
+ntrøy4
+nt5skj
+nt5s6la
+nts2t
+nt3t4
+n6t7ub
+ntu9e
+ntu4l
+n2t1u2n
+n4t5uro
+n2t1ut
+ntva8la
+nty6e
+ntyr3s
+nt7år.
+1nu
+4nu.
+nu3an
+nu4av
+nuft4
+nufts5
+2nug
+nug6la
+4nu4h
+nuit8e
+nuk5
+nul9t8
+4nulu
+6nuly
+nu9me
+2n1un
+nun4ge.
+nuo2
+6nup
+nu3pl
+nu4re
+nu5sa.
+nu5sen
+nu7ser
+nus4k5l
+nus7l
+nuss4
+nu6st
+nus3ta
+2nut
+nu7ta
+nu3te.
+nute6r
+nut5eri
+n7utl
+nu6ume
+6n1v
+nva6la
+nvand5
+nverle9
+nves1
+n5vi
+nvi4et
+nvi4ka.
+nvi5ke
+n3vu
+nvæ8ra
+n3w
+1ny
+ny5ar.
+ny9ast
+2nyd
+ny4de.
+4nyef
+4nyg
+ny5ge
+5n6yhe
+ny3ke
+ny3k4le
+4nyko
+ny1lo
+2nyn
+nyn8da.
+nyn4de.
+4nyo
+4nyp
+ny8pa
+ny6ra.
+ny4re.
+ny7rev
+ny4ru
+ny1s
+ny5se
+ny9s6k
+nyst4
+nystu4
+ny3te
+ny3tr
+2nyv
+ny8va.
+ny5vak
+ny8ve.
+4nyø
+n1z
+1næ1
+næ8ra.
+nær9and
+næ8rast.
+1nø
+nø2da
+4nødd
+nødde5
+nød3sk
+nød5sto
+nø9dun
+2nøe
+4nøf
+nø1fl
+nø1fr
+nø7gr
+4nøko
+4nøks
+nø4le.
+nø9mo
+nø5mu
+nø3p4
+nø7ra
+nø6red
+nø1ry
+nø3se
+nø1sk
+nøs4l
+nø7te
+nø7tr
+n6øtt
+nøtt6r
+nøv4d
+nø3ver
+nøy1
+2n1øy.
+nøy8a9n
+n7øyh
+4nøys
+n3øys.
+nå6as
+1nåd
+nå5ded
+nå8en
+nå6et
+nå8j
+n1å2k4
+1nål
+nå2la
+nå5lev
+nå8ma
+nån6de.
+n1å4p
+nåp8na
+n1å6r
+nå2s
+nå5sa
+nåse4
+2oa
+oa5c
+o1af
+oa4k
+oak6kana
+oak4ku
+o1all
+o3alt
+o1a2m
+o3a6n
+o9and
+o1a6p
+oar6d7e
+oar4d5in
+oa4r5e4g
+oa4r5enh
+oa6ré
+oa4r5i
+oar5m
+oa9té
+o1au
+o1a4v
+2o3ba
+obakk8s
+obb4l
+ob4bo
+ob4b5r
+ob4b3u
+ob4e
+o4bea
+ober5et
+ober4s
+obers5ta
+obers5te
+o3bes
+2o3bi
+obi5e6
+1ob1j
+o1b2l
+ob5la.
+ob3le.
+ob3len
+o2b5li
+3oblig
+ob4lo
+o1b4o
+obo9a
+2obr
+ob5rar
+ob1re
+ob1ri
+3obser
+ob5st
+2obu
+2oby
+obyl5
+o5bø
+o3bå
+4oc
+ock5ers
+o5cy
+2o1d
+o6dab
+oda4f
+od7att
+odd5ei
+od4del
+od4dest
+od9do
+od4e
+o2deb
+o6d5ei
+o4deko
+o5deku
+o2dep
+oderle7
+o2des
+o5det.
+o5dets
+odie4n
+o4d3igl
+o4dj
+odko5
+od3oml
+od3ov
+o2d5re
+o4d3rø
+od3sk
+ods4ka
+od3s4po
+od5s4tol
+ods8t
+odu7s
+o4dy.
+o4dyb
+od5øk
+o5døs
+od5øy
+o2d1å6
+6o1e
+oe6f
+o4ein
+oek6s
+oe2l
+oe4mu
+oe2n
+oen5a
+o7ene
+oeng5d
+oen2g7r
+oeng3s
+oeng3u
+o5ens4
+o7ens.
+oen5t
+o3e4re
+o6erer
+oer8ma
+o3ersk
+o2es
+oe6sip
+oe6sit
+oes8ka
+oes8ke.
+o4etan
+oet2h
+oe5ti
+oev6ne.
+2ofa
+o2fa.
+ofag6a
+o4fara
+ofa4se
+o2fav
+o2feb
+o4fei
+o4fera
+o4fe3st
+o1fé
+off9and
+of4fek
+of5fes
+of6fia
+off5id
+of6fr
+of2fu
+of6fy
+2ofi
+o4fip
+o1fl
+of5le
+2ofo
+o6fra.
+of9ras
+of1re
+6o5fri
+of8sa
+of8se.
+6oft
+of4tel
+oft2s3
+2ofy
+2og
+o2ga.
+og7ank
+o4gare
+o2g7av
+o2ge.
+o4ged
+og1ei
+oge7na.
+o3get
+og4gera
+og4g5j
+ogg3s4
+og6g7u
+ogi3a4
+ogie2
+o4giev
+o2gif
+o6gig
+o4giko
+o2gil
+o2gim
+o2gin
+o3ging
+o2gi1o
+o6gista
+o6gi7str
+o2giv
+og5jer
+og7la
+ogly7
+og4ned
+5o4g5ni
+og6nel
+o5g6nos
+o2go.
+og6ra
+og4re.
+o4g3reg
+o4g3rei
+og4rer
+og7rett
+o4g3ri
+og3ryd
+o4g5rø
+og5rå
+ogs4a
+ogs6an
+og3s2e
+og1sk
+ogs4kj
+og5sl
+ogs4le
+og1s4p
+ogs5pa
+og5ste
+og3sti
+og4s5tj
+ogs4to
+ogs4tr
+ogs5t6ra
+og5stre
+og5sy
+5og5s6y4v3
+ogt6r
+5o4g5åt
+og1un
+og5ø
+og7ås
+2o1h6
+ohe5te
+ohm9a
+o4ho.
+ohø4
+oia4
+o1i2d9i
+o1idr
+oid5t
+oie4n
+oi5er
+oi6es
+oi5k
+oi4la
+o1im
+o3in.
+o1ing
+oi2n1o4
+o4insp
+oi6r
+o1is
+o2is.
+o6isa
+o2ise
+o4isi
+4o1j
+o8je.
+o4jo.
+o1ka
+ok7aft
+ok1ak
+oka4n5i6
+ok2ar
+ok5ark
+o3kas
+ok1ef
+ok5els5
+ok5elv
+o5k6en
+o4kesk
+o6kev
+o1kj
+ok4kand
+4okke
+ok6kera
+ok4ke5s
+ok3kje
+ok3ko.
+ok5kol
+ok4kun
+4okl
+ok8la.
+okla5m
+ok8le.
+o1klu
+ok7lut
+oklå5
+2okn
+okna8sa
+o3ko
+o8ko.
+ok8ol
+o4k3oms
+ok3omt
+oko5pe
+ok5opp
+ok3orm
+oko4s
+oko9se
+o6kov
+o1kr
+ok5reo
+o6kret
+o4k5ru
+oks4al
+oks4e
+ok4sek
+okse5kr
+ok4sem
+ok7sen
+ok6serin
+ok4ses
+okse9te
+ok5s4i
+oksi7da
+okst2
+oks6ti
+ok6s5vi
+oks6tr
+ok5ta
+3oktan
+ok3ti
+ok5to
+okto4r5i
+okt6r
+o1ku
+ok5u4k
+oku8le.
+oku6t
+ok7ute
+o5kva
+o3kvi
+ok5øy
+o3kå
+8ol.
+4o1la
+ola6ded
+ola8ga
+ol5anl
+ol3ant
+o9lar.
+o6larbe
+ola5t
+olber4
+olbo7e
+olbo7ge.
+ol4bol
+olbu7
+2old
+ol9dan
+ol5de.
+ol4dem
+ol4dest
+ol5det
+ol3do
+oldo7ve7
+ol5drev
+ol3dri
+old3s4kr
+2ole
+o5leaks
+o6leb
+o2led
+o2lef
+ol5eig
+ole5in
+o2lek
+o7leki
+o2lel
+olele6ge.
+o2lem
+o5lem.
+o5lems
+o7lene.
+o9lenes
+o4lenet
+o4leni
+o4leno
+o6lered
+o4leru
+o2les
+ole5sta
+ole5str
+o9let.
+o2lev
+o1lé
+ol4f5i
+ol4fj
+ol3g4e
+ol1g4l
+2oli
+o4liba
+oli9e6n
+oli7ert
+oli5ne
+3o6lj
+olke3s4
+ol4kese
+ol4kesk
+ol4kest
+ol2k3l
+ol9ko
+ol6ku
+ol5kv
+ol5la.
+oll3ak
+ol4lam
+ol7le.
+ol4led
+ol4lel
+ol7len
+ol4les
+ol6linj
+ol4log
+ol4lom
+ol5los
+ol4lov
+oll5over
+olls4t
+oll5sv
+ol2lu
+ol4løp
+ol6løs
+ol6løy
+ol2lå
+olme5s
+ol4mest
+ol4må
+ol9n
+2o1lo
+o4lo.
+o5loan
+o3loe
+o4lof
+olo3i
+ol5oks
+ol3oms
+ol3op
+o6l7os.
+o6l7o6se
+o6l5osf
+olo5ve
+ol4ped
+ol7so
+ols8t
+ol5sva
+ols5vik
+ol3ted
+ol5tep
+ol2tr
+ol6t7ra
+olt5re.
+olt5rer
+olt5ret
+o1lu
+olu5l
+o4l3ung
+olun8ge.
+o4l5ur
+ol5va
+ol1vo
+o1ly
+oly7d
+ol5ør
+o1lå
+2om.
+2oma
+om3ald
+o2ma2m
+om5ang
+oma4nif
+omann4
+oman5t
+om3ars
+omar7ø8
+om4as
+om1av
+omb6
+om4bet
+om4bis
+om3bl
+5ombod
+1ombu
+2ome
+o2m1ek
+o5meka
+o7menes
+omer6s
+o6mese
+o5met
+ome4tak
+ome7tar
+om1eu
+3omfan
+3omgre
+8omh
+o2mia
+o2mib
+omi3e4
+o4miek
+o2mig
+o7mikk
+o7mine
+om7inn
+om3in5s
+o4mio
+o2mir
+o4misj
+o4mist
+o2miu
+om1j
+2omm
+om6mat
+om4med
+om4metr
+3ommø
+2omo
+o4mofo
+om1op
+omo1v
+omp2
+ompa3t
+1omr
+2omre
+2omro
+2omru
+6oms.
+oms3al
+om4sek
+3omset
+omsko9d
+omsku9la
+om4som
+oms3un
+oms4ø
+omt2
+3omtal
+om4tes
+om3ti
+om3tv
+o2m1u
+o3mus
+omvæ8re.
+6omy
+omyr8ke.
+o2møk
+omø4r
+om5øy6
+o5må
+2on
+on3abo
+o4nac
+o6nak
+o4n3ang
+o4nap
+on3app
+o6narb
+o4n3arg
+o4n3arv
+onat5r
+o2n1a4v
+on5b
+on4dar
+onder6e
+ond3re
+on4d5ri
+onds4i
+o4ne.
+on5eie
+o4nele
+o7nell
+o2nem
+o3ner
+o4neru
+onesi6
+o4nesk
+o4ne3s8t
+o4nete
+o2nev
+on7f
+on7ga.
+ong3d
+on5ge.
+on6ged
+onges4
+on5gi
+on5go.
+ong2r
+on8gro
+ong9ros
+ongs4j
+on2gu
+on4gy
+on4g5ø
+o9ni.
+o2n3i2d
+oni1e
+o2nil
+on5ild
+o2nim
+oni6mi
+on3inf
+o6n7inn
+o2ni1o
+o4ni5p
+o6niso
+on3j
+on1k
+on5k6a
+3onkel
+on5k6i
+on4kle
+on5ku
+onle6g
+on5nad
+on3ni
+on5ny
+o4no.
+o5nor.
+o4no4v
+on3ove
+on4sh
+ons1i
+onsi3s
+onsi4v
+ons1k4
+ons7ke
+ons1l
+onsla6ga
+onstitue9ra
+onstitue9re
+onst5rum
+ons5und
+ons1v
+on4sve
+ons1å
+ont6a
+on3te
+on4ted
+on5ten
+on5ti
+on4tok
+on5tor
+ont2r
+on7ul8
+on5ur
+onu4sk
+o4n5ø4
+on6øy.
+on7å6
+2oo
+ood1s
+o1off
+oo2k1
+oo5k8a
+ook5es
+ool7a
+oo4m5i
+oo6mo
+o1o2p
+oopa8
+oop9an
+oo4pe
+oop5en
+oop5et
+o6opi
+o1o4r
+oor6da
+oo5s
+oo6sp
+o1o4v
+2op.
+2opa
+o4pab
+o2pak
+opan9d
+o4pa3re
+o7paren
+o4pasj
+o4pau
+o3pea
+ope1i
+opel6lø
+2open
+o4pena
+o9pend
+o4penet
+o7pent
+o2per
+6o3per.
+3opera
+ope6rar
+o7pero
+o5pert
+2opet
+o4peta
+4oph
+o1pi
+o4piek
+oping9s
+o4pir
+2opl
+o1pla
+o4p5land
+op3li
+op9lu
+op4na.
+op4ne
+2o3po
+2opp.
+4oppa
+op4p5art
+op4pas
+4oppe
+1oppg
+op4pi.
+op6pia
+op4pis
+opp3li
+3opply
+op6poe
+op6pr
+opp5rop
+opp5und
+opp1å2
+2o1pr
+op6re
+op7ru
+op7rå
+op6sa.
+o8p8si
+op2t1r
+o4q
+4or.
+o6r7add
+or3adr
+o2rag
+or1ak
+2oral
+or5ald
+o4r5alg
+oral4st
+or6alt.
+o3r4am
+o4rana
+o3rane
+o4rang
+o4rans
+or6ap
+or3att
+o4rau
+ora3uk
+or1a4v
+4orb
+orbit5
+or7by
+4orc
+orda9ta
+or3dea
+6ordel
+ord7e6pl
+or7dik
+ordi4s
+or4d5ise
+ord3it
+1ordn
+ordre8gi.
+ordsa6me.
+ords6e
+ord3st
+ordy9ra
+8ore
+orear8a
+orear8e
+o5rebra
+o8redi
+or1ei
+or1el
+o4rela
+o6reld
+ore6na.
+ore4ned
+ore4net
+or3enk
+oren3s
+ore6o5g6
+o6rerf
+o4rero
+ore1s2
+o5resc
+ores6te
+o4reta
+or9et8n
+o6retv
+o2rev
+2orf
+orfa6re.
+orfi7ne
+orfø9re.
+1or3g4a
+4orga.
+or3ge
+or5ger
+orge4s
+orgi6e5ne
+org4sk
+orha9g
+orha9le
+o1ri
+o3ria
+ori5b4
+ori4e5ne
+5orient
+o7riet
+o2rig
+ori7ka
+o6rim
+or3ind
+or3ink
+or3inn
+or3ins
+oriro8
+6oris
+oris4a
+6orit
+o4riti
+oriti6me.
+or5ka
+3orkes
+or5ko
+orko6se.
+ork7s2
+6orl
+orla7te
+or5le
+orm5ang
+or6map
+or5mel
+or4m3un
+ormæ9
+or4nar
+orned5
+orne6dr
+or5net
+or4nol
+orn3t
+4oro
+o3roa
+o3roe
+or3off
+o5rog
+oro5i
+o1ron
+or1op
+o4r1or
+oror9da
+o5rosa
+o5rot
+or3ove
+or5ovn
+orpe6s
+4orr
+2ors
+ors5alt
+or5sen
+or4serk
+orse9ta
+orse7te.
+or3si
+ors5kar
+orsk5ei4
+ors8k9l
+ors4ku
+or1s4l
+orsmå8la
+or1sn
+or3s2o
+orso9na
+orso9ne
+orso9v
+ors4pa
+ors4ten
+or1su
+orsva9re
+or3sy
+or9sø
+2ort
+or4t3ak
+orta8la.
+or4t5and
+orta9pe
+or4t5av
+orte5i6g
+or4tek
+or3tem
+or6t5erf
+or4t5erm
+or5tii
+or7til
+or5tis
+3ortod
+or6tok
+orto9ne
+orto4r
+ort5ori
+or4tou
+ort5res
+ort5råd
+ortå4
+or4t3år
+or1u
+oru8d
+or9ude
+oru4h
+o5rum
+oru4t5
+oruta4
+or4utf
+orva9ra
+or5veg
+orv3s
+4ory
+o7rya
+or1yn
+o9r4ære
+2orø
+or9ø8k
+orøk8t
+or5ør
+or3ø4v
+orøv8d
+or1øy
+or5ås
+2os
+o1sa
+o4sa5b
+o6sad
+o2saf
+o4saku
+6o5sau
+osbi7
+osefi5
+o2seg
+o5selei
+o2sem
+os2en
+o6sena
+ose5sl
+ose5sm
+oses4sk
+oses6sp
+oses4st
+o4seu
+osfa9ta
+os2hi
+os7his
+osi6e7ne
+osi5ere
+osi5ert
+o2s1ing
+osk3ei
+oskei6e
+o4skil
+osk9lar
+osk5len
+o1sko
+osko5p
+o3skri
+os8k3v
+os2l
+os3le
+oslo1
+os3lod
+os5lu
+os5lø
+os9ma
+os5me
+os3mo
+o2sn
+o3so
+os7ove
+os6pa.
+os6pe.
+os4pil
+os4por
+os4sek
+os3sem
+os5sens
+osseri7e6
+osse5v
+ossis5te
+os6ski
+oss3kj
+os4s5ko
+oss9l
+os6spa
+oss7tro
+os7sty
+os8sv
+ost5adr
+os5tal
+osta5le
+o8ste.
+os4teg
+ost5egg
+os4tek
+ost6el
+os5teo
+o4sti.
+o8stia
+o4stie
+o4stin
+os5tis
+ost1o
+os6tons
+ost5ran
+ost3re
+o3stro
+ost5rup
+ost7rå
+o5stø
+os1v
+os5øy
+os7år
+2ot
+o1ta
+o5tad
+ota4l5a
+ot5ald
+otal7ev
+ota4lov
+o9tane
+o9tar.
+ot3arg
+o8t9arm
+o5tas
+ote7d
+ot6ei
+ote5int
+otek5i
+ote6k7la
+otekla8ga
+ote4kle
+ot5elem
+ote5lev
+otel6lan
+otel6lek
+otel4li
+otel8lø
+o4tena
+o4t5ende
+oten8de.
+o2teo
+o4teram
+o4teret
+o6terev
+o4tero
+oter5s
+ote5r8u
+o4terå
+otes6ter
+ote5sté
+otet5a
+otet5o
+otet3s6
+otfø4
+oti7ert
+oti2k
+otika3
+ot7i6ko
+o1tj
+o6tja
+ot5jer
+ot6nero
+otno7te.
+ot6nå
+o1to
+o2to.
+o4to3a
+o5toa.
+o2tob
+oto6en.
+o6tof
+ot3off
+o6toga
+o6togram
+o4toi
+o2tol
+oto5ne
+oto4ral
+otor5d
+o2tot
+o2tou
+o1tr
+ot7red
+ot5rer
+ot5rev
+o6t7ri
+o6t5rom
+o6t5rø
+ots5el
+ot6sh
+otshusvæ8
+ot4s3ki
+ots6op
+otsopp6
+ots5pr
+ots5tab
+ot7ste
+ots6å
+ot6tank
+ot5tas
+ot5tegn
+ot6tenk
+ot5tese
+ot5tin
+ot5toa
+ott4s3k
+otts5po
+otts4ti
+ot7tug
+ot4typ
+o1tu
+o6t5ut
+o1ty
+oty8e
+ot1yt
+o1tø
+ot7å
+oub8
+oul5l
+oun6ge.
+ou4r
+ou7ri
+ou5ro
+ou9sa
+out8a
+ouve4
+o5vae
+o1vak
+ovanfø8
+ovan9o
+ov3anv
+o7var.
+o6varb
+ova9re
+ov5art
+ov7arv
+oved3
+o1vei
+o1vel
+ove4la
+4oven
+o4vend
+o5vende
+ove6nya
+ove2r
+over3a
+ove7ra.
+ove9ras
+o6verdr
+overe6
+ove8r5es
+3o6verf
+3overg
+o5verks
+5overr
+5oversik
+overs4p
+over9v
+o1vet
+6ovh
+2o1vi
+oviso3
+2ovj
+6ovna
+ov4nes
+2ovni
+4ovo
+o5vo.
+o7vom
+ov1or
+o5vot
+ov1o2v
+ov5sal
+ov4sek
+ov4sen
+ov9ske
+ov4sle
+ovs1p
+ovs5te
+ov4sti
+ov7sun
+ovsy5k
+ovta6le.
+ovveg7i
+ow1
+owa8
+o7was
+owat2
+ow5h
+ox3
+oy9ar
+oys5l
+o1y2t
+o1za
+o3zy
+o1ø
+o1å
+ô6ra
+ô2re
+ôr5ei
+ô1ri
+ô4t
+ó9sa
+ó7t
+ó8v
+ò9re
+1pa
+4paa
+2pac
+pa8cen
+p5ad.
+pa3deb
+p4adg
+pads4
+2paj
+6pak.
+6paka
+4pake
+pak4kas
+pakke4s
+pakk7esl
+4pakti
+3pa1la
+pa3le
+pa7lim
+pal5in
+pal1j
+pal5lø
+5palm
+4palø
+2pam
+pa5me
+p3anal
+pa4nap
+pan9de
+pa5ne
+pang5s6
+pan3ka
+9panne.
+pan5se
+pan5sl
+pant8r
+4panv
+pa4ny
+2papa
+pa8pa.
+pa3pe
+4papo
+pap4pr
+4papr
+pap3ri
+pa4ra.
+5parad
+2parb
+4parek
+4parena
+par5ess
+par5g
+2pari
+pa4ri.
+pa3ris
+4parki
+par6k7l
+par4kv
+par3m8
+pa1ro
+4parr
+par8ra.
+par9s4
+par6tid
+par4tig
+par4tin
+par5u
+par7v
+parvi6
+6parø
+4parå
+p6as
+pasa5
+pa9se
+pase6r5
+4pasp
+3pass
+pas5sab
+pa4s3t
+pas4tar
+pas5ti
+pas9v
+pa1t
+pa3te
+pa4tist
+pa6tre
+p8atta
+pat6tak
+2patu
+p8at6v
+pau7k
+2pav
+pa4ve.
+3pa1vi
+2p1b6
+pba4ne.
+pbo6da
+pce6
+2p1d4
+pde4le.
+pdø2
+pdø9d
+1pe
+2pea
+peak3
+pe4a3re
+4peb
+pec3
+pe7d6a
+5pedas
+4pedd
+pe3de
+pedfø9
+pedi9e8
+pe6doa
+pe6don
+4pedr
+pe4dro
+4pedu
+4pedy6
+2pedø
+pe7då
+pee6
+pe3er
+2pef
+p5eft
+2peg
+p5egg
+peg8ge.
+pego4
+2peh
+pe4il
+pei4leg
+2pe1in
+pe6ism
+2pej
+2pek
+pe8ka.
+pek4l
+pek4tro
+pekt7ros
+8peku
+p6el
+4pela
+pe5l4aks
+5pelal
+pe5lar
+pel9d
+4peled
+pe4lef
+4pelei
+pe6lep
+4peler
+pe6lev
+6peliv
+6pelj
+pel4lo
+4pelov
+pel5s6e
+pel5s4i
+pel7st
+4pelu
+pe5lun
+2pely
+2pelø
+6pelå
+2pem
+p1emb
+pe4nan
+pe4n3ar
+pen3de
+6p5enden.
+4pener
+pe3net
+5peng8
+pen4gel
+pen7gl
+peni4n
+4peniv
+penly4
+pen7s8a
+pensa7k
+pensa8la
+pen5sk
+pen4s5l
+pen3s6m
+pen5s6o
+pens4t
+pen9sta
+pen7ste
+pen7tag
+pen5tr
+6peny
+2penå
+2peo
+pe7o6s
+2pep
+pep5ar.
+pep7p
+pera3a
+4pe4rab
+4perad
+pe4rai
+pe4ral
+4perap
+pera5t
+4perate
+4pered
+4perei
+4perek
+4peresp
+4perest
+4peresu
+4peret
+pe4rev
+3peri
+perie8ns
+4pe5rik
+peri3s4
+4perit
+per5k
+per6les
+per5mu
+per5n
+4pero
+pe3ros
+pero6se.
+per6regj
+per6rei
+5perro
+pers6m
+per4tro
+per4t5rå
+pervi6k
+2pery
+6perø
+4pe7rå
+2pe1s
+3pes.
+pe3se
+pe6se.
+pe7si
+pes8ka.
+p3eske
+pes4ke.
+6pesl
+pes4n
+5pess
+3pest.
+5peste.
+pes5til
+4petab
+peta6ka
+4petal
+4petas
+4petau
+pe3te
+5pete.
+4peted
+6petei
+6petek
+4petel
+4petem
+pe3ti
+4petid
+4petil
+pe4tim
+2petj
+2peto
+2pet4r
+pe4t5ru
+pet1s6
+4pett
+2petu
+4petø
+4petå
+pe2u
+2pev
+peva8ne.
+pe5vi
+p5evn
+pev6ne.
+4peø
+4peå
+3pér
+2p1f
+3p6fenn
+p3fo
+p5fr
+pfri4
+pfø5re
+2p1g2
+pgjer4
+2p1h
+phav2
+pha9va
+phavs5
+phe9te
+phe7va
+phe5ve
+phi5li
+7pi3ane
+7piar
+pi4as
+7piase
+4piav
+4pib
+pi6ca.
+2pid
+pid3s2
+pie2n
+6piend
+pi3er.
+pi9ers
+2pif
+pi9fr
+pig5ge
+pig6g9u
+p7i6gj
+2pih
+6pii
+pi4keh
+pi6kel
+pike5r6o
+pi4ké
+8pikk
+pik3ko
+4pikl
+piku5
+pi5la
+pi6la.
+pi3lep
+pil4lag
+pillba6
+pil6led
+pil4leg
+pillega6
+pille6ra
+pil4le5s6
+pi1lo
+2pim
+pi4na.
+pi4ne.
+pi9ned
+pi4nel
+pine4v
+3ping
+pin6go
+ping3r
+ping5sk
+6pinns
+pin4sl
+pi2nø
+pio6n5an
+pion5s
+3pi2p
+pi4pi
+pip9la
+pi4rar
+pi4res
+pi4rut
+pisi9e
+pi4ski
+2piso
+piss4l
+pis4sp
+pis4st
+pis1t
+pis4t5r
+pis9t8ra.
+1pit
+pi9ta
+pita7la.
+pi5té
+2piti
+4pitj
+4pitr
+pit5t
+2piu
+2pi5v
+4piø
+4p5k4
+pka5v
+pka8va
+pl6
+8pl.
+2plad
+pla8de.
+p4lak
+p4lan.
+plan7de
+4plane.
+plan5g
+plan5s
+plap3
+4p1lar
+p2las
+pla4st
+p2lat
+platina5
+2ple.
+2pled
+4pleis
+p2lek
+p6le5n4u
+ple5n4a
+ple6r5u
+ple8se.
+4plev
+p2li
+4plit
+p3liv
+pli7va
+plo4gj
+p4lo8i
+p1lok
+4p5lov
+plu4e
+p4luk
+plun3
+plun6d7ri
+p1ly
+ply5d8
+plæ5re
+plø6pa
+p1lå
+2p3m
+2p1n4
+p7ner
+pne6se.
+1po
+po9a
+pod8
+po6da.
+po4de.
+po6em
+2pof
+po6f7r
+pog6
+4poh
+po5id
+2poke
+po6lan
+po3le
+po4lek
+6polj
+pol5li
+po6lom
+pol6s4ka
+po2lu
+2pom
+pom6p9u
+pom5s
+4pon.
+pon5d
+pon4gr
+pongs6
+2pon1s
+pon5sa
+pon4sv
+po2p1a
+po6pe.
+p5opn
+pop1s
+2por.
+po1ra
+2p5ord
+po1r4e
+po4ref
+po6reg
+po8ré
+2p1org
+2pori
+2pork
+por6s7v
+por4tor
+por4t5ro
+por4trå
+2porv
+po1ræ
+po1rø
+po4se.
+po4ses
+4posj
+po2st
+po4sta
+pos5tas
+po5stat
+pos3te
+4pos4v
+5pot.
+7pota
+potak9
+po3te
+po4te.
+potek5l
+po5t6ha
+3poti
+4potr
+4pou
+2po4v
+pove6
+pover6n
+pow4
+2pp
+p2pad
+p2pak
+pp3akt
+p2p3a4l
+p9pane
+pp5angr
+pp5ank
+p4p3anl
+p2pap
+p9par.
+pp5arr
+p7past
+p4p7at
+p4pee
+p2pe5i4
+ppel5s6
+p4pena
+p8p9ender
+p4pendr
+ppe9nes
+ppe5p8
+p4penø
+ppe5ra
+p7pere.
+p4perkl
+pp7e6sen
+pp9esn
+ppes8ti
+p4peta
+pp5e4tas
+p4pete
+pp5ett
+p2peu
+p1pi
+pp1id
+p2p1il
+pp5im
+pp3inf
+p4p5inn
+pp7ir
+ppir8re.
+p4pist
+pp1j
+pp3k
+pp1l
+pp5last
+pp3led
+pp5lei
+pp9lev
+pp5n
+pp1of
+p2pol4
+pp3old
+pp5om
+p2p1op
+pp3ork
+pp1ov
+pp5p
+pp1r
+pp5rei
+pp5rin
+pp4ris
+pp7riss
+pp9riv
+pp9ro.
+ppropri6
+pp7rot
+pp1s
+ppse6te.
+pp3ska
+ppska9k
+pps2p
+pp9spe
+pp3spl
+pps2t
+pp7sto
+pp7t2
+p2pu
+pp1uk
+pp5ut
+pp3ø4
+ppøs8
+p6på
+pr6
+4pr.
+4prad
+3praks
+pra7li
+2pran
+pran3s
+5prat.
+5prate
+pra5te.
+4pray
+5pref
+prei7er.
+4preii
+pr5elem
+1prem
+pren4s
+1pres
+6pres.
+pres6sak
+p6restas
+4prett
+p3rif
+pri5ke
+pri4l3e
+4pring
+5prino
+3pr6in6s5
+3pr6in7s6e
+3pr6in7s6i
+1pris
+pri6s5k
+pris3t
+2prit
+pri9ve
+1p2ro
+8pro.
+6p7roc
+3prof
+4prog.
+4proge
+4progl
+4p3roi
+p5rop.
+3pros
+7prose
+6pru
+prun7ge
+pru5ta
+pru5te
+6prør
+prørs5t
+prø5s4
+5prøv
+prø5vels
+2prøy
+4prå
+prå8da
+pråk3i
+prå4ko
+pråk5k6
+2ps
+p1sa.
+ps5a6n
+p1sc
+p3se.
+psei8ge
+p2sek
+p2s1el
+ps5e4ly
+p3sen.
+p5sens
+p7ser.
+p5sete
+p5sets
+p2sh
+p6sib
+ps5ins
+p7sis
+p3s4jo
+p4s3kil
+ps7kjen
+p2s1ko
+p7s6ko.
+p3skod
+p5s4koe
+p2sle
+p9s8lo.
+pslø8va
+pslø6ve.
+p3s4lå
+p2sm
+psmå8la.
+p2sn
+ps4no
+ps1o
+p3sod
+pspi9la
+ps5ple
+p3s4pre
+p4s5pro
+ps5pu
+ps3s2
+pst2
+ps7tal
+p4s5tem
+ps3tv
+p5s6tå
+psu4r
+p3s4us
+ps1v
+p2sva
+p2sve
+ps4ving
+p4svæ
+ps5w
+psy3ke
+3psyko
+4psys
+p2s1ø
+p3s2øk
+psø4ke.
+psøy8
+psøy9ene
+ps1å
+2p1t
+pta8la.
+pta4le.
+pt7ark
+p3te
+pte6k
+pte4ma.
+pte7re
+p5ti
+pto7g
+p4tou
+ptus5t
+p4tut
+1pu
+pu4br
+5puc
+6pu6dy
+pu2k
+pu7la
+pu8le.
+pull6
+5pum
+pu4ma.
+punk4t5
+punk5t6e
+2punn
+2pur
+pu4re.
+pu8rea
+3puri
+3purk
+pur5u
+pur3v
+pu7sa
+pus4h
+pusl7u
+pu1ta
+pu4ta.
+pu5tas
+pu5ter
+pu5tev
+4putg
+2puts
+put6tr
+put4tu
+2putv
+6putø
+2p1v
+pver7
+pvi4se.
+py4dr
+py8o
+3pyra
+py1re
+py1ro
+6pys
+py6sa.
+py4se.
+pys6t
+4p5z
+1pæ
+pæ4re.
+pø1kj
+pør4ret
+pø8sa.
+pø9ta
+pø9te
+p1ø2v8
+5påb
+på4by.
+på1k2
+1pål
+på4la.
+på4le.
+p5ån
+på3pe
+på1pl
+p1åpn
+på1r
+1pås
+på7sko
+på5sm
+på3t2
+6påtå7
+1påv
+qa5
+qu2
+qu9ar.
+1que
+que7r
+4raam
+4raar
+4rabis
+ra1bo4
+4rabr
+2raby
+ra3cet
+ra3ch
+5raci
+ra3d2a
+4radf
+3radio3
+4radir
+4radj
+2radm
+2ra1dr
+r3adre
+rad2s3
+radvi4
+ra5ede
+rael4
+4raerk
+raf4fer
+ra4fiu
+ra2fj
+2rafo
+ra5fo.
+ra4fos
+2rafr
+ra5fre
+6raft
+ra4fu
+ra6fy
+ra7gea
+ra5gee
+2ragl
+2rah6
+7raid
+ra5int
+ra3isk
+6r5akad
+ra9kar
+ra7kel
+ra5k6ha
+r2akk
+rak4kel
+r6akr
+ra5kro
+2raks
+rak6sa
+rak3s4e
+rak6se.
+rakst6
+4rakti
+rakt3r
+r4a5ku
+4rakv
+ral5ans
+6ralbum
+5ralds
+4raled
+ra5leo
+ral3g
+4r5alge
+4r5algo
+rali5e6n
+ra4lin
+ral1j
+ral5le
+ral7m
+ralo6i
+ral3op
+ra5ly
+4ralø
+4ra5l8å
+ra4mag
+ra4mas
+ram3b
+6r9ambi
+rambu9ens
+6ramed
+4ra4mer
+ram8et.
+4ramil
+ram1o
+ramperi8
+ram6p3u
+ramse8te.
+ramta8la.
+ramta6le.
+4ramu
+6ramy
+r4an.
+ra4naa
+6r3anal
+ra5nar
+ran9cs
+r4an9de.
+r5andel
+rand3r
+rand5s6a
+r4ane
+4ranfa
+ran5ge
+6rangi
+rang5st
+rania8
+ra6nin
+ran3kv
+2r5anl
+r6anli
+2r1anm
+r4ann
+ran6n5ett
+ran4n5in
+rann3s4
+rans7kar
+4ransv
+ran4tik
+ra5nu
+ran6ut
+4ranø
+2rao
+4rapa
+ra4pel
+4rapin
+ra4pir
+ra4pis
+ra6pit
+ra1pl
+4rapo
+ra4pos
+4rappa
+4r5appl
+3rappo
+2ra1pr
+4raps
+4rapu
+1r4ar.
+2rarb
+7rarbeh
+4rarea
+4rareg
+rar5e6l
+4ra3rep
+rar7eta
+r1arg
+6rargu
+8rarinna
+6rarinne
+rar8ka.
+4r1arm
+rar8ma.
+6rarn
+4rarr
+rar3re
+rar5s
+2r1ar5t
+rar6ta.
+ra3rø
+4rasa
+2rasc
+ra3sea
+4rasel
+ras3h
+raska8ra
+ras3ke
+ra4ski
+ra7s6ko
+ra6sl
+rass4l
+ras7st
+4rasti
+ra5s4til
+4rastj
+rast5re
+6rasty
+ras7v
+ra1ta
+ratak9
+r6ate
+ra4te.
+6ra5teg
+8r7a6teli
+4ratfe
+ra1to
+ra1t4r
+ra4t5ro
+ra4trø
+ra5t6røy
+rat5tel
+ratte4s
+4ratub
+rat5ut
+6raty
+7raud
+raud3s
+6raug
+rau6ga
+rau6ge.
+4rau4k
+raus6s
+2rav
+6ravd
+rave5s4
+4ravg
+ra1vi
+r3a4vis
+4ravl
+rav8l9ut
+ravlø8pa
+ravlø8s
+rav6r
+4ravt
+ra5vy
+ra3vør
+4raw
+raz5z6
+2raø
+raøy4
+2r1b8
+rba3d
+rbe2d
+rbede4
+rbed5en
+rbed5et
+rbed9ra
+rbie8
+rbi9er
+r2big
+r2bik
+rbist6
+rbis5tr
+rbo8di.
+rbo4ni
+rbon7s
+rbo5re
+rbra5s
+rbrei6
+rbu5en
+r5bø
+r1c
+4rd
+r4dab
+r5dag
+rdag4s5
+r5dah
+r4d5ak
+rdal4
+r4dala
+rda4le.
+rdals5
+rda4mes
+rda8n9o
+r4dant
+rd5anta
+r4d3arm
+r4d3art
+rd5atl
+r4datm
+r4d3au
+rd3d2
+r6dedi
+rde4en
+r3defi
+rd5e4ge
+rd1ei
+r9deka
+r4dekl
+r4deks
+r6delo
+r6demi
+r7dena
+r6d7eng
+r6d7enh
+rden4s3
+rdense4
+rdenta8le.
+r4deo
+r6depo
+r4derik
+r4d5erst
+rde6sm
+rd3e4ta
+r6d7ett
+r8dé
+rdfes5
+rdi3an
+r4diana
+r4dians
+r6diau
+r4did
+rdi3e2
+r2dif
+rdi6gres
+rdig3s4
+r4dika
+r4dikl
+r4diku
+r2dil
+r6dimi
+r2dio
+rdi3ov
+r4dish
+r2dit
+r2diu
+rd5je
+r1dju
+rd7m
+rd3n
+rdnæ4
+r9dob
+r4d5o4d
+r4dol
+rdon8na.
+rd1op
+r6dor
+rd3ost
+rd1o4v
+rdover5
+r9drad
+r3drak
+rd5ran
+rd7rara
+rd3ras
+r3drei
+rd3ret
+r5drev.
+rd1ri
+rd3rot
+rd3sei
+rd8ske
+rds4kv
+rds5tan
+rd3sto
+rdsto5g
+rds7tre
+rds7tu
+rdsva9r
+rd5t
+rdta8ka
+rd5tr
+rd7tø
+rd3und
+rd5ve
+rdvi8ka.
+r4dyg
+rdy5pe
+rdy3re
+r6d7yt
+r6d5æ
+r7d6ær
+r7d6æ5r6e
+rd1øs6
+rdø4ve.
+rd3år
+rd7å6s
+1re.
+2rean
+re7a6r7an
+rear5e
+4reav
+2reb
+3redak
+6redam
+re3def
+re5den
+re3des
+re3di
+3redig
+r1edl
+2redo
+2redr
+re4d5ri
+red5sku
+red4sl
+reds5la
+red7s6led
+3reduk
+6redy
+2redø
+2ree
+re4el.
+re3er
+8refa
+4reff
+4refi
+2refj
+6refos
+6refr
+4reft
+2refø
+4regar
+rega7ta
+re3ge
+4regeb
+re5gel
+4regen
+4reger
+4regg
+1regi
+re4gia
+re4gil
+reg1l
+2regr
+4regub
+4regud
+2regå
+2reh
+2reid
+2reie
+2r1eig
+rei8ga.
+rei8ge.
+4reik
+rei9l
+rei5na.
+rei7nas
+re5inde
+rei5ne.
+rei7nes
+rein6skj
+re4inva
+rei9ra
+rei5sa
+rei3si
+rei7ska
+reis6led
+re7ism
+rei7va
+rei5ve
+2rej
+6rek.
+re5ka.
+re5kav
+re7ken
+4rekj
+rekk6an
+rek4k5v
+5reklam
+rek4led
+re5k6lir
+re7ko
+4rekob
+4rekom
+4rekon
+6rekos
+4rekra
+3rekru
+r3eksa
+6reksp
+rek4ter
+4reku
+r8el.
+re9la
+4relag
+9relandsk.
+9relandske
+2r2ele
+rele8ge.
+r4e5lei
+6relek
+re7len
+7relene
+6relg
+r3elit
+4re3lj
+r2ell
+rel4lag
+rel6land
+rel5led
+rel4lev
+5r4elm
+rel5ses
+rel4sk
+4re1lu
+4relv
+2re5ly
+2relæ
+2relø
+4re7l6å
+relå7r
+2rem
+remann6
+r1emb
+remi6ene
+remi6l
+re7mis
+rem9ji
+remmed5
+6remn
+rem8na
+rem5p4
+rem1s
+remti9da
+4remu
+8remy
+4remå
+2re3na
+ren4del
+4rendr
+8rened
+re5neg
+re7nei
+4renek
+r3e4nel
+4renest
+6renet
+6rengd
+reng5l
+4rengn
+reng5st
+re5ni
+2renk
+ren6kl
+r3enl
+ren8ne8sl
+rennes9la
+re5no
+ren5sa
+r3enss
+6r7entit
+4r3en5tr
+6rentu
+4renu
+5renz
+6renæ
+4renø
+re5og
+2reop
+re3o2r
+5reou
+8repen
+6r5e6pi
+1repu
+6repus
+1rer
+6rerad
+6re9rang
+4rer6at
+re5re.
+4rered
+4reref
+4rereg
+4rerei
+re4rek
+4rerent
+4rerep
+4rerese
+4reresu
+4reret
+6rerfa
+4rerig
+4rerik
+4r3ernæ
+4rerol
+4rerom
+re3ros
+rero6se.
+re5rot
+3rers
+rers4p
+4rerute
+re6r7øy
+2rerå
+1res.
+2resa
+re2s3c
+re3se
+4resel
+re4sem
+4reset
+resi7ere
+4resin
+2resj
+2resk
+res5ke
+re6s7kje.
+res6kl
+res7kod
+re6sky
+6re1sl
+re4slu
+1resm
+re5smo
+re3sov
+re9spe
+4respi
+4respr
+2ress
+res4sal
+res4sek
+res4sit
+res4sj
+res6sk
+res6sort
+res4sp
+res4st
+res4sy
+res9tane
+5restau
+res6t5erv
+res4tes
+res3té
+4re3sti
+res4til
+re3str
+4restre
+7restv
+4re5sty
+4restå
+1resu
+6resuk
+4resun
+re3svi
+2resy
+2resø
+4retaki
+4retal
+re4tap
+4retea
+8retek.
+6reteke
+4retekn
+6retel
+6re5tem
+re5ten
+4re5ti
+4retj
+4retoa
+2re5t2r
+rets4i
+ret4st
+ret7ted
+ret5ter
+rett8o
+rett6set
+4re5tu
+2rety
+2retø
+5retøya.
+7retøyets
+4re7tå
+2reu
+reu6r
+4revak
+re5van
+reva5re.
+6reveg
+4revei
+4revel
+re6v7enh
+re5ver
+reve5s
+r3e4vig
+re4v5inn
+re7vom
+1revy
+re4v5åp
+3rew
+2reå
+2r1f
+rfa5re
+rfat5
+rfe8en.
+rfe8er
+rfe4et.
+rfei5li
+r4fik
+rflå3
+rfe5m6ø
+rft2
+rfu8se
+rfyr4
+r9fæ
+rfø8rarar
+2r1g
+r5ga.
+rga8le.
+rga8li
+rg5and
+r7gann
+r4g5anv
+rga3ri
+rg3art
+rga4ve.
+r6gedi
+r4gef
+r2gem
+rgent4
+r3geo
+r4gerei
+r4geret
+r4ge3ru
+r4gesj
+r4gesl
+r4gesta
+rgi1a
+rgie4n
+r2gik
+r2gil
+r2gim
+r2gio
+r2gir
+rg3i4ri
+rgi7sl
+r2giø
+rg2le
+rg5le.
+rglem5
+rg3len
+rg3ler
+r2gn
+r4gog
+r3gom
+r2got
+rg5rab
+rg3rea
+rg3rel
+rg5reps
+rg5rin
+r3gru
+rg5sc
+rgs6kor
+rg5s4le
+rg1sn
+rg5s6till
+rg5sto
+rg9stu
+rg2sy
+rgu7d
+rg6ut
+rgå9as
+rgå6va
+rgå6ve.
+2r1h
+rhav2
+rhavs3
+rhjul8s
+rho3d
+r7hu
+rhø5re
+rhånd6s9
+rhå9ne
+ri1an
+4rianf
+4rianl
+6riansv
+ri1ar
+4riarb
+4riarr
+6riau
+2riav
+ri4ava
+3ri6avo
+2rib
+ri2b3l
+ri8ca.
+ri4co.
+ri5da
+4ridale
+ri5der
+ri5di
+2r1idr
+rid3t
+4rieie
+4rieig
+4rieks
+ri1el
+6rield
+4rielem
+6rielim
+riel4la
+rie4n
+ri3end
+4rienh
+4rient
+rien5t4r
+ri1er
+rie5ra
+rie5ri
+4rietat
+ri5even
+2rifa
+riferi9e8
+rif4fi
+rifiserba8
+6rifj
+1rifl
+rif5la
+2rifo
+2rifu
+4rifø4
+ri4ga.
+rig4gr
+ri3gi
+4rigj
+4rigre
+rig2s
+rig6s7t
+2rih
+2rii
+2rij
+5rij.
+ri4kali
+ri5kan
+5rikd
+ri3kes
+ri7ki
+rik7ken
+rikk5j
+4rikl
+ri8k9la
+2ri7ko
+6rikon
+2ri1k2r
+rik4sk
+rik4s5u
+rikt6
+rikts3
+riku6m
+ri3k4v
+4rikå
+2rila
+6r5ilde
+6riled
+ri5lei
+ril6lest
+2ri5lo
+ril4sn
+2rilø
+4rima
+ri9mab
+ri9mar
+6rimes
+ri5met
+2rimi
+ri4mi.
+7rimis
+rim7l
+4rimm
+4rimo
+ri4mor
+4r1imp
+4rimu
+rim9ut
+4rimy
+rina5l
+ri5n6am
+4rinas
+4r5inc
+4rind
+r3indu
+ri4nee
+ri4nes
+2r1inf
+rin7gom
+ring3r
+ring4sa4
+rings5ak
+ring8spa
+2r3inj
+2rink
+4rinn
+rin9nes
+4rinor
+2rins
+rins6k
+rin6sm
+2rint
+rin4t5j
+rin4tr
+2rinv
+ri6nø
+2ri1of
+6ri3om
+2ri1op
+2rior
+rio5s4
+riot3r
+2rip
+4ripe
+ripo4s3
+4ri1r
+4risau
+4rised
+rise5i
+6risek
+4risel
+ri4seli
+4rish
+5risiko
+2risj
+ri6sju
+4riska
+ri4ski
+6risku
+4risky
+6ristad
+4ri5sted
+ris5tik
+4ristil
+ri4sto
+ris5tof
+ri5stun
+6ristø
+ri6stå
+4risv
+4risy
+4risø
+ri3te
+6riteo
+ri7ti
+riti9da
+4ritil
+4ritj
+ri5t6o
+ri5tr
+rit1s6
+ritt8s7t
+ri6tun
+4rity
+2riun
+riu4r
+2riut
+4rivar
+ri6ved
+rive9ge
+ri5vei
+4riverk
+2rivi
+ri4vi4s
+riv5ise
+6rivo
+4riøk
+riø4r3a
+8riøya
+4riå
+r1j
+rj7ambi
+r4jere
+r2jes
+r4jeti
+r4jetr
+r4jetu
+rju6la
+2r1k
+rk3akt
+r6kanf
+r4kao
+r4kapr
+r6katr
+r3ke.
+r2keh
+rk5eik
+rkei8ka
+r6kek
+r4kelo
+r4ke3lu
+r3ken.
+r4kenav
+r3kene
+r4keni
+r5kens
+rke5ri
+r4keris
+r4kero
+r5kers
+r4ke3ru
+r4kerø
+rke4se
+rkeslø7se
+r9ket.
+rk4han
+r3ki
+rki3d
+rki3e
+rki4vi
+rkjek8
+rk5jor
+rk1k2
+r5k8led
+rk2li
+rk5lun
+rk9lut
+rklæ5re
+rk2lø
+rklå9ra
+r3knek
+r5knep
+rk7nes
+r3kno
+r2kob
+rko6b5r
+r6kofo
+r2koh
+r4kola
+r4koli
+r4kope
+r4kora
+r4koru
+r4kosel
+rko6sele
+r4kosj
+r6k7ras
+rk5rei
+r5k6rem
+r8ks
+rk4sar
+r6k6seg
+rk2s1i
+rk4ska
+rk1st
+rk6stal
+rk4sten
+rk4s5ti
+rk4stj
+rk4sto
+rk6s5vi
+rk5ti
+rkti4s
+rk5to
+rku4le.
+r6k7u6t
+r4k5ve6d
+rk9vei
+r5kvel
+r4kver
+rk3ves
+rk5vik
+r4k5øl
+r2k3øy
+rk9øys
+rkå4k
+rk5åke
+rkå6pa
+rk5å4s
+2r1l
+rla4te.
+rle4a
+r2lef
+r3lep
+r4l5e4ri
+r6le7sl
+rle4st
+r4lesu
+r4leu
+r3l4i
+rli9ke
+rling3s4
+rli8ta
+rli4te.
+r3lj
+rl6o
+rlog2
+rlo5ve
+rl4sk
+rlu4e
+r3ly
+rlys7k
+r6l5z
+rlø8pa.
+r5løy9
+2r1m
+rma6ge.
+rma5k4l
+r4m5alte
+rm3anl
+rm4ans
+r6manv
+r4mare
+r4marr
+rm5av
+rm3b
+r2me7g
+r2mek
+rme6lap
+rme5ne
+r4menet
+r6merev
+r4mese
+rme9tar
+r4mey
+r4m5ide
+rmi6ene
+rmini6
+rmin5ski
+r6m5inst
+rm5i4v
+rm1je
+rmlø8pa
+rmo4e
+r2mof
+rm1op
+rmo7st
+rm7p
+rm5s6ko
+rm1sl
+rms6n
+rm1st
+rms5til
+rm1su
+rmta8la
+rm3te
+rmu7an
+rmue4
+rmue5ne
+rmu8la.
+rmu6le.
+rm5øy.
+r9må.
+rmål4
+r6m5åp
+r9mår
+r6m7åta
+2rn
+r3na
+r4n1ak
+r4n3ald
+r6n5appar
+r4narb
+r4n3art
+rnat7r
+r4natv
+r6n9a6vis
+rn3avl
+rn3d
+rndø4
+rndør5
+r3ne.
+rne5a2
+r5neboe
+r2nec
+r4nef
+r2nel
+rnele6ge.
+r3nell
+r3nels
+r4n3eng
+r4nenh
+r4nerei
+r6neris
+rne3ro
+rne1s2
+r5nes.
+rne6se.
+r8nesi
+r4ne3sk
+r4nesm
+rne3so
+rn5e4tab
+r4nete
+r2nev
+rne5vr
+r2nés
+rn5g6
+r4ninn
+rn5k4
+rn3n
+r5no.
+r4noa
+rno5b
+r4nod
+r4noi
+r6nok
+r2nom
+rn5omn
+rn3oms
+r4n1op
+rn3ork
+r2nos
+r4n1o4v
+rn7se
+rn4s3in
+rn5ske
+rn3skr
+rn5sla
+rnsle7ge
+rn7s6mi
+rn6s3ovn
+rn5spon
+rn3s4pr
+rn1st
+rn4sti
+rn3te
+rn5ti
+rn7tr
+rntre4
+rnt4v
+rnu4
+rn5ug
+r6n3ut
+r7nøt
+r4n5øv
+rnå8le.
+rn3ås
+ro1ak
+roa4s
+ro5asi
+9roban
+9robar
+1robe
+ro4bed
+ro4bef
+5roben
+ro4bes
+5robølgj
+1roc
+r3odds
+7rodo
+ro5end
+ro7ens
+ro7fa
+ro4fel
+ro4fem
+roff5ri
+ro7ga.
+roga9ta
+ro7ge.
+rog5ret
+ro6gry
+rog1s4
+ro2gu
+1roi
+ro4kel
+ro5ki
+rok6kat
+rok6keri
+rok5kl
+rok4kom
+ro7k6l
+rok5n
+rok7s
+rok8se.
+rok5v
+roli7ga
+4rolj
+rol4lab
+rol4lap
+rol4leg
+rolle8ge.
+rolle8se.
+rol4lis
+rol6ly
+rolo9v
+2roly
+ro6mak
+ro4mal
+3ro5m8an
+ro4mate
+2rom7b
+4ro3me
+rome5d
+4romk
+4r3omn
+ro4mor
+2romr
+rom5sla
+r7omsy
+romsø3
+rom3t
+ro5ne.
+ro7nim
+6ronism
+6ronista
+8roniste
+6ronisti
+4ronn
+ron4na
+rono5s
+ron1s4
+ronta6le.
+ro4pad
+5ropet
+ro4pia
+ro8pla.
+2ropp
+ro9py
+ror3a
+ror6da.
+ro3re
+ro1ru
+ro4sat
+ro5sel
+ro3sen
+4rosl
+ros3la
+ro4sm
+ro6sov
+ro1s1p
+ros4st
+ros4sy
+ros7tas
+ro3sti
+ro3str
+rost7rø
+rot5ekte
+ro5tes
+rote7ster
+roti7ka
+rot5ord
+ro5tu
+6roty
+roun2
+round3
+ro5ut
+ro5va.
+ro9vare
+ro7vas
+ro5vek
+ro7ven
+rove5re
+rov5sm
+rovve6
+rò6te.
+2r1p
+r5pa
+r6parb
+r5pefo
+r4peno
+r6penø
+r5pesk
+r5pet
+rp6j
+rp2l
+rp3lad
+rprø5ve
+r3pu
+rpun7g
+r6p5ut.
+r6p5øy
+r2påk
+2r1r
+r8raa
+r2rag
+rra3r
+r4raro
+rr3d
+rr6e
+r4reb
+r7rebart.
+r2ref
+rre7int
+r4rekl
+r5relat
+r4reo
+r4repl
+r4re3ru
+rre5sk
+r4resm
+r4reso
+r4respe
+r3ress
+rre4st
+rres5ta
+rre7sti
+rre5str
+rret6s5
+rre5u
+r3ri
+rri6ka.
+r6rip
+rri5v
+rr3m4
+rrmå8la
+rro6e
+r5rom
+rro8sa
+rro8se.
+rro8ta
+rr5s2
+r2r3un
+rr5v
+rrå5de
+4rs
+6rs.
+r1sa
+rs3ab
+r2s7ad
+r3sak
+rsa5ka
+r6sakt
+rsa6la.
+r8s9ald
+rs3all
+r5sam
+r4sarr
+rs3arv
+r1sc
+5s6ch6l
+r8sedi
+rse6g7
+r4seku
+rs4ela
+rs7eld
+r4seli
+r4s3elv
+rs5e4rik
+r3ses
+r4sesi
+r6sesu
+rse4te.
+rs6ett
+rsett8o
+r7sim6
+rsimp7
+rs1in
+r5s4ing
+r4sins
+rsis5t
+r7sja
+r4sjh
+rsj3or
+r3skad
+r6s7kaf
+rs4kam
+r3skap
+r4skar.
+r4skas
+r4ski
+r5skil
+rsk7inns
+r1skj
+rs5kjens
+r6skl
+rskla8g
+rsk5lar
+rs4k5le
+rs4k3læ
+r5sko.
+r5skoe
+rsk3op
+r4skor
+r3skot
+r1skr
+r4s3kra
+r5skriv
+r4s3kro
+r1sku
+r5sku.
+r5skue
+rsku7et
+rsk5und
+rsk5var
+rs5kys
+rsk5ø
+rs4lef
+r4slei
+rs4lek
+rs4les
+r5s6lit
+rs3lok
+r4slun
+rs4make
+rs4mo.
+rsmål4
+rs6nev
+r1so
+rso9a
+rs5oml
+rso6n5
+rso7n6al
+rso5n8e
+rso5n6i
+rsons4
+r2s1or
+rs5ord
+rso7ris
+rs1ov
+r1sp
+rs4pan
+rs6pat
+r5spel
+r4sper
+r7spes
+r5spi
+rs4por
+r5spred
+r4spå
+rs3s6
+r1s2t
+r4s5tabb
+rs5tank
+rs3tap
+r6st7b
+rs4ted
+rs4tem
+rs5tend
+rsten6s
+rs5ter.
+rstev9na
+r3stil
+r4s5tilf
+r4s5tilh
+r4s5tils
+r4s5tilv
+r5stis
+r4stit
+r6st5k
+rst4r
+rs9tre.
+rs7tree
+r4strin
+r4s5tro
+r5strø
+rst7ut
+rstu9va
+rstyg7
+r3st6ø
+r7stå
+rs5ukl
+rsu9r
+rsu7sa
+rs5usi
+r1sv
+rs8vak
+rsva9ra
+rsvar4s5
+rs1ve
+r3s4vek
+rs5vit
+rsy4na
+rsy3t
+r1sz
+rsøks3
+rs9øye
+6r1t
+rt5ad
+r4t5af
+rta4ka.
+r4tana
+rt3anl
+rta9pa
+r4tarr
+rt3art
+rt3avs
+r4tec
+r4teda
+r3tede
+r2tee
+r4tego
+r4tegr
+r4teie
+r4te3in
+r4teka
+rte6ke.
+r4teki
+r4teku
+rt5e4lit
+rte6ma.
+r3temp
+rten4s5k
+rtentle8
+r2teo
+r7t6er
+r5terd
+r5teres
+r4teris
+r5terk
+r4terå
+r4tese
+r6tesk
+r6testi
+r4teta
+r4tete
+r4tev
+r4th
+rtian8d
+r4tians
+r4tiar
+rti8ar.
+rti5en
+rti6gra
+r4ti3kv
+r4tila
+r4tili
+r4tilo
+r4ti7na
+r2tio
+r2tip
+rti7sa
+r6tiska
+r4tiski
+rt6i9so
+r4tisp
+rtis3s
+r4ti5str
+r3titu
+r2tiv
+rtma6le.
+r5to.
+rt3off
+r9tofo
+r9tok.
+rt3omk
+r4t3opp
+rt6opp.
+rt3ord
+r6t7o6s
+rt1o4v
+rt2r
+rt8ra
+r9tre.
+rt6red
+rt3reg
+rt3rei
+r4t5reko
+rt5rel
+rt5rep
+r7trib
+r4t3ris
+r4t5ros
+rt3rut
+r5t6rål
+rts3ar
+rt4seg
+rts5eng
+rt2si
+rt4s5ja
+rt5ske
+rt3skj
+rt5s4no
+rt3s4pe
+rt4sti
+rt7s6trek
+rt4s5tøy
+rts5unde
+rt3t4
+rtu6en.
+r7tug
+rt3und
+r2t1ut
+rtu8ve.
+rty8da.
+rty8de.
+rtyr5s
+rty6ra
+rt5yt
+rtæ9ra
+rt5øl
+r6t5ås3
+ru3and
+6ruav
+ru6avh
+ru8bl
+ru5bo
+ru4di.
+rud4r
+ruds4l
+ru4ele
+rue4r
+rue3s4
+ruga8l
+ruga5t
+rui3d6
+4ruk
+ruk4su
+rukt3s
+ru9la
+4ruli
+6r7ulk
+rul8ke.
+r2ull
+r7ulv
+r4um
+rum3al
+rum4p9l
+5r2unde
+run5del
+6r3under
+7r4under.
+r5unders
+rund3r
+rund3s4
+run6ge.
+4ru2ni
+run5kr
+r7uly
+ru4nøy
+ru2r
+ru5ra
+ru8ran
+ru8rar
+ru9rer
+rur8ta
+r4us
+rus2h3
+6r7u6sik
+rus5j
+rus7lu
+ru1s4o
+rus5sel
+rus4st
+ru4s4t3r
+r4uta
+ru3tal
+ruta8la.
+r7utan.
+r4utbe
+4rutd
+rut8e
+rute3i
+ru4tel
+ru9tene.
+ru9ter
+2rutg
+r1utk
+rut9o
+6rutr
+rut4re
+ru6trø
+rutto5
+2rutv
+ru5va
+ru4ved
+ru4veg
+ru4vei
+ru4vel
+ru4vere
+ru4ves
+ruvi8
+ru6v7is
+2r1v
+rv4a
+rva7ka
+rva6la
+rve3de
+rve4den
+r4ve5dr
+r4vega
+r4vegi
+r4vegr
+r4veim
+rveis7e6
+rve5kl
+r4vela
+rvel9le
+r4v5eng
+r5ver.
+rve5re
+r2ves
+r2vev
+rvil9l
+rville9d
+rv2j
+r4vos
+r4vov
+r3vr
+rv2s1
+rv5ung
+rvå7r
+4r1w
+rx1
+ry1a4
+ry2dr
+ry7fe
+ry5fl
+ry5ke.
+2ry1kl
+ry7le
+ryl4l5i8s
+4r5yndl
+ry4nes
+ry5nes.
+ry4pa.
+2ryr
+ry8re
+r1yrk
+ryr4ke.
+ry9ro
+ry5rø
+rys6sal
+ry5ta
+ry4tek
+1rytm
+r3ytr
+r4z
+ræ7le
+8r3æ4re
+8r3æ4ren
+rær5in
+rær8t
+ræ8v
+2rø.
+rø8ar
+6røb
+rø4be.
+rø4dek
+rød1s
+4røep
+røf5l
+rø4ke.
+rø4kero
+røk3l
+4røkn
+røk5s4
+røk7t
+røk1v
+2røl
+rø6m
+røm1a
+røn5nes
+rønn5s4a
+rønn5sk
+røn5sko
+5r6øntg
+rø4pe.
+røp9l
+1rør
+rør5d6
+r6ørende.
+rø7ret
+5rørl
+rø2r3o
+rør4sp
+r8øs.
+rø3se
+rø5sla
+røs5v
+rø8ta
+røt9as
+rø1va
+rø5vede
+rø9vers
+rø1vi
+r4ø5væ
+2r1øy.
+4røya
+røy9ar
+røy6ed
+røy6ene
+røy5es
+røy4et
+5r6øyk
+3røyr
+røy5re
+røy8senes
+6røy4s3k
+røy4st
+2rå.
+rå7a
+4råag
+4råb
+3rådet
+rådy9ra
+rå9ene
+2råf
+4rå5g4
+2råkj
+råk3re
+rå2k3u
+råk1v
+4rål
+råle7s8
+rå4let
+rå5let.
+rå5lu
+r5ånd
+rån6da
+2råp
+2r1år
+rårs5k
+rå5ru
+rå1s
+4råsb
+2råse
+rå5si
+2råsj
+rås4t
+6råta
+råta8ka.
+rå5tr
+rå5tu
+2saa
+5saa.
+sa4ba.
+s6abe
+s8abl
+sa5bok
+s3abon
+sa5by
+sa3ce
+sa4dag
+4sadam
+sa4dere
+4sadm
+sa4do
+2sadv
+sae5d
+3saen
+7saer
+1safe
+5saga
+sa4ga.
+sa4gas
+sa4gat
+6sagent
+6s5agg
+6s5a6gi
+sag8na
+sa6go.
+sa4gog
+2s1a2gr
+sag3s4
+sa3ik
+sa5ir
+sa1is
+5sak.
+sa2ka
+3saka.
+4sakad
+sa5kai
+3sakb
+3sakd
+3s4a3ke
+5sakf
+1sakh
+sakh5e
+1saki
+sa4kj
+sak5kr
+s4akky
+5sakl
+5sakm
+4sako
+3sakp
+sa1k2r
+5s4aks.
+sak4s3i
+4s3aksj
+sak4sp
+5saksr
+5saksu
+2s1akt
+sak6ta.
+5s4akto
+s4aku
+4sa7kø
+1s4al.
+sa1la
+4s5alarm
+7sala.
+5sa5lat
+4salb
+1sa3le
+sa9let
+1salg
+s4alge
+4s5algo
+salg6s5
+s6ali
+sal4mes
+sa5lo
+5sal2s3
+sals4a
+4salter
+sa1lu
+3salv
+sal5ved
+2saly
+1s2am
+5sam.
+sa2ma
+sa5ma.
+sam4an7
+sa5mas
+sam5ei
+sa4mel
+sa4met
+5saml
+sam4lev
+5samm
+sammen5
+sa4my
+4s1a2na
+sa9na.
+sa7nar
+sa3nat
+san6da.
+san7d8al
+5s6ande.
+sand5r
+sand5s6lo
+sand5st
+san4d5ø
+1s2a5ne
+4s3a6nek
+5sang.
+3sange
+4s3angr
+s7anken
+2s1anl
+s5anm
+san5ne
+6sanno
+sa2no
+s5anor
+san5os
+san1s
+5s4ans.
+4sansa
+5s4ansen
+san7s6k
+4s5ans8l
+6sansv
+s8ant.
+san9te
+6santr
+4santy
+4s1anv
+2s1ap
+sa2po
+1s2ar.
+1sara
+6sarab
+2sarb
+s4ard
+9s8are.
+4sareal
+4sareg
+sa5rev
+3sari
+sa4ri.
+sar6ka.
+4s3arki
+2s1arm
+sar5me
+sar8me.
+s1arr
+2s1art
+sar4ta.
+sa4ru
+4sarv
+s4ary
+1sas
+8sasju
+2s1a4sp
+4s1ass
+s6ast
+4sasty
+2sasu
+4sasy
+1sat
+sa1ta
+sa5ten
+sa3ti
+2s1atl
+4s3atmos
+sa1to
+4sa5t6r
+s5atsk
+5satt.
+4s3atta
+6s5atten
+satte4s
+5sau.
+sau4d
+sau5di.
+5saue
+4saug
+sau6ga
+s3auge
+sau6ge.
+2s1auk
+5saum
+3saus
+4saut
+2s1av
+s2ava
+sa4ve.
+5s6a5v6in
+sav5n
+3savu
+8s9b4
+sba4ne.
+sbi6e
+sbo4da
+sbu6et
+s6bug
+sbul3
+sby8ta
+4sca
+1sce
+2scel
+s4cene
+s3cer
+6sch.
+8schl.
+6s7cl
+4sco.
+6scoc
+4scos
+s4cus
+8s9d6
+sdag4s5
+sdam9p
+sde6le.
+sdu8en.
+sdu8er
+sdø8v
+1se
+2se1a
+3sea.
+sea4g
+se3an5d
+se7ansa
+sea9re
+5se4au3sk
+2seb
+4sec
+4sedag
+sed5d
+se3de
+5sede.
+5sedl
+4sedo
+2sedr
+2sedu
+6sedvanle
+2sedø
+5see.
+see3d
+2seef
+2seeg
+se6e3i
+se3e4l
+se5en
+seer1
+5sees
+2seev
+2sef
+s1eff
+4s1eft
+6sega
+sega6l
+se2ge
+se6ges
+se3gev
+seg8ga.
+9segl.
+7seglet
+3segm
+4s2e7g8r
+2seh
+2seid
+sei8dan
+sei9den
+sei8e9nes
+s5ei4et
+2seig
+sei6ga.
+sei5ge
+sei5k
+3se8il
+6seim
+2sein
+se3ind
+s3eini
+se6ink
+se3ins
+se3int
+sei5r
+3seis
+2sej
+5sej.
+2se5ka
+3seke
+4seki
+2sekj
+5sekk
+sek4kes
+2sek4l
+4se3kn
+2seko
+se2k1r
+4sekra
+4sekri
+4sekro
+3s4eksj
+4seksp
+sek4st
+sek2t3an
+sek6te.
+sekte9ra
+3sek5to
+4seky
+4sekå
+s2el
+2sela
+se6la.
+3selak
+5selane
+5selar
+sel5art
+s3e4las
+se6l5at
+sel1d
+se4le.
+4se5led
+6selega
+4selei
+4s3elem
+4seleng
+4seles
+4s3e4lev
+5s6elg
+4selik
+4selil
+4selis
+4s3e4lit
+sel6løp
+2selo
+7selol
+se3lom
+3sels
+sel4sin
+8s5elske
+sel9s8lag
+sel4spo
+sel5t6
+2selu
+se6l7u6r
+sel4v5ak
+sel4van
+selv3e4
+sel4ve.
+selvei4
+sel4ver
+sel8vin
+2sely
+2selæ
+2selø
+selø8pa.
+6selå
+2se3ma
+3semb
+7semd
+se5me
+se4mi.
+semini6
+2s1emn
+sem4na
+9semnd
+2semo
+sem5pe
+2semå
+s2en.
+6senau
+sen9d8a
+sen6dela
+6senden
+4sendr
+s2ene
+4sened
+se3neg
+4senem
+8senesa
+6senese
+sene8se.
+s5engas
+2s1enh
+se6nin
+s3enkj
+5sen3n
+s2ens
+4s5ensem
+sen6s5end
+sen4sj
+sen3so
+7s6ent
+sen5ter
+8s7en5trep
+4senum
+4seny
+2senæ
+6senø
+2seo2
+7seod
+se3or
+2sep
+se3pe
+seperso5
+3sept
+s2er.
+se3ra
+4seram
+5seran
+4serap
+5seras
+6serau
+ser5d
+s2e5r4e
+5sere.
+4serea
+4sered
+4seref
+4sereg
+4serei
+4serek
+4serel
+4serenn
+4serent
+4serep
+4sereso
+4seress
+4serest
+4seresu
+4seret
+4serev
+s1erf
+s2eri
+seri6e5ne
+4serik
+4serkje
+5serkr
+5sern
+ser7nev
+2se1ro
+se4rop
+se4ror
+se4ros
+9s6ert
+ser4tak
+ser6tat
+ser4tr
+se1ru
+4serul
+se4r3un
+ser4ved
+ser4vel
+2sery
+2se5r6ø
+2serå
+5ses.
+ses5ald
+5sesals
+ses5alt
+4sesc
+2sese
+se4sene
+ses5in
+se3sj
+4sesje
+4sesjuk
+ses5kal
+ses5kar
+ses5kv
+ses5lit
+se3sna
+5seso
+ses3pr
+ses4s5in
+se1st
+5sest.
+5seste.
+4sesto
+ses5un
+ses1v
+2sesy
+4sesø
+ses3å
+3s2et.
+2se2t6a
+3seta.
+se5tae
+seta8ka
+se5tar
+6setea
+4seteg
+4setei
+4setek
+se7tel
+se4tera
+se5tero
+4setes
+2se3ti
+se8ti.
+s3e4tik
+s3e4tis
+4setje
+5setje.
+7setl
+5setn
+2seto
+2set6r
+s4ets
+s5etters
+2setu
+2setv
+2sety
+6setø
+3seum
+4seun
+seure9ne
+seu2t
+2sev
+seva6ne.
+s8e5var
+sev4d
+sevi4sa
+s1evn
+sev4ne.
+se3vr
+3sevåg
+2seyn
+2seø
+2seå
+1sé
+2séa
+6séb
+4sée
+4séf
+4séj
+4sék
+2sél
+4séo
+6sép
+9sér
+4sés
+2sév
+2s1f
+sfa4ne.
+6sfe
+sfe6et.
+sfes5
+sfisken8
+sflå3
+s5fo
+sfo8ra
+sforlø9
+sfra5s
+sfri5e6re
+sfyrs5
+3sfæ
+sfø9ren
+sfø5rer
+sfø5ri
+6s9g6
+sga4l
+sga8va
+sga4ve.
+sgen9s
+sge4st
+sgå4va
+sgå4ve.
+s1h
+4sh.
+sha2k
+s7hat
+s3hau
+6she
+shea4
+s5hei5
+7sh6e4rif
+s4hi.
+s6hip
+sh5isk
+4shj
+6s7hopp
+3short
+3show
+6shs
+2shu
+4s5hy
+s5hø
+shø8l
+shø6va
+shø6ve.
+s7hå
+1si
+sial5v6
+4sia5m
+si7ans
+4siap
+4siav
+si2bl
+3si2da
+3si4de.
+3si3den
+si4deo
+s4ider
+si5der.
+si4dete
+2si2do
+4s1idr
+sid8ra
+4sidy
+4sieg
+si1el
+sie4n
+si5er.
+si6eren
+sie4s
+si3est
+6sife
+si3fl
+2sifo
+si4f3r
+2sifu
+4sifø
+3sig
+siger4s
+4sigi
+4s3iglo
+si5gr
+4sih
+3sik
+si3ka
+si5ke.
+sik2h7
+sik4ka
+sikk8artet
+sik4k5el
+sik4ko
+siko3
+si4kom
+si4kop
+si4kos
+si4kot
+sikt4s3
+s2il
+5sil.
+3sild
+sil4del
+sil4der
+sil4des
+sil5j
+sil2k
+sil4les
+2silø
+si6mel
+4simet
+2simp
+si3mu
+4sinde
+4s3indu
+si3nek
+2s1inf
+sing4s5a4
+7singu
+si4ni
+4sinj
+2sinn
+3s4inn.
+7s4inna
+s6inne.
+5sinnet
+s3innh
+s5innk
+s3innl
+4sinnt
+si5nob
+sinsk5e
+2s1int
+4sinv
+si6nø
+4si5ov
+si4pa.
+si8pe.
+si6re.
+si7ren
+si4ri.
+sir8kl
+s2is
+si5sel
+si4serf
+sis5e4v
+si6sin
+6sisju
+si4sk
+sis5ke
+si4sn
+si4s5te
+si4sti
+sis3to
+4sisy
+3s2it
+si5ta
+sit8ji
+si6t7ra
+si4t5re
+si4tri
+sit3s4
+sitsva9
+sit6term
+sit4tes
+si4umf
+4siut
+5siva
+si9van
+si6vek
+si8vi.
+si9våt
+1sj
+2sj.
+s2ja.
+8s5ja9g
+4sjam
+s4jan
+4sjanl
+s7jarn
+2sj3av
+6s7jaz
+2sjb
+6sjd
+5s4je.
+sje4f3i
+sje4fla
+sjef5t
+sje3g
+sjek4t5o
+3sjel
+sje4lev
+3s2jen.
+5s2jene
+4s3jent
+5s4jer.
+s2je5s4
+5s4jet.
+sjet4ti
+2sjf
+2sjg
+s6jim
+2sjk
+2sjl
+2sjm
+2sjn
+2sjob
+5sjok
+4sjom
+9sjon
+sjons7
+2sjor
+2sjou
+2sjp
+2sjr
+2sjs
+2s6jt
+s6j3t6sj
+sju1a
+6sjub
+6s7jug
+sju8la
+4sjun
+4sjur
+2s7jus
+5s2jø
+sjø3k6
+sjø1p
+sjø9rø
+sjø1s2
+sjø3t8
+6sk.
+1ska
+2ska.
+4skab
+skabe3
+s2kad
+8skae
+4s6kag
+2skak
+5s4kal8a
+ska5lar
+2skam
+s4kaml
+4s5kana
+4skande
+4skane
+4skano
+6skant
+5s6kap.
+9s8kapa.
+4skapas
+5skapen.
+6skapit
+4skapp
+2sk2ar
+sk5arab
+sk7arbe
+5skard
+4s5kark
+6skars
+4skart
+3s8karv
+2skas
+4skate
+8skay
+4skb
+6skd
+2ske
+s4keda
+s6kedo
+s2keh
+s6kei
+skei5er.
+s8k5e4lev
+s6kelik
+skel3t
+s4kelu
+s3ken.
+s4kena
+s6kenav
+s4keno
+s5kens
+5skept
+s5ker.
+s4kero
+s5kers
+s2ke1s
+ske3si
+skes4m
+ske5sn
+s4ketet
+s3ke4t3j
+s6kev
+s2key
+2skf
+2skh
+1ski
+5s6ki.
+7skia
+4skid
+5skie
+5skif
+5s4kik
+s6kill
+5s4kilt
+ski6net
+ski4nin
+5sk8inns5
+skino6
+5skiol
+5skip
+2skir
+s4kire
+6s5kirk
+sk5irs
+s6kis.
+7skiss
+4s5kist
+5s2kiv
+s6kje.
+5skjema
+6skjemas
+5s6kjer4m3
+3skjer5m4e
+7skjers
+3skjor
+4s5kjærl
+5skjøn
+6skjøp
+skjø5res
+2sk1k4
+2s1k2l
+6skla
+sk5lak
+s6k5lan
+s5klas
+sk9leg
+s6klei
+sk3lek
+sk5ling
+sk5lit
+s4k5luf
+s2klyd
+2skm
+2skn
+s1knu
+4skoa
+7skodd
+4skof
+3s2kog
+2s3koi
+1skol
+7s4kola
+3skole
+4s3koll
+4skom
+s6koma
+s5k6ome
+6s1kon
+4skoo
+sk5ord
+s6korpi
+s7kors
+4skort
+2skos
+s2kot
+3skott
+sk8ra
+s4k9ra.
+5s4kral
+s4krat
+s2k7re.
+4s3kref
+6skreg
+5s8krek
+4s3kret
+5skrevn
+3skrib
+3skrif
+4skrig
+3skrik
+3skrip
+4skrite
+3skriv
+5s4krog
+s3kron
+4s3krop
+sk6rud
+skru3s6
+6skryss
+1s2krå
+2sk1s2
+2sk3t4
+5skud
+1s4kue
+sku4end
+sku4er
+skue5re
+1skuf
+5skulan
+5skular
+3skule
+6s5kulis
+4skull
+s4kulp
+4skult
+skum3s
+2skun
+s6k5underv
+4skup
+8s5kurs
+8skurv
+2skv
+sk5va.
+3skvad
+sk3vas
+s6kven
+sk3ver
+sk5vit
+3skvu
+1sky
+s6kya
+s6kye
+4skyr
+sky3re
+4skys
+6s6kyss
+5s6kysk
+3skyt
+6skæ
+6skø.
+6s5køa
+4skøe
+1skå
+skå5re
+6skåt
+sl4
+sla8da
+s3lade
+sla5ge
+sla8ge.
+sla5ke
+s5laks
+3slakt
+3slal
+4s3land
+slap5pe
+s5laran
+s5lare
+4s5last
+s1lat
+sla4te.
+4s1lau
+s5laus
+sla1v
+3slave
+sla4vin
+2sle.
+s8leda
+7slegare
+5s6legas
+s4legi
+s4legn
+s6legr
+6slei
+slei5er.
+s4leiv
+8s5leke
+s5lekk
+s2lel
+s4leme
+4sle7ne
+s6lener
+s6len6t3
+2sler
+8s5les
+s6lesj
+s4leso
+s6lest
+s4leta
+s5lev
+s4leva
+4sley
+s5lia
+2slid
+sli4en.
+6slig
+sli5ke
+s4likk
+2slin
+8s3linj
+slin6t5
+3slip
+5s4lit.
+3s4lite
+4s5liv
+slob5b
+slott4
+s6lott.
+7slottet
+1slu
+8slu7a
+2slu2e
+slu5es
+6sluf
+4slug
+sluk3s6
+slum4p5
+slum5p6e
+s3lund
+s5luns
+s6lup
+slu7sa
+s4lut
+s1ly
+sly8et.
+1s4lyn
+4s5lys
+sly8t
+slæ6rari
+2sløn
+8s5løp
+slø4pa.
+s6lør
+2sløs
+slø8s5a
+3s4løsi
+slø5va
+slø5ve
+slø5vi
+5sløyd
+sløye7
+9s4lå.
+s4låe
+s1lån
+slå5ner
+1slåt
+s1m
+sma6d
+3smak.
+5s4maken
+sma9let
+4sman
+s4med.
+s4mede
+6s5medi
+s4medk
+smeg5
+4smei
+smek7l
+s4mekt
+8s5meld
+3s4mell
+5s4melt
+2s5men
+3s4mert
+6smes
+s6mesi
+s6mia
+s4mie
+smi4ene
+s4mig
+s6mil.
+smi7la
+s6mile
+smini6
+s2mit
+smo7a
+smo8de.
+s2mok
+6smot
+3smug
+6s5mugg
+smul2
+s6mula
+s4muld
+s6mule
+5smurt
+1s2my4k
+6smøn
+1s2mør
+smør3s
+4smøt
+5små.
+små5r
+s8mått
+s1n
+8sna.
+s4nab
+7snak
+4s3nas
+6s3nat
+4snav
+4sne.
+4sneb
+4sned
+s6nee
+s4neg
+3snei
+snei5er
+sne4kri
+s7nekt
+s4nel
+2snem
+4sner
+6snes
+sne9sa
+snes9v
+4snet
+s6nif
+sni6gl
+s2nik
+snik5ko
+3s2nil
+6s3nin
+3s2nip
+snir4
+5s2nit
+2s3niv
+s8no.
+s6noe
+s5nord
+6s7not
+5s6nud
+s3num
+s4nur
+7snut
+8snyh
+2snæ
+snæ4re.
+5s6nø.
+snø5d4r
+5snøe
+1s2nør
+snø1s
+snø5vi
+so3al
+so8ar
+4soav
+2s1ob
+so2bl
+1sod
+so4da.
+5soe
+sofa1
+so4fag
+so4fas
+6s5off
+6s5ofre
+soft1
+so2ga
+so8gi
+so7gl
+sog6nem
+6soh
+5s4oi4
+so5id
+5sokn
+4soks
+sok4se.
+7sol.
+so4la.
+sol5av
+1sold
+so4le.
+solei5er
+so4lene
+sol5f6
+1so7li
+2solj
+so2lo
+so8lo.
+sol3s2
+sol5t4
+so4lum
+so4lø
+3som.
+so6mend
+4s3omfa
+4s1omg
+5somh
+2s1omk
+4soml
+1som5m
+sommar5a
+3s6omme
+somme6r5e6
+2somr
+7somren
+5somrer
+6s3områ
+s1oms
+som5sl
+s4omst
+som5sti
+4somsy
+1s2omt
+5somt.
+6somta
+3son
+so4na.
+son7da
+7s6one
+so8nea
+song3s4
+so4n3o
+sons4k
+son5st
+so2nu
+so4ny.
+2s1o2p
+so7pak
+so9par
+so7pet
+3sopp.
+5soppa
+3soppe
+sop4pi
+8sopple
+so3pr
+1sor.
+7sora
+so3ran
+5sorb
+4s1ord
+sor4da
+1so1re
+so4rek
+7sorga.
+sor4gl
+so2ri
+4s3orie
+7soris
+so5riu
+4sorke
+sor5n
+3sor5s
+7s8ort
+1sos
+4s5osc
+so8se.
+6sosf
+4sosj
+so4sl
+so5te
+so8te.
+so4tra
+sots4
+sot5te
+sot4ti
+4sou
+2sov
+so3va
+so4ve.
+so5ven
+sover5e
+sove3s4
+5sovet
+3sovj
+sp2
+4sp.
+spa5g6h
+7spak.
+7spaka
+5spake
+8spakk
+s2pal
+s3pall
+5spalt
+3s4pann
+3spari
+4spas
+5s6paser
+4spe.
+spe4a
+8speda
+spe9dé
+s4pee
+1s2pei
+s2pel
+spe4leg
+spe4les
+5spelet
+3s4penn
+s4pent
+s5pep
+spe4r5and
+6speri
+4sperl
+s4perr
+s3pers
+3spesi
+s4pest
+s9pet.
+1spi
+6s5pilo
+4sping
+s2pio
+2spip
+spi7res
+spi7ri
+spi7ro
+5s6piss
+2s3piz
+2s1pl
+8s9plant
+sp9lar
+4sple
+s4plin
+3split
+sp6o
+2spoe
+spo6et
+2spol
+5s6pole
+6s7poli
+s4pora
+s4pore
+5s4pors
+sport6s5
+3sporv
+2s5pos
+4spot
+s3pote
+spo5v
+9sprag
+5spran
+6s3preg
+5sprei
+s4prek
+spre5ke
+s3prem
+5s4pren
+6s5pres
+5s4pret
+s6print
+s5prio
+8sprinsi
+8s3pris
+8s7pro
+6s5prob
+s3prod
+4sprof
+5sprog.
+5sproge
+5s6pross
+1spru
+s4pry
+3sprøy
+5språ
+2s3ps
+8spub
+2spul
+3s2pyd
+5s2pø
+6s3pøl
+sp5øy
+9spå.
+5spåd
+8s9r
+sre8ka
+sre8ke.
+sri8e9
+sri8ka
+sri8ma
+sri4ve.
+s5ro
+sro4e
+sro6pa
+sro6sa
+sro6se.
+sro2t
+sro9te
+srot5o
+srø1v
+srå4da.
+sråde9r
+srå6ders
+srå8ma
+4s1s
+s7sabel
+s7sabl
+s6sae
+s4saj
+ssa8ke.
+ssa6la.
+ss5all
+ssa4me.
+ss5amp
+s5sane
+s7s8ar.
+ssari8e9n
+s7s6arm
+s4sarr
+ssar8ve.
+ss6as
+ssau8sa
+ssau6se.
+s6seet
+s2seg
+sse5ge
+ss5egg
+ss4el
+sse5li
+ssel5s
+ss9elv.
+ssel5v6å
+s2sem
+s5sen.
+sse8na.
+ss5enden
+s5sene
+s4seni
+ssen6ke.
+s4senu
+s6senå
+s5ser.
+s6serab
+s6serat
+sse7sk
+s4seski
+s4sest
+s7set.
+s9sets
+s2seu
+s4sey
+s2sh
+ssi4a
+ssi7e6rer
+s4siff
+s6silo
+s8s9ime
+s6s3ind
+ss5init
+ss3inj
+ss3inn
+s4s3ins
+s5sis4
+ssis5m
+ssi6v7end
+s5s6jarg
+ss4kape
+ss3kar
+sska8ra
+ss3kof
+s7skog
+s4skor
+ss6ky.
+ss4kye
+ss4kå
+ss5kål
+s7skåp
+s2sl
+ss1lo
+ss5ly
+s2sm
+ss6nar
+ss2no
+ss4nø
+s4s5nød
+ss5nøk
+s2sof
+s4sok6
+sso5lo
+s2som
+ss4oma
+sso3ra
+s4sorga
+ss3ove
+ss6pil
+ss4por
+ss9ri
+ss2t
+s5stad
+ss4ted
+ss3tek
+sstel6li
+ss5tep
+ss7tilp
+s7stip
+sst6r
+ss5tren
+ss4trå
+ss3tus
+ss3t4v
+s2sul
+s3sur
+ssva7ra
+ss1ve
+ssy6na
+ssy5r
+ss7øye
+s6så
+6st.
+2s1ta.
+stabs3
+3s6t2ad
+stad3a
+sta6d3o
+s5tafa
+3stafe
+sta5fl
+st3aft
+sta7ge
+4stah
+sta6ka.
+5stakk
+4stakl
+6stal.
+6sta4la
+sta5lak
+st5ald
+4stale
+sta4le.
+5s6tali
+5stalt
+s3tame
+3stamm
+sta5na.
+3s4tand
+6stande.
+st8ane
+s4tanf
+s4tang
+stang5s6
+st3anl
+sta8n9o
+s6t5antr
+st3anv
+4stao
+2stap
+s7tapa
+s4tapp
+s8tapå
+s3tari
+1stas
+3s8tasj
+4s5tast
+1stat
+4stato
+sta5top
+sta3tu
+3stave
+2s4t5b
+st7c
+2std
+2s3te.
+2stea
+2steb
+3sted.
+s4teda
+5stedt
+s2tee
+2s4tef
+3s6teg.
+stega6l
+s4tege
+3stegh
+4s5tegn
+s4tegr
+4stegsp
+5stegspl
+ste4her
+s2t4ei
+stei5er
+4steikn
+ste6in6s5
+3s4tek.
+4s4teka
+s6teke
+ste4ket
+s4teki
+4s5tekn
+4steko
+v4s5tekst
+s4tekt
+s8te5kv
+4stela
+ste5le.
+s5teleg
+ste5lev
+s5telig
+5stemd
+3s4temm
+5stemn
+4stemø
+sten5a
+ste4nar
+5s4tenen
+s4tener
+4ste5nes
+3s6teng
+s4teni
+6stenk
+4steno
+stens5l
+4steo
+s5teol
+2step
+step7per
+st8er.
+8s5tera
+s4teram
+s6terest
+s4terev
+s7t6erf
+s4terid
+ste7ris
+s6teri6v
+4s3term
+6sterr
+ste5run
+2stes
+s4tese
+ste7sle
+4stet
+s4teta
+ste7t6r
+s6tetø
+4steve
+4stevi
+6stevl
+5stevn
+6steå
+2s4t5f
+2stg
+stga6ve.
+stgå8va
+stgå8ve.
+2s6t5h
+st5he
+2s3tia
+4stib
+s5tibe
+s9tibl
+3stic
+6s5tid
+s6tidel
+sti5en
+s2tif
+3stift
+s4tigen
+7s6tigi
+st9i8gj
+3stign
+s5tij
+6s5tika
+4s5tike
+s4tikl
+3s6til.
+5s4tila
+sti4lag
+4stild
+3stile
+stile9ge
+s6tilk
+6stiln
+s4tilo
+6s5tils
+5s4tilt.
+6s5tilta
+5stilte
+4stime
+sti7mer
+6stimé
+3s6timu
+s6t3ind
+s6tini
+4s6tinn
+s6tinst
+s6tint
+1s2tip
+4s3tipp
+6stips
+5stir
+2stis
+6s7tisk
+4stitt
+4stiå
+s4tja
+5stjel
+4s3tjen
+s6t5jent
+3stjer
+4stju
+2stk
+2stl
+2stm
+2st5n2
+s2to.
+1stof
+2s3tog
+4stoks
+6stokt
+3stoli
+4stolj
+s5toll
+4stom
+s9tomm
+st3oms
+6s5tomt
+4stoni
+st3ope
+st5oppl
+6s8t5ord
+sto4ret
+s6torm
+stor3o
+4stors
+st5o4s
+s1tot
+sto4t5r
+5s6tore.
+st5ou
+5stova
+2stp
+8str.
+st3ra.
+4s5trad
+s8traff
+6strafi
+6strail
+st3ral
+st4ran
+stra8na.
+5strand
+4strane
+6strans
+4strap
+4strar
+st7ras.
+st7rast.
+5s4traum
+s4tre3a
+s4tred
+7s6treik
+st5reis
+7strek.
+st5rekl
+6streni
+st5rer.
+6strers
+6strh
+9stria
+9s8trid
+5strie
+st5rige
+st3rin
+3s4t6rip
+5stri3s
+6stroe
+s5t4rog
+5s4trok
+st3rol
+6s4t5rom
+st3ron
+st7rop.
+st7ro6pa
+s6trope
+s6t7rug
+9s6truk
+st5rum.
+2stry
+6stryg
+s7trykt
+4s3træ
+1s2trø
+6s5trøb
+st6røm
+4strør
+4strøs
+st5røse
+s5trøst
+4strøy
+6stråd
+2st5s6
+stsa6me.
+stsy8na
+4st7t6
+stta6le.
+st3t4r
+s4tua
+1s2tub
+3s4tud
+s2tue
+stu4el
+stu4er
+stue5re
+3s4tum
+6s3tung
+6stunn
+3s8tunt
+6stur
+2s4tut
+2stv
+s3t4ved
+1sty
+2stya
+2styd
+3s4tyk
+sty6l
+2s5tyn
+2s7typ
+3s4tyr
+styrs3
+6stysk
+4styv
+sty5ve
+1stø
+2støk
+5støl
+6støm
+5støp
+6størk
+5støt
+stø7va.
+stø5var
+stø3ve
+stø5vi
+st8øy
+1stå
+5s4tåe
+stå5k
+4su.
+1su4a
+su7a8l
+1su2b
+sub7l
+sub3o
+5subs
+s3ubå
+1sue
+su8er
+su2f
+5s2ug
+su6ga.
+su4ge.
+sug3g
+su2h
+3sui6
+su3is5
+suit5a
+su2k
+4s1uke
+3suk5k
+suk3r
+1suk5s
+su4le.
+3s4ulf
+su4lik
+sul4t5r
+s1ulu
+2suly
+sulæ5
+3s2um
+4s3umid
+su2mo
+sums6
+5sund.
+8s5under
+5sundet
+5s4undi
+sun6d7r
+9sunds
+sun4ge.
+6s7u2ni
+su4o
+3s2up
+su4pe.
+super3
+supi9
+sup4r
+su8pre
+sur5d
+su4re.
+4s3u4rei
+1surf
+su4rie
+su4riu
+surs5k
+sur4sp
+sur4sti
+1sus
+su3san
+su4se.
+su6s5es
+4susi
+su4sik
+sus3p
+sus3s
+su2sy
+2s1u4t1
+sut6ra.
+sut8reg
+7suv
+8s5u6vi
+sv2
+6sv.
+sva5a
+svai5
+5svak.
+3svake
+6svaks
+sva4la
+sva4les
+6svalet
+5s6vali
+7s6vam
+s4var.
+s4varet
+s3varm
+3s4vart
+6s1vas
+6s1veg
+sve6g7i
+s5veie
+3s4veis
+s5veka
+6s5veks
+5s4vens
+sverd5s4
+sve4re
+sve8res
+3s4verg
+5s4verj
+s5verk
+sver4ki
+s4verm
+6s7verv
+7s4vev
+s4vie
+svi6e3l
+4svig
+svi5ke.
+6svikg
+4sviks.
+3svikt
+4s5vikti
+4svil
+s6vindel
+svi4nes
+sving5s4
+ll6svint
+4svir
+2svis
+svi4sa.
+svi4se
+svi5sen
+svi5ser
+s8viv
+svi9ve
+4svol
+5s2vor
+svor7t
+s3vr
+3svul
+5s6vulm
+s3vy4
+svye7ne
+1s2vø
+4svæs
+2s7vå
+1sy
+sy4c
+sy4de.
+sy5den
+5sye
+sy2er
+sy8ka
+sy4ker
+sy5kere
+2syko
+sy6kog
+s4ym
+sy7me
+s2yn
+4s5yndl
+synk4
+syn6sk
+syn3te
+sy4ra
+sy5rar
+s6yre
+sy4re.
+2s1yrk
+syr4ka
+syr4ke.
+3sy1s
+sy4se
+sy2sl
+sy2s3t
+sys4tr
+2sy2t
+sy5ten
+sy5t6h
+9sytt
+sy2vå
+s4z
+sz3c4z
+6szt.
+1sæ
+sæ2l
+8s3æ4re
+8s3æ4ren
+sæ4r1i
+særle9
+sær5s8
+7s6æ5te4
+4sætt
+1sø
+4sø.
+sø2d
+s1øde
+4søf
+søg4
+4søj
+9søk.
+3s6øke
+5søkj
+5søkk
+søk7kj
+3s6økna
+2søko
+søk4sk
+søk6s3e6
+5s6øksm
+søk4ta
+3s4øl
+sø4la.
+sø4le.
+sø5let
+3s2øm
+sø6må
+3sønn
+s1øns
+s4øp
+sø4ras
+sø4re.
+sø4r5end
+søren6de.
+sø8ret
+sør9ett
+7sørl
+sør3s
+sør5ø
+3s2øs
+4søs.
+sø8sa
+7søt
+sø7tast
+sø7tel
+sø5tes
+2søv
+s1øve
+3søvn
+2s5øy.
+4s3øya
+søy8de.
+6s5øyd
+8søye
+3søyl
+6s5øy4n
+søy2r
+2s7øys
+5såg
+s3å2ke
+5s4ål
+så4le.
+6s1ån
+sån4da
+sån6de.
+så2p
+9såpa
+så5pet
+6s1åpn
+såp9u
+så2r
+så6ra
+sår9ast.
+så4re.
+sår3sk
+sår7ø
+så2s
+s7åsa
+s4åsb
+s5åse
+sås5k
+sås5t
+9såv
+såva7
+ta1a
+4tabo
+tab2r
+tab2s
+ta4bu.
+4tabø
+ta1c
+4tad
+ta2da
+ta8d3ei
+ta6d3e4t
+tad5spa
+tad7s6v
+ta6du
+t8ae
+6taei
+4taek
+4tael
+1taen
+4taend
+4taenh
+ta6es
+2ta5fe
+taf7f6
+5tafis
+4tafl
+1tage
+4tagj
+8tah
+ta7is
+1tak.
+ta4ka.
+4takau
+ta7ken
+ta5ker
+tak7kel
+tak5k4l
+ta8k9la
+2takr
+tak4sal
+tak6se.
+tak4si
+4t3aksj
+5takst
+tak4tal
+4taktig
+tak4to
+t5aktø
+ta1ku
+tak3v
+1tal.
+ta9lam
+ta3lan
+tal5ang
+ta7las
+3tale
+ta4lei
+tal5eie
+ta4lek
+ta5ler.
+tale7s6
+1talg
+tal6ge.
+7talj
+talj5es
+tal4led
+tal4leg
+8t7allerg
+tall7es
+tal8lign
+tall6s9a
+tal4ly
+tal3op
+6talter
+t5altern
+ta6l9u
+ta6lå
+2tamb
+tamba6ne.
+t3ambi
+t4ame
+4tamet
+tam4i
+2ta3m4o
+t6an.
+ta2na
+4t3anal
+ta3nar
+ta5nas
+ta5nat
+t5andak
+5t6ande.
+t7andel.
+t5andele
+tand5r
+tandø4
+tandør5e
+1tane
+ta4nel
+ta5nem
+4tanett
+t3anfa
+tanfø6
+6tangf
+6t3angr
+1tank
+2tanl
+t3anle
+2t1anm
+3tannl
+t5anno
+tanns4
+tan6sk
+tans5ka
+t5an5sl
+4t5anstr
+4tansv
+8tantil
+tan4tra
+6t7antre
+t3anve
+2ta3o4
+5tap.
+ta4pa.
+1tape
+ta4pe.
+3tapi
+4tapl
+4tappa
+5tappi
+1t4ar.
+t6ara
+ta4r3ak
+4taram
+ta6rare
+2tarb
+3tarbo
+5tarbø
+4t9arena
+6t7ark.
+tar8ka.
+4t5arke
+4t3arki
+4tarra
+tar9si
+tar7sp
+tars6v
+4tart
+tart7est
+t5artik
+tar7tit
+tar4t3r
+ta6r5å8k
+4tasa
+ta3se
+6t9asf
+t3a4sia
+tasi3e
+ta4sif
+ta4sil
+ta4si5s4
+tas4p
+tas5s4
+6ta7sto
+ta7str
+4tasu
+ta1ta
+ta7tes
+tate8se.
+tat5e4v
+tati1
+tat3op
+tat2s1
+tat3te
+t3attr
+1tau
+9tau.
+7taue
+4t5aug
+2t1a4uk
+4taun
+tau4ne.
+tau4sk
+2taut
+2tav
+6tavin
+3tavl
+4tavli
+ta9xy
+6t1b2
+tba3d
+tba2n
+t6be.
+tbe6te.
+tbe6t7r
+tbe6t8ra
+tbo6da
+tbu8da
+tby3k
+tby4s
+tby7te
+2tc
+t1ce
+tcen4
+tch5e
+t5co
+2t3d
+tdy5pe
+1te
+4tead
+4te3ag
+2teak
+2te9a8l
+tea6m
+2tea2n
+2teap
+2tear
+te5arb
+tea4s
+3teatr
+4teatt
+2teau
+2teav
+4teb
+t5ebb
+tebu8da
+4tecel
+te1co
+2ted
+6t5eddi
+3tede.
+4tedeb
+te7def
+4tedek
+4tedel
+4tedem
+te5den
+4tedi
+5tedil
+4tedo
+tedo6en.
+tedo4er
+tedo8et.
+te4dor
+ted4sk
+ted4sl
+6tedu
+4tedy
+tedyr9k
+4tedø
+te3e4
+2tef
+8tefa
+4tefi
+4tefl
+4tefo
+tefo8r
+t3efte
+3tefø
+2tega
+5tegat
+4t3egd
+te7gea
+te9gee
+4tegg
+teg8ga.
+2tegh
+te4gim
+2tegj
+2tegl
+te3gla
+te9g8li
+8tegs.
+6tegspl
+6tegsv
+2tegu
+tegvi8
+2tegå
+5tegås
+4teh
+5tei.
+2tei4d
+t3eie
+t3eiga
+tei6ga.
+t7ei6ge.
+6teigr
+3teikn
+tei5le
+te1im
+6teinf
+te4inne
+te5inte
+te5i4s
+6teiso
+2tej
+te7ken
+te5ker
+4tekil
+2tekj
+5tek1k
+2tekl
+te5k4la
+tek6lede.
+tek4li
+4teknu
+2teko
+2tekr
+te7kra
+te6k5ru
+9teks.
+4t3eksa
+t3ekse
+4teksp
+t4ek8st
+tek8t9r
+tekt4s
+tek6ty
+2teku
+te2k3v
+4teky
+2tekø
+4tekå
+2te3la
+tel6ak
+5te4l5ar
+3telav
+8te4le.
+4teled
+4telei
+4telek
+4teleme
+te4lene
+6teler
+te4les
+te5lesk
+4te4lev
+te6leva
+4telid
+4telik
+4telil
+4telin
+te4lir
+4telis
+4telit
+4teliv
+tel5lef
+tel4lei
+tel4lev
+tel8lign
+tel4lo
+2telo
+tel3se
+telses5
+t3elsk
+tel7s6v
+5teltet
+2te1lu
+7telut
+2tely
+6telæ
+2telø
+telø8pa.
+2telå
+2tem
+3temae
+6teman
+te4mans
+t5emba
+6temenn
+5temik
+tem9ma
+6temn
+tem5ne.
+tem5ord
+tem5pe
+tempe8l7
+3tempo
+tem3s
+4temø
+3ten.
+te5nab
+te4n5al
+ten8am
+te4nan
+te4nat
+ten5at.
+6t7enc
+6t5en6den
+4tendr
+4tened
+te5neg
+6tenem
+6tenerg
+5tenes
+4tenet
+2teng
+7tengon
+t5e4nig
+7tenik
+5tenis
+4teniv
+ten9no
+te4nom
+te5nor
+6tenorm
+4tenot
+te6nov
+6tenó
+ten3sa
+ten5sko
+ten6slu
+ten3so
+tens5v
+ten4t5in
+tentle8ge.
+4tenum
+4teny
+4tenæ
+2tenø
+ten5øks
+2teom
+5teon
+4teop
+te6ora
+4teord
+2teov
+2tep
+te3pa
+4tepak
+tepa9ra
+4tepas
+4te5pe
+7tepee
+9tepé
+tep6pere
+t5e6ple
+4tepr
+4terac
+te7rakk
+6teramm
+ter7apa
+4terapp
+te4rare
+6terasa
+4terase
+7terast
+terba6ne.
+t6er5d
+4tered
+4teref
+4tereg
+4tereis
+te4rel
+8terem.
+6teremm
+te4r5eng
+teren6ga
+6terenn
+4terep
+te4rerk
+ter5esti
+4terett
+6terevo
+3ter5g
+3terh
+te4rig
+4terik
+4terisi
+te4riv
+ter5j
+4terk.
+4terke
+4terkh
+7terkr
+6terks4
+4terkt
+terla6ga
+terle7ge
+terle6ve.
+ter8ma.
+ter3no
+tern5s
+te5ro.
+tero6e
+te3rof
+4teroll
+4terom
+5teromr
+4te3ros
+4te3rot
+tero6v
+ter5r
+5ters.
+5tersjøo
+ters4kl
+ter7s6ko
+ters4l
+ters4h
+ter3s4m
+ters6ne
+ter5sv
+tersø6ke.
+3ter3t
+ter9to
+ter9ul
+8terum
+ter7v
+tervi6se
+2tery
+ter5ør
+4terøt
+te4r3øv
+4teråd
+te4r3ås
+t4es
+5tes.
+2tesa
+5tesar
+te7sen
+2te1sh
+4tesid
+4tesik
+6te3sin
+4tesit
+4tesj
+6tesjef
+4te1sk
+t9es6ka.
+6teski
+te5sko
+2te1s2m
+7tesmåe
+2te1sn
+2te3so
+6tesp
+5tesr
+3tess
+5test.
+4testaf
+tes5tas
+4testat
+5tes7te.
+4te5stei
+te5s6tiv
+5testid
+tes4tik
+4te5s4til
+4te3sto
+4te3str
+4testy
+4testø
+2tesu
+4te1sv
+tes8væ
+2tesy
+2te3sø
+te7så
+te8sår
+teså9re
+3tet.
+teta6ka
+teta6le.
+te4tap
+te3te
+5tete.
+tete4e
+4teteg
+4tetei
+4tetek
+4tetem
+2teti
+3tetik
+3tetis
+2tetj
+2teto
+2t8et2r
+3tet2s
+tet5ti
+tett3s
+2tetu
+5tetu.
+2tetv
+2tety
+te2t3å
+2teu
+teu8k
+t1eur
+3teus
+2tev
+t6eva
+te4valu
+3tevl
+tevo6r
+te3vr
+2tey6
+2teø
+2teå
+4téa
+2téb
+2téf
+2téh
+2téi
+4téle
+2tém
+2tése
+4tést
+6t1f
+tfe6e
+tfe4l
+tflå3
+t7fo
+2t3g2
+t4ga.
+tge4a
+tgei5
+t4gi.
+tgi5ros
+tgrei9e
+t4gå.
+2t1h
+t4hap
+t4hea3
+thei5m
+tho7li
+tho3re
+3thr
+thu5le
+thu6s
+thy5r
+1ti
+2tiad
+ti3ag
+2ti1ak
+4ti3all
+ti5als
+2tia2m
+2ti1ap
+ti3asp
+4tiau
+2tiav
+2tib
+2tick
+3tid
+ti2da
+4tidan
+tid7d
+6t3idee
+4ti5dem
+4t7idé
+4tidis
+4tido
+4tidr
+2tidu
+tidvi4
+6tidy
+4tidø
+ti1e2
+2tief
+2tiei
+2tiem
+4tienh
+tie5ra
+4tierf
+4tierk
+ti4ert
+ties3
+ti3esk
+ti3et
+4tieta
+4tiett
+2tifa
+tifa8ne.
+2tife
+4tifl
+2tifo
+2ti5f6r
+t8ifrå
+4tift
+tif5te
+2tifu
+4tifø
+ti9ge.
+4tigj
+2tign
+3tigno
+ti6gun
+2tih
+2tii
+2tij
+ti3ka.
+6tikarr
+ti5ke
+4tiket
+4ti5ki
+6tikj
+tik4kj
+2ti3ko
+2ti1k2r
+ti3ku
+6tikular
+6tikult
+6tiky
+4tikø
+t4il
+tila6ga
+til1d4
+3tilde
+2tile
+ti3lei
+3tilfe
+3tilg
+til3id
+4tilke
+3tilkn
+4tille.
+4tillh
+4tillin
+tillø7
+4tilm
+7tilnæ
+3tilst
+til3t4
+4tilte
+2tilu
+2tilø
+ti7mab
+5timat
+ti4me.
+5timedie
+ti4mera
+5timeri
+2timl
+4timo7
+4tim6o8r
+2t1imp
+tim7s
+2timu
+2timy
+2timø
+ti6nab
+tin5art
+4tinaz
+2tind
+t3indu
+ti4nem
+4t1inf
+tin5ge4s
+6ti4nit
+6t5inj
+2tink
+7tinks
+4t1inn
+6t5inne
+ti5no
+tinsk5
+4tinsp
+4t3inst
+4t1int
+2tinv
+4tinva
+4tiny
+9tiol
+6ti7om
+tion9s6
+4tiop
+ti1or
+ti1ov
+ti3pa
+ti6pla
+4tipr
+3tips
+2tir
+tira4t
+ti4ref
+ti1ro
+6tisak
+4tisam
+ti5s6an
+ti3se
+4tis4ei
+4tisek
+4tisel
+4tisem
+4tisep
+tise8ra.
+4tisers
+6tisig
+4tisio
+4tisje
+4tisju
+tis4ka
+4tiskan
+4tiskil
+tis5kok
+6tisku
+tis5l
+4tisn
+4tiso
+6tisprå
+4tistat
+tis4ti.
+tis4til
+ti5stre
+4tisty
+4tistø
+ti8støy
+2tisy
+2tit
+ti7ta
+ti3te
+ti1tj
+3titl
+tit4r
+tit3s
+3titt
+4tiub
+2tiut
+ti4v5and
+tiva9re
+ti4v5art
+tiv6is
+2tivo
+tiv5si
+tiv5sk
+4tiy
+ti5ær.
+ti7ære
+ti9ært.
+ti1ø8
+2tiå
+6t3jag
+2t1jak
+t5jarn
+2t1je.
+2t1jeg
+2tjel
+1tjen
+tjen6st
+6tjep
+2tjer
+t5jev
+2t1ji
+5t6jingan
+5t6jingar
+2tjo
+t5jord
+2tjub
+tju4e
+2tjun
+6tjur
+3t8juv
+tjæ4res
+2tjø
+4tjå
+4t3k2
+t6kag
+tka8ra.
+tkly9
+tku6le.
+tkå8pa
+6t3l6
+tla4ga
+tla8te.
+tle6da.
+t4ledr
+t6lef
+tlei5er.
+tle8se.
+tle5ti
+tligh6
+tlight5
+tli6nes
+tli4te.
+tlu4e
+t6l7ut
+tlø4pa.
+tl7øy.
+tlå3ne
+tlå7r
+2t1m
+tma3d
+tma8ge.
+t6maku
+t2mam
+t2meg4
+tme3in
+t2mek
+tmini6
+tmin5s6
+t2mos
+tmå4la.
+8t1n
+t3na
+t6nee
+t4neli
+t7nelig
+tne4rek
+tne4r5ø
+tne8se.
+t4nesk
+t4nest
+t5ni
+t8no.
+tn5sk
+tnæ6re
+7toan
+7toar.
+toa6t
+6toau
+2toav
+tobe6r
+t3o2bl
+6tobs
+4toc
+to5da
+to9de.
+to4dera
+3todo
+1toe
+2toek
+6toel
+toe4t
+2tof
+6toff.
+t3ofre
+to5fri
+to2g3at
+to7gen
+4togg
+to6gl
+6tograv
+to4gre
+tog3st
+to2gu
+2toh
+toil3
+2to1in
+4toj
+t6ok
+1to3ke
+to3ki
+2tokj
+2tokk
+tokk5end
+to3kl
+5toksi
+5tokt
+2toku
+to4l5arm
+5tolat
+to5lel
+tolele7
+5tolera
+toli8ne.
+2tolj
+1to4l3k
+7tolki
+tol4lab
+tol4lag
+tol6leg
+tol6lett
+3tolo
+tol5tr
+4tolå
+to9ma.
+2tomb
+to5mene.
+2tomf
+4tomg
+to3mi
+to5mise
+to7mist
+4tomk
+tomlø8pa
+t8omm
+2tomr
+4tom1s
+5toms.
+1ton
+to5na
+to4ned
+to4nel
+tong5s4
+to8nib
+2tono
+ton3sa
+ton5s4l
+ton5sp
+2tonu
+to4ny.
+2to3o
+4to1pl
+4toppd
+6toppg
+6t5opple
+4t5opplæ
+top4po
+4toppt
+4topr
+to1ra
+to4rak
+tor5alt
+tor5ang
+to4r5ant
+to4r3as
+4tord
+tor8da.
+to1re
+6toreg
+to4rek
+tor7eks
+to7rem
+6torent
+5torer
+tore4t
+tor5ete
+4torga
+tor5int
+tor7me
+torm5s
+tor5na
+tors4i
+tor5t8
+torvei5
+to4rø
+4torå
+to1s
+4tosa
+4to3se
+to2sh
+6tosj
+tos5ke
+to8sku
+4tos2p
+2tosy
+4tota
+to5te
+to8ti.
+to5to.
+to4tor
+6toty
+2tov
+to1va
+to7veg
+to5verd
+tove7re
+t5overs
+5tow
+4toø
+6t3p2
+t7pa
+tpi7ne
+tpi7pi
+tpo4et
+t4påk
+tr4
+8tr.
+6t9rabat
+3trafi
+tra8ka.
+trak7to
+t5rane
+3t6rans
+tran7ske
+5trap
+tra3pe
+tra5po
+tra5r4
+5trase
+tra5se.
+tra5ses
+5trasé
+t2rat
+t5rate.
+3trav
+tre4al.
+tre1c
+4t3reds
+t3refu
+6t1reg
+t5regi
+4trei
+tre5int
+6trek.
+4treke
+4trekl
+4t3rekor
+4trela
+3t6re7na
+tre5ne
+t6reng
+3t6reni
+4t3renn
+tren6sk
+t7repe
+t5repres
+t2rer
+t4rero
+t4re3ru
+2tres
+6tresi
+tre5sko
+tres4l
+3tresn
+t5resu
+t1ret
+t4reta
+t6reto
+t5retted
+5t6rettel
+4trev
+tre9va
+t6rib
+4t1ric
+4t4rid
+tri7ei
+t5rig.
+t4rikk
+t8rina
+t4ri5ne
+4t5ring
+3trinn
+7t6rio
+t4rist
+tri5to
+t4riu
+t2riv
+tri7vi
+5trix
+3t4ro.
+5troa
+tro9ar
+3troe
+t4rof
+tro5g
+3t2roi
+tro3in
+t4rok
+t2rol
+4t3rom.
+t6rond
+5t4rong
+tro5per
+t2ros
+5t6rosk
+tros3l
+tro1v
+t8ru.
+t8rua
+7trua.
+5trued
+5truet
+3trug
+tru1i
+5trukn
+t3rull
+2t1run9
+t3rund
+4trupe
+tru5sa.
+7t6rusk
+2trut
+t5ruta
+t3rute
+t3ruti
+tru5v
+try3dr
+3t2ryg
+tryg5ge
+7trykk.
+5trykke
+try7pe.
+t6ræ
+trø8a
+t5rød.
+t5rødt
+4trøk
+4trøm
+2trør
+5trøt
+5trøya
+5trøye5
+trøy9et
+4trøyr
+6trøys
+5trøyt
+trå8da.
+4trådet
+trå4dr
+t6råkl
+t3råst
+4ts
+6ts.
+t5sa.
+t5sab
+tsa2g
+tsak6se.
+ts1an
+ts4ang
+tsau6r
+t1sc
+t6scha
+t6sch5k
+t5se.
+tse6d
+tse4er
+ts5ege
+tsei4d
+ts3eig
+ts2em
+t3sen.
+ts4ende
+t5sendi
+tsen8ka
+tsen6ke.
+t5sens
+t4sentu
+t5ser.
+t3seri
+t4s3erk
+tser3o
+t5s6ers.
+ts4es
+t4sesk
+ts5e6st
+ts3eta
+tse4te.
+ts1e4v
+ts3f
+ts4fæ
+t7s8hop
+ts7ill
+ts3inn
+t4s3ins
+t5sir
+ts5jeg
+tsje5t6sj
+ts5jor
+5t6sjov.
+t7sjuk
+t4sjur
+t5skad
+t4skan
+ts6kis
+t4s5kjed
+ts6kjø
+t5skol
+t6skoll
+t7skot
+ts5kren
+tsk5ru
+ts5krø
+ts1k6v
+ts9kvi
+ts6ky.
+t6s7kyn
+ts1l
+t7s6lo.
+t3s4lot
+ts2lu
+ts5lø
+t5smit
+tsmå6la.
+ts1o
+t4s5o4d
+t5sok
+t5somst
+t5spek
+t3spel
+ts2pi
+t2s3pike
+t3s4por
+ts5s4
+t1st4
+t2s3tabb
+t5stad
+ts3tak
+t4s3tal
+t5stand
+t5stang
+t5star
+t5stat
+ts6tau
+t3sted
+t4steg
+t4stek
+ts6tig
+ts4tik
+t4stilk
+t4stin
+t4stit
+t2s1tj
+ts5ton
+ts5tors
+ts5tree
+t4s5tren
+t4s5tro
+ts3try
+ts6trål
+t5stu
+ts3tv
+t4sua
+tsu7ge
+tsu4l
+ts3uli
+ts3u4r
+ts5usi
+ts1v
+t3svik
+ts1w
+t5syk
+ts5yt
+tsø8ka
+ts5økni
+ts5øv
+tsøy8er
+ts1å
+tsåt8
+6tt
+t1ta
+t3ta.
+t2tab
+ttaba6ne.
+tt9abo
+tt5adr
+t2taf
+tta9fr
+tt3aft
+tta4la.
+t6t3ald
+tta7lel
+ttall4
+t4t3ana
+t5t6ane
+t4t3ang
+t4tans
+t4tanv
+tt5appe
+t7t8ar.
+ttare6
+t4tarr
+tt5ar5t
+tt6arta
+t4tase
+t4tasj
+t4tav
+tt3avi
+tt5avk
+tt5avr
+t3te.
+t2tea
+t3ted
+t4teda
+t5tede.
+t8tedr
+t2tee
+t4tef
+tt3eff
+t2teg
+t2tei
+tt7eid
+tte3in
+t2tek
+tte7kv
+tt7elev
+tteli6te.
+t4tem
+tte4ma.
+tt5emn
+ttem8na
+ttem6ne.
+t3ten
+t5ten.
+t4tena
+t5tene.
+t4teni
+tten5s
+t9tens.
+t4t5ense
+t2teo
+t5ter.
+t4terei
+tter5un
+tte4r5ø
+t4terå
+t4tese
+t4tesi
+ttes6ke.
+t4tesl
+t5tet.
+t4teta
+t4tete
+t1té
+t4th
+tt5he
+tti5a
+t4tidel
+tti3e
+t2tif
+t5tig
+tti4g5j
+tt3ind
+t5tine
+t7tiné
+t5ting
+t4tini
+t4t3ins
+t4tisj
+t6tisti
+t7tite
+ttle6de.
+ttlin5
+t1to.
+t5tofr
+tt5om.
+t7tomr
+t2ton
+tton6na
+tt3opp
+t5tora
+tt3ord
+tto5re
+tt5o4ri
+tt3orm
+tto5u
+ttpar4
+tt6pås
+tt9raka
+tt5rake
+tt3ram
+tt3rap
+tt7rat
+t4t3rep
+tt3res
+tt3rev
+tt5rom
+t5trop
+t5try
+t2t1rø
+t6ts
+tt7saf
+tts3ar
+tts5kan
+tts5kj
+ttsla6ga
+tt3sok
+tt5still
+tts5top
+tts5tra
+tts5tøy
+tt3ugl
+t1tum
+tt1un
+ttun6ge.
+tt1ut
+tt8ute
+ttva8la
+tt5ve
+tt6vun
+t5tw
+t5ty.
+tty8e
+tt1y6t
+ttæ6
+tt3ø4l
+t1tør
+tt3øv
+tt7øy6r
+tt1å4
+5tual
+4tu4av
+tuba3
+tu4be.
+tu6bå
+tu6dem
+5tuel
+tu4er.
+tug8la
+tu1in
+tu2k
+t5uka
+t1uke
+7tukt
+3tula
+1tule
+tul5les
+tum5m
+tum4s
+3tun.
+4tund
+3tune
+tun5gesv
+6tungd
+tung9s
+6t5uni
+tu4nio
+5t4un5n
+9tuns
+3t2ur
+tur7ant
+tu4ras
+4tu4rei
+tu4rek
+turi4
+tu4rin
+tur1o
+tur3p
+tur5s4
+tur3uk
+tu5rus
+tur1ø
+1tus.
+tu1sa
+3tusb
+3tusf
+tu4sin
+tu4sm
+tus5o
+tus7s6t
+tust6r
+tus5u
+2tutg
+t5utj
+t5utk
+t1utr
+tut6tenk
+tut5tor
+tutt5ov
+tu8va.
+2t1v
+tv4a
+tva8k
+tva6ne.
+3tvang
+t4v5anl
+8t9var
+tve5del
+3tveit
+4t7ver
+tvert5
+t2vet
+3tvet.
+7tvets
+t5vik
+tvi8ka.
+t8viklas
+5t4vil.
+tvi5la
+5t4vile
+t4vi5l4i
+t6ving
+tvi4sa.
+tvi4se.
+6t7vo
+3tvung
+6twa2
+1tyd
+tyg9gel
+tyg5ges
+6tyh
+tykk5s6
+ty4med
+1tyn
+ty4ne.
+6t5yo
+1typ
+5t6ype
+ty4pere
+ty4pet
+ty4rak
+5tyrann
+6tyreg
+ty4rep
+tyre5st
+ty4ri.
+tyri9e
+ty4ri5s
+ty2s
+3tysk
+tys3t
+2ty2t
+ty8ta
+t3ytel
+ty5ten
+ty4ve.
+2tz
+t5za
+5t6zel
+6t6z5l
+1tæ
+tæ5l
+tær6ene
+tæ4renh
+tær4er
+tær4et
+tær5s4
+tøf3l
+2t1øk
+tø9ket
+tøk8ta
+4tøl
+t7ø4let
+5t4øm5
+tøn5nes
+4tøp
+tøp5se
+t2ør
+tø4r3as
+tør3in
+tørk4
+7tørk.
+9tørka
+5tørke
+tør5ne
+tørs7ta.
+tørs7ter
+tørs5tin
+tør3t
+tøs4
+tø8sa
+4tøt
+tøt5a
+tø5ta.
+tø3te
+tøtt6
+2tøv
+tøv6d
+tø7vele
+t4øy
+tøy5a
+t9øyem
+tøy5r
+tøy5te
+tå4en.
+tå2k
+tå5ket.
+tå5ki
+tåk6r
+tå2l3a
+tå9la.
+tå4leg
+tå7lel
+tål5s4
+tån8da
+tån6de.
+tå3ne
+4tåp
+tå6pe.
+t1åpn
+tå6re.
+tå4rep
+t3året
+4t5åri
+3t8årn
+2t1års1
+tå3s
+tå2t
+t3åtak
+tå7ten
+ua7g
+u1ak
+uak3s
+u1al.
+ua7la
+ual5l
+ual3o
+ual3u
+u3a4ne.
+u5anl
+u3ans
+u1ar.
+uar5d
+u4arr
+u5ars.
+uash3
+ua3t
+u5au8
+u1av
+1uavh
+u4ba.
+ub7alt
+ub7ant
+ub5ark
+ub4bo
+ub2br
+ub4bu
+ubel5s
+ub5h
+ubi6s
+ubis7t
+ub1j
+ub7lande.
+uble3s4
+u1b4r
+ub5rin
+2ubs
+ubu8e
+u4bå
+uch5en
+uch5er
+u1ci
+uck1
+ucu5
+2ud
+u3da.
+u7das.
+ud4dag
+ud2dr
+udd4s5e
+ud2då
+udea9
+ude8are
+u2deb
+udeie5
+udei5er
+u2dek
+ude3lu
+u2dep
+u6dero
+u2des
+u3d2et
+u6d5ett
+u5devo
+udia2
+udi3an
+udi4en
+udio5
+ud7ir
+ud7ji
+ud5leg
+udle6ge.
+u7dob
+u6doe
+u2dot
+udover7
+ud1r
+udse4
+ud3t
+ud5v
+3u4dy
+udy9ra
+ud5å4s
+ue5a8
+u5ei
+u1el
+uem8na
+u1e2n
+uend5r
+u7ene
+uensar4
+ue7o
+u1er
+u5e6rast
+ue4re.
+ue5ren
+ue4rer
+ue4res
+ue5ri
+uerle7
+u2erm
+ue4se
+ue2si
+ue4skj
+ues6n
+u1et
+uet8r
+ueul8
+u4fe.
+u6feb
+ufe6e
+uf1f4
+uf4f5erm
+ufi9l
+ufi5ne
+u1fl
+u6foa
+ufor3s
+u1fr
+uft3a
+uf4tan
+uft5s4la
+uft3sp
+ufø6
+u5gag
+u5gar
+u6g5av
+ugby7
+u2gem
+u5gen
+u3ger
+u4gerø
+u2ge5s4
+u9get.
+u8geta
+u2gev
+ugg3s4
+u5gis
+u4gl
+ug1la
+u5g4lad
+ug9lar.
+ug4le.
+ug9ler.
+ugle7s
+ug5ly
+ug7na
+ug7ne.
+ugo1
+u4go.
+ug4re
+ugrei9er
+u4grø
+ug5s4i
+ugs4k
+ug7so
+ug3s4pr
+ug5s4va7
+uguay7ans
+ug5øyn
+u1h
+3uhel
+ui8a
+u4i6c
+ui2d
+uid5el
+uid5en.
+uid5ens
+uid5er
+uid5in
+ui3e6
+u4il
+uil5l
+u1im
+ui3ne
+u1ing
+uinnsmi8
+uinnsmig9
+u1ism
+uista7
+uit3en
+uit5er
+u1itt
+u1j
+u4jas
+u8je.
+u7jå
+4uk.
+u1k2a
+u7kar
+ukare6
+ukar5t4
+u5kat
+u2ke.
+u4ked
+uke5l4
+4ukem
+uker5an
+uke4rek
+uker5i
+ukho7
+u7ki
+u1kj
+4ukk
+ukk6a
+uk7kestal
+uk8k9l
+ukk7n
+ukks6
+u5klem
+uk8lu
+ukl7ut
+u5k4no
+u1ko
+u4k5og
+u2kra
+uk3rus
+2uks
+uk2sa
+uk4sek
+uk4sel
+ukse7te
+uk2si
+uk2s1k
+uk7ski
+uk2so
+uks5t
+uk4s3un
+uk2sø
+ukt5e4sk
+ukteslø9se
+uk4t3id
+uk6tj
+uk4t5ori
+uk2t7r
+ukts6l
+ukt3sp
+ukt9s6v
+ukt4sti
+uktu8e9ra
+uktue5re
+u1ku
+uku6e
+uku5le
+uk5vik
+ukys8
+uk3ø4
+uk5å4
+6ul.
+u1la
+u4la.
+ula7d
+u6l1af
+ul3aks
+ul5art
+ul4det
+u4lef
+u2lek
+u2lel
+ulele8ge.
+ule5ma
+u3len.
+u6leni
+u3lens
+u5ler.
+u5lere.
+ule3ri
+u2l3erl
+u4lero
+u2les
+ule3st
+u5lest.
+u5leste.
+u2leu
+u1lé
+ul4f5l
+ul4fo
+ul4fr
+u3l4i
+ulie8
+uli9en
+uli5ke.
+3ulikh
+uli9na.
+uli5ne
+u7linj
+ul1j
+ul5ka
+ul4k3v
+ul4lag
+ul4lam
+ull7arm
+ul4leg
+ull5egg
+ulleg8ga
+ul6leng
+ul9lere
+ul4le3s4
+ul8li.
+ul8lig
+ulling7s
+ull5i4v
+ul4l3o6s
+ul8lot
+ullo3v
+ull5sle
+ull3s6m
+ulls4t
+ull3sv
+ul2lu4
+ul6ly
+ul2lø
+ulm4u
+u1lo
+ulo6i
+ul5op
+ulo7va
+ul4sk
+uls4po
+ul8sn
+ulss8
+ul2st
+ul8s3t6r
+4ult
+ul4teg
+ul4tek
+ul4tes
+ul4til
+ul4tim
+ul4to
+ul7tor
+ul4t3re
+ult3ri
+u7lua
+u3lue
+1uluk
+u5lup
+u5lus
+ul9ut.
+u7luta
+u9lute
+ul7va.
+ul5van
+ul4var
+ul4ve.
+ul4veg
+ul4vei
+ul4ves
+ulv3t
+ul4v3u
+1uly
+ulyk5kes
+ulæ6ra
+ulæ5re
+ulø3se
+uløy6e
+ul5å6l
+2uma
+uma8ge.
+u6mare
+um5au
+umau7ken
+um3av
+2umb
+um5be
+4umc
+4umd
+2ume
+u4mend
+u4m3enh
+umen4t5i
+ume5ra
+2umfo
+2umh
+2umi
+u6midd
+umie6n
+umi9na
+u4mint
+um9ja
+2umk
+4uml
+4umm
+um3me
+um4mil
+um4mis
+um3n
+umna8
+4umo
+umo6g
+um5ok
+2ump
+um7pan
+um4ple
+um4p7ut
+4umr
+ums1
+um7se.
+um4sku
+umsku8le.
+um2sn
+um4sor
+ums3t
+6um7t
+umta8l
+um5ut
+4umve
+umør3s
+um7øy
+umå7
+2un.
+una6da
+un5alg
+u4n3ap
+u9nar
+u7nas
+u3nat
+2und.
+6unda
+6unde.
+un4dek
+un4del
+6unden
+5undersk
+5underv
+4undet
+un6d7im
+4unds
+und5s4i
+u2ned
+u4nee
+u9nei.
+u2nel
+unele6ge.
+u4n5eng
+u4neno
+u2ne1s2
+u3nes.
+u2nev
+unev5n
+1ungd
+ungele8ge.
+un4gem
+un2g1j
+un4g5l
+un4go
+un2g1r
+un9g8ru
+ung3s4i
+un6i
+u4ni.
+u2nid
+1u2nif
+u4nim
+u3nin
+3union
+uni4st
+4unk
+un4k5l
+un7ko
+un4kr
+un7nak
+unn5erf
+un4n5ers
+un4n5erv
+un5nes
+un4niv
+un2no
+unn5ste
+unnta8la
+un4n3y
+u4no.
+u2n3os
+uno7t
+4uns
+un6sj5i
+un3skr
+un5s4p
+un3stek
+unst5e6l
+un7s6tenk
+unst3o
+un1s2v
+un4tal
+un4tam
+un4tas
+un3t2r
+unt5rep
+un4tri
+untun8ge.
+unu6
+un5ut
+u3ny
+u3nø
+un5øy6d
+u7nøyg
+u3nå
+uo9a
+u1ob
+u1om
+uom7s
+u1op
+uor8da
+uo1re
+uo5ro
+u1ov
+up3av
+u3pea4
+u5per
+uper3a
+upe6ren
+u4peta
+6upf
+u3pi
+u8pi.
+up3ins
+up3li
+up6nev
+upo9pe
+up1p2
+up4ped
+up4pla
+up6pre
+upp5s
+4upr
+u3pra
+6ups
+up6sen
+up2s3k
+ups4ke
+ups5pr
+6upt
+6upu
+u1på
+upåvi6
+u1ra
+u2rad
+u2raf
+ur3aft
+u2r1ak
+ura6ly
+u4ram
+u5rane
+u3rans
+uran6t5re
+u5rar.
+u6r7arl
+ur3arv
+u9ras.
+ur5asp
+ur3att
+ur7au
+urau9ken
+ur1av
+ur4bod
+ur4c
+urd4
+ur3di
+ur4d5o
+u1re
+ure8al
+ureer6e
+ur5egg
+uregi6
+uregist5
+3urein
+ure4l
+ur3ele
+u4reli
+u7r8ell
+u7r8elt
+u4r3els
+u4r5eng
+u7reom
+ure7o6s
+u4resu
+u4reta
+u4rete
+ur4e5v
+2urf
+ur4feb
+ur6fed
+ur3ge
+u1ri
+u4ri.
+uri6a7ne
+uri9en.
+uri4e5ne
+uri9er.
+u3rik
+u3rim
+uri5ne
+ur3inn
+ur3ins
+ur3int
+uri6sp
+ur4ke5s
+ur7k6j
+ur6k7ja
+ur8kla
+ur4kle
+ur6k5n
+urk5s
+urla8ga
+urle6ge.
+urle8se.
+urma7g
+ur3nea
+urn1s2
+urnæ6re
+u4ro.
+u6roc
+5uroe
+urom5s
+u2rop
+uro7pi
+ur3opp
+ur1or
+uro3s4
+uro4sta
+uro8ta
+ur4pel
+ur6p9ut
+ur3re
+ursa8ka
+ur4sal
+ur4s3el
+ur4sin
+ur4skr
+ur4spe
+ur5ste
+urs5til
+ur4stj
+ur2sv
+urs3va
+ur2s1ø
+ur3teo
+ur5ti
+ur4to
+ur6t5ri
+urts4t
+urue7re
+u6rug8
+ur7ugl
+uruk6
+uru4ke
+uru7kn
+ur6ul
+urumo7
+urun4g
+u7runk
+uru7v
+ur4vel
+urv3s
+u6rys
+urø2
+ur1ød
+ur1øy
+4usa
+u9sane
+us3ang
+u9sar.
+u7saren
+u6s7ark
+us7au
+us1c
+2use
+u5seal
+use4al.
+us7edvanle
+u2s1ei
+u2sek
+u4sele
+u2sem
+u6s5endi
+us7erk
+u4s5erm
+u6sesi
+uset8je
+us3eva
+4usg
+u2sh
+u2s3h4a
+u2s3h4o
+us4id
+us3ind
+us5inn
+us7jag
+u4sji
+us5kaf
+u4s3kan
+uska8ra
+us7kat
+us5ken
+u6s5kis
+usk4l
+us6k5le
+us5klo
+us1ko
+u1skr
+us7kru
+usk7u6t
+us4ky
+us1l
+usle6ge.
+us5lin
+u4slu
+us7mø
+u4sn
+us1ok
+uso5l
+uso6l5d
+us1or
+u3sori
+usove7r6e
+us1p
+u1s2pin
+us5sar
+us6sat
+us4sjå
+us4skj
+uss5kor
+us4skur
+uss1l
+us7smi
+uss7mø
+us4s5ti
+us4str
+us2sv
+u6stande
+u4stat
+us3tav
+u2ste
+us3ted
+u5stei
+us7ten
+ust9ette
+us5ti
+u5s6tig
+us1tj
+ust5of
+uston8
+ust7onn
+us5tor
+ust5o6v
+us8tra.
+us8tran
+us8trar
+u6stre
+ust5ren
+us4tri
+us3tro
+ust5rød
+u6st5rå
+ust7ut
+u4stå
+us3ung
+u2sur
+us1v
+u5svale
+u7s6valt
+usva8n
+usvi8ka.
+6usæ
+usæ9le
+usø6m
+us1øy
+u1tae
+u2tag
+u7tagg
+u9tal.
+ut3alb
+ut5ald
+u3tall
+u5tande
+uta7no
+ut6anv
+ut3arm
+ut3art
+uta1s4
+u5tas.
+u6t5a6sa
+u6t5a6se
+u2ta1u4
+1utb
+ut4ba.
+utbe8d
+4utbi
+ut6by.
+utch5
+1utd
+4utdat
+utda7ta.
+u2te.
+u2tea
+u4tee
+u4tei
+u2tek
+ut3eks
+u5tekst
+ute6ma.
+u5temm
+u9temt
+ut2en
+u6tena
+u3tenk
+u4tenu
+u2teo
+2uter
+u6terø
+u2te1s6
+u4teta
+u3tett
+ut6eu
+uteva9
+1utf
+utfa7s
+utfø5re
+1utg
+8utgåe
+6u3ti
+u4t5if
+utikk6u
+utiku9
+u4tili
+u6tiven
+ut1j
+u5tjen
+ut6ju
+3utlei
+utlø5se
+utlå7na
+utmå5le
+u8tni
+1utny
+2uto
+ut7oms
+uto5s
+uto4v
+3utpr
+ut4på
+ut1r
+u5t4radi
+ut3re
+u5treng
+u3triv
+u3trol
+u3tros
+5utru
+u5t6rul
+ut4rø
+ut9rød
+1ut1s4
+4uts.
+4utsei
+utse8t9ja
+2utsj
+ut3sk
+5utst
+7uttak.
+5uttake
+ut4terk
+utt5eva
+ut4tid
+ut4til
+ut5torea
+ut1tr
+ut4tra
+3uttry
+utt1s2
+u1tu
+utu5e
+u6t5un
+utun8ge.
+u2t5ut
+1utv
+u3t4vil
+utvi5se
+2u3ty
+3u4t6yd
+u8ty.
+8utz
+ut1ø
+u5tør
+ut4ø8s
+utøs7t
+1utø4v
+ut5øya
+ut7åk
+u3tål
+ut1ån
+ut7år
+u1u
+u7uma
+u5ume
+u7ut
+u1v
+uve5di
+uve3in
+uve6ris
+uve3s
+u7ves.
+uvet5ø
+u6vev
+u5vi
+uvi6k
+uv5ra
+uv9sa
+u5vu
+uvø9re
+u1w
+4ux1
+ux4a4
+uy6a
+u7yn
+u1æ
+uærle9ge
+u1ø6
+uøv5
+u9åra
+u7åre
+va3am
+va8an
+4vab
+6vadj
+vad1r
+vaf3
+vaf6r
+vai5r
+vai5s
+va6ka.
+va7kan
+va5ker
+6vakh
+va8ki.
+4vako
+vak3r
+7v6aksi
+4v3aksj
+vak5s6t
+1vakt
+vakt5r
+va1ku
+vak3v
+va3lan
+va4led
+val9eks
+4valel
+val4g3r
+vali9e8
+val3la
+val6mes
+va6l1o
+va1lu
+va4lun
+4valv
+va4løy
+val7å
+vam8pu
+4v3anal
+vand5s
+v4ane
+vane5s
+va4net
+2vang
+van4gr
+vang4s7
+va8ni.
+1v4ann
+van4nan
+van4niv
+vann6sti
+va4nom
+v4ans
+van5sem
+5vansk
+van5s6ki
+van3sm
+van3ti
+van9tr
+va4ny
+2vap
+va5po
+va4ra.
+va6rak
+va4ral
+va4ram
+va4rap
+va4re.
+va4reg
+va6rem
+va4res
+var8ka
+var5ma
+var4mee
+var4sa
+var4sk
+var4s5ti
+var4sv
+varta9la
+var6tem
+var4t5i4s
+4vasa
+va4sa.
+va9set
+6vasid
+va6sie
+va4sif
+va4sik
+va4sil
+va6sis
+va2sk
+vass5a
+vas4sau
+vas4sel
+vas6s7ø
+4vasta
+vat5a
+va3ta.
+va6t7e8l
+va2terf
+vatle6ge.
+5vatn
+va1to
+va6tr
+vat7ra
+vat1s
+4vau
+2v1av
+va4z
+2v1b2
+vba4ne.
+vber5g
+vbo6da
+6v1d
+v7dev
+vding5s4
+v7doi
+v7don
+vd6r
+vdu6en.
+vdu6er
+v7dø
+1ve.
+2ve1a2
+ve6ag
+ve6ar.
+2veb
+2vec
+ve2d1
+ve9dob
+vedom5
+veds2
+ved5s4k
+3ve8d5t
+vedø4
+vedå6
+2vee
+ve4er
+2vef
+ve6g5av
+ve5ge
+3vegg
+veggs4
+2vegj
+4vegl
+ve3gle
+ve5g6lød
+veg5n
+2vego
+6vegre
+veg5rett
+4vegru
+ve4gut
+ve4g5å
+2veh
+1vei1e
+vei3en
+4veill
+6veit
+2vej
+4veka
+5ve4ka.
+ve4ke.
+ve4ked
+4vekee
+2veki
+4vekj
+2vekl
+vek8la
+vek8le
+ve4kli
+2veko
+2vekr
+3veks
+vek4st
+veks4t5r
+1vekt
+vek4t5an
+vek5to
+vek4t5r
+2vekå
+5vel.
+ve4l5as
+5velat.
+5velatp
+6veld.
+vel4del
+8velds
+4veled
+6velei
+7velet
+4velis
+4velit
+6veliv
+2velo
+5veloc
+vels2
+vel3se
+velses5
+vel3sm
+vel5sp
+vel5st
+4velug
+vel5un
+vel5v
+2vely
+2velæ
+2velø
+velø8pa
+2vem
+ve5ma
+1ven
+ve8na.
+4venem
+ve5net
+ve6nete
+4venev
+ve4nin
+ven6n5i
+vennle7
+ve2no
+ven6sti
+ven6str
+vent6a
+ven5t6r
+vent4s
+4venty
+2venu
+ve4nus
+ve5ny.
+4venya
+ve4nym
+2ve3o4
+2vep
+1v8er.
+ver5ak
+ver3al
+8verau
+ver6des
+ver6din
+ver6dir
+verd7v
+ve3re.
+4vered
+4vereg
+5vereig
+4verek
+ve4rel
+ve6r7eng
+4verenn
+4verep
+ve5rer
+ve5res.
+4verett
+4veretu
+verfø5re
+ve9ri.
+veri3a
+ve4rial
+ve7rie
+4verik
+ver3il
+5verkn
+ver5m6
+ver6nal
+vern6s5
+ve9ro.
+ve3rom
+ver8ska.
+ver5ski
+ver7spo
+verta8la.
+verta6le.
+ve1ru
+5verum.
+6very
+verø6
+ver3øs4
+4verå
+v4es
+3ves.
+2ves4a
+ve5san
+4veset
+4vesh
+4vesi
+4vesj
+4veski
+2vesl
+ve9sli
+ve1s2m
+6ve3so
+4vesp
+ve6s3per
+ve5sted
+ves6t5end
+vest5o4v
+4vestr
+4vestu
+4vestø
+vesva7
+5vesynds
+2vesø
+ve1så
+veså5re
+v4et
+1vet.
+2veta
+8vetaka
+4veteg
+4vetek
+ve5te6s7
+6vetev
+2ve7ti
+4vetj
+2veto
+ve4to.
+veto7e
+9vetoke
+9vetoks.
+ve4tor
+2vetr
+1vets
+vett5sk
+6vetv
+4vety
+vety8e
+2veu
+ve8um
+2veva
+ve6vak
+ve5van
+ve9var
+2vevi
+vevi8sa
+vev4sm
+vev4sp
+2veø
+2veå
+1vê
+2v1f
+vfall4
+vfø7re.
+2v1g2
+v4ga.
+vga4le.
+vga6li
+vga8ve.
+v9ge
+v4gi.
+vgjer6s7
+vgo4
+v4gå.
+2v1h
+vhø4re.
+1via
+vi1an
+vi6bl
+vice5s
+1vid
+vi5de
+vide4o7
+vi4d5o4
+vid3r
+vid3s4
+vi1el
+vi5end
+vig4m
+vi4gu
+vi5gø
+vi4kat
+5vikb
+vi5ked
+7vikg
+vik5ke
+vik5n
+vi2k3o6
+3viks.
+vik5sa
+vik5s6l
+4vikt
+5vikti
+vi4k5ø4
+vi2l1a
+vi5la.
+vi4les4
+vi4l3in
+1vilj
+vil4l5an
+vil4led
+ville6de.
+vil4lei
+vill9ep
+6v5illu
+vil5m
+vil1o
+vil4sti
+vilt7o
+vil6tret
+vil4tri
+vi2lø
+4vim
+vim7p
+vim7u
+4vindl
+5vindu
+vine5st
+v6ing
+4vingn
+vin5gom.
+ving3r
+vin8g9u
+vin3na
+vin4ned
+6vinnh
+4v5innl
+4v5inns
+4vinnt
+vi6n5o6ver
+v2in2s
+vin7sja
+vin4tes
+vin5tre
+vi8pa.
+vi6pe.
+vip5s
+1vir
+4viro
+7viru
+vis3ab
+vis3ak
+vis5and
+vi4see
+vi3sen
+vi6seng
+vi2s1k
+visk6re
+vis5m
+vi1so
+vis3om
+vi4sp
+vis9pa
+viss4p
+vis5ti
+vi4tak
+vi5tese
+5vi6t5j
+vi4t3o
+vi4tr
+vit7ra
+vit5re
+vit5skr
+vit6te6s7
+vi4t5un
+vitun6ge.
+vi4t5øy4
+vi4va.
+vi6ves
+vivi3
+v1ja
+v1je
+vje4t5a
+vje5t6e
+vje4t5r
+vjet3t
+vje4tu
+v1ji
+4v5jo
+vju3t
+6v3k6
+vk4le
+vk4ler
+vku4le.
+6v1l2
+v6lab
+vla6ga
+v9led
+v9leg
+vlei9e
+vl6el
+vle4se.
+v5lesn
+vle5str
+v6lesv
+vli7v
+vls9
+vlu9sa
+2v1m
+vma8le.
+vmo8de.
+vmord4
+vmå8la
+2v1n
+v3nad
+vna8ke.
+vn5al
+v9nar
+vn5dy
+vne7b
+v2ned
+vne7de
+v4nele
+v4neli
+v4nelo
+v2nem
+vne5r6e
+v4nero
+vne1s
+v4nesta
+v6neste
+v2nev
+vnor9s8kas
+vn4s5pa
+vn1s4t
+vn5t4
+vnæ4re.
+vn5ør
+vo1al
+vo2ar
+6vob
+2vof
+vof8fan
+vo4gu
+voi1
+1vok
+4voko
+voks3k
+vok6s5
+1vol
+voli7
+vo4litu
+vol4tes
+2vom
+vo4na
+vo9nal
+vo9nar
+von5de
+vons6
+von5sh
+2v1o6p
+2vord
+vor8da.
+vo1re
+vo9ren
+2v1org
+4voro
+vors7k
+1vos
+4vosj
+vos4se
+vo4teg
+vo4tel
+6votr
+vo1v
+vo4ve.
+vo6vi.
+2v1p4
+2vr8
+3v6rak
+v7rar
+v1re
+vregi3
+6vrenge
+4vrengi
+v6rengj
+v6rengt
+vrett4s
+v6ri.
+3vrid
+7vrie
+v6rigas
+vri6ma.
+vri8me.
+v3ring
+vrin5s
+vri6ve.
+v1ro
+v4rob
+v4rof
+v4rok
+v4rop
+vro8te.
+v1ru
+v7ry
+vrø3ve
+v1rå
+vrå8da.
+8vs
+v6sa.
+v7sali
+v6se.
+v4seg
+vs3egg
+v3s4el
+v4s5e4li
+vse4n
+v5sen.
+v4s5eng
+v5s4ens
+v2ser
+v6si.
+vs1in
+v1sk
+vs8ke
+v6s5kum
+vs1kv
+v1sl
+vs3lan
+vs6let
+v6slik
+vsmå8la
+v1s2n
+v6s7na
+vs3ne
+vs3ny
+vs3næ
+v4s3nø
+vs5od
+vsom5
+vs5oms4
+v7son
+vs1or
+vs2pe
+vsre6de.
+vs7s6t
+vs4s5å
+v1s2t2
+vste6ma.
+vs3til
+vs1v
+vsø6ke.
+vsøl5
+v2s5øy
+vsøy4er
+v8så.
+vså7re
+2v1t
+vta1
+v4ta.
+vta8ka.
+vta6led
+vta9len
+vta4lev
+vta6s
+v5tepp
+v5t4i
+vti8na
+vti8ne.
+v5t4r
+v3t2v
+vty8e
+1vu
+vu2d1
+vud5d
+vuden5t
+vuds4
+8vué
+vu8k
+2vul
+2vung
+vun4ge.
+6vu6o
+2v1ut
+2v1v
+vva8la
+vve8g9ing.
+vve6g7inga
+vven7n6i
+vvi5ke
+vvi6k7l
+vvi8s9an
+vvi4se.
+2vy1
+vya4
+vy7ens
+1væ
+væ1ra
+væ9ret
+væ8ta.
+v3ø4d
+vø4l
+vø7li
+vøm4met
+3vøre
+vø6re.
+v3ørke
+vør8na.
+vø3se.
+v5øv
+4v1øy
+vøy6e
+vøy7ene.
+vøy9enes
+1våa
+1våe
+4våend
+v4åk
+vå8ka.
+vå4ke.
+vå4kene
+vå9kene.
+vå4le.
+1vån
+vå5ne
+4vånu
+vå3ren
+vå8sa.
+vå5tes
+6våtf
+våt7å
+w2a
+wa6l
+5wald
+wal4k
+walk5o4
+wal4l
+2wap
+war6d7er
+wash3
+1wat
+wa3z
+w1b
+wboy5
+we2
+weate7
+we7b
+we3g
+we5re
+wes2
+wes3s
+wester6
+western7
+wet5
+wett4
+w4i2
+wi9ar.
+wich3
+3wicz
+wi3d
+5wi6en
+wi9er.
+wi5f
+wi3ni
+wi5ra
+wi3ren
+wi5ta
+wk3r
+w1l
+w1m
+wn5s
+wob5
+wou6
+wout7
+ws5
+ws6k
+wurs6
+wy2
+w1yo
+wyor2
+wyork3
+w1z
+xan5t
+x7b
+x3f
+xga6
+x7h
+x1ic
+5x6id
+xi5e4
+x5k
+x1l
+x1p6
+x3r
+x1s2
+x7t
+x6u
+xy2
+ya7b
+1yac
+ya5f
+ya4h
+y1ak
+yak6te.
+ya2l
+y7am
+y1an
+y6an.
+y2ana
+ya4ne.
+yan7k
+yan7sl
+y1ark
+y7arr
+yas4
+ya5si
+ya5t
+y1av
+y1b
+yba4ne.
+yb4bed
+ybde3
+ybo2
+ybu6er
+ybue7re
+ybu7ern
+ybyg5
+y1c
+y8ce.
+y8cé
+y2co3
+y6dab
+yd5av
+4ydd
+yd6dela
+yd4dep
+y6d7enh
+y4deo
+y2dep
+y4dero
+y2d1is
+yd6je
+yd1ji
+ydo4
+yd3op
+yd5ov
+y1dr
+y4d4r5au
+yd1re
+yd5rem
+y4dro
+y4d4r5oks
+yd3si
+yds4v
+y2du
+yd1un
+ydø4
+y4døm
+ydør5
+yd1øs
+4y1e
+yed8l
+ye6dre
+y2ek
+y5eks
+ye4len
+ye6let
+yel4s5j
+yel4sk
+yels3m
+yel6s5t
+y2em
+ye2n
+y7e6ne
+y8ener
+y2enh
+ye5ni
+y2enk
+y2enl
+yenle6ge.
+yens4
+y4ense
+y3e6re
+ye4rel
+y3ern
+yer8sk
+y4erst
+yes2
+ye5sm
+ye2t
+ye9te
+ye5ty
+y2ev
+y1f
+yfan9
+yfjell4
+y4fle
+yf5le.
+y8ga.
+yga8ve.
+yg4dal
+yg4dek
+yg4del
+yg4dep
+yg2do
+yg2d1r
+yg2d1y
+yg2dø
+yge5i
+ygen5s
+y6geret
+y2ges
+y4gev
+yg6gam
+ygg7art
+ygges4
+yg5gj
+ygg5l
+yg6gr
+ygg3s2
+yg6gu
+yg6g5å
+ygi2
+y5glo
+yg7m
+yg6r
+y1h
+yhes5
+y1i
+y9in.
+yis7t
+y1j
+6yk
+y1ka
+ykap3
+y6kara
+y2ke
+y7kel.
+y5kelen
+y3keli
+y7kels
+y3ken
+y3ker
+y4kerel
+y4kero
+y5ket.
+y9kets
+y1ki
+y1kj
+y4kjar
+y5kjare
+ykjeva8ne.
+yk4kana
+yk4k5enh
+yk5kesj
+ykke6s5ta
+yk1kj
+ykk5ni
+ykk4s5k
+yk8k5vi6
+yk4ky
+yk1la
+yk6lest
+y1klo
+y3klub
+yk3lus
+y5klæ
+y1ko
+y2koa
+y6koli
+y4komo
+y5kosa
+y2kot
+y5koti
+y1kr
+yk1s
+yku6le.
+yk3var
+y1la
+yla8ga
+yl4dan
+yl4derk
+ylde4s
+yld1r
+yld5s6k
+yle6ge.
+y7les
+y4lev
+yligh9
+yl5k8
+ylke2
+ylke4s3
+ylkesla8ga
+yl4lev
+yll5is.
+yl3s6
+ylst7re
+yl5tet
+y8luse
+3ylven
+y1ly
+ylæ7re
+y6mei
+y4mete
+ym4fe5d6
+ym5jara
+y4mo.
+ymo5e
+ym3p2
+ym1s
+ym8sa.
+ym4se
+ym8sl
+ym6ta.
+ym6te.
+ymå6la
+y9n8and
+yndes8
+yn5det
+y2nel
+yn7eld
+yner3g
+yne5s4
+ynesi8
+y6nev
+yn5gel
+yn4gem
+yn2gr
+yn4g5ø
+ynko3
+yn6k5v
+yn5na
+yn5ne
+ynn3s4
+ynn4ø
+y3no
+y4no.
+yns1
+yns6are
+yn4sem
+yn9set
+yn2si
+yn2sk
+yns9ket.
+yns7ki
+yn5skj
+yns7kjele
+yn8s9kjer.
+yn4st
+yn2su
+yn4s5ver
+yn4tap
+yn8teg
+ynt5ei
+yn4tek
+yn6tete
+yo4gat
+yo6gi.
+y1om
+yon4
+yon5nen
+yo6nu
+y1o2p
+y1o2r
+yor6da
+yo5re
+you4
+yout5
+yp8e
+y2pe.
+y4pee
+y4pena
+y4penet
+ype4rel
+y6peta
+y1pi
+y4pi.
+y7ping
+yp5inn
+ypin8na
+y1p2l
+y5po
+yp7p6a
+yp3pe
+y1pr
+yp5s8
+yp4tok
+y3pu
+y1ra
+yra8ka
+y4r3a6l
+y7rarb
+y4r5au
+yr5av
+yr7da
+yr5dø
+y7real
+yre3in
+y5reis
+yrek4
+y7rek7k
+y3rels
+y5rems
+y1ren
+yre9ne
+y4reo
+y6rerel
+y4rero
+yre5sc
+y5rest.
+yre5ste
+y5reste.
+yres6ten
+y1ret
+y4reta
+y4rete
+y4reto
+y7retø
+yr7ga
+y1ri
+yrin5g6
+yri6ene.
+y4rif
+yri8ka.
+yr3inn
+yris6p
+yr4kee
+yrke4s
+yr5kj
+yr3m
+y7roe
+y3romm
+yr1op
+y5rosk
+yr5r8
+yr4san
+yr7set
+yr5sk
+yr6skj
+yr6skr
+yr2sp
+yrs7tan
+yrs5tar
+yrs7tene
+yrs5tens
+yr3sti
+yr4sv
+yr3te
+yr6tek
+yr2t3r
+yr3tra
+yrty8
+y1ru
+yrul8la.
+yr5ut5r
+yr3v
+y1ry
+yr3øk
+yrøy4
+y1rå1
+yråd2
+yrå8da
+yråde7r
+yrå6ders
+y4rådi
+y2råm
+y6råst
+y4råt
+y4råv
+2ys
+y1sa
+ys6a7kers
+ys4e
+yse4bu
+y4sed
+y4see
+yse5ei
+y2seg
+y2sek
+ys7ekte
+y2sem
+y4sera
+yse7rid
+yseri7e6
+y4sesj
+y4sesk
+y4se5s6l
+y4sest
+y5seste
+y6sesu
+y9set.
+y4seu
+ys6i
+ysi8e
+y5sjk
+y7skag
+ys6kara
+ys7kare
+ysk9au
+ys2k3l
+ysk5øs
+ys4mi
+ys4nø
+y1so
+y4s5or
+ys2pe
+ys5pis
+y5s4po
+ys6sak
+ys6sam
+ys4s3ei
+ys4s3ek
+ys4s5il
+ys2sj
+ys4sku
+ys2so
+ys2sp
+yss5pe
+ys4sta
+yss5tab
+ys4s5ti
+ys4su
+ys2s5v
+ys2t
+ys3ta
+y8star.
+ys4tat
+ys3tel
+ys3ten
+y4s3ter
+ysterie7n
+ys7tesl
+y2s3ti
+yst3op
+yst3r
+ys5t6ry
+ys6ty
+y1su
+ys1ve
+ys5år
+y1ta
+y4t3ana
+y2tee
+y4tef
+y2teg
+yt5e4ge
+yte3in
+y4teka
+y4teki
+y4tena
+y4teno
+y2teo
+y4teret
+yte6ro
+yters6
+yter5ske
+yte5r6ø
+y2tes2
+y2tet
+y3t2hi
+6y5til
+y6tj
+yt9ja
+yt5jen
+yt9jer
+yt4mei
+yt4mes
+y3to
+yt8ra
+yt4re.
+yt5rer
+yt1ri
+yt4rik
+y5trå
+yt4s3en
+yt3sk
+yt5sv
+4ytt
+yt5t6a
+ytt4e
+ytte8r9end
+yttes6
+yt4test
+yt8tien.
+yttsa6me.
+2y3tu
+y1ty
+yt4ys
+y7tå8
+y1u
+y6ua
+y8ue
+yu8g
+yu4l
+y1v
+y4vak
+yva8la
+y2ved
+yve4ria
+yve4ris
+y4vese
+y6vesy
+y6vev
+yvi8sa
+yvi6se.
+yv1år
+yvå5te
+y1w
+y5æ
+y5ø
+y1å2
+za5b
+3zae
+4zaes
+za4g5
+za5k6h
+zani4
+zania5
+5za5v
+z1b4
+zbu4
+z1c
+z1d
+1ze
+zea1
+zebu9
+zeli5
+zen3s
+4z3ense
+4z3ent
+z1f
+z1g
+5zha
+z3hi
+z5hu
+5zie
+1zifi
+5zing
+z5int
+1zis
+6zisty
+4zi5s4v
+2zisy
+z1k
+4z1l
+z1m
+5zo.
+5zoe
+zo1f2
+zo4no
+zo5re
+6zos
+z1p
+z5r
+z1s
+4z1t
+zu3e
+z1un
+z1v
+z1za.
+z2z3el
+æ5by
+æ2bø
+æ5de
+æ7di
+æ1f
+æg6
+æ2k
+æ3ke
+æ5ki
+æ8kj
+æk1ja
+æk7je.
+æk9jer.
+ække7
+ækkel6
+æk6l
+æ1la
+æ4le.
+æ2le3d
+æ4lena
+æ4lev
+æl5j
+ælsle9
+æ4r1ak
+æ3rane
+æ4rans
+æ4rarb
+æ6rarbe
+ær4arte
+æ4r1at
+ærbu5e
+ær1d4
+æ1re
+æ2rea
+æ4red
+æ2ref
+æ2reg
+æ8r7ei
+ærei6e
+æ2rek
+æ6r7eld
+ære5ne.
+ære7nes
+æ2rep
+æ5rern
+æresa4m
+ære6skr
+ære4sl
+ære4sp
+æ4reta
+æ4retek
+æ9rets
+æ2rev
+4ærf
+ærgen5
+ærhø8
+æ1ri
+æri6e7ne
+æ4r3il
+ær3ins
+æri6s
+ær5is.
+4ærk2
+ærle6ge.
+4ærm
+ærmå8la
+ær3n
+ær5ne4
+ær4nå
+æ2r7o6
+ærom5
+æroms4
+ær5r
+ær6sel
+ær4s5il
+ær1sk
+ær7s6no
+ær2sp
+æ2r1u
+ærut5
+ær3v
+æ2r1ø4
+ærøy7e
+ær3å4
+æ8se.
+æ2sj
+æ2s1k
+æ5ta
+4æte
+æ4te.
+æt4r
+æt4ta
+æ5va
+ævar5
+æve4s
+æ5vi
+6ø1a2
+øa7re
+øau4
+ø1b
+øbe6lev
+øbe4li
+ø2bl
+øbl9u
+øb4r
+ød3ag
+ø4dak
+ød3d
+ød9de.
+ø2de.
+ø4dede
+ø6def
+ø4dela
+ø4dem
+ø4deo
+ø4deri
+ø4dero
+ø5dj
+ød1r
+ød4red
+ød4rek
+ød4rep
+ød2sc
+ød6s5ek
+øds7ke
+øds4ko
+ød6sku6
+øds4mu
+ød8t5om
+ødt6r
+ø2du
+ød3und
+ø4d5ur
+ø6d5ø
+4ø1e2
+ø4ed
+ø5ene
+ø5ep
+ø3e6re
+øfe8
+øf3fe
+øf6j
+øf8la.
+øf8le.
+øffe8l7a
+ø5fn
+øfte5s
+øg1
+øg2a
+øg5ak
+øg5al
+ø7gar
+ø5gas
+ø3ger
+øg5gl
+øg8gå
+ø7g4j
+øglo8ve
+øgn6s7p
+ø2g2r
+øg5re.
+øg5res.
+øgs2
+øg4ste
+øg4str
+øgta5
+4øg4u
+ø1h
+ø4i
+øi4e
+ø5ing
+ø5isk
+ø4it
+ø1j
+6øk.
+6ø1ka
+ø5kav
+øka8ve.
+ø6keh
+ø4kelo
+ø6kerada
+ø6kerel
+ø4ke5ru
+øke1s
+ø6kese
+ø8kesl
+ø4kest
+ø4kete
+ø1ki
+4økj
+ø5kjare
+ø5kjas
+ø1kje
+2økk
+øk5kel
+øk5ket
+øk4k5l
+økk5r
+øk3lag
+øk3lan
+2økna
+1øko
+øk5opp
+ø1kr
+ø8krar
+øk8sa.
+øk6se.
+øk4ses
+øk4si
+øk2so
+øks1t6
+øks5ti
+øku4r
+øk5ur.
+øk5ure
+øk7ve
+ø7ky
+ø1la
+ø2lah
+ø6lam
+øl3d
+øled
+ø4ledi
+ø6lelu
+ø4lero
+ø6leta
+ø4le5te
+ø2lev
+øl4gera
+ølge5s6v
+øl1j
+øl2ke
+ølke7s
+øl4lese
+øl9leti
+øl6lev
+ø1lo
+øl7op
+ølrå4
+øl6sel
+øl4sere
+øl4se3s
+øls6t4
+øl5s4v
+ø5luk
+øl7ut
+ølva6
+øl4var
+øl4v3ei
+øl6vek
+øl8vel
+ølv7erk
+øl4v3in
+ølv5o
+ølv7r
+ø1ly
+ø4me.
+ø9met
+1ømfi
+ø5mi
+ømini6
+øm4med
+øm4mero
+ømmet6
+øm4metr
+øm3op
+øm4pel
+øm7s6p
+øm1st
+øm5svi
+ø2m1u
+ømå8la
+øn2ad
+ø6n5al
+ø5nas
+ø2nem
+ø3nes.
+ø9nese
+ønhø8re.
+4ønn
+øn4nal
+ønni4
+øn4n5it
+ønns5al
+ønn4s3e
+ønn4s5i4d
+ønns5kje
+ønns5kre
+ønns5ku
+ønns3l
+ønns3t
+øn2nø
+ø6nom
+øn2s
+øn9sa.
+øn5sak
+øn5sam
+øn5se.
+øn3ser
+øn3skj
+øn8skjer.
+ønst3r
+ønst9ra
+ønt1
+øn2ta
+øn2to
+øn7u8
+ø1o
+ø4peda
+ø6pe5i
+ø4penu
+ø5pero
+ø4peru
+øpes4
+ø4pete
+ø4peti
+ø1pi
+øp3li
+øp5p
+øp6pl
+ø1pr
+øp6s1
+øpsa4
+øpsla8ga
+øps8leg
+øp5ste
+øp4s5ø
+ø1ra
+ø2ra.
+ø2r1af
+ø2r1ak
+ø2r1a2m
+ø4rans
+ø4r3ant
+øra8sa
+øra6si
+ø4r7au
+ørd4e
+ø1re
+ø2rea
+ør7edd
+ø6redu
+ø2ref
+ø2reg
+ø6rein
+ø2rek
+ørek6l
+ør3eks
+ør5ekt
+ørele8se
+ø9relet
+ø4r5eng
+ø2re5o4
+ø2rep
+ø6reret
+ø4reru
+øre1s2
+ø5res.
+ø4rese
+ø6resi
+ø7reskrivi
+ø8reso
+ø4rest
+øre6s7v
+ør6et
+ø4reta
+ør1eu
+ø2rev
+ør5fe
+ørge5s
+ø1ri
+øri8m
+ør4jet
+ør4keri
+ør4kes
+ør8k9lag
+ør6k5n
+ør4kve
+ør4kå
+ørla8ga
+ørm9ut
+ørn4e
+ør4nere
+ør4nes4
+ør4n3u
+ør4n5ø
+ør1o
+ø5r6ok
+ø1ros
+ø4r3ost
+øro4v
+ør4rek
+ør4rep
+ørri4
+ør4r5is
+ør4råt
+ør4sak
+ørsa8ka
+ørsa6me.
+ør4sc
+ør6ses
+ør2si
+ør5ski
+ør4skr
+ørs6lev
+ør4som
+ør4spe
+ør2st
+ørs9tar
+ørste5i
+ørs5tens
+ørs5tig
+ør3sto
+ørs9u
+ør2sv
+ørs1å
+ør9tar
+ør4tek
+ør6ti9a
+ør4tide
+ør8tien.
+ør6tif
+ør3to
+ørum5
+ø6rut
+ør5v
+ør1ø2s
+ørø1v
+ør1åp
+ø1sa
+øsa6me.
+ø8sarar
+ø1sc
+ø2se.
+ø2sem
+øse4n5o
+øseri7
+øserie6
+øs5jo
+øs7kar
+øs1l
+øs4lag
+ø4slu
+øs2me
+ø1s2p
+øs8tas
+øst9ast
+øs6teg
+øs5terse
+øst9ett
+østo2
+øst5of
+øst5ov
+øst1r
+øst3re
+østø4
+ø2s1ø2
+4øt
+øt3ak
+ø9tar
+øta4s
+øt5asa
+ø2te.
+ø2tea
+ø6tef
+ø6tege
+ø2tei
+ø2t5eks
+ø2tel
+ø5tela.
+ø3ten
+ø4teni
+ø3ter.
+øte3ru
+ø2te1s
+øte7sn
+ø4teta
+øt7ri
+øt1sa
+øt3s4p
+øt7s6å
+øtså9re
+øt4tero
+øt6test
+øtt5av
+øtt5eks
+øtt5eta
+øtt5ete
+øtt5ra
+øtt7ri
+øtt1s2
+øttså7re
+øt4tur
+øt4ty
+ø1tu
+ø5ty
+ø1u2
+øug8la
+øv5aa
+øv5ans
+øve5in
+ø4vek
+øve5no
+øveren8
+øve1s
+øves4t
+øve3te
+ø5vik
+øv6l7ut
+øv7ne
+øv6nø
+øv9o8
+øv1r
+øv5reb
+øv1s
+øv9sa
+ø5vå
+øy3al
+øya2n
+7øyan.
+9øy8ans
+øy4dek
+øy4dere
+øyd8i
+5øyeb
+øy7e4de
+øy2ee
+øy4ele
+øye4n
+øy4ep
+øy4erf
+øy1gl
+øy3ke.
+øyks4
+øyk5t
+2øyl
+øy4led
+øy4leg
+øy5na
+øy5ni
+øy3o
+6øyp
+øy3pe.
+øy4pel
+øy4ra.
+øy5rer.
+øyri6v
+øy3rø
+øy1s
+øy5s4ar
+øy5si
+øys2l
+øy4sm
+øy4spi
+5øysund
+øy4tei
+øy4tel
+øy4tere
+øyte5s6
+øyti7da
+øy1tr
+øy2t3y6
+øy5tø
+øy4vei
+5øyvå
+ø1ø2
+ø5å6
+å1a
+åak6ta
+åa4n5
+åan8ka.
+åan6ke.
+å2ar
+å5aran
+åau4re
+å1b4
+åba8ne.
+åber2
+åbo9ta
+6å1d
+å7dan
+å9dar
+å4ded
+å4dek
+å4dem
+å4deo
+å4dep
+å4dere
+å4deri
+å6dero
+å2des
+å7di
+åd4ra
+åd8re
+åds1
+åd2sk
+åd3s4la
+åd7slo
+åd3slå
+åd1s2n
+åd3s4pe
+åd7spu
+åd5st
+åd6s7te
+4å1e
+å2ele
+åem8na
+åe2n
+å7ens
+å3er
+å3e6re.
+å1f
+åfe6
+åfø5re
+2åg
+å4ga.
+åg7ald
+å4ge.
+åg7ei
+å2ges
+ågna5
+åg5ne
+åg4r
+åg5rin
+ågs6k
+åg5sl
+åg7sp
+ågs4t
+ågu4l
+åg5ø
+å4gå.
+å1h
+å1i
+å1j
+å1ka
+å3kan
+å3kar
+å4karb
+åk7av
+å4keh
+å3ken
+å4kena
+å4k3enh
+å4kere
+åke5s
+å4kesl
+å5kevi
+å1ki
+å6kid
+å1kj
+åk1k
+åk5ka
+åkk6l
+åk7kr
+åk7lau
+åklist7
+åk3læ
+å1ko
+åk3opp
+åko4s
+åk6ra
+åk5røk
+åk3rå
+åk1s2
+åks7l
+åk3t4
+åku8
+å5k8ul
+åkva8la.
+åkøy8rar.
+å2k3å
+å1la
+å5l6amp
+å6larb
+å9las
+ål5au8
+ål9av
+ål3d
+å2lef
+ål5eini
+å2lek
+å2lem
+å4l5enh
+å4leni
+åle6ris
+å2le1s2
+åle9s6und
+å4lete
+å2lev
+ålgå6
+å6lio
+ål5j
+ålla6ga
+ål3or
+ål4san
+ål4sek
+ål4ser
+åls7i
+ål2sp
+ål4sti
+ålsy8na
+ål5ti
+ålti5d
+ål1u
+ålul8la
+å1ly
+å2l1øy
+åløy4e
+ål5å6k
+ålå8te.
+6åm
+å6me.
+åm4li.
+åm1om
+åm5øy
+å3nar
+å9nas
+ånd3r
+ånd4sa
+ånd4se
+ånd4so
+å4ne.
+åned4
+åneds5
+åne5i6
+å2nel
+ånely6
+å5nes.
+å3net
+å4netr
+å3ni
+ån5o
+å9ny
+å3o
+åp2e
+åpe4n3a
+åpe4n5i
+åpen3s
+å5per
+å6pero
+å1pi
+åp6j
+å1pla
+åp4ne.
+åp7p
+å1pr
+åpra5
+åp2s1
+åp6ta
+å4på
+år3ak
+å9ran
+å7rara
+ård5str
+å2re.
+å5rei
+å6rel
+åre7s
+å4rest
+årfi4
+å7riv
+år3k2
+år4le.
+2årn
+årn5s
+år3on
+år3op
+årpo8
+år2s
+års5af
+års3el
+år3sem
+års3ko
+år8sku
+årsla8ga
+år3sol
+års3ta
+år7ste
+års3ti
+år7sto
+år5stu
+års1u
+års1v
+år5sy
+år5u4k
+år3un
+år5y4
+å1rø
+å5r8å
+ås2
+å1sa
+ås7au
+å4se.
+å4see
+ås5eid
+å4sek
+å4sem
+åseri7e6
+åse3s2
+å4sesm
+å4seso
+åse5ta
+ås3h
+å8si.
+ås5ka.
+ås9kene
+ås8ki
+å1skj
+ås7kop
+å1skr
+å5sku
+å1sl
+ås5ne
+ås3ni
+å5so
+å1sp
+ås7pl
+ås5sa
+ås5se
+ås3si
+åss3k
+4å1st
+å7stei
+åsu4
+ås3un
+ås7ut
+ås7væ
+ås5øy
+åså9
+å1ta
+å4ta.
+åtaks5
+åta2l
+åta9la
+åtale3
+åta5le.
+åta5len
+å4tang
+å4tark
+å4t5arm
+å2te.
+å2tea
+å4tee
+å2t1ei
+åte6ke.
+å4teo
+å9ter
+å2tes
+5åtferd
+å5ti
+åti7da
+2åtn
+å1to
+åt7ov
+6åtp
+åt1re
+åtri6pa.
+åtri8pe.
+åt1ru
+åt5sk
+åt1t
+åt4ted
+åt4ti
+ått3o
+åt4tri
+åtts4
+åt6t5æ
+åt1u
+åt4un
+åtva5ra
+åtva7re
+åt5ve
+å5ty
+åt1øv
+å3u
+åun8ge.
+å1v
+åv4a
+å2ve7d
+å4veg
+åve5l
+å4veni
+å9ver.
+å2vev
+åv7s6
+å7vy
+åvæ4re.
+å1ø8
+åøy4} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-nn.rme b/Master/texmf-dist/tex/context/patterns/lang-nn.rme
new file mode 100644
index 00000000000..0c2df2eba43
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/lang-nn.rme
@@ -0,0 +1,134 @@
+% generated by mtxrun --script pattern --convert
+
+% Adapted to the new pattern-loading scheme.
+% Original file name was nnhyph.tex
+
+% TeX hyphenation patterns for Norwegian Nynorsk
+%
+% Version 2007-02-10
+%
+% Copyright (C) 2007 Karl Ove Hufthammer.
+% Copying and distribution of this file, with or without modification,
+% are permitted in any medium without royalty, provided the copyright
+% notice and this notice are preserved.
+%
+% This file contains hyphenation patterns for Norwegian Nynorsk.
+% It uses the Norwegian hyphenation patterns from nohyphbx.tex,
+% created by Rune Kleveland and Ole Michael Selberg. Please see
+% that file for copyright information on those patterns.
+%
+% The patterns in nohyphbx are based on both Norwegian Bokmal
+% and Norwegian Nynorsk, and works about equally well for both
+% languages. This file, nnhyph.tex, contains only a few hyphenation
+% exceptions, for words that needs to be hyphenated differently for
+% the two languages.
+%
+% Please send bugs or suggestions to karl@huftis.org.
+%
+
+% This file is part of hyph-utf8 package and resulted from
+% semi-manual conversions of hyphenation patterns into UTF-8 in June 2008.
+%
+% Source: nohyphbx.tex (2007-02-07)
+% Author:
+%
+% The above mentioned file should become obsolete,
+% and the author of the original file should preferaby modify this file instead.
+%
+% Modificatios were needed in order to support native UTF-8 engines,
+% but functionality (hopefully) didn't change in any way, at least not intentionally.
+% This file is no longer stand-alone; at least for 8-bit engines
+% you probably want to use loadhyph-foo.tex (which will load this file) instead.
+%
+% Modifications were done by Jonathan Kew, Mojca Miklavec & Arthur Reutenauer
+% with help & support from:
+% - Karl Berry, who gave us free hands and all resources
+% - Taco Hoekwater, with useful macros
+% - Hans Hagen, who did the unicodifisation of patterns already long before
+% and helped with testing, suggestions and bug reports
+% - Norbert Preining, who tested & integrated patterns into TeX Live
+%
+% However, the "copyright/copyleft" owner of patterns remains the original author.
+%
+% The copyright statement of this file is thus:
+%
+% Do with this file whatever needs to be done in future for the sake of
+% "a better world" as long as you respect the copyright of original file.
+% If you're the original author of patterns or taking over a new revolution,
+% plese remove all of the TUG comments & credits that we added here -
+% you are the Queen / the King, we are only the servants.
+%
+% If you want to change this file, rather than uploading directly to CTAN,
+% we would be grateful if you could send it to us (http://tug.org/tex-hyphen)
+% or ask for credentials for SVN repository and commit it yourself;
+% we will then upload the whole "package" to CTAN.
+%
+% Before a new "pattern-revolution" starts,
+% please try to follow some guidelines if possible:
+%
+% - \lccode is *forbidden*, and I really mean it
+% - all the patterns should be in UTF-8
+% - the only "allowed" TeX commands in this file are: \patterns, \hyphenation,
+% and if you really cannot do without, also \input and \message
+% - in particular, please no \catcode or \lccode changes,
+% they belong to loadhyph-foo.tex,
+% and no \lefthyphenmin and \righthyphenmin,
+% they have no influence here and belong elsewhere
+% - \begingroup and/or \endinput is not needed
+% - feel free to do whatever you want inside comments
+%
+% We know that TeX is extremely powerful, but give a stupid parser
+% at least a chance to read your patterns.
+%
+% For more unformation see
+%
+% http://tug.org/tex-hyphen
+%
+%------------------------------------------------------------------------------
+%
+% TeX hyphenation patterns for Norwegian
+%
+% version of 2007-02-07.
+% Patterns of January 25, 2005, with later additions and changes
+%
+% Copyright (C) 2004, 2005 Rune Kleveland, Ole Michael Selberg.
+% Copying and distribution of this file, with or without modification,
+% are permitted in any medium without royalty provided the copyright
+% notice and this notice are preserved.
+%
+% Please send bugs or suggestions to tex-live (at) tug.org.
+%
+% Originally generated by a script written by Rune Kleveland
+% from dictionaries available from
+% http://folk.uio.no/runekl/dictionary.html.
+%
+% Adjusted manually by Ole Michael Selberg to prevent
+% numerous wrong hyphenations, especially in compounds.
+%
+% Changes from the former version of 2005-06-29:
+% 388 new patterns. Some old patterns have been deleted or changed.
+%
+% In Kleveland's nohyphb.tex there are 26017 patterns.
+% This version of the revised nohyphbx.tex contains 27149 patterns
+% --- plus 45 exceptions in the \hyphenation-list
+% (which you may change to suit your personal needs).
+%
+% To load these hyphenation patterns the parameters
+% of TeX must have the following minimum values:
+% trie_size = 33385
+% trie_op_size = 815
+% (The corresponding values for nohyphb.tex are
+% trie_size = 31900 trie_op_size = 636)
+% If you want to load more than one set of hyphenation
+% patterns the parameters have to be set to a value
+% larger than or equal to the sum of all required values
+% for each set.
+%
+% Notes on other Norwegian hyphenation pattern files, from Dag Langmyhr,
+% tex-live mail of 29 Jun 2005 11:26:21 +0200.
+% nohyph.tex -- manually created by Ivar Aavatsmark and others;
+% hyphenate according to pre-1973 rules; no longer recommended for use.
+% (Sometimes also known as nohyph1.tex.)
+% nohyph2.tex -- created by Dag and a student; the present file,
+% nohyphbx.tex, is more extensive and is recommended.
+% \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-pl.hyp b/Master/texmf-dist/tex/context/patterns/lang-pl.hyp
index f12b012895b..11af8cb0740 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-pl.hyp
+++ b/Master/texmf-dist/tex/context/patterns/lang-pl.hyp
@@ -1,26 +1,10 @@
-% context hyphenation file, see lang-all.xml for original comment
+% generated by mtxrun --script pattern --convert
-% source of data: plhyph.tex
+% for comment and copyright, see ./lang-pl.rme
-% begin description data
+% used: a b c d e g h i j k l m n o p r s t w y z ó ą ł ż
-% <!-- copied from lang-all.xml
-%
-% <?xml version='1.0' standalone='yes'?>
-%
-% <description language='pl'>
-% <sourcefile>plhyph.tex</sourcefile>
-% <title>TeX hyphenation patterns for the Polish language</title>
-% <copyright/>
-% </description>
-%
-% end of copy -->
-
-% end description data
-
-% begin hyphenation data
-
-\hyphenation {
+\hyphenation{
be-zach
be-zami
by-naj-mniej
@@ -40,8 +24,4 @@ przy-naj-mniej
skąd-inąd
tró-jach
tró-jami
-tró-jek
-}
-
-% end hyphenation data
-
+tró-jek} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-pl.pat b/Master/texmf-dist/tex/context/patterns/lang-pl.pat
index 55c64e93ffe..9739f19deaa 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-pl.pat
+++ b/Master/texmf-dist/tex/context/patterns/lang-pl.pat
@@ -1,26 +1,10 @@
-% context pattern file, see lang-all.xml for original comment
+% generated by mtxrun --script pattern --convert
-% source of data: plhyph.tex
+% for comment and copyright, see ./lang-pl.rme
-% begin description data
+% used: a b c d e f g h i j k l m n o p r s t u v w x y z ó ą ć ę ł ń ś ź ż
-% <!-- copied from lang-all.xml
-%
-% <?xml version='1.0' standalone='yes'?>
-%
-% <description language='pl'>
-% <sourcefile>plhyph.tex</sourcefile>
-% <title>TeX hyphenation patterns for the Polish language</title>
-% <copyright/>
-% </description>
-%
-% end of copy -->
-
-% end description data
-
-% begin pattern data
-
-\patterns {
+\patterns{
.ćć8
.ćł8
.ćń8
@@ -4073,8 +4057,4 @@ ye2
yi2
yo2
yu2
-ze4p3p
-}
-
-% end pattern data
-
+ze4p3p} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-pl.rme b/Master/texmf-dist/tex/context/patterns/lang-pl.rme
new file mode 100644
index 00000000000..35641d3a4c0
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/lang-pl.rme
@@ -0,0 +1,88 @@
+% generated by mtxrun --script pattern --convert
+
+% This file is part of hyph-utf8 package and resulted from
+% semi-manual conversions of hyphenation patterns into UTF-8 in June 2008.
+%
+% Source: plhyph.tex (1995-06-26)
+% Author: Hanna Kołodziejska, Bogusław Jackowski, Marek Ryćko
+%
+% The above mentioned file should become obsolete,
+% and the author of the original file should preferaby modify this file instead.
+%
+% Modificatios were needed in order to support native UTF-8 engines,
+% but functionality (hopefully) didn't change in any way, at least not intentionally.
+% This file is no longer stand-alone; at least for 8-bit engines
+% you probably want to use loadhyph-foo.tex (which will load this file) instead.
+%
+% Modifications were done by Jonathan Kew, Mojca Miklavec & Arthur Reutenauer
+% with help & support from:
+% - Karl Berry, who gave us free hands and all resources
+% - Taco Hoekwater, with useful macros
+% - Hans Hagen, who did the unicodifisation of patterns already long before
+% and helped with testing, suggestions and bug reports
+% - Norbert Preining, who tested & integrated patterns into TeX Live
+%
+% However, the "copyright/copyleft" owner of patterns remains the original author.
+%
+% The copyright statement of this file is thus:
+%
+% Do with this file whatever needs to be done in future for the sake of
+% "a better world" as long as you respect the copyright of original file.
+% If you're the original author of patterns or taking over a new revolution,
+% plese remove all of the TUG comments & credits that we added here -
+% you are the Queen / the King, we are only the servants.
+%
+% If you want to change this file, rather than uploading directly to CTAN,
+% we would be grateful if you could send it to us (http://tug.org/tex-hyphen)
+% or ask for credentials for SVN repository and commit it yourself;
+% we will then upload the whole "package" to CTAN.
+%
+% Before a new "pattern-revolution" starts,
+% please try to follow some guidelines if possible:
+%
+% - \lccode is *forbidden*, and I really mean it
+% - all the patterns should be in UTF-8
+% - the only "allowed" TeX commands in this file are: \patterns, \hyphenation,
+% and if you really cannot do without, also \input and \message
+% - in particular, please no \catcode or \lccode changes,
+% they belong to loadhyph-foo.tex,
+% and no \lefthyphenmin and \righthyphenmin,
+% they have no influence here and belong elsewhere
+% - \begingroup and/or \endinput is not needed
+% - feel free to do whatever you want inside comments
+%
+% We know that TeX is extremely powerful, but give a stupid parser
+% at least a chance to read your patterns.
+%
+% For more unformation see
+%
+% http://tug.org/tex-hyphen
+%
+%------------------------------------------------------------------------------
+%
+% This is PLHYPH.TeX - the Polish hyphenation patterns
+% version 3.0a, Wednesday, May 17th, 1995
+% to be used for the inclusion of Polish hyphenation patterns in any format,
+% not necessarily in the MeX or LaMeX ones. The patterns are exactly
+% the same as in the version 3.0 being the part of the MeX package,
+% only the surrounding of the \pattern command is changed. The authors
+% claim the upward compatibility, i.e., the version 3.0a can also be used
+% with the MeX or LaMeX formats.
+
+% The history of development of the Polish hyphenation patterns:
+%
+% The first version of the patterns was developed
+% by Hanna Kołodziejska (1987).
+%
+% The adaptation to the LeX format (see below) and extensive modification
+% were done by Bogusław Jackowski & Marek Ryćko (1987--1989).
+%
+% The hyphenation rules were further improved and adapted to the
+% TeX 3.x requirements by Hanna Kołodziejska (1991).
+%
+% Lone-standing version (3.0a) of patterns was prepared (under pressure
+% from LaTeX users) by Bogusław Jackowski and Marek Ryćko, following
+% Mariusz Olko's suggestions, 1995.
+
+% The LeX format mentioned above was the first version of the adaptation
+% of TeX to the Polish language. The next version is called MeX.
diff --git a/Master/texmf-dist/tex/context/patterns/lang-pt.hyp b/Master/texmf-dist/tex/context/patterns/lang-pt.hyp
index 8198898a612..2c992d59659 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-pt.hyp
+++ b/Master/texmf-dist/tex/context/patterns/lang-pt.hyp
@@ -1,29 +1,9 @@
-% context hyphenation file, see lang-all.xml for original comment
+% generated by mtxrun --script pattern --convert
-% source of data: pthyph.tex
+% for comment and copyright, see ./lang-pt.rme
-% begin description data
+% used: a d e f h o r s t w
-% <!-- copied from lang-all.xml
-%
-% <?xml version='1.0' standalone='yes'?>
-%
-% <description language='pt'>
-% <sourcefile>pthyph.tex</sourcefile>
-% <title>TeX hyphenation patterns for the Portuguese language</title>
-% <copyright/>
-% </description>
-%
-% end of copy -->
-
-% end description data
-
-% begin hyphenation data
-
-\hyphenation {
+\hyphenation{
hard-ware
-soft-ware
-}
-
-% end hyphenation data
-
+soft-ware} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-pt.pat b/Master/texmf-dist/tex/context/patterns/lang-pt.pat
index ecc572ae9ce..3f168c334c4 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-pt.pat
+++ b/Master/texmf-dist/tex/context/patterns/lang-pt.pat
@@ -1,26 +1,10 @@
-% context pattern file, see lang-all.xml for original comment
+% generated by mtxrun --script pattern --convert
-% source of data: pthyph.tex
+% for comment and copyright, see ./lang-pt.rme
-% begin description data
+% used: a b c d e f g h i j k l m n o p q r s t u v w x z á â ã ç é ê í ó ô õ ú
-% <!-- copied from lang-all.xml
-%
-% <?xml version='1.0' standalone='yes'?>
-%
-% <description language='pt'>
-% <sourcefile>pthyph.tex</sourcefile>
-% <title>TeX hyphenation patterns for the Portuguese language</title>
-% <copyright/>
-% </description>
-%
-% end of copy -->
-
-% end description data
-
-% begin pattern data
-
-\patterns {
+\patterns{
1b2l
1b2r
1ba
@@ -326,9 +310,4 @@ s3s
u3a
u3e
u3o
-u3u
-1-
-}
-
-% end pattern data
-
+u3u} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-pt.rme b/Master/texmf-dist/tex/context/patterns/lang-pt.rme
new file mode 100644
index 00000000000..ed3602f0429
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/lang-pt.rme
@@ -0,0 +1,86 @@
+% generated by mtxrun --script pattern --convert
+
+% This file is part of hyph-utf8 package and resulted from
+% semi-manual conversions of hyphenation patterns into UTF-8 in June 2008.
+%
+% Source: pthyph.tex (1994-10-13 - date on CTAN) or (1996-07-21 - date in file) - no idea
+% Author: Pedro J. de Rezende <rezende at dcc.unicamp.br>, J.Joao Dias Almeida <jj at di.uminho.pt>
+%
+% The above mentioned file should become obsolete,
+% and the author of the original file should preferaby modify this file instead.
+%
+% Modificatios were needed in order to support native UTF-8 engines,
+% but functionality (hopefully) didn't change in any way, at least not intentionally.
+% This file is no longer stand-alone; at least for 8-bit engines
+% you probably want to use loadhyph-foo.tex (which will load this file) instead.
+%
+% Modifications were done by Jonathan Kew, Mojca Miklavec & Arthur Reutenauer
+% with help & support from:
+% - Karl Berry, who gave us free hands and all resources
+% - Taco Hoekwater, with useful macros
+% - Hans Hagen, who did the unicodifisation of patterns already long before
+% and helped with testing, suggestions and bug reports
+% - Norbert Preining, who tested & integrated patterns into TeX Live
+%
+% However, the "copyright/copyleft" owner of patterns remains the original author.
+%
+% The copyright statement of this file is thus:
+%
+% Do with this file whatever needs to be done in future for the sake of
+% "a better world" as long as you respect the copyright of original file.
+% If you're the original author of patterns or taking over a new revolution,
+% plese remove all of the TUG comments & credits that we added here -
+% you are the Queen / the King, we are only the servants.
+%
+% If you want to change this file, rather than uploading directly to CTAN,
+% we would be grateful if you could send it to us (http://tug.org/tex-hyphen)
+% or ask for credentials for SVN repository and commit it yourself;
+% we will then upload the whole "package" to CTAN.
+%
+% Before a new "pattern-revolution" starts,
+% please try to follow some guidelines if possible:
+%
+% - \lccode is *forbidden*, and I really mean it
+% - all the patterns should be in UTF-8
+% - the only "allowed" TeX commands in this file are: \patterns, \hyphenation,
+% and if you really cannot do without, also \input and \message
+% - in particular, please no \catcode or \lccode changes,
+% they belong to loadhyph-foo.tex,
+% and no \lefthyphenmin and \righthyphenmin,
+% they have no influence here and belong elsewhere
+% - \begingroup and/or \endinput is not needed
+% - feel free to do whatever you want inside comments
+%
+% We know that TeX is extremely powerful, but give a stupid parser
+% at least a chance to read your patterns.
+%
+% For more unformation see
+%
+% http://tug.org/tex-hyphen
+%
+%------------------------------------------------------------------------------
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% The Portuguese TeX hyphenation table.
+% (C) 1996 by Pedro J. de Rezende (rezende@dcc.unicamp.br)
+% and J.Joao Dias Almeida (jj@di.uminho.pt)
+% Version: 1.2 Release date: 21/07/96
+%
+% (C) 1994 by Pedro J. de Rezende (rezende@dcc.unicamp.br)
+% Version: 1.1 Release date: 04/12/94
+%
+% (C) 1987 by Pedro J. de Rezende
+% Version: 1.0 Release date: 02/13/87
+%
+% -----------------------------------------------------------------
+% IMPORTANT NOTICE:
+%
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt; either
+% version 1 of the License, or any later version.
+% -----------------------------------------------------------------
+% Remember! If you *must* change it, then call the resulting file
+% something else and attach your name to your *documented* changes.
+% ======================================================================
+% \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-ro.hyp b/Master/texmf-dist/tex/context/patterns/lang-ro.hyp
index 83e9f500b6c..60563e14b2f 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-ro.hyp
+++ b/Master/texmf-dist/tex/context/patterns/lang-ro.hyp
@@ -1,26 +1,8 @@
-% context hyphenation file, see lang-all.xml for original comment
+% generated by mtxrun --script pattern --convert
-% source of data: rohyph.tex
+% for comment and copyright, see ./lang-ro.rme
-% begin description data
-
-% <!-- copied from lang-all.xml
-%
-% <?xml version='1.0' standalone='yes'?>
-%
-% <description language='ro'>
-% <sourcefile>rohyph.tex</sourcefile>
-% <title>TeX hyphenation patterns for the Romanian language</title>
-% <copyright/>
-% </description>
-%
-% end of copy -->
-
-% end description data
-
-% begin hyphenation data
-
-\hyphenation {}
-
-% end hyphenation data
+% used:
+\hyphenation{
+} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-ro.pat b/Master/texmf-dist/tex/context/patterns/lang-ro.pat
index f6f69926b1f..9c633ce1781 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-ro.pat
+++ b/Master/texmf-dist/tex/context/patterns/lang-ro.pat
@@ -1,377 +1,654 @@
-% context pattern file, see lang-all.xml for original comment
+% generated by mtxrun --script pattern --convert
-% source of data: rohyph.tex
+% for comment and copyright, see ./lang-ro.rme
-% begin description data
+% used: a b c d e f g h i j k l m n o p r s t u v x z î ă ș ț
-% <!-- copied from lang-all.xml
-%
-% <?xml version='1.0' standalone='yes'?>
-%
-% <description language='ro'>
-% <sourcefile>rohyph.tex</sourcefile>
-% <title>TeX hyphenation patterns for the Romanian language</title>
-% <copyright/>
-% </description>
-%
-% end of copy -->
-
-% end description data
-
-% begin pattern data
-
-\patterns {
-.ante1
-.anti1
-.contra1
-.de3s2cri
-.de2z1aco
-.de2z1amă
-.de2z1apro
-.de2z1avan
-.de2z1infec
-.de2z1ord
-.i2n1a
-.i2n1ec
-.i2n1ed
-.i2n1ef
-.i2n1eg
-.i2n1eluc
-.i2n1ep
-.i2n1es
-.i2n1ev
-.i2n1ex
-.i2n1od
-.i2n1of
-.i2n1op
-.i2n1os
-.i2n1ox
-.i2n1um
-.i2n1un
-.i2n1ut
-.î2n1ăsp
-.î2n1ad
-.î2n3s2
-.în3ş2
-.ne1a
-.ne1î
-.nema2i3
-.ne3s2ta
-.re1ac
-.re1î
-.su2b1ord
-.su2b3r
-.supra1
-.tran2s1
-.tran4s3pl
-.tran4s3f
-a1a
-a1ia
-a1ie
-a1io
-ă1ie
-ă1oa
-â1ia
-e1e
-e1ia
-i1i
-i2ii.
-2i.
-o1o
-o1ua
-o1uă
-u1u
-u1ia
-u1al.
-u1os.
-u1ism
-u1ist
-u1işt
-2bi.
-2ci.
-2di.
-2fi.
-2gi.
-2li.
-2mi.
-2ni.
-2pi.
-2ri.
-2si.
-2şi.
-2ti.
-2tri.
-2ţi.
-2vi.
-2zi.
+\patterns{
+.a3ic
+.a4n3is
+.a2z
+.cre1
+.de2aj
+.de2z1
+.g4
+.i2a
+.i2e
+.i3ț
+.i4u3
+.i3v
+.î4m
+.n2
+.ni2
+.p4
+.pre3ș
+.s4
+.ș4
+.u4i
+.u5ni
+.z2
+a1
+2acă
+achi5
+a3e
+afo3
+a3i2a
+a3i2e
+a3il
+ai3s2
+a3iu
+alie6
+2alt
+a2m
+a2n
+2an.
+a5n2e
+ani2e
+ani3ș4
+an4s
+2anu
+an2z
+ao2g
+ati4a
+2atr
+a5t4u
+2ața
+2ață
+2au
+a3ua
+a3ud
+a3ug
+a3ul
+a3un
+a3ur
+a3us
+a3ute
+a3u2ț
+a3uz
+2ă1
+ă3i
+ăi2e
+ă2m2
+ănu3
+ărgi5
+ă3ș
+ă4ș3t
+ă2ti.
+ăti4e
+ă3u
+ă3v
+ă2zi
+1b
+2b.
+ba2ț
+bănu5
2bc
2bd
-2bj
-2bm
-2bn
-2bp
+bi2a.
+bi2at
+bi2e
+3bii
+b2l
+3b4lim
+b4lu
+bo1
+bo3ric
2bs
-b3s2t
2bt
-2bţ
-2bv
+2bț
+bți4ne.
+bu3
+1c
+4c.
+ca3ut
+că2c
+cătu5
2cc
-2cd
-2ck
+ce2a
+ce2ț
+2chi.
+2ci.
+ci3ale
+ci2o
+cis2
+ci3sp
+ciza2
+c4l
2cm
-2cn
+2c5n
+copia2tă
+co2ț
2cs
2ct
-2cţ
+2cț
+cu3im
+3cul
+cu2ț
2cv
-2cz
-2dg
-2dh
+1d
+4d.
+da4m
+da2ț
+2dc
+de4sc
+dez3in
+di2an
+dia2tă
2dj
-2dk
2dm
-2dq
-2ds
-2dv
-2dw
-2fn
-2fs
+2d1n
+do4il
+3du
+e1ac
+e1aj
+e1al
+e1aș
+e1at
+ea2ț
+e1av
+ebu5i
+2ec
+eci2a
+ecla2re
+edi4ulu
+e3e
+ee2a
+1efa
+e1h
+e3i2a
+e3i2e
+e3ii
+e3il
+e3im
+e3in
+e3i2o
+e3i3s2
+e3it
+e3i4u
+e1î
+2el
+e2m
+emon5
+2en
+e5ne
+e1o1
+e3on
+e1r
+2era
+2eră
+2erc
+2e2s
+es3co
+es5ti
+2eș
+e3și
+etan4ț
+2eț
+e3u
+eu5ș
+1evit
+e2x
+2ez
+eză5
+ezi3a
+e2z1o
+1f4
+2f.
+3fa
+3făș
+2fi.
+fi3e
+3fo
2ft
-2gd
-2gm
-2gn
-2gt
-2g3s2
-2gv
-2gz
-2jm
-2hn
+f5tu
+1g2
+2g.
+gă3ț
+2ghi.
+2gi.
+g4l
+2g3m
+2g3n
+go5n
+3gu3
+2g3v
+2h.
+2hi.
+hi2a
+hi3c
+hi4u
+2h1n
+2i1
+4i.
+3i2ac
+ia3g4
+i2ai
+i2aș
+ia2ț
+i3că
+i2ed
+i3ia
+i3ie
+i3ii
+i3il
+i3in
+i3ir
+i3it
+iitu2ră
+i2î
+4ila
+i3le
+i3lo
+imateri6
+i2n
+i4n1ed
+in2gă
+inți4i
+3inv
+i3od
+i3oni
+io2ț
+ipă5
+i2s
+is3f
+4isp
+iș3t
+i5ti
+iți2a
+i3ți2o
+i3ua
+i3ul
+i3um
+i3und
+i3unu
+i3us
+i3ut
+iz3v
+î2
+î3d
+î3e
+î3lo
+îna3
+în5ș
+î3ri
+î3rî
+îr5ș
+îș3t
+î3t
+î4ti
+î3ț
+î4ți
+î5ții
+î3z
+1j
+2j.
+2jd
+2ji.
+ji2ț
+2jl
+j4u
+ju3t
+1k
+1l
+4l.
+larați2
+lă2ti
+lătu5
2lb
2lc
2ld
+le2a
2lf
2lg
-2lj
-2lk
+4li.
+li3a
+li3e
+li3o
2lm
-2ln
+2l5n
2lp
-2lq
-2lr
2ls
+2l3ș
2lt
-2lţ
+2lț
+3lu
2lv
-2lz
+1m
+2m.
+3ma
+3mă
2mb
+mblîn3
+3me
+me2z
2mf
-2mk
-2ml
-2mn
+3mi
+4mi.
+mi2ț
+3mî
+2m1n
+3mo
+mon4
2mp
2m3s2
-2mţ
-2nb
+2mt
+2mț
+3mu
+mu2ț
+2mv
+4n.
+3na
+4n1ad
+na3in
+3nă
2nc
+n2cis
+n2ciz
2nd
-n3d2v
-2nf
+3ne
+ne1ab
+ne1an
+ne1ap
+4nef
+4n1eg
+ne3s2
+4nevi
+4n1ex
2ng
-2nh
-2nj
-2nl
-2nm
-2nn
-2nq
-2nr
-2ns
-n3s2a.
-n3s2ă
-n3s2e
-n3s2i
-n3s2o
-n3s2cr
-n3s2f
-ns3h
-n3s2pl
-n3s2pr
-n3s2t
-2nş
-n3ş2c
-n3ş2t
+ng3ăt
+3ni
+4ni.
+ni3ez
+3nî
+n3j
+n1n
+3no
+no4ș
+n1r
+2n3s2
+ns3f
+n4sî
+ns3po
+n3ș2
+n4și
2nt
-2nţ
-2nv
+n5ti
+n5t4u
+2nț
+5nu
+nu3a
+nu3ă
+nu5m
+nu3s2
2nz
-n3z2dr
-2pc
-2pn
-2ps
-2pt
-2pţ
+o1ag
+o2al
+o2bi.
+2oca
+ocu5i
+2od
+odi2a
+o3e
+o3i2
+oiecti2
+oi3s2p
+omedi2e.
+om4n
+2on
+o1o
+opi3e
+opla2
+oplagi2
+o1ra
+o1ră
+or2c
+o1re
+o1ri
+o2ric
+o1rî
+o1ro
+or2te.
+o1ru
+os5ti
+o3și
+otați4
+o5ti
+ot3od
+o3u
+1p2
+2p.
+3pa
+păr3ț
+2p3c
+pecți2
+pe2ț
+2pi.
+pi2e
+pi3e.
+pi3ez
+pi3o
+pi2ț
+pi2z
+p4l
+po4ș
+po2ț
+2p3s
+2p3ș
+2p3t
+2p3ț
+p4ți.
+pu3b4
+puri2e
+pu4ș
+4r.
2rb
2rc
2rd
+r2e
+re2bi
+recizi2
+re3s2cr
+re4și
2rf
2rg
-2rh
-2rj
+2r1h
+4ri.
+ri3a
+ri4ali
+ri3eț
+ri3ez
+ri5mi
+2ri3un
+ri3v
2rk
2rl
2rm
-2rn
+2r1n
+rna2ț
+rografi6
2rp
-2rq
-2rr
-2rs
-r3s2t
-2rş
+2r1r
+2rs2
+r3sp
+r3st
+2r3ș
2rt
-2rţ
+rtua2le
+2rț
+ru3il
+ru3sp
2rv
-2rx
2rz
-2sb
+1s
+4s.
+5sa
+5să
+să4m
+să4ș
2sc
-2sd
-2sf
-2sg
-2sj
-2sk
-2sl
-2sm
-2sn
+4sc.
+3s2co
+3se
+se2a
+se4e.
+ses2
+se3sp
+se4ș
+4s2f
+5sfî
+3si
+si3p
+3sî
+3s4l
+4sm
+s1n
+3so
+so3ric
2sp
-2sq
-2sr
-2ss
2st
-2sv
-2sz
-2şn
-2şt
-2tb
-2tc
-2td
-2tf
-2tg
-2tm
-2tn
-2tp
-2ts
-2tt
-2tv
-2tw
-2vn
-1w
-wa2r
-2xc
-2xm
-2xp
-2xt
-1y
-2yb
-2yl
-2ym
-2yn
-2yr
-2ys
-2zb
-2zc
-2zd
-2zf
-2zg
-2zl
-2zm
-2zn
-2zp
-2zr
-2zs
-2zt
-2zv
-c2h
-g2h
-s2h
-t2z
-b2l
-c2l
-d2l
-f2l
-g2l
-h2l
-k2l
-p2l
-t2l
-v2l
-b2r
-c2r
-d2r
-f2r
-g2r
-h2r
-k2r
-p2r
-t2r
-v2r
-1b
-1c
-1d
-1f
-1g
-1h
-1j
-1k
-1l
-1m
-1n
-1p
-1q
-1r
-1s
-1ş
-1t
-1ţ
-1v
-1x
-1z
-.b2
-.c2
-.d2
-.f2
-.g2
-.j2
-.h2
-.k2
-.m2
-.p2
-.s2
-.ş2
-.t2
-.ţ2
-.v2
-.z2
-2b.
-2c.
-2d.
-2f.
-2g.
-2h.
-2j.
-2k.
-2l.
-2m.
-2n.
-2p.
-2r.
-4s.
-2ş.
-2ţ.
+sto3
+5su
+su2ț
+2ș
+4ș.
+3șa
+șa2ț
+3șă2
+3șe
+1și
+4și.
+5șii
+5șil
+3șin
+3șî
+4ș5n
+șnu5
+3șo
+ș2p
+ș2ti
+4ști.
+4ș3tr
+3șu
+1t2
4t.
+ta3ut
+2t3c
+2t3d
+te2a
+te5ni
+teri6ală
+te3s2p
+2t3f
+4ti.
+ti3a
+ti3e
+3tii.
+3til
+3tin
+ti2ț
+2tî.
+t4l
+2t3m
+3tol
+3tor
+to2to
+3tru.
+3trul
+3truo
+4t3s2
+2t3t
+tu3a
+tu3im
+4t3un
+tu4ș
+4t3z
+1ț
+2ț.
+3ța
+3ță
+țe2ț
+2ți.
+3ția
+ți3a.
+3ție
+3ții
+3țil
+ți2ț
+3țiu
+țu3
+țu5i
+2u1
+6u.
+u2a.
+u2ad
+u3au
+uă3
+uăs2
+u2bia
+u2b3l
+u2b1o
+ub3s2
+u3e
+4ugu
+u3i2a
+u3i2e
+u3in
+u3ir
+u3is
+u3it
+u3i2ț
+u3iz
+u2l
+u3la
+u3lă
+u3le
+u3lii
+u3lî
+u3lo
+umi5r
+ur2z
+u2s
+us2pr
+u4st
+u3ș
+u4șt
+u2to
+3utor
+u3ui
+u3um
+1v
2v.
+ve5ni
+ve2ț
+ve2z
+2vi.
+vi2ț
+2v1n
+vorbito2
+3vr
+1x
2x.
+3xa
+3xă
+3xe
+xe2z
+3xi
+3xo
+3xu
+1z
2z.
-2-2
-}
-
-% end pattern data
-
+za2ț
+2zb
+2z2g
+2zi.
+zi2an
+zi2ar
+3zii
+3zil
+z4m
+2z1n
+3z2ol
+3zon
+zu2ț
+2z2v
+z3vă} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-ro.rme b/Master/texmf-dist/tex/context/patterns/lang-ro.rme
new file mode 100644
index 00000000000..57723923623
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/lang-ro.rme
@@ -0,0 +1,110 @@
+% generated by mtxrun --script pattern --convert
+
+% This file is part of hyph-utf8 package and resulted from
+% semi-manual conversions of hyphenation patterns into UTF-8 in June 2008.
+%
+% Source: rohyphen.tex (1996-11-11)
+% Author: drian Rezus <adriaan at {sci,cs}.kun.nl>
+%
+% The above mentioned file should become obsolete,
+% and the author of the original file should preferaby modify this file instead.
+%
+% Modificatios were needed in order to support native UTF-8 engines,
+% but functionality (hopefully) didn't change in any way, at least not intentionally.
+% This file is no longer stand-alone; at least for 8-bit engines
+% you probably want to use loadhyph-foo.tex (which will load this file) instead.
+%
+% Modifications were done by Jonathan Kew, Mojca Miklavec & Arthur Reutenauer
+% with help & support from:
+% - Karl Berry, who gave us free hands and all resources
+% - Taco Hoekwater, with useful macros
+% - Hans Hagen, who did the unicodifisation of patterns already long before
+% and helped with testing, suggestions and bug reports
+% - Norbert Preining, who tested & integrated patterns into TeX Live
+%
+% However, the "copyright/copyleft" owner of patterns remains the original author.
+%
+% The copyright statement of this file is thus:
+%
+% Do with this file whatever needs to be done in future for the sake of
+% "a better world" as long as you respect the copyright of original file.
+% If you're the original author of patterns or taking over a new revolution,
+% plese remove all of the TUG comments & credits that we added here -
+% you are the Queen / the King, we are only the servants.
+%
+% If you want to change this file, rather than uploading directly to CTAN,
+% we would be grateful if you could send it to us (http://tug.org/tex-hyphen)
+% or ask for credentials for SVN repository and commit it yourself;
+% we will then upload the whole "package" to CTAN.
+%
+% Before a new "pattern-revolution" starts,
+% please try to follow some guidelines if possible:
+%
+% - \lccode is *forbidden*, and I really mean it
+% - all the patterns should be in UTF-8
+% - the only "allowed" TeX commands in this file are: \patterns, \hyphenation,
+% and if you really cannot do without, also \input and \message
+% - in particular, please no \catcode or \lccode changes,
+% they belong to loadhyph-foo.tex,
+% and no \lefthyphenmin and \righthyphenmin,
+% they have no influence here and belong elsewhere
+% - \begingroup and/or \endinput is not needed
+% - feel free to do whatever you want inside comments
+%
+% We know that TeX is extremely powerful, but give a stupid parser
+% at least a chance to read your patterns.
+%
+% For more unformation see
+%
+% http://tug.org/tex-hyphen
+%
+%------------------------------------------------------------------------------
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% ROHYPHEN.TEX, version 1.1 <29.10.1996> R [7.11.1996] %%
+%% (C) 1995-1996 Adrian Rezus [adriaan@{sci,cs}.kun.nl] %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% Romanian TeX hyphenation table: NFSS 2 encoding, medium.
+%% Contents: 647 Romanian hyphen patterns, with diacritics.
+%%
+%% This file is part of the Romanian TeX system.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Romanian TeX, version 1.3R <29.10.1996> %%
+%% (C) 1994-1996 Adrian Rezus %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% History:
+%% ROHYPHEN.TEX 1.0 <10.02.1995>: Plain TeX and LaTeX 2.09.
+%% ROHYPHEN.TEX 1.1 <29.10.1996>: Plain TeX and LaTeX2e.
+%
+% -------------------------------------------------------------------
+
+% TODO: fix the notice below - it only holds for the old patterns
+
+% NB This file must be used in conjunction with either one of
+%
+% (1) ROMANIAN.TEX v1.2(R) [1994-1995] [(La)TeX] or
+% (2) ROMANIAN.STY v1.3R [1996] [(La)TeX(2e)]
+%
+% NB Romanian has LR-HYPHEN-MINs [2 2] (like German)!
+% NB Romanian has STRUCTURAL HYPHEN-AMBIGUA:
+% i.e., words that canNOT be hyphenated correctly without
+% additional (e.g., semantic, stress-mark) information.
+% --------------------------------------------------------
+% The Romanian TeX encoding of the Romanian diacritics:
+% --------------------------------------------------------
+% Romanian TeX DQ-macro encodings = (La)TeX macros
+% --------------------------------------------------------
+% ă = \u{a} [-] \u{A} [not encoded]
+% â = \^{a} [-] \^{A} [not encoded]
+% î = \^{\i} "I = \^{I}
+% ș = \c{s} "S = \c{S}
+% ț = \c{t} "T = \c{T}
+% -------------------------------------------------------------
+% NB Romanian \^{a} behaves like \^{\i} as regards hyphenation.
+% NB The capital \u{A} and \^{A} are rare in script; as such,
+% they occur only in records of the Romanian substandard.
+% -------------------------------------------------------------------
+%
+% original patterns generated by PatGen2-output hyphen-level 9: do NOT modify the list by hand!
+% \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-ru.hyp b/Master/texmf-dist/tex/context/patterns/lang-ru.hyp
index 822a03ecfc7..b9ce0de9b72 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-ru.hyp
+++ b/Master/texmf-dist/tex/context/patterns/lang-ru.hyp
@@ -1,10 +1,10 @@
-% context hyphenation file, see lang-ru.rme for original comment
+% generated by mtxrun --script pattern --convert
-% source of data: ruhyphal.tex
+% for comment and copyright, see ./lang-ru.rme
-% begin hyphenation data
+% used: а б в г д е ж з и й к л м н о п р с т у ф х ц ч ш щ ы ь э ю я
-\hyphenation {
+\hyphenation{
ас-бест
бездн
биз-нес-мен
@@ -188,8 +188,4 @@
шесть-де-сят
юсом
ядо-зу-бе
-ярем-но-го
-}
-
-% end hyphenation data
-
+ярем-но-го} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-ru.pat b/Master/texmf-dist/tex/context/patterns/lang-ru.pat
index 75012a9005d..2bb7c5fe3a7 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-ru.pat
+++ b/Master/texmf-dist/tex/context/patterns/lang-ru.pat
@@ -1,10 +1,10 @@
-% context pattern file, see lang-ru.rme for original comment
+% generated by mtxrun --script pattern --convert
-% source of data: ruhyphal.tex
+% for comment and copyright, see ./lang-ru.rme
-% begin pattern data
+% used: а б в г д е ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я ё
-\patterns {
+\patterns{
.аб1р
.аг1ро
.ади2
@@ -4496,7 +4496,320 @@
ы2рьм
ыя2вя
ьбат2
-}
-
-% end pattern data
-
+а1вё
+а2двё
+а1ё
+аз3вёз
+а1лё
+2алёк
+2амёт
+ам2нёт
+а1рё
+ас3тём
+а1тьё
+1бё
+бё2д1р
+б3лён
+б2лёс1к
+б2люё
+б1рёк
+б2рём
+б2рёх
+1веё
+3везё
+вёд1р
+1вёз
+2вёрд
+1вёс
+в2лёк
+в2лёт
+1вмё
+в2нёс
+2в1рён
+3всё3
+1вьё
+г1лё
+г2лёт
+г2нёв
+г3нён
+г2ноё
+д1вё
+1дё
+.доб2рёл
+2доплё
+до2прё
+д1рё
+д2рёб
+2д3рёж
+д2рём
+1дрёма
+1дрёмы
+2д3рён
+дъё2м
+1дьё
+еб1рён
+е1вё
+2евёр
+2е1врё
+е2глё
+е1ё
+2ежё
+е3зё
+е1лё
+2епё
+ер1вё
+е1рё
+ерё3до
+ерё1к2
+ес2чёт
+ет1вё
+е1тьё
+2ёб
+ё1бра
+ёб1ры
+ё1ве
+ё1во
+2ё1вре
+ё1ву
+ё1дру
+2ё3душ
+2ёже
+ё3зе
+ёз1о2г
+ё1зом
+ё1ка
+ё1ки
+2ё1ко
+2ё1кр
+ёк2ро
+ё1ку
+ё1ла
+ё1ле
+ё1лу
+ё1лы
+2ёмуж
+ё2мч
+ё3на
+ён2д1р
+ёнс2
+ёпат2
+2ёпе
+ё2пл
+ё3пла
+ёп1лу
+ё3плы
+ё4пн
+2ёпо
+ё4пт
+ё1ра
+ё1ре
+ё3ре.
+ё1ри
+ё1ро
+ёр3ск
+ё1ру
+ё1ры
+ё3с2а
+ё1ск
+ё2с1ка.
+ё2ске
+ё4с1ку.
+2ёсл
+ё3со
+ё1ст
+ёс2тан
+ё3сту
+ё1та
+2ётеч
+ё1ти
+ё1то
+ёто1с
+ёт1р
+ё1ту
+ё1ты
+ё1тю
+ё1тя
+ёха2т
+ёх1ато
+ёх3вал
+ёх3лоп
+ёх1опо
+ёх1ру
+3жёв
+жё1с2
+ж2жё
+за3мнё
+з1вё
+з2вёз
+1зё
+з2наё
+2знё
+1з2о3рё
+з2отё
+зот2рё
+3зуё
+зъё2м
+2зымё
+2и1вё
+иг1рён
+и1ё
+их1рё
+1каё
+1кё
+к3лён
+к2роё
+3куё
+ла1стё
+лё3до
+лё1з2о3
+лёк1л
+1лён
+лё2ск
+лё4ска
+1лёх
+2лоён
+1луё
+3льё
+1льщё
+3м2нёш
+3м2щё
+нд2рё
+не3ё
+1нё
+нё1б2
+3номё
+1ньё
+од3рёб
+о1ё
+оё2жи
+о1лё
+2омё
+о3м2нём
+о3м2нёт
+о2п1лёй
+о1рё
+о2скё
+от1вё
+2о3тёк
+о3тёр
+от1рёк
+от1рёш
+о3фё
+пё1
+пё2ст1р
+пё2тр
+2плён
+п2лёнк
+плёс1к
+п1лёю
+поё2ж
+3прёт
+причё2с1к
+р2блё
+1рвёт
+.рё2бр
+1рёзк
+рё1зна
+1рё1зо
+рёз2у
+1рёкш
+3рёмо
+1рёнк
+рё3ста
+рё3сто
+род2лё
+роё2м
+1рьё
+с2дё
+се3стё
+1с2ё
+сёкс4
+сё2ст
+сёст1р
+2скуё
+с1лёт
+с2тё
+1стёл
+1стён.
+с3тёт.
+с3тёте
+стё3х
+с3тёш
+с3т2лё
+счё2с1к
+1сьё
+т1вёл
+т1воё
+1т2ё
+тё2гн
+тё1зо
+3тёка
+тёк1л
+3тёкш
+тё4п1л
+тёр3к
+тё2ска
+тё2с1ки
+тё2с1ко
+тё2ску
+тё2хо
+3т2кёт
+т1ревё
+3т2рё2х
+т2рёшь
+тро2етёс
+3тьё
+уг2нё
+уг1рё
+.уё2
+у1ё
+у1лё
+у1рё
+у1стё
+у3тёр
+у1тьё
+у2чёб
+у3шё
+2х3вё
+1хлёб
+х2лёс
+ц2вё
+1чё
+чёр2с
+чёрст1
+.чё2с1к
+ч2тё
+1чьё
+2шлён
+3шьё
+ъ2ё2р
+ыд2рё
+ырё2х
+ы3сё
+ь2ё
+ьё1зо
+ь2щё
+ю1ё
+яб3рё
+.не8
+8не.
+8бъ.
+8въ.
+8гъ.
+8дъ.
+8жъ.
+8зъ.
+8къ.
+8лъ.
+8мъ.
+8нъ.
+8пъ.
+8ръ.
+8съ.
+8тъ.
+8фъ.
+8хъ.
+8цъ.
+8чъ.
+8шъ.
+8щъ.} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-ru.rme b/Master/texmf-dist/tex/context/patterns/lang-ru.rme
new file mode 100644
index 00000000000..bcb3ef76828
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/lang-ru.rme
@@ -0,0 +1,77 @@
+% generated by mtxrun --script pattern --convert
+
+% This file is part of hyph-utf8 package and resulted from
+% semi-manual conversions of hyphenation patterns into UTF-8 in June 2008.
+%
+% Source: TODO:WRITEME (2003-03-10)
+% Author: Alexander I. Lebedev <swan at scon155.phys.msu.su>
+%
+% The above mentioned file should become obsolete,
+% and the author of the original file should preferaby modify this file instead.
+%
+% Modificatios were needed in order to support native UTF-8 engines,
+% but functionality (hopefully) didn't change in any way, at least not intentionally.
+% This file is no longer stand-alone; at least for 8-bit engines
+% you probably want to use loadhyph-foo.tex (which will load this file) instead.
+%
+% Modifications were done by Jonathan Kew, Mojca Miklavec & Arthur Reutenauer
+% with help & support from:
+% - Karl Berry, who gave us free hands and all resources
+% - Taco Hoekwater, with useful macros
+% - Hans Hagen, who did the unicodifisation of patterns already long before
+% and helped with testing, suggestions and bug reports
+% - Norbert Preining, who tested & integrated patterns into TeX Live
+%
+% However, the "copyright/copyleft" owner of patterns remains the original author.
+%
+% The copyright statement of this file is thus:
+%
+% Do with this file whatever needs to be done in future for the sake of
+% "a better world" as long as you respect the copyright of original file.
+% If you're the original author of patterns or taking over a new revolution,
+% plese remove all of the TUG comments & credits that we added here -
+% you are the Queen / the King, we are only the servants.
+%
+% If you want to change this file, rather than uploading directly to CTAN,
+% we would be grateful if you could send it to us (http://tug.org/tex-hyphen)
+% or ask for credentials for SVN repository and commit it yourself;
+% we will then upload the whole "package" to CTAN.
+%
+% Before a new "pattern-revolution" starts,
+% please try to follow some guidelines if possible:
+%
+% - \lccode is *forbidden*, and I really mean it
+% - all the patterns should be in UTF-8
+% - the only "allowed" TeX commands in this file are: \patterns, \hyphenation,
+% and if you really cannot do without, also \input and \message
+% - in particular, please no \catcode or \lccode changes,
+% they belong to loadhyph-foo.tex,
+% and no \lefthyphenmin and \righthyphenmin,
+% they have no influence here and belong elsewhere
+% - \begingroup and/or \endinput is not needed
+% - feel free to do whatever you want inside comments
+%
+% We know that TeX is extremely powerful, but give a stupid parser
+% at least a chance to read your patterns.
+%
+% For more unformation see
+%
+% http://tug.org/tex-hyphen
+%
+%------------------------------------------------------------------------------
+%
+% Russian hyphenation patterns, version 2003/03/10
+% Copyright 1999-2003 Alexander I. Lebedev <swan@scon155.phys.msu.su>
+%
+% This program may be distributed and/or modified under the conditions
+% of the LaTeX Project Public License, either version 1.2 or any later
+% version.
+%
+% Patterns were generated with patgen from a 990,000-word list and then
+% manually corrected.
+%
+% The program consists of the files ruhyphal.tex, cyryoal.tex and two
+% document files README.ruhyphal and hyphen.rules. The file cyryoal.tex
+% can be regenerated using mkcyryo script (a part of ruhyphen package)
+% and the latest release of rus-ispell dictionaries
+% <ftp://scon155.phys.msu.su/pub/russian/ispell/>. \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-sk.hyp b/Master/texmf-dist/tex/context/patterns/lang-sk.hyp
index d80c0df9d2d..2967e5d1c41 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-sk.hyp
+++ b/Master/texmf-dist/tex/context/patterns/lang-sk.hyp
@@ -1,40 +1,12 @@
-% context hyphenation file, see lang-all.xml for original comment
+% generated by mtxrun --script pattern --convert
-% source of data: skhyphen.tex skhyphen.ex
+% for comment and copyright, see ./lang-sk.rme
-% begin description data
+% used: a b d e i k m n o p r s t y ó ť
-% <!-- copied from lang-all.xml
-%
-% <?xml version='1.0' standalone='yes'?>
-%
-% <description language='sk'>
-% <sourcefile>skhyphen.tex skhyphen.ex</sourcefile>
-% <title>TeX hyphenation patterns for the Slovakian language</title>
-% <copyright>
-% <year>1992</year>
-% <owner>Jana Chlebikova</owner>
-% </copyright>
-% <copyright>
-% <year>1991</year>
-% <owner>Karel Horak</owner>
-% <comment>List of exceptions</comment>
-% </copyright>
-% </description>
-%
-% end of copy -->
-
-% end description data
-
-% begin hyphenation data
-
-\hyphenation {
+\hyphenation{
dosť
me-tó-da
me-tó-dy
ne-do-stat-ka-mi
-sep-tem-bra
-}
-
-% end hyphenation data
-
+sep-tem-bra} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-sk.pat b/Master/texmf-dist/tex/context/patterns/lang-sk.pat
index 1ca17a74242..24e29989620 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-sk.pat
+++ b/Master/texmf-dist/tex/context/patterns/lang-sk.pat
@@ -1,34 +1,10 @@
-% context pattern file, see lang-all.xml for original comment
+% generated by mtxrun --script pattern --convert
-% source of data: skhyphen.tex skhyphen.ex
+% for comment and copyright, see ./lang-sk.rme
-% begin description data
+% used: a b c d e f g h i j k l m n o p r s t u v w x y z á ä é í ó ô ú ý č ď ľ ň ŕ š ť ž
-% <!-- copied from lang-all.xml
-%
-% <?xml version='1.0' standalone='yes'?>
-%
-% <description language='sk'>
-% <sourcefile>skhyphen.tex skhyphen.ex</sourcefile>
-% <title>TeX hyphenation patterns for the Slovakian language</title>
-% <copyright>
-% <year>1992</year>
-% <owner>Jana Chlebikova</owner>
-% </copyright>
-% <copyright>
-% <year>1991</year>
-% <owner>Karel Horak</owner>
-% <comment>List of exceptions</comment>
-% </copyright>
-% </description>
-%
-% end of copy -->
-
-% end description data
-
-% begin pattern data
-
-\patterns {
+\patterns{
a1
á1
ä1
@@ -2495,8 +2471,4 @@ akvári3u2m
gymnázi3um
le2u3kémia
t2ri3u2mf
-kli3e2nt
-}
-
-% end pattern data
-
+kli3e2nt} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-sk.rme b/Master/texmf-dist/tex/context/patterns/lang-sk.rme
new file mode 100644
index 00000000000..23e94d65df0
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/lang-sk.rme
@@ -0,0 +1,83 @@
+% generated by mtxrun --script pattern --convert
+
+% This file is part of hyph-utf8 package and resulted from
+% semi-manual conversions of hyphenation patterns into UTF-8 in June 2008.
+%
+% Source: skhyphen.tex (yyyy-mm-dd), skhyphen.ex (yy-mm-dd)
+% Author: Jana Chlebikova <chlebikj at dcs.fmph.uniba.sk>
+%
+% The above mentioned file should become obsolete,
+% and the author of the original file should preferaby modify this file instead.
+%
+% Modificatios were needed in order to support native UTF-8 engines,
+% but functionality (hopefully) didn't change in any way, at least not intentionally.
+% This file is no longer stand-alone; at least for 8-bit engines
+% you probably want to use loadhyph-foo.tex (which will load this file) instead.
+%
+% Modifications were done by Jonathan Kew, Mojca Miklavec & Arthur Reutenauer
+% with help & support from:
+% - Karl Berry, who gave us free hands and all resources
+% - Taco Hoekwater, with useful macros
+% - Hans Hagen, who did the unicodifisation of patterns already long before
+% and helped with testing, suggestions and bug reports
+% - Norbert Preining, who tested & integrated patterns into TeX Live
+%
+% However, the "copyright/copyleft" owner of patterns remains the original author.
+%
+% The copyright statement of this file is thus:
+%
+% Do with this file whatever needs to be done in future for the sake of
+% "a better world" as long as you respect the copyright of original file.
+% If you're the original author of patterns or taking over a new revolution,
+% plese remove all of the TUG comments & credits that we added here -
+% you are the Queen / the King, we are only the servants.
+%
+% If you want to change this file, rather than uploading directly to CTAN,
+% we would be grateful if you could send it to us (http://tug.org/tex-hyphen)
+% or ask for credentials for SVN repository and commit it yourself;
+% we will then upload the whole "package" to CTAN.
+%
+% Before a new "pattern-revolution" starts,
+% please try to follow some guidelines if possible:
+%
+% - \lccode is *forbidden*, and I really mean it
+% - all the patterns should be in UTF-8
+% - the only "allowed" TeX commands in this file are: \patterns, \hyphenation,
+% and if you really cannot do without, also \input and \message
+% - in particular, please no \catcode or \lccode changes,
+% they belong to loadhyph-foo.tex,
+% and no \lefthyphenmin and \righthyphenmin,
+% they have no influence here and belong elsewhere
+% - \begingroup and/or \endinput is not needed
+% - feel free to do whatever you want inside comments
+%
+% We know that TeX is extremely powerful, but give a stupid parser
+% at least a chance to read your patterns.
+%
+% For more unformation see
+%
+% http://tug.org/tex-hyphen
+%
+%------------------------------------------------------------------------------
+%
+% Slovak hyphenation (version 2.0) 24.4.1992
+% Autor: Jana Chlebikova, department of Informatics Education,
+% Comenius University, 842 15 Bratislava, Slovakia
+% <chlebikj@dcs.fmph.uniba.sk>
+%
+% This is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2 of the License, or
+% (at your option) any later version.
+%
+% This file is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with this program; if not, write to the Free Software
+% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+%%% --------------------------------------------------------------------
+% \message {Loading SK hyphenation patterns: Jana Chlebikova, 1992}
+% \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-sl.hyp b/Master/texmf-dist/tex/context/patterns/lang-sl.hyp
index c0ce84aa67d..db032fe4aba 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-sl.hyp
+++ b/Master/texmf-dist/tex/context/patterns/lang-sl.hyp
@@ -1,39 +1,8 @@
-% context hyphenation file, see lang-all.xml for original comment
+% generated by mtxrun --script pattern --convert
-% source of data: sihyph.tex
+% for comment and copyright, see ./lang-sl.rme
-% begin description data
-
-% <!-- copied from lang-all.xml
-%
-% <?xml version='1.0' standalone='yes'?>
-%
-% <description language='sl'>
-% <sourcefile>sihyph.tex</sourcefile>
-% <title>TeX hyphenation patterns for the Slovenian language</title>
-% <copyright>
-% <year>1990</year>
-% <owner>TeXCeX (SLO),TeXCeH Norbert Schwarz</owner>
-% </copyright>
-% <copyright>
-% <year>1994</year>
-% <owner>Leon "Zlajpah (leon.zlajpah@ijs.si)</owner>
-% <comment>Use of code page 852 in patterns</comment>
-% </copyright>
-% <copyright>
-% <year>1995,1997</year>
-% <owner>Leon "Zlajpah (leon.zlajpah@ijs.si)</owner>
-% <comment>Adaptaion of Slovenian hyphenation pattens, macros</comment>
-% </copyright>
-% </description>
-%
-% end of copy -->
-
-% end description data
-
-% begin hyphenation data
-
-\hyphenation {}
-
-% end hyphenation data
+% used:
+\hyphenation{
+} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-sl.pat b/Master/texmf-dist/tex/context/patterns/lang-sl.pat
index c8a3964f2f6..bde28598f49 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-sl.pat
+++ b/Master/texmf-dist/tex/context/patterns/lang-sl.pat
@@ -1,39 +1,10 @@
-% context pattern file, see lang-all.xml for original comment
+% generated by mtxrun --script pattern --convert
-% source of data: sihyph.tex
+% for comment and copyright, see ./lang-sl.rme
-% begin description data
+% used: a b c d e f g h i j k l m n o p q r s t u v w x y z č š ž
-% <!-- copied from lang-all.xml
-%
-% <?xml version='1.0' standalone='yes'?>
-%
-% <description language='sl'>
-% <sourcefile>sihyph.tex</sourcefile>
-% <title>TeX hyphenation patterns for the Slovenian language</title>
-% <copyright>
-% <year>1990</year>
-% <owner>TeXCeX (SLO),TeXCeH Norbert Schwarz</owner>
-% </copyright>
-% <copyright>
-% <year>1994</year>
-% <owner>Leon "Zlajpah (leon.zlajpah@ijs.si)</owner>
-% <comment>Use of code page 852 in patterns</comment>
-% </copyright>
-% <copyright>
-% <year>1995,1997</year>
-% <owner>Leon "Zlajpah (leon.zlajpah@ijs.si)</owner>
-% <comment>Adaptaion of Slovenian hyphenation pattens, macros</comment>
-% </copyright>
-% </description>
-%
-% end of copy -->
-
-% end description data
-
-% begin pattern data
-
-\patterns {
+\patterns{
.av5r
.di6spo
.ek3s
@@ -1101,8 +1072,4 @@ z1ž
.ž8
8ž.
8š.
-8č.
-}
-
-% end pattern data
-
+8č.} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-sl.rme b/Master/texmf-dist/tex/context/patterns/lang-sl.rme
new file mode 100644
index 00000000000..2cd1751323a
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/lang-sl.rme
@@ -0,0 +1,94 @@
+% generated by mtxrun --script pattern --convert
+
+% This file is part of hyph-utf8 package and resulted from
+% semi-manual conversions of hyphenation patterns into UTF-8 in June 2008.
+%
+% Source: slhyph.tex (2007-01-29)
+% Author: Matjaž Vrečko <matjaz at mg-soft.si>
+%
+% The above mentioned file should become obsolete,
+% and the author of the original file should preferaby modify this file instead.
+%
+% Modificatios were needed in order to support native UTF-8 engines,
+% but functionality (hopefully) didn't change in any way, at least not intentionally.
+% This file is no longer stand-alone; at least for 8-bit engines
+% you probably want to use loadhyph-foo.tex (which will load this file) instead.
+%
+% Modifications were done by Jonathan Kew, Mojca Miklavec & Arthur Reutenauer
+% with help & support from:
+% - Karl Berry, who gave us free hands and all resources
+% - Taco Hoekwater, with useful macros
+% - Hans Hagen, who did the unicodifisation of patterns already long before
+% and helped with testing, suggestions and bug reports
+% - Norbert Preining, who tested & integrated patterns into TeX Live
+%
+% However, the "copyright/copyleft" owner of patterns remains the original author.
+%
+% The copyright statement of this file is thus:
+%
+% Do with this file whatever needs to be done in future for the sake of
+% "a better world" as long as you respect the copyright of original file.
+% If you're the original author of patterns or taking over a new revolution,
+% plese remove all of the TUG comments & credits that we added here -
+% you are the Queen / the King, we are only the servants.
+%
+% If you want to change this file, rather than uploading directly to CTAN,
+% we would be grateful if you could send it to us (http://tug.org/tex-hyphen)
+% or ask for credentials for SVN repository and commit it yourself;
+% we will then upload the whole "package" to CTAN.
+%
+% Before a new "pattern-revolution" starts,
+% please try to follow some guidelines if possible:
+%
+% - \lccode is *forbidden*, and I really mean it
+% - all the patterns should be in UTF-8
+% - the only "allowed" TeX commands in this file are: \patterns, \hyphenation,
+% and if you really cannot do without, also \input and \message
+% - in particular, please no \catcode or \lccode changes,
+% they belong to loadhyph-foo.tex,
+% and no \lefthyphenmin and \righthyphenmin,
+% they have no influence here and belong elsewhere
+% - \begingroup and/or \endinput is not needed
+% - feel free to do whatever you want inside comments
+%
+% We know that TeX is extremely powerful, but give a stupid parser
+% at least a chance to read your patterns.
+%
+% For more unformation see
+%
+% http://tug.org/tex-hyphen
+%
+%------------------------------------------------------------------------------
+%
+% This is `slhyph.tex' as of 15. 4. 97.
+%
+% Copyright (C) 1990 Matjaž Vrečko, TeXCeX (SLO)
+% [slovenian hyphenation patterns]
+%
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt; either
+% version 1 of the License, or any later version.
+%
+% This file contains slovene hyphen patterns with čšž
+%
+% Generation of hyphen patterns for TeX
+%
+% Matjaž Vrečko, TeXCeH (SLO), 1990
+% Email: matjaz@mg-soft.si
+%
+% Changes:
+% 1990 First version of `hyphen.si' (Matjaž Vrečko, TeXCeX)
+%
+% Some cosmetic changes done later on, but none of these apply any more;
+% the patterns are still the same as they were originally:
+%
+% 1994-05-17 Use of code page 852 in patterns (Leon Žlajpah)
+% 1995-04-06 Release of `sihyph21.tex'
+% 1995-06-20 Added \slovenehyphenmins
+% Release of `sihyph22.tex'
+% 1997-15-04 Some changes concerning "c, "s, "z and ...
+% Release of `sihyph23.tex'
+% 2007-01-20 `sihyph23.tex' renamed to `slhyph.tex'
+% (sl is the proper language code for Slovenian)
+% \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-sv.hyp b/Master/texmf-dist/tex/context/patterns/lang-sv.hyp
index 6fed3a0b9c9..20860ee5da5 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-sv.hyp
+++ b/Master/texmf-dist/tex/context/patterns/lang-sv.hyp
@@ -1,29 +1,8 @@
-% context hyphenation file, see lang-all.xml for original comment
+% generated by mtxrun --script pattern --convert
-% source of data: svhyph.tex
+% for comment and copyright, see ./lang-sv.rme
-% begin description data
-
-% <!-- copied from lang-all.xml
-%
-% <?xml version='1.0' standalone='yes'?>
-%
-% <description language='sv'>
-% <sourcefile>svhyph.tex</sourcefile>
-% <title>TeX hyphenation patterns for the Swedish language</title>
-% <copyright>
-% <year>1991,1994</year>
-% <owner>Jan Michael Rynning</owner>
-% </copyright>
-% </description>
-%
-% end of copy -->
-
-% end description data
-
-% begin hyphenation data
-
-\hyphenation {}
-
-% end hyphenation data
+% used:
+\hyphenation{
+} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-sv.pat b/Master/texmf-dist/tex/context/patterns/lang-sv.pat
index 05201c519ed..e1ffca965e8 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-sv.pat
+++ b/Master/texmf-dist/tex/context/patterns/lang-sv.pat
@@ -1,29 +1,10 @@
-% context pattern file, see lang-all.xml for original comment
+% generated by mtxrun --script pattern --convert
-% source of data: svhyph.tex
+% for comment and copyright, see ./lang-sv.rme
-% begin description data
+% used: a b c d e f g h i j k l m n o p q r s t u v w x y z ä å é ö
-% <!-- copied from lang-all.xml
-%
-% <?xml version='1.0' standalone='yes'?>
-%
-% <description language='sv'>
-% <sourcefile>svhyph.tex</sourcefile>
-% <title>TeX hyphenation patterns for the Swedish language</title>
-% <copyright>
-% <year>1991,1994</year>
-% <owner>Jan Michael Rynning</owner>
-% </copyright>
-% </description>
-%
-% end of copy -->
-
-% end description data
-
-% begin pattern data
-
-\patterns {
+\patterns{
.a4b
.ab5i
.ab5ol
@@ -4716,8 +4697,4 @@ z4zin
öv3ra
öv3ri
öv4sk
-é3e
-}
-
-% end pattern data
-
+é3e} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-sv.rme b/Master/texmf-dist/tex/context/patterns/lang-sv.rme
new file mode 100644
index 00000000000..e0cb2722514
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/lang-sv.rme
@@ -0,0 +1,112 @@
+% generated by mtxrun --script pattern --convert
+
+% This file is part of hyph-utf8 package and resulted from
+% semi-manual conversions of hyphenation patterns into UTF-8 in June 2008.
+%
+% Source: sehyph.tex (2003-09-08)
+% Author: Jan Michael Rynning
+%
+% The above mentioned file should become obsolete,
+% and the author of the original file should preferaby modify this file instead.
+%
+% Modificatios were needed in order to support native UTF-8 engines,
+% but functionality (hopefully) didn't change in any way, at least not intentionally.
+% This file is no longer stand-alone; at least for 8-bit engines
+% you probably want to use loadhyph-foo.tex (which will load this file) instead.
+%
+% Modifications were done by Jonathan Kew, Mojca Miklavec & Arthur Reutenauer
+% with help & support from:
+% - Karl Berry, who gave us free hands and all resources
+% - Taco Hoekwater, with useful macros
+% - Hans Hagen, who did the unicodifisation of patterns already long before
+% and helped with testing, suggestions and bug reports
+% - Norbert Preining, who tested & integrated patterns into TeX Live
+%
+% However, the "copyright/copyleft" owner of patterns remains the original author.
+%
+% The copyright statement of this file is thus:
+%
+% Do with this file whatever needs to be done in future for the sake of
+% "a better world" as long as you respect the copyright of original file.
+% If you're the original author of patterns or taking over a new revolution,
+% plese remove all of the TUG comments & credits that we added here -
+% you are the Queen / the King, we are only the servants.
+%
+% If you want to change this file, rather than uploading directly to CTAN,
+% we would be grateful if you could send it to us (http://tug.org/tex-hyphen)
+% or ask for credentials for SVN repository and commit it yourself;
+% we will then upload the whole "package" to CTAN.
+%
+% Before a new "pattern-revolution" starts,
+% please try to follow some guidelines if possible:
+%
+% - \lccode is *forbidden*, and I really mean it
+% - all the patterns should be in UTF-8
+% - the only "allowed" TeX commands in this file are: \patterns, \hyphenation,
+% and if you really cannot do without, also \input and \message
+% - in particular, please no \catcode or \lccode changes,
+% they belong to loadhyph-foo.tex,
+% and no \lefthyphenmin and \righthyphenmin,
+% they have no influence here and belong elsewhere
+% - \begingroup and/or \endinput is not needed
+% - feel free to do whatever you want inside comments
+%
+% We know that TeX is extremely powerful, but give a stupid parser
+% at least a chance to read your patterns.
+%
+% For more unformation see
+%
+% http://tug.org/tex-hyphen
+%
+%------------------------------------------------------------------------------
+%
+% Swedish hyphenation patterns.
+%
+% Copyright 1994 by Jan Michael Rynning. All rights reserved.
+% This program may be distributed and/or modified under the conditions of
+% the LaTeX Project Public License, either version 1.2 of this license or
+% (at your option) any later version. The latest version of this license
+% is in http://www.latex-project.org/lppl.txt and version 1.2 or later is
+% part of all distributions of LaTeX version 1999/12/01 or later.
+%
+% Last update: 1994-03-03 (March 3, 1994).
+% Revision history:
+% 1991-01-08: First version available for anonymous FTP.
+% 1991-08-08: Changed \aa to \aa0 at end of line, to stop TeX from
+% concatenating the patterns.
+% 1991-09-03: Cleaned up lots of inconsistencies in the dictionary.
+% As a consequence, the patterns shrunk a lot. Also
+% added some 4000 one-syllable words, some of which were
+% hyphenated by the old patterns, and some 1500 compound
+% words, about half of which were incorrectly hyphenated
+% by the old patterns.
+% 1991-11-01: Added another some 6200 compound words, all of which were
+% incorrectly hyphenated by the old patterns.
+% 1991-11-13: Added another some 6500 compound words, all of which were
+% incorrectly hyphenated by the old patterns.
+% 1992-01-30: Changed macros to ^^, for use with LaTeX and dc fonts.
+% 1994-03-03: The hyphenated dictionary now contains about 118,000 words.
+% The hyphenation now works much better for compound words.
+% Patgen parameters: 1 2 20, 2 1 8, 1 4 7, 3 2 1, 1 10000 4.
+%
+% This file contains Swedish hyphenation patterns for TeX. It assumes
+% that you have fonts with the Swedish letters in the positions where
+% they occur in ISO Latin 1 (ISO 8859/1):
+% Letter: \AA \"A \"O \'E \aa \"a \"o \'e
+% Position: "C5 "C4 "D6 "C9 "E5 "E4 "F6 "E9
+%
+% Load this file into initex after plain.tex (or lplain.tex, splain.tex,
+% or whatever).
+%
+% The patterns were generated in such a way that they will hyphenate
+% correctly if \lefthyphenmin>=1 and \righthyphenmin>=2.
+%
+% These hyphenation patterns work quite well for simple words, but not
+% quite as well for compound words. I'm working on improving the quality,
+% by adding more words. If you know any Swedish words which are not
+% correctly hypheneted using these patterns, or if you have questions or
+% comments, please contact me:
+%
+% Jan Michael Rynning <jmr@incolumitas.se>
+% --------------------------------------------------------------------------
+% \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-tr.hyp b/Master/texmf-dist/tex/context/patterns/lang-tr.hyp
index 1f39ab3a426..94078d6209c 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-tr.hyp
+++ b/Master/texmf-dist/tex/context/patterns/lang-tr.hyp
@@ -1,32 +1,8 @@
-% context hyphenation file, see lang-all.xml for original comment
+% generated by mtxrun --script pattern --convert
-% source of data: tkhyph.tex
+% for comment and copyright, see ./lang-tr.rme
-% begin description data
-
-% <!-- copied from lang-all.xml
-%
-% <?xml version='1.0' standalone='yes'?>
-%
-% <description language='tr'>
-% <sourcefile>tkhyph.tex</sourcefile>
-% <title>TeX hyphenation patterns for the modern Turkish language</title>
-% <copyright>
-% <year>1996</year>
-% <owner>Yannis Haralambous</owner>
-% <comment>A mechanically generated Turkish Hyphenation table for TeX,
-% using the University of Washington diacritical coding
-% developed by P. A. MacKay for the Ottoman Texts Project</comment>
-% </copyright>
-% </description>
-%
-% end of copy -->
-
-% end description data
-
-% begin hyphenation data
-
-\hyphenation {}
-
-% end hyphenation data
+% used:
+\hyphenation{
+} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-tr.pat b/Master/texmf-dist/tex/context/patterns/lang-tr.pat
index df6c4db4a9a..5f48e998d39 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-tr.pat
+++ b/Master/texmf-dist/tex/context/patterns/lang-tr.pat
@@ -1,42 +1,28 @@
-% context pattern file, see lang-all.xml for original comment
+% generated by mtxrun --script pattern --convert
-% source of data: tkhyph.tex
+% for comment and copyright, see ./lang-tr.rme
-% begin description data
+% used: a b c d e f g h i j k l m n o p r s t u v y z â ç î ö û ü ğ ı ş
-% <!-- copied from lang-all.xml
-%
-% <?xml version='1.0' standalone='yes'?>
-%
-% <description language='tr'>
-% <sourcefile>tkhyph.tex</sourcefile>
-% <title>TeX hyphenation patterns for the modern Turkish language</title>
-% <copyright>
-% <year>1996</year>
-% <owner>Yannis Haralambous</owner>
-% <comment>A mechanically generated Turkish Hyphenation table for TeX,
-% using the University of Washington diacritical coding
-% developed by P. A. MacKay for the Ottoman Texts Project</comment>
-% </copyright>
-% </description>
-%
-% end of copy -->
-
-% end description data
-
-% begin pattern data
-
-\patterns {
+\patterns{
2a1
+2â1
2e1
-2”1
+2ı1
+2i1
+2î1
2o1
+2ö1
2u1
+2ü1
+2û1
1b1
1c1
+1ç1
1d1
1f1
1g1
+1ğ1
1h1
1j1
1k1
@@ -46,162 +32,11 @@
1p1
1r1
1s1
+1ş1
1t1
1v1
1y1
1z1
-2bâ.
-2bî.
-2bi.
-2bô.
-2bö.
-2bü.
-2câ.
-2cî.
-2ci.
-2cô.
-2cö.
-2cü.
-2ça.
-2çâ.
-2çe.
-2ç”.
-2çî.
-2çi.
-2ço.
-2çô.
-2çö.
-2çu.
-2çü.
-2dâ.
-2dî.
-2di.
-2dô.
-2dö.
-2dü.
-2fâ.
-2fî.
-2fi.
-2fô.
-2fö.
-2fü.
-2gâ.
-2gî.
-2gi.
-2gô.
-2gö.
-2gü.
-2ğa.
-2ğâ.
-2ğe.
-2ğ”.
-2ğî.
-2ği.
-2ğo.
-2ğô.
-2ğö.
-2ğu.
-2ğü.
-2hâ.
-2hî.
-2hi.
-2hô.
-2hö.
-2hü.
-2jâ.
-2jî.
-2ji.
-2jô.
-2jö.
-2jü.
-2kâ.
-2kî.
-2ki.
-2kô.
-2kö.
-2kü.
-2lâ.
-2lî.
-2li.
-2lô.
-2lö.
-2lü.
-2mâ.
-2mî.
-2mi.
-2mô.
-2mö.
-2mü.
-2nâ.
-2nî.
-2ni.
-2nô.
-2nö.
-2nü.
-2ña.
-2ñâ.
-2ñe.
-2ñ”.
-2ñî.
-2ñi.
-2ño.
-2ñô.
-2ñö.
-2ñu.
-2ñü.
-2pâ.
-2pî.
-2pi.
-2pô.
-2pö.
-2pü.
-2râ.
-2rî.
-2ri.
-2rô.
-2rö.
-2rü.
-2sâ.
-2sî.
-2si.
-2sô.
-2sö.
-2sü.
-2şa.
-2şâ.
-2şe.
-2ş”.
-2şî.
-2şi.
-2şo.
-2şô.
-2şö.
-2şu.
-2şü.
-2tâ.
-2tî.
-2ti.
-2tô.
-2tö.
-2tü.
-2vâ.
-2vî.
-2vi.
-2vô.
-2vö.
-2vü.
-2yâ.
-2yî.
-2yi.
-2yô.
-2yö.
-2yü.
-2zâ.
-2zî.
-2zi.
-2zô.
-2zö.
-2zü.
2e2cek.
2bb
2bc
@@ -216,7 +51,6 @@
2bl
2bm
2bn
-2bñ
2bp
2br
2bs
@@ -238,7 +72,6 @@
2cl
2cm
2cn
-2cñ
2cp
2cr
2cs
@@ -260,7 +93,6 @@
2çl
2çm
2çn
-2çñ
2çp
2çr
2çs
@@ -282,7 +114,6 @@
2dl
2dm
2dn
-2dñ
2dp
2dr
2ds
@@ -304,7 +135,6 @@
2fl
2fm
2fn
-2fñ
2fp
2fr
2fs
@@ -326,7 +156,6 @@
2gl
2gm
2gn
-2gñ
2gp
2gr
2gs
@@ -348,7 +177,6 @@
2ğl
2ğm
2ğn
-2ğñ
2ğp
2ğr
2ğs
@@ -370,7 +198,6 @@
2hl
2hm
2hn
-2hñ
2hp
2hr
2hs
@@ -392,7 +219,6 @@
2jl
2jm
2jn
-2jñ
2jp
2jr
2js
@@ -414,7 +240,6 @@
2kl
2km
2kn
-2kñ
2kp
2kr
2ks
@@ -436,7 +261,6 @@
2ll
2lm
2ln
-2lñ
2lp
2lr
2ls
@@ -458,7 +282,6 @@
2ml
2mm
2mn
-2mñ
2mp
2mr
2ms
@@ -480,7 +303,6 @@
2nl
2nm
2nn
-2nñ
2np
2nr
2ns
@@ -489,28 +311,6 @@
2nv
2ny
2nz
-2ñb
-2ñc
-2ñç
-2ñd
-2ñf
-2ñg
-2ñğ
-2ñh
-2ñj
-2ñk
-2ñl
-2ñm
-2ñn
-2ññ
-2ñp
-2ñr
-2ñs
-2ñş
-2ñt
-2ñv
-2ñy
-2ñz
2pb
2pc
2pç
@@ -524,7 +324,6 @@
2pl
2pm
2pn
-2pñ
2pp
2pr
2ps
@@ -546,7 +345,6 @@
2rl
2rm
2rn
-2rñ
2rp
2rr
2rs
@@ -568,7 +366,6 @@
2sl
2sm
2sn
-2sñ
2sp
2sr
2ss
@@ -590,7 +387,6 @@
2şl
2şm
2şn
-2şñ
2şp
2şr
2şs
@@ -612,7 +408,6 @@
2tl
2tm
2tn
-2tñ
2tp
2tr
2ts
@@ -634,7 +429,6 @@
2vl
2vm
2vn
-2vñ
2vp
2vr
2vs
@@ -656,7 +450,6 @@
2yl
2ym
2yn
-2yñ
2yp
2yr
2ys
@@ -678,7 +471,6 @@
2zl
2zm
2zn
-2zñ
2zp
2zr
2zs
@@ -690,133 +482,123 @@
a3a2
a3â2
a3e2
-a3”2
-a3î2
+a3ı2
a3i2
+a3î2
a3o2
-a3ô2
a3ö2
a3u2
a3ü2
+a3û2
â3a2
â3â2
â3e2
-â3”2
-â3î2
+â3ı2
â3i2
+â3î2
â3o2
-â3ô2
â3ö2
â3u2
â3ü2
+â3û2
e3a2
e3â2
e3e2
-e3”2
-e3î2
+e3ı2
e3i2
+e3î2
e3o2
-e3ô2
e3ö2
e3u2
e3ü2
-”3a2
-”3â2
-”3e2
-”3”2
-”3î2
-”3i2
-”3o2
-”3ô2
-”3ö2
-”3u2
-”3ü2
-î3a2
-î3â2
-î3e2
-î3”2
-î3î2
-î3i2
-î3o2
-î3ô2
-î3ö2
-î3u2
-î3ü2
+e3û2
+ı3a2
+ı3â2
+ı3e2
+ı3ı2
+ı3i2
+ı3î2
+ı3o2
+ı3ö2
+ı3u2
+ı3ü2
+ı3û2
i3a2
i3â2
i3e2
-i3”2
-i3î2
+i3ı2
i3i2
+i3î2
i3o2
-i3ô2
i3ö2
i3u2
i3ü2
+i3û2
+î3a2
+î3â2
+î3e2
+î3ı2
+î3i2
+î3î2
+î3o2
+î3ö2
+î3u2
+î3ü2
+î3û2
o3a2
o3â2
o3e2
-o3”2
-o3î2
+o3ı2
o3i2
+o3î2
o3o2
-o3ô2
o3ö2
o3u2
o3ü2
-ô3a2
-ô3â2
-ô3e2
-ô3”2
-ô3î2
-ô3i2
-ô3o2
-ô3ô2
-ô3ö2
-ô3u2
-ô3ü2
+o3û2
ö3a2
ö3â2
ö3e2
-ö3”2
-ö3î2
+ö3ı2
ö3i2
+ö3î2
ö3o2
-ö3ô2
ö3ö2
ö3u2
ö3ü2
+ö3û2
u3a2
u3â2
u3e2
-u3”2
-u3î2
+u3ı2
u3i2
+u3î2
u3o2
-u3ô2
u3ö2
u3u2
u3ü2
+u3û2
ü3a2
ü3â2
ü3e2
-ü3”2
-ü3î2
+ü3ı2
ü3i2
+ü3î2
ü3o2
-ü3ô2
ü3ö2
ü3u2
ü3ü2
-.â2
-.î2
-.i2
-.ô2
-.ö2
-.ü2
+ü3û2
+û3a2
+û3â2
+û3e2
+û3ı2
+û3i2
+û3î2
+û3o2
+û3ö2
+û3u2
+û3ü2
+û3û2
tu4r4k
-m1t4rak
-}
-
-% end pattern data
-
+m1t4rak} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-tr.rme b/Master/texmf-dist/tex/context/patterns/lang-tr.rme
new file mode 100644
index 00000000000..143164e257d
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/lang-tr.rme
@@ -0,0 +1,26 @@
+% generated by mtxrun --script pattern --convert
+
+% hyph-tr.tex
+%
+% File auto-generated from generate_patterns_tr.rb that is part of hyph-utf8
+%
+% Licence:
+% - Free enough for Debian & TeX Live or any other distributor
+% - If you are reading this and have some suggestion about what to put here, please advise
+% - I (Mojca) would prefer to say 'public domain', but don't know what it means for the original authors
+%
+% Credits:
+% - algorithm developed by P. A. MacKay for the Ottoman Texts Project in 1987
+% - rules adapted for modern Turkish by H. Turgut Uyar <uyar at itu.edu.tr>
+% - initiative to improve Turkish patterns by S. Ekin Kocabas <kocabas at stanford.edu>
+% - script written by Mojca Miklavec <mojca.miklavec.lists at gmail.com> in June 2008
+%
+% Modifications:
+% - adapted for the use on modern UTF-8 TeX engines
+% - UTF-8 patterns are used
+% - only letters for Modern Turkish + âîû (the first one often needed, the other two don't hurt)
+% - if needed, support for Ottoman Turkish might be provided separately under 'ota' (not 'tr')
+%
+% Notes:
+% - you need to use loadhyph-tr.tex, please do not try to put \catcode-s & \lccode-s here
+% \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-uk.hyp b/Master/texmf-dist/tex/context/patterns/lang-uk.hyp
index cef1757a292..faa79bb74b3 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-uk.hyp
+++ b/Master/texmf-dist/tex/context/patterns/lang-uk.hyp
@@ -1,35 +1,8 @@
-% context hyphenation file, see lang-all.xml for original comment
+% generated by mtxrun --script pattern --convert
-% source of data: ukhyphen.tex ukhyph.tex
+% for comment and copyright, see e:/tmp/patterns/lang-uk.rme
-% begin description data
-
-% <!-- copied from lang-all.xml
-%
-% <?xml version='1.0' standalone='yes'?>
-%
-% <description language='uk'>
-% <sourcefile>ukhyphen.tex</sourcefile>
-% <title>TeX hyphenation patterns for the English language (UK)</title>
-% <copyright/>
-% </description>
-%
-% end of copy -->
-
-% end description data
-
-% begin hyphenation data
-
-\hyphenation {
-uni-ver-sity
-uni-ver-sit-ies
-how-ever
-ma-nu-script
-ma-nu-scripts
-re-ci-pro-city
-through-out
-some-thing
-}
-
-% end hyphenation data
+% used:
+\hyphenation{
+} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-uk.pat b/Master/texmf-dist/tex/context/patterns/lang-uk.pat
index 1427919834b..2a876540e99 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-uk.pat
+++ b/Master/texmf-dist/tex/context/patterns/lang-uk.pat
@@ -1,8554 +1,1905 @@
-% context pattern file, see lang-all.xml for original comment
+% generated by mtxrun --script pattern --convert
-% source of data: ukhyphen.tex ukhyph.tex
+% for comment and copyright, see e:/tmp/patterns/lang-uk.rme
-% begin description data
-
-% <!-- copied from lang-all.xml
-%
-% <?xml version='1.0' standalone='yes'?>
-%
-% <description language='uk'>
-% <sourcefile>ukhyphen.tex</sourcefile>
-% <title>TeX hyphenation patterns for the English language (UK)</title>
-% <copyright/>
-% </description>
-%
-% end of copy -->
-
-% end description data
-
-% begin pattern data
-
-\patterns {
-.ab4i
-.ab3ol
-.ace4
-.acet3
-.ach4
-.ac5tiva
-.ad4din
-.ad3e
-.ad3o
-.ae5d
-.aer3i
-.af3f
-.af3t
-.ag4a
-.ag5n
-.air3
-.al5im
-.al1k
-.al3le
-.am5ar
-.ama5te
-.am2i
-.am3pe
-.am3ph
-.an1
-.ana3b
-.ana3s
-.and2
-.an5da
-.an4el
-.an4en
-.an4gl
-.an4on.
-.an3s
-.ant3a
-.an3ti3
-.ant4ic
-.an4t5o
-.any5
-.aph5or
-.ap4i
-.ar5ab
-.ar5ap
-.ar4ci
-.ar5d
-.ar4e
-.ari4
-.ar4ise
-.ar4isi
-.ar5sen
-.art5icl
-.as1
-.as4q
-.as5sib
-.at5ar
-.ateli4
-.at5omise
-.at5omiz
-.at3r
-.at3t
-.au3b
-.au3g4u
-.aur4e5
-.aus5
-.authen5
-.av4
-.av5era
-.bap5tism
-.barri5c
-.bas4i
-.ba5sic
-.be3di
-.be3lo
-.be5r4a
-.be5sm
-.bi4er
-.blaz5o
-.bo3lo
-.bos5om
-.boun4d
-.bov4
-.bra5ch
-.bre2
-.burn5i
-.ca3de
-.ca4gin
-.cam5i
-.cam3o
-.can1
-.can5ta
-.ca5pitu
-.car4i
-.cas5ual
-.ca4ti
-.cen5so
-.cen5tena
-.cent5ri
-.cer4i
-.ch4
-.cit4a
-.clem5e
-.clima5to
-.co5it
-.co3pa
-.cop5ro
-.co3ru
-.co3si
-.co5ter
-.cotyle5
-.cri5tici
-.custom5
-.dav5
-.dea5co
-.de5lec
-.del5eg
-.de3li
-.deli5r
-.de1m
-.de5nit
-.de3no
-.der2
-.de3ra
-.de5res
-.de3ri
-.de5scrib
-.de5serv
-.de5signe
-.de5sir
-.de5sis
-.de5spoi
-.determ5i
-.de3ve
-.de4w
-.di4al.
-.dia3s
-.di4at
-.din4a
-.dio5c
-.do2
-.do4e
-.domest5
-.du4al.
-.du4c
-.dys3
-.east5
-.echin5
-.eco3
-.ec3t
-.ed5em
-.ed4it.
-.ed4iti
-.eg4
-.ei3d
-.ei5r
-.el3ev3
-.el2i
-.elu5s
-.em3b
-.em5in
-.emp4
-.em5py
-.en1
-.en5c
-.en4ded
-.en3s
-.ent2
-.en5ta
-.eos5
-.epi1
-.epi3d
-.er2a
-.er5em5
-.er4i4
-.er4o2
-.eros4
-.erot3
-.er4ri
-.es1
-.escal5
-.es3p
-.es3t
-.etern5
-.eth3e
-.eu1
-.eur4
-.eval3
-.evol5ut
-.ew4
-.ex1
-.ex3a
-.eye3
-.fal4le
-.far4i
-.fec5unda
-.fen4d
-.feoff5
-.fi2
-.fi5lia
-.fil5tr
-.fin5ess
-.fin3g
-.fi5n4it
-.fis4c5
-.fo3c
-.fran5ch
-.fu5ga
-.ga4m
-.gam5et
-.gen4et
-.ge5neti
-.gen5ia
-.ge3ro
-.glor5io
-.gnost4
-.go3no
-.gos3
-.hab2
-.ha5bili
-.hama5
-.han4de
-.hast5i
-.he4i
-.hem5a
-.hi2
-.hi3b
-.ho2l
-.ho5rol
-.hov3
-.hy3lo
-.ico3s
-.idi2
-.ig3
-.ig1n
-.il4i
-.im5b
-.in1
-.in3d
-.in3e2
-.in2i
-.in3o
-.in3t
-.invest5i
-.ir3r
-.is4c
-.is4li
-.is4o
-.iso5m
-.ka5ro
-.ki4e
-.kin3e
-.lab4o
-.la4me
-.lam5enta
-.lan5i
-.lash4e
-.le4m
-.len5ti
-.le2p
-.lep5r
-.les5son
-.le5van
-.librar5
-.lig3a
-.li3o
-.li4ons
-.li4p
-.loc3a
-.lo4gia
-.lo2p
-.loph3
-.lous5i
-.lov5er
-.lub3
-.lyo3
-.mac5u
-.mal5ad5
-.ma5lin
-.mar5ti
-.math5
-.me5lodio
-.ment4
-.men5ta
-.me5rid
-.me5rin
-.met4er
-.mi4e
-.mi3gr
-.min5ue
-.mirk4
-.mis1
-.mi5to
-.mo3bi
-.mo5lec
-.mon3a
-.mor5ti
-.mu3ni
-.mu3si
-.musi5co
-.myth3
-.na5k
-.nari4
-.nast4
-.nas5ti
-.nec3t
-.ni4c
-.ni5tro
-.no4c
-.nom3o
-.nos3t
-.no5tic
-.nucle5
-.obed5
-.ob3el
-.ob3l
-.od4
-.oed5
-.oe5so
-.of5t
-.oi4
-.ol4d
-.ome2
-.om5el
-.on4ce
-.on4e
-.op2i
-.opt5a
-.or1
-.or4at4
-.ora5tori
-.or5che
-.or3d
-.ore4
-.or3eo
-.or4i
-.orner4
-.or2o
-.os1
-.osi4
-.oth5
-.out1
-.ov4
-.pal5i
-.para5dis
-.par5af
-.para5t
-.pa5ta
-.pa4tio
-.pec3t4
-.pecu3
-.ped3e
-.pend4
-.pen5de
-.pep3t
-.peri5n
-.perse5c
-.pe5titi
-.ph2
-.phe5nom
-.phon4i
-.pi2e
-.pi3la
-.plast4
-.plic4
-.plica4
-.plos4
-.po3la
-.po5lite
-.po2p
-.pop5l
-.po5sitio
-.pos5si
-.pro5bat
-.pur4r
-.put4te
-.ra5cem
-.ran5gi
-.re3ca
-.ref5ere
-.re5gar
-.re1i
-.re5lin
-.re1m
-.re5o
-.res5ci
-.re5sen
-.re5spo
-.re5stat
-.re5store
-.re5str
-.re3ta
-.re5u
-.re3w
-.rib5a
-.rin4
-.rit2
-.rol4la
-.ros3a
-.sa2
-.sac5r
-.sal4i
-.sa5lin
-.salt5er
-.sanc5
-.sap5a
-.sa3vo
-.sci3e
-.sea3s
-.sect4
-.sec5to
-.se3gr
-.sen3t
-.se1q
-.ser4ie
-.ses1
-.sev5era
-.sh2
-.si5gno
-.sis3
-.st4
-.stat4o
-.stra5to
-.string5i
-.su5da
-.sulph5a
-.sul3t
-.tact4i
-.tac5tic
-.ta4m
-.tamar5
-.tar5o
-.tect4
-.tel5a
-.tell5e
-.te4m
-.te5ra5t
-.ter4p
-.th4
-.tho4
-.thol4
-.ti2
-.til4
-.ti5ni
-.tit4is
-.tor1
-.tran4c
-.tri5bal
-.tri3d
-.trin4a
-.tri5sti
-.tro4ph
-.troph5o
-.tro4v
-.tular5
-.turb4
-.turi4
-.tu5te
-.tu3to
-.ul4l
-.ulti5mat
-.un5ce
-.un5ch
-.un3d2
-.under5
-.un3e
-.un3g
-.uni3c
-.uni3o
-.un3k4
-.un5s
-.un3t4
-.un5u
-.up1
-.up3l
-.ura4
-.ur5eth
-.ur4o
-.va5led
-.ve2
-.vec5
-.ve5lo
-.vent5il
-.ver4ie
-.ver3n
-.vic5to
-.vi2s
-.vis3i
-.vi5so
-.vo1c
-.vo5lut
-.wine5s
-.xy3l
-.za5r
-a4a
-1ab
-2ab.
-2aba
-ab5are
-abay4
-2abb
-ab5ber
-2abe4
-ab3erd
-ab3err
-a3bet
-ab1ic
-a3bie
-2abin
-4abio
-abi5on
-ab3ita
-ab4itu
-ab3la
-abli4
-4abolic
-ab3om
-ab3ota
-3about
-ab1r
-2abs.
-ab1ul
-abu4lo
-ab3use
-ab3usi
-2aby
-ac2a
-ac5abl
-ac3al
-5acanth
-ac5ard
-a5cat
-ach5al
-a5chini
-ach5ism
-achro4
-ach5ur
-2aci
-a4cic
-aci4ers
-acif4
-4acit
-ack5a
-ac3li
-4aco.
-aco3d
-ac5onr
-4acos
-4acou
-ac1r
-ac3ry
-act5ate
-act5ile
-ac2to
-act5ory
-ac2t5r
-ac5uat
-a5dai
-ada3v
-4adee
-ad5eni
-ad4ha
-ad3ica
-a5dif
-4adil
-adi4op
-adi4p
-adis4i
-a3diti
-3adju
-5admit
-a2do
-4adoe
-4adoi
-ad3ol
-a3dos
-ad1ow
-ad1r
-adram4
-4a2du
-ad3ula
-ad3um
-4ady
-ae5a
-ae4cit
-aeco3
-4aed
-aed5is
-ae5g
-ae3on
-ae5p
-aerody5
-ae4s
-ae5si
-aes3t
-aet4a
-aeth4
-aet4or.
-aev3a
-4af.
-4afe
-af5ta
-a4fu
-ag4ari
-4ageri
-a5ghe
-a5gia
-agi4as
-4agino
-4agl
-agli4
-4ag1n
-ag3oni
-agor4a
-ag5ot
-a2gr
-ag3ri
-agru5
-2ah
-a1h2a
-ahar2
-aha5ra
-a1he
-ah4n
-a5hoo
-2ai2
-4ai.
-ai3a
-a1ic
-aid4a
-aid5er
-aig2
-ai5gu
-ail3er
-ail3o
-aim5er
-ain5ders
-ai5nea
-a3ing.
-ain3i
-ain5o
-aint5er
-air5a
-air5p
-air3s
-ais1i
-a5ism
-2a1j
-a4ju
-2ak
-akel4
-ak5u
-al5abl
-alact4
-a1lae
-al5ais
-ala3ma
-al5ance
-al3at
-a5lav
-alc3at
-al3ch
-ald5ri
-2ale
-a3lec
-aleg4
-ale5ma
-al5ende
-a1leo
-a2let
-al3ibr
-ali4ci
-al5ics
-al1id
-al3if
-5alig
-al1in
-a5lini
-alin5o
-al5ipe
-al5ipot
-4alis.
-4aliu
-4alk
-alk5ie
-al4lab
-al4lag
-alli5an
-allig4
-al4lish
-a5loe
-al3ogr
-a3lom
-a3loo
-al1or
-al4orim
-alos4
-a4lou
-al3ous
-a5low
-al5pen
-al3ph
-al5tati
-al3tie
-alu3b
-al5ued
-al3ues
-a5lumnia
-al1va
-al5ver
-alv5u
-2a1ly4
-a5lyn
-2a2m
-a5mad
-ama4g
-aman5d
-a5marine
-a3mas.
-am1at
-a5m4atic
-am5atu
-am4bin
-3ambu
-am5elo
-a3men
-amen4d
-am3era
-am5erl
-am1i
-ami2c
-am5ica
-amic5r
-3amid
-a3mili
-am5ily
-amini4f
-am5iniz
-aminos4
-a5mis.
-a4mium.
-a3mon
-amor5a
-amort3
-am5ose
-am2p
-am5peri
-amphi5g
-amp3li
-ampo5l
-am3ul
-amyl5
-a2n
-an2a
-a5nadi
-an3ae
-an3age
-ana5k
-an3ali
-an3arc
-a5nast
-an4con
-an3d4at
-and5au
-and5eer
-an5del
-an5dif
-and5ist
-an5dit
-an4doni
-an4ea
-an5eer
-an3ell
-anel5li
-an3eu
-an3gan
-angov4
-an4gur
-4anh
-an3ic
-ani3f
-an5ifo
-4anig
-an5ion
-anis5te
-4anity
-4aniu
-an5no
-4anny
-an1o
-an2oe
-an3oma
-anor3
-an2os
-an5ot
-an2s
-an3sc
-an4sco
-ans3il
-an4sur
-an2t2a
-ant5abl
-an3tal
-an5tam
-an2te
-1anth
-an4thi
-3anthr
-4antic
-an4tie
-an4ting
-ant4iv
-an4tone
-ant4r
-an4tus
-an5tym
-an3ul
-an3um.
-an5ums
-a3nur
-a5nut
-an2y
-an5ya
-a5nyi
-2ao
-aol3i
-5aow
-2ap
-4ap.
-4apa
-a1pac
-ap3al
-ap5aro
-ape5li
-a5peu
-aph5em
-aph3i
-aph5ol
-aphyl3
-ap1i
-ap5icu
-ap3in
-ap4ine
-a5pir
-a3plan
-ap5li
-apo5str
-apo3th
-a2pr
-ap5ron
-4aps
-apt5at
-apu5lar
-a5pun
-a4q
-a5qui
-a2r
-4arabi
-ara5bo
-aract4i
-ara2g
-ar3age
-ar4aged
-ar5agi
-ar3ago
-a3raj
-ar3all
-ara3m
-aran4g
-aran5te
-ar5apa
-ar1at
-a3rau
-ara3v
-ar3ba
-arb5et
-ar4bid
-ar4bl
-arb3li
-ar4bul
-ar5chet
-arch5o
-ar5dina
-ar4done
-ar3en
-aren5d
-ar5ett
-ar3ev5
-ar5gh
-ar3gu
-ar3h
-ar1i
-ar5iff
-ar4ill
-a5ri5net
-ar5ini
-a5rishi
-arm3er
-ar5mit
-ar3nal
-ar3nis
-ar3od
-ar5oid
-aro4mas
-aro4n
-a5roti
-a5rouc
-ar3ox
-arp5ers
-ar4pu
-2arr
-ar2rh
-ar2s
-ars5al
-ar3so
-art5at
-ar2th
-arth4e
-arth3r
-ar5tiz
-2aru
-ar3um
-ar5un4
-a3ryo
-a5ryt
-ar5z
-as1a
-as4af
-asan2
-2asc
-as5con
-as5cot
-as2cr
-as2e
-as3ect
-4ased
-asep4
-ash5ay
-ash5il
-as5ily
-as3in
-a5sio
-a3sit
-as5iv
-ask5er
-aski4
-as4la
-as4lo
-2aso
-as5och
-a4soned
-as5or
-as3ph
-ass2
-assa5gi
-ass5ibl
-as4sil
-assit5
-2asta
-as4tat
-as4tia
-as3tis
-as4tit
-4asto2
-as3tra
-as4tri
-as1u
-as4un
-as5ur
-2a2ta
-4atabi
-a5talis
-atam4
-ata3p
-atar3a
-ata3s
-ata3t4
-at3eau
-at3ech
-at5eer
-a5tel.
-ate5le
-at5enat
-at3ent
-4ater
-at3era
-at5ernis
-at5erniz
-4atess
-at5et
-4a2th
-ath3a
-a3then
-ath5erin
-ath5ero
-ath5ete
-ath3i
-ath3od
-a5thon
-ath5r
-4a3tia
-ati2c
-at5icis
-ati5cit
-at5iciz
-a2tif
-a4t1i4l
-a4tim
-a2t3in
-4atina
-at5ing
-4at4is.
-at1it
-atit3u
-atitud5i
-4atiu
-at4ivi
-a5tiviz
-a2to
-5at5od
-4atog
-2atol
-4aton
-a3too
-a4tops
-a5torian
-a4tory
-atos4
-a5toz
-2a2tr
-at3ra
-a4tre
-5at5ress
-at1ri
-atric5u
-at3ron
-at5rou
-at4tag
-2a2tu
-at1ul
-atu4m
-at3ura
-at3urg
-4a2ty
-2au2
-4au.
-aub5i
-4auc
-au5cer
-auc3o
-aud5er
-audic4
-aul3i
-aul4t
-aul5ted
-ault5er
-ault5i
-au3ma
-aun2
-aun5chie
-aun3d
-aun4dre
-au5reo
-aur4o
-au5ror
-4aus.
-aus5er
-aus5p
-aus4ted
-aut3ar
-aut3er
-au3th
-2av
-av4ab
-ava4g
-av3age
-ava5la
-av5alr
-av5ant
-av5ar
-avas3
-av3end
-av3ern
-av3ig
-aviol4
-av1is
-aw5er.
-aw5ers
-aw1i
-aw5nie
-aw5y
-a4x
-ax2id
-4ay
-ay5la
-ay3m
-ayn4
-ays2
-ay5si
-ay5sta
-ayth4
-2az2
-az3ar
-aze4
-az5ee
-azyg4
-azz4l
-2ba.
-ba5bir
-3back
-baen4
-bag4a
-5bah
-ba4i
-bal3a
-balm5i
-ba5lon
-bal5u
-bam4a
-ban4a
-ba5nan
-b4ane
-5bang
-b4aniti
-b4ans
-ba4p1
-5barb
-bar4d
-bardi4
-bar4n
-ba5rom
-bar3on
-5bars
-1bas
-bas4te
-ba4th4
-3batic
-ba5tio
-bat5on
-battle5
-2b1b2
-b4bata
-b3bli
-b4bone
-b1c2
-bcord4
-2b1d
-bdeac5
-bde4b
-bdi4v
-b2e
-4be.
-3bea
-4beas
-be3ca
-3becu
-2bed
-be3da
-bed5el
-bed2i
-be4do
-be5dra
-be4du
-5bee
-3bef
-be3go
-be5gr
-be3gu
-1bel
-be3la
-2bele
-be3lit
-bel4t
-be3m
-ben4d
-bend5a
-bend5er
-be1ne
-be5nig
-be5nu
-4beo
-be3q
-2bere
-berga5m
-berl4
-5berr
-ber5s
-b5ertin
-be1s2
-2bes.
-be3sl
-be3tr
-be3w
-2b1f
-bfa4
-4b1h
-b4ha
-2bi.
-1bia
-bi4b1
-bicen5
-3b2id
-bid5i
-b4ie
-bi4ers
-bif4
-bi4fid.
-bi5ga
-bigu3
-b1il
-b2ile
-5biles
-3b2ill
-4bim
-bimet5
-5bina
-5bin4d
-bind3e
-bin5et
-bin5i4
-1bi2o
-bio3l
-bio5m
-bi3ou
-bip4
-bi5q
-bir4
-bi3re4
-bi5rus
-b2is
-5bism
-bis4o
-bisul5
-3bitua
-4bity
-bi5ve
-b1j
-4b5k4
-2bl2
-5blac
-blag4
-b3lan
-5blast
-bla5tu
-blem5at
-3bler
-5blesp
-4blik
-blim3a
-bli3o
-bli2q
-b3lis
-4bly
-2b1m
-bment4
-bmi4
-4b1n
-bo2
-4bo.
-3boa
-bo5am
-5bob
-bod5i
-bo5h
-2boid
-4boke
-bol4e
-4boled
-bol3i
-bol4t
-3bon
-bon4c
-bon4e
-bon4ie
-boni4f
-bon4sp
-1boo
-b3orat
-bor3d
-bor5ee
-bor5et
-3bori
-bor5ic
-bor5io
-bor4n
-bot3an
-5boti
-boun5ti
-3bour
-bous4
-bow2
-bow3s
-4boxy
-5boy
-br4
-3brach
-4bral
-bram4
-b2ran
-bran4d
-4bre.
-b4reas
-4b2res
-brev5et
-b2rid
-5brief
-bring5
-bri4os
-b5rist
-b4roa
-bro4ma
-bros4
-brum4
-4bry.
-4b1s2
-b3sc
-bscon4
-bsen4
-bserv5an
-b5si
-bsin4
-bso2
-bsol3e
-bso3lu
-b4stac
-bstupe5
-2b1t
-b5tlet
-4bu.
-5bub
-buf5fer
-b4uli
-b4ulos
-bun2
-bun4a
-b5u5nat
-bunt4
-bur3e
-bur4ri
-busi4e
-buss2
-bus5si
-3bust
-bu5tar
-b3ute
-b5utin
-3butio
-but4iv
-b5ut5o
-b1v
-4b3w
-2by
-4by.
-3byi
-bys4
-5byt
-2ca.
-cab5in
-c4ace
-caco3
-cad4r
-5caf
-ca3go
-5cai
-5cak
-c1al
-c4ala
-ca5laman
-cal5ar
-3calc
-ca5lef
-call5in
-cal4m
-ca3ly
-ca3ma
-cam4i
-ca5nar
-c2an4e
-c4ano
-ca3noe
-can5tar
-can5ted
-can4tic
-can4tr
-5cao
-1cap
-ca5pil
-capt4
-cap3ti
-cap3u
-1car
-ca3ra5c
-car5ame
-ca3ree
-ca3r4i3c
-car3if
-car5m
-car3ni
-car3ol
-car5on
-car5oo
-ca3rou
-car4v
-case5
-cashi4
-3cas3s
-cas5tig
-3casu3
-c1at
-c4at.
-c2atc
-c4atom
-ca3t2r
-c4ats
-cat4u
-3cau
-caulk4i
-cav3il
-3cay
-c1c4
-ccent5r
-cces4sa
-c3ch
-cci3d4
-ccip4
-ccle3
-4ce.
-4ceab
-cean3
-3ceas
-ce4ci
-2ced
-5ceda
-ce3dar
-3cede
-3cedi
-4cef
-ce5g
-3ceiv
-cel3ai
-cel5ib5
-5cell
-cel5lin
-celo4
-ce5lom
-4cely
-2cem
-ce4met
-3cemi
-ce4mo
-1cen2
-5cenc
-cen5ci
-cen5ded
-cend5en
-cend5er
-cen3i
-2cenn
-3cent
-cent4a
-cen5ted
-cen5ter.
-cen5ters
-cen5tes
-1cep
-cept3a
-cep5tic
-3cera
-cer4bi
-3cerd
-ce3rem
-5cern
-5cess
-cest5o
-ces5tr
-ce2t
-cew4
-2ch
-4ch.
-4chab
-3chae
-3chai
-cham5per
-chan5gi
-cha3pa
-chec4
-4ched
-3chee
-3chem
-che3ol
-ch1er
-ch4eri
-5cherin
-ch4erl
-4ches
-3chete
-ch5eu
-che5va
-3chew
-ch5ex
-5chi.
-3chia
-3chico
-ch3ily
-ch4in.
-ch3inn
-3chio
-5chip
-chizz4
-ch5k
-5chlor
-4chm
-1cho
-cho3a
-5choc
-4choi
-ch5oid
-3chor
-4chored
-chor5ol
-4choso
-3chot
-4choti
-ch5ous
-chow5
-3chr
-chur4
-3chut
-5chyd
-3chyl
-3chym
-1c2i2
-4ci.
-4ciac
-cia4m
-ci3ca
-4cids
-4cie.
-ci3er
-ci3est
-ci5et
-ci3f
-cifi4
-4cig
-ci3ga
-cigar5
-3cil
-cil5lin
-2cim
-cim3a
-ci3me
-5cimen
-4cinab
-4cind
-cine5a
-cine5mat
-ci5ness
-4cint
-ci3ol
-ci5om
-ci4po
-cisi4
-cit3r
-ck1
-ckar5
-cka5t
-c4ke
-ck5if
-ck4sc
-cl2
-cla5rif
-3clas
-c2le2
-2cle.
-c5lec
-clemat4
-clev3
-cli1m
-c3ling
-cli2q
-clo4q
-c4lotr
-clue4
-clyp5
-5clys
-cn2
-c3ni
-1c2o2
-4co.
-3coa
-co5ba
-3coc
-co3ci
-co5cu
-co3dic
-co3dif
-4cody
-3coe
-co5et
-co3gr
-4c3oid
-co3inc
-4col.
-col3a
-co3log
-5colou
-co5ly
-co5mas
-co4me
-co3mo4
-comp4
-con1
-con4ati
-con4ch
-cond5er
-con4ey
-con4ie
-con3s
-con3t
-conta5d
-3coo
-coop4
-co3or
-cop4e
-co3ph
-co5pl
-co3po
-cop4t
-2cora
-cor5ded
-cord5er
-4cored
-co3rel
-3corn
-4coro
-co5rol
-5cort
-3cos.
-cost3a
-cost5er
-co5ta
-3co3tr
-5coty
-cous5t
-cov1
-co3va
-cow5a
-coz4
-co5zi
-c1q
-cr2
-5craf
-craft5i
-c4ran
-5crani
-cra5niu
-cras3t
-cra4te
-c2re
-4crean
-cre3at
-cre4p3
-5creti
-cre4to
-cret5or
-cri3l
-cron4
-crost4
-4crou
-5c4rus
-cry2
-crym3
-cryo3
-4c5s4
-csim5
-2ct
-c2ta
-c3tac
-ctac5u
-c5ta5g
-ct1an
-ct5ant
-c5taria
-c3tato
-c1te
-c4tea
-c2t5ee
-c4tent
-cter4ia
-ct5es
-ct5et
-ct2ic
-c5ticia
-c4tics
-ctifi4e
-c3tim
-ct4in.
-ct4ina
-ct5ing
-c3tini
-c5tin5o
-c5tio
-c3t2is
-c3tit
-c4titu
-c4tity
-ct5ive
-ct4ivit
-ct5olo
-c1tom
-c3ton
-c5toris
-c5toriz
-c1tr
-c2tre
-ctro5t
-c1tu
-c2tum
-c1ty
-cub3at
-c4uf
-cu5ity
-cul5ab
-c2uli
-cull5er
-cull5in
-1c2ult
-cu4mi
-5cuna
-cun4e
-5cuni
-5cuol
-cu5pa
-cu3pi
-c3upl
-1cur
-cur4er
-cur5ial
-4cur4o
-1cus
-cus5a
-c3utiv
-c3utr
-5cuu
-cu5v
-2cy.
-cy4bi
-1cyc
-cyl3
-cy4m
-cy5no
-cys4
-cys5to
-cy4t
-cz2
-4da.
-d4abr
-1d2ac
-dach4
-d5ache
-3dact
-d1ag
-d4a4gi
-d4ale
-d4alg
-dal5ler
-dam5a
-3dame
-d3ami
-da5mu
-3dang
-d1an4t
-d3ap
-d3ard
-5darm
-3d4as2
-dast5a
-d1at
-dativ4
-dat4u
-daugh3
-daun5te
-3dav
-d3b
-d3c4
-d1d4
-d4dere
-d3di
-d3dler
-d3dli
-d3dyi
-2de.
-deac3t
-de5aw
-de4bi
-deb5it
-3dec
-de5cant
-de4cil
-de1cr
-4dect
-ded3i
-defor5e
-de4fy.
-de3g
-de4gu
-de3io
-5de3is
-de3lat
-deli4e
-del5ler
-del5li
-de5lo
-1d4em
-4demie
-4dem4is
-demo4n
-de4mons
-de3mor
-de4mos
-4demy
-de1n2a
-den4d
-4dene
-d3enh
-deni4e
-dens5a
-dens5er
-den5tit
-de3od
-deo3l
-deon2
-deont5
-de1p
-depen4
-deposi4
-de2pu
-d3eq
-derac4
-de3rai
-d4ere
-4dered
-de5reg
-3derer
-1deri
-der3k
-3derm
-der4mi
-der5min
-5derne
-3dero4
-der5os
-der3s
-5deru
-4des.
-de3sa
-5desc
-des4ca
-de5scal
-de3sec
-des4i
-de3sid
-des5igna
-des1p
-des5pon
-de3sq
-d3est.
-des3ti
-1de1t
-de3tes
-de5th
-de2ti
-dev3il
-de3vis
-de3vit
-de4voi
-devol5u
-3dex
-2d5f
-dfol4
-d2g
-dg4a
-dgel4
-d4gen
-d3gr
-4d1h
-dhot4
-d4hu
-4di.
-1dia
-di2ad
-3diar
-diat5om
-4d1ib
-d1ic.
-dic5am
-di4ce
-di3ch
-d5icl
-dic5ol
-1dict
-dic5tat
-dic4te
-5dicul
-d5icur
-1did
-di4ers
-3di3ev
-d4ifo
-dig3al
-di3gam
-dil4
-5dill
-dilo4
-di3lu
-di5mer
-dimet4
-di1mi
-2d1in
-din4e
-din5gi
-di5nos
-3di1o
-dio4c
-di4ola
-dip5t
-3dire
-di3ri
-4d5iro
-di4s1
-d4isc
-disen3
-3disia
-3diss
-d4itas
-d4iter
-dithe4
-d3ito
-ditor3
-2dity
-1diu
-1di1v2
-di4val
-di5vine
-dix4i
-d1j
-2dl4
-d1la
-5dlef
-5dlest
-3dlew
-dlin4
-d1lo
-d5lu
-2d1m
-4d1n2
-1do
-4do.
-d4ob
-do4c3u
-dog4a
-do4j
-d4ol.
-dol3en
-do5line
-dol5it
-do4lon
-d4ols
-5dom.
-doman4
-domin5
-dom5ino
-dom5it
-do5mo
-don4at
-4dony
-3doo
-d2or
-4dor.
-dor4m
-dort4
-d4os
-do5sim
-dossi4
-dot1a
-dot4tin
-2dous
-d4own
-3dox
-d1p
-dr2
-d5rail
-d3ral
-3dram
-dran4
-d4ras
-drast4
-3drel
-dres4
-dress5o
-dri4e
-d4rif
-dri4g3
-d4rom
-dropho4
-drunk3
-4d1s2
-d5sl
-ds3m
-ds4mi
-d4sw
-dt4
-dt5ho
-1du
-2du.
-du1at
-3duc
-duch5
-duci5an
-du4co
-du5eli
-du5ell
-du5en
-du5ett
-du5in
-dul3c
-d3ule
-dul4l
-dum4be
-dun4a
-d5un4c
-du2p
-du3pl
-5duro
-d5use
-dust5er
-du3u
-d1v
-dver2
-dvert3
-dvoc5at
-2d1w
-dwell3
-2d2y
-dy4ad.
-dy5ar
-5dy4e
-5dyk
-dyl2
-dyll3
-5dymi
-3dyn
-dys3p
-d3zo
-ea2
-4eab
-e1act
-eac4te
-ea5cu
-e5add
-ead3er
-ead1i
-ead3li
-ea4g
-eak1
-eal3a
-eal3er
-ea3log
-eam4bl
-eam3er
-ean5i
-eap2
-eap5er
-e3app
-ear3a
-ear3er
-ear4li
-e5ar2r
-ear4te
-earth5i
-eas5er
-ea4soni
-e1as1s
-eassem4
-eas4t
-east5i
-eat5eni
-eat3er
-eat5ie
-e3atif
-eatit4
-eat4itu
-e3atri
-e4atu
-eau3
-eav5i
-eavi4e
-eav5ou
-eaz5i
-e1b
-ebar4
-eb2b
-ebe4
-e4bel.
-e4bels
-e2ben
-eb5et
-eb2i
-e5bil
-e4bin
-e4bis
-e4bl
-e4bos
-ebot3o
-e2br
-eb1ra
-eb2t
-e4buc
-ebus5i
-ec2a
-ec3ade
-ecad5en
-ecal5e
-e5cam
-e4capo
-ec3at
-ec5ath
-e1ce
-ecent5o
-ech3i
-e4cib
-eci4f
-ecip5i
-e1cl
-ec3lip
-econ4sc
-econstit5
-ec3ora
-ec5oro
-ec3rat
-ec5rean
-e4crem
-ec1ro
-ect5ati
-ec4ter
-ecti4c
-ec4tit
-ec4t5us
-ec1ul
-e5culi
-2ed
-e5dans
-e2dat
-ede2
-e4ded
-e5deh
-e4dele
-edes3t
-ede3te
-edeter5
-e3dev
-e5dew
-ed4g
-edi4als
-ed5ical
-ed5ics
-ediges4
-ed5igr
-ed3ime
-ed1it
-edi2v
-ediv5id
-ed3li
-edor4
-e4dox
-ed1ro
-edu5cer
-e2dul
-ed3ulo
-e4d5ur
-ee4ce
-eed3er
-ee4do
-ee2f
-ee5g
-ee1i
-ee2l1i
-ee2m
-eem5er
-eem3i
-eep1
-ee4pa
-eer4ine
-eesi4
-ee3to
-e1f
-efact5o
-efal4
-ef5eree
-ef5inite
-e4fite
-ef4l
-efor5est
-2efu
-e4fug
-efut5a
-egel3
-egi5a
-e4gib
-e3gla
-eg3le
-eg4mi
-eg5nab
-e5g4on
-e2gr
-e5gur
-e1h2
-e5ho
-eh5s
-ehy2
-ehyd5r
-eid4
-5eido
-4eif
-eig2
-e5ignit
-e4in.
-e3inc
-e2ine
-e1ing
-ein5i
-e4ins.
-ei4p4
-eir3o
-4eis
-eis3i
-eit5er
-eith4
-e2iv
-eiv3er
-e2iz
-e1j
-ejudic4
-ek3en
-ek5is
-ek4l
-e4lac
-e5lad
-el5age
-elam4
-el5anc
-elast3
-e4lates
-el5ative
-elch5er
-eld3er
-2ele
-elea5g
-4e4led
-el5eni
-el3eno
-ele3o
-ele5ph
-el1er
-e1les
-e5less
-e4leste
-el3et3o
-elev3a
-ele3vi
-el5ex
-e4l3ica4
-e1lie
-eli4ers
-e3lim
-el3ing
-eli3on
-e4li4s
-elit4t
-e3liv
-el4lab
-ell5iz
-e3loa
-e3loc
-elo5ca
-eloc3u
-elo4di
-e2log
-elom5ate
-el5op.
-el5ops
-elp5in
-el3so
-el5tie
-e1lu
-elu4m
-elus4
-elv4
-e5lyi
-3elyt
-em3ago
-em3ana
-emar4
-emarc5a
-em5atiz
-emat5ol
-em5bi
-e1me4
-e4mee
-e4mel
-e3mem
-e4m3era
-em5ero
-emet4e
-em4icis
-e4mie
-e2mig
-emig5ra
-em3ina
-em5ing
-e3mio
-em3ism
-e4mita
-e4miu
-em4mae
-4emnit
-emo3bi
-emod4u
-e2mog
-e4moi
-em3olo
-em5om
-4emon
-e3moni
-emon5ol
-e2mor
-em5oris
-em3orr
-e4motic
-e5moz
-empa5r
-empara5
-em5pes
-4empli.
-em4pre
-em3um
-e5mut
-en3ac
-e4nal
-en3am3o
-en4ann
-e2n3ar
-en3as.
-ena5ture
-3encep
-en4cile
-enct4
-2end
-en4d5al
-en4dedl
-end5rit
-4ene
-ene5d
-en3ee
-e5nelle
-e5nep
-e2ner
-e5nereo
-ener5v
-en5esi
-e3ness
-en1et
-en4ett
-e2n3eu
-e3new
-en3gi
-en3ic
-en5ier
-en3ig3r
-en5in
-enit5u
-en3k
-en1o
-en3oi
-eno2m
-en3oty
-enov3
-en2s
-ens5al
-en3sp
-en4sum
-en4sus
-ent3ar
-en4ters
-en5tia
-en4tify
-en2to
-en4tri
-ent5rin
-ent5up
-en4tus
-4enu
-en3ua
-en3uf
-en3ur
-en5ut
-5enwa
-eo3b
-e4och
-e4oda
-eof2
-eo2l
-eol5ar.
-eol5at
-eologi4
-e5olu
-eo3m
-eon4a
-e3ont
-eop4t
-e1or1
-eor4de
-eor3e
-eor5o
-eo1s2
-eo4to
-e1pa
-ep4al
-ep5arc
-epa4t
-epend5en
-ep5ert
-e4pete
-epe5titio
-ep5ex
-eph1
-eph4i
-e2pig
-e5pla
-ep3lic
-epol3a
-epol3i
-epolit5
-ep3reh
-epres5e
-ep5rim
-e4p5rob5
-ept3or
-e1p4u
-e3pur5
-e4puta
-equin4
-equi5no
-er1
-era4cie
-era4do
-era4g
-era4l
-er3aph
-er3api
-er3apy
-4erati.
-4eratim
-er5atu
-er3bat
-er3be
-erb5os
-2erc
-er3ch
-er3cl
-2erd
-erd5ar
-erdi4e
-2ere
-er3eal
-4ered
-er3egr
-er5el.
-er5ell
-er5els
-e4reme
-er3en
-5erend
-eren4e
-ere5ol
-e3req
-er3er
-ere4s
-er5ese
-er3esi
-er5este
-er5esti
-eres5tr
-eret4
-er3et.
-er3ets
-er3ett
-ere4v
-er3ex
-ergi3v
-er3gl
-er3ia.
-er4ian
-eri4cid
-5er5ick
-er2id
-er3ie
-er3iff
-er4imet
-er3in
-eri4na
-eri4on
-er3iou
-er4isc
-eri5sta
-4eri2t
-e3riv
-er5iz
-4erj
-erk4
-er3me
-er4moi
-5ernacl
-er5nalis
-ern3er
-ern3is
-ern3it
-4ero.
-er3oid
-ero5is
-ero5st
-erpent5in
-erre5la
-er4rep
-er5sine
-er5ted
-er4ter
-ert5er.
-ert5ers
-er4thi
-ert5iz
-2eru
-eru4b
-eru5d
-erund5
-er4vil
-5erwau
-eryth3
-2erz
-4es.
-es5am
-es5an
-e2sc
-es5can
-es5che
-esci5e
-escut5
-e3sea
-e3sect
-e5see
-e5seg5
-ese4l
-es5enc
-e3sh4a
-e1shi
-e5shu
-esi4an
-es5ic.
-e5sick
-es5iden
-esi5diu
-es5ies
-es3im
-es3in
-e5sion
-e4sit
-es4it.
-es4its
-e3skin
-e3s4mi
-es4od
-es3ola
-es3ol3u
-es3ona
-eso3p
-e1sor
-es3per3
-es5pira
-es5pit
-es4pl
-esplen5
-es5pot
-e5s2pr
-es4s3an
-essar5
-ess5ee
-es4sil
-es2so
-esta4b
-est3an
-e5star
-es5tau
-e2sti
-est5ifi
-est5igati
-e3stoc
-es5too
-est4r
-estud4
-e1su
-e2s3ul
-es4ur5
-et2a
-et3al.
-et5allis
-et3al5o
-eta5me
-eta3p
-et3ari
-et5ary
-et4as
-et3ate
-et3ati
-et5ay
-et3eer
-etell5i
-etend5er
-et5eni
-eter2
-et3er3a
-et5eria
-etex4
-e2th1
-ethyl3
-2etia
-e3ticu
-eti4gi
-e5tim
-et3in
-eti4na
-e3tir
-et5itiv
-eti4u
-et5olo
-e5tomete
-e2ton
-et3ona
-etor3i
-etra5g
-4e4tral
-etra5m
-et4ran
-et5ress
-et1ri
-et4ria
-etrib5a
-e4trim
-et1ro
-et2t
-et3ter
-etud4
-et3ude
-e4tum
-et4we
-et5z
-eudio5
-eue4
-euk5
-4eum
-e3urg
-eur5i
-eus4
-eu5ten
-eu3ter
-eut3i
-ev4abi
-eval5e
-eva2p3
-ev3ast
-ev3at
-ev5eli
-eve4n
-ev5erat
-ev5eren
-ever4er
-e4veri
-e4ves
-e1via
-e4viab
-e2vic
-evictu4
-evid3
-ev5ig
-ev4ile
-ev5ish
-evis5in
-evis5o
-e4viu
-evoc3
-evol5e
-evol5ute
-evu4
-e1wa
-e4wag
-e5way
-ew1er
-e3wh
-ew5ie
-ew1in
-ew5ish
-e3wit
-e1wr
-ex5ic
-ex4on.
-1exp
-4ey.
-ey4as
-eyl4
-ey3s2
-ez5er.
-ez5ers
-ez5ie
-1f2a
-2fa.
-fab4i
-fa3cet
-fact2
-fa2c3u
-2f3ag
-fall5in
-5falo
-fa5lon
-fals5ifie
-4fan3a
-fan5tasiz
-fant3i
-5far
-far3i
-5faw
-4f5b
-2f5d
-2fe.
-3feas
-fea3tu
-feb5r
-3fec
-2fed1
-5fei
-fe1li
-fem3i
-femin5
-fend5er
-f5eni
-4fered
-fer3ee
-3fero
-fe5roc
-fer5om
-3ferr
-fer3v
-2fes.
-fess3o
-fest3a
-fest5i
-fe4t
-fet4al
-fet4in
-fet4o
-3feu
-fe5veri
-2ff
-f1fe
-ffec4te
-f5fet
-f1fi
-f5fia
-f3fic
-f5fie
-ffil3
-f2f3is
-ff4le
-ff3lin
-ffoc3
-ffoni4
-ffor3e
-f3fr
-ffranch5
-4f5h
-fi5ance
-fib5u
-4fic.
-4fical
-3fici
-4fics
-fi5del
-fid3en
-fiel4
-fier4c
-fight5
-1fi2l
-2fin
-fin2a
-fi3nal
-find3
-fin2e
-f1ing
-5finin
-fin4ni
-fir2m1
-f3ita
-f5itee
-fl2
-3fla
-fle2s
-f3lica
-flin4
-3flo
-flo5ric
-3flu
-flum4i
-1fo
-4fo.
-3foc
-fo2e
-foeti4
-fo1l4i
-fo4lie
-foment4
-fo2n
-fon4de
-3foo
-fo5ram
-for5ay
-for5b
-for4di
-fore3t
-5form
-for4m3a
-fortu5na
-fo3v
-1fr2
-frag5a
-frant4
-frar4
-fratch4
-fre4s
-frost5i
-fruc4
-2f3s
-fs4p
-2ft
-f1ted
-f4ter.
-ft5es
-fti4et
-ft4ine
-3fu
-4fu.
-fu4c
-fuel5li
-fug4a
-fu4min
-fun2g
-4fured
-fur3n
-fu3sil
-fus5o
-fu5til
-4ga.
-ga4cie
-gadi4
-ga4dos
-3gag
-3gai
-3gale
-ga5len
-gali4a
-gal5ler
-3galo
-gam4bl
-gan5at
-4ganed
-gang5er
-g5ant.
-gan4tr
-g5ants
-g5arc
-g4are
-gar3ee
-gariz4a
-ga5rot
-gar5p
-5garr
-1ga4s
-gas5i
-gas3o
-gasol5
-gass5in
-gast3r
-g1at
-g4at.
-gat5iv
-g4ato.
-g4atos
-g4att
-gat5u
-gaud5
-ga5za
-g1b
-g5d4
-2ge.
-5geal
-3gean
-2ge4d
-3gedi
-5gedn
-4gef
-1gel
-4gele
-ge4li
-gel4in
-gel5li
-ge4lu
-2gely
-gem3i
-5gemo
-3gen
-gen4du
-gen5it
-gen3o
-gen5ti
-ge4o
-geo3lo
-4gere
-3germ4
-2ges.
-5gess
-gest5at
-3get
-get3a
-2g1f
-2g1g
-gg4a
-g2ge
-g5gedl
-g3ger
-g5gerer
-ggi4a5
-g3gli
-gglu3
-g5gly
-ggrav3
-g4gro
-2gh
-g5hai
-gh5eni
-g3ho
-g4hos
-gh2t
-1g2i
-4gi.
-gi4all
-gi4at
-3gib
-gi5co
-gi4g
-gi5gan
-gin5gi
-3gio
-gi4or
-gi4ot
-5gip
-gi5pa
-g4i4s
-5gis.
-gi2t1
-5gitu
-giv5en.
-2gl2
-g3lar
-5glass.
-glec4
-3gler
-g4leto
-g4letr
-g4ley
-gli5on
-g5lis4
-3glo
-4g5lod
-glom3
-4glop
-3glu
-glu5te
-glu5ti
-3glyp
-2g1m4
-2gn2
-g1na
-g4nab
-g5nate
-5gnath
-g5nati
-gna5tur
-gn5edl
-gn5ee
-gn3er
-g1ni
-g4nia
-g2n3in
-gn4in.
-g4ni2o
-g2no
-5gnori
-gno4s
-2go.
-5goa
-3goc
-5god
-3goe
-go4et
-go4ge
-4gogram
-g5oid
-go3is
-go2me
-5gonn
-go5nom
-3goo
-goph4
-4gor.
-5gorg
-4gors
-g4ory
-3gos
-gos4t
-2gou
-gour4i
-g1ous
-gov1
-g3p
-1gr2
-grab4
-3gram
-4grame
-gra2p
-g4re
-gril4
-grim3a
-g4ro
-gro4g
-g5ron
-grop4
-3gru
-gru3en
-gru5i
-grum4b
-2g1s
-gs4c
-gs4t
-g4sti
-gth5eni
-g5to
-g4u2a
-gu5ab
-5guan
-3guard
-g5uat
-2gue
-5gueu
-5guit4
-gui5ta
-gu2ma
-gu4mi
-3gun
-g4uras
-g4ured
-gur4n
-gur4u
-4gury
-gust5a
-2g1w
-2gy
-gy2b
-5gym
-3gyn
-gyn5o
-g5z2
-ha2
-4ha.
-h4ac
-hadi4e
-had4ine
-hae3o
-haged5
-hagi3o
-hag5u
-ha5ic
-hais4
-hak4ine
-hal5ant
-ha4m
-ham5an
-han4cro
-han2g
-h1ani4
-h5aniz
-han4t
-hant3a
-ha4pe
-hap3l
-har1a
-har5b
-har4d
-har5die
-harge4
-ha5rism
-har3o
-har4ted
-har4ti
-has4te
-hat5o
-haught5
-havel4
-hav5ersi
-hav5o
-h1b
-h1c
-h1d
-hdeac5
-hdu4
-he2
-4he.
-h2ea
-1head
-3hear
-hearch4
-heast5
-heav5en
-hec3t4
-he5del
-he3do
-heek4
-h4ei
-he3is
-he5lat
-h5elin
-he3lio
-he5liu
-hel4li
-h3el3o
-hem1a
-he3men
-hemis4
-he5mop
-hem4p
-hende5
-he3or
-hep1
-h1er.
-her4as
-her2b
-herb3a
-herb3i
-here3a
-here3o
-h5erett
-h5erh
-her5ial
-h5erine
-h1erl
-her5om
-h4eron
-h1ers
-h5erwa
-hes3tr
-het1
-h4et3a
-het3i
-het4ted
-heu2
-heum3
-heumat5
-he4v4
-hev5i
-hex5o
-h1f
-h5h
-2hi.
-hi4ar
-h1ic
-hi3c4an
-hi4cin
-h4icl
-h5ie.
-h1ier
-h4i4ers
-h1ies
-h3ifi4
-h3ify
-hig4o
-hi5ka
-hi4l
-hi5ma4
-hi5mer
-himos4
-h1in
-hin4d
-h2in2e
-hi5nie
-h5iniz
-hi5nop
-h2ins
-hio5lo
-h4ior
-hi2p
-hip3l
-h4ir
-hir4r
-hirr5i
-hit4a
-hiv5a
-4hl
-h3la
-h1le
-h3let
-h1l2i
-hli4a
-2h1m
-h4manic
-h5mica
-2h1n2
-hnocen5
-4ho.
-ho3an
-ho4co
-ho3don
-ho5du
-ho5ep
-hol3ar
-hold1
-hol4is.
-ho5lys
-ho4mag
-hom5in
-h2o4n
-hon5em
-ho5neu
-hon3ey
-hong3i
-ho5nio
-hon1o
-1hood
-hoo5r
-h4ope
-ho2p5r
-h4op4te
-hor5et
-h4orn
-horn5i
-ho5rog
-hort5h
-hosi4
-ho4ton
-h2ou
-3house3
-4h1p
-2hr
-hras5eo
-hre4
-hre5ma
-hr5er
-hres4
-hri4
-hrill5in
-hrim4
-h5rit
-h3rod
-hrom4i
-hry4
-h3rym3
-2h1s
-hsi4
-h4sk
-ht5ag
-ht5ee
-ht3en.
-ht5ener
-ht3eni
-ht3ens
-ht5eo
-ht5es
-ht4foo
-h1th
-ht4ine
-hu4g
-hu4mat
-hu5mer
-hu4min
-hun4c
-hunk4
-hun4t
-hur3i
-hu3sia
-huz4
-h1w
-h4wart
-h2y
-hy2l
-hyl5en
-hy2m
-hyn4
-hy3o
-hyol5i
-hy1pe
-hy3ph
-hyr4
-hys3te
-hy4t
-2i1a2
-ia4bl
-iab5olis
-iab5oliz
-i2ach
-iac3o
-i2ac2r
-ia5cri
-ia5dem
-i5ae
-iaf4
-i2ag4
-ia3gn
-i5a4g5o
-ia3gr
-i3ah
-i5ai
-ialect4
-i3alit
-ial5li
-4ialn
-i2a3lo
-ia5ly
-i5amb
-ia3me
-ianch5
-i3ant
-i5ape
-ia3ph
-i2ard
-4iarit
-i3at
-ia5the
-i5atom
-iat4u
-iatur4a
-i3au
-iav4
-ib3era
-ib1i
-ibio4
-ibios4
-ib5li
-4ibo
-i4bon
-ibor4
-i4bose
-i5bou
-ib1ri
-4ibu
-ib3uta
-ic3ac
-ic5ado
-i4cal
-ic1an
-2icar
-iccu4
-4ice
-i5ceo
-4ich
-ich4i
-ich5ing
-ich5ol
-4icin
-i5cio
-2ick
-ic4lo
-2i2co
-ico3c
-ic5ola
-icon3o
-i5cop
-icotyle5
-2i1cr
-i4cri
-i4cru
-i4cry
-ic4tedl
-ic4ter
-ict5ic
-2icu
-icu4lu
-ic3um
-i5cun4
-i5cut
-2i1cy
-i2d
-id1a
-i5day
-ide4m
-id3enc
-id3era
-iderm5
-i3dicu
-id3if
-i5dig
-i5dil
-i3dim
-id4ines
-idios4
-idir4
-id1is4
-id4ist
-2i4d1it
-idi4v
-id3li
-id3ol
-idol3a
-4idomi
-id3ow
-4idr
-id5ri
-id3ul
-ie2
-4iec
-2ieg2
-ie3ga
-ie5i
-i5ell
-4iem
-2i1en
-ien2d
-i1er
-i3eres
-i2eri
-ieri4n
-4iern
-ier2o
-i4ert
-i3esc
-ies3el
-i1es2t
-i3est.
-2i1et
-i4et.
-iet3ie
-4ieu
-i5euti
-iev3a
-iev3er
-iev3o
-2i1f
-i2fe
-if4fa
-iff5ler
-if3ic.
-i4ficac
-if5ics
-ifi4d
-ifi4n
-4i2fl
-i3fo
-ifoc5
-if5tee
-i3fy
-2ig
-i3gad
-ig3and
-3igar
-i1ge
-i3ger
-ight5er.
-ight5ers
-4igi
-ign5iz
-igno5m
-i3gon
-ig1or
-ig3ot
-i5gret
-i4g5ro
-igu5it
-ig1ur
-2i1h
-ihy4
-2ii
-i5in
-ija4
-4iju
-2ik2
-ik5an
-ike4b
-i2l3a
-ila4g
-ila5tel
-i5later
-il4ax
-il5dr
-il4du
-i3len
-ilesi4
-il3f
-il3ia.
-il3iar
-ili4arl
-i3lici
-i5lien
-ili4er
-ili4fe
-il4ific
-il1in
-il5ine.
-4iliou
-il5ipp
-il5iq
-il4ite
-ilit5u
-il4mo
-i5lon
-il3ou
-ilth4
-il2tr
-4ilu
-il5ul
-i5lum
-il5ure
-il3v
-4ilym
-ima4c
-im2ag
-im3age
-im1al
-im5am
-i5m2as
-i4mated
-i4matin
-imat5u
-im1i
-i3m2ie
-im4ine
-im5ino
-im5mes
-i2mo
-i5mog
-i3mon
-im5oo
-i3mos.
-impar5a
-imparad5
-im5pie
-impot5
-im5pr
-impu4
-im1ul
-im5um
-in3ab
-4inace
-in4ado
-in5agl
-in3air
-ina4l
-4inalit
-in5am
-in3an
-in3ap
-in4ars
-i3nas.
-4inata
-inator5
-in3au
-in4aw
-2inc
-inc4tua
-2ind
-in5dar
-inde5p
-indes5
-inde3t
-indeterm5
-in5dro
-4inea
-4ined
-in5ee
-in5ega
-4in5eo
-ine4s
-in3esi
-ine5te
-4ineu
-inev5
-infilt5
-infol4
-4infu
-4inga
-in5gal
-4inge
-ing5ha
-4ingi
-4ingle
-4ingli
-4ingo
-4ingu
-ing3um
-2ini
-in5ia.
-4inic
-in4ici
-in3ion
-in4itud
-4ink
-ink4ine
-4inl
-2inn
-2ino
-4ino.
-in3oi
-i5nole
-4inos
-i3nos.
-in5ose
-in3osi
-4inq
-ins2
-in4sch5
-inse2
-insect5
-insec5u
-in3si
-5insk
-insolv5
-in4tee
-int5ess
-in3til
-int5res
-intu5m
-2inu
-in5ul
-in5um
-in3un
-in3ur
-invol5u
-2io2
-ioact4
-i1od
-iod3i4
-iod5o
-ioe4
-io3gr
-4i1ol
-io3ma
-i4omani
-io3mo
-i5ope
-io3ph
-i5opo
-iop4s
-i1or
-iora4m
-4iore
-4iorit
-5ioriz
-4iorl
-ior4n
-io3sc
-i3ose
-i3osi
-i4oso
-io5sta
-i3ot
-iot4a
-io5th
-iot5ic
-io5tr
-i4oty
-i4our.
-i4ours
-i5ox
-2ip
-ip3al
-ipap4
-ipar3o
-ipart5ite
-ip1at
-i3pend
-i1ph2e
-iphen3
-i5pheri
-iphi4
-i4phu
-ip3id
-i5pil
-ip3in
-ip4ine
-ipir4
-ip5is
-ip1i4t
-ip4iti
-ip3lin
-ip3lo
-i3po
-i4pog
-i4poli
-i4pom
-ipon3
-i4pow
-ip2pl
-ip3pli
-ip4re
-ip5tori
-ip1ul
-i5put
-ipy4
-2iq
-i3qua
-2ir
-ir1a
-ir4abi
-ira4c
-ir4ae.
-ir4ag
-ir4alin
-ir4alli
-i5raso
-irassi4
-iray4
-ird3i
-ire3a
-ir3ec
-ir5ee
-irel4
-ire5li
-ires4
-ir5ess
-ir1i
-ir2i4d
-ir4im
-ir4is.
-5iriz
-irl5ing
-ir5och
-ir5ol
-ir3om
-ir4q
-ir2s
-ir5ta
-ir5tee
-irwo4me
-i4sa
-is5ad
-is3age
-is1al
-is3am
-is1an
-is3ar
-is5av
-4isb
-i2s3c
-is5chi
-isci5c
-4i1sec
-ise5cr
-is3ell
-4is3en
-is2er
-is5ere
-i2s3et
-4iseu
-is3har
-ish5ee
-4ishio
-ish3op
-is5hor
-2isia
-is5ic
-is3ie
-4isim
-is3inc
-4isis
-is4ke
-is1l
-islun4
-2isma
-is1on
-is5oner
-iso5p
-is1p
-i3s2ph
-5ispr
-2is1s
-iss5ad
-is4sal
-is5san
-iss4iv
-iss4o
-4ista
-is4tal
-ist5enc
-ist5ent
-is5terer
-4isth
-is4t3ic
-4istl
-i4s1to
-4is4tom
-is1tr
-3istry
-4isty
-i5sul
-is3ur
-2isy
-it1a
-it5ab
-ita4c
-4itai
-it3am
-it4ana
-it4as
-it3at
-i3tect
-it3ee
-it3enc
-it3ent
-it3era
-2ith
-itha5l
-ith5i
-i5thol
-ith3r
-ithy5
-2itia
-iti4co
-it5icu
-it1ie
-it3ig
-4itim
-it4in.
-it4ins
-4itio.
-4itione
-i5tiq
-4i5tit
-it3iv
-it4li
-it5lo
-4ito.
-it5ol
-2iton
-it1ou
-2itr
-it5ress
-i4tric
-2itt
-it4tit
-itu4als
-it5uar
-4itue
-it1ul
-it1ur
-it3us
-2i1u2
-i3um
-iur5e
-2iva
-iv5anc
-iv1at
-i4ved
-iv5el.
-iv5eling
-iv5els
-i4ver.
-iv3eri
-i4vers.
-iver5sal
-ives4
-iv3et
-i4vie
-iv3if
-i5vilit
-5ivist.
-5ivists
-iv1it
-i2vo
-ivoc3
-i5vore
-2i1w
-2ix
-ix3o
-i5ye
-1iz
-4izah
-iz3i2
-2izo
-iz5oi
-2izz
-1ja
-2ja.
-3jac
-ja2c5o
-jac3u
-jag5u
-jal4
-ja5lo
-ja5pan
-jel5la
-jeo2
-jeop3
-4jes
-jeu4
-jew3
-2ji
-3jig
-jil4
-jill5
-5jis.
-3jo2
-4jo.
-joc5o
-joc5u
-jol4e
-4jr
-4js
-ju1di
-jui4
-ju5l
-ju3ni
-juscu4
-jut3a
-ju1v
-k4abi
-k2a5bu
-kach4
-k3a4g
-kais5
-ka4l
-ka5lim
-kal4is
-k4an
-ka3o
-kap4
-kar4i
-1kas.
-kaur4
-kav4
-k1b4
-k1c
-kcom4
-k5d2
-kdo4
-kdol5
-4ked
-ke5da
-k5ede
-3kee
-ke4g
-ken4d
-keno4
-kep5t
-ker5a
-k4ere
-k5erel
-ker4j
-ker5o
-kes4i
-ket5a
-key4wo
-k1f
-kfur4
-k3ho
-5kih
-ki2l
-kilo3
-k1in
-k2in.
-3kind
-kinema4
-kin5et
-k3ing
-kin4i
-k2ins
-kir3m
-kir4r
-kis4
-3kis.
-k1ish
-kit5c
-ki4w
-kk4
-k5ker
-k2l2
-k3la
-k5lea
-k3ler
-k3let
-k3li
-k3lo
-k1m
-kn2
-k2no
-1know
-ko5a
-kol4
-ko5mi
-ko5pe
-k1p
-k5ro4
-k3ru
-4k1s
-k3sl
-ks2mi
-ks4t
-k1t
-kur5
-k5v
-k1w
-3kyl
-l2a
-4la.
-5laa
-lab5ar
-label4
-5labr
-l4ac
-la2ca
-la5ceo
-la5cer
-la4ch
-la2co
-5la5col
-lac5on
-la3cu
-la4de
-l5adm
-l4ae
-l4af
-la3ger
-la4gis
-lag3r
-5lah4
-la4ic.
-l4al
-4lale
-5lamandr
-la5melli
-lam4ie
-lam1o
-l5amu
-lan3at
-lan2d
-3land.
-land3i
-3lands
-lan4er
-lan3et
-lan5tine
-lan4tr
-la4p
-lapi4
-lar5an
-lar5de
-4lared
-l4as
-lat5al
-la4te
-5latilis
-5latiliz
-5latini
-lat5us
-l4au
-5laur
-lav5at
-l4aw
-4laz
-l3b
-lbe4
-l4bit
-l4by
-l1c2
-l2cat
-lce4
-lcen4
-l4cere
-lch4e
-l3dar
-l3ded
-l3deh
-l5dera
-ld3est
-l5dew
-ldi2
-l3die
-ld4ine
-l5di5nes
-ld3ish
-ld5li
-l3do
-4le.
-3leagu
-le5atio
-leav5er
-l3eb5ra
-le3ca
-le5cha
-lect5ica
-2led
-le5dr
-leg1a
-l3egan
-3legg
-le4gin
-leg3o
-le3gra
-lek4
-4leled
-lel5o
-lelu5
-lem5enc
-lem3is
-l5emiz
-5lemm
-l3emn
-le2mo
-lem5on
-l5enda
-len5dar
-lend4e
-len4do
-le1ne
-le5nie
-len3o
-4lentio
-len5u
-le3on
-leo4s
-le5q
-2ler
-le5rec
-5l4eria
-l4eric
-le5rig
-ler3om
-leros4
-ler3ot
-4les.
-le3sco
-3les4s
-1let
-le5tra
-le5tre
-5le5tu5
-leur5
-2lev
-l3eva
-5leve
-lev5ita
-le4wi
-l5exa
-1ley
-lf5id
-l2fo
-lf3on
-l1g2
-l4gal
-l4gem
-lgi4a
-l4gid
-l4goi
-l3h
-4li.
-li4ani
-lias4
-lib1r
-l1ic.
-5lich
-li4cie
-5licio
-l3ic3on
-lict4o
-li4cu
-l3ida
-l4idar
-5lidif
-3lieu
-l4ife
-l4ifo
-lift5er
-1lig
-li5ger
-light5i
-5lih
-3lik
-1l4il
-lil4i
-lim2b
-limet4e
-lim4p
-l4ina.
-l4inas
-lin4d
-l4ine
-5lin3ea
-lin4er.
-lin4ers
-lin4ger
-ling3i
-5lingt
-3lingu
-3linq
-lint5i
-3liog
-li4ol
-lio3m
-liot4
-li3ou
-5liph
-lipt5
-li1q
-3lir
-l1is
-l4isk
-5lisse
-l1it
-l2it.
-l3it5a
-5liter
-3lith
-5litia
-3litr
-lit4u
-l4iv
-l5ivat
-liv3er
-liv5id
-lkal5o
-lk5at
-lk3er.
-lk3ers
-ll2
-l1la
-lla4ba
-llact4
-l5las
-l4law
-l5leb
-l1lec
-l1leg
-l3lei
-l1lel
-lle5m
-l1len
-l3lep
-l3leu
-l3lev
-ll3f
-l1li
-lli5am
-lli4an
-llib4e
-llic4
-l4licl
-lli5co
-l5lie
-lligat4
-l2lin
-l5lin.
-l3lina
-l3line
-l5lio
-lli5v
-ll3m
-l1lo
-lloc3a
-lloc5u
-llo2q
-l4lov
-llow5er
-ll3p
-ll3s
-ll5t
-l1lu
-llun4
-l5lya
-l3lyc
-l3lyg
-l3lyh
-l3lyi
-l5lym
-lm2
-l1ma
-l1me
-l4mer
-lm3ing
-l5mip
-l2m3od
-l1n4
-l3ne
-lneo4
-2lo.
-5load
-5lob3a
-1loc
-loc3al
-loc5ul
-lo4cus.
-2locy
-l3odis
-3lo3dr
-1log
-lo5gan
-4loi.
-lo5mi
-lom4m
-lon4al
-lon4e
-l5onel
-lo5ney
-long5in
-3lonia
-loni4e
-l3onis
-l3oniz
-loom5er
-lop4e
-5lo5pen
-l3opm
-1lo1q
-l4ored
-lor5iat
-lor4ife
-lo5rof
-loros4
-l4os.
-lo1so
-loss4
-los5sie
-lot5at
-loth4ie
-lo5tu
-5loup
-lp1at
-lp3er
-lph2
-l5phe
-l3phin
-l2pho
-l3pie
-l3pit
-lr4
-l3ri
-l3ro
-l5ru
-4ls
-l5sam
-ls5an
-lsi4fia
-lsi4m
-ls4is
-l5sk
-ls4p
-l1s2t
-ltan3e
-l4tang
-lt5ant
-l5tar
-l1te
-l4tei
-ltern3
-lth3i
-lti4ci
-ltim4a
-ltin4
-lti3t
-l3t4iv
-lt4or
-l1tr
-ltramont5
-l1tu
-l4tus
-4lu.
-lu1a
-luch4
-lu2c5o
-luc5ra
-lu4cu
-4lue
-lu1en
-lu5er
-lu1i
-lu4it
-lum4bri
-lu4mo
-5lump
-lu2m5u
-lunch5eo
-5lune
-l3unta
-lu3ori
-5lup
-3lur3o
-lusk5
-luss4
-lut5an
-4lut5ar
-5lutioniz
-lu5toc
-lut5r
-lu1v
-lv5ate
-l5vet4
-l4vi
-l4vor
-l3w
-lx4
-2ly
-4ly.
-ly1c
-ly4ca
-lyc4l
-lyc5os
-lym2
-lymph5
-lyp2
-ly4pa
-lypt5o
-3lyr
-lys5er
-3lyw
-3lyz
-lz4
-4ma.
-m4aca
-mac3ad
-ma5chine
-5machy
-ma4cis
-mact4
-4mad.
-4mada
-4mads
-ma4ge
-5magn
-2mago4
-2mah
-ma5ho
-3ma4i
-4mai.
-maid3
-5mak
-mal3ap
-mal5ari
-5male2
-mal5ed
-mal3ef
-m3alg
-m3alis
-mal4is.
-mal3le
-mal4li
-2mam
-mament4
-m5ament.
-1man
-3m4an.
-man3a
-man5dar
-man3dr
-manic4
-man4ica
-ma5nil
-m4ans
-mantel5
-2map
-m3aph
-1mar
-5maran
-mar5ol
-ma5ron
-ma3roo
-mar5ri
-mar4shi
-mar3v
-ma3son
-massi4
-mass5ing
-3mas1t
-mas4ted
-mast4ic
-mas4tin
-m4at.
-m4aten
-ma3ter
-mater5n4
-m4atit
-mat4iti
-m4atiza
-ma3tog
-mat5om
-ma3top
-m4ats
-3m4att
-ma5ture
-mav4
-2m1b
-mbat4t
-mb4d
-m5bec
-m5berer
-m4bery
-m4bes
-mb2i
-m2bic
-m5bil5
-m4b3ing
-m4bis
-mb5ist
-mbival5
-m5bler
-m3bli
-mbru4
-mbu3l
-mbur4
-m1c
-m5d
-m2e
-2me.
-mea5g
-me5and
-me4ba
-me4bi
-2med
-4med.
-3media
-med5icat
-4medie
-m5ed5ies
-3medit
-me4do
-m5edy
-me2g
-5meg2a1
-mega5t
-4mele
-mel5ee
-mel5ler
-mel3on
-mel4t
-melt5er
-me2m
-4m5eme
-1men
-3men.
-2mena
-men4ag
-mend5er
-mend5o
-me1ne
-ment5or
-5ments
-5meog
-me4p
-m5eran
-4mere
-mer4ia
-2me2s
-mes5en
-me5si4a
-mes5q
-3mesti4
-1me2t
-meta3t
-met1e
-4meted
-meth4i
-meti4c
-met5ici
-met3o
-met3ri
-m1f
-4m3h
-4mi.
-m1ic
-mi4cin
-mi3co
-3micro
-m4ict
-mi3cul
-mi4cus
-m4idi
-mid4in
-mid5on
-mi5fi
-mig5a
-migh5ti
-mi2gr
-4mij
-mi5ka
-m2il
-m3ila
-mil4ad
-4m5ilie
-mil5ies
-3mill
-mi5lo
-mil4t
-3m2im
-mim5i
-5min4d
-mind5er
-min4er.
-min4ers
-ming5li
-min5ie
-m4init
-min3ol
-1m4int
-minth5o
-mi3o
-mi3p
-mirab4
-mi5racu
-m2is.
-m4isc
-mi4se
-4misem
-mis3ha
-5missi
-m3ist.
-mis4tin
-m3ists
-mi2t
-m5itan
-4mity
-3miu
-5mix
-4m1l
-mlo5cuti
-mlun4
-2m1m2
-mman4d
-mmand5er
-m3medi
-mmel5li
-mmet4e
-mmig3
-mmin3u
-mmis3
-mmob3
-m5moc
-mmor3
-mmut3a
-4m1n2
-mnif4
-m4nin
-mni5o
-mnis4
-mno5l
-1mo
-4mo.
-2moc
-mod1
-mod5ifie
-mogast4
-mo4go
-mog5ri
-m5oir
-mok4i
-mol3a
-4molog.
-4mologs
-4mologu
-mo3ly
-mo1m
-mo4mis
-m4on
-mona4
-4moned
-mon1g
-mo4no
-monolo4
-monolog5i
-m4op
-mophil5i
-mop4t
-m3orab
-m3orat4
-mor4ato
-m5ord
-mo5rel
-3moria
-m5oriz
-mor5on
-3morp
-3morse
-mor5tal
-mo3sp
-5most
-mo3sta
-2m1ous
-m1p
-m3pa
-m4panc
-m4pant
-mpath3
-mpel5li
-m5perer
-mper3i
-mpet5it
-mphal5o
-m4phe
-m4phl
-m2pi
-mp5id
-m5pig
-mp3ily
-mp1in
-m3pir
-mp3is
-m3po
-mpol5it
-mpo2t
-mpov5
-mp3to
-mp5tr
-m3pu
-m5q
-m3r
-m4ry
-4m1s
-msel5f
-m5si
-msol4
-mtu4
-muck4e
-muff4
-mul1t2
-m5unc
-mu5nio
-mun3is
-mus5co
-mu4se
-mus5ke
-mu3til
-m1v
-m3w
-2my
-5my3c
-my4d
-my3e
-3myi
-5myst4
-3myt
-n1a
-2na.
-na2c
-nach4
-na5cious.
-na5ciousl
-nac4te
-nac5tiva
-na5culari
-na4d4a
-nadi4
-nad4op
-n2ae.
-naffil4
-nag4a
-n4agen
-5na5geri
-na4gi
-n5ago
-5n4a3gr
-5nah
-5nail
-na5iv
-nak2
-4naled
-n5alg
-n4alia
-na3ly
-1nam
-3name
-nam4n
-na5nas
-nannot4
-nan4ta
-nan5ted
-nan4to
-na5o
-4n4ard
-nar5tisti
-n2as
-nas5i
-nas5p
-nas3s
-nas5te
-nat5al
-na5tat
-n4atee
-na3the
-nath4l
-nati4
-n4ati.
-nat5ic
-n4ato.
-na3tom
-na4tos
-nat4r
-na5turi
-naugh5ti
-naus3
-3naut
-naut3i
-na2v
-na5vel
-n3b4
-nbarric5
-nbeau4
-nbe4n
-nbene4
-nbet4
-nbit4
-n1c2a
-n4cal.
-ncarn5at
-ncel4i
-ncent5ri
-n4cept.
-n3cer
-ncer4e
-n4ces.
-n5cet
-n5cey
-n3cha
-nch4ie
-n3cho
-nch5olo
-n3chu
-n4cic
-ncid5en
-n4cif
-ncip5ie
-n1c2l
-n4cles
-ncoc4
-nco5pat
-n1cr
-nc1t
-nc4tin
-nct4ivi
-nct2o
-n1cu
-ncu4lo
-n4cun
-n4curvi
-ncus4t
-4nd
-n2da
-n3da4c
-n3dal
-n4dale
-n3dam
-nd3anc
-nde2
-n3dea
-nde3ci
-n1ded
-nde4l
-ndeleg4
-nd3enc
-ndepre4
-n3derl
-nde4s
-ndes5cr
-n5dez
-nd4hi
-n1dic
-ndic5u
-ndid5a
-n3die
-nd5ily
-nd4ine
-nd3ise
-nd5is4i
-nd5ism.
-nd5ity
-nd3ler
-nd1li
-n5doc
-ndor4
-n2dou
-nd5our
-ndrag5
-ndram4
-n5dron
-ndu4b
-nduct5iv
-n4dun
-nd2we
-n3dyi
-2ne.
-ne3alo
-n3ear
-ne2b3u
-5neck
-ne4cl
-ne2co
-n5ectom
-2ned
-3nedi
-ne4du4
-neg3a
-ne3go
-5negu
-neis4
-2nele
-ne5lia
-neli4g
-n4ely
-ne2mo
-4n1en
-n3end
-neo3l
-neon4
-ne2p
-n1er
-4nered
-5nering
-ner5o
-ner4r5
-ner2v
-nerv5in
-2nes.
-n1esc
-ne3sia
-1ness
-n1est
-nes3tr
-net3a
-net3ic
-ne4tog
-net1r
-neuma5to
-neut5r
-nev5er
-n4ew
-news3
-n4eys.
-n3f
-nfo4
-nform5er
-nfortu5
-nfran3
-4ng
-ng2a
-n4gae
-n5gee
-n3geri
-n5gero
-ngh4
-n2gi
-n5gic
-ngio4g
-n5glem
-n3glie
-n5glio
-ng1n
-n1go
-n4gry
-n1gu
-n2gum
-n1h2
-nhab3
-nho4
-nhy2
-nhyd5
-n1i
-4ni.
-3niac
-ni3ba
-n4icab
-ni4cen
-4nicl
-nict5a
-ni4cul4
-ni4dio
-n2ie
-ni4ers
-nif4f
-nift4
-nif5ti
-ni2g
-night5i
-n3igm
-3nign
-nik5e
-n2il
-nil4a
-n3im1
-n4ime
-5nimet
-n4ines
-nin4j
-5ninn
-n4inu
-5niol
-ni1ou
-3nipu
-5niq
-n4is.
-n4isk
-nis4l
-nis4o
-n5iss
-nis5ter.
-nis5ters
-nitch4
-ni4te
-ni3tho
-n4itos
-ni5tra
-nit5res
-ni3tri
-nit4ur
-n2iv
-niv4a
-ni3vo
-nivoc4
-niz5en
-n1j
-njam2
-njur5i
-4n2k
-nk5ar
-n5kero
-n3key
-nk5if
-nk5il
-4n1l2
-nland5
-n3le
-nlet4
-n3m
-nmater4
-nmor5ti
-n1n4
-nne4
-nnel5li
-nnerv5a
-n3ni
-nni3ki
-nnov3
-n5nyi
-4no.
-n5obi
-no5bil
-nob4l
-no5blem
-nobser4
-n5ocula
-no4di
-n4ody
-noe4c
-no4fa
-nois5i
-n5ol.
-no3la
-nol4i
-nom3al
-1nomi
-no2mo
-4none
-3nonic
-5nood
-nop5i
-nora4t
-nor5di
-nor4ia
-nor4is
-nor3ma
-n4oro
-nor4t
-n4os.
-nos4o
-no3sp
-not1a
-3note
-n1ou
-n4oug
-3noun
-2nous
-nou5v
-nova4l
-nove2
-nov3el
-novel5e
-n4ow
-now5er
-now3l
-n3p4
-npil4
-npla4
-npoin4
-npo5la
-npos4
-npri4
-n1q
-n4quef
-n1r
-nre4i
-nre3m
-nres5tr
-4n1s
-ns2c
-n2sco
-ns3cot
-n4scu
-n5sec
-nsec4te
-n2ses
-n5seu
-n3sh2
-n2si
-ns3ib
-n4sic
-n5sick
-n3sid
-n3sie
-ns5ifi
-ns3ing
-n3sio
-n3s2is
-nsi2t
-ns3iv
-nsolu4
-n5son
-n4sore
-n4sory
-n3spir
-n3s2t
-nsta4
-nstil4
-n3su
-nsur4e
-n3swa
-ntab4u
-nt3age
-nt1al
-n4t3anc
-nt5and
-ntan5eo
-n4t3ant
-nt4ariu
-n5tasis
-nt3ast
-nt1at
-nt5ath
-nt3ati
-nt5ativ
-n5tau
-n1te
-n4tec
-n4tee.
-n4tees
-n3tel
-ntend5en
-n4teo
-n4ter.
-n3teri
-n5tern
-ntern5al
-nter5nat
-nth2
-n1the
-nther5
-nth5ine
-nt2i
-nt4ib
-n4tic.
-n5ticis
-n5ticiz
-n4tics
-ntic4u4
-n3tid4
-n1tie
-n4tify.
-n3tig
-nt5ilati
-n5till
-nt3ing
-nt5ing.
-nti3p
-n4tipar
-n4tis.
-nt3ism
-nt3ist
-n5titio
-nt3iz
-n2tj
-n1t2o
-n3tom
-ntoni4
-n5top
-n1tr
-ntra3d
-nt3ral
-n4trant
-n3trat
-nt5ress
-nt3ril
-ntrol5ler
-n5trym
-n1tu
-n3tua
-ntub5
-ntup5li
-n5tur
-n2ty
-n2u
-nu1a
-5nuc
-3nud
-nud5i
-nu3en
-nug4a
-nu3i
-nu4is
-5nuk
-n4ulo
-n3ult
-nultim5
-nu1me
-5numenta
-5numer
-5numi
-3nunc
-nu3tat
-n5utiv
-nu4to
-nu1tr
-n3v2
-nve2
-nvel3
-nven4e
-nven5o
-nvers5an
-nvi4t
-nvoc5at
-n5w
-nwin4
-nwom4
-n2x4
-2ny2
-5nyc
-nym5it
-nyth4
-n1z2
-nzy4
-2oa2
-o5ace
-o3act
-oad5er
-oad5i
-o3ag
-oak5er
-o3ales
-oal4i
-oal5in
-o5alit
-oan4t
-oap5i
-oar5er
-oar4se
-oast5er
-oat5a
-oat5ee
-oat5er
-4oba
-obe4l
-ob2i
-ob3ing
-2obi3o
-ob3it
-o3bla
-ob1li
-4obo
-ob3oc
-o5bol
-o5bot
-o3bra
-obrom4
-ob5t
-ob3ul
-o3bus
-2oc
-oc2a
-o4cab
-o3cad
-oc5ag
-o5calli
-o4c5ativ
-oc5ato
-4o3ce2
-o4cea
-ocen5o
-ocess4i
-och4e
-och5in
-o3chon
-ochro4n
-o5chu
-oci3ab
-oci4al
-o1cl
-o2cle
-o1cr
-ocre3
-oct2
-oc2te
-oc1to
-ocu4lu
-ocum4
-oc5uo
-ocuss4
-ocus5si
-ocut5r
-o1cy
-o5cyt
-ocyt5o
-od3al.
-ode4c
-o5deg
-ode4ga
-o5dend
-o3dent
-odes4
-od3ica
-o4d1ie
-od3iga
-od4il
-od1is2
-odis5ia
-od5it
-5odiz
-od3li
-o2do
-od5olo
-od5ous
-o3dro
-od5ru
-o2du
-odu5cer
-o4duct.
-o4ducts
-od3ul
-o5dyt
-oe3a
-oe4bi
-oe5cu
-oe4d
-o5ee
-oe5ic
-o3elec
-oelli4
-oelo4
-oe3o4p
-oep5
-o5eq
-o3er
-oes3t
-o1et
-o4et.
-oet3i
-oet4r
-3oeu
-o3ev
-o3ex
-oflu4
-4ofo
-o4ful
-ofun4
-2o1g
-o2ga
-o3gam
-og5ar5
-o3gas
-ogen1
-o5gey
-o3gi
-o4gio
-og2na
-ogoni4
-o4got
-o2gri
-o4gro
-og4sh
-o2gu
-o5gyr
-o1h2
-o3ha
-ohab3
-o3he
-oher4er
-o3ho4
-ohy4
-2oi
-oi4c
-o3ic.
-oi5ch
-o2i4d
-4oide
-oig4
-oi5ki5
-oil3er
-oil5i
-oin3de
-o3ing
-oin4t5er
-oin4tr
-oi4o
-4ois
-o3ism
-oi4t
-oit4al
-oith4
-o1j
-ok4ine
-ok3l
-ok5u
-ola4c
-o4lack
-o5lali
-ol4an
-olan5d
-ol5ast
-olat5er
-ol5ch
-ole2c4
-ol5eci
-ol5efi
-o3leo
-ole4on
-o3lep
-ol1er
-o3lest
-o3leu
-o1lia
-ol3ica
-o3lice
-ol5iciz
-ol5ick
-ol3ics
-ol5id.
-oli2e
-o3lier
-ol5ies.
-o5lif
-oli4f3e
-oli5go
-o5lina
-ol3ing
-oli5os
-ol5ip4
-olis4
-ol2it
-olle2
-ollim3
-ol4lope
-ol4lyi
-ol3mi
-o1lo
-4oloc
-ol3oid
-o4lona
-olon5el
-ol1or
-o3los
-ol1ou
-4ol1ub
-o3lumi
-o5lunte
-ol3us.
-oly3ph
-4olyt
-2om
-o1ma
-o4mab
-o2mac
-o2mal
-o4mane
-omast4
-o3mat
-om4be
-ome4d
-ome4g
-omeg5a
-ome3li
-om3ena
-omen4t
-o3meri
-om1i
-o3mia
-omi2c
-omic5r
-om4ie.
-omil4
-om4iny
-omiss4
-om2it
-omme4
-om2na
-omni3
-o4moi
-omoli3
-o2mo4n
-om5ony
-o4mos.
-omot5iv
-o2mou
-om5pil
-ompt5er
-ona4d
-on3ai
-o5nas.
-onast5i
-on5ativ
-4onau
-on1c
-oncat3
-on4cho
-5ond5ar
-ond5ent
-on3der
-on3dr
-on5dy
-o2ne
-4onea
-onec4r
-4oned
-on1ee
-on5ell
-o3neo
-on3ess
-on1et
-ong3at
-on4gu
-4onh
-4o1nia
-on5iar
-2oni4c
-onic5a
-onical4
-on4id
-on3ies
-on3if
-o5nig
-o1nio
-onk4s
-4onnes
-on5odi
-on5oi
-ono4mi
-4o5nomic
-ono3s
-o5nota
-ons2
-2ont
-ont5ane.
-on4ter
-onti5fi
-onton5
-ont4r
-on4tre
-on5ur
-o5nus
-onvo5lu
-on2z
-2oo
-oof3er
-oo1i
-ook3er
-ook3i
-oo4le
-ool5ie
-oo4m
-oon3i
-oo2p
-oop4ie
-o3opt
-oo4se
-oost5er
-oo2t
-oot3er
-ooz5er
-o1pa
-o4pab
-o5pali
-opa5ra
-opath5
-o5pec
-opens4
-op1er
-3opera
-4operag
-o1pha
-o4phe
-oph4ie
-o5phil
-op5hol
-o1phy
-ophy5la
-op1i
-op3ies
-op5ing
-o3p2it
-4opl
-oplast4
-o4poi
-opol3i
-opon4
-op5ony
-op5ori
-opoun4
-o2p5ov
-op2pl
-op5pli
-oprac4
-op3ran
-opre4
-opro4l
-op5rop
-op5so
-1op1t
-op2ta
-op1u
-o5quial
-or1a
-or5ado
-ora4g
-o5rai
-or5al
-4orals
-oram4
-oran3e
-orator5
-orb3in
-or4ch
-orch3i
-or4du
-2ore
-or5ead
-ore5ar
-ore5ca
-ore3f
-ore3g
-or3ei
-oreo5l
-or3esc
-ore3sh
-or3ess
-orest5at
-or5este
-or5ett
-ore4v
-5orex
-or4fr
-or5gn
-or1i
-4ori.
-or3ia.
-4orian
-ori4ci
-ori5cid
-orien4
-or3if
-5orig
-ori5ga
-ori4no
-4orio.
-or5ion
-4orios
-ork5a
-2orm
-orm1i
-or3n4a
-5ornis
-or3nit
-or3one
-o5roo
-or5ose
-or5oso
-or1ou
-orrel3
-orres3
-or4sc
-or4sey
-or4sti
-2ort
-ort3an
-ort3at
-ort3er
-or5tes.
-or3thi
-or4thr
-or4tit
-ort3iz
-or4tor
-or5tra
-ort3re
-4or1u
-or4un
-ory5p
-osa5i
-os3al
-osar5
-o1sc
-os4ca
-os4ce
-o2sch
-o4sci
-osclero5s
-o3sec
-osec3u
-ose5g
-os5enc
-osens4
-os5eo
-oser4
-o2set
-os5eu
-o3sia
-osi4al
-osi4an
-os5ide
-o3sier
-os5if
-os1in
-o4sis
-o5ske
-o5son
-o3soph
-os3opo
-4osp
-o3spec
-os1pi
-os4sa
-oss5ar
-os4sit
-4osta
-ost5age
-os4tar
-os5tee
-os5ten
-osten5t
-ost5ica
-os3til
-o5stome
-ost3or
-4osu
-os1ur
-2ot
-ot3a4g
-o5talit
-ot3am
-ot4anic
-o3tap
-ot4atio
-o5ta5v
-o3tax
-o4ted
-oter4m
-ot5esta
-4oth
-othalam5
-oth5erin
-o5therm
-otherm5a
-o5thor
-o5tia
-o5till
-5ot5iniz
-ot4iv
-o3tiva
-o5tivi
-o1t2o
-o5tone
-o4torn
-o4tou
-4o1tr
-oturi4
-oty3le
-o4u2
-5ou3a
-oub2
-ou5br
-ou5ca
-ou5co
-oud5i
-4oue
-ou3et
-oug4
-ou5ga
-ought5i
-ou5gi
-oul4t
-oult5i
-ou3m
-2oun
-oun2d
-ound5a
-ound5el
-oun5gin
-oun3tr
-oup5li
-our3er
-ou5san
-2ouse
-5ousia
-ouss4
-out5ish
-ouv5a
-ova3le
-o5var
-4ovati
-ov5eling
-o4ver.
-over3b
-over3s
-ov4ete
-ovid5en
-o1vis
-ovis5o
-o2v5os
-ow3ag
-ow3an
-o5way
-owd4i
-owd3l
-ow1el
-owel5li
-ow5ha
-owhith4
-ow1i
-ow5in
-owi5ne
-ows4
-ow5sh
-ow5sl
-ow5y
-o4x
-ox3i
-oxic5ol
-ox5o
-2oy
-oy5a
-oys4
-2oz
-o1zo
-ozo5i
-o3zyg
-4pa.
-pac4te
-pa5dou
-pad4r
-paes4
-pa3gan
-4pagat
-pag4ati
-pain2
-4pairm
-pa5lan
-pal3in
-pa3lo
-p4als
-pan5ac
-pan1e
-pan3i
-pa4pa
-pa3pe
-pap3u
-pa3py
-1par
-para5s
-par3l
-pa3roc
-pa3rol
-par5on
-1p4as
-pass5ive
-pas1t
-pas4tin
-pa3ter
-pati4n
-p5ato
-pat4ric
-pa5tricia
-5pau
-paul5e
-pau3p
-pa5vil
-5paw
-pawk4
-paw5ki
-2p1b
-p1c4
-p5d2
-2pe.
-pearl5i
-pe4co
-pec4tu
-2ped
-5ped3a
-3pede
-3pedi
-ped3is
-3peds
-pe2du
-p4ee
-pe2f
-4pele
-pe5leo
-pel5v
-pen4at
-5p4enc
-pend5er
-pen5dr
-pen4ic
-3p4enn
-pens5ati
-pen5u
-pe5on
-5perc
-percent5
-4pere
-perem5i
-p4eri
-5p4er3n
-p3eron
-per4os.
-per5tin
-pert5is
-per3v
-p4ery
-2pes
-pes4s3
-pes5til
-3pet
-pet5all
-pet3en
-pe2ti
-pet3r
-pe4wa
-4pex
-p1f
-p5g
-2ph.
-4phae
-pha5ged
-ph5al.
-ph2an
-phant5i
-phe4
-ph5esi
-ph3et
-3phib
-4phic
-1phil
-phi4n
-ph1is
-phi5th
-ph2l
-1pho
-4phobl
-4phoned
-3phor
-ph5oriz
-phos3p
-ph3ou
-3phra
-4phs
-1phu
-phu5i
-2phy.
-3phyl
-4pi.
-3piar
-4pica
-p5ical
-pi3co
-pi4cr
-pict4
-p2ie
-p4iest
-pi5eti
-p5ifie
-pig3n
-p2il
-3pile
-pill5in
-5pilo
-pi3lot
-pim2
-pin4e
-pin5et
-3pinge
-p4inn
-5p4ins
-3pi1o
-pip4a
-pi4pe
-5piq
-pir5ac
-pir4t
-p4is.
-p4isc
-pis2s
-piss5a
-pis5til
-pis4tr
-p2itu
-2p3k2
-p2l2
-1pla
-pla5no
-plant5er
-plas5tici
-pla5t4o
-4ple.
-4pled.
-3pleg
-3plen
-2ples
-4plism
-4plist
-plu2m
-plum4be
-plumb5er
-p4ly
-2p1m
-2pn
-pnos4
-1po
-4po.
-po3ca
-3pod
-4pof
-2p5oid
-pois5i
-po5lemic
-po4ly1
-poly3s
-poman5
-pom4e
-p4o2n
-pon4ac
-pon4ce
-pon4i4e
-3ponif
-pon5ta
-2pony
-po4pa
-po5ple
-4porato
-por3ea
-4pored
-pori4f
-por3p
-3port
-por5tie
-3p4os
-pos1s2
-po1te
-poult5e
-pound5er
-pout5er
-p5oxi
-5poy
-4p1p2
-ppar3
-pparat5
-p4pene
-ppet3
-pph4
-ppi4c
-p4pled
-p5pler
-p5plet
-ppress5o
-pprob5a
-1pr2
-prac1
-pra5d
-prar4
-4pre.
-preb3
-pre1d
-pref5ere
-prel5ate
-3prem
-pre5mat
-pren3
-pres3a
-pre5scin
-p3rese
-5pressi
-5prici
-pri4es
-4pri4m
-pring5er
-pring5i
-4prio
-p5riol
-pri4os
-pris5in
-priv2
-4priva
-4pro.
-pro3bo
-p3roc3a
-pro4ch
-pro1l
-pron4a
-proph5e
-propyl5
-pro3r2
-pros4i
-pros5tr
-pro3th
-4pry
-2ps2
-p3sac
-psal5t
-p3sh
-p1si
-p5sin.
-pso3m
-p1st
-psul3i
-3psyc
-2pt2
-pt3ab
-p4tad
-p4tan
-p2tar
-pt5arc
-p1ted
-p5tena
-pt5enn
-5ptery
-p5tet
-pt4ic
-p5tie
-p3til
-p2t3in
-pt4ine
-p3tise
-p5tisi
-p5tom
-p4tr
-p1tu
-pub1
-pu5be
-puc4
-puch4
-pudi4c
-pu5er
-puff5er
-pu4lar
-pu5lar.
-pu5lis
-p4u4m
-pum4o
-p4un
-pun4a
-3punc
-pun5gi
-pun3i
-pun2t
-pu3pi
-pur5b
-pur3c
-p4us
-push4ie
-pu3tat
-p5u5tis
-pu3tr
-4p1w
-2p4y
-py3e
-3pyg
-3pyl
-pyr3e
-py5t
-4qf
-qu4
-5quak
-4quar
-qua5tio
-2que.
-3quera
-4quere
-4ques.
-1quet
-5quina
-5quir
-3quito
-4quitu
-4ra.
-ra3ba
-5rabe
-3ra3bin
-r2abo
-ra3bol
-rac4a
-r2acu
-rac5ula
-ra5culo
-r2ad
-ra4de
-rad4ine
-rag5ou
-ra3gr
-3raill
-ra5ist
-4ralia
-ra3ly
-r5amn
-ra3mu
-r4andi
-ran5dish
-ran4du
-ra5nee
-ran4gen
-ra3nia
-ra3noi
-ran2t
-ran5ted
-5rantel
-rant5in
-rant5o
-rapol5
-rap5to
-4rarc
-rare2
-rar3ef
-rar5ia.
-ras2
-ras3c
-r2ase
-r4ask
-ra3so
-rass5a
-rass5in
-r4as5te
-ra5tap
-ra5tat
-rat5eu
-rath4e
-rat3if
-rat4in.
-ra5toc
-5ra5tol
-4r4atom
-ra4tos
-ra5tui
-rat5um
-rat3ur
-rav5ai
-rav5eli
-rav3it
-rawn4
-ra3zie
-r1b
-r2ba
-r4bag
-rb3ali
-rb1an
-rbar3
-r2be
-rbe5c
-r3bel
-rbel5o
-rb3ent
-r4bes
-rb2i
-rbic4
-rbic5u
-r2bin
-r5bine
-rbit1
-r2bos
-r4bum
-rbu5t4
-r1c2
-rcant5
-rca4s
-r4cele
-rcen5er
-rcen5tena
-r2ces
-rcha3i
-rch3al
-rch5ard
-rch5ate
-r3cheo
-r4cher
-rch4ier
-r4chin
-rch3is
-r3chit
-rcil4
-rci5nog
-rcis2
-rciz4i
-r2cl
-r4cle
-r5clo
-rcolo4
-rcrit5
-rcriti4
-rct4
-rc5ti
-r5dam
-r4d1an4
-rd4an.
-r2dar
-r5de4l
-r3dens
-r4des
-rd5ess
-rd5ian
-r4die
-r5dig
-rd2in
-rd3ing
-rdi3o
-rd1is2
-rd5ler
-rd3li
-r4dol
-rd5ous
-r2e
-4re.
-rea4
-r4ea.
-react5iv
-re3af
-re3ag
-re5alt
-re5amb
-re3ani
-re5ant
-re5asc
-reas3o
-r5eau
-3reav
-r5ebrate
-reb5uc
-re3cal
-rec4ce
-re3ce
-reced5en
-re3cha
-reci5si
-r4e1c2r
-rec4t3r
-re3cu
-2r4ed
-re1de
-re3dis
-re4dol
-re1dr
-reed5i
-ree3m
-3reer
-re2fe
-re3fin
-re5gali
-re5gra
-re3gre
-reg3ri
-re3gro
-reg3ul
-rei4
-re3if
-re1in
-re3is
-reit3
-reit4i
-re1la
-re1le
-4reled
-re3lia
-rel3ic
-re5lig
-reli4q
-rel3li
-r5em.
-rem5ac
-reman4d
-rem5ato
-r3emp
-rem5ul
-rena4
-ren5at
-r4endi
-rene2
-ren4es
-r4eni
-renic5
-ren4it
-ren4ter
-re5num
-re3oc
-3reog
-re5ola
-re3oli
-3reos
-re1pe
-re4per
-re5ph
-rep5id
-re3pin
-re3ple
-re4pre
-re1q
-rer4a
-rere4
-re5rea
-re3r2u
-2res.
-re3scr
-re3sel
-re3sem
-re3ser
-res5ist
-re5sit
-re3spe
-r3esq
-re5stal
-rest5er
-re5stu
-3retar
-re3ten
-re4t4er3
-re5term
-re1t2o
-re5ton
-re3tra
-re3tre
-re5tri
-re3tu
-re3un
-reur4
-re1v
-rev3el
-revi4t
-r1f
-rf4l
-rfu4m
-r1g2
-r4gag
-rgal4
-r2ge
-r5gee
-r4gene
-r3geo
-r3ger
-rg5li
-rgu5f
-rh2
-r5hel4
-rhe5ol
-rhos4
-3r2hy
-4ri.
-ri3am
-ri5ap
-2r2ib
-ri3bo
-rica5tu
-2rice
-rich5om
-rick4en
-r4icl
-ri5cli
-ri3col
-ri5cor
-ri4cra
-2ricu
-rid4al
-rid4e
-ri5el
-ri3er
-ri2es
-rift5er
-rif5tie
-5rifuga
-ri5gam
-rig5ant
-ri5l4a
-r4ile
-rill5er.
-rill5ings
-4rim.
-ri2ma
-rima4g
-rim5an4
-rim3at
-r4imb
-rimen4
-4rimm
-4rims
-rin4e
-r4inet
-ring5ie
-rink5er
-r4ino
-rin4s
-rins5i
-rin4t5er
-ri3o
-rio4g
-5rione
-ri4op
-ri5or
-ri5p2a
-ri5pie
-rip5lica
-ri5r
-ris4c
-ris4is
-r2isp
-ris4pa
-ris4pe
-ris5ter
-4risti
-ri3ton
-r5it5r
-r2i4v
-riv4al
-ri5vall
-riv5eli
-riv3en
-riv3il
-5ri5zo
-r1j
-r2k
-r5kas
-rk5ati
-r5kell
-rk5eni
-rk1er
-r3ket
-r3key
-r3kier
-r5kiest
-r5kin.
-r5kins
-rks4me
-r1la
-rlat3
-r1le
-r3l4ic
-r3line
-r5lins
-r4lit
-r1lo
-r3mac
-rma5ce
-r5mad
-r2mal
-r4manc
-r4mano
-r4mari
-r4mary
-rm4as
-r4m3ati
-rma5toc
-r5ma5tol
-rme2a
-r2mic
-rm4ica
-r5m2id
-rm4ie
-r5mig
-rmil5
-rmin4e
-rm3ing
-r4ming.
-r4mite.
-r3moc
-rmol4
-r1mu
-rmu3li
-r2n2
-rn3ab
-r3nac
-r5nad
-rn5ar
-rn3ate
-rn5atin
-rn5edl
-r3nel
-r3ness
-rn5est
-r3net
-r3ney
-r5nia
-rn5ib
-r3nic
-rn3in
-rn4ine
-r1nis
-rn3ist
-rni5v
-rn3iz
-rn5n
-r3noc
-r5nog
-rnt4
-rnuc4
-r5nut
-4ro.
-ro4be
-rob3le
-ro5br
-5rocc
-ro3cu
-r2od
-ro3do
-rody4n
-ro1fe
-ro3gn
-4roi
-ro3ic
-roid3
-ro3la
-r4oled
-rol5ite
-ro3ly
-romant4
-ro5mel
-ro3mit
-romolec5
-rom4p
-ro3mu
-ron4ac
-4ronal
-ro5nate
-ron5ch
-ron4do
-rong5i
-r5onme
-ro1no
-ron4ton
-roo4
-1room
-5root
-r2op
-4rop.
-ro3pel
-rop4ine
-r4opr
-r5opte
-ror5d
-4rore
-r4osa
-rosi4a
-ro5sol
-4ross
-ro5stat
-ros4ti
-ros5tit
-ro3tat
-ro1te
-ro4ter
-ro3tu
-5roue
-roul3
-round5er
-rou5sel
-4rouss
-r4out
-r4ow
-row3er
-4rox
-rpass5in
-rp3at
-rpe2
-r3pent
-rp5er.
-r2ph
-rph5e
-r3phol
-rp3ing
-rp5is
-rpol3a
-r2p5ou
-rpre4
-rpret5er
-r3pu
-r1q
-4r1r4
-rra4h
-rran5gi
-rrap4
-rre2l
-r4reo4
-rrhe3
-r3ri
-rric4
-rricu4
-rri4fy.
-rrin5ge
-rri4os
-rrob3
-rrog5
-rro4t
-r5ru
-rry5
-r3ryi
-r3rym
-2r1s2
-r4sag
-r2sal
-r5salis
-r5saliz
-r2san
-r4sar
-r2se
-r3sea
-r3sec
-rsel4
-rsell5
-rs3er.
-rs3ers
-r3set
-r3sha
-r3shi
-r4shie
-r5si2a
-rs3ib
-r5sie
-r4sil
-rs3ing
-r3sio
-r4sit
-rs3iv
-rs5li
-rstor4
-rstrat4
-r3su
-r4sus
-rswear4
-rt2
-rt3ab
-rta4g
-rt3age
-r3tar
-r4tare
-rt3c
-r1ted
-r4tedl
-r3tel4
-r5tend
-rt3eni
-r5terer
-r5tet
-r5teu
-r4thene
-rth2i
-rth5ing.
-rth3ri
-r1t4ic
-r4ticl
-r5tiet
-r5tila
-r5till
-rtil5le
-rt5ily
-r2tin
-r3tina
-rt3ing
-r3titi
-rti5tu
-rt3iv
-r2tiz
-rt5let
-rt3li
-r1t4o
-rto5l
-rt5rid
-rt5si
-r1tu
-r4tus
-rtwis4
-ru3a
-r4ube
-rub3r
-ru4ce
-r2ud
-rue4l
-r4uf
-ru3in
-ruis5i
-ru2l
-r4ume
-r4umi
-ru4more
-run4cl
-runcu4
-runcul5
-run2d4
-run2e
-ru5net
-run4g
-run4t
-ru2p
-rup5lic
-ru3pu
-rur4i
-rus4p
-rust5at
-rust5ee
-rus5tic
-rus4t5u
-ru3tal
-ru3ti
-r1v2
-r4vanc
-r2ve
-rvel4i
-r3ven
-rven4e
-rv5er.
-rv5ers.
-r3vest
-r3vet
-r3vey
-rvi4t
-r1w
-2r2y
-ry5er
-5rygm
-ry4go
-rym4b
-3ryngo
-4ryngol
-ryp5a
-ry2t
-ryth4i
-r2z
-2sa.
-2sab
-s3abl
-5sack
-sac4q
-s3act
-sac4te
-sad5i
-sad5o
-5sae
-sa4g
-3sai
-sain4t
-5sak
-sa2l
-sa5lac
-3sale
-sa3lie
-s4al4t
-sa3lu
-sa4m
-sa5min
-sam5o
-samp4
-san3a
-san4ded
-s4an4e
-san5gar
-san5if
-2sant
-sant5ri
-s3ap
-sap3r
-sar5s
-3sas.
-sas3s
-sassem4
-s2a1t
-sa2te
-s5ativ
-s5atory
-sat1u
-1sau
-sau5ci
-saur5
-savi2
-sa3vou
-4s3b
-s4bei
-sbe4s
-sby3
-sc2
-s1ca
-sca5len
-sca2p
-scar4c
-scav3
-s1ce
-s4ced
-4scei
-4s4ces
-sch2
-scid5
-s2co
-scof4
-s4coi
-3s4cope
-5scopic
-5scripti
-2s1cu
-4scura.
-4scuras
-2s1d2
-2se.
-se2a
-s4eam
-seas4
-sea3w
-sec4a
-sec5an
-se2co
-secon4
-2sed
-se4da
-sed4it
-3seed
-3sei
-sei3g
-5sela
-4sele
-se3lec
-selen5
-5self
-2s4eme
-sem2i
-semi5d
-sem4o
-sen5g
-3sens
-sen5sati
-sen5sori
-sent5ee
-5sentm
-seo5log
-se2p
-sep3a
-sep4si
-3sept
-sep3ti
-ser4an
-se5rene
-ser4to
-4servo
-s2es
-4ses.
-se5sh
-s5esta
-1set
-5seum
-3sev
-sev3en
-sewo4
-3sex
-sexo2
-3sey
-2s1f
-sfact5o
-sfi4
-sfor5e
-sfran5
-2s1g4
-s2h
-4shab
-sh4abi
-sh1er
-sh5et
-shil5li
-sh5iness
-sh3io
-5ship
-s3hon
-4shu4
-shys4
-si4all
-siast5
-4s1ib
-s3icat
-3sicc
-2s5icl
-si4cu
-si5cul
-s4id
-4sid.
-si4de
-side5l
-sid3en
-sid5eri
-4sids
-5sid5u4a
-si4ers
-sif4
-sif5f
-si4g
-1sili
-sim4ply
-2sin
-s2ine
-sin5et
-5sing5er
-sin3i
-5sink
-si5nol
-si3nus
-1sio4
-4sio.
-si5o5s
-3sip
-si4pr
-s1is2
-4sish
-4sism
-sist3a
-sist3o
-s1it
-si4te
-sit5om
-4s1iv
-5siva
-s1j
-s2k2
-4sk.
-s5kar
-ske2
-s3ket
-s5key
-s3kier
-s5kiest
-sk5ily
-sk5ines
-4sks
-sky3l
-2sl4
-slang5i
-s1lat
-3slau
-slav5eri
-s2le
-s5lea
-s3let
-s5ley
-s3lit
-slo3c
-slov5
-s5luc
-2s1m4
-s3man
-smas4
-s3men
-smi3g
-3smith
-smo4d
-smu5tatio
-s1n2
-s2na
-2so.
-2s3od
-sod3o
-sody4
-3soe
-4s3oid
-s2ol
-sol3a
-so5lan
-sol4er
-so3lic
-3solve
-solv5er
-1so2m
-soma5to
-3some.
-so5mete
-so3mo
-s2ona
-son5at
-s4one
-son5or
-s2o2p
-4sor3ie
-5sorio
-sor4it
-s5oriz
-sor3o
-s3ory
-sos4
-4sose
-so5th
-3sou
-sov5e
-so3vi
-spast4
-spens5a
-4speo
-3sperm
-s5pero
-spers5a
-sph2
-s3pha
-3spher
-spic5ul
-s2pid
-sp5id.
-s5pier
-spil4l
-s2pin
-sp3ing
-spi5ni
-spital5
-s1pl
-sple2
-s4ply
-s2po
-5spom
-spon5gi
-3spons
-3spoon
-spru5d
-s4py
-s1r
-sre2
-sreg5
-srep5u
-sre4s
-4ss
-s1sa
-s5sam2
-s1sel
-s5seng
-s3sent
-ssent5er
-ss3er.
-s5seri
-ss3ers
-s5seu
-ssev3
-s3sia
-s1sic
-s1sif
-ss1in
-ss4in.
-s4sine
-ss4is.
-s3s2it
-ss4ivi
-ss5li
-ss3m
-s4sn
-s1so
-ssol3u
-ssolu4b
-s4sore
-ssor5ial
-ss5po
-s1su
-ss3w
-st2
-4st.
-stab2
-sta3bi
-4stak
-s4tale
-stant5iv
-s3tas.
-5static
-st3c
-ste2
-ste5ar
-ste5at
-s4teb
-s4tec
-4s1ted
-s4tedl
-s4tedn
-4stere
-ster4ia
-s4tern.
-s3tero
-st5est
-s1th
-s4tha
-s4thu
-s3ti3a
-3stick
-s3ticu
-stil5ler
-s4tily
-st3ing
-5s4tir
-s5tiz
-4stl
-st3ler
-st3li
-s4toe
-3ston
-stone3
-ston4ie
-s5torat
-stor5ian
-s4tose
-s2tou
-s4tray
-stre4
-strep3
-3struc
-stru5d
-2st3s
-s1tu
-s4tud
-stu4m
-stur4e
-4stw
-s4ty
-1styl
-4su.
-su5an
-su4b1
-subt2
-suct4
-sud4a
-su3et
-suf3f
-sug3
-3sui
-sui5c
-su5ing
-1s2ul
-s4u2m
-sum3i
-sun4a
-su5pe
-su3pin
-supra3
-sur4as
-sur3c
-s4urg
-sur3pl
-su5su
-su5z
-2s3v
-svers5a
-sves4
-svest5i
-sw2
-5swee
-swell5i
-4swered
-2swo
-s2y
-4sy.
-sy4bi
-sy1c
-sy4ce
-sy4chr
-sy4d
-1syl
-3syn
-syn5e
-sy5pho
-syr5i
-2ta.
-2tab
-ta5blem
-3tabli
-t2abo
-ta3bol
-ta4bou
-t4a3ce
-ta5chom
-ta3chy
-ta4cid
-t5ade
-tad4i
-5t2adj
-ta5dor
-tad2r
-tae5n
-taf4
-tage5o
-ta5gog
-3tagr
-3tah
-1tai
-3tail
-2tair
-t4ais
-1tak
-tal2c
-tal5ent
-ta5lep
-t4alia
-t4alin
-tal4l3a
-5tallu
-t2alo4
-ta3ly
-tam5ari
-5ta3met
-tamorph5
-tan5at
-tand5er
-t4ane
-5tanel
-tan5ie
-t5aniz
-tant5an
-ta4pa
-1tard
-tar5ia.
-tark5i
-tar3n
-3tarr
-tas3i
-t3asm
-5tass
-tas4t
-ta3sta
-tast5i4c
-t4ateu
-3tatis
-t4ato.
-tat4ou
-tat4r
-tat3ut
-tau3to
-t5awa
-tawn4
-t4ax
-4t3b
-2tc2
-t1ca
-tcas4
-tch5ett
-tch5u
-4t1d4
-4te.
-te5cha
-5techn
-te3cr
-t4ed
-te5d2a
-4tedd
-4tedo
-4teei
-te2g
-5tegic
-t3ego
-teg1r
-teg3u
-tei4
-te2l
-4teled
-tel5iz
-1tell
-4te3lo
-3tels
-tem3a
-4teme
-te5mon
-ten4ag
-4tenar
-4tene
-t5enm
-5tenna
-4teno
-te5nog
-tent4a
-te2o
-teo5l
-2tep
-te3pe
-tep5i
-tera4c
-t4erag
-t4erato
-3ter3b
-5terd
-2tere4
-ter3eb
-ter5ec
-5terel
-te3reo
-3teres4
-1teri
-ter3ia
-ter5id
-ter5if
-t4erin
-ter5iorit
-ter3it
-ter5k
-5ternit
-ter5no
-3terr
-2t2es
-4tes.
-tesi4
-t3esq
-t3ess.
-t5esses
-tes4t
-test3a
-5teste
-test5er
-test5in
-test5or
-tes5tu
-teti4
-tet1r
-tetr5o
-tew3ar
-3tex
-2t3f
-t3g
-2th.
-tha4
-th5al.
-thal3m
-4the.
-4thea
-th5eas
-4thed
-1thei
-3theo
-theo3l
-t4her
-5therap
-th5erc
-t5herd
-4thered
-th3ern
-th3ery
-4thi.
-t5hill
-3think
-5th4io
-th4is.
-th5lo
-2thm2
-th4mi
-th3oli
-4t5hoo
-4thopt
-4thores
-3thot
-5thoug
-1th2r
-2ths
-5thur
-5thym
-3thyr
-thys4
-4ti.
-1ti2a
-ti3ab
-2t3ib
-5ti5bu
-t1ic
-t3ic.
-tic5as
-t2ici
-tici5ar
-3ti3cin
-t4icity
-ti3col
-tic1u
-4ticule
-t3id.
-t4ida
-3tidi
-ti3die
-t5ids
-3ti2en
-1tif2
-ti3fe
-4tiff
-4tific.
-3tigi
-tigi5o
-4tigm
-5tigu
-ti4ka
-ti4let
-5tilin
-t4ill
-til4l5ag
-t4ilt
-1tim
-tim1a
-5timet4
-t1in
-5ti5nad
-4tined
-tin3et
-ting5ing
-3tinn
-4tins
-t4int
-tin4te
-tin5ted
-tint5er
-tin3ue
-1tio
-ti3oc
-tiol3a
-ti5omo
-4tionem
-1tip
-ti5plex
-ti3pli
-ti4q
-ti5qua
-t3iris
-2t1is
-3tisan
-tis4c
-tish5i
-3tiss
-tis2t
-5t4iste
-t4istr
-ti5t4an
-tith4e
-tit5il
-t3itis
-3titl
-ti3tra
-3tiu
-2t1iv
-tiv5all
-t3ive
-tiv3is
-2tl
-t1la
-tlant4
-5tleb
-5tledr
-3tlef
-3tlem
-5tlen
-5tletr
-5tlew
-t1li
-tlin4
-4t3m
-tmet2
-tmo4t5
-2t3n2
-t4nere
-2to.
-toas4
-to1b
-4tocc
-tode5c
-tod4i
-to5do
-3toe
-1tog
-2t3oid
-5tok
-4toled
-tol4l
-tolu5
-to5ly
-tom3ac
-toma4n
-tomat5ol
-tom4b
-to4mog
-tom5os
-ton4e
-ton5ea
-3tonn
-ton3s
-top4e
-to5pia
-to4pos
-t1or
-to5rad
-4tore
-tor5er
-tori4as
-tor5oi
-tor5p
-tor4q
-3tos.
-to3s4p
-tos4t
-to5str
-to5talis
-to5taliz
-to3tem
-tot5u
-tou4f
-5tour
-t3ous
-4tov
-to3war
-t3p
-tr2
-tra4co
-4tradd
-4traist
-tra5q
-trarch4
-tra5ven
-tra5vers
-trav5est
-3tray
-4tre.
-4tred
-tre4mo
-tren4
-trend5i
-tre5pr
-tres4s
-4trew
-t5ricl
-3tricu
-t2rie
-tri5fli
-trifu5ga
-2tril
-tri3li
-tri3me
-t2rit
-4trix
-t4rod
-tro5f
-5troop
-tro4pha
-tro3sp
-t2rot
-t5roto
-tro1v
-3troy
-t4ruc
-tru3i
-2t4ry
-trys4
-4t1s
-t2sc
-ts4h
-ts2i
-t4sil
-tstay4
-2t1t4
-tta4
-t3tab
-t5tan
-t5tas
-t3ted
-t4tere
-t5terer
-t5test
-t3ti
-tti3tu
-ttitud4
-ttitu5di
-t3tler
-t3tli
-t5toi
-t5tor
-t3tos
-tt5s
-t4tupe
-t2ty
-4tu.
-tu1a
-tu4al5li
-tuari4
-tu4bin
-tu5bu
-tu5den
-tud5ie
-tu5en
-4tuf
-tu1i
-tu4is
-2tum.
-3tumi
-4tums
-3tun
-tun4a
-tu4ne
-tun5it
-tup5let
-tup5lic
-tu5rac
-t4uran
-turb3a
-tur4d
-turf5i
-5turit
-tur4n
-5tur5o
-1tut
-4tut4iv
-t1w
-t3wa4
-t2wi
-twi5li
-t3wit
-t3wo
-twon4
-4ty.
-ty4a
-5tych
-ty4let
-tyl5i
-ty5mi
-1typ
-3type
-1tyr1
-2tz2
-t5zia
-t5zie
-2ua2
-ua3ci
-u2ag
-ua5h
-u1al
-ua5lu
-uan4o
-uant5is
-uant5it
-uar3a
-uar2d
-uar3i
-uari4n
-uar5ters
-uar4t5i
-ua5tern
-uba4
-ub5bly
-u1b2i
-u4bicu
-ub3lin
-ub5lo
-ub3ra
-4uc
-u1c2a
-uccen5
-u4cend
-u4ch
-u5chr
-uc3l
-u4com
-uco5t
-uc2tr
-uc3ub
-uc5ul
-u5cum
-u5dac
-ud1al
-ud4e
-ud5ep
-u4der
-udev4
-ud4g
-udi4cin
-ud3ied
-u5dinis
-udi3o
-u5ditio
-u2do
-u5doi
-ud5on
-u5dor
-ueb4
-u4ed
-uen4o
-uen4ter
-uer3a
-ues4s
-uest5rat
-ues5tri
-ue4t
-uf2
-3ufa
-u3fl
-u4fo
-uft4
-uga4c
-ug5lif
-ug2ni
-u4go
-ug3ul
-ug3ura
-uhem3
-2ui2
-ui3al
-u2ic
-uicent5
-uid5o
-uil4a
-uild5er
-ui3lib
-uil4t
-uinc5u
-uin4s
-uint4
-uin4ta
-ui5pr
-uis3er
-uis4t
-uisti4
-uit5er
-ui5val5
-ui3vo
-u2iz
-4ul.
-u1la
-u4lab
-4ulac
-ul5ard
-u5lat
-ul4bo
-ul3ca
-ul4ch
-5ulche
-5ulchre
-4ulea
-u5lee
-u1len4
-4ulenci
-u5lent
-ulet4
-ul4ev
-ul2fa
-ul2i
-ul4ia
-u3line
-ul3ing
-ul5ish
-u5liti
-u5lity
-4ull
-ul4lat
-ul4l5ib
-ul4lis
-ul4lit
-ul3m
-u1lo
-u5lom
-ulph3i
-ulph3o
-ulp5ing
-ul4po
-2uls
-ul3sif
-u1lu
-ul1v4
-u1ma
-um3am
-umar4
-u5mas
-um4bar.
-um2bi
-umen4t
-u1mi
-u4mic
-u2m5if
-umi4fy
-umi5lia
-umin4ar
-u4mined
-u4m3ing
-u4mora
-u4mos
-um2p
-um4pa
-ump3er
-ump5li
-umpt4
-ump5te
-u1mu
-umu4lo
-un1
-u4n3a4
-un5ab
-unabu4
-un4ae
-un4as.
-un2ce
-un4dal
-un3ded
-unde4t
-undeter5m
-undi4c
-un4die
-un3do
-un4dus
-u3n2er
-unho5li
-un2i
-u1nic
-un4ie
-un3in
-un4ine
-uni5p
-uni3so
-un3ist
-uni1v
-un3iz
-unk5eri
-un5ket
-un3kn
-2unn
-un4nag
-un5o
-un5r
-un3s4
-un5sh
-un2ti
-until4
-unu4
-un3us
-uo3de
-uodent4
-u5oros
-u3os
-uo5tatio
-u1ou
-2up
-u1pat
-u1pe
-u5pee
-uper3
-u1ph
-u5pid
-up3ing
-u4po
-u5pol
-u2pr
-upre4
-u5quet
-u4r
-ur1a
-4ura.
-ura4ci
-4urae
-ura2g
-4uranti
-uras5
-urb5ing
-ur2c
-urc3a
-ur5den.
-ur5deni
-ur5die
-ur4du
-ur3ea
-ur5ee
-ur1er
-ur3ers
-ur1e2t
-ur3ett
-ur2f
-ur3fa
-ur1i
-u5ri5cu
-ur4ie.
-ur5ifie
-uril4
-ur4ili
-ur5ion
-uri4os.
-url5er
-ur5lie
-url5ing
-ur1m4
-urn3al
-urn3er
-urn5s
-ur1o
-uro4d
-ur5o4m
-ur5ot
-uroti4
-urpen5t
-urph4
-ur2s
-urs5al
-urs5er
-ur3sh
-urs3or
-ur5ta
-ur1te
-ur5tes
-urth2
-ur3the
-urti4
-ur1u
-ur4va
-u3sad
-us3ag
-us3al
-us4ap
-us3at
-2usc
-us4can
-ush5a
-us5ian
-usil5
-u4s1in
-usk5er
-us1p
-us4pa
-uss4e
-4ust
-us3tac
-us5tan
-ust4ic
-us5tici
-ust5ig
-ust3il
-us1to4
-us1tr
-us4tre
-usur4e
-us5uri
-u3tane
-utch4e
-ut5eni
-u5teo
-u4tere
-ut2i
-u3tie
-ut3ing
-u5tini
-u3tio
-ut5ism
-ut3ist
-5u5tiz
-ut3le
-utli4
-ut2o
-u4to5s
-u4t1ra
-uts2
-ut5sm
-ut4tone
-u3tu
-u4tul
-uu4
-uv2
-u4va
-uve2
-uven3
-uv5eri
-u5vin
-ux2o
-uy4a
-uy5er
-4va.
-2v3ab
-5vac
-va1ca
-va5ceo
-vacu1
-v4ad
-3vag3a
-va4ge
-4vaged
-vager4
-vag5r
-v1al.
-1vale
-vali2
-va5lie
-val4ise
-5valu
-5val4v
-vam4i
-va5mo
-5vann
-vanta4
-4vantl
-var4is
-4vase
-vas5el5
-v5a4so
-vast3a
-v4at.
-5vatee
-vat4ina
-4vatu
-2ve.
-vect4
-ve3g
-3vei
-2vel
-vel3at
-4vele
-v3eler
-ve5line
-v1ell
-v4ella
-vel5ler
-vel3li
-vel5opi
-ven4al
-ven4do
-ve1ne
-ve5nia
-vent5o
-ven4tr
-4venu
-v5en5ue
-5ve3o
-5verb
-verde5v
-4v4ere4
-ver5ea
-ver3ei
-v5erie
-ver3m4
-ver4ne
-5verse
-4ves.
-4vi.
-5vialit
-vi4atr
-vi1b4
-vic2
-vi4ca
-vi5cari
-vice3r
-5vict2
-5vicu
-5vider
-vign3
-vi4l
-vil3i
-3vili4a
-v5ilise
-v5ilize
-vil5lin
-vim4
-5vime
-2v1in
-vin4ac
-3vinci
-vin2e
-5vinit
-v5iniz
-vint4
-vin5ta
-3vi1o
-viol3
-vi5om
-5vi3p
-vire4
-vi5rid
-vir3u
-5visecti
-5visio
-v3ism
-2v5ist
-vi2t
-vit2a
-vi3tal
-vi5tel
-v5itie
-vit1r
-vi3tu
-v3ity
-viv5al
-viv5or
-vi5zo
-1vo
-2vo.
-vo2l
-vo5litio
-vol4ubi
-volv4
-4von
-vo5rac
-3vorc
-4vore
-3voro
-vo3tar
-2vow
-vr4
-v5ra4
-v5ri
-v5ro
-vrot4
-4vs
-v3ure
-2vv2
-v5ver
-v5vi
-4vy
-4wab
-wag3o
-wais4
-w3al.
-wall5er
-w3als
-wan5gli
-wank5er
-war5ded
-ward5er
-ward5r
-war4f
-war4te
-war5thi
-wass4
-was4t
-wa1te
-wav4ine
-w1b4
-w4bon
-w5c
-w5die
-w3dr
-we4b
-w4ed
-3weed
-5wei
-weight5i
-weir4
-wel3i
-weliz4
-wel4izi
-wel4li
-went4
-wes4
-west3
-w5est.
-w5f
-wh2
-w5hid
-wi2
-wid4e
-wi5er
-will5in
-wim2p
-win2e
-wing5er
-win4tr
-3w4ise
-with5eri
-w3la
-wl1er
-wl1i
-wl4ie
-w1m
-1wo
-wol4
-wol5ver
-3wom
-won2t
-word5i
-wotch4
-woun4
-wp5in
-wra4
-ws5ing
-w5ster
-wt4
-w5te
-w3to
-wy2
-wz4
-x1a
-x4ach
-x4ade
-x2ag
-x3agg
-xa5met
-x3ami
-xan5d
-xano4
-x2as
-xas5p
-x3c4
-xcav3
-xcor5
-xe4
-x1ec
-xec3r
-xe5cutio
-xecut5o
-xe2d
-x5edl
-x5edn
-x5eg
-x1em
-x3en
-xen4op
-x3er
-xer4g
-xer3o
-x1h
-xhort4a
-x1i
-x3ia.
-x4ias
-xi4c
-x5ige
-xim3a
-x4ime
-ximet4
-x3io
-xi4p
-x4it.
-x4its
-x1o
-x4ode
-x5om
-xo4mat
-xo4n
-x4os
-xotrop4
-x3p
-xpel4
-xpo5n2
-xpoun4
-x1s2
-x1t2
-x4ted
-xtens5o
-xter3i
-xter4m3
-xtern3
-x4th
-xti4
-xtra5d
-xtra3v
-xtre4
-xu4o
-x1ur
-xur4b
-x5us
-x5w
-xx4
-xys4
-xy3t
-y1a2
-y5ac
-1y2ar
-3yard
-yas4i
-4y1b
-yb2i
-yca5m
-y5chede
-ych5is
-y3cho
-y4chose
-yc1l
-yclam4
-y4coli
-y4coll
-ycom4
-y2cos
-y1d4
-yda4
-yder4
-ydro5s
-y4drou
-y3ee
-yel5o
-y3en
-y1er
-y3est.
-yes5te
-y5ett
-y5f
-y1g
-ygi2
-ygi5a
-y3gl
-ygo4i
-y1h
-y1i
-y3in
-yle2
-ylin5de
-yllab5i
-yl3os
-yl5ou
-y1me4
-y3men
-y5met
-y5mia
-ym5in
-ymot4
-ym4pha
-yn1
-ynago4
-ynand5
-yn5ap4
-yn5ast
-yn4ci
-ynd4
-yn2e
-yn3er
-yng4
-yn4gol
-yni4c
-yn4y
-y1o2
-yo3d
-yo4gis
-youn4
-young5
-2yp
-yp5al
-yper3
-y5pere
-y4peri
-y4pero
-y4pet
-y2ph
-yph4e
-yph3i
-y4p1i
-yp1n
-ypo1
-y4pox
-y2pr
-yp5ri
-yp4si
-yp5syf
-ypt3a
-y5pu
-y3rag
-yr3at
-yr3ic
-y5rig
-yr3is
-yr3i4t
-yr5olo
-yr4r
-yr4s
-yr5u
-4y2s
-ys5ag
-ys5at
-y3s2c
-y3sh
-ys1ic
-ys3in
-ysi4o
-yso5
-ys4so
-ys1t
-ys4to
-y3u
-yv4
-y3w
-yz5er
-yzy4
-z1a1
-2za.
-za4bi
-za2i
-z4as
-za4te
-zd4
-zeb4
-ze4d
-zen4a
-z5eng
-zer5a
-z3et4
-z1i
-zib5
-5zic4
-z2ie
-zi5m
-zin4c3i
-z3ing
-zing5i
-z4is
-3zlem
-z3ler
-z3li
-4zo.
-5zoa
-zo3an
-3zoo2
-zo3ol
-zo3on
-zo5op
-zo5oti
-zo5p
-zot2
-z5s
-5zum
-4zy.
-zz2
-z3zar
-z5zas
-z3zie
-zzo3
-z5zot
-}
-
-% end pattern data
+% used: а б в г д е ж з и й к л м н о п р с т у ф х ц ч ш щ ь ю я є і ї ґ
+\patterns{
+2а1
+а3а
+а3е
+а3і
+а3о
+а3у
+а3ю
+а3я
+а3є
+а3ї
+2е1
+е3а
+е3е
+е3і
+е3о
+е3у
+е3ю
+е3я
+е3є
+е3ї
+2и1
+и3а
+и3е
+и3і
+и3о
+и3у
+и3ю
+и3я
+и3є
+и3ї
+2і1
+і3а
+і3е
+і3и
+і3о
+і3у
+і3ю
+і3я
+і3є
+і3ї
+2о1
+о3а
+о3е
+о3і
+о3о
+о3у
+о3ю
+о3я
+о3є
+о3ї
+2у1
+у3а
+у3е
+у3і
+у3о
+у3у
+у3ю
+у3я
+у3є
+у3ї
+2ю1
+ю3а
+ю3е
+ю3і
+ю3о
+ю3у
+ю3ю
+ю3я
+ю3є
+ю3ї
+2я1
+я3а
+я3е
+я3о
+я3у
+я3ю
+я3я
+я3є
+я3ї
+2є1
+є3у
+є3ю
+є3є
+є3ї
+2ї1
+ї3е
+ї3о
+ї3ю
+2б1к
+2б1п
+2б1с
+2б1т
+2б1ф
+2б1х
+2б1ц
+2б1ч
+2б1ш
+2б1щ
+2в1б
+2в1г
+2в1д
+2в1ж
+2в1з
+2в1к
+2в1л
+2в1м
+2в1н
+2в1п
+2в1р
+2в1с
+2в1т
+2в1ф
+2в1х
+2в1ц
+2в1ч
+2в1ш
+2в1щ
+2в1й
+2г1к
+2г1п
+2г1с
+2г1т
+2г1ф
+2г1ц
+2г1ч
+2г1ш
+2д1к
+2д1п
+2д1с
+2д1т
+2д1ф
+2д1х
+2д1ц
+2д1ч
+2д1ш
+2д1щ
+2ж1к
+2ж1п
+2ж1с
+2ж1т
+2ж1ф
+2ж1х
+2ж1ц
+2ж1ч
+2ж1ш
+2з1к
+2з1п
+2з1с
+2з1т
+2з1ф
+2з1х
+2з1ц
+2з1ч
+2з1ш
+2з1щ
+2к1б
+2к1г
+2к1д
+2к1з
+2л1б
+2л1в
+2л1г
+2л1ґ
+2л1д
+2л1ж
+2л1з
+2л1к
+2л1м
+2л1н
+2л1п
+2л1р
+2л1с
+2л1т
+2л1ф
+2л1х
+2л1ц
+2л1ч
+2м1б
+2м1в
+2м1г
+2м1д
+2м1ж
+2м1з
+2м1к
+2м1л
+2м1н
+2м1п
+2м1р
+2м1с
+2м1т
+2м1ф
+2м1х
+2м1ц
+2м1ч
+2м1ш
+2м1щ
+2н1б
+2н1в
+2н1г
+2н1д
+2н1ж
+2н1з
+2н1к
+2н1л
+2н1м
+2н1п
+2н1р
+2н1с
+2н1т
+2н1ф
+2н1х
+2н1ц
+2н1ч
+2н1ш
+2н1щ
+2п1б
+2п1д
+2п1з
+2р1б
+2р1в
+2р1г
+2р1ґ
+2р1д
+2р1ж
+2р1з
+2р1к
+2р1л
+2р1м
+2р1н
+2р1п
+2р1с
+2р1т
+2р1ф
+2р1х
+2р1ц
+2р1ч
+2р1ш
+2р1щ
+2р1й
+2с1б
+2с1г
+2с1д
+2т1б
+2т1г
+2т1д
+2т1ж
+2т1з
+2ф1б
+2ф1г
+2ф1з
+2х1г
+2х1д
+2ц1б
+2ц1г
+2ц1д
+2ц1з
+2ч1б
+2ч1д
+2ч1ж
+2ш1б
+2ш1г
+2й1б
+2й1в
+2й1г
+2й1д
+2й1ж
+2й1з
+2й1к
+2й1л
+2й1м
+2й1н
+2й1п
+2й1р
+2й1с
+2й1т
+2й1ф
+2й1х
+2й1ц
+2й1ч
+2й1ш
+2й1щ
+2дь1к
+2дь1с
+2дь1т
+2дь1ц
+2зь1к
+2зь1с
+2зь1т
+2ль1б
+2ль1в
+2ль1г
+2ль1д
+2ль1ж
+2ль1з
+2ль1к
+2ль1м
+2ль1н
+2ль1п
+2ль1р
+2ль1с
+2ль1т
+2ль1ф
+2ль1х
+2ль1ц
+2ль1ч
+2ль1ш
+2ль1щ
+2ль1й
+2нь1б
+2нь1г
+2нь1з
+2нь1к
+2нь1л
+2нь1м
+2нь1с
+2нь1т
+2нь1х
+2нь1ц
+2нь1ч
+2нь1ш
+2нь1й
+2рь1к
+2рь1ц
+2сь1б
+2сь1д
+2ть1б
+2к1сп
+2к1ст
+2к1ськ
+2п1сп
+2п1ст
+2п1ськ
+2с1пк
+2с1пп
+2с1пс
+2с1пт
+2с1пх
+2с1пч
+2с1ськ
+2с1тк
+2с1тп
+2с1тс
+2с1тсь
+2с1тт
+2с1тф
+2с1тц
+2с1шт
+2сь1кк
+2сь1кс
+2сь1кт
+2т1ск
+2т1сп
+2т1ст
+2т1ськ
+2т1шк
+2ф1сп
+2ф1ст
+2ф1ськ
+2ф1шт
+2х1ст
+2х1ськ
+2ц1ст
+2ц1шк
+2ш1тк
+2ш1тсь
+2б1б
+2в1в
+2г1г
+2ґ1ґ
+2д1д
+2ж1ж
+2з1з
+2к1к
+2л1л
+2м1м
+2н1н
+2п1п
+2р1р
+2с1с
+2т1т
+2ф1ф
+2х1х
+2ц1ц
+2ч1ч
+2ш1ш
+2щ1щ
+2й1й
+3ння
+3ття
+3ттю
+3лля
+3ллє
+3ллю
+3ддя
+д4ж
+д4з
+а2й
+е2й
+и2й
+і2й
+о2й
+у2й
+ю2й
+я2й
+є2й
+ї2й
+3й6о
+ь6о
+6ь
+.бд6
+.бр6
+.вб6
+.вг6
+.вд6
+.вж6
+.вз6
+.вз6д6
+.вк6
+.вл6
+.вм6
+.вп6
+.вп6х6
+.вс6
+.вс6т6
+.вт6
+.вш6к6
+.дж6
+.дз6
+.дл6
+.дс6
+.зб6
+.зг6
+.зд6
+.зд6з6
+.зл6
+.зс6
+.зс6к6
+.зс6т6
+.зч6
+.зш6
+.зш6к6
+.зґ6
+.йш6
+.кл6
+.кп6
+.кс6
+.кх6
+.кш6
+.лк6с6
+.лс6
+.ль6
+.мс6
+.мф6
+.нб6
+.пр6
+.пс6
+.пх6
+.рт6
+.ск6
+.ск6л6
+.сл6
+.сп6
+.сп6л6
+.сп6х6
+.ст6
+.сх6
+.сх6л6
+.тк6
+.тр6
+.тх6
+.ть6
+.фл6
+.хл6
+.ць6
+.чх6
+.шк6
+.шл6
+.шп6
+.шт6
+6бв.
+6бз.
+6бй.
+6бл.
+6б6ль.
+6бн.
+6бр.
+6бс.
+6б6ст.
+6б6с6тв.
+6б6с6тр.
+6б6с6ьк.
+6б6ць.
+6вб.
+6вв.
+6вд.
+6в6др.
+6в6дь.
+6вж.
+6вз.
+6в6зь.
+6вй.
+6вк.
+6вл.
+6в6ль.
+6вм.
+6вн.
+6вп.
+6вр.
+6вс.
+6в6с6тв.
+6в6с6ть.
+6в6сь.
+6в6с6ьк.
+6вт.
+6вх.
+6в6ць.
+6вч.
+6вш.
+6вщ.
+6гв.
+6гг.
+6гд.
+6гл.
+6г6ль.
+6гм.
+6гн.
+6гр.
+6гс.
+6г6с6тв.
+6г6сь.
+6гт.
+6дж.
+6дз.
+6д6зь.
+6дл.
+6дм.
+6дн.
+6др.
+6д6с6тв.
+6д6с6ьк.
+6дт.
+6дь.
+6д6ь6сь.
+6жб.
+6жв.
+6ж6дь.
+6ж6сь.
+6зв.
+6зг.
+6зд.
+6з6дв.
+6з6дн.
+6з6дь.
+6зк.
+6зл.
+6зм.
+6зн.
+6з6нь.
+6зр.
+6з6сь.
+6зь.
+6з6ьб.
+6з6ьк.
+6йб.
+6йв.
+6йг.
+6йд.
+6йз.
+6йк.
+6й6кл.
+6йл.
+6й6ль.
+6йм.
+6й6мс.
+6йн.
+6й6нс.
+6йп.
+6йр.
+6йс.
+6й6ст.
+6й6с6тв.
+6й6с6тр.
+6й6сь.
+6й6с6ьк.
+6йт.
+6й6тс.
+6йф.
+6йх.
+6йц.
+6йч.
+6йш.
+6кв.
+6кк.
+6кл.
+6к6ль.
+6кр.
+6кс.
+6к6ст.
+6к6сь.
+6кт.
+6к6тр.
+6кх.
+6кш.
+6лб.
+6лг.
+6лд.
+6лк.
+6лл.
+6л6ль.
+6лм.
+6л6мс.
+6лн.
+6лп.
+6лс.
+6лт.
+6л6хв.
+6ль.
+6л6ьб.
+6л6ьв.
+6л6ьг.
+6л6ьд.
+6л6ь6дс.
+6л6ьз.
+6л6ьк.
+6л6ьм.
+6л6ьн.
+6л6ьп.
+6л6ьс.
+6л6ь6ств.
+6л6ь6сь.
+6л6ь6ськ.
+6л6ьт.
+6л6ь6тр.
+6л6ьф.
+6л6ьх.
+6л6ьц.
+6л6ьч.
+6л6ьш.
+6л6ьщ.
+6мб.
+6м6б6ль.
+6м6бр.
+6мг.
+6мж.
+6мк.
+6мл.
+6м6ль.
+6мм.
+6мн.
+6мп.
+6мр.
+6мс.
+6м6с6тв.
+6м6сь.
+6м6с6ьк.
+6мт.
+6мф.
+6мх.
+6мш.
+6нв.
+6нг.
+6н6гл.
+6н6г6ль.
+6н6гр.
+6н6гс.
+6нд.
+6н6дж.
+6н6дз.
+6н6дп.
+6н6др.
+6нж.
+6нз.
+6нк.
+6н6кс.
+6н6кт.
+6нм.
+6нн.
+6нр.
+6нс.
+6н6ск.
+6н6ст.
+6н6с6тв.
+6н6с6тр.
+6н6с6ьк.
+6н6с6ькй.
+6нт.
+6н6тк.
+6н6тр.
+6н6т6ств.
+6н6ть.
+6нф.
+6нх.
+6нц.
+6н6ць.
+6нч.
+6нш.
+6нь.
+6н6ьб.
+6н6ьг.
+6н6ьк.
+6н6ь6сь.
+6пд.
+6пл.
+6пр.
+6пс.
+6п6с6тв.
+6п6сь.
+6пт.
+6п6тр.
+6пф.
+6пц.
+6рб.
+6рв.
+6рг.
+6рд.
+6р6дв.
+6р6дж.
+6р6дь.
+6рж.
+6рз.
+6р6зн.
+6р6зь.
+6рк.
+6р6кс.
+6р6кт.
+6рл.
+6р6ль.
+6р6л6ьз.
+6рм.
+6рн.
+6р6нс.
+6р6н6ст.
+6р6нь.
+6рп.
+6рр.
+6рс.
+6р6ср.
+6р6ст.
+6р6с6тв.
+6р6с6ть.
+6р6сь.
+6р6с6ьк.
+6рт.
+6р6тв.
+6р6тр.
+6р6ть.
+6рф.
+6рх.
+6рц.
+6р6ць.
+6рч.
+6рш.
+6рщ.
+6р6щ6сь.
+6рь.
+6с6дп.
+6с6д6рп.
+6ск.
+6сл.
+6с6ль.
+6см.
+6сн.
+6сп.
+6сс.
+6ст.
+6с6тв.
+6с6тй.
+6с6тм.
+6с6тр.
+6с6т6рь.
+6с6ть.
+6с6ць.
+6сь.
+6с6ьб.
+6с6ьк.
+6с6ьм.
+6тв.
+6т6вт.
+6т6зт.
+6тл.
+6т6ль.
+6тм.
+6т6мр.
+6тр.
+6тс.
+6т6с6тв.
+6т6с6ьк.
+6тт.
+6тц.
+6тч.
+6ть.
+6т6ь6сь.
+6фм.
+6фр.
+6ф6с6тв.
+6фт.
+6ф6ть.
+6фф.
+6фь.
+6хв.
+6хм.
+6хн.
+6хр.
+6хт.
+6хш.
+6ц6тв.
+6ць.
+6ц6ьк.
+6чб.
+6чм.
+6чн.
+6чт.
+6шв.
+6ш6ль.
+6шм.
+6шн.
+6ш6нл.
+6ш6сь.
+6шт.
+6ш6тв.
+6щ6сь.
+.бе4з3
+.безу4
+.бе5з4о3д
+.без5о4соб
+.безві4д3
+.без3ро4з3
+виї4
+.ві5д4ом
+.ві5д4озв
+.ві5д4ун
+віду4ч
+.ві5д4а
+.ві5д4ер
+.ві5д4і
+.ві4д3
+.мі4ж3
+безві4д3
+ові4д3
+ді4єві4д3
+за4вві4д3
+неві4д3
+про4ф3ві4д3
+спе4ц3ві4д3
+співві4д3
+те4х3ві4д3
+.пере4д3бач
+.пере4д3виб
+.пере4д3г
+.пере4д3д
+.пере4д3м
+.пере4д3ост
+.пере4д3пла
+.пере4д3пок
+.пере4д3р
+.пере4д3св
+.пере4д3умов
+.пере4д3усі
+.пере4д3фр
+.пере4д3ч
+.пере3
+.пона4д3
+.пона5д4і
+.пона5д4и
+.пона5д4я
+3п4ре
+3п4ри
+приї4
+3п4ро
+3п4рі
+.пі5д4о
+.пі5д4і
+.пі4д3
+.пі5д4е
+.пі5д4и
+.пі5д4у
+.пі4в3
+.спі4в3
+.напі4в3
+.ро5з4і
+.ро5з4е
+ро5з4йом
+.ро5з4а
+.ро4з3
+.чере4з3
+оо4б
+ооб3м
+ооб3ро
+за5о4р
+до5о4р
+по5о4р
+пере5о4р
+пі6д5о4р
+бе4з5і4дей
+за3ю4ш
+за3я4ло
+коу4роч
+зу4роч
+наду4роч
+позау4роч
+поу4роч
+приу4роч
+на4й3у4бог
+нао4р
+прио4р
+неу4к
+3в4б4лаг
+3в4к4лад
+3в4п4лив
+3в4п4равн
+3в4р4одлив
+3в4т4рут
+3в4т4руч
+3з4б4рой
+3з4б4рою
+3з4б4роє
+3й4ш4л
+3м4к4не
+3м4к4ну
+3м4к4ні
+3п4с4ков
+3с4к4лад
+3с4к4ле
+3с4к4лит
+3с4к4ло
+3с4к4рипт
+3с4п4лав
+3с4п4лат
+3с4п4лач
+3с4п4рав
+3с4п4ритн
+3с4п4рият
+3с4п4ромо
+3с4т4вор
+3с4т4ражд
+3с4т4рах
+3с4т4риб
+3с4т4риж
+3с4т4рой
+3с4т4рок
+3с4т4ром
+3с4т4роф
+3с4т4роч
+3с4т4рою
+3с4т4роя
+3с4т4роє
+3с4т4рої
+3с4т4рукт
+3с4т4рукц
+3с4т4рій
+3с4т4ріл
+3с4т4річ
+3т4к4нен
+3т4ь4мар
+3т4ь4мяні
+3у4п4рав
+3блаж
+3ближ
+3близ
+3блиск
+3блок
+3блоці
+3бран
+3брати
+3брест
+3бризк
+3британ
+3бруд
+3в4бив
+3в4веден
+3в4дал
+3в4довз
+3в4довол
+3в4живан
+3в4лад
+3в4ласн
+3в4лашт
+3в4лов
+3в4певн
+3в4поряд
+3в4разлив
+3в4рожай
+3в4сюд
+3в4тіл
+3глад
+3глиб
+3глин
+3глоб
+3глуз
+3глуш
+3гляд
+3глян
+3гнан
+3гнил
+3гноз
+3гнучк
+3грав
+3град
+3грай
+3грам
+3гран
+3грати
+3граф
+3граш
+3граю
+3грає
+3грес
+3грець
+3гроб
+3грож
+3гроз
+3громад
+3груван
+3грунт
+3груп
+3грів
+3гріт
+3гріш
+3г4ідро
+3д4ан
+3д4бав
+3д4бал
+3д4бан
+3д4бат
+3д4бає
+3двиг
+3двою
+3двоє
+3двій
+3двір
+3двічі
+3драж
+3дром
+3друж
+3друк
+3дряп
+3дріб
+3дріма
+3жвав
+3жміть
+3жріть
+3з4бага
+3з4баланс
+3з4був
+3з4бут
+3зваж
+3зван
+3звед
+3звел
+3звест
+3звись
+3звич
+3звищ
+3зворуш
+3звук
+3звуч
+3звіт
+3з4год
+3з4дат
+3з4довж
+3з4доров
+3з4дійсн
+3змін
+3зйом
+3зміш
+3знав
+3знай
+3знак
+3знал
+3знан
+3знат
+3знаход
+3знач
+3знаю
+3знає
+3зниж
+3знім
+3зрозум
+3зрюв
+3зрів
+3зріл
+3зрін
+3з4чеп
+3й4ма
+3й4менн
+3й4мищ
+3й4мовірн
+3й4му.
+3й4муть
+3й4міть
+3й4шов
+3м4нож
+3м4ріть
+3м4щен
+3п4сов
+3п4сон
+3п4сув
+3р4вав
+3р4вати
+3р4віть
+3с4кид
+3с4кок
+3с4коп
+3с4кор
+3с4короч
+3с4коч
+3с4кіль
+3с4кіпл
+3с4пад
+3с4пект
+3с4перм
+3с4пин
+3с4повід
+3с4пожив
+3с4постер
+3с4пі
+3с4піть
+3с4піш
+3с4табіл
+3с4тав
+3с4тад
+3с4таз
+3с4тайн
+3с4тал
+3с4тан
+3с4тар
+3с4тара
+3с4тат
+3с4тач
+3с4тає
+3с4теп
+3с4тереж
+3с4теріг
+3с4тиг
+3с4тиж
+3с4тисл
+3с4титу
+3с4товб
+3с4той
+3с4торон
+3с4торін
+3с4тосо
+3с4тосу
+3с4тою
+3с4тоян
+3с4туп
+3с4тяг
+3с4тіб
+3с4тій
+3с4тіль
+3с4тір
+3с4фер
+3с4хил
+3с4хов
+3с4хід
+3т4кан
+3х4то
+3ш4код
+3ш4кол
+3ш4кідл
+3ш4кіл
+3ш4кір
+3ш4таб
+3ш4туч
+3ґрунт
+3а4вторит
+3а4гент
+3а4грес
+3а4декват
+3а4дитив
+3а4зарт
+3а4ктив
+3а4ктуал
+3а4курат
+3а4куст
+3а4кцепт
+3а4кциз
+3а4лергі
+3а4матор
+3а4наліз
+3а4натом
+3а4парат
+3а4пеляц
+3а4постол
+3а4птеч
+3а4ргумен
+3а4ромат
+3а4соці
+3а4спект
+3а4тлет
+3а4халі
+3е4колог
+3е4коном
+3е4легант
+3е4лектр
+3е4лемент
+3е4моці
+3е4мігр
+3е4нерг
+3е4стакад
+3е4стет
+3е4тап
+3о4береж
+3о4бира
+3о4борон
+3о4бід
+3о4біц
+3о4даль
+3о4дяг
+3о4збро
+3о4крем
+3о4перат
+3о4плат
+3о4птим
+3о4пуст
+3о4пуше
+3о4пуще
+3о4рдинац
+3о4ренд
+3о4соб
+3о4сяжн
+3о4холо
+3о4хорон
+3о4хоч
+3о4чисн
+3о4чищ
+3у4ваг
+3у4важ
+3у4гав
+3у4згод
+3у4клад
+3у4компл
+3у4крупн
+3у4люблен
+3у4мит
+3у4міл
+3у4перед
+3у4разлив
+3у4рбан
+3у4рочист
+3у4ряд
+3у4рядов
+3у4спіш
+3у4станов
+3у4стпіш
+3у4сувати
+3у4твор
+3у4тробн
+3я4дерн
+3я4зик
+3я4кіс
+3я4рус
+3я4скрав
+3є4д3н
+3є4дин
+3є4писк
+3є4рей
+3і4зотоп
+3і4люстр
+3і4мовір
+3і4нтенс
+3і4нформ
+3і4ніціат
+3і4снув
+3ї4ждж
+3ї4зд
+3ї4ст
+3ї4хав
+3ї4хат
+.заї4к
+.заї4ц
+.заї4ч
+.наї4д
+аві4а
+авої4д
+ае4тил
+альбі5он
+ахої4д
+ауді4о
+ай4с3берг
+бактері4о
+ба4с3енер
+ба4с3антра
+.бе5зе.
+бей4сбол
+бе5кон
+бйор4нс
+бі4о3
+бо4г3дан
+бран4д
+брі4дж3порт
+без5і4мен
+бо4є3гол
+бо4є3гот
+бо4є3зап
+бо4є3здат
+бо4є3комп
+бо4є3пост
+бо4є3прип
+бори4с5п
+4в3антрац
+вер4х3н
+ви3й4д
+вина3й4д
+ви3й4т
+вина3й4т
+від7зна
+ві5д4ен
+ві5д4е4о
+ві5д4ом
+від5о4браж
+від5о4браз
+во4с5ко
+водо5с4ток
+водо5з4бір
+воль4т3метр
+воль4т3ампер
+ге2ть3ман
+ге4о
+го4с4п5роз
+гі4д5ро5мет
+4д7зем
+дер4ж5а4том
+дер4ж5а4дм
+дер4ж5бюдж
+дер4ж5вид
+дер4ж5дум
+дер4ж5замов
+дер4ж5ком
+дер4ж5нафт
+дер4ж5реєс
+дер4ж3без
+дер4ж3резерв
+дер4ж5стр
+дер4ж5служ
+двох4а5том
+джен4тль
+дисбаланс
+ди4с3гарм
+ди4с3квал
+ди4с3комф
+ди4с3конт
+ди4с3кред
+ди4с3крет
+ди4с3крец
+ди4с3крим
+ди4с3кусі
+ди4с3куту
+ди4с3лок
+ди4с3парит
+ди4с3перс
+ди4с3петч
+ди4с3пле
+ди4с3плей
+ди4с3пози
+ди4с3проп
+ди4с3пут
+ди4с3тил
+ди4с3триб
+ди4с3троф
+ди4с3функц
+ді3й4т
+ді3й4д
+д4ні3п4р
+.дої4в
+.дої4л
+.дої5ль
+дої4д
+дої4м
+дої4х
+дої4ж
+дої4ст
+до3з4вол
+до3з4віл
+дорого5в4каз
+еу4стр
+ео4сві
+енерго3з4береж
+енерго3з4беріг
+ек2с1к
+ек2с1п
+ек2с1т
+ек2с1ц
+єв4р3атом
+єпі4с5коп
+єпи4с5коп
+за4п3част
+заї4д
+заї4ж
+заї4з
+заї4л
+заї4м
+заї4х
+зе4кономити
+зна3й4д
+зна3й4т
+зо4ка
+зо4ке
+зо4ки
+зо4ку
+зо4кі
+игої4д
+ий4ти
+іе4тил
+і4л3е4тил
+ій4ти
+інфор4м3аген
+йо4сві
+каза4х3стан
+квої4д
+корої4д
+квар4т3плат
+киї4венер
+кон4трре
+кон4тр3арг
+жко4м5а4том
+кому4ненерг
+мі4н5е4ко
+мі4н5е4нер
+мо4к5рий
+на3б4лиз
+на3в4ряд
+на3в4ча
+на3з4в
+на4д7з4в
+наї4вс
+наї4вш
+наї4ж
+наї4з
+наї4л
+наї4м
+наї4с
+наї4х
+на4й3а
+на4й3е
+на4й3обереж
+на4й7о4бер
+на4й7о4гид
+на4й7о4гол
+на4й7о4гряд
+на4й7о4пук
+на4й7о4хай
+на4й3масл
+на4й3спри
+на4й3якіс
+на3в4чен
+на3в4чіть
+не3в4том
+не3д4бан
+на3д4бан
+не3з4вич
+не3з4важ
+нео4пал
+недої4
+неї4ст
+на5п4лив
+ні4т5рат
+оної4д
+оо4пал
+ео4пал
+обі3д4ран
+обі3й4д
+обі3й4т
+об5у4мов
+онаї4д
+оо4сві
+оо4к
+оу4стр
+оа4том
+об4лдер4ж
+об4л3а4дмін
+переї4д
+переї4ж
+переї4з
+переї4л
+переї4с
+переї4х
+пере5п4лив
+пере3й4д
+пре4й4с
+пере3й4т
+перег4ній
+перед5о4бід
+пере3в4том
+пере4д5см
+перед5у4мов
+під5о4дин
+пів5о4с4тр
+пі5в4ень
+по3б4лизу
+по3в4тор
+поч4не
+поч4ни
+поч4ну
+поя4в
+по3в4чен
+по3в4чіть
+по3д4роб
+по3д4раз
+по3д4во
+по5ж4ніть
+по5з4бав
+.пої4
+пої4д
+прої4
+пої4зд
+по4с4т5радян
+по4с4т5кому
+по4с4т3декр
+по4с4т3контра
+по4с4т3менопауз
+по4с4тприват
+по4с4т3раді
+по4с4т5соці
+пос4т3кап
+пос4т3ком
+пос4т3нат
+пос4т3проц
+пос4т3соц
+пос4т3фікс
+при3й4т
+про3с4тирад
+про4ф3с
+полі4т5екон
+пор4т3н
+пор4т3рет
+пор4т3фел
+при3й4д
+при4нцип
+про4ект3н
+про3б4лем
+про4м3май
+пр4о5плат
+раді4о
+рай3в4но
+ро4з5д4во
+ро4з5мінний
+роз5у4чен
+роз5і4мен
+роз5вант
+роз5вин
+роз5вит
+ро4з5діл
+ро4з5гор
+ро4з5вер
+ро4з5чеп
+руко5с4тиск
+ро5з4ум
+ро4з3гром
+ро4з3лив
+рмої4д
+сан4к4т3
+сеї4д
+серцеї4д
+спе4ц3кур
+спе4ц3мон
+спе4цпр
+спе4ц3с
+спор4т3вир
+спор4т3зал
+спор4т3ком
+спор4т3клуб
+спор4т3май
+спор4т4с3ме
+сор4тн
+3с4промож
+сь4квуг
+стат5упр
+тор4г3пред
+тран4с3
+тур4к3мен
+цук3ро
+у4к4р
+укр3а4вт
+укр3а4гр
+укр3е4кс
+укр3і4н4банк
+убої4д
+чорно3б4рив
+цен4т4р3енерг
+ясої4д
+ви3у4ч
+за3у4ч
+на3у4ч
+недо3у4ч
+не3у4ч
+під3у4ч
+пед3у4чи
+пере3у4ч
+само3у4ч
+вия4в
+зая4в
+ная4в
+уя4в
+во4євод
+во4єнач
+сво4єчас
+сво4єкорис
+сво4єрід
+хво4є3г4риз
+гелі4о
+ді4о
+еті4о
+мі4о
+і4он
+полі4о
+соці4о
+фізі4о
+хімі4о
+гоме4о
+ді4алог
+ді4оген
+дея4к
+оо4динок
+ао4пік
+ао4ха
+ео4ха
+зо6о
+ка5нал
+оі4зол
+міжу4соб
+мете4о
+абия4к
+нія4к
+вия4сн
+най3я4сн
+нея4сн
+поя4сн
+проя4сн
+ро5з4ора.
+ро5з4о5рам
+ро5з4орах
+ро5з4ори
+ро5з4оро
+ро5з4ору
+ро5з4оря
+ро5з4орю
+ро5з4орі
+ро6з5о4ри.
+розо4ра
+розо4ре
+розо4реш
+розо4рн
+напоу4м
+неа4би
+ео4цін
+оо4цін
+доу4к
+доу4м
+ео4бур
+ео4голош
+ео4зор
+бальне4о
+не4оліт
+не4омальт
+не4оклас
+не4окомун
+не4оландш
+не4олог
+не4олібер
+не4онац
+не4офіт
+нею4н
+нея4к
+нея4рок
+но4к3а4ут
+пі5в4оні
+піво4с
+пале4о
+па4н3о4тець
+.пе4ом.
+д3у4сім
+п4о5бере
+ао4хот
+ое4ко
+ео4хот
+ео4щад
+ао4щад
+оо4чищ
+поя4с
+те4одоліт
+те4олог
+те4ософ
+оо4біг
+оу4сун
+оу4ком
+пів3о4вал
+а3у4дар
+о3у4дар
+з3у4дар
+в3у4дар
+контр3у4дар
+о3о4кисл
+и3о4кисл
+ень7о4кисл
+е3о4кисл
+х3о4кисл
+и3і4стор
+о3і4стор
+і3і4стор
+а3і4стор
+я3і4стор
+е3і4стор
+наді4стор
+най3і4стор
+пів3і4стор
+перед3і4стор
+пост3і4стор
+ар4т3афіш
+ар4т3взвод
+ар4т3десант
+ар4т3кафе
+ар4т3майс
+ар4т3медіа
+ар4т3мейс
+ар4т3мін
+ар4т3о4бстр
+ар4т3о4дин
+ар4т3о4збр
+ар4т3під
+ар4т3рин
+ар4т3у4стан
+ар4т3факт
+ар4т3хім
+ар4т3центр
+наді4стот
+найі4стот
+еі4стот
+оі4стот
+ау4т3екол
+оо4чист
+з3а4кт
+оа4кт
+еа4кт
+гіпер3а4кт
+найа4кт
+піва4кт
+ао4браз
+ео4браз
+оо4браз
+граф3о4браз
+най3о4браз
+супер3о4браз
+ар4т3мейст
+баге4р3мейст
+бале4т3мейст
+бран4д3мейст
+ва4ль4д3мейст
+ве4ль4т3мейст
+го4ф3мейст
+гро4с3мейст
+декре4т3мейст
+до4к3мейст
+капе4ль3мейст
+кварти4р3мейст
+конце4р4т3мейст
+кра4н3мейст
+полі4ц3мейст
+по4ш4т3мейст
+фо4р4с4т3мейст
+хо4р3мейст
+шапі4т3мейст
+шта4л3мейст
+єге4р3мейст
+иа4варі
+яа4варі
+оа4варі
+еа4варі
+беза4варі
+між3а4варі
+над3а4варі
+пост3а4варі
+напів3а4варі
+перед3а4варі
+супер3а4варі
+аа4дрес
+еа4дрес
+оа4дрес
+іа4дрес
+без3а4дрес
+ае4фект
+ее4фект
+ое4фект
+най3е4фект
+супер3е4фект
+ое4місі
+ие4місі
+яе4місі
+ее4місі
+безе4місі
+гіпер3е4місі
+еу4бог
+й3у4бог
+ий4ня
+зай4ня
+здій4ня
+най4ня
+обій4ня
+перей4ня
+підій4ня
+прий4м
+пій4м
+дій4ма
+вий4м
+най4ма
+зай4м
+д4о3й4м
+обой4м
+прой4м
+обій4м
+перей4м
+безу4гл
+безу4пин
+бло4к3пост
+.блі4ц3ана
+.блі4ц3криг
+.блі4ц3опит
+.блі4ц3торг
+.блі4ц3тур
+.блі4ц3і4спит
+о3а4наліз
+бак3а4наліз
+ц3а4наліз
+ген3а4наліз
+з3а4наліз
+м3а4наліз
+нт3а4наліз
+між3а4наліз
+полі3а4наліз
+ре3а4наліз
+оу4год
+ау4год
+еу4год
+пів3у4год
+роз3у4год
+гос4п3у4год
+ео4пис
+оо4пис
+ао4пис
+бо4р4т3мех
+бо4р4т3о4пер
+бо4р4т3про
+бо4р4т3рад
+бо4р4т3і4нж
+оа4каці
+оу4с
+оо4держ
+оа4на
+біблі4о
+.на3в4ч
+.ви3в4ч
+.до3в4ч
+.за3в4ч
+.по3в4ч
+.при3в4ч
+ана3в4ч
+ена3в4ч
+мона3в4ч
+жона3в4ч
+іона3в4ч
+ови3в4ч
+еви3в4ч
+едо3в4ч
+оза3в4ч
+по3в4ча
+.ом4рі
+е3м4рій
+.ви3м4р
+.віді3м4р
+.зав3м4р
+.за3м4р
+.зі3м4р
+.на3м4р
+.пере3м4р
+.по3м4р
+.при3м4р
+.роз3м4р
+.ум4ри
+.ум4рі
+.ум4ру
+.ум4ре
+во4станнє
+най3о4станн
+перед3о4станн
+ие4стет
+ое4стет
+ее4стет
+й3е4стет
+пан3е4стет
+пар3е4стет
+оо4ктан
+іо4ктан
+оо4плачув
+ео4плачув
+перед3о4пла
+виу4ди
+о3в4каз
+е3в4каз} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-uk.rme b/Master/texmf-dist/tex/context/patterns/lang-uk.rme
new file mode 100644
index 00000000000..9d6e5ee886f
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/lang-uk.rme
@@ -0,0 +1,70 @@
+% generated by mtxrun --script pattern --convert
+
+% This file is part of hyph-utf8 package and resulted from
+% semi-manual conversions of hyphenation patterns into UTF-8 in June 2008.
+%
+% Source: TODO:WRITEME (yyyy-mm-dd)
+% Author: Maksym Polyakov <polyama at auburn.edu>, <mpoliak at i.com.ua>
+%
+% The above mentioned file should become obsolete,
+% and the author of the original file should preferaby modify this file instead.
+%
+% Modificatios were needed in order to support native UTF-8 engines,
+% but functionality (hopefully) didn't change in any way, at least not intentionally.
+% This file is no longer stand-alone; at least for 8-bit engines
+% you probably want to use loadhyph-foo.tex (which will load this file) instead.
+%
+% Modifications were done by Jonathan Kew, Mojca Miklavec & Arthur Reutenauer
+% with help & support from:
+% - Karl Berry, who gave us free hands and all resources
+% - Taco Hoekwater, with useful macros
+% - Hans Hagen, who did the unicodifisation of patterns already long before
+% and helped with testing, suggestions and bug reports
+% - Norbert Preining, who tested & integrated patterns into TeX Live
+%
+% However, the "copyright/copyleft" owner of patterns remains the original author.
+%
+% The copyright statement of this file is thus:
+%
+% Do with this file whatever needs to be done in future for the sake of
+% "a better world" as long as you respect the copyright of original file.
+% If you're the original author of patterns or taking over a new revolution,
+% plese remove all of the TUG comments & credits that we added here -
+% you are the Queen / the King, we are only the servants.
+%
+% If you want to change this file, rather than uploading directly to CTAN,
+% we would be grateful if you could send it to us (http://tug.org/tex-hyphen)
+% or ask for credentials for SVN repository and commit it yourself;
+% we will then upload the whole "package" to CTAN.
+%
+% Before a new "pattern-revolution" starts,
+% please try to follow some guidelines if possible:
+%
+% - \lccode is *forbidden*, and I really mean it
+% - all the patterns should be in UTF-8
+% - the only "allowed" TeX commands in this file are: \patterns, \hyphenation,
+% and if you really cannot do without, also \input and \message
+% - in particular, please no \catcode or \lccode changes,
+% they belong to loadhyph-foo.tex,
+% and no \lefthyphenmin and \righthyphenmin,
+% they have no influence here and belong elsewhere
+% - \begingroup and/or \endinput is not needed
+% - feel free to do whatever you want inside comments
+%
+% We know that TeX is extremely powerful, but give a stupid parser
+% at least a chance to read your patterns.
+%
+% For more unformation see
+%
+% http://tug.org/tex-hyphen
+%
+%------------------------------------------------------------------------------
+%
+% Ukrainian hyphenation patterns in LCY (cp866nav) encoding.
+% Copyright 1998-2001 Maksym Polyakov.
+% Released 2001/05/10.
+% This file can be redistributed and/or modified
+% under the terms of the LaTeX Project Public License (lppl).
+% Please, send bug reports via e-mail:
+% polyama@auburn.edu
+% mpoliak@i.com.ua \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-us.hyp b/Master/texmf-dist/tex/context/patterns/lang-us.hyp
index b349d011d30..effc3e709e7 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-us.hyp
+++ b/Master/texmf-dist/tex/context/patterns/lang-us.hyp
@@ -1,10 +1,10 @@
-% context hyphenation file, see lang-us.rme for original comment
+% generated by mtxrun --script pattern --convert
-% source of data: ushyphmax.tex ushyph.tex hyphen.tex
+% for comment and copyright, see ./lang-us.rme
-% begin hyphenation data
+% used: a b c d e f g h i j l m n o p r s t u y z
-\hyphenation {
+\hyphenation{
as-so-ciate
as-so-ciates
dec-li-na-tion
@@ -18,8 +18,4 @@ reci-procity
re-cog-ni-zance
ref-or-ma-tion
ret-ri-bu-tion
-ta-ble
-}
-
-% end hyphenation data
-
+ta-ble} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-us.pat b/Master/texmf-dist/tex/context/patterns/lang-us.pat
index a8258cb3c6b..fbe4050b07f 100644
--- a/Master/texmf-dist/tex/context/patterns/lang-us.pat
+++ b/Master/texmf-dist/tex/context/patterns/lang-us.pat
@@ -1,10 +1,10 @@
-% context pattern file, see lang-us.rme for original comment
+% generated by mtxrun --script pattern --convert
-% source of data: ushyphmax.tex ushyph.tex hyphen.tex
+% for comment and copyright, see ./lang-us.rme
-% begin pattern data
+% used: a b c d e f g h i j k l m n o p q r s t u v w x y z
-\patterns {
+\patterns{
.ach4
.ad4der
.af1t
@@ -4942,8 +4942,4 @@ y1stro
yes5ter1y
z3ian.
z3o1phr
-z2z3w
-}
-
-% end pattern data
-
+z2z3w} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/lang-us.rme b/Master/texmf-dist/tex/context/patterns/lang-us.rme
new file mode 100644
index 00000000000..31b28980562
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/lang-us.rme
@@ -0,0 +1,40 @@
+% generated by mtxrun --script pattern --convert
+
+% This file has been renamed from ushyphmax.tex to hyph-en-us.tex in June 2008
+% for consistency with other files with hyphenation patterns in hyph-utf8 package.
+% No other changes made. See http://www.tug.org/tex-hyphen for more details.
+
+% ushyphmax.tex -- patterns for more hyphenation pattern memory (12000+).
+% Also known as ushyphen.max.
+%
+% version of 2005-05-30.
+% Patterns of March 1, 1990.
+%
+% Copyright (C) 1990, 2004, 2005 Gerard D.C. Kuiken.
+% Copying and distribution of this file, with or without modification,
+% are permitted in any medium without royalty provided the copyright
+% notice and this notice are preserved.
+%
+% Needs extended pattern memory.
+% Hyphenation trie becomes 7283 with 377 ops.
+%
+% These patterns are based on the Hyphenation Exception Log
+% published in TUGboat, Volume 10 (1989), No. 3, pp. 337-341,
+% and a large number of incorrectly hyphenated words not yet published.
+% If added to Liang's before the closing bracket } of \patterns,
+% the patterns run errorfree as far as known at this moment.
+%
+% These patterns find all admissible hyphens of the words in
+% the Exception Log. ushyph2.tex is a smaller set.
+%
+% Please send bugs or suggestions to tex-live (at) tug.org.
+%
+% 2005-05-30 (karl): in the past, ushyphmax.tex was a file containing
+% only the additional patterns, without the \patterns command, etc.
+% This turned out not to be very useful, since in practice the TeX
+% distributions need one self-contained file for a language. Therefore,
+% ushyphmax.tex now contains both the additional patterns from
+% Dr. Kuiken, and the original patterns and hyphenations from Knuth's
+% hyphen.tex.
+%
+% The Plain TeX hyphenation tables. \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/sample/demo-cld.cld b/Master/texmf-dist/tex/context/sample/demo-cld.cld
new file mode 100644
index 00000000000..7e470da6297
--- /dev/null
+++ b/Master/texmf-dist/tex/context/sample/demo-cld.cld
@@ -0,0 +1,74 @@
+-- context.enabletrackers {"tud.trace"}
+
+context.setuplayout( {
+ width = "middle",
+ height = "middle",
+})
+
+context.showframe()
+
+context.starttext()
+
+context.chapter({ "someref" }, "Hello There")
+
+context.readfile("tufte","","not found")
+
+context.startitemize({ "packed" })
+ for i=1,10 do
+ context.startitem()
+ context("this is item %i",i)
+ context.stopitem()
+ end
+context.stopitemize()
+
+context.startchapter({ title = "test" }, { more = "oeps" })
+
+ context["in"]("chapter",{ "someref" })
+
+ context.startlinecorrection( { "blank" })
+ context.bTABLE()
+ for i=1,10 do
+ context.bTR()
+ for i=1,20 do
+ context.bTD({ align= "middle", style = "type" })
+ context("%#2i",math.random(99))
+ context.eTD()
+ end
+ context.eTR()
+ end
+ context.eTABLE()
+ context.stoplinecorrection()
+
+ context.mathematics("x^{2 \\times 4}")
+
+ context.placefigure("caption", function()
+ context.externalfigure( { "cow.pdf" } )
+ end)
+
+ context.placefigure("caption", function()
+ context.bTABLE()
+ context.bTR()
+ context.bTD()
+ context.externalfigure( { "cow.pdf" }, { width = "3cm", height = "3cm" } )
+ context.eTD()
+ context.bTD({ align = "{lohi,middle}" } )
+ context("and")
+ context.eTD()
+ context.bTD()
+ context.externalfigure( { "cow.pdf" }, { width = "4cm", height = "3cm" } )
+ context.eTD()
+ context.eTR()
+ context.eTABLE()
+ end)
+
+context.stopchapter()
+
+context.chapter("Speed Test 1")
+
+for i=1,50 do
+ context.readfile("tufte","","not found")
+ context.par()
+end
+
+context.stoptext()
+
diff --git a/Master/texmf-dist/tex/context/sample/sample.tex b/Master/texmf-dist/tex/context/sample/sample.tex
index f39c328ee63..d54d8b74780 100644
--- a/Master/texmf-dist/tex/context/sample/sample.tex
+++ b/Master/texmf-dist/tex/context/sample/sample.tex
@@ -40,12 +40,15 @@ used in testing bibliographic references and citations.
Thomas Dunne Books, 2007, p.160 \NC \NR
\NC montgomery.tex \NC David R Montgomery \NC Dirt, The Erosion of Civilizations, \endgraf
University of California Press, 2007, p.199 \NC \NR
+\NC carrol.tex \NC Sean B. Carrol \NC The Making of the Fittest, \endgraf
+ Quercus, London, 2006 \NC \NR
\stoptabulate
% Tufte: This quote will always produce hyphenated text, apart from the content,
% it's a pretty good test case for protruding.
-% Ward: I should find a quote in the extremely well written Rare Earth as well.
+% Ward: I should find a quote in the extremely well written Rare Earth as well. All Wards
+% books excell.
% A Short History of Nearly Everything: I wish that I had the memory to remember this book
% verbatim.
@@ -62,4 +65,7 @@ used in testing bibliographic references and citations.
% Dirt, The Erosion of Civilizations: one of those books that you buy immediately after
% reading a few sentences. Also one of those books that every politician should read.
+% The Making of the Fittest: nice sample for color ans subsentence testing. A very
+% readable book but unfortunately it has inter-character spacing.
+
\stoptext
diff --git a/Master/texmf-dist/tex/context/test/chem-str-test.tex b/Master/texmf-dist/tex/context/test/chem-str-test.tex
new file mode 100644
index 00000000000..fd6a8227a96
--- /dev/null
+++ b/Master/texmf-dist/tex/context/test/chem-str-test.tex
@@ -0,0 +1,560 @@
+% Beware, integrated ppchtex support is incomplete and under
+% construction so when you depend on the full functionality
+% you need to use the module!
+%
+% For testing new functionality:
+%
+% \startMPextensions
+% input "mp-chem.mp" ;
+% \stopMPextensions
+% \startluacode
+% dofile(resolvers.find_file("chem-str.lua","tex"))
+% \stopluacode
+% \setbox\scratchbox\hbox{\startMPcode\stopMPcode}
+
+\enabletrackers[chemistry.structure]
+
+\starttext
+
+\defineprocessor[ch:r][color=red]
+\defineprocessor[ch:g][color=green]
+\defineprocessor[ch:b][color=blue]
+
+\setupchemical[frame=on,offset=3pt]
+
+\startbuffer[test-set]
+
+ \dontleavehmode \startchemical \chemical[\ChemicalKind,B,MOV1,B] \stopchemical \quad
+ \dontleavehmode \startchemical \chemical[\ChemicalKind,B,MOV2,B] \stopchemical \quad
+ \dontleavehmode \startchemical \chemical[\ChemicalKind,B,MOV3,B] \stopchemical \quad
+ \dontleavehmode \startchemical \chemical[\ChemicalKind,B,MOV4,B] \stopchemical \quad
+ \dontleavehmode \startchemical \chemical[\ChemicalKind,B,MOV5,B] \stopchemical \quad
+ \dontleavehmode \startchemical \chemical[\ChemicalKind,B,MOV6,B] \stopchemical \quad
+
+ \dontleavehmode \startchemical \chemical[\ChemicalKind,B,R,AU] \stopchemical \quad
+ \dontleavehmode \startchemical \chemical[\ChemicalKind,B,R,AD] \stopchemical \quad
+ \dontleavehmode \startchemical \chemical[\ChemicalKind,B,EB] \stopchemical \quad
+ \dontleavehmode \startchemical \chemical[\ChemicalKind,DB] \stopchemical \quad
+ \dontleavehmode \startchemical \chemical[\ChemicalKind,ER] \stopchemical \quad
+ \dontleavehmode \startchemical \chemical[\ChemicalKind,DR] \stopchemical \quad
+ \dontleavehmode \startchemical \chemical[\ChemicalKind,BR] \stopchemical \quad
+ \dontleavehmode \startchemical \chemical[\ChemicalKind,SB] \stopchemical \quad
+ \dontleavehmode \startchemical \chemical[\ChemicalKind,-SB] \stopchemical \quad
+ \dontleavehmode \startchemical \chemical[\ChemicalKind,+SB] \stopchemical \quad
+ \dontleavehmode \startchemical \chemical[\ChemicalKind,B,C] \stopchemical \quad
+ \dontleavehmode \startchemical \chemical[\ChemicalKind,B,CC] \stopchemical \quad
+ \dontleavehmode \startchemical \chemical[\ChemicalKind,B,CD] \stopchemical \quad
+ \dontleavehmode \startchemical \chemical[\ChemicalKind,B,CCD] \stopchemical \quad
+ \dontleavehmode \startchemical \chemical[\ChemicalKind,SB,SR] \stopchemical \quad
+ \dontleavehmode \startchemical \chemical[\ChemicalKind,SB,-SR] \stopchemical \quad
+ \dontleavehmode \startchemical \chemical[\ChemicalKind,SB,+SR] \stopchemical \quad
+ \dontleavehmode \startchemical \chemical[\ChemicalKind,B,R] \stopchemical \quad
+ \dontleavehmode \startchemical \chemical[\ChemicalKind,B,RD] \stopchemical \quad
+
+ \dontleavehmode \startchemical \chemical[\ChemicalKind,SB,Z] [a,b,c,d,e,f] \stopchemical \quad
+ \dontleavehmode \startchemical \chemical[\ChemicalKind,B,R,RZ] [a,b,c,d,e,f] \stopchemical \quad
+ \dontleavehmode \startchemical \chemical[\ChemicalKind,B,+R,+RZ] [a,b,c,d,e,f] \stopchemical \quad
+ \dontleavehmode \startchemical \chemical[\ChemicalKind,B,-R,-RZ] [a,b,c,d,e,f] \stopchemical \quad
+ \dontleavehmode \startchemical \chemical[\ChemicalKind,B,RB,RZ] [a,b,c,d,e,f] \stopchemical \quad
+ \dontleavehmode \startchemical \chemical[\ChemicalKind,B,+RB,+RZ][a,b,c,d,e,f] \stopchemical \quad
+ \dontleavehmode \startchemical \chemical[\ChemicalKind,B,-RB,-RZ][a,b,c,d,e,f] \stopchemical \quad
+ \dontleavehmode \startchemical \chemical[\ChemicalKind,B,R,RT] [a,b,c,d,e,f] \stopchemical \quad
+ \dontleavehmode \startchemical \chemical[\ChemicalKind,B,R,RTT] [a,b,c,d,e,f] \stopchemical \quad
+ \dontleavehmode \startchemical \chemical[\ChemicalKind,B,R,RBT] [a,b,c,d,e,f] \stopchemical \quad
+
+ \dontleavehmode \startchemical \chemical[\ChemicalKind,B,R,RN] \stopchemical \quad
+ \dontleavehmode \startchemical \chemical[\ChemicalKind,B,R,RTN] \stopchemical \quad
+ \dontleavehmode \startchemical \chemical[\ChemicalKind,B,R,RBN] \stopchemical \quad
+
+ \dontleavehmode \startchemical \chemical[\ChemicalKind,B,R,RN] \stopchemical \quad
+ \dontleavehmode \startchemical \chemical[\ChemicalKind,ROT1,B,R,RN] \stopchemical \quad
+ \dontleavehmode \startchemical \chemical[\ChemicalKind,ROT2,B,R,RN] \stopchemical \quad
+ \dontleavehmode \startchemical \chemical[\ChemicalKind,ROT3,B,R,RN] \stopchemical \quad
+
+\stopbuffer
+
+\dontcomplain
+
+% \startTEXpage
+
+\setupchemicalframed[frame=on]
+
+% \startTEXpage
+% \noindent \startchemical \chemical[THREE, B,R,RZ][RZ_1,RZ_2,RZ_3]\stopchemical
+% \noindent \startchemical \chemical[THREE,ROT1,B,R,RZ][RZ_1,RZ_2,RZ_3]\stopchemical
+% \noindent \startchemical \chemical[THREE,ROT2,B,R,RZ][RZ_1,RZ_2,RZ_3]\stopchemical
+% \noindent \startchemical \chemical[THREE,ROT3,B,R,RZ][RZ_1,RZ_2,RZ_3]\stopchemical
+% \noindent \startchemical \chemical[THREE,ROT4,B,R,RZ][RZ_1,RZ_2,RZ_3]\stopchemical
+
+% \noindent \startchemical \chemical[THREE, B,+R,+RZ][+RZ_1,+RZ_2,+RZ_3]\stopchemical
+% \noindent \startchemical \chemical[THREE,ROT1,B,+R,+RZ][+RZ_1,+RZ_2,+RZ_3]\stopchemical
+% \noindent \startchemical \chemical[THREE,ROT2,B,+R,+RZ][+RZ_1,+RZ_2,+RZ_3]\stopchemical
+% \noindent \startchemical \chemical[THREE,ROT3,B,+R,+RZ][+RZ_1,+RZ_2,+RZ_3]\stopchemical
+% \noindent \startchemical \chemical[THREE,ROT4,B,+R,+RZ][+RZ_1,+RZ_2,+RZ_3]\stopchemical
+
+% \noindent \startchemical \chemical[THREE, B,-R,-RZ][-RZ_1,-RZ_2,-RZ_3]\stopchemical
+% \noindent \startchemical \chemical[THREE,ROT1,B,-R,-RZ][-RZ_1,-RZ_2,-RZ_3]\stopchemical
+% \noindent \startchemical \chemical[THREE,ROT2,B,-R,-RZ][-RZ_1,-RZ_2,-RZ_3]\stopchemical
+% \noindent \startchemical \chemical[THREE,ROT3,B,-R,-RZ][-RZ_1,-RZ_2,-RZ_3]\stopchemical
+% \noindent \startchemical \chemical[THREE,ROT4,B,-R,-RZ][-RZ_1,-RZ_2,-RZ_3]\stopchemical
+% \stopTEXpage
+
+% \startTEXpage
+% \noindent \startchemical \chemical[SIX,ROT1,B, R, RZ, AU][RZ_1,RZ_2,RZ_3,RZ_4,RZ_5,RZ_6]\stopchemical
+% \noindent \startchemical \chemical[SIX,ROT2,B, R, RZ, AU][RZ_1,RZ_2,RZ_3,RZ_4,RZ_5,RZ_6]\stopchemical
+% \noindent \startchemical \chemical[SIX,ROT3,B, R, RZ, AU][RZ_1,RZ_2,RZ_3,RZ_4,RZ_5,RZ_6]\stopchemical
+% \noindent \startchemical \chemical[SIX,ROT4,B, R, RZ, AU][RZ_1,RZ_2,RZ_3,RZ_4,RZ_5,RZ_6]\stopchemical
+
+% \noindent \startchemical \chemical[SIX,ROT1,B,-R,-RZ][-RZ_1,-RZ_2,-RZ_3,-RZ_4,-RZ_5,-RZ_6]\stopchemical
+% \noindent \startchemical \chemical[SIX,ROT2,B,-R,-RZ][-RZ_1,-RZ_2,-RZ_3,-RZ_4,-RZ_5,-RZ_6]\stopchemical
+% \noindent \startchemical \chemical[SIX,ROT3,B,-R,-RZ][-RZ_1,-RZ_2,-RZ_3,-RZ_4,-RZ_5,-RZ_6]\stopchemical
+% \noindent \startchemical \chemical[SIX,ROT4,B,-R,-RZ][-RZ_1,-RZ_2,-RZ_3,-RZ_4,-RZ_5,-RZ_6]\stopchemical
+
+% \noindent \startchemical \chemical[SIX,ROT1,B,+R,+RZ][+RZ_1,+RZ_2,+RZ_3,+RZ_4,+RZ_5,+RZ_6]\stopchemical
+% \noindent \startchemical \chemical[SIX,ROT2,B,+R,+RZ][+RZ_1,+RZ_2,+RZ_3,+RZ_4,+RZ_5,+RZ_6]\stopchemical
+% \noindent \startchemical \chemical[SIX,ROT3,B,+R,+RZ][+RZ_1,+RZ_2,+RZ_3,+RZ_4,+RZ_5,+RZ_6]\stopchemical
+% \noindent \startchemical \chemical[SIX,ROT4,B,+R,+RZ][+RZ_1,+RZ_2,+RZ_3,+RZ_4,+RZ_5,+RZ_6]\stopchemical
+% \stopTEXpage
+
+% \startTEXpage
+% \noindent \startchemical \chemical[FIVE,ROT1,B, R, RZ, AU][RZ_1,RZ_2,RZ_3,RZ_4,RZ_5,RZ_6]\stopchemical
+% \noindent \startchemical \chemical[FIVE,ROT2,B, R, RZ, AU][RZ_1,RZ_2,RZ_3,RZ_4,RZ_5,RZ_6]\stopchemical
+% \noindent \startchemical \chemical[FIVE,ROT3,B, R, RZ, AU][RZ_1,RZ_2,RZ_3,RZ_4,RZ_5,RZ_6]\stopchemical
+% \noindent \startchemical \chemical[FIVE,ROT4,B, R, RZ, AU][RZ_1,RZ_2,RZ_3,RZ_4,RZ_5,RZ_6]\stopchemical
+
+% \noindent \startchemical \chemical[FIVE,ROT1,B,-R,-RZ][-RZ_1,-RZ_2,-RZ_3,-RZ_4,-RZ_5,-RZ_6]\stopchemical
+% \noindent \startchemical \chemical[FIVE,ROT2,B,-R,-RZ][-RZ_1,-RZ_2,-RZ_3,-RZ_4,-RZ_5,-RZ_6]\stopchemical
+% \noindent \startchemical \chemical[FIVE,ROT3,B,-R,-RZ][-RZ_1,-RZ_2,-RZ_3,-RZ_4,-RZ_5,-RZ_6]\stopchemical
+% \noindent \startchemical \chemical[FIVE,ROT4,B,-R,-RZ][-RZ_1,-RZ_2,-RZ_3,-RZ_4,-RZ_5,-RZ_6]\stopchemical
+
+% \noindent \startchemical \chemical[FIVE,ROT1,B,+R,+RZ][+RZ_1,+RZ_2,+RZ_3,+RZ_4,+RZ_5,+RZ_6]\stopchemical
+% \noindent \startchemical \chemical[FIVE,ROT2,B,+R,+RZ][+RZ_1,+RZ_2,+RZ_3,+RZ_4,+RZ_5,+RZ_6]\stopchemical
+% \noindent \startchemical \chemical[FIVE,ROT3,B,+R,+RZ][+RZ_1,+RZ_2,+RZ_3,+RZ_4,+RZ_5,+RZ_6]\stopchemical
+% \noindent \startchemical \chemical[FIVE,ROT4,B,+R,+RZ][+RZ_1,+RZ_2,+RZ_3,+RZ_4,+RZ_5,+RZ_6]\stopchemical
+% \stopTEXpage
+
+% \startTEXpage
+% \noindent \startchemical \chemical[FOUR,ROT1,B, R, RZ, AU][RZ_1,RZ_2,RZ_3,RZ_4,RZ_5,RZ_6]\stopchemical
+% \noindent \startchemical \chemical[FOUR,ROT2,B, R, RZ, AU][RZ_1,RZ_2,RZ_3,RZ_4,RZ_5,RZ_6]\stopchemical
+% \noindent \startchemical \chemical[FOUR,ROT3,B, R, RZ, AU][RZ_1,RZ_2,RZ_3,RZ_4,RZ_5,RZ_6]\stopchemical
+% \noindent \startchemical \chemical[FOUR,ROT4,B, R, RZ, AU][RZ_1,RZ_2,RZ_3,RZ_4,RZ_5,RZ_6]\stopchemical
+
+% \noindent \startchemical \chemical[FOUR,ROT1,B,-R,-RZ][-RZ_1,-RZ_2,-RZ_3,-RZ_4,-RZ_5,-RZ_6]\stopchemical
+% \noindent \startchemical \chemical[FOUR,ROT2,B,-R,-RZ][-RZ_1,-RZ_2,-RZ_3,-RZ_4,-RZ_5,-RZ_6]\stopchemical
+% \noindent \startchemical \chemical[FOUR,ROT3,B,-R,-RZ][-RZ_1,-RZ_2,-RZ_3,-RZ_4,-RZ_5,-RZ_6]\stopchemical
+% \noindent \startchemical \chemical[FOUR,ROT4,B,-R,-RZ][-RZ_1,-RZ_2,-RZ_3,-RZ_4,-RZ_5,-RZ_6]\stopchemical
+
+% \noindent \startchemical \chemical[FOUR,ROT1,B,+R,+RZ][+RZ_1,+RZ_2,+RZ_3,+RZ_4,+RZ_5,+RZ_6]\stopchemical
+% \noindent \startchemical \chemical[FOUR,ROT2,B,+R,+RZ][+RZ_1,+RZ_2,+RZ_3,+RZ_4,+RZ_5,+RZ_6]\stopchemical
+% \noindent \startchemical \chemical[FOUR,ROT3,B,+R,+RZ][+RZ_1,+RZ_2,+RZ_3,+RZ_4,+RZ_5,+RZ_6]\stopchemical
+% \noindent \startchemical \chemical[FOUR,ROT4,B,+R,+RZ][+RZ_1,+RZ_2,+RZ_3,+RZ_4,+RZ_5,+RZ_6]\stopchemical
+% \stopTEXpage
+
+% \startTEXpage
+% \noindent \startchemical \chemical[THREE,ROT1,B, R, RZ, AU][RZ_1,RZ_2,RZ_3,RZ_4,RZ_5,RZ_6]\stopchemical
+% \noindent \startchemical \chemical[THREE,ROT2,B, R, RZ, AU][RZ_1,RZ_2,RZ_3,RZ_4,RZ_5,RZ_6]\stopchemical
+% \noindent \startchemical \chemical[THREE,ROT3,B, R, RZ, AU][RZ_1,RZ_2,RZ_3,RZ_4,RZ_5,RZ_6]\stopchemical
+% \noindent \startchemical \chemical[THREE,ROT4,B, R, RZ, AU][RZ_1,RZ_2,RZ_3,RZ_4,RZ_5,RZ_6]\stopchemical
+
+% \noindent \startchemical \chemical[THREE,ROT1,B,-R,-RZ][-RZ_1,-RZ_2,-RZ_3,-RZ_4,-RZ_5,-RZ_6]\stopchemical
+% \noindent \startchemical \chemical[THREE,ROT2,B,-R,-RZ][-RZ_1,-RZ_2,-RZ_3,-RZ_4,-RZ_5,-RZ_6]\stopchemical
+% \noindent \startchemical \chemical[THREE,ROT3,B,-R,-RZ][-RZ_1,-RZ_2,-RZ_3,-RZ_4,-RZ_5,-RZ_6]\stopchemical
+% \noindent \startchemical \chemical[THREE,ROT4,B,-R,-RZ][-RZ_1,-RZ_2,-RZ_3,-RZ_4,-RZ_5,-RZ_6]\stopchemical
+
+% \noindent \startchemical \chemical[THREE,ROT1,B,+R,+RZ][+RZ_1,+RZ_2,+RZ_3,+RZ_4,+RZ_5,+RZ_6]\stopchemical
+% \noindent \startchemical \chemical[THREE,ROT2,B,+R,+RZ][+RZ_1,+RZ_2,+RZ_3,+RZ_4,+RZ_5,+RZ_6]\stopchemical
+% \noindent \startchemical \chemical[THREE,ROT3,B,+R,+RZ][+RZ_1,+RZ_2,+RZ_3,+RZ_4,+RZ_5,+RZ_6]\stopchemical
+% \noindent \startchemical \chemical[THREE,ROT4,B,+R,+RZ][+RZ_1,+RZ_2,+RZ_3,+RZ_4,+RZ_5,+RZ_6]\stopchemical
+% \stopTEXpage
+
+% \startTEXpage
+% \noindent \startchemical \chemical[EIGHT,ROT1,B, R, RZ, AU][RZ_1,RZ_2,RZ_3,RZ_4,RZ_5,RZ_6,RZ_7,RZ_8]\stopchemical
+% \noindent \startchemical \chemical[EIGHT,ROT2,B, R, RZ, AU][RZ_1,RZ_2,RZ_3,RZ_4,RZ_5,RZ_6,RZ_7,RZ_8]\stopchemical
+% \noindent \startchemical \chemical[EIGHT,ROT3,B, R, RZ, AU][RZ_1,RZ_2,RZ_3,RZ_4,RZ_5,RZ_6,RZ_7,RZ_8]\stopchemical
+% \noindent \startchemical \chemical[EIGHT,ROT4,B, R, RZ, AU][RZ_1,RZ_2,RZ_3,RZ_4,RZ_5,RZ_6,RZ_7,RZ_8]\stopchemical
+
+% \noindent \startchemical \chemical[EIGHT,ROT1,B,-R,-RZ][-RZ_1,-RZ_2,-RZ_3,-RZ_4,-RZ_5,-RZ_6,-RZ_7,-RZ_8]\stopchemical
+% \noindent \startchemical \chemical[EIGHT,ROT2,B,-R,-RZ][-RZ_1,-RZ_2,-RZ_3,-RZ_4,-RZ_5,-RZ_6,-RZ_7,-RZ_8]\stopchemical
+% \noindent \startchemical \chemical[EIGHT,ROT3,B,-R,-RZ][-RZ_1,-RZ_2,-RZ_3,-RZ_4,-RZ_5,-RZ_6,-RZ_7,-RZ_8]\stopchemical
+% \noindent \startchemical \chemical[EIGHT,ROT4,B,-R,-RZ][-RZ_1,-RZ_2,-RZ_3,-RZ_4,-RZ_5,-RZ_6,-RZ_7,-RZ_8]\stopchemical
+
+% \noindent \startchemical \chemical[EIGHT,ROT1,B,+R,+RZ][+RZ_1,+RZ_2,+RZ_3,+RZ_4,+RZ_5,+RZ_6,+RZ_7,+RZ_8]\stopchemical
+% \noindent \startchemical \chemical[EIGHT,ROT2,B,+R,+RZ][+RZ_1,+RZ_2,+RZ_3,+RZ_4,+RZ_5,+RZ_6,+RZ_7,+RZ_8]\stopchemical
+% \noindent \startchemical \chemical[EIGHT,ROT3,B,+R,+RZ][+RZ_1,+RZ_2,+RZ_3,+RZ_4,+RZ_5,+RZ_6,+RZ_7,+RZ_8]\stopchemical
+% \noindent \startchemical \chemical[EIGHT,ROT4,B,+R,+RZ][+RZ_1,+RZ_2,+RZ_3,+RZ_4,+RZ_5,+RZ_6,+RZ_7,+RZ_8]\stopchemical
+% \stopTEXpage
+
+% \enabletrackers[chemistry.molecules]
+
+% \startchemicalformula
+% \chemical{S}
+% \chemical{+}
+% \chemical{O_2}
+% \chemical{GIVES}
+% \chemical{\+{4}{S}}
+% \chemical{\+{4}{S}\-{2}{O_2}}
+% \chemical{\-{2}{O_2}}
+% \stopchemicalformula
+
+% \startformula
+% \chemical{S}
+% \chemical{+}
+% \chemical{O_2}
+% \chemical{GIVES}
+% \chemical{\+{4}{S}}
+% \chemical{\+{4}{S}\-{2}{O_2}}
+% \chemical{\-{2}{O_2}}
+% \stopformula
+
+
+\startTEXpage[offset=2cm]
+
+\startchemical[width=fit,size=small,scale=small,frame=on]
+ \chemical[SIX,B]
+\stopchemical
+
+% \startchemical[width=fit,size=small,scale=small,frame=on]
+% \chemical[ONE,SB258]
+% \stopchemical
+
+% \startchemical[width=fit,size=small,scale=small,frame=on]
+% \chemical[ONE,ROT3,SB258]
+% \stopchemical
+
+% \startchemical[width=fit,size=small,scale=small,frame=on]
+% \chemical[FIVE,ROT3,SB34,+SB2,-SB5,Z345,DR35,SR4,CRZ35,SUB1,ONE,SB258,Z0,Z28][C,N,C,O,O,CH,COOC_2H_5,COOC_2H_5]
+% \stopchemical
+
+% \startchemical[scale=small,width=8000,height=8000,frame=on]
+% \chemical[SIX,SB2356,DB14,Z2346,SR36,RZ36] [C,N,C,C,H,H_2]
+% \chemical[PB:Z1,ONE,Z0,DIR8,Z0,SB24,DB7,Z27,PE][C,C,CH_3,O]
+% \chemical[PB:Z5,ONE,Z0,DIR6,Z0,SB24,DB7,Z47,PE][C,C,H_3C,O]
+% \chemical[SR24,RZ24] [CH_3,H_3C]
+% \stopchemical
+
+% \startchemical[scale=small,width=6000,height=6000,frame=on]
+% \chemical[SIX,SB2356,DB14,Z,SR36,RZ36,SR1245,RZ24][C,C,N,C,C,C,H,H_2,CH_3,H_3C]
+% \chemical[PB:RZ1,ONE,Z0,SB2,DB7,Z27,PE][C,CH_3,O]
+% \chemical[PB:RZ5,ONE,Z0,SB4,DB7,Z47,PE][C,H_3C,O]
+% \stopchemical
+
+% \startchemical[width=fit,size=small,scale=small,frame=on]
+% \chemical
+% [SIX,B,C,ADJ1,FIVE,ROT3,SB34,+SB2,-SB5,Z345,DR35,SR4,CRZ35,SUB1,ONE,OFF1,SB258,Z0,Z28]
+% [C,N,C,O,O,CH,COOC_2H_5,COOC_2H_5]
+% \stopchemical
+
+% \startchemical[width=fit,height=fit,frame=on,scale=small]
+% \chemical
+% [ONE,SB15,DB7,Z057,3OFF1,MOV1,Z0,3OFF1,MOV1,
+% Z017,SB1357,MOV3,Z0,MOV3,SB1357,Z013,3OFF5,
+% MOV5,Z0,3OFF5,SB5,Z5]
+% [C,H_2N,NH,(CH_2)_3,C,COOH,H,\SL{NH},C,COOH,H,
+% (CH_2)_2,HOOC]
+% \stopchemical
+
+% \startchemical[width=fit,height=fit,frame=on,scale=small]
+% \chemical
+% [ONE,SB15,DB7,Z057,3OFF1,MOV1,Z0,3OFF1,MOV1,Z017,SB1357,MOV3,Z0,MOV3,SB1357,Z013,3OFF5,MOV5,Z0,3OFF5,SB5,Z5]
+% [C,H_2N,NH,(CH_2)_3,C,COOH,H,\SL{NH},C,COOH,H,(CH_2)_2,HOOC]
+% \stopchemical
+
+% \startchemical
+% \chemical[ONE,Z0,DB,Z][C_0,C_1,C_1,C_3,C_4,C_5,C_6,C_7,C_8]
+% \stopchemical
+
+% \startchemical
+% \chemical[ONE,Z0,SB,Z][C_0,C_1,C_1,C_3,C_4,C_5,C_6,C_7,C_8]
+% \stopchemical
+
+% \startchemical
+% \chemical[ONE,Z0,DB,CZ][C_0,C_1,C_1,C_3,C_4,C_5,C_6,C_7,C_8]
+% \stopchemical
+
+% \startchemical
+% [width=fit,top=2000,bottom=2000,
+% scale=small,size=small]%
+% \chemical
+% [ONE,
+% SAVE,
+% Z0,SB731,MOV1,Z0,SB1,MOV1,Z0,DB8,CZ8,SB1,Z1,
+% RESTORE,
+% SAVE,
+% SUB4,ONE,Z0,SB3,SB1,MOV1,Z0,SB1,MOV1,Z0,DB8,CZ8,SB1,Z1,
+% RESTORE,
+% SUB2,ONE,Z0,SB7,SB1,MOV1,Z0,SB1,MOV1,Z0,DB8,CZ8,SB1,Z1]
+% [\SR{HC},O,C,O,C_{19}H_{39},
+% \SR{H_{2}C},O,C,O,C_{17}H_{29},
+% \SR{H_{2}C},O,C,O,C_{21}H_{41}]
+% \stopchemical
+
+% \chemical[width=fit,height=fit,frame=on,scale=small]
+% [ONE,Z0,MOV7,SB1357,Z017,3OFF5,MOV5,Z0,3OFF5,MOV5,SB15,DB7,Z057,MOV0,MOV3,SB1357,Z013,MOV5,3OFF5,Z0,6OFF5,SB5,Z5]
+% [\SL{NH},C,COOH,H,(CH_2)_3,C,H_2H,NH,C,COOH,H,(CH_2)_2,HOOC]
+% \stopchemical
+
+% \chemical[width=fit,height=fit,frame=on,scale=small]
+% [ONE,Z0,MOV7,SB1357,Z017,3OFF5,MOV5,Z0,3OFF5,MOV5,SB15,DB7,Z057,MOV0,MOV3,SB1357,Z013,MOV5,3OFF5,Z0,6OFF5,SB5,Z5]
+% [\SL{NH},C,COOH,H,(CH_2)_3,C,H_2H,NH,C,COOH,H,(CH_2)_2,HOOC]
+% \stopchemical
+
+% \startchemical[width=fit,top=1500,bottom=3500]
+% \chemical[ONE,Z0,DB1,SB3,SB7,Z7,MOV1,Z0,SB3,SB7,Z3,Z7,MOV0,SUB2,SIX,B,R6,C][C,H,C,H,H]
+% \chemical[ONE,Z0,DB1,SB3,SB7,Z7,MOV1,Z0,SB3,SB7,Z3,Z7,MOV0,SUB2,SIX,B,R6,C][C,H,C,H,H]
+% \bottext{styreen}
+% \stopchemical
+
+% \startchemical
+% \chemical[SPACE,PLUS,SPACE]
+% \stopchemical
+% \startchemical[right=600]
+% \chemical[ONE,CZ0][3CH_{3}OH]
+% \stopchemical
+% \startchemical
+% \chemical[SPACE,GIVES,SPACE,SPACE][H^+/H_2O]
+% \stopchemical
+% \startchemical
+% \chemical
+% [ONE,
+% SAVE,
+% Z0,SB7,SB3,SB1,Z1,
+% RESTORE,
+% SAVE,
+% SUB4,ONE,Z0,SB3,SB1,Z1,
+% RESTORE,
+% SUB2,ONE,Z0,SB7,SB1,Z1]
+% [\SR{HC},OH,
+% \SR{H_{2}C},OH,
+% \SR{H_{2}C},OH]
+% \stopchemical
+% \startchemical
+% \chemical[SPACE,PLUS,SPACE]
+% \stopchemical
+
+% \startchemical
+% \chemical
+% [ONE,
+% SAVE,
+% Z0,DB8,CZ8,SB1,SB5,Z5,MOV1,Z0,SB1,Z1,
+% RESTORE,
+% SAVE,
+% SUB4,ONE,Z0,DB8,CZ8,SB1,SB5,Z5,MOV1,Z0,SB1,Z1,
+% RESTORE,
+% SUB2,ONE,Z0,DB8,CZ8,SB1,SB5,Z5,MOV1,Z0,SB1,Z1]
+% [C,O,C_{19}H_{39},O,CH_{3},
+% C,O,C_{17}H_{29},O,CH_{3},
+% C,O,C_{21}H_{41},O,CH_{3}]
+% \stopchemical
+
+% \startchemical[height=4500,bottom=2500]
+% \bottext{$\beta$-D-Fructopyranose}
+% \chemical[SIX,FRONT,BB,B1236,+SB4,-SB5,Z5,+R12346,+RZ12346,-R12346,-RZ12346][Z_0,+R_1,+R_2,+R_3,+R_4,+R_6,-R_1,-R_2,-R_3,-R_4,-R_6]
+% \stopchemical
+
+% \startchemical[height=4500,bottom=2500]
+% \chemical[SIX,FRONT,BB,B]
+% \stopchemical
+
+% \startchemical
+% [width=fit,height=fit,frame=on]
+% \chemical
+% [SIX,DB135,SB246,Z,SR6,RZ6][C,C,N,\SR{HC},N,C,NH_2]
+% \chemical
+% [SIX,MOV1,DB1,SB23,SS6,Z1..3,SR3,RZ3][N,\SL{CH},N,H]
+% \stopchemical
+
+% \startchemical \chemical[SIX,B,R,RZ1=a] \stopchemical
+% \startchemical \chemical[SIX,B,R,RZ1..3=a] \stopchemical
+% \startchemical \chemical[SIX,B,R,RZ135=a] \stopchemical
+% \startchemical \chemical[SIX,B,R,RZ] [a] \stopchemical
+% \startchemical \chemical[SIX,B,R,RZ] [a,b] \stopchemical
+% \startchemical \chemical[SIX,B,R,RZ=a] \stopchemical
+
+% \definechemical[molecule]
+% {\chemical
+% [ONE,Z0,SB1357,
+% SAVE,SUB2,SIX,B,R6,C,RESTORE,
+% MOV1,Z0,SB137,MOV1,Z0,SB37,MOV1]
+% [C,C,C]}
+
+% \startchemical[width=fit,height=fit]
+% \chemical[molecule,molecule,molecule]
+% \stopchemical
+
+% \definechemical[molecule]
+% {\chemical
+% [ONE,Z0,SB1357,
+% SAVE,SUB2,SIX,B,R6,C,RESTORE,
+% MOV1,Z0,SB137,MOV1,Z0,SB37,MOV1]}
+
+% \startchemical[width=fit,height=fit]
+% \chemical[molecule,molecule,molecule][A,B,C,D,E,F,G,H,I]
+% \stopchemical
+
+\stopTEXpage
+
+% \noindent \startchemical
+% \chemical[SIX,B1..3]
+% \stopchemical
+
+% \noindent \startchemical[width=fit,height=fit] % auto5 ipb off5
+% \chemical[SIX,B,C,R,RZ][RZ_1,RZ_2,RZ_3,RZ_4,RZ_5,RZ_6]
+% \stopchemical
+% \noindent \startchemical[width=fit,height=fit] % auto5 ipb off5
+% \chemical[SIX,ROT1,B,C,R,RZ][RZ_1,RZ_2,RZ_3,RZ_4,RZ_5,RZ_6]
+% \stopchemical
+% \startchemical[width=fit,height=fit] % auto5 ipb off5
+% \chemical[SIX,ROT2,B,C,R,RZ][RZ_1,RZ_2,RZ_3,RZ_4,RZ_5,RZ_6]
+% \stopchemical
+% \startchemical[width=fit,height=fit] % auto5 ipb off5
+% \chemical[SIX,ROT3,B,C,R,RZ][RZ_1,RZ_2,RZ_3,RZ_4,RZ_5,RZ_6]
+% \stopchemical
+% \startchemical[width=fit,height=fit] % auto5 ipb off5
+% \chemical[SIX,ROT4,B,C,R,RZ][RZ_1,RZ_2,RZ_3,RZ_4,RZ_5,RZ_6]
+% \stopchemical
+
+% \startchemical[width=fit,height=fit,axis=on] % auto5 ipb off5
+% \chemical[SIX,B,C,R6,PB:RZ6,ONE,CZ0,OE1,SB5,MOV5,CZ0,OFF5,OE5,PE][CH,CH_2]
+% \stopchemical
+
+% \dontleavehmode \startchemical \chemical[SIX,B,R,RZ][1,2,3,4,5,6,] \stopchemical
+
+% \start
+% \setupchemicalframed[frame=off]
+% \dontleavehmode \startchemical[scale=medium,style=slanted,color=red,rulecolor=green,left=2000,right=4000,top=2000,bottom=2000,axis=on] \chemical[SIX,B,R,RZ][1,2,3,4,5,6,] \stopchemical
+
+% \dontleavehmode
+% \startchemical[width=fit,height=fit]
+% \chemical[SIX,B][1,2,3,4,5,6]
+% \start
+% \setupchemical[rulecolor=red]
+% \chemical[SIX,R][1,2,3,4,5,6]
+% \stop
+% \chemical[SIX,RZ][1,2,3,4,5,6]
+% \stopchemical
+% \stop
+
+% \stopTEXpage
+
+% \stoptext
+
+% \startTEXpage
+
+% \dontleavehmode \startchemical \chemical[ONE,SB,Z0,Z][0,1,2,3,4,5,6,7,8] \stopchemical \quad
+% \dontleavehmode \startchemical \chemical[ONE,DB,Z0,Z][0,1,2,3,4,5,6,7,8] \stopchemical \quad
+% \dontleavehmode \startchemical \chemical[ONE,TB,Z0,Z][0,1,2,3,4,5,6,7,8] \stopchemical \quad
+% \dontleavehmode \startchemical \chemical[ONE,EP,Z0][0] \stopchemical \quad
+% \dontleavehmode \startchemical \chemical[ONE,ES,Z0][0] \stopchemical \quad
+% \dontleavehmode \startchemical \chemical[ONE,ED,Z0][0] \stopchemical \quad
+% \dontleavehmode \startchemical \chemical[ONE,ET,Z0][0] \stopchemical \quad
+
+
+% \dontleavehmode \startchemical \chemical[ONE,SD,Z0][0] \stopchemical \quad
+% \dontleavehmode \startchemical \chemical[ONE,LDD,Z0][0] \stopchemical \quad
+% \dontleavehmode \startchemical \chemical[ONE,RDD,Z0][0] \stopchemical \quad
+% \dontleavehmode \startchemical \chemical[ONE,HB,Z0][0] \stopchemical \quad
+% \dontleavehmode \startchemical \chemical[ONE,BB,Z0][0] \stopchemical \quad
+% \dontleavehmode \startchemical \chemical[ONE,OE,Z0][0] \stopchemical \quad
+
+
+% \dontleavehmode \startchemical \chemical[ONE,SB,Z] [1,2,3,4,5,6,7,8] \stopchemical \quad
+% \dontleavehmode \startchemical \chemical[ONE,SB,CZ][1,2,3,4,5,6,7,8] \stopchemical \quad
+% \dontleavehmode \startchemical \chemical[ONE,SB,ZT][a,b,c,d,e,f,g,h] \stopchemical \quad
+% \dontleavehmode \startchemical \chemical[ONE,SB,ZN][1,2,3,4,5,6,7,8] \stopchemical \quad
+% \dontleavehmode \startchemical \chemical[ONE,SB,ZBT][1,2,3,4,5,6,7,8] \stopchemical \quad
+% \dontleavehmode \startchemical \chemical[ONE,SB,ZBN][1,2,3,4,5,6,7,8] \stopchemical \quad
+% \dontleavehmode \startchemical \chemical[ONE,SB,ZTT][1,2,3,4,5,6,7,8] \stopchemical \quad
+% \dontleavehmode \startchemical \chemical[ONE,SB,ZTN][1,2,3,4,5,6,7,8] \stopchemical \quad
+
+% \dontleavehmode \startchemical \chemical[ONE,SB,MOV1,SB] \stopchemical \quad
+% \dontleavehmode \startchemical \chemical[ONE,SB,MOV1,SB,MOV3,SB] \stopchemical \quad
+% \dontleavehmode \startchemical \chemical[SIX,B,MOV1,B] \stopchemical \quad
+
+
+% \dontleavehmode \startchemical \chemical[ONE,SB,Z0,Z][0,1,2,3,4,5,6] \stopchemical \quad
+% \stopTEXpage
+
+
+% \dorecurse{1000}{\dontleavehmode \startchemical \chemical[SIX,B,R,RZ][a,b,c,d,e,f] \stopchemical \quad}
+
+% \dontleavehmode \startchemical \chemical[SIX,B,R,RT] [a,b,c,d,e,f] \stopchemical \quad
+% \dontleavehmode \startchemical \chemical[SIX,B,R,RTT] [a,b,c,d,e,f] \stopchemical \quad
+% \dontleavehmode \startchemical \chemical[SIX,B,R,RBT] [a,b,c,d,e,f] \stopchemical \quad
+
+% \dontleavehmode \startchemical \chemical[SIX,B,R,+R,-R] \stopchemical \quad
+% \dontleavehmode \startchemical \chemical[SIX,B1..4] \stopchemical \quad
+
+% \dontleavehmode \startchemical \chemical[SIX,B,ZN] \stopchemical \quad
+% \dontleavehmode \startchemical \chemical[SIX,B,ZT][A,B,C,D,E,F] \stopchemical \quad
+% \dontleavehmode \startchemical \chemical[SIX,B,R,AU] \stopchemical \quad
+% \dontleavehmode \startchemical \chemical[SIX,B,R,AD] \stopchemical \quad
+
+% \dontleavehmode \startchemical \chemical[SIX,B,ADJ1,SIX,B] \stopchemical \quad
+% \dontleavehmode \startchemical \chemical[SIX,B,ADJ1,FIVE,ROT1,B] \stopchemical \quad
+% \dontleavehmode \startchemical \chemical[SIX,B,ADJ1,FOUR,B] \stopchemical \quad
+% \dontleavehmode \startchemical \chemical[SIX,B,ADJ1,THREE,B] \stopchemical \quad
+
+% \definechemical[sixring]
+% {\chemical[SIX,B,R]}
+
+% \startchemical[frame=on,width=6000]
+% \chemical[sixring,RZ][A,B,C,D,E,F]
+% \stopchemical
+
+% \definechemical[test]
+% {\chemical[SIX,SB,Z][A,B,C,D,E,F]}
+
+% \startchemical
+% \chemical[SIX,SB,Z,ADJ1,test,ADJ1,SIX,SB,Z][a,b,c,d,e,f,g,h,j,k,l,m,P,Q,R,S,T,U,W]
+% \chemical[ADJ1,SIX,SB,Z][1,2,3,4,5,6]
+% \stopchemical
+
+% \definechemical[test]{\chemical[SIX,SB,Z]}
+
+% \startchemical
+% \chemical[SIX,SB,Z,ADJ1,test,ADJ1,SIX,SB,Z][a,b,c,d,e,f,g,h,j,k,l,m,P,Q,R,S,T,U,W]
+% \chemical[ADJ1,SIX,SB,Z][1,2,3,4,5,6]
+% \stopchemical
+
+% \startchemical
+% \chemical[ADJ1,SIX,SB,Z][a_1,a_2,a_3,a_4,a_5,\ominus]
+% \stopchemical
+
+% \startchemical
+% \chemical[SIX,SB,Z,SAVE,ADJ1,SIX,SB,Z,ADJ1,SIX,SB,Z,RESTORE,ADJ3,SIX,SB,Z][1,2,3,4,5,6,a,b,c,d,e,f,A,B,C,D,E,F,!,!,!,!,!,!]
+% \stopchemical
+
+% $$
+% \startchemical
+% \chemical[OPENCOMPLEX]
+% \stopchemical
+% \startchemical
+% \chemical[SIX,SB,Z][1,2,3,4,5,6]
+% \stopchemical
+% \startchemical
+% \chemical[SPACE,GIVES,SPACE][a,b]
+% \stopchemical
+% \startchemical
+% \chemical[SIX,SB,Z][1,2,3,4,5,6]
+% \stopchemical
+% \startchemical
+% \chemical[CLOSECOMPLEX]
+% \stopchemical
+% $$
+
+% \stoptext
+
+% \page
+
+% \def\ChemicalKind{SIX} \getbuffer[test-set]
+% \def\ChemicalKind{FIVE} \getbuffer[test-set]
+% \def\ChemicalKind{FOUR} \getbuffer[test-set]
+% \def\ChemicalKind{THREE} \getbuffer[test-set]
+
+% \startchemical
+% \chemical[SIX,SB,C135,SR,Z0,Z,RZ][X,ch:r->A,ch:g->B,ch:b->C,D,E,F,a,b,c,d,e,f]
+% \chemical[MOV1,SIX,SB,C135,SR,Z0,Z,RZ][X,ch:r->A,ch:g->B,ch:b->C,D,E,F,a,b,c,d,e,f]
+% \chemical[MOV3,SIX,SB,C135,SR,Z0,Z,RZ][X,ch:r->A,ch:g->B,ch:b->C,D,E,F,a,b,c,d,e,f]
+% \stopchemical
+
+\stoptext
diff --git a/Master/texmf-dist/tex/context/test/context-test.tex b/Master/texmf-dist/tex/context/test/context-test.tex
new file mode 100644
index 00000000000..3cf002baf24
--- /dev/null
+++ b/Master/texmf-dist/tex/context/test/context-test.tex
@@ -0,0 +1,27 @@
+\starttext
+
+\startmode[mkiv]
+
+ \startluacode
+ tex.sprint("hello")
+ \stopluacode
+
+ \startMPcode
+ draw textext("hello") rotated 45 ;
+ \stopMPcode
+
+ \framed{hello}
+
+\stopmode
+
+\startnotmode[mkiv]
+
+ \startMPcode
+ draw textext("hello") rotated -45 ;
+ \stopMPcode
+
+ \framed{hello}
+
+\stopnotmode
+
+\stoptext
diff --git a/Master/texmf-dist/tex/context/test/sort-lan-test.tex b/Master/texmf-dist/tex/context/test/sort-lan-test.tex
new file mode 100644
index 00000000000..0a368c091c7
--- /dev/null
+++ b/Master/texmf-dist/tex/context/test/sort-lan-test.tex
@@ -0,0 +1,38 @@
+\starttext
+
+\mainlanguage[de]
+
+\index{paar}
+\index{Paar}
+\index{paarig}
+\index{paarmal}
+\index{Pace}
+\index{Pacht}
+\index{Pack}
+\completeindex
+
+\page
+
+\mainlanguage[fi]
+
+\index{Aaltonen}
+\index{Aravirta}
+\index{Eriksson}
+\index{Hämeenniemi}
+\index{Kaisa}
+\index{Maija}
+\index{Mäntylä}
+\index{Nuorela}
+\index{Päätalo}
+\index{Suomi}
+\index{Uotila}
+\index{Yli-Hannuksela}
+\index{Ähtäri}
+\index{Äänekoski}
+\index{Åke}
+\index{Åsa}
+\index{Öhman}
+
+\completeindex
+
+\stoptext
diff --git a/Master/texmf-dist/tex/context/user/cont-sys.rme b/Master/texmf-dist/tex/context/user/cont-sys.rme
index 335a7d98435..11c0141e795 100644
--- a/Master/texmf-dist/tex/context/user/cont-sys.rme
+++ b/Master/texmf-dist/tex/context/user/cont-sys.rme
@@ -14,8 +14,8 @@
\unprotect
% Speed up typescript loading, but at the cost of much memory:
-%
-% \preloadtypescripts
+
+\preloadtypescripts
% If you want another default font:
%
@@ -121,7 +121,6 @@
% When you have your own fonts installed, you may want to predefine:
%
% \usetypescriptfile[type-buy]
-% \usetypescriptfile [type-gyr]
% Some styles default to Lucida Bright. You can overload
% Lucida by Times cum suis. Watch out, the pos collection
@@ -158,8 +157,8 @@
% Enabling run time \METAPOST\ (also enable \write18 in
% texmf.cnf):
-% \runMPgraphicstrue
-% \runMPTEXgraphicstrue
+\runMPgraphicstrue
+\runMPTEXgraphicstrue
% This saves some runtime, but needs a format, which you can
% make with 'texexec --make --alone metafun'. Make sure that
diff --git a/Master/texmf-dist/tex/generic/context/luatex-basics.tex b/Master/texmf-dist/tex/generic/context/luatex-basics.tex
new file mode 100644
index 00000000000..8308204d572
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/context/luatex-basics.tex
@@ -0,0 +1,21 @@
+%D \module
+%D [ file=luatex-basics,
+%D version=2009.12.01,
+%D title=\LUATEX\ Support Macros,
+%D subtitle=Attribute Allocation,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=public domain]
+
+%D As soon as we feel the need this file will file will contain an extension
+%D to the standard plain register allocation. For the moment we stick to a
+%D rather dumb attribute allocator. We start at 256 because we don't want
+%D any interference with the attributes used in the font handler.
+
+\newcount \lastallocatedattribute \lastallocatedattribute=255
+
+\def\newattribute#1%
+ {\global\advance\lastallocatedattribute 1
+ \attributedef#1\lastallocatedattribute}
+
+\endinput
diff --git a/Master/texmf-dist/tex/generic/context/luatex-fonts-merged.lua b/Master/texmf-dist/tex/generic/context/luatex-fonts-merged.lua
new file mode 100644
index 00000000000..3834afce5d3
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/context/luatex-fonts-merged.lua
@@ -0,0 +1,11248 @@
+-- merged file : c:/data/develop/context/texmf/tex/generic/context/luatex-fonts-merged.lua
+-- parent file : c:/data/develop/context/texmf/tex/generic/context/luatex-fonts.lua
+-- merge date : 08/19/09 17:12:50
+
+do -- begin closure to overcome local limits and interference
+
+if not modules then modules = { } end modules ['l-string'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local sub, gsub, find, match, gmatch, format, char, byte, rep = string.sub, string.gsub, string.find, string.match, string.gmatch, string.format, string.char, string.byte, string.rep
+
+if not string.split then
+
+ -- this will be overloaded by a faster lpeg variant
+
+ function string:split(pattern)
+ if #self > 0 then
+ local t = { }
+ for s in gmatch(self..pattern,"(.-)"..pattern) do
+ t[#t+1] = s
+ end
+ return t
+ else
+ return { }
+ end
+ end
+
+end
+
+local chr_to_esc = {
+ ["%"] = "%%",
+ ["."] = "%.",
+ ["+"] = "%+", ["-"] = "%-", ["*"] = "%*",
+ ["^"] = "%^", ["$"] = "%$",
+ ["["] = "%[", ["]"] = "%]",
+ ["("] = "%(", [")"] = "%)",
+ ["{"] = "%{", ["}"] = "%}"
+}
+
+string.chr_to_esc = chr_to_esc
+
+function string:esc() -- variant 2
+ return (gsub(self,"(.)",chr_to_esc))
+end
+
+function string:unquote()
+ return (gsub(self,"^([\"\'])(.*)%1$","%2"))
+end
+
+function string:quote() -- we could use format("%q")
+ return '"' .. self:unquote() .. '"'
+end
+
+function string:count(pattern) -- variant 3
+ local n = 0
+ for _ in gmatch(self,pattern) do
+ n = n + 1
+ end
+ return n
+end
+
+function string:limit(n,sentinel)
+ if #self > n then
+ sentinel = sentinel or " ..."
+ return sub(self,1,(n-#sentinel)) .. sentinel
+ else
+ return self
+ end
+end
+
+function string:strip()
+ return (gsub(self,"^%s*(.-)%s*$", "%1"))
+end
+
+function string:is_empty()
+ return not find(find,"%S")
+end
+
+function string:enhance(pattern,action)
+ local ok, n = true, 0
+ while ok do
+ ok = false
+ self = gsub(self,pattern, function(...)
+ ok, n = true, n + 1
+ return action(...)
+ end)
+ end
+ return self, n
+end
+
+local chr_to_hex, hex_to_chr = { }, { }
+
+for i=0,255 do
+ local c, h = char(i), format("%02X",i)
+ chr_to_hex[c], hex_to_chr[h] = h, c
+end
+
+function string:to_hex()
+ return (gsub(self or "","(.)",chr_to_hex))
+end
+
+function string:from_hex()
+ return (gsub(self or "","(..)",hex_to_chr))
+end
+
+if not string.characters then
+
+ local function nextchar(str, index)
+ index = index + 1
+ return (index <= #str) and index or nil, str:sub(index,index)
+ end
+ function string:characters()
+ return nextchar, self, 0
+ end
+ local function nextbyte(str, index)
+ index = index + 1
+ return (index <= #str) and index or nil, byte(str:sub(index,index))
+ end
+ function string:bytes()
+ return nextbyte, self, 0
+ end
+
+end
+
+-- we can use format for this (neg n)
+
+function string:rpadd(n,chr)
+ local m = n-#self
+ if m > 0 then
+ return self .. self.rep(chr or " ",m)
+ else
+ return self
+ end
+end
+
+function string:lpadd(n,chr)
+ local m = n-#self
+ if m > 0 then
+ return self.rep(chr or " ",m) .. self
+ else
+ return self
+ end
+end
+
+string.padd = string.rpadd
+
+function is_number(str) -- tonumber
+ return find(str,"^[%-%+]?[%d]-%.?[%d+]$") == 1
+end
+
+--~ print(is_number("1"))
+--~ print(is_number("1.1"))
+--~ print(is_number(".1"))
+--~ print(is_number("-0.1"))
+--~ print(is_number("+0.1"))
+--~ print(is_number("-.1"))
+--~ print(is_number("+.1"))
+
+function string:split_settings() -- no {} handling, see l-aux for lpeg variant
+ if find(self,"=") then
+ local t = { }
+ for k,v in gmatch(self,"(%a+)=([^%,]*)") do
+ t[k] = v
+ end
+ return t
+ else
+ return nil
+ end
+end
+
+local patterns_escapes = {
+ ["-"] = "%-",
+ ["."] = "%.",
+ ["+"] = "%+",
+ ["*"] = "%*",
+ ["%"] = "%%",
+ ["("] = "%)",
+ [")"] = "%)",
+ ["["] = "%[",
+ ["]"] = "%]",
+}
+
+function string:pattesc()
+ return (gsub(self,".",patterns_escapes))
+end
+
+function string:tohash()
+ local t = { }
+ for s in gmatch(self,"([^, ]+)") do -- lpeg
+ t[s] = true
+ end
+ return t
+end
+
+local pattern = lpeg.Ct(lpeg.C(1)^0)
+
+function string:totable()
+ return pattern:match(self)
+end
+
+--~ for _, str in ipairs {
+--~ "1234567123456712345671234567",
+--~ "a\tb\tc",
+--~ "aa\tbb\tcc",
+--~ "aaa\tbbb\tccc",
+--~ "aaaa\tbbbb\tcccc",
+--~ "aaaaa\tbbbbb\tccccc",
+--~ "aaaaaa\tbbbbbb\tcccccc",
+--~ } do print(string.tabtospace(str)) end
+
+function string.tabtospace(str,tab)
+ -- we don't handle embedded newlines
+ while true do
+ local s = find(str,"\t")
+ if s then
+ if not tab then tab = 7 end -- only when found
+ local d = tab-(s-1)%tab
+ if d > 0 then
+ str = gsub(str,"\t",rep(" ",d),1)
+ else
+ str = gsub(str,"\t","",1)
+ end
+ else
+ break
+ end
+ end
+ return str
+end
+
+function string:compactlong() -- strips newlines and leading spaces
+ self = gsub(self,"[\n\r]+ *","")
+ self = gsub(self,"^ *","")
+ return self
+end
+
+end -- closure
+
+do -- begin closure to overcome local limits and interference
+
+if not modules then modules = { } end modules ['l-lpeg'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local P, S, Ct, C, Cs, Cc = lpeg.P, lpeg.S, lpeg.Ct, lpeg.C, lpeg.Cs, lpeg.Cc
+
+--~ l-lpeg.lua :
+
+--~ lpeg.digit = lpeg.R('09')^1
+--~ lpeg.sign = lpeg.S('+-')^1
+--~ lpeg.cardinal = lpeg.P(lpeg.sign^0 * lpeg.digit^1)
+--~ lpeg.integer = lpeg.P(lpeg.sign^0 * lpeg.digit^1)
+--~ lpeg.float = lpeg.P(lpeg.sign^0 * lpeg.digit^0 * lpeg.P('.') * lpeg.digit^1)
+--~ lpeg.number = lpeg.float + lpeg.integer
+--~ lpeg.oct = lpeg.P("0") * lpeg.R('07')^1
+--~ lpeg.hex = lpeg.P("0x") * (lpeg.R('09') + lpeg.R('AF'))^1
+--~ lpeg.uppercase = lpeg.P("AZ")
+--~ lpeg.lowercase = lpeg.P("az")
+
+--~ lpeg.eol = lpeg.S('\r\n\f')^1 -- includes formfeed
+--~ lpeg.space = lpeg.S(' ')^1
+--~ lpeg.nonspace = lpeg.P(1-lpeg.space)^1
+--~ lpeg.whitespace = lpeg.S(' \r\n\f\t')^1
+--~ lpeg.nonwhitespace = lpeg.P(1-lpeg.whitespace)^1
+
+local hash = { }
+
+function lpeg.anywhere(pattern) --slightly adapted from website
+ return P { P(pattern) + 1 * lpeg.V(1) }
+end
+
+function lpeg.startswith(pattern) --slightly adapted
+ return P(pattern)
+end
+
+function lpeg.splitter(pattern, action)
+ return (((1-P(pattern))^1)/action+1)^0
+end
+
+-- variant:
+
+--~ local parser = lpeg.Ct(lpeg.splitat(newline))
+
+local crlf = P("\r\n")
+local cr = P("\r")
+local lf = P("\n")
+local space = S(" \t\f\v") -- + string.char(0xc2, 0xa0) if we want utf (cf mail roberto)
+local newline = crlf + cr + lf
+local spacing = space^0 * newline
+
+local empty = spacing * Cc("")
+local nonempty = Cs((1-spacing)^1) * spacing^-1
+local content = (empty + nonempty)^1
+
+local capture = Ct(content^0)
+
+function string:splitlines()
+ return capture:match(self)
+end
+
+lpeg.linebyline = content -- better make a sublibrary
+
+--~ local p = lpeg.splitat("->",false) print(p:match("oeps->what->more")) -- oeps what more
+--~ local p = lpeg.splitat("->",true) print(p:match("oeps->what->more")) -- oeps what->more
+--~ local p = lpeg.splitat("->",false) print(p:match("oeps")) -- oeps
+--~ local p = lpeg.splitat("->",true) print(p:match("oeps")) -- oeps
+
+local splitters_s, splitters_m = { }, { }
+
+local function splitat(separator,single)
+ local splitter = (single and splitters_s[separator]) or splitters_m[separator]
+ if not splitter then
+ separator = P(separator)
+ if single then
+ local other, any = C((1 - separator)^0), P(1)
+ splitter = other * (separator * C(any^0) + "")
+ splitters_s[separator] = splitter
+ else
+ local other = C((1 - separator)^0)
+ splitter = other * (separator * other)^0
+ splitters_m[separator] = splitter
+ end
+ end
+ return splitter
+end
+
+lpeg.splitat = splitat
+
+local cache = { }
+
+function string:split(separator)
+ local c = cache[separator]
+ if not c then
+ c = Ct(splitat(separator))
+ cache[separator] = c
+ end
+ return c:match(self)
+end
+
+end -- closure
+
+do -- begin closure to overcome local limits and interference
+
+if not modules then modules = { } end modules ['l-boolean'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+boolean = boolean or { }
+
+local type, tonumber = type, tonumber
+
+function boolean.tonumber(b)
+ if b then return 1 else return 0 end
+end
+
+function toboolean(str,tolerant)
+ if tolerant then
+ local tstr = type(str)
+ if tstr == "string" then
+ return str == "true" or str == "yes" or str == "on" or str == "1" or str == "t"
+ elseif tstr == "number" then
+ return tonumber(str) ~= 0
+ elseif tstr == "nil" then
+ return false
+ else
+ return str
+ end
+ elseif str == "true" then
+ return true
+ elseif str == "false" then
+ return false
+ else
+ return str
+ end
+end
+
+function string.is_boolean(str)
+ if type(str) == "string" then
+ if str == "true" or str == "yes" or str == "on" or str == "t" then
+ return true
+ elseif str == "false" or str == "no" or str == "off" or str == "f" then
+ return false
+ end
+ end
+ return nil
+end
+
+function boolean.alwaystrue()
+ return true
+end
+
+function boolean.falsetrue()
+ return false
+end
+
+end -- closure
+
+do -- begin closure to overcome local limits and interference
+
+if not modules then modules = { } end modules ['l-math'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local floor, sin, cos, tan = math.floor, math.sin, math.cos, math.tan
+
+if not math.round then
+ function math.round(x)
+ return floor(x + 0.5)
+ end
+end
+
+if not math.div then
+ function math.div(n,m)
+ return floor(n/m)
+ end
+end
+
+if not math.mod then
+ function math.mod(n,m)
+ return n % m
+ end
+end
+
+local pipi = 2*math.pi/360
+
+function math.sind(d)
+ return sin(d*pipi)
+end
+
+function math.cosd(d)
+ return cos(d*pipi)
+end
+
+function math.tand(d)
+ return tan(d*pipi)
+end
+
+end -- closure
+
+do -- begin closure to overcome local limits and interference
+
+if not modules then modules = { } end modules ['l-table'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+table.join = table.concat
+
+local concat, sort, insert, remove = table.concat, table.sort, table.insert, table.remove
+local format, find, gsub, lower, dump = string.format, string.find, string.gsub, string.lower, string.dump
+local getmetatable, setmetatable = getmetatable, setmetatable
+local type, next, tostring, ipairs = type, next, tostring, ipairs
+
+function table.strip(tab)
+ local lst = { }
+ for i=1,#tab do
+ local s = gsub(tab[i],"^%s*(.-)%s*$","%1")
+ if s == "" then
+ -- skip this one
+ else
+ lst[#lst+1] = s
+ end
+ end
+ return lst
+end
+
+local function compare(a,b)
+ return (tostring(a) < tostring(b))
+end
+
+local function sortedkeys(tab)
+ local srt, kind = { }, 0 -- 0=unknown 1=string, 2=number 3=mixed
+ for key,_ in next, tab do
+ srt[#srt+1] = key
+ if kind == 3 then
+ -- no further check
+ else
+ local tkey = type(key)
+ if tkey == "string" then
+ -- if kind == 2 then kind = 3 else kind = 1 end
+ kind = (kind == 2 and 3) or 1
+ elseif tkey == "number" then
+ -- if kind == 1 then kind = 3 else kind = 2 end
+ kind = (kind == 1 and 3) or 2
+ else
+ kind = 3
+ end
+ end
+ end
+ if kind == 0 or kind == 3 then
+ sort(srt,compare)
+ else
+ sort(srt)
+ end
+ return srt
+end
+
+local function sortedhashkeys(tab) -- fast one
+ local srt = { }
+ for key,_ in next, tab do
+ srt[#srt+1] = key
+ end
+ sort(srt)
+ return srt
+end
+
+table.sortedkeys = sortedkeys
+table.sortedhashkeys = sortedhashkeys
+
+function table.sortedpairs(t)
+ local s = sortedhashkeys(t) -- maybe just sortedkeys
+ local n = 0
+ local function kv(s)
+ n = n + 1
+ local k = s[n]
+ return k, t[k]
+ end
+ return kv, s
+end
+
+function table.append(t, list)
+ for _,v in next, list do
+ insert(t,v)
+ end
+end
+
+function table.prepend(t, list)
+ for k,v in next, list do
+ insert(t,k,v)
+ end
+end
+
+function table.merge(t, ...) -- first one is target
+ t = t or {}
+ local lst = {...}
+ for i=1,#lst do
+ for k, v in next, lst[i] do
+ t[k] = v
+ end
+ end
+ return t
+end
+
+function table.merged(...)
+ local tmp, lst = { }, {...}
+ for i=1,#lst do
+ for k, v in next, lst[i] do
+ tmp[k] = v
+ end
+ end
+ return tmp
+end
+
+function table.imerge(t, ...)
+ local lst = {...}
+ for i=1,#lst do
+ local nst = lst[i]
+ for j=1,#nst do
+ t[#t+1] = nst[j]
+ end
+ end
+ return t
+end
+
+function table.imerged(...)
+ local tmp, lst = { }, {...}
+ for i=1,#lst do
+ local nst = lst[i]
+ for j=1,#nst do
+ tmp[#tmp+1] = nst[j]
+ end
+ end
+ return tmp
+end
+
+local function fastcopy(old) -- fast one
+ if old then
+ local new = { }
+ for k,v in next, old do
+ if type(v) == "table" then
+ new[k] = fastcopy(v) -- was just table.copy
+ else
+ new[k] = v
+ end
+ end
+ -- optional second arg
+ local mt = getmetatable(old)
+ if mt then
+ setmetatable(new,mt)
+ end
+ return new
+ else
+ return { }
+ end
+end
+
+local function copy(t, tables) -- taken from lua wiki, slightly adapted
+ tables = tables or { }
+ local tcopy = {}
+ if not tables[t] then
+ tables[t] = tcopy
+ end
+ for i,v in next, t do -- brrr, what happens with sparse indexed
+ if type(i) == "table" then
+ if tables[i] then
+ i = tables[i]
+ else
+ i = copy(i, tables)
+ end
+ end
+ if type(v) ~= "table" then
+ tcopy[i] = v
+ elseif tables[v] then
+ tcopy[i] = tables[v]
+ else
+ tcopy[i] = copy(v, tables)
+ end
+ end
+ local mt = getmetatable(t)
+ if mt then
+ setmetatable(tcopy,mt)
+ end
+ return tcopy
+end
+
+table.fastcopy = fastcopy
+table.copy = copy
+
+-- rougly: copy-loop : unpack : sub == 0.9 : 0.4 : 0.45 (so in critical apps, use unpack)
+
+function table.sub(t,i,j)
+ return { unpack(t,i,j) }
+end
+
+function table.replace(a,b)
+ for k,v in next, b do
+ a[k] = v
+ end
+end
+
+-- slower than #t on indexed tables (#t only returns the size of the numerically indexed slice)
+
+function table.is_empty(t)
+ return not t or not next(t)
+end
+
+function table.one_entry(t)
+ local n = next(t)
+ return n and not next(t,n)
+end
+
+function table.starts_at(t)
+ return ipairs(t,1)(t,0)
+end
+
+function table.tohash(t,value)
+ local h = { }
+ if t then
+ if value == nil then value = true end
+ for _, v in next, t do -- no ipairs here
+ h[v] = value
+ end
+ end
+ return h
+end
+
+function table.fromhash(t)
+ local h = { }
+ for k, v in next, t do -- no ipairs here
+ if v then h[#h+1] = k end
+ end
+ return h
+end
+
+--~ print(table.serialize(t), "\n")
+--~ print(table.serialize(t,"name"), "\n")
+--~ print(table.serialize(t,false), "\n")
+--~ print(table.serialize(t,true), "\n")
+--~ print(table.serialize(t,"name",true), "\n")
+--~ print(table.serialize(t,"name",true,true), "\n")
+
+table.serialize_functions = true
+table.serialize_compact = true
+table.serialize_inline = true
+
+local noquotes, hexify, handle, reduce, compact, inline, functions
+
+local reserved = table.tohash { -- intercept a language flaw, no reserved words as key
+ 'and', 'break', 'do', 'else', 'elseif', 'end', 'false', 'for', 'function', 'if',
+ 'in', 'local', 'nil', 'not', 'or', 'repeat', 'return', 'then', 'true', 'until', 'while',
+}
+
+local function simple_table(t)
+ if #t > 0 then
+ local n = 0
+ for _,v in next, t do
+ n = n + 1
+ end
+ if n == #t then
+ local tt = { }
+ for i=1,#t do
+ local v = t[i]
+ local tv = type(v)
+ if tv == "number" then
+ if hexify then
+ tt[#tt+1] = format("0x%04X",v)
+ else
+ tt[#tt+1] = tostring(v) -- tostring not needed
+ end
+ elseif tv == "boolean" then
+ tt[#tt+1] = tostring(v)
+ elseif tv == "string" then
+ tt[#tt+1] = format("%q",v)
+ else
+ tt = nil
+ break
+ end
+ end
+ return tt
+ end
+ end
+ return nil
+end
+
+-- Because this is a core function of mkiv I moved some function calls
+-- inline.
+--
+-- twice as fast in a test:
+--
+-- local propername = lpeg.P(lpeg.R("AZ","az","__") * lpeg.R("09","AZ","az", "__")^0 * lpeg.P(-1) )
+
+local function do_serialize(root,name,depth,level,indexed)
+ if level > 0 then
+ depth = depth .. " "
+ if indexed then
+ handle(format("%s{",depth))
+ elseif name then
+ --~ handle(format("%s%s={",depth,key(name)))
+ if type(name) == "number" then -- or find(k,"^%d+$") then
+ if hexify then
+ handle(format("%s[0x%04X]={",depth,name))
+ else
+ handle(format("%s[%s]={",depth,name))
+ end
+ elseif noquotes and not reserved[name] and find(name,"^%a[%w%_]*$") then
+ handle(format("%s%s={",depth,name))
+ else
+ handle(format("%s[%q]={",depth,name))
+ end
+ else
+ handle(format("%s{",depth))
+ end
+ end
+ if root and next(root) then
+ local first, last = nil, 0 -- #root cannot be trusted here
+ if compact then
+ -- NOT: for k=1,#root do (we need to quit at nil)
+ for k,v in ipairs(root) do -- can we use next?
+ if not first then first = k end
+ last = last + 1
+ end
+ end
+ local sk = sortedkeys(root)
+ for i=1,#sk do
+ local k = sk[i]
+ local v = root[k]
+ --~ if v == root then
+ -- circular
+ --~ else
+ local t = type(v)
+ if compact and first and type(k) == "number" and k >= first and k <= last then
+ if t == "number" then
+ if hexify then
+ handle(format("%s 0x%04X,",depth,v))
+ else
+ handle(format("%s %s,",depth,v))
+ end
+ elseif t == "string" then
+ if reduce and (find(v,"^[%-%+]?[%d]-%.?[%d+]$") == 1) then
+ handle(format("%s %s,",depth,v))
+ else
+ handle(format("%s %q,",depth,v))
+ end
+ elseif t == "table" then
+ if not next(v) then
+ handle(format("%s {},",depth))
+ elseif inline then -- and #t > 0
+ local st = simple_table(v)
+ if st then
+ handle(format("%s { %s },",depth,concat(st,", ")))
+ else
+ do_serialize(v,k,depth,level+1,true)
+ end
+ else
+ do_serialize(v,k,depth,level+1,true)
+ end
+ elseif t == "boolean" then
+ handle(format("%s %s,",depth,tostring(v)))
+ elseif t == "function" then
+ if functions then
+ handle(format('%s loadstring(%q),',depth,dump(v)))
+ else
+ handle(format('%s "function",',depth))
+ end
+ else
+ handle(format("%s %q,",depth,tostring(v)))
+ end
+ elseif k == "__p__" then -- parent
+ if false then
+ handle(format("%s __p__=nil,",depth))
+ end
+ elseif t == "number" then
+ --~ if hexify then
+ --~ handle(format("%s %s=0x%04X,",depth,key(k),v))
+ --~ else
+ --~ handle(format("%s %s=%s,",depth,key(k),v))
+ --~ end
+ if type(k) == "number" then -- or find(k,"^%d+$") then
+ if hexify then
+ handle(format("%s [0x%04X]=0x%04X,",depth,k,v))
+ else
+ handle(format("%s [%s]=%s,",depth,k,v))
+ end
+ elseif noquotes and not reserved[k] and find(k,"^%a[%w%_]*$") then
+ if hexify then
+ handle(format("%s %s=0x%04X,",depth,k,v))
+ else
+ handle(format("%s %s=%s,",depth,k,v))
+ end
+ else
+ if hexify then
+ handle(format("%s [%q]=0x%04X,",depth,k,v))
+ else
+ handle(format("%s [%q]=%s,",depth,k,v))
+ end
+ end
+ elseif t == "string" then
+ if reduce and (find(v,"^[%-%+]?[%d]-%.?[%d+]$") == 1) then
+ --~ handle(format("%s %s=%s,",depth,key(k),v))
+ if type(k) == "number" then -- or find(k,"^%d+$") then
+ if hexify then
+ handle(format("%s [0x%04X]=%s,",depth,k,v))
+ else
+ handle(format("%s [%s]=%s,",depth,k,v))
+ end
+ elseif noquotes and not reserved[k] and find(k,"^%a[%w%_]*$") then
+ handle(format("%s %s=%s,",depth,k,v))
+ else
+ handle(format("%s [%q]=%s,",depth,k,v))
+ end
+ else
+ --~ handle(format("%s %s=%q,",depth,key(k),v))
+ if type(k) == "number" then -- or find(k,"^%d+$") then
+ if hexify then
+ handle(format("%s [0x%04X]=%q,",depth,k,v))
+ else
+ handle(format("%s [%s]=%q,",depth,k,v))
+ end
+ elseif noquotes and not reserved[k] and find(k,"^%a[%w%_]*$") then
+ handle(format("%s %s=%q,",depth,k,v))
+ else
+ handle(format("%s [%q]=%q,",depth,k,v))
+ end
+ end
+ elseif t == "table" then
+ if not next(v) then
+ --~ handle(format("%s %s={},",depth,key(k)))
+ if type(k) == "number" then -- or find(k,"^%d+$") then
+ if hexify then
+ handle(format("%s [0x%04X]={},",depth,k))
+ else
+ handle(format("%s [%s]={},",depth,k))
+ end
+ elseif noquotes and not reserved[k] and find(k,"^%a[%w%_]*$") then
+ handle(format("%s %s={},",depth,k))
+ else
+ handle(format("%s [%q]={},",depth,k))
+ end
+ elseif inline then
+ local st = simple_table(v)
+ if st then
+ --~ handle(format("%s %s={ %s },",depth,key(k),concat(st,", ")))
+ if type(k) == "number" then -- or find(k,"^%d+$") then
+ if hexify then
+ handle(format("%s [0x%04X]={ %s },",depth,k,concat(st,", ")))
+ else
+ handle(format("%s [%s]={ %s },",depth,k,concat(st,", ")))
+ end
+ elseif noquotes and not reserved[k] and find(k,"^%a[%w%_]*$") then
+ handle(format("%s %s={ %s },",depth,k,concat(st,", ")))
+ else
+ handle(format("%s [%q]={ %s },",depth,k,concat(st,", ")))
+ end
+ else
+ do_serialize(v,k,depth,level+1)
+ end
+ else
+ do_serialize(v,k,depth,level+1)
+ end
+ elseif t == "boolean" then
+ --~ handle(format("%s %s=%s,",depth,key(k),tostring(v)))
+ if type(k) == "number" then -- or find(k,"^%d+$") then
+ if hexify then
+ handle(format("%s [0x%04X]=%s,",depth,k,tostring(v)))
+ else
+ handle(format("%s [%s]=%s,",depth,k,tostring(v)))
+ end
+ elseif noquotes and not reserved[k] and find(k,"^%a[%w%_]*$") then
+ handle(format("%s %s=%s,",depth,k,tostring(v)))
+ else
+ handle(format("%s [%q]=%s,",depth,k,tostring(v)))
+ end
+ elseif t == "function" then
+ if functions then
+ --~ handle(format('%s %s=loadstring(%q),',depth,key(k),dump(v)))
+ if type(k) == "number" then -- or find(k,"^%d+$") then
+ if hexify then
+ handle(format("%s [0x%04X]=loadstring(%q),",depth,k,dump(v)))
+ else
+ handle(format("%s [%s]=loadstring(%q),",depth,k,dump(v)))
+ end
+ elseif noquotes and not reserved[k] and find(k,"^%a[%w%_]*$") then
+ handle(format("%s %s=loadstring(%q),",depth,k,dump(v)))
+ else
+ handle(format("%s [%q]=loadstring(%q),",depth,k,dump(v)))
+ end
+ end
+ else
+ --~ handle(format("%s %s=%q,",depth,key(k),tostring(v)))
+ if type(k) == "number" then -- or find(k,"^%d+$") then
+ if hexify then
+ handle(format("%s [0x%04X]=%q,",depth,k,tostring(v)))
+ else
+ handle(format("%s [%s]=%q,",depth,k,tostring(v)))
+ end
+ elseif noquotes and not reserved[k] and find(k,"^%a[%w%_]*$") then
+ handle(format("%s %s=%q,",depth,k,tostring(v)))
+ else
+ handle(format("%s [%q]=%q,",depth,k,tostring(v)))
+ end
+ end
+ --~ end
+ end
+ end
+ if level > 0 then
+ handle(format("%s},",depth))
+ end
+end
+
+-- replacing handle by a direct t[#t+1] = ... (plus test) is not much
+-- faster (0.03 on 1.00 for zapfino.tma)
+
+local function serialize(root,name,_handle,_reduce,_noquotes,_hexify)
+ noquotes = _noquotes
+ hexify = _hexify
+ handle = _handle or print
+ reduce = _reduce or false
+ compact = table.serialize_compact
+ inline = compact and table.serialize_inline
+ functions = table.serialize_functions
+ local tname = type(name)
+ if tname == "string" then
+ if name == "return" then
+ handle("return {")
+ else
+ handle(name .. "={")
+ end
+ elseif tname == "number" then
+ if hexify then
+ handle(format("[0x%04X]={",name))
+ else
+ handle("[" .. name .. "]={")
+ end
+ elseif tname == "boolean" then
+ if name then
+ handle("return {")
+ else
+ handle("{")
+ end
+ else
+ handle("t={")
+ end
+ if root and next(root) then
+ do_serialize(root,name,"",0,indexed)
+ end
+ handle("}")
+end
+
+--~ name:
+--~
+--~ true : return { }
+--~ false : { }
+--~ nil : t = { }
+--~ string : string = { }
+--~ 'return' : return { }
+--~ number : [number] = { }
+
+function table.serialize(root,name,reduce,noquotes,hexify)
+ local t = { }
+ local function flush(s)
+ t[#t+1] = s
+ end
+ serialize(root,name,flush,reduce,noquotes,hexify)
+ return concat(t,"\n")
+end
+
+function table.tohandle(handle,root,name,reduce,noquotes,hexify)
+ serialize(root,name,handle,reduce,noquotes,hexify)
+end
+
+-- sometimes tables are real use (zapfino extra pro is some 85M) in which
+-- case a stepwise serialization is nice; actually, we could consider:
+--
+-- for line in table.serializer(root,name,reduce,noquotes) do
+-- ...(line)
+-- end
+--
+-- so this is on the todo list
+
+table.tofile_maxtab = 2*1024
+
+function table.tofile(filename,root,name,reduce,noquotes,hexify)
+ local f = io.open(filename,'w')
+ if f then
+ local maxtab = table.tofile_maxtab
+ if maxtab > 1 then
+ local t = { }
+ local function flush(s)
+ t[#t+1] = s
+ if #t > maxtab then
+ f:write(concat(t,"\n"),"\n") -- hm, write(sometable) should be nice
+ t = { }
+ end
+ end
+ serialize(root,name,flush,reduce,noquotes,hexify)
+ f:write(concat(t,"\n"),"\n")
+ else
+ local function flush(s)
+ f:write(s,"\n")
+ end
+ serialize(root,name,flush,reduce,noquotes,hexify)
+ end
+ f:close()
+ end
+end
+
+local function flatten(t,f,complete)
+ for i=1,#t do
+ local v = t[i]
+ if type(v) == "table" then
+ if complete or type(v[1]) == "table" then
+ flatten(v,f,complete)
+ else
+ f[#f+1] = v
+ end
+ else
+ f[#f+1] = v
+ end
+ end
+end
+
+function table.flatten(t)
+ local f = { }
+ flatten(t,f,true)
+ return f
+end
+
+function table.unnest(t) -- bad name
+ local f = { }
+ flatten(t,f,false)
+ return f
+end
+
+table.flatten_one_level = table.unnest
+
+-- the next three may disappear
+
+function table.remove_value(t,value) -- todo: n
+ if value then
+ for i=1,#t do
+ if t[i] == value then
+ remove(t,i)
+ -- remove all, so no: return
+ end
+ end
+ end
+end
+
+function table.insert_before_value(t,value,str)
+ if str then
+ if value then
+ for i=1,#t do
+ if t[i] == value then
+ insert(t,i,str)
+ return
+ end
+ end
+ end
+ insert(t,1,str)
+ elseif value then
+ insert(t,1,value)
+ end
+end
+
+function table.insert_after_value(t,value,str)
+ if str then
+ if value then
+ for i=1,#t do
+ if t[i] == value then
+ insert(t,i+1,str)
+ return
+ end
+ end
+ end
+ t[#t+1] = str
+ elseif value then
+ t[#t+1] = value
+ end
+end
+
+local function are_equal(a,b,n,m) -- indexed
+ if a and b and #a == #b then
+ n = n or 1
+ m = m or #a
+ for i=n,m do
+ local ai, bi = a[i], b[i]
+ if ai==bi then
+ -- same
+ elseif type(ai)=="table" and type(bi)=="table" then
+ if not are_equal(ai,bi) then
+ return false
+ end
+ else
+ return false
+ end
+ end
+ return true
+ else
+ return false
+ end
+end
+
+local function identical(a,b) -- assumes same structure
+ for ka, va in next, a do
+ local vb = b[k]
+ if va == vb then
+ -- same
+ elseif type(va) == "table" and type(vb) == "table" then
+ if not identical(va,vb) then
+ return false
+ end
+ else
+ return false
+ end
+ end
+ return true
+end
+
+table.are_equal = are_equal
+table.identical = identical
+
+-- maybe also make a combined one
+
+function table.compact(t)
+ if t then
+ for k,v in next, t do
+ if not next(v) then
+ t[k] = nil
+ end
+ end
+ end
+end
+
+function table.contains(t, v)
+ if t then
+ for i=1, #t do
+ if t[i] == v then
+ return i
+ end
+ end
+ end
+ return false
+end
+
+function table.count(t)
+ local n, e = 0, next(t)
+ while e do
+ n, e = n + 1, next(t,e)
+ end
+ return n
+end
+
+function table.swapped(t)
+ local s = { }
+ for k, v in next, t do
+ s[v] = k
+ end
+ return s
+end
+
+--~ function table.are_equal(a,b)
+--~ return table.serialize(a) == table.serialize(b)
+--~ end
+
+function table.clone(t,p) -- t is optional or nil or table
+ if not p then
+ t, p = { }, t or { }
+ elseif not t then
+ t = { }
+ end
+ setmetatable(t, { __index = function(_,key) return p[key] end })
+ return t
+end
+
+function table.hexed(t,seperator)
+ local tt = { }
+ for i=1,#t do tt[i] = format("0x%04X",t[i]) end
+ return concat(tt,seperator or " ")
+end
+
+function table.reverse_hash(h)
+ local r = { }
+ for k,v in next, h do
+ r[v] = lower(gsub(k," ",""))
+ end
+ return r
+end
+
+function table.reverse(t)
+ local tt = { }
+ if #t > 0 then
+ for i=#t,1,-1 do
+ tt[#tt+1] = t[i]
+ end
+ end
+ return tt
+end
+
+--~ function table.keys(t)
+--~ local k = { }
+--~ for k,_ in next, t do
+--~ k[#k+1] = k
+--~ end
+--~ return k
+--~ end
+
+--~ function table.keys_as_string(t)
+--~ local k = { }
+--~ for k,_ in next, t do
+--~ k[#k+1] = k
+--~ end
+--~ return concat(k,"")
+--~ end
+
+end -- closure
+
+do -- begin closure to overcome local limits and interference
+
+if not modules then modules = { } end modules ['l-file'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- needs a cleanup
+
+file = file or { }
+
+local concat = table.concat
+local find, gmatch, match, gsub = string.find, string.gmatch, string.match, string.gsub
+
+function file.removesuffix(filename)
+ return (gsub(filename,"%.[%a%d]+$",""))
+end
+
+function file.addsuffix(filename, suffix)
+ if not find(filename,"%.[%a%d]+$") then
+ return filename .. "." .. suffix
+ else
+ return filename
+ end
+end
+
+function file.replacesuffix(filename, suffix)
+ return (gsub(filename,"%.[%a%d]+$","")) .. "." .. suffix
+end
+
+function file.dirname(name,default)
+ return match(name,"^(.+)[/\\].-$") or (default or "")
+end
+
+function file.basename(name)
+ return match(name,"^.+[/\\](.-)$") or name
+end
+
+function file.nameonly(name)
+ return (gsub(match(name,"^.+[/\\](.-)$") or name,"%..*$",""))
+end
+
+function file.extname(name)
+ return match(name,"^.+%.([^/\\]-)$") or ""
+end
+
+file.suffix = file.extname
+
+--~ print(file.join("x/","/y"))
+--~ print(file.join("http://","/y"))
+--~ print(file.join("http://a","/y"))
+--~ print(file.join("http:///a","/y"))
+--~ print(file.join("//nas-1","/y"))
+
+function file.join(...)
+ local pth = concat({...},"/")
+ pth = gsub(pth,"\\","/")
+ local a, b = match(pth,"^(.*://)(.*)$")
+ if a and b then
+ return a .. gsub(b,"//+","/")
+ end
+ a, b = match(pth,"^(//)(.*)$")
+ if a and b then
+ return a .. gsub(b,"//+","/")
+ end
+ return (gsub(pth,"//+","/"))
+end
+
+function file.iswritable(name)
+ local a = lfs.attributes(name) or lfs.attributes(file.dirname(name,"."))
+ return a and a.permissions:sub(2,2) == "w"
+end
+
+function file.isreadable(name)
+ local a = lfs.attributes(name)
+ return a and a.permissions:sub(1,1) == "r"
+end
+
+file.is_readable = file.isreadable
+file.is_writable = file.iswritable
+
+-- todo: lpeg
+
+function file.split_path(str)
+ local t = { }
+ str = gsub(str,"\\", "/")
+ str = gsub(str,"(%a):([;/])", "%1\001%2")
+ for name in gmatch(str,"([^;:]+)") do
+ if name ~= "" then
+ t[#t+1] = gsub(name,"\001",":")
+ end
+ end
+ return t
+end
+
+function file.join_path(tab)
+ return concat(tab,io.pathseparator) -- can have trailing //
+end
+
+function file.collapse_path(str)
+ str = gsub(str,"/%./","/")
+ local n, m = 1, 1
+ while n > 0 or m > 0 do
+ str, n = gsub(str,"[^/%.]+/%.%.$","")
+ str, m = gsub(str,"[^/%.]+/%.%./","")
+ end
+ str = gsub(str,"([^/])/$","%1")
+ str = gsub(str,"^%./","")
+ str = gsub(str,"/%.$","")
+ if str == "" then str = "." end
+ return str
+end
+
+--~ print(file.collapse_path("a/./b/.."))
+--~ print(file.collapse_path("a/aa/../b/bb"))
+--~ print(file.collapse_path("a/../.."))
+--~ print(file.collapse_path("a/.././././b/.."))
+--~ print(file.collapse_path("a/./././b/.."))
+--~ print(file.collapse_path("a/b/c/../.."))
+
+function file.robustname(str)
+ return (gsub(str,"[^%a%d%/%-%.\\]+","-"))
+end
+
+file.readdata = io.loaddata
+file.savedata = io.savedata
+
+function file.copy(oldname,newname)
+ file.savedata(newname,io.loaddata(oldname))
+end
+
+-- lpeg variants, slightly faster, not always
+
+--~ local period = lpeg.P(".")
+--~ local slashes = lpeg.S("\\/")
+--~ local noperiod = 1-period
+--~ local noslashes = 1-slashes
+--~ local name = noperiod^1
+
+--~ local pattern = (noslashes^0 * slashes)^0 * (noperiod^1 * period)^1 * lpeg.C(noperiod^1) * -1
+
+--~ function file.extname(name)
+--~ return pattern:match(name) or ""
+--~ end
+
+--~ local pattern = lpeg.Cs(((period * noperiod^1 * -1)/"" + 1)^1)
+
+--~ function file.removesuffix(name)
+--~ return pattern:match(name)
+--~ end
+
+--~ local pattern = (noslashes^0 * slashes)^1 * lpeg.C(noslashes^1) * -1
+
+--~ function file.basename(name)
+--~ return pattern:match(name) or name
+--~ end
+
+--~ local pattern = (noslashes^0 * slashes)^1 * lpeg.Cp() * noslashes^1 * -1
+
+--~ function file.dirname(name)
+--~ local p = pattern:match(name)
+--~ if p then
+--~ return name:sub(1,p-2)
+--~ else
+--~ return ""
+--~ end
+--~ end
+
+--~ local pattern = (noslashes^0 * slashes)^0 * (noperiod^1 * period)^1 * lpeg.Cp() * noperiod^1 * -1
+
+--~ function file.addsuffix(name, suffix)
+--~ local p = pattern:match(name)
+--~ if p then
+--~ return name
+--~ else
+--~ return name .. "." .. suffix
+--~ end
+--~ end
+
+--~ local pattern = (noslashes^0 * slashes)^0 * (noperiod^1 * period)^1 * lpeg.Cp() * noperiod^1 * -1
+
+--~ function file.replacesuffix(name,suffix)
+--~ local p = pattern:match(name)
+--~ if p then
+--~ return name:sub(1,p-2) .. "." .. suffix
+--~ else
+--~ return name .. "." .. suffix
+--~ end
+--~ end
+
+--~ local pattern = (noslashes^0 * slashes)^0 * lpeg.Cp() * ((noperiod^1 * period)^1 * lpeg.Cp() + lpeg.P(true)) * noperiod^1 * -1
+
+--~ function file.nameonly(name)
+--~ local a, b = pattern:match(name)
+--~ if b then
+--~ return name:sub(a,b-2)
+--~ elseif a then
+--~ return name:sub(a)
+--~ else
+--~ return name
+--~ end
+--~ end
+
+--~ local test = file.extname
+--~ local test = file.basename
+--~ local test = file.dirname
+--~ local test = file.addsuffix
+--~ local test = file.replacesuffix
+--~ local test = file.nameonly
+
+--~ print(1,test("./a/b/c/abd.def.xxx","!!!"))
+--~ print(2,test("./../b/c/abd.def.xxx","!!!"))
+--~ print(3,test("a/b/c/abd.def.xxx","!!!"))
+--~ print(4,test("a/b/c/def.xxx","!!!"))
+--~ print(5,test("a/b/c/def","!!!"))
+--~ print(6,test("def","!!!"))
+--~ print(7,test("def.xxx","!!!"))
+
+--~ local tim = os.clock() for i=1,250000 do local ext = test("abd.def.xxx","!!!") end print(os.clock()-tim)
+
+-- also rewrite previous
+
+local letter = lpeg.R("az","AZ") + lpeg.S("_-+")
+local separator = lpeg.P("://")
+
+local qualified = lpeg.P(".")^0 * lpeg.P("/") + letter*lpeg.P(":") + letter^1*separator + letter^1 * lpeg.P("/")
+local rootbased = lpeg.P("/") + letter*lpeg.P(":")
+
+-- ./name ../name /name c: :// name/name
+
+function file.is_qualified_path(filename)
+ return qualified:match(filename)
+end
+
+function file.is_rootbased_path(filename)
+ return rootbased:match(filename)
+end
+
+local slash = lpeg.S("\\/")
+local period = lpeg.P(".")
+local drive = lpeg.C(lpeg.R("az","AZ")) * lpeg.P(":")
+local path = lpeg.C(((1-slash)^0 * slash)^0)
+local suffix = period * lpeg.C(lpeg.P(1-period)^0 * lpeg.P(-1))
+local base = lpeg.C((1-suffix)^0)
+
+local pattern = (drive + lpeg.Cc("")) * (path + lpeg.Cc("")) * (base + lpeg.Cc("")) * (suffix + lpeg.Cc(""))
+
+function file.splitname(str) -- returns drive, path, base, suffix
+ return pattern:match(str)
+end
+
+-- function test(t) for k, v in pairs(t) do print(v, "=>", file.splitname(v)) end end
+--
+-- test { "c:", "c:/aa", "c:/aa/bb", "c:/aa/bb/cc", "c:/aa/bb/cc.dd", "c:/aa/bb/cc.dd.ee" }
+-- test { "c:", "c:aa", "c:aa/bb", "c:aa/bb/cc", "c:aa/bb/cc.dd", "c:aa/bb/cc.dd.ee" }
+-- test { "/aa", "/aa/bb", "/aa/bb/cc", "/aa/bb/cc.dd", "/aa/bb/cc.dd.ee" }
+-- test { "aa", "aa/bb", "aa/bb/cc", "aa/bb/cc.dd", "aa/bb/cc.dd.ee" }
+
+end -- closure
+
+do -- begin closure to overcome local limits and interference
+
+if not modules then modules = { } end modules ['l-io'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local byte = string.byte
+
+if string.find(os.getenv("PATH"),";") then
+ io.fileseparator, io.pathseparator = "\\", ";"
+else
+ io.fileseparator, io.pathseparator = "/" , ":"
+end
+
+function io.loaddata(filename,textmode)
+ local f = io.open(filename,(textmode and 'r') or 'rb')
+ if f then
+ -- collectgarbage("step") -- sometimes makes a big difference in mem consumption
+ local data = f:read('*all')
+ -- garbagecollector.check(data)
+ f:close()
+ return data
+ else
+ return nil
+ end
+end
+
+function io.savedata(filename,data,joiner)
+ local f = io.open(filename,"wb")
+ if f then
+ if type(data) == "table" then
+ f:write(table.join(data,joiner or ""))
+ elseif type(data) == "function" then
+ data(f)
+ else
+ f:write(data)
+ end
+ f:close()
+ return true
+ else
+ return false
+ end
+end
+
+function io.exists(filename)
+ local f = io.open(filename)
+ if f == nil then
+ return false
+ else
+ assert(f:close())
+ return true
+ end
+end
+
+function io.size(filename)
+ local f = io.open(filename)
+ if f == nil then
+ return 0
+ else
+ local s = f:seek("end")
+ assert(f:close())
+ return s
+ end
+end
+
+function io.noflines(f)
+ local n = 0
+ for _ in f:lines() do
+ n = n + 1
+ end
+ f:seek('set',0)
+ return n
+end
+
+local nextchar = {
+ [ 4] = function(f)
+ return f:read(1,1,1,1)
+ end,
+ [ 2] = function(f)
+ return f:read(1,1)
+ end,
+ [ 1] = function(f)
+ return f:read(1)
+ end,
+ [-2] = function(f)
+ local a, b = f:read(1,1)
+ return b, a
+ end,
+ [-4] = function(f)
+ local a, b, c, d = f:read(1,1,1,1)
+ return d, c, b, a
+ end
+}
+
+function io.characters(f,n)
+ if f then
+ return nextchar[n or 1], f
+ else
+ return nil, nil
+ end
+end
+
+local nextbyte = {
+ [4] = function(f)
+ local a, b, c, d = f:read(1,1,1,1)
+ if d then
+ return byte(a), byte(b), byte(c), byte(d)
+ else
+ return nil, nil, nil, nil
+ end
+ end,
+ [2] = function(f)
+ local a, b = f:read(1,1)
+ if b then
+ return byte(a), byte(b)
+ else
+ return nil, nil
+ end
+ end,
+ [1] = function (f)
+ local a = f:read(1)
+ if a then
+ return byte(a)
+ else
+ return nil
+ end
+ end,
+ [-2] = function (f)
+ local a, b = f:read(1,1)
+ if b then
+ return byte(b), byte(a)
+ else
+ return nil, nil
+ end
+ end,
+ [-4] = function(f)
+ local a, b, c, d = f:read(1,1,1,1)
+ if d then
+ return byte(d), byte(c), byte(b), byte(a)
+ else
+ return nil, nil, nil, nil
+ end
+ end
+}
+
+function io.bytes(f,n)
+ if f then
+ return nextbyte[n or 1], f
+ else
+ return nil, nil
+ end
+end
+
+function io.ask(question,default,options)
+ while true do
+ io.write(question)
+ if options then
+ io.write(string.format(" [%s]",table.concat(options,"|")))
+ end
+ if default then
+ io.write(string.format(" [%s]",default))
+ end
+ io.write(string.format(" "))
+ local answer = io.read()
+ answer = answer:gsub("^%s*(.*)%s*$","%1")
+ if answer == "" and default then
+ return default
+ elseif not options then
+ return answer
+ else
+ for _,v in pairs(options) do
+ if v == answer then
+ return answer
+ end
+ end
+ local pattern = "^" .. answer
+ for _,v in pairs(options) do
+ if v:find(pattern) then
+ return v
+ end
+ end
+ end
+ end
+end
+
+end -- closure
+
+do -- begin closure to overcome local limits and interference
+
+if not modules then modules = { } end modules ['luat-dum'] = {
+ version = 1.001,
+ comment = "companion to luatex-*.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local dummyfunction = function() end
+
+statistics = {
+ register = dummyfunction,
+ starttiming = dummyfunction,
+ stoptiming = dummyfunction,
+}
+trackers = {
+ register = dummyfunction,
+ enable = dummyfunction,
+ disable = dummyfunction,
+}
+storage = {
+ register = dummyfunction,
+ shared = { },
+}
+logs = {
+ report = dummyfunction,
+ simple = dummyfunction,
+}
+tasks = {
+ new = dummyfunction,
+ actions = dummyfunction,
+ appendaction = dummyfunction,
+ prependaction = dummyfunction,
+}
+
+-- we need to cheat a bit here
+
+texconfig.kpse_init = true
+
+resolvers = resolvers or { } -- no fancy file helpers used
+
+local remapper = {
+ otf = "opentype fonts",
+ ttf = "truetype fonts",
+ ttc = "truetype fonts",
+ dfont = "truetype dictionary",
+ cid = "other text files", -- will become "cid files"
+}
+
+function resolvers.find_file(name,kind)
+ name = string.gsub(name,"\\","\/")
+ kind = string.lower(kind)
+ return kpse.find_file(name,(kind and kind ~= "" and (remapper[kind] or kind)) or "tex")
+end
+
+function resolvers.findbinfile(name,kind)
+ if not kind or kind == "" then
+ kind = file.extname(name) -- string.match(name,"%.([^%.]-)$")
+ end
+ return resolvers.find_file(name,(kind and remapper[kind]) or kind)
+end
+
+end -- closure
+
+do -- begin closure to overcome local limits and interference
+
+if not modules then modules = { } end modules ['data-con'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local format, lower, gsub = string.format, string.lower, string.gsub
+
+local trace_cache = false trackers.register("resolvers.cache", function(v) trace_cache = v end)
+local trace_containers = false trackers.register("resolvers.containers", function(v) trace_containers = v end)
+local trace_storage = false trackers.register("resolvers.storage", function(v) trace_storage = v end)
+local trace_verbose = false trackers.register("resolvers.verbose", function(v) trace_verbose = v end)
+local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v trackers.enable("resolvers.verbose") end)
+
+--[[ldx--
+<p>Once we found ourselves defining similar cache constructs
+several times, containers were introduced. Containers are used
+to collect tables in memory and reuse them when possible based
+on (unique) hashes (to be provided by the calling function).</p>
+
+<p>Caching to disk is disabled by default. Version numbers are
+stored in the saved table which makes it possible to change the
+table structures without bothering about the disk cache.</p>
+
+<p>Examples of usage can be found in the font related code.</p>
+--ldx]]--
+
+containers = containers or { }
+
+containers.usecache = true
+
+local function report(container,tag,name)
+ if trace_cache or trace_containers then
+ logs.report(format("%s cache",container.subcategory),"%s: %s",tag,name or 'invalid')
+ end
+end
+
+local allocated = { }
+
+-- tracing
+
+function containers.define(category, subcategory, version, enabled)
+ return function()
+ if category and subcategory then
+ local c = allocated[category]
+ if not c then
+ c = { }
+ allocated[category] = c
+ end
+ local s = c[subcategory]
+ if not s then
+ s = {
+ category = category,
+ subcategory = subcategory,
+ storage = { },
+ enabled = enabled,
+ version = version or 1.000,
+ trace = false,
+ path = caches and caches.setpath and caches.setpath(category,subcategory),
+ }
+ c[subcategory] = s
+ end
+ return s
+ else
+ return nil
+ end
+ end
+end
+
+function containers.is_usable(container, name)
+ return container.enabled and caches and caches.iswritable(container.path, name)
+end
+
+function containers.is_valid(container, name)
+ if name and name ~= "" then
+ local storage = container.storage[name]
+ return storage and not table.is_empty(storage) and storage.cache_version == container.version
+ else
+ return false
+ end
+end
+
+function containers.read(container,name)
+ if container.enabled and caches and not container.storage[name] and containers.usecache then
+ container.storage[name] = caches.loaddata(container.path,name)
+ if containers.is_valid(container,name) then
+ report(container,"loaded",name)
+ else
+ container.storage[name] = nil
+ end
+ end
+ if container.storage[name] then
+ report(container,"reusing",name)
+ end
+ return container.storage[name]
+end
+
+function containers.write(container, name, data)
+ if data then
+ data.cache_version = container.version
+ if container.enabled and caches then
+ local unique, shared = data.unique, data.shared
+ data.unique, data.shared = nil, nil
+ caches.savedata(container.path, name, data)
+ report(container,"saved",name)
+ data.unique, data.shared = unique, shared
+ end
+ report(container,"stored",name)
+ container.storage[name] = data
+ end
+ return data
+end
+
+function containers.content(container,name)
+ return container.storage[name]
+end
+
+function containers.cleanname(name)
+ return (gsub(lower(name),"[^%w%d]+","-"))
+end
+
+end -- closure
+
+do -- begin closure to overcome local limits and interference
+
+if not modules then modules = { } end modules ['node-ini'] = {
+ version = 1.001,
+ comment = "companion to node-ini.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+--[[ldx--
+<p>Most of the code that had accumulated here is now separated in
+modules.</p>
+--ldx]]--
+
+-- this module is being reconstructed
+
+local utf = unicode.utf8
+local next, type = next, type
+local format, concat, match, utfchar = string.format, table.concat, string.match, utf.char
+
+local chardata = characters and characters.data
+
+--[[ldx--
+<p>We start with a registration system for atributes so that we can use the
+symbolic names later on.</p>
+--ldx]]--
+
+attributes = attributes or { }
+
+attributes.names = attributes.names or { }
+attributes.numbers = attributes.numbers or { }
+attributes.list = attributes.list or { }
+attributes.unsetvalue = -0x7FFFFFFF
+
+storage.register("attributes/names", attributes.names, "attributes.names")
+storage.register("attributes/numbers", attributes.numbers, "attributes.numbers")
+storage.register("attributes/list", attributes.list, "attributes.list")
+
+local names, numbers, list = attributes.names, attributes.numbers, attributes.list
+
+function attributes.define(name,number) -- at the tex end
+ if not numbers[name] then
+ numbers[name], names[number], list[number] = number, name, { }
+ end
+end
+
+--[[ldx--
+<p>We can use the attributes in the range 127-255 (outside user space). These
+are only used when no attribute is set at the \TEX\ end which normally
+happens in <l n='context'/>.</p>
+--ldx]]--
+
+storage.shared.attributes_last_private = storage.shared.attributes_last_private or 127
+
+function attributes.private(name) -- at the lua end (hidden from user)
+ local number = numbers[name]
+ if not number then
+ local last = storage.shared.attributes_last_private or 127
+ if last < 255 then
+ last = last + 1
+ storage.shared.attributes_last_private = last
+ end
+ number = last
+ numbers[name], names[number], list[number] = number, name, { }
+ end
+ return number
+end
+
+--[[ldx--
+<p>Access to nodes is what gives <l n='luatex'/> its power. Here we
+implement a few helper functions. These functions are rather optimized.</p>
+--ldx]]--
+
+--[[ldx--
+<p>When manipulating node lists in <l n='context'/>, we will remove
+nodes and insert new ones. While node access was implemented, we did
+quite some experiments in order to find out if manipulating nodes
+in <l n='lua'/> was feasible from the perspective of performance.</p>
+
+<p>First of all, we noticed that the bottleneck is more with excessive
+callbacks (some gets called very often) and the conversion from and to
+<l n='tex'/>'s datastructures. However, at the <l n='lua'/> end, we
+found that inserting and deleting nodes in a table could become a
+bottleneck.</p>
+
+<p>This resulted in two special situations in passing nodes back to
+<l n='tex'/>: a table entry with value <type>false</type> is ignored,
+and when instead of a table <type>true</type> is returned, the
+original table is used.</p>
+
+<p>Insertion is handled (at least in <l n='context'/> as follows. When
+we need to insert a node at a certain position, we change the node at
+that position by a dummy node, tagged <type>inline</type> which itself
+has_attribute the original node and one or more new nodes. Before we pass
+back the list we collapse the list. Of course collapsing could be built
+into the <l n='tex'/> engine, but this is a not so natural extension.</p>
+
+<p>When we collapse (something that we only do when really needed), we
+also ignore the empty nodes. [This is obsolete!]</p>
+--ldx]]--
+
+nodes = nodes or { }
+
+local hlist = node.id('hlist')
+local vlist = node.id('vlist')
+local glyph = node.id('glyph')
+local glue = node.id('glue')
+local penalty = node.id('penalty')
+local kern = node.id('kern')
+local whatsit = node.id('whatsit')
+
+local traverse_id = node.traverse_id
+local traverse = node.traverse
+local free_node = node.free
+local remove_node = node.remove
+
+function nodes.remove(head, current, free_too)
+ local t = current
+ head, current = remove_node(head,current)
+ if t then
+ if free_too then
+ free_node(t)
+ t = nil
+ else
+ t.next, t.prev = nil, nil
+ end
+ end
+ return head, current, t
+end
+
+function nodes.delete(head,current)
+ return nodes.remove(head,current,true)
+end
+
+nodes.before = node.insert_before
+nodes.after = node.insert_after
+
+-- we need to test this, as it might be fixed now
+
+function nodes.before(h,c,n)
+ if c then
+ if c == h then
+ n.next = h
+ n.prev = nil
+ h.prev = n
+ else
+ local cp = c.prev
+ n.next = c
+ n.prev = cp
+ if cp then
+ cp.next = n
+ end
+ c.prev = n
+ return h, n
+ end
+ end
+ return n, n
+end
+
+function nodes.after(h,c,n)
+ if c then
+ local cn = c.next
+ if cn then
+ n.next = cn
+ cn.prev = n
+ else
+ n.next = nil
+ end
+ c.next = n
+ n.prev = c
+ return h, n
+ end
+ return n, n
+end
+
+function nodes.replace(head,current,new)
+ if current and next then
+ local p, n = current.prev, current.next
+ new.prev, new.next = p, n
+ if p then
+ p.next = new
+ else
+ head = new
+ end
+ if n then
+ n.prev = new
+ end
+ free_node(current)
+ end
+ return head, current
+end
+
+-- will move
+
+local function count(stack,flat)
+ local n = 0
+ while stack do
+ local id = stack.id
+ if not flat and id == hlist or id == vlist then
+ local list = stack.list
+ if list then
+ n = n + 1 + count(list) -- self counts too
+ else
+ n = n + 1
+ end
+ else
+ n = n + 1
+ end
+ stack = stack.next
+ end
+ return n
+end
+
+nodes.count = count
+
+-- new
+
+function attributes.ofnode(n)
+ local a = n.attr
+ if a then
+ local names = attributes.names
+ a = a.next
+ while a do
+ local number, value = a.number, a.value
+ texio.write_nl(format("%s : attribute %3i, value %4i, name %s",tostring(n),number,value,names[number] or '?'))
+ a = a.next
+ end
+ end
+end
+
+local left, space = lpeg.P("<"), lpeg.P(" ")
+
+nodes.filterkey = left * (1-left)^0 * left * space^0 * lpeg.C((1-space)^0)
+
+end -- closure
+
+do -- begin closure to overcome local limits and interference
+
+if not modules then modules = { } end modules ['node-res'] = {
+ version = 1.001,
+ comment = "companion to node-ini.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local gmatch, format = string.gmatch, string.format
+local copy_node, free_node, free_list, new_node = node.copy, node.free, node.flush_list, node.new
+
+--[[ldx--
+<p>The next function is not that much needed but in <l n='context'/> we use
+for debugging <l n='luatex'/> node management.</p>
+--ldx]]--
+
+nodes = nodes or { }
+
+local reserved = { }
+
+function nodes.register(n)
+ reserved[#reserved+1] = n
+ return n
+end
+
+function nodes.cleanup_reserved(nofboxes) -- todo
+ nodes.tracers.steppers.reset() -- todo: make a registration subsystem
+ local nr, nl = #reserved, 0
+ for i=1,nr do
+ free_node(reserved[i])
+ end
+ if nofboxes then
+ local tb = tex.box
+ for i=0,nofboxes do
+ local l = tb[i]
+ if l then
+ free_node(tb[i])
+ nl = nl + 1
+ end
+ end
+ end
+ reserved = { }
+ return nr, nl, nofboxes -- can be nil
+end
+
+function nodes.usage()
+ local t = { }
+ for n, tag in gmatch(status.node_mem_usage,"(%d+) ([a-z_]+)") do
+ t[tag] = n
+ end
+ return t
+end
+
+local disc = nodes.register(new_node("disc"))
+local kern = nodes.register(new_node("kern",1))
+local penalty = nodes.register(new_node("penalty"))
+local glue = nodes.register(new_node("glue"))
+local glue_spec = nodes.register(new_node("glue_spec"))
+local glyph = nodes.register(new_node("glyph",0))
+local textdir = nodes.register(new_node("whatsit",7))
+local rule = nodes.register(new_node("rule"))
+local latelua = nodes.register(new_node("whatsit",35))
+
+function nodes.glyph(fnt,chr)
+ local n = copy_node(glyph)
+ if fnt then n.font = fnt end
+ if chr then n.char = chr end
+ return n
+end
+function nodes.penalty(p)
+ local n = copy_node(penalty)
+ n.penalty = p
+ return n
+end
+function nodes.kern(k)
+ local n = copy_node(kern)
+ n.kern = k
+ return n
+end
+function nodes.glue(width,stretch,shrink)
+ local n, s = copy_node(glue), copy_node(glue_spec)
+ s.width, s.stretch, s.shrink = width, stretch, shrink
+ n.spec = s
+ return n
+end
+function nodes.glue_spec(width,stretch,shrink)
+ local s = copy_node(glue_spec)
+ s.width, s.stretch, s.shrink = width, stretch, shrink
+ return s
+end
+function nodes.disc()
+ return copy_node(disc)
+end
+function nodes.textdir(dir)
+ local t = copy_node(textdir)
+ t.dir = dir
+ return t
+end
+function nodes.rule(w,h,d)
+ local n = copy_node(rule)
+ if w then n.width = w end
+ if h then n.height = h end
+ if d then n.depth = d end
+ return n
+end
+function nodes.latelua(code)
+ local n = copy_node(latelua)
+ n.data = code
+ return n
+end
+
+statistics.register("cleaned up reserved nodes", function()
+ return format("%s nodes, %s lists of %s", nodes.cleanup_reserved(tex.count["lastallocatedbox"]))
+end) -- \topofboxstack
+
+statistics.register("node memory usage", function() -- comes after cleanup !
+ return status.node_mem_usage
+end)
+
+end -- closure
+
+do -- begin closure to overcome local limits and interference
+
+if not modules then modules = { } end modules ['node-inj'] = {
+ version = 1.001,
+ comment = "companion to node-ini.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- tricky ... fonts.ids is not yet defined .. to be solved (maybe general tex ini)
+
+-- This is very experimental (this will change when we have luatex > .50 and
+-- a few pending thingies are available. Also, Idris needs to make a few more
+-- test fonts.
+
+local next = next
+
+local trace_injections = false trackers.register("nodes.injections", function(v) trace_injections = v end)
+
+fonts = fonts or { }
+fonts.tfm = fonts.tfm or { }
+fonts.ids = fonts.ids or { }
+
+local fontdata = fonts.ids
+
+local glyph = node.id('glyph')
+local kern = node.id('kern')
+
+local traverse_id = node.traverse_id
+local has_attribute = node.has_attribute
+local set_attribute = node.set_attribute
+local insert_node_before = node.insert_before
+local insert_node_after = node.insert_after
+
+local newkern = nodes.kern
+
+local markbase = attributes.private('markbase')
+local markmark = attributes.private('markmark')
+local markdone = attributes.private('markdone')
+local cursbase = attributes.private('cursbase')
+local curscurs = attributes.private('curscurs')
+local cursdone = attributes.private('cursdone')
+local kernpair = attributes.private('kernpair')
+
+local cursives = { }
+local marks = { }
+local kerns = { }
+
+-- currently we do gpos/kern in a bit inofficial way but when we
+-- have the extra fields in glyphnodes to manipulate ht/dp/wd
+-- explicitly i will provide an alternative; also, we can share
+-- tables
+
+function nodes.set_cursive(start,nxt,factor,rlmode,exit,entry,tfmstart,tfmnext)
+ local dx, dy = factor*(exit[1]-entry[1]), factor*(exit[2]-entry[2])
+ local ws, wn = tfmstart.width, tfmnext.width
+ local bound = #cursives + 1
+ set_attribute(start,cursbase,bound)
+ set_attribute(nxt,curscurs,bound)
+ cursives[bound] = { rlmode, dx, dy, ws, wn }
+ return dx, dy, bound
+end
+
+function nodes.set_pair(current,factor,rlmode,spec,tfmchr)
+ local x, y, w, h = factor*spec[1], factor*spec[2], factor*spec[3], factor*spec[4]
+ -- dy = y - h
+ if x ~= 0 or w ~= 0 or y ~= 0 or h ~= 0 then
+ local bound = has_attribute(current,kernpair)
+ if bound then
+ local kb = kerns[bound]
+ kb[2], kb[3], kb[4], kb[5] = kb[2] + x, kb[3] + y, kb[4] + w, kb[5] + h
+ else
+ bound = #kerns + 1
+ set_attribute(current,kernpair,bound)
+ kerns[bound] = { rlmode, x, y, w, h }
+ end
+ return x, y, w, h, bound
+ end
+ return x, y, w, h -- no bound
+end
+
+function nodes.set_kern(current,factor,rlmode,x,tfmchr)
+ local dx = factor*x
+ if dx ~= 0 then
+ local bound = #kerns + 1
+ set_attribute(current,kernpair,bound)
+ kerns[bound] = { rlmode, dx }
+ end
+ return dx, bound
+end
+
+function nodes.set_mark(start,base,factor,rlmode,ba,ma,index) --ba=baseanchor, ma=markanchor
+ local dx, dy = factor*(ba[1]-ma[1]), factor*(ba[2]-ma[2])
+ local bound = has_attribute(base,markbase)
+ if bound then
+ local mb = marks[bound]
+ if mb then
+ if not index then index = #mb + 1 end
+ mb[index] = { dx, dy }
+ set_attribute(start,markmark,bound)
+ set_attribute(start,markdone,index)
+ return dx, dy, bound
+ else
+ logs.report("nodes mark", "possible problem, U+%04X is base without data (id: %s)",base.char,bound)
+ end
+ end
+ index = index or 1
+ bound = #marks + 1
+ set_attribute(base,markbase,bound)
+ set_attribute(start,markmark,bound)
+ set_attribute(start,markdone,index)
+ marks[bound] = { [index] = { dx, dy } }
+ return dx, dy, bound
+end
+
+function nodes.trace_injection(head)
+ local function dir(n)
+ return (n and n<0 and "r-to-l") or (n and n>0 and "l-to-r") or ("unset")
+ end
+ local function report(...)
+ logs.report("nodes finisher",...)
+ end
+ report("begin run")
+ for n in traverse_id(glyph,head) do
+ if n.subtype < 256 then
+ local kp = has_attribute(n,kernpair)
+ local mb = has_attribute(n,markbase)
+ local mm = has_attribute(n,markmark)
+ local md = has_attribute(n,markdone)
+ local cb = has_attribute(n,cursbase)
+ local cc = has_attribute(n,curscurs)
+ report("char U+%05X, font=%s",n.char,n.font)
+ if kp then
+ local k = kerns[kp]
+ if k[3] then
+ report(" pairkern: dir=%s, x=%s, y=%s, w=%s, h=%s",dir(k[1]),k[2] or "?",k[3] or "?",k[4] or "?",k[5] or "?")
+ else
+ report(" kern: dir=%s, dx=%s",dir(k[1]),k[2] or "?")
+ end
+ end
+ if mb then
+ report(" markbase: bound=%s",mb)
+ end
+ if mm then
+ local m = marks[mm]
+ if mb then
+ local m = m[mb]
+ if m then
+ report(" markmark: bound=%s, index=%s, dx=%s, dy=%s",mm,md or "?",m[1] or "?",m[2] or "?")
+ else
+ report(" markmark: bound=%s, missing index",mm)
+ end
+ else
+ m = m[1]
+ report(" markmark: bound=%s, dx=%s, dy=%s",mm,m[1] or "?",m[2] or "?")
+ end
+ end
+ if cb then
+ report(" cursbase: bound=%s",cb)
+ end
+ if cc then
+ local c = cursives[cc]
+ report(" curscurs: bound=%s, dir=%s, dx=%s, dy=%s",cc,dir(c[1]),c[2] or "?",c[3] or "?")
+ end
+ end
+ end
+ report("end run")
+end
+
+-- todo: reuse tables (i.e. no collection), but will be extra fields anyway
+
+function nodes.inject_kerns(head,where,keep)
+ local has_marks, has_cursives, has_kerns = next(marks), next(cursives), next(kerns)
+ if has_marks or has_cursives then
+ if trace_injections then
+ nodes.trace_injection(head)
+ end
+ -- in the future variant we will not copy items but refs to tables
+ local done, ky, rl, valid, cx, wx, mk = false, { }, { }, { }, { }, { }, { }
+ if has_kerns then -- move outside loop
+ local nf, tm = nil, nil
+ for n in traverse_id(glyph,head) do
+ if n.subtype < 256 then
+ valid[#valid+1] = n
+ if n.font ~= nf then
+ nf = n.font
+ tm = fontdata[nf].marks
+ end
+ mk[n] = tm[n.char]
+ local k = has_attribute(n,kernpair)
+ if k then
+ local kk = kerns[k]
+ if kk then
+ local x, y, w, h = kk[2], kk[3], kk[4], kk[5]
+ local dy = y - h
+ if dy ~= 0 then
+ ky[n] = dy
+ end
+ if w ~= 0 or x ~= 0 then
+ wx[n] = kk
+ end
+ rl[n] = kk[1] -- could move in test
+ end
+ end
+ end
+ end
+ else
+ local nf, tm = nil, nil
+ for n in traverse_id(glyph,head) do
+ if n.subtype < 256 then
+ valid[#valid+1] = n
+ if n.font ~= nf then
+ nf = n.font
+ tm = fontdata[nf].marks
+ end
+ mk[n] = tm[n.char]
+ end
+ end
+ end
+ if #valid > 0 then
+ -- we can assume done == true because we have cursives and marks
+ local cx = { }
+ if has_kerns and next(ky) then
+ for n, k in next, ky do
+ n.yoffset = k
+ end
+ end
+ -- todo: reuse t and use maxt
+ if has_cursives then
+ local p_cursbase, p = nil, nil
+ -- since we need valid[n+1] we can also use a "while true do"
+ local t, d, maxt = { }, { }, 0
+ for i=1,#valid do -- valid == glyphs
+ local n = valid[i]
+ if not mk[n] then
+ local n_cursbase = has_attribute(n,cursbase)
+ if p_cursbase then
+ local n_curscurs = has_attribute(n,curscurs)
+ if p_cursbase == n_curscurs then
+ local c = cursives[n_curscurs]
+ if c then
+ local rlmode, dx, dy, ws, wn = c[1], c[2], c[3], c[4], c[5]
+ if rlmode >= 0 then
+ dx = dx - ws
+ else
+ dx = dx + wn
+ end
+ if dx ~= 0 then
+ cx[n] = dx
+ rl[n] = rlmode
+ end
+ -- if rlmode and rlmode < 0 then
+ dy = -dy
+ -- end
+ maxt = maxt + 1
+ t[maxt] = p
+ d[maxt] = dy
+ else
+ maxt = 0
+ end
+ end
+ elseif maxt > 0 then
+ local ny = n.yoffset
+ for i=maxt,1,-1 do
+ ny = ny + d[i]
+ local ti = t[i]
+ ti.yoffset = ti.yoffset + ny
+ end
+ maxt = 0
+ end
+ if not n_cursbase and maxt > 0 then
+ local ny = n.yoffset
+ for i=maxt,1,-1 do
+ ny = ny + d[i]
+ local ti = t[i]
+ ti.yoffset = ny
+ end
+ maxt = 0
+ end
+ p_cursbase, p = n_cursbase, n
+ end
+ end
+ if maxt > 0 then
+ local ny = n.yoffset
+ for i=maxt,1,-1 do
+ ny = ny + d[i]
+ local ti = t[i]
+ ti.yoffset = ny
+ end
+ maxt = 0
+ end
+ if not keep then
+ cursives = { }
+ end
+ end
+ if has_marks then
+ for i=1,#valid do
+ local p = valid[i]
+ local p_markbase = has_attribute(p,markbase)
+ if p_markbase then
+ local mrks = marks[p_markbase]
+ for n in traverse_id(glyph,p.next) do
+ local n_markmark = has_attribute(n,markmark)
+ if p_markbase == n_markmark then
+ local index = has_attribute(n,markdone) or 1
+ local d = mrks[index]
+ if d then
+ -- local rlmode = d[3] -- not used
+ -- if rlmode and rlmode < 0 then
+ -- n.xoffset = p.xoffset + d[1]
+ -- else
+ n.xoffset = p.xoffset - d[1]
+--~ local k = wx[p]
+--~ if k then
+--~ wx[n] = k
+--~ end
+ -- end
+ if mk[p] then
+ n.yoffset = p.yoffset + d[2]
+ else
+ n.yoffset = n.yoffset + p.yoffset + d[2]
+ end
+ end
+ else
+ break
+ end
+ end
+ end
+ end
+ if not keep then
+ marks = { }
+ end
+ end
+ -- todo : combine
+ if next(wx) then
+ for n, k in next, wx do
+ -- only w can be nil, can be sped up when w == nil
+ local rl, x, w = k[1], k[2] or 0, k[4] or 0
+ local wx = w - x
+ if rl < 0 then
+ if wx ~= 0 then
+ insert_node_before(head,n,newkern(wx))
+ end
+ if x ~= 0 then
+ insert_node_after (head,n,newkern(x))
+ end
+ else
+ -- if wx ~= 0 then
+ -- insert_node_after(head,n,newkern(wx))
+ -- end
+ if x ~= 0 then
+ insert_node_before(head,n,newkern(x))
+ end
+ end
+ end
+ end
+ if next(cx) then
+ for n, k in next, cx do
+ if k ~= 0 then
+ local rln = rl[n]
+ if rln and rln < 0 then
+ insert_node_before(head,n,newkern(-k))
+ else
+ insert_node_before(head,n,newkern(k))
+ end
+ end
+ end
+ end
+ if not keep then
+ kerns = { }
+ end
+ return head, true
+ elseif not keep then
+ kerns, cursives, marks = { }, { }, { }
+ end
+ elseif has_kerns then
+ if trace_injections then
+ nodes.trace_injection(head)
+ end
+ -- we assume done is true because there are kerns
+ for n in traverse_id(glyph,head) do
+ local k = has_attribute(n,kernpair)
+ if k then
+ local kk = kerns[k]
+ if kk then
+ -- only w can be nil, can be sped up when w == nil
+ local rl, x, y, w = kk[1], kk[2] or 0, kk[3] or 0, kk[4] or 0
+ if y ~= 0 then
+ n.yoffset = y -- todo: h ?
+ end
+ local wx = w - x
+ if rl < 0 then
+ if wx ~= 0 then
+ insert_node_before(head,n,newkern(wx))
+ end
+ if x ~= 0 then
+ insert_node_after (head,n,newkern(x))
+ end
+ else
+ -- if wx ~= 0 then
+ -- insert_node_after(head,n,newkern(wx))
+ -- end
+ if x ~= 0 then
+ insert_node_before(head,n,newkern(x))
+ end
+ end
+ end
+ end
+ end
+ if not keep then
+ kerns = { }
+ end
+ return head, true
+ else
+ -- no tracing needed
+ end
+ return head, false
+end
+
+end -- closure
+
+do -- begin closure to overcome local limits and interference
+
+if not modules then modules = { } end modules ['node-fnt'] = {
+ version = 1.001,
+ comment = "companion to font-ini.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local next, type = next, type
+
+local trace_characters = false trackers.register("nodes.characters", function(v) trace_characters = v end)
+
+local glyph = node.id('glyph')
+
+local traverse_id = node.traverse_id
+local has_attribute = node.has_attribute
+
+local starttiming, stoptiming = statistics.starttiming, statistics.stoptiming
+
+fonts = fonts or { }
+fonts.tfm = fonts.tfm or { }
+fonts.ids = fonts.ids or { }
+
+local fontdata = fonts.ids
+
+-- some tests with using an array of dynamics[id] and processes[id] demonstrated
+-- that there was nothing to gain (unless we also optimize other parts)
+--
+-- maybe getting rid of the intermediate shared can save some time
+
+-- potential speedup: check for subtype < 256 so that we can remove that test
+-- elsewhere, danger: injected nodes will not be dealt with but that does not
+-- happen often; we could consider processing sublists but that might need mor
+-- checking later on; the current approach also permits variants
+
+if tex.attribute[0] < 0 then
+
+ texio.write_nl("log","!")
+ texio.write_nl("log","! Attribute 0 is reserved for ConTeXt's font feature management and has to be")
+ texio.write_nl("log","! set to zero. Also, some attributes in the range 1-255 are used for special")
+ texio.write_nl("log","! purposed so setting them at the TeX end might break the font handler.")
+ texio.write_nl("log","!")
+
+ tex.attribute[0] = 0 -- else no features
+
+end
+
+function nodes.process_characters(head)
+ -- either next or not, but definitely no already processed list
+ starttiming(nodes)
+ local usedfonts, attrfonts, done = { }, { }, false
+ local a, u, prevfont, prevattr = 0, 0, nil, 0
+ for n in traverse_id(glyph,head) do
+ local font, attr = n.font, has_attribute(n,0) -- zero attribute is reserved for fonts, preset to 0 is faster (first match)
+ if attr and attr > 0 then
+ if font ~= prevfont or attr ~= prevattr then
+ local used = attrfonts[font]
+ if not used then
+ used = { }
+ attrfonts[font] = used
+ end
+ if not used[attr] then
+ -- we do some testing outside the function
+ local tfmdata = fontdata[font]
+ local shared = tfmdata.shared
+ if shared then
+ local dynamics = shared.dynamics
+ if dynamics then
+ local d = shared.set_dynamics(font,dynamics,attr) -- still valid?
+ if d then
+ used[attr] = d
+ a = a + 1
+ end
+ end
+ end
+ end
+ prevfont, prevattr = font, attr
+ end
+ elseif font ~= prevfont then
+ prevfont, prevattr = font, 0
+ local used = usedfonts[font]
+ if not used then
+ local tfmdata = fontdata[font]
+ if tfmdata then
+ local shared = tfmdata.shared -- we need to check shared, only when same features
+ if shared then
+ local processors = shared.processes
+ if processors and #processors > 0 then
+ usedfonts[font] = processors
+ u = u + 1
+ end
+ end
+ else
+ -- probably nullfont
+ end
+ end
+ else
+ prevattr = attr
+ end
+ end
+ -- we could combine these and just make the attribute nil
+ if u == 1 then
+ local font, processors = next(usedfonts)
+ local n = #processors
+ if n > 0 then
+ local h, d = processors[1](head,font,false)
+ head, done = h or head, done or d
+ if n > 1 then
+ for i=2,n do
+ local h, d = processors[i](head,font,0) -- false)
+ head, done = h or head, done or d
+ end
+ end
+ end
+ elseif u > 0 then
+ for font, processors in next, usedfonts do
+ local n = #processors
+ local h, d = processors[1](head,font,false)
+ head, done = h or head, done or d
+ if n > 1 then
+ for i=2,n do
+ local h, d = processors[i](head,font,0) -- false)
+ head, done = h or head, done or d
+ end
+ end
+ end
+ end
+ if a == 1 then
+ local font, dynamics = next(attrfonts)
+ for attribute, processors in next, dynamics do -- attr can switch in between
+ local n = #processors
+ local h, d = processors[1](head,font,attribute)
+ head, done = h or head, done or d
+ if n > 1 then
+ for i=2,n do
+ local h, d = processors[i](head,font,attribute)
+ head, done = h or head, done or d
+ end
+ end
+ end
+ elseif a > 0 then
+ for font, dynamics in next, attrfonts do
+ for attribute, processors in next, dynamics do -- attr can switch in between
+ local n = #processors
+ local h, d = processors[1](head,font,attribute)
+ head, done = h or head, done or d
+ if n > 1 then
+ for i=2,n do
+ local h, d = processors[i](head,font,attribute)
+ head, done = h or head, done or d
+ end
+ end
+ end
+ end
+ end
+ stoptiming(nodes)
+ if trace_characters then
+ nodes.report(head,done)
+ end
+ return head, true
+end
+
+if node.protect_glyphs then
+
+ nodes.protect_glyphs = node.protect_glyphs
+ nodes.unprotect_glyphs = node.unprotect_glyphs
+
+else do
+
+ -- initial value subtype : X000 0001 = 1 = 0x01 = char
+ --
+ -- expected before linebreak : X000 0000 = 0 = 0x00 = glyph
+ -- X000 0010 = 2 = 0x02 = ligature
+ -- X000 0100 = 4 = 0x04 = ghost
+ -- X000 1010 = 10 = 0x0A = leftboundary lig
+ -- X001 0010 = 18 = 0x12 = rightboundary lig
+ -- X001 1010 = 26 = 0x1A = both boundaries lig
+ -- X000 1100 = 12 = 0x1C = leftghost
+ -- X001 0100 = 20 = 0x14 = rightghost
+
+
+ function nodes.protect_glyphs(head)
+ local done = false
+ for g in traverse_id(glyph,head) do
+ local s = g.subtype
+ if s == 1 then
+ done, g.subtype = true, 256
+ elseif s <= 256 then
+ done, g.subtype = true, 256 + s
+ end
+ end
+ return done
+ end
+
+ function nodes.unprotect_glyphs(head)
+ local done = false
+ for g in traverse_id(glyph,head) do
+ local s = g.subtype
+ if s > 256 then
+ done, g.subtype = true, s - 256
+ end
+ end
+ return done
+ end
+
+end end
+
+end -- closure
+
+do -- begin closure to overcome local limits and interference
+
+if not modules then modules = { } end modules ['node-dum'] = {
+ version = 1.001,
+ comment = "companion to luatex-*.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+nodes = nodes or { }
+
+function nodes.simple_font_handler(head)
+-- lang.hyphenate(head)
+ head = nodes.process_characters(head)
+ nodes.inject_kerns(head)
+ nodes.protect_glyphs(head)
+ head = node.ligaturing(head)
+ head = node.kerning(head)
+ return head
+end
+
+end -- closure
+
+do -- begin closure to overcome local limits and interference
+
+if not modules then modules = { } end modules ['font-ini'] = {
+ version = 1.001,
+ comment = "companion to font-ini.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+--[[ldx--
+<p>Not much is happening here.</p>
+--ldx]]--
+
+local utf = unicode.utf8
+
+if not fontloader then fontloader = fontforge end
+
+fontloader.totable = fontloader.to_table
+
+-- vtf comes first
+-- fix comes last
+
+fonts = fonts or { }
+fonts.ids = fonts.ids or { } -- aka fontdata
+fonts.tfm = fonts.tfm or { }
+
+fonts.mode = 'base'
+fonts.private = 0xF0000 -- 0x10FFFF
+fonts.verbose = false -- more verbose cache tables
+
+fonts.ids[0] = { -- nullfont
+ characters = { },
+ descriptions = { },
+}
+
+fonts.methods = fonts.methods or {
+ base = { tfm = { }, afm = { }, otf = { }, vtf = { }, fix = { } },
+ node = { tfm = { }, afm = { }, otf = { }, vtf = { }, fix = { } },
+}
+
+fonts.initializers = fonts.initializers or {
+ base = { tfm = { }, afm = { }, otf = { }, vtf = { }, fix = { } },
+ node = { tfm = { }, afm = { }, otf = { }, vtf = { }, fix = { } }
+}
+
+fonts.triggers = fonts.triggers or {
+ 'mode',
+ 'language',
+ 'script',
+ 'strategy',
+}
+
+fonts.processors = fonts.processors or {
+}
+
+fonts.manipulators = fonts.manipulators or {
+}
+
+fonts.define = fonts.define or { }
+fonts.define.specify = fonts.define.specify or { }
+fonts.define.specify.synonyms = fonts.define.specify.synonyms or { }
+
+-- tracing
+
+fonts.color = fonts.color or { }
+
+local attribute = attributes.private('color')
+local mapping = (attributes and attributes.list[attribute]) or { }
+
+local set_attribute = node.set_attribute
+local unset_attribute = node.unset_attribute
+
+function fonts.color.set(n,c)
+ local mc = mapping[c]
+ if not mc then
+ unset_attribute(n,attribute)
+ else
+ set_attribute(n,attribute,mc)
+ end
+end
+function fonts.color.reset(n)
+ unset_attribute(n,attribute)
+end
+
+-- this will change ...
+
+function fonts.show_char_data(n)
+ local tfmdata = fonts.ids[font.current()]
+ if tfmdata then
+ if type(n) == "string" then
+ n = utf.byte(n)
+ end
+ local chr = tfmdata.characters[n]
+ if chr then
+ texio.write_nl(table.serialize(chr,string.format("U_%04X",n)))
+ end
+ end
+end
+
+end -- closure
+
+do -- begin closure to overcome local limits and interference
+
+if not modules then modules = { } end modules ['font-tfm'] = {
+ version = 1.001,
+ comment = "companion to font-ini.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local utf = unicode.utf8
+
+local next, format, match, lower, gsub = next, string.format, string.match, string.lower, string.gsub
+local concat, sortedkeys, utfbyte, serialize = table.concat, table.sortedkeys, utf.byte, table.serialize
+
+local trace_defining = false trackers.register("fonts.defining", function(v) trace_defining = v end)
+local trace_scaling = false trackers.register("fonts.scaling" , function(v) trace_scaling = v end)
+
+-- tfmdata has also fast access to indices and unicodes
+-- to be checked: otf -> tfm -> tfmscaled
+--
+-- watch out: no negative depths and negative eights permitted in regular fonts
+
+--[[ldx--
+<p>Here we only implement a few helper functions.</p>
+--ldx]]--
+
+fonts = fonts or { }
+fonts.tfm = fonts.tfm or { }
+fonts.ids = fonts.ids or { }
+
+local tfm = fonts.tfm
+
+fonts.loaded = fonts.loaded or { }
+fonts.dontembed = fonts.dontembed or { }
+fonts.triggers = fonts.triggers or { } -- brrr
+fonts.initializers = fonts.initializers or { }
+fonts.initializers.common = fonts.initializers.common or { }
+
+local fontdata = fonts.ids
+local glyph = node.id('glyph')
+local set_attribute = node.set_attribute
+
+--[[ldx--
+<p>The next function encapsulates the standard <l n='tfm'/> loader as
+supplied by <l n='luatex'/>.</p>
+--ldx]]--
+
+tfm.resolve_vf = true -- false
+tfm.share_base_kerns = false -- true (.5 sec slower on mk but brings down mem from 410M to 310M, beware: then script/lang share too)
+tfm.mathactions = { }
+
+function tfm.enhance(tfmdata,specification)
+ local name, size = specification.name, specification.size
+ local encoding, filename = match(name,"^(.-)%-(.*)$") -- context: encoding-name.*
+ if filename and encoding and fonts.enc.known[encoding] then
+ local data = fonts.enc.load(encoding)
+ if data then
+ local characters = tfmdata.characters
+ tfmdata.encoding = encoding
+ local vector = data.vector
+ local original = { }
+ for k, v in next, characters do
+ v.name = vector[k]
+ v.index = k
+ original[k] = v
+ end
+ for k,v in next, data.unicodes do
+ if k ~= v then
+ if trace_defining then
+ logs.report("define font","mapping %s onto %s",k,v)
+ end
+ characters[k] = original[v]
+ end
+ end
+ end
+ end
+end
+
+function tfm.read_from_tfm(specification)
+ local fname, tfmdata = specification.filename or "", nil
+ if fname ~= "" then
+ if trace_defining then
+ logs.report("define font","loading tfm file %s at size %s",fname,specification.size)
+ end
+ tfmdata = font.read_tfm(fname,specification.size) -- not cached, fast enough
+ if tfmdata then
+ tfmdata.descriptions = tfmdata.descriptions or { }
+ if tfm.resolve_vf then
+ fonts.logger.save(tfmdata,file.extname(fname),specification) -- strange, why here
+ fname = resolvers.findbinfile(specification.name, 'ovf')
+ if fname and fname ~= "" then
+ local vfdata = font.read_vf(fname,specification.size) -- not cached, fast enough
+ if vfdata then
+ local chars = tfmdata.characters
+ for k,v in next, vfdata.characters do
+ chars[k].commands = v.commands
+ end
+ tfmdata.type = 'virtual'
+ tfmdata.fonts = vfdata.fonts
+ end
+ end
+ end
+ tfm.enhance(tfmdata,specification)
+ end
+ elseif trace_defining then
+ logs.report("define font","loading tfm with name %s fails",specification.name)
+ end
+ return tfmdata
+end
+
+--[[ldx--
+<p>We need to normalize the scale factor (in scaled points). This has to
+do with the fact that <l n='tex'/> uses a negative multiple of 1000 as
+a signal for a font scaled based on the design size.</p>
+--ldx]]--
+
+local factors = {
+ pt = 65536.0,
+ bp = 65781.8,
+}
+
+function tfm.setfactor(f)
+ tfm.factor = factors[f or 'pt'] or factors.pt
+end
+
+tfm.setfactor()
+
+function tfm.scaled(scaledpoints, designsize) -- handles designsize in sp as well
+ if scaledpoints < 0 then
+ if designsize then
+ if designsize > tfm.factor then -- or just 1000 / when? mp?
+ return (- scaledpoints/1000) * designsize -- sp's
+ else
+ return (- scaledpoints/1000) * designsize * tfm.factor
+ end
+ else
+ return (- scaledpoints/1000) * 10 * tfm.factor
+ end
+ else
+ return scaledpoints
+ end
+end
+
+--[[ldx--
+<p>Before a font is passed to <l n='tex'/> we scale it. Here we also need
+to scale virtual characters.</p>
+--ldx]]--
+
+function tfm.get_virtual_id(tfmdata)
+ -- since we don't know the id yet, we use 0 as signal
+ if not tfmdata.fonts then
+ tfmdata.type = "virtual"
+ tfmdata.fonts = { { id = 0 } }
+ return 1
+ else
+ tfmdata.fonts[#tfmdata.fonts+1] = { id = 0 }
+ return #tfmdata.fonts
+ end
+end
+
+function tfm.check_virtual_id(tfmdata, id)
+ if tfmdata and tfmdata.type == "virtual" then
+ if not tfmdata.fonts or #tfmdata.fonts == 0 then
+ tfmdata.type, tfmdata.fonts = "real", nil
+ else
+ local vfonts = tfmdata.fonts
+ for f=1,#vfonts do
+ local fnt = vfonts[f]
+ if fnt.id and fnt.id == 0 then
+ fnt.id = id
+ end
+ end
+ end
+ end
+end
+
+--[[ldx--
+<p>Beware, the boundingbox is passed as reference so we may not overwrite it
+in the process; numbers are of course copies. Here 65536 equals 1pt. (Due to
+excessive memory usage in CJK fonts, we no longer pass the boundingbox.)</p>
+--ldx]]--
+
+fonts.trace_scaling = false
+
+-- the following hack costs a bit of runtime but safes memory
+--
+-- basekerns are scaled and will be hashed by table id
+-- sharedkerns are unscaled and are be hashed by concatenated indexes
+
+function tfm.check_base_kerns(tfmdata)
+ if tfm.share_base_kerns then
+ local sharedkerns = tfmdata.sharedkerns
+ if sharedkerns then
+ local basekerns = { }
+ tfmdata.basekerns = basekerns
+ return sharedkerns, basekerns
+ end
+ end
+ return nil, nil
+end
+
+function tfm.prepare_base_kerns(tfmdata)
+ if tfm.share_base_kerns and not tfmdata.sharedkerns then
+ local sharedkerns = { }
+ tfmdata.sharedkerns = sharedkerns
+ for u, chr in next, tfmdata.characters do
+ local kerns = chr.kerns
+ if kerns then
+ local hash = concat(sortedkeys(kerns), " ")
+ local base = sharedkerns[hash]
+ if not base then
+ sharedkerns[hash] = kerns
+ else
+ chr.kerns = base
+ end
+ end
+ end
+ end
+end
+
+-- we can have cache scaled characters when we are in node mode and don't have
+-- protruding and expansion: hash == fullname @ size @ protruding @ expansion
+-- but in practice (except from mk) the otf hash will be enough already so it
+-- makes no sense to mess up the code now
+
+local charactercache = { }
+
+-- The scaler is only used for otf and afm and virtual fonts. If
+-- a virtual font has italic correction make sure to set the
+-- has_italic flag. Some more flags will be added in the future.
+
+function tfm.do_scale(tfmtable, scaledpoints)
+ tfm.prepare_base_kerns(tfmtable) -- optimalization
+ if scaledpoints < 0 then
+ scaledpoints = (- scaledpoints/1000) * tfmtable.designsize -- already in sp
+ end
+ local delta = scaledpoints/(tfmtable.units or 1000) -- brr, some open type fonts have 2048
+ local t = { }
+ -- unicoded unique descriptions shared cidinfo characters changed parameters indices
+ for k,v in next, tfmtable do
+ if type(v) == "table" then
+ -- print(k)
+ else
+ t[k] = v
+ end
+ end
+ -- status
+ local isvirtual = tfmtable.type == "virtual" or tfmtable.virtualized
+ local hasmath = (tfmtable.math_parameters ~= nil and next(tfmtable.math_parameters) ~= nil) or (tfmtable.MathConstants ~= nil and next(tfmtable.MathConstants) ~= nil)
+ local nodemode = tfmtable.mode == "node"
+ local hasquality = tfmtable.auto_expand or tfmtable.auto_protrude
+ local hasitalic = tfmtable.has_italic
+ --
+ t.parameters = { }
+ t.characters = { }
+ t.MathConstants = { }
+ -- fast access
+ local descriptions = tfmtable.descriptions or { }
+ t.unicodes = tfmtable.unicodes
+ t.indices = tfmtable.indices
+ t.marks = tfmtable.marks
+ t.descriptions = descriptions
+ if tfmtable.fonts then
+ t.fonts = table.fastcopy(tfmtable.fonts) -- hm also at the end
+ end
+ local tp = t.parameters
+ local mp = t.math_parameters
+ local tfmp = tfmtable.parameters -- let's check for indexes
+ --
+ tp.slant = (tfmp.slant or tfmp[1] or 0)
+ tp.space = (tfmp.space or tfmp[2] or 0)*delta
+ tp.space_stretch = (tfmp.space_stretch or tfmp[3] or 0)*delta
+ tp.space_shrink = (tfmp.space_shrink or tfmp[4] or 0)*delta
+ tp.x_height = (tfmp.x_height or tfmp[5] or 0)*delta
+ tp.quad = (tfmp.quad or tfmp[6] or 0)*delta
+ tp.extra_space = (tfmp.extra_space or tfmp[7] or 0)*delta
+ local protrusionfactor = (tp.quad ~= 0 and 1000/tp.quad) or 0
+ local tc = t.characters
+ local characters = tfmtable.characters
+ local nameneeded = not tfmtable.shared.otfdata --hack
+ local changed = tfmtable.changed or { } -- for base mode
+ local ischanged = not table.is_empty(changed)
+ local indices = tfmtable.indices
+ local luatex = tfmtable.luatex
+ local tounicode = luatex and luatex.tounicode
+ local defaultwidth = luatex and luatex.defaultwidth or 0
+ local defaultheight = luatex and luatex.defaultheight or 0
+ local defaultdepth = luatex and luatex.defaultdepth or 0
+ -- experimental, sharing kerns (unscaled and scaled) saves memory
+ local sharedkerns, basekerns = tfm.check_base_kerns(tfmtable)
+ -- loop over descriptions (afm and otf have descriptions, tfm not)
+ -- there is no need (yet) to assign a value to chr.tonunicode
+ local scaledwidth = defaultwidth * delta
+ local scaledheight = defaultheight * delta
+ local scaleddepth = defaultdepth * delta
+ local stackmath = tfmtable.ignore_stack_math ~= true
+local private = fonts.private
+ for k,v in next, characters do
+ local chr, description, index
+ if ischanged then
+ -- basemode hack
+ local c = changed[k]
+ if c then
+ description = descriptions[c] or v
+ v = characters[c] or v
+ index = (indices and indices[c]) or c
+ else
+ description = descriptions[k] or v
+ index = (indices and indices[k]) or k
+ end
+ else
+ description = descriptions[k] or v
+ index = (indices and indices[k]) or k
+ end
+ local width = description.width
+ local height = description.height
+ local depth = description.depth
+ if width then width = delta*width else width = scaledwidth end
+ if height then height = delta*height else height = scaledheight end
+ -- if depth then depth = delta*depth else depth = scaleddepth end
+ if depth and depth ~= 0 then
+ depth = delta*depth
+ if nameneeded then
+ chr = {
+ name = description.name,
+ index = index,
+ height = height,
+ depth = depth,
+ width = width,
+ }
+ else
+ chr = {
+ index = index,
+ height = height,
+ depth = depth,
+ width = width,
+ }
+ end
+ else
+ -- this saves a little bit of memory time and memory, esp for big cjk fonts
+ if nameneeded then
+ chr = {
+ name = description.name,
+ index = index,
+ height = height,
+ width = width,
+ }
+ else
+ chr = {
+ index = index,
+ height = height,
+ width = width,
+ }
+ end
+ end
+ -- if trace_scaling then
+ -- logs.report("define font","t=%s, u=%s, i=%s, n=%s c=%s",k,chr.tounicode or k,description.index,description.name or '-',description.class or '-')
+ -- end
+ if tounicode then
+ local tu = tounicode[index] -- nb: index!
+ if tu then
+ chr.tounicode = tu
+ end
+ end
+ if hasquality then
+ local ve = v.expansion_factor
+ if ve then
+ chr.expansion_factor = ve*1000 -- expansionfactor, hm, can happen elsewhere
+ end
+ local vl = v.left_protruding
+ if vl then
+ chr.left_protruding = protrusionfactor*width*vl
+ end
+ local vr = v.right_protruding
+ if vr then
+ chr.right_protruding = protrusionfactor*width*vr
+ end
+ end
+ -- todo: hasitalic
+ if hasitalic then
+ local vi = description.italic or v.italic
+ if vi and vi ~= 0 then
+ chr.italic = vi*delta
+ end
+ end
+ -- to be tested
+ if hasmath then
+ -- todo, just operate on descriptions.math
+ local vn = v.next
+ if vn then
+ chr.next = vn
+ else
+ local vv = v.vert_variants
+ if vv then
+ local t = { }
+ for i=1,#vv do
+ local vvi = vv[i]
+ t[i] = {
+ ["start"] = (vvi["start"] or 0)*delta,
+ ["end"] = (vvi["end"] or 0)*delta,
+ ["advance"] = (vvi["advance"] or 0)*delta,
+ ["extender"] = vvi["extender"],
+ ["glyph"] = vvi["glyph"],
+ }
+ end
+ chr.vert_variants = t
+ else
+ local hv = v.horiz_variants
+ if hv then
+ local t = { }
+ for i=1,#hv do
+ local hvi = hv[i]
+ t[i] = {
+ ["start"] = (hvi["start"] or 0)*delta,
+ ["end"] = (hvi["end"] or 0)*delta,
+ ["advance"] = (hvi["advance"] or 0)*delta,
+ ["extender"] = hvi["extender"],
+ ["glyph"] = hvi["glyph"],
+ }
+ end
+ chr.horiz_variants = t
+ end
+ end
+ end
+ local vt = description.top_accent
+ if vt then
+ chr.top_accent = delta*vt
+ end
+ if stackmath then
+ local mk = v.mathkerns
+ if mk then
+ local kerns = { }
+ -- for k, v in next, mk do
+ -- local kk = { }
+ -- for i=1,#v do
+ -- local vi = v[i]
+ -- kk[i] = { height = delta*vi.height, kern = delta*vi.kern }
+ -- end
+ -- kerns[k] = kk
+ -- end
+ local v = mk.top_right if v then local k = { } for i=1,#v do local vi = v[i]
+ k[i] = { height = delta*vi.height, kern = delta*vi.kern }
+ end kerns.top_right = k end
+ local v = mk.top_left if v then local k = { } for i=1,#v do local vi = v[i]
+ k[i] = { height = delta*vi.height, kern = delta*vi.kern }
+ end kerns.top_left = k end
+ local v = mk.bottom_left if v then local k = { } for i=1,#v do local vi = v[i]
+ k[i] = { height = delta*vi.height, kern = delta*vi.kern }
+ end kerns.bottom_left = k end
+ local v = mk.bottom_right if v then local k = { } for i=1,#v do local vi = v[i]
+ k[i] = { height = delta*vi.height, kern = delta*vi.kern }
+ end kerns.bottom_right = k end
+ chr.mathkern = kerns -- singular
+ end
+ end
+ end
+ if not nodemode then
+ local vk = v.kerns
+ if vk then
+ if sharedkerns then
+ local base = basekerns[vk] -- hashed by table id, not content
+ if not base then
+ base = {}
+ for k,v in next, vk do base[k] = v*delta end
+ basekerns[vk] = base
+ end
+ chr.kerns = base
+ else
+ local tt = {}
+ for k,v in next, vk do tt[k] = v*delta end
+ chr.kerns = tt
+ end
+ end
+ local vl = v.ligatures
+ if vl then
+ if true then
+ chr.ligatures = vl -- shared
+ else
+ local tt = { }
+ for i,l in next, vl do
+ tt[i] = l
+ end
+ chr.ligatures = tt
+ end
+ end
+ end
+ if isvirtual then
+ local vc = v.commands
+ if vc then
+ -- we assume non scaled commands here
+ local ok = false
+ for i=1,#vc do
+ local key = vc[i][1]
+ if key == "right" or key == "down" then
+ ok = true
+ break
+ end
+ end
+ if ok then
+ local tt = { }
+ for i=1,#vc do
+ local ivc = vc[i]
+ local key = ivc[1]
+ if key == "right" or key == "down" then
+ tt[#tt+1] = { key, ivc[2]*delta }
+ else -- not comment
+ tt[#tt+1] = ivc -- shared since in cache and untouched
+ end
+ end
+ chr.commands = tt
+ else
+ chr.commands = vc
+ end
+ end
+ end
+ tc[k] = chr
+ end
+ -- t.encodingbytes, t.filename, t.fullname, t.name: elsewhere
+ t.size = scaledpoints
+ t.factor = delta
+ if t.fonts then
+ t.fonts = table.fastcopy(t.fonts) -- maybe we virtualize more afterwards
+ end
+ if hasmath then
+ -- mathematics.extras.copy(t) -- can be done elsewhere if needed
+ local ma = tfm.mathactions
+ for i=1,#ma do
+ ma[i](t,tfmtable,delta)
+ end
+ end
+ -- needed for \high cum suis
+ local tpx = tp.x_height
+if hasmath then
+ if not tp[13] then tp[13] = .86*tpx end -- mathsupdisplay
+ if not tp[14] then tp[14] = .86*tpx end -- mathsupnormal
+ if not tp[15] then tp[15] = .86*tpx end -- mathsupcramped
+ if not tp[16] then tp[16] = .48*tpx end -- mathsubnormal
+ if not tp[17] then tp[17] = .48*tpx end -- mathsubcombined
+ if not tp[22] then tp[22] = 0 end -- mathaxisheight
+ if t.MathConstants then t.MathConstants.AccentBaseHeight = nil end -- safeguard
+end
+ t.tounicode = 1
+ t.cidinfo = tfmtable.cidinfo
+ -- we have t.name=metricfile and t.fullname=RealName and t.filename=diskfilename
+ -- when collapsing fonts, luatex looks as both t.name and t.fullname as ttc files
+ -- can have multiple subfonts
+ if hasmath then
+ if trace_defining then
+ logs.report("define font","math enabled for: %s %s %s",t.name or "noname",t.fullname or "nofullname",t.filename or "nofilename")
+ end
+ else
+ if trace_defining then
+ logs.report("define font","math disabled for: %s %s %s",t.name or "noname",t.fullname or "nofullname",t.filename or "nofilename")
+ end
+ t.nomath, t.MathConstants = true, nil
+ end
+ -- fullname is used in the subsetting
+ if not t.psname then
+ t.psname = t.fullname -- else bad luck
+ end
+ return t, delta
+end
+
+--[[ldx--
+<p>The reason why the scaler is split, is that for a while we experimented
+with a helper function. However, in practice the <l n='api'/> calls are too slow to
+make this profitable and the <l n='lua'/> based variant was just faster. A days
+wasted day but an experience richer.</p>
+--ldx]]--
+
+tfm.auto_cleanup = true
+
+local lastfont = nil
+
+-- we can get rid of the tfm instance when we have fast access to the
+-- scaled character dimensions at the tex end, e.g. a fontobject.width
+--
+-- flushing the kern and ligature tables from memory saves a lot (only
+-- base mode) but it complicates vf building where the new characters
+-- demand this data
+
+--~ for id, f in pairs(fonts.ids) do -- or font.fonts
+--~ local ffi = font.fonts[id]
+--~ f.characters = ffi.characters
+--~ f.kerns = ffi.kerns
+--~ f.ligatures = ffi.ligatures
+--~ end
+
+function tfm.cleanup_table(tfmdata) -- we need a cleanup callback, now we miss the last one
+ if tfm.auto_cleanup then -- ok, we can hook this into everyshipout or so ... todo
+ if tfmdata.type == 'virtual' or tfmdata.virtualized then
+ for k, v in next, tfmdata.characters do
+ if v.commands then v.commands = nil end
+ end
+ end
+ end
+end
+
+function tfm.cleanup(tfmdata) -- we need a cleanup callback, now we miss the last one
+end
+
+function tfm.scale(tfmtable, scaledpoints)
+ local t, factor = tfm.do_scale(tfmtable, scaledpoints)
+ t.factor = factor
+ t.ascender = factor*(tfmtable.ascender or 0)
+ t.descender = factor*(tfmtable.descender or 0)
+ t.shared = tfmtable.shared or { }
+ t.unique = table.fastcopy(tfmtable.unique or {})
+--~ print("scaling", t.name, t.factor) -- , tfm.hash_features(tfmtable.specification))
+ tfm.cleanup(t)
+ return t
+end
+
+--[[ldx--
+<p>Analyzers run per script and/or language and are needed in order to
+process features right.</p>
+--ldx]]--
+
+fonts.analyzers = fonts.analyzers or { }
+fonts.analyzers.aux = fonts.analyzers.aux or { }
+fonts.analyzers.methods = fonts.analyzers.methods or { }
+fonts.analyzers.initializers = fonts.analyzers.initializers or { }
+
+-- todo: analyzers per script/lang, cross font, so we need an font id hash -> script
+-- e.g. latin -> hyphenate, arab -> 1/2/3 analyze
+
+-- an example analyzer (should move to font-ota.lua)
+
+local state = attributes.private('state')
+
+function fonts.analyzers.aux.setstate(head,font)
+ local tfmdata = fontdata[font]
+ local characters = tfmdata.characters
+ local descriptions = tfmdata.descriptions
+ local first, last, current, n, done = nil, nil, head, 0, false -- maybe make n boolean
+ while current do
+ if current.id == glyph and current.font == font then
+ local d = descriptions[current.char]
+ if d then
+ if d.class == "mark" then
+ done = true
+ set_attribute(current,state,5) -- mark
+ elseif n == 0 then
+ first, last, n = current, current, 1
+ set_attribute(current,state,1) -- init
+ else
+ last, n = current, n+1
+ set_attribute(current,state,2) -- medi
+ end
+ else -- finish
+ if first and first == last then
+ set_attribute(last,state,4) -- isol
+ elseif last then
+ set_attribute(last,state,3) -- fina
+ end
+ first, last, n = nil, nil, 0
+ end
+ else -- finish
+ if first and first == last then
+ set_attribute(last,state,4) -- isol
+ elseif last then
+ set_attribute(last,state,3) -- fina
+ end
+ first, last, n = nil, nil, 0
+ end
+ current = current.next
+ end
+ if first and first == last then
+ set_attribute(last,state,4) -- isol
+ elseif last then
+ set_attribute(last,state,3) -- fina
+ end
+ return head, done
+end
+
+function tfm.replacements(tfm,value)
+ -- tfm.characters[0x0022] = table.fastcopy(tfm.characters[0x201D])
+ -- tfm.characters[0x0027] = table.fastcopy(tfm.characters[0x2019])
+ -- tfm.characters[0x0060] = table.fastcopy(tfm.characters[0x2018])
+ -- tfm.characters[0x0022] = tfm.characters[0x201D]
+ tfm.characters[0x0027] = tfm.characters[0x2019]
+ -- tfm.characters[0x0060] = tfm.characters[0x2018]
+end
+
+-- auto complete font with missing composed characters
+
+table.insert(fonts.manipulators,"compose")
+
+function fonts.initializers.common.compose(tfmdata,value)
+ if value then
+ fonts.vf.aux.compose_characters(tfmdata)
+ end
+end
+
+-- tfm features, experimental
+
+tfm.features = tfm.features or { }
+tfm.features.list = tfm.features.list or { }
+tfm.features.default = tfm.features.default or { }
+
+function tfm.enhance(tfmdata,specification)
+ -- we don't really share tfm data because we always reload
+ -- but this is more in sycn with afm and such
+ local features = (specification.features and specification.features.normal ) or { }
+ tfmdata.shared = tfmdata.shared or { }
+ tfmdata.shared.features = features
+ -- tfmdata.shared.tfmdata = tfmdata -- circular
+ tfmdata.filename = specification.name
+ if not features.encoding then
+ local name, size = specification.name, specification.size
+ local encoding, filename = match(name,"^(.-)%-(.*)$") -- context: encoding-name.*
+ if filename and encoding and fonts.enc.known[encoding] then
+ features.encoding = encoding
+ end
+ end
+ tfm.set_features(tfmdata)
+end
+
+function tfm.set_features(tfmdata)
+ -- todo: no local functions
+ local shared = tfmdata.shared
+-- local tfmdata = shared.tfmdata
+ local features = shared.features
+ if not table.is_empty(features) then
+ local mode = tfmdata.mode or fonts.mode
+ local fi = fonts.initializers[mode]
+ if fi and fi.tfm then
+ local function initialize(list) -- using tex lig and kerning
+ if list then
+ for i=1,#list do
+ local f = list[i]
+ local value = features[f]
+ if value and fi.tfm[f] then -- brr
+ if tfm.trace_features then
+ logs.report("define font","initializing feature %s to %s for mode %s for font %s",f,tostring(value),mode or 'unknown',tfmdata.name or 'unknown')
+ end
+ fi.tfm[f](tfmdata,value)
+ mode = tfmdata.mode or fonts.mode
+ fi = fonts.initializers[mode]
+ end
+ end
+ end
+ end
+ initialize(fonts.triggers)
+ initialize(tfm.features.list)
+ initialize(fonts.manipulators)
+ end
+ local fm = fonts.methods[mode]
+ if fm and fm.tfm then
+ local function register(list) -- node manipulations
+ if list then
+ for i=1,#list do
+ local f = list[i]
+ if features[f] and fm.tfm[f] then -- brr
+ if not shared.processors then -- maybe also predefine
+ shared.processors = { fm.tfm[f] }
+ else
+ shared.processors[#shared.processors+1] = fm.tfm[f]
+ end
+ end
+ end
+ end
+ end
+ register(tfm.features.list)
+ end
+ end
+end
+
+function tfm.features.register(name,default)
+ tfm.features.list[#tfm.features.list+1] = name
+ tfm.features.default[name] = default
+end
+
+function tfm.reencode(tfmdata,encoding)
+ if encoding and fonts.enc.known[encoding] then
+ local data = fonts.enc.load(encoding)
+ if data then
+ local characters, original, vector = tfmdata.characters, { }, data.vector
+ tfmdata.encoding = encoding -- not needed
+ for k, v in next, characters do
+ v.name, v.index, original[k] = vector[k], k, v
+ end
+ for k,v in next, data.unicodes do
+ if k ~= v then
+ if trace_defining then
+ logs.report("define font","reencoding U+%04X to U+%04X",k,v)
+ end
+ characters[k] = original[v]
+ end
+ end
+ end
+ end
+end
+
+tfm.features.register('reencode')
+
+fonts.initializers.base.tfm.reencode = tfm.reencode
+fonts.initializers.node.tfm.reencode = tfm.reencode
+
+fonts.enc = fonts.enc or { }
+fonts.enc.remappings = fonts.enc.remappings or { }
+
+function tfm.remap(tfmdata,remapping)
+ local vector = remapping and fonts.enc.remappings[remapping]
+ if vector then
+ local characters, original = tfmdata.characters, { }
+ for k, v in next, characters do
+ original[k], characters[k] = v, nil
+ end
+ for k,v in next, vector do
+ if k ~= v then
+ if trace_defining then
+ logs.report("define font","remapping U+%04X to U+%04X",k,v)
+ end
+ local c = original[k]
+ characters[v] = c
+ c.index = k
+ end
+ end
+ tfmdata.encodingbytes = 2
+ tfmdata.format = 'type1'
+ end
+end
+
+tfm.features.register('remap')
+
+fonts.initializers.base.tfm.remap = tfm.remap
+fonts.initializers.node.tfm.remap = tfm.remap
+
+-- status info
+
+statistics.register("fonts load time", function()
+ if statistics.elapsedindeed(fonts) then
+ return format("%s seconds",statistics.elapsedtime(fonts))
+ end
+end)
+
+end -- closure
+
+do -- begin closure to overcome local limits and interference
+
+if not modules then modules = { } end modules ['font-cid'] = {
+ version = 1.001,
+ comment = "companion to font-otf.lua (cidmaps)",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local format, match = string.format, string.match
+local tonumber = tonumber
+
+local trace_loading = false trackers.register("otf.loading", function(v) trace_loading = v end)
+
+fonts = fonts or { }
+fonts.cid = fonts.cid or { }
+fonts.cid.map = fonts.cid.map or { }
+fonts.cid.max = fonts.cid.max or 10
+
+
+-- original string parser: 0.109, lpeg parser: 0.036 seconds for Adobe-CNS1-4.cidmap
+--
+-- 18964 18964 (leader)
+-- 0 /.notdef
+-- 1..95 0020
+-- 99 3000
+
+local number = lpeg.C(lpeg.R("09","af","AF")^1)
+local space = lpeg.S(" \n\r\t")
+local spaces = space^0
+local period = lpeg.P(".")
+local periods = period * period
+local name = lpeg.P("/") * lpeg.C((1-space)^1)
+
+local unicodes, names = { }, { }
+
+local function do_one(a,b)
+ unicodes[tonumber(a)] = tonumber(b,16)
+end
+
+local function do_range(a,b,c)
+ c = tonumber(c,16)
+ for i=tonumber(a),tonumber(b) do
+ unicodes[i] = c
+ c = c + 1
+ end
+end
+
+local function do_name(a,b)
+ names[tonumber(a)] = b
+end
+
+local grammar = lpeg.P { "start",
+ start = number * spaces * number * lpeg.V("series"),
+ series = (spaces * (lpeg.V("one") + lpeg.V("range") + lpeg.V("named")) )^1,
+ one = (number * spaces * number) / do_one,
+ range = (number * periods * number * spaces * number) / do_range,
+ named = (number * spaces * name) / do_name
+}
+
+function fonts.cid.load(filename)
+ local data = io.loaddata(filename)
+ if data then
+ unicodes, names = { }, { }
+ grammar:match(data)
+ local supplement, registry, ordering = match(filename,"^(.-)%-(.-)%-()%.(.-)$")
+ return {
+ supplement = supplement,
+ registry = registry,
+ ordering = ordering,
+ filename = filename,
+ unicodes = unicodes,
+ names = names
+ }
+ else
+ return nil
+ end
+end
+
+local template = "%s-%s-%s.cidmap"
+
+local function locate(registry,ordering,supplement)
+ local filename = string.lower(format(template,registry,ordering,supplement))
+ local cidmap = fonts.cid.map[filename]
+ if not cidmap then
+ if trace_loading then
+ logs.report("load otf","checking cidmap, registry: %s, ordering: %s, supplement: %s, filename: %s",registry,ordering,supplement,filename)
+ end
+ local fullname = resolvers.find_file(filename,'cid') or ""
+ if fullname ~= "" then
+ cidmap = fonts.cid.load(fullname)
+ if cidmap then
+ if trace_loading then
+ logs.report("load otf","using cidmap file %s",filename)
+ end
+ fonts.cid.map[filename] = cidmap
+ cidmap.usedname = file.basename(filename)
+ return cidmap
+ end
+ end
+ end
+ return cidmap
+end
+
+function fonts.cid.getmap(registry,ordering,supplement)
+ -- cf Arthur R. we can safely scan upwards since cids are downward compatible
+ local supplement = tonumber(supplement)
+ if trace_loading then
+ logs.report("load otf","needed cidmap, registry: %s, ordering: %s, supplement: %s",registry,ordering,supplement)
+ end
+ local cidmap = locate(registry,ordering,supplement)
+ if not cidmap then
+ local cidnum = nil
+ -- next highest (alternatively we could start high)
+ if supplement < fonts.cid.max then
+ for supplement=supplement+1,fonts.cid.max do
+ local c = locate(registry,ordering,supplement)
+ if c then
+ cidmap, cidnum = c, supplement
+ break
+ end
+ end
+ end
+ -- next lowest (least worse fit)
+ if not cidmap and supplement > 0 then
+ for supplement=supplement-1,0,-1 do
+ local c = locate(registry,ordering,supplement)
+ if c then
+ cidmap, cidnum = c, supplement
+ break
+ end
+ end
+ end
+ -- prevent further lookups
+ if cidmap and cidnum > 0 then
+ for s=0,cidnum-1 do
+ filename = format(template,registry,ordering,s)
+ if not fonts.cid.map[filename] then
+ fonts.cid.map[filename] = cidmap -- copy of ref
+ end
+ end
+ end
+ end
+ return cidmap
+end
+
+end -- closure
+
+do -- begin closure to overcome local limits and interference
+
+if not modules then modules = { } end modules ['font-otf'] = {
+ version = 1.001,
+ comment = "companion to font-otf.lua (tables)",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local type, next, tonumber, tostring = type, next, tonumber, tostring
+local gsub, lower = string.gsub, string.lower
+
+fonts = fonts or { }
+fonts.otf = fonts.otf or { }
+
+local otf = fonts.otf
+
+otf.tables = otf.tables or { }
+otf.meanings = otf.meanings or { }
+
+otf.tables.scripts = {
+ ['dflt'] = 'Default',
+
+ ['arab'] = 'Arabic',
+ ['armn'] = 'Armenian',
+ ['bali'] = 'Balinese',
+ ['beng'] = 'Bengali',
+ ['bopo'] = 'Bopomofo',
+ ['brai'] = 'Braille',
+ ['bugi'] = 'Buginese',
+ ['buhd'] = 'Buhid',
+ ['byzm'] = 'Byzantine Music',
+ ['cans'] = 'Canadian Syllabics',
+ ['cher'] = 'Cherokee',
+ ['copt'] = 'Coptic',
+ ['cprt'] = 'Cypriot Syllabary',
+ ['cyrl'] = 'Cyrillic',
+ ['deva'] = 'Devanagari',
+ ['dsrt'] = 'Deseret',
+ ['ethi'] = 'Ethiopic',
+ ['geor'] = 'Georgian',
+ ['glag'] = 'Glagolitic',
+ ['goth'] = 'Gothic',
+ ['grek'] = 'Greek',
+ ['gujr'] = 'Gujarati',
+ ['guru'] = 'Gurmukhi',
+ ['hang'] = 'Hangul',
+ ['hani'] = 'CJK Ideographic',
+ ['hano'] = 'Hanunoo',
+ ['hebr'] = 'Hebrew',
+ ['ital'] = 'Old Italic',
+ ['jamo'] = 'Hangul Jamo',
+ ['java'] = 'Javanese',
+ ['kana'] = 'Hiragana and Katakana',
+ ['khar'] = 'Kharosthi',
+ ['khmr'] = 'Khmer',
+ ['knda'] = 'Kannada',
+ ['lao' ] = 'Lao',
+ ['latn'] = 'Latin',
+ ['limb'] = 'Limbu',
+ ['linb'] = 'Linear B',
+ ['math'] = 'Mathematical Alphanumeric Symbols',
+ ['mlym'] = 'Malayalam',
+ ['mong'] = 'Mongolian',
+ ['musc'] = 'Musical Symbols',
+ ['mymr'] = 'Myanmar',
+ ['nko' ] = "N'ko",
+ ['ogam'] = 'Ogham',
+ ['orya'] = 'Oriya',
+ ['osma'] = 'Osmanya',
+ ['phag'] = 'Phags-pa',
+ ['phnx'] = 'Phoenician',
+ ['runr'] = 'Runic',
+ ['shaw'] = 'Shavian',
+ ['sinh'] = 'Sinhala',
+ ['sylo'] = 'Syloti Nagri',
+ ['syrc'] = 'Syriac',
+ ['tagb'] = 'Tagbanwa',
+ ['tale'] = 'Tai Le',
+ ['talu'] = 'Tai Lu',
+ ['taml'] = 'Tamil',
+ ['telu'] = 'Telugu',
+ ['tfng'] = 'Tifinagh',
+ ['tglg'] = 'Tagalog',
+ ['thaa'] = 'Thaana',
+ ['thai'] = 'Thai',
+ ['tibt'] = 'Tibetan',
+ ['ugar'] = 'Ugaritic Cuneiform',
+ ['xpeo'] = 'Old Persian Cuneiform',
+ ['xsux'] = 'Sumero-Akkadian Cuneiform',
+ ['yi' ] = 'Yi'
+}
+
+otf.tables.languages = {
+ ['dflt'] = 'Default',
+
+ ['aba'] = 'Abaza',
+ ['abk'] = 'Abkhazian',
+ ['ady'] = 'Adyghe',
+ ['afk'] = 'Afrikaans',
+ ['afr'] = 'Afar',
+ ['agw'] = 'Agaw',
+ ['als'] = 'Alsatian',
+ ['alt'] = 'Altai',
+ ['amh'] = 'Amharic',
+ ['ara'] = 'Arabic',
+ ['ari'] = 'Aari',
+ ['ark'] = 'Arakanese',
+ ['asm'] = 'Assamese',
+ ['ath'] = 'Athapaskan',
+ ['avr'] = 'Avar',
+ ['awa'] = 'Awadhi',
+ ['aym'] = 'Aymara',
+ ['aze'] = 'Azeri',
+ ['bad'] = 'Badaga',
+ ['bag'] = 'Baghelkhandi',
+ ['bal'] = 'Balkar',
+ ['bau'] = 'Baule',
+ ['bbr'] = 'Berber',
+ ['bch'] = 'Bench',
+ ['bcr'] = 'Bible Cree',
+ ['bel'] = 'Belarussian',
+ ['bem'] = 'Bemba',
+ ['ben'] = 'Bengali',
+ ['bgr'] = 'Bulgarian',
+ ['bhi'] = 'Bhili',
+ ['bho'] = 'Bhojpuri',
+ ['bik'] = 'Bikol',
+ ['bil'] = 'Bilen',
+ ['bkf'] = 'Blackfoot',
+ ['bli'] = 'Balochi',
+ ['bln'] = 'Balante',
+ ['blt'] = 'Balti',
+ ['bmb'] = 'Bambara',
+ ['bml'] = 'Bamileke',
+ ['bos'] = 'Bosnian',
+ ['bre'] = 'Breton',
+ ['brh'] = 'Brahui',
+ ['bri'] = 'Braj Bhasha',
+ ['brm'] = 'Burmese',
+ ['bsh'] = 'Bashkir',
+ ['bti'] = 'Beti',
+ ['cat'] = 'Catalan',
+ ['ceb'] = 'Cebuano',
+ ['che'] = 'Chechen',
+ ['chg'] = 'Chaha Gurage',
+ ['chh'] = 'Chattisgarhi',
+ ['chi'] = 'Chichewa',
+ ['chk'] = 'Chukchi',
+ ['chp'] = 'Chipewyan',
+ ['chr'] = 'Cherokee',
+ ['chu'] = 'Chuvash',
+ ['cmr'] = 'Comorian',
+ ['cop'] = 'Coptic',
+ ['cos'] = 'Corsican',
+ ['cre'] = 'Cree',
+ ['crr'] = 'Carrier',
+ ['crt'] = 'Crimean Tatar',
+ ['csl'] = 'Church Slavonic',
+ ['csy'] = 'Czech',
+ ['dan'] = 'Danish',
+ ['dar'] = 'Dargwa',
+ ['dcr'] = 'Woods Cree',
+ ['deu'] = 'German',
+ ['dgr'] = 'Dogri',
+ ['div'] = 'Divehi',
+ ['djr'] = 'Djerma',
+ ['dng'] = 'Dangme',
+ ['dnk'] = 'Dinka',
+ ['dri'] = 'Dari',
+ ['dun'] = 'Dungan',
+ ['dzn'] = 'Dzongkha',
+ ['ebi'] = 'Ebira',
+ ['ecr'] = 'Eastern Cree',
+ ['edo'] = 'Edo',
+ ['efi'] = 'Efik',
+ ['ell'] = 'Greek',
+ ['eng'] = 'English',
+ ['erz'] = 'Erzya',
+ ['esp'] = 'Spanish',
+ ['eti'] = 'Estonian',
+ ['euq'] = 'Basque',
+ ['evk'] = 'Evenki',
+ ['evn'] = 'Even',
+ ['ewe'] = 'Ewe',
+ ['fan'] = 'French Antillean',
+ ['far'] = 'Farsi',
+ ['fin'] = 'Finnish',
+ ['fji'] = 'Fijian',
+ ['fle'] = 'Flemish',
+ ['fne'] = 'Forest Nenets',
+ ['fon'] = 'Fon',
+ ['fos'] = 'Faroese',
+ ['fra'] = 'French',
+ ['fri'] = 'Frisian',
+ ['frl'] = 'Friulian',
+ ['fta'] = 'Futa',
+ ['ful'] = 'Fulani',
+ ['gad'] = 'Ga',
+ ['gae'] = 'Gaelic',
+ ['gag'] = 'Gagauz',
+ ['gal'] = 'Galician',
+ ['gar'] = 'Garshuni',
+ ['gaw'] = 'Garhwali',
+ ['gez'] = "Ge'ez",
+ ['gil'] = 'Gilyak',
+ ['gmz'] = 'Gumuz',
+ ['gon'] = 'Gondi',
+ ['grn'] = 'Greenlandic',
+ ['gro'] = 'Garo',
+ ['gua'] = 'Guarani',
+ ['guj'] = 'Gujarati',
+ ['hai'] = 'Haitian',
+ ['hal'] = 'Halam',
+ ['har'] = 'Harauti',
+ ['hau'] = 'Hausa',
+ ['haw'] = 'Hawaiin',
+ ['hbn'] = 'Hammer-Banna',
+ ['hil'] = 'Hiligaynon',
+ ['hin'] = 'Hindi',
+ ['hma'] = 'High Mari',
+ ['hnd'] = 'Hindko',
+ ['ho'] = 'Ho',
+ ['hri'] = 'Harari',
+ ['hrv'] = 'Croatian',
+ ['hun'] = 'Hungarian',
+ ['hye'] = 'Armenian',
+ ['ibo'] = 'Igbo',
+ ['ijo'] = 'Ijo',
+ ['ilo'] = 'Ilokano',
+ ['ind'] = 'Indonesian',
+ ['ing'] = 'Ingush',
+ ['inu'] = 'Inuktitut',
+ ['iri'] = 'Irish',
+ ['irt'] = 'Irish Traditional',
+ ['isl'] = 'Icelandic',
+ ['ism'] = 'Inari Sami',
+ ['ita'] = 'Italian',
+ ['iwr'] = 'Hebrew',
+ ['jan'] = 'Japanese',
+ ['jav'] = 'Javanese',
+ ['jii'] = 'Yiddish',
+ ['jud'] = 'Judezmo',
+ ['jul'] = 'Jula',
+ ['kab'] = 'Kabardian',
+ ['kac'] = 'Kachchi',
+ ['kal'] = 'Kalenjin',
+ ['kan'] = 'Kannada',
+ ['kar'] = 'Karachay',
+ ['kat'] = 'Georgian',
+ ['kaz'] = 'Kazakh',
+ ['keb'] = 'Kebena',
+ ['kge'] = 'Khutsuri Georgian',
+ ['kha'] = 'Khakass',
+ ['khk'] = 'Khanty-Kazim',
+ ['khm'] = 'Khmer',
+ ['khs'] = 'Khanty-Shurishkar',
+ ['khv'] = 'Khanty-Vakhi',
+ ['khw'] = 'Khowar',
+ ['kik'] = 'Kikuyu',
+ ['kir'] = 'Kirghiz',
+ ['kis'] = 'Kisii',
+ ['kkn'] = 'Kokni',
+ ['klm'] = 'Kalmyk',
+ ['kmb'] = 'Kamba',
+ ['kmn'] = 'Kumaoni',
+ ['kmo'] = 'Komo',
+ ['kms'] = 'Komso',
+ ['knr'] = 'Kanuri',
+ ['kod'] = 'Kodagu',
+ ['koh'] = 'Korean Old Hangul',
+ ['kok'] = 'Konkani',
+ ['kon'] = 'Kikongo',
+ ['kop'] = 'Komi-Permyak',
+ ['kor'] = 'Korean',
+ ['koz'] = 'Komi-Zyrian',
+ ['kpl'] = 'Kpelle',
+ ['kri'] = 'Krio',
+ ['krk'] = 'Karakalpak',
+ ['krl'] = 'Karelian',
+ ['krm'] = 'Karaim',
+ ['krn'] = 'Karen',
+ ['krt'] = 'Koorete',
+ ['ksh'] = 'Kashmiri',
+ ['ksi'] = 'Khasi',
+ ['ksm'] = 'Kildin Sami',
+ ['kui'] = 'Kui',
+ ['kul'] = 'Kulvi',
+ ['kum'] = 'Kumyk',
+ ['kur'] = 'Kurdish',
+ ['kuu'] = 'Kurukh',
+ ['kuy'] = 'Kuy',
+ ['kyk'] = 'Koryak',
+ ['lad'] = 'Ladin',
+ ['lah'] = 'Lahuli',
+ ['lak'] = 'Lak',
+ ['lam'] = 'Lambani',
+ ['lao'] = 'Lao',
+ ['lat'] = 'Latin',
+ ['laz'] = 'Laz',
+ ['lcr'] = 'L-Cree',
+ ['ldk'] = 'Ladakhi',
+ ['lez'] = 'Lezgi',
+ ['lin'] = 'Lingala',
+ ['lma'] = 'Low Mari',
+ ['lmb'] = 'Limbu',
+ ['lmw'] = 'Lomwe',
+ ['lsb'] = 'Lower Sorbian',
+ ['lsm'] = 'Lule Sami',
+ ['lth'] = 'Lithuanian',
+ ['ltz'] = 'Luxembourgish',
+ ['lub'] = 'Luba',
+ ['lug'] = 'Luganda',
+ ['luh'] = 'Luhya',
+ ['luo'] = 'Luo',
+ ['lvi'] = 'Latvian',
+ ['maj'] = 'Majang',
+ ['mak'] = 'Makua',
+ ['mal'] = 'Malayalam Traditional',
+ ['man'] = 'Mansi',
+ ['map'] = 'Mapudungun',
+ ['mar'] = 'Marathi',
+ ['maw'] = 'Marwari',
+ ['mbn'] = 'Mbundu',
+ ['mch'] = 'Manchu',
+ ['mcr'] = 'Moose Cree',
+ ['mde'] = 'Mende',
+ ['men'] = "Me'en",
+ ['miz'] = 'Mizo',
+ ['mkd'] = 'Macedonian',
+ ['mle'] = 'Male',
+ ['mlg'] = 'Malagasy',
+ ['mln'] = 'Malinke',
+ ['mlr'] = 'Malayalam Reformed',
+ ['mly'] = 'Malay',
+ ['mnd'] = 'Mandinka',
+ ['mng'] = 'Mongolian',
+ ['mni'] = 'Manipuri',
+ ['mnk'] = 'Maninka',
+ ['mnx'] = 'Manx Gaelic',
+ ['moh'] = 'Mohawk',
+ ['mok'] = 'Moksha',
+ ['mol'] = 'Moldavian',
+ ['mon'] = 'Mon',
+ ['mor'] = 'Moroccan',
+ ['mri'] = 'Maori',
+ ['mth'] = 'Maithili',
+ ['mts'] = 'Maltese',
+ ['mun'] = 'Mundari',
+ ['nag'] = 'Naga-Assamese',
+ ['nan'] = 'Nanai',
+ ['nas'] = 'Naskapi',
+ ['ncr'] = 'N-Cree',
+ ['ndb'] = 'Ndebele',
+ ['ndg'] = 'Ndonga',
+ ['nep'] = 'Nepali',
+ ['new'] = 'Newari',
+ ['ngr'] = 'Nagari',
+ ['nhc'] = 'Norway House Cree',
+ ['nis'] = 'Nisi',
+ ['niu'] = 'Niuean',
+ ['nkl'] = 'Nkole',
+ ['nko'] = "N'ko",
+ ['nld'] = 'Dutch',
+ ['nog'] = 'Nogai',
+ ['nor'] = 'Norwegian',
+ ['nsm'] = 'Northern Sami',
+ ['nta'] = 'Northern Tai',
+ ['nto'] = 'Esperanto',
+ ['nyn'] = 'Nynorsk',
+ ['oci'] = 'Occitan',
+ ['ocr'] = 'Oji-Cree',
+ ['ojb'] = 'Ojibway',
+ ['ori'] = 'Oriya',
+ ['oro'] = 'Oromo',
+ ['oss'] = 'Ossetian',
+ ['paa'] = 'Palestinian Aramaic',
+ ['pal'] = 'Pali',
+ ['pan'] = 'Punjabi',
+ ['pap'] = 'Palpa',
+ ['pas'] = 'Pashto',
+ ['pgr'] = 'Polytonic Greek',
+ ['pil'] = 'Pilipino',
+ ['plg'] = 'Palaung',
+ ['plk'] = 'Polish',
+ ['pro'] = 'Provencal',
+ ['ptg'] = 'Portuguese',
+ ['qin'] = 'Chin',
+ ['raj'] = 'Rajasthani',
+ ['rbu'] = 'Russian Buriat',
+ ['rcr'] = 'R-Cree',
+ ['ria'] = 'Riang',
+ ['rms'] = 'Rhaeto-Romanic',
+ ['rom'] = 'Romanian',
+ ['roy'] = 'Romany',
+ ['rsy'] = 'Rusyn',
+ ['rua'] = 'Ruanda',
+ ['rus'] = 'Russian',
+ ['sad'] = 'Sadri',
+ ['san'] = 'Sanskrit',
+ ['sat'] = 'Santali',
+ ['say'] = 'Sayisi',
+ ['sek'] = 'Sekota',
+ ['sel'] = 'Selkup',
+ ['sgo'] = 'Sango',
+ ['shn'] = 'Shan',
+ ['sib'] = 'Sibe',
+ ['sid'] = 'Sidamo',
+ ['sig'] = 'Silte Gurage',
+ ['sks'] = 'Skolt Sami',
+ ['sky'] = 'Slovak',
+ ['sla'] = 'Slavey',
+ ['slv'] = 'Slovenian',
+ ['sml'] = 'Somali',
+ ['smo'] = 'Samoan',
+ ['sna'] = 'Sena',
+ ['snd'] = 'Sindhi',
+ ['snh'] = 'Sinhalese',
+ ['snk'] = 'Soninke',
+ ['sog'] = 'Sodo Gurage',
+ ['sot'] = 'Sotho',
+ ['sqi'] = 'Albanian',
+ ['srb'] = 'Serbian',
+ ['srk'] = 'Saraiki',
+ ['srr'] = 'Serer',
+ ['ssl'] = 'South Slavey',
+ ['ssm'] = 'Southern Sami',
+ ['sur'] = 'Suri',
+ ['sva'] = 'Svan',
+ ['sve'] = 'Swedish',
+ ['swa'] = 'Swadaya Aramaic',
+ ['swk'] = 'Swahili',
+ ['swz'] = 'Swazi',
+ ['sxt'] = 'Sutu',
+ ['syr'] = 'Syriac',
+ ['tab'] = 'Tabasaran',
+ ['taj'] = 'Tajiki',
+ ['tam'] = 'Tamil',
+ ['tat'] = 'Tatar',
+ ['tcr'] = 'TH-Cree',
+ ['tel'] = 'Telugu',
+ ['tgn'] = 'Tongan',
+ ['tgr'] = 'Tigre',
+ ['tgy'] = 'Tigrinya',
+ ['tha'] = 'Thai',
+ ['tht'] = 'Tahitian',
+ ['tib'] = 'Tibetan',
+ ['tkm'] = 'Turkmen',
+ ['tmn'] = 'Temne',
+ ['tna'] = 'Tswana',
+ ['tne'] = 'Tundra Nenets',
+ ['tng'] = 'Tonga',
+ ['tod'] = 'Todo',
+ ['trk'] = 'Turkish',
+ ['tsg'] = 'Tsonga',
+ ['tua'] = 'Turoyo Aramaic',
+ ['tul'] = 'Tulu',
+ ['tuv'] = 'Tuvin',
+ ['twi'] = 'Twi',
+ ['udm'] = 'Udmurt',
+ ['ukr'] = 'Ukrainian',
+ ['urd'] = 'Urdu',
+ ['usb'] = 'Upper Sorbian',
+ ['uyg'] = 'Uyghur',
+ ['uzb'] = 'Uzbek',
+ ['ven'] = 'Venda',
+ ['vit'] = 'Vietnamese',
+ ['wa' ] = 'Wa',
+ ['wag'] = 'Wagdi',
+ ['wcr'] = 'West-Cree',
+ ['wel'] = 'Welsh',
+ ['wlf'] = 'Wolof',
+ ['xbd'] = 'Tai Lue',
+ ['xhs'] = 'Xhosa',
+ ['yak'] = 'Yakut',
+ ['yba'] = 'Yoruba',
+ ['ycr'] = 'Y-Cree',
+ ['yic'] = 'Yi Classic',
+ ['yim'] = 'Yi Modern',
+ ['zhh'] = 'Chinese Hong Kong',
+ ['zhp'] = 'Chinese Phonetic',
+ ['zhs'] = 'Chinese Simplified',
+ ['zht'] = 'Chinese Traditional',
+ ['znd'] = 'Zande',
+ ['zul'] = 'Zulu'
+}
+
+otf.tables.features = {
+ ['aalt'] = 'Access All Alternates',
+ ['abvf'] = 'Above-Base Forms',
+ ['abvm'] = 'Above-Base Mark Positioning',
+ ['abvs'] = 'Above-Base Substitutions',
+ ['afrc'] = 'Alternative Fractions',
+ ['akhn'] = 'Akhands',
+ ['blwf'] = 'Below-Base Forms',
+ ['blwm'] = 'Below-Base Mark Positioning',
+ ['blws'] = 'Below-Base Substitutions',
+ ['c2pc'] = 'Petite Capitals From Capitals',
+ ['c2sc'] = 'Small Capitals From Capitals',
+ ['calt'] = 'Contextual Alternates',
+ ['case'] = 'Case-Sensitive Forms',
+ ['ccmp'] = 'Glyph Composition/Decomposition',
+ ['cjct'] = 'Conjunct Forms',
+ ['clig'] = 'Contextual Ligatures',
+ ['cpsp'] = 'Capital Spacing',
+ ['cswh'] = 'Contextual Swash',
+ ['curs'] = 'Cursive Positioning',
+ ['dflt'] = 'Default Processing',
+ ['dist'] = 'Distances',
+ ['dlig'] = 'Discretionary Ligatures',
+ ['dnom'] = 'Denominators',
+ ['dtls'] = 'Dotless Forms', -- math
+ ['expt'] = 'Expert Forms',
+ ['falt'] = 'Final glyph Alternates',
+ ['fin2'] = 'Terminal Forms #2',
+ ['fin3'] = 'Terminal Forms #3',
+ ['fina'] = 'Terminal Forms',
+ ['flac'] = 'Flattened Accents Over Capitals', -- math
+ ['frac'] = 'Fractions',
+ ['fwid'] = 'Full Width',
+ ['half'] = 'Half Forms',
+ ['haln'] = 'Halant Forms',
+ ['halt'] = 'Alternate Half Width',
+ ['hist'] = 'Historical Forms',
+ ['hkna'] = 'Horizontal Kana Alternates',
+ ['hlig'] = 'Historical Ligatures',
+ ['hngl'] = 'Hangul',
+ ['hojo'] = 'Hojo Kanji Forms',
+ ['hwid'] = 'Half Width',
+ ['init'] = 'Initial Forms',
+ ['isol'] = 'Isolated Forms',
+ ['ital'] = 'Italics',
+ ['jalt'] = 'Justification Alternatives',
+ ['jp04'] = 'JIS2004 Forms',
+ ['jp78'] = 'JIS78 Forms',
+ ['jp83'] = 'JIS83 Forms',
+ ['jp90'] = 'JIS90 Forms',
+ ['kern'] = 'Kerning',
+ ['lfbd'] = 'Left Bounds',
+ ['liga'] = 'Standard Ligatures',
+ ['ljmo'] = 'Leading Jamo Forms',
+ ['lnum'] = 'Lining Figures',
+ ['locl'] = 'Localized Forms',
+ ['mark'] = 'Mark Positioning',
+ ['med2'] = 'Medial Forms #2',
+ ['medi'] = 'Medial Forms',
+ ['mgrk'] = 'Mathematical Greek',
+ ['mkmk'] = 'Mark to Mark Positioning',
+ ['mset'] = 'Mark Positioning via Substitution',
+ ['nalt'] = 'Alternate Annotation Forms',
+ ['nlck'] = 'NLC Kanji Forms',
+ ['nukt'] = 'Nukta Forms',
+ ['numr'] = 'Numerators',
+ ['onum'] = 'Old Style Figures',
+ ['opbd'] = 'Optical Bounds',
+ ['ordn'] = 'Ordinals',
+ ['ornm'] = 'Ornaments',
+ ['palt'] = 'Proportional Alternate Width',
+ ['pcap'] = 'Petite Capitals',
+ ['pnum'] = 'Proportional Figures',
+ ['pref'] = 'Pre-base Forms',
+ ['pres'] = 'Pre-base Substitutions',
+ ['pstf'] = 'Post-base Forms',
+ ['psts'] = 'Post-base Substitutions',
+ ['pwid'] = 'Proportional Widths',
+ ['qwid'] = 'Quarter Widths',
+ ['rand'] = 'Randomize',
+ ['rkrf'] = 'Rakar Forms',
+ ['rlig'] = 'Required Ligatures',
+ ['rphf'] = 'Reph Form',
+ ['rtbd'] = 'Right Bounds',
+ ['rtla'] = 'Right-To-Left Alternates',
+ ['ruby'] = 'Ruby Notation Forms',
+ ['salt'] = 'Stylistic Alternates',
+ ['sinf'] = 'Scientific Inferiors',
+ ['size'] = 'Optical Size',
+ ['smcp'] = 'Small Capitals',
+ ['smpl'] = 'Simplified Forms',
+ ['ss01'] = 'Stylistic Set 1',
+ ['ss02'] = 'Stylistic Set 2',
+ ['ss03'] = 'Stylistic Set 3',
+ ['ss04'] = 'Stylistic Set 4',
+ ['ss05'] = 'Stylistic Set 5',
+ ['ss06'] = 'Stylistic Set 6',
+ ['ss07'] = 'Stylistic Set 7',
+ ['ss08'] = 'Stylistic Set 8',
+ ['ss09'] = 'Stylistic Set 9',
+ ['ss10'] = 'Stylistic Set 10',
+ ['ss11'] = 'Stylistic Set 11',
+ ['ss12'] = 'Stylistic Set 12',
+ ['ss13'] = 'Stylistic Set 13',
+ ['ss14'] = 'Stylistic Set 14',
+ ['ss15'] = 'Stylistic Set 15',
+ ['ss16'] = 'Stylistic Set 16',
+ ['ss17'] = 'Stylistic Set 17',
+ ['ss18'] = 'Stylistic Set 18',
+ ['ss19'] = 'Stylistic Set 19',
+ ['ss20'] = 'Stylistic Set 20',
+ ['ssty'] = 'Script Style', -- math
+ ['subs'] = 'Subscript',
+ ['sups'] = 'Superscript',
+ ['swsh'] = 'Swash',
+ ['titl'] = 'Titling',
+ ['tjmo'] = 'Trailing Jamo Forms',
+ ['tnam'] = 'Traditional Name Forms',
+ ['tnum'] = 'Tabular Figures',
+ ['trad'] = 'Traditional Forms',
+ ['twid'] = 'Third Widths',
+ ['unic'] = 'Unicase',
+ ['valt'] = 'Alternate Vertical Metrics',
+ ['vatu'] = 'Vattu Variants',
+ ['vert'] = 'Vertical Writing',
+ ['vhal'] = 'Alternate Vertical Half Metrics',
+ ['vjmo'] = 'Vowel Jamo Forms',
+ ['vkna'] = 'Vertical Kana Alternates',
+ ['vkrn'] = 'Vertical Kerning',
+ ['vpal'] = 'Proportional Alternate Vertical Metrics',
+ ['vrt2'] = 'Vertical Rotation',
+ ['zero'] = 'Slashed Zero',
+
+ ['trep'] = 'Traditional TeX Replacements',
+ ['tlig'] = 'Traditional TeX Ligatures',
+}
+
+otf.tables.baselines = {
+ ['hang'] = 'Hanging baseline',
+ ['icfb'] = 'Ideographic character face bottom edge baseline',
+ ['icft'] = 'Ideographic character face tope edige baseline',
+ ['ideo'] = 'Ideographic em-box bottom edge baseline',
+ ['idtp'] = 'Ideographic em-box top edge baseline',
+ ['math'] = 'Mathmatical centered baseline',
+ ['romn'] = 'Roman baseline'
+}
+
+-- can be sped up by local tables
+
+function otf.tables.to_tag(id)
+ return stringformat("%4s",lower(id))
+end
+
+local function resolve(tab,id)
+ if tab and id then
+ id = lower(id)
+ return tab[id] or tab[gsub(id," ","")] or tab['dflt'] or ''
+ else
+ return "unknown"
+ end
+end
+
+function otf.meanings.script(id)
+ return resolve(otf.tables.scripts,id)
+end
+function otf.meanings.language(id)
+ return resolve(otf.tables.languages,id)
+end
+function otf.meanings.feature(id)
+ return resolve(otf.tables.features,id)
+end
+function otf.meanings.baseline(id)
+ return resolve(otf.tables.baselines,id)
+end
+
+otf.tables.to_scripts = table.reverse_hash(otf.tables.scripts )
+otf.tables.to_languages = table.reverse_hash(otf.tables.languages)
+otf.tables.to_features = table.reverse_hash(otf.tables.features )
+
+local scripts = otf.tables.scripts
+local languages = otf.tables.languages
+local features = otf.tables.features
+
+local to_scripts = otf.tables.to_scripts
+local to_languages = otf.tables.to_languages
+local to_features = otf.tables.to_features
+
+for k, v in pairs(to_features) do
+ local stripped = gsub(k,"%-"," ")
+ to_features[stripped] = v
+ local stripped = gsub(k,"[^a-zA-Z0-9]","")
+ to_features[stripped] = v
+end
+for k, v in pairs(to_features) do
+ to_features[lower(k)] = v
+end
+
+function otf.meanings.normalize(features)
+ local h = { }
+ for k,v in next, features do
+ k = lower(k)
+ if k == "language" or k == "lang" then
+ v = gsub(lower(v),"[^a-z0-9%-]","")
+ k = language
+ if not languages[v] then
+ h.language = to_languages[v] or "dflt"
+ else
+ h.language = v
+ end
+ elseif k == "script" then
+ v = gsub(lower(v),"[^a-z0-9%-]","")
+ if not scripts[v] then
+ h.script = to_scripts[v] or "dflt"
+ else
+ h.script = v
+ end
+ else
+ if type(v) == "string" then
+ local b = v:is_boolean()
+ if type(b) == "nil" then
+ v = tonumber(v) or lower(v)
+ else
+ v = b
+ end
+ end
+ h[to_features[k] or k] = v
+ end
+ end
+ return h
+end
+
+-- When I feel the need ...
+
+--~ otf.tables.aat = {
+--~ [ 0] = {
+--~ name = "allTypographicFeaturesType",
+--~ [ 0] = "allTypeFeaturesOnSelector",
+--~ [ 1] = "allTypeFeaturesOffSelector",
+--~ },
+--~ [ 1] = {
+--~ name = "ligaturesType",
+--~ [0 ] = "requiredLigaturesOnSelector",
+--~ [1 ] = "requiredLigaturesOffSelector",
+--~ [2 ] = "commonLigaturesOnSelector",
+--~ [3 ] = "commonLigaturesOffSelector",
+--~ [4 ] = "rareLigaturesOnSelector",
+--~ [5 ] = "rareLigaturesOffSelector",
+--~ [6 ] = "logosOnSelector ",
+--~ [7 ] = "logosOffSelector ",
+--~ [8 ] = "rebusPicturesOnSelector",
+--~ [9 ] = "rebusPicturesOffSelector",
+--~ [10] = "diphthongLigaturesOnSelector",
+--~ [11] = "diphthongLigaturesOffSelector",
+--~ [12] = "squaredLigaturesOnSelector",
+--~ [13] = "squaredLigaturesOffSelector",
+--~ [14] = "abbrevSquaredLigaturesOnSelector",
+--~ [15] = "abbrevSquaredLigaturesOffSelector",
+--~ },
+--~ [ 2] = {
+--~ name = "cursiveConnectionType",
+--~ [ 0] = "unconnectedSelector",
+--~ [ 1] = "partiallyConnectedSelector",
+--~ [ 2] = "cursiveSelector ",
+--~ },
+--~ [ 3] = {
+--~ name = "letterCaseType",
+--~ [ 0] = "upperAndLowerCaseSelector",
+--~ [ 1] = "allCapsSelector ",
+--~ [ 2] = "allLowerCaseSelector",
+--~ [ 3] = "smallCapsSelector ",
+--~ [ 4] = "initialCapsSelector",
+--~ [ 5] = "initialCapsAndSmallCapsSelector",
+--~ },
+--~ [ 4] = {
+--~ name = "verticalSubstitutionType",
+--~ [ 0] = "substituteVerticalFormsOnSelector",
+--~ [ 1] = "substituteVerticalFormsOffSelector",
+--~ },
+--~ [ 5] = {
+--~ name = "linguisticRearrangementType",
+--~ [ 0] = "linguisticRearrangementOnSelector",
+--~ [ 1] = "linguisticRearrangementOffSelector",
+--~ },
+--~ [ 6] = {
+--~ name = "numberSpacingType",
+--~ [ 0] = "monospacedNumbersSelector",
+--~ [ 1] = "proportionalNumbersSelector",
+--~ },
+--~ [ 7] = {
+--~ name = "appleReserved1Type",
+--~ },
+--~ [ 8] = {
+--~ name = "smartSwashType",
+--~ [ 0] = "wordInitialSwashesOnSelector",
+--~ [ 1] = "wordInitialSwashesOffSelector",
+--~ [ 2] = "wordFinalSwashesOnSelector",
+--~ [ 3] = "wordFinalSwashesOffSelector",
+--~ [ 4] = "lineInitialSwashesOnSelector",
+--~ [ 5] = "lineInitialSwashesOffSelector",
+--~ [ 6] = "lineFinalSwashesOnSelector",
+--~ [ 7] = "lineFinalSwashesOffSelector",
+--~ [ 8] = "nonFinalSwashesOnSelector",
+--~ [ 9] = "nonFinalSwashesOffSelector",
+--~ },
+--~ [ 9] = {
+--~ name = "diacriticsType",
+--~ [ 0] = "showDiacriticsSelector",
+--~ [ 1] = "hideDiacriticsSelector",
+--~ [ 2] = "decomposeDiacriticsSelector",
+--~ },
+--~ [10] = {
+--~ name = "verticalPositionType",
+--~ [ 0] = "normalPositionSelector",
+--~ [ 1] = "superiorsSelector ",
+--~ [ 2] = "inferiorsSelector ",
+--~ [ 3] = "ordinalsSelector ",
+--~ },
+--~ [11] = {
+--~ name = "fractionsType",
+--~ [ 0] = "noFractionsSelector",
+--~ [ 1] = "verticalFractionsSelector",
+--~ [ 2] = "diagonalFractionsSelector",
+--~ },
+--~ [12] = {
+--~ name = "appleReserved2Type",
+--~ },
+--~ [13] = {
+--~ name = "overlappingCharactersType",
+--~ [ 0] = "preventOverlapOnSelector",
+--~ [ 1] = "preventOverlapOffSelector",
+--~ },
+--~ [14] = {
+--~ name = "typographicExtrasType",
+--~ [0 ] = "hyphensToEmDashOnSelector",
+--~ [1 ] = "hyphensToEmDashOffSelector",
+--~ [2 ] = "hyphenToEnDashOnSelector",
+--~ [3 ] = "hyphenToEnDashOffSelector",
+--~ [4 ] = "unslashedZeroOnSelector",
+--~ [5 ] = "unslashedZeroOffSelector",
+--~ [6 ] = "formInterrobangOnSelector",
+--~ [7 ] = "formInterrobangOffSelector",
+--~ [8 ] = "smartQuotesOnSelector",
+--~ [9 ] = "smartQuotesOffSelector",
+--~ [10] = "periodsToEllipsisOnSelector",
+--~ [11] = "periodsToEllipsisOffSelector",
+--~ },
+--~ [15] = {
+--~ name = "mathematicalExtrasType",
+--~ [ 0] = "hyphenToMinusOnSelector",
+--~ [ 1] = "hyphenToMinusOffSelector",
+--~ [ 2] = "asteriskToMultiplyOnSelector",
+--~ [ 3] = "asteriskToMultiplyOffSelector",
+--~ [ 4] = "slashToDivideOnSelector",
+--~ [ 5] = "slashToDivideOffSelector",
+--~ [ 6] = "inequalityLigaturesOnSelector",
+--~ [ 7] = "inequalityLigaturesOffSelector",
+--~ [ 8] = "exponentsOnSelector",
+--~ [ 9] = "exponentsOffSelector",
+--~ },
+--~ [16] = {
+--~ name = "ornamentSetsType",
+--~ [ 0] = "noOrnamentsSelector",
+--~ [ 1] = "dingbatsSelector ",
+--~ [ 2] = "piCharactersSelector",
+--~ [ 3] = "fleuronsSelector ",
+--~ [ 4] = "decorativeBordersSelector",
+--~ [ 5] = "internationalSymbolsSelector",
+--~ [ 6] = "mathSymbolsSelector",
+--~ },
+--~ [17] = {
+--~ name = "characterAlternativesType",
+--~ [ 0] = "noAlternatesSelector",
+--~ },
+--~ [18] = {
+--~ name = "designComplexityType",
+--~ [ 0] = "designLevel1Selector",
+--~ [ 1] = "designLevel2Selector",
+--~ [ 2] = "designLevel3Selector",
+--~ [ 3] = "designLevel4Selector",
+--~ [ 4] = "designLevel5Selector",
+--~ },
+--~ [19] = {
+--~ name = "styleOptionsType",
+--~ [ 0] = "noStyleOptionsSelector",
+--~ [ 1] = "displayTextSelector",
+--~ [ 2] = "engravedTextSelector",
+--~ [ 3] = "illuminatedCapsSelector",
+--~ [ 4] = "titlingCapsSelector",
+--~ [ 5] = "tallCapsSelector ",
+--~ },
+--~ [20] = {
+--~ name = "characterShapeType",
+--~ [0 ] = "traditionalCharactersSelector",
+--~ [1 ] = "simplifiedCharactersSelector",
+--~ [2 ] = "jis1978CharactersSelector",
+--~ [3 ] = "jis1983CharactersSelector",
+--~ [4 ] = "jis1990CharactersSelector",
+--~ [5 ] = "traditionalAltOneSelector",
+--~ [6 ] = "traditionalAltTwoSelector",
+--~ [7 ] = "traditionalAltThreeSelector",
+--~ [8 ] = "traditionalAltFourSelector",
+--~ [9 ] = "traditionalAltFiveSelector",
+--~ [10] = "expertCharactersSelector",
+--~ },
+--~ [21] = {
+--~ name = "numberCaseType",
+--~ [ 0] = "lowerCaseNumbersSelector",
+--~ [ 1] = "upperCaseNumbersSelector",
+--~ },
+--~ [22] = {
+--~ name = "textSpacingType",
+--~ [ 0] = "proportionalTextSelector",
+--~ [ 1] = "monospacedTextSelector",
+--~ [ 2] = "halfWidthTextSelector",
+--~ [ 3] = "normallySpacedTextSelector",
+--~ },
+--~ [23] = {
+--~ name = "transliterationType",
+--~ [ 0] = "noTransliterationSelector",
+--~ [ 1] = "hanjaToHangulSelector",
+--~ [ 2] = "hiraganaToKatakanaSelector",
+--~ [ 3] = "katakanaToHiraganaSelector",
+--~ [ 4] = "kanaToRomanizationSelector",
+--~ [ 5] = "romanizationToHiraganaSelector",
+--~ [ 6] = "romanizationToKatakanaSelector",
+--~ [ 7] = "hanjaToHangulAltOneSelector",
+--~ [ 8] = "hanjaToHangulAltTwoSelector",
+--~ [ 9] = "hanjaToHangulAltThreeSelector",
+--~ },
+--~ [24] = {
+--~ name = "annotationType",
+--~ [ 0] = "noAnnotationSelector",
+--~ [ 1] = "boxAnnotationSelector",
+--~ [ 2] = "roundedBoxAnnotationSelector",
+--~ [ 3] = "circleAnnotationSelector",
+--~ [ 4] = "invertedCircleAnnotationSelector",
+--~ [ 5] = "parenthesisAnnotationSelector",
+--~ [ 6] = "periodAnnotationSelector",
+--~ [ 7] = "romanNumeralAnnotationSelector",
+--~ [ 8] = "diamondAnnotationSelector",
+--~ },
+--~ [25] = {
+--~ name = "kanaSpacingType",
+--~ [ 0] = "fullWidthKanaSelector",
+--~ [ 1] = "proportionalKanaSelector",
+--~ },
+--~ [26] = {
+--~ name = "ideographicSpacingType",
+--~ [ 0] = "fullWidthIdeographsSelector",
+--~ [ 1] = "proportionalIdeographsSelector",
+--~ },
+--~ [103] = {
+--~ name = "cjkRomanSpacingType",
+--~ [ 0] = "halfWidthCJKRomanSelector",
+--~ [ 1] = "proportionalCJKRomanSelector",
+--~ [ 2] = "defaultCJKRomanSelector",
+--~ [ 3] = "fullWidthCJKRomanSelector",
+--~ },
+--~ }
+
+end -- closure
+
+do -- begin closure to overcome local limits and interference
+
+if not modules then modules = { } end modules ['font-otf'] = {
+ version = 1.001,
+ comment = "companion to font-ini.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local utf = unicode.utf8
+
+local concat, getn, utfbyte = table.concat, table.getn, utf.byte
+local format, gmatch, gsub, find, match, lower, strip = string.format, string.gmatch, string.gsub, string.find, string.match, string.lower, string.strip
+local type, next, tonumber, tostring = type, next, tonumber, tostring
+
+local trace_private = false trackers.register("otf.private", function(v) trace_private = v end)
+local trace_loading = false trackers.register("otf.loading", function(v) trace_loading = v end)
+local trace_features = false trackers.register("otf.features", function(v) trace_features = v end)
+local trace_dynamics = false trackers.register("otf.dynamics", function(v) trace_dynamics = v end)
+local trace_sequences = false trackers.register("otf.sequences", function(v) trace_sequences = v end)
+local trace_math = false trackers.register("otf.math", function(v) trace_math = v end)
+local trace_unimapping = false trackers.register("otf.unimapping", function(v) trace_unimapping = v end)
+
+--~ trackers.enable("otf.loading")
+
+local zwnj = 0x200C
+local zwj = 0x200D
+
+--[[ldx--
+<p>The fontforge table has organized lookups in a certain way. A first implementation
+of this code was organized featurewise: information related to features was
+collected and processing boiled down to a run over the features. The current
+implementation honors the order in the main feature table. Since we can reorder this
+table as we want, we can eventually support several models of processing. We kept
+the static as well as dynamic feature processing, because it had proved to be
+rather useful. The formerly three loop variants have beem discarded but will
+reapear at some time.</p>
+
+<itemize>
+<item>we loop over all lookups</item>
+<item>for each lookup we do a run over the list of glyphs</item>
+<item>but we only process them for features that are enabled</item>
+<item>if we're dealing with a contextual lookup, we loop over all contexts</item>
+<item>in that loop we quit at a match and then process the list of sublookups</item>
+<item>we always continue after the match</item>
+</itemize>
+
+<p>In <l n='context'/> we do this for each font that is used in a list, so in
+practice we have quite some nested loops.</p>
+
+<p>We process the whole list and then consult the glyph nodes. An alternative approach
+is to collect strings of characters using the same font including spaces (because some
+lookups involve spaces). However, we then need to reconstruct the list which is no fun.
+Also, we need to carry quite some information, like attributes, so eventually we don't
+gain much (if we gain something at all).</p>
+
+<p>Another consideration has been to operate on sublists (subhead, subtail) but again
+this would complicate matters as we then neext to keep track of a changing subhead
+and subtail. On the other hand, this might save some runtime. The number of changes
+involved is not that large. This only makes sense when we have many fonts in a list
+and don't change to frequently.</p>
+--ldx]]--
+
+fonts = fonts or { }
+fonts.otf = fonts.otf or { }
+fonts.tfm = fonts.tfm or { }
+
+local otf = fonts.otf
+local tfm = fonts.tfm
+
+local fontdata = fonts.ids
+
+otf.tables = otf.tables or { } -- defined in font-ott.lua
+otf.meanings = otf.meanings or { } -- defined in font-ott.lua
+otf.tables.features = otf.tables.features or { } -- defined in font-ott.lua
+otf.tables.languages = otf.tables.languages or { } -- defined in font-ott.lua
+otf.tables.scripts = otf.tables.scripts or { } -- defined in font-ott.lua
+
+otf.features = otf.features or { }
+otf.features.list = otf.features.list or { }
+otf.features.default = otf.features.default or { }
+
+otf.enhancers = otf.enhancers or { }
+otf.glists = { "gsub", "gpos" }
+
+otf.version = 2.628 -- beware: also sync font-mis.lua
+otf.pack = true -- beware: also sync font-mis.lua
+otf.syncspace = true
+otf.notdef = false
+otf.cache = containers.define("fonts", "otf", otf.version, true)
+otf.cleanup_aat = false -- only context
+
+--[[ldx--
+<p>We start with a lot of tables and related functions.</p>
+--ldx]]--
+
+otf.tables.global_fields = table.tohash {
+ "lookups",
+ "glyphs",
+ "subfonts",
+ "luatex",
+ "pfminfo",
+ "cidinfo",
+ "tables",
+ "names",
+ "unicodes",
+ "names",
+ "anchor_classes",
+ "kern_classes",
+ "gpos",
+ "gsub"
+}
+
+otf.tables.valid_fields = {
+ "anchor_classes",
+ "ascent",
+ "cache_version",
+ "cidinfo",
+ "copyright",
+ "creationtime",
+ "descent",
+ "design_range_bottom",
+ "design_range_top",
+ "design_size",
+ "encodingchanged",
+ "extrema_bound",
+ "familyname",
+ "fontname",
+ "fontstyle_id",
+ "fontstyle_name",
+ "fullname",
+ "glyphs",
+ "hasvmetrics",
+ "head_optimized_for_cleartype",
+ "horiz_base",
+ "issans",
+ "isserif",
+ "italicangle",
+ "kerns",
+ "lookups",
+ -- "luatex",
+ "macstyle",
+ "modificationtime",
+ "onlybitmaps",
+ "origname",
+ "os2_version",
+ "pfminfo",
+ "private",
+ "serifcheck",
+ "sfd_version",
+ -- "size",
+ "strokedfont",
+ "strokewidth",
+ "subfonts",
+ "table_version",
+ -- "tables",
+ -- "ttf_tab_saved",
+ "ttf_tables",
+ "uni_interp",
+ "uniqueid",
+ "units_per_em",
+ "upos",
+ "use_typo_metrics",
+ "uwidth",
+ "validation_state",
+ "verbose",
+ "version",
+ "vert_base",
+ "weight",
+ "weight_width_slope_only",
+ "xuid",
+}
+
+--[[ldx--
+<p>Here we go.</p>
+--ldx]]--
+
+local function load_featurefile(ff,featurefile)
+ if featurefile then
+ featurefile = resolvers.find_file(file.addsuffix(featurefile,'fea')) -- "FONTFEATURES"
+ if featurefile and featurefile ~= "" then
+ if trace_loading then
+ logs.report("load otf", "featurefile: %s", featurefile)
+ end
+ fontloader.apply_featurefile(ff, featurefile)
+ end
+ end
+end
+
+function otf.enhance(name,data,filename,verbose)
+ local enhancer = otf.enhancers[name]
+ if enhancer then
+ if (verbose ~= nil and verbose) or trace_loading then
+ logs.report("load otf","enhance: %s",name)
+ end
+ enhancer(data,filename)
+ end
+end
+
+local enhancers = {
+ -- pack and unpack are handled separately; they might even be moved
+ -- away from the enhancers namespace
+ "patch bugs",
+ "merge cid fonts", "prepare unicode", "cleanup ttf tables", "compact glyphs", "reverse coverage",
+ "cleanup aat", "enrich with features", "add some missing characters",
+ "reorganize kerns", -- moved here
+ "flatten glyph lookups", "flatten anchor tables", "flatten feature tables",
+ "prepare luatex tables",
+ "analyse features", "rehash features",
+ "analyse anchors", "analyse marks", "analyse unicodes", "analyse subtables",
+ "check italic correction","check math",
+ "share widths",
+ "strip not needed data",
+ "migrate metadata",
+}
+
+function otf.load(filename,format,sub,featurefile)
+ local name = file.basename(file.removesuffix(filename))
+ if featurefile then
+ name = name .. "@" .. file.removesuffix(file.basename(featurefile))
+ end
+ if sub == "" then sub = false end
+ local hash = name
+ if sub then
+ hash = hash .. "-" .. sub
+ end
+ hash = containers.cleanname(hash)
+ local data = containers.read(otf.cache(), hash)
+ local size = lfs.attributes(filename,"size") or 0
+ if not data or data.verbose ~= fonts.verbose or data.size ~= size then
+ logs.report("load otf","loading: %s",filename)
+ local ff, messages
+ if sub then
+ ff, messages = fontloader.open(filename,sub)
+ else
+ ff, messages = fontloader.open(filename)
+ end
+ if trace_loading and messages and #messages > 0 then
+ for m=1,#messages do
+ logs.report("load otf","warning: %s",messages[m])
+ end
+ end
+ if ff then
+ load_featurefile(ff,featurefile)
+ data = fontloader.to_table(ff)
+ fontloader.close(ff)
+ if data then
+ logs.report("load otf","file size: %s", size)
+ logs.report("load otf","enhancing ...")
+ for e=1,#enhancers do
+ otf.enhance(enhancers[e],data,filename)
+ end
+ if otf.pack and not fonts.verbose then
+ otf.enhance("pack",data,filename)
+ end
+ data.size = size
+ data.verbose = fonts.verbose
+ logs.report("load otf","saving in cache: %s",filename)
+ data = containers.write(otf.cache(), hash, data)
+ collectgarbage("collect")
+ data = containers.read(otf.cache(), hash) -- this frees the old table and load the sparse one
+ collectgarbage("collect")
+ else
+ logs.report("load otf","loading failed (table conversion error)")
+ end
+ else
+ logs.report("load otf","loading failed (file read error)")
+ end
+ end
+ if data then
+ otf.enhance("unpack",data,filename,false) -- no message here
+ otf.add_dimensions(data)
+ if trace_sequences then
+ otf.show_feature_order(data,filename)
+ end
+ end
+ return data
+end
+
+function otf.add_dimensions(data)
+ -- todo: forget about the width if it's the defaultwidth (saves mem)
+ -- we could also build the marks hash here (instead of storing it)
+ if data then
+ local force = otf.notdef
+ local luatex = data.luatex
+ local defaultwidth = luatex.defaultwidth or 0
+ local defaultheight = luatex.defaultheight or 0
+ local defaultdepth = luatex.defaultdepth or 0
+ for _, d in next, data.glyphs do
+ local bb, wd = d.boundingbox, d.width
+ if not wd then
+ d.width = defaultwidth
+ elseif wd ~= 0 and d.class == "mark" then
+ d.width = -wd
+ end
+ if force and not d.name then
+ d.name = ".notdef"
+ end
+ if bb then
+ local ht, dp = bb[4], -bb[2]
+ if ht == 0 or ht < 0 then
+ -- no need to set it and no negative heights, nil == 0
+ else
+ d.height = ht
+ end
+ if dp == 0 or dp < 0 then
+ -- no negative depths and no negative depths, nil == 0
+ else
+ d.depth = dp
+ end
+ end
+ end
+ end
+end
+
+function otf.show_feature_order(otfdata,filename)
+ local sequences = otfdata.luatex.sequences
+ if sequences and #sequences > 0 then
+ if trace_loading then
+ logs.report("otf check","font %s has %s sequences",filename,#sequences)
+ logs.report("otf check"," ")
+ end
+ for nos=1,#sequences do
+ local sequence = sequences[nos]
+ local typ = sequence.type or "no-type"
+ local name = sequence.name or "no-name"
+ local subtables = sequence.subtables or { "no-subtables" }
+ local features = sequence.features
+ if trace_loading then
+ logs.report("otf check","%3i %-15s %-20s [%s]",nos,name,typ,concat(subtables,","))
+ end
+ if features then
+ for feature, scripts in next, features do
+ local tt = { }
+ for script, languages in next, scripts do
+ local ttt = { }
+ for language, _ in next, languages do
+ ttt[#ttt+1] = language
+ end
+ tt[#tt+1] = format("[%s: %s]",script,concat(ttt," "))
+ end
+ if trace_loading then
+ logs.report("otf check"," %s: %s",feature,concat(tt," "))
+ end
+ end
+ end
+ end
+ if trace_loading then
+ logs.report("otf check","\n")
+ end
+ elseif trace_loading then
+ logs.report("otf check","font %s has no sequences",filename)
+ end
+end
+
+-- todo: normalize, design_size => designsize
+
+otf.enhancers["prepare luatex tables"] = function(data,filename)
+ data.luatex = data.luatex or { }
+ local luatex = data.luatex
+ luatex.filename = filename
+ luatex.version = otf.version
+ luatex.creator = "context mkiv"
+end
+
+otf.enhancers["cleanup aat"] = function(data,filename)
+ if otf.cleanup_aat then
+ end
+end
+
+local function analyze_features(g, features)
+ if g then
+ local t, done = { }, { }
+ for k=1,#g do
+ local f = features or g[k].features
+ if f then
+ for k=1,#f do
+ -- scripts and tag
+ local tag = f[k].tag
+ if not done[tag] then
+ t[#t+1] = tag
+ done[tag] = true
+ end
+ end
+ end
+ end
+ if #t > 0 then
+ return t
+ end
+ end
+ return nil
+end
+
+otf.enhancers["analyse features"] = function(data,filename)
+ -- local luatex = data.luatex
+ -- luatex.gposfeatures = analyze_features(data.gpos)
+ -- luatex.gsubfeatures = analyze_features(data.gsub)
+end
+
+otf.enhancers["rehash features"] = function(data,filename)
+ local features = { }
+ data.luatex.features = features
+ for k, what in next, otf.glists do
+ local dw = data[what]
+ if dw then
+ local f = { }
+ features[what] = f
+ for i=1,#dw do
+ local d= dw[i]
+ local dfeatures = d.features
+ if dfeatures then
+ for i=1,#dfeatures do
+ local df = dfeatures[i]
+ local tag = strip(lower(df.tag))
+ local ft = f[tag] if not ft then ft = {} f[tag] = ft end
+ local dscripts = df.scripts
+ for script, languages in next, dscripts do
+ script = strip(lower(script))
+ local fts = ft[script] if not fts then fts = {} ft[script] = fts end
+ for i=1,#languages do
+ fts[strip(lower(languages[i]))] = true
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+end
+
+otf.enhancers["analyse anchors"] = function(data,filename)
+ local classes = data.anchor_classes
+ local luatex = data.luatex
+ local anchor_to_lookup, lookup_to_anchor = { }, { }
+ luatex.anchor_to_lookup, luatex.lookup_to_anchor = anchor_to_lookup, lookup_to_anchor
+ if classes then
+ for c=1,#classes do
+ local class = classes[c]
+ local anchor = class.name
+ local lookups = class.lookup
+ if type(lookups) ~= "table" then
+ lookups = { lookups }
+ end
+ local a = anchor_to_lookup[anchor]
+ if not a then a = { } anchor_to_lookup[anchor] = a end
+ for l=1,#lookups do
+ local lookup = lookups[l]
+ local l = lookup_to_anchor[lookup]
+ if not l then l = { } lookup_to_anchor[lookup] = l end
+ l[anchor] = true
+ a[lookup] = true
+ end
+ end
+ end
+end
+
+otf.enhancers["analyse marks"] = function(data,filename)
+ local glyphs = data.glyphs
+ local marks = { }
+ data.luatex.marks = marks
+ for unicode, index in next, data.luatex.indices do
+ local glyph = glyphs[index]
+ if glyph.class == "mark" then
+ marks[unicode] = true
+ end
+ end
+end
+
+local separator = lpeg.S("_.")
+local other = lpeg.C((1 - separator)^1)
+local ligsplitter = lpeg.Ct(other * (separator * other)^0)
+
+--~ print(table.serialize(ligsplitter:match("this")))
+--~ print(table.serialize(ligsplitter:match("this.that")))
+--~ print(table.serialize(ligsplitter:match("japan1.123")))
+--~ print(table.serialize(ligsplitter:match("such_so_more")))
+--~ print(table.serialize(ligsplitter:match("such_so_more.that")))
+
+otf.enhancers["analyse unicodes"] = function(data,filename)
+ local tounicode16, tounicode16sequence = fonts.map.tounicode16, fonts.map.tounicode16sequence
+ local unicodes = data.luatex.unicodes
+ -- we need to move this code
+ unicodes['space'] = unicodes['space'] or 32 -- handly later on
+ unicodes['hyphen'] = unicodes['hyphen'] or 45 -- handly later on
+ unicodes['zwj'] = unicodes['zwj'] or zwj -- handly later on
+ unicodes['zwnj'] = unicodes['zwnj'] or zwnj -- handly later on
+ -- the tounicode mapping is sparse and only needed for alternatives
+ local tounicode, originals, ns, nl, private, unknown = { }, { }, 0, 0, fonts.private, format("%04X",utfbyte("?"))
+ data.luatex.tounicode, data.luatex.originals = tounicode, originals
+ local lumunic, uparser, oparser
+ if false then -- will become an option
+ lumunic = fonts.map.load_lum_table(filename)
+ lumunic = lumunic and lumunic.tounicode
+ end
+ local cidinfo, cidnames, cidcodes = data.cidinfo
+ local usedmap = cidinfo and cidinfo.usedname
+ usedmap = usedmap and fonts.cid.map[usedmap]
+ if usedmap then
+ oparser = usedmap and fonts.map.make_name_parser(cidinfo.ordering)
+ cidnames = usedmap.names
+ cidcodes = usedmap.unicodes
+ end
+ uparser = fonts.map.make_name_parser()
+ for index, glyph in next, data.glyphs do
+ local name, unic = glyph.name, glyph.unicode or -1 -- play safe
+ if unic == -1 or unic >= private or (unic >= 0xE000 and unic <= 0xF8FF) or unic == 0xFFFE or unic == 0xFFFF then
+ local unicode = lumunic and lumunic[name]
+ if unicode then
+ originals[index], tounicode[index], ns = unicode, tounicode16(unicode), ns + 1
+ end
+ -- cidmap heuristics, beware, there is no guarantee for a match unless
+ -- the chain resolves
+ if not unicode and usedmap then
+ local foundindex = oparser:match(name)
+ if foundindex then
+ unicode = cidcodes[foundindex] -- name to number
+ if not unicode then
+ local reference = cidnames[foundindex] -- number to name
+ if reference then
+ local foundindex = oparser:match(reference)
+ if foundindex then
+ unicode = cidcodes[foundindex]
+ if unicode then
+ originals[index], tounicode[index], ns = unicode, tounicode16(unicode), ns + 1
+ end
+ end
+ if not unicode then
+ local foundcodes, multiple = uparser:match(reference)
+ if foundcodes then
+ if multiple then
+ originals[index], tounicode[index], nl, unicode = foundcodes, tounicode16sequence(foundcodes), nl + 1, true
+ else
+ originals[index], tounicode[index], ns, unicode = foundcodes, tounicode16(foundcodes), ns + 1, foundcodes
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ -- a.whatever or a_b_c.whatever or a_b_c (no numbers)
+ if not unicode then
+ local split = ligsplitter:match(name)
+ local nplit = (split and #split) or 0
+ if nplit == 0 then
+ -- skip
+ elseif nplit == 1 then
+ unicode = unicodes[split[1]]
+ if unicode then
+ if type(unicode) == "table" then
+ unicode = unicode[1]
+ end
+ originals[index], tounicode[index], ns = unicode, tounicode16(unicode), ns + 1
+ end
+ else
+ local done = true
+ for l=1,nplit do
+ local u = unicodes[split[l]]
+ if not u then
+ done = false
+ break
+ elseif type(u) == "table" then
+ split[l] = u[1]
+ else
+ split[l] = u
+ end
+ end
+ if done then
+ originals[index], tounicode[index], nl, unicode = split, tounicode16sequence(split), nl + 1, true
+ end
+ end
+ end
+ -- last resort
+ if not unicode then
+ local foundcodes, multiple = uparser:match(name)
+ if foundcodes then
+ if multiple then
+ originals[index], tounicode[index], nl, unicode = foundcodes, tounicode16sequence(foundcodes), nl + 1, true
+ else
+ originals[index], tounicode[index], ns, unicode = foundcodes, tounicode16(foundcodes), ns + 1, foundcodes
+ end
+ end
+ end
+ if not unicode then
+ originals[index], tounicode[index] = 0xFFFD, "FFFD"
+ end
+ end
+ end
+ if trace_unimapping then
+ for index, glyph in table.sortedpairs(data.glyphs) do
+ local toun, name, unic = tounicode[index], glyph.name, glyph.unicode or -1 -- play safe
+ if toun then
+ logs.report("load otf","internal: 0x%05X, name: %s, unicode: 0x%05X, tounicode: %s",index,name,unic,toun)
+ else
+ logs.report("load otf","internal: 0x%05X, name: %s, unicode: 0x%05X",index,name,unic)
+ end
+ end
+ end
+ if trace_loading and (ns > 0 or nl > 0) then
+ logs.report("load otf","enhance: %s tounicode entries added (%s ligatures)",nl+ns, ns)
+ end
+end
+
+otf.enhancers["analyse subtables"] = function(data,filename)
+ data.luatex = data.luatex or { }
+ local luatex = data.luatex
+ local sequences = { }
+ local lookups = { }
+ luatex.sequences = sequences
+ luatex.lookups = lookups
+ for _, g in next, { data.gsub, data.gpos } do
+ for k=1,#g do
+ local gk = g[k]
+ local typ = gk.type
+ if typ == "gsub_contextchain" or typ == "gpos_contextchain" then
+ gk.chain = 1
+ elseif typ == "gsub_reversecontextchain" or typ == "gpos_reversecontextchain" then
+ gk.chain = -1
+ else
+ gk.chain = 0
+ end
+ local features = gk.features
+ if features then
+ sequences[#sequences+1] = gk
+ -- scripts, tag, ismac
+ local t = { }
+ for f=1,#features do
+ local feature = features[f]
+ local hash = { }
+ -- only script and langs matter
+ for s, languages in next, feature.scripts do
+ s = lower(s)
+ local h = hash[s]
+ if not h then h = { } hash[s] = h end
+ for l=1,#languages do
+ h[strip(lower(languages[l]))] = true
+ end
+ end
+ t[feature.tag] = hash
+ end
+ gk.features = t
+ else
+ lookups[gk.name] = gk
+ gk.name = nil
+ end
+ local subtables = gk.subtables
+ if subtables then
+ local t = { }
+ for s=1,#subtables do
+ local subtable = subtables[s]
+ local name = subtable.name
+ t[#t+1] = name
+ end
+ gk.subtables = t
+ end
+ local flags = gk.flags
+ if flags then
+ gk.flags = { -- forcing false packs nicer
+ (flags.ignorecombiningmarks and "mark") or false,
+ (flags.ignoreligatures and "ligature") or false,
+ (flags.ignorebaseglyphs and "base") or false,
+ flags.r2l or false
+ }
+ end
+ end
+ end
+end
+
+otf.enhancers["merge cid fonts"] = function(data,filename)
+ -- we can also move the names to data.luatex.names which might
+ -- save us some more memory (at the cost of harder tracing)
+ if data.subfonts and table.is_empty(data.glyphs) then
+ local cidinfo = data.cidinfo
+ local verbose = fonts.verbose
+ if cidinfo.registry then
+ local cidmap, cidname = fonts.cid.getmap(cidinfo.registry,cidinfo.ordering,cidinfo.supplement)
+ if cidmap then
+ cidinfo.usedname = cidmap.usedname
+ local glyphs, uni_to_int, int_to_uni, nofnames, nofunicodes = { }, { }, { }, 0, 0
+ local unicodes, names = cidmap.unicodes, cidmap.names
+ for n, subfont in next, data.subfonts do
+ for index, g in next, subfont.glyphs do
+ if not next(g) then
+ -- dummy entry
+ else
+ local unicode, name = unicodes[index], names[index]
+ g.cidindex = n
+ g.boundingbox = g.boundingbox -- or zerobox
+ g.name = g.name or name or "unknown"
+ if unicode then
+ uni_to_int[unicode] = index
+ int_to_uni[index] = unicode
+ nofunicodes = nofunicodes + 1
+ g.unicode = unicode
+ elseif name then
+ nofnames = nofnames + 1
+ g.unicode = -1
+ end
+ glyphs[index] = g
+ end
+ end
+ subfont.glyphs = nil
+ end
+ if trace_loading then
+ logs.report("load otf","cid font remapped, %s unicode points, %s symbolic names, %s glyphs",nofunicodes, nofnames, nofunicodes+nofnames)
+ end
+ data.glyphs = glyphs
+ data.map = data.map or { }
+ data.map.map = uni_to_int
+ data.map.backmap = int_to_uni
+ elseif trace_loading then
+ logs.report("load otf","unable to remap cid font, missing cid file for %s",filename)
+ end
+ elseif trace_loading then
+ logs.report("load otf","font %s has no glyphs",filename)
+ end
+ end
+end
+
+otf.enhancers["prepare unicode"] = function(data,filename)
+ local luatex = data.luatex
+ if not luatex then luatex = { } data.luatex = luatex end
+ local indices, unicodes, multiples, internals = { }, { }, { }, { }
+ local glyphs = data.glyphs
+ local mapmap = data.map
+ if not mapmap then
+ logs.report("load otf","no map in %s",filename)
+ mapmap = { }
+ data.map = { map = mapmap }
+ elseif not mapmap.map then
+ logs.report("load otf","no unicode map in %s",filename)
+ mapmap = { }
+ data.map.map = mapmap
+ else
+ mapmap = mapmap.map
+ end
+ local criterium = fonts.private
+ local private = fonts.private
+ for index, glyph in next, glyphs do
+ if index > 0 then
+ local name = glyph.name
+ if name then
+ local unicode = glyph.unicode
+ if unicode == -1 or unicode >= criterium then
+ glyph.unicode = private
+ indices[private] = index
+ unicodes[name] = private
+ internals[index] = true
+ if trace_private then
+ logs.report("load otf","enhance: glyph %s at index U+%04X is moved to private unicode slot U+%04X",name,index,private)
+ end
+ private = private + 1
+ else
+ indices[unicode] = index
+ unicodes[name] = unicode
+ end
+ end
+ end
+ end
+ -- beware: the indeces table is used to initialize the tfm table
+ for unicode, index in next, mapmap do
+ if not internals[index] then
+ local name = glyphs[index].name
+ if name then
+ local un = unicodes[name]
+ if not un then
+ unicodes[name] = unicode -- or 0
+ elseif type(un) == "number" then
+ if un ~= unicode then
+ multiples[#multiples+1] = name
+ unicodes[name] = { un, unicode }
+ indices[unicode] = index
+ end
+ else
+ local ok = false
+ for u=1,#un do
+ if un[u] == unicode then
+ ok = true
+ break
+ end
+ end
+ if not ok then
+ multiples[#multiples+1] = name
+ un[#un+1] = unicode
+ indices[unicode] = index
+ end
+ end
+ end
+ end
+ end
+ if trace_loading then
+ if #multiples > 0 then
+ logs.report("load otf","%s glyph are reused: %s",#multiples, concat(multiples," "))
+ else
+ logs.report("load otf","no glyph are reused")
+ end
+ end
+ luatex.indices = indices
+ luatex.unicodes = unicodes
+ luatex.private = private
+end
+
+otf.enhancers["cleanup ttf tables"] = function(data,filename)
+ local ttf_tables = data.ttf_tables
+ if ttf_tables then
+ for k=1,#ttf_tables do
+ if ttf_tables[k].data then ttf_tables[k].data = "deleted" end
+ end
+ end
+ data.ttf_tab_saved = nil
+end
+
+otf.enhancers["compact glyphs"] = function(data,filename)
+ table.compact(data.glyphs) -- needed?
+ if data.subfonts then
+ for _, subfont in next, data.subfonts do
+ table.compact(subfont.glyphs) -- needed?
+ end
+ end
+end
+
+otf.enhancers["reverse coverage"] = function(data,filename)
+ -- we prefer the before lookups in a normal order
+ if data.lookups then
+ for _, v in next, data.lookups do
+ if v.rules then
+ for _, vv in next, v.rules do
+ local c = vv.coverage
+ if c and c.before then
+ c.before = table.reverse(c.before)
+ end
+ end
+ end
+ end
+ end
+end
+
+otf.enhancers["check italic correction"] = function(data,filename)
+ local glyphs = data.glyphs
+ local ok = false
+ for index, glyph in next, glyphs do
+ local ic = glyph.italic_correction
+ if ic then
+ if ic ~= 0 then
+ glyph.italic = ic
+ end
+ glyph.italic_correction = nil
+ ok = true
+ end
+ end
+ -- we can use this to avoid calculations
+ otf.tables.valid_fields[#otf.tables.valid_fields+1] = "has_italic"
+ data.has_italic = true
+end
+
+otf.enhancers["check math"] = function(data,filename)
+ if data.math then
+ -- we move the math stuff into a math subtable because we then can
+ -- test faster in the tfm copy
+ local glyphs = data.glyphs
+ local unicodes = data.luatex.unicodes
+ for index, glyph in next, glyphs do
+ local mk = glyph.mathkern
+ local hv = glyph.horiz_variants
+ local vv = glyph.vert_variants
+ if mk or hv or vv then
+ local math = { }
+ glyph.math = math
+ if mk then
+ for k, v in next, mk do
+ if not next(v) then
+ mk[k] = nil
+ end
+ end
+ math.kerns = mk
+ glyph.mathkern = nil
+ end
+ if hv then
+ math.horiz_variants = hv.variants
+ local p = hv.parts
+ if p then
+ if #p>0 then
+ for i=1,#p do
+ local pi = p[i]
+ pi.glyph = unicodes[pi.component] or 0
+ end
+ math.horiz_parts = p
+ end
+ end
+ local ic = hv.italic_correction
+ if ic and ic ~= 0 then
+ math.horiz_italic_correction = ic
+ end
+ glyph.horiz_variants = nil
+ end
+ if vv then
+ local uc = unicodes[index]
+ math.vert_variants = vv.variants
+ local p = vv.parts
+ if p then
+ if #p>0 then
+ for i=1,#p do
+ local pi = p[i]
+ pi.glyph = unicodes[pi.component] or 0
+ end
+ math.vert_parts = p
+ end
+ end
+ local ic = vv.italic_correction
+ if ic and ic ~= 0 then
+ math.vert_italic_correction = ic
+ end
+ glyph.vert_variants = nil
+ end
+ local ic = glyph.italic_correction
+ if ic then
+ if ic ~= 0 then
+ math.italic_correction = ic
+ end
+ glyph.italic_correction = nil
+ end
+ end
+ end
+ end
+end
+
+otf.enhancers["share widths"] = function(data,filename)
+ local glyphs = data.glyphs
+ local widths = { }
+ for index, glyph in next, glyphs do
+ local width = glyph.width
+ widths[width] = (widths[width] or 0) + 1
+ end
+ -- share width for cjk fonts
+ local wd, most = 0, 1
+ for k,v in next, widths do
+ if v > most then
+ wd, most = k, v
+ end
+ end
+ if most > 1000 then
+ if trace_loading then
+ logs.report("load otf", "most common width: %s (%s times), sharing (cjk font)",wd,most)
+ end
+ for k, v in next, glyphs do
+ if v.width == wd then
+ v.width = nil
+ end
+ end
+ data.luatex.defaultwidth = wd
+ end
+end
+
+-- kern: ttf has a table with kerns
+
+otf.enhancers["reorganize kerns"] = function(data,filename)
+ local glyphs, mapmap, unicodes = data.glyphs, data.luatex.indices, data.luatex.unicodes
+ local mkdone = false
+ for index, glyph in next, data.glyphs do
+ if glyph.kerns then
+ local mykerns = { }
+ for k,v in next, glyph.kerns do
+ local vc, vo, vl = v.char, v.off, v.lookup
+ if vc and vo and vl then -- brrr, wrong! we miss the non unicode ones
+ local uvc = unicodes[vc]
+ if not uvc then
+ if trace_loading then
+ logs.report("load otf","problems with unicode %s of kern %s at glyph %s",vc,k,index)
+ end
+ else
+ if type(vl) ~= "table" then
+ vl = { vl }
+ end
+ for l=1,#vl do
+ local vll = vl[l]
+ local mkl = mykerns[vll]
+ if not mkl then
+ mkl = { }
+ mykerns[vll] = mkl
+ end
+ if type(uvc) == "table" then
+ for u=1,#uvc do
+ mkl[uvc[u]] = vo
+ end
+ else
+ mkl[uvc] = vo
+ end
+ end
+ end
+ end
+ end
+ glyph.mykerns = mykerns
+ glyph.kerns = nil -- saves space and time
+ mkdone = true
+ end
+ end
+ if trace_loading and mkdone then
+ logs.report("load otf", "replacing 'kerns' tables by 'mykerns' tables")
+ end
+ if data.kerns then
+ if trace_loading then
+ logs.report("load otf", "removing global 'kern' table")
+ end
+ data.kerns = nil
+ end
+ local dgpos = data.gpos
+ if dgpos then
+ for gp=1,#dgpos do
+ local gpos = dgpos[gp]
+ local subtables = gpos.subtables
+ if subtables then
+ for s=1,#subtables do
+ local subtable = subtables[s]
+ local kernclass = subtable.kernclass -- name is inconsistent with anchor_classes
+ if kernclass then
+ for k=1,#kernclass do
+ local kcl = kernclass[k]
+ local firsts, seconds, offsets, lookups = kcl.firsts, kcl.seconds, kcl.offsets, kcl.lookup -- singular
+ if type(lookups) ~= "table" then
+ lookups = { lookups }
+ end
+ for l=1,#lookups do
+ local lookup = lookups[l]
+ local maxfirsts, maxseconds = getn(firsts), getn(seconds)
+ if trace_loading then
+ logs.report("load otf", "adding kernclass %s with %s times %s pairs",lookup, maxfirsts, maxseconds)
+ end
+ for fk, fv in next, firsts do
+ for first in gmatch(fv,"[^ ]+") do
+ local first_unicode = unicodes[first]
+ if type(first_unicode) == "number" then
+ first_unicode = { first_unicode }
+ end
+ for f=1,#first_unicode do
+ local glyph = glyphs[mapmap[first_unicode[f]]]
+ if glyph then
+ local mykerns = glyph.mykerns
+ if not mykerns then
+ mykerns = { } -- unicode indexed !
+ glyph.mykerns = mykerns
+ end
+ local lookupkerns = mykerns[lookup]
+ if not lookupkerns then
+ lookupkerns = { }
+ mykerns[lookup] = lookupkerns
+ end
+ for sk, sv in next, seconds do
+ local offset = offsets[(fk-1) * maxseconds + sk]
+ --~ local offset = offsets[sk] -- (fk-1) * maxseconds + sk]
+ for second in gmatch(sv,"[^ ]+") do
+ local second_unicode = unicodes[second]
+ if type(second_unicode) == "number" then
+ lookupkerns[second_unicode] = offset
+ else
+ for s=1,#second_unicode do
+ lookupkerns[second_unicode[s]] = offset
+ end
+ end
+ end
+ end
+ elseif trace_loading then
+ logs.report("load otf", "no glyph data for U+%04X", first_unicode[f])
+ end
+ end
+ end
+ end
+ end
+ end
+ subtable.comment = "The kernclass table is merged into mykerns in the indexed glyph tables."
+ subtable.kernclass = { }
+ end
+ end
+ end
+ end
+ end
+end
+
+otf.enhancers["strip not needed data"] = function(data,filename)
+ local verbose = fonts.verbose
+ local int_to_uni = data.luatex.unicodes
+ for k, v in next, data.glyphs do
+ local d = v.dependents
+ if d then v.dependents = nil end
+ local a = v.altuni
+ if a then v.altuni = nil end
+ if verbose then
+ local code = int_to_uni[k]
+ -- looks like this is done twice ... bug?
+ if code then
+ local vu = v.unicode
+ if not vu then
+ v.unicode = code
+ elseif type(vu) == "table" then
+ if vu[#vu] == code then
+ -- weird
+ else
+ vu[#vu+1] = code
+ end
+ elseif vu ~= code then
+ v.unicode = { vu, code }
+ end
+ end
+ else
+ v.unicode = nil
+ v.index = nil
+ end
+ end
+ data.luatex.comment = "Glyph tables have their original index. When present, mykern tables are indexed by unicode."
+ data.map = nil
+ data.names = nil -- funny names for editors
+ data.glyphcnt = nil
+ data.glyphmax = nil
+ if true then
+ data.gpos = nil
+ data.gsub = nil
+ data.anchor_classes = nil
+ end
+end
+
+otf.enhancers["migrate metadata"] = function(data,filename)
+ local global_fields = otf.tables.global_fields
+ local metadata = { }
+ for k,v in next, data do
+ if not global_fields[k] then
+ metadata[k] = v
+ data[k] = nil
+ end
+ end
+ data.metadata = metadata
+ -- goodies
+ local pfminfo = data.pfminfo
+ metadata.isfixedpitch = metadata.isfixedpitch or (pfminfo.panose and pfminfo.panose["proportion"] == "Monospaced")
+ metadata.charwidth = pfminfo and pfminfo.avgwidth
+end
+
+otf.enhancers["flatten glyph lookups"] = function(data,filename)
+ for k, v in next, data.glyphs do
+ if v.lookups then
+ for kk, vv in next, v.lookups do
+ for kkk=1,#vv do
+ local vvv = vv[kkk]
+ local s = vvv.specification
+ if s then
+ local t = vvv.type
+ if t == "ligature" then
+ vv[kkk] = { "ligature", s.components, s.char }
+ elseif t == "alternate" then
+ vv[kkk] = { "alternate", s.components }
+ elseif t == "substitution" then
+ vv[kkk] = { "substitution", s.variant }
+ elseif t == "multiple" then
+ vv[kkk] = { "multiple", s.components }
+ elseif t == "position" then
+ vv[kkk] = { "position", { s.x or 0, s.y or 0, s.h or 0, s.v or 0 } }
+ elseif t == "pair" then
+ local one, two, paired = s.offsets[1], s.offsets[2], s.paired or ""
+ if one then
+ if two then
+ vv[kkk] = { "pair", paired, { one.x or 0, one.y or 0, one.h or 0, one.v or 0 }, { two.x or 0, two.y or 0, two.h or 0, two.v or 0 } }
+ else
+ vv[kkk] = { "pair", paired, { one.x or 0, one.y or 0, one.h or 0, one.v or 0 } }
+ end
+ else
+ if two then
+ vv[kkk] = { "pair", paired, { }, { two.x or 0, two.y or 0, two.h or 0, two.v or 0} } -- maybe nil instead of { }
+ else
+ vv[kkk] = { "pair", paired }
+ end
+ end
+ else
+ if trace_loading then
+ logs.report("load otf", "flattening needed, report to context list")
+ end
+ for a, b in next, s do
+ if trace_loading and vvv[a] then
+ logs.report("load otf", "flattening conflict, report to context list")
+ end
+ vvv[a] = b
+ end
+ vvv.specification = nil
+ end
+ end
+ end
+ end
+ end
+ end
+end
+
+otf.enhancers["flatten anchor tables"] = function(data,filename)
+ for k, v in next, data.glyphs do
+ if v.anchors then
+ for kk, vv in next, v.anchors do
+ for kkk, vvv in next, vv do
+ if vvv.x or vvv.y then
+ vv[kkk] = { vvv.x or 0, vvv.y or 0 }
+ else
+ for kkkk=1,#vvv do
+ local vvvv = vvv[kkkk]
+ vvv[kkkk] = { vvvv.x or 0, vvvv.y or 0 }
+ end
+ end
+ end
+ end
+ end
+ end
+end
+
+otf.enhancers["flatten feature tables"] = function(data,filename)
+ -- is this needed? do we still use them at all?
+ for _, tag in next, otf.glists do
+ if data[tag] then
+ if trace_loading then
+ logs.report("load otf", "flattening %s table", tag)
+ end
+ for k, v in next, data[tag] do
+ local features = v.features
+ if features then
+ for kk=1,#features do
+ local vv = features[kk]
+ local t = { }
+ local scripts = vv.scripts
+ for kkk=1,#scripts do
+ local vvv = scripts[kkk]
+ t[vvv.script] = vvv.langs
+ end
+ vv.scripts = t
+ end
+ end
+ end
+ end
+ end
+end
+
+otf.enhancers.patches = otf.enhancers.patches or { }
+
+otf.enhancers["patch bugs"] = function(data,filename)
+ local basename = file.basename(lower(filename))
+ for pattern, action in next, otf.enhancers.patches do
+ if find(basename,pattern) then
+ action(data,filename)
+ end
+ end
+end
+
+-- tex features
+
+fonts.otf.enhancers["enrich with features"] = function(data,filename)
+ -- later, ctx only
+end
+
+function otf.features.register(name,default)
+ otf.features.list[#otf.features.list+1] = name
+ otf.features.default[name] = default
+end
+
+function otf.set_features(tfmdata,features)
+ local processes = { }
+ if not table.is_empty(features) then
+ local lists = {
+ fonts.triggers,
+ fonts.processors,
+ fonts.manipulators,
+ }
+ local mode = tfmdata.mode or fonts.mode -- or features.mode
+ local initializers = fonts.initializers
+ local fi = initializers[mode]
+ if fi then
+ local fiotf = fi.otf
+ if fiotf then
+ local done = { }
+ for l=1,4 do
+ local list = lists[l]
+ if list then
+ for i=1,#list do
+ local f = list[i]
+ local value = features[f]
+ if value and fiotf[f] then -- brr
+ if not done[f] then -- so, we can move some to triggers
+ if trace_features then
+ logs.report("define otf","initializing feature %s to %s for mode %s for font %s",f,tostring(value),mode or 'unknown', tfmdata.fullname or 'unknown')
+ end
+ fiotf[f](tfmdata,value) -- can set mode (no need to pass otf)
+ mode = tfmdata.mode or fonts.mode -- keep this, mode can be set local !
+ local im = initializers[mode]
+ if im then
+ fiotf = initializers[mode].otf
+ end
+ done[f] = true
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ local fm = fonts.methods[mode]
+ if fm then
+ local fmotf = fm.otf
+ if fmotf then
+ for l=1,4 do
+ local list = lists[l]
+ if list then
+ for i=1,#list do
+ local f = list[i]
+ if fmotf[f] then -- brr
+ if trace_features then
+ logs.report("define otf","installing feature handler %s for mode %s for font %s",f,mode or 'unknown', tfmdata.fullname or 'unknown')
+ end
+ processes[#processes+1] = fmotf[f]
+ end
+ end
+ end
+ end
+ end
+ else
+ -- message
+ end
+ end
+ return processes, features
+end
+
+function otf.otf_to_tfm(specification)
+ local name = specification.name
+ local sub = specification.sub
+ local filename = specification.filename
+ local format = specification.format
+ local features = specification.features.normal
+ local cache_id = specification.hash
+ local tfmdata = containers.read(tfm.cache(),cache_id)
+--~ print(cache_id)
+ if not tfmdata then
+ local otfdata = otf.load(filename,format,sub,features and features.featurefile)
+ if not table.is_empty(otfdata) then
+ otfdata.shared = otfdata.shared or {
+ featuredata = { },
+ anchorhash = { },
+ initialized = false,
+ }
+ tfmdata = otf.copy_to_tfm(otfdata,cache_id)
+ if not table.is_empty(tfmdata) then
+ tfmdata.unique = tfmdata.unique or { }
+ tfmdata.shared = tfmdata.shared or { } -- combine
+ local shared = tfmdata.shared
+ shared.otfdata = otfdata
+ shared.features = features -- default
+ shared.dynamics = { }
+ shared.processes = { }
+ shared.set_dynamics = otf.set_dynamics -- fast access and makes other modules independent
+ -- this will be done later anyway, but it's convenient to have
+ -- them already for fast access
+ tfmdata.luatex = otfdata.luatex
+ tfmdata.indices = otfdata.luatex.indices
+ tfmdata.unicodes = otfdata.luatex.unicodes
+ tfmdata.marks = otfdata.luatex.marks
+ tfmdata.originals = otfdata.luatex.originals
+ tfmdata.changed = { }
+ tfmdata.has_italic = otfdata.metadata.has_italic
+ if not tfmdata.language then tfmdata.language = 'dflt' end
+ if not tfmdata.script then tfmdata.script = 'dflt' end
+ shared.processes, shared.features = otf.set_features(tfmdata,fonts.define.check(features,otf.features.default))
+ end
+ end
+ containers.write(tfm.cache(),cache_id,tfmdata)
+ end
+ return tfmdata
+end
+
+--~ {
+--~ ['boundingbox']={ 95, -458, 733, 1449 },
+--~ ['class']="base",
+--~ ['name']="braceleft",
+--~ ['unicode']=123,
+--~ ['vert_variants']={
+--~ ['italic_correction']=0,
+--~ ['parts']={
+--~ { ['component']="uni23A9", ['endConnectorLength']=1000, ['fullAdvance']=2546, ['is_extender']=0, ['startConnectorLength']=0, }, -- bot
+--~ { ['component']="uni23AA", ['endConnectorLength']=2500, ['fullAdvance']=2501, ['is_extender']=1, ['startConnectorLength']=2500, }, -- rep
+--~ { ['component']="uni23A8", ['endConnectorLength']=1000, ['fullAdvance']=4688, ['is_extender']=0, ['startConnectorLength']=1000, }, -- mid
+--~ { ['component']="uni23AA", ['endConnectorLength']=2500, ['fullAdvance']=2501, ['is_extender']=1, ['startConnectorLength']=2500, }, -- rep
+--~ { ['component']="uni23A7", ['endConnectorLength']=0, ['fullAdvance']=2546, ['is_extender']=0, ['startConnectorLength']=1000, }, -- top
+--~ },
+--~ ['variants']="braceleft braceleft.vsize1 braceleft.vsize2 braceleft.vsize3 braceleft.vsize4 braceleft.vsize5 braceleft.vsize6 braceleft.vsize7",
+--~ },
+--~ ['width']=793,
+--~ },
+
+-- the first version made a top/mid/not extensible table, now we just pass on the variants data
+-- and deal with it in the tfm scaler (there is no longer an extensible table anyway)
+
+-- we cannot share descriptions as virtual fonts might extend them (ok, we could
+-- use a cache with a hash
+
+function otf.copy_to_tfm(data,cache_id) -- we can save a copy when we reorder the tma to unicode (nasty due to one->many)
+ if data then
+ local glyphs, pfminfo, metadata = data.glyphs or { }, data.pfminfo or { }, data.metadata or { }
+ local luatex = data.luatex
+ local unicodes = luatex.unicodes -- names to unicodes
+ local indices = luatex.indices
+ local characters, parameters, math_parameters, descriptions = { }, { }, { }, { }
+ local tfm = {
+ characters = characters,
+ parameters = parameters,
+ math_parameters = math_parameters,
+ descriptions = descriptions,
+ indices = indices,
+ unicodes = unicodes,
+ }
+ -- indices maps from unicodes to indices
+ for u, i in next, indices do
+ characters[u] = { } -- we need this because for instance we add protruding info and loop over characters
+ descriptions[u] = glyphs[i]
+ end
+ -- math
+ if metadata.math then
+ -- parameters
+ for name, value in next, metadata.math do
+ math_parameters[name] = value
+ end
+ -- we could use a subset
+ for u, char in next, characters do
+ local d = descriptions[u]
+ local m = d.math
+ -- we have them shared because that packs nicer
+ -- we could prepare the variants and keep 'm in descriptions
+ if m then
+ local variants = m.horiz_variants
+ if variants then
+ local c = char
+ for n in variants:gmatch("[^ ]+") do
+ local un = unicodes[n]
+ if un and u ~= un then
+ c.next = un
+ c = characters[un]
+ end
+ end
+ c.horiz_variants = m.horiz_parts
+ else
+ local variants = m.vert_variants
+ if variants then
+ local c = char
+ for n in variants:gmatch("[^ ]+") do
+ local un = unicodes[n]
+ if un and u ~= un then
+ c.next = un
+ c = characters[un]
+ end
+ end
+ c.vert_variants = m.vert_parts
+ end
+ end
+ local kerns = m.kerns
+ if kerns then
+ char.mathkerns = kerns
+ end
+ end
+ end
+ end
+ -- end math
+ local designsize = metadata.designsize or metadata.design_size or 100
+ if designsize == 0 then
+ designsize = 100
+ end
+ local spaceunits = 500
+ tfm.units = metadata.units_per_em or 1000
+ -- we need a runtime lookup because of running from cdrom or zip, brrr
+ tfm.filename = resolvers.findbinfile(luatex.filename,"") or luatex.filename
+ tfm.fullname = metadata.fontname or metadata.fullname
+ tfm.psname = tfm.fullname
+ tfm.encodingbytes = 2
+ tfm.cidinfo = data.cidinfo
+ tfm.cidinfo.registry = tfm.cidinfo.registry or ""
+ tfm.type = "real"
+ tfm.stretch = 0 -- stretch
+ tfm.slant = 0 -- slant
+ tfm.direction = 0
+ tfm.boundarychar_label = 0
+ tfm.boundarychar = 65536
+ tfm.designsize = (designsize/10)*65536
+ tfm.spacer = "500 units"
+ local endash, emdash = 0x20, 0x2014 -- unicodes['space'], unicodes['emdash']
+ if metadata.isfixedpitch then
+ if descriptions[endash] then
+ spaceunits, tfm.spacer = descriptions[endash].width, "space"
+ end
+ if not spaceunits and descriptions[emdash] then
+ spaceunits, tfm.spacer = descriptions[emdash].width, "emdash"
+ end
+ if not spaceunits and metadata.charwidth then
+ spaceunits, tfm.spacer = metadata.charwidth, "charwidth"
+ end
+ else
+ if descriptions[endash] then
+ spaceunits, tfm.spacer = descriptions[endash].width, "space"
+ end
+ if not spaceunits and descriptions[emdash] then
+ spaceunits, tfm.spacer = descriptions[emdash].width/2, "emdash/2"
+ end
+ if not spaceunits and metadata.charwidth then
+ spaceunits, tfm.spacer = metadata.charwidth, "charwidth"
+ end
+ end
+ spaceunits = tonumber(spaceunits) or tfm.units/2 -- 500 -- brrr
+ parameters.slant = 0
+ parameters.space = spaceunits -- 3.333 (cmr10)
+ parameters.space_stretch = tfm.units/2 -- 500 -- 1.666 (cmr10)
+ parameters.space_shrink = 1*tfm.units/3 -- 333 -- 1.111 (cmr10)
+ parameters.x_height = 2*tfm.units/5 -- 400
+ parameters.quad = tfm.units -- 1000
+ if spaceunits < 2*tfm.units/5 then
+ -- todo: warning
+ end
+ local italicangle = metadata.italicangle
+ tfm.ascender = math.abs(metadata.ascent or 0)
+ tfm.descender = math.abs(metadata.descent or 0)
+ if italicangle then -- maybe also in afm _
+ tfm.italicangle = italicangle
+ parameters.slant = parameters.slant - math.round(math.tan(italicangle*math.pi/180))
+ end
+ if metadata.isfixedpitch then
+ parameters.space_stretch = 0
+ parameters.space_shrink = 0
+ elseif otf.syncspace then --
+ parameters.space_stretch = spaceunits/2
+ parameters.space_shrink = spaceunits/3
+ end
+ parameters.extra_space = parameters.space_shrink -- 1.111 (cmr10)
+ if pfminfo.os2_xheight and pfminfo.os2_xheight > 0 then
+ parameters.x_height = pfminfo.os2_xheight
+ else
+ local x = 0x78 -- unicodes['x']
+ if x then
+ local x = descriptions[x]
+ if x then
+ parameters.x_height = x.height
+ end
+ end
+ end
+ -- [6]
+ return tfm
+ else
+ return nil
+ end
+end
+
+otf.features.register('mathsize')
+
+function tfm.read_from_open_type(specification)
+ local tfmtable = otf.otf_to_tfm(specification)
+ if tfmtable then
+ local otfdata = tfmtable.shared.otfdata
+ tfmtable.name = specification.name
+ tfmtable.sub = specification.sub
+ local s = specification.size
+ local m = otfdata.metadata.math
+ if m then
+ local f = specification.features
+ if f then
+ local f = f.normal
+ if f and f.mathsize then
+ local mathsize = specification.mathsize or 0
+ if mathsize == 2 then
+ local p = m.ScriptPercentScaleDown
+ if p then
+ local ps = p * specification.textsize / 100
+ if trace_math then
+ logs.report("define font","asked script size: %s, used: %s (%2.2f %%)",s,ps,(ps/s)*100)
+ end
+ s = ps
+ end
+ elseif mathsize == 3 then
+ local p = m.ScriptScriptPercentScaleDown
+ if p then
+ local ps = p * specification.textsize / 100
+ if trace_math then
+ logs.report("define font","asked scriptscript size: %s, used: %s (%2.2f %%)",s,ps,(ps/s)*100)
+ end
+ s = ps
+ end
+ end
+ end
+ end
+ end
+ tfmtable = tfm.scale(tfmtable,s)
+ -- here we resolve the name; file can be relocated, so this info is not in the cache
+ local filename = (otfdata and otfdata.luatex and otfdata.luatex.filename) or specification.filename
+ if not filename then
+ -- try to locate anyway and set otfdata.luatex.filename
+ end
+ if filename then
+ tfmtable.encodingbytes = 2
+ tfmtable.filename = resolvers.findbinfile(filename,"") or filename
+ tfmtable.fullname = tfmtable.fullname or otfdata.metadata.fontname or otfdata.metadata.fullname
+ local order = otfdata and otfdata.metadata.order2
+ if order == 0 then
+ tfmtable.format = 'opentype'
+ elseif order == 1 then
+ tfmtable.format = 'truetype'
+ else
+ tfmtable.format = specification.format
+ end
+ tfmtable.name = tfmtable.filename or tfmtable.fullname
+ end
+ fonts.logger.save(tfmtable,file.extname(specification.filename),specification)
+ end
+--~ print(tfmtable.fullname)
+ return tfmtable
+end
+
+end -- closure
+
+do -- begin closure to overcome local limits and interference
+
+if not modules then modules = { } end modules ['font-otd'] = {
+ version = 1.001,
+ comment = "companion to font-ini.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local trace_dynamics = false trackers.register("otf.dynamics", function(v) trace_dynamics = v end)
+
+fonts = fonts or { }
+fonts.otf = fonts.otf or { }
+
+local otf = fonts.otf
+local fontdata = fonts.ids
+
+otf.features = otf.features or { }
+otf.features.default = otf.features.default or { }
+
+local context_setups = fonts.define.specify.context_setups
+local context_numbers = fonts.define.specify.context_numbers
+
+local a_to_script = { } otf.a_to_script = a_to_script
+local a_to_language = { } otf.a_to_language = a_to_language
+
+function otf.set_dynamics(font,dynamics,attribute)
+ features = context_setups[context_numbers[attribute]] -- can be moved to caller
+ if features then
+ local script = features.script or 'dflt'
+ local language = features.language or 'dflt'
+ local ds = dynamics[script]
+ if not ds then
+ ds = { }
+ dynamics[script] = ds
+ end
+ local dsl = ds[language]
+ if not dsl then
+ dsl = { }
+ ds[language] = dsl
+ end
+ local dsla = dsl[attribute]
+ if dsla then
+ -- if trace_dynamics then
+ -- logs.report("otf define","using dynamics %s: attribute %s, script %s, language %s",context_numbers[attribute],attribute,script,language)
+ -- end
+ return dsla
+ else
+ local tfmdata = fontdata[font]
+ a_to_script [attribute] = script
+ a_to_language[attribute] = language
+ -- we need to save some values
+ local saved = {
+ script = tfmdata.script,
+ language = tfmdata.language,
+ mode = tfmdata.mode,
+ features = tfmdata.shared.features
+ }
+ tfmdata.mode = "node"
+ tfmdata.language = language
+ tfmdata.script = script
+ tfmdata.shared.features = { }
+ -- end of save
+ dsla = otf.set_features(tfmdata,fonts.define.check(features,otf.features.default))
+ if trace_dynamics then
+ logs.report("otf define","setting dynamics %s: attribute %s, script %s, language %s",context_numbers[attribute],attribute,script,language)
+ end
+ -- we need to restore some values
+ tfmdata.script = saved.script
+ tfmdata.language = saved.language
+ tfmdata.mode = saved.mode
+ tfmdata.shared.features = saved.features
+ -- end of restore
+ dynamics[script][language][attribute] = dsla -- cache
+ return dsla
+ end
+ end
+ return nil -- { }
+end
+
+end -- closure
+
+do -- begin closure to overcome local limits and interference
+
+if not modules then modules = { } end modules ['font-oti'] = {
+ version = 1.001,
+ comment = "companion to font-ini.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- i need to check features=yes|no also in relation to hashing
+
+local lower = string.lower
+
+local otf = fonts.otf
+
+otf.default_language = 'latn'
+otf.default_script = 'dflt'
+
+local languages = otf.tables.languages
+local scripts = otf.tables.scripts
+
+function otf.features.language(tfmdata,value)
+ if value then
+ value = lower(value)
+ if languages[value] then
+ tfmdata.language = value
+ end
+ end
+end
+
+function otf.features.script(tfmdata,value)
+ if value then
+ value = lower(value)
+ if scripts[value] then
+ tfmdata.script = value
+ end
+ end
+end
+
+function otf.features.mode(tfmdata,value)
+ if value then
+ tfmdata.mode = lower(value)
+ end
+end
+
+fonts.initializers.base.otf.language = otf.features.language
+fonts.initializers.base.otf.script = otf.features.script
+fonts.initializers.base.otf.mode = otf.features.mode
+fonts.initializers.base.otf.method = otf.features.mode
+
+fonts.initializers.node.otf.language = otf.features.language
+fonts.initializers.node.otf.script = otf.features.script
+fonts.initializers.node.otf.mode = otf.features.mode
+fonts.initializers.node.otf.method = otf.features.mode
+
+otf.features.register("features",true) -- we always do features
+table.insert(fonts.processors,"features") -- we need a proper function for doing this
+
+
+end -- closure
+
+do -- begin closure to overcome local limits and interference
+
+if not modules then modules = { } end modules ['font-otb'] = {
+ version = 1.001,
+ comment = "companion to font-ini.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local concat = table.concat
+local format, gmatch, gsub, find, match, lower, strip = string.format, string.gmatch, string.gsub, string.find, string.match, string.lower, string.strip
+local type, next, tonumber, tostring = type, next, tonumber, tostring
+
+local otf = fonts.otf
+local tfm = fonts.tfm
+
+local trace_baseinit = false trackers.register("otf.baseinit", function(v) trace_baseinit = v end)
+local trace_singles = false trackers.register("otf.singles", function(v) trace_singles = v end)
+local trace_multiples = false trackers.register("otf.multiples", function(v) trace_multiples = v end)
+local trace_alternatives = false trackers.register("otf.alternatives", function(v) trace_alternatives = v end)
+local trace_ligatures = false trackers.register("otf.ligatures", function(v) trace_ligatures = v end)
+local trace_kerns = false trackers.register("otf.kerns", function(v) trace_kerns = v end)
+local trace_preparing = false trackers.register("otf.preparing", function(v) trace_preparing = v end)
+
+local wildcard = "*"
+local default = "dflt"
+
+local split_at_space = lpeg.Ct(lpeg.splitat(" ")) -- no trailing or multiple spaces anyway
+
+local pcache, fcache = { }, { } -- could be weak
+
+local function gref(descriptions,n)
+ if type(n) == "number" then
+ local name = descriptions[n].name
+ if name then
+ return format("U+%04X (%s)",n,name)
+ else
+ return format("U+%04X")
+ end
+ elseif n then
+ local num, nam = { }, { }
+ for i=1,#n do
+ local ni = n[i]
+ num[i] = format("U+%04X",ni)
+ nam[i] = descriptions[ni].name or "?"
+ end
+ return format("%s (%s)",concat(num," "), concat(nam," "))
+ else
+ return "?"
+ end
+end
+
+local function cref(kind,lookupname)
+ if lookupname then
+ return format("feature %s, lookup %s",kind,lookupname)
+ else
+ return format("feature %s",kind)
+ end
+end
+
+local function resolve_ligatures(tfmdata,ligatures,kind)
+ kind = kind or "unknown"
+ local unicodes = tfmdata.unicodes
+ local characters = tfmdata.characters
+ local descriptions = tfmdata.descriptions
+ local changed = tfmdata.changed
+ local done = { }
+ while true do
+ local ok = false
+ for k,v in next, ligatures do
+ local lig = v[1]
+ if not done[lig] then
+ local ligs = split_at_space:match(lig)
+ if #ligs == 2 then
+ local uc = v[2]
+ local c, f, s = characters[uc], ligs[1], ligs[2]
+ local uft, ust = unicodes[f] or 0, unicodes[s] or 0
+ if not uft or not ust then
+ logs.report("define otf","%s: unicode problem with base ligature %s = %s + %s",cref(kind),gref(descriptions,uc),gref(descriptions,uft),gref(descriptions,ust))
+ -- some kind of error
+ else
+ if type(uft) == "number" then uft = { uft } end
+ if type(ust) == "number" then ust = { ust } end
+ for ufi=1,#uft do
+ local uf = uft[ufi]
+ for usi=1,#ust do
+ local us = ust[usi]
+ if changed[uf] or changed[us] then
+ if trace_baseinit and trace_ligatures then
+ logs.report("define otf","%s: base ligature %s + %s ignored",cref(kind),gref(descriptions,uf),gref(descriptions,us))
+ end
+ else
+ local first, second = characters[uf], us
+ if first and second then
+ local t = first.ligatures
+ if not t then
+ t = { }
+ first.ligatures = t
+ end
+ if type(uc) == "number" then
+ t[second] = { type = 0, char = uc }
+ else
+ t[second] = { type = 0, char = uc[1] } -- can this still happen?
+ end
+ if trace_baseinit and trace_ligatures then
+ logs.report("define otf","%s: base ligature %s + %s => %s",cref(kind),gref(descriptions,uf),gref(descriptions,us),gref(descriptions,uc))
+ end
+ end
+ end
+ end
+ end
+ end
+ ok, done[lig] = true, descriptions[uc].name
+ end
+ end
+ end
+ if ok then
+ -- done has "a b c" = "a_b_c" and ligatures the already set ligatures: "a b" = 123
+ -- and here we add extras (f i i = fi + i and alike)
+ --
+ -- we could use a hash for fnc and pattern
+ --
+ -- this might be interfering !
+ for d,n in next, done do
+ local pattern = pcache[d] if not pattern then pattern = "^(" .. d .. ") " pcache[d] = pattern end
+ local fnc = fcache[n] if not fnc then fnc = function() return n .. " " end fcache[n] = fnc end
+ for k,v in next, ligatures do
+ v[1] = gsub(v[1],pattern,fnc)
+ end
+ end
+ else
+ break
+ end
+ end
+end
+
+local function collect_lookups(otfdata,kind,script,language)
+ -- maybe store this in the font
+ local sequences = otfdata.luatex.sequences
+ if sequences then
+ local featuremap, featurelist = { }, { }
+ for s=1,#sequences do
+ local sequence = sequences[s]
+ local features = sequence.features
+ features = features and features[kind]
+ features = features and (features[script] or features[default] or features[wildcard])
+ features = features and (features[language] or features[default] or features[wildcard])
+ if features then
+ local subtables = sequence.subtables
+ if subtables then
+ for s=1,#subtables do
+ local ss = subtables[s]
+ if not featuremap[s] then
+ featuremap[ss] = true
+ featurelist[#featurelist+1] = ss
+ end
+ end
+ end
+ end
+ end
+ if #featurelist > 0 then
+ return featuremap, featurelist
+ end
+ end
+ return nil, nil
+end
+
+local splitter = lpeg.splitat(" ")
+
+function prepare_base_substitutions(tfmdata,kind,value) -- we can share some code with the node features
+ if value then
+ local otfdata = tfmdata.shared.otfdata
+ local validlookups, lookuplist = collect_lookups(otfdata,kind,tfmdata.script,tfmdata.language)
+ if validlookups then
+ local ligatures = { }
+ local unicodes = tfmdata.unicodes -- names to unicodes
+ local indices = tfmdata.indices
+ local characters = tfmdata.characters
+ local descriptions = tfmdata.descriptions
+ local changed = tfmdata.changed
+ for k,c in next, characters do
+ local glyph = descriptions[k]
+ local lookups = glyph.lookups
+ if lookups then
+ for l=1,#lookuplist do
+ local lookup = lookuplist[l]
+ local ps = lookups[lookup]
+ if ps then
+ for i=1,#ps do
+ local p = ps[i]
+ local t = p[1]
+ if t == 'substitution' then
+ local pv = p[2] -- p.variant
+ if pv then
+ local upv = unicodes[pv]
+ if upv then
+ if type(upv) == "table" then
+ upv = upv[1]
+ end
+ if characters[upv] then
+ if trace_baseinit and trace_singles then
+ logs.report("define otf","%s: base substitution %s => %s",cref(kind,lookup),gref(descriptions,k),gref(descriptions,upv))
+ end
+ changed[k] = upv
+ end
+ end
+ end
+ elseif t == 'alternate' then
+ local pc = p[2] -- p.components
+ if pc then
+ -- a bit optimized ugliness
+ if value == 1 then
+ pc = splitter:match(pc)
+ elseif value == 2 then
+ local a, b = splitter:match(pc)
+ pc = b or a
+ else
+ pc = { splitter:match(pc) }
+ pc = pc[value] or pc[#pc]
+ end
+ if pc then
+ local upc = unicodes[pc]
+ if upc then
+ if type(upc) == "table" then
+ upc = upc[1]
+ end
+ if characters[upc] then
+ if trace_baseinit and trace_alternatives then
+ logs.report("define otf","%s: base alternate %s => %s",cref(kind,lookup),gref(descriptions,k),gref(descriptions,upc))
+ end
+ changed[k] = upc
+ end
+ end
+ end
+ end
+ elseif t == 'ligature' and not changed[k] then
+ local pc = p[2]
+ if pc then
+ if trace_baseinit and trace_ligatures then
+ local upc = { splitter:match(pc) }
+ for i=1,#upc do upc[i] = unicodes[upc[i]] end
+ -- we assume that it's no table
+ logs.report("define otf","%s: base ligature %s => %s",cref(kind,lookup),gref(descriptions,upc),gref(descriptions,k))
+ end
+ ligatures[#ligatures+1] = { pc, k }
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ resolve_ligatures(tfmdata,ligatures,kind)
+ end
+ else
+ tfmdata.ligatures = tfmdata.ligatures or { } -- left over from what ?
+ end
+end
+
+local function prepare_base_kerns(tfmdata,kind,value) -- todo what kind of kerns, currently all
+ if value then
+ local otfdata = tfmdata.shared.otfdata
+ local validlookups, lookuplist = collect_lookups(otfdata,kind,tfmdata.script,tfmdata.language)
+ if validlookups then
+ local unicodes = tfmdata.unicodes -- names to unicodes
+ local indices = tfmdata.indices
+ local characters = tfmdata.characters
+ local descriptions = tfmdata.descriptions
+ for u, chr in next, characters do
+ local d = descriptions[u]
+ if d then
+ local dk = d.mykerns
+ if dk then
+ local t, done = chr.kerns or { }, false
+ for l=1,#lookuplist do
+ local lookup = lookuplist[l]
+ local kerns = dk[lookup]
+ if kerns then
+ for k, v in next, kerns do
+ if v ~= 0 and not t[k] then -- maybe no 0 test here
+ t[k], done = v, true
+ if trace_baseinit and trace_kerns then
+ logs.report("define otf","%s: base kern %s + %s => %s",cref(kind,lookup),gref(descriptions,u),gref(descriptions,k),v)
+ end
+ end
+ end
+ end
+ end
+ if done then
+ chr.kerns = t -- no empty assignments
+ end
+ -- elseif d.kerns then
+ -- logs.report("define otf","%s: invalid mykerns for %s",cref(kind),gref(descriptions,u))
+ end
+ end
+ end
+ end
+ end
+end
+
+-- In principle we could register each feature individually which was
+-- what we did in earlier versions. However, after the rewrite it
+-- made more sense to collect them in an overall features initializer
+-- just as with the node variant. There it was needed because we need
+-- to do complete mixed runs and not run featurewise (as we did before).
+
+local supported_gsub = {
+ 'liga','dlig','rlig','hlig',
+ 'pnum','onum','tnum','lnum',
+ 'zero',
+ 'smcp','cpsp','c2sc','ornm','aalt',
+ 'hwid','fwid',
+ 'ssty', -- math
+}
+
+local supported_gpos = {
+ 'kern'
+}
+
+function otf.features.register_base_substitution(tag)
+ supported_gsub[#supported_gsub+1] = tag
+end
+function otf.features.register_base_kern(tag)
+ supported_gsub[#supported_gpos+1] = tag
+end
+
+local basehash, basehashes = { }, 1
+
+function fonts.initializers.base.otf.features(tfmdata,value)
+ if true then -- value then
+ -- not shared
+ local t = trace_preparing and os.clock()
+ local features = tfmdata.shared.features
+ if features then
+ local h = { }
+ for f=1,#supported_gsub do
+ local feature = supported_gsub[f]
+ local value = features[feature]
+ prepare_base_substitutions(tfmdata,feature,value)
+ if value then
+ h[#h+1] = feature .. "=" .. tostring(value)
+ end
+ end
+ for f=1,#supported_gpos do
+ local feature = supported_gpos[f]
+ local value = features[feature]
+ prepare_base_kerns(tfmdata,feature,features[feature])
+ if value then
+ h[#h+1] = feature .. "=" .. tostring(value)
+ end
+ end
+ local hash = concat(h," ")
+ local base = basehash[hash]
+ if not base then
+ basehashes = basehashes + 1
+ base = basehashes
+ basehash[hash] = base
+ end
+ -- We need to make sure that luatex sees the difference between
+ -- base fonts that have different glyphs in the same slots in fonts
+ -- that have the same fullname (or filename). LuaTeX will merge fonts
+ -- eventually (and subset later on). If needed we can use a more
+ -- verbose name as long as we don't use <()<>[]{}/%> and the length
+ -- is < 128.
+ tfmdata.fullname = tfmdata.fullname .. "-" .. base -- tfmdata.psname is the original
+ --~ logs.report("otf define","fullname base hash: '%s', featureset '%s'",tfmdata.fullname,hash)
+ end
+ if trace_preparing then
+ logs.report("otf define","preparation time is %0.3f seconds for %s",os.clock()-t,tfmdata.fullname or "?")
+ end
+ end
+end
+
+end -- closure
+
+do -- begin closure to overcome local limits and interference
+
+if not modules then modules = { } end modules ['font-otn'] = {
+ version = 1.001,
+ comment = "companion to font-ini.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- this is still somewhat preliminary and it will get better in due time;
+-- much functionality could only be implemented thanks to the husayni font
+-- of Idris Samawi Hamid to who we dedicate this module.
+
+-- we can use more lpegs when lpeg is extended with function args and so
+-- resolving to unicode does not gain much
+
+-- in retrospect it always looks easy but believe it or not, it took a lot
+-- of work to get proper open type support done: buggy fonts, fuzzy specs,
+-- special made testfonts, many skype sessions between taco, idris and me,
+-- torture tests etc etc ... unfortunately the code does not show how much
+-- time it took ...
+
+-- todo:
+--
+-- kerning is probably not yet ok for latin around dics nodes
+-- extension infrastructure (for usage out of context)
+-- sorting features according to vendors/renderers
+-- alternative loop quitters
+-- check cursive and r2l
+-- find out where ignore-mark-classes went
+-- remove unused tables
+-- slide tail (always glue at the end so only needed once
+-- default features (per language, script)
+-- cleanup kern(class) code, remove double info
+-- handle positions (we need example fonts)
+-- handle gpos_single (we might want an extra width field in glyph nodes because adding kerns might interfere)
+
+--[[ldx--
+<p>This module is a bit more split up that I'd like but since we also want to test
+with plain <l n='tex'/> it has to be so. This module is part of <l n='context'/>
+and discussion about improvements and functionality mostly happens on the
+<l n='context'/> mailing list.</p>
+
+<p>The specification of OpenType is kind of vague. Apart from a lack of a proper
+free specifications there's also the problem that Microsoft and Adobe
+may have their own interpretation of how and in what order to apply features.
+In general the Microsoft website has more detailed specifications and is a
+better reference. There is also some information in the FontForge help files.</p>
+
+<p>Because there is so much possible, fonts might contain bugs and/or be made to
+work with certain rederers. These may evolve over time which may have the side
+effect that suddenly fonts behave differently.</p>
+
+<p>After a lot of experiments (mostly by Taco, me and Idris) we're now at yet another
+implementation. Of course all errors are mine and of course the code can be
+improved. There are quite some optimizations going on here and processing speed
+is currently acceptable. Not all functions are implemented yet, often because I
+lack the fonts for testing. Many scripts are not yet supported either, but I will
+look into them as soon as <l n='context'/> users ask for it.</p>
+
+<p>Because there are different interpretations possible, I will extend the code
+with more (configureable) variants. I can also add hooks for users so that they can
+write their own extensions.</p>
+
+<p>Glyphs are indexed not by unicode but in their own way. This is because there is no
+relationship with unicode at all, apart from the fact that a font might cover certain
+ranges of characters. One character can have multiple shapes. However, at the
+<l n='tex'/> end we use unicode so and all extra glyphs are mapped into a private
+space. This is needed because we need to access them and <l n='tex'/> has to include
+then in the output eventually.</p>
+
+<p>The raw table as it coms from <l n='fontforge'/> gets reorganized in to fit out needs.
+In <l n='context'/> that table is packed (similar tables are shared) and cached on disk
+so that successive runs can use the optimized table (after loading the table is
+unpacked). The flattening code used later is a prelude to an even more compact table
+format (and as such it keeps evolving).</p>
+
+<p>This module is sparsely documented because it is a moving target. The table format
+of the reader changes and we experiment a lot with different methods for supporting
+features.</p>
+
+<p>As with the <l n='afm'/> code, we may decide to store more information in the
+<l n='otf'/> table.</p>
+
+<p>Incrementing the version number will force a re-cache. We jump the number by one
+when there's a fix in the <l n='fontforge'/> library or <l n='lua'/> code that
+results in different tables.</p>
+--ldx]]--
+
+-- action handler chainproc chainmore comment
+--
+-- gsub_single ok ok ok
+-- gsub_multiple ok ok not implemented yet
+-- gsub_alternate ok ok not implemented yet
+-- gsub_ligature ok ok ok
+-- gsub_context ok --
+-- gsub_contextchain ok --
+-- gsub_reversecontextchain ok --
+-- chainsub -- ok
+-- reversesub -- ok
+-- gpos_mark2base ok ok
+-- gpos_mark2ligature ok ok
+-- gpos_mark2mark ok ok
+-- gpos_cursive ok untested
+-- gpos_single ok ok
+-- gpos_pair ok ok
+-- gpos_context ok --
+-- gpos_contextchain ok --
+--
+-- actions:
+--
+-- handler : actions triggered by lookup
+-- chainproc : actions triggered by contextual lookup
+-- chainmore : multiple substitutions triggered by contextual lookup (e.g. fij -> f + ij)
+--
+-- remark: the 'not implemented yet' variants will be done when we have fonts that use them
+-- remark: we need to check what to do with discretionaries
+
+local concat = table.concat
+local format, gmatch, gsub, find, match, lower, strip = string.format, string.gmatch, string.gsub, string.find, string.match, string.lower, string.strip
+local type, next, tonumber, tostring = type, next, tonumber, tostring
+
+local otf = fonts.otf
+local tfm = fonts.tfm
+
+local trace_lookups = false trackers.register("otf.lookups", function(v) trace_lookups = v end)
+local trace_singles = false trackers.register("otf.singles", function(v) trace_singles = v end)
+local trace_multiples = false trackers.register("otf.multiples", function(v) trace_multiples = v end)
+local trace_alternatives = false trackers.register("otf.alternatives", function(v) trace_alternatives = v end)
+local trace_ligatures = false trackers.register("otf.ligatures", function(v) trace_ligatures = v end)
+local trace_contexts = false trackers.register("otf.contexts", function(v) trace_contexts = v end)
+local trace_marks = false trackers.register("otf.marks", function(v) trace_marks = v end)
+local trace_kerns = false trackers.register("otf.kerns", function(v) trace_kerns = v end)
+local trace_cursive = false trackers.register("otf.cursive", function(v) trace_cursive = v end)
+local trace_preparing = false trackers.register("otf.preparing", function(v) trace_preparing = v end)
+local trace_bugs = false trackers.register("otf.bugs", function(v) trace_bugs = v end)
+local trace_details = false trackers.register("otf.details", function(v) trace_details = v end)
+local trace_applied = false trackers.register("otf.applied", function(v) trace_applied = v end)
+local trace_steps = false trackers.register("otf.steps", function(v) trace_steps = v end)
+
+trackers.register("otf.verbose_chain", function(v) otf.setcontextchain(v and "verbose") end)
+trackers.register("otf.normal_chain", function(v) otf.setcontextchain(v and "normal") end)
+
+trackers.register("otf.replacements", "otf.singles,otf.multiples,otf.alternatives,otf.ligatures")
+trackers.register("otf.positions","otf.marks,otf.kerns,otf.cursive")
+trackers.register("otf.actions","otf.replacements,otf.positions")
+trackers.register("otf.injections","nodes.injections")
+
+trackers.register("*otf.sample","otf.steps,otf.actions,otf.analyzing")
+
+local insert_node_after = node.insert_after
+local delete_node = nodes.delete
+local copy_node = node.copy
+local find_node_tail = node.tail or node.slide
+local set_attribute = node.set_attribute
+local has_attribute = node.has_attribute
+
+local zwnj = 0x200C
+local zwj = 0x200D
+local wildcard = "*"
+local default = "dflt"
+
+local split_at_space = lpeg.Ct(lpeg.splitat(" ")) -- no trailing or multiple spaces anyway
+
+local glyph = node.id('glyph')
+local glue = node.id('glue')
+local kern = node.id('kern')
+local disc = node.id('disc')
+local whatsit = node.id('whatsit')
+
+local state = attributes.private('state')
+local markbase = attributes.private('markbase')
+local markmark = attributes.private('markmark')
+local markdone = attributes.private('markdone')
+local cursbase = attributes.private('cursbase')
+local curscurs = attributes.private('curscurs')
+local cursdone = attributes.private('cursdone')
+local kernpair = attributes.private('kernpair')
+
+local set_mark = nodes.set_mark
+local set_cursive = nodes.set_cursive
+local set_kern = nodes.set_kern
+local set_pair = nodes.set_pair
+
+local markonce = true
+local cursonce = true
+local kernonce = true
+
+local fontdata = fonts.ids
+
+otf.features.process = { }
+
+-- we share some vars here, after all, we have no nested lookups and
+-- less code
+
+local tfmdata = false
+local otfdata = false
+local characters = false
+local descriptions = false
+local marks = false
+local indices = false
+local unicodes = false
+local currentfont = false
+local lookuptable = false
+local anchorlookups = false
+local handlers = { }
+local rlmode = 0
+local featurevalue = false
+
+-- we cheat a bit and assume that a font,attr combination are kind of ranged
+
+local context_setups = fonts.define.specify.context_setups
+local context_numbers = fonts.define.specify.context_numbers
+local context_merged = fonts.define.specify.context_merged
+
+-- we cannot optimize with "start = first_character(head)" because then we don't
+-- know which rlmode we're in which messes up cursive handling later on
+--
+-- head is always a whatsit so we can safely assume that head is not changed
+
+local special_attributes = {
+ init = 1,
+ medi = 2,
+ fina = 3,
+ isol = 4
+}
+
+-- we use this for special testing and documentation
+
+local checkstep = (nodes and nodes.tracers and nodes.tracers.steppers.check) or function() end
+local registerstep = (nodes and nodes.tracers and nodes.tracers.steppers.register) or function() end
+local registermessage = (nodes and nodes.tracers and nodes.tracers.steppers.message) or function() end
+
+local function logprocess(...)
+ if trace_steps then
+ registermessage(...)
+ end
+ logs.report("otf direct",...)
+end
+local function logwarning(...)
+ logs.report("otf direct",...)
+end
+
+local function gref(n)
+ if type(n) == "number" then
+ local description = descriptions[n]
+ local name = description and description.name
+ if name then
+ return format("U+%04X (%s)",n,name)
+ else
+ return format("U+%04X",n)
+ end
+ elseif not n then
+ return "<error in tracing>"
+ else
+ local num, nam = { }, { }
+ for i=1,#n do
+ local ni = n[i]
+ num[#num+1] = format("U+%04X",ni)
+ local dni = descriptions[ni]
+ nam[#num] = (dni and dni.name) or "?"
+ end
+ return format("%s (%s)",concat(num," "), concat(nam," "))
+ end
+end
+
+local function cref(kind,chainname,chainlookupname,lookupname,index)
+ if index then
+ return format("feature %s, chain %s, sub %s, lookup %s, index %s",kind,chainname,chainlookupname,lookupname,index)
+ elseif lookupname then
+ return format("feature %s, chain %s, sub %s, lookup %s",kind,chainname or "?",chainlookupname or "?",lookupname)
+ elseif chainlookupname then
+ return format("feature %s, chain %s, sub %s",kind,chainname or "?",chainlookupname)
+ elseif chainname then
+ return format("feature %s, chain %s",kind,chainname)
+ else
+ return format("feature %s",kind)
+ end
+end
+
+local function pref(kind,lookupname)
+ return format("feature %s, lookup %s",kind,lookupname)
+end
+
+-- we can assume that languages that use marks are not hyphenated
+-- we can also assume that at most one discretionary is present
+
+local function markstoligature(kind,lookupname,start,stop,char)
+ local n = copy_node(start)
+ local keep = start
+ local current
+ current, start = insert_node_after(start,start,n)
+ local snext = stop.next
+ current.next = snext
+ if snext then
+ snext.prev = current
+ end
+ start.prev, stop.next = nil, nil
+ current.char, current.subtype, current.components = char, 2, start
+ return keep
+end
+
+local function toligature(kind,lookupname,start,stop,char,markflag,discfound) -- brr head
+ if start ~= stop then
+ if discfound then
+ local lignode = copy_node(start)
+ lignode.font = start.font
+ lignode.char = char
+ lignode.subtype = 2
+ start = node.do_ligature_n(start, stop, lignode)
+ if start.id == disc then
+ local prev = start.prev
+ start = start.next
+ end
+ else -- start is the ligature
+ local deletemarks = markflag ~= "mark"
+ local n = copy_node(start)
+ local current
+ current, start = insert_node_after(start,start,n)
+ local snext = stop.next
+ current.next = snext
+ if snext then
+ snext.prev = current
+ end
+ start.prev, stop.next = nil, nil
+ current.char, current.subtype, current.components = char, 2, start
+ local head = current
+ if deletemarks then
+ if trace_marks then
+ while start do
+ if marks[start.char] then
+ logwarning("%s: remove mark %s",pref(kind,lookupname),gref(start.char))
+ end
+ start = start.next
+ end
+ end
+ else
+ local i = 0
+ while start do
+ if marks[start.char] then
+ set_attribute(start,markdone,i)
+ if trace_marks then
+ logwarning("%s: keep mark %s, gets index %s",pref(kind,lookupname),gref(start.char),i)
+ end
+ head, current = insert_node_after(head,current,copy_node(start))
+ else
+ i = i + 1
+ end
+ start = start.next
+ end
+ start = current.next
+ while start and start.id == glyph do
+ if marks[start.char] then
+ set_attribute(start,markdone,i)
+ if trace_marks then
+ logwarning("%s: keep mark %s, gets index %s",pref(kind,lookupname),gref(start.char),i)
+ end
+ else
+ break
+ end
+ start = start.next
+ end
+ end
+ return head
+ end
+ else
+ start.char = char
+ end
+ return start
+end
+
+function handlers.gsub_single(start,kind,lookupname,replacement)
+ if trace_singles then
+ logprocess("%s: replacing %s by single %s",pref(kind,lookupname),gref(start.char),gref(replacement))
+ end
+ start.char = replacement
+ return start, true
+end
+
+local function alternative_glyph(start,alternatives,kind,chainname,chainlookupname,lookupname) -- chainname and chainlookupname optional
+ local value, choice, n = featurevalue or tfmdata.shared.features[kind], nil, #alternatives -- global value, brrr
+ if value == "random" then
+ local r = math.random(1,n)
+ value, choice = format("random, choice %s",r), alternatives[r]
+ elseif value == "first" then
+ value, choice = format("first, choice %s",1), alternatives[1]
+ elseif value == "last" then
+ value, choice = format("last, choice %s",n), alternatives[n]
+ elseif type(value) ~= "number" then
+ value, choice = "default, choice 1", alternatives[1]
+ elseif value > n then
+ value, choice = format("no %s variants, taking %s",value,n), alternatives[n]
+ elseif value == 0 then
+ value, choice = format("choice %s (no change)",value), start.char
+ elseif value < 1 then
+ value, choice = format("no %s variants, taking %s",value,1), alternatives[1]
+ else
+ value, choice = format("choice %s",value), alternatives[value]
+ end
+ if not choice then
+ logwarning("%s: no variant %s for %s",cref(kind,chainname,chainlookupname,lookupname),value,gref(start.char))
+ choice, value = start.char, format("no replacement instead of %s",value)
+ end
+ return choice, value
+end
+
+function handlers.gsub_alternate(start,kind,lookupname,alternative,sequence)
+ local choice, index = alternative_glyph(start,alternative,kind,lookupname)
+ if trace_alternatives then
+ logprocess("%s: replacing %s by alternative %s (%s)",pref(kind,lookupname),gref(start.char),gref(choice),index)
+ end
+ start.char = choice
+ return start, true
+end
+
+function handlers.gsub_multiple(start,kind,lookupname,multiple)
+ if trace_multiples then
+ logprocess("%s: replacing %s by multiple %s",pref(kind,lookupname),gref(start.char),gref(multiple))
+ end
+ start.char = multiple[1]
+ if #multiple > 1 then
+ for k=2,#multiple do
+ local n = copy_node(start)
+ n.char = multiple[k]
+ local sn = start.next
+ n.next = sn
+ n.prev = start
+ if sn then
+ sn.prev = n
+ end
+ start.next = n
+ start = n
+ end
+ end
+ return start, true
+end
+
+function handlers.gsub_ligature(start,kind,lookupname,ligature,sequence) --or maybe pass lookup ref
+ local s, stop, discfound = start.next, nil, false
+ if marks[start.char] then
+ while s do
+ local id = s.id
+ if id == glyph and s.subtype<256 then
+ if s.font == currentfont then
+ local char = s.char
+ local lg = ligature[1][char]
+ if not lg then
+ break
+ else
+ stop = s
+ ligature = lg
+ s = s.next
+ end
+ else
+ break
+ end
+ else
+ break
+ end
+ end
+ if stop and ligature[2] then
+ if trace_ligatures then
+ local startchar, stopchar = start.char, stop.char
+ start = markstoligature(kind,lookupname,start,stop,ligature[2])
+ logprocess("%s: replacing %s upto %s by ligature %s",pref(kind,lookupname),gref(startchar),gref(stopchar),gref(start.char))
+ else
+ start = markstoligature(kind,lookupname,start,stop,ligature[2])
+ end
+ return start, true
+ end
+ else
+ local skipmark = sequence.flags[1]
+ while s do
+ local id = s.id
+ if id == glyph and s.subtype<256 then
+ if s.font == currentfont then
+ local char = s.char
+ if skipmark and marks[char] then
+ s = s.next
+ else
+ local lg = ligature[1][char]
+ if not lg then
+ break
+ else
+ stop = s
+ ligature = lg
+ s = s.next
+ end
+ end
+ else
+ break
+ end
+ elseif id == disc then
+ discfound = true
+ s = s.next
+ else
+ break
+ end
+ end
+ if stop and ligature[2] then
+ if trace_ligatures then
+ local startchar, stopchar = start.char, stop.char
+ start = toligature(kind,lookupname,start,stop,ligature[2],skipmark,discfound)
+ logprocess("%s: replacing %s upto %s by ligature %s",pref(kind,lookupname),gref(startchar),gref(stopchar),gref(start.char))
+ else
+ start = toligature(kind,lookupname,start,stop,ligature[2],skipmark,discfound)
+ end
+ return start, true
+ end
+ end
+ return start, false
+end
+
+--[[ldx--
+<p>We get hits on a mark, but we're not sure if the it has to be applied so
+we need to explicitly test for basechar, baselig and basemark entries.</p>
+--ldx]]--
+
+function handlers.gpos_mark2base(start,kind,lookupname,markanchors,sequence)
+ local markchar = start.char
+ if marks[markchar] then
+ local base = start.prev -- [glyph] [start=mark]
+ if base and base.id == glyph and base.subtype<256 and base.font == currentfont then
+ local basechar = base.char
+ if marks[basechar] then
+ while true do
+ base = base.prev
+ if base and base.id == glyph and base.subtype<256 and base.font == currentfont then
+ basechar = base.char
+ if not marks[basechar] then
+ break
+ end
+ else
+ if trace_bugs then
+ logwarning("%s: no base for mark %s",pref(kind,lookupname),gref(markchar))
+ end
+ return start, false
+ end
+ end
+ end
+ local baseanchors = descriptions[basechar]
+ if baseanchors then
+ baseanchors = baseanchors.anchors
+ end
+ if baseanchors then
+ local baseanchors = baseanchors['basechar']
+ if baseanchors then
+ local al = anchorlookups[lookupname]
+ for anchor,ba in next, baseanchors do
+ if al[anchor] then
+ local ma = markanchors[anchor]
+ if ma then
+ local dx, dy, bound = set_mark(start,base,tfmdata.factor,rlmode,ba,ma)
+ if trace_marks then
+ logprocess("%s, anchor %s, bound %s: anchoring mark %s to basechar %s => (%s,%s)",
+ pref(kind,lookupname),anchor,bound,gref(markchar),gref(basechar),dx,dy)
+ end
+ return start, true
+ end
+ end
+ end
+ if trace_bugs then
+ logwarning("%s, no matching anchors for mark %s and base %s",pref(kind,lookupname),gref(markchar),gref(basechar))
+ end
+ end
+ else -- if trace_bugs then
+ -- logwarning("%s: char %s is missing in font",pref(kind,lookupname),gref(basechar))
+ fonts.register_message(currentfont,basechar,"no base anchors")
+ end
+ elseif trace_bugs then
+ logwarning("%s: prev node is no char",pref(kind,lookupname))
+ end
+ elseif trace_bugs then
+ logwarning("%s: mark %s is no mark",pref(kind,lookupname),gref(markchar))
+ end
+ return start, false
+end
+
+function handlers.gpos_mark2ligature(start,kind,lookupname,markanchors,sequence)
+ -- check chainpos variant
+ local markchar = start.char
+ if marks[markchar] then
+ local base = start.prev -- [glyph] [optional marks] [start=mark]
+ local index = 1
+ if base and base.id == glyph and base.subtype<256 and base.font == currentfont then
+ local basechar = base.char
+ if marks[basechar] then
+ index = index + 1
+ while true do
+ base = base.prev
+ if base and base.id == glyph and base.subtype<256 and base.font == currentfont then
+ basechar = base.char
+ if marks[basechar] then
+ index = index + 1
+ else
+ break
+ end
+ else
+ if trace_bugs then
+ logwarning("%s: no base for mark %s",pref(kind,lookupname),gref(markchar))
+ end
+ return start, false
+ end
+ end
+ end
+ local i = has_attribute(start,markdone)
+ if i then index = i end
+ local baseanchors = descriptions[basechar]
+ if baseanchors then
+ baseanchors = baseanchors.anchors
+ if baseanchors then
+ local baseanchors = baseanchors['baselig']
+ if baseanchors then
+ local al = anchorlookups[lookupname]
+ for anchor,ba in next, baseanchors do
+ if al[anchor] then
+ local ma = markanchors[anchor]
+ if ma then
+ ba = ba[index]
+ if ba then
+ local dx, dy, bound = set_mark(start,base,tfmdata.factor,rlmode,ba,ma,index)
+ if trace_marks then
+ logprocess("%s, anchor %s, index %s, bound %s: anchoring mark %s to baselig %s at index %s => (%s,%s)",
+ pref(kind,lookupname),anchor,index,bound,gref(markchar),gref(basechar),index,dx,dy)
+ end
+ return start, true
+ end
+ end
+ end
+ end
+ if trace_bugs then
+ logwarning("%s: no matching anchors for mark %s and baselig %s",pref(kind,lookupname),gref(markchar),gref(basechar))
+ end
+ end
+ end
+ else -- if trace_bugs then
+ -- logwarning("%s: char %s is missing in font",pref(kind,lookupname),gref(basechar))
+ fonts.register_message(currentfont,basechar,"no base anchors")
+ end
+ elseif trace_bugs then
+ logwarning("%s: prev node is no char",pref(kind,lookupname))
+ end
+ elseif trace_bugs then
+ logwarning("%s: mark %s is no mark",pref(kind,lookupname),gref(markchar))
+ end
+ return start, false
+end
+
+function handlers.gpos_mark2mark(start,kind,lookupname,markanchors,sequence)
+ local markchar = start.char
+ if marks[markchar] then
+--~ local alreadydone = markonce and has_attribute(start,markmark)
+--~ if not alreadydone then
+ local base = start.prev -- [glyph] [basemark] [start=mark]
+ if base and base.id == glyph and base.subtype<256 and base.font == currentfont then -- subtype test can go
+ local basechar = base.char
+ local baseanchors = descriptions[basechar]
+ if baseanchors then
+ baseanchors = baseanchors.anchors
+ if baseanchors then
+ baseanchors = baseanchors['basemark']
+ if baseanchors then
+ local al = anchorlookups[lookupname]
+ for anchor,ba in next, baseanchors do
+ if al[anchor] then
+ local ma = markanchors[anchor]
+ if ma then
+ local dx, dy, bound = set_mark(start,base,tfmdata.factor,rlmode,ba,ma)
+ if trace_marks then
+ logprocess("%s, anchor %s, bound %s: anchoring mark %s to basemark %s => (%s,%s)",
+ pref(kind,lookupname),anchor,bound,gref(markchar),gref(basechar),dx,dy)
+ end
+ return start,true
+ end
+ end
+ end
+ if trace_bugs then
+ logwarning("%s: no matching anchors for mark %s and basemark %s",pref(kind,lookupname),gref(markchar),gref(basechar))
+ end
+ end
+ end
+ else -- if trace_bugs then
+ -- logwarning("%s: char %s is missing in font",pref(kind,lookupname),gref(basechar))
+ fonts.register_message(currentfont,basechar,"no base anchors")
+ end
+ elseif trace_bugs then
+ logwarning("%s: prev node is no mark",pref(kind,lookupname))
+ end
+--~ elseif trace_marks and trace_details then
+--~ logprocess("%s, mark %s is already bound (n=%s), ignoring mark2mark",pref(kind,lookupname),gref(markchar),alreadydone)
+--~ end
+ elseif trace_bugs then
+ logwarning("%s: mark %s is no mark",pref(kind,lookupname),gref(markchar))
+ end
+ return start,false
+end
+
+function handlers.gpos_cursive(start,kind,lookupname,exitanchors,sequence) -- to be checked
+ local alreadydone = cursonce and has_attribute(start,cursbase)
+ if not alreadydone then
+ local done = false
+ local startchar = start.char
+ if marks[startchar] then
+ if trace_cursive then
+ logprocess("%s: ignoring cursive for mark %s",pref(kind,lookupname),gref(startchar))
+ end
+ else
+ local nxt = start.next
+ while not done and nxt and nxt.id == glyph and nxt.subtype<256 and nxt.font == currentfont do
+ local nextchar = nxt.char
+ if marks[nextchar] then
+ -- should not happen (maybe warning)
+ nxt = nxt.next
+ else
+ local entryanchors = descriptions[nextchar]
+ if entryanchors then
+ entryanchors = entryanchors.anchors
+ if entryanchors then
+ entryanchors = entryanchors['centry']
+ if entryanchors then
+ local al = anchorlookups[lookupname]
+ for anchor, entry in next, entryanchors do
+ if al[anchor] then
+ local exit = exitanchors[anchor]
+ if exit then
+ local dx, dy, bound = set_cursive(start,nxt,tfmdata.factor,rlmode,exit,entry,characters[startchar],characters[nextchar])
+ if trace_cursive then
+ logprocess("%s: moving %s to %s cursive (%s,%s) using anchor %s and bound %s",pref(kind,lookupname),gref(startchar),gref(nextchar),dx,dy,anchor,bound)
+ end
+ done = true
+ break
+ end
+ end
+ end
+ end
+ end
+ else -- if trace_bugs then
+ -- logwarning("%s: char %s is missing in font",pref(kind,lookupname),gref(startchar))
+ fonts.register_message(currentfont,startchar,"no entry anchors")
+ end
+ break
+ end
+ end
+ end
+ return start, done
+ else
+ if trace_cursive and trace_details then
+ logprocess("%s, cursive %s is already done",pref(kind,lookupname),gref(start.char),alreadydone)
+ end
+ return start, false
+ end
+end
+
+function handlers.gpos_single(start,kind,lookupname,kerns,sequence)
+ local startchar = start.char
+ local dx, dy = set_pair(start,tfmdata.factor,rlmode,kerns,characters[startchar])
+ if trace_kerns then
+ logprocess("%s: shifting single %s by (%s,%s)",pref(kind,lookupname),gref(startchar),dx,dy)
+ end
+ return start, false
+end
+
+function handlers.gpos_pair(start,kind,lookupname,kerns,sequence)
+ -- todo: kerns in disc nodes: pre, post, replace -> loop over disc too
+ -- todo: kerns in components of ligatures
+ local snext = start.next
+ if not snext then
+ return start, false
+ else
+ local prev, done = start, false
+ local factor = tfmdata.factor
+ while snext and snext.id == glyph and snext.subtype<256 and snext.font == currentfont do
+ local nextchar = snext.char
+local krn = kerns[nextchar]
+ if not krn and marks[nextchar] then
+ prev = snext
+ snext = snext.next
+ else
+ local krn = kerns[nextchar]
+ if not krn then
+ -- skip
+ elseif type(krn) == "table" then
+ if krn[1] == "pair" then
+ local a, b = krn[3], krn[4]
+ if a and #a > 0 then
+ local startchar = start.char
+ local x, y, w, h = set_pair(start,factor,rlmode,a,characters[startchar])
+ if trace_kerns then
+ logprocess("%s: shifting first of pair %s and %s by (%s,%s) and correction (%s,%s)",pref(kind,lookupname),gref(startchar),gref(nextchar),x,y,w,h)
+ end
+ end
+ if b and #b > 0 then
+ local startchar = start.char
+ local x, y, w, h = set_pair(snext,factor,rlmode,b,characters[nextchar])
+ if trace_kerns then
+ logprocess("%s: shifting second of pair %s and %s by (%s,%s) and correction (%s,%s)",pref(kind,lookupname),gref(startchar),gref(nextchar),x,y,w,h)
+ end
+ end
+ else
+ logs.report("%s: check this out (old kern stuff)",pref(kind,lookupname))
+ local a, b = krn[3], krn[7]
+ if a and a ~= 0 then
+ local k = set_kern(snext,factor,rlmode,a)
+ if trace_kerns then
+ logprocess("%s: inserting first kern %s between %s and %s",pref(kind,lookupname),k,gref(prev.char),gref(nextchar))
+ end
+ end
+ if b and b ~= 0 then
+ logwarning("%s: ignoring second kern xoff %s",pref(kind,lookupname),b*factor)
+ end
+ end
+ done = true
+ elseif krn ~= 0 then
+ local k = set_kern(snext,factor,rlmode,krn)
+ if trace_kerns then
+ logprocess("%s: inserting kern %s between %s and %s",pref(kind,lookupname),k,gref(prev.char),gref(nextchar))
+ end
+ done = true
+ end
+ break
+ end
+ end
+ return start, done
+ end
+end
+
+--[[ldx--
+<p>I will implement multiple chain replacements once I run into a font that uses
+it. It's not that complex to handle.</p>
+--ldx]]--
+
+local chainmores = { }
+local chainprocs = { }
+
+local function logprocess(...)
+ if trace_steps then
+ registermessage(...)
+ end
+ logs.report("otf subchain",...)
+end
+local function logwarning(...)
+ logs.report("otf subchain",...)
+end
+
+-- ['coverage']={
+-- ['after']={ "r" },
+-- ['before']={ "q" },
+-- ['current']={ "a", "b", "c" },
+-- },
+-- ['lookups']={ "ls_l_1", "ls_l_1", "ls_l_1" },
+
+function chainmores.chainsub(start,stop,kind,chainname,currentcontext,cache,lookuplist,chainlookupname,n)
+ logprocess("%s: a direct call to chainsub cannot happen",cref(kind,chainname,chainlookupname))
+ return start, false
+end
+
+-- handled later:
+--
+-- function chainmores.gsub_single(start,stop,kind,chainname,currentcontext,cache,currentlookup,chainlookupname,n)
+-- return chainprocs.gsub_single(start,stop,kind,chainname,currentcontext,cache,currentlookup,chainlookupname,n)
+-- end
+
+function chainmores.gsub_multiple(start,stop,kind,chainname,currentcontext,cache,currentlookup,chainlookupname,n)
+ logprocess("%s: gsub_multiple not yet supported",cref(kind,chainname,chainlookupname))
+ return start, false
+end
+function chainmores.gsub_alternate(start,stop,kind,chainname,currentcontext,cache,currentlookup,chainlookupname,n)
+ logprocess("%s: gsub_alternate not yet supported",cref(kind,chainname,chainlookupname))
+ return start, false
+end
+
+-- handled later:
+--
+-- function chainmores.gsub_ligature(start,stop,kind,chainname,currentcontext,cache,currentlookup,chainlookupname,n)
+-- return chainprocs.gsub_ligature(start,stop,kind,chainname,currentcontext,cache,currentlookup,chainlookupname,n)
+-- end
+
+local function logprocess(...)
+ if trace_steps then
+ registermessage(...)
+ end
+ logs.report("otf chain",...)
+end
+local function logwarning(...)
+ logs.report("otf chain",...)
+end
+
+-- We could share functions but that would lead to extra function calls with many
+-- arguments, redundant tests and confusing messages.
+
+function chainprocs.chainsub(start,stop,kind,chainname,currentcontext,cache,lookuplist,chainlookupname)
+ logwarning("%s: a direct call to chainsub cannot happen",cref(kind,chainname,chainlookupname))
+ return start, false
+end
+
+-- The reversesub is a special case, which is why we need to store the replacements
+-- in a bit weird way. There is no lookup and the replacement comes from the lookup
+-- itself. It is meant mostly for dealing with Urdu.
+
+function chainprocs.reversesub(start,stop,kind,chainname,currentcontext,cache,replacements)
+ local char = start.char
+ local replacement = replacements[char]
+ if replacement then
+ if trace_singles then
+ logprocess("%s: single reverse replacement of %s by %s",cref(kind,chainname),gref(char),gref(replacement))
+ end
+ start.char = replacement
+ return start, true
+ else
+ return start, false
+ end
+end
+
+--[[ldx--
+<p>This chain stuff is somewhat tricky since we can have a sequence of actions to be
+applied: single, alternate, multiple or ligature where ligature can be an invalid
+one in the sense that it will replace multiple by one but not neccessary one that
+looks like the combination (i.e. it is the counterpart of multiple then). For
+example, the following is valid:</p>
+
+<typing>
+<line>xxxabcdexxx [single a->A][multiple b->BCD][ligature cde->E] xxxABCDExxx</line>
+</typing>
+
+<p>Therefore we we don't really do the replacement here already unless we have the
+single lookup case. The efficiency of the replacements can be improved by deleting
+as less as needed but that would also mke the code even more messy.</p>
+--ldx]]--
+
+local function delete_till_stop(start,stop,ignoremarks)
+ if start ~= stop then
+ -- todo keep marks
+ local done = false
+ while not done do
+ done = start == stop
+ delete_node(start,start.next)
+ end
+ end
+end
+
+--[[ldx--
+<p>Here we replace start by a single variant, First we delete the rest of the
+match.</p>
+--ldx]]--
+
+function chainprocs.gsub_single(start,stop,kind,chainname,currentcontext,cache,currentlookup,chainlookupname,chainindex)
+ -- todo: marks ?
+ if not chainindex then
+ delete_till_stop(start,stop) -- ,currentlookup.flags[1])
+ end
+ local current = start
+ local subtables = currentlookup.subtables
+ while current do
+ if current.id == glyph then
+ local currentchar = current.char
+ local lookupname = subtables[1]
+ local replacement = cache.gsub_single[lookupname]
+ if not replacement then
+ if trace_bugs then
+ logwarning("%s: no single hits",cref(kind,chainname,chainlookupname,lookupname,chainindex))
+ end
+ else
+ replacement = replacement[currentchar]
+ if not replacement then
+ if trace_bugs then
+ logwarning("%s: no single for %s",cref(kind,chainname,chainlookupname,lookupname,chainindex),gref(currentchar))
+ end
+ else
+ if trace_singles then
+ logprocess("%s: replacing single %s by %s",cref(kind,chainname,chainlookupname,lookupname,chainindex),gref(currentchar),gref(replacement))
+ end
+ current.char = replacement
+ end
+ end
+ return start, true
+ elseif current == stop then
+ break
+ else
+ current = current.next
+ end
+ end
+ return start, false
+end
+
+chainmores.gsub_single = chainprocs.gsub_single
+
+--[[ldx--
+<p>Here we replace start by a sequence of new glyphs. First we delete the rest of
+the match.</p>
+--ldx]]--
+
+function chainprocs.gsub_multiple(start,stop,kind,chainname,currentcontext,cache,currentlookup,chainlookupname)
+ delete_till_stop(start,stop)
+ local startchar = start.char
+ local subtables = currentlookup.subtables
+ local lookupname = subtables[1]
+ local replacements = cache.gsub_multiple[lookupname]
+ if not replacements then
+ if trace_bugs then
+ logwarning("%s: no multiple hits",cref(kind,chainname,chainlookupname,lookupname))
+ end
+ else
+ replacements = replacements[startchar]
+ if not replacements then
+ if trace_bugs then
+ logwarning("%s: no multiple for %s",cref(kind,chainname,chainlookupname,lookupname),gref(startchar))
+ end
+ else
+ if trace_multiples then
+ logprocess("%s: replacing %s by multiple characters %s",cref(kind,chainname,chainlookupname,lookupname),gref(startchar),gref(replacements))
+ end
+ local sn = start.next
+ for k=1,#replacements do
+ if k == 1 then
+ start.char = replacements[k]
+ else
+ local n = copy_node(start) -- maybe delete the components and such
+ n.char = replacements[k]
+ n.next, n.prev = sn, start
+ if sn then
+ sn.prev = n
+ end
+ start.next, start = n, n
+ end
+ end
+ return start, true
+ end
+ end
+ return start, false
+end
+
+--[[ldx--
+<p>Here we replace start by new glyph. First we delete the rest of the match.</p>
+--ldx]]--
+
+function chainprocs.gsub_alternate(start,stop,kind,lookupname,currentcontext,cache,currentlookup)
+ -- todo: marks ?
+ delete_till_stop(start,stop)
+ local current = start
+ local subtables = currentlookup.subtables
+ while current do
+ if current.id == glyph then
+ local currentchar = current.char
+ local lookupname = subtables[1]
+ local alternatives = cache.gsub_alternate[lookupname]
+ if not alternatives then
+ if trace_bugs then
+ logwarning("%s: no alternative hits",cref(kind,chainname,chainlookupname,lookupname))
+ end
+ else
+ alternatives = alternatives[currentchar]
+ if not alternatives then
+ if trace_bugs then
+ logwarning("%s: no alternative for %s",cref(kind,chainname,chainlookupname,lookupname),gref(currentchar))
+ end
+ else
+ local choice, index = alternative_glyph(current,alternatives,kind,chainname,chainlookupname,lookupname)
+ current.char = choice
+ if trace_alternatives then
+ logprocess("%s: replacing single %s by alternative %s (%s)",cref(kind,chainname,chainlookupname,lookupname),index,gref(currentchar),gref(choice),index)
+ end
+ end
+ end
+ return start, true
+ elseif current == stop then
+ break
+ else
+ current = current.next
+ end
+ end
+ return start, false
+end
+
+--[[ldx--
+<p>When we replace ligatures we use a helper that handles the marks. I might change
+this function (move code inline and handle the marks by a separate function). We
+assume rather stupid ligatures (no complex disc nodes).</p>
+--ldx]]--
+
+function chainprocs.gsub_ligature(start,stop,kind,chainname,currentcontext,cache,currentlookup,chainlookupname,chainindex)
+ local startchar = start.char
+ local subtables = currentlookup.subtables
+ local lookupname = subtables[1]
+ local ligatures = cache.gsub_ligature[lookupname]
+ if not ligatures then
+ if trace_bugs then
+ logwarning("%s: no ligature hits",cref(kind,chainname,chainlookupname,lookupname,chainindex))
+ end
+ else
+ ligatures = ligatures[startchar]
+ if not ligatures then
+ if trace_bugs then
+ logwarning("%s: no ligatures starting with %s",cref(kind,chainname,chainlookupname,lookupname,chainindex),gref(startchar))
+ end
+ else
+ local s, discfound, last, nofreplacements = start.next, false, stop, 0
+ while s do
+ local id = s.id
+ if id == disc then
+ s = s.next
+ discfound = true
+ else
+ local schar = s.char
+ if marks[schar] then -- marks
+ s = s.next
+ else
+ local lg = ligatures[1][schar]
+ if not lg then
+ break
+ else
+ ligatures, last, nofreplacements = lg, s, nofreplacements + 1
+ if s == stop then
+ break
+ else
+ s = s.next
+ end
+ end
+ end
+ end
+ end
+ local l2 = ligatures[2]
+ if l2 then
+ if chainindex then
+ stop = last
+ end
+ if trace_ligatures then
+ if start == stop then
+ logprocess("%s: replacing character %s by ligature %s",cref(kind,chainname,chainlookupname,lookupname,chainindex),gref(startchar),gref(l2))
+ else
+ logprocess("%s: replacing character %s upto %s by ligature %s",cref(kind,chainname,chainlookupname,lookupname,chainindex),gref(startchar),gref(stop.char),gref(l2))
+ end
+ end
+ start = toligature(kind,lookup,start,stop,l2,currentlookup.flags[1],discfound)
+ return start, true, nofreplacements
+ elseif trace_bugs then
+ if start == stop then
+ logwarning("%s: replacing character %s by ligature fails",cref(kind,chainname,chainlookupname,lookupname,chainindex),gref(startchar))
+ else
+ logwarning("%s: replacing character %s upto %s by ligature fails",cref(kind,chainname,chainlookupname,lookupname,chainindex),gref(startchar),gref(stop.char))
+ end
+ end
+ end
+ end
+ return start, false, 0
+end
+
+chainmores.gsub_ligature = chainprocs.gsub_ligature
+
+function chainprocs.gpos_mark2base(start,stop,kind,chainname,currentcontext,cache,currentlookup,chainlookupname)
+ local markchar = start.char
+ if marks[markchar] then
+ local subtables = currentlookup.subtables
+ local lookupname = subtables[1]
+ local markanchors = cache.gpos_mark2base[lookupname]
+ if markanchors then
+ markanchors = markanchors[markchar]
+ end
+ if markanchors then
+ local base = start.prev -- [glyph] [start=mark]
+ if base and base.id == glyph and base.subtype<256 and base.font == currentfont then
+ local basechar = base.char
+ if marks[basechar] then
+ while true do
+ base = base.prev
+ if base and base.id == glyph and base.subtype<256 and base.font == currentfont then
+ basechar = base.char
+ if not marks[basechar] then
+ break
+ end
+ else
+ if trace_bugs then
+ logwarning("%s: no base for mark %s",pref(kind,lookupname),gref(markchar))
+ end
+ return start, false
+ end
+ end
+ end
+ local baseanchors = descriptions[basechar].anchors
+ if baseanchors then
+ local baseanchors = baseanchors['basechar']
+ if baseanchors then
+ local al = anchorlookups[lookupname]
+ for anchor,ba in next, baseanchors do
+ if al[anchor] then
+ local ma = markanchors[anchor]
+ if ma then
+ local dx, dy, bound = set_mark(start,base,tfmdata.factor,rlmode,ba,ma)
+ if trace_marks then
+ logprocess("%s, anchor %s, bound %s: anchoring mark %s to basechar %s => (%s,%s)",
+ cref(kind,chainname,chainlookupname,lookupname),anchor,bound,gref(markchar),gref(basechar),dx,dy)
+ end
+ return start, true
+ end
+ end
+ end
+ if trace_bugs then
+ logwarning("%s, no matching anchors for mark %s and base %s",cref(kind,chainname,chainlookupname,lookupname),gref(markchar),gref(basechar))
+ end
+ end
+ end
+ elseif trace_bugs then
+ logwarning("%s: prev node is no char",cref(kind,chainname,chainlookupname,lookupname))
+ end
+ elseif trace_bugs then
+ logwarning("%s: mark %s has no anchors",cref(kind,chainname,chainlookupname,lookupname),gref(markchar))
+ end
+ elseif trace_bugs then
+ logwarning("%s: mark %s is no mark",cref(kind,chainname,chainlookupname),gref(markchar))
+ end
+ return start, false
+end
+
+function chainprocs.gpos_mark2ligature(start,stop,kind,chainname,currentcontext,cache,currentlookup,chainlookupname)
+ local markchar = start.char
+ if marks[markchar] then
+ local subtables = currentlookup.subtables
+ local lookupname = subtables[1]
+ local markanchors = cache.gpos_mark2ligature[lookupname]
+ if markanchors then
+ markanchors = markanchors[markchar]
+ end
+ if markanchors then
+ local base = start.prev -- [glyph] [optional marks] [start=mark]
+ local index = 1
+ if base and base.id == glyph and base.subtype<256 and base.font == currentfont then
+ local basechar = base.char
+ if marks[basechar] then
+ index = index + 1
+ while true do
+ base = base.prev
+ if base and base.id == glyph and base.subtype<256 and base.font == currentfont then
+ basechar = base.char
+ if marks[basechar] then
+ index = index + 1
+ else
+ break
+ end
+ else
+ if trace_bugs then
+ logwarning("%s: no base for mark %s",cref(kind,chainname,chainlookupname,lookupname),markchar)
+ end
+ return start, false
+ end
+ end
+ end
+ -- todo: like marks a ligatures hash
+ local i = has_attribute(start,markdone)
+ if i then index = i end
+ local baseanchors = descriptions[basechar].anchors
+ if baseanchors then
+ local baseanchors = baseanchors['baselig']
+ if baseanchors then
+ local al = anchorlookups[lookupname]
+ for anchor,ba in next, baseanchors do
+ if al[anchor] then
+ local ma = markanchors[anchor]
+ if ma then
+ ba = ba[index]
+ if ba then
+ local dx, dy, bound = set_mark(start,base,tfmdata.factor,rlmode,ba,ma,index)
+ if trace_marks then
+ logprocess("%s, anchor %s, bound %s: anchoring mark %s to baselig %s at index %s => (%s,%s)",
+ cref(kind,chainname,chainlookupname,lookupname),anchor,a or bound,gref(markchar),gref(basechar),index,dx,dy)
+ end
+ return start, true
+ end
+ end
+ end
+ end
+ if trace_bugs then
+ logwarning("%s: no matching anchors for mark %s and baselig %s",cref(kind,chainname,chainlookupname,lookupname),gref(markchar),gref(basechar))
+ end
+ end
+ end
+ elseif trace_bugs then
+ logwarning("feature %s, lookup %s: prev node is no char",kind,lookupname)
+ end
+ elseif trace_bugs then
+ logwarning("%s: mark %s has no anchors",cref(kind,chainname,chainlookupname,lookupname),gref(markchar))
+ end
+ elseif trace_bugs then
+ logwarning("%s: mark %s is no mark",cref(kind,chainname,chainlookupname),gref(markchar))
+ end
+ return start, false
+end
+
+function chainprocs.gpos_mark2mark(start,stop,kind,chainname,currentcontext,cache,currentlookup,chainlookupname)
+ local markchar = start.char
+ if marks[markchar] then
+--~ local alreadydone = markonce and has_attribute(start,markmark)
+--~ if not alreadydone then
+ -- local markanchors = descriptions[markchar].anchors markanchors = markanchors and markanchors.mark
+ local subtables = currentlookup.subtables
+ local lookupname = subtables[1]
+ local markanchors = cache.gpos_mark2mark[lookupname]
+ if markanchors then
+ markanchors = markanchors[markchar]
+ end
+ if markanchors then
+ local base = start.prev -- [glyph] [basemark] [start=mark]
+ if base and base.id == glyph and base.subtype<256 and base.font == currentfont then -- subtype test can go
+ local basechar = base.char
+ local baseanchors = descriptions[basechar].anchors
+ if baseanchors then
+ baseanchors = baseanchors['basemark']
+ if baseanchors then
+ local al = anchorlookups[lookupname]
+ for anchor,ba in next, baseanchors do
+ if al[anchor] then
+ local ma = markanchors[anchor]
+ if ma then
+ local dx, dy, bound = set_mark(start,base,tfmdata.factor,rlmode,ba,ma)
+ if trace_marks then
+ logprocess("%s, anchor %s, bound %s: anchoring mark %s to basemark %s => (%s,%s)",
+ cref(kind,chainname,chainlookupname,lookupname),anchor,bound,gref(markchar),gref(basechar),dx,dy)
+ end
+ return start, true
+ end
+ end
+ end
+ if trace_bugs then
+ logwarning("%s: no matching anchors for mark %s and basemark %s",gref(kind,chainname,chainlookupname,lookupname),gref(markchar),gref(basechar))
+ end
+ end
+ end
+ elseif trace_bugs then
+ logwarning("%s: prev node is no mark",cref(kind,chainname,chainlookupname,lookupname))
+ end
+ elseif trace_bugs then
+ logwarning("%s: mark %s has no anchors",cref(kind,chainname,chainlookupname,lookupname),gref(markchar))
+ end
+--~ elseif trace_marks and trace_details then
+--~ logprocess("%s, mark %s is already bound (n=%s), ignoring mark2mark",pref(kind,lookupname),gref(markchar),alreadydone)
+--~ end
+ elseif trace_bugs then
+ logwarning("%s: mark %s is no mark",cref(kind,chainname,chainlookupname),gref(markchar))
+ end
+ return start, false
+end
+
+-- ! ! ! untested ! ! !
+
+function chainprocs.gpos_cursive(start,stop,kind,chainname,currentcontext,cache,currentlookup,chainlookupname)
+ local alreadydone = cursonce and has_attribute(start,cursbase)
+ if not alreadydone then
+ local startchar = start.char
+ local subtables = currentlookup.subtables
+ local lookupname = subtables[1]
+ local exitanchors = cache.gpos_cursive[lookupname]
+ if exitanchors then
+ exitanchors = exitanchors[startchar]
+ end
+ if exitanchors then
+ local done = false
+ if marks[startchar] then
+ if trace_cursive then
+ logprocess("%s: ignoring cursive for mark %s",pref(kind,lookupname),gref(startchar))
+ end
+ else
+ local nxt = start.next
+ while not done and nxt and nxt.id == glyph and nxt.subtype<256 and nxt.font == currentfont do
+ local nextchar = nxt.char
+ if marks[nextchar] then
+ -- should not happen (maybe warning)
+ nxt = nxt.next
+ else
+ local entryanchors = descriptions[nextchar]
+ if entryanchors then
+ entryanchors = entryanchors.anchors
+ if entryanchors then
+ entryanchors = entryanchors['centry']
+ if entryanchors then
+ local al = anchorlookups[lookupname]
+ for anchor, entry in next, entryanchors do
+ if al[anchor] then
+ local exit = exitanchors[anchor]
+ if exit then
+ local dx, dy, bound = set_cursive(start,nxt,tfmdata.factor,rlmode,exit,entry,characters[startchar],characters[nextchar])
+ if trace_cursive then
+ logprocess("%s: moving %s to %s cursive (%s,%s) using anchor %s and bound %s",pref(kind,lookupname),gref(startchar),gref(nextchar),dx,dy,anchor,bound)
+ end
+ done = true
+ break
+ end
+ end
+ end
+ end
+ end
+ else -- if trace_bugs then
+ -- logwarning("%s: char %s is missing in font",pref(kind,lookupname),gref(startchar))
+ fonts.register_message(currentfont,startchar,"no entry anchors")
+ end
+ break
+ end
+ end
+ end
+ return start, done
+ else
+ if trace_cursive and trace_details then
+ logprocess("%s, cursive %s is already done",pref(kind,lookupname),gref(start.char),alreadydone)
+ end
+ return start, false
+ end
+ end
+ return start, false
+end
+
+function chainprocs.gpos_single(start,stop,kind,chainname,currentcontext,cache,currentlookup,chainlookupname)
+ -- untested
+ local startchar = start.char
+ local subtables = currentlookup.subtables
+ local lookupname = subtables[1]
+ local kerns = cache.gpos_single[lookupname]
+ if kerns then
+ kerns = kerns[startchar]
+ if kerns then
+ local dx, dy = set_pair(start,tfmdata.factor,rlmode,kerns,characters[startchar])
+ if trace_kerns then
+ logprocess("%s: shifting single %s by (%s,%s)",cref(kind,chainname,chainlookupname),gref(startchar),dx,dy)
+ end
+ end
+ end
+ return start, false
+end
+
+-- when machines become faster i will make a shared function
+
+function chainprocs.gpos_pair(start,stop,kind,chainname,currentcontext,cache,currentlookup,chainlookupname)
+-- logwarning("%s: gpos_pair not yet supported",cref(kind,chainname,chainlookupname))
+ local snext = start.next
+ if snext then
+ local startchar = start.char
+ local subtables = currentlookup.subtables
+ local lookupname = subtables[1]
+ local kerns = cache.gpos_pair[lookupname]
+ if kerns then
+ kerns = kerns[startchar]
+ if kerns then
+ local prev, done = start, false
+ local factor = tfmdata.factor
+ while snext and snext.id == glyph and snext.subtype<256 and snext.font == currentfont do
+ local nextchar = snext.char
+local krn = kerns[nextchar]
+ if not krn and marks[nextchar] then
+ prev = snext
+ snext = snext.next
+ else
+--~ local krn = kerns[nextchar]
+ if not krn then
+ -- skip
+ elseif type(krn) == "table" then
+ if krn[1] == "pair" then
+ local a, b = krn[3], krn[4]
+ if a and #a > 0 then
+ local startchar = start.char
+ local x, y, w, h = set_pair(start,factor,rlmode,a,characters[startchar])
+ if trace_kerns then
+ logprocess("%s: shifting first of pair %s and %s by (%s,%s) and correction (%s,%s)",cref(kind,chainname,chainlookupname),gref(startchar),gref(nextchar),x,y,w,h)
+ end
+ end
+ if b and #b > 0 then
+ local startchar = start.char
+ local x, y, w, h = set_pair(snext,factor,rlmode,b,characters[nextchar])
+ if trace_kerns then
+ logprocess("%s: shifting second of pair %s and %s by (%s,%s) and correction (%s,%s)",cref(kind,chainname,chainlookupname),gref(startchar),gref(nextchar),x,y,w,h)
+ end
+ end
+ else
+ logs.report("%s: check this out (old kern stuff)",cref(kind,chainname,chainlookupname))
+ local a, b = krn[3], krn[7]
+ if a and a ~= 0 then
+ local k = set_kern(snext,factor,rlmode,a)
+ if trace_kerns then
+ logprocess("%s: inserting first kern %s between %s and %s",cref(kind,chainname,chainlookupname),k,gref(prev.char),gref(nextchar))
+ end
+ end
+ if b and b ~= 0 then
+ logwarning("%s: ignoring second kern xoff %s",cref(kind,chainname,chainlookupname),b*factor)
+ end
+ end
+ done = true
+ elseif krn ~= 0 then
+ local k = set_kern(snext,factor,rlmode,krn)
+ if trace_kerns then
+ logprocess("%s: inserting kern %s between %s and %s",cref(kind,chainname,chainlookupname),k,gref(prev.char),gref(nextchar))
+ end
+ done = true
+ end
+ break
+ end
+ end
+ return start, done
+ end
+ end
+ end
+ return start, false
+end
+
+-- what pointer to return, spec says stop
+-- to be discussed ... is bidi changer a space?
+-- elseif char == zwnj and sequence[n][32] then -- brrr
+
+-- somehow l or f is global
+-- we don't need to pass the currentcontext, saves a bit
+-- make a slow variant then can be activated but with more tracing
+
+local function normal_handle_contextchain(start,kind,chainname,contexts,sequence,cache)
+ -- local rule, lookuptype, sequence, f, l, lookups = ck[1], ck[2] ,ck[3], ck[4], ck[5], ck[6]
+ local flags, done = sequence.flags, false
+ local skipmark, skipligature, skipbase = flags[1], flags[2], flags[3]
+ local someskip = skipmark or skipligature or skipbase -- could be stored in flags for a fast test (hm, flags could be false !)
+ for k=1,#contexts do
+ local match, current, last = true, start, start
+ local ck = contexts[k]
+ local sequence = ck[3]
+ local s = #sequence
+ if s == 1 then
+ -- never happens
+ match = current.id == glyph and current.subtype<256 and current.font == currentfont and sequence[1][current.char]
+ else
+ -- todo: better space check (maybe check for glue)
+ local f, l = ck[4], ck[5]
+ if f == l then
+ -- already a hit
+ match = true
+ else
+ -- no need to test first hit (to be optimized)
+ local n = f + 1
+ last = last.next
+ -- we cannot optimize for n=2 because there can be disc nodes
+ -- if not someskip and n == l then
+ -- -- n=2 and no skips then faster loop
+ -- match = last and last.id == glyph and last.subtype<256 and last.font == currentfont and sequence[n][last.char]
+ -- else
+ while n <= l do
+ if last then
+ local id = last.id
+ if id == glyph then
+ if last.subtype<256 and last.font == currentfont then
+ local char = last.char
+ local ccd = descriptions[char]
+ if ccd then
+ local class = ccd.class
+ if class == skipmark or class == skipligature or class == skipbase then
+--~ if someskip and class == skipmark or class == skipligature or class == skipbase then
+ -- skip 'm
+ last = last.next
+ elseif sequence[n][char] then
+ if n < l then
+ last = last.next
+ end
+ n = n + 1
+ else
+ match = false break
+ end
+ else
+ match = false break
+ end
+ else
+ match = false break
+ end
+ elseif id == disc then -- what to do with kerns?
+ last = last.next
+ else
+ match = false break
+ end
+ else
+ match = false break
+ end
+ end
+ -- end
+ end
+ if match and f > 1 then
+ local prev = start.prev
+ if prev then
+ local n = f-1
+ while n >= 1 do
+ if prev then
+ local id = prev.id
+ if id == glyph then
+ if prev.subtype<256 and prev.font == currentfont then -- normal char
+ local char = prev.char
+ local ccd = descriptions[char]
+ if ccd then
+ local class = ccd.class
+ if class == skipmark or class == skipligature or class == skipbase then
+--~ if someskip and class == skipmark or class == skipligature or class == skipbase then
+ -- skip 'm
+ elseif sequence[n][char] then
+ n = n -1
+ else
+ match = false break
+ end
+ else
+ match = false break
+ end
+ else
+ match = false break
+ end
+ elseif id == disc then
+ -- skip 'm
+ elseif sequence[n][32] then
+ n = n -1
+ else
+ match = false break
+ end
+ prev = prev.prev
+ elseif sequence[n][32] then
+ n = n -1
+ else
+ match = false break
+ end
+ end
+ elseif f == 2 then
+ match = sequence[1][32]
+ else
+ for n=f-1,1 do
+ if not sequence[n][32] then
+ match = false break
+ end
+ end
+ end
+ end
+ if match and s > l then
+ local current = last.next
+ if current then
+ -- removed optimiziation for s-l == 1, we have to deal with marks anyway
+ local n = l + 1
+ while n <= s do
+ if current then
+ local id = current.id
+ if id == glyph then
+ if current.subtype<256 and current.font == currentfont then -- normal char
+ local char = current.char
+ local ccd = descriptions[char]
+ if ccd then
+ local class = ccd.class
+ if class == skipmark or class == skipligature or class == skipbase then
+--~ if someskip and class == skipmark or class == skipligature or class == skipbase then
+ -- skip 'm
+ elseif sequence[n][char] then
+ n = n + 1
+ else
+ match = false break
+ end
+ else
+ match = false break
+ end
+ else
+ match = false break
+ end
+ elseif id == disc then
+ -- skip 'm
+ elseif sequence[n][32] then -- brrr
+ n = n + 1
+ else
+ match = false break
+ end
+ current = current.next
+ elseif sequence[n][32] then
+ n = n + 1
+ else
+ match = false break
+ end
+ end
+ elseif s-l == 1 then
+ match = sequence[s][32]
+ else
+ for n=l+1,s do
+ if not sequence[n][32] then
+ match = false break
+ end
+ end
+ end
+ end
+ end
+ if match then
+ -- ck == currentcontext
+ if trace_contexts then
+ local rule, lookuptype, sequence, f, l = ck[1], ck[2] ,ck[3], ck[4], ck[5]
+ local char = start.char
+ if ck[9] then
+ logwarning("%s: rule %s matches at char %s for (%s,%s,%s) chars, lookuptype %s (%s=>%s)",cref(kind,chainname),rule,gref(char),f-1,l-f+1,s-l,lookuptype,ck[9],ck[10])
+ else
+ logwarning("%s: rule %s matches at char %s for (%s,%s,%s) chars, lookuptype %s",cref(kind,chainname),rule,gref(char),f-1,l-f+1,s-l,lookuptype)
+ end
+ end
+ local chainlookups = ck[6]
+ if chainlookups then
+ local nofchainlookups = #chainlookups
+ -- we can speed this up if needed
+ if nofchainlookups == 1 then
+ local chainlookupname = chainlookups[1]
+ local chainlookup = lookuptable[chainlookupname]
+ local cp = chainprocs[chainlookup.type]
+ if cp then
+ start, done = cp(start,last,kind,chainname,ck,cache,chainlookup,chainlookupname)
+ else
+ logprocess("%s: %s is not yet supported",cref(kind,chainname,chainlookupname),chainlookup.type)
+ end
+ else
+ -- actually this needs a more complex treatment for which we will use chainmores
+ local i = 1
+ repeat
+ local chainlookupname = chainlookups[i]
+ local chainlookup = lookuptable[chainlookupname]
+ local cp = chainmores[chainlookup.type]
+ if cp then
+ local ok, n
+ start, ok, n = cp(start,last,kind,chainname,ck,cache,chainlookup,chainlookupname,i)
+ -- messy since last can be changed !
+ if ok then
+ done = true
+ start = start.next
+ if n then
+ -- skip next one(s) if ligature
+ i = i + n - 1
+ end
+ end
+ else
+ logprocess("%s: multiple subchains for %s are not yet supported",cref(kind,chainname,chainlookupname),chainlookup.type)
+ end
+ i = i + 1
+ until i > nofchainlookups
+ end
+ else
+ local replacements = ck[7]
+ if replacements then
+ start, done = chainprocs.reversesub(start,last,kind,chainname,ck,cache,replacements)
+ else
+ done = true -- can be meant to be skipped
+ if trace_contexts then
+ logprocess("%s: skipping match",cref(kind,chainname))
+ end
+ end
+ end
+ end
+ end
+ return start, done
+end
+
+-- Because we want to keep this elsewhere (an because speed is less an issue) we
+-- pass the font id so that the verbose variant can access the relevant helper tables.
+
+local verbose_handle_contextchain = function(font,...)
+ logwarning("no verbose handler installed, reverting to 'normal'")
+ otf.setcontextchain()
+ return normal_handle_contextchain(...)
+end
+
+otf.chainhandlers = {
+ normal = normal_handle_contextchain,
+ verbose = verbose_handle_contextchain,
+}
+
+function otf.setcontextchain(method)
+ if not method or method == "normal" or not otf.chainhandlers[method] then
+ if handlers.contextchain then -- no need for a message while making the format
+ logwarning("installing normal contextchain handler")
+ end
+ handlers.contextchain = normal_handle_contextchain
+ else
+ logwarning("installing contextchain handler '%s'",method)
+ local handler = otf.chainhandlers[method]
+ handlers.contextchain = function(...)
+ return handler(currentfont,...) -- hm, get rid of ...
+ end
+ end
+ handlers.gsub_context = handlers.contextchain
+ handlers.gsub_contextchain = handlers.contextchain
+ handlers.gsub_reversecontextchain = handlers.contextchain
+ handlers.gpos_contextchain = handlers.contextchain
+ handlers.gpos_context = handlers.contextchain
+end
+
+otf.setcontextchain()
+
+local missing = { } -- we only report once
+
+local function logprocess(...)
+ if trace_steps then
+ registermessage(...)
+ end
+ logs.report("otf process",...)
+end
+local function logwarning(...)
+ logs.report("otf process",...)
+end
+
+local function report_missing_cache(typ,lookup)
+ local f = missing[currentfont] if not f then f = { } missing[currentfont] = f end
+ local t = f[typ] if not t then t = { } f[typ] = t end
+ if not t[lookup] then
+ t[lookup] = true
+ logwarning("missing cache for lookup %s of type %s in font %s (%s)",lookup,typ,currentfont,tfmdata.fullname)
+ end
+end
+
+local resolved = { } -- we only resolve a font,script,language pair once
+
+function fonts.methods.node.otf.features(head,font,attr)
+ if trace_steps then
+ checkstep(head)
+ end
+ tfmdata = fontdata[font]
+ local shared = tfmdata.shared
+ otfdata = shared.otfdata
+ local luatex = otfdata.luatex
+ descriptions = tfmdata.descriptions
+ characters = tfmdata.characters
+ indices = tfmdata.indices
+ unicodes = tfmdata.unicodes
+ marks = tfmdata.marks
+ anchorlookups = luatex.lookup_to_anchor
+ currentfont = font
+ rlmode = 0
+ local featuredata = otfdata.shared.featuredata -- can be made local to closure
+ local sequences = luatex.sequences
+ lookuptable = luatex.lookups
+ local done = false
+ local script, language, s_enabled, a_enabled, dyn
+ local attribute_driven = attr and attr ~= 0
+ if attribute_driven then
+ local features = context_setups[context_numbers[attr]] -- could be a direct list
+ dyn = context_merged[attr] or 0
+ language, script = features.language or "dflt", features.script or "dflt"
+ a_enabled = features -- shared.features -- can be made local to the resolver
+ if dyn == 2 or dyn == -2 then
+ -- font based
+ s_enabled = shared.features
+ end
+ else
+ language, script = tfmdata.language or "dflt", tfmdata.script or "dflt"
+ s_enabled = shared.features -- can be made local to the resolver
+ dyn = 0
+ end
+ -- we can save some runtime by caching feature tests
+ local res = resolved[font] if not res then res = { } resolved[font] = res end
+ local rs = res [script] if not rs then rs = { } res [script] = rs end
+ local rl = rs [language] if not rl then rl = { } rs [language] = rl end
+ local ra = rl [attr] if ra == nil then ra = { } rl [attr] = ra end -- attr can be false
+ -- sequences always > 1 so no need for optimization
+ for s=1,#sequences do
+ local success = false
+ local sequence = sequences[s]
+ local r = ra[s] -- cache
+ if r == nil then
+ --
+ -- this bit will move to font-ctx and become a function
+ ---
+ local chain = sequence.chain or 0
+ local features = sequence.features
+ if not features then
+ -- indirect lookup, part of chain (todo: make this a separate table)
+ r = false -- { false, false, chain }
+ else
+ local valid, attribute, kind, what = false, false
+ for k,v in next, features do
+ -- we can quit earlier but for the moment we want the tracing
+ local s_e = s_enabled and s_enabled[k]
+ local a_e = a_enabled and a_enabled[k]
+ if s_e or a_e then
+ local l = v[script] or v[wildcard]
+ if l then
+ -- not l[language] or l[default] or l[wildcard] because we want tracing
+ -- only first attribute match check, so we assume simple fina's
+ -- default can become a font feature itself
+ if l[language] then
+--~ valid, what = true, language
+ valid, what = s_e or a_e, language
+ -- elseif l[default] then
+ -- valid, what = true, default
+ elseif l[wildcard] then
+--~ valid, what = true, wildcard
+ valid, what = s_e or a_e, wildcard
+ end
+ if valid then
+ kind, attribute = k, special_attributes[k] or false
+ if a_e and dyn < 0 then
+ valid = false
+ end
+ if trace_applied then
+ local typ, action = match(sequence.type,"(.*)_(.*)")
+ logs.report("otf node mode",
+ "%s font: %03i, dynamic: %03i, kind: %s, lookup: %3i, script: %-4s, language: %-4s (%-4s), type: %s, action: %s, name: %s",
+ (valid and "+") or "-",font,attr or 0,kind,s,script,language,what,typ,action,sequence.name)
+ end
+ break
+ end
+ end
+ end
+ end
+ if valid then
+ r = { valid, attribute, chain, kind }
+ else
+ r = false -- { valid, attribute, chain, "generic" } -- false anyway, could be flag instead of table
+ end
+ end
+ ra[s] = r
+ end
+ featurevalue = r and r[1] -- todo: pass to function instead of using a global
+ if featurevalue then
+ local attribute, chain, typ, subtables = r[2], r[3], sequence.type, sequence.subtables
+ if chain < 0 then
+ -- this is a limited case, no special treatments like 'init' etc
+ local handler = handlers[typ]
+ local thecache = featuredata[typ] or { }
+ -- we need to get rid of this slide !
+ start = find_node_tail(head) -- slow (we can store tail because there's always a skip at the end): todo
+ while start do
+ local id = start.id
+ if id == glyph then
+--~ if start.subtype<256 and start.font == font and (not attr or has_attribute(start,0,attr)) then
+ if start.subtype<256 and start.font == font and has_attribute(start,0,attr) then
+ for i=1,#subtables do
+ local lookupname = subtables[i]
+ local lookupcache = thecache[lookupname]
+ if lookupcache then
+ local lookupmatch = lookupcache[start.char]
+ if lookupmatch then
+ start, success = handler(start,r[4],lookupname,lookupmatch,sequence,featuredata,i)
+ if success then
+ break
+ end
+ end
+ else
+ report_missing_cache(typ,lookupname)
+ end
+ end
+ if start then start = start.prev end
+ else
+ start = start.prev
+ end
+ else
+ start = start.prev
+ end
+ end
+ else
+ local handler = handlers[typ]
+ local ns = #subtables
+ local thecache = featuredata[typ] or { }
+ start = head -- local ?
+ rlmode = 0
+ if ns == 1 then
+ local lookupname = subtables[1]
+ local lookupcache = thecache[lookupname]
+ if not lookupcache then
+ report_missing_cache(typ,lookupname)
+ else
+ while start do
+ local id = start.id
+ if id == glyph then
+--~ if start.font == font and start.subtype<256 and (not attr or has_attribute(start,0,attr)) and (not attribute or has_attribute(start,state,attribute)) then
+ if start.font == font and start.subtype<256 and has_attribute(start,0,attr) and (not attribute or has_attribute(start,state,attribute)) then
+ local lookupmatch = lookupcache[start.char]
+ if lookupmatch then
+ -- sequence kan weg
+ local ok
+ start, ok = handler(start,r[4],lookupname,lookupmatch,sequence,featuredata,1)
+ if ok then
+ success = true
+ end
+ end
+ if start then start = start.next end
+ else
+ start = start.next
+ end
+ -- elseif id == glue then
+ -- if p[5] then -- chain
+ -- local pc = pp[32]
+ -- if pc then
+ -- start, ok = start, false -- p[1](start,kind,p[2],pc,p[3],p[4])
+ -- if ok then
+ -- done = true
+ -- end
+ -- if start then start = start.next end
+ -- else
+ -- start = start.next
+ -- end
+ -- else
+ -- start = start.next
+ -- end
+ elseif id == whatsit then
+ local subtype = start.subtype
+ if subtype == 7 then
+ local dir = start.dir
+ if dir == "+TRT" then
+ rlmode = -1
+ elseif dir == "+TLT" then
+ rlmode = 1
+ else
+ rlmode = 0
+ end
+ elseif subtype == 6 then
+ local dir = start.dir
+ if dir == "TRT" then
+ rlmode = -1
+ elseif dir == "TLT" then
+ rlmode = 1
+ else
+ rlmode = 0
+ end
+ end
+ start = start.next
+ else
+ start = start.next
+ end
+ end
+
+ end
+ else
+ while start do
+ local id = start.id
+ if id == glyph then
+--~ if start.subtype<256 and start.font == font and (not attr or has_attribute(start,0,attr)) and (not attribute or has_attribute(start,state,attribute)) then
+ if start.subtype<256 and start.font == font and has_attribute(start,0,attr) and (not attribute or has_attribute(start,state,attribute)) then
+ for i=1,ns do
+ local lookupname = subtables[i]
+ local lookupcache = thecache[lookupname]
+ if lookupcache then
+ local lookupmatch = lookupcache[start.char]
+ if lookupmatch then
+ -- we could move all code inline but that makes things even more unreadable
+ local ok
+ start, ok = handler(start,r[4],lookupname,lookupmatch,sequence,featuredata,i)
+ if ok then
+ success = true
+ break
+ end
+ end
+ else
+ report_missing_cache(typ,lookupname)
+ end
+ end
+ if start then start = start.next end
+ else
+ start = start.next
+ end
+ -- elseif id == glue then
+ -- if p[5] then -- chain
+ -- local pc = pp[32]
+ -- if pc then
+ -- start, ok = start, false -- p[1](start,kind,p[2],pc,p[3],p[4])
+ -- if ok then
+ -- done = true
+ -- end
+ -- if start then start = start.next end
+ -- else
+ -- start = start.next
+ -- end
+ -- else
+ -- start = start.next
+ -- end
+ elseif id == whatsit then
+ local subtype = start.subtype
+ if subtype == 7 then
+ local dir = start.dir
+ if dir == "+TRT" then
+ rlmode = -1
+ elseif dir == "+TLT" then
+ rlmode = 1
+ else
+ rlmode = 0
+ end
+ elseif subtype == 6 then
+ local dir = start.dir
+ if dir == "TRT" then
+ rlmode = -1
+ elseif dir == "TLT" then
+ rlmode = 1
+ else
+ rlmode = 0
+ end
+ end
+ start = start.next
+ else
+ start = start.next
+ end
+ end
+ end
+ end
+ if success then
+ done = true
+ end
+ if trace_steps then -- ?
+ registerstep(head)
+ end
+ end
+ end
+ return head, done
+end
+
+otf.features.prepare = { }
+
+-- we used to share code in the following functions but that costs a lot of
+-- memory due to extensive calls to functions (easily hundreds of thousands per
+-- document)
+
+local function split(replacement,original,cache,unicodes)
+ -- we can cache this too, but not the same
+ local o, t, n = { }, { }, 0
+ for s in gmatch(original,"[^ ]+") do
+ local us = unicodes[s]
+ if type(us) == "number" then
+ o[#o+1] = us
+ else
+ o[#o+1] = us[1]
+ end
+ end
+ for s in gmatch(replacement,"[^ ]+") do
+ n = n + 1
+ local us = unicodes[s]
+ if type(us) == "number" then
+ t[o[n]] = us
+ else
+ t[o[n]] = us[1]
+ end
+ end
+ return t
+end
+
+local function uncover(covers,result,cache,unicodes)
+ -- lpeg hardly faster (.005 sec on mk)
+ for n=1,#covers do
+ local c = covers[n]
+ local cc = cache[c]
+ if not cc then
+ local t = { }
+ for s in gmatch(c,"[^ ]+") do
+ local us = unicodes[s]
+ if type(us) == "number" then
+ t[us] = true
+ else
+ for i=1,#us do
+ t[us[i]] = true
+ end
+ end
+ end
+ cache[c] = t
+ result[#result+1] = t
+ else
+ result[#result+1] = cc
+ end
+ end
+end
+
+local function prepare_lookups(tfmdata)
+ local otfdata = tfmdata.shared.otfdata
+ local featuredata = otfdata.shared.featuredata
+ local anchor_to_lookup = otfdata.luatex.anchor_to_lookup
+ local lookup_to_anchor = otfdata.luatex.lookup_to_anchor
+ --
+ local multiple = featuredata.gsub_multiple
+ local alternate = featuredata.gsub_alternate
+ local single = featuredata.gsub_single
+ local ligature = featuredata.gsub_ligature
+ local pair = featuredata.gpos_pair
+ local position = featuredata.gpos_single
+ local kerns = featuredata.gpos_pair
+ local mark = featuredata.gpos_mark2mark
+ local cursive = featuredata.gpos_cursive
+ --
+ local unicodes = tfmdata.unicodes -- names to unicodes
+ local indices = tfmdata.indices
+ local descriptions = tfmdata.descriptions
+ --
+ -- we can change the otf table after loading but then we need to adapt base mode
+ -- as well (no big deal)
+ --
+ for unicode, glyph in next, descriptions do
+ local lookups = glyph.lookups
+ if lookups then
+ for lookup, whatever in next, lookups do
+ for i=1,#whatever do -- normaly one
+ local p = whatever[i]
+ local what = p[1]
+ if what == 'substitution' then
+ local old, new = unicode, unicodes[p[2]]
+ if type(new) == "table" then
+ new = new[1]
+ end
+ local s = single[lookup]
+ if not s then s = { } single[lookup] = s end
+ s[old] = new
+--~ if trace_lookups then
+--~ logs.report("define otf","lookup %s: substitution %s => %s",lookup,old,new)
+--~ end
+ break
+ elseif what == 'multiple' then
+ local old, new = unicode, { }
+ local m = multiple[lookup]
+ if not m then m = { } multiple[lookup] = m end
+ m[old] = new
+ for pc in gmatch(p[2],"[^ ]+") do
+ local upc = unicodes[pc]
+ if type(upc) == "number" then
+ new[#new+1] = upc
+ else
+ new[#new+1] = upc[1]
+ end
+ end
+--~ if trace_lookups then
+--~ logs.report("define otf","lookup %s: multiple %s => %s",lookup,old,concat(new," "))
+--~ end
+ break
+ elseif what == 'alternate' then
+ local old, new = unicode, { }
+ local a = alternate[lookup]
+ if not a then a = { } alternate[lookup] = a end
+ a[old] = new
+ for pc in gmatch(p[2],"[^ ]+") do
+ local upc = unicodes[pc]
+ if type(upc) == "number" then
+ new[#new+1] = upc
+ else
+ new[#new+1] = upc[1]
+ end
+ end
+--~ if trace_lookups then
+--~ logs.report("define otf","lookup %s: alternate %s => %s",lookup,old,concat(new,"|"))
+--~ end
+ break
+ elseif what == "ligature" then
+--~ if trace_lookups then
+--~ logs.report("define otf","lookup %s: ligature %s => %s",lookup,p[2],glyph.name)
+--~ end
+ local first = true
+ local t = ligature[lookup]
+ if not t then t = { } ligature[lookup] = t end
+ for s in gmatch(p[2],"[^ ]+") do
+ if first then
+ local u = unicodes[s]
+ if not u then
+ logs.report("define otf","lookup %s: ligature %s => %s ignored due to invalid unicode",lookup,p[2],glyph.name)
+ break
+ elseif type(u) == "number" then
+ if not t[u] then
+ t[u] = { { } }
+ end
+ t = t[u]
+ else
+ local tt = t
+ local tu
+ for i=1,#u do
+ local u = u[i]
+ if i==1 then
+ if not t[u] then
+ t[u] = { { } }
+ end
+ tu = t[u]
+ t = tu
+ else
+ if not t[u] then
+ tt[u] = tu
+ end
+ end
+ end
+ end
+ first = false
+ else
+ s = unicodes[s]
+ local t1 = t[1]
+ if not t1[s] then
+ t1[s] = { { } }
+ end
+ t = t1[s]
+ end
+ end
+ t[2] = unicode
+ elseif what == 'position' then
+ -- not used
+ local s = position[lookup]
+ if not s then s = { } position[lookup] = s end
+ s[unicode] = p[2] -- direct pointer to kern spec
+ elseif what == 'pair' then
+ local s = pair[lookup]
+ if not s then s = { } pair[lookup] = s end
+ local others = s[unicode]
+ if not others then others = { } s[unicode] = others end
+ -- todo: fast check for space
+ local two = p[2]
+ local upc = unicodes[two]
+ if not upc then
+ for pc in gmatch(two,"[^ ]+") do
+ local upc = unicodes[pc]
+ if type(upc) == "number" then
+ others[upc] = p -- direct pointer to main table
+ else
+ for i=1,#upc do
+ others[upc[i]] = p -- direct pointer to main table
+ end
+ end
+ end
+ elseif type(upc) == "number" then
+ others[upc] = p -- direct pointer to main table
+ else
+ for i=1,#upc do
+ others[upc[i]] = p -- direct pointer to main table
+ end
+ end
+--~ if trace_lookups then
+--~ logs.report("define otf","lookup %s: pair for U+%04X",lookup,unicode)
+--~ end
+ end
+ end
+ end
+ end
+ local list = glyph.mykerns
+ if list then
+ for lookup, krn in next, list do
+ local k = kerns[lookup]
+ if not k then k = { } kerns[lookup] = k end
+ k[unicode] = krn -- ref to glyph, saves lookup
+--~ if trace_lookups then
+--~ logs.report("define otf","lookup %s: kern for U+%04X",lookup,unicode)
+--~ end
+ end
+ end
+ local oanchor = glyph.anchors
+ if oanchor then
+ for typ, anchors in next, oanchor do -- types
+ if typ == "mark" then
+ for name, anchor in next, anchors do
+ local lookups = anchor_to_lookup[name]
+ if lookups then
+ for lookup, _ in next, lookups do
+ local f = mark[lookup]
+ if not f then f = { } mark[lookup] = f end
+ f[unicode] = anchors -- ref to glyph, saves lookup
+--~ if trace_lookups then
+--~ logs.report("define otf","lookup %s: mark anchor %s for U+%04X",lookup,name,unicode)
+--~ end
+ end
+ end
+ end
+ elseif typ == "cexit" then -- or entry?
+ for name, anchor in next, anchors do
+ local lookups = anchor_to_lookup[name]
+ if lookups then
+ for lookup, _ in next, lookups do
+ local f = cursive[lookup]
+ if not f then f = { } cursive[lookup] = f end
+ f[unicode] = anchors -- ref to glyph, saves lookup
+--~ if trace_lookups then
+--~ logs.report("define otf","lookup %s: exit anchor %s for U+%04X",lookup,name,unicode)
+--~ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+end
+
+-- local cache = { }
+luatex = luatex or {} -- this has to change ... we need a better one
+
+function prepare_contextchains(tfmdata)
+ local otfdata = tfmdata.shared.otfdata
+ local lookups = otfdata.lookups
+ if lookups then
+ local featuredata = otfdata.shared.featuredata
+ local contextchain = featuredata.gsub_contextchain -- shared with gpos
+ local reversecontextchain = featuredata.gsub_reversecontextchain -- shared with gpos
+ local characters = tfmdata.characters
+ local unicodes = tfmdata.unicodes
+ local indices = tfmdata.indices
+ local cache = luatex.covers
+ if not cache then
+ cache = { }
+ luatex.covers = cache
+ end
+ --
+ for lookupname, lookupdata in next, otfdata.lookups do
+ local lookuptype = lookupdata.type
+ if not lookuptype then
+ logs.report("otf process","missing lookuptype for %s",lookupname)
+ else
+ local rules = lookupdata.rules
+ if rules then
+ local fmt = lookupdata.format
+ -- contextchain[lookupname][unicode]
+ if fmt == "coverage" then
+ if lookuptype ~= "chainsub" and lookuptype ~= "chainpos" then
+ logs.report("otf process","unsupported coverage %s for %s",lookuptype,lookupname)
+ else
+ local contexts = contextchain[lookupname]
+ if not contexts then
+ contexts = { }
+ contextchain[lookupname] = contexts
+ end
+ local t = { }
+ for nofrules=1,#rules do -- does #rules>1 happen often?
+ local rule = rules[nofrules]
+ local coverage = rule.coverage
+ if coverage and coverage.current then
+ local current, before, after, sequence = coverage.current, coverage.before, coverage.after, { }
+ if before then
+ uncover(before,sequence,cache,unicodes)
+ end
+ local start = #sequence + 1
+ uncover(current,sequence,cache,unicodes)
+ local stop = #sequence
+ if after then
+ uncover(after,sequence,cache,unicodes)
+ end
+ if sequence[1] then
+ t[#t+1] = { nofrules, lookuptype, sequence, start, stop, rule.lookups }
+ for unic, _ in next, sequence[start] do
+ local cu = contexts[unic]
+ if not cu then
+ contexts[unic] = t
+ end
+ end
+ end
+ end
+ end
+ end
+ elseif fmt == "reversecoverage" then
+ if lookuptype ~= "reversesub" then
+ logs.report("otf process","unsupported reverse coverage %s for %s",lookuptype,lookupname)
+ else
+ local contexts = reversecontextchain[lookupname]
+ if not contexts then
+ contexts = { }
+ reversecontextchain[lookupname] = contexts
+ end
+ local t = { }
+ for nofrules=1,#rules do
+ local rule = rules[nofrules]
+ local reversecoverage = rule.reversecoverage
+ if reversecoverage and reversecoverage.current then
+ local current, before, after, replacements, sequence = reversecoverage.current, reversecoverage.before, reversecoverage.after, reversecoverage.replacements, { }
+ if before then
+ uncover(before,sequence,cache,unicodes)
+ end
+ local start = #sequence + 1
+ uncover(current,sequence,cache,unicodes)
+ local stop = #sequence
+ if after then
+ uncover(after,sequence,cache,unicodes)
+ end
+ if replacements then
+ replacements = split(replacements,current[1],cache,unicodes)
+ end
+ if sequence[1] then
+ -- this is different from normal coverage, we assume only replacements
+ t[#t+1] = { nofrules, lookuptype, sequence, start, stop, rule.lookups, replacements }
+ for unic, _ in next, sequence[start] do
+ local cu = contexts[unic]
+ if not cu then
+ contexts[unic] = t
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+end
+
+function fonts.initializers.node.otf.features(tfmdata,value)
+ if true then -- value then
+ if not tfmdata.shared.otfdata.shared.initialized then
+ local t = trace_preparing and os.clock()
+ local otfdata = tfmdata.shared.otfdata
+ local featuredata = otfdata.shared.featuredata
+ -- caches
+ featuredata.gsub_multiple = { }
+ featuredata.gsub_alternate = { }
+ featuredata.gsub_single = { }
+ featuredata.gsub_ligature = { }
+ featuredata.gsub_contextchain = { }
+ featuredata.gsub_reversecontextchain = { }
+ featuredata.gpos_pair = { }
+ featuredata.gpos_single = { }
+ featuredata.gpos_mark2base = { }
+ featuredata.gpos_mark2ligature = featuredata.gpos_mark2base
+ featuredata.gpos_mark2mark = featuredata.gpos_mark2base
+ featuredata.gpos_cursive = { }
+ featuredata.gpos_contextchain = featuredata.gsub_contextchain
+ featuredata.gpos_reversecontextchain = featuredata.gsub_reversecontextchain
+ --
+ prepare_contextchains(tfmdata)
+ prepare_lookups(tfmdata)
+ otfdata.shared.initialized = true
+ if trace_preparing then
+ logs.report("otf process","preparation time is %0.3f seconds for %s",os.clock()-t,tfmdata.fullname or "?")
+ end
+ end
+ end
+end
+
+end -- closure
+
+do -- begin closure to overcome local limits and interference
+
+if not modules then modules = { } end modules ['font-ota'] = {
+ version = 1.001,
+ comment = "companion to font-otf.lua (analysing)",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- this might become scrp-*.lua
+
+local type, tostring, match, format, concat = type, tostring, string.match, string.format, table.concat
+
+if not trackers then trackers = { register = function() end } end
+
+local trace_analyzing = false trackers.register("otf.analyzing", function(v) trace_analyzing = v end)
+local trace_cjk = false trackers.register("cjk.injections", function(v) trace_cjk = v end)
+
+trackers.register("cjk.analyzing","otf.analyzing")
+
+fonts = fonts or { }
+fonts.analyzers = fonts.analyzers or { }
+fonts.analyzers.initializers = fonts.analyzers.initializers or { node = { otf = { } } }
+fonts.analyzers.methods = fonts.analyzers.methods or { node = { otf = { } } }
+
+local otf = fonts.otf
+local tfm = fonts.tfm
+
+local initializers = fonts.analyzers.initializers
+local methods = fonts.analyzers.methods
+
+local glyph = node.id('glyph')
+local glue = node.id('glue')
+local penalty = node.id('penalty')
+
+local set_attribute = node.set_attribute
+local has_attribute = node.has_attribute
+local traverse_id = node.traverse_id
+local delete_node = nodes.delete
+local replace_node = nodes.replace
+local insert_node_after = node.insert_after
+local insert_node_before = node.insert_before
+local traverse_node_list = node.traverse
+
+local fontdata = fonts.ids
+local state = attributes.private('state')
+
+local fcs = (fonts.color and fonts.color.set) or function() end
+local fcr = (fonts.color and fonts.color.reset) or function() end
+
+local a_to_script = otf.a_to_script
+local a_to_language = otf.a_to_language
+
+-- in the future we will use language/script attributes instead of the
+-- font related value, but then we also need dynamic features which is
+-- somewhat slower; and .. we need a chain of them
+
+
+function fonts.initializers.node.otf.analyze(tfmdata,value,attr)
+ if attr and attr > 0 then
+ script, language = a_to_script[attr], a_to_language[attr]
+ else
+ script, language = tfmdata.script, tfmdata.language
+ end
+ local action = initializers[script]
+ if action then
+ if type(action) == "function" then
+ return action(tfmdata,value)
+ else
+ local action = action[language]
+ if action then
+ return action(tfmdata,value)
+ end
+ end
+ end
+ return nil
+end
+
+function fonts.methods.node.otf.analyze(head,font,attr)
+ local tfmdata = fontdata[font]
+ local script, language
+ if attr and attr > 0 then
+ script, language = a_to_script[attr], a_to_language[attr]
+ else
+ script, language = tfmdata.script, tfmdata.language
+ end
+ local action = methods[script]
+ if action then
+ if type(action) == "function" then
+ return action(head,font,attr)
+ else
+ action = action[language]
+ if action then
+ return action(head,font,attr)
+ end
+ end
+ end
+ return head, false
+end
+
+otf.features.register("analyze",true) -- we always analyze
+table.insert(fonts.triggers,"analyze") -- we need a proper function for doing this
+
+-- latin
+
+fonts.analyzers.methods.latn = fonts.analyzers.aux.setstate
+
+-- this info eventually will go into char-def
+
+local zwnj = 0x200C
+local zwj = 0x200D
+
+local isol = {
+ [0x0600] = true, [0x0601] = true, [0x0602] = true, [0x0603] = true,
+ [0x0608] = true, [0x060B] = true, [0x0621] = true, [0x0674] = true,
+ [0x06DD] = true, [zwnj] = true,
+}
+
+local isol_fina = {
+ [0x0622] = true, [0x0623] = true, [0x0624] = true, [0x0625] = true,
+ [0x0627] = true, [0x0629] = true, [0x062F] = true, [0x0630] = true,
+ [0x0631] = true, [0x0632] = true, [0x0648] = true, [0x0671] = true,
+ [0x0672] = true, [0x0673] = true, [0x0675] = true, [0x0676] = true,
+ [0x0677] = true, [0x0688] = true, [0x0689] = true, [0x068A] = true,
+ [0x068B] = true, [0x068C] = true, [0x068D] = true, [0x068E] = true,
+ [0x068F] = true, [0x0690] = true, [0x0691] = true, [0x0692] = true,
+ [0x0693] = true, [0x0694] = true, [0x0695] = true, [0x0696] = true,
+ [0x0697] = true, [0x0698] = true, [0x0699] = true, [0x06C0] = true,
+ [0x06C3] = true, [0x06C4] = true, [0x06C5] = true, [0x06C6] = true,
+ [0x06C7] = true, [0x06C8] = true, [0x06C9] = true, [0x06CA] = true,
+ [0x06CB] = true, [0x06CD] = true, [0x06CF] = true, [0x06D2] = true,
+ [0x06D3] = true, [0x06D5] = true, [0x06EE] = true, [0x06EF] = true,
+ [0x0759] = true, [0x075A] = true, [0x075B] = true, [0x076B] = true,
+ [0x076C] = true, [0x0771] = true, [0x0773] = true, [0x0774] = true,
+ [0x0778] = true, [0x0779] = true,
+}
+
+local isol_fina_medi_init = {
+ [0x0626] = true, [0x0628] = true, [0x062A] = true, [0x062B] = true,
+ [0x062C] = true, [0x062D] = true, [0x062E] = true, [0x0633] = true,
+ [0x0634] = true, [0x0635] = true, [0x0636] = true, [0x0637] = true,
+ [0x0638] = true, [0x0639] = true, [0x063A] = true, [0x063B] = true,
+ [0x063C] = true, [0x063D] = true, [0x063E] = true, [0x063F] = true,
+ [0x0640] = true, [0x0641] = true, [0x0642] = true, [0x0643] = true,
+ [0x0644] = true, [0x0645] = true, [0x0646] = true, [0x0647] = true,
+ [0x0649] = true, [0x064A] = true, [0x066E] = true, [0x066F] = true,
+ [0x0678] = true, [0x0679] = true, [0x067A] = true, [0x067B] = true,
+ [0x067C] = true, [0x067D] = true, [0x067E] = true, [0x067F] = true,
+ [0x0680] = true, [0x0681] = true, [0x0682] = true, [0x0683] = true,
+ [0x0684] = true, [0x0685] = true, [0x0686] = true, [0x0687] = true,
+ [0x069A] = true, [0x069B] = true, [0x069C] = true, [0x069D] = true,
+ [0x069E] = true, [0x069F] = true, [0x06A0] = true, [0x06A1] = true,
+ [0x06A2] = true, [0x06A3] = true, [0x06A4] = true, [0x06A5] = true,
+ [0x06A6] = true, [0x06A7] = true, [0x06A8] = true, [0x06A9] = true,
+ [0x06AA] = true, [0x06AB] = true, [0x06AC] = true, [0x06AD] = true,
+ [0x06AE] = true, [0x06AF] = true, [0x06B0] = true, [0x06B1] = true,
+ [0x06B2] = true, [0x06B3] = true, [0x06B4] = true, [0x06B5] = true,
+ [0x06B6] = true, [0x06B7] = true, [0x06B8] = true, [0x06B9] = true,
+ [0x06BA] = true, [0x06BB] = true, [0x06BC] = true, [0x06BD] = true,
+ [0x06BE] = true, [0x06BF] = true, [0x06C1] = true, [0x06C2] = true,
+ [0x06CC] = true, [0x06CE] = true, [0x06D0] = true, [0x06D1] = true,
+ [0x06FA] = true, [0x06FB] = true, [0x06FC] = true, [0x06FF] = true,
+ [0x0750] = true, [0x0751] = true, [0x0752] = true, [0x0753] = true,
+ [0x0754] = true, [0x0755] = true, [0x0756] = true, [0x0757] = true,
+ [0x0758] = true, [0x075C] = true, [0x075D] = true, [0x075E] = true,
+ [0x075F] = true, [0x0760] = true, [0x0761] = true, [0x0762] = true,
+ [0x0763] = true, [0x0764] = true, [0x0765] = true, [0x0766] = true,
+ [0x0767] = true, [0x0768] = true, [0x0769] = true, [0x076A] = true,
+ [0x076D] = true, [0x076E] = true, [0x076F] = true, [0x0770] = true,
+ [0x0772] = true, [0x0775] = true, [0x0776] = true, [0x0777] = true,
+ [0x077A] = true, [0x077B] = true, [0x077C] = true, [0x077D] = true,
+ [0x077E] = true, [0x077F] = true, [zwj] = true,
+}
+
+local arab_warned = { }
+
+-- todo: gref
+
+local function warning(current,what)
+ local char = current.char
+ if not arab_warned[char] then
+ log.report("analyze","arab: character %s (U+%04X) has no %s class", char, char, what)
+ arab_warned[char] = true
+ end
+end
+
+function fonts.analyzers.methods.nocolor(head,font,attr)
+ for n in traverse_node_list(head,glyph) do
+ if not font or n.font == font then
+ fcr(n)
+ end
+ end
+ return head, true
+end
+
+otf.remove_joiners = false -- true -- for idris who want it as option
+
+local function finish(first,last)
+ if last then
+ if first == last then
+ local fc = first.char
+ if isol_fina_medi_init[fc] or isol_fina[fc] then
+ set_attribute(first,state,4) -- isol
+ if trace_analyzing then fcs(first,"font:isol") end
+ else
+ warning(first,"isol")
+ set_attribute(first,state,0) -- error
+ if trace_analyzing then fcr(first) end
+ end
+ else
+ local lc = last.char
+ if isol_fina_medi_init[lc] or isol_fina[lc] then -- why isol here ?
+ -- if laststate == 1 or laststate == 2 or laststate == 4 then
+ set_attribute(last,state,3) -- fina
+ if trace_analyzing then fcs(last,"font:fina") end
+ else
+ warning(last,"fina")
+ set_attribute(last,state,0) -- error
+ if trace_analyzing then fcr(last) end
+ end
+ end
+ first, last = nil, nil
+ elseif first then
+ -- first and last are either both set so we never com here
+ local fc = first.char
+ if isol_fina_medi_init[fc] or isol_fina[fc] then
+ set_attribute(first,state,4) -- isol
+ if trace_analyzing then fcs(first,"font:isol") end
+ else
+ warning(first,"isol")
+ set_attribute(first,state,0) -- error
+ if trace_analyzing then fcr(first) end
+ end
+ first = nil
+ end
+ return first, last
+end
+
+function fonts.analyzers.methods.arab(head,font,attr) -- maybe make a special version with no trace
+ local tfmdata = fontdata[font]
+ local marks = tfmdata.marks
+ local first, last, current, done = nil, nil, head, false
+ local joiners, nonjoiners
+ local removejoiners = tfmdata.remove_joiners -- or otf.remove_joiners
+ if removejoiners then
+ joiners, nonjoiners = { }, { }
+ end
+ while current do
+ if current.id == glyph and current.subtype<256 and current.font == font and not has_attribute(current,state) then
+ done = true
+ local char = current.char
+ if removejoiners then
+ if char == zwj then
+ joiners[#joiners+1] = current
+ elseif char == zwnj then
+ nonjoiners[#nonjoiners+1] = current
+ end
+ end
+ if marks[char] then
+ set_attribute(current,state,5) -- mark
+ if trace_analyzing then fcs(current,"font:mark") end
+ elseif isol[char] then -- can be zwj or zwnj too
+ first, last = finish(first,last)
+ set_attribute(current,state,4) -- isol
+ if trace_analyzing then fcs(current,"font:isol") end
+ first, last = nil, nil
+ elseif not first then
+ if isol_fina_medi_init[char] then
+ set_attribute(current,state,1) -- init
+ if trace_analyzing then fcs(current,"font:init") end
+ first, last = first or current, current
+ elseif isol_fina[char] then
+ set_attribute(current,state,4) -- isol
+ if trace_analyzing then fcs(current,"font:isol") end
+ first, last = nil, nil
+ else -- no arab
+ first, last = finish(first,last)
+ end
+ elseif isol_fina_medi_init[char] then
+ first, last = first or current, current
+ set_attribute(current,state,2) -- medi
+ if trace_analyzing then fcs(current,"font:medi") end
+ elseif isol_fina[char] then
+ if not has_attribute(last,state,1) then
+ -- tricky, we need to check what last may be !
+ set_attribute(last,state,2) -- medi
+ if trace_analyzing then fcs(last,"font:medi") end
+ end
+ set_attribute(current,state,3) -- fina
+ if trace_analyzing then fcs(current,"font:fina") end
+ first, last = nil, nil
+ elseif char >= 0x0600 and char <= 0x06FF then
+ if trace_analyzing then fcs(current,"font:rest") end
+ first, last = finish(first,last)
+ else --no
+ first, last = finish(first,last)
+ end
+ else
+ first, last = finish(first,last)
+ end
+ current = current.next
+ end
+ first, last = finish(first,last)
+ if removejoiners then
+ for i=1,#joiners do
+ head = delete_node(head,joiners[i])
+ end
+ for i=1,#nonjoiners do
+ head = replace_node(head,nonjoiners[i],nodes.glue(0)) -- or maybe a kern
+ end
+ end
+ return head, done
+end
+
+table.insert(fonts.manipulators,"joiners")
+
+function fonts.initializers.node.otf.joiners(tfmdata,value)
+ if value == "strip" then
+ tfmdata.remove_joiners = true
+ end
+end
+
+end -- closure
+
+do -- begin closure to overcome local limits and interference
+
+if not modules then modules = { } end modules ['font-otc'] = {
+ version = 1.001,
+ comment = "companion to font-otf.lua (context)",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local format, insert = string.format, table.insert
+local type, next = type, next
+
+local ctxcatcodes = tex.ctxcatcodes
+
+-- we assume that the other otf stuff is loaded already
+
+local trace_loading = false trackers.register("otf.loading", function(v) trace_loading = v end)
+
+local otf = fonts.otf
+local tfm = fonts.tfm
+
+-- instead of "script = "DFLT", langs = { 'dflt' }" we now use wildcards (we used to
+-- have always); some day we can write a "force always when true" trick for other
+-- features as well
+
+local extra_lists = {
+ tlig = {
+ {
+ endash = "hyphen hyphen",
+ emdash = "hyphen hyphen hyphen",
+ -- quotedblleft = "quoteleft quoteleft",
+ -- quotedblright = "quoteright quoteright",
+ -- quotedblleft = "grave grave",
+ -- quotedblright = "quotesingle quotesingle",
+ -- quotedblbase = "comma comma",
+ },
+ },
+ trep = {
+ {
+ -- [0x0022] = 0x201D,
+ [0x0027] = 0x2019,
+ -- [0x0060] = 0x2018,
+ },
+ },
+ anum = {
+ { -- arabic
+ [0x0030] = 0x0660,
+ [0x0031] = 0x0661,
+ [0x0032] = 0x0662,
+ [0x0033] = 0x0663,
+ [0x0034] = 0x0664,
+ [0x0035] = 0x0665,
+ [0x0036] = 0x0666,
+ [0x0037] = 0x0667,
+ [0x0038] = 0x0668,
+ [0x0039] = 0x0669,
+ },
+ { -- persian
+ [0x0030] = 0x06F0,
+ [0x0031] = 0x06F1,
+ [0x0032] = 0x06F2,
+ [0x0033] = 0x06F3,
+ [0x0034] = 0x06F4,
+ [0x0035] = 0x06F5,
+ [0x0036] = 0x06F6,
+ [0x0037] = 0x06F7,
+ [0x0038] = 0x06F8,
+ [0x0039] = 0x06F9,
+ },
+ },
+}
+
+local extra_features = { -- maybe just 1..n so that we prescribe order
+ tlig = {
+ {
+ features = { { scripts = { { script = "*", langs = { "*" }, } }, tag = "tlig", comment = "added bij mkiv" }, },
+ name = "ctx_tlig_1",
+ subtables = { { name = "ctx_tlig_1_s" } },
+ type = "gsub_ligature",
+ flags = { },
+ },
+ },
+ trep = {
+ {
+ features = { { scripts = { { script = "*", langs = { "*" }, } }, tag = "trep", comment = "added bij mkiv" }, },
+ name = "ctx_trep_1",
+ subtables = { { name = "ctx_trep_1_s" } },
+ type = "gsub_single",
+ flags = { },
+ },
+ },
+ anum = {
+ {
+ features = { { scripts = { { script = "arab", langs = { "dflt", "FAR" }, } }, tag = "anum", comment = "added bij mkiv" }, },
+ name = "ctx_anum_1",
+ subtables = { { name = "ctx_anum_1_s" } },
+ type = "gsub_single",
+ flags = { },
+ },
+ {
+ features = { { scripts = { { script = "arab", langs = { "URD" }, } }, tag = "anum", comment = "added bij mkiv" }, },
+ name = "ctx_anum_2",
+ subtables = { { name = "ctx_anum_2_s" } },
+ type = "gsub_single",
+ flags = { },
+ },
+ },
+}
+
+fonts.otf.enhancers["add some missing characters"] = function(data,filename)
+ -- todo
+end
+
+fonts.otf.enhancers["enrich with features"] = function(data,filename)
+ -- could be done elsewhere (true can be #)
+ local used = { }
+ for i=1,#otf.glists do
+ local g = data[otf.glists[i]]
+ if g then
+ for i=1,#g do
+ local f = g[i].features
+ if f then
+ for i=1,#f do
+ local t = f[i].tag
+ if t then used[t] = true end
+ end
+ end
+ end
+ end
+ end
+ --
+ local glyphs = data.glyphs
+ local indices = data.map.map
+ data.gsub = data.gsub or { }
+ for kind, specifications in next, extra_features do
+ if not used[kind] then
+ local done = 0
+ for s=1,#specifications do
+ local added = false
+ local specification = specifications[s]
+ local list = extra_lists[kind][s]
+ local name = specification.name .. "_s"
+ if specification.type == "gsub_ligature" then
+ for unicode, index in next, indices do
+ local glyph = glyphs[index]
+ local ligature = list[glyph.name]
+ if ligature then
+ local o = glyph.lookups or { }
+ -- o[name] = { "ligature", ligature, glyph.name }
+ o[name] = {
+ {
+ ["type"] = "ligature",
+ ["specification"] = {
+ char = glyph.name,
+ components = ligature,
+ }
+ }
+ }
+ glyph.lookups, done, added = o, done+1, true
+ end
+ end
+ elseif specification.type == "gsub_single" then
+ for unicode, index in next, indices do
+ local glyph = glyphs[index]
+ local r = list[unicode]
+ if r then
+ local replacement = indices[r]
+ if replacement and glyphs[replacement] then
+ local o = glyph.lookups or { }
+ -- o[name] = { { "substitution", glyphs[replacement].name } }
+ o[name] = {
+ {
+ ["type"] = "substitution",
+ ["specification"] = {
+ variant = glyphs[replacement].name,
+ }
+ }
+ }
+ glyph.lookups, done, added = o, done+1, true
+ end
+ end
+ end
+ end
+ if added then
+ insert(data.gsub,s,table.fastcopy(specification)) -- right order
+ end
+ end
+ if done > 0 then
+ if trace_loading then
+ logs.report("load otf","enhance: registering %s feature (%s glyphs affected)",kind,done)
+ end
+ end
+ end
+ end
+end
+
+otf.tables.features['tlig'] = 'TeX Ligatures'
+otf.tables.features['trep'] = 'TeX Replacements'
+otf.tables.features['anum'] = 'Arabic Digits'
+
+otf.features.register_base_substitution('tlig')
+otf.features.register_base_substitution('trep')
+otf.features.register_base_substitution('anum')
+
+-- the functionality is defined elsewhere
+
+fonts.initializers.base.otf.equaldigits = fonts.initializers.common.equaldigits
+fonts.initializers.node.otf.equaldigits = fonts.initializers.common.equaldigits
+
+fonts.initializers.base.otf.lineheight = fonts.initializers.common.lineheight
+fonts.initializers.node.otf.lineheight = fonts.initializers.common.lineheight
+
+fonts.initializers.base.otf.compose = fonts.initializers.common.compose
+fonts.initializers.node.otf.compose = fonts.initializers.common.compose
+
+-- bonus function
+
+function otf.name_to_slot(name) -- todo: afm en tfm
+ local tfmdata = fonts.ids[font.current()]
+ if tfmdata and tfmdata.shared then
+ local otfdata = tfmdata.shared.otfdata
+ local unicode = otfdata.luatex.unicodes[name]
+ if type(unicode) == "number" then
+ return unicode
+ else
+ return unicode[1]
+ end
+ end
+ return nil
+end
+
+function otf.char(n) -- todo: afm en tfm
+ if type(n) == "string" then
+ n = otf.name_to_slot(n)
+ end
+ if n then
+ tex.sprint(ctxcatcodes,format("\\char%s ",n))
+ end
+end
+
+end -- closure
+
+do -- begin closure to overcome local limits and interference
+
+if not modules then modules = { } end modules ['font-def'] = {
+ version = 1.001,
+ comment = "companion to font-ini.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local format, concat, gmatch, match, find, lower = string.format, table.concat, string.gmatch, string.match, string.find, string.lower
+local tostring, next = tostring, next
+
+local trace_defining = false trackers.register("fonts.defining", function(v) trace_defining = v end)
+
+trackers.register("fonts.loading", "fonts.defining", "otf.loading", "afm.loading", "tfm.loading")
+trackers.register("fonts.all", "fonts.*", "otf.*", "afm.*", "tfm.*")
+
+--[[ldx--
+<p>Here we deal with defining fonts. We do so by intercepting the
+default loader that only handles <l n='tfm'/>.</p>
+--ldx]]--
+
+fonts = fonts or { }
+fonts.define = fonts.define or { }
+fonts.tfm = fonts.tfm or { }
+fonts.ids = fonts.ids or { }
+fonts.vf = fonts.vf or { }
+fonts.used = fonts.used or { }
+
+local tfm = fonts.tfm
+local vf = fonts.vf
+local define = fonts.define
+
+tfm.version = 1.01
+tfm.cache = containers.define("fonts", "tfm", tfm.version, false) -- better in font-tfm
+
+define.method = "afm or tfm" -- afm, tfm, afm or tfm, tfm or afm
+define.specify = fonts.define.specify or { }
+define.methods = fonts.define.methods or { }
+
+tfm.fonts = tfm.fonts or { }
+tfm.readers = tfm.readers or { }
+tfm.internalized = tfm.internalized or { } -- internal tex numbers
+
+tfm.readers.sequence = { 'otf', 'ttf', 'afm', 'tfm' }
+
+tfm.auto_afm = true
+
+local readers = tfm.readers
+local sequence = readers.sequence
+
+--[[ldx--
+<p>We hardly gain anything when we cache the final (pre scaled)
+<l n='tfm'/> table. But it can be handy for debugging.</p>
+--ldx]]--
+
+fonts.version = 1.05
+fonts.cache = containers.define("fonts", "def", fonts.version, false)
+
+--[[ldx--
+<p>We can prefix a font specification by <type>name:</type> or
+<type>file:</type>. The first case will result in a lookup in the
+synonym table.</p>
+
+<typing>
+[ name: | file: ] identifier [ separator [ specification ] ]
+</typing>
+
+<p>The following function split the font specification into components
+and prepares a table that will move along as we proceed.</p>
+--ldx]]--
+
+-- beware, we discard additional specs
+--
+-- method:name method:name(sub) method:name(sub)*spec method:name*spec
+-- name name(sub) name(sub)*spec name*spec
+-- name@spec*oeps
+
+local splitter, specifiers = nil, ""
+
+function define.add_specifier(symbol)
+ specifiers = specifiers .. symbol
+ local left = lpeg.P("(")
+ local right = lpeg.P(")")
+ local colon = lpeg.P(":")
+ local method = lpeg.S(specifiers)
+ local lookup = lpeg.C(lpeg.P("file")+lpeg.P("name")) * colon -- hard test, else problems with : method
+ local sub = left * lpeg.C(lpeg.P(1-left-right-method)^1) * right
+--~ local specification = lpeg.C(method) * lpeg.C(lpeg.P(1-method)^1)
+ local specification = lpeg.C(method) * lpeg.C(lpeg.P(1)^1)
+ local name = lpeg.C((1-sub-specification)^1)
+ splitter = lpeg.P((lookup + lpeg.Cc("")) * name * (sub + lpeg.Cc("")) * (specification + lpeg.Cc("")))
+end
+
+function define.get_specification(str)
+ return splitter:match(str)
+end
+
+function define.register_split(symbol,action)
+ define.add_specifier(symbol)
+ define.specify[symbol] = action
+end
+
+function define.makespecification(specification, lookup, name, sub, method, detail, size)
+ size = size or 655360
+ if trace_defining then
+ logs.report("define font","%s -> lookup: %s, name: %s, sub: %s, method: %s, detail: %s",
+ specification, (lookup ~= "" and lookup) or "[file]", (name ~= "" and name) or "-",
+ (sub ~= "" and sub) or "-", (method ~= "" and method) or "-", (detail ~= "" and detail) or "-")
+ end
+--~ if specification.lookup then
+--~ lookup = specification.lookup -- can come from xetex [] syntax
+--~ specification.lookup = nil
+--~ end
+ if lookup ~= 'name' then -- for the moment only two lookups, maybe some day also system:
+ lookup = 'file'
+ end
+ local t = {
+ lookup = lookup, -- forced type
+ specification = specification, -- full specification
+ size = size, -- size in scaled points or -1000*n
+ name = name, -- font or filename
+ sub = sub, -- subfont (eg in ttc)
+ method = method, -- specification method
+ detail = detail, -- specification
+ resolved = "", -- resolved font name
+ forced = "", -- forced loader
+ features = { }, -- preprocessed features
+ }
+ return t
+end
+
+function define.analyze(specification, size)
+ -- can be optimized with locals
+ local lookup, name, sub, method, detail = define.get_specification(specification or "")
+ return define.makespecification(specification,lookup, name, sub, method, detail, size)
+end
+
+--[[ldx--
+<p>A unique hash value is generated by:</p>
+--ldx]]--
+
+local sortedhashkeys = table.sortedhashkeys
+
+function tfm.hash_features(specification)
+ local features = specification.features
+ if features then
+ local t = { }
+ local normal = features.normal
+ if normal and next(normal) then
+ local f = sortedhashkeys(normal)
+ for i=1,#f do
+ local v = f[i]
+ if v ~= "number" and v ~= "features" then -- i need to figure this out, features
+ t[#t+1] = v .. '=' .. tostring(normal[v])
+ end
+ end
+ end
+ local vtf = features.vtf
+ if vtf and next(vtf) then
+ local f = sortedhashkeys(vtf)
+ for i=1,#f do
+ local v = f[i]
+ t[#t+1] = v .. '=' .. tostring(vtf[v])
+ end
+ end
+--~ if specification.mathsize then
+--~ t[#t+1] = "mathsize=" .. specification.mathsize
+--~ end
+ if #t > 0 then
+ return concat(t,"+")
+ end
+ end
+ return "unknown"
+end
+
+fonts.designsizes = { }
+
+--[[ldx--
+<p>In principle we can share tfm tables when we are in node for a font, but then
+we need to define a font switch as an id/attr switch which is no fun, so in that
+case users can best use dynamic features ... so, we will not use that speedup. Okay,
+when we get rid of base mode we can optimize even further by sharing, but then we
+loose our testcases for <l n='luatex'/>.</p>
+--ldx]]--
+
+function tfm.hash_instance(specification,force)
+ local hash, size, fallbacks = specification.hash, specification.size, specification.fallbacks
+ if force or not hash then
+ hash = tfm.hash_features(specification)
+ specification.hash = hash
+ end
+ if size < 1000 and fonts.designsizes[hash] then
+ size = math.round(tfm.scaled(size, fonts.designsizes[hash]))
+ specification.size = size
+ end
+--~ local mathsize = specification.mathsize or 0
+--~ if mathsize > 0 then
+--~ local textsize = specification.textsize
+--~ if fallbacks then
+--~ return hash .. ' @ ' .. tostring(size) .. ' [ ' .. tostring(mathsize) .. ' : ' .. tostring(textsize) .. ' ] @ ' .. fallbacks
+--~ else
+--~ return hash .. ' @ ' .. tostring(size) .. ' [ ' .. tostring(mathsize) .. ' : ' .. tostring(textsize) .. ' ]'
+--~ end
+--~ else
+ if fallbacks then
+ return hash .. ' @ ' .. tostring(size) .. ' @ ' .. fallbacks
+ else
+ return hash .. ' @ ' .. tostring(size)
+ end
+--~ end
+end
+
+--[[ldx--
+<p>We can resolve the filename using the next function:</p>
+--ldx]]--
+
+function define.resolve(specification)
+ if not specification.resolved or specification.resolved == "" then -- resolved itself not per se in mapping hash
+ if specification.lookup == 'name' then
+ specification.resolved, specification.sub = fonts.names.resolve(specification.name,specification.sub)
+ if specification.resolved then
+ specification.forced = file.extname(specification.resolved)
+ specification.name = file.removesuffix(specification.resolved)
+ end
+ elseif specification.lookup == 'file' then
+ specification.forced = file.extname(specification.name)
+ specification.name = file.removesuffix(specification.name)
+ end
+ end
+ if specification.forced == "" then
+ specification.forced = nil
+ else
+ specification.forced = specification.forced
+ end
+--~ specification.hash = specification.name .. ' @ ' .. tfm.hash_features(specification)
+ specification.hash = lower(specification.name .. ' @ ' .. tfm.hash_features(specification))
+ if specification.sub and specification.sub ~= "" then
+ specification.hash = specification.sub .. ' @ ' .. specification.hash
+ end
+ return specification
+end
+
+--[[ldx--
+<p>The main read function either uses a forced reader (as determined by
+a lookup) or tries to resolve the name using the list of readers.</p>
+
+<p>We need to cache when possible. We do cache raw tfm data (from <l
+n='tfm'/>, <l n='afm'/> or <l n='otf'/>). After that we can cache based
+on specificstion (name) and size, that is, <l n='tex'/> only needs a number
+for an already loaded fonts. However, it may make sense to cache fonts
+before they're scaled as well (store <l n='tfm'/>'s with applied methods
+and features). However, there may be a relation between the size and
+features (esp in virtual fonts) so let's not do that now.</p>
+
+<p>Watch out, here we do load a font, but we don't prepare the
+specification yet.</p>
+--ldx]]--
+
+function tfm.read(specification)
+ local hash = tfm.hash_instance(specification)
+ local tfmtable = tfm.fonts[hash] -- hashes by size !
+ if not tfmtable then
+ local forced = specification.forced or ""
+ if forced ~= "" then
+ tfmtable = readers[lower(forced)](specification)
+ if not tfmtable then
+ logs.report("define font","forced type %s of %s not found",forced,specification.name)
+ end
+ else
+ for s=1,#sequence do -- reader sequence
+ local reader = sequence[s]
+ if readers[reader] then -- not really needed
+ if trace_defining then
+ logs.report("define font","trying (sequence driven) type %s for %s with file %s",reader,specification.name,specification.filename or "unknown")
+ end
+ tfmtable = readers[reader](specification)
+ if tfmtable then
+ break
+ else
+ specification.filename = nil
+ end
+ end
+ end
+ end
+ if tfmtable then
+ if tfmtable.filename and fonts.dontembed[tfmtable.filename] then
+ tfmtable.embedding = "no"
+ else
+ tfmtable.embedding = "subset"
+ end
+ tfm.fonts[hash] = tfmtable
+ fonts.designsizes[specification.hash] = tfmtable.designsize -- we only know this for sure after loading once
+ --~ tfmtable.mode = specification.features.normal.mode or "base"
+ end
+ end
+ if not tfmtable then
+ logs.report("define font","font with name %s is not found",specification.name)
+ end
+ return tfmtable
+end
+
+--[[ldx--
+<p>For virtual fonts we need a slightly different approach:</p>
+--ldx]]--
+
+function tfm.read_and_define(name,size) -- no id
+ local specification = define.analyze(name,size)
+ local method = specification.method
+ if method and define.specify[method] then
+ specification = define.specify[method](specification)
+ end
+ specification = define.resolve(specification)
+ local hash = tfm.hash_instance(specification)
+ local id = define.registered(hash)
+ if not id then
+ local fontdata = tfm.read(specification)
+ if fontdata then
+ fontdata.hash = hash
+ id = font.define(fontdata)
+ define.register(fontdata,id)
+ tfm.cleanup_table(fontdata)
+ else
+ id = 0 -- signal
+ end
+ end
+ return fonts.ids[id], id
+end
+
+--[[ldx--
+<p>Next follow the readers. This code was written while <l n='luatex'/>
+evolved. Each one has its own way of dealing with its format.</p>
+--ldx]]--
+
+local function check_tfm(specification,fullname)
+ -- ofm directive blocks local path search unless set; btw, in context we
+ -- don't support ofm files anyway as this format is obsolete
+ local foundname = resolvers.findbinfile(fullname, 'tfm') or "" -- just to be sure
+ if foundname == "" then
+ foundname = resolvers.findbinfile(fullname, 'ofm') or "" -- bonus for usage outside context
+ end
+ if foundname ~= "" then
+ specification.filename, specification.format = foundname, "ofm"
+ return tfm.read_from_tfm(specification)
+ end
+end
+
+local function check_afm(specification,fullname)
+ local foundname = resolvers.findbinfile(fullname, 'afm') or "" -- just to be sure
+ if foundname == "" and tfm.auto_afm then
+ local encoding, shortname = match(fullname,"^(.-)%-(.*)$") -- context: encoding-name.*
+ if encoding and shortname and fonts.enc.known[encoding] then
+ shortname = resolvers.findbinfile(shortname,'afm') or "" -- just to be sure
+ if shortname ~= "" then
+ foundname = shortname
+ -- tfm.set_normal_feature(specification,'encoding',encoding) -- will go away
+ if trace_loading then
+ logs.report("load afm","stripping encoding prefix from filename %s",afmname)
+ end
+ end
+ end
+ end
+ if foundname ~= "" then
+ specification.filename, specification.format = foundname, "afm"
+ return tfm.read_from_afm(specification)
+ end
+end
+
+function readers.tfm(specification)
+ local fullname, tfmtable = specification.filename or "", nil
+ if fullname == "" then
+ local forced = specification.forced or ""
+ if forced ~= "" then
+ tfmtable = check_tfm(specification,specification.name .. "." .. forced)
+ end
+ if not tfmtable then
+ tfmtable = check_tfm(specification,specification.name)
+ end
+ else
+ tfmtable = check_tfm(specification,fullname)
+ end
+ return tfmtable
+end
+
+function readers.afm(specification,method)
+ local fullname, tfmtable = specification.filename or "", nil
+ if fullname == "" then
+ local forced = specification.forced or ""
+ if forced ~= "" then
+ tfmtable = check_afm(specification,specification.name .. "." .. forced)
+ end
+ if not tfmtable then
+ method = method or define.method or "afm or tfm"
+ if method == "tfm" then
+ tfmtable = check_tfm(specification,specification.name)
+ elseif method == "afm" then
+ tfmtable = check_afm(specification,specification.name)
+ elseif method == "tfm or afm" then
+ tfmtable = check_tfm(specification,specification.name) or check_afm(specification,specification.name)
+ else -- method == "afm or tfm" or method == "" then
+ tfmtable = check_afm(specification,specification.name) or check_tfm(specification,specification.name)
+ end
+ end
+ else
+ tfmtable = check_afm(specification,fullname)
+ end
+ return tfmtable
+end
+
+local function check_otf(specification,suffix,what)
+ local fullname, tfmtable = resolvers.findbinfile(specification.name,suffix) or "", nil
+ if fullname == "" then
+ local fb = fonts.names.old_to_new[specification.name]
+ if fb then
+ fullname = resolvers.findbinfile(fb,suffix) or ""
+ end
+ end
+ if fullname == "" then
+ local fb = fonts.names.new_to_old[specification.name]
+ if fb then
+ fullname = resolvers.findbinfile(fb,suffix) or ""
+ end
+ end
+ if fullname ~= "" then
+ specification.filename, specification.format = fullname, what -- hm, so we do set the filename, then
+ tfmtable = tfm.read_from_open_type(specification) -- we need to do it for all matches / todo
+ end
+ return tfmtable
+end
+
+function readers.opentype(specification,suffix,what)
+ local forced = specification.forced or ""
+ if forced == "otf" then
+ return check_otf(specification,forced,"opentype")
+ elseif forced == "ttf" then
+ return check_otf(specification,forced,"truetype")
+ elseif forced == "ttf" then
+ return check_otf(specification,forced,"truetype")
+ else
+ return check_otf(specification,suffix,what)
+ end
+end
+
+function readers.otf (specification) return readers.opentype(specification,"otf","opentype") end
+function readers.ttf (specification) return readers.opentype(specification,"ttf","truetype") end
+function readers.ttc (specification) return readers.opentype(specification,"ttf","truetype") end -- !!
+function readers.dfont(specification) return readers.opentype(specification,"ttf","truetype") end -- !!
+
+--[[ldx--
+<p>We need to check for default features. For this we provide
+a helper function.</p>
+--ldx]]--
+
+function define.check(features,defaults) -- nb adapts features !
+ local done = false
+ if table.is_empty(features) then
+ features, done = table.fastcopy(defaults), true
+ else
+ for k,v in next, defaults do
+ if features[k] == nil then
+ features[k], done = v, true
+ end
+ end
+ end
+ return features, done -- done signals a change
+end
+
+--[[ldx--
+<p>So far the specifyers. Now comes the real definer. Here we cache
+based on id's. Here we also intercept the virtual font handler. Since
+it evolved stepwise I may rewrite this bit (combine code).</p>
+
+In the previously defined reader (the one resulting in a <l n='tfm'/>
+table) we cached the (scaled) instances. Here we cache them again, but
+this time based on id. We could combine this in one cache but this does
+not gain much. By the way, passing id's back to in the callback was
+introduced later in the development.</p>
+--ldx]]--
+
+define.last = nil
+
+function define.register(fontdata,id)
+ if fontdata and id then
+ local hash = fontdata.hash
+ if not tfm.internalized[hash] then
+ if trace_defining then
+ logs.report("define font","loading at 2 id %s, hash: %s",id or "?",hash or "?")
+ end
+ fonts.ids[id] = fontdata
+ tfm.internalized[hash] = id
+ end
+ end
+end
+
+function define.registered(hash)
+ local id = tfm.internalized[hash]
+ return id, id and fonts.ids[id]
+end
+
+local cache_them = false
+
+function tfm.make(specification)
+ -- currently fonts are scaled while constructing the font, so we
+ -- have to do scaling of commands in the vf at that point using
+ -- e.g. "local scale = g.factor or 1" after all, we need to work
+ -- with copies anyway and scaling needs to be done at some point;
+ -- however, when virtual tricks are used as feature (makes more
+ -- sense) we scale the commands in fonts.tfm.scale (and set the
+ -- factor there)
+ local fvm = define.methods[specification.features.vtf.preset]
+ if fvm then
+ return fvm(specification)
+ else
+ return nil
+ end
+end
+
+function define.read(specification,size,id) -- id can be optional, name can already be table
+ statistics.starttiming(fonts)
+ if type(specification) == "string" then
+ specification = define.analyze(specification,size)
+ end
+ local method = specification.method
+ if method and define.specify[method] then
+ specification = define.specify[method](specification)
+ end
+ specification = define.resolve(specification)
+ local hash = tfm.hash_instance(specification)
+ if cache_them then
+ local fontdata = containers.read(fonts.cache(),hash) -- for tracing purposes
+ end
+ local fontdata = define.registered(hash) -- id
+ if not fontdata then
+ if specification.features.vtf and specification.features.vtf.preset then
+ fontdata = tfm.make(specification)
+ else
+ fontdata = tfm.read(specification)
+ if fontdata then
+ tfm.check_virtual_id(fontdata)
+ end
+ end
+ if cache_them then
+ fontdata = containers.write(fonts.cache(),hash,fontdata) -- for tracing purposes
+ end
+ if fontdata then
+ fontdata.hash = hash
+ fontdata.cache = "no"
+ if id then
+ define.register(fontdata,id)
+ end
+ end
+ end
+ define.last = fontdata or id -- todo ! ! ! ! !
+ if not fontdata then
+ logs.report("define font", "unknown font %s, loading aborted",specification.name)
+ elseif trace_defining and type(fontdata) == "table" then
+ logs.report("define font","using %s font with id %s, name:%s size:%s bytes:%s encoding:%s fullname:%s filename:%s",
+ fontdata.type or "unknown",
+ id or "?",
+ fontdata.name or "?",
+ fontdata.size or "default",
+ fontdata.encodingbytes or "?",
+ fontdata.encodingname or "unicode",
+ fontdata.fullname or "?",
+ file.basename(fontdata.filename or "?"))
+
+ end
+ statistics.stoptiming(fonts)
+ return fontdata
+end
+
+function vf.find(name)
+ name = file.removesuffix(file.basename(name))
+ if tfm.resolve_vf then
+ local format = fonts.logger.format(name)
+ if format == 'tfm' or format == 'ofm' then
+ if trace_defining then
+ logs.report("define font","locating vf for %s",name)
+ end
+ return resolvers.findbinfile(name,"ovf")
+ else
+ if trace_defining then
+ logs.report("define font","vf for %s is already taken care of",name)
+ end
+ return nil -- ""
+ end
+ else
+ if trace_defining then
+ logs.report("define font","locating vf for %s",name)
+ end
+ return resolvers.findbinfile(name,"ovf")
+ end
+end
+
+--[[ldx--
+<p>We overload both the <l n='tfm'/> and <l n='vf'/> readers.</p>
+--ldx]]--
+
+callback.register('define_font' , define.read)
+callback.register('find_vf_file', vf.find ) -- not that relevant any more
+
+end -- closure
+
+do -- begin closure to overcome local limits and interference
+
+if not modules then modules = { } end modules ['font-xtx'] = {
+ version = 1.001,
+ comment = "companion to font-ini.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local texsprint, count = tex.sprint, tex.count
+local format, concat, gmatch, match, find, lower = string.format, table.concat, string.gmatch, string.match, string.find, string.lower
+local tostring, next = tostring, next
+
+local trace_defining = false trackers.register("fonts.defining", function(v) trace_defining = v end)
+
+--[[ldx--
+<p>Choosing a font by name and specififying its size is only part of the
+game. In order to prevent complex commands, <l n='xetex'/> introduced
+a method to pass feature information as part of the font name. At the
+risk of introducing nasty parsing and compatinility problems, this
+syntax was expanded over time.</p>
+
+<p>For the sake of users who have defined fonts using that syntax, we
+will support it, but we will provide additional methods as well.
+Normally users will not use this direct way, but use a more abstract
+interface.</p>
+
+<p>The next one is the official one. However, in the plain
+variant we need to support the crappy [] specification as
+well and that does not work too well with the general design
+of the specifier.</p>
+--ldx]]--
+
+--~ function fonts.define.specify.colonized(specification) -- xetex mode
+--~ local list = { }
+--~ if specification.detail and specification.detail ~= "" then
+--~ for v in gmatch(specification.detail,"%s*([^;]+)%s*") do
+--~ local a, b = match(v,"^(%S*)%s*=%s*(%S*)$")
+--~ if a and b then
+--~ list[a] = b:is_boolean()
+--~ if type(list[a]) == "nil" then
+--~ list[a] = b
+--~ end
+--~ else
+--~ local a, b = match(v,"^([%+%-]?)%s*(%S+)$")
+--~ if a and b then
+--~ list[b] = a ~= "-"
+--~ end
+--~ end
+--~ end
+--~ end
+--~ specification.features.normal = list
+--~ return specification
+--~ end
+
+--~ check("oeps/BI:+a;-b;c=d")
+--~ check("[oeps]/BI:+a;-b;c=d")
+--~ check("file:oeps/BI:+a;-b;c=d")
+--~ check("name:oeps/BI:+a;-b;c=d")
+
+local list = { }
+
+fonts.define.specify.colonized_default_lookup = "file"
+
+local function issome () list.lookup = fonts.define.specify.colonized_default_lookup end
+local function isfile () list.lookup = 'file' end
+local function isname () list.lookup = 'name' end
+local function thename(s) list.name = s end
+local function issub (v) list.sub = v end
+local function iscrap (s) list.crap = string.lower(s) end
+local function istrue (s) list[s] = 'yes' end
+local function isfalse(s) list[s] = 'no' end
+local function iskey (k,v) list[k] = v end
+
+local spaces = lpeg.P(" ")^0
+local namespec = (1-lpeg.S("/:("))^0 -- was: (1-lpeg.S("/: ("))^0
+local crapspec = spaces * lpeg.P("/") * (((1-lpeg.P(":"))^0)/iscrap) * spaces
+local filename = (lpeg.P("file:")/isfile * (namespec/thename)) + (lpeg.P("[") * lpeg.P(true)/isname * (((1-lpeg.P("]"))^0)/thename) * lpeg.P("]"))
+local fontname = (lpeg.P("name:")/isname * (namespec/thename)) + lpeg.P(true)/issome * (namespec/thename)
+local sometext = (lpeg.R("az") + lpeg.R("AZ") + lpeg.R("09"))^1
+local truevalue = lpeg.P("+") * spaces * (sometext/istrue)
+local falsevalue = lpeg.P("-") * spaces * (sometext/isfalse)
+local keyvalue = (lpeg.C(sometext) * spaces * lpeg.P("=") * spaces * lpeg.C(sometext))/iskey
+local somevalue = sometext/istrue
+local subvalue = lpeg.P("(") * (lpeg.C(lpeg.P(1-lpeg.S("()"))^1)/issub) * lpeg.P(")") -- for Kim
+local option = spaces * (keyvalue + falsevalue + truevalue + somevalue) * spaces
+local options = lpeg.P(":") * spaces * (lpeg.P(";")^0 * option)^0
+local pattern = (filename + fontname) * subvalue^0 * crapspec^0 * options^0
+
+function fonts.define.specify.colonized(specification) -- xetex mode
+ list = { }
+ pattern:match(specification.specification)
+ for k, v in next, list do
+ list[k] = v:is_boolean()
+ if type(list[a]) == "nil" then
+ list[k] = v
+ end
+ end
+ list.crap = nil -- style not supported, maybe some day
+ if list.name then
+ specification.name = list.name
+ list.name = nil
+ end
+ if list.lookup then
+ specification.lookup = list.lookup
+ list.lookup = nil
+ end
+ if list.sub then
+ specification.sub = list.sub
+ list.sub = nil
+ end
+ specification.features.normal = list
+ return specification
+end
+
+fonts.define.register_split(":", fonts.define.specify.colonized)
+
+end -- closure
+
+do -- begin closure to overcome local limits and interference
+
+if not modules then modules = { } end modules ['font-map'] = {
+ version = 1.001,
+ comment = "companion to font-ini.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local match, format, find, concat = string.match, string.format, string.find, table.concat
+
+local trace_loading = false trackers.register("otf.loading", function(v) trace_loading = v end)
+
+local ctxcatcodes = tex.ctxcatcodes
+
+--[[ldx--
+<p>Eventually this code will disappear because map files are kind
+of obsolete. Some code may move to runtime or auxiliary modules.</p>
+<p>The name to unciode related code will stay of course.</p>
+--ldx]]--
+
+fonts = fonts or { }
+fonts.map = fonts.map or { }
+fonts.map.data = fonts.map.data or { }
+fonts.map.encodings = fonts.map.encodings or { }
+fonts.map.done = fonts.map.done or { }
+fonts.map.loaded = fonts.map.loaded or { }
+fonts.map.direct = fonts.map.direct or { }
+fonts.map.line = fonts.map.line or { }
+
+function fonts.map.line.pdfmapline(tag,str)
+ return "\\loadmapline[" .. tag .. "][" .. str .. "]"
+end
+
+function fonts.map.line.pdftex(e) -- so far no combination of slant and stretch
+ if e.name and e.fontfile then
+ local fullname = e.fullname or ""
+ if e.slant and e.slant ~= 0 then
+ if e.encoding then
+ return fonts.map.line.pdfmapline("=",format('%s %s "%g SlantFont" <%s <%s',e.name,fullname,e.slant,e.encoding,e.fontfile))
+ else
+ return fonts.map.line.pdfmapline("=",format('%s %s "%g SlantFont" <%s',e.name,fullname,e.slant,e.fontfile))
+ end
+ elseif e.stretch and e.stretch ~= 1 and e.stretch ~= 0 then
+ if e.encoding then
+ return fonts.map.line.pdfmapline("=",format('%s %s "%g ExtendFont" <%s <%s',e.name,fullname,e.stretch,e.encoding,e.fontfile))
+ else
+ return fonts.map.line.pdfmapline("=",format('%s %s "%g ExtendFont" <%s',e.name,fullname,e.stretch,e.fontfile))
+ end
+ else
+ if e.encoding then
+ return fonts.map.line.pdfmapline("=",format('%s %s <%s <%s',e.name,fullname,e.encoding,e.fontfile))
+ else
+ return fonts.map.line.pdfmapline("=",format('%s %s <%s',e.name,fullname,e.fontfile))
+ end
+ end
+ else
+ return nil
+ end
+end
+
+function fonts.map.flush(backend) -- will also erase the accumulated data
+ local flushline = fonts.map.line[backend or "pdftex"] or fonts.map.line.pdftex
+ for _, e in pairs(fonts.map.data) do
+ tex.sprint(ctxcatcodes,flushline(e))
+ end
+ fonts.map.data = { }
+end
+
+fonts.map.line.dvips = fonts.map.line.pdftex
+fonts.map.line.dvipdfmx = function() end
+
+function fonts.map.convert_entries(filename)
+ if not fonts.map.loaded[filename] then
+ fonts.map.data, fonts.map.encodings = fonts.map.load_file(filename,fonts.map.data, fonts.map.encodings)
+ fonts.map.loaded[filename] = true
+ end
+end
+
+function fonts.map.load_file(filename, entries, encodings)
+ entries = entries or { }
+ encodings = encodings or { }
+ local f = io.open(filename)
+ if f then
+ local data = f:read("*a")
+ if data then
+ for line in gmatch(data,"(.-)[\n\t]") do
+ if find(line,"^[%#%%%s]") then
+ -- print(line)
+ else
+ local stretch, slant, name, fullname, fontfile, encoding
+ line = line:gsub('"(.+)"', function(s)
+ stretch = find(s,'"([^"]+) ExtendFont"')
+ slant = find(s,'"([^"]+) SlantFont"')
+ return ""
+ end)
+ if not name then
+ -- name fullname encoding fontfile
+ name, fullname, encoding, fontfile = match(line,"^(%S+)%s+(%S*)[%s<]+(%S*)[%s<]+(%S*)%s*$")
+ end
+ if not name then
+ -- name fullname (flag) fontfile encoding
+ name, fullname, fontfile, encoding = match(line,"^(%S+)%s+(%S*)[%d%s<]+(%S*)[%s<]+(%S*)%s*$")
+ end
+ if not name then
+ -- name fontfile
+ name, fontfile = match(line,"^(%S+)%s+[%d%s<]+(%S*)%s*$")
+ end
+ if name then
+ if encoding == "" then encoding = nil end
+ entries[name] = {
+ name = name, -- handy
+ fullname = fullname,
+ encoding = encoding,
+ fontfile = fontfile,
+ slant = tonumber(slant),
+ stretch = tonumber(stretch)
+ }
+ encodings[name] = encoding
+ elseif line ~= "" then
+ -- print(line)
+ end
+ end
+ end
+ end
+ f:close()
+ end
+ return entries, encodings
+end
+
+function fonts.map.load_lum_table(filename)
+ local lumname = file.replacesuffix(file.basename(filename),"lum")
+ local lumfile = resolvers.find_file(lumname,"map") or ""
+ if lumfile ~= "" and lfs.isfile(lumfile) then
+ if trace_loading or trace_unimapping then
+ logs.report("load otf","enhance: loading %s ",lumfile)
+ end
+ lumunic = dofile(lumfile)
+ return lumunic, lumfile
+ end
+end
+
+local hex = lpeg.R("AF","09")
+local hexfour = (hex*hex*hex*hex) / function(s) return tonumber(s,16) end
+local dec = (lpeg.R("09")^1) / tonumber
+local period = lpeg.P(".")
+
+local unicode = lpeg.P("uni") * (hexfour * (period + lpeg.P(-1)) * lpeg.Cc(false) + lpeg.Ct(hexfour^1) * lpeg.Cc(true))
+local index = lpeg.P("index") * dec * lpeg.Cc(false)
+
+local parser = unicode + index
+
+local parsers = { }
+
+function fonts.map.make_name_parser(str)
+ if not str or str == "" then
+ return parser
+ else
+ local p = parsers[str]
+ if not p then
+ p = lpeg.P(str) * period * dec * lpeg.Cc(false)
+ parsers[str] = p
+ end
+ return p
+ end
+end
+
+--~ local parser = fonts.map.make_name_parser("Japan1")
+--~ local function test(str)
+--~ local b, a = parser:match(str)
+--~ print((a and table.serialize(b)) or b)
+--~ end
+--~ test("uni1234")
+--~ test("uni1234.xx")
+--~ test("uni12349876")
+--~ test("index1234")
+--~ test("Japan1.123")
+
+function fonts.map.tounicode16(unicode)
+ if unicode < 0x10000 then
+ return format("%04X",unicode)
+ else
+ return format("%04X%04X",unicode/1024+0xD800,unicode%1024+0xDC00)
+ end
+end
+
+function fonts.map.tounicode16sequence(unicodes)
+ local t = { }
+ for l=1,#unicodes do
+ local unicode = unicodes[l]
+ if unicode < 0x10000 then
+ t[l] = format("%04X",unicode)
+ else
+ t[l] = format("%04X%04X",unicode/1024+0xD800,unicode%1024+0xDC00)
+ end
+ end
+ return concat(t)
+end
+
+--~ This is quite a bit faster but at the cost of some memory but if we
+--~ do this we will also use it elsewhere so let's not follow this route
+--~ now. I might use this method in the plain variant (no caching there)
+--~ but then I need a flag that distinguishes between code branches.
+--~
+--~ local cache = { }
+--~
+--~ function fonts.map.tounicode16(unicode)
+--~ local s = cache[unicode]
+--~ if not s then
+--~ if unicode < 0x10000 then
+--~ s = format("%04X",unicode)
+--~ else
+--~ s = format("%04X%04X",unicode/1024+0xD800,unicode%1024+0xDC00)
+--~ end
+--~ cache[unicode] = s
+--~ end
+--~ return s
+--~ end
+
+
+end -- closure
+
+do -- begin closure to overcome local limits and interference
+
+if not modules then modules = { } end modules ['font-dum'] = {
+ version = 1.001,
+ comment = "companion to luatex-*.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+fonts = fonts or { }
+
+-- general
+
+fonts.otf.pack = false
+fonts.tfm.resolve_vf = false -- no sure about this
+
+-- readers
+
+fonts.tfm.readers = fonts.tfm.readers or { }
+fonts.tfm.readers.sequence = { 'otf', 'ttf', 'tfm' }
+fonts.tfm.readers.afm = nil
+
+-- define
+
+fonts.define = fonts.define or { }
+
+--~ fonts.define.method = "tfm"
+
+fonts.define.specify.colonized_default_lookup = "name"
+
+function fonts.define.get_specification(str)
+ return "", str, "", ":", str
+end
+
+-- logger
+
+fonts.logger = fonts.logger or { }
+
+function fonts.logger.save()
+end
+
+-- names
+
+fonts.names = fonts.names or { }
+
+fonts.names.basename = "luatex-fonts-names.lua"
+fonts.names.new_to_old = { }
+fonts.names.old_to_new = { }
+
+local data, loaded = nil, false
+
+function fonts.names.resolve(name,sub)
+ if not loaded then
+ local basename = fonts.names.basename
+ if basename and basename ~= "" then
+ for _, format in ipairs { "lua", "tex", "other text files" } do
+ local foundname = resolvers.find_file(basename,format) or ""
+ if foundname ~= "" then
+ data = dofile(foundname)
+ if data then
+ local d = { }
+ for k, v in pairs(data.mapping) do
+ local t = v[1]
+ if t == "ttf" or t == "otf" or t == "ttc" or t == "dfont" then
+ d[k] = v
+ end
+ end
+ data.mapping = d
+ end
+ break
+ end
+ end
+ end
+ loaded = true
+ end
+ if type(data) == "table" and data.version == 1.08 then
+ local condensed = string.gsub(string.lower(name),"[^%a%d]","")
+ local found = data.mapping and data.mapping[condensed]
+ if found then
+ local filename, is_sub = found[3], found[4]
+ if is_sub then is_sub = found[2] end
+ return filename, is_sub
+ else
+ return name, false -- fallback to filename
+ end
+ end
+end
+
+-- For the moment we put this (adapted) pseudo feature here.
+
+table.insert(fonts.triggers,"itlc")
+
+local function itlc(tfmdata,value)
+ if value then
+ -- the magic 40 and it formula come from Dohyun Kim
+ local metadata = tfmdata.shared.otfdata.metadata
+ if metadata then
+ local italicangle = metadata.italicangle
+ if italicangle and italicangle ~= 0 then
+ local uwidth = (metadata.uwidth or 40)/2
+ for unicode, d in next, tfmdata.descriptions do
+ local it = d.boundingbox[3] - d.width + uwidth
+ if it ~= 0 then
+ d.italic = it
+ end
+ end
+ tfmdata.has_italic = true
+ end
+ end
+ end
+end
+
+fonts.initializers.base.otf.itlc = itlc
+fonts.initializers.node.otf.itlc = itlc
+
+function fonts.register_message()
+end
+
+end -- closure
diff --git a/Master/texmf-dist/tex/generic/context/luatex-fonts.lua b/Master/texmf-dist/tex/generic/context/luatex-fonts.lua
new file mode 100644
index 00000000000..56768138be9
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/context/luatex-fonts.lua
@@ -0,0 +1,140 @@
+if not modules then modules = { } end modules ['luatex-fonts'] = {
+ version = 1.001,
+ comment = "companion to luatex-fonts.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- We keep track of load time by storing the current time. That
+-- way we cannot be accused of slowing down luading too much.
+
+local starttime = os.gettimeofday()
+
+-- As we don't use the ConTeXt file searching, we need to
+-- initialize the kpse library. As the progname can be anything
+-- we will temporary switch to the ConTeXt namespace if needed.
+-- Just adding the context paths to the path specification is
+-- somewhat faster
+
+-- kpse.set_program_name("luatex")
+
+local ctxkpse = nil
+local verbose = true
+
+local function loadmodule(name,continue)
+ local foundname = kpse.find_file(name,"tex") or ""
+ if not foundname then
+ if not ctxkpse then
+ ctxkpse = kpse.new("luatex","context")
+ end
+ foundname = ctxkpse:find_file(name,"tex") or ""
+ end
+ if foundname == "" then
+ if not continue then
+ texio.write_nl(string.format(" <luatex-fonts: unable to locate %s>",name))
+ os.exit()
+ end
+ else
+ if verbose then
+ texio.write(string.format(" <%s>",foundname)) -- no file.basename yet
+ end
+ dofile(foundname)
+ end
+end
+
+loadmodule('luatex-fonts-merged.lua',true) -- you might comment this line
+
+if fonts then
+
+ -- We're using the merged version. That one could be outdated so
+ -- remove it from your system when you want to use the files from
+ -- from the ConTeXt tree, or keep your copy of the merged version
+ -- up to date.
+
+ texio.write_nl("log",[[
+
+I am using the merged version of 'luatex-fonts.lua' here. If
+you run into problems or experience unexpected behaviour, and
+if you have ConTeXt installed you can try to delete the file
+'luatex-font-merged.lua' as I might then use the possibly
+updated libraries. The merged version is not supported as it
+is a frozen instance.
+
+ ]])
+
+else
+
+ -- The following helpers are a bit overkill but I don't want to
+ -- mess up ConTeXt code for the sake of general generality. Around
+ -- version 1.0 there will be an official api defined.
+
+ loadmodule('l-string.lua')
+ loadmodule('l-lpeg.lua')
+ loadmodule('l-boolean.lua')
+ loadmodule('l-math.lua')
+ loadmodule('l-table.lua')
+ loadmodule('l-file.lua')
+ loadmodule('l-io.lua')
+
+ -- The following modules contain code that is either not used
+ -- at all outside ConTeXt or will fail when enabled due to
+ -- lack of other modules.
+
+ -- First we load a few helper modules. This is about the miminum
+ -- needed to let the font modules do theuir work.
+
+ loadmodule('luat-dum.lua') -- not used in context at all
+ loadmodule('data-con.lua') -- maybe some day we don't need this one
+
+ -- We do need some basic node support although the following
+ -- modules contain a little bit of code that is not used. It's
+ -- not worth weeding.
+
+ loadmodule('node-ini.lua')
+ loadmodule('node-res.lua') -- will be stripped
+ loadmodule('node-inj.lua') -- will be replaced (luatex > .50)
+ loadmodule('node-fnt.lua')
+ loadmodule('node-dum.lua')
+
+ -- Now come the font modules that deal with traditional TeX fonts
+ -- as well as open type fonts. We don't load the afm related code
+ -- from font-enc.lua and font-afm.lua as only ConTeXt deals with
+ -- it.
+ --
+ -- The font database file (if used at all) must be put someplace
+ -- visible for kpse and is not shared with ConTeXt. The mtx-fonts
+ -- script can be used to genate this file (using the --names
+ -- option).
+
+ loadmodule('font-ini.lua')
+ loadmodule('font-tfm.lua') -- will be split (we may need font-log)
+ loadmodule('font-cid.lua')
+ loadmodule('font-ott.lua') -- might be split
+ loadmodule('font-otf.lua')
+ loadmodule('font-otd.lua')
+ loadmodule('font-oti.lua')
+ loadmodule('font-otb.lua')
+ loadmodule('font-otn.lua')
+ loadmodule('font-ota.lua') -- might be split
+ loadmodule('font-otc.lua')
+ loadmodule('font-def.lua')
+ loadmodule('font-xtx.lua')
+ loadmodule('font-map.lua') -- for loading lum file (will be stripped)
+ loadmodule('font-dum.lua')
+
+end
+
+-- In order to deal with the fonts we need to initialize some
+-- callbacks. One can overload them later on if needed.
+
+callback.register('ligaturing', false)
+callback.register('kerning', false)
+callback.register('pre_linebreak_filter', nodes.simple_font_handler)
+callback.register('hpack_filter', nodes.simple_font_handler)
+callback.register('define_font' , fonts.define.read)
+callback.register('find_vf_file', nil) -- reset to normal
+
+-- We're done.
+
+texio.write(string.format(" <luatex-fonts.lua loaded in %0.3f seconds>", os.gettimeofday()-starttime))
diff --git a/Master/texmf-dist/tex/generic/context/luatex-fonts.tex b/Master/texmf-dist/tex/generic/context/luatex-fonts.tex
new file mode 100644
index 00000000000..644d168f5c4
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/context/luatex-fonts.tex
@@ -0,0 +1,139 @@
+%D \module
+%D [ file=luatex-fonts,
+%D version=2009.12.01,
+%D title=\LUATEX\ Support Macros,
+%D subtitle=Generic \OPENTYPE\ Font Handler,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=public domain]
+
+%D \subject{Welcome}
+%D
+%D This file is one of a set of basic functionality enhancements
+%D for \LUATEX\ derived from the \CONTEXT\ \MKIV\ code base. Please
+%D don't polute the \type {luatex-*} namespace with code not coming
+%D from the \CONTEXT\ development team as we may add more files.
+%D
+%D As this is an experimental setup, it might not always work out as
+%D expected. Around \LUATEX\ version 0.50 we expect the code to be
+%D more or less okay.
+%D
+%D This file implements a basic font system for a bare \LUATEX\
+%D system. By default \LUATEX\ only knows about the classic \TFM\
+%D fonts but it can read other font formats and pass them to \LUA.
+%D With some glue code one can then construct a suitable \TFM\
+%D representation that \LUATEX\ can work with. For more advanced font
+%D support a bit more code is needed that needs to be hooked
+%D into the callback mechanism.
+%D
+%D This file is currently rather simple: it just loads the \LUA\ file
+%D with the same name. An example of a \type {luatex.tex} file that is
+%D just plain \TEX:
+%D
+%D \starttyping
+%D \catcode`\{=1 % left brace is begin-group character
+%D \catcode`\}=2 % right brace is end-group character
+%D
+%D \input plain
+%D
+%D \everyjob\expandafter{\the\everyjob\input luatex-fonts\relax}
+%D
+%D \dump
+%D \stoptyping
+%D
+%D We could load the \LUA\ file in \type {\everyjob} but maybe some
+%D day we need more here.
+%D
+%D When defining a font you can use two prefixes. A \type {file:}
+%D prefix forced a file search, while a \type {name:} prefix will
+%D result in consulting the names database. Such a database can be
+%D generated with:
+%D
+%D \starttyping
+%D mtxrun --usekpse --script fonts --names
+%D \stoptyping
+%D
+%D This will generate a file \type {luatex-fonts-names.lua} that has
+%D to be placed in a location where it can be found by \KPSE. Beware:
+%D the \type {--kpseonly} flag is only used outside \CONTEXT\ and
+%D provides very limited functionality, just enough for this task.
+%D
+%D The code loaded here does not come out of thin air, but is mostly
+%D shared with \CONTEXT, however, in that macropackage we go beyond
+%D what is provided here. When you use the code packaged here you
+%D need to keep a few things in mind:
+%D
+%D \startitemize
+%D
+%D \item This subsystem will be extended, improved etc. in about the
+%D same pace as \CONTEXT\ \MKIV. However, because \CONTEXT\ provides a
+%D rather high level of integration not all features will be supported
+%D in the same quality. Use \CONTEXT\ if you want more goodies.
+%D
+%D \item There is no official \API\ yet, which means that using
+%D functions implemented here is at your own risk, in the sense that
+%D names and namespaces might change. There will be a minimal \API\
+%D defined once \LUATEX\ version 1.0 is out. Instead of patching the
+%D files it's better to overload functions if needed.
+%D
+%D \item The modules are not stripped too much, which makes it
+%D possible to benefit from improvements in the code that take place
+%D in the perspective of \CONTEXT\ development. They might be split a
+%D bit more in due time so the baseline might become smaller.
+%D
+%D \item The code is maintained and tested by the \CONTEXT\
+%D development team. As such it might be better suited for this macro
+%D package and integration in other systems might demand some
+%D additional wrapping. Problems can be reported to the team but as we
+%D use \CONTEXT\ \MKIV\ as baseline, you'd better check if the problem
+%D is a general \CONTEXT\ problem too.
+%D
+%D \item The more high level support for features that is provided in
+%D \CONTEXT\ is not part of the code loaded here as it makes no sense
+%D elsewhere. Some experimental features are not part of this code
+%D either but some might show up later.
+%D
+%D \item Math font support will be added but only in its basic form
+%D once that the Latin Modern and \TEX\ Gyre math fonts are
+%D available.
+%D
+%D \item At this moment the more nifty speed-ups are not enabled
+%D because they work in tandem with the alternative file handling
+%D that \CONTEXT\ uses. Maybe around \LUATEX\ 1.0 we will bring some
+%D speedup into this code too (if it pays off at all).
+%D
+%D \item The code defines a few global tables. If this code is used
+%D in a larger perspective then you can best make sure that no
+%D conflicts occur. The \CONTEXT\ package expects users to work in
+%D their own namespace (\type {userdata}, \type {thirddata}, \type
+%D {moduledata} or \type {document}. The team takes all freedom to
+%D use any table at the global level but will not use tables that are
+%D named after macro packages. Later the \CONTEXT\ might operate in
+%D a more controlled namespace but it has a low priority.
+%D
+%D \item There is some tracing code present but this is not enabled
+%D and not supported outside \CONTEXT\ either as it integrates quite
+%D tightly into \CONTEXT. In case of problems you can use \CONTEXT\
+%D for tracking down problems.
+%D
+%D \item Patching the code in distributions is dangerous as it might
+%D fix your problem but introduce new ones for \CONTEXT. So, best keep
+%D the original code as it is.
+%D
+%D \item Attributes are (automatically) taken from the range 127-255 so
+%D you'd best not use these yourself.
+%D
+%D \stopitemize
+%D
+%D If this all sounds a bit tricky, keep in mind that it makes no sense
+%D for us to maintain multiple code bases and we happen to use \CONTEXT.
+%D
+%D For more details about how the font subsystem works we refer to
+%D publications in \TEX\ related journals, the \CONTEXT\ documentation,
+%D and the \CONTEXT\ wiki.
+
+\directlua {
+ dofile(kpse.find_file("luatex-fonts.lua","tex"))
+}
+
+\endinput
diff --git a/Master/texmf-dist/tex/generic/context/luatex-mplib.lua b/Master/texmf-dist/tex/generic/context/luatex-mplib.lua
new file mode 100644
index 00000000000..6f9bdc7ef41
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/context/luatex-mplib.lua
@@ -0,0 +1,469 @@
+if not modules then modules = { } end modules ['supp-mpl'] = {
+ version = 1.001,
+ comment = "companion to supp-mpl.tex",
+ author = "Hans Hagen & Taco Hoekwater",
+ copyright = "ConTeXt Development Team",
+ license = "public domain",
+}
+
+--[[ldx--
+<p>This module is a stripped down version of libraries that are used
+by <l n='context'/>. It can be used in other macro packages and/or
+serve as an example. Embedding in a macro package is upto others and
+normally boils down to inputting <t>supp-mpl.tex</t>.</p>
+--ldx]]--
+
+if metapost and metapost.version then
+
+ --[[ldx--
+ <p>Let's silently quit and make sure that no one loads it
+ manually in <l n='context'/>.</p>
+ --ldx]]--
+
+else
+
+ local format, concat, abs = string.format, table.concat, math.abs
+
+ local mplib = require ('mplib')
+ local kpse = require ('kpse')
+
+ --[[ldx--
+ <p>We create a namespace and some variables to it. If a namespace is
+ already defined it wil not be initialized. This permits hooking
+ in code beforehand.</p>
+
+ <p>We don't make a format automatically. After all, distributions
+ might have their own preferences and normally a format (mem) file will
+ have some special place in the <l n='tex'/> tree. Also, there can already
+ be format files, different memort settings and other nasty pitfalls that
+ we don't want to interfere with. If you want, you can define a function
+ <t>metapost.make(name,mem_name) that does the job.</t></p>
+ --ldx]]--
+
+ metapost = metapost or { }
+ metapost.version = 1.00
+ metapost.showlog = metapost.showlog or false
+ metapost.lastlog = ""
+
+ --[[ldx--
+ <p>A few helpers, taken from <t>l-file.lua</t>.</p>
+ --ldx]]--
+
+ local file = file or { }
+
+ function file.replacesuffix(filename, suffix)
+ return (string.gsub(filename,"%.[%a%d]+$","")) .. "." .. suffix
+ end
+
+ function file.stripsuffix(filename)
+ return (string.gsub(filename,"%.[%a%d]+$",""))
+ end
+
+ --[[ldx--
+ <p>We use the <l n='kpse'/> library unless a finder is already
+ defined.</p>
+ --ldx]]--
+
+ local mpkpse = kpse.new("luatex","mpost")
+
+ metapost.finder = metapost.finder or function(name, mode, ftype)
+ if mode == "w" then
+ return name
+ else
+ return mpkpse:find_file(name,ftype)
+ end
+ end
+
+ --[[ldx--
+ <p>You can use your own reported if needed, as long as it handles multiple
+ arguments and formatted strings.</p>
+ --ldx]]--
+
+ metapost.report = metapost.report or function(...)
+ texio.write(format("<mplib: %s>",format(...)))
+ end
+
+ --[[ldx--
+ <p>The rest of this module is not documented. More info can be found in the
+ <l n='luatex'/> manual, articles in user group journals and the files that
+ ship with <l n='context'/>.</p>
+ --ldx]]--
+
+ function metapost.resetlastlog()
+ metapost.lastlog = ""
+ end
+
+ metapost.make = metapost.make or function(name,mem_name,dump)
+ if false then
+ metapost.report("no format %s made for %s",mem_name,name)
+ return false
+ else
+ local t = os.clock()
+ local mpx = mplib.new {
+ ini_version = true,
+ find_file = metapost.finder,
+ job_name = file.stripsuffix(name)
+ }
+ mpx:execute(string.format("input %s ;",name))
+ if dump then
+ mpx:execute("dump ;")
+ metapost.report("format %s made and dumped for %s in %0.3f seconds",mem_name,name,os.clock()-t)
+ else
+ metapost.report("%s read in %0.3f seconds",name,os.clock()-t)
+ end
+ return mpx
+ end
+ end
+
+ function metapost.load(name)
+ local mem_name = file.replacesuffix(name,"mem")
+ local mpx = mplib.new {
+ ini_version = false,
+ mem_name = mem_name,
+ find_file = metapost.finder
+ }
+ if not mpx and type(metapost.make) == "function" then
+ -- when i have time i'll locate the format and dump
+ mpx = metapost.make(name,mem_name)
+ end
+ if mpx then
+ metapost.report("using format %s",mem_name,false)
+ return mpx, nil
+ else
+ return nil, { status = 99, error = "out of memory or invalid format" }
+ end
+ end
+
+ function metapost.unload(mpx)
+ if mpx then
+ mpx:finish()
+ end
+ end
+
+ function metapost.reporterror(result)
+ if not result then
+ metapost.report("mp error: no result object returned")
+ elseif result.status > 0 then
+ local t, e, l = result.term, result.error, result.log
+ if t then
+ metapost.report("mp terminal: %s",t)
+ end
+ if e then
+ metapost.report("mp error: %s", e)
+ end
+ if not t and not e and l then
+ metapost.lastlog = metapost.lastlog .. "\n " .. l
+ metapost.report("mp log: %s",l)
+ else
+ metapost.report("mp error: unknown, no error, terminal or log messages")
+ end
+ else
+ return false
+ end
+ return true
+ end
+
+ function metapost.process(mpx, data)
+ local converted, result = false, {}
+ mpx = metapost.load(mpx)
+ if mpx and data then
+ local result = mpx:execute(data)
+ if not result then
+ metapost.report("mp error: no result object returned")
+ elseif result.status > 0 then
+ metapost.report("mp error: %s",(result.term or "no-term") .. "\n" .. (result.error or "no-error"))
+ elseif metapost.showlog then
+ metapost.lastlog = metapost.lastlog .. "\n" .. result.term
+ metapost.report("mp info: %s",result.term or "no-term")
+ elseif result.fig then
+ converted = metapost.convert(result)
+ else
+ metapost.report("mp error: unknown error, maybe no beginfig/endfig")
+ end
+ else
+ metapost.report("mp error: mem file not found")
+ end
+ return converted, result
+ end
+
+ local function getobjects(result,figure,f)
+ return figure:objects()
+ end
+
+ function metapost.convert(result, flusher)
+ metapost.flush(result, flusher)
+ return true -- done
+ end
+
+ --[[ldx--
+ <p>We removed some message and tracing code. We might even remove the flusher</p>
+ --ldx]]--
+
+ local function pdf_startfigure(n,llx,lly,urx,ury)
+ tex.sprint(format("\\startMPLIBtoPDF{%s}{%s}{%s}{%s}",llx,lly,urx,ury))
+ end
+
+ local function pdf_stopfigure()
+ tex.sprint("\\stopMPLIBtoPDF")
+ end
+
+ function pdf_literalcode(fmt,...) -- table
+ tex.sprint(format("\\MPLIBtoPDF{%s}",format(fmt,...)))
+ end
+
+ function pdf_textfigure(font,size,text,width,height,depth)
+ text = text:gsub(".","\\hbox{%1}") -- kerning happens in metapost
+ tex.sprint(format("\\MPLIBtextext{%s}{%s}{%s}{%s}{%s}",font,size,text,0,-( 7200/ 7227)/65536*depth))
+ end
+
+ local bend_tolerance = 131/65536
+
+ local rx, sx, sy, ry, tx, ty, divider = 1, 0, 0, 1, 0, 0, 1
+
+ local function pen_characteristics(object)
+ if mplib.pen_info then
+ local t = mplib.pen_info(object)
+ rx, ry, sx, sy, tx, ty = t.rx, t.ry, t.sx, t.sy, t.tx, t.ty
+ divider = sx*sy - rx*ry
+ return not (sx==1 and rx==0 and ry==0 and sy==1 and tx==0 and ty==0), t.width
+ else
+ rx, sx, sy, ry, tx, ty, divider = 1, 0, 0, 1, 0, 0, 1
+ return false, 1
+ end
+ end
+
+ local function concat(px, py) -- no tx, ty here
+ return (sy*px-ry*py)/divider,(sx*py-rx*px)/divider
+ end
+
+ local function curved(ith,pth)
+ local d = pth.left_x - ith.right_x
+ if abs(ith.right_x - ith.x_coord - d) <= bend_tolerance and abs(pth.x_coord - pth.left_x - d) <= bend_tolerance then
+ d = pth.left_y - ith.right_y
+ if abs(ith.right_y - ith.y_coord - d) <= bend_tolerance and abs(pth.y_coord - pth.left_y - d) <= bend_tolerance then
+ return false
+ end
+ end
+ return true
+ end
+
+ local function flushnormalpath(path,open)
+ local pth, ith
+ for i=1,#path do
+ pth = path[i]
+ if not ith then
+ pdf_literalcode("%f %f m",pth.x_coord,pth.y_coord)
+ elseif curved(ith,pth) then
+ pdf_literalcode("%f %f %f %f %f %f c",ith.right_x,ith.right_y,pth.left_x,pth.left_y,pth.x_coord,pth.y_coord)
+ else
+ pdf_literalcode("%f %f l",pth.x_coord,pth.y_coord)
+ end
+ ith = pth
+ end
+ if not open then
+ local one = path[1]
+ if curved(pth,one) then
+ pdf_literalcode("%f %f %f %f %f %f c",pth.right_x,pth.right_y,one.left_x,one.left_y,one.x_coord,one.y_coord )
+ else
+ pdf_literalcode("%f %f l",one.x_coord,one.y_coord)
+ end
+ elseif #path == 1 then
+ -- special case .. draw point
+ local one = path[1]
+ pdf_literalcode("%f %f l",one.x_coord,one.y_coord)
+ end
+ return t
+ end
+
+ local function flushconcatpath(path,open)
+ pdf_literalcode("%f %f %f %f %f %f cm", sx, rx, ry, sy, tx ,ty)
+ local pth, ith
+ for i=1,#path do
+ pth = path[i]
+ if not ith then
+ pdf_literalcode("%f %f m",concat(pth.x_coord,pth.y_coord))
+ elseif curved(ith,pth) then
+ local a, b = concat(ith.right_x,ith.right_y)
+ local c, d = concat(pth.left_x,pth.left_y)
+ pdf_literalcode("%f %f %f %f %f %f c",a,b,c,d,concat(pth.x_coord, pth.y_coord))
+ else
+ pdf_literalcode("%f %f l",concat(pth.x_coord, pth.y_coord))
+ end
+ ith = pth
+ end
+ if not open then
+ local one = path[1]
+ if curved(pth,one) then
+ local a, b = concat(pth.right_x,pth.right_y)
+ local c, d = concat(one.left_x,one.left_y)
+ pdf_literalcode("%f %f %f %f %f %f c",a,b,c,d,concat(one.x_coord, one.y_coord))
+ else
+ pdf_literalcode("%f %f l",concat(one.x_coord,one.y_coord))
+ end
+ elseif #path == 1 then
+ -- special case .. draw point
+ local one = path[1]
+ pdf_literalcode("%f %f l",concat(one.x_coord,one.y_coord))
+ end
+ return t
+ end
+
+ --[[ldx--
+ <p>Support for specials has been removed.</p>
+ --ldx]]--
+
+ function metapost.flush(result,flusher)
+ if result then
+ local figures = result.fig
+ if figures then
+ for f=1, #figures do
+ metapost.report("flushing figure %s",f)
+ local figure = figures[f]
+ local objects = getobjects(result,figure,f)
+ local fignum = tonumber((figure:filename()):match("([%d]+)$") or figure:charcode() or 0)
+ local miterlimit, linecap, linejoin, dashed = -1, -1, -1, false
+ local bbox = figure:boundingbox()
+ local llx, lly, urx, ury = bbox[1], bbox[2], bbox[3], bbox[4] -- faster than unpack
+ if urx < llx then
+ -- invalid
+ pdf_startfigure(fignum,0,0,0,0)
+ pdf_stopfigure()
+ else
+ pdf_startfigure(fignum,llx,lly,urx,ury)
+ pdf_literalcode("q")
+ if objects then
+ for o=1,#objects do
+ local object = objects[o]
+ local objecttype = object.type
+ if objecttype == "start_bounds" or objecttype == "stop_bounds" then
+ -- skip
+ elseif objecttype == "start_clip" then
+ pdf_literalcode("q")
+ flushnormalpath(object.path,t,false)
+ pdf_literalcode("W n")
+ elseif objecttype == "stop_clip" then
+ pdf_literalcode("Q")
+ miterlimit, linecap, linejoin, dashed = -1, -1, -1, false
+ elseif objecttype == "special" then
+ -- not supported
+ elseif objecttype == "text" then
+ local ot = object.transform -- 3,4,5,6,1,2
+ pdf_literalcode("q %f %f %f %f %f %f cm",ot[3],ot[4],ot[5],ot[6],ot[1],ot[2])
+ pdf_textfigure(object.font,object.dsize,object.text,object.width,object.height,object.depth)
+ pdf_literalcode("Q")
+ else
+ local cs = object.color
+ if cs and #cs > 0 then
+ pdf_literalcode(metapost.colorconverter(cs))
+ end
+ local ml = object.miterlimit
+ if ml and ml ~= miterlimit then
+ miterlimit = ml
+ pdf_literalcode("%f M",ml)
+ end
+ local lj = object.linejoin
+ if lj and lj ~= linejoin then
+ linejoin = lj
+ pdf_literalcode("%i j",lj)
+ end
+ local lc = object.linecap
+ if lc and lc ~= linecap then
+ linecap = lc
+ pdf_literalcode("%i J",lc)
+ end
+ local dl = object.dash
+ if dl then
+ local d = format("[%s] %i d",concat(dl.dashes or {}," "),dl.offset)
+ if d ~= dashed then
+ dashed = d
+ pdf_literalcode(dashed)
+ end
+ elseif dashed then
+ pdf_literalcode("[] 0 d")
+ dashed = false
+ end
+ local path = object.path
+ local transformed, penwidth = false, 1
+ local open = path and path[1].left_type and path[#path].right_type
+ local pen = object.pen
+ if pen then
+ if pen.type == 'elliptical' then
+ transformed, penwidth = pen_characteristics(object) -- boolean, value
+ pdf_literalcode("%f w",penwidth)
+ if objecttype == 'fill' then
+ objecttype = 'both'
+ end
+ else -- calculated by mplib itself
+ objecttype = 'fill'
+ end
+ end
+ if transformed then
+ pdf_literalcode("q")
+ end
+ if path then
+ if transformed then
+ flushconcatpath(path,open)
+ else
+ flushnormalpath(path,open)
+ end
+ if objecttype == "fill" then
+ pdf_literalcode("h f")
+ elseif objecttype == "outline" then
+ pdf_literalcode((open and "S") or "h S")
+ elseif objecttype == "both" then
+ pdf_literalcode("h B")
+ end
+ end
+ if transformed then
+ pdf_literalcode("Q")
+ end
+ local path = object.htap
+ if path then
+ if transformed then
+ pdf_literalcode("q")
+ end
+ if transformed then
+ flushconcatpath(path,open)
+ else
+ flushnormalpath(path,open)
+ end
+ if objecttype == "fill" then
+ pdf_literalcode("h f")
+ elseif objecttype == "outline" then
+ pdf_literalcode((open and "S") or "h S")
+ elseif objecttype == "both" then
+ pdf_literalcode("h B")
+ end
+ if transformed then
+ pdf_literalcode("Q")
+ end
+ end
+ if cr then
+ pdf_literalcode(cr)
+ end
+ end
+ end
+ end
+ pdf_literalcode("Q")
+ pdf_stopfigure()
+ end
+ end
+ end
+ end
+ end
+
+ function metapost.colorconverter(cr)
+ local n = #cr
+ if n == 4 then
+ local c, m, y, k = cr[1], cr[2], cr[3], cr[4]
+ return format("%.3f %.3f %.3f %.3f k %.3f %.3f %.3f %.3f K",c,m,y,k,c,m,y,k), "0 g 0 G"
+ elseif n == 3 then
+ local r, g, b = cr[1], cr[2], cr[3]
+ return format("%.3f %.3f %.3f rg %.3f %.3f %.3f RG",r,g,b,r,g,b), "0 g 0 G"
+ else
+ local s = cr[1]
+ return format("%.3f g %.3f G",s,s), "0 g 0 G"
+ end
+ end
+
+end
diff --git a/Master/texmf-dist/tex/generic/context/luatex-mplib.tex b/Master/texmf-dist/tex/generic/context/luatex-mplib.tex
new file mode 100644
index 00000000000..206518d7dc1
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/context/luatex-mplib.tex
@@ -0,0 +1,118 @@
+%D \module
+%D [ file=luatex-mplib,
+%D version=2009.12.01,
+%D title=\LUATEX\ Support Macros,
+%D subtitle=\METAPOST\ to \PDF\ conversion,
+%D author=Taco Hoekwater \& Hans Hagen,
+%D date=\currentdate,
+%D copyright=public domain]
+
+%D This is the companion to the \LUA\ module \type {supp-mpl.lua}. Further
+%D embedding is up to others. A simple example of usage in plain \TEX\ is:
+%D
+%D \starttyping
+%D \pdfoutput=1
+%D
+%D \input luatex-mplib.tex
+%D
+%D \setmplibformat{plain}
+%D
+%D \mplibcode
+%D beginfig(1);
+%D draw fullcircle
+%D scaled 10cm
+%D withcolor red
+%D withpen pencircle xscaled 4mm yscaled 2mm rotated 30 ;
+%D endfig;
+%D \endmplibcode
+%D
+%D \end
+%D \stoptyping
+
+\def\setmplibformat#1{\def\mplibformat{#1}}
+
+\def\setupmplibcatcodes
+ {\catcode`\{=12 \catcode`\}=12 \catcode`\#=12 \catcode`\^=12 \catcode`\~=12
+ \catcode`\_=12 \catcode`\%=12 \catcode`\&=12 \catcode`\$=12 }
+
+\def\mplibcode
+ {\bgroup
+ \setupmplibcatcodes
+ \domplibcode}
+
+\long\def\domplibcode#1\endmplibcode
+ {\egroup
+ \directlua{metapost.process('\mplibformat',[[#1]])}}
+
+%D We default to \type {plain} \METAPOST:
+
+\def\mplibformat{plain}
+
+%D We use a dedicated scratchbox:
+
+\ifx\mplibscratchbox\undefined \newbox\mplibscratchbox \fi
+
+%D Now load the needed \LUA\ code.
+
+\directlua{dofile(kpse.find_file('luatex-mplib.lua'))}
+
+%D The following code takes care of encapsulating the literals:
+
+\def\startMPLIBtoPDF#1#2#3#4%
+ {\hbox\bgroup
+ \xdef\MPllx{#1}\xdef\MPlly{#2}%
+ \xdef\MPurx{#3}\xdef\MPury{#4}%
+ \xdef\MPwidth{\the\dimexpr#3bp-#1bp\relax}%
+ \xdef\MPheight{\the\dimexpr#4bp-#2bp\relax}%
+ \parskip0pt%
+ \leftskip0pt%
+ \parindent0pt%
+ \everypar{}%
+ \setbox\mplibscratchbox\vbox\bgroup
+ \noindent}
+
+\def\stopMPLIBtoPDF
+ {\egroup
+ \setbox\mplibscratchbox\hbox
+ {\hskip-\MPllx bp%
+ \raise-\MPlly bp%
+ \box\mplibscratchbox}%
+ \setbox\mplibscratchbox\vbox to \MPheight
+ {\vfill
+ \hsize\MPwidth
+ \wd\mplibscratchbox0pt%
+ \ht\mplibscratchbox0pt%
+ \dp\mplibscratchbox0pt%
+ \box\mplibscratchbox}%
+ \wd\mplibscratchbox\MPwidth
+ \ht\mplibscratchbox\MPheight
+ \box\mplibscratchbox
+ \egroup}
+
+%D The body of picture, except for text items, is taken care of by:
+
+\ifnum\pdfoutput>0
+ \let\MPLIBtoPDF\pdfliteral
+\else
+ \def\MPLIBtoPDF#1{\special{pdf:literal direct #1}} % not ok yet
+\fi
+
+%D Text items have a special handler:
+
+\def\MPLIBtextext#1#2#3#4#5%
+ {\begingroup
+ \setbox\mplibscratchbox\hbox
+ {\font\temp=#1 at #2bp%
+ \temp
+ #3}%
+ \setbox\mplibscratchbox\hbox
+ {\hskip#4 bp%
+ \raise#5 bp%
+ \box\mplibscratchbox}%
+ \wd\mplibscratchbox0pt%
+ \ht\mplibscratchbox0pt%
+ \dp\mplibscratchbox0pt%
+ \box\mplibscratchbox
+ \endgroup}
+
+\endinput
diff --git a/Master/texmf-dist/tex/generic/context/luatex-plain.tex b/Master/texmf-dist/tex/generic/context/luatex-plain.tex
new file mode 100644
index 00000000000..ae2588327ff
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/context/luatex-plain.tex
@@ -0,0 +1,25 @@
+%D \module
+%D [ file=luatex-basics,
+%D version=2009.12.01,
+%D title=\LUATEX\ Support Macros,
+%D subtitle=Attribute Allocation,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=public domain]
+
+\input plain
+
+\directlua {tex.enableprimitives('', tex.extraprimitives())}
+
+\pdfoutput=1
+
+\everyjob \expandafter {%
+ \the\everyjob
+ \input luatex-basics\relax
+ \input luatex-fonts\relax
+ \input luatex-mplib\relax
+}
+
+\edef\fmtversion{\fmtversion+luatex}
+
+\dump
diff --git a/Master/texmf-dist/tex/generic/context/luatex-test.tex b/Master/texmf-dist/tex/generic/context/luatex-test.tex
new file mode 100644
index 00000000000..1c423ec5b2b
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/context/luatex-test.tex
@@ -0,0 +1,47 @@
+%D \module
+%D [ file=luatex-test,
+%D version=2009.12.01,
+%D title=\LUATEX\ Support Macros,
+%D subtitle=Simple Test File,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=public domain]
+
+%D See \type {luatex-plain.tex} (or on my machine \type {luatex.tex}
+%D for how to make a format.
+
+\pdfoutput=1
+
+\font\testa=file:lmroman10-regular at 12pt \testa \input tufte \par
+\font\testb=file:lmroman12-regular:+liga; at 24pt \testb effe flink fietsen \par
+\font\testc=file:lmroman12-regular:mode=node;+liga; at 24pt \testc effe flink fietsen \par
+\font\testd=name:lmroman10bold at 12pt \testd a bit bold \par
+
+\font\oeps=[lmroman12-regular]:+liga at 30pt \oeps crap
+\font\oeps=[lmroman12-regular] at 40pt \oeps more crap
+
+\font\oeps=cmr10
+
+\font\testx=ptmr8t \testx abc
+
+\font\cidtest=adobesongstd-light
+
+\font\mathtest=cambria(math) {\mathtest 123}
+
+% \font\testy=file:IranNastaliq.ttf:mode=node;script=arab;language=dflt;+calt;+ccmp;+init;+isol;+medi;+fina;+liga;+rlig;+kern;+mark;+mkmk at 14pt
+% \testy این یک متن نمونه است با قلم ذر که درست آمده است.
+% \font\testz=name:linlibertineo \testz
+
+\setmplibformat{plain}
+
+\mplibcode
+ beginfig(1) ;
+ draw fullcircle
+ scaled 10cm
+ withcolor red
+ withpen pencircle xscaled 4mm yscaled 2mm rotated 30 ;
+ endfig ;
+\endmplibcode
+
+\end
+
diff --git a/Master/texmf-dist/tex/generic/context/mptopdf.tex b/Master/texmf-dist/tex/generic/context/mptopdf.tex
index bb9f27d0cc6..1f229678daa 100644
--- a/Master/texmf-dist/tex/generic/context/mptopdf.tex
+++ b/Master/texmf-dist/tex/generic/context/mptopdf.tex
@@ -70,7 +70,7 @@
%D allocation macros, we preload plain \TEX. We don't load
%D fonts yet.
-\input syst-tex
+\input syst-tex.mkii
%D We check for the usage of \PDFTEX, and quit if another
%D \TEX\ is used.
@@ -83,9 +83,9 @@
%D The conversion to \PDF\ is carried out by macros, that
%D are collected in the file:
-\input supp-mis
-\input supp-pdf
-\input supp-mpe \MPcmykcolorstrue \MPspotcolorstrue
+\input supp-mis.mkii
+\input supp-pdf.mkii
+\input supp-mpe.mkii \MPcmykcolorstrue \MPspotcolorstrue
%D We use no output routine.
@@ -171,5 +171,6 @@
\def\negatecolorcomponent#1% #1 = \macro
{\edef#1{\negatedcolorcomponent{#1}}}
+\countdef\realpageno=0 % to satisfy mkiv status reports
\dump
diff --git a/Master/texmf-dist/tex/generic/context/ppchtex.noc b/Master/texmf-dist/tex/generic/context/ppchtex.noc
index 3ab92d8f3ce..99d073255cb 100644
--- a/Master/texmf-dist/tex/generic/context/ppchtex.noc
+++ b/Master/texmf-dist/tex/generic/context/ppchtex.noc
@@ -30,9 +30,9 @@
%D First we load some auxiliary macro's:
-\input supp-mis.tex \let\writestatus\undefined
-\input syst-gen.tex
-\input syst-fnt.tex
+\input supp-mis.mkii \let\writestatus\undefined
+\input syst-gen.mkii
+\input syst-fnt.mkii
%D after which we can go on with:
@@ -174,7 +174,7 @@
%D After those definitions we actually load \PPCHTEX:
-\input ppchtex.tex
+\input ppchtex.mkii
%D We also change some setup values. Let's hope that the next
%D setups forever suits \LATEX.